diff --git a/3magiclines.txt b/3magiclines.txt index 898a98a..ed13830 100755 --- a/3magiclines.txt +++ b/3magiclines.txt @@ -1,3 +1,3 @@ %let apploc=/Projects/app/dc; -filename dc url "https://git.4gl.io/medjedovic/tmp/-/raw/main/runme.sas"; +filename dc url "https://git.4gl.io/medjedovic/tmp/raw/branch/master/runme.sas"; %include dc; diff --git a/runme.sas b/runme.sas index 0edc6f5..42ad566 100755 --- a/runme.sas +++ b/runme.sas @@ -1,13 +1,23 @@ + + %global appLoc serverName; -%let compiled_apploc=/Public/app/angular-seed-app; +%let compiled_apploc=/30.SASApps/3030.Projects/303001.DataController/build2/DataController; + %let serverName=SASApp; + %let appLoc=%sysfunc(coalescec(&appLoc,&compiled_apploc)); + %let sasjs_clickmeservice=clickme; %let syscc=0; options ps=max nonotes nosgen nomprint nomlogic nosource2 nosource noquotelenmax; /* user supplied build vars */ + + /* user supplied build vars end */ /* system macro dependencies for build process */ + + + %macro mf_getattrn( libds ,attr @@ -24,24 +34,37 @@ options ps=max nonotes nosgen nomprint nomlogic nosource2 nosource noquotelenmax %let rc=%sysfunc(close(&dsid)); %end; %mend mf_getattrn; + + %macro mf_nobs(libds )/*/STORE SOURCE*/; %mf_getattrn(&libds,NLOBS) %mend mf_nobs; + + %macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1) )/*/STORE SOURCE*/; + %if not(%eval(%unquote(&iftrue))) %then %return; + %put NOTE: /// mf_abort macro executing //; %if %length(&mac)>0 %then %put NOTE- called by &mac; %put NOTE - &msg; + %abort; + %mend mf_abort; + /** @endcond */ + + + %macro mf_verifymacvars( verifyVars /* list of macro variable NAMES */ ,makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */ ,mAbort=SOFT )/*/STORE SOURCE*/; + %local verifyIterator verifyVar abortmsg; %do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( ))); %let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( )); @@ -57,6 +80,7 @@ options ps=max nonotes nosgen nomprint nomlogic nosource2 nosource noquotelenmax %let &verifyVar=%upcase(&&&verifyvar); %end; %end; + %goto exit_success; %exit_err: %put &abortmsg; @@ -68,17 +92,23 @@ options ps=max nonotes nosgen nomprint nomlogic nosource2 nosource noquotelenmax %return; %exit_success: 1 + %mend mf_verifymacvars; + + + %macro mm_getDirectories( path= ,outds=work.mm_getDirectories ,mDebug=0 )/*/STORE SOURCE*/; + %local mD; %if &mDebug=1 %then %let mD=; %else %let mD=%str(*); %&mD.put Executing mm_getDirectories.sas; %&mD.put _local_; + data &outds (keep=directoryuri name directoryname directorydesc ); length directoryuri name directoryname directorydesc $256; call missing(of _all_); @@ -101,7 +131,11 @@ data &outds (keep=directoryuri name directoryname directorydesc ); if sum(of __rc1-__rc3)=0 then output; end; run; + %mend mm_getDirectories; + + + %macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767); %local rc fname; %if &prefix=0 %then %do; @@ -125,14 +159,18 @@ run; %put unable to find available fileref after &maxtries attempts; %end; %mend mf_getuniquefileref; + + %macro mm_updatestpsourcecode(stp= ,stpcode= ,minify=NO ,mdebug=0 ); + /* first, check if STP exists */ %local tsuri; %let tsuri=stopifempty ; + data _null_; format type uri tsuri value $200.; call missing (of _all_); @@ -143,7 +181,9 @@ data _null_; cnt=1; do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0); rc=metadata_getattr(tsuri,"Name",value); + %if &mdebug=1 %then %do; put tsuri= value=; + %end; if value="SourceCode" then do; /* found it! */ rc=metadata_getattr(tsuri,"Id",value); @@ -155,23 +195,28 @@ data _null_; end; else put (_all_)(=); run; + %if &tsuri=stopifempty %then %do; %put %str(WARN)ING: &stp.(StoredProcess) not found!; %return; %end; + %if %length(&stpcode)<2 %then %do; %put %str(WARN)ING: No SAS code supplied!!; %return; %end; + %local frefin frefout; %let frefin=%mf_getuniquefileref(); %let frefout=%mf_getuniquefileref(); + /* write header XML */ data _null_; file &frefin; put "$METAREPOSITORY SAS268435456 "; run; + proc metadata in= &frefin out=&frefout; run; + %if &mdebug=1 %then %do; /* write the response to the log for debugging */ data _null_; @@ -217,10 +265,16 @@ run; filename &frefin clear; filename &frefout clear; %end; + %mend mm_updatestpsourcecode; + + + %macro mm_getrepos( outds=work.mm_getrepos )/*/STORE SOURCE*/; + + * use a temporary fileref to hold the response; filename response temp; /* get list of libraries */ @@ -228,7 +282,16 @@ proc metadata in= "1" out=response; run; + /* write the response to the log for debugging */ +/* +data _null_; + infile response lrecl=1048576; + input; + put _infile_; +run; +*/ + /* create an XML map to read the response */ filename sxlemap temp; data _null_; @@ -309,19 +372,25 @@ data _null_; put ''; run; libname _XML_ xml xmlfileref=response xmlmap=sxlemap; + proc sort data= _XML_.SASRepos out=&outds; by name; run; + /* clear references */ filename sxlemap clear; filename response clear; libname _XML_ clear; + %mend mm_getrepos; + + %macro mm_getservercontexts( outds=work.mm_getrepos )/*/STORE SOURCE*/; %local repo repocnt x; %let repo=%sysfunc(getoption(metarepository)); + /* first get list of available repos */ %mm_getrepos(outds=work.repos) %let repocnt=0; @@ -332,6 +401,7 @@ data _null_; call symputx(cats('repo',_n_),name,'l'); call symputx('repocnt',_n_,'l'); run; + filename __mc1 temp; filename __mc2 temp; data &outds; @@ -375,20 +445,29 @@ run; proc append base=&outds data=__mc3.SASContexts;run; libname __mc3 clear; %end; + options metarepository=&repo; + filename __mc1 clear; filename __mc2 clear; + %mend mm_getservercontexts; + + %macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1) , errds=work.mp_abort_errds , mode=REGULAR )/*/STORE SOURCE*/; + %global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode; %local fref fid i; + %if not(%eval(%unquote(&iftrue))) %then %return; + %put NOTE: /// mp_abort macro executing //; %if %length(&mac)>0 %then %put NOTE- called by &mac; %put NOTE - &msg; + %if %symexist(_SYSINCLUDEFILEDEVICE) /* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */ and %superq(SYSPROCESSNAME) ne %str(Compute Server) @@ -406,6 +485,7 @@ and %superq(SYSPROCESSNAME) ne %str(Compute Server) %return; %end; %end; + /* Web App Context */ %if %symexist(_PROGRAM) or %superq(SYSPROCESSNAME) = %str(Compute Server) @@ -416,6 +496,7 @@ and %superq(SYSPROCESSNAME) ne %str(Compute Server) %then %do; options nosyntaxcheck; %end; + %if &mode=INCLUDE %then %do; %if %sysfunc(exist(&errds))=1 %then %do; data _null_; @@ -432,6 +513,7 @@ and %superq(SYSPROCESSNAME) ne %str(Compute Server) %return; %end; %end; + /* extract log errs / warns, if exist */ %local logloc logline; %global logmsg; /* capture global messages */ @@ -470,6 +552,7 @@ and %superq(SYSPROCESSNAME) ne %str(Compute Server) run; %end; %end; + %if %symexist(SYS_JES_JOB_URI) %then %do; /* setup webout for Viya */ options nobomfile; @@ -494,6 +577,7 @@ and %superq(SYSPROCESSNAME) ne %str(Compute Server) %let rc=%sysfunc(fclose(&fid)); %let rc=%sysfunc(filename(&fref)); %end; + /* send response in SASjs JSON format */ data _null_; file _webout mod lrecl=32000 encoding='utf-8'; @@ -535,7 +619,7 @@ and %superq(SYSPROCESSNAME) ne %str(Compute Server) _PROGRAM=quote(trim(resolve(symget('_PROGRAM')))); put ',"_PROGRAM" : ' _PROGRAM ; put ",""SYSCC"" : ""&syscc"" "; - syserrortext=quote(trim(symget('syserrortext'))); + syserrortext=cats('"',tranwrd(symget('syserrortext'),'"','\"'),'"'); put ",""SYSERRORTEXT"" : " syserrortext; put ",""SYSHOSTNAME"" : ""&syshostname"" "; put ",""SYSJOBID"" : ""&sysjobid"" "; @@ -543,13 +627,15 @@ and %superq(SYSPROCESSNAME) ne %str(Compute Server) put ",""SYSSITE"" : ""&syssite"" "; sysvlong=quote(trim(symget('sysvlong'))); put ',"SYSVLONG" : ' sysvlong; - syswarningtext=quote(trim(symget('syswarningtext'))); + syswarningtext=cats('"',tranwrd(symget('syswarningtext'),'"','\"'),'"'); put ",""SYSWARNINGTEXT"" : " syswarningtext; put ',"END_DTTM" : "' "%sysfunc(datetime(),E8601DT26.6)" '" '; put "}" ; if mode ne 'SASJS' then put '>>weboutEND<<'; run; + %put _all_; + %if "&sysprocessmode " = "SAS Stored Process Server " %then %do; data _null_; putlog 'stpsrvset program err and syscc'; @@ -557,6 +643,7 @@ and %superq(SYSPROCESSNAME) ne %str(Compute Server) call symputx("syscc",0,"g"); run; %if &sysscp=WIN + and 1=0 /* deprecating this logic until we figure out a consistent abort */ and "%substr(%str(&sysvlong ),1,8)"="9.04.01M" and "%substr(%str(&sysvlong ),9,1)">"5" %then %do; /* skip approach (below) does not work in windows m6+ envs */ @@ -604,26 +691,39 @@ and %superq(SYSPROCESSNAME) ne %str(Compute Server) %abort cancel; %end; %mend mp_abort; + /** @endcond */ + + + %macro mf_isblank(param )/*/STORE SOURCE*/; + %sysevalf(%superq(param)=,boolean) + %mend mf_isblank; + + %macro mp_dropmembers( list /* space separated list of datasets / views */ ,libref=WORK /* can only drop from a single library at a time */ ,iftrue=%str(1=1) )/*/STORE SOURCE*/; + %if not(%eval(%unquote(&iftrue))) %then %return; + %if %mf_isblank(&list) %then %do; %put NOTE: nothing to drop!; %return; %end; + proc datasets lib=&libref nolist; delete &list; delete &list /mtype=view; run; %mend mp_dropmembers; + + %macro mm_createstp( stpname=Macro People STP ,stpdesc=This stp was created automatically by the mm_createstp macro @@ -640,17 +740,24 @@ and %superq(SYSPROCESSNAME) ne %str(Compute Server) ,frefin=mm_in ,frefout=mm_out )/*/STORE SOURCE*/; + %local mD; %if &mDebug=1 %then %let mD=; %else %let mD=%str(*); %&mD.put Executing mm_CreateSTP.sas; %&mD.put _local_; + %mp_abort( iftrue=(%mf_verifymacvars(stpname filename directory tree)=0) ,mac=&sysmacroname ,msg=%str(Empty inputs: stpname filename directory tree) ) + %mp_dropmembers(%scan(&outds,2,.)) + +/** + * check tree exists + */ data _null_; length type uri $256; rc=metadata_pathobj("","&tree","Folder",type,uri); @@ -661,6 +768,10 @@ run; %put %str(WARN)ING: Tree &tree does not exist!; %return; %end; + +/** + * Check STP does not exist already + */ %local cmtype; data _null_; length type uri $256; @@ -672,22 +783,29 @@ run; %put %str(WARN)ING: Stored Process &stpname already exists in &tree!; %return; %end; + +/** + * Check that the physical file exists + */ %if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do; %put %str(WARN)ING: FILE *&directory/&filename* NOT FOUND!; %return; %end; + %if &stptype=1 %then %do; /* type 1 STP - where code is stored on filesystem */ %if %sysevalf(&sysver lt 9.2) %then %do; %put %str(WARN)ING: Version 9.2 or later required; %return; %end; + /* check directory object (where 9.2 source code reference is stored) */ data _null_; length id $20 dirtype $256; rc=metadata_resolve("&directory",dirtype,id); call symputx('checkdirtype',dirtype,'l'); run; + %if &checkdirtype ne Directory %then %do; %mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug) %if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do; @@ -700,10 +818,12 @@ run; directoryuri="&directory"; run; %end; + data &outds (keep=stpuri prompturi fileuri texturi); length stpuri prompturi fileuri texturi serveruri $256 ; if _n_=1 then call missing (of _all_); set &outds; + /* final checks on uris */ length id $20 type $256; __rc=metadata_resolve("&treeuri",type,id); @@ -716,6 +836,7 @@ run; putlog "%str(WARN)ING: Invalid directory URI: " directoryuri; stopme=1; end; + /* get server info */ __rc=metadata_resolve("&server",type,serveruri); if type ne 'LogicalServer' then do; @@ -725,10 +846,12 @@ run; stopme=1; end; end; + if stopme=1 then do; putlog (_all_)(=); stop; end; + /* create empty prompt */ rc1=METADATA_NEWOBJ('PromptGroup',prompturi,'Parameters'); rc2=METADATA_SETATTR(prompturi, 'UsageVersion', '1000000'); @@ -740,6 +863,7 @@ run; !!" version='1.0'>"; rc6 = METADATA_SETATTR(prompturi, 'GroupInfo',groupinfo); + if sum(of rc1-rc6) ne 0 then do; putlog "%str(WARN)ING: Issue creating prompt."; if prompturi ne . then do; @@ -749,6 +873,7 @@ run; end; stop; end; + /* create a file uri */ rc7=METADATA_NEWOBJ('File',fileuri,'SP Source File'); rc8=METADATA_SETATTR(fileuri, 'FileName',"&filename"); @@ -764,6 +889,7 @@ run; end; stop; end; + /* create a TextStore object */ rc11= METADATA_NEWOBJ('TextStore',texturi,'Stored Process'); rc12= METADATA_SETATTR(texturi, 'TextRole','StoredProcessConfiguration'); @@ -783,6 +909,7 @@ run; end; stop; end; + /* create meta obj */ rc15= METADATA_NEWOBJ('ClassifierMap',stpuri,"&stpname"); rc16= METADATA_SETASSN(stpuri, 'Trees','MODIFY',treeuri); @@ -794,6 +921,7 @@ run; rc22= METADATA_SETATTR(stpuri, 'TransformRole', 'StoredProcess'); rc23= METADATA_SETATTR(stpuri, 'UsageVersion', '1000000'); rc24= METADATA_SETATTR(stpuri, 'Desc', "&stpdesc"); + /* tidy up if err */ if sum(of rc15-rc24) ne 0 then do; putlog "%str(WARN)ING: Issue creating STP."; @@ -834,6 +962,7 @@ run; %put %str(WARN)ING: ServerContext *&server* not found!; %return; %end; + /** * First, create a Hello World type 2 stored process */ @@ -844,6 +973,7 @@ run; serveruri=quote(symget('serveruri')); stpdesc=quote(symget('stpdesc')); stpname=quote(symget('stpname')); + put "$METAREPOSITORY "/ 'SAS"/ "268435456"; run; + filename &frefout temp; + proc metadata in= &frefin out=&frefout ; run; + %if &mdebug=1 %then %do; /* write the response to the log for debugging */ data _null_; @@ -885,6 +1018,7 @@ run; put _infile_; run; %end; + /** * Next, add the source code */ @@ -892,14 +1026,20 @@ run; ,stpcode="&directory/&filename" ,mdebug=&mdebug ,minify=&minify) + + %end; %else %do; %put %str(WARN)ING: STPTYPE=*&stptype* not recognised!; %end; + %mend mm_createstp; + + %macro mf_getuser( )/*/STORE SOURCE*/; %local user; + %if %symexist(_sasjs_username) %then %let user=&_sasjs_username; %else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do; %let user=&SYS_COMPUTE_SESSION_OWNER; @@ -911,53 +1051,68 @@ run; %else %let user=%unquote(%scan(%quote(&_metaperson),1,@)); %end; %else %let user=&sysuserid; + %quote(&user) + %mend mf_getuser; + + + %macro mm_createfolder(path=,mDebug=0); %put &sysmacroname: execution started for &path; %local dbg errorcheck; %if &mDebug=0 %then %let dbg=*; + %local parentFolderObjId child errorcheck paths; %let paths=0; %let errorcheck=1; + %if &syscc ge 4 %then %do; %put SYSCC=&syscc - this macro requires a clean session; %return; %end; + data _null_; length objId parentId objType parent child $200 folderPath $1000; call missing (of _all_); folderPath = "%trim(&path)"; + * remove any trailing slash ; if ( substr(folderPath,length(folderPath),1) = '/' ) then folderPath=substr(folderPath,1,length(folderPath)-1); + * name must not be blank; if ( folderPath = '' ) then do; put "%str(ERR)OR: &sysmacroname PATH parameter value must be non-blank"; end; + * must have a starting slash ; if ( substr(folderPath,1,1) ne '/' ) then do; put "%str(ERR)OR: &sysmacroname PATH param value must have starting slash"; stop; end; + * check if folder already exists ; rc=metadata_pathobj('',cats(folderPath,"(Folder)"),"",objType,objId); if rc ge 1 then do; put "NOTE: Folder " folderPath " already exists!"; stop; end; + * do not create a root (one level) folder ; if countc(folderPath,'/')=1 then do; put "%str(ERR)OR: &sysmacroname will not create a new ROOT folder"; stop; end; + * check that root folder exists ; root=cats('/',scan(folderpath,1,'/'),"(Folder)"); if metadata_pathobj('',root,"",objType,parentId)<1 then do; put "%str(ERR)OR: " root " does not exist!"; stop; end; + * check that parent folder exists ; child=scan(folderPath,-1,'/'); parent=substr(folderpath,1,length(folderpath)-length(child)-1); @@ -982,12 +1137,16 @@ data _null_; end; end; else putlog "parent " parent " exists"; + call symputx('parentFolderObjId',parentId,'l'); call symputx('child',child,'l'); call symputx('errorcheck',0,'l'); + &dbg put (_all_)(=); run; + %if &errorcheck=1 or &syscc ge 4 %then %return; + %if &paths>0 %then %do x=1 %to &paths; %put executing recursive call for &&path&x; %mm_createfolder(path=&&path&x) @@ -1002,8 +1161,10 @@ run; UsageVersion='1000000'> SAS268435456 ; + proc metadata in="&inmeta" out=__newdir verbose; run ; + /* check it was successful */ data _null_; length objId parentId objType parent child $200 ; @@ -1017,6 +1178,7 @@ run; call symputx('syscc',8); end; run; + /* write the response to the log for debugging */ %if &mDebug ne 0 %then %do; data _null_; @@ -1027,11 +1189,18 @@ run; %end; filename __newdir clear; %end; + %put &sysmacroname: execution finished for &path; %mend mm_createfolder; + + %macro mm_deletestp( target= )/*/STORE SOURCE*/; + +/** + * Check STP does exist + */ %local cmtype; data _null_; length type uri $256; @@ -1043,6 +1212,7 @@ run; %put NOTE: No Stored Process found at ⌖ %return; %end; + filename __in temp lrecl=10000; filename __out temp lrecl=10000; data _null_ ; @@ -1052,10 +1222,16 @@ data _null_ ; put ""; run ; proc metadata in=__in out=__out verbose;run; + /* list the result */ data _null_;infile __out; input; list; run; + filename __in clear; filename __out clear; + +/** + * Check deletion + */ %local isgone; data _null_; length type uri $256; @@ -1068,9 +1244,13 @@ run; %let syscc=4; %return; %end; + %mend mm_deletestp; + /* system macro dependencies for build process end*/ /* system macros for build process */ + + %macro mm_createwebservice(path= ,name=initService ,precode= @@ -1081,31 +1261,42 @@ run; ,replace=YES ,adapter=sasjs )/*/STORE SOURCE*/; + %if &syscc ge 4 %then %do; %put &=syscc - &sysmacroname will not execute in this state; %return; %end; + %local mD; %if &mDebug=1 %then %let mD=; %else %let mD=%str(*); %&mD.put Executing mm_createwebservice.sas; %&mD.put _local_; + * remove any trailing slash ; %if "%substr(&path,%length(&path),1)" = "/" %then %let path=%substr(&path,1,%length(&path)-1); + +/** + * Add webout macro + * These put statements are auto generated - to change the macro, change the + * source (mm_webout) and run `build.py` + */ filename sasjs temp; data _null_; file sasjs lrecl=3000 ; put "/* Created on %sysfunc(datetime(),datetime19.) by %mf_getuser() */"; /* WEBOUT BEGIN */ - put ' '; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y '; put ' ,engine=DATASTEP '; put ' ,missing=NULL '; - put ' ,showmeta=NO '; + put ' ,showmeta=N '; + put ' ,maxobs=MAX '; put ')/*/STORE SOURCE*/; '; - put '%local tempds colinfo fmtds i numcols; '; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval '; + put ' tmpds1 tmpds2 tmpds3 tmpds4; '; put '%let numcols=0; '; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;); '; put ' '; put '%if &action=OPEN %then %do; '; put ' options nobomfile; '; @@ -1141,7 +1332,7 @@ data _null_; put ' by varnum; '; put ' run; '; put ' /* move meta to mac vars */ '; - put ' data _null_; '; + put ' data &colinfo; '; put ' if _n_=1 then call symputx(''numcols'',nobs,''l''); '; put ' set &colinfo end=last nobs=nobs; '; put ' name=upcase(name); '; @@ -1152,7 +1343,6 @@ data _null_; put ' if format='''' then fmt=cats(''$'',length,''.''); '; put ' else if formatl=0 then fmt=cats(format,''.''); '; put ' else fmt=cats(format,formatl,''.''); '; - put ' newlen=max(formatl,length); '; put ' end; '; put ' else do; '; put ' typelong=''num''; '; @@ -1160,23 +1350,26 @@ data _null_; put ' else if formatl=0 then fmt=cats(format,''.''); '; put ' else if formatd=0 then fmt=cats(format,formatl,''.''); '; put ' else fmt=cats(format,formatl,''.'',formatd); '; - put ' /* needs to be wide, for datetimes etc */ '; - put ' newlen=max(length,formatl,24); '; put ' end; '; put ' /* 32 char unique name */ '; put ' newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27); '; put ' '; put ' call symputx(cats(''name'',_n_),name,''l''); '; put ' call symputx(cats(''newname'',_n_),newname,''l''); '; - put ' call symputx(cats(''len'',_n_),newlen,''l''); '; put ' call symputx(cats(''length'',_n_),length,''l''); '; put ' call symputx(cats(''fmt'',_n_),fmt,''l''); '; put ' call symputx(cats(''type'',_n_),type,''l''); '; put ' call symputx(cats(''typelong'',_n_),typelong,''l''); '; put ' call symputx(cats(''label'',_n_),coalescec(label,name),''l''); '; + put ' /* overwritten when fmt=Y and a custom format exists in catalog */ '; + put ' if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l''); '; + put ' else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l''); '; put ' run; '; put ' '; put ' %let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; + put ' proc sql; '; + put ' select count(*) into: lastobs from &ds; '; + put ' %if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs)); '; put ' '; put ' %if &engine=PROCJSON %then %do; '; put ' %if &missing=STRING %then %do; '; @@ -1184,7 +1377,9 @@ data _null_; put ' %put &sysmacroname: Switching to DATASTEP engine; '; put ' %goto datastep; '; put ' %end; '; - put ' data &tempds;set &ds; '; + put ' data &tempds; '; + put ' set &ds; '; + put ' &stmt_obs; '; put ' %if &fmt=N %then format _numeric_ best32.;; '; put ' /* PRETTY is necessary to avoid line truncation in large files */ '; put ' filename _sjs2 temp lrecl=131068 encoding=''utf-8''; '; @@ -1211,26 +1406,99 @@ data _null_; put ' %end; '; put ' '; put ' %if &fmt=Y %then %do; '; - put ' data _data_; '; + put ' /** '; + put ' * Extract format definitions '; + put ' * First, by getting library locations from dictionary.formats '; + put ' * Then, by exporting the width using proc format '; + put ' * Cannot use maxw from sashelp.vformat as not always populated '; + put ' * Cannot use fmtinfo() as not supported in all flavours '; + put ' */ '; + put ' %let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; + put ' %let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; + put ' %let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; + put ' %let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; + put ' proc sql noprint; '; + put ' create table &tmpds1 as '; + put ' select cats(libname,''.'',memname) as fmtcat, '; + put ' fmtname '; + put ' from dictionary.formats '; + put ' where fmttype=''F'' and libname is not null '; + put ' and fmtname in (select format from &colinfo where format is not null) '; + put ' order by 1; '; + put ' create table &tmpds2( '; + put ' FMTNAME char(32), '; + put ' MAX num length=3 '; + put ' ); '; + put ' %local catlist cat fmtlist i; '; + put ' select distinct fmtcat into: catlist separated by '' '' from &tmpds1; '; + put ' %do i=1 %to %sysfunc(countw(&catlist,%str( ))); '; + put ' %let cat=%scan(&catlist,&i,%str( )); '; + put ' proc sql; '; + put ' select distinct fmtname into: fmtlist separated by '' '' '; + put ' from &tmpds1 where fmtcat="&cat"; '; + put ' proc format lib=&cat cntlout=&tmpds3(keep=fmtname max); '; + put ' select &fmtlist; '; + put ' run; '; + put ' proc sql; '; + put ' insert into &tmpds2 select distinct fmtname,max from &tmpds3; '; + put ' %end; '; + put ' '; + put ' proc sql; '; + put ' create table &tmpds4 as '; + put ' select a.*, b.max as maxw '; + put ' from &colinfo a '; + put ' left join &tmpds2 b '; + put ' on cats(a.format)=cats(upcase(b.fmtname)) '; + put ' order by a.varnum; '; + put ' data _null_; '; + put ' set &tmpds4; '; + put ' if not missing(maxw); '; + put ' call symputx( '; + put ' cats(''fmtlen'',_n_), '; + put ' /* vars need extra padding due to JSON escaping of special chars */ '; + put ' min(32767,ceil((max(length,maxw)+3)*1.5)) '; + put ' ,''l'' '; + put ' ); '; + put ' run; '; + put ' '; + put ' /* configure varlenchk - as we are explicitly shortening the variables */ '; + put ' %let optval=%sysfunc(getoption(varlenchk)); '; + put ' options varlenchk=NOWARN; '; + put ' data _data_(compress=char); '; + put ' /* shorten the new vars */ '; + put ' length '; + put ' %do i=1 %to &numcols; '; + put ' &&name&i $&&fmtlen&i '; + put ' %end; '; + put ' ; '; put ' /* rename on entry */ '; put ' set &ds(rename=( '; put ' %do i=1 %to &numcols; '; - put ' &&name&i=&&newname&i '; + put ' &&name&i=&&newname&i '; put ' %end; '; put ' )); '; + put ' &stmt_obs; '; + put ' '; + put ' drop '; + put ' %do i=1 %to &numcols; '; + put ' &&newname&i '; + put ' %end; '; + put ' ; '; put ' %do i=1 %to &numcols; '; - put ' length &&name&i $&&len&i; '; put ' %if &&typelong&i=num %then %do; '; - put ' &&name&i=left(put(&&newname&i,&&fmt&i)); '; + put ' &&name&i=cats(put(&&newname&i,&&fmt&i)); '; put ' %end; '; put ' %else %do; '; put ' &&name&i=put(&&newname&i,&&fmt&i); '; put ' %end; '; - put ' drop &&newname&i; '; put ' %end; '; - put ' if _error_ then call symputx(''syscc'',1012); '; + put ' if _error_ then do; '; + put ' call symputx(''syscc'',1012); '; + put ' stop; '; + put ' end; '; put ' run; '; put ' %let fmtds=&syslast; '; + put ' options varlenchk=&optval; '; put ' %end; '; put ' '; put ' proc format; /* credit yabwon for special null removal */ '; @@ -1249,8 +1517,8 @@ data _null_; put ' attrib _all_ label=''''; '; put ' %do i=1 %to &numcols; '; put ' %if &&typelong&i=char or &fmt=Y %then %do; '; - put ' length &&name&i $32767; '; - put ' format &&name&i $32767.; '; + put ' length &&name&i $&&fmtlen&i...; '; + put ' format &&name&i $&&fmtlen&i...; '; put ' %end; '; put ' %end; '; put ' %if &fmt=Y %then %do; '; @@ -1259,6 +1527,7 @@ data _null_; put ' %else %do; '; put ' set &ds; '; put ' %end; '; + put ' &stmt_obs; '; put ' format _numeric_ bart.; '; put ' %do i=1 %to &numcols; '; put ' %if &&typelong&i=char or &fmt=Y %then %do; '; @@ -1315,10 +1584,11 @@ data _null_; put ' proc sql; '; put ' drop table &colinfo, &tempds; '; put ' '; - put ' %if &showmeta=YES %then %do; '; + put ' %if %substr(&showmeta,1,1)=Y %then %do; '; put ' filename _sjs4 temp lrecl=131068 encoding=''utf-8''; '; put ' data _null_; '; put ' file _sjs4; '; + put ' length label $350; '; put ' put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{"; '; put ' do i=1 to &numcols; '; put ' name=quote(trim(symget(cats(''name'',i)))); '; @@ -1370,8 +1640,8 @@ data _null_; put ' %quote(&user) '; put ' '; put '%mend mf_getuser; '; - put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y,missing=NULL '; - put ' ,showmeta=NO '; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL '; + put ' ,showmeta=N,maxobs=MAX '; put '); '; put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug '; put ' sasjs_tables; '; @@ -1438,7 +1708,7 @@ data _null_; put ' '; put '%else %if &action=ARR or &action=OBJ %then %do; '; put ' %mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref '; - put ' ,engine=&jsonengine,missing=&missing,showmeta=&showmeta '; + put ' ,engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs '; put ' ) '; put '%end; '; put '%else %if &action=CLOSE %then %do; '; @@ -1446,7 +1716,6 @@ data _null_; put ' filename _sjsref temp lrecl=131068; '; put ' %if %str(&_debug) ge 131 %then %do; '; put ' /* if debug mode, send back first 10 records of each work table also */ '; - put ' options obs=10; '; put ' data;run;%let tempds=%scan(&syslast,2,.); '; put ' ods output Members=&tempds; '; put ' proc datasets library=WORK memtype=data; '; @@ -1470,7 +1739,7 @@ data _null_; put ' put " ""&wt"" : {"; '; put ' put ''"nlobs":'' nlobs; '; put ' put '',"nvars":'' nvars; '; - put ' %mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=YES) '; + put ' %mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10) '; put ' data _null_; file _sjsref mod encoding=''utf-8''; '; put ' put "}"; '; put ' %end; '; @@ -1480,26 +1749,33 @@ data _null_; put ' %end; '; put ' /* close off json */ '; put ' data _null_;file _sjsref mod encoding=''utf-8''; '; - put ' _PROGRAM=quote(trim(resolve(symget(''_PROGRAM'')))); '; - put ' put ",""SYSUSERID"" : ""&sysuserid"" "; '; - put ' put ",""MF_GETUSER"" : ""%mf_getuser()"" "; '; + put ' length SYSPROCESSNAME syserrortext syswarningtext autoexec $512; '; put ' put ",""_DEBUG"" : ""&_debug"" "; '; put ' _METAUSER=quote(trim(symget(''_METAUSER''))); '; put ' put ",""_METAUSER"": " _METAUSER; '; put ' _METAPERSON=quote(trim(symget(''_METAPERSON''))); '; put ' put '',"_METAPERSON": '' _METAPERSON; '; + put ' _PROGRAM=quote(trim(resolve(symget(''_PROGRAM'')))); '; put ' put '',"_PROGRAM" : '' _PROGRAM ; '; + put ' autoexec=quote(urlencode(trim(getoption(''autoexec'')))); '; + put ' put '',"AUTOEXEC" : '' autoexec; '; + put ' put ",""MF_GETUSER"" : ""%mf_getuser()"" "; '; put ' put ",""SYSCC"" : ""&syscc"" "; '; put ' put ",""SYSENCODING"" : ""&sysencoding"" "; '; - put ' syserrortext=quote(cats(symget(''SYSERRORTEXT''))); '; + put ' syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"''); '; put ' put '',"SYSERRORTEXT" : '' syserrortext; '; put ' put ",""SYSHOSTNAME"" : ""&syshostname"" "; '; + put ' put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" "; '; + put ' put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" "; '; + put ' SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME))); '; + put ' put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME; '; put ' put ",""SYSJOBID"" : ""&sysjobid"" "; '; put ' put ",""SYSSCPL"" : ""&sysscpl"" "; '; put ' put ",""SYSSITE"" : ""&syssite"" "; '; + put ' put ",""SYSUSERID"" : ""&sysuserid"" "; '; put ' sysvlong=quote(trim(symget(''sysvlong''))); '; put ' put '',"SYSVLONG" : '' sysvlong; '; - put ' syswarningtext=quote(cats(symget(''SYSWARNINGTEXT''))); '; + put ' syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"''); '; put ' put '',"SYSWARNINGTEXT" : '' syswarningtext; '; put ' put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" ''; '; put ' length memsize $32; '; @@ -1531,6 +1807,7 @@ data _null_; put ' )'; put '%mend;'; run; + /* add precode and code */ %local work tmpfile; %let work=%sysfunc(pathname(work)); @@ -1539,6 +1816,7 @@ run; %let freflist= &adapter &precode &code ; %do x=1 %to %sysfunc(countw(&freflist)); %if &x>1 %then %let mod=mod; + %let fref=%scan(&freflist,&x); %&mD.put &sysmacroname: adding &fref; data _null_; @@ -1548,12 +1826,15 @@ run; put _infile_; run; %end; + /* create the metadata folder if not already there */ %mm_createfolder(path=&path) %if &syscc ge 4 %then %return; + %if %upcase(&replace)=YES %then %do; %mm_deletestp(target=&path/&name) %end; + /* create the web service */ %mm_createstp(stpname=&name ,filename=&tmpfile @@ -1563,6 +1844,7 @@ run; ,mDebug=&mdebug ,server=&server ,stptype=2) + /* find the web app url */ %local url; %let url=localhost/SASStoredProcess; @@ -1571,2065 +1853,369 @@ data _null_; rc=METADATA_GETURI("Stored Process Web App",url); if rc=0 then call symputx('url',url,'l'); run; + %put &sysmacroname: STP &name successfully created in &path; %put Check it out here:; %put ;%put ;%put ; %put &url?_PROGRAM=&path/&name; %put ;%put ;%put ; + %mend mm_createwebservice; + + /* system macros for build process end */ + + + + +* BuildInit start; +/** + @file + @brief Initialise build program for SAS 9 DC + +

SAS Macros

+**/ +options nomprint; + +%global _metaperson _url dcpath; + +/* set webout if not running in STP mode */ +data _null_; + if "&sysprocessmode" ne "SAS Stored Process Server" then do; + call execute('filename _webout temp;'); + end; +run; +* BuildInit end; + + + %let path=services; -%let path=services/common; -%let service=appinit; + +%let service=clickme; filename sascode temp lrecl=32767; data _null_; file sascode; - put '%macro mf_getuser('; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; put ')/*/STORE SOURCE*/;'; - put '%local user;'; - put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; - put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; - put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; - put '%end;'; - put '%else %if %symexist(_metaperson) %then %do;'; - put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; - put '/* sometimes SAS will add @domain extension - remove for consistency */'; - put '/* but be sure to quote in case of usernames with commas */'; - put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; - put '%end;'; - put '%else %let user=&sysuserid;'; - put '%quote(&user)'; - put '%mend mf_getuser;'; - put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; - put ',engine=DATASTEP'; - put ',missing=NULL'; - put ',showmeta=NO'; - put ')/*/STORE SOURCE*/;'; - put '%local tempds colinfo fmtds i numcols;'; - put '%let numcols=0;'; - put '%if &action=OPEN %then %do;'; - put 'options nobomfile;'; - put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; - put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; - put 'run;'; - put '%end;'; - put '%else %if (&action=ARR or &action=OBJ) %then %do;'; - put '/* force variable names to always be uppercase in the JSON */'; - put 'options validvarname=upcase;'; - put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; - put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; - put 'filename _sjs1 temp lrecl=200 ;'; - put 'data _null_; file _sjs1 encoding=''utf-8'';'; - put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; - put 'run;'; - put '/* now write to _webout 1 char at a time */'; - put 'data _null_;'; - put 'infile _sjs1 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; put 'run;'; - put 'filename _sjs1 clear;'; - put '/* grab col defs */'; - put 'proc contents noprint data=&ds'; - put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; put 'run;'; - put '%let colinfo=%scan(&syslast,2,.);'; - put 'proc sort data=&colinfo;'; - put 'by varnum;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; put 'run;'; - put '/* move meta to mac vars */'; + put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; - put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; - put 'set &colinfo end=last nobs=nobs;'; - put 'name=upcase(name);'; - put '/* fix formats */'; - put 'if type=2 or type=6 then do;'; - put 'typelong=''char'';'; - put 'length fmt $49.;'; - put 'if format='''' then fmt=cats(''$'',length,''.'');'; - put 'else if formatl=0 then fmt=cats(format,''.'');'; - put 'else fmt=cats(format,formatl,''.'');'; - put 'newlen=max(formatl,length);'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; - put 'typelong=''num'';'; - put 'if format='''' then fmt=''best.'';'; - put 'else if formatl=0 then fmt=cats(format,''.'');'; - put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; - put 'else fmt=cats(format,formatl,''.'',formatd);'; - put '/* needs to be wide, for datetimes etc */'; - put 'newlen=max(length,formatl,24);'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; put 'end;'; - put '/* 32 char unique name */'; - put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; - put 'call symputx(cats(''name'',_n_),name,''l'');'; - put 'call symputx(cats(''newname'',_n_),newname,''l'');'; - put 'call symputx(cats(''len'',_n_),newlen,''l'');'; - put 'call symputx(cats(''length'',_n_),length,''l'');'; - put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; - put 'call symputx(cats(''type'',_n_),type,''l'');'; - put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; - put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; - put 'run;'; - put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; - put '%if &engine=PROCJSON %then %do;'; - put '%if &missing=STRING %then %do;'; - put '%put &sysmacroname: Special Missings not supported in proc json.;'; - put '%put &sysmacroname: Switching to DATASTEP engine;'; - put '%goto datastep;'; - put '%end;'; - put 'data &tempds;set &ds;'; - put '%if &fmt=N %then format _numeric_ best32.;;'; - put '/* PRETTY is necessary to avoid line truncation in large files */'; - put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; - put 'proc json out=_sjs2 pretty'; - put '%if &action=ARR %then nokeys ;'; - put ';export &tempds / nosastags fmtnumeric;'; - put 'run;'; - put '/* send back to webout */'; - put 'data _null_;'; - put 'infile _sjs2 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs2 clear;'; - put '%end;'; - put '%else %if &engine=DATASTEP %then %do;'; - put '%datastep:'; - put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; - put '%then %do;'; - put '%put &sysmacroname: &ds NOT FOUND!!!;'; - put '%return;'; - put '%end;'; - put '%if &fmt=Y %then %do;'; - put 'data _data_;'; - put '/* rename on entry */'; - put 'set &ds(rename=('; - put '%do i=1 %to &numcols;'; - put '&&name&i=&&newname&i'; - put '%end;'; - put '));'; - put '%do i=1 %to &numcols;'; - put 'length &&name&i $&&len&i;'; - put '%if &&typelong&i=num %then %do;'; - put '&&name&i=left(put(&&newname&i,&&fmt&i));'; - put '%end;'; - put '%else %do;'; - put '&&name&i=put(&&newname&i,&&fmt&i);'; - put '%end;'; - put 'drop &&newname&i;'; - put '%end;'; - put 'if _error_ then call symputx(''syscc'',1012);'; - put 'run;'; - put '%let fmtds=&syslast;'; - put '%end;'; - put 'proc format; /* credit yabwon for special null removal */'; - put 'value bart (default=40)'; - put '%if &missing=NULL %then %do;'; - put '._ - .z = null'; - put '%end;'; - put '%else %do;'; - put '._ = [quote()]'; - put '. = null'; - put '.a - .z = [quote()]'; - put '%end;'; - put 'other = [best.];'; - put 'data &tempds;'; - put 'attrib _all_ label='''';'; - put '%do i=1 %to &numcols;'; - put '%if &&typelong&i=char or &fmt=Y %then %do;'; - put 'length &&name&i $32767;'; - put 'format &&name&i $32767.;'; - put '%end;'; - put '%end;'; - put '%if &fmt=Y %then %do;'; - put 'set &fmtds;'; - put '%end;'; - put '%else %do;'; - put 'set &ds;'; - put '%end;'; - put 'format _numeric_ bart.;'; - put '%do i=1 %to &numcols;'; - put '%if &&typelong&i=char or &fmt=Y %then %do;'; - put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; - put '&&name&i=''"''!!trim('; - put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; - put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; - put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; - put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; - put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; - put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; - put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; - put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; - put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; - put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; - put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; - put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; - put '))))))))))))!!''"'';'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; put 'end;'; - put 'else &&name&i=quote(cats(&&name&i));'; - put '%end;'; - put '%end;'; - put 'run;'; - put 'filename _sjs3 temp lrecl=131068 ;'; - put 'data _null_;'; - put 'file _sjs3 encoding=''utf-8'';'; - put 'if _n_=1 then put "[";'; - put 'set &tempds;'; - put 'if _n_>1 then put "," @; put'; - put '%if &action=ARR %then "[" ; %else "{" ;'; - put '%do i=1 %to &numcols;'; - put '%if &i>1 %then "," ;'; - put '%if &action=OBJ %then """&&name&i"":" ;'; - put '"&&name&i"n /* name literal for reserved variable names */'; - put '%end;'; - put '%if &action=ARR %then "]" ; %else "}" ; ;'; - put '/* close out the table */'; - put 'data _null_;'; - put 'file _sjs3 mod encoding=''utf-8'';'; - put 'put '']'';'; - put 'run;'; - put 'data _null_;'; - put 'infile _sjs3 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs3 clear;'; - put '%end;'; - put 'proc sql;'; - put 'drop table &colinfo, &tempds;'; - put '%if &showmeta=YES %then %do;'; - put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; - put 'data _null_;'; - put 'file _sjs4;'; - put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; - put 'do i=1 to &numcols;'; - put 'name=quote(trim(symget(cats(''name'',i))));'; - put 'format=quote(trim(symget(cats(''fmt'',i))));'; - put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; - put 'length=quote(trim(symget(cats(''length'',i))));'; - put 'type=quote(trim(symget(cats(''typelong'',i))));'; - put 'if i>1 then put "," @@;'; - put 'put name '':{"format":'' format '',"label":'' label'; - put ''',"length":'' length '',"type":'' type ''}'';'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; put 'end;'; - put 'put ''}}'';'; - put 'run;'; - put '/* send back to webout */'; - put 'data _null_;'; - put 'infile _sjs4 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs4 clear;'; - put '%end;'; - put '%end;'; - put '%else %if &action=CLOSE %then %do;'; - put 'data _null_; file &jref encoding=''utf-8'' mod ;'; - put 'put "}";'; - put 'run;'; - put '%end;'; - put '%mend mp_jsonout;'; - put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y,missing=NULL'; - put ',showmeta=NO'; - put ');'; - put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; - put 'sasjs_tables;'; - put '%local i tempds jsonengine;'; - put '/* see https://github.com/sasjs/core/issues/41 */'; - put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; - put '%else %let jsonengine=DATASTEP;'; - put '%if &action=FETCH %then %do;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'options mprint notes mprintnest;'; - put '%end;'; - put '%let _webin_file_count=%eval(&_webin_file_count+0);'; - put '/* now read in the data */'; - put '%do i=1 %to &_webin_file_count;'; - put '%if &_webin_file_count=1 %then %do;'; - put '%let _webin_fileref1=&_webin_fileref;'; - put '%let _webin_name1=&_webin_name;'; - put '%end;'; - put 'data _null_;'; - put 'infile &&_webin_fileref&i termstr=crlf;'; - put 'input;'; - put 'call symputx(''input_statement'',_infile_);'; - put 'putlog "&&_webin_name&i input statement: " _infile_;'; - put 'stop;'; - put 'data &&_webin_name&i;'; - put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; - put 'input &input_statement;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'if _n_<20 then putlog _infile_;'; - put '%end;'; - put 'run;'; - put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; - put '%end;'; - put '%end;'; - put '%else %if &action=OPEN %then %do;'; - put '/* fix encoding */'; - put 'OPTIONS NOBOMFILE;'; - put '/**'; - put '* check xengine type to avoid the below err message:'; - put '* > Function is only valid for filerefs using the CACHE access method.'; - put '*/'; - put 'data _null_;'; - put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; - put 'if xengine=''STREAM'' then do;'; - put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; put 'end;'; put 'run;'; - put '/* setup json */'; - put 'data _null_;file &fref encoding=''utf-8'';'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'put ''>>weboutBEGIN<<'';'; + put '%let fref=_sjsout;'; put '%end;'; - put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; - put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; put 'run;'; - put '%end;'; - put '%else %if &action=ARR or &action=OBJ %then %do;'; - put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; - put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; - put '%else %if &action=CLOSE %then %do;'; - put '/* To avoid issues with _webout on EBI we use a temporary file */'; - put 'filename _sjsref temp lrecl=131068;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put '/* if debug mode, send back first 10 records of each work table also */'; - put 'options obs=10;'; - put 'data;run;%let tempds=%scan(&syslast,2,.);'; - put 'ods output Members=&tempds;'; - put 'proc datasets library=WORK memtype=data;'; - put '%local wtcnt;%let wtcnt=0;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; put 'data _null_;'; - put 'set &tempds;'; - put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; - put 'i+1;'; - put 'call symputx(cats(''wt'',i),name,''l'');'; - put 'call symputx(''wtcnt'',i,''l'');'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'put ",""WORK"":{";'; - put '%do i=1 %to &wtcnt;'; - put '%let wt=&&wt&i;'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'dsid=open("WORK.&wt",''is'');'; - put 'nlobs=attrn(dsid,''NLOBS'');'; - put 'nvars=attrn(dsid,''NVARS'');'; - put 'rc=close(dsid);'; - put 'if &i>1 then put '',''@;'; - put 'put " ""&wt"" : {";'; - put 'put ''"nlobs":'' nlobs;'; - put 'put '',"nvars":'' nvars;'; - put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=YES)'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'put "}";'; - put '%end;'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'put "}";'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; - put '/* close off json */'; - put 'data _null_;file _sjsref mod encoding=''utf-8'';'; - put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; - put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; - put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; - put 'put ",""_DEBUG"" : ""&_debug"" ";'; - put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; - put 'put ",""_METAUSER"": " _METAUSER;'; - put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; - put 'put '',"_METAPERSON": '' _METAPERSON;'; - put 'put '',"_PROGRAM" : '' _PROGRAM ;'; - put 'put ",""SYSCC"" : ""&syscc"" ";'; - put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; - put 'syserrortext=quote(cats(symget(''SYSERRORTEXT'')));'; - put 'put '',"SYSERRORTEXT" : '' syserrortext;'; - put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; - put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; - put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; - put 'put ",""SYSSITE"" : ""&syssite"" ";'; - put 'sysvlong=quote(trim(symget(''sysvlong'')));'; - put 'put '',"SYSVLONG" : '' sysvlong;'; - put 'syswarningtext=quote(cats(symget(''SYSWARNINGTEXT'')));'; - put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; - put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; - put 'length memsize $32;'; - put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; - put 'memsize=quote(cats(memsize));'; - put 'put '',"MEMSIZE" : '' memsize;'; - put 'put "}" @;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'put ''>>weboutEND<<'';'; - put '%end;'; - put 'run;'; - put '/* now write to _webout 1 char at a time */'; + put '%else %do;'; + put '%put streaming to _webout;'; put 'data _null_;'; - put 'infile _sjsref lrecl=1 recfm=n;'; - put 'file &fref mod lrecl=1 recfm=n;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; - put 'filename _sjsref clear;'; put '%end;'; - put '%mend mm_webout;'; - put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO);'; - put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; - put ',missing=&missing'; - put ',showmeta=&showmeta'; - put ') %mend;'; - put '/* provide additional debug info */'; - put '%global _program;'; - put '%put &=syscc;'; - put '%put user=%mf_getuser();'; - put '%put pgm=&_program;'; - put '%put timestamp=%sysfunc(datetime(),datetime19.);'; - put '* Service Variables start;'; - put '* Service Variables end;'; - put '* SAS Macros start;'; - put '* SAS Macros end;'; - put '* SAS Includes start;'; - put '* SAS Includes end;'; - put '* Binary Files start;'; - put '* Binary Files end;'; - put '* ServiceInit start;'; - put 'libname mydb (work);'; - put 'data mydb.springs ;'; - put 'attrib'; - put 'Latitude length= 8'; - put 'Longitude length= 8'; - put 'Name length= $34'; - put 'Area length= $14'; - put 'Type length= $9'; - put 'Farenheit length= 8'; - put 'Celsius length= 8'; - put ';'; - put 'infile cards dsd;'; - put 'input'; - put 'Latitude'; - put 'Longitude'; - put 'Name :$char.'; - put 'Area :$char.'; - put 'Type :$char.'; - put 'Farenheit'; - put 'Celsius'; - put ';'; - put 'missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'; - put 'datalines4;'; - put '51.925,-177.16,Fumaroles on Kanaga Island,Adak,Hotspring,219,104'; - put '65.858,-164.71,Serpentine Hot Springs,Bendeleben,Hotspring,171,77'; - put '53.851,-166.918,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,H,H'; - put '53.877,-166.448,Hot Springs Near Summer Bay,Unalaska,Hotspring,H,H'; - put '52.27,-174.042,Hot Springs on Atka Island,Atka,Hotspring,H,H'; - put '52.34,-174.26,Hot Springs on Atka Island,Atka,Hotspring,H,H'; - put '52.358,-172.317,Hot Spring on Seguam Island,Seguam,Hotspring,H,H'; - put '52.84,-169.9,Chuginadak Hot Springs,Samalga Island,Hotspring,H,H'; - put '52.96,-169.71,Hot Spring on Kagamil Island,Samalga Island,Hotspring,H,H'; - put '51.94,-178.5,Hot Spring on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '51.963,-178.491,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '51.775,-178.793,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,H,H'; - put '53.207,-168.445,Hot Springs Near Geyser Bight,Umnak,Hotspring,H,H'; - put '53.892,-166.93,Makushin Volcano Fumaroles,Unalaska,Hotspring,310,154'; - put '54.9,-162.885,Hot Spring on Amagat Island,False Pass,Hotspring,H,H'; - put '53.213,-168.463,Hot Springs Near Geyser Bight,Umnak,Hotspring,216,102'; - put '53.223,-168.477,Hot Springs Near Geyser Bight,Umnak,Hotspring,214,101'; - put '53.443,-168.092,Thermal Springs In Okmok Caldera,Umnak,Hotspring,212,100'; - put '52.042,-176.108,Hot Springs on Great Sitkin Island,Adak,Hotspring,210,99'; - put '55.983,-131.661,Bailey Hot Spring,Ketchikan,Hotspring,198,92'; - put '53.242,-168.365,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,192,89'; - put '54.157,-165.85,Hot Springs Near Hot Springs Bay,Unimak,Hotspring,181,83'; - put '58.033,-136.017,Hot Springs North End Tenakee Inle,Mt. Fairweathe,Hotspring,180,82'; - put '65.093,-164.922,Pilgrim Springs,Bendeleben,Hotspring,178,81'; - put '57.831,-156.513,W Ukinek Spring,Ugashik,Hotspring,178,81'; - put '65.459,-153.312,Little Melozitna Hot Springs,Melozitna,Hotspring,176,80'; - put '51.81,-177.79,Hot Spring on Tanaga Island,Adak,Hotspring,H,H'; - put '65.233,-144.483,Hot Springs on Big Windy Creek,Circle,Hotspring,H,H'; - put '55.334,-162.137,Hot Spring at West End Emmons Lake,Cold Bay,Hotspring,68,20'; - put '66.197,-154.006,Tunalkten Lake Hot Spring,Hughes,Hotspring,.,.'; - put '67.403,-153.883,Hot Spring Near Arrigetch Peaks,Survey Pass,Hotspring,W,W'; - put '65.047,-142.848,Hot Spring on Flat Creek,Charley River,Hotspring,W,W'; - put '63.683,-151.233,Hot Springs Near Glacier,Mt. Mckinley,Hotspring,W,W'; - put '63.883,-150.717,Hot Springs East of Diamond,Mt. Mckinley,Hotspring,W,W'; - put '62.45,-157.933,Hot Spring Near Flat,Iditarod,Hotspring,W,W'; - put '60.837,-142.42,Hot Spring on Twelvemile Creek,Bering Glacier,Hotspring,W,W'; - put '56.58,-132.18,South Stikine Spring,Petersburg,Hotspring,W,W'; - put '52.87,-173.13,Hot Spring on Attu Island,Attu,Hotspring,W,W'; - put '65.908,-154.993,Deniktow Ridge Hot Springs,Melozitna,Hotspring,H,H'; - put '53.95,-168.037,Hot Springs on Bogoslof Island,Umnak,Hotspring,H,H'; - put '65.45,-150,Hot Spring Near Little Minook Cr,Tanana,Hotspring,H,H'; - put '51.967,-178.444,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '64.002,-156.3,Hot Spring on Tributary of Innoko,Nulato,Hotspring,H,H'; - put '61.058,-160.692,Hot Spring Near Tuluksak River,Russian Missio,Hotspring,H,H'; - put '61.363,-157.733,Hot Springs on Upper Chuilnuk Rive,Sleetmute,Hotspring,H,H'; - put '61.267,-151.238,Hot Lake In Bottom of Crater Peak,Tyonek,Hotspring,H,H'; - put '58.24,-155.09,Hot Spring Near Katmai Pass,Mt. Katmai,Hotspring,H,H'; - put '58.27,-154.89,Hot Springs Near Mt Katmai,Mt. Katmai,Hotspring,H,H'; - put '58.92,-153.98,Hot Spring West of Cape Douglas,Afognak,Hotspring,H,H'; - put '55.368,-161.961,Fumarole,Port Moller,Hotspring,H,H'; - put '54.18,-165.41,Hot Springs on Akun Island,Unimak,Hotspring,H,H'; - put '54.23,-165.66,Hot Springs on Akun Island,Unimak,Hotspring,H,H'; - put '54.66,-164.55,Hot Spring on Unimak Island,Unimak,Hotspring,H,H'; - put '65.97,-154.033,Pocahontas Hot Springs,Melozitna,Hotspring,H,H'; - put '65.216,-149.993,Hutlinana Hot Springs,Livengood,Hotspring,109,43'; - put '57.085,-134.839,Baranof Warm Springs,Sitka,Hotspring,124,51'; - put '67.283,-155.067,Reed River Hot Spring,Survey Pass,Hotspring,122,50'; - put '66.15,-157.117,Hot Springs Near South Bm,Shungnak,Hotspring,122,50'; - put '66.233,-157.583,Hot Springs on Hawk River,Shungnak,Hotspring,122,50'; - put '65.81,-151.237,Kilo Hot Spring,Tanana,Hotspring,122,50'; - put '56.717,-132.005,Chief Shakes Hot Springs,Petersburg,Hotspring,122,50'; - put '69.33,-144.044,Okpilak Springs,Mt. Michelson,Hotspring,119,49'; - put '65.367,-161.25,Granite Mountain Hot Springs,Candle,Hotspring,120,49'; - put '57.644,-135.333,Nylen Hot Springs,Sitka,Hotspring,120,49'; - put '65.963,-150.919,Ray River Hot Spring,Tanana,Hotspring,117,47'; - put '64.924,-154.837,Horner Hot Springs,Ruby,Hotspring,117,47'; - put '65.267,-155.28,Hot Springs Near Dulbi River,Melozitna,Hotspring,126,52'; - put '57.807,-136.341,White Sulphur Springs (Hooniah H S,Sitka,Hotspring,111,44'; - put '57.781,-135.217,Tenakee Hot Springs,Sitka,Hotspring,109,43'; - put '52.19,-174.25,Hot Springs on Atka Island,Atka,Hotspring,167,75'; - put '55.334,-133.641,Dalton (Craig) Hot Springs,Craig,Hotspring,109,43'; - put '51.944,-178.547,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '57.771,-135.82,Hot Spring North Arm Peril Strait,Sitka,Hotspring,100,38'; - put '53.848,-166.873,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,94,34'; - put '69.627,-146.027,Red Hill Spring,Mt. Michelson,Hotspring,91,33'; - put '62.081,-145.007,Upper Klawasi Warm Springs,Gulkana,Hotspring,86,30'; - put '62.058,-145.222,Mineral Spring (Lower Klawasi Cone,Gulkana,Hotspring,82,28'; - put '56.68,-131.882,Barnes Lake Hot Springs,Bradfield Cana,Hotspring,79,26'; - put '56.928,-158.12,Surprise Lake Hot Spring,Chignik,Hotspring,73,23'; - put '56.667,-132.28,Twin Lakes Hot Springs,Petersburg,Hotspring,70,21'; - put '66.383,-157.517,Warm Spring Near Purcell Mountain,Shungnak,Hotspring,68,20'; - put '57.348,-135.385,Hot Spring Near Fish Bay,Sitka,Hotspring,117,47'; - put '65.983,-150.56,Hot Springs on Lower Ray River,Tanana,Hotspring,142,61'; - put '55.863,-160.493,Hot Spring Near Port Moller,Port Moller,Hotspring,160,71'; - put '53.253,-168.358,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,158,70'; - put '51.97,-176.61,Hot Springs on Adak Island,Adak,Hotspring,154,68'; - put '65.053,-146.057,Chena Hot Springs,Circle,Hotspring,153,67'; - put '58.37,-137.09,Hot Springs Near Icy Point,Mt. Fairweathe,Hotspring,153,67'; - put '56.836,-135.374,Goddard Hot Springs,Port Alexander,Hotspring,153,67'; - put '66.342,-150.85,Kanuti Hot Springs,Bettles,Hotspring,151,66'; - put '64.85,-162.3,Clear Creek Hot Springs,Solomon,Hotspring,149,65'; - put '53.233,-168.3,Hot Spring on Umnak Island,Umnak,Hotspring,149,65'; - put '61.2,-159.863,Hot Springs Near Ophir Creek,Russian Missio,Hotspring,145,63'; - put '57.865,-156.499,Gas Rocks Hot Spring,Ugashik,Hotspring,127,53'; - put '51.762,-178.77,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,144,62'; - put '66.367,-156.767,Hot Springs Near Division Bm,Shungnak,Hotspring,140,60'; - put '64.7,-162.467,Hot Spring Near Kwiniuk River,Solomon,Hotspring,106,41'; - put '65.274,-148.847,Tolovana Hot Springs,Livengood,Hotspring,140,60'; - put '55.933,-131.559,Bell Island Hot Springs,Ketchikan,Hotspring,165,74'; - put '57.178,-157.015,Hot Spring Near Mother Goose Lake,Ugashik,Hotspring,138,59'; - put '65.483,-144.637,Circle Hot Springs,Circle,Hotspring,135,57'; - put '56.233,-131.267,Bradfield Canal Hot Springs,Bradfield Cana,Hotspring,135,57'; - put '65.006,-150.633,Manley Hot Springs,Tanana,Hotspring,133,56'; - put '65.129,-154.692,Melozi (Melozitna) Springs,Melozitna,Hotspring,131,55'; - put '66.217,-149.547,Dall Hot Springs,Beaver,Hotspring,129,54'; - put '55.217,-162.483,Hot Springs East of Cold Bay,Cold Bay,Hotspring,129,54'; - put '65.217,-162.9,Hot Springs Near Lava Creek,Bendeleben,Hotspring,127,53'; - put '54.944,-163.251,Hot Springs Near Morzhovoi,False Pass,Hotspring,145,63'; - put '36.48,-91.053,Warm Springs,Poplar Bluff,Hotspring,82,28'; - put '34.384,-93.607,Caddo Gap Springs,Little Rock,Hotspring,95,35'; - put '34.321,-93.739,Spring on Redland Mountain,Little Rock,Hotspring,77,25'; - put '34.406,-93.908,Spring on Little Missouri River,Little Rock,Hotspring,74,23'; - put '34.542,-93.024,Big Chalybeate Spring,Little Rock,Hotspring,79,26'; - put '34.513,-93.053,Hot Springs,Little Rock,Hotspring,147,64'; - put '33.008,-109.778,Grapevine Spring,Clifton,Hotspring,91,33'; - put '32.984,-113.324,Agua Caliente Springs,Ajo,Hotspring,102,39'; - put '34.563,-113.497,Kaiser Hot Spring,Prescott,Hotspring,99,37'; - put '34.076,-111.708,Spring (Hot),Holbrook,Hotspring,99,37'; - put '33.17,-110.528,Coolidge Dam Warm Spring,Mesa,Hotspring,99,37'; - put '34.695,-113.572,Cofer Hot Spring,Prescott,Hotspring,97,36'; - put '33.209,-110.818,Pioneer Spring,Mesa,Hotspring,91,33'; - put '33.988,-112.362,Castle Hot Springs,Phoenix,Hotspring,115,46'; - put '32.345,-110.247,Warm Springs,Tucson,Hotspring,91,33'; - put '36.196,-113.081,Lava Warm Springs,Grand Canyon,Hotspring,90,32'; - put '33.068,-109.975,Warm Spring,Clifton,Hotspring,90,32'; - put '31.943,-113.013,Quitobaquito Springs,Lukeville,Hotspring,90,32'; - put '31.695,-110.963,Agua Caliente Spring,Nogales,Hotspring,90,32'; - put '33.075,-109.298,Seep,Clifton,Hotspring,95,35'; - put '34.357,-111.71,Verde Hot Springs,Holbrook,Hotspring,104,40'; - put '32.998,-109.901,Indian Hot Springs,Silver City,Hotspring,118,48'; - put '33.669,-111.165,Roosevelt Dam Springs,Mesa,Hotspring,118,48'; - put '32.336,-110.24,Hookers Hot Springs,Tucson,Hotspring,127,53'; - put '33.4,-109.152,Hannah Hot Spring,Clifton,Hotspring,133,56'; - put '33.08,-109.303,Hot Spring,Clifton,Hotspring,138,59'; - put '32.741,-114.068,Radium Hot Springs,El Centro,Hotspring,140,60'; - put '32.971,-109.35,Gillard Hot Springs,Silver City,Hotspring,180,82'; - put '35.984,-114.742,Hot Spring,Kingman,Hotspring,H,H'; - put '33.78,-110.317,Warm Spring,Mesa,Hotspring,W,W'; - put '36.418,-113.956,Pakoon Springs,Grand Canyon,Hotspring,86,30'; - put '33.493,-112.94,El Dorado Hot Springs,Phoenix South,Hotspring,112,44'; - put '34.896,-114.308,Oatman Warm Springs,Needles,Hotspring,91,33'; - put '33.055,-109.295,Clifton Hot Springs,Clifton,Hotspring,102,39'; - put '34.445,-112.693,Spring,Prescott,Hotspring,72,22'; - put '32.337,-110.708,Mercer Spring,Tucson,Hotspring,77,25'; - put '34.649,-111.744,Soda Spring,Holbrook,Hotspring,75,24'; - put '33.253,-110.703,Spring,Mesa,Hotspring,75,24'; - put '31.362,-109.265,Astin Spring,Douglas,Hotspring,75,24'; - put '35.169,-113.851,Frost Mine Spring,Williams,Hotspring,70,21'; - put '31.673,-109.902,Antelope Spring,Douglas,Hotspring,79,26'; - put '35.213,-113.425,Casa Grande Spring,Williams,Hotspring,72,22'; - put '33.51,-110.403,Cassadore Spring,Mesa,Hotspring,73,23'; - put '34.32,-111.453,Tonto Natural Bridge Spring,Holbrook,Hotspring,72,22'; - put '34.405,-111.602,Spring,Holbrook,Hotspring,72,22'; - put '34.436,-109.402,Salado Springs,Saint Johns,Hotspring,72,22'; - put '31.592,-109.51,Lewis Spring,Douglas,Hotspring,68,20'; - put '33.046,-109.44,Eagle Creek Hot Springs,Clifton,Hotspring,97,36'; - put '36.509,-111.852,Colorado Pool,Marble Canyon,Hotspring,86,30'; - put '33.062,-109.482,Warm Spring,Clifton,Hotspring,73,23'; - put '31.637,-110.703,Monkey Spring,Nogales,Hotspring,82,28'; - put '32.281,-110.73,Agua Caliente,Tucson,Hotspring,86,30'; - put '32.327,-110.228,N-O Spring,Tucson,Hotspring,73,23'; - put '32.983,-110.373,Warm Spring,Tucson,Hotspring,79,26'; - put '33.152,-110.639,Mescal Warm Spring,Mesa,Hotspring,84,29'; - put '33.163,-110.662,Spring,Mesa,Hotspring,82,28'; - put '35.077,-113.267,Trout Creek Spring,Williams,Hotspring,81,27'; - put '33.438,-110.213,Warm Springs,Mesa,Hotspring,86,30'; - put '36.895,-113.913,Springs,Grand Canyon,Hotspring,79,26'; - put '35.96,-114.725,Hot Spring,Kingman,Hotspring,86,30'; - put '34.925,-114.221,Caliche Spring,Needles,Hotspring,79,26'; - put '33.915,-112.332,Mitchell Spring,Phoenix,Hotspring,79,26'; - put '33.831,-110.574,Salt Banks,Mesa,Hotspring,78,26'; - put '34.91,-113.608,Tom Brown Warm Spring,Prescott,Hotspring,82,28'; - put '38.873,-122.689,Seigler Springs,Santa Rosa,Hotspring,126,52'; - put '36.814,-117.763,Palm Spring,Death Valley,Hotspring,120,49'; - put '34.498,-119.341,Stingleys Hot Springs,Los Angeles,Hotspring,123,51'; - put '33.67,-117.325,"Wrenden Hot Sprs, Elsinore Hot Spr",Santa Ana,Hotspring,125,52'; - put '37.253,-118.373,Keough Hot Springs,Mariposa,Hotspring,124,51'; - put '36.229,-118.302,Jordan Hot Springs,Fresno,Hotspring,124,51'; - put '34.502,-119.346,Vickers Hot Springs,Los Angeles,Hotspring,124,51'; - put '36.123,-121.64,Slates Hot Springs,Santa Cruz,Hotspring,122,50'; - put '35.881,-118.67,California Hot Springs,Bakersfield,Hotspring,122,50'; - put '38.788,-122.777,Sulphur Creek,Santa Rosa,Hotspring,120,49'; - put '37.648,-118.806,Hot Springs,Mariposa,Hotspring,129,54'; - put '36.703,-120.86,Mercey Hot Springs,Santa Cruz,Hotspring,119,48'; - put '33.589,-117.511,San Juan Hot Springs,Santa Ana,Hotspring,120,49'; - put '38.785,-122.655,Harbin Springs,Santa Rosa,Hotspring,120,49'; - put '37.677,-118.79,Dehy Hot Spring,Mariposa,Hotspring,134,57'; - put '39.183,-122.7,Bartlett Springs,Ukiah,Hotspring,144,62'; - put '36.234,-121.546,Tassajara Hot Springs,Santa Cruz,Hotspring,144,62'; - put '36.144,-120.555,Coalinga Mineral Springs,Santa Cruz,Hotspring,112,44'; - put '39.033,-122.445,Jones Fountain of Life Spring,Ukiah,Hotspring,142,61'; - put '35.575,-118.534,"Miracle Hot Sprs, Hobo Hot Sprs",Bakersfield,Hotspring,119,48'; - put '33.284,-116.631,Warner Hot Spring,Santa Ana,Hotspring,138,59'; - put '38.237,-119.326,Buckeye Hot Spring,Walker Lake,Hotspring,140,60'; - put '41.266,-120.08,Hot Springs (Menlo Baths),Alturas,Hotspring,135,57'; - put '33.753,-117.495,Glen Ivy Hot Springs,Santa Ana,Hotspring,131,55'; - put '37.802,-118.532,Benton Hot Springs,Mariposa,Hotspring,134,57'; - put '38.691,-123.024,Skaggs Springs,Santa Rosa,Hotspring,135,56'; - put '35.62,-118.473,Scovern Hot Springs,Bakersfield,Hotspring,133,56'; - put '34.538,-119.56,Agua Caliente Spring,Los Angeles,Hotspring,133,56'; - put '33.558,-117.154,Murrietta Hot Springs,Santa Ana,Hotspring,132,56'; - put '39.226,-120.01,Brockway Hot Springs,Chico,Hotspring,131,55'; - put '41.036,-121.926,Hunt Hot Spring,Alturas,Hotspring,136,58'; - put '34.582,-119.044,Willett Hot Springs,Los Angeles,Hotspring,108,42'; - put '37.234,-118.881,Blaney Meadows Hot Springs,Mariposa,Hotspring,109,43'; - put '36.477,-118.404,Kern Hot Spring,Fresno,Hotspring,109,43'; - put '36.806,-117.771,Lower Warm Springs,Death Valley,Hotspring,110,43'; - put '34.482,-119.302,Matilija Hot Springs,Los Angeles,Hotspring,109,43'; - put '34.537,-119.879,San Marcos Hot Spring,Los Angeles,Hotspring,110,43'; - put '33.896,-117.057,Eden Hot Springs,Santa Ana,Hotspring,109,43'; - put '39.573,-120.348,Campbell Hot Springs,Chico,Hotspring,111,44'; - put '38.994,-122.742,Horseshoe Spring,Santa Rosa,Hotspring,108,42'; - put '33.969,-116.942,Highland Springs,Santa Ana,Hotspring,112,44'; - put '34.34,-117.173,"Warm Spring, Hot Spring",San Bernardino,Hotspring,108,42'; - put '41.219,-120.066,Squaw Baths,Alturas,Hotspring,106,41'; - put '40.142,-120.935,Indian Valley Hot Springs,Susanville,Hotspring,106,41'; - put '39.292,-122.821,Crabtree Hot Springs,Ukiah,Hotspring,106,41'; - put '37.108,-121.478,Gilroy Hot Springs,San Jose,Hotspring,106,41'; - put '39.227,-123.362,Orrs Springs,Ukiah,Hotspring,104,40'; - put '38.773,-122.705,Anderson Springs,Santa Rosa,Hotspring,108,42'; - put '38.858,-122.671,Howard Springs,Santa Rosa,Hotspring,113,45'; - put '34.461,-119.637,Montecito Hot Springs,Los Angeles,Hotspring,118,48'; - put '33.551,-117.167,Temecula Hot Springs,Santa Ana,Hotspring,116,47'; - put '33.835,-116.988,Gilman Hot Springs,Santa Ana,Hotspring,117,47'; - put '37.618,-119.074,Reds Meadow Hot Springs,Mariposa,Hotspring,115,46'; - put '35.528,-118.665,Democrat Hot Springs,Bakersfield,Hotspring,115,46'; - put '33.731,-118.348,Whites Point Hot Springs,Long Beach,Hotspring,115,46'; - put '37.532,-119.025,Fish Creek Hot Springs,Mariposa,Hotspring,110,43'; - put '39.032,-122.432,"Blank Spring, Manzanita Mine Sprs",Ukiah,Hotspring,112,45'; - put '37.327,-119.018,Mono Hot Springs,Mariposa,Hotspring,109,43'; - put '38.225,-119.217,The Hot Springs,Walker Lake,Hotspring,113,45'; - put '35.727,-118.408,Hot Spring,Bakersfield,Hotspring,113,45'; - put '41.6,-120.088,Leonards Hot Springs,Alturas,Hotspring,144,62'; - put '38.874,-123.518,Point Arena Hot Springs,Santa Rosa,Hotspring,111,44'; - put '41.126,-121.028,Kellog Hot Springs,Alturas,Hotspring,172,78'; - put '35.558,-118.612,Delonegha Hot Springs,Bakersfield,Hotspring,112,44'; - put '35.871,-116.23,Tecopa Hot Springs,Trona,Hotspring,118,48'; - put '41.86,-120.158,Fort Bidwell Hot Spring,Alturas,Hotspring,113,45'; - put '41.534,-120.078,Hot Springs (Surprise Valley),Alturas,Hotspring,208,98'; - put '33.345,-115.588,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '41.012,-121.274,Hot Springs,Alturas,Hotspring,H,H'; - put '39.922,-120.024,Zamboni Hot Springs,Chico,Hotspring,H,H'; - put '38.979,-122.659,Fumarole,Santa Rosa,Hotspring,H,H'; - put '37.622,-119.028,Fumaroles,Mariposa,Hotspring,H,H'; - put '40.364,-120.243,Hot Spring,Susanville,Hotspring,204,96'; - put '38.767,-122.748,Little Geysers,Santa Rosa,Hotspring,210,99'; - put '33.328,-115.583,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '41.67,-120.206,Lake City Hot Springs,Alturas,Hotspring,207,97'; - put '36.036,-117.802,Devils Kitchen,Death Valley,Hotspring,207,97'; - put '36.045,-117.769,Coso Hot Springs,Death Valley,Hotspring,207,97'; - put '40.382,-121.513,Morgan Hot Spring,Susanville,Hotspring,205,96'; - put '40.421,-121.375,Terminal Geyser,Susanville,Hotspring,205,96'; - put '41.19,-120.383,West Valley Reservoir Hot Spring,Alturas,Hotspring,171,77'; - put '38.802,-122.81,The Geysers,Santa Rosa,Hotspring,214,101'; - put '35.888,-116.258,Springs,Trona,Hotspring,W,W'; - put '34.185,-117.262,"Arrowhead Springs, Waterman Hot Sp",San Bernardino,Hotspring,194,90'; - put '33.823,-116.542,Palm Springs (Agua Caliente Spring,Santa Ana,Hotspring,104,40'; - put '41.196,-120.475,Springs,Alturas,Hotspring,W,W'; - put '41.959,-120.936,Warm Spring,Alturas,Hotspring,W,W'; - put '37.929,-121.965,Springs,San Jose,Hotspring,W,W'; - put '36.83,-117.736,Upper Warm Spring,Death Valley,Hotspring,W,W'; - put '33.343,-115.573,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '35.536,-118.651,Spring (Hot),Bakersfield,Hotspring,W,W'; - put '33.332,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '35.967,-116.931,Warm Spring,Trona,Hotspring,W,W'; - put '33.28,-115.592,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.288,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.312,-115.577,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.313,-115.605,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '40.393,-121.507,Growler Hot Spring,Susanville,Hotspring,203,95'; - put '35.148,-118.783,Warm Spring,Bakersfield,Hotspring,W,W'; - put '41.973,-122.202,Klamath Hot Spring,Weed,Hotspring,156,69'; - put '41.143,-121.11,Bassett Hot Springs,Alturas,Hotspring,174,79'; - put '38.58,-122.575,Calistoga Hot Springs,Santa Rosa,Hotspring,172,78'; - put '37.656,-118.834,Hot Creek Springs,Mariposa,Hotspring,171,77'; - put '41.229,-121.405,Little Hot Spring,Alturas,Hotspring,169,76'; - put '37.664,-118.802,The Tub,Mariposa,Hotspring,167,75'; - put '40.355,-120.257,Wendel Hot Springs,Susanville,Hotspring,205,96'; - put '38.768,-122.717,Castle Rock Springs,Santa Rosa,Hotspring,163,73'; - put '38.245,-119.205,Travertine Hot Springs,Walker Lake,Hotspring,180,82'; - put '39.002,-122.664,Sulphur Bank,Ukiah,Hotspring,156,69'; - put '39.057,-122.475,Elgin Mine,Ukiah,Hotspring,156,69'; - put '39.039,-122.421,Wilbur Springs,Ukiah,Hotspring,153,67'; - put '40.444,-121.409,Drakesbad,Susanville,Hotspring,151,66'; - put '40.457,-121.545,Mill Creek Springs,Susanville,Hotspring,150,66'; - put '38.048,-119.081,Hot Spring,Walker Lake,Hotspring,151,66'; - put '37.647,-118.859,Casa Diablo Hot Pool,Mariposa,Hotspring,165,74'; - put '41.607,-121.523,Hot Spot,Alturas,Hotspring,191,88'; - put '40.44,-121.434,Devils Kitchen,Susanville,Hotspring,203,95'; - put '40.302,-120.195,Amedee Hot Springs,Susanville,Hotspring,203,95'; - put '36.031,-117.833,Fumarole,Death Valley,Hotspring,203,95'; - put '40.447,-121.536,"Sulphur Works, Tophet Hot Springs",Susanville,Hotspring,199,93'; - put '40.455,-121.501,Bumpass Hell,Susanville,Hotspring,199,93'; - put '37.648,-118.914,Casa Diablo Hot Springs And Geyser,Mariposa,Hotspring,199,93'; - put '37.692,-118.839,Little Hot Creek Spring,Mariposa,Hotspring,180,82'; - put '34.596,-118.998,Sespe Hot Springs,Los Angeles,Hotspring,194,90'; - put '38.348,-119.4,Fales Hot Springs,Walker Lake,Hotspring,180,82'; - put '40.434,-121.399,Boiling Springs Lake,Susanville,Hotspring,190,88'; - put '41.615,-120.102,Seyferth Hot Springs,Alturas,Hotspring,185,85'; - put '41.407,-122.197,"Hot Spring, Fumaroles",Weed,Hotspring,183,84'; - put '37.993,-119.028,Paoha Island Springs,Mariposa,Hotspring,181,83'; - put '41.025,-121.924,Big Bend Hot Springs,Alturas,Hotspring,180,82'; - put '38.699,-119.846,Grovers Hot Springs,Walker Lake,Hotspring,147,64'; - put '37.665,-118.828,Hot Creek Gorge Springs,Mariposa,Hotspring,199,93'; - put '39.43,-122.538,"Sulphur Spring, Salt Spring",Ukiah,Hotspring,75,24'; - put '38.925,-122.77,Hildebrande Spring,Santa Rosa,Hotspring,77,25'; - put '38.203,-119.118,Warm Spring,Walker Lake,Hotspring,77,25'; - put '36.938,-121.565,Sargent Estate Warm Spring,Santa Cruz,Hotspring,77,25'; - put '34.826,-116.677,Newberry Spring,San Bernardino,Hotspring,77,25'; - put '41.919,-122.369,Bogus Soda Springs,Weed,Hotspring,76,24'; - put '39.053,-122.597,Quigley Soda Spring,Ukiah,Hotspring,82,28'; - put '41.252,-120.521,Warm Spring,Alturas,Hotspring,75,24'; - put '38.85,-122.693,Pine Cone Spring,Santa Rosa,Hotspring,78,26'; - put '38.339,-122.259,Napa Vichy Springs,Santa Rosa,Hotspring,76,24'; - put '38.892,-122.533,Baker Soda Spring,Santa Rosa,Hotspring,76,24'; - put '38.897,-122.882,England Springs,Santa Rosa,Hotspring,76,24'; - put '38.916,-122.799,Carlsbad Spring,Santa Rosa,Hotspring,76,24'; - put '38.192,-120.827,Valley Springs,Sacramento,Hotspring,75,24'; - put '38.85,-120.025,Myers Warm Spring,Sacramento,Hotspring,75,24'; - put '37.708,-118.813,Hot Spring,Mariposa,Hotspring,68,20'; - put '36.122,-117.217,Warm Sulphur Springs,Death Valley,Hotspring,80,27'; - put '35.682,-116.422,Saratoga Spring,Trona,Hotspring,82,28'; - put '33.733,-114.907,Mccoy Spring,Salton Sea,Hotspring,82,28'; - put '41.484,-120.764,Spring,Alturas,Hotspring,81,27'; - put '39.657,-123.585,Jackson Valley Mud Springs,Ukiah,Hotspring,80,27'; - put '39.198,-122.505,Pseudo Complexion Spring,Ukiah,Hotspring,81,27'; - put '38.85,-122.667,Bad Creek Spring,Santa Rosa,Hotspring,81,27'; - put '32.97,-116.423,Vallecitos Spring,San Diego,Hotspring,79,26'; - put '36.765,-120.901,Spring,Santa Cruz,Hotspring,81,27'; - put '34.159,-118.499,El Encino Springs,Los Angeles,Hotspring,79,26'; - put '35.879,-116.153,Resting Spring,Trona,Hotspring,80,27'; - put '41.828,-120.917,Pothole Spring,Alturas,Hotspring,78,26'; - put '39.348,-122.668,Fouts Springs,Ukiah,Hotspring,79,26'; - put '38.519,-122.26,"Napa Rock Soda Spring, Phillips So",Santa Rosa,Hotspring,78,26'; - put '38.838,-122.653,Spiers Springs,Santa Rosa,Hotspring,79,26'; - put '35.141,-116.101,Soda Station Springs,Trona,Hotspring,75,24'; - put '37.503,-121.904,Alameda Warm Springs,San Jose,Hotspring,80,27'; - put '39.429,-123.308,Muir Springs,Ukiah,Hotspring,68,20'; - put '37.924,-122.046,Sulphur Spring,San Francisco,Hotspring,75,24'; - put '40.58,-120.265,Tipton Springs,Susanville,Hotspring,70,21'; - put '39.697,-123.478,Pinches Spring,Ukiah,Hotspring,70,21'; - put '38.755,-122.285,Zim Zim Spring,Santa Rosa,Hotspring,70,21'; - put '37.083,-121.042,Spring In Oneill Forebay,San Jose,Hotspring,70,21'; - put '37.632,-121.762,Crohare Spring,San Jose,Hotspring,70,21'; - put '33.625,-115.325,Corn Spring,Salton Sea,Hotspring,72,22'; - put '36.117,-118.776,Ward Spring,Fresno,Hotspring,70,21'; - put '34.423,-119.538,Boron Spring,Los Angeles,Hotspring,72,22'; - put '39.002,-122.498,Grizzly Spring,Ukiah,Hotspring,68,20'; - put '39.088,-122.525,Sulphur Spring,Ukiah,Hotspring,68,20'; - put '38.125,-122.188,Vallejo White Sulphur Springs,Santa Rosa,Hotspring,68,20'; - put '38.31,-122.053,Tolenas Springs,Santa Rosa,Hotspring,68,20'; - put '41.45,-120.834,Kelly Hot Spring,Alturas,Hotspring,198,92'; - put '36.512,-116.821,Nevares Springs,Death Valley,Hotspring,102,39'; - put '37.888,-118.487,Bertrand Ranch Springs,Mariposa,Hotspring,70,21'; - put '35.483,-119.917,Mize Spring,Bakersfield,Hotspring,73,23'; - put '36.698,-117.848,Little Hunter Canyon Springs,Death Valley,Hotspring,81,27'; - put '38.995,-122.642,Davis Soda Spring,Santa Rosa,Hotspring,73,23'; - put '37.432,-121.308,Salt Grass Springs,San Jose,Hotspring,73,23'; - put '37.573,-121.445,Lone Tree Mineral Spring,San Jose,Hotspring,73,23'; - put '37.638,-118.887,Chance Spring,Mariposa,Hotspring,73,23'; - put '36.295,-120.985,Sulphur Springs,Santa Cruz,Hotspring,73,23'; - put '41.16,-120.403,Warm Spring,Alturas,Hotspring,70,21'; - put '35.4,-120.25,Cameta Warm Spring,San Luis Obisp,Hotspring,73,23'; - put '37.719,-118.735,Springs,Mariposa,Hotspring,75,24'; - put '35.588,-116.359,Sheep Creek Spring,Trona,Hotspring,73,23'; - put '40.568,-120.325,Sellicks Springs,Susanville,Hotspring,72,22'; - put '38.833,-122.357,One Shot Mining Co,Santa Rosa,Hotspring,72,22'; - put '38.95,-122.572,Soda Spring In Cache Formation,Santa Rosa,Hotspring,72,22'; - put '37.635,-118.72,Springs,Mariposa,Hotspring,72,22'; - put '36.13,-118.816,Soda Spring,Fresno,Hotspring,72,22'; - put '36.773,-120.898,Iridat Spring,Santa Cruz,Hotspring,73,23'; - put '33.545,-115.654,Canyon Spring,Salton Sea,Hotspring,97,36'; - put '36.675,-116.923,Keane Wonder Spring,Death Valley,Hotspring,93,34'; - put '36.331,-121.367,Paraiso Springs (Sulphur Spring),Santa Cruz,Hotspring,98,37'; - put '35.122,-120.542,Newsom Springs,San Luis Obisp,Hotspring,99,37'; - put '34.503,-120.219,Las Cruces Hot Springs,Santa Maria,Hotspring,99,37'; - put '38.49,-122.498,St Helena White Sulphur Spring,Santa Rosa,Hotspring,97,36'; - put '35.946,-116.189,Chappo Spring,Trona,Hotspring,80,27'; - put '40.019,-121.036,Spring,Susanville,Hotspring,99,37'; - put '40.44,-121.42,Hot Springs Valley,Susanville,Hotspring,83,28'; - put '32.947,-116.305,Agua Caliente Springs,San Diego,Hotspring,101,38'; - put '39.196,-122.714,Newman Springs,Ukiah,Hotspring,94,35'; - put '37.63,-118.808,Whitmore Hot Springs,Mariposa,Hotspring,95,35'; - put '35.269,-120.851,Pecho Warm Springs,San Luis Obisp,Hotspring,95,35'; - put '33.514,-117.604,Spring,Santa Ana,Hotspring,95,35'; - put '38.958,-122.701,Riviera Beach Spring,Santa Rosa,Hotspring,93,34'; - put '36.33,-117.948,Dirty Socks Hot Spring,Death Valley,Hotspring,93,34'; - put '37.847,-121.635,Byron Hot Springs,San Jose,Hotspring,96,36'; - put '35.433,-118.478,Yates Hot Springs,Bakersfield,Hotspring,100,38'; - put '35.663,-120.692,Paso Robles Artesian Spring,San Luis Obisp,Hotspring,102,39'; - put '34.507,-119.291,Wheeler Springs,Los Angeles,Hotspring,102,39'; - put '33.8,-116.927,Soboda Hot Springs,Santa Ana,Hotspring,102,39'; - put '40.223,-122.747,Stinking Springs,Redding,Hotspring,101,38'; - put '38.8,-123.17,Hoods Hot Springs,Santa Rosa,Hotspring,100,38'; - put '37.029,-117.383,Grapevine Springs,Goldfield,Hotspring,100,38'; - put '36.084,-121.584,Dolans Hot Spring,Santa Cruz,Hotspring,98,37'; - put '36.21,-118.176,Soda Springs,Fresno,Hotspring,100,38'; - put '33.664,-117.913,Fairview Hot Spring,Santa Ana,Hotspring,96,36'; - put '35.143,-116.813,Paradise Spring,Trona,Hotspring,100,38'; - put '33.837,-117.145,Lakeview Hot Springs,Santa Ana,Hotspring,100,38'; - put '33.201,-115.577,Mud Pots,Salton Sea,Hotspring,100,38'; - put '33.212,-115.591,Mud Pots,Salton Sea,Hotspring,100,38'; - put '33.217,-115.58,Wister Mud Pot,Salton Sea,Hotspring,100,38'; - put '32.617,-116.189,Jacumba Hot Springs,San Diego,Hotspring,101,38'; - put '36.618,-121.845,Sulphur Hot Spring,Santa Cruz,Hotspring,100,38'; - put '36.495,-117.893,Springs,Death Valley,Hotspring,86,30'; - put '38.033,-118.902,Mono Basin Warm Springs,Walker Lake,Hotspring,88,31'; - put '35.908,-120.367,Table Mountain (Spring),San Luis Obisp,Hotspring,88,31'; - put '34.271,-116.838,Pan Hot Springs,San Bernardino,Hotspring,88,31'; - put '40.238,-122.11,Tuscan Springs,Redding,Hotspring,86,30'; - put '40.245,-120.007,High Rock Spring,Susanville,Hotspring,86,30'; - put '38.55,-122.72,Mark West Springs,Santa Rosa,Hotspring,88,31'; - put '43.513,-119.903,Springs at Tecolote Tunnel,Los Angeles,Hotspring,93,34'; - put '39.728,-120.547,Mclear Warm Springs,Chico,Hotspring,86,30'; - put '38.835,-122.731,Gordon Warm Springs,Santa Rosa,Hotspring,97,36'; - put '39.166,-123.159,Vichy Springs,Ukiah,Hotspring,85,29'; - put '38.936,-122.907,Highland Springs,Santa Rosa,Hotspring,84,29'; - put '37.398,-121.794,Mineral Springs,San Jose,Hotspring,84,29'; - put '33.436,-117.324,De Luz Warm Springs,Santa Ana,Hotspring,85,29'; - put '33.512,-115.827,Dos Palmas Spring,Salton Sea,Hotspring,84,29'; - put '39.022,-122.444,Abbott Mine,Ukiah,Hotspring,86,30'; - put '34.605,-118.561,Warm Spring,Los Angeles,Hotspring,92,33'; - put '41.659,-123.319,Sulphur Springs,Weed,Hotspring,84,29'; - put '38.394,-122.552,Los Guilicos Warm Springs,Santa Rosa,Hotspring,88,31'; - put '41.492,-120.7,Essex Springs,Alturas,Hotspring,91,33'; - put '38.654,-122.484,Aetna Springs,Santa Rosa,Hotspring,91,33'; - put '35.842,-117.38,Bainter Spring,Trona,Hotspring,92,33'; - put '34.228,-117.483,Tylers Bath Spring,San Bernardino,Hotspring,92,33'; - put '33.363,-117.017,Agua Tibia Spring,Santa Ana,Hotspring,92,33'; - put '41.167,-120.032,Bare Ranch Spring,Alturas,Hotspring,90,32'; - put '35.978,-116.273,Shoshone Spring,Trona,Hotspring,90,32'; - put '33.407,-116.035,Fish Springs,Santa Ana,Hotspring,90,32'; - put '35.582,-120.666,Santa Ysabel Springs (Sulphur Spr),San Luis Obisp,Hotspring,92,33'; - put '34.537,-119.613,Little Caliente Spring,Los Angeles,Hotspring,90,32'; - put '39.006,-122.787,Big Soda Spring,Ukiah,Hotspring,90,32'; - put '35.439,-119.846,Carneros Spring,Bakersfield,Hotspring,90,32'; - put '36.441,-116.829,Travertine Springs,Death Valley,Hotspring,90,32'; - put '37.88,-122.627,Rocky Point Springs,San Francisco,Hotspring,90,32'; - put '39.227,-107.224,Penny Hot Springs,Leadville,Hotspring,133,56'; - put '38.732,-106.178,Hortense Hot Spring,Montrose,Hotspring,181,83'; - put '37.4,-107.849,Tripp Hot Springs,Durango,Hotspring,111,44'; - put '40.073,-106.113,Hot Sulphur Springs,Craig,Hotspring,111,44'; - put '39.739,-105.512,Idaho Springs,Denver,Hotspring,115,46'; - put '39.552,-107.412,South Canyon Hot Springs,Leadville,Hotspring,118,48'; - put '39.548,-107.322,Glenwood Springs,Leadville,Hotspring,124,51'; - put '38.133,-107.736,Orvis Hot Spring,Montrose,Hotspring,126,52'; - put '39.017,-105.793,Hartsel Hot Springs,Denver,Hotspring,126,52'; - put '38.733,-106.162,Mount Princeton Hot Springs,Montrose,Hotspring,133,56'; - put '37.752,-108.131,Paradise Warm Spring,Cortez,Hotspring,115,46'; - put '37.747,-106.831,Wagon Wheel Gap Hot Springs,Durango,Hotspring,135,57'; - put '37.263,-107.011,Pagosa Springs,Durango,Hotspring,136,58'; - put '38.812,-106.226,Cottonwood Hot Springs,Montrose,Hotspring,136,58'; - put '38.168,-105.924,Mineral Hot Springs,Pueblo,Hotspring,140,60'; - put '40.559,-106.849,Routt Hot Springs,Craig,Hotspring,147,64'; - put '38.021,-107.672,Ouray Hot Springs,Montrose,Hotspring,156,69'; - put '38.498,-106.076,Poncha Hot Springs,Montrose,Hotspring,160,71'; - put '38.514,-106.508,Upper Waunita Hot Springs,Montrose,Hotspring,176,80'; - put '38.272,-107.1,Cebolla Hot Springs,Montrose,Hotspring,106,41'; - put '37.313,-107.344,Piedra River Hot Springs,Durango,Hotspring,108,42'; - put '38.517,-106.515,Lower Waunita Hot Springs,Montrose,Hotspring,167,75'; - put '38.816,-106.873,Ranger Hot Spring,Montrose,Hotspring,81,27'; - put '37.294,-105.784,Dexter Spring,Trinidad,Hotspring,68,20'; - put '38.634,-106.072,Browns Grotto Warm Spring,Montrose,Hotspring,73,23'; - put '39.164,-106.062,Rhodes Warm Spring,Leadville,Hotspring,75,24'; - put '38.836,-106.825,Cement Creek Hot Spring,Montrose,Hotspring,77,25'; - put '38.653,-106.056,Browns Canyon Warm Spring,Montrose,Hotspring,77,25'; - put '37.033,-106.805,Stinking Springs,Durango,Hotspring,81,27'; - put '37.747,-108.117,Geyser Warm Spring,Cortez,Hotspring,82,28'; - put '38.479,-105.891,Swissvale Warm Springs,Pueblo,Hotspring,82,28'; - put '37.751,-106.317,Shaw Springs,Durango,Hotspring,86,30'; - put '37.728,-107.054,Birdsie Warm Spring,Durango,Hotspring,86,30'; - put '37.741,-107.034,Antelope Spring,Durango,Hotspring,90,32'; - put '39.628,-107.106,Dotsero Warm Springs,Leadville,Hotspring,90,32'; - put '38.485,-105.91,Wellsville Warm Spring,Pueblo,Hotspring,91,33'; - put '38.014,-108.054,Lemon Hot Spring,Moab,Hotspring,91,33'; - put '37.391,-107.846,"Trimble Hot Spr, Stratten Warm Spr",Durango,Hotspring,97,36'; - put '38.192,-105.816,Valley View Hot Springs,Pueblo,Hotspring,99,37'; - put '38.433,-105.261,Canon City Hot Springs,Pueblo,Hotspring,104,40'; - put '39.012,-106.891,Conundrum Hot Springs,Leadville,Hotspring,100,38'; - put '37.511,-106.945,Rainbow Hot Springs,Durango,Hotspring,104,40'; - put '40.467,-107.952,Juniper Hot Springs,Craig,Hotspring,100,38'; - put '40.483,-106.827,Steamboat Springs,Craig,Hotspring,102,39'; - put '37.771,-108.091,Dunton Hot Spring,Cortez,Hotspring,108,42'; - put '37.453,-107.803,Pinkerton Hot Springs,Durango,Hotspring,90,32'; - put '39.932,-105.277,Eldorado Springs,Denver,Hotspring,79,26'; - put '27.074,-82.233,Little Salt Spring,Tampa,Hotspring,81,27'; - put '27.06,-82.261,Warm Mineral Springs (Big Salt Spr,Tampa,Hotspring,86,30'; - put '32.92,-84.438,Barker Spring,Phenix City,Hotspring,73,23'; - put '32.964,-84.499,Thundering Spring,Phenix City,Hotspring,75,24'; - put '33.018,-84.327,Taylor Spring,Atlanta,Hotspring,75,24'; - put '32.862,-84.65,Parkman Spring,Phenix City,Hotspring,77,25'; - put '33.037,-84.374,Lifsey Spring,Atlanta,Hotspring,79,26'; - put '32.893,-84.69,Warm Springs,Phenix City,Hotspring,88,31'; - put '32.873,-84.547,Tom Brown Spring,Phenix City,Hotspring,68,20'; - put '19.407,-155.277,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.46,-154.847,Isaac Hale Park Spring,Hawaii,Hotspring,97,36'; - put '19.496,-154.876,Warm Vapor,Hawaii,Hotspring,W,W'; - put '19.373,-155.188,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.39,-155.311,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.434,-155.272,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.486,-155.598,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.466,-154.943,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.421,-155.62,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.201,-155.384,Waiwelawela Point Spring,Hawaii,Hotspring,90,32'; - put '19.593,-154.928,Akins Spring,Hawaii,Hotspring,84,29'; - put '44.721,-115.01,Thomas Creek Ranch Hot Spring,Challis,Hotspring,138,59'; - put '45.431,-116.015,Cow Flats Hot Spring,Grangeville,Hotspring,138,59'; - put '44.062,-115.685,Pine Flat Hot Springs,Challis,Hotspring,138,59'; - put '44.382,-115.841,Dash Creek Hot Springs,Challis,Hotspring,138,59'; - put '44.077,-115.553,Haven Lodge Hot Spring,Challis,Hotspring,147,64'; - put '43.647,-114.816,Skillern Hot Springs,Hailey,Hotspring,140,60'; - put '43.789,-115.434,Dutch Frank Hot Spring,Hailey,Hotspring,149,65'; - put '43.54,-115.288,Bridge Hot Springs,Hailey,Hotspring,138,59'; - put '43.72,-115.617,Smith Cabin Hot Spring,Hailey,Hotspring,138,59'; - put '42.688,-114.826,Banbury Hot Spring,Twin Falls,Hotspring,138,59'; - put '45.035,-115.561,Sheep Creek Hot Spring,Elk City,Hotspring,136,58'; - put '44.245,-114.885,Elkhorn Hot Spring,Challis,Hotspring,136,58'; - put '44.642,-115.693,Mollys Hot Spring,Challis,Hotspring,138,59'; - put '43.811,-115.116,Atlanta Hot Springs,Hailey,Hotspring,140,60'; - put '44.679,-116.231,White Licks Hot Spring,Baker,Hotspring,140,60'; - put '45.512,-115.046,Barth Hot Springs,Elk City,Hotspring,140,60'; - put '43.696,-115.658,Sheep Creek Bridge Hot Spring,Hailey,Hotspring,142,61'; - put '44.914,-115.722,Teapot Hot Spring,Challis,Hotspring,142,61'; - put '43.788,-115.444,Straight Creek Hot Spring,Hailey,Hotspring,144,62'; - put '43.116,-115.305,Latty Hot Spring,Hailey,Hotspring,144,62'; - put '45.039,-116.291,Zims Resort Hot Springs,Grangeville,Hotspring,144,62'; - put '43.049,-114.952,White Arrow Hot Spring,Hailey,Hotspring,145,63'; - put '44.645,-114.739,Upper Loon Creek Hot Springs,Challis,Hotspring,145,63'; - put '43.383,-114.931,Wardrop Hot Spring,Hailey,Hotspring,147,64'; - put '44.531,-116.754,Fairchild Hot Spring,Baker,Hotspring,126,52'; - put '44.661,-114.652,Foster Ranch Hot Springs,Challis,Hotspring,135,57'; - put '44.051,-115.829,Dan Hodges Hot Spring,Challis,Hotspring,140,60'; - put '43.506,-114.354,Hailey Hot Springs,Hailey,Hotspring,131,55'; - put '43.982,-114.486,West Pass Hot Spring,Hailey,Hotspring,124,51'; - put '43.641,-114.487,Warfield Hot Spring,Hailey,Hotspring,124,51'; - put '44.145,-112.554,Lidy Hot Springs,Dubois,Hotspring,124,51'; - put '44.054,-115.907,Hot Spring Campground,Challis,Hotspring,124,51'; - put '42.032,-115.363,Murphy Hot Springs,Twin Falls,Hotspring,126,52'; - put '43.561,-114.415,Clarendon Hot Springs,Hailey,Hotspring,126,52'; - put '43.423,-114.627,Elk Creek Hot Spring,Hailey,Hotspring,126,52'; - put '43.553,-115.267,Paradise Hot Springs,Hailey,Hotspring,126,52'; - put '42.308,-111.707,Maple Grove Hot Springs,Preston,Hotspring,172,78'; - put '45.013,-113.605,Sharkey Hot Spring,Dillon,Hotspring,126,52'; - put '44.73,-114.993,Sunflower Hot Springs,Challis,Hotspring,149,65'; - put '43.974,-114.499,Lower Bowery Hot Spring,Hailey,Hotspring,129,54'; - put '43.724,-115.604,Loftus Hot Spring,Hailey,Hotspring,129,54'; - put '44.676,-115.943,Gold Fork Hot Spring,Challis,Hotspring,127,53'; - put '44.044,-115.851,Donlay Ranch Hot Spring,Challis,Hotspring,131,55'; - put '44.264,-114.818,Basin Creek Hot Spring,Challis,Hotspring,133,56'; - put '44.652,-114.734,Owen Cabin Hot Spring,Challis,Hotspring,133,56'; - put '43.605,-115.664,Rattlesnake Hot Spring,Hailey,Hotspring,133,56'; - put '43.605,-114.948,Lightfoot Hot Springs,Hailey,Hotspring,133,56'; - put '45.788,-115.198,Red River Hot Springs,Elk City,Hotspring,131,55'; - put '44.632,-115.697,South Fork Plunge,Challis,Hotspring,129,54'; - put '44.853,-116.442,Starkey Hot Springs,Baker,Hotspring,131,55'; - put '42.692,-114.859,Hot Sulphur (Miracle Hot) Springs,Twin Falls,Hotspring,131,55'; - put '44.045,-115.842,Corder Hot Spring,Challis,Hotspring,131,55'; - put '44.247,-114.676,Robinson Bar Hot Springs,Challis,Hotspring,131,55'; - put '44.785,-114.855,Cox Hot Springs,Challis,Hotspring,131,55'; - put '43.637,-115.13,Willow Creek Hot Spring,Hailey,Hotspring,131,55'; - put '43.803,-115.401,Granite Creek Hot Spring,Hailey,Hotspring,131,55'; - put '43.129,-115.34,Coyote Hot Spring,Hailey,Hotspring,135,57'; - put '44.211,-116.71,Cove Creek Hot Spring,Baker,Hotspring,131,55'; - put '44.16,-115.167,Grandjean Hot Spring,Challis,Hotspring,H,H'; - put '43.755,-115.571,Ninemeyer Hot Springs,Hailey,Hotspring,169,76'; - put '43.701,-114.738,Big Smokey Hot Spring,Hailey,Hotspring,H,H'; - put '43.831,-115.192,Queens River Hot Spring,Hailey,Hotspring,H,H'; - put '43.817,-115.046,Leggit Creek Hot Spring,Hailey,Hotspring,H,H'; - put '43.718,-115.563,Basset Hot Spring,Hailey,Hotspring,H,H'; - put '43.588,-115.988,Mores Creek Hot Spring,Hailey,Hotspring,H,H'; - put '44.951,-114.704,Mormon Ranch Warm Spring,Challis,Hotspring,H,H'; - put '44.896,-114.563,Forge Creek Hot Springs,Challis,Hotspring,H,H'; - put '44.77,-115.663,Billy Hot Spring,Challis,Hotspring,H,H'; - put '44.628,-115.197,Sheepeater Hot Springs,Challis,Hotspring,H,H'; - put '44.585,-115.072,Sulphur Creek Hot Spring,Challis,Hotspring,H,H'; - put '44.554,-115.301,Sulphur Creek Hot Spring,Challis,Hotspring,H,H'; - put '42.107,-113.39,Blm Well (Frazier Hot Spring),Pocatello,Hotspring,203,95'; - put '44.4,-115.82,Goat Hot Springs,Challis,Hotspring,H,H'; - put '45.307,-114.338,Big Creek Hot Springs,Elk City,Hotspring,199,93'; - put '44.583,-116.112,Cascade Reservoir Hot Spring,Baker,Hotspring,H,H'; - put '45.17,-115.807,Secesh Hot Spring,Elk City,Hotspring,H,H'; - put '46.235,-114.707,Prospector Hot Springs,Hamilton,Hotspring,H,H'; - put '46.138,-115.09,Stuart Hot Springs,Hamilton,Hotspring,H,H'; - put '46.006,-115.021,Marten Hot Springs,Hamilton,Hotspring,H,H'; - put '42.374,-111.726,Mound Valley Warm Spring,Preston,Hotspring,W,W'; - put '43.255,-114.829,Mormon Reservoir Warm Spring,Hailey,Hotspring,W,W'; - put '44.639,-115.671,Warm Lake Springs,Challis,Hotspring,W,W'; - put '44.445,-115.239,Bear Valley Hot Spring,Challis,Hotspring,W,W'; - put '44.354,-117.071,Old Homestead Warm Spring,Baker,Hotspring,W,W'; - put '43.327,-113.918,Condie Hot Springs,Idaho Falls,Hotspring,124,51'; - put '43.038,-112.004,Alkali Flats Warm Spring,Idaho Falls,Hotspring,93,34'; - put '44.43,-115.762,Bull Creek Hot Springs,Challis,Hotspring,H,H'; - put '42.119,-111.928,Squaw Hot Springs,Preston,Hotspring,163,73'; - put '42.333,-111.716,Cleveland Hot Springs,Preston,Hotspring,151,66'; - put '43.671,-115.696,Twin Springs,Hailey,Hotspring,151,66'; - put '43.951,-116.353,Roystone Hot Springs,Boise,Hotspring,151,66'; - put '42.704,-114.856,Salmon Falls Hot Spring,Twin Falls,Hotspring,153,67'; - put '44.16,-115.177,Sacajawea Hot Springs,Challis,Hotspring,153,67'; - put '43.738,-115.583,Vaughn Hot Spring,Hailey,Hotspring,154,68'; - put '44.669,-116.305,Council Mtn Hot Springs,Baker,Hotspring,154,68'; - put '44.831,-115.215,Kwiskwis Hot Spring,Challis,Hotspring,156,69'; - put '43.684,-114.41,Guyer Hot Springs,Hailey,Hotspring,158,70'; - put '43.155,-115.518,Hot Springs,Hailey,Hotspring,158,70'; - put '44.586,-116.63,Lakey Hot Spring,Baker,Hotspring,158,70'; - put '42.333,-115.65,Indian Hot Springs,Twin Falls,Hotspring,160,71'; - put '42.637,-114.892,Poison Springs,Twin Falls,Hotspring,H,H'; - put '44.813,-115.123,Middle Fork Indian Creek Hot Sprin,Challis,Hotspring,162,72'; - put '44.072,-115.543,Kirkham Hot Springs,Challis,Hotspring,149,65'; - put '43.328,-114.399,Magic Hot Springs,Hailey,Hotspring,163,73'; - put '43.293,-114.908,Barrons Hot Spring,Hailey,Hotspring,167,75'; - put '44.154,-115.993,Warm Springs Creek Hot Springs,Challis,Hotspring,167,75'; - put '44.268,-114.748,Sunbeam Hot Springs,Challis,Hotspring,169,76'; - put '44.092,-116.052,Deer Hot Springs,Baker,Hotspring,176,80'; - put '43.563,-114.798,Worswick Hot Springs,Hailey,Hotspring,180,82'; - put '42.133,-111.928,Battle Creek Hot Springs,Preston,Hotspring,183,84'; - put '44.364,-115.856,Boiling Springs,Challis,Hotspring,185,85'; - put '44.157,-115.314,Bonneville Hot Springs,Challis,Hotspring,185,85'; - put '44.799,-115.129,Indian Creek Hot Spring,Challis,Hotspring,190,88'; - put '44.568,-115.695,Vulcan Hot Springs,Challis,Hotspring,190,88'; - put '44.306,-116.745,Crane Creek Hot Springs,Baker,Hotspring,198,92'; - put '44.416,-116.031,Cabarton Hot Spring,Baker,Hotspring,160,71'; - put '42.781,-111.983,Portneuf River Warm Spring,Preston,Hotspring,93,34'; - put '44.621,-115.985,Badley Warm Spring,Challis,Hotspring,100,38'; - put '45.201,-116.312,Boulder Creek Spring,Grangeville,Hotspring,82,28'; - put '42.24,-113.588,Sears Spring,Pocatello,Hotspring,84,29'; - put '44.257,-112.639,Warm Springs,Dubois,Hotspring,84,29'; - put '42.911,-111.556,Henry Warm Spring,Preston,Hotspring,86,30'; - put '43.021,-111.695,Wilson Lake Warm Spring,Driggs,Hotspring,86,30'; - put '44.495,-116.732,Keithly Warm Spring,Baker,Hotspring,86,30'; - put '42.655,-111.643,Steamboat Hot Spring,Preston,Hotspring,88,31'; - put '45.152,-116.296,Stinky Warm Spring,Grangeville,Hotspring,88,31'; - put '42.725,-112.872,Indian Springs,Pocatello,Hotspring,90,32'; - put '43.114,-112.167,Yandell Springs,Idaho Falls,Hotspring,90,32'; - put '44.64,-116.045,Arling Hot Spring,Baker,Hotspring,90,32'; - put '42.657,-111.604,Soda Springs,Preston,Hotspring,82,28'; - put '45.07,-115.826,Lick Creek Warm Spring,Elk City,Hotspring,91,33'; - put '42.337,-111.726,Treasureton Hot Springs,Preston,Hotspring,95,35'; - put '44.382,-114.088,Little Antelope Flat Warm Spring,Challis,Hotspring,93,34'; - put '43.21,-111.495,Brockman Creek Hot Spring,Driggs,Hotspring,95,35'; - put '44.398,-115.149,Cape Horn Warm Springs,Challis,Hotspring,95,35'; - put '42.337,-114.509,Nat-Soo-Pah Warm Spring,Twin Falls,Hotspring,97,36'; - put '44.9,-115.505,Hot Creek Warm Spring,Challis,Hotspring,97,36'; - put '42.405,-114.142,Artesian City Hot Springs,Twin Falls,Hotspring,99,37'; - put '42.762,-115.739,Indian Bathtub Hot Springs,Twin Falls,Hotspring,99,37'; - put '43.227,-111.109,Alpine Warm Spring,Driggs,Hotspring,99,37'; - put '42.545,-112.906,Rockland Warm Springs,Pocatello,Hotspring,100,38'; - put '43.805,-114.585,Russian John Hot Spring,Hailey,Hotspring,100,38'; - put '43.779,-114.539,Easley Hot Springs,Hailey,Hotspring,100,38'; - put '44.26,-114.838,Mormon Bend Hot Spring,Challis,Hotspring,100,38'; - put '44.64,-113.504,Big Eightmile Creek Warm Spring,Dubois,Hotspring,91,33'; - put '42.339,-112.436,Kent Warm Spring,Pocatello,Hotspring,75,24'; - put '42.957,-112.458,Tadpole Warm Spring,Pocatello,Hotspring,68,20'; - put '43.607,-111.189,Taylor Springs,Driggs,Hotspring,68,20'; - put '43.972,-116.325,Sweet Warm Spring,Boise,Hotspring,68,20'; - put '44.717,-115.703,Dollar Creek Warm Spring,Challis,Hotspring,68,20'; - put '42.625,-113.107,Lake Walcott Hot Spring,Pocatello,Hotspring,70,21'; - put '42.015,-114.237,Thoroughbred Warm Springs,Twin Falls,Hotspring,69,21'; - put '42.928,-111.592,Blackfoot Reservoir Warm Spring,Preston,Hotspring,72,22'; - put '42.286,-113.446,"Rice Spring, Ward Spring",Pocatello,Hotspring,72,22'; - put '42.085,-113.564,Grape Creek Warm Spring,Pocatello,Hotspring,72,22'; - put '43.66,-111.715,Elkhorn Warm Spring,Driggs,Hotspring,72,22'; - put '43.367,-113.884,Rush Warm Spring,Idaho Falls,Hotspring,72,22'; - put '44.306,-117.042,Weiser Warm Springs,Baker,Hotspring,72,22'; - put '45.344,-114.463,Owl Creek Hot Springs,Elk City,Hotspring,122,50'; - put '44.454,-112.696,Big Spring,Dubois,Hotspring,73,23'; - put '44.269,-113.449,Barney Hot Springs,Dubois,Hotspring,82,28'; - put '43.5,-115.308,Towne Creek Warm Spring,Hailey,Hotspring,75,24'; - put '43.161,-116.332,Thomas Flats Warm Spring,Boise,Hotspring,75,24'; - put '44.612,-113.363,Whittaker Warm Springs,Dubois,Hotspring,75,24'; - put '42.173,-112.239,Malad Warm Spring,Pocatello,Hotspring,77,25'; - put '42.156,-112.348,Pleasantview Warm Springs,Pocatello,Hotspring,77,25'; - put '42.025,-112.226,Prices Warm Spring,Pocatello,Hotspring,77,25'; - put '42.865,-116.368,Lower Birch Spring,Jordan Valley,Hotspring,77,25'; - put '43.423,-111.414,Fall Creek Mineral Springs,Driggs,Hotspring,77,25'; - put '42.986,-111.743,Blackfoot River Warm Spring,Preston,Hotspring,79,26'; - put '42.426,-111.378,Pescadero Warm Spring,Preston,Hotspring,79,26'; - put '44.091,-111.458,Ashton Warm Spring,Ashton,Hotspring,79,26'; - put '42.056,-112.246,Woodruff Hot Spring,Pocatello,Hotspring,81,27'; - put '43.831,-116.396,Highland Land Co Warm Spring,Boise,Hotspring,73,23'; - put '44.847,-115.696,Holdover Hot Spring,Challis,Hotspring,117,47'; - put '43.047,-114.929,Hot Sulphur Lake,Hailey,Hotspring,81,27'; - put '43.603,-115.07,Baumgartner Hot Spring,Hailey,Hotspring,111,44'; - put '44.465,-116.037,Belvidere Hot Spring,Baker,Hotspring,111,44'; - put '42.621,-112.008,Lava Hot Springs,Pocatello,Hotspring,113,45'; - put '43.823,-115.327,Weatherby Hot Spring,Hailey,Hotspring,113,45'; - put '43.335,-115.044,Wolf Hot Spring,Hailey,Hotspring,113,45'; - put '44.905,-113.929,Goldbug Hot Spring,Dubois,Hotspring,113,45'; - put '45.095,-113.836,Salmon Hot Spring,Dillon,Hotspring,113,45'; - put '45.277,-115.912,Burgdorf Hot Springs,Elk City,Hotspring,113,45'; - put '44.836,-114.79,Hospital Hot Spring,Challis,Hotspring,115,46'; - put '44.72,-114.016,Cronks Canyon Hot Spring,Challis,Hotspring,115,46'; - put '44.721,-115.207,Pistol Creek Hot Springs,Challis,Hotspring,115,46'; - put '43.791,-111.435,Pincock (Green Canyon) Hot Springs,Driggs,Hotspring,111,44'; - put '43.414,-116.707,Givens Hot Springs,Boise,Hotspring,117,47'; - put '45.503,-114.463,Horse Creek Hot Springs,Elk City,Hotspring,109,43'; - put '46.464,-115.035,Weir Creek Hot Springs,Hamilton,Hotspring,117,47'; - put '42.115,-111.264,Bear Lake Hot Springs,Preston,Hotspring,118,48'; - put '42.173,-113.861,Oakley Hot Spring,Pocatello,Hotspring,118,48'; - put '46.463,-114.872,Jerry Johnson Hot Springs,Hamilton,Hotspring,118,48'; - put '43.644,-111.687,Heise Hot Springs,Driggs,Hotspring,120,49'; - put '44.799,-114.806,Lower Loon Creek Hot Spring,Challis,Hotspring,120,49'; - put '44.253,-115.891,Rocky Canyon Hot Springs,Challis,Hotspring,120,49'; - put '46.316,-115.258,Stanley Hot Springs,Hamilton,Hotspring,120,49'; - put '43.779,-115.486,Brown Creek Hot Spring,Hailey,Hotspring,122,50'; - put '44.628,-114.601,Shower Bath Springs,Challis,Hotspring,122,50'; - put '44.171,-114.624,Slate Creek Hot Spring,Challis,Hotspring,122,50'; - put '44.392,-115.834,Ground Hog Hot Springs,Challis,Hotspring,100,38'; - put '42.797,-115.723,"Bat Hot Spring, Pence Hot Spring",Twin Falls,Hotspring,117,47'; - put '42.767,-115.725,Lower Indian Bathtub Hot Springs,Twin Falls,Hotspring,108,42'; - put '42.102,-113.632,Durfee Spring,Pocatello,Hotspring,102,39'; - put '44.33,-115.802,Silver Creek Hot Spring,Challis,Hotspring,102,39'; - put '42.447,-113.523,Marsh Creek Hot Spring,Pocatello,Hotspring,104,40'; - put '42.449,-113.511,Marsh Gully Hot Springs,Pocatello,Hotspring,106,41'; - put '42.798,-115.742,Bruneau Hot Spring,Twin Falls,Hotspring,106,41'; - put '43.576,-114.83,Preis Hot Spring,Hailey,Hotspring,106,41'; - put '43.677,-116.208,Terteling Hot Springs,Boise,Hotspring,106,41'; - put '44.254,-114.443,Sullivan Hot Springs,Challis,Hotspring,106,41'; - put '44.224,-114.929,Stanley Hot Spring,Challis,Hotspring,106,41'; - put '44.101,-114.865,Rosalys Warm Spring,Challis,Hotspring,106,41'; - put '44.06,-115.819,Danskin Creek Hot Spring,Challis,Hotspring,106,41'; - put '45.852,-114.937,Running Warm Springs,Elk City,Hotspring,106,41'; - put '43.363,-113.779,Milford Sweat Hot Spring,Idaho Falls,Hotspring,111,44'; - put '46.466,-114.939,Colgate Warm Springs,Hamilton,Hotspring,106,41'; - put '44.626,-115.749,Trail Creek Hot Spring,Challis,Hotspring,122,50'; - put '43.816,-115.863,Warm Springs,Hailey,Hotspring,108,42'; - put '43.76,-115.56,Pool Creek Hot Spring,Hailey,Hotspring,108,42'; - put '45.042,-114.616,Snowshoe Johnsons Hot Spring,Elk City,Hotspring,108,42'; - put '42.388,-112.085,Downata Hot Springs,Pocatello,Hotspring,109,43'; - put '42.013,-114.504,Magic Hot Springs,Twin Falls,Hotspring,109,43'; - put '42.779,-115.715,Buckaroo Hot Spring,Twin Falls,Hotspring,109,43'; - put '43.99,-114.8,Pierson Hot Springs,Hailey,Hotspring,109,43'; - put '43.038,-114.988,Tschanne Hot Spring,Hailey,Hotspring,109,43'; - put '44.523,-114.173,Beardsley Hot Springs,Challis,Hotspring,109,43'; - put '44.733,-115.018,Sunflower Flat Hot Spring,Challis,Hotspring,109,43'; - put '44.516,-115.295,Dagger Creek Hot Spring,Challis,Hotspring,110,43'; - put '44.971,-116.203,Krigbaum Hot Springs,Baker,Hotspring,109,43'; - put '45.416,-116.172,Riggins Hot Springs,Grangeville,Hotspring,106,41'; - put '42.735,-73.2,Sand Spring,Albany,Hotspring,75,24'; - put '46.106,-114.004,Sleeping Child Hot Springs,Hamilton,Hotspring,122,50'; - put '45.697,-114.365,Blue Joint Hot Springs 2,Elk City,Hotspring,84,29'; - put '44.769,-111.649,Sloan Cow Camp Spring,Ashton,Hotspring,86,30'; - put '47.632,-112.855,Medicine (Sun River) Springs,Choteau,Hotspring,86,30'; - put '45.75,-113.938,Gallogly Spring,Dillon,Hotspring,100,38'; - put '47.33,-114.789,Quinns Hot Springs,Wallace,Hotspring,109,43'; - put '45.171,-112.153,Puller Hot Springs,Dillon,Hotspring,111,44'; - put '46.728,-114.533,"Lolo Hot Springs, Granite Springs",Hamilton,Hotspring,111,44'; - put '45.337,-110.691,Chico Hot Springs,Bozeman,Hotspring,113,45'; - put '47.607,-114.663,Camas Hot Springs,Wallace,Hotspring,113,45'; - put '45.841,-114.038,Medicine Hot Springs,Elk City,Hotspring,117,47'; - put '45.458,-113.109,Elkhorn Hot Springs,Dillon,Hotspring,118,48'; - put '45.027,-112.844,Mcmenomey Ranch Spring,Dillon,Hotspring,68,20'; - put '45.792,-112.126,Renova Hot Springs,Dillon,Hotspring,122,50'; - put '44.701,-111.878,Staudenmeyer Springs,Ashton,Hotspring,82,28'; - put '45.602,-111.9,Potosi Warm Springs,Bozeman,Hotspring,124,51'; - put '45.575,-111.683,Norris Hot Springs,Bozeman,Hotspring,127,53'; - put '45.462,-112.475,New Biltmore Hot Springs,Dillon,Hotspring,127,53'; - put '45.66,-111.186,Bozeman Hot Springs,Bozeman,Hotspring,131,55'; - put '45.896,-112.233,Pipestone Hot Springs,Dillon,Hotspring,135,57'; - put '46.547,-110.903,White Sulphur Springs,White Sulphur,Hotspring,136,58'; - put '46.448,-111.982,Alhambra Hot Springs,White Sulphur,Hotspring,138,59'; - put '45.757,-110.256,Hunters Hot Springs,Bozeman,Hotspring,140,60'; - put '45.368,-113.403,Jardine Hot Spring,Dillon,Hotspring,140,60'; - put '46.596,-112.108,Broadwater (Helena) Hot Springs,Butte,Hotspring,151,66'; - put '44.984,-111.613,Wolf Creek Hot Springs,Ashton,Hotspring,154,68'; - put '45.685,-112.295,Silver Star Hot Springs,Dillon,Hotspring,163,73'; - put '45.59,-111.899,Potosi Hot Springs,Bozeman,Hotspring,122,50'; - put '45.105,-112.751,Browns Springs,Dillon,Hotspring,75,24'; - put '46.718,-113.306,Bearmouth Warm Spring 2,Butte,Hotspring,68,20'; - put '46.717,-113.32,Bearmouth Warm Spring 1,Butte,Hotspring,68,20'; - put '47.217,-109.471,Brooks Warm Spring,Lewistown,Hotspring,68,20'; - put '45.708,-110.976,Bridger Canyon Warm Spring,Bozeman,Hotspring,70,21'; - put '46.795,-108.883,Durfee Creek Springs,Roundup,Hotspring,70,21'; - put '46.704,-113.452,Nimrod Springs,Butte,Hotspring,70,21'; - put '47.876,-108.656,Landusky Springs,Lewistown,Hotspring,70,21'; - put '45.032,-110.667,Bear Creek Springs,Bozeman,Hotspring,72,22'; - put '45.111,-112.714,Lovells Hot Spring,Dillon,Hotspring,72,22'; - put '46.106,-112.903,Anaconda Hot Springs,Butte,Hotspring,72,22'; - put '45.235,-112.135,Trudau Warm Springs,Dillon,Hotspring,73,23'; - put '45.698,-114.382,Blue Joint Hot Spring 1,Elk City,Hotspring,84,29'; - put '45.037,-111.953,Vigilante Spring,Bozeman,Hotspring,75,24'; - put '45.608,-110.571,Carter Bridge Warm Springs,Bozeman,Hotspring,82,28'; - put '46.355,-111.565,Bedford Hot Springs,White Sulphur,Hotspring,74,24'; - put '45.553,-110.142,Anderson Springs,Bozeman,Hotspring,77,25'; - put '45.42,-112.692,Apex Warm Spring,Dillon,Hotspring,77,25'; - put '46.607,-112.776,Garrison Warm Springs,Butte,Hotspring,77,25'; - put '47.843,-108.598,The (Landusky) Plunge,Lewistown,Hotspring,77,25'; - put '44.785,-111.649,West Fork Swimming Hole,Ashton,Hotspring,79,26'; - put '46.61,-112.555,Avon Warm Spring,Butte,Hotspring,79,26'; - put '46.334,-112.886,Deerlodge Prison Ranch Springs,Butte,Hotspring,79,26'; - put '47.994,-108.445,Lodgepole (Big Warm) Springs,Lewistown,Hotspring,79,26'; - put '47.451,-114.648,Green Springs,Wallace,Hotspring,79,26'; - put '45.392,-112.452,Beaverhead Rock Spring,Dillon,Hotspring,81,27'; - put '44.704,-111.892,Andersons Pasture Springs,Ashton,Hotspring,82,28'; - put '47.971,-108.395,Little Warm Springs,Lewistown,Hotspring,73,23'; - put '46.198,-112.094,Boulder Hot Springs,Butte,Hotspring,169,76'; - put '46.178,-112.794,Warm Springs (State Hospital),Butte,Hotspring,172,78'; - put '45.367,-111.726,Ennis Hot Springs,Bozeman,Hotspring,181,83'; - put '46.044,-112.811,Gregson Hot Springs,Butte,Hotspring,158,70'; - put '45.09,-110.774,Laduke (Corwin) Hot Spring,Bozeman,Hotspring,154,68'; - put '35.897,-82.826,Hot Springs,Knoxville,Hotspring,108,42'; - put '32.644,-108.128,Apache Tejo Warm Spring,Silver City,Hotspring,97,36'; - put '33.135,-107.254,Truth Or Consequences,Tularosa,Hotspring,113,45'; - put '36.305,-106.053,Ojo Caliente (Arsenic Spring),Aztec,Hotspring,111,44'; - put '33.162,-108.209,Spring (Hot),Clifton,Hotspring,111,44'; - put '36.508,-105.722,Manby Hot Springs,Raton,Hotspring,100,38'; - put '35.849,-106.629,Spence Hot Springs,Albuquerque,Hotspring,100,38'; - put '35.972,-106.56,San Antonio Warm Spring,Albuquerque,Hotspring,101,38'; - put '35.82,-106.627,Mccauley Hot Springs,Albuquerque,Hotspring,99,37'; - put '35.793,-106.685,Soda Dam Hot Springs,Albuquerque,Hotspring,117,47'; - put '33.831,-108.8,(Upper) Frisco Hot Spring,Clifton,Hotspring,98,37'; - put '35.646,-106.888,Warm Springs,Albuquerque,Hotspring,129,54'; - put '36.324,-105.606,Ponce De Leon Springs,Raton,Hotspring,93,34'; - put '34.038,-106.94,"Socorro Spring, Sedillo Spring",Socorro,Hotspring,93,34'; - put '33.293,-108.282,"Spring Mfg Two, Spring Mfg Three",Clifton,Hotspring,99,37'; - put '35.592,-106.753,Indian Springs,Albuquerque,Hotspring,123,51'; - put '32.501,-106.926,Radium Springs,Las Cruces,Hotspring,127,53'; - put '33.274,-108.25,Spring Mfg Four,Clifton,Hotspring,93,34'; - put '35.938,-106.646,San Antonio Hot Spring,Albuquerque,Hotspring,129,54'; - put '33.244,-108.88,San Francisco Hot Springs,Clifton,Hotspring,120,49'; - put '32.748,-107.836,Mimbres Hot Springs,Las Cruces,Hotspring,136,58'; - put '35.653,-105.29,Montezuma Hot Springs,Santa Fe,Hotspring,138,59'; - put '33.233,-108.235,Spring (Hot),Clifton,Hotspring,149,65'; - put '33.199,-108.209,Gila Hot Springs,Clifton,Hotspring,151,66'; - put '33.108,-108.483,Turkey Creek Hot Spring,Clifton,Hotspring,165,74'; - put '35.772,-106.69,Jemez Springs,Albuquerque,Hotspring,169,76'; - put '35.908,-106.615,Sulphur Springs,Albuquerque,Hotspring,189,87'; - put '33.237,-108.88,Hot Springs,Clifton,Hotspring,H,H'; - put '32.562,-108.027,Kennecott Warm Springs,Silver City,Hotspring,W,W'; - put '32.554,-107.994,Faywood Hot Springs,Las Cruces,Hotspring,129,54'; - put '33.898,-108.501,Aragon Springs,Clifton,Hotspring,70,21'; - put '34.847,-107.091,Spring (Salt),Socorro,Hotspring,76,24'; - put '34.903,-107.085,El Ojo Escondido,Socorro,Hotspring,73,23'; - put '35.06,-107.133,Alamos Spring,Albuquerque,Hotspring,72,22'; - put '34.912,-108.951,Rainbow Spring,Saint Johns,Hotspring,71,22'; - put '34.698,-107.129,Spring,Socorro,Hotspring,71,22'; - put '32.455,-104.489,Indian Big Spring,Carlsbad,Hotspring,79,26'; - put '34.995,-106.454,Clear Water Spring,Socorro,Hotspring,69,21'; - put '32.821,-108.408,Ash Spring,Silver City,Hotspring,72,22'; - put '32.83,-109.047,Goat Camp Spring,Silver City,Hotspring,69,21'; - put '35.548,-106.827,San Ysidro Warm Springs,Albuquerque,Hotspring,68,20'; - put '34.116,-106.98,Ojitos Springs,Socorro,Hotspring,68,20'; - put '32.248,-104.411,Mosley Spring,Carlsbad,Hotspring,68,20'; - put '33.708,-109.025,Frieborn Canyon Spring,Clifton,Hotspring,92,33'; - put '33.192,-108.18,Lyons Hunting Lodge Hot Springs,Clifton,Hotspring,126,52'; - put '35.601,-106.86,Phillips Springs,Albuquerque,Hotspring,70,21'; - put '33.285,-108.262,Spring Mfg One,Clifton,Hotspring,88,31'; - put '33.306,-108.324,The Meadows Warm Spring,Clifton,Hotspring,91,33'; - put '34.049,-106.939,Cook Spring,Socorro,Hotspring,70,21'; - put '32.795,-107.276,Derry Warm Springs,Las Cruces,Hotspring,92,33'; - put '32.884,-108.358,Allen Springs,Silver City,Hotspring,78,26'; - put '33.279,-107.563,Warm Springs,Tularosa,Hotspring,87,31'; - put '32.606,-107.19,Souse Springs,Las Cruces,Hotspring,88,31'; - put '34.808,-107.091,Spring (Salt),Socorro,Hotspring,86,30'; - put '35.54,-106.854,San Ysidro Hot Springs,Albuquerque,Hotspring,85,29'; - put '36.368,-106.059,Statue Spring,Aztec,Hotspring,83,28'; - put '34.833,-107.091,Laguna Pueblo Seeps,Socorro,Hotspring,82,28'; - put '33.572,-107.593,Ojo Caliente,Tularosa,Hotspring,83,28'; - put '34.854,-107.088,Laguna Pueblo Springs,Socorro,Hotspring,80,27'; - put '32.843,-108.512,Mangas Springs,Silver City,Hotspring,81,27'; - put '34.769,-107.085,Spring (Salt),Socorro,Hotspring,78,26'; - put '34.032,-106.777,Ojo De Las Canas,Socorro,Hotspring,79,26'; - put '40.972,-119.007,Black Rock Hot Spring,Lovelock,Hotspring,136,58'; - put '38.899,-119.41,Nevada (Hinds) Hot Springs,Walker Lake,Hotspring,144,62'; - put '38.922,-118.198,Wedell Hot Springs,Walker Lake,Hotspring,144,62'; - put '41.183,-114.991,Hot Springs,Wells,Hotspring,142,61'; - put '38.437,-116.277,Hot Creek Valley Spring,Tonopah,Hotspring,142,61'; - put '41.788,-114.735,Mineral Hot Spring,Wells,Hotspring,140,60'; - put '37.825,-117.337,Alkali Hot Spring,Goldfield,Hotspring,140,60'; - put '41.412,-114.675,Wine Cup Ranch Springs,Wells,Hotspring,138,59'; - put '40.404,-116.517,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59'; - put '40.417,-116.507,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59'; - put '40.603,-116.463,Horseshoe Ranch Springs,Winnemucca,Hotspring,136,58'; - put '41.378,-119.182,Springs (Hot),Vya,Hotspring,136,58'; - put '39.883,-114.893,Cherry Creek Hot Springs,Ely,Hotspring,144,62'; - put '40.922,-117.108,Hot Pot (Blossom Hot Springs),Winnemucca,Hotspring,136,58'; - put '41.721,-118.505,Howard Hot Spring,Vya,Hotspring,135,57'; - put '41.421,-117.388,The Hot Springs,Mcdermitt,Hotspring,135,57'; - put '40.418,-117.415,Buffalo Springs,Winnemucca,Hotspring,162,72'; - put '39.031,-116.666,Dianas Punch Bowl,Millett,Hotspring,138,59'; - put '39.404,-116.347,Klobe (Bartholomae) Hot Spring,Millett,Hotspring,156,69'; - put '36.975,-116.721,Hicks Hot Springs,Death Valley,Hotspring,109,43'; - put '40.178,-117.496,Home Station Ranch Hot Spring,Winnemucca,Hotspring,135,57'; - put '39.797,-118.067,Dixie Hot Springs,Reno,Hotspring,162,72'; - put '39.904,-116.588,Walti Hot Springs,Millett,Hotspring,162,72'; - put '38.981,-119.833,Walleys Hot Springs,Walker Lake,Hotspring,160,71'; - put '38.464,-115.792,Chimney Warm Spring,Lund,Hotspring,160,71'; - put '39.328,-116.858,Spencer Hot Springs,Millett,Hotspring,162,72'; - put '41.108,-117.578,Hot Springs,Mcdermitt,Hotspring,158,70'; - put '36.002,-114.742,Spring,Las Vegas,Hotspring,145,63'; - put '41.576,-115.181,Hot Creek Springs,Wells,Hotspring,151,66'; - put '40.954,-117.488,Golconda Hot Spring (South),Winnemucca,Hotspring,151,66'; - put '40.22,-116.068,Bruffeys Hot Springs,Winnemucca,Hotspring,149,65'; - put '40.249,-115.409,Smith Ranch Springs,Elko,Hotspring,149,65'; - put '41.867,-114.692,San Jacinto Ranch Spring,Wells,Hotspring,148,64'; - put '40.765,-116.04,Hot Sulphur Springs,Winnemucca,Hotspring,147,64'; - put '38.188,-116.373,Warm Springs,Tonopah,Hotspring,145,63'; - put '41.567,-118.564,Dyke Hot Springs,Vya,Hotspring,158,70'; - put '38.365,-115.867,Abel Spring,Lund,Hotspring,115,46'; - put '41.929,-114.071,Nile Spring,Wells,Hotspring,109,43'; - put '39.193,-119.752,Carson Hot Springs,Reno,Hotspring,120,49'; - put '39.512,-119.907,Lawton Hot Springs,Reno,Hotspring,120,49'; - put '39.944,-119.509,Anaho Island Spring,Reno,Hotspring,120,49'; - put '37.761,-117.632,Silverpeak Hot Spring,Goldfield,Hotspring,118,48'; - put '37.621,-114.51,Caliente Hot Springs,Caliente,Hotspring,118,48'; - put '39.058,-119.742,Saratoga Hot Spring,Reno,Hotspring,122,50'; - put '39.308,-117.552,Hot Springs,Millett,Hotspring,115,46'; - put '40.673,-116.838,Hot Springs,Winnemucca,Hotspring,122,50'; - put '39.08,-116.639,Potts Ranch Hot Springs,Millett,Hotspring,113,45'; - put '38.388,-115.866,Coyote Hole Spring,Lund,Hotspring,113,45'; - put '41.753,-118.841,Warm Springs,Vya,Hotspring,112,44'; - put '41.386,-114.165,Spring (Hot),Wells,Hotspring,111,44'; - put '40.961,-117.494,Golconda Hot Spring (North),Winnemucca,Hotspring,165,74'; - put '40.313,-117.07,Mound Springs,Winnemucca,Hotspring,109,43'; - put '40.585,-115.285,Sulphur Hot Springs,Elko,Hotspring,205,96'; - put '39.059,-119.815,Hobo Hot Springs,Reno,Hotspring,114,46'; - put '40.191,-117.107,Hot Springs,Winnemucca,Hotspring,127,53'; - put '40.819,-115.777,Hot Hole,Elko,Hotspring,133,56'; - put '39.286,-119.84,Bowers Mansion Hot Spring,Reno,Hotspring,133,56'; - put '41.809,-118.861,Painted Hills Mine,Vya,Hotspring,131,55'; - put '41.925,-118.805,Bog Hot Springs,Vya,Hotspring,131,55'; - put '41.647,-115.775,Wild Horse Hot Springs,Wells,Hotspring,129,54'; - put '40.183,-117.102,Hot Springs Ranch,Winnemucca,Hotspring,129,54'; - put '40.08,-117.604,Mccoy Springs,Winnemucca,Hotspring,120,49'; - put '41.353,-119.216,Spring (Hot),Vya,Hotspring,127,53'; - put '41.357,-119.188,Springs (Hot),Vya,Hotspring,133,56'; - put '40.198,-117.103,Hot Springs,Winnemucca,Hotspring,127,53'; - put '39.42,-119.738,Dimonte Spring,Reno,Hotspring,127,53'; - put '38.952,-115.23,Williams Hot Spring,Lund,Hotspring,127,53'; - put '41.261,-115.305,Hot Springs,Wells,Hotspring,126,52'; - put '39.041,-116.663,Hot Spring,Millett,Hotspring,124,51'; - put '41.365,-119.221,Spring (Hot),Vya,Hotspring,122,50'; - put '41.159,-114.986,"Threemile Spring, Sulphur Hot Spr",Wells,Hotspring,122,50'; - put '41.339,-119.192,Springs (Hot),Vya,Hotspring,127,53'; - put '39.893,-116.649,Little Hot Springs,Millett,Hotspring,H,H'; - put '39.787,-119.011,Bradys Hot Springs,Reno,Hotspring,209,98'; - put '41.175,-115.278,Hot Spring,Wells,Hotspring,H,H'; - put '41.145,-114.994,Hot Spring,Wells,Hotspring,H,H'; - put '40.864,-117.349,Sulphur Spring,Winnemucca,Hotspring,H,H'; - put '39.733,-119.039,Eagle Salt Works Spring,Reno,Hotspring,H,H'; - put '39.281,-118.42,Sand Springs,Reno,Hotspring,H,H'; - put '38.81,-116.397,Fish Springs,Tonopah,Hotspring,W,W'; - put '39.559,-117.427,Petersons Mill Hot Spring,Millett,Hotspring,H,H'; - put '38.339,-116.662,Warm Spring,Tonopah,Hotspring,W,W'; - put '38.859,-119.175,Hot Spring,Walker Lake,Hotspring,H,H'; - put '39.995,-117.854,Senator Fumaroles,Millett,Hotspring,B,B'; - put '39.565,-118.856,(Soda Lake Area),Reno,Hotspring,210,99'; - put '40.141,-119.687,The Needle Rocks Hot Springs,Lovelock,Hotspring,208,98'; - put '40.146,-119.673,The Needle Rocks Hot Spring,Lovelock,Hotspring,208,98'; - put '40.662,-119.365,Great Boiling Spring (Gerlach),Lovelock,Hotspring,208,98'; - put '39.388,-119.743,Steamboat Springs,Reno,Hotspring,205,96'; - put '39.866,-118.017,Dixie Comstock Mine,Reno,Hotspring,H,H'; - put '40.746,-116.689,White House Spring,Winnemucca,Hotspring,W,W'; - put '39.98,-119.502,Pyramid Island Hot Spring,Reno,Hotspring,.,.'; - put '41.934,-118.808,Warm Springs,Vya,Hotspring,W,W'; - put '41.385,-116.058,Petaini Springs,Mcdermitt,Hotspring,W,W'; - put '41.064,-115.389,Warm Springs,Wells,Hotspring,W,W'; - put '41.066,-114.99,Spring,Wells,Hotspring,W,W'; - put '41.355,-114.133,Warm Springs,Wells,Hotspring,W,W'; - put '41.148,-116.733,Hot Lake,Mcdermitt,Hotspring,H,H'; - put '40.684,-116.153,Ellison Ranch Warm Spring,Winnemucca,Hotspring,W,W'; - put '40.604,-117.648,Leach Hot Springs,Winnemucca,Hotspring,207,97'; - put '40.751,-115.035,Warm Springs,Elko,Hotspring,W,W'; - put '40.782,-115.363,Warm Spring,Elko,Hotspring,W,W'; - put '39.529,-116.388,Warm Spring,Millett,Hotspring,W,W'; - put '39.072,-115.635,Big Blue Spring,Ely,Hotspring,W,W'; - put '38.95,-119.388,Spring,Walker Lake,Hotspring,W,W'; - put '38.965,-118.689,Double Spring,Walker Lake,Hotspring,W,W'; - put '38.458,-117.303,Indian Springs,Tonopah,Hotspring,W,W'; - put '40.592,-116.157,Raine Ranch Springs,Winnemucca,Hotspring,W,W'; - put '39.941,-116.681,Hot Springs,Millett,Hotspring,180,82'; - put '40.567,-116.588,Beowawe Hot Springs (The Geysers),Winnemucca,Hotspring,208,98'; - put '40.761,-117.492,Hot Springs,Winnemucca,Hotspring,185,85'; - put '40.653,-119.378,Mud Springs,Lovelock,Hotspring,184,84'; - put '38.768,-119.174,Wilson Hot Spring,Walker Lake,Hotspring,183,84'; - put '41.921,-118.709,Baltazor Hot Spring,Vya,Hotspring,181,83'; - put '40.857,-119.328,Fly Ranch (Wards) Hot Springs,Lovelock,Hotspring,180,82'; - put '39.597,-119.11,Patua Hot Springs (Fernley),Reno,Hotspring,187,86'; - put '39.028,-117.136,Mcleod Ranch Hot Spring,Millett,Hotspring,180,82'; - put '40.316,-116.433,Hot Spring,Winnemucca,Hotspring,186,86'; - put '38.521,-116.365,Hot Creek Ranch Hot Spring,Tonopah,Hotspring,180,82'; - put '41.051,-119.028,Double Hot Springs,Vya,Hotspring,178,81'; - put '40.003,-117.718,Hyder Hot Springs,Winnemucca,Hotspring,176,80'; - put '39.665,-114.807,Monte Neva Hot Springs,Ely,Hotspring,176,80'; - put '40.368,-117.327,Buffalo Valley Hot Springs,Winnemucca,Hotspring,174,79'; - put '40.699,-116.133,Hot Springs (Carlin),Winnemucca,Hotspring,174,79'; - put '41.052,-118.717,Macfarlane Hot Spring,Vya,Hotspring,170,77'; - put '39.342,-118.578,Borax Spring,Reno,Hotspring,180,82'; - put '39.484,-119.804,Moana Springs,Reno,Hotspring,199,93'; - put '41.243,-114.947,Twelvemile Spring,Wells,Hotspring,102,39'; - put '39.38,-119.74,Steamboat Springs,Reno,Hotspring,205,96'; - put '39.558,-116.36,Bartine Hot Springs,Millett,Hotspring,108,42'; - put '39.954,-117.917,Fumaroles,Millett,Hotspring,204,96'; - put '40.389,-119.402,Hot Seeps (San Emidio Desert),Lovelock,Hotspring,203,95'; - put '38.822,-117.183,Darroughs Hot Springs,Tonopah,Hotspring,203,95'; - put '40.088,-117.725,Sou (Seven Devils) Hot Springs,Winnemucca,Hotspring,185,85'; - put '41.363,-118.788,Pinto Hot Springs,Vya,Hotspring,199,93'; - put '40.408,-117.883,Kyle Hot Springs,Winnemucca,Hotspring,171,77'; - put '41.357,-118.809,West Pinto Hot Spring,Vya,Hotspring,198,92'; - put '39.316,-117.549,Hot Springs,Millett,Hotspring,198,92'; - put '41.468,-116.15,Hot Sulphur Springs (Tuscarora),Mcdermitt,Hotspring,194,90'; - put '40.813,-115.778,Elko Hot Spring,Elko,Hotspring,190,88'; - put '39.208,-118.723,"Lee Hot Springs, Allen Springs",Reno,Hotspring,190,88'; - put '40.262,-119.379,Boiling Springs,Lovelock,Hotspring,187,86'; - put '40.77,-119.113,Butte Springs (Trego Hot Springs),Lovelock,Hotspring,187,86'; - put '39.161,-119.183,Wabuska Hot Springs,Reno,Hotspring,201,94'; - put '39.814,-115.612,Giocoecha Warm Springs,Ely,Hotspring,76,24'; - put '36.389,-114.433,Blue Point Spring,Las Vegas,Hotspring,82,28'; - put '37.016,-117.211,Seep,Goldfield,Hotspring,77,25'; - put '37.751,-116.274,Cedar Spring,Goldfield,Hotspring,77,25'; - put '37.896,-114.227,Flatnose Ranch Spring,Caliente,Hotspring,77,25'; - put '36.207,-115.983,Pahrump (Bennetts) Spring,Las Vegas,Hotspring,77,25'; - put '41.775,-115.921,Rizzi Ranch Hot Spring,Wells,Hotspring,106,41'; - put '35.944,-114.731,Hot Spring,Kingman,Hotspring,78,26'; - put '41.884,-114.117,Gambles Hole,Wells,Hotspring,104,40'; - put '36.565,-115.671,Indian Springs,Las Vegas,Hotspring,78,26'; - put '39.547,-114.915,Campbell Ranch Springs,Ely,Hotspring,76,24'; - put '38.423,-115.022,Flag Springs,Lund,Hotspring,75,24'; - put '38.44,-115.011,Butterfield Springs,Lund,Hotspring,75,24'; - put '37.997,-118.039,Fish Spring,Mariposa,Hotspring,75,24'; - put '37.029,-116.719,Springs,Goldfield,Hotspring,75,24'; - put '36.426,-116.411,Ash Tree Spring,Death Valley,Hotspring,75,24'; - put '36.033,-115.888,Browns Spring,Las Vegas,Hotspring,75,24'; - put '41.322,-119.206,Springs,Vya,Hotspring,75,24'; - put '41.706,-118.261,Ninemile Springs,Vya,Hotspring,79,26'; - put '35.964,-114.743,Hot Spring,Kingman,Hotspring,82,28'; - put '41.763,-118.279,Fivemile Spring,Vya,Hotspring,81,27'; - put '39.457,-119.722,Huffaker Springs,Reno,Hotspring,81,27'; - put '38.992,-117.042,Charnock (Big Blue) Springs,Tonopah,Hotspring,80,27'; - put '36.402,-116.302,Davis Ranch Springs,Death Valley,Hotspring,81,27'; - put '36.45,-116.313,Spring,Death Valley,Hotspring,81,27'; - put '39.792,-114.692,Lower Shellbourne Spring,Ely,Hotspring,77,25'; - put '41.338,-119.168,Springs,Vya,Hotspring,79,26'; - put '41.022,-119.275,Caine Spring,Vya,Hotspring,73,23'; - put '41.05,-117.1,Hot Springs Ranch Springs,Mcdermitt,Hotspring,79,26'; - put '40.079,-116.035,Flynn Ranch Springs,Winnemucca,Hotspring,78,26'; - put '40.325,-116.058,Hot Springs,Winnemucca,Hotspring,79,26'; - put '36.414,-116.292,Spring,Death Valley,Hotspring,79,26'; - put '36.173,-115.191,Las Vegas Springs,Las Vegas,Hotspring,79,26'; - put '36.174,-115.479,White Rock Spring,Las Vegas,Hotspring,78,26'; - put '36.565,-115.623,Spring,Las Vegas,Hotspring,79,26'; - put '36.491,-116.342,"Fairbanks Spring, Soda Spring",Death Valley,Hotspring,81,27'; - put '38.654,-114.633,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '36.363,-116.271,Bole Spring,Death Valley,Hotspring,72,22'; - put '36.999,-116.706,Spring,Death Valley,Hotspring,72,22'; - put '36.942,-115.425,Ash Creek Spring,Las Vegas,Hotspring,72,22'; - put '38.796,-119.65,Doud Springs,Walker Lake,Hotspring,70,21'; - put '38.622,-115.047,Emigrant Springs,Lund,Hotspring,70,21'; - put '38.927,-115.082,Preston Springs,Lund,Hotspring,70,21'; - put '36.147,-115.893,Manse Ranch Spring,Las Vegas,Hotspring,75,24'; - put '38.645,-114.632,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '38.574,-115.522,Tom Spring,Lund,Hotspring,72,22'; - put '38.671,-114.628,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '37.783,-114.528,Bennett Springs,Caliente,Hotspring,70,21'; - put '37.86,-114.321,Delmues Springs,Caliente,Hotspring,70,21'; - put '36.408,-116.313,Davis Ranch Spring,Death Valley,Hotspring,70,21'; - put '36.567,-114.446,Seep,Las Vegas,Hotspring,70,21'; - put '41.369,-114.187,Gamble Spring,Wells,Hotspring,69,20'; - put '39.901,-115.868,Thompson Ranch Spring,Ely,Hotspring,68,20'; - put '38.633,-114.638,Wambolt Springs,Lund,Hotspring,70,21'; - put '37.906,-118.171,Sand Spring,Mariposa,Hotspring,74,23'; - put '36.486,-114.329,Springs,Las Vegas,Hotspring,77,25'; - put '41.354,-119.116,Mustang Springs,Vya,Hotspring,73,23'; - put '41.746,-119.791,Warm Springs,Vya,Hotspring,73,23'; - put '41.258,-118.937,Cane Springs,Vya,Hotspring,74,23'; - put '40.103,-119.884,Fish Springs,Lovelock,Hotspring,73,23'; - put '39.853,-119.719,Spring,Reno,Hotspring,73,23'; - put '39.832,-116.069,Sulphur Spring,Millett,Hotspring,74,23'; - put '36.363,-116.263,Spring,Death Valley,Hotspring,72,22'; - put '38.554,-115.531,Kate Spring,Lund,Hotspring,73,23'; - put '37.074,-116.691,Spring,Goldfield,Hotspring,72,22'; - put '37.979,-117.993,Gap Spring,Goldfield,Hotspring,73,23'; - put '41.591,-119.862,Twin (Vya) Spring,Vya,Hotspring,71,22'; - put '40.763,-119.172,Coyote Spring,Lovelock,Hotspring,72,22'; - put '40.127,-116.884,Springs,Winnemucca,Hotspring,72,22'; - put '40.187,-116.805,Spring,Winnemucca,Hotspring,72,22'; - put '40.967,-114.515,Johnson Ranch Springs,Elko,Hotspring,72,22'; - put '36.205,-115.141,Kyle Spring,Las Vegas,Hotspring,75,24'; - put '39.8,-114.653,Upper Shellbourne Spring,Ely,Hotspring,74,23'; - put '36.428,-116.303,Button Springs,Death Valley,Hotspring,93,34'; - put '38.383,-115.153,Hot Creek Ranch Spring,Lund,Hotspring,90,32'; - put '39.283,-114.866,Lackawanna Hot Springs,Ely,Hotspring,95,35'; - put '38.532,-116.465,Upper Warm Spring,Tonopah,Hotspring,95,35'; - put '38.823,-116.717,South Mosquito Creek Ranch Springs,Tonopah,Hotspring,95,35'; - put '40.829,-117.306,Brooks Spring,Winnemucca,Hotspring,93,34'; - put '40.992,-117.763,Spring,Winnemucca,Hotspring,93,34'; - put '41.971,-114.574,Warm Springs,Wells,Hotspring,95,35'; - put '38.95,-115.7,Big Warm Spring,Lund,Hotspring,93,34'; - put '37.463,-115.192,Ash Springs,Caliente,Hotspring,97,36'; - put '36.464,-116.319,Parent Springs,Death Valley,Hotspring,93,34'; - put '38.352,-115.181,Moon River Spring,Lund,Hotspring,92,33'; - put '36.402,-116.274,"Point of Rocks Springs, King Sprin",Death Valley,Hotspring,91,33'; - put '36.421,-116.322,Crystal Pool,Death Valley,Hotspring,91,33'; - put '36.425,-116.291,Devils Hole,Death Valley,Hotspring,92,33'; - put '39.068,-119.786,Springs,Reno,Hotspring,90,32'; - put '38.954,-117.049,Big Blue (A) Spring,Tonopah,Hotspring,90,32'; - put '40.087,-114.647,Collar And Elbow Spring,Elko,Hotspring,93,34'; - put '36.378,-114.443,Rogers Spring,Las Vegas,Hotspring,82,28'; - put '39.943,-116.073,Shipley Hot Spring,Millett,Hotspring,106,41'; - put '38.698,-116.435,"Upper Warm Spring, Warm Spring",Tonopah,Hotspring,106,41'; - put '41.53,-118.57,Spring,Vya,Hotspring,104,40'; - put '41.877,-115.628,Rowland Hot Springs,Wells,Hotspring,104,40'; - put '40.035,-117.604,Lower Ranch Hot Springs,Winnemucca,Hotspring,104,40'; - put '40.187,-116.79,Chillis Hot Spring,Winnemucca,Hotspring,102,39'; - put '39.988,-116.044,Siri Ranch Spring,Millett,Hotspring,95,35'; - put '39.421,-119.758,Zolezzi Spring,Reno,Hotspring,102,39'; - put '38.531,-116.405,Old Dugan Ranch Hot Springs,Tonopah,Hotspring,102,39'; - put '36.968,-116.723,Burrell Hot Spring,Death Valley,Hotspring,102,39'; - put '38.343,-118.103,Soda Springs,Walker Lake,Hotspring,100,38'; - put '38.556,-115.767,"Lockes Big Spring, Hay Corral Spr",Lund,Hotspring,100,38'; - put '38.594,-115.138,Moorman Spring,Lund,Hotspring,100,38'; - put '38.398,-115.862,Storm Spring,Lund,Hotspring,99,37'; - put '41.19,-115.287,Hot Spring,Wells,Hotspring,97,36'; - put '37.822,-117.48,Pearl Hot Springs,Goldfield,Hotspring,97,36'; - put '39.159,-119.737,Nevada State Prison Spring,Reno,Hotspring,75,24'; - put '40.025,-117.646,Spring,Winnemucca,Hotspring,83,28'; - put '40.83,-119.538,Springs,Lovelock,Hotspring,84,29'; - put '39.442,-119.743,Double Diamond Spring,Reno,Hotspring,84,29'; - put '39.413,-114.779,Mcgill Spring,Ely,Hotspring,84,29'; - put '39.458,-114.756,Schoolhouse Spring,Ely,Hotspring,84,29'; - put '36.375,-116.274,Big (Ash Meadows) Spring,Death Valley,Hotspring,83,28'; - put '38.292,-114.272,Hammond Ranch Spring,Lund,Hotspring,84,29'; - put '41.398,-119.165,Spring,Vya,Hotspring,84,29'; - put '41.732,-119.785,Seeps (Hills Warm Spring),Vya,Hotspring,83,28'; - put '38.563,-115.528,Blue Eagle Springs,Lund,Hotspring,84,29'; - put '40.873,-117.937,Rose Creek Spring,Winnemucca,Hotspring,83,28'; - put '39.917,-114.667,Spring,Ely,Hotspring,83,28'; - put '36.39,-116.278,Jack Rabbit Spring,Death Valley,Hotspring,82,28'; - put '36.437,-116.206,Spring,Death Valley,Hotspring,82,28'; - put '38.937,-115.695,Little Warm Spring,Lund,Hotspring,90,32'; - put '36.479,-116.326,Rogers Spring,Death Valley,Hotspring,82,28'; - put '40.29,-116.049,Carlotti Ranch Springs,Winnemucca,Hotspring,102,39'; - put '36.468,-116.325,Longstreet Spring,Death Valley,Hotspring,82,28'; - put '36.722,-114.716,Muddy Spring,Las Vegas,Hotspring,90,32'; - put '37.532,-115.233,Crystal Springs,Caliente,Hotspring,90,32'; - put '37.598,-115.215,Hiko Spring,Caliente,Hotspring,90,32'; - put '36.404,-116.383,Spring,Death Valley,Hotspring,90,32'; - put '37.996,-116.389,Reveille Mill Spring,Goldfield,Hotspring,84,29'; - put '36.71,-114.714,Moapa Warm Springs,Las Vegas,Hotspring,90,32'; - put '35.982,-114.748,Hot Springs,Kingman,Hotspring,86,30'; - put '40.929,-116.895,Izzenhood Ranch Springs,Winnemucca,Hotspring,88,31'; - put '37.807,-114.38,Panaca Spring,Caliente,Hotspring,88,31'; - put '36.942,-116.729,Spring,Death Valley,Hotspring,88,31'; - put '41.98,-114.376,Hot Spring,Wells,Hotspring,86,30'; - put '36.433,-116.308,Scruggs Springs,Death Valley,Hotspring,86,30'; - put '40.952,-114.751,Ralphs Warm Springs,Elko,Hotspring,86,30'; - put '39.526,-118.876,Soda Lake,Reno,Hotspring,86,30'; - put '38.027,-116.683,Spring,Tonopah,Hotspring,86,30'; - put '37.741,-115.753,Sand Spring,Caliente,Hotspring,86,30'; - put '36.918,-116.744,Beatty Municipal Spring,Death Valley,Hotspring,88,31'; - put '38.255,-116.829,Saulsbury Warm Spring,Tonopah,Hotspring,86,30'; - put '42.48,-73.37,Lebanon Spring,Albany,Hotspring,72,22'; - put '44.241,-122.058,Bigelow Hot Springs,Salem,Hotspring,142,61'; - put '44.862,-121.201,Kahneeta Hot Springs,Bend,Hotspring,126,52'; - put '44.927,-117.939,Radium Hot Springs,Baker,Hotspring,135,57'; - put '44.354,-118.574,Blue Mountain Hot Springs,Canyon City,Hotspring,136,58'; - put '44.936,-122.173,Bagby Hot Springs,Salem,Hotspring,136,58'; - put '43.944,-118.136,Beulah Hot Springs,Burns,Hotspring,140,60'; - put '43.763,-117.156,Mitchell Butte Hot Spring,Boise,Hotspring,144,62'; - put '42.116,-121.287,Oregon Hot Springs (Big Hot Spring,Klamath Falls,Hotspring,142,61'; - put '45.151,-118.659,Lehman Springs,Pendleton,Hotspring,142,61'; - put '43.719,-121.209,East Lake Hot Springs,Crescent,Hotspring,144,62'; - put '43.469,-118.202,Luce Hot Springs,Burns,Hotspring,145,63'; - put '45.018,-117.625,Medical Hot Springs,Grangeville,Hotspring,140,60'; - put '44.867,-121.228,Springs,Bend,Hotspring,125,52'; - put '42.188,-118.383,Flagstaff Butte Hot Spring,Adel,Hotspring,126,52'; - put '44.451,-119.105,Mount Vernon Hot Springs,Canyon City,Hotspring,121,49'; - put '42.977,-117.061,Canters Hot Spring,Jordan Valley,Hotspring,120,49'; - put '43.294,-122.367,Umpqua Hot Springs,Roseburg,Hotspring,117,47'; - put '44.002,-119.647,Weberg Hot Spring,Canyon City,Hotspring,115,46'; - put '43.739,-117.178,Deer Butte Hot Spring,Boise,Hotspring,115,46'; - put '43.795,-117.958,Jonesboro Warm Spring,Boise,Hotspring,112,45'; - put '42.075,-119.927,Hallinan Spring,Adel,Hotspring,113,45'; - put '42.297,-119.776,Fisher Hot Springs,Adel,Hotspring,154,68'; - put '45.013,-117.885,Kropp Hot Spring,Grangeville,Hotspring,109,43'; - put '42.221,-120.368,Hunters Hot Springs,Klamath Falls,Hotspring,205,96'; - put '44.083,-122.233,Cougar Reservoir Hot Springs,Salem,Hotspring,111,44'; - put '44.023,-117.46,Neal Hot Springs,Baker,Hotspring,189,87'; - put '42.431,-121.963,Eagle Point Spring,Klamath Falls,Hotspring,95,35'; - put '43.689,-122.372,Kitson Hot Springs,Roseburg,Hotspring,109,43'; - put '44.813,-117.765,Spring (Hot),Baker,Hotspring,W,W'; - put '43.776,-118.047,Warm Spring,Burns,Hotspring,W,W'; - put '43.793,-118.472,Sitz Warm Spring,Burns,Hotspring,W,W'; - put '43.86,-118.288,Altnow Hot Spring,Burns,Hotspring,W,W'; - put '43.893,-117.596,Springs,Boise,Hotspring,W,W'; - put '45.206,-117.912,Union Station Hot Springs,Grangeville,Hotspring,H,H'; - put '44.208,-117.455,Jamieson Hot Springs,Baker,Hotspring,H,H'; - put '42.338,-118.602,Hot Springs,Adel,Hotspring,207,97'; - put '44.782,-121.975,Breitenbush Hot Springs,Bend,Hotspring,198,92'; - put '42.219,-119.877,Warner Valley Ranch,Adel,Hotspring,198,92'; - put '42.156,-120.345,Barry Ranch Hot Springs,Klamath Falls,Hotspring,190,88'; - put '44.193,-122.049,Belknap Springs,Salem,Hotspring,160,71'; - put '45.021,-122.009,Austin Hot Springs,Vancouver,Hotspring,186,86'; - put '42.676,-118.344,Mickey Springs,Adel,Hotspring,187,86'; - put '44.153,-122.098,Foley Springs,Salem,Hotspring,178,81'; - put '45.244,-117.958,Hot Lake Springs,Grangeville,Hotspring,176,80'; - put '42.544,-118.533,Alvord Hot Springs,Adel,Hotspring,174,79'; - put '43.441,-118.638,Crane Hot Springs,Burns,Hotspring,172,78'; - put '42.226,-119.881,Crump Geyser (Crump Spring),Adel,Hotspring,172,78'; - put '43.727,-117.203,Snively Hot Spring,Boise,Hotspring,170,77'; - put '42.174,-121.615,Olene Gap Hot Springs,Klamath Falls,Hotspring,165,74'; - put '43.708,-122.288,Mccredie Springs,Roseburg,Hotspring,163,73'; - put '43.982,-117.233,Vale Hot Springs,Boise,Hotspring,163,73'; - put '42.162,-120.344,Leithead Hot Spring,Klamath Falls,Hotspring,162,72'; - put '45.372,-121.697,Mount Hood Fumaroles,The Dalles,Hotspring,194,90'; - put '43.264,-119.015,Dunn Spring,Burns,Hotspring,70,21'; - put '42.873,-122.167,Annie Spring,Medford,Hotspring,77,25'; - put '42.133,-121.219,Wilkersons Hot Spring,Klamath Falls,Hotspring,76,24'; - put '43.272,-119.293,Basque Spring,Burns,Hotspring,74,23'; - put '43.276,-119.34,Double O Spring,Burns,Hotspring,74,23'; - put '44.073,-119.427,Brisbois Ranch Springs,Canyon City,Hotspring,72,22'; - put '43.265,-119.276,Johnson Spring,Burns,Hotspring,72,22'; - put '43.281,-119.311,Double O Barnyard Spring,Burns,Hotspring,72,22'; - put '43.501,-119.091,Roadland Spring,Burns,Hotspring,72,22'; - put '43.529,-119.081,Goodman Spring,Burns,Hotspring,72,22'; - put '43.703,-117.19,South Black Willow Spring,Boise,Hotspring,71,22'; - put '42.307,-119.875,Moss Ranch Spring,Adel,Hotspring,72,22'; - put '43.758,-118.067,Juntura Warm Spring 1,Burns,Hotspring,77,25'; - put '43.732,-121.252,Paulina Springs,Crescent,Hotspring,70,21'; - put '42.176,-121.828,Howard Holiday,Klamath Falls,Hotspring,77,25'; - put '43.477,-119.075,Baker Spring,Burns,Hotspring,70,21'; - put '42.178,-121.801,Hardboard Spring,Klamath Falls,Hotspring,70,21'; - put '42.325,-120.327,White Rock Ranch Hot Spring,Klamath Falls,Hotspring,71,21'; - put '43.252,-119.258,Hughet Spring,Burns,Hotspring,68,20'; - put '42.38,-120.33,Bean Hot Spring,Klamath Falls,Hotspring,69,20'; - put '42.933,-120.642,Lost Cabin Spring,Klamath Falls,Hotspring,68,20'; - put '42.998,-120.725,Buckhorn Creek Springs,Klamath Falls,Hotspring,68,20'; - put '42.688,-117.905,Tudors Spring,Jordan Valley,Hotspring,68,20'; - put '42.756,-117.55,Scott Spring,Jordan Valley,Hotspring,68,20'; - put '42.725,-120.646,Summer Lake Hot Spring,Klamath Falls,Hotspring,109,43'; - put '43.757,-118.092,Juntura Warm Spring 2,Burns,Hotspring,95,35'; - put '44.374,-118.738,Limekiln Hot Spring,Canyon City,Hotspring,70,21'; - put '42.221,-122.742,Jackson Hot Springs,Medford,Hotspring,95,35'; - put '44.892,-119.141,Ritter Hot Springs,Canyon City,Hotspring,106,41'; - put '43.808,-122.309,Wall Creek Warm Springs,Roseburg,Hotspring,106,41'; - put '43.395,-118.308,Springs (Hot),Burns,Hotspring,106,41'; - put '43.302,-117.383,Hot Spring,Boise,Hotspring,106,41'; - put '44.28,-118.956,Joaquin Miller Hot Springs,Canyon City,Hotspring,104,40'; - put '42.501,-119.693,Antelope Hot Springs,Adel,Hotspring,104,40'; - put '45.129,-118.738,Hidaway Springs,Pendleton,Hotspring,100,38'; - put '44.975,-118.044,Fisher Hot Springs,Canyon City,Hotspring,99,37'; - put '44.033,-117.449,Bully Creek Spring,Baker,Hotspring,99,37'; - put '42.93,-120.798,Pardon Warm Spring,Klamath Falls,Hotspring,76,24'; - put '42.327,-118.602,Borax Lake (Hot Lake),Adel,Hotspring,97,36'; - put '42.161,-121.627,Crystal Spring,Klamath Falls,Hotspring,78,26'; - put '45.741,-118.233,Bingham Springs,Pendleton,Hotspring,93,34'; - put '42.889,-118.898,Fivemile Spring (Hoghouse Hot Sprs,Adel,Hotspring,80,27'; - put '43.54,-119.081,Millpond Hot Spring,Burns,Hotspring,79,26'; - put '45.891,-116.873,Cook Creek Hot Spring,Grangeville,Hotspring,97,36'; - put '45.295,-121.731,Swim Warm Springs,The Dalles,Hotspring,79,26'; - put '42.04,-120.924,Warm Spring,Klamath Falls,Hotspring,92,33'; - put '44.779,-117.811,Sam O Spring,Baker,Hotspring,80,27'; - put '44.538,-117.417,Nelson Spring,Baker,Hotspring,80,27'; - put '45.631,-119.703,Well Spring,Pendleton,Hotspring,80,27'; - put '42.287,-119.867,Moss Ranch Springs,Adel,Hotspring,83,28'; - put '45.061,-118.455,Warm Mineral Spring,Pendleton,Hotspring,83,28'; - put '43.95,-119.634,Warm Springs,Burns,Hotspring,84,29'; - put '45.295,-117.806,Warm Spring,Grangeville,Hotspring,85,29'; - put '42.815,-118.899,Warm Springs,Adel,Hotspring,89,32'; - put '43.452,-103.508,Hot Brook Springs,Hot Springs,Hotspring,75,24'; - put '43.442,-103.481,Hot Springs,Hot Springs,Hotspring,87,31'; - put '29.178,-102.953,Rio Grande Village Spring,Emory Peak,Hotspring,97,36'; - put '30.823,-105.315,Indian Hot Springs,Marfa,Hotspring,117,47'; - put '30.038,-104.598,Ruidosa Hot Springs,Marfa,Hotspring,113,45'; - put '29.182,-102.992,Hot Springs,Emory Peak,Hotspring,106,41'; - put '30.21,-104.562,Capote Springs,Marfa,Hotspring,99,37'; - put '30.133,-104.602,Nixon Spring,Marfa,Hotspring,90,32'; - put '29.787,-104.462,Springs (Las Cienegas),Presidio,Hotspring,86,30'; - put '30.861,-105.34,Red Bull Spring,Marfa,Hotspring,99,37'; - put '38.85,-112.49,Hatton Hot Spring,Richfield,Hotspring,100,38'; - put '40.176,-111.801,Bird Island,Salt Lake City,Hotspring,86,30'; - put '41.917,-111.958,Gancheff Spring,Ogden,Hotspring,88,31'; - put '37.942,-112.438,Lefevre,Cedar City,Hotspring,90,32'; - put '37.335,-113.687,Veyo Hot Spring,Cedar City,Hotspring,90,32'; - put '40.332,-111.891,Fault Zone Spring,Salt Lake City,Hotspring,90,32'; - put '40.146,-111.806,Lincoln Point Warm Springs,Salt Lake City,Hotspring,90,32'; - put '38.186,-112.912,Us Blm,Richfield,Hotspring,91,33'; - put '41.833,-112.454,Blue Creek Spring,Brigham City,Hotspring,82,28'; - put '40.526,-111.488,Midway Hot Springs,Salt Lake City,Hotspring,100,38'; - put '40.525,-111.468,Midway Hot Springs,Salt Lake City,Hotspring,104,40'; - put '40.038,-111.529,Castilla Springs,Salt Lake City,Hotspring,104,40'; - put '38.217,-112.904,Dotsons (Radium) Warm Spring,Richfield,Hotspring,91,33'; - put '40.465,-109.221,Split Mountain Warm Springs,Vernal,Hotspring,86,30'; - put '40.788,-112.017,Hobo Warm Spring,Tooele,Hotspring,84,29'; - put '40.788,-111.899,Wasatch Hot Springs,Salt Lake City,Hotspring,108,42'; - put '39.35,-113.515,Tule Spring,Delta,Hotspring,82,28'; - put '39.424,-113.485,Coyote Spring,Delta,Hotspring,82,28'; - put '39.842,-113.392,Fish Springs,Delta,Hotspring,82,28'; - put '39.887,-113.413,North Springs,Delta,Hotspring,82,28'; - put '41.756,-113.603,Warm Spring,Brigham City,Hotspring,81,27'; - put '41.038,-111.656,Como Springs,Ogden,Hotspring,81,27'; - put '40.397,-112.421,Morgans Warm Spring,Tooele,Hotspring,80,27'; - put '39.464,-114.038,Gandy Warm Springs,Ely,Hotspring,81,27'; - put '40.447,-110.828,Warm Springs,Salt Lake City,Hotspring,79,26'; - put '37.7,-110.421,Warm Spring,Escalante,Hotspring,79,26'; - put '40.502,-114.038,Blue Lake Spring,Elko,Hotspring,84,29'; - put '38.503,-112.849,Roosevelt Hot Springs,Richfield,Hotspring,133,56'; - put '38.774,-112.096,Richfield Warm Springs,Richfield,Hotspring,73,23'; - put '40.488,-111.911,Crystal Hot Springs,Salt Lake City,Hotspring,187,86'; - put '38.186,-113.197,Thermo Hot Springs,Richfield,Hotspring,185,85'; - put '38.172,-113.204,Thermo Hot Springs,Richfield,Hotspring,181,83'; - put '39.613,-112.729,"Baker (Abraham, Crater) Hot Spring",Delta,Hotspring,180,82'; - put '38.639,-112.098,Red Hill Hot Spring,Richfield,Hotspring,171,77'; - put '38.633,-112.107,Monroe (Cooper) Hot Springs,Richfield,Hotspring,169,76'; - put '38.613,-112.202,Joseph Hot Springs,Richfield,Hotspring,147,64'; - put '39.906,-113.43,Wilson Health Springs,Delta,Hotspring,142,61'; - put '41.138,-112.175,Hooper Hot Springs,Brigham City,Hotspring,140,60'; - put '41.338,-112.031,Utah Hot Springs,Brigham City,Hotspring,138,59'; - put '38.864,-112.506,Meadow Hot Springs,Richfield,Hotspring,106,41'; - put '40.815,-111.918,Becks Hot Spring,Salt Lake City,Hotspring,133,56'; - put '37.189,-113.272,Dixie (Laverkin) Hot Springs,Cedar City,Hotspring,108,42'; - put '41.659,-112.087,Crystal (Madsens) Hot Springs,Brigham City,Hotspring,129,54'; - put '41.855,-112.158,Udy Hot Springs,Brigham City,Hotspring,124,51'; - put '41.578,-112.23,Stinking Hot Springs,Brigham City,Hotspring,118,48'; - put '40.517,-111.475,Midway Hot Spring,Salt Lake City,Hotspring,115,46'; - put '40.536,-111.478,Warm Ditch Spring,Salt Lake City,Hotspring,115,46'; - put '40.35,-111.905,Saratoga Hot Springs,Salt Lake City,Hotspring,111,44'; - put '40.353,-111.895,Crater Hot Spring,Salt Lake City,Hotspring,111,44'; - put '41.901,-112.999,Coyote Spring,Brigham City,Hotspring,109,43'; - put '41.687,-113.986,Spring (Hot),Brigham City,Hotspring,108,42'; - put '41.582,-112.256,Little Mountain Hot Spring,Brigham City,Hotspring,108,42'; - put '41.822,-113.263,L.G. Carter Springs,Brigham City,Hotspring,77,25'; - put '41.236,-111.924,Ogden Hot Spring,Ogden,Hotspring,135,57'; - put '37.178,-113.634,Snow Spring,Cedar City,Hotspring,70,21'; - put '38.34,-113.22,Woodhouse Spring,Richfield,Hotspring,72,22'; - put '38.155,-112.901,Willow Spring,Richfield,Hotspring,72,22'; - put '38.56,-112.578,Sulphurdale,Richfield,Hotspring,72,22'; - put '38.981,-111.829,Salt Spring,Salina,Hotspring,72,22'; - put '37.174,-112.535,Red Canyon,Cedar City,Hotspring,72,22'; - put '41.808,-113.327,W.R. Carter Springs,Brigham City,Hotspring,70,21'; - put '41.818,-113.311,Larson Springs,Brigham City,Hotspring,70,21'; - put '41.829,-113.654,Head Spring,Brigham City,Hotspring,70,21'; - put '40.653,-112.907,Redlum Spring,Tooele,Hotspring,70,21'; - put '40.458,-111.929,Camp Williams,Salt Lake City,Hotspring,70,21'; - put '40.647,-112.524,Grantsville Warm Springs,Tooele,Hotspring,77,25'; - put '39.183,-111.691,Sterling (Peacock) Warm Spring,Price,Hotspring,72,22'; - put '39.246,-111.645,Livingston Warm Springs,Price,Hotspring,73,23'; - put '38.138,-112.863,Big Maple Spring,Richfield,Hotspring,70,21'; - put '37.393,-113.61,Irvine Spring,Cedar City,Hotspring,70,21'; - put '41.563,-113.954,Kimber (Rose) Spring,Brigham City,Hotspring,68,20'; - put '41.614,-113.613,Warm Spring,Brigham City,Hotspring,68,20'; - put '41.328,-111.826,Patio Springs,Ogden,Hotspring,68,20'; - put '40.172,-112.426,Davis,Tooele,Hotspring,68,20'; - put '40.118,-111.337,Diamond Fork Warm Springs,Salt Lake City,Hotspring,68,20'; - put '39.249,-113.877,Knoll Springs,Delta,Hotspring,68,20'; - put '39.403,-113.863,Twin Springs,Delta,Hotspring,68,20'; - put '39.788,-111.881,Ray Lunt Spring,Price,Hotspring,68,20'; - put '38.762,-112.87,Springs,Richfield,Hotspring,68,20'; - put '38.77,-112.871,Coyote Spring,Richfield,Hotspring,68,20'; - put '37.937,-112.424,Tebbs,Cedar City,Hotspring,68,20'; - put '37.096,-113.447,Warner Valley Spring,Cedar City,Hotspring,70,21'; - put '40.565,-112.738,Deseret Livestock South Springs,Tooele,Hotspring,73,23'; - put '37.158,-113.399,Virgin River Spring,Cedar City,Hotspring,70,21'; - put '39.899,-112.045,Springs,Delta,Hotspring,72,22'; - put '38.603,-112.111,Johnson Warm Spring,Richfield,Hotspring,77,25'; - put '41.722,-112.266,Bothwell Warm Springs,Brigham City,Hotspring,75,24'; - put '40.538,-112.747,Deseret Livestock,Tooele,Hotspring,75,24'; - put '40.733,-112.621,Utah Fish And Game Dept,Tooele,Hotspring,75,24'; - put '40.228,-111.867,Warm Springs,Salt Lake City,Hotspring,75,24'; - put '37.137,-113.513,Warm Spring,Cedar City,Hotspring,75,24'; - put '37.138,-113.528,Green Spring,Cedar City,Hotspring,75,24'; - put '37.166,-113.383,Berry Springs,Cedar City,Hotspring,75,24'; - put '41.834,-112.054,Cutler Warm Spring,Brigham City,Hotspring,73,23'; - put '40.614,-112.709,Horseshoe Springs,Tooele,Hotspring,73,23'; - put '41.239,-112.413,Compton Spring,Brigham City,Hotspring,72,22'; - put '40.743,-112.642,Big Warm Springs,Tooele,Hotspring,72,22'; - put '40.558,-112.739,Deseret Livestock South Spring,Tooele,Hotspring,72,22'; - put '40.39,-112.424,Russells Warm Springs,Tooele,Hotspring,72,22'; - put '41.831,-113.391,Pugsley,Brigham City,Hotspring,73,23'; - put '41.449,-112.442,Poulsen Spring (Salt),Brigham City,Hotspring,72,22'; - put '40.167,-111.622,Wood Springs,Salt Lake City,Hotspring,73,23'; - put '40.234,-111.865,Warm Springs,Salt Lake City,Hotspring,77,25'; - put '39.955,-111.858,Goshen Warm Srings,Price,Hotspring,73,23'; - put '39.334,-113.518,South Tule Spring,Delta,Hotspring,77,25'; - put '39.616,-112.803,Fumarole Butte,Delta,Hotspring,73,23'; - put '40.545,-111.928,East Jordan Canal,Salt Lake City,Hotspring,73,23'; - put '41.643,-112.281,Springs,Brigham City,Hotspring,72,22'; - put '37.29,-80.619,New River White Sulphur Springs,Bluefield,Hotspring,85,29'; - put '37.997,-79.83,Hot Springs,Roanoke,Hotspring,106,41'; - put '37.898,-79.462,Rockbridge Baths,Roanoke,Hotspring,72,22'; - put '38.055,-79.78,Warm Springs,Charlottesvill,Hotspring,95,35'; - put '37.963,-79.861,Healing Springs,Roanoke,Hotspring,86,30'; - put '38.238,-79.65,Bragg Spring,Charlottesvill,Hotspring,75,24'; - put '37.645,-80.238,Sweet Chalybeate Spring,Bluefield,Hotspring,75,24'; - put '38.218,-79.673,Bolar Spring,Charlottesvill,Hotspring,73,23'; - put '37.86,-79.988,Layton Spring,Roanoke,Hotspring,72,22'; - put '37.87,-79.933,Falling Spring,Roanoke,Hotspring,77,25'; - put '37.16,-80.806,Alum Springs,Bluefield,Hotspring,72,22'; - put '46.852,-121.758,Mt Rainier Fumaroles,Yakima,Hotspring,162,72'; - put '46.738,-121.562,Ohanapecosh Hot Springs,Yakima,Hotspring,122,50'; - put '47.707,-121.155,Scenic Hot Springs,Wenatchee,Hotspring,122,50'; - put '47.969,-123.864,Sol Duc Hot Springs,Seattle,Hotspring,122,50'; - put '48.974,-119.475,Hot Lake,Okanogan,Hotspring,122,50'; - put '45.658,-121.962,Moffetts (Bonneville) Hot Springs,The Dalles,Hotspring,97,36'; - put '48.906,-119.455,Poison Lake,Okanogan,Hotspring,122,50'; - put '45.701,-121.728,Collins Hot Springs,The Dalles,Hotspring,122,50'; - put '47.484,-121.391,Goldmeyer Hot Springs,Wenatchee,Hotspring,127,53'; - put '46.202,-121.492,Mount Adams Fumaroles,Yakima,Hotspring,150,66'; - put '46.198,-122.197,Mt St Helens Fumaroles,Hoquiam,Hotspring,190,88'; - put '48.789,-121.804,Dorr Fumarole Field,Concrete,Hotspring,194,90'; - put '48.77,-121.813,Sherman Crater Fumaroles,Concrete,Hotspring,266,130'; - put '45.723,-121.927,Rock Creek Hot Springs,The Dalles,Hotspring,H,H'; - put '48.15,-121.062,Gamma Hot Springs,Concrete,Hotspring,140,60'; - put '46.378,-122.265,Green River Soda Spring,Hoquiam,Hotspring,86,30'; - put '46.575,-121.706,Packwood Hot Spring,Yakima,Hotspring,100,38'; - put '47.201,-121.536,Lester Hot Springs,Wenatchee,Hotspring,120,49'; - put '46.024,-118.771,Warm Springs Canyon Warm Spring,Walla Walla,Hotspring,72,22'; - put '46.345,-121.6,Orr Creek Warm Springs,Yakima,Hotspring,72,22'; - put '46.041,-121.181,Fish Hatchery Warm Spring,Yakima,Hotspring,75,24'; - put '46.752,-121.814,Longmire Mineral Springs,Yakima,Hotspring,77,25'; - put '47.892,-121.342,Garland Mineral Springs,Wenatchee,Hotspring,84,29'; - put '46.452,-120.956,Simcoe Soda Springs,Yakima,Hotspring,90,32'; - put '48.254,-121.17,Sulphur Creek Hot Springs,Concrete,Hotspring,99,37'; - put '48.118,-121.192,Kennedy Hot Spring,Concrete,Hotspring,100,38'; - put '48.763,-121.667,Baker Hot Spring,Concrete,Hotspring,108,42'; - put '47.977,-123.682,Olympic Hot Springs,Seattle,Hotspring,118,48'; - put '45.728,-121.8,St Martins Hot Springs,The Dalles,Hotspring,120,49'; - put '45.821,-121.133,Klickitat Mineral Springs,The Dalles,Hotspring,81,27'; - put '38.163,-79.975,Minnehaha Springs,Charlottesvill,Hotspring,70,21'; - put '37.63,-80.24,Old Sweet Spring,Bluefield,Hotspring,73,23'; - put '39.618,-78.23,Berkeley Springs,Cumberland,Hotspring,72,22'; - put '38.605,-79.353,Thorn Spring,Charlottesvill,Hotspring,72,22'; - put '39.471,-77.877,Swan Pond Spring,Baltimore,Hotspring,72,22'; - put '44.29,-110.504,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94'; - put '44.691,-110.728,Geyser Springs Group,Ashton,Hotspring,201,94'; - put '44.554,-110.812,Fountain Group,Ashton,Hotspring,201,94'; - put '44.543,-110.859,Fairy Springs,Ashton,Hotspring,201,94'; - put '44.485,-110.852,"Biscuit Basin, Sapphire Pool",Ashton,Hotspring,201,94'; - put '44.48,-110.85,Cascade Group,Ashton,Hotspring,201,94'; - put '44.46,-110.844,Black Sand Basin,Ashton,Hotspring,201,94'; - put '44.459,-110.835,Myriad Group,Ashton,Hotspring,201,94'; - put '44.307,-110.526,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94'; - put '44.354,-110.8,Shoshone Geyser Basin,Ashton,Hotspring,203,95'; - put '44.568,-110.805,Quagmire Group,Ashton,Hotspring,203,95'; - put '44.537,-110.801,"White Dome Geyser, Surprise Pool",Ashton,Hotspring,203,95'; - put '44.52,-110.828,Flood Group,Ashton,Hotspring,203,95'; - put '44.471,-110.843,"Daisy Group, Sentinel Geysers",Ashton,Hotspring,203,95'; - put '44.466,-110.839,"Middle Group,tortoise Shell,inkwel",Ashton,Hotspring,203,95'; - put '44.46,-110.828,"Geyser Hill Group, Old Faithful Ge",Ashton,Hotspring,203,95'; - put '44.908,-110.393,Calcite Springs,Ashton,Hotspring,201,94'; - put '44.417,-110.57,West Thumb Geyser Basin,Ashton,Hotspring,203,95'; - put '44.459,-110.817,Southeastern Group,Ashton,Hotspring,198,92'; - put '44.433,-110.581,Potts Hot Spring Basin,Ashton,Hotspring,203,95'; - put '44.421,-110.952,Smoke Jumper Hot Springs,Ashton,Hotspring,198,92'; - put '44.684,-110.753,Monument Geyser Basin,Ashton,Hotspring,197,92'; - put '44.679,-110.746,Beryl Spring,Ashton,Hotspring,198,92'; - put '44.544,-110.258,Turbid Springs,Ashton,Hotspring,198,92'; - put '44.53,-110.297,Steamboat Springs,Ashton,Hotspring,198,92'; - put '44.518,-110.813,"Hot Springs, Rabbit Creek Group",Ashton,Hotspring,198,92'; - put '44.514,-110.828,Rabbit Creek Group,Ashton,Hotspring,198,92'; - put '44.484,-110.873,Mystic Falls Springs,Ashton,Hotspring,198,92'; - put '44.739,-110.324,Josephs Coat Springs,Ashton,Hotspring,199,93'; - put '44.75,-110.714,Gas Vent,Ashton,Hotspring,H,H'; - put '44.282,-110.506,Rustic Geyser,Ashton,Hotspring,199,93'; - put '44.571,-110.811,Morning Mist Springs,Ashton,Hotspring,205,96'; - put '44.733,-110.703,Cistern Spring,Ashton,Hotspring,199,93'; - put '44.697,-110.724,Gibbon Hill Geyser,Ashton,Hotspring,199,93'; - put '44.693,-110.738,Artists Paintpots,Ashton,Hotspring,199,93'; - put '44.69,-110.384,Hot Springs on Bog Creek,Ashton,Hotspring,199,93'; - put '44.526,-110.835,Excelsior Geyser Crater,Ashton,Hotspring,199,93'; - put '44.418,-110.805,Lone Star Geyser,Ashton,Hotspring,199,93'; - put '44.309,-110.654,Hot Springs on Lewis Lake,Ashton,Hotspring,199,93'; - put '44.469,-110.828,Solitary Geyser,Ashton,Hotspring,198,92'; - put '44.433,-110.813,Hot Springs,Ashton,Hotspring,H,H'; - put '44.766,-110.3,Hot Springs,Ashton,Hotspring,H,H'; - put '44.61,-110.438,Hot Springs,Ashton,Hotspring,H,H'; - put '44.607,-110.617,Hot Springs East of Mary Lake,Ashton,Hotspring,H,H'; - put '44.601,-110.632,Gas Vent East of Mary Lake,Ashton,Hotspring,H,H'; - put '44.595,-110.622,Gas Vents Southeast of Mary Lake,Ashton,Hotspring,H,H'; - put '44.572,-110.691,Hot Springs,Ashton,Hotspring,H,H'; - put '44.553,-110.301,Beach Springs,Ashton,Hotspring,H,H'; - put '44.551,-110.85,Springs on Fairy Creek,Ashton,Hotspring,H,H'; - put '44.616,-110.616,Highland Hot Springs,Ashton,Hotspring,H,H'; - put '44.438,-110.977,Hot Springs on Continental Divide,Ashton,Hotspring,H,H'; - put '44.617,-110.432,Mud Geysers,Ashton,Hotspring,H,H'; - put '44.404,-110.824,Hot Springs on Upper Firehole Rive,Ashton,Hotspring,H,H'; - put '44.498,-109.193,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.495,-109.222,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.482,-109.204,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.841,-110.167,"Hot, on Lamar River",Ashton,Hotspring,W,W'; - put '44.734,-110.029,Hot Springs,Ashton,Hotspring,W,W'; - put '44.708,-110.471,Warm Spring,Ashton,Hotspring,W,W'; - put '44.701,-110.036,Hot Springs,Ashton,Hotspring,W,W'; - put '44.508,-110.832,Midway Picnic Ground,Ashton,Hotspring,H,H'; - put '44.715,-110.555,Gas Vents,Ashton,Hotspring,H,H'; - put '44.563,-110.834,River Group,Ashton,Hotspring,205,96'; - put '44.544,-110.788,"Black Warrior Group, Shelf Spring",Ashton,Hotspring,205,96'; - put '44.115,-110.684,Huckleberry Hot Springs,Ashton,Hotspring,B,B'; - put '44.842,-110.732,Apollinaris Spring,Ashton,Hotspring,H,H'; - put '44.825,-110.675,Gas Vents at Horseshoe Hill,Ashton,Hotspring,H,H'; - put '44.781,-110.738,Steam Vents at Roaring Mountain,Ashton,Hotspring,H,H'; - put '44.743,-110.242,Hot Spring Basin Group,Ashton,Hotspring,198,92'; - put '44.752,-110.256,Hot Spring,Ashton,Hotspring,H,H'; - put '44.612,-110.618,Gas Vent,Ashton,Hotspring,H,H'; - put '44.741,-110.699,Gas Vent,Ashton,Hotspring,H,H'; - put '44.566,-110.871,"Flat Cone Spring, Steep Cone",Ashton,Hotspring,205,96'; - put '44.711,-110.468,Hot Springs,Ashton,Hotspring,H,H'; - put '44.708,-110.461,Forest Springs,Ashton,Hotspring,H,H'; - put '44.672,-110.236,Hot Springs,Ashton,Hotspring,H,H'; - put '44.667,-110.282,Hot Springs,Ashton,Hotspring,H,H'; - put '44.656,-110.572,Violet Springs,Ashton,Hotspring,H,H'; - put '44.642,-110.238,Hot Spring,Ashton,Hotspring,H,H'; - put '44.634,-110.234,The Mudkettles,Ashton,Hotspring,H,H'; - put '44.634,-110.226,The Mushpots,Ashton,Hotspring,H,H'; - put '44.532,-110.874,"Imperial Geyser, Spray Geyser",Ashton,Hotspring,192,89'; - put '42.545,-106.725,Alcova Hot Springs,Casper,Hotspring,129,54'; - put '42.75,-109.616,Steele Hot Springs,Lander,Hotspring,102,39'; - put '43.37,-110.445,Granite Hot Spring,Driggs,Hotspring,106,41'; - put '43.008,-108.835,Washakie Mineral Hot Springs,Thermopolis,Hotspring,111,44'; - put '43.907,-110.198,North Buffalo Fork Springs,Driggs,Hotspring,113,45'; - put '43.365,-110.443,Granite Falls Hot Springs,Driggs,Hotspring,112,45'; - put '42.817,-110.997,Johnson Springs,Preston,Hotspring,115,46'; - put '44.723,-110.358,Hot Spring on Moss Creek,Ashton,Hotspring,115,46'; - put '44.681,-110.326,Hot Springs on Upper Sour Creek,Ashton,Hotspring,194,90'; - put '41.45,-106.804,Saratoga Hot Springs,Rawlins,Hotspring,129,54'; - put '44.671,-110.786,Secret Valley Hot Springs,Ashton,Hotspring,95,35'; - put '44.625,-110.433,Mud Volcano,Ashton,Hotspring,131,55'; - put '43.654,-108.194,Thermopolis Hot Springs,Thermopolis,Hotspring,133,56'; - put '44.985,-110.689,Hot River,Ashton,Hotspring,136,58'; - put '44.588,-110.341,Ebro Springs,Ashton,Hotspring,136,58'; - put '44.55,-110.805,Fountain Paint Pot,Ashton,Hotspring,136,58'; - put '44.169,-110.583,Snake Hot Springs,Ashton,Hotspring,136,58'; - put '44.157,-110.699,Crawfish Creek Hot Springs,Ashton,Hotspring,136,58'; - put '44.165,-110.723,Crawfish Creek Hot Springs,Ashton,Hotspring,138,59'; - put '44.711,-110.741,Chocolate Pots,Ashton,Hotspring,124,51'; - put '43.56,-109.732,Geyser (Warm Spring Creek Springs),Thermopolis,Hotspring,84,29'; - put '43.489,-109.605,Jakeys Fork Spring,Thermopolis,Hotspring,68,20'; - put '44.749,-108.188,Little Sheep Mountain Spring,Cody,Hotspring,68,20'; - put '42.249,-104.781,Warm Springs (Immigrants Washtub),Torrington,Hotspring,70,21'; - put '44.608,-108.138,Sheep Mountain Springs,Cody,Hotspring,70,21'; - put '43.583,-108.213,Wind River Canyon Spring,Thermopolis,Hotspring,72,22'; - put '42.702,-107.105,Horse Creek Springs,Casper,Hotspring,75,24'; - put '44.511,-109.156,Needle Hot Springs,Cody,Hotspring,75,24'; - put '43.52,-109.669,Little Warm Spring,Thermopolis,Hotspring,77,25'; - put '43.3,-110.775,Astoria Mineral Hot Springs,Driggs,Hotspring,99,37'; - put '43.543,-110.741,Abercrombie Warm Springs,Driggs,Hotspring,81,27'; - put '44.513,-109.115,De Maris Springs,Cody,Hotspring,97,36'; - put '42.665,-105.394,Douglas Hot Springs,Torrington,Hotspring,86,30'; - put '43.471,-110.835,Boyles Hill Springs,Driggs,Hotspring,86,30'; - put '43.282,-110.019,Kendall Warm Spring,Driggs,Hotspring,86,30'; - put '44.662,-110.768,Iron Spring,Ashton,Hotspring,86,30'; - put '42.492,-108.172,Sweetwater Station Warm Springs,Lander,Hotspring,90,32'; - put '44.742,-110.579,Wolf Lake Springs,Ashton,Hotspring,91,33'; - put '44.513,-109.129,Shoshone Hot Springs,Cody,Hotspring,95,35'; - put '42.828,-110.999,Auburn Hot Springs,Preston,Hotspring,144,62'; - put '43.639,-110.615,Kelly Warm Spring,Driggs,Hotspring,81,27'; - put '44.532,-110.796,Five Sisters Springs,Ashton,Hotspring,192,89'; - put '44.582,-110.314,Vermilion Springs,Ashton,Hotspring,140,60'; - put '44.521,-110.275,Butte Springs,Ashton,Hotspring,187,86'; - put '44.478,-110.867,Hillside Springs,Ashton,Hotspring,187,86'; - put '44.752,-110.418,Hot Springs at Sevenmile Hole,Ashton,Hotspring,189,87'; - put '44.401,-110.936,Hot Springs on Continental Divide,Ashton,Hotspring,189,87'; - put '44.769,-110.269,Rainbow Springs,Ashton,Hotspring,190,88'; - put '44.628,-110.433,Sulphur Caldron,Ashton,Hotspring,190,88'; - put '44.702,-110.767,Sylvan Springs,Ashton,Hotspring,192,89'; - put '44.529,-110.791,White Creek Group,Ashton,Hotspring,185,85'; - put '44.564,-110.869,Queens Laundry,Ashton,Hotspring,192,89'; - put '44.697,-110.375,Hot Springs on Bog Creek,Ashton,Hotspring,185,85'; - put '44.285,-110.9,Bechler River Hot Springs,Ashton,Hotspring,194,90'; - put '44.797,-110.725,Amphitheater Springs,Ashton,Hotspring,196,91'; - put '44.766,-110.429,Washburn Hot Springs,Ashton,Hotspring,196,91'; - put '44.756,-110.308,Coffee Pot Hot Springs,Ashton,Hotspring,196,91'; - put '44.591,-110.321,Hot Springs at Sulphur Hills,Ashton,Hotspring,196,91'; - put '44.556,-110.832,River Group,Ashton,Hotspring,196,91'; - put '44.422,-110.574,West Thumb Geyser Basin,Ashton,Hotspring,196,91'; - put '44.786,-110.74,Semi-Centennial Geyser,Ashton,Hotspring,198,92'; - put '44.653,-110.482,Sulphur Springs,Ashton,Hotspring,194,89'; - put '44.41,-110.953,Summit Lake Hot Springs,Ashton,Hotspring,162,72'; - put '44.761,-110.73,Bijah Spring,Ashton,Hotspring,198,92'; - put '44.781,-110.699,Whiterock Springs,Ashton,Hotspring,144,62'; - put '44.739,-110.258,Hot Spring Basin Group,Ashton,Hotspring,153,67'; - put '44.754,-110.403,Sevenmile Hole,Ashton,Hotspring,154,68'; - put '44.276,-110.636,Hot Springs on Lewis Lake,Ashton,Hotspring,154,68'; - put '44.598,-110.236,Hot Springs In Pelican Valley,Ashton,Hotspring,156,69'; - put '44.142,-110.656,South Entrance Hot Springs,Ashton,Hotspring,156,69'; - put '44.753,-110.724,"Roadside Springs, Frying Pan Sprin",Ashton,Hotspring,158,70'; - put '44.733,-110.712,Horseshoe Spring,Ashton,Hotspring,187,86'; - put '43.958,-110.696,Jackson Lake Hot Springs,Driggs,Hotspring,162,72'; - put '44.187,-110.726,Hot Springs,Ashton,Hotspring,142,61'; - put '44.967,-110.708,Mammoth Hot Springs,Ashton,Hotspring,163,73'; - put '44.475,-110.843,Morning Glory Pool,Ashton,Hotspring,163,73'; - put '44.204,-110.486,Hot Springs on Upper Snake River,Ashton,Hotspring,167,75'; - put '44.299,-110.517,"Heart Lake Geyser Basin, Middle Gr",Ashton,Hotspring,174,79'; - put '44.671,-110.29,Ponuntpa Springs Group,Ashton,Hotspring,180,82'; - put '44.244,-111.022,Boundary Creek Hot Springs,Ashton,Hotspring,181,83'; - put '44.414,-110.817,"Lone Star Geyser Basin, Footbridge",Ashton,Hotspring,183,84'; - put '44.722,-110.701,Echinus Geyser,Ashton,Hotspring,185,85'; - put '44.461,-110.854,Emerald Pool,Ashton,Hotspring,158,70'; - put ';;;;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put '''';'; + put 'put '' '';'; + put 'put '' Data Controller'';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '' '';'; + put 'put '''';'; put 'run;'; - put '* ServiceInit end;'; - put '* Service start;'; - put 'proc sql;'; - put 'create table areas as select distinct area'; - put 'from mydb.springs;'; - put '%webout(OPEN)'; - put '%webout(OBJ,areas)'; - put '%webout(CLOSE)'; - put '* Service end;'; + put '%sasjsout(HTML)'; + run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; -%let service=getdata; + + +%let path=services/admin; + +%let service=configurator; filename sascode temp lrecl=32767; data _null_; file sascode; + put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; @@ -3646,13 +2232,72 @@ file sascode; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; - put ',showmeta=NO'; + put ',showmeta=N'; + put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; - put '%local tempds colinfo fmtds i numcols;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; @@ -3686,7 +2331,7 @@ file sascode; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; - put 'data _null_;'; + put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; @@ -3697,7 +2342,6 @@ file sascode; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; - put 'newlen=max(formatl,length);'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; @@ -3705,28 +2349,33 @@ file sascode; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; - put '/* needs to be wide, for datetimes etc */'; - put 'newlen=max(length,formatl,24);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; - put 'call symputx(cats(''len'',_n_),newlen,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; - put 'data &tempds;set &ds;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; @@ -3752,26 +2401,96 @@ file sascode; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; - put 'data _data_;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; put '%do i=1 %to &numcols;'; - put 'length &&name&i $&&len&i;'; put '%if &&typelong&i=num %then %do;'; - put '&&name&i=left(put(&&newname&i,&&fmt&i));'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; - put 'drop &&newname&i;'; put '%end;'; - put 'if _error_ then call symputx(''syscc'',1012);'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; @@ -3788,8 +2507,8 @@ file sascode; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; - put 'length &&name&i $32767;'; - put 'format &&name&i $32767.;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; @@ -3798,6 +2517,7 @@ file sascode; put '%else %do;'; put 'set &ds;'; put '%end;'; + put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; @@ -3850,10 +2570,11 @@ file sascode; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; - put '%if &showmeta=YES %then %do;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; + put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; @@ -3884,8 +2605,46 @@ file sascode; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; - put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y,missing=NULL'; - put ',showmeta=NO'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; put ');'; put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; put 'sasjs_tables;'; @@ -3944,7 +2703,7 @@ file sascode; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; - put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; @@ -3952,7 +2711,6 @@ file sascode; put 'filename _sjsref temp lrecl=131068;'; put '%if %str(&_debug) ge 131 %then %do;'; put '/* if debug mode, send back first 10 records of each work table also */'; - put 'options obs=10;'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; @@ -3976,7 +2734,7 @@ file sascode; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; - put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=YES)'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; put 'data _null_; file _sjsref mod encoding=''utf-8'';'; put 'put "}";'; put '%end;'; @@ -3986,26 +2744,33 @@ file sascode; put '%end;'; put '/* close off json */'; put 'data _null_;file _sjsref mod encoding=''utf-8'';'; - put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; - put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; - put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; - put 'syserrortext=quote(cats(symget(''SYSERRORTEXT'')));'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; - put 'syswarningtext=quote(cats(symget(''SYSWARNINGTEXT'')));'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; @@ -4028,10 +2793,11 @@ file sascode; put 'filename _sjsref clear;'; put '%end;'; put '%mend mm_webout;'; - put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO);'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; @@ -4042,2057 +2808,67 @@ file sascode; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; - put '* SAS Macros end;'; - put '* SAS Includes start;'; - put '* SAS Includes end;'; - put '* Binary Files start;'; - put '* Binary Files end;'; - put '* ServiceInit start;'; - put 'libname mydb (work);'; - put 'data mydb.springs ;'; - put 'attrib'; - put 'Latitude length= 8'; - put 'Longitude length= 8'; - put 'Name length= $34'; - put 'Area length= $14'; - put 'Type length= $9'; - put 'Farenheit length= 8'; - put 'Celsius length= 8'; - put ';'; - put 'infile cards dsd;'; - put 'input'; - put 'Latitude'; - put 'Longitude'; - put 'Name :$char.'; - put 'Area :$char.'; - put 'Type :$char.'; - put 'Farenheit'; - put 'Celsius'; - put ';'; - put 'missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'; - put 'datalines4;'; - put '51.925,-177.16,Fumaroles on Kanaga Island,Adak,Hotspring,219,104'; - put '65.858,-164.71,Serpentine Hot Springs,Bendeleben,Hotspring,171,77'; - put '53.851,-166.918,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,H,H'; - put '53.877,-166.448,Hot Springs Near Summer Bay,Unalaska,Hotspring,H,H'; - put '52.27,-174.042,Hot Springs on Atka Island,Atka,Hotspring,H,H'; - put '52.34,-174.26,Hot Springs on Atka Island,Atka,Hotspring,H,H'; - put '52.358,-172.317,Hot Spring on Seguam Island,Seguam,Hotspring,H,H'; - put '52.84,-169.9,Chuginadak Hot Springs,Samalga Island,Hotspring,H,H'; - put '52.96,-169.71,Hot Spring on Kagamil Island,Samalga Island,Hotspring,H,H'; - put '51.94,-178.5,Hot Spring on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '51.963,-178.491,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '51.775,-178.793,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,H,H'; - put '53.207,-168.445,Hot Springs Near Geyser Bight,Umnak,Hotspring,H,H'; - put '53.892,-166.93,Makushin Volcano Fumaroles,Unalaska,Hotspring,310,154'; - put '54.9,-162.885,Hot Spring on Amagat Island,False Pass,Hotspring,H,H'; - put '53.213,-168.463,Hot Springs Near Geyser Bight,Umnak,Hotspring,216,102'; - put '53.223,-168.477,Hot Springs Near Geyser Bight,Umnak,Hotspring,214,101'; - put '53.443,-168.092,Thermal Springs In Okmok Caldera,Umnak,Hotspring,212,100'; - put '52.042,-176.108,Hot Springs on Great Sitkin Island,Adak,Hotspring,210,99'; - put '55.983,-131.661,Bailey Hot Spring,Ketchikan,Hotspring,198,92'; - put '53.242,-168.365,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,192,89'; - put '54.157,-165.85,Hot Springs Near Hot Springs Bay,Unimak,Hotspring,181,83'; - put '58.033,-136.017,Hot Springs North End Tenakee Inle,Mt. Fairweathe,Hotspring,180,82'; - put '65.093,-164.922,Pilgrim Springs,Bendeleben,Hotspring,178,81'; - put '57.831,-156.513,W Ukinek Spring,Ugashik,Hotspring,178,81'; - put '65.459,-153.312,Little Melozitna Hot Springs,Melozitna,Hotspring,176,80'; - put '51.81,-177.79,Hot Spring on Tanaga Island,Adak,Hotspring,H,H'; - put '65.233,-144.483,Hot Springs on Big Windy Creek,Circle,Hotspring,H,H'; - put '55.334,-162.137,Hot Spring at West End Emmons Lake,Cold Bay,Hotspring,68,20'; - put '66.197,-154.006,Tunalkten Lake Hot Spring,Hughes,Hotspring,.,.'; - put '67.403,-153.883,Hot Spring Near Arrigetch Peaks,Survey Pass,Hotspring,W,W'; - put '65.047,-142.848,Hot Spring on Flat Creek,Charley River,Hotspring,W,W'; - put '63.683,-151.233,Hot Springs Near Glacier,Mt. Mckinley,Hotspring,W,W'; - put '63.883,-150.717,Hot Springs East of Diamond,Mt. Mckinley,Hotspring,W,W'; - put '62.45,-157.933,Hot Spring Near Flat,Iditarod,Hotspring,W,W'; - put '60.837,-142.42,Hot Spring on Twelvemile Creek,Bering Glacier,Hotspring,W,W'; - put '56.58,-132.18,South Stikine Spring,Petersburg,Hotspring,W,W'; - put '52.87,-173.13,Hot Spring on Attu Island,Attu,Hotspring,W,W'; - put '65.908,-154.993,Deniktow Ridge Hot Springs,Melozitna,Hotspring,H,H'; - put '53.95,-168.037,Hot Springs on Bogoslof Island,Umnak,Hotspring,H,H'; - put '65.45,-150,Hot Spring Near Little Minook Cr,Tanana,Hotspring,H,H'; - put '51.967,-178.444,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '64.002,-156.3,Hot Spring on Tributary of Innoko,Nulato,Hotspring,H,H'; - put '61.058,-160.692,Hot Spring Near Tuluksak River,Russian Missio,Hotspring,H,H'; - put '61.363,-157.733,Hot Springs on Upper Chuilnuk Rive,Sleetmute,Hotspring,H,H'; - put '61.267,-151.238,Hot Lake In Bottom of Crater Peak,Tyonek,Hotspring,H,H'; - put '58.24,-155.09,Hot Spring Near Katmai Pass,Mt. Katmai,Hotspring,H,H'; - put '58.27,-154.89,Hot Springs Near Mt Katmai,Mt. Katmai,Hotspring,H,H'; - put '58.92,-153.98,Hot Spring West of Cape Douglas,Afognak,Hotspring,H,H'; - put '55.368,-161.961,Fumarole,Port Moller,Hotspring,H,H'; - put '54.18,-165.41,Hot Springs on Akun Island,Unimak,Hotspring,H,H'; - put '54.23,-165.66,Hot Springs on Akun Island,Unimak,Hotspring,H,H'; - put '54.66,-164.55,Hot Spring on Unimak Island,Unimak,Hotspring,H,H'; - put '65.97,-154.033,Pocahontas Hot Springs,Melozitna,Hotspring,H,H'; - put '65.216,-149.993,Hutlinana Hot Springs,Livengood,Hotspring,109,43'; - put '57.085,-134.839,Baranof Warm Springs,Sitka,Hotspring,124,51'; - put '67.283,-155.067,Reed River Hot Spring,Survey Pass,Hotspring,122,50'; - put '66.15,-157.117,Hot Springs Near South Bm,Shungnak,Hotspring,122,50'; - put '66.233,-157.583,Hot Springs on Hawk River,Shungnak,Hotspring,122,50'; - put '65.81,-151.237,Kilo Hot Spring,Tanana,Hotspring,122,50'; - put '56.717,-132.005,Chief Shakes Hot Springs,Petersburg,Hotspring,122,50'; - put '69.33,-144.044,Okpilak Springs,Mt. Michelson,Hotspring,119,49'; - put '65.367,-161.25,Granite Mountain Hot Springs,Candle,Hotspring,120,49'; - put '57.644,-135.333,Nylen Hot Springs,Sitka,Hotspring,120,49'; - put '65.963,-150.919,Ray River Hot Spring,Tanana,Hotspring,117,47'; - put '64.924,-154.837,Horner Hot Springs,Ruby,Hotspring,117,47'; - put '65.267,-155.28,Hot Springs Near Dulbi River,Melozitna,Hotspring,126,52'; - put '57.807,-136.341,White Sulphur Springs (Hooniah H S,Sitka,Hotspring,111,44'; - put '57.781,-135.217,Tenakee Hot Springs,Sitka,Hotspring,109,43'; - put '52.19,-174.25,Hot Springs on Atka Island,Atka,Hotspring,167,75'; - put '55.334,-133.641,Dalton (Craig) Hot Springs,Craig,Hotspring,109,43'; - put '51.944,-178.547,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '57.771,-135.82,Hot Spring North Arm Peril Strait,Sitka,Hotspring,100,38'; - put '53.848,-166.873,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,94,34'; - put '69.627,-146.027,Red Hill Spring,Mt. Michelson,Hotspring,91,33'; - put '62.081,-145.007,Upper Klawasi Warm Springs,Gulkana,Hotspring,86,30'; - put '62.058,-145.222,Mineral Spring (Lower Klawasi Cone,Gulkana,Hotspring,82,28'; - put '56.68,-131.882,Barnes Lake Hot Springs,Bradfield Cana,Hotspring,79,26'; - put '56.928,-158.12,Surprise Lake Hot Spring,Chignik,Hotspring,73,23'; - put '56.667,-132.28,Twin Lakes Hot Springs,Petersburg,Hotspring,70,21'; - put '66.383,-157.517,Warm Spring Near Purcell Mountain,Shungnak,Hotspring,68,20'; - put '57.348,-135.385,Hot Spring Near Fish Bay,Sitka,Hotspring,117,47'; - put '65.983,-150.56,Hot Springs on Lower Ray River,Tanana,Hotspring,142,61'; - put '55.863,-160.493,Hot Spring Near Port Moller,Port Moller,Hotspring,160,71'; - put '53.253,-168.358,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,158,70'; - put '51.97,-176.61,Hot Springs on Adak Island,Adak,Hotspring,154,68'; - put '65.053,-146.057,Chena Hot Springs,Circle,Hotspring,153,67'; - put '58.37,-137.09,Hot Springs Near Icy Point,Mt. Fairweathe,Hotspring,153,67'; - put '56.836,-135.374,Goddard Hot Springs,Port Alexander,Hotspring,153,67'; - put '66.342,-150.85,Kanuti Hot Springs,Bettles,Hotspring,151,66'; - put '64.85,-162.3,Clear Creek Hot Springs,Solomon,Hotspring,149,65'; - put '53.233,-168.3,Hot Spring on Umnak Island,Umnak,Hotspring,149,65'; - put '61.2,-159.863,Hot Springs Near Ophir Creek,Russian Missio,Hotspring,145,63'; - put '57.865,-156.499,Gas Rocks Hot Spring,Ugashik,Hotspring,127,53'; - put '51.762,-178.77,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,144,62'; - put '66.367,-156.767,Hot Springs Near Division Bm,Shungnak,Hotspring,140,60'; - put '64.7,-162.467,Hot Spring Near Kwiniuk River,Solomon,Hotspring,106,41'; - put '65.274,-148.847,Tolovana Hot Springs,Livengood,Hotspring,140,60'; - put '55.933,-131.559,Bell Island Hot Springs,Ketchikan,Hotspring,165,74'; - put '57.178,-157.015,Hot Spring Near Mother Goose Lake,Ugashik,Hotspring,138,59'; - put '65.483,-144.637,Circle Hot Springs,Circle,Hotspring,135,57'; - put '56.233,-131.267,Bradfield Canal Hot Springs,Bradfield Cana,Hotspring,135,57'; - put '65.006,-150.633,Manley Hot Springs,Tanana,Hotspring,133,56'; - put '65.129,-154.692,Melozi (Melozitna) Springs,Melozitna,Hotspring,131,55'; - put '66.217,-149.547,Dall Hot Springs,Beaver,Hotspring,129,54'; - put '55.217,-162.483,Hot Springs East of Cold Bay,Cold Bay,Hotspring,129,54'; - put '65.217,-162.9,Hot Springs Near Lava Creek,Bendeleben,Hotspring,127,53'; - put '54.944,-163.251,Hot Springs Near Morzhovoi,False Pass,Hotspring,145,63'; - put '36.48,-91.053,Warm Springs,Poplar Bluff,Hotspring,82,28'; - put '34.384,-93.607,Caddo Gap Springs,Little Rock,Hotspring,95,35'; - put '34.321,-93.739,Spring on Redland Mountain,Little Rock,Hotspring,77,25'; - put '34.406,-93.908,Spring on Little Missouri River,Little Rock,Hotspring,74,23'; - put '34.542,-93.024,Big Chalybeate Spring,Little Rock,Hotspring,79,26'; - put '34.513,-93.053,Hot Springs,Little Rock,Hotspring,147,64'; - put '33.008,-109.778,Grapevine Spring,Clifton,Hotspring,91,33'; - put '32.984,-113.324,Agua Caliente Springs,Ajo,Hotspring,102,39'; - put '34.563,-113.497,Kaiser Hot Spring,Prescott,Hotspring,99,37'; - put '34.076,-111.708,Spring (Hot),Holbrook,Hotspring,99,37'; - put '33.17,-110.528,Coolidge Dam Warm Spring,Mesa,Hotspring,99,37'; - put '34.695,-113.572,Cofer Hot Spring,Prescott,Hotspring,97,36'; - put '33.209,-110.818,Pioneer Spring,Mesa,Hotspring,91,33'; - put '33.988,-112.362,Castle Hot Springs,Phoenix,Hotspring,115,46'; - put '32.345,-110.247,Warm Springs,Tucson,Hotspring,91,33'; - put '36.196,-113.081,Lava Warm Springs,Grand Canyon,Hotspring,90,32'; - put '33.068,-109.975,Warm Spring,Clifton,Hotspring,90,32'; - put '31.943,-113.013,Quitobaquito Springs,Lukeville,Hotspring,90,32'; - put '31.695,-110.963,Agua Caliente Spring,Nogales,Hotspring,90,32'; - put '33.075,-109.298,Seep,Clifton,Hotspring,95,35'; - put '34.357,-111.71,Verde Hot Springs,Holbrook,Hotspring,104,40'; - put '32.998,-109.901,Indian Hot Springs,Silver City,Hotspring,118,48'; - put '33.669,-111.165,Roosevelt Dam Springs,Mesa,Hotspring,118,48'; - put '32.336,-110.24,Hookers Hot Springs,Tucson,Hotspring,127,53'; - put '33.4,-109.152,Hannah Hot Spring,Clifton,Hotspring,133,56'; - put '33.08,-109.303,Hot Spring,Clifton,Hotspring,138,59'; - put '32.741,-114.068,Radium Hot Springs,El Centro,Hotspring,140,60'; - put '32.971,-109.35,Gillard Hot Springs,Silver City,Hotspring,180,82'; - put '35.984,-114.742,Hot Spring,Kingman,Hotspring,H,H'; - put '33.78,-110.317,Warm Spring,Mesa,Hotspring,W,W'; - put '36.418,-113.956,Pakoon Springs,Grand Canyon,Hotspring,86,30'; - put '33.493,-112.94,El Dorado Hot Springs,Phoenix South,Hotspring,112,44'; - put '34.896,-114.308,Oatman Warm Springs,Needles,Hotspring,91,33'; - put '33.055,-109.295,Clifton Hot Springs,Clifton,Hotspring,102,39'; - put '34.445,-112.693,Spring,Prescott,Hotspring,72,22'; - put '32.337,-110.708,Mercer Spring,Tucson,Hotspring,77,25'; - put '34.649,-111.744,Soda Spring,Holbrook,Hotspring,75,24'; - put '33.253,-110.703,Spring,Mesa,Hotspring,75,24'; - put '31.362,-109.265,Astin Spring,Douglas,Hotspring,75,24'; - put '35.169,-113.851,Frost Mine Spring,Williams,Hotspring,70,21'; - put '31.673,-109.902,Antelope Spring,Douglas,Hotspring,79,26'; - put '35.213,-113.425,Casa Grande Spring,Williams,Hotspring,72,22'; - put '33.51,-110.403,Cassadore Spring,Mesa,Hotspring,73,23'; - put '34.32,-111.453,Tonto Natural Bridge Spring,Holbrook,Hotspring,72,22'; - put '34.405,-111.602,Spring,Holbrook,Hotspring,72,22'; - put '34.436,-109.402,Salado Springs,Saint Johns,Hotspring,72,22'; - put '31.592,-109.51,Lewis Spring,Douglas,Hotspring,68,20'; - put '33.046,-109.44,Eagle Creek Hot Springs,Clifton,Hotspring,97,36'; - put '36.509,-111.852,Colorado Pool,Marble Canyon,Hotspring,86,30'; - put '33.062,-109.482,Warm Spring,Clifton,Hotspring,73,23'; - put '31.637,-110.703,Monkey Spring,Nogales,Hotspring,82,28'; - put '32.281,-110.73,Agua Caliente,Tucson,Hotspring,86,30'; - put '32.327,-110.228,N-O Spring,Tucson,Hotspring,73,23'; - put '32.983,-110.373,Warm Spring,Tucson,Hotspring,79,26'; - put '33.152,-110.639,Mescal Warm Spring,Mesa,Hotspring,84,29'; - put '33.163,-110.662,Spring,Mesa,Hotspring,82,28'; - put '35.077,-113.267,Trout Creek Spring,Williams,Hotspring,81,27'; - put '33.438,-110.213,Warm Springs,Mesa,Hotspring,86,30'; - put '36.895,-113.913,Springs,Grand Canyon,Hotspring,79,26'; - put '35.96,-114.725,Hot Spring,Kingman,Hotspring,86,30'; - put '34.925,-114.221,Caliche Spring,Needles,Hotspring,79,26'; - put '33.915,-112.332,Mitchell Spring,Phoenix,Hotspring,79,26'; - put '33.831,-110.574,Salt Banks,Mesa,Hotspring,78,26'; - put '34.91,-113.608,Tom Brown Warm Spring,Prescott,Hotspring,82,28'; - put '38.873,-122.689,Seigler Springs,Santa Rosa,Hotspring,126,52'; - put '36.814,-117.763,Palm Spring,Death Valley,Hotspring,120,49'; - put '34.498,-119.341,Stingleys Hot Springs,Los Angeles,Hotspring,123,51'; - put '33.67,-117.325,"Wrenden Hot Sprs, Elsinore Hot Spr",Santa Ana,Hotspring,125,52'; - put '37.253,-118.373,Keough Hot Springs,Mariposa,Hotspring,124,51'; - put '36.229,-118.302,Jordan Hot Springs,Fresno,Hotspring,124,51'; - put '34.502,-119.346,Vickers Hot Springs,Los Angeles,Hotspring,124,51'; - put '36.123,-121.64,Slates Hot Springs,Santa Cruz,Hotspring,122,50'; - put '35.881,-118.67,California Hot Springs,Bakersfield,Hotspring,122,50'; - put '38.788,-122.777,Sulphur Creek,Santa Rosa,Hotspring,120,49'; - put '37.648,-118.806,Hot Springs,Mariposa,Hotspring,129,54'; - put '36.703,-120.86,Mercey Hot Springs,Santa Cruz,Hotspring,119,48'; - put '33.589,-117.511,San Juan Hot Springs,Santa Ana,Hotspring,120,49'; - put '38.785,-122.655,Harbin Springs,Santa Rosa,Hotspring,120,49'; - put '37.677,-118.79,Dehy Hot Spring,Mariposa,Hotspring,134,57'; - put '39.183,-122.7,Bartlett Springs,Ukiah,Hotspring,144,62'; - put '36.234,-121.546,Tassajara Hot Springs,Santa Cruz,Hotspring,144,62'; - put '36.144,-120.555,Coalinga Mineral Springs,Santa Cruz,Hotspring,112,44'; - put '39.033,-122.445,Jones Fountain of Life Spring,Ukiah,Hotspring,142,61'; - put '35.575,-118.534,"Miracle Hot Sprs, Hobo Hot Sprs",Bakersfield,Hotspring,119,48'; - put '33.284,-116.631,Warner Hot Spring,Santa Ana,Hotspring,138,59'; - put '38.237,-119.326,Buckeye Hot Spring,Walker Lake,Hotspring,140,60'; - put '41.266,-120.08,Hot Springs (Menlo Baths),Alturas,Hotspring,135,57'; - put '33.753,-117.495,Glen Ivy Hot Springs,Santa Ana,Hotspring,131,55'; - put '37.802,-118.532,Benton Hot Springs,Mariposa,Hotspring,134,57'; - put '38.691,-123.024,Skaggs Springs,Santa Rosa,Hotspring,135,56'; - put '35.62,-118.473,Scovern Hot Springs,Bakersfield,Hotspring,133,56'; - put '34.538,-119.56,Agua Caliente Spring,Los Angeles,Hotspring,133,56'; - put '33.558,-117.154,Murrietta Hot Springs,Santa Ana,Hotspring,132,56'; - put '39.226,-120.01,Brockway Hot Springs,Chico,Hotspring,131,55'; - put '41.036,-121.926,Hunt Hot Spring,Alturas,Hotspring,136,58'; - put '34.582,-119.044,Willett Hot Springs,Los Angeles,Hotspring,108,42'; - put '37.234,-118.881,Blaney Meadows Hot Springs,Mariposa,Hotspring,109,43'; - put '36.477,-118.404,Kern Hot Spring,Fresno,Hotspring,109,43'; - put '36.806,-117.771,Lower Warm Springs,Death Valley,Hotspring,110,43'; - put '34.482,-119.302,Matilija Hot Springs,Los Angeles,Hotspring,109,43'; - put '34.537,-119.879,San Marcos Hot Spring,Los Angeles,Hotspring,110,43'; - put '33.896,-117.057,Eden Hot Springs,Santa Ana,Hotspring,109,43'; - put '39.573,-120.348,Campbell Hot Springs,Chico,Hotspring,111,44'; - put '38.994,-122.742,Horseshoe Spring,Santa Rosa,Hotspring,108,42'; - put '33.969,-116.942,Highland Springs,Santa Ana,Hotspring,112,44'; - put '34.34,-117.173,"Warm Spring, Hot Spring",San Bernardino,Hotspring,108,42'; - put '41.219,-120.066,Squaw Baths,Alturas,Hotspring,106,41'; - put '40.142,-120.935,Indian Valley Hot Springs,Susanville,Hotspring,106,41'; - put '39.292,-122.821,Crabtree Hot Springs,Ukiah,Hotspring,106,41'; - put '37.108,-121.478,Gilroy Hot Springs,San Jose,Hotspring,106,41'; - put '39.227,-123.362,Orrs Springs,Ukiah,Hotspring,104,40'; - put '38.773,-122.705,Anderson Springs,Santa Rosa,Hotspring,108,42'; - put '38.858,-122.671,Howard Springs,Santa Rosa,Hotspring,113,45'; - put '34.461,-119.637,Montecito Hot Springs,Los Angeles,Hotspring,118,48'; - put '33.551,-117.167,Temecula Hot Springs,Santa Ana,Hotspring,116,47'; - put '33.835,-116.988,Gilman Hot Springs,Santa Ana,Hotspring,117,47'; - put '37.618,-119.074,Reds Meadow Hot Springs,Mariposa,Hotspring,115,46'; - put '35.528,-118.665,Democrat Hot Springs,Bakersfield,Hotspring,115,46'; - put '33.731,-118.348,Whites Point Hot Springs,Long Beach,Hotspring,115,46'; - put '37.532,-119.025,Fish Creek Hot Springs,Mariposa,Hotspring,110,43'; - put '39.032,-122.432,"Blank Spring, Manzanita Mine Sprs",Ukiah,Hotspring,112,45'; - put '37.327,-119.018,Mono Hot Springs,Mariposa,Hotspring,109,43'; - put '38.225,-119.217,The Hot Springs,Walker Lake,Hotspring,113,45'; - put '35.727,-118.408,Hot Spring,Bakersfield,Hotspring,113,45'; - put '41.6,-120.088,Leonards Hot Springs,Alturas,Hotspring,144,62'; - put '38.874,-123.518,Point Arena Hot Springs,Santa Rosa,Hotspring,111,44'; - put '41.126,-121.028,Kellog Hot Springs,Alturas,Hotspring,172,78'; - put '35.558,-118.612,Delonegha Hot Springs,Bakersfield,Hotspring,112,44'; - put '35.871,-116.23,Tecopa Hot Springs,Trona,Hotspring,118,48'; - put '41.86,-120.158,Fort Bidwell Hot Spring,Alturas,Hotspring,113,45'; - put '41.534,-120.078,Hot Springs (Surprise Valley),Alturas,Hotspring,208,98'; - put '33.345,-115.588,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '41.012,-121.274,Hot Springs,Alturas,Hotspring,H,H'; - put '39.922,-120.024,Zamboni Hot Springs,Chico,Hotspring,H,H'; - put '38.979,-122.659,Fumarole,Santa Rosa,Hotspring,H,H'; - put '37.622,-119.028,Fumaroles,Mariposa,Hotspring,H,H'; - put '40.364,-120.243,Hot Spring,Susanville,Hotspring,204,96'; - put '38.767,-122.748,Little Geysers,Santa Rosa,Hotspring,210,99'; - put '33.328,-115.583,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '41.67,-120.206,Lake City Hot Springs,Alturas,Hotspring,207,97'; - put '36.036,-117.802,Devils Kitchen,Death Valley,Hotspring,207,97'; - put '36.045,-117.769,Coso Hot Springs,Death Valley,Hotspring,207,97'; - put '40.382,-121.513,Morgan Hot Spring,Susanville,Hotspring,205,96'; - put '40.421,-121.375,Terminal Geyser,Susanville,Hotspring,205,96'; - put '41.19,-120.383,West Valley Reservoir Hot Spring,Alturas,Hotspring,171,77'; - put '38.802,-122.81,The Geysers,Santa Rosa,Hotspring,214,101'; - put '35.888,-116.258,Springs,Trona,Hotspring,W,W'; - put '34.185,-117.262,"Arrowhead Springs, Waterman Hot Sp",San Bernardino,Hotspring,194,90'; - put '33.823,-116.542,Palm Springs (Agua Caliente Spring,Santa Ana,Hotspring,104,40'; - put '41.196,-120.475,Springs,Alturas,Hotspring,W,W'; - put '41.959,-120.936,Warm Spring,Alturas,Hotspring,W,W'; - put '37.929,-121.965,Springs,San Jose,Hotspring,W,W'; - put '36.83,-117.736,Upper Warm Spring,Death Valley,Hotspring,W,W'; - put '33.343,-115.573,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '35.536,-118.651,Spring (Hot),Bakersfield,Hotspring,W,W'; - put '33.332,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '35.967,-116.931,Warm Spring,Trona,Hotspring,W,W'; - put '33.28,-115.592,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.288,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.312,-115.577,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.313,-115.605,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '40.393,-121.507,Growler Hot Spring,Susanville,Hotspring,203,95'; - put '35.148,-118.783,Warm Spring,Bakersfield,Hotspring,W,W'; - put '41.973,-122.202,Klamath Hot Spring,Weed,Hotspring,156,69'; - put '41.143,-121.11,Bassett Hot Springs,Alturas,Hotspring,174,79'; - put '38.58,-122.575,Calistoga Hot Springs,Santa Rosa,Hotspring,172,78'; - put '37.656,-118.834,Hot Creek Springs,Mariposa,Hotspring,171,77'; - put '41.229,-121.405,Little Hot Spring,Alturas,Hotspring,169,76'; - put '37.664,-118.802,The Tub,Mariposa,Hotspring,167,75'; - put '40.355,-120.257,Wendel Hot Springs,Susanville,Hotspring,205,96'; - put '38.768,-122.717,Castle Rock Springs,Santa Rosa,Hotspring,163,73'; - put '38.245,-119.205,Travertine Hot Springs,Walker Lake,Hotspring,180,82'; - put '39.002,-122.664,Sulphur Bank,Ukiah,Hotspring,156,69'; - put '39.057,-122.475,Elgin Mine,Ukiah,Hotspring,156,69'; - put '39.039,-122.421,Wilbur Springs,Ukiah,Hotspring,153,67'; - put '40.444,-121.409,Drakesbad,Susanville,Hotspring,151,66'; - put '40.457,-121.545,Mill Creek Springs,Susanville,Hotspring,150,66'; - put '38.048,-119.081,Hot Spring,Walker Lake,Hotspring,151,66'; - put '37.647,-118.859,Casa Diablo Hot Pool,Mariposa,Hotspring,165,74'; - put '41.607,-121.523,Hot Spot,Alturas,Hotspring,191,88'; - put '40.44,-121.434,Devils Kitchen,Susanville,Hotspring,203,95'; - put '40.302,-120.195,Amedee Hot Springs,Susanville,Hotspring,203,95'; - put '36.031,-117.833,Fumarole,Death Valley,Hotspring,203,95'; - put '40.447,-121.536,"Sulphur Works, Tophet Hot Springs",Susanville,Hotspring,199,93'; - put '40.455,-121.501,Bumpass Hell,Susanville,Hotspring,199,93'; - put '37.648,-118.914,Casa Diablo Hot Springs And Geyser,Mariposa,Hotspring,199,93'; - put '37.692,-118.839,Little Hot Creek Spring,Mariposa,Hotspring,180,82'; - put '34.596,-118.998,Sespe Hot Springs,Los Angeles,Hotspring,194,90'; - put '38.348,-119.4,Fales Hot Springs,Walker Lake,Hotspring,180,82'; - put '40.434,-121.399,Boiling Springs Lake,Susanville,Hotspring,190,88'; - put '41.615,-120.102,Seyferth Hot Springs,Alturas,Hotspring,185,85'; - put '41.407,-122.197,"Hot Spring, Fumaroles",Weed,Hotspring,183,84'; - put '37.993,-119.028,Paoha Island Springs,Mariposa,Hotspring,181,83'; - put '41.025,-121.924,Big Bend Hot Springs,Alturas,Hotspring,180,82'; - put '38.699,-119.846,Grovers Hot Springs,Walker Lake,Hotspring,147,64'; - put '37.665,-118.828,Hot Creek Gorge Springs,Mariposa,Hotspring,199,93'; - put '39.43,-122.538,"Sulphur Spring, Salt Spring",Ukiah,Hotspring,75,24'; - put '38.925,-122.77,Hildebrande Spring,Santa Rosa,Hotspring,77,25'; - put '38.203,-119.118,Warm Spring,Walker Lake,Hotspring,77,25'; - put '36.938,-121.565,Sargent Estate Warm Spring,Santa Cruz,Hotspring,77,25'; - put '34.826,-116.677,Newberry Spring,San Bernardino,Hotspring,77,25'; - put '41.919,-122.369,Bogus Soda Springs,Weed,Hotspring,76,24'; - put '39.053,-122.597,Quigley Soda Spring,Ukiah,Hotspring,82,28'; - put '41.252,-120.521,Warm Spring,Alturas,Hotspring,75,24'; - put '38.85,-122.693,Pine Cone Spring,Santa Rosa,Hotspring,78,26'; - put '38.339,-122.259,Napa Vichy Springs,Santa Rosa,Hotspring,76,24'; - put '38.892,-122.533,Baker Soda Spring,Santa Rosa,Hotspring,76,24'; - put '38.897,-122.882,England Springs,Santa Rosa,Hotspring,76,24'; - put '38.916,-122.799,Carlsbad Spring,Santa Rosa,Hotspring,76,24'; - put '38.192,-120.827,Valley Springs,Sacramento,Hotspring,75,24'; - put '38.85,-120.025,Myers Warm Spring,Sacramento,Hotspring,75,24'; - put '37.708,-118.813,Hot Spring,Mariposa,Hotspring,68,20'; - put '36.122,-117.217,Warm Sulphur Springs,Death Valley,Hotspring,80,27'; - put '35.682,-116.422,Saratoga Spring,Trona,Hotspring,82,28'; - put '33.733,-114.907,Mccoy Spring,Salton Sea,Hotspring,82,28'; - put '41.484,-120.764,Spring,Alturas,Hotspring,81,27'; - put '39.657,-123.585,Jackson Valley Mud Springs,Ukiah,Hotspring,80,27'; - put '39.198,-122.505,Pseudo Complexion Spring,Ukiah,Hotspring,81,27'; - put '38.85,-122.667,Bad Creek Spring,Santa Rosa,Hotspring,81,27'; - put '32.97,-116.423,Vallecitos Spring,San Diego,Hotspring,79,26'; - put '36.765,-120.901,Spring,Santa Cruz,Hotspring,81,27'; - put '34.159,-118.499,El Encino Springs,Los Angeles,Hotspring,79,26'; - put '35.879,-116.153,Resting Spring,Trona,Hotspring,80,27'; - put '41.828,-120.917,Pothole Spring,Alturas,Hotspring,78,26'; - put '39.348,-122.668,Fouts Springs,Ukiah,Hotspring,79,26'; - put '38.519,-122.26,"Napa Rock Soda Spring, Phillips So",Santa Rosa,Hotspring,78,26'; - put '38.838,-122.653,Spiers Springs,Santa Rosa,Hotspring,79,26'; - put '35.141,-116.101,Soda Station Springs,Trona,Hotspring,75,24'; - put '37.503,-121.904,Alameda Warm Springs,San Jose,Hotspring,80,27'; - put '39.429,-123.308,Muir Springs,Ukiah,Hotspring,68,20'; - put '37.924,-122.046,Sulphur Spring,San Francisco,Hotspring,75,24'; - put '40.58,-120.265,Tipton Springs,Susanville,Hotspring,70,21'; - put '39.697,-123.478,Pinches Spring,Ukiah,Hotspring,70,21'; - put '38.755,-122.285,Zim Zim Spring,Santa Rosa,Hotspring,70,21'; - put '37.083,-121.042,Spring In Oneill Forebay,San Jose,Hotspring,70,21'; - put '37.632,-121.762,Crohare Spring,San Jose,Hotspring,70,21'; - put '33.625,-115.325,Corn Spring,Salton Sea,Hotspring,72,22'; - put '36.117,-118.776,Ward Spring,Fresno,Hotspring,70,21'; - put '34.423,-119.538,Boron Spring,Los Angeles,Hotspring,72,22'; - put '39.002,-122.498,Grizzly Spring,Ukiah,Hotspring,68,20'; - put '39.088,-122.525,Sulphur Spring,Ukiah,Hotspring,68,20'; - put '38.125,-122.188,Vallejo White Sulphur Springs,Santa Rosa,Hotspring,68,20'; - put '38.31,-122.053,Tolenas Springs,Santa Rosa,Hotspring,68,20'; - put '41.45,-120.834,Kelly Hot Spring,Alturas,Hotspring,198,92'; - put '36.512,-116.821,Nevares Springs,Death Valley,Hotspring,102,39'; - put '37.888,-118.487,Bertrand Ranch Springs,Mariposa,Hotspring,70,21'; - put '35.483,-119.917,Mize Spring,Bakersfield,Hotspring,73,23'; - put '36.698,-117.848,Little Hunter Canyon Springs,Death Valley,Hotspring,81,27'; - put '38.995,-122.642,Davis Soda Spring,Santa Rosa,Hotspring,73,23'; - put '37.432,-121.308,Salt Grass Springs,San Jose,Hotspring,73,23'; - put '37.573,-121.445,Lone Tree Mineral Spring,San Jose,Hotspring,73,23'; - put '37.638,-118.887,Chance Spring,Mariposa,Hotspring,73,23'; - put '36.295,-120.985,Sulphur Springs,Santa Cruz,Hotspring,73,23'; - put '41.16,-120.403,Warm Spring,Alturas,Hotspring,70,21'; - put '35.4,-120.25,Cameta Warm Spring,San Luis Obisp,Hotspring,73,23'; - put '37.719,-118.735,Springs,Mariposa,Hotspring,75,24'; - put '35.588,-116.359,Sheep Creek Spring,Trona,Hotspring,73,23'; - put '40.568,-120.325,Sellicks Springs,Susanville,Hotspring,72,22'; - put '38.833,-122.357,One Shot Mining Co,Santa Rosa,Hotspring,72,22'; - put '38.95,-122.572,Soda Spring In Cache Formation,Santa Rosa,Hotspring,72,22'; - put '37.635,-118.72,Springs,Mariposa,Hotspring,72,22'; - put '36.13,-118.816,Soda Spring,Fresno,Hotspring,72,22'; - put '36.773,-120.898,Iridat Spring,Santa Cruz,Hotspring,73,23'; - put '33.545,-115.654,Canyon Spring,Salton Sea,Hotspring,97,36'; - put '36.675,-116.923,Keane Wonder Spring,Death Valley,Hotspring,93,34'; - put '36.331,-121.367,Paraiso Springs (Sulphur Spring),Santa Cruz,Hotspring,98,37'; - put '35.122,-120.542,Newsom Springs,San Luis Obisp,Hotspring,99,37'; - put '34.503,-120.219,Las Cruces Hot Springs,Santa Maria,Hotspring,99,37'; - put '38.49,-122.498,St Helena White Sulphur Spring,Santa Rosa,Hotspring,97,36'; - put '35.946,-116.189,Chappo Spring,Trona,Hotspring,80,27'; - put '40.019,-121.036,Spring,Susanville,Hotspring,99,37'; - put '40.44,-121.42,Hot Springs Valley,Susanville,Hotspring,83,28'; - put '32.947,-116.305,Agua Caliente Springs,San Diego,Hotspring,101,38'; - put '39.196,-122.714,Newman Springs,Ukiah,Hotspring,94,35'; - put '37.63,-118.808,Whitmore Hot Springs,Mariposa,Hotspring,95,35'; - put '35.269,-120.851,Pecho Warm Springs,San Luis Obisp,Hotspring,95,35'; - put '33.514,-117.604,Spring,Santa Ana,Hotspring,95,35'; - put '38.958,-122.701,Riviera Beach Spring,Santa Rosa,Hotspring,93,34'; - put '36.33,-117.948,Dirty Socks Hot Spring,Death Valley,Hotspring,93,34'; - put '37.847,-121.635,Byron Hot Springs,San Jose,Hotspring,96,36'; - put '35.433,-118.478,Yates Hot Springs,Bakersfield,Hotspring,100,38'; - put '35.663,-120.692,Paso Robles Artesian Spring,San Luis Obisp,Hotspring,102,39'; - put '34.507,-119.291,Wheeler Springs,Los Angeles,Hotspring,102,39'; - put '33.8,-116.927,Soboda Hot Springs,Santa Ana,Hotspring,102,39'; - put '40.223,-122.747,Stinking Springs,Redding,Hotspring,101,38'; - put '38.8,-123.17,Hoods Hot Springs,Santa Rosa,Hotspring,100,38'; - put '37.029,-117.383,Grapevine Springs,Goldfield,Hotspring,100,38'; - put '36.084,-121.584,Dolans Hot Spring,Santa Cruz,Hotspring,98,37'; - put '36.21,-118.176,Soda Springs,Fresno,Hotspring,100,38'; - put '33.664,-117.913,Fairview Hot Spring,Santa Ana,Hotspring,96,36'; - put '35.143,-116.813,Paradise Spring,Trona,Hotspring,100,38'; - put '33.837,-117.145,Lakeview Hot Springs,Santa Ana,Hotspring,100,38'; - put '33.201,-115.577,Mud Pots,Salton Sea,Hotspring,100,38'; - put '33.212,-115.591,Mud Pots,Salton Sea,Hotspring,100,38'; - put '33.217,-115.58,Wister Mud Pot,Salton Sea,Hotspring,100,38'; - put '32.617,-116.189,Jacumba Hot Springs,San Diego,Hotspring,101,38'; - put '36.618,-121.845,Sulphur Hot Spring,Santa Cruz,Hotspring,100,38'; - put '36.495,-117.893,Springs,Death Valley,Hotspring,86,30'; - put '38.033,-118.902,Mono Basin Warm Springs,Walker Lake,Hotspring,88,31'; - put '35.908,-120.367,Table Mountain (Spring),San Luis Obisp,Hotspring,88,31'; - put '34.271,-116.838,Pan Hot Springs,San Bernardino,Hotspring,88,31'; - put '40.238,-122.11,Tuscan Springs,Redding,Hotspring,86,30'; - put '40.245,-120.007,High Rock Spring,Susanville,Hotspring,86,30'; - put '38.55,-122.72,Mark West Springs,Santa Rosa,Hotspring,88,31'; - put '43.513,-119.903,Springs at Tecolote Tunnel,Los Angeles,Hotspring,93,34'; - put '39.728,-120.547,Mclear Warm Springs,Chico,Hotspring,86,30'; - put '38.835,-122.731,Gordon Warm Springs,Santa Rosa,Hotspring,97,36'; - put '39.166,-123.159,Vichy Springs,Ukiah,Hotspring,85,29'; - put '38.936,-122.907,Highland Springs,Santa Rosa,Hotspring,84,29'; - put '37.398,-121.794,Mineral Springs,San Jose,Hotspring,84,29'; - put '33.436,-117.324,De Luz Warm Springs,Santa Ana,Hotspring,85,29'; - put '33.512,-115.827,Dos Palmas Spring,Salton Sea,Hotspring,84,29'; - put '39.022,-122.444,Abbott Mine,Ukiah,Hotspring,86,30'; - put '34.605,-118.561,Warm Spring,Los Angeles,Hotspring,92,33'; - put '41.659,-123.319,Sulphur Springs,Weed,Hotspring,84,29'; - put '38.394,-122.552,Los Guilicos Warm Springs,Santa Rosa,Hotspring,88,31'; - put '41.492,-120.7,Essex Springs,Alturas,Hotspring,91,33'; - put '38.654,-122.484,Aetna Springs,Santa Rosa,Hotspring,91,33'; - put '35.842,-117.38,Bainter Spring,Trona,Hotspring,92,33'; - put '34.228,-117.483,Tylers Bath Spring,San Bernardino,Hotspring,92,33'; - put '33.363,-117.017,Agua Tibia Spring,Santa Ana,Hotspring,92,33'; - put '41.167,-120.032,Bare Ranch Spring,Alturas,Hotspring,90,32'; - put '35.978,-116.273,Shoshone Spring,Trona,Hotspring,90,32'; - put '33.407,-116.035,Fish Springs,Santa Ana,Hotspring,90,32'; - put '35.582,-120.666,Santa Ysabel Springs (Sulphur Spr),San Luis Obisp,Hotspring,92,33'; - put '34.537,-119.613,Little Caliente Spring,Los Angeles,Hotspring,90,32'; - put '39.006,-122.787,Big Soda Spring,Ukiah,Hotspring,90,32'; - put '35.439,-119.846,Carneros Spring,Bakersfield,Hotspring,90,32'; - put '36.441,-116.829,Travertine Springs,Death Valley,Hotspring,90,32'; - put '37.88,-122.627,Rocky Point Springs,San Francisco,Hotspring,90,32'; - put '39.227,-107.224,Penny Hot Springs,Leadville,Hotspring,133,56'; - put '38.732,-106.178,Hortense Hot Spring,Montrose,Hotspring,181,83'; - put '37.4,-107.849,Tripp Hot Springs,Durango,Hotspring,111,44'; - put '40.073,-106.113,Hot Sulphur Springs,Craig,Hotspring,111,44'; - put '39.739,-105.512,Idaho Springs,Denver,Hotspring,115,46'; - put '39.552,-107.412,South Canyon Hot Springs,Leadville,Hotspring,118,48'; - put '39.548,-107.322,Glenwood Springs,Leadville,Hotspring,124,51'; - put '38.133,-107.736,Orvis Hot Spring,Montrose,Hotspring,126,52'; - put '39.017,-105.793,Hartsel Hot Springs,Denver,Hotspring,126,52'; - put '38.733,-106.162,Mount Princeton Hot Springs,Montrose,Hotspring,133,56'; - put '37.752,-108.131,Paradise Warm Spring,Cortez,Hotspring,115,46'; - put '37.747,-106.831,Wagon Wheel Gap Hot Springs,Durango,Hotspring,135,57'; - put '37.263,-107.011,Pagosa Springs,Durango,Hotspring,136,58'; - put '38.812,-106.226,Cottonwood Hot Springs,Montrose,Hotspring,136,58'; - put '38.168,-105.924,Mineral Hot Springs,Pueblo,Hotspring,140,60'; - put '40.559,-106.849,Routt Hot Springs,Craig,Hotspring,147,64'; - put '38.021,-107.672,Ouray Hot Springs,Montrose,Hotspring,156,69'; - put '38.498,-106.076,Poncha Hot Springs,Montrose,Hotspring,160,71'; - put '38.514,-106.508,Upper Waunita Hot Springs,Montrose,Hotspring,176,80'; - put '38.272,-107.1,Cebolla Hot Springs,Montrose,Hotspring,106,41'; - put '37.313,-107.344,Piedra River Hot Springs,Durango,Hotspring,108,42'; - put '38.517,-106.515,Lower Waunita Hot Springs,Montrose,Hotspring,167,75'; - put '38.816,-106.873,Ranger Hot Spring,Montrose,Hotspring,81,27'; - put '37.294,-105.784,Dexter Spring,Trinidad,Hotspring,68,20'; - put '38.634,-106.072,Browns Grotto Warm Spring,Montrose,Hotspring,73,23'; - put '39.164,-106.062,Rhodes Warm Spring,Leadville,Hotspring,75,24'; - put '38.836,-106.825,Cement Creek Hot Spring,Montrose,Hotspring,77,25'; - put '38.653,-106.056,Browns Canyon Warm Spring,Montrose,Hotspring,77,25'; - put '37.033,-106.805,Stinking Springs,Durango,Hotspring,81,27'; - put '37.747,-108.117,Geyser Warm Spring,Cortez,Hotspring,82,28'; - put '38.479,-105.891,Swissvale Warm Springs,Pueblo,Hotspring,82,28'; - put '37.751,-106.317,Shaw Springs,Durango,Hotspring,86,30'; - put '37.728,-107.054,Birdsie Warm Spring,Durango,Hotspring,86,30'; - put '37.741,-107.034,Antelope Spring,Durango,Hotspring,90,32'; - put '39.628,-107.106,Dotsero Warm Springs,Leadville,Hotspring,90,32'; - put '38.485,-105.91,Wellsville Warm Spring,Pueblo,Hotspring,91,33'; - put '38.014,-108.054,Lemon Hot Spring,Moab,Hotspring,91,33'; - put '37.391,-107.846,"Trimble Hot Spr, Stratten Warm Spr",Durango,Hotspring,97,36'; - put '38.192,-105.816,Valley View Hot Springs,Pueblo,Hotspring,99,37'; - put '38.433,-105.261,Canon City Hot Springs,Pueblo,Hotspring,104,40'; - put '39.012,-106.891,Conundrum Hot Springs,Leadville,Hotspring,100,38'; - put '37.511,-106.945,Rainbow Hot Springs,Durango,Hotspring,104,40'; - put '40.467,-107.952,Juniper Hot Springs,Craig,Hotspring,100,38'; - put '40.483,-106.827,Steamboat Springs,Craig,Hotspring,102,39'; - put '37.771,-108.091,Dunton Hot Spring,Cortez,Hotspring,108,42'; - put '37.453,-107.803,Pinkerton Hot Springs,Durango,Hotspring,90,32'; - put '39.932,-105.277,Eldorado Springs,Denver,Hotspring,79,26'; - put '27.074,-82.233,Little Salt Spring,Tampa,Hotspring,81,27'; - put '27.06,-82.261,Warm Mineral Springs (Big Salt Spr,Tampa,Hotspring,86,30'; - put '32.92,-84.438,Barker Spring,Phenix City,Hotspring,73,23'; - put '32.964,-84.499,Thundering Spring,Phenix City,Hotspring,75,24'; - put '33.018,-84.327,Taylor Spring,Atlanta,Hotspring,75,24'; - put '32.862,-84.65,Parkman Spring,Phenix City,Hotspring,77,25'; - put '33.037,-84.374,Lifsey Spring,Atlanta,Hotspring,79,26'; - put '32.893,-84.69,Warm Springs,Phenix City,Hotspring,88,31'; - put '32.873,-84.547,Tom Brown Spring,Phenix City,Hotspring,68,20'; - put '19.407,-155.277,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.46,-154.847,Isaac Hale Park Spring,Hawaii,Hotspring,97,36'; - put '19.496,-154.876,Warm Vapor,Hawaii,Hotspring,W,W'; - put '19.373,-155.188,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.39,-155.311,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.434,-155.272,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.486,-155.598,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.466,-154.943,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.421,-155.62,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.201,-155.384,Waiwelawela Point Spring,Hawaii,Hotspring,90,32'; - put '19.593,-154.928,Akins Spring,Hawaii,Hotspring,84,29'; - put '44.721,-115.01,Thomas Creek Ranch Hot Spring,Challis,Hotspring,138,59'; - put '45.431,-116.015,Cow Flats Hot Spring,Grangeville,Hotspring,138,59'; - put '44.062,-115.685,Pine Flat Hot Springs,Challis,Hotspring,138,59'; - put '44.382,-115.841,Dash Creek Hot Springs,Challis,Hotspring,138,59'; - put '44.077,-115.553,Haven Lodge Hot Spring,Challis,Hotspring,147,64'; - put '43.647,-114.816,Skillern Hot Springs,Hailey,Hotspring,140,60'; - put '43.789,-115.434,Dutch Frank Hot Spring,Hailey,Hotspring,149,65'; - put '43.54,-115.288,Bridge Hot Springs,Hailey,Hotspring,138,59'; - put '43.72,-115.617,Smith Cabin Hot Spring,Hailey,Hotspring,138,59'; - put '42.688,-114.826,Banbury Hot Spring,Twin Falls,Hotspring,138,59'; - put '45.035,-115.561,Sheep Creek Hot Spring,Elk City,Hotspring,136,58'; - put '44.245,-114.885,Elkhorn Hot Spring,Challis,Hotspring,136,58'; - put '44.642,-115.693,Mollys Hot Spring,Challis,Hotspring,138,59'; - put '43.811,-115.116,Atlanta Hot Springs,Hailey,Hotspring,140,60'; - put '44.679,-116.231,White Licks Hot Spring,Baker,Hotspring,140,60'; - put '45.512,-115.046,Barth Hot Springs,Elk City,Hotspring,140,60'; - put '43.696,-115.658,Sheep Creek Bridge Hot Spring,Hailey,Hotspring,142,61'; - put '44.914,-115.722,Teapot Hot Spring,Challis,Hotspring,142,61'; - put '43.788,-115.444,Straight Creek Hot Spring,Hailey,Hotspring,144,62'; - put '43.116,-115.305,Latty Hot Spring,Hailey,Hotspring,144,62'; - put '45.039,-116.291,Zims Resort Hot Springs,Grangeville,Hotspring,144,62'; - put '43.049,-114.952,White Arrow Hot Spring,Hailey,Hotspring,145,63'; - put '44.645,-114.739,Upper Loon Creek Hot Springs,Challis,Hotspring,145,63'; - put '43.383,-114.931,Wardrop Hot Spring,Hailey,Hotspring,147,64'; - put '44.531,-116.754,Fairchild Hot Spring,Baker,Hotspring,126,52'; - put '44.661,-114.652,Foster Ranch Hot Springs,Challis,Hotspring,135,57'; - put '44.051,-115.829,Dan Hodges Hot Spring,Challis,Hotspring,140,60'; - put '43.506,-114.354,Hailey Hot Springs,Hailey,Hotspring,131,55'; - put '43.982,-114.486,West Pass Hot Spring,Hailey,Hotspring,124,51'; - put '43.641,-114.487,Warfield Hot Spring,Hailey,Hotspring,124,51'; - put '44.145,-112.554,Lidy Hot Springs,Dubois,Hotspring,124,51'; - put '44.054,-115.907,Hot Spring Campground,Challis,Hotspring,124,51'; - put '42.032,-115.363,Murphy Hot Springs,Twin Falls,Hotspring,126,52'; - put '43.561,-114.415,Clarendon Hot Springs,Hailey,Hotspring,126,52'; - put '43.423,-114.627,Elk Creek Hot Spring,Hailey,Hotspring,126,52'; - put '43.553,-115.267,Paradise Hot Springs,Hailey,Hotspring,126,52'; - put '42.308,-111.707,Maple Grove Hot Springs,Preston,Hotspring,172,78'; - put '45.013,-113.605,Sharkey Hot Spring,Dillon,Hotspring,126,52'; - put '44.73,-114.993,Sunflower Hot Springs,Challis,Hotspring,149,65'; - put '43.974,-114.499,Lower Bowery Hot Spring,Hailey,Hotspring,129,54'; - put '43.724,-115.604,Loftus Hot Spring,Hailey,Hotspring,129,54'; - put '44.676,-115.943,Gold Fork Hot Spring,Challis,Hotspring,127,53'; - put '44.044,-115.851,Donlay Ranch Hot Spring,Challis,Hotspring,131,55'; - put '44.264,-114.818,Basin Creek Hot Spring,Challis,Hotspring,133,56'; - put '44.652,-114.734,Owen Cabin Hot Spring,Challis,Hotspring,133,56'; - put '43.605,-115.664,Rattlesnake Hot Spring,Hailey,Hotspring,133,56'; - put '43.605,-114.948,Lightfoot Hot Springs,Hailey,Hotspring,133,56'; - put '45.788,-115.198,Red River Hot Springs,Elk City,Hotspring,131,55'; - put '44.632,-115.697,South Fork Plunge,Challis,Hotspring,129,54'; - put '44.853,-116.442,Starkey Hot Springs,Baker,Hotspring,131,55'; - put '42.692,-114.859,Hot Sulphur (Miracle Hot) Springs,Twin Falls,Hotspring,131,55'; - put '44.045,-115.842,Corder Hot Spring,Challis,Hotspring,131,55'; - put '44.247,-114.676,Robinson Bar Hot Springs,Challis,Hotspring,131,55'; - put '44.785,-114.855,Cox Hot Springs,Challis,Hotspring,131,55'; - put '43.637,-115.13,Willow Creek Hot Spring,Hailey,Hotspring,131,55'; - put '43.803,-115.401,Granite Creek Hot Spring,Hailey,Hotspring,131,55'; - put '43.129,-115.34,Coyote Hot Spring,Hailey,Hotspring,135,57'; - put '44.211,-116.71,Cove Creek Hot Spring,Baker,Hotspring,131,55'; - put '44.16,-115.167,Grandjean Hot Spring,Challis,Hotspring,H,H'; - put '43.755,-115.571,Ninemeyer Hot Springs,Hailey,Hotspring,169,76'; - put '43.701,-114.738,Big Smokey Hot Spring,Hailey,Hotspring,H,H'; - put '43.831,-115.192,Queens River Hot Spring,Hailey,Hotspring,H,H'; - put '43.817,-115.046,Leggit Creek Hot Spring,Hailey,Hotspring,H,H'; - put '43.718,-115.563,Basset Hot Spring,Hailey,Hotspring,H,H'; - put '43.588,-115.988,Mores Creek Hot Spring,Hailey,Hotspring,H,H'; - put '44.951,-114.704,Mormon Ranch Warm Spring,Challis,Hotspring,H,H'; - put '44.896,-114.563,Forge Creek Hot Springs,Challis,Hotspring,H,H'; - put '44.77,-115.663,Billy Hot Spring,Challis,Hotspring,H,H'; - put '44.628,-115.197,Sheepeater Hot Springs,Challis,Hotspring,H,H'; - put '44.585,-115.072,Sulphur Creek Hot Spring,Challis,Hotspring,H,H'; - put '44.554,-115.301,Sulphur Creek Hot Spring,Challis,Hotspring,H,H'; - put '42.107,-113.39,Blm Well (Frazier Hot Spring),Pocatello,Hotspring,203,95'; - put '44.4,-115.82,Goat Hot Springs,Challis,Hotspring,H,H'; - put '45.307,-114.338,Big Creek Hot Springs,Elk City,Hotspring,199,93'; - put '44.583,-116.112,Cascade Reservoir Hot Spring,Baker,Hotspring,H,H'; - put '45.17,-115.807,Secesh Hot Spring,Elk City,Hotspring,H,H'; - put '46.235,-114.707,Prospector Hot Springs,Hamilton,Hotspring,H,H'; - put '46.138,-115.09,Stuart Hot Springs,Hamilton,Hotspring,H,H'; - put '46.006,-115.021,Marten Hot Springs,Hamilton,Hotspring,H,H'; - put '42.374,-111.726,Mound Valley Warm Spring,Preston,Hotspring,W,W'; - put '43.255,-114.829,Mormon Reservoir Warm Spring,Hailey,Hotspring,W,W'; - put '44.639,-115.671,Warm Lake Springs,Challis,Hotspring,W,W'; - put '44.445,-115.239,Bear Valley Hot Spring,Challis,Hotspring,W,W'; - put '44.354,-117.071,Old Homestead Warm Spring,Baker,Hotspring,W,W'; - put '43.327,-113.918,Condie Hot Springs,Idaho Falls,Hotspring,124,51'; - put '43.038,-112.004,Alkali Flats Warm Spring,Idaho Falls,Hotspring,93,34'; - put '44.43,-115.762,Bull Creek Hot Springs,Challis,Hotspring,H,H'; - put '42.119,-111.928,Squaw Hot Springs,Preston,Hotspring,163,73'; - put '42.333,-111.716,Cleveland Hot Springs,Preston,Hotspring,151,66'; - put '43.671,-115.696,Twin Springs,Hailey,Hotspring,151,66'; - put '43.951,-116.353,Roystone Hot Springs,Boise,Hotspring,151,66'; - put '42.704,-114.856,Salmon Falls Hot Spring,Twin Falls,Hotspring,153,67'; - put '44.16,-115.177,Sacajawea Hot Springs,Challis,Hotspring,153,67'; - put '43.738,-115.583,Vaughn Hot Spring,Hailey,Hotspring,154,68'; - put '44.669,-116.305,Council Mtn Hot Springs,Baker,Hotspring,154,68'; - put '44.831,-115.215,Kwiskwis Hot Spring,Challis,Hotspring,156,69'; - put '43.684,-114.41,Guyer Hot Springs,Hailey,Hotspring,158,70'; - put '43.155,-115.518,Hot Springs,Hailey,Hotspring,158,70'; - put '44.586,-116.63,Lakey Hot Spring,Baker,Hotspring,158,70'; - put '42.333,-115.65,Indian Hot Springs,Twin Falls,Hotspring,160,71'; - put '42.637,-114.892,Poison Springs,Twin Falls,Hotspring,H,H'; - put '44.813,-115.123,Middle Fork Indian Creek Hot Sprin,Challis,Hotspring,162,72'; - put '44.072,-115.543,Kirkham Hot Springs,Challis,Hotspring,149,65'; - put '43.328,-114.399,Magic Hot Springs,Hailey,Hotspring,163,73'; - put '43.293,-114.908,Barrons Hot Spring,Hailey,Hotspring,167,75'; - put '44.154,-115.993,Warm Springs Creek Hot Springs,Challis,Hotspring,167,75'; - put '44.268,-114.748,Sunbeam Hot Springs,Challis,Hotspring,169,76'; - put '44.092,-116.052,Deer Hot Springs,Baker,Hotspring,176,80'; - put '43.563,-114.798,Worswick Hot Springs,Hailey,Hotspring,180,82'; - put '42.133,-111.928,Battle Creek Hot Springs,Preston,Hotspring,183,84'; - put '44.364,-115.856,Boiling Springs,Challis,Hotspring,185,85'; - put '44.157,-115.314,Bonneville Hot Springs,Challis,Hotspring,185,85'; - put '44.799,-115.129,Indian Creek Hot Spring,Challis,Hotspring,190,88'; - put '44.568,-115.695,Vulcan Hot Springs,Challis,Hotspring,190,88'; - put '44.306,-116.745,Crane Creek Hot Springs,Baker,Hotspring,198,92'; - put '44.416,-116.031,Cabarton Hot Spring,Baker,Hotspring,160,71'; - put '42.781,-111.983,Portneuf River Warm Spring,Preston,Hotspring,93,34'; - put '44.621,-115.985,Badley Warm Spring,Challis,Hotspring,100,38'; - put '45.201,-116.312,Boulder Creek Spring,Grangeville,Hotspring,82,28'; - put '42.24,-113.588,Sears Spring,Pocatello,Hotspring,84,29'; - put '44.257,-112.639,Warm Springs,Dubois,Hotspring,84,29'; - put '42.911,-111.556,Henry Warm Spring,Preston,Hotspring,86,30'; - put '43.021,-111.695,Wilson Lake Warm Spring,Driggs,Hotspring,86,30'; - put '44.495,-116.732,Keithly Warm Spring,Baker,Hotspring,86,30'; - put '42.655,-111.643,Steamboat Hot Spring,Preston,Hotspring,88,31'; - put '45.152,-116.296,Stinky Warm Spring,Grangeville,Hotspring,88,31'; - put '42.725,-112.872,Indian Springs,Pocatello,Hotspring,90,32'; - put '43.114,-112.167,Yandell Springs,Idaho Falls,Hotspring,90,32'; - put '44.64,-116.045,Arling Hot Spring,Baker,Hotspring,90,32'; - put '42.657,-111.604,Soda Springs,Preston,Hotspring,82,28'; - put '45.07,-115.826,Lick Creek Warm Spring,Elk City,Hotspring,91,33'; - put '42.337,-111.726,Treasureton Hot Springs,Preston,Hotspring,95,35'; - put '44.382,-114.088,Little Antelope Flat Warm Spring,Challis,Hotspring,93,34'; - put '43.21,-111.495,Brockman Creek Hot Spring,Driggs,Hotspring,95,35'; - put '44.398,-115.149,Cape Horn Warm Springs,Challis,Hotspring,95,35'; - put '42.337,-114.509,Nat-Soo-Pah Warm Spring,Twin Falls,Hotspring,97,36'; - put '44.9,-115.505,Hot Creek Warm Spring,Challis,Hotspring,97,36'; - put '42.405,-114.142,Artesian City Hot Springs,Twin Falls,Hotspring,99,37'; - put '42.762,-115.739,Indian Bathtub Hot Springs,Twin Falls,Hotspring,99,37'; - put '43.227,-111.109,Alpine Warm Spring,Driggs,Hotspring,99,37'; - put '42.545,-112.906,Rockland Warm Springs,Pocatello,Hotspring,100,38'; - put '43.805,-114.585,Russian John Hot Spring,Hailey,Hotspring,100,38'; - put '43.779,-114.539,Easley Hot Springs,Hailey,Hotspring,100,38'; - put '44.26,-114.838,Mormon Bend Hot Spring,Challis,Hotspring,100,38'; - put '44.64,-113.504,Big Eightmile Creek Warm Spring,Dubois,Hotspring,91,33'; - put '42.339,-112.436,Kent Warm Spring,Pocatello,Hotspring,75,24'; - put '42.957,-112.458,Tadpole Warm Spring,Pocatello,Hotspring,68,20'; - put '43.607,-111.189,Taylor Springs,Driggs,Hotspring,68,20'; - put '43.972,-116.325,Sweet Warm Spring,Boise,Hotspring,68,20'; - put '44.717,-115.703,Dollar Creek Warm Spring,Challis,Hotspring,68,20'; - put '42.625,-113.107,Lake Walcott Hot Spring,Pocatello,Hotspring,70,21'; - put '42.015,-114.237,Thoroughbred Warm Springs,Twin Falls,Hotspring,69,21'; - put '42.928,-111.592,Blackfoot Reservoir Warm Spring,Preston,Hotspring,72,22'; - put '42.286,-113.446,"Rice Spring, Ward Spring",Pocatello,Hotspring,72,22'; - put '42.085,-113.564,Grape Creek Warm Spring,Pocatello,Hotspring,72,22'; - put '43.66,-111.715,Elkhorn Warm Spring,Driggs,Hotspring,72,22'; - put '43.367,-113.884,Rush Warm Spring,Idaho Falls,Hotspring,72,22'; - put '44.306,-117.042,Weiser Warm Springs,Baker,Hotspring,72,22'; - put '45.344,-114.463,Owl Creek Hot Springs,Elk City,Hotspring,122,50'; - put '44.454,-112.696,Big Spring,Dubois,Hotspring,73,23'; - put '44.269,-113.449,Barney Hot Springs,Dubois,Hotspring,82,28'; - put '43.5,-115.308,Towne Creek Warm Spring,Hailey,Hotspring,75,24'; - put '43.161,-116.332,Thomas Flats Warm Spring,Boise,Hotspring,75,24'; - put '44.612,-113.363,Whittaker Warm Springs,Dubois,Hotspring,75,24'; - put '42.173,-112.239,Malad Warm Spring,Pocatello,Hotspring,77,25'; - put '42.156,-112.348,Pleasantview Warm Springs,Pocatello,Hotspring,77,25'; - put '42.025,-112.226,Prices Warm Spring,Pocatello,Hotspring,77,25'; - put '42.865,-116.368,Lower Birch Spring,Jordan Valley,Hotspring,77,25'; - put '43.423,-111.414,Fall Creek Mineral Springs,Driggs,Hotspring,77,25'; - put '42.986,-111.743,Blackfoot River Warm Spring,Preston,Hotspring,79,26'; - put '42.426,-111.378,Pescadero Warm Spring,Preston,Hotspring,79,26'; - put '44.091,-111.458,Ashton Warm Spring,Ashton,Hotspring,79,26'; - put '42.056,-112.246,Woodruff Hot Spring,Pocatello,Hotspring,81,27'; - put '43.831,-116.396,Highland Land Co Warm Spring,Boise,Hotspring,73,23'; - put '44.847,-115.696,Holdover Hot Spring,Challis,Hotspring,117,47'; - put '43.047,-114.929,Hot Sulphur Lake,Hailey,Hotspring,81,27'; - put '43.603,-115.07,Baumgartner Hot Spring,Hailey,Hotspring,111,44'; - put '44.465,-116.037,Belvidere Hot Spring,Baker,Hotspring,111,44'; - put '42.621,-112.008,Lava Hot Springs,Pocatello,Hotspring,113,45'; - put '43.823,-115.327,Weatherby Hot Spring,Hailey,Hotspring,113,45'; - put '43.335,-115.044,Wolf Hot Spring,Hailey,Hotspring,113,45'; - put '44.905,-113.929,Goldbug Hot Spring,Dubois,Hotspring,113,45'; - put '45.095,-113.836,Salmon Hot Spring,Dillon,Hotspring,113,45'; - put '45.277,-115.912,Burgdorf Hot Springs,Elk City,Hotspring,113,45'; - put '44.836,-114.79,Hospital Hot Spring,Challis,Hotspring,115,46'; - put '44.72,-114.016,Cronks Canyon Hot Spring,Challis,Hotspring,115,46'; - put '44.721,-115.207,Pistol Creek Hot Springs,Challis,Hotspring,115,46'; - put '43.791,-111.435,Pincock (Green Canyon) Hot Springs,Driggs,Hotspring,111,44'; - put '43.414,-116.707,Givens Hot Springs,Boise,Hotspring,117,47'; - put '45.503,-114.463,Horse Creek Hot Springs,Elk City,Hotspring,109,43'; - put '46.464,-115.035,Weir Creek Hot Springs,Hamilton,Hotspring,117,47'; - put '42.115,-111.264,Bear Lake Hot Springs,Preston,Hotspring,118,48'; - put '42.173,-113.861,Oakley Hot Spring,Pocatello,Hotspring,118,48'; - put '46.463,-114.872,Jerry Johnson Hot Springs,Hamilton,Hotspring,118,48'; - put '43.644,-111.687,Heise Hot Springs,Driggs,Hotspring,120,49'; - put '44.799,-114.806,Lower Loon Creek Hot Spring,Challis,Hotspring,120,49'; - put '44.253,-115.891,Rocky Canyon Hot Springs,Challis,Hotspring,120,49'; - put '46.316,-115.258,Stanley Hot Springs,Hamilton,Hotspring,120,49'; - put '43.779,-115.486,Brown Creek Hot Spring,Hailey,Hotspring,122,50'; - put '44.628,-114.601,Shower Bath Springs,Challis,Hotspring,122,50'; - put '44.171,-114.624,Slate Creek Hot Spring,Challis,Hotspring,122,50'; - put '44.392,-115.834,Ground Hog Hot Springs,Challis,Hotspring,100,38'; - put '42.797,-115.723,"Bat Hot Spring, Pence Hot Spring",Twin Falls,Hotspring,117,47'; - put '42.767,-115.725,Lower Indian Bathtub Hot Springs,Twin Falls,Hotspring,108,42'; - put '42.102,-113.632,Durfee Spring,Pocatello,Hotspring,102,39'; - put '44.33,-115.802,Silver Creek Hot Spring,Challis,Hotspring,102,39'; - put '42.447,-113.523,Marsh Creek Hot Spring,Pocatello,Hotspring,104,40'; - put '42.449,-113.511,Marsh Gully Hot Springs,Pocatello,Hotspring,106,41'; - put '42.798,-115.742,Bruneau Hot Spring,Twin Falls,Hotspring,106,41'; - put '43.576,-114.83,Preis Hot Spring,Hailey,Hotspring,106,41'; - put '43.677,-116.208,Terteling Hot Springs,Boise,Hotspring,106,41'; - put '44.254,-114.443,Sullivan Hot Springs,Challis,Hotspring,106,41'; - put '44.224,-114.929,Stanley Hot Spring,Challis,Hotspring,106,41'; - put '44.101,-114.865,Rosalys Warm Spring,Challis,Hotspring,106,41'; - put '44.06,-115.819,Danskin Creek Hot Spring,Challis,Hotspring,106,41'; - put '45.852,-114.937,Running Warm Springs,Elk City,Hotspring,106,41'; - put '43.363,-113.779,Milford Sweat Hot Spring,Idaho Falls,Hotspring,111,44'; - put '46.466,-114.939,Colgate Warm Springs,Hamilton,Hotspring,106,41'; - put '44.626,-115.749,Trail Creek Hot Spring,Challis,Hotspring,122,50'; - put '43.816,-115.863,Warm Springs,Hailey,Hotspring,108,42'; - put '43.76,-115.56,Pool Creek Hot Spring,Hailey,Hotspring,108,42'; - put '45.042,-114.616,Snowshoe Johnsons Hot Spring,Elk City,Hotspring,108,42'; - put '42.388,-112.085,Downata Hot Springs,Pocatello,Hotspring,109,43'; - put '42.013,-114.504,Magic Hot Springs,Twin Falls,Hotspring,109,43'; - put '42.779,-115.715,Buckaroo Hot Spring,Twin Falls,Hotspring,109,43'; - put '43.99,-114.8,Pierson Hot Springs,Hailey,Hotspring,109,43'; - put '43.038,-114.988,Tschanne Hot Spring,Hailey,Hotspring,109,43'; - put '44.523,-114.173,Beardsley Hot Springs,Challis,Hotspring,109,43'; - put '44.733,-115.018,Sunflower Flat Hot Spring,Challis,Hotspring,109,43'; - put '44.516,-115.295,Dagger Creek Hot Spring,Challis,Hotspring,110,43'; - put '44.971,-116.203,Krigbaum Hot Springs,Baker,Hotspring,109,43'; - put '45.416,-116.172,Riggins Hot Springs,Grangeville,Hotspring,106,41'; - put '42.735,-73.2,Sand Spring,Albany,Hotspring,75,24'; - put '46.106,-114.004,Sleeping Child Hot Springs,Hamilton,Hotspring,122,50'; - put '45.697,-114.365,Blue Joint Hot Springs 2,Elk City,Hotspring,84,29'; - put '44.769,-111.649,Sloan Cow Camp Spring,Ashton,Hotspring,86,30'; - put '47.632,-112.855,Medicine (Sun River) Springs,Choteau,Hotspring,86,30'; - put '45.75,-113.938,Gallogly Spring,Dillon,Hotspring,100,38'; - put '47.33,-114.789,Quinns Hot Springs,Wallace,Hotspring,109,43'; - put '45.171,-112.153,Puller Hot Springs,Dillon,Hotspring,111,44'; - put '46.728,-114.533,"Lolo Hot Springs, Granite Springs",Hamilton,Hotspring,111,44'; - put '45.337,-110.691,Chico Hot Springs,Bozeman,Hotspring,113,45'; - put '47.607,-114.663,Camas Hot Springs,Wallace,Hotspring,113,45'; - put '45.841,-114.038,Medicine Hot Springs,Elk City,Hotspring,117,47'; - put '45.458,-113.109,Elkhorn Hot Springs,Dillon,Hotspring,118,48'; - put '45.027,-112.844,Mcmenomey Ranch Spring,Dillon,Hotspring,68,20'; - put '45.792,-112.126,Renova Hot Springs,Dillon,Hotspring,122,50'; - put '44.701,-111.878,Staudenmeyer Springs,Ashton,Hotspring,82,28'; - put '45.602,-111.9,Potosi Warm Springs,Bozeman,Hotspring,124,51'; - put '45.575,-111.683,Norris Hot Springs,Bozeman,Hotspring,127,53'; - put '45.462,-112.475,New Biltmore Hot Springs,Dillon,Hotspring,127,53'; - put '45.66,-111.186,Bozeman Hot Springs,Bozeman,Hotspring,131,55'; - put '45.896,-112.233,Pipestone Hot Springs,Dillon,Hotspring,135,57'; - put '46.547,-110.903,White Sulphur Springs,White Sulphur,Hotspring,136,58'; - put '46.448,-111.982,Alhambra Hot Springs,White Sulphur,Hotspring,138,59'; - put '45.757,-110.256,Hunters Hot Springs,Bozeman,Hotspring,140,60'; - put '45.368,-113.403,Jardine Hot Spring,Dillon,Hotspring,140,60'; - put '46.596,-112.108,Broadwater (Helena) Hot Springs,Butte,Hotspring,151,66'; - put '44.984,-111.613,Wolf Creek Hot Springs,Ashton,Hotspring,154,68'; - put '45.685,-112.295,Silver Star Hot Springs,Dillon,Hotspring,163,73'; - put '45.59,-111.899,Potosi Hot Springs,Bozeman,Hotspring,122,50'; - put '45.105,-112.751,Browns Springs,Dillon,Hotspring,75,24'; - put '46.718,-113.306,Bearmouth Warm Spring 2,Butte,Hotspring,68,20'; - put '46.717,-113.32,Bearmouth Warm Spring 1,Butte,Hotspring,68,20'; - put '47.217,-109.471,Brooks Warm Spring,Lewistown,Hotspring,68,20'; - put '45.708,-110.976,Bridger Canyon Warm Spring,Bozeman,Hotspring,70,21'; - put '46.795,-108.883,Durfee Creek Springs,Roundup,Hotspring,70,21'; - put '46.704,-113.452,Nimrod Springs,Butte,Hotspring,70,21'; - put '47.876,-108.656,Landusky Springs,Lewistown,Hotspring,70,21'; - put '45.032,-110.667,Bear Creek Springs,Bozeman,Hotspring,72,22'; - put '45.111,-112.714,Lovells Hot Spring,Dillon,Hotspring,72,22'; - put '46.106,-112.903,Anaconda Hot Springs,Butte,Hotspring,72,22'; - put '45.235,-112.135,Trudau Warm Springs,Dillon,Hotspring,73,23'; - put '45.698,-114.382,Blue Joint Hot Spring 1,Elk City,Hotspring,84,29'; - put '45.037,-111.953,Vigilante Spring,Bozeman,Hotspring,75,24'; - put '45.608,-110.571,Carter Bridge Warm Springs,Bozeman,Hotspring,82,28'; - put '46.355,-111.565,Bedford Hot Springs,White Sulphur,Hotspring,74,24'; - put '45.553,-110.142,Anderson Springs,Bozeman,Hotspring,77,25'; - put '45.42,-112.692,Apex Warm Spring,Dillon,Hotspring,77,25'; - put '46.607,-112.776,Garrison Warm Springs,Butte,Hotspring,77,25'; - put '47.843,-108.598,The (Landusky) Plunge,Lewistown,Hotspring,77,25'; - put '44.785,-111.649,West Fork Swimming Hole,Ashton,Hotspring,79,26'; - put '46.61,-112.555,Avon Warm Spring,Butte,Hotspring,79,26'; - put '46.334,-112.886,Deerlodge Prison Ranch Springs,Butte,Hotspring,79,26'; - put '47.994,-108.445,Lodgepole (Big Warm) Springs,Lewistown,Hotspring,79,26'; - put '47.451,-114.648,Green Springs,Wallace,Hotspring,79,26'; - put '45.392,-112.452,Beaverhead Rock Spring,Dillon,Hotspring,81,27'; - put '44.704,-111.892,Andersons Pasture Springs,Ashton,Hotspring,82,28'; - put '47.971,-108.395,Little Warm Springs,Lewistown,Hotspring,73,23'; - put '46.198,-112.094,Boulder Hot Springs,Butte,Hotspring,169,76'; - put '46.178,-112.794,Warm Springs (State Hospital),Butte,Hotspring,172,78'; - put '45.367,-111.726,Ennis Hot Springs,Bozeman,Hotspring,181,83'; - put '46.044,-112.811,Gregson Hot Springs,Butte,Hotspring,158,70'; - put '45.09,-110.774,Laduke (Corwin) Hot Spring,Bozeman,Hotspring,154,68'; - put '35.897,-82.826,Hot Springs,Knoxville,Hotspring,108,42'; - put '32.644,-108.128,Apache Tejo Warm Spring,Silver City,Hotspring,97,36'; - put '33.135,-107.254,Truth Or Consequences,Tularosa,Hotspring,113,45'; - put '36.305,-106.053,Ojo Caliente (Arsenic Spring),Aztec,Hotspring,111,44'; - put '33.162,-108.209,Spring (Hot),Clifton,Hotspring,111,44'; - put '36.508,-105.722,Manby Hot Springs,Raton,Hotspring,100,38'; - put '35.849,-106.629,Spence Hot Springs,Albuquerque,Hotspring,100,38'; - put '35.972,-106.56,San Antonio Warm Spring,Albuquerque,Hotspring,101,38'; - put '35.82,-106.627,Mccauley Hot Springs,Albuquerque,Hotspring,99,37'; - put '35.793,-106.685,Soda Dam Hot Springs,Albuquerque,Hotspring,117,47'; - put '33.831,-108.8,(Upper) Frisco Hot Spring,Clifton,Hotspring,98,37'; - put '35.646,-106.888,Warm Springs,Albuquerque,Hotspring,129,54'; - put '36.324,-105.606,Ponce De Leon Springs,Raton,Hotspring,93,34'; - put '34.038,-106.94,"Socorro Spring, Sedillo Spring",Socorro,Hotspring,93,34'; - put '33.293,-108.282,"Spring Mfg Two, Spring Mfg Three",Clifton,Hotspring,99,37'; - put '35.592,-106.753,Indian Springs,Albuquerque,Hotspring,123,51'; - put '32.501,-106.926,Radium Springs,Las Cruces,Hotspring,127,53'; - put '33.274,-108.25,Spring Mfg Four,Clifton,Hotspring,93,34'; - put '35.938,-106.646,San Antonio Hot Spring,Albuquerque,Hotspring,129,54'; - put '33.244,-108.88,San Francisco Hot Springs,Clifton,Hotspring,120,49'; - put '32.748,-107.836,Mimbres Hot Springs,Las Cruces,Hotspring,136,58'; - put '35.653,-105.29,Montezuma Hot Springs,Santa Fe,Hotspring,138,59'; - put '33.233,-108.235,Spring (Hot),Clifton,Hotspring,149,65'; - put '33.199,-108.209,Gila Hot Springs,Clifton,Hotspring,151,66'; - put '33.108,-108.483,Turkey Creek Hot Spring,Clifton,Hotspring,165,74'; - put '35.772,-106.69,Jemez Springs,Albuquerque,Hotspring,169,76'; - put '35.908,-106.615,Sulphur Springs,Albuquerque,Hotspring,189,87'; - put '33.237,-108.88,Hot Springs,Clifton,Hotspring,H,H'; - put '32.562,-108.027,Kennecott Warm Springs,Silver City,Hotspring,W,W'; - put '32.554,-107.994,Faywood Hot Springs,Las Cruces,Hotspring,129,54'; - put '33.898,-108.501,Aragon Springs,Clifton,Hotspring,70,21'; - put '34.847,-107.091,Spring (Salt),Socorro,Hotspring,76,24'; - put '34.903,-107.085,El Ojo Escondido,Socorro,Hotspring,73,23'; - put '35.06,-107.133,Alamos Spring,Albuquerque,Hotspring,72,22'; - put '34.912,-108.951,Rainbow Spring,Saint Johns,Hotspring,71,22'; - put '34.698,-107.129,Spring,Socorro,Hotspring,71,22'; - put '32.455,-104.489,Indian Big Spring,Carlsbad,Hotspring,79,26'; - put '34.995,-106.454,Clear Water Spring,Socorro,Hotspring,69,21'; - put '32.821,-108.408,Ash Spring,Silver City,Hotspring,72,22'; - put '32.83,-109.047,Goat Camp Spring,Silver City,Hotspring,69,21'; - put '35.548,-106.827,San Ysidro Warm Springs,Albuquerque,Hotspring,68,20'; - put '34.116,-106.98,Ojitos Springs,Socorro,Hotspring,68,20'; - put '32.248,-104.411,Mosley Spring,Carlsbad,Hotspring,68,20'; - put '33.708,-109.025,Frieborn Canyon Spring,Clifton,Hotspring,92,33'; - put '33.192,-108.18,Lyons Hunting Lodge Hot Springs,Clifton,Hotspring,126,52'; - put '35.601,-106.86,Phillips Springs,Albuquerque,Hotspring,70,21'; - put '33.285,-108.262,Spring Mfg One,Clifton,Hotspring,88,31'; - put '33.306,-108.324,The Meadows Warm Spring,Clifton,Hotspring,91,33'; - put '34.049,-106.939,Cook Spring,Socorro,Hotspring,70,21'; - put '32.795,-107.276,Derry Warm Springs,Las Cruces,Hotspring,92,33'; - put '32.884,-108.358,Allen Springs,Silver City,Hotspring,78,26'; - put '33.279,-107.563,Warm Springs,Tularosa,Hotspring,87,31'; - put '32.606,-107.19,Souse Springs,Las Cruces,Hotspring,88,31'; - put '34.808,-107.091,Spring (Salt),Socorro,Hotspring,86,30'; - put '35.54,-106.854,San Ysidro Hot Springs,Albuquerque,Hotspring,85,29'; - put '36.368,-106.059,Statue Spring,Aztec,Hotspring,83,28'; - put '34.833,-107.091,Laguna Pueblo Seeps,Socorro,Hotspring,82,28'; - put '33.572,-107.593,Ojo Caliente,Tularosa,Hotspring,83,28'; - put '34.854,-107.088,Laguna Pueblo Springs,Socorro,Hotspring,80,27'; - put '32.843,-108.512,Mangas Springs,Silver City,Hotspring,81,27'; - put '34.769,-107.085,Spring (Salt),Socorro,Hotspring,78,26'; - put '34.032,-106.777,Ojo De Las Canas,Socorro,Hotspring,79,26'; - put '40.972,-119.007,Black Rock Hot Spring,Lovelock,Hotspring,136,58'; - put '38.899,-119.41,Nevada (Hinds) Hot Springs,Walker Lake,Hotspring,144,62'; - put '38.922,-118.198,Wedell Hot Springs,Walker Lake,Hotspring,144,62'; - put '41.183,-114.991,Hot Springs,Wells,Hotspring,142,61'; - put '38.437,-116.277,Hot Creek Valley Spring,Tonopah,Hotspring,142,61'; - put '41.788,-114.735,Mineral Hot Spring,Wells,Hotspring,140,60'; - put '37.825,-117.337,Alkali Hot Spring,Goldfield,Hotspring,140,60'; - put '41.412,-114.675,Wine Cup Ranch Springs,Wells,Hotspring,138,59'; - put '40.404,-116.517,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59'; - put '40.417,-116.507,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59'; - put '40.603,-116.463,Horseshoe Ranch Springs,Winnemucca,Hotspring,136,58'; - put '41.378,-119.182,Springs (Hot),Vya,Hotspring,136,58'; - put '39.883,-114.893,Cherry Creek Hot Springs,Ely,Hotspring,144,62'; - put '40.922,-117.108,Hot Pot (Blossom Hot Springs),Winnemucca,Hotspring,136,58'; - put '41.721,-118.505,Howard Hot Spring,Vya,Hotspring,135,57'; - put '41.421,-117.388,The Hot Springs,Mcdermitt,Hotspring,135,57'; - put '40.418,-117.415,Buffalo Springs,Winnemucca,Hotspring,162,72'; - put '39.031,-116.666,Dianas Punch Bowl,Millett,Hotspring,138,59'; - put '39.404,-116.347,Klobe (Bartholomae) Hot Spring,Millett,Hotspring,156,69'; - put '36.975,-116.721,Hicks Hot Springs,Death Valley,Hotspring,109,43'; - put '40.178,-117.496,Home Station Ranch Hot Spring,Winnemucca,Hotspring,135,57'; - put '39.797,-118.067,Dixie Hot Springs,Reno,Hotspring,162,72'; - put '39.904,-116.588,Walti Hot Springs,Millett,Hotspring,162,72'; - put '38.981,-119.833,Walleys Hot Springs,Walker Lake,Hotspring,160,71'; - put '38.464,-115.792,Chimney Warm Spring,Lund,Hotspring,160,71'; - put '39.328,-116.858,Spencer Hot Springs,Millett,Hotspring,162,72'; - put '41.108,-117.578,Hot Springs,Mcdermitt,Hotspring,158,70'; - put '36.002,-114.742,Spring,Las Vegas,Hotspring,145,63'; - put '41.576,-115.181,Hot Creek Springs,Wells,Hotspring,151,66'; - put '40.954,-117.488,Golconda Hot Spring (South),Winnemucca,Hotspring,151,66'; - put '40.22,-116.068,Bruffeys Hot Springs,Winnemucca,Hotspring,149,65'; - put '40.249,-115.409,Smith Ranch Springs,Elko,Hotspring,149,65'; - put '41.867,-114.692,San Jacinto Ranch Spring,Wells,Hotspring,148,64'; - put '40.765,-116.04,Hot Sulphur Springs,Winnemucca,Hotspring,147,64'; - put '38.188,-116.373,Warm Springs,Tonopah,Hotspring,145,63'; - put '41.567,-118.564,Dyke Hot Springs,Vya,Hotspring,158,70'; - put '38.365,-115.867,Abel Spring,Lund,Hotspring,115,46'; - put '41.929,-114.071,Nile Spring,Wells,Hotspring,109,43'; - put '39.193,-119.752,Carson Hot Springs,Reno,Hotspring,120,49'; - put '39.512,-119.907,Lawton Hot Springs,Reno,Hotspring,120,49'; - put '39.944,-119.509,Anaho Island Spring,Reno,Hotspring,120,49'; - put '37.761,-117.632,Silverpeak Hot Spring,Goldfield,Hotspring,118,48'; - put '37.621,-114.51,Caliente Hot Springs,Caliente,Hotspring,118,48'; - put '39.058,-119.742,Saratoga Hot Spring,Reno,Hotspring,122,50'; - put '39.308,-117.552,Hot Springs,Millett,Hotspring,115,46'; - put '40.673,-116.838,Hot Springs,Winnemucca,Hotspring,122,50'; - put '39.08,-116.639,Potts Ranch Hot Springs,Millett,Hotspring,113,45'; - put '38.388,-115.866,Coyote Hole Spring,Lund,Hotspring,113,45'; - put '41.753,-118.841,Warm Springs,Vya,Hotspring,112,44'; - put '41.386,-114.165,Spring (Hot),Wells,Hotspring,111,44'; - put '40.961,-117.494,Golconda Hot Spring (North),Winnemucca,Hotspring,165,74'; - put '40.313,-117.07,Mound Springs,Winnemucca,Hotspring,109,43'; - put '40.585,-115.285,Sulphur Hot Springs,Elko,Hotspring,205,96'; - put '39.059,-119.815,Hobo Hot Springs,Reno,Hotspring,114,46'; - put '40.191,-117.107,Hot Springs,Winnemucca,Hotspring,127,53'; - put '40.819,-115.777,Hot Hole,Elko,Hotspring,133,56'; - put '39.286,-119.84,Bowers Mansion Hot Spring,Reno,Hotspring,133,56'; - put '41.809,-118.861,Painted Hills Mine,Vya,Hotspring,131,55'; - put '41.925,-118.805,Bog Hot Springs,Vya,Hotspring,131,55'; - put '41.647,-115.775,Wild Horse Hot Springs,Wells,Hotspring,129,54'; - put '40.183,-117.102,Hot Springs Ranch,Winnemucca,Hotspring,129,54'; - put '40.08,-117.604,Mccoy Springs,Winnemucca,Hotspring,120,49'; - put '41.353,-119.216,Spring (Hot),Vya,Hotspring,127,53'; - put '41.357,-119.188,Springs (Hot),Vya,Hotspring,133,56'; - put '40.198,-117.103,Hot Springs,Winnemucca,Hotspring,127,53'; - put '39.42,-119.738,Dimonte Spring,Reno,Hotspring,127,53'; - put '38.952,-115.23,Williams Hot Spring,Lund,Hotspring,127,53'; - put '41.261,-115.305,Hot Springs,Wells,Hotspring,126,52'; - put '39.041,-116.663,Hot Spring,Millett,Hotspring,124,51'; - put '41.365,-119.221,Spring (Hot),Vya,Hotspring,122,50'; - put '41.159,-114.986,"Threemile Spring, Sulphur Hot Spr",Wells,Hotspring,122,50'; - put '41.339,-119.192,Springs (Hot),Vya,Hotspring,127,53'; - put '39.893,-116.649,Little Hot Springs,Millett,Hotspring,H,H'; - put '39.787,-119.011,Bradys Hot Springs,Reno,Hotspring,209,98'; - put '41.175,-115.278,Hot Spring,Wells,Hotspring,H,H'; - put '41.145,-114.994,Hot Spring,Wells,Hotspring,H,H'; - put '40.864,-117.349,Sulphur Spring,Winnemucca,Hotspring,H,H'; - put '39.733,-119.039,Eagle Salt Works Spring,Reno,Hotspring,H,H'; - put '39.281,-118.42,Sand Springs,Reno,Hotspring,H,H'; - put '38.81,-116.397,Fish Springs,Tonopah,Hotspring,W,W'; - put '39.559,-117.427,Petersons Mill Hot Spring,Millett,Hotspring,H,H'; - put '38.339,-116.662,Warm Spring,Tonopah,Hotspring,W,W'; - put '38.859,-119.175,Hot Spring,Walker Lake,Hotspring,H,H'; - put '39.995,-117.854,Senator Fumaroles,Millett,Hotspring,B,B'; - put '39.565,-118.856,(Soda Lake Area),Reno,Hotspring,210,99'; - put '40.141,-119.687,The Needle Rocks Hot Springs,Lovelock,Hotspring,208,98'; - put '40.146,-119.673,The Needle Rocks Hot Spring,Lovelock,Hotspring,208,98'; - put '40.662,-119.365,Great Boiling Spring (Gerlach),Lovelock,Hotspring,208,98'; - put '39.388,-119.743,Steamboat Springs,Reno,Hotspring,205,96'; - put '39.866,-118.017,Dixie Comstock Mine,Reno,Hotspring,H,H'; - put '40.746,-116.689,White House Spring,Winnemucca,Hotspring,W,W'; - put '39.98,-119.502,Pyramid Island Hot Spring,Reno,Hotspring,.,.'; - put '41.934,-118.808,Warm Springs,Vya,Hotspring,W,W'; - put '41.385,-116.058,Petaini Springs,Mcdermitt,Hotspring,W,W'; - put '41.064,-115.389,Warm Springs,Wells,Hotspring,W,W'; - put '41.066,-114.99,Spring,Wells,Hotspring,W,W'; - put '41.355,-114.133,Warm Springs,Wells,Hotspring,W,W'; - put '41.148,-116.733,Hot Lake,Mcdermitt,Hotspring,H,H'; - put '40.684,-116.153,Ellison Ranch Warm Spring,Winnemucca,Hotspring,W,W'; - put '40.604,-117.648,Leach Hot Springs,Winnemucca,Hotspring,207,97'; - put '40.751,-115.035,Warm Springs,Elko,Hotspring,W,W'; - put '40.782,-115.363,Warm Spring,Elko,Hotspring,W,W'; - put '39.529,-116.388,Warm Spring,Millett,Hotspring,W,W'; - put '39.072,-115.635,Big Blue Spring,Ely,Hotspring,W,W'; - put '38.95,-119.388,Spring,Walker Lake,Hotspring,W,W'; - put '38.965,-118.689,Double Spring,Walker Lake,Hotspring,W,W'; - put '38.458,-117.303,Indian Springs,Tonopah,Hotspring,W,W'; - put '40.592,-116.157,Raine Ranch Springs,Winnemucca,Hotspring,W,W'; - put '39.941,-116.681,Hot Springs,Millett,Hotspring,180,82'; - put '40.567,-116.588,Beowawe Hot Springs (The Geysers),Winnemucca,Hotspring,208,98'; - put '40.761,-117.492,Hot Springs,Winnemucca,Hotspring,185,85'; - put '40.653,-119.378,Mud Springs,Lovelock,Hotspring,184,84'; - put '38.768,-119.174,Wilson Hot Spring,Walker Lake,Hotspring,183,84'; - put '41.921,-118.709,Baltazor Hot Spring,Vya,Hotspring,181,83'; - put '40.857,-119.328,Fly Ranch (Wards) Hot Springs,Lovelock,Hotspring,180,82'; - put '39.597,-119.11,Patua Hot Springs (Fernley),Reno,Hotspring,187,86'; - put '39.028,-117.136,Mcleod Ranch Hot Spring,Millett,Hotspring,180,82'; - put '40.316,-116.433,Hot Spring,Winnemucca,Hotspring,186,86'; - put '38.521,-116.365,Hot Creek Ranch Hot Spring,Tonopah,Hotspring,180,82'; - put '41.051,-119.028,Double Hot Springs,Vya,Hotspring,178,81'; - put '40.003,-117.718,Hyder Hot Springs,Winnemucca,Hotspring,176,80'; - put '39.665,-114.807,Monte Neva Hot Springs,Ely,Hotspring,176,80'; - put '40.368,-117.327,Buffalo Valley Hot Springs,Winnemucca,Hotspring,174,79'; - put '40.699,-116.133,Hot Springs (Carlin),Winnemucca,Hotspring,174,79'; - put '41.052,-118.717,Macfarlane Hot Spring,Vya,Hotspring,170,77'; - put '39.342,-118.578,Borax Spring,Reno,Hotspring,180,82'; - put '39.484,-119.804,Moana Springs,Reno,Hotspring,199,93'; - put '41.243,-114.947,Twelvemile Spring,Wells,Hotspring,102,39'; - put '39.38,-119.74,Steamboat Springs,Reno,Hotspring,205,96'; - put '39.558,-116.36,Bartine Hot Springs,Millett,Hotspring,108,42'; - put '39.954,-117.917,Fumaroles,Millett,Hotspring,204,96'; - put '40.389,-119.402,Hot Seeps (San Emidio Desert),Lovelock,Hotspring,203,95'; - put '38.822,-117.183,Darroughs Hot Springs,Tonopah,Hotspring,203,95'; - put '40.088,-117.725,Sou (Seven Devils) Hot Springs,Winnemucca,Hotspring,185,85'; - put '41.363,-118.788,Pinto Hot Springs,Vya,Hotspring,199,93'; - put '40.408,-117.883,Kyle Hot Springs,Winnemucca,Hotspring,171,77'; - put '41.357,-118.809,West Pinto Hot Spring,Vya,Hotspring,198,92'; - put '39.316,-117.549,Hot Springs,Millett,Hotspring,198,92'; - put '41.468,-116.15,Hot Sulphur Springs (Tuscarora),Mcdermitt,Hotspring,194,90'; - put '40.813,-115.778,Elko Hot Spring,Elko,Hotspring,190,88'; - put '39.208,-118.723,"Lee Hot Springs, Allen Springs",Reno,Hotspring,190,88'; - put '40.262,-119.379,Boiling Springs,Lovelock,Hotspring,187,86'; - put '40.77,-119.113,Butte Springs (Trego Hot Springs),Lovelock,Hotspring,187,86'; - put '39.161,-119.183,Wabuska Hot Springs,Reno,Hotspring,201,94'; - put '39.814,-115.612,Giocoecha Warm Springs,Ely,Hotspring,76,24'; - put '36.389,-114.433,Blue Point Spring,Las Vegas,Hotspring,82,28'; - put '37.016,-117.211,Seep,Goldfield,Hotspring,77,25'; - put '37.751,-116.274,Cedar Spring,Goldfield,Hotspring,77,25'; - put '37.896,-114.227,Flatnose Ranch Spring,Caliente,Hotspring,77,25'; - put '36.207,-115.983,Pahrump (Bennetts) Spring,Las Vegas,Hotspring,77,25'; - put '41.775,-115.921,Rizzi Ranch Hot Spring,Wells,Hotspring,106,41'; - put '35.944,-114.731,Hot Spring,Kingman,Hotspring,78,26'; - put '41.884,-114.117,Gambles Hole,Wells,Hotspring,104,40'; - put '36.565,-115.671,Indian Springs,Las Vegas,Hotspring,78,26'; - put '39.547,-114.915,Campbell Ranch Springs,Ely,Hotspring,76,24'; - put '38.423,-115.022,Flag Springs,Lund,Hotspring,75,24'; - put '38.44,-115.011,Butterfield Springs,Lund,Hotspring,75,24'; - put '37.997,-118.039,Fish Spring,Mariposa,Hotspring,75,24'; - put '37.029,-116.719,Springs,Goldfield,Hotspring,75,24'; - put '36.426,-116.411,Ash Tree Spring,Death Valley,Hotspring,75,24'; - put '36.033,-115.888,Browns Spring,Las Vegas,Hotspring,75,24'; - put '41.322,-119.206,Springs,Vya,Hotspring,75,24'; - put '41.706,-118.261,Ninemile Springs,Vya,Hotspring,79,26'; - put '35.964,-114.743,Hot Spring,Kingman,Hotspring,82,28'; - put '41.763,-118.279,Fivemile Spring,Vya,Hotspring,81,27'; - put '39.457,-119.722,Huffaker Springs,Reno,Hotspring,81,27'; - put '38.992,-117.042,Charnock (Big Blue) Springs,Tonopah,Hotspring,80,27'; - put '36.402,-116.302,Davis Ranch Springs,Death Valley,Hotspring,81,27'; - put '36.45,-116.313,Spring,Death Valley,Hotspring,81,27'; - put '39.792,-114.692,Lower Shellbourne Spring,Ely,Hotspring,77,25'; - put '41.338,-119.168,Springs,Vya,Hotspring,79,26'; - put '41.022,-119.275,Caine Spring,Vya,Hotspring,73,23'; - put '41.05,-117.1,Hot Springs Ranch Springs,Mcdermitt,Hotspring,79,26'; - put '40.079,-116.035,Flynn Ranch Springs,Winnemucca,Hotspring,78,26'; - put '40.325,-116.058,Hot Springs,Winnemucca,Hotspring,79,26'; - put '36.414,-116.292,Spring,Death Valley,Hotspring,79,26'; - put '36.173,-115.191,Las Vegas Springs,Las Vegas,Hotspring,79,26'; - put '36.174,-115.479,White Rock Spring,Las Vegas,Hotspring,78,26'; - put '36.565,-115.623,Spring,Las Vegas,Hotspring,79,26'; - put '36.491,-116.342,"Fairbanks Spring, Soda Spring",Death Valley,Hotspring,81,27'; - put '38.654,-114.633,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '36.363,-116.271,Bole Spring,Death Valley,Hotspring,72,22'; - put '36.999,-116.706,Spring,Death Valley,Hotspring,72,22'; - put '36.942,-115.425,Ash Creek Spring,Las Vegas,Hotspring,72,22'; - put '38.796,-119.65,Doud Springs,Walker Lake,Hotspring,70,21'; - put '38.622,-115.047,Emigrant Springs,Lund,Hotspring,70,21'; - put '38.927,-115.082,Preston Springs,Lund,Hotspring,70,21'; - put '36.147,-115.893,Manse Ranch Spring,Las Vegas,Hotspring,75,24'; - put '38.645,-114.632,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '38.574,-115.522,Tom Spring,Lund,Hotspring,72,22'; - put '38.671,-114.628,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '37.783,-114.528,Bennett Springs,Caliente,Hotspring,70,21'; - put '37.86,-114.321,Delmues Springs,Caliente,Hotspring,70,21'; - put '36.408,-116.313,Davis Ranch Spring,Death Valley,Hotspring,70,21'; - put '36.567,-114.446,Seep,Las Vegas,Hotspring,70,21'; - put '41.369,-114.187,Gamble Spring,Wells,Hotspring,69,20'; - put '39.901,-115.868,Thompson Ranch Spring,Ely,Hotspring,68,20'; - put '38.633,-114.638,Wambolt Springs,Lund,Hotspring,70,21'; - put '37.906,-118.171,Sand Spring,Mariposa,Hotspring,74,23'; - put '36.486,-114.329,Springs,Las Vegas,Hotspring,77,25'; - put '41.354,-119.116,Mustang Springs,Vya,Hotspring,73,23'; - put '41.746,-119.791,Warm Springs,Vya,Hotspring,73,23'; - put '41.258,-118.937,Cane Springs,Vya,Hotspring,74,23'; - put '40.103,-119.884,Fish Springs,Lovelock,Hotspring,73,23'; - put '39.853,-119.719,Spring,Reno,Hotspring,73,23'; - put '39.832,-116.069,Sulphur Spring,Millett,Hotspring,74,23'; - put '36.363,-116.263,Spring,Death Valley,Hotspring,72,22'; - put '38.554,-115.531,Kate Spring,Lund,Hotspring,73,23'; - put '37.074,-116.691,Spring,Goldfield,Hotspring,72,22'; - put '37.979,-117.993,Gap Spring,Goldfield,Hotspring,73,23'; - put '41.591,-119.862,Twin (Vya) Spring,Vya,Hotspring,71,22'; - put '40.763,-119.172,Coyote Spring,Lovelock,Hotspring,72,22'; - put '40.127,-116.884,Springs,Winnemucca,Hotspring,72,22'; - put '40.187,-116.805,Spring,Winnemucca,Hotspring,72,22'; - put '40.967,-114.515,Johnson Ranch Springs,Elko,Hotspring,72,22'; - put '36.205,-115.141,Kyle Spring,Las Vegas,Hotspring,75,24'; - put '39.8,-114.653,Upper Shellbourne Spring,Ely,Hotspring,74,23'; - put '36.428,-116.303,Button Springs,Death Valley,Hotspring,93,34'; - put '38.383,-115.153,Hot Creek Ranch Spring,Lund,Hotspring,90,32'; - put '39.283,-114.866,Lackawanna Hot Springs,Ely,Hotspring,95,35'; - put '38.532,-116.465,Upper Warm Spring,Tonopah,Hotspring,95,35'; - put '38.823,-116.717,South Mosquito Creek Ranch Springs,Tonopah,Hotspring,95,35'; - put '40.829,-117.306,Brooks Spring,Winnemucca,Hotspring,93,34'; - put '40.992,-117.763,Spring,Winnemucca,Hotspring,93,34'; - put '41.971,-114.574,Warm Springs,Wells,Hotspring,95,35'; - put '38.95,-115.7,Big Warm Spring,Lund,Hotspring,93,34'; - put '37.463,-115.192,Ash Springs,Caliente,Hotspring,97,36'; - put '36.464,-116.319,Parent Springs,Death Valley,Hotspring,93,34'; - put '38.352,-115.181,Moon River Spring,Lund,Hotspring,92,33'; - put '36.402,-116.274,"Point of Rocks Springs, King Sprin",Death Valley,Hotspring,91,33'; - put '36.421,-116.322,Crystal Pool,Death Valley,Hotspring,91,33'; - put '36.425,-116.291,Devils Hole,Death Valley,Hotspring,92,33'; - put '39.068,-119.786,Springs,Reno,Hotspring,90,32'; - put '38.954,-117.049,Big Blue (A) Spring,Tonopah,Hotspring,90,32'; - put '40.087,-114.647,Collar And Elbow Spring,Elko,Hotspring,93,34'; - put '36.378,-114.443,Rogers Spring,Las Vegas,Hotspring,82,28'; - put '39.943,-116.073,Shipley Hot Spring,Millett,Hotspring,106,41'; - put '38.698,-116.435,"Upper Warm Spring, Warm Spring",Tonopah,Hotspring,106,41'; - put '41.53,-118.57,Spring,Vya,Hotspring,104,40'; - put '41.877,-115.628,Rowland Hot Springs,Wells,Hotspring,104,40'; - put '40.035,-117.604,Lower Ranch Hot Springs,Winnemucca,Hotspring,104,40'; - put '40.187,-116.79,Chillis Hot Spring,Winnemucca,Hotspring,102,39'; - put '39.988,-116.044,Siri Ranch Spring,Millett,Hotspring,95,35'; - put '39.421,-119.758,Zolezzi Spring,Reno,Hotspring,102,39'; - put '38.531,-116.405,Old Dugan Ranch Hot Springs,Tonopah,Hotspring,102,39'; - put '36.968,-116.723,Burrell Hot Spring,Death Valley,Hotspring,102,39'; - put '38.343,-118.103,Soda Springs,Walker Lake,Hotspring,100,38'; - put '38.556,-115.767,"Lockes Big Spring, Hay Corral Spr",Lund,Hotspring,100,38'; - put '38.594,-115.138,Moorman Spring,Lund,Hotspring,100,38'; - put '38.398,-115.862,Storm Spring,Lund,Hotspring,99,37'; - put '41.19,-115.287,Hot Spring,Wells,Hotspring,97,36'; - put '37.822,-117.48,Pearl Hot Springs,Goldfield,Hotspring,97,36'; - put '39.159,-119.737,Nevada State Prison Spring,Reno,Hotspring,75,24'; - put '40.025,-117.646,Spring,Winnemucca,Hotspring,83,28'; - put '40.83,-119.538,Springs,Lovelock,Hotspring,84,29'; - put '39.442,-119.743,Double Diamond Spring,Reno,Hotspring,84,29'; - put '39.413,-114.779,Mcgill Spring,Ely,Hotspring,84,29'; - put '39.458,-114.756,Schoolhouse Spring,Ely,Hotspring,84,29'; - put '36.375,-116.274,Big (Ash Meadows) Spring,Death Valley,Hotspring,83,28'; - put '38.292,-114.272,Hammond Ranch Spring,Lund,Hotspring,84,29'; - put '41.398,-119.165,Spring,Vya,Hotspring,84,29'; - put '41.732,-119.785,Seeps (Hills Warm Spring),Vya,Hotspring,83,28'; - put '38.563,-115.528,Blue Eagle Springs,Lund,Hotspring,84,29'; - put '40.873,-117.937,Rose Creek Spring,Winnemucca,Hotspring,83,28'; - put '39.917,-114.667,Spring,Ely,Hotspring,83,28'; - put '36.39,-116.278,Jack Rabbit Spring,Death Valley,Hotspring,82,28'; - put '36.437,-116.206,Spring,Death Valley,Hotspring,82,28'; - put '38.937,-115.695,Little Warm Spring,Lund,Hotspring,90,32'; - put '36.479,-116.326,Rogers Spring,Death Valley,Hotspring,82,28'; - put '40.29,-116.049,Carlotti Ranch Springs,Winnemucca,Hotspring,102,39'; - put '36.468,-116.325,Longstreet Spring,Death Valley,Hotspring,82,28'; - put '36.722,-114.716,Muddy Spring,Las Vegas,Hotspring,90,32'; - put '37.532,-115.233,Crystal Springs,Caliente,Hotspring,90,32'; - put '37.598,-115.215,Hiko Spring,Caliente,Hotspring,90,32'; - put '36.404,-116.383,Spring,Death Valley,Hotspring,90,32'; - put '37.996,-116.389,Reveille Mill Spring,Goldfield,Hotspring,84,29'; - put '36.71,-114.714,Moapa Warm Springs,Las Vegas,Hotspring,90,32'; - put '35.982,-114.748,Hot Springs,Kingman,Hotspring,86,30'; - put '40.929,-116.895,Izzenhood Ranch Springs,Winnemucca,Hotspring,88,31'; - put '37.807,-114.38,Panaca Spring,Caliente,Hotspring,88,31'; - put '36.942,-116.729,Spring,Death Valley,Hotspring,88,31'; - put '41.98,-114.376,Hot Spring,Wells,Hotspring,86,30'; - put '36.433,-116.308,Scruggs Springs,Death Valley,Hotspring,86,30'; - put '40.952,-114.751,Ralphs Warm Springs,Elko,Hotspring,86,30'; - put '39.526,-118.876,Soda Lake,Reno,Hotspring,86,30'; - put '38.027,-116.683,Spring,Tonopah,Hotspring,86,30'; - put '37.741,-115.753,Sand Spring,Caliente,Hotspring,86,30'; - put '36.918,-116.744,Beatty Municipal Spring,Death Valley,Hotspring,88,31'; - put '38.255,-116.829,Saulsbury Warm Spring,Tonopah,Hotspring,86,30'; - put '42.48,-73.37,Lebanon Spring,Albany,Hotspring,72,22'; - put '44.241,-122.058,Bigelow Hot Springs,Salem,Hotspring,142,61'; - put '44.862,-121.201,Kahneeta Hot Springs,Bend,Hotspring,126,52'; - put '44.927,-117.939,Radium Hot Springs,Baker,Hotspring,135,57'; - put '44.354,-118.574,Blue Mountain Hot Springs,Canyon City,Hotspring,136,58'; - put '44.936,-122.173,Bagby Hot Springs,Salem,Hotspring,136,58'; - put '43.944,-118.136,Beulah Hot Springs,Burns,Hotspring,140,60'; - put '43.763,-117.156,Mitchell Butte Hot Spring,Boise,Hotspring,144,62'; - put '42.116,-121.287,Oregon Hot Springs (Big Hot Spring,Klamath Falls,Hotspring,142,61'; - put '45.151,-118.659,Lehman Springs,Pendleton,Hotspring,142,61'; - put '43.719,-121.209,East Lake Hot Springs,Crescent,Hotspring,144,62'; - put '43.469,-118.202,Luce Hot Springs,Burns,Hotspring,145,63'; - put '45.018,-117.625,Medical Hot Springs,Grangeville,Hotspring,140,60'; - put '44.867,-121.228,Springs,Bend,Hotspring,125,52'; - put '42.188,-118.383,Flagstaff Butte Hot Spring,Adel,Hotspring,126,52'; - put '44.451,-119.105,Mount Vernon Hot Springs,Canyon City,Hotspring,121,49'; - put '42.977,-117.061,Canters Hot Spring,Jordan Valley,Hotspring,120,49'; - put '43.294,-122.367,Umpqua Hot Springs,Roseburg,Hotspring,117,47'; - put '44.002,-119.647,Weberg Hot Spring,Canyon City,Hotspring,115,46'; - put '43.739,-117.178,Deer Butte Hot Spring,Boise,Hotspring,115,46'; - put '43.795,-117.958,Jonesboro Warm Spring,Boise,Hotspring,112,45'; - put '42.075,-119.927,Hallinan Spring,Adel,Hotspring,113,45'; - put '42.297,-119.776,Fisher Hot Springs,Adel,Hotspring,154,68'; - put '45.013,-117.885,Kropp Hot Spring,Grangeville,Hotspring,109,43'; - put '42.221,-120.368,Hunters Hot Springs,Klamath Falls,Hotspring,205,96'; - put '44.083,-122.233,Cougar Reservoir Hot Springs,Salem,Hotspring,111,44'; - put '44.023,-117.46,Neal Hot Springs,Baker,Hotspring,189,87'; - put '42.431,-121.963,Eagle Point Spring,Klamath Falls,Hotspring,95,35'; - put '43.689,-122.372,Kitson Hot Springs,Roseburg,Hotspring,109,43'; - put '44.813,-117.765,Spring (Hot),Baker,Hotspring,W,W'; - put '43.776,-118.047,Warm Spring,Burns,Hotspring,W,W'; - put '43.793,-118.472,Sitz Warm Spring,Burns,Hotspring,W,W'; - put '43.86,-118.288,Altnow Hot Spring,Burns,Hotspring,W,W'; - put '43.893,-117.596,Springs,Boise,Hotspring,W,W'; - put '45.206,-117.912,Union Station Hot Springs,Grangeville,Hotspring,H,H'; - put '44.208,-117.455,Jamieson Hot Springs,Baker,Hotspring,H,H'; - put '42.338,-118.602,Hot Springs,Adel,Hotspring,207,97'; - put '44.782,-121.975,Breitenbush Hot Springs,Bend,Hotspring,198,92'; - put '42.219,-119.877,Warner Valley Ranch,Adel,Hotspring,198,92'; - put '42.156,-120.345,Barry Ranch Hot Springs,Klamath Falls,Hotspring,190,88'; - put '44.193,-122.049,Belknap Springs,Salem,Hotspring,160,71'; - put '45.021,-122.009,Austin Hot Springs,Vancouver,Hotspring,186,86'; - put '42.676,-118.344,Mickey Springs,Adel,Hotspring,187,86'; - put '44.153,-122.098,Foley Springs,Salem,Hotspring,178,81'; - put '45.244,-117.958,Hot Lake Springs,Grangeville,Hotspring,176,80'; - put '42.544,-118.533,Alvord Hot Springs,Adel,Hotspring,174,79'; - put '43.441,-118.638,Crane Hot Springs,Burns,Hotspring,172,78'; - put '42.226,-119.881,Crump Geyser (Crump Spring),Adel,Hotspring,172,78'; - put '43.727,-117.203,Snively Hot Spring,Boise,Hotspring,170,77'; - put '42.174,-121.615,Olene Gap Hot Springs,Klamath Falls,Hotspring,165,74'; - put '43.708,-122.288,Mccredie Springs,Roseburg,Hotspring,163,73'; - put '43.982,-117.233,Vale Hot Springs,Boise,Hotspring,163,73'; - put '42.162,-120.344,Leithead Hot Spring,Klamath Falls,Hotspring,162,72'; - put '45.372,-121.697,Mount Hood Fumaroles,The Dalles,Hotspring,194,90'; - put '43.264,-119.015,Dunn Spring,Burns,Hotspring,70,21'; - put '42.873,-122.167,Annie Spring,Medford,Hotspring,77,25'; - put '42.133,-121.219,Wilkersons Hot Spring,Klamath Falls,Hotspring,76,24'; - put '43.272,-119.293,Basque Spring,Burns,Hotspring,74,23'; - put '43.276,-119.34,Double O Spring,Burns,Hotspring,74,23'; - put '44.073,-119.427,Brisbois Ranch Springs,Canyon City,Hotspring,72,22'; - put '43.265,-119.276,Johnson Spring,Burns,Hotspring,72,22'; - put '43.281,-119.311,Double O Barnyard Spring,Burns,Hotspring,72,22'; - put '43.501,-119.091,Roadland Spring,Burns,Hotspring,72,22'; - put '43.529,-119.081,Goodman Spring,Burns,Hotspring,72,22'; - put '43.703,-117.19,South Black Willow Spring,Boise,Hotspring,71,22'; - put '42.307,-119.875,Moss Ranch Spring,Adel,Hotspring,72,22'; - put '43.758,-118.067,Juntura Warm Spring 1,Burns,Hotspring,77,25'; - put '43.732,-121.252,Paulina Springs,Crescent,Hotspring,70,21'; - put '42.176,-121.828,Howard Holiday,Klamath Falls,Hotspring,77,25'; - put '43.477,-119.075,Baker Spring,Burns,Hotspring,70,21'; - put '42.178,-121.801,Hardboard Spring,Klamath Falls,Hotspring,70,21'; - put '42.325,-120.327,White Rock Ranch Hot Spring,Klamath Falls,Hotspring,71,21'; - put '43.252,-119.258,Hughet Spring,Burns,Hotspring,68,20'; - put '42.38,-120.33,Bean Hot Spring,Klamath Falls,Hotspring,69,20'; - put '42.933,-120.642,Lost Cabin Spring,Klamath Falls,Hotspring,68,20'; - put '42.998,-120.725,Buckhorn Creek Springs,Klamath Falls,Hotspring,68,20'; - put '42.688,-117.905,Tudors Spring,Jordan Valley,Hotspring,68,20'; - put '42.756,-117.55,Scott Spring,Jordan Valley,Hotspring,68,20'; - put '42.725,-120.646,Summer Lake Hot Spring,Klamath Falls,Hotspring,109,43'; - put '43.757,-118.092,Juntura Warm Spring 2,Burns,Hotspring,95,35'; - put '44.374,-118.738,Limekiln Hot Spring,Canyon City,Hotspring,70,21'; - put '42.221,-122.742,Jackson Hot Springs,Medford,Hotspring,95,35'; - put '44.892,-119.141,Ritter Hot Springs,Canyon City,Hotspring,106,41'; - put '43.808,-122.309,Wall Creek Warm Springs,Roseburg,Hotspring,106,41'; - put '43.395,-118.308,Springs (Hot),Burns,Hotspring,106,41'; - put '43.302,-117.383,Hot Spring,Boise,Hotspring,106,41'; - put '44.28,-118.956,Joaquin Miller Hot Springs,Canyon City,Hotspring,104,40'; - put '42.501,-119.693,Antelope Hot Springs,Adel,Hotspring,104,40'; - put '45.129,-118.738,Hidaway Springs,Pendleton,Hotspring,100,38'; - put '44.975,-118.044,Fisher Hot Springs,Canyon City,Hotspring,99,37'; - put '44.033,-117.449,Bully Creek Spring,Baker,Hotspring,99,37'; - put '42.93,-120.798,Pardon Warm Spring,Klamath Falls,Hotspring,76,24'; - put '42.327,-118.602,Borax Lake (Hot Lake),Adel,Hotspring,97,36'; - put '42.161,-121.627,Crystal Spring,Klamath Falls,Hotspring,78,26'; - put '45.741,-118.233,Bingham Springs,Pendleton,Hotspring,93,34'; - put '42.889,-118.898,Fivemile Spring (Hoghouse Hot Sprs,Adel,Hotspring,80,27'; - put '43.54,-119.081,Millpond Hot Spring,Burns,Hotspring,79,26'; - put '45.891,-116.873,Cook Creek Hot Spring,Grangeville,Hotspring,97,36'; - put '45.295,-121.731,Swim Warm Springs,The Dalles,Hotspring,79,26'; - put '42.04,-120.924,Warm Spring,Klamath Falls,Hotspring,92,33'; - put '44.779,-117.811,Sam O Spring,Baker,Hotspring,80,27'; - put '44.538,-117.417,Nelson Spring,Baker,Hotspring,80,27'; - put '45.631,-119.703,Well Spring,Pendleton,Hotspring,80,27'; - put '42.287,-119.867,Moss Ranch Springs,Adel,Hotspring,83,28'; - put '45.061,-118.455,Warm Mineral Spring,Pendleton,Hotspring,83,28'; - put '43.95,-119.634,Warm Springs,Burns,Hotspring,84,29'; - put '45.295,-117.806,Warm Spring,Grangeville,Hotspring,85,29'; - put '42.815,-118.899,Warm Springs,Adel,Hotspring,89,32'; - put '43.452,-103.508,Hot Brook Springs,Hot Springs,Hotspring,75,24'; - put '43.442,-103.481,Hot Springs,Hot Springs,Hotspring,87,31'; - put '29.178,-102.953,Rio Grande Village Spring,Emory Peak,Hotspring,97,36'; - put '30.823,-105.315,Indian Hot Springs,Marfa,Hotspring,117,47'; - put '30.038,-104.598,Ruidosa Hot Springs,Marfa,Hotspring,113,45'; - put '29.182,-102.992,Hot Springs,Emory Peak,Hotspring,106,41'; - put '30.21,-104.562,Capote Springs,Marfa,Hotspring,99,37'; - put '30.133,-104.602,Nixon Spring,Marfa,Hotspring,90,32'; - put '29.787,-104.462,Springs (Las Cienegas),Presidio,Hotspring,86,30'; - put '30.861,-105.34,Red Bull Spring,Marfa,Hotspring,99,37'; - put '38.85,-112.49,Hatton Hot Spring,Richfield,Hotspring,100,38'; - put '40.176,-111.801,Bird Island,Salt Lake City,Hotspring,86,30'; - put '41.917,-111.958,Gancheff Spring,Ogden,Hotspring,88,31'; - put '37.942,-112.438,Lefevre,Cedar City,Hotspring,90,32'; - put '37.335,-113.687,Veyo Hot Spring,Cedar City,Hotspring,90,32'; - put '40.332,-111.891,Fault Zone Spring,Salt Lake City,Hotspring,90,32'; - put '40.146,-111.806,Lincoln Point Warm Springs,Salt Lake City,Hotspring,90,32'; - put '38.186,-112.912,Us Blm,Richfield,Hotspring,91,33'; - put '41.833,-112.454,Blue Creek Spring,Brigham City,Hotspring,82,28'; - put '40.526,-111.488,Midway Hot Springs,Salt Lake City,Hotspring,100,38'; - put '40.525,-111.468,Midway Hot Springs,Salt Lake City,Hotspring,104,40'; - put '40.038,-111.529,Castilla Springs,Salt Lake City,Hotspring,104,40'; - put '38.217,-112.904,Dotsons (Radium) Warm Spring,Richfield,Hotspring,91,33'; - put '40.465,-109.221,Split Mountain Warm Springs,Vernal,Hotspring,86,30'; - put '40.788,-112.017,Hobo Warm Spring,Tooele,Hotspring,84,29'; - put '40.788,-111.899,Wasatch Hot Springs,Salt Lake City,Hotspring,108,42'; - put '39.35,-113.515,Tule Spring,Delta,Hotspring,82,28'; - put '39.424,-113.485,Coyote Spring,Delta,Hotspring,82,28'; - put '39.842,-113.392,Fish Springs,Delta,Hotspring,82,28'; - put '39.887,-113.413,North Springs,Delta,Hotspring,82,28'; - put '41.756,-113.603,Warm Spring,Brigham City,Hotspring,81,27'; - put '41.038,-111.656,Como Springs,Ogden,Hotspring,81,27'; - put '40.397,-112.421,Morgans Warm Spring,Tooele,Hotspring,80,27'; - put '39.464,-114.038,Gandy Warm Springs,Ely,Hotspring,81,27'; - put '40.447,-110.828,Warm Springs,Salt Lake City,Hotspring,79,26'; - put '37.7,-110.421,Warm Spring,Escalante,Hotspring,79,26'; - put '40.502,-114.038,Blue Lake Spring,Elko,Hotspring,84,29'; - put '38.503,-112.849,Roosevelt Hot Springs,Richfield,Hotspring,133,56'; - put '38.774,-112.096,Richfield Warm Springs,Richfield,Hotspring,73,23'; - put '40.488,-111.911,Crystal Hot Springs,Salt Lake City,Hotspring,187,86'; - put '38.186,-113.197,Thermo Hot Springs,Richfield,Hotspring,185,85'; - put '38.172,-113.204,Thermo Hot Springs,Richfield,Hotspring,181,83'; - put '39.613,-112.729,"Baker (Abraham, Crater) Hot Spring",Delta,Hotspring,180,82'; - put '38.639,-112.098,Red Hill Hot Spring,Richfield,Hotspring,171,77'; - put '38.633,-112.107,Monroe (Cooper) Hot Springs,Richfield,Hotspring,169,76'; - put '38.613,-112.202,Joseph Hot Springs,Richfield,Hotspring,147,64'; - put '39.906,-113.43,Wilson Health Springs,Delta,Hotspring,142,61'; - put '41.138,-112.175,Hooper Hot Springs,Brigham City,Hotspring,140,60'; - put '41.338,-112.031,Utah Hot Springs,Brigham City,Hotspring,138,59'; - put '38.864,-112.506,Meadow Hot Springs,Richfield,Hotspring,106,41'; - put '40.815,-111.918,Becks Hot Spring,Salt Lake City,Hotspring,133,56'; - put '37.189,-113.272,Dixie (Laverkin) Hot Springs,Cedar City,Hotspring,108,42'; - put '41.659,-112.087,Crystal (Madsens) Hot Springs,Brigham City,Hotspring,129,54'; - put '41.855,-112.158,Udy Hot Springs,Brigham City,Hotspring,124,51'; - put '41.578,-112.23,Stinking Hot Springs,Brigham City,Hotspring,118,48'; - put '40.517,-111.475,Midway Hot Spring,Salt Lake City,Hotspring,115,46'; - put '40.536,-111.478,Warm Ditch Spring,Salt Lake City,Hotspring,115,46'; - put '40.35,-111.905,Saratoga Hot Springs,Salt Lake City,Hotspring,111,44'; - put '40.353,-111.895,Crater Hot Spring,Salt Lake City,Hotspring,111,44'; - put '41.901,-112.999,Coyote Spring,Brigham City,Hotspring,109,43'; - put '41.687,-113.986,Spring (Hot),Brigham City,Hotspring,108,42'; - put '41.582,-112.256,Little Mountain Hot Spring,Brigham City,Hotspring,108,42'; - put '41.822,-113.263,L.G. Carter Springs,Brigham City,Hotspring,77,25'; - put '41.236,-111.924,Ogden Hot Spring,Ogden,Hotspring,135,57'; - put '37.178,-113.634,Snow Spring,Cedar City,Hotspring,70,21'; - put '38.34,-113.22,Woodhouse Spring,Richfield,Hotspring,72,22'; - put '38.155,-112.901,Willow Spring,Richfield,Hotspring,72,22'; - put '38.56,-112.578,Sulphurdale,Richfield,Hotspring,72,22'; - put '38.981,-111.829,Salt Spring,Salina,Hotspring,72,22'; - put '37.174,-112.535,Red Canyon,Cedar City,Hotspring,72,22'; - put '41.808,-113.327,W.R. Carter Springs,Brigham City,Hotspring,70,21'; - put '41.818,-113.311,Larson Springs,Brigham City,Hotspring,70,21'; - put '41.829,-113.654,Head Spring,Brigham City,Hotspring,70,21'; - put '40.653,-112.907,Redlum Spring,Tooele,Hotspring,70,21'; - put '40.458,-111.929,Camp Williams,Salt Lake City,Hotspring,70,21'; - put '40.647,-112.524,Grantsville Warm Springs,Tooele,Hotspring,77,25'; - put '39.183,-111.691,Sterling (Peacock) Warm Spring,Price,Hotspring,72,22'; - put '39.246,-111.645,Livingston Warm Springs,Price,Hotspring,73,23'; - put '38.138,-112.863,Big Maple Spring,Richfield,Hotspring,70,21'; - put '37.393,-113.61,Irvine Spring,Cedar City,Hotspring,70,21'; - put '41.563,-113.954,Kimber (Rose) Spring,Brigham City,Hotspring,68,20'; - put '41.614,-113.613,Warm Spring,Brigham City,Hotspring,68,20'; - put '41.328,-111.826,Patio Springs,Ogden,Hotspring,68,20'; - put '40.172,-112.426,Davis,Tooele,Hotspring,68,20'; - put '40.118,-111.337,Diamond Fork Warm Springs,Salt Lake City,Hotspring,68,20'; - put '39.249,-113.877,Knoll Springs,Delta,Hotspring,68,20'; - put '39.403,-113.863,Twin Springs,Delta,Hotspring,68,20'; - put '39.788,-111.881,Ray Lunt Spring,Price,Hotspring,68,20'; - put '38.762,-112.87,Springs,Richfield,Hotspring,68,20'; - put '38.77,-112.871,Coyote Spring,Richfield,Hotspring,68,20'; - put '37.937,-112.424,Tebbs,Cedar City,Hotspring,68,20'; - put '37.096,-113.447,Warner Valley Spring,Cedar City,Hotspring,70,21'; - put '40.565,-112.738,Deseret Livestock South Springs,Tooele,Hotspring,73,23'; - put '37.158,-113.399,Virgin River Spring,Cedar City,Hotspring,70,21'; - put '39.899,-112.045,Springs,Delta,Hotspring,72,22'; - put '38.603,-112.111,Johnson Warm Spring,Richfield,Hotspring,77,25'; - put '41.722,-112.266,Bothwell Warm Springs,Brigham City,Hotspring,75,24'; - put '40.538,-112.747,Deseret Livestock,Tooele,Hotspring,75,24'; - put '40.733,-112.621,Utah Fish And Game Dept,Tooele,Hotspring,75,24'; - put '40.228,-111.867,Warm Springs,Salt Lake City,Hotspring,75,24'; - put '37.137,-113.513,Warm Spring,Cedar City,Hotspring,75,24'; - put '37.138,-113.528,Green Spring,Cedar City,Hotspring,75,24'; - put '37.166,-113.383,Berry Springs,Cedar City,Hotspring,75,24'; - put '41.834,-112.054,Cutler Warm Spring,Brigham City,Hotspring,73,23'; - put '40.614,-112.709,Horseshoe Springs,Tooele,Hotspring,73,23'; - put '41.239,-112.413,Compton Spring,Brigham City,Hotspring,72,22'; - put '40.743,-112.642,Big Warm Springs,Tooele,Hotspring,72,22'; - put '40.558,-112.739,Deseret Livestock South Spring,Tooele,Hotspring,72,22'; - put '40.39,-112.424,Russells Warm Springs,Tooele,Hotspring,72,22'; - put '41.831,-113.391,Pugsley,Brigham City,Hotspring,73,23'; - put '41.449,-112.442,Poulsen Spring (Salt),Brigham City,Hotspring,72,22'; - put '40.167,-111.622,Wood Springs,Salt Lake City,Hotspring,73,23'; - put '40.234,-111.865,Warm Springs,Salt Lake City,Hotspring,77,25'; - put '39.955,-111.858,Goshen Warm Srings,Price,Hotspring,73,23'; - put '39.334,-113.518,South Tule Spring,Delta,Hotspring,77,25'; - put '39.616,-112.803,Fumarole Butte,Delta,Hotspring,73,23'; - put '40.545,-111.928,East Jordan Canal,Salt Lake City,Hotspring,73,23'; - put '41.643,-112.281,Springs,Brigham City,Hotspring,72,22'; - put '37.29,-80.619,New River White Sulphur Springs,Bluefield,Hotspring,85,29'; - put '37.997,-79.83,Hot Springs,Roanoke,Hotspring,106,41'; - put '37.898,-79.462,Rockbridge Baths,Roanoke,Hotspring,72,22'; - put '38.055,-79.78,Warm Springs,Charlottesvill,Hotspring,95,35'; - put '37.963,-79.861,Healing Springs,Roanoke,Hotspring,86,30'; - put '38.238,-79.65,Bragg Spring,Charlottesvill,Hotspring,75,24'; - put '37.645,-80.238,Sweet Chalybeate Spring,Bluefield,Hotspring,75,24'; - put '38.218,-79.673,Bolar Spring,Charlottesvill,Hotspring,73,23'; - put '37.86,-79.988,Layton Spring,Roanoke,Hotspring,72,22'; - put '37.87,-79.933,Falling Spring,Roanoke,Hotspring,77,25'; - put '37.16,-80.806,Alum Springs,Bluefield,Hotspring,72,22'; - put '46.852,-121.758,Mt Rainier Fumaroles,Yakima,Hotspring,162,72'; - put '46.738,-121.562,Ohanapecosh Hot Springs,Yakima,Hotspring,122,50'; - put '47.707,-121.155,Scenic Hot Springs,Wenatchee,Hotspring,122,50'; - put '47.969,-123.864,Sol Duc Hot Springs,Seattle,Hotspring,122,50'; - put '48.974,-119.475,Hot Lake,Okanogan,Hotspring,122,50'; - put '45.658,-121.962,Moffetts (Bonneville) Hot Springs,The Dalles,Hotspring,97,36'; - put '48.906,-119.455,Poison Lake,Okanogan,Hotspring,122,50'; - put '45.701,-121.728,Collins Hot Springs,The Dalles,Hotspring,122,50'; - put '47.484,-121.391,Goldmeyer Hot Springs,Wenatchee,Hotspring,127,53'; - put '46.202,-121.492,Mount Adams Fumaroles,Yakima,Hotspring,150,66'; - put '46.198,-122.197,Mt St Helens Fumaroles,Hoquiam,Hotspring,190,88'; - put '48.789,-121.804,Dorr Fumarole Field,Concrete,Hotspring,194,90'; - put '48.77,-121.813,Sherman Crater Fumaroles,Concrete,Hotspring,266,130'; - put '45.723,-121.927,Rock Creek Hot Springs,The Dalles,Hotspring,H,H'; - put '48.15,-121.062,Gamma Hot Springs,Concrete,Hotspring,140,60'; - put '46.378,-122.265,Green River Soda Spring,Hoquiam,Hotspring,86,30'; - put '46.575,-121.706,Packwood Hot Spring,Yakima,Hotspring,100,38'; - put '47.201,-121.536,Lester Hot Springs,Wenatchee,Hotspring,120,49'; - put '46.024,-118.771,Warm Springs Canyon Warm Spring,Walla Walla,Hotspring,72,22'; - put '46.345,-121.6,Orr Creek Warm Springs,Yakima,Hotspring,72,22'; - put '46.041,-121.181,Fish Hatchery Warm Spring,Yakima,Hotspring,75,24'; - put '46.752,-121.814,Longmire Mineral Springs,Yakima,Hotspring,77,25'; - put '47.892,-121.342,Garland Mineral Springs,Wenatchee,Hotspring,84,29'; - put '46.452,-120.956,Simcoe Soda Springs,Yakima,Hotspring,90,32'; - put '48.254,-121.17,Sulphur Creek Hot Springs,Concrete,Hotspring,99,37'; - put '48.118,-121.192,Kennedy Hot Spring,Concrete,Hotspring,100,38'; - put '48.763,-121.667,Baker Hot Spring,Concrete,Hotspring,108,42'; - put '47.977,-123.682,Olympic Hot Springs,Seattle,Hotspring,118,48'; - put '45.728,-121.8,St Martins Hot Springs,The Dalles,Hotspring,120,49'; - put '45.821,-121.133,Klickitat Mineral Springs,The Dalles,Hotspring,81,27'; - put '38.163,-79.975,Minnehaha Springs,Charlottesvill,Hotspring,70,21'; - put '37.63,-80.24,Old Sweet Spring,Bluefield,Hotspring,73,23'; - put '39.618,-78.23,Berkeley Springs,Cumberland,Hotspring,72,22'; - put '38.605,-79.353,Thorn Spring,Charlottesvill,Hotspring,72,22'; - put '39.471,-77.877,Swan Pond Spring,Baltimore,Hotspring,72,22'; - put '44.29,-110.504,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94'; - put '44.691,-110.728,Geyser Springs Group,Ashton,Hotspring,201,94'; - put '44.554,-110.812,Fountain Group,Ashton,Hotspring,201,94'; - put '44.543,-110.859,Fairy Springs,Ashton,Hotspring,201,94'; - put '44.485,-110.852,"Biscuit Basin, Sapphire Pool",Ashton,Hotspring,201,94'; - put '44.48,-110.85,Cascade Group,Ashton,Hotspring,201,94'; - put '44.46,-110.844,Black Sand Basin,Ashton,Hotspring,201,94'; - put '44.459,-110.835,Myriad Group,Ashton,Hotspring,201,94'; - put '44.307,-110.526,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94'; - put '44.354,-110.8,Shoshone Geyser Basin,Ashton,Hotspring,203,95'; - put '44.568,-110.805,Quagmire Group,Ashton,Hotspring,203,95'; - put '44.537,-110.801,"White Dome Geyser, Surprise Pool",Ashton,Hotspring,203,95'; - put '44.52,-110.828,Flood Group,Ashton,Hotspring,203,95'; - put '44.471,-110.843,"Daisy Group, Sentinel Geysers",Ashton,Hotspring,203,95'; - put '44.466,-110.839,"Middle Group,tortoise Shell,inkwel",Ashton,Hotspring,203,95'; - put '44.46,-110.828,"Geyser Hill Group, Old Faithful Ge",Ashton,Hotspring,203,95'; - put '44.908,-110.393,Calcite Springs,Ashton,Hotspring,201,94'; - put '44.417,-110.57,West Thumb Geyser Basin,Ashton,Hotspring,203,95'; - put '44.459,-110.817,Southeastern Group,Ashton,Hotspring,198,92'; - put '44.433,-110.581,Potts Hot Spring Basin,Ashton,Hotspring,203,95'; - put '44.421,-110.952,Smoke Jumper Hot Springs,Ashton,Hotspring,198,92'; - put '44.684,-110.753,Monument Geyser Basin,Ashton,Hotspring,197,92'; - put '44.679,-110.746,Beryl Spring,Ashton,Hotspring,198,92'; - put '44.544,-110.258,Turbid Springs,Ashton,Hotspring,198,92'; - put '44.53,-110.297,Steamboat Springs,Ashton,Hotspring,198,92'; - put '44.518,-110.813,"Hot Springs, Rabbit Creek Group",Ashton,Hotspring,198,92'; - put '44.514,-110.828,Rabbit Creek Group,Ashton,Hotspring,198,92'; - put '44.484,-110.873,Mystic Falls Springs,Ashton,Hotspring,198,92'; - put '44.739,-110.324,Josephs Coat Springs,Ashton,Hotspring,199,93'; - put '44.75,-110.714,Gas Vent,Ashton,Hotspring,H,H'; - put '44.282,-110.506,Rustic Geyser,Ashton,Hotspring,199,93'; - put '44.571,-110.811,Morning Mist Springs,Ashton,Hotspring,205,96'; - put '44.733,-110.703,Cistern Spring,Ashton,Hotspring,199,93'; - put '44.697,-110.724,Gibbon Hill Geyser,Ashton,Hotspring,199,93'; - put '44.693,-110.738,Artists Paintpots,Ashton,Hotspring,199,93'; - put '44.69,-110.384,Hot Springs on Bog Creek,Ashton,Hotspring,199,93'; - put '44.526,-110.835,Excelsior Geyser Crater,Ashton,Hotspring,199,93'; - put '44.418,-110.805,Lone Star Geyser,Ashton,Hotspring,199,93'; - put '44.309,-110.654,Hot Springs on Lewis Lake,Ashton,Hotspring,199,93'; - put '44.469,-110.828,Solitary Geyser,Ashton,Hotspring,198,92'; - put '44.433,-110.813,Hot Springs,Ashton,Hotspring,H,H'; - put '44.766,-110.3,Hot Springs,Ashton,Hotspring,H,H'; - put '44.61,-110.438,Hot Springs,Ashton,Hotspring,H,H'; - put '44.607,-110.617,Hot Springs East of Mary Lake,Ashton,Hotspring,H,H'; - put '44.601,-110.632,Gas Vent East of Mary Lake,Ashton,Hotspring,H,H'; - put '44.595,-110.622,Gas Vents Southeast of Mary Lake,Ashton,Hotspring,H,H'; - put '44.572,-110.691,Hot Springs,Ashton,Hotspring,H,H'; - put '44.553,-110.301,Beach Springs,Ashton,Hotspring,H,H'; - put '44.551,-110.85,Springs on Fairy Creek,Ashton,Hotspring,H,H'; - put '44.616,-110.616,Highland Hot Springs,Ashton,Hotspring,H,H'; - put '44.438,-110.977,Hot Springs on Continental Divide,Ashton,Hotspring,H,H'; - put '44.617,-110.432,Mud Geysers,Ashton,Hotspring,H,H'; - put '44.404,-110.824,Hot Springs on Upper Firehole Rive,Ashton,Hotspring,H,H'; - put '44.498,-109.193,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.495,-109.222,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.482,-109.204,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.841,-110.167,"Hot, on Lamar River",Ashton,Hotspring,W,W'; - put '44.734,-110.029,Hot Springs,Ashton,Hotspring,W,W'; - put '44.708,-110.471,Warm Spring,Ashton,Hotspring,W,W'; - put '44.701,-110.036,Hot Springs,Ashton,Hotspring,W,W'; - put '44.508,-110.832,Midway Picnic Ground,Ashton,Hotspring,H,H'; - put '44.715,-110.555,Gas Vents,Ashton,Hotspring,H,H'; - put '44.563,-110.834,River Group,Ashton,Hotspring,205,96'; - put '44.544,-110.788,"Black Warrior Group, Shelf Spring",Ashton,Hotspring,205,96'; - put '44.115,-110.684,Huckleberry Hot Springs,Ashton,Hotspring,B,B'; - put '44.842,-110.732,Apollinaris Spring,Ashton,Hotspring,H,H'; - put '44.825,-110.675,Gas Vents at Horseshoe Hill,Ashton,Hotspring,H,H'; - put '44.781,-110.738,Steam Vents at Roaring Mountain,Ashton,Hotspring,H,H'; - put '44.743,-110.242,Hot Spring Basin Group,Ashton,Hotspring,198,92'; - put '44.752,-110.256,Hot Spring,Ashton,Hotspring,H,H'; - put '44.612,-110.618,Gas Vent,Ashton,Hotspring,H,H'; - put '44.741,-110.699,Gas Vent,Ashton,Hotspring,H,H'; - put '44.566,-110.871,"Flat Cone Spring, Steep Cone",Ashton,Hotspring,205,96'; - put '44.711,-110.468,Hot Springs,Ashton,Hotspring,H,H'; - put '44.708,-110.461,Forest Springs,Ashton,Hotspring,H,H'; - put '44.672,-110.236,Hot Springs,Ashton,Hotspring,H,H'; - put '44.667,-110.282,Hot Springs,Ashton,Hotspring,H,H'; - put '44.656,-110.572,Violet Springs,Ashton,Hotspring,H,H'; - put '44.642,-110.238,Hot Spring,Ashton,Hotspring,H,H'; - put '44.634,-110.234,The Mudkettles,Ashton,Hotspring,H,H'; - put '44.634,-110.226,The Mushpots,Ashton,Hotspring,H,H'; - put '44.532,-110.874,"Imperial Geyser, Spray Geyser",Ashton,Hotspring,192,89'; - put '42.545,-106.725,Alcova Hot Springs,Casper,Hotspring,129,54'; - put '42.75,-109.616,Steele Hot Springs,Lander,Hotspring,102,39'; - put '43.37,-110.445,Granite Hot Spring,Driggs,Hotspring,106,41'; - put '43.008,-108.835,Washakie Mineral Hot Springs,Thermopolis,Hotspring,111,44'; - put '43.907,-110.198,North Buffalo Fork Springs,Driggs,Hotspring,113,45'; - put '43.365,-110.443,Granite Falls Hot Springs,Driggs,Hotspring,112,45'; - put '42.817,-110.997,Johnson Springs,Preston,Hotspring,115,46'; - put '44.723,-110.358,Hot Spring on Moss Creek,Ashton,Hotspring,115,46'; - put '44.681,-110.326,Hot Springs on Upper Sour Creek,Ashton,Hotspring,194,90'; - put '41.45,-106.804,Saratoga Hot Springs,Rawlins,Hotspring,129,54'; - put '44.671,-110.786,Secret Valley Hot Springs,Ashton,Hotspring,95,35'; - put '44.625,-110.433,Mud Volcano,Ashton,Hotspring,131,55'; - put '43.654,-108.194,Thermopolis Hot Springs,Thermopolis,Hotspring,133,56'; - put '44.985,-110.689,Hot River,Ashton,Hotspring,136,58'; - put '44.588,-110.341,Ebro Springs,Ashton,Hotspring,136,58'; - put '44.55,-110.805,Fountain Paint Pot,Ashton,Hotspring,136,58'; - put '44.169,-110.583,Snake Hot Springs,Ashton,Hotspring,136,58'; - put '44.157,-110.699,Crawfish Creek Hot Springs,Ashton,Hotspring,136,58'; - put '44.165,-110.723,Crawfish Creek Hot Springs,Ashton,Hotspring,138,59'; - put '44.711,-110.741,Chocolate Pots,Ashton,Hotspring,124,51'; - put '43.56,-109.732,Geyser (Warm Spring Creek Springs),Thermopolis,Hotspring,84,29'; - put '43.489,-109.605,Jakeys Fork Spring,Thermopolis,Hotspring,68,20'; - put '44.749,-108.188,Little Sheep Mountain Spring,Cody,Hotspring,68,20'; - put '42.249,-104.781,Warm Springs (Immigrants Washtub),Torrington,Hotspring,70,21'; - put '44.608,-108.138,Sheep Mountain Springs,Cody,Hotspring,70,21'; - put '43.583,-108.213,Wind River Canyon Spring,Thermopolis,Hotspring,72,22'; - put '42.702,-107.105,Horse Creek Springs,Casper,Hotspring,75,24'; - put '44.511,-109.156,Needle Hot Springs,Cody,Hotspring,75,24'; - put '43.52,-109.669,Little Warm Spring,Thermopolis,Hotspring,77,25'; - put '43.3,-110.775,Astoria Mineral Hot Springs,Driggs,Hotspring,99,37'; - put '43.543,-110.741,Abercrombie Warm Springs,Driggs,Hotspring,81,27'; - put '44.513,-109.115,De Maris Springs,Cody,Hotspring,97,36'; - put '42.665,-105.394,Douglas Hot Springs,Torrington,Hotspring,86,30'; - put '43.471,-110.835,Boyles Hill Springs,Driggs,Hotspring,86,30'; - put '43.282,-110.019,Kendall Warm Spring,Driggs,Hotspring,86,30'; - put '44.662,-110.768,Iron Spring,Ashton,Hotspring,86,30'; - put '42.492,-108.172,Sweetwater Station Warm Springs,Lander,Hotspring,90,32'; - put '44.742,-110.579,Wolf Lake Springs,Ashton,Hotspring,91,33'; - put '44.513,-109.129,Shoshone Hot Springs,Cody,Hotspring,95,35'; - put '42.828,-110.999,Auburn Hot Springs,Preston,Hotspring,144,62'; - put '43.639,-110.615,Kelly Warm Spring,Driggs,Hotspring,81,27'; - put '44.532,-110.796,Five Sisters Springs,Ashton,Hotspring,192,89'; - put '44.582,-110.314,Vermilion Springs,Ashton,Hotspring,140,60'; - put '44.521,-110.275,Butte Springs,Ashton,Hotspring,187,86'; - put '44.478,-110.867,Hillside Springs,Ashton,Hotspring,187,86'; - put '44.752,-110.418,Hot Springs at Sevenmile Hole,Ashton,Hotspring,189,87'; - put '44.401,-110.936,Hot Springs on Continental Divide,Ashton,Hotspring,189,87'; - put '44.769,-110.269,Rainbow Springs,Ashton,Hotspring,190,88'; - put '44.628,-110.433,Sulphur Caldron,Ashton,Hotspring,190,88'; - put '44.702,-110.767,Sylvan Springs,Ashton,Hotspring,192,89'; - put '44.529,-110.791,White Creek Group,Ashton,Hotspring,185,85'; - put '44.564,-110.869,Queens Laundry,Ashton,Hotspring,192,89'; - put '44.697,-110.375,Hot Springs on Bog Creek,Ashton,Hotspring,185,85'; - put '44.285,-110.9,Bechler River Hot Springs,Ashton,Hotspring,194,90'; - put '44.797,-110.725,Amphitheater Springs,Ashton,Hotspring,196,91'; - put '44.766,-110.429,Washburn Hot Springs,Ashton,Hotspring,196,91'; - put '44.756,-110.308,Coffee Pot Hot Springs,Ashton,Hotspring,196,91'; - put '44.591,-110.321,Hot Springs at Sulphur Hills,Ashton,Hotspring,196,91'; - put '44.556,-110.832,River Group,Ashton,Hotspring,196,91'; - put '44.422,-110.574,West Thumb Geyser Basin,Ashton,Hotspring,196,91'; - put '44.786,-110.74,Semi-Centennial Geyser,Ashton,Hotspring,198,92'; - put '44.653,-110.482,Sulphur Springs,Ashton,Hotspring,194,89'; - put '44.41,-110.953,Summit Lake Hot Springs,Ashton,Hotspring,162,72'; - put '44.761,-110.73,Bijah Spring,Ashton,Hotspring,198,92'; - put '44.781,-110.699,Whiterock Springs,Ashton,Hotspring,144,62'; - put '44.739,-110.258,Hot Spring Basin Group,Ashton,Hotspring,153,67'; - put '44.754,-110.403,Sevenmile Hole,Ashton,Hotspring,154,68'; - put '44.276,-110.636,Hot Springs on Lewis Lake,Ashton,Hotspring,154,68'; - put '44.598,-110.236,Hot Springs In Pelican Valley,Ashton,Hotspring,156,69'; - put '44.142,-110.656,South Entrance Hot Springs,Ashton,Hotspring,156,69'; - put '44.753,-110.724,"Roadside Springs, Frying Pan Sprin",Ashton,Hotspring,158,70'; - put '44.733,-110.712,Horseshoe Spring,Ashton,Hotspring,187,86'; - put '43.958,-110.696,Jackson Lake Hot Springs,Driggs,Hotspring,162,72'; - put '44.187,-110.726,Hot Springs,Ashton,Hotspring,142,61'; - put '44.967,-110.708,Mammoth Hot Springs,Ashton,Hotspring,163,73'; - put '44.475,-110.843,Morning Glory Pool,Ashton,Hotspring,163,73'; - put '44.204,-110.486,Hot Springs on Upper Snake River,Ashton,Hotspring,167,75'; - put '44.299,-110.517,"Heart Lake Geyser Basin, Middle Gr",Ashton,Hotspring,174,79'; - put '44.671,-110.29,Ponuntpa Springs Group,Ashton,Hotspring,180,82'; - put '44.244,-111.022,Boundary Creek Hot Springs,Ashton,Hotspring,181,83'; - put '44.414,-110.817,"Lone Star Geyser Basin, Footbridge",Ashton,Hotspring,183,84'; - put '44.722,-110.701,Echinus Geyser,Ashton,Hotspring,185,85'; - put '44.461,-110.854,Emerald Pool,Ashton,Hotspring,158,70'; - put ';;;;'; - put 'run;'; - put '* ServiceInit end;'; - put '* Service start;'; - put '/* this macro converts the JS input to a WORK table - work.areas */'; - put '%webout(FETCH)'; - put 'proc sql;'; - put 'create table springs as select *'; - put 'from mydb.springs'; - put 'where area in (select area from work.areas);'; - put '/* these macros open the JSON, send the table back, and close the JSON */'; - put '%webout(OPEN)'; - put '%webout(OBJ,springs)'; - put '%webout(CLOSE)'; - put '* Service end;'; -run; -%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) -filename sascode clear; -%let path=services/files; -%let service=upload; -filename sascode temp lrecl=32767; -data _null_; -file sascode; - put '%macro mf_getuser('; - put ')/*/STORE SOURCE*/;'; - put '%local user;'; - put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; - put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; - put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; - put '%end;'; - put '%else %if %symexist(_metaperson) %then %do;'; - put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; - put '/* sometimes SAS will add @domain extension - remove for consistency */'; - put '/* but be sure to quote in case of usernames with commas */'; - put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; - put '%end;'; - put '%else %let user=&sysuserid;'; - put '%quote(&user)'; - put '%mend mf_getuser;'; - put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; - put ',engine=DATASTEP'; - put ',missing=NULL'; - put ',showmeta=NO'; - put ')/*/STORE SOURCE*/;'; - put '%local tempds colinfo fmtds i numcols;'; - put '%let numcols=0;'; - put '%if &action=OPEN %then %do;'; - put 'options nobomfile;'; - put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; - put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; - put 'run;'; - put '%end;'; - put '%else %if (&action=ARR or &action=OBJ) %then %do;'; - put '/* force variable names to always be uppercase in the JSON */'; - put 'options validvarname=upcase;'; - put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; - put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; - put 'filename _sjs1 temp lrecl=200 ;'; - put 'data _null_; file _sjs1 encoding=''utf-8'';'; - put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; - put 'run;'; - put '/* now write to _webout 1 char at a time */'; - put 'data _null_;'; - put 'infile _sjs1 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs1 clear;'; - put '/* grab col defs */'; - put 'proc contents noprint data=&ds'; - put 'out=_data_(keep=name type length format formatl formatd varnum label);'; - put 'run;'; - put '%let colinfo=%scan(&syslast,2,.);'; - put 'proc sort data=&colinfo;'; - put 'by varnum;'; - put 'run;'; - put '/* move meta to mac vars */'; - put 'data _null_;'; - put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; - put 'set &colinfo end=last nobs=nobs;'; - put 'name=upcase(name);'; - put '/* fix formats */'; - put 'if type=2 or type=6 then do;'; - put 'typelong=''char'';'; - put 'length fmt $49.;'; - put 'if format='''' then fmt=cats(''$'',length,''.'');'; - put 'else if formatl=0 then fmt=cats(format,''.'');'; - put 'else fmt=cats(format,formatl,''.'');'; - put 'newlen=max(formatl,length);'; - put 'end;'; - put 'else do;'; - put 'typelong=''num'';'; - put 'if format='''' then fmt=''best.'';'; - put 'else if formatl=0 then fmt=cats(format,''.'');'; - put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; - put 'else fmt=cats(format,formatl,''.'',formatd);'; - put '/* needs to be wide, for datetimes etc */'; - put 'newlen=max(length,formatl,24);'; - put 'end;'; - put '/* 32 char unique name */'; - put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; - put 'call symputx(cats(''name'',_n_),name,''l'');'; - put 'call symputx(cats(''newname'',_n_),newname,''l'');'; - put 'call symputx(cats(''len'',_n_),newlen,''l'');'; - put 'call symputx(cats(''length'',_n_),length,''l'');'; - put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; - put 'call symputx(cats(''type'',_n_),type,''l'');'; - put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; - put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; - put 'run;'; - put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; - put '%if &engine=PROCJSON %then %do;'; - put '%if &missing=STRING %then %do;'; - put '%put &sysmacroname: Special Missings not supported in proc json.;'; - put '%put &sysmacroname: Switching to DATASTEP engine;'; - put '%goto datastep;'; - put '%end;'; - put 'data &tempds;set &ds;'; - put '%if &fmt=N %then format _numeric_ best32.;;'; - put '/* PRETTY is necessary to avoid line truncation in large files */'; - put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; - put 'proc json out=_sjs2 pretty'; - put '%if &action=ARR %then nokeys ;'; - put ';export &tempds / nosastags fmtnumeric;'; - put 'run;'; - put '/* send back to webout */'; - put 'data _null_;'; - put 'infile _sjs2 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs2 clear;'; - put '%end;'; - put '%else %if &engine=DATASTEP %then %do;'; - put '%datastep:'; - put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; - put '%then %do;'; - put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; - put '%if &fmt=Y %then %do;'; - put 'data _data_;'; - put '/* rename on entry */'; - put 'set &ds(rename=('; - put '%do i=1 %to &numcols;'; - put '&&name&i=&&newname&i'; put '%end;'; - put '));'; - put '%do i=1 %to &numcols;'; - put 'length &&name&i $&&len&i;'; - put '%if &&typelong&i=num %then %do;'; - put '&&name&i=left(put(&&newname&i,&&fmt&i));'; - put '%end;'; - put '%else %do;'; - put '&&name&i=put(&&newname&i,&&fmt&i);'; - put '%end;'; - put 'drop &&newname&i;'; - put '%end;'; - put 'if _error_ then call symputx(''syscc'',1012);'; - put 'run;'; - put '%let fmtds=&syslast;'; - put '%end;'; - put 'proc format; /* credit yabwon for special null removal */'; - put 'value bart (default=40)'; - put '%if &missing=NULL %then %do;'; - put '._ - .z = null'; - put '%end;'; - put '%else %do;'; - put '._ = [quote()]'; - put '. = null'; - put '.a - .z = [quote()]'; - put '%end;'; - put 'other = [best.];'; - put 'data &tempds;'; - put 'attrib _all_ label='''';'; - put '%do i=1 %to &numcols;'; - put '%if &&typelong&i=char or &fmt=Y %then %do;'; - put 'length &&name&i $32767;'; - put 'format &&name&i $32767.;'; - put '%end;'; - put '%end;'; - put '%if &fmt=Y %then %do;'; - put 'set &fmtds;'; - put '%end;'; - put '%else %do;'; - put 'set &ds;'; - put '%end;'; - put 'format _numeric_ bart.;'; - put '%do i=1 %to &numcols;'; - put '%if &&typelong&i=char or &fmt=Y %then %do;'; - put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; - put '&&name&i=''"''!!trim('; - put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; - put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; - put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; - put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; - put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; - put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; - put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; - put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; - put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; - put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; - put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; - put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; - put '))))))))))))!!''"'';'; - put 'end;'; - put 'else &&name&i=quote(cats(&&name&i));'; - put '%end;'; - put '%end;'; - put 'run;'; - put 'filename _sjs3 temp lrecl=131068 ;'; - put 'data _null_;'; - put 'file _sjs3 encoding=''utf-8'';'; - put 'if _n_=1 then put "[";'; - put 'set &tempds;'; - put 'if _n_>1 then put "," @; put'; - put '%if &action=ARR %then "[" ; %else "{" ;'; - put '%do i=1 %to &numcols;'; - put '%if &i>1 %then "," ;'; - put '%if &action=OBJ %then """&&name&i"":" ;'; - put '"&&name&i"n /* name literal for reserved variable names */'; - put '%end;'; - put '%if &action=ARR %then "]" ; %else "}" ; ;'; - put '/* close out the table */'; - put 'data _null_;'; - put 'file _sjs3 mod encoding=''utf-8'';'; - put 'put '']'';'; - put 'run;'; - put 'data _null_;'; - put 'infile _sjs3 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs3 clear;'; - put '%end;'; - put 'proc sql;'; - put 'drop table &colinfo, &tempds;'; - put '%if &showmeta=YES %then %do;'; - put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; - put 'data _null_;'; - put 'file _sjs4;'; - put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; - put 'do i=1 to &numcols;'; - put 'name=quote(trim(symget(cats(''name'',i))));'; - put 'format=quote(trim(symget(cats(''fmt'',i))));'; - put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; - put 'length=quote(trim(symget(cats(''length'',i))));'; - put 'type=quote(trim(symget(cats(''typelong'',i))));'; - put 'if i>1 then put "," @@;'; - put 'put name '':{"format":'' format '',"label":'' label'; - put ''',"length":'' length '',"type":'' type ''}'';'; - put 'end;'; - put 'put ''}}'';'; - put 'run;'; - put '/* send back to webout */'; - put 'data _null_;'; - put 'infile _sjs4 lrecl=1 recfm=n;'; - put 'file &jref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjs4 clear;'; - put '%end;'; - put '%end;'; - put '%else %if &action=CLOSE %then %do;'; - put 'data _null_; file &jref encoding=''utf-8'' mod ;'; - put 'put "}";'; - put 'run;'; - put '%end;'; - put '%mend mp_jsonout;'; - put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y,missing=NULL'; - put ',showmeta=NO'; - put ');'; - put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; - put 'sasjs_tables;'; - put '%local i tempds jsonengine;'; - put '/* see https://github.com/sasjs/core/issues/41 */'; - put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; - put '%else %let jsonengine=DATASTEP;'; - put '%if &action=FETCH %then %do;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'options mprint notes mprintnest;'; - put '%end;'; - put '%let _webin_file_count=%eval(&_webin_file_count+0);'; - put '/* now read in the data */'; - put '%do i=1 %to &_webin_file_count;'; - put '%if &_webin_file_count=1 %then %do;'; - put '%let _webin_fileref1=&_webin_fileref;'; - put '%let _webin_name1=&_webin_name;'; - put '%end;'; - put 'data _null_;'; - put 'infile &&_webin_fileref&i termstr=crlf;'; - put 'input;'; - put 'call symputx(''input_statement'',_infile_);'; - put 'putlog "&&_webin_name&i input statement: " _infile_;'; - put 'stop;'; - put 'data &&_webin_name&i;'; - put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; - put 'input &input_statement;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'if _n_<20 then putlog _infile_;'; - put '%end;'; - put 'run;'; - put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; - put '%end;'; - put '%end;'; - put '%else %if &action=OPEN %then %do;'; - put '/* fix encoding */'; - put 'OPTIONS NOBOMFILE;'; + put '%local root;'; put '/**'; - put '* check xengine type to avoid the below err message:'; - put '* > Function is only valid for filerefs using the CACHE access method.'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; put '*/'; - put 'data _null_;'; - put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; - put 'if xengine=''STREAM'' then do;'; - put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; - put 'end;'; - put 'run;'; - put '/* setup json */'; - put 'data _null_;file &fref encoding=''utf-8'';'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'put ''>>weboutBEGIN<<'';'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; put '%end;'; - put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; - put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; - put 'run;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; - put '%else %if &action=ARR or &action=OBJ %then %do;'; - put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; - put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta'; - put ')'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; - put '%else %if &action=CLOSE %then %do;'; - put '/* To avoid issues with _webout on EBI we use a temporary file */'; - put 'filename _sjsref temp lrecl=131068;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put '/* if debug mode, send back first 10 records of each work table also */'; - put 'options obs=10;'; - put 'data;run;%let tempds=%scan(&syslast,2,.);'; - put 'ods output Members=&tempds;'; - put 'proc datasets library=WORK memtype=data;'; - put '%local wtcnt;%let wtcnt=0;'; - put 'data _null_;'; - put 'set &tempds;'; - put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; - put 'i+1;'; - put 'call symputx(cats(''wt'',i),name,''l'');'; - put 'call symputx(''wtcnt'',i,''l'');'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'put ",""WORK"":{";'; - put '%do i=1 %to &wtcnt;'; - put '%let wt=&&wt&i;'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'dsid=open("WORK.&wt",''is'');'; - put 'nlobs=attrn(dsid,''NLOBS'');'; - put 'nvars=attrn(dsid,''NVARS'');'; - put 'rc=close(dsid);'; - put 'if &i>1 then put '',''@;'; - put 'put " ""&wt"" : {";'; - put 'put ''"nlobs":'' nlobs;'; - put 'put '',"nvars":'' nvars;'; - put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=YES)'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'put "}";'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; - put 'data _null_; file _sjsref mod encoding=''utf-8'';'; - put 'put "}";'; - put 'run;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; put '%end;'; - put '/* close off json */'; - put 'data _null_;file _sjsref mod encoding=''utf-8'';'; - put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; - put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; - put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; - put 'put ",""_DEBUG"" : ""&_debug"" ";'; - put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; - put 'put ",""_METAUSER"": " _METAUSER;'; - put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; - put 'put '',"_METAPERSON": '' _METAPERSON;'; - put 'put '',"_PROGRAM" : '' _PROGRAM ;'; - put 'put ",""SYSCC"" : ""&syscc"" ";'; - put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; - put 'syserrortext=quote(cats(symget(''SYSERRORTEXT'')));'; - put 'put '',"SYSERRORTEXT" : '' syserrortext;'; - put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; - put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; - put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; - put 'put ",""SYSSITE"" : ""&syssite"" ";'; - put 'sysvlong=quote(trim(symget(''sysvlong'')));'; - put 'put '',"SYSVLONG" : '' sysvlong;'; - put 'syswarningtext=quote(cats(symget(''SYSWARNINGTEXT'')));'; - put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; - put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; - put 'length memsize $32;'; - put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; - put 'memsize=quote(cats(memsize));'; - put 'put '',"MEMSIZE" : '' memsize;'; - put 'put "}" @;'; - put '%if %str(&_debug) ge 131 %then %do;'; - put 'put ''>>weboutEND<<'';'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; put '%end;'; - put 'run;'; - put '/* now write to _webout 1 char at a time */'; - put 'data _null_;'; - put 'infile _sjsref lrecl=1 recfm=n;'; - put 'file &fref mod lrecl=1 recfm=n;'; - put 'input sourcechar $char1. @@;'; - put 'format sourcechar hex2.;'; - put 'put sourcechar char1. @@;'; - put 'run;'; - put 'filename _sjsref clear;'; put '%end;'; - put '%mend mm_webout;'; - put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO);'; - put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; - put ',missing=&missing'; - put ',showmeta=&showmeta'; - put ') %mend;'; - put '/* provide additional debug info */'; - put '%global _program;'; - put '%put &=syscc;'; - put '%put user=%mf_getuser();'; - put '%put pgm=&_program;'; - put '%put timestamp=%sysfunc(datetime(),datetime19.);'; - put '* Service Variables start;'; - put '* Service Variables end;'; - put '* SAS Macros start;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; @@ -6249,7 +3025,7 @@ file sascode; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; - put 'syserrortext=quote(trim(symget(''syserrortext'')));'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; put 'put ",""SYSERRORTEXT"" : " syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; @@ -6257,7 +3033,7 @@ file sascode; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; - put 'syswarningtext=quote(trim(symget(''syswarningtext'')));'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; @@ -6271,6 +3047,7 @@ file sascode; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; @@ -6319,19 +3096,54117 @@ file sascode; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; - put '%macro mf_isdir(path'; - put ')/*/STORE SOURCE*/;'; - put '%local rc did is_directory fref_t;'; - put '%let is_directory = 0;'; - put '%let rc = %sysfunc(filename(fref_t, %superq(path)));'; - put '%let did = %sysfunc(dopen(&fref_t.));'; - put '%if &did. ^= 0 %then %do;'; - put '%let is_directory = 1;'; - put '%let rc = %sysfunc(dclose(&did.));'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; put '%end;'; - put '%let rc = %sysfunc(filename(fref_t));'; - put '&is_directory'; - put '%mend mf_isdir;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief provides the web service to create the control tables'; + put '@details'; + put '

SAS Macros

'; + put '@li dc_getusergroups.sas'; + put '@li mf_getuser.sas'; + put '@li mf_getapploc.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%let root=%mf_getapploc();'; + put '/* create web page */'; + put 'data _null_;'; + put 'file _webout;'; + put 'infile datalines ;'; + put 'input;'; + put 'put _infile_;'; + put 'datalines4;'; + put ''; + put ''; + put ''; + put ''; + put 'Data Controller'; + put ''; + put ''; + put ''; + put ''; + put ''; + put '
'; + put '
'; + put ''; + put 'Data Controller'; + put '
'; + put '
'; + put '
'; + put '
'; + put '
'; + put '
'; + put ''; + put '
'; + put '
'; + put 'Terms and Conditions'; + put '
'; + put '
'; + put '
'; + put '

Due to the way the Demo version is compiled (in an easy-to-deploy but'; + put 'inefficient-to-run format), it should not be deployed to production servers.'; + put 'Before proceeding with configuration, please confirm that you have read,'; + put 'understood, and agreed to the'; + put 'Data Controller for SAS© Evaluation Agreement.'; + put '

'; + put '
'; + put '
'; + put '>'; + put ''; + put '
'; + put '
'; + put '
'; + put ''; + put ''; + put '
'; + put '
'; + put '
'; + put ''; + put ''; + put ';;;;'; + put 'run;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=exportconfig; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_ds2cards(base_ds, tgt_ds='; + put ',cards_file="%sysfunc(pathname(work))/cardgen.sas"'; + put ',maxobs=max'; + put ',random_sample=NO'; + put ',showlog=YES'; + put ',outencoding='; + put ',append=NO'; + put ')/*/STORE SOURCE*/;'; + put '%local i setds nvars;'; + put '%if not %sysfunc(exist(&base_ds)) %then %do;'; + put '%put %str(WARN)ING: &base_ds does not exist;'; + put '%return;'; + put '%end;'; + put '%if %index(&base_ds,.)=0 %then %let base_ds=WORK.&base_ds;'; + put '%if (&tgt_ds = ) %then %let tgt_ds=&base_ds;'; + put '%if %index(&tgt_ds,.)=0 %then %let tgt_ds=WORK.%scan(&base_ds,2,.);'; + put '%if ("&outencoding" ne "") %then %let outencoding=encoding="&outencoding";'; + put '%if ("&append" = "" or "&append" = "NO") %then %let append=;'; + put '%else %let append=mod;'; + put '/* get varcount */'; + put '%let nvars=0;'; + put 'proc sql noprint;'; + put 'select count(*) into: nvars from dictionary.columns'; + put 'where upcase(libname)="%scan(%upcase(&base_ds),1)"'; + put 'and upcase(memname)="%scan(%upcase(&base_ds),2)";'; + put '%if &nvars=0 %then %do;'; + put '%put %str(WARN)ING: Dataset &base_ds has no variables, will not be converted.;'; + put '%return;'; + put '%end;'; + put '/* get indexes */'; + put 'proc sort'; + put 'data=sashelp.vindex('; + put 'where=(upcase(libname)="%scan(%upcase(&base_ds),1)"'; + put 'and upcase(memname)="%scan(%upcase(&base_ds),2)")'; + put ')'; + put 'out=_data_;'; + put 'by indxname indxpos;'; + put 'run;'; + put '%local indexes;'; + put 'data _null_;'; + put 'set &syslast end=last;'; + put 'if _n_=1 then call symputx(''indexes'',''(index=('',''l'');'; + put 'by indxname indxpos;'; + put 'length vars $32767 nom uni $8;'; + put 'retain vars;'; + put 'if first.indxname then do;'; + put 'idxcnt+1;'; + put 'nom='''';'; + put 'uni='''';'; + put 'vars=name;'; + put 'end;'; + put 'else vars=catx('' '',vars,name);'; + put 'if last.indxname then do;'; + put 'if nomiss=''yes'' then nom=''/nomiss'';'; + put 'if unique=''yes'' then uni=''/unique'';'; + put 'call symputx(''indexes'''; + put ',catx('' '',symget(''indexes''),indxname,''=('',vars,'')'',nom,uni)'; + put ',''l'');'; + put 'end;'; + put 'if last then call symputx(''indexes'',cats(symget(''indexes''),''))''),''l'');'; + put 'run;'; + put 'data;run;'; + put '%let setds=&syslast;'; + put 'proc sql'; + put '%if %datatyp(&maxobs)=NUMERIC %then %do;'; + put 'outobs=&maxobs;'; + put '%end;'; + put ';'; + put 'create table &setds as select * from &base_ds'; + put '%if &random_sample=YES %then %do;'; + put 'order by ranuni(42)'; + put '%end;'; + put ';'; + put 'reset outobs=max;'; + put 'create table datalines1 as'; + put 'select name,type,length,varnum,format,label from dictionary.columns'; + put 'where upcase(libname)="%upcase(%scan(&base_ds,1))"'; + put 'and upcase(memname)="%upcase(%scan(&base_ds,2))";'; + put '/**'; + put 'Due to long decimals cannot use best. format'; + put 'So - use bestd. format and then use character functions to strip trailing'; + put 'zeros, if NOT an integer or missing!! Cannot use int() as it upsets'; + put 'note2err when there are missings.'; + put 'resolved code = ifc( mod(coalesce(VARIABLE,0),1)=0'; + put ',put(VARIABLE,best32.)'; + put ',substrn(put(VARIABLE,bestd32.),1'; + put ',findc(put(VARIABLE,bestd32.),''0'',''TBK'')));'; + put '**/'; + put 'data datalines_2;'; + put 'format dataline $32000.;'; + put 'set datalines1 (where=(upcase(name) not in'; + put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM'')));'; + put 'if type=''num'' then dataline='; + put 'cats(''ifc(mod(coalesce('',name,'',0),1)=0'; + put ',put('',name,'',best32.-l)'; + put ',substrn(put('',name,'',bestd32.-l),1'; + put ',findc(put('',name,'',bestd32.-l),"0","TBK")))'');'; + put '/**'; + put '* binary data must be converted, to store in text format. It is identified'; + put '* by the presence of the $HEX keyword in the format.'; + put '*/'; + put 'else if upcase(format)=:''$HEX'' then'; + put 'dataline=cats(''put(trim('',name,''),'',format,'')'');'; + put '/**'; + put '* There is no easy way to store line breaks in a cards file.'; + put '* To discuss this, use: https://github.com/sasjs/core/issues/80'; + put '* Removing all nonprintables with kw (keep writeable)'; + put '*/'; + put 'else dataline=cats(''compress('',name,'', ,"kw")'');'; + put 'run;'; + put 'proc sql noprint;'; + put 'select dataline into: datalines separated by '','' from datalines_2;'; + put '%local'; + put 'process_dttm_flg'; + put 'valid_from_dttm_flg'; + put 'valid_to_dttm_flg'; + put ';'; + put '%let process_dttm_flg = N;'; + put '%let valid_from_dttm_flg = N;'; + put '%let valid_to_dttm_flg = N;'; + put 'data _null_;'; + put 'set datalines1 ;'; + put '/* build attrib statement */'; + put 'if type=''char'' then type2=''$'';'; + put 'if strip(format) ne '''' then format2=cats(''format='',format);'; + put 'if strip(label) ne '''' then label2=cats(''label='',quote(trim(label)));'; + put 'str1=catx('' '',(put(name,$33.)||''length='')'; + put ',put(cats(type2,length),$7.)||format2,label2);'; + put '/* Build input statement */'; + put 'if upcase(format)=:''$HEX'' then type3='':''!!format;'; + put 'else if type=''char'' then type3='':$char.'';'; + put 'str2=put(name,$33.)||type3;'; + put 'if(upcase(name) = "PROCESSED_DTTM") then'; + put 'call symputx("process_dttm_flg", "Y", "L");'; + put 'if(upcase(name) = "VALID_FROM_DTTM") then'; + put 'call symputx("valid_from_dttm_flg", "Y", "L");'; + put 'if(upcase(name) = "VALID_TO_DTTM") then'; + put 'call symputx("valid_to_dttm_flg", "Y", "L");'; + put 'call symputx(cats("attrib_stmt_", put(_N_, 8.)), str1, "L");'; + put 'call symputx(cats("input_stmt_", put(_N_, 8.))'; + put ', ifc(upcase(name) not in'; + put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM''), str2, ""), "L");'; + put 'run;'; + put 'data _null_;'; + put 'file &cards_file. &outencoding lrecl=32767 termstr=nl &append;'; + put 'length __attrib $32767;'; + put 'if _n_=1 then do;'; + put 'put ''/**'';'; + put 'put '' @file'';'; + put 'put " @brief Datalines for %upcase(%scan(&base_ds,2)) dataset";'; + put 'put " @details Generated by %nrstr(%%)mp_ds2cards()";'; + put 'put " Source: https://github.com/sasjs/core";'; + put 'put '' @cond '';'; + put 'put ''**/'';'; + put 'put "data &tgt_ds &indexes;";'; + put 'put "attrib ";'; + put '%do i = 1 %to &nvars;'; + put '__attrib=symget("attrib_stmt_&i");'; + put 'put __attrib;'; + put '%end;'; + put 'put ";";'; + put '%if &process_dttm_flg. eq Y %then %do;'; + put 'put ''retain PROCESSED_DTTM %sysfunc(datetime());'';'; + put '%end;'; + put '%if &valid_from_dttm_flg. eq Y %then %do;'; + put 'put ''retain VALID_FROM_DTTM &low_date;'';'; + put '%end;'; + put '%if &valid_to_dttm_flg. eq Y %then %do;'; + put 'put ''retain VALID_TO_DTTM &high_date;'';'; + put '%end;'; + put 'if __nobs=0 then do;'; + put 'put ''call missing(of _all_);/* avoid uninitialised notes */'';'; + put 'put ''stop;'';'; + put 'put ''run;'';'; + put 'end;'; + put 'else do;'; + put 'put "infile cards dsd;";'; + put 'put "input ";'; + put '%do i = 1 %to &nvars.;'; + put '%if(%length(&&input_stmt_&i..)) %then'; + put 'put " &&input_stmt_&i..";'; + put ';'; + put '%end;'; + put 'put ";";'; + put 'put ''missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'';'; + put 'put "datalines4;";'; + put 'end;'; + put 'end;'; + put 'set &setds end=__lastobs nobs=__nobs;'; + put '/* remove all formats for write purposes - some have long underlying decimals */'; + put 'format _numeric_ best30.29;'; + put 'length __dataline $32767;'; + put '__dataline=catq(''cqtmb'',&datalines);'; + put 'put __dataline;'; + put 'if __lastobs then do;'; + put 'put '';;;;'';'; + put 'put ''run;'';'; + put 'put ''/** @endcond **/'';'; + put 'stop;'; + put 'end;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &setds;'; + put 'quit;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &cards_file lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '%put NOTE: CARDS FILE SAVED IN:;'; + put '%put NOTE-;%put NOTE-;'; + put '%put NOTE- %sysfunc(dequote(&cards_file.));'; + put '%put NOTE-;%put NOTE-;'; + put '%mend mp_ds2cards;'; + put '/** @endcond **/'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Downloads zip file of DC customer configurations'; + put '@details Zip contains several excel files, containing the customer specific'; + put '(non-DC) configurations. Useful when migrating to a new instance of'; + put 'Data Controller.'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mf_nobs.sas'; + put '@li mp_ds2cards.sas'; + put '@li mp_abort.sas'; + put '@li mp_binarycopy.sas'; + put '@li mp_streamfile.sas'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let work=%sysfunc(pathname(work));'; + put '/* excel does not work in all envs */'; + put '%let mime=application/vnd.ms-excel;'; + put '%let dbms=EXCEL;'; + put '%let mime=application/csv;'; + put '%let dbms=CSV;'; + put '%let ext=csv;'; + put '%macro conditional_export(ds);'; + put '%if %mf_nobs(&ds)>0 %then %do;'; + put 'PROC EXPORT DATA= &ds OUTFILE= "&work/&ds..&ext"'; + put 'DBMS=&dbms REPLACE;'; + put 'RUN;'; + put 'ods package(ProdOutput) add file="&work/&ds..&ext" mimetype="&mime";'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%nrstr(syscc=&syscc after &ds prep)'; + put ')'; + put '%mend conditional_export;'; + put 'ods package(ProdOutput) open nopf;'; + put 'data MPE_ALERTS;'; + put 'set &mpelib..MPE_ALERTS;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_ALERTS)'; + put 'data MPE_COLUMN_LEVEL_SECURITY;'; + put 'set &mpelib..MPE_COLUMN_LEVEL_SECURITY;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'where also CLS_LIBREF ne "&mpelib";'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_COLUMN_LEVEL_SECURITY)'; + put 'data MPE_CONFIG;'; + put 'set &mpelib..MPE_CONFIG;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_CONFIG)'; + put 'data MPE_DATADICTIONARY;'; + put 'set &mpelib..MPE_DATADICTIONARY;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'if DD_SOURCE=:"&mpelib" then do;'; + put '/* nothing */'; + put 'end;'; + put 'else output;'; + put 'run;'; + put '%conditional_export(MPE_DATADICTIONARY)'; + put 'data MPE_EMAILS;'; + put 'set &mpelib..MPE_EMAILS;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_EMAILS)'; + put 'data MPE_EXCEL_CONFIG;'; + put 'set &mpelib..MPE_EXCEL_CONFIG;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_EXCEL_CONFIG)'; + put 'data MPE_GROUPS;'; + put 'set &mpelib..MPE_GROUPS;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_GROUPS)'; + put 'data MPE_ROW_LEVEL_SECURITY;'; + put 'set &mpelib..MPE_ROW_LEVEL_SECURITY;'; + put 'where &dc_dttmtfmt. le tx_to;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_ROW_LEVEL_SECURITY)'; + put 'data MPE_SECURITY;'; + put 'set &mpelib..MPE_SECURITY;'; + put 'where &dc_dttmtfmt. le TX_TO;'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_SECURITY)'; + put 'data MPE_SELECTBOX;'; + put 'set &mpelib..MPE_SELECTBOX;'; + put 'where &dc_dttmtfmt. le ver_to_dttm;'; + put 'where also select_lib ne "&mpelib";'; + put 'drop ver_: selectbox_rk;'; + put 'run;'; + put '%conditional_export(MPE_SELECTBOX)'; + put 'data MPE_TABLES;'; + put 'set &mpelib..MPE_TABLES;'; + put 'where &dc_dttmtfmt. le TX_TO;'; + put 'where also LIBREF ne "&mpelib";'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_TABLES)'; + put 'data MPE_VALIDATIONS;'; + put 'set &mpelib..MPE_VALIDATIONS;'; + put 'where &dc_dttmtfmt. le TX_TO;'; + put 'where also BASE_LIB ne "&mpelib";'; + put 'drop tx_: ;'; + put 'run;'; + put '%conditional_export(MPE_VALIDATIONS)'; + put '/* finish up zip file */'; + put 'ods package(ProdOutput) publish archive properties'; + put '(archive_name="DCBACKUP.zip" archive_path="&work");'; + put 'ods package(ProdOutput) close;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%nrstr(syscc=&syscc after zip prep)'; + put ')'; + put '/* now serve zip file to client */'; + put '%mp_streamfile(contenttype=ZIP'; + put ',inloc=%str(&work/DCBACKUP.zip)'; + put ',outname=DCBACKUP.zip'; + put ')'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=exportdb; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_existfileref(fref'; + put ')/*/STORE SOURCE*/;'; + put '%local rc;'; + put '%let rc=%sysfunc(fileref(&fref));'; + put '%if &rc=0 %then %do;'; + put '1'; + put '%end;'; + put '%else %if &rc<0 %then %do;'; + put '%put &sysmacroname: Fileref &fref exists but the underlying file does not;'; + put '1'; + put '%end;'; + put '%else %do;'; + put '0'; + put '%end;'; + put '%mend mf_existfileref;'; + put '%macro mf_getvarcount(libds,typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid nvars rc outcnt x;'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%let nvars=.;'; + put '%let outcnt=0;'; + put '%let typefilter=%upcase(&typefilter);'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &typefilter=A %then %let outcnt=&nvars;'; + put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; + put '/* increment based on variable type */'; + put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; + put '%let outcnt=%eval(&outcnt+1);'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put unable to open &libds (rc=&dsid);'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '&outcnt'; + put '%mend mf_getvarcount;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mp_getconstraints(lib=WORK'; + put ',ds='; + put ',outds=mp_getconstraints'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '/**'; + put '* Cater for environments where sashelp.vcncolu is not available'; + put '*/'; + put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; + put 'proc sql;'; + put 'create table &outds('; + put 'libref char(8)'; + put ',TABLE_NAME char(32)'; + put ',constraint_type char(8) label=''Constraint Type'''; + put ',constraint_name char(32) label=''Constraint Name'''; + put ',column_name char(32) label=''Column'''; + put ',constraint_order num'; + put ');'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Neither dictionary tables nor sashelp provides a constraint order column,'; + put '* however they DO arrive in the correct order. So, create the col.'; + put '**/'; + put '%local vw;'; + put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; + put 'data &vw /view=&vw;'; + put 'set sashelp.vcncolu;'; + put 'where table_catalog="&lib";'; + put '/* use retain approach to reset the constraint order with each constraint */'; + put 'length tmp $1000;'; + put 'retain tmp;'; + put 'drop tmp;'; + put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; + put 'constraint_order=1;'; + put 'end;'; + put 'else constraint_order+1;'; + put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; + put 'run;'; + put '/* must use SQL as proc datasets does not support length changes */'; + put 'proc sql noprint;'; + put 'create table &outds as'; + put 'select upcase(a.TABLE_CATALOG) as libref'; + put ',upcase(a.TABLE_NAME) as TABLE_NAME'; + put ',a.constraint_type'; + put ',a.constraint_name'; + put ',b.column_name'; + put ',b.constraint_order'; + put 'from dictionary.TABLE_CONSTRAINTS a'; + put 'left join &vw b'; + put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; + put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; + put 'and a.constraint_name=b.constraint_name'; + put '/**'; + put '* We cannot apply this clause to the underlying dictionary table. See:'; + put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; + put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; + put '* all the underlying constraint queries, causing exception errors in some'; + put '* cases: https://github.com/sasjs/core/issues/283'; + put '*/'; + put 'where a.TABLE_CATALOG="&lib"'; + put '%if "&ds" ne "" %then %do;'; + put 'and upcase(a.TABLE_NAME)="&ds"'; + put 'and upcase(b.TABLE_NAME)="&ds"'; + put '%end;'; + put 'order by libref, table_name, constraint_name, constraint_order'; + put ';'; + put '/* tidy up */'; + put '%mp_dropmembers('; + put '&vw,'; + put 'iftrue=(&mdebug=0)'; + put ')'; + put '%mend mp_getconstraints;'; + put '%macro mp_getddl(libref,ds,fref=getddl,flavour=SAS,showlog=NO,schema='; + put ',applydttm=NO'; + put ')/*/STORE SOURCE*/;'; + put '/* check fileref is assigned */'; + put '%if %mf_existfileref(&fref)=0 %then %do;'; + put 'filename &fref temp ;'; + put '%end;'; + put '%if %length(&libref)=0 %then %let libref=WORK;'; + put '%let flavour=%upcase(&flavour);'; + put 'proc sql noprint;'; + put 'create table _data_ as'; + put 'select * from dictionary.tables'; + put 'where upcase(libname)="%upcase(&libref)"'; + put 'and memtype=''DATA'' /* views not currently supported */'; + put '%if %length(&ds)>0 %then %do;'; + put 'and upcase(memname)="%upcase(&ds)"'; + put '%end;'; + put ';'; + put '%local tabinfo; %let tabinfo=&syslast;'; + put 'create table _data_ as'; + put 'select * from dictionary.columns'; + put 'where upcase(libname)="%upcase(&libref)"'; + put '%if %length(&ds)>0 %then %do;'; + put 'and upcase(memname)="%upcase(&ds)"'; + put '%end;'; + put ';'; + put '%local colinfo; %let colinfo=&syslast;'; + put '%local dsnlist;'; + put 'select distinct upcase(memname) into: dsnlist'; + put 'separated by '' '''; + put 'from &syslast'; + put ';'; + put 'create table _data_ as'; + put 'select * from dictionary.indexes'; + put 'where upcase(libname)="%upcase(&libref)"'; + put '%if %length(&ds)>0 %then %do;'; + put 'and upcase(memname)="%upcase(&ds)"'; + put '%end;'; + put 'order by idxusage, indxname, indxpos'; + put ';'; + put '%local idxinfo; %let idxinfo=&syslast;'; + put '/* Extract all Primary Key and Unique data constraints */'; + put '%mp_getconstraints(lib=%upcase(&libref),ds=%upcase(&ds),outds=_data_)'; + put '%local colconst; %let colconst=&syslast;'; + put '%macro addConst();'; + put '%global constraints_used;'; + put 'data _null_;'; + put 'length ctype $11 constraint_name_orig $256 constraints_used $5000;'; + put 'set &colconst('; + put 'where=(table_name="&curds" and constraint_type in (''PRIMARY'',''UNIQUE''))'; + put ') end=last;'; + put 'file &fref mod;'; + put 'by constraint_type constraint_name;'; + put 'retain constraints_used;'; + put 'constraint_name_orig=constraint_name;'; + put 'if upcase(strip(constraint_type)) = ''PRIMARY'' then ctype=''PRIMARY KEY'';'; + put 'else ctype=strip(constraint_type);'; + put '%if &flavour=TSQL %then %do;'; + put 'column_name=catt(''['',column_name,'']'');'; + put 'constraint_name=catt(''['',constraint_name,'']'');'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put 'column_name=catt(''"'',column_name,''"'');'; + put 'constraint_name=catt(''"'',constraint_name,''"'');'; + put '%end;'; + put 'if first.constraint_name then do;'; + put 'constraints_used = catx('' '', constraints_used, constraint_name_orig);'; + put 'put " ,CONSTRAINT " constraint_name ctype "(" ;'; + put 'put '' '' column_name;'; + put 'end;'; + put 'else put '' ,'' column_name;'; + put 'if last.constraint_name then do;'; + put 'put " )";'; + put 'call symput(''constraints_used'',strip(constraints_used));'; + put 'end;'; + put 'run;'; + put '%put &=constraints_used;'; + put '%mend addConst;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* DDL generated by &sysuserid on %sysfunc(datetime(),datetime19.) */";'; + put 'run;'; + put '%local x curds;'; + put '%if &flavour=SAS %then %do;'; + put '%do x=1 %to %sysfunc(countw(&dsnlist));'; + put '%let curds=%scan(&dsnlist,&x);'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* SAS Flavour DDL for %upcase(&libref).&curds */";'; + put 'put "proc sql;";'; + put 'run;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'length lab $1024 typ $20;'; + put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; + put 'if _n_=1 then do;'; + put 'if memtype=''DATA'' then do;'; + put 'put "create table &libref..&curds(";'; + put 'end;'; + put 'else do;'; + put '/* just a placeholder - we filter out views at the top */'; + put 'put "create view &libref..&curds(";'; + put 'end;'; + put 'put " "@@;'; + put 'end;'; + put 'else put " ,"@@;'; + put 'if length(format)>1 then fmt=" format="!!cats(format);'; + put 'if length(label)>1 then'; + put 'lab=" label="!!cats("''",tranwrd(label,"''","''''"),"''");'; + put 'if notnull=''yes'' then notnul='' not null'';'; + put 'if type=''char'' then typ=cats(''char('',length,'')'');'; + put 'else if length ne 8 then typ=''num length=''!!cats(length);'; + put 'else typ=''num'';'; + put 'put name typ fmt notnul lab;'; + put 'run;'; + put '/* Extra step for data constraints */'; + put '%addConst()'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put '');'';'; + put 'run;'; + put '/* Create Unique Indexes, but only if they were not already defined within'; + put 'the Constraints section. */'; + put 'data _null_;'; + put '*length ds $128;'; + put 'set &idxinfo('; + put 'where=('; + put 'memname="&curds"'; + put 'and unique=''yes'''; + put 'and indxname not in ('; + put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; + put ')'; + put ')'; + put ');'; + put 'file &fref mod;'; + put 'by idxusage indxname;'; + put '/* ds=cats(libname,''.'',memname); */'; + put 'if first.indxname then do;'; + put 'put ''CREATE UNIQUE INDEX '' indxname "ON &libref..&curds (" ;'; + put 'put '' '' name ;'; + put 'end;'; + put 'else put '' ,'' name ;'; + put '*else put '' ,'' name ;'; + put 'if last.indxname then do;'; + put 'put '');'';'; + put 'end;'; + put 'run;'; + put '/*'; + put 'ods output IntegrityConstraints=ic;'; + put 'proc contents data=testali out2=info;'; + put 'run;'; + put '*/'; + put '%end;'; + put '%end;'; + put '%else %if &flavour=TSQL %then %do;'; + put '/* if schema does not exist, set to be same as libref */'; + put '%local schemaactual;'; + put 'proc sql noprint;'; + put 'select sysvalue into: schemaactual'; + put 'from dictionary.libnames'; + put 'where upcase(libname)="&libref" and engine=''SQLSVR'';'; + put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; + put '%do x=1 %to %sysfunc(countw(&dsnlist));'; + put '%let curds=%scan(&dsnlist,&x);'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* TSQL Flavour DDL for &schema..&curds */";'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; + put 'if _n_=1 then do;'; + put 'if memtype=''DATA'' then do;'; + put 'put "create table [&schema].[&curds](";'; + put 'end;'; + put 'else do;'; + put '/* just a placeholder - we filter out views at the top */'; + put 'put "create view [&schema].[&curds](";'; + put 'end;'; + put 'put " "@@;'; + put 'end;'; + put 'else put " ,"@@;'; + put 'format=upcase(format);'; + put 'if 1=0 then; /* dummy if */'; + put '%if &applydttm=YES %then %do;'; + put 'else if format=:''DATETIME'' then fmt=''[datetime2](7) '';'; + put '%end;'; + put 'else if type=''num'' then fmt=''[decimal](18,2)'';'; + put 'else if length le 8000 then fmt=''[varchar](''!!cats(length)!!'')'';'; + put 'else fmt=cats(''[varchar](max)'');'; + put 'if notnull=''yes'' then notnul='' NOT NULL'';'; + put 'put "[" name +(-1) "]" fmt notnul;'; + put 'run;'; + put '/* Extra step for data constraints */'; + put '%addConst()'; + put '/* Create Unique Indexes, but only if they were not already defined within'; + put 'the Constraints section. */'; + put 'data _null_;'; + put '*length ds $128;'; + put 'set &idxinfo('; + put 'where=('; + put 'memname="&curds"'; + put 'and unique=''yes'''; + put 'and indxname not in ('; + put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; + put ')'; + put ')'; + put ');'; + put 'file &fref mod;'; + put 'by idxusage indxname;'; + put '*ds=cats(libname,''.'',memname);'; + put 'if first.indxname then do;'; + put '/* add nonclustered in case of multiple unique indexes */'; + put 'put '' ,index ['' indxname +(-1) ''] UNIQUE NONCLUSTERED ('';'; + put 'put '' ['' name +(-1) '']'';'; + put 'end;'; + put 'else put '' ,['' name +(-1) '']'';'; + put 'if last.indxname then do;'; + put 'put '' )'';'; + put 'end;'; + put 'run;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put '')'';'; + put 'put ''GO'';'; + put 'run;'; + put '/* add extended properties for labels */'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'length nm $64 lab $1024;'; + put 'set &colinfo (where=(upcase(memname)="&curds" and label ne '''')) end=last;'; + put 'nm=cats("N''",tranwrd(name,"''","''''"),"''");'; + put 'lab=cats("N''",tranwrd(label,"''","''''"),"''");'; + put 'put '' '';'; + put 'put "EXEC sys.sp_addextendedproperty ";'; + put 'put " @name=N''MS_Description'',@value=" lab ;'; + put 'put " ,@level0type=N''SCHEMA'',@level0name=N''&schema'' ";'; + put 'put " ,@level1type=N''TABLE'',@level1name=N''&curds''";'; + put 'put " ,@level2type=N''COLUMN'',@level2name=" nm ;'; + put 'if last then put ''GO'';'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put '/* if schema does not exist, set to be same as libref */'; + put '%local schemaactual;'; + put 'proc sql noprint;'; + put 'select sysvalue into: schemaactual'; + put 'from dictionary.libnames'; + put 'where upcase(libname)="&libref" and engine=''POSTGRES'';'; + put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "CREATE SCHEMA &schema;";'; + put '%do x=1 %to %sysfunc(countw(&dsnlist));'; + put '%let curds=%scan(&dsnlist,&x);'; + put '%local curdsvarcount;'; + put '%let curdsvarcount=%mf_getvarcount(&libref..&curds);'; + put '%if &curdsvarcount>1600 %then %do;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* &libref..&curds contains &curdsvarcount vars */";'; + put 'put "/* Postgres cannot create tables with over 1600 vars */";'; + put 'put "/* No DDL will be generated for this table";'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* Postgres Flavour DDL for &schema..&curds */";'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; + put 'length fmt $32;'; + put 'if _n_=1 then do;'; + put 'if memtype=''DATA'' then do;'; + put 'put "CREATE TABLE &schema..&curds (";'; + put 'end;'; + put 'else do;'; + put '/* just a placeholder - we filter out views at the top */'; + put 'put "CREATE VIEW &schema..&curds (";'; + put 'end;'; + put 'put " "@@;'; + put 'end;'; + put 'else put " ,"@@;'; + put 'format=upcase(format);'; + put 'if 1=0 then; /* dummy if */'; + put '%if &applydttm=YES %then %do;'; + put 'else if format=:''DATETIME'' then fmt='' TIMESTAMP '';'; + put '%end;'; + put 'else if type=''num'' then fmt='' DOUBLE PRECISION'';'; + put 'else fmt=''VARCHAR(''!!cats(length)!!'')'';'; + put 'if notnull=''yes'' then notnul='' NOT NULL'';'; + put '/* quote column names in case they represent reserved words */'; + put 'name2=quote(trim(name));'; + put 'put name2 fmt notnul;'; + put 'run;'; + put '/* Extra step for data constraints */'; + put '%addConst()'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put '');'';'; + put 'run;'; + put '/* Create Unique Indexes, but only if they were not already defined within'; + put 'the Constraints section. */'; + put 'data _null_;'; + put '*length ds $128;'; + put 'set &idxinfo('; + put 'where=('; + put 'memname="&curds"'; + put 'and unique=''yes'''; + put 'and indxname not in ('; + put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; + put ')'; + put ')'; + put ');'; + put 'file &fref mod;'; + put 'by idxusage indxname;'; + put 'if first.indxname then do;'; + put 'put ''CREATE UNIQUE INDEX "'' indxname +(-1) ''" '' "ON &schema..&curds(";'; + put 'put '' "'' name +(-1) ''"'' ;'; + put 'end;'; + put 'else put '' ,"'' name +(-1) ''"'';'; + put 'if last.indxname then do;'; + put 'put '');'';'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%if %upcase(&showlog)=YES %then %do;'; + put 'options ps=max;'; + put 'data _null_;'; + put 'infile &fref;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%mend mp_getddl;'; + put '%macro mf_getVarFormat(libds /* two level ds name */'; + put ', var /* variable name from which to return the format */'; + put ', force=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vformat rc vlen vtype;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable format */'; + put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* supply a default if no format available */'; + put '%if %length(&vformat)<2 & &force=1 %then %do;'; + put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; + put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%if &vtype=C %then %let vformat=$&vlen..;'; + put '%else %let vformat=best.;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable format */'; + put '&vformat'; + put '%mend mf_getVarFormat;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mp_ds2inserts(ds, outref=0,schema=0,outds=0,flavour=SAS,maxobs=max'; + put ',applydttm=YES'; + put ')/*/STORE SOURCE*/;'; + put '%if not %sysfunc(exist(&ds)) %then %do;'; + put '%put %str(WAR)NING: &ds does not exist;'; + put '%return;'; + put '%end;'; + put '%if not %sysfunc(exist(&ds)) %then %do;'; + put '%put %str(WAR)NING: &ds does not exist;'; + put '%return;'; + put '%end;'; + put '%if %index(&ds,.)=0 %then %let ds=WORK.&ds;'; + put '%let flavour=%upcase(&flavour);'; + put '%if &flavour ne SAS and &flavour ne PGSQL %then %do;'; + put '%put %str(WAR)NING: &flavour is not supported;'; + put '%return;'; + put '%end;'; + put '%if &outref=0 %then %do;'; + put '%put %str(WAR)NING: Please provide a fileref;'; + put '%return;'; + put '%end;'; + put '%if %mf_existfileref(&outref)=0 %then %do;'; + put 'filename &outref temp lrecl=66000;'; + put '%end;'; + put '%if &schema=0 %then %let schema=;'; + put '%else %let schema=&schema..;'; + put '%if &outds=0 %then %let outds=%scan(&ds,2,.);'; + put '%local nobs;'; + put 'proc sql noprint;'; + put 'select count(*) into: nobs TRIMMED from &ds;'; + put '%if &nobs=0 %then %do;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'put "/* No rows found in &ds */";'; + put 'run;'; + put '%end;'; + put '%local vars;'; + put '%let vars=%mf_getvarcount(&ds);'; + put '%if &vars=0 %then %do;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'put "/* No columns found in &schema.&ds */";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &vars>1600 and &flavour=PGSQL %then %do;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* &schema.&ds contains &vars vars */";'; + put 'put "/* Postgres cannot handle tables with over 1600 vars */";'; + put 'put "/* No inserts will be generated for this table */";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%local varlist varlistcomma;'; + put '%let varlist=%mf_getvarlist(&ds);'; + put '%let varlistcomma=%mf_getvarlist(&ds,dlm=%str(,),quote=double);'; + put '/* next, export data */'; + put 'data _null_;'; + put 'file &outref mod ;'; + put 'if _n_=1 then put "/* &schema.&outds (&nobs rows, &vars columns) */";'; + put 'set &ds;'; + put '%if &maxobs ne max %then %do;'; + put 'if _n_>&maxobs then stop;'; + put '%end;'; + put 'length _____str $32767;'; + put 'call missing(_____str);'; + put 'format _numeric_ best.;'; + put 'format _character_ ;'; + put '%local i comma var vtype vfmt;'; + put '%do i=1 %to %sysfunc(countw(&varlist));'; + put '%let var=%scan(&varlist,&i);'; + put '%let vtype=%mf_getvartype(&ds,&var);'; + put '%let vfmt=%upcase(%mf_getvarformat(&ds,&var,force=1));'; + put '%if &i=1 %then %do;'; + put '%if &flavour=SAS %then %do;'; + put 'put "insert into &schema.&outds set ";'; + put 'put " &var="@;'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put '_____str=cats('; + put '"INSERT INTO &schema.&outds ("'; + put ',symget(''varlistcomma'')'; + put ',") VALUES ("'; + put ');'; + put 'put _____str;'; + put 'put " "@;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%if &flavour=SAS %then %do;'; + put 'put " ,&var="@;'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put 'put " ,"@;'; + put '%end;'; + put '%end;'; + put '%if &vtype=N %then %do;'; + put '%if &flavour=SAS %then %do;'; + put 'put &var;'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put 'if missing(&var) then put ''NULL'';'; + put '%if &applydttm=YES and "%substr(&vfmt.xxxxxxxx,1,8)"="DATETIME"'; + put '%then %do;'; + put 'else put "TIMESTAMP ''" &var E8601DT25.6 "''";'; + put '%end;'; + put '%else %do;'; + put 'else put &var;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '_____str="''"!!trim(tranwrd(&var,"''","''''"))!!"''";'; + put 'put _____str;'; + put '%end;'; + put '%end;'; + put '%if &flavour=SAS %then %do;'; + put 'put '';'';'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put 'put '');'';'; + put '%end;'; + put 'if _n_=&nobs then put /;'; + put 'run;'; + put '%mend mp_ds2inserts;'; + put '%macro mp_lib2inserts(lib'; + put ',flavour=SAS'; + put ',outref=0'; + put ',schema=0'; + put ',maxobs=max'; + put ',applydttm=YES'; + put ')/*/STORE SOURCE*/;'; + put '/* Find the tables */'; + put '%local x ds memlist;'; + put 'proc sql noprint;'; + put 'select distinct lowcase(memname)'; + put 'into: memlist'; + put 'separated by '' '''; + put 'from dictionary.tables'; + put 'where upcase(libname)="%upcase(&lib)"'; + put 'and memtype=''DATA''; /* exclude views */'; + put '%let flavour=%upcase(&flavour);'; + put '%if &flavour ne SAS and &flavour ne PGSQL %then %do;'; + put '%put %str(WAR)NING: &flavour is not supported;'; + put '%return;'; + put '%end;'; + put '/* create the inserts */'; + put '%do x=1 %to %sysfunc(countw(&memlist));'; + put '%let ds=%scan(&memlist,&x);'; + put '%mp_ds2inserts(&lib..&ds'; + put ',outref=&outref'; + put ',schema=&schema'; + put ',outds=&ds'; + put ',flavour=&flavour'; + put ',maxobs=&maxobs'; + put ',applydttm=&applydttm'; + put ')'; + put '%end;'; + put '%mend mp_lib2inserts;'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Exports the data controller library in DB specific DDL'; + put '@details If user is in the administrator group, they can call this'; + put 'service directly adding the following URL params:'; + put '@li &flavour= (only PGSQL supported at this time)'; + put '@li &schema= (optional, if target schema is needed)'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mp_abort.sas'; + put '@li mp_getddl.sas'; + put '@li mp_lib2inserts.sas'; + put '@li mp_streamfile.sas'; + put '@li mpe_getgroups.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global flavour schema;'; + put '/* if no flavour is specified, default to SAS */'; + put '%let flavour=%sysfunc(coalescec(&flavour,SAS));'; + put '/* if no schema var provided, DC Libref is used */'; + put '%let schema=%sysfunc(coalescec(&schema,&dc_libref));'; + put '/* check user is in admin group */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.usergroups)'; + put 'data work.admins;'; + put 'set work.usergroups;'; + put 'put (_all_)(=);'; + put 'run;'; + put '%let cnt=0;'; + put 'proc sql noprint;'; + put 'select count(*) into:cnt'; + put 'from usergroups'; + put 'where groupname="&mpeadmins";'; + put '%put &=cnt;'; + put '%mp_abort(iftrue= (&cnt=0)'; + put ',mac=&_program'; + put ',msg=%str(The &DC_LIBREF library can only be exported by &mpeadmins members)'; + put ')'; + put '%mp_getddl(&DC_LIBREF'; + put ',flavour=&flavour'; + put ',schema=&schema'; + put ',applydttm=YES'; + put ',fref=tmpref'; + put ')'; + put '%mp_lib2inserts(&DC_LIBREF,flavour=&flavour,schema=&schema, outref=tmpref)'; + put '%mp_streamfile(contenttype=TEXT'; + put ',inref=tmpref'; + put ',outname=&dc_libref..ddl'; + put ')'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=makedata; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mf_increment(macro_name,incr=1);'; + put '/* iterate the value */'; + put '%let ¯o_name=%eval(&&¯o_name+&incr);'; + put '/* return the value */'; + put '&&¯o_name'; + put '%mend mf_increment;'; + put '%macro mpe_makedata(lib=,mpeadmins=,path=);'; + put '%if &syscc ne 0 %then %do;'; + put '%put syscc=&syscc exiting &sysmacroname;'; + put '%return;'; + put '%end;'; + put 'proc sql;'; + put 'insert into &lib..mpe_alerts set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',alert_event=''*ALL*'''; + put ',alert_lib=''*ALL*'''; + put ',alert_ds=''*ALL*'''; + put ',alert_user="&sysuserid";'; + put 'insert into &lib..mpe_column_level_security set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',CLS_SCOPE=''EDIT'''; + put ',CLS_GROUP=''AllUsers'''; + put ',CLS_LIBREF="&lib"'; + put ',CLS_TABLE=''MPE_LOCKANYTABLE'''; + put ',CLS_VARIABLE_NM=''LOCK_STATUS_CD'''; + put ',CLS_ACTIVE=1'; + put ',CLS_HIDE=0;'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_EMAIL_ALERTS"'; + put ',var_value=''NO'''; + put ',var_active=1'; + put ',var_desc=''YES or NO to enable email alerts. Note - this requires email '''; + put '!!''options to be preconfigured! They can be configured in the '''; + put '!!''settings stp if needed.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_VIEWLIB_CHECK"'; + put ',var_value=''NO'''; + put ',var_active=1'; + put ',var_desc='; + put '''Set to YES to enable library validity checking in viewLibs service.'''; + put '!!'' Note: this can make the service very slow if there are lots of '''; + put '!!''external libraries. If enabled, this removes empty libraries from '''; + put '!!''the viewer library dropdown. To switch off, set to NO.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_MACROS"'; + put ',var_value=cats(symget(''path''),"/dc_macros")'; + put ',var_active=1'; + put ',var_desc=''Location of underlying macros - EUC feature.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_MAXOBS_WEBEDIT"'; + put ',var_value="100"'; + put ',var_active=1'; + put ',var_desc=''This sets the maximum number of observations that can be loaded'''; + put '!!'' into the browser for editing in the EDIT screen. A higher number'''; + put '!!'' will require a decent browser (ie, not IE) and more memory on the'''; + put '!!'' client side.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_RESTRICT_VIEWER"'; + put ',var_value="NO"'; + put ',var_active=1'; + put ',var_desc=''YES will restrict the list of libraries and tables in VIEWER to'''; + put '!!'' those explicitly set to VIEW in the MPE_SECURITY table. Default=NO.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_RESTRICT_EDITRECORD"'; + put ',var_value="NO"'; + put ',var_active=1'; + put ',var_desc=''Setting YES will prevent the EDIT RECORD dialog appearing in the'''; + put '!!'' EDIT screen by removing the "Edit Row" option in the right click menu'''; + put '!!'', and the "ADD RECORD" button in the bottom left. Default=NO.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC_CATALOG"'; + put ',var_name="DC_IGNORELIBS"'; + put ',var_value="|MAPSSAS|MAPS|"'; + put ',var_active=1'; + put ',var_desc=''Pipe seperated list of librefs (uppercase) to be ignored when'''; + put '!!'' running the Data Catalog refresh process. This can enable a clean'''; + put '!!'' run when invalid librefs are returned by the mpe_refreshlibs macro.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_LOCALE"'; + put ',var_value="SYSTEM"'; + put ',var_active=1'; + put ',var_desc=''Set to a locale (such as en_gb or en_be) to override the system'''; + put '!!'' value (which can be driven from the browser settings). This is '''; + put '!!''useful when importing ambiguous dates from CSV or Excel (eg 1/2/20 vs '''; + put '!!''2/1/20) as DC uses the anydtdtm informats for import. Default=SYSTEM.'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DCBL_REDSH"'; + put ',var_name="BULKLOAD"'; + put ',var_value="YES"'; + put ',var_active=0'; + put ',var_desc=''Set to YES to enable BULKLOAD=YES in redshift'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DCBL_REDSH"'; + put ',var_name="BL_BUCKET"'; + put ',var_value="''your-aws-bucket/Exchange''"'; + put ',var_active=0'; + put ',var_desc=''Set to the (quoted) value of the AWS bucket to'''; + put '!!'' use for s3 uploads in redshift'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DCBL_REDSH"'; + put ',var_name="BL_AWS_CREDENTIALS_FILE"'; + put ',var_value="''/path/to/your/aws/s3/.credentials''"'; + put ',var_active=0'; + put ',var_desc=''Set to the (quoted) value of the AWS creds file'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DCBL_REDSH"'; + put ',var_name="BL_REGION"'; + put ',var_value="''eu-west-1''"'; + put ',var_active=0'; + put ',var_desc=''Set to the (quoted) AWS region in use'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DCBL_REDSH"'; + put ',var_name="BL_COMPRESS"'; + put ',var_value="YES"'; + put ',var_active=0'; + put ',var_desc=''Set to YES to perform compression ahead of the COPY command'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DCBL_REDSH"'; + put ',var_name="BL_USE_SSL"'; + put ',var_value="YES"'; + put ',var_active=0'; + put ',var_desc=''Set to YES to use SSL encryption'';'; + put '%if &syssite=70221618 %then %do;'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_ACTIVATION_KEY"'; + put ',var_value="MIIGtwIBADANBgkqhkiG9w0BAQEFAASCBqEwggadAgEAAoIBcQDgvQiMeOR3AMX4I1hypexG7pEQp7anG7nhvUeiLvcW3O5rHqQ2CNYAgHa41zjE5b6o1M6"'; + put '!!"pgTUfg7/F37XwqFNaaRalvZ+hM7jv5LAn/dsGFu/TkInvnu4O6ti4JOgE1/KPD7ikcOLzSa7aph+yel5JCbMbyn1MXLHlKG88uIQq7K8xuJife3tHAdC3m1I4YHOgkxh"'; + put '!!"6OhZxv7janJwM6h/VORoVEYXQCtgaItpFjyn1b5USlk48YB8iqSPEO/KZdYeO6jiOIpA17Ryk7g989RR70qVH2JZKjvyl/FCGN2Bz8eR6+ZSQ5cRcZRE3CujFaM5sO6C"'; + put '!!"qVfJ9q1pqriTkrz7XedHlNKwl6BgJlk0GgsqYpp82qhVj8jrXjXb1iLITGpHokYQ74b0Qsu7GkdPwAA+64SqzWvE23zc1+iKjMWZIjQMIy4Pj55Z1ZI9Gv1qfatrdOcq"'; + put '!!"/gXU1hRTI9IiNTlO9UpI4hs7ea9YlEAfIUt25GwIDAQABAoIBcGMoFGMCHe9BmJdEZQxkl8yuCrQ6AzVU3t0yKa5toVhljw4VPWeX22/qPjeMwf/hzA7qoeoY14r5kr3"'; + put '!!"n1/sAEZLE5hingwxZaUHy+SQT9bSInzUNw0ZFrYxIYulQY0xryRoE2jc3lXK5MlxHSpnxMrNwA6YB3+m2xkiw3+9/C9Vyi1PZOgG3tiscqm2wKoU0TR/udrDK+0chy5o"'; + put '!!"s2g86p2Po51CfZBZoCnPxp7NkGKOxISlLxuYNlP5etKLeIshMd9Bq0Atab+J6dhznCniADAReYFssER4WHBwdmxVsRE9U0bH4uhOCXDUwhhOL5X82gW9TA9TPZk4bdoh"'; + put '!!"dgthMoKccYcth/hxPglJTngguoVGsu2XDuvmPPXtl/CRfFrtrWJWUHm408i+jt7+j7DfwtiCZsjKhDDlWJbeAYT+Ex3MtN5GZK8z6V+uUNQi7spDaNBIPTWXmiPwhIF/"'; + put '!!"fCOuY4FiUemB+RFJOnWofJqyMR9yRAoG5APeffJHX5N5XPJTXwwYoD7ZUHh8evgjQzrXDE/k8J0Z1K1G5zIzheZmwCWSt2KlcjNd94tu7CE0wljqxrE8P7VPQk3bcWZF"'; + put '!!"xC2BAuw4WYgnx2MNLC5PEKmbbNRlT10MnhzLjnYM/V7DMV4nu3XIHlybLDZDZm84hVbV58xDqxheLRVnK7r+Cip4KywuT5GsQ6Da8MKC0z7I2LgOAozvRA/hp1ILgv4q"'; + put '!!"mPhpNXXRGAcSPwT8yy+bd9DECgbkA6FdbcwoUUMkgqjdKrNNWgrRmTmUUMbFDnwxpI7hEAN9kKeBju2G7/A8BK8IPZeiDDsiqWZ8UKKN4/rAXLoZnjDAygLdFGqcLPMq"'; + put '!!"Dt8WOsp2tbEGyAujpKP+f9K158r70BIreNJ46iuoS+S3O2CziUJV1e2LPEl9sb7neAyDpxp8+LTuuLSuA3+htIGMbvZ8bgmC26a4AFt7bkHB/NY0mstx7D3pM9nTxIid"'; + put '!!"SNOjWHIAqPLia0FArCwKBuQDflMt/S/ZEo3P52M8osedt84m3A6UGhLL//wH72kqEHatdgWumELghAoeYtjeYxA4PTIUXbUrTl3ktydsREApz0TI08kSVRALHh+rdj2w"'; + put '!!"6Gnpj61CqvUaj1G2fTspgwkIautYv+XOOGRM5Ycnk+eGKj3DSRwmdFxAyacgEkFcITyHxL4Bevtm2VXx8Ga721S82rLkjgd6+xJjLZMz+Z300QSo2egO4ht4wFYa6Q7O"'; + put '!!"47SvJim39KI8hAoG5AKqFKr30oNJlus6ShADxnqWRByD0OGz8H5gEgMnRfD9ztMyzPh8RbOlijcZyx+BQVJeuGLBr+1yUFcI+tNTVmfueiAJF/7a+8JVuQFvI56EZ7mT"'; + put '!!"sllxiWnVXnyrxgvXwxaDr1oehtW+sub4dq5im4HaqKq4i570hQbGCJXoAVvMKfpSuH3hRXGV47VZ+xqZVttfqaXR52uDuMRECL6q67LMK9Fp4tTGQxET/vOrOFA6Y1eb"'; + put '!!"4yc6nd98CgbkAtZOgSsazcIWxTXxqgMFXa+G6YXDeqm6nqOiaR+rH4H1i1Vzl08966vfOM0kRWPB1OrvQKGxg8uYNfSo8ZqprPrUdUnA1BesJjQV0kj3KWW7i/Ir4R90"'; + put '!!"8NKEjyMn/+Vbi0i2ac1nSEm+2SydOonxSZixNzW2VevUuT5d4/i3UZo5fNXeCiBEzzJNw6MjYBxmMgcGWJvxMckpsGHGdQAj+hPkub8mHOZfaSmHfnxBvAFUdhLOasRj"'; + put '!!"deQ=="'; + put ',var_active=1;'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_name="DC_LICENCE_KEY"'; + put ',var_scope="DC"'; + put ',var_value="PEvKnV0EcmlJVrrx8JpXOc+/va+ksMzvkJBp05iVRtyl6xgFxhMAi+w4/7mHi4P2STbwV61mG2BGpBlO6qteDfZTmoROjRekcLw8wWxBMzghFwGvO93"'; + put '!!"taapBmpyXm3cv26iAc9Yq8yiXhOX7ZO7+7PXIoH9rqCT5ILrIY0vqVYnwx+AyjUI7FMsfAwKApCaTVXOca5My3att5yCg2fz+MQhCZbEK1tbubk9kAlaJJtlYzSj"'; + put '!!"J8ADuMR74rpGofk8YGOTegOjUGI+ENhkHW+ooh9fmNTkIilOBuNQ0irBvd49weejCDRtnX9/Twt8wv6r6QyYT31F5yuI2/G0NoHrjeWHjl5riD/q2NnC+aTXWVnV"'; + put '!!"QP+0+e1H0ohUZd9bAw0BE7bFWpcriYovIsu6VlhzpdqFRnUZ0ULw9CesQa6X2qIazT9V9jxfM1Of53kwIxKrb1LTEMcvxKtTh1jEW4nfvwBs4UJ1W7+5u0j1FfY3"'; + put '!!"FUtU="'; + put ',var_active=1;'; + put '%end;'; + put '%else %if &syssite=70253615 %then %do;'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_LICENCE_KEY"'; + put ',var_value=''4bfbZtsFbfGuqbZhJdAD8p8EbNmuxiaLaxMdTZPTJreRcfd0CYarXQoxCr3BMt6aWJjwFMvwG/7IXB6'''; + put '!!''nxT9X0HH4dvgykgzKmSCY5q2lwENoNrUhk'''; + put '!!''sF/iSvFuwKVuccW6NFKNahQhRBpfFBps6YrUzHG62yPrCzYDM0SFtS3EdeE6gijnhv4SGt+s77xutjitgdruRBg'''; + put '!!''Zyt3bzCWs0yNgt/KqLClVOktgJ3/FV8Im0v'''; + put '!!''nAhkUq0CwgQ698LO150RLF6j40E9md2WpNKuJeXKSl9+ejR+aln+COvS5iUVBX8UBVv5eviOOzu8hBI80HmMt'''; + put ',var_active=1'; + put ',var_desc=''Licence Key Placeholder for Data Controller Full Version'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_ACTIVATION_KEY"'; + put ',var_value=''MIIEcAIBADANBgkqhkiG9w0BAQEFAASCBFowggRWAgEAAoHxAOlGX2CSHJjb4isZWpcXWwjrVcQrgs'''; + put '!!''I6rAb7vN3c0TILF5+/Jmq2FcO02NUtYP7ai2puTv9PMvMKz3bxocvgIHiajAu1ZyK/r6IIcdgHbH'''; + put '!!''xeTXv82JhTT4PlP+4NXCK1oKgthSyt1jhz0wzD9YeGEkB5Mn4IRH+6WWzrVJIG+dm4wnUpi9ia3Px9ktPoNLFA'''; + put '!!''GBZopcTf7NM6O1WDQ5oaZG6r7y9G8jZWrgzTWyEiFpGytg3MCGJv7oW7YDk+2i/DKIuSZz6gc/BSSo'''; + put '!!''ZcQZDKToAU+gFQZqnimWGhtv6szjNrfjCJ23b++wlvQ1C6bJE47wIDAQABAoHwciGwq36BSFaYfu6+MFtIe'''; + put '!!''oItqbeCF8Z+AUKsYr5Vic78hXeP87jXyDNUvWQg50AE4xNKSka1Dk11OOQ6/ZVQPcGbkGT2K32ukC/ih0'''; + put '!!''gGj4jSDz4juM9WAZmp4C4gLIlBq9btp/D7dQ5SLZY4rFBv4KSLjDc+UGHazLmFQgikMC+CBukDrZ7IvpjreII'''; + put '!!''zVil18IyGnxuD22pFyY4pLG9nvrIsLhKAYaOQnRS29n34o6ZQ/tqCWJo3FaCCsXAa7zX9OEHh4lZNj5'''; + put '!!''XdzN/LexaAmki9ObfXtX4W2wcMrFPX0Rt0QDznDF/a4uGS9WpHPKCxAnkA9l9P+ZJwM0hin8+B5cOuyMga5N'''; + put '!!''DjMXI1vt2cpGzWUmtnFJcCNDX0nAHddWhmTXoKlCCyo1RzPHiWdO8LRhlnojptxcmhW1LfJLcn278NxD'''; + put '!!''h1dFxQB0j/o7w4Js2ih3HjwD0GpVLXPPr0O1GORodb0OuZ3hXCTDFRAnkA8mQI4OLTW+VI9c1OSi5JNmXrl+jRPC'''; + put '!!''BTPgjomGMAKCEvfLHfDjNQ/gN8asNo2uscgqWvGLEM83jxkpFhJ/lbcg02utPhVe4jOo+XSY3UEE'''; + put '!!''wq8oGpx1k9QgbrCfRivoDZpRk+SrqQmO4PHKnHTAdLVgDQnvbISjY/AnkAoZXblx0jN49HF/d6A572+Lq9'''; + put '!!''YMtb5uc4NsmUXgb//ihxAAEWsfWdS+CxRbrGNhRP8d0MLLFLryKL03+gjkZFQRI/QtS+Xm4Y6jSyEJ7awZ'''; + put '!!''Ih/sI4vr5y5Amjble6PElHDaM4w590iYsyOeGAheNrJbgQP6dXuq8xAnkAi9duz9/NNO1ZZIZoLp/5mSq/'''; + put '!!''+0pUvK2hmN6m4pPrWTucHAK6v4SXq5TzSN0oN3UBY9aW6FXtNOKH7Jl3Rgq02V4KP0tSa7MSHA0PqV3sBO'''; + put '!!''MMvBBWlS5FCzzWiU23UlUgPAIOUCrGlZRyn4TL+G8U5a9erPePolEdAnkAltgzR4wcAzwf0HGc2sOXDrdk'''; + put '!!''drjpEGPQONR72IGcC9rxLPTNFFW3xmLVy19oOikVluGTR7Pn5CmROxfXx5zT7fZHQXOM4uxA5soGs9jkQo'''; + put '!!''lVw/KnvUZLLiiDKG4X/FTCyEPGnZPs131ZkGhhr6EirtwkHyG2zbly'''; + put ',var_active=1'; + put ',var_desc=''Activation Key Placeholder for Data Controller Full Version'';'; + put '%end;'; + put '%else %do;'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_LICENCE_KEY"'; + put ',var_value='' '''; + put ',var_active=1'; + put ',var_desc=''Licence Key'';'; + put 'insert into &lib..mpe_config set'; + put 'tx_from=0'; + put ',tx_to=''31DEC9999:23:59:59''dt'; + put ',var_scope="DC"'; + put ',var_name="DC_ACTIVATION_KEY"'; + put ',var_value='' '''; + put ',var_active=1'; + put ',var_desc=''Activation Key'';'; + put '%end;'; + put 'insert into &lib..mpe_datadictionary set'; + put 'tx_from=0'; + put ',DD_TYPE=''LIBRARY'''; + put ',DD_SOURCE="&lib"'; + put ',DD_SHORTDESC="Data Controller Control Tables"'; + put ',DD_LONGDESC="# The Data Controller Library"'; + put ',DD_OWNER="&sysuserid"'; + put ',DD_RESPONSIBLE="&sysuserid"'; + put ',DD_SENSITIVITY="Low"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_datadictionary set'; + put 'tx_from=0'; + put ',DD_TYPE=''TABLE'''; + put ',DD_SOURCE="&lib..MPE_TABLES"'; + put ',DD_SHORTDESC="Configuration of new tables for Data Controller"'; + put ',DD_LONGDESC="# MPE_TABLES - adding new tabels to Data Controller"'; + put ',DD_OWNER="&sysuserid"'; + put ',DD_RESPONSIBLE="&sysuserid"'; + put ',DD_SENSITIVITY="Low"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_datadictionary set'; + put 'tx_from=0'; + put ',DD_TYPE=''COLUMN'''; + put ',DD_SOURCE="&lib..MPE_TABLES.DSN"'; + put ',DD_SHORTDESC="Dataset Name to be edited"'; + put ',DD_LONGDESC="_DSN_ - must be UPCASE"'; + put ',DD_OWNER="&sysuserid"'; + put ',DD_RESPONSIBLE="&sysuserid"'; + put ',DD_SENSITIVITY="Low"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_datadictionary set'; + put 'tx_from=0'; + put ',DD_TYPE=''DIRECTORY'''; + put ',DD_SOURCE="/some/directory"'; + put ',DD_SHORTDESC="Directory for some purpose"'; + put ',DD_LONGDESC="This directory is great. It''s great directory.'; + put 'It trumps all other directories."'; + put ',DD_OWNER="&sysuserid"'; + put ',DD_RESPONSIBLE="&sysuserid"'; + put ',DD_SENSITIVITY="Low"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_datadictionary set'; + put 'tx_from=0'; + put ',DD_TYPE=''TABLE'''; + put ',DD_SOURCE="&lib"'; + put ',DD_SHORTDESC="Transaction table for capturing Data Controller users"'; + put ',DD_LONGDESC="After a user accepts the Data Controller EULA they are "'; + put '!!"registered as a user in this table."'; + put ',DD_OWNER="&sysuserid"'; + put ',DD_RESPONSIBLE="&sysuserid"'; + put ',DD_SENSITIVITY="Low"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_datadictionary set'; + put 'tx_from=0'; + put ',DD_TYPE=''COLUMN'''; + put ',DD_SOURCE="&lib..MPE_CONFIG.VAR_ACTIVE"'; + put ',DD_SHORTDESC="Set to 1 to make an option active"'; + put ',DD_LONGDESC="This value is used as a filter by data controller whenever "'; + put '!!"querying for option settings."'; + put ',DD_OWNER="&sysuserid"'; + put ',DD_RESPONSIBLE="&sysuserid"'; + put ',DD_SENSITIVITY="Low"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put '/**'; + put '* MPE_GROUPS'; + put '*/'; + put 'insert into &lib..mpe_groups set'; + put 'tx_from=0'; + put ',group_name="dc-admin"'; + put ',group_desc="Custom Group for Data Controller Purposes"'; + put ',user_name="allbow"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_groups set'; + put 'tx_from=0'; + put ',group_name="dc-admin"'; + put ',group_desc="Custom Group for Data Controller Purposes"'; + put ',user_name="dctestuser1"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_groups set'; + put 'tx_from=0'; + put ',group_name="dc-admin"'; + put ',group_desc="Custom Group for Data Controller Purposes"'; + put ',user_name="mihmed"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_groups set'; + put 'tx_from=0'; + put ',group_name="sec-sas9-prd-ext-sasplatform-300115datacontroller"'; + put ',group_desc="Custom Group for Data Controller Purposes"'; + put ',user_name="DCTest"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put '/**'; + put '* MPE_ROW_LEVEL_SECURITY'; + put '*/'; + put 'insert into &lib..mpe_row_level_security set'; + put 'tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',RLS_RK=1'; + put ',RLS_SCOPE=''ALL'''; + put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; + put ',RLS_LIBREF="&lib."'; + put ',RLS_TABLE="MPE_GROUPS"'; + put ',RLS_GROUP_LOGIC=''AND'''; + put ',RLS_SUBGROUP_LOGIC=''OR'''; + put ',RLS_SUBGROUP_ID=0'; + put ',RLS_VARIABLE_NM=''GROUP_NAME'''; + put ',RLS_OPERATOR_NM=''NE'''; + put ',RLS_RAW_VALUE="''-1''"'; + put ',RLS_ACTIVE=1;'; + put 'insert into &lib..mpe_row_level_security set'; + put 'tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',RLS_RK=2'; + put ',RLS_SCOPE=''ALL'''; + put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; + put ',RLS_LIBREF="&lib"'; + put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; + put ',RLS_GROUP_LOGIC=''AND'''; + put ',RLS_SUBGROUP_LOGIC=''OR'''; + put ',RLS_SUBGROUP_ID=0'; + put ',RLS_VARIABLE_NM=''RLS_RK'''; + put ',RLS_OPERATOR_NM=''>'''; + put ',RLS_RAW_VALUE=''0'''; + put ',RLS_ACTIVE=1;'; + put 'insert into &lib..mpe_row_level_security set'; + put 'tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',RLS_RK=3'; + put ',RLS_SCOPE=''ALL'''; + put ',RLS_GROUP=''DC Demo Group'''; + put ',RLS_LIBREF="&lib"'; + put ',RLS_TABLE="MPE_SECURITY"'; + put ',RLS_GROUP_LOGIC=''AND'''; + put ',RLS_SUBGROUP_LOGIC=''OR'''; + put ',RLS_SUBGROUP_ID=0'; + put ',RLS_VARIABLE_NM=''ACCESS_LEVEL'''; + put ',RLS_OPERATOR_NM=''NE'''; + put ',RLS_RAW_VALUE="''N/A''"'; + put ',RLS_ACTIVE=1;'; + put '/**'; + put '* MPE_SECURITY'; + put '*/'; + put 'insert into &lib..mpe_security set'; + put 'tx_from=0'; + put ',libref="*ALL*"'; + put ',dsn="*ALL*"'; + put ',access_level="APPROVE"'; + put ',sas_group="sec-sas9-prd-int-sasplatform-300114sasjs"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_security set'; + put 'tx_from=0'; + put ',libref="*ALL*"'; + put ',dsn="*ALL*"'; + put ',access_level="EDIT"'; + put ',sas_group="sec-sas9-prd-int-sasplatform-300114sasjs"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_security set'; + put 'tx_from=0'; + put ',libref="*ALL*"'; + put ',dsn="*ALL*"'; + put ',access_level="APPROVE"'; + put ',sas_group="sec-sas9-prd-ext-sasplatform-300114sasjs"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_security set'; + put 'tx_from=0'; + put ',libref="*ALL*"'; + put ',dsn="*ALL*"'; + put ',access_level="EDIT"'; + put ',sas_group="sec-sas9-prd-ext-sasplatform-300114sasjs"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_security set'; + put 'tx_from=0'; + put ',libref="*ALL*"'; + put ',dsn="*ALL*"'; + put ',access_level="EDIT"'; + put ',sas_group="dc-admin"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_security set'; + put 'tx_from=0'; + put ',libref="*ALL*"'; + put ',dsn="*ALL*"'; + put ',access_level="APPROVE"'; + put ',sas_group="dc-admin"'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put '/* mpe_selectbox */'; + put '%let rk=1;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=&rk'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_LOCKANYTABLE"'; + put ',base_column="LOCK_STATUS_CD"'; + put ',selectbox_value=''LOCKED'''; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_LOCKANYTABLE"'; + put ',base_column="LOCK_STATUS_CD"'; + put ',selectbox_value=''UNLOCKED'''; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="ACCESS_LEVEL"'; + put ',selectbox_value=''EDIT'''; + put ',selectbox_order=0'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="ACCESS_LEVEL"'; + put ',selectbox_value=''APPROVE'''; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="ACCESS_LEVEL"'; + put ',selectbox_value=''VIEW'''; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="ACCESS_LEVEL"'; + put ',selectbox_value=''SIGNOFF'''; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_TABLES"'; + put ',base_column="LOADTYPE"'; + put ',selectbox_value=''UPDATE'''; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_TABLES"'; + put ',base_column="LOADTYPE"'; + put ',selectbox_value=''REPLACE'''; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_TABLES"'; + put ',base_column="LOADTYPE"'; + put ',selectbox_value=''TXTEMPORAL'''; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_TABLES"'; + put ',base_column="LOADTYPE"'; + put ',selectbox_value=''BITEMPORAL'''; + put ',selectbox_order=4'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_TABLES"'; + put ',base_column="LOADTYPE"'; + put ',selectbox_value=''FORMAT_CAT'''; + put ',selectbox_order=5'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ALERTS"'; + put ',base_column="ALERT_EVENT"'; + put ',selectbox_value=''*ALL*'''; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ALERTS"'; + put ',base_column="ALERT_EVENT"'; + put ',selectbox_value=''SUBMITTED'''; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ALERTS"'; + put ',base_column="ALERT_EVENT"'; + put ',selectbox_value=''APPROVED'''; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ALERTS"'; + put ',base_column="ALERT_EVENT"'; + put ',selectbox_value=''REJECTED'''; + put ',selectbox_order=4'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_X_TEST"'; + put ',base_column="SOME_DROPDOWN"'; + put ',selectbox_value=''Option 1'''; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_X_TEST"'; + put ',base_column="SOME_DROPDOWN"'; + put ',selectbox_value=''Option 2'''; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_X_TEST"'; + put ',base_column="SOME_DROPDOWN"'; + put ',selectbox_value=''Option 3'''; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_X_TEST"'; + put ',base_column="SOME_DROPDOWN"'; + put ',selectbox_value="This is a long option. This option is very long. "'; + put '!!"It is optional, though."'; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="CASE"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="MINVAL"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="MAXVAL"'; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="HARDSELECT"'; + put ',selectbox_order=4'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="SOFTSELECT"'; + put ',selectbox_order=5'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="NOTNULL"'; + put ',selectbox_order=6'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="DSN"'; + put ',selectbox_value="SOME_DATASET"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="DSN"'; + put ',selectbox_value="EXAMPLE"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_DATADICTIONARY"'; + put ',base_column="DD_TYPE"'; + put ',selectbox_value="COLUMN"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_DATADICTIONARY"'; + put ',base_column="DD_TYPE"'; + put ',selectbox_value="TABLE"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_DATADICTIONARY"'; + put ',base_column="DD_TYPE"'; + put ',selectbox_value="LIBRARY"'; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_DATADICTIONARY"'; + put ',base_column="DD_TYPE"'; + put ',selectbox_value="CATALOG"'; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_DATADICTIONARY"'; + put ',base_column="DD_TYPE"'; + put ',selectbox_value="FORMAT"'; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="LIBREF"'; + put ',selectbox_value=''*ALL*'''; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_SECURITY"'; + put ',base_column="ACCESS_LEVEL"'; + put ',selectbox_value=''AUDIT'''; + put ',selectbox_order=4'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="HARDSELECT_HOOK"'; + put ',selectbox_order=7'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_VALIDATIONS"'; + put ',base_column="RULE_TYPE"'; + put ',selectbox_value="SOFTSELECT_HOOK"'; + put ',selectbox_order=7'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_SCOPE"'; + put ',selectbox_value="ALL"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_SCOPE"'; + put ',selectbox_value="EDIT"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_SCOPE"'; + put ',selectbox_value="VIEW"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_GROUP_LOGIC"'; + put ',selectbox_value="AND"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_GROUP_LOGIC"'; + put ',selectbox_value="OR"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_SUBGROUP_LOGIC"'; + put ',selectbox_value="AND"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_SUBGROUP_LOGIC"'; + put ',selectbox_value="OR"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="="'; + put ',selectbox_order=0'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value=">"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="<"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="<="'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value=">="'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="BETWEEN"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="IN"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="NOT IN"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="NE"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_OPERATOR_NM"'; + put ',selectbox_value="CONTAINS"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_EXCEL_CONFIG"'; + put ',base_column="XL_RULE"'; + put ',selectbox_value="FORMULA"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_ACTIVE"'; + put ',selectbox_value="1"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_column="RLS_ACTIVE"'; + put ',selectbox_value="0"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_ACTIVE"'; + put ',selectbox_value="1"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_ACTIVE"'; + put ',selectbox_value="0"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_SCOPE"'; + put ',selectbox_value="EDIT"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_SCOPE"'; + put ',selectbox_value="VIEW"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_SCOPE"'; + put ',selectbox_value="ALL"'; + put ',selectbox_order=3'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_HIDE"'; + put ',selectbox_value="0"'; + put ',selectbox_order=1'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..mpe_selectbox set'; + put 'selectbox_rk=%mf_increment(rk)'; + put ',ver_from_dttm=0'; + put ',select_lib="&lib"'; + put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_column="CLS_HIDE"'; + put ',selectbox_value="1"'; + put ',selectbox_order=2'; + put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; + put '/**'; + put '* MPE_TABLES'; + put '*/'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_COLUMN_LEVEL_SECURITY'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ',buskey=''CLS_SCOPE CLS_GROUP CLS_LIBREF CLS_TABLE CLS_VARIABLE_NM'''; + put ',notes=''Docs: https://docs.datacontroller.io/column-level-security'''; + put ',post_edit_hook=''services/hooks/mpe_column_level_security_postedit'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_LOCKANYTABLE'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''UPDATE'''; + put ',buskey=''LOCK_LIB LOCK_DS'''; + put ',notes=''This table may be edited when a process failed and left a lock'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_TABLES'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''LIBREF DSN'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ',notes=''This entry allows the MP Editor to edit itself!'''; + put ',post_edit_hook=''services/hooks/mpe_tables_postedit'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_SECURITY'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''LIBREF DSN ACCESS_LEVEL SAS_GROUP'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ',notes=''Shows which metadata groups can edit which tables'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_SELECTBOX'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''SELECTBOX_RK'''; + put ',var_txfrom=''VER_FROM_DTTM'''; + put ',var_txto=''VER_TO_DTTM'''; + put ',notes=''Can configure dropdowns for the front end'''; + put ',rk_underlying=''SELECT_LIB SELECT_DS BASE_COLUMN SELECTBOX_VALUE'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_X_TEST'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''UPDATE'''; + put ',buskey=''PRIMARY_KEY_FIELD'''; + put ',notes=''Test table for controller'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_EMAILS'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''USER_NAME'''; + put ',notes=''Primary Emails Table (backup is metadata)'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_CONFIG'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''VAR_SCOPE VAR_NAME'''; + put ',notes=''Configuration variables for Data Controller'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_ALERTS'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''ALERT_EVENT ALERT_LIB ALERT_DS ALERT_USER'''; + put ',notes=''Configuration for alert email events'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_GROUPS'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''GROUP_NAME USER_NAME'''; + put ',notes=''Configuration for additional groups within Data Controller'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_VALIDATIONS'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''BASE_LIB BASE_DS BASE_COL RULE_TYPE'''; + put ',notes=''Configuration of data quality rules in Editor component'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ',post_edit_hook=''services/hooks/mpe_validations_postedit'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_DATADICTIONARY'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''DD_TYPE DD_SOURCE'''; + put ',notes=''Configuration of data dictionary'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_EXCEL_CONFIG'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''XL_LIBREF XL_TABLE XL_COLUMN'''; + put ',notes=''Configuration of the excel import rules'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ';'; + put 'insert into &lib..mpe_tables'; + put 'set tx_from=0'; + put ',tx_to=''31DEC5999:23:59:59''dt'; + put ',libref="&lib"'; + put ',dsn=''MPE_ROW_LEVEL_SECURITY'''; + put ',num_of_approvals_required=1'; + put ',loadtype=''TXTEMPORAL'''; + put ',buskey=''RLS_RK'''; + put ',notes=''Configuration of Row Level Security'''; + put ',var_txfrom=''TX_FROM'''; + put ',var_txto=''TX_TO'''; + put ',rk_underlying=''RLS_SCOPE RLS_GROUP RLS_LIBREF RLS_TABLE RLS_GROUP_LOGIC '''; + put '!!''RLS_SUBGROUP_LOGIC RLS_SUBGROUP_ID RLS_VARIABLE_NM RLS_OPERATOR_NM '''; + put '!!''RLS_RAW_VALUE '''; + put ',post_edit_hook=''services/hooks/mpe_row_level_security_postedit'''; + put ';'; + put '/* mpe_validations */'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_SCOPE"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_LIBREF"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_LIBREF"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/libraries_all"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_TABLE"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_TABLE"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/tables_all"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_VARIABLE_NM"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_VARIABLE_NM"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_ACTIVE"'; + put ',rule_type=''MAXVAL'''; + put ',rule_value=''1'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_HIDE"'; + put ',rule_type=''MAXVAL'''; + put ',rule_value=''1'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; + put ',base_col="CLS_GROUP"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/sas_groups"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_ALERTS"'; + put ',base_col="ALERT_LIB"'; + put ',rule_type=''HARDSELECT_HOOK'''; + put ',rule_value="services/validations/mpe_alerts.alert_lib"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="LIBREF"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="DSN"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="LIBREF"'; + put ',rule_type=''NOTNULL'''; + put ',rule_value='' '''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="DSN"'; + put ',rule_type=''NOTNULL'''; + put ',rule_value='' '''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="NUM_OF_APPROVALS_REQUIRED"'; + put ',rule_type=''MINVAL'''; + put ',rule_value=''1'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="BUSKEY"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="BUSKEY"'; + put ',rule_type=''NOTNULL'''; + put ',rule_value=" "'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_TXFROM"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_TXTO"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_BUSFROM"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_BUSTO"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_PROCESSED"'; + put ',rule_type=''CASE'''; + put ',rule_value=''UPCASE'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_SECURITY"'; + put ',base_col="LIBREF"'; + put ',rule_type=''HARDSELECT'''; + put ',rule_value="&lib..MPE_TABLES.LIBREF"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_SECURITY"'; + put ',base_col="DSN"'; + put ',rule_type=''SOFTSELECT'''; + put ',rule_value="&lib..MPE_TABLES.DSN"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_SECURITY"'; + put ',base_col="SAS_GROUP"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/sas_groups"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_VALIDATIONS"'; + put ',base_col="BASE_LIB"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/libraries_editable"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_VALIDATIONS"'; + put ',base_col="BASE_DS"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/tables_editable"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_VALIDATIONS"'; + put ',base_col="BASE_COL"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_VALIDATIONS"'; + put ',base_col="RULE_ACTIVE"'; + put ',rule_type=''MINVAL'''; + put ',rule_value="0"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_VALIDATIONS"'; + put ',base_col="RULE_ACTIVE"'; + put ',rule_type=''MAXVAL'''; + put ',rule_value="1"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_EXCEL_CONFIG"'; + put ',base_col="XL_LIBREF"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/libraries_editable"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_EXCEL_CONFIG"'; + put ',base_col="XL_TABLE"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/tables_editable"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_EXCEL_CONFIG"'; + put ',base_col="XL_COLUMN"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="LIBREF"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/libraries_all"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="DSN"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/mpe_tables.dsn"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_TXFROM"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_TXTO"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_BUSFROM"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_BUSTO"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_TABLES"'; + put ',base_col="VAR_PROCESSED"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_SELECTBOX"'; + put ',base_col="SELECT_LIB"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/libraries_editable"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_SELECTBOX"'; + put ',base_col="SELECT_DS"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/tables_editable"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_SELECTBOX"'; + put ',base_col="BASE_COLUMN"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_col="RLS_GROUP"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/sas_groups"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_col="RLS_LIBREF"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/libraries_all"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_col="RLS_TABLE"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/tables_all"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_col="RLS_SUBGROUP_ID"'; + put ',rule_type=''MINVAL'''; + put ',rule_value=''0'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; + put ',base_col="RLS_VARIABLE_NM"'; + put ',rule_type=''SOFTSELECT_HOOK'''; + put ',rule_value="services/validations/columns_in_libds"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_X_TEST"'; + put ',base_col="SOME_NUM"'; + put ',rule_type=''HARDSELECT_HOOK'''; + put ',rule_value="services/validations/mpe_x_test.some_num"'; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_EXCEL_CONFIG"'; + put ',base_col="XL_ACTIVE"'; + put ',rule_type=''MINVAL'''; + put ',rule_value=''0'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put 'insert into &lib..MPE_VALIDATIONS set'; + put 'tx_from=0'; + put ',base_lib="&lib"'; + put ',base_ds="MPE_EXCEL_CONFIG"'; + put ',base_col="XL_ACTIVE"'; + put ',rule_type=''MAXVAL'''; + put ',rule_value=''1'''; + put ',rule_active=1'; + put ',tx_to=''31DEC5999:23:59:59''dt;'; + put '/**'; + put '* MPE_X_TEST'; + put '*/'; + put 'insert into &lib..mpe_x_test'; + put 'set primary_key_field=0'; + put ',some_char=''this is dummy data'''; + put ',some_dropdown=''Option 1'''; + put ',some_num=42'; + put ',some_date=42'; + put ',some_datetime=42'; + put ',some_time=42'; + put ',some_shortnum=3'; + put ',some_bestnum=44;'; + put 'insert into &lib..mpe_x_test'; + put 'set primary_key_field=1'; + put ',some_char=''more dummy data'''; + put ',some_dropdown=''Option 2'''; + put ',some_num=42'; + put ',some_date=42'; + put ',some_datetime=42'; + put ',some_time=422'; + put ',some_shortnum=3'; + put ',some_bestnum=44;'; + put 'insert into &lib..mpe_x_test'; + put 'set primary_key_field=2'; + put ',some_char=''even more dummy data'''; + put ',some_dropdown=''Option 3'''; + put ',some_num=42'; + put ',some_date=42'; + put ',some_datetime=42'; + put ',some_time=142'; + put ',some_shortnum=3'; + put ',some_bestnum=44;'; + put 'insert into &lib..mpe_x_test'; + put 'set primary_key_field=3'; + put ',some_char=repeat(''It was a dark and stormy night. The wind was blowing'''; + put '!!'' a gale! The captain said to his mate - mate, tell us a tale. And'''; + put '!!'' this, is the tale he told: '',3)'; + put ',some_dropdown=''Option 2'''; + put ',some_num=1613.001'; + put ',some_date=423'; + put ',some_datetime=423'; + put ',some_time=44'; + put ',some_shortnum=3'; + put ',some_bestnum=44;'; + put 'insert into &lib..mpe_x_test'; + put 'set primary_key_field=4'; + put ',some_char=''if you can fill the unforgiving minute'''; + put ',some_dropdown=''Option 1'''; + put ',some_num=1613.001123456'; + put ',some_date=4231'; + put ',some_datetime=423123123'; + put ',some_time=412'; + put ',some_shortnum=3'; + put ',some_bestnum=44;'; + put '%do x=10 %to 500;'; + put 'insert into &lib..mpe_x_test'; + put 'set primary_key_field=10&x'; + put ',some_char="&x bottles of beer on the wall"'; + put ',some_dropdown=''Option 1'''; + put ',some_num=ranuni(0)'; + put ',some_date=round(ranuni(0)*1000,1)'; + put ',some_datetime=round(ranuni(0)*50000,1)'; + put ',some_time=round(ranuni(0)*100,1)'; + put ',some_shortnum=round(ranuni(0)*100,1)'; + put ',some_bestnum=round(ranuni(0)*100,1);'; + put '%end;'; + put '%mend mpe_makedata;'; + put '/** @cond */'; + put '%macro mf_existfeature(feature'; + put ')/*/STORE SOURCE*/;'; + put '%let feature=%upcase(&feature);'; + put '%local platform;'; + put '%let platform=%mf_getplatform();'; + put '%if &feature= %then %do;'; + put '%put No feature was requested for detection;'; + put '%end;'; + put '%else %if &feature=COLCONSTRAINTS %then %do;'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=PROCLUA %then %do;'; + put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; + put '%if &platform=SASVIYA %then 1;'; + put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; + put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=DBMS_MEMTYPE %then %do;'; + put '/* does dbms_memtype exist in dictionary.tables? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=EXPORTXLS %then %do;'; + put '/* is it possible to PROC EXPORT an excel file? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; + put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; + put '%else 0;'; + put '%end;'; + put '%else %do;'; + put '-1'; + put '%put &sysmacroname: &feature not found;'; + put '%end;'; + put '%mend mf_existfeature;'; + put '/** @endcond */'; + put '%macro mpe_makedatamodel(lib=);'; + put '%if &syscc ne 0 %then %do;'; + put '%put syscc=&syscc exiting &sysmacroname;'; + put '%return;'; + put '%end;'; + put '%local notnull;'; + put '%if %mf_existfeature(COLCONSTRAINTS)=1 %then %let notnull=not null;'; + put '%put &=notnull;'; + put 'proc sql;'; + put 'create table &lib..mpe_alerts('; + put 'tx_from num format=datetime19.3,'; + put 'alert_event char(20),'; + put 'alert_lib char(8),'; + put 'alert_ds char(32),'; + put 'alert_user char(100) ,'; + put 'tx_to num ¬null format=datetime19.3'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_alerts;'; + put 'index create'; + put 'pk_mpealerts=(tx_from alert_event alert_lib alert_ds alert_user)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_audit('; + put 'load_ref char(36) label=''unique load reference'','; + put 'libref char(8) label=''Library Reference (8 chars)'','; + put 'dsn char(32) label=''Dataset Name (32 chars)'','; + put 'key_hash char(32) label='; + put '''MD5 Hash of primary key values (pipe seperated)'','; + put 'tgtvar_nm char(32) label=''Target variable name (32 chars)'','; + put 'move_type char(1) label=''Either (A)ppended, (D)eleted or (M)odified'','; + put 'processed_dttm num format=E8601DT26.6 label=''Processed at timestamp'','; + put 'is_pk num label=''Is Primary Key Field? (1/0)'','; + put 'is_diff num label='; + put '''Did value change? (1/0/-1). Always -1 for appends and deletes.'','; + put 'tgtvar_type char(1) label=''Either (C)haracter or (N)umeric'','; + put 'oldval_num num format=best32. label=''Old (numeric) value'','; + put 'newval_num num format=best32. label=''New (numeric) value'','; + put 'oldval_char char(32765) label=''Old (character) value'','; + put 'newval_char char(32765) label=''New (character) value'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_audit;'; + put 'index create'; + put 'pk_mpe_audit=(load_ref libref dsn key_hash tgtvar_nm)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_column_level_security('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'CLS_SCOPE char(4) ¬null,'; + put 'CLS_GROUP char(64) ¬null,'; + put 'CLS_LIBREF char(8) ¬null,'; + put 'CLS_TABLE char(32) ¬null,'; + put 'CLS_VARIABLE_NM char(32) ¬null,'; + put 'CLS_ACTIVE num ¬null,'; + put 'CLS_HIDE num'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_column_level_security;'; + put 'index create'; + put 'pk_mpe_column_level_security='; + put '(tx_to CLS_SCOPE CLS_GROUP CLS_LIBREF CLS_TABLE CLS_VARIABLE_NM)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_config('; + put 'tx_from num ¬null format=datetime19.3'; + put ',tx_to num ¬null format=datetime19.3'; + put ',var_scope varchar(10) ¬null'; + put ',var_name varchar(32) ¬null'; + put ',var_value varchar(5000)'; + put ',var_active num'; + put ',var_desc varchar(300)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_config;'; + put 'index create'; + put 'pk_mpe_config=(tx_to var_scope var_name)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_datacatalog_libs('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'TX_TO num ¬null format=datetime19.3,'; + put 'libref char(8) label=''Library Ref'','; + put 'engine char(32) label=''Library Engine'','; + put 'libname char(256) format=$256. label=''Library Name'','; + put 'paths char(8192) label=''Library Paths'','; + put 'perms char(500) label=''Library Permissions (if BASE)'','; + put 'owners char(500) label=''Library Owners (if BASE)'','; + put 'schemas char(500) label=''Library Schemas (if DB)'','; + put 'libid char(17) label=''LibraryId'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_datacatalog_libs;'; + put 'index create'; + put 'pk_mpe_datacatalog_libs=(libref tx_to)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_datacatalog_TABS('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'TX_TO num ¬null format=datetime19.3,'; + put 'libref char(8) label=''Library Name'','; + put 'dsn char(64) label=''Member Name'','; + put 'memtype char(8) label=''Member Type'','; + put 'dbms_memtype char(32) label=''DBMS Member Type'','; + put 'memlabel char(512) label=''Data Set Label'','; + put 'typemem char(8) label=''Data Set Type'','; + put 'nvar num label=''Number of Variables'','; + put 'compress char(8) label=''Compression Routine'','; + put 'pk_fields char(512)'; + put 'label=''Primary Key Fields (identified by being in a constraint that is both Unique and Not Null)'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_datacatalog_TABS;'; + put 'index create'; + put 'pk_mpe_datacatalog_TABS=(libref dsn tx_to)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_datacatalog_vars('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'TX_TO num ¬null format=datetime19.3,'; + put 'libref char(8) label=''Library Name'','; + put 'dsn char(64) label=''Table Name'','; + put 'name char(64) label=''Column Name'','; + put 'memtype char(8) label=''Member Type'','; + put 'type char(16) label=''Column Type'','; + put 'length num label=''Column Length'','; + put 'varnum num label=''Column Number in Table'','; + put 'label char(512) label=''Column Label'','; + put 'format char(49) label=''Column Format'','; + put 'idxusage char(9) label=''Column Index Type'','; + put 'notnull char(3) label=''Not NULL?'','; + put 'pk_ind num label=''Primary Key Indicator (1=Primary Key field)'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_datacatalog_vars;'; + put 'index create'; + put 'pk_mpe_datacatalog_vars=(libref dsn name tx_to)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_datastatus_libs('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'TX_TO num ¬null format=datetime19.3,'; + put 'libref char(8) label=''Library Name'','; + put 'libsize num format=SIZEKMG. label=''Size of library'','; + put 'table_cnt num label=''Number of Tables'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_datastatus_libs;'; + put 'index create'; + put 'pk_mpe_datastatus_libs=(libref tx_to)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_datastatus_tabs('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'TX_TO num ¬null format=datetime19.3,'; + put 'libref char(8) label=''Library Name'','; + put 'dsn char(64) label=''Member Name'','; + put 'filesize num format=SIZEKMG. label=''Size of file'','; + put 'crdate num format=DATETIME. informat=DATETIME. label=''Date Created'','; + put 'modate num format=DATETIME. informat=DATETIME. label=''Date Modified'','; + put 'nobs num label=''Number of Physical (Actual, inc. deleted) Observations'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_datastatus_tabs;'; + put 'index create'; + put 'pk_mpe_datastatus_tabs=(libref dsn tx_to)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_datadictionary'; + put '('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'TX_TO num ¬null format=datetime19.3,'; + put 'DD_TYPE char(16),'; + put 'DD_SOURCE char(1024),'; + put 'DD_SHORTDESC char(256),'; + put 'DD_LONGDESC char(32767),'; + put 'DD_OWNER char(128),'; + put 'DD_RESPONSIBLE char(128),'; + put 'DD_SENSITIVITY char(64)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_datadictionary;'; + put 'index create'; + put 'pk_mpe_datadictionary=(tx_to dd_type dd_source)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_dataloads('; + put 'libref varchar(8) ¬null,'; + put 'dsn varchar(32) ¬null,'; + put 'etlsource varchar(100) ¬null,'; + put 'loadtype varchar(20) ¬null,'; + put 'changed_records int,'; + put 'new_records int,'; + put 'deleted_records int,'; + put 'duration num,'; + put 'user_nm varchar(50) ¬null,'; + put 'processed_dttm num format=datetime19.3,'; + put 'mac_ver varchar(5)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_dataloads;'; + put 'index create'; + put 'pk_mpe_dataloads=(processed_dttm libref dsn etlsource)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_emails('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'user_name char(50) ¬null,'; + put 'user_displayname char(100),'; + put 'user_email char(100) ¬null'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_emails;'; + put 'index create'; + put 'pk_mpe_emails=(tx_to user_name)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_excel_config('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'xl_libref char(8),'; + put 'xl_table char(32),'; + put 'xl_column char(32),'; + put 'xl_rule char(32),'; + put 'xl_active num'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_excel_config;'; + put 'index create'; + put 'pk_mpe_excel_config=(tx_to xl_libref xl_table xl_column)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_filteranytable('; + put 'filter_rk num ¬null,'; + put 'filter_hash char(32) ¬null,'; + put 'filter_table char(41) ¬null,'; + put 'processed_dttm num ¬null format=datetime19.'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_filteranytable;'; + put 'index create filter_rk /nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_filtersource('; + put 'filter_hash char(32) ¬null,'; + put 'filter_line num ¬null,'; + put 'group_logic char(3) ¬null,'; + put 'subgroup_logic char(3) ¬null,'; + put 'subgroup_id num ¬null,'; + put 'variable_nm varchar(32) ¬null,'; + put 'operator_nm varchar(12) ¬null,'; + put 'raw_value varchar(4000) ¬null,'; + put 'processed_dttm num ¬null format=datetime19.'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_filtersource;'; + put 'index create'; + put 'pk_mpe_filtersource=(filter_hash filter_line)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_groups('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'group_name char(100) ¬null,'; + put 'user_name char(50) ¬null,'; + put 'group_desc char(256)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_groups;'; + put 'index create'; + put 'pk_mpe_groups=(tx_to group_name user_name)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_lineage_cols'; + put '('; + put 'col_id char(32),'; + put 'direction char(1),'; + put 'sourcecoluri char(256),'; + put 'map_type char(256),'; + put 'map_transform char(256),'; + put 'jobname char(256),'; + put 'sourcetablename char(256),'; + put 'sourcecolname char(256),'; + put 'targettablename char(256),'; + put 'targetcolname char(256),'; + put 'targetcoluri char(256),'; + put 'Derived_Rule char(500),'; + put 'level int,'; + put 'modified_dttm num format=datetime19.3,'; + put 'modified_by char(64)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_lineage_cols;'; + put 'index create'; + put 'pk_mpe_lineage_cols=(col_id direction sourcecoluri targetcoluri map_type map_transform)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..MPE_LINEAGE_TABS'; + put '('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'jobid char(17),'; + put 'srctableid char(17),'; + put 'tgttableid char(17),'; + put 'jobname char(128),'; + put 'srctabletype char(16),'; + put 'srctablename char(64),'; + put 'srclibref char(8),'; + put 'tgttabletype char(16),'; + put 'tgttablename char(64),'; + put 'tgtlibref char(8),'; + put 'tx_to num ¬null format=datetime19.3'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_lineage_tabs;'; + put 'index create'; + put 'pk_mpe_lineage_tabs=(tx_to jobid srctableid tgttableid)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_loads('; + put 'csv_dir char(255),'; + put 'user_nm char(50) ,'; + put 'status char(15) ,'; + put 'duration num ,'; + put 'processed_dttm num format=datetime19.3,'; + put 'reason_txt char(2048) ,'; + put 'approvals char(64)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_loads;'; + put 'index create csv_dir /nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_lockanytable('; + put 'lock_lib varchar(8) ¬null ,'; + put 'lock_ds varchar(32) ¬null,'; + put 'lock_status_cd varchar(10) ¬null,'; + put 'lock_user_nm varchar(100) ¬null ,'; + put 'lock_ref varchar(200),'; + put 'lock_pid varchar(10),'; + put 'lock_start_dttm num format=E8601DT26.6,'; + put 'lock_end_dttm num format=E8601DT26.6'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_lockanytable;'; + put 'index create'; + put 'pk_mpe_lockanytable=(lock_lib lock_ds)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_maxkeyvalues('; + put 'keytable varchar(41) label=''Base table in libref.dataset format'','; + put 'keycolumn char(32) format=$32.'; + put 'label=''The Surrogate / Retained key field containing the key values.'','; + put 'max_key num label='; + put '''Integer value representing current max RK or SK value in the KEYTABLE'','; + put 'processed_dttm num format=E8601DT26.6'; + put 'label=''Datetime this value was last updated'''; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_maxkeyvalues;'; + put 'index create keytable /nomiss unique;'; + put 'quit;'; + put '/* no PK defined as it is a transaction table */'; + put 'proc sql;'; + put 'create table &lib..mpe_requests('; + put 'request_dttm num ¬null format=datetime19.,'; + put 'request_user char(64) ¬null,'; + put 'request_service char(64) ¬null,'; + put 'request_params char(128)'; + put ');'; + put 'proc sql;'; + put 'create table &lib..mpe_review('; + put 'table_id varchar(32) ¬null,'; + put 'reviewed_by_nm varchar(100) ¬null,'; + put 'base_table varchar(41) ¬null,'; + put 'review_status_id varchar(10) ¬null,'; + put 'reviewed_on_dttm num ¬null format=datetime19.3,'; + put 'review_reason_txt varchar(400)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_review;'; + put 'index create'; + put 'pk_mpe_review=(table_id reviewed_by_nm)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_row_level_security('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'RLS_RK num ¬null,'; + put 'RLS_SCOPE char(8) ¬null,'; + put 'RLS_GROUP char(128) ¬null,'; + put 'RLS_LIBREF char(8) ¬null,'; + put 'RLS_TABLE char(32) ¬null,'; + put 'RLS_GROUP_LOGIC char(3) ¬null,'; + put 'RLS_SUBGROUP_LOGIC char(3) ¬null,'; + put 'RLS_SUBGROUP_ID num ¬null,'; + put 'RLS_VARIABLE_NM varchar(32) ¬null,'; + put 'RLS_OPERATOR_NM varchar(12) ¬null,'; + put 'RLS_RAW_VALUE varchar(4000) ¬null,'; + put 'RLS_ACTIVE num ¬null'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_row_level_security;'; + put 'index create'; + put 'pk_mpe_row_level_security=(tx_to RLS_RK)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_security('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'libref char(8) ¬null,'; + put 'dsn char(32) ¬null,'; + put 'access_level char(10) ¬null,'; + put 'sas_group char(100) ¬null'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_security;'; + put 'index create'; + put 'pk_mpe_security=(tx_to libref dsn access_level sas_group)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_selectbox('; + put 'ver_from_dttm num ¬null format=datetime19.3,/* timestamp for versioning*/'; + put 'ver_to_dttm num ¬null format=datetime19.3, /* timestamp for versioning */'; + put 'selectbox_rk num ¬null, /* surrogate key */'; + put 'select_lib varchar(17) ¬null, /* libref (big enough for uri)*/'; + put 'select_ds varchar(32) ¬null,'; + put 'base_column varchar(36) ¬null, /* variable name against which to apply selectbox */'; + put 'selectbox_value varchar(500) ¬null, /* selectbox value */'; + put 'selectbox_order num , /* optional ordering (1 comes before 2) */'; + put 'selectbox_type varchar(32) /* column type (blank for default, else'; + put 'sas or js to indicate relevant system functions)*/'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_selectbox;'; + put 'index create'; + put 'pk_mpe_selectbox=(ver_to_dttm selectbox_rk)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_signoffs('; + put 'tech_from_dttm num ¬null format=datetime19.3,'; + put 'tech_to_dttm num ¬null format=datetime19.3,'; + put 'signoff_table varchar(50) ¬null,'; + put 'signoff_section_rk num ¬null,'; + put 'signoff_version_rk num ¬null,'; + put 'signoff_name varchar(100) ¬null'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_signoffs;'; + put 'index create'; + put 'pk_mpe_signoffs=(tech_to_dttm signoff_table signoff_section_rk)'; + put '/nomiss unique;'; + put 'quit;'; + put '/* mpe_submit */'; + put 'proc sql;'; + put 'create table &lib..mpe_submit('; + put 'table_id varchar(32) ¬null,'; + put 'submit_status_cd varchar(10) ¬null,'; + put 'base_lib char(8) ¬null,'; + put 'base_ds char(32) ¬null,'; + put 'submitted_by_nm varchar(100) ¬null,'; + put 'submitted_on_dttm date ¬null format=datetime19.3,'; + put 'submitted_reason_txt varchar(400),'; + put 'input_obs num,'; + put 'input_vars num,'; + put 'num_of_approvals_required num ¬null ,'; + put 'num_of_approvals_remaining num ¬null ,'; + put 'reviewed_by_nm char(100),'; + put 'reviewed_on_dttm num'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_submit;'; + put 'index create table_id /nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_tables('; + put 'tx_from num ¬null format=datetime19.3,'; + put 'tx_to num ¬null format=datetime19.3,'; + put 'libref char(8) ¬null,'; + put 'dsn char(32) ¬null,'; + put 'num_of_approvals_required int,'; + put 'loadtype char(12) ,'; + put 'buskey char(1000) ,'; + put 'var_txfrom char(32) ,'; + put 'var_txto char(32) ,'; + put 'var_busfrom char(32) ,'; + put 'var_busto char(32) ,'; + put 'var_processed char(32) ,'; + put 'close_vars varchar(500),'; + put 'pre_edit_hook char(200),'; + put 'post_edit_hook char(200),'; + put 'pre_approve_hook char(200) ,'; + put 'post_approve_hook char(200) ,'; + put 'signoff_cols varchar(500),'; + put 'signoff_hook varchar(200),'; + put 'notes char(1000) ,'; + put 'rk_underlying char(1000) ,'; + put 'audit_libds char(41)'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_tables;'; + put 'index create'; + put 'pk_mpe_tables=(tx_to libref dsn)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_users('; + put 'user_id char(50) ¬null,'; + put 'last_seen_dt num ¬null format=date9.,'; + put 'registered_dt num ¬null format=date9.'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_users;'; + put 'index create user_id /nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..MPE_VALIDATIONS'; + put '('; + put 'TX_FROM num ¬null format=datetime19.3,'; + put 'BASE_LIB varchar(8),'; + put 'BASE_DS varchar(32),'; + put 'BASE_COL varchar(32),'; + put 'RULE_TYPE varchar(32),'; + put 'RULE_VALUE varchar(128),'; + put 'RULE_ACTIVE num ,'; + put 'TX_TO num ¬null format=datetime19.3'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_validations;'; + put 'index create'; + put 'pk_mpe_validations=(tx_from base_lib base_ds base_col rule_type)'; + put '/nomiss unique;'; + put 'quit;'; + put 'proc sql;'; + put 'create table &lib..mpe_x_test('; + put 'primary_key_field num ¬null,'; + put 'some_char char(32767) ,'; + put 'some_dropdown char(128),'; + put 'some_num num ,'; + put 'some_date num format=date9.,'; + put 'some_datetime num format=datetime19. informat=ANYDTDTM19.,'; + put 'some_time num format=time8.,'; + put 'some_shortnum num length=4,'; + put 'some_bestnum num format=best.'; + put ');quit;'; + put 'proc datasets lib=&lib noprint;'; + put 'modify mpe_x_test;'; + put 'index create primary_key_field /nomiss unique;'; + put 'quit;'; + put '%mend mpe_makedatamodel;'; + put '%macro mf_mkdir(dir'; + put ')/*/STORE SOURCE*/;'; + put '%local lastchar child parent;'; + put '%let lastchar = %substr(&dir, %length(&dir));'; + put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; + put '/* Cannot create drive mappings */'; + put '%return;'; + put '%end;'; + put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; + put '/* last char is a slash */'; + put '%if (%length(&dir) eq 1) %then %do;'; + put '/* one single slash - root location is assumed to exist */'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '/* strip last slash */'; + put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; + put '%end;'; + put '%end;'; + put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; + put '/* directory does not exist so prepare to create */'; + put '/* first get the childmost directory */'; + put '%let child = %scan(&dir, -1, %str(/\:));'; + put '/*'; + put 'If child name = path name then there are no parents to create. Else'; + put 'they must be recursively scanned.'; + put '*/'; + put '%if (%length(&dir) gt %length(&child)) %then %do;'; + put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; + put '%mf_mkdir(&parent)'; + put '%end;'; + put '/*'; + put 'Now create the directory. Complain loudly of any errs.'; + put '*/'; + put '%let dname = %sysfunc(dcreate(&child, &parent));'; + put '%if (%bquote(&dname) eq ) %then %do;'; + put '%put %str(ERR)OR: could not create &parent + &child;'; + put '%abort cancel;'; + put '%end;'; + put '%else %do;'; + put '%put Directory created: &dir;'; + put '%end;'; + put '%end;'; + put '/* exit quietly if directory did exist.*/'; + put '%mend mf_mkdir;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mm_createdocument('; + put 'tree=/User Folders/sasdemo'; + put ',name=myNote'; + put ',desc=Created by &sysmacroname'; + put ',textrole='; + put ',frefin=mm_in'; + put ',frefout=mm_out'; + put ',mDebug=1'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%mp_abort(iftrue= (%mf_verifymacvars(tree name)=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Empty inputs: tree name)'; + put ')'; + put '/**'; + put '* check tree exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; + put 'call symputx(''type'',type,''l'');'; + put 'call symputx(''treeuri'',uri,''l'');'; + put 'run;'; + put '%mp_abort('; + put 'iftrue= (&type ne Tree)'; + put ',mac=mm_createdocument.sas'; + put ',msg=Tree &tree does not exist!'; + put ')'; + put '/**'; + put '* Check object does not exist already'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree/&name","Note",type,uri);'; + put 'call symputx(''type'',type,''l'');'; + put 'call symputx(''docuri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &type = Document %then %do;'; + put '%put Document &name already exists in &tree!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Now we can create the document'; + put '*/'; + put 'filename &frefin temp;'; + put '/* write header XML */'; + put 'data _null_;'; + put 'file &frefin;'; + put 'name=quote("&name");'; + put 'desc=quote("&desc");'; + put 'textrole=quote("&textrole");'; + put 'treeuri=quote("&treeuri");'; + put 'put "$METAREPOSITORY"/'; + put '''"/'; + put '" "/'; + put ''' '' /'; + put '''''/'; + put '/*URI="Document for public note" */'; + put '""/'; + put '"SAS"/'; + put '"268435456";'; + put 'run;'; + put 'filename &frefout temp;'; + put 'proc metadata in= &frefin out=&frefout verbose;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '%mend mm_createdocument;'; + put '%macro mm_createfolder(path=,mDebug=0);'; + put '%put &sysmacroname: execution started for &path;'; + put '%local dbg errorcheck;'; + put '%if &mDebug=0 %then %let dbg=*;'; + put '%local parentFolderObjId child errorcheck paths;'; + put '%let paths=0;'; + put '%let errorcheck=1;'; + put '%if &syscc ge 4 %then %do;'; + put '%put SYSCC=&syscc - this macro requires a clean session;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'length objId parentId objType parent child $200'; + put 'folderPath $1000;'; + put 'call missing (of _all_);'; + put 'folderPath = "%trim(&path)";'; + put '* remove any trailing slash ;'; + put 'if ( substr(folderPath,length(folderPath),1) = ''/'' ) then'; + put 'folderPath=substr(folderPath,1,length(folderPath)-1);'; + put '* name must not be blank;'; + put 'if ( folderPath = '''' ) then do;'; + put 'put "%str(ERR)OR: &sysmacroname PATH parameter value must be non-blank";'; + put 'end;'; + put '* must have a starting slash ;'; + put 'if ( substr(folderPath,1,1) ne ''/'' ) then do;'; + put 'put "%str(ERR)OR: &sysmacroname PATH param value must have starting slash";'; + put 'stop;'; + put 'end;'; + put '* check if folder already exists ;'; + put 'rc=metadata_pathobj('''',cats(folderPath,"(Folder)"),"",objType,objId);'; + put 'if rc ge 1 then do;'; + put 'put "NOTE: Folder " folderPath " already exists!";'; + put 'stop;'; + put 'end;'; + put '* do not create a root (one level) folder ;'; + put 'if countc(folderPath,''/'')=1 then do;'; + put 'put "%str(ERR)OR: &sysmacroname will not create a new ROOT folder";'; + put 'stop;'; + put 'end;'; + put '* check that root folder exists ;'; + put 'root=cats(''/'',scan(folderpath,1,''/''),"(Folder)");'; + put 'if metadata_pathobj('''',root,"",objType,parentId)<1 then do;'; + put 'put "%str(ERR)OR: " root " does not exist!";'; + put 'stop;'; + put 'end;'; + put '* check that parent folder exists ;'; + put 'child=scan(folderPath,-1,''/'');'; + put 'parent=substr(folderpath,1,length(folderpath)-length(child)-1);'; + put 'rc=metadata_pathobj('''',cats(parent,"(Folder)"),"",objType,parentId);'; + put 'if rc<1 then do;'; + put 'putlog ''The following folders will be created:'';'; + put '/* folder does not exist - so start from top and work down */'; + put 'length newpath $1000;'; + put 'paths=0;'; + put 'do x=2 to countw(folderpath,''/'');'; + put 'newpath='''';'; + put 'do i=1 to x;'; + put 'newpath=cats(newpath,''/'',scan(folderpath,i,''/''));'; + put 'end;'; + put 'rc=metadata_pathobj('''',cats(newpath,"(Folder)"),"",objType,parentId);'; + put 'if rc<1 then do;'; + put 'paths+1;'; + put 'call symputx(cats(''path'',paths),newpath);'; + put 'putlog newpath;'; + put 'end;'; + put 'call symputx(''paths'',paths);'; + put 'end;'; + put 'end;'; + put 'else putlog "parent " parent " exists";'; + put 'call symputx(''parentFolderObjId'',parentId,''l'');'; + put 'call symputx(''child'',child,''l'');'; + put 'call symputx(''errorcheck'',0,''l'');'; + put '&dbg put (_all_)(=);'; + put 'run;'; + put '%if &errorcheck=1 or &syscc ge 4 %then %return;'; + put '%if &paths>0 %then %do x=1 %to &paths;'; + put '%put executing recursive call for &&path&x;'; + put '%mm_createfolder(path=&&path&x)'; + put '%end;'; + put '%else %do;'; + put 'filename __newdir temp;'; + put 'options noquotelenmax;'; + put '%local inmeta;'; + put '%put creating: &path;'; + put '%let inmeta=$METAREPOSITORY'; + put ''; + put 'SAS268435456'; + put ';'; + put 'proc metadata in="&inmeta" out=__newdir verbose;'; + put 'run ;'; + put '/* check it was successful */'; + put 'data _null_;'; + put 'length objId parentId objType parent child $200 ;'; + put 'call missing (of _all_);'; + put 'rc=metadata_pathobj('''',cats("&path","(Folder)"),"",objType,objId);'; + put 'if rc ge 1 then do;'; + put 'putlog "SUCCCESS! &path created.";'; + put 'end;'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unsuccessful attempt to create &path";'; + put 'call symputx(''syscc'',8);'; + put 'end;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '%if &mDebug ne 0 %then %do;'; + put 'data _null_;'; + put 'infile __newdir lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put 'filename __newdir clear;'; + put '%end;'; + put '%put &sysmacroname: execution finished for &path;'; + put '%mend mm_createfolder;'; + put '%macro mm_createlibrary('; + put 'libname=My New Library'; + put ',libref=mynewlib'; + put ',libdesc=Created automatically using the mm_createlibrary macro'; + put ',engine=BASE'; + put ',tree=/User Folders/sasdemo'; + put ',servercontext=SASApp'; + put ',directory=/tmp/somelib'; + put ',IsPreassigned=0'; + put ',mDebug=0'; + put ',frefin=mm_in'; + put ',frefout=mm_out'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%let libref=%upcase(&libref);'; + put '/**'; + put '* Check Library does not exist already with this libname'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:SASLibrary?@Name=''&libname''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''liburi'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype = SASLibrary %then %do;'; + put '%put %str(WARN)ING: Library (&liburi) already exists with libname (&libname);'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check Library does not exist already with this libref'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:SASLibrary?@Libref=''&libref''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''liburi'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype = SASLibrary %then %do;'; + put '%put %str(WARN)ING: Library (&liburi) already exists with libref (&libref) ;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Attempt to create tree'; + put '*/'; + put '%mm_createfolder(path=&tree)'; + put '/**'; + put '* check tree exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; + put 'call symputx(''foldertype'',type,''l'');'; + put 'call symputx(''treeuri'',uri,''l'');'; + put 'run;'; + put '%if &foldertype ne Tree %then %do;'; + put '%put %str(WARN)ING: Tree &tree does not exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Create filerefs for proc metadata call'; + put '*/'; + put 'filename &frefin temp;'; + put 'filename &frefout temp;'; + put '%mp_abort(iftrue= ('; + put '&engine=BASE & %mf_verifymacvars(libname libref engine servercontext tree)=0'; + put ')'; + put ',mac=&sysmacroname'; + put ',msg=%str(Empty inputs: libname libref engine servercontext tree)'; + put ')'; + put '%if &engine=BASE %then %do;'; + put '/**'; + put '* Check that the ServerContext exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:ServerContext?@Name=''&ServerContext''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''serveruri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype ne ServerContext %then %do;'; + put '%put %str(ERR)OR: ServerContext (&ServerContext) does not exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Get prototype info'; + put '*/'; + put 'data _null_;'; + put 'length type uri str $256;'; + put 'str="omsobj:Prototype?@Name=''Library.SAS.Prototype.Name.xmlKey.txt''";'; + put 'rc=metadata_resolve(str,type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''prototypeuri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype ne Prototype %then %do;'; + put '%put %str(ERR)OR: Prototype Library.SAS.Prototype.Name.xmlKey.txt not found;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check that Physical location exists'; + put '*/'; + put '%if %sysfunc(fileexist(&directory))=0 %then %do;'; + put '%put %str(ERR)OR: Physical directory (&directory) does not appear to exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check that Directory Object exists in metadata'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:Directory?@DirectoryRole=''LibraryPath''"'; + put '!!" and @DirectoryName=''&directory''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''directoryuri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype ne Directory %then %do;'; + put '%put NOTE: Directory object does not exist for (&directory) location;'; + put '%put NOTE: It will now be created;'; + put 'data _null_;'; + put 'file &frefin;'; + put 'directory=quote(symget(''directory''));'; + put 'put "$METAREPOSITORY "/'; + put '''''/'; + put '"SAS"/'; + put '"268435456";'; + put 'run;'; + put 'proc metadata in= &frefin out=&frefout %if &mdebug=1 %then verbose;;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input; put _infile_;'; + put 'run;'; + put '%end;'; + put '%put NOTE: Checking to ensure directory (&directory) object was created;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:Directory?@DirectoryRole=''LibraryPath''"'; + put '!!" and @DirectoryName=''&directory''",type,uri);'; + put 'call symputx(''checktype2'',type,''l'');'; + put 'call symputx(''directoryuri'',uri,''l'');'; + put '%if &mdebug=1 %then putlog (_all_)(=);;'; + put 'run;'; + put '%if &checktype2 ne Directory %then %do;'; + put '%put %str(ERR)OR: Directory (&directory) object was NOT created!;'; + put '%return;'; + put '%end;'; + put '%else %put NOTE: Directory (&directoryuri) successfully created!;'; + put '%end;'; + put '/**'; + put '* check SAS version'; + put '*/'; + put '%if %sysevalf(&sysver lt 9.3) %then %do;'; + put '%put %str(WARN)ING: Version 9.3 or later required;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Prepare the XML and create the library'; + put '*/'; + put 'data _null_;'; + put 'file &frefin;'; + put 'treeuri=quote(symget(''treeuri''));'; + put 'serveruri=quote(symget(''serveruri''));'; + put 'directoryuri=quote(symget(''directoryuri''));'; + put 'libname=quote(symget(''libname''));'; + put 'libref=quote(symget(''libref''));'; + put 'IsPreassigned=quote(symget(''IsPreassigned''));'; + put 'prototypeuri=quote(symget(''prototypeuri''));'; + put '/* escape description so it can be stored as XML */'; + put 'libdesc=tranwrd(symget(''libdesc''),''&'',''&'');'; + put 'libdesc=tranwrd(libdesc,''<'',''<'');'; + put 'libdesc=tranwrd(libdesc,''>'',''>'');'; + put 'libdesc=tranwrd(libdesc,"''",''''');'; + put 'libdesc=tranwrd(libdesc,''"'',''"'');'; + put 'libdesc=tranwrd(libdesc,''0A''x,'' '');'; + put 'libdesc=tranwrd(libdesc,''0D''x,'' '');'; + put 'libdesc=tranwrd(libdesc,''$'',''$'');'; + put 'libdesc=quote(trim(libdesc));'; + put 'put "$METAREPOSITORY "/'; + put '''''/'; + put ''' ''/'; + put ''' "/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put '" "/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put '''SAS''/'; + put '''268435456'';'; + put 'run;'; + put 'proc metadata in= &frefin out=&frefout %if &mdebug=1 %then verbose ;;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input;put _infile_;'; + put 'run;'; + put '%end;'; + put '%put NOTE: Checking to ensure library (&libname) was created;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree/&libname","Library",type,uri);'; + put 'call symputx(''libtype'',type,''l'');'; + put 'call symputx(''liburi'',uri,''l'');'; + put '%if &mdebug=1 %then putlog (_all_)(=);;'; + put 'run;'; + put '%if &libtype ne SASLibrary %then %do;'; + put '%put %str(ERR)OR: Could not find (&libname) at (&tree)!!;'; + put '%return;'; + put '%end;'; + put '%else %put NOTE: Library (&libname) successfully created in (&tree)!;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Other library engine types are not yet supported!!;'; + put '%end;'; + put '/**'; + put '* Wrap up'; + put '*/'; + put '%if &mdebug ne 1 %then %do;'; + put 'filename &frefin clear;'; + put 'filename &frefout clear;'; + put '%end;'; + put '%mend mm_createlibrary;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mm_getDirectories('; + put 'path='; + put ',outds=work.mm_getDirectories'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getDirectories.sas;'; + put '%&mD.put _local_;'; + put 'data &outds (keep=directoryuri name directoryname directorydesc );'; + put 'length directoryuri name directoryname directorydesc $256;'; + put 'call missing(of _all_);'; + put '__i+1;'; + put '%if %length(&path)=0 %then %do;'; + put 'do while'; + put '(metadata_getnobj("omsobj:Directory?@Id contains ''.''",__i,directoryuri)>0);'; + put '%end; %else %do;'; + put 'do while('; + put 'metadata_getnobj("omsobj:Directory?@DirectoryName=''&path''",__i,directoryuri)'; + put '>0'; + put ');'; + put '%end;'; + put '__rc1=metadata_getattr(directoryuri, "Name", name);'; + put '__rc2=metadata_getattr(directoryuri, "DirectoryName", directoryname);'; + put '__rc3=metadata_getattr(directoryuri, "Desc", directorydesc);'; + put '&mD.putlog (_all_) (=);'; + put 'drop __:;'; + put '__i+1;'; + put 'if sum(of __rc1-__rc3)=0 then output;'; + put 'end;'; + put 'run;'; + put '%mend mm_getDirectories;'; + put '%macro mm_updatestpsourcecode(stp='; + put ',stpcode='; + put ',minify=NO'; + put ',mdebug=0'; + put ');'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&stp.(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '%if &mdebug=1 %then %do;'; + put 'put tsuri= value=;'; + put '%end;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%if &tsuri=stopifempty %then %do;'; + put '%put %str(WARN)ING: &stp.(StoredProcess) not found!;'; + put '%return;'; + put '%end;'; + put '%if %length(&stpcode)<2 %then %do;'; + put '%put %str(WARN)ING: No SAS code supplied!!;'; + put '%return;'; + put '%end;'; + put '%local frefin frefout;'; + put '%let frefin=%mf_getuniquefileref();'; + put '%let frefout=%mf_getuniquefileref();'; + put '/* write header XML */'; + put 'data _null_;'; + put 'file &frefin;'; + put 'put "$METAREPOSITORY'; + put '2 %then %do;'; + put 'data _null_;'; + put 'file &frefin lrecl=32767 mod;'; + put 'infile &stpcode lrecl=32767;'; + put 'length outstr $32767;'; + put 'input outstr ;'; + put '/* escape code so it can be stored as XML */'; + put 'outstr=tranwrd(_infile_,''&'',''&'');'; + put 'outstr=tranwrd(outstr,''<'',''<'');'; + put 'outstr=tranwrd(outstr,''>'',''>'');'; + put 'outstr=tranwrd(outstr,"''",''''');'; + put 'outstr=tranwrd(outstr,''"'',''"'');'; + put 'outstr=tranwrd(outstr,''0A''x,'' '');'; + put 'outstr=tranwrd(outstr,''0D''x,'' '');'; + put 'outstr=tranwrd(outstr,''$'',''$'');'; + put '%if &minify=YES %then %do;'; + put 'outstr=cats(outstr);'; + put 'if outstr ne '''';'; + put 'if not (outstr=:''/*'' and subpad(left(reverse(outstr)),1,2)=''/*'');'; + put '%end;'; + put 'outstr=trim(outstr);'; + put 'put outstr '' '';'; + put 'run;'; + put '%end;'; + put 'data _null_;'; + put 'file &frefin mod;'; + put 'put "''>SAS268435456'; + put '";'; + put 'run;'; + put 'proc metadata in= &frefin out=&frefout;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile &frefout lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'filename &frefin clear;'; + put 'filename &frefout clear;'; + put '%end;'; + put '%mend mm_updatestpsourcecode;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro mm_getservercontexts('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* first get list of available repos */'; + put '%mm_getrepos(outds=work.repos)'; + put '%let repocnt=0;'; + put 'data _null_;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'');'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put 'filename __mc1 temp;'; + put 'filename __mc2 temp;'; + put 'data &outds;'; + put 'length serveruri servername $200;'; + put 'call missing (of _all_);'; + put 'stop;'; + put 'run;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'proc metadata in='; + put '"$METAREPOSITORY'; + put 'ServerContextSAS'; + put '0"'; + put 'out=__mc1;'; + put 'run;'; + put '/*'; + put 'data _null_;'; + put 'infile __mc1 lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put 'data _null_;'; + put 'file __mc2;'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/ServerContext";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/ServerContext/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/ServerContext/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname __mc3 xml xmlfileref=__mc1 xmlmap=__mc2;'; + put 'proc append base=&outds data=__mc3.SASContexts;run;'; + put 'libname __mc3 clear;'; + put '%end;'; + put 'options metarepository=&repo;'; + put 'filename __mc1 clear;'; + put 'filename __mc2 clear;'; + put '%mend mm_getservercontexts;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mm_createstp('; + put 'stpname=Macro People STP'; + put ',stpdesc=This stp was created automatically by the mm_createstp macro'; + put ',filename=mm_createstp.sas'; + put ',directory=SASEnvironment/SASCode'; + put ',tree=/User Folders/sasdemo'; + put ',package=false'; + put ',streaming=true'; + put ',outds=work.mm_createstp'; + put ',mDebug=0'; + put ',server=SASApp'; + put ',stptype=1'; + put ',minify=NO'; + put ',frefin=mm_in'; + put ',frefout=mm_out'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_CreateSTP.sas;'; + put '%&mD.put _local_;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(stpname filename directory tree)=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Empty inputs: stpname filename directory tree)'; + put ')'; + put '%mp_dropmembers(%scan(&outds,2,.))'; + put '/**'; + put '* check tree exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; + put 'call symputx(''foldertype'',type,''l'');'; + put 'call symputx(''treeuri'',uri,''l'');'; + put 'run;'; + put '%if &foldertype ne Tree %then %do;'; + put '%put %str(WARN)ING: Tree &tree does not exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check STP does not exist already'; + put '*/'; + put '%local cmtype;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree/&stpname",''StoredProcess'',type,uri);'; + put 'call symputx(''cmtype'',type,''l'');'; + put 'call symputx(''stpuri'',uri,''l'');'; + put 'run;'; + put '%if &cmtype = ClassifierMap %then %do;'; + put '%put %str(WARN)ING: Stored Process &stpname already exists in &tree!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check that the physical file exists'; + put '*/'; + put '%if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do;'; + put '%put %str(WARN)ING: FILE *&directory/&filename* NOT FOUND!;'; + put '%return;'; + put '%end;'; + put '%if &stptype=1 %then %do;'; + put '/* type 1 STP - where code is stored on filesystem */'; + put '%if %sysevalf(&sysver lt 9.2) %then %do;'; + put '%put %str(WARN)ING: Version 9.2 or later required;'; + put '%return;'; + put '%end;'; + put '/* check directory object (where 9.2 source code reference is stored) */'; + put 'data _null_;'; + put 'length id $20 dirtype $256;'; + put 'rc=metadata_resolve("&directory",dirtype,id);'; + put 'call symputx(''checkdirtype'',dirtype,''l'');'; + put 'run;'; + put '%if &checkdirtype ne Directory %then %do;'; + put '%mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug)'; + put '%if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do;'; + put '%put %str(WARN)ING: The directory object does not exist for &directory;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data &outds;'; + put 'directoryuri="&directory";'; + put 'run;'; + put '%end;'; + put 'data &outds (keep=stpuri prompturi fileuri texturi);'; + put 'length stpuri prompturi fileuri texturi serveruri $256 ;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'set &outds;'; + put '/* final checks on uris */'; + put 'length id $20 type $256;'; + put '__rc=metadata_resolve("&treeuri",type,id);'; + put 'if type ne ''Tree'' then do;'; + put 'putlog "%str(WARN)ING: Invalid tree URI: &treeuri";'; + put 'stopme=1;'; + put 'end;'; + put '__rc=metadata_resolve(directoryuri,type,id);'; + put 'if type ne ''Directory'' then do;'; + put 'putlog "%str(WARN)ING: Invalid directory URI: " directoryuri;'; + put 'stopme=1;'; + put 'end;'; + put '/* get server info */'; + put '__rc=metadata_resolve("&server",type,serveruri);'; + put 'if type ne ''LogicalServer'' then do;'; + put '__rc=metadata_getnobj("omsobj:LogicalServer?@Name=''&server''",1,serveruri);'; + put 'if serveruri='''' then do;'; + put 'putlog "%str(WARN)ING: Invalid server: &server";'; + put 'stopme=1;'; + put 'end;'; + put 'end;'; + put 'if stopme=1 then do;'; + put 'putlog (_all_)(=);'; + put 'stop;'; + put 'end;'; + put '/* create empty prompt */'; + put 'rc1=METADATA_NEWOBJ(''PromptGroup'',prompturi,''Parameters'');'; + put 'rc2=METADATA_SETATTR(prompturi, ''UsageVersion'', ''1000000'');'; + put 'rc3=METADATA_SETATTR(prompturi, ''GroupType'',''2'');'; + put 'rc4=METADATA_SETATTR(prompturi, ''Name'',''Parameters'');'; + put 'rc5=METADATA_SETATTR(prompturi, ''PublicType'',''Embedded:PromptGroup'');'; + put 'GroupInfo='; + put '"";'; + put 'rc6 = METADATA_SETATTR(prompturi, ''GroupInfo'',groupinfo);'; + put 'if sum(of rc1-rc6) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating prompt.";'; + put 'if prompturi ne . then do;'; + put 'putlog '' Removing orphan: '' prompturi;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'put rc=;'; + put 'end;'; + put 'stop;'; + put 'end;'; + put '/* create a file uri */'; + put 'rc7=METADATA_NEWOBJ(''File'',fileuri,''SP Source File'');'; + put 'rc8=METADATA_SETATTR(fileuri, ''FileName'',"&filename");'; + put 'rc9=METADATA_SETATTR(fileuri, ''IsARelativeName'',''1'');'; + put 'rc10=METADATA_SETASSN(fileuri, ''Directories'',''MODIFY'',directoryuri);'; + put 'if sum(of rc7-rc10) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating file.";'; + put 'if fileuri ne . then do;'; + put 'putlog '' Removing orphans:'' prompturi fileuri;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'rc = METADATA_DELOBJ(fileuri);'; + put 'put (_all_)(=);'; + put 'end;'; + put 'stop;'; + put 'end;'; + put '/* create a TextStore object */'; + put 'rc11= METADATA_NEWOBJ(''TextStore'',texturi,''Stored Process'');'; + put 'rc12= METADATA_SETATTR(texturi, ''TextRole'',''StoredProcessConfiguration'');'; + put 'rc13= METADATA_SETATTR(texturi, ''TextType'',''XML'');'; + put 'storedtext='''''; + put '!!""'; + put '!!"";'; + put 'rc14= METADATA_SETATTR(texturi, ''StoredText'',storedtext);'; + put 'if sum(of rc11-rc14) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating TextStore.";'; + put 'if texturi ne . then do;'; + put 'putlog '' Removing orphans: '' prompturi fileuri texturi;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'rc = METADATA_DELOBJ(fileuri);'; + put 'rc = METADATA_DELOBJ(texturi);'; + put 'put (_all_)(=);'; + put 'end;'; + put 'stop;'; + put 'end;'; + put '/* create meta obj */'; + put 'rc15= METADATA_NEWOBJ(''ClassifierMap'',stpuri,"&stpname");'; + put 'rc16= METADATA_SETASSN(stpuri, ''Trees'',''MODIFY'',treeuri);'; + put 'rc17= METADATA_SETASSN(stpuri, ''ComputeLocations'',''MODIFY'',serveruri);'; + put 'rc18= METADATA_SETASSN(stpuri, ''SourceCode'',''MODIFY'',fileuri);'; + put 'rc19= METADATA_SETASSN(stpuri, ''Prompts'',''MODIFY'',prompturi);'; + put 'rc20= METADATA_SETASSN(stpuri, ''Notes'',''MODIFY'',texturi);'; + put 'rc21= METADATA_SETATTR(stpuri, ''PublicType'', ''StoredProcess'');'; + put 'rc22= METADATA_SETATTR(stpuri, ''TransformRole'', ''StoredProcess'');'; + put 'rc23= METADATA_SETATTR(stpuri, ''UsageVersion'', ''1000000'');'; + put 'rc24= METADATA_SETATTR(stpuri, ''Desc'', "&stpdesc");'; + put '/* tidy up if err */'; + put 'if sum(of rc15-rc24) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating STP.";'; + put 'if stpuri ne . then do;'; + put 'putlog '' Removing orphans: '' prompturi fileuri texturi stpuri;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'rc = METADATA_DELOBJ(fileuri);'; + put 'rc = METADATA_DELOBJ(texturi);'; + put 'rc = METADATA_DELOBJ(stpuri);'; + put 'put (_all_)(=);'; + put 'end;'; + put 'end;'; + put 'else do;'; + put 'fullpath=cats(''_program='',treepath,"/&stpname");'; + put 'putlog "NOTE: Stored Process Created!";'; + put 'putlog "NOTE- "; putlog "NOTE-"; putlog "NOTE-" fullpath;'; + put 'putlog "NOTE- "; putlog "NOTE-";'; + put 'end;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '%else %if &stptype=2 %then %do;'; + put '/* type 2 stp - code is stored in metadata */'; + put '%if %sysevalf(&sysver lt 9.3) %then %do;'; + put '%put %str(WARN)ING: SAS version 9.3 or later required to create type2 STPs;'; + put '%return;'; + put '%end;'; + put '/* check we have the correct ServerContext */'; + put '%mm_getservercontexts(outds=contexts)'; + put '%local serveruri; %let serveruri=NOTFOUND;'; + put 'data _null_;'; + put 'set contexts;'; + put 'where upcase(servername)="%upcase(&server)";'; + put 'call symputx(''serveruri'',serveruri);'; + put 'run;'; + put '%if &serveruri=NOTFOUND %then %do;'; + put '%put %str(WARN)ING: ServerContext *&server* not found!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* First, create a Hello World type 2 stored process'; + put '*/'; + put 'filename &frefin temp;'; + put 'data _null_;'; + put 'file &frefin;'; + put 'treeuri=quote(symget(''treeuri''));'; + put 'serveruri=quote(symget(''serveruri''));'; + put 'stpdesc=quote(symget(''stpdesc''));'; + put 'stpname=quote(symget(''stpname''));'; + put 'put "$METAREPOSITORY "/'; + put '''''/'; + put '" "/'; + put '" "/'; + put '" "/'; + put '" "/'; + put ''' ''/'; + put ''' '' /'; + put '" "/'; + put '" "/'; + put ''' ''/'; + put '" "/'; + put '""/'; + put '"SAS"/'; + put '"268435456";'; + put 'run;'; + put 'filename &frefout temp;'; + put 'proc metadata in= &frefin out=&frefout ;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '/**'; + put '* Next, add the source code'; + put '*/'; + put '%mm_updatestpsourcecode(stp=&tree/&stpname'; + put ',stpcode="&directory/&filename"'; + put ',mdebug=&mdebug'; + put ',minify=&minify)'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: STPTYPE=*&stptype* not recognised!;'; + put '%end;'; + put '%mend mm_createstp;'; + put '%macro mm_deletedocument('; + put 'target='; + put ')/*/STORE SOURCE*/;'; + put '/**'; + put '* Check document exist'; + put '*/'; + put '%local type;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; + put 'call symputx(''type'',type,''l'');'; + put 'call symputx(''stpuri'',uri,''l'');'; + put 'run;'; + put '%if &type ne Document %then %do;'; + put '%put %str(WARN)ING: No Document found at ⌖'; + put '%return;'; + put '%end;'; + put 'filename __in temp lrecl=10000;'; + put 'filename __out temp lrecl=10000;'; + put 'data _null_ ;'; + put 'file __in ;'; + put 'put "";'; + put 'put "SAS268436480";'; + put 'put "";'; + put 'run ;'; + put 'proc metadata in=__in out=__out verbose;run;'; + put '/* list the result */'; + put 'data _null_;infile __out; input; list; run;'; + put 'filename __in clear;'; + put 'filename __out clear;'; + put '/**'; + put '* Check deletion'; + put '*/'; + put '%local isgone;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; + put 'call symputx(''isgone'',type,''l'');'; + put 'run;'; + put '%if &isgone = Document %then %do;'; + put '%put %str(ERR)OR: Document not deleted from ⌖'; + put '%let syscc=4;'; + put '%return;'; + put '%end;'; + put '%mend mm_deletedocument;'; + put '%macro mm_deletestp('; + put 'target='; + put ')/*/STORE SOURCE*/;'; + put '/**'; + put '* Check STP does exist'; + put '*/'; + put '%local cmtype;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&target",''StoredProcess'',type,uri);'; + put 'call symputx(''cmtype'',type,''l'');'; + put 'call symputx(''stpuri'',uri,''l'');'; + put 'run;'; + put '%if &cmtype ne ClassifierMap %then %do;'; + put '%put NOTE: No Stored Process found at ⌖'; + put '%return;'; + put '%end;'; + put 'filename __in temp lrecl=10000;'; + put 'filename __out temp lrecl=10000;'; + put 'data _null_ ;'; + put 'file __in ;'; + put 'put "";'; + put 'put "SAS268436480";'; + put 'put "";'; + put 'run ;'; + put 'proc metadata in=__in out=__out verbose;run;'; + put '/* list the result */'; + put 'data _null_;infile __out; input; list; run;'; + put 'filename __in clear;'; + put 'filename __out clear;'; + put '/**'; + put '* Check deletion'; + put '*/'; + put '%local isgone;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; + put 'call symputx(''isgone'',type,''l'');'; + put 'run;'; + put '%if &isgone = ClassifierMap %then %do;'; + put '%put %str(ERR)OR: STP not deleted from ⌖'; + put '%let syscc=4;'; + put '%return;'; + put '%end;'; + put '%mend mm_deletestp;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief service for creating the configuration tables in DEMO mode.'; + put '@details'; + put 'STP for creating the configuration tables in DEMO mode.'; + put 'It also adds the STAGING directory as subdirectory to the BASE'; + put 'library location.'; + put 'Note - the CURLIB var is added during the build process.'; + put '@warning This STP self destructs! It will delete itself after a successful run'; + put 'to avoid being executed twice (and overwriting actual data)'; + put '

SAS Macros

'; + put '@li mf_getapploc.sas'; + put '@li mf_getuser.sas'; + put '@li mf_mkdir.sas'; + put '@li mm_createdocument.sas'; + put '@li mm_createlibrary.sas'; + put '@li mm_createstp.sas'; + put '@li mm_deletedocument.sas'; + put '@li mm_deletestp.sas'; + put '@li mm_getstpcode.sas'; + put '@li mp_abort.sas'; + put '@li mp_init.sas'; + put '@li mpe_makedata.sas'; + put '@li mpe_makedatamodel.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mp_init()'; + put '%global admin repo path; /* URL params from configurator */'; + put '%let repo=%sysfunc(coalescec(&repo,Foundation));'; + put '%let admin=%sysfunc(coalescec(&admin,dc-admin));'; + put '%let dcpath=%sysfunc(coalescec(&path,NOTFOUND));'; + put '%mp_abort(iftrue= ("&dcpath" = "NOTFOUND")'; + put ',mac=&_program'; + put ',msg=%str(PATH variable was not provided)'; + put ')'; + put '%let root=%mf_getapploc();'; + put '%let work=%sysfunc(pathname(work));'; + put '%let dc_libref=%upcase(DC%substr(%sysevalf(%sysfunc(datetime())/60),3,6));'; + put '%let DC_LIBNAME=Data Controller(&dc_libref);'; + put '%let dcpath=&dcpath/&dc_libref;'; + put '%put _all_;'; + put '%mf_mkdir(&dcpath/dc_staging)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Unable to create &dcpath using &sysuserid)'; + put ')'; + put '/* check we have the admin rights to update the items in the Admin folder */'; + put '%mm_createdocument(tree=&root/services/admin,name=permTest)'; + put '%mm_deletedocument(target=&root/services/admin/permTest)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(User &_metaperson does not have WriteMetadata on metadata folder:'; + put '&root )'; + put ')'; + put '/* check we have physical permissions to the DCLIB folder */'; + put 'data _null_;'; + put 'putlog "dcpath=&dcpath/permTest.txt";'; + put 'putlog "sysuserid=&sysuserid";'; + put 'data _null_;'; + put 'file "&dcpath/permTest.txt";'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(User &sysuserid does not have WRITE permissions on physical'; + put 'directory: &dcpath )'; + put ')'; + put 'filename delfile "&dcpath/permTest.txt";'; + put 'data _null_;'; + put 'rc=fdelete(''delfile'');'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(User &sysuserid could create (but not delete) &dcpath/permTest.txt )'; + put ')'; + put '/* create the library */'; + put '%mm_createlibrary('; + put 'libname=&DC_LIBNAME'; + put ',libref=&dc_libref'; + put ',libdesc=Data Controller for SAS configuration tables'; + put ',engine=BASE'; + put ',tree=&root/data'; + put ',servercontext=SASApp'; + put ',directory=&dcpath'; + put ',mDebug=1'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=buildtermsas9'; + put ',msg=%str(Unable to create &dc_libref library)'; + put ')'; + put '/* assign the library */'; + put 'libname &dc_libref "&dcpath";'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=buildtermsas9'; + put ',msg=%str(Unable to assign the &dc_libref library)'; + put ')'; + put '/* make the tables */'; + put '/* SASAdministrators */'; + put '%mpe_makedatamodel(lib=&dc_libref)'; + put '%mpe_makedata(lib=&DC_LIBREF,mpeadmins=&admin,path=%str(&dcpath))'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem creating tables in &DC_LIBREF library\n'; + put 'SYSERRORTEXT=&SYSERRORTEXT \n'; + put 'SYSWARNINGTEXT=&SYSWARNINGTEXT)'; + put ')'; + put '/* register tables in metadata */'; + put 'proc metalib;'; + put 'omr (library="&DC_LIBNAME");'; + put 'folder="&root/data";'; + put 'update_rule=(delete);'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem registering metadata for tables in &DC_LIBREF library \n'; + put 'os user=&sysuserid \n'; + put 'metaperson=%mf_getuser() \n'; + put 'SYSERRORTEXT=&SYSERRORTEXT \n'; + put 'SYSWARNINGTEXT=&SYSWARNINGTEXT'; + put ')'; + put ')'; + put '/* finally, update the app component. The user will need WM perms for this. */'; + put 'data _null_;'; + put 'file "&work/settings.sas" mod ;'; + put 'put '' '';'; + put 'put ''%global DC_LIBREF DC_LIBNAME DC_LIBLOC DC_STAGING_AREA DC_ADMIN_GROUP'';'; + put 'put '' DC_REPO_USERS DC_DTTMTFMT DC_MACROS;'';'; + put 'put '' '';'; + put 'put ''/* This metadata library (libref) contains control datasets for DC */'';'; + put 'put ''/* If a different libref must be used, configure it below */'';'; + put 'put ''%let DC_LIBREF='' "&DC_LIBREF;";'; + put 'put ''%let DC_LIBNAME='' "&DC_LIBNAME;";'; + put 'put ''%let DC_LIBLOC='' "&dcpath;";'; + put 'put '' '';'; + put 'put ''libname &DC_LIBREF "&dc_libloc";'';'; + put 'put '' '';'; + put 'put ''/* This metadata group has unrestricted access to Data Controller */'';'; + put 'put ''%let dc_admin_group='' "&admin;";'; + put 'put '' '';'; + put 'put ''/* This repository is used to query for users and groups */'';'; + put 'put ''%let dc_repo_users='' "&repo;";'; + put 'put '' '';'; + put 'put ''/* This physical location is used for staging data and audit history */'';'; + put 'put ''%let dc_staging_area=&dc_libloc/dc_staging;'';'; + put 'put '' '';'; + put 'put ''data _null_;'';'; + put 'put '' set &DC_LIBREF..mpe_config(where=('';'; + put 'put '' var_scope="DC" '';'; + put 'put '' and &dc_dttmtfmt. lt tx_to'';'; + put 'put '' and var_active=1'';'; + put 'put " ));";'; + put 'put " call symputx(var_name,var_value,''G'');";'; + put 'put '' putlog var_name "=" var_value;'';'; + put 'put "run;";'; + put 'put '' '';'; + put 'put ''/* to override any DC macros with client versions, place them below */'';'; + put 'put ''options insert=(sasautos=("&dc_macros"));'';'; + put 'run;'; + put '/*'; + put 'put ''data _null_;'';'; + put 'put '' length lib_uri up_uri path $256;'';'; + put 'put '' call missing (of _all_);'';'; + put 'put '' rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''''&dc_libref''''",1,lib_uri);'';'; + put 'put '' rc=metadata_getnasn(lib_uri,"UsingPackages",1,up_uri);'';'; + put 'put '' rc=metadata_getattr(up_uri,"DirectoryName",path);'';'; + put 'put '' call symputx("dc_libloc",path);'';'; + put 'put ''run;'';'; + put '*/'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=syscc=&syscc when preparing data_controller_settings)'; + put ')'; + put '%mm_createstp(stpname=Data_Controller_Settings'; + put ',filename=settings.sas'; + put ',directory=&work'; + put ',tree=&root/services/public'; + put ',Server=SASApp'; + put ',stptype=2'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str('; + put 'Problem updating the dc_staging area in'; + put '&root/services/public/DataController Settings \n'; + put 'SYSERRORTEXT=&SYSERRORTEXT \n'; + put 'SYSWARNINGTEXT=&SYSWARNINGTEXT'; + put ')'; + put ')'; + put 'data _null_;'; + put 'file _webout;'; + put 'put ''

Data Controller Config

'';'; + put 'put ''

The following items have been successfully configured:

'';'; + put 'put "";'; + put 'put "

Next Steps:

";'; + put 'put "
  1. Populate ";'; + put 'put "Table Lineage
  2. ";'; + put 'put "
  3. Populate";'; + put 'put "Data Catalog
  4. ";'; + put 'put "
  5. Now, ";'; + put 'put "hereLaunch!
";'; + put 'run;'; + put '/* We ran successfully, now remove configurator and makedata STPs */'; + put '%mm_deletestp(target=&root/services/admin/configurator)'; + put '%mm_deletestp(target=&_program)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=makelib; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mm_createfolder(path=,mDebug=0);'; + put '%put &sysmacroname: execution started for &path;'; + put '%local dbg errorcheck;'; + put '%if &mDebug=0 %then %let dbg=*;'; + put '%local parentFolderObjId child errorcheck paths;'; + put '%let paths=0;'; + put '%let errorcheck=1;'; + put '%if &syscc ge 4 %then %do;'; + put '%put SYSCC=&syscc - this macro requires a clean session;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'length objId parentId objType parent child $200'; + put 'folderPath $1000;'; + put 'call missing (of _all_);'; + put 'folderPath = "%trim(&path)";'; + put '* remove any trailing slash ;'; + put 'if ( substr(folderPath,length(folderPath),1) = ''/'' ) then'; + put 'folderPath=substr(folderPath,1,length(folderPath)-1);'; + put '* name must not be blank;'; + put 'if ( folderPath = '''' ) then do;'; + put 'put "%str(ERR)OR: &sysmacroname PATH parameter value must be non-blank";'; + put 'end;'; + put '* must have a starting slash ;'; + put 'if ( substr(folderPath,1,1) ne ''/'' ) then do;'; + put 'put "%str(ERR)OR: &sysmacroname PATH param value must have starting slash";'; + put 'stop;'; + put 'end;'; + put '* check if folder already exists ;'; + put 'rc=metadata_pathobj('''',cats(folderPath,"(Folder)"),"",objType,objId);'; + put 'if rc ge 1 then do;'; + put 'put "NOTE: Folder " folderPath " already exists!";'; + put 'stop;'; + put 'end;'; + put '* do not create a root (one level) folder ;'; + put 'if countc(folderPath,''/'')=1 then do;'; + put 'put "%str(ERR)OR: &sysmacroname will not create a new ROOT folder";'; + put 'stop;'; + put 'end;'; + put '* check that root folder exists ;'; + put 'root=cats(''/'',scan(folderpath,1,''/''),"(Folder)");'; + put 'if metadata_pathobj('''',root,"",objType,parentId)<1 then do;'; + put 'put "%str(ERR)OR: " root " does not exist!";'; + put 'stop;'; + put 'end;'; + put '* check that parent folder exists ;'; + put 'child=scan(folderPath,-1,''/'');'; + put 'parent=substr(folderpath,1,length(folderpath)-length(child)-1);'; + put 'rc=metadata_pathobj('''',cats(parent,"(Folder)"),"",objType,parentId);'; + put 'if rc<1 then do;'; + put 'putlog ''The following folders will be created:'';'; + put '/* folder does not exist - so start from top and work down */'; + put 'length newpath $1000;'; + put 'paths=0;'; + put 'do x=2 to countw(folderpath,''/'');'; + put 'newpath='''';'; + put 'do i=1 to x;'; + put 'newpath=cats(newpath,''/'',scan(folderpath,i,''/''));'; + put 'end;'; + put 'rc=metadata_pathobj('''',cats(newpath,"(Folder)"),"",objType,parentId);'; + put 'if rc<1 then do;'; + put 'paths+1;'; + put 'call symputx(cats(''path'',paths),newpath);'; + put 'putlog newpath;'; + put 'end;'; + put 'call symputx(''paths'',paths);'; + put 'end;'; + put 'end;'; + put 'else putlog "parent " parent " exists";'; + put 'call symputx(''parentFolderObjId'',parentId,''l'');'; + put 'call symputx(''child'',child,''l'');'; + put 'call symputx(''errorcheck'',0,''l'');'; + put '&dbg put (_all_)(=);'; + put 'run;'; + put '%if &errorcheck=1 or &syscc ge 4 %then %return;'; + put '%if &paths>0 %then %do x=1 %to &paths;'; + put '%put executing recursive call for &&path&x;'; + put '%mm_createfolder(path=&&path&x)'; + put '%end;'; + put '%else %do;'; + put 'filename __newdir temp;'; + put 'options noquotelenmax;'; + put '%local inmeta;'; + put '%put creating: &path;'; + put '%let inmeta=$METAREPOSITORY'; + put ''; + put 'SAS268435456'; + put ';'; + put 'proc metadata in="&inmeta" out=__newdir verbose;'; + put 'run ;'; + put '/* check it was successful */'; + put 'data _null_;'; + put 'length objId parentId objType parent child $200 ;'; + put 'call missing (of _all_);'; + put 'rc=metadata_pathobj('''',cats("&path","(Folder)"),"",objType,objId);'; + put 'if rc ge 1 then do;'; + put 'putlog "SUCCCESS! &path created.";'; + put 'end;'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unsuccessful attempt to create &path";'; + put 'call symputx(''syscc'',8);'; + put 'end;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '%if &mDebug ne 0 %then %do;'; + put 'data _null_;'; + put 'infile __newdir lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put 'filename __newdir clear;'; + put '%end;'; + put '%put &sysmacroname: execution finished for &path;'; + put '%mend mm_createfolder;'; + put '%macro mm_createlibrary('; + put 'libname=My New Library'; + put ',libref=mynewlib'; + put ',libdesc=Created automatically using the mm_createlibrary macro'; + put ',engine=BASE'; + put ',tree=/User Folders/sasdemo'; + put ',servercontext=SASApp'; + put ',directory=/tmp/somelib'; + put ',IsPreassigned=0'; + put ',mDebug=0'; + put ',frefin=mm_in'; + put ',frefout=mm_out'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%let libref=%upcase(&libref);'; + put '/**'; + put '* Check Library does not exist already with this libname'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:SASLibrary?@Name=''&libname''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''liburi'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype = SASLibrary %then %do;'; + put '%put %str(WARN)ING: Library (&liburi) already exists with libname (&libname);'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check Library does not exist already with this libref'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:SASLibrary?@Libref=''&libref''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''liburi'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype = SASLibrary %then %do;'; + put '%put %str(WARN)ING: Library (&liburi) already exists with libref (&libref) ;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Attempt to create tree'; + put '*/'; + put '%mm_createfolder(path=&tree)'; + put '/**'; + put '* check tree exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; + put 'call symputx(''foldertype'',type,''l'');'; + put 'call symputx(''treeuri'',uri,''l'');'; + put 'run;'; + put '%if &foldertype ne Tree %then %do;'; + put '%put %str(WARN)ING: Tree &tree does not exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Create filerefs for proc metadata call'; + put '*/'; + put 'filename &frefin temp;'; + put 'filename &frefout temp;'; + put '%mp_abort(iftrue= ('; + put '&engine=BASE & %mf_verifymacvars(libname libref engine servercontext tree)=0'; + put ')'; + put ',mac=&sysmacroname'; + put ',msg=%str(Empty inputs: libname libref engine servercontext tree)'; + put ')'; + put '%if &engine=BASE %then %do;'; + put '/**'; + put '* Check that the ServerContext exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:ServerContext?@Name=''&ServerContext''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''serveruri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype ne ServerContext %then %do;'; + put '%put %str(ERR)OR: ServerContext (&ServerContext) does not exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Get prototype info'; + put '*/'; + put 'data _null_;'; + put 'length type uri str $256;'; + put 'str="omsobj:Prototype?@Name=''Library.SAS.Prototype.Name.xmlKey.txt''";'; + put 'rc=metadata_resolve(str,type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''prototypeuri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype ne Prototype %then %do;'; + put '%put %str(ERR)OR: Prototype Library.SAS.Prototype.Name.xmlKey.txt not found;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check that Physical location exists'; + put '*/'; + put '%if %sysfunc(fileexist(&directory))=0 %then %do;'; + put '%put %str(ERR)OR: Physical directory (&directory) does not appear to exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check that Directory Object exists in metadata'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:Directory?@DirectoryRole=''LibraryPath''"'; + put '!!" and @DirectoryName=''&directory''",type,uri);'; + put 'call symputx(''checktype'',type,''l'');'; + put 'call symputx(''directoryuri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &checktype ne Directory %then %do;'; + put '%put NOTE: Directory object does not exist for (&directory) location;'; + put '%put NOTE: It will now be created;'; + put 'data _null_;'; + put 'file &frefin;'; + put 'directory=quote(symget(''directory''));'; + put 'put "$METAREPOSITORY "/'; + put '''''/'; + put '"SAS"/'; + put '"268435456";'; + put 'run;'; + put 'proc metadata in= &frefin out=&frefout %if &mdebug=1 %then verbose;;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input; put _infile_;'; + put 'run;'; + put '%end;'; + put '%put NOTE: Checking to ensure directory (&directory) object was created;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_resolve("omsobj:Directory?@DirectoryRole=''LibraryPath''"'; + put '!!" and @DirectoryName=''&directory''",type,uri);'; + put 'call symputx(''checktype2'',type,''l'');'; + put 'call symputx(''directoryuri'',uri,''l'');'; + put '%if &mdebug=1 %then putlog (_all_)(=);;'; + put 'run;'; + put '%if &checktype2 ne Directory %then %do;'; + put '%put %str(ERR)OR: Directory (&directory) object was NOT created!;'; + put '%return;'; + put '%end;'; + put '%else %put NOTE: Directory (&directoryuri) successfully created!;'; + put '%end;'; + put '/**'; + put '* check SAS version'; + put '*/'; + put '%if %sysevalf(&sysver lt 9.3) %then %do;'; + put '%put %str(WARN)ING: Version 9.3 or later required;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Prepare the XML and create the library'; + put '*/'; + put 'data _null_;'; + put 'file &frefin;'; + put 'treeuri=quote(symget(''treeuri''));'; + put 'serveruri=quote(symget(''serveruri''));'; + put 'directoryuri=quote(symget(''directoryuri''));'; + put 'libname=quote(symget(''libname''));'; + put 'libref=quote(symget(''libref''));'; + put 'IsPreassigned=quote(symget(''IsPreassigned''));'; + put 'prototypeuri=quote(symget(''prototypeuri''));'; + put '/* escape description so it can be stored as XML */'; + put 'libdesc=tranwrd(symget(''libdesc''),''&'',''&'');'; + put 'libdesc=tranwrd(libdesc,''<'',''<'');'; + put 'libdesc=tranwrd(libdesc,''>'',''>'');'; + put 'libdesc=tranwrd(libdesc,"''",''''');'; + put 'libdesc=tranwrd(libdesc,''"'',''"'');'; + put 'libdesc=tranwrd(libdesc,''0A''x,'' '');'; + put 'libdesc=tranwrd(libdesc,''0D''x,'' '');'; + put 'libdesc=tranwrd(libdesc,''$'',''$'');'; + put 'libdesc=quote(trim(libdesc));'; + put 'put "$METAREPOSITORY "/'; + put '''''/'; + put ''' ''/'; + put ''' "/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put '" "/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put ''' ''/'; + put '''SAS''/'; + put '''268435456'';'; + put 'run;'; + put 'proc metadata in= &frefin out=&frefout %if &mdebug=1 %then verbose ;;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input;put _infile_;'; + put 'run;'; + put '%end;'; + put '%put NOTE: Checking to ensure library (&libname) was created;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree/&libname","Library",type,uri);'; + put 'call symputx(''libtype'',type,''l'');'; + put 'call symputx(''liburi'',uri,''l'');'; + put '%if &mdebug=1 %then putlog (_all_)(=);;'; + put 'run;'; + put '%if &libtype ne SASLibrary %then %do;'; + put '%put %str(ERR)OR: Could not find (&libname) at (&tree)!!;'; + put '%return;'; + put '%end;'; + put '%else %put NOTE: Library (&libname) successfully created in (&tree)!;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Other library engine types are not yet supported!!;'; + put '%end;'; + put '/**'; + put '* Wrap up'; + put '*/'; + put '%if &mdebug ne 1 %then %do;'; + put 'filename &frefin clear;'; + put 'filename &frefout clear;'; + put '%end;'; + put '%mend mm_createlibrary;'; + put '%macro mm_createdocument('; + put 'tree=/User Folders/sasdemo'; + put ',name=myNote'; + put ',desc=Created by &sysmacroname'; + put ',textrole='; + put ',frefin=mm_in'; + put ',frefout=mm_out'; + put ',mDebug=1'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%mp_abort(iftrue= (%mf_verifymacvars(tree name)=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Empty inputs: tree name)'; + put ')'; + put '/**'; + put '* check tree exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; + put 'call symputx(''type'',type,''l'');'; + put 'call symputx(''treeuri'',uri,''l'');'; + put 'run;'; + put '%mp_abort('; + put 'iftrue= (&type ne Tree)'; + put ',mac=mm_createdocument.sas'; + put ',msg=Tree &tree does not exist!'; + put ')'; + put '/**'; + put '* Check object does not exist already'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree/&name","Note",type,uri);'; + put 'call symputx(''type'',type,''l'');'; + put 'call symputx(''docuri'',uri,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if &type = Document %then %do;'; + put '%put Document &name already exists in &tree!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Now we can create the document'; + put '*/'; + put 'filename &frefin temp;'; + put '/* write header XML */'; + put 'data _null_;'; + put 'file &frefin;'; + put 'name=quote("&name");'; + put 'desc=quote("&desc");'; + put 'textrole=quote("&textrole");'; + put 'treeuri=quote("&treeuri");'; + put 'put "$METAREPOSITORY"/'; + put '''"/'; + put '" "/'; + put ''' '' /'; + put '''''/'; + put '/*URI="Document for public note" */'; + put '""/'; + put '"SAS"/'; + put '"268435456";'; + put 'run;'; + put 'filename &frefout temp;'; + put 'proc metadata in= &frefin out=&frefout verbose;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '%mend mm_createdocument;'; + put '%macro mm_deletedocument('; + put 'target='; + put ')/*/STORE SOURCE*/;'; + put '/**'; + put '* Check document exist'; + put '*/'; + put '%local type;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; + put 'call symputx(''type'',type,''l'');'; + put 'call symputx(''stpuri'',uri,''l'');'; + put 'run;'; + put '%if &type ne Document %then %do;'; + put '%put %str(WARN)ING: No Document found at ⌖'; + put '%return;'; + put '%end;'; + put 'filename __in temp lrecl=10000;'; + put 'filename __out temp lrecl=10000;'; + put 'data _null_ ;'; + put 'file __in ;'; + put 'put "";'; + put 'put "SAS268436480";'; + put 'put "";'; + put 'run ;'; + put 'proc metadata in=__in out=__out verbose;run;'; + put '/* list the result */'; + put 'data _null_;infile __out; input; list; run;'; + put 'filename __in clear;'; + put 'filename __out clear;'; + put '/**'; + put '* Check deletion'; + put '*/'; + put '%local isgone;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; + put 'call symputx(''isgone'',type,''l'');'; + put 'run;'; + put '%if &isgone = Document %then %do;'; + put '%put %str(ERR)OR: Document not deleted from ⌖'; + put '%let syscc=4;'; + put '%return;'; + put '%end;'; + put '%mend mm_deletedocument;'; + put '%macro mm_deletestp('; + put 'target='; + put ')/*/STORE SOURCE*/;'; + put '/**'; + put '* Check STP does exist'; + put '*/'; + put '%local cmtype;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&target",''StoredProcess'',type,uri);'; + put 'call symputx(''cmtype'',type,''l'');'; + put 'call symputx(''stpuri'',uri,''l'');'; + put 'run;'; + put '%if &cmtype ne ClassifierMap %then %do;'; + put '%put NOTE: No Stored Process found at ⌖'; + put '%return;'; + put '%end;'; + put 'filename __in temp lrecl=10000;'; + put 'filename __out temp lrecl=10000;'; + put 'data _null_ ;'; + put 'file __in ;'; + put 'put "";'; + put 'put "SAS268436480";'; + put 'put "";'; + put 'run ;'; + put 'proc metadata in=__in out=__out verbose;run;'; + put '/* list the result */'; + put 'data _null_;infile __out; input; list; run;'; + put 'filename __in clear;'; + put 'filename __out clear;'; + put '/**'; + put '* Check deletion'; + put '*/'; + put '%local isgone;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; + put 'call symputx(''isgone'',type,''l'');'; + put 'run;'; + put '%if &isgone = ClassifierMap %then %do;'; + put '%put %str(ERR)OR: STP not deleted from ⌖'; + put '%let syscc=4;'; + put '%return;'; + put '%end;'; + put '%mend mm_deletestp;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mm_getDirectories('; + put 'path='; + put ',outds=work.mm_getDirectories'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getDirectories.sas;'; + put '%&mD.put _local_;'; + put 'data &outds (keep=directoryuri name directoryname directorydesc );'; + put 'length directoryuri name directoryname directorydesc $256;'; + put 'call missing(of _all_);'; + put '__i+1;'; + put '%if %length(&path)=0 %then %do;'; + put 'do while'; + put '(metadata_getnobj("omsobj:Directory?@Id contains ''.''",__i,directoryuri)>0);'; + put '%end; %else %do;'; + put 'do while('; + put 'metadata_getnobj("omsobj:Directory?@DirectoryName=''&path''",__i,directoryuri)'; + put '>0'; + put ');'; + put '%end;'; + put '__rc1=metadata_getattr(directoryuri, "Name", name);'; + put '__rc2=metadata_getattr(directoryuri, "DirectoryName", directoryname);'; + put '__rc3=metadata_getattr(directoryuri, "Desc", directorydesc);'; + put '&mD.putlog (_all_) (=);'; + put 'drop __:;'; + put '__i+1;'; + put 'if sum(of __rc1-__rc3)=0 then output;'; + put 'end;'; + put 'run;'; + put '%mend mm_getDirectories;'; + put '%macro mm_updatestpsourcecode(stp='; + put ',stpcode='; + put ',minify=NO'; + put ',mdebug=0'; + put ');'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&stp.(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '%if &mdebug=1 %then %do;'; + put 'put tsuri= value=;'; + put '%end;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%if &tsuri=stopifempty %then %do;'; + put '%put %str(WARN)ING: &stp.(StoredProcess) not found!;'; + put '%return;'; + put '%end;'; + put '%if %length(&stpcode)<2 %then %do;'; + put '%put %str(WARN)ING: No SAS code supplied!!;'; + put '%return;'; + put '%end;'; + put '%local frefin frefout;'; + put '%let frefin=%mf_getuniquefileref();'; + put '%let frefout=%mf_getuniquefileref();'; + put '/* write header XML */'; + put 'data _null_;'; + put 'file &frefin;'; + put 'put "$METAREPOSITORY'; + put '2 %then %do;'; + put 'data _null_;'; + put 'file &frefin lrecl=32767 mod;'; + put 'infile &stpcode lrecl=32767;'; + put 'length outstr $32767;'; + put 'input outstr ;'; + put '/* escape code so it can be stored as XML */'; + put 'outstr=tranwrd(_infile_,''&'',''&'');'; + put 'outstr=tranwrd(outstr,''<'',''<'');'; + put 'outstr=tranwrd(outstr,''>'',''>'');'; + put 'outstr=tranwrd(outstr,"''",''''');'; + put 'outstr=tranwrd(outstr,''"'',''"'');'; + put 'outstr=tranwrd(outstr,''0A''x,'' '');'; + put 'outstr=tranwrd(outstr,''0D''x,'' '');'; + put 'outstr=tranwrd(outstr,''$'',''$'');'; + put '%if &minify=YES %then %do;'; + put 'outstr=cats(outstr);'; + put 'if outstr ne '''';'; + put 'if not (outstr=:''/*'' and subpad(left(reverse(outstr)),1,2)=''/*'');'; + put '%end;'; + put 'outstr=trim(outstr);'; + put 'put outstr '' '';'; + put 'run;'; + put '%end;'; + put 'data _null_;'; + put 'file &frefin mod;'; + put 'put "''>SAS268435456'; + put '";'; + put 'run;'; + put 'proc metadata in= &frefin out=&frefout;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile &frefout lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'filename &frefin clear;'; + put 'filename &frefout clear;'; + put '%end;'; + put '%mend mm_updatestpsourcecode;'; + put '%macro mm_getservercontexts('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* first get list of available repos */'; + put '%mm_getrepos(outds=work.repos)'; + put '%let repocnt=0;'; + put 'data _null_;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'');'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put 'filename __mc1 temp;'; + put 'filename __mc2 temp;'; + put 'data &outds;'; + put 'length serveruri servername $200;'; + put 'call missing (of _all_);'; + put 'stop;'; + put 'run;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'proc metadata in='; + put '"$METAREPOSITORY'; + put 'ServerContextSAS'; + put '0"'; + put 'out=__mc1;'; + put 'run;'; + put '/*'; + put 'data _null_;'; + put 'infile __mc1 lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put 'data _null_;'; + put 'file __mc2;'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/ServerContext";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/ServerContext/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/ServerContext/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname __mc3 xml xmlfileref=__mc1 xmlmap=__mc2;'; + put 'proc append base=&outds data=__mc3.SASContexts;run;'; + put 'libname __mc3 clear;'; + put '%end;'; + put 'options metarepository=&repo;'; + put 'filename __mc1 clear;'; + put 'filename __mc2 clear;'; + put '%mend mm_getservercontexts;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mm_createstp('; + put 'stpname=Macro People STP'; + put ',stpdesc=This stp was created automatically by the mm_createstp macro'; + put ',filename=mm_createstp.sas'; + put ',directory=SASEnvironment/SASCode'; + put ',tree=/User Folders/sasdemo'; + put ',package=false'; + put ',streaming=true'; + put ',outds=work.mm_createstp'; + put ',mDebug=0'; + put ',server=SASApp'; + put ',stptype=1'; + put ',minify=NO'; + put ',frefin=mm_in'; + put ',frefout=mm_out'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_CreateSTP.sas;'; + put '%&mD.put _local_;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(stpname filename directory tree)=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Empty inputs: stpname filename directory tree)'; + put ')'; + put '%mp_dropmembers(%scan(&outds,2,.))'; + put '/**'; + put '* check tree exists'; + put '*/'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; + put 'call symputx(''foldertype'',type,''l'');'; + put 'call symputx(''treeuri'',uri,''l'');'; + put 'run;'; + put '%if &foldertype ne Tree %then %do;'; + put '%put %str(WARN)ING: Tree &tree does not exist!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check STP does not exist already'; + put '*/'; + put '%local cmtype;'; + put 'data _null_;'; + put 'length type uri $256;'; + put 'rc=metadata_pathobj("","&tree/&stpname",''StoredProcess'',type,uri);'; + put 'call symputx(''cmtype'',type,''l'');'; + put 'call symputx(''stpuri'',uri,''l'');'; + put 'run;'; + put '%if &cmtype = ClassifierMap %then %do;'; + put '%put %str(WARN)ING: Stored Process &stpname already exists in &tree!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Check that the physical file exists'; + put '*/'; + put '%if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do;'; + put '%put %str(WARN)ING: FILE *&directory/&filename* NOT FOUND!;'; + put '%return;'; + put '%end;'; + put '%if &stptype=1 %then %do;'; + put '/* type 1 STP - where code is stored on filesystem */'; + put '%if %sysevalf(&sysver lt 9.2) %then %do;'; + put '%put %str(WARN)ING: Version 9.2 or later required;'; + put '%return;'; + put '%end;'; + put '/* check directory object (where 9.2 source code reference is stored) */'; + put 'data _null_;'; + put 'length id $20 dirtype $256;'; + put 'rc=metadata_resolve("&directory",dirtype,id);'; + put 'call symputx(''checkdirtype'',dirtype,''l'');'; + put 'run;'; + put '%if &checkdirtype ne Directory %then %do;'; + put '%mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug)'; + put '%if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do;'; + put '%put %str(WARN)ING: The directory object does not exist for &directory;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data &outds;'; + put 'directoryuri="&directory";'; + put 'run;'; + put '%end;'; + put 'data &outds (keep=stpuri prompturi fileuri texturi);'; + put 'length stpuri prompturi fileuri texturi serveruri $256 ;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'set &outds;'; + put '/* final checks on uris */'; + put 'length id $20 type $256;'; + put '__rc=metadata_resolve("&treeuri",type,id);'; + put 'if type ne ''Tree'' then do;'; + put 'putlog "%str(WARN)ING: Invalid tree URI: &treeuri";'; + put 'stopme=1;'; + put 'end;'; + put '__rc=metadata_resolve(directoryuri,type,id);'; + put 'if type ne ''Directory'' then do;'; + put 'putlog "%str(WARN)ING: Invalid directory URI: " directoryuri;'; + put 'stopme=1;'; + put 'end;'; + put '/* get server info */'; + put '__rc=metadata_resolve("&server",type,serveruri);'; + put 'if type ne ''LogicalServer'' then do;'; + put '__rc=metadata_getnobj("omsobj:LogicalServer?@Name=''&server''",1,serveruri);'; + put 'if serveruri='''' then do;'; + put 'putlog "%str(WARN)ING: Invalid server: &server";'; + put 'stopme=1;'; + put 'end;'; + put 'end;'; + put 'if stopme=1 then do;'; + put 'putlog (_all_)(=);'; + put 'stop;'; + put 'end;'; + put '/* create empty prompt */'; + put 'rc1=METADATA_NEWOBJ(''PromptGroup'',prompturi,''Parameters'');'; + put 'rc2=METADATA_SETATTR(prompturi, ''UsageVersion'', ''1000000'');'; + put 'rc3=METADATA_SETATTR(prompturi, ''GroupType'',''2'');'; + put 'rc4=METADATA_SETATTR(prompturi, ''Name'',''Parameters'');'; + put 'rc5=METADATA_SETATTR(prompturi, ''PublicType'',''Embedded:PromptGroup'');'; + put 'GroupInfo='; + put '"";'; + put 'rc6 = METADATA_SETATTR(prompturi, ''GroupInfo'',groupinfo);'; + put 'if sum(of rc1-rc6) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating prompt.";'; + put 'if prompturi ne . then do;'; + put 'putlog '' Removing orphan: '' prompturi;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'put rc=;'; + put 'end;'; + put 'stop;'; + put 'end;'; + put '/* create a file uri */'; + put 'rc7=METADATA_NEWOBJ(''File'',fileuri,''SP Source File'');'; + put 'rc8=METADATA_SETATTR(fileuri, ''FileName'',"&filename");'; + put 'rc9=METADATA_SETATTR(fileuri, ''IsARelativeName'',''1'');'; + put 'rc10=METADATA_SETASSN(fileuri, ''Directories'',''MODIFY'',directoryuri);'; + put 'if sum(of rc7-rc10) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating file.";'; + put 'if fileuri ne . then do;'; + put 'putlog '' Removing orphans:'' prompturi fileuri;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'rc = METADATA_DELOBJ(fileuri);'; + put 'put (_all_)(=);'; + put 'end;'; + put 'stop;'; + put 'end;'; + put '/* create a TextStore object */'; + put 'rc11= METADATA_NEWOBJ(''TextStore'',texturi,''Stored Process'');'; + put 'rc12= METADATA_SETATTR(texturi, ''TextRole'',''StoredProcessConfiguration'');'; + put 'rc13= METADATA_SETATTR(texturi, ''TextType'',''XML'');'; + put 'storedtext='''''; + put '!!""'; + put '!!"";'; + put 'rc14= METADATA_SETATTR(texturi, ''StoredText'',storedtext);'; + put 'if sum(of rc11-rc14) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating TextStore.";'; + put 'if texturi ne . then do;'; + put 'putlog '' Removing orphans: '' prompturi fileuri texturi;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'rc = METADATA_DELOBJ(fileuri);'; + put 'rc = METADATA_DELOBJ(texturi);'; + put 'put (_all_)(=);'; + put 'end;'; + put 'stop;'; + put 'end;'; + put '/* create meta obj */'; + put 'rc15= METADATA_NEWOBJ(''ClassifierMap'',stpuri,"&stpname");'; + put 'rc16= METADATA_SETASSN(stpuri, ''Trees'',''MODIFY'',treeuri);'; + put 'rc17= METADATA_SETASSN(stpuri, ''ComputeLocations'',''MODIFY'',serveruri);'; + put 'rc18= METADATA_SETASSN(stpuri, ''SourceCode'',''MODIFY'',fileuri);'; + put 'rc19= METADATA_SETASSN(stpuri, ''Prompts'',''MODIFY'',prompturi);'; + put 'rc20= METADATA_SETASSN(stpuri, ''Notes'',''MODIFY'',texturi);'; + put 'rc21= METADATA_SETATTR(stpuri, ''PublicType'', ''StoredProcess'');'; + put 'rc22= METADATA_SETATTR(stpuri, ''TransformRole'', ''StoredProcess'');'; + put 'rc23= METADATA_SETATTR(stpuri, ''UsageVersion'', ''1000000'');'; + put 'rc24= METADATA_SETATTR(stpuri, ''Desc'', "&stpdesc");'; + put '/* tidy up if err */'; + put 'if sum(of rc15-rc24) ne 0 then do;'; + put 'putlog "%str(WARN)ING: Issue creating STP.";'; + put 'if stpuri ne . then do;'; + put 'putlog '' Removing orphans: '' prompturi fileuri texturi stpuri;'; + put 'rc = METADATA_DELOBJ(prompturi);'; + put 'rc = METADATA_DELOBJ(fileuri);'; + put 'rc = METADATA_DELOBJ(texturi);'; + put 'rc = METADATA_DELOBJ(stpuri);'; + put 'put (_all_)(=);'; + put 'end;'; + put 'end;'; + put 'else do;'; + put 'fullpath=cats(''_program='',treepath,"/&stpname");'; + put 'putlog "NOTE: Stored Process Created!";'; + put 'putlog "NOTE- "; putlog "NOTE-"; putlog "NOTE-" fullpath;'; + put 'putlog "NOTE- "; putlog "NOTE-";'; + put 'end;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '%else %if &stptype=2 %then %do;'; + put '/* type 2 stp - code is stored in metadata */'; + put '%if %sysevalf(&sysver lt 9.3) %then %do;'; + put '%put %str(WARN)ING: SAS version 9.3 or later required to create type2 STPs;'; + put '%return;'; + put '%end;'; + put '/* check we have the correct ServerContext */'; + put '%mm_getservercontexts(outds=contexts)'; + put '%local serveruri; %let serveruri=NOTFOUND;'; + put 'data _null_;'; + put 'set contexts;'; + put 'where upcase(servername)="%upcase(&server)";'; + put 'call symputx(''serveruri'',serveruri);'; + put 'run;'; + put '%if &serveruri=NOTFOUND %then %do;'; + put '%put %str(WARN)ING: ServerContext *&server* not found!;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* First, create a Hello World type 2 stored process'; + put '*/'; + put 'filename &frefin temp;'; + put 'data _null_;'; + put 'file &frefin;'; + put 'treeuri=quote(symget(''treeuri''));'; + put 'serveruri=quote(symget(''serveruri''));'; + put 'stpdesc=quote(symget(''stpdesc''));'; + put 'stpname=quote(symget(''stpname''));'; + put 'put "$METAREPOSITORY "/'; + put '''''/'; + put '" "/'; + put '" "/'; + put '" "/'; + put '" "/'; + put ''' ''/'; + put ''' '' /'; + put '" "/'; + put '" "/'; + put ''' ''/'; + put '" "/'; + put '""/'; + put '"SAS"/'; + put '"268435456";'; + put 'run;'; + put 'filename &frefout temp;'; + put 'proc metadata in= &frefin out=&frefout ;'; + put 'run;'; + put '%if &mdebug=1 %then %do;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile &frefout lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '/**'; + put '* Next, add the source code'; + put '*/'; + put '%mm_updatestpsourcecode(stp=&tree/&stpname'; + put ',stpcode="&directory/&filename"'; + put ',mdebug=&mdebug'; + put ',minify=&minify)'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: STPTYPE=*&stptype* not recognised!;'; + put '%end;'; + put '%mend mm_createstp;'; + put '%macro mf_mkdir(dir'; + put ')/*/STORE SOURCE*/;'; + put '%local lastchar child parent;'; + put '%let lastchar = %substr(&dir, %length(&dir));'; + put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; + put '/* Cannot create drive mappings */'; + put '%return;'; + put '%end;'; + put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; + put '/* last char is a slash */'; + put '%if (%length(&dir) eq 1) %then %do;'; + put '/* one single slash - root location is assumed to exist */'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '/* strip last slash */'; + put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; + put '%end;'; + put '%end;'; + put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; + put '/* directory does not exist so prepare to create */'; + put '/* first get the childmost directory */'; + put '%let child = %scan(&dir, -1, %str(/\:));'; + put '/*'; + put 'If child name = path name then there are no parents to create. Else'; + put 'they must be recursively scanned.'; + put '*/'; + put '%if (%length(&dir) gt %length(&child)) %then %do;'; + put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; + put '%mf_mkdir(&parent)'; + put '%end;'; + put '/*'; + put 'Now create the directory. Complain loudly of any errs.'; + put '*/'; + put '%let dname = %sysfunc(dcreate(&child, &parent));'; + put '%if (%bquote(&dname) eq ) %then %do;'; + put '%put %str(ERR)OR: could not create &parent + &child;'; + put '%abort cancel;'; + put '%end;'; + put '%else %do;'; + put '%put Directory created: &dir;'; + put '%end;'; + put '%end;'; + put '/* exit quietly if directory did exist.*/'; + put '%mend mf_mkdir;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Create a demo (base engine) library'; + put '@details'; + put 'Creates the library'; + put '@warning This STP self destructs! It will delete itself after a successful run'; + put 'to avoid being executed twice (and overwriting actual data)'; + put '

SAS Macros

'; + put '@li mm_createlibrary.sas'; + put '@li mm_createdocument.sas'; + put '@li mm_deletedocument.sas'; + put '@li mp_abort.sas'; + put '@li dc_assignlib.sas'; + put '@li mm_deletestp.sas'; + put '@li mm_createstp.sas'; + put '@li mf_mkdir.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%global dcpath;'; + put '%let dclib=%upcase(DC%substr(%sysevalf(%sysfunc(datetime())/60),3,6));'; + put '%let dclibname=Data Controller(&dclib);'; + put '%let work=%sysfunc(pathname(work));'; + put '%let dcpath=&dcpath/&dclib;'; + put '%mf_mkdir(&dcpath)'; + put '%mf_mkdir(&work)'; + put '%put &=dcpath;'; + put '/* check we have physical permissions to the DCLIB folder */'; + put 'data _null_;'; + put 'file "&dcpath/permTest.txt";'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(User &sysuserid does not have WRITE permissions on physical'; + put 'directory: &dcpath )'; + put ')'; + put 'filename delfile "&dcpath/permTest.txt";'; + put 'data _null_;'; + put 'rc=fdelete(''delfile'');'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(User &sysuserid could create (but not delete) &dcpath/permTest.txt )'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Unable to write to &dcpath)'; + put ')'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'rootlen=length(trim(pgm))-length("/services/admin/makelib");'; + put 'root=substr(pgm,1,rootlen);'; + put 'putlog root=;'; + put 'call symputx(''deploy_dir'',root);'; + put 'run;'; + put 'options noquotelenmax ps=max;'; + put '/* check we have the admin rights to update the items in the Admin folder */'; + put '%mm_createdocument(tree=&deploy_dir/services/admin,name=permTest)'; + put '%mm_deletedocument(target=&deploy_dir/services/admin/permTest)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(User &_metaperson does not have WriteMetadata on SAS folder:'; + put '&deploy_dir )'; + put ')'; + put '/**'; + put '* Create library and load data'; + put '*/'; + put '%let mpelibname=Data Controller (&dclib);'; + put '%mm_createlibrary('; + put 'libname=&mpelibname'; + put ',libref=&dclib'; + put ',libdesc=Configuration tables for the MacroPeople Data Controller application'; + put ',engine=BASE'; + put ',tree=&deploy_dir/data'; + put ',servercontext=SASApp'; + put ',directory=&dcpath'; + put ',mDebug=1)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Unable to create &dclib library)'; + put ')'; + put '/* get direct libref */'; + put '%dc_assignlib(READ,&dclib)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Unable to assign &dclib library)'; + put ')'; + put '/* create an initial settings service (this will be overwritten in the'; + put 'data update step)'; + put '*/'; + put '%let temploc=&work/temp.txt;'; + put 'data _null_;'; + put 'file "&temploc" ;'; + put 'put ''/* Data Controller Precode */'' / / ;'; + put 'put '' '';'; + put 'put ''options noquotelenmax ps=max;'';'; + put 'put ''%global DC_LIBREF DC_LIBNAME;'';'; + put 'put '' '';'; + put 'put ''/* This metadata library (libref) contains control datasets for DC */'';'; + put 'put ''/* If a different libref must be used, configure it below */'';'; + put 'put ''%let DC_LIBREF='' "&dclib;";'; + put 'put ''%let DC_LIBNAME='' "&mpelibname;";'; + put 'put '' '';'; + put 'put ''/* get physical path for direct libname - needed to track requests */'';'; + put 'put ''data _null_;'';'; + put 'put '' length lib_uri up_uri path $256;'';'; + put 'put '' call missing (of _all_);'';'; + put 'put '' rc=metadata_getnobj("omsobj:SASLibrary?@Libref=''''&dc_libref''''",1,lib_uri);'';'; + put 'put '' rc=metadata_getnasn(lib_uri,"UsingPackages",1,up_uri);'';'; + put 'put '' rc=metadata_getattr(up_uri,"DirectoryName",path);'';'; + put 'put '' call symputx("dc_libloc",path);'';'; + put 'put ''run;'';'; + put 'put ''libname &DC_LIBREF "&dc_libloc";'';'; + put 'put '' '';'; + put 'run;'; + put '%mm_deletestp(target=&deploy_dir/services/public/Data_Controller_Settings)'; + put '%mm_createstp(stpname=Data_Controller_Settings'; + put ',filename=temp.txt'; + put ',directory=&work'; + put ',tree=&deploy_dir/services/public'; + put ',Server=SASApp'; + put ',stptype=2'; + put ',mdebug=1'; + put ',stpdesc=Data Controller Configuration'; + put ',minify=NO)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Issue creating settings stp)'; + put ')'; + put 'data _null_;'; + put 'file _webout;'; + put 'put "

Library &dclib successfully assigned

";'; + put 'run;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=refreshcatalog; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '%macro mpe_refreshlibs();'; + put '%dc_getlibs(outds=work.mm_getLibs)'; + put 'proc sort data=mm_getlibs;'; + put 'by libraryref libraryname;'; + put 'run;'; + put 'data libs0;'; + put 'set mm_getlibs;'; + put 'by libraryref;'; + put 'if "%mf_getplatform()"="SASMETA" then do;'; + put '/* note - invalid libraries can result in exception errors. If this happens,'; + put 'configure the dc_viewlib_check variable to NO in Data Controller Settings */'; + put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; + put 'drop rc;'; + put 'if rc ne 0 then do;'; + put 'putlog "NOTE: Library " libraryname " does not exist!!";'; + put 'putlog (_all_) (=);'; + put 'delete;'; + put 'end;'; + put 'end;'; + put 'if not first.libraryref then delete;'; + put 'run;'; + put 'proc sql;'; + put 'create table libs1 as'; + put 'select distinct libname'; + put ',engine'; + put ',path'; + put ',level'; + put ',sysname'; + put ',sysvalue'; + put 'from dictionary.libnames'; + put 'order by libname, level,engine,path;'; + put 'data libs2;'; + put 'set libs1;'; + put 'length tran $1024;'; + put 'if missing(sysname) then sysname=''Missing'';'; + put 'select(sysname);'; + put 'when(''Access Permission'') tran=''Permissions'';'; + put 'when(''Owner Name'') tran=''Owner'';'; + put 'when(''Schema/Owner'') tran=''schema'';'; + put 'otherwise tran=sysname;'; + put 'end;'; + put 'run;'; + put 'proc transpose data=libs2 out=libs3;'; + put 'by libname level engine path;'; + put 'var sysvalue;'; + put 'id tran;'; + put 'run;'; + put 'data libs4(rename=(libname=libref));'; + put 'length paths $8192 perms owners schemas $500 permissions owner schema $1024;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'set libs3;'; + put 'by libname;'; + put 'if engine=''V9'' then engine=''BASE'';'; + put 'if first.libname then do;'; + put 'retain paths perms owners schemas;'; + put 'paths=''(''!!quote(trim(path));'; + put 'perms=permissions;'; + put 'owners=owner;'; + put 'schemas=schema;'; + put 'end;'; + put 'else do;'; + put 'paths=trim(paths)!!'' ''!!quote(trim(path));'; + put 'perms=trim(perms)!!'',''!!trim(permissions);'; + put 'owners=trim(owners)!!'',''!!trim(owner);'; + put 'schemas=trim(schemas)!!'' ''!!trim(schema);'; + put 'end;'; + put 'if last.libname then do;'; + put 'paths=trim(paths)!!'')'';'; + put 'schemas=cats(schemas);'; + put 'output;'; + put 'end;'; + put 'keep libname engine paths perms owners schemas;'; + put 'run;'; + put 'proc sql;'; + put 'create table libs5 as'; + put 'select a.libref'; + put ',coalescec(b.engine,a.engine) as engine length=32'; + put ',b.libraryname as libname'; + put ',a.paths'; + put ',a.perms'; + put ',a.owners'; + put ',a.schemas'; + put ',b.libraryid as libid'; + put 'from libs4 a'; + put 'left join libs0 b'; + put 'on upcase(a.libref)=upcase(b.libraryref)'; + put 'where libref not in (''SASWORK'',''WORK'',''SASUSER'',''CASUSER'',''TEMP'',''STPSAMP'''; + put ',''MAPSGFK'');'; + put '%bitemporal_dataloader(base_lib=&dc_libref'; + put ',base_dsn=MPE_DATACATALOG_LIBS'; + put ',append_dsn=libs5'; + put ',PK=LIBREF'; + put ',etlsource=&_program'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&dc_libref'; + put ')'; + put '%mend mpe_refreshlibs;'; + put '/** @cond */'; + put '%macro mf_existfeature(feature'; + put ')/*/STORE SOURCE*/;'; + put '%let feature=%upcase(&feature);'; + put '%local platform;'; + put '%let platform=%mf_getplatform();'; + put '%if &feature= %then %do;'; + put '%put No feature was requested for detection;'; + put '%end;'; + put '%else %if &feature=COLCONSTRAINTS %then %do;'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=PROCLUA %then %do;'; + put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; + put '%if &platform=SASVIYA %then 1;'; + put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; + put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=DBMS_MEMTYPE %then %do;'; + put '/* does dbms_memtype exist in dictionary.tables? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=EXPORTXLS %then %do;'; + put '/* is it possible to PROC EXPORT an excel file? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; + put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; + put '%else 0;'; + put '%end;'; + put '%else %do;'; + put '-1'; + put '%put &sysmacroname: &feature not found;'; + put '%end;'; + put '%mend mf_existfeature;'; + put '/** @endcond */'; + put '%macro mp_getconstraints(lib=WORK'; + put ',ds='; + put ',outds=mp_getconstraints'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '/**'; + put '* Cater for environments where sashelp.vcncolu is not available'; + put '*/'; + put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; + put 'proc sql;'; + put 'create table &outds('; + put 'libref char(8)'; + put ',TABLE_NAME char(32)'; + put ',constraint_type char(8) label=''Constraint Type'''; + put ',constraint_name char(32) label=''Constraint Name'''; + put ',column_name char(32) label=''Column'''; + put ',constraint_order num'; + put ');'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Neither dictionary tables nor sashelp provides a constraint order column,'; + put '* however they DO arrive in the correct order. So, create the col.'; + put '**/'; + put '%local vw;'; + put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; + put 'data &vw /view=&vw;'; + put 'set sashelp.vcncolu;'; + put 'where table_catalog="&lib";'; + put '/* use retain approach to reset the constraint order with each constraint */'; + put 'length tmp $1000;'; + put 'retain tmp;'; + put 'drop tmp;'; + put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; + put 'constraint_order=1;'; + put 'end;'; + put 'else constraint_order+1;'; + put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; + put 'run;'; + put '/* must use SQL as proc datasets does not support length changes */'; + put 'proc sql noprint;'; + put 'create table &outds as'; + put 'select upcase(a.TABLE_CATALOG) as libref'; + put ',upcase(a.TABLE_NAME) as TABLE_NAME'; + put ',a.constraint_type'; + put ',a.constraint_name'; + put ',b.column_name'; + put ',b.constraint_order'; + put 'from dictionary.TABLE_CONSTRAINTS a'; + put 'left join &vw b'; + put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; + put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; + put 'and a.constraint_name=b.constraint_name'; + put '/**'; + put '* We cannot apply this clause to the underlying dictionary table. See:'; + put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; + put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; + put '* all the underlying constraint queries, causing exception errors in some'; + put '* cases: https://github.com/sasjs/core/issues/283'; + put '*/'; + put 'where a.TABLE_CATALOG="&lib"'; + put '%if "&ds" ne "" %then %do;'; + put 'and upcase(a.TABLE_NAME)="&ds"'; + put 'and upcase(b.TABLE_NAME)="&ds"'; + put '%end;'; + put 'order by libref, table_name, constraint_name, constraint_order'; + put ';'; + put '/* tidy up */'; + put '%mp_dropmembers('; + put '&vw,'; + put 'iftrue=(&mdebug=0)'; + put ')'; + put '%mend mp_getconstraints;'; + put '%macro mpe_refreshtables(lib,ds=#all);'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%local engine; %let engine=%mf_getengine(&lib);'; + put '%local schema; %let schema=%mf_getschema(&lib);'; + put '%put running &sysmacroname &lib(&engine &schema) for &ds;'; + put 'proc sql;'; + put 'create table cols as'; + put 'select libname as libref'; + put ',upcase(memname) as dsn'; + put ',memtype'; + put ',upcase(name) as name'; + put ',type'; + put ',length'; + put ',varnum'; + put ',label'; + put ',format'; + put ',idxusage'; + put ',notnull'; + put 'from dictionary.columns'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc afer &lib cols extraction)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc afer &lib indexes extraction)'; + put ')'; + put '%if &engine=SQLSVR %then %do;'; + put 'proc sql;'; + put 'connect using &lib;'; + put 'create table work.indexes as'; + put 'select * from connection to &lib('; + put 'select'; + put 's.name as SchemaName,'; + put 't.name as memname,'; + put 'tc.name as name,'; + put 'ic.key_ordinal as KeyOrderNr'; + put 'from'; + put 'sys.schemas s'; + put 'inner join sys.tables t on s.schema_id=t.schema_id'; + put 'inner join sys.indexes i on t.object_id=i.object_id'; + put 'inner join sys.index_columns ic on i.object_id=ic.object_id'; + put 'and i.index_id=ic.index_id'; + put 'inner join sys.columns tc on ic.object_id=tc.object_id'; + put 'and ic.column_id=tc.column_id'; + put 'where i.is_primary_key=1'; + put 'and s.name=%str(%'')&schema%str(%'')'; + put 'order by t.name, ic.key_ordinal ;'; + put ');disconnect from &lib;'; + put 'create table finalcols as'; + put 'select a.*'; + put ',case when b.name is not null then 1 else 0 end as pk_ind'; + put 'from work.cols a'; + put 'left join work.indexes b'; + put 'on a.dsn=b.memname'; + put 'and upcase(a.name)=upcase(b.name)'; + put 'order by libref,dsn;'; + put '%end;'; + put '%else %do;'; + put '%local dsn;'; + put '%if &ds = #ALL %then %let dsn=;'; + put '%mp_getconstraints(lib=&lib.,ds=&dsn,outds=work.constraints)'; + put 'proc sql;'; + put 'create table summ as'; + put 'select libref as libname'; + put ',table_name as memname'; + put ',column_name as name'; + put ',sum(case when constraint_type=''PRIMARY'' then 1 else 0 end) as pk4sure'; + put ',sum(case when constraint_type =''NOT NULL'' then 1 else 0 end) as notnull'; + put ',sum(case when constraint_type =''UNIQUE'' then 1 else 0 end) as unq'; + put 'from work.constraints'; + put 'group by 1,2,3;'; + put '/* if a PRIMARY constraint is definitely a PK */'; + put '/* if a UNIQUE where all cols are also NOT NULL then is effectively a PK */'; + put 'data pk4sure pkbydefault;'; + put 'set summ;'; + put 'if pk4sure = 1 then output pk4sure;'; + put 'else if unq=1 then do;'; + put 'if notnull =0 then falseflag=1;'; + put 'output pkbydefault;'; + put 'end;'; + put 'run;'; + put 'proc sql;'; + put 'create table finalpks'; + put 'as select * from pkbydefault'; + put 'where cats(libname,''.'',memname) not in ('; + put 'select cats(libname,''.'',memname) from pk4sure'; + put ')'; + put 'and cats(libname,''.'',memname) not in ('; + put 'select cats(libname,''.'',memname) from pkbydefault where falseflag=1)'; + put 'union select * from pk4sure;'; + put 'create table finalcols as'; + put 'select a.*'; + put ',case when b.pk4sure=1 or unq=1 then 1 else 0 end as pk_ind'; + put 'from work.cols a'; + put 'left join work.finalpks b'; + put 'on a.dsn=b.memname'; + put 'and upcase(a.name)=upcase(b.name)'; + put 'order by libref,dsn;'; + put '%end;'; + put '/* load columns */'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datacatalog_vars'; + put ',append_dsn=finalcols'; + put ',PK=LIBREF DSN NAME'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put '%if &ds ne #ALL %then %do;'; + put ',close_vars=LIBREF DSN'; + put '%end;'; + put ',dclib=&mpelib'; + put ')'; + put '/* prepare tables */'; + put 'proc sql;'; + put 'create table work.tabs as select'; + put 'libname as libref'; + put ',upcase(memname) as dsn'; + put ',memtype'; + put '%if %mf_existfeature(DBMS_MEMTYPE)=1 %then %do;'; + put ',dbms_memtype'; + put '%end;'; + put '%else %do;'; + put ',''n/a'' as dbms_memtype format=$32.'; + put '%end;'; + put ',typemem'; + put ',memlabel'; + put ',nvar'; + put ',compress'; + put 'from dictionary.tables'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put 'data tabs2;'; + put 'set finalcols;'; + put 'length pk_fields $512;'; + put 'retain pk_fields;'; + put 'by libref dsn;'; + put 'if first.dsn then pk_fields='''';'; + put 'if pk_ind=1 then pk_fields=catx('' '',pk_fields,name);'; + put 'if last.dsn then output;'; + put 'run;'; + put 'proc sql;'; + put 'create table work.finaltabs as'; + put 'select a.libref'; + put ',a.dsn'; + put ',a.memtype'; + put ',a.dbms_memtype'; + put ',a.typemem'; + put ',a.memlabel'; + put ',a.nvar'; + put ',a.compress'; + put ',b.pk_fields'; + put 'from work.tabs a'; + put 'left join work.tabs2 b'; + put 'on a.libref=b.libref'; + put 'and a.dsn=b.dsn;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datacatalog_tabs'; + put ',append_dsn=finaltabs'; + put ',PK=LIBREF DSN'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put '%if &ds ne #ALL %then %do;'; + put ',close_vars=LIBREF'; + put '%end;'; + put ')'; + put '/* prepare table frequently changing attributes */'; + put 'proc sql;'; + put '%if &engine=SQLSVR %then %do;'; + put 'connect using &lib;'; + put 'create table work.attrs as select * from connection to &lib('; + put 'SELECT SCHEMA_NAME(schema_id) as ''schema'', name, create_date, modify_date'; + put 'FROM sys.tables ;'; + put ');'; + put 'create table work.nobs as select * from connection to &lib('; + put 'SELECT SCHEMA_NAME(A.schema_id) AS ''schema'''; + put ',A.Name, AVG(B.rows) AS ''RowCount'''; + put 'FROM sys.objects A'; + put 'INNER JOIN sys.partitions B ON A.object_id = B.object_id'; + put 'WHERE A.type = ''U'''; + put 'GROUP BY A.schema_id, A.Name'; + put ');'; + put 'disconnect from &lib;'; + put 'create table statustabs as select'; + put 'a.libref'; + put ',a.dsn'; + put ',b.create_date as crdate'; + put ',b.modify_date as modate'; + put ',. as filesize'; + put ',c.RowCount as nobs'; + put 'from work.tabs a'; + put 'left join work.attrs(where=(schema="&schema")) b'; + put 'on upcase(a.dsn)=upcase(b.name)'; + put 'left join work.nobs(where=(schema="&schema")) c'; + put 'on upcase(a.dsn)=upcase(c.name);'; + put '%end;'; + put '%else %do;'; + put 'create table statustabs as select'; + put 'libname as libref'; + put ',upcase(memname) as dsn'; + put ',crdate'; + put ',modate'; + put ',filesize'; + put ',nobs'; + put 'from dictionary.tables'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put '%end;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datastatus_tabs'; + put ',append_dsn=statustabs'; + put ',PK=LIBREF DSN'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put '%if &ds ne #ALL %then %do;'; + put ',close_vars=LIBREF'; + put '%end;'; + put ')'; + put '%if &ds = #ALL %then %do;'; + put 'proc sql;'; + put 'create table statuslibs as select'; + put 'libref'; + put ',sum(filesize) as libsize'; + put ',count(*) as table_cnt'; + put 'from statustabs'; + put 'group by 1;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datastatus_libs'; + put ',append_dsn=statuslibs'; + put ',PK=LIBREF'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put ')'; + put '%end;'; + put '%mend mpe_refreshtables;'; + put '%macro dc_refreshcatalog(libref);'; + put '/* take current repository */'; + put '%local repo repocnt xx;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'put (_all_)(=);'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'');'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put &sysmacroname #&libref#;'; + put '%if #&libref# ne ## %then %do;'; + put '%put &sysmacroname: assigning specific libref, &libref;'; + put '%dc_assignlib(WRITE,&libref) /* write just in order to assign direct lib */'; + put '%mpe_refreshtables(&libref)'; + put '%end;'; + put '%else %do xx=1 %to &repocnt;'; + put 'options metarepository=&&repo&xx;'; + put '%mpe_refreshlibs()'; + put '/* get libs to be ignored */'; + put '%local ignorelist;'; + put 'proc sql noprint;'; + put 'select var_value into: ignorelist'; + put 'from &mpelib..MPE_CONFIG'; + put 'where var_scope=''DC_CATALOG'''; + put 'and var_name="DC_IGNORELIBS"'; + put 'and &dc_dttmtfmt. < TX_TO'; + put 'and var_active=1;'; + put '/* get all libs */'; + put '%let libcnt=0;'; + put 'data libraries;'; + put 'set &mpelib..mpe_datacatalog_libs;'; + put 'where &dc_dttmtfmt. le TX_TO;'; + put 'if index("&ignorelist",''|''!!upcase(trim(libref))!!''|'')=0;'; + put 'i+1;'; + put 'call symputx(cats(''lib'',i),libref);'; + put 'call symputx(''libcnt'',i);'; + put 'run;'; + put '%local i;'; + put '%do i=1 %to &libcnt;'; + put '%dc_assignlib(WRITE,&&lib&i)'; + put '%mpe_refreshtables(&&lib&i)'; + put '%end;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_refreshcatalog;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file refreshcatalog.sas'; + put '@brief Refreshes the library data catalog'; + put '@details A library may be passed in a LIBREF url param.'; + put '

SAS Macros

'; + put '@li mpeinit.sas'; + put '@li dc_refreshcatalog.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%global libref;'; + put '%mpeinit()'; + put '%dc_refreshcatalog(&libref)'; + put 'data _null_;'; + put 'file _webout;'; + put 'put ''

Catalog Refresh Complete

'';'; + put 'run;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=refreshlibs; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '%macro mpe_refreshlibs();'; + put '%dc_getlibs(outds=work.mm_getLibs)'; + put 'proc sort data=mm_getlibs;'; + put 'by libraryref libraryname;'; + put 'run;'; + put 'data libs0;'; + put 'set mm_getlibs;'; + put 'by libraryref;'; + put 'if "%mf_getplatform()"="SASMETA" then do;'; + put '/* note - invalid libraries can result in exception errors. If this happens,'; + put 'configure the dc_viewlib_check variable to NO in Data Controller Settings */'; + put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; + put 'drop rc;'; + put 'if rc ne 0 then do;'; + put 'putlog "NOTE: Library " libraryname " does not exist!!";'; + put 'putlog (_all_) (=);'; + put 'delete;'; + put 'end;'; + put 'end;'; + put 'if not first.libraryref then delete;'; + put 'run;'; + put 'proc sql;'; + put 'create table libs1 as'; + put 'select distinct libname'; + put ',engine'; + put ',path'; + put ',level'; + put ',sysname'; + put ',sysvalue'; + put 'from dictionary.libnames'; + put 'order by libname, level,engine,path;'; + put 'data libs2;'; + put 'set libs1;'; + put 'length tran $1024;'; + put 'if missing(sysname) then sysname=''Missing'';'; + put 'select(sysname);'; + put 'when(''Access Permission'') tran=''Permissions'';'; + put 'when(''Owner Name'') tran=''Owner'';'; + put 'when(''Schema/Owner'') tran=''schema'';'; + put 'otherwise tran=sysname;'; + put 'end;'; + put 'run;'; + put 'proc transpose data=libs2 out=libs3;'; + put 'by libname level engine path;'; + put 'var sysvalue;'; + put 'id tran;'; + put 'run;'; + put 'data libs4(rename=(libname=libref));'; + put 'length paths $8192 perms owners schemas $500 permissions owner schema $1024;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'set libs3;'; + put 'by libname;'; + put 'if engine=''V9'' then engine=''BASE'';'; + put 'if first.libname then do;'; + put 'retain paths perms owners schemas;'; + put 'paths=''(''!!quote(trim(path));'; + put 'perms=permissions;'; + put 'owners=owner;'; + put 'schemas=schema;'; + put 'end;'; + put 'else do;'; + put 'paths=trim(paths)!!'' ''!!quote(trim(path));'; + put 'perms=trim(perms)!!'',''!!trim(permissions);'; + put 'owners=trim(owners)!!'',''!!trim(owner);'; + put 'schemas=trim(schemas)!!'' ''!!trim(schema);'; + put 'end;'; + put 'if last.libname then do;'; + put 'paths=trim(paths)!!'')'';'; + put 'schemas=cats(schemas);'; + put 'output;'; + put 'end;'; + put 'keep libname engine paths perms owners schemas;'; + put 'run;'; + put 'proc sql;'; + put 'create table libs5 as'; + put 'select a.libref'; + put ',coalescec(b.engine,a.engine) as engine length=32'; + put ',b.libraryname as libname'; + put ',a.paths'; + put ',a.perms'; + put ',a.owners'; + put ',a.schemas'; + put ',b.libraryid as libid'; + put 'from libs4 a'; + put 'left join libs0 b'; + put 'on upcase(a.libref)=upcase(b.libraryref)'; + put 'where libref not in (''SASWORK'',''WORK'',''SASUSER'',''CASUSER'',''TEMP'',''STPSAMP'''; + put ',''MAPSGFK'');'; + put '%bitemporal_dataloader(base_lib=&dc_libref'; + put ',base_dsn=MPE_DATACATALOG_LIBS'; + put ',append_dsn=libs5'; + put ',PK=LIBREF'; + put ',etlsource=&_program'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&dc_libref'; + put ')'; + put '%mend mpe_refreshlibs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file refreshlibs.sas'; + put '@brief Refreshes the library data catalog'; + put '@details'; + put '

SAS Macros

'; + put '@li mpeinit.sas'; + put '@li mpe_refreshlibs.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mpe_refreshlibs()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=refreshtablelineage; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file refreshtablelineage.sas'; + put '@brief updates the table level lineage'; + put '@details extracts all sources/targets from every job'; + put '

SAS Macros

'; + put '@li mpeinit.sas'; + put '@li bitemporal_dataloader.sas'; + put '@li mp_binarycopy.sas'; + put '@li mf_getuniquefileref.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/* get list of libraries */'; + put '%let fileref1=%mf_getuniquefileref();'; + put 'filename &fileref1 temp;'; + put 'proc metadata in='; + put '"$METAREPOSITORY'; + put 'JobSAS'; + put ''; + put '8452'; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put '"'; + put 'out=&fileref1'; + put ';'; + put 'run;'; + put '/* create an XML map and extract dependencies from response */'; + put '%macro getTables(type=);'; + put '%local x;'; + put '%do x=1 %to 2;'; + put '%local dir;'; + put '%if &x=1 %then %let dir=Source;'; + put '%else %let dir=Target;'; + put '%local y;'; + put '%do y=1 %to 3;'; + put '%local maptype;'; + put '%if &y=1 %then %let maptype=ClassifierMap;'; + put '%else %if &y=2 %then %let maptype=Select;'; + put '%else %if &y=3 %then %let maptype=Join;'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "";'; + put 'put "";'; + put 'put "/GetMetadataObjects/Objects/Job/JobActivities/TransformationActivi"@;'; + put 'put "ty/Steps/TransformationStep/Transformations/&maptype/Classifier"@;'; + put 'put "&dir.s/&type";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Job/@Id";'; + put 'put "characterstring17";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Job/@Name";'; + put 'put "characterstring128";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Job/JobActivities"@;'; + put 'put "/TransformationActivity/@Id";'; + put 'put "characterstring17";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Job/JobActivities"@;'; + put 'put "/TransformationActivity/Steps/TransformationStep/@Id";'; + put 'put "characterstring17";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Job/JobActivities"@;'; + put 'put "/TransformationActivity/Steps/TransformationStep/Transformations"@;'; + put 'put "/&maptype/@Id";'; + put 'put "characterstring17";'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetMetadataObjects/Objects/Job/JobActivities"@;'; + put 'put "/TransformationActivity/Steps/TransformationStep/Transformations/"@;'; + put 'put "&maptype/Classifier&dir.s/&type/@Id";'; + put 'put "characterstring17";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=&fileref1 xmlmap=sxlemap;'; + put 'data work.&dir.&type/view=work.&dir.&type;'; + put 'set _xml_.&dir.&type;'; + put 'length tabletype maptype $16 tabledirection $1;'; + put 'jobname=upcase(jobname);'; + put 'tabletype="&type";'; + put 'maptype="&maptype";'; + put 'if "&dir"="Source" then tabledirection="R";'; + put 'else tabledirection=''F'';'; + put 'run;'; + put 'proc append base=work.alldata data=work.&dir.&type;'; + put 'run;'; + put 'libname _XML_ clear;'; + put '%end;'; + put '%end;'; + put '%mend getTables;'; + put '/* list of types:'; + put 'https://support.sas.com/documentation/cdl/en/omamodref/63903/HTML/default/viewer.htm#classifiermap.htm'; + put '*/'; + put '%getTables(type=PhysicalTable)'; + put '%getTables(type=ExternalTable)'; + put '%getTables(type=QueryTable)'; + put '%getTables(type=RelationalTable)'; + put '%getTables(type=Report)'; + put '%getTables(type=Cube)'; + put '%getTables(type=DataTable)'; + put '/* remove dups and get tables */'; + put 'proc sort data=work.alldata(keep=jobid jobname tableid tabletype tabledirection)'; + put 'out=work.sorted nodupkey;'; + put 'by _all_;'; + put 'run;'; + put 'proc sort data=work.sorted(keep=tableid) out=work.tables nodupkey;'; + put 'by tableid;'; + put 'run;'; + put '/* this bit is slow due to lookups but given the different table types'; + put 'it was the easiest approach */'; + put 'data work.tables2;'; + put 'length tablename liburi puri $64 libref schemaname $8 ;'; + put 'if _n_=1 then call missing(tablename, liburi, puri, libref, schemaname);'; + put 'set work.tables;'; + put 'drop rc liburi;'; + put 'if metadata_getnasn(tableid,"TablePackage",1,liburi)>0 then do;'; + put 'rc= metadata_getattr(liburi, "SchemaName", SchemaName);'; + put 'if ^missing(SchemaName) then do;'; + put 'if metadata_getnasn(liburi,"UsedByPackages",1,puri)>0 then do;'; + put 'rc=metadata_getattr(puri,"Libref",libref);'; + put 'end;'; + put 'end;'; + put 'else rc=metadata_getattr(liburi,"Libref",libref);'; + put 'libref=upcase(libref);'; + put 'end;'; + put 'rc=metadata_getattr(tableid,"Name",tablename);'; + put 'tablename=upcase(tablename);'; + put 'run;'; + put 'proc sql;'; + put 'create table work.augmented as'; + put 'select a.*'; + put ',b.tablename'; + put ',b.libref'; + put 'from work.sorted a'; + put 'left join work.tables2 b'; + put 'on a.tableid=b.tableid;'; + put 'create table work.mpe_lineage_tabs as'; + put 'select distinct'; + put 'coalesce(a.jobid,b.jobid) as jobid,'; + put 'coalesce(a.jobname,b.jobname) as jobname,'; + put 'coalesce(a.tableid,"N/A") as srctableid,'; + put 'a.tabletype as srctabletype,'; + put 'a.tablename as srctablename,'; + put 'coalesce(a.libref,''nolib'') as srclibref,'; + put 'coalesce(b.tableid,"N/A") as tgttableid,'; + put 'b.tabletype as tgttabletype,'; + put 'b.tablename as tgttablename,'; + put 'coalesce(b.libref,''nolib'') as tgtlibref'; + put 'from work.augmented(where=(tabledirection=''R'')) a'; + put 'full join work.augmented(where=(tabledirection=''F'')) b'; + put 'on a.jobid=b.jobid'; + put ';'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=MPE_LINEAGE_TABS'; + put ',append_dsn=MPE_LINEAGE_TABS'; + put ',PK=jobid srctableid tgttableid'; + put ',etlsource=&_program'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put ')'; + put '%mp_binarycopy(inref=&fileref1, outref=_webout)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=registerkey; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Register a new licence key'; + put '@details'; + put '

SAS Macros

'; + put '@li mpeinit.sas'; + put '@li bitemporal_dataloader.sas'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@li mpe_getgroups.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '@test'; + put 'echo ''{"keyupload":[{"activation_key":"slfdjasfda;dslf","licence_key":"asdfasdlfkajsfdas"}]}''>in.json'; + put 'sasjs request admin/registerkey -d in.json'; + put '**/'; + put '%mpeinit()'; + put '/* determine users group membership */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; + put '%global admin_check;'; + put 'proc sql;'; + put 'select count(*) into: admin_check'; + put 'from groups where groupname="&mpeadmins";'; + put '%mp_abort(iftrue= (&admin_check = 0)'; + put ',mac=%str(&_program)'; + put ',msg=%str(Only members of &mpeadmins may register a key)'; + put ')'; + put '%global licencekey activation_key;'; + put 'data _null_;'; + put 'set work.keyupload;'; + put 'call symputx(''activation_key'',activation_key);'; + put 'call symputx(''licencekey'',licence_key);'; + put 'call symputx(''activlen'',length(activation_key));'; + put 'call symputx(''liclen'',length(licence_key));'; + put 'run;'; + put '%mp_abort(iftrue= (&activlen< 10)'; + put ',mac=%str(&_program)'; + put ',msg=%str(Invalid activation_key)'; + put ')'; + put '%mp_abort(iftrue= (&liclen < 10)'; + put ',mac=%str(&_program)'; + put ',msg=%str(Invalid licencekey)'; + put ')'; + put 'data work.loadme;'; + put 'if 0 then set &mpelib..mpe_config;'; + put 'VAR_SCOPE=''DC'';'; + put 'VAR_NAME=''DC_ACTIVATION_KEY'';'; + put 'VAR_VALUE=symget(''activation_key'');'; + put 'VAR_ACTIVE=1;'; + put 'output;'; + put 'VAR_NAME=''DC_LICENCE_KEY'';'; + put 'VAR_VALUE=symget(''licencekey'');'; + put 'VAR_ACTIVE=1;'; + put 'output;'; + put 'keep VAR_: ;'; + put 'run;'; + put '%bitemporal_dataloader('; + put 'tech_from=tx_from'; + put ',tech_to = tx_to'; + put ',base_lib=&mpelib'; + put ',base_dsn=mpe_config'; + put ',append_lib=WORK'; + put ',append_dsn=loadme'; + put ',PK= VAR_SCOPE VAR_NAME'; + put ',ETLSOURCE=%str(&_program STP)'; + put ',LOADTYPE=TXTEMPORAL'; + put ',dclib=&mpelib'; + put ')'; + put 'data work.return;'; + put 'msg=''SUCCESS'';'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,return)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/approvers; + +%let service=getapprovals; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getapprovals.sas'; + put '@brief Returns a list of staged data items that need to be approved'; + put '@details'; + put '

SAS Macros

'; + put '@li mpe_getgroups.sas'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/* determine users group membership */'; + put '%let user=%mf_getuser();'; + put '%mpe_getgroups(user=&user,outds=work.groups)'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put 'proc sql noprint;'; + put 'create table out1 (rename=(SUBMITTED_ON_DTTM1=SUBMITTED_ON_DTTM)) as'; + put 'select table_id'; + put ',submit_status_cd as REVIEW_STATUS_ID'; + put ',SUBMITTED_BY_NM'; + put ',cats(base_lib,''.'',base_ds) as base_table'; + put ',put(submitted_on_dttm,yymmddhhmmss.) as SUBMITTED_ON_DTTM1'; + put ',submitted_on_dttm as SUBMITTED_ON_DTTM2'; + put ',submitted_reason_txt'; + put ',num_of_approvals_required'; + put ',num_of_approvals_remaining'; + put ',base_lib as libref'; + put ',base_ds as dsn'; + put 'from &mpelib..mpe_submit (where=(submit_status_cd=''SUBMITTED''))'; + put '/* filter out any submits for which approval is already made */'; + put 'where table_id not in ('; + put 'select table_id from &mpelib..mpe_review where submitted_by_nm="&user"'; + put ');'; + put '%macro getapprovals();'; + put '%local admin_check;'; + put 'select count(*) into: admin_check'; + put 'from groups'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in ('; + put 'select sas_group from &mpelib..mpe_security'; + put 'where libref=''*ALL*'''; + put 'and &dc_dttmtfmt. lt tx_to'; + put 'and access_level in (''APPROVE'')'; + put ');'; + put '%if &admin_check >0 %then %do;'; + put 'create table fromSAS as'; + put 'select distinct * from out1'; + put 'order by SUBMITTED_ON_DTTM2 desc;'; + put '%end;'; + put '%else %do;'; + put 'create table fromSAS as'; + put 'select distinct a.*'; + put 'from out1 a'; + put 'inner join &mpelib..mpe_security b'; + put 'on a.libref=b.libref'; + put 'and (a.dsn=b.dsn or b.dsn=''*ALL*'')'; + put 'and &dc_dttmtfmt. lt b.tx_to'; + put 'and b.ACCESS_LEVEL =''APPROVE'''; + put 'and b.SAS_GROUP in (select groupname from work.groups)'; + put 'order by SUBMITTED_ON_DTTM2 desc;'; + put '%end;'; + put '%mend getapprovals;'; + put '%getapprovals()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,fromSAS)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=gethistory; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mpe_getvars(injs,outds);'; + put '/* load parameters */'; + put 'data _null_;'; + put '__dummychar='''';__dummynum=0;'; + put 'set &outds;'; + put 'array __charvals _character_;'; + put 'do over __charvals;'; + put 'call symputx(vname(__charvals),__charvals,''g'');'; + put 'end;'; + put 'array __numvals _numeric_;'; + put 'do over __numvals;'; + put 'call symputx(vname(__numvals),__numvals,''g'');'; + put 'end;'; + put 'run;'; + put '%mend mpe_getvars;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Returns the list of previously approved / rejected items.'; + put '@details Is filtered according to the groups in MPE_SECURITY.'; + put '

SAS Macros

'; + put '@li mpe_getvars.sas'; + put '@li mpe_getgroups.sas'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let hist=40;'; + put '/* load parameters */'; + put '%mpe_getvars(BrowserParams, BrowserParams)'; + put '/* determine users group membership */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.usergroups)'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '/* check to see if the user is an admin, or has *ALL* access rights */'; + put '%let authcheck=0;'; + put 'proc sql noprint;'; + put 'create table work.authcheck'; + put 'as select *'; + put 'from usergroups'; + put 'where upcase(groupname)="%upcase(&mpeadmins)"'; + put 'or upcase(groupname) in ('; + put 'select upcase(sas_group) from &mpelib..mpe_security'; + put 'where libref=''*ALL*'' and &dc_dttmtfmt. lt tx_to'; + put ');'; + put 'select count(*) into: authcheck from &syslast;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after auth check)'; + put ')'; + put '/* now get the previous &hist records from mpe_submit */'; + put 'proc sql;'; + put 'create view work.submits as'; + put 'select a.TABLE_ID'; + put ',cats(a.base_lib,''.'',a.base_ds) as base_table'; + put ',put(a.SUBMITTED_ON_DTTM,yymmddhhmmss.) as submitted'; + put ',a.submitted_reason_txt'; + put ',a.submitted_by_nm as submitter'; + put ',put(a.REVIEWED_ON_DTTM,yymmddhhmmss.) as REVIEWED'; + put ',a.submit_status_cd as status'; + put ',a.reviewed_on_dttm'; + put ',a.reviewed_by_nm as approver'; + put 'from &mpelib..mpe_submit(where=(submit_status_cd ne ''SUBMITTED'')) a'; + put '%macro gethistory();'; + put '%if &authcheck=0 %then %do;'; + put '/* filter for allowed items */'; + put 'left join &mpelib..mpe_security(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on a.base_lib=b.libref'; + put 'and (a.base_ds=b.dsn or b.dsn=''*ALL*'')'; + put 'where upcase(b.SAS_GROUP) in (select upcase(groupname) from work.usergroups)'; + put 'and b.access_level in (''VIEW'',''AUDIT'',''EDIT'',''APPROVE'')'; + put '%end;'; + put '%mend gethistory;'; + put '%gethistory()'; + put 'order by a.submitted_on_dttm desc;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after fetching submits)'; + put ')'; + put 'data work.fromsas;'; + put 'set work.submits;'; + put 'if _n_>&hist then stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,fromSAS)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=rejection; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mpe_alerts(alert_event='; + put ', alert_lib='; + put ', alert_ds='; + put ', dsid='; + put ');'; + put '/* exit if not configured */'; + put '%global DC_EMAIL_ALERTS;'; + put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; + put '%put DCNOTE: Email alerts are not configured;'; + put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; + put '%return;'; + put '%end;'; + put '%let alert_event=%upcase(&alert_event);'; + put '%let alert_lib=%upcase(&alert_lib);'; + put '%let alert_ds=%upcase(&alert_ds);'; + put '%let from_user=%mf_getuser();'; + put '/* get users TO which the email should be sent */'; + put 'proc sql noprint;'; + put 'create table users as select distinct a.alert_user,'; + put 'b.user_displayname,'; + put 'b.user_email'; + put 'from &mpelib..mpe_alerts'; + put '(where=(&dc_dttmtfmt. lt tx_to)) a'; + put 'left join &mpelib..mpe_emails'; + put '(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; + put 'where a.alert_event in ("&alert_event","*ALL*")'; + put 'and a.alert_lib in ("&alert_lib","*ALL*")'; + put 'and a.alert_ds in ("&alert_ds","*ALL*");'; + put '%local isThere;'; + put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; + put '%if &isThere>0 %then %do;'; + put 'insert into &syslast set alert_user="&from_user";'; + put '%end;'; + put '/* if no email / displayname is provided, then extract from metadata */'; + put 'data emails;'; + put 'set users;'; + put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; + put '/* get displayname */'; + put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; + put 'if metadata_getnobj(text,1,uri)<=0 then do;'; + put 'putlog "DCWARN: &from_user not found";'; + put 'return;'; + put 'end;'; + put 'else if user_displayname = '''' then do;'; + put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; + put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; + put 'end;'; + put 'end;'; + put 'if index(user_email,''@'') then return;'; + put '/* get email from metadata if not in input table */'; + put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; + put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; + put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; + put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; + put 'end;'; + put 'end;'; + put '/* only keep valid emails */'; + put 'if index(user_email,''@'') ;'; + put 'run;'; + put '%local emails;'; + put 'proc sql noprint;'; + put 'select user_email into: emails separated by ''" "'' from emails;'; + put '/* exit if nobody to email */'; + put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; + put '%put NOTE: No alerts configured (mpe_alerts.sas);'; + put '%return;'; + put '%end;'; + put '/* display email options */'; + put 'data _null_;'; + put 'set sashelp.voption(where=(group=''EMAIL''));'; + put 'put optname ''='' setting;'; + put 'run;'; + put 'filename __out email ("&emails")'; + put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; + put '%local SUBMITTED_TXT;'; + put '%if &alert_event=SUBMITTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_submit;'; + put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; + put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''SUBMITTED_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=APPROVED %then %do;'; + put '/* there is no approval message */'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=REJECTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_review;'; + put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; + put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''REVIEW_REASON_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put 'filename __out clear;'; + put '%mend mpe_alerts ;'; + put '%macro mpe_getvars(injs,outds);'; + put '/* load parameters */'; + put 'data _null_;'; + put '__dummychar='''';__dummynum=0;'; + put 'set &outds;'; + put 'array __charvals _character_;'; + put 'do over __charvals;'; + put 'call symputx(vname(__charvals),__charvals,''g'');'; + put 'end;'; + put 'array __numvals _numeric_;'; + put 'do over __numvals;'; + put 'call symputx(vname(__numvals),__numvals,''g'');'; + put 'end;'; + put 'run;'; + put '%mend mpe_getvars;'; + put '%macro removecolsfromwork(col);'; + put '/* only an issue if debug mode enabled */'; + put '%global _debug;'; + put '%if &_debug ge 131 %then %do;'; + put '%let col=%upcase(&col);'; + put '%local memlist;'; + put 'proc sql noprint;'; + put 'select distinct memname into: memlist'; + put 'separated by '' '''; + put 'from dictionary.columns'; + put 'where libname=''WORK'' and upcase(name)="&col";'; + put '%if %mf_isblank(&memlist) %then %return;'; + put '%mp_dropmembers(list=&memlist)'; + put '%end;'; + put '%mend removecolsfromwork;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Removes a staged data package from approval screen'; + put '@details'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mf_getvarlist.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mp_abort.sas'; + put '@li mp_lockanytable.sas'; + put '@li mpe_accesscheck.sas'; + put '@li mpe_alerts.sas'; + put '@li mpe_getvars.sas'; + put '@li removecolsfromwork.sas'; + put '

Service Outputs

'; + put '
fromsas
'; + put '@li TABLE_ID'; + put '@li SUBMITTED_REASON_TXT'; + put '@li RESPONSE'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%global STP_ACTION TABLE STP_REASON;'; + put '%mpeinit()'; + put '%mpe_getvars(BrowserParams, BrowserParams)'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '/* get current status and base table */'; + put 'data _null_;'; + put 'set &mpelib..mpe_submit(where=(TABLE_ID="&TABLE"));'; + put 'call symputx(''BASE_TABLE'',cats(base_lib,''.'',base_ds));'; + put 'call symputx(''submit_status_cd'',submit_status_cd);'; + put 'run;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: base_table)'; + put ')'; + put '%mp_abort('; + put 'iftrue=(%quote(&submit_status_cd)=%quote(REJECTED))'; + put ',mac=&_program'; + put ',msg=%str(&table is already rejected!)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ge 4)'; + put ',mac=&_program'; + put ',msg=%str(Issue on setup)'; + put ')'; + put '/**'; + put '* determine if user is authorised to reject table'; + put '*/'; + put '%let user=%mf_getuser();'; + put '%global authcheck; %let authcheck=0;'; + put '%mpe_accesscheck(&base_table,outds=authAPP,user=&user,access_level=APPROVE)'; + put '%let authcheck=%mf_getattrn(work.authAPP,NLOBS);'; + put '%mp_abort(iftrue= (&authcheck=0)'; + put ',mac=&_program..sas'; + put ',msg=%str(User &user does not have APPROVE rights on &base_table and is not'; + put 'in the &mpeadmins group)'; + put ')'; + put '/* update the control table to show table as rejected (and why) */'; + put '%let now=%sysfunc(datetime());'; + put 'data work.reject;'; + put 'if 0 then set &mpelib..mpe_review;'; + put 'TABLE_ID="&table";'; + put 'BASE_TABLE="&base_table";'; + put 'REVIEW_STATUS_ID="REJECTED";'; + put 'REVIEWED_BY_NM="&user";'; + put 'REVIEWED_ON_DTTM=&now;'; + put 'REVIEW_REASON_TXT=symget(''STP_REASON'');'; + put 'run;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&mpelib,ds=mpe_review,ref=%str(&table rejection),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc append base=&mpelib..mpe_review data=work.reject;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_review,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&mpelib,ds=mpe_submit,ref=%str(&table rejection),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc sql;'; + put 'update &mpelib..mpe_submit'; + put 'set submit_status_cd=''REJECTED'','; + put 'num_of_approvals_remaining=0,'; + put 'reviewed_by_nm="&user",'; + put 'reviewed_on_dttm=&now'; + put 'where table_id="&table";'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_submit,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc AFTER update...)'; + put ')'; + put '%mpe_alerts(alert_event=REJECTED'; + put ', alert_lib=%scan(&BASE_TABLE,1,.)'; + put ', alert_ds=%scan(&BASE_TABLE,2,.)'; + put ', dsid=&TABLE'; + put ')'; + put 'data fromSAS;'; + put 'RESPONSE=''SUCCESS!'';'; + put 'set REJECT;'; + put 'run;'; + put '%removecolsfromwork(___TMP___MD5)'; + put '%webout(OPEN)'; + put '%webout(OBJ,fromSAS)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/auditors; + +%let service=getauditfile; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; + put ', fref=0'; + put ', outds=work.mp_dirlist'; + put ', getattrs=NO'; + put ', maxdepth=0'; + put ', level=0 /* The level of recursion to perform. For internal use only. */'; + put ')/*/STORE SOURCE*/;'; + put '%let getattrs=%upcase(&getattrs)XX;'; + put '/* temp table */'; + put '%local out_ds;'; + put 'data;run;'; + put '%let out_ds=%str(&syslast);'; + put '/* drop main (top) table if it exists */'; + put '%if &level=0 %then %do;'; + put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; + put '%end;'; + put 'data &out_ds(compress=no'; + put 'keep=file_or_folder filepath filename ext msg directory level'; + put ');'; + put 'length directory filepath $500 fref fref2 $8 file_or_folder $6 filename $80'; + put 'ext $20 msg $200 foption $16;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'retain level &level;'; + put '%if &fref=0 %then %do;'; + put 'rc = filename(fref, "&path");'; + put '%end;'; + put '%else %do;'; + put 'fref="&fref";'; + put 'rc=0;'; + put '%end;'; + put 'if rc = 0 then do;'; + put 'did = dopen(fref);'; + put 'if did=0 then do;'; + put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; + put 'msg=sysmsg();'; + put 'put msg;'; + put 'put _all_;'; + put 'stop;'; + put 'end;'; + put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; + put 'numopts=doptnum(did);'; + put 'do i=1 to numopts;'; + put 'foption=doptname(did,i);'; + put 'if foption=:''Directory'' then i=numopts;'; + put 'end;'; + put 'directory=dinfo(did,foption);'; + put 'rc = filename(fref);'; + put 'end;'; + put 'else do;'; + put 'msg=sysmsg();'; + put 'put _all_;'; + put 'stop;'; + put 'end;'; + put 'dnum = dnum(did);'; + put 'do i = 1 to dnum;'; + put 'filename = dread(did, i);'; + put 'filepath=cats(directory,''/'',filename);'; + put 'rc = filename(fref2,filepath);'; + put 'midd=dopen(fref2);'; + put 'dmsg=sysmsg();'; + put 'if did > 0 then file_or_folder=''folder'';'; + put 'rc=dclose(midd);'; + put 'midf=fopen(fref2);'; + put 'fmsg=sysmsg();'; + put 'if midf > 0 then file_or_folder=''file'';'; + put 'rc=fclose(midf);'; + put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; + put 'then file_or_folder=''file'';'; + put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; + put 'else if file_or_folder='''' then file_or_folder=''locked'';'; + put 'if file_or_folder=''file'' then do;'; + put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; + put 'if filename = ext then ext = '' '';'; + put 'end;'; + put 'else do;'; + put 'ext='''';'; + put 'file_or_folder=''folder'';'; + put 'end;'; + put 'output;'; + put 'end;'; + put 'rc = dclose(did);'; + put 'stop;'; + put 'run;'; + put '%if %substr(&getattrs,1,1)=Y %then %do;'; + put 'data &out_ds;'; + put 'set &out_ds;'; + put 'length infoname infoval $60 fref $8;'; + put 'if _n_=1 then call missing(fref);'; + put 'rc=filename(fref,filepath);'; + put 'drop rc infoname fid i close fref;'; + put 'if file_or_folder=''file'' then do;'; + put 'fid=fopen(fref);'; + put 'if fid le 0 then do;'; + put 'msg=sysmsg();'; + put 'putlog "Could not open file:" filepath fid= ;'; + put 'sasname=''_MCNOTVALID_'';'; + put 'output;'; + put 'end;'; + put 'else do i=1 to foptnum(fid);'; + put 'infoname=foptname(fid,i);'; + put 'infoval=finfo(fid,infoname);'; + put 'sasname=compress(infoname, ''_'', ''adik'');'; + put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; + put 'if upcase(sasname) ne ''FILENAME'' then output;'; + put 'end;'; + put 'close=fclose(fid);'; + put 'end;'; + put 'else do;'; + put 'fid=dopen(fref);'; + put 'if fid le 0 then do;'; + put 'msg=sysmsg();'; + put 'putlog "Could not open folder:" filepath fid= ;'; + put 'sasname=''_MCNOTVALID_'';'; + put 'output;'; + put 'end;'; + put 'else do i=1 to doptnum(fid);'; + put 'infoname=doptname(fid,i);'; + put 'infoval=dinfo(fid,infoname);'; + put 'sasname=compress(infoname, ''_'', ''adik'');'; + put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; + put 'if upcase(sasname) ne ''FILENAME'' then output;'; + put 'end;'; + put 'close=dclose(fid);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by filepath sasname;'; + put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; + put 'id sasname;'; + put 'var infoval;'; + put 'by filepath file_or_folder filename ext ;'; + put 'run;'; + put '%end;'; + put 'data &out_ds;'; + put 'set &out_ds(where=(filepath ne ''''));'; + put 'run;'; + put '/**'; + put '* The above transpose can mean that some updates create additional columns.'; + put '* This necessitates the occasional use of datastep over proc append.'; + put '*/'; + put '%if %mf_existds(&outds) %then %do;'; + put '%local basevars appvars newvars;'; + put '%let basevars=%mf_getvarlist(&outds);'; + put '%let appvars=%mf_getvarlist(&out_ds);'; + put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; + put '%if &newvars>0 %then %do;'; + put 'data &outds;'; + put 'set &outds &out_ds;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&outds data=&out_ds force nowarn;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&outds data=&out_ds;'; + put 'run;'; + put '%end;'; + put '/* recursive call */'; + put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; + put 'data _null_;'; + put 'set &out_ds;'; + put 'where file_or_folder=''folder'';'; + put 'length code $10000;'; + put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; + put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; + put 'put code=;'; + put 'call execute(code);'; + put 'run;'; + put '%end;'; + put '/* tidy up */'; + put 'proc sql;'; + put 'drop table &out_ds;'; + put '%mend mp_dirlist;'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getauditfile.sas'; + put '@brief Downloads a zip file containing audit info.'; + put '@details The staging location from the &mpelocapprovals location'; + put 'is zipped and returned as a file download. A user can only request the'; + put 'audit pack if they have EDIT or APPROVE rights on the target table.'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mpe_accesscheck.sas'; + put '@li mp_abort.sas'; + put '@li mp_dirlist.sas'; + put '@li mp_binarycopy.sas'; + put '@li mf_getattrn.sas'; + put '@li mp_streamfile.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put 'options mprint;'; + put '/* security checks */'; + put '%let user=%mf_getuser();'; + put 'proc sql noprint;'; + put 'select cats(base_lib,''.'',base_ds) into: libds'; + put 'from &mpelib..mpe_submit'; + put 'where table_id="&table";'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(libds table)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: libds table)'; + put ')'; + put '%mpe_accesscheck(&libds,outds=authEDIT,user=&user,access_level=EDIT);'; + put '%mpe_accesscheck(&libds,outds=authAPP,user=&user,access_level=APPROVE);'; + put '%mp_abort('; + put 'iftrue=('; + put '%mf_getattrn(work.authEDIT,NLOBS)=0 & %mf_getattrn(work.authAPP,NLOBS)=0'; + put ')'; + put ',mac=mpestp_audit'; + put ',msg=%str(&user not authorised to download audit data for &table)'; + put ')'; + put 'ods package(ProdOutput) open nopf;'; + put 'options notes source2 mprint;'; + put '%let table=%unquote(&table);'; + put '%mp_dirlist(outds=dirs, path=&mpelocapprovals/&TABLE);'; + put 'data _null_;'; + put 'set dirs;'; + put 'retain str1'; + put '"ods package(ProdOutput) add file=''&mpelocapprovals/&TABLE/";'; + put 'retain str2 "'' mimetype=''text/plain'' path=''contents/'';";'; + put 'call execute(cats(str1,filename,str2));'; + put 'run;'; + put '%let archive_path=%sysfunc(pathname(work));'; + put 'ods package(ProdOutput) publish archive properties'; + put '(archive_name= "&table..zip" archive_path="&archive_path");'; + put 'ods package(ProdOutput) close;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%nrstr(syscc=&syscc)'; + put ')'; + put '/* now serve zip file to client */'; + put '%mp_streamfile(contenttype=ZIP'; + put ',inloc=%str(&archive_path/&table..zip)'; + put ',outname=&table..zip'; + put ')'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getdiffs; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mpe_getvars(injs,outds);'; + put '/* load parameters */'; + put 'data _null_;'; + put '__dummychar='''';__dummynum=0;'; + put 'set &outds;'; + put 'array __charvals _character_;'; + put 'do over __charvals;'; + put 'call symputx(vname(__charvals),__charvals,''g'');'; + put 'end;'; + put 'array __numvals _numeric_;'; + put 'do over __numvals;'; + put 'call symputx(vname(__numvals),__numvals,''g'');'; + put 'end;'; + put 'run;'; + put '%mend mpe_getvars;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getdiffs.sas'; + put '@brief Retrieves the diff file for viewing'; + put '@details'; + put '

SAS Macros

'; + put '@li mpe_getvars.sas'; + put '@li mpe_accesscheck.sas'; + put '@li mf_getattrn.sas'; + put '@li mp_abort.sas'; + put '@li mp_binarycopy.sas'; + put '@li mp_streamfile.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mpe_getvars(BrowserParams, BrowserParams);'; + put '/* security checks */'; + put '%let user=%mf_getuser();'; + put '%mpe_accesscheck(&libds,outds=authEDIT,user=&user,access_level=EDIT)'; + put '%mpe_accesscheck(&libds,outds=authAPP,user=&user,access_level=APPROVE)'; + put '%macro mpestp_diffs();'; + put '%if %mf_getattrn(work.authEDIT,NLOBS)=0 & %mf_getattrn(work.authAPP,NLOBS)=0'; + put '%then %do;'; + put '%mp_abort(msg=%str('; + put '&user not authorised to download diffs data for &stp_table)'; + put ',mac=mpestp_diffs.sas);'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '/* stream diffs csv to client */'; + put '%mp_streamfile(contenttype=EXCEL'; + put ',inloc=%str(&mpelocapprovals/&TABLE/&STP_DIFFS_CSV)'; + put ',outname=&STP_DIFFS_CSV'; + put ')'; + put '%mend mpestp_diffs;'; + put '%mpestp_diffs()'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getstagetable; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvalue(libds,variable,filter=1'; + put ')/*/STORE SOURCE*/;'; + put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; + put '%local dsid rc &variable;'; + put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; + put '%syscall set(dsid);'; + put '%let rc = %sysfunc(fetch(&dsid));'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%trim(&&&variable)'; + put '%end;'; + put '%mend mf_getvalue;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getstagetable.sas'; + put '@brief Retrieves the actual table that is being sent for update'; + put '@details'; + put '

SAS Macros

'; + put '@li mf_getvalue.sas'; + put '@li mp_abort.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let table_id=%mf_getvalue(work.iwant,table_id);'; + put 'libname loc "&mpelocapprovals/&table_id";'; + put 'data stagetable;'; + put 'set loc.&table_id;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,stagetable,missing=STRING)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=postdata; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mpe_alerts(alert_event='; + put ', alert_lib='; + put ', alert_ds='; + put ', dsid='; + put ');'; + put '/* exit if not configured */'; + put '%global DC_EMAIL_ALERTS;'; + put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; + put '%put DCNOTE: Email alerts are not configured;'; + put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; + put '%return;'; + put '%end;'; + put '%let alert_event=%upcase(&alert_event);'; + put '%let alert_lib=%upcase(&alert_lib);'; + put '%let alert_ds=%upcase(&alert_ds);'; + put '%let from_user=%mf_getuser();'; + put '/* get users TO which the email should be sent */'; + put 'proc sql noprint;'; + put 'create table users as select distinct a.alert_user,'; + put 'b.user_displayname,'; + put 'b.user_email'; + put 'from &mpelib..mpe_alerts'; + put '(where=(&dc_dttmtfmt. lt tx_to)) a'; + put 'left join &mpelib..mpe_emails'; + put '(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; + put 'where a.alert_event in ("&alert_event","*ALL*")'; + put 'and a.alert_lib in ("&alert_lib","*ALL*")'; + put 'and a.alert_ds in ("&alert_ds","*ALL*");'; + put '%local isThere;'; + put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; + put '%if &isThere>0 %then %do;'; + put 'insert into &syslast set alert_user="&from_user";'; + put '%end;'; + put '/* if no email / displayname is provided, then extract from metadata */'; + put 'data emails;'; + put 'set users;'; + put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; + put '/* get displayname */'; + put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; + put 'if metadata_getnobj(text,1,uri)<=0 then do;'; + put 'putlog "DCWARN: &from_user not found";'; + put 'return;'; + put 'end;'; + put 'else if user_displayname = '''' then do;'; + put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; + put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; + put 'end;'; + put 'end;'; + put 'if index(user_email,''@'') then return;'; + put '/* get email from metadata if not in input table */'; + put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; + put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; + put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; + put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; + put 'end;'; + put 'end;'; + put '/* only keep valid emails */'; + put 'if index(user_email,''@'') ;'; + put 'run;'; + put '%local emails;'; + put 'proc sql noprint;'; + put 'select user_email into: emails separated by ''" "'' from emails;'; + put '/* exit if nobody to email */'; + put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; + put '%put NOTE: No alerts configured (mpe_alerts.sas);'; + put '%return;'; + put '%end;'; + put '/* display email options */'; + put 'data _null_;'; + put 'set sashelp.voption(where=(group=''EMAIL''));'; + put 'put optname ''='' setting;'; + put 'run;'; + put 'filename __out email ("&emails")'; + put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; + put '%local SUBMITTED_TXT;'; + put '%if &alert_event=SUBMITTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_submit;'; + put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; + put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''SUBMITTED_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=APPROVED %then %do;'; + put '/* there is no approval message */'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=REJECTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_review;'; + put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; + put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''REVIEW_REASON_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put 'filename __out clear;'; + put '%mend mpe_alerts ;'; + put '%macro dc_getservicecode(loc=,outref=);'; + put '%mm_getstpcode(tree=&loc'; + put ',outref=&outref'; + put ')'; + put '%mend dc_getservicecode;'; + put '%macro mp_include(fileref'; + put ',prefix=_'; + put ',opts=SOURCE2'; + put ',errds=work.mp_abort_errds'; + put ')/*/STORE SOURCE*/;'; + put '/* prepare precode */'; + put '%local tempref;'; + put '%let tempref=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &tempref;'; + put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; + put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; + put 'name=scan(xpath,-1,''/\'');'; + put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; + put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; + put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; + put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; + put 'run;'; + put '/* prepare the errds */'; + put 'data &errds;'; + put 'length msg mac $1000;'; + put 'call missing(msg,mac);'; + put 'iftrue=''1=0'';'; + put 'run;'; + put '/* include the include */'; + put '%inc &tempref &fileref/&opts;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; + put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; + put ')'; + put 'filename &tempref clear;'; + put '%mend mp_include;'; + put '%macro mpe_runhook(hookvar);'; + put '%local pgmloc pgmtype;'; + put '%let pgmtype=0;'; + put '%put &sysmacroname: &=hookvar;'; + put '%if %length(&&&hookvar)>0 %then %do;'; + put '%put &sysmacroname: Executing &&&hookvar;'; + put 'data _null_;'; + put 'rule_value=symget("&hookvar");'; + put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; + put 'call symputx(''pgmtype'',''PGM'');'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'end;'; + put 'else do;'; + put 'apploc="%mf_getapploc()";'; + put 'if substr(rule_value,1,1) ne ''/'''; + put 'then rule_value=cats(apploc,''/'',rule_value);'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'call symputx(''pgmtype'',''JOB'');'; + put 'end;'; + put 'run;'; + put '%if &pgmtype=PGM %then %do;'; + put 'filename sascode "&pgmloc";'; + put '%end;'; + put '%else %do;'; + put '%dc_getservicecode(loc=&pgmloc'; + put ',outref=sascode'; + put ')'; + put '%end;'; + put '/* the below script will need to modify work.STAGING_DS */'; + put '%local x; %let x=; /* legacy feature */'; + put '%mp_include(sascode)'; + put '%end;'; + put '%mend mpe_runhook;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mp_loadformat(libcat,libds'; + put ',loadtarget=NO'; + put ',auditlibds=0'; + put ',locklibds=0'; + put ',delete_col=_____DELETE__THIS__RECORD_____'; + put ',outds_add=0'; + put ',outds_del=0'; + put ',outds_mod=0'; + put ',mdebug=0'; + put ');'; + put '/* set up local macro variables and temporary tables (with a prefix) */'; + put '%local err msg prefix dslist i var fmtlist ibufsize;'; + put '%let dslist=base_fmts template inlibds ds1 stagedata storediffs;'; + put '%if &outds_add=0 %then %let dslist=&dslist outds_add;'; + put '%if &outds_del=0 %then %let dslist=&dslist outds_del;'; + put '%if &outds_mod=0 %then %let dslist=&dslist outds_mod;'; + put '%let prefix=%substr(%mf_getuniquename(),1,21);'; + put '%do i=1 %to %sysfunc(countw(&dslist));'; + put '%let var=%scan(&dslist,&i);'; + put '%local &var;'; + put '%let &var=%upcase(&prefix._&var);'; + put '%end;'; + put '/*'; + put 'format values can be up to 32767 wide. SQL joins on such a wide column can'; + put 'cause buffer issues. Update ibufsize and reset at the end.'; + put '*/'; + put '%let ibufsize=%sysfunc(getoption(ibufsize));'; + put 'options ibufsize=32767 ;'; + put '/* in DC, format catalogs maybe specified in the libds with a -FC extension */'; + put '%let libcat=%scan(&libcat,1,-);'; + put '/* perform input validations */'; + put '%let err=0;'; + put '%let msg=0;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'value=upcase(value);'; + put 'if &mdebug=0 then put name ''='' value;'; + put 'if name=:''LOAD'' and value not in (''YES'',''NO'') then do;'; + put 'call symputx(''msg'',"invalid value for "!!name!!":"!!value);'; + put 'call symputx(''err'',1);'; + put 'stop;'; + put 'end;'; + put 'else if name=''LIBCAT'' then do;'; + put 'if exist(value,''CATALOG'') le 0 then do;'; + put 'call symputx(''msg'',"Unable to open catalog: "!!value);'; + put 'call symputx(''err'',1);'; + put 'stop;'; + put 'end;'; + put 'end;'; + put 'else if name=''LIBDS'' then do;'; + put 'if exist(value) le 0 then do;'; + put 'call symputx(''msg'',"Unable to open staging table: "!!value);'; + put 'call symputx(''err'',1);'; + put 'stop;'; + put 'end;'; + put 'end;'; + put 'else if (name=:''OUTDS'' or name in (''DELETE_COL'',''LOCKLIBDS'',''AUDITLIBDS''))'; + put 'and missing(value) then do;'; + put 'call symputx(''msg'',"missing value in var: "!!name);'; + put 'call symputx(''err'',1);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%mp_abort('; + put 'iftrue=(&err ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(&msg)'; + put ')'; + put '/**'; + put '* First, extract only relevant formats from the catalog'; + put '*/'; + put 'proc sql noprint;'; + put 'select distinct upcase(fmtname) into: fmtlist separated by '' '' from &libds;'; + put '%mp_cntlout(libcat=&libcat,fmtlist=&fmtlist,cntlout=&base_fmts)'; + put '/**'; + put '* Ensure input table and base_formats have consistent lengths and types'; + put '*/'; + put '%mddl_sas_cntlout(libds=&template)'; + put 'data &inlibds;'; + put 'length &delete_col $3;'; + put 'if 0 then set &template;'; + put 'set &libds;'; + put 'if &delete_col='''' then &delete_col=''No'';'; + put 'fmtname=upcase(fmtname);'; + put 'if missing(type) then do;'; + put 'if substr(fmtname,1,1)=''$'' then type=''C'';'; + put 'else type=''N'';'; + put 'end;'; + put 'if type=''N'' then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put '/**'; + put '* Identify new records'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add(drop=&delete_col) as'; + put 'select a.*'; + put 'from &inlibds a'; + put 'left join &base_fmts b'; + put 'on a.fmtname=b.fmtname'; + put 'and a.start=b.start'; + put 'where b.fmtname is null'; + put 'and upcase(a.&delete_col) ne "YES"'; + put 'order by fmtname, start;;'; + put '/**'; + put '* Identify deleted records'; + put '*/'; + put 'create table &outds_del(drop=&delete_col) as'; + put 'select a.*'; + put 'from &inlibds a'; + put 'inner join &base_fmts b'; + put 'on a.fmtname=b.fmtname'; + put 'and a.start=b.start'; + put 'where upcase(a.&delete_col)="YES"'; + put 'order by fmtname, start;'; + put '/**'; + put '* Identify modified records'; + put '*/'; + put 'create table &outds_mod (drop=&delete_col) as'; + put 'select a.*'; + put 'from &inlibds a'; + put 'inner join &base_fmts b'; + put 'on a.fmtname=b.fmtname'; + put 'and a.start=b.start'; + put 'where upcase(a.&delete_col) ne "YES"'; + put 'order by fmtname, start;'; + put 'options ibufsize=&ibufsize;'; + put '%mp_abort('; + put 'iftrue=(&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(SYSCC=&syscc prior to load prep)'; + put ')'; + put '%if &loadtarget=YES %then %do;'; + put 'data &ds1;'; + put 'merge &base_fmts(in=base)'; + put '&outds_mod(in=mod)'; + put '&outds_add(in=add)'; + put '&outds_del(in=del);'; + put 'if not del and not mod;'; + put 'by fmtname start;'; + put 'run;'; + put 'data &stagedata;'; + put 'set &ds1 &outds_mod;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put '%end;'; + put '/* mp abort needs to run outside of conditional blocks */'; + put '%mp_abort('; + put 'iftrue=(&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(SYSCC=&syscc prior to actual load)'; + put ')'; + put '%if &loadtarget=YES %then %do;'; + put '%if %mf_nobs(&stagedata)=0 %then %do;'; + put '%put There are no changes to load in &libcat!;'; + put '%return;'; + put '%end;'; + put '%if &locklibds ne 0 %then %do;'; + put '/* prevent parallel updates */'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&libcat,1,.)'; + put ',ds=%scan(&libcat,2,.)-FC'; + put ',ref=MP_LOADFORMAT commencing format load'; + put ',ctl_ds=&locklibds'; + put ')'; + put '%end;'; + put '/* do the actual load */'; + put 'proc format lib=&libcat cntlin=&stagedata;'; + put 'run;'; + put '%if &locklibds ne 0 %then %do;'; + put '/* unlock the table */'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&libcat,1,.)'; + put ',ds=%scan(&libcat,2,.)-FC'; + put ',ref=MP_LOADFORMAT completed format load'; + put ',ctl_ds=&locklibds'; + put ')'; + put '%end;'; + put '/* track the changes */'; + put '%if &auditlibds ne 0 %then %do;'; + put '%if &locklibds ne 0 %then %do;'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&auditlibds,1,.)'; + put ',ds=%scan(&auditlibds,2,.)'; + put ',ref=MP_LOADFORMAT commencing audit table load'; + put ',ctl_ds=&locklibds'; + put ')'; + put '%end;'; + put '%mp_storediffs(&libcat-FC'; + put ',&base_fmts'; + put ',FMTNAME START'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=&storediffs'; + put ',mdebug=&mdebug'; + put ')'; + put 'proc append base=&auditlibds data=&storediffs;'; + put 'run;'; + put '%if &locklibds ne 0 %then %do;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&auditlibds,1,.)'; + put ',ds=%scan(&auditlibds,2,.)'; + put ',ref=MP_LOADFORMAT commencing audit table load'; + put ',ctl_ds=&locklibds'; + put ')'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%mp_abort('; + put 'iftrue=(&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(SYSCC=&syscc after load)'; + put ')'; + put '%if &mdebug=0 %then %do;'; + put 'proc datasets lib=work;'; + put 'delete &prefix:;'; + put 'run;'; + put '%put &sysmacroname exit vars:;'; + put '%put _local_;'; + put '%end;'; + put '%mend mp_loadformat;'; + put '%macro mpe_targetloader(libds= /* library.dataset to LOAD (target) */'; + put ',now= %sysfunc(datetime()) /* static processed timestamp */'; + put ',etlsource= /* process from whence the data came */'; + put ',STAGING_DS= STAGING_DS /* name of staging (work) dataset which should'; + put 'be appended into the target. */'; + put ',LOADTARGET=NO /* set to yes to actually load the target */'; + put ',CLOSE_VARS= /* provide close vars to override defaults */'; + put ',dclib=NOTPROVIDED'; + put ',mdebug=0'; + put ',dc_dttmtfmt=E8601DT26.6'; + put ');'; + put '%local lib ds nobs;'; + put '/**'; + put '* if a format catalog (suffix "-FC") we assume the catalog has already been'; + put '* created by the calling program with a libds of work.fmtextract'; + put '*/'; + put '%let orig_lib=%upcase(%scan(&libds,1,.));'; + put '%let orig_ds=%upcase(%scan(&libds,2,.));'; + put '%let orig_libds=&libds;'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%let lib=WORK;'; + put '%let ds=FMTEXTRACT;'; + put '%let libds=&lib..&ds;'; + put '%end;'; + put '%else %do;'; + put '%let lib=&orig_lib;'; + put '%let ds=&orig_ds;'; + put '%end;'; + put '%mp_abort(iftrue= (&dclib=NOTPROVIDED)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dclib=NOTPROVIDED)'; + put ')'; + put '/* get table attributes */'; + put '%let nobs=0;'; + put 'data work.sumo_config;'; + put 'set &mpelib..mpe_tables;'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and libref="&orig_lib"'; + put 'and dsn="&orig_ds";'; + put 'call symputx(''LOADTYPE'',loadtype,''l'');'; + put 'call symputx(''BUSKEY'',buskey,''l'');'; + put 'call symputx(''VAR_TXFROM'',var_txfrom,''l'');'; + put 'call symputx(''VAR_TXTO'',var_txto,''l'');'; + put 'call symputx(''VAR_BUSFROM'',var_busfrom,''l'');'; + put 'call symputx(''VAR_BUSTO'',var_busto,''l'');'; + put 'call symputx(''VAR_PROCESSED'',VAR_PROCESSED,''l'');'; + put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING,''l'');'; + put '%if %length(&CLOSE_VARS)=0 %then %do;'; + put 'call symputx(''CLOSE_VARS'',CLOSE_VARS,''l'');'; + put '%end;'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'if missing(AUDIT_LIBDS) then AUDIT_LIBDS="&dclib..MPE_AUDIT";'; + put 'call symputx(''AUDIT_LIBDS'',AUDIT_LIBDS,''l'');'; + put 'put (_all_)(=);'; + put 'run;'; + put '/* check if table is actually configured to load */'; + put '%if &nobs ne 1 %then %do;'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_loads'; + put 'set USER_NM="%mf_getuser()"'; + put ',STATUS=''FAILED (BAD DS)'''; + put ',CSV_DIR=symget(''ETLSOURCE'')'; + put ',PROCESSED_DTTM=&now;'; + put '%end;'; + put '%mp_abort(iftrue= (&nobs=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Table not registered in &mpelib..mpe_tables)'; + put ')'; + put '%mp_abort(iftrue= (&nobs>1)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Something is very wrong with the PK in &mpelib..mpe_tables)'; + put ')'; + put '%if &LOADTYPE=TXTEMPORAL %then %do;'; + put '%bitemporal_dataloader(bus_from=,bus_to= /* explicitly empty*/'; + put ',tech_from=&VAR_TXFROM'; + put ',tech_to = &VAR_TXTO'; + put ',base_lib=&lib'; + put ',base_dsn=&ds'; + put ',append_lib=WORK'; + put ',append_dsn=&STAGING_DS'; + put ',high_date=''31DEC9999:23:59:59''dt'; + put ',PK= &buskey'; + put ',ETLSOURCE=&ETLSOURCE'; + put ',LOADTYPE=&loadtype'; + put ',RK_UNDERLYING=&RK_UNDERLYING'; + put ',LOADTARGET=&LOADTARGET'; + put ',RK_UPDATE_MAXKEYTABLE=&LOADTARGET'; + put ',CLOSE_VARS=&CLOSE_VARS'; + put ',processed=&VAR_PROCESSED'; + put ',dclib=&dclib'; + put ',outds_audit=&AUDIT_LIBDS'; + put ')'; + put '%end;'; + put '%else %if &loadtype=REPLACE %then %do;'; + put '%dc_assignlib(WRITE,&lib)'; + put '%if &LOADTARGET=YES %then %do;'; + put '%mp_lockanytable(LOCK,lib=&lib,ds=&ds,ref=%str(&etlsource),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put 'data WORK.&STAGING_DS;'; + put 'set WORK.&STAGING_DS;'; + put '%if %mf_existvar(&libds,&VAR_PROCESSED) %then %do;'; + put '&VAR_PROCESSED = &now;'; + put '%end;'; + put 'drop _____DELETE__THIS__RECORD_____;'; + put 'run;'; + put 'proc sql; delete * from &libds;'; + put 'proc append base=&libds data=WORK.&STAGING_DS force nowarn;run;'; + put '%mp_lockanytable(UNLOCK,lib=&lib,ds=&ds,ctl_ds=&dclib..mpe_lockanytable)'; + put '%end;'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '%bitemporal_dataloader(bus_from=,bus_to='; + put ',tech_from= ,tech_to = /* explicitly empty*/'; + put ',base_lib=&lib'; + put ',base_dsn=&ds'; + put ',append_lib=WORK'; + put ',append_dsn=&STAGING_DS'; + put ',high_date=''31DEC9999:23:59:59''dt'; + put ',PK= &buskey'; + put ',ETLSOURCE=%superq(etlsource)'; + put ',LOADTYPE=UPDATE'; + put ',RK_UNDERLYING=&RK_UNDERLYING'; + put ',LOADTARGET=&LOADTARGET'; + put ',RK_UPDATE_MAXKEYTABLE=&LOADTARGET'; + put ',processed=&VAR_PROCESSED'; + put ',dclib=&dclib'; + put ',outds_audit=&AUDIT_LIBDS'; + put ')'; + put '%end;'; + put '%else %if &loadtype=FORMAT_CAT %then %do;'; + put '/**'; + put '* run mp_formatload'; + put '* inputs:'; + put '* - LOADTARGET'; + put '* - CATALOG'; + put '* - STAGEDATA'; + put '* - LOADAUDIT'; + put '* outputs:'; + put '* work.outds_add'; + put '* work.outds_del'; + put '* work.outds_mod'; + put '*/'; + put '%mp_loadformat(&orig_libds'; + put ',&staging_ds'; + put ',loadtarget=&LOADTARGET'; + put ',auditlibds=&AUDIT_LIBDS'; + put ',locklibds=&dclib..mpe_lockanytable'; + put ',delete_col=_____DELETE__THIS__RECORD_____'; + put ',outds_add=outds_add'; + put ',outds_del=outds_del'; + put ',outds_mod=outds_mod'; + put ',mdebug=&mdebug'; + put ')'; + put '%end;'; + put '%else %if &loadtype=BITEMPORAL %then %do;'; + put '%bitemporal_dataloader(bus_from=&VAR_BUSFROM,bus_to=&VAR_BUSTO'; + put ',tech_from=&VAR_TXFROM'; + put ',tech_to = &VAR_TXTO'; + put ',base_lib=&lib'; + put ',base_dsn=&ds'; + put ',append_lib=WORK'; + put ',append_dsn=&STAGING_DS'; + put ',high_date=''31DEC9999:23:59:59''dt'; + put ',PK= &buskey'; + put ',ETLSOURCE=%superq(etlsource)'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_UNDERLYING=&RK_UNDERLYING'; + put ',LOADTARGET=&LOADTARGET'; + put ',RK_UPDATE_MAXKEYTABLE=&LOADTARGET'; + put ',CLOSE_VARS=&CLOSE_VARS'; + put ',processed=&VAR_PROCESSED'; + put ',dclib=&dclib'; + put ',outds_audit=&AUDIT_LIBDS'; + put ')'; + put '%end;'; + put '%else %do;'; + put '%put WARNING: LOADTYPE &LOADTYPE not supported;'; + put '%let syscc=4;'; + put '%mp_abort(msg=LOADTYPE &LOADTYPE not supported,mac=mpe_targetloader.sas)'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc exiting MPE_TARGETLOADER macro)'; + put ')'; + put '%mend mpe_targetloader;'; + put '%macro removecolsfromwork(col);'; + put '/* only an issue if debug mode enabled */'; + put '%global _debug;'; + put '%if &_debug ge 131 %then %do;'; + put '%let col=%upcase(&col);'; + put '%local memlist;'; + put 'proc sql noprint;'; + put 'select distinct memname into: memlist'; + put 'separated by '' '''; + put 'from dictionary.columns'; + put 'where libname=''WORK'' and upcase(name)="&col";'; + put '%if %mf_isblank(&memlist) %then %return;'; + put '%mp_dropmembers(list=&memlist)'; + put '%end;'; + put '%mend removecolsfromwork;'; + put '%macro mf_getuniquelibref(prefix=mclib,maxtries=1000);'; + put '%local x;'; + put '%if ( %length(&prefix) gt 7 ) %then %do;'; + put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; + put '0'; + put '%return;'; + put '%end;'; + put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; + put '%put %str(ERR)OR: Invalid prefix (&prefix);'; + put '0'; + put '%return;'; + put '%end;'; + put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; + put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; + put '%do x = 0 %to &maxtries;'; + put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; + put '&prefix&x'; + put '%return;'; + put '%end;'; + put '%let x = %eval(&x + 1);'; + put '%end;'; + put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; + put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; + put '0'; + put '%mend mf_getuniquelibref;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file postdata.sas'; + put '@brief Either returns the file diffs or actually loads the data to target'; + put '@details Before loading the target, a check is made against the time the'; + put 'target was last updated (backend) and the time the DIFF was generated'; + put '(frontend). If the target was updated whilst the DIFF was on the screen,'; + put 'then the provided diff may have been incorrect and so a new DIFF should be'; + put 'generated and approved before load.'; + put '

Service Inputs

'; + put '
SASCONTROLTABLE
'; + put '|ACTION:$char10.|TABLE:$char32.|DIFFTIME:$char29.|'; + put '|---|---|---|'; + put '|SHOW_DIFFS|DC20220208T142124517_124703_1184|"Tue, 08 Feb 2022 14:23:05 GMT"|'; + put '

SAS Macros

'; + put '@li bitemporal_dataloader.sas'; + put '@li mf_existds.sas'; + put '@li mf_existvar.sas'; + put '@li mf_getattrn.sas'; + put '@li mf_getengine.sas'; + put '@li mf_getquotedstr.sas'; + put '@li mf_getuniquelibref.sas'; + put '@li mf_getuser.sas'; + put '@li mf_getvarlist.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mp_abort.sas'; + put '@li mp_cntlout.sas'; + put '@li mp_lockanytable.sas'; + put '@li mpe_accesscheck.sas'; + put '@li mpe_alerts.sas'; + put '@li mpe_runhook.sas'; + put '@li mpe_targetloader.sas'; + put '@li removecolsfromwork.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/* load parameters */'; + put 'data _null_;'; + put 'set work.sascontroltable;'; + put 'call symputx(''ACTION'',ACTION);'; + put 'call symputx(''TABLE'',TABLE);'; + put '/* DIFFTIME is when the DIFF was generated on the frontend */'; + put 'call symputx(''DIFFTIME'',DIFFTIME);'; + put 'run;'; + put '%global action is_err err_msg;'; + put '%let is_err=0;'; + put '%let user=%mf_getuser();'; + put '%let sastime=%sysfunc(datetime());'; + put 'data sastime;'; + put 'dt_sastime=&sastime;'; + put 'run;'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; + put 'picture flatdate other=''%0Y%0m%0d_%0H%0M%0S'' (datatype=datetime);'; + put 'RUN;'; + put '/* SHOW_DIFFS works by getting the temp tables from the bitemporal loader */'; + put '/* so we share much of the logic from the actual load process */'; + put '%let isfmtcat=0;'; + put 'data APPROVE1;'; + put 'set &mpelib..mpe_submit;'; + put 'where TABLE_ID="&TABLE";'; + put '/* fetch mpe_submit data */'; + put 'libds=cats(base_lib,''.'',base_ds);'; + put 'REVIEWED_ON=put(reviewed_on_dttm,datetime19.);'; + put 'call symputx(''REVIEW_STATUS_ID'',submit_status_cd,''l'');'; + put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED);'; + put 'call symputx(''num_of_approvals_remaining'',num_of_approvals_remaining);'; + put '/* other stuff that''s useful to do in data step */'; + put 'call symputx(''orig_libds'',libds);'; + put 'call symputx(''libds'',libds);'; + put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'call symputx(''isfmtcat'',1);'; + put 'libds=''work.fmtextract'';'; + put 'call symputx(''libds'',libds);'; + put 'end;'; + put 'putlog (_all_)(=);'; + put '/* convert provided string DIFFTIME back to a numeric SAS datetime */'; + put 'if "&action" ne "SHOW_DIFFS" then do;'; + put 'call symputx(''DIFFTIME'',input(symget(''DIFFTIME''),anydtdtm18.));'; + put 'end;'; + put 'length difftime $32;'; + put 'DIFFTIME=put(&sastime,datetime19.2);'; + put 'run;'; + put '%mp_cntlout('; + put 'iftrue=(&isfmtcat=1)'; + put ',libcat=&orig_libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(difftime orig_libds libds table)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: difftime orig_libds libds table)'; + put ')'; + put '/* security checks */'; + put '%mpe_accesscheck(&orig_libds,outds=authEDIT,user=&user,access_level=EDIT)'; + put '%mpe_accesscheck(&orig_libds,outds=authAPP,user=&user,access_level=APPROVE)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc Before entering postdata macro)'; + put ')'; + put '%mp_abort('; + put 'iftrue=('; + put '%mf_getattrn(work.authEDIT,NLOBS)=0 & %mf_getattrn(work.authAPP,NLOBS)=0'; + put ')'; + put ',mac=&_program'; + put ',msg=%str(&user not authorised to view approval screen for &orig_libds)'; + put ')'; + put '%macro quickmacro(inds,outds);'; + put 'data &outds ;'; + put '%if %length(&VAR_BUSFROM)>0 %then %do;'; + put 'format &VAR_BUSFROM &VAR_BUSTO yymmddhhmmss.;'; + put '%end;'; + put 'if 0 then set &emptybasetable;'; + put 'set &inds;'; + put '%if %mf_existvar(&libds,&var_txfrom) %then %do;'; + put 'drop &var_txfrom &var_txto;'; + put '%end;'; + put '%if %mf_existvar(&inds,_____DELETE__THIS__RECORD_____) %then %do;'; + put 'drop _____DELETE__THIS__RECORD_____;'; + put '%end;'; + put '%if %mf_existvar(&inds,&VAR_PROCESSED) %then %do;'; + put 'drop &VAR_PROCESSED;'; + put '%end;'; + put 'run;'; + put '%mend quickmacro;'; + put '%macro postdata();'; + put '%if %quote(&REVIEW_STATUS_ID)=%quote(REJECTED)'; + put 'or %quote(&REVIEW_STATUS_ID)=%quote(APPROVED) %then'; + put '%do;'; + put 'data params; set approve1; run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,PARAMS)'; + put '%webout(CLOSE)'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if &action=APPROVE_TABLE %then %do;'; + put '/* check user is authorised to approve table */'; + put '/* user could be an editor but not an approver */'; + put '%mp_abort(iftrue= (%mf_getattrn(work.authAPP,NLOBS)=0)'; + put ',mac=&_program'; + put ',msg=%str(&user may not APPROVE changes)'; + put ')'; + put '/* see if this user has already submitted an approval */'; + put '%let prev_upload_check=1;'; + put 'proc sql;'; + put 'select count(*) into: prev_upload_check from &mpelib..mpe_review'; + put 'where TABLE_ID="&TABLE" and REVIEWED_BY_NM="&user"'; + put 'and REVIEW_STATUS_ID ne "SUBMITTED";'; + put '%let authcheck=%mf_getattrn(work.authAPP,NLOBS);'; + put '%if &authcheck=0 or &prev_upload_check=1 %then %do;'; + put '%put WARNING: authcheck=&authcheck prev_upload_check=&prev_upload_check;'; + put 'data apPARAMS;'; + put 'AUTHORISED=&authcheck;'; + put 'PREV_UPLOAD_CHECK=&prev_upload_check;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,apPARAMS);'; + put '%webout(CLOSE)'; + put '%return;'; + put '%end;'; + put '/* now check if table has been updated since DIFF screen shown */'; + put '%local fmt_tm usernm last_load etlsource;'; + put '%let last_load=0;'; + put 'proc sql noprint;'; + put 'select max(processed_dttm) format=16.2 into: last_load'; + put 'from &mpelib..mpe_dataloads'; + put 'where libref="%scan(&orig_libds,1,.)" and dsn="%scan(&orig_libds,2,.)";'; + put 'select processed_dttm format=datetime19., user_nm, etlsource'; + put 'into: fmt_tm, :usernm, :etlsource'; + put 'from &mpelib..mpe_dataloads'; + put 'where libref="%scan(&orig_libds,1,.)" and dsn="%scan(&orig_libds,2,.)"'; + put 'and processed_dttm=&last_load;'; + put '%put TIMECHECK: &last_load>&difftime;'; + put '%if %sysevalf(&last_load>&difftime,boolean)=1 %then %do;'; + put '%let is_err=1;'; + put '%let err_msg=&orig_libds was updated in batch %trim(&etlsource'; + put ') by %trim(&usernm) on &fmt_tm - please refresh the page!!;'; + put '%return;'; + put '%end;'; + put '%if &syscc ne 0 %then %do;'; + put '%let is_err=1;'; + put '%let err_msg=syscc=&syscc before logchange;'; + put '%return;'; + put '%end;'; + put '/* upload about to commence so ensure logs */'; + put 'options notes mprint source2;'; + put '%local oldloc;'; + put '%if %symexist(SYSPRINTTOLOG) %then %let oldloc=&SYSPRINTTOLOG;'; + put '%else %let oldloc=%qsysfunc(getoption(LOG));'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto'; + put 'log="&mpelocapprovals/&TABLE/approval.log";'; + put 'run;'; + put 'data _null_;'; + put 'if _n_=1 then do;'; + put 'length oldloc $1000;'; + put 'oldloc=symget(''oldloc'');'; + put 'putlog "****** redirected:" oldloc " *****";'; + put 'end;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc printto'; + put 'log="&mpelocapprovals/&TABLE/approval.log";'; + put 'run;'; + put '%end;'; + put '%if &syscc ne 0 %then %do;'; + put '%let is_err=1;'; + put '%let err_msg=syscc=&syscc after logchange;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/**'; + put '* upload the actual table'; + put '*/'; + put '%local libref ds;'; + put '%let libref=%scan(&orig_libds,1,.);'; + put '%let ds=%scan(&orig_libds,2,.);'; + put 'proc sql noprint;'; + put 'select PRE_APPROVE_HOOK, POST_APPROVE_HOOK, LOADTYPE, var_txfrom, var_txto'; + put ',BUSKEY, VAR_BUSFROM, VAR_BUSTO'; + put ',AUDIT_LIBDS, NOTES, coalesce(NUM_OF_APPROVALS_REQUIRED,1)'; + put ',VAR_PROCESSED'; + put 'into: PRE_APPROVE_HOOK, :POST_APPROVE_HOOK, :LOADTYPE,:var_txfrom,:var_txto'; + put ',:BUSKEY,:VAR_BUSFROM,:VAR_BUSTO'; + put ',:AUDIT_LIBDS, :TABLE_DESC, :NUM_OF_APPROVALS_REQUIRED_TOT'; + put ',:VAR_PROCESSED'; + put 'from &mpelib..mpe_tables'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and libref="&libref"'; + put 'and dsn="&ds";'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(mpelocapprovals orig_libds)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: mpelocapprovals orig_libds)'; + put ')'; + put '/* get dataset from approvals location */'; + put '%let tmplib=%mf_getuniquelibref();'; + put 'libname &tmplib "&mpelocapprovals/&TABLE";'; + put 'data STAGING_DS;'; + put 'set &tmplib..&TABLE;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc before preapprove)'; + put ')'; + put '/* run pre-approve hook if approving */'; + put '%mpe_runhook(PRE_APPROVE_HOOK)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc after preapprove)'; + put ')'; + put '%if &num_of_approvals_remaining>1 and &action=APPROVE_TABLE %then %do;'; + put '/* append to mpe_review table */'; + put '%let apprno=%eval(&num_of_approvals_required-&num_of_approvals_remaining+1);'; + put 'data work.append_review;'; + put 'if 0 then set &mpelib..mpe_review;'; + put 'TABLE_ID="&TABLE";'; + put 'BASE_TABLE="&orig_libds";'; + put 'REVIEW_STATUS_ID="APPROVED";'; + put 'REVIEWED_BY_NM="&user";'; + put 'REVIEWED_ON_DTTM=&sastime;'; + put 'REVIEW_REASON_TXT="APPROVAL &apprno of &num_of_approvals_required";'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&mpelib,ds=mpe_review,ref=%str(&table Approval),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc append base=&mpelib..mpe_review data=work.append_review;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_review,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '/* update mpe_submit table */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&mpelib,ds=mpe_submit,ref=%str(&table Approval),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc sql;'; + put 'update &mpelib..mpe_submit'; + put 'set num_of_approvals_remaining=&num_of_approvals_remaining-1,'; + put 'reviewed_by_nm="&user",'; + put 'reviewed_on_dttm=&sastime'; + put 'where table_id="&table";'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_submit,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'data apReqd;'; + put 'AUTHORISED=1;'; + put 'ALREADY_UPDATED=0;'; + put 'ALREADY_UPDATED_DTTM=.;'; + put 'set approve1; /* js will test for NUM_OF_APPROVALS_REQUIRED */'; + put 'run;'; + put '%removecolsfromwork(___TMP___MD5)'; + put '%webout(OPEN)'; + put '%webout(OBJ,apReqd);'; + put '%webout(CLOSE)'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc entering TARGETLOADER)'; + put ')'; + put '%mpe_targetloader(libds=&orig_libds'; + put ',now= &sastime'; + put ',etlsource=&TABLE'; + put ',STAGING_DS=STAGING_DS'; + put ',dclib=&mpelib'; + put '%if &action=APPROVE_TABLE %then %do;'; + put ',LOADTARGET=YES'; + put '%end;'; + put '%else %do;'; + put ',LOADTARGET=NO'; + put '%end;'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%if %mf_getattrn(STAGING_DS,NLOBS)=0 %then %do;'; + put '/* empty dataset! */'; + put 'data out;'; + put 'set STAGING_DS;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc entering SHOWDIFFS)'; + put ')'; + put '%if &action=SHOW_DIFFS %then %do;'; + put '/**'; + put '* Now prepare the SHOW DIFFS (approve) screen'; + put '*/'; + put '/*To create the CURRENT diffs, we compare with the ACTUAL data. But first'; + put 'need to find out what version TIME to query it for.. */'; + put 'proc sql noprint;'; + put 'select max(processed_dttm)-1 format=datetime19. into: tstamp'; + put 'from &mpelib..mpe_dataloads'; + put 'where libref="&libref" and dsn="&ds" and ETLSOURCE="&TABLE";'; + put 'quit;'; + put '%if &tstamp=. %then %let tstamp=%sysfunc(datetime(),datetime19.);'; + put '/**'; + put '* now create the DIFFS dataset'; + put '* If using a database, then utilise pass through!'; + put '* Create a temporary table inside the database for joins..'; + put '*/'; + put 'options mprint;'; + put '%let engine_type=%mf_getEngine(%scan(&libds,1,.));'; + put '%put &libds engine type = &engine_type;'; + put '%local inner_table ;'; + put '%if &engine_type=OLEDB %then %do;'; + put '/* generate a unique ID for the temporary table */'; + put 'data _null_;'; + put 'call symputx(''UNIQUE_REF'''; + put ',cats(round(datetime(),1)'; + put ',''_'''; + put ',round(ranuni(0)*100000,1)'; + put ')'; + put ',''l'''; + put ');'; + put 'run;'; + put '%let inner_table=&libref.."##DIFF_&UNIQUE_REF"n;'; + put 'proc sql;'; + put 'create table &inner_table as'; + put 'select * from work.outds_mod;'; + put '%end;'; + put '%else %let inner_table=work.outds_mod;'; + put 'proc sql;'; + put 'create view work.originals2 as'; + put 'select b.*'; + put 'from &inner_table a'; + put 'inner join &libds'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '(where=("&tstamp"dt < &VAR_TXTO))'; + put '%end;'; + put 'b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&buskey));'; + put '%let idx_val=%scan(&buskey,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by %mf_getquotedstr(in_str=&buskey,dlm=%str(,),quote=)'; + put ';'; + put 'create view bitemp5c_updates2 as'; + put 'select * from work.outds_mod'; + put 'order by %mf_getquotedstr(in_str=&buskey,dlm=%str(,),quote=)'; + put ';'; + put 'data; set &libds;stop;run;'; + put '%let emptybasetable=&syslast;'; + put 'options varlenchk=nowarn; /* for small numerics (<8) */'; + put '%quickmacro(work.outds_del,deleted)'; + put '%quickmacro(work.outds_add,new)'; + put '%quickmacro(bitemp5c_updates2,updates)'; + put '%quickmacro(originals2,originals)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc in quickmacro)'; + put ')'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=work.updates'; + put 'out=cols (keep=name type length varnum format);'; + put 'run;'; + put 'proc sort data=cols out=cols(drop=varnum); by varnum;run;'; + put 'data cols; set cols; name=upcase(name);run;'; + put '%let tempDIFFS_CSV=tempDiffs_%trim('; + put '%sysfunc(datetime(),flatdate.)).csv;'; + put '/**'; + put '* Store temp tables so we have a record of diffs'; + put '* do not change this libname or table name as it is used in some'; + put '* post approve hooks'; + put '*/'; + put 'data TEMPDIFFS (compress=no) /* for realistic file size */;'; + put 'length _____status $10;'; + put 'set work.deleted (in=_____del)'; + put 'work.new(in=_____new)'; + put 'work.updates (in=_____upd)'; + put 'work.originals2 (in=_____orig);'; + put 'if _____del then _____status=''DELETED '';'; + put 'else if _____new then _____status=''NEW'';'; + put 'else if _____upd then _____status=''UPDATED'';'; + put 'else if _____orig then _____status=''ORIGINAL'';'; + put 'run;'; + put 'proc export data=TEMPDIFFS dbms=csv replace'; + put 'outfile="&mpelocapprovals/&TABLE/&tempDIFFS_CSV" ;'; + put 'run;'; + put 'proc sql noprint;'; + put 'select filesize format=sizekmg10.1, filesize as filesize_raw'; + put 'into: filesize,:filesize_raw'; + put 'from dictionary.tables'; + put 'where libname=''WORK'' and memtype=''DATA'' and memname=''TEMPDIFFS'';'; + put '%if &filesize_raw>3000000 /* approx 3mb */ %then %let TRUNCATED=YES;'; + put '%else %let TRUNCATED=NO;'; + put 'data params;'; + put 'set approve1;'; + put 'DIFFS_CSV="&tempDIFFS_CSV";'; + put 'FILESIZE="&filesize";'; + put 'FILESIZE_RAW=&filesize_raw;'; + put 'TRUNCATED="&TRUNCATED";'; + put 'NUM_ADDED=%mf_getattrn(work.new,NLOBS);'; + put 'NUM_DELETED=%mf_getattrn(work.deleted,NLOBS);'; + put 'NUM_UPDATED=%mf_getattrn(work.updates,NLOBS);'; + put 'SUBMITTED_ON=put(submitted_on_dttm,datetime19.);'; + put '%if %mf_getattrn(work.authAPP,NLOBS)>0 %then %do;'; + put 'ISAPPROVER=''YES'';'; + put '%end;'; + put '%else %do;'; + put 'ISAPPROVER=''NO'';'; + put '%end;'; + put 'run;'; + put '%if &TRUNCATED=YES %then %do;'; + put 'options obs=200;'; + put '%end;'; + put '/* get additional submits against the same base table */'; + put 'proc sort data=&mpelib..mpe_submit(where=('; + put 'submit_status_cd=''SUBMITTED'''; + put 'and cats(base_lib,''.'',base_ds)="&orig_libds"'; + put 'and table_id ne "&TABLE"'; + put ')) out=submits;'; + put 'by descending submitted_on_dttm;'; + put 'run;'; + put '/* filter last 10 */'; + put 'data submits;'; + put 'set submits;'; + put 'if _n_>10 then stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc SHOWDIFFS prior to streamout)'; + put ')'; + put '%removecolsfromwork(___TMP___MD5)'; + put '%webout(OPEN)'; + put '%webout(OBJ,params)'; + put '%webout(OBJ,cols)'; + put '%webout(OBJ,submits)'; + put '%webout(OBJ,deleted,fmt=N,missing=STRING)'; + put '%webout(OBJ,new,fmt=N,missing=STRING)'; + put '%webout(OBJ,updates,fmt=N,missing=STRING)'; + put '%webout(OBJ,ORIGINALS,fmt=N,missing=STRING)'; + put '/* need same for formatted view */'; + put '%webout(OBJ,deleted,dslabel=fmt_deleted,fmt=Y,missing=STRING)'; + put '%webout(OBJ,new,dslabel=fmt_new,fmt=Y,missing=STRING)'; + put '%webout(OBJ,updates,dslabel=fmt_updates,fmt=Y,missing=STRING)'; + put '%webout(OBJ,originals,dslabel=fmt_ORIGINALS,fmt=Y,missing=STRING)'; + put '%webout(CLOSE)'; + put '%if &engine_type=OLEDB %then %do;'; + put 'proc sql; /* needs to be dropped AFTER view execution */'; + put 'drop table &inner_table;'; + put '%end;'; + put '%return;'; + put '%end;'; + put '%if &action=APPROVE_TABLE %then %do;'; + put '%approve:'; + put '/**'; + put '* store temp tables so we have a record of diffs'; + put '* do not change this libname or table name as it is used in some'; + put '* post approve hooks'; + put '* for REPLACE loads, temp tables not made, so make them'; + put '*/'; + put '%if &LOADTYPE=REPLACE %then %do;'; + put 'data work.outds_add; run;'; + put 'data work.outds_mod; run;'; + put '%end;'; + put 'libname approve "&mpelocapprovals/&TABLE";'; + put 'data; set &libds;stop;run;'; + put '%let emptybasetable=&syslast;'; + put 'data approve.ActualDiffs;'; + put 'length _____STATUS_____ $10;'; + put 'if 0 then set &emptybasetable;'; + put 'set work.outds_del (in=_____del)'; + put 'work.outds_add (in=_____new)'; + put 'work.outds_mod (in=_____upd);'; + put 'if _____del then _____STATUS_____=''DELETED'';'; + put 'else if _____new then _____STATUS_____=''NEW'';'; + put 'else if _____upd then _____STATUS_____=''UPDATED'';'; + put '%if %mf_existvar(&libds,&var_txfrom) %then %do;'; + put 'drop &var_txfrom &var_txto;'; + put '%end;'; + put '%if %mf_existvar(&libds,&VAR_PROCESSED) %then %do;'; + put 'drop &VAR_PROCESSED;'; + put '%end;'; + put 'run;'; + put 'proc export data=approve.ActualDiffs'; + put 'outfile="&mpelocapprovals/&TABLE/ActualDiffs.csv"'; + put 'dbms=csv'; + put 'replace;'; + put 'run;'; + put '/* update the control table to show table as approved */'; + put '/* append to mpe_review table */'; + put '%let apprno=%eval(&num_of_approvals_required-&num_of_approvals_remaining+1);'; + put 'data work.append_review;'; + put 'if 0 then set &mpelib..mpe_review;'; + put 'TABLE_ID="&TABLE";'; + put 'BASE_TABLE="&orig_libds";'; + put 'REVIEW_STATUS_ID="APPROVED";'; + put 'REVIEWED_BY_NM="&user";'; + put 'REVIEWED_ON_DTTM=&sastime;'; + put 'REVIEW_REASON_TXT="APPROVAL &apprno of &num_of_approvals_required";'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&mpelib,ds=mpe_review,ref=%str(&table Approval),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc append base=&mpelib..mpe_review data=work.append_review;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_review,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '/* update mpe_submit table */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&mpelib,ds=mpe_submit,ref=%str(&table Approval in auditors/postdata),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc sql;'; + put 'update &mpelib..mpe_submit'; + put 'set submit_status_cd=''APPROVED'','; + put 'num_of_approvals_remaining=&num_of_approvals_remaining-1,'; + put 'reviewed_by_nm="&user",'; + put 'reviewed_on_dttm=&sastime'; + put 'where table_id="&table";'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_submit,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '/* run post-approve hook */'; + put '%mpe_runhook(POST_APPROVE_HOOK)'; + put 'data apPARAMS;'; + put 'AUTHORISED=1;'; + put 'ALREADY_UPDATED=0;'; + put 'ALREADY_UPDATED_DTTM=.;'; + put 'DIFFTIME="&difftime";'; + put 'if &syscc=0 then RESPONSE=''SUCCESS!'';'; + put 'else response="SYSCC=&syscc.";'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program 582'; + put ',msg=%superq(msg)'; + put ')'; + put '%mpe_alerts(alert_event=APPROVED'; + put ', alert_lib=&libref'; + put ', alert_ds=&ds'; + put ', dsid=&TABLE'; + put ')'; + put '%removecolsfromwork(___TMP___MD5)'; + put '%webout(OPEN)'; + put '%webout(OBJ,apPARAMS)'; + put '%webout(CLOSE)'; + put '%return;'; + put '%end;'; + put '%mend postdata;'; + put '%postdata()'; + put '%mp_abort(mode=INCLUDE)'; + put '%mp_abort(iftrue= (&is_err=1)'; + put ',mac=&_program'; + put ',msg=%superq(err_msg)'; + put ')'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/editors; + +%let service=getdata; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mpe_columnlevelsecurity(tgtlib,tgtds,inds'; + put ',mode=VIEW'; + put ',groupds=work.groups'; + put ',clsds=work.clsview'; + put ',outds=CLSVIEW'; + put ',outmeta=work.cls_rules'; + put ');'; + put '%local col_list is_admin;'; + put '/* filter for the appropriate rules */'; + put 'proc sql;'; + put 'create table &outmeta as'; + put 'select CLS_VARIABLE_NM,'; + put 'min(case when CLS_HIDE=1 then 1 else 0 end) as CLS_HIDE'; + put 'from &clsds'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and CLS_SCOPE in ("&mode",''ALL'')'; + put 'and CLS_ACTIVE=1'; + put '%if &mode=VIEW %then %do;'; + put 'and CLS_HIDE ne 1'; + put '%end;'; + put 'and upcase(CLS_GROUP) in (select upcase(groupname) from &groupds)'; + put 'and CLS_LIBREF="%upcase(&tgtlib)"'; + put 'and CLS_TABLE="%upcase(&tgtds)"'; + put 'group by CLS_VARIABLE_NM;'; + put '%let is_admin=0;'; + put 'proc sql;'; + put 'select count(*) into: is_admin from &groupds where groupname="&MPEADMINS";'; + put '%put &sysmacroname: &=is_admin;'; + put '%if %mf_nobs(work.cls_rules) = 0 or &is_admin>0 %then %do;'; + put '%put &sysmacroname: no CLS rules to apply;'; + put '%put &=is_admin;'; + put '/* copy using append for speed */'; + put 'data &outds;'; + put 'set &inds;'; + put 'stop;'; + put 'run;'; + put 'proc append base=&outds data=&inds;'; + put 'run;'; + put '/* ensure CLS_RULES is empty in case of admin */'; + put 'data &outmeta;'; + put 'set &outmeta;'; + put 'stop;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &mode=VIEW %then %do;'; + put '/* just send back the relevant columns */'; + put '%let col_list=0;'; + put 'proc sql noprint;'; + put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; + put 'where CLS_HIDE=0;'; + put '%if &col_list=0 %then %do;'; + put '/*'; + put 'We have columns that are set to CLS_HIDE=1 but we do not have any to'; + put 'explicitly show. Therefore we assume all columns are to be shown except'; + put 'those that are explicitly hidden.'; + put '*/'; + put 'proc sql noprint;'; + put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; + put 'where CLS_HIDE=1;'; + put 'data &outds;'; + put 'set &inds;'; + put 'drop &col_list;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds;'; + put 'set &inds;'; + put 'keep &col_list;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %if &mode=EDIT %then %do;'; + put '/*'; + put 'In this case we pass all columns and the frontend will filter out the'; + put 'ones that are not allowed to be edited.'; + put '*/'; + put 'data &outds;'; + put 'set &inds;'; + put 'stop;'; + put 'run;'; + put 'proc append base=&outds data=&inds;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: invalid mode - &mode!;'; + put '%abort;'; + put '%end;'; + put '%mend mpe_columnlevelsecurity;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mpe_getlabels(type,source,outds=mpe_getlabels);'; + put '%local tmpds;'; + put '%if &type=COLUMNS %then %do;'; + put '%let tmpds=%mf_getuniquename();'; + put 'proc contents noprint data=&source'; + put 'out=&tmpds(keep=name memlabel label);'; + put 'run;'; + put 'proc sql ;'; + put 'create table &outds as'; + put 'select upcase(a.name) as name'; + put ',a.memlabel'; + put ',coalesce(b.dd_shortdesc,a.label) as desc'; + put ',b.dd_longdesc as longdesc'; + put 'from &tmpds a'; + put 'left join &mpelib..mpe_datadictionary'; + put '(where=(&dc_dttmtfmt. < tx_to'; + put 'and dd_source ? %upcase("&source")'; + put 'and dd_type=''COLUMN'')) b'; + put 'on scan(b.dd_source,-1,''.'')=upcase(a.name);'; + put '%end;'; + put '%mend mpe_getlabels;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mpe_filtermaster(mode,libds,'; + put 'dclib=,'; + put 'filter_rk=-1,'; + put 'outref=0,'; + put 'outds=work.query'; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%let mode=%upcase(&mode);'; + put '%let libds=%upcase(&libds);'; + put '%mp_abort(iftrue= ('; + put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; + put ')'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid MODE: &mode)'; + put ')'; + put '%mp_abort(iftrue= (&outref = 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Please provide a fileref!)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put 'filename &outref temp;'; + put '/* ensure outputs exist */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put '' '';'; + put 'run;'; + put 'data &outds;'; + put 'set &dclib..mpe_filtersource;'; + put 'stop;'; + put 'run;'; + put '/**'; + put '* Deal with FILTER_RK first'; + put '*/'; + put '%if &filter_rk gt 0 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''( ''@@;'; + put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; + put 'call symputx(''filter_hash'',filter_hash,''l'');'; + put 'run;'; + put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; + put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; + put 'by filter_line;'; + put 'run;'; + put '%mp_filtergenerate(&outds,outref=&outref)'; + put '%end;'; + put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; + put '%local varfrom varto;'; + put '%let varfrom=0;'; + put 'proc sql;'; + put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; + put 'from &dclib..MPE_TABLES'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; + put '%put &=varfrom;'; + put '%put &=varto;'; + put '/**'; + put '* Check if the date variables were mentioned in the query'; + put '* This is a trigger for serving a historical view instead of current'; + put '* we skip this part when checking an ULOAD as there are no date vars'; + put '*/'; + put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; + put '%local validityvars;'; + put 'proc sql;'; + put 'select count(*) into: validityvars'; + put 'from &outds'; + put 'where variable_nm in ("&varfrom","&varto");'; + put '%if &validityvars=0 %then %do;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'length filter_text $32767;'; + put 'varfrom=symget(''varfrom'');'; + put 'varto=symget(''varto'');'; + put 'filter_text=catx('' '','; + put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; + put ');'; + put 'if &filter_rk > 0 then put ''AND '' filter_text;'; + put 'else put filter_text;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '/**'; + put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; + put '*/'; + put '/* first determine users group membership */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; + put '%local admin_check;'; + put 'proc sql;'; + put 'select count(*) into: admin_check'; + put 'from work.groups'; + put 'where groupname="&mpeadmins";'; + put '%put &sysmacroname: &=admin_check &=mpeadmins;'; + put '%if &admin_check=0 %then %do;'; + put '%local scopeval;'; + put '%if &mode=DLOAD %then %let scopeval=VIEW;'; + put '%if &mode=ULOAD %then %let scopeval=EDIT;'; + put '%else %let scopeval=&mode;'; + put '/* extract relevant rows */'; + put '%local rlsds;'; + put '%let rlsds=%mf_getuniquename();'; + put 'proc sql;'; + put 'create table work.&rlsds as'; + put 'select rls_group,'; + put 'rls_group_logic as group_logic,'; + put 'rls_subgroup_logic as subgroup_logic,'; + put 'rls_subgroup_id as subgroup_id,'; + put 'rls_variable_nm as variable_nm,'; + put 'rls_operator_nm as operator_nm,'; + put 'rls_raw_value as raw_value'; + put 'from &mpelib..mpe_row_level_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and rls_scope in ("&scopeval",''ALL'')'; + put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; + put 'and rls_libref="%scan(&libds,1,.)"'; + put 'and rls_table="%scan(&libds,2,.)"'; + put 'and rls_active=1'; + put 'order by rls_group,rls_subgroup_id;'; + put '%if &sqlobs>0 %then %do;'; + put '/* check if we currently have filter or not */'; + put 'data ;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put 'data _null_;'; + put 'set &syslast;'; + put 'file &outref mod;'; + put 'if newfilter=1 then put ''('';'; + put 'else put ''AND ('';'; + put 'run;'; + put '/* loop through and apply filters for each group membership */'; + put '%local fref ds;'; + put '%let fref=%mf_getuniquefileref();'; + put '%let ds=%mf_getuniquename();'; + put 'proc sql noprint;'; + put 'select distinct rls_group into : group1 -'; + put 'from work.&rlsds;'; + put '%do i=1 %to &sqlobs;'; + put 'data work.&ds;'; + put 'set work.&rlsds;'; + put 'where rls_group="&&group&i";'; + put 'drop rls_group;'; + put 'run;'; + put '%mp_filtergenerate(&ds,outref=&fref)'; + put 'data _null_;'; + put 'infile &fref;'; + put 'file &outref mod;'; + put 'input;'; + put 'if &i>1 and _n_=1 then put '' OR '';'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'put '')'';'; + put 'run;'; + put '%end; /* &sqlobs>0 */'; + put '%else %do;'; + put '%put &sysmacroname: no matching groups;'; + put 'data _null_;'; + put 'set work.groups;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Row Level Security Generation Error)'; + put ')'; + put '%end; /* &admin_check=0 */'; + put '%put leaving &sysmacroname with the following query:;'; + put '%local empty;'; + put '%let empty=0;'; + put 'data _null_;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'putlog _infile_;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; + put 'put ''1=1'';'; + put 'call symputx(''empty'',1,''l'');'; + put 'end;'; + put 'run;'; + put '%if &empty=1 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%mend mpe_filtermaster;'; + put '%macro dc_getservicecode(loc=,outref=);'; + put '%mm_getstpcode(tree=&loc'; + put ',outref=&outref'; + put ')'; + put '%mend dc_getservicecode;'; + put '%macro mp_include(fileref'; + put ',prefix=_'; + put ',opts=SOURCE2'; + put ',errds=work.mp_abort_errds'; + put ')/*/STORE SOURCE*/;'; + put '/* prepare precode */'; + put '%local tempref;'; + put '%let tempref=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &tempref;'; + put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; + put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; + put 'name=scan(xpath,-1,''/\'');'; + put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; + put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; + put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; + put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; + put 'run;'; + put '/* prepare the errds */'; + put 'data &errds;'; + put 'length msg mac $1000;'; + put 'call missing(msg,mac);'; + put 'iftrue=''1=0'';'; + put 'run;'; + put '/* include the include */'; + put '%inc &tempref &fileref/&opts;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; + put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; + put ')'; + put 'filename &tempref clear;'; + put '%mend mp_include;'; + put '%macro mpe_runhook(hookvar);'; + put '%local pgmloc pgmtype;'; + put '%let pgmtype=0;'; + put '%put &sysmacroname: &=hookvar;'; + put '%if %length(&&&hookvar)>0 %then %do;'; + put '%put &sysmacroname: Executing &&&hookvar;'; + put 'data _null_;'; + put 'rule_value=symget("&hookvar");'; + put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; + put 'call symputx(''pgmtype'',''PGM'');'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'end;'; + put 'else do;'; + put 'apploc="%mf_getapploc()";'; + put 'if substr(rule_value,1,1) ne ''/'''; + put 'then rule_value=cats(apploc,''/'',rule_value);'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'call symputx(''pgmtype'',''JOB'');'; + put 'end;'; + put 'run;'; + put '%if &pgmtype=PGM %then %do;'; + put 'filename sascode "&pgmloc";'; + put '%end;'; + put '%else %do;'; + put '%dc_getservicecode(loc=&pgmloc'; + put ',outref=sascode'; + put ')'; + put '%end;'; + put '/* the below script will need to modify work.STAGING_DS */'; + put '%local x; %let x=; /* legacy feature */'; + put '%mp_include(sascode)'; + put '%end;'; + put '%mend mpe_runhook;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mm_getgroupmembers('; + put 'group /* metadata group for which to bring back members */'; + put ',outds=work.mm_getgroupmembers /* output dataset to contain the results */'; + put ',emails=NO /* set to yes to bring back emails also */'; + put ',id=NO /* set to yes if passing an ID rather than group name */'; + put ')/*/STORE SOURCE*/;'; + put 'data &outds ;'; + put 'attrib uriGrp uriMem GroupId GroupName Group_or_Role MemberName MemberType'; + put 'euri email length=$64'; + put 'GroupDesc length=$256'; + put 'rcGrp rcMem rc i j length=3;'; + put 'call missing (of _all_);'; + put 'drop uriGrp uriMem rcGrp rcMem rc i j arc ;'; + put 'i=1;'; + put '* Grab the URI for the first Group ;'; + put '%if &id=NO %then %do;'; + put 'rcGrp=metadata_getnobj("omsobj:IdentityGroup?@Name=''&group''",i,uriGrp);'; + put '%end;'; + put '%else %do;'; + put 'rcGrp=metadata_getnobj("omsobj:IdentityGroup?@Id=''&group''",i,uriGrp);'; + put '%end;'; + put '* If Group found, enter do loop ;'; + put 'if rcGrp>0 then do;'; + put 'call missing (rcMem,uriMem,GroupId,GroupName,Group_or_Role'; + put ',MemberName,MemberType);'; + put '* get group info ;'; + put 'rc = metadata_getattr(uriGrp,"Id",GroupId);'; + put 'rc = metadata_getattr(uriGrp,"Name",GroupName);'; + put 'rc = metadata_getattr(uriGrp,"PublicType",Group_or_Role);'; + put 'rc = metadata_getattr(uriGrp,"Desc",GroupDesc);'; + put 'j=1;'; + put 'do while (metadata_getnasn(uriGrp,"MemberIdentities",j,uriMem) > 0);'; + put 'call missing (MemberName, MemberType, email);'; + put 'rc = metadata_getattr(uriMem,"Name",MemberName);'; + put 'rc = metadata_getattr(uriMem,"PublicType",MemberType);'; + put 'if membertype=''User'' and "&emails"=''YES'' then do;'; + put 'if metadata_getnasn(uriMem,"EmailAddresses",1,euri)>0 then do;'; + put 'arc=metadata_getattr(euri,"Address",email);'; + put 'end;'; + put 'end;'; + put 'output;'; + put 'j+1;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%mend mm_getgroupmembers;'; + put '%macro dc_getgroupmembers(group,outds=dc_getgroupmembers);'; + put '%mm_getgroupmembers(&group,outds=&outds)'; + put '%mend dc_getgroupmembers;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mp_getcols(ds, outds=work.cols);'; + put '%local dropds;'; + put 'proc contents noprint data=&ds'; + put 'out=_data_ (keep=name type length label varnum format:);'; + put 'run;'; + put '%let dropds=&syslast;'; + put 'data &outds(keep=name type length varnum format label ddtype fmtname);'; + put 'set &dropds(rename=(format=fmtname type=type2));'; + put 'name=upcase(name);'; + put 'if type2=2 then do;'; + put 'length format $49.;'; + put 'if fmtname='''' then format=cats(''$'',length,''.'');'; + put 'else if formatl=0 then format=cats(fmtname,''.'');'; + put 'else format=cats(fmtname,formatl,''.'');'; + put 'type=''C'';'; + put 'ddtype=''CHARACTER'';'; + put 'end;'; + put 'else do;'; + put 'if fmtname='''' then format=cats(length,''.'');'; + put 'else if formatl=0 then format=cats(fmtname,''.'');'; + put 'else if formatd=0 then format=cats(fmtname,formatl,''.'');'; + put 'else format=cats(fmtname,formatl,''.'',formatd);'; + put 'type=''N'';'; + put 'if format=:''DATETIME'' or format=:''E8601DT'' then ddtype=''DATETIME'';'; + put 'else if format=:''DATE'' or format=:''DDMMYY'' or format=:''MMDDYY'''; + put 'or format=:''YYMMDD'' or format=:''E8601DA'' or format=:''B8601DA'''; + put 'or format=:''MONYY'''; + put 'then ddtype=''DATE'';'; + put 'else if format=:''TIME'' then ddtype=''TIME'';'; + put 'else ddtype=''NUMERIC'';'; + put 'end;'; + put 'if label='''' then label=name;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &dropds;'; + put '%mend mp_getcols;'; + put '%macro mcf_init(func'; + put ')/*/STORE SOURCE*/;'; + put '%if not (%symexist(SASJS_PREFIX)) %then %do;'; + put '%global SASJS_PREFIX;'; + put '%let SASJS_PREFIX=SASJS;'; + put '%end;'; + put '%let func=%upcase(&func);'; + put '/* the / character is just a seperator */'; + put '%global &sasjs_prefix._FUNCTIONS;'; + put '%if %index(&&&sasjs_prefix._FUNCTIONS,&func/)>0 %then %do;'; + put '1'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%let &sasjs_prefix._FUNCTIONS=&&&sasjs_prefix._FUNCTIONS &func/;'; + put '0'; + put '%end;'; + put '%mend mcf_init;'; + put '%macro mcf_length(wrap=NO'; + put ',insert_cmplib=DEPRECATED'; + put ',lib=WORK'; + put ',cat=SASJS'; + put ',pkg=UTILS'; + put ')/*/STORE SOURCE*/;'; + put '%local i var cmpval found;'; + put '%if %mcf_init(mcf_length)=1 %then %return;'; + put '%if &wrap=YES %then %do;'; + put 'proc fcmp outlib=&lib..&cat..&pkg;'; + put '%end;'; + put 'function mcf_length(var);'; + put 'if var=. then len=0;'; + put 'else if missing(var) or trunc(var,3)=var then len=3;'; + put 'else if trunc(var,4)=var then len=4;'; + put 'else if trunc(var,5)=var then len=5;'; + put 'else if trunc(var,6)=var then len=6;'; + put 'else if trunc(var,7)=var then len=7;'; + put 'else len=8;'; + put 'return(len);'; + put 'endsub;'; + put '%if &wrap=YES %then %do;'; + put 'quit;'; + put '%end;'; + put '/* insert the CMPLIB if not already there */'; + put '%let cmpval=%sysfunc(getoption(cmplib));'; + put '%let found=0;'; + put '%do i=1 %to %sysfunc(countw(&cmpval,%str( %(%))));'; + put '%let var=%scan(&cmpval,&i,%str( %(%)));'; + put '%if &var=&lib..&cat %then %let found=1;'; + put '%end;'; + put '%if &found=0 %then %do;'; + put 'options insert=(CMPLIB=(&lib..&cat));'; + put '%end;'; + put '%mend mcf_length;'; + put '%macro mf_getvarcount(libds,typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid nvars rc outcnt x;'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%let nvars=.;'; + put '%let outcnt=0;'; + put '%let typefilter=%upcase(&typefilter);'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &typefilter=A %then %let outcnt=&nvars;'; + put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; + put '/* increment based on variable type */'; + put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; + put '%let outcnt=%eval(&outcnt+1);'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put unable to open &libds (rc=&dsid);'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '&outcnt'; + put '%mend mf_getvarcount;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getVarFormat(libds /* two level ds name */'; + put ', var /* variable name from which to return the format */'; + put ', force=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vformat rc vlen vtype;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable format */'; + put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* supply a default if no format available */'; + put '%if %length(&vformat)<2 & &force=1 %then %do;'; + put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; + put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%if &vtype=C %then %let vformat=$&vlen..;'; + put '%else %let vformat=best.;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable format */'; + put '&vformat'; + put '%mend mf_getVarFormat;'; + put '%macro mp_getmaxvarlengths('; + put 'libds'; + put ',num2char=NO'; + put ',outds=work.mp_getmaxvarlengths'; + put ')/*/STORE SOURCE*/;'; + put '%local vars prefix x var fmt srcds;'; + put '%let vars=%mf_getvarlist(libds=&libds);'; + put '%let prefix=%substr(%mf_getuniquename(),1,25);'; + put '%let num2char=%upcase(&num2char);'; + put '%if &num2char=NO %then %do;'; + put '/* compile length function for numeric fields */'; + put '%mcf_length(wrap=YES, insert_cmplib=YES)'; + put '%end;'; + put '%if &num2char=NO'; + put 'and ("%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5")'; + put 'and %mf_getvarcount(&libds,typefilter=N) gt 0'; + put '%then %do;'; + put '/* custom functions not supported in summary operations */'; + put '%let srcds=%mf_getuniquename();'; + put 'data &srcds/view=&srcds;'; + put 'set &libds;'; + put '%do x=1 %to %sysfunc(countw(&vars,%str( )));'; + put '%let var=%scan(&vars,&x);'; + put '%if %mf_getvartype(&libds,&var)=N %then %do;'; + put '&prefix.&x=mcf_length(&var);'; + put '%end;'; + put '%end;'; + put 'run;'; + put '%end;'; + put '%else %let srcds=&libds;'; + put 'proc sql;'; + put 'create table &outds (rename=('; + put '%do x=1 %to %sysfunc(countw(&vars,%str( )));'; + put '&prefix.&x=%scan(&vars,&x)'; + put '%end;'; + put '))'; + put 'as select'; + put '%do x=1 %to %sysfunc(countw(&vars,%str( )));'; + put '%let var=%scan(&vars,&x);'; + put '%if &x>1 %then ,;'; + put '%if %mf_getvartype(&libds,&var)=C %then %do;'; + put 'max(lengthn(&var)) as &prefix.&x'; + put '%end;'; + put '%else %if &num2char=YES %then %do;'; + put '%let fmt=%mf_getvarformat(&libds,&var);'; + put '%put fmt=&fmt;'; + put '%if %str(&fmt)=%str() %then %do;'; + put 'max(lengthn(cats(&var))) as &prefix.&x'; + put '%end;'; + put '%else %do;'; + put 'max(lengthn(put(&var,&fmt))) as &prefix.&x'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then %do;'; + put 'max(&prefix.&x) as &prefix.&x'; + put '%end;'; + put '%else %do;'; + put 'max(mcf_length(&var)) as &prefix.&x'; + put '%end;'; + put '%end;'; + put '%end;'; + put 'from &srcds;'; + put 'proc transpose data=&outds'; + put 'out=&outds(rename=(_name_=NAME COL1=MAXLEN));'; + put 'run;'; + put '%mend mp_getmaxvarlengths;'; + put '%macro mp_validatecol(incol,rule,outcol);'; + put '/* tempcol is given a unique name with every invocation */'; + put '%local tempcol;'; + put '%let tempcol=%mf_getuniquename();'; + put '%if &rule=ISINT %then %do;'; + put '&outcol=0;'; + put 'if not missing(&incol) then do;'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; + put 'end;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=ISNUM %then %do;'; + put '/*'; + put 'credit SØREN LASSEN'; + put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; + put '*/'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if missing(&tempcol) then &outcol=0;'; + put 'else &outcol=1;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=LIBDS %then %do;'; + put '/* match libref.dataset */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for LIBDS";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%else %if &rule=FORMAT %then %do;'; + put '/* match valid format - regex could probably be improved */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for FORMAT";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%mend mp_validatecol;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getdata.sas'; + put '@brief Returns a dataset to the editor front end'; + put '@details'; + put '

Service Inputs

'; + put '
SASCONTROLTABLE
'; + put '|LIBDS:$41.|FILTER_RK:$5.|'; + put '|---|---|'; + put '|DC258467.MPE_X_TEST|-1|'; + put '

Service Outputs

'; + put '
sasdata
'; + put '
sasparams
'; + put 'Contains info on the request. One row is returned.'; + put '* CLS_FLG - set to 0 if there are no CLS rules (everything should be editable)'; + put 'else set to 1 (CLS rules exist)'; + put '
approvers
'; + put '
dqrules
'; + put '
dqdata
'; + put '
cols
'; + put 'Contains column level attributes.'; + put '@li NAME - column name'; + put '@li VARNUM - variable position. Source: https://core.sasjs.io/mp__getcols_8sas.html'; + put '@li LABEL - variable label. Source: https://core.sasjs.io/mp__getcols_8sas.html'; + put '@li FMTNAME - derived format name. Source: https://core.sasjs.io/mp__getcols_8sas.html'; + put '@li DDTYPE - derived dropdown type. Source: https://core.sasjs.io/mp__getcols_8sas.html'; + put '@li CLS_RULE - values include:'; + put '- EDIT - the column is editable'; + put '- READ - the column should be readonly'; + put '- HIDE - the column should be hidden'; + put '@li memlabel'; + put '@li desc- augmented with MPE_DATADICTIONARY if exists, else label'; + put '@li longdesc - from MPE_DATADICTIONARY'; + put '
maxvarlengths
'; + put '
xl_rules
'; + put '
query
'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li dc_getgroupmembers.sas'; + put '@li mf_existvar.sas'; + put '@li mf_getattrn.sas'; + put '@li mf_getvarlist.sas'; + put '@li mf_existds.sas'; + put '@li mf_getquotedstr.sas'; + put '@li mf_getuser.sas'; + put '@li mf_nobs.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mf_wordsinstr1butnotstr2.sas'; + put '@li mp_abort.sas'; + put '@li mp_cntlout.sas'; + put '@li mp_getcols.sas'; + put '@li mp_getmaxvarlengths.sas'; + put '@li mp_validatecol.sas'; + put '@li mpe_accesscheck.sas'; + put '@li mpe_columnlevelsecurity.sas'; + put '@li mpe_getlabels.sas'; + put '@li mpe_filtermaster.sas'; + put '@li mpe_runhook.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/**'; + put '* Validate inputs'; + put '*/'; + put 'data work.intest;'; + put 'length filter_rk 8;'; + put 'set work.SASCONTROLTABLE;'; + put '/* validate filter_rk */'; + put 'if filter_rk le 0 then filter_rk=-1;'; + put 'call symputx(''orig_libds'',upcase(libds));'; + put 'is_fmt=0;'; + put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'is_fmt=1;'; + put 'libds=''work.fmtextract'';'; + put 'call symputx(''libds'',libds);'; + put 'end;'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'putlog (_all_)(=);'; + put '/* validate libds */'; + put '%mp_validatecol(LIBDS,LIBDS,is_libds)'; + put 'if is_libds=0 then do;'; + put 'putlog ''ERR'' ''OR: Invalid libds:'' libds;'; + put 'stop;'; + put 'end;'; + put 'else do;'; + put 'call symputx(''filter_rk'',filter_rk);'; + put 'call symputx(''libds'',libds);'; + put 'end;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (%mf_nobs(work.intest)=0)'; + put ',mac=&_program'; + put ',msg=%str(Some err with service inputs)'; + put ')'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(libds filter_rk)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: libds filter_rk)'; + put ')'; + put '/* export format catalog */'; + put '%mp_cntlout('; + put 'iftrue=(&is_fmt=1)'; + put ',libcat=&orig_libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '/* stream back meta info, further calls will return col metadata and actual data'; + put '*/'; + put '%let libref=%upcase(%scan(&libds,1,.));'; + put '%let dsn=%upcase(%scan(&libds,2,.));'; + put '%dc_assignlib(WRITE,&libref)'; + put '/**'; + put '* First check user has access permission to edit the table'; + put '*/'; + put '%put checking access;'; + put '%let user=%mf_getuser();'; + put '%mpe_accesscheck(&orig_libds,outds=mw_auth,user=&user,access_level=EDIT)'; + put '%mp_abort(iftrue= (%mf_getattrn(work.mw_auth,NLOBS)=0)'; + put ',mac=mpestp_getdata.sas'; + put ',msg=&user is not authorised to edit &orig_libds %trim('; + put ')in the &mpelib..MPE_SECURITY table'; + put ')'; + put '%mp_abort(iftrue= ( %mf_existds(libds=&libds) ne 1)'; + put ',mac=mpestp_getdata.sas'; + put ',msg=dataset &libds does not exist!!'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc at line 60 )'; + put ')'; + put '%global loadtype var_txfrom var_txto var_processed filter_text pk coltype'; + put 'sortpk;'; + put '%put getting table attributes;'; + put 'proc sql noprint;'; + put 'select upcase(loadtype)'; + put ',var_txfrom,var_txto'; + put ',var_busfrom,var_busto'; + put ',var_processed,rk_underlying,buskey'; + put ',coalesce(rk_underlying,buskey)'; + put ',pre_edit_hook'; + put ',case when missing(rk_underlying) then buskey else rk_underlying end'; + put 'into: loadtype,:var_txfrom,:var_txto'; + put ',:var_busfrom ,:var_busto'; + put ',:var_processed,:rk_underlying,:buskey, :sortPK, :pre_edit_hook,:pk'; + put 'from &mpelib..mpe_tables'; + put 'where &dc_dttmtfmt. lt TX_TO'; + put 'and upcase(dsn)="%scan(&orig_libds,2,.)"'; + put 'and upcase(libref)="%scan(&orig_libds,1,.)";'; + put '%put preparing filter query:;'; + put '%mpe_filtermaster(EDIT,&orig_libds,'; + put 'dclib=&mpelib,'; + put 'filter_rk=&filter_rk,'; + put 'outref=filtref,'; + put 'outds=work.query'; + put ')'; + put '%macro mpestp_getdata();'; + put '%if not %symexist(DC_MAXOBS_WEBEDIT) %then %do;'; + put '%put NOTE:;%put NOTE- DC_MAXOBS_WEBEDIT not found!;'; + put '%put NOTE- Please add to &mpelib..MPE_CONFIG table;'; + put '%put NOTE-;%put NOTE-;'; + put '%global DC_MAXOBS_WEBEDIT;'; + put '%let DC_MAXOBS_WEBEDIT=500;'; + put '%end;'; + put '/* for tables which use RKs/SKs then we just expose the business key to'; + put 'users - this lets uploads be sent to multiple environments (with'; + put 'potentially different RK/SK values for the same business key).'; + put 'Note that the config table has the RK column in the buskey field in'; + put 'this scenario. */'; + put '%if %length(&rk_underlying)>0 %then %let drop_rk=&buskey;'; + put '%else %let drop_rk=;'; + put '/* always remove the PROCESSED_DTTM column, if it exists */'; + put '%if %length(&var_processed)=0 %then %do;'; + put '%if %mf_existvar(&libds,PROCESSED_DTTM)>0 %then'; + put '%let var_processed=PROCESSED_DTTM;'; + put '%end;'; + put '/**'; + put '* Now get the slice of the actual table'; + put '*/'; + put 'options obs=10000;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put 'data out (drop=&var_txfrom &var_txto &var_processed &drop_rk );'; + put '_____DELETE__THIS__RECORD_____="No";'; + put 'set &libds;'; + put 'where %inc filtref;;'; + put 'run;'; + put 'proc sort data=out;'; + put 'by &pk &var_busfrom;'; + put 'run;'; + put 'data out;'; + put 'set out;'; + put 'by &pk &var_busfrom;'; + put 'if last.%scan(&pk,-1);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data out (drop=&var_txfrom &var_txto &var_processed &drop_rk);'; + put '_____DELETE__THIS__RECORD_____="No";'; + put 'set &libds;'; + put 'where %inc filtref;;'; + put 'run;'; + put '%end;'; + put 'options obs=max;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Issue with filtering (line 165) )'; + put ')'; + put 'options obs=&DC_MAXOBS_WEBEDIT;'; + put '%let sortpk=%sysfunc(coalescec(&sortpk &var_busfrom,_ALL_));'; + put 'proc sort data=work.out; by &sortPK; run;'; + put 'options obs=max;'; + put '%mpe_runhook(PRE_EDIT_HOOK)'; + put '%let obscnt=%mf_getattrn(work.out,NLOBS);'; + put '%mp_abort(iftrue=(&obscnt>&DC_MAXOBS_WEBEDIT)'; + put ',mac=&_program'; + put ',msg=Table is too big (&obscnt rows) - please filter and try again!'; + put ')'; + put '/* order delete var and pk fields at start of table */'; + put '%let sourcevars=%mf_wordsInStr1ButNotStr2('; + put 'Str1=%mf_getvarlist(work.out)'; + put ',Str2= _____DELETE__THIS__RECORD_____ &pk'; + put ');'; + put '%put sourcevars=&sourcevars;'; + put 'data outdata;'; + put '/* delete & pk fields come first */'; + put 'attrib _____DELETE__THIS__RECORD_____ &pk label='''';'; + put '/* keep remaining variable order */'; + put '%if %length(&sourcevars)>0 %then %do;'; + put 'attrib &sourcevars label='''';'; + put '%end;'; + put '_____DELETE__THIS__RECORD_____="No ";'; + put '%if %mf_nobs(work.out)=0 %then %do;'; + put '/* send empty row if empty table to help with hot rendering */'; + put 'output;'; + put '%end;'; + put 'set work.out ;'; + put 'run;'; + put '/* get list of variables and their formats */'; + put 'proc contents noprint data=outdata'; + put 'out=vars(keep=name type length varnum format: label);'; + put 'run;'; + put 'proc sort;'; + put 'by varnum;'; + put 'run;'; + put 'data vars3(keep=name type length format label pk varnum ctrloptions formatd);'; + put 'set vars(rename=(format=format2 type=type2));'; + put 'name=upcase(name);'; + put '/* not interested in transaction or processing dates'; + put '(append table must be supplied without them) */'; + put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED");'; + put 'if type2=2 or type2=6 then do;'; + put 'length format $49.;'; + put 'if format2='''' then format=cats(''$'',length,''.'');'; + put 'else format=cats(format2,formatl,''.'');'; + put 'type=''char'';'; + put 'end;'; + put 'else do;'; + put 'if format2='''' then format=cats(length,''.'');'; + put 'else if upcase(format2)=''DATETIME'' and formatl=0 then format=''DATETIME.'';'; + put 'else format=cats(format2,formatl,''.'',formatd);'; + put 'type=''num'';'; + put 'end;'; + put 'if name in ('''',%upcase(%mf_getQuotedStr(&pk,dlm=%str(,),quote=S)))'; + put 'then PK=''YES'';'; + put 'length ctrlOptions $500;'; + put 'if name="_____DELETE__THIS__RECORD_____" then ctrlOptions=''["No","Yes"]'';'; + put 'else ctrlOptions='''';'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc at 242 (vars3 step) in &_program \n'; + put '%superq(syserrortext)'; + put ')'; + put ')'; + put '%global jsdttmvars jsdtvars jstmvars;'; + put 'data _null_;'; + put 'set vars3 end=last;'; + put 'if _n_>1 then comma='','';'; + put 'length coltype $500.;'; + put 'format=upcase(format);'; + put 'coltype=cats(comma,''{"data":"'',name,''"'');'; + put 'if ctrlOptions ne '''' then'; + put 'colType=cats(coltype,'',"type":"dropdown","source":'',ctrlOptions,"}");'; + put 'else if type=''num'' then do;'; + put 'if format=:''DATETIME'' or format=:''E8601DT'' then do;'; + put 'colType=cats(coltype'; + put ','',"type":"date","dateFormat":"YYYY-MM-DD HH:mm:ss"'''; + put ','',"correctFormat":"true"}'');'; + put '/* build var list to reformat datetimes in javascript format */'; + put 'call symput(''jsdttmvars'',symget(''jsdttmvars'')!!'' ''!!name);'; + put 'end;'; + put 'else if format=:''DATE'' or format=:''DDMMYY'' or format=:''MMDDYY'''; + put 'or format=:''YYMMDD'' or format=:''E8601DA'' or format=:''B8601DA'''; + put 'or format=:''MONYY'''; + put 'then do;'; + put '/* see bottom of file for more date formats!! */'; + put '/* also when updating, update stagedata.sas and mp_getcols.sas'; + put 'and mpe_loader.sas */'; + put 'colType=cats(coltype,'',"type":"date","dateFormat":"YYYY-MM-DD"'''; + put '/*colType=cats(coltype,'',"type":"date","dateFormat":"MM/DD/YYYY"''*/'; + put ','',"correctFormat":"true"}'');'; + put '/* build var list to reformat as javascript dates */'; + put 'call symput(''jsdtvars'',symget(''jsdtvars'')!!'' ''!!name);'; + put 'end;'; + put 'else if format=:''TIME'' or format=:''HHMM'' then do;'; + put 'colType=cats(coltype,'',"type":"time","timeFormat":"HH:mm:ss"'''; + put ','',"correctFormat":"true"}'');'; + put '/* build var list to reformat as javascript times */'; + put 'call symput(''jstmvars'',symget(''jstmvars'')!!'' ''!!name);'; + put 'end;'; + put 'else do;'; + put '/* is standard numeric but need to ascertain precision */'; + put 'retain base ''000000000000000000'';'; + put 'if formatd>0 then numFormat=cats(''.'',substr(base,1,formatd));'; + put 'colType=cats(coltype,'',"type":"numeric","format":"0'',numFormat,''"}'');'; + put 'end;'; + put 'end;'; + put 'else colType=cats(coltype,''}'');'; + put 'length concatcoltype $32767;'; + put 'retain concatcoltype;'; + put 'concatcoltype=cats(concatcoltype,coltype);'; + put 'if last then call symputx(''colType'',strip(concatcoltype),''g'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc at 283 (null step) in &_program)'; + put ')'; + put 'PROC FORMAT;'; + put 'picture yymmddThhmmss (default=28) other=''%0Y-%0m-%0d %0H:%0M:%0s'''; + put '(datatype=datetime);'; + put 'picture JSyymmdd other=''%0Y-%0m-%0d'' (datatype=date);'; + put 'picture JShhmmss (default=16) other=''%0H:%0M:%0s'' (datatype=time);'; + put 'RUN;'; + put '/* before we send the data, need to rebuild all date & datetime vars as char*/'; + put '%let finalvars=%mf_getvarlist(work.outdata);'; + put 'data sasdata;'; + put '/* set formats & col order ahead of rename+import */'; + put 'informat &finalvars ;'; + put '/* read dataset and rename date / datetime vars as necessary */'; + put 'set outdata'; + put '%if %length(&jsdttmvars&jsdtvars&jstmvars)>0 %then %do;'; + put '(rename=('; + put '%local dtvarnum dtvar tmvar;'; + put '/* temp datetime vars end in _____ */'; + put '%do dtvarnum=1 %to %sysfunc(countw(&jsdttmvars,%str( )));'; + put '%let dtvar=%scan(&jsdttmvars ,&dtvarnum);'; + put '&dtvar=_____&dtvarnum._____'; + put '%end;'; + put '/* temp date vars do not end in _____ */'; + put '%do dtvarnum=1 %to %sysfunc(countw(&jsdtvars,%str( )));'; + put '%let dtvar=%scan( &jsdtvars,&dtvarnum);'; + put '&dtvar=_____&dtvarnum'; + put '%end;'; + put '/* temp time vars end in ___tm */'; + put '%do tmvarnum=1 %to %sysfunc(countw(&jstmvars,%str( )));'; + put '%let tmvar=%scan( &jstmvars,&tmvarnum);'; + put '&tmvar=_____&tmvarnum.___tm'; + put '%end;'; + put '))'; + put '%end;'; + put ';'; + put '%if %length(&jsdttmvars)>0 %then %do ;'; + put '%do dtvarnum=1 %to %sysfunc(countw(&jsdttmvars,%str( )));'; + put '%let dtvar=%scan(&jsdttmvars,&dtvarnum);'; + put '&dtvar=cats(put(_____&dtvarnum._____,yymmddThhmmss28.));'; + put 'if &dtvar="ERROR" then call missing(&dtvar);'; + put 'drop _____&dtvarnum._____;'; + put '%end;'; + put '%end;'; + put '%if %length(&jsdtvars)>0 %then %do;'; + put '%do dtvarnum=1 %to %sysfunc(countw(&jsdtvars,%str( )));'; + put '%let dtvar=%scan(&jsdtvars,&dtvarnum);'; + put '&dtvar=cats(put(_____&dtvarnum,JSyymmdd.));'; + put 'if &dtvar="ERROR" then call missing(&dtvar);'; + put 'drop _____&dtvarnum;'; + put '%end;'; + put '%end;'; + put '%if %length(&jstmvars)>0 %then %do;'; + put '%do tmvarnum=1 %to %sysfunc(countw(&jstmvars,%str( )));'; + put '%let tmvar=%scan(&jstmvars,&tmvarnum);'; + put '&tmvar=cats(put(_____&tmvarnum.___tm,JShhmmss14.));'; + put 'if &tmvar="ERROR" then call missing(&tmvar);'; + put 'drop _____&tmvarnum.___tm;'; + put '%end;'; + put '%end;'; + put 'output;'; + put 'run;'; + put '/* get the relevant approvers for the drop down */'; + put '%put getting approvers;'; + put '%local sas_groups sas_i sas_group;'; + put 'proc sql noprint;'; + put 'select distinct sas_Group into: sas_groups separated by "|"'; + put 'from &mpelib..mpe_security'; + put 'where libref="%scan(&orig_libds,1,.)"'; + put 'and dsn="%scan(&orig_libds,2,.)"'; + put 'and access_level=''APPROVE'''; + put 'and &dc_dttmtfmt. lt TX_TO;'; + put '%if %length(&sas_groups)=0 %then %do;'; + put '%dc_getgroupmembers(&dc_admin_group,outds=work.access1)'; + put '%end;'; + put '%else %do sas_i=1 %to %sysfunc(countw(&sas_groups,%str(|)));'; + put '%let sas_group=%scan(&sas_Groups,&sas_i,%str(|));'; + put '%dc_getgroupmembers(&sas_group,outds=work.temp&sas_i)'; + put 'proc append base=work.access1 data=work.temp&sas_i;run;'; + put '%end;'; + put '%mend mpestp_getdata;'; + put '%mpestp_getdata()'; + put '%mp_abort(mode=INCLUDE)'; + put '/* extract column level security rules */'; + put '%mpe_columnlevelsecurity(%scan(&libds,1,.),%scan(&libds,2,.),work.sasdata'; + put ',mode=EDIT'; + put ',clsds=&mpelib..mpe_column_level_security'; + put ',groupds=work.groups /* was created in mpe_filtermaster */'; + put ',outds=work.sasdata1'; + put ',outmeta=work.cls_rules'; + put ')'; + put '/* get labels */'; + put '%mpe_getlabels(COLUMNS,sasdata1,outds=spec)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc extracting spec info)'; + put ')'; + put '/* extract col info */'; + put '%mp_getcols(&libds, outds=cols1)'; + put '/* join with cls rules */'; + put 'proc sql;'; + put 'create table work.cols as'; + put 'select a.NAME'; + put ',a.VARNUM'; + put ',a.LABEL'; + put ',a.FMTNAME'; + put ',a.DDTYPE'; + put ',case b.cls_hide'; + put 'when 1 then ''HIDE'''; + put 'when 0 then ''EDIT'''; + put 'else ''READ'' end as CLS_RULE'; + put ',c.memlabel'; + put ',c.desc'; + put ',c.longdesc'; + put 'from work.cols1 a'; + put 'left join work.cls_rules b'; + put 'on a.NAME=b.CLS_VARIABLE_NM'; + put 'left join work.spec c'; + put 'on a.NAME=c.NAME;'; + put 'proc sql;'; + put 'create table approvers as select distinct membername as personname'; + put ',membername as email, membername as userid'; + put 'from work.access1;'; + put '/*'; + put 'create table access3 as select b.userid,b.email'; + put 'from access2 a'; + put ',support.users b'; + put 'where a.personname=b.userid'; + put 'and a.personname ne "%mf_getuser()"'; + put 'and %sysfunc(datetime()) lt b.tx_to_dttm'; + put 'order by 1;'; + put '*/'; + put 'data _null_;'; + put 'infile filtref end=eof;'; + put 'input;'; + put 'length filter_text $32767;'; + put 'retain filter_text;'; + put 'filter_text=catx('' '',filter_text,_infile_);'; + put 'if eof then do;'; + put 'if cats(filter_text)=''1=1'' then filter_text='''';'; + put 'call symputx(''filter_text'',filter_text);'; + put 'end;'; + put 'run;'; + put '%put params;'; + put 'data sasparams;'; + put 'length colHeaders $20000 filter_text $32767;'; + put 'colHeaders=cats(upcase("%mf_getvarlist(sasdata1,dlm=%str(,))"));'; + put 'pkCnt=countw("&pk");'; + put 'pk="&pk";'; + put 'dtvars=compbl("&jsdtvars");'; + put 'dttmvars=compbl("&jsdttmvars");'; + put 'tmvars=compbl("&jstmvars");'; + put 'length coltype $32000;'; + put 'coltype=symget(''coltype'');'; + put 'loadtype=symget(''loadtype'');'; + put 'if trim(symget(''rk_underlying'')) ne '''' then rk_flag=1;'; + put 'else rk_flag=0;'; + put 'filter_text=symget(''filter_text'');'; + put 'if %mf_nobs(work.cls_rules)=0 then cls_flag=0;'; + put 'else cls_flag=1;'; + put 'put (_all_)(=);'; + put 'run;'; + put '/* Extract validation DQ Rules */'; + put 'proc sort data=&mpelib..mpe_validations'; + put '(where=(&dc_dttmtfmt. le TX_TO'; + put 'and BASE_LIB="%scan(&orig_libds,1,.)" and BASE_DS="%scan(&orig_libds,2,.)"'; + put 'and rule_active=1))'; + put 'out=dqrules (keep=base_col rule_type rule_value);'; + put 'by base_col rule_type rule_value;'; + put 'run;'; + put '/* merge with NOTNULL constraints in the physical table */'; + put 'proc sql;'; + put 'create table _data_ as'; + put 'select * from dqrules'; + put 'union'; + put 'select upcase(name) as base_col'; + put ',''NOTNULL'' as rule_type'; + put ','''' as rule_value'; + put 'from dictionary.columns'; + put 'where upcase(libname)="%scan(&orig_libds,1,.)"'; + put 'and upcase(memname)="%scan(&orig_libds,2,.)"'; + put 'and upcase(name) in (select name from vars3)'; + put 'and notnull=''yes'''; + put 'order by 1,2,3;'; + put 'data dqrules;'; + put 'set &syslast;'; + put 'by base_col rule_type rule_value;'; + put 'if last.rule_type;'; + put 'if rule_type in (''HARDSELECT'',''SOFTSELECT'') and countw(rule_value)=3 then'; + put 'do;'; + put 'retain x 0; x+1;'; + put 'call symputx(cats(''source'',x),rule_value);'; + put '%let sourcecnt=0;'; + put 'call symputx(''sourcecnt'',x);'; + put 'call symputx(cats(''base_col'',x),base_col);'; + put 'end;'; + put 'run;'; + put 'proc sql;'; + put 'create table dqdata as'; + put 'select distinct base_column as base_col length=32'; + put ',upcase(base_column) as rule_value length=74 /* deprecated */'; + put ',selectbox_value as rule_data length=1000'; + put ',selectbox_order'; + put 'from &mpelib..mpe_selectbox'; + put 'where &dc_dttmtfmt. lt ver_to_dttm'; + put 'and select_lib="%scan(&orig_libds,1,.)"'; + put 'and select_ds="%scan(&orig_libds,2,.)";'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc during DQ rule validation)'; + put ')'; + put '/* extract selectbox data */'; + put '%macro dq_selects();'; + put '%local x source lib ds col;'; + put '%do x=1 %to &sourcecnt;'; + put '%let source=&&source&x;'; + put '%let lib=%scan(&source,1,.);'; + put '%let ds=%scan(&source,2,.);'; + put '%let col=%scan(&source,3,.);'; + put '%put &=source;'; + put '%put &=lib;'; + put '%dc_assignlib(READ,&lib)'; + put 'proc sql;'; + put 'create table dqdata&x as'; + put 'select distinct "&&base_col&x" as base_col length=32'; + put ',"&source" as rule_value length=74'; + put ',cats(&col) as rule_data length=1000'; + put ',0 as selectbox_order'; + put 'from &lib..&ds'; + put 'order by 1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc when selecting &&base_col&x from &orig_libds)'; + put ')'; + put 'proc append base=dqdata data=dqdata&x;run;'; + put 'proc sql; drop table dqdata&x;'; + put '%end;'; + put '%mend dq_selects;'; + put '%dq_selects()'; + put 'proc sort data=dqdata;'; + put 'by base_col selectbox_order;'; + put 'run;'; + put '%mp_getmaxvarlengths(work.sasdata1,outds=maxvarlengths)'; + put 'data maxvarlengths;'; + put 'set maxvarlengths;'; + put 'if name=''_____DELETE__THIS__RECORD_____'' then mAXLEN=3;'; + put 'run;'; + put 'data xl_rules;'; + put 'set &mpelib..mpe_excel_config;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(xl_libref)="%scan(&orig_libds,1,.)";'; + put 'where also upcase(xl_table)="%scan(&orig_libds,2,.)";'; + put 'where also xl_active=1;'; + put 'keep xl_column xl_rule;'; + put 'run;'; + put '/* send to the client */'; + put '%webout(OPEN)'; + put '%webout(OBJ,sasdata1,fmt=N,missing=STRING,showmeta=YES,dslabel=sasdata)'; + put '%webout(OBJ,sasparams)'; + put '%webout(OBJ,approvers)'; + put '%webout(OBJ,dqrules)'; + put '%webout(OBJ,dqdata)'; + put '%webout(OBJ,cols)'; + put '%webout(OBJ,maxvarlengths)'; + put '%webout(OBJ,xl_rules)'; + put '%webout(OBJ,query)'; + put '%webout(CLOSE)'; + put '/*'; + put '$N8601Bw'; + put '$N8601BAw'; + put '$N8601Ew'; + put '$N8601EAw'; + put '$N8601EHw'; + put '$N8601EXw'; + put '$N8601Hw'; + put '$N8601Xw'; + put 'B8601DAw'; + put 'B8601DNw'; + put 'B8601DTw'; + put 'B8601DZw'; + put 'B8601LZw'; + put 'B8601TMw'; + put 'B8601TZw'; + put 'DATEw'; + put 'DATEAMPMw'; + put 'DATETIMEw'; + put 'DAYw'; + put 'DDMMYYw'; + put 'DDMMYYxw'; + put 'DOWNAMEw'; + put 'DTDATEw'; + put 'DTMONYYw'; + put 'DTWKDATXw'; + put 'DTYEARw'; + put 'DTYYQCw'; + put 'E8601DAw'; + put 'E8601DNw'; + put 'E8601DTw'; + put 'E8601DZw'; + put 'E8601LZw'; + put 'E8601TMw'; + put 'E8601TZw'; + put 'HHMMw'; + put 'HOURw'; + put 'JULDAYw'; + put 'JULIANw'; + put 'MMDDYYw'; + put 'MMDDYYxw'; + put 'MMSSw'; + put 'MMYYw'; + put 'MMYYxw'; + put 'MONNAMEw'; + put 'MONTHw'; + put 'MONYYw'; + put 'PDJULGw'; + put 'PDJULIw'; + put 'QTRw'; + put 'QTRRw'; + put 'TIMEw'; + put 'TIMEAMPMw'; + put 'TODw'; + put 'WEEKDATEw'; + put 'WEEKDATXw'; + put 'WEEKDAYw'; + put 'WEEKUw'; + put 'WEEKVw'; + put 'WEEKWw'; + put 'WORDDATEw'; + put 'WORDDATXw'; + put 'YEARw'; + put 'YYMMw'; + put 'YYMMxw'; + put 'YYMMDDw'; + put 'YYMMDDxw'; + put 'YYMONw'; + put 'YYQw'; + put 'YYQxw'; + put 'YYQRw'; + put 'YYQRxw'; + put '$N8601BAw'; + put '$N8601Ew'; + put '$N8601EAw'; + put '$N8601EHw'; + put '$N8601EXw'; + put '$N8601Hw'; + put '$N8601Xw'; + put 'B8601DAw'; + put 'B8601DNw'; + put 'B8601DTw'; + put 'B8601DZw'; + put 'B8601LZw'; + put 'B8601TMw'; + put 'B8601TZw'; + put 'E8601DAw'; + put 'E8601DNw'; + put 'E8601DTw'; + put 'E8601DZw'; + put 'E8601LZw'; + put 'E8601TMw'; + put 'E8601TZw'; + put '*/'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getdynamiccolvals; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro dc_getservicecode(loc=,outref=);'; + put '%mm_getstpcode(tree=&loc'; + put ',outref=&outref'; + put ')'; + put '%mend dc_getservicecode;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_include(fileref'; + put ',prefix=_'; + put ',opts=SOURCE2'; + put ',errds=work.mp_abort_errds'; + put ')/*/STORE SOURCE*/;'; + put '/* prepare precode */'; + put '%local tempref;'; + put '%let tempref=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &tempref;'; + put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; + put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; + put 'name=scan(xpath,-1,''/\'');'; + put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; + put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; + put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; + put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; + put 'run;'; + put '/* prepare the errds */'; + put 'data &errds;'; + put 'length msg mac $1000;'; + put 'call missing(msg,mac);'; + put 'iftrue=''1=0'';'; + put 'run;'; + put '/* include the include */'; + put '%inc &tempref &fileref/&opts;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; + put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; + put ')'; + put 'filename &tempref clear;'; + put '%mend mp_include;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mp_validatecol(incol,rule,outcol);'; + put '/* tempcol is given a unique name with every invocation */'; + put '%local tempcol;'; + put '%let tempcol=%mf_getuniquename();'; + put '%if &rule=ISINT %then %do;'; + put '&outcol=0;'; + put 'if not missing(&incol) then do;'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; + put 'end;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=ISNUM %then %do;'; + put '/*'; + put 'credit SØREN LASSEN'; + put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; + put '*/'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if missing(&tempcol) then &outcol=0;'; + put 'else &outcol=1;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=LIBDS %then %do;'; + put '/* match libref.dataset */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for LIBDS";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%else %if &rule=FORMAT %then %do;'; + put '/* match valid format - regex could probably be improved */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for FORMAT";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%mend mp_validatecol;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getdynamiccolvals.sas'; + put '@brief Provide dynamic list of values according to a SAS program or service'; + put '@details Configuration is made in the MPE_VALIDATIONS table, the dropdown'; + put 'can be either a SOFTSELECT_HOOK or HARDSELECT_HOOK.'; + put 'Results are sent in ARRAY format for efficiency.'; + put '

Service Inputs

'; + put '
SASCONTROLTABLE
'; + put '|LIBDS:$41.|VARIABLE_NM:$32.|'; + put '|---|---|'; + put '|DC258467.MPE_SECURITY|SAS_GROUP|'; + put '
SOURCE_ROW
'; + put 'This contains the raw values from the source table.'; + put '

Service Outputs

'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li dc_getservicecode.sas'; + put '@li mf_nobs.sas'; + put '@li mp_abort.sas'; + put '@li mp_include.sas'; + put '@li mp_validatecol.sas'; + put '@li mf_getapploc.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/**'; + put '* Validate inputs'; + put '*/'; + put '%let err_msg=;'; + put 'data work.intest;'; + put 'set work.SASCONTROLTABLE;'; + put '/* validate libds */'; + put '%mp_validatecol(LIBDS,LIBDS,is_libds)'; + put '/* validate varname */'; + put 'is_name=nvalid(variable_nm,''v7'');'; + put 'putlog (_all_)(=);'; + put 'if is_libds ne 1 then do;'; + put 'msg=''ERR''!!''OR: Invalid libds:''!!libds;'; + put 'call symputx(''err_msg'',msg);'; + put 'stop;'; + put 'end;'; + put 'else if is_name ne 1 then do;'; + put 'msg=''ERR''!!''OR: Invalid name:''!!variable_nm;'; + put 'call symputx(''err_msg'',msg);'; + put 'stop;'; + put 'end;'; + put 'else do;'; + put 'call symputx(''variable_nm'',variable_nm);'; + put 'call symputx(''libds'',libds);'; + put 'end;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc after reading work.sascontroltable)'; + put ')'; + put '%mp_abort(iftrue= (%mf_nobs(work.intest)=0)'; + put ',mac=&_program'; + put ',msg=%str(&err_msg)'; + put ')'; + put '%dc_assignlib(READ,%scan(&libds,1,.))'; + put '/* ensure that work.dynamic_extended_values exists */'; + put 'data work.dynamic_extended_values;'; + put 'run;'; + put '/**'; + put '* Get the code to execute'; + put '*/'; + put 'data work.codetest;'; + put 'set &mpelib..MPE_VALIDATIONS;'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and base_lib="%scan(&libds,1,.)"'; + put 'and base_ds="%scan(&libds,2,.)"'; + put 'and base_col="&variable_nm"'; + put 'and RULE_TYPE in (''HARDSELECT_HOOK'',''SOFTSELECT_HOOK'')'; + put 'and RULE_ACTIVE=1;'; + put 'putlog (_all_)(=);'; + put 'if length(rule_value)>1 then do;'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; + put 'call symputx(''pgmtype'',''PGM'');'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'end;'; + put 'else do;'; + put 'apploc="%mf_getapploc()";'; + put 'if substr(rule_value,1,1) ne ''/'''; + put 'then rule_value=cats(apploc,''/'',rule_value);'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'call symputx(''pgmtype'',''JOB'');'; + put 'end;'; + put 'output;'; + put 'stop;'; + put 'end;'; + put 'else stop;'; + put 'run;'; + put '%mp_abort(iftrue= (%mf_nobs(work.codetest)=0)'; + put ',mac=&_program'; + put ',msg=%str(Hook not found in &mpelib..mpe_validations for &libds..&variable_nm)'; + put ')'; + put '%macro getdynamiccolvals();'; + put '%if &pgmtype=PGM %then %do;'; + put 'filename sascode "&pgmloc";'; + put '%end;'; + put '%else %do;'; + put '%dc_getservicecode(loc=&pgmloc'; + put ',outref=sascode'; + put ')'; + put '%end;'; + put '%mend getdynamiccolvals;'; + put '%getdynamiccolvals()'; + put '/* execute the dynamic code */'; + put '%mp_include(sascode)'; + put '%mp_abort(mode=INCLUDE)'; + put '/* ensure that the DISPLAY_INDEX variable exists */'; + put 'data work.dynamic_values;'; + put 'length DISPLAY_INDEX 8 DISPLAY_VALUE $32767;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'set work.dynamic_values;'; + put 'display_index=coalesce(display_index,_n_);'; + put 'keep DISPLAY_INDEX DISPLAY_VALUE RAW_VALUE;'; + put 'run;'; + put '/* ensure that work.dynamic_extended_values exists with correct types */'; + put 'data work.dynamic_extended_values;'; + put 'length DISPLAY_INDEX 8 EXTRA_COL_NAME $32 DISPLAY_VALUE $5000 DISPLAY_TYPE $1'; + put 'RAW_VALUE_NUM 8 RAW_VALUE_CHAR $5000 FORCED_VALUE 8;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'set work.dynamic_extended_values;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(ARR,dynamic_values,fmt=N)'; + put '%webout(ARR,dynamic_extended_values,fmt=N)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getlog; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; @@ -6554,6 +57429,10 @@ file sascode; put 'data &out_ds;'; put 'set &out_ds(where=(filepath ne ''''));'; put 'run;'; + put '/**'; + put '* The above transpose can mean that some updates create additional columns.'; + put '* This necessitates the occasional use of datastep over proc append.'; + put '*/'; put '%if %mf_existds(&outds) %then %do;'; put '%local basevars appvars newvars;'; put '%let basevars=%mf_getvarlist(&outds);'; @@ -6595,8 +57474,10 @@ file sascode; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; @@ -6620,6 +57501,1462 @@ file sascode; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getlog.sas'; + put '@brief Downloads the submission, useful if there is an error'; + put '@details'; + put '

SAS Macros

'; + put '@li mf_verifymacvars.sas'; + put '@li mf_getuser.sas'; + put '@li mp_abort.sas'; + put '@li mp_dirlist.sas'; + put '@li mp_binarycopy.sas'; + put '@li mp_streamfile.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(table)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: table)'; + put ')'; + put '/* security checks */'; + put '%let user=%mf_getuser();'; + put '%let check_access=0;'; + put 'proc sql noprint;'; + put 'select count(*) into: check_access from &mpelib..mpe_loads'; + put 'where csv_dir="&table" and user_nm="&user";'; + put '%mp_abort(iftrue= (&check_access=0 )'; + put ',msg=%str(&user not authorised to download audit data for &table)'; + put ',mac=mpestp_getlog.sas'; + put ')'; + put 'ods package(ProdOutput) open nopf;'; + put 'options notes source2 mprint;'; + put '%mp_dirlist(outds=dirs, path=&mpelocapprovals/&TABLE)'; + put 'data _null_;'; + put 'set dirs;'; + put 'if scan(filename,-1,''.'') not in (''sas7bdat'',''wpd'');'; + put 'retain str1'; + put '"ods package(ProdOutput) add file=''&mpelocapprovals/&TABLE/";'; + put 'retain str2 "'' mimetype=''text/plain'' path=''contents/'';";'; + put 'call execute(cats(str1,filename,str2));'; + put 'run;'; + put '%let archive_path=%sysfunc(pathname(work));'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put 'ods package(ProdOutput) publish archive properties'; + put '(archive_name= "&table..zip" archive_path="&archive_path");'; + put 'ods package(ProdOutput) close;'; + put '/* now serve zip file to client */'; + put '%mp_streamfile(contenttype=ZIP'; + put ',inloc=%str(&archive_path/&table..zip)'; + put ',outname=&table..zip'; + put ')'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getsubmits; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; @@ -6697,6 +59034,735 @@ file sascode; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getsubmits.sas'; + put '@brief Returns a list of staged data items that need to be approved'; + put '@details'; + put '

SAS Macros

'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@li mpeinit.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put 'proc sql noprint;'; + put 'create table work.fromsas (rename=(SUBMITTED_ON=SUBMITTED_ON_DTTM)) as'; + put 'select table_id'; + put ',cats(base_lib,''.'',base_ds) as base_table'; + put ',input_vars'; + put ',input_obs'; + put ',submitted_by_nm'; + put ',submitted_reason_txt'; + put ',''DEPRECATED'' as approve_group'; + put ',submit_status_cd as review_status_id'; + put ',reviewed_by_nm'; + put ',reviewed_on_dttm'; + put ',cats(put(SUBMITTED_ON_DTTM,yymmddhhmmss.)) as SUBMITTED_ON'; + put 'from &mpelib..mpe_submit'; + put 'where submitted_by_nm="%mf_getuser()" and submit_status_cd=''SUBMITTED'''; + put 'order by submitted_on_dttm desc;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,fromSAS)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=loadfile; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; @@ -6720,1671 +59786,161560 @@ file sascode; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; - put '%macro mp_webin();'; - put '/* prepare global variables */'; - put '%global _webin_file_count'; - put '_webin_filename _webin_filename1'; - put '_webin_fileref _webin_fileref1'; - put '_webin_fileuri _webin_fileuri1'; - put '_webin_name _webin_name1'; - put ';'; - put '/* create initial versions */'; - put '%let _webin_file_count=%eval(&_webin_file_count+0);'; - put '%let _webin_filename1=%sysfunc(coalescec(&_webin_filename1,&_webin_filename));'; - put '%let _webin_fileref1=%sysfunc(coalescec(&_webin_fileref1,&_webin_fileref));'; - put '%let _webin_fileuri1=%sysfunc(coalescec(&_webin_fileuri1,&_webin_fileuri));'; - put '%let _webin_name1=%sysfunc(coalescec(&_webin_name1,&_webin_name));'; - put '/* If Viya, create temporary fileref(s) */'; - put '%local i;'; - put '%if %mf_getplatform()=SASVIYA %then %do i=1 %to &_webin_file_count;'; - put '%let _webin_fileref&i=%mf_getuniquefileref();'; - put 'filename &&_webin_fileref&i filesrvc "&&_webin_fileuri&i";'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; put '%end;'; - put '%mend mp_webin;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mpe_alerts(alert_event='; + put ', alert_lib='; + put ', alert_ds='; + put ', dsid='; + put ');'; + put '/* exit if not configured */'; + put '%global DC_EMAIL_ALERTS;'; + put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; + put '%put DCNOTE: Email alerts are not configured;'; + put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; + put '%return;'; + put '%end;'; + put '%let alert_event=%upcase(&alert_event);'; + put '%let alert_lib=%upcase(&alert_lib);'; + put '%let alert_ds=%upcase(&alert_ds);'; + put '%let from_user=%mf_getuser();'; + put '/* get users TO which the email should be sent */'; + put 'proc sql noprint;'; + put 'create table users as select distinct a.alert_user,'; + put 'b.user_displayname,'; + put 'b.user_email'; + put 'from &mpelib..mpe_alerts'; + put '(where=(&dc_dttmtfmt. lt tx_to)) a'; + put 'left join &mpelib..mpe_emails'; + put '(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; + put 'where a.alert_event in ("&alert_event","*ALL*")'; + put 'and a.alert_lib in ("&alert_lib","*ALL*")'; + put 'and a.alert_ds in ("&alert_ds","*ALL*");'; + put '%local isThere;'; + put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; + put '%if &isThere>0 %then %do;'; + put 'insert into &syslast set alert_user="&from_user";'; + put '%end;'; + put '/* if no email / displayname is provided, then extract from metadata */'; + put 'data emails;'; + put 'set users;'; + put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; + put '/* get displayname */'; + put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; + put 'if metadata_getnobj(text,1,uri)<=0 then do;'; + put 'putlog "DCWARN: &from_user not found";'; + put 'return;'; + put 'end;'; + put 'else if user_displayname = '''' then do;'; + put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; + put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; + put 'end;'; + put 'end;'; + put 'if index(user_email,''@'') then return;'; + put '/* get email from metadata if not in input table */'; + put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; + put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; + put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; + put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; + put 'end;'; + put 'end;'; + put '/* only keep valid emails */'; + put 'if index(user_email,''@'') ;'; + put 'run;'; + put '%local emails;'; + put 'proc sql noprint;'; + put 'select user_email into: emails separated by ''" "'' from emails;'; + put '/* exit if nobody to email */'; + put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; + put '%put NOTE: No alerts configured (mpe_alerts.sas);'; + put '%return;'; + put '%end;'; + put '/* display email options */'; + put 'data _null_;'; + put 'set sashelp.voption(where=(group=''EMAIL''));'; + put 'put optname ''='' setting;'; + put 'run;'; + put 'filename __out email ("&emails")'; + put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; + put '%local SUBMITTED_TXT;'; + put '%if &alert_event=SUBMITTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_submit;'; + put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; + put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''SUBMITTED_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=APPROVED %then %do;'; + put '/* there is no approval message */'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=REJECTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_review;'; + put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; + put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''REVIEW_REASON_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put 'filename __out clear;'; + put '%mend mpe_alerts ;'; + put '%macro mpe_loadfail('; + put 'status=FAILED - &syscc'; + put ',now=%sysfunc(datetime())'; + put ',approvals='; + put ',mperef='; + put ',reason_txt='; + put ',mac=mpe_loadfail.sas'; + put ',dc_dttmtfmt=E8601DT26.6'; + put ');'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'update &mpelib..mpe_loads'; + put 'set STATUS=symget(''status'')'; + put ', duration=&dur'; + put ', processed_dttm=&dc_dttmtfmt.'; + put ', approvals = symget(''approvals'')'; + put ', reason_txt= symget(''reason_txt'')'; + put 'where CSV_DIR="&mperef";'; + put '%let syscc=666;'; + put '%mp_abort(msg=%superq(status)\n%superq(reason_txt),mac=&mac)'; + put '%mend mpe_loadfail;'; + put '%macro dc_getservicecode(loc=,outref=);'; + put '%mm_getstpcode(tree=&loc'; + put ',outref=&outref'; + put ')'; + put '%mend dc_getservicecode;'; + put '%macro mp_include(fileref'; + put ',prefix=_'; + put ',opts=SOURCE2'; + put ',errds=work.mp_abort_errds'; + put ')/*/STORE SOURCE*/;'; + put '/* prepare precode */'; + put '%local tempref;'; + put '%let tempref=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &tempref;'; + put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; + put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; + put 'name=scan(xpath,-1,''/\'');'; + put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; + put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; + put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; + put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; + put 'run;'; + put '/* prepare the errds */'; + put 'data &errds;'; + put 'length msg mac $1000;'; + put 'call missing(msg,mac);'; + put 'iftrue=''1=0'';'; + put 'run;'; + put '/* include the include */'; + put '%inc &tempref &fileref/&opts;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; + put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; + put ')'; + put 'filename &tempref clear;'; + put '%mend mp_include;'; + put '%macro mpe_runhook(hookvar);'; + put '%local pgmloc pgmtype;'; + put '%let pgmtype=0;'; + put '%put &sysmacroname: &=hookvar;'; + put '%if %length(&&&hookvar)>0 %then %do;'; + put '%put &sysmacroname: Executing &&&hookvar;'; + put 'data _null_;'; + put 'rule_value=symget("&hookvar");'; + put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; + put 'call symputx(''pgmtype'',''PGM'');'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'end;'; + put 'else do;'; + put 'apploc="%mf_getapploc()";'; + put 'if substr(rule_value,1,1) ne ''/'''; + put 'then rule_value=cats(apploc,''/'',rule_value);'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'call symputx(''pgmtype'',''JOB'');'; + put 'end;'; + put 'run;'; + put '%if &pgmtype=PGM %then %do;'; + put 'filename sascode "&pgmloc";'; + put '%end;'; + put '%else %do;'; + put '%dc_getservicecode(loc=&pgmloc'; + put ',outref=sascode'; + put ')'; + put '%end;'; + put '/* the below script will need to modify work.STAGING_DS */'; + put '%local x; %let x=; /* legacy feature */'; + put '%mp_include(sascode)'; + put '%end;'; + put '%mend mpe_runhook;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_mkdir(dir'; + put ')/*/STORE SOURCE*/;'; + put '%local lastchar child parent;'; + put '%let lastchar = %substr(&dir, %length(&dir));'; + put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; + put '/* Cannot create drive mappings */'; + put '%return;'; + put '%end;'; + put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; + put '/* last char is a slash */'; + put '%if (%length(&dir) eq 1) %then %do;'; + put '/* one single slash - root location is assumed to exist */'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '/* strip last slash */'; + put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; + put '%end;'; + put '%end;'; + put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; + put '/* directory does not exist so prepare to create */'; + put '/* first get the childmost directory */'; + put '%let child = %scan(&dir, -1, %str(/\:));'; + put '/*'; + put 'If child name = path name then there are no parents to create. Else'; + put 'they must be recursively scanned.'; + put '*/'; + put '%if (%length(&dir) gt %length(&child)) %then %do;'; + put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; + put '%mf_mkdir(&parent)'; + put '%end;'; + put '/*'; + put 'Now create the directory. Complain loudly of any errs.'; + put '*/'; + put '%let dname = %sysfunc(dcreate(&child, &parent));'; + put '%if (%bquote(&dname) eq ) %then %do;'; + put '%put %str(ERR)OR: could not create &parent + &child;'; + put '%abort cancel;'; + put '%end;'; + put '%else %do;'; + put '%put Directory created: &dir;'; + put '%end;'; + put '%end;'; + put '/* exit quietly if directory did exist.*/'; + put '%mend mf_mkdir;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; + put ', fref=0'; + put ', outds=work.mp_dirlist'; + put ', getattrs=NO'; + put ', maxdepth=0'; + put ', level=0 /* The level of recursion to perform. For internal use only. */'; + put ')/*/STORE SOURCE*/;'; + put '%let getattrs=%upcase(&getattrs)XX;'; + put '/* temp table */'; + put '%local out_ds;'; + put 'data;run;'; + put '%let out_ds=%str(&syslast);'; + put '/* drop main (top) table if it exists */'; + put '%if &level=0 %then %do;'; + put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; + put '%end;'; + put 'data &out_ds(compress=no'; + put 'keep=file_or_folder filepath filename ext msg directory level'; + put ');'; + put 'length directory filepath $500 fref fref2 $8 file_or_folder $6 filename $80'; + put 'ext $20 msg $200 foption $16;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'retain level &level;'; + put '%if &fref=0 %then %do;'; + put 'rc = filename(fref, "&path");'; + put '%end;'; + put '%else %do;'; + put 'fref="&fref";'; + put 'rc=0;'; + put '%end;'; + put 'if rc = 0 then do;'; + put 'did = dopen(fref);'; + put 'if did=0 then do;'; + put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; + put 'msg=sysmsg();'; + put 'put msg;'; + put 'put _all_;'; + put 'stop;'; + put 'end;'; + put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; + put 'numopts=doptnum(did);'; + put 'do i=1 to numopts;'; + put 'foption=doptname(did,i);'; + put 'if foption=:''Directory'' then i=numopts;'; + put 'end;'; + put 'directory=dinfo(did,foption);'; + put 'rc = filename(fref);'; + put 'end;'; + put 'else do;'; + put 'msg=sysmsg();'; + put 'put _all_;'; + put 'stop;'; + put 'end;'; + put 'dnum = dnum(did);'; + put 'do i = 1 to dnum;'; + put 'filename = dread(did, i);'; + put 'filepath=cats(directory,''/'',filename);'; + put 'rc = filename(fref2,filepath);'; + put 'midd=dopen(fref2);'; + put 'dmsg=sysmsg();'; + put 'if did > 0 then file_or_folder=''folder'';'; + put 'rc=dclose(midd);'; + put 'midf=fopen(fref2);'; + put 'fmsg=sysmsg();'; + put 'if midf > 0 then file_or_folder=''file'';'; + put 'rc=fclose(midf);'; + put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; + put 'then file_or_folder=''file'';'; + put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; + put 'else if file_or_folder='''' then file_or_folder=''locked'';'; + put 'if file_or_folder=''file'' then do;'; + put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; + put 'if filename = ext then ext = '' '';'; + put 'end;'; + put 'else do;'; + put 'ext='''';'; + put 'file_or_folder=''folder'';'; + put 'end;'; + put 'output;'; + put 'end;'; + put 'rc = dclose(did);'; + put 'stop;'; + put 'run;'; + put '%if %substr(&getattrs,1,1)=Y %then %do;'; + put 'data &out_ds;'; + put 'set &out_ds;'; + put 'length infoname infoval $60 fref $8;'; + put 'if _n_=1 then call missing(fref);'; + put 'rc=filename(fref,filepath);'; + put 'drop rc infoname fid i close fref;'; + put 'if file_or_folder=''file'' then do;'; + put 'fid=fopen(fref);'; + put 'if fid le 0 then do;'; + put 'msg=sysmsg();'; + put 'putlog "Could not open file:" filepath fid= ;'; + put 'sasname=''_MCNOTVALID_'';'; + put 'output;'; + put 'end;'; + put 'else do i=1 to foptnum(fid);'; + put 'infoname=foptname(fid,i);'; + put 'infoval=finfo(fid,infoname);'; + put 'sasname=compress(infoname, ''_'', ''adik'');'; + put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; + put 'if upcase(sasname) ne ''FILENAME'' then output;'; + put 'end;'; + put 'close=fclose(fid);'; + put 'end;'; + put 'else do;'; + put 'fid=dopen(fref);'; + put 'if fid le 0 then do;'; + put 'msg=sysmsg();'; + put 'putlog "Could not open folder:" filepath fid= ;'; + put 'sasname=''_MCNOTVALID_'';'; + put 'output;'; + put 'end;'; + put 'else do i=1 to doptnum(fid);'; + put 'infoname=doptname(fid,i);'; + put 'infoval=dinfo(fid,infoname);'; + put 'sasname=compress(infoname, ''_'', ''adik'');'; + put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; + put 'if upcase(sasname) ne ''FILENAME'' then output;'; + put 'end;'; + put 'close=dclose(fid);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by filepath sasname;'; + put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; + put 'id sasname;'; + put 'var infoval;'; + put 'by filepath file_or_folder filename ext ;'; + put 'run;'; + put '%end;'; + put 'data &out_ds;'; + put 'set &out_ds(where=(filepath ne ''''));'; + put 'run;'; + put '/**'; + put '* The above transpose can mean that some updates create additional columns.'; + put '* This necessitates the occasional use of datastep over proc append.'; + put '*/'; + put '%if %mf_existds(&outds) %then %do;'; + put '%local basevars appvars newvars;'; + put '%let basevars=%mf_getvarlist(&outds);'; + put '%let appvars=%mf_getvarlist(&out_ds);'; + put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; + put '%if &newvars>0 %then %do;'; + put 'data &outds;'; + put 'set &outds &out_ds;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&outds data=&out_ds force nowarn;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&outds data=&out_ds;'; + put 'run;'; + put '%end;'; + put '/* recursive call */'; + put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; + put 'data _null_;'; + put 'set &out_ds;'; + put 'where file_or_folder=''folder'';'; + put 'length code $10000;'; + put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; + put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; + put 'put code=;'; + put 'call execute(code);'; + put 'run;'; + put '%end;'; + put '/* tidy up */'; + put 'proc sql;'; + put 'drop table &out_ds;'; + put '%mend mp_dirlist;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro mpe_loader('; + put 'mperef= /* name of subfolder containing the staged data */'; + put ',mDebug=0 /* set to 1 for development or debugging */'; + put ',submitted_reason_txt= /* populates column of same name in sumo_approvals*/'; + put ',approver= /* allows a userid to be provided for direct approval email */'; + put ',url= /* optional - url for debugging */'; + put ',dlm=%str(,)'; + put ',termstr=crlf'; + put ',dc_dttmtfmt=E8601DT26.6'; + put ');'; + put '%put entered mpe_loader from &=_program;'; + put '%put &=url;'; + put '%put &=termstr;'; + put '%put &=dlm;'; + put '/* determine full path to CSV directory */'; + put '%local now;'; + put '%let now=&dc_dttmtfmt;'; + put '%put &=now;'; + put '/**'; + put '* get full path to package (only subdirectory passed through)'; + put '*/'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(mperef mpelocapprovals)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing: mperef mpelocapprovals)'; + put ')'; + put '%let csv_dir=%trim(&mpelocapprovals/&mperef);'; + put '/* exit if package has already been uploaded */'; + put '%local check;'; + put 'proc sql noprint;'; + put 'select count(*) into: check'; + put 'from &mpelib..mpe_loads'; + put 'where csv_dir="&mperef";'; + put '%if &check %then %do;'; + put '%mp_abort(msg=Folder &mperef already has an entry in &mpelib..mpe_loads'; + put ',mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '/* get CSV directory contents */'; + put '%mp_dirlist(path=&csv_dir,outds=WORK.getfiles)'; + put 'data WORK.csvs;'; + put 'set WORK.getfiles;'; + put 'if upcase(scan(filename,3,''.''))=''CSV'' then do;'; + put 'lib=upcase(scan(filename,1,''.''));'; + put 'ds=upcase(scan(filename,2,''.''));'; + put 'output;'; + put 'end;'; + put 'run;'; + put '/* get table attributes */'; + put 'proc sql noprint;'; + put 'create table WORK.sumo_tables as'; + put 'select a.filename, b.*'; + put 'from WORK.csvs a'; + put 'left join &mpelib..mpe_tables b'; + put 'on a.lib=b.libref'; + put 'and a.ds=b.dsn'; + put 'where b.tx_from le &now'; + put 'and &now lt b.tx_to;'; + put '/* define user as meta user if available */'; + put '%local user;'; + put '%let user=%mf_getuser();'; + put '/* check if there is actually a table to load */'; + put '%if %mf_getattrn(WORK.sumo_tables,NLOBS)=0 %then %do;'; + put '%let msg=Table not registered in &mpelib..mpe_tables;'; + put '%mpe_loadfail('; + put 'status=&msg'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_loads'; + put 'set USER_NM="&user"'; + put ',STATUS=''IN PROGRESS'''; + put ',CSV_dir="&mperef"'; + put ',PROCESSED_DTTM=&now;'; + put '/* import CSV */'; + put '%let droplist=;'; + put '%let attrib=;'; + put '%let droplist=;'; + put '%let libref=;'; + put '%let DS=;'; + put '/* get table info */'; + put 'data _null_;'; + put 'set sumo_tables;'; + put 'libds=upcase(cats(libref,''.'',dsn));'; + put 'call symputx(''orig_libds'',libds);'; + put 'is_fmt=0;'; + put 'if substr(cats(reverse(dsn)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'libds=''work.fmtextract'';'; + put 'is_fmt=1;'; + put 'end;'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'call symputx(''libds'',libds);'; + put 'call symputx(''FNAME'',filename);'; + put 'call symputx(''LIBREF'',libref);'; + put 'call symputx(''DS'',dsn);'; + put 'call symputx(''LOADTYPE'',loadtype);'; + put 'call symputx(''BUSKEY'',buskey);'; + put 'call symputx(''VAR_TXFROM'',var_txfrom);'; + put 'call symputx(''VAR_TXTO'',var_txto);'; + put 'call symputx(''VAR_BUSFROM'',var_busfrom);'; + put 'call symputx(''VAR_BUSTO'',var_busto);'; + put 'call symputx(''VAR_PROCESSED'',var_processed);'; + put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING);'; + put 'call symputx(''POST_EDIT_HOOK'',POST_EDIT_HOOK);'; + put 'call symputx(''NOTES'',NOTES);'; + put 'call symputx(''PK'',coalescec(RK_UNDERLYING,buskey));'; + put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED,''l'');'; + put 'put (_all_)(=);'; + put 'stop;'; + put 'run;'; + put '%if %length(&ds)=0 %then %do;'; + put '%let msg=%str(ERR)OR: Unable to extract record from &mpelib..mpe_tables;'; + put '%mpe_loadfail('; + put 'status=FAILED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '/* export format catalog */'; + put '%mp_cntlout('; + put 'iftrue=(&is_fmt=1)'; + put ',libcat=&orig_libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '/* user must have EDIT access to load a table */'; + put '%mpe_accesscheck(&orig_libds'; + put ',outds=work.sumo_access'; + put ',user=&user'; + put ',access_level=EDIT )'; + put '%put exiting accesscheck;'; + put '%if %mf_getattrn(work.sumo_access,NLOBS)=0 %then %do;'; + put '%let msg=%str(ERR)OR: User is not authorised to edit &orig_libds!;'; + put '%mpe_loadfail('; + put 'status=UNAUTHORISED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '%put now importing: "&csv_dir/&fname" termstr=&termstr;'; + put '/* get the variables from the CSV */'; + put 'data vars_csv1(index=(idxname=(varnum name)) drop=infile);'; + put 'infile "&csv_dir/&fname" lrecl=32767 dsd termstr=&termstr encoding=''utf-8'';'; + put 'input;'; + put 'length infile $32767;'; + put 'infile=compress(_infile_,''"'',);'; + put 'infile=compress(infile,"''",);'; + put 'format name $32.;'; + put 'putlog ''received vars: '' infile;'; + put 'call symputx(''received_vars'',infile,''l'');'; + put 'do varnum=1 to countw(infile,"&dlm");'; + put '/* keep writeable chars */'; + put 'name=compress(upcase(scan(infile,varnum)),,''kw'');'; + put 'if name ne "_____DELETE__THIS__RECORD_____" then output;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '%put received_vars = &received_vars;'; + put '%dc_assignlib(WRITE,&libref)'; + put '/* get list of variables and their formats */'; + put 'proc contents noprint data=&libds'; + put 'out=vars(keep=name type length varnum format:);'; + put 'run;'; + put 'data vars(keep=name type length varnum format);'; + put 'set vars(rename=(format=format2 type=type2));'; + put 'name=upcase(name);'; + put 'format2=upcase(format2);'; + put '/* not interested in transaction or processing dates'; + put '(append table must be supplied without them) */'; + put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED"'; + put ',"_____DELETE__THIS__RECORD_____");'; + put 'if type2 in (2,6) then do;'; + put 'length format $49.;'; + put 'if format2='''' then format=cats(''$'',length,''.'');'; + put 'else format=cats(format2,max(formatl,length),''.'');'; + put 'type=''char'';'; + put 'end;'; + put 'else do;'; + put 'if format2='''' then format=cats(length,''.'');'; + put 'else if format2=:''DATETIME'' then do;'; + put 'format=''DATETIME19.'';'; + put 'end;'; + put 'else if format2=:''DATE'' or format2=:''DDMMYY'''; + put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'''; + put 'or format2=:''E8601DA'' or format2=:''B8601DA'''; + put 'then do;'; + put 'format=''DATE9.'';'; + put 'end;'; + put 'else if format2=''BEST'' & formatl=0 then format=cats(''BEST'',length,''.'');'; + put '/*'; + put 'else if format2=:''DATETIME'' or format2=:''DATE'' or format2=:''DDMMYY'''; + put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'' then do;'; + put '*date or datetime format so use original ;'; + put 'dsid=open("&libref..&ds");'; + put 'vnum=varnum(dsid,name);'; + put 'format=varfmt(dsid,vnum);'; + put 'dsid=close(dsid);'; + put 'end;'; + put '*/'; + put 'else do;'; + put 'if formatl=0 then formatl=length;'; + put 'format=cats(format2,formatl,''.'',formatd);'; + put 'end;'; + put 'type=''num'';'; + put 'end;'; + put 'put (_all_)(=);'; + put 'run;'; + put '/* build attrib statement */'; + put 'data vars_attrib;'; + put 'length attrib_statement $32767 type2 $20;'; + put 'set vars end=lastobs;'; + put 'retain attrib_statement;'; + put 'if type=''char'' then type2=''$'';'; + put 'str1=catx('' '',name,''length='',cats(type2,length));'; + put 'attrib_statement=trim(attrib_statement)!!'' ''!!trim(str1);'; + put 'if lastobs then call symputx(''ATTRIB'',attrib_statement,''L'');'; + put 'run;'; + put '/* build input statement - first get vars in right order'; + put 'and join with target formats*/'; + put 'proc sql noprint;'; + put 'create table vars_csv2 as'; + put 'select b.*'; + put 'from vars_csv1 a'; + put 'left join vars_attrib b'; + put 'on a.name=b.name'; + put 'order by a.varnum;'; + put '/* make sure that the variables we are importing, actually'; + put 'exist on the target table */'; + put '/** edit - extra variables are now simply ignored'; + put '%local very_bad_vars;'; + put 'select name into: very_bad_vars separated by '' '''; + put 'from vars_csv1'; + put 'where name not in (select name from vars)'; + put 'and name ne "_____DELETE__THIS__RECORD_____";'; + put '%if %length(&very_bad_vars) > 0 %then %do;'; + put '%let msg=%str(WARNING: The following vars are not defined in %trim('; + put ')&libref..&ds, yet they exist in &csv_dir/&ds..csv: &very_bad_vars);'; + put '%mpe_loadfail('; + put 'status=FAILED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '**/'; + put '/* now build input statement */'; + put 'data final_check;'; + put 'set vars_csv2 end=lastobs;'; + put 'length input_statement $32767 type2 $20 droplist $32767;'; + put 'retain input_statement droplist;'; + put '/* Build input statement - CATCH EXCEPTIONS HERE!*/'; + put 'if name in (''QUOTE_DTTM'') then do;'; + put 'name=cats(name,''2'');'; + put 'droplist=catx('' '',trim(droplist),name);'; + put 'type2=''$20.'';/* converted below */'; + put 'end;'; + put 'else if type=''char'' then type2=cats(''$CHAR'', length,''.'');'; + put 'else if format=''DATE9.'' then type2=''ANYDTDTE.'';'; + put 'else if format=''DATETIME19.'' then type2=''ANYDTDTM.'';'; + put 'else if format=:''TIME'' then type2=''ANYDTTME.'';'; + put 'else if name='''' then do;/* additional vars in input data */'; + put 'name=''_____DELETE__THIS__VARIABLE_____'';'; + put 'droplist=catx('' '',trim(droplist),''_____DELETE__THIS__VARIABLE_____'');'; + put 'type2=''$1.'';'; + put 'end;'; + put 'else type2=''best32.'';'; + put '* else type2=cats(length,''.'');'; + put 'input_statement=catx('' '',input_statement,name,'':'',type2);'; + put 'if lastobs then do;'; + put 'call symputx(''INPUT'', input_statement,''L'');'; + put 'if trim(droplist) ne '''' then'; + put 'call symputx(''droplist'',"drop "!!droplist!!'';'',''l'');'; + put 'end;'; + put 'run;'; + put '%let mpeloadstop=0;'; + put 'data work.STAGING_DS;'; + put '&droplist;'; + put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767'; + put 'firstobs=2 missover termstr=&termstr encoding=''utf-8'';'; + put 'attrib &attrib ;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'; + put 'input'; + put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____ %then %do;'; + put '_____DELETE__THIS__RECORD_____: $3.'; + put '%end;'; + put '&input;'; + put '%if %index(%quote(&attrib.),UNLIKELY_VAR ) %then %do;'; + put '/*UNLIKELY_VAR=input(UNLIKELY_VAR2,ANYDTDTM21.);*/'; + put '/* SPECIAL LOGIC FOR SPECIAL VARS */'; + put '%end;'; + put 'if _error_ ne 0 then do;'; + put 'putlog _infile_;'; + put 'call symputx(''mpeloadstop'',_n_);'; + put 'stop;'; + put 'end;'; + put '/* remove all blank rows */'; + put 'if compress(cats(of _all_),''.'')='' '' then delete;'; + put 'run;'; + put '%if &mpeloadstop>0 %then %do;'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put '%put redirecting log output to capture return message;'; + put '%put currentloc=&logloc;'; + put 'filename tmp temp;'; + put 'proc printto log=tmp;run;'; + put 'data _null_;'; + put '&droplist;'; + put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767 firstobs=2'; + put 'missover termstr=&termstr;'; + put 'attrib &attrib ;'; + put 'input'; + put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____'; + put '%then %do;'; + put '_____DELETE__THIS__RECORD_____: $3.'; + put '%end;'; + put '&input;'; + put 'if _error_ then stop;'; + put 'run;'; + put '/* get log back */'; + put 'proc printto log=&logloc;run;'; + put 'data _null_; infile tmp; input; putlog _infile_;run;'; + put '/* scan log for invalid data warning */'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'length msg1 msg2 msg3 msg4 msg5 msg url $32767;'; + put 'if index(_infile_,''NOTE: Invalid data for'') then do;'; + put 'msg1=_infile_;'; + put 'input;'; + put 'msg2=_infile_;'; + put 'input;'; + put 'msg3=_infile_;'; + put 'input;'; + put 'msg4=_infile_;'; + put 'input;'; + put 'msg5=_infile_;'; + put 'url=symget(''url'');'; + put 'msg=catx(''\n'',msg1,msg2,msg3,msg4,msg5,''\n'',url);'; + put 'call symputx(''msg'',msg);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%mpe_loadfail('; + put 'status=FAILED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%superq(msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '/* check that the table is unique on PK */'; + put 'proc sort data=work.STAGING_DS dupout=work.MPE_DUPS (keep=&pk) nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.MPE_DUPS,NLOBS)>0 %then %do;'; + put '%local duplist;'; + put 'data _null_;'; + put 'set work.mpe_dups;'; + put '%do i=1 %to %sysfunc(countw(&pk));'; + put '%let iWord=%scan(&pk,&i);'; + put 'call symputx(''duplist'',symget(''duplist'')!!'; + put '" &iWord="!!trim(&iWord));'; + put '%end;'; + put 'run;'; + put '%let msg=This upload contains duplicates on the Primary Key columns %trim('; + put ')(&pk) \n Please remove the duplicates and try again. %trim('; + put ')\n &duplist \n ;'; + put '%mp_abort(msg=%superq(msg),mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '%if &syscc gt 4 %then %do;'; + put '%let msg=SYSCC=&syscc prior to post edit hook (%superq(syserrortext));'; + put '%mpe_loadfail('; + put 'status=FAILED - &syscc'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%superq(msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '%mpe_runhook(POST_EDIT_HOOK)'; + put '/* stop if err */'; + put '%if &syscc gt 4 %then %do;'; + put '%let msg=ERR in post edit hook (&post_edit_hook);'; + put '%mpe_loadfail('; + put 'status=FAILED - &syscc'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '/**'; + put '* send to approve process'; + put '*/'; + put '/* create a dataset key (datetime plus 3 digit random number plus PID) */'; + put '/* send dataset to approvals subfolder with same name as subfolder */'; + put 'libname approval "&mpelocapprovals/&mperef";'; + put 'data approval.&mperef;'; + put 'set work.staging_ds;'; + put 'run;'; + put 'proc export data=approval.&mperef'; + put 'outfile="&mpelocapprovals/&mperef/&mperef..csv"'; + put 'dbms=csv'; + put 'replace;'; + put 'run;'; + put '/* update the control dataset with relevant info */'; + put 'data append_app;'; + put 'if 0 then set &mpelib..mpe_submit;/* get formats */'; + put 'call missing (of _all_);'; + put 'TABLE_ID="&mperef";'; + put 'submit_status_cd=''SUBMITTED'';'; + put 'submitted_by_nm="%mf_getuser()";'; + put 'base_lib="&libref";'; + put 'base_ds="&ds";'; + put 'submitted_on_dttm=&now;'; + put 'submitted_reason_txt=symget(''submitted_reason_txt'');'; + put 'input_vars=%mf_getattrn(approval.&mperef,NVARS);'; + put 'input_obs=%mf_getattrn(approval.&mperef,NLOBS);'; + put 'num_of_approvals_required=&NUM_OF_APPROVALS_REQUIRED;'; + put 'num_of_approvals_remaining=&NUM_OF_APPROVALS_REQUIRED;'; + put 'reviewed_by_nm='''';'; + put 'reviewed_on_dttm=.;'; + put 'run;'; + put '%mp_lockanytable(LOCK,lib=&mpelib,ds=mpe_submit,'; + put 'ref=%str(&mperef update in &_program),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc append base= &mpelib..mpe_submit data=append_app;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_submit,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '/* send email to REVIEW members */'; + put '%put sending mpe_alerts;'; + put '%mpe_alerts(alert_event=SUBMITTED'; + put ', alert_lib=&libref'; + put ', alert_ds=&ds'; + put ', dsid=&mperef'; + put ')'; + put '/* DISABLE EMAIL FOR NOW'; + put '%let b2=REASON: %quote(&submitted_reason_txt);'; + put '%local URLNOTES;'; + put '%if %length(¬es)>0 %then %let URLNOTES=%quote(%sysfunc(urlencode(¬es)));'; + put '%let b3=%str(Click to review / approve: )%trim('; + put ')%str(http://&_srvname:&_srvport&_url?_PROGRAM=/Web/approvals&)%trim('; + put ')TABLEID=&dsid%str(&)BASETABLE=&libref..&ds%str(&)NOTES=&URLNOTES;'; + put '%let b4=%str(Reference ID: &mperef);'; + put '*/'; + put '%put mpe_loader finishing up with syscc=&syscc;'; + put '%if &syscc le 4 %then %do;'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'putlog ''Updating mpe_loads with the following query:'';'; + put 'putlog "update &mpelib..mpe_loads set STATUS=''SUCCESS''";'; + put 'putlog " , duration=" dur;'; + put 'putlog " , processed_dttm=" now;'; + put 'putlog " , approvals = ''&libref..&ds''";'; + put 'putlog " where CSV_DIR=''&mperef'';";'; + put 'run;'; + put 'proc sql;'; + put 'update &mpelib..mpe_loads set STATUS=''SUCCESS'''; + put ', duration=&dur'; + put ', processed_dttm=&now'; + put ', approvals = "&libref..&ds"'; + put 'where CSV_DIR="&mperef";'; + put '%end;'; + put '%else %do;'; + put '%mpe_loadfail('; + put 'status="FAILED - &syscc"'; + put ',now=&now'; + put ',approvals=&libref..&ds'; + put ',mperef=&mperef'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '%mend mpe_loader;'; + put '%macro mp_cleancsv(in=NOTPROVIDED,out=NOTPROVIDED,qchar=''22''x);'; + put '%if "&in"="NOTPROVIDED" or "&out"="NOTPROVIDED" %then %do;'; + put '%put %str(ERR)OR: Please provide valid input (&in) & output (&out) locations;'; + put '%return;'; + put '%end;'; + put '/* presence of a period(.) indicates a physical location */'; + put '%if %index(&in,.) %then %let in="&in";'; + put '%if %index(&out,.) %then %let out="&out";'; + put '/**'; + put '* convert all cr and crlf within quotes to lf'; + put '* convert all other cr or lf to crlf'; + put '*/'; + put 'data _null_;'; + put 'infile &in recfm=n ;'; + put 'file &out recfm=n;'; + put 'retain isq iscrlf 0 qchar &qchar;'; + put 'input inchar $char1. ;'; + put 'if inchar=qchar then isq = mod(isq+1,2);'; + put 'if isq then do;'; + put '/* inside a quote change cr and crlf to lf */'; + put 'if inchar=''0D''x then do;'; + put 'put ''0A''x;'; + put 'input inchar $char1.;'; + put 'if inchar ne ''0A''x then do;'; + put 'put inchar $char1.;'; + put 'if inchar=qchar then isq = mod(isq+1,2);'; + put 'end;'; + put 'end;'; + put 'else put inchar $char1.;'; + put 'end;'; + put 'else do;'; + put '/* outside a quote, change cr and lf to crlf */'; + put 'if inchar=''0D''x then do;'; + put 'crblank:'; + put 'put ''0D0A''x;'; + put 'input inchar $char1.;'; + put 'if inchar=''0D''x then do;'; + put '/* multiple CR indicates CR formatted file with blank lines */'; + put 'goto crblank;'; + put 'end;'; + put 'else if inchar ne ''0A''x then do;'; + put 'put inchar $char1.;'; + put 'if inchar=qchar then isq = mod(isq+1,2);'; + put 'end;'; + put 'end;'; + put 'else if inchar=''0A''x then put ''0D0A''x;'; + put 'else put inchar $char1.;'; + put 'end;'; + put 'run;'; + put '%mend mp_cleancsv;'; + put '/** @endcond */'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; - put 'libname mydb (work);'; - put 'data mydb.springs ;'; - put 'attrib'; - put 'Latitude length= 8'; - put 'Longitude length= 8'; - put 'Name length= $34'; - put 'Area length= $14'; - put 'Type length= $9'; - put 'Farenheit length= 8'; - put 'Celsius length= 8'; - put ';'; - put 'infile cards dsd;'; - put 'input'; - put 'Latitude'; - put 'Longitude'; - put 'Name :$char.'; - put 'Area :$char.'; - put 'Type :$char.'; - put 'Farenheit'; - put 'Celsius'; - put ';'; - put 'missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'; - put 'datalines4;'; - put '51.925,-177.16,Fumaroles on Kanaga Island,Adak,Hotspring,219,104'; - put '65.858,-164.71,Serpentine Hot Springs,Bendeleben,Hotspring,171,77'; - put '53.851,-166.918,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,H,H'; - put '53.877,-166.448,Hot Springs Near Summer Bay,Unalaska,Hotspring,H,H'; - put '52.27,-174.042,Hot Springs on Atka Island,Atka,Hotspring,H,H'; - put '52.34,-174.26,Hot Springs on Atka Island,Atka,Hotspring,H,H'; - put '52.358,-172.317,Hot Spring on Seguam Island,Seguam,Hotspring,H,H'; - put '52.84,-169.9,Chuginadak Hot Springs,Samalga Island,Hotspring,H,H'; - put '52.96,-169.71,Hot Spring on Kagamil Island,Samalga Island,Hotspring,H,H'; - put '51.94,-178.5,Hot Spring on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '51.963,-178.491,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '51.775,-178.793,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,H,H'; - put '53.207,-168.445,Hot Springs Near Geyser Bight,Umnak,Hotspring,H,H'; - put '53.892,-166.93,Makushin Volcano Fumaroles,Unalaska,Hotspring,310,154'; - put '54.9,-162.885,Hot Spring on Amagat Island,False Pass,Hotspring,H,H'; - put '53.213,-168.463,Hot Springs Near Geyser Bight,Umnak,Hotspring,216,102'; - put '53.223,-168.477,Hot Springs Near Geyser Bight,Umnak,Hotspring,214,101'; - put '53.443,-168.092,Thermal Springs In Okmok Caldera,Umnak,Hotspring,212,100'; - put '52.042,-176.108,Hot Springs on Great Sitkin Island,Adak,Hotspring,210,99'; - put '55.983,-131.661,Bailey Hot Spring,Ketchikan,Hotspring,198,92'; - put '53.242,-168.365,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,192,89'; - put '54.157,-165.85,Hot Springs Near Hot Springs Bay,Unimak,Hotspring,181,83'; - put '58.033,-136.017,Hot Springs North End Tenakee Inle,Mt. Fairweathe,Hotspring,180,82'; - put '65.093,-164.922,Pilgrim Springs,Bendeleben,Hotspring,178,81'; - put '57.831,-156.513,W Ukinek Spring,Ugashik,Hotspring,178,81'; - put '65.459,-153.312,Little Melozitna Hot Springs,Melozitna,Hotspring,176,80'; - put '51.81,-177.79,Hot Spring on Tanaga Island,Adak,Hotspring,H,H'; - put '65.233,-144.483,Hot Springs on Big Windy Creek,Circle,Hotspring,H,H'; - put '55.334,-162.137,Hot Spring at West End Emmons Lake,Cold Bay,Hotspring,68,20'; - put '66.197,-154.006,Tunalkten Lake Hot Spring,Hughes,Hotspring,.,.'; - put '67.403,-153.883,Hot Spring Near Arrigetch Peaks,Survey Pass,Hotspring,W,W'; - put '65.047,-142.848,Hot Spring on Flat Creek,Charley River,Hotspring,W,W'; - put '63.683,-151.233,Hot Springs Near Glacier,Mt. Mckinley,Hotspring,W,W'; - put '63.883,-150.717,Hot Springs East of Diamond,Mt. Mckinley,Hotspring,W,W'; - put '62.45,-157.933,Hot Spring Near Flat,Iditarod,Hotspring,W,W'; - put '60.837,-142.42,Hot Spring on Twelvemile Creek,Bering Glacier,Hotspring,W,W'; - put '56.58,-132.18,South Stikine Spring,Petersburg,Hotspring,W,W'; - put '52.87,-173.13,Hot Spring on Attu Island,Attu,Hotspring,W,W'; - put '65.908,-154.993,Deniktow Ridge Hot Springs,Melozitna,Hotspring,H,H'; - put '53.95,-168.037,Hot Springs on Bogoslof Island,Umnak,Hotspring,H,H'; - put '65.45,-150,Hot Spring Near Little Minook Cr,Tanana,Hotspring,H,H'; - put '51.967,-178.444,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '64.002,-156.3,Hot Spring on Tributary of Innoko,Nulato,Hotspring,H,H'; - put '61.058,-160.692,Hot Spring Near Tuluksak River,Russian Missio,Hotspring,H,H'; - put '61.363,-157.733,Hot Springs on Upper Chuilnuk Rive,Sleetmute,Hotspring,H,H'; - put '61.267,-151.238,Hot Lake In Bottom of Crater Peak,Tyonek,Hotspring,H,H'; - put '58.24,-155.09,Hot Spring Near Katmai Pass,Mt. Katmai,Hotspring,H,H'; - put '58.27,-154.89,Hot Springs Near Mt Katmai,Mt. Katmai,Hotspring,H,H'; - put '58.92,-153.98,Hot Spring West of Cape Douglas,Afognak,Hotspring,H,H'; - put '55.368,-161.961,Fumarole,Port Moller,Hotspring,H,H'; - put '54.18,-165.41,Hot Springs on Akun Island,Unimak,Hotspring,H,H'; - put '54.23,-165.66,Hot Springs on Akun Island,Unimak,Hotspring,H,H'; - put '54.66,-164.55,Hot Spring on Unimak Island,Unimak,Hotspring,H,H'; - put '65.97,-154.033,Pocahontas Hot Springs,Melozitna,Hotspring,H,H'; - put '65.216,-149.993,Hutlinana Hot Springs,Livengood,Hotspring,109,43'; - put '57.085,-134.839,Baranof Warm Springs,Sitka,Hotspring,124,51'; - put '67.283,-155.067,Reed River Hot Spring,Survey Pass,Hotspring,122,50'; - put '66.15,-157.117,Hot Springs Near South Bm,Shungnak,Hotspring,122,50'; - put '66.233,-157.583,Hot Springs on Hawk River,Shungnak,Hotspring,122,50'; - put '65.81,-151.237,Kilo Hot Spring,Tanana,Hotspring,122,50'; - put '56.717,-132.005,Chief Shakes Hot Springs,Petersburg,Hotspring,122,50'; - put '69.33,-144.044,Okpilak Springs,Mt. Michelson,Hotspring,119,49'; - put '65.367,-161.25,Granite Mountain Hot Springs,Candle,Hotspring,120,49'; - put '57.644,-135.333,Nylen Hot Springs,Sitka,Hotspring,120,49'; - put '65.963,-150.919,Ray River Hot Spring,Tanana,Hotspring,117,47'; - put '64.924,-154.837,Horner Hot Springs,Ruby,Hotspring,117,47'; - put '65.267,-155.28,Hot Springs Near Dulbi River,Melozitna,Hotspring,126,52'; - put '57.807,-136.341,White Sulphur Springs (Hooniah H S,Sitka,Hotspring,111,44'; - put '57.781,-135.217,Tenakee Hot Springs,Sitka,Hotspring,109,43'; - put '52.19,-174.25,Hot Springs on Atka Island,Atka,Hotspring,167,75'; - put '55.334,-133.641,Dalton (Craig) Hot Springs,Craig,Hotspring,109,43'; - put '51.944,-178.547,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H'; - put '57.771,-135.82,Hot Spring North Arm Peril Strait,Sitka,Hotspring,100,38'; - put '53.848,-166.873,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,94,34'; - put '69.627,-146.027,Red Hill Spring,Mt. Michelson,Hotspring,91,33'; - put '62.081,-145.007,Upper Klawasi Warm Springs,Gulkana,Hotspring,86,30'; - put '62.058,-145.222,Mineral Spring (Lower Klawasi Cone,Gulkana,Hotspring,82,28'; - put '56.68,-131.882,Barnes Lake Hot Springs,Bradfield Cana,Hotspring,79,26'; - put '56.928,-158.12,Surprise Lake Hot Spring,Chignik,Hotspring,73,23'; - put '56.667,-132.28,Twin Lakes Hot Springs,Petersburg,Hotspring,70,21'; - put '66.383,-157.517,Warm Spring Near Purcell Mountain,Shungnak,Hotspring,68,20'; - put '57.348,-135.385,Hot Spring Near Fish Bay,Sitka,Hotspring,117,47'; - put '65.983,-150.56,Hot Springs on Lower Ray River,Tanana,Hotspring,142,61'; - put '55.863,-160.493,Hot Spring Near Port Moller,Port Moller,Hotspring,160,71'; - put '53.253,-168.358,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,158,70'; - put '51.97,-176.61,Hot Springs on Adak Island,Adak,Hotspring,154,68'; - put '65.053,-146.057,Chena Hot Springs,Circle,Hotspring,153,67'; - put '58.37,-137.09,Hot Springs Near Icy Point,Mt. Fairweathe,Hotspring,153,67'; - put '56.836,-135.374,Goddard Hot Springs,Port Alexander,Hotspring,153,67'; - put '66.342,-150.85,Kanuti Hot Springs,Bettles,Hotspring,151,66'; - put '64.85,-162.3,Clear Creek Hot Springs,Solomon,Hotspring,149,65'; - put '53.233,-168.3,Hot Spring on Umnak Island,Umnak,Hotspring,149,65'; - put '61.2,-159.863,Hot Springs Near Ophir Creek,Russian Missio,Hotspring,145,63'; - put '57.865,-156.499,Gas Rocks Hot Spring,Ugashik,Hotspring,127,53'; - put '51.762,-178.77,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,144,62'; - put '66.367,-156.767,Hot Springs Near Division Bm,Shungnak,Hotspring,140,60'; - put '64.7,-162.467,Hot Spring Near Kwiniuk River,Solomon,Hotspring,106,41'; - put '65.274,-148.847,Tolovana Hot Springs,Livengood,Hotspring,140,60'; - put '55.933,-131.559,Bell Island Hot Springs,Ketchikan,Hotspring,165,74'; - put '57.178,-157.015,Hot Spring Near Mother Goose Lake,Ugashik,Hotspring,138,59'; - put '65.483,-144.637,Circle Hot Springs,Circle,Hotspring,135,57'; - put '56.233,-131.267,Bradfield Canal Hot Springs,Bradfield Cana,Hotspring,135,57'; - put '65.006,-150.633,Manley Hot Springs,Tanana,Hotspring,133,56'; - put '65.129,-154.692,Melozi (Melozitna) Springs,Melozitna,Hotspring,131,55'; - put '66.217,-149.547,Dall Hot Springs,Beaver,Hotspring,129,54'; - put '55.217,-162.483,Hot Springs East of Cold Bay,Cold Bay,Hotspring,129,54'; - put '65.217,-162.9,Hot Springs Near Lava Creek,Bendeleben,Hotspring,127,53'; - put '54.944,-163.251,Hot Springs Near Morzhovoi,False Pass,Hotspring,145,63'; - put '36.48,-91.053,Warm Springs,Poplar Bluff,Hotspring,82,28'; - put '34.384,-93.607,Caddo Gap Springs,Little Rock,Hotspring,95,35'; - put '34.321,-93.739,Spring on Redland Mountain,Little Rock,Hotspring,77,25'; - put '34.406,-93.908,Spring on Little Missouri River,Little Rock,Hotspring,74,23'; - put '34.542,-93.024,Big Chalybeate Spring,Little Rock,Hotspring,79,26'; - put '34.513,-93.053,Hot Springs,Little Rock,Hotspring,147,64'; - put '33.008,-109.778,Grapevine Spring,Clifton,Hotspring,91,33'; - put '32.984,-113.324,Agua Caliente Springs,Ajo,Hotspring,102,39'; - put '34.563,-113.497,Kaiser Hot Spring,Prescott,Hotspring,99,37'; - put '34.076,-111.708,Spring (Hot),Holbrook,Hotspring,99,37'; - put '33.17,-110.528,Coolidge Dam Warm Spring,Mesa,Hotspring,99,37'; - put '34.695,-113.572,Cofer Hot Spring,Prescott,Hotspring,97,36'; - put '33.209,-110.818,Pioneer Spring,Mesa,Hotspring,91,33'; - put '33.988,-112.362,Castle Hot Springs,Phoenix,Hotspring,115,46'; - put '32.345,-110.247,Warm Springs,Tucson,Hotspring,91,33'; - put '36.196,-113.081,Lava Warm Springs,Grand Canyon,Hotspring,90,32'; - put '33.068,-109.975,Warm Spring,Clifton,Hotspring,90,32'; - put '31.943,-113.013,Quitobaquito Springs,Lukeville,Hotspring,90,32'; - put '31.695,-110.963,Agua Caliente Spring,Nogales,Hotspring,90,32'; - put '33.075,-109.298,Seep,Clifton,Hotspring,95,35'; - put '34.357,-111.71,Verde Hot Springs,Holbrook,Hotspring,104,40'; - put '32.998,-109.901,Indian Hot Springs,Silver City,Hotspring,118,48'; - put '33.669,-111.165,Roosevelt Dam Springs,Mesa,Hotspring,118,48'; - put '32.336,-110.24,Hookers Hot Springs,Tucson,Hotspring,127,53'; - put '33.4,-109.152,Hannah Hot Spring,Clifton,Hotspring,133,56'; - put '33.08,-109.303,Hot Spring,Clifton,Hotspring,138,59'; - put '32.741,-114.068,Radium Hot Springs,El Centro,Hotspring,140,60'; - put '32.971,-109.35,Gillard Hot Springs,Silver City,Hotspring,180,82'; - put '35.984,-114.742,Hot Spring,Kingman,Hotspring,H,H'; - put '33.78,-110.317,Warm Spring,Mesa,Hotspring,W,W'; - put '36.418,-113.956,Pakoon Springs,Grand Canyon,Hotspring,86,30'; - put '33.493,-112.94,El Dorado Hot Springs,Phoenix South,Hotspring,112,44'; - put '34.896,-114.308,Oatman Warm Springs,Needles,Hotspring,91,33'; - put '33.055,-109.295,Clifton Hot Springs,Clifton,Hotspring,102,39'; - put '34.445,-112.693,Spring,Prescott,Hotspring,72,22'; - put '32.337,-110.708,Mercer Spring,Tucson,Hotspring,77,25'; - put '34.649,-111.744,Soda Spring,Holbrook,Hotspring,75,24'; - put '33.253,-110.703,Spring,Mesa,Hotspring,75,24'; - put '31.362,-109.265,Astin Spring,Douglas,Hotspring,75,24'; - put '35.169,-113.851,Frost Mine Spring,Williams,Hotspring,70,21'; - put '31.673,-109.902,Antelope Spring,Douglas,Hotspring,79,26'; - put '35.213,-113.425,Casa Grande Spring,Williams,Hotspring,72,22'; - put '33.51,-110.403,Cassadore Spring,Mesa,Hotspring,73,23'; - put '34.32,-111.453,Tonto Natural Bridge Spring,Holbrook,Hotspring,72,22'; - put '34.405,-111.602,Spring,Holbrook,Hotspring,72,22'; - put '34.436,-109.402,Salado Springs,Saint Johns,Hotspring,72,22'; - put '31.592,-109.51,Lewis Spring,Douglas,Hotspring,68,20'; - put '33.046,-109.44,Eagle Creek Hot Springs,Clifton,Hotspring,97,36'; - put '36.509,-111.852,Colorado Pool,Marble Canyon,Hotspring,86,30'; - put '33.062,-109.482,Warm Spring,Clifton,Hotspring,73,23'; - put '31.637,-110.703,Monkey Spring,Nogales,Hotspring,82,28'; - put '32.281,-110.73,Agua Caliente,Tucson,Hotspring,86,30'; - put '32.327,-110.228,N-O Spring,Tucson,Hotspring,73,23'; - put '32.983,-110.373,Warm Spring,Tucson,Hotspring,79,26'; - put '33.152,-110.639,Mescal Warm Spring,Mesa,Hotspring,84,29'; - put '33.163,-110.662,Spring,Mesa,Hotspring,82,28'; - put '35.077,-113.267,Trout Creek Spring,Williams,Hotspring,81,27'; - put '33.438,-110.213,Warm Springs,Mesa,Hotspring,86,30'; - put '36.895,-113.913,Springs,Grand Canyon,Hotspring,79,26'; - put '35.96,-114.725,Hot Spring,Kingman,Hotspring,86,30'; - put '34.925,-114.221,Caliche Spring,Needles,Hotspring,79,26'; - put '33.915,-112.332,Mitchell Spring,Phoenix,Hotspring,79,26'; - put '33.831,-110.574,Salt Banks,Mesa,Hotspring,78,26'; - put '34.91,-113.608,Tom Brown Warm Spring,Prescott,Hotspring,82,28'; - put '38.873,-122.689,Seigler Springs,Santa Rosa,Hotspring,126,52'; - put '36.814,-117.763,Palm Spring,Death Valley,Hotspring,120,49'; - put '34.498,-119.341,Stingleys Hot Springs,Los Angeles,Hotspring,123,51'; - put '33.67,-117.325,"Wrenden Hot Sprs, Elsinore Hot Spr",Santa Ana,Hotspring,125,52'; - put '37.253,-118.373,Keough Hot Springs,Mariposa,Hotspring,124,51'; - put '36.229,-118.302,Jordan Hot Springs,Fresno,Hotspring,124,51'; - put '34.502,-119.346,Vickers Hot Springs,Los Angeles,Hotspring,124,51'; - put '36.123,-121.64,Slates Hot Springs,Santa Cruz,Hotspring,122,50'; - put '35.881,-118.67,California Hot Springs,Bakersfield,Hotspring,122,50'; - put '38.788,-122.777,Sulphur Creek,Santa Rosa,Hotspring,120,49'; - put '37.648,-118.806,Hot Springs,Mariposa,Hotspring,129,54'; - put '36.703,-120.86,Mercey Hot Springs,Santa Cruz,Hotspring,119,48'; - put '33.589,-117.511,San Juan Hot Springs,Santa Ana,Hotspring,120,49'; - put '38.785,-122.655,Harbin Springs,Santa Rosa,Hotspring,120,49'; - put '37.677,-118.79,Dehy Hot Spring,Mariposa,Hotspring,134,57'; - put '39.183,-122.7,Bartlett Springs,Ukiah,Hotspring,144,62'; - put '36.234,-121.546,Tassajara Hot Springs,Santa Cruz,Hotspring,144,62'; - put '36.144,-120.555,Coalinga Mineral Springs,Santa Cruz,Hotspring,112,44'; - put '39.033,-122.445,Jones Fountain of Life Spring,Ukiah,Hotspring,142,61'; - put '35.575,-118.534,"Miracle Hot Sprs, Hobo Hot Sprs",Bakersfield,Hotspring,119,48'; - put '33.284,-116.631,Warner Hot Spring,Santa Ana,Hotspring,138,59'; - put '38.237,-119.326,Buckeye Hot Spring,Walker Lake,Hotspring,140,60'; - put '41.266,-120.08,Hot Springs (Menlo Baths),Alturas,Hotspring,135,57'; - put '33.753,-117.495,Glen Ivy Hot Springs,Santa Ana,Hotspring,131,55'; - put '37.802,-118.532,Benton Hot Springs,Mariposa,Hotspring,134,57'; - put '38.691,-123.024,Skaggs Springs,Santa Rosa,Hotspring,135,56'; - put '35.62,-118.473,Scovern Hot Springs,Bakersfield,Hotspring,133,56'; - put '34.538,-119.56,Agua Caliente Spring,Los Angeles,Hotspring,133,56'; - put '33.558,-117.154,Murrietta Hot Springs,Santa Ana,Hotspring,132,56'; - put '39.226,-120.01,Brockway Hot Springs,Chico,Hotspring,131,55'; - put '41.036,-121.926,Hunt Hot Spring,Alturas,Hotspring,136,58'; - put '34.582,-119.044,Willett Hot Springs,Los Angeles,Hotspring,108,42'; - put '37.234,-118.881,Blaney Meadows Hot Springs,Mariposa,Hotspring,109,43'; - put '36.477,-118.404,Kern Hot Spring,Fresno,Hotspring,109,43'; - put '36.806,-117.771,Lower Warm Springs,Death Valley,Hotspring,110,43'; - put '34.482,-119.302,Matilija Hot Springs,Los Angeles,Hotspring,109,43'; - put '34.537,-119.879,San Marcos Hot Spring,Los Angeles,Hotspring,110,43'; - put '33.896,-117.057,Eden Hot Springs,Santa Ana,Hotspring,109,43'; - put '39.573,-120.348,Campbell Hot Springs,Chico,Hotspring,111,44'; - put '38.994,-122.742,Horseshoe Spring,Santa Rosa,Hotspring,108,42'; - put '33.969,-116.942,Highland Springs,Santa Ana,Hotspring,112,44'; - put '34.34,-117.173,"Warm Spring, Hot Spring",San Bernardino,Hotspring,108,42'; - put '41.219,-120.066,Squaw Baths,Alturas,Hotspring,106,41'; - put '40.142,-120.935,Indian Valley Hot Springs,Susanville,Hotspring,106,41'; - put '39.292,-122.821,Crabtree Hot Springs,Ukiah,Hotspring,106,41'; - put '37.108,-121.478,Gilroy Hot Springs,San Jose,Hotspring,106,41'; - put '39.227,-123.362,Orrs Springs,Ukiah,Hotspring,104,40'; - put '38.773,-122.705,Anderson Springs,Santa Rosa,Hotspring,108,42'; - put '38.858,-122.671,Howard Springs,Santa Rosa,Hotspring,113,45'; - put '34.461,-119.637,Montecito Hot Springs,Los Angeles,Hotspring,118,48'; - put '33.551,-117.167,Temecula Hot Springs,Santa Ana,Hotspring,116,47'; - put '33.835,-116.988,Gilman Hot Springs,Santa Ana,Hotspring,117,47'; - put '37.618,-119.074,Reds Meadow Hot Springs,Mariposa,Hotspring,115,46'; - put '35.528,-118.665,Democrat Hot Springs,Bakersfield,Hotspring,115,46'; - put '33.731,-118.348,Whites Point Hot Springs,Long Beach,Hotspring,115,46'; - put '37.532,-119.025,Fish Creek Hot Springs,Mariposa,Hotspring,110,43'; - put '39.032,-122.432,"Blank Spring, Manzanita Mine Sprs",Ukiah,Hotspring,112,45'; - put '37.327,-119.018,Mono Hot Springs,Mariposa,Hotspring,109,43'; - put '38.225,-119.217,The Hot Springs,Walker Lake,Hotspring,113,45'; - put '35.727,-118.408,Hot Spring,Bakersfield,Hotspring,113,45'; - put '41.6,-120.088,Leonards Hot Springs,Alturas,Hotspring,144,62'; - put '38.874,-123.518,Point Arena Hot Springs,Santa Rosa,Hotspring,111,44'; - put '41.126,-121.028,Kellog Hot Springs,Alturas,Hotspring,172,78'; - put '35.558,-118.612,Delonegha Hot Springs,Bakersfield,Hotspring,112,44'; - put '35.871,-116.23,Tecopa Hot Springs,Trona,Hotspring,118,48'; - put '41.86,-120.158,Fort Bidwell Hot Spring,Alturas,Hotspring,113,45'; - put '41.534,-120.078,Hot Springs (Surprise Valley),Alturas,Hotspring,208,98'; - put '33.345,-115.588,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '41.012,-121.274,Hot Springs,Alturas,Hotspring,H,H'; - put '39.922,-120.024,Zamboni Hot Springs,Chico,Hotspring,H,H'; - put '38.979,-122.659,Fumarole,Santa Rosa,Hotspring,H,H'; - put '37.622,-119.028,Fumaroles,Mariposa,Hotspring,H,H'; - put '40.364,-120.243,Hot Spring,Susanville,Hotspring,204,96'; - put '38.767,-122.748,Little Geysers,Santa Rosa,Hotspring,210,99'; - put '33.328,-115.583,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '41.67,-120.206,Lake City Hot Springs,Alturas,Hotspring,207,97'; - put '36.036,-117.802,Devils Kitchen,Death Valley,Hotspring,207,97'; - put '36.045,-117.769,Coso Hot Springs,Death Valley,Hotspring,207,97'; - put '40.382,-121.513,Morgan Hot Spring,Susanville,Hotspring,205,96'; - put '40.421,-121.375,Terminal Geyser,Susanville,Hotspring,205,96'; - put '41.19,-120.383,West Valley Reservoir Hot Spring,Alturas,Hotspring,171,77'; - put '38.802,-122.81,The Geysers,Santa Rosa,Hotspring,214,101'; - put '35.888,-116.258,Springs,Trona,Hotspring,W,W'; - put '34.185,-117.262,"Arrowhead Springs, Waterman Hot Sp",San Bernardino,Hotspring,194,90'; - put '33.823,-116.542,Palm Springs (Agua Caliente Spring,Santa Ana,Hotspring,104,40'; - put '41.196,-120.475,Springs,Alturas,Hotspring,W,W'; - put '41.959,-120.936,Warm Spring,Alturas,Hotspring,W,W'; - put '37.929,-121.965,Springs,San Jose,Hotspring,W,W'; - put '36.83,-117.736,Upper Warm Spring,Death Valley,Hotspring,W,W'; - put '33.343,-115.573,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '35.536,-118.651,Spring (Hot),Bakersfield,Hotspring,W,W'; - put '33.332,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '35.967,-116.931,Warm Spring,Trona,Hotspring,W,W'; - put '33.28,-115.592,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.288,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.312,-115.577,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '33.313,-115.605,Mud Volcanoes,Salton Sea,Hotspring,W,W'; - put '40.393,-121.507,Growler Hot Spring,Susanville,Hotspring,203,95'; - put '35.148,-118.783,Warm Spring,Bakersfield,Hotspring,W,W'; - put '41.973,-122.202,Klamath Hot Spring,Weed,Hotspring,156,69'; - put '41.143,-121.11,Bassett Hot Springs,Alturas,Hotspring,174,79'; - put '38.58,-122.575,Calistoga Hot Springs,Santa Rosa,Hotspring,172,78'; - put '37.656,-118.834,Hot Creek Springs,Mariposa,Hotspring,171,77'; - put '41.229,-121.405,Little Hot Spring,Alturas,Hotspring,169,76'; - put '37.664,-118.802,The Tub,Mariposa,Hotspring,167,75'; - put '40.355,-120.257,Wendel Hot Springs,Susanville,Hotspring,205,96'; - put '38.768,-122.717,Castle Rock Springs,Santa Rosa,Hotspring,163,73'; - put '38.245,-119.205,Travertine Hot Springs,Walker Lake,Hotspring,180,82'; - put '39.002,-122.664,Sulphur Bank,Ukiah,Hotspring,156,69'; - put '39.057,-122.475,Elgin Mine,Ukiah,Hotspring,156,69'; - put '39.039,-122.421,Wilbur Springs,Ukiah,Hotspring,153,67'; - put '40.444,-121.409,Drakesbad,Susanville,Hotspring,151,66'; - put '40.457,-121.545,Mill Creek Springs,Susanville,Hotspring,150,66'; - put '38.048,-119.081,Hot Spring,Walker Lake,Hotspring,151,66'; - put '37.647,-118.859,Casa Diablo Hot Pool,Mariposa,Hotspring,165,74'; - put '41.607,-121.523,Hot Spot,Alturas,Hotspring,191,88'; - put '40.44,-121.434,Devils Kitchen,Susanville,Hotspring,203,95'; - put '40.302,-120.195,Amedee Hot Springs,Susanville,Hotspring,203,95'; - put '36.031,-117.833,Fumarole,Death Valley,Hotspring,203,95'; - put '40.447,-121.536,"Sulphur Works, Tophet Hot Springs",Susanville,Hotspring,199,93'; - put '40.455,-121.501,Bumpass Hell,Susanville,Hotspring,199,93'; - put '37.648,-118.914,Casa Diablo Hot Springs And Geyser,Mariposa,Hotspring,199,93'; - put '37.692,-118.839,Little Hot Creek Spring,Mariposa,Hotspring,180,82'; - put '34.596,-118.998,Sespe Hot Springs,Los Angeles,Hotspring,194,90'; - put '38.348,-119.4,Fales Hot Springs,Walker Lake,Hotspring,180,82'; - put '40.434,-121.399,Boiling Springs Lake,Susanville,Hotspring,190,88'; - put '41.615,-120.102,Seyferth Hot Springs,Alturas,Hotspring,185,85'; - put '41.407,-122.197,"Hot Spring, Fumaroles",Weed,Hotspring,183,84'; - put '37.993,-119.028,Paoha Island Springs,Mariposa,Hotspring,181,83'; - put '41.025,-121.924,Big Bend Hot Springs,Alturas,Hotspring,180,82'; - put '38.699,-119.846,Grovers Hot Springs,Walker Lake,Hotspring,147,64'; - put '37.665,-118.828,Hot Creek Gorge Springs,Mariposa,Hotspring,199,93'; - put '39.43,-122.538,"Sulphur Spring, Salt Spring",Ukiah,Hotspring,75,24'; - put '38.925,-122.77,Hildebrande Spring,Santa Rosa,Hotspring,77,25'; - put '38.203,-119.118,Warm Spring,Walker Lake,Hotspring,77,25'; - put '36.938,-121.565,Sargent Estate Warm Spring,Santa Cruz,Hotspring,77,25'; - put '34.826,-116.677,Newberry Spring,San Bernardino,Hotspring,77,25'; - put '41.919,-122.369,Bogus Soda Springs,Weed,Hotspring,76,24'; - put '39.053,-122.597,Quigley Soda Spring,Ukiah,Hotspring,82,28'; - put '41.252,-120.521,Warm Spring,Alturas,Hotspring,75,24'; - put '38.85,-122.693,Pine Cone Spring,Santa Rosa,Hotspring,78,26'; - put '38.339,-122.259,Napa Vichy Springs,Santa Rosa,Hotspring,76,24'; - put '38.892,-122.533,Baker Soda Spring,Santa Rosa,Hotspring,76,24'; - put '38.897,-122.882,England Springs,Santa Rosa,Hotspring,76,24'; - put '38.916,-122.799,Carlsbad Spring,Santa Rosa,Hotspring,76,24'; - put '38.192,-120.827,Valley Springs,Sacramento,Hotspring,75,24'; - put '38.85,-120.025,Myers Warm Spring,Sacramento,Hotspring,75,24'; - put '37.708,-118.813,Hot Spring,Mariposa,Hotspring,68,20'; - put '36.122,-117.217,Warm Sulphur Springs,Death Valley,Hotspring,80,27'; - put '35.682,-116.422,Saratoga Spring,Trona,Hotspring,82,28'; - put '33.733,-114.907,Mccoy Spring,Salton Sea,Hotspring,82,28'; - put '41.484,-120.764,Spring,Alturas,Hotspring,81,27'; - put '39.657,-123.585,Jackson Valley Mud Springs,Ukiah,Hotspring,80,27'; - put '39.198,-122.505,Pseudo Complexion Spring,Ukiah,Hotspring,81,27'; - put '38.85,-122.667,Bad Creek Spring,Santa Rosa,Hotspring,81,27'; - put '32.97,-116.423,Vallecitos Spring,San Diego,Hotspring,79,26'; - put '36.765,-120.901,Spring,Santa Cruz,Hotspring,81,27'; - put '34.159,-118.499,El Encino Springs,Los Angeles,Hotspring,79,26'; - put '35.879,-116.153,Resting Spring,Trona,Hotspring,80,27'; - put '41.828,-120.917,Pothole Spring,Alturas,Hotspring,78,26'; - put '39.348,-122.668,Fouts Springs,Ukiah,Hotspring,79,26'; - put '38.519,-122.26,"Napa Rock Soda Spring, Phillips So",Santa Rosa,Hotspring,78,26'; - put '38.838,-122.653,Spiers Springs,Santa Rosa,Hotspring,79,26'; - put '35.141,-116.101,Soda Station Springs,Trona,Hotspring,75,24'; - put '37.503,-121.904,Alameda Warm Springs,San Jose,Hotspring,80,27'; - put '39.429,-123.308,Muir Springs,Ukiah,Hotspring,68,20'; - put '37.924,-122.046,Sulphur Spring,San Francisco,Hotspring,75,24'; - put '40.58,-120.265,Tipton Springs,Susanville,Hotspring,70,21'; - put '39.697,-123.478,Pinches Spring,Ukiah,Hotspring,70,21'; - put '38.755,-122.285,Zim Zim Spring,Santa Rosa,Hotspring,70,21'; - put '37.083,-121.042,Spring In Oneill Forebay,San Jose,Hotspring,70,21'; - put '37.632,-121.762,Crohare Spring,San Jose,Hotspring,70,21'; - put '33.625,-115.325,Corn Spring,Salton Sea,Hotspring,72,22'; - put '36.117,-118.776,Ward Spring,Fresno,Hotspring,70,21'; - put '34.423,-119.538,Boron Spring,Los Angeles,Hotspring,72,22'; - put '39.002,-122.498,Grizzly Spring,Ukiah,Hotspring,68,20'; - put '39.088,-122.525,Sulphur Spring,Ukiah,Hotspring,68,20'; - put '38.125,-122.188,Vallejo White Sulphur Springs,Santa Rosa,Hotspring,68,20'; - put '38.31,-122.053,Tolenas Springs,Santa Rosa,Hotspring,68,20'; - put '41.45,-120.834,Kelly Hot Spring,Alturas,Hotspring,198,92'; - put '36.512,-116.821,Nevares Springs,Death Valley,Hotspring,102,39'; - put '37.888,-118.487,Bertrand Ranch Springs,Mariposa,Hotspring,70,21'; - put '35.483,-119.917,Mize Spring,Bakersfield,Hotspring,73,23'; - put '36.698,-117.848,Little Hunter Canyon Springs,Death Valley,Hotspring,81,27'; - put '38.995,-122.642,Davis Soda Spring,Santa Rosa,Hotspring,73,23'; - put '37.432,-121.308,Salt Grass Springs,San Jose,Hotspring,73,23'; - put '37.573,-121.445,Lone Tree Mineral Spring,San Jose,Hotspring,73,23'; - put '37.638,-118.887,Chance Spring,Mariposa,Hotspring,73,23'; - put '36.295,-120.985,Sulphur Springs,Santa Cruz,Hotspring,73,23'; - put '41.16,-120.403,Warm Spring,Alturas,Hotspring,70,21'; - put '35.4,-120.25,Cameta Warm Spring,San Luis Obisp,Hotspring,73,23'; - put '37.719,-118.735,Springs,Mariposa,Hotspring,75,24'; - put '35.588,-116.359,Sheep Creek Spring,Trona,Hotspring,73,23'; - put '40.568,-120.325,Sellicks Springs,Susanville,Hotspring,72,22'; - put '38.833,-122.357,One Shot Mining Co,Santa Rosa,Hotspring,72,22'; - put '38.95,-122.572,Soda Spring In Cache Formation,Santa Rosa,Hotspring,72,22'; - put '37.635,-118.72,Springs,Mariposa,Hotspring,72,22'; - put '36.13,-118.816,Soda Spring,Fresno,Hotspring,72,22'; - put '36.773,-120.898,Iridat Spring,Santa Cruz,Hotspring,73,23'; - put '33.545,-115.654,Canyon Spring,Salton Sea,Hotspring,97,36'; - put '36.675,-116.923,Keane Wonder Spring,Death Valley,Hotspring,93,34'; - put '36.331,-121.367,Paraiso Springs (Sulphur Spring),Santa Cruz,Hotspring,98,37'; - put '35.122,-120.542,Newsom Springs,San Luis Obisp,Hotspring,99,37'; - put '34.503,-120.219,Las Cruces Hot Springs,Santa Maria,Hotspring,99,37'; - put '38.49,-122.498,St Helena White Sulphur Spring,Santa Rosa,Hotspring,97,36'; - put '35.946,-116.189,Chappo Spring,Trona,Hotspring,80,27'; - put '40.019,-121.036,Spring,Susanville,Hotspring,99,37'; - put '40.44,-121.42,Hot Springs Valley,Susanville,Hotspring,83,28'; - put '32.947,-116.305,Agua Caliente Springs,San Diego,Hotspring,101,38'; - put '39.196,-122.714,Newman Springs,Ukiah,Hotspring,94,35'; - put '37.63,-118.808,Whitmore Hot Springs,Mariposa,Hotspring,95,35'; - put '35.269,-120.851,Pecho Warm Springs,San Luis Obisp,Hotspring,95,35'; - put '33.514,-117.604,Spring,Santa Ana,Hotspring,95,35'; - put '38.958,-122.701,Riviera Beach Spring,Santa Rosa,Hotspring,93,34'; - put '36.33,-117.948,Dirty Socks Hot Spring,Death Valley,Hotspring,93,34'; - put '37.847,-121.635,Byron Hot Springs,San Jose,Hotspring,96,36'; - put '35.433,-118.478,Yates Hot Springs,Bakersfield,Hotspring,100,38'; - put '35.663,-120.692,Paso Robles Artesian Spring,San Luis Obisp,Hotspring,102,39'; - put '34.507,-119.291,Wheeler Springs,Los Angeles,Hotspring,102,39'; - put '33.8,-116.927,Soboda Hot Springs,Santa Ana,Hotspring,102,39'; - put '40.223,-122.747,Stinking Springs,Redding,Hotspring,101,38'; - put '38.8,-123.17,Hoods Hot Springs,Santa Rosa,Hotspring,100,38'; - put '37.029,-117.383,Grapevine Springs,Goldfield,Hotspring,100,38'; - put '36.084,-121.584,Dolans Hot Spring,Santa Cruz,Hotspring,98,37'; - put '36.21,-118.176,Soda Springs,Fresno,Hotspring,100,38'; - put '33.664,-117.913,Fairview Hot Spring,Santa Ana,Hotspring,96,36'; - put '35.143,-116.813,Paradise Spring,Trona,Hotspring,100,38'; - put '33.837,-117.145,Lakeview Hot Springs,Santa Ana,Hotspring,100,38'; - put '33.201,-115.577,Mud Pots,Salton Sea,Hotspring,100,38'; - put '33.212,-115.591,Mud Pots,Salton Sea,Hotspring,100,38'; - put '33.217,-115.58,Wister Mud Pot,Salton Sea,Hotspring,100,38'; - put '32.617,-116.189,Jacumba Hot Springs,San Diego,Hotspring,101,38'; - put '36.618,-121.845,Sulphur Hot Spring,Santa Cruz,Hotspring,100,38'; - put '36.495,-117.893,Springs,Death Valley,Hotspring,86,30'; - put '38.033,-118.902,Mono Basin Warm Springs,Walker Lake,Hotspring,88,31'; - put '35.908,-120.367,Table Mountain (Spring),San Luis Obisp,Hotspring,88,31'; - put '34.271,-116.838,Pan Hot Springs,San Bernardino,Hotspring,88,31'; - put '40.238,-122.11,Tuscan Springs,Redding,Hotspring,86,30'; - put '40.245,-120.007,High Rock Spring,Susanville,Hotspring,86,30'; - put '38.55,-122.72,Mark West Springs,Santa Rosa,Hotspring,88,31'; - put '43.513,-119.903,Springs at Tecolote Tunnel,Los Angeles,Hotspring,93,34'; - put '39.728,-120.547,Mclear Warm Springs,Chico,Hotspring,86,30'; - put '38.835,-122.731,Gordon Warm Springs,Santa Rosa,Hotspring,97,36'; - put '39.166,-123.159,Vichy Springs,Ukiah,Hotspring,85,29'; - put '38.936,-122.907,Highland Springs,Santa Rosa,Hotspring,84,29'; - put '37.398,-121.794,Mineral Springs,San Jose,Hotspring,84,29'; - put '33.436,-117.324,De Luz Warm Springs,Santa Ana,Hotspring,85,29'; - put '33.512,-115.827,Dos Palmas Spring,Salton Sea,Hotspring,84,29'; - put '39.022,-122.444,Abbott Mine,Ukiah,Hotspring,86,30'; - put '34.605,-118.561,Warm Spring,Los Angeles,Hotspring,92,33'; - put '41.659,-123.319,Sulphur Springs,Weed,Hotspring,84,29'; - put '38.394,-122.552,Los Guilicos Warm Springs,Santa Rosa,Hotspring,88,31'; - put '41.492,-120.7,Essex Springs,Alturas,Hotspring,91,33'; - put '38.654,-122.484,Aetna Springs,Santa Rosa,Hotspring,91,33'; - put '35.842,-117.38,Bainter Spring,Trona,Hotspring,92,33'; - put '34.228,-117.483,Tylers Bath Spring,San Bernardino,Hotspring,92,33'; - put '33.363,-117.017,Agua Tibia Spring,Santa Ana,Hotspring,92,33'; - put '41.167,-120.032,Bare Ranch Spring,Alturas,Hotspring,90,32'; - put '35.978,-116.273,Shoshone Spring,Trona,Hotspring,90,32'; - put '33.407,-116.035,Fish Springs,Santa Ana,Hotspring,90,32'; - put '35.582,-120.666,Santa Ysabel Springs (Sulphur Spr),San Luis Obisp,Hotspring,92,33'; - put '34.537,-119.613,Little Caliente Spring,Los Angeles,Hotspring,90,32'; - put '39.006,-122.787,Big Soda Spring,Ukiah,Hotspring,90,32'; - put '35.439,-119.846,Carneros Spring,Bakersfield,Hotspring,90,32'; - put '36.441,-116.829,Travertine Springs,Death Valley,Hotspring,90,32'; - put '37.88,-122.627,Rocky Point Springs,San Francisco,Hotspring,90,32'; - put '39.227,-107.224,Penny Hot Springs,Leadville,Hotspring,133,56'; - put '38.732,-106.178,Hortense Hot Spring,Montrose,Hotspring,181,83'; - put '37.4,-107.849,Tripp Hot Springs,Durango,Hotspring,111,44'; - put '40.073,-106.113,Hot Sulphur Springs,Craig,Hotspring,111,44'; - put '39.739,-105.512,Idaho Springs,Denver,Hotspring,115,46'; - put '39.552,-107.412,South Canyon Hot Springs,Leadville,Hotspring,118,48'; - put '39.548,-107.322,Glenwood Springs,Leadville,Hotspring,124,51'; - put '38.133,-107.736,Orvis Hot Spring,Montrose,Hotspring,126,52'; - put '39.017,-105.793,Hartsel Hot Springs,Denver,Hotspring,126,52'; - put '38.733,-106.162,Mount Princeton Hot Springs,Montrose,Hotspring,133,56'; - put '37.752,-108.131,Paradise Warm Spring,Cortez,Hotspring,115,46'; - put '37.747,-106.831,Wagon Wheel Gap Hot Springs,Durango,Hotspring,135,57'; - put '37.263,-107.011,Pagosa Springs,Durango,Hotspring,136,58'; - put '38.812,-106.226,Cottonwood Hot Springs,Montrose,Hotspring,136,58'; - put '38.168,-105.924,Mineral Hot Springs,Pueblo,Hotspring,140,60'; - put '40.559,-106.849,Routt Hot Springs,Craig,Hotspring,147,64'; - put '38.021,-107.672,Ouray Hot Springs,Montrose,Hotspring,156,69'; - put '38.498,-106.076,Poncha Hot Springs,Montrose,Hotspring,160,71'; - put '38.514,-106.508,Upper Waunita Hot Springs,Montrose,Hotspring,176,80'; - put '38.272,-107.1,Cebolla Hot Springs,Montrose,Hotspring,106,41'; - put '37.313,-107.344,Piedra River Hot Springs,Durango,Hotspring,108,42'; - put '38.517,-106.515,Lower Waunita Hot Springs,Montrose,Hotspring,167,75'; - put '38.816,-106.873,Ranger Hot Spring,Montrose,Hotspring,81,27'; - put '37.294,-105.784,Dexter Spring,Trinidad,Hotspring,68,20'; - put '38.634,-106.072,Browns Grotto Warm Spring,Montrose,Hotspring,73,23'; - put '39.164,-106.062,Rhodes Warm Spring,Leadville,Hotspring,75,24'; - put '38.836,-106.825,Cement Creek Hot Spring,Montrose,Hotspring,77,25'; - put '38.653,-106.056,Browns Canyon Warm Spring,Montrose,Hotspring,77,25'; - put '37.033,-106.805,Stinking Springs,Durango,Hotspring,81,27'; - put '37.747,-108.117,Geyser Warm Spring,Cortez,Hotspring,82,28'; - put '38.479,-105.891,Swissvale Warm Springs,Pueblo,Hotspring,82,28'; - put '37.751,-106.317,Shaw Springs,Durango,Hotspring,86,30'; - put '37.728,-107.054,Birdsie Warm Spring,Durango,Hotspring,86,30'; - put '37.741,-107.034,Antelope Spring,Durango,Hotspring,90,32'; - put '39.628,-107.106,Dotsero Warm Springs,Leadville,Hotspring,90,32'; - put '38.485,-105.91,Wellsville Warm Spring,Pueblo,Hotspring,91,33'; - put '38.014,-108.054,Lemon Hot Spring,Moab,Hotspring,91,33'; - put '37.391,-107.846,"Trimble Hot Spr, Stratten Warm Spr",Durango,Hotspring,97,36'; - put '38.192,-105.816,Valley View Hot Springs,Pueblo,Hotspring,99,37'; - put '38.433,-105.261,Canon City Hot Springs,Pueblo,Hotspring,104,40'; - put '39.012,-106.891,Conundrum Hot Springs,Leadville,Hotspring,100,38'; - put '37.511,-106.945,Rainbow Hot Springs,Durango,Hotspring,104,40'; - put '40.467,-107.952,Juniper Hot Springs,Craig,Hotspring,100,38'; - put '40.483,-106.827,Steamboat Springs,Craig,Hotspring,102,39'; - put '37.771,-108.091,Dunton Hot Spring,Cortez,Hotspring,108,42'; - put '37.453,-107.803,Pinkerton Hot Springs,Durango,Hotspring,90,32'; - put '39.932,-105.277,Eldorado Springs,Denver,Hotspring,79,26'; - put '27.074,-82.233,Little Salt Spring,Tampa,Hotspring,81,27'; - put '27.06,-82.261,Warm Mineral Springs (Big Salt Spr,Tampa,Hotspring,86,30'; - put '32.92,-84.438,Barker Spring,Phenix City,Hotspring,73,23'; - put '32.964,-84.499,Thundering Spring,Phenix City,Hotspring,75,24'; - put '33.018,-84.327,Taylor Spring,Atlanta,Hotspring,75,24'; - put '32.862,-84.65,Parkman Spring,Phenix City,Hotspring,77,25'; - put '33.037,-84.374,Lifsey Spring,Atlanta,Hotspring,79,26'; - put '32.893,-84.69,Warm Springs,Phenix City,Hotspring,88,31'; - put '32.873,-84.547,Tom Brown Spring,Phenix City,Hotspring,68,20'; - put '19.407,-155.277,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.46,-154.847,Isaac Hale Park Spring,Hawaii,Hotspring,97,36'; - put '19.496,-154.876,Warm Vapor,Hawaii,Hotspring,W,W'; - put '19.373,-155.188,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.39,-155.311,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.434,-155.272,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.486,-155.598,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.466,-154.943,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.421,-155.62,Steam Vents,Hawaii,Hotspring,H,H'; - put '19.201,-155.384,Waiwelawela Point Spring,Hawaii,Hotspring,90,32'; - put '19.593,-154.928,Akins Spring,Hawaii,Hotspring,84,29'; - put '44.721,-115.01,Thomas Creek Ranch Hot Spring,Challis,Hotspring,138,59'; - put '45.431,-116.015,Cow Flats Hot Spring,Grangeville,Hotspring,138,59'; - put '44.062,-115.685,Pine Flat Hot Springs,Challis,Hotspring,138,59'; - put '44.382,-115.841,Dash Creek Hot Springs,Challis,Hotspring,138,59'; - put '44.077,-115.553,Haven Lodge Hot Spring,Challis,Hotspring,147,64'; - put '43.647,-114.816,Skillern Hot Springs,Hailey,Hotspring,140,60'; - put '43.789,-115.434,Dutch Frank Hot Spring,Hailey,Hotspring,149,65'; - put '43.54,-115.288,Bridge Hot Springs,Hailey,Hotspring,138,59'; - put '43.72,-115.617,Smith Cabin Hot Spring,Hailey,Hotspring,138,59'; - put '42.688,-114.826,Banbury Hot Spring,Twin Falls,Hotspring,138,59'; - put '45.035,-115.561,Sheep Creek Hot Spring,Elk City,Hotspring,136,58'; - put '44.245,-114.885,Elkhorn Hot Spring,Challis,Hotspring,136,58'; - put '44.642,-115.693,Mollys Hot Spring,Challis,Hotspring,138,59'; - put '43.811,-115.116,Atlanta Hot Springs,Hailey,Hotspring,140,60'; - put '44.679,-116.231,White Licks Hot Spring,Baker,Hotspring,140,60'; - put '45.512,-115.046,Barth Hot Springs,Elk City,Hotspring,140,60'; - put '43.696,-115.658,Sheep Creek Bridge Hot Spring,Hailey,Hotspring,142,61'; - put '44.914,-115.722,Teapot Hot Spring,Challis,Hotspring,142,61'; - put '43.788,-115.444,Straight Creek Hot Spring,Hailey,Hotspring,144,62'; - put '43.116,-115.305,Latty Hot Spring,Hailey,Hotspring,144,62'; - put '45.039,-116.291,Zims Resort Hot Springs,Grangeville,Hotspring,144,62'; - put '43.049,-114.952,White Arrow Hot Spring,Hailey,Hotspring,145,63'; - put '44.645,-114.739,Upper Loon Creek Hot Springs,Challis,Hotspring,145,63'; - put '43.383,-114.931,Wardrop Hot Spring,Hailey,Hotspring,147,64'; - put '44.531,-116.754,Fairchild Hot Spring,Baker,Hotspring,126,52'; - put '44.661,-114.652,Foster Ranch Hot Springs,Challis,Hotspring,135,57'; - put '44.051,-115.829,Dan Hodges Hot Spring,Challis,Hotspring,140,60'; - put '43.506,-114.354,Hailey Hot Springs,Hailey,Hotspring,131,55'; - put '43.982,-114.486,West Pass Hot Spring,Hailey,Hotspring,124,51'; - put '43.641,-114.487,Warfield Hot Spring,Hailey,Hotspring,124,51'; - put '44.145,-112.554,Lidy Hot Springs,Dubois,Hotspring,124,51'; - put '44.054,-115.907,Hot Spring Campground,Challis,Hotspring,124,51'; - put '42.032,-115.363,Murphy Hot Springs,Twin Falls,Hotspring,126,52'; - put '43.561,-114.415,Clarendon Hot Springs,Hailey,Hotspring,126,52'; - put '43.423,-114.627,Elk Creek Hot Spring,Hailey,Hotspring,126,52'; - put '43.553,-115.267,Paradise Hot Springs,Hailey,Hotspring,126,52'; - put '42.308,-111.707,Maple Grove Hot Springs,Preston,Hotspring,172,78'; - put '45.013,-113.605,Sharkey Hot Spring,Dillon,Hotspring,126,52'; - put '44.73,-114.993,Sunflower Hot Springs,Challis,Hotspring,149,65'; - put '43.974,-114.499,Lower Bowery Hot Spring,Hailey,Hotspring,129,54'; - put '43.724,-115.604,Loftus Hot Spring,Hailey,Hotspring,129,54'; - put '44.676,-115.943,Gold Fork Hot Spring,Challis,Hotspring,127,53'; - put '44.044,-115.851,Donlay Ranch Hot Spring,Challis,Hotspring,131,55'; - put '44.264,-114.818,Basin Creek Hot Spring,Challis,Hotspring,133,56'; - put '44.652,-114.734,Owen Cabin Hot Spring,Challis,Hotspring,133,56'; - put '43.605,-115.664,Rattlesnake Hot Spring,Hailey,Hotspring,133,56'; - put '43.605,-114.948,Lightfoot Hot Springs,Hailey,Hotspring,133,56'; - put '45.788,-115.198,Red River Hot Springs,Elk City,Hotspring,131,55'; - put '44.632,-115.697,South Fork Plunge,Challis,Hotspring,129,54'; - put '44.853,-116.442,Starkey Hot Springs,Baker,Hotspring,131,55'; - put '42.692,-114.859,Hot Sulphur (Miracle Hot) Springs,Twin Falls,Hotspring,131,55'; - put '44.045,-115.842,Corder Hot Spring,Challis,Hotspring,131,55'; - put '44.247,-114.676,Robinson Bar Hot Springs,Challis,Hotspring,131,55'; - put '44.785,-114.855,Cox Hot Springs,Challis,Hotspring,131,55'; - put '43.637,-115.13,Willow Creek Hot Spring,Hailey,Hotspring,131,55'; - put '43.803,-115.401,Granite Creek Hot Spring,Hailey,Hotspring,131,55'; - put '43.129,-115.34,Coyote Hot Spring,Hailey,Hotspring,135,57'; - put '44.211,-116.71,Cove Creek Hot Spring,Baker,Hotspring,131,55'; - put '44.16,-115.167,Grandjean Hot Spring,Challis,Hotspring,H,H'; - put '43.755,-115.571,Ninemeyer Hot Springs,Hailey,Hotspring,169,76'; - put '43.701,-114.738,Big Smokey Hot Spring,Hailey,Hotspring,H,H'; - put '43.831,-115.192,Queens River Hot Spring,Hailey,Hotspring,H,H'; - put '43.817,-115.046,Leggit Creek Hot Spring,Hailey,Hotspring,H,H'; - put '43.718,-115.563,Basset Hot Spring,Hailey,Hotspring,H,H'; - put '43.588,-115.988,Mores Creek Hot Spring,Hailey,Hotspring,H,H'; - put '44.951,-114.704,Mormon Ranch Warm Spring,Challis,Hotspring,H,H'; - put '44.896,-114.563,Forge Creek Hot Springs,Challis,Hotspring,H,H'; - put '44.77,-115.663,Billy Hot Spring,Challis,Hotspring,H,H'; - put '44.628,-115.197,Sheepeater Hot Springs,Challis,Hotspring,H,H'; - put '44.585,-115.072,Sulphur Creek Hot Spring,Challis,Hotspring,H,H'; - put '44.554,-115.301,Sulphur Creek Hot Spring,Challis,Hotspring,H,H'; - put '42.107,-113.39,Blm Well (Frazier Hot Spring),Pocatello,Hotspring,203,95'; - put '44.4,-115.82,Goat Hot Springs,Challis,Hotspring,H,H'; - put '45.307,-114.338,Big Creek Hot Springs,Elk City,Hotspring,199,93'; - put '44.583,-116.112,Cascade Reservoir Hot Spring,Baker,Hotspring,H,H'; - put '45.17,-115.807,Secesh Hot Spring,Elk City,Hotspring,H,H'; - put '46.235,-114.707,Prospector Hot Springs,Hamilton,Hotspring,H,H'; - put '46.138,-115.09,Stuart Hot Springs,Hamilton,Hotspring,H,H'; - put '46.006,-115.021,Marten Hot Springs,Hamilton,Hotspring,H,H'; - put '42.374,-111.726,Mound Valley Warm Spring,Preston,Hotspring,W,W'; - put '43.255,-114.829,Mormon Reservoir Warm Spring,Hailey,Hotspring,W,W'; - put '44.639,-115.671,Warm Lake Springs,Challis,Hotspring,W,W'; - put '44.445,-115.239,Bear Valley Hot Spring,Challis,Hotspring,W,W'; - put '44.354,-117.071,Old Homestead Warm Spring,Baker,Hotspring,W,W'; - put '43.327,-113.918,Condie Hot Springs,Idaho Falls,Hotspring,124,51'; - put '43.038,-112.004,Alkali Flats Warm Spring,Idaho Falls,Hotspring,93,34'; - put '44.43,-115.762,Bull Creek Hot Springs,Challis,Hotspring,H,H'; - put '42.119,-111.928,Squaw Hot Springs,Preston,Hotspring,163,73'; - put '42.333,-111.716,Cleveland Hot Springs,Preston,Hotspring,151,66'; - put '43.671,-115.696,Twin Springs,Hailey,Hotspring,151,66'; - put '43.951,-116.353,Roystone Hot Springs,Boise,Hotspring,151,66'; - put '42.704,-114.856,Salmon Falls Hot Spring,Twin Falls,Hotspring,153,67'; - put '44.16,-115.177,Sacajawea Hot Springs,Challis,Hotspring,153,67'; - put '43.738,-115.583,Vaughn Hot Spring,Hailey,Hotspring,154,68'; - put '44.669,-116.305,Council Mtn Hot Springs,Baker,Hotspring,154,68'; - put '44.831,-115.215,Kwiskwis Hot Spring,Challis,Hotspring,156,69'; - put '43.684,-114.41,Guyer Hot Springs,Hailey,Hotspring,158,70'; - put '43.155,-115.518,Hot Springs,Hailey,Hotspring,158,70'; - put '44.586,-116.63,Lakey Hot Spring,Baker,Hotspring,158,70'; - put '42.333,-115.65,Indian Hot Springs,Twin Falls,Hotspring,160,71'; - put '42.637,-114.892,Poison Springs,Twin Falls,Hotspring,H,H'; - put '44.813,-115.123,Middle Fork Indian Creek Hot Sprin,Challis,Hotspring,162,72'; - put '44.072,-115.543,Kirkham Hot Springs,Challis,Hotspring,149,65'; - put '43.328,-114.399,Magic Hot Springs,Hailey,Hotspring,163,73'; - put '43.293,-114.908,Barrons Hot Spring,Hailey,Hotspring,167,75'; - put '44.154,-115.993,Warm Springs Creek Hot Springs,Challis,Hotspring,167,75'; - put '44.268,-114.748,Sunbeam Hot Springs,Challis,Hotspring,169,76'; - put '44.092,-116.052,Deer Hot Springs,Baker,Hotspring,176,80'; - put '43.563,-114.798,Worswick Hot Springs,Hailey,Hotspring,180,82'; - put '42.133,-111.928,Battle Creek Hot Springs,Preston,Hotspring,183,84'; - put '44.364,-115.856,Boiling Springs,Challis,Hotspring,185,85'; - put '44.157,-115.314,Bonneville Hot Springs,Challis,Hotspring,185,85'; - put '44.799,-115.129,Indian Creek Hot Spring,Challis,Hotspring,190,88'; - put '44.568,-115.695,Vulcan Hot Springs,Challis,Hotspring,190,88'; - put '44.306,-116.745,Crane Creek Hot Springs,Baker,Hotspring,198,92'; - put '44.416,-116.031,Cabarton Hot Spring,Baker,Hotspring,160,71'; - put '42.781,-111.983,Portneuf River Warm Spring,Preston,Hotspring,93,34'; - put '44.621,-115.985,Badley Warm Spring,Challis,Hotspring,100,38'; - put '45.201,-116.312,Boulder Creek Spring,Grangeville,Hotspring,82,28'; - put '42.24,-113.588,Sears Spring,Pocatello,Hotspring,84,29'; - put '44.257,-112.639,Warm Springs,Dubois,Hotspring,84,29'; - put '42.911,-111.556,Henry Warm Spring,Preston,Hotspring,86,30'; - put '43.021,-111.695,Wilson Lake Warm Spring,Driggs,Hotspring,86,30'; - put '44.495,-116.732,Keithly Warm Spring,Baker,Hotspring,86,30'; - put '42.655,-111.643,Steamboat Hot Spring,Preston,Hotspring,88,31'; - put '45.152,-116.296,Stinky Warm Spring,Grangeville,Hotspring,88,31'; - put '42.725,-112.872,Indian Springs,Pocatello,Hotspring,90,32'; - put '43.114,-112.167,Yandell Springs,Idaho Falls,Hotspring,90,32'; - put '44.64,-116.045,Arling Hot Spring,Baker,Hotspring,90,32'; - put '42.657,-111.604,Soda Springs,Preston,Hotspring,82,28'; - put '45.07,-115.826,Lick Creek Warm Spring,Elk City,Hotspring,91,33'; - put '42.337,-111.726,Treasureton Hot Springs,Preston,Hotspring,95,35'; - put '44.382,-114.088,Little Antelope Flat Warm Spring,Challis,Hotspring,93,34'; - put '43.21,-111.495,Brockman Creek Hot Spring,Driggs,Hotspring,95,35'; - put '44.398,-115.149,Cape Horn Warm Springs,Challis,Hotspring,95,35'; - put '42.337,-114.509,Nat-Soo-Pah Warm Spring,Twin Falls,Hotspring,97,36'; - put '44.9,-115.505,Hot Creek Warm Spring,Challis,Hotspring,97,36'; - put '42.405,-114.142,Artesian City Hot Springs,Twin Falls,Hotspring,99,37'; - put '42.762,-115.739,Indian Bathtub Hot Springs,Twin Falls,Hotspring,99,37'; - put '43.227,-111.109,Alpine Warm Spring,Driggs,Hotspring,99,37'; - put '42.545,-112.906,Rockland Warm Springs,Pocatello,Hotspring,100,38'; - put '43.805,-114.585,Russian John Hot Spring,Hailey,Hotspring,100,38'; - put '43.779,-114.539,Easley Hot Springs,Hailey,Hotspring,100,38'; - put '44.26,-114.838,Mormon Bend Hot Spring,Challis,Hotspring,100,38'; - put '44.64,-113.504,Big Eightmile Creek Warm Spring,Dubois,Hotspring,91,33'; - put '42.339,-112.436,Kent Warm Spring,Pocatello,Hotspring,75,24'; - put '42.957,-112.458,Tadpole Warm Spring,Pocatello,Hotspring,68,20'; - put '43.607,-111.189,Taylor Springs,Driggs,Hotspring,68,20'; - put '43.972,-116.325,Sweet Warm Spring,Boise,Hotspring,68,20'; - put '44.717,-115.703,Dollar Creek Warm Spring,Challis,Hotspring,68,20'; - put '42.625,-113.107,Lake Walcott Hot Spring,Pocatello,Hotspring,70,21'; - put '42.015,-114.237,Thoroughbred Warm Springs,Twin Falls,Hotspring,69,21'; - put '42.928,-111.592,Blackfoot Reservoir Warm Spring,Preston,Hotspring,72,22'; - put '42.286,-113.446,"Rice Spring, Ward Spring",Pocatello,Hotspring,72,22'; - put '42.085,-113.564,Grape Creek Warm Spring,Pocatello,Hotspring,72,22'; - put '43.66,-111.715,Elkhorn Warm Spring,Driggs,Hotspring,72,22'; - put '43.367,-113.884,Rush Warm Spring,Idaho Falls,Hotspring,72,22'; - put '44.306,-117.042,Weiser Warm Springs,Baker,Hotspring,72,22'; - put '45.344,-114.463,Owl Creek Hot Springs,Elk City,Hotspring,122,50'; - put '44.454,-112.696,Big Spring,Dubois,Hotspring,73,23'; - put '44.269,-113.449,Barney Hot Springs,Dubois,Hotspring,82,28'; - put '43.5,-115.308,Towne Creek Warm Spring,Hailey,Hotspring,75,24'; - put '43.161,-116.332,Thomas Flats Warm Spring,Boise,Hotspring,75,24'; - put '44.612,-113.363,Whittaker Warm Springs,Dubois,Hotspring,75,24'; - put '42.173,-112.239,Malad Warm Spring,Pocatello,Hotspring,77,25'; - put '42.156,-112.348,Pleasantview Warm Springs,Pocatello,Hotspring,77,25'; - put '42.025,-112.226,Prices Warm Spring,Pocatello,Hotspring,77,25'; - put '42.865,-116.368,Lower Birch Spring,Jordan Valley,Hotspring,77,25'; - put '43.423,-111.414,Fall Creek Mineral Springs,Driggs,Hotspring,77,25'; - put '42.986,-111.743,Blackfoot River Warm Spring,Preston,Hotspring,79,26'; - put '42.426,-111.378,Pescadero Warm Spring,Preston,Hotspring,79,26'; - put '44.091,-111.458,Ashton Warm Spring,Ashton,Hotspring,79,26'; - put '42.056,-112.246,Woodruff Hot Spring,Pocatello,Hotspring,81,27'; - put '43.831,-116.396,Highland Land Co Warm Spring,Boise,Hotspring,73,23'; - put '44.847,-115.696,Holdover Hot Spring,Challis,Hotspring,117,47'; - put '43.047,-114.929,Hot Sulphur Lake,Hailey,Hotspring,81,27'; - put '43.603,-115.07,Baumgartner Hot Spring,Hailey,Hotspring,111,44'; - put '44.465,-116.037,Belvidere Hot Spring,Baker,Hotspring,111,44'; - put '42.621,-112.008,Lava Hot Springs,Pocatello,Hotspring,113,45'; - put '43.823,-115.327,Weatherby Hot Spring,Hailey,Hotspring,113,45'; - put '43.335,-115.044,Wolf Hot Spring,Hailey,Hotspring,113,45'; - put '44.905,-113.929,Goldbug Hot Spring,Dubois,Hotspring,113,45'; - put '45.095,-113.836,Salmon Hot Spring,Dillon,Hotspring,113,45'; - put '45.277,-115.912,Burgdorf Hot Springs,Elk City,Hotspring,113,45'; - put '44.836,-114.79,Hospital Hot Spring,Challis,Hotspring,115,46'; - put '44.72,-114.016,Cronks Canyon Hot Spring,Challis,Hotspring,115,46'; - put '44.721,-115.207,Pistol Creek Hot Springs,Challis,Hotspring,115,46'; - put '43.791,-111.435,Pincock (Green Canyon) Hot Springs,Driggs,Hotspring,111,44'; - put '43.414,-116.707,Givens Hot Springs,Boise,Hotspring,117,47'; - put '45.503,-114.463,Horse Creek Hot Springs,Elk City,Hotspring,109,43'; - put '46.464,-115.035,Weir Creek Hot Springs,Hamilton,Hotspring,117,47'; - put '42.115,-111.264,Bear Lake Hot Springs,Preston,Hotspring,118,48'; - put '42.173,-113.861,Oakley Hot Spring,Pocatello,Hotspring,118,48'; - put '46.463,-114.872,Jerry Johnson Hot Springs,Hamilton,Hotspring,118,48'; - put '43.644,-111.687,Heise Hot Springs,Driggs,Hotspring,120,49'; - put '44.799,-114.806,Lower Loon Creek Hot Spring,Challis,Hotspring,120,49'; - put '44.253,-115.891,Rocky Canyon Hot Springs,Challis,Hotspring,120,49'; - put '46.316,-115.258,Stanley Hot Springs,Hamilton,Hotspring,120,49'; - put '43.779,-115.486,Brown Creek Hot Spring,Hailey,Hotspring,122,50'; - put '44.628,-114.601,Shower Bath Springs,Challis,Hotspring,122,50'; - put '44.171,-114.624,Slate Creek Hot Spring,Challis,Hotspring,122,50'; - put '44.392,-115.834,Ground Hog Hot Springs,Challis,Hotspring,100,38'; - put '42.797,-115.723,"Bat Hot Spring, Pence Hot Spring",Twin Falls,Hotspring,117,47'; - put '42.767,-115.725,Lower Indian Bathtub Hot Springs,Twin Falls,Hotspring,108,42'; - put '42.102,-113.632,Durfee Spring,Pocatello,Hotspring,102,39'; - put '44.33,-115.802,Silver Creek Hot Spring,Challis,Hotspring,102,39'; - put '42.447,-113.523,Marsh Creek Hot Spring,Pocatello,Hotspring,104,40'; - put '42.449,-113.511,Marsh Gully Hot Springs,Pocatello,Hotspring,106,41'; - put '42.798,-115.742,Bruneau Hot Spring,Twin Falls,Hotspring,106,41'; - put '43.576,-114.83,Preis Hot Spring,Hailey,Hotspring,106,41'; - put '43.677,-116.208,Terteling Hot Springs,Boise,Hotspring,106,41'; - put '44.254,-114.443,Sullivan Hot Springs,Challis,Hotspring,106,41'; - put '44.224,-114.929,Stanley Hot Spring,Challis,Hotspring,106,41'; - put '44.101,-114.865,Rosalys Warm Spring,Challis,Hotspring,106,41'; - put '44.06,-115.819,Danskin Creek Hot Spring,Challis,Hotspring,106,41'; - put '45.852,-114.937,Running Warm Springs,Elk City,Hotspring,106,41'; - put '43.363,-113.779,Milford Sweat Hot Spring,Idaho Falls,Hotspring,111,44'; - put '46.466,-114.939,Colgate Warm Springs,Hamilton,Hotspring,106,41'; - put '44.626,-115.749,Trail Creek Hot Spring,Challis,Hotspring,122,50'; - put '43.816,-115.863,Warm Springs,Hailey,Hotspring,108,42'; - put '43.76,-115.56,Pool Creek Hot Spring,Hailey,Hotspring,108,42'; - put '45.042,-114.616,Snowshoe Johnsons Hot Spring,Elk City,Hotspring,108,42'; - put '42.388,-112.085,Downata Hot Springs,Pocatello,Hotspring,109,43'; - put '42.013,-114.504,Magic Hot Springs,Twin Falls,Hotspring,109,43'; - put '42.779,-115.715,Buckaroo Hot Spring,Twin Falls,Hotspring,109,43'; - put '43.99,-114.8,Pierson Hot Springs,Hailey,Hotspring,109,43'; - put '43.038,-114.988,Tschanne Hot Spring,Hailey,Hotspring,109,43'; - put '44.523,-114.173,Beardsley Hot Springs,Challis,Hotspring,109,43'; - put '44.733,-115.018,Sunflower Flat Hot Spring,Challis,Hotspring,109,43'; - put '44.516,-115.295,Dagger Creek Hot Spring,Challis,Hotspring,110,43'; - put '44.971,-116.203,Krigbaum Hot Springs,Baker,Hotspring,109,43'; - put '45.416,-116.172,Riggins Hot Springs,Grangeville,Hotspring,106,41'; - put '42.735,-73.2,Sand Spring,Albany,Hotspring,75,24'; - put '46.106,-114.004,Sleeping Child Hot Springs,Hamilton,Hotspring,122,50'; - put '45.697,-114.365,Blue Joint Hot Springs 2,Elk City,Hotspring,84,29'; - put '44.769,-111.649,Sloan Cow Camp Spring,Ashton,Hotspring,86,30'; - put '47.632,-112.855,Medicine (Sun River) Springs,Choteau,Hotspring,86,30'; - put '45.75,-113.938,Gallogly Spring,Dillon,Hotspring,100,38'; - put '47.33,-114.789,Quinns Hot Springs,Wallace,Hotspring,109,43'; - put '45.171,-112.153,Puller Hot Springs,Dillon,Hotspring,111,44'; - put '46.728,-114.533,"Lolo Hot Springs, Granite Springs",Hamilton,Hotspring,111,44'; - put '45.337,-110.691,Chico Hot Springs,Bozeman,Hotspring,113,45'; - put '47.607,-114.663,Camas Hot Springs,Wallace,Hotspring,113,45'; - put '45.841,-114.038,Medicine Hot Springs,Elk City,Hotspring,117,47'; - put '45.458,-113.109,Elkhorn Hot Springs,Dillon,Hotspring,118,48'; - put '45.027,-112.844,Mcmenomey Ranch Spring,Dillon,Hotspring,68,20'; - put '45.792,-112.126,Renova Hot Springs,Dillon,Hotspring,122,50'; - put '44.701,-111.878,Staudenmeyer Springs,Ashton,Hotspring,82,28'; - put '45.602,-111.9,Potosi Warm Springs,Bozeman,Hotspring,124,51'; - put '45.575,-111.683,Norris Hot Springs,Bozeman,Hotspring,127,53'; - put '45.462,-112.475,New Biltmore Hot Springs,Dillon,Hotspring,127,53'; - put '45.66,-111.186,Bozeman Hot Springs,Bozeman,Hotspring,131,55'; - put '45.896,-112.233,Pipestone Hot Springs,Dillon,Hotspring,135,57'; - put '46.547,-110.903,White Sulphur Springs,White Sulphur,Hotspring,136,58'; - put '46.448,-111.982,Alhambra Hot Springs,White Sulphur,Hotspring,138,59'; - put '45.757,-110.256,Hunters Hot Springs,Bozeman,Hotspring,140,60'; - put '45.368,-113.403,Jardine Hot Spring,Dillon,Hotspring,140,60'; - put '46.596,-112.108,Broadwater (Helena) Hot Springs,Butte,Hotspring,151,66'; - put '44.984,-111.613,Wolf Creek Hot Springs,Ashton,Hotspring,154,68'; - put '45.685,-112.295,Silver Star Hot Springs,Dillon,Hotspring,163,73'; - put '45.59,-111.899,Potosi Hot Springs,Bozeman,Hotspring,122,50'; - put '45.105,-112.751,Browns Springs,Dillon,Hotspring,75,24'; - put '46.718,-113.306,Bearmouth Warm Spring 2,Butte,Hotspring,68,20'; - put '46.717,-113.32,Bearmouth Warm Spring 1,Butte,Hotspring,68,20'; - put '47.217,-109.471,Brooks Warm Spring,Lewistown,Hotspring,68,20'; - put '45.708,-110.976,Bridger Canyon Warm Spring,Bozeman,Hotspring,70,21'; - put '46.795,-108.883,Durfee Creek Springs,Roundup,Hotspring,70,21'; - put '46.704,-113.452,Nimrod Springs,Butte,Hotspring,70,21'; - put '47.876,-108.656,Landusky Springs,Lewistown,Hotspring,70,21'; - put '45.032,-110.667,Bear Creek Springs,Bozeman,Hotspring,72,22'; - put '45.111,-112.714,Lovells Hot Spring,Dillon,Hotspring,72,22'; - put '46.106,-112.903,Anaconda Hot Springs,Butte,Hotspring,72,22'; - put '45.235,-112.135,Trudau Warm Springs,Dillon,Hotspring,73,23'; - put '45.698,-114.382,Blue Joint Hot Spring 1,Elk City,Hotspring,84,29'; - put '45.037,-111.953,Vigilante Spring,Bozeman,Hotspring,75,24'; - put '45.608,-110.571,Carter Bridge Warm Springs,Bozeman,Hotspring,82,28'; - put '46.355,-111.565,Bedford Hot Springs,White Sulphur,Hotspring,74,24'; - put '45.553,-110.142,Anderson Springs,Bozeman,Hotspring,77,25'; - put '45.42,-112.692,Apex Warm Spring,Dillon,Hotspring,77,25'; - put '46.607,-112.776,Garrison Warm Springs,Butte,Hotspring,77,25'; - put '47.843,-108.598,The (Landusky) Plunge,Lewistown,Hotspring,77,25'; - put '44.785,-111.649,West Fork Swimming Hole,Ashton,Hotspring,79,26'; - put '46.61,-112.555,Avon Warm Spring,Butte,Hotspring,79,26'; - put '46.334,-112.886,Deerlodge Prison Ranch Springs,Butte,Hotspring,79,26'; - put '47.994,-108.445,Lodgepole (Big Warm) Springs,Lewistown,Hotspring,79,26'; - put '47.451,-114.648,Green Springs,Wallace,Hotspring,79,26'; - put '45.392,-112.452,Beaverhead Rock Spring,Dillon,Hotspring,81,27'; - put '44.704,-111.892,Andersons Pasture Springs,Ashton,Hotspring,82,28'; - put '47.971,-108.395,Little Warm Springs,Lewistown,Hotspring,73,23'; - put '46.198,-112.094,Boulder Hot Springs,Butte,Hotspring,169,76'; - put '46.178,-112.794,Warm Springs (State Hospital),Butte,Hotspring,172,78'; - put '45.367,-111.726,Ennis Hot Springs,Bozeman,Hotspring,181,83'; - put '46.044,-112.811,Gregson Hot Springs,Butte,Hotspring,158,70'; - put '45.09,-110.774,Laduke (Corwin) Hot Spring,Bozeman,Hotspring,154,68'; - put '35.897,-82.826,Hot Springs,Knoxville,Hotspring,108,42'; - put '32.644,-108.128,Apache Tejo Warm Spring,Silver City,Hotspring,97,36'; - put '33.135,-107.254,Truth Or Consequences,Tularosa,Hotspring,113,45'; - put '36.305,-106.053,Ojo Caliente (Arsenic Spring),Aztec,Hotspring,111,44'; - put '33.162,-108.209,Spring (Hot),Clifton,Hotspring,111,44'; - put '36.508,-105.722,Manby Hot Springs,Raton,Hotspring,100,38'; - put '35.849,-106.629,Spence Hot Springs,Albuquerque,Hotspring,100,38'; - put '35.972,-106.56,San Antonio Warm Spring,Albuquerque,Hotspring,101,38'; - put '35.82,-106.627,Mccauley Hot Springs,Albuquerque,Hotspring,99,37'; - put '35.793,-106.685,Soda Dam Hot Springs,Albuquerque,Hotspring,117,47'; - put '33.831,-108.8,(Upper) Frisco Hot Spring,Clifton,Hotspring,98,37'; - put '35.646,-106.888,Warm Springs,Albuquerque,Hotspring,129,54'; - put '36.324,-105.606,Ponce De Leon Springs,Raton,Hotspring,93,34'; - put '34.038,-106.94,"Socorro Spring, Sedillo Spring",Socorro,Hotspring,93,34'; - put '33.293,-108.282,"Spring Mfg Two, Spring Mfg Three",Clifton,Hotspring,99,37'; - put '35.592,-106.753,Indian Springs,Albuquerque,Hotspring,123,51'; - put '32.501,-106.926,Radium Springs,Las Cruces,Hotspring,127,53'; - put '33.274,-108.25,Spring Mfg Four,Clifton,Hotspring,93,34'; - put '35.938,-106.646,San Antonio Hot Spring,Albuquerque,Hotspring,129,54'; - put '33.244,-108.88,San Francisco Hot Springs,Clifton,Hotspring,120,49'; - put '32.748,-107.836,Mimbres Hot Springs,Las Cruces,Hotspring,136,58'; - put '35.653,-105.29,Montezuma Hot Springs,Santa Fe,Hotspring,138,59'; - put '33.233,-108.235,Spring (Hot),Clifton,Hotspring,149,65'; - put '33.199,-108.209,Gila Hot Springs,Clifton,Hotspring,151,66'; - put '33.108,-108.483,Turkey Creek Hot Spring,Clifton,Hotspring,165,74'; - put '35.772,-106.69,Jemez Springs,Albuquerque,Hotspring,169,76'; - put '35.908,-106.615,Sulphur Springs,Albuquerque,Hotspring,189,87'; - put '33.237,-108.88,Hot Springs,Clifton,Hotspring,H,H'; - put '32.562,-108.027,Kennecott Warm Springs,Silver City,Hotspring,W,W'; - put '32.554,-107.994,Faywood Hot Springs,Las Cruces,Hotspring,129,54'; - put '33.898,-108.501,Aragon Springs,Clifton,Hotspring,70,21'; - put '34.847,-107.091,Spring (Salt),Socorro,Hotspring,76,24'; - put '34.903,-107.085,El Ojo Escondido,Socorro,Hotspring,73,23'; - put '35.06,-107.133,Alamos Spring,Albuquerque,Hotspring,72,22'; - put '34.912,-108.951,Rainbow Spring,Saint Johns,Hotspring,71,22'; - put '34.698,-107.129,Spring,Socorro,Hotspring,71,22'; - put '32.455,-104.489,Indian Big Spring,Carlsbad,Hotspring,79,26'; - put '34.995,-106.454,Clear Water Spring,Socorro,Hotspring,69,21'; - put '32.821,-108.408,Ash Spring,Silver City,Hotspring,72,22'; - put '32.83,-109.047,Goat Camp Spring,Silver City,Hotspring,69,21'; - put '35.548,-106.827,San Ysidro Warm Springs,Albuquerque,Hotspring,68,20'; - put '34.116,-106.98,Ojitos Springs,Socorro,Hotspring,68,20'; - put '32.248,-104.411,Mosley Spring,Carlsbad,Hotspring,68,20'; - put '33.708,-109.025,Frieborn Canyon Spring,Clifton,Hotspring,92,33'; - put '33.192,-108.18,Lyons Hunting Lodge Hot Springs,Clifton,Hotspring,126,52'; - put '35.601,-106.86,Phillips Springs,Albuquerque,Hotspring,70,21'; - put '33.285,-108.262,Spring Mfg One,Clifton,Hotspring,88,31'; - put '33.306,-108.324,The Meadows Warm Spring,Clifton,Hotspring,91,33'; - put '34.049,-106.939,Cook Spring,Socorro,Hotspring,70,21'; - put '32.795,-107.276,Derry Warm Springs,Las Cruces,Hotspring,92,33'; - put '32.884,-108.358,Allen Springs,Silver City,Hotspring,78,26'; - put '33.279,-107.563,Warm Springs,Tularosa,Hotspring,87,31'; - put '32.606,-107.19,Souse Springs,Las Cruces,Hotspring,88,31'; - put '34.808,-107.091,Spring (Salt),Socorro,Hotspring,86,30'; - put '35.54,-106.854,San Ysidro Hot Springs,Albuquerque,Hotspring,85,29'; - put '36.368,-106.059,Statue Spring,Aztec,Hotspring,83,28'; - put '34.833,-107.091,Laguna Pueblo Seeps,Socorro,Hotspring,82,28'; - put '33.572,-107.593,Ojo Caliente,Tularosa,Hotspring,83,28'; - put '34.854,-107.088,Laguna Pueblo Springs,Socorro,Hotspring,80,27'; - put '32.843,-108.512,Mangas Springs,Silver City,Hotspring,81,27'; - put '34.769,-107.085,Spring (Salt),Socorro,Hotspring,78,26'; - put '34.032,-106.777,Ojo De Las Canas,Socorro,Hotspring,79,26'; - put '40.972,-119.007,Black Rock Hot Spring,Lovelock,Hotspring,136,58'; - put '38.899,-119.41,Nevada (Hinds) Hot Springs,Walker Lake,Hotspring,144,62'; - put '38.922,-118.198,Wedell Hot Springs,Walker Lake,Hotspring,144,62'; - put '41.183,-114.991,Hot Springs,Wells,Hotspring,142,61'; - put '38.437,-116.277,Hot Creek Valley Spring,Tonopah,Hotspring,142,61'; - put '41.788,-114.735,Mineral Hot Spring,Wells,Hotspring,140,60'; - put '37.825,-117.337,Alkali Hot Spring,Goldfield,Hotspring,140,60'; - put '41.412,-114.675,Wine Cup Ranch Springs,Wells,Hotspring,138,59'; - put '40.404,-116.517,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59'; - put '40.417,-116.507,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59'; - put '40.603,-116.463,Horseshoe Ranch Springs,Winnemucca,Hotspring,136,58'; - put '41.378,-119.182,Springs (Hot),Vya,Hotspring,136,58'; - put '39.883,-114.893,Cherry Creek Hot Springs,Ely,Hotspring,144,62'; - put '40.922,-117.108,Hot Pot (Blossom Hot Springs),Winnemucca,Hotspring,136,58'; - put '41.721,-118.505,Howard Hot Spring,Vya,Hotspring,135,57'; - put '41.421,-117.388,The Hot Springs,Mcdermitt,Hotspring,135,57'; - put '40.418,-117.415,Buffalo Springs,Winnemucca,Hotspring,162,72'; - put '39.031,-116.666,Dianas Punch Bowl,Millett,Hotspring,138,59'; - put '39.404,-116.347,Klobe (Bartholomae) Hot Spring,Millett,Hotspring,156,69'; - put '36.975,-116.721,Hicks Hot Springs,Death Valley,Hotspring,109,43'; - put '40.178,-117.496,Home Station Ranch Hot Spring,Winnemucca,Hotspring,135,57'; - put '39.797,-118.067,Dixie Hot Springs,Reno,Hotspring,162,72'; - put '39.904,-116.588,Walti Hot Springs,Millett,Hotspring,162,72'; - put '38.981,-119.833,Walleys Hot Springs,Walker Lake,Hotspring,160,71'; - put '38.464,-115.792,Chimney Warm Spring,Lund,Hotspring,160,71'; - put '39.328,-116.858,Spencer Hot Springs,Millett,Hotspring,162,72'; - put '41.108,-117.578,Hot Springs,Mcdermitt,Hotspring,158,70'; - put '36.002,-114.742,Spring,Las Vegas,Hotspring,145,63'; - put '41.576,-115.181,Hot Creek Springs,Wells,Hotspring,151,66'; - put '40.954,-117.488,Golconda Hot Spring (South),Winnemucca,Hotspring,151,66'; - put '40.22,-116.068,Bruffeys Hot Springs,Winnemucca,Hotspring,149,65'; - put '40.249,-115.409,Smith Ranch Springs,Elko,Hotspring,149,65'; - put '41.867,-114.692,San Jacinto Ranch Spring,Wells,Hotspring,148,64'; - put '40.765,-116.04,Hot Sulphur Springs,Winnemucca,Hotspring,147,64'; - put '38.188,-116.373,Warm Springs,Tonopah,Hotspring,145,63'; - put '41.567,-118.564,Dyke Hot Springs,Vya,Hotspring,158,70'; - put '38.365,-115.867,Abel Spring,Lund,Hotspring,115,46'; - put '41.929,-114.071,Nile Spring,Wells,Hotspring,109,43'; - put '39.193,-119.752,Carson Hot Springs,Reno,Hotspring,120,49'; - put '39.512,-119.907,Lawton Hot Springs,Reno,Hotspring,120,49'; - put '39.944,-119.509,Anaho Island Spring,Reno,Hotspring,120,49'; - put '37.761,-117.632,Silverpeak Hot Spring,Goldfield,Hotspring,118,48'; - put '37.621,-114.51,Caliente Hot Springs,Caliente,Hotspring,118,48'; - put '39.058,-119.742,Saratoga Hot Spring,Reno,Hotspring,122,50'; - put '39.308,-117.552,Hot Springs,Millett,Hotspring,115,46'; - put '40.673,-116.838,Hot Springs,Winnemucca,Hotspring,122,50'; - put '39.08,-116.639,Potts Ranch Hot Springs,Millett,Hotspring,113,45'; - put '38.388,-115.866,Coyote Hole Spring,Lund,Hotspring,113,45'; - put '41.753,-118.841,Warm Springs,Vya,Hotspring,112,44'; - put '41.386,-114.165,Spring (Hot),Wells,Hotspring,111,44'; - put '40.961,-117.494,Golconda Hot Spring (North),Winnemucca,Hotspring,165,74'; - put '40.313,-117.07,Mound Springs,Winnemucca,Hotspring,109,43'; - put '40.585,-115.285,Sulphur Hot Springs,Elko,Hotspring,205,96'; - put '39.059,-119.815,Hobo Hot Springs,Reno,Hotspring,114,46'; - put '40.191,-117.107,Hot Springs,Winnemucca,Hotspring,127,53'; - put '40.819,-115.777,Hot Hole,Elko,Hotspring,133,56'; - put '39.286,-119.84,Bowers Mansion Hot Spring,Reno,Hotspring,133,56'; - put '41.809,-118.861,Painted Hills Mine,Vya,Hotspring,131,55'; - put '41.925,-118.805,Bog Hot Springs,Vya,Hotspring,131,55'; - put '41.647,-115.775,Wild Horse Hot Springs,Wells,Hotspring,129,54'; - put '40.183,-117.102,Hot Springs Ranch,Winnemucca,Hotspring,129,54'; - put '40.08,-117.604,Mccoy Springs,Winnemucca,Hotspring,120,49'; - put '41.353,-119.216,Spring (Hot),Vya,Hotspring,127,53'; - put '41.357,-119.188,Springs (Hot),Vya,Hotspring,133,56'; - put '40.198,-117.103,Hot Springs,Winnemucca,Hotspring,127,53'; - put '39.42,-119.738,Dimonte Spring,Reno,Hotspring,127,53'; - put '38.952,-115.23,Williams Hot Spring,Lund,Hotspring,127,53'; - put '41.261,-115.305,Hot Springs,Wells,Hotspring,126,52'; - put '39.041,-116.663,Hot Spring,Millett,Hotspring,124,51'; - put '41.365,-119.221,Spring (Hot),Vya,Hotspring,122,50'; - put '41.159,-114.986,"Threemile Spring, Sulphur Hot Spr",Wells,Hotspring,122,50'; - put '41.339,-119.192,Springs (Hot),Vya,Hotspring,127,53'; - put '39.893,-116.649,Little Hot Springs,Millett,Hotspring,H,H'; - put '39.787,-119.011,Bradys Hot Springs,Reno,Hotspring,209,98'; - put '41.175,-115.278,Hot Spring,Wells,Hotspring,H,H'; - put '41.145,-114.994,Hot Spring,Wells,Hotspring,H,H'; - put '40.864,-117.349,Sulphur Spring,Winnemucca,Hotspring,H,H'; - put '39.733,-119.039,Eagle Salt Works Spring,Reno,Hotspring,H,H'; - put '39.281,-118.42,Sand Springs,Reno,Hotspring,H,H'; - put '38.81,-116.397,Fish Springs,Tonopah,Hotspring,W,W'; - put '39.559,-117.427,Petersons Mill Hot Spring,Millett,Hotspring,H,H'; - put '38.339,-116.662,Warm Spring,Tonopah,Hotspring,W,W'; - put '38.859,-119.175,Hot Spring,Walker Lake,Hotspring,H,H'; - put '39.995,-117.854,Senator Fumaroles,Millett,Hotspring,B,B'; - put '39.565,-118.856,(Soda Lake Area),Reno,Hotspring,210,99'; - put '40.141,-119.687,The Needle Rocks Hot Springs,Lovelock,Hotspring,208,98'; - put '40.146,-119.673,The Needle Rocks Hot Spring,Lovelock,Hotspring,208,98'; - put '40.662,-119.365,Great Boiling Spring (Gerlach),Lovelock,Hotspring,208,98'; - put '39.388,-119.743,Steamboat Springs,Reno,Hotspring,205,96'; - put '39.866,-118.017,Dixie Comstock Mine,Reno,Hotspring,H,H'; - put '40.746,-116.689,White House Spring,Winnemucca,Hotspring,W,W'; - put '39.98,-119.502,Pyramid Island Hot Spring,Reno,Hotspring,.,.'; - put '41.934,-118.808,Warm Springs,Vya,Hotspring,W,W'; - put '41.385,-116.058,Petaini Springs,Mcdermitt,Hotspring,W,W'; - put '41.064,-115.389,Warm Springs,Wells,Hotspring,W,W'; - put '41.066,-114.99,Spring,Wells,Hotspring,W,W'; - put '41.355,-114.133,Warm Springs,Wells,Hotspring,W,W'; - put '41.148,-116.733,Hot Lake,Mcdermitt,Hotspring,H,H'; - put '40.684,-116.153,Ellison Ranch Warm Spring,Winnemucca,Hotspring,W,W'; - put '40.604,-117.648,Leach Hot Springs,Winnemucca,Hotspring,207,97'; - put '40.751,-115.035,Warm Springs,Elko,Hotspring,W,W'; - put '40.782,-115.363,Warm Spring,Elko,Hotspring,W,W'; - put '39.529,-116.388,Warm Spring,Millett,Hotspring,W,W'; - put '39.072,-115.635,Big Blue Spring,Ely,Hotspring,W,W'; - put '38.95,-119.388,Spring,Walker Lake,Hotspring,W,W'; - put '38.965,-118.689,Double Spring,Walker Lake,Hotspring,W,W'; - put '38.458,-117.303,Indian Springs,Tonopah,Hotspring,W,W'; - put '40.592,-116.157,Raine Ranch Springs,Winnemucca,Hotspring,W,W'; - put '39.941,-116.681,Hot Springs,Millett,Hotspring,180,82'; - put '40.567,-116.588,Beowawe Hot Springs (The Geysers),Winnemucca,Hotspring,208,98'; - put '40.761,-117.492,Hot Springs,Winnemucca,Hotspring,185,85'; - put '40.653,-119.378,Mud Springs,Lovelock,Hotspring,184,84'; - put '38.768,-119.174,Wilson Hot Spring,Walker Lake,Hotspring,183,84'; - put '41.921,-118.709,Baltazor Hot Spring,Vya,Hotspring,181,83'; - put '40.857,-119.328,Fly Ranch (Wards) Hot Springs,Lovelock,Hotspring,180,82'; - put '39.597,-119.11,Patua Hot Springs (Fernley),Reno,Hotspring,187,86'; - put '39.028,-117.136,Mcleod Ranch Hot Spring,Millett,Hotspring,180,82'; - put '40.316,-116.433,Hot Spring,Winnemucca,Hotspring,186,86'; - put '38.521,-116.365,Hot Creek Ranch Hot Spring,Tonopah,Hotspring,180,82'; - put '41.051,-119.028,Double Hot Springs,Vya,Hotspring,178,81'; - put '40.003,-117.718,Hyder Hot Springs,Winnemucca,Hotspring,176,80'; - put '39.665,-114.807,Monte Neva Hot Springs,Ely,Hotspring,176,80'; - put '40.368,-117.327,Buffalo Valley Hot Springs,Winnemucca,Hotspring,174,79'; - put '40.699,-116.133,Hot Springs (Carlin),Winnemucca,Hotspring,174,79'; - put '41.052,-118.717,Macfarlane Hot Spring,Vya,Hotspring,170,77'; - put '39.342,-118.578,Borax Spring,Reno,Hotspring,180,82'; - put '39.484,-119.804,Moana Springs,Reno,Hotspring,199,93'; - put '41.243,-114.947,Twelvemile Spring,Wells,Hotspring,102,39'; - put '39.38,-119.74,Steamboat Springs,Reno,Hotspring,205,96'; - put '39.558,-116.36,Bartine Hot Springs,Millett,Hotspring,108,42'; - put '39.954,-117.917,Fumaroles,Millett,Hotspring,204,96'; - put '40.389,-119.402,Hot Seeps (San Emidio Desert),Lovelock,Hotspring,203,95'; - put '38.822,-117.183,Darroughs Hot Springs,Tonopah,Hotspring,203,95'; - put '40.088,-117.725,Sou (Seven Devils) Hot Springs,Winnemucca,Hotspring,185,85'; - put '41.363,-118.788,Pinto Hot Springs,Vya,Hotspring,199,93'; - put '40.408,-117.883,Kyle Hot Springs,Winnemucca,Hotspring,171,77'; - put '41.357,-118.809,West Pinto Hot Spring,Vya,Hotspring,198,92'; - put '39.316,-117.549,Hot Springs,Millett,Hotspring,198,92'; - put '41.468,-116.15,Hot Sulphur Springs (Tuscarora),Mcdermitt,Hotspring,194,90'; - put '40.813,-115.778,Elko Hot Spring,Elko,Hotspring,190,88'; - put '39.208,-118.723,"Lee Hot Springs, Allen Springs",Reno,Hotspring,190,88'; - put '40.262,-119.379,Boiling Springs,Lovelock,Hotspring,187,86'; - put '40.77,-119.113,Butte Springs (Trego Hot Springs),Lovelock,Hotspring,187,86'; - put '39.161,-119.183,Wabuska Hot Springs,Reno,Hotspring,201,94'; - put '39.814,-115.612,Giocoecha Warm Springs,Ely,Hotspring,76,24'; - put '36.389,-114.433,Blue Point Spring,Las Vegas,Hotspring,82,28'; - put '37.016,-117.211,Seep,Goldfield,Hotspring,77,25'; - put '37.751,-116.274,Cedar Spring,Goldfield,Hotspring,77,25'; - put '37.896,-114.227,Flatnose Ranch Spring,Caliente,Hotspring,77,25'; - put '36.207,-115.983,Pahrump (Bennetts) Spring,Las Vegas,Hotspring,77,25'; - put '41.775,-115.921,Rizzi Ranch Hot Spring,Wells,Hotspring,106,41'; - put '35.944,-114.731,Hot Spring,Kingman,Hotspring,78,26'; - put '41.884,-114.117,Gambles Hole,Wells,Hotspring,104,40'; - put '36.565,-115.671,Indian Springs,Las Vegas,Hotspring,78,26'; - put '39.547,-114.915,Campbell Ranch Springs,Ely,Hotspring,76,24'; - put '38.423,-115.022,Flag Springs,Lund,Hotspring,75,24'; - put '38.44,-115.011,Butterfield Springs,Lund,Hotspring,75,24'; - put '37.997,-118.039,Fish Spring,Mariposa,Hotspring,75,24'; - put '37.029,-116.719,Springs,Goldfield,Hotspring,75,24'; - put '36.426,-116.411,Ash Tree Spring,Death Valley,Hotspring,75,24'; - put '36.033,-115.888,Browns Spring,Las Vegas,Hotspring,75,24'; - put '41.322,-119.206,Springs,Vya,Hotspring,75,24'; - put '41.706,-118.261,Ninemile Springs,Vya,Hotspring,79,26'; - put '35.964,-114.743,Hot Spring,Kingman,Hotspring,82,28'; - put '41.763,-118.279,Fivemile Spring,Vya,Hotspring,81,27'; - put '39.457,-119.722,Huffaker Springs,Reno,Hotspring,81,27'; - put '38.992,-117.042,Charnock (Big Blue) Springs,Tonopah,Hotspring,80,27'; - put '36.402,-116.302,Davis Ranch Springs,Death Valley,Hotspring,81,27'; - put '36.45,-116.313,Spring,Death Valley,Hotspring,81,27'; - put '39.792,-114.692,Lower Shellbourne Spring,Ely,Hotspring,77,25'; - put '41.338,-119.168,Springs,Vya,Hotspring,79,26'; - put '41.022,-119.275,Caine Spring,Vya,Hotspring,73,23'; - put '41.05,-117.1,Hot Springs Ranch Springs,Mcdermitt,Hotspring,79,26'; - put '40.079,-116.035,Flynn Ranch Springs,Winnemucca,Hotspring,78,26'; - put '40.325,-116.058,Hot Springs,Winnemucca,Hotspring,79,26'; - put '36.414,-116.292,Spring,Death Valley,Hotspring,79,26'; - put '36.173,-115.191,Las Vegas Springs,Las Vegas,Hotspring,79,26'; - put '36.174,-115.479,White Rock Spring,Las Vegas,Hotspring,78,26'; - put '36.565,-115.623,Spring,Las Vegas,Hotspring,79,26'; - put '36.491,-116.342,"Fairbanks Spring, Soda Spring",Death Valley,Hotspring,81,27'; - put '38.654,-114.633,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '36.363,-116.271,Bole Spring,Death Valley,Hotspring,72,22'; - put '36.999,-116.706,Spring,Death Valley,Hotspring,72,22'; - put '36.942,-115.425,Ash Creek Spring,Las Vegas,Hotspring,72,22'; - put '38.796,-119.65,Doud Springs,Walker Lake,Hotspring,70,21'; - put '38.622,-115.047,Emigrant Springs,Lund,Hotspring,70,21'; - put '38.927,-115.082,Preston Springs,Lund,Hotspring,70,21'; - put '36.147,-115.893,Manse Ranch Spring,Las Vegas,Hotspring,75,24'; - put '38.645,-114.632,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '38.574,-115.522,Tom Spring,Lund,Hotspring,72,22'; - put '38.671,-114.628,Geyser Ranch Springs,Lund,Hotspring,70,21'; - put '37.783,-114.528,Bennett Springs,Caliente,Hotspring,70,21'; - put '37.86,-114.321,Delmues Springs,Caliente,Hotspring,70,21'; - put '36.408,-116.313,Davis Ranch Spring,Death Valley,Hotspring,70,21'; - put '36.567,-114.446,Seep,Las Vegas,Hotspring,70,21'; - put '41.369,-114.187,Gamble Spring,Wells,Hotspring,69,20'; - put '39.901,-115.868,Thompson Ranch Spring,Ely,Hotspring,68,20'; - put '38.633,-114.638,Wambolt Springs,Lund,Hotspring,70,21'; - put '37.906,-118.171,Sand Spring,Mariposa,Hotspring,74,23'; - put '36.486,-114.329,Springs,Las Vegas,Hotspring,77,25'; - put '41.354,-119.116,Mustang Springs,Vya,Hotspring,73,23'; - put '41.746,-119.791,Warm Springs,Vya,Hotspring,73,23'; - put '41.258,-118.937,Cane Springs,Vya,Hotspring,74,23'; - put '40.103,-119.884,Fish Springs,Lovelock,Hotspring,73,23'; - put '39.853,-119.719,Spring,Reno,Hotspring,73,23'; - put '39.832,-116.069,Sulphur Spring,Millett,Hotspring,74,23'; - put '36.363,-116.263,Spring,Death Valley,Hotspring,72,22'; - put '38.554,-115.531,Kate Spring,Lund,Hotspring,73,23'; - put '37.074,-116.691,Spring,Goldfield,Hotspring,72,22'; - put '37.979,-117.993,Gap Spring,Goldfield,Hotspring,73,23'; - put '41.591,-119.862,Twin (Vya) Spring,Vya,Hotspring,71,22'; - put '40.763,-119.172,Coyote Spring,Lovelock,Hotspring,72,22'; - put '40.127,-116.884,Springs,Winnemucca,Hotspring,72,22'; - put '40.187,-116.805,Spring,Winnemucca,Hotspring,72,22'; - put '40.967,-114.515,Johnson Ranch Springs,Elko,Hotspring,72,22'; - put '36.205,-115.141,Kyle Spring,Las Vegas,Hotspring,75,24'; - put '39.8,-114.653,Upper Shellbourne Spring,Ely,Hotspring,74,23'; - put '36.428,-116.303,Button Springs,Death Valley,Hotspring,93,34'; - put '38.383,-115.153,Hot Creek Ranch Spring,Lund,Hotspring,90,32'; - put '39.283,-114.866,Lackawanna Hot Springs,Ely,Hotspring,95,35'; - put '38.532,-116.465,Upper Warm Spring,Tonopah,Hotspring,95,35'; - put '38.823,-116.717,South Mosquito Creek Ranch Springs,Tonopah,Hotspring,95,35'; - put '40.829,-117.306,Brooks Spring,Winnemucca,Hotspring,93,34'; - put '40.992,-117.763,Spring,Winnemucca,Hotspring,93,34'; - put '41.971,-114.574,Warm Springs,Wells,Hotspring,95,35'; - put '38.95,-115.7,Big Warm Spring,Lund,Hotspring,93,34'; - put '37.463,-115.192,Ash Springs,Caliente,Hotspring,97,36'; - put '36.464,-116.319,Parent Springs,Death Valley,Hotspring,93,34'; - put '38.352,-115.181,Moon River Spring,Lund,Hotspring,92,33'; - put '36.402,-116.274,"Point of Rocks Springs, King Sprin",Death Valley,Hotspring,91,33'; - put '36.421,-116.322,Crystal Pool,Death Valley,Hotspring,91,33'; - put '36.425,-116.291,Devils Hole,Death Valley,Hotspring,92,33'; - put '39.068,-119.786,Springs,Reno,Hotspring,90,32'; - put '38.954,-117.049,Big Blue (A) Spring,Tonopah,Hotspring,90,32'; - put '40.087,-114.647,Collar And Elbow Spring,Elko,Hotspring,93,34'; - put '36.378,-114.443,Rogers Spring,Las Vegas,Hotspring,82,28'; - put '39.943,-116.073,Shipley Hot Spring,Millett,Hotspring,106,41'; - put '38.698,-116.435,"Upper Warm Spring, Warm Spring",Tonopah,Hotspring,106,41'; - put '41.53,-118.57,Spring,Vya,Hotspring,104,40'; - put '41.877,-115.628,Rowland Hot Springs,Wells,Hotspring,104,40'; - put '40.035,-117.604,Lower Ranch Hot Springs,Winnemucca,Hotspring,104,40'; - put '40.187,-116.79,Chillis Hot Spring,Winnemucca,Hotspring,102,39'; - put '39.988,-116.044,Siri Ranch Spring,Millett,Hotspring,95,35'; - put '39.421,-119.758,Zolezzi Spring,Reno,Hotspring,102,39'; - put '38.531,-116.405,Old Dugan Ranch Hot Springs,Tonopah,Hotspring,102,39'; - put '36.968,-116.723,Burrell Hot Spring,Death Valley,Hotspring,102,39'; - put '38.343,-118.103,Soda Springs,Walker Lake,Hotspring,100,38'; - put '38.556,-115.767,"Lockes Big Spring, Hay Corral Spr",Lund,Hotspring,100,38'; - put '38.594,-115.138,Moorman Spring,Lund,Hotspring,100,38'; - put '38.398,-115.862,Storm Spring,Lund,Hotspring,99,37'; - put '41.19,-115.287,Hot Spring,Wells,Hotspring,97,36'; - put '37.822,-117.48,Pearl Hot Springs,Goldfield,Hotspring,97,36'; - put '39.159,-119.737,Nevada State Prison Spring,Reno,Hotspring,75,24'; - put '40.025,-117.646,Spring,Winnemucca,Hotspring,83,28'; - put '40.83,-119.538,Springs,Lovelock,Hotspring,84,29'; - put '39.442,-119.743,Double Diamond Spring,Reno,Hotspring,84,29'; - put '39.413,-114.779,Mcgill Spring,Ely,Hotspring,84,29'; - put '39.458,-114.756,Schoolhouse Spring,Ely,Hotspring,84,29'; - put '36.375,-116.274,Big (Ash Meadows) Spring,Death Valley,Hotspring,83,28'; - put '38.292,-114.272,Hammond Ranch Spring,Lund,Hotspring,84,29'; - put '41.398,-119.165,Spring,Vya,Hotspring,84,29'; - put '41.732,-119.785,Seeps (Hills Warm Spring),Vya,Hotspring,83,28'; - put '38.563,-115.528,Blue Eagle Springs,Lund,Hotspring,84,29'; - put '40.873,-117.937,Rose Creek Spring,Winnemucca,Hotspring,83,28'; - put '39.917,-114.667,Spring,Ely,Hotspring,83,28'; - put '36.39,-116.278,Jack Rabbit Spring,Death Valley,Hotspring,82,28'; - put '36.437,-116.206,Spring,Death Valley,Hotspring,82,28'; - put '38.937,-115.695,Little Warm Spring,Lund,Hotspring,90,32'; - put '36.479,-116.326,Rogers Spring,Death Valley,Hotspring,82,28'; - put '40.29,-116.049,Carlotti Ranch Springs,Winnemucca,Hotspring,102,39'; - put '36.468,-116.325,Longstreet Spring,Death Valley,Hotspring,82,28'; - put '36.722,-114.716,Muddy Spring,Las Vegas,Hotspring,90,32'; - put '37.532,-115.233,Crystal Springs,Caliente,Hotspring,90,32'; - put '37.598,-115.215,Hiko Spring,Caliente,Hotspring,90,32'; - put '36.404,-116.383,Spring,Death Valley,Hotspring,90,32'; - put '37.996,-116.389,Reveille Mill Spring,Goldfield,Hotspring,84,29'; - put '36.71,-114.714,Moapa Warm Springs,Las Vegas,Hotspring,90,32'; - put '35.982,-114.748,Hot Springs,Kingman,Hotspring,86,30'; - put '40.929,-116.895,Izzenhood Ranch Springs,Winnemucca,Hotspring,88,31'; - put '37.807,-114.38,Panaca Spring,Caliente,Hotspring,88,31'; - put '36.942,-116.729,Spring,Death Valley,Hotspring,88,31'; - put '41.98,-114.376,Hot Spring,Wells,Hotspring,86,30'; - put '36.433,-116.308,Scruggs Springs,Death Valley,Hotspring,86,30'; - put '40.952,-114.751,Ralphs Warm Springs,Elko,Hotspring,86,30'; - put '39.526,-118.876,Soda Lake,Reno,Hotspring,86,30'; - put '38.027,-116.683,Spring,Tonopah,Hotspring,86,30'; - put '37.741,-115.753,Sand Spring,Caliente,Hotspring,86,30'; - put '36.918,-116.744,Beatty Municipal Spring,Death Valley,Hotspring,88,31'; - put '38.255,-116.829,Saulsbury Warm Spring,Tonopah,Hotspring,86,30'; - put '42.48,-73.37,Lebanon Spring,Albany,Hotspring,72,22'; - put '44.241,-122.058,Bigelow Hot Springs,Salem,Hotspring,142,61'; - put '44.862,-121.201,Kahneeta Hot Springs,Bend,Hotspring,126,52'; - put '44.927,-117.939,Radium Hot Springs,Baker,Hotspring,135,57'; - put '44.354,-118.574,Blue Mountain Hot Springs,Canyon City,Hotspring,136,58'; - put '44.936,-122.173,Bagby Hot Springs,Salem,Hotspring,136,58'; - put '43.944,-118.136,Beulah Hot Springs,Burns,Hotspring,140,60'; - put '43.763,-117.156,Mitchell Butte Hot Spring,Boise,Hotspring,144,62'; - put '42.116,-121.287,Oregon Hot Springs (Big Hot Spring,Klamath Falls,Hotspring,142,61'; - put '45.151,-118.659,Lehman Springs,Pendleton,Hotspring,142,61'; - put '43.719,-121.209,East Lake Hot Springs,Crescent,Hotspring,144,62'; - put '43.469,-118.202,Luce Hot Springs,Burns,Hotspring,145,63'; - put '45.018,-117.625,Medical Hot Springs,Grangeville,Hotspring,140,60'; - put '44.867,-121.228,Springs,Bend,Hotspring,125,52'; - put '42.188,-118.383,Flagstaff Butte Hot Spring,Adel,Hotspring,126,52'; - put '44.451,-119.105,Mount Vernon Hot Springs,Canyon City,Hotspring,121,49'; - put '42.977,-117.061,Canters Hot Spring,Jordan Valley,Hotspring,120,49'; - put '43.294,-122.367,Umpqua Hot Springs,Roseburg,Hotspring,117,47'; - put '44.002,-119.647,Weberg Hot Spring,Canyon City,Hotspring,115,46'; - put '43.739,-117.178,Deer Butte Hot Spring,Boise,Hotspring,115,46'; - put '43.795,-117.958,Jonesboro Warm Spring,Boise,Hotspring,112,45'; - put '42.075,-119.927,Hallinan Spring,Adel,Hotspring,113,45'; - put '42.297,-119.776,Fisher Hot Springs,Adel,Hotspring,154,68'; - put '45.013,-117.885,Kropp Hot Spring,Grangeville,Hotspring,109,43'; - put '42.221,-120.368,Hunters Hot Springs,Klamath Falls,Hotspring,205,96'; - put '44.083,-122.233,Cougar Reservoir Hot Springs,Salem,Hotspring,111,44'; - put '44.023,-117.46,Neal Hot Springs,Baker,Hotspring,189,87'; - put '42.431,-121.963,Eagle Point Spring,Klamath Falls,Hotspring,95,35'; - put '43.689,-122.372,Kitson Hot Springs,Roseburg,Hotspring,109,43'; - put '44.813,-117.765,Spring (Hot),Baker,Hotspring,W,W'; - put '43.776,-118.047,Warm Spring,Burns,Hotspring,W,W'; - put '43.793,-118.472,Sitz Warm Spring,Burns,Hotspring,W,W'; - put '43.86,-118.288,Altnow Hot Spring,Burns,Hotspring,W,W'; - put '43.893,-117.596,Springs,Boise,Hotspring,W,W'; - put '45.206,-117.912,Union Station Hot Springs,Grangeville,Hotspring,H,H'; - put '44.208,-117.455,Jamieson Hot Springs,Baker,Hotspring,H,H'; - put '42.338,-118.602,Hot Springs,Adel,Hotspring,207,97'; - put '44.782,-121.975,Breitenbush Hot Springs,Bend,Hotspring,198,92'; - put '42.219,-119.877,Warner Valley Ranch,Adel,Hotspring,198,92'; - put '42.156,-120.345,Barry Ranch Hot Springs,Klamath Falls,Hotspring,190,88'; - put '44.193,-122.049,Belknap Springs,Salem,Hotspring,160,71'; - put '45.021,-122.009,Austin Hot Springs,Vancouver,Hotspring,186,86'; - put '42.676,-118.344,Mickey Springs,Adel,Hotspring,187,86'; - put '44.153,-122.098,Foley Springs,Salem,Hotspring,178,81'; - put '45.244,-117.958,Hot Lake Springs,Grangeville,Hotspring,176,80'; - put '42.544,-118.533,Alvord Hot Springs,Adel,Hotspring,174,79'; - put '43.441,-118.638,Crane Hot Springs,Burns,Hotspring,172,78'; - put '42.226,-119.881,Crump Geyser (Crump Spring),Adel,Hotspring,172,78'; - put '43.727,-117.203,Snively Hot Spring,Boise,Hotspring,170,77'; - put '42.174,-121.615,Olene Gap Hot Springs,Klamath Falls,Hotspring,165,74'; - put '43.708,-122.288,Mccredie Springs,Roseburg,Hotspring,163,73'; - put '43.982,-117.233,Vale Hot Springs,Boise,Hotspring,163,73'; - put '42.162,-120.344,Leithead Hot Spring,Klamath Falls,Hotspring,162,72'; - put '45.372,-121.697,Mount Hood Fumaroles,The Dalles,Hotspring,194,90'; - put '43.264,-119.015,Dunn Spring,Burns,Hotspring,70,21'; - put '42.873,-122.167,Annie Spring,Medford,Hotspring,77,25'; - put '42.133,-121.219,Wilkersons Hot Spring,Klamath Falls,Hotspring,76,24'; - put '43.272,-119.293,Basque Spring,Burns,Hotspring,74,23'; - put '43.276,-119.34,Double O Spring,Burns,Hotspring,74,23'; - put '44.073,-119.427,Brisbois Ranch Springs,Canyon City,Hotspring,72,22'; - put '43.265,-119.276,Johnson Spring,Burns,Hotspring,72,22'; - put '43.281,-119.311,Double O Barnyard Spring,Burns,Hotspring,72,22'; - put '43.501,-119.091,Roadland Spring,Burns,Hotspring,72,22'; - put '43.529,-119.081,Goodman Spring,Burns,Hotspring,72,22'; - put '43.703,-117.19,South Black Willow Spring,Boise,Hotspring,71,22'; - put '42.307,-119.875,Moss Ranch Spring,Adel,Hotspring,72,22'; - put '43.758,-118.067,Juntura Warm Spring 1,Burns,Hotspring,77,25'; - put '43.732,-121.252,Paulina Springs,Crescent,Hotspring,70,21'; - put '42.176,-121.828,Howard Holiday,Klamath Falls,Hotspring,77,25'; - put '43.477,-119.075,Baker Spring,Burns,Hotspring,70,21'; - put '42.178,-121.801,Hardboard Spring,Klamath Falls,Hotspring,70,21'; - put '42.325,-120.327,White Rock Ranch Hot Spring,Klamath Falls,Hotspring,71,21'; - put '43.252,-119.258,Hughet Spring,Burns,Hotspring,68,20'; - put '42.38,-120.33,Bean Hot Spring,Klamath Falls,Hotspring,69,20'; - put '42.933,-120.642,Lost Cabin Spring,Klamath Falls,Hotspring,68,20'; - put '42.998,-120.725,Buckhorn Creek Springs,Klamath Falls,Hotspring,68,20'; - put '42.688,-117.905,Tudors Spring,Jordan Valley,Hotspring,68,20'; - put '42.756,-117.55,Scott Spring,Jordan Valley,Hotspring,68,20'; - put '42.725,-120.646,Summer Lake Hot Spring,Klamath Falls,Hotspring,109,43'; - put '43.757,-118.092,Juntura Warm Spring 2,Burns,Hotspring,95,35'; - put '44.374,-118.738,Limekiln Hot Spring,Canyon City,Hotspring,70,21'; - put '42.221,-122.742,Jackson Hot Springs,Medford,Hotspring,95,35'; - put '44.892,-119.141,Ritter Hot Springs,Canyon City,Hotspring,106,41'; - put '43.808,-122.309,Wall Creek Warm Springs,Roseburg,Hotspring,106,41'; - put '43.395,-118.308,Springs (Hot),Burns,Hotspring,106,41'; - put '43.302,-117.383,Hot Spring,Boise,Hotspring,106,41'; - put '44.28,-118.956,Joaquin Miller Hot Springs,Canyon City,Hotspring,104,40'; - put '42.501,-119.693,Antelope Hot Springs,Adel,Hotspring,104,40'; - put '45.129,-118.738,Hidaway Springs,Pendleton,Hotspring,100,38'; - put '44.975,-118.044,Fisher Hot Springs,Canyon City,Hotspring,99,37'; - put '44.033,-117.449,Bully Creek Spring,Baker,Hotspring,99,37'; - put '42.93,-120.798,Pardon Warm Spring,Klamath Falls,Hotspring,76,24'; - put '42.327,-118.602,Borax Lake (Hot Lake),Adel,Hotspring,97,36'; - put '42.161,-121.627,Crystal Spring,Klamath Falls,Hotspring,78,26'; - put '45.741,-118.233,Bingham Springs,Pendleton,Hotspring,93,34'; - put '42.889,-118.898,Fivemile Spring (Hoghouse Hot Sprs,Adel,Hotspring,80,27'; - put '43.54,-119.081,Millpond Hot Spring,Burns,Hotspring,79,26'; - put '45.891,-116.873,Cook Creek Hot Spring,Grangeville,Hotspring,97,36'; - put '45.295,-121.731,Swim Warm Springs,The Dalles,Hotspring,79,26'; - put '42.04,-120.924,Warm Spring,Klamath Falls,Hotspring,92,33'; - put '44.779,-117.811,Sam O Spring,Baker,Hotspring,80,27'; - put '44.538,-117.417,Nelson Spring,Baker,Hotspring,80,27'; - put '45.631,-119.703,Well Spring,Pendleton,Hotspring,80,27'; - put '42.287,-119.867,Moss Ranch Springs,Adel,Hotspring,83,28'; - put '45.061,-118.455,Warm Mineral Spring,Pendleton,Hotspring,83,28'; - put '43.95,-119.634,Warm Springs,Burns,Hotspring,84,29'; - put '45.295,-117.806,Warm Spring,Grangeville,Hotspring,85,29'; - put '42.815,-118.899,Warm Springs,Adel,Hotspring,89,32'; - put '43.452,-103.508,Hot Brook Springs,Hot Springs,Hotspring,75,24'; - put '43.442,-103.481,Hot Springs,Hot Springs,Hotspring,87,31'; - put '29.178,-102.953,Rio Grande Village Spring,Emory Peak,Hotspring,97,36'; - put '30.823,-105.315,Indian Hot Springs,Marfa,Hotspring,117,47'; - put '30.038,-104.598,Ruidosa Hot Springs,Marfa,Hotspring,113,45'; - put '29.182,-102.992,Hot Springs,Emory Peak,Hotspring,106,41'; - put '30.21,-104.562,Capote Springs,Marfa,Hotspring,99,37'; - put '30.133,-104.602,Nixon Spring,Marfa,Hotspring,90,32'; - put '29.787,-104.462,Springs (Las Cienegas),Presidio,Hotspring,86,30'; - put '30.861,-105.34,Red Bull Spring,Marfa,Hotspring,99,37'; - put '38.85,-112.49,Hatton Hot Spring,Richfield,Hotspring,100,38'; - put '40.176,-111.801,Bird Island,Salt Lake City,Hotspring,86,30'; - put '41.917,-111.958,Gancheff Spring,Ogden,Hotspring,88,31'; - put '37.942,-112.438,Lefevre,Cedar City,Hotspring,90,32'; - put '37.335,-113.687,Veyo Hot Spring,Cedar City,Hotspring,90,32'; - put '40.332,-111.891,Fault Zone Spring,Salt Lake City,Hotspring,90,32'; - put '40.146,-111.806,Lincoln Point Warm Springs,Salt Lake City,Hotspring,90,32'; - put '38.186,-112.912,Us Blm,Richfield,Hotspring,91,33'; - put '41.833,-112.454,Blue Creek Spring,Brigham City,Hotspring,82,28'; - put '40.526,-111.488,Midway Hot Springs,Salt Lake City,Hotspring,100,38'; - put '40.525,-111.468,Midway Hot Springs,Salt Lake City,Hotspring,104,40'; - put '40.038,-111.529,Castilla Springs,Salt Lake City,Hotspring,104,40'; - put '38.217,-112.904,Dotsons (Radium) Warm Spring,Richfield,Hotspring,91,33'; - put '40.465,-109.221,Split Mountain Warm Springs,Vernal,Hotspring,86,30'; - put '40.788,-112.017,Hobo Warm Spring,Tooele,Hotspring,84,29'; - put '40.788,-111.899,Wasatch Hot Springs,Salt Lake City,Hotspring,108,42'; - put '39.35,-113.515,Tule Spring,Delta,Hotspring,82,28'; - put '39.424,-113.485,Coyote Spring,Delta,Hotspring,82,28'; - put '39.842,-113.392,Fish Springs,Delta,Hotspring,82,28'; - put '39.887,-113.413,North Springs,Delta,Hotspring,82,28'; - put '41.756,-113.603,Warm Spring,Brigham City,Hotspring,81,27'; - put '41.038,-111.656,Como Springs,Ogden,Hotspring,81,27'; - put '40.397,-112.421,Morgans Warm Spring,Tooele,Hotspring,80,27'; - put '39.464,-114.038,Gandy Warm Springs,Ely,Hotspring,81,27'; - put '40.447,-110.828,Warm Springs,Salt Lake City,Hotspring,79,26'; - put '37.7,-110.421,Warm Spring,Escalante,Hotspring,79,26'; - put '40.502,-114.038,Blue Lake Spring,Elko,Hotspring,84,29'; - put '38.503,-112.849,Roosevelt Hot Springs,Richfield,Hotspring,133,56'; - put '38.774,-112.096,Richfield Warm Springs,Richfield,Hotspring,73,23'; - put '40.488,-111.911,Crystal Hot Springs,Salt Lake City,Hotspring,187,86'; - put '38.186,-113.197,Thermo Hot Springs,Richfield,Hotspring,185,85'; - put '38.172,-113.204,Thermo Hot Springs,Richfield,Hotspring,181,83'; - put '39.613,-112.729,"Baker (Abraham, Crater) Hot Spring",Delta,Hotspring,180,82'; - put '38.639,-112.098,Red Hill Hot Spring,Richfield,Hotspring,171,77'; - put '38.633,-112.107,Monroe (Cooper) Hot Springs,Richfield,Hotspring,169,76'; - put '38.613,-112.202,Joseph Hot Springs,Richfield,Hotspring,147,64'; - put '39.906,-113.43,Wilson Health Springs,Delta,Hotspring,142,61'; - put '41.138,-112.175,Hooper Hot Springs,Brigham City,Hotspring,140,60'; - put '41.338,-112.031,Utah Hot Springs,Brigham City,Hotspring,138,59'; - put '38.864,-112.506,Meadow Hot Springs,Richfield,Hotspring,106,41'; - put '40.815,-111.918,Becks Hot Spring,Salt Lake City,Hotspring,133,56'; - put '37.189,-113.272,Dixie (Laverkin) Hot Springs,Cedar City,Hotspring,108,42'; - put '41.659,-112.087,Crystal (Madsens) Hot Springs,Brigham City,Hotspring,129,54'; - put '41.855,-112.158,Udy Hot Springs,Brigham City,Hotspring,124,51'; - put '41.578,-112.23,Stinking Hot Springs,Brigham City,Hotspring,118,48'; - put '40.517,-111.475,Midway Hot Spring,Salt Lake City,Hotspring,115,46'; - put '40.536,-111.478,Warm Ditch Spring,Salt Lake City,Hotspring,115,46'; - put '40.35,-111.905,Saratoga Hot Springs,Salt Lake City,Hotspring,111,44'; - put '40.353,-111.895,Crater Hot Spring,Salt Lake City,Hotspring,111,44'; - put '41.901,-112.999,Coyote Spring,Brigham City,Hotspring,109,43'; - put '41.687,-113.986,Spring (Hot),Brigham City,Hotspring,108,42'; - put '41.582,-112.256,Little Mountain Hot Spring,Brigham City,Hotspring,108,42'; - put '41.822,-113.263,L.G. Carter Springs,Brigham City,Hotspring,77,25'; - put '41.236,-111.924,Ogden Hot Spring,Ogden,Hotspring,135,57'; - put '37.178,-113.634,Snow Spring,Cedar City,Hotspring,70,21'; - put '38.34,-113.22,Woodhouse Spring,Richfield,Hotspring,72,22'; - put '38.155,-112.901,Willow Spring,Richfield,Hotspring,72,22'; - put '38.56,-112.578,Sulphurdale,Richfield,Hotspring,72,22'; - put '38.981,-111.829,Salt Spring,Salina,Hotspring,72,22'; - put '37.174,-112.535,Red Canyon,Cedar City,Hotspring,72,22'; - put '41.808,-113.327,W.R. Carter Springs,Brigham City,Hotspring,70,21'; - put '41.818,-113.311,Larson Springs,Brigham City,Hotspring,70,21'; - put '41.829,-113.654,Head Spring,Brigham City,Hotspring,70,21'; - put '40.653,-112.907,Redlum Spring,Tooele,Hotspring,70,21'; - put '40.458,-111.929,Camp Williams,Salt Lake City,Hotspring,70,21'; - put '40.647,-112.524,Grantsville Warm Springs,Tooele,Hotspring,77,25'; - put '39.183,-111.691,Sterling (Peacock) Warm Spring,Price,Hotspring,72,22'; - put '39.246,-111.645,Livingston Warm Springs,Price,Hotspring,73,23'; - put '38.138,-112.863,Big Maple Spring,Richfield,Hotspring,70,21'; - put '37.393,-113.61,Irvine Spring,Cedar City,Hotspring,70,21'; - put '41.563,-113.954,Kimber (Rose) Spring,Brigham City,Hotspring,68,20'; - put '41.614,-113.613,Warm Spring,Brigham City,Hotspring,68,20'; - put '41.328,-111.826,Patio Springs,Ogden,Hotspring,68,20'; - put '40.172,-112.426,Davis,Tooele,Hotspring,68,20'; - put '40.118,-111.337,Diamond Fork Warm Springs,Salt Lake City,Hotspring,68,20'; - put '39.249,-113.877,Knoll Springs,Delta,Hotspring,68,20'; - put '39.403,-113.863,Twin Springs,Delta,Hotspring,68,20'; - put '39.788,-111.881,Ray Lunt Spring,Price,Hotspring,68,20'; - put '38.762,-112.87,Springs,Richfield,Hotspring,68,20'; - put '38.77,-112.871,Coyote Spring,Richfield,Hotspring,68,20'; - put '37.937,-112.424,Tebbs,Cedar City,Hotspring,68,20'; - put '37.096,-113.447,Warner Valley Spring,Cedar City,Hotspring,70,21'; - put '40.565,-112.738,Deseret Livestock South Springs,Tooele,Hotspring,73,23'; - put '37.158,-113.399,Virgin River Spring,Cedar City,Hotspring,70,21'; - put '39.899,-112.045,Springs,Delta,Hotspring,72,22'; - put '38.603,-112.111,Johnson Warm Spring,Richfield,Hotspring,77,25'; - put '41.722,-112.266,Bothwell Warm Springs,Brigham City,Hotspring,75,24'; - put '40.538,-112.747,Deseret Livestock,Tooele,Hotspring,75,24'; - put '40.733,-112.621,Utah Fish And Game Dept,Tooele,Hotspring,75,24'; - put '40.228,-111.867,Warm Springs,Salt Lake City,Hotspring,75,24'; - put '37.137,-113.513,Warm Spring,Cedar City,Hotspring,75,24'; - put '37.138,-113.528,Green Spring,Cedar City,Hotspring,75,24'; - put '37.166,-113.383,Berry Springs,Cedar City,Hotspring,75,24'; - put '41.834,-112.054,Cutler Warm Spring,Brigham City,Hotspring,73,23'; - put '40.614,-112.709,Horseshoe Springs,Tooele,Hotspring,73,23'; - put '41.239,-112.413,Compton Spring,Brigham City,Hotspring,72,22'; - put '40.743,-112.642,Big Warm Springs,Tooele,Hotspring,72,22'; - put '40.558,-112.739,Deseret Livestock South Spring,Tooele,Hotspring,72,22'; - put '40.39,-112.424,Russells Warm Springs,Tooele,Hotspring,72,22'; - put '41.831,-113.391,Pugsley,Brigham City,Hotspring,73,23'; - put '41.449,-112.442,Poulsen Spring (Salt),Brigham City,Hotspring,72,22'; - put '40.167,-111.622,Wood Springs,Salt Lake City,Hotspring,73,23'; - put '40.234,-111.865,Warm Springs,Salt Lake City,Hotspring,77,25'; - put '39.955,-111.858,Goshen Warm Srings,Price,Hotspring,73,23'; - put '39.334,-113.518,South Tule Spring,Delta,Hotspring,77,25'; - put '39.616,-112.803,Fumarole Butte,Delta,Hotspring,73,23'; - put '40.545,-111.928,East Jordan Canal,Salt Lake City,Hotspring,73,23'; - put '41.643,-112.281,Springs,Brigham City,Hotspring,72,22'; - put '37.29,-80.619,New River White Sulphur Springs,Bluefield,Hotspring,85,29'; - put '37.997,-79.83,Hot Springs,Roanoke,Hotspring,106,41'; - put '37.898,-79.462,Rockbridge Baths,Roanoke,Hotspring,72,22'; - put '38.055,-79.78,Warm Springs,Charlottesvill,Hotspring,95,35'; - put '37.963,-79.861,Healing Springs,Roanoke,Hotspring,86,30'; - put '38.238,-79.65,Bragg Spring,Charlottesvill,Hotspring,75,24'; - put '37.645,-80.238,Sweet Chalybeate Spring,Bluefield,Hotspring,75,24'; - put '38.218,-79.673,Bolar Spring,Charlottesvill,Hotspring,73,23'; - put '37.86,-79.988,Layton Spring,Roanoke,Hotspring,72,22'; - put '37.87,-79.933,Falling Spring,Roanoke,Hotspring,77,25'; - put '37.16,-80.806,Alum Springs,Bluefield,Hotspring,72,22'; - put '46.852,-121.758,Mt Rainier Fumaroles,Yakima,Hotspring,162,72'; - put '46.738,-121.562,Ohanapecosh Hot Springs,Yakima,Hotspring,122,50'; - put '47.707,-121.155,Scenic Hot Springs,Wenatchee,Hotspring,122,50'; - put '47.969,-123.864,Sol Duc Hot Springs,Seattle,Hotspring,122,50'; - put '48.974,-119.475,Hot Lake,Okanogan,Hotspring,122,50'; - put '45.658,-121.962,Moffetts (Bonneville) Hot Springs,The Dalles,Hotspring,97,36'; - put '48.906,-119.455,Poison Lake,Okanogan,Hotspring,122,50'; - put '45.701,-121.728,Collins Hot Springs,The Dalles,Hotspring,122,50'; - put '47.484,-121.391,Goldmeyer Hot Springs,Wenatchee,Hotspring,127,53'; - put '46.202,-121.492,Mount Adams Fumaroles,Yakima,Hotspring,150,66'; - put '46.198,-122.197,Mt St Helens Fumaroles,Hoquiam,Hotspring,190,88'; - put '48.789,-121.804,Dorr Fumarole Field,Concrete,Hotspring,194,90'; - put '48.77,-121.813,Sherman Crater Fumaroles,Concrete,Hotspring,266,130'; - put '45.723,-121.927,Rock Creek Hot Springs,The Dalles,Hotspring,H,H'; - put '48.15,-121.062,Gamma Hot Springs,Concrete,Hotspring,140,60'; - put '46.378,-122.265,Green River Soda Spring,Hoquiam,Hotspring,86,30'; - put '46.575,-121.706,Packwood Hot Spring,Yakima,Hotspring,100,38'; - put '47.201,-121.536,Lester Hot Springs,Wenatchee,Hotspring,120,49'; - put '46.024,-118.771,Warm Springs Canyon Warm Spring,Walla Walla,Hotspring,72,22'; - put '46.345,-121.6,Orr Creek Warm Springs,Yakima,Hotspring,72,22'; - put '46.041,-121.181,Fish Hatchery Warm Spring,Yakima,Hotspring,75,24'; - put '46.752,-121.814,Longmire Mineral Springs,Yakima,Hotspring,77,25'; - put '47.892,-121.342,Garland Mineral Springs,Wenatchee,Hotspring,84,29'; - put '46.452,-120.956,Simcoe Soda Springs,Yakima,Hotspring,90,32'; - put '48.254,-121.17,Sulphur Creek Hot Springs,Concrete,Hotspring,99,37'; - put '48.118,-121.192,Kennedy Hot Spring,Concrete,Hotspring,100,38'; - put '48.763,-121.667,Baker Hot Spring,Concrete,Hotspring,108,42'; - put '47.977,-123.682,Olympic Hot Springs,Seattle,Hotspring,118,48'; - put '45.728,-121.8,St Martins Hot Springs,The Dalles,Hotspring,120,49'; - put '45.821,-121.133,Klickitat Mineral Springs,The Dalles,Hotspring,81,27'; - put '38.163,-79.975,Minnehaha Springs,Charlottesvill,Hotspring,70,21'; - put '37.63,-80.24,Old Sweet Spring,Bluefield,Hotspring,73,23'; - put '39.618,-78.23,Berkeley Springs,Cumberland,Hotspring,72,22'; - put '38.605,-79.353,Thorn Spring,Charlottesvill,Hotspring,72,22'; - put '39.471,-77.877,Swan Pond Spring,Baltimore,Hotspring,72,22'; - put '44.29,-110.504,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94'; - put '44.691,-110.728,Geyser Springs Group,Ashton,Hotspring,201,94'; - put '44.554,-110.812,Fountain Group,Ashton,Hotspring,201,94'; - put '44.543,-110.859,Fairy Springs,Ashton,Hotspring,201,94'; - put '44.485,-110.852,"Biscuit Basin, Sapphire Pool",Ashton,Hotspring,201,94'; - put '44.48,-110.85,Cascade Group,Ashton,Hotspring,201,94'; - put '44.46,-110.844,Black Sand Basin,Ashton,Hotspring,201,94'; - put '44.459,-110.835,Myriad Group,Ashton,Hotspring,201,94'; - put '44.307,-110.526,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94'; - put '44.354,-110.8,Shoshone Geyser Basin,Ashton,Hotspring,203,95'; - put '44.568,-110.805,Quagmire Group,Ashton,Hotspring,203,95'; - put '44.537,-110.801,"White Dome Geyser, Surprise Pool",Ashton,Hotspring,203,95'; - put '44.52,-110.828,Flood Group,Ashton,Hotspring,203,95'; - put '44.471,-110.843,"Daisy Group, Sentinel Geysers",Ashton,Hotspring,203,95'; - put '44.466,-110.839,"Middle Group,tortoise Shell,inkwel",Ashton,Hotspring,203,95'; - put '44.46,-110.828,"Geyser Hill Group, Old Faithful Ge",Ashton,Hotspring,203,95'; - put '44.908,-110.393,Calcite Springs,Ashton,Hotspring,201,94'; - put '44.417,-110.57,West Thumb Geyser Basin,Ashton,Hotspring,203,95'; - put '44.459,-110.817,Southeastern Group,Ashton,Hotspring,198,92'; - put '44.433,-110.581,Potts Hot Spring Basin,Ashton,Hotspring,203,95'; - put '44.421,-110.952,Smoke Jumper Hot Springs,Ashton,Hotspring,198,92'; - put '44.684,-110.753,Monument Geyser Basin,Ashton,Hotspring,197,92'; - put '44.679,-110.746,Beryl Spring,Ashton,Hotspring,198,92'; - put '44.544,-110.258,Turbid Springs,Ashton,Hotspring,198,92'; - put '44.53,-110.297,Steamboat Springs,Ashton,Hotspring,198,92'; - put '44.518,-110.813,"Hot Springs, Rabbit Creek Group",Ashton,Hotspring,198,92'; - put '44.514,-110.828,Rabbit Creek Group,Ashton,Hotspring,198,92'; - put '44.484,-110.873,Mystic Falls Springs,Ashton,Hotspring,198,92'; - put '44.739,-110.324,Josephs Coat Springs,Ashton,Hotspring,199,93'; - put '44.75,-110.714,Gas Vent,Ashton,Hotspring,H,H'; - put '44.282,-110.506,Rustic Geyser,Ashton,Hotspring,199,93'; - put '44.571,-110.811,Morning Mist Springs,Ashton,Hotspring,205,96'; - put '44.733,-110.703,Cistern Spring,Ashton,Hotspring,199,93'; - put '44.697,-110.724,Gibbon Hill Geyser,Ashton,Hotspring,199,93'; - put '44.693,-110.738,Artists Paintpots,Ashton,Hotspring,199,93'; - put '44.69,-110.384,Hot Springs on Bog Creek,Ashton,Hotspring,199,93'; - put '44.526,-110.835,Excelsior Geyser Crater,Ashton,Hotspring,199,93'; - put '44.418,-110.805,Lone Star Geyser,Ashton,Hotspring,199,93'; - put '44.309,-110.654,Hot Springs on Lewis Lake,Ashton,Hotspring,199,93'; - put '44.469,-110.828,Solitary Geyser,Ashton,Hotspring,198,92'; - put '44.433,-110.813,Hot Springs,Ashton,Hotspring,H,H'; - put '44.766,-110.3,Hot Springs,Ashton,Hotspring,H,H'; - put '44.61,-110.438,Hot Springs,Ashton,Hotspring,H,H'; - put '44.607,-110.617,Hot Springs East of Mary Lake,Ashton,Hotspring,H,H'; - put '44.601,-110.632,Gas Vent East of Mary Lake,Ashton,Hotspring,H,H'; - put '44.595,-110.622,Gas Vents Southeast of Mary Lake,Ashton,Hotspring,H,H'; - put '44.572,-110.691,Hot Springs,Ashton,Hotspring,H,H'; - put '44.553,-110.301,Beach Springs,Ashton,Hotspring,H,H'; - put '44.551,-110.85,Springs on Fairy Creek,Ashton,Hotspring,H,H'; - put '44.616,-110.616,Highland Hot Springs,Ashton,Hotspring,H,H'; - put '44.438,-110.977,Hot Springs on Continental Divide,Ashton,Hotspring,H,H'; - put '44.617,-110.432,Mud Geysers,Ashton,Hotspring,H,H'; - put '44.404,-110.824,Hot Springs on Upper Firehole Rive,Ashton,Hotspring,H,H'; - put '44.498,-109.193,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.495,-109.222,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.482,-109.204,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W'; - put '44.841,-110.167,"Hot, on Lamar River",Ashton,Hotspring,W,W'; - put '44.734,-110.029,Hot Springs,Ashton,Hotspring,W,W'; - put '44.708,-110.471,Warm Spring,Ashton,Hotspring,W,W'; - put '44.701,-110.036,Hot Springs,Ashton,Hotspring,W,W'; - put '44.508,-110.832,Midway Picnic Ground,Ashton,Hotspring,H,H'; - put '44.715,-110.555,Gas Vents,Ashton,Hotspring,H,H'; - put '44.563,-110.834,River Group,Ashton,Hotspring,205,96'; - put '44.544,-110.788,"Black Warrior Group, Shelf Spring",Ashton,Hotspring,205,96'; - put '44.115,-110.684,Huckleberry Hot Springs,Ashton,Hotspring,B,B'; - put '44.842,-110.732,Apollinaris Spring,Ashton,Hotspring,H,H'; - put '44.825,-110.675,Gas Vents at Horseshoe Hill,Ashton,Hotspring,H,H'; - put '44.781,-110.738,Steam Vents at Roaring Mountain,Ashton,Hotspring,H,H'; - put '44.743,-110.242,Hot Spring Basin Group,Ashton,Hotspring,198,92'; - put '44.752,-110.256,Hot Spring,Ashton,Hotspring,H,H'; - put '44.612,-110.618,Gas Vent,Ashton,Hotspring,H,H'; - put '44.741,-110.699,Gas Vent,Ashton,Hotspring,H,H'; - put '44.566,-110.871,"Flat Cone Spring, Steep Cone",Ashton,Hotspring,205,96'; - put '44.711,-110.468,Hot Springs,Ashton,Hotspring,H,H'; - put '44.708,-110.461,Forest Springs,Ashton,Hotspring,H,H'; - put '44.672,-110.236,Hot Springs,Ashton,Hotspring,H,H'; - put '44.667,-110.282,Hot Springs,Ashton,Hotspring,H,H'; - put '44.656,-110.572,Violet Springs,Ashton,Hotspring,H,H'; - put '44.642,-110.238,Hot Spring,Ashton,Hotspring,H,H'; - put '44.634,-110.234,The Mudkettles,Ashton,Hotspring,H,H'; - put '44.634,-110.226,The Mushpots,Ashton,Hotspring,H,H'; - put '44.532,-110.874,"Imperial Geyser, Spray Geyser",Ashton,Hotspring,192,89'; - put '42.545,-106.725,Alcova Hot Springs,Casper,Hotspring,129,54'; - put '42.75,-109.616,Steele Hot Springs,Lander,Hotspring,102,39'; - put '43.37,-110.445,Granite Hot Spring,Driggs,Hotspring,106,41'; - put '43.008,-108.835,Washakie Mineral Hot Springs,Thermopolis,Hotspring,111,44'; - put '43.907,-110.198,North Buffalo Fork Springs,Driggs,Hotspring,113,45'; - put '43.365,-110.443,Granite Falls Hot Springs,Driggs,Hotspring,112,45'; - put '42.817,-110.997,Johnson Springs,Preston,Hotspring,115,46'; - put '44.723,-110.358,Hot Spring on Moss Creek,Ashton,Hotspring,115,46'; - put '44.681,-110.326,Hot Springs on Upper Sour Creek,Ashton,Hotspring,194,90'; - put '41.45,-106.804,Saratoga Hot Springs,Rawlins,Hotspring,129,54'; - put '44.671,-110.786,Secret Valley Hot Springs,Ashton,Hotspring,95,35'; - put '44.625,-110.433,Mud Volcano,Ashton,Hotspring,131,55'; - put '43.654,-108.194,Thermopolis Hot Springs,Thermopolis,Hotspring,133,56'; - put '44.985,-110.689,Hot River,Ashton,Hotspring,136,58'; - put '44.588,-110.341,Ebro Springs,Ashton,Hotspring,136,58'; - put '44.55,-110.805,Fountain Paint Pot,Ashton,Hotspring,136,58'; - put '44.169,-110.583,Snake Hot Springs,Ashton,Hotspring,136,58'; - put '44.157,-110.699,Crawfish Creek Hot Springs,Ashton,Hotspring,136,58'; - put '44.165,-110.723,Crawfish Creek Hot Springs,Ashton,Hotspring,138,59'; - put '44.711,-110.741,Chocolate Pots,Ashton,Hotspring,124,51'; - put '43.56,-109.732,Geyser (Warm Spring Creek Springs),Thermopolis,Hotspring,84,29'; - put '43.489,-109.605,Jakeys Fork Spring,Thermopolis,Hotspring,68,20'; - put '44.749,-108.188,Little Sheep Mountain Spring,Cody,Hotspring,68,20'; - put '42.249,-104.781,Warm Springs (Immigrants Washtub),Torrington,Hotspring,70,21'; - put '44.608,-108.138,Sheep Mountain Springs,Cody,Hotspring,70,21'; - put '43.583,-108.213,Wind River Canyon Spring,Thermopolis,Hotspring,72,22'; - put '42.702,-107.105,Horse Creek Springs,Casper,Hotspring,75,24'; - put '44.511,-109.156,Needle Hot Springs,Cody,Hotspring,75,24'; - put '43.52,-109.669,Little Warm Spring,Thermopolis,Hotspring,77,25'; - put '43.3,-110.775,Astoria Mineral Hot Springs,Driggs,Hotspring,99,37'; - put '43.543,-110.741,Abercrombie Warm Springs,Driggs,Hotspring,81,27'; - put '44.513,-109.115,De Maris Springs,Cody,Hotspring,97,36'; - put '42.665,-105.394,Douglas Hot Springs,Torrington,Hotspring,86,30'; - put '43.471,-110.835,Boyles Hill Springs,Driggs,Hotspring,86,30'; - put '43.282,-110.019,Kendall Warm Spring,Driggs,Hotspring,86,30'; - put '44.662,-110.768,Iron Spring,Ashton,Hotspring,86,30'; - put '42.492,-108.172,Sweetwater Station Warm Springs,Lander,Hotspring,90,32'; - put '44.742,-110.579,Wolf Lake Springs,Ashton,Hotspring,91,33'; - put '44.513,-109.129,Shoshone Hot Springs,Cody,Hotspring,95,35'; - put '42.828,-110.999,Auburn Hot Springs,Preston,Hotspring,144,62'; - put '43.639,-110.615,Kelly Warm Spring,Driggs,Hotspring,81,27'; - put '44.532,-110.796,Five Sisters Springs,Ashton,Hotspring,192,89'; - put '44.582,-110.314,Vermilion Springs,Ashton,Hotspring,140,60'; - put '44.521,-110.275,Butte Springs,Ashton,Hotspring,187,86'; - put '44.478,-110.867,Hillside Springs,Ashton,Hotspring,187,86'; - put '44.752,-110.418,Hot Springs at Sevenmile Hole,Ashton,Hotspring,189,87'; - put '44.401,-110.936,Hot Springs on Continental Divide,Ashton,Hotspring,189,87'; - put '44.769,-110.269,Rainbow Springs,Ashton,Hotspring,190,88'; - put '44.628,-110.433,Sulphur Caldron,Ashton,Hotspring,190,88'; - put '44.702,-110.767,Sylvan Springs,Ashton,Hotspring,192,89'; - put '44.529,-110.791,White Creek Group,Ashton,Hotspring,185,85'; - put '44.564,-110.869,Queens Laundry,Ashton,Hotspring,192,89'; - put '44.697,-110.375,Hot Springs on Bog Creek,Ashton,Hotspring,185,85'; - put '44.285,-110.9,Bechler River Hot Springs,Ashton,Hotspring,194,90'; - put '44.797,-110.725,Amphitheater Springs,Ashton,Hotspring,196,91'; - put '44.766,-110.429,Washburn Hot Springs,Ashton,Hotspring,196,91'; - put '44.756,-110.308,Coffee Pot Hot Springs,Ashton,Hotspring,196,91'; - put '44.591,-110.321,Hot Springs at Sulphur Hills,Ashton,Hotspring,196,91'; - put '44.556,-110.832,River Group,Ashton,Hotspring,196,91'; - put '44.422,-110.574,West Thumb Geyser Basin,Ashton,Hotspring,196,91'; - put '44.786,-110.74,Semi-Centennial Geyser,Ashton,Hotspring,198,92'; - put '44.653,-110.482,Sulphur Springs,Ashton,Hotspring,194,89'; - put '44.41,-110.953,Summit Lake Hot Springs,Ashton,Hotspring,162,72'; - put '44.761,-110.73,Bijah Spring,Ashton,Hotspring,198,92'; - put '44.781,-110.699,Whiterock Springs,Ashton,Hotspring,144,62'; - put '44.739,-110.258,Hot Spring Basin Group,Ashton,Hotspring,153,67'; - put '44.754,-110.403,Sevenmile Hole,Ashton,Hotspring,154,68'; - put '44.276,-110.636,Hot Springs on Lewis Lake,Ashton,Hotspring,154,68'; - put '44.598,-110.236,Hot Springs In Pelican Valley,Ashton,Hotspring,156,69'; - put '44.142,-110.656,South Entrance Hot Springs,Ashton,Hotspring,156,69'; - put '44.753,-110.724,"Roadside Springs, Frying Pan Sprin",Ashton,Hotspring,158,70'; - put '44.733,-110.712,Horseshoe Spring,Ashton,Hotspring,187,86'; - put '43.958,-110.696,Jackson Lake Hot Springs,Driggs,Hotspring,162,72'; - put '44.187,-110.726,Hot Springs,Ashton,Hotspring,142,61'; - put '44.967,-110.708,Mammoth Hot Springs,Ashton,Hotspring,163,73'; - put '44.475,-110.843,Morning Glory Pool,Ashton,Hotspring,163,73'; - put '44.204,-110.486,Hot Springs on Upper Snake River,Ashton,Hotspring,167,75'; - put '44.299,-110.517,"Heart Lake Geyser Basin, Middle Gr",Ashton,Hotspring,174,79'; - put '44.671,-110.29,Ponuntpa Springs Group,Ashton,Hotspring,180,82'; - put '44.244,-111.022,Boundary Creek Hot Springs,Ashton,Hotspring,181,83'; - put '44.414,-110.817,"Lone Star Geyser Basin, Footbridge",Ashton,Hotspring,183,84'; - put '44.722,-110.701,Echinus Geyser,Ashton,Hotspring,185,85'; - put '44.461,-110.854,Emerald Pool,Ashton,Hotspring,158,70'; - put ';;;;'; - put 'run;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; - put '%mp_abort(iftrue= (%mf_isdir(&path) = 0)'; - put ',mac=&_program..sas'; - put ',msg=%str(File path (&path) is not a valid directory)'; - put ')'; - put '%mp_webin()'; - put '/* setup the output destination */'; - put '%let outloc=&path/&_webin_filename1;'; - put 'filename fileout "&outloc";'; - put '/* send the data */'; - put '%mp_binarycopy(inref=&_webin_fileref1, outref=fileout)'; - put '%mp_abort(iftrue= (&syscc ge 4)'; - put ',mac=&_program..sas'; - put ',msg=%str(Error occurred reading &_webin_fileref1 and writing to &outloc)'; - put ')'; - put '/* success - lets create a directory listing */'; - put '%mp_dirlist(path=&path,outds=dirlist)'; - put 'proc sort data=dirlist;'; - put 'by filepath;'; + put '/**'; + put '@file loadfile.sas'; + put '@brief Loads a file'; + put '@details'; + put '

SAS Macros

'; + put '@li mddl_sas_cntlout.sas'; + put '@li mp_abort.sas'; + put '@li mf_getplatform.sas'; + put '@li mf_getuser.sas'; + put '@li mf_getvarlist.sas'; + put '@li mf_mkdir.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mf_wordsinstr1butnotstr2.sas'; + put '@li dc_assignlib.sas'; + put '@li mpe_getgroups.sas'; + put '@li mp_lockfilecheck.sas'; + put '@li mpe_loader.sas'; + put '@li mp_cleancsv.sas'; + put '@li mp_binarycopy.sas'; + put '@li mpeinit.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%global table dlm;'; + put '%mpeinit(fetch=NO)'; + put '%global _WEBIN_FILENAME1 _WEBIN_FILENAME2'; + put '_WEBIN_FILEREF _WEBIN_FILEREF1 _WEBIN_FILEREF2;'; + put '%macro load();'; + put '%if %mf_getplatform()=SASVIYA %then %do;'; + put '%global _webin_fileuri _webin_fileuri1 _webin_fileuri2;'; + put '%let _webin_fileuri1=%sysfunc(coalescec(&_webin_fileuri1,&_webin_fileuri));'; + put '%if "&_webin_fileuri1" ne "" %then %do;'; + put '%put &=_webin_fileuri1;'; + put 'filename sjfref1 filesrvc "&_webin_fileuri1";'; + put '%let _WEBIN_FILEREF1=sjfref1;'; + put '%end;'; + put '%if "&_webin_fileuri2" ne "" %then %do;'; + put '%put &=_webin_fileuri2;'; + put 'filename sjfref2 filesrvc "&_webin_fileuri2";'; + put '%let _WEBIN_FILEREF2=sjfref2;'; + put '%end;'; + put '%end;'; + put '%mend load;'; + put '%load()'; + put '%let _WEBIN_FILENAME1=%sysfunc(coalescec(&_WEBIN_FILENAME1,&_WEBIN_FILENAME));'; + put '%let _WEBIN_FILEREF1=%sysfunc(coalescec(&_WEBIN_FILEREF1,&_WEBIN_FILEREF));'; + put '%let abort=0;'; + put '/* we do not know if the excel file will be first or second fileref */'; + put 'data _null_;'; + put 'ext1=upcase(scan(symget(''_WEBIN_FILENAME1''),-1,''.''));'; + put 'ext2=upcase(scan(symget(''_WEBIN_FILENAME2''),-1,''.''));'; + put 'if ext1=''CSV'' then do;'; + put 'csvname=symget(''_WEBIN_FILENAME1'');'; + put 'csvref=symget(''_WEBIN_FILEREF1'');'; + put 'xlsname=symget(''_WEBIN_FILENAME2'');'; + put 'xlsref=symget(''_WEBIN_FILEREF2'');'; + put 'end;'; + put 'else if ext2=''CSV'' then do;'; + put 'csvname=symget(''_WEBIN_FILENAME2'');'; + put 'csvref=symget(''_WEBIN_FILEREF2'');'; + put 'xlsname=symget(''_WEBIN_FILENAME1'');'; + put 'xlsref=symget(''_WEBIN_FILEREF1'');'; + put 'end;'; + put 'else call symputx(''abort'',1);'; + put 'call symputx(''csvname'',csvname);'; + put 'call symputx(''csvref'',csvref);'; + put 'call symputx(''xlsname'',xlsname);'; + put 'call symputx(''xlsref'',coalescec(xlsref,''0''));'; + put 'run;'; + put '%mp_abort(iftrue= (&abort=1)'; + put ',mac=&_program'; + put ',msg=%str(File "&csvname" or "&xlsname" must be a CSV!'; + put '(Comma separated with .csv extension))'; + put ')'; + put '%let user=%mf_getuser();'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(table)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: table)'; + put ')'; + put '%let table=%upcase(%trim(&table));'; + put '/* load parameters */'; + put 'data _null_;'; + put 'libds=upcase(symget(''table''));'; + put 'call symputx(''orig_libds'',libds);'; + put 'call symputx(''orig_lib'',scan(libds,1,''.''));'; + put 'call symputx(''orig_ds'',scan(libds,2,''.''));'; + put 'is_fmt=0;'; + put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'libds=''work.fmtextract'';'; + put 'call symputx(''libds'',libds);'; + put 'call execute(''%mddl_sas_cntlout(libds=work.fmtextract)'');'; + put 'is_fmt=1;'; + put 'end;'; + put 'else call symputx(''libds'',libds);'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '/* check that the user has the requisite access */'; + put '%mpe_getgroups(user=&user,outds=groups)'; + put 'proc sql;'; + put 'create table accesscheck as'; + put 'select * from groups'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in (select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="EDIT"'; + put 'and ('; + put '(libref="&orig_lib" and dsn="&orig_ds")'; + put 'or (libref="&orig_lib" and dsn="*ALL*")'; + put 'or (libref="*ALL*" and dsn="*ALL*")'; + put 'or (libref="*ALL*" and dsn="&orig_ds")'; + put '));'; + put '%let nobs=;'; + put 'select count(*) into: nobs from &syslast;'; + put '%mp_abort(iftrue= (&nobs=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(&user not authorised to load &orig_libds per &mpelib..mpe_security)'; + put ')'; + put '%dc_assignlib(WRITE,&orig_lib)'; + put '%mp_abort(iftrue= (&syscc ge 4)'; + put ',mac=loadfile'; + put ',msg=%str(Issue assigning library &orig_lib)'; + put ')'; + put '%global txfrom txto processed;'; + put 'data _null_;'; + put 'set &mpelib..MPE_TABLES;'; + put 'where libref="&orig_lib" and dsn="&orig_ds";'; + put 'call symputx(''txfrom'',var_txfrom);'; + put 'call symputx(''txto'',var_txto);'; + put 'call symputx(''processed'',var_processed);'; + put 'run;'; + put '%mp_lockfilecheck(libds=&orig_libds)'; + put 'data compare;'; + put 'set &libds(drop=&txfrom &txto &processed);'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc line 80)'; + put ')'; + put '/* get line terminator, assume it''s the first cr, lf, or crlf */'; + put 'data _null_;'; + put 'length text $32767 term $4;'; + put 'call missing (of _all_);'; + put 'fid=fopen("&csvref",''I'',32767,''b'');'; + put 'rc=fread(fid);'; + put 'rc2=fget(fid,text,32767);'; + put 'cr=find(text,''0D''x );'; + put 'lf=find(text,''0A''x );'; + put 'crlf=find(text,''0D0A''x);'; + put 'rc=fclose(fid);'; + put 'if crlf>0 & cr0 & crlf0 & cr>0 & lf0 then term=''LF'';'; + put 'else term=''CR'';'; + put 'call symputx(''termstr'',term);'; + put 'run;'; + put 'data _null_;'; + put 'infile &csvref lrecl=32000 dsd termstr=&termstr;'; + put 'input;'; + put 'length incols_unsorted $32000 dlm $1;'; + put 'incols_unsorted=compress(upcase(_infile_),"''"!!''"'');'; + put '/* dlm has length 1 so will be the first non alpha / digit char */'; + put '/* expectation is that there will not be any crazy characters in first col! */'; + put 'dlm=compress(incols_unsorted,''_ '',''ad'');'; + put 'incols_unsorted=compress(incols_unsorted,dlm!!''_'',''kado'');'; + put 'incols_unsorted=tranwrd(incols_unsorted,dlm,'' '');'; + put 'call symputx(''incols_unsorted'',incols_unsorted);'; + put 'call symputx(''dlm'',dlm);'; + put 'putlog incols_unsorted=;'; + put 'putlog dlm=;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc line 99)'; + put ')'; + put '%let basecols=%upcase(%mf_getvarlist(work.compare,dlm=%str( )));'; + put '%let missing_cols=%trim('; + put '%mf_wordsInStr1ButNotStr2('; + put 'Str1=&basecols'; + put ',Str2=&incols_unsorted'; + put '));'; + put '%let msg='; + put 'Expected cols: &basecols'; + put '
Received cols: &incols_unsorted'; + put '
Missing cols: &missing_cols'; + put ';'; + put '%mp_abort(iftrue= (%length(%trim(&missing_cols)) > 1 or &syscc ne 0)'; + put ',mac=mpestp_loadfile.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%let msg=0;'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y%0m%0d_%0H%0M%0S'' (datatype=datetime);'; + put 'RUN;'; + put '/* create a dataset key (datetime plus 6 digit random number plus PID) */'; + put '%let mperef=DC%left(%sysfunc(datetime(),B8601DT19.3))_%substr('; + put '%sysfunc(ranuni(0)),3,6)_%substr(%str(&sysjobid ),1,4);'; + put '/* Create package folder and redirect the log */'; + put '%let dir=&mpelocapprovals/&mperef;'; + put '%mf_mkdir(&dir)'; + put '/* clean embedded line breaks and force CRLF line endings */'; + put '%mp_cleancsv(in=&csvref, out=&dir/&orig_libds..csv)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(issue in mp_cleancsv)'; + put ')'; + put '%put; %put; %put log is being redirected;'; + put '%let url=_program=%substr(&_program'; + put ',1,%length(&_program)-8)getlog%nrstr(&)table=&mperef;'; + put '%put to retrieve, visit this url:; %put;%put;'; + put '%put &url;'; + put '%put;'; + put '/* proc printto log="&dir/weblog.txt";run; */'; + put 'libname approve "&dir";'; + put 'options mprint;'; + put '%put &=mperef;'; + put '%put &=termstr;'; + put '%put &=dlm;'; + put '%mpe_loader(mperef=&mperef'; + put ',submitted_reason_txt=%quote(File upload: %superq(csvname))'; + put ',dlm=%superq(dlm)'; + put ',url=%superq(url)'; + put ',termstr=CRLF'; + put ',dc_dttmtfmt=&dc_dttmtfmt'; + put ')'; + put '%mp_abort(mode=INCLUDE)'; + put '%mp_abort('; + put 'iftrue= (%sysfunc(fileexist(%sysfunc(pathname(work))/mf_abort.error)) ne 0)'; + put ',mac=&_program'; + put ',msg=%nrstr(Problem occurred in &sysmacroname (mf_abort.error file found))'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=mpestp_loadfile.sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put 'filename outref "&dir/BKP_&xlsname";'; + put '%mp_binarycopy(iftrue=("&xlsref" ne "0"),inref=&xlsref,outref=outref)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc when backing up source file &xlsname)'; + put ')'; + put 'data sasparams;'; + put 'STATUS=''SUCCESS'';'; + put 'DSID="&mperef";'; put 'run;'; - put '/* now send it back to the frontend */'; put '%webout(OPEN)'; - put '%webout(OBJ,dirlist)'; + put '%webout(OBJ,sasparams)'; put '%webout(CLOSE)'; + put '%mpeterm()'; put '* Service end;'; + run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) -filename sascode clear; \ No newline at end of file +filename sascode clear; + + +%let service=stagedata; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mpe_accesscheck('; + put 'base_table /* base table to check for */'; + put ',outds=med_accesscheck /* WORK table to contain access details */'; + put ',user= /* metadata user to check for */'; + put ',access_level=APPROVE'; + put ');'; + put '%if &user= %then %let user=%mf_getuser();'; + put '%if %index(&outds,.) %then %do;'; + put '%local lib ds;'; + put '%let lib=%scan(&outds,1,.);'; + put '%let ds=%scan(&outds,2,.);'; + put '%if %upcase(&lib) ne WORK %then %do;'; + put '%mp_abort(msg=outds should be a WORK table'; + put ',mac=mpe_accesscheck);'; + put '%end;'; + put '%end;'; + put '%else %let ds=&outds;'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing base_table/user access_level)'; + put ')'; + put '/* ensure any existing table is dropped */'; + put '%mp_dropmembers(&ds)'; + put '/* create a new table for temp use */'; + put 'data; run;'; + put '%local tempds; %let tempds=&syslast;'; + put '/* overwrite with the list of groups */'; + put '%mpe_getgroups(user=&user,outds=&tempds);'; + put '%if &_debug ge 131 %then %do;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select * from &tempds'; + put 'where groupname="&mpeadmins"'; + put 'or groupname in'; + put '(select sas_group from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and access_level="&access_level"'; + put '& ('; + put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; + put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; + put 'or (libref="*ALL*")'; + put ')'; + put ');'; + put '%put base_table=&base_table;'; + put '%put libref=%scan(&base_table,1,.);'; + put '%put dsn=%scan(&base_table,2,.);'; + put '%put access_level=&access_level;'; + put '%mend mpe_accesscheck;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mpe_alerts(alert_event='; + put ', alert_lib='; + put ', alert_ds='; + put ', dsid='; + put ');'; + put '/* exit if not configured */'; + put '%global DC_EMAIL_ALERTS;'; + put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; + put '%put DCNOTE: Email alerts are not configured;'; + put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; + put '%return;'; + put '%end;'; + put '%let alert_event=%upcase(&alert_event);'; + put '%let alert_lib=%upcase(&alert_lib);'; + put '%let alert_ds=%upcase(&alert_ds);'; + put '%let from_user=%mf_getuser();'; + put '/* get users TO which the email should be sent */'; + put 'proc sql noprint;'; + put 'create table users as select distinct a.alert_user,'; + put 'b.user_displayname,'; + put 'b.user_email'; + put 'from &mpelib..mpe_alerts'; + put '(where=(&dc_dttmtfmt. lt tx_to)) a'; + put 'left join &mpelib..mpe_emails'; + put '(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; + put 'where a.alert_event in ("&alert_event","*ALL*")'; + put 'and a.alert_lib in ("&alert_lib","*ALL*")'; + put 'and a.alert_ds in ("&alert_ds","*ALL*");'; + put '%local isThere;'; + put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; + put '%if &isThere>0 %then %do;'; + put 'insert into &syslast set alert_user="&from_user";'; + put '%end;'; + put '/* if no email / displayname is provided, then extract from metadata */'; + put 'data emails;'; + put 'set users;'; + put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; + put '/* get displayname */'; + put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; + put 'if metadata_getnobj(text,1,uri)<=0 then do;'; + put 'putlog "DCWARN: &from_user not found";'; + put 'return;'; + put 'end;'; + put 'else if user_displayname = '''' then do;'; + put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; + put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; + put 'end;'; + put 'end;'; + put 'if index(user_email,''@'') then return;'; + put '/* get email from metadata if not in input table */'; + put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; + put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; + put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; + put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; + put 'end;'; + put 'end;'; + put '/* only keep valid emails */'; + put 'if index(user_email,''@'') ;'; + put 'run;'; + put '%local emails;'; + put 'proc sql noprint;'; + put 'select user_email into: emails separated by ''" "'' from emails;'; + put '/* exit if nobody to email */'; + put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; + put '%put NOTE: No alerts configured (mpe_alerts.sas);'; + put '%return;'; + put '%end;'; + put '/* display email options */'; + put 'data _null_;'; + put 'set sashelp.voption(where=(group=''EMAIL''));'; + put 'put optname ''='' setting;'; + put 'run;'; + put 'filename __out email ("&emails")'; + put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; + put '%local SUBMITTED_TXT;'; + put '%if &alert_event=SUBMITTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_submit;'; + put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; + put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''SUBMITTED_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=APPROVED %then %do;'; + put '/* there is no approval message */'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put '%else %if &alert_event=REJECTED %then %do;'; + put 'data _null_;'; + put 'set &mpelib..mpe_review;'; + put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; + put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; + put 'run;'; + put 'data _null_;'; + put 'File __out lrecl=32000;'; + put 'put ''Dear user,'';'; + put 'put '' '';'; + put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; + put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; + put 'put " ";'; + put 'length txt $2048;'; + put 'txt=symget(''REVIEW_REASON_TXT'');'; + put 'put "Reason provided: " txt;'; + put 'put " ";'; + put 'put "This is an automated email by Data Controller for SAS®. For "'; + put '"documentation, please visit https://docs.datacontroller.io";'; + put 'run;'; + put '%end;'; + put 'filename __out clear;'; + put '%mend mpe_alerts ;'; + put '%macro mpe_loadfail('; + put 'status=FAILED - &syscc'; + put ',now=%sysfunc(datetime())'; + put ',approvals='; + put ',mperef='; + put ',reason_txt='; + put ',mac=mpe_loadfail.sas'; + put ',dc_dttmtfmt=E8601DT26.6'; + put ');'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'update &mpelib..mpe_loads'; + put 'set STATUS=symget(''status'')'; + put ', duration=&dur'; + put ', processed_dttm=&dc_dttmtfmt.'; + put ', approvals = symget(''approvals'')'; + put ', reason_txt= symget(''reason_txt'')'; + put 'where CSV_DIR="&mperef";'; + put '%let syscc=666;'; + put '%mp_abort(msg=%superq(status)\n%superq(reason_txt),mac=&mac)'; + put '%mend mpe_loadfail;'; + put '%macro dc_getservicecode(loc=,outref=);'; + put '%mm_getstpcode(tree=&loc'; + put ',outref=&outref'; + put ')'; + put '%mend dc_getservicecode;'; + put '%macro mp_include(fileref'; + put ',prefix=_'; + put ',opts=SOURCE2'; + put ',errds=work.mp_abort_errds'; + put ')/*/STORE SOURCE*/;'; + put '/* prepare precode */'; + put '%local tempref;'; + put '%let tempref=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &tempref;'; + put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; + put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; + put 'name=scan(xpath,-1,''/\'');'; + put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; + put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; + put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; + put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; + put 'run;'; + put '/* prepare the errds */'; + put 'data &errds;'; + put 'length msg mac $1000;'; + put 'call missing(msg,mac);'; + put 'iftrue=''1=0'';'; + put 'run;'; + put '/* include the include */'; + put '%inc &tempref &fileref/&opts;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; + put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; + put ')'; + put 'filename &tempref clear;'; + put '%mend mp_include;'; + put '%macro mpe_runhook(hookvar);'; + put '%local pgmloc pgmtype;'; + put '%let pgmtype=0;'; + put '%put &sysmacroname: &=hookvar;'; + put '%if %length(&&&hookvar)>0 %then %do;'; + put '%put &sysmacroname: Executing &&&hookvar;'; + put 'data _null_;'; + put 'rule_value=symget("&hookvar");'; + put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; + put 'call symputx(''pgmtype'',''PGM'');'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'end;'; + put 'else do;'; + put 'apploc="%mf_getapploc()";'; + put 'if substr(rule_value,1,1) ne ''/'''; + put 'then rule_value=cats(apploc,''/'',rule_value);'; + put 'call symputx(''pgmloc'',rule_value);'; + put 'call symputx(''pgmtype'',''JOB'');'; + put 'end;'; + put 'run;'; + put '%if &pgmtype=PGM %then %do;'; + put 'filename sascode "&pgmloc";'; + put '%end;'; + put '%else %do;'; + put '%dc_getservicecode(loc=&pgmloc'; + put ',outref=sascode'; + put ')'; + put '%end;'; + put '/* the below script will need to modify work.STAGING_DS */'; + put '%local x; %let x=; /* legacy feature */'; + put '%mp_include(sascode)'; + put '%end;'; + put '%mend mpe_runhook;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_mkdir(dir'; + put ')/*/STORE SOURCE*/;'; + put '%local lastchar child parent;'; + put '%let lastchar = %substr(&dir, %length(&dir));'; + put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; + put '/* Cannot create drive mappings */'; + put '%return;'; + put '%end;'; + put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; + put '/* last char is a slash */'; + put '%if (%length(&dir) eq 1) %then %do;'; + put '/* one single slash - root location is assumed to exist */'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '/* strip last slash */'; + put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; + put '%end;'; + put '%end;'; + put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; + put '/* directory does not exist so prepare to create */'; + put '/* first get the childmost directory */'; + put '%let child = %scan(&dir, -1, %str(/\:));'; + put '/*'; + put 'If child name = path name then there are no parents to create. Else'; + put 'they must be recursively scanned.'; + put '*/'; + put '%if (%length(&dir) gt %length(&child)) %then %do;'; + put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; + put '%mf_mkdir(&parent)'; + put '%end;'; + put '/*'; + put 'Now create the directory. Complain loudly of any errs.'; + put '*/'; + put '%let dname = %sysfunc(dcreate(&child, &parent));'; + put '%if (%bquote(&dname) eq ) %then %do;'; + put '%put %str(ERR)OR: could not create &parent + &child;'; + put '%abort cancel;'; + put '%end;'; + put '%else %do;'; + put '%put Directory created: &dir;'; + put '%end;'; + put '%end;'; + put '/* exit quietly if directory did exist.*/'; + put '%mend mf_mkdir;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; + put ', fref=0'; + put ', outds=work.mp_dirlist'; + put ', getattrs=NO'; + put ', maxdepth=0'; + put ', level=0 /* The level of recursion to perform. For internal use only. */'; + put ')/*/STORE SOURCE*/;'; + put '%let getattrs=%upcase(&getattrs)XX;'; + put '/* temp table */'; + put '%local out_ds;'; + put 'data;run;'; + put '%let out_ds=%str(&syslast);'; + put '/* drop main (top) table if it exists */'; + put '%if &level=0 %then %do;'; + put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; + put '%end;'; + put 'data &out_ds(compress=no'; + put 'keep=file_or_folder filepath filename ext msg directory level'; + put ');'; + put 'length directory filepath $500 fref fref2 $8 file_or_folder $6 filename $80'; + put 'ext $20 msg $200 foption $16;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'retain level &level;'; + put '%if &fref=0 %then %do;'; + put 'rc = filename(fref, "&path");'; + put '%end;'; + put '%else %do;'; + put 'fref="&fref";'; + put 'rc=0;'; + put '%end;'; + put 'if rc = 0 then do;'; + put 'did = dopen(fref);'; + put 'if did=0 then do;'; + put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; + put 'msg=sysmsg();'; + put 'put msg;'; + put 'put _all_;'; + put 'stop;'; + put 'end;'; + put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; + put 'numopts=doptnum(did);'; + put 'do i=1 to numopts;'; + put 'foption=doptname(did,i);'; + put 'if foption=:''Directory'' then i=numopts;'; + put 'end;'; + put 'directory=dinfo(did,foption);'; + put 'rc = filename(fref);'; + put 'end;'; + put 'else do;'; + put 'msg=sysmsg();'; + put 'put _all_;'; + put 'stop;'; + put 'end;'; + put 'dnum = dnum(did);'; + put 'do i = 1 to dnum;'; + put 'filename = dread(did, i);'; + put 'filepath=cats(directory,''/'',filename);'; + put 'rc = filename(fref2,filepath);'; + put 'midd=dopen(fref2);'; + put 'dmsg=sysmsg();'; + put 'if did > 0 then file_or_folder=''folder'';'; + put 'rc=dclose(midd);'; + put 'midf=fopen(fref2);'; + put 'fmsg=sysmsg();'; + put 'if midf > 0 then file_or_folder=''file'';'; + put 'rc=fclose(midf);'; + put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; + put 'then file_or_folder=''file'';'; + put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; + put 'else if file_or_folder='''' then file_or_folder=''locked'';'; + put 'if file_or_folder=''file'' then do;'; + put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; + put 'if filename = ext then ext = '' '';'; + put 'end;'; + put 'else do;'; + put 'ext='''';'; + put 'file_or_folder=''folder'';'; + put 'end;'; + put 'output;'; + put 'end;'; + put 'rc = dclose(did);'; + put 'stop;'; + put 'run;'; + put '%if %substr(&getattrs,1,1)=Y %then %do;'; + put 'data &out_ds;'; + put 'set &out_ds;'; + put 'length infoname infoval $60 fref $8;'; + put 'if _n_=1 then call missing(fref);'; + put 'rc=filename(fref,filepath);'; + put 'drop rc infoname fid i close fref;'; + put 'if file_or_folder=''file'' then do;'; + put 'fid=fopen(fref);'; + put 'if fid le 0 then do;'; + put 'msg=sysmsg();'; + put 'putlog "Could not open file:" filepath fid= ;'; + put 'sasname=''_MCNOTVALID_'';'; + put 'output;'; + put 'end;'; + put 'else do i=1 to foptnum(fid);'; + put 'infoname=foptname(fid,i);'; + put 'infoval=finfo(fid,infoname);'; + put 'sasname=compress(infoname, ''_'', ''adik'');'; + put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; + put 'if upcase(sasname) ne ''FILENAME'' then output;'; + put 'end;'; + put 'close=fclose(fid);'; + put 'end;'; + put 'else do;'; + put 'fid=dopen(fref);'; + put 'if fid le 0 then do;'; + put 'msg=sysmsg();'; + put 'putlog "Could not open folder:" filepath fid= ;'; + put 'sasname=''_MCNOTVALID_'';'; + put 'output;'; + put 'end;'; + put 'else do i=1 to doptnum(fid);'; + put 'infoname=doptname(fid,i);'; + put 'infoval=dinfo(fid,infoname);'; + put 'sasname=compress(infoname, ''_'', ''adik'');'; + put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; + put 'if upcase(sasname) ne ''FILENAME'' then output;'; + put 'end;'; + put 'close=dclose(fid);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by filepath sasname;'; + put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; + put 'id sasname;'; + put 'var infoval;'; + put 'by filepath file_or_folder filename ext ;'; + put 'run;'; + put '%end;'; + put 'data &out_ds;'; + put 'set &out_ds(where=(filepath ne ''''));'; + put 'run;'; + put '/**'; + put '* The above transpose can mean that some updates create additional columns.'; + put '* This necessitates the occasional use of datastep over proc append.'; + put '*/'; + put '%if %mf_existds(&outds) %then %do;'; + put '%local basevars appvars newvars;'; + put '%let basevars=%mf_getvarlist(&outds);'; + put '%let appvars=%mf_getvarlist(&out_ds);'; + put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; + put '%if &newvars>0 %then %do;'; + put 'data &outds;'; + put 'set &outds &out_ds;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&outds data=&out_ds force nowarn;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&outds data=&out_ds;'; + put 'run;'; + put '%end;'; + put '/* recursive call */'; + put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; + put 'data _null_;'; + put 'set &out_ds;'; + put 'where file_or_folder=''folder'';'; + put 'length code $10000;'; + put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; + put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; + put 'put code=;'; + put 'call execute(code);'; + put 'run;'; + put '%end;'; + put '/* tidy up */'; + put 'proc sql;'; + put 'drop table &out_ds;'; + put '%mend mp_dirlist;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro mpe_loader('; + put 'mperef= /* name of subfolder containing the staged data */'; + put ',mDebug=0 /* set to 1 for development or debugging */'; + put ',submitted_reason_txt= /* populates column of same name in sumo_approvals*/'; + put ',approver= /* allows a userid to be provided for direct approval email */'; + put ',url= /* optional - url for debugging */'; + put ',dlm=%str(,)'; + put ',termstr=crlf'; + put ',dc_dttmtfmt=E8601DT26.6'; + put ');'; + put '%put entered mpe_loader from &=_program;'; + put '%put &=url;'; + put '%put &=termstr;'; + put '%put &=dlm;'; + put '/* determine full path to CSV directory */'; + put '%local now;'; + put '%let now=&dc_dttmtfmt;'; + put '%put &=now;'; + put '/**'; + put '* get full path to package (only subdirectory passed through)'; + put '*/'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(mperef mpelocapprovals)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing: mperef mpelocapprovals)'; + put ')'; + put '%let csv_dir=%trim(&mpelocapprovals/&mperef);'; + put '/* exit if package has already been uploaded */'; + put '%local check;'; + put 'proc sql noprint;'; + put 'select count(*) into: check'; + put 'from &mpelib..mpe_loads'; + put 'where csv_dir="&mperef";'; + put '%if &check %then %do;'; + put '%mp_abort(msg=Folder &mperef already has an entry in &mpelib..mpe_loads'; + put ',mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '/* get CSV directory contents */'; + put '%mp_dirlist(path=&csv_dir,outds=WORK.getfiles)'; + put 'data WORK.csvs;'; + put 'set WORK.getfiles;'; + put 'if upcase(scan(filename,3,''.''))=''CSV'' then do;'; + put 'lib=upcase(scan(filename,1,''.''));'; + put 'ds=upcase(scan(filename,2,''.''));'; + put 'output;'; + put 'end;'; + put 'run;'; + put '/* get table attributes */'; + put 'proc sql noprint;'; + put 'create table WORK.sumo_tables as'; + put 'select a.filename, b.*'; + put 'from WORK.csvs a'; + put 'left join &mpelib..mpe_tables b'; + put 'on a.lib=b.libref'; + put 'and a.ds=b.dsn'; + put 'where b.tx_from le &now'; + put 'and &now lt b.tx_to;'; + put '/* define user as meta user if available */'; + put '%local user;'; + put '%let user=%mf_getuser();'; + put '/* check if there is actually a table to load */'; + put '%if %mf_getattrn(WORK.sumo_tables,NLOBS)=0 %then %do;'; + put '%let msg=Table not registered in &mpelib..mpe_tables;'; + put '%mpe_loadfail('; + put 'status=&msg'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_loads'; + put 'set USER_NM="&user"'; + put ',STATUS=''IN PROGRESS'''; + put ',CSV_dir="&mperef"'; + put ',PROCESSED_DTTM=&now;'; + put '/* import CSV */'; + put '%let droplist=;'; + put '%let attrib=;'; + put '%let droplist=;'; + put '%let libref=;'; + put '%let DS=;'; + put '/* get table info */'; + put 'data _null_;'; + put 'set sumo_tables;'; + put 'libds=upcase(cats(libref,''.'',dsn));'; + put 'call symputx(''orig_libds'',libds);'; + put 'is_fmt=0;'; + put 'if substr(cats(reverse(dsn)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'libds=''work.fmtextract'';'; + put 'is_fmt=1;'; + put 'end;'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'call symputx(''libds'',libds);'; + put 'call symputx(''FNAME'',filename);'; + put 'call symputx(''LIBREF'',libref);'; + put 'call symputx(''DS'',dsn);'; + put 'call symputx(''LOADTYPE'',loadtype);'; + put 'call symputx(''BUSKEY'',buskey);'; + put 'call symputx(''VAR_TXFROM'',var_txfrom);'; + put 'call symputx(''VAR_TXTO'',var_txto);'; + put 'call symputx(''VAR_BUSFROM'',var_busfrom);'; + put 'call symputx(''VAR_BUSTO'',var_busto);'; + put 'call symputx(''VAR_PROCESSED'',var_processed);'; + put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING);'; + put 'call symputx(''POST_EDIT_HOOK'',POST_EDIT_HOOK);'; + put 'call symputx(''NOTES'',NOTES);'; + put 'call symputx(''PK'',coalescec(RK_UNDERLYING,buskey));'; + put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED,''l'');'; + put 'put (_all_)(=);'; + put 'stop;'; + put 'run;'; + put '%if %length(&ds)=0 %then %do;'; + put '%let msg=%str(ERR)OR: Unable to extract record from &mpelib..mpe_tables;'; + put '%mpe_loadfail('; + put 'status=FAILED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '/* export format catalog */'; + put '%mp_cntlout('; + put 'iftrue=(&is_fmt=1)'; + put ',libcat=&orig_libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '/* user must have EDIT access to load a table */'; + put '%mpe_accesscheck(&orig_libds'; + put ',outds=work.sumo_access'; + put ',user=&user'; + put ',access_level=EDIT )'; + put '%put exiting accesscheck;'; + put '%if %mf_getattrn(work.sumo_access,NLOBS)=0 %then %do;'; + put '%let msg=%str(ERR)OR: User is not authorised to edit &orig_libds!;'; + put '%mpe_loadfail('; + put 'status=UNAUTHORISED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '%put now importing: "&csv_dir/&fname" termstr=&termstr;'; + put '/* get the variables from the CSV */'; + put 'data vars_csv1(index=(idxname=(varnum name)) drop=infile);'; + put 'infile "&csv_dir/&fname" lrecl=32767 dsd termstr=&termstr encoding=''utf-8'';'; + put 'input;'; + put 'length infile $32767;'; + put 'infile=compress(_infile_,''"'',);'; + put 'infile=compress(infile,"''",);'; + put 'format name $32.;'; + put 'putlog ''received vars: '' infile;'; + put 'call symputx(''received_vars'',infile,''l'');'; + put 'do varnum=1 to countw(infile,"&dlm");'; + put '/* keep writeable chars */'; + put 'name=compress(upcase(scan(infile,varnum)),,''kw'');'; + put 'if name ne "_____DELETE__THIS__RECORD_____" then output;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '%put received_vars = &received_vars;'; + put '%dc_assignlib(WRITE,&libref)'; + put '/* get list of variables and their formats */'; + put 'proc contents noprint data=&libds'; + put 'out=vars(keep=name type length varnum format:);'; + put 'run;'; + put 'data vars(keep=name type length varnum format);'; + put 'set vars(rename=(format=format2 type=type2));'; + put 'name=upcase(name);'; + put 'format2=upcase(format2);'; + put '/* not interested in transaction or processing dates'; + put '(append table must be supplied without them) */'; + put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED"'; + put ',"_____DELETE__THIS__RECORD_____");'; + put 'if type2 in (2,6) then do;'; + put 'length format $49.;'; + put 'if format2='''' then format=cats(''$'',length,''.'');'; + put 'else format=cats(format2,max(formatl,length),''.'');'; + put 'type=''char'';'; + put 'end;'; + put 'else do;'; + put 'if format2='''' then format=cats(length,''.'');'; + put 'else if format2=:''DATETIME'' then do;'; + put 'format=''DATETIME19.'';'; + put 'end;'; + put 'else if format2=:''DATE'' or format2=:''DDMMYY'''; + put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'''; + put 'or format2=:''E8601DA'' or format2=:''B8601DA'''; + put 'then do;'; + put 'format=''DATE9.'';'; + put 'end;'; + put 'else if format2=''BEST'' & formatl=0 then format=cats(''BEST'',length,''.'');'; + put '/*'; + put 'else if format2=:''DATETIME'' or format2=:''DATE'' or format2=:''DDMMYY'''; + put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'' then do;'; + put '*date or datetime format so use original ;'; + put 'dsid=open("&libref..&ds");'; + put 'vnum=varnum(dsid,name);'; + put 'format=varfmt(dsid,vnum);'; + put 'dsid=close(dsid);'; + put 'end;'; + put '*/'; + put 'else do;'; + put 'if formatl=0 then formatl=length;'; + put 'format=cats(format2,formatl,''.'',formatd);'; + put 'end;'; + put 'type=''num'';'; + put 'end;'; + put 'put (_all_)(=);'; + put 'run;'; + put '/* build attrib statement */'; + put 'data vars_attrib;'; + put 'length attrib_statement $32767 type2 $20;'; + put 'set vars end=lastobs;'; + put 'retain attrib_statement;'; + put 'if type=''char'' then type2=''$'';'; + put 'str1=catx('' '',name,''length='',cats(type2,length));'; + put 'attrib_statement=trim(attrib_statement)!!'' ''!!trim(str1);'; + put 'if lastobs then call symputx(''ATTRIB'',attrib_statement,''L'');'; + put 'run;'; + put '/* build input statement - first get vars in right order'; + put 'and join with target formats*/'; + put 'proc sql noprint;'; + put 'create table vars_csv2 as'; + put 'select b.*'; + put 'from vars_csv1 a'; + put 'left join vars_attrib b'; + put 'on a.name=b.name'; + put 'order by a.varnum;'; + put '/* make sure that the variables we are importing, actually'; + put 'exist on the target table */'; + put '/** edit - extra variables are now simply ignored'; + put '%local very_bad_vars;'; + put 'select name into: very_bad_vars separated by '' '''; + put 'from vars_csv1'; + put 'where name not in (select name from vars)'; + put 'and name ne "_____DELETE__THIS__RECORD_____";'; + put '%if %length(&very_bad_vars) > 0 %then %do;'; + put '%let msg=%str(WARNING: The following vars are not defined in %trim('; + put ')&libref..&ds, yet they exist in &csv_dir/&ds..csv: &very_bad_vars);'; + put '%mpe_loadfail('; + put 'status=FAILED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '**/'; + put '/* now build input statement */'; + put 'data final_check;'; + put 'set vars_csv2 end=lastobs;'; + put 'length input_statement $32767 type2 $20 droplist $32767;'; + put 'retain input_statement droplist;'; + put '/* Build input statement - CATCH EXCEPTIONS HERE!*/'; + put 'if name in (''QUOTE_DTTM'') then do;'; + put 'name=cats(name,''2'');'; + put 'droplist=catx('' '',trim(droplist),name);'; + put 'type2=''$20.'';/* converted below */'; + put 'end;'; + put 'else if type=''char'' then type2=cats(''$CHAR'', length,''.'');'; + put 'else if format=''DATE9.'' then type2=''ANYDTDTE.'';'; + put 'else if format=''DATETIME19.'' then type2=''ANYDTDTM.'';'; + put 'else if format=:''TIME'' then type2=''ANYDTTME.'';'; + put 'else if name='''' then do;/* additional vars in input data */'; + put 'name=''_____DELETE__THIS__VARIABLE_____'';'; + put 'droplist=catx('' '',trim(droplist),''_____DELETE__THIS__VARIABLE_____'');'; + put 'type2=''$1.'';'; + put 'end;'; + put 'else type2=''best32.'';'; + put '* else type2=cats(length,''.'');'; + put 'input_statement=catx('' '',input_statement,name,'':'',type2);'; + put 'if lastobs then do;'; + put 'call symputx(''INPUT'', input_statement,''L'');'; + put 'if trim(droplist) ne '''' then'; + put 'call symputx(''droplist'',"drop "!!droplist!!'';'',''l'');'; + put 'end;'; + put 'run;'; + put '%let mpeloadstop=0;'; + put 'data work.STAGING_DS;'; + put '&droplist;'; + put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767'; + put 'firstobs=2 missover termstr=&termstr encoding=''utf-8'';'; + put 'attrib &attrib ;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'; + put 'input'; + put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____ %then %do;'; + put '_____DELETE__THIS__RECORD_____: $3.'; + put '%end;'; + put '&input;'; + put '%if %index(%quote(&attrib.),UNLIKELY_VAR ) %then %do;'; + put '/*UNLIKELY_VAR=input(UNLIKELY_VAR2,ANYDTDTM21.);*/'; + put '/* SPECIAL LOGIC FOR SPECIAL VARS */'; + put '%end;'; + put 'if _error_ ne 0 then do;'; + put 'putlog _infile_;'; + put 'call symputx(''mpeloadstop'',_n_);'; + put 'stop;'; + put 'end;'; + put '/* remove all blank rows */'; + put 'if compress(cats(of _all_),''.'')='' '' then delete;'; + put 'run;'; + put '%if &mpeloadstop>0 %then %do;'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put '%put redirecting log output to capture return message;'; + put '%put currentloc=&logloc;'; + put 'filename tmp temp;'; + put 'proc printto log=tmp;run;'; + put 'data _null_;'; + put '&droplist;'; + put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767 firstobs=2'; + put 'missover termstr=&termstr;'; + put 'attrib &attrib ;'; + put 'input'; + put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____'; + put '%then %do;'; + put '_____DELETE__THIS__RECORD_____: $3.'; + put '%end;'; + put '&input;'; + put 'if _error_ then stop;'; + put 'run;'; + put '/* get log back */'; + put 'proc printto log=&logloc;run;'; + put 'data _null_; infile tmp; input; putlog _infile_;run;'; + put '/* scan log for invalid data warning */'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'length msg1 msg2 msg3 msg4 msg5 msg url $32767;'; + put 'if index(_infile_,''NOTE: Invalid data for'') then do;'; + put 'msg1=_infile_;'; + put 'input;'; + put 'msg2=_infile_;'; + put 'input;'; + put 'msg3=_infile_;'; + put 'input;'; + put 'msg4=_infile_;'; + put 'input;'; + put 'msg5=_infile_;'; + put 'url=symget(''url'');'; + put 'msg=catx(''\n'',msg1,msg2,msg3,msg4,msg5,''\n'',url);'; + put 'call symputx(''msg'',msg);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%mpe_loadfail('; + put 'status=FAILED'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%superq(msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '/* check that the table is unique on PK */'; + put 'proc sort data=work.STAGING_DS dupout=work.MPE_DUPS (keep=&pk) nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.MPE_DUPS,NLOBS)>0 %then %do;'; + put '%local duplist;'; + put 'data _null_;'; + put 'set work.mpe_dups;'; + put '%do i=1 %to %sysfunc(countw(&pk));'; + put '%let iWord=%scan(&pk,&i);'; + put 'call symputx(''duplist'',symget(''duplist'')!!'; + put '" &iWord="!!trim(&iWord));'; + put '%end;'; + put 'run;'; + put '%let msg=This upload contains duplicates on the Primary Key columns %trim('; + put ')(&pk) \n Please remove the duplicates and try again. %trim('; + put ')\n &duplist \n ;'; + put '%mp_abort(msg=%superq(msg),mac=mpe_loader.sas);'; + put '%return;'; + put '%end;'; + put '%if &syscc gt 4 %then %do;'; + put '%let msg=SYSCC=&syscc prior to post edit hook (%superq(syserrortext));'; + put '%mpe_loadfail('; + put 'status=FAILED - &syscc'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%superq(msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '%mpe_runhook(POST_EDIT_HOOK)'; + put '/* stop if err */'; + put '%if &syscc gt 4 %then %do;'; + put '%let msg=ERR in post edit hook (&post_edit_hook);'; + put '%mpe_loadfail('; + put 'status=FAILED - &syscc'; + put ',now=&now'; + put ',mperef=&mperef'; + put ',reason_txt=%quote(&msg)'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '/**'; + put '* send to approve process'; + put '*/'; + put '/* create a dataset key (datetime plus 3 digit random number plus PID) */'; + put '/* send dataset to approvals subfolder with same name as subfolder */'; + put 'libname approval "&mpelocapprovals/&mperef";'; + put 'data approval.&mperef;'; + put 'set work.staging_ds;'; + put 'run;'; + put 'proc export data=approval.&mperef'; + put 'outfile="&mpelocapprovals/&mperef/&mperef..csv"'; + put 'dbms=csv'; + put 'replace;'; + put 'run;'; + put '/* update the control dataset with relevant info */'; + put 'data append_app;'; + put 'if 0 then set &mpelib..mpe_submit;/* get formats */'; + put 'call missing (of _all_);'; + put 'TABLE_ID="&mperef";'; + put 'submit_status_cd=''SUBMITTED'';'; + put 'submitted_by_nm="%mf_getuser()";'; + put 'base_lib="&libref";'; + put 'base_ds="&ds";'; + put 'submitted_on_dttm=&now;'; + put 'submitted_reason_txt=symget(''submitted_reason_txt'');'; + put 'input_vars=%mf_getattrn(approval.&mperef,NVARS);'; + put 'input_obs=%mf_getattrn(approval.&mperef,NLOBS);'; + put 'num_of_approvals_required=&NUM_OF_APPROVALS_REQUIRED;'; + put 'num_of_approvals_remaining=&NUM_OF_APPROVALS_REQUIRED;'; + put 'reviewed_by_nm='''';'; + put 'reviewed_on_dttm=.;'; + put 'run;'; + put '%mp_lockanytable(LOCK,lib=&mpelib,ds=mpe_submit,'; + put 'ref=%str(&mperef update in &_program),'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'proc append base= &mpelib..mpe_submit data=append_app;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&mpelib,ds=mpe_submit,'; + put 'ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put '/* send email to REVIEW members */'; + put '%put sending mpe_alerts;'; + put '%mpe_alerts(alert_event=SUBMITTED'; + put ', alert_lib=&libref'; + put ', alert_ds=&ds'; + put ', dsid=&mperef'; + put ')'; + put '/* DISABLE EMAIL FOR NOW'; + put '%let b2=REASON: %quote(&submitted_reason_txt);'; + put '%local URLNOTES;'; + put '%if %length(¬es)>0 %then %let URLNOTES=%quote(%sysfunc(urlencode(¬es)));'; + put '%let b3=%str(Click to review / approve: )%trim('; + put ')%str(http://&_srvname:&_srvport&_url?_PROGRAM=/Web/approvals&)%trim('; + put ')TABLEID=&dsid%str(&)BASETABLE=&libref..&ds%str(&)NOTES=&URLNOTES;'; + put '%let b4=%str(Reference ID: &mperef);'; + put '*/'; + put '%put mpe_loader finishing up with syscc=&syscc;'; + put '%if &syscc le 4 %then %do;'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'putlog ''Updating mpe_loads with the following query:'';'; + put 'putlog "update &mpelib..mpe_loads set STATUS=''SUCCESS''";'; + put 'putlog " , duration=" dur;'; + put 'putlog " , processed_dttm=" now;'; + put 'putlog " , approvals = ''&libref..&ds''";'; + put 'putlog " where CSV_DIR=''&mperef'';";'; + put 'run;'; + put 'proc sql;'; + put 'update &mpelib..mpe_loads set STATUS=''SUCCESS'''; + put ', duration=&dur'; + put ', processed_dttm=&now'; + put ', approvals = "&libref..&ds"'; + put 'where CSV_DIR="&mperef";'; + put '%end;'; + put '%else %do;'; + put '%mpe_loadfail('; + put 'status="FAILED - &syscc"'; + put ',now=&now'; + put ',approvals=&libref..&ds'; + put ',mperef=&mperef'; + put ',dc_dttmtfmt=&dc_dttmtfmt.'; + put ')'; + put '%return;'; + put '%end;'; + put '%mend mpe_loader;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mpe_filtermaster(mode,libds,'; + put 'dclib=,'; + put 'filter_rk=-1,'; + put 'outref=0,'; + put 'outds=work.query'; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%let mode=%upcase(&mode);'; + put '%let libds=%upcase(&libds);'; + put '%mp_abort(iftrue= ('; + put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; + put ')'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid MODE: &mode)'; + put ')'; + put '%mp_abort(iftrue= (&outref = 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Please provide a fileref!)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put 'filename &outref temp;'; + put '/* ensure outputs exist */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put '' '';'; + put 'run;'; + put 'data &outds;'; + put 'set &dclib..mpe_filtersource;'; + put 'stop;'; + put 'run;'; + put '/**'; + put '* Deal with FILTER_RK first'; + put '*/'; + put '%if &filter_rk gt 0 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''( ''@@;'; + put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; + put 'call symputx(''filter_hash'',filter_hash,''l'');'; + put 'run;'; + put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; + put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; + put 'by filter_line;'; + put 'run;'; + put '%mp_filtergenerate(&outds,outref=&outref)'; + put '%end;'; + put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; + put '%local varfrom varto;'; + put '%let varfrom=0;'; + put 'proc sql;'; + put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; + put 'from &dclib..MPE_TABLES'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; + put '%put &=varfrom;'; + put '%put &=varto;'; + put '/**'; + put '* Check if the date variables were mentioned in the query'; + put '* This is a trigger for serving a historical view instead of current'; + put '* we skip this part when checking an ULOAD as there are no date vars'; + put '*/'; + put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; + put '%local validityvars;'; + put 'proc sql;'; + put 'select count(*) into: validityvars'; + put 'from &outds'; + put 'where variable_nm in ("&varfrom","&varto");'; + put '%if &validityvars=0 %then %do;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'length filter_text $32767;'; + put 'varfrom=symget(''varfrom'');'; + put 'varto=symget(''varto'');'; + put 'filter_text=catx('' '','; + put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; + put ');'; + put 'if &filter_rk > 0 then put ''AND '' filter_text;'; + put 'else put filter_text;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '/**'; + put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; + put '*/'; + put '/* first determine users group membership */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; + put '%local admin_check;'; + put 'proc sql;'; + put 'select count(*) into: admin_check'; + put 'from work.groups'; + put 'where groupname="&mpeadmins";'; + put '%put &sysmacroname: &=admin_check &=mpeadmins;'; + put '%if &admin_check=0 %then %do;'; + put '%local scopeval;'; + put '%if &mode=DLOAD %then %let scopeval=VIEW;'; + put '%if &mode=ULOAD %then %let scopeval=EDIT;'; + put '%else %let scopeval=&mode;'; + put '/* extract relevant rows */'; + put '%local rlsds;'; + put '%let rlsds=%mf_getuniquename();'; + put 'proc sql;'; + put 'create table work.&rlsds as'; + put 'select rls_group,'; + put 'rls_group_logic as group_logic,'; + put 'rls_subgroup_logic as subgroup_logic,'; + put 'rls_subgroup_id as subgroup_id,'; + put 'rls_variable_nm as variable_nm,'; + put 'rls_operator_nm as operator_nm,'; + put 'rls_raw_value as raw_value'; + put 'from &mpelib..mpe_row_level_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and rls_scope in ("&scopeval",''ALL'')'; + put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; + put 'and rls_libref="%scan(&libds,1,.)"'; + put 'and rls_table="%scan(&libds,2,.)"'; + put 'and rls_active=1'; + put 'order by rls_group,rls_subgroup_id;'; + put '%if &sqlobs>0 %then %do;'; + put '/* check if we currently have filter or not */'; + put 'data ;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put 'data _null_;'; + put 'set &syslast;'; + put 'file &outref mod;'; + put 'if newfilter=1 then put ''('';'; + put 'else put ''AND ('';'; + put 'run;'; + put '/* loop through and apply filters for each group membership */'; + put '%local fref ds;'; + put '%let fref=%mf_getuniquefileref();'; + put '%let ds=%mf_getuniquename();'; + put 'proc sql noprint;'; + put 'select distinct rls_group into : group1 -'; + put 'from work.&rlsds;'; + put '%do i=1 %to &sqlobs;'; + put 'data work.&ds;'; + put 'set work.&rlsds;'; + put 'where rls_group="&&group&i";'; + put 'drop rls_group;'; + put 'run;'; + put '%mp_filtergenerate(&ds,outref=&fref)'; + put 'data _null_;'; + put 'infile &fref;'; + put 'file &outref mod;'; + put 'input;'; + put 'if &i>1 and _n_=1 then put '' OR '';'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'put '')'';'; + put 'run;'; + put '%end; /* &sqlobs>0 */'; + put '%else %do;'; + put '%put &sysmacroname: no matching groups;'; + put 'data _null_;'; + put 'set work.groups;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Row Level Security Generation Error)'; + put ')'; + put '%end; /* &admin_check=0 */'; + put '%put leaving &sysmacroname with the following query:;'; + put '%local empty;'; + put '%let empty=0;'; + put 'data _null_;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'putlog _infile_;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; + put 'put ''1=1'';'; + put 'call symputx(''empty'',1,''l'');'; + put 'end;'; + put 'run;'; + put '%if &empty=1 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%mend mpe_filtermaster;'; + put '%macro removecolsfromwork(col);'; + put '/* only an issue if debug mode enabled */'; + put '%global _debug;'; + put '%if &_debug ge 131 %then %do;'; + put '%let col=%upcase(&col);'; + put '%local memlist;'; + put 'proc sql noprint;'; + put 'select distinct memname into: memlist'; + put 'separated by '' '''; + put 'from dictionary.columns'; + put 'where libname=''WORK'' and upcase(name)="&col";'; + put '%if %mf_isblank(&memlist) %then %return;'; + put '%mp_dropmembers(list=&memlist)'; + put '%end;'; + put '%mend removecolsfromwork;'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mcf_init(func'; + put ')/*/STORE SOURCE*/;'; + put '%if not (%symexist(SASJS_PREFIX)) %then %do;'; + put '%global SASJS_PREFIX;'; + put '%let SASJS_PREFIX=SASJS;'; + put '%end;'; + put '%let func=%upcase(&func);'; + put '/* the / character is just a seperator */'; + put '%global &sasjs_prefix._FUNCTIONS;'; + put '%if %index(&&&sasjs_prefix._FUNCTIONS,&func/)>0 %then %do;'; + put '1'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%let &sasjs_prefix._FUNCTIONS=&&&sasjs_prefix._FUNCTIONS &func/;'; + put '0'; + put '%end;'; + put '%mend mcf_init;'; + put '%macro mcf_getfmttype(wrap=NO'; + put ',insert_cmplib=DEPRECATED'; + put ',lib=WORK'; + put ',cat=SASJS'; + put ',pkg=UTILS'; + put ')/*/STORE SOURCE*/;'; + put '%local i var cmpval found;'; + put '%if %mcf_init(mcf_getfmttype)=1 %then %return;'; + put '%if &wrap=YES %then %do;'; + put 'proc fcmp outlib=&lib..&cat..&pkg;'; + put '%end;'; + put 'function mcf_getfmttype(fmtnm $) $8;'; + put 'if substr(fmtnm,1,1)=''$'' then return(''CHAR'');'; + put 'else do;'; + put '/* extract NAME */'; + put 'length fmt $32;'; + put 'fmt=scan(fmtnm,1,''.'');'; + put 'do while ('; + put 'substr(fmt,length(fmt),1) in (''1'',''2'',''3'',''4'',''5'',''6'',''7'',''8'',''9'',''0'')'; + put ');'; + put 'if length(fmt)=1 then fmt=''W'';'; + put 'else fmt=substr(fmt,1,length(fmt)-1);'; + put 'end;'; + put '/* apply lookups */'; + put 'if cats(fmt) in (''DATETIME'',''B8601DN'',''B8601DN'',''B8601DT'',''B8601DT'''; + put ',''B8601DZ'',''B8601DZ'',''DATEAMPM'',''DTDATE'',''DTMONYY'',''DTWKDATX'',''DTYEAR'''; + put ',''DTYYQC'',''E8601DN'',''E8601DN'',''E8601DT'',''E8601DT'',''E8601DZ'',''E8601DZ'')'; + put 'then return(''DATETIME'');'; + put 'else if fmt in (''DATE'',''YYMMDD'',''B8601DA'',''B8601DA'',''DAY'',''DDMMYY'''; + put ',''DDMMYYB'',''DDMMYYC'',''DDMMYYD'',''DDMMYYN'',''DDMMYYP'',''DDMMYYS'',''DDMMYYx'''; + put ',''DOWNAME'',''E8601DA'',''E8601DA'',''JULDAY'',''JULIAN'',''MMDDYY'',''MMDDYYB'''; + put ',''MMDDYYC'',''MMDDYYD'',''MMDDYYN'',''MMDDYYP'',''MMDDYYS'',''MMDDYYx'',''MMYY'''; + put ',''MMYYC'',''MMYYD'',''MMYYN'',''MMYYP'',''MMYYS'',''MMYYx'',''MONNAME'',''MONTH'''; + put ',''MONYY'',''PDJULG'',''PDJULI'',''QTR'',''QTRR'',''WEEKDATE'',''WEEKDATX'',''WEEKDAY'''; + put ',''WEEKU'',''WEEKV'',''WEEKW'',''WORDDATE'',''WORDDATX'',''YEAR'',''YYMM'',''YYMMC'''; + put ',''YYMMD'',''YYMMDDB'',''YYMMDDC'',''YYMMDDD'',''YYMMDDN'',''YYMMDDP'',''YYMMDDS'''; + put ',''YYMMDDx'',''YYMMN'',''YYMMP'',''YYMMS'',''YYMMx'',''YYMON'',''YYQ'',''YYQC'',''YYQD'''; + put ',''YYQN'',''YYQP'',''YYQR'',''YYQRC'',''YYQRD'',''YYQRN'',''YYQRP'',''YYQRS'',''YYQRx'''; + put ',''YYQS'',''YYQx'',''YYQZ'') then return(''DATE'');'; + put 'else if fmt in (''TIME'',''B8601LZ'',''B8601LZ'',''B8601TM'',''B8601TM'',''B8601TZ'''; + put ',''B8601TZ'',''E8601LZ'',''E8601LZ'',''E8601TM'',''E8601TM'',''E8601TZ'',''E8601TZ'''; + put ',''HHMM'',''HOUR'',''MMSS'',''TIMEAMPM'',''TOD'') then return(''TIME'');'; + put 'else return(''NUM'');'; + put 'end;'; + put 'endsub;'; + put '%if &wrap=YES %then %do;'; + put 'quit;'; + put '%end;'; + put '/* insert the CMPLIB if not already there */'; + put '%let cmpval=%sysfunc(getoption(cmplib));'; + put '%let found=0;'; + put '%do i=1 %to %sysfunc(countw(&cmpval,%str( %(%))));'; + put '%let var=%scan(&cmpval,&i,%str( %(%)));'; + put '%if &var=&lib..&cat %then %let found=1;'; + put '%end;'; + put '%if &found=0 %then %do;'; + put 'options insert=(CMPLIB=(&lib..&cat));'; + put '%end;'; + put '%mend mcf_getfmttype;'; + put '%macro mf_getVarFormat(libds /* two level ds name */'; + put ', var /* variable name from which to return the format */'; + put ', force=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vformat rc vlen vtype;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable format */'; + put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* supply a default if no format available */'; + put '%if %length(&vformat)<2 & &force=1 %then %do;'; + put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; + put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%if &vtype=C %then %let vformat=$&vlen..;'; + put '%else %let vformat=best.;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable format */'; + put '&vformat'; + put '%mend mf_getVarFormat;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mp_ds2csv(ds'; + put ',dlm=COMMA'; + put ',outref=0'; + put ',outfile='; + put ',outencoding=0'; + put ',headerformat=LABEL'; + put ',termstr=CRLF'; + put ')/*/STORE SOURCE*/;'; + put '%local outloc delim i varlist var vcnt vat dsv vcom vmiss fmttype vfmt;'; + put '%if not %sysfunc(exist(&ds)) %then %do;'; + put '%put %str(WARN)ING: &ds does not exist;'; + put '%return;'; + put '%end;'; + put '%if %index(&ds,.)=0 %then %let ds=WORK.&ds;'; + put '%if &outencoding=0 %then %let outencoding=;'; + put '%else %let outencoding=encoding=&outencoding;'; + put '%if &outref=0 %then %let outloc=&outfile;'; + put '%else %let outloc=&outref;'; + put '%if &headerformat=SASJS %then %do;'; + put '%let delim=",";'; + put '%let termstr=CRLF;'; + put '%mcf_getfmttype(wrap=YES)'; + put '%end;'; + put '%else %if &dlm=COMMA %then %let delim=",";'; + put '%else %let delim=";";'; + put '/* credit to mjsq - https://stackoverflow.com/a/55642267 */'; + put '/* first get headers */'; + put 'data _null_;'; + put 'file &outloc &outencoding lrecl=32767 termstr=&termstr;'; + put 'length header $ 2000 varnm vfmt $32 dlm $1 fmttype $8;'; + put 'call missing(of _all_);'; + put 'dsid=open("&ds.","i");'; + put 'num=attrn(dsid,"nvars");'; + put 'dlm=&delim;'; + put 'do i=1 to num;'; + put 'varnm=upcase(varname(dsid,i));'; + put 'if i=num then dlm='''';'; + put '%if &headerformat=NAME %then %do;'; + put 'header=cats(varnm,dlm);'; + put '%end;'; + put '%else %if &headerformat=LABEL %then %do;'; + put 'header = cats(coalescec(varlabel(dsid,i),varnm),dlm);'; + put '%end;'; + put '%else %if &headerformat=SASJS %then %do;'; + put 'if vartype(dsid,i)=''C'' then header=cats(varnm,'':$char'',varlen(dsid,i),''.'');'; + put 'else do;'; + put 'vfmt=coalescec(varfmt(dsid,i),''0'');'; + put 'fmttype=mcf_getfmttype(vfmt);'; + put 'if fmttype=''DATE'' then header=cats(varnm,'':date9.'');'; + put 'else if fmttype=''DATETIME'' then header=cats(varnm,'':E8601DT26.6'');'; + put 'else if fmttype=''TIME'' then header=cats(varnm,'':TIME12.'');'; + put 'else header=cats(varnm,'':best.'');'; + put 'end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Invalid headerformat value (&headerformat);'; + put '%return;'; + put '%end;'; + put 'put header @;'; + put 'end;'; + put 'rc=close(dsid);'; + put 'run;'; + put '%let varlist=%mf_getvarlist(&ds);'; + put '%let vcnt=%sysfunc(countw(&varlist));'; + put '/**'; + put '* The $quote modifier (without a width) will take the length from the variable'; + put '* and increase by two. However this will lead to truncation where the value'; + put '* contains double quotes (which are doubled up). To get around this, scan the'; + put '* data to see the max number of double quotes, so that the appropriate width'; + put '* can be applied in the subsequent step.'; + put '*/'; + put 'data _null_;'; + put 'set &ds end=last;'; + put '%do i=1 %to &vcnt;'; + put '%let var=%scan(&varlist,&i);'; + put '%if %mf_getvartype(&ds,&var)=C %then %do;'; + put '%let dsv1=%mf_getuniquename(prefix=csvcol1_);'; + put '%let dsv2=%mf_getuniquename(prefix=csvcol2_);'; + put 'retain &dsv1 0;'; + put '&dsv2=length(&var)+countc(&var,''"'');'; + put 'if &dsv2>&dsv1 then &dsv1=&dsv2;'; + put 'if last then call symputx('; + put '"vlen&i"'; + put '/* should be no shorter than varlen, and no longer than 32767 */'; + put ',cats(''$quote'',min(&dsv1+2,32767),''.'')'; + put ',''l'''; + put ');'; + put '%end;'; + put '%end;'; + put '%let vat=@;'; + put '%let vcom=&delim;'; + put '%let vmiss=%mf_getuniquename(prefix=csvcol3_);'; + put '/* next, export data */'; + put 'data _null_;'; + put 'set &ds.;'; + put 'file &outloc mod dlm=&delim dsd &outencoding lrecl=32767 termstr=&termstr;'; + put 'if _n_=1 then &vmiss='' '';'; + put '%do i=1 %to &vcnt;'; + put '%let var=%scan(&varlist,&i);'; + put '%if &i=&vcnt %then %do;'; + put '%let vat=;'; + put '%let vcom=;'; + put '%end;'; + put '%if %mf_getvartype(&ds,&var)=N %then %do;'; + put '%if &headerformat = SASJS %then %do;'; + put '%let vcom=&delim;'; + put '%let fmttype=%sysfunc(mcf_getfmttype(%mf_getvarformat(&ds,&var)0));'; + put '%if &fmttype=DATE %then %let vfmt=DATE9.;'; + put '%else %if &fmttype=DATETIME %then %let vfmt=E8601DT26.6;'; + put '%else %if &fmttype=TIME %then %let vfmt=TIME12.;'; + put '%else %do;'; + put '%let vfmt=;'; + put '%let vcom=;'; + put '%end;'; + put '%end;'; + put '%else %let vcom=;'; + put '/* must use period - in order to work in both 9.4 and Viya 3.5 */'; + put 'if missing(&var) and &var ne %sysfunc(getoption(MISSING)) then do;'; + put '&vmiss=cats(''.'',&var);'; + put 'put &vmiss &vat;'; + put 'end;'; + put 'else put &var &vfmt &vcom &vat;'; + put '%end;'; + put '%else %do;'; + put '%if &i ne &vcnt %then %let vcom=&delim;'; + put 'put &var &&vlen&i &vcom &vat;'; + put '%end;'; + put '%end;'; + put 'run;'; + put '%mend mp_ds2csv;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Sends a changeset to staging area'; + put '@details This is the service that is called when submitting a new edit.'; + put '

Service Inputs

'; + put '
jsdata
'; + put 'This is the staged data table, plus an _____DELETE__THIS__RECORD_____ column'; + put '
SASControlTable
'; + put '|ACTION:$char4.|MESSAGE:$char1.|LIBDS:$char19.|'; + put '|---|---|---|'; + put '|LOAD|User-Provided message|LIBREF.DATASET_NAME|'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mf_nobs.sas'; + put '@li dc_assignlib.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mf_mkdir.sas'; + put '@li mf_getuniquefileref.sas'; + put '@li mpe_loader.sas'; + put '@li mpe_filtermaster.sas'; + put '@li mp_abort.sas'; + put '@li mp_binarycopy.sas'; + put '@li mp_cntlout.sas'; + put '@li mp_ds2csv.sas'; + put '@li mf_getplatform.sas'; + put '@li removecolsfromwork.sas'; + put '@li mpeinit.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global approver; %let approver=;'; + put '%global libref; %let libref=;'; + put '%global dsn; %let dsn=;'; + put '%global user; %let user=;'; + put '%let user=%mf_getuser();'; + put '/* load parameters */'; + put 'data _null_;'; + put 'set work.sascontroltable;'; + put 'call symputx(''action'',action);'; + put 'call symputx(''message'',message);'; + put 'libds=upcase(libds);'; + put 'call symputx(''orig_libds'',libds);'; + put 'is_fmt=0;'; + put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'libds=''work.fmtextract'';'; + put 'call symputx(''libds'',libds);'; + put 'is_fmt=1;'; + put 'end;'; + put 'else call symputx(''libds'',libds);'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_cntlout('; + put 'iftrue=(&is_fmt=1)'; + put ',libcat=&orig_libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '/* stream back meta info, further jquery calls will return col metadata and'; + put 'actual data */'; + put '%let libref=%upcase(%scan(&libds,1,.));'; + put '%let dsn=%upcase(%scan(&libds,2,.));'; + put '%dc_assignlib(WRITE,&libref)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc - unable to assign library &libref)'; + put ')'; + put '%mp_abort('; + put 'iftrue=(%mf_verifymacvars(mpelocapprovals libds)=0)'; + put ',mac=&_program'; + put ',msg=%str(Missing: mpelocapprovals libds)'; + put ')'; + put '%put Verify that the upload does not violate Row Level Security checks:;'; + put '%mpe_filtermaster(ULOAD,&libds,'; + put 'dclib=&mpelib,'; + put 'outref=filtref,'; + put 'outds=work.query'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc during filtering process)'; + put ')'; + put '/* prepare inverse query */'; + put '%let tempref=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'infile filtref end=eof;'; + put 'file &tempref;'; + put 'if _n_=1 then put ''where not('';'; + put 'input;'; + put 'put _infile_;'; + put 'if eof then put '')'';'; + put 'run;'; + put '/* apply the query */'; + put 'data work.badrecords;'; + put 'set work.jsdata;'; + put '%inc &tempref/source2;;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (%mf_nobs(work.badrecords)>0)'; + put ',mac=&_program'; + put ',msg=%str('; + put 'Security Problem - %mf_nobs(work.badrecords) unauthorised records submitted'; + put ')'; + put ')'; + put 'PROC FORMAT;'; + put 'picture yymmddhhmmss other=''%0Y%0m%0d_%0H%0M%0S'' (datatype=datetime);'; + put 'RUN;'; + put '/**'; + put '* Create package folder and redirect the log'; + put '*/'; + put '/* create a dataset key (datetime plus 6 digit random number plus PID) */'; + put '%let mperef=DC%left(%sysfunc(datetime(),B8601DT19.3))_%substr('; + put '%sysfunc(ranuni(0)),3,6)_%substr(%str(&sysjobid ),1,4);'; + put '/* get web url */'; + put '%global url;'; + put '%let url=localhost/SASStoredProcess;'; + put '%let platform=%mf_getplatform();'; + put '%put &=platform;'; + put 'data _null_;'; + put 'length url $128;'; + put '%macro stagedata();'; + put '%if &platform=SASVIYA %then %do;'; + put 'if symexist(''_baseurl'') then do;'; + put 'url=symget(''_baseurl'');'; + put 'if subpad(url,length(url)-9,9)=''SASStudio'''; + put 'then url=substr(url,1,length(url)-11);'; + put 'else url="&systcpiphostname/SASJobExecution";'; + put 'end;'; + put 'else url="&systcpiphostname/SASJobExecution";'; + put '%end;'; + put '%else %if &platform=SASMETA %then %do;'; + put 'rc=METADATA_GETURI("Stored Process Web App",url);'; + put '%end;'; + put '%mend stagedata;'; + put '%stagedata()'; + put 'call symputx(''url'',url);'; + put 'putlog url=;'; + put 'run;'; + put '/* Create package folder */'; + put '%let dir=&mpelocapprovals/&mperef;'; + put '%mf_mkdir(&dir)'; + put '/* redirect the log */'; + put '%put; %put; %put log is being redirected;'; + put '%put to retrieve, visit this url:; %put;%put;'; + put '%let url=&url?_program=%substr(&_program'; + put ',1,%length(&_program)-9)getlog%str(&)table=&mperef;'; + put '%put &url;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to log redirection)'; + put ')'; + put 'proc printto log="&dir/weblog.txt";run;'; + put 'options notes mprint;'; + put 'libname approve "&dir";'; + put '/* take copy of webin file */'; + put 'data _null_;'; + put 'if symexist(''_WEBIN_FILEREF1'')'; + put 'then ref=symget(''_WEBIN_FILEREF1'');'; + put 'else if symexist(''sasjs_tables'') then do;'; + put 'rc=filename(''ref'',"%sysfunc(pathname(work))/&dsn.csv");'; + put 'ref=''ref'';'; + put 'end;'; + put 'else ref=''indata1'';'; + put 'call symputx(''ref'',ref);'; + put 'putlog ref=;'; + put 'run;'; + put '%mp_binarycopy(inref=&ref, outloc="&dir/_WEBIN_FILEREF1.txt")'; + put '/* take copy of macvars */'; + put 'data _null_;'; + put 'file "&dir/macvars.sas";'; + put 'set sashelp.vmacro;'; + put 'where scope=''GLOBAL'';'; + put 'put ''%let '' name ''='' value '';'';'; + put 'run;'; + put 'data approve.jsdset;'; + put 'length _____DELETE__THIS__RECORD_____ $3;'; + put 'set jsdata;'; + put 'run;'; + put '/**'; + put '* mf_getvarXXX functions will fail if the target is locked - so take a copy'; + put '* and reference that (this will also explicitly throw the lock situation)'; + put '*/'; + put '%let dscopy=work.dscopy;'; + put 'data &dscopy;'; + put 'set &libds;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Issue getting lock on &libds)'; + put ')'; + put '%mp_ds2csv(approve.jsdset'; + put ',dlm=COMMA'; + put ',outfile="&dir/&orig_libds..csv"'; + put ',outencoding="UTF-8"'; + put ',headerformat=NAME'; + put ',termstr=CRLF'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc when writing the CSV)'; + put ')'; + put '%mpe_loader(mperef=&mperef'; + put ',submitted_reason_txt=%superq(message)'; + put ',approver=%quote(%trim(&approver))'; + put ',url=%superq(url)'; + put ',dc_dttmtfmt=&dc_dttmtfmt'; + put ')'; + put '%mp_abort(mode=INCLUDE)'; + put '%mp_abort('; + put 'iftrue=(%sysfunc(fileexist(%sysfunc(pathname(work))/mf_abort.error))=1)'; + put ',mac=&_program..sas'; + put ',msg=%str(mf_abort.error=1)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '/* send relevant SUCCESS values */'; + put 'data sasparams;'; + put 'STATUS=''SUCCESS'';'; + put 'DSID="&mperef";'; + put 'url="&url";'; + put 'run;'; + put '%removecolsfromwork(___TMP___MD5)'; + put '%webout(OPEN)'; + put '%webout(OBJ,sasparams)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/hooks; + +%let service=mpe_column_level_security_postedit; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Post Edit Hook script for the MPE_COLUMN_LEVEL_SECURITY table'; + put '@details Post edit hooks provide additional backend validation for user'; + put 'provided data. The incoming dataset is named `work.staging_ds` and is'; + put 'provided in mpe_loader.sas.'; + put 'Available macro variables:'; + put '@li DC_LIBREF - The DC control library'; + put '@li LIBREF - The library of the dataset being edited (is assigned)'; + put '@li DS - The dataset being edited'; + put 'This validation checks the incoming column_level_security settings to ensure'; + put 'each individual filter is valid'; + put '**/'; + put '/* check scope values and ensure uppercasing */'; + put '%let errflag=0;'; + put '%let errmsg=;'; + put 'data work.staging_ds;'; + put 'set work.staging_ds;'; + put 'cls_scope=upcase(cls_scope);'; + put 'CLS_LIBREF=upcase(CLS_LIBREF);'; + put 'cls_table=upcase(CLS_TABLE);'; + put 'CLS_VARIABLE_NM=upcase(CLS_VARIABLE_NM);'; + put 'if cls_scope not in (''ALL'',''VIEW'',''EDIT'') then do;'; + put 'call symputx(''errflag'',1);'; + put 'call symputx(''errmsg'',"Invalid scope: "!!cls_scope);'; + put 'stop;'; + put 'end;'; + put 'if cls_hide<1 then cls_hide=0;'; + put 'else cls_hide=1;'; + put 'if CLS_ACTIVE<1 then CLS_ACTIVE=0;'; + put 'else CLS_ACTIVE=1;'; + put 'run;'; + put '%mp_abort(iftrue=(&errflag=1)'; + put ',mac=mpe_column_level_security_postedit'; + put ',msg=%superq(errmsg)'; + put ')'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=mpe_row_level_security_postedit; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);'; + put '%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)'; + put ')'; + put '%local fref1;'; + put '%let fref1=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &fref1;'; + put 'infile &inref end=eof;'; + put 'if _n_=1 then do;'; + put 'put "proc sql;";'; + put 'put "validate select * from &targetds";'; + put 'put "where " ;'; + put 'end;'; + put 'input;'; + put 'put _infile_;'; + put 'putlog _infile_;'; + put 'if eof then put ";quit;";'; + put 'run;'; + put '%inc &fref1;'; + put 'data &outds;'; + put 'if &sqlrc or &syscc or &syserr then do;'; + put 'REASON_CD=''VALIDATION_ERR''!!''OR: ''!!'; + put 'coalescec(symget(''SYSERRORTEXT''),symget(''SYSWARNINGTEXT''));'; + put 'output;'; + put 'end;'; + put 'else stop;'; + put 'run;'; + put 'filename &fref1 clear;'; + put '%if %mf_nobs(&outds)>0 %then %do;'; + put '%if &abort=YES %then %do;'; + put 'data _null_;'; + put 'set &outds;'; + put 'call symputx(''REASON_CD'',reason_cd,''l'');'; + put 'stop;'; + put 'run;'; + put '%mp_abort('; + put 'mac=&sysmacroname,'; + put 'msg=%str(Filter validation issues.)'; + put ')'; + put '%end;'; + put '%let syscc=1008;'; + put '%end;'; + put '%mend mp_filtervalidate;'; + put '%macro mp_filtercheck(inds,targetds=,outds=work.badrecords,abort=YES);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put '/* Validate input column */'; + put '%local vtype;'; + put '%let vtype=%mf_getvartype(&inds,RAW_VALUE);'; + put '%mp_abort(iftrue=(&abort=YES and &vtype ne C),'; + put 'mac=&sysmacroname,'; + put 'msg=%str(%str(ERR)OR: RAW_VALUE must be character)'; + put ')'; + put '%if &vtype ne C %then %do;'; + put '%put &sysmacroname: RAW_VALUE must be character;'; + put '%let syscc=42;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Sanitise the values based on valid value lists, then strip out'; + put '* quotes, commas, periods and spaces.'; + put '* Only numeric values should remain'; + put '*/'; + put '%local reason_cd nobs;'; + put '%let nobs=0;'; + put 'data &outds;'; + put '/*length GROUP_LOGIC SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; + put 'OPERATOR_NM $10 RAW_VALUE $4000;*/'; + put 'set &inds;'; + put 'length reason_cd $4032 vtype $1 vnum dsid 8 tmp $4000;'; + put 'drop tmp;'; + put '/* quick check to ensure column exists */'; + put 'if upcase(VARIABLE_NM) not in'; + put '(%upcase(%mf_getvarlist(&targetds,dlm=%str(,),quote=SINGLE)))'; + put 'then do;'; + put 'REASON_CD="Variable "!!cats(variable_nm)!!" not in &targetds";'; + put 'putlog REASON_CD= VARIABLE_NM=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'return;'; + put 'end;'; + put '/* need to open the dataset to get the column type */'; + put 'dsid=open("&targetds","i");'; + put 'if dsid>0 then do;'; + put 'vnum=varnum(dsid,VARIABLE_NM);'; + put 'if vnum<1 then do;'; + put '/* should not happen as was also tested for above */'; + put 'REASON_CD=cats("Variable (",VARIABLE_NM,") not found in &targetds");'; + put 'putlog REASON_CD= dsid=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'return;'; + put 'end;'; + put '/* now we can get the type */'; + put 'else vtype=vartype(dsid,vnum);'; + put 'end;'; + put '/* closed list checks */'; + put 'if GROUP_LOGIC not in (''AND'',''OR'') then do;'; + put 'REASON_CD=''GROUP_LOGIC should be AND/OR, not:''!!cats(GROUP_LOGIC);'; + put 'putlog REASON_CD= GROUP_LOGIC=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if SUBGROUP_LOGIC not in (''AND'',''OR'') then do;'; + put 'REASON_CD=''SUBGROUP_LOGIC should be AND/OR, not:''!!cats(SUBGROUP_LOGIC);'; + put 'putlog REASON_CD= SUBGROUP_LOGIC=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if mod(SUBGROUP_ID,1) ne 0 then do;'; + put 'REASON_CD=''SUBGROUP_ID should be integer, not ''!!cats(subgroup_id);'; + put 'putlog REASON_CD= SUBGROUP_ID=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if OPERATOR_NM not in'; + put '(''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'',''BETWEEN'',''IN'',''NOT IN'',''CONTAINS'')'; + put 'then do;'; + put 'REASON_CD=''Invalid OPERATOR_NM: ''!!cats(OPERATOR_NM);'; + put 'putlog REASON_CD= OPERATOR_NM=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put '/* special missing logic */'; + put 'if vtype=''N'''; + put 'and OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'')'; + put 'and cats(upcase(raw_value)) in ('; + put '''.'',''.A'',''.B'',''.C'',''.D'',''.E'',''.F'',''.G'',''.H'',''.I'',''.J'',''.K'',''.L'',''.M'',''.N'''; + put '''.N'',''.O'',''.P'',''.Q'',''.R'',''.S'',''.T'',''.U'',''.V'',''.W'',''.X'',''.Y'',''.Z'',''._'''; + put ')'; + put 'then do;'; + put '/* valid numeric - exit data step loop */'; + put 'return;'; + put 'end;'; + put '/* special logic */'; + put 'if OPERATOR_NM in (''IN'',''NOT IN'',''BETWEEN'') then do;'; + put 'if OPERATOR_NM=''BETWEEN'' then raw_value1=tranwrd(raw_value,'' AND '','','');'; + put 'else do;'; + put 'if substr(raw_value,1,1) ne ''('''; + put 'or substr(cats(reverse(raw_value)),1,1) ne '')'''; + put 'then do;'; + put 'REASON_CD=''Missing start/end bracket in RAW_VALUE'';'; + put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'else raw_value1=substr(raw_value,2,max(length(raw_value)-2,0));'; + put 'end;'; + put '/* we now have a comma seperated list of values */'; + put 'if vtype=''N'' then do i=1 to countc(raw_value1, '','')+1;'; + put 'tmp=scan(raw_value1,i,'','');'; + put 'if cats(tmp) ne ''.'' and input(tmp, ?? 8.) eq . then do;'; + put 'REASON_CD=''Non Numeric value provided'';'; + put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'return;'; + put 'end;'; + put 'end;'; + put 'else raw_value1=raw_value;'; + put '/* remove nested literals eg '''' */'; + put 'raw_value1=tranwrd(raw_value1,"''''",'''');'; + put '/* now match string literals (always single quotes) */'; + put 'raw_value2=raw_value1;'; + put 'regex = prxparse("s/(\'').*?(\'')//");'; + put 'call prxchange(regex,-1,raw_value2);'; + put '/* remove commas and periods*/'; + put 'raw_value3=compress(raw_value2,'',.'');'; + put '/* output records that contain values other than digits and spaces */'; + put 'if notdigit(compress(raw_value3,'' ''))>0 then do;'; + put 'putlog raw_value3= $hex32.;'; + put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; + put 'putlog REASON_CD= raw_value= raw_value1= raw_value2= raw_value3=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'run;'; + put 'data _null_;'; + put 'set &outds end=last;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue=(&abort=YES and &nobs>0),'; + put 'mac=&sysmacroname,'; + put 'msg=%str(Data issue: %superq(reason_cd))'; + put ')'; + put '%if &nobs>0 %then %do;'; + put '%let syscc=1008;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* syntax checking passed but it does not mean the filter is valid'; + put '* for that we can run a proc sql validate query'; + put '*/'; + put '%local fref1;'; + put '%let fref1=%mf_getuniquefileref();'; + put '%mp_filtergenerate(&inds,outref=&fref1)'; + put '/* this macro will also set syscc to 1008 if any issues found */'; + put '%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)'; + put '%mend mp_filtercheck;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Post Edit Hook script for the MPE_ROW_LEVEL_SECURITY table'; + put '@details Post edit hooks provide additional backend validation for user'; + put 'provided data. The incoming dataset is named `work.staging_ds` and is'; + put 'provided in mpe_loader.sas.'; + put 'Available macro variables:'; + put '@li DC_LIBREF - The DC control library'; + put '@li LIBREF - The library of the dataset being edited (is assigned)'; + put '@li DS - The dataset being edited'; + put 'This validation checks the incoming row_level_security settings to ensure'; + put 'each individual filter is'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li mp_filtercheck.sas'; + put '

Related Macros

'; + put '@li mpe_loader.sas'; + put '**/'; + put '/* ignore scope and group for validation */'; + put 'proc sql;'; + put 'create table work.batches as'; + put 'select distinct upcase(rls_libref) as rls_libref,'; + put 'upcase(rls_table) as rls_table,'; + put 'rls_group_logic as group_logic,'; + put 'rls_subgroup_logic as subgroup_logic,'; + put 'rls_subgroup_id as subgroup_id,'; + put 'rls_variable_nm as variable_nm,'; + put 'rls_operator_nm as operator_nm,'; + put 'rls_raw_value as raw_value'; + put 'from work.staging_ds'; + put 'where rls_active=1'; + put 'order by rls_libref, rls_table;'; + put '%let cnt=0;'; + put 'data _null_;'; + put 'set work.batches;'; + put 'by rls_libref rls_table;'; + put 'putlog (_all_)(=);'; + put 'if last.rls_table then do;'; + put 'x+1;'; + put 'call symputx(cats(''libds'',x),cats(rls_libref,''.'',rls_table));'; + put 'call symputx(''cnt'',x);'; + put 'end;'; + put 'run;'; + put '%macro quickloop();'; + put '%do i=1 %to &cnt;'; + put 'data work.inds&i;'; + put 'set work.batches;'; + put 'if cats(rls_libref,''.'',rls_table)="&&libds&i";'; + put 'keep group_logic subgroup_logic subgroup_id variable_nm operator_nm'; + put 'raw_value;'; + put 'run;'; + put '%dc_assignlib(READ,%scan(&&libds&i,1,.))'; + put '%mp_filtercheck(work.inds&i'; + put ',targetds=&&libds&i'; + put ',outds=work.badrecords'; + put ',abort=YES'; + put ')'; + put '%end;'; + put '%mend quickloop;'; + put '%quickloop()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=mpe_tables_postedit; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Post Edit Hook script for the MPE_TABLES table'; + put '@details Post edit hooks provide additional backend validation for user'; + put 'provided data. The incoming dataset is named `work.staging_ds` and is'; + put 'provided in mpe_loader.sas.'; + put 'Available macro variables:'; + put '@li DC_LIBREF - The DC control library'; + put '@li LIBREF - The library of the dataset being edited (is assigned)'; + put '@li DS - The dataset being edited'; + put 'This validation checks MPE_TABLES to ensure modified / added records are'; + put 'valid. If a non-default AUDIT_LIBDS is being used, there is also a check'; + put 'to ensure that this table already exists.'; + put '**/'; + put '%let errmsg=;'; + put '%let errflag=0;'; + put '/* ensure uppercasing */'; + put 'data work.staging_ds;'; + put 'set work.staging_ds;'; + put 'LIBREF=upcase(LIBREF);'; + put 'DSN=upcase(DSN);'; + put 'loadtype=upcase(loadtype);'; + put 'buskey=upcase(buskey);'; + put 'var_txfrom=upcase(var_txfrom);'; + put 'var_txto=upcase(var_txto);'; + put 'var_busfrom=upcase(var_busfrom);'; + put 'var_busto=upcase(var_busto);'; + put 'var_processed=upcase(var_processed);'; + put 'close_vars=upcase(close_vars);'; + put 'audit_libds=upcase(audit_libds);'; + put '/* check for valid loadtype */'; + put 'if LOADTYPE not in (''UPDATE'',''TXTEMPORAL'',''FORMAT-CAT'',''BITEMPORAL'',''REPLACE'')'; + put 'then do;'; + put 'call symputx(''errmsg'',"Invalid LOADTYPE: "!!LOADTYPE);'; + put 'call symputx(''errflag'',1);'; + put 'end;'; + put 'run;'; + put '%mp_abort(iftrue=(&errflag=1)'; + put ',mac=mpe_tables_postedit'; + put ',msg=%superq(errmsg)'; + put ')'; + put '/* get distinct list of audit libs */'; + put 'proc sql;'; + put 'create table work.liblist as'; + put 'select distinct audit_libds'; + put 'from work.staging_ds'; + put 'where audit_libds not in ('''',''0'', "&dc_libref..MPE_AUDIT")'; + put 'and upcase(_____DELETE__THIS__RECORD_____) ne "YES";'; + put '/* assign the libs */'; + put 'data _null_;'; + put 'set work.liblist;'; + put 'call symputx(cats(''lib'',_n_),audit_libds);'; + put 'libref=scan(audit_libds,1,''.'');'; + put 'call execute(''%dc_assignlib(WRITE,''!!libref!!'')'');'; + put 'run;'; + put '/* check the audit tables exist */'; + put 'data _null_;'; + put 'set work.liblist;'; + put 'if exist(audit_libds,"DATA")=0 then do;'; + put 'call symputx(''errmsg'','; + put '"Audit Table "!!audit_libds!!" does not exist, or could not be assigned."'; + put ');'; + put 'call symputx(''errflag'',1);'; + put 'end;'; + put 'run;'; + put '%mp_abort(iftrue=(&errflag=1)'; + put ',mac=mpe_tables_postedit'; + put ',msg=%superq(errmsg)'; + put ')'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=mpe_validations_postedit; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Post Edit Hook script for the MPE_VALIDATIONS table'; + put '@details Post edit hooks provide additional backend validation for user'; + put 'provided data. The incoming dataset is named `work.staging_ds` and is'; + put 'provided in mpe_loader.sas.'; + put 'Available macro variables:'; + put '@li DC_LIBREF - The DC control library'; + put '@li LIBREF - The library of the dataset being edited (is assigned)'; + put '@li DS - The dataset being edited'; + put 'This validation checks the incoming mpe_validations settings to ensure'; + put 'there are no columns that have both HARDSELECT_HOOK and SOFTSELECT_HOOK.'; + put '

SAS Macros

'; + put '@li mf_nobs.sas'; + put '

Related Macros

'; + put '@li mpe_loader.sas'; + put '**/'; + put '/** check to avoid a colum having both HARDSELECT_HOOK and SOFTSELECT_HOOK */'; + put '/* need to merge with base table in the case of a single row being added */'; + put '%global src_list1 src_list2;'; + put '%let src_list1='''';'; + put 'proc sql noprint;'; + put 'create table work.check1 as'; + put 'select quote(catx(''.'',base_lib,base_ds,base_col)) as source'; + put ',rule_type'; + put 'from work.staging_ds'; + put 'where rule_type in (''SOFTSELECT_HOOK'',''HARDSELECT_HOOK'')'; + put 'and upcase(_____DELETE__THIS__RECORD_____) ne "YES";'; + put 'select distinct cats(source) into: src_list1 separated by '','''; + put 'from work.check1;'; + put 'create table work.check2 as'; + put 'select quote(catx(''.'',base_lib,base_ds,base_col)) as source'; + put ',rule_type'; + put 'from &DC_LIBREF..MPE_VALIDATIONS'; + put 'where rule_type in (''SOFTSELECT_HOOK'',''HARDSELECT_HOOK'')'; + put 'and &dc_dttmtfmt. lt tx_to'; + put 'and catx(''.'',base_lib,base_ds,base_col) in (&src_list1);'; + put 'create table work.check3 as'; + put 'select * from work.check1'; + put 'union'; + put 'select * from work.check2;'; + put 'create table work.validation_checker as'; + put 'select source'; + put ',count(*) as cnt'; + put 'from work.check3'; + put 'group by 1'; + put 'having cnt>1;'; + put 'select distinct source into: src_list2 from work.validation_checker;'; + put 'data _null_;'; + put 'set work.validation_checker;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (%mf_nobs(work.validation_checker)>0)'; + put ',mac=mpe_validations_postedit'; + put ',msg=%str(The following vars have duplicate HOOKS: &src_list2)'; + put ')'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/lineage; + +%let service=fetchlineage; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro meta_mapper('; + put 'baseds=work.allmap /* base table to contain metamapping (two level) */'; + put ', stageds=col_meta /* temp table to append to base*/'; + put ', metaid=OMSOBJ:Column\A5HOSDWY.BF00LWQT'; + put ', direction=REVERSE /* either REVERSE or FORWARDS */'; + put ', level=0 /* system var - show level of nesting */'; + put ', job= /* system var - avoid looping same source */'; + put ', levelcheck=50 /* system var - avoid going too deep down the rabbit hole */'; + put ', append=NO /* system var - when YES means appending within nested loop */'; + put ');'; + put '%if &level>&levelcheck %then %return;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%if &direction=REVERSE %then %do;'; + put '%let start=Target;'; + put '%let finish=Source;'; + put '%end;'; + put '%else %do;'; + put '%let start=Source;'; + put '%let finish=Target;'; + put '%end;'; + put '%if &append=NO %then %do;'; + put 'proc datasets lib=work;'; + put 'delete %scan(&baseds,2,.);'; + put 'quit;'; + put '%let index_statement=(index=(HASH/unique));'; + put '%end;'; + put '%else %let index_statement=;'; + put 'data &stageds &index_statement ;'; + put 'length HASH $32'; + put 'jobname sourcetablename sourcecolname sourcecoluri'; + put 'map_type map_transform targettablename targetcolname targetcoluri'; + put 'uri targettableuri tfmuri sourcetableuri scuri tpuri tmpuri mturi $256'; + put 'Derived_Rule $500 Marker_ID Name_ID N_Name LibRef engine sourcePublicType'; + put 'targetPublicType $64;'; + put 'keep HASH jobname sourcetablename sourcecolname sourcecoluri'; + put 'map_type map_transform'; + put 'targettablename targetcolname targetcoluri Derived_Rule level;'; + put '/* proc transpose logic only */'; + put 'length sourceshorttablename sourcemembertype sourcelocation'; + put 'assoc assocuri name sturi foundrefuri foundfinishuri'; + put 'targetshorttablename targetlocation targetmembertype trafoName $256'; + put 'sourceshorttableuri sourceshortcoluri checkrdm targetshorttableuri'; + put 'targetshortcoluri selected_direction $17'; + put 'lturi _location $200;'; + put 'call missing (of _all_);'; + put '&start.coluri="&METAID";'; + put 'level=&level;'; + put '/* first get table associated with the column */'; + put 'if metadata_getnasn(&start.coluri,''Table'',1,&start.tableuri)=0 then do;'; + put 'putlog "ERR" "OR: Table not found";'; + put 'stop;'; + put 'end;'; + put 'rc=metadata_getattr(&start.tableuri,"Name",&start.tablename);'; + put 'rc=metadata_getattr(&start.coluri,"Name",&start.colname);'; + put 'rc=metadata_getattr(&start.tableuri,''PublicType'',&start.PublicType);'; + put 'if (metadata_getnasn(&start.tableuri, "TablePackage",1, tpuri)>0) then'; + put 'do;'; + put 'rc=metadata_getattr(tpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tpuri,"Engine",engine);'; + put 'if missing(libref) then do;'; + put 'rc=metadata_getnasn(tpuri, "UsedByPackages",1, tmpuri);'; + put 'rc=metadata_getattr(tmpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tmpuri,"Engine",engine);'; + put 'end;'; + put '&start.tablename=cats('; + put 'upcase(LibRef),''-'',upcase(engine),''.'',&start.tablename'; + put ');'; + put 'end;'; + put 'else if (&start.PublicType="ExternalFile") then do;'; + put 'rc=metadata_getnasn(&start.tableuri, "OwningFile",1, tmpuri);'; + put 'rc=metadata_getnasn(tmpuri, "FileRefs",1, tmpuri);'; + put 'rc=metadata_getnasn(tmpuri, "FileRefLocations",1, tmpuri);'; + put 'rc=metadata_getattr(tmpuri,''FileName'',&start.tablename);'; + put 'end;'; + put 'else &start.tablename = ''work. ''||trim(lowcase(&start.tablename));'; + put '/* now loop the Source / TargetFeatureMaps */'; + put 'tfm=1;'; + put 'do while(metadata_getnasn(&start.coluri,"&start.FeatureMaps",tfm,tfmuri)>0);'; + put 'call missing(derived_rule);'; + put 'rc=metadata_getattr(tfmuri,''TransformRole'',map_type);'; + put '/* get job and step name */'; + put 'if (metadata_getnasn(tfmuri,''AssociatedClassifierMap'',1,tmpuri)<1) then'; + put 'do;'; + put 'rc=metadata_getnasn(tfmuri,"&finish.Transformations",1,tmpuri);'; + put 'rc=metadata_getnasn(tmpuri,''AssociatedClassifierMap'',1,tmpuri);'; + put 'end ;'; + put 'rc=metadata_getnasn(tmpuri,''Steps'',1,tmpuri);'; + put 'rc=metadata_getattr(tmpuri,''Name'',map_transform);'; + put 'rc=metadata_getnasn(tmpuri,''Activities'',1,tmpuri);'; + put 'rc=metadata_getnasn(tmpuri,''Jobs'',1,tmpuri);'; + put 'rc=metadata_getattr(tmpuri,''Name'',jobname);'; + put 'if Map_Type = ''DERIVED'' then do;'; + put 'if(metadata_getnasn(tfmuri,"SourceCode",1, scuri)>0) then do;'; + put '/* standard */'; + put 'mturi=tfmuri;'; + put 'end;'; + put 'else do;'; + put '/* some SQL joins store transform rules elsewhere */'; + put 'rc=metadata_getnasn(tfmuri,"Feature&start.s",1, tmpuri);'; + put 'if (metadata_getnasn(tmpuri,"Variables",1, tmpuri)>0)'; + put 'then rc=metadata_getnasn(tmpuri,"OwningTransformation",1, mturi);'; + put 'else rc=metadata_getnasn(tfmuri,"Transformation&start.s",1, mturi);'; + put 'rc=metadata_getnasn(mturi,"SourceCode",1, scuri);'; + put 'end;'; + put 'rc=metadata_getattr(scuri,"StoredText",Derived_Rule);'; + put 'Derived_Rule = compress(Derived_Rule,''0A''x);'; + put '/* loop to generate derived rule (swap ref numbers for col descs) */'; + put 'sv=1;'; + put 'do while(metadata_getnasn(mturi,"SubstitutionVariables",sv,tmpuri)>0);'; + put 'rc=metadata_getattr(tmpuri,"Marker",Marker_ID);'; + put 'rc=metadata_getattr(tmpuri,"Name",Name_ID);'; + put 'N_Name = compress(scan(Name_ID,2,''-''));'; + put 'Derived_Rule=tranwrd('; + put 'Derived_Rule,compress(Marker_ID),compress(N_Name)'; + put ');'; + put 'sv+1;'; + put 'end;'; + put 'end;'; + put '/* get source col attributes */'; + put 'fs=1;'; + put 'do while(metadata_getnasn(tfmuri,"Feature&finish.s",fs,&finish.coluri)>0);'; + put 'rc=metadata_getattr(&finish.coluri,''Name'',&finish.colname);'; + put 'rc=metadata_getnasn(&finish.coluri,''Table'',1,&finish.tableuri);'; + put 'rc=metadata_getattr(&finish.tableuri,''Name'',&finish.tablename);'; + put 'rc=metadata_getattr(&finish.tableuri,''PublicType'',&finish.PublicType);'; + put 'if (metadata_getnasn(&finish.tableuri,"TablePackage",1,tpuri)>0) then'; + put 'do;'; + put 'rc=metadata_getattr(tpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tpuri,"Engine",engine);'; + put 'if missing(libref) then do;'; + put 'rc=metadata_getnasn(tpuri, "UsedByPackages",1, tmpuri);'; + put 'rc=metadata_getattr(tmpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tmpuri,"Engine",engine);'; + put 'end;'; + put '&finish.tablename=cats('; + put 'upcase(LibRef),''-'',upcase(engine),''.'',&finish.tablename'; + put ');'; + put 'end;'; + put 'else if (&finish.PublicType="ExternalFile") then do;'; + put 'rc=metadata_getnasn(&finish.tableuri, "OwningFile",1, tmpuri);'; + put 'rc=metadata_getnasn(tmpuri, "FileRefs",1, tmpuri);'; + put 'rc=metadata_getnasn(tmpuri, "FileRefLocations",1, tmpuri);'; + put 'rc=metadata_getattr(tmpuri,''FileName'',&finish.tablename);'; + put 'end;'; + put 'else &finish.tablename=compress(''work.''||lowcase(&finish.tablename));'; + put '/* do a lookup to see if this record has been loaded before,'; + put 'IF base table exists */'; + put 'hash=put(md5('; + put 'cats(jobname,sourcecoluri,map_type,map_transform,targetcoluri)'; + put '),$hex32.);'; + put '%if %sysfunc(exist(&baseds)) %then %do;'; + put 'set &baseds(keep=hash) key=hash/unique;'; + put 'if _iorc_ ne 0 then do;'; + put '/* hash did not exist, hence this is a new record */'; + put 'output;'; + put '_error_=0;'; + put 'end;'; + put '%end;'; + put '%else %do;'; + put 'output;'; + put '%end;'; + put 'fs+1;'; + put 'end;'; + put 'tfm+1;'; + put 'end;'; + put '/* No finish URI found - so proceed to see if this is due to transpose */'; + put 'if missing(&finish.coluri)'; + put 'and (metadata_getnasn(&start.tableuri,"&start.ClassifierMaps",1,tmpuri)>0)'; + put 'then do;'; + put 'length trafoname $256;'; + put 'call missing(trafoName);'; + put 'rc=metadata_getattr(tmpuri,''Name'',trafoName);'; + put '/* get &finsh.tablename and jobname */'; + put 'rc=metadata_getnasn(tmpuri,"Classifier&finish.s",1,&finish.tableuri);'; + put 'rc=metadata_getattr(&finish.tableuri,''Name'',&finish.tablename);'; + put '&finish.shorttablename=&finish.tablename;'; + put 'rc=metadata_getnasn(tmpuri,''Steps'',1,tmpuri);'; + put 'rc=metadata_getnasn(tmpuri,''Activities'',1,tmpuri);'; + put 'rc=metadata_getnasn(tmpuri,''Jobs'',1,tmpuri);'; + put 'rc=metadata_getattr(tmpuri,''Name'',jobname);'; + put 'rc1=1;n1=1;'; + put 'do while(rc1>0);'; + put 'rc1=metadata_getnasl(&finish.tableuri,n1,assoc);'; + put 'if (assoc="Columns") then do;'; + put 'rc2=1;n2=1;'; + put 'do while(rc2>0 and missing(foundfinishuri));'; + put '/* Walk through all column associations: SpecSourceTransformations*/'; + put 'rc2=metadata_getnasn(&finish.tableuri,trim(assoc),n2,assocuri);'; + put '/* REVERSE */'; + put '%if ("&direction." = "REVERSE") %then %do;'; + put 'if metadata_getnasn(assocuri,"SpecSourceTransformations",1,sturi)>0'; + put 'then do;'; + put 'rc=metadata_getattr(sturi,"Name",name);'; + put '/* SAS Transpose: varColumns */'; + put 'if (name ="varColumns") then do;'; + put 'foundfinishuri = "true"; /* do a while exit */'; + put 'put "scource colname name=" name;'; + put 'put "scource colname uri=" assocuri;'; + put '&finish.coluri=assocuri;'; + put '&finish.shortcoluri=substr('; + put '&finish.coluri,find(&finish.coluri, ''\'')+1'; + put ');'; + put 'rc=metadata_getattr(&finish.coluri,''Name'',&finish.colname);'; + put 'rc=metadata_getnasn(&finish.coluri,''Table'',1,&finish.tableuri);'; + put 'rc=metadata_getattr(&finish.tableuri,''Name'',&finish.tablename);'; + put '&finish.shorttablename=&finish.tablename;'; + put 'map_type = "ONETOONE";'; + put '/* get MemberType */'; + put 'rc=metadata_getattr('; + put '&finish.tableuri,"MemberType",&finish.membertype'; + put ');'; + put '&finish.shorttableuri = substr('; + put '&finish.tableuri,find(&finish.tableuri, ''\'')+1'; + put ');'; + put 'rc=metadata_getattr('; + put '&finish.shorttableuri,"PublicType",&finish.publictype'; + put ');'; + put 'if metadata_getnasn('; + put '&finish.shorttableuri,"TablePackage",1,tpuri'; + put ')>0'; + put 'then do;'; + put '/* init LibRef to overwrite previous for &start!!! */'; + put 'call missing (LibRef);'; + put 'rc=metadata_getattr(tpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tpuri,"Engine",engine);'; + put 'if missing(libref) then do;'; + put 'rc=metadata_getnasn(tpuri, "UsedByPackages",1, tmpuri);'; + put 'rc=metadata_getattr(tmpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tmpuri,"Engine",engine);'; + put 'end;'; + put '&finish.shorttablename=&finish.tablename;'; + put '&finish.tablename=cats('; + put 'upcase(LibRef),''-'',upcase(engine),''.'',&finish.tablename'; + put ');'; + put 'end;'; + put '/* get SAS Folder location of the table */'; + put 'if &finish.publictype eq "Table" then do;'; + put 'lturi=&finish.shorttableuri;'; + put 'rc=metadata_getnasn(lturi,"Trees",1,lturi);'; + put 'rc=metadata_getattr(lturi,"Name",&finish.location);'; + put 'tree=1;'; + put 'do while (tree>0);'; + put 'tree=metadata_getnasn(lturi,"ParentTree",1,lturi);'; + put 'if tree > 0 then do;'; + put 'rc=metadata_getattr(lturi,"Name",_location);'; + put '&finish.location=catx(''/'',_location,&finish.location);'; + put 'end;'; + put 'end;'; + put '&finish.location = ''/''||&finish.location;'; + put 'end;'; + put 'map_transform = trafoName;'; + put 'derived_rule = "Transpose vertical";'; + put '/* do a lookup to see if this record has been loaded before,'; + put 'IF base table exists */'; + put 'hash=put(md5('; + put 'cats(jobname,sourcecoluri,map_type,map_transform,targetcoluri)'; + put '),$hex32.);'; + put '%if %sysfunc(exist(&baseds)) %then %do;'; + put 'set &baseds(keep=hash) key=hash/unique;'; + put 'if _iorc_ ne 0 then do;'; + put '/* hash did not exist, hence this is a new record */'; + put 'output;'; + put '_error_=0;'; + put 'end;'; + put '%end;'; + put '%else %do;'; + put 'output;'; + put '%end;'; + put 'end; /* (name = "_VALUE_COLUMN") */'; + put 'end; /* (metadata_getnasn(assocuri2,"Spec&finish.xxx",1,sturi)>0) */'; + put '%end; /* &direction = "REVERSE" */'; + put '/* FORWARDS: if TargetFeatureMaps not available: -> target! */'; + put '%if ("&direction." = "FORWARDS") %then %do;'; + put 'if (metadata_getnasn(assocuri,"TargetFeatureMaps",1,sfuri)<0)'; + put 'then do;'; + put 'rc=metadata_getattr(assocuri,"Name",name);'; + put 'if not missing(assocuri) then do;'; + put 'put "target colname name=" name;'; + put 'put "target colname uri=" assocuri;'; + put '&finish.coluri=assocuri;'; + put '&finish.shortcoluri=substr('; + put '&finish.coluri,find(&finish.coluri, ''\'')+1'; + put ');'; + put 'rc=metadata_getattr(&finish.coluri,''Name'',&finish.colname);'; + put 'rc=metadata_getnasn(&finish.coluri,''Table'',1,&finish.tableuri);'; + put 'rc=metadata_getattr(&finish.tableuri,''Name'',&finish.tablename);'; + put '&finish.shorttablename=&finish.tablename;'; + put 'map_type = "ONETOMANY";'; + put '/* get MemberType */'; + put 'rc=metadata_getattr('; + put '&finish.tableuri,"MemberType",&finish.membertype'; + put ');'; + put '&finish.shorttableuri = substr('; + put '&finish.tableuri,find(&finish.tableuri, ''\'')+1'; + put ');'; + put 'rc=metadata_getattr('; + put '&finish.shorttableuri,"PublicType",&finish.publictype'; + put ');'; + put 'if metadata_getnasn('; + put '&finish.shorttableuri,"TablePackage",1,tpuri'; + put ')>0'; + put 'then do;'; + put '/* init LibRef to overwrite previous for &start!!! */'; + put 'call missing (LibRef);'; + put 'rc=metadata_getattr(tpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tpuri,"Engine",engine);'; + put 'if missing(libref) then do;'; + put 'rc=metadata_getnasn(tpuri, "UsedByPackages",1, tmpuri);'; + put 'rc=metadata_getattr(tmpuri,"Libref",LibRef);'; + put 'rc=metadata_getattr(tmpuri,"Engine",engine);'; + put 'end;'; + put '&finish.shorttablename=&finish.tablename;'; + put '&finish.tablename=cats('; + put 'upcase(LibRef),''-'',upcase(engine),''.'',&finish.tablename'; + put ');'; + put 'end;'; + put '/* get table''s SAS Folder location */'; + put 'if &finish.publictype eq "Table" then do;'; + put 'lturi=&finish.shorttableuri;'; + put 'rc=metadata_getnasn(lturi,"Trees",1,lturi);'; + put 'rc=metadata_getattr(lturi,"Name",&finish.location);'; + put 'tree=1;'; + put 'do while (tree>0);'; + put 'tree=metadata_getnasn(lturi,"ParentTree",1,lturi);'; + put 'if tree > 0 then do;'; + put 'rc=metadata_getattr(lturi,"Name",_location);'; + put '&finish.location=catx(''/'',_location,&finish.location);'; + put 'end;'; + put 'end;'; + put '&finish.location = ''/''||&finish.location;'; + put 'end;'; + put 'map_transform = trafoName;'; + put 'derived_rule = "Transpose horizontal";'; + put '/* do a lookup to see if this record has been loaded before,'; + put 'IF base table exists */'; + put 'hash=put(md5('; + put 'cats(jobname,sourcecoluri,map_type,map_transform,targetcoluri)'; + put '),$hex32.);'; + put '%if %sysfunc(exist(&baseds)) %then %do;'; + put 'set &baseds(keep=hash) key=hash/unique;'; + put 'if _iorc_ ne 0 then do;'; + put '/* hash did not exist, hence this is a new record */'; + put 'output;'; + put '_error_=0;'; + put 'end;'; + put '%end;'; + put '%else %do;'; + put 'output;'; + put '%end;'; + put 'end;'; + put 'end;'; + put '%end; /* (&direction = "FORWARDS" */'; + put 'call missing(assocuri);'; + put 'n2+1;'; + put 'end; /* while(rc1>0) */'; + put 'end; /* (assoc="Columns") */'; + put 'call missing(assoc);'; + put 'n1+1;'; + put 'end; /* while(rc1>0) */'; + put 'end; /* missing(&finish.coluri) */'; + put '/* ################# end mapping for Transpose flat ################# */'; + put 'stop;'; + put 'run;'; + put 'proc append base=&baseds data=&stageds;'; + put 'run;'; + put 'data _null_;'; + put 'set &stageds;'; + put 'call execute(''%meta_mapper(metaid=''!!&finish.coluri'; + put '!!",baseds=&baseds"'; + put '!!",direction=&direction"'; + put '!!",level=%eval(&level+1)"'; + put '!!",levelcheck=&levelcheck"'; + put '!!",job="!!jobname'; + put '!!",append=YES)");'; + put 'run;'; + put '%mend meta_mapper;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief fetch the metadata and server as dotlang'; + put 'Some nice ideas for formatting are available here:'; + put 'https://renenyffenegger.ch/notes/tools/Graphviz/examples/index'; + put '

SAS Macros

'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@li bitemporal_dataloader.sas'; + put '@li meta_mapper.sas'; + put '@version 9.4'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global column_id direction refresh;'; + put '/* enable col id and direction to be passed as url params */'; + put '%let exist=%sysfunc(exist(work.SASControlTable));'; + put '%let inds=%sysfunc(ifc(&exist=1,SASControlTable,_null_));'; + put '%let max_depth=50;'; + put '%put &=inds;'; + put 'data _null_;'; + put 'length max_depth 8;'; + put 'set &inds;'; + put 'call symputx(''column_id'',coluri);'; + put 'call symputx(''direction'',direction);'; + put 'call symputx(''refresh'',refresh);'; + put 'if max_depth>0 then call symputx(''max_depth'',max_depth);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%put &=max_depth;'; + put 'data info;'; + put 'length coluri colname taburi tabname liburi libref $256;'; + put 'call missing(of _all_);'; + put 'if metadata_getattr("&column_id","Name",colname)<0 then do;'; + put 'putlog "Col &column_id not found";'; + put 'call symputx(''syscc'',''1234'');'; + put 'stop;'; + put 'end;'; + put 'rc=metadata_getnasn("&column_id","Table",1,taburi);'; + put 'rc=metadata_getattr(taburi,"Name",tabname);'; + put 'rc=metadata_getnasn(taburi,"TablePackage",1,liburi);'; + put 'rc=metadata_getattr(liburi,"Libref",libref);'; + put 'call symputx(''lib'',libref);'; + put 'call symputx(''tab'',tabname);'; + put 'call symputx(''col'',colname);'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%macro launcher();'; + put '/* check whether a lineage run already taken place */'; + put 'proc sql noprint;'; + put 'create table existing_data as'; + put 'select * from &mpelib..mpe_lineage_cols'; + put 'where col_id="&column_id"'; + put 'and direction="%substr(&direction,1,1)";'; + put '/* no data, so make some, and append it */'; + put '%if &sqlobs=0 or &refresh=1 %then %do;'; + put '%meta_mapper(metaid=&column_id'; + put ', direction=&direction /* either REVERSE or FORWARDS */'; + put ', baseds=work.allmap'; + put ', levelcheck=%eval(&max_depth-1)'; + put ')'; + put 'data append;'; + put 'length col_id $32 direction $1 modified_by $64;'; + put 'retain col_id "&column_id";'; + put 'retain direction "%substr(&direction,1,1)";'; + put '%global modified_by modified_dttm;'; + put '%let modified_dttm=%sysfunc(datetime());'; + put 'retain modified_dttm &modified_dttm;'; + put 'retain modified_by "%mf_getuser()";'; + put '%let modified_by=%mf_getuser();'; + put 'set allmap;'; + put 'drop hash;'; + put 'run;'; + put 'proc sort data=append out=appendme nodupkey;'; + put 'by col_id direction sourcecoluri targetcoluri map_type map_transform;'; + put 'run;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_lineage_cols'; + put ',append_dsn=appendme'; + put ',PK=col_id direction sourcecoluri targetcoluri map_type map_transform'; + put ',etlsource=&_program'; + put ',loadtype=UPDATE'; + put ',close_vars=col_id direction'; + put ',dclib=&mpelib'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* data exists, so use it */'; + put 'data work.allmap(drop=modified_by modified_dttm);'; + put 'set existing_data(drop=col_id direction );'; + put 'if _n_=1 then do;'; + put 'call symputx(''modified_by'',modified_by,''g'');'; + put 'call symputx(''modified_dttm'',modified_dttm,''g'');'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%mend launcher;'; + put '%launcher()'; + put '/* generate graphviz */'; + put 'filename tmp "%sysfunc(pathname(work))\GraphViz%sysfunc(datetime()).txt"'; + put 'lrecl=10000 encoding=''utf-8'';'; + put 'options noquotelenmax;'; + put '%macro fcmpconditional();'; + put '%if &sysver=9.3 and &sysscp=WIN %then %do;'; + put '/* nothing - as the FCMP function causes an exception err in this case */'; + put '%end;'; + put '%else %do;'; + put '/* prepare quick func to enable word wrapping of transformations */'; + put 'options cmplib=work.funcs;'; + put 'proc fcmp outlib=work.funcs.macrocore;'; + put 'function wordwrap(str $,cols,splitchar $) $;'; + put 'length outstr $32767 curstr $5000;'; + put 'base=0;'; + put 'put str=;'; + put 'do i=1 to countw(str,'' '','' '');'; + put 'curstr=scan(str,i,'' '');'; + put 'outstr=trim(outstr)!!'' ''!!curstr;'; + put 'base=base+length(curstr)+1;'; + put 'if base>cols then do;'; + put 'outstr=cats(outstr,splitchar);'; + put 'base=0;'; + put 'end;'; + put 'end;'; + put 'return (outstr);'; + put 'endsub;'; + put 'run;'; + put '%end;'; + put '%mend fcmpconditional;'; + put '%fcmpconditional()'; + put '/* prepare label with metadata */'; + put 'proc sql;'; + put 'create table jobs as select distinct jobname as job from work.allmap ;'; + put 'create table cols as select distinct upcase(scan(cat,1,''.-'')) as tmplib'; + put ',cats(calculated tmplib,''.'',upcase(scan(cat,2,''.''))) as tmptab'; + put ',cats(calculated tmptab,''.'',upcase(col)) as col'; + put 'from (select sourcetablename as cat, sourcecolname as col from work.allmap'; + put 'union select targettablename as cat, targetcolname as col from work.allmap )'; + put 'having findc(tmplib,''/\'')=0 and tmplib ne ''WORK'';'; + put 'create table files as select distinct file'; + put 'from (select sourcetablename as file from work.allmap'; + put 'where findc(sourcetablename,''/\'')>0'; + put 'union select targettablename as file from work.allmap'; + put 'where findc(targettablename,''/\'')>0'; + put ') ;'; + put 'create table libs as select distinct tmplib as lib from cols;'; + put 'create table tabs as select distinct tmptab as tab from cols;'; + put 'data _null_;'; + put 'file tmp;'; + put 'put ''digraph G {'; + put 'concentrate=true;'; + put 'node [style=filled,shape=plain];'; + put 'labelloc = "t";'; + put ''';'; + put 'label= "label=<'; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''; + put '
&direction Lineage for &col
Library:
&libGenerated by:&modified_by
Table:&tabGenerated on:'; + put '%sysfunc(round(&modified_dttm,2),datetime19.)
>";'; + put 'put label;'; + put 'if "FORWARD"="&direction" then call symputx(''dirdesc'',''Impacted'');'; + put 'else call symputx(''dirdesc'',''Source'');'; + put '/* close out if there is no lineage */'; + put 'if nobs=0 then put ''x [label="No lineage found" shape=Mdiamond]}'';'; + put 'set work.allmap nobs=nobs;'; + put 'stop;'; + put 'run;'; + put 'data graphviz1;'; + put 'file tmp mod;'; + put 'length line arrow $1000 stab ttab slib tlib $100 sbox tbox tooltip $500;'; + put 'if _n_=1 then call missing(line, sbox, tbox, tooltip);'; + put 'set work.allmap ;'; + put 'sourceid=sourcecoluri;'; + put 'targetid=targetcoluri;'; + put 'if index(sourcetablename,'':'') then do;'; + put 'slib='''';'; + put 'stab=sourcetablename;'; + put 'end;'; + put 'else if map_transform=''File Reader'' then do;'; + put 'stab=scan(sourcetablename,-1,''/\'');'; + put 'slib=subpad(sourcetablename,1,length(sourcetablename)-length(stab));'; + put 'end;'; + put 'else do;'; + put 'slib=scan(sourcetablename,1,''.'');'; + put 'stab=scan(sourcetablename,2,''.'');'; + put 'end;'; + put 'if index(targettablename,'':'') then do;'; + put 'tlib='''';'; + put 'ttab=targettablename;'; + put 'end;'; + put 'else if map_transform=''File Reader'' then do;'; + put 'ttab=scan(targettablename,-1,''/\'');'; + put 'tlib=subpad(targettablename,1,length(targettablename)-length(ttab));'; + put 'end;'; + put 'else do;'; + put 'tlib=scan(targettablename,1,''.'');'; + put 'ttab=scan(targettablename,2,''.'');'; + put 'end;'; + put 'if trim(derived_rule) ne '''' then do;'; + put 'derived_rule=tranwrd(derived_rule,''"'',''\"'');'; + put '%macro quick();'; + put '%if "&sysver"="9.3" and "&sysscp"="WIN" %then %do;'; + put 'arrow=cats(''[color=Red, fontcolor=Red, penwidth="3", arrowsize="2",'''; + put ',''label=">>'',map_transform,''<<\n'',derived_rule,''"]'');'; + put '%end;'; + put '%else %do;'; + put 'arrow=cats(''[color=Red, fontcolor=Red, penwidth="3", arrowsize="2",'''; + put ',''label=">>'',map_transform,''<<\n'',wordwrap(derived_rule,24,''\n''),''"]'');'; + put '%end;'; + put '%mend quick; %quick()'; + put 'end;'; + put 'else arrow=cats(''[ label="'',map_transform,''"]'');'; + put 'source=quote(strip(sourceid));'; + put 'target=quote(strip(targetid));'; + put 'put '' '' source '' -> '' target arrow;'; + put 'run;'; + put 'data graphviz2 (keep=id tab lib col tooltip map_transform);'; + put 'set graphviz1 (rename=(source=id stab=tab slib=lib sourcecolname=col ))'; + put 'graphviz1 (rename=(target=id ttab=tab tlib=lib targetcolname=col ));'; + put 'if upcase(lib)=:''WORK'' then tooltip=cats('',tooltip="Job:'',jobname,''"'');'; + put 'else tooltip='''';'; + put 'run;'; + put 'proc sort data=graphviz2 out=graphviz3 noduprec; by _all_; run;'; + put 'data _null_;'; + put 'length shape $100 ;'; + put 'set graphviz3 end=last;'; + put 'file tmp mod;'; + put 'tab=tranwrd(tab,''\'',''\\'');'; + put 'if upcase(lib)=:''WORK'' then do;'; + put 'lib=''WORK'';'; + put 'put id ''[label=<
Table'' tab'; + put '''
Column'' col'; + put '''
> ,fillcolor=lightgrey, shape=" " '' tooltip '']'';'; + put 'end;'; + put 'else if map_transform=''File Reader'' then do;'; + put 'put id ''[label="Location: '' lib ''\nFile:'' tab ''\nColumn: '' col'; + put '''",shape=parallelogram, fillcolor="#00b300"'' tooltip '']'';'; + put 'end;'; + put 'else do;'; + put 'engine=scan(lib,2,''-'');'; + put 'lib=scan(lib,1,''-'');'; + put 'if engine=''BASE'' then fillcolour=''lightyellow '';'; + put 'else fillcolour=''lightblue'';'; + put 'shape='' shape=cylinder, fillcolor= ''!!fillcolour;'; + put 'put id ''[label=<
Library'' lib'; + put '''
Table'' tab'; + put '''
Column'' col'; + put '''
> ,'' shape tooltip '']'';'; + put 'end;'; + put 'run;'; + put 'data _null_;'; + put 'file tmp mod;'; + put '/* close out if records exist */'; + put 'set work.allmap;'; + put 'put ''}'';'; + put 'stop;'; + put 'run;'; + put 'data flatdata;'; + put 'length type $8 item $256;'; + put 'keep type item;'; + put 'set cols(in=cols) tabs(in=tabs) files(in=files) libs(in=libs) jobs(in=jobs);'; + put 'if cols then do;'; + put 'type=''Column'';'; + put 'item=col;'; + put 'end;'; + put 'else if tabs then do;'; + put 'type=''Table'';'; + put 'item=tab;'; + put 'end;'; + put 'else if files then do;'; + put 'type=''File'';'; + put 'item=file;'; + put 'end;'; + put 'else if libs then do;'; + put 'type=''Library'';'; + put 'item=lib;'; + put 'end;'; + put 'else if jobs then do;'; + put 'type=''Job'';'; + put 'item=job;'; + put 'end;'; + put 'run;'; + put 'data fromSAS;'; + put 'infile tmp end=last;'; + put 'file tmp;'; + put 'input ;'; + put 'string=_infile_;'; + put 'put string;'; + put 'run;'; + put 'filename tmp clear;'; + put '/* get list of IDs so frontend can make a clickable list */'; + put 'proc sql;'; + put 'create table ids as select distinct id from graphviz3;'; + put '%webout(OPEN)'; + put '%webout(OBJ,fromSAS)'; + put '%webout(OBJ,ids,dslabel=clickableIDS)'; + put '%webout(OBJ,info)'; + put '%webout(OBJ,flatdata)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=fetchtablelineage; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief fetch Table Lineage for SAS 9'; + put 'Some nice ideas for formatting are available here:'; + put 'https://renenyffenegger.ch/notes/tools/Graphviz/examples/index'; + put '

SAS Macros

'; + put '@li mpeinit.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global table_id direction graphOrientation;'; + put '/* enable table id and direction to be passed as url params */'; + put '%let exist=%sysfunc(exist(work.SASControlTable));'; + put '%let inds=%sysfunc(ifc(&exist=1,SASControlTable,_null_));'; + put '%put &=inds;'; + put '%let max_depth=50;'; + put 'data _null_;'; + put 'length max_depth 8;'; + put 'set &inds;'; + put 'call symputx(''table_id'',table_id);'; + put 'call symputx(''direction'',direction);'; + put 'call symputx(''graphOrientation'',''LR'');'; + put 'if max_depth>0 then call symputx(''max_depth'',max_depth);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%put &=max_depth;'; + put '%mp_abort(iftrue= (&table_id=undefined)'; + put ',mac=&_program'; + put ',msg=%str(Table_id UNDEFINED provided from frontend)'; + put ')'; + put 'data work.info;'; + put 'length tableid tablename liburi $64 libref $8;'; + put 'drop rc;'; + put 'tableid="&table_id";'; + put 'call missing(liburi);'; + put 'rc=metadata_getattr(tableid,"Name",tablename);'; + put 'if metadata_getnasn(tableid,"TablePackage",1,liburi)>0 then do;'; + put 'rc=metadata_getattr(liburi,"Libref",libref);'; + put 'libref=upcase(libref);'; + put 'end;'; + put 'tablename=upcase(tablename);'; + put 'if missing(libref) then libref=''nolib'';'; + put 'call symputx(''libds'',cats(libref,''.'',tablename));'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%let src=%sysfunc(ifc(&direction=REVERSE,src,tgt));'; + put '%let tgt=%sysfunc(ifc(&direction=REVERSE,tgt,src));'; + put 'data work.sourcetable/view=work.sourcetable;'; + put 'set &mpelib..MPE_LINEAGE_TABS;'; + put 'where &dc_dttmtfmt. lt tx_to ;'; + put 'drop tx_from tx_to;'; + put 'run;'; + put '%macro recursivejoin(iter=0'; + put ',maxiter=&max_depth /* avoid infinite loop */'; + put ');'; + put '%if &iter=0 %then %do;'; + put 'data work.baseds ;'; + put 'retain level 0;'; + put 'set work.sourcetable;'; + put 'where &tgt.tableid="&table_id";'; + put 'run;'; + put '%let iter=1;'; + put 'proc sql;'; + put '%end;'; + put '%else %if &iter>&maxiter %then %return;'; + put 'create table work.appendds as'; + put 'select distinct &iter as level'; + put ',b.*'; + put 'from work.baseds a'; + put 'left join work.sourcetable b'; + put 'on a.&src.tableid=b.&tgt.tableid'; + put 'where a.level=%eval(&iter.-1)'; + put 'and b.&src.tableid is not null'; + put 'and a.&src.tableid is not null'; + put 'and a.&src.tableid ne ''N/A'';'; + put '%let obs=&sqlobs;'; + put 'insert into work.baseds select * from work.appendds;'; + put '%if &obs %then %do;'; + put '%recursivejoin(iter=%eval(&iter.+1) )'; + put '%end;'; + put '%mend recursivejoin;'; + put '%recursivejoin()'; + put 'proc sql;'; + put 'create table work.final as'; + put 'select distinct *'; + put 'from work.baseds(drop=level)'; + put 'where jobid is not null;'; + put '/* generate graphviz */'; + put 'filename tmp "%sysfunc(pathname(work))\GraphViz%sysfunc(datetime()).txt"'; + put 'lrecl=10000 encoding=''utf-8'';'; + put '/* prepare label with metadata */'; + put 'proc sql;'; + put 'create table work.jobs as'; + put 'select distinct jobid'; + put ', jobname'; + put ',quote(cats(jobid))||'' [label=''||quote(cats(jobname))||''];'' as line'; + put 'from work.final;'; + put 'create table work.tables as'; + put 'select distinct &src.tableid as tableid'; + put ',&src.tablename as tablename'; + put ',&src.libref as libref'; + put 'from work.final'; + put 'where &src.tableid ne ''N/A'''; + put 'union select'; + put '&tgt.tableid as tableid'; + put ',&tgt.tablename as tablename'; + put ',&tgt.libref as libref'; + put 'from work.final'; + put 'where &tgt.tableid ne ''N/A'''; + put 'order by libref, tablename;'; + put 'create table idlookup as'; + put 'select tableid as metaid'; + put ',''TABLE'' as metatype'; + put ',cats(libref,''.'',tablename) as metaname'; + put 'from work.tables'; + put 'union'; + put 'select jobid as metaid'; + put ',''JOB'' as metatype'; + put ',jobname as metaname'; + put 'from work.jobs'; + put 'order by metaid;'; + put 'data CRAYONS;'; + put 'length attribute value $8;'; + put 'infile datalines4 dsd;'; + put 'input attribute value;'; + put 'call symput(cats(''col'',_n_),quote(trim(value)));'; + put 'datalines;'; + put 'red,#e6194b'; + put 'green,#3cb44b'; + put 'blue,#4363d8'; + put 'orange,#f58231'; + put 'purple,#911eb4'; + put 'cyan,#46f0f0'; + put 'magenta,#f032e6'; + put 'lime,#bcf60c'; + put 'pink,#fabebe'; + put 'teal,#008080'; + put 'lavender,#e6beff'; + put 'brown,#9a6324'; + put 'beige,#fffac8'; + put 'maroon,#800000'; + put 'mint,#aaffc3'; + put 'olive,#808000'; + put 'apricot,#ffd8b1'; + put 'navy,#000075'; + put 'gray,#808080'; + put 'black,#00000'; + put 'yellow,#ffe119'; + put 'white,#ffffff'; + put ';;;;'; + put 'run;'; + put 'proc sort data=work.tables out=work.libs nodupkey;'; + put 'by libref;'; + put 'run;'; + put 'data work.alllibs;'; + put 'set work.libs end=last;'; + put 'length line $1000. ;'; + put 'crayon=symget(cats(''col'',_n_));'; + put 'call symputx(libref,crayon);'; + put 'if _n_=1 then do;'; + put 'line=''subgraph cluster_libs { label="Libraries";'';output;'; + put 'end;'; + put 'line=cats(libref)!!'' [label=''||quote(cats(libref))||''; style="filled"; color='''; + put '||cats(crayon)||'', shape = Mrecord, fontcolor=white]'';output;'; + put 'if last then do;'; + put 'line=''}'';output;'; + put 'end;'; + put 'run;'; + put 'data alltables;'; + put 'length line $1000. ;'; + put 'set work.tables;'; + put 'crayon=symget(libref);'; + put 'line=quote(cats(tableid))||'' [label="''||cats(tablename)'; + put '!!''", color=''!!cats(crayon)'; + put '!!'', shape=cylinder,style=filled,fontcolor=white];'';'; + put 'output;'; + put 'run;'; + put 'proc sort'; + put 'data=final(keep=&src.tableid jobid &src.libref) out=&src.relations nodupkey;'; + put 'by &src.tableid jobid;'; + put 'proc sort'; + put 'data=final(keep=&tgt.tableid jobid &tgt.libref) out=&tgt.relations nodupkey;'; + put 'by jobid &tgt.tableid;'; + put 'run;'; + put 'data srcrelations;'; + put 'set srcrelations;'; + put 'length line $1000;'; + put 'where srctableid ne ''N/A'';'; + put 'line=cats('; + put '''"'',cats(srctableid),''" -> "'',jobid,''" [color='',symget(srclibref),''];'''; + put ');'; + put 'data tgtrelations;'; + put 'set tgtrelations;'; + put 'where tgttableid ne ''N/A'';'; + put 'length line $1000;'; + put 'line=cats('; + put '''"'',cats(jobid),''" -> "'',tgttableid,''" [color='',symget(tgtlibref),''];'''; + put ');'; + put 'run;'; + put 'data finalfinal;'; + put 'set work.alllibs(keep=line) work.alltables (keep=line) work.jobs(keep=line)'; + put 'work.&src.relations(keep=line) work.&tgt.relations(keep=line) end=last;'; + put 'if _N_ = 1 then do;'; + put 'firstline=line;'; + put 'line=''strict digraph "''!!"&libds"!!''" {''; output;'; + put 'line="rankdir=&graphOrientation; nodesep=0.5; node [shape = octagon];";output;'; + put 'line=firstline;'; + put 'end;'; + put 'output;'; + put 'if last then do;'; + put 'line=''}'';'; + put 'output;'; + put 'end;'; + put 'drop firstline;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,finalfinal)'; + put '%webout(OBJ,info)'; + put '%webout(OBJ,final,dslabel=flatdata)'; + put '%webout(OBJ,idlookup)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getmetacols; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getcols('; + put 'tableuri='; + put ',outds=work.mm_getcols'; + put ')/*/STORE SOURCE*/;'; + put 'data &outds;'; + put 'keep col: SAS:;'; + put 'length assoc uri coluri colname coldesc SASColumnType SASFormat SASInformat'; + put 'SASPrecision SASColumnLength $256;'; + put 'call missing (of _all_);'; + put 'uri=symget(''tableuri'');'; + put 'n=1;'; + put 'do while (metadata_getnasn(uri,''Columns'',n,coluri)>0);'; + put 'rc3=metadata_getattr(coluri,"Name",colname);'; + put 'rc3=metadata_getattr(coluri,"Desc",coldesc);'; + put 'rc4=metadata_getattr(coluri,"SASColumnType",SASColumnType);'; + put 'rc5=metadata_getattr(coluri,"SASFormat",SASFormat);'; + put 'rc6=metadata_getattr(coluri,"SASInformat",SASInformat);'; + put 'rc7=metadata_getattr(coluri,"SASPrecision",SASPrecision);'; + put 'rc8=metadata_getattr(coluri,"SASColumnLength",SASColumnLength);'; + put 'output;'; + put 'call missing(colname,coldesc,SASColumnType,SASFormat,SASInformat'; + put ',SASPrecision,SASColumnLength);'; + put 'n+1;'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by colname;'; + put 'run;'; + put '%mend mm_getcols;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getmetacols.sas'; + put '@brief List the cols as defined in metadata'; + put '@details Provide a table uri and get list of columns'; + put '

SAS Macros

'; + put '@li mm_getcols.sas'; + put '@li mp_abort.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global tableuri;'; + put '%let exist=%sysfunc(exist(work.SASControlTable));'; + put '%let inds=%sysfunc(ifc(&exist=1,SASControlTable,_null_));'; + put '%put &=inds;'; + put 'data _null_;'; + put 'set &inds;'; + put 'call symputx(''tableuri'',scan(tableuri,-1,''\''));'; + put 'run;'; + put '%put &=tableuri;'; + put '/* load parameters */'; + put '%mm_getcols(tableuri=&tableuri,outds=metacols)'; + put 'data out;'; + put 'set metacols;'; + put 'keep col:;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,out,dslabel=metacols)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getmetatables; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_gettables('; + put 'uri='; + put ',outds=work.mm_gettables'; + put ',getauth=YES'; + put ')/*/STORE SOURCE*/;'; + put 'data &outds;'; + put 'length uri serveruri conn_uri domainuri libname ServerContext AuthDomain'; + put 'path_schema usingpkguri type tableuri $256 id $17'; + put 'libdesc $200 libref engine $8 IsDBMSLibname IsPreassigned $1'; + put 'tablename $50 /* metadata table names can be longer than $32 */'; + put ';'; + put 'keep libname libdesc libref engine ServerContext path_schema AuthDomain'; + put 'tableuri tablename IsPreassigned IsDBMSLibname id;'; + put 'call missing (of _all_);'; + put 'uri=symget(''uri'');'; + put 'rc= metadata_getattr(uri, "Name", libname);'; + put 'if rc <0 then do;'; + put 'put ''The library is not defined in this metadata repository.'';'; + put 'stop;'; + put 'end;'; + put 'rc= metadata_getattr(uri, "Desc", libdesc);'; + put 'rc= metadata_getattr(uri, "Libref", libref);'; + put 'rc= metadata_getattr(uri, "Engine", engine);'; + put 'rc= metadata_getattr(uri, "IsDBMSLibname", IsDBMSLibname);'; + put 'rc= metadata_getattr(uri, "IsPreassigned", IsPreassigned);'; + put 'rc= metadata_getattr(uri, "Id", Id);'; + put '/*** Get associated ServerContext ***/'; + put 'rc= metadata_getnasn(uri, "DeployedComponents", 1, serveruri);'; + put 'if rc > 0 then rc2= metadata_getattr(serveruri, "Name", ServerContext);'; + put 'else ServerContext='''';'; + put '/*** If the library is a DBMS library, get the Authentication Domain'; + put 'associated with the DBMS connection credentials ***/'; + put 'if IsDBMSLibname="1" and "&getauth"=''YES'' then do;'; + put 'rc= metadata_getnasn(uri, "LibraryConnection", 1, conn_uri);'; + put 'if rc>0 then do;'; + put 'rc2= metadata_getnasn(conn_uri, "Domain", 1, domainuri);'; + put 'if rc2>0 then rc3= metadata_getattr(domainuri, "Name", AuthDomain);'; + put 'end;'; + put 'end;'; + put '/*** Get the path/database schema for this library ***/'; + put 'rc=metadata_getnasn(uri, "UsingPackages", 1, usingpkguri);'; + put 'if rc>0 then do;'; + put 'rc=metadata_resolve(usingpkguri,type,id);'; + put 'if type=''Directory'' then'; + put 'rc=metadata_getattr(usingpkguri, "DirectoryName", path_schema);'; + put 'else if type=''DatabaseSchema'' then'; + put 'rc=metadata_getattr(usingpkguri, "Name", path_schema);'; + put 'else path_schema="unknown";'; + put 'end;'; + put '/*** Get the tables associated with this library ***/'; + put '/*** If DBMS, tables are associated with DatabaseSchema ***/'; + put 'if type=''DatabaseSchema'' then do;'; + put 't=1;'; + put 'ntab=metadata_getnasn(usingpkguri, "Tables", t, tableuri);'; + put 'if ntab>0 then do t=1 to ntab;'; + put 'tableuri='''';'; + put 'tablename='''';'; + put 'ntab=metadata_getnasn(usingpkguri, "Tables", t, tableuri);'; + put 'tabrc= metadata_getattr(tableuri, "Name", tablename);'; + put 'output;'; + put 'end;'; + put 'else put ''Library '' libname '' has no tables registered'';'; + put 'end;'; + put 'else if type in (''Directory'',''SASLibrary'') then do;'; + put 't=1;'; + put 'ntab=metadata_getnasn(uri, "Tables", t, tableuri);'; + put 'if ntab>0 then do t=1 to ntab;'; + put 'tableuri='''';'; + put 'tablename='''';'; + put 'ntab=metadata_getnasn(uri, "Tables", t, tableuri);'; + put 'tabrc= metadata_getattr(tableuri, "Name", tablename);'; + put 'output;'; + put 'end;'; + put 'else put ''Library '' libname '' has no tables registered'';'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by tablename tableuri;'; + put 'run;'; + put '%mend mm_gettables;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getmetatables.sas'; + put '@brief List the tables as defined in metadata'; + put '@details Provide a library uri and get list of tables'; + put '

SAS Macros

'; + put '@li mm_gettables.sas'; + put '@li mp_abort.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global liburi;'; + put '%let exist=%sysfunc(exist(work.SASControlTable));'; + put '%let inds=%sysfunc(ifc(&exist=1,SASControlTable,_null_));'; + put '%put &=inds;'; + put 'data _null_;'; + put 'set &inds;'; + put 'call symputx(''liburi'',liburi);'; + put 'run;'; + put '/* load parameters */'; + put '%mm_gettables(uri=&liburi,outds=metatables,getauth=NO)'; + put 'data out;'; + put 'set metatables;'; + put 'keep table:;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,metatables)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/metanav; + +%let service=metadetails; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mpe_getvars(injs,outds);'; + put '/* load parameters */'; + put 'data _null_;'; + put '__dummychar='''';__dummynum=0;'; + put 'set &outds;'; + put 'array __charvals _character_;'; + put 'do over __charvals;'; + put 'call symputx(vname(__charvals),__charvals,''g'');'; + put 'end;'; + put 'array __numvals _numeric_;'; + put 'do over __numvals;'; + put 'call symputx(vname(__numvals),__numvals,''g'');'; + put 'end;'; + put 'run;'; + put '%mend mpe_getvars;'; + put '%macro mm_getdetails(uri'; + put ',outattrs=work.attributes'; + put ',outassocs=work.associations'; + put ')/*/STORE SOURCE*/;'; + put 'data &outassocs;'; + put 'keep assoc assocuri name;'; + put 'length assoc assocuri name $256;'; + put 'call missing(of _all_);'; + put 'rc1=1;n1=1;'; + put 'do while(rc1>0);'; + put '/* Walk through all possible associations of this object. */'; + put 'rc1=metadata_getnasl("&uri",n1,assoc);'; + put 'rc2=1;n2=1;'; + put 'do while(rc2>0);'; + put '/* Walk through all the associations on this machine object. */'; + put 'rc2=metadata_getnasn("&uri",trim(assoc),n2,assocuri);'; + put 'if (rc2>0) then do;'; + put 'rc3=metadata_getattr(assocuri,"Name",name);'; + put 'output;'; + put 'end;'; + put 'call missing(name,assocuri);'; + put 'n2+1;'; + put 'end;'; + put 'n1+1;'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by assoc name;'; + put 'run;'; + put 'data &outattrs;'; + put 'keep type name value;'; + put 'length type $4 name $256 value $32767;'; + put 'rc1=1;n1=1;type=''Prop'';name='''';value='''';'; + put 'do while(rc1>0);'; + put 'rc1=metadata_getnprp("&uri",n1,name,value);'; + put 'if rc1>0 then output;'; + put 'n1+1;'; + put 'end;'; + put 'rc1=1;n1=1;type=''Attr'';'; + put 'do while(rc1>0);'; + put 'rc1=metadata_getnatr("&uri",n1,name,value);'; + put 'if rc1>0 then output;'; + put 'n1+1;'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by type name;'; + put 'run;'; + put '%mend mm_getdetails;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file metadetails.sas'; + put '@brief Retrieves metadata attributes and associations for a particular object'; + put '@details'; + put '

SAS Macros

'; + put '@li mm_getdetails.sas'; + put '@li mpe_getvars.sas'; + put '@li mpeinit.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mpe_getvars(SASControlTable, SASControlTable)'; + put '%mm_getdetails(&objecturi'; + put ',outattrs=work.attributes'; + put ',outassocs=work.associations'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,attributes)'; + put '%webout(OBJ,associations)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=metaobjects; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mpe_getvars(injs,outds);'; + put '/* load parameters */'; + put 'data _null_;'; + put '__dummychar='''';__dummynum=0;'; + put 'set &outds;'; + put 'array __charvals _character_;'; + put 'do over __charvals;'; + put 'call symputx(vname(__charvals),__charvals,''g'');'; + put 'end;'; + put 'array __numvals _numeric_;'; + put 'do over __numvals;'; + put 'call symputx(vname(__numvals),__numvals,''g'');'; + put 'end;'; + put 'run;'; + put '%mend mpe_getvars;'; + put '%macro mm_getobjects('; + put 'type=SASLibrary'; + put ',outds=work.mm_getobjects'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"$METAREPOSITORY'; + put '&typeSAS'; + put '0"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/&type";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/&type/@Id";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/&type/@Name";'; + put 'put "characterstring200";'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASObjects out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getobjects;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file metaobjects.sas'; + put '@brief Retrieves list of objects for a particular metadata type'; + put '@details'; + put '

SAS Macros

'; + put '@li mm_getobjects.sas'; + put '@li mpe_getvars.sas'; + put '@li mpeinit.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mpe_getvars(SASControlTable, SASControlTable)'; + put 'options metarepository=&repo;'; + put '%mm_getobjects('; + put 'type=&metatype'; + put ',outds=work.objects'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,objects)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=metarepos; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file metarepos.sas'; + put '@brief Retrieves list of metadata types'; + put '@details'; + put '

SAS Macros

'; + put '@li mm_getrepos.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mm_getrepos(outds=work.repos)'; + put 'data outrepos;'; + put 'set repos;'; + put 'if repositorytype in (''CUSTOM'',''FOUNDATION'');'; + put 'keep id name description;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,outrepos)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=metatypes; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_gettypes('; + put 'outds=work.mm_gettypes'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put ''; + put 'SAS'; + put ''; + put '2048'; + put ''; + put ''; + put '$METAREPOSITORY'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put ''//GetTypes/Types/Type'';'; + put 'put ''64'';'; + put 'put ''//GetTypes/Types/Type/@Id'';'; + put 'put ''256'';'; + put 'put ''//GetTypes/Types/Type/@Desc'';'; + put 'put '''';'; + put 'put ''//GetTypes/Types/Type/@HasSubtypes'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.sastypes out=&outds;'; + put 'by id;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_gettypes;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file metatypes.sas'; + put '@brief Retrieves list of metadata types'; + put '@details'; + put '

SAS Macros

'; + put '@li mm_gettypes.sas'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mm_gettypes(outds=work.types)'; + put '%webout(OPEN)'; + put '%webout(OBJ,types)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/public; + +%let service=getchangeinfo; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getchangeinfo.sas'; + put '@brief Returns the details for an approval diff'; + put '@details'; + put '

SAS Macros

'; + put '@li mf_getengine.sas'; + put '@li dc_assignlib.sas'; + put '@li mp_abort.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let table=;'; + put 'data _null_;'; + put 'set SASControlTable;'; + put 'call symputx(''table'',table);'; + put 'run;'; + put '%dc_assignlib(WRITE,%scan(&table,1,.))'; + put '%let max_ver_dttm=0;'; + put 'data APPROVE1;'; + put 'set &mpelib..mpe_submit'; + put '(rename=(SUBMITTED_ON_DTTM=submitted_on REVIEWED_ON_DTTM=REVIEWED_ON));'; + put 'where TABLE_ID="&TABLE";'; + put 'TABLE_NM=cats(base_lib,''.'',base_ds);'; + put 'BASE_TABLE=table_nm;'; + put 'call symputx(''base_lib'',base_lib);'; + put 'REVIEWED_ON_DTTM=put(reviewed_on,datetime19.);'; + put 'SUBMITTED_ON_DTTM=put(submitted_on,datetime19.);'; + put 'run;'; + put 'data jsParams;'; + put 'set approve1;'; + put 'LIB_ENGINE="%mf_getEngine(&base_lib)";'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,jsParams)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getcols; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvalue(libds,variable,filter=1'; + put ')/*/STORE SOURCE*/;'; + put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; + put '%local dsid rc &variable;'; + put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; + put '%syscall set(dsid);'; + put '%let rc = %sysfunc(fetch(&dsid));'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%trim(&&&variable)'; + put '%end;'; + put '%mend mf_getvalue;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getcols.sas'; + put '@brief Retrieves column info to enable population of dropdowns'; + put '@details'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li mf_getvalue.sas'; + put '@li mp_abort.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let ds=%mf_getvalue(work.iwant,libds);'; + put '%dc_assignlib(READ,%scan(&ds,1,.))'; + put 'proc contents noprint data=&ds'; + put 'out=droplist1 (keep=name type length label varnum format:);'; + put 'run;'; + put 'data cols(keep=name type length varnum format label);'; + put 'set droplist1(rename=(format=format2 type=type2));'; + put 'name=upcase(name);'; + put 'if type2=2 then do;'; + put 'length format $49.;'; + put 'if format2='''' then format=cats(''$'',length,''.'');'; + put 'else if formatl=0 then format=cats(format2,''.'');'; + put 'else format=cats(format2,formatl,''.'');'; + put 'type=''C'';'; + put 'ddtype=''CHARACTER'';'; + put 'end;'; + put 'else do;'; + put 'if format2='''' then format=cats(length,''.'');'; + put 'else if formatl=0 then format=cats(format2,''.'');'; + put 'else if formatd=0 then format=cats(format2,formatl,''.'');'; + put 'else format=cats(format2,formatl,''.'',formatd);'; + put 'type=''N'';'; + put 'if format=:''DATETIME'' then ddtype=''DATETIME'';'; + put 'else if format=:''DATE'' then ddtype=''DATE'';'; + put 'else if format=:''TIME'' then ddtype=''TIME'';'; + put 'else ddtype=''NUMERIC'';'; + put 'end;'; + put 'if label='''' then label=name;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,cols)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getcolvals; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvalue(libds,variable,filter=1'; + put ')/*/STORE SOURCE*/;'; + put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; + put '%local dsid rc &variable;'; + put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; + put '%syscall set(dsid);'; + put '%let rc = %sysfunc(fetch(&dsid));'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%trim(&&&variable)'; + put '%end;'; + put '%mend mf_getvalue;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_getVarFormat(libds /* two level ds name */'; + put ', var /* variable name from which to return the format */'; + put ', force=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vformat rc vlen vtype;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable format */'; + put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* supply a default if no format available */'; + put '%if %length(&vformat)<2 & &force=1 %then %do;'; + put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; + put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%if &vtype=C %then %let vformat=$&vlen..;'; + put '%else %let vformat=best.;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable format */'; + put '&vformat'; + put '%mend mf_getVarFormat;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);'; + put '%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)'; + put ')'; + put '%local fref1;'; + put '%let fref1=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &fref1;'; + put 'infile &inref end=eof;'; + put 'if _n_=1 then do;'; + put 'put "proc sql;";'; + put 'put "validate select * from &targetds";'; + put 'put "where " ;'; + put 'end;'; + put 'input;'; + put 'put _infile_;'; + put 'putlog _infile_;'; + put 'if eof then put ";quit;";'; + put 'run;'; + put '%inc &fref1;'; + put 'data &outds;'; + put 'if &sqlrc or &syscc or &syserr then do;'; + put 'REASON_CD=''VALIDATION_ERR''!!''OR: ''!!'; + put 'coalescec(symget(''SYSERRORTEXT''),symget(''SYSWARNINGTEXT''));'; + put 'output;'; + put 'end;'; + put 'else stop;'; + put 'run;'; + put 'filename &fref1 clear;'; + put '%if %mf_nobs(&outds)>0 %then %do;'; + put '%if &abort=YES %then %do;'; + put 'data _null_;'; + put 'set &outds;'; + put 'call symputx(''REASON_CD'',reason_cd,''l'');'; + put 'stop;'; + put 'run;'; + put '%mp_abort('; + put 'mac=&sysmacroname,'; + put 'msg=%str(Filter validation issues.)'; + put ')'; + put '%end;'; + put '%let syscc=1008;'; + put '%end;'; + put '%mend mp_filtervalidate;'; + put '%macro mp_filtercheck(inds,targetds=,outds=work.badrecords,abort=YES);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put '/* Validate input column */'; + put '%local vtype;'; + put '%let vtype=%mf_getvartype(&inds,RAW_VALUE);'; + put '%mp_abort(iftrue=(&abort=YES and &vtype ne C),'; + put 'mac=&sysmacroname,'; + put 'msg=%str(%str(ERR)OR: RAW_VALUE must be character)'; + put ')'; + put '%if &vtype ne C %then %do;'; + put '%put &sysmacroname: RAW_VALUE must be character;'; + put '%let syscc=42;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Sanitise the values based on valid value lists, then strip out'; + put '* quotes, commas, periods and spaces.'; + put '* Only numeric values should remain'; + put '*/'; + put '%local reason_cd nobs;'; + put '%let nobs=0;'; + put 'data &outds;'; + put '/*length GROUP_LOGIC SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; + put 'OPERATOR_NM $10 RAW_VALUE $4000;*/'; + put 'set &inds;'; + put 'length reason_cd $4032 vtype $1 vnum dsid 8 tmp $4000;'; + put 'drop tmp;'; + put '/* quick check to ensure column exists */'; + put 'if upcase(VARIABLE_NM) not in'; + put '(%upcase(%mf_getvarlist(&targetds,dlm=%str(,),quote=SINGLE)))'; + put 'then do;'; + put 'REASON_CD="Variable "!!cats(variable_nm)!!" not in &targetds";'; + put 'putlog REASON_CD= VARIABLE_NM=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'return;'; + put 'end;'; + put '/* need to open the dataset to get the column type */'; + put 'dsid=open("&targetds","i");'; + put 'if dsid>0 then do;'; + put 'vnum=varnum(dsid,VARIABLE_NM);'; + put 'if vnum<1 then do;'; + put '/* should not happen as was also tested for above */'; + put 'REASON_CD=cats("Variable (",VARIABLE_NM,") not found in &targetds");'; + put 'putlog REASON_CD= dsid=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'return;'; + put 'end;'; + put '/* now we can get the type */'; + put 'else vtype=vartype(dsid,vnum);'; + put 'end;'; + put '/* closed list checks */'; + put 'if GROUP_LOGIC not in (''AND'',''OR'') then do;'; + put 'REASON_CD=''GROUP_LOGIC should be AND/OR, not:''!!cats(GROUP_LOGIC);'; + put 'putlog REASON_CD= GROUP_LOGIC=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if SUBGROUP_LOGIC not in (''AND'',''OR'') then do;'; + put 'REASON_CD=''SUBGROUP_LOGIC should be AND/OR, not:''!!cats(SUBGROUP_LOGIC);'; + put 'putlog REASON_CD= SUBGROUP_LOGIC=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if mod(SUBGROUP_ID,1) ne 0 then do;'; + put 'REASON_CD=''SUBGROUP_ID should be integer, not ''!!cats(subgroup_id);'; + put 'putlog REASON_CD= SUBGROUP_ID=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if OPERATOR_NM not in'; + put '(''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'',''BETWEEN'',''IN'',''NOT IN'',''CONTAINS'')'; + put 'then do;'; + put 'REASON_CD=''Invalid OPERATOR_NM: ''!!cats(OPERATOR_NM);'; + put 'putlog REASON_CD= OPERATOR_NM=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put '/* special missing logic */'; + put 'if vtype=''N'''; + put 'and OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'')'; + put 'and cats(upcase(raw_value)) in ('; + put '''.'',''.A'',''.B'',''.C'',''.D'',''.E'',''.F'',''.G'',''.H'',''.I'',''.J'',''.K'',''.L'',''.M'',''.N'''; + put '''.N'',''.O'',''.P'',''.Q'',''.R'',''.S'',''.T'',''.U'',''.V'',''.W'',''.X'',''.Y'',''.Z'',''._'''; + put ')'; + put 'then do;'; + put '/* valid numeric - exit data step loop */'; + put 'return;'; + put 'end;'; + put '/* special logic */'; + put 'if OPERATOR_NM in (''IN'',''NOT IN'',''BETWEEN'') then do;'; + put 'if OPERATOR_NM=''BETWEEN'' then raw_value1=tranwrd(raw_value,'' AND '','','');'; + put 'else do;'; + put 'if substr(raw_value,1,1) ne ''('''; + put 'or substr(cats(reverse(raw_value)),1,1) ne '')'''; + put 'then do;'; + put 'REASON_CD=''Missing start/end bracket in RAW_VALUE'';'; + put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'else raw_value1=substr(raw_value,2,max(length(raw_value)-2,0));'; + put 'end;'; + put '/* we now have a comma seperated list of values */'; + put 'if vtype=''N'' then do i=1 to countc(raw_value1, '','')+1;'; + put 'tmp=scan(raw_value1,i,'','');'; + put 'if cats(tmp) ne ''.'' and input(tmp, ?? 8.) eq . then do;'; + put 'REASON_CD=''Non Numeric value provided'';'; + put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'return;'; + put 'end;'; + put 'end;'; + put 'else raw_value1=raw_value;'; + put '/* remove nested literals eg '''' */'; + put 'raw_value1=tranwrd(raw_value1,"''''",'''');'; + put '/* now match string literals (always single quotes) */'; + put 'raw_value2=raw_value1;'; + put 'regex = prxparse("s/(\'').*?(\'')//");'; + put 'call prxchange(regex,-1,raw_value2);'; + put '/* remove commas and periods*/'; + put 'raw_value3=compress(raw_value2,'',.'');'; + put '/* output records that contain values other than digits and spaces */'; + put 'if notdigit(compress(raw_value3,'' ''))>0 then do;'; + put 'putlog raw_value3= $hex32.;'; + put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; + put 'putlog REASON_CD= raw_value= raw_value1= raw_value2= raw_value3=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'run;'; + put 'data _null_;'; + put 'set &outds end=last;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue=(&abort=YES and &nobs>0),'; + put 'mac=&sysmacroname,'; + put 'msg=%str(Data issue: %superq(reason_cd))'; + put ')'; + put '%if &nobs>0 %then %do;'; + put '%let syscc=1008;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* syntax checking passed but it does not mean the filter is valid'; + put '* for that we can run a proc sql validate query'; + put '*/'; + put '%local fref1;'; + put '%let fref1=%mf_getuniquefileref();'; + put '%mp_filtergenerate(&inds,outref=&fref1)'; + put '/* this macro will also set syscc to 1008 if any issues found */'; + put '%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)'; + put '%mend mp_filtercheck;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Retrieves column info to enable population of dropdowns'; + put '@details An optional filterquery may be provided, if so then it is validated'; + put 'and then used to filter the subsequent results.'; + put '

Service Inputs

'; + put '
IWANT
'; + put '|libds:$19.|col:$9.|'; + put '|---|---|'; + put '|DC258467.MPE_X_TEST|SOME_TIME|'; + put '
FILTERQUERY
'; + put '|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$32767|'; + put '|---|---|---|---|---|---|'; + put '|AND|AND|1|SOME_BESTNUM|>|1|'; + put '|AND|AND|1|SOME_TIME|=|77333|'; + put '

Service Outputs

'; + put '
VALS
'; + put 'The type of this column actually depends on the underlying column type, so it can change'; + put '|FORMATTED|UNFORMATTED|'; + put '|---|---|'; + put '|$44.00|44|'; + put '
META
'; + put '|COLUMN:$32.|SASFORMAT:$32.|'; + put '|---|---|'; + put '|COL_NAME|DOLLAR8.2|'; + put '

SAS Macros

'; + put '@li mf_existds.sas'; + put '@li mf_getvalue.sas'; + put '@li mf_verifymacvars.sas'; + put '@li dc_assignlib.sas'; + put '@li mf_getvarformat.sas'; + put '@li mp_abort.sas'; + put '@li mp_cntlout.sas'; + put '@li mp_filtercheck.sas'; + put '@li mp_filtergenerate.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/* input table may or may not exist */'; + put 'data work.initvars;'; + put 'length GROUP_LOGIC $3 SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; + put 'OPERATOR_NM $10 RAW_VALUE $32767;'; + put 'call missing(of _all_);'; + put 'stop;'; + put 'data work.filterquery;'; + put 'set %sysfunc(ifc('; + put '%mf_existds(work.filterquery)=1'; + put ',work.filterquery'; + put ',work.initvars'; + put '));'; + put 'run;'; + put '/* print data for debugging */'; + put 'data _null_;'; + put 'set work.iwant;'; + put 'put (_all_)(=);'; + put 'run;'; + put 'data _null_;'; + put 'set work.filterquery;'; + put 'put (_all_)(=);'; + put 'run;'; + put '%let libds=%mf_getvalue(work.iwant,libds);'; + put '%let col2=%mf_getvalue(work.iwant,col);'; + put '%let is_fmt=0;'; + put '%put &=libds;'; + put '%put &=col2;'; + put '%mp_abort(iftrue= (%mf_verifymacvars(libds col2)=0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Missing inputs from iwant. Libds=&libds col=&col2 )'; + put ')'; + put '%dc_assignlib(WRITE,%scan(&libds,1,.))'; + put 'data _null_;'; + put 'set work.iwant;'; + put '/* check if the request is for a format catalog */'; + put 'call symputx(''orig_libds'',libds);'; + put 'is_fmt=0;'; + put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'call symputx(''libds'',''work.fmtextract'');'; + put 'is_fmt=1;'; + put 'end;'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_cntlout('; + put 'iftrue=(&is_fmt=1)'; + put ',libcat=&orig_libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '/**'; + put '* Validate the filter query'; + put '*/'; + put '%mp_filtercheck(work.filterquery,targetds=&libds,abort=YES)'; + put '/**'; + put '* Prepare the query'; + put '*/'; + put '%mp_filtergenerate(work.filterquery,outref=myfilter)'; + put '/* cannot %inc in a sql where clause, only data step, so - use a view */'; + put 'data work.vw_vals/view=work.vw_vals;'; + put 'set &libds;'; + put 'where %inc myfilter;;'; + put 'run;'; + put 'options obs=2000;/* restrict num of output values */'; + put 'proc sql;'; + put 'create table vals as select distinct'; + put 'put(&col2,%mf_getVarFormat(&libds,&col2,force=1)) as formatted,'; + put '&col2 as unformatted'; + put 'from work.vw_vals;'; + put 'options obs=max;'; + put 'data vals;'; + put '/* ensure empty value if table is empty, for dropdowns */'; + put 'if nobs=0 then output;'; + put 'set vals nobs=nobs;'; + put 'format unformatted ;'; + put 'output;'; + put 'run;'; + put 'data meta;'; + put 'column="&col2";'; + put 'sasformat="%mf_getVarFormat(&libds,&col2)";'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,vals,missing=STRING,showmeta=YES)'; + put '%webout(OBJ,meta)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getddl; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mf_existfileref(fref'; + put ')/*/STORE SOURCE*/;'; + put '%local rc;'; + put '%let rc=%sysfunc(fileref(&fref));'; + put '%if &rc=0 %then %do;'; + put '1'; + put '%end;'; + put '%else %if &rc<0 %then %do;'; + put '%put &sysmacroname: Fileref &fref exists but the underlying file does not;'; + put '1'; + put '%end;'; + put '%else %do;'; + put '0'; + put '%end;'; + put '%mend mf_existfileref;'; + put '%macro mf_getvarcount(libds,typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid nvars rc outcnt x;'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%let nvars=.;'; + put '%let outcnt=0;'; + put '%let typefilter=%upcase(&typefilter);'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &typefilter=A %then %let outcnt=&nvars;'; + put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; + put '/* increment based on variable type */'; + put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; + put '%let outcnt=%eval(&outcnt+1);'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put unable to open &libds (rc=&dsid);'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '&outcnt'; + put '%mend mf_getvarcount;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mp_getconstraints(lib=WORK'; + put ',ds='; + put ',outds=mp_getconstraints'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '/**'; + put '* Cater for environments where sashelp.vcncolu is not available'; + put '*/'; + put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; + put 'proc sql;'; + put 'create table &outds('; + put 'libref char(8)'; + put ',TABLE_NAME char(32)'; + put ',constraint_type char(8) label=''Constraint Type'''; + put ',constraint_name char(32) label=''Constraint Name'''; + put ',column_name char(32) label=''Column'''; + put ',constraint_order num'; + put ');'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Neither dictionary tables nor sashelp provides a constraint order column,'; + put '* however they DO arrive in the correct order. So, create the col.'; + put '**/'; + put '%local vw;'; + put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; + put 'data &vw /view=&vw;'; + put 'set sashelp.vcncolu;'; + put 'where table_catalog="&lib";'; + put '/* use retain approach to reset the constraint order with each constraint */'; + put 'length tmp $1000;'; + put 'retain tmp;'; + put 'drop tmp;'; + put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; + put 'constraint_order=1;'; + put 'end;'; + put 'else constraint_order+1;'; + put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; + put 'run;'; + put '/* must use SQL as proc datasets does not support length changes */'; + put 'proc sql noprint;'; + put 'create table &outds as'; + put 'select upcase(a.TABLE_CATALOG) as libref'; + put ',upcase(a.TABLE_NAME) as TABLE_NAME'; + put ',a.constraint_type'; + put ',a.constraint_name'; + put ',b.column_name'; + put ',b.constraint_order'; + put 'from dictionary.TABLE_CONSTRAINTS a'; + put 'left join &vw b'; + put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; + put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; + put 'and a.constraint_name=b.constraint_name'; + put '/**'; + put '* We cannot apply this clause to the underlying dictionary table. See:'; + put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; + put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; + put '* all the underlying constraint queries, causing exception errors in some'; + put '* cases: https://github.com/sasjs/core/issues/283'; + put '*/'; + put 'where a.TABLE_CATALOG="&lib"'; + put '%if "&ds" ne "" %then %do;'; + put 'and upcase(a.TABLE_NAME)="&ds"'; + put 'and upcase(b.TABLE_NAME)="&ds"'; + put '%end;'; + put 'order by libref, table_name, constraint_name, constraint_order'; + put ';'; + put '/* tidy up */'; + put '%mp_dropmembers('; + put '&vw,'; + put 'iftrue=(&mdebug=0)'; + put ')'; + put '%mend mp_getconstraints;'; + put '%macro mp_getddl(libref,ds,fref=getddl,flavour=SAS,showlog=NO,schema='; + put ',applydttm=NO'; + put ')/*/STORE SOURCE*/;'; + put '/* check fileref is assigned */'; + put '%if %mf_existfileref(&fref)=0 %then %do;'; + put 'filename &fref temp ;'; + put '%end;'; + put '%if %length(&libref)=0 %then %let libref=WORK;'; + put '%let flavour=%upcase(&flavour);'; + put 'proc sql noprint;'; + put 'create table _data_ as'; + put 'select * from dictionary.tables'; + put 'where upcase(libname)="%upcase(&libref)"'; + put 'and memtype=''DATA'' /* views not currently supported */'; + put '%if %length(&ds)>0 %then %do;'; + put 'and upcase(memname)="%upcase(&ds)"'; + put '%end;'; + put ';'; + put '%local tabinfo; %let tabinfo=&syslast;'; + put 'create table _data_ as'; + put 'select * from dictionary.columns'; + put 'where upcase(libname)="%upcase(&libref)"'; + put '%if %length(&ds)>0 %then %do;'; + put 'and upcase(memname)="%upcase(&ds)"'; + put '%end;'; + put ';'; + put '%local colinfo; %let colinfo=&syslast;'; + put '%local dsnlist;'; + put 'select distinct upcase(memname) into: dsnlist'; + put 'separated by '' '''; + put 'from &syslast'; + put ';'; + put 'create table _data_ as'; + put 'select * from dictionary.indexes'; + put 'where upcase(libname)="%upcase(&libref)"'; + put '%if %length(&ds)>0 %then %do;'; + put 'and upcase(memname)="%upcase(&ds)"'; + put '%end;'; + put 'order by idxusage, indxname, indxpos'; + put ';'; + put '%local idxinfo; %let idxinfo=&syslast;'; + put '/* Extract all Primary Key and Unique data constraints */'; + put '%mp_getconstraints(lib=%upcase(&libref),ds=%upcase(&ds),outds=_data_)'; + put '%local colconst; %let colconst=&syslast;'; + put '%macro addConst();'; + put '%global constraints_used;'; + put 'data _null_;'; + put 'length ctype $11 constraint_name_orig $256 constraints_used $5000;'; + put 'set &colconst('; + put 'where=(table_name="&curds" and constraint_type in (''PRIMARY'',''UNIQUE''))'; + put ') end=last;'; + put 'file &fref mod;'; + put 'by constraint_type constraint_name;'; + put 'retain constraints_used;'; + put 'constraint_name_orig=constraint_name;'; + put 'if upcase(strip(constraint_type)) = ''PRIMARY'' then ctype=''PRIMARY KEY'';'; + put 'else ctype=strip(constraint_type);'; + put '%if &flavour=TSQL %then %do;'; + put 'column_name=catt(''['',column_name,'']'');'; + put 'constraint_name=catt(''['',constraint_name,'']'');'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put 'column_name=catt(''"'',column_name,''"'');'; + put 'constraint_name=catt(''"'',constraint_name,''"'');'; + put '%end;'; + put 'if first.constraint_name then do;'; + put 'constraints_used = catx('' '', constraints_used, constraint_name_orig);'; + put 'put " ,CONSTRAINT " constraint_name ctype "(" ;'; + put 'put '' '' column_name;'; + put 'end;'; + put 'else put '' ,'' column_name;'; + put 'if last.constraint_name then do;'; + put 'put " )";'; + put 'call symput(''constraints_used'',strip(constraints_used));'; + put 'end;'; + put 'run;'; + put '%put &=constraints_used;'; + put '%mend addConst;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* DDL generated by &sysuserid on %sysfunc(datetime(),datetime19.) */";'; + put 'run;'; + put '%local x curds;'; + put '%if &flavour=SAS %then %do;'; + put '%do x=1 %to %sysfunc(countw(&dsnlist));'; + put '%let curds=%scan(&dsnlist,&x);'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* SAS Flavour DDL for %upcase(&libref).&curds */";'; + put 'put "proc sql;";'; + put 'run;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'length lab $1024 typ $20;'; + put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; + put 'if _n_=1 then do;'; + put 'if memtype=''DATA'' then do;'; + put 'put "create table &libref..&curds(";'; + put 'end;'; + put 'else do;'; + put '/* just a placeholder - we filter out views at the top */'; + put 'put "create view &libref..&curds(";'; + put 'end;'; + put 'put " "@@;'; + put 'end;'; + put 'else put " ,"@@;'; + put 'if length(format)>1 then fmt=" format="!!cats(format);'; + put 'if length(label)>1 then'; + put 'lab=" label="!!cats("''",tranwrd(label,"''","''''"),"''");'; + put 'if notnull=''yes'' then notnul='' not null'';'; + put 'if type=''char'' then typ=cats(''char('',length,'')'');'; + put 'else if length ne 8 then typ=''num length=''!!cats(length);'; + put 'else typ=''num'';'; + put 'put name typ fmt notnul lab;'; + put 'run;'; + put '/* Extra step for data constraints */'; + put '%addConst()'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put '');'';'; + put 'run;'; + put '/* Create Unique Indexes, but only if they were not already defined within'; + put 'the Constraints section. */'; + put 'data _null_;'; + put '*length ds $128;'; + put 'set &idxinfo('; + put 'where=('; + put 'memname="&curds"'; + put 'and unique=''yes'''; + put 'and indxname not in ('; + put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; + put ')'; + put ')'; + put ');'; + put 'file &fref mod;'; + put 'by idxusage indxname;'; + put '/* ds=cats(libname,''.'',memname); */'; + put 'if first.indxname then do;'; + put 'put ''CREATE UNIQUE INDEX '' indxname "ON &libref..&curds (" ;'; + put 'put '' '' name ;'; + put 'end;'; + put 'else put '' ,'' name ;'; + put '*else put '' ,'' name ;'; + put 'if last.indxname then do;'; + put 'put '');'';'; + put 'end;'; + put 'run;'; + put '/*'; + put 'ods output IntegrityConstraints=ic;'; + put 'proc contents data=testali out2=info;'; + put 'run;'; + put '*/'; + put '%end;'; + put '%end;'; + put '%else %if &flavour=TSQL %then %do;'; + put '/* if schema does not exist, set to be same as libref */'; + put '%local schemaactual;'; + put 'proc sql noprint;'; + put 'select sysvalue into: schemaactual'; + put 'from dictionary.libnames'; + put 'where upcase(libname)="&libref" and engine=''SQLSVR'';'; + put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; + put '%do x=1 %to %sysfunc(countw(&dsnlist));'; + put '%let curds=%scan(&dsnlist,&x);'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* TSQL Flavour DDL for &schema..&curds */";'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; + put 'if _n_=1 then do;'; + put 'if memtype=''DATA'' then do;'; + put 'put "create table [&schema].[&curds](";'; + put 'end;'; + put 'else do;'; + put '/* just a placeholder - we filter out views at the top */'; + put 'put "create view [&schema].[&curds](";'; + put 'end;'; + put 'put " "@@;'; + put 'end;'; + put 'else put " ,"@@;'; + put 'format=upcase(format);'; + put 'if 1=0 then; /* dummy if */'; + put '%if &applydttm=YES %then %do;'; + put 'else if format=:''DATETIME'' then fmt=''[datetime2](7) '';'; + put '%end;'; + put 'else if type=''num'' then fmt=''[decimal](18,2)'';'; + put 'else if length le 8000 then fmt=''[varchar](''!!cats(length)!!'')'';'; + put 'else fmt=cats(''[varchar](max)'');'; + put 'if notnull=''yes'' then notnul='' NOT NULL'';'; + put 'put "[" name +(-1) "]" fmt notnul;'; + put 'run;'; + put '/* Extra step for data constraints */'; + put '%addConst()'; + put '/* Create Unique Indexes, but only if they were not already defined within'; + put 'the Constraints section. */'; + put 'data _null_;'; + put '*length ds $128;'; + put 'set &idxinfo('; + put 'where=('; + put 'memname="&curds"'; + put 'and unique=''yes'''; + put 'and indxname not in ('; + put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; + put ')'; + put ')'; + put ');'; + put 'file &fref mod;'; + put 'by idxusage indxname;'; + put '*ds=cats(libname,''.'',memname);'; + put 'if first.indxname then do;'; + put '/* add nonclustered in case of multiple unique indexes */'; + put 'put '' ,index ['' indxname +(-1) ''] UNIQUE NONCLUSTERED ('';'; + put 'put '' ['' name +(-1) '']'';'; + put 'end;'; + put 'else put '' ,['' name +(-1) '']'';'; + put 'if last.indxname then do;'; + put 'put '' )'';'; + put 'end;'; + put 'run;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put '')'';'; + put 'put ''GO'';'; + put 'run;'; + put '/* add extended properties for labels */'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'length nm $64 lab $1024;'; + put 'set &colinfo (where=(upcase(memname)="&curds" and label ne '''')) end=last;'; + put 'nm=cats("N''",tranwrd(name,"''","''''"),"''");'; + put 'lab=cats("N''",tranwrd(label,"''","''''"),"''");'; + put 'put '' '';'; + put 'put "EXEC sys.sp_addextendedproperty ";'; + put 'put " @name=N''MS_Description'',@value=" lab ;'; + put 'put " ,@level0type=N''SCHEMA'',@level0name=N''&schema'' ";'; + put 'put " ,@level1type=N''TABLE'',@level1name=N''&curds''";'; + put 'put " ,@level2type=N''COLUMN'',@level2name=" nm ;'; + put 'if last then put ''GO'';'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %if &flavour=PGSQL %then %do;'; + put '/* if schema does not exist, set to be same as libref */'; + put '%local schemaactual;'; + put 'proc sql noprint;'; + put 'select sysvalue into: schemaactual'; + put 'from dictionary.libnames'; + put 'where upcase(libname)="&libref" and engine=''POSTGRES'';'; + put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "CREATE SCHEMA &schema;";'; + put '%do x=1 %to %sysfunc(countw(&dsnlist));'; + put '%let curds=%scan(&dsnlist,&x);'; + put '%local curdsvarcount;'; + put '%let curdsvarcount=%mf_getvarcount(&libref..&curds);'; + put '%if &curdsvarcount>1600 %then %do;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* &libref..&curds contains &curdsvarcount vars */";'; + put 'put "/* Postgres cannot create tables with over 1600 vars */";'; + put 'put "/* No DDL will be generated for this table";'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put "/* Postgres Flavour DDL for &schema..&curds */";'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; + put 'length fmt $32;'; + put 'if _n_=1 then do;'; + put 'if memtype=''DATA'' then do;'; + put 'put "CREATE TABLE &schema..&curds (";'; + put 'end;'; + put 'else do;'; + put '/* just a placeholder - we filter out views at the top */'; + put 'put "CREATE VIEW &schema..&curds (";'; + put 'end;'; + put 'put " "@@;'; + put 'end;'; + put 'else put " ,"@@;'; + put 'format=upcase(format);'; + put 'if 1=0 then; /* dummy if */'; + put '%if &applydttm=YES %then %do;'; + put 'else if format=:''DATETIME'' then fmt='' TIMESTAMP '';'; + put '%end;'; + put 'else if type=''num'' then fmt='' DOUBLE PRECISION'';'; + put 'else fmt=''VARCHAR(''!!cats(length)!!'')'';'; + put 'if notnull=''yes'' then notnul='' NOT NULL'';'; + put '/* quote column names in case they represent reserved words */'; + put 'name2=quote(trim(name));'; + put 'put name2 fmt notnul;'; + put 'run;'; + put '/* Extra step for data constraints */'; + put '%addConst()'; + put 'data _null_;'; + put 'file &fref mod;'; + put 'put '');'';'; + put 'run;'; + put '/* Create Unique Indexes, but only if they were not already defined within'; + put 'the Constraints section. */'; + put 'data _null_;'; + put '*length ds $128;'; + put 'set &idxinfo('; + put 'where=('; + put 'memname="&curds"'; + put 'and unique=''yes'''; + put 'and indxname not in ('; + put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; + put ')'; + put ')'; + put ');'; + put 'file &fref mod;'; + put 'by idxusage indxname;'; + put 'if first.indxname then do;'; + put 'put ''CREATE UNIQUE INDEX "'' indxname +(-1) ''" '' "ON &schema..&curds(";'; + put 'put '' "'' name +(-1) ''"'' ;'; + put 'end;'; + put 'else put '' ,"'' name +(-1) ''"'';'; + put 'if last.indxname then do;'; + put 'put '');'';'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%if %upcase(&showlog)=YES %then %do;'; + put 'options ps=max;'; + put 'data _null_;'; + put 'infile &fref;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%mend mp_getddl;'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Download DDL for a table or entire library in a particular flavour.'; + put '@details'; + put '

SAS Macros

'; + put '@li mddl_sas_cntlout.sas'; + put '@li dc_assignlib.sas'; + put '@li mf_existds.sas'; + put '@li mp_abort.sas'; + put '@li mp_getddl.sas'; + put '@li mp_streamfile.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%global libref ds flavour;'; + put '%let flavour=%sysfunc(coalescec(&flavour,SAS));'; + put '%mpeinit()'; + put '%dc_assignlib(READ,&libref)'; + put 'data _null_;'; + put '/* check if the request is for a format catalog */'; + put 'ds=symget(''ds'');'; + put 'if subpad(cats(reverse(ds)),1,3)=:''CF-'' then do;'; + put 'ds=scan(ds,1,''-'');'; + put 'libds=cats(symget(''libref''),''.'',ds);'; + put 'putlog "Format Catalog Captured";'; + put 'call execute(''%mddl_sas_cntlout(libds=work.fmtextract)'');'; + put 'call symputx(''libref'',''work'');'; + put 'call symputx(''ds'',''fmtextract'');'; + put 'end;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue=("exist&ds" ne "exist" and %mf_existds(libds=&libref..&ds)<1)'; + put ',mac=&_program'; + put ',msg=%str(Dataset &libref..&ds was not found)'; + put ')'; + put '%let tmploc=%sysfunc(pathname(work))/temp.txt;'; + put 'filename tmp "&tmploc";'; + put '%mp_getddl(&libref,&ds,flavour=&flavour, fref=tmp, applydttm=YES)'; + put '%mp_streamfile(contenttype=TEXT'; + put ',inloc=%str(&tmploc)'; + put ',outname=&libref._&ds..ddl'; + put ')'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getgroups; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getgroups(outds=mm_getlibs);'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getgroups(outds=&outds,repo=foundation)'; + put '%do x=1 %to &repocnt;'; + put '%mm_getgroups(outds=&outds.a, repo=&&repo&x)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'proc sort data=&outds noduprec;'; + put 'by groupname;'; + put 'run;'; + put '%mend dc_getgroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file getgroups.sas'; + put '@brief List all SAS Groups'; + put '@details Gets a list of all SAS Groups. Runs without mpeinit() so that it'; + put 'can be available to the sasjs/server configurator'; + put '

SAS Macros

'; + put '@li dc_getgroups.sas'; + put '

Data Outputs

'; + put '
groups
'; + put '|NAME:$32.|DESCRIPTION:$64.|GROUPID:best.|'; + put '|---|---|---|'; + put '|`SomeGroup `|`A group `|`1`|'; + put '|`Another Group`|`this is a different group`|`2`|'; + put '|`admin`|`Administrators `|`3`|'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%dc_getgroups(outds=groups)'; + put '%webout(OPEN)'; + put '%webout(OBJ,groups)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=getrawdata; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mpe_filtermaster(mode,libds,'; + put 'dclib=,'; + put 'filter_rk=-1,'; + put 'outref=0,'; + put 'outds=work.query'; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%let mode=%upcase(&mode);'; + put '%let libds=%upcase(&libds);'; + put '%mp_abort(iftrue= ('; + put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; + put ')'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid MODE: &mode)'; + put ')'; + put '%mp_abort(iftrue= (&outref = 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Please provide a fileref!)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put 'filename &outref temp;'; + put '/* ensure outputs exist */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put '' '';'; + put 'run;'; + put 'data &outds;'; + put 'set &dclib..mpe_filtersource;'; + put 'stop;'; + put 'run;'; + put '/**'; + put '* Deal with FILTER_RK first'; + put '*/'; + put '%if &filter_rk gt 0 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''( ''@@;'; + put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; + put 'call symputx(''filter_hash'',filter_hash,''l'');'; + put 'run;'; + put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; + put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; + put 'by filter_line;'; + put 'run;'; + put '%mp_filtergenerate(&outds,outref=&outref)'; + put '%end;'; + put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; + put '%local varfrom varto;'; + put '%let varfrom=0;'; + put 'proc sql;'; + put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; + put 'from &dclib..MPE_TABLES'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; + put '%put &=varfrom;'; + put '%put &=varto;'; + put '/**'; + put '* Check if the date variables were mentioned in the query'; + put '* This is a trigger for serving a historical view instead of current'; + put '* we skip this part when checking an ULOAD as there are no date vars'; + put '*/'; + put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; + put '%local validityvars;'; + put 'proc sql;'; + put 'select count(*) into: validityvars'; + put 'from &outds'; + put 'where variable_nm in ("&varfrom","&varto");'; + put '%if &validityvars=0 %then %do;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'length filter_text $32767;'; + put 'varfrom=symget(''varfrom'');'; + put 'varto=symget(''varto'');'; + put 'filter_text=catx('' '','; + put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; + put ');'; + put 'if &filter_rk > 0 then put ''AND '' filter_text;'; + put 'else put filter_text;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '/**'; + put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; + put '*/'; + put '/* first determine users group membership */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; + put '%local admin_check;'; + put 'proc sql;'; + put 'select count(*) into: admin_check'; + put 'from work.groups'; + put 'where groupname="&mpeadmins";'; + put '%put &sysmacroname: &=admin_check &=mpeadmins;'; + put '%if &admin_check=0 %then %do;'; + put '%local scopeval;'; + put '%if &mode=DLOAD %then %let scopeval=VIEW;'; + put '%if &mode=ULOAD %then %let scopeval=EDIT;'; + put '%else %let scopeval=&mode;'; + put '/* extract relevant rows */'; + put '%local rlsds;'; + put '%let rlsds=%mf_getuniquename();'; + put 'proc sql;'; + put 'create table work.&rlsds as'; + put 'select rls_group,'; + put 'rls_group_logic as group_logic,'; + put 'rls_subgroup_logic as subgroup_logic,'; + put 'rls_subgroup_id as subgroup_id,'; + put 'rls_variable_nm as variable_nm,'; + put 'rls_operator_nm as operator_nm,'; + put 'rls_raw_value as raw_value'; + put 'from &mpelib..mpe_row_level_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and rls_scope in ("&scopeval",''ALL'')'; + put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; + put 'and rls_libref="%scan(&libds,1,.)"'; + put 'and rls_table="%scan(&libds,2,.)"'; + put 'and rls_active=1'; + put 'order by rls_group,rls_subgroup_id;'; + put '%if &sqlobs>0 %then %do;'; + put '/* check if we currently have filter or not */'; + put 'data ;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put 'data _null_;'; + put 'set &syslast;'; + put 'file &outref mod;'; + put 'if newfilter=1 then put ''('';'; + put 'else put ''AND ('';'; + put 'run;'; + put '/* loop through and apply filters for each group membership */'; + put '%local fref ds;'; + put '%let fref=%mf_getuniquefileref();'; + put '%let ds=%mf_getuniquename();'; + put 'proc sql noprint;'; + put 'select distinct rls_group into : group1 -'; + put 'from work.&rlsds;'; + put '%do i=1 %to &sqlobs;'; + put 'data work.&ds;'; + put 'set work.&rlsds;'; + put 'where rls_group="&&group&i";'; + put 'drop rls_group;'; + put 'run;'; + put '%mp_filtergenerate(&ds,outref=&fref)'; + put 'data _null_;'; + put 'infile &fref;'; + put 'file &outref mod;'; + put 'input;'; + put 'if &i>1 and _n_=1 then put '' OR '';'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'put '')'';'; + put 'run;'; + put '%end; /* &sqlobs>0 */'; + put '%else %do;'; + put '%put &sysmacroname: no matching groups;'; + put 'data _null_;'; + put 'set work.groups;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Row Level Security Generation Error)'; + put ')'; + put '%end; /* &admin_check=0 */'; + put '%put leaving &sysmacroname with the following query:;'; + put '%local empty;'; + put '%let empty=0;'; + put 'data _null_;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'putlog _infile_;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; + put 'put ''1=1'';'; + put 'call symputx(''empty'',1,''l'');'; + put 'end;'; + put 'run;'; + put '%if &empty=1 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%mend mpe_filtermaster;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '/** @cond */'; + put '%macro mf_existfeature(feature'; + put ')/*/STORE SOURCE*/;'; + put '%let feature=%upcase(&feature);'; + put '%local platform;'; + put '%let platform=%mf_getplatform();'; + put '%if &feature= %then %do;'; + put '%put No feature was requested for detection;'; + put '%end;'; + put '%else %if &feature=COLCONSTRAINTS %then %do;'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=PROCLUA %then %do;'; + put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; + put '%if &platform=SASVIYA %then 1;'; + put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; + put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=DBMS_MEMTYPE %then %do;'; + put '/* does dbms_memtype exist in dictionary.tables? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=EXPORTXLS %then %do;'; + put '/* is it possible to PROC EXPORT an excel file? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; + put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; + put '%else 0;'; + put '%end;'; + put '%else %do;'; + put '-1'; + put '%put &sysmacroname: &feature not found;'; + put '%end;'; + put '%mend mf_existfeature;'; + put '/** @endcond */'; + put '%macro mp_ds2cards(base_ds, tgt_ds='; + put ',cards_file="%sysfunc(pathname(work))/cardgen.sas"'; + put ',maxobs=max'; + put ',random_sample=NO'; + put ',showlog=YES'; + put ',outencoding='; + put ',append=NO'; + put ')/*/STORE SOURCE*/;'; + put '%local i setds nvars;'; + put '%if not %sysfunc(exist(&base_ds)) %then %do;'; + put '%put %str(WARN)ING: &base_ds does not exist;'; + put '%return;'; + put '%end;'; + put '%if %index(&base_ds,.)=0 %then %let base_ds=WORK.&base_ds;'; + put '%if (&tgt_ds = ) %then %let tgt_ds=&base_ds;'; + put '%if %index(&tgt_ds,.)=0 %then %let tgt_ds=WORK.%scan(&base_ds,2,.);'; + put '%if ("&outencoding" ne "") %then %let outencoding=encoding="&outencoding";'; + put '%if ("&append" = "" or "&append" = "NO") %then %let append=;'; + put '%else %let append=mod;'; + put '/* get varcount */'; + put '%let nvars=0;'; + put 'proc sql noprint;'; + put 'select count(*) into: nvars from dictionary.columns'; + put 'where upcase(libname)="%scan(%upcase(&base_ds),1)"'; + put 'and upcase(memname)="%scan(%upcase(&base_ds),2)";'; + put '%if &nvars=0 %then %do;'; + put '%put %str(WARN)ING: Dataset &base_ds has no variables, will not be converted.;'; + put '%return;'; + put '%end;'; + put '/* get indexes */'; + put 'proc sort'; + put 'data=sashelp.vindex('; + put 'where=(upcase(libname)="%scan(%upcase(&base_ds),1)"'; + put 'and upcase(memname)="%scan(%upcase(&base_ds),2)")'; + put ')'; + put 'out=_data_;'; + put 'by indxname indxpos;'; + put 'run;'; + put '%local indexes;'; + put 'data _null_;'; + put 'set &syslast end=last;'; + put 'if _n_=1 then call symputx(''indexes'',''(index=('',''l'');'; + put 'by indxname indxpos;'; + put 'length vars $32767 nom uni $8;'; + put 'retain vars;'; + put 'if first.indxname then do;'; + put 'idxcnt+1;'; + put 'nom='''';'; + put 'uni='''';'; + put 'vars=name;'; + put 'end;'; + put 'else vars=catx('' '',vars,name);'; + put 'if last.indxname then do;'; + put 'if nomiss=''yes'' then nom=''/nomiss'';'; + put 'if unique=''yes'' then uni=''/unique'';'; + put 'call symputx(''indexes'''; + put ',catx('' '',symget(''indexes''),indxname,''=('',vars,'')'',nom,uni)'; + put ',''l'');'; + put 'end;'; + put 'if last then call symputx(''indexes'',cats(symget(''indexes''),''))''),''l'');'; + put 'run;'; + put 'data;run;'; + put '%let setds=&syslast;'; + put 'proc sql'; + put '%if %datatyp(&maxobs)=NUMERIC %then %do;'; + put 'outobs=&maxobs;'; + put '%end;'; + put ';'; + put 'create table &setds as select * from &base_ds'; + put '%if &random_sample=YES %then %do;'; + put 'order by ranuni(42)'; + put '%end;'; + put ';'; + put 'reset outobs=max;'; + put 'create table datalines1 as'; + put 'select name,type,length,varnum,format,label from dictionary.columns'; + put 'where upcase(libname)="%upcase(%scan(&base_ds,1))"'; + put 'and upcase(memname)="%upcase(%scan(&base_ds,2))";'; + put '/**'; + put 'Due to long decimals cannot use best. format'; + put 'So - use bestd. format and then use character functions to strip trailing'; + put 'zeros, if NOT an integer or missing!! Cannot use int() as it upsets'; + put 'note2err when there are missings.'; + put 'resolved code = ifc( mod(coalesce(VARIABLE,0),1)=0'; + put ',put(VARIABLE,best32.)'; + put ',substrn(put(VARIABLE,bestd32.),1'; + put ',findc(put(VARIABLE,bestd32.),''0'',''TBK'')));'; + put '**/'; + put 'data datalines_2;'; + put 'format dataline $32000.;'; + put 'set datalines1 (where=(upcase(name) not in'; + put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM'')));'; + put 'if type=''num'' then dataline='; + put 'cats(''ifc(mod(coalesce('',name,'',0),1)=0'; + put ',put('',name,'',best32.-l)'; + put ',substrn(put('',name,'',bestd32.-l),1'; + put ',findc(put('',name,'',bestd32.-l),"0","TBK")))'');'; + put '/**'; + put '* binary data must be converted, to store in text format. It is identified'; + put '* by the presence of the $HEX keyword in the format.'; + put '*/'; + put 'else if upcase(format)=:''$HEX'' then'; + put 'dataline=cats(''put(trim('',name,''),'',format,'')'');'; + put '/**'; + put '* There is no easy way to store line breaks in a cards file.'; + put '* To discuss this, use: https://github.com/sasjs/core/issues/80'; + put '* Removing all nonprintables with kw (keep writeable)'; + put '*/'; + put 'else dataline=cats(''compress('',name,'', ,"kw")'');'; + put 'run;'; + put 'proc sql noprint;'; + put 'select dataline into: datalines separated by '','' from datalines_2;'; + put '%local'; + put 'process_dttm_flg'; + put 'valid_from_dttm_flg'; + put 'valid_to_dttm_flg'; + put ';'; + put '%let process_dttm_flg = N;'; + put '%let valid_from_dttm_flg = N;'; + put '%let valid_to_dttm_flg = N;'; + put 'data _null_;'; + put 'set datalines1 ;'; + put '/* build attrib statement */'; + put 'if type=''char'' then type2=''$'';'; + put 'if strip(format) ne '''' then format2=cats(''format='',format);'; + put 'if strip(label) ne '''' then label2=cats(''label='',quote(trim(label)));'; + put 'str1=catx('' '',(put(name,$33.)||''length='')'; + put ',put(cats(type2,length),$7.)||format2,label2);'; + put '/* Build input statement */'; + put 'if upcase(format)=:''$HEX'' then type3='':''!!format;'; + put 'else if type=''char'' then type3='':$char.'';'; + put 'str2=put(name,$33.)||type3;'; + put 'if(upcase(name) = "PROCESSED_DTTM") then'; + put 'call symputx("process_dttm_flg", "Y", "L");'; + put 'if(upcase(name) = "VALID_FROM_DTTM") then'; + put 'call symputx("valid_from_dttm_flg", "Y", "L");'; + put 'if(upcase(name) = "VALID_TO_DTTM") then'; + put 'call symputx("valid_to_dttm_flg", "Y", "L");'; + put 'call symputx(cats("attrib_stmt_", put(_N_, 8.)), str1, "L");'; + put 'call symputx(cats("input_stmt_", put(_N_, 8.))'; + put ', ifc(upcase(name) not in'; + put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM''), str2, ""), "L");'; + put 'run;'; + put 'data _null_;'; + put 'file &cards_file. &outencoding lrecl=32767 termstr=nl &append;'; + put 'length __attrib $32767;'; + put 'if _n_=1 then do;'; + put 'put ''/**'';'; + put 'put '' @file'';'; + put 'put " @brief Datalines for %upcase(%scan(&base_ds,2)) dataset";'; + put 'put " @details Generated by %nrstr(%%)mp_ds2cards()";'; + put 'put " Source: https://github.com/sasjs/core";'; + put 'put '' @cond '';'; + put 'put ''**/'';'; + put 'put "data &tgt_ds &indexes;";'; + put 'put "attrib ";'; + put '%do i = 1 %to &nvars;'; + put '__attrib=symget("attrib_stmt_&i");'; + put 'put __attrib;'; + put '%end;'; + put 'put ";";'; + put '%if &process_dttm_flg. eq Y %then %do;'; + put 'put ''retain PROCESSED_DTTM %sysfunc(datetime());'';'; + put '%end;'; + put '%if &valid_from_dttm_flg. eq Y %then %do;'; + put 'put ''retain VALID_FROM_DTTM &low_date;'';'; + put '%end;'; + put '%if &valid_to_dttm_flg. eq Y %then %do;'; + put 'put ''retain VALID_TO_DTTM &high_date;'';'; + put '%end;'; + put 'if __nobs=0 then do;'; + put 'put ''call missing(of _all_);/* avoid uninitialised notes */'';'; + put 'put ''stop;'';'; + put 'put ''run;'';'; + put 'end;'; + put 'else do;'; + put 'put "infile cards dsd;";'; + put 'put "input ";'; + put '%do i = 1 %to &nvars.;'; + put '%if(%length(&&input_stmt_&i..)) %then'; + put 'put " &&input_stmt_&i..";'; + put ';'; + put '%end;'; + put 'put ";";'; + put 'put ''missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'';'; + put 'put "datalines4;";'; + put 'end;'; + put 'end;'; + put 'set &setds end=__lastobs nobs=__nobs;'; + put '/* remove all formats for write purposes - some have long underlying decimals */'; + put 'format _numeric_ best30.29;'; + put 'length __dataline $32767;'; + put '__dataline=catq(''cqtmb'',&datalines);'; + put 'put __dataline;'; + put 'if __lastobs then do;'; + put 'put '';;;;'';'; + put 'put ''run;'';'; + put 'put ''/** @endcond **/'';'; + put 'stop;'; + put 'end;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &setds;'; + put 'quit;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &cards_file lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put '%put NOTE: CARDS FILE SAVED IN:;'; + put '%put NOTE-;%put NOTE-;'; + put '%put NOTE- %sysfunc(dequote(&cards_file.));'; + put '%put NOTE-;%put NOTE-;'; + put '%mend mp_ds2cards;'; + put '/** @endcond **/'; + put '%macro mp_binarycopy('; + put 'inloc= /* full path and filename of the object to be copied */'; + put ',outloc= /* full path and filename of object to be created */'; + put ',inref=____in /* override default to use own filerefs */'; + put ',outref=____out /* override default to use own filerefs */'; + put ',mode=CREATE'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local mod;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if &mode=APPEND %then %let mod=mod;'; + put '/* these IN and OUT filerefs can point to anything */'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref &inloc lrecl=1048576 ;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref &outloc lrecl=1048576 &mod;'; + put '%end;'; + put '/* copy the file byte-for-byte */'; + put 'data _null_;'; + put 'infile &inref lrecl=1 recfm=n;'; + put 'file &outref &mod recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%if &inref = ____in %then %do;'; + put 'filename &inref clear;'; + put '%end;'; + put '%if &outref=____out %then %do;'; + put 'filename &outref clear;'; + put '%end;'; + put '%mend mp_binarycopy;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mfs_httpheader(header_name'; + put ',header_value'; + put ')/*/STORE SOURCE*/;'; + put '%global sasjs_stpsrv_header_loc;'; + put '%local fref fid i;'; + put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; + put '%put &=fref &=sasjs_stpsrv_header_loc;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%mend mfs_httpheader;'; + put '%macro mp_streamfile('; + put 'contenttype=TEXT'; + put ',inloc='; + put ',inref=0'; + put ',iftrue=%str(1=1)'; + put ',outname='; + put ',outref=_webout'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let contentype=%upcase(&contenttype);'; + put '%let outref=%upcase(&outref);'; + put '%local platform; %let platform=%mf_getplatform();'; + put '/**'; + put '* check engine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put '%local streamweb;'; + put '%let streamweb=0;'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; + put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; + put 'run;'; + put '%if &contentype=CSV %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/csv'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/csv)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=EXCEL %then %do;'; + put '/* suitable for XLS format */'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype=''application/vnd.ms-excel'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="image/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; + put 'contenttype="text/%lowcase(&contenttype)"'; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=TEXT %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; + put 'contenttype=''application/text'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/text)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'contenttype="font/%lowcase(&contenttype)";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=XLSX %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'','; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; + put 'contenttype='; + put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type'; + put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; + put ')'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %if &contentype=ZIP %then %do;'; + put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; + put 'data _null_;'; + put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; + put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; + put 'run;'; + put '%end;'; + put '%else %if &platform=SASVIYA %then %do;'; + put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; + put 'contenttype=''application/zip'''; + put 'contentdisp="attachment; filename=&outname";'; + put '%end;'; + put '%else %if &platform=SASJS %then %do;'; + put '%mfs_httpheader(Content-Type,application/zip)'; + put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; + put '%end;'; + put '%if &inref ne 0 %then %do;'; + put '%mp_binarycopy(inref=&inref,outref=&outref)'; + put '%end;'; + put '%else %do;'; + put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; + put '%end;'; + put '%mend mp_streamfile;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Downloads data in a variety of formats'; + put '@details To enable direct download, this service runs in a dedicated stream'; + put 'as a GET request using URL parameters as inputs.'; + put 'The inputs are:'; + put '@li table - the libds of the table to be downloaded'; + put '@li type - either SAS, CSV, EXCEL, MARKDOWN, WEBCSV or WEBTAB'; + put '@li filter - the filter RK if used'; + put '

SAS Macros

'; + put '@li mf_verifymacvars.sas'; + put '@li mf_getuser.sas'; + put '@li mf_existfeature.sas'; + put '@li dc_assignlib.sas'; + put '@li mp_ds2cards.sas'; + put '@li mp_abort.sas'; + put '@li mp_binarycopy.sas'; + put '@li mp_cntlout.sas'; + put '@li mp_streamfile.sas'; + put '@li mpe_filtermaster.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%global table type filter ds format is_fmt txfrom txto;'; + put '%mpeinit()'; + put '%let user=%mf_getuser();'; + put '%let is_fmt=0;'; + put '%mp_abort(iftrue= (%mf_verifymacvars(type table)=0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Invalid inputs: type table)'; + put ')'; + put '%let libds=%upcase(&table); /* actual source */'; + put '%let table=%upcase(&table); /* used as label for fmt catalogs */'; + put '%let lib=%scan(&table,1,.);'; + put '%let ds=%scan(&table,2,.);'; + put '%dc_assignlib(READ,&lib)'; + put 'data _null_;'; + put 'set &mpelib..MPE_TABLES;'; + put 'where upcase(libref)="&lib" and upcase(dsn)="&ds";'; + put '/* if a TXTEMPORAL table then filter as such */'; + put 'call symputx(''txfrom'',var_txfrom);'; + put 'call symputx(''txto'',var_txto);'; + put 'ds=symget(''ds'');'; + put 'is_fmt=0;'; + put 'if subpad(cats(reverse(ds)),1,3)=:''CF-'' then do;'; + put 'ds=scan(ds,1,''-'');'; + put 'table=cats("&lib..",ds);'; + put 'putlog "Format Catalog Captured";'; + put 'is_fmt=1;'; + put 'call symputx(''libds'',''work.fmtextract'');'; + put 'call symputx(''table'',table);'; + put 'end;'; + put 'call symputx(''is_fmt'',is_fmt);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_cntlout('; + put 'iftrue=(&is_fmt=1)'; + put ',libcat=&table'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '%put preparing query;'; + put '%mpe_filtermaster(DLOAD,&libds,'; + put 'dclib=&mpelib,'; + put 'filter_rk=&filter,'; + put 'outref=filtref,'; + put 'outds=work.query'; + put ')'; + put '%put printing generated filterquery:;'; + put 'data _null_;'; + put 'infile filtref;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put 'options obs=200000;/* stop limit */'; + put 'data staged(drop=&txfrom &txto);'; + put 'set &libds;'; + put 'where %inc filtref;;'; + put 'run;'; + put 'options obs=max;'; + put 'options validvarname=upcase;'; + put '%macro mpestp_getrawdata();'; + put '%local outfile;'; + put '%if &type=SAS %then %do;'; + put '%let outfile=%sysfunc(pathname(work))/&table..sas;'; + put '%mp_ds2cards(base_ds=staged'; + put ', tgt_ds=&table'; + put ', cards_file= "&outfile"'; + put ', maxobs=100000)'; + put '%let ext=sas;'; + put '%let mimetype=text;'; + put '%end;'; + put '%else %if &type=CSV or (&type=EXCEL and %mf_existfeature(EXPORTXLS) ne 1)'; + put '/* cannot proc export excel if PC Files is not licensed */'; + put '%then %do;'; + put '%let outfile=%sysfunc(pathname(work))/&table..csv;'; + put 'PROC EXPORT DATA= staged'; + put 'OUTFILE= "&outfile"'; + put 'DBMS=csv REPLACE;'; + put 'RUN;'; + put '%let ext=csv;'; + put '%let mimetype=csv;'; + put '%end;'; + put '%else %if &type=EXCEL %then %do;'; + put '%let ext=xlsx;'; + put '%let outfile=%sysfunc(pathname(work))/&table..&ext;'; + put 'PROC EXPORT DATA= staged'; + put 'OUTFILE= "&outfile"'; + put 'DBMS=xlsx ;'; + put 'RUN;'; + put '%let mimetype=XLSX;'; + put '%end;'; + put '%else %if &type=MARKDOWN %then %do;'; + put '%let ext=md;'; + put '%let outfile=%sysfunc(pathname(work))/&table..&ext;'; + put 'filename mdref "&outfile" lrecl=32767;'; + put '%mp_ds2md(staged,outref=mdref,showlog=NO)'; + put '%let mimetype=MARKDOWN;'; + put '%end;'; + put '%else %if &type=WEBCSV %then %do;'; + put 'PROC EXPORT DATA= staged'; + put 'OUTFILE= _webout'; + put 'DBMS=csv REPLACE;'; + put 'RUN;'; + put '/* don''t set headers */'; + put '%return;'; + put '%end;'; + put '%else %if &type=WEBTAB %then %do;'; + put 'PROC EXPORT DATA= staged'; + put 'OUTFILE= _webout'; + put 'DBMS=tab REPLACE;'; + put 'RUN;'; + put '/* don''t set headers */'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%mp_abort(msg=type &type not supported,mac=mpestp_getrawdata.sas);'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%mp_streamfile(contenttype=&mimetype'; + put ',inloc=%str(&outfile)'; + put ',outname=&table..&ext'; + put ')'; + put '%mend mpestp_getrawdata;'; + put '%mpestp_getrawdata()'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=refreshlibinfo; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro bitemporal_closeouts('; + put 'tech_from=tx_from_dttm'; + put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; + put 'Req''d on BASE table only. */'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; + put ',PK= name sex /* Business key, space separated. */'; + put '/* Should INCLUDE BUS_FROM field if relevant. */'; + put ',NOW=DEFINE'; + put ',FILTER= /* supply a filter to limit the update */'; + put ',outdest= /* supply an unquoted filepath/filename.ext to get'; + put 'a text file containing the update statements */'; + put ',loadtype='; + put ',loadtarget=YES /* if <> YES will return without changing anything */'; + put ');'; + put '%put ENTERING &sysmacroname;'; + put '%local x var start;'; + put '%let start=%sysfunc(datetime());'; + put '%dc_assignlib(WRITE,&base_lib)'; + put '%dc_assignlib(WRITE,&append_lib)'; + put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; + put '%put &=now;'; + put '/**'; + put '* perform basic checks'; + put '*/'; + put '/* do tables exist? */'; + put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; + put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; + put '%end;'; + put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; + put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; + put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; + put '%end;'; + put '/* do TX columns exist? */'; + put '%if &loadtype ne UPDATE %then %do;'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; + put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; + put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%end;'; + put '/* do PK columns exist? */'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; + put '%end;'; + put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; + put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; + put '%end;'; + put '%end;'; + put '/* check uniqueness */'; + put 'proc sort data=&append_lib..&append_dsn'; + put 'out=___closeout1 noduprecs dupout=___closeout1a;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; + put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; + put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; + put '%local gap;'; + put '%let gap=0;'; + put 'data _null_;'; + put 'now=&now;'; + put 'gap=intck(''HOURS'',now,datetime());'; + put 'call symputx(''gap'',gap,''l'');'; + put 'run;'; + put '%mf_abort('; + put 'iftrue=(&gap > 24),'; + put 'msg=NOW variable (&now) is not within a 24hr tolerance'; + put ')'; + put '/* have any warnings / errs occurred thus far? If so, abort */'; + put '%mf_abort('; + put 'iftrue=(&syscc>0),'; + put 'msg=Aborted due to SYSCC=&SYSCC status'; + put ')'; + put '/**'; + put '* Create closeout statements. These are sent as individual SQL statements'; + put '* to ensure pass-through utilisation. The update_cnt variable monitors'; + put '* how many records were actually updated on the target table.'; + put '*/'; + put '%local update_cnt;'; + put '%let update_cnt=0;'; + put 'filename tmp temp;'; + put 'data _null_;'; + put 'set ___closeout1;'; + put 'file tmp;'; + put 'if _n_=1 then put ''proc sql noprint;'' ;'; + put 'length string $32767.;'; + put '%if &loadtype=UPDATE %then %do;'; + put 'put "delete from &base_lib..&base_dsn where 1";'; + put '%end;'; + put '%else %do;'; + put 'now=symget(''now'');'; + put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; + put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; + put 'put " ,PROCESSED_DTTM=" now @;'; + put '%end;'; + put 'put " where " now " lt &tech_to ";'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&PK));'; + put '%let var=%scan(&pk,&x,%str( ));'; + put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; + put '/* use single quotes to avoid ampersand resolution in data */'; + put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; + put '%end;'; + put '%else %do;'; + put 'string=cats(" & &var=",&var);'; + put '%end;'; + put 'put string;'; + put '%end;'; + put 'put "&filter ;";'; + put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; + put 'run;'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &loadtarget ne YES %then %return;'; + put '/* ensure we have a lock */'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn'; + put ',ref=bitemporal_closeouts'; + put ',ctl_ds=&mpelib..mpe_lockanytable'; + put ')'; + put 'options source2;'; + put '%inc tmp;'; + put 'filename tmp clear;'; + put '/**'; + put '* Update audit tracker'; + put '*/'; + put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; + put '%local user; %let user=%mf_getuser();'; + put 'proc sql;'; + put 'insert into &mpelib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; + put ',LOADTYPE="CLOSEOUT"'; + put ',DELETED_RECORDS=&update_cnt'; + put ',NEW_RECORDS=0'; + put ',DURATION=%sysfunc(datetime())-&start'; + put ',USER_NM="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%mend bitemporal_closeouts;'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mf_wordsInStr1ButNotStr2('; + put 'Str1= /* string containing words to extract */'; + put ',Str2= /* used to compare with the extract string */'; + put ')/*/STORE SOURCE*/;'; + put '%local count_base count_extr i i2 extr_word base_word match outvar;'; + put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; + put '%put base string (str1)= &str1;'; + put '%put compare string (str2) = &str2;'; + put '%return;'; + put '%end;'; + put '%let count_base=%sysfunc(countw(&Str2));'; + put '%let count_extr=%sysfunc(countw(&Str1));'; + put '%do i=1 %to &count_extr;'; + put '%let extr_word=%scan(&Str1,&i,%str( ));'; + put '%let match=0;'; + put '%do i2=1 %to &count_base;'; + put '%let base_word=%scan(&Str2,&i2,%str( ));'; + put '%if &extr_word=&base_word %then %let match=1;'; + put '%end;'; + put '%if &match=0 %then %let outvar=&outvar &extr_word;'; + put '%end;'; + put '&outvar'; + put '%mend mf_wordsInStr1ButNotStr2;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '/** @cond */'; + put '%macro mp_storediffs(libds'; + put ',origds'; + put ',key'; + put ',delds=0'; + put ',appds=0'; + put ',modds=0'; + put ',outds=work.mp_storediffs'; + put ',loadref=0'; + put ',processed_dttm=0'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put '/* set up unique and temporary vars */'; + put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; + put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; + put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; + put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; + put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; + put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; + put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; + put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; + put '%let dslist=&origds;'; + put '%if &delds ne 0 %then %do;'; + put '%let delds=%upcase(&delds);'; + put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; + put '%let dslist=&dslist &delds;'; + put '%end;'; + put '%if &appds ne 0 %then %do;'; + put '%let appds=%upcase(&appds);'; + put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; + put '%let dslist=&dslist &appds;'; + put '%end;'; + put '%if &modds ne 0 %then %do;'; + put '%let modds=%upcase(&modds);'; + put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; + put '%let dslist=&dslist &modds;'; + put '%end;'; + put '%let origds=%upcase(&origds);'; + put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; + put '%let key=%upcase(&key);'; + put '/* hash the key and append all the tables (marking the source) */'; + put 'data &ds1;'; + put 'set &dslist indsname=&inds_auto;'; + put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; + put '&inds_keep=upcase(&inds_auto);'; + put 'proc sort;'; + put 'by &inds_keep &hashkey;'; + put 'run;'; + put '/* transpose numeric & char vars */'; + put 'proc transpose data=&ds1'; + put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; + put 'by &inds_keep &hashkey;'; + put 'var _numeric_;'; + put 'run;'; + put 'proc transpose data=&ds1'; + put 'out=&ds3('; + put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; + put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; + put ');'; + put 'by &inds_keep &hashkey;'; + put 'var _character_;'; + put 'run;'; + put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; + put '/* this is a format catalog - cannot query cols directly */'; + put '%let vlist="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; + put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; + put ',"DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; + put '%end;'; + put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; + put 'data &ds4;'; + put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; + put 'if _n_=1 then call missing(_label_);'; + put 'drop _label_;'; + put 'set &ds2 &ds3 indsname=&inds_auto;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%upcase(&vlist));'; + put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; + put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified vartype input!" &inds_auto;'; + put 'call symputx(''syscc'',98);'; + put 'end;'; + put 'if &inds_keep="&appds" then move_type=''A'';'; + put 'else if &inds_keep="&delds" then move_type=''D'';'; + put 'else if &inds_keep="&modds" then move_type=''M'';'; + put 'else if &inds_keep="&origds" then move_type=''O'';'; + put 'else do;'; + put 'putlog "%str(ERR)OR: unidentified movetype input!" &inds_keep;'; + put 'call symputx(''syscc'',99);'; + put 'end;'; + put 'tgtvar_nm=upcase(tgtvar_nm);'; + put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; + put 'else is_pk=0;'; + put 'drop &inds_keep;'; + put 'run;'; + put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; + put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime());'; + put '%let libds=%upcase(&libds);'; + put '/* join orig vals for modified & deleted */'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select "&loadref" as load_ref length=36'; + put ',&processed_dttm as processed_dttm format=E8601DT26.6'; + put ',"%scan(&libds,1,.)" as libref length=8'; + put ',"%scan(&libds,2,.)" as dsn length=32'; + put ',b.key_hash length=32'; + put ',b.move_type length=1'; + put ',b.tgtvar_nm length=32'; + put ',b.is_pk'; + put ',case when b.move_type ne ''M'' then -1'; + put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; + put 'else 1'; + put 'end as is_diff'; + put ',b.tgtvar_type length=1'; + put ',case when b.move_type=''D'' then b.newval_num'; + put 'else a.newval_num'; + put 'end as oldval_num format=best32.'; + put ',case when b.move_type=''D'' then .'; + put 'else b.newval_num'; + put 'end as newval_num format=best32.'; + put ',case when b.move_type=''D'' then b.newval_char'; + put 'else a.newval_char'; + put 'end as oldval_char length=32765'; + put ',case when b.move_type=''D'' then '''''; + put 'else b.newval_char'; + put 'end as newval_char length=32765'; + put 'from &ds4(where=(move_type=''O'')) as a'; + put 'right join &ds4(where=(move_type ne ''O'')) as b'; + put 'on a.tgtvar_nm=b.tgtvar_nm'; + put 'and a.key_hash=b.key_hash'; + put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; + put '%if &mdebug=0 %then %do;'; + put 'proc sql;'; + put 'drop table &ds1, &ds2, &ds3, &ds4;'; + put '%end;'; + put '%mend mp_storediffs;'; + put '/** @endcond */'; + put '%macro bitemporal_dataloader('; + put 'bus_from= /* Business FROM datetime variable. Req''d on'; + put 'STAGING & BASE tables.*/'; + put ',bus_to = /* Business TO datetime variable. Req''d on'; + put 'STAGING & BASE tables. */'; + put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; + put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; + put ',tech_from= /* Technical FROM datetime variable. Req''d on'; + put 'BASE table only. */'; + put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; + put 'table only. */'; + put ',processed= 0'; + put ',base_lib=WORK /* Libref of the BASE table. */'; + put ',base_dsn=BASETABLE /* Name of BASE table. */'; + put ',append_lib=WORK /* Libref of the STAGING table. */'; + put ',append_dsn=APPENDTABLE'; + put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; + put ',PK= name sex'; + put ',RK_UNDERLYING='; + put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; + put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; + put 'SCD2 loader then set this switch to YES to'; + put 'ensure the MAXKEYTABLE is updated with the'; + put 'current maximum RK value for the target table'; + put '*/'; + put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; + put 'unique on its business key */'; + put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; + put '&dclib..DATALOADS */'; + put ',LOADTYPE=BITEMPORAL'; + put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; + put ',LOG=1 /* Switch to 0 to prevent records being added to'; + put '&mpelib..mpe_DATALOADS (ie when testing)*/'; + put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; + put '/* If this variable is found in the append dataset'; + put 'then records are closed out (or deleted) in the'; + put 'append table where that variable= "Yes" */'; + put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; + put 'target table load and generate temp tables only */'; + put ',CLOSE_VARS='; + put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; + put 'no facility to close out removed records (all records are'; + put 'assumed new or changed). But how does one determine which'; + put 'records are removed? Short of loading the entire table'; + put 'each time? This parameter allows a set of variables'; + put '(this should be a subset of the PK) to be declared, and'; + put 'the macro will determine which records in the base table'; + put 'need to be closed out ahead of the load.'; + put 'For instance, given the following:'; + put 'Base Table Staging Table'; + put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; + put 'JAN ACME4 66 JAN ACME4 66'; + put 'FEB ACME4 99 FEB ACME4 99'; + put 'FEB ACME1 22'; + put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; + put 'the "FEB PAG 22" record would get closed out.'; + put '*/'; + put ',config_table=&dclib..MPE_CONFIG'; + put ',dclib=&dc_libref'; + put ',outds_del=work.outds_del'; + put ',outds_add=work.outds_add'; + put ',outds_mod=work.outds_mod'; + put ',outds_audit=0'; + put ');'; + put '/* when changing this macro, update the version num here */'; + put '%local ver;'; + put '%let ver=32;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; + put '/* return straight away if nothing to load */'; + put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; + put '%if &nobs=-1 %then %do;'; + put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; + put '%end;'; + put '%if &nobs=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/* hard exit if err condition exists */'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; + put ')'; + put '%local engine_type;'; + put '%let engine_type=%mf_getengine(&base_lib);'; + put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; + put '%then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; + put '* SAS lock. So, make a snapshot of the base table for further use.'; + put '* Also, make output tables (regardless).'; + put '*/'; + put '%local basecopy;'; + put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; + put 'data &basecopy &outds_mod &outds_add &outds_del;'; + put 'set &base_lib..&base_dsn;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc > 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; + put ')'; + put '%local cols idx_pk md5_col ;'; + put '%let md5_col=___TMP___md5;'; + put '%let check_uniqueness=%upcase(&check_uniqueness);'; + put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; + put '%let high_date=%unquote(&high_date);'; + put '%let loadtype=%upcase(&loadtype);'; + put '/* ensure irrelevant variables are cleared */'; + put '%if &loadtype=BUSTEMPORAL %then %do;'; + put '%let tech_from=;'; + put '%let tech_to=;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put '%let bus_from=;'; + put '%let bus_to=;'; + put '%end;'; + put '/* ensure relevant variables are supplied */'; + put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing BUS_FROM / BUS_TO)'; + put ')'; + put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Missing TECH_FROM / TECH_TO)'; + put ')'; + put '/**'; + put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; + put '*/'; + put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; + put '/* SQL Server requires its own time values */'; + put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; + put 'milliseconds by using lower S and defining the decimal in the format name..*/'; + put 'PROC FORMAT;'; + put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; + put 'RUN;'; + put '%local dbnow;'; + put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'data _null_;'; + put '/* convert space separated macvar to comma separated for SQL processing */'; + put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; + put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; + put 'now=&dbnow;'; + put 'call symputx(''NOW'',now,''L'');'; + put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; + put 'length etlsource $100;'; + put 'etlsource=subpad(symget(''etlsource''),1,100);'; + put 'call symputx(''etlsource'',etlsource,''l'');'; + put 'run;'; + put '/**'; + put '* Even if no PROCESSED var provided, assume that any variable named'; + put '* PROCESSED_DTTM should be updated'; + put '*/'; + put '%if &processed=0 %then %do;'; + put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; + put '%then %let processed=PROCESSED_DTTM;'; + put '%else %let processed=;'; + put '%end;'; + put '/* extract colnames for md5 creation / change tracking */'; + put 'proc contents noprint data=&base_lib..&base_dsn'; + put 'out=work.bitemp_cols (keep=name type length varnum format:);'; + put 'run;'; + put 'proc sql noprint;'; + put 'select name into: cols separated by '','''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put 'else cats(''put(md5(trim(put(ifn(missing('''; + put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; + put 'into: stripcols separated by ''||'''; + put 'from work.bitemp_cols'; + put 'where upcase(name) not in'; + put '(%upcase("&bus_from","&bus_to"'; + put ',"&tech_from","&tech_to"'; + put ',"&processed","&delete_col")) ;'; + put '/* set default formats*/'; + put '%let bus_from_fmt = datetime19.;'; + put '%let bus_to_fmt = datetime19.;'; + put '%let processed_fmt = datetime19.;'; + put '%let tech_from_fmt = format=datetime19.;'; + put '%let tech_to_fmt = format=datetime19.;'; + put '%put &=stripcols;'; + put '%put &=pk;'; + put 'data _null_;'; + put 'set work.bitemp_cols;'; + put 'if type=2 or type=6 then do;'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'if format='''' then fmt=cats(length,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put 'if upcase(name)="%upcase(&bus_from)" then'; + put 'call symputx(''bus_from_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&bus_to)" then'; + put 'call symputx(''bus_to_fmt'',fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_from)" then'; + put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&tech_to)" then'; + put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; + put 'else if upcase(name)="%upcase(&processed)" then'; + put 'call symputx(''processed_fmt'',fmt,''L'');'; + put 'run;'; + put '%if %index(%quote(&cols),___TMP___) %then %do;'; + put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; + put ') This may conflict with temp variable generation!!);'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; + put '%let syscc=5;'; + put '%return;'; + put '%end;'; + put '/* if transaction dates appear on the APPEND table, need to remove them */'; + put '%local drop_tx_dates /* used in append table */'; + put 'drop_tx_dates_noobs /* used to take the base table structure */;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; + put '%then %let drop_tx_dates=&tech_from;'; + put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; + put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; + put '%if %length(%trim(&drop_tx_dates))>0'; + put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; + put '%if %mf_existvar(&basecopy, &tech_from)'; + put '%then %let drop_tx_dates_noobs=&tech_from;'; + put '%if %mf_existvar(&basecopy, &tech_to)'; + put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; + put '%if %length(%trim(&drop_tx_dates_noobs))>0'; + put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; + put '%else %let drop_tx_dates_noobs=(obs=0);'; + put '/**'; + put '* Lock the table. This is necessary as we are doing a two part update (first'; + put '* closing records then appending new records). It is theoretically possible'; + put '* that an upload may occur whilst preparing the staging tables. And the'; + put '* staging tables are about to be prepared..'; + put '*/'; + put '%if &LOADTARGET = YES %then %do;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%end;'; + put '%else %do;'; + put '/* not an actual load, so avoid updating the max key table in next step. */'; + put '%let rk_update_maxkeytable=NO;'; + put '%end;'; + put '%if %length(&RK_UNDERLYING)>0 %then %do;'; + put '%mp_retainedkey('; + put 'base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=&append_lib'; + put ',append_dsn=&append_dsn'; + put ',retained_key=&pk'; + put ',business_key=&rk_underlying'; + put ',check_uniqueness=&CHECK_UNIQUENESS'; + put ',outds=work.append'; + put '%if &rk_update_maxkeytable=NO %then %do;'; + put ',maxkeytable=0'; + put '%end;'; + put '%else %do;'; + put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; + put '%end;'; + put ',locktable=&dclib..mpe_lockanytable'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',filter_str=%str( (where=( &now < &tech_to)) )'; + put '%end;'; + put ')'; + put '%end;'; + put '%else %do;'; + put 'proc sql;'; + put 'create view work.append as select * from &append_lib..&append_dsn;'; + put '%end;'; + put '/**'; + put '* generate md5 for append table'; + put '*/'; + put '/* it is possible the source dataset has additional (unwanted) columns.'; + put 'Drop if specified; */'; + put '%if %length(&keepvars)>0 %then %do;'; + put '/* remove tech dates from keepvars as they are generated later */'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; + put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; + put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; + put '%end;'; + put '/* CAS varchar types cause append issues here, so perform autoconvert'; + put 'by creating empty local table first */'; + put 'data;'; + put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; + put 'run;'; + put '%local emptybasetable; %let emptybasetable=&syslast;'; + put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put '/* apply formats for bitemporal vars but not tx dates which are added later */'; + put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; + put 'format &bus_from &bus_from_fmt;'; + put 'format &bus_to &bus_to_fmt;'; + put '%end;'; + put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; + put 'work.append &drop_tx_dates;'; + put '%if %length(%str(&bus_from_override))>0 %then %do;'; + put '&bus_from= %unquote(&bus_from_override) ;'; + put '%end;'; + put '%if %length(%str(&bus_to_override))>0 %then %do;'; + put '&bus_to= %unquote(&bus_to_override) ;'; + put '%end;'; + put 'length &md5_col $32;'; + put '&md5_col=put(md5(&stripcols),hex32.);'; + put '%if %length(&processed)>0 %then %do;'; + put 'format &processed &processed_fmt;'; + put '&processed=&now;'; + put '%end;'; + put '/**'; + put '* If a delete column exists then create the delete dataset'; + put '*/'; + put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; + put 'drop &delete_col;'; + put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; + put 'else output work.bitemp0_append ;'; + put 'run;'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=%scan(&outds_del,-1,.)'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'output work.bitemp0_append;'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%if %length(&close_vars)>0 %then %do;'; + put '/**'; + put '* need to close out records that are not provided'; + put '*/'; + put 'proc sql;'; + put 'create table bitemp1_closevars1 as'; + put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; + put 'from &base_lib..&base_dsn a'; + put 'inner join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on closevars key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; + put '%let idx_val=%scan(&close_vars,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* filter base on tech dates if necessary */'; + put '%if &loadtype=TXTEMPORAL %then %do;'; + put 'where a.&tech_from <=&now and &now < a.&tech_to'; + put '%end;'; + put ';'; + put 'create table bitemp1_closevars2 as'; + put 'select distinct a.*'; + put 'from bitemp1_closevars1 a'; + put 'left join work.bitemp0_append b'; + put 'on 1=1'; + put '/* join on primary key */'; + put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '/* identify removed records by null value in a field in PK but not close_vars'; + put '*/'; + put 'where b.%scan('; + put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; + put ') IS NULL'; + put ';'; + put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; + put '%bitemporal_closeouts('; + put 'tech_from=&tech_from'; + put ',tech_to = &tech_to'; + put ',base_lib=&base_lib'; + put ',base_dsn=&base_dsn'; + put ',append_lib=work'; + put ',append_dsn=bitemp1_closevars2'; + put ',PK=&bus_from &pk'; + put ',NOW=&dbnow'; + put ',loadtarget=&loadtarget'; + put ',loadtype=&loadtype'; + put ')'; + put '%end;'; + put '%end;'; + put '/* return if nothing to load (was just deletes) */'; + put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; + put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; + put '%put NOTE- No updates - just deletes!;'; + put '%put NOTE-;%put NOTE-;%put NOTE-;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=&base_lib,ds=&base_dsn,'; + put 'ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; + put '%let user=%mf_getUser();'; + put '/* no emails yet'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);*/'; + put '%end;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* If applying manual overrides to business dates, then the input table MUST'; + put '* be unique on the PK. Check, and if not - abort.'; + put '*/'; + put '%local msg;'; + put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; + put '%then %do;'; + put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; + put 'by &pk;'; + put 'run;'; + put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; + put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; + put '%then %do;'; + put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; + put '%end;'; + put '%end;'; + put '/**'; + put '* extract from BASE table. Only want matching records, as could be very BIG.'; + put '* New records are subsequently identified via left join and test for nulls.'; + put '*/'; + put '%local temp_table temp_table2 base_table baselib_schema;'; + put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let temp_table=##BITEMP_&base_dsn;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from [dbo].&base_dsn'; + put 'where convert(datetime,&SQLNOW) < &tech_to );'; + put '%else %let base_table=[dbo].&base_dsn;'; + put 'proc sql;'; + put 'create table &base_lib.."&temp_table"n as'; + put 'select * from work.bitemp0_append;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '/* grab schema */'; + put '%let baselib_schema=%mf_getschema(&base_lib);'; + put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; + put '/* grab redshift config */'; + put '%local redcnt; %let redcnt=0;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'data _null_;'; + put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; + put 'x+1;'; + put 'call symputx(cats(''rednm'',x),var_value,''l'');'; + put 'call symputx(cats(''redval'',x),var_value,''l'');'; + put 'call symputx(''redcnt'',x,''l'');'; + put 'run;'; + put '%end;'; + put '/* cannot persist temp tables so must create a temporary permanent table */'; + put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=(select * from &baselib_schema.&base_dsn'; + put 'where timestamp &sqlnow < &tech_to );'; + put '%else %let base_table=&baselib_schema.&base_dsn;'; + put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; + put '%end;'; + put '%local dropcols;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(&pk)'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; + put '%end;'; + put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; + put 'set work.bitemp0_append(keep=&pk &md5_col);'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&temp_table'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=work.vw_bitemp0 force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'create table work.bitemp0_base as select * from connection to myAlias('; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'data &temp_table;'; + put 'set work.bitemp0_append;'; + put 'run;'; + put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; + put 'proc fedsql sessref=dcsession;'; + put 'create table &bitemp0base{options replace=true} as'; + put '%end;'; + put '%else %do;'; + put '%let temp_table=work.bitemp0_append;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; + put '%let base_table=&base_lib..&base_dsn'; + put '(where=(&tech_from <=&now and &now < &tech_to));'; + put '%else %let base_table=&base_lib..&base_dsn;'; + put 'proc sql;'; + put 'create table work.bitemp0_base as'; + put '%end;'; + put 'select a.&md5_col /* this identifies NEW records */'; + put ', b.*'; + put '/* assume first PK field cannot be null (if defined in a PK constraint then'; + put 'it definitely cannot be null) */'; + put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; + put 'from &baselib_schema.&temp_table a'; + put 'left join &base_table b'; + put 'on 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put '); proc sql; drop table &base_lib.."&temp_table"n;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put ';'; + put 'quit;'; + put 'data work.bitemp0_base;'; + put 'set &bitemp0base;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &temp_table;'; + put 'drop table &bitemp0base;'; + put '%end;'; + put '%else %do;'; + put ';'; + put '%end;'; + put '/**'; + put '* matching & changed records are those without NULL key values'; + put '* &idx_val resolves to rightmost PK value (loop above)'; + put '*/'; + put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; + put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; + put ')'; + put '%put hashcols2=&stripcols;'; + put 'proc sql;'; + put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; + put 'select *'; + put ', put(md5(&stripcols),$hex32.) as &md5_col'; + put 'from work.bitemp0_base (drop=&md5_col)'; + put 'where ___TMP___NEW_FLG=0;'; + put '/**'; + put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; + put '*/'; + put 'proc sql;'; + put 'create table &outds_add'; + put '(drop=&md5_col'; + put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; + put '&delete_col'; + put '%end;'; + put ')'; + put 'as select a.*'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put ',&now as &tech_from &tech_from_fmt'; + put ',&high_date as &tech_to &tech_to_fmt'; + put '%end;'; + put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; + put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; + put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; + put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; + put '/**'; + put '* identify INSERTS. These are records with the same business key but'; + put '* the bus_from and bus_to value are higher / lower (respectively)'; + put '* such that the existing record needs to be SPLIT to surround the new'; + put '* record.'; + put '* eg: OLD RECORD from=1 to=10'; + put '* NEW RECORD from=5 to=7'; + put '*'; + put '* APPENDED RECORDS:'; + put '* - from=1 to=5'; + put '* - from=5 to=7'; + put '* - from=7 to=10'; + put '*/'; + put '/* inserts cannot happen with TXTEMPORAL */'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* IDENTIFY */'; + put 'create table work.bitemp3_inserts as'; + put 'select b.*'; + put ',a.&bus_from as ___TMP___from'; + put ',a.&bus_to as ___TMP___to'; + put 'from work.bitemp0_append a'; + put ',work.bitemp1_current b'; + put 'where a.&bus_from > b.&bus_from'; + put 'and a.&bus_to < b.&bus_to'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields may'; + put 'not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '/* SPLIT */'; + put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; + put 'set work.bitemp3_inserts;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'if first.&idx_val then do;'; + put '___TMP___retain=&bus_to;'; + put '&bus_to=___TMP___from;'; + put 'output;'; + put '&bus_to=___TMP___retain;'; + put 'end;'; + put 'if last.&idx_val then do;'; + put '&bus_from=___TMP___to;'; + put 'output;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* TX temporal load */'; + put 'data work.bitemp3a_inserts;'; + put 'set work.bitemp1_current;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '/* APPEND */'; + put 'proc sql;'; + put 'create view work.bitemp3a_view as'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put 'data bitemp3b_newbase;'; + put 'set work.bitemp3a_inserts work.bitemp3a_view;'; + put 'run;'; + put '/** do not use! this converts short numerics into 8 bytes'; + put 'proc sql;'; + put 'create table work.bitemp3b_newbase as'; + put 'select * from work.bitemp3a_inserts'; + put 'union corr'; + put 'select * from work.bitemp1_current'; + put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; + put '*/'; + put '/**'; + put '* identify CHANGED records from staging.'; + put '* Same business key with different temporal dates or md5 value'; + put '* This table must be overlayed onto / into existing business history'; + put '*/'; + put 'proc sql;'; + put 'create table work.bitemp4_updated as select distinct a.*'; + put 'from work.bitemp0_append a'; + put ',work.bitemp3b_newbase b'; + put 'where 1=1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'and ( a.&md5_col ne b.&md5_col'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; + put '%end;'; + put ')'; + put ';'; + put '/**'; + put '* This section would have been one simple step with union all'; + put '* but that converts short numerics into 8 bytes!'; + put '* so, convoluted alternative to retain the same functionality.'; + put '*/'; + put '/* base records */'; + put 'create view work.bitemp4_prep1 as'; + put 'select ''BASE'' as ___TMP___'; + put ',b.*'; + put 'from work.bitemp4_updated a'; + put ',work.bitemp3b_newbase b'; + put 'where 1'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put ';'; + put '/* updated records */'; + put 'create view work.bitemp4_prep2 as'; + put 'select ''STAG'' as ___TMP___ ,*'; + put 'from work.bitemp4_updated;'; + put '/* ensure we only keep columns that appear in both */'; + put '%local bp1 bp2 bp3 bp4;'; + put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; + put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; + put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; + put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; + put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; + put 'set bitemp4_prep1 bitemp4_prep2;'; + put '%if %length(XX&bp3&bp4)>2 %then %do;'; + put 'drop &bp3 &bp4 ;'; + put '%end;'; + put 'run;'; + put '/* remove duplicates */'; + put 'proc sql;'; + put 'create table work.bitemp4a_allrecs as'; + put 'select distinct *'; + put 'from work.bitemp4_prep3'; + put 'order by'; + put '/* compress blanks and then insert commas (as the datetime fields'; + put 'may not be in use) */'; + put '%sysfunc(tranwrd(%sysfunc(compbl('; + put '&pk &bus_from &bus_to &processed'; + put ')),%str( ), %str(,)))'; + put ';'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* this section aligns the business dates'; + put '(eg for inserts or overlaps in the range) */'; + put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; + put 'set work.bitemp4a_allrecs;'; + put 'by &pk &bus_from &bus_to &processed;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '___TMP___md5lag=lag(&md5_col);'; + put '/* reset retained variables */'; + put 'if first.&idx_val then do;'; + put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; + put 'if &md5_col=___TMP___md5lag then do;'; + put '&bus_from=___TMP___from;'; + put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; + put 'end;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 1'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 1'' then do;'; + put '/* else ensure bus_from starts from prior record bus_to */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; + put 'then &bus_from= ___TMP___to;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_to <= &bus_from then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '/* keep staged records only */'; + put 'data work.bitemp4b_firstpass;'; + put 'set work.bitemp4a_allrecs;'; + put 'if ___TMP___=''STAG'';'; + put 'run;'; + put '%end;'; + put '/* next phase is to pass through in reverse - so set up the sort statement */'; + put '%local byvar;'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; + put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; + put '/* if matching bus dates supplied, need to ensure we also have a sort'; + put 'between BASE and STAGING tables */'; + put '%let byvar=&byvar descending ___TMP___;'; + put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'run;'; + put '/**'; + put '* Now (in reverse) pass back business start dates'; + put '*/'; + put 'data work.bitemp4d_secondpass;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put '&tech_from=&now;'; + put '&tech_to=&high_date;'; + put '%end;'; + put 'set work.bitemp4c_sort ;'; + put 'by &byvar;'; + put 'retain ___TMP___cond ''Name of Condition'';'; + put 'retain ___TMP___from ___TMP___to 0;'; + put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; + put '/* put / _all_ /;*/'; + put '___TMP___md5lag=lag(&md5_col);'; + put 'if first.&idx_val then do;'; + put '/* reset retained variables */'; + put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; + put 'end;'; + put 'else do;'; + put '/* if record is identical, carry back bus_to */'; + put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; + put 'end;'; + put 'if ___TMP___=''STAG'' then do;'; + put '/* need to carry forward the closing record */'; + put '___TMP___cond=''Condition 2'';'; + put 'end;'; + put 'else if ___TMP___cond=''Condition 2'' then do;'; + put '/* else ensure bus_to stops at subsequent record bus_from */'; + put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; + put 'then &bus_to= ___TMP___from;'; + put '/* new record may replace old record entirely */'; + put 'if &bus_from >= &bus_to then delete;'; + put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; + put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; + put 'end;'; + put '___TMP___from=&bus_from;'; + put '___TMP___to=&bus_to;'; + put '%end;'; + put 'run;'; + put '%put syscc (line600)=&syscc;'; + put '/**'; + put 'There may still be some records (eg old business history) which have not'; + put 'changed.'; + put 'Need to identify these and remove from the append so they are not updated'; + put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; + put 'business key) and any matching / identical records are split out (from those'; + put 'that need to be updated).'; + put '*/'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; + put 'data bitemp5a_lkp (keep=&md5_col);'; + put 'set bitemp0_base;'; + put '/* for BITEMPORAL we need to compare business dates also */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; + put 'run;'; + put 'data bitemp5b_updates;'; + put 'set bitemp4d_secondpass;'; + put 'if _n_=1 then do;'; + put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; + put 'md5_lkp.definekey("&md5_col");'; + put 'md5_lkp.definedone();'; + put 'end;'; + put '/* drop old md5 col as will rebuild with new business dates */'; + put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; + put 'if md5_lkp.check()=0 then delete;'; + put 'run;'; + put 'proc sql;'; + put '/* get min bus from as will update (close out) all records from this point'; + put '(for that PK)*/'; + put 'create table work.bitemp5d_subquery as'; + put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; + put 'from work.bitemp5b_updates'; + put 'group by &pk_comma;'; + put '/* index has a huge efficiency impact on upcoming nested subquery */'; + put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; + put '%let lastds=work.bitemp5b_updates;'; + put '%end;'; + put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; + put 'proc sql;'; + put 'create table work.bitemp5d_subquery as'; + put 'select distinct &pk_comma'; + put 'from bitemp4d_secondpass;'; + put '%let lastds=work.bitemp4d_secondpass;'; + put '%end;'; + put '%else %let lastds=work.bitemp4d_secondpass;'; + put '/* create single append table (an overlapped pre-sert may be classed as'; + put 'both an update AND a new record). Also create temp views that may be'; + put 'used for pre-load analysis. */'; + put 'data &outds_mod;'; + put 'set &lastds(drop=___TMP___: &md5_col);'; + put 'run;'; + put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; + put 'set &outds_mod /* UPDATED records */'; + put '&outds_add /* NEW records */;'; + put 'run;'; + put 'proc sort data=work.bitemp6_allrecs'; + put 'out=work.bitemp6_unique'; + put 'noduprec'; + put 'dupout=work.xx_BADBADBAD;'; + put 'by _all_;'; + put 'run;'; + put '/* we have all our temp tables now so exit if this is all that is needed */'; + put '%if &LOADTARGET ne YES %then %return;'; + put '/* also exit if an err condition exists */'; + put '%put syscc=&syscc;'; + put '%if &syscc>0 %then %do;'; + put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%mp_abort(msg=&msg);'; + put '%end;'; + put '/* final check - abort if a lock has appeared on the target table */'; + put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; + put '/**'; + put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; + put '*/'; + put '/**'; + put '* First, CLOSE OUT changed records (if not a REPLACE)'; + put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; + put '* However - this can be worked around using a nested subquery..'; + put '*/'; + put 'data _null_;'; + put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; + put 'run;'; + put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: No closeouts needed";'; + put 'run;'; + put '%end;'; + put '%else %if &engine_type=CAS %then %do;'; + put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; + put ',mac=&sysmacroname in &_program'; + put ',msg=%str(&loadtype not yet supported in CAS engine)'; + put ')'; + put '/* create temp table for deletions */'; + put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; + put 'data casuser.&delds;'; + put 'set work.bitemp5d_subquery;'; + put 'run;'; + put '/* delete the records */'; + put 'proc cas ;'; + put 'table.deleteRows / table={'; + put 'caslib="&base_lib",'; + put 'name="&base_dsn",'; + put 'where="1=1",'; + put 'whereTable={caslib=''CASUSER'',name="&delds"}'; + put '};'; + put 'quit;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&delds;'; + put '%end;'; + put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; + put '%then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; + put 'run;'; + put '%local flexinow;'; + put 'proc sql;'; + put '/* if OLEDB then create a temp table for efficiency */'; + put '%local innertable;'; + put '%if &engine_type=OLEDB %then %do;'; + put '%let innertable=[##BITEMP_&base_dsn];'; + put '%let top_table=[dbo].&base_dsn;'; + put '%let flexinow=&SQLNOW;'; + put 'create table &base_lib.."##BITEMP_&base_dsn"n as'; + put 'select * from work.bitemp5d_subquery;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; + put '%let top_table=&baselib_schema.&base_dsn;'; + put '%let flexinow=timestamp &SQLNOW;'; + put '/* make empty table first - must clone & drop extra cols'; + put 'as autoload is bad */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; + put '%if &engine_type=REDSHIFT %then %do;'; + put 'exec (alter table &innertable alter sortkey none) by myAlias;'; + put '%end;'; + put '%let dropcols=%mf_wordsinstr1butnotstr2('; + put 'str1=%upcase(%mf_getvarlist(&basecopy))'; + put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; + put ');'; + put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; + put '%put &=dropcols;'; + put '%let idx_val=%scan(&dropcols,&idx_pk);'; + put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; + put '%end;'; + put '/* create view to strip formats and avoid warns in log */'; + put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; + put 'set work.bitemp5d_subquery;'; + put 'format _all_;'; + put 'run;'; + put 'proc append base=&base_lib..&innertable ('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put 'data=work.vw_bitemp5d force nowarn;'; + put 'run;'; + put '/* open up a connection for pass through SQL */'; + put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; + put 'execute('; + put '%end;'; + put '%else %do;'; + put '%let innertable=bitemp5d_subquery;'; + put '%let top_table=&base_lib..&base_dsn;'; + put '%let flexinow=&now;'; + put '%end;'; + put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; + put 'update &top_table set &tech_to=&flexinow'; + put '%if %length(&processed)>0 %then %do;'; + put ',&processed=&flexinow'; + put '%end;'; + put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; + put '%end;'; + put '%else %if &loadtype=UPDATE %then %do;'; + put '/* changed records are deleted then re-appended when doing UPDATEs */'; + put 'delete from &top_table where'; + put '%end;'; + put '%else %do;'; + put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; + put '%let syscc=5;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '%goto end_of_macro;'; + put '%end;'; + put '/* perform join inside query as per'; + put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; + put 'exists( select 1 from &baselib_schema.&innertable where'; + put '/* loop PK join */'; + put '%do idx_pk=1 %to &pk_cnt;'; + put '%let idx_val=%scan(&pk,&idx_pk);'; + put '&base_dsn..&idx_val=&innertable..&idx_val and'; + put '%end;'; + put '%if &loadtype=BITEMPORAL %then %do;'; + put '&base_dsn..&bus_from >= &innertable..&bus_from'; + put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; + put '%end;'; + put '/* close the statement */'; + put '1=1);'; + put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; + put '%then %do;'; + put ') by myAlias;'; + put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; + put '%end;'; + put '%end;'; + put 'quit;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: Closeout complete";'; + put 'run;'; + put '/**'; + put '* Append the new / updated records'; + put '*/'; + put '%if &engine_type=CAS %then %do;'; + put '/* get varchar variables ready for casting */'; + put '%local vcfmt vcrename vcassign vcdrop;'; + put 'data _null_;'; + put 'set work.bitemp_cols(where=(type=6)) end=last;'; + put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; + put 'retain vcrename vcassign vcdrop vcfmt;'; + put 'if _n_=1 then vcrename=''(rename=('';'; + put 'rancol=resolve(''%mf_getuniquename()'');'; + put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; + put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; + put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; + put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; + put 'if last then do;'; + put 'vcrename=cats(vcrename,''))'');'; + put 'call symputx(''vcfmt'',vcfmt);'; + put 'call symputx(''vcrename'',vcrename);'; + put 'call symputx(''vcassign'',vcassign);'; + put 'call symputx(''vcdrop'',vcdrop);'; + put 'end;'; + put 'run;'; + put '/* prepare a temp cas table with varchars casted */'; + put '%let tmp=%mf_getuniquename();'; + put 'data casuser.&tmp ;'; + put '&vcfmt'; + put 'set work.bitemp6_unique &vcrename;'; + put '&vcassign'; + put '&vcdrop'; + put 'run;'; + put '/* load the table with varchars applied*/'; + put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; + put 'set casuser.&tmp;'; + put 'run;'; + put '/* drop temp table */'; + put 'proc sql;'; + put 'drop table CASUSER.&tmp;'; + put '/* this code will not work as regular tables do not have varchars */'; + put '/*'; + put 'proc casutil;'; + put 'load data=work.bitemp6_unique'; + put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; + put 'quit;'; + put '*/'; + put '%end;'; + put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; + put 'proc append base=&base_lib..&base_dsn'; + put '%if &engine_type=REDSHIFT %then %do;'; + put '('; + put '%do idx_pk=1 %to &redcnt;'; + put '&&rednm&idx_pk = &&redval&idxpk'; + put '%end;'; + put ')'; + put '%end;'; + put 'data=bitemp6_unique force nowarn;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; + put '%end;'; + put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; + put 'ctl_ds=&dclib..mpe_lockanytable'; + put ')'; + put '/* final check on syscc */'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=&_program'; + put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; + put ')'; + put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; + put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; + put 'set work.bitemp0_base (drop=&md5_col);'; + put 'where ___TMP___NEW_FLG=0;'; + put 'drop ___TMP___NEW_FLG;'; + put 'run;'; + put '/* update the AUDIT table */'; + put '%if %mf_existds(&outds_audit) %then %do;'; + put 'options mprint;'; + put '%mp_storediffs(&base_lib..&base_dsn'; + put ',work.vw_outds_orig'; + put ',&pk'; + put ',delds=&outds_del'; + put ',modds=&outds_mod'; + put ',appds=&outds_add'; + put ',outds=work.mp_storediffs'; + put ',processed_dttm=&now'; + put ',loadref=%superq(etlsource)'; + put ')'; + put 'data _null_;'; + put 'set work.mp_storediffs;'; + put 'putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; + put 'run;'; + put 'proc append base=&outds_audit data=work.mp_storediffs;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc >4)'; + put ',mac=bitemporal_dataloader'; + put ',msg=%str(Problem in audit stage (&outds_audit))'; + put ')'; + put '%let user=%mf_getUser();'; + put '/**'; + put 'Notify as appropriate EMAILS DISABLED'; + put '%sumo_alerts(ALERT_EVENT=UPDATE'; + put ', ALERT_TARGET=&base_lib..&base_dsn'; + put ', from_user= &user);'; + put '*/'; + put '/* monitor BiTemporal usage */'; + put '%if &log=1 %then %do;'; + put '%put syscc=&syscc;'; + put '/* do not perform duration calc in pass through */'; + put '%local dur;'; + put 'data _null_;'; + put 'now=symget(''now'');'; + put 'dur=%sysfunc(datetime())-&now;'; + put 'call symputx(''dur'',dur,''l'');'; + put 'run;'; + put 'proc sql;'; + put 'insert into &dclib..mpe_dataloads'; + put 'set libref=%upcase("&base_lib")'; + put ',DSN=%upcase("&base_dsn")'; + put ',ETLSOURCE="&ETLSOURCE"'; + put ',LOADTYPE="&loadtype"'; + put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; + put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; + put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; + put ',DURATION=&dur'; + put ',MAC_VER="v&ver"'; + put ',user_nm="&user"'; + put ',PROCESSED_DTTM=&now;'; + put 'quit;'; + put '%put syscc=&syscc;'; + put '%end;'; + put '%end_of_macro:'; + put '%mend bitemporal_dataloader;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '%macro mpe_refreshlibs();'; + put '%dc_getlibs(outds=work.mm_getLibs)'; + put 'proc sort data=mm_getlibs;'; + put 'by libraryref libraryname;'; + put 'run;'; + put 'data libs0;'; + put 'set mm_getlibs;'; + put 'by libraryref;'; + put 'if "%mf_getplatform()"="SASMETA" then do;'; + put '/* note - invalid libraries can result in exception errors. If this happens,'; + put 'configure the dc_viewlib_check variable to NO in Data Controller Settings */'; + put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; + put 'drop rc;'; + put 'if rc ne 0 then do;'; + put 'putlog "NOTE: Library " libraryname " does not exist!!";'; + put 'putlog (_all_) (=);'; + put 'delete;'; + put 'end;'; + put 'end;'; + put 'if not first.libraryref then delete;'; + put 'run;'; + put 'proc sql;'; + put 'create table libs1 as'; + put 'select distinct libname'; + put ',engine'; + put ',path'; + put ',level'; + put ',sysname'; + put ',sysvalue'; + put 'from dictionary.libnames'; + put 'order by libname, level,engine,path;'; + put 'data libs2;'; + put 'set libs1;'; + put 'length tran $1024;'; + put 'if missing(sysname) then sysname=''Missing'';'; + put 'select(sysname);'; + put 'when(''Access Permission'') tran=''Permissions'';'; + put 'when(''Owner Name'') tran=''Owner'';'; + put 'when(''Schema/Owner'') tran=''schema'';'; + put 'otherwise tran=sysname;'; + put 'end;'; + put 'run;'; + put 'proc transpose data=libs2 out=libs3;'; + put 'by libname level engine path;'; + put 'var sysvalue;'; + put 'id tran;'; + put 'run;'; + put 'data libs4(rename=(libname=libref));'; + put 'length paths $8192 perms owners schemas $500 permissions owner schema $1024;'; + put 'if _n_=1 then call missing (of _all_);'; + put 'set libs3;'; + put 'by libname;'; + put 'if engine=''V9'' then engine=''BASE'';'; + put 'if first.libname then do;'; + put 'retain paths perms owners schemas;'; + put 'paths=''(''!!quote(trim(path));'; + put 'perms=permissions;'; + put 'owners=owner;'; + put 'schemas=schema;'; + put 'end;'; + put 'else do;'; + put 'paths=trim(paths)!!'' ''!!quote(trim(path));'; + put 'perms=trim(perms)!!'',''!!trim(permissions);'; + put 'owners=trim(owners)!!'',''!!trim(owner);'; + put 'schemas=trim(schemas)!!'' ''!!trim(schema);'; + put 'end;'; + put 'if last.libname then do;'; + put 'paths=trim(paths)!!'')'';'; + put 'schemas=cats(schemas);'; + put 'output;'; + put 'end;'; + put 'keep libname engine paths perms owners schemas;'; + put 'run;'; + put 'proc sql;'; + put 'create table libs5 as'; + put 'select a.libref'; + put ',coalescec(b.engine,a.engine) as engine length=32'; + put ',b.libraryname as libname'; + put ',a.paths'; + put ',a.perms'; + put ',a.owners'; + put ',a.schemas'; + put ',b.libraryid as libid'; + put 'from libs4 a'; + put 'left join libs0 b'; + put 'on upcase(a.libref)=upcase(b.libraryref)'; + put 'where libref not in (''SASWORK'',''WORK'',''SASUSER'',''CASUSER'',''TEMP'',''STPSAMP'''; + put ',''MAPSGFK'');'; + put '%bitemporal_dataloader(base_lib=&dc_libref'; + put ',base_dsn=MPE_DATACATALOG_LIBS'; + put ',append_dsn=libs5'; + put ',PK=LIBREF'; + put ',etlsource=&_program'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&dc_libref'; + put ')'; + put '%mend mpe_refreshlibs;'; + put '/** @cond */'; + put '%macro mf_existfeature(feature'; + put ')/*/STORE SOURCE*/;'; + put '%let feature=%upcase(&feature);'; + put '%local platform;'; + put '%let platform=%mf_getplatform();'; + put '%if &feature= %then %do;'; + put '%put No feature was requested for detection;'; + put '%end;'; + put '%else %if &feature=COLCONSTRAINTS %then %do;'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=PROCLUA %then %do;'; + put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; + put '%if &platform=SASVIYA %then 1;'; + put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; + put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=DBMS_MEMTYPE %then %do;'; + put '/* does dbms_memtype exist in dictionary.tables? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=EXPORTXLS %then %do;'; + put '/* is it possible to PROC EXPORT an excel file? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; + put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; + put '%else 0;'; + put '%end;'; + put '%else %do;'; + put '-1'; + put '%put &sysmacroname: &feature not found;'; + put '%end;'; + put '%mend mf_existfeature;'; + put '/** @endcond */'; + put '%macro mp_getconstraints(lib=WORK'; + put ',ds='; + put ',outds=mp_getconstraints'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '/**'; + put '* Cater for environments where sashelp.vcncolu is not available'; + put '*/'; + put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; + put 'proc sql;'; + put 'create table &outds('; + put 'libref char(8)'; + put ',TABLE_NAME char(32)'; + put ',constraint_type char(8) label=''Constraint Type'''; + put ',constraint_name char(32) label=''Constraint Name'''; + put ',column_name char(32) label=''Column'''; + put ',constraint_order num'; + put ');'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Neither dictionary tables nor sashelp provides a constraint order column,'; + put '* however they DO arrive in the correct order. So, create the col.'; + put '**/'; + put '%local vw;'; + put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; + put 'data &vw /view=&vw;'; + put 'set sashelp.vcncolu;'; + put 'where table_catalog="&lib";'; + put '/* use retain approach to reset the constraint order with each constraint */'; + put 'length tmp $1000;'; + put 'retain tmp;'; + put 'drop tmp;'; + put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; + put 'constraint_order=1;'; + put 'end;'; + put 'else constraint_order+1;'; + put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; + put 'run;'; + put '/* must use SQL as proc datasets does not support length changes */'; + put 'proc sql noprint;'; + put 'create table &outds as'; + put 'select upcase(a.TABLE_CATALOG) as libref'; + put ',upcase(a.TABLE_NAME) as TABLE_NAME'; + put ',a.constraint_type'; + put ',a.constraint_name'; + put ',b.column_name'; + put ',b.constraint_order'; + put 'from dictionary.TABLE_CONSTRAINTS a'; + put 'left join &vw b'; + put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; + put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; + put 'and a.constraint_name=b.constraint_name'; + put '/**'; + put '* We cannot apply this clause to the underlying dictionary table. See:'; + put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; + put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; + put '* all the underlying constraint queries, causing exception errors in some'; + put '* cases: https://github.com/sasjs/core/issues/283'; + put '*/'; + put 'where a.TABLE_CATALOG="&lib"'; + put '%if "&ds" ne "" %then %do;'; + put 'and upcase(a.TABLE_NAME)="&ds"'; + put 'and upcase(b.TABLE_NAME)="&ds"'; + put '%end;'; + put 'order by libref, table_name, constraint_name, constraint_order'; + put ';'; + put '/* tidy up */'; + put '%mp_dropmembers('; + put '&vw,'; + put 'iftrue=(&mdebug=0)'; + put ')'; + put '%mend mp_getconstraints;'; + put '%macro mpe_refreshtables(lib,ds=#all);'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%local engine; %let engine=%mf_getengine(&lib);'; + put '%local schema; %let schema=%mf_getschema(&lib);'; + put '%put running &sysmacroname &lib(&engine &schema) for &ds;'; + put 'proc sql;'; + put 'create table cols as'; + put 'select libname as libref'; + put ',upcase(memname) as dsn'; + put ',memtype'; + put ',upcase(name) as name'; + put ',type'; + put ',length'; + put ',varnum'; + put ',label'; + put ',format'; + put ',idxusage'; + put ',notnull'; + put 'from dictionary.columns'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc afer &lib cols extraction)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc afer &lib indexes extraction)'; + put ')'; + put '%if &engine=SQLSVR %then %do;'; + put 'proc sql;'; + put 'connect using &lib;'; + put 'create table work.indexes as'; + put 'select * from connection to &lib('; + put 'select'; + put 's.name as SchemaName,'; + put 't.name as memname,'; + put 'tc.name as name,'; + put 'ic.key_ordinal as KeyOrderNr'; + put 'from'; + put 'sys.schemas s'; + put 'inner join sys.tables t on s.schema_id=t.schema_id'; + put 'inner join sys.indexes i on t.object_id=i.object_id'; + put 'inner join sys.index_columns ic on i.object_id=ic.object_id'; + put 'and i.index_id=ic.index_id'; + put 'inner join sys.columns tc on ic.object_id=tc.object_id'; + put 'and ic.column_id=tc.column_id'; + put 'where i.is_primary_key=1'; + put 'and s.name=%str(%'')&schema%str(%'')'; + put 'order by t.name, ic.key_ordinal ;'; + put ');disconnect from &lib;'; + put 'create table finalcols as'; + put 'select a.*'; + put ',case when b.name is not null then 1 else 0 end as pk_ind'; + put 'from work.cols a'; + put 'left join work.indexes b'; + put 'on a.dsn=b.memname'; + put 'and upcase(a.name)=upcase(b.name)'; + put 'order by libref,dsn;'; + put '%end;'; + put '%else %do;'; + put '%local dsn;'; + put '%if &ds = #ALL %then %let dsn=;'; + put '%mp_getconstraints(lib=&lib.,ds=&dsn,outds=work.constraints)'; + put 'proc sql;'; + put 'create table summ as'; + put 'select libref as libname'; + put ',table_name as memname'; + put ',column_name as name'; + put ',sum(case when constraint_type=''PRIMARY'' then 1 else 0 end) as pk4sure'; + put ',sum(case when constraint_type =''NOT NULL'' then 1 else 0 end) as notnull'; + put ',sum(case when constraint_type =''UNIQUE'' then 1 else 0 end) as unq'; + put 'from work.constraints'; + put 'group by 1,2,3;'; + put '/* if a PRIMARY constraint is definitely a PK */'; + put '/* if a UNIQUE where all cols are also NOT NULL then is effectively a PK */'; + put 'data pk4sure pkbydefault;'; + put 'set summ;'; + put 'if pk4sure = 1 then output pk4sure;'; + put 'else if unq=1 then do;'; + put 'if notnull =0 then falseflag=1;'; + put 'output pkbydefault;'; + put 'end;'; + put 'run;'; + put 'proc sql;'; + put 'create table finalpks'; + put 'as select * from pkbydefault'; + put 'where cats(libname,''.'',memname) not in ('; + put 'select cats(libname,''.'',memname) from pk4sure'; + put ')'; + put 'and cats(libname,''.'',memname) not in ('; + put 'select cats(libname,''.'',memname) from pkbydefault where falseflag=1)'; + put 'union select * from pk4sure;'; + put 'create table finalcols as'; + put 'select a.*'; + put ',case when b.pk4sure=1 or unq=1 then 1 else 0 end as pk_ind'; + put 'from work.cols a'; + put 'left join work.finalpks b'; + put 'on a.dsn=b.memname'; + put 'and upcase(a.name)=upcase(b.name)'; + put 'order by libref,dsn;'; + put '%end;'; + put '/* load columns */'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datacatalog_vars'; + put ',append_dsn=finalcols'; + put ',PK=LIBREF DSN NAME'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put '%if &ds ne #ALL %then %do;'; + put ',close_vars=LIBREF DSN'; + put '%end;'; + put ',dclib=&mpelib'; + put ')'; + put '/* prepare tables */'; + put 'proc sql;'; + put 'create table work.tabs as select'; + put 'libname as libref'; + put ',upcase(memname) as dsn'; + put ',memtype'; + put '%if %mf_existfeature(DBMS_MEMTYPE)=1 %then %do;'; + put ',dbms_memtype'; + put '%end;'; + put '%else %do;'; + put ',''n/a'' as dbms_memtype format=$32.'; + put '%end;'; + put ',typemem'; + put ',memlabel'; + put ',nvar'; + put ',compress'; + put 'from dictionary.tables'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put 'data tabs2;'; + put 'set finalcols;'; + put 'length pk_fields $512;'; + put 'retain pk_fields;'; + put 'by libref dsn;'; + put 'if first.dsn then pk_fields='''';'; + put 'if pk_ind=1 then pk_fields=catx('' '',pk_fields,name);'; + put 'if last.dsn then output;'; + put 'run;'; + put 'proc sql;'; + put 'create table work.finaltabs as'; + put 'select a.libref'; + put ',a.dsn'; + put ',a.memtype'; + put ',a.dbms_memtype'; + put ',a.typemem'; + put ',a.memlabel'; + put ',a.nvar'; + put ',a.compress'; + put ',b.pk_fields'; + put 'from work.tabs a'; + put 'left join work.tabs2 b'; + put 'on a.libref=b.libref'; + put 'and a.dsn=b.dsn;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datacatalog_tabs'; + put ',append_dsn=finaltabs'; + put ',PK=LIBREF DSN'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put '%if &ds ne #ALL %then %do;'; + put ',close_vars=LIBREF'; + put '%end;'; + put ')'; + put '/* prepare table frequently changing attributes */'; + put 'proc sql;'; + put '%if &engine=SQLSVR %then %do;'; + put 'connect using &lib;'; + put 'create table work.attrs as select * from connection to &lib('; + put 'SELECT SCHEMA_NAME(schema_id) as ''schema'', name, create_date, modify_date'; + put 'FROM sys.tables ;'; + put ');'; + put 'create table work.nobs as select * from connection to &lib('; + put 'SELECT SCHEMA_NAME(A.schema_id) AS ''schema'''; + put ',A.Name, AVG(B.rows) AS ''RowCount'''; + put 'FROM sys.objects A'; + put 'INNER JOIN sys.partitions B ON A.object_id = B.object_id'; + put 'WHERE A.type = ''U'''; + put 'GROUP BY A.schema_id, A.Name'; + put ');'; + put 'disconnect from &lib;'; + put 'create table statustabs as select'; + put 'a.libref'; + put ',a.dsn'; + put ',b.create_date as crdate'; + put ',b.modify_date as modate'; + put ',. as filesize'; + put ',c.RowCount as nobs'; + put 'from work.tabs a'; + put 'left join work.attrs(where=(schema="&schema")) b'; + put 'on upcase(a.dsn)=upcase(b.name)'; + put 'left join work.nobs(where=(schema="&schema")) c'; + put 'on upcase(a.dsn)=upcase(c.name);'; + put '%end;'; + put '%else %do;'; + put 'create table statustabs as select'; + put 'libname as libref'; + put ',upcase(memname) as dsn'; + put ',crdate'; + put ',modate'; + put ',filesize'; + put ',nobs'; + put 'from dictionary.tables'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne #ALL %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put '%end;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datastatus_tabs'; + put ',append_dsn=statustabs'; + put ',PK=LIBREF DSN'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put '%if &ds ne #ALL %then %do;'; + put ',close_vars=LIBREF'; + put '%end;'; + put ')'; + put '%if &ds = #ALL %then %do;'; + put 'proc sql;'; + put 'create table statuslibs as select'; + put 'libref'; + put ',sum(filesize) as libsize'; + put ',count(*) as table_cnt'; + put 'from statustabs'; + put 'group by 1;'; + put '%bitemporal_dataloader(base_lib=&mpelib'; + put ',base_dsn=mpe_datastatus_libs'; + put ',append_dsn=statuslibs'; + put ',PK=LIBREF'; + put ',etlsource=&sysmacroname'; + put ',loadtype=TXTEMPORAL'; + put ',tech_from=TX_FROM'; + put ',tech_to=TX_TO'; + put ',dclib=&mpelib'; + put ')'; + put '%end;'; + put '%mend mpe_refreshtables;'; + put '%macro dc_refreshcatalog(libref);'; + put '/* take current repository */'; + put '%local repo repocnt xx;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'put (_all_)(=);'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'');'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put &sysmacroname #&libref#;'; + put '%if #&libref# ne ## %then %do;'; + put '%put &sysmacroname: assigning specific libref, &libref;'; + put '%dc_assignlib(WRITE,&libref) /* write just in order to assign direct lib */'; + put '%mpe_refreshtables(&libref)'; + put '%end;'; + put '%else %do xx=1 %to &repocnt;'; + put 'options metarepository=&&repo&xx;'; + put '%mpe_refreshlibs()'; + put '/* get libs to be ignored */'; + put '%local ignorelist;'; + put 'proc sql noprint;'; + put 'select var_value into: ignorelist'; + put 'from &mpelib..MPE_CONFIG'; + put 'where var_scope=''DC_CATALOG'''; + put 'and var_name="DC_IGNORELIBS"'; + put 'and &dc_dttmtfmt. < TX_TO'; + put 'and var_active=1;'; + put '/* get all libs */'; + put '%let libcnt=0;'; + put 'data libraries;'; + put 'set &mpelib..mpe_datacatalog_libs;'; + put 'where &dc_dttmtfmt. le TX_TO;'; + put 'if index("&ignorelist",''|''!!upcase(trim(libref))!!''|'')=0;'; + put 'i+1;'; + put 'call symputx(cats(''lib'',i),libref);'; + put 'call symputx(''libcnt'',i);'; + put 'run;'; + put '%local i;'; + put '%do i=1 %to &libcnt;'; + put '%dc_assignlib(WRITE,&&lib&i)'; + put '%mpe_refreshtables(&&lib&i)'; + put '%end;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_refreshcatalog;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file refreshlibinfo.sas'; + put '@brief Refresh the Data Catalog for a particular library'; + put '@details When showing library info in the VIEW menu, the data is taken from'; + put 'the Data Catalog tables. These may be empty or outdated, and so this service'; + put 'allows end users to run a refresh of the data.'; + put '

Service Inputs

'; + put '
lib2refresh
'; + put 'Should contain the libref to be refreshed.'; + put '|libref:$8.|'; + put '|---|'; + put '|SOMELIB|'; + put '

Service Outputs

'; + put '
libinfo
'; + put '|engine $|libname $|paths $|perms $|owners $|schemas $ |libid $|libsize $|table_cnt |'; + put '|---|---|---|---|---|---|---|---|---|'; + put '|V9|SOMELIB|"some/path"|rwxrwxr-x|sassrv|` `|` `|636MB|33|'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li dc_refreshcatalog.sas'; + put '@li mp_abort.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%webout(FETCH)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',msg=%str(syscc=&syscc Problem on startup)'; + put ')'; + put '%let libref=;'; + put 'data _null_;'; + put 'set work.lib2refresh;'; + put 'call symputx(''libref'',libref);'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',msg=%str(syscc=&syscc Problem with inputs - was lib2refresh object sent?)'; + put ')'; + put '%dc_assignlib(WRITE,&libref)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',msg=%str(syscc=&syscc after lib assignment)'; + put ')'; + put '%dc_refreshcatalog(&libref)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',msg=%str(syscc=&syscc Problem when running the catalog refresh)'; + put ')'; + put '/* get libinfo */'; + put 'proc sql;'; + put 'create table work.libinfo as'; + put 'select a.engine,'; + put 'a.libname,'; + put 'a.paths,'; + put 'a.perms,'; + put 'a.owners,'; + put 'a.schemas,'; + put 'a.libid,'; + put 'b.libsize,'; + put 'b.table_cnt'; + put 'from &mpelib..mpe_datacatalog_libs(where=(&dc_dttmtfmt. lt tx_to)) a'; + put 'inner join &mpelib..mpe_datastatus_libs(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on a.libref=b.libref'; + put 'where a.libref="&libref";'; + put '%webout(OPEN)'; + put '%webout(OBJ,libinfo)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=registeruser; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file registeruser.sas'; + put '@brief Registers a new user in Data Controller'; + put '@details New users are logged after accepting EULA terms.'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mp_abort.sas'; + put '@li mpeinit.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let userid=%mf_getuser();'; + put '/* confirm the user is not registered */'; + put '%let isRegistered=0;'; + put 'proc sql noprint;'; + put 'select count(*) into: isregistered'; + put 'from &mpelib..mpe_users'; + put 'where user_id="&userid";'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem accessing &mpelib..mpe_users table)'; + put ')'; + put '%mp_abort(iftrue= (&isregistered > 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(User &userid is already registered on &mpelib..mpe_users!)'; + put ')'; + put 'data work.append;'; + put 'if 0 then set &mpelib..mpe_users;'; + put 'user_id=symget(''userid'');'; + put 'registered_dt=today();'; + put 'last_seen_dt=today();'; + put 'run;'; + put 'proc append base=&mpelib..mpe_users data=work.append;'; + put '%let isRegistered=0;'; + put 'proc sql noprint;'; + put 'select count(*) into: isregistered'; + put 'from &mpelib..mpe_users'; + put 'where user_id="&userid";'; + put '%mp_abort(iftrue= (&syscc ne 0 or &isregistered ne 1)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem appending to &mpelib..mpe_users table)'; + put ')'; + put 'data work.return;'; + put 'msg=''SUCCESS'';'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,return)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=startupservice; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file startupservice.sas'; + put '@brief List the libraries and tables the mp-editor user can access'; + put '@details If user is in a control group (&mpeadmins, configured in mpeinit.sas)'; + put 'then they have access to all libraries / tables. Otherwise a join is made'; + put 'to the &mpelib..mp_editor_access table.'; + put 'This service is also callable from EUCs - just add EUCDLM= parameter.'; + put 'EUCDLM values: TAB or CSV'; + put '

SAS Macros

'; + put '@li mf_getuser.sas'; + put '@li mpe_getgroups.sas'; + put '@li mp_abort.sas'; + put '@li mpeinit.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Issue on startup in startupService)'; + put ')'; + put '%let userid=%mf_getuser();'; + put '%put userid is &userid;'; + put '%mpe_getgroups(user=&userid,outds=groups)'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Issue with Groups syscc=&syscc for user &userid)'; + put ')'; + put '/* check if user is registered or not */'; + put '%let isRegistered=0;'; + put 'proc sql noprint;'; + put 'select count(*) into: isregistered'; + put 'from &mpelib..mpe_users'; + put 'where user_id="&userid";'; + put '/* get number of registered users */'; + put '%let registerCount=0;'; + put 'select count(*) into: registercount'; + put 'from &mpelib..mpe_users'; + put 'where last_seen_dt>%sysfunc(today())-365;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem accessing &mpelib..mpe_users table)'; + put ')'; + put '%global dc_restrict_editrecord;'; + put 'data work.globvars;'; + put 'dclib="&mpelib";'; + put 'sas9lineage_enabled=1;'; + put 'isregistered=&isregistered;'; + put 'registercount=®isterCount;'; + put 'dc_admin_group="&mpeadmins";'; + put '/* fetched from mpe_config in dc_getsettings */'; + put 'licence_key="&dc_licence_key";'; + put 'activation_key="&dc_activation_key";'; + put 'dc_restrict_editrecord="&dc_restrict_editrecord";'; + put 'run;'; + put '%macro mstp_mpeditorstartup();'; + put 'data _null_;'; + put 'putlog "entering &sysmacroname";'; + put 'run;'; + put 'proc sql noprint;'; + put '/* update last seen, if seen */'; + put '%if &isregistered>0 %then %do;'; + put 'update &mpelib..mpe_users'; + put 'set last_seen_dt=%sysfunc(today())'; + put 'where user_id="&userid";'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem updating &mpelib..mpe_users table)'; + put ')'; + put '%local admin_check all_cnt;'; + put 'select count(*) into: admin_check'; + put 'from groups'; + put 'where groupname="&mpeadmins";'; + put 'select count(*) into: all_cnt'; + put 'from &mpelib..mpe_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and ACCESS_LEVEL in (''EDIT'')'; + put 'and libref=''*ALL*'''; + put 'and SAS_GROUP in (select groupname from groups);'; + put '%if &admin_check >0 or &all_cnt>0 %then %do;'; + put 'create table sasDatasets as'; + put 'select distinct libref, dsn'; + put 'from &mpelib..mpe_tables'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'order by 1;'; + put '%end;'; + put '%else %do;'; + put 'create table sasDatasets as'; + put 'select distinct a.libref,a.dsn'; + put 'from &mpelib..mpe_tables a'; + put 'left join &mpelib..mpe_security b'; + put 'on a.libref=b.libref'; + put 'and a.dsn=b.dsn'; + put 'where &dc_dttmtfmt. lt a.tx_to'; + put 'and &dc_dttmtfmt. lt b.tx_to'; + put 'and b.ACCESS_LEVEL in (''EDIT'')'; + put 'and b.SAS_GROUP in (select groupname from groups)'; + put 'order by 1;'; + put '%end;'; + put '%mend mstp_mpeditorstartup;'; + put '%mstp_mpeditorstartup()'; + put 'create table saslibs as'; + put 'select distinct libref'; + put 'from &syslast;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(issue with security validation)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,sasDatasets)'; + put '%webout(OBJ,saslibs)'; + put '%webout(OBJ,globvars)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=validatefilter; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro removecolsfromwork(col);'; + put '/* only an issue if debug mode enabled */'; + put '%global _debug;'; + put '%if &_debug ge 131 %then %do;'; + put '%let col=%upcase(&col);'; + put '%local memlist;'; + put 'proc sql noprint;'; + put 'select distinct memname into: memlist'; + put 'separated by '' '''; + put 'from dictionary.columns'; + put 'where libname=''WORK'' and upcase(name)="&col";'; + put '%if %mf_isblank(&memlist) %then %return;'; + put '%mp_dropmembers(list=&memlist)'; + put '%end;'; + put '%mend removecolsfromwork;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_getvalue(libds,variable,filter=1'; + put ')/*/STORE SOURCE*/;'; + put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; + put '%local dsid rc &variable;'; + put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; + put '%syscall set(dsid);'; + put '%let rc = %sysfunc(fetch(&dsid));'; + put '%let rc = %sysfunc(close(&dsid));'; + put '%trim(&&&variable)'; + put '%end;'; + put '%mend mf_getvalue;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_islibds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%local regex;'; + put '%let regex=%sysfunc(prxparse(%str(/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i)));'; + put '%sysfunc(prxmatch(®ex,&libds))'; + put '%mend mf_islibds;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);'; + put '%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)'; + put ')'; + put '%local fref1;'; + put '%let fref1=%mf_getuniquefileref();'; + put 'data _null_;'; + put 'file &fref1;'; + put 'infile &inref end=eof;'; + put 'if _n_=1 then do;'; + put 'put "proc sql;";'; + put 'put "validate select * from &targetds";'; + put 'put "where " ;'; + put 'end;'; + put 'input;'; + put 'put _infile_;'; + put 'putlog _infile_;'; + put 'if eof then put ";quit;";'; + put 'run;'; + put '%inc &fref1;'; + put 'data &outds;'; + put 'if &sqlrc or &syscc or &syserr then do;'; + put 'REASON_CD=''VALIDATION_ERR''!!''OR: ''!!'; + put 'coalescec(symget(''SYSERRORTEXT''),symget(''SYSWARNINGTEXT''));'; + put 'output;'; + put 'end;'; + put 'else stop;'; + put 'run;'; + put 'filename &fref1 clear;'; + put '%if %mf_nobs(&outds)>0 %then %do;'; + put '%if &abort=YES %then %do;'; + put 'data _null_;'; + put 'set &outds;'; + put 'call symputx(''REASON_CD'',reason_cd,''l'');'; + put 'stop;'; + put 'run;'; + put '%mp_abort('; + put 'mac=&sysmacroname,'; + put 'msg=%str(Filter validation issues.)'; + put ')'; + put '%end;'; + put '%let syscc=1008;'; + put '%end;'; + put '%mend mp_filtervalidate;'; + put '%macro mp_filtercheck(inds,targetds=,outds=work.badrecords,abort=YES);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put '/* Validate input column */'; + put '%local vtype;'; + put '%let vtype=%mf_getvartype(&inds,RAW_VALUE);'; + put '%mp_abort(iftrue=(&abort=YES and &vtype ne C),'; + put 'mac=&sysmacroname,'; + put 'msg=%str(%str(ERR)OR: RAW_VALUE must be character)'; + put ')'; + put '%if &vtype ne C %then %do;'; + put '%put &sysmacroname: RAW_VALUE must be character;'; + put '%let syscc=42;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Sanitise the values based on valid value lists, then strip out'; + put '* quotes, commas, periods and spaces.'; + put '* Only numeric values should remain'; + put '*/'; + put '%local reason_cd nobs;'; + put '%let nobs=0;'; + put 'data &outds;'; + put '/*length GROUP_LOGIC SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; + put 'OPERATOR_NM $10 RAW_VALUE $4000;*/'; + put 'set &inds;'; + put 'length reason_cd $4032 vtype $1 vnum dsid 8 tmp $4000;'; + put 'drop tmp;'; + put '/* quick check to ensure column exists */'; + put 'if upcase(VARIABLE_NM) not in'; + put '(%upcase(%mf_getvarlist(&targetds,dlm=%str(,),quote=SINGLE)))'; + put 'then do;'; + put 'REASON_CD="Variable "!!cats(variable_nm)!!" not in &targetds";'; + put 'putlog REASON_CD= VARIABLE_NM=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'return;'; + put 'end;'; + put '/* need to open the dataset to get the column type */'; + put 'dsid=open("&targetds","i");'; + put 'if dsid>0 then do;'; + put 'vnum=varnum(dsid,VARIABLE_NM);'; + put 'if vnum<1 then do;'; + put '/* should not happen as was also tested for above */'; + put 'REASON_CD=cats("Variable (",VARIABLE_NM,") not found in &targetds");'; + put 'putlog REASON_CD= dsid=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'return;'; + put 'end;'; + put '/* now we can get the type */'; + put 'else vtype=vartype(dsid,vnum);'; + put 'end;'; + put '/* closed list checks */'; + put 'if GROUP_LOGIC not in (''AND'',''OR'') then do;'; + put 'REASON_CD=''GROUP_LOGIC should be AND/OR, not:''!!cats(GROUP_LOGIC);'; + put 'putlog REASON_CD= GROUP_LOGIC=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if SUBGROUP_LOGIC not in (''AND'',''OR'') then do;'; + put 'REASON_CD=''SUBGROUP_LOGIC should be AND/OR, not:''!!cats(SUBGROUP_LOGIC);'; + put 'putlog REASON_CD= SUBGROUP_LOGIC=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if mod(SUBGROUP_ID,1) ne 0 then do;'; + put 'REASON_CD=''SUBGROUP_ID should be integer, not ''!!cats(subgroup_id);'; + put 'putlog REASON_CD= SUBGROUP_ID=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'if OPERATOR_NM not in'; + put '(''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'',''BETWEEN'',''IN'',''NOT IN'',''CONTAINS'')'; + put 'then do;'; + put 'REASON_CD=''Invalid OPERATOR_NM: ''!!cats(OPERATOR_NM);'; + put 'putlog REASON_CD= OPERATOR_NM=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put '/* special missing logic */'; + put 'if vtype=''N'''; + put 'and OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'')'; + put 'and cats(upcase(raw_value)) in ('; + put '''.'',''.A'',''.B'',''.C'',''.D'',''.E'',''.F'',''.G'',''.H'',''.I'',''.J'',''.K'',''.L'',''.M'',''.N'''; + put '''.N'',''.O'',''.P'',''.Q'',''.R'',''.S'',''.T'',''.U'',''.V'',''.W'',''.X'',''.Y'',''.Z'',''._'''; + put ')'; + put 'then do;'; + put '/* valid numeric - exit data step loop */'; + put 'return;'; + put 'end;'; + put '/* special logic */'; + put 'if OPERATOR_NM in (''IN'',''NOT IN'',''BETWEEN'') then do;'; + put 'if OPERATOR_NM=''BETWEEN'' then raw_value1=tranwrd(raw_value,'' AND '','','');'; + put 'else do;'; + put 'if substr(raw_value,1,1) ne ''('''; + put 'or substr(cats(reverse(raw_value)),1,1) ne '')'''; + put 'then do;'; + put 'REASON_CD=''Missing start/end bracket in RAW_VALUE'';'; + put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'else raw_value1=substr(raw_value,2,max(length(raw_value)-2,0));'; + put 'end;'; + put '/* we now have a comma seperated list of values */'; + put 'if vtype=''N'' then do i=1 to countc(raw_value1, '','')+1;'; + put 'tmp=scan(raw_value1,i,'','');'; + put 'if cats(tmp) ne ''.'' and input(tmp, ?? 8.) eq . then do;'; + put 'REASON_CD=''Non Numeric value provided'';'; + put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'return;'; + put 'end;'; + put 'end;'; + put 'else raw_value1=raw_value;'; + put '/* remove nested literals eg '''' */'; + put 'raw_value1=tranwrd(raw_value1,"''''",'''');'; + put '/* now match string literals (always single quotes) */'; + put 'raw_value2=raw_value1;'; + put 'regex = prxparse("s/(\'').*?(\'')//");'; + put 'call prxchange(regex,-1,raw_value2);'; + put '/* remove commas and periods*/'; + put 'raw_value3=compress(raw_value2,'',.'');'; + put '/* output records that contain values other than digits and spaces */'; + put 'if notdigit(compress(raw_value3,'' ''))>0 then do;'; + put 'putlog raw_value3= $hex32.;'; + put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; + put 'putlog REASON_CD= raw_value= raw_value1= raw_value2= raw_value3=;'; + put 'call symputx(''reason_cd'',reason_cd,''l'');'; + put 'call symputx(''nobs'',_n_,''l'');'; + put 'output;'; + put 'end;'; + put 'run;'; + put 'data _null_;'; + put 'set &outds end=last;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue=(&abort=YES and &nobs>0),'; + put 'mac=&sysmacroname,'; + put 'msg=%str(Data issue: %superq(reason_cd))'; + put ')'; + put '%if &nobs>0 %then %do;'; + put '%let syscc=1008;'; + put '%return;'; + put '%end;'; + put '/**'; + put '* syntax checking passed but it does not mean the filter is valid'; + put '* for that we can run a proc sql validate query'; + put '*/'; + put '%local fref1;'; + put '%let fref1=%mf_getuniquefileref();'; + put '%mp_filtergenerate(&inds,outref=&fref1)'; + put '/* this macro will also set syscc to 1008 if any issues found */'; + put '%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)'; + put '%mend mp_filtercheck;'; + put '%macro mp_md5(cvars=,nvars=);'; + put '%local i var sep;'; + put 'put(md5('; + put '%do i=1 %to %sysfunc(countw(&cvars));'; + put '%let var=%scan(&cvars,&i,%str( ));'; + put '&sep put(md5(trim(&var)),$hex32.)'; + put '%let sep=!!;'; + put '%end;'; + put '%do i=1 %to %sysfunc(countw(&nvars));'; + put '%let var=%scan(&nvars,&i,%str( ));'; + put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; + put '/* but ONLY if not missing, else will lose any special missing values */'; + put '&sep put(md5(trim(put(ifn(missing(&var),&var,&var*1),binary64.))),$hex32.)'; + put '%let sep=!!;'; + put '%end;'; + put '),$hex32.)'; + put '%mend mp_md5;'; + put '%macro mp_hashdataset('; + put 'libds,'; + put 'outds=work._data_,'; + put 'salt=,'; + put 'iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local keyvar /* roll up the md5 */'; + put 'prevkeyvar /* retain prev record md5 */'; + put 'lastvar /* last var in input ds */'; + put 'cvars nvars;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '/* avoid naming conflict for hash key vars */'; + put '%let keyvar=%mf_getuniquename();'; + put '%let prevkeyvar=%mf_getuniquename();'; + put '%let lastvar=%mf_getuniquename();'; + put '%if %mf_getattrn(&libds,NLOBS)=0 %then %do;'; + put 'data &outds;'; + put 'length hashkey $32;'; + put 'hashkey=put(md5("&salt"),$hex32.);'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%put &sysmacroname: Dataset &libds is empty, or is not a dataset;'; + put '%put &sysmacroname: hashkey of &outds is based on salt (&salt) only;'; + put '%end;'; + put '%else %if %mf_getattrn(&libds,NLOBS)<0 %then %do;'; + put '%put %str(ERR)OR: Dataset &libds is not a dataset;'; + put '%end;'; + put '%else %do;'; + put 'data &outds(rename=(&keyvar=hashkey) keep=&keyvar)'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put '/nonote2err'; + put '%end;'; + put ';'; + put 'length &prevkeyvar &keyvar $32;'; + put 'retain &prevkeyvar;'; + put 'if _n_=1 then &prevkeyvar=put(md5("&salt"),$hex32.);'; + put 'set &libds end=&lastvar;'; + put '/* hash should include previous row */'; + put '&keyvar=%mp_md5('; + put 'cvars=%mf_getvarlist(&libds,typefilter=C) &prevkeyvar,'; + put 'nvars=%mf_getvarlist(&libds,typefilter=N)'; + put ');'; + put '&prevkeyvar=&keyvar;'; + put 'if &lastvar then output;'; + put 'run;'; + put '%end;'; + put '%mend mp_hashdataset;'; + put '/** @cond */'; + put '%macro mf_existvar(libds /* 2 part dataset name */'; + put ', var /* variable name */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid=0 or %length(&var)=0 %then %do;'; + put '%put %sysfunc(sysmsg());'; + put '0'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(varnum(&dsid,&var))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_existvar;'; + put '/** @endcond */'; + put '%macro mf_getquotedstr(IN_STR'; + put ',DLM=%str(,)'; + put ',QUOTE=S'; + put ',indlm=%str( )'; + put ')/*/STORE SOURCE*/;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; + put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; + put '%else %if "e=N %then %let quote=;'; + put '%local i item buffer;'; + put '%let i=1;'; + put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; + put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; + put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; + put '%else %let item=%qtrim(&item);'; + put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; + put '%else %let buffer =&buffer&DLM%qtrim(&item);'; + put '%let i = %eval(&i+1);'; + put '%end;'; + put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; + put '&buffer'; + put '%mend mf_getquotedstr;'; + put '%macro mf_getattrc('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrc(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrc;'; + put '%macro mp_lockfilecheck('; + put 'libds'; + put ')/*/STORE SOURCE*/;'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=checklock.sas'; + put ',msg=Aborting with syscc=&syscc on entry.'; + put ')'; + put '%mp_abort(iftrue= ("&libds"="0")'; + put ',mac=&sysmacroname'; + put ',msg=%str(libds not provided)'; + put ')'; + put '%local msg lib ds;'; + put '%let lib=%upcase(%scan(&libds,1,.));'; + put '%let ds=%upcase(%scan(&libds,2,.));'; + put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; + put '%if %scan(&libds,2,-)=FC %then %do;'; + put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=checklock.sas'; + put ',msg=%superq(msg)'; + put ')'; + put 'data _null_;'; + put 'putlog "Checking engine & member type";'; + put 'run;'; + put '%local engine memtype;'; + put '%let memtype=%mf_getattrc(&libds,MTYPE);'; + put '%let engine=%mf_getattrc(&libds,ENGINE);'; + put '%if &engine ne V9 and &engine ne BASE %then %do;'; + put 'data _null_;'; + put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; + put 'putlog "SAS lock check will not be performed";'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &memtype ne DATA %then %do;'; + put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'putlog "Engine = &engine, memtype=&memtype";'; + put 'putlog "Attempting lock statement";'; + put 'run;'; + put 'lock &libds;'; + put '%local abortme;'; + put '%let abortme=0;'; + put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; + put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; + put '%put %str(ERR)OR: &sysmacroname: &msg;'; + put '%let abortme=1;'; + put '%end;'; + put 'lock &libds clear;'; + put '%mp_abort(iftrue= (&abortme=1)'; + put ',mac=&sysmacroname'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mp_lockfilecheck;'; + put '%macro mp_lockanytable('; + put 'action'; + put ',lib= WORK'; + put ',ds=0'; + put ',ref='; + put ',ctl_ds=0'; + put ',loops=25'; + put ',loop_secs=1'; + put ');'; + put 'data _null_;'; + put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; + put 'set sashelp.vmacro;'; + put 'where scope="&sysmacroname";'; + put 'put name ''='' value;'; + put 'run;'; + put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(dataset was not provided)'; + put ')'; + put '%mp_abort(iftrue= (&ctl_ds=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Control dataset was not provided)'; + put ')'; + put '/* set up lib & mac vars */'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let action=%upcase(&action);'; + put '%local user x trans msg abortme;'; + put '%let user=%mf_getuser();'; + put '%let abortme=0;'; + put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid action (&action) provided)'; + put ')'; + put '/* if an err condition exists, exit before we even begin */'; + put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; + put ',mac=&sysmacroname'; + put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; + put ')'; + put '/* do not bother locking work tables (else may affect all WORK libraries) */'; + put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; + put '%put NOTE: WORK libraries will not be registered in the locking system.;'; + put '%return;'; + put '%end;'; + put '/* do not proceed if no observations can be processed */'; + put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(cannot continue when options obs = 0)'; + put ')'; + put '%if &ACTION=LOCK %then %do;'; + put '/* abort if a SAS lock is already in place, or cannot be applied */'; + put '%mp_lockfilecheck(&lib..&ds)'; + put '/* next, check there is a record for this table */'; + put '%local record_exists_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: record_exists_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &record_exists_check=0 %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: adding record to lock table..";'; + put 'run;'; + put 'data ;'; + put 'if 0 then set &ctl_ds;'; + put 'LOCK_LIB ="&lib";'; + put 'LOCK_DS="&ds";'; + put 'LOCK_STATUS_CD=''LOCKED'';'; + put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put 'LOCK_USER_NM="&user";'; + put 'LOCK_PID="&sysjobid";'; + put 'LOCK_REF="&ref";'; + put 'output;stop;'; + put 'run;'; + put '%let trans=&syslast;'; + put 'proc append base=&ctl_ds data=&trans;'; + put 'run;'; + put '%end;'; + put '/* if record does exist, perform lock attempts */'; + put '%else %do x=1 %to &loops;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; + put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''LOCKED'''; + put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '/**'; + put '* NOTE - occasionally SQL server will return an err code (deadlocked'; + put '* transaction). If so, ignore it, keep calm, and carry on..'; + put '*/'; + put '%if &syscc>0 %then %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; + put 'putlog "Resetting err conditions and re-attempting.";'; + put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%let syscc=0;'; + put '%let sqlrc=0;'; + put '%end;'; + put '/* now check if the record was successfully updated */'; + put '%local success_check;'; + put 'proc sql noprint;'; + put 'select count(*) into: success_check from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; + put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; + put 'quit;'; + put '%if &success_check=0 %then %do;'; + put '%if &x < &loops %then %do;'; + put '/* pause before next check */'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; + put 'putlog "%sysfunc(sleep(&loop_inc)) seconds.. ";'; + put 'putlog "NOTE- (iteration &x of &loops)";'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; + put 'Please ask your administrator to investigate!;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data _null_;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; + put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; + put 'putlog ''NOTE-'' / ''NOTE-'';'; + put 'run;'; + put '%if &syscc>0 %then %do;'; + put '%put setting syscc(&syscc) back to 0;'; + put '%let syscc=0;'; + put '%end;'; + put '%let x=&loops; /* no more iterations needed */'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %if &ACTION=UNLOCK %then %do;'; + put '%local status;'; + put 'proc sql noprint;'; + put 'select LOCK_STATUS_CD into: status from &ctl_ds'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; + put '%if &status=LOCKED %then %do;'; + put 'data _null_;'; + put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; + put 'run;'; + put 'proc sql;'; + put 'update &ctl_ds'; + put 'set LOCK_STATUS_CD=''UNLOCKED'''; + put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put ', LOCK_USER_NM="&user"'; + put ', LOCK_PID="&sysjobid"'; + put ', LOCK_REF="&ref"'; + put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; + put 'quit;'; + put '%end;'; + put '%else %if &status=UNLOCKED %then %do;'; + put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; + put '%let abortme=1;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%let msg=lock_anytable given unsupported action (&action);'; + put '%let abortme=1;'; + put '%end;'; + put '/* catch errs - mp_abort must be called outside of a logic block */'; + put '%mp_abort(iftrue=(&abortme=1),'; + put 'msg=%superq(msg),'; + put 'mac=&sysmacroname'; + put ')'; + put '%exit_macro:'; + put 'data _null_;'; + put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; + put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; + put 'run;'; + put '%mend mp_lockanytable;'; + put '%macro mp_retainedkey('; + put 'base_lib=WORK'; + put ',base_dsn=BASETABLE'; + put ',append_lib=WORK'; + put ',append_dsn=APPENDTABLE'; + put ',retained_key=DEFAULT_RK'; + put ',business_key= PK1 PK2'; + put ',check_uniqueness=NO'; + put ',maxkeytable=0'; + put ',locktable=0'; + put ',outds=WORK.APPEND'; + put ',filter_str='; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; + put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; + put '%let base_libds=%upcase(&base_lib..&base_dsn);'; + put '%let app_libds=%upcase(&append_lib..&append_dsn);'; + put '%let tempds1=%mf_getuniquename();'; + put '%let tempds2=%mf_getuniquename();'; + put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; + put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; + put '/* validation checks */'; + put '%let iserr=0;'; + put '%if &syscc>0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(SYSCC=&syscc on macro entry);'; + put '%end;'; + put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; + put '%end;'; + put '%else %if %length(&business_key)=0 %then %do;'; + put '%let iserr=1;'; + put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; + put '%end;'; + put '%do x=1 %to %sysfunc(countw(&business_key));'; + put '/* check business key values exist */'; + put '%let key_field=%scan(&business_key,&x,%str( ));'; + put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &app_libds!;'; + put '%goto err;'; + put '%end;'; + put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; + put '%let iserr=1;'; + put '%let msg=Business key (&key_field) not found on &base_libds!;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put '%err:'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put 'proc sql noprint;'; + put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; + put '/**'; + put '* get base table RK and bus field values for lookup'; + put '*/'; + put 'proc sql noprint;'; + put 'create table &tempds1 as'; + put 'select distinct &comma_pk,&retained_key'; + put 'from &base_libds &filter_str'; + put 'order by &comma_pk,&retained_key;'; + put '%if &check_uniqueness=YES %then %do;'; + put 'select count(*) into:checknobs'; + put 'from (select distinct &comma_pk from &app_libds);'; + put 'select count(*) into: appnobs from &app_libds; /* might be view */'; + put '%if &checknobs ne &appnobs %then %do;'; + put '%let msg=Source table &app_libds is not unique on (&business_key);'; + put '%let iserr=1;'; + put '%end;'; + put '%end;'; + put '%if &iserr=1 %then %do;'; + put '/* err case so first perform an unlock of the base table before exiting */'; + put '%mp_lockanytable('; + put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; + put '%if %mf_existvar(&app_libds,&retained_key)'; + put '%then %let dropvar=(drop=&retained_key);'; + put '/* prepare interim table with retained key populated for matching keys */'; + put 'proc sql noprint;'; + put 'create table &tempds2 as'; + put 'select b.&retained_key, a.*'; + put 'from &app_libds &dropvar a'; + put 'left join &tempds1 b'; + put 'on 1'; + put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; + put '%let idx_val=%scan(&business_key,&idx_pk);'; + put 'and a.&idx_val=b.&idx_val'; + put '%end;'; + put 'order by &retained_key;'; + put '/* identify the number of entries without retained keys (new records) */'; + put 'select count(*) into: newkey_cnt'; + put 'from &tempds2'; + put 'where missing(&retained_key);'; + put 'quit;'; + put '/**'; + put '* Update maxkey table if link provided'; + put '*/'; + put '%if &maxkeytable ne 0 %then %do;'; + put 'proc sql noprint;'; + put 'select count(*) into: check from &maxkeytable'; + put 'where upcase(keytable)="&base_libds";'; + put '%mp_lockanytable(LOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with mp_retainedkey'; + put ',ctl_ds=&locktable'; + put ')'; + put 'proc sql;'; + put '%if &check=0 %then %do;'; + put 'insert into &maxkeytable'; + put 'set keytable="&base_libds"'; + put ',keycolumn="&retained_key"'; + put ',max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; + put '%end;'; + put '%else %do;'; + put 'update &maxkeytable'; + put 'set max_key=%eval(&maxkey+&newkey_cnt)'; + put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; + put 'where keytable="&base_libds";'; + put '%end;'; + put '%mp_lockanytable(UNLOCK'; + put ',lib=%scan(&maxkeytable,1,.)'; + put ',ds=%scan(&maxkeytable,2,.)'; + put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; + put ',ctl_ds=&locktable'; + put ')'; + put '%end;'; + put '/* fill in the missing retained key values */'; + put '%let tempvar=%mf_getuniquename();'; + put 'data &outds(drop=&tempvar);'; + put 'retain &tempvar %eval(&maxkey+1);'; + put 'set &tempds2;'; + put 'if &retained_key =. then &retained_key=&tempvar;'; + put '&tempvar=&tempvar+1;'; + put 'run;'; + put '%mend mp_retainedkey;'; + put '%macro mp_filterstore(libds=,'; + put 'queryds=work.filterquery,'; + put 'filter_summary=PERM.FILTER_SUMMARY,'; + put 'filter_detail=PERM.FILTER_DETAIL,'; + put 'lock_table=PERM.LOCK_TABLE,'; + put 'maxkeytable=PERM.MAXKEYTABLE,'; + put 'outresult=work.result,'; + put 'outquery=work.query,'; + put 'mdebug=1'; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%local ds0 ds1 ds2 ds3 ds4 filter_hash orig_libds;'; + put '%let libds=%upcase(&libds);'; + put '%let orig_libds=&libds;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=mp_filterstore'; + put ',msg=%str(syscc=&syscc on macro entry)'; + put ')'; + put '%mp_abort(iftrue= (%mf_islibds(&filter_summary)=0)'; + put ',mac=mp_filterstore'; + put ',msg=%str(Invalid filter_summary value: &filter_summary)'; + put ')'; + put '%mp_abort(iftrue= (%mf_islibds(&filter_detail)=0)'; + put ',mac=mp_filterstore'; + put ',msg=%str(Invalid filter_detail value: &filter_detail)'; + put ')'; + put '%mp_abort(iftrue= (%mf_islibds(&lock_table)=0)'; + put ',mac=mp_filterstore'; + put ',msg=%str(Invalid lock_table value: &lock_table)'; + put ')'; + put '/**'; + put '* validate query'; + put '* use format catalog export, if a format'; + put '*/'; + put '%if "%substr(&libds,%length(&libds)-2,3)"="-FC" %then %do;'; + put '%let libds=%scan(&libds,1,-); /* chop off -FC extension */'; + put '%let ds0=%mf_getuniquename(prefix=fmtds_);'; + put '%let libds=&ds0;'; + put '/*'; + put 'There is no need to export the entire format catalog here - the validations'; + put 'are done against the data model, not the data values. So we can simply'; + put 'hardcode the structure based on the cntlout dataset.'; + put '*/'; + put '%mddl_sas_cntlout(libds=&ds0)'; + put '%end;'; + put '%mp_filtercheck(&queryds,targetds=&libds,abort=YES)'; + put '/* hash the result */'; + put '%let ds1=%mf_getuniquename(prefix=hashds);'; + put '%mp_hashdataset(&queryds,outds=&ds1,salt=&orig_libds)'; + put '%let filter_hash=%upcase(%mf_getvalue(&ds1,hashkey));'; + put '%if &mdebug=1 %then %do;'; + put 'data _null_;'; + put 'putlog "filter_hash=&filter_hash";'; + put 'set &ds1;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put '/* check if data already exists for this hash */'; + put 'data &outresult;'; + put 'set &filter_summary;'; + put 'where filter_hash="&filter_hash";'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=mp_filterstore'; + put ',msg=%str(syscc=&syscc after hash check)'; + put ')'; + put '%mp_abort(iftrue= ("&filter_hash "=" ")'; + put ',mac=mp_filterstore'; + put ',msg=%str(problem with filter_hash generation)'; + put ')'; + put '%if %mf_nobs(&outresult)=0 %then %do;'; + put '/* first update summary table */'; + put '%let ds3=%mf_getuniquename(prefix=filtersum);'; + put 'data work.&ds3;'; + put 'if 0 then set &filter_summary;'; + put 'filter_table="&orig_libds";'; + put 'filter_hash="&filter_hash";'; + put 'PROCESSED_DTTM=%sysfunc(datetime());'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=%scan(&filter_summary,1,.)'; + put ',ds=%scan(&filter_summary,2,.)'; + put ',ref=MP_FILTERSTORE summary update - &filter_hash'; + put ',ctl_ds=&lock_table'; + put ')'; + put '%let ds4=%mf_getuniquename(prefix=filtersumappend);'; + put '%mp_retainedkey('; + put 'base_lib=%scan(&filter_summary,1,.)'; + put ',base_dsn=%scan(&filter_summary,2,.)'; + put ',append_lib=work'; + put ',append_dsn=&ds3'; + put ',retained_key=filter_rk'; + put ',business_key=filter_hash'; + put ',maxkeytable=&maxkeytable'; + put ',locktable=&lock_table'; + put ',outds=work.&ds4'; + put ')'; + put 'proc append base=&filter_summary data=&ds4;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=%scan(&filter_summary,1,.)'; + put ',ds=%scan(&filter_summary,2,.)'; + put ',ref=MP_FILTERSTORE summary update - &filter_hash'; + put ',ctl_ds=&lock_table'; + put ')'; + put '%if &syscc ne 0 %then %do;'; + put 'data _null_;'; + put 'set &ds4;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%goto err;'; + put '%end;'; + put 'data &outresult;'; + put 'set &filter_summary;'; + put 'where filter_hash="&filter_hash";'; + put 'run;'; + put '/* Next, update detail table */'; + put '%let ds2=%mf_getuniquename(prefix=filterdetail);'; + put 'data &ds2;'; + put 'if 0 then set &filter_detail;'; + put 'set &queryds;'; + put 'format filter_hash $hex32. filter_line 8.;'; + put 'filter_hash="&filter_hash";'; + put 'filter_line=_n_;'; + put 'PROCESSED_DTTM=%sysfunc(datetime());'; + put 'run;'; + put '%mp_lockanytable(LOCK,'; + put 'lib=%scan(&filter_detail,1,.)'; + put ',ds=%scan(&filter_detail,2,.)'; + put ',ref=MP_FILTERSTORE update - &filter_hash'; + put ',ctl_ds=&lock_table'; + put ')'; + put 'proc append base=&filter_detail data=&ds2;'; + put 'run;'; + put '%mp_lockanytable(UNLOCK,'; + put 'lib=%scan(&filter_detail,1,.)'; + put ',ds=%scan(&filter_detail,2,.)'; + put ',ref=MP_FILTERSTORE detail update &filter_hash'; + put ',ctl_ds=&lock_table'; + put ')'; + put '%if &syscc ne 0 %then %do;'; + put 'data _null_;'; + put 'set &ds2;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%goto err;'; + put '%end;'; + put '%end;'; + put 'proc sort data=&filter_detail(where=(filter_hash="&filter_hash")) out=&outquery;'; + put 'by filter_line;'; + put 'run;'; + put '%err:'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=mp_filterstore'; + put ',msg=%str(syscc=&syscc on macro exit)'; + put ')'; + put '%mend mp_filterstore;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Validates a filter clause before it gets hashified, returns the RK'; + put '@details Used to generate a FILTER_RK from an input query dataset.'; + put 'Raw values are stored in dc.mpe_filtersource and the meta values are stored'; + put 'in dc.mpe_filteranytable'; + put '

Service Inputs

'; + put '
IWANT
'; + put '|FILTER_TABLE:$41.|'; + put '|---|'; + put '|DC258467.MPE_X_TEST|'; + put '
FILTERQUERY
'; + put '|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$32767|'; + put '|---|---|---|---|---|---|'; + put '|AND|AND|1|SOME_BESTNUM|>|1|'; + put '|AND|AND|1|SOME_TIME|=|77333|'; + put '

Service Outputs

'; + put '
result
'; + put '@li FILTER_HASH'; + put '@li FILTER_RK'; + put '@li FILTER_TABLE'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li mf_getvalue.sas'; + put '@li mp_filterstore.sas'; + put '@li removecolsfromwork.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let ds=%upcase(%mf_getvalue(work.iwant,filter_table));'; + put '%dc_assignlib(WRITE,%scan(&ds,1,.))'; + put '%mp_filterstore('; + put 'libds=&ds,'; + put 'queryds=work.filterquery,'; + put 'filter_summary=&dc_libref..mpe_filteranytable,'; + put 'filter_detail=&dc_libref..mpe_filtersource,'; + put 'lock_table=&dc_libref..mpe_lockanytable,'; + put 'maxkeytable=&dc_libref..mpe_maxkeyvalues,'; + put 'outresult=work.result,'; + put 'outquery=work.query, /* not used */'; + put 'mdebug=1'; + put ')'; + put '%removecolsfromwork(___TMP___MD5)'; + put 'proc sql;'; + put 'alter table work.result drop PROCESSED_DTTM;'; + put '%webout(OPEN)'; + put '%webout(OBJ,result)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=viewdata; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mpe_columnlevelsecurity(tgtlib,tgtds,inds'; + put ',mode=VIEW'; + put ',groupds=work.groups'; + put ',clsds=work.clsview'; + put ',outds=CLSVIEW'; + put ',outmeta=work.cls_rules'; + put ');'; + put '%local col_list is_admin;'; + put '/* filter for the appropriate rules */'; + put 'proc sql;'; + put 'create table &outmeta as'; + put 'select CLS_VARIABLE_NM,'; + put 'min(case when CLS_HIDE=1 then 1 else 0 end) as CLS_HIDE'; + put 'from &clsds'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and CLS_SCOPE in ("&mode",''ALL'')'; + put 'and CLS_ACTIVE=1'; + put '%if &mode=VIEW %then %do;'; + put 'and CLS_HIDE ne 1'; + put '%end;'; + put 'and upcase(CLS_GROUP) in (select upcase(groupname) from &groupds)'; + put 'and CLS_LIBREF="%upcase(&tgtlib)"'; + put 'and CLS_TABLE="%upcase(&tgtds)"'; + put 'group by CLS_VARIABLE_NM;'; + put '%let is_admin=0;'; + put 'proc sql;'; + put 'select count(*) into: is_admin from &groupds where groupname="&MPEADMINS";'; + put '%put &sysmacroname: &=is_admin;'; + put '%if %mf_nobs(work.cls_rules) = 0 or &is_admin>0 %then %do;'; + put '%put &sysmacroname: no CLS rules to apply;'; + put '%put &=is_admin;'; + put '/* copy using append for speed */'; + put 'data &outds;'; + put 'set &inds;'; + put 'stop;'; + put 'run;'; + put 'proc append base=&outds data=&inds;'; + put 'run;'; + put '/* ensure CLS_RULES is empty in case of admin */'; + put 'data &outmeta;'; + put 'set &outmeta;'; + put 'stop;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%else %if &mode=VIEW %then %do;'; + put '/* just send back the relevant columns */'; + put '%let col_list=0;'; + put 'proc sql noprint;'; + put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; + put 'where CLS_HIDE=0;'; + put '%if &col_list=0 %then %do;'; + put '/*'; + put 'We have columns that are set to CLS_HIDE=1 but we do not have any to'; + put 'explicitly show. Therefore we assume all columns are to be shown except'; + put 'those that are explicitly hidden.'; + put '*/'; + put 'proc sql noprint;'; + put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; + put 'where CLS_HIDE=1;'; + put 'data &outds;'; + put 'set &inds;'; + put 'drop &col_list;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds;'; + put 'set &inds;'; + put 'keep &col_list;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %if &mode=EDIT %then %do;'; + put '/*'; + put 'In this case we pass all columns and the frontend will filter out the'; + put 'ones that are not allowed to be edited.'; + put '*/'; + put 'data &outds;'; + put 'set &inds;'; + put 'stop;'; + put 'run;'; + put 'proc append base=&outds data=&inds;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: invalid mode - &mode!;'; + put '%abort;'; + put '%end;'; + put '%mend mpe_columnlevelsecurity;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mf_getattrn('; + put 'libds'; + put ',attr'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid rc;'; + put '%let dsid=%sysfunc(open(&libds,is));'; + put '%if &dsid = 0 %then %do;'; + put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; + put '%put %sysfunc(sysmsg());'; + put '-1'; + put '%end;'; + put '%else %do;'; + put '%sysfunc(attrn(&dsid,&attr))'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%mend mf_getattrn;'; + put '%macro mf_nobs(libds'; + put ')/*/STORE SOURCE*/;'; + put '%mf_getattrn(&libds,NLOBS)'; + put '%mend mf_nobs;'; + put '%macro mp_filtergenerate(inds,outref=filter);'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc - on macro entry)'; + put ')'; + put 'filename &outref temp;'; + put '%if %mf_nobs(&inds)=0 %then %do;'; + put '/* ensure we have a default filter */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'proc sort data=&inds;'; + put 'by SUBGROUP_ID;'; + put 'run;'; + put 'data _null_;'; + put 'file &outref lrecl=32800;'; + put 'set &inds end=last;'; + put 'by SUBGROUP_ID;'; + put 'if _n_=1 then put ''(('';'; + put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; + put 'else put +2 SUBGROUP_LOGIC;'; + put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; + put 'if last.SUBGROUP_ID then put '')''@;'; + put 'if last then put '')'';'; + put 'run;'; + put '%end;'; + put '%mend mp_filtergenerate;'; + put '%macro mpe_filtermaster(mode,libds,'; + put 'dclib=,'; + put 'filter_rk=-1,'; + put 'outref=0,'; + put 'outds=work.query'; + put ');'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%let mode=%upcase(&mode);'; + put '%let libds=%upcase(&libds);'; + put '%mp_abort(iftrue= ('; + put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; + put ')'; + put ',mac=&sysmacroname'; + put ',msg=%str(Invalid MODE: &mode)'; + put ')'; + put '%mp_abort(iftrue= (&outref = 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Please provide a fileref!)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put 'filename &outref temp;'; + put '/* ensure outputs exist */'; + put 'data _null_;'; + put 'file &outref;'; + put 'put '' '';'; + put 'run;'; + put 'data &outds;'; + put 'set &dclib..mpe_filtersource;'; + put 'stop;'; + put 'run;'; + put '/**'; + put '* Deal with FILTER_RK first'; + put '*/'; + put '%if &filter_rk gt 0 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''( ''@@;'; + put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; + put 'call symputx(''filter_hash'',filter_hash,''l'');'; + put 'run;'; + put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; + put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; + put 'by filter_line;'; + put 'run;'; + put '%mp_filtergenerate(&outds,outref=&outref)'; + put '%end;'; + put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; + put '%local varfrom varto;'; + put '%let varfrom=0;'; + put 'proc sql;'; + put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; + put 'from &dclib..MPE_TABLES'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; + put '%put &=varfrom;'; + put '%put &=varto;'; + put '/**'; + put '* Check if the date variables were mentioned in the query'; + put '* This is a trigger for serving a historical view instead of current'; + put '* we skip this part when checking an ULOAD as there are no date vars'; + put '*/'; + put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; + put '%local validityvars;'; + put 'proc sql;'; + put 'select count(*) into: validityvars'; + put 'from &outds'; + put 'where variable_nm in ("&varfrom","&varto");'; + put '%if &validityvars=0 %then %do;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'length filter_text $32767;'; + put 'varfrom=symget(''varfrom'');'; + put 'varto=symget(''varto'');'; + put 'filter_text=catx('' '','; + put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; + put ');'; + put 'if &filter_rk > 0 then put ''AND '' filter_text;'; + put 'else put filter_text;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '/**'; + put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; + put '*/'; + put '/* first determine users group membership */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; + put '%local admin_check;'; + put 'proc sql;'; + put 'select count(*) into: admin_check'; + put 'from work.groups'; + put 'where groupname="&mpeadmins";'; + put '%put &sysmacroname: &=admin_check &=mpeadmins;'; + put '%if &admin_check=0 %then %do;'; + put '%local scopeval;'; + put '%if &mode=DLOAD %then %let scopeval=VIEW;'; + put '%if &mode=ULOAD %then %let scopeval=EDIT;'; + put '%else %let scopeval=&mode;'; + put '/* extract relevant rows */'; + put '%local rlsds;'; + put '%let rlsds=%mf_getuniquename();'; + put 'proc sql;'; + put 'create table work.&rlsds as'; + put 'select rls_group,'; + put 'rls_group_logic as group_logic,'; + put 'rls_subgroup_logic as subgroup_logic,'; + put 'rls_subgroup_id as subgroup_id,'; + put 'rls_variable_nm as variable_nm,'; + put 'rls_operator_nm as operator_nm,'; + put 'rls_raw_value as raw_value'; + put 'from &mpelib..mpe_row_level_security'; + put 'where &dc_dttmtfmt. lt tx_to'; + put 'and rls_scope in ("&scopeval",''ALL'')'; + put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; + put 'and rls_libref="%scan(&libds,1,.)"'; + put 'and rls_table="%scan(&libds,2,.)"'; + put 'and rls_active=1'; + put 'order by rls_group,rls_subgroup_id;'; + put '%if &sqlobs>0 %then %do;'; + put '/* check if we currently have filter or not */'; + put 'data ;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put 'data _null_;'; + put 'set &syslast;'; + put 'file &outref mod;'; + put 'if newfilter=1 then put ''('';'; + put 'else put ''AND ('';'; + put 'run;'; + put '/* loop through and apply filters for each group membership */'; + put '%local fref ds;'; + put '%let fref=%mf_getuniquefileref();'; + put '%let ds=%mf_getuniquename();'; + put 'proc sql noprint;'; + put 'select distinct rls_group into : group1 -'; + put 'from work.&rlsds;'; + put '%do i=1 %to &sqlobs;'; + put 'data work.&ds;'; + put 'set work.&rlsds;'; + put 'where rls_group="&&group&i";'; + put 'drop rls_group;'; + put 'run;'; + put '%mp_filtergenerate(&ds,outref=&fref)'; + put 'data _null_;'; + put 'infile &fref;'; + put 'file &outref mod;'; + put 'input;'; + put 'if &i>1 and _n_=1 then put '' OR '';'; + put 'put _infile_;'; + put 'run;'; + put '%end;'; + put 'data _null_;'; + put 'file &outref mod;'; + put 'put '')'';'; + put 'run;'; + put '%end; /* &sqlobs>0 */'; + put '%else %do;'; + put '%put &sysmacroname: no matching groups;'; + put 'data _null_;'; + put 'set work.groups;'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc>0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Row Level Security Generation Error)'; + put ')'; + put '%end; /* &admin_check=0 */'; + put '%put leaving &sysmacroname with the following query:;'; + put '%local empty;'; + put '%let empty=0;'; + put 'data _null_;'; + put 'infile &outref end=eof;'; + put 'input;'; + put 'putlog _infile_;'; + put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; + put 'put ''1=1'';'; + put 'call symputx(''empty'',1,''l'');'; + put 'end;'; + put 'run;'; + put '%if &empty=1 %then %do;'; + put 'data _null_;'; + put 'file &outref;'; + put 'put ''1=1'';'; + put 'run;'; + put '%end;'; + put '%mend mpe_filtermaster;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_gettables('; + put 'uri='; + put ',outds=work.mm_gettables'; + put ',getauth=YES'; + put ')/*/STORE SOURCE*/;'; + put 'data &outds;'; + put 'length uri serveruri conn_uri domainuri libname ServerContext AuthDomain'; + put 'path_schema usingpkguri type tableuri $256 id $17'; + put 'libdesc $200 libref engine $8 IsDBMSLibname IsPreassigned $1'; + put 'tablename $50 /* metadata table names can be longer than $32 */'; + put ';'; + put 'keep libname libdesc libref engine ServerContext path_schema AuthDomain'; + put 'tableuri tablename IsPreassigned IsDBMSLibname id;'; + put 'call missing (of _all_);'; + put 'uri=symget(''uri'');'; + put 'rc= metadata_getattr(uri, "Name", libname);'; + put 'if rc <0 then do;'; + put 'put ''The library is not defined in this metadata repository.'';'; + put 'stop;'; + put 'end;'; + put 'rc= metadata_getattr(uri, "Desc", libdesc);'; + put 'rc= metadata_getattr(uri, "Libref", libref);'; + put 'rc= metadata_getattr(uri, "Engine", engine);'; + put 'rc= metadata_getattr(uri, "IsDBMSLibname", IsDBMSLibname);'; + put 'rc= metadata_getattr(uri, "IsPreassigned", IsPreassigned);'; + put 'rc= metadata_getattr(uri, "Id", Id);'; + put '/*** Get associated ServerContext ***/'; + put 'rc= metadata_getnasn(uri, "DeployedComponents", 1, serveruri);'; + put 'if rc > 0 then rc2= metadata_getattr(serveruri, "Name", ServerContext);'; + put 'else ServerContext='''';'; + put '/*** If the library is a DBMS library, get the Authentication Domain'; + put 'associated with the DBMS connection credentials ***/'; + put 'if IsDBMSLibname="1" and "&getauth"=''YES'' then do;'; + put 'rc= metadata_getnasn(uri, "LibraryConnection", 1, conn_uri);'; + put 'if rc>0 then do;'; + put 'rc2= metadata_getnasn(conn_uri, "Domain", 1, domainuri);'; + put 'if rc2>0 then rc3= metadata_getattr(domainuri, "Name", AuthDomain);'; + put 'end;'; + put 'end;'; + put '/*** Get the path/database schema for this library ***/'; + put 'rc=metadata_getnasn(uri, "UsingPackages", 1, usingpkguri);'; + put 'if rc>0 then do;'; + put 'rc=metadata_resolve(usingpkguri,type,id);'; + put 'if type=''Directory'' then'; + put 'rc=metadata_getattr(usingpkguri, "DirectoryName", path_schema);'; + put 'else if type=''DatabaseSchema'' then'; + put 'rc=metadata_getattr(usingpkguri, "Name", path_schema);'; + put 'else path_schema="unknown";'; + put 'end;'; + put '/*** Get the tables associated with this library ***/'; + put '/*** If DBMS, tables are associated with DatabaseSchema ***/'; + put 'if type=''DatabaseSchema'' then do;'; + put 't=1;'; + put 'ntab=metadata_getnasn(usingpkguri, "Tables", t, tableuri);'; + put 'if ntab>0 then do t=1 to ntab;'; + put 'tableuri='''';'; + put 'tablename='''';'; + put 'ntab=metadata_getnasn(usingpkguri, "Tables", t, tableuri);'; + put 'tabrc= metadata_getattr(tableuri, "Name", tablename);'; + put 'output;'; + put 'end;'; + put 'else put ''Library '' libname '' has no tables registered'';'; + put 'end;'; + put 'else if type in (''Directory'',''SASLibrary'') then do;'; + put 't=1;'; + put 'ntab=metadata_getnasn(uri, "Tables", t, tableuri);'; + put 'if ntab>0 then do t=1 to ntab;'; + put 'tableuri='''';'; + put 'tablename='''';'; + put 'ntab=metadata_getnasn(uri, "Tables", t, tableuri);'; + put 'tabrc= metadata_getattr(tableuri, "Name", tablename);'; + put 'output;'; + put 'end;'; + put 'else put ''Library '' libname '' has no tables registered'';'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by tablename tableuri;'; + put 'run;'; + put '%mend mm_gettables;'; + put '%macro mm_getcols('; + put 'tableuri='; + put ',outds=work.mm_getcols'; + put ')/*/STORE SOURCE*/;'; + put 'data &outds;'; + put 'keep col: SAS:;'; + put 'length assoc uri coluri colname coldesc SASColumnType SASFormat SASInformat'; + put 'SASPrecision SASColumnLength $256;'; + put 'call missing (of _all_);'; + put 'uri=symget(''tableuri'');'; + put 'n=1;'; + put 'do while (metadata_getnasn(uri,''Columns'',n,coluri)>0);'; + put 'rc3=metadata_getattr(coluri,"Name",colname);'; + put 'rc3=metadata_getattr(coluri,"Desc",coldesc);'; + put 'rc4=metadata_getattr(coluri,"SASColumnType",SASColumnType);'; + put 'rc5=metadata_getattr(coluri,"SASFormat",SASFormat);'; + put 'rc6=metadata_getattr(coluri,"SASInformat",SASInformat);'; + put 'rc7=metadata_getattr(coluri,"SASPrecision",SASPrecision);'; + put 'rc8=metadata_getattr(coluri,"SASColumnLength",SASColumnLength);'; + put 'output;'; + put 'call missing(colname,coldesc,SASColumnType,SASFormat,SASInformat'; + put ',SASPrecision,SASColumnLength);'; + put 'n+1;'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by colname;'; + put 'run;'; + put '%mend mm_getcols;'; + put '%macro mm_createdataset(libds=,tableuri=,outds=work.mm_createdataset,mDebug=0);'; + put '%local dbg errorcheck tempds1 tempds2 tempds3;'; + put '%if &mDebug=0 %then %let dbg=*;'; + put '%let errorcheck=1;'; + put '%if %index(&libds,.)>0 %then %do;'; + put '/* get lib uri */'; + put 'data;run;%let tempds1=&syslast;'; + put '%mm_getlibs(outds=&tempds1)'; + put 'data _null_;'; + put 'set &tempds1;'; + put 'if upcase(libraryref)="%upcase(%scan(&libds,1,.))";'; + put 'call symputx(''liburi'',LibraryId,''l'');'; + put 'run;'; + put '/* get ds uri */'; + put 'data;run;%let tempds2=&syslast;'; + put '%mm_gettables(uri=&liburi,outds=&tempds2)'; + put 'data _null_;'; + put 'set &tempds2;'; + put 'where upcase(tablename)="%upcase(%scan(&libds,2,.))";'; + put '&dbg putlog tableuri=;'; + put 'call symputx(''tableuri'',tableuri);'; + put 'run;'; + put '%end;'; + put 'data;run;'; + put '%let tempds3=&syslast;'; + put '%mm_getcols(tableuri=&tableuri,outds=&tempds3)'; + put '%if %mf_nobs(&tempds3)=0 %then %do;'; + put '%put &libds (&tableuri) has no columns defined!!;'; + put 'data &outds;'; + put 'run;'; + put '%return;'; + put '%end;'; + put 'data _null_;'; + put 'set &tempds3 end=last;'; + put 'if _n_=1 then call execute(''data &outds;'');'; + put 'length attrib $32767;'; + put 'if SAScolumntype=''C'' then type=''$'';'; + put 'attrib=''attrib ''!!cats(colname)!!'' length=''!!cats(type,SASColumnLength,''.'');'; + put 'if not missing(sasformat) then fmt='' format=''!!cats(sasformat);'; + put 'if not missing(sasinformat) then infmt='' informat=''!!cats(sasinformat);'; + put 'if not missing(coldesc) then desc='' label=''!!quote(cats(coldesc));'; + put 'attrib=trim(attrib)!!fmt!!infmt!!desc!!'';'';'; + put 'call execute(attrib);'; + put 'if last then call execute(''call missing(of _all_);stop;run;'');'; + put 'run;'; + put '%mend mm_createdataset;'; + put '%macro dc_createdataset(libds=mm_getlibs,outds=viewdata);'; + put '%mm_createdataset(libds=&libds,outds=viewdata)'; + put '%mend dc_createdataset;'; + put '%macro mm_gettableid('; + put 'libref='; + put ',ds='; + put ',outds=work.mm_gettableid'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put 'data &outds;'; + put 'length uri usingpkguri id type tableuri tablename tmpuri $256;'; + put 'call missing(of _all_);'; + put 'keep tableuri tablename;'; + put 'n=1;'; + put 'rc=0;'; + put 'if metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",n,uri)<1 then do;'; + put 'put "Library &libref not found";'; + put 'stop;'; + put 'end;'; + put '&mD.putlog "uri is " uri;'; + put 'if metadata_getnasn(uri, "UsingPackages", 1, usingpkguri)>0 then do;'; + put 'rc=metadata_resolve(usingpkguri,type,id);'; + put '&mD.putlog "Type is " type;'; + put 'end;'; + put 'if type=''DatabaseSchema'' then tmpuri=usingpkguri;'; + put 'else tmpuri=uri;'; + put 't=1;'; + put 'do while(metadata_getnasn(tmpuri, "Tables", t, tableuri)>0);'; + put 't+1;'; + put 'rc= metadata_getattr(tableuri, "Name", tablename);'; + put '&mD.putlog "Table is " tablename;'; + put 'if upcase(tablename)="%upcase(&ds)" then do;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%mend mm_gettableid;'; + put '%macro dc_gettableid(libref='; + put ',ds='; + put ',outds=);'; + put '%mm_gettableid(libref=&libref,ds=&ds,outds=&outds)'; + put '%if %mf_nobs(&outds)=0 %then %do;'; + put 'data &outds;'; + put 'tableuri='''';'; + put 'tablename="&ds";'; + put 'run;'; + put '%end;'; + put '%mend dc_gettableid;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '%macro mf_getvarcount(libds,typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid nvars rc outcnt x;'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%let nvars=.;'; + put '%let outcnt=0;'; + put '%let typefilter=%upcase(&typefilter);'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &typefilter=A %then %let outcnt=&nvars;'; + put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; + put '/* increment based on variable type */'; + put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; + put '%let outcnt=%eval(&outcnt+1);'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put unable to open &libds (rc=&dsid);'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '&outcnt'; + put '%mend mf_getvarcount;'; + put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mf_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%abort;'; + put '%mend mf_abort;'; + put '/** @endcond */'; + put '%macro mf_verifymacvars('; + put 'verifyVars /* list of macro variable NAMES */'; + put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; + put ',mAbort=SOFT'; + put ')/*/STORE SOURCE*/;'; + put '%local verifyIterator verifyVar abortmsg;'; + put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; + put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; + put '%if not %symexist(&verifyvar) %then %do;'; + put '%let abortmsg= Variable &verifyVar is MISSING;'; + put '%goto exit_err;'; + put '%end;'; + put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; + put '%let abortmsg= Variable &verifyVar is EMPTY;'; + put '%goto exit_err;'; + put '%end;'; + put '%if &makeupcase=YES %then %do;'; + put '%let &verifyVar=%upcase(&&&verifyvar);'; + put '%end;'; + put '%end;'; + put '%goto exit_success;'; + put '%exit_err:'; + put '%put &abortmsg;'; + put '%mf_abort(iftrue=(&mabort ne SOFT),'; + put 'mac=mf_verifymacvars,'; + put 'msg=%str(&abortmsg)'; + put ')'; + put '0'; + put '%return;'; + put '%exit_success:'; + put '1'; + put '%mend mf_verifymacvars;'; + put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; + put 'proc sql;'; + put 'create table &libds('; + put 'FMTNAME char(32) label=''Format name'''; + put '/*'; + put 'to accommodate larger START values, mp_loadformat.sas will need the'; + put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; + put 'a 32767 ibufsize limit)'; + put '*/'; + put ',START char(10000) label=''Starting value for format'''; + put ',END char(32767) label=''Ending value for format'''; + put ',LABEL char(32767) label=''Format value label'''; + put ',MIN num length=3 label=''Minimum length'''; + put ',MAX num length=3 label=''Maximum length'''; + put ',DEFAULT num length=3 label=''Default length'''; + put ',LENGTH num length=3 label=''Format length'''; + put ',FUZZ num label=''Fuzz value'''; + put ',PREFIX char(2) label=''Prefix characters'''; + put ',MULT num label=''Multiplier'''; + put ',FILL char(1) label=''Fill character'''; + put ',NOEDIT num length=3 label=''Is picture string noedit?'''; + put ',TYPE char(1) label=''Type of format'''; + put ',SEXCL char(1) label=''Start exclusion'''; + put ',EEXCL char(1) label=''End exclusion'''; + put ',HLO char(13) label=''Additional information'''; + put ',DECSEP char(1) label=''Decimal separator'''; + put ',DIG3SEP char(1) label=''Three-digit separator'''; + put ',DATATYPE char(8) label=''Date/time/datetime?'''; + put ',LANGUAGE char(8) label=''Language for date strings'''; + put ');'; + put '%mend mddl_sas_cntlout;'; + put '%macro mp_cntlout('; + put 'iftrue=(1=1)'; + put ',libcat='; + put ',cntlout=work.fmtextract'; + put ',fmtlist=0'; + put ')/*/STORE SOURCE*/;'; + put '%local ddlds cntlds i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%let ddlds=%mf_getuniquename();'; + put '%let cntlds=%mf_getuniquename();'; + put '%mddl_sas_cntlout(libds=&ddlds)'; + put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; + put '%let libcat=%scan(&libcat,1,-);'; + put '%end;'; + put 'proc format lib=&libcat cntlout=&cntlds;'; + put '%if "&fmtlist" ne "0" %then %do;'; + put 'select'; + put '%do i=1 %to %sysfunc(countw(&fmtlist));'; + put '%scan(&fmtlist,&i,%str( ))'; + put '%end;'; + put ';'; + put '%end;'; + put 'run;'; + put 'data &cntlout;'; + put 'if 0 then set &ddlds;'; + put 'set &cntlds;'; + put 'if type="N" then do;'; + put 'start=cats(start);'; + put 'end=cats(end);'; + put 'end;'; + put 'run;'; + put 'proc sort;'; + put 'by fmtname start;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &ddlds,&cntlds;'; + put '%mend mp_cntlout;'; + put '/** @endcond */'; + put '%macro mp_getcols(ds, outds=work.cols);'; + put '%local dropds;'; + put 'proc contents noprint data=&ds'; + put 'out=_data_ (keep=name type length label varnum format:);'; + put 'run;'; + put '%let dropds=&syslast;'; + put 'data &outds(keep=name type length varnum format label ddtype fmtname);'; + put 'set &dropds(rename=(format=fmtname type=type2));'; + put 'name=upcase(name);'; + put 'if type2=2 then do;'; + put 'length format $49.;'; + put 'if fmtname='''' then format=cats(''$'',length,''.'');'; + put 'else if formatl=0 then format=cats(fmtname,''.'');'; + put 'else format=cats(fmtname,formatl,''.'');'; + put 'type=''C'';'; + put 'ddtype=''CHARACTER'';'; + put 'end;'; + put 'else do;'; + put 'if fmtname='''' then format=cats(length,''.'');'; + put 'else if formatl=0 then format=cats(fmtname,''.'');'; + put 'else if formatd=0 then format=cats(fmtname,formatl,''.'');'; + put 'else format=cats(fmtname,formatl,''.'',formatd);'; + put 'type=''N'';'; + put 'if format=:''DATETIME'' or format=:''E8601DT'' then ddtype=''DATETIME'';'; + put 'else if format=:''DATE'' or format=:''DDMMYY'' or format=:''MMDDYY'''; + put 'or format=:''YYMMDD'' or format=:''E8601DA'' or format=:''B8601DA'''; + put 'or format=:''MONYY'''; + put 'then ddtype=''DATE'';'; + put 'else if format=:''TIME'' then ddtype=''TIME'';'; + put 'else ddtype=''NUMERIC'';'; + put 'end;'; + put 'if label='''' then label=name;'; + put 'run;'; + put 'proc sql;'; + put 'drop table &dropds;'; + put '%mend mp_getcols;'; + put '/** @cond */'; + put '%macro mf_existfeature(feature'; + put ')/*/STORE SOURCE*/;'; + put '%let feature=%upcase(&feature);'; + put '%local platform;'; + put '%let platform=%mf_getplatform();'; + put '%if &feature= %then %do;'; + put '%put No feature was requested for detection;'; + put '%end;'; + put '%else %if &feature=COLCONSTRAINTS %then %do;'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=PROCLUA %then %do;'; + put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; + put '%if &platform=SASVIYA %then 1;'; + put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; + put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=DBMS_MEMTYPE %then %do;'; + put '/* does dbms_memtype exist in dictionary.tables? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; + put '%else 1;'; + put '%end;'; + put '%else %if &feature=EXPORTXLS %then %do;'; + put '/* is it possible to PROC EXPORT an excel file? */'; + put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; + put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; + put '%else 0;'; + put '%end;'; + put '%else %do;'; + put '-1'; + put '%put &sysmacroname: &feature not found;'; + put '%end;'; + put '%mend mf_existfeature;'; + put '/** @endcond */'; + put '%macro mf_getschema(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum rc schema;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; + put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; + put ')),i));'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; + put '%put &libref. schema is &schema.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '&schema'; + put '%mend mf_getschema;'; + put '/** @endcond */'; + put '%macro mf_isblank(param'; + put ')/*/STORE SOURCE*/;'; + put '%sysevalf(%superq(param)=,boolean)'; + put '%mend mf_isblank;'; + put '%macro mp_dropmembers('; + put 'list /* space separated list of datasets / views */'; + put ',libref=WORK /* can only drop from a single library at a time */'; + put ',iftrue=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%if %mf_isblank(&list) %then %do;'; + put '%put NOTE: nothing to drop!;'; + put '%return;'; + put '%end;'; + put 'proc datasets lib=&libref nolist;'; + put 'delete &list;'; + put 'delete &list /mtype=view;'; + put 'run;'; + put '%mend mp_dropmembers;'; + put '%macro mp_getconstraints(lib=WORK'; + put ',ds='; + put ',outds=mp_getconstraints'; + put ',mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '/**'; + put '* Cater for environments where sashelp.vcncolu is not available'; + put '*/'; + put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; + put 'proc sql;'; + put 'create table &outds('; + put 'libref char(8)'; + put ',TABLE_NAME char(32)'; + put ',constraint_type char(8) label=''Constraint Type'''; + put ',constraint_name char(32) label=''Constraint Name'''; + put ',column_name char(32) label=''Column'''; + put ',constraint_order num'; + put ');'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Neither dictionary tables nor sashelp provides a constraint order column,'; + put '* however they DO arrive in the correct order. So, create the col.'; + put '**/'; + put '%local vw;'; + put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; + put 'data &vw /view=&vw;'; + put 'set sashelp.vcncolu;'; + put 'where table_catalog="&lib";'; + put '/* use retain approach to reset the constraint order with each constraint */'; + put 'length tmp $1000;'; + put 'retain tmp;'; + put 'drop tmp;'; + put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; + put 'constraint_order=1;'; + put 'end;'; + put 'else constraint_order+1;'; + put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; + put 'run;'; + put '/* must use SQL as proc datasets does not support length changes */'; + put 'proc sql noprint;'; + put 'create table &outds as'; + put 'select upcase(a.TABLE_CATALOG) as libref'; + put ',upcase(a.TABLE_NAME) as TABLE_NAME'; + put ',a.constraint_type'; + put ',a.constraint_name'; + put ',b.column_name'; + put ',b.constraint_order'; + put 'from dictionary.TABLE_CONSTRAINTS a'; + put 'left join &vw b'; + put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; + put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; + put 'and a.constraint_name=b.constraint_name'; + put '/**'; + put '* We cannot apply this clause to the underlying dictionary table. See:'; + put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; + put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; + put '* all the underlying constraint queries, causing exception errors in some'; + put '* cases: https://github.com/sasjs/core/issues/283'; + put '*/'; + put 'where a.TABLE_CATALOG="&lib"'; + put '%if "&ds" ne "" %then %do;'; + put 'and upcase(a.TABLE_NAME)="&ds"'; + put 'and upcase(b.TABLE_NAME)="&ds"'; + put '%end;'; + put 'order by libref, table_name, constraint_name, constraint_order'; + put ';'; + put '/* tidy up */'; + put '%mp_dropmembers('; + put '&vw,'; + put 'iftrue=(&mdebug=0)'; + put ')'; + put '%mend mp_getconstraints;'; + put '%macro mp_getpk('; + put 'lib,'; + put 'ds=0,'; + put 'outds=work.mp_getpk,'; + put 'mdebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local engine schema ds1 ds2 ds3 dsn tabs1 tabs2 sum pk4sure pkdefault finalpks'; + put 'pkfromindex;'; + put '%let lib=%upcase(&lib);'; + put '%let ds=%upcase(&ds);'; + put '%let engine=%mf_getengine(&lib);'; + put '%let schema=%mf_getschema(&lib);'; + put '%let ds1=%mf_getuniquename(prefix=getpk_ds1);'; + put '%let ds2=%mf_getuniquename(prefix=getpk_ds2);'; + put '%let ds3=%mf_getuniquename(prefix=getpk_ds3);'; + put '%let tabs1=%mf_getuniquename(prefix=getpk_tabs1);'; + put '%let tabs2=%mf_getuniquename(prefix=getpk_tabs2);'; + put '%let sum=%mf_getuniquename(prefix=getpk_sum);'; + put '%let pk4sure=%mf_getuniquename(prefix=getpk_pk4sure);'; + put '%let pkdefault=%mf_getuniquename(prefix=getpk_pkdefault);'; + put '%let pkfromindex=%mf_getuniquename(prefix=getpk_pkfromindex);'; + put '%let finalpks=%mf_getuniquename(prefix=getpk_finalpks);'; + put '%local dbg;'; + put '%if &mdebug=1 %then %do;'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '%end;'; + put '%else %let dbg=*;'; + put 'proc sql;'; + put 'create table &ds1 as'; + put 'select libname as libref'; + put ',upcase(memname) as dsn'; + put ',memtype'; + put ',upcase(name) as name'; + put ',type'; + put ',length'; + put ',varnum'; + put ',label'; + put ',format'; + put ',idxusage'; + put ',notnull'; + put 'from dictionary.columns'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne 0 %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put '%if &engine=SQLSVR %then %do;'; + put 'proc sql;'; + put 'connect using &lib;'; + put 'create table work.&ds2 as'; + put 'select * from connection to &lib('; + put 'select'; + put 's.name as SchemaName,'; + put 't.name as memname,'; + put 'tc.name as name,'; + put 'ic.key_ordinal as KeyOrderNr'; + put 'from'; + put 'sys.schemas s'; + put 'inner join sys.tables t on s.schema_id=t.schema_id'; + put 'inner join sys.indexes i on t.object_id=i.object_id'; + put 'inner join sys.index_columns ic on i.object_id=ic.object_id'; + put 'and i.index_id=ic.index_id'; + put 'inner join sys.columns tc on ic.object_id=tc.object_id'; + put 'and ic.column_id=tc.column_id'; + put 'where i.is_primary_key=1'; + put 'and s.name=%str(%'')&schema%str(%'')'; + put 'order by t.name, ic.key_ordinal ;'; + put ');disconnect from &lib;'; + put 'create table &ds3 as'; + put 'select a.*'; + put ',case when b.name is not null then 1 else 0 end as pk_ind'; + put 'from work.&ds1 a'; + put 'left join work.&ds2 b'; + put 'on a.dsn=b.memname'; + put 'and upcase(a.name)=upcase(b.name)'; + put 'order by libref,dsn;'; + put '%end;'; + put '%else %do;'; + put '%if &ds = 0 %then %let dsn=;'; + put '/* get all constraints, in constraint order*/'; + put '%mp_getconstraints(lib=&lib,ds=&dsn,outds=work.&ds2)'; + put '/* extract cols that are clearly primary keys */'; + put 'proc sql;'; + put 'create table &pk4sure as'; + put 'select libref'; + put ',table_name'; + put ',constraint_name'; + put ',constraint_order'; + put ',column_name as name'; + put 'from work.&ds2'; + put 'where constraint_type=''PRIMARY'''; + put 'order by 1,2,3,4;'; + put '/* extract unique constraints where every col is also NOT NULL */'; + put 'proc sql;'; + put 'create table &sum as'; + put 'select a.libref'; + put ',a.table_name'; + put ',a.constraint_name'; + put ',count(a.column_name) as unq_cnt'; + put ',count(b.column_name) as nul_cnt'; + put 'from work.&ds2(where=(constraint_type =''UNIQUE'')) a'; + put 'left join work.&ds2(where=(constraint_type =''NOT NULL'')) b'; + put 'on a.libref=b.libref'; + put 'and a.table_name=b.table_name'; + put 'and a.column_name=b.column_name'; + put 'group by 1,2,3'; + put 'having unq_cnt=nul_cnt;'; + put '/* extract cols from the relevant unique constraints */'; + put 'create table &pkdefault as'; + put 'select a.libref'; + put ',a.table_name'; + put ',a.constraint_name'; + put ',b.constraint_order'; + put ',b.column_name as name'; + put 'from &sum a'; + put 'left join &ds2(where=(constraint_type =''UNIQUE'')) b'; + put 'on a.libref=b.libref'; + put 'and a.table_name=b.table_name'; + put 'and a.constraint_name=b.constraint_name'; + put 'order by 1,2,3,4;'; + put '/* extract cols from the relevant unique INDEXES */'; + put 'create table &pkfromindex as'; + put 'select libname as libref'; + put ',memname as table_name'; + put ',indxname as constraint_name'; + put ',indxpos as constraint_order'; + put ',name'; + put 'from dictionary.indexes'; + put 'where nomiss=''yes'' and unique=''yes'' and upcase(libname)="&lib"'; + put '%if &ds ne 0 %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put 'order by 1,2,3,4;'; + put '/* create one table */'; + put 'data &finalpks;'; + put 'set &pkdefault &pk4sure &pkfromindex;'; + put 'pk_ind=1;'; + put '/* if there are multiple unique constraints, take the first */'; + put 'by libref table_name constraint_name;'; + put 'retain keepme;'; + put 'if first.table_name then keepme=1;'; + put 'if first.constraint_name and not first.table_name then keepme=0;'; + put 'if keepme=1;'; + put 'run;'; + put '/* join back to starting table */'; + put 'proc sql;'; + put 'create table &ds3 as'; + put 'select a.*'; + put ',b.constraint_order'; + put ',case when b.pk_ind=1 then 1 else 0 end as pk_ind'; + put 'from work.&ds1 a'; + put 'left join work.&finalpks b'; + put 'on a.libref=b.libref'; + put 'and a.dsn=b.table_name'; + put 'and upcase(a.name)=upcase(b.name)'; + put 'order by libref,dsn,constraint_order;'; + put '%end;'; + put '/* prepare tables */'; + put 'proc sql;'; + put 'create table work.&tabs1 as select'; + put 'libname as libref'; + put ',upcase(memname) as dsn'; + put ',memtype'; + put '%if %mf_existfeature(DBMS_MEMTYPE)=1 %then %do;'; + put ',dbms_memtype'; + put '%end;'; + put '%else %do;'; + put ',''n/a'' as dbms_memtype format=$32.'; + put '%end;'; + put ',typemem'; + put ',memlabel'; + put ',nvar'; + put ',compress'; + put 'from dictionary.tables'; + put 'where upcase(libname)="&lib"'; + put '%if &ds ne 0 %then %do;'; + put 'and upcase(memname)="&ds"'; + put '%end;'; + put ';'; + put 'data &tabs2;'; + put 'set &ds3;'; + put 'length pk_fields $512;'; + put 'retain pk_fields;'; + put 'by libref dsn constraint_order;'; + put 'if first.dsn then pk_fields='''';'; + put 'if pk_ind=1 then pk_fields=catx('' '',pk_fields,name);'; + put 'if last.dsn then output;'; + put 'run;'; + put 'proc sql;'; + put 'create table &outds as'; + put 'select a.libref'; + put ',a.dsn'; + put ',a.memtype'; + put ',a.dbms_memtype'; + put ',a.typemem'; + put ',a.memlabel'; + put ',a.nvar'; + put ',a.compress'; + put ',b.pk_fields'; + put 'from work.&tabs1 a'; + put 'left join work.&tabs2 b'; + put 'on a.libref=b.libref'; + put 'and a.dsn=b.dsn;'; + put '/* tidy up */'; + put '%mp_dropmembers('; + put '&ds1 &ds2 &ds3 &dsn &tabs1 &tabs2 &sum &pk4sure &pkdefault &finalpks,'; + put 'iftrue=(&mdebug=0)'; + put ')'; + put '%mend mp_getpk;'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '%macro mf_getvarlist(libds'; + put ',dlm=%str( )'; + put ',quote=no'; + put ',typefilter=A'; + put ')/*/STORE SOURCE*/;'; + put '/* declare local vars */'; + put '%local outvar dsid nvars x rc dlm q var vtype;'; + put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; + put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; + put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; + put '/* open dataset in macro */'; + put '%let dsid=%sysfunc(open(&libds));'; + put '%if &dsid %then %do;'; + put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; + put '%if &nvars>0 %then %do;'; + put '/* add variables with supplied delimeter */'; + put '%do x=1 %to &nvars;'; + put '/* get variable type */'; + put '%let vtype=%sysfunc(vartype(&dsid,&x));'; + put '%if &vtype=&typefilter or &typefilter=A %then %do;'; + put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; + put '%if &var=&q&q %then %do;'; + put '%put &sysmacroname: Empty column found in &libds!;'; + put '%let var=&q. &q.;'; + put '%end;'; + put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; + put '%else %let outvar=&outvar.&dlm.&var.;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; + put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; + put '%let rc=%sysfunc(close(&dsid));'; + put '%end;'; + put '%do;%unquote(&outvar)%end;'; + put '%mend mf_getvarlist;'; + put '%macro mf_getvartype(libds /* two level name */'; + put ', var /* variable name from which to return the type */'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid vnum vtype rc;'; + put '/* Open dataset */'; + put '%let dsid = %sysfunc(open(&libds));'; + put '%if &dsid. > 0 %then %do;'; + put '/* Get variable number */'; + put '%let vnum = %sysfunc(varnum(&dsid, &var));'; + put '/* Get variable type (C/N) */'; + put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; + put '%else %do;'; + put '%put NOTE: Variable &var does not exist in &libds;'; + put '%let vtype = %str( );'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; + put '%put &sysmacroname: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '/* Close dataset */'; + put '%let rc = %sysfunc(close(&dsid));'; + put '/* Return variable type */'; + put '&vtype'; + put '%mend mf_getvartype;'; + put '%macro mf_mkdir(dir'; + put ')/*/STORE SOURCE*/;'; + put '%local lastchar child parent;'; + put '%let lastchar = %substr(&dir, %length(&dir));'; + put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; + put '/* Cannot create drive mappings */'; + put '%return;'; + put '%end;'; + put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; + put '/* last char is a slash */'; + put '%if (%length(&dir) eq 1) %then %do;'; + put '/* one single slash - root location is assumed to exist */'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '/* strip last slash */'; + put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; + put '%end;'; + put '%end;'; + put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; + put '/* directory does not exist so prepare to create */'; + put '/* first get the childmost directory */'; + put '%let child = %scan(&dir, -1, %str(/\:));'; + put '/*'; + put 'If child name = path name then there are no parents to create. Else'; + put 'they must be recursively scanned.'; + put '*/'; + put '%if (%length(&dir) gt %length(&child)) %then %do;'; + put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; + put '%mf_mkdir(&parent)'; + put '%end;'; + put '/*'; + put 'Now create the directory. Complain loudly of any errs.'; + put '*/'; + put '%let dname = %sysfunc(dcreate(&child, &parent));'; + put '%if (%bquote(&dname) eq ) %then %do;'; + put '%put %str(ERR)OR: could not create &parent + &child;'; + put '%abort cancel;'; + put '%end;'; + put '%else %do;'; + put '%put Directory created: &dir;'; + put '%end;'; + put '%end;'; + put '/* exit quietly if directory did exist.*/'; + put '%mend mf_mkdir;'; + put '%macro mp_searchdata(lib='; + put ',ds='; + put ',string= /* the query will use a contains (?) operator */'; + put ',numval= /* numeric must match exactly */'; + put ',outloc=0'; + put ',outlib=MPSEARCH'; + put ',outobs=-1'; + put ',filter_text=%str(1=1)'; + put ')/*/STORE SOURCE*/;'; + put '%local table_list table table_num table colnum col start_tm check_tm vars type'; + put 'coltype;'; + put '%put process began at %sysfunc(datetime(),datetime19.);'; + put '%if &syscc ge 4 %then %do;'; + put '%put %str(WAR)NING: SYSCC=&syscc on macro entry;'; + put '%return;'; + put '%end;'; + put '%if &string = %then %let type=N;'; + put '%else %let type=C;'; + put '%if "&outloc"="0" %then %do;'; + put '%let outloc=%sysfunc(pathname(work))/%mf_getuniquename();'; + put '%end;'; + put '%mf_mkdir(&outloc)'; + put 'libname &outlib "&outloc";'; + put '/* get the list of tables in the library */'; + put 'proc sql noprint;'; + put 'select distinct memname into: table_list separated by '' '''; + put 'from dictionary.tables'; + put 'where upcase(libname)="%upcase(&lib)"'; + put '%if &ds ne %then %do;'; + put 'and upcase(memname)=%upcase("&ds")'; + put '%end;'; + put ';'; + put '/* check that we have something to check */'; + put '%if %length(&table_list)=0 %then %put library &lib contains no tables!;'; + put '/* loop through each table */'; + put '%else %do table_num=1 %to %sysfunc(countw(&table_list,%str( )));'; + put '%let table=%scan(&table_list,&table_num,%str( ));'; + put '%let vars=%mf_getvarlist(&lib..&table);'; + put '%if %length(&vars)=0 %then %do;'; + put '%put NO COLUMNS IN &lib..&table! This will be skipped.;'; + put '%end;'; + put '%else %do;'; + put '%let check_tm=%sysfunc(datetime());'; + put '/* prep input */'; + put 'data &outlib..&table;'; + put 'set &lib..&table;'; + put 'where %unquote(&filter_text) and ( 0'; + put '/* loop through columns */'; + put '%do colnum=1 %to %sysfunc(countw(&vars,%str( )));'; + put '%let col=%scan(&vars,&colnum,%str( ));'; + put '%let coltype=%mf_getvartype(&lib..&table,&col);'; + put '%if &type=C and &coltype=C %then %do;'; + put '/* if a char column, see if it contains the string */'; + put 'or ("&col"n ? "&string")'; + put '%end;'; + put '%else %if &type=N and &coltype=N %then %do;'; + put '/* if numeric match exactly */'; + put 'or ("&col"n = &numval)'; + put '%end;'; + put '%end;'; + put ');'; + put '%if &outobs>-1 %then %do;'; + put 'if _n_ > &outobs then stop;'; + put '%end;'; + put 'run;'; + put '%put Search query for &table took'; + put '%sysevalf(%sysfunc(datetime())-&check_tm) seconds;'; + put '%if &syscc ne 0 %then %do;'; + put '%put %str(ERR)ROR: SYSCC=&syscc when processing &lib..&table;'; + put '%return;'; + put '%end;'; + put '%if %mf_nobs(&outlib..&table)=0 %then %do;'; + put 'proc sql;'; + put 'drop table &outlib..&table;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%put process finished at %sysfunc(datetime(),datetime19.);'; + put '%mend mp_searchdata;'; + put '%macro mp_validatecol(incol,rule,outcol);'; + put '/* tempcol is given a unique name with every invocation */'; + put '%local tempcol;'; + put '%let tempcol=%mf_getuniquename();'; + put '%if &rule=ISINT %then %do;'; + put '&outcol=0;'; + put 'if not missing(&incol) then do;'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; + put 'end;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=ISNUM %then %do;'; + put '/*'; + put 'credit SØREN LASSEN'; + put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; + put '*/'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if missing(&tempcol) then &outcol=0;'; + put 'else &outcol=1;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=LIBDS %then %do;'; + put '/* match libref.dataset */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for LIBDS";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%else %if &rule=FORMAT %then %do;'; + put '/* match valid format - regex could probably be improved */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for FORMAT";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%mend mp_validatecol;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file viewdata.sas'; + put '@brief Provide the raw view of the data'; + put '@details Pass a LIBDS and FILTER_RK to return a dataset for viewing.'; + put 'VIEW datasets include all columns / rows (unlike EDIT, which are filtered'; + put 'for current records and don''t include the SCD2 etc cols).'; + put '

Service Inputs

'; + put '
SASCONTROLTABLE
'; + put '|LIBDS:$41.|FILTER_RK:$5.|SEARCHTYPE:$4|SEARCHVAL:$1000'; + put '|---|---|---|---'; + put '|DC258467.MPE_X_TEST|-1|CHAR|Some String|'; + put '

Service Outputs

'; + put '
cols
'; + put '@li DDTYPE'; + put '@li FORMAT'; + put '@li LABEL'; + put '@li LENGTH'; + put '@li NAME'; + put '@li TYPE'; + put '@li VARNUM'; + put '
sasparams
'; + put '@li FILTER_TEXT'; + put '@li NOBS'; + put '@li PK_FIELDS - string seperated list of primary key fields, if they exist'; + put '@li TABLENAME'; + put '@li TABLEURI'; + put '@li VARS'; + put '
viewdata
'; + put 'The raw data from the target table.'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li dc_createdataset.sas'; + put '@li dc_gettableid.sas'; + put '@li mf_existds.sas'; + put '@li mf_getvarcount.sas'; + put '@li mf_nobs.sas'; + put '@li mf_verifymacvars.sas'; + put '@li mp_abort.sas'; + put '@li mp_cntlout.sas'; + put '@li mp_getcols.sas'; + put '@li mp_getpk.sas'; + put '@li mp_jsonout.sas'; + put '@li mp_searchdata.sas'; + put '@li mp_validatecol.sas'; + put '@li mpe_columnlevelsecurity.sas'; + put '@li mpe_filtermaster.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/* configure macvars */'; + put '%global LIBDS FILTER_RK SEARCHVAL SEARCHTYPE FMT_IND;'; + put '%let maxrows=250;'; + put '/* avoid code injection */'; + put '%let FMT_IND=0;'; + put '%let SEARCHTYPE=;'; + put '%let SEARCHVAL=;'; + put '%let FILTER_RK=;'; + put '%let LIBDS=;'; + put '/**'; + put '* Validate inputs'; + put '*/'; + put 'data work.intest;'; + put 'length libds $41 filter_rk 8. searchval $100 searchtype $4;'; + put 'set work.SASCONTROLTABLE;'; + put '/* validate filter_rk */'; + put 'if filter_rk le 0 then filter_rk=-1;'; + put '/* check if the request is for a format catalog */'; + put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; + put 'libds=scan(libds,1,''-'');'; + put 'putlog "Format Catalog Captured";'; + put 'call symputx(''fmt_ind'',1);'; + put 'end;'; + put 'putlog (_all_)(=);'; + put '/* validate libds */'; + put '%mp_validatecol(LIBDS,LIBDS,is_libds)'; + put 'if searchtype in (''CHAR'',''NUM'') then do;'; + put 'searchval=tranwrd(searchval,''%'','''');'; + put 'searchval=tranwrd(searchval,''&'','''');'; + put 'searchval=tranwrd(searchval,'';'','''');'; + put 'searchval=tranwrd(searchval,''"'','''');'; + put 'call symputx(''searchtype'',searchtype);'; + put 'call symputx(''searchval'',searchval);'; + put 'end;'; + put 'else if searchtype not in ('''',''NONE'') then do;'; + put 'putlog ''ERR'' ''OR: Invalid searchtype:'' searchtype;'; + put 'stop;'; + put 'end;'; + put 'if is_libds=0 then do;'; + put 'putlog ''ERR'' ''OR: Invalid libds:'' libds;'; + put 'stop;'; + put 'end;'; + put 'else do;'; + put 'call symputx(''filter_rk'',filter_rk);'; + put 'call symputx(''libds'',libds);'; + put 'end;'; + put 'output;'; + put 'stop;'; + put 'run;'; + put '%mp_abort(iftrue= (%mf_verifymacvars(libds filter_rk fmt_ind)=0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem with macro inputs)'; + put ')'; + put '%mp_abort(iftrue= (%mf_nobs(work.intest)=0)'; + put ',mac=&_program'; + put ',msg=%str(Some err with service inputs)'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '/**'; + put '* assign the Library'; + put '*/'; + put '%dc_assignlib(READ,%scan(&LIBDS,1,.))'; + put '/* abort if looking for a format and the catalog doesn''t exist */'; + put '%mp_abort(iftrue= (&fmt_ind=1 and %sysfunc(exist(&libds,CATALOG))=0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Catalog &libds does not exist!)'; + put ')'; + put '/**'; + put 'check if dataset can actually be opened - as library may exist but it may not'; + put 'be possible to assign, and even if it can, the physical table may not exist'; + put '**/'; + put 'data _null_;'; + put 'if &fmt_ind=0 then do;'; + put 'dsid=open("&libds");'; + put 'rc=close(dsid);'; + put 'end;'; + put 'else dsid=42;'; + put 'call symputx(''existds'',dsid,''l'');'; + put 'putlog ''dataset exists check:'' dsid;'; + put 'run;'; + put '/**'; + put '* get the data'; + put '*/'; + put '%global dsobs;'; + put '%let dsobs=0;'; + put '%macro x();'; + put '%if &existds>0 %then %do;'; + put '%if &fmt_ind=1 %then %do;'; + put '/* export format and point the libds to the output table from here on */'; + put '%mp_cntlout('; + put 'libcat=&libds'; + put ',fmtlist=0'; + put ',cntlout=work.fmtextract'; + put ')'; + put '%let libds=WORK.FMTEXTRACT;'; + put '%end;'; + put 'proc sql noprint;'; + put 'select count(*) into: dsobs from &libds;'; + put '%put preparing query;'; + put '%mpe_filtermaster(VIEW,&libds,'; + put 'dclib=&mpelib,'; + put 'filter_rk=&filter_rk,'; + put 'outref=filtref,'; + put 'outds=work.query'; + put ')'; + put '%put printing generated filterquery:;'; + put 'data _null_;'; + put 'infile filtref;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%if &searchtype=NONE or "%trim(&searchtype) " = " " %then %do;'; + put '/* get row count */'; + put 'filename rows temp;'; + put 'data _null_;'; + put 'file rows;'; + put 'infile filtref end=eof;'; + put 'input;'; + put 'if _n_=1 then do;'; + put 'put ''proc sql;'';'; + put 'put "select count(*) into: dsobs from &libds where";'; + put 'end;'; + put 'put _infile_;'; + put 'if eof then put '';'';'; + put 'run;'; + put 'data _null_;'; + put 'infile rows;'; + put 'input;'; + put 'putlog _infile_;'; + put 'run;'; + put '%inc rows;'; + put '/* send actual data, filtered and row-capped */'; + put 'data work.viewdata;'; + put 'set &libds;'; + put 'where %inc filtref;;'; + put 'if _n_>&maxrows then stop;'; + put 'run;'; + put '%if %mf_nobs(work.viewdata)=0 %then %do;'; + put 'data work.viewdata;'; + put '/* send empty row if empty table to help with hot rendering */'; + put 'output;'; + put 'set work.viewdata;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put 'data work.vwsearch/view=work.vwsearch;'; + put 'set &libds;'; + put 'where %inc filtref;;'; + put 'run;'; + put '%if %upcase(&searchtype)=CHAR %then %do;'; + put '%mp_searchdata(lib=work'; + put ',ds=vwsearch'; + put ',string=%superq(searchval)'; + put ',outobs=&maxrows'; + put ')'; + put '%end;'; + put '%else %if %upcase(&searchtype)=NUM %then %do;'; + put '%mp_searchdata(lib=work'; + put ',ds=vwsearch'; + put ',numval=%superq(searchval)'; + put ',outobs=&maxrows'; + put ')'; + put '%end;'; + put '%if %mf_existds(libds=MPSEARCH.vwsearch) %then %do;'; + put '%let dsobs=%mf_nobs(MPSEARCH.vwsearch);'; + put 'data viewdata;'; + put 'set MPSEARCH.vwsearch;'; + put 'if _n_<&maxrows;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%let dsobs=0;'; + put 'data viewdata;'; + put 'set &libds;'; + put 'stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '/* physical table is not accessible so create from metatadata definition */'; + put '%dc_createdataset(libds=&libds,outds=viewdata)'; + put 'data viewData;'; + put 'output;'; + put 'set viewdata;'; + put 'run;'; + put '/* ensure filtref and work.query exist to avoid downstream issues */'; + put 'filename filtref temp;'; + put 'data work.query;'; + put 'file filtref;'; + put 'x=0;'; + put 'put x;'; + put 'run;'; + put '%end;'; + put '%mend x; %x()'; + put '/* apply column level security */'; + put '%mpe_columnlevelsecurity(%scan(&libds,1,.),%scan(&libds,2,.),work.viewdata'; + put ',mode=VIEW'; + put ',clsds=&mpelib..mpe_column_level_security'; + put ',groupds=work.groups /* was created in mpe_filtermaster */'; + put ',outds=work.viewdata2'; + put ',outmeta=work.cls_rules'; + put ')'; + put '/* get table uri (if sas 9) to enable linking direct to lineage */'; + put '%dc_gettableid(libref=%scan(&libds,1,.)'; + put ',ds=%scan(&libds,2,.)'; + put ',outds=work.parambase'; + put ')'; + put 'data _null_;'; + put 'infile filtref end=eof;'; + put 'input;'; + put 'length filter_text $32767;'; + put 'retain filter_text;'; + put 'filter_text=catx('' '',filter_text,_infile_);'; + put 'if eof then do;'; + put 'if cats(filter_text)=''1=1'' then filter_text='''';'; + put 'call symputx(''filter_text'',filter_text);'; + put 'end;'; + put 'run;'; + put '%mp_getpk(%scan(&libds,1,.), ds=%scan(&libds,2,.), outds=work.pk_fields)'; + put '%let pk_fields=;'; + put 'data _null_;'; + put 'set work.pk_fields;'; + put 'call symputx(''pk_fields'',pk_fields);'; + put 'run;'; + put 'data work.sasparams;'; + put 'set work.parambase;'; + put 'format FILTER_TEXT $32767.;'; + put 'FILTER_TEXT=symget(''FILTER_TEXT'');'; + put 'length PK_FIELDS $512;'; + put 'PK_FIELDS=symget(''PK_FIELDS'');'; + put 'nobs=&dsobs;'; + put 'vars=%mf_getvarcount(viewdata);'; + put 'maxrows=&maxrows;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%mp_getcols(&libds, outds=cols)'; + put '%webout(OPEN)'; + put '%webout(OBJ,viewData2,fmt=Y,showmeta=YES,dslabel=viewdata)'; + put '%webout(OBJ,sasparams)'; + put '%webout(OBJ,cls_rules)'; + put '%webout(OBJ,cols)'; + put '%webout(OBJ,query)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=viewlibarray; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro mf_existds(libds'; + put ')/*/STORE SOURCE*/;'; + put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; + put '%else 1;'; + put '%mend mf_existds;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file viewlibarray.sas'; + put '@brief List the libraries for view access'; + put '@details'; + put '

SAS Macros

'; + put '@li dc_getlibs.sas'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@li mpe_getgroups.sas'; + put '@li mm_webout.sas'; + put '@li mf_existds.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%let keepvars=libraryref libraryname;'; + put 'data _null_;'; + put 'length keepvars $32;'; + put 'set %sysfunc(ifc(%mf_existds(iwant),iwant,_null_));'; + put 'call symputx(''keepvars'',keepvars);'; + put 'run;'; + put '/**'; + put '* get full list of libraries'; + put '*/'; + put '%dc_getlibs(outds=work.mm_getLibs)'; + put '/* get security groups */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=groups)'; + put '/* get security settings */'; + put 'data sec;'; + put 'set &mpelib..mpe_security;'; + put 'where &dc_dttmtfmt. lt tx_to and ACCESS_LEVEL=''VIEW'';'; + put 'run;'; + put '/* check for any matching groups */'; + put 'proc sql noprint;'; + put 'create table matches as'; + put 'select * from sec'; + put 'where upcase(sas_group) in (select upcase(groupname) from groups);'; + put 'select count(*) into: securitygroupscount from matches;'; + put 'select count(*) into: ALL_CNT from matches where libref=''*ALL*'';'; + put '%put securitygroupscount=&securitygroupscount;'; + put '%put ALL_CNT=&ALL_CNT;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%macro mpestp_viewlibs();'; + put '%if not %symexist(DC_RESTRICT_VIEWER) %then %let DC_RESTRICT_VIEWER=NO;'; + put '/* scenario 1 - user is in admin group, hence can view all libraries */'; + put 'proc sql noprint;'; + put 'select count(*) into: scenario1 from groups where groupname="&mpeadmins";'; + put '%if &scenario1>0 %then %do;'; + put '%put user in admin group (scenario1=&scenario1);'; + put '%return;'; + put '%end;'; + put '/* scenario 2 - viewer unrestricted and no groups listed */'; + put '%if &DC_RESTRICT_VIEWER=NO and &securitygroupscount=0 %then %do;'; + put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; + put '%put securitygroupscount=&securitygroupscount;'; + put '%return;'; + put '%end;'; + put '/* scenario 3 - an *ALL* libref is listed */'; + put '%if &all_cnt>0 %then %do;'; + put '%put all_cnt=&all_cnt;'; + put '%return;'; + put '%end;'; + put '/* scenario 4 - specific librefs listed */'; + put '%if &securitygroupscount>0 %then %do;'; + put '%put scenario 4;'; + put '%put securitygroupscount=&securitygroupscount;'; + put 'proc sql;'; + put 'delete from mm_getLibs'; + put 'where upcase(libraryref) not in (select upcase(libref) from matches);'; + put '%return;'; + put '%end;'; + put '/* viewer restricted and no groups listed */'; + put '%if &DC_RESTRICT_VIEWER=YES and &securitygroupscount=0 %then %do;'; + put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; + put '%put securitygroupscount=&securitygroupscount;'; + put 'data mm_getlibs;'; + put 'set mm_getlibs;'; + put 'stop;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (1=1)'; + put ',mac=&_program..sas'; + put ',msg=%str(unhandled security logic error!)'; + put ')'; + put '%mend mpestp_viewlibs;'; + put '%mpestp_viewlibs()'; + put '%global dc_viewlib_check;'; + put '/**'; + put '* deal with invalid and duplicate library definitions'; + put '*/'; + put 'proc sort data=mm_getlibs;'; + put 'by libraryref libraryname;'; + put 'run;'; + put 'data mm_getlibs;'; + put 'set mm_getlibs;'; + put 'by libraryref;'; + put 'if symget(''dc_viewlib_check'')=''YES'' then do;'; + put '/* note - invalid libraries can result in exception errors. If this happens,'; + put 'configure the dc_viewlib_check variable to NO in Data Controller Settings'; + put '*/'; + put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; + put 'drop rc;'; + put 'if rc ne 0 then do;'; + put 'putlog "NOTE: Library " libraryname " does not exist!!";'; + put 'putlog (_all_) (=);'; + put 'delete;'; + put 'end;'; + put 'end;'; + put 'if not first.libraryref then delete;'; + put 'run;'; + put 'proc sort data=mm_getlibs (keep=&keepvars);'; + put 'by libraryname;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR, mm_getLibs)'; + put '%mm_webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=viewlibs; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file viewlibs.sas'; + put '@brief List the libraries for view access'; + put '@details'; + put '

SAS Macros

'; + put '@li dc_getlibs.sas'; + put '@li mp_abort.sas'; + put '@li mf_getuser.sas'; + put '@li mpe_getgroups.sas'; + put '@li mpeinit.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '/**'; + put '* get full list of libraries'; + put '*/'; + put '%dc_getlibs(outds=work.mm_getLibs)'; + put '/* get security groups */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=groups)'; + put '/* get security settings */'; + put 'data sec;'; + put 'set &mpelib..mpe_security;'; + put 'where &dc_dttmtfmt.lt tx_to and ACCESS_LEVEL=''VIEW'';'; + put 'run;'; + put '/* check for any matching groups */'; + put 'proc sql noprint;'; + put 'create table matches as'; + put 'select * from sec'; + put 'where upcase(sas_group) in (select upcase(groupname) from groups);'; + put 'select count(*) into: securitygroupscount from matches;'; + put 'select count(*) into: ALL_CNT from matches where libref=''*ALL*'';'; + put '%put securitygroupscount=&securitygroupscount;'; + put '%put ALL_CNT=&ALL_CNT;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%macro mpestp_viewlibs();'; + put '%if not %symexist(DC_RESTRICT_VIEWER) %then %let DC_RESTRICT_VIEWER=NO;'; + put '/* scenario 1 - user is in admin group, hence can view all libraries */'; + put 'proc sql noprint;'; + put 'select count(*) into: scenario1 from groups where groupname="&mpeadmins";'; + put '%if &scenario1>0 %then %do;'; + put '%put user in admin group (scenario1=&scenario1);'; + put '%return;'; + put '%end;'; + put '/* scenario 2 - viewer unrestricted and no groups listed */'; + put '%if &DC_RESTRICT_VIEWER=NO and &securitygroupscount=0 %then %do;'; + put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; + put '%put securitygroupscount=&securitygroupscount;'; + put '%return;'; + put '%end;'; + put '/* scenario 3 - an *ALL* libref is listed */'; + put '%if &all_cnt>0 %then %do;'; + put '%put all_cnt=&all_cnt;'; + put '%return;'; + put '%end;'; + put '/* scenario 4 - specific librefs listed */'; + put '%if &securitygroupscount>0 %then %do;'; + put '%put scenario 4;'; + put '%put securitygroupscount=&securitygroupscount;'; + put 'proc sql;'; + put 'delete from mm_getLibs'; + put 'where upcase(libraryref) not in (select upcase(libref) from matches);'; + put '%return;'; + put '%end;'; + put '/* viewer restricted and no groups listed */'; + put '%if &DC_RESTRICT_VIEWER=YES and &securitygroupscount=0 %then %do;'; + put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; + put '%put securitygroupscount=&securitygroupscount;'; + put 'data mm_getlibs;'; + put 'set mm_getlibs;'; + put 'stop;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (1=1)'; + put ',mac=&_program..sas'; + put ',msg=%str(unhandled security logic err!)'; + put ')'; + put '%mend mpestp_viewlibs;'; + put '%mpestp_viewlibs()'; + put '%global dc_viewlib_check;'; + put '/**'; + put '* deal with invalid and duplicate library definitions'; + put '*/'; + put 'proc sort data=mm_getlibs;'; + put 'by libraryref libraryname;'; + put 'run;'; + put 'data mm_getlibs;'; + put 'set mm_getlibs;'; + put 'by libraryref;'; + put 'if symget(''dc_viewlib_check'')=''YES'' then do;'; + put '/* note - invalid libraries can result in exception errors. If this happens,'; + put 'configure the dc_viewlib_check variable to NO in Data Controller Settings'; + put '*/'; + put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; + put 'drop rc;'; + put 'if rc ne 0 then do;'; + put 'putlog "NOTE: Library " libraryname " does not exist!!";'; + put 'putlog (_all_) (=);'; + put 'delete;'; + put 'end;'; + put 'end;'; + put 'if not first.libraryref then delete;'; + put 'run;'; + put 'proc sort data=mm_getlibs out=saslibs;'; + put 'by libraryname;'; + put 'run;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%webout(OPEN)'; + put '%webout(OBJ,saslibs)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=viewtables; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; + put '%global dc_repo_users;'; + put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; + put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; + put '%mend dc_getusergroups;'; + put '%macro mpe_getgroups(user=,outds=);'; + put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; + put '%dc_getusergroups(user=&user,outds=&outds)'; + put 'data;'; + put 'length groupname groupdesc $256;'; + put 'set &dc_libref..mpe_groups;'; + put 'where &dc_dttmtfmt. lt tx_to;'; + put 'where also upcase(user_name)="%upcase(&user)";'; + put 'groupname=group_name;'; + put 'groupdesc=group_desc;'; + put 'keep groupname groupdesc;'; + put 'run;'; + put 'data &outds;'; + put 'set &syslast &outds(keep=groupname groupdesc);'; + put 'run;'; + put '%mend mpe_getgroups;'; + put '%macro mpe_getvars(injs,outds);'; + put '/* load parameters */'; + put 'data _null_;'; + put '__dummychar='''';__dummynum=0;'; + put 'set &outds;'; + put 'array __charvals _character_;'; + put 'do over __charvals;'; + put 'call symputx(vname(__charvals),__charvals,''g'');'; + put 'end;'; + put 'array __numvals _numeric_;'; + put 'do over __numvals;'; + put 'call symputx(vname(__numvals),__numvals,''g'');'; + put 'end;'; + put 'run;'; + put '%mend mpe_getvars;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file viewtables.sas'; + put '@brief List the tables and format catalogs the user can view'; + put '@details Provide a library and get list of tables and catalogs. Also return'; + put 'the libinfo details.'; + put '

Service Inputs

'; + put '
SASControlTable
'; + put 'Just one input - MPLIB (the libref to get tables and info for)'; + put '|MPLIB:$char8.|'; + put '|---|'; + put '|SOMELIB|'; + put '

Service Outputs

'; + put '
work.mptables
'; + put '|MEMNAME:$char32.|'; + put '|---|'; + put '|DS1|'; + put '|DS2|'; + put '|DS3|'; + put 'etc'; + put '
work.libinfo
'; + put 'If attributes are empty, they don''t need to be shown on screen.'; + put '|engine $|libname $|paths $|perms $|owners $|schemas $ |libid $|libsize $|table_cnt |'; + put '|---|---|---|---|---|---|---|---|---|'; + put '|V9|SOMELIB|"some/path"|rwxrwxr-x|sassrv|` `|` `|636MB|33|'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li mf_getuser.sas'; + put '@li mpe_getgroups.sas'; + put '@li mpe_getvars.sas'; + put '@li mpeinit.sas'; + put '@version 9.2'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%global MPLIB;'; + put '/* load parameters */'; + put '%mpe_getvars(SASControlTable, SASControlTable)'; + put '/**'; + put '* assign the Library'; + put '*/'; + put '%put &=MPLIB;'; + put '%dc_assignlib(READ,&MPLIB)'; + put '%mp_abort(iftrue= (&syscc ne 0 )'; + put ',mac=&_program..sas'; + put ',msg=%str(Unable to assign &mplib library)'; + put ')'; + put '/**'; + put '* get the tables'; + put '*/'; + put 'data members; /* empty table */'; + put 'name='''';'; + put 'memtype='''';'; + put 'run;'; + put 'ods output Members=Members;'; + put 'proc datasets library=&mplib ;'; + put 'quit;'; + put '/* cannot avoid the proc datasets warn!ng for an empty lib */'; + put '/* nolist means no output and nowarn has no effect */'; + put '%put &=syscc;'; + put 'data _null_;'; + put 'if "&syscc" ne "0" then do;'; + put 'putlog "Library &mplib is empty, setting syscc to zero";'; + put 'call symputx(''syscc'',0);'; + put 'end;'; + put 'run;'; + put '%put &=syscc;'; + put 'proc sql;'; + put 'create table work.mptables as'; + put 'select distinct case when memtype=''CATALOG'' then cats(name,''-FC'')'; + put 'else name end as memname'; + put 'from members;'; + put '/* get security groups */'; + put '%mpe_getgroups(user=%mf_getuser(),outds=groups)'; + put '/* get security settings */'; + put 'data sec;'; + put 'set &mpelib..mpe_security;'; + put 'where &dc_dttmtfmt. lt tx_to and ACCESS_LEVEL=''VIEW'';'; + put 'where also libref in (''*ALL*'',"%upcase(&mplib)");'; + put 'run;'; + put '/* check for any matching groups */'; + put 'proc sql noprint;'; + put 'create table matches as'; + put 'select * from sec'; + put 'where upcase(sas_group) in (select upcase(groupname) from groups);'; + put 'select count(*) into: securitygroupscount from matches;'; + put 'select count(*) into: ALL_CNT from matches'; + put 'where libref=''*ALL*'''; + put 'or (libref="&mplib" and dsn=''*ALL*'');'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(syscc=&syscc)'; + put ')'; + put '%macro mpestp_viewtables();'; + put '%if not %symexist(DC_RESTRICT_VIEWER) %then %let DC_RESTRICT_VIEWER=NO;'; + put '/* scenario 1 - user is in admin group, hence can view all libraries */'; + put 'proc sql noprint;'; + put 'select count(*) into: scenario1 from groups where groupname="&mpeadmins";'; + put '%if &scenario1>0 %then %return;'; + put '/* scenario 2 - viewer unrestricted and no groups listed */'; + put '%if &DC_RESTRICT_VIEWER=NO and &securitygroupscount=0 %then %return;'; + put '/* scenario 3 - an *ALL* libref or DSN is listed */'; + put '%if &all_cnt>0 %then %return;'; + put '/* scenario 4 - specific tables listed */'; + put '%if &securitygroupscount>0 %then %do;'; + put 'proc sql;'; + put 'delete from mptables'; + put 'where upcase(memname) not in (select upcase(dsn) from sec);'; + put '%return;'; + put '%end;'; + put '/* viewer restricted and no groups listed */'; + put '%if &DC_RESTRICT_VIEWER=YES and &securitygroupscount=0 %then %do;'; + put 'data mptables;'; + put 'set mptables;'; + put 'stop;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%mp_abort(iftrue= (1=1)'; + put ',mac=&_program..sas'; + put ',msg=%str(unhandled security logic error!)'; + put ')'; + put '%mend mpestp_viewtables;'; + put '%mpestp_viewtables()'; + put '/* get libinfo */'; + put 'proc sql;'; + put 'create table work.libinfo as'; + put 'select a.engine,'; + put 'a.libname,'; + put 'a.paths,'; + put 'a.perms,'; + put 'a.owners,'; + put 'a.schemas,'; + put 'a.libid,'; + put 'coalesce(b.libsize,0) as libsize,'; + put 'coalesce(b.table_cnt,0) as table_cnt'; + put 'from &mpelib..mpe_datacatalog_libs(where=(&dc_dttmtfmt. lt tx_to)) a'; + put 'left join &mpelib..mpe_datastatus_libs(where=(&dc_dttmtfmt. lt tx_to)) b'; + put 'on a.libref=b.libref'; + put 'where a.libref="&MPLIB";'; + put '%webout(OPEN)'; + put '%webout(OBJ,mptables)'; + put '%webout(OBJ,libinfo)'; + put '%webout(CLOSE)'; + put '%mpeterm()'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/usernav; + +%let service=usergroupsbymember; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getusers('; + put 'outds=work.mm_getusers,'; + put 'user=0'; + put ')/*/STORE SOURCE*/;'; + put 'filename response temp;'; + put '%if %superq(user)=0 %then %do;'; + put 'proc metadata in= '''; + put '$METAREPOSITORY'; + put 'Person'; + put 'SAS'; + put '0'; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'filename inref temp;'; + put 'data _null_;'; + put 'file inref;'; + put 'put "";'; + put 'put "$METAREPOSITORY";'; + put 'put "Person";'; + put 'put "SAS";'; + put 'put "";'; + put 'put "128";'; + put 'put "";'; + put 'put "";'; + put 'put '''';'; + put 'put "";'; + put 'length string $10000;'; + put 'string=cats('''');'; + put 'put string;'; + put 'put "";'; + put 'put "";'; + put 'run;'; + put 'proc metadata in=inref out=response;'; + put 'run;'; + put '%end;'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Person";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Person/@Id";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Person/@Name";'; + put 'put "characterstring256";'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASObjects out=&outds;'; + put 'by name;'; + put 'run;'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getusers;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file usergroupsbymember.sas'; + put '@brief List the groups a member is in'; + put '@details Runs without \%mpeinit() - this enables the dropdown to be populated'; + put 'during configuration, when the settings service does not yet exist.'; + put '

SAS Macros

'; + put '@li mp_abort.sas'; + put '@li mm_getusers.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%macro x();'; + put '%if %sysfunc(exist(work.iwant)) ne 1 %then %do;'; + put '/* macro called by configurator - grab the URI of calling user */'; + put '%mm_getusers(user=&_metaperson, outds=work.iwant)'; + put '%end;'; + put '%mend x;'; + put '%x()'; + put 'data groups'; + put 'roles(rename=(groupuri=roleuri groupname=rolename groupdesc=roledesc)) ;'; + put 'length uri groupuri groupname groupdesc publictype str $256;'; + put 'call missing(of _all_);'; + put 'set iwant;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "WARNING: No groups found for ";'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri, "PublicType", PublicType);'; + put 'a+1;'; + put 'if PublicType = ''Role'' then output roles;'; + put 'else output groups;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'keep groupuri groupname groupdesc;'; + put 'if _n_=1 then delete; /* no content so don''t send empty row */'; + put 'run;'; + put 'data emails;'; + put 'keep email type;'; + put 'length emailuri email type uri str $256;'; + put 'call missing(of _all_);'; + put 'set iwant;'; + put '/* credit'; + put 'https://seleritysas.com/data-step-view-of-email-addresses-in-sas-metadata'; + put '*/'; + put 'emailrc=1;email_count=1;'; + put 'do while(emailrc>0);'; + put '/* Get Email from Person */'; + put 'emailrc=metadata_getnasn(uri,"EmailAddresses",email_count,emailuri);'; + put 'arc=1;'; + put 'if (emailrc>0) then do;'; + put 'arc=metadata_getattr(emailuri,"Address",email);'; + put 'arc=metadata_getattr(emailuri,"EmailType",type);'; + put 'end;'; + put 'if (arc=0) then output emails;'; + put 'email_count=email_count+1;'; + put 'end;'; + put 'run;'; + put 'data logins;'; + put 'length domain userid loginuri domainuri uri $256;'; + put 'keep domain userid;'; + put 'call missing(of _all_);'; + put 'set iwant;'; + put 'login_count=1;'; + put 'do while(metadata_getnasn(uri,"Logins",login_count,loginuri)>0);'; + put 'rc=metadata_getattr(loginuri,"UserID",userid);'; + put 'rc=metadata_getnasn(loginuri,"Domain",1,domainuri);'; + put 'rc=metadata_getattr(domainuri,"Name",domain);'; + put 'output;'; + put 'login_count+1;'; + put 'end;'; + put 'run;'; + put 'data info;'; + put 'length uri name displayname metadatacreated metadataupdated $256;'; + put 'keep name displayname metadatacreated metadataupdated;'; + put 'call missing(of _all_);'; + put 'set iwant;'; + put 'rc=metadata_getattr(uri,"Name",name);'; + put 'rc=metadata_getattr(uri,"DisplayName",displayname);'; + put 'rc=metadata_getattr(uri,"MetadataCreated",MetadataCreated);'; + put 'rc=metadata_getattr(uri,"MetadataUpdated",MetadataUpdated);'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,emails)'; + put '%webout(OBJ,groups)'; + put '%webout(OBJ,roles)'; + put '%webout(OBJ,logins)'; + put '%webout(OBJ,info)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=usermembers; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getusers('; + put 'outds=work.mm_getusers,'; + put 'user=0'; + put ')/*/STORE SOURCE*/;'; + put 'filename response temp;'; + put '%if %superq(user)=0 %then %do;'; + put 'proc metadata in= '''; + put '$METAREPOSITORY'; + put 'Person'; + put 'SAS'; + put '0'; + put ''; + put ''; + put ''; + put ''; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'filename inref temp;'; + put 'data _null_;'; + put 'file inref;'; + put 'put "";'; + put 'put "$METAREPOSITORY";'; + put 'put "Person";'; + put 'put "SAS";'; + put 'put "";'; + put 'put "128";'; + put 'put "";'; + put 'put "";'; + put 'put '''';'; + put 'put "";'; + put 'length string $10000;'; + put 'string=cats('''');'; + put 'put string;'; + put 'put "";'; + put 'put "";'; + put 'run;'; + put 'proc metadata in=inref out=response;'; + put 'run;'; + put '%end;'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Person";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Person/@Id";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/Person/@Name";'; + put 'put "characterstring256";'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASObjects out=&outds;'; + put 'by name;'; + put 'run;'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getusers;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getusers(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getusers(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getusers(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getusers;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file usermembers.sas'; + put '@brief List all SAS users'; + put '@details Gets a list of all SAS users'; + put '

SAS Macros

'; + put '@li dc_getusers.sas'; + put '@li mpeinit.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%dc_getusers(outds=users)'; + put '%webout(OPEN)'; + put '%webout(OBJ,users)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=usermembersbygroup; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file usermembersbygroup.sas'; + put '@brief List the members of a group'; + put '

SAS Macros

'; + put '@li mp_abort.sas'; + put '@li mpeinit.sas'; + put '@version 9.3'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put 'data sasMembers ;'; + put 'attrib uriGrp uriMem GroupId GroupName Group_or_Role MemberName MemberType'; + put 'MemberUpdated membercreated emailuri length=$64'; + put 'GroupDesc email length=$256'; + put 'rcGrp rcMem rc i j length=3;'; + put 'call missing (of _all_);'; + put 'drop uriGrp rcGrp rcMem rc i j;'; + put 'set iwant;'; + put 'i=1;'; + put '* Grab the URI for the first Group ;'; + put 'rcGrp=metadata_getnobj(groupid,i,uriGrp);'; + put '* If Group found, enter do loop ;'; + put 'if rcGrp>0 then do;'; + put 'call missing (rcMem,uriMem,GroupId,GroupName,Group_or_Role'; + put ',MemberName,MemberType);'; + put '* get group info ;'; + put 'rc = metadata_getattr(uriGrp,"Id",GroupId);'; + put 'rc = metadata_getattr(uriGrp,"Name",GroupName);'; + put 'rc = metadata_getattr(uriGrp,"PublicType",Group_or_Role);'; + put 'rc = metadata_getattr(uriGrp,"Desc",GroupDesc);'; + put 'j=1;'; + put 'do while (metadata_getnasn(uriGrp,"MemberIdentities",j,uriMem) > 0);'; + put 'call missing (MemberName,MemberType);'; + put 'rc = metadata_getattr(uriMem,"Name",MemberName);'; + put 'rc = metadata_getattr(uriMem,"PublicType",MemberType);'; + put 'rc=metadata_getattr(uriMem, "MetadataCreated", MemberCreated);'; + put 'rc=metadata_getattr(uriMem, "MetadataUpdated", MemberUpdated);'; + put 'emailrc=metadata_getnasn(uriMem,"EmailAddresses",1,emailuri);'; + put 'if (emailrc>0) then rc=metadata_getattr(emailuri,"Address",email);'; + put 'output;'; + put 'j+1;'; + put 'call missing(email,emailuri);'; + put 'end;'; + put 'end;'; + put 'if _n_=1 then delete;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,sasMembers)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=usermembersbyrole; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file usermembersbyrole.sas'; + put '@brief List the members of a role'; + put '

SAS Macros

'; + put '@li mp_abort.sas'; + put '@li mpeinit.sas'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put 'data sasMembers sasgroups;'; + put 'attrib uriGrp uriMem roleId roleName Group_or_Role MemberName MemberType'; + put 'MemberUpdated membercreated emailuri length=$64'; + put 'roleDesc email length=$256'; + put 'rcGrp rcMem rc i j length=3;'; + put 'call missing (of _all_);'; + put 'set iwant;'; + put 'i=1;'; + put '* Grab the URI for the first Group ;'; + put 'rcGrp=metadata_getnobj(roleid,i,uriGrp);'; + put '* If Group found, enter do loop ;'; + put 'if rcGrp>0 then do;'; + put 'call missing (rcMem,uriMem,roleId,roleName,Group_or_Role'; + put ',MemberName,MemberType,roleDesc);'; + put '* get group info ;'; + put 'rc = metadata_getattr(uriGrp,"Id",roleId);'; + put 'rc = metadata_getattr(uriGrp,"Name",roleName);'; + put 'rc = metadata_getattr(uriGrp,"PublicType",Group_or_Role);'; + put 'rc = metadata_getattr(uriGrp,"Desc",roleDesc);'; + put 'j=1;'; + put 'if Group_or_Role=''Role'' then do while'; + put '(metadata_getnasn(uriGrp,"MemberIdentities",j,uriMem) > 0);'; + put 'call missing (MemberName,MemberType);'; + put 'call missing(email,emailuri);'; + put 'rc = metadata_getattr(uriMem,"Name",MemberName);'; + put 'rc = metadata_getattr(uriMem,"PublicType",MemberType);'; + put 'rc=metadata_getattr(uriMem, "MetadataCreated", MemberCreated);'; + put 'rc=metadata_getattr(uriMem, "MetadataUpdated", MemberUpdated);'; + put 'emailrc=metadata_getnasn(uriMem,"EmailAddresses",1,emailuri);'; + put 'if (emailrc>0) then rc=metadata_getattr(emailuri,"Address",email);'; + put 'if membertype=''UserGroup'' then output sasgroups;'; + put 'else output sasmembers;'; + put 'j+1;'; + put 'end;'; + put 'end;'; + put 'if _n_=1 then delete; /* no roles so don''t send empty row */'; + put 'keep uriMem membertype membername MemberCreated MemberUpdated email;'; + put 'run;'; + put '%webout(OPEN)'; + put '%webout(OBJ,sasGroups)'; + put '%webout(OBJ,sasMembers)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=userroles; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getroles('; + put 'outds=work.mm_getroles'; + put ')/*/STORE SOURCE*/;'; + put 'filename response temp;'; + put 'options noquotelenmax;'; + put 'proc metadata in= ''$METAREPOSITORY'; + put 'IdentityGroupSAS388'; + put ''; + put ''; + put ''; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/IdentityGroup";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/IdentityGroup/@Id";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/IdentityGroup/@Name";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put "/GetMetadataObjects/Objects/IdentityGroup/@Desc";'; + put 'put "";'; + put 'put "characterstring500";'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.roles out=&outds;'; + put 'by rolename;'; + put 'run;'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getroles;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getroles(outds=mm_getroles);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getroles(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getroles(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getroles;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file userroles.sas'; + put '@brief List all SAS Roles'; + put '@details Gets a list of all SAS Roles'; + put '

SAS Macros

'; + put '@li dc_getroles.sas'; + put '@li mpeinit.sas'; + put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; + put 'downloaded from here: https://4gl.uk/dcdeploy'; + put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; + put 'and may not be re-distributed or re-sold without the express permission of'; + put '4GL Apps Ltd.'; + put '**/'; + put '%mpeinit()'; + put '%dc_getroles(outds=roles)'; + put '%webout(OPEN)'; + put '%webout(OBJ,roles)'; + put '%webout(CLOSE)'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/validations; + +%let service=columns_in_libds; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '%macro mf_getuniquename(prefix=MC);'; + put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; + put '%mend mf_getuniquename;'; + put '%macro mp_validatecol(incol,rule,outcol);'; + put '/* tempcol is given a unique name with every invocation */'; + put '%local tempcol;'; + put '%let tempcol=%mf_getuniquename();'; + put '%if &rule=ISINT %then %do;'; + put '&outcol=0;'; + put 'if not missing(&incol) then do;'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; + put 'end;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=ISNUM %then %do;'; + put '/*'; + put 'credit SØREN LASSEN'; + put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; + put '*/'; + put '&tempcol=input(&incol,?? best32.);'; + put 'if missing(&tempcol) then &outcol=0;'; + put 'else &outcol=1;'; + put 'drop &tempcol;'; + put '%end;'; + put '%else %if &rule=LIBDS %then %do;'; + put '/* match libref.dataset */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for LIBDS";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%else %if &rule=FORMAT %then %do;'; + put '/* match valid format - regex could probably be improved */'; + put 'if _n_=1 then do;'; + put 'retain &tempcol;'; + put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; + put 'if missing(&tempcol) then do;'; + put 'putlog "%str(ERR)OR: Invalid expression for FORMAT";'; + put 'stop;'; + put 'end;'; + put 'drop &tempcol;'; + put 'end;'; + put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; + put 'else &outcol=0;'; + put '%end;'; + put '%mend mp_validatecol;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Generic validator for table columns'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li MPELIB - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Inputs

'; + put '
work.sourcerow
'; + put 'Has source table structure.'; + put '

Service Outputs

'; + put 'The values provided below are generic samples - we encourage you to replace'; + put 'these with realistic values in your own deployments.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '@li mf_getuniquename.sas'; + put '@li mp_abort.sas'; + put '@li mp_validatecol.sas'; + put '**/'; + put '/* send back the raw and formatted values */'; + put '%let tgtlibds=0;'; + put '%let varlibds=%mf_getuniquename();'; + put '%let vartgtlibds=%mf_getuniquename();'; + put '%let var_is_libds=%mf_getuniquename();'; + put 'data _null_;'; + put 'length xl_libref base_lib select_lib rls_libref cls_libref libref $8'; + put 'xl_table base_ds select_ds rls_table cls_table dsn $32;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'set work.source_row;'; + put '&varlibds=symget(''libds'');'; + put 'if &varlibds="&mpelib..MPE_EXCEL_CONFIG"'; + put 'then &vartgtlibds=cats(xl_libref,''.'',xl_table);'; + put 'else if &varlibds="&mpelib..MPE_VALIDATIONS"'; + put 'then &vartgtlibds=cats(BASE_LIB,''.'',BASE_DS);'; + put 'else if &varlibds="&mpelib..MPE_SELECTBOX"'; + put 'then &vartgtlibds=cats(select_lib,''.'',select_ds);'; + put 'else if &varlibds="&mpelib..MPE_ROW_LEVEL_SECURITY"'; + put 'then &vartgtlibds=cats(RLS_LIBREF,''.'',RLS_TABLE);'; + put 'else if &varlibds="&mpelib..MPE_COLUMN_LEVEL_SECURITY"'; + put 'then &vartgtlibds=cats(CLS_LIBREF,''.'',CLS_TABLE);'; + put 'else if &varlibds="&mpelib..MPE_TABLES"'; + put 'then &vartgtlibds=cats(LIBREF,''.'',DSN);'; + put '/* validate libds */'; + put '%mp_validatecol(&vartgtlibds,LIBDS,&var_is_libds)'; + put 'if &var_is_libds=1 then call symputx(''tgtlibds'',&vartgtlibds);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= ("&tgtlibds" ="0" )'; + put ',mac=&_program..sas'; + put ',msg=%str(Unable to extract libds vars from &libds inputs for &variable_nm)'; + put ')'; + put '%dc_assignlib(READ,%scan(&tgtlibds,1,.))'; + put 'proc contents noprint data=&tgtlibds'; + put 'out=work.DYNAMIC_VALUES (keep=name rename=(name=display_value) );'; + put 'run;'; + put 'data work.DYNAMIC_VALUES;'; + put 'set work.DYNAMIC_VALUES;'; + put 'raw_value=upcase(display_value);'; + put 'format raw_value;'; + put 'run;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=libraries_all; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Generic validator for libraries'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li MPELIB - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'The values provided below are generic samples - we encourage you to replace'; + put 'these with realistic values in your own deployments.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; + put '

SAS Macros

'; + put '@li dc_getlibs.sas'; + put '**/'; + put '/**'; + put '* get full list of libraries'; + put '*/'; + put '%dc_getlibs(outds=work.mm_getLibs)'; + put 'proc sql;'; + put 'create table work.DYNAMIC_VALUES as'; + put 'select distinct libraryname as display_value,'; + put 'upcase(libraryref) as raw_value'; + put 'from work.mm_getLibs'; + put 'order by 1;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=libraries_editable; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Generic validator for editable libraries'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li MPELIB - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'The values provided below are generic samples - we encourage you to replace'; + put 'these with realistic values in your own deployments.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; + put '**/'; + put '/* send back the raw and formatted values */'; + put 'proc sql;'; + put 'create table work.DYNAMIC_VALUES as'; + put 'select distinct libref as display_value,'; + put 'upcase(libref) as raw_value'; + put 'from &mpelib..mpe_tables'; + put 'where &dc_dttmtfmt. < tx_to'; + put 'order by 1;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=mpe_alerts.alert_lib; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief fetch extended values for alert_lib'; + put '@details Fetches libraries from mpe_tables, creates extended values for'; + put 'alert_ds, and marks "*ALL*" as the forced (default) value.'; + put 'Available macro variables:'; + put '@li DC_LIBREF - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'Output should be a single table called "work.dynamic_values" in the format'; + put 'below. display_value should always be character, raw_value is unformatted'; + put 'character/numeric.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put 'The FORCED_VALUE column can be used to force an extended value to be selected'; + put 'by default when a particular value is chosen.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|FORCED_VALUE|'; + put '|---|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||.|'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||0|'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||1|'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|.|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|.|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||.|'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||1|'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|.|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|1|'; + put '

SAS Macros

'; + put '@li dc_getlibs.sas'; + put '**/'; + put '%mp_abort(iftrue= ("%upcase(&libds)" ne "&DC_LIBREF..MPE_ALERTS" )'; + put ',mac=&_program'; + put ',msg=%str('; + put 'Invalid validation, expected MPE_ALERTS.ALERT_LIB, got %superq(libds)'; + put ')'; + put ')'; + put 'proc sql;'; + put 'create table work.source as'; + put 'select libref,dsn'; + put 'from &DC_LIBREF..MPE_TABLES'; + put 'where tx_to > &dc_dttmtfmt.'; + put 'order by 1,2;'; + put 'data work.DYNAMIC_VALUES (keep=display_index raw_value display_value);'; + put 'set work.source end=last;'; + put 'by libref;'; + put 'if last.libref then do;'; + put 'display_index+1;'; + put 'raw_value=libref;'; + put 'display_value=libref;'; + put 'output;'; + put 'end;'; + put 'if last then do;'; + put 'display_index+1;'; + put 'raw_value=''*ALL*'';'; + put 'display_value=''*ALL*'';'; + put 'output;'; + put 'end;'; + put 'run;'; + put 'data work.dynamic_extended_values(keep=display_index extra_col_name display_type'; + put 'display_value RAW_VALUE_CHAR raw_value_num forced_value);'; + put 'set work.source end=last;'; + put 'by libref dsn;'; + put 'retain extra_col_name ''ALERT_DS'';'; + put 'retain display_type ''C'';'; + put 'retain raw_value_num .;'; + put 'raw_value_char=dsn;'; + put 'display_value=dsn;'; + put 'forced_value=0;'; + put 'if first.libref then display_index+1;'; + put 'if last.libref then do;'; + put 'display_value=''*ALL*'';'; + put 'raw_value_char=''*ALL*'';'; + put 'forced_value=1;'; + put 'output;'; + put 'end;'; + put 'else output;'; + put 'run;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=mpe_tables.dsn; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief fetch extended values for DSN'; + put '@details Fetches datasets in a library, and ALSO fetches a list of numeric'; + put 'vars for each dataset for use in adjacent columns (such as VAR_PROCESSED,'; + put 'TX_TO etc).'; + put 'Available macro variables:'; + put '@li MPELIB - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'Output should be a single table called "work.dynamic_values" in the format'; + put 'below. display_value should always be character, raw_value is unformatted'; + put 'character/numeric.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put 'The FORCED_VALUE column can be used to force an extended value to be selected'; + put 'by default when a particular value is chosen.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|FORCED_VALUE|'; + put '|---|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||.|'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||0|'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||1|'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|.|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|.|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||.|'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||1|'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|.|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|1|'; + put '

SAS Macros

'; + put '@li dc_getlibs.sas'; + put '**/'; + put '/* send back the raw and formatted values */'; + put '%let tgtlib=0;'; + put '%let varlibds=%mf_getuniquename();'; + put '%let vartgtlib=%mf_getuniquename();'; + put '%let var_is_lib=%mf_getuniquename();'; + put 'data _null_;'; + put 'length &varlibds $41 &vartgtlib $8;'; + put 'set work.source_row;'; + put '&varlibds=upcase(symget(''libds''));'; + put 'if &varlibds="&mpelib..MPE_TABLES" then &vartgtlib=LIBREF;'; + put 'else putlog "something unexpected happened";'; + put '/* validate name */'; + put 'if nvalid(&vartgtlib,''v7'') then call symputx(''tgtlib'',&vartgtlib);'; + put 'call symputx(''vartgtlib'',&vartgtlib);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= ("&tgtlib" ="0" )'; + put ',mac=&_program..sas'; + put ',msg=%str(Invalid library - %superq(vartgtlib))'; + put ',errds=work.dc_error_response'; + put ')'; + put '%dc_assignlib(READ,&tgtlib)'; + put 'proc sql;'; + put 'create table work.source as'; + put 'select upcase(memname) as memname'; + put ',upcase(name) as name'; + put ',type'; + put 'from dictionary.columns'; + put 'where libname="&TGTLIB"'; + put 'and memtype=''DATA'';'; + put 'create table work.members as'; + put 'select distinct memname as display_value'; + put 'from work.source;'; + put 'data work.DYNAMIC_VALUES;'; + put 'set work.members;'; + put 'raw_value=display_value;'; + put 'display_index=_n_;'; + put 'run;'; + put 'proc sql;'; + put 'create table work.dynamic_extended_values as'; + put 'select a.display_index'; + put ',b.name as display_value'; + put ',"C" as display_type'; + put ',b.name as RAW_VALUE_CHAR'; + put ',. as RAW_VALUE_NUM'; + put 'from work.dynamic_values a'; + put 'left join work.source b'; + put 'on a.display_value=b.memname'; + put 'where b.type=''num'';'; + put 'data work.dynamic_extended_values;'; + put 'set work.DYNAMIC_EXTENDED_VALUES;'; + put 'extra_col_name=''VAR_PROCESSED'';output;'; + put 'extra_col_name=''VAR_TXFROM'';output;'; + put 'extra_col_name=''VAR_TXTO'';output;'; + put 'extra_col_name=''VAR_BUSFROM'';output;'; + put 'extra_col_name=''VAR_BUSTO'';output;'; + put 'run;'; + put '/* set some force flags */'; + put 'data work.dynamic_extended_values;'; + put 'set work.DYNAMIC_EXTENDED_VALUES;'; + put 'forced_value=0;'; + put 'if extra_col_name=''VAR_TXFROM'' & raw_value_char=''TX_FROM'' then forced_value=1;'; + put 'if extra_col_name=''VAR_TXTO'' & raw_value_char=''TX_TO'' then forced_value=1;'; + put 'run;'; + put 'proc sort;'; + put 'by extra_col_name display_index;'; + put 'run;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=mpe_x_test.some_num; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getlibs('; + put 'outds=work.mm_getLibs'; + put ')/*/STORE SOURCE*/;'; + put '/*'; + put 'flags:'; + put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; + put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; + put 'is returned by the GetMetadataObjects method.'; + put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; + put '*/'; + put 'data _null_;'; + put 'flags=2048+256+8;'; + put 'call symputx(''flags'',flags,''l'');'; + put 'run;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put ''''; + put '$METAREPOSITORY'; + put 'SASLibrary'; + put ''; + put 'SAS'; + put '&flags'; + put ''; + put ''''; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put 'data _null_;'; + put 'infile response lrecl=32767;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put '''';'; + put 'put ''//Objects/SASLibrary'';'; + put 'put ''>17'';'; + put 'put ''//Objects/SASLibrary/@Id'';'; + put 'put ''256>'';'; + put 'put ''//Objects/SASLibrary/@Name'';'; + put 'put ''8'';'; + put 'put ''//Objects/SASLibrary/@Libref'';'; + put 'put ''>12'';'; + put 'put ''//Objects/SASLibrary/@Engine'';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put '/* sort the response by library name */'; + put 'proc sort data=_XML_.saslibrary out=&outds;'; + put 'by libraryname;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getlibs;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getlibs(outds=mm_getlibs);'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(''repo''!!cats(_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getlibs(outds=&outds)'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put '%mm_getlibs(outds=&outds.a)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_getlibs;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Generic validator for libraries'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li DC_LIBREF - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'Output should be a single table called "work.dynamic_values" in the format'; + put 'below. display_value should always be character, raw_value is unformatted'; + put 'character/numeric.'; + put '|DISPLAY_VALUE:$|RAW_VALUE:??|'; + put '|---|---|'; + put '|$44.00|44|'; + put '

SAS Macros

'; + put '@li dc_getlibs.sas'; + put '**/'; + put 'proc sql;'; + put 'create table work.DYNAMIC_VALUES as'; + put 'select distinct cats(some_num) as display_value,'; + put 'some_num as raw_value'; + put 'from &libds'; + put 'order by 1;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=sas_groups; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_getGroups('; + put 'user='; + put ',outds=work.mm_getGroups'; + put ',repo=foundation'; + put ',mDebug=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD oldrepo;'; + put '%let oldrepo=%sysfunc(getoption(metarepository));'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_getGroups.sas;'; + put '%&mD.put _local_;'; + put '/* on some sites, user / group info is in a different metadata repo to the'; + put 'default */'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&repo;'; + put '%end;'; + put '%if %length(&user)=0 %then %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'i+1;'; + put 'do while'; + put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'i+1;'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put 'data &outds (keep=groupuri groupname groupdesc);'; + put 'length uri groupuri groupname groupdesc group_or_role $256;'; + put 'call missing(of _all_);'; + put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; + put 'if rc<=0 then do;'; + put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; + put '", or there was an issue reading the repository.";'; + put 'stop;'; + put 'end;'; + put 'a=1;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'if grpassn in (-3,-4) then do;'; + put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; + put 'output;'; + put 'end;'; + put 'else do while (grpassn > 0);'; + put 'rc=metadata_getattr(groupuri, "Name", groupname);'; + put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; + put 'a+1;'; + put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; + put 'if Group_or_Role = ''UserGroup'' then output;'; + put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; + put 'end;'; + put 'run;'; + put '%end;'; + put '%if &oldrepo ne &repo %then %do;'; + put 'options metarepository=&oldrepo;'; + put '%end;'; + put '%mend mm_getGroups;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_getgroups(outds=mm_getlibs);'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '%put _local_;'; + put '%mm_getgroups(outds=&outds,repo=foundation)'; + put '%do x=1 %to &repocnt;'; + put '%mm_getgroups(outds=&outds.a, repo=&&repo&x)'; + put 'proc append base=&outds data=&outds.a;'; + put 'run;'; + put '%end;'; + put 'proc sort data=&outds noduprec;'; + put 'by groupname;'; + put 'run;'; + put '%mend dc_getgroups;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief validating the mpe_security.sas_group column'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'The values provided below are generic samples - we encourage you to replace'; + put 'these with realistic values in your own deployments.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; + put '

SAS Macros

'; + put '@li dc_getgroups.sas'; + put '**/'; + put '%dc_getgroups(outds=groups)'; + put 'proc sql;'; + put 'create table work.DYNAMIC_VALUES as'; + put 'select distinct groupname as display_value,'; + put 'groupname as raw_value'; + put 'from work.groups'; + put 'order by 1;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=tables_all; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '%macro mm_assignlib('; + put 'libref'; + put ',mAbort=HARD'; + put ')/*/STORE SOURCE*/;'; + put '%local mp_abort msg;'; + put '%let mp_abort=0;'; + put '%if %sysfunc(libref(&libref)) %then %do;'; + put 'data _null_;'; + put 'length liburi LibName msg $200;'; + put 'call missing(of _all_);'; + put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; + put 'if nobj=1 then do;'; + put 'rc=metadata_getattr(liburi,"Name",LibName);'; + put '/* now try and assign it */'; + put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; + put 'putlog "&libref could not be assigned";'; + put 'putlog liburi=;'; + put '/**'; + put '* Fetch the system message for display in the abort modal. This is'; + put '* not always helpful though. One example, previously received:'; + put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; + put '*/'; + put 'msg=sysmsg();'; + put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; + put 'msg=catx(" ",'; + put '"Could not assign %upcase(&libref).",'; + put '"Please check metadata permissions! Libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'else if msg="ERROR: User does not have appropriate authorization "!!'; + put '"level for library SAVE."'; + put 'then do;'; + put 'msg=catx(" ",'; + put '"ERROR: User does not have appropriate authorization level",'; + put '"for library %upcase(&libref), libname:",libname,'; + put '"Liburi:",liburi'; + put ');'; + put 'end;'; + put 'call symputx(''msg'',msg,''l'');'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; + put 'end;'; + put 'else do;'; + put 'put (_all_)(=);'; + put 'call symputx(''libname'',libname,''L'');'; + put 'call symputx(''liburi'',liburi,''L'');'; + put 'end;'; + put 'end;'; + put 'else if nobj>1 then do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"More than one library with libref=&libref");'; + put 'end;'; + put 'else do;'; + put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; + put 'call symputx(''msg'',"Library &libref not found in metadata");'; + put 'end;'; + put 'run;'; + put '%put NOTE: &msg;'; + put '%end;'; + put '%else %do;'; + put '%put NOTE: Library &libref is already assigned;'; + put '%end;'; + put '%mp_abort(iftrue= (&mp_abort=1)'; + put ',mac=mm_assignlib.sas'; + put ',msg=%superq(msg)'; + put ')'; + put '%mend mm_assignlib;'; + put '/** @cond */'; + put '%macro mf_getengine(libref'; + put ')/*/STORE SOURCE*/;'; + put '%local dsid engnum rc engine;'; + put '/* in case the parameter is a libref.tablename, pull off just the libref */'; + put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; + put '%let dsid=%sysfunc('; + put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; + put ');'; + put '%if (&dsid ^= 0) %then %do;'; + put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; + put '%let rc=%sysfunc(fetch(&dsid));'; + put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; + put '%put &libref. ENGINE is &engine.;'; + put '%let rc= %sysfunc(close(&dsid));'; + put '%end;'; + put '%upcase(&engine)'; + put '%mend mf_getengine;'; + put '/** @endcond */'; + put '%macro mm_assigndirectlib('; + put 'libref /* libref to assign from metadata */'; + put ',open_passthrough= /* provide an alias to produce the'; + put 'CONNECT TO statement for the'; + put 'relevant external database */'; + put ',sql_options= /* add any options to add to proc sql statement eg outobs='; + put '(only valid for pass through) */'; + put ',mDebug=0'; + put ',mAbort=0'; + put ')/*/STORE SOURCE*/;'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing mm_assigndirectlib.sas;'; + put '%&mD.put _local_;'; + put '%if &mAbort=1 %then %let mAbort=;'; + put '%else %let mAbort=%str(*);'; + put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; + put '%local cur_engine;'; + put '%let cur_engine=%mf_getengine(&libref);'; + put '%if &cur_engine ne META and &cur_engine ne %then %do;'; + put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; + put '%return;'; + put '%end;'; + put '%else %if %upcase(&libref)=WORK %then %do;'; + put '%put NOTE: We already have a direct connection to WORK :-) ;'; + put '%return;'; + put '%end;'; + put '/* need to determine the library ENGINE first */'; + put '%local engine;'; + put 'data _null_;'; + put 'length lib_uri engine $256;'; + put 'call missing (of _all_);'; + put '/* get URI for the particular library */'; + put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put '/* get the Engine attribute of the previous object */'; + put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; + put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; + put 'call symputx("liburi",lib_uri,''l'');'; + put 'call symputx("engine",engine,''l'');'; + put 'run;'; + put '/* now obtain engine specific connection details */'; + put '%if &engine=BASE %then %do;'; + put '%&mD.put NOTE: Retrieving BASE library path;'; + put 'data _null_;'; + put 'length up_uri $256 path cat_path $1024;'; + put 'retain cat_path;'; + put 'call missing (of _all_);'; + put '/* get all the filepaths of the UsingPackages association */'; + put 'i=1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'do while (rc3>0);'; + put '/* get the DirectoryName attribute of the previous object */'; + put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; + put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; + put 'else path ='' "''!!trim(path)!!''" '';'; + put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; + put 'i+1;'; + put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; + put 'end;'; + put 'cat_path = trim(cat_path) !! ")";'; + put '&mD.putlog "NOTE: Getting physical path for &libref library";'; + put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; + put '&mD.putlog "NOTE: Libname cmd will be:";'; + put '&mD.putlog "libname &libref" cat_path;'; + put 'call symputx("filepath",cat_path,''l'');'; + put 'run;'; + put '%if %sysevalf(&sysver<9.4) %then %do;'; + put 'libname &libref &filepath;'; + put '%end;'; + put '%else %do;'; + put '/* apply the new filelocks option to cater for temporary locks */'; + put 'libname &libref &filepath filelockwait=5;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=REMOTE %then %do;'; + put 'data x;'; + put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; + put 'Delimiter $256 properties $2048;'; + put 'retain properties;'; + put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; + put 'k = 1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'do while (rcProp > 0);'; + put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; + put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; + put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; + put 'properties = trim(properties) !! " " !! trim(PropertyName)'; + put '!! trim(Delimiter) !! trim(PropertyValue);'; + put 'output;'; + put 'k+1;'; + put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; + put 'end;'; + put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; + put '&mD.put _all_;'; + put '%&mD.put NOTE: Libname cmd will be:;'; + put '%&mD.put libname &libref &engine &properties slibref=&libref;'; + put 'call symputx ("properties",trim(properties),''l'');'; + put 'run;'; + put 'libname &libref &engine &properties slibref=&libref;'; + put '%end;'; + put '%else %if &engine=OLEDB %then %do;'; + put '%&mD.put NOTE: Retrieving OLEDB connection details;'; + put 'data _null_;'; + put 'length domain datasource provider properties schema'; + put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection domain */'; + put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; + put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; + put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; + put '&mD.putlog ''NOTE- domain: '' domain;'; + put '/* get DSN and PROVIDER from connection properties */'; + put 'i=0;'; + put 'do until (rc<0);'; + put 'i+1;'; + put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; + put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; + put 'end;'; + put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; + put 'do;'; + put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; + put 'end;'; + put 'end;'; + put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; + put 'datasource provider properties;'; + put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; + put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; + put 'call symputx(''SQL_domain'',domain,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'call symputx(''SQL_provider'',provider,''l'');'; + put 'call symputx(''SQL_properties'',properties,''l'');'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; + put '/* need additional properties to make this work */'; + put 'properties=(''Integrated Security''=SSPI'; + put '''Persist Security Info''=True'; + put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; + put ')'; + put 'DATASOURCE=&sql_dsn PROMPT=NO'; + put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; + put '%end;'; + put '%else %do;'; + put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; + put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; + put '%if %length(&sql_domain)>0 %then %do;'; + put 'authdomain="&sql_domain"'; + put '%end;'; + put 'connection=shared;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ODBC %then %do;'; + put '&mD.%put NOTE: Retrieving ODBC connection details;'; + put 'data _null_;'; + put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; + put 'call missing (of _all_);'; + put '/* get source connection ID */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; + put '/* get connection properties */'; + put 'i=0;'; + put 'do until (rc2<0);'; + put 'i+1;'; + put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; + put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; + put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; + put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; + put 'rc2=-1;'; + put 'end;'; + put 'end;'; + put '/* get SCHEMA */'; + put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; + put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; + put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; + put 'rc6= up_uri= rc7= schema=;'; + put 'call symputx(''SQL_schema'',schema,''l'');'; + put 'call symputx(''SQL_dsn'',datasource,''l'');'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put 'proc sql &sql_options;'; + put 'connect to ODBC as &open_passthrough'; + put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; + put '%end;'; + put '%else %do;'; + put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=POSTGRES %then %do;'; + put '%put NOTE: Obtaining POSTGRES library details;'; + put 'data _null_;'; + put 'length database ignore_read_only_columns direct_exe preserve_col_names'; + put 'preserve_tab_names server schema authdomain user password'; + put 'prop name value uri urisrc $256.;'; + put 'call missing (of _all_);'; + put '/* get database value */'; + put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,database,"");'; + put 'if database^='''' then database=''database=''!!quote(trim(database));'; + put 'call symputx(''database'',database,''l'');'; + put '/* get IGNORE_READ_ONLY_COLUMNS value */'; + put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; + put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; + put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; + put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; + put '/* get DIRECT_EXE value */'; + put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; + put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; + put 'call symputx(''direct_exe'',direct_exe,''l'');'; + put '/* get PRESERVE_COL_NAMES value */'; + put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; + put 'if preserve_col_names^='''' then preserve_col_names='; + put '''preserve_col_names=''!!preserve_col_names;'; + put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; + put '/* get PRESERVE_TAB_NAMES value */'; + put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; + put 'become case sensitive!! */'; + put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; + put 'if preserve_tab_names^='''' then preserve_tab_names='; + put '''preserve_tab_names=''!!preserve_tab_names;'; + put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; + put '/* get SERVER value */'; + put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; + put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; + put 'rc=metadata_getprop(uri,prop,server,"");'; + put 'end;'; + put 'if server^='''' then server=''server=''!!quote(cats(server));'; + put 'call symputx(''server'',server,''l'');'; + put '/* get SCHEMA value */'; + put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; + put 'rc=metadata_getattr(uri,"SchemaName",schema);'; + put 'end;'; + put 'if schema^='''' then schema=''schema=''!!schema;'; + put 'call symputx(''schema'',schema,''l'');'; + put '/* get AUTHDOMAIN value */'; + put '/* this is only useful if the user account contains that auth domain'; + put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; + put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; + put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; + put 'end;'; + put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; + put '*/'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* get user & pass */'; + put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; + put 'do;'; + put 'rc=metadata_getattr(uri,"UserID",user);'; + put 'rc=metadata_getattr(uri,"Password",password);'; + put 'end;'; + put 'if user^='''' then do;'; + put 'user=''user=''!!quote(trim(user));'; + put 'password=''password=''!!quote(trim(password));'; + put 'end;'; + put 'call symputx(''user'',user,''l'');'; + put 'call symputx(''password'',password,''l'');'; + put '&md.put _all_;'; + put 'run;'; + put '%if %length(&open_passthrough)>0 %then %do;'; + put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%if &mdebug=1 %then %do;'; + put '%put NOTE: Executing the following:/;'; + put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; + put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; + put '%put NOTE- &server &schema &authdomain &user &password //;'; + put '%end;'; + put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; + put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; + put '&user &password;'; + put '%end;'; + put '%end;'; + put '%else %if &engine=ORACLE %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null_;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/* path */'; + put 'rc=metadata_getprop(assocuri1,'; + put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; + put '%put NOTE- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine=SQLSVR %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; + put '%put NOTE- user="&user" pass="XXX";'; + put '%put NOTE-;'; + put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; + put '%end;'; + put '%else %if &engine=TERADATA %then %do;'; + put '%put NOTE: Obtaining &engine library details;'; + put 'data _null;'; + put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; + put 'passwd $256;'; + put 'call missing (of _all_);'; + put '/* get auth domain */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; + put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; + put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; + put 'call symputx(''authdomain'',authdomain,''l'');'; + put '/*'; + put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; + put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; + put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; + put 'call symputx(''user'',userid,''l'');'; + put 'call symputx(''pass'',passwd,''l'');'; + put '*/'; + put '/* path */'; + put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; + put 'rc=metadata_getprop(assocuri2,'; + put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; + put 'call symputx(''path'',path,''l'');'; + put '/* schema */'; + put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; + put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; + put 'call symputx(''schema'',schema,''l'');'; + put 'run;'; + put '%put NOTE: Executing the following:/; %put NOTE-;'; + put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; + put '%put NOTe- authdomain=&authdomain;'; + put '%put NOTE-;'; + put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; + put '%end;'; + put '%else %if &engine= %then %do;'; + put '%put NOTE: Libref &libref is not registered in metadata;'; + put '%&mAbort.mp_abort('; + put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; + put ',mac=mm_assigndirectlib.sas);'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; + put '%put %str(WARN)ING- Please contact your support team.;'; + put '%return;'; + put '%end;'; + put '%mend mm_assigndirectlib;'; + put '%macro mm_getrepos('; + put 'outds=work.mm_getrepos'; + put ')/*/STORE SOURCE*/;'; + put '* use a temporary fileref to hold the response;'; + put 'filename response temp;'; + put '/* get list of libraries */'; + put 'proc metadata in='; + put '"1"'; + put 'out=response;'; + put 'run;'; + put '/* write the response to the log for debugging */'; + put '/*'; + put 'data _null_;'; + put 'infile response lrecl=1048576;'; + put 'input;'; + put 'put _infile_;'; + put 'run;'; + put '*/'; + put '/* create an XML map to read the response */'; + put 'filename sxlemap temp;'; + put 'data _null_;'; + put 'file sxlemap;'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository";'; + put 'put "";'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Id";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Name";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Desc";'; + put 'put "";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; + put 'put "characterstring200";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; + put 'put "characterstring20";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; + put 'put "characterstring10";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@Access";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; + put 'put "characterstring16";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Path";'; + put 'put "";'; + put 'put "characterstring256";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Engine";'; + put 'put "";'; + put 'put "characterstring8";'; + put 'put '''';'; + put 'put '''';'; + put 'put "/GetRepositories/Repositories/Repository/@Options";'; + put 'put "";'; + put 'put "characterstring32";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put '''';'; + put 'put "";'; + put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; + put 'put "characterstring24";'; + put 'put '''';'; + put 'put ''
'';'; + put 'run;'; + put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; + put 'proc sort data= _XML_.SASRepos out=&outds;'; + put 'by name;'; + put 'run;'; + put '/* clear references */'; + put 'filename sxlemap clear;'; + put 'filename response clear;'; + put 'libname _XML_ clear;'; + put '%mend mm_getrepos;'; + put '%macro dc_assignlib(type,libref,passthru=);'; + put '%put &sysmacroname entry vars:;'; + put '%put _local_;'; + put '/* take current repository */'; + put '%local repo repocnt x;'; + put '%let repo=%sysfunc(getoption(metarepository));'; + put '/* get list of repositories and filter */'; + put '%mm_getrepos(outds=repos)'; + put '%let repocnt=0;'; + put 'data repos;'; + put 'set repos;'; + put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; + put '& upcase(name) ne "%upcase(&repo)";'; + put 'keep id name ;'; + put 'call symputx(cats(''repo'',_n_),name,''l'');'; + put 'call symputx(''repocnt'',_n_,''l'');'; + put 'run;'; + put '/* find out which of these repositories has the libref we are searching for */'; + put '%local lib_uri;'; + put '%let lib_uri=NOTFOUND;'; + put 'data _null_; /* check default repo first */'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri=NOTFOUND %then %do;'; + put '%do x=1 %to &repocnt;'; + put 'options metarepository=&&repo&x;'; + put 'data _null_;'; + put 'length lib_uri $256;'; + put 'call missing (of _all_);'; + put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; + put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; + put 'run;'; + put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; + put '%end;'; + put '%end;'; + put '%if &type=READ %then %do;'; + put '%mm_assignlib(&libref)'; + put '%end;'; + put '%else %if &type=WRITE %then %do;'; + put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; + put '%end;'; + put 'options metarepository=&repo;'; + put '%mend dc_assignlib;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Generic validator for tables in a library'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li MPELIB - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Outputs

'; + put 'The values provided below are generic samples - we encourage you to replace'; + put 'these with realistic values in your own deployments.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5||'; + put '|1|DISCOUNT_RT|"40%"|N|0.4||'; + put '|1|DISCOUNT_RT|"30%"|N|0.3||'; + put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5||'; + put '|2|DISCOUNT_RT|"40%"|N|0.4||'; + put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; + put '

SAS Macros

'; + put '@li dc_assignlib.sas'; + put '**/'; + put '/* send back the raw and formatted values */'; + put '%let tgtlib=0;'; + put '%let varlibds=%mf_getuniquename();'; + put '%let vartgtlib=%mf_getuniquename();'; + put '%let var_is_lib=%mf_getuniquename();'; + put 'data _null_;'; + put 'length &varlibds $41 &vartgtlib $8 libref $8 rls_libref $8;'; + put 'if _n_=1 then call missing(of _all_);'; + put 'set work.source_row;'; + put '&varlibds=upcase(symget(''libds''));'; + put 'if &varlibds="&mpelib..MPE_TABLES" then &vartgtlib=LIBREF;'; + put 'else if &varlibds="&mpelib..MPE_ROW_LEVEL_SECURITY"'; + put 'then &vartgtlib=RLS_LIBREF;'; + put 'else if &varlibds="&mpelib..MPE_COLUMN_LEVEL_SECURITY"'; + put 'then &vartgtlib=CLS_LIBREF;'; + put '/* validate name */'; + put 'if nvalid(&vartgtlib,''v7'') then call symputx(''tgtlib'',&vartgtlib);'; + put 'call symputx(''vartgtlib'',&vartgtlib);'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= ("&tgtlib" ="0" )'; + put ',mac=&_program..sas'; + put ',msg=%str(Invalid library - %superq(vartgtlib))'; + put ',errds=work.dc_error_response'; + put ')'; + put '%dc_assignlib(READ,&tgtlib)'; + put 'data members; /* empty table */'; + put 'name='' '';'; + put 'run;'; + put 'ods output Members=Members;'; + put 'proc datasets library=&tgtlib ;'; + put 'run;'; + put '/* send back the raw and formatted values */'; + put 'proc sql;'; + put 'create table work.DYNAMIC_VALUES as'; + put 'select distinct name as display_value,'; + put 'upcase(name) as raw_value'; + put 'from work.members'; + put 'where MemType=''DATA'''; + put 'order by 1;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=tables_editable; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '/**'; + put '@file mp_jsonout.sas'; + put '@brief Writes JSON in SASjs format to a fileref'; + put '@details This macro can be used to OPEN a JSON stream and send one or more'; + put 'tables as arrays of rows, where each row can be an object or a nested array.'; + put 'There are two engines available - DATASTEP or PROCJSON.'; + put 'PROC JSON is fast but will produce errs like the ones below if'; + put 'special chars are encountered.'; + put '> (ERR)OR: Some code points did not transcode.'; + put '> An object or array close is not valid at this point in the JSON text.'; + put '> Date value out of range'; + put 'If this happens, try running with ENGINE=DATASTEP.'; + put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; + put 'can also convert entire datasets to formatted values. Output JSON is always'; + put 'in UTF-8.'; + put 'Usage:'; + put 'filename tmp temp;'; + put 'data class; set sashelp.class;run;'; + put '%mp_jsonout(OPEN,jref=tmp)'; + put '%mp_jsonout(OBJ,class,jref=tmp)'; + put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; + put '%mp_jsonout(CLOSE,jref=tmp)'; + put 'data _null_;'; + put 'infile tmp;'; + put 'input;putlog _infile_;'; + put 'run;'; + put 'If you are building web apps with SAS then you are strongly encouraged to use'; + put 'the mX_createwebservice macros in combination with the'; + put '[sasjs adapter](https://github.com/sasjs/adapter).'; + put 'For more information see https://sasjs.io'; + put '@param [in] action Valid values:'; + put '@li OPEN - opens the JSON'; + put '@li OBJ - sends a table with each row as an object'; + put '@li ARR - sends a table with each row in an array'; + put '@li CLOSE - closes the JSON'; + put '@param [in] ds The dataset to send. Must be a work table.'; + put '@param [out] jref= (_webout) The fileref to which to send the JSON'; + put '@param [out] dslabel= The name to give the table in the exported JSON'; + put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; + put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; + put '@li PROCJSON (default)'; + put '@li DATASTEP (more reliable when data has non standard characters)'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to JSON'; + put '

Related Macros

'; + put '@li mp_ds2fmtds.sas'; + put '@version 9.2'; + put '@author Allan Bowe'; + put '@source https://github.com/sasjs/core'; + put '**/'; + put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; + put ',engine=DATASTEP'; + put ',missing=NULL'; + put ',showmeta=N'; + put ',maxobs=MAX'; + put ')/*/STORE SOURCE*/;'; + put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; + put 'tmpds1 tmpds2 tmpds3 tmpds4;'; + put '%let numcols=0;'; + put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; + put '%if &action=OPEN %then %do;'; + put 'options nobomfile;'; + put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; + put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if (&action=ARR or &action=OBJ) %then %do;'; + put '/* force variable names to always be uppercase in the JSON */'; + put 'options validvarname=upcase;'; + put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; + put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; + put 'filename _sjs1 temp lrecl=200 ;'; + put 'data _null_; file _sjs1 encoding=''utf-8'';'; + put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjs1 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs1 clear;'; + put '/* grab col defs */'; + put 'proc contents noprint data=&ds'; + put 'out=_data_(keep=name type length format formatl formatd varnum label);'; + put 'run;'; + put '%let colinfo=%scan(&syslast,2,.);'; + put 'proc sort data=&colinfo;'; + put 'by varnum;'; + put 'run;'; + put '/* move meta to mac vars */'; + put 'data &colinfo;'; + put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; + put 'set &colinfo end=last nobs=nobs;'; + put 'name=upcase(name);'; + put '/* fix formats */'; + put 'if type=2 or type=6 then do;'; + put 'typelong=''char'';'; + put 'length fmt $49.;'; + put 'if format='''' then fmt=cats(''$'',length,''.'');'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else fmt=cats(format,formatl,''.'');'; + put 'end;'; + put 'else do;'; + put 'typelong=''num'';'; + put 'if format='''' then fmt=''best.'';'; + put 'else if formatl=0 then fmt=cats(format,''.'');'; + put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; + put 'else fmt=cats(format,formatl,''.'',formatd);'; + put 'end;'; + put '/* 32 char unique name */'; + put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; + put 'call symputx(cats(''name'',_n_),name,''l'');'; + put 'call symputx(cats(''newname'',_n_),newname,''l'');'; + put 'call symputx(cats(''length'',_n_),length,''l'');'; + put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; + put 'call symputx(cats(''type'',_n_),type,''l'');'; + put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; + put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; + put '/* overwritten when fmt=Y and a custom format exists in catalog */'; + put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; + put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+3)*1.5)),''l'');'; + put 'run;'; + put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql;'; + put 'select count(*) into: lastobs from &ds;'; + put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; + put '%if &engine=PROCJSON %then %do;'; + put '%if &missing=STRING %then %do;'; + put '%put &sysmacroname: Special Missings not supported in proc json.;'; + put '%put &sysmacroname: Switching to DATASTEP engine;'; + put '%goto datastep;'; + put '%end;'; + put 'data &tempds;'; + put 'set &ds;'; + put '&stmt_obs;'; + put '%if &fmt=N %then format _numeric_ best32.;;'; + put '/* PRETTY is necessary to avoid line truncation in large files */'; + put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; + put 'proc json out=_sjs2 pretty'; + put '%if &action=ARR %then nokeys ;'; + put ';export &tempds / nosastags fmtnumeric;'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs2 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs2 clear;'; + put '%end;'; + put '%else %if &engine=DATASTEP %then %do;'; + put '%datastep:'; + put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; + put '%then %do;'; + put '%put &sysmacroname: &ds NOT FOUND!!!;'; + put '%return;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put '/**'; + put '* Extract format definitions'; + put '* First, by getting library locations from dictionary.formats'; + put '* Then, by exporting the width using proc format'; + put '* Cannot use maxw from sashelp.vformat as not always populated'; + put '* Cannot use fmtinfo() as not supported in all flavours'; + put '*/'; + put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; + put 'proc sql noprint;'; + put 'create table &tmpds1 as'; + put 'select cats(libname,''.'',memname) as fmtcat,'; + put 'fmtname'; + put 'from dictionary.formats'; + put 'where fmttype=''F'' and libname is not null'; + put 'and fmtname in (select format from &colinfo where format is not null)'; + put 'order by 1;'; + put 'create table &tmpds2('; + put 'FMTNAME char(32),'; + put 'MAX num length=3'; + put ');'; + put '%local catlist cat fmtlist i;'; + put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; + put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; + put '%let cat=%scan(&catlist,&i,%str( ));'; + put 'proc sql;'; + put 'select distinct fmtname into: fmtlist separated by '' '''; + put 'from &tmpds1 where fmtcat="&cat";'; + put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname max);'; + put 'select &fmtlist;'; + put 'run;'; + put 'proc sql;'; + put 'insert into &tmpds2 select distinct fmtname,max from &tmpds3;'; + put '%end;'; + put 'proc sql;'; + put 'create table &tmpds4 as'; + put 'select a.*, b.max as maxw'; + put 'from &colinfo a'; + put 'left join &tmpds2 b'; + put 'on cats(a.format)=cats(upcase(b.fmtname))'; + put 'order by a.varnum;'; + put 'data _null_;'; + put 'set &tmpds4;'; + put 'if not missing(maxw);'; + put 'call symputx('; + put 'cats(''fmtlen'',_n_),'; + put '/* vars need extra padding due to JSON escaping of special chars */'; + put 'min(32767,ceil((max(length,maxw)+3)*1.5))'; + put ',''l'''; + put ');'; + put 'run;'; + put '/* configure varlenchk - as we are explicitly shortening the variables */'; + put '%let optval=%sysfunc(getoption(varlenchk));'; + put 'options varlenchk=NOWARN;'; + put 'data _data_(compress=char);'; + put '/* shorten the new vars */'; + put 'length'; + put '%do i=1 %to &numcols;'; + put '&&name&i $&&fmtlen&i'; + put '%end;'; + put ';'; + put '/* rename on entry */'; + put 'set &ds(rename=('; + put '%do i=1 %to &numcols;'; + put '&&name&i=&&newname&i'; + put '%end;'; + put '));'; + put '&stmt_obs;'; + put 'drop'; + put '%do i=1 %to &numcols;'; + put '&&newname&i'; + put '%end;'; + put ';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=num %then %do;'; + put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; + put '%end;'; + put '%else %do;'; + put '&&name&i=put(&&newname&i,&&fmt&i);'; + put '%end;'; + put '%end;'; + put 'if _error_ then do;'; + put 'call symputx(''syscc'',1012);'; + put 'stop;'; + put 'end;'; + put 'run;'; + put '%let fmtds=&syslast;'; + put 'options varlenchk=&optval;'; + put '%end;'; + put 'proc format; /* credit yabwon for special null removal */'; + put 'value bart (default=40)'; + put '%if &missing=NULL %then %do;'; + put '._ - .z = null'; + put '%end;'; + put '%else %do;'; + put '._ = [quote()]'; + put '. = null'; + put '.a - .z = [quote()]'; + put '%end;'; + put 'other = [best.];'; + put 'data &tempds;'; + put 'attrib _all_ label='''';'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'length &&name&i $&&fmtlen&i...;'; + put 'format &&name&i $&&fmtlen&i...;'; + put '%end;'; + put '%end;'; + put '%if &fmt=Y %then %do;'; + put 'set &fmtds;'; + put '%end;'; + put '%else %do;'; + put 'set &ds;'; + put '%end;'; + put '&stmt_obs;'; + put 'format _numeric_ bart.;'; + put '%do i=1 %to &numcols;'; + put '%if &&typelong&i=char or &fmt=Y %then %do;'; + put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;'; + put '&&name&i=''"''!!trim('; + put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; + put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; + put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; + put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; + put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; + put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; + put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; + put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; + put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; + put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; + put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; + put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; + put '))))))))))))!!''"'';'; + put 'end;'; + put 'else &&name&i=quote(cats(&&name&i));'; + put '%end;'; + put '%end;'; + put 'run;'; + put 'filename _sjs3 temp lrecl=131068 ;'; + put 'data _null_;'; + put 'file _sjs3 encoding=''utf-8'';'; + put 'if _n_=1 then put "[";'; + put 'set &tempds;'; + put 'if _n_>1 then put "," @; put'; + put '%if &action=ARR %then "[" ; %else "{" ;'; + put '%do i=1 %to &numcols;'; + put '%if &i>1 %then "," ;'; + put '%if &action=OBJ %then """&&name&i"":" ;'; + put '"&&name&i"n /* name literal for reserved variable names */'; + put '%end;'; + put '%if &action=ARR %then "]" ; %else "}" ; ;'; + put '/* close out the table */'; + put 'data _null_;'; + put 'file _sjs3 mod encoding=''utf-8'';'; + put 'put '']'';'; + put 'run;'; + put 'data _null_;'; + put 'infile _sjs3 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs3 clear;'; + put '%end;'; + put 'proc sql;'; + put 'drop table &colinfo, &tempds;'; + put '%if %substr(&showmeta,1,1)=Y %then %do;'; + put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; + put 'data _null_;'; + put 'file _sjs4;'; + put 'length label $350;'; + put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; + put 'do i=1 to &numcols;'; + put 'name=quote(trim(symget(cats(''name'',i))));'; + put 'format=quote(trim(symget(cats(''fmt'',i))));'; + put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; + put 'length=quote(trim(symget(cats(''length'',i))));'; + put 'type=quote(trim(symget(cats(''typelong'',i))));'; + put 'if i>1 then put "," @@;'; + put 'put name '':{"format":'' format '',"label":'' label'; + put ''',"length":'' length '',"type":'' type ''}'';'; + put 'end;'; + put 'put ''}}'';'; + put 'run;'; + put '/* send back to webout */'; + put 'data _null_;'; + put 'infile _sjs4 lrecl=1 recfm=n;'; + put 'file &jref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjs4 clear;'; + put '%end;'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put 'data _null_; file &jref encoding=''utf-8'' mod ;'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '%mend mp_jsonout;'; + put '/**'; + put '@file mm_webout.sas'; + put '@brief Send data to/from SAS Stored Processes'; + put '@details This macro should be added to the start of each Stored Process,'; + put '**immediately** followed by a call to:'; + put '%mm_webout(FETCH)'; + put 'This will read all the input data and create same-named SAS datasets in the'; + put 'WORK library. You can then insert your code, and send data back using the'; + put 'following syntax:'; + put 'data some datasets; * make some data ;'; + put 'retain some columns;'; + put 'run;'; + put '%mm_webout(OPEN)'; + put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; + put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; + put 'Finally, wrap everything up send some helpful system variables too'; + put '%mm_webout(CLOSE)'; + put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; + put '@param [in] ds The dataset to send back to the frontend'; + put '@param [out] dslabel= Value to use instead of table name for sending to JSON'; + put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; + put '@param [out] fref= (_webout) The fileref to which to write the JSON'; + put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; + put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; + put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; + put 'such as the column formats and types. The metadata is contained inside an'; + put 'object with the same name as the table but prefixed with a dollar sign - ie,'; + put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; + put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; + put 'that should be converted to output JSON'; + put '

SAS Macros

'; + put '@li mp_jsonout.sas'; + put '

Related Macros

'; + put '@li ms_webout.sas'; + put '@li mv_webout.sas'; + put '@version 9.3'; + put '@author Allan Bowe'; + put '**/'; + put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; + put ',showmeta=N,maxobs=MAX'; + put ');'; + put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; + put 'sasjs_tables;'; + put '%local i tempds jsonengine;'; + put '/* see https://github.com/sasjs/core/issues/41 */'; + put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; + put '%else %let jsonengine=DATASTEP;'; + put '%if &action=FETCH %then %do;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'options mprint notes mprintnest;'; + put '%end;'; + put '%let _webin_file_count=%eval(&_webin_file_count+0);'; + put '/* now read in the data */'; + put '%do i=1 %to &_webin_file_count;'; + put '%if &_webin_file_count=1 %then %do;'; + put '%let _webin_fileref1=&_webin_fileref;'; + put '%let _webin_name1=&_webin_name;'; + put '%end;'; + put 'data _null_;'; + put 'infile &&_webin_fileref&i termstr=crlf;'; + put 'input;'; + put 'call symputx(''input_statement'',_infile_);'; + put 'putlog "&&_webin_name&i input statement: " _infile_;'; + put 'stop;'; + put 'data &&_webin_name&i;'; + put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; + put 'input &input_statement;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'if _n_<20 then putlog _infile_;'; + put '%end;'; + put 'run;'; + put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; + put '%end;'; + put '%end;'; + put '%else %if &action=OPEN %then %do;'; + put '/* fix encoding */'; + put 'OPTIONS NOBOMFILE;'; + put '/**'; + put '* check xengine type to avoid the below err message:'; + put '* > Function is only valid for filerefs using the CACHE access method.'; + put '*/'; + put 'data _null_;'; + put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; + put 'if xengine=''STREAM'' then do;'; + put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; + put 'end;'; + put 'run;'; + put '/* setup json */'; + put 'data _null_;file &fref encoding=''utf-8'';'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutBEGIN<<'';'; + put '%end;'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'run;'; + put '%end;'; + put '%else %if &action=ARR or &action=OBJ %then %do;'; + put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; + put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; + put ')'; + put '%end;'; + put '%else %if &action=CLOSE %then %do;'; + put '/* To avoid issues with _webout on EBI we use a temporary file */'; + put 'filename _sjsref temp lrecl=131068;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put '/* if debug mode, send back first 10 records of each work table also */'; + put 'data;run;%let tempds=%scan(&syslast,2,.);'; + put 'ods output Members=&tempds;'; + put 'proc datasets library=WORK memtype=data;'; + put '%local wtcnt;%let wtcnt=0;'; + put 'data _null_;'; + put 'set &tempds;'; + put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; + put 'i+1;'; + put 'call symputx(cats(''wt'',i),name,''l'');'; + put 'call symputx(''wtcnt'',i,''l'');'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put ",""WORK"":{";'; + put '%do i=1 %to &wtcnt;'; + put '%let wt=&&wt&i;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'dsid=open("WORK.&wt",''is'');'; + put 'nlobs=attrn(dsid,''NLOBS'');'; + put 'nvars=attrn(dsid,''NVARS'');'; + put 'rc=close(dsid);'; + put 'if &i>1 then put '',''@;'; + put 'put " ""&wt"" : {";'; + put 'put ''"nlobs":'' nlobs;'; + put 'put '',"nvars":'' nvars;'; + put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put '%end;'; + put 'data _null_; file _sjsref mod encoding=''utf-8'';'; + put 'put "}";'; + put 'run;'; + put '%end;'; + put '/* close off json */'; + put 'data _null_;file _sjsref mod encoding=''utf-8'';'; + put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; + put 'put ",""_DEBUG"" : ""&_debug"" ";'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; + put 'put '',"AUTOEXEC" : '' autoexec;'; + put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put '',"SYSERRORTEXT" : '' syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; + put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; + put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; + put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'length memsize $32;'; + put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; + put 'memsize=quote(cats(memsize));'; + put 'put '',"MEMSIZE" : '' memsize;'; + put 'put "}" @;'; + put '%if %str(&_debug) ge 131 %then %do;'; + put 'put ''>>weboutEND<<'';'; + put '%end;'; + put 'run;'; + put '/* now write to _webout 1 char at a time */'; + put 'data _null_;'; + put 'infile _sjsref lrecl=1 recfm=n;'; + put 'file &fref mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put 'filename _sjsref clear;'; + put '%end;'; + put '%mend mm_webout;'; + put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; + put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; + put ',missing=&missing'; + put ',showmeta=&showmeta'; + put ',maxobs=&maxobs'; + put ') %mend;'; + put '/* provide additional debug info */'; + put '%global _program;'; + put '%put &=syscc;'; + put '%put user=%mf_getuser();'; + put '%put pgm=&_program;'; + put '%put timestamp=%sysfunc(datetime(),datetime19.);'; + put '* Service Variables start;'; + put '* Service Variables end;'; + put '* SAS Macros start;'; + put '%macro mf_getapploc(pgm);'; + put '%if "&pgm"="" %then %do;'; + put '%if %symexist(_program) %then %let pgm=&_program;'; + put '%else %do;'; + put '%put &sysmacroname: No value provided and no _program variable available;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%local root;'; + put '/**'; + put '* First check we are not in the tests/macros folder (which has no subfolders)'; + put '* or specifically in the testsetup or testteardown services'; + put '*/'; + put '%if %index(&pgm,/tests/macros/)'; + put 'or %index(&pgm,/tests/testsetup)'; + put 'or %index(&pgm,/tests/testteardown)'; + put '%then %do;'; + put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; + put '&root'; + put '%return;'; + put '%end;'; + put '/**'; + put '* Next, move up two levels to avoid matches on subfolder or service name'; + put '*/'; + put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; + put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; + put '%if %index(&root,/tests/) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; + put '%end;'; + put '%else %if %index(&root,/services) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/services)-1);'; + put '%end;'; + put '%else %if %index(&root,/jobs) %then %do;'; + put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; + put '%end;'; + put '%else %put &sysmacroname: Could not find an app location from &pgm;'; + put '&root'; + put '%mend mf_getapploc ;'; + put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; + put '%local rc fname;'; + put '%if &prefix=0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%end;'; + put '%else %do;'; + put '%local x len;'; + put '%let len=%eval(8-%length(&prefix));'; + put '%let x=0;'; + put '%do x=0 %to &maxtries;'; + put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; + put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; + put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; + put '%if &rc %then %put %sysfunc(sysmsg());'; + put '&fname'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%put unable to find available fileref after &maxtries attempts;'; + put '%end;'; + put '%mend mf_getuniquefileref;'; + put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; + put ', errds=work.mp_abort_errds'; + put ', mode=REGULAR'; + put ')/*/STORE SOURCE*/;'; + put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; + put '%local fref fid i;'; + put '%if not(%eval(%unquote(&iftrue))) %then %return;'; + put '%put NOTE: /// mp_abort macro executing //;'; + put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; + put '%put NOTE - &msg;'; + put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; + put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; + put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; + put '%then %do;'; + put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; + put 'data &errds;'; + put 'iftrue=''1=1'';'; + put 'length mac $100 msg $5000;'; + put 'mac=symget(''mac'');'; + put 'msg=symget(''msg'');'; + put 'run;'; + put 'data _null_;'; + put 'abort cancel FILE;'; + put 'run;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* Web App Context */'; + put '%if %symexist(_PROGRAM)'; + put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; + put 'or &mode=INCLUDE'; + put '%then %do;'; + put 'options obs=max replace mprint;'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; + put '%then %do;'; + put 'options nosyntaxcheck;'; + put '%end;'; + put '%if &mode=INCLUDE %then %do;'; + put '%if %sysfunc(exist(&errds))=1 %then %do;'; + put 'data _null_;'; + put 'set &errds;'; + put 'call symputx(''iftrue'',iftrue,''l'');'; + put 'call symputx(''mac'',mac,''l'');'; + put 'call symputx(''msg'',msg,''l'');'; + put 'putlog (_all_)(=);'; + put 'run;'; + put '%if (&iftrue)=0 %then %return;'; + put '%end;'; + put '%else %do;'; + put '%put &sysmacroname: No include errors found;'; + put '%return;'; + put '%end;'; + put '%end;'; + put '/* extract log errs / warns, if exist */'; + put '%local logloc logline;'; + put '%global logmsg; /* capture global messages */'; + put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; + put '%else %let logloc=%qsysfunc(getoption(LOG));'; + put 'proc printto log=log;run;'; + put '%let logline=0;'; + put '%if %length(&logloc)>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input; putlog _infile_;'; + put 'i=1;'; + put 'retain logonce 0;'; + put 'if ('; + put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; + put ') and logonce=0 then'; + put 'do;'; + put 'call symputx(''logline'',_n_);'; + put 'logonce+1;'; + put 'end;'; + put 'run;'; + put '/* capture log including lines BEFORE the err */'; + put '%if &logline>0 %then %do;'; + put 'data _null_;'; + put 'infile &logloc lrecl=5000;'; + put 'input;'; + put 'i=1;'; + put 'stoploop=0;'; + put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; + put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; + put 'input;'; + put 'i+1;'; + put 'stoploop=1;'; + put 'end;'; + put 'if stoploop=1 then stop;'; + put 'run;'; + put '%end;'; + put '%end;'; + put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; + put '/* setup webout for Viya */'; + put 'options nobomfile;'; + put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; + put 'filename _webout temp lrecl=999999 mod;'; + put '%end;'; + put '%else %do;'; + put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; + put 'name="_webout.json" lrecl=999999 mod;'; + put '%end;'; + put '%end;'; + put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; + put 'options nobomfile;'; + put '/* set up http header for SASjs Server */'; + put '%let fid=%sysfunc(fopen(&fref,A));'; + put '%if &fid=0 %then %do;'; + put '%put %str(ERR)OR: %sysfunc(sysmsg());'; + put '%return;'; + put '%end;'; + put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; + put '%let rc=%sysfunc(fwrite(&fid));'; + put '%let rc=%sysfunc(fclose(&fid));'; + put '%let rc=%sysfunc(filename(&fref));'; + put '%end;'; + put '/* send response in SASjs JSON format */'; + put 'data _null_;'; + put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; + put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; + put 'sasdatetime=datetime();'; + put 'msg=symget(''msg'');'; + put '%if &logline>0 %then %do;'; + put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; + put '%end;'; + put '/* escape the escapes */'; + put 'msg=tranwrd(msg,''\'',''\\'');'; + put '/* escape the quotes */'; + put 'msg=tranwrd(msg,''"'',''\"'');'; + put '/* ditch the CRLFs as chrome complains */'; + put 'msg=compress(msg,,''kw'');'; + put '/* quote without quoting the quotes (which are escaped instead) */'; + put 'msg=cats(''"'',msg,''"'');'; + put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; + put 'else debug=''""'';'; + put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; + put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; + put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; + put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; + put 'put '',"sasjsAbort" : [{'';'; + put 'put '' "MSG":'' msg ;'; + put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; + put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; + put 'put '',"_DEBUG":'' debug ;'; + put 'if symexist(''_metauser'') then do;'; + put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; + put 'put ",""_METAUSER"": " _METAUSER;'; + put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; + put 'put '',"_METAPERSON": '' _METAPERSON;'; + put 'end;'; + put 'if symexist(''SYS_JES_JOB_URI'') then do;'; + put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; + put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; + put 'end;'; + put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; + put 'put '',"_PROGRAM" : '' _PROGRAM ;'; + put 'put ",""SYSCC"" : ""&syscc"" ";'; + put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');'; + put 'put ",""SYSERRORTEXT"" : " syserrortext;'; + put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; + put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; + put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; + put 'put ",""SYSSITE"" : ""&syssite"" ";'; + put 'sysvlong=quote(trim(symget(''sysvlong'')));'; + put 'put '',"SYSVLONG" : '' sysvlong;'; + put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');'; + put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; + put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; + put 'put "}" ;'; + put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; + put 'run;'; + put '%put _all_;'; + put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; + put 'data _null_;'; + put 'putlog ''stpsrvset program err and syscc'';'; + put 'rc=stpsrvset(''program error'', 0);'; + put 'call symputx("syscc",0,"g");'; + put 'run;'; + put '%if &sysscp=WIN'; + put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; + put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; + put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; + put '/* skip approach (below) does not work in windows m6+ envs */'; + put 'endsas;'; + put '%end;'; + put '%else %do;'; + put '/**'; + put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; + put '* Abort variants are ungraceful (non zero return code)'; + put '* This approach lets SAS run silently until the end :-)'; + put '* Caution - fails when called within a %include within a macro'; + put '* Use mp_include() to handle this.'; + put '*/'; + put 'filename skip temp;'; + put 'data _null_;'; + put 'file skip;'; + put 'put ''%macro skip();'';'; + put 'comment ''%mend skip; -> fix lint '';'; + put 'put ''%macro skippy();'';'; + put 'comment ''%mend skippy; -> fix lint '';'; + put 'run;'; + put '%inc skip;'; + put '%end;'; + put '%end;'; + put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; + put '/* endsas kills the session making it harder to fetch results */'; + put 'data _null_;'; + put 'syswarningtext=symget(''syswarningtext'');'; + put 'syserrortext=symget(''syserrortext'');'; + put 'abort_msg=symget(''msg'');'; + put 'syscc=symget(''syscc'');'; + put 'sysuserid=symget(''sysuserid'');'; + put 'iftrue=symget(''iftrue'');'; + put 'put (_all_)(/=);'; + put 'call symputx(''syscc'',0);'; + put 'abort cancel nolist;'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%abort cancel;'; + put '%end;'; + put '%end;'; + put '%else %do;'; + put '%put _all_;'; + put '%abort cancel;'; + put '%end;'; + put '%mend mp_abort;'; + put '/** @endcond */'; + put '%macro mm_getstpcode('; + put 'tree=/User Folders/sasdemo/somestp'; + put ',name='; + put ',outloc=0'; + put ',outref=0'; + put ',mDebug=1'; + put ',showlog=NO'; + put ');'; + put '%local mD;'; + put '%if &mDebug=1 %then %let mD=;'; + put '%else %let mD=%str(*);'; + put '%&mD.put Executing &sysmacroname..sas;'; + put '%&mD.put _local_;'; + put '%if %length(&name)>0 %then %let name=/&name;'; + put '/* first, check if STP exists */'; + put '%local tsuri;'; + put '%let tsuri=stopifempty ;'; + put 'data _null_;'; + put 'format type uri tsuri value $200.;'; + put 'call missing (of _all_);'; + put 'path="&tree&name(StoredProcess)";'; + put '/* first, find the STP ID */'; + put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; + put '/* get sourcecode */'; + put 'cnt=1;'; + put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; + put 'rc=metadata_getattr(tsuri,"Name",value);'; + put '&mD.put tsuri= value=;'; + put 'if value="SourceCode" then do;'; + put '/* found it! */'; + put 'rc=metadata_getattr(tsuri,"Id",value);'; + put 'call symputx(''tsuri'',value,''l'');'; + put 'stop;'; + put 'end;'; + put 'cnt+1;'; + put 'end;'; + put 'end;'; + put 'else put (_all_)(=);'; + put 'run;'; + put '%mp_abort(iftrue= (&tsuri=stopifempty)'; + put ',mac=mm_getstpcode'; + put ',msg=%str(&tree&name.(StoredProcess) not found!)'; + put ')'; + put '/**'; + put '* Now we can extract the textstore'; + put '*/'; + put 'filename __getdoc temp lrecl=10000000;'; + put 'proc metadata'; + put 'in="$METAREPOSITORY'; + put ''; + put 'SAS1"'; + put 'out=__getdoc ;'; + put 'run;'; + put '/* find the beginning of the text */'; + put '%local start;'; + put 'data _null_;'; + put 'infile __getdoc lrecl=10000;'; + put 'input;'; + put 'start=index(_infile_,''StoredText="'');'; + put 'if start then do;'; + put 'call symputx("start",start+11);'; + put '*putlog ''"'' _infile_ ''"'';'; + put 'end;'; + put 'stop;'; + put '%local outeng;'; + put '%if "&outloc"="0" %then %let outeng=TEMP;'; + put '%else %let outeng="&outloc";'; + put '%local fref;'; + put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; + put '%else %let fref=&outref;'; + put '/* read the content, byte by byte, resolving escaped chars */'; + put 'filename &fref &outeng lrecl=100000;'; + put 'data _null_;'; + put 'length filein 8 fileid 8;'; + put 'filein = fopen("__getdoc","I",1,"B");'; + put 'fileid = fopen("&fref","O",1,"B");'; + put 'rec = "20"x;'; + put 'length entity $6;'; + put 'do while(fread(filein)=0);'; + put 'x+1;'; + put 'if x>&start then do;'; + put 'rc = fget(filein,rec,1);'; + put 'if rec=''"'' then leave;'; + put 'else if rec="&" then do;'; + put 'entity=rec;'; + put 'do until (rec=";");'; + put 'if fread(filein) ne 0 then goto getout;'; + put 'rc = fget(filein,rec,1);'; + put 'entity=cats(entity,rec);'; + put 'end;'; + put 'select (entity);'; + put 'when (''&'' ) rec=''&'' ;'; + put 'when (''<'' ) rec=''<'' ;'; + put 'when (''>'' ) rec=''>'' ;'; + put 'when (''''') rec="''" ;'; + put 'when (''"'') rec=''"'' ;'; + put 'when ('' '') rec=''0A''x;'; + put 'when ('' '') rec=''0D''x;'; + put 'when (''$'' ) rec=''$'' ;'; + put 'when ('' '') rec=''09''x;'; + put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; + put 'end;'; + put 'rc =fput(fileid, substr(rec,1,1));'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'else do;'; + put 'rc =fput(fileid,rec);'; + put 'rc =fwrite(fileid);'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'getout:'; + put 'rc=fclose(filein);'; + put 'rc=fclose(fileid);'; + put 'run;'; + put '%if &showlog=YES %then %do;'; + put 'data _null_;'; + put 'infile &fref lrecl=32767 end=last;'; + put 'input;'; + put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; + put 'putlog _infile_;'; + put 'if last then putlog ''>>stpcodeEND<<'';'; + put 'run;'; + put '%end;'; + put 'filename __getdoc clear;'; + put '%if &outref=0 %then %do;'; + put 'filename &fref clear;'; + put '%end;'; + put '%mend mm_getstpcode;'; + put '%macro dc_getsettings();'; + put '%global _program;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; + put ')'; + put '%if %length(&_PROGRAM)>1 %then %let root=&_program;'; + put '%else %do;'; + put '%global _metauser;'; + put '%let _metauser=&sysuserid;'; + put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; + put '%let root=/dummyRole/dummyName;'; + put '%end;'; + put '/* the DC precode is stored in the Admin folder in the root of'; + put 'the project. Lets find that root. */'; + put '%put &=root;'; + put '%let root=%mf_getapploc();'; + put '%put &=root;'; + put '/* Now we know the root location we can retrieve the params */'; + put '%let temploc=%sysfunc(pathname(work))/settings.txt;'; + put '%mm_getstpcode(tree=&root/services/public'; + put ',name=Data_Controller_Settings'; + put ',outloc=&temploc'; + put ')'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Unable to run getstpcode)'; + put ')'; + put 'filename _getsets "&temploc" lrecl=2000;'; + put '/*'; + put 'Do not use mp_include here - this puts a copy in every service, which creates'; + put 'compilation problems when calling services from mp_include'; + put '*/'; + put '%inc _getsets/source2;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&sysmacroname'; + put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; + put ')'; + put '%mend dc_getsettings;'; + put '%macro mf_fmtdttm('; + put ')/*/STORE SOURCE*/;'; + put '%if "&sysver"="9.2" or "&sysver"="9.3"'; + put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; + put 'or "%substr(&sysver,1,1)"="4"'; + put 'or "%substr(&sysver,1,1)"="5"'; + put '%then %do;DATETIME19.3%end;'; + put '%else %do;E8601DT26.6%end;'; + put '%mend mf_fmtdttm;'; + put '%macro mf_getuser('; + put ')/*/STORE SOURCE*/;'; + put '%local user;'; + put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; + put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; + put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; + put '%end;'; + put '%else %if %symexist(_metaperson) %then %do;'; + put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; + put '/* sometimes SAS will add @domain extension - remove for consistency */'; + put '/* but be sure to quote in case of usernames with commas */'; + put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; + put '%end;'; + put '%else %let user=&sysuserid;'; + put '%quote(&user)'; + put '%mend mf_getuser;'; + put '%macro mp_init(prefix=SASJS'; + put ')/*/STORE SOURCE*/;'; + put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; + put '%global'; + put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; + put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; + put '&prefix._INIT_NUM /* initialisation time as numeric */'; + put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; + put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; + put ';'; + put '%let sasjs_prefix=&prefix;'; + put 'data _null_;'; + put 'dttm=datetime();'; + put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; + put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; + put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; + put 'run;'; + put 'options'; + put 'compress=CHAR /* default is none so ensure we have something! */'; + put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; + put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; + put 'fmterr /* ensure err when a format cannot be found */'; + put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; + put 'missing=. /* changing this can cause hard to detect errs */'; + put 'noquotelenmax /* avoid warnings for long strings */'; + put 'noreplace /* avoid overwriting permanent datasets */'; + put 'ps=max /* reduce log size slightly */'; + put 'ls=max /* reduce log even more and avoid word truncation */'; + put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; + put 'validvarname=V7 /* avoid special characters etc in variable names */'; + put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; + put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; + put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; + put 'noautocorrect /* disallow misspelled procedure names */'; + put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; + put '%end;'; + put ';'; + put '%mend mp_init;'; + put '%macro mpeinit(fetch=YES);'; + put '%global mpeinit'; + put 'mpeadmins /* group with unrestricted Meditor access */'; + put 'mpelocapprovals /* location for landing and staging files */'; + put 'mpelib /* location of configuration tables for DC */'; + put 'dc_repo_users /* location of user / group metadata */'; + put 'dc_licence_key /* extracted in dc_getsettings */'; + put 'dc_activation_key /* extracted in dc_getsettings */'; + put 'dc_locale /* extracted in dc_getsettings */'; + put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; + put '_debug'; + put ';'; + put '%if &mpeinit=1 %then %return;'; + put '%else %let mpeinit=1;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; + put ')'; + put '%mp_init()'; + put '%if &fetch=YES %then %do;'; + put '%webout(FETCH)'; + put '%end;'; + put '%global _CLIENTNAME;'; + put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; + put ',mac=&_program..sas'; + put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; + put ')'; + put 'options urlencoding=utf8 nobomfile lrecl=32767;'; + put '%let perf=%sysfunc(datetime());'; + put '%put perfdiff: 0;'; + put '%let dc_locale=SYSTEM; /* default if not set */'; + put '/**'; + put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; + put '* handle it. Override in the settings STP if needed.'; + put '*/'; + put 'data _null_;'; + put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; + put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; + put 'put dc_dttmtfmt=;'; + put 'run;'; + put '%put &=dc_dttmtfmt;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; + put ')'; + put '%dc_getsettings()'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program'; + put ',msg=%str(syscc=&syscc after dc_getsettings)'; + put ')'; + put 'data _null_;'; + put 'set &DC_LIBREF..mpe_config(where=('; + put 'var_scope="DC"'; + put 'and &dc_dttmtfmt lt tx_to'; + put 'and var_active=1'; + put '));'; + put 'call symputx(var_name,var_value,''G'');'; + put 'putlog var_name "=" var_value;'; + put 'run;'; + put '%let mpelib=&dc_libref;'; + put '%let mpeadmins=&dc_admin_group;'; + put '%let mpelocapprovals=&dc_staging_area;'; + put '%let dc_repo_users=&dc_repo_users;'; + put '%if &dc_locale ne SYSTEM %then %do;'; + put 'options locale=&dc_locale;'; + put '%end;'; + put '%mp_abort(iftrue= (&syscc ne 0)'; + put ',mac=&_program..sas'; + put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; + put ')'; + put '%mend mpeinit;'; + put '%macro mf_mval(var);'; + put '%if %symexist(&var) %then %do;'; + put '%superq(&var)'; + put '%end;'; + put '%mend mf_mval;'; + put '%macro mf_trimstr(basestr,trimstr);'; + put '%local baselen trimlen trimval;'; + put '/* return if basestr is shorter than trimstr (or 0) */'; + put '%let baselen=%length(%superq(basestr));'; + put '%let trimlen=%length(%superq(trimstr));'; + put '%if &baselen < &trimlen or &baselen=0 %then %return;'; + put '/* obtain the characters from the end of basestr */'; + put '%let trimval=%qsubstr(%superq(basestr)'; + put ',%length(%superq(basestr))-&trimlen+1'; + put ',&trimlen);'; + put '/* compare and if matching, chop it off! */'; + put '%if %superq(basestr)=%superq(trimstr) %then %do;'; + put '%return;'; + put '%end;'; + put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; + put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; + put '%end;'; + put '%else %do;'; + put '&basestr'; + put '%end;'; + put '%mend mf_trimstr;'; + put '%macro mf_getplatform(switch'; + put ')/*/STORE SOURCE*/;'; + put '%local a b c;'; + put '%if &switch.NONE=NONE %then %do;'; + put '%if %symexist(sasjsprocessmode) %then %do;'; + put '%if &sasjsprocessmode=Stored Program %then %do;'; + put 'SASJS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%if %symexist(sysprocessmode) %then %do;'; + put '%if "&sysprocessmode"="SAS Object Server"'; + put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; + put 'SASVIYA'; + put '%end;'; + put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; + put 'or "&sysprocessmode"="SAS Workspace Server"'; + put '%then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; + put 'SASMETA'; + put '%return;'; + put '%end;'; + put '%else %do;'; + put 'BASESAS'; + put '%return;'; + put '%end;'; + put '%end;'; + put '%else %if &switch=SASSTUDIO %then %do;'; + put '/* return the version of SAS Studio else 0 */'; + put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; + put '%let a=%mf_mval(_CLIENTVERSION);'; + put '%let b=%scan(&a,1,.);'; + put '%if %eval(&b >2) %then %do;'; + put '&b'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else 0;'; + put '%end;'; + put '%else %if &switch=VIYARESTAPI %then %do;'; + put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; + put '%end;'; + put '%mend mf_getplatform;'; + put '%macro mpeterm();'; + put '%local oldloc;'; + put 'data _null_;'; + put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; + put 'else oldloc=getoption(''LOG'');'; + put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; + put 'call symputx(''oldloc'',oldloc,''l'');'; + put 'run;'; + put '%if %length(&oldloc)>0 %then %do;'; + put 'proc printto log=log;'; + put 'run;'; + put 'data _null_;'; + put 'infile &oldloc;'; + put 'input; putlog _infile_;'; + put 'run;'; + put '%end;'; + put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; + put '%then %do;'; + put 'data ;'; + put 'if 0 then set &dc_libref..mpe_requests;'; + put 'request_dttm=%sysfunc(datetime());'; + put 'request_user="%mf_getuser()";'; + put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; + put 'request_params='''';'; + put 'output;stop;'; + put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; + put 'run;'; + put '%end;'; + put '%mend mpeterm;'; + put '* SAS Macros end;'; + put '* SAS Includes start;'; + put '* SAS Includes end;'; + put '* Binary Files start;'; + put '* Binary Files end;'; + put '* ServiceInit start;'; + put 'options noquotelenmax ps=max;'; + put '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; + put '%macro stpbegin();'; + put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; + put '%mend stpbegin;'; + put '%macro stpend();'; + put '%put NOTE: the STPEND macro should not be used for web apps!;'; + put '%mend stpend;'; + put '* ServiceInit end;'; + put '* Service start;'; + put '/**'; + put '@file'; + put '@brief Generic validator for editable libraries'; + put '@details The input table is simply one row from the target table in table'; + put 'called "work.source_row".'; + put 'Available macro variables:'; + put '@li MPELIB - The DC control library'; + put '@li LIBDS - The library.dataset being filtered'; + put '@li VARIABLE_NM - The column being filtered'; + put '

Service Inputs

'; + put '
work.source_row
'; + put '|libref:$8|'; + put '|somelib|'; + put '

Service Outputs

'; + put 'The values provided below are generic samples - we encourage you to replace'; + put 'these with realistic values in your own deployments.'; + put '
DYNAMIC_VALUES
'; + put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; + put 'provided, it is added automatically.'; + put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; + put '|---|---|---|'; + put '|1|$77.43|77.43|'; + put '|2|$88.43|88.43|'; + put '
DYNAMIC_EXTENDED_VALUES
'; + put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; + put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; + put 'populate dropdowns for _other_ cells in the _same_ row.'; + put 'Should be used sparingly! The use of large tables here can slow down the'; + put 'browser.'; + put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; + put '|---|---|---|---|---|---|'; + put '|1|DISCOUNT_RT|"50%"|N|0.5|` `|'; + put '|1|DISCOUNT_RT|"40%"|N|0.4|` `|'; + put '|1|DISCOUNT_RT|"30%"|N|0.3|` `|'; + put '|1|CURRENCY_SYMBOL|"GBP"|C|` `|"GBP"|'; + put '|1|CURRENCY_SYMBOL|"RSD"|C|` `|"RSD"|'; + put '|2|DISCOUNT_RT|"50%"|N|0.5|` `|'; + put '|2|DISCOUNT_RT|"40%"|N|0.4|` `|'; + put '|2|CURRENCY_SYMBOL|"EUR"|C|` `|"EUR"|'; + put '|2|CURRENCY_SYMBOL|"HKD"|C|` `|"HKD"|'; + put '**/'; + put '/* send back the raw and formatted values */'; + put 'data _null_;'; + put 'var=symget(''variable_nm'');'; + put 'libds=symget(''libds'');'; + put 'if libds="&mpelib..MPE_EXCEL_CONFIG" and var=''XL_TABLE'' then do;'; + put 'call symputx(''srccol'',''XL_LIBREF'');'; + put 'end;'; + put 'else call symputx(''srccol'',''libref'');'; + put 'run;'; + put 'proc sql;'; + put 'create table work.DYNAMIC_VALUES as'; + put 'select distinct dsn as display_value,'; + put 'upcase(dsn) as raw_value'; + put 'from &mpelib..mpe_tables'; + put '(where=(&dc_dttmtfmt. < tx_to))'; + put 'where libref in (select &srccol from work.source_row)'; + put 'order by 1;'; + put '* Service end;'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/web9; + +%let service=index-html; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5EYXRhIENvbnRyb2xsZXI8L3RpdGxlPgogICAgPCEtLSA8YmFzZSBocmVmPSIvIj4gLS0+CgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo''@;'; + put 'put ''PWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIi8+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiLz4KICAgIDxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UveC1pY29uIiBocmVmPSJpbWFnZXMvZmF2aWNvbi5pY28iLz4KICA8''@;'; + put 'put ''bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlcy4zNDI5Y2Y2YzFhYTg2MGY5LmNzcyI+PC9oZWFkPgoKICA8IS0tCiAgICAjIyBTQVNKUyBBZGFwdGVyIGNvbmZpZyBkZXRhaWxzICMjCgogICAgKiBhcHBMb2M6IFRoZSBsb2NhdGlvbiBpbiBtZXRhZGF0YSBvciBTQVMgZHJpdmUg''@;'; + put 'put ''d2hlcmUgREMgd2lsbCBiZSBkZXBsb3llZAogICAgKiBzZXJ2ZXJUeXBlOiBlaXRoZXIgU0FTOSwgU0FTVklZQSBvciBTQVNKUwogICAgKiBsb2dpbk1lY2hhbmlzbTogVXNlICdEZWZhdWx0JyBmb3IgcmVndWxhciAodXNlci9wYXNzKSBsb2dpbnMsIG9yICdSZWRpcmVjdGVkJyBmb3IgMkZB''@;'; + put 'put ''L1NTTwogICAgKiBkZWJ1ZzogV2hldGhlciB0byBlbmFibGUgZGVidWcgb24gc3RhcnR1cAoKICAgICMjIFZpeWEgb25seSBzZXR0aW5ncyAjIwogICAgKiBhZG1pbkdyb3VwOiBUaGlzIGdyb3VwIHdpbGwgaGF2ZSB1bnJlc3RyaWN0ZWQgYWNjZXNzIChWaXlhIE9ubHkpCiAgICAqIGRjUGF0''@;'; + put 'put ''aDogVGhlIHBoeXNpY2FsIGxvY2F0aW9uIGluIHdoaWNoIHRvIGRlcGxveSB0aGUgc3RhZ2luZyBhcmVhIChWaXlhIG9ubHkpCiAgICAqIHVzZUNvbXB1dGVBcGk6IENvbm5lY3Rpb24gbWV0aG9kIChWaXlhIG9ubHkpCiAgICAqIGNvbnRleHROYW1lOiBDb21wdXRlIENvbnRleHQgKFZpeWEg''@;'; + put 'put ''b25seSkKCiAgLS0+CgogIDxib2R5IHN0eWxlPSJtYXJnaW46IDAiPgogICAgPG15LWFwcCBzZXJ2ZXJ1cmw9IiIgYXBwbG9jPSIvMzAuU0FTQXBwcy9hcHAvbWloYWpsbyIgc2VydmVydHlwZT0iU0FTSlMiIGxvZ2lubWVjaGFuaXNtPSJEZWZhdWx0IiBkZWJ1Zz0iZmFsc2UiIHVzZWNvbXB1''@;'; + put 'put ''dGVhcGk9InRydWUiIGNvbnRleHRuYW1lPSJTQVMgSm9iIEV4ZWN1dGlvbiBjb21wdXRlIGNvbnRleHQiIGFkbWluZ3JvdXA9InNlYy1zYXM5LXByZC1pbnQtc2FzcGxhdGZvcm0tMzAwMTE0c2FzanMiIGRjcGF0aD0iL3RtcC9kYyIgaG90bGljZW5jZWtleT0ibm9uLWNvbW1lcmNpYWwtYW5k''@;'; + put 'put ''LWV2YWx1YXRpb24iPjwvbXktYXBwPgogIDxzY3JpcHQgc3JjPSJydW50aW1lLjYxZTc3MWI0NzJlY2I1ODguanMiIHR5cGU9Im1vZHVsZSI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9InNjcmlwdHMuN2NiMWU5NGUyZmZhZDBjZC5qcyIgZGVmZXI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Im1haW4u''@;'; + put 'put ''YTM1OTlmMDkzNzdkYmE3MC5qcyIgdHlwZT0ibW9kdWxlIj48L3NjcmlwdD48L2JvZHk+CjwvaHRtbD4K'';'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=main.a3599f09377dba70-js; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''dmFyIFdBdD1PYmplY3QuZGVmaW5lUHJvcGVydHksWUF0PU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLFVBdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyxQTGU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxRQXQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxK''@;'; + put 'put ''QXQ9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxiTT1NYXRoLnBvdyxGTGU9KFhlLEplLEwpPT5KZSBpbiBYZT9XQXQoWGUsSmUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KTpYZVtKZV09TCxncz0oWGUsSmUpPT57Zm9y''@;'; + put 'put ''KHZhciBMIGluIEplfHwoSmU9e30pKVFBdC5jYWxsKEplLEwpJiZGTGUoWGUsTCxKZVtMXSk7aWYoUExlKWZvcih2YXIgTCBvZiBQTGUoSmUpKUpBdC5jYWxsKEplLEwpJiZGTGUoWGUsTCxKZVtMXSk7cmV0dXJuIFhlfSxaej0oWGUsSmUpPT5ZQXQoWGUsVUF0KEplKSk7KHNlbGYud2VicGFj''@;'; + put 'put ''a0NodW5rZGF0YWNvbnRyb2xsZXI9c2VsZi53ZWJwYWNrQ2h1bmtkYXRhY29udHJvbGxlcnx8W10pLnB1c2goW1sxNzldLHs1Njc3MTpmdW5jdGlvbihYZSl7WGUuZXhwb3J0cz1mdW5jdGlvbihKZSl7dmFyIEw9e307ZnVuY3Rpb24gbWUoQil7aWYoTFtCXSlyZXR1cm4gTFtCXS5leHBvcnRz''@;'; + put 'put ''O3ZhciBFPUxbQl09e2k6QixsOiExLGV4cG9ydHM6e319O3JldHVybiBKZVtCXS5jYWxsKEUuZXhwb3J0cyxFLEUuZXhwb3J0cyxtZSksRS5sPSEwLEUuZXhwb3J0c31yZXR1cm4gbWUubT1KZSxtZS5jPUwsbWUuZD1mdW5jdGlvbihCLEUsTWUpe21lLm8oQixFKXx8T2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KEIsRSx7ZW51bWVyYWJsZTohMCxnZXQ6TWV9KX0sbWUucj1mdW5jdGlvbihCKXsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoQixTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KEIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxtZS50PWZ1bmN0aW9uKEIsRSl7aWYoMSZFJiYoQj1tZShCKSksOCZFfHw0JkUmJiJvYmplY3QiPT10eXBlb2YgQiYmQiYmQi5fX2VzTW9kdWxlKXJldHVybiBCO3ZhciBNZT1PYmplY3QuY3JlYXRlKG51bGwp''@;'; + put 'put ''O2lmKG1lLnIoTWUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNZSwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6Qn0pLDImRSYmInN0cmluZyIhPXR5cGVvZiBCKWZvcih2YXIgVSBpbiBCKW1lLmQoTWUsVSxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0uYmluZChudWxsLFUpKTtyZXR1''@;'; + put 'put ''cm4gTWV9LG1lLm49ZnVuY3Rpb24oQil7dmFyIEU9QiYmQi5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIEIuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gQn07cmV0dXJuIG1lLmQoRSwiYSIsRSksRX0sbWUubz1mdW5jdGlvbihCLEUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhh''@;'; + put 'put ''c093blByb3BlcnR5LmNhbGwoQixFKX0sbWUucD0iIixtZShtZS5zPSIuL3Byb2plY3RzL2ljb25zL3NyYy9pbmRleC50cyIpfSh7Ii4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1hcGkudHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoTCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTC5DbGFyaXR5SWNvbnNBcGk9dm9pZCAwO3ZhciBCPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50cyIpLEU9e30sTWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBVKCl7fXJldHVybiBPYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoVSwiaW5zdGFuY2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVS5zaW5nbGVJbnN0YW5jZXx8KFUuc2luZ2xlSW5zdGFuY2U9bmV3IFUpLFUuc2luZ2xlSW5zdGFuY2V9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksVS5wcm90b3R5cGUudmFsaWRh''@;'; + put 'put ''dGVOYW1lPWZ1bmN0aW9uKFEpe2lmKDA9PT1RLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlNoYXBlIG5hbWUgb3IgYWxpYXMgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmchIik7aWYoL1xzLy50ZXN0KFEpKXRocm93IG5ldyBFcnJvcigiU2hhcGUgbmFtZSBvciBhbGlhcyBtdXN0IG5vdCBj''@;'; + put 'put ''b250YWluIGFueSB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMhIik7cmV0dXJuITB9LFUucHJvdG90eXBlLm5vcm1hbGl6ZVNoYXBlTmFtZT1mdW5jdGlvbihRKXtyZXR1cm4gUS50b0xvd2VyQ2FzZSgpfSxVLnByb3RvdHlwZS5zZXRJY29uVGVtcGxhdGU9ZnVuY3Rpb24oUSxaKXt2YXIgaWU9Wi50''@;'; + put 'put ''cmltKCk7dGhpcy52YWxpZGF0ZU5hbWUoUSkmJihRPXRoaXMubm9ybWFsaXplU2hhcGVOYW1lKFEpLEVbUV0mJmRlbGV0ZSBFW1FdLEVbUV09aWUsQi5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXIuaW5zdGFuY2UuZW1pdENoYW5nZXMoUSxpZSkpfSxVLnByb3RvdHlwZS5zZXRJY29uQWxpYXNlcz1m''@;'; + put 'put ''dW5jdGlvbihRLFosaWUpe2Zvcih2YXIgbGU9MCxZPWllO2xlPFkubGVuZ3RoO2xlKyspe3ZhciBXPVlbbGVdO3RoaXMudmFsaWRhdGVOYW1lKFcpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoUSxXLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUVtaXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFi''@;'; + put 'put ''bGU6ITB9KX19LFUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihRKXtpZigib2JqZWN0IiE9dHlwZW9mIFEpdGhyb3cgbmV3IEVycm9yKCdUaGUgYXJndW1lbnQgbXVzdCBiZSBhbiBvYmplY3QgbGl0ZXJhbCBwYXNzZWQgaW4gdGhlIGZvbGxvd2luZyBwYXR0ZXJuOlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IHsgInNoYXBlLW5hbWUiOiAic2hhcGUtdGVtcGxhdGUiIH0nKTtmb3IodmFyIFogaW4gUSlRLmhhc093blByb3BlcnR5KFopJiZ0aGlzLnNldEljb25UZW1wbGF0ZShaLFFbWl0pfSxVLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oUSl7cmV0dXJuISFFW3RoaXMubm9ybWFsaXplU2hhcGVOYW1l''@;'; + put 'put ''KFEpXX0sVS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKFEpe2lmKCFRKXJldHVybiBFO2lmKCJzdHJpbmciIT10eXBlb2YgUSl0aHJvdyBuZXcgVHlwZUVycm9yKCJPbmx5IHN0cmluZyBhcmd1bWVudCBpcyBhbGxvd2VkIGluIHRoaXMgbWV0aG9kLiIpO3JldHVybiBFW3RoaXMubm9ybWFsaXpl''@;'; + put 'put ''U2hhcGVOYW1lKFEpXX0sVS5wcm90b3R5cGUuYWxpYXM9ZnVuY3Rpb24oUSl7aWYoIm9iamVjdCIhPXR5cGVvZiBRKXRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0IGxpdGVyYWwgcGFzc2VkIGluIHRoZSBmb2xsb3dpbmcgcGF0dGVybjpcbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICB7ICJzaGFwZS1uYW1lIjogWyJhbGlhcy1uYW1lIiwgLi4uXSB9Jyk7Zm9yKHZhciBaIGluIFEpaWYoUS5oYXNPd25Qcm9wZXJ0eShaKSl7aWYoIUUuaGFzT3duUHJvcGVydHkoWikpdGhyb3cgbmV3IEVycm9yKCdBbiBpY29uICInK1orIlwiIHlvdSBhcmUgdHJ5aW5nIHRvIHNl''@;'; + put 'put ''dCBhbGlhc2VzIHRvIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIENsYXJpdHkgSWNvbnMgc2V0cyEiKTt0aGlzLnNldEljb25BbGlhc2VzKEUsWixRW1pdKX19LFV9KCk7TC5DbGFyaXR5SWNvbnNBcGk9TWV9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtZWxlbWVudC50cyI6ZnVuY3Rp''@;'; + put 'put ''b24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLkNsYXJpdHlJY29uRWxlbWVudD12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1hcGkudHMiKSxFPW1lKCIuL3Byb2pl''@;'; + put 'put ''Y3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50cyIpLE1lPTAsVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7VS5jbGFzc05hbWU9ImlzLW9mZi1zY3JlZW4iO3ZhciBRPWZ1bmN0aW9uKCl7cmV0dXJuIEhUTUxFbGVtZW50LmFwcGx5KHRoaXMsYXJn''@;'; + put 'put ''dW1lbnRzKX07ZnVuY3Rpb24gWigpe3ZhciBpZT1RLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gaWUuY2xySWNvblVuaXFJZD0iX2Nscl9pY29uXyIrTWUsTWUrKyxpZX0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJihRPWZ1bmN0aW9uKCl7cmV0dXJuIFJlZmxlY3QuY29uc3RydWN0''@;'; + put 'put ''KEhUTUxFbGVtZW50LGFyZ3VtZW50cyx0aGlzLmNvbnN0cnVjdG9yKX0pLEwuQ2xhcml0eUljb25FbGVtZW50PVosWi5vYnNlcnZlZEF0dHJpYnV0ZXM9WyJzaGFwZSIsInNpemUiLCJ0aXRsZSJdLChaLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEhUTUxFbGVtZW50LnByb3RvdHlwZSx7Y29u''@;'; + put 'put ''c3RydWN0b3I6e2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpafX0pKS5jb25zdHJ1Y3Rvcj1aLFoucHJvdG90eXBlLl9hcHBlbmRDdXN0b21UaXRsZT1mdW5jdGlvbigpe3ZhciBpZT1VLmNsb25lTm9kZSghMSk7aWUuaWQ9dGhpcy5jbHJJY29uVW5pcUlkLGllLnRleHRDb250''@;'; + put 'put ''ZW50PXRoaXMuY3VycmVudFRpdGxlQXR0clZhbCx0aGlzLmFwcGVuZENoaWxkKGllKX0sWi5wcm90b3R5cGUuX3NldEljb25TaXplPWZ1bmN0aW9uKGllKXshTnVtYmVyKGllKXx8TnVtYmVyKGllKTwwPyh0aGlzLnN0eWxlLndpZHRoPW51bGwsdGhpcy5zdHlsZS5oZWlnaHQ9bnVsbCk6KHRo''@;'; + put 'put ''aXMuc3R5bGUud2lkdGg9aWUrInB4Iix0aGlzLnN0eWxlLmhlaWdodD1pZSsicHgiKX0sWi5wcm90b3R5cGUuX25vcm1hbGl6ZVNoYXBlPWZ1bmN0aW9uKGllKXtyZXR1cm4gaWUuc3BsaXQoL1xzLylbMF0udG9Mb3dlckNhc2UoKX0sWi5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJhY2s9ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgaWU9dGhpcztpZih0aGlzLmdldEF0dHJpYnV0ZSgicm9sZSIpfHx0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsIm5vbmUiKSx0aGlzLmhhc0F0dHJpYnV0ZSgic2l6ZSIpKXt2YXIgbGU9dGhpcy5nZXRBdHRyaWJ1dGUoInNpemUiKTt0aGlzLmN1cnJlbnRTaXplQXR0clZh''@;'; + put 'put ''bCE9PWxlJiYodGhpcy5jdXJyZW50U2l6ZUF0dHJWYWw9bGUsdGhpcy5fc2V0SWNvblNpemUobGUpKX1pZih0aGlzLmhhc0F0dHJpYnV0ZSgic2hhcGUiKSl7dmFyIFk9dGhpcy5fbm9ybWFsaXplU2hhcGUodGhpcy5nZXRBdHRyaWJ1dGUoInNoYXBlIikpO2lmKHRoaXMuX3NoYXBlVGVtcGxh''@;'; + put 'put ''dGVTdWJzY3JpcHRpb249RS5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXIuaW5zdGFuY2Uuc3Vic2NyaWJlVG8oWSxmdW5jdGlvbihlZSl7aWUuX2luamVjdFRlbXBsYXRlKGVlKX0pLHRoaXMuY3VycmVudFNoYXBlQXR0clZhbD1ZLCFCLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5oYXModGhpcy5j''@;'; + put 'put ''dXJyZW50U2hhcGVBdHRyVmFsKSlyZXR1cm4gdm9pZCB0aGlzLl9pbmplY3RFcnJvclRlbXBsYXRlKCk7dmFyIFc9Qi5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCk7aWYoVz09PXRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGUpcmV0dXJuO3Ro''@;'; + put 'put ''aXMuY3VycmVudFNoYXBlVGVtcGxhdGU9V31pZih0aGlzLmhhc0F0dHJpYnV0ZSgidGl0bGUiKSl7dmFyIE49dGhpcy5nZXRBdHRyaWJ1dGUoInRpdGxlIik7aWYodGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsIT09TiYmKHRoaXMuY3VycmVudFRpdGxlQXR0clZhbD1OKSwhdGhpcy5jdXJyZW50''@;'; + put 'put ''U2hhcGVBdHRyVmFsKXJldHVybn10aGlzLl9pbmplY3RUZW1wbGF0ZSgpfSxaLnByb3RvdHlwZS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s9ZnVuY3Rpb24oaWUsbGUsWSl7dmFyIFc9dGhpcztpZigic2l6ZSI9PT1pZSYmdGhpcy5fc2V0SWNvblNpemUoWSksInNoYXBlIj09PWllKXtpZih0''@;'; + put 'put ''aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWw9dGhpcy5fbm9ybWFsaXplU2hhcGUoWSksdGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbiYmKHRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb24oKSx0aGlzLl9zaGFwZVRlbXBsYXRlU3Vic2NyaXB0aW9uPUUuU2hhcGVUZW1wbGF0ZU9i''@;'; + put 'put ''c2VydmVyLmluc3RhbmNlLnN1YnNjcmliZVRvKHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCxmdW5jdGlvbihOKXtXLl9pbmplY3RUZW1wbGF0ZShOKX0pKSwhQi5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuaGFzKHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCkpcmV0dXJuIHZvaWQgdGhpcy5f''@;'; + put 'put ''aW5qZWN0RXJyb3JUZW1wbGF0ZSgpO3RoaXMuY3VycmVudFNoYXBlVGVtcGxhdGU9Qi5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCl9InRpdGxlIj09PWllJiYodGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsPVksIXRoaXMuY3VycmVudFNoYXBl''@;'; + put 'put ''QXR0clZhbCl8fHRoaXMuX2luamVjdFRlbXBsYXRlKCl9LFoucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWZ1bmN0aW9uKCl7dGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbiYmdGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbigpfSxaLnByb3RvdHlwZS5fc2V0QXJp''@;'; + put 'put ''YUxhYmVsbGVkQnk9ZnVuY3Rpb24oKXt2YXIgaWU9dGhpcy5nZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIpLFk9dGhpcy5xdWVyeVNlbGVjdG9yKCJzdmciKXx8dGhpcztpZT9pZSYmaWUuaW5kZXhPZih0aGlzLmNsckljb25VbmlxSWQpPDAmJlkuc2V0QXR0cmlidXRlKCJhcmlhLWxh''@;'; + put 'put ''YmVsbGVkYnkiLGllKyIgIit0aGlzLmNsckljb25VbmlxSWQpOlkuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLHRoaXMuY2xySWNvblVuaXFJZCl9LFoucHJvdG90eXBlLl9pbmplY3RUZW1wbGF0ZT1mdW5jdGlvbihpZSl7aWUmJmllIT09dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0''@;'; + put 'put ''ZSYmKHRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGU9aWUpLHRoaXMuaW5uZXJIVE1MPXRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGUsdGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsJiYodGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkoKSx0aGlzLl9hcHBlbmRDdXN0b21UaXRsZSgpKX0sWi5wcm90b3R5''@;'; + put 'put ''cGUuX2luamVjdEVycm9yVGVtcGxhdGU9ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTaGFwZVRlbXBsYXRlPUIuQ2xhcml0eUljb25zQXBpLmluc3RhbmNlLmdldCgiZXJyb3IiKSx0aGlzLl9pbmplY3RUZW1wbGF0ZSgpfX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL2luZGV4LnRzIjpmdW5jdGlv''@;'; + put 'put ''bihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuQ2xhcml0eUljb25zPXZvaWQgMDt2YXIgQj1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWFwaS50cyIpLEU9bWUoIi4vcHJvamVjdHMvaWNv''@;'; + put 'put ''bnMvc3JjL2Nsci1pY29ucy1lbGVtZW50LnRzIiksTWU9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyIpLFU9Qi5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2U7TC5DbGFyaXR5SWNvbnM9VSxVLmFkZChNZS5Db3JlU2hhcGVzKSwidW5kZWZpbmVkIiE9dHlw''@;'; + put 'put ''ZW9mIHdpbmRvdyYmKHdpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIil8fCh3aW5kb3cuQ2xhcml0eUljb25zPVUpLGN1c3RvbUVsZW1lbnRzLmdldCgiY2xyLWljb24iKXx8Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJjbHItaWNvbiIsRS5DbGFyaXR5SWNvbkVsZW1lbnQpKX0s''@;'; + put 'put ''Ii4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLkNvcmVTaGFwZXM9TC5DbHJTaGFwZUFycm93PUwuQ2xyU2hhcGVT''@;'; + put 'put ''dGVwRm9yd2FyZDI9TC5DbHJTaGFwZUV5ZUhpZGU9TC5DbHJTaGFwZUV5ZT1MLkNsclNoYXBlRXZlbnQ9TC5DbHJTaGFwZUNhbGVuZGFyPUwuQ2xyU2hhcGVBbmdsZURvdWJsZT1MLkNsclNoYXBlVmlld0NvbHVtbnM9TC5DbHJTaGFwZVNlYXJjaD1MLkNsclNoYXBlVm1CdWc9TC5DbHJTaGFw''@;'; + put 'put ''ZUZpbHRlckdyaWRDaXJjbGU9TC5DbHJTaGFwZUZpbHRlckdyaWQ9TC5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWw9TC5DbHJTaGFwZUVsbGlwc2lzSG9yaXpvbnRhbD1MLkNsclNoYXBlQ2xvdWQ9TC5DbHJTaGFwZUltYWdlPUwuQ2xyU2hhcGVCZWxsPUwuQ2xyU2hhcGVGb2xkZXJPcGVuPUwu''@;'; + put 'put ''Q2xyU2hhcGVGb2xkZXI9TC5DbHJTaGFwZUFuZ2xlPUwuQ2xyU2hhcGVVc2VyPUwuQ2xyU2hhcGVCYXJzPUwuQ2xyU2hhcGVIZWxwSW5mbz1MLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkPUwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkPUwuQ2xyU2hhcGVTdWNjZXNzU3RhbmRhcmQ9TC5DbHJTaGFw''@;'; + put 'put ''ZUluZm9TdGFuZGFyZD1MLkNsclNoYXBlSW5mb0NpcmNsZT1MLkNsclNoYXBlQ2hlY2tDaXJjbGU9TC5DbHJTaGFwZUV4Y2xhbWF0aW9uQ2lyY2xlPUwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlPUwuQ2xyU2hhcGVUaW1lcz1MLkNsclNoYXBlQ2hlY2s9TC5DbHJTaGFwZUNvZz1MLkNs''@;'; + put 'put ''clNoYXBlSG9tZT1MLkNsclNoYXBlVW5rbm93blN0YXR1cz12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtMLkNsclNo''@;'; + put 'put ''YXBlVW5rbm93blN0YXR1cz0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTcuNTgiIGN5PSIyNi4yMyIgcj0iMS40Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC43LDEzYTUuMTgsNS4xOCwwLDAsMC0yLjE2LTMuNTYsNy4yNiw3LjI2LDAsMCwwLTUuNzEtMS4wOUExMS4zNCwxMS4zNCwwLDAsMCwxMiwxMC40NCwxLDEsMCwxLDAsMTMuMjYsMTJhOS4zMiw5LjMyLDAsMCwxLDMuOTQtMS43Miw1LjI5LDUuMjks''@;'; + put 'put ''MCwwLDEsNC4xNi43NCwzLjIxLDMuMjEsMCwwLDEsMS4zNSwyLjE5Yy4zMywyLjY5LTMuMTksMy43NS01LjMyLDQuMTRsLS44Mi4xNXY0LjM2YTEsMSwwLDAsMCwyLDBWMTkuMTdDMjQuNjEsMTcuNzksMjQuODgsMTQuNDEsMjQuNywxM1oiLz4nKSxMLkNsclNoYXBlSG9tZT0oMCxFLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjcxLDE3LjI5bC0xNS0xNWExLDEsMCwwLDAtMS40MSwwbC0xNSwxNWExLDEsMCwwLDAsMS40MSwxLjQxTDE4LDQuNDEsMzIuMjksMTguNzFhMSwxLDAsMCwwLDEuNDEtMS40MVoi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI4LDMyaC01VjIySDEzVjMySDhWMThMNiwyMFYzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJWMTkuNzZsLTItMloiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMsMTlhMSwxLDAsMCwxLS43MS0uMjlMMTgsNC40MSwzLjcxLDE4LjcxYTEsMSwwLDAsMS0xLjQxLTEuNDFsMTUtMTVhMSwxLDAsMCwxLDEuNDEsMGwxNSwxNUExLDEsMCwwLDEsMzMs''@;'; + put 'put ''MTlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE4LDcuNzksNiwxOS44M1YzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJWMTkuNzZaIi8+JyksTC5DbHJTaGFwZUNvZz0oMCxFLmNs''@;'; + put 'put ''ckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjEsMTFjLTMuOSwwLTcsMy4xLTcsN3MzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03UzIyLDExLDE4LjEsMTF6IE0xOC4xLDIzYy0yLjgsMC01LTIuMi01LTVzMi4yLTUsNS01''@;'; + put 'put ''YzIuOCwwLDUsMi4yLDUsNVMyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC42LTEuNWwxLjQtMi42YzAuMy0wLjYsMC4yLTEuNC0wLjMtMS45''@;'; + put 'put ''bC0yLjQtMi40Yy0wLjUtMC41LTEuMy0wLjYtMS45LTAuM2wtMi42LDEuNGwtMS41LTAuNmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcu''@;'; + put 'put ''OSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40''@;'; + put 'put ''LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIu''@;'; + put 'put ''NC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiBNMzIsMTkuNGwtMy42LDEuMUwyOC4zLDIxYy0wLjMsMC43LTAuNiwxLjQtMC45LDIuMWwt''@;'; + put 'put ''MC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAuM2wtMy4zLDEuOGwtMi0ybDEuOC0zLjNsLTAuMy0w''@;'; + put 'put ''LjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQtMC43LDIuMi0wLjlsMC41LTAuMkwxNi42LDRoMi44''@;'; + put 'put ''bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS40LDAuNSwyLjEsMC45bDAuNSwwLjNsMy4zLTEuOGwyLDJsLTEuOCwzLjNsMC4zLDAuNWMwLjQsMC43LDAuNywxLjQsMC45LDIuMWwwLjEsMC41bDMuNiwxLjFWMTkuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4xLDE4YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdzLTMuMS03LTctN0MxNC4yLDExLDExLjEsMTQuMSwxMS4xLDE4eiBNMjMuMSwxOGMwLDIuOC0yLjIsNS01LDVjLTIuOCwwLTUtMi4yLTUt''@;'; + put 'put ''NXMyLjItNSw1LTVDMjAuOSwxMywyMy4xLDE1LjIsMjMuMSwxOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC4xLTAuM2MtMC44LDAtMS42''@;'; + put 'put ''LTAuMi0yLjQtMC40YzAuMywwLjYsMC42LDEuMywwLjgsMS45bDAuMSwwLjVsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUsMC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwt''@;'; + put 'put ''MC41LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAuNUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAu''@;'; + put 'put ''Mi0wLjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy41TDIxLDcuN2MwLjcsMC4yLDEuMywwLjUsMS45LDAuOGMtMC4zLTAuOC0wLjQtMS42LTAuNC0yLjVs''@;'; + put 'put ''LTAuNC0wLjJsLTAuOS0yLjhDMjEsMi41LDIwLjQsMiwxOS43LDJoLTMuNGMtMC43LDAtMS4zLDAuNS0xLjQsMS4yTDE0LDZjLTAuNiwwLjEtMS4xLDAuMy0xLjYsMC42TDkuOCw1LjJDOS4yLDQuOSw4LjQsNSw3LjksNS41TDUuNSw3LjlDNSw4LjQsNC45LDkuMiw1LjIsOS44bDEuMywyLjVj''@;'; + put 'put ''LTAuMiwwLjUtMC40LDEuMS0wLjYsMS42bC0yLjgsMC45QzIuNSwxNSwyLDE1LjYsMiwxNi4zdjMuNGMwLDAuNywwLjUsMS4zLDEuMiwxLjVMNiwyMi4xbDAuNiwxLjVsLTEuNCwyLjZjLTAuMywwLjYtMC4yLDEuNCwwLjMsMS45bDIuNCwyLjRjMC41LDAuNSwxLjMsMC42LDEuOSwwLjNsMi42''@;'; + put 'put ''LTEuNGwxLjUsMC42bDAuOSwyLjljMC4yLDAuNiwwLjgsMS4xLDEuNSwxLjFoMy40YzAuNywwLDEuMy0wLjUsMS41LTEuMWwwLjktMi45bDEuNS0wLjZsMi42LDEuNGMwLjYsMC4zLDEuNCwwLjIsMS45LTAuM2wyLjQtMi40YzAuNS0wLjUsMC42LTEuMywwLjMtMS45bC0xLjQtMi42bDAuNi0x''@;'; + put 'put ''LjVsMi45LTAuOWMwLjYtMC4yLDEuMS0wLjgsMS4xLTEuNXYtMy40QzM0LDE1LjYsMzMuNSwxNC45LDMyLjgsMTQuN3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRn''@;'; + put 'put ''ZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNywxNS40aC01LjN2MC4xbDMuNiwxLjF2Mi44bC0zLjYsMS4xTDI4LjMsMjFjLTAu''@;'; + put 'put ''MywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEtMy42TDE1LDI4LjNjLTAuNy0wLjMtMS40LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMs''@;'; + put 'put ''MS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMtMC41TDcuMSw5LjFsMi0ybDMuMiwxLjhsMC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4y''@;'; + put 'put ''LTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNGwxLjQtMi4zbC0wLjYtMkMyMSwyLjQsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1''@;'; + put 'put ''LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIu''@;'; + put 'put ''NGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSww''@;'; + put 'put ''LjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTYsMzMuOSwxNS43LDMzLjcsMTUuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMC4yLDAsMC41LDAsMC43LDAuMWMtMC4yLTAuNi0wLjMtMS4zLTAuMi0yaC0wLjVjLTMuOSwwLTcsMy4xLTcsN2MwLDMuOSwzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03YzAtMC45LTAuMi0x''@;'; + put 'put ''LjgtMC41LTIuNmgtMi4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi41QzIzLjEsMjAuOCwyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQi''@;'; + put 'put ''IGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNywwLDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAuNC0wLjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3''@;'; + put 'put ''LDEsMjYuOSwxLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjU3LDE1LjcybC0zLjM1LTFhMTEuNjUsMTEuNjUsMCwwLDAtLjk1LTIuMzNsMS42NC0zLjA3YS42MS42MSwwLDAsMC0uMTEtLjcyTDI3LjQx''@;'; + put 'put ''LDYuMmEuNjEuNjEsMCwwLDAtLjcyLS4xMUwyMy42NCw3LjcyYTExLjYyLDExLjYyLDAsMCwwLTIuMzYtMWwtMS0zLjMxQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSww''@;'; + put 'put ''LDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2''@;'; + put 'put ''LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAs''@;'; + put 'put ''MCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1''@;'; + put 'put ''LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMi41NywxNS43MmwtMy4zNS0xYTEy''@;'; + put 'put ''LjEyLDEyLjEyLDAsMCwwLS40Ny0xLjMyLDcuNDksNy40OSwwLDAsMS02LjE0LTYuMTYsMTEuODIsMTEuODIsMCwwLDAtMS4zMy0uNDhsLTEtMy4zMUEuNjEuNjEsMCwwLDAsMTkuNjksM0gxNi4zMWEuNjEuNjEsMCwwLDAtLjU4LjQzbC0xLDMuM2ExMS42MywxMS42MywwLDAsMC0yLjM4LDFs''@;'; + put 'put ''LTMtMS42MmEuNjEuNjEsMCwwLDAtLjcyLjExTDYuMiw4LjU5YS42MS42MSwwLDAsMC0uMTEuNzJsMS42MiwzYTExLjYzLDExLjYzLDAsMCwwLTEsMi4zN2wtMy4zMSwxYS42MS42MSwwLDAsMC0uNDMuNTh2My4zOGEuNjEuNjEsMCwwLDAsLjQzLjU4bDMuMzMsMWExMS42MiwxMS42MiwwLDAs''@;'; + put 'put ''MCwxLDIuMzNMNi4wOSwyNi42OWEuNjEuNjEsMCwwLDAsLjExLjcyTDguNTksMjkuOGEuNjEuNjEsMCwwLDAsLjcyLjExbDMuMDktMS42NWExMS42NSwxMS42NSwwLDAsMCwyLjMuOTRsMSwzLjM3YS42MS42MSwwLDAsMCwuNTguNDNoMy4zOGEuNjEuNjEsMCwwLDAsLjU4LS40M2wxLTMuMzhh''@;'; + put 'put ''MTEuNjMsMTEuNjMsMCwwLDAsMi4yOC0uOTRsMy4xMSwxLjY2YS42MS42MSwwLDAsMCwuNzItLjExbDIuMzktMi4zOWEuNjEuNjEsMCwwLDAsLjExLS43MmwtMS42Ni0zLjFhMTEuNjMsMTEuNjMsMCwwLDAsLjk1LTIuMjlsMy4zNy0xYS42MS42MSwwLDAsMCwuNDMtLjU4VjE2LjMxQS42MS42''@;'; + put 'put ''MSwwLDAsMCwzMi41NywxNS43MlpNMTgsMjMuNUE1LjUsNS41LDAsMSwxLDIzLjUsMTgsNS41LDUuNSwwLDAsMSwxOCwyMy41WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFk''@;'; + put 'put ''Z2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzIuNTcsMTUuNzIsMzEuNSwxNS40SDIyLjg1QTUuNSw1LjUsMCwxLDEsMTgsMTIuNWE1LjUz''@;'; + put 'put ''LDUuNTMsMCwwLDEsLjY1LDBBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMi4wOS0zLjYyLS44Ni0yLjgzQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIu''@;'; + put 'put ''MTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42''@;'; + put 'put ''MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45''@;'; + put 'put ''NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu''@;'; + put 'put ''NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlQ2hlY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMy43MiwyNy42OSwzLjI5LDE3LjI3YTEsMSww''@;'; + put 'put ''LDAsMSwxLjQxLTEuNDFsOSw5TDMxLjI5LDcuMjlhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz4nKSxMLkNsclNoYXBlVGltZXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOS40MSwxOGw4LjI5LTguMjlhMSwx''@;'; + put 'put ''LDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSw5LjcxLDguMjlBMSwxLDAsMCwwLDguMjksOS43MUwxNi41OSwxOCw4LjI5LDI2LjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTkuNDFsOC4yOSw4LjI5YTEsMSwwLDAsMCwxLjQxLTEuNDFaIi8+JyksTC5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJp''@;'; + put 'put ''YW5nbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMS4zMmExLjMsMS4zLDAsMCwwLDEuMy0xLjNWMTRhMS4zLDEuMywwLDEsMC0yLjYsMHY2QTEuMywxLjMsMCwwLDAsMTgsMjEuMzJaIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgY3g9IjE3Ljk1IiBjeT0iMjQuMjciIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJN''@;'; + put 'put ''MzAuMzMsMjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWm0tMS43OCwxLjk0YTEsMSwwLDAsMS0uODYuNDlIOC4yMWExLDEsMCwwLDEtLjg4LTEuNDhMMTcuMDcsOC41NWExLDEsMCww''@;'; + put 'put ''LDEsMS43NiwwbDkuNzQsMTcuOTRBMSwxLDAsMCwxLDI4LjU1LDI3LjQ4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZhMywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMs''@;'; + put 'put ''MywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQuNDNaTTE2LjQ2LDEyLjc0YTEuNDksMS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEuNDksMCwxLDEtMywwWk0xOCwyNi4yNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcyQTEuNzIsMS43MiwwLDAsMSwxOCwyNi4yNVoiLz4n''@;'; + put 'put ''KSxMLkNsclNoYXBlRXhjbGFtYXRpb25DaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgs''@;'; + put 'put ''MTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMC4wN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjN2LTZhMS4zLDEuMywwLDEsMSwyLjYsMHY2QTEuMywxLjMsMCwwLDEsMTgs''@;'; + put 'put ''MjAuMDdaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE3Ljk1IiBjeT0iMjMuMDIiIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0xLjQ5LDZhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSwwLDEsMS0zLDBaTTE4LDI1LjVhMS43MiwxLjcyLDAsMSwxLDEuNzItMS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjUuNVoi''@;'; + put 'put ''Lz4nKSxMLkNsclNoYXBlQ2hlY2tDaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAs''@;'; + put 'put ''MTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xNi4zNCwyMy43NGwtNS01YTEsMSwwLDAsMSwxLjQxLTEuNDFsMy41OSwzLjU5LDYuNzgtNi43OGExLDEsMCwwLDEsMS40MSwxLjQx''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwxOEExMiwxMiwwLDEsMSwxOCw2LDEyLDEyLDAsMCwxLDMwLDE4Wm0tNC43Ny0yLjE2YTEuNCwxLjQsMCwwLDAtMi0ybC02Ljc3LDYuNzdMMTMsMTcuMTZhMS40''@;'; + put 'put ''LDEuNCwwLDAsMC0yLDJsNS40NSw1LjQ1WiIvPicpLEwuQ2xyU2hhcGVJbmZvQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiICBjeD0iMTcuOTMiIGN5PSIxMS45IiByPSIxLjQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgIGQ9Ik0yMSwyM0gxOVYxNUgxNmExLDEsMCwwLDAsMCwyaDF2NkgxNWExLDEsMCwxLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTIsNS4xNWEyLDIsMCwxLDEsMiwyQTIsMiwwLDAsMSwxNS45LDExLjE1Wk0yMywyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDEsMSwwLTJoMlYxN0gxNmExLDEsMCwwLDEsMC0y''@;'; + put 'put ''aDR2OGgyQTEsMSwwLDAsMSwyMywyNFoiLz4nKSxMLkNsclNoYXBlSW5mb1N0YW5kYXJkPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxNy45NyIgY3k9IjEwLjQ1IiByPSIxLjQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTIxLDI1SDE5VjE0LjFIMTZhMSwxLDAsMCwwLDAsMmgxVjI1SDE1YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVptLS4xLDUuMjhhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTcuOSw3LjM4Wm0zLjYsMjEuMjVoLTdhMS40LDEuNCwwLDEsMSwwLTIuOGgyLjF2LTkuMkgxNWExLjQsMS40''@;'; + put 'put ''LDAsMSwxLDAtMi44aDQuNHYxMmgyLjFhMS40LDEuNCwwLDEsMSwwLDIuOFoiLz4nKSxMLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwz''@;'; + put 'put ''NCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjgsMTIuMWExLDEsMCwwLDAtMS40MSwwTDE1''@;'; + put 'put ''LjQ5LDIzLjE1bC02LTZBMSwxLDAsMCwwLDgsMTguNTNMMTUuNDksMjYsMjgsMTMuNTJBMSwxLDAsMCwwLDI4LDEyLjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYs''@;'; + put 'put ''MTYsMCwwLDAsMTgsMlpNMjguNDUsMTIuNjMsMTUuMzEsMjUuNzYsNy41NSwxOGExLjQsMS40LDAsMCwxLDItMmw1Ljc4LDUuNzhMMjYuNDcsMTAuNjVhMS40LDEuNCwwLDEsMSwyLDJaIi8+JyksTC5DbHJTaGFwZUVycm9yU3RhbmRhcmQ9KDAsRS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjYuMDYiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDIyLjYxYTEsMSwwLDAsMS0xLTF2LTEy''@;'; + put 'put ''YTEsMSwwLDEsMSwyLDB2MTJBMSwxLDAsMCwxLDE4LDIyLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQs''@;'; + put 'put ''MCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVpNMTYuNiw4LjhhMS40LDEuNCwwLDAs''@;'; + put 'put ''MSwyLjgsMHYxMmExLjQsMS40LDAsMCwxLTIuOCwwWk0xOCwyOC42YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI4LjZaIi8+JyksTC5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZD0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwxLDAsMCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkEx''@;'; + put 'put ''LDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNS4wNjIwNzgyLDEuNjgxMTk2IEMxNS42Mjk4ODE5LDAuNjQ5MjY2MzU1IDE2LjcxMDkwOTEsMC4wMTAyMjE5Mzk2IDE3Ljg4''@;'; + put 'put ''NSwwLjAxMDIyMTkzOTYgQzE5LjA1OTA5MDksMC4wMTAyMjE5Mzk2IDIwLjE0MDExODEsMC42NDkyNjYzNTUgMjAuNzA4NjQzMywxLjY4MjUyMTI5IEwzNC41OTg2NDQsMjcuMjQyNTIyNSBDMzUuMTQwNzc0NiwyOC4yNDAxMzk3IDM1LjExNzQzNDUsMjkuNDQ5NTM3MyAzNC41MzcyMTYxLDMw''@;'; + put 'put ''LjQyNTQ5NDMgQzMzLjk1Njk5NzcsMzEuNDAxNDUxNCAzMi45MDU2NzEsMzEuOTk5Njk4NCAzMS43NywzMiBMNC4wMjIzOTMyMywzMS45OTk3NDkyIEMyLjg3NDA5MDA5LDMyLjAyNTQ2OTkgMS43OTkwMjg0MywzMS40Mzc1NzUzIDEuMjAxMDYzMzUsMzAuNDU2OTEyNiBDMC42MDMwOTgyNjUs''@;'; + put 'put ''MjkuNDc2MjQ5OSAwLjU3Mjc3Nzg5OSwyOC4yNTEzMTc5IDEuMTIyMDc4MTgsMjcuMjQxMTk2IEwxNS4wNjIwNzgyLDEuNjgxMTk2IFogTTIuODc4NTA3NjcsMjguMTk3NzI4MiBDMi42NzA2MDk2NiwyOC41ODAwMzc2IDIuNjgyMDk3NSwyOS4wNDQxNDIzIDIuOTA4NjU1NywyOS40MTU2OTc3''@;'; + put 'put ''IEMzLjEzNTIxMzksMjkuNzg3MjUzMiAzLjU0MjUzNTQsMzAuMDA5OTk1OSA0LDMwIEwzMS43Njk3MzQ0LDMwIEMzMi4xOTk5MTkxLDI5Ljk5OTg4NTggMzIuNTk4MjQ3OCwyOS43NzMyMjA4IDMyLjgxODA4MjEsMjkuNDAzNDQ4MiBDMzMuMDM3OTE2NCwyOS4wMzM2NzU3IDMzLjA0Njc1OTUs''@;'; + put 'put ''MjguNTc1NDU2NyAzMi44NDEzNTY3LDI4LjE5NzQ3ODcgTDE4Ljk1Mzg3MzksMi42NDIwODE5NSBDMTguNzM5NDIzNiwyLjI1MjM0NDM2IDE4LjMyOTg0MTksMi4wMTAyMjE5NCAxNy44ODUsMi4wMTAyMjE5NCBDMTcuNDQwNjg4OSwyLjAxMDIyMTk0IDE3LjAzMTU1MzgsMi4yNTE3NjY5MiAx''@;'; + put 'put ''Ni44MTY4OTQ2LDIuNjQwNjg3NTMgTDIuODc4NTA3NjcsMjguMTk3NzI4MiBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LjYsMjkuMjEsMjAuNzEsMy42NWEzLjIyLDMuMjIsMCwwLDAtNS42NiwwTDEuMTcs''@;'; + put 'put ''MjkuMjFBMy4yMiwzLjIyLDAsMCwwLDQsMzRIMzEuNzdhMy4yMiwzLjIyLDAsMCwwLDIuODMtNC43NVpNMTYuNiwxMGExLjQsMS40LDAsMCwxLDIuOCwwdjEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI5Ljg1YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI5Ljg1''@;'; + put 'put ''WiIvPicpLEwuQ2xyU2hhcGVIZWxwSW5mbz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMzksMjUuNDVhMSwxLDAsMCwwLTEuMzguMjljLTEuNDEsMi4xNi00LDQuODEtNi4zMSw1LjdzLTQuMTIuNTctNC44NCwwYy0uMzEtLjI3LTEuMTItMS0uNDMtMy40OS40Ni0xLjY2LDMuMzIt''@;'; + put 'put ''OS40OCw0LTExLjM4bC0yLjE4LjI4Yy0uNjksMS44Ni0zLjI5LDguODQtMy43NiwxMC41OC0uNjgsMi40OS0uMzQsNC4zLDEuMDksNS41NkE1LjU5LDUuNTksMCwwLDAsMTUsMzRhOS41Myw5LjUzLDAsMCwwLDMuNDUtLjdjMi43OS0xLjA5LDUuNzItNC4xMiw3LjI2LTYuNDdBMSwxLDAsMCww''@;'; + put 'put ''LDI1LjM5LDI1LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMywxMWE0LjUsNC41LDAsMSwwLTQuNS00LjVBNC41LDQuNSwwLDAsMCwxOS4zLDExWm0wLTdhMi41LDIuNSwwLDEsMS0yLjUsMi41QTIu''@;'; + put 'put ''NSwyLjUsMCwwLDEsMTkuMyw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuODEsMTVjLjA2LDAsNi4yNy0uODIsNy43My0xLC42NS0uMSwxLjE0LDAsMS4zLjE1cy4yMS44LS4wNywxLjY4Yy0uNjEsMS44''@;'; + put 'put ''Ni0zLjY5LDExLTQuNTksMTMuNzFhOCw4LDAsMCwwLDEuMjktLjM4LDcuMzIsNy4zMiwwLDAsMCwxLjE1LS42QzE5Ljg1LDI1LDIyLjE1LDE4LjEsMjIuNjcsMTYuNTJzLjM5LTIuNzgtLjMtMy42YTMuMTYsMy4xNiwwLDAsMC0zLjA4LS44M2MtMS40My4xNS03LjQ3Ljk0LTcuNzMsMWExLDEs''@;'; + put 'put ''MCwwLDAsLjI2LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjIwLjc1IiBjeT0iNiIgcj0iNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0yNC44NCwyNi4yM2ExLDEsMCwwLDAtMS40LjI5LDE2LjYsMTYuNiwwLDAsMS0zLjUxLDMuNzdjLS4zMy4yNS0xLjU2LDEuMi0yLjA4LDEtLjM2LS4xMS0uMTUtLjgyLS4wOC0xLjEybC41My0xLjU3Yy4yMi0uNjQsNC4wNS0xMiw0LjQ3LTEzLjMuNjItMS45LjM1LTMuNzctMi40OC0z''@;'; + put 'put ''LjMyLS43Ny4wOC04LjU4LDEuMDktOC43MiwxLjFhMSwxLDAsMCwwLC4xMywyczMtLjM5LDMuMzMtLjQyYS44OC44OCwwLDAsMSwuODUuNDQsMi40NywyLjQ3LDAsMCwxLS4wNywxLjcxYy0uMjYsMS00LjM3LDEyLjU4LTQuNSwxMy4yNWEyLjc4LDIuNzgsMCwwLDAsMS4xOCwzLDUsNSwwLDAs''@;'; + put 'put ''MCwzLjA4LjgzaDBhOC41Myw4LjUzLDAsMCwwLDMuMDktLjYyYzIuNDktMSw1LjA5LTMuNjYsNi40Ni01Ljc1QTEsMSwwLDAsMCwyNC44NCwyNi4yM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUJhcnM9KDAsRS5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwyOUg0YTEsMSwwLDAsMSwwLTJIMzJhMSwxLDAsMCwxLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0i''@;'; + put 'put ''TTMyLDE5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzIsOUg0QTEsMSwwLDAsMSw0LDdIMzJhMSwxLDAsMCwxLDAsMloiLz4nKSxMLkNsclNo''@;'; + put 'put ''YXBlVXNlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMSwwLTctN0E3LDcsMCwwLDAsMTgsMTdaTTE4LDVhNSw1LDAsMSwxLTUsNUE1LDUsMCwwLDEsMTgsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3YTE3LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjksMzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwy''@;'; + put 'put ''MiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4xNiwwLDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0VjMxYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdh''@;'; + put 'put ''Nyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjZhNSw1LDAsMSwxLDEuMjQtOC40MmwxLTEuNzZBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjUuNzRBMiwy''@;'; + put 'put ''LDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44''@;'; + put 'put ''NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEtNSw1QTUsNSwwLDAsMSwxOCw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNs''@;'; + put 'put ''ZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwx''@;'; + put 'put ''LjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIx''@;'; + put 'put ''OCIgY3k9IjEwIiByPSI3IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNo''@;'; + put 'put ''MjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42''@;'; + put 'put ''aC0uMjJBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMy4xNi01LjQ3QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4''@;'; + put 'put ''LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC42MSwyNC41MmExNy4xNiwxNy4xNiwwLDAsMC0yNS4yMiwwLDEuNTEsMS41MSwwLDAsMC0uMzksMXY2QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNXYtNkExLjUxLDEuNTEsMCwwLDAsMzAuNjEsMjQuNTJaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFw''@;'; + put 'put ''ZUFuZ2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuNTIsMjIuNTIsMTgsMTAuNiw2LjQ4LDIyLjUyYTEuNywxLjcsMCwwLDAsMi40NSwyLjM2TDE4LDE1LjQ5bDkuMDgsOS4zOWExLjcsMS43LDAsMCww''@;'; + put 'put ''LDIuNDUtMi4zNloiLz4nKSxMLkNsclNoYXBlRm9sZGVyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEy''@;'; + put 'put ''LDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNVYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUxYTcuNSw3LjUsMCwwLDEtMS4yOS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCww''@;'; + put 'put ''LDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzAsMTUuNFYyOUg2VjEzaDcuMzFhMiwyLDAsMCww''@;'; + put 'put ''LDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1''@;'; + put 'put ''LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEu''@;'; + put 'put ''MjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1''@;'; + put 'put ''SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1h''@;'; + put 'put ''bGVydGVkIiBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk02LDExVjdoNi40OWwyLjcyLDRa''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAs''@;'; + put 'put ''MCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIzLjEzLDlI''@;'; + put 'put ''MTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDExVjdoNi40OWwyLjcyLDRaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVGb2xkZXJPcGVuPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0xIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxSDMyYTIsMiwwLDAsMC0yLTJIMTYuNDJM''@;'; + put 'put ''MTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42''@;'; + put 'put ''NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSwwLDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTks''@;'; + put 'put ''MCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUyYTcuNDksNy40OSwwLDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3''@;'; + put 'put ''LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0''@;'; + put 'put ''ZWQiIGQ9Ik0zMy42OCwxNS40aC0uM0wyOS41NSwyOUg2LjlsMy44OC0xMy44MWEuNjYuNjYsMCwwLDEsLjM4LS4yNGg5LjQyQTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCww''@;'; + put 'put ''LC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAu''@;'; + put 'put ''MzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCwwLDEsMzMuNjgsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJh''@;'; + put 'put ''MiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZhMy42MywzLjYzLDAsMCwxLS4yNi0uNTZIMTEuMTdhMi41OSwyLjU5LDAsMCww''@;'; + put 'put ''LTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoMi43M0EzLjY2LDMuNjYsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcs''@;'; + put 'put ''MS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFhMS42OCwxLjY4LDAsMCwwLC4wNy0uMzJBMy42NywzLjY3LDAsMCwxLDMzLjY4LDE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2''@;'; + put 'put ''LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAsMCwxLTEuMzEtMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4x''@;'; + put 'put ''OS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFw''@;'; + put 'put ''ZUJlbGw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi41MSwyNy44M0ExNC40LDE0LjQsMCwwLDEsMzAsMjQuOWExMi42MywxMi42MywwLDAsMS0xLjM1LTQuODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAs''@;'; + put 'put ''MTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwxLTIuNDcsMi45MywxLDEsMCwwLDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEs''@;'; + put 'put ''MWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWk01LjEzLDI4Ljk0YTE2LjE3LDE2LjE3LDAsMCwwLDIuNDQtMywxNC4yNCwxNC4yNCwwLDAsMCwxLjY1LTUuODVWMTUuMTVhOC43NCw4Ljc0LDAsMSwxLDE3LjQ3LDB2NC45NGExNC4yNCwxNC4yNCwwLDAs''@;'; + put 'put ''MCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzQuMjhBMi42NywyLjY3LDAsMCwwLDIwLjU4LDMySDE1LjMyQTIuNjcsMi42NywwLDAs''@;'; + put 'put ''MCwxOCwzNC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjUxLDI3LjgzQTE0LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45''@;'; + put 'put ''MiwxMC45MiwwLDAsMC0uMTYtMS43OSw3LjQ0LDcuNDQsMCwwLDEtMi4yNC0uODQsOC44OSw4Ljg5LDAsMCwxLC40LDIuNjR2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzSDUuMTNhMTYuMTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0LjI0''@;'; + put 'put ''LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNUE4LjgsOC44LDAsMCwxLDE4LDYuMzFhOC42MSw4LjYxLDAsMCwxLDQuNzYsMS40NEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU4LDEwLjU4LDAsMCwwLTMuMzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0y''@;'; + put 'put ''LjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTMsMSwxLDAsMCwwLS4zNC43NXYxLjM2YTEsMSwwLDAsMCwxLDFoMjcuOGExLDEsMCwwLDAsMS0xVjI4LjU4QTEsMSww''@;'; + put 'put ''LDAsMCwzMi41MSwyNy44M1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1QTEwLjgxLDEwLjgxLDAsMCwwLDE5LjIxLDQuNFYzLjExYTEuMzMsMS4zMyww''@;'; + put 'put ''LDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; + put 'put ''bGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE1LjMyLDMyYTIuNjUsMi42NSwwLDAsMCw1LjI1LDBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcs''@;'; + put 'put ''MCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzIuODUsMjguMTNsLS4zNC0uM0ExNC4zNywxNC4zNyww''@;'; + put 'put ''LDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OUE3LjUsNy41LDAsMCwxLDIyLjUsNmMwLS4yMSwwLS40MiwwLS42M2ExMC41NywxMC41NywwLDAsMC0zLjMyLTFWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42Nyww''@;'; + put 'put ''VjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAsMCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzbC0uMzQuM3YyLjgySDMyLjg1WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxMLkNsclNoYXBlSW1hZ2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlY2QTIsMiwwLDAsMCwzMiw0Wk00LDMwVjZIMzJWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguOTIsMTRhMywzLDAsMSwwLTMtM0EzLDMsMCwwLDAsOC45MiwxNFptMC00LjZBMS42LDEuNiwwLDEsMSw3''@;'; + put 'put ''LjMzLDExLDEuNiwxLjYsMCwwLDEsOC45Miw5LjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi43OCwxNS4zN2wtNS40LDUuNC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYu''@;'; + put 'put ''NzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MUExLDEsMCwwLDAsMjIuNzgsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjkzLDExYTMsMyww''@;'; + put 'put ''LDEsMC0zLDNBMywzLDAsMCwwLDExLjkzLDExWm0tNC42LDBhMS42LDEuNiwwLDEsMSwxLjYsMS42QTEuNiwxLjYsMCwwLDEsNy4zMywxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTE3LjM4LDIwLjc3bC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MWExLDEsMCwwLDAtMS40MSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMzBINFY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAs''@;'; + put 'put ''MCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk04LjkyLDhhMywzLDAsMSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3''@;'; + put 'put ''VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMwLDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTMwLDEzLjVBNy40OCw3LjQ4LDAsMCwxLDIyLjc4LDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45''@;'; + put 'put ''bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZUNsb3VkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTQsMzNIMTAuNjJDNS42NywzMywxLDI4LjE5LDEsMjMuMWExMCwxMCwwLDAsMSw4LTkuNzUsMTAuMTksMTAuMTksMCwwLDEsMjAuMzMsMS4wNkExMC4wNywxMC4wNywwLDAsMSwyOSwxNi42NmE4LjI5LDguMjksMCwwLDEsNiw4QzM1LDI5''@;'; + put 'put ''LjEsMzEuMzMsMzMsMjcuMTQsMzNaTTE5LjA5LDYuMjNhOC4yNCw4LjI0LDAsMCwwLTguMTksOGwwLC44Ny0uODYuMUE3Ljk0LDcuOTQsMCwwLDAsMywyMy4xYzAsNCwzLjc3LDcuOSw3LjYyLDcuOUgyNy4xNEMzMC4yMSwzMSwzMywyOCwzMywyNC42NWE2LjMxLDYuMzEsMCwwLDAtNS4zNy02''@;'; + put 'put ''LjI2bC0xLjE4LS4xOC4zOS0xLjEzQTguMTgsOC4xOCwwLDAsMCwxOS4wOSw2LjIzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCww''@;'; + put 'put ''LC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ1LDcuNDUsMCwwLDEtMi4xLS41NCw4LDgsMCwwLDEtLjMsNC4xNmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcu''@;'; + put 'put ''NjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3YTguMjQsOC4yNCwwLDAsMSw4LjE5LThBOC4xMyw4LjEzLDAsMCwxLDIyLjU4LDdhNy41Myw3LjUzLDAsMCwxLS4wOC0xLDcuNTEsNy41MSwwLDAsMSwuMDktMS4xMkExMC4xMywxMC4xMywwLDAsMCwxOSw0LjIzLDEw''@;'; + put 'put ''LjI2LDEwLjI2LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVy''@;'; + put 'put ''dGVkIiBkPSJNMjksMTYuNjZhMTAuMTQsMTAuMTQsMCwwLDAsLjItMS4zaC0yYTguMjgsOC4yOCwwLDAsMS0uMzcsMS43MmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkx''@;'; + put 'put ''LTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3QTguMTYsOC4xNiwwLDAsMSwyMSw2LjQ3bDEtMS44QTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44''@;'; + put 'put ''Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0y''@;'; + put 'put ''OSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNEExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZa''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNGMwLS4zMywwLS42NSwwLTFhNy40NCw3LjQ0LDAsMCwxLTYuNi04LjU4QTEw''@;'; + put 'put ''LjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTUsMTAuMTUsMCwwLDAsLjItMS4yNmgtN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwzLTUuMjFBMTAuMTksMTAuMTksMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3''@;'; + put 'put ''LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44''@;'; + put 'put ''NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsPSgwLEUuY2xySWNvblNWRykoJzxj''@;'; + put 'put ''aXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI0LjkiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJj''@;'; + put 'put ''bGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbD0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjMxLjEiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4''@;'; + put 'put ''IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFwZUZpbHRlckdyaWQ9KDAsRS5jbHJJ''@;'; + put 'put ''Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAsMCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAsMC0uMjkuN0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRB''@;'; + put 'put ''MS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEsMSwwLDAsMC0xLTFIOWExLDEsMCwwLDAtMSwxdjFhMS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik04LDExdjEu''@;'; + put 'put ''MTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVsMy45NSwxLjQxYS41LjUsMCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4xMi03LjI1YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4n''@;'; + put 'put ''KSxMLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAtLjI5LS43TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwx''@;'; + put 'put ''LDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0yIiBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAsMSwuMTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCww''@;'; + put 'put ''LC4xNS0uMzVWMTFaIi8+JyksTC5DbHJTaGFwZVZtQnVnPSgwLEUuY2xySWNvblNWRykoJzxyZWN0IHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjMiIGZpbGw9IiNmZmZmZmYiIG9wYWNpdHk9IjAuMTUiIHN0eWxlPSJpc29sYXRpb246aXNvbGF0ZSIvPjxwYXRoIGQ9Ik0zLjc5LDE0Ljgz''@;'; + put 'put ''YTEuMDksMS4wOSwwLDAsMC0xLjQ3LS41NiwxLjA5LDEuMDksMCwwLDAtLjU0LDEuNDlsMi40Nyw1LjRjLjM5Ljg1LjgsMS4yOSwxLjU3LDEuMjlTNywyMiw3LjM5LDIxLjE2bDIuMTctNC43N2EuMzMuMzMsMCwwLDEsLjMxLS4yLjM1LjM1LDAsMCwxLC4zNS4zNXY0LjYxYTEuMTUsMS4xNSww''@;'; + put 'put ''LDAsMCwxLjE0LDEuMywxLjE3LDEuMTcsMCwwLDAsMS4xNy0xLjNWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTcsMS4xNywwLDEsMCwyLjMyLDBWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMyww''@;'; + put 'put ''LDAsMSwxLjE4LDEuMnYzLjc3YTEuMTYsMS4xNiwwLDEsMCwyLjMxLDBWMTYuODZhMi42OSwyLjY5LDAsMCwwLTIuNzgtMi42OSwzLjU3LDMuNTcsMCwwLDAtMi40NywxLjA1LDIuNzUsMi43NSwwLDAsMC0yLjM4LTEuMDVBMy45MywzLjkzLDAsMCwwLDEyLDE1LjIyYTIuODIsMi44MiwwLDAs''@;'; + put 'put ''MC0yLjA4LTEuMDVBMi41NSwyLjU1LDAsMCwwLDcuNCwxNS44OUw1LjgyLDE5LjYzbC0yLTQuOCIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0zMywxNC4xOEExLjE0LDEuMTQsMCwwLDAsMzEuOSwxNWwtMS4xOSwzLjczTDI5LjUsMTUuMDVhMS4xOCwxLjE4LDAsMCwwLTEuMTUtLjg3aC0u''@;'; + put 'put ''MWExLjIsMS4yLDAsMCwwLTEuMTUuODdsLTEuMTksMy43MS0xLjE4LTMuNzFhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjg3LDEuMDgsMS4wOCwwLDAsMC0xLjEyLDEuMDcsMS42OCwxLjY4LDAsMCwwLC4xLjU0bDIsNS43YTEuMjcsMS4yNywwLDAsMCwxLjI3LDEsMS4yNCwxLjI0LDAsMCwwLDEu''@;'; + put 'put ''Mi0uOTNsMS4yLTMuNjQsMS4yLDMuNjRhMS4yNSwxLjI1LDAsMCwwLDEuMjYuOTNBMS4yNywxLjI3LDAsMCwwLDMyLDIxLjVMMzQsMTUuNzNhMS43NywxLjc3LDAsMCwwLC4wOC0uNDhBMS4wNywxLjA3LDAsMCwwLDMzLDE0LjE4WiIgZmlsbD0iI2ZmZmZmZiIvPicpLEwuQ2xyU2hhcGVTZWFy''@;'; + put 'put ''Y2g9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4zMyw1LjA1QTEwLjk1LDEwLjk1LDAsMSwxLDUuMzksMTYsMTEsMTEsMCwwLDEsMTYuMzMsNS4wNW0wLTIuMDVhMTMsMTMsMCwxLDAsMTMsMTMsMTMsMTMs''@;'; + put 'put ''MCwwLDAtMTMtMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zNSwzMy4yOWwtNy4zNy03LjQyLTEuNDIsMS40MSw3LjM3LDcuNDJBMSwxLDAsMSwwLDM1LDMzLjI5WiIvPicpLEwuQ2xyU2hhcGVWaWV3''@;'; + put 'put ''Q29sdW1ucz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDVINUEyLDIsMCwwLDAsMyw3VjI5YTIsMiwwLDAsMCwyLDJIMzFhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMSw1Wk0xMywyOUg1VjdoOFpt''@;'; + put 'put ''MTAsMEgxNVY3aDhaIi8+JyksTC5DbHJTaGFwZUFuZ2xlRG91YmxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjksMTkuNDFhMSwxLDAsMCwxLS43MS0uMjlMMTgsOC44Myw3LjcxLDE5LjEyYTEsMSwwLDAs''@;'; + put 'put ''MS0xLjQxLTEuNDFMMTgsNiwyOS43MSwxNy43MUExLDEsMCwwLDEsMjksMTkuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOSwzMC40MWExLDEsMCwwLDEtLjcxLS4yOUwxOCwxOS44Myw3LjcxLDMw''@;'; + put 'put ''LjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsMTcsMjkuNzEsMjguNzFBMSwxLDAsMCwxLDI5LDMwLjQxWiIvPicpLEwuQ2xyU2hhcGVDYWxlbmRhcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjI1LDZI''@;'; + put 'put ''MjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIi''@;'; + put 'put ''IGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtNSIgeD0iMjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiB4PSIy''@;'; + put 'put ''MCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIg''@;'; + put 'put ''aGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEyIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlB''@;'; + put 'put ''MSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFk''@;'; + put 'put ''Z2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''ICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIg''@;'; + put 'put ''aGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2Vk''@;'; + put 'put ''IiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiIHg9IjIwIiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIiB4PSIxNCIgeT0iMjQiIHdp''@;'; + put 'put ''ZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYmFkZ2VkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xNC0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTUtLWJhZGdlZCIgZD0iTTIy''@;'; + put 'put ''LjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUs''@;'; + put 'put ''MzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiB4PSI4IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiB4PSIxNCIg''@;'; + put 'put ''eT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQiIHg9IjI2IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC04LS1hbGVydGVkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIiB4PSIxNCIgeT0iMjQiIHdpZHRo''@;'; + put 'put ''PSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWFsZXJ0ZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEyLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBvbHlnb24gcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgs''@;'; + put 'put ''MCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwxLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCww''@;'; + put 'put ''LDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYxNGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgy''@;'; + put 'put ''Wm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJabTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAtNUgyNlYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0x''@;'; + put 'put ''MCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEs''@;'; + put 'put ''MCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEu''@;'; + put 'put ''NzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEw''@;'; + put 'put ''SDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1i''@;'; + put 'put ''YWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIu''@;'; + put 'put ''MlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRW''@;'; + put 'put ''MjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm02LDVIMjZWMjRoMlptMC01SDI2VjE5aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRl''@;'; + put 'put ''ZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44''@;'; + put 'put ''NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlRXZlbnQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4xNywyNS44NiwxMC44MSwyMC41YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTYuMTcsMjNsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwz''@;'; + put 'put ''Mi4yNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''NSIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuODEsMjAuNWw1LjM2LDUuMzZMMjYuMjIsMTUuODFhMSwxLDAs''@;'; + put 'put ''MCwwLTEuNDEtMS40MUwxNi4xNywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYz''@;'; + put 'put ''QTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwy''@;'; + put 'put ''LDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9''@;'; + put 'put ''IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAsLjIzLS40MUgyMy44TDE2LjE3LDIzbC0zLjk0LTMuOTRh''@;'; + put 'put ''MSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjgu''@;'; + put 'put ''NUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4y''@;'; + put 'put ''OCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTAsMTBhMSwx''@;'; + put 'put ''LDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2''@;'; + put 'put ''LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0zMi4yNSw2aC00VjlhMi4yLDIuMiwwLDAsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYz''@;'; + put 'put ''MC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2Wk0yNS45NCwxNi41OGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmEx''@;'; + put 'put ''LjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwx''@;'; + put 'put ''MFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyNi4zYTEuMzQsMS4zNCwwLDAsMS0uMzYsMS4xOGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAs''@;'; + put 'put ''MSwxMi45LDE5bDMuMzgsMy4zOCw3LTdoLTFBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAs''@;'; + put 'put ''MzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCww''@;'; + put 'put ''LDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMCwxMy41QTcuNSw3LjUsMCwwLDEsMjIuNSw2SDEyLjJWOUEyLjIs''@;'; + put 'put ''Mi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzAsMTMuNVptLTQuMDYsMy4wOC05LjY3LDkuNjdMMTEsMjAuOTRB''@;'; + put 'put ''MS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIg''@;'; + put 'put ''Y3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVFeWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjYyLDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMFM1LjM0LDExLjMsMiwxNy41M0wxLjcyLDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44Miwx''@;'; + put 'put ''MHMxMi40Ni0zLjcyLDE1LjgyLTEwbC4yNi0uNDhaTTE3LjgsMjYuNDNDMTIuMTcsMjYuNDMsNywyMy4yOSw0LDE4YzMtNS4yOSw4LjE3LTguNDMsMTMuOC04LjQzUzI4LjU0LDEyLjcyLDMxLjU5LDE4QzI4LjU0LDIzLjI5LDIzLjQyLDI2LjQzLDE3LjgsMjYuNDNaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjA5LDExLjE3QTYuODYsNi44NiwwLDEsMCwyNSwxOCw2Ljg2LDYuODYsMCwwLDAsMTguMDksMTEuMTdabTAsMTEuNzJBNC44Niw0Ljg2LDAsMSwxLDIzLDE4LDQuODcsNC44NywwLDAsMSwx''@;'; + put 'put ''OC4wOSwyMi44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5''@;'; + put 'put ''LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTguNDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQsMjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4LjA5IiBjeT0iMTguMDMiIHI9IjYuODYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz4nKSxMLkNsclNoYXBlRXllSGlkZT0oMCxFLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMjUuMTksMjAuNEE2Ljc4LDYuNzgsMCwwLDAsMjUuNjIsMThhNi44Niw2Ljg2LDAsMCwwLTYuODYtNi44Niw2Ljc5LDYuNzksMCwwLDAtMi4zNy40M0wxOCwxMy4yM2E0Ljc4LDQuNzgsMCwwLDEsLjc0LS4wNkE0Ljg3LDQuODcsMCwwLDEsMjMuNjIsMThhNC43''@;'; + put 'put ''OSw0Ljc5LDAsMCwxLS4wNi43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2LjgyLDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBh''@;'; + put 'put ''MTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQzYTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlpt''@;'; + put 'put ''OS43NSw5Ljc1LDYuNjUsNi42NWE0LjgxLDQuODEsMCwwLDEtMi41LjcyQTQuODcsNC44NywwLDAsMSwxMy45LDE4LDQuODEsNC44MSwwLDAsMSwxNC42MiwxNS41M1ptLTEuNDUtMS40NWE2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44Niwx''@;'; + put 'put ''LjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMzcsMTEuMTdBNi43OSw2Ljc5LDAsMCwwLDE2LDExLjZs''@;'; + put 'put ''OC44LDguOEE2Ljc4LDYuNzgsMCwwLDAsMjUuMjMsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjM3LDExLjE3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LjI5LDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0x''@;'; + put 'put ''MGExNi44MiwxNi44MiwwLDAsMC01LjI0Ljg1TDE0Ljg0LDEwYTE0Ljc4LDE0Ljc4LDAsMCwxLDMuNjMtLjQ3YzUuNjMsMCwxMC43NSwzLjE0LDEzLjgsOC40M2ExNy43NSwxNy43NSwwLDAsMS00LjM3LDUuMWwxLjQyLDEuNDJhMTkuOTMsMTkuOTMsMCwwLDAsNS02bC4yNi0uNDhaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCww''@;'; + put 'put ''LDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOC4zLDguM2E2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxMLkNsclNoYXBlU3RlcEZvcndhcmQyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik03LjA4LDYuNTJhMS42OCwxLjY4LDAsMCwwLDAsMi40TDE2LjUxLDE4LDcuMTIsMjcuMDhhMS43LDEuNywwLDAsMCwyLjM2LDIuNDRo''@;'; + put 'put ''MEwyMS40LDE4LDkuNDgsNi40N0ExLjY5LDEuNjksMCwwLDAsNy4wOCw2LjUyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI2LjQ5LDVhMS43LDEuNywwLDAsMC0xLjcsMS43VjI5LjNhMS43LDEuNywwLDAsMCwzLjQsMFY2LjdBMS43''@;'; + put 'put ''LDEuNywwLDAsMCwyNi40OSw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUFycm93PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy42NiwxNS42MSwxOCw2LDguMzQsMTUuNjFBMSwxLDAsMSwwLDkuNzUsMTdMMTcsOS44''@;'; + put 'put ''MVYyOC45NGExLDEsMCwxLDAsMiwwVjkuODFMMjYuMjUsMTdhMSwxLDAsMCwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+JyksTC5Db3JlU2hhcGVzPXsidW5rbm93bi1zdGF0dXMiOkwuQ2xyU2hhcGVVbmtub3duU3RhdHVzLGhvbWU6''@;'; + put 'put ''TC5DbHJTaGFwZUhvbWUsY29nOkwuQ2xyU2hhcGVDb2csY2hlY2s6TC5DbHJTaGFwZUNoZWNrLHRpbWVzOkwuQ2xyU2hhcGVUaW1lcywiZXhjbGFtYXRpb24tdHJpYW5nbGUiOkwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlLCJleGNsYW1hdGlvbi1jaXJjbGUiOkwuQ2xyU2hhcGVFeGNs''@;'; + put 'put ''YW1hdGlvbkNpcmNsZSwiY2hlY2stY2lyY2xlIjpMLkNsclNoYXBlQ2hlY2tDaXJjbGUsImluZm8tY2lyY2xlIjpMLkNsclNoYXBlSW5mb0NpcmNsZSwiaW5mby1zdGFuZGFyZCI6TC5DbHJTaGFwZUluZm9TdGFuZGFyZCwic3VjY2Vzcy1zdGFuZGFyZCI6TC5DbHJTaGFwZVN1Y2Nlc3NTdGFu''@;'; + put 'put ''ZGFyZCwiZXJyb3Itc3RhbmRhcmQiOkwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkLCJ3YXJuaW5nLXN0YW5kYXJkIjpMLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkLCJoZWxwLWluZm8iOkwuQ2xyU2hhcGVIZWxwSW5mbyxiYXJzOkwuQ2xyU2hhcGVCYXJzLHVzZXI6TC5DbHJTaGFwZVVzZXIsYW5n''@;'; + put 'put ''bGU6TC5DbHJTaGFwZUFuZ2xlLGZvbGRlcjpMLkNsclNoYXBlRm9sZGVyLCJmb2xkZXItb3BlbiI6TC5DbHJTaGFwZUZvbGRlck9wZW4sYmVsbDpMLkNsclNoYXBlQmVsbCxpbWFnZTpMLkNsclNoYXBlSW1hZ2UsY2xvdWQ6TC5DbHJTaGFwZUNsb3VkLCJlbGxpcHNpcy1ob3Jpem9udGFsIjpM''@;'; + put 'put ''LkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsLCJlbGxpcHNpcy12ZXJ0aWNhbCI6TC5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWwsImZpbHRlci1ncmlkIjpMLkNsclNoYXBlRmlsdGVyR3JpZCwiZmlsdGVyLWdyaWQtY2lyY2xlIjpMLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZSwidm0tYnVn''@;'; + put 'put ''IjpMLkNsclNoYXBlVm1CdWcsc2VhcmNoOkwuQ2xyU2hhcGVTZWFyY2gsInZpZXctY29sdW1ucyI6TC5DbHJTaGFwZVZpZXdDb2x1bW5zLCJhbmdsZS1kb3VibGUiOkwuQ2xyU2hhcGVBbmdsZURvdWJsZSxjYWxlbmRhcjpMLkNsclNoYXBlQ2FsZW5kYXIsZXZlbnQ6TC5DbHJTaGFwZUV2ZW50''@;'; + put 'put ''LGV5ZTpMLkNsclNoYXBlRXllLCJleWUtaGlkZSI6TC5DbHJTaGFwZUV5ZUhpZGUsInN0ZXAtZm9yd2FyZC0yIjpMLkNsclNoYXBlU3RlcEZvcndhcmQyLGFycm93OkwuQ2xyU2hhcGVBcnJvd30sT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuQ29yZVNoYXBlcywiaG91c2UiLCgwLEIuZGVzY3Jp''@;'; + put 'put ''cHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmhvbWUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJzZXR0aW5ncyIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuY29nKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuQ29yZVNoYXBlcywic3VjY2VzcyIs''@;'; + put 'put ''KDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuY2hlY2spKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJjbG9zZSIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMudGltZXMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVz''@;'; + put 'put ''LCJ3YXJuaW5nIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tdHJpYW5nbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsImVycm9yIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24t''@;'; + put 'put ''Y2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJpbmZvIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siaW5mby1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsIm1lbnUiLCgwLEIuZGVzY3JpcHRvckNv''@;'; + put 'put ''bmZpZykoTC5Db3JlU2hhcGVzLmJhcnMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJhdmF0YXIiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLnVzZXIpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJjYXJldCIsKDAsQi5kZXNj''@;'; + put 'put ''cmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuYW5nbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJkaXJlY3RvcnkiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmZvbGRlcikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsIm5v''@;'; + put 'put ''dGlmaWNhdGlvbiIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuYmVsbCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsImNvbGxhcHNlIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siYW5nbGUtZG91YmxlIl0pKX0sIi4vcHJvamVj''@;'; + put 'put ''dHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuZGVzY3JpcHRvckNvbmZpZz12b2lkIDAsTC5kZXNjcmlwdG9yQ29uZmln''@;'; + put 'put ''PWZ1bmN0aW9uIEIoRSl7cmV0dXJue2VudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwLHZhbHVlOkV9fX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3NoYXBlLXRlbXBsYXRlLW9ic2VydmVyLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuU2hhcGVUZW1wbGF0ZU9ic2VydmVyPUwuY2hhbmdlSGFuZGxlckNhbGxiYWNrcz12b2lkIDAsTC5jaGFuZ2VIYW5kbGVyQ2FsbGJhY2tzPXt9O3ZhciBCPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gRSgpe3RoaXMu''@;'; + put 'put ''Y2FsbGJhY2tzPUwuY2hhbmdlSGFuZGxlckNhbGxiYWNrc31yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KEUsImluc3RhbmNlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEUuc2luZ2xlSW5zdGFuY2V8fChFLnNpbmdsZUluc3RhbmNlPW5ldyBFKSxFLnNpbmdsZUluc3RhbmNlfSxlbnVt''@;'; + put 'put ''ZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLEUucHJvdG90eXBlLnN1YnNjcmliZVRvPWZ1bmN0aW9uKE1lLFUpe3ZhciBRPXRoaXM7cmV0dXJuIHRoaXMuY2FsbGJhY2tzW01lXT8tMT09PXRoaXMuY2FsbGJhY2tzW01lXS5pbmRleE9mKFUpJiZ0aGlzLmNhbGxiYWNrc1tNZV0ucHVzaChV''@;'; + put 'put ''KTp0aGlzLmNhbGxiYWNrc1tNZV09W1VdLGZ1bmN0aW9uKCl7dmFyIFo9US5jYWxsYmFja3NbTWVdLmluZGV4T2YoVSk7US5jYWxsYmFja3NbTWVdLnNwbGljZShaLDEpLDA9PT1RLmNhbGxiYWNrc1tNZV0ubGVuZ3RoJiZkZWxldGUgUS5jYWxsYmFja3NbTWVdfX0sRS5wcm90b3R5cGUuZW1p''@;'; + put 'put ''dENoYW5nZXM9ZnVuY3Rpb24oTWUsVSl7dGhpcy5jYWxsYmFja3NbTWVdJiZ0aGlzLmNhbGxiYWNrc1tNZV0ubWFwKGZ1bmN0aW9uKFEpe1EoVSl9KX0sRX0oKTtMLlNoYXBlVGVtcGxhdGVPYnNlcnZlcj1CfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3Iu''@;'; + put 'put ''dHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTC5jbHJJY29uU1ZHPXZvaWQgMDtMLmNsckljb25TVkc9ZnVuY3Rpb24gVShRKXt2YXIgWj0iIjtyZXR1cm4gUS5pbmRleE9mKCItLWJhZGdl''@;'; + put 'put ''ZCIpPi0xJiYoWis9ImNhbi1iYWRnZSAiKSxRLmluZGV4T2YoIi0tYWxlcnRlZCIpPi0xJiYoWis9ImNhbi1hbGVydCAiKSxRLmluZGV4T2YoImNsci1pLXNvbGlkIik+LTEmJihaKz0iaGFzLXNvbGlkICIpLChaPyc8c3ZnIHZlcnNpb249IjEuMSIgY2xhc3M9IicrWisnIiB2aWV3Qm94PSIw''@;'; + put 'put ''IDAgMzYgMzYiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiXG4gICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgZm9jdXNhYmxlPSJmYWxzZSIgcm9sZT0iaW1nIj4nOic8c3Zn''@;'; + put 'put ''IHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDM2IDM2IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IlxuICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGZvY3VzYWJsZT0i''@;'; + put 'put ''ZmFsc2UiIHJvbGU9ImltZyI+JykrUSsiPC9zdmc+In19fSl9LDkzODc3OmZ1bmN0aW9uKFhlKXtYZS5leHBvcnRzPWZ1bmN0aW9uKEplKXt2YXIgTD17fTtmdW5jdGlvbiBtZShCKXtpZihMW0JdKXJldHVybiBMW0JdLmV4cG9ydHM7dmFyIEU9TFtCXT17aTpCLGw6ITEsZXhwb3J0czp7fX07''@;'; + put 'put ''cmV0dXJuIEplW0JdLmNhbGwoRS5leHBvcnRzLEUsRS5leHBvcnRzLG1lKSxFLmw9ITAsRS5leHBvcnRzfXJldHVybiBtZS5tPUplLG1lLmM9TCxtZS5kPWZ1bmN0aW9uKEIsRSxNZSl7bWUubyhCLEUpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoQixFLHtlbnVtZXJhYmxlOiEwLGdldDpNZX0p''@;'; + put 'put ''fSxtZS5yPWZ1bmN0aW9uKEIpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShCLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQiwiX19lc01vZHVsZSIs''@;'; + put 'put ''e3ZhbHVlOiEwfSl9LG1lLnQ9ZnVuY3Rpb24oQixFKXtpZigxJkUmJihCPW1lKEIpKSw4JkV8fDQmRSYmIm9iamVjdCI9PXR5cGVvZiBCJiZCJiZCLl9fZXNNb2R1bGUpcmV0dXJuIEI7dmFyIE1lPU9iamVjdC5jcmVhdGUobnVsbCk7aWYobWUucihNZSksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KE1lLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTpCfSksMiZFJiYic3RyaW5nIiE9dHlwZW9mIEIpZm9yKHZhciBVIGluIEIpbWUuZChNZSxVLGZ1bmN0aW9uKFEpe3JldHVybiBCW1FdfS5iaW5kKG51bGwsVSkpO3JldHVybiBNZX0sbWUubj1mdW5jdGlvbihCKXt2YXIgRT1CJiZC''@;'; + put 'put ''Ll9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gQi5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBCfTtyZXR1cm4gbWUuZChFLCJhIixFKSxFfSxtZS5vPWZ1bmN0aW9uKEIsRSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChCLEUpfSxtZS5wPSIiLG1l''@;'; + put 'put ''KG1lLnM9Ii4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9hbGwtc2hhcGVzLnRzIil9KHsiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2FsbC1zaGFwZXMudHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTCwiX19lc01vZHVsZSIs''@;'; + put 'put ''e3ZhbHVlOiEwfSksTC5BbGxTaGFwZXM9dm9pZCAwO3ZhciBCPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY2hhcnQtc2hhcGVzLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvbW1lcmNlLXNoYXBlcy50cyIpLE1lPW1lKCIuL3Byb2plY3RzL2ljb25z''@;'; + put 'put ''L3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxVPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvZXNzZW50aWFsLXNoYXBlcy50cyIpLFE9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9tZWRpYS1zaGFwZXMudHMiKSxaPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9z''@;'; + put 'put ''aGFwZXMvc29jaWFsLXNoYXBlcy50cyIpLGllPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGVjaG5vbG9neS1zaGFwZXMudHMiKSxsZT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RleHQtZWRpdC1zaGFwZXMudHMiKSxZPW1lKCIuL3Byb2plY3RzL2ljb25zL3Ny''@;'; + put 'put ''Yy9zaGFwZXMvdHJhdmVsLXNoYXBlcy50cyIpLFc9W01lLkNvcmVTaGFwZXMsRS5Db21tZXJjZVNoYXBlcyxVLkVzc2VudGlhbFNoYXBlcyxRLk1lZGlhU2hhcGVzLFouU29jaWFsU2hhcGVzLGllLlRlY2hub2xvZ3lTaGFwZXMsWS5UcmF2ZWxTaGFwZXMsQi5DaGFydFNoYXBlcyxsZS5UZXh0''@;'; + put 'put ''RWRpdFNoYXBlc10sTj17fTtMLkFsbFNoYXBlcz1OO2Zvcih2YXIgZWU9MCxxPVc7ZWU8cS5sZW5ndGg7ZWUrKyl7dmFyIEo9cVtlZV07Zm9yKHZhciBzZSBpbiBKKUouaGFzT3duUHJvcGVydHkoc2UpJiYoTltzZV09SltzZV0pfSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cu''@;'; + put 'put ''aGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChOKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jaGFydC1zaGFwZXMudHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTCwiX19l''@;'; + put 'put ''c01vZHVsZSIse3ZhbHVlOiEwfSksTC5DaGFydFNoYXBlcz1MLkNsclNoYXBlQmVsbEN1cnZlPUwuQ2xyU2hhcGVUaWNrQ2hhcnQ9TC5DbHJTaGFwZVNjYXR0ZXJQbG90PUwuQ2xyU2hhcGVQaWVDaGFydD1MLkNsclNoYXBlTGluZUNoYXJ0PUwuQ2xyU2hhcGVIZWF0TWFwPUwuQ2xyU2hhcGVH''@;'; + put 'put ''cmlkQ2hhcnQ9TC5DbHJTaGFwZUN1cnZlQ2hhcnQ9TC5DbHJTaGFwZUNsb3VkQ2hhcnQ9TC5DbHJTaGFwZUJ1YmJsZUNoYXJ0PUwuQ2xyU2hhcGVCb3hQbG90PUwuQ2xyU2hhcGVCYXJDaGFydD1MLkNsclNoYXBlQXhpc0NoYXJ0PXZvaWQgMDt2YXIgQj1tZSgiLi9wcm9qZWN0cy9pY29ucy9z''@;'; + put 'put ''cmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxFPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpO0wuQ2xyU2hhcGVBeGlzQ2hhcnQ9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQg''@;'; + put 'put ''NyBMIDMyIDcgTCAzMiAyOSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQu''@;'; + put 'put ''NzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgTCA2LjAwNyAyNi43MzEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gNi4wMDcgMjYuNzMxIEwg''@;'; + put 'put ''MjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAu''@;'; + put 'put ''NjUgNiAxMS4wMSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBD''@;'; + put 'put ''IDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEz''@;'; + put 'put ''LjAyNiAzMiAxMy4yMiBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0''@;'; + put 'put ''LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIEwgNi4wMDcgMjYuNzMxIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBD''@;'; + put 'put ''IDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40Mjkg''@;'; + put 'put ''MzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gNi4wMDcgMjYuNzMxIEwgMjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEw''@;'; + put 'put ''LjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAuNjUgNiAxMS4wMSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwg''@;'; + put 'put ''MjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNIDYuMDA3IDI2LjczMSBMIDI3Ljcz''@;'; + put 'put ''IDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYg''@;'; + put 'put ''MTEuMDEgTCA2LjAwNyAyNi43MzEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQg''@;'; + put 'put ''MTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4w''@;'; + put 'put ''MDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIg''@;'; + put 'put ''MzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAx''@;'; + put 'put ''OS4yNyAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAx''@;'; + put 'put ''MC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAx''@;'; + put 'put ''MS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDEx''@;'; + put 'put ''LjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPicpLEwuQ2xyU2hhcGVCYXJDaGFydD0oMCxFLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNCwyOVY3SDMyVjI5WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTAgTCAxMyAxMCBMIDEzIDI2IEwgMTEuNCAyNiBM''@;'; + put 'put ''IDExLjQgMTEuNiBMIDguNiAxMS42IEwgOC42IDI2IEwgNyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE5IEwgMjEgMTkgTCAyMSAyNiBMIDE5LjQgMjYgTCAxOS40IDIwLjYgTCAxNi42IDIwLjYgTCAx''@;'; + put 'put ''Ni42IDI2IEwgMTUgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMyAxNiBMIDI5IDE2IEwgMjkgMjYgTCAyNy40IDI2IEwgMjcuNCAxNy42IEwgMjQuNiAxNy42IEwgMjQuNiAyNiBMIDIzIDI2IFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEw''@;'; + put 'put ''NSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcgMTAgWiBNIDE1IDI2IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAyMyAyNiBMIDI5IDI2IEwgMjkgMTYgTCAyMyAx''@;'; + put 'put ''NiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIy''@;'; + put 'put ''LjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAy''@;'; + put 'put ''NiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMCBMIDEzIDEwIEwgMTMgMjYgTCAxMS40IDI2IEwgMTEuNCAxMS42IEwgOC42IDExLjYgTCA4LjYgMjYgTCA3IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdl''@;'; + put 'put ''ZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE5IEwgMjEgMTkgTCAyMSAyNiBMIDE5LjQgMjYgTCAxOS40IDIwLjYgTCAxNi42IDIwLjYgTCAxNi42IDI2IEwgMTUgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIj48L3Bh''@;'; + put 'put ''dGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAyNiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAyMyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiPjwvcGF0aD5cbiAg''@;'; + put 'put ''PGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEt''@;'; + put 'put ''LWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40''@;'; + put 'put ''NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI1IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcgMTAgWiBNIDE1IDI2IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAyMyAyNiBMIDI5IDI2IEwgMjkgMTYgTCAyMyAxNiBaIj48L3BhdGg+''@;'; + put 'put ''XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUu''@;'; + put 'put ''MzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEwIEwgMTMgMTAgTCAxMyAyNiBMIDExLjQgMjYgTCAxMS40IDExLjYgTCA4LjYgMTEuNiBMIDguNiAyNiBMIDcgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTIt''@;'; + put 'put ''LWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxOSBMIDIxIDE5IEwgMjEgMjYgTCAxOS40IDI2IEwgMTkuNCAyMC42IEwgMTYuNiAyMC42IEwgMTYuNiAyNiBMIDE1IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVy''@;'; + put 'put ''dGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAyNiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAyMyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCI+''@;'; + put 'put ''PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4w''@;'; + put 'put ''MDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQg''@;'; + put 'put ''QyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMg''@;'; + put 'put ''Mi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcg''@;'; + put 'put ''TCAzNCAxNS4zNTcgWiBNIDcgMjYgTCAxMyAyNiBMIDEzIDEwIEwgNyAxMCBaIE0gMTUgMjYgTCAyMSAyNiBMIDIxIDE5IEwgMTUgMTkgWiBNIDIzIDI2IEwgMjkgMjYgTCAyOSAxNiBMIDIzIDE2IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4''@;'; + put 'put ''NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxM''@;'; + put 'put ''LkNsclNoYXBlQm94UGxvdD0oMCxFLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpN''@;'; + put 'put ''NCwyOVY3SDMyVjI5WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTIgTCAxNyAxMiBMIDE3IDI2IEwgNyAyNiBMIDcgMTIgWiBNIDguNiAyNC40IEwgMTUuNCAyNC40IEwgMTUuNCAxOC44IEwgOC42IDE4LjggTCA4LjYgMjQuNCBaIE0gMTUuNCAxMy42IEwgOC42IDEzLjYgTCA4LjYgMTcu''@;'; + put 'put ''MiBMIDE1LjQgMTcuMiBMIDE1LjQgMTMuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDI0IEwgMjkgMjQgTCAyOSAxMCBMIDE5IDEwIEwgMTkgMjQgWiBNIDIwLjYgMTEuNiBMIDI3LjQgMTEuNiBMIDI3LjQg''@;'; + put 'put ''MTcuMiBMIDIwLjYgMTcuMiBMIDIwLjYgMTEuNiBaIE0gMjcuNCAyMi40IEwgMjAuNiAyMi40IEwgMjAuNiAxOC44IEwgMjcuNCAxOC44IEwgMjcuNCAyMi40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3''@;'; + put 'put ''IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAxOSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAxNCBMIDE1IDE0IFogTSAxOSAyNCBMIDI5IDI0IEwgMjkgMTAgTCAxOSAxMCBaIE0gMjEgMTIgTCAyNyAxMiBMIDI3IDE3IEwgMjEgMTcg''@;'; + put 'put ''WiBNIDI3IDIyIEwgMjEgMjIgTCAyMSAxOSBMIDI3IDE5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUy''@;'; + put 'put ''NCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQg''@;'; + put 'put ''MTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwgMTcgMTIgTCAxNyAyNiBMIDcgMjYgTCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTguOCBMIDguNiAxOC44IEwgOC42IDI0LjQgWiBN''@;'; + put 'put ''IDE1LjQgMTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAxNS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTkgMTAgTCAyMy43MjggMTAgQyAyNC4x''@;'; + put 'put ''MDUgMTAuNTk2IDI0LjU2NCAxMS4xMzUgMjUuMDkgMTEuNiBMIDIwLjYgMTEuNiBMIDIwLjYgMTcuMiBMIDI3LjQgMTcuMiBMIDI3LjQgMTIuOTg3IEMgMjcuOTA5IDEzLjE3NyAyOC40NDUgMTMuMzEzIDI5IDEzLjM4NyBMIDI5IDI0IEwgMTkgMjQgWiBNIDI3LjQgMTguOCBMIDIwLjYgMTgu''@;'; + put 'put ''OCBMIDIwLjYgMjIuNCBMIDI3LjQgMjIuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEg''@;'; + put 'put ''QyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3IDUgQyAyMi4zMTIgNi44MTcgMjIuNzMyIDguNTY2IDIzLjYzMyAxMCBMIDE5IDEwIEwgMTkgMjQgTCAyOSAyNCBMIDI5IDEzLjQyNyBDIDI5LjEwMyAxMy40NCAyOS4yMDYgMTMuNDUx''@;'; + put 'put ''IDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjUgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDcgMjYgTCAxNyAyNiBMIDE3IDEyIEwgNyAxMiBaIE0gOSAxOSBMIDE1IDE5IEwgMTUgMjQgTCA5IDI0IFogTSAxNSAxNyBMIDkgMTcgTCA5IDE0IEwgMTUgMTQgWiBN''@;'; + put 'put ''IDIxIDEyIEwgMjUuNDcyIDEyIEMgMjUuOTQgMTIuMzUyIDI2LjQ1MiAxMi42NSAyNyAxMi44ODUgTCAyNyAxNyBMIDIxIDE3IFogTSAyNyAyMiBMIDIxIDIyIEwgMjEgMTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEg''@;'; + put 'put ''MzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwg''@;'; + put 'put ''MTcgMTIgTCAxNyAyNiBMIDcgMjYgTCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTguOCBMIDguNiAxOC44IEwgOC42IDI0LjQgWiBNIDE1LjQgMTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAxNS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAyNCBMIDE5IDI0IEwgMTkgMTUuMzQ1IEMgMTkuMDIxIDE1LjM0OCAyMC42IDE1LjM2IDIwLjYgMTUuMzYgTCAyMC42IDE3LjIgTCAyNy40IDE3LjIgTCAyNy40IDE1''@;'; + put 'put ''LjM2IEwgMjkgMTUuMzU3IEwgMjkgMjQgWiBNIDI3LjQgMTguOCBMIDIwLjYgMTguOCBMIDIwLjYgMjIuNCBMIDI3LjQgMjIuNCBMIDI3LjQgMTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMu''@;'; + put 'put ''MDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAy''@;'; + put 'put ''Ny4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4x''@;'; + put 'put ''MDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDE5LjAyOCAxMCBMIDE5IDEwIEwgMTkgMTAuMDQ4IEwgMTcuNjI1IDEyLjM5NSBDIDE2LjgwNyAxMy41ODMgMTcuNTcxIDE1LjE5NyAxOSAxNS4zNDUgTCAxOSAyNCBMIDI5IDI0IEwgMjkgMTUuMzU3IEwg''@;'; + put 'put ''MzQgMTUuMzU3IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAxOSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAxNCBMIDE1IDE0IFogTSAyNyAxNyBMIDIxIDE3IEwgMjEgMTUuMzU3IEwgMjcgMTUuMzU3IFogTSAyNyAyMiBMIDIxIDIy''@;'; + put 'put ''IEwgMjEgMTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEy''@;'; + put 'put ''LjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0''@;'; + put 'put ''IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksTC5DbHJTaGFwZUJ1YmJsZUNoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0i''@;'; + put 'put ''TSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkg''@;'; + put 'put ''WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDI5IDE4IEMgMjkgMTkuNjU3IDI3LjY1NyAyMSAyNiAyMSBDIDI0LjM0MyAyMSAyMyAxOS42NTcgMjMgMTggQyAyMyAxNi4zNDMgMjQuMzQzIDE1IDI2IDE1IEMgMjcuNjU3IDE1IDI5IDE2LjM0MyAyOSAxOCBaIE0gMjYgMTYuNiBDIDI1LjIyNyAx''@;'; + put 'put ''Ni42IDI0LjYgMTcuMjI3IDI0LjYgMTggQyAyNC42IDE4Ljc3MyAyNS4yMjcgMTkuNCAyNiAxOS40IEMgMjYuNzczIDE5LjQgMjcuNCAxOC43NzMgMjcuNCAxOCBDIDI3LjQgMTcuMjI3IDI2Ljc3MyAxNi42IDI2IDE2LjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTIiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTQgQyAxNSAxNi4yMDkgMTMuMjA5IDE4IDExIDE4IEMgOC43OTEgMTggNyAxNi4yMDkgNyAxNCBDIDcgMTEuNzkxIDguNzkxIDEwIDExIDEwIEMgMTMuMjA5IDEwIDE1IDExLjc5MSAxNSAxNCBaIE0gMTEgMTEuNiBDIDku''@;'; + put 'put ''Njc1IDExLjYgOC42IDEyLjY3NSA4LjYgMTQgQyA4LjYgMTUuMzI1IDkuNjc1IDE2LjQgMTEgMTYuNCBDIDEyLjMyNSAxNi40IDEzLjQgMTUuMzI1IDEzLjQgMTQgQyAxMy40IDEyLjY3NSAxMi4zMjUgMTEuNiAxMSAxMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0zIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIxIDIzIEMgMjEgMjQuNjU3IDE5LjY1NyAyNiAxOCAyNiBDIDE2LjM0MyAyNiAxNSAyNC42NTcgMTUgMjMgQyAxNSAyMS4zNDMgMTYuMzQzIDIwIDE4IDIwIEMgMTkuNjU3IDIwIDIxIDIxLjM0MyAyMSAyMyBaIE0gMTggMjEu''@;'; + put 'put ''NiBDIDE3LjIyNyAyMS42IDE2LjYgMjIuMjI3IDE2LjYgMjMgQyAxNi42IDIzLjc3MyAxNy4yMjcgMjQuNCAxOCAyNC40IEMgMTguNzczIDI0LjQgMTkuNCAyMy43NzMgMTkuNCAyMyBDIDE5LjQgMjIuMjI3IDE4Ljc3MyAyMS42IDE4IDIxLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3''@;'; + put 'put ''IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEuNzkxIDcgMTQgQyA3IDE2LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIwOSAxOCAxNSAxNi4yMDkgMTUgMTQgQyAxNSAxMS43OTEgMTMuMjA5IDEw''@;'; + put 'put ''IDExIDEwIFogTSAyNiAxNSBDIDI0LjM0MyAxNSAyMyAxNi4zNDMgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2LjM0MyAyNy42NTcgMTUgMjYgMTUgWiBNIDE4IDIwIEMgMTYuMzQzIDIwIDE1IDIxLjM0MyAxNSAy''@;'; + put 'put ''MyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIg''@;'; + put 'put ''ZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44''@;'; + put 'put ''OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjkgMTggQyAyOSAxOS42NTcgMjcuNjU3IDIxIDI2IDIxIEMgMjQuMzQzIDIx''@;'; + put 'put ''IDIzIDE5LjY1NyAyMyAxOCBDIDIzIDE2LjM0MyAyNC4zNDMgMTUgMjYgMTUgQyAyNy42NTcgMTUgMjkgMTYuMzQzIDI5IDE4IFogTSAyNiAxNi42IEMgMjUuMjI3IDE2LjYgMjQuNiAxNy4yMjcgMjQuNiAxOCBDIDI0LjYgMTguNzczIDI1LjIyNyAxOS40IDI2IDE5LjQgQyAyNi43NzMgMTku''@;'; + put 'put ''NCAyNy40IDE4Ljc3MyAyNy40IDE4IEMgMjcuNCAxNy4yMjcgMjYuNzczIDE2LjYgMjYgMTYuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTQgQyAxNSAxNi4yMDkg''@;'; + put 'put ''MTMuMjA5IDE4IDExIDE4IEMgOC43OTEgMTggNyAxNi4yMDkgNyAxNCBDIDcgMTEuNzkxIDguNzkxIDEwIDExIDEwIEMgMTMuMjA5IDEwIDE1IDExLjc5MSAxNSAxNCBaIE0gMTEgMTEuNiBDIDkuNjc1IDExLjYgOC42IDEyLjY3NSA4LjYgMTQgQyA4LjYgMTUuMzI1IDkuNjc1IDE2LjQgMTEg''@;'; + put 'put ''MTYuNCBDIDEyLjMyNSAxNi40IDEzLjQgMTUuMzI1IDEzLjQgMTQgQyAxMy40IDEyLjY3NSAxMi4zMjUgMTEuNiAxMSAxMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAy''@;'; + put 'put ''MSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIzIEMgMTUgMjEuMzQzIDE2LjM0MyAyMCAxOCAyMCBDIDE5LjY1NyAyMCAyMSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYgQyAxNy4yMjcgMjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMg''@;'; + put 'put ''MTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5LjQgMjMgQyAxOS40IDIyLjIyNyAxOC43NzMgMjEuNiAxOCAyMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgcng9''@;'; + put 'put ''IjMiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUg''@;'; + put 'put ''MTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEuNzkxIDcgMTQgQyA3IDE2LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIwOSAxOCAxNSAxNi4yMDkgMTUgMTQgQyAxNSAx''@;'; + put 'put ''MS43OTEgMTMuMjA5IDEwIDExIDEwIFogTSAyNiAxNSBDIDI0LjM0MyAxNSAyMyAxNi4zNDMgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2LjM0MyAyNy42NTcgMTUgMjYgMTUgWiBNIDE4IDIwIEMgMTYuMzQzIDIw''@;'; + put 'put ''IDE1IDIxLjM0MyAxNSAyMyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEg''@;'; + put 'put ''TCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAxOCBDIDI5IDE5''@;'; + put 'put ''LjY1NyAyNy42NTcgMjEgMjYgMjEgQyAyNC4zNDMgMjEgMjMgMTkuNjU3IDIzIDE4IEMgMjMgMTYuMzQzIDI0LjM0MyAxNSAyNiAxNSBDIDI3LjY1NyAxNSAyOSAxNi4zNDMgMjkgMTggWiBNIDI2IDE2LjYgQyAyNS4yMjcgMTYuNiAyNC42IDE3LjIyNyAyNC42IDE4IEMgMjQuNiAxOC43NzMg''@;'; + put 'put ''MjUuMjI3IDE5LjQgMjYgMTkuNCBDIDI2Ljc3MyAxOS40IDI3LjQgMTguNzczIDI3LjQgMTggQyAyNy40IDE3LjIyNyAyNi43NzMgMTYuNiAyNiAxNi42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiByeD0iMyI+PC9wYXRo''@;'; + put 'put ''PlxuICA8cGF0aCBkPSJNIDE1IDE0IEMgMTUgMTYuMjA5IDEzLjIwOSAxOCAxMSAxOCBDIDguNzkxIDE4IDcgMTYuMjA5IDcgMTQgQyA3IDExLjc5MSA4Ljc5MSAxMCAxMSAxMCBDIDEzLjIwOSAxMCAxNSAxMS43OTEgMTUgMTQgWiBNIDExIDExLjYgQyA5LjY3NSAxMS42IDguNiAxMi42NzUg''@;'; + put 'put ''OC42IDE0IEMgOC42IDE1LjMyNSA5LjY3NSAxNi40IDExIDE2LjQgQyAxMi4zMjUgMTYuNCAxMy40IDE1LjMyNSAxMy40IDE0IEMgMTMuNCAxMi42NzUgMTIuMzI1IDExLjYgMTEgMTEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxl''@;'; + put 'put ''cnRlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIzIEMgMTUgMjEuMzQzIDE2LjM0MyAyMCAxOCAyMCBDIDE5LjY1NyAyMCAyMSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYg''@;'; + put 'put ''QyAxNy4yMjcgMjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMgMTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5LjQgMjMgQyAxOS40IDIyLjIyNyAxOC43NzMgMjEuNiAxOCAyMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0''@;'; + put 'put ''IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEg''@;'; + put 'put ''MzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAz''@;'; + put 'put ''NCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBD''@;'; + put 'put ''IDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAyNC41NzkgMTUuMzU3IEMgMjMuNjM5IDE1Ljg2MyAyMyAxNi44NTcgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2Ljg1NyAyOC4zNjEg''@;'; + put 'put ''MTUuODYzIDI3LjQyMSAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDExIDEwIEMgOC43OTEgMTAgNyAxMS43OTEgNyAxNCBDIDcgMTYuMjA5IDguNzkxIDE4IDExIDE4IEMgMTMuMjA5IDE4IDE1IDE2LjIwOSAxNSAxNCBDIDE1IDExLjc5MSAxMy4yMDkgMTAgMTEgMTAgWiBNIDE4IDIwIEMgMTYu''@;'; + put 'put ''MzQzIDIwIDE1IDIxLjM0MyAxNSAyMyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMu''@;'; + put 'put ''MDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksTC5DbHJT''@;'; + put 'put ''aGFwZUNsb3VkQ2hhcnQ9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQs''@;'; + put 'put ''MjlWN0gzMlYyOVoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMC45NzEgMTEuMjQzIEMgMjMuMzE0IDEzLjU4NiAyMi4zNjQgMTguMzM1IDE4Ljg0OSAyMS44NDkgQyAxNS4zMzQgMjUuMzY0IDEwLjU4NiAyNi4zMTQgOC4yNDMgMjMuOTcgQyA1Ljg5OSAyMS42MjcgNi44NDkgMTYuODc4IDEw''@;'; + put 'put ''LjM2NCAxMy4zNjQgQyAxMy44NzkgOS44NDkgMTguNjI4IDguOSAyMC45NzEgMTEuMjQzIFogTSAxMS42MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1OCA5LjUxNSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0Ljc2NCAyMy4zODkgMTcuNTc2IDIwLjU3NyBDIDIwLjM4OCAx''@;'; + put 'put ''Ny43NjUgMjEuMzM4IDE0LjE1NiAxOS42OTcgMTIuNTE2IEMgMTguMDU3IDEwLjg3NiAxNC40NDggMTEuODI1IDExLjYzNiAxNC42MzcgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAy''@;'; + put 'put ''Ni42NTcgMjUgMjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjggMjIgWiBNIDI1IDIwLjYgQyAyNC4yMjcgMjAuNiAyMy42IDIxLjIyNyAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI3''@;'; + put 'put ''IDIzLjQgMjUgMjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNyAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSI3Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3IFog''@;'; + put 'put ''TSAxMC4zNjQgMTMuMzY0IEMgNi44NDkgMTYuODc4IDUuODk5IDIxLjYyNyA4LjI0MyAyMy45NyBDIDEwLjU4NiAyNi4zMTQgMTUuMzM0IDI1LjM2NCAxOC44NDkgMjEuODQ5IEMgMjIuMzY0IDE4LjMzNSAyMy4zMTQgMTMuNTg2IDIwLjk3MSAxMS4yNDMgQyAxOC42MjggOC45IDEzLjg3OSA5''@;'; + put 'put ''Ljg0OSAxMC4zNjQgMTMuMzY0IFogTSAyNSAxOSBDIDIzLjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcgMjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42NTcgMTkgMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIy''@;'; + put 'put ''LjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8''@;'; + put 'put ''cGF0aCBkPSJNIDIwLjk3MSAxMS4yNDMgQyAyMy4zMTQgMTMuNTg2IDIyLjM2NCAxOC4zMzUgMTguODQ5IDIxLjg0OSBDIDE1LjMzNCAyNS4zNjQgMTAuNTg2IDI2LjMxNCA4LjI0MyAyMy45NyBDIDUuODk5IDIxLjYyNyA2Ljg0OSAxNi44NzggMTAuMzY0IDEzLjM2NCBDIDEzLjg3OSA5Ljg0''@;'; + put 'put ''OSAxOC42MjggOC45IDIwLjk3MSAxMS4yNDMgWiBNIDExLjYzNiAxNC42MzcgQyA4LjgyNCAxNy40NDkgNy44NzUgMjEuMDU4IDkuNTE1IDIyLjY5OCBDIDExLjE1NSAyNC4zMzggMTQuNzY0IDIzLjM4OSAxNy41NzYgMjAuNTc3IEMgMjAuMzg4IDE3Ljc2NSAyMS4zMzggMTQuMTU2IDE5LjY5''@;'; + put 'put ''NyAxMi41MTYgQyAxOC4wNTcgMTAuODc2IDE0LjQ0OCAxMS44MjUgMTEuNjM2IDE0LjYzNyBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAyNi42NTcgMjUg''@;'; + put 'put ''MjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjggMjIgWiBNIDI1IDIwLjYgQyAyNC4yMjYgMjAuNiAyMy42IDIxLjIyNiAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI2IDIzLjQgMjUg''@;'; + put 'put ''MjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNiAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0iNyI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJN''@;'; + put 'put ''IDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMu''@;'; + put 'put ''NDggQyAzMS42MjUgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDEwLjM2NCAxMy4zNjQgQyA2Ljg0OSAxNi44NzggNS44OTkgMjEuNjI3IDguMjQzIDIzLjk3IEMgMTAuNTg2IDI2LjMxNCAxNS4zMzQgMjUuMzY0IDE4Ljg0OSAyMS44NDkgQyAyMi4zNjQgMTguMzM1IDIzLjMx''@;'; + put 'put ''NCAxMy41ODYgMjAuOTcxIDExLjI0MyBDIDE4LjYyOCA4LjkgMTMuODc5IDkuODQ5IDEwLjM2NCAxMy4zNjQgWiBNIDI1IDE5IEMgMjMuMzQzIDE5IDIyIDIwLjM0MyAyMiAyMiBDIDIyIDIzLjY1NyAyMy4zNDMgMjUgMjUgMjUgQyAyNi42NTcgMjUgMjggMjMuNjU3IDI4IDIyIEMgMjggMjAu''@;'; + put 'put ''MzQzIDI2LjY1NyAxOSAyNSAxOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3''@;'; + put 'put ''IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxOC44NDkgMjEuODQ5IEMgMTUuMzM0IDI1LjM2NCAxMC41ODYgMjYuMzE0IDguMjQzIDIzLjk3IEMgNS44OTkgMjEuNjI3IDYuODQ5IDE2Ljg3OCAxMC4zNjQgMTMu''@;'; + put 'put ''MzY0IEMgMTMuMDQ5IDEwLjY3OSAxNi40NTMgOS40OTIgMTguOTU2IDEwLjEyNCBMIDE4LjAwOCAxMS43NDEgQyAxNi4xOCAxMS41MTggMTMuNjk1IDEyLjU3OCAxMS42MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1OCA5LjUxNSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0''@;'; + put 'put ''Ljc2NCAyMy4zODkgMTcuNTc2IDIwLjU3NyBDIDE5LjIyOCAxOC45MjUgMjAuMjM3IDE2Ljk5OCAyMC40NTYgMTUuMzU3IEwgMjIuMjIgMTUuMzU3IEMgMjIuMDA2IDE3LjQ3NyAyMC44MzggMTkuODYxIDE4Ljg0OSAyMS44NDkgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAyNi42NTcgMjUgMjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjgg''@;'; + put 'put ''MjIgWiBNIDI1IDIwLjYgQyAyNC4yMjYgMjAuNiAyMy42IDIxLjIyNiAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI2IDIzLjQgMjUgMjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNiAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiB4PSI3Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBM''@;'; + put 'put ''IDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMg''@;'; + put 'put ''MzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1h''@;'; + put 'put ''bGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMTguOTU2IDEwLjEyNCBDIDE2LjQ1MyA5LjQ5MiAxMy4wNDkgMTAuNjc5IDEw''@;'; + put 'put ''LjM2NCAxMy4zNjQgQyA2Ljg0OSAxNi44NzggNS44OTkgMjEuNjI3IDguMjQzIDIzLjk3IEMgMTAuNTg2IDI2LjMxNCAxNS4zMzQgMjUuMzY0IDE4Ljg0OSAyMS44NDkgQyAyMC44MzggMTkuODYxIDIyLjAwNiAxNy40NzcgMjIuMjIgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAyNSAxOSBDIDIz''@;'; + put 'put ''LjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcgMjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42NTcgMTkgMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEz''@;'; + put 'put ''LjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLEwuQ2xy''@;'; + put 'put ''U2hhcGVDdXJ2ZUNoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEg''@;'; + put 'put ''QyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTEuOCBDIDYuNTU4IDExLjggNi4yIDExLjQ0MiA2LjIgMTEgQyA2LjIgMTAuNTU4''@;'; + put 'put ''IDYuNTU4IDEwLjIgNyAxMC4yIEwgMTMgMTAuMiBDIDE1LjQwNCAxMC4yIDE2LjM2OCAxMS45MDcgMTcuNjUzIDE2LjQ3OCBDIDE3LjY5NSAxNi42MjggMTcuNzQ0IDE2LjgwMyAxNy44MzUgMTcuMTI5IEMgMTcuOTA5IDE3LjM5MiAxNy45NjQgMTcuNTg4IDE4LjAxOSAxNy43OCBDIDE5LjMz''@;'; + put 'put ''MiAyMi4zNzUgMjAuNTQ5IDI0LjIgMjMgMjQuMiBMIDI5IDI0LjIgQyAyOS40NDIgMjQuMiAyOS44IDI0LjU1OCAyOS44IDI1IEMgMjkuOCAyNS40NDIgMjkuNDQyIDI1LjggMjkgMjUuOCBMIDIzIDI1LjggQyAxOS41MzUgMjUuOCAxNy45ODEgMjMuNDY5IDE2LjQ4MSAxOC4yMiBDIDE2LjQy''@;'; + put 'put ''NSAxOC4wMjUgMTYuMzY5IDE3LjgyNiAxNi4yOTUgMTcuNTYgQyAxNi4yMDMgMTcuMjM0IDE2LjE1NCAxNy4wNiAxNi4xMTMgMTYuOTExIEMgMTUuMDQzIDEzLjEwNSAxNC4zMDUgMTEuOCAxMyAxMS44IEwgNyAxMS44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQg''@;'; + put 'put ''NSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSAxMyAxMiBDIDE0LjgxNyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMgMjAuOTg0IDE4LjIwMSAyMi4xMTggMTguODgyIDIzLjMwOSBDIDE5Ljg3IDI1LjAzOCAyMS4yMDUgMjYgMjMgMjYgTCAyOSAy''@;'; + put 'put ''NiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAxOC45NjIgMTcuNzI1IEMgMTguMTg4IDE1LjAxNiAxNy43OTkgMTMuODgyIDE3LjExOCAxMi42OTEgQyAxNi4xMyAxMC45NjIg''@;'; + put 'put ''MTQuNzk1IDEwIDEzIDEwIEwgNyAxMCBDIDYuNDQ4IDEwIDYgMTAuNDQ4IDYgMTEgQyA2IDExLjU1MiA2LjQ0OCAxMiA3IDEyIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIy''@;'; + put 'put ''IEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwg''@;'; + put 'put ''MzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDExLjggQyA2LjU1OCAxMS44IDYuMiAxMS40NDIgNi4yIDExIEMgNi4yIDEwLjU1OCA2LjU1OCAx''@;'; + put 'put ''MC4yIDcgMTAuMiBMIDEzIDEwLjIgQyAxNS40MDQgMTAuMiAxNi4zNjggMTEuOTA3IDE3LjY1MyAxNi40NzggQyAxNy42OTUgMTYuNjI4IDE3Ljc0NCAxNi44MDMgMTcuODM1IDE3LjEyOSBDIDE3LjkwOSAxNy4zOTIgMTcuOTY0IDE3LjU4OCAxOC4wMTkgMTcuNzggQyAxOS4zMzIgMjIuMzc1''@;'; + put 'put ''IDIwLjU0OSAyNC4yIDIzIDI0LjIgTCAyOSAyNC4yIEMgMjkuNDQyIDI0LjIgMjkuOCAyNC41NTggMjkuOCAyNSBDIDI5LjggMjUuNDQyIDI5LjQ0MiAyNS44IDI5IDI1LjggTCAyMyAyNS44IEMgMTkuNTM1IDI1LjggMTcuOTgxIDIzLjQ2OSAxNi40ODEgMTguMjIgQyAxNi40MjUgMTguMDI1''@;'; + put 'put ''IDE2LjM2OSAxNy44MjYgMTYuMjk1IDE3LjU2IEMgMTYuMjAzIDE3LjIzNCAxNi4xNTQgMTcuMDYgMTYuMTEzIDE2LjkxMSBDIDE1LjA0MyAxMy4xMDUgMTQuMzA1IDExLjggMTMgMTEuOCBMIDcgMTEuOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4y''@;'; + put 'put ''MzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMyAxMiBDIDE0LjgxNyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMgMjAuOTg0IDE4LjIwMSAyMi4xMTggMTguODgy''@;'; + put 'put ''IDIzLjMwOSBDIDE5Ljg3IDI1LjAzOCAyMS4yMDUgMjYgMjMgMjYgTCAyOSAyNiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAxOC45NjIgMTcuNzI1IEMgMTguMTg4IDE1LjAx''@;'; + put 'put ''NiAxNy43OTkgMTMuODgyIDE3LjExOCAxMi42OTEgQyAxNi4xMyAxMC45NjIgMTQuNzk1IDEwIDEzIDEwIEwgNyAxMCBDIDYuNDQ4IDEwIDYgMTAuNDQ4IDYgMTEgQyA2IDExLjU1MiA2LjQ0OCAxMiA3IDEyIFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1''@;'; + put 'put ''IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0aCBk''@;'; + put 'put ''PSJNIDcgMTEuOCBDIDYuNTU4IDExLjggNi4yIDExLjQ0MiA2LjIgMTEgQyA2LjIgMTAuNTU4IDYuNTU4IDEwLjIgNyAxMC4yIEwgMTMgMTAuMiBDIDE1LjQwNCAxMC4yIDE2LjM2OCAxMS45MDcgMTcuNjUzIDE2LjQ3OCBDIDE3LjY5NSAxNi42MjggMTcuNzQ0IDE2LjgwMyAxNy44MzUgMTcu''@;'; + put 'put ''MTI5IEMgMTcuOTA5IDE3LjM5MiAxNy45NjQgMTcuNTg4IDE4LjAxOSAxNy43OCBDIDE5LjMzMiAyMi4zNzUgMjAuNTQ5IDI0LjIgMjMgMjQuMiBMIDI5IDI0LjIgQyAyOS40NDIgMjQuMiAyOS44IDI0LjU1OCAyOS44IDI1IEMgMjkuOCAyNS40NDIgMjkuNDQyIDI1LjggMjkgMjUuOCBMIDIz''@;'; + put 'put ''IDI1LjggQyAxOS41MzUgMjUuOCAxNy45ODEgMjMuNDY5IDE2LjQ4MSAxOC4yMiBDIDE2LjQyNSAxOC4wMjUgMTYuMzY5IDE3LjgyNiAxNi4yOTUgMTcuNTYgQyAxNi4yMDMgMTcuMjM0IDE2LjE1NCAxNy4wNiAxNi4xMTMgMTYuOTExIEMgMTUuMDQzIDEzLjEwNSAxNC4zMDUgMTEuOCAxMyAx''@;'; + put 'put ''MS44IEwgNyAxMS44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0''@;'; + put 'put ''IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDEx''@;'; + put 'put ''Ljk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE3LjQ3NiAx''@;'; + put 'put ''Mi42MTIgMTcuMzc5IDEyLjg0MyAxNy4zMyAxMy4wNzcgQyAxNy4yNjIgMTIuOTQ4IDE3LjE5MiAxMi44MiAxNy4xMTggMTIuNjkxIEMgMTYuMTMgMTAuOTYyIDE0Ljc5NSAxMCAxMyAxMCBMIDcgMTAgQyA2LjQ0OCAxMCA2IDEwLjQ0OCA2IDExIEMgNiAxMS41NTIgNi40NDggMTIgNyAxMiBM''@;'; + put 'put ''IDEzIDEyIEMgMTQuODE3IDEyIDE1LjY3NCAxMy40OTkgMTcuMDM5IDE4LjI3NSBDIDE3LjgxMyAyMC45ODQgMTguMjAxIDIyLjExOCAxOC44ODIgMjMuMzA5IEMgMTkuODcgMjUuMDM4IDIxLjIwNSAyNiAyMyAyNiBMIDI5IDI2IEMgMjkuNTUyIDI2IDMwIDI1LjU1MiAzMCAyNSBDIDMwIDI0''@;'; + put 'put ''LjQ0OCAyOS41NTIgMjQgMjkgMjQgTCAyMyAyNCBDIDIxLjE4MyAyNCAyMC4zMjYgMjIuNTAxIDE4Ljk2MiAxNy43MjUgQyAxOC42NCAxNi41OTggMTguMzg1IDE1Ljc0NCAxOC4xNDcgMTUuMDQ0IEMgMTguNDA3IDE1LjIxNSAxOC43MTcgMTUuMzI2IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQg''@;'; + put 'put ''MTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEu''@;'; + put 'put ''MDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4w''@;'; + put 'put ''ODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxMLkNsclNoYXBlR3JpZENoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDE3SDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwxN1pNNCw4djdIMTVWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTIiIGQ9Ik0zMiwxN0gyMWEyLDIsMCwwLDEtMi0yVjhhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDE3Wk0yMSw4djdIMzJWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNSwzMEg0YTIs''@;'; + put 'put ''MiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzIsMzBIMjFhMiwyLDAsMCwxLTItMlYyMWEy''@;'; + put 'put ''LDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMTUgMTcgTCA0IDE3IEMgMi44OTUgMTcgMiAxNi4xMDUgMiAxNSBMIDIgOCBD''@;'; + put 'put ''IDIgNi44OTUgMi44OTUgNiA0IDYgTCAxNSA2IEMgMTYuMTA1IDYgMTcgNi44OTUgMTcgOCBMIDE3IDE1IEMgMTcgMTYuMTA1IDE2LjEwNSAxNyAxNSAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5''@;'; + put 'put ''Ljg5NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDMyIDYgQyAzMy4xMDUgNiAzNCA2Ljg5NSAzNCA4IEwgMzQgMTUgQyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMyIgZD0iTSAxNSAzMCBMIDQgMzAgQyAyLjg5NSAzMCAyIDI5LjEwNSAyIDI4IEwgMiAyMSBDIDIgMTkuODk1IDIuODk1IDE5IDQgMTkgTCAxNSAxOSBDIDE2LjEwNSAxOSAxNyAxOS44OTUgMTcgMjEgTCAxNyAyOCBDIDE3IDI5LjEwNSAxNi4xMDUgMzAgMTUgMzAgWiIvPlxu''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNIDMyIDMwIEwgMjEgMzAgQyAxOS44OTUgMzAgMTkgMjkuMTA1IDE5IDI4IEwgMTkgMjEgQyAxOSAxOS44OTUgMTkuODk1IDE5IDIxIDE5IEwgMzIgMTkgQyAzMy4xMDUgMTkgMzQgMTkuODk1IDM0IDIx''@;'; + put 'put ''IEwgMzQgMjggQyAzNCAyOS4xMDUgMzMuMTA1IDMwIDMyIDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS1hbGVydGVkIiBkPSJNMTUsMTdINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEs''@;'; + put 'put ''MiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLWFsZXJ0ZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDIwLjAxNCAxNyAxOS4xOTUgMTYuMjg3IDE5LjAzIDE1LjM0OCBD''@;'; + put 'put ''IDE5LjA0MSAxNS4zNDkgMTkuMDUzIDE1LjM1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzMuOTY4IDE1LjM1NyBDIDMzLjggMTYuMjkyIDMyLjk4MyAxNyAzMiAxNyBaIE0gMTkgOCBDIDE5IDYuODk1IDE5Ljg5NSA2IDIxIDYg''@;'; + put 'put ''TCAyMS4zNzIgNiBMIDE5IDEwLjA0OCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtYWxlcnRlZCIgZD0iTTE1LDMwSDRhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCww''@;'; + put 'put ''LDEsMTUsMzBaTTQsMjF2N0gxNVYyMVoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC1hbGVydGVkIiBkPSJNMzIsMzBIMjFhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCww''@;'; + put 'put ''LDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjEx''@;'; + put 'put ''NCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDEx''@;'; + put 'put ''LjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDE1IDE3IEwgNCAxNyBDIDIuODk1IDE3IDIgMTYu''@;'; + put 'put ''MTA1IDIgMTUgTCAyIDggQyAyIDYuODk1IDIuODk1IDYgNCA2IEwgMTUgNiBDIDE2LjEwNSA2IDE3IDYuODk1IDE3IDggTCAxNyAxNSBDIDE3IDE2LjEwNSAxNi4xMDUgMTcgMTUgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0y''@;'; + put 'put ''LS1hbGVydGVkIiBkPSJNIDMyIDE3IEwgMjEgMTcgQyAyMC4wMTQgMTcgMTkuMTk1IDE2LjI4NyAxOS4wMyAxNS4zNDggQyAxOS4wNDEgMTUuMzQ5IDE5LjA1MyAxNS4zNSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDMzLjk2OCAx''@;'; + put 'put ''NS4zNTcgQyAzMy44IDE2LjI5MiAzMi45ODMgMTcgMzIgMTcgWiBNIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjEuMzcyIDYgTCAxOSAxMC4wNDggWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBk''@;'; + put 'put ''PSJNIDE1IDMwIEwgNCAzMCBDIDIuODk1IDMwIDIgMjkuMTA1IDIgMjggTCAyIDIxIEMgMiAxOS44OTUgMi44OTUgMTkgNCAxOSBMIDE1IDE5IEMgMTYuMTA1IDE5IDE3IDE5Ljg5NSAxNyAyMSBMIDE3IDI4IEMgMTcgMjkuMTA1IDE2LjEwNSAzMCAxNSAzMCBaIi8+XG4gIDxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0gMzIgMzAgTCAyMSAzMCBDIDE5Ljg5NSAzMCAxOSAyOS4xMDUgMTkgMjggTCAxOSAyMSBDIDE5IDE5Ljg5NSAxOS44OTUgMTkgMjEgMTkgTCAzMiAxOSBDIDMzLjEwNSAxOSAzNCAxOS44OTUg''@;'; + put 'put ''MzQgMjEgTCAzNCAyOCBDIDM0IDI5LjEwNSAzMy4xMDUgMzAgMzIgMzAgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41''@;'; + put 'put ''NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAx''@;'; + put 'put ''MS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNSwxN0g0YTIsMiww''@;'; + put 'put ''LDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMTdaTTQsOHY3SDE1VjhaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTSAzMiAxNyBMIDIxIDE3IEMg''@;'; + put 'put ''MTkuODk1IDE3IDE5IDE2LjEwNSAxOSAxNSBMIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjIuNTkgNiBDIDIyLjU5IDYuMDE5IDIyLjU5IDYuMDM3IDIyLjU5IDYuMDU2IEMgMjIuNTkgNi43MjkgMjIuNjggNy4zODEgMjIuODQ4IDggTCAyMSA4IEwgMjEgMTUgTCAzMiAxNSBM''@;'; + put 'put ''IDMyIDEzLjE3NSBDIDMyLjcxNyAxMi45NzIgMzMuMzg5IDEyLjY2NCAzNCAxMi4yNjkgTCAzNCAxNSBDIDM0IDE2LjEwNSAzMy4xMDUgMTcgMzIgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0x''@;'; + put 'put ''NSwzMEg0YTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTMy''@;'; + put 'put ''LDMwSDIxYTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAxNSAxNyBMIDQgMTcgQyAyLjg5NSAxNyAyIDE2LjEwNSAyIDE1IEwgMiA4IEMgMiA2Ljg5NSAyLjg5NSA2IDQg''@;'; + put 'put ''NiBMIDE1IDYgQyAxNi4xMDUgNiAxNyA2Ljg5NSAxNyA4IEwgMTcgMTUgQyAxNyAxNi4xMDUgMTYuMTA1IDE3IDE1IDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5Ljg5''@;'; + put 'put ''NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDIyLjU5IDYgQyAyMi41OSA2LjAxOSAyMi41OSA2LjAzNyAyMi41OSA2LjA1NiBDIDIyLjU5IDEwLjE0MSAyNS45MDEgMTMuNDUyIDI5Ljk4NiAxMy40NTIgQyAzMS40NjYgMTMuNDUyIDMyLjg0''@;'; + put 'put ''NCAxMy4wMTggMzQgMTIuMjY5IEwgMzQgMTUgQyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0gMTUgMzAgTCA0IDMwIEMgMi44OTUgMzAgMiAyOS4xMDUgMiAy''@;'; + put 'put ''OCBMIDIgMjEgQyAyIDE5Ljg5NSAyLjg5NSAxOSA0IDE5IEwgMTUgMTkgQyAxNi4xMDUgMTkgMTcgMTkuODk1IDE3IDIxIEwgMTcgMjggQyAxNyAyOS4xMDUgMTYuMTA1IDMwIDE1IDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00''@;'; + put 'put ''LS1iYWRnZWQiIGQ9Ik0gMzIgMzAgTCAyMSAzMCBDIDE5Ljg5NSAzMCAxOSAyOS4xMDUgMTkgMjggTCAxOSAyMSBDIDE5IDE5Ljg5NSAxOS44OTUgMTkgMjEgMTkgTCAzMiAxOSBDIDMzLjEwNSAxOSAzNCAxOS44OTUgMzQgMjEgTCAzNCAyOCBDIDM0IDI5LjEwNSAzMy4xMDUgMzAgMzIgMzAg''@;'; + put 'put ''WiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFwZUhlYXRNYXA9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUg''@;'; + put 'put ''MzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDI4IDEwIEwgMjggMjYgTCA4IDI2IFogTSA5LjYgMjQgTCAxNC4xIDI0IEwgMTQuMSAxOC44IEwgOS42IDE4LjggWiBNIDE0LjEgMTEuNiBMIDkuNiAxMS42IEwgOS42IDE3''@;'; + put 'put ''LjIgTCAxNC4xIDE3LjIgWiBNIDI2IDI0IEwgMjYgMTguOCBMIDIxLjkgMTguOCBMIDIxLjkgMjQgWiBNIDI2IDExLjYgTCAyMS45IDExLjYgTCAyMS45IDE3LjIgTCAyNiAxNy4yIFogTSAxNS43IDExLjYgTCAxNS43IDE3LjIgTCAyMC4zIDE3LjIgTCAyMC4zIDExLjYgWiBNIDE1LjcgMjQg''@;'; + put 'put ''TCAyMC4zIDI0IEwgMjAuMyAxOC44IEwgMTUuNyAxOC44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAx''@;'; + put 'put ''My4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAz''@;'; + put 'put ''MSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDIzLjcyOCAxMCBDIDI0LjEwNSAxMC41OTYgMjQuNTY0IDExLjEzNSAyNS4wOSAx''@;'; + put 'put ''MS42IEwgMjEuOSAxMS42IEwgMjEuOSAxNy4yIEwgMjYgMTcuMiBMIDI2IDEyLjI4NyBDIDI2LjYxMSAxMi42NzkgMjcuMjg0IDEyLjk4MyAyOCAxMy4xODIgTCAyOCAyNiBMIDggMjYgWiBNIDkuNiAyNCBMIDE0LjEgMjQgTCAxNC4xIDE4LjggTCA5LjYgMTguOCBaIE0gMTQuMSAxMS42IEwg''@;'; + put 'put ''OS42IDExLjYgTCA5LjYgMTcuMiBMIDE0LjEgMTcuMiBaIE0gMjYgMjQgTCAyNiAxOC44IEwgMjEuOSAxOC44IEwgMjEuOSAyNCBaIE0gMTUuNyAxMS42IEwgMTUuNyAxNy4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxMS42IFogTSAxNS43IDI0IEwgMjAuMyAyNCBMIDIwLjMgMTguOCBMIDE1Ljcg''@;'; + put 'put ''MTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAi''@;'; + put 'put ''IGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkg''@;'; + put 'put ''TCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDE5LjAyOCAxMCBMIDE4LjA5MSAxMS42IEwgMTUuNyAxMS42IEwg''@;'; + put 'put ''MTUuNyAxNy4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxNS4zNTcgTCAyMS45IDE1LjM1NyBMIDIxLjkgMTcuMiBMIDI2IDE3LjIgTCAyNiAxNS4zNTcgTCAyOCAxNS4zNTcgTCAyOCAyNiBMIDggMjYgWiBNIDkuNiAyNCBMIDE0LjEgMjQgTCAxNC4xIDE4LjggTCA5LjYgMTguOCBaIE0gMTQuMSAx''@;'; + put 'put ''MS42IEwgOS42IDExLjYgTCA5LjYgMTcuMiBMIDE0LjEgMTcuMiBaIE0gMjYgMjQgTCAyNiAxOC44IEwgMjEuOSAxOC44IEwgMjEuOSAyNCBaIE0gMTUuNyAyNCBMIDIwLjMgMjQgTCAyMC4zIDE4LjggTCAxNS43IDE4LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTIyLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4''@;'; + put 'put ''IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQu''@;'; + put 'put ''Nzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEg''@;'; + put 'put ''MzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gOCAyNiBMIDI4IDI2IEwgMjggMTAgTCA4IDEwIFogTSAxMCAxOSBMIDE0IDE5IEwgMTQgMjQgTCAxMCAyNCBa''@;'; + put 'put ''IE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3IEwgMjIgMTIgTCAyNiAxMiBaIE0gMjAgMTIgTCAyMCAxNyBMIDE2IDE3IEwgMTYgMTIgWiBNIDE0IDEyIEwgMTQgMTcgTCAxMCAxNyBMIDEw''@;'; + put 'put ''IDEyIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIg''@;'; + put 'put ''NyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjIuMzEyIDYuODE3IDIyLjczMiA4LjU2NiAyMy42MzMgMTAgTCA4IDEwIEwgOCAyNiBMIDI4IDI2IEwgMjggMTMuMjMyIEMgMjguNDIxIDEzLjM0NSAyOC44NTkgMTMuNDIyIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAz''@;'; + put 'put ''MS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDEwIDE5IEwgMTQgMTkgTCAxNCAyNCBMIDEwIDI0IFogTSAyMiAyNCBMIDIyIDE5IEwgMjYgMTkgTCAyNiAyNCBaIE0gMjAgMTkgTCAyMCAyNCBMIDE2IDI0IEwgMTYgMTkgWiBNIDI2IDE3IEwgMjIgMTcgTCAyMiAxMiBM''@;'; + put 'put ''IDI1LjU4NCAxMiBDIDI1LjcxOSAxMi4xIDI1Ljg1OCAxMi4xOTYgMjYgMTIuMjg3IFogTSAyMCAxMiBMIDIwIDE3IEwgMTYgMTcgTCAxNiAxMiBaIE0gMTQgMTIgTCAxNCAxNyBMIDEwIDE3IEwgMTAgMTIgWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMjItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMu''@;'; + put 'put ''MTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxOS4wMjggMTAgTCA4IDEwIEwgOCAyNiBMIDI4IDI2IEwgMjggMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAxMCAxOSBMIDE0IDE5IEwgMTQg''@;'; + put 'put ''MjQgTCAxMCAyNCBaIE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3IEwgMjIgMTUuMzU3IEwgMjYgMTUuMzU3IFogTSAyMCAxNyBMIDE2IDE3IEwgMTYgMTIgTCAxNy44NTYgMTIgTCAxNy42''@;'; + put 'put ''MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMjAgMTUuMzU3IFogTSAxNCAxMiBMIDE0IDE3IEwgMTAgMTcgTCAxMCAxMiBaIj48L3BhdGg+XG4gIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIyLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIu''@;'; + put 'put ''MTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAw''@;'; + put 'put ''LjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLEwuQ2xyU2hhcGVMaW5lQ2hhcnQ9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAy''@;'; + put 'put ''OSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4gIDxwb2x5Z29uIHBvaW50cz0iMTUuNjIgMTUu''@;'; + put 'put ''MjIyIDkuNjAyIDIzLjk2OCA1LjU1IDIwLjM4NCA2LjYxIDE5LjE4NiA5LjMwOCAyMS41NzIgMTUuNjM0IDEyLjM4IDIyLjM4NCAyMi4zOTUgMjkuMTM4IDEzLjQ3IDMwLjQxNCAxNC40MzYgMjIuMzA4IDI1LjE0NSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; + put 'put ''PjwvcG9seWdvbj5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTYgNSAyIDUuODk2IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NiAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5''@;'; + put 'put ''IEwgMzQgNyBDIDM0IDUuODk2IDMzLjEwNSA1IDMyIDUgWiBNIDIyLjU2IDI1Ljk0IEwgMTUuNDYgMTUuMzYgTCA5LjEyIDI0LjY0IEwgNC42MiAyMC42NCBMIDYgMTkuMDUgTCA4LjcgMjEuNDQgTCAxNS40NiAxMS41NiBMIDIyLjY1IDIyLjI3IEwgMjkuNjUgMTMgTCAzMS4zNSAxNC4yOCBa''@;'; + put 'put ''Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUw''@;'; + put 'put ''MSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAz''@;'; + put 'put ''MiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwb2x5Z29uIHBvaW50cz0iMTUuNjIgMTUuMjIyIDkuNjAyIDIzLjk2OCA1LjU1IDIwLjM4NCA2LjYxIDE5LjE4NiA5LjMwOCAyMS41NzIgMTUuNjM0IDEyLjM4IDIyLjM4NCAyMi4zOTUgMjkuMTM4IDEzLjQ3IDMwLjQxNCAxNC40MzYgMjIuMzA4IDI1''@;'; + put 'put ''LjE0NSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BvbHlnb24+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAi''@;'; + put 'put ''IGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzAuMzIgMTMuNDggTCAzMS4zOCAxNC4yOCBMIDIyLjU2IDI1Ljk0IEwgMTUuNDYgMTUuMzYgTCA5LjEyIDI0LjY0IEwgNC42''@;'; + put 'put ''MiAyMC42NCBMIDYgMTkuMDUgTCA4LjcgMjEuNDQgTCAxNS40NiAxMS41NiBMIDIyLjY1IDIyLjI3IEwgMjkuMzEgMTMuNDYgQyAyNS4wNSAxMy4xIDIxLjk2OSA5LjIzMyAyMi41NyA1IEwgNCA1IEMgMi44OTYgNSAyIDUuODk2IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NiAzMSA0IDMx''@;'; + put 'put ''IEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgMTIuMzQgQyAzMi44OTUgMTMuMDM2IDMxLjYyNiAxMy40MjkgMzAuMzIgMTMuNDggWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIu''@;'; + put 'put ''ODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUuNjIgMTUuMjIyIEwgOS42MDIgMjMu''@;'; + put 'put ''OTY4IEwgNS41NSAyMC4zODQgTCA2LjYxIDE5LjE4NiBMIDkuMzA4IDIxLjU3MiBMIDE1LjYzNCAxMi4zOCBMIDIyLjM4NCAyMi4zOTUgTCAyNy43MTcgMTUuMzQ4IEwgMjkuNzI0IDE1LjM0OCBMIDIyLjMwOCAyNS4xNDUgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTgg''@;'; + put 'put ''MjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43''@;'; + put 'put ''ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUg''@;'; + put 'put ''MzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5''@;'; + put 'put ''LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMjcuNDUyIDE1LjM1NyBMIDIyLjM4IDIyLjA2IEwgMTUuNjMgMTIgTCA5LjI4IDIxLjI4IEwgNi43NSAxOS4wNCBMIDUuNDIgMjAuNTMgTCA5LjY1IDI0LjI4IEwgMTUuNjEgMTUuNTYgTCAyMi4yOCAyNS41IEwgMjkuOTU5IDE1LjM1NyBMIDM0''@;'; + put 'put ''IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4w''@;'; + put 'put ''OTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0''@;'; + put 'put ''IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksTC5DbHJTaGFwZVBpZUNoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1''@;'; + put 'put ''IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxu''@;'; + put 'put ''ICA8cGF0aCBkPSJNIDE3IDI3IEMgMTIuNTgyIDI3IDkgMjMuNDE4IDkgMTkgQyA5IDE0LjU4MiAxMi41ODIgMTEgMTcgMTEgTCAxNyAxOSBMIDI1IDE5IEMgMjUgMjMuNDE4IDIxLjQxOCAyNyAxNyAyNyBaIE0gMjMuMjQ3IDIwLjQgTCAxNS40IDIwLjQgTCAxNS40IDEyLjgwMiBDIDEyLjY0''@;'; + put 'put ''IDEzLjUxMyAxMC42MDEgMTYuMDE4IDEwLjYgMTkgQyAxMC42IDIyLjUzNSAxMy40NjUgMjUuNCAxNyAyNS40IEMgMjAuMDU0IDI1LjQwMSAyMi42MDggMjMuMjYxIDIzLjI0NyAyMC40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxw''@;'; + put 'put ''YXRoIGQ9Ik0gMTkgOSBDIDIzLjQxOCA5IDI3IDEyLjU4MiAyNyAxNyBMIDE5IDE3IFogTSAyNS4xOTggMTUuNCBDIDI0LjYyIDEzLjE1IDIyLjg0OSAxMS4zOCAyMC42IDEwLjgwMSBMIDIwLjYgMTUuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyI+PC9w''@;'; + put 'put ''YXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgQyAzMiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUg''@;'; + put 'put ''NSAzNCA1Ljg5NiAzNCA3IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIgOSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBDIDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiBNIDE5IDE3IEwgMjcgMTcgQyAyNyAxMi41ODIgMjMuNDE4IDkgMTkg''@;'; + put 'put ''OSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIy''@;'; + put 'put ''LjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAy''@;'; + put 'put ''NiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTcgMjcgQyAxMi41ODIgMjcgOSAyMy40MTggOSAxOSBDIDkgMTQuNTgyIDEyLjU4MiAxMSAxNyAxMSBMIDE3IDE5IEwgMjUgMTkgQyAyNSAyMy40MTggMjEuNDE4IDI3IDE3IDI3IFogTSAyMy4yNDcgMjAuNCBMIDE1LjQgMjAu''@;'; + put 'put ''NCBMIDE1LjQgMTIuODAyIEMgMTIuNjQgMTMuNTEzIDEwLjYwMSAxNi4wMTggMTAuNiAxOSBDIDEwLjYgMjIuNTM1IDEzLjQ2NSAyNS40IDE3IDI1LjQgQyAyMC4wNTQgMjUuNDAxIDIyLjYwOCAyMy4yNjEgMjMuMjQ3IDIwLjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTkgOSBDIDIzLjQxOCA5IDI3IDEyLjU4MiAyNyAxNyBMIDE5IDE3IFogTSAyNS4xOTggMTUuNCBDIDI0LjYyIDEzLjE1IDIyLjg0OSAxMS4zOCAyMC42IDEwLjgwMSBMIDIwLjYgMTUuNCBaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwv''@;'; + put 'put ''Y2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1''@;'; + put 'put ''Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIg''@;'; + put 'put ''OSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBDIDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiBNIDE5IDE3IEwgMjcgMTcgQyAyNyAxMi41ODIgMjMuNDE4IDkgMTkgOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIg''@;'; + put 'put ''MzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNyAyNyBDIDEy''@;'; + put 'put ''LjU4MiAyNyA5IDIzLjQxOCA5IDE5IEMgOSAxNC41ODIgMTIuNTgyIDExIDE3IDExIEwgMTcgMTkgTCAyNSAxOSBDIDI1IDIzLjQxOCAyMS40MTggMjcgMTcgMjcgWiBNIDIzLjI0NyAyMC40IEwgMTUuNCAyMC40IEwgMTUuNCAxMi44MDIgQyAxMi42NCAxMy41MTMgMTAuNjAxIDE2LjAxOCAx''@;'; + put 'put ''MC42IDE5IEMgMTAuNiAyMi41MzUgMTMuNDY1IDI1LjQgMTcgMjUuNCBDIDIwLjA1NCAyNS40MDEgMjIuNjA4IDIzLjI2MSAyMy4yNDcgMjAuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBk''@;'; + put 'put ''PSJNIDI3IDE3IEwgMTkgMTcgTCAxOSAxNS4zNDUgQyAxOS4wMjEgMTUuMzQ4IDE5LjA0MyAxNS4zNDkgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAyNi44MzEgMTUuMzU3IEMgMjYuOTQyIDE1Ljg4NyAyNyAxNi40MzcgMjcgMTcg''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0''@;'; + put 'put ''IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAx''@;'; + put 'put ''MS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuODA3IDEzLjU4MyAxNy41NzEg''@;'; + put 'put ''MTUuMTk3IDE5IDE1LjM0NSBMIDE5IDE3IEwgMjcgMTcgQyAyNyAxNi40MzcgMjYuOTQyIDE1Ljg4NyAyNi44MzEgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIgOSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBD''@;'; + put 'put ''IDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4''@;'; + put 'put ''IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQu''@;'; + put 'put ''Nzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLEwuQ2xyU2hhcGVTY2F0dGVyUGxvdD0oMCxFLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIg''@;'; + put 'put ''NyBMIDMyIDI5IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4y''@;'; + put 'put ''NTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIu''@;'; + put 'put ''NzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMg''@;'; + put 'put ''OC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAyNS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2''@;'; + put 'put ''IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4yNzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAy''@;'; + put 'put ''MC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYyIDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44''@;'; + put 'put ''NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTSAyMi45MTIgMjAu''@;'; + put 'put ''MzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEz''@;'; + put 'put ''IEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMw''@;'; + put 'put ''NiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2''@;'; + put 'put ''IDM0IDcgWiBNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAx''@;'; + put 'put ''My42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcg''@;'; + put 'put ''MTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIE0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4''@;'; + put 'put ''OCAyNS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAy''@;'; + put 'put ''My4yNzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAu''@;'; + put 'put ''NjYyIDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiBNIDIyLjkxMiAyMC4zNDMgQyAyMy4yMjQg''@;'; + put 'put ''MjAuNjU0IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTkuNDI0IDI3LjQ5MiAxOS4yMTMgTCAyNi4zNDIgMTgu''@;'; + put 'put ''MDgzIEwgMjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43NjMgQyAyMy42MjggMTUuMzA2IDIyLjg3NiAxNS40''@;'; + put 'put ''NjkgMjIuNjg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAy''@;'; + put 'put ''Ljg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUg''@;'; + put 'put ''MTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUg''@;'; + put 'put ''TCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4''@;'; + put 'put ''NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYg''@;'; + put 'put ''TCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTku''@;'; + put 'put ''NDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3''@;'; + put 'put ''NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNIDIy''@;'; + put 'put ''LjkxMiAyMC4zNDMgQyAyMy4yMjQgMjAuNjU0IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTkuNDI0IDI3LjQ5''@;'; + put 'put ''MiAxOS4yMTMgTCAyNi4zNDIgMTguMDgzIEwgMjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43NjMgQyAyMy42''@;'; + put 'put ''MjggMTUuMzA2IDIyLjg3NiAxNS40NjkgMjIuNjg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIvPlxuICA8Y2ly''@;'; + put 'put ''Y2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0i''@;'; + put 'put ''TSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEz''@;'; + put 'put ''LjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcgMTYuMDk0IDEzLjkwNSAx''@;'; + put 'put ''NS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3IDEyLjU2MSAxMS4yNSBM''@;'; + put 'put ''IDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45ODIgOC43ODkgMTUuNDg3''@;'; + put 'put ''IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAx''@;'; + put 'put ''OS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2''@;'; + put 'put ''LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4x''@;'; + put 'put ''NzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcu''@;'; + put 'put ''NzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4w''@;'; + put 'put ''NDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAu''@;'; + put 'put ''MzQzIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUu''@;'; + put 'put ''MzU3IEwgMzQgMTUuMzU3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAx''@;'; + put 'put ''Mi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkg''@;'; + put 'put ''MTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2''@;'; + put 'put ''MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAy''@;'; + put 'put ''NS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4y''@;'; + put 'put ''NzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYy''@;'; + put 'put ''IDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAu''@;'; + put 'put ''NjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYg''@;'; + put 'put ''MjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEz''@;'; + put 'put ''IEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIw''@;'; + put 'put ''LjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0Ljgx''@;'; + put 'put ''IDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAz''@;'; + put 'put ''MC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUu''@;'; + put 'put ''MzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcgMTYuMDk0IDEzLjkwNSAx''@;'; + put 'put ''NS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3IDEyLjU2MSAxMS4yNSBM''@;'; + put 'put ''IDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45ODIgOC43ODkgMTUuNDg3''@;'; + put 'put ''IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAx''@;'; + put 'put ''OS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2''@;'; + put 'put ''LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4x''@;'; + put 'put ''NzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcu''@;'; + put 'put ''NzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4w''@;'; + put 'put ''NDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAu''@;'; + put 'put ''MzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEg''@;'; + put 'put ''QyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAy''@;'; + put 'put ''OC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHJlY3Qgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiBmaWxsLW9wYWNpdHk9IjAiLz4nKSxMLkNsclNoYXBlVGlja0NoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQg''@;'; + put 'put ''MjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTSA2IDI1IEwgOCAyNSBMIDggMjIgTCAxMCAyMiBMIDEwIDI1IEwgMTMgMjUgTCAxMyAyMiBMIDE1IDIyIEwgMTUgMjUgTCAxOCAyNSBMIDE4''@;'; + put 'put ''IDIyIEwgMjAgMjIgTCAyMCAyNSBMIDIzIDI1IEwgMjMgMjIgTCAyNSAyMiBMIDI1IDI1IEwgMjcuNzIzIDI1IEMgMjguMDIzIDI1LjAyIDI4LjI5MyAyNS4xOCAyOC40NjMgMjUuNDMgQyAyOC45MDMgMjYuMDYgMjguNDgzIDI2LjkzIDI3LjcyMyAyNi45OSBMIDYgMjYuOTkxIFoiLz5cbiAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEw''@;'; + put 'put ''NSA1IDM0IDUuODk2IDM0IDcgWiBNIDYgMjYuOTkxIEwgMjcuNzIzIDI2Ljk5IEMgMjguNDgzIDI2LjkzIDI4LjkwMyAyNi4wNiAyOC40NjMgMjUuNDMgQyAyOC4yOTMgMjUuMTggMjguMDIzIDI1LjAyIDI3LjcyMyAyNSBMIDI1IDI1IEwgMjUgMjIgTCAyMyAyMiBMIDIzIDI1IEwgMjAgMjUg''@;'; + put 'put ''TCAyMCAyMiBMIDE4IDIyIEwgMTggMjUgTCAxNSAyNSBMIDE1IDIyIEwgMTMgMjIgTCAxMyAyNSBMIDEwIDI1IEwgMTAgMjIgTCA4IDIyIEwgOCAyNSBMIDYgMjUgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQi''@;'; + put 'put ''IGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIu''@;'; + put 'put ''ODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRn''@;'; + put 'put ''ZWQiIGQ9Ik0gNiAyNSBMIDggMjUgTCA4IDIyIEwgMTAgMjIgTCAxMCAyNSBMIDEzIDI1IEwgMTMgMjIgTCAxNSAyMiBMIDE1IDI1IEwgMTggMjUgTCAxOCAyMiBMIDIwIDIyIEwgMjAgMjUgTCAyMyAyNSBMIDIzIDIyIEwgMjUgMjIgTCAyNSAyNSBMIDI3LjcyMyAyNSBDIDI4LjAyMyAyNS4w''@;'; + put 'put ''MiAyOC4yOTMgMjUuMTggMjguNDYzIDI1LjQzIEMgMjguOTAzIDI2LjA2IDI4LjQ4MyAyNi45MyAyNy43MjMgMjYuOTkgTCA2IDI2Ljk5MSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdl''@;'; + put 'put ''IiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1''@;'; + put 'put ''IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDYgMjYuOTkxIEwgMjcuNzIzIDI2Ljk5IEMg''@;'; + put 'put ''MjguNDgzIDI2LjkzIDI4LjkwMyAyNi4wNiAyOC40NjMgMjUuNDMgQyAyOC4yOTMgMjUuMTggMjguMDIzIDI1LjAyIDI3LjcyMyAyNSBMIDI1IDI1IEwgMjUgMjIgTCAyMyAyMiBMIDIzIDI1IEwgMjAgMjUgTCAyMCAyMiBMIDE4IDIyIEwgMTggMjUgTCAxNSAyNSBMIDE1IDIyIEwgMTMgMjIg''@;'; + put 'put ''TCAxMyAyNSBMIDEwIDI1IEwgMTAgMjIgTCA4IDIyIEwgOCAyNSBMIDYgMjUgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1''@;'; + put 'put ''IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTSA2IDI1IEwgOCAyNSBMIDggMjIgTCAxMCAyMiBM''@;'; + put 'put ''IDEwIDI1IEwgMTMgMjUgTCAxMyAyMiBMIDE1IDIyIEwgMTUgMjUgTCAxOCAyNSBMIDE4IDIyIEwgMjAgMjIgTCAyMCAyNSBMIDIzIDI1IEwgMjMgMjIgTCAyNSAyMiBMIDI1IDI1IEwgMjcuNzIzIDI1IEMgMjguMDIzIDI1LjAyIDI4LjI5MyAyNS4xOCAyOC40NjMgMjUuNDMgQyAyOC45MDMg''@;'; + put 'put ''MjYuMDYgMjguNDgzIDI2LjkzIDI3LjcyMyAyNi45OSBMIDYgMjYuOTkxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBD''@;'; + put 'put ''IDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0''@;'; + put 'put ''LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAz''@;'; + put 'put ''NCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQg''@;'; + put 'put ''MTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA2IDI2Ljk5MSBMIDI3LjcyMyAyNi45OSBDIDI4LjQ4MyAyNi45MyAyOC45MDMgMjYuMDYgMjguNDYzIDI1LjQzIEMgMjguMjkzIDI1LjE4IDI4LjAyMyAyNS4wMiAyNy43MjMgMjUgTCAyNSAyNSBMIDI1''@;'; + put 'put ''IDIyIEwgMjMgMjIgTCAyMyAyNSBMIDIwIDI1IEwgMjAgMjIgTCAxOCAyMiBMIDE4IDI1IEwgMTUgMjUgTCAxNSAyMiBMIDEzIDIyIEwgMTMgMjUgTCAxMCAyNSBMIDEwIDIyIEwgOCAyMiBMIDggMjUgTCA2IDI1IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMz''@;'; + put 'put ''LjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz4nKSxMLkNs''@;'; + put 'put ''clNoYXBlQmVsbEN1cnZlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMywyOUgzQTEsMSwwLDEsMSwzLDI3SDMzQTEsMSwwLDEsMSwzMywyOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMywyNWgtLjYyYTguMTEsOC4xMSww''@;'; + put 'put ''LDAsMS04LTYuNjdDMjMuNjIsMTQuNDQsMjEuODksNy45NCwxOCw3Ljk0cy01LjY5LDYuNTEtNi4zOCwxMC4zOWE4LjExLDguMTEsMCwwLDEtOCw2LjY1SDNhMSwxLDAsMSwxLDAtMmguNkE2LjExLDYuMTEsMCwwLDAsOS42LDE4YzEuNDEtNy44OCw0LjMtMTIsOC4zNS0xMnM2LjkzLDQuMTYs''@;'; + put 'put ''OC4zMywxMmE2LjExLDYuMTEsMCwwLDAsNiw1SDMzYTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxMLkNoYXJ0U2hhcGVzPXsiYXhpcy1jaGFydCI6TC5DbHJTaGFwZUF4aXNDaGFydCwiYmFyLWNoYXJ0IjpMLkNsclNoYXBl''@;'; + put 'put ''QmFyQ2hhcnQsImJ1YmJsZS1jaGFydCI6TC5DbHJTaGFwZUJ1YmJsZUNoYXJ0LCJjbG91ZC1jaGFydCI6TC5DbHJTaGFwZUNsb3VkQ2hhcnQsImN1cnZlLWNoYXJ0IjpMLkNsclNoYXBlQ3VydmVDaGFydCwiZ3JpZC1jaGFydCI6TC5DbHJTaGFwZUdyaWRDaGFydCwibGluZS1jaGFydCI6TC5D''@;'; + put 'put ''bHJTaGFwZUxpbmVDaGFydCwicGllLWNoYXJ0IjpMLkNsclNoYXBlUGllQ2hhcnQsInRpY2stY2hhcnQiOkwuQ2xyU2hhcGVUaWNrQ2hhcnQsInNjYXR0ZXItcGxvdCI6TC5DbHJTaGFwZVNjYXR0ZXJQbG90LCJib3gtcGxvdCI6TC5DbHJTaGFwZUJveFBsb3QsImhlYXQtbWFwIjpMLkNsclNo''@;'; + put 'put ''YXBlSGVhdE1hcCwiYmVsbC1jdXJ2ZSI6TC5DbHJTaGFwZUJlbGxDdXJ2ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuQ2hhcnRTaGFwZXMsImFuYWx5dGljcyIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNoYXJ0U2hhcGVzWyJsaW5lLWNoYXJ0Il0pKSwidW5kZWZpbmVkIiE9dHlwZW9m''@;'; + put 'put ''IHdpbmRvdyYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoTC5DaGFydFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29tbWVyY2Utc2hhcGVzLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmlj''@;'; + put 'put ''dCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuQ29tbWVyY2VTaGFwZXM9TC5DbHJTaGFwZUZhY3Rvcnk9TC5DbHJTaGFwZUVtcGxveWVlPUwuQ2xyU2hhcGVFbXBsb3llZUdyb3VwPUwuQ2xyU2hhcGVSdWJsZT1MLkNsclNoYXBlUGVzbz1MLkNs''@;'; + put 'put ''clNoYXBlQ29pbkJhZz1MLkNsclNoYXBlQml0Y29pbj1MLkNsclNoYXBlWWVuPUwuQ2xyU2hhcGVXb249TC5DbHJTaGFwZVJ1cGVlPUwuQ2xyU2hhcGVQb3VuZD1MLkNsclNoYXBlRUNoZWNrPUwuQ2xyU2hhcGVEb2xsYXJCaWxsPUwuQ2xyU2hhcGVCYW5rPUwuQ2xyU2hhcGVDcmVkaXRDYXJk''@;'; + put 'put ''PUwuQ2xyU2hhcGVEb2xsYXI9TC5DbHJTaGFwZUV1cm89TC5DbHJTaGFwZVN0b3JlPUwuQ2xyU2hhcGVXYWxsZXQ9TC5DbHJTaGFwZVNob3BwaW5nQ2FydD1MLkNsclNoYXBlUGlnZ3lCYW5rPUwuQ2xyU2hhcGVTaG9wcGluZ0JhZz1MLkNsclNoYXBlQ2FsY3VsYXRvcj12b2lkIDA7dmFyIEI9''@;'; + put 'put ''bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtMLkNsclNoYXBlQ2FsY3VsYXRvcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk04LDMyVjRIMjhWMzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEyLDhIMjUuNjdWNkgxMWExLDEsMCwwLDAtMSwxdjQuNjdoMloiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBwb2ludHM9IjEyIDE2IDEwIDE2IDEwIDE4IDE0IDE4''@;'; + put 'put ''IDE0IDE0IDEyIDE0IDEyIDE2Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgcG9pbnRzPSIyNCAxNiAyMiAxNiAyMiAxOCAyNiAxOCAyNiAxNCAyNCAxNCAyNCAxNiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHBvaW50cz0iMTggMTYgMTYgMTYgMTYgMTggMjAgMTggMjAgMTQgMTggMTQgMTggMTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBwb2ludHM9''@;'; + put 'put ''IjEyIDIyIDEwIDIyIDEwIDI0IDE0IDI0IDE0IDIwIDEyIDIwIDEyIDIyIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgcG9pbnRzPSIyNCAyMiAyMiAyMiAyMiAyNCAyNiAyNCAyNiAyMCAyNCAyMCAyNCAyMiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHBvaW50cz0iMTggMjIgMTYgMjIgMTYgMjQgMjAgMjQgMjAgMjAgMTggMjAgMTggMjIiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC05IiBwb2ludHM9IjEyIDI4IDEwIDI4IDEwIDMwIDE0IDMwIDE0IDI2IDEyIDI2IDEyIDI4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHBvaW50cz0iMjQgMjggMjIgMjggMjIgMzAgMjYg''@;'; + put 'put ''MzAgMjYgMjYgMjQgMjYgMjQgMjgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgcG9pbnRzPSIxOCAyOCAxNiAyOCAxNiAzMCAyMCAzMCAyMCAyNiAxOCAyNiAxOCAyOCIvPlxuICAgICAgICAgICAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0xMiwyOEgxMFYyNmgyWm0wLTZIMTBWMjBoMlptMC02SDEwVjE0aDJabTcsMTJIMTdWMjZo''@;'; + put 'put ''MlptMC02SDE3VjIwaDJabTAtNkgxN1YxNGgyWm03LDEySDI0VjI2aDJabTAtNkgyNFYyMGgyWm0wLTZIMjRWMTRoMlptMC03SDEwVjVIMjZaIi8+JyksTC5DbHJTaGFwZVNob3BwaW5nQmFnPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIiBkPSJNMjUsMTJWOS4wNWE3LDcsMCwxLDAtMTQsMHY3YTEsMSwwLDAsMCwyLDBWMTRoOFYxMkgxM1Y5LjA1YTUsNSwwLDEsMSwxMCwwVjE2YTEsMSwwLDEsMCwyLDBWMTRoNVYzMkg2VjE0SDlWMTJINFYzMi4wOUExLjkxLDEuOTEsMCwwLDAsNS45MSwzNEgzMC4wOUExLjkx''@;'; + put 'put ''LDEuOTEsMCwwLDAsMzIsMzIuMDlWMTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTMsOS4yMmE1LDUsMCwxLDEsMTAsMFYxMmgyVjkuMjJhNyw3LDAsMSwwLTE0LDBWMTJoMloiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yNSwxMnYzLjFhMSwxLDAsMSwxLTIsMFYxMkgxM3YzLjFhMSwxLDAsMCwxLTIsMFYxMkg0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMloiLz4nKSxMLkNsclNoYXBlUGlnZ3lCYW5rPSgwLEUu''@;'; + put 'put ''Y2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTkuNzIsMTAuNDdhMTEuNjUsMTEuNjUsMCwwLDAtNi4zMS41MkEuOC44LDAsMSwwLDE0LDEyLjQ4LDEwLjExLDEwLjExLDAsMCwxLDE5LjQ0LDEyYS44LjgsMCwxLDAsLjI4''@;'; + put 'put ''LTEuNTdaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMjUuMzgiIGN5PSIxNi43MSIgcj0iMS4zNiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTMiIGQ9Ik0zNS41MSwxOC42M2ExLDEsMCwwLDAtLjg0LS40NCwzLjQyLDMuNDIsMCwwLDEtMi4wOS0xLjEyLDE3LjM1LDE3LjM1LDAsMCwxLTIuNjMtMy43OGwyLjg4LTQuNUExLjg5LDEuODksMCwwLDAsMzMsN2ExLjc3LDEuNzcsMCwwLDAtMS4zMy0xLDEwLjEyLDEwLjEyLDAsMCwwLTUu''@;'; + put 'put ''MzkuNzUsMTIuNzIsMTIuNzIsMCwwLDAtMi43MiwxLjYzLDE2Ljk0LDE2Ljk0LDAsMCwwLTUuMTYtMS4zOUMxMS4zMSw2LjMsNC44MywxMC45LDQsMTdINGEyLjU2LDIuNTYsMCwwLDEtMS4zOC0xLjUzLDEuODEsMS44MSwwLDAsMSwuMTQtMS40LDEuMTksMS4xOSwwLDAsMSwuNDMtLjQzLDEu''@;'; + put 'put ''MDgsMS4wOCwwLDAsMC0xLjEyLTEuODVBMy4zMSwzLjMxLDAsMCwwLC45MSwxM2E0LDQsMCwwLDAtLjMzLDMuMDhBNC43Niw0Ljc2LDAsMCwwLDMsMTguOTVsLjkyLjQ2YTE3LjU4LDE3LjU4LDAsMCwwLDEuODIsN2wuMTcuMzhBMjMsMjMsMCwwLDAsOS4yLDMxLjg4YTEsMSwwLDAsMCwuNzUu''@;'; + put 'put ''MzRoNC41MmExLDEsMCwwLDAsLjkyLTEuMzhMMTUsMjkuOTRsMS4xOC4xM2EyMC4zMywyMC4zMywwLDAsMCw0LDBjLjM3LjYuNzcsMS4yLDEuMjEsMS43OWExLDEsMCwwLDAsLjguNDFoNC4zNGExLDEsMCwwLDAsLjkyLTEuMzljLS4xNy0uNC0uMzQtLjgzLS40Ny0xLjItLjE4LS41My0uMzIt''@;'; + put 'put ''MS0uNDMtMS40NUExMy4xOCwxMy4xOCwwLDAsMCwyOS41NiwyNmExMi41LDEyLjUsMCwwLDAsMywwLDEsMSwwLDAsMCwuNzgtLjYybDIuMjYtNS44MUExLDEsMCwwLDAsMzUuNTEsMTguNjNabS0zLjc4LDUuNDRhMTEuMzcsMTEuMzcsMCwwLDEtMi4zNS0uMTFoMGE4LjIsOC4yLDAsMCwxLTIu''@;'; + put 'put ''NTMtLjg3LDEsMSwwLDAsMC0uOTMsMS43NywxMS43MiwxMS43MiwwLDAsMCwxLjI5LjU4LDgsOCwwLDAsMS0xLjgsMS4xNmwtMS4wNi40OHMuNDksMi4xOS44MiwzLjE2SDIyLjc5Yy0uMjQtLjM0LTEuNDUtMi4zNi0xLjQ1LTIuMzZsLS42Ny4wOWExOC41MywxOC41MywwLDAsMS00LjI1LjEy''@;'; + put 'put ''Yy0uNjYtLjA2LTEuNzYtLjItMi42Mi0uMzVsLTEuNTUtLjI3cy42MywyLjQzLjc1LDIuNzR2MEgxMC40MkEyMC41NywyMC41NywwLDAsMSw3Ljc2LDI2bC0uMTgtLjM5QTE0LjYyLDE0LjYyLDAsMCwxLDYsMTcuNDhjLjU0LTUuMTksNi4xMi05LjExLDEyLjE5LTguNTRhMTUuNDcsMTUuNDcs''@;'; + put 'put ''MCwwLDEsNS4wOCwxLjQ4bC42Mi4yOS41LS40N0ExMC4yOSwxMC4yOSwwLDAsMSwyNyw4LjU0YTguMjUsOC4yNSwwLDAsMSw0LS42NWwtMy4zOCw1LjI5LjI1LjVoMGEyMS4xNiwyMS4xNiwwLDAsMCwzLjMxLDQuODQsNi40OSw2LjQ5LDAsMCwwLDIuMTQsMS4zOVoiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNSwxOC44N0E1LjgzLDUuODMsMCwwLDEsMzMsMTcuNjFhMjEuNjMsMjEuNjMsMCwwLDEtMy4yOS00Ljg0bDMuMzktNS4yOWEuOS45LDAsMCwwLS41NC0xLjM4LDkuNjcsOS42NywwLDAsMC01LjEzLjcy''@;'; + put 'put ''LDEyLDEyLDAsMCwwLTMuMTMsMkExNy4zNywxNy4zNywwLDAsMCwxOC42LDcuMTVDMTEuOCw2LjUyLDUuMjcsMTAuOSw0LjU0LDE3bC0uMTQtLjA3QTIuNzYsMi43NiwwLDAsMSwyLjksMTUuMjlhMiwyLDAsMCwxLC4xNS0xLjU1LDEuMzIsMS4zMiwwLDAsMSwuNDctLjQ4LDEuMDgsMS4wOCww''@;'; + put 'put ''LDEsMC0xLjEyLTEuODUsMy40NSwzLjQ1LDAsMCwwLTEuMjMsMS4yNUE0LjE2LDQuMTYsMCwwLDAsLjg0LDE1LjlhNSw1LDAsMCwwLDIuNTcsM2wxLC41NGExOC42MiwxOC42MiwwLDAsMCwyLDcuMywyMywyMywwLDAsMCwzLDQuNzksMSwxLDAsMCwwLC44LjM4aDMuNjFhLjUyLjUyLDAsMCww''@;'; + put 'put ''LC40LS43NUwxNCwzMC4zOGExMSwxMSwwLDAsMS0uMzMtMS4xOGMuOTEuMTYsMi4wOC4zMSwyLjg3LjM4YTIwLjA3LDIwLjA3LDAsMCwwLDMuMTIsMGMuMzkuNy43OSwxLjMzLDEuMTUsMS44NWEuOTMuOTMsMCwwLDAsLjc3LjQxaDMuMTFhLjY1LjY1LDAsMCwwLC42MS0uODVjLS4yMy0uNzQt''@;'; + put 'put ''LjUzLTEuNzUtLjcxLTIuMzdhMTUuOSwxNS45LDAsMCwwLDMuNzUtMS43NmMuMTYtLjExLjMyLS4yNi40OC0uMzlhMTMuNzcsMTMuNzcsMCwwLDEtMi40Mi0xLC44LjgsMCwwLDEsLjc0LTEuNDIsMTEuNjQsMTEuNjQsMCwwLDAsMy4xOCwxLjEsMTMuMzEsMTMuMzEsMCwwLDAsMi42OC4xMiwx''@;'; + put 'put ''LDEsMCwwLDAsLjktLjY2bDEuNzMtNC40NEExLDEsMCwwLDAsMzUsMTguODdaTTEzLjc5LDExLjU5YS44Ni44NiwwLDAsMS0uMy4wNS44NS44NSwwLDAsMS0uMy0xLjY0LDEyLjQxLDEyLjQxLDAsMCwxLDYuNjktLjU1Ljg1Ljg1LDAsMSwxLS4zLDEuNjdBMTAuNzUsMTAuNzUsMCwwLDAsMTMu''@;'; + put 'put ''NzksMTEuNTlabTEyLjUyLDYuMTJhMS40NCwxLjQ0LDAsMSwxLDEuNDQtMS40NEExLjQ0LDEuNDQsMCwwLDEsMjYuMzIsMTcuNzJaIi8+JyksTC5DbHJTaGFwZVNob3BwaW5nQ2FydD0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3IiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjA4''@;'; + put 'put ''LDUuMzdBMSwxLDAsMCwwLDMyLjMxLDVIMTEuNDlsLjY1LDJIMzFMMjguMzMsMTloLTE1TDguNzYsNC41M2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjJhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42NGw0LjU5LDE0LjVMOS45NSwyMS40OGwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1''@;'; + put 'put ''LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTNhMSwxLDAsMCwwLDEtLjc4bDMuMTctMTRBMSwxLDAsMCwwLDMzLjA4LDUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjMzIiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjciIGN5PSIyOS43NSIg''@;'; + put 'put ''cj0iMi4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjIwLjcxIDcgMjEuODcgNSAxMS40OSA1IDEyLjE0IDcgMjAuNzEgNyIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMTUsMTUuNCwyOC4zMywxOWgtMTVMOC43Niw0LjUzYTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42MmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY0bDQuNTksMTQuNUw5Ljk1''@;'; + put 'put ''LDIxLjQ4bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xM2ExLDEsMCwwLDAsMS0uNzhsMS4wOS00LjgyWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4''@;'; + put 'put ''LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBkPSJNMjIuNTcsN2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xSDExLjQ5bC42NSwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTMwLDEzLjVsLS40MiwwTDI4LjMzLDE5aC0xNUw4Ljc2LDQuNTNhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjYyYTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjRsNC41OSwxNC41TDkuOTUsMjEuNDhsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZI''@;'; + put 'put ''MjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEzYTEsMSwwLDAsMCwxLS43OGwxLjU3LTYuOTFBNy41MSw3LjUxLDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRn''@;'; + put 'put ''ZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy41IiBjeT0iMjkuNSIg''@;'; + put 'put ''cj0iMi41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; + put 'put ''My4xLDYuMzlBMSwxLDAsMCwwLDMyLjMxLDZIOS4yMUw4Ljc2LDQuNTdhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjY2YTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjhsNC41OCwxNC40N0w5Ljk1LDIxLjQ5bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEy''@;'; + put 'put ''LDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xMmExLDEsMCwwLDAsMS0uNzZsMy4yLTEzQTEsMSwwLDAsMCwzMy4xLDYuMzlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNp''@;'; + put 'put ''cmNsZSBjeD0iMTMuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI2LjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDkuMjFMOC43Niw0LjU3YTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42NmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1''@;'; + put 'put ''LjY4bDQuNTgsMTQuNDdMOS45NSwyMS40OWwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTJhMSwxLDAsMCwwLDEtLjc2bDEuMTktNC44NFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2''@;'; + put 'put ''LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg5LjIxTDguNzYsNC41N2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjZhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42OGw0LjU4LDE0LjQ3TDkuOTUsMjEuNDlsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwy''@;'; + put 'put ''Ljc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEyYTEsMSwwLDAsMCwxLS43NmwxLjcxLTdBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEwuQ2xyU2hhcGVXYWxsZXQ9KDAsRS5jbHJJY29u''@;'; + put 'put ''U1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwxNUgzMVY5YTEsMSwwLDAsMC0xLTFINmExLDEsMCwwLDEtMS0uODJWNi44MkExLDEsMCwwLDEsNiw2SDI5LjU4YTEsMSwwLDAsMCwwLTJINkEzLDMsMCwwLDAsMyw3YTMuMDgsMy4w''@;'; + put 'put ''OCwwLDAsMCwwLC4zNlYyNy45M0E0LjEsNC4xLDAsMCwwLDcuMTMsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNWgxYTEsMSwwLDAsMCwxLTFWMTZBMSwxLDAsMCwwLDMyLDE1Wk0yOSwzMEg3LjEzQTIuMTEsMi4xMSwwLDAsMSw1LDI3LjkzVjkuODhBMy4xMSwzLjExLDAsMCwwLDYsMTBIMjl2NUgy''@;'; + put 'put ''MmE1LDUsMCwwLDAsMCwxMGg3Wm0yLTdIMjJhMywzLDAsMCwxLDAtNkgzMVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGN4PSIyMy4wMSIgY3k9IjIwIiByPSIxLjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi45NCwxNEgzMVY5YTEsMSwwLDAsMC0xLTFINkExLDEsMCwwLDEsNSw3SDVWN0ExLDEsMCwwLDEsNiw2SDI5LjZhMSwxLDAsMSwwLDAtMkg2QTIuOTQsMi45NCwwLDAsMCwzLDYuODh2MjFBNC4xMyw0LjEzLDAsMCwwLDcu''@;'; + put 'put ''MTUsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNmgxLjk0YS45My45MywwLDAsMCwxLS45MXYtMTBBMS4wOCwxLjA4LDAsMCwwLDMyLjk0LDE0Wk0zMiwyNGwtOC41OCwwYTMuODcsMy44NywwLDAsMS0zLjczLTQsMy44NywzLjg3LDAsMCwxLDMuNzMtNEwzMiwxNloiLz5cbiAgICAgICAgICAgIDxj''@;'; + put 'put ''aXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjI0LjA0IiBjeT0iMTkuOTIiIHI9IjEuNSIvPicpLEwuQ2xyU2hhcGVTdG9yZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0i''@;'; + put 'put ''TTI4LDMwSDE2VjIySDE0djhIOFYyMkg2djhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjIySDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMy43OSwxMy4yNywyOS43MSw1LjExQTIsMiwwLDAs''@;'; + put 'put ''MCwyNy45Miw0SDguMDhBMiwyLDAsMCwwLDYuMjksNS4xMUwyLjIxLDEzLjI3YTIsMiwwLDAsMC0uMjEuOXYzLjA4YTIsMiwwLDAsMCwuNDYsMS4yOEE0LjY3LDQuNjcsMCwwLDAsNiwyMC4xM2E0LjcyLDQuNzIsMCwwLDAsMy0xLjA3LDQuNzMsNC43MywwLDAsMCw2LDAsNC43Myw0LjczLDAs''@;'; + put 'put ''MCwwLDYsMCw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzIsNC43MiwwLDAsMCw2LjUzLS41MkEyLDIsMCwwLDAsMzQsMTcuMjZWMTQuMTdBMiwyLDAsMCwwLDMzLjc5LDEzLjI3Wk0zMCwxOC4xM0EyLjY4LDIuNjgsMCwwLDEsMjcuODIsMTdMMjcsMTUuODgsMjYuMTksMTdhMi43MSwyLjcxLDAs''@;'; + put 'put ''MCwxLTQuMzcsMEwyMSwxNS44OCwyMC4xOSwxN2EyLjcxLDIuNzEsMCwwLDEtNC4zNywwTDE1LDE1Ljg4LDE0LjE5LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OCw4LjE4LDE3QTIuNjgsMi42OCwwLDAsMSw2LDE4LjEzYTIuNjQsMi42NCwwLDAsMS0yLS44OFYxNC4xN0w4LjA4''@;'; + put 'put ''LDZIMjcuOTJMMzIsMTQuMTZ2LjY3bDAsMi4zOUEyLjY3LDIuNjcsMCwwLDEsMzAsMTguMTNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjgsMzBIMTZWMjJIMTR2OEg4VjIySDZ2OGEyLDIsMCwwLDAsMiwySDI4YTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMjJIMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuNzksMTMuMjcsMjkuNzEsNS4xMUEyLDIsMCwwLDAsMjcuOTIsNEg4LjA4QTIsMiwwLDAsMCw2LjI5LDUuMTFMMi4yMSwxMy4yN2EyLDIs''@;'; + put 'put ''MCwwLDAtLjIxLjl2My4wOGEyLDIsMCwwLDAsLjQ2LDEuMjhBNC42Nyw0LjY3LDAsMCwwLDYsMjAuMTNhNC43Miw0LjcyLDAsMCwwLDMtMS4wNyw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzMsNC43MywwLDAsMCw2LDAsNC43Myw0LjczLDAsMCwwLDYsMCw0LjcyLDQuNzIsMCwwLDAsNi41My0u''@;'; + put 'put ''NTJBMiwyLDAsMCwwLDM0LDE3LjI2VjE0LjE3QTIsMiwwLDAsMCwzMy43OSwxMy4yN1pNMTUsMTQuNHYxLjUyTDE0LjE4LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OFYxNC40TDExLjU5LDZIMTZabTEyLDEuNDhMMjYuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEwyMSwx''@;'; + put 'put ''NS44OGwwLDBWMTQuNEwyMCw2aDQuNDVMMjcsMTQuNFoiLz4nKSxMLkNsclNoYXBlRXVybz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLjQ4LDI4LjQ5YTEsMSwwLDAsMC0xLjM4LS4zMkExMiwxMiwwLDAs''@;'; + put 'put ''MSwxMi40NSwyMkgyNC4xNmExLDEsMCwwLDAsMC0ySDExLjkzYTExLjE2LDExLjE2LDAsMCwxLDAtNEgyNC4xNmExLDEsMCwwLDAsMC0ySDEyLjQ1QTEyLDEyLDAsMCwxLDMwLjA2LDcuOGExLDEsMCwwLDAsMS4wNi0xLjdBMTQsMTQsMCwwLDAsMTAuMzQsMTRIMy41NGExLDEsMCwxLDAsMCwy''@;'; + put 'put ''SDkuOTFhMTQsMTQsMCwwLDAtLjE2LDIsMTQsMTQsMCwwLDAsLjE2LDJIMy41NGExLDEsMCwxLDAsMCwyaDYuOGExNCwxNCwwLDAsMCwyMC44Myw3Ljg3QTEsMSwwLDAsMCwzMS40OCwyOC40OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuNDIsMjUuMTZBMTAuODgsMTAuODgsMCwwLDEsOS4yMywyMUg1Ljg0YTEsMSwwLDAsMSwwLTJoM2MwLS4zNS0uMDUtLjcxLS4wNS0xLjA3czAtLjYzLDAtLjkzaC0zYTEsMSwwLDAsMSwwLTJIOS4x''@;'; + put 'put ''OUExMC44NiwxMC44NiwwLDAsMSwyNS4zOCw4LjY5YTEuMjUsMS4yNSwwLDAsMS0xLjMyLDIuMTJBOC4zNiw4LjM2LDAsMCwwLDExLjgyLDE1aDkuMzZhMSwxLDAsMCwxLDAsMkgxMS4zM2E3LjcyLDcuNzIsMCwwLDAsMCwyaDkuODJhMSwxLDAsMCwxLDAsMkgxMS44N2E4LjM2LDguMzYsMCww''@;'; + put 'put ''LDAsMTIuMjIsNCwxLjI1LDEuMjUsMCwxLDEsMS4zMywyLjEyWiIvPicpLEwuQ2xyU2hhcGVEb2xsYXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNiwyMS4xNWE2LjkxLDYuOTEsMCwwLDAtNC4zOC0zLjMy''@;'; + put 'put ''QTI2LDI2LDAsMCwwLDE5LDE3LjE5VjguMTJBMTAuMDUsMTAuMDUsMCwwLDEsMjMuODYsMTBhMSwxLDAsMCwwLDEuMzMtMS41QTExLjc1LDExLjc1LDAsMCwwLDE5LDYuMVYzYTEsMSwwLDAsMC0yLDBWNmMtNC40LjEtNi44MywyLjI5LTcuNTcsNC4xOEE1LjU2LDUuNTYsMCwwLDAsMTEuNjYs''@;'; + put 'put ''MTcsMTMuMiwxMy4yLDAsMCwwLDE3LDE4Ljg0VjI4YTEyLjMsMTIuMywwLDAsMS03LjE0LTIuNzRBMSwxLDAsMSwwLDguNDksMjYuNywxNC4wOSwxNC4wOSwwLDAsMCwxNywzMHYzYTEsMSwwLDAsMCwyLDBWMzBjMi44Mi0uMTksNi4wNy0xLjA5LDcuMy00Ljc2QTUuMzMsNS4zMywwLDAsMCwy''@;'; + put 'put ''NiwyMS4xNVpNMTIuNzksMTUuMzJhMy41NywzLjU3LDAsMCwxLTEuNDktNC4zOUMxMS40MSwxMC42MywxMi41Myw4LjEyLDE3LDh2OC44QTEwLjcsMTAuNywwLDAsMSwxMi43OSwxNS4zMlpNMjQuNCwyNC41NmMtLjcyLDIuMTQtMi4zMiwzLjE3LTUuNCwzLjRWMTkuMjNjLjY0LjE0LDEuMy4z''@;'; + put 'put ''LDIsLjUxYTUsNSwwLDAsMSwzLjE5LDIuMzJBMy4zNCwzLjM0LDAsMCwxLDI0LjQsMjQuNTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIlxuICAgICAgICAgICAgICAgIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2''@;'; + put 'put ''LDAsMCwwLDE4LDJabTcuNjUsMjEuNTljLTEsMy0zLjYxLDMuODQtNS45LDR2MmExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjcuNTlBMTEuNDcsMTEuNDcsMCwwLDEsMTEsMjVhMS4yNSwxLjI1LDAsMSwxLDEuNzEtMS44Myw5LjExLDkuMTEsMCwwLDAsNC41NSwxLjk0VjE4LjgzYTkuNjMsOS42''@;'; + put 'put ''MywwLDAsMS0zLjczLTEuNDEsNC44LDQuOCwwLDAsMS0xLjkxLTUuODRjLjU5LTEuNTEsMi40Mi0zLjIzLDUuNjQtMy41MVY2LjI1YTEuMjUsMS4yNSwwLDAsMSwyLjUsMFY4LjExYTkuNjcsOS42NywwLDAsMSw0LjksMkExLjI1LDEuMjUsMCwwLDEsMjMsMTEuOTVhNy4xNCw3LjE0LDAsMCww''@;'; + put 'put ''LTMuMjQtMS4zMXY2LjEzYy42LjEzLDEuMjQuMjcsMS45MS40OGE1Ljg1LDUuODUsMCwwLDEsMy42OSwyLjgyQTQuNjQsNC42NCwwLDAsMSwyNS42NSwyMy41OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yMC45Miwx''@;'; + put 'put ''OS42NGMtLjQtLjEyLS43OS0uMjItMS4xNy0uM3Y1Ljc2YzItLjIsMy4wNy0uOSwzLjUzLTIuM2EyLjE1LDIuMTUsMCwwLDAtLjE1LTEuNThBMy40OSwzLjQ5LDAsMCwwLDIwLjkyLDE5LjY0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh''@;'; + put 'put ''dGgtMyIgZD0iTTEzLjk0LDEyLjQ4YTIuMzEsMi4zMSwwLDAsMCwxLDIuODcsNi41Myw2LjUzLDAsMCwwLDIuMzIuOTJWMTAuNTVDMTUuMTYsMTAuOCwxNC4xOSwxMS44NCwxMy45NCwxMi40OFoiLz4nKSxMLkNsclNoYXBlQ3JlZGl0Q2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJN''@;'; + put 'put ''MzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMiwwLDEySDRMNCw4Wk00LDI4VjI0SDMydjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxy''@;'; + put 'put ''ZWN0IHg9IjciIHk9IjMiIHdpZHRoPSIyMiIgaGVpZ2h0PSIzMCIgcng9IjAuOTYiIHJ5PSIwLjk2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNikgcm90YXRlKDkwKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMThINFYyMEgzMloiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUJhbms9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMuNSwxMy41NiwxOCw1LjIzbDE0LjUsOC4zM2ExLDEsMCwwLDAsMS0xLjczTDE4LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3LjYzSDI2VjI1SDE5VjE3LjYzSDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI1LjAyIiB5PSIxNCIgd2lkdGg9IjI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMs''@;'; + put 'put ''MjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjE1LDExLjU4aDMuMjFMMTguNjUsNy43MmEuOC44LDAsMCwwLS44LDBsLTYuNzIsMy44NmgzLjIx''@;'; + put 'put ''bDMuOS0yLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI2YTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDAtMkgyOFYxNy42M0gyNlYyNUgxOVYxNy42M0gxN1YyNUgxMFYxNy42M0g4VjI1SDVBMSwx''@;'; + put 'put ''LDAsMCwwLDQsMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjUuMDIiIHk9IjE0IiB3aWR0aD0iMjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0yMi4xNSwxMS41OGgzLjIxTDE4LjY1LDcuNzJhLjguOCwwLDAsMC0uOCwwbC02LjcyLDMuODZoMy4yMWwzLjktMi4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTIyLjUsNmMwLS4xNiwwLS4zMiwwLS40OEwxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjIuNzcsOEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTQsMTMuMjRsLjU2LjMyYTEsMSwwLDAsMCwxLjQ0LTEuMTlBNy40NSw3LjQ1LDAsMCwxLDMxLjk0LDEzLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3''@;'; + put 'put ''LjYzSDI2VjI1SDE5VjE3LjYzSDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwy''@;'; + put 'put ''SDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsMTVBMy41MSwzLjUxLDAsMCwxLDIwLDE0SDV2MkgzMVYxNVoiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuNDYsOS43NGwuNjgtMS4xNy0xLjQ5LS44NWEuOC44LDAsMCwwLS44LDBsLTYuNzIsMy44NmgzLjIxbDMuOS0yLjI0LDEuMS42M0MxOS4zOSw5Ljg5LDE5LjQyLDku''@;'; + put 'put ''ODEsMTkuNDYsOS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMDUsNS4yNSwxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjEuMDUsN1oi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5''@;'; + put 'put ''LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMuNSwxMy41Niw1LDEyLjY4VjE2SDMxVjEyLjcx''@;'; + put 'put ''bDEuNDguODVhMSwxLDAsMCwwLDEtMS43M0wxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczWk0xNy44NSw3LjExYS44LjgsMCwwLDEsLjgsMEwyNS4zNywxMUgyMi4xNWwtMy45LTIuMjRMMTQuMzUsMTFIMTEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuODUsMjdIMzJ2LS44NUExLjE1LDEuMTUsMCwwLDAsMzAuODUsMjVIMjhWMTcuNjNIMjRWMjVIMjBWMTcuNjNIMTZWMjVIMTJWMTcuNjNIOFYyNUg1LjE1QTEuMTUsMS4xNSwwLDAsMCw0LDI2LjE1VjI3SDMuMTVBMS4xNSwxLjE1LDAs''@;'; + put 'put ''MCwwLDIsMjguMTVWMzFIMzRWMjguMTVBMS4xNSwxLjE1LDAsMCwwLDMyLjg1LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjg1LDI3SDMydi0uODVBMS4xNSwxLjE1LDAsMCwwLDMwLjg1LDI1SDI4VjE3LjYz''@;'; + put 'put ''SDI0VjI1SDIwVjE3LjYzSDE2VjI1SDEyVjE3LjYzSDhWMjVINS4xNUExLjE1LDEuMTUsMCwwLDAsNCwyNi4xNVYyN0gzLjE1QTEuMTUsMS4xNSwwLDAsMCwyLDI4LjE1VjMxSDM0VjI4LjE1QTEuMTUsMS4xNSwwLDAsMCwzMi44NSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ3LDcuNDcsMCwwLDEsMjQuMzksMTFIMjIuMTVsLTMuOS0yLjI0TDE0LjM1LDExSDExLjE0bDYuNzItMy44NmEuOC44LDAsMCwxLC44LDBsNSwyLjg3QTcuNDUsNy40NSwwLDAsMSwy''@;'; + put 'put ''Mi41LDZjMC0uMTYsMC0uMzIsMC0uNDhMMTgsMi45MiwyLjUsMTEuODNhMSwxLDAsMSwwLDEsMS43M0w1LDEyLjY4VjE2SDMxVjEzLjQyQTcuNTMsNy41MywwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45NCwxMy4yNGwuNTYuMzJhMSwxLDAsMCwwLDEuNDQtMS4xOUE3LjQ1LDcuNDUsMCwwLDEsMzEuOTQsMTMuMjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNs''@;'; + put 'put ''ZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi44NSwyN0gzMnYtLjg1QTEuMTUsMS4xNSwwLDAsMCwzMC44NSwyNUgyOFYxNy42''@;'; + put 'put ''M0gyNFYyNUgyMFYxNy42M0gxNlYyNUgxMlYxNy42M0g4VjI1SDUuMTVBMS4xNSwxLjE1LDAsMCwwLDQsMjYuMTVWMjdIMy4xNUExLjE1LDEuMTUsMCwwLDAsMiwyOC4xNVYzMUgzNFYyOC4xNUExLjE1LDEuMTUsMCwwLDAsMzIuODUsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSwxNWEzLjUxLDMuNTEsMCwwLDEtMy01LjI2bC4xNC0uMjQtMS4zNS0uNzhMMTQuMzUsMTFIMTEuMTRsNi43Mi0zLjg2YS44LjgsMCwwLDEsLjgsMGwxLjc1LDEsMS42NS0yLjg2TDE4LDIu''@;'; + put 'put ''OTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNMNSwxMi42OFYxNkgzMVYxNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAs''@;'; + put 'put ''MCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz4nKSxMLkNsclNoYXBl''@;'; + put 'put ''RG9sbGFyQmlsbD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFptMCw2YTQuMjUs''@;'; + put 'put ''NC4yNSwwLDAsMS0zLjktNEgzMlptMCwxLjYydjQuODNBNS44Nyw1Ljg3LDAsMCwwLDI2LjQ5LDI2aC0xN0E1Ljg3LDUuODcsMCwwLDAsNCwyMC40NFYxNS42QTUuODcsNS44NywwLDAsMCw5LjUxLDEwaDE3QTUuODcsNS44NywwLDAsMCwzMiwxNS42Wk03LjksMTBBNC4yNSw0LjI1LDAsMCwx''@;'; + put 'put ''LDQsMTRWMTBaTTQsMjIuMDZBNC4yNSw0LjI1LDAsMCwxLDcuOSwyNkg0Wk0yOC4xLDI2QTQuMjUsNC4yNSwwLDAsMSwzMiwyMi4wNlYyNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMTAuODVjLTMuNDcs''@;'; + put 'put ''MC02LjMsMy4yMS02LjMsNy4xNXMyLjgzLDcuMTUsNi4zLDcuMTUsNi4zLTMuMjEsNi4zLTcuMTVTMjEuNDcsMTAuODUsMTgsMTAuODVabTAsMTIuNjljLTIuNTksMC00LjctMi40OS00LjctNS41NXMyLjExLTUuNTUsNC43LTUuNTUsNC43LDIuNDksNC43LDUuNTVTMjAuNTksMjMuNTUsMTgs''@;'; + put 'put ''MjMuNTVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIsOEg0YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wk00LDI2VjIxLjE1QTUuMTgsNS4x''@;'; + put 'put ''OCwwLDAsMSw4Ljc5LDI2Wk00LDE0Ljg1VjEwSDguNzlBNS4xOCw1LjE4LDAsMCwxLDQsMTQuODVaTTE4LDI1LjE1Yy0zLjQ3LDAtNi4zLTMuMjEtNi4zLTcuMTVzMi44My03LjE1LDYuMy03LjE1LDYuMywzLjIxLDYuMyw3LjE1UzIxLjQ3LDI1LjE1LDE4LDI1LjE1Wk0zMiwyNkgyNy4yNUE1''@;'; + put 'put ''LjE4LDUuMTgsMCwwLDEsMzIsMjEuMTVabTAtMTEuMTVBNS4xOCw1LjE4LDAsMCwxLDI3LjI1LDEwSDMyWiIvPlxuICAgICAgICAgICAgPGVsbGlwc2UgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjE4IiBjeT0iMTgiIHJ4PSI0IiByeT0iNC43MiIvPicpLEwu''@;'; + put 'put ''Q2xyU2hhcGVFQ2hlY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjE2IiB5PSIxNiIgd2lkdGg9IjE1IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0yIiB4PSIyMCIgeT0iMjEiIHdpZHRoPSIxMSIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTM0LDhIMTIuOTNhOC4zNSw4LjM1LDAsMCwxLC43OSwySDMzVjI2SDNWMTku''@;'; + put 'put ''OWE3LjgzLDcuODMsMCwwLDEtMi0xLjM0VjI3YTEsMSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik02LjU3LDE4LjY4YTYuMTcsNi4x''@;'; + put 'put ''NywwLDAsMCw0LjMyLTEuNTksMS4yLDEuMiwwLDAsMCwuMzYtLjg0LDEuMDgsMS4wOCwwLDAsMC0xLjA5LTEuMTEsMSwxLDAsMCwwLS43MS4yNSw0LjMyLDQuMzIsMCwwLDEtMi44NCwxLDMuMzUsMy4zNSwwLDAsMS0zLjQ2LTNoNy41M0ExLjI5LDEuMjksMCwwLDAsMTIsMTIuMDYsNS42OCw1''@;'; + put 'put ''LjY4LDAsMCwwLDYuMjcsNi4xNCw2LDYsMCwwLDAsLjQsMTIuNHYwQTYsNiwwLDAsMCw2LjU3LDE4LjY4Wk02LjI1LDguMzljMS44MiwwLDIuODcsMS4zOSwzLDMuMTZIMy4xM0MzLjM4LDkuNjksNC41Niw4LjM5LDYuMjUsOC4zOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCw4SDEyLjkxYTguNjEsOC42MSwwLDAsMSwxLjIsNC4zOSw4LDgsMCwwLDEtNy43OCw4LjI3QTcuNTEsNy41MSwwLDAsMSwxLDE4LjQxVjI3YTEsMSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4Wk0z''@;'; + put 'put ''MSwyM0gyMFYyMUgzMVptMC01SDE2VjE2SDMxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTYuNTcsMTguNjhBNiw2LDAsMCwxLC40LDEyLjQ0djBBNiw2LDAsMCwxLDYuMjcsNi4xNCw1LjY4LDUuNjgsMCwwLDEsMTIs''@;'; + put 'put ''MTIuMDZhMS4yOSwxLjI5LDAsMCwxLTEuMywxLjMySDMuMTVhMy4zNSwzLjM1LDAsMCwwLDMuNDYsMyw0LjMyLDQuMzIsMCwwLDAsMi44NC0xLDEsMSwwLDAsMSwuNzEtLjI1LDEuMDgsMS4wOCwwLDAsMSwxLjA5LDEuMTEsMS4yLDEuMiwwLDAsMS0uMzYuODRBNi4xNyw2LjE3LDAsMCwxLDYu''@;'; + put 'put ''NTcsMTguNjhaTTkuMywxMS41NWMtLjE4LTEuNzctMS4yMy0zLjE2LTMtMy4xNnMtMi44NywxLjMtMy4xMiwzLjE2WiIvPicpLEwuQ2xyU2hhcGVQb3VuZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3Ljks''@;'; + put 'put ''MzBIMTMuNEE4LjQ1LDguNDUsMCwwLDAsMTUsMjQuNjVWMjFoNC4zMWExLDEsMCwwLDAsMC0ySDE1VjExLjMxQTUuMjQsNS4yNCwwLDAsMSwyMC4yMSw2LDUuMTksNS4xOSwwLDAsMSwyNCw3LjczYTEsMSwwLDAsMCwxLjQ4LTEuMzVBNy4xOSw3LjE5LDAsMCwwLDEzLDExLjMxVjE5SDguNzJh''@;'; + put 'put ''MSwxLDAsMSwwLDAsMkgxM3YzLjY1QzEzLDI5LjM4LDEwLjEyLDMwLDEwLDMwYTEsMSwwLDAsMCwuMTcsMkgyNy45YTEsMSwwLDEsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwz''@;'; + put 'put ''NCwxOCwxNiwxNiwwLDAsMCwxOCwyWm02LjUsMjUuOTJIMTEuNzRhMS4yNSwxLjI1LDAsMCwxLS4yMi0yLjQ4Yy4xNSwwLDEuNzItLjQ5LDEuNzItMy41NFYxOWgtMi41YTEsMSwwLDAsMSwwLTJoMi41VjExLjg4YTUuODUsNS44NSwwLDAsMSw1LjcyLTYsNS42Myw1LjYzLDAsMCwxLDQuMjEs''@;'; + put 'put ''MS45NEExLjI1LDEuMjUsMCwxLDEsMjEuMyw5LjUxLDMuMDgsMy4wOCwwLDAsMCwxOSw4LjQyYTMuMzUsMy4zNSwwLDAsMC0zLjIyLDMuNDZWMTdoM2ExLDEsMCwwLDEsMCwyaC0zdjIuOUE3LjY1LDcuNjUsMCwwLDEsMTUsMjUuNDJIMjQuNWExLjI1LDEuMjUsMCwwLDEsMCwyLjVaIi8+Jyks''@;'; + put 'put ''TC5DbHJTaGFwZVJ1cGVlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjgsOEgyNC4xNEE3LjUyLDcuNTIsMCwwLDAsMjIuNiw2SDI4YTEsMSwwLDAsMCwwLTJIMTBhMSwxLDAsMCwwLDAsMmg3LjU1YTUuNDIs''@;'; + put 'put ''NS40MiwwLDAsMSw0LjIsMkgxMGExLDEsMCwwLDAsMCwySDIyLjc5QTUuNTQsNS41NCwwLDAsMSwyMywxMS41MSw1LjQ4LDUuNDgsMCwwLDEsMTcuNTUsMTdIMTEuMTRhMSwxLDAsMCwwLS43NSwxLjY2TDIyLjA2LDMyYTEsMSwwLDEsMCwxLjUtMS4zMkwxMy4zNSwxOWg0LjIxYTcuNTEsNy41''@;'; + put 'put ''MSwwLDAsMCw3LjMtOUgyOGExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptNS44OCw5SDI2YTEsMSwwLDAsMSwwLDJIMjQu''@;'; + put 'put ''MjZjMCwuMDYsMCwuMTIsMCwuMTlhNi4wOSw2LjA5LDAsMCwxLTYsNi4yaC0ybDYuODIsOC4wNmExLjI1LDEuMjUsMCwwLDEtMS45MSwxLjYyTDEyLjYzLDE4Ljk0YTEuMjUsMS4yNSwwLDAsMSwxLTIuMDZoNC43MWEzLjU5LDMuNTksMCwwLDAsMy40OC0zLjY5YzAtLjA3LDAtLjEzLDAtLjJo''@;'; + put 'put ''LTlhMSwxLDAsMCwxLDAtMmg4LjMyYTMuNDEsMy40MSwwLDAsMC0yLjc4LTEuNUgxMi43NWExLjI1LDEuMjUsMCwwLDEsMC0yLjVIMjZhMSwxLDAsMCwxLDAsMkgyMi42OEE2LjIzLDYuMjMsMCwwLDEsMjMuODgsMTFaIi8+JyksTC5DbHJTaGFwZVdvbj0oMCxFLmNsckljb25TVkcpKCc8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLDE4SDI4Ljc1bC41LTJIMzNhMSwxLDAsMCwwLDAtMkgyOS43NGwyLjE3LTguNzZBMSwxLDAsMCwwLDMwLDQuNzZMMjcuNjgsMTRIMjEuMzFMMTksNC43NmExLDEsMCwwLDAtMS45NCwwTDE0Ljc5LDE0''@;'; + put 'put ''SDguNDJMNi4xMyw0Ljc2YTEsMSwwLDAsMC0xLjk0LjQ4TDYuMzYsMTRIM2ExLDEsMCwwLDAsMCwySDYuODVsLjUsMkgzYTEsMSwwLDAsMCwwLDJINy44NGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBMMTUuMzYsMjBoNS4zOGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBMMjguMjUs''@;'; + put 'put ''MjBIMzNhMSwxLDAsMCwwLDAtMlptLTUuODItMi0uNSwySDIyLjNsLS41LTJaTTE4LDkuMTYsMTkuMjUsMTRoLTIuNFpNOC45MSwxNmg1LjM4bC0uNSwySDkuNDFaTTExLjYsMjYuODQsOS45MSwyMEgxMy4zWk0xNS44NSwxOGwuNS0yaDMuMzlsLjUsMlptOC42NCw4Ljg0TDIyLjgsMjBoMy4z''@;'; + put 'put ''OVoiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIHBvaW50cz0iMTcuNzQgMTYgMTcuMjIgMTggMTguODUgMTggMTguMzIgMTYgMTcuNzQgMTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTIiIHBvaW50cz0iMTEuOTQgMTggMTQuNjMgMTggMTUuMTYgMTYgMTEuNDEgMTYgMTEuOTQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIHBvaW50cz0iMTMuMjkgMjMuMSAxNC4xIDIwIDEy''@;'; + put 'put ''LjQ3IDIwIDEzLjI5IDIzLjEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIHBvaW50cz0iMjEuNDQgMTggMjQuMTMgMTggMjQuNjYgMTYgMjAuOTEgMTYgMjEuNDQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIHBvaW50cz0iMjIuNzggMjMuMSAyMy42IDIwIDIxLjk3IDIwIDIyLjc4IDIzLjEiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0''@;'; + put 'put ''LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTI5LDIwSDI2LjE5TDI0LDI4LjMyYTEuMjUsMS4yNSwwLDAsMS0yLjQyLDBMMTkuMzgsMjBIMTYuNjlsLTIuMTksOC4zMmExLjI1LDEuMjUsMCwwLDEtMi40MiwwTDkuODgsMjBIN2ExLDEsMCwwLDEsMC0ySDkuMzVsLS41My0ySDdhMSwxLDAsMCwxLDAt''@;'; + put 'put ''Mkg4LjNsLTEtMy42OGExLjI1LDEuMjUsMCwwLDEsMi40Mi0uNjRMMTAuODgsMTRoNC44bDEuMTQtNC4zMmExLjI1LDEuMjUsMCwwLDEsMi40MiwwTDIwLjM4LDE0aDQuOGwxLjE0LTQuMzJhMS4yNSwxLjI1LDAsMCwxLDIuNDIuNjRsLTEsMy42OEgyOWExLDEsMCwwLDEsMCwySDI3LjI0bC0u''@;'; + put 'put ''NTMsMkgyOWExLDEsMCwwLDEsMCwyWiIvPicpLEwuQ2xyU2hhcGVZZW49KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS4zNCw0LjU1YTEsMSwwLDEsMC0xLjY3LTEuMUwxOCwxOC4yMyw4LjMzLDMuNDVhMSwx''@;'; + put 'put ''LDAsMCwwLTEuNjcsMS4xTDE3LDIwLjM1VjIyLjJIMTJhLjguOCwwLDAsMCwwLDEuNmg1djIuNEgxMmEuOC44LDAsMCwwLDAsMS42aDVWMzJhMSwxLDAsMCwwLDIsMFYyNy44aDVhLjguOCwwLDAsMCwwLTEuNkgxOVYyMy44aDVhLjguOCwwLDAsMCwwLTEuNkgxOVYyMC4zNVoiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTguMDcsNy45MUwxOS43NCwyMEgyMmExLDEsMCwwLDEsMCwySDE5LjI1djJIMjJhMSwxLDAsMCwxLDAsMkgxOS4yNXYy''@;'; + put 'put ''Ljc1YTEuMjUsMS4yNSwwLDAsMS0yLjUsMFYyNkgxNGExLDEsMCwxLDEsMC0yaDIuNzVWMjJIMTRhMSwxLDAsMSwxLDAtMmgyLjI2TDkuOTMsOS45MWExLjI1LDEuMjUsMCwxLDEsMi4xMi0xLjMzTDE4LDE4LjA4bDUuOTUtOS40OWExLjI1LDEuMjUsMCwxLDEsMi4xMiwxLjMzWiIvPicpLEwu''@;'; + put 'put ''Q2xyU2hhcGVCaXRjb2luPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC4xMSwxNi44OEE1LjQ5LDUuNDksMCwwLDAsMjEsN1Y0YTEsMSwwLDAsMC0yLDBWN0gxNlY0YTEsMSwwLDAsMC0yLDBWN0gxMWExLDEsMCwwLDAtMSwxVjI4YTEsMSwwLDAsMCwxLDFoM3YzYTEsMSwwLDAsMCwy''@;'; + put 'put ''LDBWMjloM3YzYTEsMSwwLDAsMCwyLDBWMjloLjA4QTYuMDcsNi4wNywwLDAsMCwyNywyMi44MXYtLjYyQTYuMjUsNi4yNSwwLDAsMCwyNC4xMSwxNi44OFpNMTIsOWg4LjY5YTMuNTksMy41OSwwLDAsMSwzLjQzLDIuMzZBMy41MSwzLjUxLDAsMCwxLDIwLjc5LDE2SDEyWk0yNSwyMi44MUE0''@;'; + put 'put ''LjA4LDQuMDgsMCwwLDEsMjEuMDYsMjdIMTJWMThoOS4wNkE0LjA4LDQuMDgsMCwwLDEsMjUsMjIuMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMS4xOCwxOC40N0gxNC41djZoNi42OGEyLjcsMi43LDAs''@;'; + put 'put ''MCwwLDIuNjMtMi43N3YtLjQ4QTIuNzEsMi43MSwwLDAsMCwyMS4xOCwxOC40N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMsMTMuNzVhMi4yNCwyLjI0LDAsMCwwLTIuMjMtMi4yNUgxNC41VjE2aDYuM0EyLjIy''@;'; + put 'put ''LDIuMjIsMCwwLDAsMjMsMTMuNzVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptOC4zMSwxOS43M0E1LjIyLDUuMjIsMCwwLDEsMjEuMTgsMjdI''@;'; + put 'put ''MjF2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTd2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTMuMjVBMS4yNSwxLjI1LDAsMCwxLDEyLDI1Ljc1VjE3LjIzaDB2LTdBMS4yNSwxLjI1LDAsMCwxLDEzLjI1LDlIMTVWNy4wN2ExLDEsMCwwLDEsMiwwVjloMlY3LjA3YTEsMSwwLDAsMSwyLDBWOWE0Ljcy''@;'; + put 'put ''LDQuNzIsMCwwLDEsMy4yLDgsNS4zMSw1LjMxLDAsMCwxLDIuMTEsNC4yNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZUNvaW5CYWc9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIxLjYsMjlhMSwxLDAsMCwwLTEtMWgtNmExLDEs''@;'; + put 'put ''MCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjIuNTQsMjRoLTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMiIgLz48cGF0aCBkPSJNMjIsMzJIMTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIuNywzMmgtN2ExLDEsMCwwLDAsMCwyaDdhMSwxLDAsMCwwLDAtMloiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMy43LDI4aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjc0LDI2YTI4LDI4LDAs''@;'; + put 'put ''MCwwLTIuODItMTAuMTJBMjAuMjQsMjAuMjQsMCwwLDAsMjQuNiw4LjcxTDI3LDMuNDJhMSwxLDAsMCwwLS4wNy0xQTEsMSwwLDAsMCwyNi4xMywySDkuOGExLDEsMCwwLDAtLjkxLDEuNDJsMi40NSw1LjMxYTIwLjMzLDIwLjMzLDAsMCwwLTYuMjgsNy4xNWMtMi4xNSw0LTIuODIsOC44OS0z''@;'; + put 'put ''LDEyLjI4YTMuNiwzLjYsMCwwLDAsMSwyLjcxQTMuNzksMy43OSwwLDAsMCw1LjgsMzEuOTRIMTJWMzBINS43MmExLjY4LDEuNjgsMCwwLDEtMS4yMS0uNTIsMS42MiwxLjYyLDAsMCwxLS40NS0xLjIzYy4xNC0yLjYxLjY5LTcuNTgsMi43Ni0xMS40NUExOCwxOCwwLDAsMSwxMy4wOCwxMGgx''@;'; + put 'put ''YTMwLjgxLDMwLjgxLDAsMCwwLTEuODcsMi45MiwyMi43OCwyMi43OCwwLDAsMC0xLjQ3LDMuMzRsMS4zNy45MmEyNCwyNCwwLDAsMSwxLjQ5LTMuNDdBMjkuMSwyOS4xLDAsMCwxLDE2LjA1LDEwaDFhMjEuNDUsMjEuNDUsMCwwLDEsMS40MSw1LDIyLjU0LDIyLjU0LDAsMCwxLC4zMiwzLjg2''@;'; + put 'put ''bDEuNTgtMS4xMWEyNC4xNSwyNC4xNSwwLDAsMC0uMzItM0EyNC44MiwyNC44MiwwLDAsMCwxOC43NiwxMGguNzhsLjkxLTJIMTMuMjFMMTEuMzYsNEgyNC41N2wtMi41LDUuNDdhOS45Myw5LjkzLDAsMCwxLDEuMjMuNzgsMTguNjMsMTguNjMsMCwwLDEsNS44Niw2LjU3QTI2LjU5LDI2LjU5''@;'; + put 'put ''LDAsMCwxLDMxLjczLDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgPHBhdGggZD0iTTI0Ljg5LDI2aDcuODZjLS42Ni04LjcxLTQuNDEtMTQuMTItOS4yMi0xNy4zMkwyNS43MiwzLjlhMSwxLDAsMCwwLS45MS0xLjRIMTEuMWExLDEsMCww''@;'; + put 'put ''LDAtLjkxLDEuNGwxLjIsMi42SDIxLjUxbC0uOSwySDE4Ljc2QTI0LjksMjQuOSwwLDAsMSwyMCwxMy4xOWEyNC40OSwyNC40OSwwLDAsMSwuMzIsM2wtMS41OCwxLjExYTIyLjU0LDIyLjU0LDAsMCwwLS4zMi0zLjg2QTIxLjc0LDIxLjc0LDAsMCwwLDE3LDguNWgtMWEyOC4yMiwyOC4yMiww''@;'; + put 'put ''LDAsMC0yLjQ4LDMuNywyMy45MSwyMy45MSwwLDAsMC0xLjQ5LDMuNDZsLTEuMzctLjkxYTIyLjc4LDIyLjc4LDAsMCwxLDEuNDctMy4zNEEzMC44MSwzMC44MSwwLDAsMSwxNC4wNSw4LjVIMTIuM2wuMDguMTdDNy4wOCwxMi4yLDMuMDUsMTguNCwzLjA1LDI4Ljc1QTEuNjUsMS42NSwwLDAs''@;'; + put 'put ''MCw0LjYxLDMwLjVoOEEyLjY3LDIuNjcsMCwwLDEsMTQuMjEsMjZhMi42NywyLjY3LDAsMCwxLS4zNy0xLjM0LDIuNywyLjcsMCwwLDEsMi43LTIuN2g2YTIuNywyLjcsMCwwLDEsMi43LDIuN0EyLjYzLDIuNjMsMCwwLDEsMjQuODksMjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMS42LDI4LjVhMSwxLDAsMCwwLTEtMWgtNmExLDEsMCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjguNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjU0LDIzLjVoLTZhMSwxLDAsMCwwLDAs''@;'; + put 'put ''Mmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwzMS41SDE2YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJN''@;'; + put 'put ''MzIuNywzMS41aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMuNywyNy41aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtNiIgLz4nKSxMLkNsclNoYXBlUGVzbz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMTMuMkgyNy44OUE2LjgxLDYuODEsMCwwLDAsMjgsMTJhNy44NSw3Ljg1LDAsMCwwLS4xLTEuMTloMi45M2EuOC44LDAsMCwwLDAtMS42SDI3LjQ2QTguNDQsOC40NCwwLDAs''@;'; + put 'put ''MCwxOS41Nyw0SDExYTEsMSwwLDAsMC0xLDFWOS4ySDdhLjguOCwwLDAsMCwwLDEuNmgzdjIuNEg3YS44LjgsMCwwLDAsMCwxLjZoM1YzMWExLDEsMCwwLDAsMiwwVjIwaDcuNTdhOC40NSw4LjQ1LDAsMCwwLDcuODktNS4ySDMxYS44LjgsMCwwLDAsMC0xLjZaTTEyLDZoNy41N2E2LjUxLDYu''@;'; + put 'put ''NTEsMCwwLDEsNS42OCwzLjJIMTJabTAsNC44SDI1Ljg3YTUuNiw1LjYsMCwwLDEsMCwyLjRIMTJaTTE5LjU3LDE4SDEyVjE0LjhIMjUuMjVBNi41MSw2LjUxLDAsMCwxLDE5LjU3LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE0''@;'; + put 'put ''LjE4LDEzLjhWMTZoOS40NWE1LjI2LDUuMjYsMCwwLDAsLjA4LS44OSw0LjcyLDQuNzIsMCwwLDAtLjItMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE0LjE4LDE5LjdoNS4xOWE0LjI4LDQuMjgsMCwwLDAsMy41LTEuOUgxNC4xOFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE5LjM3LDEwLjUxSDE0LjE4VjEyaDguMzdBNC4yMSw0LjIxLDAsMCwwLDE5LjM3LDEwLjUxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMTcuNjcs''@;'; + put 'put ''MmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxNy42NywyWm0xMC41LDE1LjhIMjUuN2E2Ljg3LDYuODcsMCwwLDEtNi4zMyw0LjRIMTQuMTh2Ni41NGExLjI1LDEuMjUsMCwxLDEtMi41LDBWMTcuOEg4Ljc2YS45LjksMCwxLDEsMC0xLjhoMi45MlYxMy44SDguNzZhLjkuOSwwLDEs''@;'; + put 'put ''MSwwLTEuOGgyLjkyVjkuMjZBMS4yNSwxLjI1LDAsMCwxLDEyLjkzLDhoNi40NGE2Ljg0LDYuODQsMCwwLDEsNi4xNSw0aDIuNjVhLjkuOSwwLDAsMSwwLDEuOEgyNi4wOWE2LjkxLDYuOTEsMCwwLDEsLjEyLDEuMyw2LjgsNi44LDAsMCwxLS4wNi45aDJhLjkuOSwwLDAsMSwwLDEuOFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZVJ1YmxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC41NywyMEE4LjIzLDguMjMsMCwwLDAsMjksMTJhOC4yMyw4LjIzLDAsMCwwLTguNDMtOEgxMmExLDEsMCwwLDAtMSwxVjE4SDlhMSwx''@;'; + put 'put ''LDAsMCwwLDAsMmgydjJIOWExLDEsMCwwLDAsMCwyaDJ2N2ExLDEsMCwwLDAsMiwwVjI0aDlhMSwxLDAsMCwwLDAtMkgxM1YyMFpNMTMsNmg3LjU3QTYuMjQsNi4yNCwwLDAsMSwyNywxMmE2LjIzLDYuMjMsMCwwLDEtNi40Myw2SDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIwLjc1LDkuMjVIMTV2OC44MWg1Ljc5YTQuNjYsNC42NiwwLDAsMCw0Ljg2LTQuNEE0LjY1LDQuNjUsMCwwLDAsMjAuNzUsOS4yNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDJBMTYsMTYs''@;'; + put 'put ''MCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMi43NSwxOC41NkgxNVYyMmg4LjI5YTEsMSwwLDAsMSwwLDJIMTV2NWExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjRIMTEuMjVhMSwxLDAsMCwxLDAtMmgxLjIxVjIwLjU2SDExLjI1YTEuMjUsMS4yNSwwLDAsMSwwLTIuNWgxLjIxVjhhMS4y''@;'; + put 'put ''NSwxLjI1LDAsMCwxLDEuMjUtMS4yNWg3YTcuMTQsNy4xNCwwLDAsMSw3LjM2LDYuOUE3LjE1LDcuMTUsMCwwLDEsMjAuNzUsMjAuNTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVFbXBsb3llZUdyb3VwPSgwLEUuY2xySWNvblNWRyko''@;'; + put 'put ''JzxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMuN0EzLjc0LDMuNzQsMCwwLDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMuN0EzLjc0LDMuNzQsMCwwLDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMS45MSwxNy42NWEyMC42LDIwLjYsMCwwLDAtMTMsMkExLjc3LDEuNzcsMCwwLDAsOCwyMS4yNXYzLjU2YTEsMSwwLDAsMCwyLDBWMjEuMzhhMTguOTIsMTguOTIsMCwwLDEsMTItMS42OFoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMywyMkgyNi4zVjIwLjUyYTEsMSwwLDAsMC0yLDBWMjJIMTdhMSwxLDAsMCwwLTEsMVYzM2ExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWMjNBMSwxLDAsMCwwLDMzLDIyWk0zMiwzMkgxOFYyNGg2LjN2''@;'; + put 'put ''LjQxYTEsMSwwLDAsMCwyLDBWMjRIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cmVjdCB4PSIyMS44MSIgeT0iMjcuNDIiIHdpZHRoPSI1Ljk2IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTUiLz5cbiAgPHBhdGggZD0iTTEwLjg0LDEyLjI0YTE4LDE4LDAsMCwwLTcuOTUsMkExLjY3LDEuNjcsMCwwLDAsMiwxNS43MXYzLjFhMSwxLDAsMCwwLDIsMHYtMi45YTE2LDE2LDAsMCwxLDcuNTgtMS42N0E3LjI4LDcuMjgsMCwwLDEsMTAuODQsMTIuMjRaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzMuMTEsMTQuMjNhMTcuOCwxNy44LDAsMCwwLTcuMTItMiw3LjQ2LDcuNDYsMCwwLDEtLjczLDJBMTUuODksMTUuODksMCwwLDEsMzIsMTUuOTF2Mi45YTEsMSwwLDEsMCwyLDB2LTMuMUExLjY3LDEuNjcsMCwwLDAs''@;'; + put 'put ''MzMuMTEsMTQuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cGF0aCBkPSJNMTAuNjYsMTAuNjFjMC0uMjMsMC0uNDUsMC0uNjdhMy4wNywzLjA3LDAsMCwxLC41NC02LjExLDMuMTUsMy4xNSwwLDAsMSwyLjIuODksOC4xNiw4LjE2LDAsMCwx''@;'; + put 'put ''LDEuNy0xLjA4LDUuMTMsNS4xMywwLDAsMC05LDMuMjcsNS4xLDUuMSwwLDAsMCw0LjcsNUE3LjQyLDcuNDIsMCwwLDEsMTAuNjYsMTAuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIvPlxuICA8cGF0aCBkPSJNMjQuNzcsMS44M2E1LjE3LDUuMTcsMCww''@;'; + put 'put ''LDAtMy42OSwxLjU1LDcuODcsNy44NywwLDAsMSwxLjksMSwzLjE0LDMuMTQsMCwwLDEsNC45MywyLjUyLDMuMDksMy4wOSwwLDAsMS0xLjc5LDIuNzcsNy4xNCw3LjE0LDAsMCwxLC4wNi45Myw3Ljg4LDcuODgsMCwwLDEtLjEsMS4yLDUuMSw1LjEsMCwwLDAsMy44My00LjlBNS4xMiw1LjEy''@;'; + put 'put ''LDAsMCwwLDI0Ljc3LDEuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICBcbiAgPGVsbGlwc2UgY3g9IjE4IiBjeT0iMTEuMjgiIHJ4PSI0Ljc2IiByeT0iNC43IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxw''@;'; + put 'put ''YXRoIGQ9Ik0xMC43OCwxMS43NWMuMTYsMCwuMzIsMCwuNDgsMCwwLS4xNSwwLS4yOCwwLS40M2E2LjcsNi43LDAsMCwxLDMuNzUtNiw0LjYyLDQuNjIsMCwxLDAtNC4yMSw2LjQ2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjQuNzYs''@;'; + put 'put ''MTEuMjhjMCwuMTUsMCwuMjgsMCwuNDMuMTYsMCwuMzIsMCwuNDgsMEE0LjU4LDQuNTgsMCwxLDAsMjEsNS4yOSw2LjcsNi43LDAsMCwxLDI0Ljc2LDExLjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMjIuMjksMTYuNDVhMjEuNDUs''@;'; + put 'put ''MjEuNDUsMCwwLDEsNS43MSwyLDIuNzEsMi43MSwwLDAsMSwuNjguNTNIMzRWMTUuNTZhLjcyLjcyLDAsMCwwLS4zOC0uNjQsMTgsMTgsMCwwLDAtOC40LTIuMDVsLS42NiwwQTYuNjYsNi42NiwwLDAsMSwyMi4yOSwxNi40NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTQiLz5cbiAgPHBhdGggZD0iTTYuNTMsMjAuOTJBMi43NiwyLjc2LDAsMCwxLDgsMTguNDdhMjEuNDUsMjEuNDUsMCwwLDEsNS43MS0yLDYuNjYsNi42NiwwLDAsMS0yLjI3LTMuNTVsLS42NiwwYTE4LDE4LDAsMCwwLTguNCwyLjA1LjcyLjcyLDAsMCwwLS4zOC42NFYyMkg2LjUzWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICA8cmVjdCB4PSIyMS40NiIgeT0iMjYuNjkiIHdpZHRoPSI1Ljk2IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzIuODEsMjEuMjZIMjUuOTR2''@;'; + put 'put ''LTFhMSwxLDAsMCwwLTIsMHYxSDIyVjE4LjQzQTIwLjE3LDIwLjE3LDAsMCwwLDE4LDE4YTE5LjI3LDE5LjI3LDAsMCwwLTkuMDYsMi4yMi43Ni43NiwwLDAsMC0uNDEuNjh2NS42MWg3LjExdjYuMDlhMSwxLDAsMCwwLDEsMUgzMi44MWExLDEsMCwwLDAsMS0xVjIyLjI2QTEsMSwwLDAsMCwz''@;'; + put 'put ''Mi44MSwyMS4yNlptLTEsMTAuMzZIMTcuNjRWMjMuMjZoNi4zdi45MWExLDEsMCwwLDAsMiwwdi0uOTFoNS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTciLz4nKSxMLkNsclNoYXBlRW1wbG95ZWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LjQzLDE2''@;'; + put 'put ''LjY5YTcsNywwLDEsMSw3LTdBNyw3LDAsMCwxLDE2LjQzLDE2LjY5Wm0wLTExLjkyYTUsNSwwLDEsMCw1LDVBNSw1LDAsMCwwLDE2LjQzLDQuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjIsMTcuOUEyNS40MSwyNS40MSww''@;'; + put 'put ''LDAsMCw1Ljg4LDE5LjU3YTQuMDYsNC4wNiwwLDAsMC0yLjMxLDMuNjhWMjkuMmExLDEsMCwxLDAsMiwwVjIzLjI1YTIsMiwwLDAsMSwxLjE2LTEuODYsMjIuOTEsMjIuOTEsMCwwLDEsOS43LTIuMTEsMjMuNTgsMjMuNTgsMCwwLDEsNS41Ny42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIyLjE0IiB5PSIyNy40MSIgd2lkdGg9IjYuMTQiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMzMuMTcsMjEuNDdIMjh2Mmg0LjE3djguMzdIMThW''@;'; + put 'put ''MjMuNDdoNi4zdi40MmExLDEsMCwwLDAsMiwwVjIwYTEsMSwwLDAsMC0yLDB2MS40N0gxN2ExLDEsMCwwLDAtMSwxVjMyLjg0YTEsMSwwLDAsMCwxLDFIMzMuMTdhMSwxLDAsMCwwLDEtMVYyMi40N0ExLDEsMCwwLDAsMzMuMTcsMjEuNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtNCIvPlxuICBcbiAgPGNpcmNsZSBjeD0iMTYuODYiIGN5PSI5LjczIiByPSI2LjQ2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxyZWN0IHg9IjIxIiB5PSIyOCIgd2lkdGg9IjciIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xNSwzMHYzYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVYyM2ExLDEsMCwwLDAtMS0xSDI2VjIwLjUzYTEsMSwwLDAsMC0yLDBWMjJIMjJWMTguNDJBMzIuMTIsMzIuMTIsMCwwLDAsMTYuODYsMThhMjYsMjYsMCww''@;'; + put 'put ''LDAtMTEsMi4zOSwzLjI4LDMuMjgsMCwwLDAtMS44OCwzVjMwWm0xNywySDE3VjI0aDd2LjQyYTEsMSwwLDAsMCwyLDBWMjRoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxMLkNsclNoYXBlRmFjdG9yeT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJN''@;'; + put 'put ''MzMuNDcsNy4zN2ExLDEsMCwwLDAtMSwuMDZMMjMsMTMuNzdWOC4yNmExLDEsMCwwLDAtMS42NC0uNzdMMTMuNDgsMTRIMTBWNC42MmExLDEsMCwwLDAtLjc4LTFsLTQtLjlhMSwxLDAsMCwwLS44NS4yQTEsMSwwLDAsMCw0LDMuNzNWMTRIM2ExLDEsMCwwLDAtMSwxVjMxYTEsMSwwLDAsMCwx''@;'; + put 'put ''LDFIMzNhMSwxLDAsMCwwLDEtMVY4LjI2QTEsMSwwLDAsMCwzMy40Nyw3LjM3Wk02LDVsMiwuNDRWMTRINlpNMzIsMzBINFYxNmg5LjgzYTEsMSwwLDAsMCwuNjQtLjIzTDIxLDEwLjM3djUuMjhhMSwxLDAsMCwwLDEuNTYuODNMMzIsMTAuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSI2IiB5PSIxNy45OSIgd2lkdGg9IjgiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0iNiIgeT0iMjEuOTkiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxyZWN0IHg9IjYiIHk9IjI1Ljk5IiB3aWR0aD0iOCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cmVjdCB4PSIxOSIgeT0iMTguOTkiIHdpZHRoPSIyIiBo''@;'; + put 'put ''ZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxyZWN0IHg9IjE5IiB5PSIyNC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgPHJlY3QgeD0iMjMiIHk9''@;'; + put 'put ''IjE4Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cmVjdCB4PSIyMyIgeT0iMjQuOTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+''@;'; + put 'put ''XG4gIDxyZWN0IHg9IjI3IiB5PSIxOC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgPHJlY3QgeD0iMjciIHk9IjI0Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMTAiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0zMi40NSw4LjQ0LDIyLDE1LjNWOS41MWExLDEsMCwwLDAtMS42My0uNzhMMTQuMDcsMTRIMTBWNC4wNkw0LDIuNzFWMTRIMlYzMWExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWOS4yN0ExLDEsMCwwLDAsMzIuNDUs''@;'; + put 'put ''OC40NFpNMTQsMjlINlYyN2g4Wm0wLTRINlYyM2g4Wm0wLTRINlYxOWg4Wm04LDhIMjBWMjZoMlptMC02SDIwVjIwaDJabTQsNkgyNFYyNmgyWm0wLTZIMjRWMjBoMlptNCw2SDI4VjI2aDJabTAtNkgyOFYyMGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicp''@;'; + put 'put ''LEwuQ29tbWVyY2VTaGFwZXM9e2NhbGN1bGF0b3I6TC5DbHJTaGFwZUNhbGN1bGF0b3IsInBpZ2d5LWJhbmsiOkwuQ2xyU2hhcGVQaWdneUJhbmssInNob3BwaW5nLWJhZyI6TC5DbHJTaGFwZVNob3BwaW5nQmFnLCJzaG9wcGluZy1jYXJ0IjpMLkNsclNoYXBlU2hvcHBpbmdDYXJ0LHdhbGxl''@;'; + put 'put ''dDpMLkNsclNoYXBlV2FsbGV0LHN0b3JlOkwuQ2xyU2hhcGVTdG9yZSxldXJvOkwuQ2xyU2hhcGVFdXJvLGRvbGxhcjpMLkNsclNoYXBlRG9sbGFyLHBlc286TC5DbHJTaGFwZVBlc28sImNyZWRpdC1jYXJkIjpMLkNsclNoYXBlQ3JlZGl0Q2FyZCxiYW5rOkwuQ2xyU2hhcGVCYW5rLCJkb2xs''@;'; + put 'put ''YXItYmlsbCI6TC5DbHJTaGFwZURvbGxhckJpbGwsImUtY2hlY2siOkwuQ2xyU2hhcGVFQ2hlY2sscG91bmQ6TC5DbHJTaGFwZVBvdW5kLHJ1cGVlOkwuQ2xyU2hhcGVSdXBlZSx3b246TC5DbHJTaGFwZVdvbix5ZW46TC5DbHJTaGFwZVllbixiaXRjb2luOkwuQ2xyU2hhcGVCaXRjb2luLHJ1''@;'; + put 'put ''YmxlOkwuQ2xyU2hhcGVSdWJsZSwiY29pbi1iYWciOkwuQ2xyU2hhcGVDb2luQmFnLCJlbXBsb3llZS1ncm91cCI6TC5DbHJTaGFwZUVtcGxveWVlR3JvdXAsZW1wbG95ZWU6TC5DbHJTaGFwZUVtcGxveWVlLGZhY3Rvcnk6TC5DbHJTaGFwZUZhY3Rvcnl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShMLkNvbW1lcmNlU2hhcGVzLCJzYXZpbmdzIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29tbWVyY2VTaGFwZXNbInBpZ2d5LWJhbmsiXSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0''@;'; + put 'put ''eUljb25zLmFkZChMLkNvbW1lcmNlU2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLkNvcmVTaGFw''@;'; + put 'put ''ZXM9TC5DbHJTaGFwZUFycm93PUwuQ2xyU2hhcGVTdGVwRm9yd2FyZDI9TC5DbHJTaGFwZUV5ZUhpZGU9TC5DbHJTaGFwZUV5ZT1MLkNsclNoYXBlRXZlbnQ9TC5DbHJTaGFwZUNhbGVuZGFyPUwuQ2xyU2hhcGVBbmdsZURvdWJsZT1MLkNsclNoYXBlVmlld0NvbHVtbnM9TC5DbHJTaGFwZVNl''@;'; + put 'put ''YXJjaD1MLkNsclNoYXBlVm1CdWc9TC5DbHJTaGFwZUZpbHRlckdyaWRDaXJjbGU9TC5DbHJTaGFwZUZpbHRlckdyaWQ9TC5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWw9TC5DbHJTaGFwZUVsbGlwc2lzSG9yaXpvbnRhbD1MLkNsclNoYXBlQ2xvdWQ9TC5DbHJTaGFwZUltYWdlPUwuQ2xyU2hh''@;'; + put 'put ''cGVCZWxsPUwuQ2xyU2hhcGVGb2xkZXJPcGVuPUwuQ2xyU2hhcGVGb2xkZXI9TC5DbHJTaGFwZUFuZ2xlPUwuQ2xyU2hhcGVVc2VyPUwuQ2xyU2hhcGVCYXJzPUwuQ2xyU2hhcGVIZWxwSW5mbz1MLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkPUwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkPUwuQ2xy''@;'; + put 'put ''U2hhcGVTdWNjZXNzU3RhbmRhcmQ9TC5DbHJTaGFwZUluZm9TdGFuZGFyZD1MLkNsclNoYXBlSW5mb0NpcmNsZT1MLkNsclNoYXBlQ2hlY2tDaXJjbGU9TC5DbHJTaGFwZUV4Y2xhbWF0aW9uQ2lyY2xlPUwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlPUwuQ2xyU2hhcGVUaW1lcz1MLkNs''@;'; + put 'put ''clNoYXBlQ2hlY2s9TC5DbHJTaGFwZUNvZz1MLkNsclNoYXBlSG9tZT1MLkNsclNoYXBlVW5rbm93blN0YXR1cz12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMv''@;'; + put 'put ''c3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtMLkNsclNoYXBlVW5rbm93blN0YXR1cz0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTcuNTgiIGN5PSIyNi4yMyIgcj0iMS40Ii8+XG4gICAgICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC43LDEzYTUuMTgsNS4xOCwwLDAsMC0yLjE2LTMuNTYsNy4yNiw3LjI2LDAsMCwwLTUuNzEtMS4wOUExMS4zNCwxMS4zNCwwLDAsMCwxMiwxMC40NCwxLDEsMCwxLDAsMTMuMjYsMTJhOS4zMiw5''@;'; + put 'put ''LjMyLDAsMCwxLDMuOTQtMS43Miw1LjI5LDUuMjksMCwwLDEsNC4xNi43NCwzLjIxLDMuMjEsMCwwLDEsMS4zNSwyLjE5Yy4zMywyLjY5LTMuMTksMy43NS01LjMyLDQuMTRsLS44Mi4xNXY0LjM2YTEsMSwwLDAsMCwyLDBWMTkuMTdDMjQuNjEsMTcuNzksMjQuODgsMTQuNDEsMjQuNywxM1oi''@;'; + put 'put ''Lz4nKSxMLkNsclNoYXBlSG9tZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjcxLDE3LjI5bC0xNS0xNWExLDEsMCwwLDAtMS40MSwwbC0xNSwxNWExLDEsMCwwLDAsMS40MSwxLjQxTDE4LDQuNDEsMzIu''@;'; + put 'put ''MjksMTguNzFhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI4LDMyaC01VjIySDEzVjMySDhWMThMNiwyMFYzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiww''@;'; + put 'put ''LDAsMCwyLTJWMTkuNzZsLTItMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMsMTlhMSwxLDAsMCwxLS43MS0uMjlMMTgsNC40MSwzLjcxLDE4LjcxYTEsMSwwLDAsMS0xLjQxLTEuNDFsMTUtMTVhMSwxLDAs''@;'; + put 'put ''MCwxLDEuNDEsMGwxNSwxNUExLDEsMCwwLDEsMzMsMTlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE4LDcuNzksNiwxOS44M1YzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJWMTku''@;'; + put 'put ''NzZaIi8+JyksTC5DbHJTaGFwZUNvZz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjEsMTFjLTMuOSwwLTcsMy4xLTcsN3MzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03UzIyLDExLDE4LjEsMTF6IE0xOC4x''@;'; + put 'put ''LDIzYy0yLjgsMC01LTIuMi01LTVzMi4yLTUsNS01YzIuOCwwLDUsMi4yLDUsNVMyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC42LTEuNWwx''@;'; + put 'put ''LjQtMi42YzAuMy0wLjYsMC4yLTEuNC0wLjMtMS45bC0yLjQtMi40Yy0wLjUtMC41LTEuMy0wLjYtMS45LTAuM2wtMi42LDEuNGwtMS41LTAuNmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEu''@;'; + put 'put ''NiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42''@;'; + put 'put ''LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYs''@;'; + put 'put ''MS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiBNMzIsMTkuNGwtMy42LDEuMUwyOC4z''@;'; + put 'put ''LDIxYy0wLjMsMC43LTAuNiwxLjQtMC45LDIuMWwtMC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAu''@;'; + put 'put ''M2wtMy4zLDEuOGwtMi0ybDEuOC0zLjNsLTAuMy0wLjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQt''@;'; + put 'put ''MC43LDIuMi0wLjlsMC41LTAuMkwxNi42LDRoMi44bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS40LDAuNSwyLjEsMC45bDAuNSwwLjNsMy4zLTEuOGwyLDJsLTEuOCwzLjNsMC4zLDAuNWMwLjQsMC43LDAuNywxLjQsMC45LDIuMWwwLjEsMC41bDMuNiwxLjFWMTkuNHoiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4xLDE4YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdzLTMuMS03LTctN0MxNC4yLDExLDExLjEsMTQuMSwxMS4xLDE4eiBNMjMuMSwxOGMw''@;'; + put 'put ''LDIuOC0yLjIsNS01LDVjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVDMjAuOSwxMywyMy4xLDE1LjIsMjMuMSwxOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44LDE0''@;'; + put 'put ''LjdMMzAsMTMuOGwtMC4xLTAuM2MtMC44LDAtMS42LTAuMi0yLjQtMC40YzAuMywwLjYsMC42LDEuMywwLjgsMS45bDAuMSwwLjVsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUs''@;'; + put 'put ''MC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwtMC41LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAu''@;'; + put 'put ''NUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAuMi0wLjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy41TDIxLDcuN2MwLjcsMC4yLDEuMywwLjUsMS45''@;'; + put 'put ''LDAuOGMtMC4zLTAuOC0wLjQtMS42LTAuNC0yLjVsLTAuNC0wLjJsLTAuOS0yLjhDMjEsMi41LDIwLjQsMiwxOS43LDJoLTMuNGMtMC43LDAtMS4zLDAuNS0xLjQsMS4yTDE0LDZjLTAuNiwwLjEtMS4xLDAuMy0xLjYsMC42TDkuOCw1LjJDOS4yLDQuOSw4LjQsNSw3LjksNS41TDUuNSw3LjlD''@;'; + put 'put ''NSw4LjQsNC45LDkuMiw1LjIsOS44bDEuMywyLjVjLTAuMiwwLjUtMC40LDEuMS0wLjYsMS42bC0yLjgsMC45QzIuNSwxNSwyLDE1LjYsMiwxNi4zdjMuNGMwLDAuNywwLjUsMS4zLDEuMiwxLjVMNiwyMi4xbDAuNiwxLjVsLTEuNCwyLjZjLTAuMywwLjYtMC4yLDEuNCwwLjMsMS45bDIuNCwy''@;'; + put 'put ''LjRjMC41LDAuNSwxLjMsMC42LDEuOSwwLjNsMi42LTEuNGwxLjUsMC42bDAuOSwyLjljMC4yLDAuNiwwLjgsMS4xLDEuNSwxLjFoMy40YzAuNywwLDEuMy0wLjUsMS41LTEuMWwwLjktMi45bDEuNS0wLjZsMi42LDEuNGMwLjYsMC4zLDEuNCwwLjIsMS45LTAuM2wyLjQtMi40YzAuNS0wLjUs''@;'; + put 'put ''MC42LTEuMywwLjMtMS45bC0xLjQtMi42bDAuNi0xLjVsMi45LTAuOWMwLjYtMC4yLDEuMS0wLjgsMS4xLTEuNXYtMy40QzM0LDE1LjYsMzMuNSwxNC45LDMyLjgsMTQuN3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNywxNS40aC01LjN2MC4xbDMu''@;'; + put 'put ''NiwxLjF2Mi44bC0zLjYsMS4xTDI4LjMsMjFjLTAuMywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEtMy42TDE1LDI4LjNjLTAuNy0wLjMt''@;'; + put 'put ''MS40LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMsMS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMtMC41TDcuMSw5LjFsMi0ybDMuMiwx''@;'; + put 'put ''LjhsMC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4yLTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNGwxLjQtMi4zbC0wLjYtMkMyMSwyLjQsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUuMkM5''@;'; + put 'put ''LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIuNmMt''@;'; + put 'put ''MC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMsMS40''@;'; + put 'put ''LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTYsMzMuOSwxNS43LDMzLjcsMTUuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMC4yLDAsMC41LDAsMC43LDAuMWMtMC4yLTAuNi0wLjMtMS4zLTAuMi0yaC0wLjVjLTMuOSwwLTcsMy4xLTcsN2MwLDMuOSwzLjEsNyw3''@;'; + put 'put ''LDdjMy45LDAsNy0zLjEsNy03YzAtMC45LTAuMi0xLjgtMC41LTIuNmgtMi4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi41QzIzLjEsMjAuOCwyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNywwLDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAuNC0w''@;'; + put 'put ''LjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3LDEsMjYuOSwxLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjU3LDE1LjcybC0zLjM1LTFhMTEuNjUsMTEuNjUsMCwwLDAtLjk1LTIuMzNsMS42NC0z''@;'; + put 'put ''LjA3YS42MS42MSwwLDAsMC0uMTEtLjcyTDI3LjQxLDYuMmEuNjEuNjEsMCwwLDAtLjcyLS4xMUwyMy42NCw3LjcyYTExLjYyLDExLjYyLDAsMCwwLTIuMzYtMWwtMS0zLjMxQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYz''@;'; + put 'put ''LDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTEx''@;'; + put 'put ''LjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwu''@;'; + put 'put ''NTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0u''@;'; + put 'put ''NThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRn''@;'; + put 'put ''ZWQiIGQ9Ik0zMi41NywxNS43MmwtMy4zNS0xYTEyLjEyLDEyLjEyLDAsMCwwLS40Ny0xLjMyLDcuNDksNy40OSwwLDAsMS02LjE0LTYuMTYsMTEuODIsMTEuODIsMCwwLDAtMS4zMy0uNDhsLTEtMy4zMUEuNjEuNjEsMCwwLDAsMTkuNjksM0gxNi4zMWEuNjEuNjEsMCwwLDAtLjU4LjQzbC0x''@;'; + put 'put ''LDMuM2ExMS42MywxMS42MywwLDAsMC0yLjM4LDFsLTMtMS42MmEuNjEuNjEsMCwwLDAtLjcyLjExTDYuMiw4LjU5YS42MS42MSwwLDAsMC0uMTEuNzJsMS42MiwzYTExLjYzLDExLjYzLDAsMCwwLTEsMi4zN2wtMy4zMSwxYS42MS42MSwwLDAsMC0uNDMuNTh2My4zOGEuNjEuNjEsMCwwLDAs''@;'; + put 'put ''LjQzLjU4bDMuMzMsMWExMS42MiwxMS42MiwwLDAsMCwxLDIuMzNMNi4wOSwyNi42OWEuNjEuNjEsMCwwLDAsLjExLjcyTDguNTksMjkuOGEuNjEuNjEsMCwwLDAsLjcyLjExbDMuMDktMS42NWExMS42NSwxMS42NSwwLDAsMCwyLjMuOTRsMSwzLjM3YS42MS42MSwwLDAsMCwuNTguNDNoMy4z''@;'; + put 'put ''OGEuNjEuNjEsMCwwLDAsLjU4LS40M2wxLTMuMzhhMTEuNjMsMTEuNjMsMCwwLDAsMi4yOC0uOTRsMy4xMSwxLjY2YS42MS42MSwwLDAsMCwuNzItLjExbDIuMzktMi4zOWEuNjEuNjEsMCwwLDAsLjExLS43MmwtMS42Ni0zLjFhMTEuNjMsMTEuNjMsMCwwLDAsLjk1LTIuMjlsMy4zNy0xYS42''@;'; + put 'put ''MS42MSwwLDAsMCwuNDMtLjU4VjE2LjMxQS42MS42MSwwLDAsMCwzMi41NywxNS43MlpNMTgsMjMuNUE1LjUsNS41LDAsMSwxLDIzLjUsMTgsNS41LDUuNSwwLDAsMSwxOCwyMy41WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzIuNTcsMTUuNzIsMzEuNSwxNS40SDIy''@;'; + put 'put ''Ljg1QTUuNSw1LjUsMCwxLDEsMTgsMTIuNWE1LjUzLDUuNTMsMCwwLDEsLjY1LDBBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMi4wOS0zLjYyLS44Ni0yLjgzQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIu''@;'; + put 'put ''MzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYy''@;'; + put 'put ''LDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEt''@;'; + put 'put ''My4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFB''@;'; + put 'put ''LjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4y''@;'; + put 'put ''MywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlQ2hlY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9''@;'; + put 'put ''Ik0xMy43MiwyNy42OSwzLjI5LDE3LjI3YTEsMSwwLDAsMSwxLjQxLTEuNDFsOSw5TDMxLjI5LDcuMjlhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz4nKSxMLkNsclNoYXBlVGltZXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEiIGQ9Ik0xOS40MSwxOGw4LjI5LTguMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSw5LjcxLDguMjlBMSwxLDAsMCwwLDguMjksOS43MUwxNi41OSwxOCw4LjI5LDI2LjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTkuNDFsOC4yOSw4LjI5YTEsMSwwLDAsMCwxLjQxLTEuNDFa''@;'; + put 'put ''Ii8+JyksTC5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJpYW5nbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMS4zMmExLjMsMS4zLDAsMCwwLDEuMy0xLjNWMTRhMS4zLDEuMywwLDEsMC0yLjYsMHY2QTEu''@;'; + put 'put ''MywxLjMsMCwwLDAsMTgsMjEuMzJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgY3g9IjE3Ljk1IiBjeT0iMjQuMjciIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzAuMzMsMjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWm0tMS43OCwxLjk0YTEsMSwwLDAsMS0uODYuNDlIOC4yMWExLDEsMCww''@;'; + put 'put ''LDEtLjg4LTEuNDhMMTcuMDcsOC41NWExLDEsMCwwLDEsMS43NiwwbDkuNzQsMTcuOTRBMSwxLDAsMCwxLDI4LjU1LDI3LjQ4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZh''@;'; + put 'put ''MywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMsMywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQuNDNaTTE2LjQ2LDEyLjc0YTEuNDksMS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEuNDksMCwxLDEtMywwWk0xOCwyNi4yNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcy''@;'; + put 'put ''QTEuNzIsMS43MiwwLDAsMSwxOCwyNi4yNVoiLz4nKSxMLkNsclNoYXBlRXhjbGFtYXRpb25DaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCww''@;'; + put 'put ''LDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMC4wN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjN2LTZhMS4zLDEuMyww''@;'; + put 'put ''LDEsMSwyLjYsMHY2QTEuMywxLjMsMCwwLDEsMTgsMjAuMDdaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE3Ljk1IiBjeT0iMjMuMDIiIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0xLjQ5LDZhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSwwLDEsMS0zLDBaTTE4LDI1LjVhMS43MiwxLjcyLDAsMSwxLDEuNzIt''@;'; + put 'put ''MS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjUuNVoiLz4nKSxMLkNsclNoYXBlQ2hlY2tDaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4''@;'; + put 'put ''LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xNi4zNCwyMy43NGwtNS01YTEsMSwwLDAsMSwxLjQxLTEuNDFsMy41OSwzLjU5''@;'; + put 'put ''LDYuNzgtNi43OGExLDEsMCwwLDEsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwxOEExMiwxMiwwLDEsMSwxOCw2LDEyLDEyLDAsMCwxLDMwLDE4Wm0tNC43Ny0yLjE2YTEuNCwxLjQsMCww''@;'; + put 'put ''LDAtMi0ybC02Ljc3LDYuNzdMMTMsMTcuMTZhMS40LDEuNCwwLDAsMC0yLDJsNS40NSw1LjQ1WiIvPicpLEwuQ2xyU2hhcGVJbmZvQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiICBjeD0iMTcuOTMiIGN5''@;'; + put 'put ''PSIxMS45IiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgIGQ9Ik0yMSwyM0gxOVYxNUgxNmExLDEsMCwwLDAsMCwyaDF2NkgxNWExLDEsMCwxLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTIsNS4xNWEyLDIsMCwxLDEsMiwyQTIsMiwwLDAsMSwxNS45LDExLjE1Wk0yMywyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSww''@;'; + put 'put ''LDEsMSwwLTJoMlYxN0gxNmExLDEsMCwwLDEsMC0yaDR2OGgyQTEsMSwwLDAsMSwyMywyNFoiLz4nKSxMLkNsclNoYXBlSW5mb1N0YW5kYXJkPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxNy45NyIgY3k9''@;'; + put 'put ''IjEwLjQ1IiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTIxLDI1SDE5VjE0LjFIMTZhMSwxLDAsMCwwLDAsMmgxVjI1SDE1YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVptLS4xLDUuMjhhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTcuOSw3LjM4Wm0zLjYsMjEuMjVoLTdhMS40LDEuNCww''@;'; + put 'put ''LDEsMSwwLTIuOGgyLjF2LTkuMkgxNWExLjQsMS40LDAsMSwxLDAtMi44aDQuNHYxMmgyLjFhMS40LDEuNCwwLDEsMSwwLDIuOFoiLz4nKSxMLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBk''@;'; + put 'put ''PSJNMjgsMTIuMWExLDEsMCwwLDAtMS40MSwwTDE1LjQ5LDIzLjE1bC02LTZBMSwxLDAsMCwwLDgsMTguNTNMMTUuNDksMjYsMjgsMTMuNTJBMSwxLDAsMCwwLDI4LDEyLjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIg''@;'; + put 'put ''ZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMjguNDUsMTIuNjMsMTUuMzEsMjUuNzYsNy41NSwxOGExLjQsMS40LDAsMCwxLDItMmw1Ljc4LDUuNzhMMjYuNDcsMTAuNjVhMS40LDEuNCwwLDEsMSwyLDJaIi8+JyksTC5DbHJTaGFwZUVycm9yU3RhbmRhcmQ9''@;'; + put 'put ''KDAsRS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjYuMDYiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg''@;'; + put 'put ''ZD0iTTE4LDIyLjYxYTEsMSwwLDAsMS0xLTF2LTEyYTEsMSwwLDEsMSwyLDB2MTJBMSwxLDAsMCwxLDE4LDIyLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgs''@;'; + put 'put ''MTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCww''@;'; + put 'put ''LDE4LDIuMVpNMTYuNiw4LjhhMS40LDEuNCwwLDAsMSwyLjgsMHYxMmExLjQsMS40LDAsMCwxLTIuOCwwWk0xOCwyOC42YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI4LjZaIi8+JyksTC5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZD0oMCxFLmNsckljb25TVkcpKCc8''@;'; + put 'put ''Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwxLDAs''@;'; + put 'put ''MCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkExLDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNS4wNjIwNzgyLDEuNjgxMTk2IEMxNS42Mjk4ODE5LDAuNjQ5MjY2MzU1''@;'; + put 'put ''IDE2LjcxMDkwOTEsMC4wMTAyMjE5Mzk2IDE3Ljg4NSwwLjAxMDIyMTkzOTYgQzE5LjA1OTA5MDksMC4wMTAyMjE5Mzk2IDIwLjE0MDExODEsMC42NDkyNjYzNTUgMjAuNzA4NjQzMywxLjY4MjUyMTI5IEwzNC41OTg2NDQsMjcuMjQyNTIyNSBDMzUuMTQwNzc0NiwyOC4yNDAxMzk3IDM1LjEx''@;'; + put 'put ''NzQzNDUsMjkuNDQ5NTM3MyAzNC41MzcyMTYxLDMwLjQyNTQ5NDMgQzMzLjk1Njk5NzcsMzEuNDAxNDUxNCAzMi45MDU2NzEsMzEuOTk5Njk4NCAzMS43NywzMiBMNC4wMjIzOTMyMywzMS45OTk3NDkyIEMyLjg3NDA5MDA5LDMyLjAyNTQ2OTkgMS43OTkwMjg0MywzMS40Mzc1NzUzIDEuMjAx''@;'; + put 'put ''MDYzMzUsMzAuNDU2OTEyNiBDMC42MDMwOTgyNjUsMjkuNDc2MjQ5OSAwLjU3Mjc3Nzg5OSwyOC4yNTEzMTc5IDEuMTIyMDc4MTgsMjcuMjQxMTk2IEwxNS4wNjIwNzgyLDEuNjgxMTk2IFogTTIuODc4NTA3NjcsMjguMTk3NzI4MiBDMi42NzA2MDk2NiwyOC41ODAwMzc2IDIuNjgyMDk3NSwy''@;'; + put 'put ''OS4wNDQxNDIzIDIuOTA4NjU1NywyOS40MTU2OTc3IEMzLjEzNTIxMzksMjkuNzg3MjUzMiAzLjU0MjUzNTQsMzAuMDA5OTk1OSA0LDMwIEwzMS43Njk3MzQ0LDMwIEMzMi4xOTk5MTkxLDI5Ljk5OTg4NTggMzIuNTk4MjQ3OCwyOS43NzMyMjA4IDMyLjgxODA4MjEsMjkuNDAzNDQ4MiBDMzMu''@;'; + put 'put ''MDM3OTE2NCwyOS4wMzM2NzU3IDMzLjA0Njc1OTUsMjguNTc1NDU2NyAzMi44NDEzNTY3LDI4LjE5NzQ3ODcgTDE4Ljk1Mzg3MzksMi42NDIwODE5NSBDMTguNzM5NDIzNiwyLjI1MjM0NDM2IDE4LjMyOTg0MTksMi4wMTAyMjE5NCAxNy44ODUsMi4wMTAyMjE5NCBDMTcuNDQwNjg4OSwyLjAx''@;'; + put 'put ''MDIyMTk0IDE3LjAzMTU1MzgsMi4yNTE3NjY5MiAxNi44MTY4OTQ2LDIuNjQwNjg3NTMgTDIuODc4NTA3NjcsMjguMTk3NzI4MiBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LjYsMjkuMjEsMjAuNzEsMy42''@;'; + put 'put ''NWEzLjIyLDMuMjIsMCwwLDAtNS42NiwwTDEuMTcsMjkuMjFBMy4yMiwzLjIyLDAsMCwwLDQsMzRIMzEuNzdhMy4yMiwzLjIyLDAsMCwwLDIuODMtNC43NVpNMTYuNiwxMGExLjQsMS40LDAsMCwxLDIuOCwwdjEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI5Ljg1YTEuOCwxLjgsMCwxLDEs''@;'; + put 'put ''MS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI5Ljg1WiIvPicpLEwuQ2xyU2hhcGVIZWxwSW5mbz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMzksMjUuNDVhMSwxLDAsMCwwLTEuMzguMjljLTEuNDEsMi4xNi00LDQuODEtNi4zMSw1LjdzLTQuMTIuNTctNC44NCwwYy0uMzEtLjI3''@;'; + put 'put ''LTEuMTItMS0uNDMtMy40OS40Ni0xLjY2LDMuMzItOS40OCw0LTExLjM4bC0yLjE4LjI4Yy0uNjksMS44Ni0zLjI5LDguODQtMy43NiwxMC41OC0uNjgsMi40OS0uMzQsNC4zLDEuMDksNS41NkE1LjU5LDUuNTksMCwwLDAsMTUsMzRhOS41Myw5LjUzLDAsMCwwLDMuNDUtLjdjMi43OS0xLjA5''@;'; + put 'put ''LDUuNzItNC4xMiw3LjI2LTYuNDdBMSwxLDAsMCwwLDI1LjM5LDI1LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMywxMWE0LjUsNC41LDAsMSwwLTQuNS00LjVBNC41LDQuNSwwLDAsMCwxOS4zLDEx''@;'; + put 'put ''Wm0wLTdhMi41LDIuNSwwLDEsMS0yLjUsMi41QTIuNSwyLjUsMCwwLDEsMTkuMyw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuODEsMTVjLjA2LDAsNi4yNy0uODIsNy43My0xLC42NS0uMSwxLjE0LDAs''@;'; + put 'put ''MS4zLjE1cy4yMS44LS4wNywxLjY4Yy0uNjEsMS44Ni0zLjY5LDExLTQuNTksMTMuNzFhOCw4LDAsMCwwLDEuMjktLjM4LDcuMzIsNy4zMiwwLDAsMCwxLjE1LS42QzE5Ljg1LDI1LDIyLjE1LDE4LjEsMjIuNjcsMTYuNTJzLjM5LTIuNzgtLjMtMy42YTMuMTYsMy4xNiwwLDAsMC0zLjA4LS44''@;'; + put 'put ''M2MtMS40My4xNS03LjQ3Ljk0LTcuNzMsMWExLDEsMCwwLDAsLjI2LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjIwLjc1IiBjeT0iNiIgcj0iNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC44NCwyNi4yM2ExLDEsMCwwLDAtMS40LjI5LDE2LjYsMTYuNiwwLDAsMS0zLjUxLDMuNzdjLS4zMy4yNS0xLjU2LDEuMi0yLjA4LDEtLjM2LS4xMS0uMTUtLjgyLS4wOC0xLjEybC41My0xLjU3Yy4yMi0uNjQsNC4wNS0xMiw0''@;'; + put 'put ''LjQ3LTEzLjMuNjItMS45LjM1LTMuNzctMi40OC0zLjMyLS43Ny4wOC04LjU4LDEuMDktOC43MiwxLjFhMSwxLDAsMCwwLC4xMywyczMtLjM5LDMuMzMtLjQyYS44OC44OCwwLDAsMSwuODUuNDQsMi40NywyLjQ3LDAsMCwxLS4wNywxLjcxYy0uMjYsMS00LjM3LDEyLjU4LTQuNSwxMy4yNWEy''@;'; + put 'put ''Ljc4LDIuNzgsMCwwLDAsMS4xOCwzLDUsNSwwLDAsMCwzLjA4LjgzaDBhOC41Myw4LjUzLDAsMCwwLDMuMDktLjYyYzIuNDktMSw1LjA5LTMuNjYsNi40Ni01Ljc1QTEsMSwwLDAsMCwyNC44NCwyNi4yM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5D''@;'; + put 'put ''bHJTaGFwZUJhcnM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwyOUg0YTEsMSwwLDAsMSwwLTJIMzJhMSwxLDAsMCwxLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDE5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzIsOUg0QTEsMSwwLDAsMSw0LDdI''@;'; + put 'put ''MzJhMSwxLDAsMCwxLDAsMloiLz4nKSxMLkNsclNoYXBlVXNlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMSwwLTctN0E3LDcsMCwwLDAsMTgsMTdaTTE4LDVhNSw1LDAsMSwxLTUsNUE1LDUsMCwwLDEsMTgsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3YTE3LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjks''@;'; + put 'put ''MzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwyMiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4xNiwwLDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0VjMx''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjZhNSw1LDAsMSwxLDEuMjQtOC40MmwxLTEuNzZBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAs''@;'; + put 'put ''MiwySDI5YTIsMiwwLDAsMCwyLTJWMjUuNzRBMiwyLDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEtNSw1QTUsNSwwLDAsMSwxOCw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0t''@;'; + put 'put ''YmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3''@;'; + put 'put ''LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjEwIiByPSI3IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCww''@;'; + put 'put ''LS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMy4xNi01LjQ3QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBh''@;'; + put 'put ''dGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC42MSwyNC41MmExNy4xNiwxNy4xNiwwLDAsMC0yNS4yMiwwLDEuNTEsMS41MSwwLDAsMC0uMzksMXY2QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNXYtNkEx''@;'; + put 'put ''LjUxLDEuNTEsMCwwLDAsMzAuNjEsMjQuNTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNyww''@;'; + put 'put ''LDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFwZUFuZ2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuNTIsMjIuNTIsMTgsMTAuNiw2LjQ4LDIyLjUyYTEuNywxLjcsMCwwLDAsMi40NSwyLjM2TDE4''@;'; + put 'put ''LDE1LjQ5bDkuMDgsOS4zOWExLjcsMS43LDAsMCwwLDIuNDUtMi4zNloiLz4nKSxMLkNsclNoYXBlRm9sZGVyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAs''@;'; + put 'put ''MCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNVYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUxYTcuNSw3LjUsMCwwLDEtMS4y''@;'; + put 'put ''OS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJN''@;'; + put 'put ''MzAsMTUuNFYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwy''@;'; + put 'put ''LDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4y''@;'; + put 'put ''OCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsOUgxNi40''@;'; + put 'put ''MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCww''@;'; + put 'put ''LDItMlYxNS40Wk02LDExVjdoNi40OWwyLjcyLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCww''@;'; + put 'put ''LDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJN''@;'; + put 'put ''MzAsMTMuNUE3LjUsNy41LDAsMCwxLDIzLjEzLDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDExVjdoNi40OWwyLjcyLDRa''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVGb2xkZXJPcGVuPSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAs''@;'; + put 'put ''LjgxLjQxSDMyYTIsMiwwLDAsMC0yLTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRa''@;'; + put 'put ''TTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSww''@;'; + put 'put ''LDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUyYTcuNDksNy40OSwwLDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2''@;'; + put 'put ''QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40aC0uM0wyOS41NSwyOUg2LjlsMy44OC0xMy44MWEuNjYuNjYsMCwwLDEsLjM4LS4yNGg5LjQyQTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5LDIu''@;'; + put 'put ''NTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjku''@;'; + put 'put ''NjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCwwLDEsMzMuNjgsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDls''@;'; + put 'put ''Mi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJhMiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42''@;'; + put 'put ''NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZhMy42MywzLjYzLDAsMCwx''@;'; + put 'put ''LS4yNi0uNTZIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoMi43M0EzLjY2LDMuNjYsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5''@;'; + put 'put ''LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFhMS42OCwxLjY4LDAsMCwwLC4wNy0uMzJBMy42NywzLjY3LDAsMCwxLDMzLjY4LDE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCww''@;'; + put 'put ''LDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1''@;'; + put 'put ''LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAsMCwxLTEuMzEtMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40''@;'; + put 'put ''MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0i''@;'; + put 'put ''MzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFwZUJlbGw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi41MSwyNy44M0ExNC40LDE0LjQsMCwwLDEsMzAsMjQuOWExMi42MywxMi42MywwLDAsMS0xLjM1''@;'; + put 'put ''LTQuODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAsMTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwxLTIuNDcsMi45MywxLDEs''@;'; + put 'put ''MCwwLDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEsMWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWk01LjEzLDI4Ljk0YTE2LjE3LDE2LjE3LDAsMCwwLDIuNDQtMywxNC4yNCwxNC4yNCwwLDAsMCwxLjY1LTUuODVWMTUuMTVhOC43NCw4Ljc0LDAsMSwx''@;'; + put 'put ''LDE3LjQ3LDB2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzQuMjhBMi42NywyLjY3LDAsMCww''@;'; + put 'put ''LDIwLjU4LDMySDE1LjMyQTIuNjcsMi42NywwLDAsMCwxOCwzNC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJI''@;'; + put 'put ''MTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjUxLDI3LjgzQTE0LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYzLDEy''@;'; + put 'put ''LjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OSw3LjQ0LDcuNDQsMCwwLDEtMi4yNC0uODQsOC44OSw4Ljg5LDAsMCwxLC40LDIuNjR2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzSDUuMTNh''@;'; + put 'put ''MTYuMTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0LjI0LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNUE4LjgsOC44LDAsMCwxLDE4LDYuMzFhOC42MSw4LjYxLDAsMCwxLDQuNzYsMS40NEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU4LDEwLjU4LDAsMCww''@;'; + put 'put ''LTMuMzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTMsMSwxLDAsMCwwLS4zNC43NXYxLjM2YTEsMSwwLDAsMCwxLDFo''@;'; + put 'put ''MjcuOGExLDEsMCwwLDAsMS0xVjI4LjU4QTEsMSwwLDAsMCwzMi41MSwyNy44M1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0i''@;'; + put 'put ''NSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1QTEwLjgxLDEwLjgxLDAs''@;'; + put 'put ''MCwwLDE5LjIxLDQuNFYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE1LjMyLDMyYTIuNjUsMi42NSwwLDAsMCw1LjI1LDBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1i''@;'; + put 'put ''YWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzIu''@;'; + put 'put ''ODUsMjguMTNsLS4zNC0uM0ExNC4zNywxNC4zNywwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OUE3LjUsNy41LDAsMCwxLDIyLjUsNmMwLS4yMSwwLS40MiwwLS42M2ExMC41NywxMC41NywwLDAsMC0zLjMy''@;'; + put 'put ''LTFWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42NywwVjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAsMCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzbC0uMzQuM3YyLjgySDMyLjg1WiIvPlxuICAgICAgICAgICAgICAgIDxj''@;'; + put 'put ''aXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxMLkNsclNoYXBlSW1hZ2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMw''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk00LDMwVjZIMzJWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguOTIsMTRhMywzLDAsMSwwLTMtM0EzLDMsMCwwLDAs''@;'; + put 'put ''OC45MiwxNFptMC00LjZBMS42LDEuNiwwLDEsMSw3LjMzLDExLDEuNiwxLjYsMCwwLDEsOC45Miw5LjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi43OCwxNS4zN2wtNS40LDUuNC00LTRhMSwxLDAsMCww''@;'; + put 'put ''LTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MUExLDEsMCwwLDAsMjIuNzgsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTExLjkzLDExYTMsMywwLDEsMC0zLDNBMywzLDAsMCwwLDExLjkzLDExWm0tNC42LDBhMS42LDEuNiwwLDEsMSwxLjYsMS42QTEuNiwxLjYsMCwwLDEsNy4zMywxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJh''@;'; + put 'put ''ZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjM4LDIwLjc3bC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MWExLDEsMCwwLDAtMS40MSwwWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMzBINFY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk04LjkyLDhhMywzLDAs''@;'; + put 'put ''MSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMwLDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OCw3LjQ4LDAsMCwxLDIyLjc4LDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNOC45Miw4YTMsMywwLDEsMS0z''@;'; + put 'put ''LDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZUNsb3VkPSgwLEUuY2xySWNvblNW''@;'; + put 'put ''RykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTQsMzNIMTAuNjJDNS42NywzMywxLDI4LjE5LDEsMjMuMWExMCwxMCwwLDAsMSw4LTkuNzUsMTAuMTksMTAuMTksMCwwLDEsMjAuMzMsMS4wNkExMC4wNywxMC4wNywwLDAsMSwyOSwx''@;'; + put 'put ''Ni42NmE4LjI5LDguMjksMCwwLDEsNiw4QzM1LDI5LjEsMzEuMzMsMzMsMjcuMTQsMzNaTTE5LjA5LDYuMjNhOC4yNCw4LjI0LDAsMCwwLTguMTksOGwwLC44Ny0uODYuMUE3Ljk0LDcuOTQsMCwwLDAsMywyMy4xYzAsNCwzLjc3LDcuOSw3LjYyLDcuOUgyNy4xNEMzMC4yMSwzMSwzMywyOCwz''@;'; + put 'put ''MywyNC42NWE2LjMxLDYuMzEsMCwwLDAtNS4zNy02LjI2bC0xLjE4LS4xOC4zOS0xLjEzQTguMTgsOC4xOCwwLDAsMCwxOS4wOSw2LjIzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIg''@;'; + put 'put ''ZD0iTTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ1LDcuNDUsMCwwLDEtMi4xLS41NCw4LDgsMCwwLDEtLjMsNC4xNmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5''@;'; + put 'put ''LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3YTguMjQsOC4yNCwwLDAsMSw4LjE5LThBOC4xMyw4LjEzLDAsMCwxLDIyLjU4LDdhNy41Myw3LjUzLDAsMCwxLS4wOC0xLDcuNTEsNy41MSwwLDAsMSwuMDktMS4x''@;'; + put 'put ''MkExMC4xMywxMC4xMywwLDAsMCwxOSw0LjIzLDEwLjI2LDEwLjI2LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTQsMTAuMTQsMCwwLDAsLjItMS4zaC0yYTguMjgsOC4yOCwwLDAsMS0uMzcsMS43MmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3''@;'; + put 'put ''LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3QTguMTYsOC4xNiwwLDAsMSwyMSw2LjQ3bDEtMS44QTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3''@;'; + put 'put ''LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1h''@;'; + put 'put ''bGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNEExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwy''@;'; + put 'put ''NC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNGMwLS4zMywwLS42NSww''@;'; + put 'put ''LTFhNy40NCw3LjQ0LDAsMCwxLTYuNi04LjU4QTEwLjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4''@;'; + put 'put ''LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTUsMTAuMTUsMCwwLDAsLjItMS4yNmgtN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwzLTUuMjFBMTAuMTksMTAuMTksMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAs''@;'; + put 'put ''MCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlRWxsaXBzaXNI''@;'; + put 'put ''b3Jpem9udGFsPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI0LjkiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIg''@;'; + put 'put ''cj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTIt''@;'; + put 'put ''LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbD0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjMxLjEiIHI9''@;'; + put 'put ''IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+Jyks''@;'; + put 'put ''TC5DbHJTaGFwZUZpbHRlckdyaWQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAsMCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAsMC0u''@;'; + put 'put ''MjkuN0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRBMS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEsMSwwLDAsMC0xLTFIOWExLDEsMCwwLDAtMSwxdjFhMS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik04LDExdjEuMTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVsMy45NSwxLjQxYS41LjUsMCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4xMi03''@;'; + put 'put ''LjI1YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4nKSxMLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAtLjI5LS43''@;'; + put 'put ''TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwxLDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAs''@;'; + put 'put ''MSwuMTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCwwLC4xNS0uMzVWMTFaIi8+JyksTC5DbHJTaGFwZVZtQnVnPSgwLEUuY2xySWNvblNWRykoJzxyZWN0IHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjMiIGZpbGw9IiNmZmZmZmYiIG9wYWNpdHk9IjAuMTUiIHN0eWxlPSJpc29sYXRpb246''@;'; + put 'put ''aXNvbGF0ZSIvPjxwYXRoIGQ9Ik0zLjc5LDE0LjgzYTEuMDksMS4wOSwwLDAsMC0xLjQ3LS41NiwxLjA5LDEuMDksMCwwLDAtLjU0LDEuNDlsMi40Nyw1LjRjLjM5Ljg1LjgsMS4yOSwxLjU3LDEuMjlTNywyMiw3LjM5LDIxLjE2bDIuMTctNC43N2EuMzMuMzMsMCwwLDEsLjMxLS4yLjM1LjM1''@;'; + put 'put ''LDAsMCwxLC4zNS4zNXY0LjYxYTEuMTUsMS4xNSwwLDAsMCwxLjE0LDEuMywxLjE3LDEuMTcsMCwwLDAsMS4xNy0xLjNWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTcsMS4xNywwLDEsMCwyLjMyLDBWMTcuMzhhMS4xNSwx''@;'; + put 'put ''LjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTYsMS4xNiwwLDEsMCwyLjMxLDBWMTYuODZhMi42OSwyLjY5LDAsMCwwLTIuNzgtMi42OSwzLjU3LDMuNTcsMCwwLDAtMi40NywxLjA1LDIuNzUsMi43NSwwLDAsMC0yLjM4LTEuMDVBMy45MywzLjkz''@;'; + put 'put ''LDAsMCwwLDEyLDE1LjIyYTIuODIsMi44MiwwLDAsMC0yLjA4LTEuMDVBMi41NSwyLjU1LDAsMCwwLDcuNCwxNS44OUw1LjgyLDE5LjYzbC0yLTQuOCIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0zMywxNC4xOEExLjE0LDEuMTQsMCwwLDAsMzEuOSwxNWwtMS4xOSwzLjczTDI5LjUsMTUu''@;'; + put 'put ''MDVhMS4xOCwxLjE4LDAsMCwwLTEuMTUtLjg3aC0uMWExLjIsMS4yLDAsMCwwLTEuMTUuODdsLTEuMTksMy43MS0xLjE4LTMuNzFhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjg3LDEuMDgsMS4wOCwwLDAsMC0xLjEyLDEuMDcsMS42OCwxLjY4LDAsMCwwLC4xLjU0bDIsNS43YTEuMjcsMS4yNyww''@;'; + put 'put ''LDAsMCwxLjI3LDEsMS4yNCwxLjI0LDAsMCwwLDEuMi0uOTNsMS4yLTMuNjQsMS4yLDMuNjRhMS4yNSwxLjI1LDAsMCwwLDEuMjYuOTNBMS4yNywxLjI3LDAsMCwwLDMyLDIxLjVMMzQsMTUuNzNhMS43NywxLjc3LDAsMCwwLC4wOC0uNDhBMS4wNywxLjA3LDAsMCwwLDMzLDE0LjE4WiIgZmls''@;'; + put 'put ''bD0iI2ZmZmZmZiIvPicpLEwuQ2xyU2hhcGVTZWFyY2g9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4zMyw1LjA1QTEwLjk1LDEwLjk1LDAsMSwxLDUuMzksMTYsMTEsMTEsMCwwLDEsMTYuMzMsNS4wNW0w''@;'; + put 'put ''LTIuMDVhMTMsMTMsMCwxLDAsMTMsMTMsMTMsMTMsMCwwLDAtMTMtMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zNSwzMy4yOWwtNy4zNy03LjQyLTEuNDIsMS40MSw3LjM3LDcuNDJBMSwxLDAsMSww''@;'; + put 'put ''LDM1LDMzLjI5WiIvPicpLEwuQ2xyU2hhcGVWaWV3Q29sdW1ucz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDVINUEyLDIsMCwwLDAsMyw3VjI5YTIsMiwwLDAsMCwyLDJIMzFhMiwyLDAsMCwwLDItMlY3''@;'; + put 'put ''QTIsMiwwLDAsMCwzMSw1Wk0xMywyOUg1VjdoOFptMTAsMEgxNVY3aDhaIi8+JyksTC5DbHJTaGFwZUFuZ2xlRG91YmxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjksMTkuNDFhMSwxLDAsMCwxLS43MS0u''@;'; + put 'put ''MjlMMTgsOC44Myw3LjcxLDE5LjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsNiwyOS43MSwxNy43MUExLDEsMCwwLDEsMjksMTkuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOSwzMC40MWExLDEs''@;'; + put 'put ''MCwwLDEtLjcxLS4yOUwxOCwxOS44Myw3LjcxLDMwLjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsMTcsMjkuNzEsMjguNzFBMSwxLDAsMCwxLDI5LDMwLjQxWiIvPicpLEwuQ2xyU2hhcGVDYWxlbmRhcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZa''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8''@;'; + put 'put ''cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjgiIHk9IjE5IiB3''@;'; + put 'put ''aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xMSIgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEyIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8''@;'; + put 'put ''cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNCIgZD0iTTEwLDEwYTEs''@;'; + put 'put ''MSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAs''@;'; + put 'put ''MCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAs''@;'; + put 'put ''MCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJh''@;'; + put 'put ''ZGdlZCIgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiIHg9IjIwIiB5PSIxOSIg''@;'; + put 'put ''d2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3Qg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xMS0tYmFkZ2VkIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9''@;'; + put 'put ''IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYmFkZ2VkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMTUtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1iYWRnZWQgY2xyLWktYmFk''@;'; + put 'put ''Z2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcu''@;'; + put 'put ''ODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjgiIHk9''@;'; + put 'put ''IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiB4PSI4IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC01LS1hbGVydGVkIiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0i''@;'; + put 'put ''MiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQiIHg9IjI2IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05''@;'; + put 'put ''LS1hbGVydGVkIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWFsZXJ0ZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0i''@;'; + put 'put ''MiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBvbHlnb24gcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAs''@;'; + put 'put ''MzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwxLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIu''@;'; + put 'put ''MiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYx''@;'; + put 'put ''NGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgyWm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJabTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAtNUgyNlYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjYsMTBhMSwxLDAs''@;'; + put 'put ''MCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5''@;'; + put 'put ''QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEEx''@;'; + put 'put ''Ljc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlpt''@;'; + put 'put ''MC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgs''@;'; + put 'put ''My42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4Wk0xMCwyNkg4VjI0aDJabTAt''@;'; + put 'put ''NUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm02LDVIMjZWMjRoMlptMC01SDI2VjE5aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlRXZlbnQ9KDAs''@;'; + put 'put ''RS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4xNywyNS44NiwxMC44MSwyMC41YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTYuMTcsMjNsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwz''@;'; + put 'put ''NCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBa''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuODEsMjAu''@;'; + put 'put ''NWw1LjM2LDUuMzZMMjYuMjIsMTUuODFhMSwxLDAsMCwwLTEuNDEtMS40MUwxNi4xNywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFk''@;'; + put 'put ''Z2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBI''@;'; + put 'put ''NFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSww''@;'; + put 'put ''LDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAsLjIz''@;'; + put 'put ''LS40MUgyMy44TDE2LjE3LDIzbC0zLjk0LTMuOTRhMSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMg''@;'; + put 'put ''OCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAu''@;'; + put 'put ''MTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9''@;'; + put 'put ''Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0xIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFW''@;'; + put 'put ''M2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0zMi4yNSw2aC00VjlhMi4yLDIuMiwwLDAsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5''@;'; + put 'put ''VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2Wk0yNS45NCwxNi41OGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAs''@;'; + put 'put ''MSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNB''@;'; + put 'put ''MSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyNi4zYTEuMzQsMS4zNCwwLDAsMS0uMzYsMS4xOGwtOS42''@;'; + put 'put ''Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOCw3LTdoLTFBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCww''@;'; + put 'put ''LDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''MS0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMCwxMy41QTcu''@;'; + put 'put ''NSw3LjUsMCwwLDEsMjIuNSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzAsMTMuNVpt''@;'; + put 'put ''LTQuMDYsMy4wOC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVFeWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjYyLDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMFM1LjM0LDExLjMsMiwxNy41M0wxLjcyLDE4bC4y''@;'; + put 'put ''Ni40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMHMxMi40Ni0zLjcyLDE1LjgyLTEwbC4yNi0uNDhaTTE3LjgsMjYuNDNDMTIuMTcsMjYuNDMsNywyMy4yOSw0LDE4YzMtNS4yOSw4LjE3LTguNDMsMTMuOC04LjQzUzI4LjU0LDEyLjcyLDMxLjU5LDE4QzI4LjU0LDIzLjI5LDIzLjQyLDI2''@;'; + put 'put ''LjQzLDE3LjgsMjYuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjA5LDExLjE3QTYuODYsNi44NiwwLDEsMCwyNSwxOCw2Ljg2LDYuODYsMCwwLDAsMTguMDksMTEuMTdabTAsMTEuNzJBNC44Niw0Ljg2''@;'; + put 'put ''LDAsMSwxLDIzLDE4LDQuODcsNC44NywwLDAsMSwxOC4wOSwyMi44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3''@;'; + put 'put ''LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTguNDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQs''@;'; + put 'put ''MjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4LjA5IiBjeT0iMTguMDMiIHI9IjYuODYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz4n''@;'; + put 'put ''KSxMLkNsclNoYXBlRXllSGlkZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMTksMjAuNEE2Ljc4LDYuNzgsMCwwLDAsMjUuNjIsMThhNi44Niw2Ljg2LDAsMCwwLTYuODYtNi44Niw2Ljc5LDYuNzksMCwwLDAtMi4zNy40M0wxOCwxMy4yM2E0Ljc4LDQuNzgsMCwwLDEsLjc0LS4w''@;'; + put 'put ''NkE0Ljg3LDQuODcsMCwwLDEsMjMuNjIsMThhNC43OSw0Ljc5LDAsMCwxLS4wNi43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2Ljgy''@;'; + put 'put ''LDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBhMTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQzYTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAs''@;'; + put 'put ''Ny4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOS43NSw5Ljc1LDYuNjUsNi42NWE0LjgxLDQuODEsMCwwLDEtMi41LjcyQTQuODcsNC44NywwLDAsMSwxMy45LDE4LDQuODEsNC44MSwwLDAsMSwxNC42MiwxNS41M1ptLTEuNDUtMS40NWE2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEu''@;'; + put 'put ''NiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMzcs''@;'; + put 'put ''MTEuMTdBNi43OSw2Ljc5LDAsMCwwLDE2LDExLjZsOC44LDguOEE2Ljc4LDYuNzgsMCwwLDAsMjUuMjMsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjM3LDExLjE3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LjI5LDE3''@;'; + put 'put ''LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMGExNi44MiwxNi44MiwwLDAsMC01LjI0Ljg1TDE0Ljg0LDEwYTE0Ljc4LDE0Ljc4LDAsMCwxLDMuNjMtLjQ3YzUuNjMsMCwxMC43NSwzLjE0LDEzLjgsOC40M2ExNy43NSwxNy43NSwwLDAsMS00LjM3LDUuMWwxLjQyLDEuNDJhMTkuOTMs''@;'; + put 'put ''MTkuOTMsMCwwLDAsNS02bC4yNi0uNDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDku''@;'; + put 'put ''MjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOC4zLDguM2E2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4y''@;'; + put 'put ''OSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxMLkNsclNoYXBlU3RlcEZvcndhcmQyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik03LjA4LDYuNTJhMS42OCwxLjY4LDAsMCwwLDAsMi40TDE2LjUxLDE4LDcuMTIs''@;'; + put 'put ''MjcuMDhhMS43LDEuNywwLDAsMCwyLjM2LDIuNDRoMEwyMS40LDE4LDkuNDgsNi40N0ExLjY5LDEuNjksMCwwLDAsNy4wOCw2LjUyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI2LjQ5LDVhMS43LDEuNywwLDAsMC0xLjcsMS43VjI5''@;'; + put 'put ''LjNhMS43LDEuNywwLDAsMCwzLjQsMFY2LjdBMS43LDEuNywwLDAsMCwyNi40OSw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUFycm93PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy42NiwxNS42MSwxOCw2LDguMzQs''@;'; + put 'put ''MTUuNjFBMSwxLDAsMSwwLDkuNzUsMTdMMTcsOS44MVYyOC45NGExLDEsMCwxLDAsMiwwVjkuODFMMjYuMjUsMTdhMSwxLDAsMCwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+JyksTC5Db3JlU2hhcGVzPXsidW5rbm93bi1zdGF0dXMi''@;'; + put 'put ''OkwuQ2xyU2hhcGVVbmtub3duU3RhdHVzLGhvbWU6TC5DbHJTaGFwZUhvbWUsY29nOkwuQ2xyU2hhcGVDb2csY2hlY2s6TC5DbHJTaGFwZUNoZWNrLHRpbWVzOkwuQ2xyU2hhcGVUaW1lcywiZXhjbGFtYXRpb24tdHJpYW5nbGUiOkwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlLCJleGNs''@;'; + put 'put ''YW1hdGlvbi1jaXJjbGUiOkwuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZSwiY2hlY2stY2lyY2xlIjpMLkNsclNoYXBlQ2hlY2tDaXJjbGUsImluZm8tY2lyY2xlIjpMLkNsclNoYXBlSW5mb0NpcmNsZSwiaW5mby1zdGFuZGFyZCI6TC5DbHJTaGFwZUluZm9TdGFuZGFyZCwic3VjY2Vzcy1z''@;'; + put 'put ''dGFuZGFyZCI6TC5DbHJTaGFwZVN1Y2Nlc3NTdGFuZGFyZCwiZXJyb3Itc3RhbmRhcmQiOkwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkLCJ3YXJuaW5nLXN0YW5kYXJkIjpMLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkLCJoZWxwLWluZm8iOkwuQ2xyU2hhcGVIZWxwSW5mbyxiYXJzOkwuQ2xyU2hh''@;'; + put 'put ''cGVCYXJzLHVzZXI6TC5DbHJTaGFwZVVzZXIsYW5nbGU6TC5DbHJTaGFwZUFuZ2xlLGZvbGRlcjpMLkNsclNoYXBlRm9sZGVyLCJmb2xkZXItb3BlbiI6TC5DbHJTaGFwZUZvbGRlck9wZW4sYmVsbDpMLkNsclNoYXBlQmVsbCxpbWFnZTpMLkNsclNoYXBlSW1hZ2UsY2xvdWQ6TC5DbHJTaGFw''@;'; + put 'put ''ZUNsb3VkLCJlbGxpcHNpcy1ob3Jpem9udGFsIjpMLkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsLCJlbGxpcHNpcy12ZXJ0aWNhbCI6TC5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWwsImZpbHRlci1ncmlkIjpMLkNsclNoYXBlRmlsdGVyR3JpZCwiZmlsdGVyLWdyaWQtY2lyY2xlIjpMLkNs''@;'; + put 'put ''clNoYXBlRmlsdGVyR3JpZENpcmNsZSwidm0tYnVnIjpMLkNsclNoYXBlVm1CdWcsc2VhcmNoOkwuQ2xyU2hhcGVTZWFyY2gsInZpZXctY29sdW1ucyI6TC5DbHJTaGFwZVZpZXdDb2x1bW5zLCJhbmdsZS1kb3VibGUiOkwuQ2xyU2hhcGVBbmdsZURvdWJsZSxjYWxlbmRhcjpMLkNsclNoYXBl''@;'; + put 'put ''Q2FsZW5kYXIsZXZlbnQ6TC5DbHJTaGFwZUV2ZW50LGV5ZTpMLkNsclNoYXBlRXllLCJleWUtaGlkZSI6TC5DbHJTaGFwZUV5ZUhpZGUsInN0ZXAtZm9yd2FyZC0yIjpMLkNsclNoYXBlU3RlcEZvcndhcmQyLGFycm93OkwuQ2xyU2hhcGVBcnJvd30sT2JqZWN0LmRlZmluZVByb3BlcnR5KEwu''@;'; + put 'put ''Q29yZVNoYXBlcywiaG91c2UiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmhvbWUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJzZXR0aW5ncyIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuY29nKSksT2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KEwuQ29yZVNoYXBlcywic3VjY2VzcyIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuY2hlY2spKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJjbG9zZSIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMudGltZXMpKSxPYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJ3YXJuaW5nIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tdHJpYW5nbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsImVycm9yIiwoMCxCLmRlc2NyaXB0b3JDb25m''@;'; + put 'put ''aWcpKEwuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tY2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJpbmZvIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siaW5mby1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVT''@;'; + put 'put ''aGFwZXMsIm1lbnUiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmJhcnMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJhdmF0YXIiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLnVzZXIpKSxPYmplY3QuZGVmaW5lUHJvcGVydHko''@;'; + put 'put ''TC5Db3JlU2hhcGVzLCJjYXJldCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuYW5nbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJkaXJlY3RvcnkiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmZvbGRlcikpLE9iamVjdC5k''@;'; + put 'put ''ZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsIm5vdGlmaWNhdGlvbiIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuYmVsbCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsImNvbGxhcHNlIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBl''@;'; + put 'put ''c1siYW5nbGUtZG91YmxlIl0pKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9lc3NlbnRpYWwtc2hhcGVzLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuQ2xyU2hhcGVMb2dv''@;'; + put 'put ''dXQ9TC5DbHJTaGFwZUxvZ2luPUwuQ2xyU2hhcGVIZWxwPUwuQ2xyU2hhcGVDb3B5PUwuQ2xyU2hhcGVDaGlsZEFycm93PUwuQ2xyU2hhcGVDaXJjbGVBcnJvdz1MLkNsclNoYXBlQWxhcm1DbG9jaz1MLkNsclNoYXBlQ2xvY2s9TC5DbHJTaGFwZUhpc3Rvcnk9TC5DbHJTaGFwZVRhZ3M9TC5D''@;'; + put 'put ''bHJTaGFwZVRhZz1MLkNsclNoYXBlVHJhc2g9TC5DbHJTaGFwZVRpbWVzQ2lyY2xlPUwuQ2xyU2hhcGVCYW49TC5DbHJTaGFwZVBsdXNDaXJjbGU9TC5DbHJTaGFwZU1pbnVzQ2lyY2xlPUwuQ2xyU2hhcGVNaW51cz1MLkNsclNoYXBlUGx1cz1MLkNsclNoYXBlRmlsZT1MLkNsclNoYXBlUGlu''@;'; + put 'put ''PUwuQ2xyU2hhcGVGaWx0ZXI9TC5DbHJTaGFwZVBvcE91dD1MLkNsclNoYXBlVXNlcnM9TC5DbHJTaGFwZVVubG9jaz1MLkNsclNoYXBlTG9jaz1MLkNsclNoYXBlVXBsb2FkPUwuQ2xyU2hhcGVEb3dubG9hZD1MLkNsclNoYXBlTGlnaHRidWxiPUwuQ2xyU2hhcGVWaWV3Q2FyZHM9TC5DbHJT''@;'; + put 'put ''aGFwZVZpZXdMaXN0PUwuQ2xyU2hhcGVTeW5jPUwuQ2xyU2hhcGVSZWZyZXNoPUwuQ2xyU2hhcGVOb3RlPUwuQ2xyU2hhcGVQZW5jaWw9TC5DbHJTaGFwZVRoZXJtb21ldGVyPUwuQ2xyU2hhcGVCdWc9TC5DbHJTaGFwZVNjaXNzb3JzPUwuQ2xyU2hhcGVBc3Rlcmlzaz1MLkNsclNoYXBlQm9v''@;'; + put 'put ''az1MLkNsclNoYXBlT2JqZWN0cz1MLkNsclNoYXBlUmVzaXplPUwuQ2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2s9TC5DbHJTaGFwZUN1cnNvckhhbmQ9TC5DbHJTaGFwZUN1cnNvckFycm93PUwuQ2xyU2hhcGVHcmlkVmlldz1MLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb249TC5DbHJTaGFwZU5l''@;'; + put 'put ''dz1MLkNsclNoYXBlQWxhcm1PZmY9TC5DbHJTaGFwZVBpbmJvYXJkPUwuQ2xyU2hhcGVBZGRUZXh0PXZvaWQgMCxMLkNsclNoYXBlQ2xvbmU9TC5DbHJTaGFwZUN1cnNvck1vdmU9TC5DbHJTaGFwZVdhbmQ9TC5DbHJTaGFwZVN1bj1MLkNsclNoYXBlTW9vbj1MLkNsclNoYXBlRmlsdGVyMj1M''@;'; + put 'put ''LkNsclNoYXBlRHJhZ0hhbmRsZT1MLkNsclNoYXBlQ29weVRvQ2xpcGJvYXJkPUwuQ2xyU2hhcGVDb2xvclBpY2tlcj1MLkNsclNoYXBlQnJpZWZjYXNlPUwuQ2xyU2hhcGVFeHBhbmRDYXJkPUwuQ2xyU2hhcGVDb2xsYXBzZUNhcmQ9TC5DbHJTaGFwZVNvcnRCeT1MLkNsclNoYXBlQWNjZXNz''@;'; + put 'put ''aWJpbGl0eTI9TC5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxPUwuQ2xyU2hhcGVTaHJpbms9TC5DbHJTaGFwZVBhcGVyY2xpcD1MLkNsclNoYXBlRmlsZUdyb3VwPUwuQ2xyU2hhcGVSZXBlYXQ9TC5DbHJTaGFwZUlkQmFkZ2U9TC5DbHJTaGFwZUJhbGFuY2U9TC5DbHJTaGFwZU9yZ2FuaXphdGlv''@;'; + put 'put ''bj1MLkNsclNoYXBlTm9BY2Nlc3M9TC5DbHJTaGFwZUhvdXJnbGFzcz1MLkNsclNoYXBlRmxhbWU9TC5DbHJTaGFwZVRhcmdldD1MLkNsclNoYXBlQnVsbHNleWU9TC5DbHJTaGFwZVdyZW5jaD1MLkNsclNoYXBlQm9sdD1MLkNsclNoYXBlTGlicmFyeT1MLkNsclNoYXBlS2V5PUwuQ2xyU2hh''@;'; + put 'put ''cGVab29tT3V0PUwuQ2xyU2hhcGVab29tSW49TC5DbHJTaGFwZVdpbmRvd1Jlc3RvcmU9TC5DbHJTaGFwZVdpbmRvd01pbj1MLkNsclNoYXBlV2luZG93TWF4PUwuQ2xyU2hhcGVXaW5kb3dDbG9zZT1MLkNsclNoYXBlVG9vbHM9TC5DbHJTaGFwZVN3aXRjaD1MLkNsclNoYXBlVHdvV2F5QXJy''@;'; + put 'put ''b3dzPUwuQ2xyU2hhcGVGaWxlU2V0dGluZ3M9TC5DbHJTaGFwZVNjcm9sbD1MLkNsclNoYXBlVW5kbz1MLkNsclNoYXBlUmVkbz1MLkNsclNoYXBlTGlzdD1MLkNsclNoYXBlRmlyZXdhbGw9TC5DbHJTaGFwZUNsaXBib2FyZD1MLkNsclNoYXBlU2xpZGVyPUwuQ2xyU2hhcGVXb3JsZD1MLkNs''@;'; + put 'put ''clNoYXBlUHJpbnRlcj12b2lkIDAsTC5Fc3NlbnRpYWxTaGFwZXM9TC5DbHJTaGFwZUNvbG9yUGFsZXR0ZT1MLkNsclNoYXBlRmlyc3RBaWQ9TC5DbHJTaGFwZUJldGE9TC5DbHJTaGFwZURvdENpcmNsZT1MLkNsclNoYXBlQ2lyY2xlPUwuQ2xyU2hhcGVDcm9zc2hhaXJzPUwuQ2xyU2hhcGVW''@;'; + put 'put ''b2x1bWU9TC5DbHJTaGFwZVRhYmxlPUwuQ2xyU2hhcGVTbm93Zmxha2U9TC5DbHJTaGFwZUZ1ZWw9TC5DbHJTaGFwZUZvcm09TC5DbHJTaGFwZUZpc2g9TC5DbHJTaGFwZVRyZWU9TC5DbHJTaGFwZVJlY3ljbGU9TC5DbHJTaGFwZUZpbHRlck9mZj1MLkNsclNoYXBlRmlsZVppcD1MLkNsclNo''@;'; + put 'put ''YXBlQ3Vyc29ySGFuZE9wZW49TC5DbHJTaGFwZUN1cnNvckhhbmRHcmFiPUwuQ2xyU2hhcGVUcmVlVmlldz1MLkNsclNoYXBlUG9ydHJhaXQ9TC5DbHJTaGFwZVBhc3RlPUwuQ2xyU2hhcGVMYW5kc2NhcGU9TC5DbHJTaGFwZUVyYXNlcj1MLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcj1MLkNs''@;'; + put 'put ''clNoYXBlRGV0YWlscz12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxNZT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMv''@;'; + put 'put ''c2hhcGVzL2NvcmUtc2hhcGVzLnRzIik7TC5DbHJTaGFwZUFkZFRleHQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMSwyMUgxM2ExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEyLDE2YTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDAtMkgxM0ExLDEsMCwwLDAsMTIsMTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMyIgZD0iTTI3LDI3SDEzYTEsMSwwLDAsMCwwLDJIMjdhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMTUuODksOWExLDEsMCwwLDAtMS0xSDEwVjMuMjFhMSwxLDAs''@;'; + put 'put ''MCwwLTIsMFY4SDIuODlhMSwxLDAsMCwwLDAsMkg4djUuMjFhMSwxLDAsMCwwLDIsMFYxMGg0Ljg5QTEsMSwwLDAsMCwxNS44OSw5WiIvPicpLEwuQ2xyU2hhcGVQaW5ib2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgZD0iTTMwLDMwLDYsMzAsNiw2SDIyVjRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNEgzMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzMuNTcsOS4zM2wt''@;'; + put 'put ''Ny03YTEsMSwwLDAsMC0xLjQxLDEuNDFsNyw3YTEsMSwwLDEsMCwxLjQxLTEuNDFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIyLjEsMTEuMTlsLjcuNUwyNi40Niw4LDI1LDYuNTYsMjIuNTEsOS4xM2MtMi0u''@;'; + put 'put ''ODctNC4zNS4xNC01LjkyLDEuNjhsLS43Mi43MSwzLjU0LDMuNTQtMy42NywzLjY3LDEuNDEsMS40MSwzLjY3LTMuNjdMMjQuMzcsMjBsLjcxLS43MmMxLjU0LTEuNTcsMi41NS0zLjkyLDEuNjgtNS45M2wyLjU0LTIuNTdMMjcuODgsOS4zOCwyNC4yMSwxMy4xbC40OS42OWMuNzYsMSwuMjUs''@;'; + put 'put ''Mi4zNy0uNDEsMy4zM0wxOC43NywxMS42QzE5Ljg0LDEwLjg2LDIxLjE1LDEwLjUsMjIuMSwxMS4xOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwzMCw2LDMwLDYsNkgyMlY0SDZBMiwyLDAsMCwwLDQsNlYzMGEy''@;'; + put 'put ''LDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTRIMzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuNTcsOS4zM2wtNy03YTEsMSwwLDAsMC0xLjQxLDEuNDFsMS4zOCwxLjM4LTQsNGMtMi0uODctNC4zNS4x''@;'; + put 'put ''NC01LjkyLDEuNjhsLS43Mi43MSwzLjU0LDMuNTQtMy42NywzLjY3LDEuNDEsMS40MSwzLjY3LTMuNjdMMjQuMzcsMjBsLjcxLS43MmMxLjU0LTEuNTcsMi41NS0zLjkxLDEuNjgtNS45Mmw0LTQsMS4zOCwxLjM4YTEsMSwwLDEsMCwxLjQxLTEuNDFaIi8+JyksTC5DbHJTaGFwZUFsYXJtT2Zm''@;'; + put 'put ''PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEuNDcsMy44NGE1Ljc4LDUuNzgsMCwwLDAtNy4zNy0uNjMsMTYuMDgsMTYuMDgsMCwwLDEsOC4yLDcuNjVBNS43Myw1LjczLDAsMCwwLDMxLjQ3LDMuODRaIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI1LjMzLDIxLjU0YS45LjksMCwwLDAtLjQxLTEuMmwtMy4yLTEuNTZMMjQuODksMjJBLjg5Ljg5LDAsMCwwLDI1LjMzLDIxLjU0WiIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCw4LjZhLjkuOSwwLDAsMC0uOS45djQuNmwxLjgsMS44MVY5LjVBLjkuOSwwLDAsMCwxOCw4LjZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNCIgZD0iTTExLjQyLDMuNDNhNS44LDUuOCwwLDAsMC01LjgxLS44MUw4LjMsNS4zMkExNiwxNiwwLDAsMSwxMS40MiwzLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0xOCw0YTEzLjkxLDEzLjkxLDAs''@;'; + put 'put ''MCwwLTguMywyLjc1bDEuNDIsMS40M0ExMiwxMiwwLDAsMSwyNy44MiwyNC45bDEuNDIsMS40M0ExNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIGQ9Ik0xLjU2LDQuMjEsMi43Myw1LjM4YTUu''@;'; + put 'put ''Nyw1LjcsMCwwLDAsLjY3LDYuMUExNS43OCwxNS43OCwwLDAsMSw1LjQ2LDguMTJMNi44OCw5LjU1QTEzLjk0LDEzLjk0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuODksMTMuODksMCwwLDAsMTYuOCwwbDQuMTQsNC4xNUwzMiwz''@;'; + put 'put ''MS45LDMsMi44Wk0yNSwyNy43MkExMS44OSwxMS44OSwwLDAsMSwxOCwzMCwxMiwxMiwwLDAsMSw2LDE4YTExLjg5LDExLjg5LDAsMCwxLDIuMjktN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMS40NywzLjg0YTUu''@;'; + put 'put ''NzgsNS43OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xMS40MiwzLjQzYTUuOCw1LjgsMCww''@;'; + put 'put ''LDAtNS43Ny0uODJMOC4zMyw1LjNBMTYsMTYsMCwwLDEsMTEuNDIsMy40M1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yNC45MiwyMS45NGw0LjM0LDQuMzZBMTQsMTQsMCwwLDAsOS43NSw2LjczTDE3LDE0VjkuNjlh''@;'; + put 'put ''MSwxLDAsMCwxLDIsMFYxNmwyLjMzLDIuMzRMMjUsMjAuMWExLDEsMCwwLDEsLjQ3LDEuMzNBMSwxLDAsMCwxLDI0LjkyLDIxLjk0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTEuNjEsNC4yMSwyLjczLDUuMzRhNS43''@;'; + put 'put ''Myw1LjczLDAsMCwwLC42Nyw2LjE1QTE1Ljg4LDE1Ljg4LDAsMCwxLDUuNDgsOC4xTDYuOTEsOS41MkExMy45NCwxMy45NCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjg5LDEzLjg5LDAsMCwwLDE2LjgzLDBsNC4xNiw0LjE3TDMy''@;'; + put 'put ''LDMxLjksMywyLjhaIi8+JyksTC5DbHJTaGFwZU5ldz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LjU5LDIzbC00LjA4LTUsNC00LjlhMS44MiwxLjgyLDAsMCwwLC4yMy0xLjk0QTEuOTMsMS45MywwLDAs''@;'; + put 'put ''MCwzMi45NCwxMGgtMzFBMS45MSwxLjkxLDAsMCwwLDAsMTEuODhWMjQuMTNBMS45MSwxLjkxLDAsMCwwLDEuOTQsMjZIMzMuMDVhMS45MywxLjkzLDAsMCwwLDEuNzctMS4wOUExLjgyLDEuODIsMCwwLDAsMzQuNTksMjNaTTIsMjRWMTJIMzIuNzhsLTQuODQsNS45M0wzMi44NSwyNFoiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwb2x5Z29uICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgcG9pbnRzPSI5LjM5IDE5LjM1IDYuMTMgMTUgNSAxNSA1IDIxLjE4IDYuMTMgMjEuMTggNi4xMyAxNi44NCA5LjM5IDIxLjE4IDEwLjUxIDIxLjE4IDEwLjUxIDE1IDkuMzkg''@;'; + put 'put ''MTUgOS4zOSAxOS4zNSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBwb2ludHM9IjEyLjE4IDIxLjE4IDE2Ljg0IDIxLjE4IDE2Ljg0IDIwLjE2IDEzLjMxIDIwLjE2IDEzLjMxIDE4LjU1IDE2LjUgMTguNTUgMTYu''@;'; + put 'put ''NSAxNy41MiAxMy4zMSAxNy41MiAxMy4zMSAxNi4wMyAxNi44NCAxNi4wMyAxNi44NCAxNSAxMi4xOCAxNSAxMi4xOCAyMS4xOCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBwb2ludHM9IjI0LjUyIDE5LjQzIDIz''@;'; + put 'put ''LjA2IDE1IDIxLjg0IDE1IDIwLjM3IDE5LjQzIDE5LjA1IDE1IDE3LjgyIDE1IDE5Ljc4IDIxLjE4IDIwLjg5IDIxLjE4IDIyLjQ1IDE2LjU5IDI0IDIxLjE4IDI1LjEzIDIxLjE4IDI3LjA4IDE1IDI1Ljg1IDE1IDI0LjUyIDE5LjQzIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuMTEsMjQuNDlsLTMuOTItNi42MiwzLjg4LTYuMzVBMSwxLDAsMCwwLDMzLjIyLDEwSDJhMiwyLDAsMCwwLTIsMlYyNGEyLDIsMCwwLDAsMiwySDMzLjI1QTEsMSwwLDAsMCwzNC4xMSwyNC40OVptLTIzLjYtMy4zMUg5LjM5TDYu''@;'; + put 'put ''MTMsMTYuODR2NC4zNUg1VjE1SDYuMTNsMy4yNyw0LjM1VjE1aDEuMTJaTTE2Ljg0LDE2SDEzLjMxdjEuNDloMy4ydjFoLTMuMnYxLjYxaDMuNTN2MUgxMi4xOFYxNWg0LjY1Wm04LjI5LDUuMTZIMjRsLTEuNTUtNC41OUwyMC45LDIxLjE4SDE5Ljc4bC0yLTYuMThIMTlsMS4zMiw0LjQzTDIx''@;'; + put 'put ''Ljg0LDE1aDEuMjJsMS40Niw0LjQzTDI1Ljg1LDE1aDEuMjNaIi8+JyksTC5DbHJTaGFwZUJ1YmJsZUV4Y2xhbWF0aW9uPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0x''@;'; + put 'put ''NiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTI4LjI5LDI0LjYxYTEsMSwwLDAsMC0uMzIuNzNsMCw1LjM0LTQuMzgtMi43''@;'; + put 'put ''OWExLDEsMCwwLDAtLjgzLS4xMUExNiwxNiwwLDAsMSwxOCwyOC41Yy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUuMzgsMTQsMTJBMTEuMDgsMTEuMDgsMCwwLDEsMjguMjksMjQuNjFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDIwLjYzYTEsMSwwLDAsMCwxLTFWOC40OGExLDEsMCwxLDAtMiwwVjE5LjYxQTEsMSwwLDAsMCwxOCwyMC42M1oiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGN4PSIx''@;'; + put 'put ''OCIgY3k9IjI0LjA0IiByPSIxLjMzIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEs''@;'; + put 'put ''MCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTE2LjkzLDkuMTNhMS40MSwxLjQxLDAsMSwxLDIuODEsMFYxOC45YTEuNDEsMS40MSwwLDEsMS0yLjgxLDBabTEuNDEsMTcuMzVhMS44NywxLjg3LDAsMSwxLDEuODctMS44''@;'; + put 'put ''N0ExLjg3LDEuODcsMCwwLDEsMTguMzQsMjYuNDdaIi8+JyksTC5DbHJTaGFwZUdyaWRWaWV3PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTQsNEg2QTIsMiwwLDAsMCw0LDZ2OGEyLDIsMCwwLDAsMiwyaDhh''@;'; + put 'put ''MiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwxNCw0Wk02LDE0VjZoOHY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMCw0SDIyYTIsMiwwLDAsMC0yLDJ2OGEyLDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlY2QTIsMiwwLDAsMCwzMCw0Wk0yMiwxNFY2aDh2OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTQsMjBINmEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWMjJBMiwyLDAs''@;'; + put 'put ''MCwwLDE0LDIwWk02LDMwVjIyaDh2OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzAsMjBIMjJhMiwyLDAsMCwwLTIsMnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjIyQTIsMiwwLDAsMCwzMCwy''@;'; + put 'put ''MFpNMjIsMzBWMjJoOHY4WiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iNCIgeT0iNCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIgcnk9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTIiIHg9IjIwIiB5PSI0IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIiByeT0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgeD0iNCIgeT0iMjAiIHdpZHRoPSIxMiIgaGVpZ2h0PSIx''@;'; + put 'put ''MiIgcng9IjIiIHJ5PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiB4PSIyMCIgeT0iMjAiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjIiIHJ5PSIyIi8+JyksTC5DbHJTaGFwZUN1cnNvckFycm93PSgwLEUuY2xySWNv''@;'; + put 'put ''blNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTQuNTgsMzIuMzFhMSwxLDAsMCwxLS45NC0uNjVMNCw1LjY1QTEsMSwwLDAsMSw1LjI1LDQuMzdsMjYsOS42OGExLDEsMCwwLDEtLjA1LDEuODlsLTguMzYsMi41Nyw4LjMsOC4zYTEs''@;'; + put 'put ''MSwwLDAsMSwwLDEuNDFsLTMuMjYsMy4yNmExLDEsMCwwLDEtLjcxLjI5aDBhMSwxLDAsMCwxLS43MS0uMjlsLTguMzMtOC4zMy0yLjYsOC40NWExLDEsMCwwLDEtLjkzLjcxWm0zLjA5LTEyYTEsMSwwLDAsMSwuNzEuMjlsOC43OSw4Ljc5TDI5LDI3LjUxbC04Ljc2LTguNzZhMSwxLDAsMCwx''@;'; + put 'put ''LC40MS0xLjY2bDcuMTMtMi4yTDYuNiw3bDcuODksMjEuMkwxNi43MSwyMWExLDEsMCwwLDEsLjcxLS42OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOSwxMi4zNiwzLjg4LDNBMSwxLDAsMCwwLDIuNTksNC4yOEwx''@;'; + put 'put ''MiwyOS40NGExLDEsMCwwLDAsMS44OS0uMDVsMi42OS04Ljc1LDkuMTIsOC45YTEsMSwwLDAsMCwxLjQxLDBsMi4zNS0yLjM1YTEsMSwwLDAsMCwwLTEuNDFsLTkuMDktOC44NkwyOSwxNC4yNUExLDEsMCwwLDAsMjksMTIuMzZaIi8+JyksTC5DbHJTaGFwZUN1cnNvckhhbmQ9KDAsRS5jbHJJ''@;'; + put 'put ''Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMC43NCwxNS4xOWExMy42NiwxMy42NiwwLDAsMC02Ljg3LTMuODNBMjYsMjYsMCwwLDAsMTgsMTAuNThWNS4yOEEzLjQsMy40LDAsMCwwLDE0LjUsMiwzLjQsMy40LDAsMCwwLDEx''@;'; + put 'put ''LDUuMjh2MTBMOS40LDEzLjdhMy43NywzLjc3LDAsMCwwLTUuMjgsMEEzLjY3LDMuNjcsMCwwLDAsMywxNi4zM2EzLjYsMy42LDAsMCwwLDEsMi41Nmw0LjY2LDUuNTJhMTEuNTMsMTEuNTMsMCwwLDAsMS40Myw0LDEwLjEyLDEwLjEyLDAsMCwwLDIsMi41NHYxLjkyYTEuMDcsMS4wNywwLDAs''@;'; + put 'put ''MCwxLDEuMDhIMjdhMS4wNywxLjA3LDAsMCwwLDEtMS4wOHYtMi43YTEyLjgxLDEyLjgxLDAsMCwwLDMtOC4zNnYtNkExLDEsMCwwLDAsMzAuNzQsMTUuMTlaTTI5LDIxLjg2YTEwLjcyLDEwLjcyLDAsMCwxLTIuNiw3LjI2LDEuMTEsMS4xMSwwLDAsMC0uNC43MlYzMkgxNC4xNFYzMC41MmEx''@;'; + put 'put ''LDEsMCwwLDAtLjQ0LS44Myw3LjI2LDcuMjYsMCwwLDEtMS44Mi0yLjIzLDkuMTQsOS4xNCwwLDAsMS0xLjItMy41MiwxLDEsMCwwLDAtLjIzLS41OUw1LjUzLDE3LjUzYTEuNywxLjcsMCwwLDEsMC0yLjQyLDEuNzYsMS43NiwwLDAsMSwyLjQ3LDBsMywzdjMuMTRsMi0xVjUuMjhBMS40Miwx''@;'; + put 'put ''LjQyLDAsMCwxLDE0LjUsNCwxLjQyLDEuNDIsMCwwLDEsMTYsNS4yOHYxMS44bDIsLjQzVjEyLjU5YTI0LjI3LDI0LjI3LDAsMCwxLDIuNTEuMThWMThsMS42LjM1VjEzYy40MS4wOC44My4xNywxLjI2LjI4YTE0Ljg4LDE0Ljg4LDAsMCwxLDEuNTMuNDl2NS4xNWwxLjYuMzVWMTQuNUExMS4w''@;'; + put 'put ''NiwxMS4wNiwwLDAsMSwyOSwxNi4yM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOC42OSwxNC4zM3Y0LjgzbC0yLS40M1YxMy4yNGExNi4xOSwxNi4xOSwwLDAsMC0yLjMzLS44NHY1LjgybC0yLS40M1YxMmMtMS4x''@;'; + put 'put ''LS4xOC0yLjE4LS4zLTMuMDgtLjM2djUuNTFsLTItLjQzVjExLjQ4aDBWNC4zNGEyLjUzLDIuNTMsMCwwLDAtMi42LTIuNDMsMi41MywyLjUzLDAsMCwwLTIuNiwyLjQzVjE3LjI3aDB2Mi41OWwtMiwxVjE1LjZMNy43NSwxMy4yMWEyLjgzLDIuODMsMCwwLDAtNCwwLDIuOTMsMi45MywwLDAs''@;'; + put 'put ''MCwwLDQuMDlsNiw3LjFhMTAuODIsMTAuODIsMCwwLDAsMS4zOSw0LjIyLDguNDIsOC40MiwwLDAsMCwyLjIxLDIuNzN2Mi41NkgyNy43OVYzMC42MmExMi41NCwxMi41NCwwLDAsMCwzLTguNXYtNkExMCwxMCwwLDAsMCwyOC42OSwxNC4zM1oiLz4nKSxMLkNsclNoYXBlQ3Vyc29ySGFuZENs''@;'; + put 'put ''aWNrPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAuNCwxNy42Yy0xLjgtMS45LTQuMi0zLjItNi43LTMuN2MtMS4xLTAuMy0yLjItMC41LTMuMy0wLjZjMi44LTMuMywyLjMtOC4zLTEtMTEuMXMtOC4zLTIu''@;'; + put 'put ''My0xMS4xLDFzLTIuMyw4LjMsMSwxMS4xXG4gICAgICAgICAgICAgICAgICAgIGMwLjYsMC41LDEuMiwwLjksMS44LDEuMXYyLjJsLTEuNi0xLjVjLTEuNC0xLjQtMy43LTEuNC01LjIsMGMtMS40LDEuNC0xLjUsMy42LTAuMSw1bDQuNiw1LjRjMC4yLDEuNCwwLjcsMi43LDEuNCwzLjlcbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICAgICAgYzAuNSwwLjksMS4yLDEuOCwxLjksMi41djEuOWMwLDAuNiwwLjQsMSwxLDFoMTMuNmMwLjUsMCwxLTAuNSwxLTF2LTIuNmMxLjktMi4zLDIuOS01LjIsMi45LTguMXYtNS44XG4gICAgICAgICAgICAgICAgICAgIEMzMC43LDE3LjksMzAuNiwxNy43LDMwLjQs''@;'; + put 'put ''MTcuNnogTTguNCw4LjJjMC0zLjMsMi43LTUuOSw2LTUuOGMzLjMsMCw1LjksMi43LDUuOCw2YzAsMS44LTAuOCwzLjQtMi4yLDQuNVY3LjlcbiAgICAgICAgICAgICAgICAgICAgYy0wLjEtMS44LTEuNi0zLjItMy40LTMuMmMtMS44LTAuMS0zLjQsMS40LTMuNCwzLjJ2NS4yQzkuNSwxMi4x''@;'; + put 'put ''LDguNSwxMC4yLDguNCw4LjJMOC40LDguMnogTTI4LjcsMjRjMC4xLDIuNi0wLjgsNS4xLTIuNSw3LjFcbiAgICAgICAgICAgICAgICAgICAgYy0wLjIsMC4yLTAuNCwwLjQtMC40LDAuN3YyLjFIMTQuMnYtMS40YzAtMC4zLTAuMi0wLjYtMC40LTAuOGMtMC43LTAuNi0xLjMtMS4zLTEuOC0y''@;'; + put 'put ''LjJjLTAuNi0xLTEtMi4yLTEuMi0zLjRcbiAgICAgICAgICAgICAgICAgICAgYzAtMC4yLTAuMS0wLjQtMC4yLTAuNmwtNC44LTUuN2MtMC4zLTAuMy0wLjUtMC43LTAuNS0xLjJjMC0wLjQsMC4yLTAuOSwwLjUtMS4yYzAuNy0wLjYsMS43LTAuNiwyLjQsMGwyLjksMi45djNsMS45LTFWNy45''@;'; + put 'put ''XG4gICAgICAgICAgICAgICAgICAgIGMwLjEtMC43LDAuNy0xLjMsMS41LTEuMmMwLjcsMCwxLjQsMC41LDEuNCwxLjJ2MTEuNWwyLDAuNHYtNC42YzAuMS0wLjEsMC4yLTAuMSwwLjMtMC4yYzAuNywwLDEuNCwwLjEsMi4xLDAuMnY1LjFsMS42LDAuM3YtNS4yXG4gICAgICAgICAgICAgICAg''@;'; + put 'put ''ICAgIGwxLjIsMC4zYzAuNSwwLjEsMSwwLjMsMS41LDAuNXY1bDEuNiwwLjN2LTQuNmMwLjksMC40LDEuNywxLDIuNCwxLjdMMjguNywyNHoiLz4nKSxMLkNsclNoYXBlUmVzaXplPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiBkPSJNMTksNGExLDEsMCwwLDAsMCwyaDkuNTlsLTkuMjUsOS4yNWExLDEsMCwxLDAsMS40MSwxLjQxTDMwLDcuNDFWMTdhMSwxLDAsMCwwLDIsMFY0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik00LDE5''@;'; + put 'put ''YTEsMSwwLDAsMSwyLDB2OS41OWw5LjI1LTkuMjVhMSwxLDAsMSwxLDEuNDEsMS40MUw3LjQxLDMwSDE3YTEsMSwwLDAsMSwwLDJINFoiLz4nKSxMLkNsclNoYXBlT2JqZWN0cz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgZD0iTTE2LjA4LDE0LjlhMTAuNDEsMTAuNDEsMCwwLDEsMS44Ny0uNzFsLTQtMTAuNzdhMiwyLDAsMCwwLTMuNzUsMEwyLDI1LjI2QTIsMiwwLDAsMCwzLjkyLDI4aDYuOTRhMTAsMTAsMCwwLDEtLjUyLTJIMy45MkwxMi4wNiw0LjEyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMiw5SDIyYTIsMiwwLDAsMC0yLDJ2Mi44NWMuMjMsMCwuNDYsMCwuNjksMEExMC41MSwxMC41MSwwLDAsMSwyMiwxMy45VjExSDMyVjIxSDMwLjY1YTEwLjQyLDEwLjQyLDAsMCwxLC40NSwySDMyYTIsMiwwLDAsMCwy''@;'; + put 'put ''LTJWMTFBMiwyLDAsMCwwLDMyLDlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIwLjY5LDE1LjgxYTguNSw4LjUsMCwxLDAsOC41LDguNUE4LjUxLDguNTEsMCwwLDAsMjAuNjksMTUuODFabTAsMTVhNi41LDYu''@;'; + put 'put ''NSwwLDEsMSw2LjUtNi41QTYuNTEsNi41MSwwLDAsMSwyMC42OSwzMC44MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xMC42NSwyNC40NGE5LjUxLDkuNTEsMCwwLDEsNy4wNi05LjE3TDEzLDNhMSwxLDAsMCwwLTEu''@;'; + put 'put ''ODcsMEwyLjA3LDI2LjU2QTEsMSwwLDAsMCwzLDI3LjkyaDguMzJBOS40NCw5LjQ0LDAsMCwxLDEwLjY1LDI0LjQ0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLDEwSDIwYTEsMSwwLDAsMC0xLDF2NGE5LjQzLDku''@;'; + put 'put ''NDMsMCwwLDEsMTAuNjMsOUgzMmExLDEsMCwwLDAsMS0xVjExQTEsMSwwLDAsMCwzMiwxMFoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgY3g9IjIwLjE1IiBjeT0iMjQuNDQiIHI9IjcuNSIvPicpLEwuQ2xyU2hhcGVCb29r''@;'; + put 'put ''PSgwLEUuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSIxMCIgeT0iNS4yIiB3aWR0aD0iMTgiIGhlaWdodD0iMS41NSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTIiIGQ9Ik0yOSw4SDkuODZBMS44OSwxLjg5LDAsMCwxLDgsNiwyLDIsMCwwLDEsOS44Niw0SDI5YTEsMSwwLDAsMCwwLTJIOS44NkE0LDQsMCwwLDAsNiw2YTQuMTQsNC4xNCwwLDAsMCwwLC40OSwxLDEsMCwwLDAsMCwuMjRWMzBhNCw0LDAsMCwwLDMuODYsNEgyOWExLDEsMCwwLDAs''@;'; + put 'put ''MS0xVjkuMjVzMC0uMDYsMC0uMDksMC0uMDYsMC0uMDlBMS4wNywxLjA3LDAsMCwwLDI5LDhaTTI4LDMySDkuODZBMiwyLDAsMCwxLDgsMzBWOS41NUEzLjYzLDMuNjMsMCwwLDAsOS44NiwxMEgyOFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTEiIHg9IjEwIiB5PSI1LjIiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxLjU1Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjksOEg5Ljg2QTEuODksMS44OSwwLDAsMSw4LDYsMiwyLDAsMCwxLDkuODYsNEgyOWEx''@;'; + put 'put ''LDEsMCwxLDAsMC0ySDkuODZBNCw0LDAsMCwwLDYsNmE0LjE0LDQuMTQsMCwwLDAsMCwuNDksMSwxLDAsMCwwLDAsLjI0VjMwYTQsNCwwLDAsMCwzLjg2LDRIMjlhMSwxLDAsMCwwLDEtMVY5LjI1czAtLjA2LDAtLjA5LDAtLjA2LDAtLjA5QTEuMDcsMS4wNywwLDAsMCwyOSw4WiIvPicpLEwu''@;'; + put 'put ''Q2xyU2hhcGVBc3Rlcmlzaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4Ljg5LDIwLjkxbC01LTIuOTEsNC44Ny0yLjg2YTMuMTEsMy4xMSwwLDAsMCwxLjE0LTEuMDgsMywzLDAsMCwwLTQuMDktNC4xNUwy''@;'; + put 'put ''MSwxMi43NlY3YTMsMywwLDAsMC02LDB2NS43NkwxMC4xNSw5LjkxYTMsMywwLDEsMC0zLDUuMThsNSwyLjkxTDcuMiwyMC44NmEzLjExLDMuMTEsMCwwLDAtMS4xNCwxLjA4LDMsMywwLDAsMCw0LjA5LDQuMTRMMTUsMjMuMjRWMjguOWEzLDMsMCwwLDAsMiwyLjk0QTMsMywwLDAsMCwyMSwy''@;'; + put 'put ''OVYyMy4yNGw0Ljg1LDIuODVhMywzLDAsMSwwLDMtNS4xOFpNMjguMjQsMjRhMSwxLDAsMCwxLTEuMzcuMzZMMTksMTkuNzVWMjlhMSwxLDAsMCwxLTIsMFYxOS43NUw5LjEzLDI0LjM2YTEsMSwwLDAsMS0xLTEuNzJMMTYsMThsLTcuOS00LjY0YTEsMSwwLDEsMSwxLTEuNzJMMTcsMTYuMjVW''@;'; + put 'put ''N2ExLDEsMCwwLDEsMiwwdjkuMjVsNy44Ny00LjYyYTEsMSwwLDAsMSwxLDEuNzJMMjAsMThsNy45LDQuNjRBMSwxLDAsMCwxLDI4LjI0LDI0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4Ljg5LDIwLjkxbC01LTIu''@;'; + put 'put ''OTEsNC44Ny0yLjg2YTMuMTEsMy4xMSwwLDAsMCwxLjE0LTEuMDgsMywzLDAsMCwwLTQuMDktNC4xNUwyMSwxMi43NlY3YTMsMywwLDAsMC02LDB2NS43NkwxMC4xNSw5LjkxYTMsMywwLDEsMC0zLDUuMThsNSwyLjkxTDcuMiwyMC44NmEzLjExLDMuMTEsMCwwLDAtMS4xNCwxLjA4LDMsMyww''@;'; + put 'put ''LDAsMCw0LjA5LDQuMTRMMTUsMjMuMjRWMjguOWEzLDMsMCwwLDAsMiwyLjk0QTMsMywwLDAsMCwyMSwyOVYyMy4yNGw0Ljg1LDIuODVhMywzLDAsMSwwLDMtNS4xOFoiLz4nKSxMLkNsclNoYXBlU2Npc3NvcnM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiXG4gICAgICAgICAgICBkPSJNMjQuMDYsMTguMThsOS42MS04Ljc3YTEsMSwwLDAsMC0uMDktMS41NWwtMi4yNC0xLjZhMy41NywzLjU3LDAsMCwwLTQuMjguMTJMMTUuODgsMTUuM2wtMy4yNi0yLjUyYTUuNDUsNS40NSwwLDEsMC0xLDEuNzdsMi42Miwy''@;'; + put 'put ''TDEwLDIwYTUuNDgsNS40OCwwLDEsMCwxLjU5LDEuMjlMMjguMyw3Ljk0YTEuNTcsMS41NywwLDAsMSwxLjg4LS4wNWwxLjIzLjg4TDIxLjEsMTguMTlsMTAuMzEsOS40LTEuMjMuODhhMS41NywxLjU3LDAsMCwxLTEuODgtLjA1bC05LjgxLTcuODVMMTcsMjEuOTNsMTAuMDYsOGEzLjU3LDMu''@;'; + put 'put ''NTcsMCwwLDAsNC4yOS4xMmwyLjI0LTEuNmExLDEsMCwwLDAsLjA5LTEuNTVaTTcuNDUsMTQuNTRhMy40NiwzLjQ2LDAsMSwxLDMuNDUtMy40NkEzLjQ2LDMuNDYsMCwwLDEsNy40NSwxNC41NFptMCwxMy43MkEzLjQ2LDMuNDYsMCwxLDEsMTAuOSwyNC44LDMuNDYsMy40NiwwLDAsMSw3LjQ1''@;'; + put 'put ''LDI4LjI2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMzLjgxLDguMTMsMzEuNjMsNi40OGExLjkyLDEuOTIsMCwwLDAtMi4zNiwwTDEwLDIyLjA2YTUuNDYsNS40NiwwLDEsMCwyLDEuODFsMy45LTMuMTJMMjkuMjcs''@;'; + put 'put ''MzEuNTJhMS45MiwxLjkyLDAsMCwwLDIuMzYsMGwyLjE4LTEuNjRMMjAuOTQsMTlaTTcuNDUsMjkuNzVhMi44NiwyLjg2LDAsMSwxLDIuODYtMi44NkEyLjg3LDIuODcsMCwwLDEsNy40NSwyOS43NVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTIiIGQ9Ik0xNC4zLDE1LjI0LDEyLDEzLjM4YTUuNDYsNS40NiwwLDEsMC0yLDEuODFMMTIuMTYsMTdabS02Ljg1LTJhMi44NiwyLjg2LDAsMSwxLDIuODYtMi44NkEyLjg2LDIuODYsMCwwLDEsNy40NSwxMy4yM1oiLz4nKSxMLkNsclNoYXBlQnVnPSgwLEUuY2xySWNvblNWRyko''@;'; + put 'put ''JzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIyMy41NiIgY3k9IjE3Ljc0IiByPSIxLjk1Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMjIuNDIiIGN5PSIy''@;'; + put 'put ''NS44OCIgcj0iMS41OCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjEyLjg2IiBjeT0iMTcuNzQiIHI9IjEuOTUiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTQiIGN4PSIxMy45OSIgY3k9IjI1Ljg4IiByPSIxLjU4Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTMwLjgzLDIwSDI5YTE5LjI5LDE5LjI5LDAsMCwwLTEuMTgtNS43M2wxLjQ2LS43OWExLDEs''@;'; + put 'put ''MCwwLDAtLjk1LTEuNzZsLTMsMS42NEExNy42NSwxNy42NSwwLDAsMSwyNywyMC43MkMyNywyNywyMy44LDMxLjIzLDE4LjgsMzEuNjJWMTVIMTcuMlYzMS42MkMxMi4yMiwzMS4yMSw5LDI3LDksMjAuNzJhMTcuNzQsMTcuNzQsMCwwLDEsMS43My03LjM0TDcuNywxMS43MmExLDEsMCwwLDAt''@;'; + put 'put ''Ljk1LDEuNzZsMS41LjhBMTkuMzgsMTkuMzgsMCwwLDAsNy4wNywyMEg1LjE3YTEsMSwwLDAsMCwwLDJINy4xYTE0LjYyLDE0LjYyLDAsMCwwLDEuNjYsNi4xN0w2Ljg3LDI5LjQ5QTEsMSwwLDEsMCw4LDMxLjEybDEuODQtMS4yOUExMC4zOCwxMC4zOCwwLDAsMCwxOCwzMy42NmExMC4zOCwx''@;'; + put 'put ''MC4zOCwwLDAsMCw4LjE0LTMuODFMMjgsMzEuMTJhMSwxLDAsMSwwLDEuMTUtMS42NGwtMS44Ni0xLjNBMTQuNjEsMTQuNjEsMCwwLDAsMjguOTQsMjJoMS44OWExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTYiIGQ9Ik0xMS41MSw1LjM2YTEuNjcsMS42NywwLDAsMCwxLjA3LS41MUEzLjIxLDMuMjEsMCwwLDEsMTMuNzYsNmExNi4zOCwxNi4zOCwwLDAsMC0yLjY1LDIuODksMiwyLDAsMCwwLDEuNjEsMy4xOUgyMy4zMkEyLDIsMCwwLDAsMjUuMSwxMWEyLDIsMCwwLDAtLjE3LTIuMUExNi4z''@;'; + put 'put ''NCwxNi4zNCwwLDAsMCwyMi4yNSw2YTMuMjEsMy4yMSwwLDAsMSwxLjE3LTEuMTFBMS42OCwxLjY4LDAsMSwwLDIzLDMuMjcsNC43Nyw0Ljc3LDAsMCwwLDIxLDVhNS44MSw1LjgxLDAsMCwwLTIuOTMtMSw1LjgzLDUuODMsMCwwLDAtMywxQTQuNzcsNC43NywwLDAsMCwxMywzLjI3YTEuNjgs''@;'; + put 'put ''MS42OCwwLDEsMC0xLjQ5LDIuMDlaTTE4LDYuMDdjMS40NSwwLDMuNTMsMS41Nyw1LjMxLDRoMGwtMTAuNiwwQzE0LjQ5LDcuNjMsMTYuNTYsNi4wNywxOCw2LjA3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjgz''@;'; + put 'put ''LDIwSDI5YTE5LjI5LDE5LjI5LDAsMCwwLTEuMTgtNS43M2wxLjQ2LS43OWExLDEsMCwwLDAtLjk1LTEuNzZsLTMsMS4yOEgxMC43OEw3LjcsMTEuNzJhMSwxLDAsMCwwLS45NSwxLjc2bDEuNS44QTE5LjM4LDE5LjM4LDAsMCwwLDcuMDcsMjBINS4xN2ExLDEsMCwwLDAsMCwySDcuMWExNC42''@;'; + put 'put ''MiwxNC42MiwwLDAsMCwxLjY2LDYuMTdMNi44NywyOS40OUExLDEsMCwxLDAsOCwzMS4xMmwxLjg0LTEuMjlBMTAuMjksMTAuMjksMCwwLDAsMTcsMzMuNlYxNWgyVjMzLjZhMTAuMjksMTAuMjksMCwwLDAsNy4xNi0zLjc1TDI4LDMxLjEyYTEsMSwwLDEsMCwxLjE1LTEuNjRsLTEuODYtMS4z''@;'; + put 'put ''QTE0LjYxLDE0LjYxLDAsMCwwLDI4Ljk0LDIyaDEuODlhMSwxLDAsMCwwLDAtMlpNMTAuOTEsMTcuNzRhMS45NSwxLjk1LDAsMSwxLDEuOTUsMS45NUExLjk1LDEuOTUsMCwwLDEsMTAuOTEsMTcuNzRaTTE0LDI3LjQ2YTEuNTgsMS41OCwwLDEsMSwxLjU4LTEuNThBMS41OCwxLjU4LDAsMCwx''@;'; + put 'put ''LDE0LDI3LjQ2Wm04LjQzLDBBMS41OCwxLjU4LDAsMSwxLDI0LDI1Ljg4LDEuNTgsMS41OCwwLDAsMSwyMi40MiwyNy40NlptMS4xMy03Ljc3YTEuOTUsMS45NSwwLDEsMSwxLjk1LTEuOTVBMS45NSwxLjk1LDAsMCwxLDIzLjU2LDE5LjY5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTExLjIzLDUuMjZhMS42NywxLjY3LDAsMCwwLC41NC0uMzIsNS45LDUuOSwwLDAsMSwuODkuNTgsNy40NCw3LjQ0LDAsMCwxLC45NS45NEExOC40OCwxOC40OCwwLDAsMCwxMC43OSw5LjdjLS40LjU3LjA5LDEuMjguODYsMS4y''@;'; + put 'put ''OEgyNC40NGMuNzcsMCwxLjI2LS43MS44Ni0xLjI4YTE4LjM4LDE4LjM4LDAsMCwwLTIuODgtMy4yOCw3LjI4LDcuMjgsMCwwLDEsLjkxLS45LDUuOSw1LjksMCwwLDEsLjg5LS41OCwxLjY5LDEuNjksMCwxLDAtLjU2LTEuNTEsNy40OSw3LjQ5LDAsMCwwLTEuMzIuODMsOS4wNiw5LjA2LDAs''@;'; + put 'put ''MCwwLTEuMTksMS4xOEE1Ljg1LDUuODUsMCwwLDAsMTgsNC4zYTUuOTEsNS45MSwwLDAsMC0zLjE3LDEuMTksOS4yLDkuMiwwLDAsMC0xLjIyLTEuMjEsNy40OSw3LjQ5LDAsMCwwLTEuMzItLjgzLDEuNjgsMS42OCwwLDEsMC0xLjExLDEuODNaIi8+JyksTC5DbHJTaGFwZVRoZXJtb21ldGVy''@;'; + put 'put ''PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTksMjMuMTdWMTEuNDZIMTdWMjMuMmEzLDMsMCwxLDAsMiwwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTIiIGQ9Ik0yNiwxNWExLDEsMCwwLDAsMC0ySDIzLjkyVjExSDI2YTEsMSwwLDAsMCwwLTJIMjMuOTJWOGE2LDYsMCwwLDAtMTIsMFYyMC44MWE4LDgsMCwxLDAsMTItLjJWMTlIMjZhMSwxLDAsMCwwLDAtMkgyMy45MlYxNVpNMjQsMjZhNiw2LDAsMSwxLTEwLjM2LTQuMTJsLjI3''@;'; + put 'put ''LS4yOVY4YTQsNCwwLDAsMSw4LDBWMjEuNDRsLjMuMjlBNiw2LDAsMCwxLDI0LDI2WiIvPicpLEwuQ2xyU2hhcGVQZW5jaWw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMy44Nyw4LjMyLDI4LDIuNDJhMi4w''@;'; + put 'put ''NywyLjA3LDAsMCwwLTIuOTIsMEw0LjI3LDIzLjJsLTEuOSw4LjJhMi4wNiwyLjA2LDAsMCwwLDIsMi41LDIuMTQsMi4xNCwwLDAsMCwuNDMsMEwxMy4wOSwzMiwzMy44NywxMS4yNEEyLjA3LDIuMDcsMCwwLDAsMzMuODcsOC4zMlpNMTIuMDksMzAuMiw0LjMyLDMxLjgzbDEuNzctNy42Mkwy''@;'; + put 'put ''MS42Niw4LjdsNiw2Wk0yOSwxMy4yNWwtNi02LDMuNDgtMy40Niw1LjksNloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNC4yMiwyMy4ybC0xLjksOC4yYTIuMDYsMi4wNiwwLDAsMCwyLDIuNSwyLjE0LDIuMTQs''@;'; + put 'put ''MCwwLDAsLjQzLDBMMTMsMzIsMjguODQsMTYuMjIsMjAsNy40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMy44Miw4LjMybC01LjktNS45YTIuMDcsMi4wNywwLDAsMC0yLjkyLDBMMjEuNzIsNS43bDguODMs''@;'; + put 'put ''OC44MywzLjI4LTMuMjhBMi4wNywyLjA3LDAsMCwwLDMzLjgyLDguMzJaIi8+JyksTC5DbHJTaGFwZU5vdGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LDMwSDZWOEgxOS4yMmwyLTJINkEyLDIsMCwwLDAsNCw4VjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxNWwt''@;'; + put 'put ''MiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNTMsNS44NCwzMC4xNiwyLjQ3YTEuNjEsMS42MSwwLDAsMC0yLjI4LDBMMTQuMTcsMTYuMjZsLTEuMTEsNC44MUExLjYxLDEuNjEsMCwwLDAsMTQuNjMs''@;'; + put 'put ''MjMsMS42OSwxLjY5LDAsMCwwLDE1LDIzbDQuODUtMS4wN0wzMy41Myw4LjEyQTEuNjEsMS42MSwwLDAsMCwzMy41Myw1Ljg0Wk0xOC44MSwyMC4wOGwtMy42Ni44MUwxNiwxNy4yNiwyNi4zMiw2Ljg3bDIuODIsMi44MlpNMzAuMjcsOC41NiwyNy40NSw1Ljc0LDI5LDQuMTYsMzEuODQsN1oi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDYuNCwyOS4zLDIuN2ExLjcxLDEuNzEsMCwwLDAtMi4zNiwwTDIzLjY1LDZINkEyLDIsMCwwLDAsNCw4VjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlYxMS43NmwzLTNBMS42NywxLjY3LDAsMCwwLDMzLDYuNFpNMTguODMsMjAuMTNsLTQuMTkuOTMsMS00LjE1LDkuNTUtOS41NywzLjIzLDMuMjNaTTI5LjUsOS40MywyNi4yNyw2LjJsMS44NS0xLjg1LDMuMjMsMy4yM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''IC8+JyksTC5DbHJTaGFwZVJlZnJlc2g9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yMi40LDExLjY1YTEuMDksMS4wOSwwLDAsMCwxLjA5LDEuMDlIMzQuNDNWMS44MWExLjA5LDEuMDksMCwxLDAtMi4xOSww''@;'; + put 'put ''VjguOTVhMTYuNDEsMTYuNDEsMCwxLDAsMS40NywxNS44NiwxLjEyLDEuMTIsMCwwLDAtMi4wNS0uOSwxNC4xOCwxNC4xOCwwLDEsMS0xLjA1LTEzLjM2SDIzLjVBMS4wOSwxLjA5LDAsMCwwLDIyLjQsMTEuNjVaIi8+JyksTC5DbHJTaGFwZVN5bmM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi44NCwxNS43MmExLDEsMCwxLDAtMiwuMjlBMTMuMTUsMTMuMTUsMCwwLDEsMzEsMTcuOTQsMTMsMTMsMCwwLDEsOC43LDI3aDUuMzZhMSwxLDAsMCwwLDAtMmgtOXY5YTEsMSwwLDEsMCwyLDBWMjguMkEx''@;'; + put 'put ''NSwxNSwwLDAsMCwzMi44NCwxNS43MloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLjA2LDFBMS4wNSwxLjA1LDAsMCwwLDI5LDJWNy44M0ExNC45NCwxNC45NCwwLDAsMCwzLDE3Ljk0YTE1LjE2LDE1''@;'; + put 'put ''LjE2LDAsMCwwLC4yLDIuNDgsMSwxLDAsMCwwLDEsLjg0aC4xNmExLDEsMCwwLDAsLjgyLTEuMTVBMTMuMjMsMTMuMjMsMCwwLDEsNSwxNy45NGExMywxMywwLDAsMSwxMy0xM0ExMi44NywxMi44NywwLDAsMSwyNy40NCw5SDIyLjA2YTEsMSwwLDAsMCwwLDJIMzFWMkExLDEsMCwwLDAsMzAu''@;'; + put 'put ''MDYsMVoiLz4nKSxMLkNsclNoYXBlVmlld0xpc3Q9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjIiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTcsMTBIMzFhMSwxLDAsMCwwLDAtMkg3YTEsMSwwLDAsMCwwLDJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjIiIHk9IjE0IiB3aWR0aD0i''@;'; + put 'put ''MiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0zMSwxNEg3YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMiIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTMxLDIwSDdhMSwxLDAsMCwwLDAsMkgzMWExLDEs''@;'; + put 'put ''MCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiB4PSIyIiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC04IiBkPSJNMzEsMjZIN2ExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+JyksTC5DbHJTaGFwZVZpZXdDYXJkcz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDE3SDRh''@;'; + put 'put ''MiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwxN1pNNCw4djdIMTVWOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDE3SDIxYTIsMiww''@;'; + put 'put ''LDAsMS0yLTJWOGEyLDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMTdaTTIxLDh2N0gzMlY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTUsMzBINGEyLDIsMCwwLDEt''@;'; + put 'put ''Mi0yVjIxYTIsMiwwLDAsMSwyLTJIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwzMFpNNCwyMXY3SDE1VjIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzIsMzBIMjFhMiwyLDAsMCwxLTIt''@;'; + put 'put ''MlYyMWEyLDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+JyksTC5DbHJTaGFwZUxpZ2h0YnVsYj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMi4yNWExMSwxMSwwLDAsMC0xMSwxMSwxMC42OCwxMC42OCwwLDAs''@;'; + put 'put ''MCwxLDQuNjMsMTYuMzYsMTYuMzYsMCwwLDAsMS4xMiwxLjc4LDE3LDE3LDAsMCwxLDIsMy40NywxNi4xOSwxNi4xOSwwLDAsMSwuNTksNGgyQTE4LjE3LDE4LjE3LDAsMCwwLDEzLDIyLjQ0YTE4LjQ2LDE4LjQ2LDAsMCwwLTIuMjItMy45MiwxNS43OSwxNS43OSwwLDAsMS0xLTEuNTRBOC42''@;'; + put 'put ''NCw4LjY0LDAsMCwxLDksMTMuMjNhOSw5LDAsMCwxLDE4LjA3LDBBOC42NCw4LjY0LDAsMCwxLDI2LjIxLDE3YTE1Ljc5LDE1Ljc5LDAsMCwxLTEsMS41NEExOC40NiwxOC40NiwwLDAsMCwyMywyMi40NGExOC4xNywxOC4xNywwLDAsMC0uNzEsNC43MWgyYTE2LjE5LDE2LjE5LDAsMCwxLC41''@;'; + put 'put ''OS00LDE3LDE3LDAsMCwxLDItMy40N0ExNi4zMSwxNi4zMSwwLDAsMCwyOCwxNy44NmExMC42OCwxMC42OCwwLDAsMCwxLTQuNjNBMTEsMTEsMCwwLDAsMTgsMi4yNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MTguNjMsMTUuNTFhLjguOCwwLDAsMC0xLjEzLDBsLTMsMywyLjg2LDMuMTN2NS41NEgxOVYyMWwtMi4yNC0yLjQ1LDEuODktMS44OUEuOC44LDAsMCwwLDE4LjYzLDE1LjUxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0yMy44NiwyOS4xNUgxMi4xMWEuOC44LDAsMSwwLDAsMS42SDIzLjg2YS44LjgsMCwwLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDMyLjE1SDE0YS44LjgsMCwxLDAsMCwxLjZIMjJh''@;'; + put 'put ''LjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuMzIsMTAuODlsLTIuNzMsMi43M2EuOC44LDAsMCwwLDEuMTMsMS4xM0wxOC40NSwxMmEuOC44LDAsMSwwLTEuMTMtMS4xM1oiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMjcuMTVWMjFsLTIuMjQtMi40NSwxLjg5LTEuODlhLjguOCwwLDAsMC0xLjEzLTEuMTNsLTMsMywyLjg2LDMuMTN2NS41NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjg2LDI5LjE1SDEyLjExYS44LjgsMCwxLDAsMCwxLjZIMjMuODZhLjguOCwwLDAsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDMyLjE1SDE0YS44LjgsMCwxLDAsMCwxLjZIMjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTE1LjcyLDE0Ljc1LDE4LjQ1LDEyYS44LjgsMCwxLDAtMS4xMy0xLjEzbC0yLjczLDIuNzNhLjguOCwwLDAsMCwxLjEzLDEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0yNywxMi44OGMwLC4xMiwwLC4yMywwLC4zNUE4LjY0LDguNjQsMCwwLDEsMjYuMjEsMTdhMTUuNzksMTUuNzksMCwwLDEtMSwxLjU0QTE4LjQ2LDE4LjQ2LDAsMCwwLDIzLDIyLjQ0YTE4LjE3LDE4LjE3LDAsMCwwLS43MSw0LjcxaDJhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcs''@;'; + put 'put ''MTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3Ljg2YTEwLjYzLDEwLjYzLDAsMCwwLDEtNC40M0E3LjQ1LDcuNDUsMCwwLDEsMjcsMTIuODhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0xMy43MSwyNy4xNUExOC4xNywxOC4xNywwLDAsMCwxMywyMi40NGExOC40NiwxOC40NiwwLDAsMC0yLjIyLTMuOTIsMTUuNzksMTUuNzksMCwwLDEtMS0xLjU0QTguNjQsOC42NCwwLDAsMSw5LDEzLjIzLDksOSwwLDAsMSwyMi41Myw1LjQ3YTcuNDUsNy40NSwwLDAs''@;'; + put 'put ''MSwuNDMtMiwxMSwxMSwwLDAsMC0xNiw5LjgsMTAuNjgsMTAuNjgsMCwwLDAsMSw0LjYzLDE2LjM2LDE2LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYs''@;'; + put 'put ''MjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDMyLjE1SDE0YS44LjgsMCwxLDAsMCwxLjZIMjJhLjguOCwwLDEsMCwwLTEu''@;'; + put 'put ''NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyLjI1YTExLDExLDAsMCwwLTExLDExLDEwLjY4LDEwLjY4LDAsMCwwLDEsNC42MywxNi4zNiwxNi4zNiwwLDAsMCwxLjEyLDEuNzgsMTcsMTcsMCwwLDEsMiwzLjQ3''@;'; + put 'put ''LDE2LjE5LDE2LjE5LDAsMCwxLC41OSw0aDUuNjlWMjEuNjFsLTIuODYtMy4xMywzLTNhLjguOCwwLDAsMSwxLjEzLDEuMTNsLTEuODksMS44OUwxOSwyMXY2LjE3SDI0LjNhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcsMTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3''@;'; + put 'put ''Ljg2YTEwLjY4LDEwLjY4LDAsMCwwLDEtNC42M0ExMSwxMSwwLDAsMCwxOCwyLjI1Wk0xOC40NSwxMmwtMi43MywyLjczYS44LjgsMCwxLDEtMS4xMy0xLjEzbDIuNzMtMi43M0EuOC44LDAsMSwxLDE4LjQ1LDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTIzLjg2LDI5LjE1SDEyLjExYS44LjgsMCwxLDAsMCwxLjZIMjMuODZhLjguOCwwLDAsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIs''@;'; + put 'put ''MzIuMTVIMTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZBNy40Nyw3LjQ3LDAsMCwxLDIzLDMuNDRhMTEsMTEs''@;'; + put 'put ''MCwwLDAtMTYsOS44LDEwLjY4LDEwLjY4LDAsMCwwLDEsNC42MywxNi4zNiwxNi4zNiwwLDAsMCwxLjEyLDEuNzgsMTcsMTcsMCwwLDEsMiwzLjQ3LDE2LjE5LDE2LjE5LDAsMCwxLC41OSw0aDUuNjlWMjEuNjFsLTIuODYtMy4xMywzLTNhLjguOCwwLDAsMSwxLjEzLDEuMTNsLTEuODksMS44''@;'; + put 'put ''OUwxOSwyMXY2LjE3SDI0LjNhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcsMTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3Ljg2YTEwLjYzLDEwLjYzLDAsMCwwLDEtNC40M0E3LjUsNy41LDAsMCwxLDIyLjUsNlptLTQsNi0yLjczLDIuNzNhLjguOCwwLDEsMS0xLjEz''@;'; + put 'put ''LTEuMTNsMi43My0yLjczQS44LjgsMCwxLDEsMTguNDUsMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLEwuQ2xyU2hhcGVEb3dubG9hZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCww''@;'; + put 'put ''LDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjkuNDgsMjguNjEsMTguODdhMSwxLDAsMCwwLTEuNDEtMS40MUwxOSwyNS42NVY1YTEsMSwwLDAsMC0yLDBWMjUuNjVMOC44MSwxNy40NmEx''@;'; + put 'put ''LDEsMCwxLDAtMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTE4LDI5LjQ4LDI4LjYxLDE4Ljg3YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMjUuNjVWNWExLDEsMCwwLDAtMiwwVjI1LjY1TDguODEsMTcuNDZhMSwxLDAsMSww''@;'; + put 'put ''LTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzEsMzFINWExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xOCwyOS40OCwyOC42MSwxOC44N2ExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDI1LjY1VjVhMSwxLDAsMCwwLTIsMFYyNS42NUw4LjgxLDE3LjQ2YTEsMSwwLDEsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCww''@;'; + put 'put ''LDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlVXBsb2FkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEsMzFINWExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik04LjgxLDE1LDE3LDYuODNWMjcuNDhhMSwxLDAsMCwwLDIsMFY2LjgzTDI3LjE5LDE1YTEsMSwwLDAsMCwxLjQxLTEuNDFMMTgsMyw3LjM5LDEzLjYxQTEsMSwwLDEsMCw4LjgxLDE1WiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzEsMzFINWMtMC42LDAtMSwwLjQtMSwxczAuNCwxLDEsMWgyNmMwLjYsMCwxLTAuNCwxLTFTMzEuNiwzMSwzMSwzMXoiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTguOCwxNUwxNyw2Ljh2MjAuNmMwLDAuNiwwLjQsMSwxLDFzMS0wLjQsMS0xVjYuOEwyMC4xLDhsMS0xLjhMMTgsM0w3LjQsMTMuNkM3LDE0LDYu''@;'; + put 'put ''OSwxNC42LDcuMiwxNXMxLDAuNSwxLjQsMC4xQzguNywxNS4xLDguOCwxNS4xLDguOCwxNXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4x''@;'; + put 'put ''TDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik04LjgxLDE1LDE3LDYuODNWMjcuNDhhMSwxLDAsMCwwLDIsMFY2LjgzTDI3LjE5LDE1YTEsMSwwLDAsMCwxLjQxLTEuNDFMMTgsMyw3LjM5LDEzLjYxQTEsMSwwLDEsMCw4LjgxLDE1WiIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFwZUxvY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOC4wOSwyMC41OUEyLjQxLDIuNDEsMCwwLDAsMTcsMjUuMTRWMjhoMlYyNS4yM2EyLjQxLDIuNDEsMCwwLDAtLjkxLTQuNjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTIiIGQ9Ik0yNiwxNVYxMC43MmE4LjIsOC4yLDAsMCwwLTgtOC4zNiw4LjIsOC4yLDAsMCwwLTgsOC4zNlYxNUg3VjMyYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYxNVpNMTIsMTAuNzJhNi4yLDYuMiwwLDAsMSw2LTYuMzYsNi4yLDYuMiwwLDAsMSw2LDYu''@;'; + put 'put ''MzZWMTVIMTJaTTksMzJWMTdIMjdWMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI2LDE1VjEwLjcyYTguMiw4LjIsMCwwLDAtOC04LjM2LDguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDdWMzJhMiwyLDAsMCww''@;'; + put 'put ''LDIsMkgyN2EyLDIsMCwwLDAsMi0yVjE1Wk0xOSwyNS4yM1YyOEgxN1YyNS4xNGEyLjQsMi40LDAsMSwxLDIsLjA5Wk0yNCwxNUgxMlYxMC43MmE2LjIsNi4yLDAsMCwxLDYtNi4zNiw2LjIsNi4yLDAsMCwxLDYsNi4zNloiLz4nKSxMLkNsclNoYXBlVW5sb2NrPSgwLEUuY2xySWNvblNWRyko''@;'; + put 'put ''JzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTIsMjUuMTRWMjhoMlYyNS4yM2EyLjQyLDIuNDIsMCwxLDAtMi0uMDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; + put 'put ''IGQ9Ik0yNiwyYTguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDJWMzJhMiwyLDAsMCwwLDIsMkgyMmEyLDIsMCwwLDAsMi0yVjE1SDIwVjEwLjM2QTYuMiw2LjIsMCwwLDEsMjYsNGE2LjIsNi4yLDAsMCwxLDYsNi4zNnY2LjgzYTEsMSwwLDAsMCwyLDBWMTAuMzZBOC4yLDguMiwwLDAsMCwyNiwy''@;'; + put 'put ''Wk0yMiwxN1YzMkg0VjE3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNiwyYTguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDJWMzJhMiwyLDAsMCwwLDIsMkgyMmEyLDIsMCwwLDAsMi0yVjE1SDIwVjEwLjM2QTYu''@;'; + put 'put ''Miw2LjIsMCwwLDEsMjYsNGE2LjIsNi4yLDAsMCwxLDYsNi4zNnY2LjgzYTEsMSwwLDAsMCwyLDBWMTAuMzZBOC4yLDguMiwwLDAsMCwyNiwyWk0xNCwyNS4yM1YyOEgxMlYyNS4xNGEyLjQsMi40LDAsMSwxLDIsLjA5WiIvPicpLEwuQ2xyU2hhcGVVc2Vycz0oMCxFLmNsckljb25TVkcpKCc8''@;'; + put 'put ''cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE3LjksMTcuM2MyLjcsMCw0LjgtMi4yLDQuOC00LjljMC0yLjctMi4yLTQuOC00LjktNC44Yy0yLjcsMC00LjgsMi4yLTQuOCw0LjhDMTMsMTUuMSwxNS4yLDE3LjMsMTcuOSwxNy4zeiBNMTcuOCw5''@;'; + put 'put ''LjZDMTcuOSw5LjYsMTcuOSw5LjYsMTcuOCw5LjZjMS42LDAsMi45LDEuMywyLjksMi45cy0xLjMsMi44LTIuOSwyLjhjLTEuNiwwLTIuOC0xLjMtMi44LTIuOEMxNSwxMC45LDE2LjMsOS42LDE3LjgsOS42eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIuNywxNi43Yy0xLjktMS43LTQuNC0yLjYtNy0yLjVjLTAuMywwLTAuNSwwLTAuOCwwYy0wLjIsMC44LTAuNSwxLjUtMC45LDIuMWMwLjYtMC4xLDEuMS0wLjEsMS43LTAuMWMxLjktMC4xLDMuOCwwLjUsNS4zLDEuNlYyNWgydi04TDMyLjcs''@;'; + put 'put ''MTYuN3oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIzLjQsNy44YzAuNS0xLjIsMS45LTEuOCwzLjItMS4zYzEuMiwwLjUsMS44LDEuOSwxLjMsMy4yYy0wLjQsMC45LTEuMywxLjUtMi4yLDEuNWMtMC4y''@;'; + put 'put ''LDAtMC41LDAtMC43LTAuMWMwLjEsMC41LDAuMSwxLDAuMSwxLjRjMCwwLjIsMCwwLjQsMCwwLjZjMC4yLDAsMC40LDAuMSwwLjYsMC4xYzIuNSwwLDQuNS0yLDQuNS00LjRjMC0yLjUtMi00LjUtNC40LTQuNWMtMS42LDAtMywwLjgtMy44LDIuMkMyMi41LDYuOCwyMyw3LjIsMjMuNCw3Ljh6''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xMiwxNi40Yy0wLjQtMC42LTAuNy0xLjMtMC45LTIuMWMtMC4zLDAtMC41LDAtMC44LDBjLTIuNi0wLjEtNS4xLDAuOC03LDIuNEwzLDE3djhoMnYtNy4yYzEu''@;'; + put 'put ''Ni0xLjEsMy40LTEuNyw1LjMtMS42QzEwLjksMTYuMiwxMS41LDE2LjMsMTIsMTYuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTEwLjMsMTMuMWMwLjIsMCwwLjQsMCwwLjYtMC4xYzAtMC4yLDAtMC40''@;'; + put 'put ''LDAtMC42YzAtMC41LDAtMSwwLjEtMS40Yy0wLjIsMC4xLTAuNSwwLjEtMC43LDAuMWMtMS4zLDAtMi40LTEuMS0yLjQtMi40YzAtMS4zLDEuMS0yLjQsMi40LTIuNGMxLDAsMS45LDAuNiwyLjMsMS41YzAuNC0wLjUsMS0xLDEuNS0xLjRjLTEuMy0yLjEtNC0yLjgtNi4xLTEuNWMtMi4xLDEu''@;'; + put 'put ''My0yLjgsNC0xLjUsNi4xQzcuMywxMi4zLDguNywxMy4xLDEwLjMsMTMuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTI2LjEsMjIuN2wtMC4yLTAuM2MtMi0yLjItNC44LTMuNS03LjgtMy40Yy0zLTAu''@;'; + put 'put ''MS01LjksMS4yLTcuOSwzLjRMMTAsMjIuN3Y3LjZjMCwwLjksMC43LDEuNywxLjcsMS43YzAsMCwwLDAsMCwwaDEyLjhjMC45LDAsMS43LTAuOCwxLjctMS43YzAsMCwwLDAsMCwwVjIyLjd6IE0yNC4xLDMwSDEydi02LjZjMS42LTEuNiwzLjgtMi40LDYuMS0yLjRjMi4yLTAuMSw0LjQsMC44''@;'; + put 'put ''LDYsMi40VjMweiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTEuMDksMTQuNTdjLjEsMCwuMiwwLC4zMSwwYTYuNDMsNi40MywwLDAsMSwuMDktMiwyLjA5LDIuMDksMCwx''@;'; + put 'put ''LDEsMS40Ny0zLDYuNTgsNi41OCwwLDAsMSwxLjU1LTEuMzEsNC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEzLDE4LjE0YTYu''@;'; + put 'put ''NTMsNi41MywwLDAsMS0xLjI4LTIuMmwtLjYzLDBhOC42Nyw4LjY3LDAsMCwwLTYuNDMsMi41MmwtLjI0LjI4djdoMlYxOS41MWE3LDcsMCwwLDEsNC42Ny0xLjZBOC4wOSw4LjA5LDAsMCwxLDEzLDE4LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzEuMzUsMTguNDJBOC41OSw4LjU5LDAsMCwwLDI1LDE1LjkxYy0uMzIsMC0uNiwwLS45LjA2YTYuNTMsNi41MywwLDAsMS0xLjM1LDIuMjVBNy45LDcuOSwwLDAsMSwyNSwxNy45MWE2Ljk0LDYuOTQsMCwwLDEs''@;'; + put 'put ''NC42NCwxLjU4djYuMjdoMlYxOC43WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMTguMSwxOS43M0E5LjY5LDkuNjksMCwwLDAsMTEsMjIuNDdsLS4yNS4yOHY3LjMzYTEu''@;'; + put 'put ''NTcsMS41NywwLDAsMCwxLjYxLDEuNTRIMjMuODNhMS41NywxLjU3LDAsMCwwLDEuNjEtMS41NFYyMi43M2wtLjI1LS4yOEE5LjU4LDkuNTgsMCwwLDAsMTguMSwxOS43M1ptNS4zMyw5Ljg4SDEyLjczVjIzLjU1YTguMDgsOC4wOCwwLDAsMSw1LjM3LTEuODIsOCw4LDAsMCwxLDUuMzMsMS44''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiBkPSJNMjAuMjgsMTQuMjdhMi40NiwyLjQ2LDAsMSwxLTIuNDItMi44OSwyLjQ0LDIuNDQsMCwwLDEsMSwuMjQsMy42NywzLjY3LDAs''@;'; + put 'put ''MCwxLC40My0yLDQuNDEsNC40MSwwLDAsMC0xLjQ4LS4yN0E0LjQ3LDQuNDcsMCwxLDAsMjIuMTQsMTUsMy42OSwzLjY5LDAsMCwxLDIwLjI4LDE0LjI3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjcuMTguOGwtNS43Miw5LjkxYTEuMjgsMS4yOCwwLDAsMCwxLjEsMS45MUgzNGExLjI4LDEuMjgsMCwwLDAsMS4xLTEuOTFMMjkuMzkuOEExLjI4LDEuMjgsMCwwLDAsMjcuMTguOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4wOSwxNC41N2MuMSwwLC4yLDAsLjMxLDBhNi40Myw2LjQzLDAsMCwxLC4wOS0yLDIuMDksMi4wOSwwLDEsMSwxLjQ3LTMsNi41OCw2LjU4LDAsMCwxLDEuNTUtMS4zMSw0LjA5LDQuMDks''@;'; + put 'put ''MCwxLDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTEzLDE4LjE0YTYuNTMsNi41MywwLDAsMS0xLjI4LTIuMmwtLjYzLDBhOC42Nyw4LjY3LDAsMCwwLTYu''@;'; + put 'put ''NDMsMi41MmwtLjI0LjI4djdoMlYxOS41MWE3LDcsMCwwLDEsNC42Ny0xLjZBOC4wOSw4LjA5LDAsMCwxLDEzLDE4LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgZD0iTTMxLjM1''@;'; + put 'put ''LDE4LjQyQTguNTksOC41OSwwLDAsMCwyNSwxNS45MWMtLjMyLDAtLjYsMC0uOS4wNmE2LjUzLDYuNTMsMCwwLDEtMS4zNSwyLjI1QTcuOSw3LjksMCwwLDEsMjUsMTcuOTFhNi45NCw2Ljk0LDAsMCwxLDQuNjQsMS41OHY2LjI3aDJWMTguN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0xNy44NiwxOC4zYTQuNDcsNC40NywwLDEsMC00LjQ3LTQuNDdBNC40Nyw0LjQ3LDAsMCwwLDE3Ljg2LDE4LjNabTAtNi45M2EyLjQ3LDIuNDcsMCwxLDEtMi40NywyLjQ3QTIuNDcs''@;'; + put 'put ''Mi40NywwLDAsMSwxNy44NiwxMS4zN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIGQ9Ik0xOC4xLDE5LjczQTkuNjksOS42OSwwLDAsMCwxMSwyMi40N2wtLjI1LjI4djcuMzNhMS41''@;'; + put 'put ''NywxLjU3LDAsMCwwLDEuNjEsMS41NEgyMy44M2ExLjU3LDEuNTcsMCwwLDAsMS42MS0xLjU0VjIyLjczbC0uMjUtLjI4QTkuNTgsOS41OCwwLDAsMCwxOC4xLDE5LjczWm01LjMzLDkuODhIMTIuNzNWMjMuNTVhOC4wOCw4LjA4LDAsMCwxLDUuMzctMS44Miw4LDgsMCwwLDEsNS4zMywxLjha''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiBkPSJNMjYuMzcsMTJhMiwyLDAsMCwxLTIuMDkuNDIsNi41Myw2LjUzLDAsMCwxLC4xNSwxLjM4LDYuNTksNi41OSwwLDAsMSwwLC42OCw0''@;'; + put 'put ''LDQsMCwwLDAsLjU3LjA2LDQuMDgsNC4wOCwwLDAsMCwzLjMtMS43QTcuNDUsNy40NSwwLDAsMSwyNi4zNywxMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIGQ9Ik0yMi45NSw2Ljkz''@;'; + put 'put ''YTQuMTYsNC4xNiwwLDAsMC0xLjQ3LDEuNDRBNi41OSw2LjU5LDAsMCwxLDIzLDkuNzdhMi4xLDIuMSwwLDAsMSwuNTktLjgzQTcuNDQsNy40NCwwLDAsMSwyMi45NSw2LjkzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtOC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAuMzMiIGN5PSI1LjY3IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTEyLDE2LjE0cS0uNDMsMC0uODcsMGE4LjY3LDguNjcsMCww''@;'; + put 'put ''LDAtNi40MywyLjUybC0uMjQuMjh2OC4yOEg4LjU0di00LjdsLjU1LS42Mi4yNS0uMjlhMTEsMTEsMCwwLDEsNC43MS0yLjg2QTYuNTksNi41OSwwLDAsMSwxMiwxNi4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBk''@;'; + put 'put ''PSJNMzEuMzQsMTguNjNhOC42Nyw4LjY3LDAsMCwwLTYuNDMtMi41MiwxMC40NywxMC40NywwLDAsMC0xLjA5LjA2LDYuNTksNi41OSwwLDAsMS0yLDIuNDUsMTAuOTEsMTAuOTEsMCwwLDEsNSwzbC4yNS4yOC41NC42MnY0LjcxaDMuOTRWMTguOTFaIi8+XG4gICAgICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTExLjEsMTQuMTljLjExLDAsLjIsMCwuMzEsMGE2LjQ1LDYuNDUsMCwwLDEsMy4xMS02LjI5LDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTI0LjQzLDEzLjQ0YTYuNTQsNi41NCwwLDAsMSwwLC42OSw0LjA5LDQuMDksMCwwLDAsLjU4LjA1aC4xOUE0LjA5LDQuMDksMCwxLDAsMjEuNDcsOCw2LjUzLDYuNTMsMCwwLDEsMjQuNDMsMTMuNDRaIi8+XG4gICAgICAgICAgICAgICAg''@;'; + put 'put ''PGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiBjeD0iMTcuODciIGN5PSIxMy40NSIgcj0iNC40NyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIGQ9Ik0xOC4xMSwyMC4zQTkuNjksOS42''@;'; + put 'put ''OSwwLDAsMCwxMSwyM2wtLjI1LjI4djYuMzNhMS41NywxLjU3LDAsMCwwLDEuNiwxLjU0SDIzLjg0YTEuNTcsMS41NywwLDAsMCwxLjYtMS41NFYyMy4zTDI1LjIsMjNBOS41OCw5LjU4LDAsMCwwLDE4LjExLDIwLjNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; + put 'put ''bGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTEyLDE2LjE0cS0uNDMsMC0uODcsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2OC4yOEg4LjU0di00LjdsLjU1LS42Mi4yNS0uMjlhMTEsMTEsMCwwLDEsNC43MS0yLjg2QTYuNTksNi41OSww''@;'; + put 'put ''LDAsMSwxMiwxNi4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzEuMzQsMTguNjNhOC42Nyw4LjY3LDAsMCwwLTYuNDMtMi41MiwxMC40NywxMC40NywwLDAsMC0xLjA5LjA2''@;'; + put 'put ''LDYuNTksNi41OSwwLDAsMS0yLDIuNDUsMTAuOTEsMTAuOTEsMCwwLDEsNSwzbC4yNS4yOC41NC42MnY0LjcxaDMuOTRWMTguOTFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgZD0iTTEx''@;'; + put 'put ''LjEsMTQuMTljLjExLDAsLjIsMCwuMzEsMGE2LjQ1LDYuNDUsMCwwLDEsMy4xMS02LjI5LDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIgZD0i''@;'; + put 'put ''TTE4LjExLDIwLjNBOS42OSw5LjY5LDAsMCwwLDExLDIzbC0uMjUuMjh2Ni4zM2ExLjU3LDEuNTcsMCwwLDAsMS42LDEuNTRIMjMuODRhMS41NywxLjU3LDAsMCwwLDEuNi0xLjU0VjIzLjNMMjUuMiwyM0E5LjU4LDkuNTgsMCwwLDAsMTguMTEsMjAuM1oiLz5cbiAgICAgICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC01LS1hbGVydGVkIiBkPSJNMTcuODcsMTcuOTJhNC40Niw0LjQ2LDAsMCwwLDQtMi41NEEzLjY3LDMuNjcsMCwwLDEsMTksOS44OWwuMzUtLjYxQTQuNDIsNC40MiwwLDAsMCwxNy44Nyw5YTQuNDcsNC40''@;'; + put 'put ''NywwLDEsMCwwLDguOTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTIsMTYuMTRxLS40Myww''@;'; + put 'put ''LS44NywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY4LjI4SDguNTR2LTQuN2wuNTUtLjYyLjI1LS4yOWExMSwxMSwwLDAsMSw0LjcxLTIuODZBNi41OCw2LjU4LDAsMCwxLDEyLDE2LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzEuMzQsMTguNjNhOC42Nyw4LjY3LDAsMCwwLTYuNDMtMi41MiwxMC40NywxMC40NywwLDAsMC0xLjA5LjA2LDYuNTksNi41OSwwLDAsMS0yLDIuNDUsMTAuOTEsMTAuOTEsMCwwLDEsNSwzbC4yNS4yOC41NC42MnY0Ljcx''@;'; + put 'put ''aDMuOTRWMTguOTFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xMS4xLDE0LjE5Yy4xMSwwLC4yLDAsLjMxLDBhNi40NSw2LjQ1LDAsMCwxLDMuMTEtNi4yOSw0LjA5LDQuMDksMCwx''@;'; + put 'put ''LDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiIGN4PSIxNy44NyIgY3k9IjEzLjQ1IiByPSI0LjQ3Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQiIGQ9Ik0xOC4xMSwyMC4zQTkuNjksOS42OSwwLDAsMCwxMSwyM2wtLjI1LjI4djYuMzNhMS41NywxLjU3LDAsMCwwLDEuNiwxLjU0SDIzLjg0YTEuNTcsMS41NywwLDAsMCwxLjYtMS41NFYyMy4zTDI1LjIsMjNBOS41''@;'; + put 'put ''OCw5LjU4LDAsMCwwLDE4LjExLDIwLjNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC02LS1iYWRnZWQiIGQ9Ik0yNC40MywxMy40NGE2LjU0LDYuNTQsMCwwLDEsMCwuNjksNC4wOSw0LjA5LDAsMCwwLC41OC4w''@;'; + put 'put ''NWguMTlhNC4wNSw0LjA1LDAsMCwwLDIuNTItMSw3LjUsNy41LDAsMCwxLTUuMTQtNi4zMkE0LjEzLDQuMTMsMCwwLDAsMjEuNDcsOCw2LjUzLDYuNTMsMCwwLDEsMjQuNDMsMTMuNDRaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTctLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVQb3BPdXQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNywzM0g1YTIsMiwwLDAs''@;'; + put 'put ''MS0yLTJWOUEyLDIsMCwwLDEsNSw3SDE1VjlINVYzMUgyN1YyMWgyVjMxQTIsMiwwLDAsMSwyNywzM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDNhMSwxLDAsMCwwLDAsMkgyOS41OUwxNS43NCwx''@;'; + put 'put ''OC44NWExLDEsMCwxLDAsMS40MSwxLjQxTDMxLDYuNDFWMThhMSwxLDAsMCwwLDIsMFYzWiIvPicpLEwuQ2xyU2hhcGVGaWx0ZXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMyw0SDNBMSwxLDAsMCwwLDIs''@;'; + put 'put ''NVY2LjY3YTEuNzksMS43OSwwLDAsMCwuNTMsMS4yN0wxNCwxOS41OHYxMC4ybDIsLjc2VjE5YTEsMSwwLDAsMC0uMjktLjcxTDQsNi41OVY2SDMydi42MUwyMC4zMywxOC4yOUExLDEsMCwwLDAsMjAsMTlsMCwxMy4yMUwyMiwzM1YxOS41TDMzLjQ3LDhBMS44MSwxLjgxLDAsMCwwLDM0LDYu''@;'; + put 'put ''N1Y1QTEsMSwwLDAsMCwzMyw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yMiwzM1YxOS41TDMzLjQ3LDhBMS44MSwxLjgxLDAsMCwwLDM0LDYuN1Y1YTEsMSwwLDAsMC0xLTFIM0ExLDEsMCwwLDAsMiw1VjYu''@;'; + put 'put ''NjdhMS43OSwxLjc5LDAsMCwwLC41MywxLjI3TDE0LDE5LjU4djEwLjJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD0iTTMzLjQ4LDRoLTMxQS41Mi41MiwwLDAsMCwyLDQuNTJWNi4yNGExLjMzLDEuMzMsMCwwLDAsLjM5Ljk1bDEyLDEydjEwbDcuMjUsMy42MVYxOS4xN2wxMi0xMkEx''@;'; + put 'put ''LjM1LDEuMzUsMCwwLDAsMzQsNi4yNlY0LjUyQS41Mi41MiwwLDAsMCwzMy40OCw0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlUGluPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIiBkPSJNMzMsMTYuNTlhMSwxLDAsMCwxLS43MS0uMjlMMTkuNywzLjcxYTEsMSwwLDAsMSwxLjQxLTEuNDFMMzMuNzEsMTQuODlBMSwxLDAsMCwxLDMzLDE2LjU5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0yIiBkPSJNMjguNTIsMTUuNTZsLTEuNDEtMS40MS03LjIsNy4yYTEsMSwwLDAsMC0uMjUsMSw5LDksMCwwLDEtMS41Myw4LjA5TDUuNTgsMTcuODdhOSw5LDAsMCwxLDguMDktMS41MywxLDEsMCwwLDAsMS0uMjVsNy4yLTcuMkwyMC40NCw3LjQ4bC02Ljc5LDYuNzlBMTAuOTQsMTAu''@;'; + put 'put ''OTQsMCwwLDAsMy40MSwxNy4xMWExLDEsMCwwLDAsMCwxLjQybDYuMzMsNi4zM0wyLjI5LDMyLjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFsNy40NC03LjQ0LDYuMzMsNi4zM2ExLDEsMCwwLDAsLjcxLjI5aDBhMSwxLDAsMCwwLC43MS0uMywxMSwxMSwwLDAsMCwyLjg0LTEwLjI0WiIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywxNi43MWExLDEsMCwwLDEtLjcxLS4yOUwxOS43LDMuODJhMSwxLDAsMCwxLDEuNDEtMS40MUwzMy43MSwxNUExLDEsMCwwLDEsMzMsMTYuNzFaIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTIwLjQ0LDcuNTlsLTYuNzksNi43OUExMC45NCwxMC45NCwwLDAsMCwzLjQxLDE3LjIyYTEsMSwwLDAsMCwwLDEuNDJMOS43MywyNSwyLjI5LDMyLjQxYTEsMSwwLDEsMCwxLjQxLDEuNDFsNy40NC03''@;'; + put 'put ''LjQ0LDYuMzMsNi4zM2ExLDEsMCwwLDAsLjcxLjI5aDBhMSwxLDAsMCwwLC43MS0uMywxMSwxMSwwLDAsMCwyLjg0LTEwLjI0bDYuNzktNi43OVoiLz4nKSxMLkNsclNoYXBlRmlsZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMSIgZD0iTTIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxMS45MlptLS4zLDIuNDksNiw1LjloLTZaTTgsMzBWNkgyMHY4aDhWMzBaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjEuNTksMTIuMzlWNi40OWwxLjA3LDFhNy4zMSw3LjMxLDAsMCwxLDAtMi44MkwyMS44OSw0SDcuODNBMS44OCwxLjg4LDAsMCwwLDYsNS45MVYzMC4wOUEx''@;'; + put 'put ''Ljg4LDEuODgsMCwwLDAsNy44MywzMkgyOC4xN0ExLjg4LDEuODgsMCwwLDAsMzAsMzAuMDlWMTMuNWE3LjQ1LDcuNDUsMCwwLDEtMy45MS0xLjExWk0yOCwzMEg4VjZIMjB2OGg4WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yOCwxNS40VjMwSDhWNkgy''@;'; + put 'put ''MFY4LjI1bDIuMjUtMy45TDIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxNS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1''@;'; + put 'put ''LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwz''@;'; + put 'put ''MCwzMC4wOVYxMS45MlpNMjEsMTNWNS44NEwyOC4zLDEzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjcuMjUsMTNIMjFWNS44NGwxLjY0LDEuNmE3LjI1LDcuMjUsMCwwLDEsMC0y''@;'; + put 'put ''Ljc0TDIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxMy41QTcuNDcsNy40NywwLDAsMSwyNy4yNSwxM1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIg''@;'; + put 'put ''ZD0iTTIyLjIsMTUuNGMtMiwwLTMuNy0xLjYtMy43LTMuNmMwLTAuNywwLjItMS4zLDAuNS0xLjlsMy4yLTUuNUwyMS45LDRINy44QzYuOCw0LDYsNC45LDYsNS45djI0LjJjMCwxLDAuOCwxLjksMS44LDEuOWgyMC4zYzEsMCwxLjgtMC45LDEuOC0xLjlWMTUuNEgyMi4yeiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNyww''@;'; + put 'put ''LDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAuNC0wLjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3LDEsMjYuOSwxLjF6Ii8+JyksTC5DbHJTaGFwZVBsdXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMCwxN0gxOVY2YTEsMSwwLDEsMC0yLDBWMTdINmExLDEsMCwwLDAtMSwxLC45MS45MSwwLDAsMCwxLC45NEgxN1YzMGExLDEsMCwxLDAsMiwwVjE5SDMwYTEsMSwwLDAsMCwxLTFBMSwxLDAsMCwwLDMwLDE3WiIvPicpLEwuQ2xyU2hhcGVNaW51cz0o''@;'; + put 'put ''MCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYsMTdIMTBhMSwxLDAsMCwwLDAsMkgyNmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZU1pbnVzQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9''@;'; + put 'put ''Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNCwxN0gxMmEx''@;'; + put 'put ''LDEsMCwwLDAsMCwySDI0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTYsMTcuNUgxMmExLjUsMS41LDAsMCwx''@;'; + put 'put ''LDAtM0gyNGExLjUsMS41LDAsMCwxLDAsM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZVBsdXNDaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LjE3LDE3SDE5VjkuODNhMSwxLDAsMCwwLTIsMFYxN0g5LjgzYTEsMSww''@;'; + put 'put ''LDAsMCwwLDJIMTd2Ny4xN2ExLDEsMCwwLDAsMiwwVjE5aDcuMTdhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0w''@;'; + put 'put ''LDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwxOEExNiwxNiwwLDEsMSwxOCwyLDE2LDE2LDAsMCwxLDM0LDE4Wm0tOC40MS0xLjVIMTku''@;'; + put 'put ''NVYxMC40MWExLjUsMS41LDAsMCwwLTMsMFYxNi41SDEwLjQxYTEuNSwxLjUsMCwwLDAsMCwzSDE2LjV2Ni4wOWExLjUsMS41LDAsMCwwLDMsMFYxOS41aDYuMDlhMS41LDEuNSwwLDAsMCwwLTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksTC5DbHJTaGFw''@;'; + put 'put ''ZUJhbj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNNCwxOEExMy45MywxMy45MywwLDAsMSw3LjQzLDguODVMMjcuMTUsMjguNTdBMTQs''@;'; + put 'put ''MTQsMCwwLDEsNCwxOFptMjQuNTcsOS4xNUw4Ljg1LDcuNDNBMTQsMTQsMCwwLDEsMjguNTcsMjcuMTVaIi8+JyksTC5DbHJTaGFwZVRpbWVzQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTkuNjEs''@;'; + put 'put ''MThsNC44Ni00Ljg2YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTguMiwxNi41NGwtNC44OS00Ljg5YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTYuNzgsMTgsMTIsMjIuNzJhMSwxLDAsMSwwLDEuNDEsMS40MWw0Ljc3LTQuNzcsNC43NCw0Ljc0YTEsMSwwLDAsMCwxLjQxLTEuNDFaIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTgsMjIuMWExLjQsMS40LDAsMCwxLTIsMmwtNi02TDEyLDI2LjEyYTEuNCwxLjQsMCwxLDEtMi0yTDE2LDE4LjA4LDkuODMsMTEu''@;'; + put 'put ''ODZhMS40LDEuNCwwLDEsMSwyLTJMMTgsMTYuMWw2LjE3LTYuMTdhMS40LDEuNCwwLDEsMSwyLDJMMjAsMTguMDhaIi8+JyksTC5DbHJTaGFwZVRyYXNoPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTQs''@;'; + put 'put ''MzRIOC44NkEyLjkzLDIuOTMsMCwwLDEsNiwzMVYxMS4yM0g4VjMxYS45My45MywwLDAsMCwuODYsMUgyNy4xNEEuOTMuOTMsMCwwLDAsMjgsMzFWMTEuMjNoMlYzMUEyLjkzLDIuOTMsMCwwLDEsMjcuMTQsMzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMC43OCw5SDVBMSwxLDAsMCwxLDUsN0gzMC43OGExLDEsMCwwLDEsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyMSIgeT0iMTMiIHdpZHRoPSIy''@;'; + put 'put ''IiBoZWlnaHQ9IjE1Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjEzIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMTUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTIzLDUuODZIMjEuMVY0SDE0LjlWNS44NkgxM1Y0YTIsMiwwLDAsMSwxLjktMmg2LjJBMiwyLDAsMCwxLDIzLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTYsOVYz''@;'; + put 'put ''MWEyLjkzLDIuOTMsMCwwLDAsMi44NiwzSDI3LjA5QTIuOTMsMi45MywwLDAsMCwzMCwzMVY5Wm05LDIwSDEzVjE0aDJabTgsMEgyMVYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMC43Myw1SDIzVjRB''@;'; + put 'put ''MiwyLDAsMCwwLDIxLDJoLTYuMkEyLDIsMCwwLDAsMTMsNFY1SDVBMSwxLDAsMSwwLDUsN0gzMC43M2ExLDEsMCwwLDAsMC0yWiIvPicpLEwuQ2xyU2hhcGVUYWc9KDAsRS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMTAuNTIiIGN5PSIxMC41MiIgcj0iMS40MyIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4yLDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYsMTQuNmEyLDIsMCwwLDAsMi44MywwbDku''@;'; + put 'put ''OS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaTTIwLjYyLDMwLjUyLDYsMTUuOTFWNmg5LjkybDE0LjYsMTQuNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTAuNTIiIGN5PSIxMC41MiIgcj0iMS40MyIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4ybC0zLjgtMy44SDI1LjMxbDUuMjIsNS4yMi05LjksOS45TDYsMTUuOTFWNmg5LjkybDMuNDEsMy40MSwxLTEuNzgtMy0z''@;'; + put 'put ''QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAsLjU5LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTAuNTIiIGN5PSIxMC41MiIgcj0iMS40MyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMiwxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAs''@;'; + put 'put ''MCwzMS45MywxOS4yWk0yMC42MiwzMC41Miw2LDE1LjkxVjZoOS45MmwxNC42LDE0LjYyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAsLjU5''@;'; + put 'put ''LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNOS42NSwxMS4zMWExLjY2LDEuNjYsMCwxLDEsMS42Ni0xLjY2QTEuNjYsMS42NiwwLDAsMSw5LjY1LDExLjMxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''MSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjQ2LDE1LjczSDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSwxMC4yMmwxLjQzLTIuNDdMMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAsLjU5LDEuNDFsMTQuNiwxNC42YTIs''@;'; + put 'put ''MiwwLDAsMCwyLjgzLDBsOS45LTkuOWEyLDIsMCwwLDAsMC0yLjgzWk05LjY1LDExLjMxYTEuNjYsMS42NiwwLDEsMSwxLjY2LTEuNjZBMS42NiwxLjY2LDAsMCwxLDkuNjUsMTEuMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS40N2wtNS43Miw5LjkxYTEuMjgsMS4yOCwwLDAsMCwxLjEsMS45MUgzMy42OGExLjI4LDEuMjgsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS40N0ExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS40N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4yLDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYsMTQuNmEy''@;'; + put 'put ''LDIsMCwwLDAsMi44MywwbDkuOS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaTTkuNjUsMTEuMzFhMS42NiwxLjY2LDAsMSwxLDEuNjYtMS42NkExLjY2LDEuNjYsMCwwLDEsOS42NSwxMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2Vk''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYuMzMiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZVRhZ3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMz''@;'; + put 'put ''LjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI3LjgxIiBjeT0iMTEuMTQiIHI9IjEuMzMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMTQuMiw1LjU4QTEuOTIsMS45Miww''@;'; + put 'put ''LDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1pNMTcuMjYsMjkuNjksMy42OSwx''@;'; + put 'put ''Ni4xNVY3aDkuMUwyNi4zNywyMC40OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI3LjgxIiBjeT0iMTEuMTQiIHI9IjEuMzMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYxQTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEu''@;'; + put 'put ''OTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTE3LjI2LDI5LjY5LDMuNjksMTYuMTVWN2g5LjFMMjYuMzcsMjAuNDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDMxLjc1LDIwLjQ1LDIxLjIyLDMxLjA3YTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8Y2lyY2xlIGN4PSI3LjgxIiBjeT0iMTEuMTQiIHI9IjEuMzMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMjQsMTUuNEgyMi4yM0EzLjY1''@;'; + put 'put ''LDMuNjUsMCwwLDEsMjEsMTUuMTlsNS4zMyw1LjI5LTkuMTEsOS4yMUwzLjY5LDE2LjE1VjdoOS4xbDYsNS45NGEzLjY4LDMuNjgsMCwwLDEsLjEtMi42OUwxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45Miwx''@;'; + put 'put ''LjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yMC44Myw2LjgsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwxOS43OSw4LjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMz''@;'; + put 'put ''LjE2LDE5LjEzLDI5LjQzLDE1LjRIMjYuNjVsNS4xLDVMMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCww''@;'; + put 'put ''LDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEu''@;'; + put 'put ''OTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3Wk02LjY3LDExLjcyQTEuNzMsMS43MywwLDEsMSw4LjQsMTAsMS43MywxLjcz''@;'; + put 'put ''LDAsMCwxLDYuNjcsMTEuNzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIy''@;'; + put 'put ''YTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1pNNi42NywxMS43MkExLjczLDEuNzMsMCwxLDEsOC40LDEwLDEuNzMsMS43MywwLDAsMSw2LjY3LDExLjcyWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDMxLjc1LDIwLjQ1LDIxLjIyLDMxLjA3YTEuOTMsMS45Myww''@;'; + put 'put ''LDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLjgzLDYuOCwxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDE5Ljc5LDguNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywyOS40MywxNS40SDI2LjY1bDUuMSw1TDIxLjIyLDMxLjA3YTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMjQsMTUuNEgyMi4yM2EzLjY3LDMuNjcsMCwwLDEtMy4zNi01LjE1TDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYx''@;'; + put 'put ''QTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTYuNjcsMTEuNzJBMS43MywxLjczLDAsMSwxLDguNCwxMCwx''@;'; + put 'put ''LjczLDEuNzMsMCwwLDEsNi42NywxMS43MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4''@;'; + put 'put ''LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz4nKSxMLkNsclNoYXBlSGlzdG9yeT0oMCxFLmNsckljb25T''@;'; + put 'put ''VkcpKCc8cGF0aCBkPSJNMTgsOS44M2ExLDEsMCwwLDAtMSwxdjguNzJsNS45LDRBMSwxLDAsMCwwLDI0LDIxLjg4bC01LTMuMzlWMTAuODNBMSwxLDAsMCwwLDE4LDkuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTE4LDJBMTYuMDksMTYuMDksMCwwLDAsNCwxMC4yNlY1LjJhMSwxLDAsMCwwLTIsMFYxNGg4LjhhMSwxLDAsMCwwLDAtMkg1LjM1QTE0LDE0LDAsMSwxLDguNTgsMjguMzVhMSwxLDAsMCwwLTEuMzUsMS40OEExNiwxNiwwLDEsMCwxOCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz4nKSxMLkNsclNoYXBlQ2xvY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguOTIsMTguNFYxMC43NWExLDEsMCwwLDAtMiwwdjguNzJsNS45LDRhMSwxLDAsMSwwLDEuMTEtMS42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNOCwxNy45NEE5Ljk0LDkuOTQsMCwwLDEsMjMuNDEsOS41OWwuODUtMS4zNmExMS41NSwxMS41NSwwLDEsMC04LjUzLDIxTDE2LDI3LjdBMTAsMTAsMCwwLDEsOCwxNy45NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguOTIsMTAuNzVhMSwxLDAsMCwwLTIsMHY4LjcybDUuOSw0YTEsMSwwLDEsMCwxLjExLTEuNjZsLTUtMy4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDQsNy40NCwwLDAsMS0xLjkxLjU4LDE0LjA1LDE0LjA1LDAsMSwxLTguNi04LjYsNy40NCw3LjQ0LDAsMCwxLC41OC0xLjkxLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDYuMzhhMTEuNTYsMTEuNTYsMCwwLDAtMi4yNywyMi44OUwxNiwyNy43YTEwLDEwLDAsMSwxLDcuMzktMTguMWgwYTcuNDUsNy40NSwwLDAsMS0uNzgtMi4yM0ExMS40NSwxMS40NSwwLDAsMCwxOCw2LjM4''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjkyLDEwLjc1YTEsMSwwLDAsMC0yLDB2OC43Mmw1LjksNGExLDEsMCwxLDAsMS4xMS0xLjY2bC01LTMuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc3LDE1LjM5aC0yQTE0LDE0LDAsMSwxLDIyLjA5LDQuNjFsMS0xLjc2QTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDMzLjc3LDE1LjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTIt''@;'; + put 'put ''LWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCw4YTkuODEsOS44MSwwLDAsMSwyLC4yM2wuODUtMS40NmExMS41NSwxMS41NSwwLDEsMC01LjEzLDIyLjUyTDE2LDI3LjdBMTAsMTAsMCwwLDEsMTgsOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptNi4yLDIxLjE4YTEsMSwwLDAsMS0xLjM5LjI4''@;'; + put 'put ''bC01LjktNFYxMC43NWExLDEsMCwwLDEsMiwwVjE4LjRsNSwzLjM5QTEsMSwwLDAsMSwyNC4yLDIzLjE4Wk0yMy44NSw4LjIzYTExLjM5LDExLjM5LDAsMSwwLTguNTQsMjAuODNMMTUsMzAuNjNhMTMsMTMsMCwxLDEsOS43LTIzLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxQTcuNDgsNy40OCwwLDAsMSwyMi42OCw3LjYzLDExLjI0LDExLjI0LDAsMCwwLDE4LDYuNmExMS4zOSwxMS4zOSwwLDAsMC0yLjY5LDIyLjQ3TDE1LDMwLjYzQTEzLDEzLDAsMCwxLDE4LDVhMTIuODEsMTIuODEs''@;'; + put 'put ''MCwwLDEsNC41MS44Miw3LjQ2LDcuNDYsMCwwLDEsLjY4LTIuOTQsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWk0yNC4yLDIzLjE4YTEsMSwwLDAsMS0xLjM5LjI4bC01LjktNFYxMC43NWExLDEsMCwwLDEsMiwwVjE4LjRsNSwzLjM5QTEsMSwwLDAsMSwyNC4yLDIzLjE4WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43NywxNS4zOUgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZjMC0uMDktLjA5LS4xOC0uMTMtLjI3VjE4LjRsNSwzLjM5YTEsMSwwLDAsMS0xLjExLDEuNjZsLTUuOS00VjEwLjc1YTEsMSwwLDAsMSwxLjkxLS40MUEzLjY1LDMuNjUsMCwwLDEs''@;'; + put 'put ''MTksOS44OUwyMC43NCw3QTExLjE5LDExLjE5LDAsMCwwLDE4LDYuNmExMS4zOSwxMS4zOSwwLDAsMC0yLjY5LDIyLjQ3TDE1LDMwLjYzQTEzLDEzLDAsMCwxLDE4LDVhMTIuOCwxMi44LDAsMCwxLDMuNTcuNTFsMS41My0yLjY2QTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDMzLjc3''@;'; + put 'put ''LDE1LjM5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwx''@;'; + put 'put ''MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPicpLEwuQ2xyU2hhcGVBbGFybUNsb2NrPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0z''@;'; + put 'put ''MS40NywzLjg0YTUuNzgsNS43OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIs''@;'; + put 'put ''My40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTYuNCw0LjA5QTE0''@;'; + put 'put ''LDE0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCwwLDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MUwyOCwyNy43OEExNCwxNCwwLDAsMCwxNi40LDQuMDlaTTE5LjU4LDI5LjlBMTIsMTIs''@;'; + put 'put ''MCwxLDEsMjkuOTIsMTkuNTYsMTIsMTIsMCwwLDEsMTkuNTgsMjkuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuOTIsMjAuMzRsLTYuMDYtM1Y5LjVhLjkuOSwwLDAsMC0xLjgsMHY5TDI0LjEyLDIyYS45''@;'; + put 'put ''LjksMCwxLDAsLjc5LTEuNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwx''@;'; + put 'put ''LDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4Ljg2LDkuNWEuOS45LDAsMCwwLTEuOCwwdjlMMjQuMTIsMjJhLjkuOSwwLDEsMCwuNzktMS42MmwtNi4wNi0z''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwyNy43OEExMy44OCwxMy44OCwwLDAsMCwzMS43NywxNS40aC0yYTEyLjA3LDEyLjA3LDAsMSwxLTguNjctOWwxLTEuOGExNCwx''@;'; + put 'put ''NCwwLDAsMC0xNCwyMy4yN0w1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMt''@;'; + put 'put ''LWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEu''@;'; + put 'put ''NDIsMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwyNy43OEExMy44OCwxMy44OCwwLDAsMCwzMS43NywxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NkwxOSwx''@;'; + put 'put ''My40djMuNzhMMjUsMjAuMWExLDEsMCwxLDEtLjg3LDEuOEwxNywxOC40NFY5LjY5YTEsMSwwLDAsMSwyLDBWMTBMMTksOS44OWwzLTUuMjhhMTQsMTQsMCwwLDAtMTQsMjMuMjdMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCwwLDE2Ljg4LS4w''@;'; + put 'put ''OGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42''@;'; + put 'put ''OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40''@;'; + put 'put ''MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0yOCwyNy43OGExMy44OSwxMy44OSwwLDAsMCwzLjIxLTE0LjM5QTcuNDYsNy40NiwwLDAsMSwyMi41LDZhNy41Miw3LjUyLDAsMCwxLC4xMS0xLjIxQTE0LDE0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCww''@;'; + put 'put ''LDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVptLTIuNTItNi4zNWExLDEsMCwwLDEtMS4zMy40N0wxNywxOC40NFY5LjY5YTEsMSwwLDAsMSwyLDB2Ny41TDI1LDIwLjFBMSwxLDAsMCwxLDI1LjQ5LDIxLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40''@;'; + put 'put ''MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMTguODYsOS41YS45LjksMCwwLDAtMS44LDB2OUwyNC4xMiwyMmEuOS45LDAsMSwwLC43OS0xLjYybC02LjA2LTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwyNy43''@;'; + put 'put ''OGExMy44OSwxMy44OSwwLDAsMCwzLjIxLTE0LjM5LDcsNywwLDAsMS0yLjExLjA1QTEyLDEyLDAsMSwxLDIyLjU2LDYuOSw3LjU0LDcuNTQsMCwwLDEsMjIuNSw2YTcuNTIsNy41MiwwLDAsMSwuMTEtMS4yMUExNCwxNCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcs''@;'; + put 'put ''MzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBj''@;'; + put 'put ''eT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDcsMy44NGE1Ljc4LDUuNzgsMCwwLDAtNy4zNy0uNjMsMTYuMDgsMTYuMDgsMCwwLDEsOC4y''@;'; + put 'put ''LDcuNjVBNS43Myw1LjczLDAsMCwwLDMxLjQ3LDMuODRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgs''@;'; + put 'put ''MTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCw0QTE0LDE0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45''@;'; + put 'put ''LDAsMCwwLDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MUwyOCwyNy43OEExNCwxNCwwLDAsMCwxOCw0Wm03LjQ3LDE3LjQzYTEsMSwwLDAsMS0xLjMzLjQ3TDE3LDE4LjQ0VjkuNjlhMSwxLDAsMCwxLDIsMHY3LjVMMjUsMjAuMUExLDEsMCwwLDEsMjUuNDksMjEuNDNa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+JyksTC5DbHJTaGFwZUNpcmNsZUFycm93PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQs''@;'; + put 'put ''MCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjA4LDguMjZsLTcuNjEsNy42MWExLDEsMCwxLDAsMS40MSwxLjQxTDE3LDEyLjE4djE1YTEsMSwwLDAsMCwyLDBWMTJsNS4yOCw1LjI4YTEs''@;'; + put 'put ''MSwwLDEsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptOCwxNS41N2ExLjQzLDEuNDMsMCwwLDEtMiwwTDE5LjQsMTNW''@;'; + put 'put ''MjcuMTRhMS40LDEuNCwwLDAsMS0yLjgsMHYtMTRsLTQuNDMsNC40M2ExLjQsMS40LDAsMCwxLTItMkwxOC4wOCw3LjcsMjYsMTUuNTlBMS40LDEuNCwwLDAsMSwyNiwxNy41N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLkNsclNoYXBlQ2hpbGRBcnJv''@;'; + put 'put ''dz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQuODIsMTUuOGExLDEsMCwwLDAtMS40MSwwLDEsMSwwLDAsMCwwLDEuNDFMMjcuMiwyMUg5VjMuNzhhMSwxLDAsMSwwLTIsMFYyMWEyLDIsMCwwLDAsMiwySDI3LjE1bC0zLjc0LDMuNzVhMSwxLDAsMCwwLDAsMS40MSwxLDEsMCwwLDAs''@;'; + put 'put ''LjcuMjksMSwxLDAsMCwwLC43MS0uMjlMMzEsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQ29weT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjkuNSw3aC0xOUExLjUsMS41LDAsMCwwLDksOC41djI0QTEuNSwxLjUs''@;'; + put 'put ''MCwwLDAsMTAuNSwzNGgxOUExLjUsMS41LDAsMCwwLDMxLDMyLjVWOC41QTEuNSwxLjUsMCwwLDAsMjkuNSw3Wk0yOSwzMkgxMVY5SDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzLjVBMS41LDEuNSww''@;'; + put 'put ''LDAsMCwyNC41LDJINS41QTEuNSwxLjUsMCwwLDAsNCwzLjV2MjRBMS41LDEuNSwwLDAsMCw1LjUsMjlINlY0SDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNywzLjU2QTEuNTYsMS41NiwwLDAsMCwyNS40''@;'; + put 'put ''MywySDUuNTdBMS41NiwxLjU2LDAsMCwwLDQsMy41NlYyOC40NEExLjU2LDEuNTYsMCwwLDAsNS41NywzMGguNTJWNC4wN0gyN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjYiIHdpZHRoPSIyMyIgaGVpZ2h0''@;'; + put 'put ''PSIyOCIgcng9IjEuNSIgcnk9IjEuNSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPicpLEwuQ2xyU2hhcGVIZWxwPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwx''@;'; + put 'put ''LDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjI5LDguOTJhNy4zOCw3LjM4LDAsMCwwLTUuNzIsMi41NywxLDEsMCwwLDAtLjMyLjcxLjkyLjkyLDAsMCwwLC45''@;'; + put 'put ''NS45MiwxLjA4LDEuMDgsMCwwLDAsLjcxLS4yOSw1LjcsNS43LDAsMCwxLDQuMzMtMmMyLjM2LDAsMy44MywxLjUyLDMuODMsMy40MXYuMDVjMCwyLjIxLTEuNzYsMy40NC00LjU0LDMuNjVhLjguOCwwLDAsMC0uNzYuOTJzMCwyLjMyLDAsMi43NWExLDEsMCwwLDAsMSwuOWguMTFhMSwxLDAs''@;'; + put 'put ''MCwwLC45LTFWMTkuNDVjMy0uNDIsNS40My0yLDUuNDMtNS4yOHYtLjA1QzI0LjE4LDExLjEyLDIxLjg0LDguOTIsMTguMjksOC45MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxNy43OCIgY3k9IjI2LjIi''@;'; + put 'put ''IHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuMTgsMTQuMTd2LS4wNWMwLTMtMi4zNC01LjItNS44OC01LjJhNy4zOCw3LjM4LDAsMCwwLTUuNzIsMi41NywxLDEsMCwwLDAtLjMyLjcxLjkyLjky''@;'; + put 'put ''LDAsMCwwLC45NS45MiwxLjA4LDEuMDgsMCwwLDAsLjcxLS4yOSw1LjcsNS43LDAsMCwxLDQuMzMtMmMyLjM2LDAsMy44MywxLjUyLDMuODMsMy40MXYuMDVjMCwyLjIxLTEuNzYsMy40NC00LjU0LDMuNjVhLjguOCwwLDAsMC0uNzYuOTJzMCwyLjMyLDAsMi43NWExLDEsMCwwLDAsMSwuOWgu''@;'; + put 'put ''MTFhMSwxLDAsMCwwLC45LTFWMTkuNDVDMjEuNzUsMTksMjQuMTgsMTcuNDUsMjQuMTgsMTQuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE3Ljc4IiBjeT0iMjYuMiIgcj0i''@;'; + put 'put ''MS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40Myw3LjQzLDAsMCwxLTEuOTEuNTgsMTQuMDUsMTQuMDUsMCwxLDEtOC42LTguNiw3LjQ0LDcuNDQsMCww''@;'; + put 'put ''LDEsLjU4LTEuOTEsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDksNy40OSwwLDAsMS05LjkzLTkuOTMsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWm0tMTUuMzQsMTVhMS42NSwxLjY1LDAs''@;'; + put 'put ''MSwxLDEuNjUtMS42NUExLjY1LDEuNjUsMCwwLDEsMTcuNzgsMjcuODVabTEuMzctOC4wNnYxLjcyYTEuMzcsMS4zNywwLDAsMS0xLjMsMS4zNmgtLjExYTEuMzQsMS4zNCwwLDAsMS0xLjM5LTEuM2MwLS40NCwwLTIuNzYsMC0yLjc2YTEuMTksMS4xOSwwLDAsMSwxLjEyLTEuMzFjMS41Ny0u''@;'; + put 'put ''MTIsNC4xOC0uNyw0LjE4LTMuMjUsMC0xLjgzLTEuNDEtMy4wNy0zLjQzLTMuMDdhNS4zMSw1LjMxLDAsMCwwLTQsMS45MiwxLjM2LDEuMzYsMCwwLDEtMi4zNS0uOSwxLjQzLDEuNDMsMCwwLDEsLjQzLTEsNy43Nyw3Ljc3LDAsMCwxLDYtMi42OWMzLjcsMCw2LjI4LDIuMyw2LjI4LDUuNkMy''@;'; + put 'put ''NC41OCwxNy4xNiwyMi42MSwxOS4yLDE5LjE1LDE5Ljc5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabS0uMjIsMjUuODVhMS42NSwxLjY1LDAsMSwxLDEuNjUtMS42NUExLjY1LDEuNjUsMCwwLDEsMTcuNzgsMjcu''@;'; + put 'put ''ODVabTEuMzctOC4wNnYxLjcyYTEuMzcsMS4zNywwLDAsMS0xLjMsMS4zNmgtLjExYTEuMzQsMS4zNCwwLDAsMS0xLjM5LTEuM2MwLS40NCwwLTIuNzYsMC0yLjc2YTEuMTksMS4xOSwwLDAsMSwxLjEyLTEuMzFjMS41Ny0uMTIsNC4xOC0uNyw0LjE4LTMuMjUsMC0xLjgzLTEuNDEtMy4wNy0z''@;'; + put 'put ''LjQzLTMuMDdhNS4zMSw1LjMxLDAsMCwwLTQsMS45MiwxLjM2LDEuMzYsMCwwLDEtMi4zNS0uOSwxLjQzLDEuNDMsMCwwLDEsLjQzLTEsNy43Nyw3Ljc3LDAsMCwxLDYtMi42OWMzLjcsMCw2LjI4LDIuMyw2LjI4LDUuNkMyNC41OCwxNy4xNiwyMi42MSwxOS4yLDE5LjE1LDE5Ljc5WiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLEwuQ2xyU2hhcGVMb2dpbj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsNEgxMmEyLDIsMCwwLDAtMiwySDI4VjMwSDEyVjIwLjJIMTBWMzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAs''@;'; + put 'put ''MCwwLDI4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS4xMiwxOC40NmExLDEsMCwxLDAsMS40MSwxLjQxbDUuNzktNS43OUwxNi41NCw4LjI5YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTguNSwxM0g0YTEs''@;'; + put 'put ''MSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMUgxOC41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsNEgxMmEyLDIsMCwwLDAtMiwydjdoOC41TDE1LjEyLDkuNzFhMSwxLDAsMCwxLDEuNDEtMS40MWw1Ljc5''@;'; + put 'put ''LDUuNzktNS43OSw1Ljc5YTEsMSwwLDAsMS0xLjQxLTEuNDFMMTguNSwxNUgxMFYzMGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjgsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MTAsMTNINGExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUxvZ291dD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNyw2SDIzdjkuOGgyVjZhMiwyLDAsMCwwLTItMkg3QTIsMiww''@;'; + put 'put ''LDAsMCw1LDZWMzBhMiwyLDAsMCwwLDIsMkgyM2EyLDIsMCwwLDAsMi0ySDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjE2LDE3LjI4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzAuMTMsMjJIMTUuNjNhMSwx''@;'; + put 'put ''LDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwxaDE0LjVsLTMuMzgsMy40NmExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIzLjA3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMyw0SDdBMiwyLDAsMCwwLDUsNlYzMGEy''@;'; + put 'put ''LDIsMCwwLDAsMiwySDIzYTIsMiwwLDAsMCwyLTJWMjRIMTUuNjNhMSwxLDAsMCwxLTEtMSwxLDEsMCwwLDEsMS0xSDI1VjZBMiwyLDAsMCwwLDIzLDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMTYsMTcuMjhh''@;'; + put 'put ''MSwxLDAsMCwwLTEuNDEsMS40MUwzMC4xMywyMkgyNXYyaDUuMTNsLTMuMzgsMy40NmExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIzLjA3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPicpLEwuQ2xyU2hhcGVQcmludGVyPSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; + put 'put ''IGQ9Ik0yOSw5SDI3VjVIOVY5SDdhNCw0LDAsMCwwLTQsNFYyNEg2LjkyVjIyLjA5SDVWMTNhMiwyLDAsMCwxLDItMkgyOWEyLDIsMCwwLDEsMiwydjlIMjkuMDhWMjRIMzNWMTNBNCw0LDAsMCwwLDI5LDlaTTI1LDlIMTFWN0gyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMThIOGExLDEsMCwwLDAsMCwySDlWMzJIMjdWMjBoMWExLDEsMCwwLDAsMC0yWk0yNSwzMEgxMVYyMEgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVj''@;'; + put 'put ''dCB4PSIyNyIgeT0iMTMuMDQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMThIOGExLDEsMCwwLDAsMCwySDlWMzJIMjdWMjBoMWExLDEsMCwwLDAsMC0yWk0yNSwzMEgx''@;'; + put 'put ''MVYyMEgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMxIDE1LjQgMzEgMjIuMDkgMjkuMDggMjIuMDkgMjkuMDggMjQgMzMgMjQgMzMgMTUuNCAzMSAxNS40IiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUsMTNhMiwyLDAsMCwxLDItMkgxOC42NEEzLjY1LDMuNjUsMCwwLDEsMTksOS44OUwxOS41NCw5SDExVjdoOS43MWwxLjEzLTJIOVY5SDdh''@;'; + put 'put ''NCw0LDAsMCwwLTQsNFYyNEg2LjkyVjIyLjA5SDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMz''@;'; + put 'put ''LjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0yOCwxOEg4YTEsMSwwLDAsMCwwLDJIOVYzMkgyN1YyMGgxYTEsMSwwLDAsMCwwLTJaTTI1LDMwSDExVjIwSDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTMuMDQi''@;'; + put 'put ''IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDEyLjg4YTcuNDUsNy40NSwwLDAsMS0yLC41NXY4LjY2SDI5LjA4VjI0SDMzVjEzQzMzLDEzLDMz''@;'; + put 'put ''LDEyLjkzLDMzLDEyLjg4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxM2EyLDIsMCwwLDEsMi0ySDI0LjQyYTcuNSw3LjUsMCwwLDEtMS4yNy0ySDExVjdIMjIuNTdhNy41Miw3''@;'; + put 'put ''LjUyLDAsMCwxLS4wNy0xLDcuNTQsNy41NCwwLDAsMSwuMDctMUg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDYuOTJWMjIuMDlINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAi''@;'; + put 'put ''IGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOSw5SDI3VjVIOVY5SDdhNCw0LDAsMCwwLTQsNFYyNEg5djhIMjdWMjRoNlYxM0E0LDQsMCww''@;'; + put 'put ''LDAsMjksOVpNMjUsMjR2NkgxMVYxOUgyNVpNMjUsOUgxMVY3SDI1Wm00LDZIMjdWMTNoMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yMywxNS40QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDE5LjU0LDlIMTFW''@;'; + put 'put ''N2g5LjcxbDEuMTMtMkg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDl2OEgyN1YyNGg2VjE1LjRaTTI1LDI0djZIMTFWMTlIMjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4x''@;'; + put 'put ''NCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTIuODhhNy4zLDcuMywwLDAsMS00LC41NVYxNUgyN1YxM2guMzJhNy41Miw3LjUyLDAsMCwxLTQuMTgtNEgxMVY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjU0LDcuNTQsMCwwLDEsLjA3LTFIOVY5SDdhNCw0''@;'; + put 'put ''LDAsMCwwLTQsNFYyNEg5djhIMjdWMjRoNlYxM0MzMywxMywzMywxMi45MywzMywxMi44OFpNMjUsMjR2NkgxMVYxOUgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYi''@;'; + put 'put ''IHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZVdvcmxkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41NCwxOGExOS4zOCwxOS4zOCwwLDAsMC0uNDMtNGgzLjZhMTIuMywx''@;'; + put 'put ''Mi4zLDAsMCwwLS42Ny0xLjZIMjUuNjlBMTkuNzIsMTkuNzIsMCwwLDAsMjIuOCw2LjUzYTEyLjMsMTIuMywwLDAsMC0yLjU1LS43NiwxNy44MywxNy44MywwLDAsMSwzLjg5LDYuNTlIMTguNzVWNS42Yy0uMjUsMC0uNTEsMC0uNzcsMHMtLjQ5LDAtLjczLDB2Ni43N0gxMS44NmExNy44Mywx''@;'; + put 'put ''Ny44MywwLDAsMSwzLjktNi42LDEyLjI4LDEyLjI4LDAsMCwwLTIuNTQuNzUsMTkuNzIsMTkuNzIsMCwwLDAtMi45MSw1Ljg1SDYuOTRBMTIuMywxMi4zLDAsMCwwLDYuMjYsMTRIOS44OWExOS4zOCwxOS4zOCwwLDAsMC0uNDMsNCwxOS42NywxOS42NywwLDAsMCwuNSw0LjM3SDYuNDJBMTIu''@;'; + put 'put ''MzQsMTIuMzQsMCwwLDAsNy4xNiwyNGgzLjIzYTE5LjMyLDE5LjMyLDAsMCwwLDIuNjksNS4zNiwxMi4yOCwxMi4yOCwwLDAsMCwyLjYxLjc5QTE3LjkxLDE3LjkxLDAsMCwxLDEyLDI0aDUuMjZ2Ni4zNGMuMjQsMCwuNDksMCwuNzMsMHMuNTEsMCwuNzcsMFYyNEgyNGExNy45LDE3LjksMCww''@;'; + put 'put ''LDEtMy43LDYuMTUsMTIuMjgsMTIuMjgsMCwwLDAsMi42Mi0uODFBMTkuMzIsMTkuMzIsMCwwLDAsMjUuNjEsMjRoMy4yYTEyLjM0LDEyLjM0LDAsMCwwLC43NC0xLjZIMjZBMTkuNjcsMTkuNjcsMCwwLDAsMjYuNTQsMThabS05LjI5LDQuMzdIMTEuNTFhMTcuNjksMTcuNjksMCwwLDEtLjA5''@;'; + put 'put ''LTguNGg1LjgzWm03LjI0LDBIMTguNzVWMTRoNS44M0ExOC4yMSwxOC4yMSwwLDAsMSwyNSwxOCwxOC4xMiwxOC4xMiwwLDAsMSwyNC40OSwyMi4zN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwx''@;'; + put 'put ''NiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MWE3LjQ0LDcuNDQs''@;'; + put 'put ''MCwwLDEtMS45MS41OCwxNC4wNSwxNC4wNSwwLDEsMS04LjYtOC42LDcuNDMsNy40MywwLDAsMSwuNTgtMS45MSwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yMC4yNSw1Ljc3YTE3LjgzLDE3LjgzLDAsMCwxLDMuODksNi41OUgxOC43NVY1LjZjLS4yNSwwLS41MSwwLS43Nywwcy0uNDksMC0uNzMsMHY2Ljc3SDExLjg2YTE3LjgzLDE3LjgzLDAsMCwxLDMuOS02LjYsMTIuMjgsMTIuMjgsMCwwLDAtMi41NC43NSwxOS43Miwx''@;'; + put 'put ''OS43MiwwLDAsMC0yLjkxLDUuODVINi45NEExMi4zLDEyLjMsMCwwLDAsNi4yNiwxNEg5Ljg5YTE5LjM4LDE5LjM4LDAsMCwwLS40Myw0LDE5LjY3LDE5LjY3LDAsMCwwLC41LDQuMzdINi40MkExMi4zNCwxMi4zNCwwLDAsMCw3LjE2LDI0aDMuMjNhMTkuMzIsMTkuMzIsMCwwLDAsMi42OSw1''@;'; + put 'put ''LjM2LDEyLjI4LDEyLjI4LDAsMCwwLDIuNjEuNzlBMTcuOTEsMTcuOTEsMCwwLDEsMTIsMjRoNS4yNnY2LjM0Yy4yNCwwLC40OSwwLC43Mywwcy41MSwwLC43NywwVjI0SDI0YTE3LjksMTcuOSwwLDAsMS0zLjcsNi4xNSwxMi4yOCwxMi4yOCwwLDAsMCwyLjYyLS44MUExOS4zMiwxOS4zMiww''@;'; + put 'put ''LDAsMCwyNS42MSwyNGgzLjJhMTIuMzQsMTIuMzQsMCwwLDAsLjc0LTEuNkgyNmExOS42NywxOS42NywwLDAsMCwuNS00LjM3LDE5LjM4LDE5LjM4LDAsMCwwLS40My00aDMuNmMtLjA2LS4xNy0uMTItLjMzLS4xOS0uNDlhNy40NSw3LjQ1LDAsMCwxLTMuNDctMS4xMWgtLjM2YzAtLjExLS4w''@;'; + put 'put ''OC0uMjEtLjExLS4zMmE3LjQ4LDcuNDgsMCwwLDEtMy4wNi01LjYyQTEyLjQxLDEyLjQxLDAsMCwwLDIwLjI1LDUuNzdabS0zLDE2LjU5SDExLjUxYTE3LjY5LDE3LjY5LDAsMCwxLS4wOS04LjRoNS44M1pNMjUsMThhMTguMTIsMTguMTIsMCwwLDEtLjU1LDQuMzdIMTguNzVWMTRoNS44M0Ex''@;'; + put 'put ''OC4yMSwxOC4yMSwwLDAsMSwyNSwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4wNSwxOGEyMC40NiwyMC40NiwwLDAsMCwuNjIsNC45M2g2LjQ4VjEzLjQ1SDEwLjU4QTIwLjU1LDIwLjU1LDAsMCwwLDEwLjA1LDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4Ljg1LDEzLjQ1djkuNDhoNi40OEEyMC40NiwyMC40NiwwLDAsMCwyNiwxOGEyMC41NSwyMC41NSwwLDAsMC0uNTItNC41NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTMwLjIyLDI0LjcxSDI2LjZhMjEuOCwyMS44LDAsMCwxLTMsNiwxMy44NiwxMy44NiwwLDAsMS0zLC45MiwyMC4yMSwyMC4yMSwwLDAsMCw0LjE4LTYuOTRIMTguODZ2Ny4xNWMtLjI5LDAtLjU3''@;'; + put 'put ''LDAtLjg2LDBzLS41NSwwLS44MywwVjI0LjcxSDExLjIyYTIwLjIxLDIwLjIxLDAsMCwwLDQuMTgsNi45NSwxMy44NiwxMy44NiwwLDAsMS0yLjk0LS45LDIxLjgsMjEuOCwwLDAsMS0zLTYuMDVINS43OGExMy45NCwxMy45NCwwLDAsMS0uODMtMS44MWg0QTIyLjIsMjIuMiwwLDAsMSw4LjM3''@;'; + put 'put ''LDE4YTIxLjg4LDIxLjg4LDAsMCwxLC40OC00LjU1SDQuNzZhMTMuODgsMTMuODgsMCwwLDEsLjc2LTEuODFIOS4zM0EyMi4yNiwyMi4yNiwwLDAsMSwxMi42MSw1YTEzLjg2LDEzLjg2LDAsMCwxLDIuODctLjg0LDIwLjEzLDIwLjEzLDAsMCwwLTQuNCw3LjQ1aDYuMDlWNGMuMjgsMCwuNTUs''@;'; + put 'put ''MCwuODMsMHMuNTgsMCwuODYsMHY3LjY0aDYuMDlhMjAuMTMsMjAuMTMsMCwwLDAtNC4zOS03LjQ0QTEzLjg5LDEzLjg5LDAsMCwxLDIzLjQzLDVhMjIuMjYsMjIuMjYsMCwwLDEsMy4yNyw2LjU5aDMuNzdhMTMuODksMTMuODksMCwwLDEsLjc2LDEuODFIMjcuMTdBMjEuODgsMjEuODgsMCww''@;'; + put 'put ''LDEsMjcuNjYsMThhMjIuMiwyMi4yLDAsMCwxLS41Nyw0LjkzaDRBMTMuOTQsMTMuOTQsMCwwLDEsMzAuMjIsMjQuNzFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMDUsMThhMjAuNDYsMjAuNDYsMCwwLDAsLjYy''@;'; + put 'put ''LDQuOTNoNi40OFYxMy40NUgxMC41OEEyMC41NSwyMC41NSwwLDAsMCwxMC4wNSwxOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguODUsMjIuOTRoNi40OEEyMC40NiwyMC40NiwwLDAs''@;'; + put 'put ''MCwyNiwxOGEyMC41NSwyMC41NSwwLDAsMC0uNTItNC41NUgxOC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40NCw3LjQ0LDAsMCwxLTEuOS41OHYwSDMxYTYu''@;'; + put 'put ''NzcsNi43NywwLDAsMS0yLjA3LDBoLTEuOEEyMS44OCwyMS44OCwwLDAsMSwyNy42NiwxOGEyMi4yLDIyLjIsMCwwLDEtLjU3LDQuOTNoNGExMy45NCwxMy45NCwwLDAsMS0uODMsMS44MUgyNi42YTIxLjgsMjEuOCwwLDAsMS0zLDYsMTMuODYsMTMuODYsMCwwLDEtMywuOTIsMjAuMjEsMjAu''@;'; + put 'put ''MjEsMCwwLDAsNC4xOC02Ljk0SDE4Ljg2djcuMTVjLS4yOSwwLS41NywwLS44Niwwcy0uNTUsMC0uODMsMFYyNC43MUgxMS4yMmEyMC4yMSwyMC4yMSwwLDAsMCw0LjE4LDYuOTUsMTMuODYsMTMuODYsMCwwLDEtMi45NC0uOSwyMS44LDIxLjgsMCwwLDEtMy02LjA1SDUuNzhhMTMuOTQsMTMu''@;'; + put 'put ''OTQsMCwwLDEtLjgzLTEuODFoNEEyMi4yLDIyLjIsMCwwLDEsOC4zNywxOGEyMS44OCwyMS44OCwwLDAsMSwuNDgtNC41NUg0Ljc2YTEzLjg4LDEzLjg4LDAsMCwxLC43Ni0xLjgxSDkuMzNBMjIuMjYsMjIuMjYsMCwwLDEsMTIuNjEsNWExMy44NiwxMy44NiwwLDAsMSwyLjg3LS44NCwyMC4x''@;'; + put 'put ''MywyMC4xMywwLDAsMC00LjQsNy40NWg2LjA5VjRjLjI4LDAsLjU1LDAsLjgzLDBzLjU4LDAsLjg2LDB2Ny42NGg2LjA5bDAtLjEzYTcuNDcsNy40NywwLDAsMS0yLjM2LTQuNzYsMjAuMzcsMjAuMzcsMCwwLDAtMi0yLjU1LDE0LjIzLDE0LjIzLDAsMCwxLDIuMDYuNTYsNy40NCw3LjQ0LDAs''@;'; + put 'put ''MCwxLC41Ny0xLjg2LDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZVNsaWRlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIsMTIuMzdBNCw0LDAsMCwwLDksOC40OFY1QTEsMSwwLDEsMCw3LDVWOC40OGE0LDQsMCwwLDAsMCw3Ljc4VjMxYTEsMSww''@;'; + put 'put ''LDEsMCwyLDBWMTYuMjZBNCw0LDAsMCwwLDEyLDEyLjM3Wm0tNCwyYTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDgsMTQuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTUuODNhNCw0LDAsMCwwLTMtMy44''@;'; + put 'put ''OVY1YTEsMSwwLDEsMC0yLDB2Ni45NGE0LDQsMCwwLDAsMCw3Ljc4VjMxYTEsMSwwLDEsMCwyLDBWMTkuNzJBNCw0LDAsMCwwLDMyLDE1LjgzWm0tNCwyYTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDI4LDE3Ljg3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwyNC41YTQsNCwwLDAsMC0zLTMuODlWNWExLDEsMCwxLDAtMiwwVjIwLjYxYTQsNCwwLDAsMCwwLDcuNzhWMzFhMSwxLDAsMSwwLDIsMFYyOC4zOUE0LDQsMCwwLDAsMjIsMjQuNVptLTQsMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwxOCwy''@;'; + put 'put ''Ni41M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSw5LjI5VjVBMSwxLDAsMSwwLDcsNVY5LjNhMy4yMiwzLjIyLDAsMCwwLDAsNi4xMVYzMWExLDEsMCwxLDAsMiwwVjE1LjQzQTMuMjIsMy4yMiwwLDAsMCw5''@;'; + put 'put ''LDkuMjlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMjEuNDVWNWExLDEsMCwxLDAtMiwwVjIxLjQ3YTMuMjIsMy4yMiwwLDAsMCwwLDYuMTFWMzFhMSwxLDAsMSwwLDIsMFYyNy42YTMuMjIsMy4yMiwwLDAsMCww''@;'; + put 'put ''LTYuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksMTIuNzVWNWExLDEsMCwxLDAtMiwwdjcuNzZhMy4yMiwzLjIyLDAsMCwwLDAsNi4xMVYzMWExLDEsMCwxLDAsMiwwVjE4Ljg5YTMuMjIsMy4yMiwwLDAsMCww''@;'; + put 'put ''LTYuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+JyksTC5DbHJTaGFwZUNsaXBib2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjkuMjksNUgyN1Y3aDJWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43LDEuNyww''@;'; + put 'put ''LDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWNi42OUExLjcsMS43LDAsMCwwLDI5LjI5LDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiw3LjMzQTIuMzQsMi4zNCwwLDAsMCwy''@;'; + put 'put ''My42Nyw1SDIxLjg3YTQsNCwwLDAsMC03Ljc1LDBIMTIuMzNBMi4zNCwyLjM0LDAsMCwwLDEwLDcuMzNWMTFIMjZaTTI0LDlIMTJWNy4zM0EuMzMuMzMsMCwwLDEsMTIuMzMsN0gxNlY2YTIsMiwwLDAsMSw0LDBWN2gzLjY3YS4zMy4zMywwLDAsMSwuMzMuMzNaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE4IiB3''@;'; + put 'put ''aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjIiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIg''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE0IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE4IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFk''@;'; + put 'put ''Z2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjIyIiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjI2IiB3aWR0aD0i''@;'; + put 'put ''MTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjEzLDlIMTJWNy4zM0EuMzMuMzMsMCwwLDEsMTIuMzMsN0gxNlY2YTIsMiwwLDAsMSw0LDBWN2gyLjU3YTcu''@;'; + put 'put ''NTIsNy41MiwwLDAsMS0uMDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFoLS43YTQsNCwwLDAsMC03Ljc1LDBIMTIuMzNBMi4zNCwyLjM0LDAsMCwwLDEwLDcuMzNWMTFIMjQuNDJBNy41LDcuNSwwLDAsMSwyMy4xMyw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy41Miw3LjUyLDAsMCwxLTEtLjA3VjMySDdWN0g5VjVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMy''@;'; + put 'put ''LjMxVjEzLjQzQTcuNTIsNy41MiwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjI5LDVIMjIuMTdhNC40NSw0LjQ1LDAsMCwwLTQuMTEtM0E0LjQ2LDQuNDYsMCwwLDAsMTQsNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43''@;'; + put 'put ''LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWNi42OUExLjcsMS43LDAsMCwwLDI5LjI5LDVabS0xOCwzYTEsMSwwLDAsMSwxLTFoMy40NFY2LjMxYTIuMzEsMi4zMSwwLDEsMSw0LjYzLDBWN2gzLjQ0YTEsMSwwLDAsMSwxLDF2MkgxMS4zMVpNMjUsMjhI''@;'; + put 'put ''MTFWMjZIMjVabTAtNEgxMVYyMkgyNVptMC00SDExVjE4SDI1Wm0wLTRIMTFWMTRIMjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwSDExLjMxVjhhMSwxLDAs''@;'; + put 'put ''MCwxLDEtMWgzLjQ0VjYuMzFhMi4zMSwyLjMxLDAsMSwxLDQuNjMsMFY3aDIuMTlhNy41NCw3LjU0LDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjRhNC40NSw0LjQ1LDAsMCwwLTQuMTEtM0E0LjQ2LDQuNDYsMCwwLDAsMTQsNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlW''@;'; + put 'put ''MzIuMzFBMS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaTTI1LDI4SDExVjI2SDI1Wm0wLTRIMTFWMjJIMjVabTAtNEgxMVYxOEgyNVptMC00SDExVjE0SDI1WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBl''@;'; + put 'put ''RmlyZXdhbGw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk00LDhIMzJ2NS4wOEgyMy44di00SDIydjRIMTR2LTRIMTJ2NEg0Wm0wLDdIMzJ2Ni4wOEgyOC45''@;'; + put 'put ''MlYxNi4yN0gyN3Y0LjgxSDE4LjkyVjE2LjI3SDE3djQuODFIOC45VjE2LjI3SDd2NC44MUg0Wk0yMy44LDI4VjI0LjI3SDIyLjJWMjhIMTRWMjQuMjdoLTEuNlYyOEg0VjIzSDMydjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjUuNjhIMjguOTJWMTYuMjdIMjd2NC44MUgxOC45MlYxNi4yN0gxN3Y0LjgxSDguOVYxNi4yN0g3djQuODFINFYxNUgyMC41OGEzLjU4LDMuNTgsMCwwLDEtMS43Ni0xLjkySDE0di00SDEydjRINFY4SDIwLjE0bDEuMTUtMkg0QTIsMiwwLDAsMCwy''@;'; + put 'put ''LDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4Wk0yMy44LDI4VjI0LjI3SDIyLjJWMjhIMTRWMjQuMjdoLTEuNlYyOEg0VjIzSDMydjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS0yLjQ1LS40MkgyMy44VjEwLjIyYTcuNSw3LjUsMCwwLDEtLjYzLTEuMTRIMjJ2NEgxNHYtNEgxMnY0SDRWOEgyMi43OGE3LjQ5''@;'; + put 'put ''LDcuNDksMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzAsMTMuNVpNNCwxNUgzMnY2LjA4SDI4LjkyVjE2LjI3SDI3djQuODFIMTguOTJWMTYuMjdIMTd2NC44MUg4LjlWMTYuMjdIN3Y0''@;'; + put 'put ''LjgxSDRaTTIzLjgsMjhWMjQuMjdIMjIuMlYyOEgxNFYyNC4yN2gtMS42VjI4SDRWMjNIMzJ2NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIs''@;'; + put 'put ''NlpNMTQsMjhIMTJWMjRoMlptMTAsMEgyMlYyNGgyWm04LTZINFYyMEg3VjE2SDl2NGg4VjE2aDJ2NGg4VjE2aDJ2NGgzWm0wLThINFYxMmg4VjhoMnY0aDhWOGgydjRoOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTRINFYxMmg4VjhoMnY0aDQuNTdBMy42NywzLjY3LDAsMCwxLDE5LDkuODlMMjEuMjksNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4Wk0xNCwyOEgxMlYyNGgyWm0x''@;'; + put 'put ''MCwwSDIyVjI0aDJabTgtNkg0VjIwSDdWMTZIOXY0aDhWMTZoMnY0aDhWMTZoMnY0aDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4''@;'; + put 'put ''LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMjQsMTAuNDlWMTJoMS41MUE3LjUzLDcuNTMsMCwwLDEsMjQsMTAuNDlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMlYxNEg0VjEyaDhWOGgy''@;'; + put 'put ''djRoOFY4aC43OGE3LjQ5LDcuNDksMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaTTE0LDI4SDEyVjI0aDJabTEwLDBIMjJWMjRoMlptOC02SDRWMjBIN1YxNkg5djRoOFYx''@;'; + put 'put ''NmgydjRoOFYxNmgydjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0z''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFwZUxpc3Q9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgeD0iMTUiIHk9IjgiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3Qg''@;'; + put 'put ''eD0iMTUiIHk9IjEyIiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNiIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjAiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI0IiB3aWR0aD0iOSIgaGVpZ2h0''@;'; + put 'put ''PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxy''@;'; + put 'put ''ZWN0IHg9IjExIiB5PSIxMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC04IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjIwIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyNCIgd2lkdGg9IjIiIGhl''@;'; + put 'put ''aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWm0wLDMwSDhWNEgyOFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxMiIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE2IiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjAiIHdpZHRoPSI5IiBoZWlnaHQ9''@;'; + put 'put ''IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMiIg''@;'; + put 'put ''d2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE2IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxy''@;'; + put 'put ''ZWN0IHg9IjExIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LDh2Mmg4LjY2YTcuNDUsNy40NSwwLDAsMS0uODktMloiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTMuMjJWMzJIOFY0SDIyLjc4YTcuNDUsNy40NSwwLDAsMSwuODgtMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIs''@;'; + put 'put ''MCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5LDAsMCwxLDI4LDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJaTTEzLDI2SDExVjI0''@;'; + put 'put ''aDJabTAtNEgxMVYyMGgyWm0wLTRIMTFWMTZoMlptMC00SDExVjEyaDJabTAtNEgxMVY4aDJaTTI1LDI2SDE1VjI0SDI1Wm0wLTRIMTVWMjBIMjVabTAtNEgxNVYxNkgyNVptMC00SDE1VjEySDI1Wm0wLTRIMTVWOEgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuNjYsMTBIMTVWOGg3Ljc4YTcuNDIsNy40MiwwLDAsMSwuODktNkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwWk0xMywyNkgxMVYyNGgyWm0w''@;'; + put 'put ''LTRIMTFWMjBoMlptMC00SDExVjE2aDJabTAtNEgxMVYxMmgyWm0wLTRIMTFWOGgyWk0yNSwyNkgxNVYyNEgyNVptMC00SDE1VjIwSDI1Wm0wLTRIMTVWMTZIMjVabTAtNEgxNVYxMkgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFwZVJlZG89KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LDQu''@;'; + put 'put ''MjJhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjU2LDUuNDloLTEzQTExLDExLDAsMCwwLDEwLjA3LDMyLDEsMSwwLDAsMCwxMSwzMC4xOGE5LDksMCwwLDEtNS04LDkuMDgsOS4wOCwwLDAsMSw5LjEzLTloMTNsLTUuNTQsNS40OEExLDEsMCwwLDAsMjQsMjBsOC03LjkxWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZVVuZG89KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLjg3LDExLjE0aC0xM2w1LjU2LTUuNDlBMSwxLDAsMCwwLDEyLDQuMjJMNCwxMi4xMywxMiwyMGExLDEsMCwwLDAsMS40MS0xLjQyTDcuODYsMTMu''@;'; + put 'put ''MTRoMTNhOS4wOCw5LjA4LDAsMCwxLDkuMTMsOSw5LDksMCwwLDEtNSw4QTEsMSwwLDAsMCwyNS45MywzMmExMSwxMSwwLDAsMC01LjA2LTIwLjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZVNjcm9sbD0oMCxFLmNsckljb25T''@;'; + put 'put ''VkcpKCc8cGF0aCBkPSJNMzQsMTEuMTJWNi41OGE0LjUsNC41LDAsMCwwLTQuNS00LjVoLTE2QTQuNSw0LjUsMCwwLDAsOSw2LjU4djIzYTIuNSwyLjUsMCwxLDEtNSwwVjI2SDcuMTlWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41VjEz''@;'; + put 'put ''LjEzaC0yVjI5LjU0YTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NFptLTQuNS03QTIuNSwyLjUsMCwwLDEsMzIsNi41OFY5LjEySDE4VjYuNThhNC40OCw0LjQ4LDAsMCwwLS43Ni0yLjVaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4wOCwxNS40VjI5LjU0YTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NGgyLjYx''@;'; + put 'put ''QTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5bC40NC0uNzZIMThWNi41OGE0LjQ4LDQuNDgsMCwwLDAtLjc2LTIuNUgyMi40bDEuMTUtMkgxMy41QTQuNSw0LjUsMCwwLDAsOSw2LjU4djIzYTIuNSwyLjUsMCwxLDEtNSwwVjI2SDcuMTlWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUu''@;'; + put 'put ''NThhNC41LDQuNSwwLDAsMCw0LjUtNC41VjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gz''@;'; + put 'put ''My42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS0xLjkyLS4yNnYxNi4zYTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NGg4LjU0YTcuNSw3LjUsMCwwLDEtMS4zNS0ySDE4VjYuNThhNC40OCw0LjQ4''@;'; + put 'put ''LDAsMCwwLS43Ni0yLjVoNS41MmE3LjQ0LDcuNDQsMCwwLDEsLjg2LTJIMTMuNUE0LjUsNC41LDAsMCwwLDksNi41OHYyM2EyLjUsMi41LDAsMSwxLTUsMFYyNkg3LjE5VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNXYtMTZaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''YmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMTEuMTJWNi41OGE0LjUsNC41LDAsMCwwLTQuNS00LjVoLTE2QTQuNSw0LjUsMCwwLDAsOSw2LjU4VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNVYxMy4xM2gtMlYyOS41''@;'; + put 'put ''NGEyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSwwdjQuNTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjA4LDE1LjRWMjkuNTRh''@;'; + put 'put ''Mi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDIuNjFBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsNC41MS03LjhIMTMuNUE0LjUsNC41LDAsMCwwLDksNi41OFYyNEgydjUuNUE0LjUsNC41LDAsMCww''@;'; + put 'put ''LDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIu''@;'; + put 'put ''MjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS0xLjkyLS4yNnYxNi4zYTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NGg4LjU0YTcuNDYsNy40NiwwLDAsMS0uOTItOUgxMy41QTQuNSw0LjUs''@;'; + put 'put ''MCwwLDAsOSw2LjU4VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNXYtMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBj''@;'; + put 'put ''eT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEwuQ2xyU2hhcGVGaWxlU2V0dGluZ3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjgzLDIzLjQzYTEuMTYsMS4xNiwwLDAsMC0u''@;'; + put 'put ''NzEtMS4xMmwtMS42OC0uNWMtLjA5LS4yNC0uMTgtLjQ4LS4yOS0uNzFsLjc4LTEuNDRhMS4xNiwxLjE2LDAsMCwwLS4yMS0xLjM3bC0xLjQyLTEuNDFhMS4xNiwxLjE2LDAsMCwwLTEuMzctLjJsLTEuNDUuNzZhNy44NCw3Ljg0LDAsMCwwLS43Ni0uMzJsLS40OC0xLjU4YTEuMTUsMS4xNSww''@;'; + put 'put ''LDAsMC0xLjExLS43N2gtMmExLjE2LDEuMTYsMCwwLDAtMS4xMS44MmwtLjQ3LDEuNTRhNy43Niw3Ljc2LDAsMCwwLS43Ny4zMmwtMS40Mi0uNzZhMS4xNiwxLjE2LDAsMCwwLTEuMzYuMmwtMS40NSwxLjRhMS4xNiwxLjE2LDAsMCwwLS4yMSwxLjM4TDE3LjA4LDIxYTcuNjQsNy42NCwwLDAs''@;'; + put 'put ''MC0uMzEuNzRsLTEuNTguNDdhMS4xNSwxLjE1LDAsMCwwLS44MywxLjExdjJhMS4xNSwxLjE1LDAsMCwwLC44MywxLjFsMS41OS40N2E3LjUzLDcuNTMsMCwwLDAsLjMxLjcybC0uNzgsMS40NmExLjE2LDEuMTYsMCwwLDAsLjIxLDEuMzdsMS40MiwxLjRhMS4xNiwxLjE2LDAsMCwwLDEuMzcu''@;'; + put 'put ''MjFsMS40OC0uNzhjLjIzLjExLjQ3LjIuNzIuMjlMMjIsMzMuMThhMS4xNiwxLjE2LDAsMCwwLDEuMTEuODFoMmExLjE2LDEuMTYsMCwwLDAsMS4xMS0uODJsLjQ3LTEuNThjLjI0LS4wOC40Ny0uMTguNy0uMjlsMS41Ljc5YTEuMTYsMS4xNiwwLDAsMCwxLjM2LS4ybDEuNDItMS40YTEuMTYs''@;'; + put 'put ''MS4xNiwwLDAsMCwuMjEtMS4zOGwtLjc5LTEuNDVxLjE2LS4zNC4yOS0uNjlMMzMsMjYuNWExLjE1LDEuMTUsMCwwLDAsLjgzLTEuMTFabS0xLjYsMS42My0yLjExLjYyLS4xMi40MmE2LDYsMCwwLDEtLjUsMS4xOWwtLjIxLjM4LDEsMS45MS0xLDEtMi0xLS4zNy4yYTYuMjEsNi4yMSwwLDAs''@;'; + put 'put ''MS0xLjIuNDlsLS40Mi4xMi0uNjMsMi4wOUgyMy40MmwtLjYzLTIuMDgtLjQyLS4xMmE2LjIzLDYuMjMsMCwwLDEtMS4yMS0uNDlsLS4zNy0uMi0xLjk0LDEtMS0xLDEtMS45NC0uMjItLjM4QTYsNiwwLDAsMSwxOC4xNywyNkwxOCwyNS42MywxNiwyNVYyMy42OUwxOCwyMy4wOGwuMTMtLjQx''@;'; + put 'put ''YTUuOTQsNS45NCwwLDAsMSwuNTMtMS4yM0wxOC45LDIxbC0xLTEuODUsMS0uOTQsMS44OSwxLC4zOC0uMjFhNi4yMyw2LjIzLDAsMCwxLDEuMjYtLjUybC40MS0uMTIuNjMtMmgxLjM4bC42MiwyLC40MS4xMkE2LjIxLDYuMjEsMCwwLDEsMjcuMSwxOWwuMzguMjEsMS45Mi0xLDEsMS0xLDEu''@;'; + put 'put ''ODkuMjEuMzhhNi4wOCw2LjA4LDAsMCwxLC41LDEuMjFsLjEyLjQyLDIuMDYuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC4xMiwyMC4zNWE0LDQsMCwxLDAsNC4wOCw0QTQuMDYsNC4wNiwwLDAsMCwy''@;'; + put 'put ''NC4xMiwyMC4zNVptMCw2LjQ2YTIuNDMsMi40MywwLDEsMSwyLjQ4LTIuNDNBMi40NiwyLjQ2LDAsMCwxLDI0LjEyLDI2LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNDksMzFINlY1SDI2djcuODlh''@;'; + put 'put ''My4yLDMuMiwwLDAsMSwyLDEuNzJWNWEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE2LjIzbC0xLjEtMS4wOEEzLjExLDMuMTEsMCwwLDEsMTQuNDksMzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0yNC4xMiwyMC4zNWE0LDQsMCwxLDAsNC4wOCw0QTQuMDYsNC4wNiwwLDAsMCwyNC4xMiwyMC4zNVptMCw2LjQ2YTIuNDMsMi40MywwLDEsMSwyLjQ4LTIuNDNBMi40NiwyLjQ2LDAsMCwxLDI0LjEyLDI2LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuODMsMjMuNDNhMS4xNiwxLjE2LDAsMCwwLS43MS0xLjEybC0xLjY4LS41Yy0uMDktLjI0LS4xOC0uNDgtLjI5LS43MWwuNzgtMS40NGExLjE2LDEuMTYsMCwwLDAtLjIxLTEuMzds''@;'; + put 'put ''LTEuNDItMS40MWExLjE2LDEuMTYsMCwwLDAtMS4zNy0uMmwtMS40NS43NmE3Ljg0LDcuODQsMCwwLDAtLjc2LS4zMmwtLjQ4LTEuNThhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjc3aC0yYTEuMTYsMS4xNiwwLDAsMC0xLjExLjgybC0uNDcsMS41NGE3Ljc2LDcuNzYsMCwwLDAtLjc3LjMybC0x''@;'; + put 'put ''LjQyLS43NmExLjE2LDEuMTYsMCwwLDAtMS4zNi4ybC0xLjQ1LDEuNGExLjE2LDEuMTYsMCwwLDAtLjIxLDEuMzhMMTcuMDgsMjFhNy42NCw3LjY0LDAsMCwwLS4zMS43NGwtMS41OC40N2ExLjE1LDEuMTUsMCwwLDAtLjgzLDEuMTF2MmExLjE1LDEuMTUsMCwwLDAsLjgzLDEuMWwxLjU5LjQ3''@;'; + put 'put ''YTcuNTMsNy41MywwLDAsMCwuMzEuNzJsLS43OCwxLjQ2YTEuMTYsMS4xNiwwLDAsMCwuMjEsMS4zN2wxLjQyLDEuNGExLjE2LDEuMTYsMCwwLDAsMS4zNy4yMWwxLjQ4LS43OGMuMjMuMTEuNDcuMi43Mi4yOUwyMiwzMy4xOGExLjE2LDEuMTYsMCwwLDAsMS4xMS44MWgyYTEuMTYsMS4xNiww''@;'; + put 'put ''LDAsMCwxLjExLS44MmwuNDctMS41OGMuMjQtLjA4LjQ3LS4xOC43LS4yOWwxLjUuNzlhMS4xNiwxLjE2LDAsMCwwLDEuMzYtLjJsMS40Mi0xLjRhMS4xNiwxLjE2LDAsMCwwLC4yMS0xLjM4bC0uNzktMS40NXEuMTYtLjM0LjI5LS42OUwzMywyNi41YTEuMTUsMS4xNSwwLDAsMCwuODMtMS4x''@;'; + put 'put ''MVptLTEuNiwxLjYzLTIuMTEuNjItLjEyLjQyYTYsNiwwLDAsMS0uNSwxLjE5bC0uMjEuMzgsMSwxLjkxLTEsMS0yLTEtLjM3LjJhNi4yMSw2LjIxLDAsMCwxLTEuMi40OWwtLjQyLjEyLS42MywyLjA5SDIzLjQybC0uNjMtMi4wOC0uNDItLjEyYTYuMjMsNi4yMywwLDAsMS0xLjIxLS40OWwt''@;'; + put 'put ''LjM3LS4yLTEuOTQsMS0xLTEsMS0xLjk0LS4yMi0uMzhBNiw2LDAsMCwxLDE4LjE3LDI2TDE4LDI1LjYzLDE2LDI1VjIzLjY5TDE4LDIzLjA4bC4xMy0uNDFhNS45NCw1Ljk0LDAsMCwxLC41My0xLjIzTDE4LjksMjFsLTEtMS44NSwxLS45NCwxLjg5LDEsLjM4LS4yMWE2LjIzLDYuMjMsMCww''@;'; + put 'put ''LDEsMS4yNi0uNTJsLjQxLS4xMi42My0yaDEuMzhsLjYyLDIsLjQxLjEyQTYuMjEsNi4yMSwwLDAsMSwyNy4xLDE5bC4zOC4yMSwxLjkyLTEsMSwxLTEsMS44OS4yMS4zOGE2LjA4LDYuMDgsMCwwLDEsLjUsMS4yMWwuMTIuNDIsMi4wNi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjQ5LDMxSDZWNUgyMS44N0wyMywzSDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE2LjIzbC0xLjEtMS4wOEEzLjExLDMuMTEsMCwwLDEsMTQuNDksMzFaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYs''@;'; + put 'put ''MS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy40M2ExLjE2LDEuMTYsMCwwLDAtLjcx''@;'; + put 'put ''LTEuMTJsLTEuNjgtLjVjLS4wOS0uMjQtLjE4LS40OC0uMjktLjcxbC43OC0xLjQ0YTEuMTYsMS4xNiwwLDAsMC0uMjEtMS4zN2wtMS40Mi0xLjQxYTEuMTYsMS4xNiwwLDAsMC0xLjM3LS4ybC0xLjQ1Ljc2YTcuODQsNy44NCwwLDAsMC0uNzYtLjMybC0uNDgtMS41OGExLjE1LDEuMTUsMCww''@;'; + put 'put ''LDAtMS4xMS0uNzdoLTJhMS4xNiwxLjE2LDAsMCwwLTEuMTEuODJsLS40NywxLjU0YTcuNzYsNy43NiwwLDAsMC0uNzcuMzJsLTEuNDItLjc2YTEuMTYsMS4xNiwwLDAsMC0xLjM2LjJsLTEuNDUsMS40YTEuMTYsMS4xNiwwLDAsMC0uMjEsMS4zOEwxNy4wOCwyMWE3LjY0LDcuNjQsMCwwLDAt''@;'; + put 'put ''LjMxLjc0bC0xLjU4LjQ3YTEuMTUsMS4xNSwwLDAsMC0uODMsMS4xMXYyYTEuMTUsMS4xNSwwLDAsMCwuODMsMS4xbDEuNTkuNDdhNy41Myw3LjUzLDAsMCwwLC4zMS43MmwtLjc4LDEuNDZhMS4xNiwxLjE2LDAsMCwwLC4yMSwxLjM3bDEuNDIsMS40YTEuMTYsMS4xNiwwLDAsMCwxLjM3LjIx''@;'; + put 'put ''bDEuNDgtLjc4Yy4yMy4xMS40Ny4yLjcyLjI5TDIyLDMzLjE4YTEuMTYsMS4xNiwwLDAsMCwxLjExLjgxaDJhMS4xNiwxLjE2LDAsMCwwLDEuMTEtLjgybC40Ny0xLjU4Yy4yNC0uMDguNDctLjE4LjctLjI5bDEuNS43OWExLjE2LDEuMTYsMCwwLDAsMS4zNi0uMmwxLjQyLTEuNGExLjE2LDEu''@;'; + put 'put ''MTYsMCwwLDAsLjIxLTEuMzhsLS43OS0xLjQ1cS4xNi0uMzQuMjktLjY5TDMzLDI2LjVhMS4xNSwxLjE1LDAsMCwwLC44My0xLjExWm0tMS42LDEuNjMtMi4xMS42Mi0uMTIuNDJhNiw2LDAsMCwxLS41LDEuMTlsLS4yMS4zOCwxLDEuOTEtMSwxLTItMS0uMzcuMmE2LjIxLDYuMjEsMCwwLDEt''@;'; + put 'put ''MS4yLjQ5bC0uNDIuMTItLjYzLDIuMDlIMjMuNDJsLS42My0yLjA4LS40Mi0uMTJhNi4yMyw2LjIzLDAsMCwxLTEuMjEtLjQ5bC0uMzctLjItMS45NCwxLTEtMSwxLTEuOTQtLjIyLS4zOEE2LDYsMCwwLDEsMTguMTcsMjZMMTgsMjUuNjMsMTYsMjVWMjMuNjlMMTgsMjMuMDhsLjEzLS40MWE1''@;'; + put 'put ''Ljk0LDUuOTQsMCwwLDEsLjUzLTEuMjNMMTguOSwyMWwtMS0xLjg1LDEtLjk0LDEuODksMSwuMzgtLjIxYTYuMjMsNi4yMywwLDAsMSwxLjI2LS41MmwuNDEtLjEyLjYzLTJoMS4zOGwuNjIsMiwuNDEuMTJBNi4yMSw2LjIxLDAsMCwxLDI3LjEsMTlsLjM4LjIxLDEuOTItMSwxLDEtMSwxLjg5''@;'; + put 'put ''LjIxLjM4YTYuMDgsNi4wOCwwLDAsMSwuNSwxLjIxbC4xMi40MiwyLjA2LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjEyLDIwLjM1YTQsNCwwLDEsMCw0LjA4LDRBNC4w''@;'; + put 'put ''Niw0LjA2LDAsMCwwLDI0LjEyLDIwLjM1Wm0wLDYuNDZhMi40MywyLjQzLDAsMSwxLDIuNDgtMi40M0EyLjQ2LDIuNDYsMCwwLDEsMjQuMTIsMjYuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMTQuNDksMzFINlY1SDIzLjA4YTYuOTQsNi45NCwwLDAsMSwuNi0ySDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE2LjIzbC0xLjEtMS4wOEEzLjExLDMuMTEsMCwwLDEsMTQuNDksMzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuMzNWMTIuNzFhNyw3LDAsMCwxLTItMXYxLjg4QTMuMiwzLjIsMCwwLDEsMjgsMTUuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNTUsMzFINlY1SDI2djguNzhhMi4z''@;'; + put 'put ''NywyLjM3LDAsMCwxLDIsMS41N1Y1YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTcuMTZsLTEtMUEyLjM4LDIuMzgsMCwwLDEsMTUuNTUsMzFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTMzLjU0LDIzLjQ3bC0yLS42MWE3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0TDMwLjQxLDE3LjdhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMUE3LDcsMCwwLDAsMjYuNjksMThsLS42MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1''@;'; + put 'put ''aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxbC0xLjgyLTFhLjM3LjM3LDAsMCwwLS40NC4wN2wtMS40NywxLjQ0YS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyYTcsNywwLDAsMC0uNjEsMS40NGwtMiwuNjFhLjM3LjM3LDAsMCwwLS4yNi4zNXYyYS4z''@;'; + put 'put ''Ny4zNywwLDAsMCwuMjYuMzVsMiwuNjFhNyw3LDAsMCwwLC42MSwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LDMyYS4zNy4zNywwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDYsNy4wNiwwLDAsMCwxLjM5LjU3bC42MSwyYS4zNy4zNywwLDAsMCwuMzUuMjZoMmEuMzcuMzcsMCww''@;'; + put 'put ''LDAsLjM1LS4yNmwuNjEtMmE3LDcsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zNy4zNywwLDAsMCwuNDQtLjA3bDEuNDUtMS40NWEuMzcuMzcsMCwwLDAsLjA3LS40NGwtMS0xLjg4YTcuMDYsNy4wNiwwLDAsMCwuNTgtMS4zOWwyLS42MWEuMzcuMzcsMCwwLDAsLjI2LS4zNVYyMy44M0EuMzcu''@;'; + put 'put ''MzcsMCwwLDAsMzMuNTQsMjMuNDdaTTI0LjcsMjguMTlBMy4zMywzLjMzLDAsMSwxLDI4LDI0Ljg2LDMuMzMsMy4zMywwLDAsMSwyNC43LDI4LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy41NCwyMy40N2wt''@;'; + put 'put ''Mi0uNjFhNy4wNiw3LjA2LDAsMCwwLS41OC0xLjQxbDEtMS44NmEuMzcuMzcsMCwwLDAtLjA3LS40NEwzMC40MSwxNy43YS4zNy4zNywwLDAsMC0uNDQtLjA3bC0xLjg1LDFBNyw3LDAsMCwwLDI2LjY5LDE4bC0uNjEtMmEuMzcuMzcsMCwwLDAtLjM2LS4yNWgtMmEuMzcuMzcsMCwwLDAtLjM1''@;'; + put 'put ''LjI2bC0uNjEsMmE3LDcsMCwwLDAtMS40NC42MWwtMS44Mi0xYS4zNy4zNywwLDAsMC0uNDQuMDdsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MmE3LDcsMCwwLDAtLjYxLDEuNDRsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2LjM1bDIs''@;'; + put 'put ''LjYxYTcsNywwLDAsMCwuNjEsMS40MWwtMSwxLjlhLjM3LjM3LDAsMCwwLC4wNy40NEwxOSwzMmEuMzcuMzcsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA2LDcuMDYsMCwwLDAsMS4zOS41N2wuNjEsMmEuMzcuMzcsMCwwLDAsLjM1LjI2aDJhLjM3LjM3LDAsMCwwLC4zNS0uMjZsLjYxLTJhNyw3''@;'; + put 'put ''LDAsMCwwLDEuMzgtLjU3bDEuODksMWEuMzcuMzcsMCwwLDAsLjQ0LS4wN2wxLjQ1LTEuNDVhLjM3LjM3LDAsMCwwLC4wNy0uNDRsLTEtMS44OGE3LjA2LDcuMDYsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM3LjM3LDAsMCwwLC4yNi0uMzVWMjMuODNBLjM3LjM3LDAsMCwwLDMzLjU0LDIzLjQ3''@;'; + put 'put ''Wk0yNC43LDI4LjE5QTMuMzMsMy4zMywwLDEsMSwyOCwyNC44NiwzLjMzLDMuMzMsMCwwLDEsMjQuNywyOC4xOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNTUsMzFINlY1SDIx''@;'; + put 'put ''Ljg3TDIzLDNINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTcuMTZsLTEtMUEyLjM4LDIuMzgsMCwwLDEsMTUuNTUsMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2''@;'; + put 'put ''Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy41NCwy''@;'; + put 'put ''My40N2wtMi0uNjFhNy4wNiw3LjA2LDAsMCwwLS41OC0xLjQxbDEtMS44NmEuMzcuMzcsMCwwLDAtLjA3LS40NEwzMC40MSwxNy43YS4zNy4zNywwLDAsMC0uNDQtLjA3bC0xLjg1LDFBNyw3LDAsMCwwLDI2LjY5LDE4bC0uNjEtMmEuMzcuMzcsMCwwLDAtLjM2LS4yNWgtMmEuMzcuMzcsMCww''@;'; + put 'put ''LDAtLjM1LjI2bC0uNjEsMmE3LDcsMCwwLDAtMS40NC42MWwtMS44Mi0xYS4zNy4zNywwLDAsMC0uNDQuMDdsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MmE3LDcsMCwwLDAtLjYxLDEuNDRsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2''@;'; + put 'put ''LjM1bDIsLjYxYTcsNywwLDAsMCwuNjEsMS40MWwtMSwxLjlhLjM3LjM3LDAsMCwwLC4wNy40NEwxOSwzMmEuMzcuMzcsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA2LDcuMDYsMCwwLDAsMS4zOS41N2wuNjEsMmEuMzcuMzcsMCwwLDAsLjM1LjI2aDJhLjM3LjM3LDAsMCwwLC4zNS0uMjZsLjYx''@;'; + put 'put ''LTJhNyw3LDAsMCwwLDEuMzgtLjU3bDEuODksMWEuMzcuMzcsMCwwLDAsLjQ0LS4wN2wxLjQ1LTEuNDVhLjM3LjM3LDAsMCwwLC4wNy0uNDRsLTEtMS44OGE3LjA2LDcuMDYsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM3LjM3LDAsMCwwLC4yNi0uMzVWMjMuODNBLjM3LjM3LDAsMCwwLDMzLjU0''@;'; + put 'put ''LDIzLjQ3Wk0yNC43LDI4LjE5QTMuMzMsMy4zMywwLDEsMSwyOCwyNC44NiwzLjMzLDMuMzMsMCwwLDEsMjQuNywyOC4xOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LjU1LDMxSDZW''@;'; + put 'put ''NUgyMy4wOGE2Ljk0LDYuOTQsMCwwLDEsLjYtMkg2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNy4xNmwtMS0xQTIuMzgsMi4zOCwwLDAsMSwxNS41NSwzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTI4LDE1LjM2VjEyLjcxYTcsNywwLDAsMS0yLTF2MkEyLjM3LDIuMzcsMCwwLDEsMjgsMTUuMzZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIgLz4nKSxMLkNsclNoYXBlVHdvV2F5QXJyb3dzPSgwLEUuY2xy''@;'; + put 'put ''SWNvblNWRykoJzxwYXRoIGQ9Ik0yMy40MywxNi44M0ExLDEsMCwwLDAsMjIsMTguMjRMMjUuNzIsMjJINy44M2ExLDEsMCwwLDAsMCwySDI1LjcyTDIyLDI3LjdhMSwxLDAsMSwwLDEuNDIsMS40MUwyOS41MywyM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjI0LDE4LjQ1YTEsMSwwLDAsMCwuNzEtMS43MUwxMC4yNCwxM0gyOC4xMmExLDEsMCwwLDAsMC0ySDEwLjI0bDMuNzEtMy43M2ExLDEsMCwwLDAtMS40Mi0xLjQxTDYuNDIsMTJsNi4xMSw2LjE0QTEsMSwwLDAsMCwxMy4yNCwxOC40NVoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVTd2l0Y2g9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUuNzEsMTRIMjAuOTJWMTJINS43MUw5LjQyLDguMjdBMSwxLDAsMSwwLDgsNi44NkwxLjg5LDEzLDgsMTkuMTRhMSwxLDAs''@;'; + put 'put ''MSwwLDEuNDItMS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMTIiIHdpZHRoPSIzIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHJlY3QgeD0iMjgiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy45MiwxNy44NmExLDEsMCwwLDAtMS40MiwxLjQxTDMwLjIxLDIzSDE1djJI''@;'; + put 'put ''MzAuMjFMMjYuNSwyOC43NGExLDEsMCwxLDAsMS40MiwxLjRMMzQsMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEwIiB5PSIyMyIgd2lkdGg9IjMiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI2IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZVRvb2xzPSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; + put 'put ''IGQ9Ik0yMCwxNEgxNmExLDEsMCwwLDAtMSwxdjZhMSwxLDAsMCwwLDEsMWg0YTEsMSwwLDAsMCwxLTFWMTVBMSwxLDAsMCwwLDIwLDE0Wm0tLjQsNi42SDE2LjRWMTUuNGgzLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0zMy43MSwxMi4zOCwyOS42Miw4LjI5QTEsMSwwLDAsMCwyOC45Miw4aC01VjYuMDVBMiwyLDAsMCwwLDIyLDRIMTMuODRBMS45MiwxLjkyLDAsMCwwLDEyLDYuMDVWOEg3LjA4YTEsMSwwLDAsMC0uNzEuMjlMMi4yOSwxMi4zOGExLDEsMCwwLDAtLjI5LjcxVjI4YTIsMiwwLDAs''@;'; + put 'put ''MCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMy4wOEExLDEsMCwwLDAsMzMuNzEsMTIuMzhaTTE0LDZoOFY4SDE0Wk0zMiwxN0gyMnYxLjkzSDMyVjI4SDRWMTguOTNIMTRWMTdINFYxMy41TDcuNSwxMGgyMUwzMiwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNi40IiB5PSIxNS40IiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjUuMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSwyMWExLDEsMCwwLDEtMSwxSDE2YTEsMSwwLDAs''@;'; + put 'put ''MS0xLTFWMTlIMnY5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOUgyMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzEsMTIuMzgsMjkuNjIsOC4yOUExLDEsMCwwLDAsMjguOTIsOGgtNVY2LjA1''@;'; + put 'put ''QTIsMiwwLDAsMCwyMiw0SDEzLjg0QTEuOTIsMS45MiwwLDAsMCwxMiw2LjA1VjhINy4wOGExLDEsMCwwLDAtLjcxLjI5TDIuMjksMTIuMzhhMSwxLDAsMCwwLS4yOS43MVYxN0gxNVYxNWExLDEsMCwwLDEsMS0xaDRhMSwxLDAsMCwxLDEsMXYySDM0VjEzLjA4QTEsMSwwLDAsMCwzMy43MSwx''@;'; + put 'put ''Mi4zOFpNMjIsOEgxNFY2aDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVXaW5kb3dDbG9zZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTkuNDEsMThsNy4yOS03LjI5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTgsMTYuNTksMTAu''@;'; + put 'put ''NzEsOS4yOWExLDEsMCwwLDAtMS40MSwxLjQxTDE2LjU5LDE4LDkuMjksMjUuMjlhMSwxLDAsMSwwLDEuNDEsMS40MUwxOCwxOS40MWw3LjI5LDcuMjlhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xyU2hh''@;'; + put 'put ''cGVXaW5kb3dNYXg9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3Ljg5LDloLTIwYTIsMiwwLDAsMC0yLDJWMjVhMiwyLDAsMCwwLDIsMmgyMGEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwyNy44OSw5Wm0tMjAsMTZWMTFoMjBWMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlV2luZG93TWluPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNywyN0g5YTEsMSwwLDAsMSwwLTJIMjdhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xy''@;'; + put 'put ''U2hhcGVXaW5kb3dSZXN0b3JlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOCw4SDE0YTIsMiwwLDAsMC0yLDJ2MmgyVjEwSDI4VjIwSDI2djJoMmEyLDIsMCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwyOCw4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsMTRIOGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMjJhMiwyLDAsMCwwLDItMlYxNkEyLDIsMCwwLDAsMjIsMTRaTTgsMjZWMTZIMjJWMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4n''@;'; + put 'put ''KSxMLkNsclNoYXBlWm9vbUluPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNiw0QTEyLDEyLDAsMSwwLDI4LDE2LDEyLDEyLDAsMCwwLDE2LDRabTAsMjEuOTFBMTAsMTAsMCwxLDEsMjYsMTYsMTAsMTAsMCwwLDEsMTYsMjUuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS43MSwyOS42OWwtNS4xNy01LjE3QTEzLjY4LDEzLjY4LDAsMCwxLDI1LjE1LDI2bDUuMTUsNS4xNWExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEsMTVIMTdWMTFhMSwxLDAsMCwwLTIsMHY0SDExYTEsMSwwLDAsMCwwLDJoNHY0YTEsMSwwLDAsMCwyLDBWMTdoNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksTC5DbHJT''@;'; + put 'put ''aGFwZVpvb21PdXQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LDRBMTIsMTIsMCwxLDAsMjgsMTYsMTIsMTIsMCwwLDAsMTYsNFptMCwyMS45MUExMCwxMCwwLDEsMSwyNiwxNiwxMCwxMCwwLDAsMSwxNiwyNS45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjcxLDI5LjY5bC01LjE3LTUuMTdBMTMuNjgsMTMuNjgsMCwwLDEsMjUuMTUsMjZsNS4xNSw1LjE1YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0yMCwxNUgxMmExLDEsMCwwLDAsMCwyaDhhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVLZXk9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgeD0iNi4zMyIgeT0iMTAuNzEi''@;'; + put 'put ''IHdpZHRoPSI5LjcxIiBoZWlnaHQ9IjIuNTciIHJ4PSIxIiByeT0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuMjEgMTEuNDMpIHJvdGF0ZSgtNDUpIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zNSwx''@;'; + put 'put ''Ni44bC42My0uNjNBNSw1LDAsMCwwLDI0LDkuMUwxOC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40LS40TDE4LDI2LjQ4aDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVpNMzIsMzJI''@;'; + put 'put ''MjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTMtM0wxNCwyMy4zMWEzLDMsMCwwLDEtNC4yNCwwTDQuNSwxOGEzLDMsMCwwLDEsMC00LjI0bDguNTYtOC41NmEzLDMsMCwwLDEsNC4yNCwwbDUuMjYsNS4yNmEzLDMsMCwwLDEsMCw0LjI0bC0yLDJMMzIsMjguMjhaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMzMiIHk9IjEwLjcxIiB3aWR0aD0iOS43MSIgaGVpZ2h0PSIyLjU3IiByeD0iMSIgcnk9IjEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjIxIDExLjQzKSByb3RhdGUoLTQ1''@;'; + put 'put ''KSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzUsMTYuOGwuNjMtLjYzYTUsNSwwLDAsMCwuNjMtLjc3SDIyLjIzbC0uMjksMEwyMC41MiwxNi44LDMyLDI4LjI4VjMySDI4''@;'; + put 'put ''Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0zLTNMMTQsMjMuMzFhMywzLDAsMCwxLTQuMjQsMEw0LjUsMThhMywzLDAsMCwxLDAtNC4yNGw4LjU2LTguNTZhMywzLDAsMCwxLDQuMjQsMEwyMC4xLDguMDZsMS0xLjc5TDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5''@;'; + put 'put ''LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQtLjRMMTgsMjYuNDhoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI2LjMzIiB5PSIxMC43MSIgd2lkdGg9IjkuNzEiIGhlaWdodD0iMi41NyIgcng9IjEiIHJ5PSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNS4yMSAxMS40Mykgcm90''@;'; + put 'put ''YXRlKC00NSkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zNSwxNi44bC42My0uNjNBNSw1LDAsMCwwLDI0LDkuMUwxOC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwx''@;'; + put 'put ''Mi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40LS40TDE4LDI2LjQ4aDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVpNMzIsMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTMtM0wxNCwyMy4zMWEzLDMsMCwwLDEtNC4y''@;'; + put 'put ''NCwwTDQuNSwxOGEzLDMsMCwwLDEsMC00LjI0bDguNTYtOC41NmEzLDMsMCwwLDEsNC4yNCwwbDUuMjYsNS4yNmEzLDMsMCwwLDEsMCw0LjI0bC0yLDJMMzIsMjguMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzgsMTYuNzdsLjYtLjZBNSw1LDAsMCwwLDI0''@;'; + put 'put ''LDkuMUwxOC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40NS0uNDUsMi4xLDIuMmgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVabS04LjU2LTYuNTlMOS4zNywxNS42NGExLDEsMCww''@;'; + put 'put ''LDEtMS40MSwwbC0uNC0uNGExLDEsMCwwLDEsMC0xLjQxTDEzLDguMzZhMSwxLDAsMCwxLDEuNDEsMGwuNC40QTEsMSwwLDAsMSwxNC44MiwxMC4xOFpNMzIsMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTEuNTItMS42MUwyMiwxOC4xOCwzMiwyOC4yOFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzgsMTYuNzdsLjYtLjZhNSw1LDAsMCwwLC42My0uNzdIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMi4wOS0zLjYyTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwz''@;'; + put 'put ''LjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQ1LS40NSwyLjEsMi4yaDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVptLTguNTYtNi41OUw5LjM3LDE1LjY0YTEsMSwwLDAsMS0xLjQxLDBsLS40LS40YTEsMSwwLDAsMSwwLTEuNDFM''@;'; + put 'put ''MTMsOC4zNmExLDEsMCwwLDEsMS40MSwwbC40LjRBMSwxLDAsMCwxLDE0LjgyLDEwLjE4Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTguOGwtMS41Mi0xLjYxTDIyLDE4LjE4LDMyLDI4LjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM4LDE2Ljc3bC42LS42QTUsNSwwLDAsMCwyNCw5LjFMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlh''@;'; + put 'put ''NSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNDUtLjQ1LDIuMSwyLjJoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wm0tOC41Ni02LjU5TDkuMzcsMTUuNjRhMSwxLDAsMCwxLTEuNDEsMGwtLjQtLjRhMSwxLDAsMCwxLDAtMS40MUwxMyw4LjM2YTEs''@;'; + put 'put ''MSwwLDAsMSwxLjQxLDBsLjQuNEExLDEsMCwwLDEsMTQuODIsMTAuMThaTTMyLDMySDI4Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0xLjUyLTEuNjFMMjIsMTguMTgsMzIsMjguMjhaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJh''@;'; + put 'put ''ZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEwuQ2xyU2hhcGVMaWJyYXJ5PSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; + put 'put ''IGQ9Ik0zMy40OCwyOS42MywyNi43NCwxMS44MmEyLDIsMCwwLDAtMi41OC0xLjE2TDIxLDExLjg1VjguOTJBMS45MiwxLjkyLDAsMCwwLDE5LjA4LDdIMTRWNC45MkExLjkyLDEuOTIsMCwwLDAsMTIuMDgsM0g1QTIsMiwwLDAsMCwzLDVWMzJhMSwxLDAsMCwwLDEsMUgyMGExLDEsMCwwLDAs''@;'; + put 'put ''MS0xVjE5LjI3bDUsMTMuMjFhMSwxLDAsMCwwLDEuMjkuNThsNS42MS0yLjE0YTEsMSwwLDAsMCwuNTgtMS4yOVpNMTIsOC44M1YzMUg1VjVoN1pNMTksMzFIMTRWOWg1Wm04LjUxLS4yNUwyMS4xMywxMy45MmwzLjc0LTEuNDIsNi4zOSwxNi44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjc1LDNINS4yNUExLjE1LDEuMTUsMCwwLDAsNCw0VjMzSDE0VjRBMS4xNSwxLjE1LDAsMCwwLDEyLjc1LDNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTMzLjc3LDMxLjA5bC02Ljk0LTE4LjNhMSwxLDAsMCwwLTEuMjktLjU4TDIyLDEzLjU5VjlhMSwxLDAsMCwwLTEtMUgxNlYzM2g2VjE0LjY5TDI4LjkzLDMzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlQm9sdD0o''@;'; + put 'put ''MCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTAuNTIsMzRoLTNhMSwxLDAsMCwxLS44OC0xLjQ0TDEyLjU1LDIxSDZhMSwxLDAsMCwxLS44NS0xLjU0bDEwLjY4LTE3QTEsMSwwLDAsMSwxNi42NCwySDMwLjA3YTEsMSwwLDAsMSwuNzcsMS42OUwyMS43OCwxNGg1LjM4YTEsMSwwLDAsMSwu''@;'; + put 'put ''NzMsMS42NmwtMTYuNjMsMThBMSwxLDAsMCwxLDEwLjUyLDM0Wk05LjE4LDMyaC45MUwyNC44NiwxNkgxOS41OWExLDEsMCwwLDEtLjc3LTEuNjlMMjcuODgsNEgxNy4xOUw3Ljc3LDE5SDE0LjJhMSwxLDAsMCwxLC44OCwxLjQ0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOCwyLjI5QS40OS40OSwwLDAsMCwzMC4zNSwySDE2LjQyYS41LjUsMCwwLDAtLjQyLjIzbC0xMC43MSwxN0EuNDkuNDksMCwwLDAsNS43LDIwaDcuNjdMNi42LDMzLjI1YS41Mi41MiwwLDAsMCwuNDYuNzVoM2EuNS41LDAs''@;'; + put 'put ''MCwwLC4zNy0uMTZMMjgsMTQuODVhLjUuNSwwLDAsMC0uMzctLjg1SDIwLjg5TDMwLjcyLDIuODJBLjQ5LjQ5LDAsMCwwLDMwLjgsMi4yOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZVdyZW5jaD0oMCxFLmNsckljb25TVkcpKCc8cGF0''@;'; + put 'put ''aCBkPSJNMzMuMTgsMjYuMTEsMjAuMzUsMTMuMjhBOS4yOCw5LjI4LDAsMCwwLDcuNTQsMi43OWwtMS4zNC41OSw1LjM4LDUuMzhMOC43NiwxMS41OSwzLjM4LDYuMjEsMi43OSw3LjU0QTkuMjcsOS4yNywwLDAsMCwxMy4yOCwyMC4zNUwyNi4xMSwzMy4xOGEyLDIsMCwwLDAsMi44MywwbDQu''@;'; + put 'put ''MjQtNC4yNEEyLDIsMCwwLDAsMzMuMTgsMjYuMTFabS01LjY2LDUuNjZMMTMuODgsMTguMTJsLS41Ny4xNmE3LjI3LDcuMjcsMCwwLDEtOS4zMS03LDcuMiw3LjIsMCwwLDEsLjE1LTEuNDhsNC42MSw0LjYxLDUuNjYtNS42Nkw5LjgxLDQuMTVhNy4yNyw3LjI3LDAsMCwxLDguNDcsOS4xNmwt''@;'; + put 'put ''LjE2LjU3TDMxLjc3LDI3LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNy4xMyIgY3k9IjI3LjA5IiByPSIxLjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMS4yMSAyNy4xMikgcm90YXRlKC00NSki''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjczLDI3LjcyLDE5LjY3LDEzLjY2YTguNzksOC43OSwwLDAsMC0xMi0xMC41TDEzLDguNTMsOC41MywxMywzLjE2LDcuNjdhOC43OSw4Ljc5LDAsMCwwLDEwLjUs''@;'; + put 'put ''MTJMMjcuNzIsMzMuNzNhMS4wNywxLjA3LDAsMCwwLDEuNSwwbDQuNTEtNC41MUExLjA3LDEuMDcsMCwwLDAsMzMuNzMsMjcuNzJaTTI5LDI5YTEuMzgsMS4zOCwwLDEsMSwwLTJBMS4zOCwxLjM4LDAsMCwxLDI5LDI5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIg''@;'; + put 'put ''Lz4nKSxMLkNsclNoYXBlQnVsbHNleWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJhMTUuOTIsMTUuOTIsMCwwLDAtNC4yNS41OWwuNzcsMS44NmExNC4wNywxNC4wNywwLDEsMS0xMCwxMGwtMS44Ni0uNzhBMTYsMTYsMCwxLDAsMTgsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcuNDUsMTUuN2ExMC44MSwxMC44MSwwLDEsMCw4LjMtOC4yNkwxNi4zNyw5QTkuMjQsOS4yNCwwLDEsMSw5LDE2LjMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjIuMDlhNC4wOCw0LjA4LDAsMCwxLTQtMy42OGwtMS42My0uNjhjMCwuMDksMCwuMTgsMCwuMjdBNS42OSw1LjY5LDAsMSwwLDE4LDEyLjMxaC0uMjRMMTguNDMsMTRBNC4wNyw0LjA3LDAsMCwxLDE4LDIyLjA5WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC4yLDEzLjM0YS41LjUsMCwwLDAsLjM1LjE1SDEyLjJsNS4zNyw1LjM3QTEsMSwwLDAsMCwxOSwxNy40NEwxMy41MywxMlY4LjUxYS41LjUsMCwwLDAtLjE1LS4zNUw3Ljc5LDIuNTdhLjUuNSww''@;'; + put 'put ''LDAsMC0uODUuMzV2NEgzYS41LjUsMCwwLDAtLjM1Ljg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTguODVhMSwxLDAsMCwxLTEuNDEsMGwtMy0zQTQsNCwwLDAsMCwxMy45MSwxOCw0LjA5LDQuMDks''@;'; + put 'put ''MCwxLDAsMTgsMTMuOTFhNCw0LDAsMCwwLTIsLjU1bDMsM0ExLDEsMCwwLDEsMTksMTguODVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJhMTUuOTIsMTUuOTIsMCwwLDAtNC4yNS41OWwxLjYsMy44OUExMS44''@;'; + put 'put ''OSwxMS44OSwwLDEsMSw2LjQ5LDE1LjNMMi42MSwxMy42OEExNiwxNiwwLDEsMCwxOCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LDE1Ljk0QTEwLjE3LDEwLjE3LDAsMSwwLDE2LDhsMS42OSw0LjExLjMxLDBB''@;'; + put 'put ''NS44OCw1Ljg4LDAsMSwxLDEyLjEyLDE4YzAtLjEyLDAtLjIzLDAtLjM1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjIsMTMuMzRhLjUuNSwwLDAsMCwuMzUuMTVIMTIuMmwyLjM1LDIuMzVBNC4wOSw0LjA5LDAs''@;'; + put 'put ''MCwxLDE2LDE0LjQ2TDEzLjUzLDEyVjguNTFhLjUuNSwwLDAsMC0uMTUtLjM1TDcuNzksMi41N2EuNS41LDAsMCwwLS44NS4zNXY0SDNhLjUuNSwwLDAsMC0uMzUuODVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLEwuQ2xyU2hhcGVUYXJnZXQ9KDAsRS5j''@;'; + put 'put ''bHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTE4LDcuMkExMC44LDEwLjgsMCwxLDAsMjguOCwxOCwxMC44MSwxMC44MSwwLDAsMCwxOCw3LjJabTAsMjBBOS4yLDkuMiwwLDEsMSwyNy4yLDE4LDkuMjEsOS4yMSwwLDAsMSwxOCwyNy4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTIuMzFBNS42OSw1LjY5LDAsMSwwLDIzLjY5LDE4LDUuNjksNS42OSwwLDAsMCwxOCwxMi4zMVptMCw5Ljc3QTQuMDksNC4wOSwwLDEsMSwyMi4wOSwxOCw0LjA5LDQuMDksMCwwLDEsMTgsMjIuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjQuMDkiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNy44M0ExMC4xNywxMC4xNywwLDEsMCwyOC4x''@;'; + put 'put ''NywxOCwxMC4xOCwxMC4xOCwwLDAsMCwxOCw3LjgzWm0wLDE2QTUuODgsNS44OCwwLDEsMSwyMy44OCwxOCw1Ljg4LDUuODgsMCwwLDEsMTgsMjMuODhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYs''@;'; + put 'put ''MCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwyNy44M0ExMS44MywxMS44MywwLDEsMSwyOS44MywxOCwxMS44NSwxMS44NSwwLDAsMSwxOCwyOS44M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZUZsYW1lPSgwLEUuY2xySWNv''@;'; + put 'put ''blNWRykoJzxwYXRoIGQ9Ik0zMS4zLDE2LjY2Yy0xLjE5LTIuMDktNy45NC0xNC4xNS03Ljk0LTE0LjE1YTEsMSwwLDAsMC0xLjc1LDBsLTYsMTAuNjQtMy01LjI4YTEsMSwwLDAsMC0xLjc1LDBTNS40LDE3Ljc4LDQuNDIsMTkuNUE5LjMsOS4zLDAsMCwwLDMsMjQuNjFDMywyOS43Miw1Ljg2''@;'; + put 'put ''LDM0LDExLjY3LDM0SDIyLjQ4QzI4LjI4LDM0LDMzLDI5LDMzLDIyLjc4QTExLjEzLDExLjEzLDAsMCwwLDMxLjMsMTYuNjZaTTIyLjQ4LDMySDExLjc3QzguMTMsMzIsNSwyOC42Niw1LDI0LjYxYTcuNDMsNy40MywwLDAsMSwxLjE2LTQuMTNjLjczLTEuMjksNC4wNS03LjIxLDUuNjUtMTAu''@;'; + put 'put ''MDdsMyw1LjI4YTEsMSwwLDAsMCwuODcuNTFoMGExLDEsMCwwLDAsLjg3LS41MUwyMi40OSw1YzEuODYsMy4zMyw2LjE1LDExLDcuMDcsMTIuNkE5LjI0LDkuMjQsMCwwLDEsMzEsMjIuNzhDMzEsMjcuODcsMjcuMTgsMzIsMjIuNDgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNS43NSwyMS43M2MtLjY1LTEuMTYtNC4zOC03LjgxLTQuMzgtNy44MWEuOC44LDAsMCwwLTEuNCwwbC00LjIsNy40OC0xLjU5LTIuNDlhLjguOCwwLDAsMC0xLjM1LDBMOS4zNywyNC4zNWE0LjM1LDQuMzUsMCwwLDAt''@;'; + put 'put ''LjgyLDIuNiw0LjQ5LDQuNDksMCwwLDAsLjUsMkgxMWEzLDMsMCwwLDEtLjgzLTIsMi43OCwyLjc4LDAsMCwxLC41Ni0xLjczbDIuOC00LjM4LDEuNjYsMi42YS44LjgsMCwwLDAsMS40MS0uMTIsNy44Miw3LjgyLDAsMCwxLC40LS44TDIwLjY3LDE2bDMuNjksNi41N2E0LjgzLDQuODMsMCww''@;'; + put 'put ''LDEsLjc3LDIuNzFBNSw1LDAsMCwxLDIzLjQ2LDI5aDIuMTNhNi42OCw2LjY4LDAsMCwwLDEuMTQtMy43NCw2LjQ1LDYuNDUsMCwwLDAtMS0zLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zLDE2LjMy''@;'; + put 'put ''Yy0xLjE5LTIuMDktNy45NC0xNC4xNS03Ljk0LTE0LjE1YTEsMSwwLDAsMC0xLjc1LDBsLTYsMTAuNjQtMy01LjI4YTEsMSwwLDAsMC0xLjc1LDBTNS40LDE3LjQzLDQuNDIsMTkuMTVBOS4zLDkuMywwLDAsMCwzLDI0LjI2YzAsNS4xMSwzLjg4LDkuNjUsOC42Nyw5Ljc0SDIyLjQ4QzI4LjI4''@;'; + put 'put ''LDM0LDMzLDI4LjYyLDMzLDIyLjQ0QTExLjEzLDExLjEzLDAsMCwwLDMxLjMsMTYuMzJaTTIxLjQ4LDMySDE0LjU0QTQuNjgsNC42OCwwLDAsMSwxMCwyNy40MWEzLjkxLDMuOTEsMCwwLDEsLjc1LTIuMzRsMy4zNS01LjIxYS41LjUsMCwwLDEsLjg0LDBsMS43OCwyLjc3LDAtLjA4Yy42My0x''@;'; + put 'put ''LjExLDQuMjMtNy40OCw0LjIzLTcuNDhhLjUuNSwwLDAsMSwuODcsMHMzLjYsNi4zOCw0LjIzLDcuNDhBNS44Myw1LjgzLDAsMCwxLDI3LDI1Ljc2QzI3LDMyLDIyLjEsMzIsMjEuNDgsMzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVI''@;'; + put 'put ''b3VyZ2xhc3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDMySDI2VjI0LjkxYTYuNjcsNi42NywwLDAsMC0yLjY5LTUuMzNsLTEuMjgtMUE2LjM2LDYuMzYsMCwwLDAsMjEsMThoMGE2LjI5LDYuMjksMCwwLDAsMS0uNjJsMS4yOC0xQTYuNjcsNi42NywwLDAsMCwyNiwxMS4wOVY0''@;'; + put 'put ''aDNhMSwxLDAsMCwwLDAtMkg3QTEsMSwwLDAsMCw3LDRoM3Y3LjA5YTYuNjcsNi42NywwLDAsMCwyLjY5LDUuMzNsMS4yOCwxQTYuMzYsNi4zNiwwLDAsMCwxNSwxOGgwYTYuMjcsNi4yNywwLDAsMC0xLC42MmwtMS4yOCwxQTYuNjcsNi42NywwLDAsMCwxMCwyNC45MVYzMkg3YTEsMSwwLDAs''@;'; + put 'put ''MCwwLDJIMjlhMSwxLDAsMCwwLDAtMlpNMTIsMjQuOTFhNC42Niw0LjY2LDAsMCwxLDEuODgtMy43MmwxLjI4LTFhNC42Niw0LjY2LDAsMCwxLDEuMTgtLjYzLDEsMSwwLDAsMCwuNjUtLjk0VjE3LjMzYTEsMSwwLDAsMC0uNjUtLjk0LDQuNjcsNC42NywwLDAsMS0xLjE5LS42M2wtMS4yOC0x''@;'; + put 'put ''QTQuNjYsNC42NiwwLDAsMSwxMiwxMS4wOVY0SDI0djcuMDlhNC42Niw0LjY2LDAsMCwxLTEuODgsMy43MmwtMS4yOCwxaDBhNC42Niw0LjY2LDAsMCwxLTEuMTguNjMsMSwxLDAsMCwwLS42NS45NHYxLjM0YTEsMSwwLDAsMCwuNjUuOTQsNC42Nyw0LjY3LDAsMCwxLDEuMTkuNjNsMS4yOCwx''@;'; + put 'put ''QTQuNjYsNC42NiwwLDAsMSwyNCwyNC45MVYzMkgxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LDMySDI2VjI0LjkxYTYuNjcsNi42NywwLDAsMC0yLjY5LTUuMzNsLTEuMjgtMUE2LjM2LDYuMzYsMCww''@;'; + put 'put ''LDAsMjEsMThoMGE2LjI5LDYuMjksMCwwLDAsMS0uNjJsMS4yOC0xYTYuNjQsNi42NCwwLDAsMCwxLjA5LTFIMjIuMjNhMy42NCwzLjY0LDAsMCwxLS43OC0uMDlsLS42Mi40NmgwYTQuNjYsNC42NiwwLDAsMS0xLjE4LjYzLDEsMSwwLDAsMC0uNjUuOTR2MS4zNGExLDEsMCwwLDAsLjY1Ljk0''@;'; + put 'put ''LDQuNjcsNC42NywwLDAsMSwxLjE5LjYzbDEuMjgsMUE0LjY2LDQuNjYsMCwwLDEsMjQsMjQuOTFWMzJIMTJWMjQuOTFhNC42Niw0LjY2LDAsMCwxLDEuODgtMy43MmwxLjI4LTFhNC42Niw0LjY2LDAsMCwxLDEuMTgtLjYzLDEsMSwwLDAsMCwuNjUtLjk0VjE3LjMzYTEsMSwwLDAsMC0uNjUt''@;'; + put 'put ''Ljk0LDQuNjcsNC42NywwLDAsMS0xLjE5LS42M2wtMS4yOC0xQTQuNjYsNC42NiwwLDAsMSwxMiwxMS4wOVY0SDIyLjQ1TDIzLjYsMkg3QTEsMSwwLDAsMCw3LDRoM3Y3LjA5YTYuNjcsNi42NywwLDAsMCwyLjY5LDUuMzNsMS4yOCwxQTYuMzYsNi4zNiwwLDAsMCwxNSwxOGgwYTYuMjcsNi4y''@;'; + put 'put ''NywwLDAsMC0xLC42MmwtMS4yOCwxQTYuNjcsNi42NywwLDAsMCwxMCwyNC45MVYzMkg3YTEsMSwwLDAsMCwwLDJIMjlhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LDMySDI2VjI0LjkxYTYuNjcsNi42NywwLDAsMC0yLjY5LTUuMzNsLTEuMjgtMUE2LjM2LDYuMzYsMCwwLDAsMjEsMThoMGE2LjI5LDYuMjksMCwwLDAsMS0uNjJsMS4yOC0xYTYuNjgs''@;'; + put 'put ''Ni42OCwwLDAsMCwyLjU3LTQuMTZBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjQ5di42MWE0LjY2LDQuNjYsMCwwLDEtMS44OCwzLjcybC0xLjI4LDFoMGE0LjY2LDQuNjYsMCwwLDEtMS4xOC42MywxLDEsMCwwLDAtLjY1Ljk0djEuMzRhMSwxLDAsMCwwLC42NS45NCw0LjY3LDQuNjcsMCwwLDEs''@;'; + put 'put ''MS4xOS42M2wxLjI4LDFBNC42Niw0LjY2LDAsMCwxLDI0LDI0LjkxVjMySDEyVjI0LjkxYTQuNjYsNC42NiwwLDAsMSwxLjg4LTMuNzJsMS4yOC0xYTQuNjYsNC42NiwwLDAsMSwxLjE4LS42MywxLDEsMCwwLDAsLjY1LS45NFYxNy4zM2ExLDEsMCwwLDAtLjY1LS45NCw0LjY3LDQuNjcsMCww''@;'; + put 'put ''LDEtMS4xOS0uNjNsLTEuMjgtMUE0LjY2LDQuNjYsMCwwLDEsMTIsMTEuMDlWNEgyMi43OGE3LjQ1LDcuNDUsMCwwLDEsLjg5LTJIN0ExLDEsMCwwLDAsNyw0aDN2Ny4wOWE2LjY3LDYuNjcsMCwwLDAsMi42OSw1LjMzbDEuMjgsMUE2LjM2LDYuMzYsMCwwLDAsMTUsMThoMGE2LjI3LDYuMjcs''@;'; + put 'put ''MCwwLDAtMSwuNjJsLTEuMjgsMUE2LjY3LDYuNjcsMCwwLDAsMTAsMjQuOTFWMzJIN2ExLDEsMCwwLDAsMCwySDI5YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; + put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNi42Nyw0aDIyYTEsMSwwLDAsMCwwLTJoLTIyYTEsMSwwLDEsMCwwLDJaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjY3LDMyaC0yMmExLDEsMCwwLDAsMCwyaDIyYTEsMSwwLDEsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTIyLjU1LDE1LjY3QTYuMDcsNi4wNywwLDAsMCwyNSwxMS4xMlY2SDEwLjA2djUuMTJhNi4wNyw2LjA3LDAsMCwwLDIuNDUsNC41NSwxMS40OCwxMS40OCwwLDAsMCwyLjkxLDEuNzJ2MS4xNmExMS40OCwxMS40OCwwLDAsMC0yLjkxLDEuNzIsNi4wNyw2LjA3LDAsMCwwLTIu''@;'; + put 'put ''NDUsNC41NXY1LjEySDI1VjI0LjgyYTYuMDcsNi4wNywwLDAsMC0yLjQ1LTQuNTUsMTEuNDgsMTEuNDgsMCwwLDAtMi45MS0xLjcyVjE3LjM5QTExLjQ4LDExLjQ4LDAsMCwwLDIyLjU1LDE1LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yOC42NywzMmgtMjJhMSwxLDAsMCwwLDAsMmgyMmExLDEsMCwxLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjY3LDRIMjIuNDVMMjMuNiwySDYu''@;'; + put 'put ''NjdhMSwxLDAsMSwwLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuNTEsMjAuMjdhNi4wNyw2LjA3LDAsMCwwLTIuNDUsNC41NXY1LjEySDI1VjI0LjgyYTYuMDcsNi4wNyww''@;'; + put 'put ''LDAsMC0yLjQ1LTQuNTUsMTEuNDgsMTEuNDgsMCwwLDAtMi45MS0xLjcyVjE3LjM5YTExLjQ4LDExLjQ4LDAsMCwwLDIuOTEtMS43MmwuMy0uMjdoLS42MkEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDEwLjA2djUuMTJhNi4wNyw2LjA3LDAsMCwwLDIuNDUsNC41NSwxMS40OCwx''@;'; + put 'put ''MS40OCwwLDAsMCwyLjkxLDEuNzJ2MS4xNkExMS40OCwxMS40OCwwLDAsMCwxMi41MSwyMC4yN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4''@;'; + put 'put ''LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC42NywzMmgtMjJhMSwxLDAsMCwwLDAsMmgyMmExLDEsMCwxLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNi42Nyw0SDIyLjc4YTcu''@;'; + put 'put ''NDUsNy40NSwwLDAsMSwuODktMmgtMTdhMSwxLDAsMSwwLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjU1LDIwLjI3YTExLjQ4LDExLjQ4LDAsMCwwLTIuOTEtMS43MlYxNy4z''@;'; + put 'put ''OWExMS40OCwxMS40OCwwLDAsMCwyLjkxLTEuNzJBNi4yNSw2LjI1LDAsMCwwLDI1LDExLjU1LDcuNDcsNy40NywwLDAsMSwyMi41LDZIMTAuMDZ2NS4xMmE2LjA3LDYuMDcsMCwwLDAsMi40NSw0LjU1LDExLjQ4LDExLjQ4LDAsMCwwLDIuOTEsMS43MnYxLjE2YTExLjQ4LDExLjQ4LDAsMCww''@;'; + put 'put ''LTIuOTEsMS43Miw2LjA3LDYuMDcsMCwwLDAtMi40NSw0LjU1djUuMTJIMjVWMjQuODJBNi4wNyw2LjA3LDAsMCwwLDIyLjU1LDIwLjI3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIz''@;'; + put 'put ''MCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlTm9BY2Nlc3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYs''@;'; + put 'put ''MCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjE1LDE1SDguODVBMS44NSwxLjg1LDAsMCwwLDcsMTYuODV2Mi4y''@;'; + put 'put ''OUExLjg1LDEuODUsMCwwLDAsOC44NSwyMUgyNy4xNUExLjg1LDEuODUsMCwwLDAsMjksMTkuMTVWMTYuODVBMS44NSwxLjg1LDAsMCwwLDI3LjE1LDE1Wm0uMjUsNC4xNWEuMjUuMjUsMCwwLDEtLjI1LjI1SDguODVhLjI1LjI1LDAsMCwxLS4yNS0uMjVWMTYuODVhLjI1LjI1LDAsMCwxLC4y''@;'; + put 'put ''NS0uMjVIMjcuMTVhLjI1LjI1LDAsMCwxLC4yNS4yNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMjkuMTUsMjBINi44NUEuODUuODUs''@;'; + put 'put ''MCwwLDEsNiwxOS4xNVYxNi44NUEuODUuODUsMCwwLDEsNi44NSwxNkgyOS4xNWEuODUuODUsMCwwLDEsLjg1Ljg1djIuMjlBLjg1Ljg1LDAsMCwxLDI5LjE1LDIwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlT3JnYW5pemF0aW9uPSgw''@;'; + put 'put ''LEUuY2xySWNvblNWRykoJzxwb2x5Z29uIHBvaW50cz0iOS44IDE4LjggMjYuMiAxOC44IDI2LjIgMjEuODggMjcuOCAyMS44OCAyNy44IDE3LjIgMTguOCAxNy4yIDE4LjggMTQgMTcuMiAxNCAxNy4yIDE3LjIgOC4yIDE3LjIgOC4yIDIxLjg4IDkuOCAyMS44OCA5LjggMTguOCIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQsMjNINGEyLDIsMCwwLDAtMiwydjZhMiwyLDAsMCwwLDIsMkgxNGEyLDIsMCwwLDAsMi0yVjI1QTIsMiwwLDAsMCwxNCwyM1pNNCwzMVYyNUgxNHY2WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMjNIMjJhMiwyLDAsMCwwLTIsMnY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNUEyLDIsMCwwLDAsMzIsMjNaTTIyLDMxVjI1SDMydjZaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMywxM0gyM2EyLDIsMCwwLDAsMi0yVjVhMiwyLDAsMCwwLTItMkgxM2EyLDIsMCwwLDAtMiwydjZBMiwyLDAsMCwwLDEzLDEzWm0wLThIMjN2NkgxM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI5LjggMTguOCAyNi4yIDE4LjggMjYuMiAyMS44OCAyNy44IDIxLjg4IDI3LjggMTcuMiAxOC44IDE3LjIgMTguOCAxNCAxNy4yIDE0IDE3LjIgMTcuMiA4LjIgMTcuMiA4LjIgMjEuODggOS44IDIx''@;'; + put 'put ''Ljg4IDkuOCAxOC44IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMiIgeT0iMjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgeD0iMjAiIHk9IjIzIiB3aWR0aD0iMTQiIGhlaWdodD0iMTAiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIzIiB3aWR0aD0iMTQiIGhlaWdodD0i''@;'; + put 'put ''MTAiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxMLkNsclNoYXBlQmFsYW5jZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQsMzNIMTJhMSwxLDAsMCwxLDAtMkgyNGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iOSIgd2lkdGg9IjIiIGhlaWdodD0iMjIuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsN0g4QTEs''@;'; + put 'put ''MSwwLDAsMSw4LDVIMjhhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjkzLDI0Ljc5YTcuMjMsNy4yMywwLDAsMS01LjgxLTIuODlsLS42LS44LDEuNTktMS4yMS42LjhhNS4yOCw1''@;'; + put 'put ''LjI4LDAsMCwwLDguNDIsMGwuNi0uOCwxLjU5LDEuMjEtLjYuOEE3LjIzLDcuMjMsMCwwLDEsMjYuOTMsMjQuNzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC41MSwxOS4yNWEuOC44LDAsMCwxLS43My0u''@;'; + put 'put ''NDhMMjYuOTMsMTIuMmwtMi44NSw2LjU3YS44LjgsMCwwLDEtMS40Ny0uNjRMMjYuMiw5Ljg3YS44My44MywwLDAsMSwxLjQ3LDBsMy41OCw4LjI2YS44LjgsMCwwLDEtLjczLDEuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik05LjY4LDI0Ljc5QTcuMjMsNy4yMywwLDAsMSwzLjg4LDIxLjlsLS42LS44TDQuODYsMTkuOWwuNi44YTUuMjgsNS4yOCwwLDAsMCw4LjQyLDBsLjYtLjgsMS41OSwxLjIxLS42LjhBNy4yMyw3LjIzLDAsMCwxLDkuNjgsMjQuNzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy4yNiwxOS4yNWEuOC44LDAsMCwxLS43My0uNDhMOS42OCwxMi4yLDYuODQsMTguNzdhLjguOCwwLDAsMS0xLjQ3LS42NEw4Ljk1LDkuODdhLjgzLjgzLDAsMCwxLDEuNDcsMEwxNCwxOC4xM2EuOC44LDAs''@;'; + put 'put ''MCwxLS43MywxLjEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+JyksTC5DbHJTaGFwZUlkQmFkZ2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDIyYTQuMjMsNC4yMywwLDEsMC00LjIzLTQuMjNBNC4yMyw0LjIzLDAsMCwwLDE4LDIyWm0w''@;'; + put 'put ''LTYuODZhMi42MywyLjYzLDAsMSwxLTIuNjMsMi42M0EyLjYzLDIuNjMsMCwwLDEsMTgsMTUuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiw0YTIsMiwwLDAsMC0yLTJIMTZhMiwyLDAsMCwwLTIsMnY3''@;'; + put 'put ''aDhaTTIwLDlIMTZWNGg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzBWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAsMCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYs''@;'; + put 'put ''MjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMGgxLjZWMjcuODdBOC4zMyw4LjMzLDAsMCwxLDE4LDI1LjI5YTguMzMsOC4zMywwLDAsMSw2LjQsMi41OVYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4''@;'; + put 'put ''LDZIMjRWOGg0VjMySDhWOGg0VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwyOCw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjJh''@;'; + put 'put ''NC4yMyw0LjIzLDAsMSwwLTQuMjMtNC4yM0E0LjIzLDQuMjMsMCwwLDAsMTgsMjJabTAtNi44NmEyLjYzLDIuNjMsMCwxLDEtMi42MywyLjYzQTIuNjMsMi42MywwLDAsMSwxOCwxNS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVy''@;'; + put 'put ''dGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBoMS42VjI3Ljg3QTguMzMsOC4zMywwLDAsMSwxOCwyNS4yOWE4LjMzLDguMzMsMCwwLDEsNi40LDIuNTlWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5Ljks''@;'; + put 'put ''OS45LDAsMCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSw5Ljg5LDE5LjU2LDlIMTZWNGg0VjguMjRsMi0zLjQ2''@;'; + put 'put ''VjRhMiwyLDAsMCwwLTItMkgxNmEyLDIsMCwwLDAtMiwydjdoNC42NEEzLjY2LDMuNjYsMCwwLDEsMTksOS44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzJI''@;'; + put 'put ''OFY4aDRWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIx''@;'; + put 'put ''LjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMmE0LjIzLDQuMjMsMCwxLDAtNC4yMy00LjIzQTQuMjMsNC4yMywwLDAsMCwxOCwyMlptMC02Ljg2YTIuNjMsMi42MywwLDEsMS0yLjYzLDIuNjNBMi42MywyLjYzLDAsMCwxLDE4LDE1LjE0WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDRhMiwyLDAsMCwwLTItMkgxNmEyLDIsMCwwLDAtMiwydjdoOFpNMjAsOUgxNlY0aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMGgxLjZWMjcuODdBOC4zMyw4LjMzLDAsMCwxLDE4LDI1LjI5YTguMzMsOC4zMywwLDAsMSw2LjQsMi41OVYzMEgyNlYyNy43YTEuMTIsMS4xMiww''@;'; + put 'put ''LDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMkg4VjhoNFY2''@;'; + put 'put ''SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjgsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; + put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3Ljc3IiByPSI0LjIzIiBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDRhMiwyLDAsMCwwLTItMkgxN2EyLDIsMCwwLDAtMiwydjZoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4x''@;'; + put 'put ''MywxLjEzLDAsMCwwLS4yNi43M1YzMEgyNlYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; + put 'put ''PSJNMjgsNkgyM1Y4aDVWMzJIOFY4aDVWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDI4LDZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDku''@;'; + put 'put ''ODksMjEsNi41VjRhMiwyLDAsMCwwLTItMkgxN2EyLDIsMCwwLDAtMiwydjZoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3Ljc3IiByPSI0LjIzIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAsMCwwLDE4LDIzLjY5''@;'; + put 'put ''LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzJIOFY4aDVWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEy''@;'; + put 'put ''LDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCww''@;'; + put 'put ''LDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3Ljc3''@;'; + put 'put ''IiByPSI0LjIzIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSw0YTIsMiwwLDAsMC0yLTJIMTdhMiwyLDAsMCwwLTIsMnY2aDZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTMuMjJWMzJIOFY4aDVWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5''@;'; + put 'put ''LDAsMCwxLDI4LDEzLjIyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlUmVwZWF0PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNNiwxNC4xNUEzLjE3LDMuMTcsMCwwLDEsOS4xNywxMUgyOC40bC00LjI4LDQuNTRhMSwx''@;'; + put 'put ''LDAsMSwwLDEuNDYsMS4zN0wzMi4wOSwxMCwyNS41OCwzLjA5YTEsMSwwLDEsMC0xLjQ2LDEuMzdMMjguNCw5SDkuMTdBNS4xNyw1LjE3LDAsMCwwLDQsMTQuMTV2Ni4xbDItMi4xMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yIiBkPSJNMzAsMjEuODVBMy4xNywzLjE3LDAsMCwxLDI2LjgzLDI1SDcuNmw0LjI4LTQuNTRhMSwxLDAsMSwwLTEuNDYtMS4zN0wzLjkxLDI2bDYuNTEsNi45MWExLDEsMCwxLDAsMS40Ni0xLjM3TDcuNiwyN0gyNi44M0E1LjE3LDUuMTcsMCwwLDAsMzIsMjEuODV2LTYuMWwtMiwyLjEy''@;'; + put 'put ''WiIvPicpLEwuQ2xyU2hhcGVGaWxlR3JvdXA9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMSwzNEgxM2ExLDEsMCwwLDEtMS0xVjExYTEsMSwwLDAsMSwxLTFIMzFhMSwxLDAsMCwxLDEsMVYzM0ExLDEsMCww''@;'; + put 'put ''LDEsMzEsMzRaTTE0LDMySDMwVjEySDE0WiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjE2IiB5PSIxNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIxNiIgeT0iMjAiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgeD0iMTYiIHk9IjI0IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik02LDI0VjRIMjRWM2ExLDEsMCwwLDAtMS0xSDVBMSwxLDAsMCwwLDQsM1YyNWExLDEsMCwwLDAsMSwxSDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTEwLDI4VjhIMjhWN2ExLDEsMCwwLDAtMS0xSDlBMSwxLDAsMCwwLDgsN1YyOWExLDEsMCwwLDAsMSwxaDFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzEsMTBI''@;'; + put 'put ''MTNhMSwxLDAsMCwwLTEsMVYzM2ExLDEsMCwwLDAsMSwxSDMxYTEsMSwwLDAsMCwxLTFWMTFBMSwxLDAsMCwwLDMxLDEwWk0yOCwyNkgxNlYyNEgyOFptMC00SDE2VjIwSDI4Wm0wLTRIMTZWMTZIMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0yIiBkPSJNNiwyNFY0SDI0VjNhMSwxLDAsMCwwLTEtMUg1QTEsMSwwLDAsMCw0LDNWMjVhMSwxLDAsMCwwLDEsMUg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTEwLDI4VjhIMjhWN2ExLDEsMCwwLDAt''@;'; + put 'put ''MS0xSDlBMSwxLDAsMCwwLDgsN1YyOWExLDEsMCwwLDAsMSwxaDFaIi8+JyksTC5DbHJTaGFwZVBhcGVyY2xpcD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguNDIsMzIuNkE2LjMsNi4zLDAsMCwxLDQsMzAu''@;'; + put 'put ''NzlsLS4xMy0uMTNBNi4yLDYuMiwwLDAsMSwyLDI2LjIyLDYuNzcsNi43NywwLDAsMSw0LDIxLjRMMTkuNSw2LjA3YTguNjcsOC42NywwLDAsMSwxMi4xNS0uMzVBOCw4LDAsMCwxLDM0LDExLjQ0YTksOSwwLDAsMS0yLjcsNi4zNkwxNy4zNywzMS42QTEsMSwwLDEsMSwxNiwzMC4xOEwyOS44''@;'; + put 'put ''OSwxNi4zOEE3LDcsMCwwLDAsMzIsMTEuNDRhNiw2LDAsMCwwLTEuNzYtNC4zLDYuNjcsNi42NywwLDAsMC05LjM0LjM1TDUuNDUsMjIuODJBNC43OCw0Ljc4LDAsMCwwLDQsMjYuMjJhNC4yMSw0LjIxLDAsMCwwLDEuMjQsM2wuMTMuMTNhNC42NCw0LjY0LDAsMCwwLDYuNS0uMjFMMjUuMjIs''@;'; + put 'put ''MTUuOTRBMi43LDIuNywwLDAsMCwyNiwxNGEyLjM1LDIuMzUsMCwwLDAtLjY5LTEuNjgsMi42MSwyLjYxLDAsMCwwLTMuNjYuMTNsLTkuMiw5LjEyYTEsMSwwLDEsMS0xLjQxLTEuNDJMMjAuMjgsMTFhNC42Miw0LjYyLDAsMCwxLDYuNDgtLjEzQTQuMzMsNC4zMywwLDAsMSwyOCwxNGE0LjY4''@;'; + put 'put ''LDQuNjgsMCwwLDEtMS40MSwzLjM0TDEzLjI4LDMwLjU4QTYuOTEsNi45MSwwLDAsMSw4LjQyLDMyLjZaIi8+JyksTC5DbHJTaGFwZVNocmluaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDE1SDIyLjQx''@;'; + put 'put ''bDkuMjUtOS4yNWExLDEsMCwwLDAtMS40MS0xLjQxTDIxLDEzLjU5VjRhMSwxLDAsMCwwLTIsMFYxN0gzMmExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik00LDE5YTEsMSwwLDAsMCwwLDJo''@;'; + put 'put ''OS41OUw0LjMzLDMwLjI1YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTUsMjIuNDFWMzJhMSwxLDAsMCwwLDIsMFYxOVoiLz4nKSxMLkNsclNoYXBlQWNjZXNzaWJpbGl0eTE9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjQ0LDMxLjk0YTcuMzEsNy4zMSwwLDAsMS01LjctMTEuODhMNy4z''@;'; + put 'put ''MiwxOC42NGE5LjMsOS4zLDAsMCwwLDEzLjEsMTMuMTFMMTksMzAuMzNBNy4yOSw3LjI5LDAsMCwxLDE0LjQ0LDMxLjk0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjUuMzYsMS42N2E0LjEyLDQuMTIsMCwx''@;'; + put 'put ''LDAsNC4xMSw0LjExQTQuMTIsNC4xMiwwLDAsMCwyNS4zNiwxLjY3Wm0wLDYuMjNhMi4xMiwyLjEyLDAsMSwxLDIuMTEtMi4xMkEyLjEyLDIuMTIsMCwwLDEsMjUuMzYsNy45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMjYuNTYsMTguMThoLTVhMSwxLDAsMCwwLS4yNC4wNWwzLjA5LTMuNTVhMi44MywyLjgzLDAsMCwwLS42OS00LjMzbC04LTQuNmExLDEsMCwwLDAtMS4xMi4wOEw5LjgzLDkuNThBMSwxLDAsMCwwLDkuNjYsMTFhMSwxLDAsMCwwLC43OS4zOCwxLDEsMCwwLDAsLjYxLS4yMWw0LjI3''@;'; + put 'put ''LTMuMzQsMy4xMSwxLjc3LTUuMDgsNS43OGgwYTkuMjgsOS4yOCwwLDAsMC00LjUzLDEuODNsMS40MywxLjQzQTcuMyw3LjMsMCwwLDEsMjAuNDIsMjguODFsMS40MiwxLjQzYTkuMjcsOS4yNywwLDAsMCwuNzctMTAuMDZoMi44MmwtLjc3LDYuNTFhMSwxLDAsMCwwLC44OCwxLjExaC4xMmEx''@;'; + put 'put ''LDEsMCwwLDAsMS0uODhsLjktNy42MmExLDEsMCwwLDAtLjI1LS43OEExLDEsMCwwLDAsMjYuNTYsMTguMThabS02LjM3LTcuNTYsMi41MiwxLjQ2YS43OS43OSwwLDAsMSwuNC41OS44MS44MSwwLDAsMS0uMi42OUwxOS43NSwxN0E5LjE3LDkuMTcsMCwwLDAsMTYsMTUuNDVaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43NywzMS45NGE3LjMxLDcuMzEsMCwwLDEtNS43LTExLjg4TDcuNjUsMTguNjRhOS4zLDkuMywwLDAsMCwxMy4xLDEzLjExbC0xLjQyLTEuNDJBNy4yOSw3LjI5LDAsMCwxLDE0''@;'; + put 'put ''Ljc3LDMxLjk0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi42NSwyLjFhMy4xMiwzLjEyLDAsMSwwLDMuMTEsMy4xMkEzLjEyLDMuMTIsMCwwLDAsMjYuNjUsMi4xWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44MSwxOC4xOEgyMS40N3EtLjMxLS4zMy0uNjYtLjYzbDQuMzgtNC44NmEyLjE0LDIuMTQsMCwwLDAtLjUzLTMuMjdMMjAuOSw3LjIzbDAsMEwxNy4wNSw1LjA3YTEsMSwwLDAsMC0xLjExLjA4TDExLjE1LDguOWEx''@;'; + put 'put ''LDEsMCwwLDAsMS4yMywxLjU4bDQuMjctMy4zNCwyLjg3LDEuNjNMMTMuNiwxNS4zOWE5LjMzLDkuMzMsMCwwLDAtNC40NCwxLjgybDEuNDIsMS40M0E3LjMsNy4zLDAsMCwxLDIwLjc1LDI4LjgxbDEuNDMsMS40M0E5LjI3LDkuMjcsMCwwLDAsMjMsMjAuMThoMi43NGwtLjc3LDYuNTFhMSwx''@;'; + put 'put ''LDAsMCwwLC44NywxLjExaC4xMmExLDEsMCwwLDAsMS0uODhsLjktNy42MmExLDEsMCwwLDAtLjI1LS43OEExLDEsMCwwLDAsMjYuODEsMTguMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5Mj0oMCxFLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMzAuMDYsMTFoLTI0YTEsMSwwLDEsMCwwLDJIMTR2OS42NXMwLDAsMCwwbC0zLjc1LDEwYTEsMSwwLDAsMCwuNTgsMS4yOSwxLjEzLDEuMTMsMCwwLDAsLjM2LjA2LDEsMSwwLDAsMCwuOTMtLjY1TDE1LjYyLDI0aDQuNzZsMy41Miw5LjM1YTEsMSwwLDAsMCwu''@;'; + put 'put ''OTMuNjUsMS4xMywxLjEzLDAsMCwwLC4zNi0uMDYsMSwxLDAsMCwwLC41OC0xLjI5TDIyLDIyLjY4czAsMCwwLDBWMTNoOC4wNmExLDEsMCwxLDAsMC0yWk0yMCwyMkgxNlYxM2g0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMTgsMTBhNCw0LDAsMSwwLTQtNEE0LDQsMCwwLDAsMTgsMTBabTAtNmEyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwxOCw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxNy45NiIgY3k9IjUi''@;'; + put 'put ''IHI9IjMiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTBINmExLDEsMCwwLDAsMCwyaDh2OC4zNnMwLDAsMCwwTDEwLjExLDMzLjE3YTEsMSwwLDAsMCwuNjYsMS4yNSwxLjU1LDEuNTUsMCwwLDAsLjI5LDAsMSwx''@;'; + put 'put ''LDAsMCwwLDEtLjcxbDMuMjktMTAuODRoNS4zOEwyNCwzMy43NWExLDEsMCwwLDAsMSwuNzEsMS41NSwxLjU1LDAsMCwwLC4yOSwwLDEsMSwwLDAsMCwuNjYtMS4yNUwyMiwyMC40czAsMCwwLDBWMTJoOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh''@;'; + put 'put ''dGgtMiIgLz4nKSxMLkNsclNoYXBlU29ydEJ5PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOC41NCwxM0g3LjQ2YTEsMSwwLDAsMSwwLTJIMjguNTRhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTIxLjE3LDE5SDcuNDZhMSwxLDAsMCwxLDAtMkgyMS4xN2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNzQsMjVINy40NmExLDEsMCwwLDEsMC0yaDYuMjhhMSwx''@;'; + put 'put ''LDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVDb2xsYXBzZUNhcmQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDIxSDNhMSwxLDAsMCwwLTEsMXY2YTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEt''@;'; + put 'put ''MVYyMkExLDEsMCwwLDAsMzMsMjFabS0xLDZINFYyM0gzMloiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIwLjIybDUuNjUtNS42NWEuODEuODEsMCwwLDAsMC0xLjE0LjguOCwwLDAsMC0xLjEzLDBMMTgs''@;'; + put 'put ''MThsLTQuNTItNC41MmEuOC44LDAsMCwwLTEuMTMsMCwuODEuODEsMCwwLDAsMCwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuMjJsNS42NS01LjY1YS44MS44MSwwLDAsMCwwLTEuMTQuOC44''@;'; + put 'put ''LDAsMCwwLTEuMTMsMEwxOCwxMiwxMy40OCw3LjQzYS44LjgsMCwwLDAtMS4xMywwLC44MS44MSwwLDAsMCwwLDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIiIHk9IjIyIiB3aWR0aD0iMzIiIGhlaWdo''@;'; + put 'put ''dD0iOCIgcng9IjEiIHJ5PSIxIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIwLjdsLTUuNzktNS43OWExLDEsMCwwLDEsMC0xLjQxLDEsMSwwLDAsMSwxLjQxLDBMMTgsMTcuODdsNC4zOC00LjM3YTEsMSwwLDAs''@;'; + put 'put ''MSwxLjQxLDAsMSwxLDAsMCwxLDAsMS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuNSwxMi4yMSw4LjcxYTEsMSwwLDAsMSwwLTEuNDIsMSwxLDAsMCwxLDEuNDEsMEwxOCwxMS42N2w0LjM4LTQuMzhh''@;'; + put 'put ''MSwxLDAsMCwxLDEuNDEsMCwxLDEsMCwwLDEsMCwxLjQyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxMLkNsclNoYXBlRXhwYW5kQ2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsNkgzQTEsMSwwLDAsMCwyLDdWMjlhMSwxLDAsMCwwLDEs''@;'; + put 'put ''MUgzM2ExLDEsMCwwLDAsMS0xVjdBMSwxLDAsMCwwLDMzLDZaTTMyLDI4SDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNDgsMTUuODYsMTgsMTEuMzRsNC41Miw0LjUyYS43Ny43NywwLDAsMCwu''@;'; + put 'put ''NTYuMjQuODEuODEsMCwwLDAsLjU3LTEuMzdMMTgsOS4wOGwtNS42NSw1LjY1YS44LjgsMCwxLDAsMS4xMywxLjEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy40OCwyMS44NiwxOCwxNy4zNGw0LjUyLDQu''@;'; + put 'put ''NTJhLjc3Ljc3LDAsMCwwLC41Ni4yNC44MS44MSwwLDAsMCwuNTctMS4zN0wxOCwxNS4wOGwtNS42NSw1LjY1YS44LjgsMCwxLDAsMS4xMywxLjEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMyw2SDNBMSwx''@;'; + put 'put ''LDAsMCwwLDIsN1YyOWExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWN0ExLDEsMCwwLDAsMzMsNlpNMjMuNzksMjEuNDFhMSwxLDAsMCwxLTEuNDEsMEwxOCwxN2wtNC4zOCw0LjM4YTEsMSwwLDAsMS0xLjQxLDAsMSwxLDAsMCwxLDAtMS40MkwxOCwxNC4yLDIzLjc5LDIwQTEsMSww''@;'; + put 'put ''LDAsMSwyMy43OSwyMS40MVptMC02LjJhMSwxLDAsMCwxLTEuNDEsMEwxOCwxMC44M2wtNC4zOCw0LjM4YTEsMSwwLDAsMS0xLjQxLDAsMSwxLDAsMCwxLDAtMS40MkwxOCw4bDUuNzksNS43OUExLDEsMCwwLDEsMjMuNzksMTUuMjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVCcmllZmNhc2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDI4YTAsMCwwLDAsMSwwLDBINFYyMS4zMmE3LjEsNy4xLDAsMCwxLTItMS40M1YyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuODlhNi43NCw2Ljc0LDAsMCwx''@;'; + put 'put ''LTIsMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTI1LDIyLjRhMSwxLDAsMCwwLDEtMVYxNS45NEgyNFYxOEgxNHYySDI0djEuNEExLDEsMCwwLDAsMjUsMjIuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTMzLDZIMjRWNC4zOEEyLjQyLDIuNDIsMCwwLDAsMjEuNTUsMmgtNy4xQTIuNDIsMi40MiwwLDAsMCwxMiw0LjM4VjZIM0ExLDEsMCwwLDAsMiw3djhhNSw1LDAsMCwwLDUsNWgzdjEuNGExLDEsMCwwLDAsMiwwVjE1Ljk0SDEwVjE4SDdhMywzLDAs''@;'; + put 'put ''MCwxLTMtM1Y4SDMydjdhMywzLDAsMCwxLTMsM0gyOHYyaDFhNSw1LDAsMCwwLDUtNVY3QTEsMSwwLDAsMCwzMyw2Wk0yMiw2SDE0VjQuNDNBLjQ1LjQ1LDAsMCwxLDE0LjQ1LDRoNy4xMWEuNDMuNDMsMCwwLDEsLjQ0LjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMiIC8+XG48cGF0aCBkPSJNMzAsMThBNC4wNiw0LjA2LDAsMCwwLDM0LDE0VjZIMjRWNC40M0EyLjQ0LDIuNDQsMCwwLDAsMjEuNTUsMmgtNy4xQTIuNDQsMi40NCwwLDAsMCwxMiw0LjQzVjZIMnY4QTQuMDYsNC4wNiwwLDAsMCw2LjA1LDE4aDRWMTUuOTJoMnY1LjdhMSwxLDAsMSwx''@;'; + put 'put ''LTIsMFYyMC4wNkg2LjA2QTYuMDYsNi4wNiwwLDAsMSwyLDE4LjQ5djkuNDVhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE4LjQ5YTYsNiwwLDAsMS00LjA2LDEuNTdIMjhWMThaTTE0LDQuNDNBLjQ1LjQ1LDAsMCwxLDE0LjQ1LDRoNy4xYS40NS40NSwwLDAsMSwuNDUuNDNWNkgx''@;'; + put 'put ''NFpNMjYsMjEuNjJhMSwxLDAsMSwxLTIsMFYyMC4wNkgxNFYxOEgyNFYxNS45MmgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQ29sb3JQaWNrZXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDEwLjA1YTUuMDcsNS4wNyww''@;'; + put 'put ''LDAsMCwuMS03LjE3QTUuMDYsNS4wNiwwLDAsMCwyNiwzTDIwLjc4LDguMTVhMi4xMywyLjEzLDAsMCwxLTMsMGwtLjY3LS42N0wxNS43Miw4LjkyLDI3LjA4LDIwLjI4bDEuNDItMS40Mi0uNjctLjY3YTIuMTMsMi4xMywwLDAsMSwwLTNaTTI2LjQ0LDEzLjhhNC4wNyw0LjA3LDAsMCwwLTEu''@;'; + put 'put ''MDgsMS45MmwtNS4wOC01LjA4QTQuMDcsNC4wNywwLDAsMCwyMi4yLDkuNTZsNS4xNi01LjE3YTMuMDksMy4wOSwwLDAsMSw0LjM1LS4xLDMuMDksMy4wOSwwLDAsMS0uMSw0LjM1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNNy4z''@;'; + put 'put ''LDMxLjUxYTIsMiwwLDEsMS0yLjgzLTIuODNMMTguNTgsMTQuNTdsLTEuNDItMS40MUwzLjA1LDI3LjI3YTQsNCwwLDAsMC0uNjgsNC44TC44OSwzMy41NUExLDEsMCwwLDAsLjg5LDM1YTEsMSwwLDAsMCwxLjQyLDBsMS40My0xLjQ0YTMuOTMsMy45MywwLDAsMCwyLjA5LjYsNC4wNiw0LjA2''@;'; + put 'put ''LDAsMCwwLDIuODgtMS4yTDIyLjgyLDE4LjgxLDIxLjQxLDE3LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik0zMy43MywyLjExYTQuMDksNC4wOSwwLDAsMC01Ljc2LjFMMjIuODEsNy4zOGEzLjEzLDMuMTMsMCwwLDEtNC4zLjEx''@;'; + put 'put ''TDE3LjA5LDguOTEsMjcsMTguNzlsMS40Mi0xLjQyQTMuMTgsMy4xOCwwLDAsMSwyOC40NiwxM2w1LjE3LTUuMTdBNC4wOCw0LjA4LDAsMCwwLDMzLjczLDIuMTFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTIyLjE4LDE2Ljc5LDcuNDYs''@;'; + put 'put ''MzEuNTFhMiwyLDAsMSwxLTIuODItMi44M0wxOS4zNSwxNGwtMS40MS0xLjQxTDMuMjIsMjcuMjdhNCw0LDAsMCwwLS42OCw0LjhMMS4wNiwzMy41NWExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwxLjQxLDBsMS40NC0xLjQ0YTMuOTMsMy45MywwLDAsMCwyLjA5LjYsNC4wNiw0LjA2LDAs''@;'; + put 'put ''MCwwLDIuODgtMS4yTDIzLjYsMTguMjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVDb3B5VG9DbGlwYm9hcmQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIyLjYsNEgyMS41NWEzLjg5LDMuODksMCwwLDAtNy4zMSwwSDEzLjRB''@;'; + put 'put ''Mi40MSwyLjQxLDAsMCwwLDExLDYuNFYxMEgyNVY2LjRBMi40MSwyLjQxLDAsMCwwLDIyLjYsNFpNMjMsOEgxM1Y2LjI1QS4yNS4yNSwwLDAsMSwxMy4yNSw2aDIuNjlsLjEyLTEuMTFBMS4yNCwxLjI0LDAsMCwxLDE2LjYxLDRhMiwyLDAsMCwxLDMuMTUsMS4xOGwuMDkuODRoMi45YS4yNS4y''@;'; + put 'put ''NSwwLDAsMSwuMjUuMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0zMy4yNSwxOC4wNkgyMS4zM2wyLjg0LTIuODNhMSwxLDAsMSwwLTEuNDItMS40MkwxNy41LDE5LjA2bDUuMjUsNS4yNWExLDEsMCwwLDAsLjcxLjI5LDEsMSww''@;'; + put 'put ''LDAsMCwuNzEtMS43bC0yLjg0LTIuODRIMzMuMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTI5LDE2aDJWNi42OEExLjY2LDEuNjYsMCwwLDAsMjkuMzUsNUgyNy4wOFY3SDI5WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG48cGF0aCBkPSJNMjksMzFIN1Y3SDlWNUg2LjY0QTEuNjYsMS42NiwwLDAsMCw1LDYuNjdWMzEuMzJBMS42NiwxLjY2LDAsMCwwLDYuNjUsMzNIMjkuMzZBMS42NiwxLjY2LDAsMCwwLDMxLDMxLjMzVjIyLjA2SDI5WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZURyYWdIYW5kbGU9KDAsRS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMTUiIGN5PSIxMiIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48Y2lyY2xl''@;'; + put 'put ''IGN4PSIxNSIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxjaXJjbGUgY3g9IjIxIiBjeT0iMTIiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PGNpcmNsZSBjeD0iMjEiIGN5''@;'; + put 'put ''PSIyNCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48Y2lyY2xlIGN4PSIyMSIgY3k9IjE4IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxjaXJjbGUgY3g9IjE1IiBjeT0iMTgiIHI9IjEu''@;'; + put 'put ''NSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZUZpbHRlcjI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDExSDNhMSwxLDAsMCwwLDAsMkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMjgsMTdIOGExLDEsMCwwLDAsMCwySDI4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik0yMywyM0gxM2ExLDEsMCwwLDAsMCwySDIzYTEsMSwwLDAsMCww''@;'; + put 'put ''LTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxMLkNsclNoYXBlTW9vbj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMjcuMTlhMSwxLDAsMCwwLTEtLjU2Yy0uMjgsMC0uNTYsMC0uODUsMEExMSwxMSwwLDAsMSwyNC45Miw1LjYxYTEs''@;'; + put 'put ''MSwwLDAsMCwuNjEtMSwxLDEsMCwwLDAtLjY3LS45MSwxNC43LDE0LjcsMCwwLDAtNS0uODcsMTUuMTIsMTUuMTIsMCwwLDAsMCwzMC4yNCwxNC43OCwxNC43OCwwLDAsMCwxMS00LjgxQTEsMSwwLDAsMCwzMSwyNy4xOVpNMTkuODksMzEuMTJhMTMuMTIsMTMuMTIsMCwwLDEsMC0yNi4yNCwx''@;'; + put 'put ''MS44MSwxMS44MSwwLDAsMSwyLC4xNiwxMywxMywwLDAsMCw1LjcyLDIzLjUzQTEyLjc1LDEyLjc1LDAsMCwxLDE5Ljg5LDMxLjEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMjkuMiwyNi43MkExMi4wNywxMi4wNywwLDAsMSwy''@;'; + put 'put ''Mi45LDQuNDQsMTMuNjgsMTMuNjgsMCwwLDAsMTkuNDksNGExNCwxNCwwLDAsMCwwLDI4LDEzLjgyLDEzLjgyLDAsMCwwLDEwLjktNS4zNEExMS43MSwxMS43MSwwLDAsMSwyOS4yLDI2LjcyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBl''@;'; + put 'put ''U3VuPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw2LjMxYTEsMSwwLDAsMCwxLTFWMS45MWExLDEsMCwwLDAtMiwwdjMuNEExLDEsMCwwLDAsMTgsNi4zMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTE4LDI5LjY5YTEs''@;'; + put 'put ''MSwwLDAsMC0xLDF2My40YTEsMSwwLDAsMCwyLDB2LTMuNEExLDEsMCwwLDAsMTgsMjkuNjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik04LjMyLDkuNzRBMSwxLDAsMCwwLDksMTBhMSwxLDAsMCwwLC43MS0uMjksMSwxLDAsMCww''@;'; + put 'put ''LDAtMS40Mkw3LjMzLDUuOTJBMSwxLDAsMCwwLDUuOTIsNy4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNy42OCwyNi4yNmExLDEsMCwxLDAtMS40MiwxLjQybDIuNDEsMi40YTEsMSwwLDAsMCwuNzEuMywxLDEsMCwwLDAsLjct''@;'; + put 'put ''LjMsMSwxLDAsMCwwLDAtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik02LjMxLDE4YTEsMSwwLDAsMC0xLTFIMS45MWExLDEsMCwwLDAsMCwyaDMuNEExLDEsMCwwLDAsNi4zMSwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zNC4wOSwxN2gtMy40YTEsMSwwLDEsMCwwLDJoMy40YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNOC4zMiwyNi4yNmwtMi40LDIuNDFhMSwxLDAsMCww''@;'; + put 'put ''LC43LDEuNzEsMSwxLDAsMCwwLC43MS0uM2wyLjQxLTIuNGExLDEsMCwxLDAtMS40Mi0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTI3LDEwYTEsMSwwLDAsMCwuNzEtLjI5bDIuNC0yLjQxYTEsMSwwLDAsMCwwLTEuNDEsMSwx''@;'; + put 'put ''LDAsMCwwLTEuNDEsMGwtMi40MSwyLjRhMSwxLDAsMCwwLDAsMS40MkExLDEsMCwwLDAsMjcsMTBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz48cGF0aCBkPSJNMTguMTMsNy43NWExMC4xMywxMC4xMywwLDEsMCwxMCwxMC4xM0ExMC4wOCwxMC4wOCww''@;'; + put 'put ''LDAsMCwxOC4xMyw3Ljc1Wm0wLDE4LjI1YTguMTMsOC4xMywwLDEsMSw4LTguMTJBOC4wOCw4LjA4LDAsMCwxLDE4LjEzLDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiIC8+PHBhdGggZD0iTTE4LDYuNDJhMSwxLDAsMCwwLDEtMVYxLjkxYTEsMSwwLDAs''@;'; + put 'put ''MC0yLDBWNS40MkExLDEsMCwwLDAsMTgsNi40MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDI5LjU4YTEsMSwwLDAsMC0xLDF2My41MWExLDEsMCwwLDAsMiwwVjMwLjU4QTEsMSwwLDAsMCwxOCwyOS41OFoiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTguNCw5LjgxQTEsMSwwLDAsMCw5LjgxLDguNEw3LjMzLDUuOTJBMSwxLDAsMCwwLDUuOTIsNy4zM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTI3LjYsMjYuMTlhMSwxLDAs''@;'; + put 'put ''MCwwLTEuNDEsMS40MWwyLjQ4LDIuNDhhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBhdGggZD0iTTYuNDIsMThhMSwxLDAsMCwwLTEtMUgxLjkxYTEsMSwwLDAsMCwwLDJINS40MkExLDEsMCwwLDAsNi40MiwxOFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+PHBhdGggZD0iTTM0LjA5LDE3SDMwLjU4YTEsMSwwLDAsMCwwLDJoMy41MWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz48cGF0aCBkPSJNOC40LDI2LjE5LDUuOTIs''@;'; + put 'put ''MjguNjdhMSwxLDAsMCwwLDEuNDEsMS40MUw5LjgxLDI3LjZBMSwxLDAsMCwwLDguNCwyNi4xOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTciIC8+PHBhdGggZD0iTTI3LjYsOS44MWwyLjQ4LTIuNDhhMSwxLDAsMCwwLTEuNDEtMS40MUwyNi4xOSw4LjRBMSwxLDAs''@;'; + put 'put ''MCwwLDI3LjYsOS44MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTgiIC8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMTAiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTkiIC8+JyksTC5DbHJTaGFwZVdhbmQ9KDAsRS5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNC4xLDQsMzEuNzEsMS42YTEuODMsMS44MywwLDAsMC0xLjMxLS41NGgwYTIuMDUsMi4wNSwwLDAsMC0xLjQ1LjYyTDEuNzYsMjkuMjNBMiwyLDAsMCwwLDEuNjgsMzJsMi40LDIuNDNBMS44Mywx''@;'; + put 'put ''LjgzLDAsMCwwLDUuMzksMzVoMGEyLjA1LDIuMDUsMCwwLDAsMS40NS0uNjJMMzQsNi43OUEyLDIsMCwwLDAsMzQuMSw0Wk01LjQyLDMyLjkzLDMuMTYsMzAuNjVoMEwyNC4xMSw5LjQzbDIuMjUsMi4yOFpNMzIuNjEsNS4zOWwtNS4xMiw1LjE4TDI1LjI0LDguMjlsNS4xMy01LjIsMi4yNSwy''@;'; + put 'put ''LjI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi41MywyMC40N2wyLjA5LTIuMDlhLjguOCwwLDAsMC0xLjEzLTEuMTNsLTIuMDksMi4wOS0yLjA5LTIuMDlhLjguOCwwLDAsMC0xLjEzLDEuMTNsMi4wOSwy''@;'; + put 'put ''LjA5LTIuMDksMi4wOWEuOC44LDAsMCwwLDEuMTMsMS4xM2wyLjA5LTIuMDksMi4wOSwyLjA5YS44LjgsMCwwLDAsMS4xMy0xLjEzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNC43OCw2LjUxYS44LjgsMCww''@;'; + put 'put ''LDAsMS4xMywwTDE3LjQsNWwxLjQ5LDEuNDlBLjguOCwwLDAsMCwyMCw1LjM4TDE4LjU0LDMuODksMjAsMi40YS44LjgsMCwwLDAtMS4xMy0xLjEzTDE3LjQsMi43NiwxNS45MSwxLjI3QS44LjgsMCwxLDAsMTQuNzgsMi40bDEuNDksMS40OUwxNC43OCw1LjM4QS44LjgsMCwwLDAsMTQuNzgs''@;'; + put 'put ''Ni41MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNOC4zMywxNS4yNmEuOC44LDAsMCwwLDEuMTMsMGwxLjE2LTEuMTYsMS4xNiwxLjE2YS44LjgsMCwxLDAsMS4xMy0xLjEzTDExLjc2LDEzbDEuMTYtMS4xNmEu''@;'; + put 'put ''OC44LDAsMSwwLTEuMTMtMS4xM2wtMS4xNiwxLjE2TDkuNDYsMTAuNjhhLjguOCwwLDEsMC0xLjEzLDEuMTNMOS40OSwxMyw4LjMzLDE0LjEzQS44LjgsMCwwLDAsOC4zMywxNS4yNloiLz4nKSxMLkNsclNoYXBlQ3Vyc29yTW92ZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjguODUs''@;'; + put 'put ''MTIuODlhMSwxLDAsMCwwLTEuNDIsMCwxLDEsMCwwLDAsMCwxLjQxTDMwLjE0LDE3SDE5VjUuODZsMi42OSwyLjdhMSwxLDAsMCwwLDEuNDEsMCwxLDEsMCwwLDAsMC0xLjQyTDE4LDIsMTIuODksNy4xNWExLDEsMCwwLDAtLjI5LjcxLDEsMSwwLDAsMCwxLjcxLjdMMTcsNS44NlYxN0g1Ljg2''@;'; + put 'put ''bDIuNy0yLjY5YTEsMSwwLDAsMCwwLTEuNDEsMSwxLDAsMCwwLTEuNDIsMEwyLDE4bDUuMTQsNS4xMWExLDEsMCwwLDAsLjcxLjI5LDEsMSwwLDAsMCwuNy0xLjcxTDUuODYsMTlIMTdWMzAuMTRsLTIuNjktMi43YTEsMSwwLDAsMC0xLjcxLjcsMSwxLDAsMCwwLC4yOS43MUwxOCwzNGw1LjEx''@;'; + put 'put ''LTUuMTRhMSwxLDAsMCwwLDAtMS40MiwxLDEsMCwwLDAtMS40MSwwTDE5LDMwLjE0VjE5SDMwLjE0bC0yLjcsMi42OWExLDEsMCwwLDAsLjcsMS43MSwxLDEsMCwwLDAsLjcxLS4yOUwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xy''@;'; + put 'put ''U2hhcGVDbG9uZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNiw2SDIydjRoMlY2YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw2VjIyYTIsMiwwLDAsMCwyLDJoNFYyMkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMw''@;'; + put 'put ''LDEySDE0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE0QTIsMiwwLDAsMCwzMCwxMlptMCwxOEgxNFYxNEgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwb2x5Z29uIHBvaW50cz0iMjEgMjggMjMgMjgg''@;'; + put 'put ''MjMgMjMgMjggMjMgMjggMjEgMjMgMjEgMjMgMTYgMjEgMTYgMjEgMjEgMTYgMjEgMTYgMjMgMjEgMjMgMjEgMjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNCwxMFY2YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw2VjIyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLDJoNFYxMmEyLDIsMCwwLDEsMi0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAsMTJIMTRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTRBMiwyLDAsMCwwLDMwLDEyWk0yOCwy''@;'; + put 'put ''M0gyM3Y1SDIxVjIzSDE2VjIxaDVWMTZoMnY1aDVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVEZXRhaWxzPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlptMCwyMkg0VjhIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSwxNEgyN2ExLDEsMCwwLDAsMC0ySDlhMSwxLDAsMCwwLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik05LDE4SDI3YTEsMSwwLDAsMCwwLTJIOWExLDEsMCwwLDAsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTksMjJIMTlhMSwxLDAsMCwwLDAtMkg5YTEsMSwwLDAsMCwwLDJaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTE5LDIySDlhMSwxLDAsMCwxLDAtMkgxOWExLDEsMCwwLDEsMCwy''@;'; + put 'put ''Wm04LTRIOWExLDEsMCwwLDEsMC0ySDI3YTEsMSwwLDAsMSwwLDJabTAtNEg5YTEsMSwwLDAsMSwwLTJIMjdhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZURyYWdIYW5kbGVDb3JuZXI9KDAsRS5jbHJJY29uU1ZH''@;'; + put 'put ''KSgnPGNpcmNsZSBjeD0iMTIiIGN5PSIyNCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxjaXJjbGUg''@;'; + put 'put ''Y3g9IjE4IiBjeT0iMTgiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PGNpcmNsZSBjeD0iMjQiIGN5PSIxMiIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48Y2lyY2xlIGN4PSIyNCIgY3k9''@;'; + put 'put ''IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxjaXJjbGUgY3g9IjI0IiBjeT0iMTgiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZUVyYXNlcj0oMCxFLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMzUuNjIsMTJhMi44MiwyLjgyLDAsMCwwLS44NC0yTDI3LjQ5LDIuNjVhMi45LDIuOSwwLDAsMC00LDBMMi44MywyMy4yOGEyLjg0LDIuODQsMCwwLDAsMCw0TDcuNTMsMzJIM2ExLDEsMCwwLDAsMCwySDI4YTEsMSwwLDAsMCwwLTJIMTYuNzRsMTgtMThBMi44''@;'; + put 'put ''MiwyLjgyLDAsMCwwLDM1LjYyLDEyWk0xMy45MSwzMkgxMC4zNkw0LjI1LDI1Ljg5YS44NC44NCwwLDAsMSwwLTEuMTlsNS41MS01LjUyLDguNDksOC40OFpNMzMuMzcsMTIuNTQsMTkuNjYsMjYuMjVsLTguNDgtOC40OSwxMy43LTEzLjdhLjg2Ljg2LDAsMCwxLDEuMTksMGw3LjMsNy4yOWEu''@;'; + put 'put ''ODYuODYsMCwwLDEsLjI1LjZBLjgyLjgyLDAsMCwxLDMzLjM3LDEyLjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI4LDMySDE1LjMzTDE5LDI4LjM3bC05LjktOS45TDMuNTQsMjRhMS44MywxLjgzLDAsMCwwLDAsMi42TDksMzJI''@;'; + put 'put ''M2ExLDEsMCwwLDAsMCwySDI4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zNC4wOCwxMC42NWwtNy4zLTcuM2ExLjgzLDEuODMsMCwwLDAtMi42LDBMMTAuNDcsMTcuMDZsOS45LDkuOUwzNC4wOCwxMy4yNUExLjg1''@;'; + put 'put ''LDEuODUsMCwwLDAsMzQuMDgsMTAuNjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVMYW5kc2NhcGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAs''@;'; + put 'put ''MCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik05LDIyYS44Mi44MiwwLDAsMCwuNTUtLjIxLjguOCwwLDAsMCwwLTEuMTNMNy44MywxOC44SDI4LjE3bC0xLjcyLDEuODZh''@;'; + put 'put ''LjguOCwwLDAsMCwwLDEuMTNBLjgyLjgyLDAsMCwwLDI3LDIyYS43OC43OCwwLDAsMCwuNTgtLjI2TDMxLjA5LDE4bC0zLjQ3LTMuNzRhLjc5Ljc5LDAsMCwwLTEuMTMsMCwuOC44LDAsMCwwLDAsMS4xM2wxLjcyLDEuODZINy44M2wxLjcyLTEuODZhLjguOCwwLDAsMCwwLTEuMTMuNzkuNzks''@;'; + put 'put ''MCwwLDAtMS4xMywwTDQuOTEsMThsMy40NywzLjc0QS43OC43OCwwLDAsMCw5LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIs''@;'; + put 'put ''MiwwLDAsMCwzMiw2Wk0yNy43NywyMS44OGExLDEsMCwwLDEtLjczLjMyLDEsMSwwLDAsMS0uNjgtLjI3LDEsMSwwLDAsMS0uMDYtMS40MUwyNy43MSwxOUg4LjI5TDkuNywyMC41MmExLDEsMCwwLDEtLjA2LDEuNDFBMSwxLDAsMCwxLDksMjIuMmExLDEsMCwwLDEtLjczLS4zMkw0LjY0LDE4''@;'; + put 'put ''bDMuNTktMy44OEExLDEsMCwwLDEsOS43LDE1LjQ4TDguMjksMTdIMjcuNzFMMjYuMywxNS40OGExLDEsMCwwLDEsMS40Ny0xLjM2TDMxLjM2LDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlUGFzdGU9KDAsRS5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggZD0iTTMwLDEySDI2djJoNHYyaDJWMTRBMiwyLDAsMCwwLDMwLDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHJlY3QgeD0iMzAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAsMzBIMjh2MmgyYTIsMiwwLDAsMCwyLTJWMjZIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjQsMjJWNmEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCwwLDQsNlYyMmEyLDIsMCwwLDAs''@;'; + put 'put ''MiwySDIyQTIsMiwwLDAsMCwyNCwyMlpNNiw2SDIyVjIySDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cmVjdCB4PSIyMCIgeT0iMzAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01''@;'; + put 'put ''IiAvPjxwYXRoIGQ9Ik0xNCwyNkgxMnY0YTIsMiwwLDAsMCwyLDJoNFYzMEgxNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0zMCwxMkgyNnYyaDR2MmgyVjE0QTIsMiwwLDAsMCwzMCwxMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTEiIC8+PHJlY3QgeD0iMzAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMEgyOHYyaDJhMiwyLDAsMCwwLDItMlYyNkgzMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTMiIC8+PHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHJlY3QgeD0iMjAiIHk9IjMwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPjxwYXRoIGQ9Ik0xNCwyNkgxMnY0YTIsMiwwLDAsMCwyLDJoNFYzMEgxNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZVBvcnRyYWl0PSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; + put 'put ''IGQ9Ik0xNS4zNCwyNi40NWEuOC44LDAsMCwwLTEuMTMsMCwuNzkuNzksMCwwLDAsMCwxLjEzTDE4LDMxLjA5bDMuNzQtMy40N2EuNzkuNzksMCwwLDAsLjA1LTEuMTMuOC44LDAsMCwwLTEuMTMsMEwxOC44LDI4LjE3VjcuODNsMS44NiwxLjcyYS44LjgsMCwxLDAsMS4wOC0xLjE3TDE4LDQu''@;'; + put 'put ''OTEsMTQuMjYsOC4zOGEuNzkuNzksMCwwLDAsMCwxLjEzLjguOCwwLDAsMCwxLjEzLDBMMTcuMiw3LjgzVjI4LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhh''@;'; + put 'put ''MiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWm0wLDMwSDhWNEgyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNEEyLDIsMCww''@;'; + put 'put ''LDAsMjgsMlpNMjAuNTIsMjYuM2ExLDEsMCwwLDEsMS4zNiwxLjQ3TDE4LDMxLjM2bC0zLjg4LTMuNTlhMSwxLDAsMCwxLDEuMzYtMS40N0wxNywyNy43MVY4LjI5TDE1LjQ4LDkuN2ExLDEsMCwwLDEtMS4zNi0xLjQ3TDE4LDQuNjRsMy44OCwzLjU5YTEsMSwwLDAsMSwuMDUsMS40MSwxLDEs''@;'; + put 'put ''MCwwLDEtLjczLjMyLDEsMSwwLDAsMS0uNjgtLjI2TDE5LDguMjlWMjcuNzFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVUcmVlVmlldz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTUsMzJIMTFhMSwxLDAsMCwxLTEtMVYyN2Ex''@;'; + put 'put ''LDEsMCwwLDEsMS0xaDRhMSwxLDAsMCwxLDEsMXY0QTEsMSwwLDAsMSwxNSwzMlptLTMtMmgyVjI4SDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE1LDE2SDExYTEsMSwwLDAsMC0xLDF2MS4ySDUuOFYxMkg3YTEsMSwwLDAsMCwx''@;'; + put 'put ''LTFWN0ExLDEsMCwwLDAsNyw2SDNBMSwxLDAsMCwwLDIsN3Y0YTEsMSwwLDAsMCwxLDFINC4yVjI5LjhoNi4zNmEuOC44LDAsMCwwLDAtMS42SDUuOFYxOS44SDEwVjIxYTEsMSwwLDAsMCwxLDFoNGExLDEsMCwwLDAsMS0xVjE3QTEsMSwwLDAsMCwxNSwxNlpNNCw4SDZ2Mkg0Wk0xNCwyMEgx''@;'; + put 'put ''MlYxOGgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTM0LDlhMSwxLDAsMCwwLTEtMUgxMHYySDMzQTEsMSwwLDAsMCwzNCw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMz''@;'; + put 'put ''LDE4SDE4djJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMywyOEgxOHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cmVjdCB4''@;'; + put 'put ''PSIxMCIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHJ4PSIxIiByeT0iMSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTUsMTZIMTFhMSwxLDAsMCwwLTEsMXYxLjJINS44VjEySDdhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCw3LDZI''@;'; + put 'put ''M0ExLDEsMCwwLDAsMiw3djRhMSwxLDAsMCwwLDEsMUg0LjJWMjkuOEgxMWEuOC44LDAsMSwwLDAtMS42SDUuOFYxOS44SDEwVjIxYTEsMSwwLDAsMCwxLDFoNGExLDEsMCwwLDAsMS0xVjE3QTEsMSwwLDAsMCwxNSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIi''@;'; + put 'put ''IC8+PHBhdGggZD0iTTMzLDhIMTB2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMThIMTh2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48''@;'; + put 'put ''cGF0aCBkPSJNMzMsMjhIMTh2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz4nKSxMLkNsclNoYXBlQ3Vyc29ySGFuZEdyYWI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LjA5LDkuNzRhNCw0LDAsMCwwLTEuMTYuMTlj''@;'; + put 'put ''LS4xOS0xLjI0LTEuNTUtMi4xOC0zLjI3LTIuMThBNCw0LDAsMCwwLDIyLjEzLDgsMy4zNywzLjM3LDAsMCwwLDE5LDYuM2EzLjQ1LDMuNDUsMCwwLDAtMi44NywxLjMyLDMuNjUsMy42NSwwLDAsMC0xLjg5LS41MUEzLjA1LDMuMDUsMCwwLDAsMTEsOS44OXYuOTFjLTEuMDYuNC00LjExLDEu''@;'; + put 'put ''OC00LjkxLDQuODRzLjM0LDgsMi42OSwxMS43OGEyNS4yMSwyNS4yMSwwLDAsMCw1LjksNi40MS45LjksMCwwLDAsLjUzLjE3SDI1LjU1YS45Mi45MiwwLDAsMCwuNTUtLjE5LDEzLjEzLDEzLjEzLDAsMCwwLDMuNzUtNi4xM0EyNS44LDI1LjgsMCwwLDAsMzEuNDEsMTh2LTUuNUEzLjA4LDMu''@;'; + put 'put ''MDgsMCwwLDAsMjguMDksOS43NFpNMjkuNjEsMThhMjQsMjQsMCwwLDEtMS40Nyw5LjE1QTEyLjQ2LDEyLjQ2LDAsMCwxLDI1LjIsMzIuMkgxNS40N2EyMy43NSwyMy43NSwwLDAsMS01LjItNS43MmMtMi4zNy0zLjg2LTMtOC4yMy0yLjQ4LTEwLjM5QTUuNyw1LjcsMCwwLDEsMTEsMTIuNzZ2''@;'; + put 'put ''Ny42NWEuOS45LDAsMCwwLDEuOCwwVjkuODljMC0uNDcuNTktMSwxLjQ2LTFzMS40OS41MiwxLjQ5LDF2NS43MmgxLjhWOC44MWMwLS4yOC41OC0uNzEsMS40Ni0uNzFzMS41My40OCwxLjUzLjc1djYuODloMS44VjEwbC4xNy0uMTJhMi4xLDIuMSwwLDAsMSwxLjE4LS4zMmMuOTMsMCwxLjUu''@;'; + put 'put ''NDQsMS41LjY4bDAsNi41SDI3VjExLjg3YTEuOTEsMS45MSwwLDAsMSwxLjEyLS4zM2MuODYsMCwxLjUyLjUxLDEuNTIuOTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQ3Vyc29ySGFuZE9wZW49KDAsRS5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggZD0iTTMxLjQ2LDguNTdBMy4xMSwzLjExLDAsMCwwLDI3LDUuNzVhMy4xOSwzLjE5LDAsMCwwLTQuNjYtMi42NCwzLjI5LDMuMjksMCwwLDAtNi40Mi0uNzYsMy4yMywzLjIzLDAsMCwwLTEuNjYtLjQ2QTMuMjcsMy4yNywwLDAsMCwxMSw1LjE4VjE3Ljg0Yy0xLjI4LTEuNi0yLjUz''@;'; + put 'put ''LTMuMTgtMi43Mi0zLjQ1QTMuMTksMy4xOSwwLDAsMCw1LjU2LDEyLjlhMy4zNywzLjM3LDAsMCwwLTMuNDcsMy40OEMyLjE4LDE4LjE4LDUuNjYsMjQuNTQsOCwyOGMzLjU0LDUuMjQsNi45Miw2LDcuMDcsNmwuMTgsMEgyNS41OWEuOTIuOTIsMCwwLDAsLjU1LS4xOSwxMy4xMywxMy4xMyww''@;'; + put 'put ''LDAsMCwzLjc1LTYuMTNjMS0zLjA5LDEuNTMtNy41MywxLjU4LTEzLjU2Wk0yOC4xOCwyNy4xMmExMi40NiwxMi40NiwwLDAsMS0yLjk0LDUuMDhIMTUuMzNjLS40Ny0uMTQtMy4wNy0xLjEtNS44Ny01LjI1UzMuOTQsMTcuMjcsMy44OSwxNi4yOWExLjUsMS41LDAsMCwxLC40NS0xLjEzLDEu''@;'; + put 'put ''NTIsMS41MiwwLDAsMSwxLjE0LS40NiwxLjQzLDEuNDMsMCwwLDEsMS4zMi43MWMuMjkuNDMsMi4zNiwzLDMuNTcsNC41M0wxMi44LDE4LjNWNS4xOGExLjQ4LDEuNDgsMCwxLDEsMi45NSwwVjE2LjMyaDEuOHYtMTNhMS41MSwxLjUxLDAsMCwxLDMsMFYxNi40NWgxLjhWNmExLjQzLDEuNDMs''@;'; + put 'put ''MCwxLDEsMi44NSwwVjE3LjQ0SDI3VjguNTRhMS4zMywxLjMzLDAsMCwxLDIuNjUsMHY1LjU1QzI5LjYyLDIwLDI5LjE0LDI0LjIxLDI4LjE4LDI3LjEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZUZpbGVaaXA9KDAsRS5jbHJJ''@;'; + put 'put ''Y29uU1ZHKSgnPHBhdGggZD0iTTMwLDMwLjJWMTJsLTguMS03LjlINy44QzYuOCw0LjEsNiw0LjksNiw2YzAsMCwwLDAsMCwwdjI0LjJjMCwxLDAuNywxLjgsMS43LDEuOGMwLDAsMC4xLDAsMC4xLDBoMjAuM1xuXHRcdGMxLDAsMS44LTAuNywxLjgtMS43QzMwLDMwLjMsMzAsMzAuMiwzMCwz''@;'; + put 'put ''MC4yeiBNMjIsNi42bDUuNiw1LjRIMjJWNi42eiBNMjgsMzBINy45TDgsNmgxMnY4aDhWMzB6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTIsMjRjMCwxLjcsMS4zLDMsMywzczMtMS4zLDMtM3YtNGgtNlYyNHogTTEzLjQsMjR2LTIu''@;'; + put 'put ''NmgzLjJWMjRjMC4xLDAuOS0wLjYsMS43LTEuNSwxLjdjLTAuOSwwLjEtMS43LTAuNi0xLjctMS41XG5cdFx0QzEzLjQsMjQuMiwxMy40LDI0LjEsMTMuNCwyNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOC4yLDljMC0wLjYtMC40''@;'; + put 'put ''LTEtMS0xSDE1djJoMi4yQzE3LjgsMTAsMTguMiw5LjYsMTguMiw5eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTEyLjcsMTBjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFIMTV2LTJIMTIuN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xNy4yLDE0YzAuNiwwLDEtMC40LDEtMXMtMC40LTEtMS0xSDE1djJIMTcuMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0xMS43LDE1YzAsMC42LDAuNCwxLDEsMUgxNXYt''@;'; + put 'put ''MmgtMi4zQzEyLjIsMTQsMTEuNywxNC40LDExLjcsMTV6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNMTcuMiwxOGMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgxNXYySDE3LjJ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMTUsMjUuNmMwLjksMCwxLjYtMC43LDEuNi0xLjZ2LTIuNmgtMy4yVjI0QzEzLjQsMjQuOSwxNC4xLDI1LjYsMTUsMjUuNnoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTIxLjksNEg3LjhDNi44''@;'; + put 'put ''LDQsNiw0LjksNiw1Ljl2MjQuMmMwLDEsMC44LDEuOSwxLjgsMS45aDIwLjNjMSwwLDEuOC0wLjksMS44LTEuOVYxMS45TDIxLjksNHogTTE4LDI0YzAsMS43LTEuMywzLTMsM1xuXHRcdHMtMy0xLjMtMy0zdi00aDZWMjR6IE0xNy4yLDEyYzAuNiwwLDEsMC40LDEsMXMtMC40LDEtMSwxSDE1''@;'; + put 'put ''djJoMi4yYzAuNiwwLDEsMC40LDEsMXMtMC40LDEtMSwxSDE1di0yaC0yLjJjLTAuNiwwLTEtMC40LTEtMVxuXHRcdHMwLjQtMSwxLTFIMTV2LTJoLTIuMmMtMC42LDAtMS0wLjQtMS0xczAuNC0xLDEtMUgxNVY4aDIuMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMUgxNXYySDE3LjJ6IE0y''@;'; + put 'put ''MS45LDEyVjYuNWw1LjcsNS41SDIxLjl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVGaWx0ZXJPZmY9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDYuNEMzNCw1LjYsMzMuMyw1LDMyLjUsNUgxMC4zbDIsMkgzMnYwLjZsLTku''@;'; + put 'put ''Niw5LjZsMS40LDEuNEwzMy40LDlDMzMuOCw4LjYsMzQsOC4xLDM0LDcuNlY2LjVDMzQsNi41LDM0LDYuNCwzNCw2LjR6IlxuXHRcdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMi43LDNsMiwyaC0xQzIuOSw0LjksMi4xLDUuNSwyLDYu''@;'; + put 'put ''M3YxLjFjMCwwLjUsMC4yLDEsMC42LDEuNEwxNCwyMC4ydjEwLjNsMS45LDAuOFYxOS40TDQsNy41VjdoMi43TDIwLDIwLjN2MTIuOWwyLDAuOFxuXHRcdGMwLDAsMCwwLDAtMC4xVjIyLjNsMTAuMSwxMC4xbDEuNC0xLjRMNC4xLDEuNkwyLjcsM3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMy45LDE4LjZMMTAuMyw1LjFoMjIuMkMzMy4zLDUsMzQsNS42LDM0LDYuNGMwLDAsMCwwLDAsMC4xdjEuMWMwLDAuNS0wLjIsMS0wLjYsMS40TDIzLjksMTguNnoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''IC8+PHBhdGggZD0iTTMzLjUsMzFMNC4xLDEuNkwyLjYsM2wyLjEsMi4xSDMuNUMyLjcsNSwyLDUuNiwyLDYuNGMwLDAsMCwwLDAsMC4xdjEuMWMwLDAuNSwwLjIsMSwwLjYsMS40TDE0LDIwLjV2MTAuMWw4LDMuNFYyMi40XG5cdGwxMC4xLDEwLjFMMzMuNSwzMXoiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZVJlY3ljbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYuNCwxNy40YzAuMiwwLjEsMC4zLDAuMSwwLjUsMC4xYzAuMiwwLDAuNC0wLjEsMC41LTAuMWw3LTQuMWMwLjMtMC4yLDAuNS0wLjUsMC41LTAuOWMwLTAu''@;'; + put 'put ''NC0wLjItMC43LTAuNS0wLjlMMTEuOSwxMFxuXHRcdEwxNCw2LjJjMC40LTAuNywxLTEuMywxLjctMS43YzItMS4xLDQuNS0wLjMsNS42LDEuN2MwLjMsMC41LDAuOSwwLjYsMS40LDAuM2MwLDAsMCwwLDAuMSwwYzAuNC0wLjMsMC41LTAuOSwwLjMtMS4zXG5cdFx0Yy0wLjYtMS0xLjQtMS45''@;'; + put 'put ''LTIuNC0yLjRjLTMtMS42LTYuNy0wLjYtOC4zLDIuNEw5LjYsOS45Yy0wLjMsMC41LTAuMSwxLjEsMC4zLDEuNGwyLDEuMmwtNCwyLjRWOC4yYzAtMC42LTAuNC0xLTEtMVxuXHRcdEM2LjQsNy4zLDYsNy43LDYsOC4zdjguM0M2LDE2LjksNi4yLDE3LjIsNi40LDE3LjR6IiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMSwyMWwtMy41LTYuMmMtMC4xLTAuMi0wLjQtMC40LTAuNi0wLjVjLTAuMy0wLjEtMC41LDAtMC44LDAuMWwtMi4yLDEuM1YxMWw1LjUsMy4zYzAuMSwwLDAuMSwwLjEsMC4yLDAuMVxuXHRcdGMwLjUsMC4y''@;'; + put 'put ''LDEuMSwwLDEuMy0wLjVjMC4yLTAuNSwwLTEuMS0wLjUtMS4zbC03LTQuMmMtMC4zLTAuMi0wLjctMC4yLTEsMEMyMy4xLDguNSwyMyw4LjgsMjMsOS4ydjguM2MwLDAuNCwwLjEsMC44LDAuNCwxXG5cdFx0YzAuMywwLjIsMC43LDAuMiwxLDBsMi45LTEuN2wzLDUuM2MwLjcsMS4zLDAuNywy''@;'; + put 'put ''LjgsMCw0LjFjLTAuNiwxLjItMS45LDEuOS0zLjIsMS45aC0wLjljLTAuNSwwLTEuMiwwLjQtMS4yLDFcblx0XHRjMC4xLDAuNiwwLjYsMSwxLjIsMWgwLjljMi4xLDAsNC0xLjEsNS0yLjlDMzMuMiwyNS4yLDMzLjIsMjIuOSwzMi4xLDIxeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjQsMjguMmwtNy00LjJjLTAuMy0wLjItMC43LTAuMi0xLDBjLTAuMywwLjItMC40LDAuNS0wLjQsMC45djMuM0g5LjFjLTEuNS0wLjEtMi45LTAuOS0zLjYtMi4zXG5cdFx0Yy0wLjgtMS40LTAuOC0zLjIsMC00LjZjMC4zLTAuNSwwLjEt''@;'; + put 'put ''MS4xLTAuNC0xLjRjLTAuNS0wLjMtMS4xLTAuMS0xLjQsMC40Yy0xLjIsMi4xLTEuMSw0LjYsMC4xLDYuNkM0LjksMjguOCw3LDMwLDkuMiwzMEgxNVxuXHRcdGMwLjYsMCwxLTAuNCwxLTF2LTIuNGw0LDIuNGwtNS42LDMuM2MtMC4zLDAuMi0wLjUsMC41LTAuNSwwLjljMCwwLjYsMC41LDEs''@;'; + put 'put ''MSwxYzAuMiwwLDAuMy0wLjEsMC41LTAuMmw3LTQuMlxuXHRcdGMwLjItMC4xLDAuMy0wLjIsMC40LTAuNEMyMy4xLDI5LDIyLjksMjguNCwyMi40LDI4LjJ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjAuOCwzLjFjLTMtMS42LTYu''@;'; + put 'put ''Ny0wLjYtOC40LDIuNGwtMi4yLDMuOGwtMi0xLjFDOC4yLDgsOCw4LDcuOSw4QzcuNCw4LDcsOC40LDcsOC45djcuMmMwLDAuMywwLjEsMC42LDAuNCwwLjhcblx0XHRjMC4xLDAuMSwwLjMsMC4xLDAuNCwwLjFjMC4yLDAsMC4zLDAsMC40LTAuMWw2LjMtMy42YzAuMy0wLjIsMC40LTAuNCww''@;'; + put 'put ''LjQtMC44YzAtMC4zLTAuMi0wLjYtMC40LTAuOEwxMiwxMC4zbDIuMi0zLjhcblx0XHRjMC40LTAuNywxLTEuMywxLjctMS43YzItMS4xLDQuNS0wLjMsNS42LDEuN2MwLjMsMC41LDAuOSwwLjYsMS40LDAuNGMwLjUtMC4zLDAuNi0wLjksMC40LTEuNEMyMi42LDQuNSwyMS44LDMuNiwyMC44''@;'; + put 'put ''LDMuMXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMyLjIsMjEuMWwtMy01LjNsMi4zLTEuM2MwLjMtMC4yLDAuNC0wLjQsMC40LTAuOGMwLTAuMy0wLjItMC42LTAuNC0wLjhsLTYuMi0zLjZjLTAuMS0wLjEtMC4zLTAuMS0wLjQtMC4xXG5c''@;'; + put 'put ''dFx0Yy0wLjUsMC0wLjksMC40LTAuOSwwLjl2Ny4yYzAsMC4zLDAuMiwwLjYsMC40LDAuOGMwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMwLjIsMCwwLjMtMC4xLDAuNC0wLjFsMi4yLTEuM2wzLDUuM1xuXHRcdGMwLjcsMS4yLDAuNywyLjgsMCw0Yy0wLjcsMS4yLTEuOSwxLjktMy4yLDEuOWgt''@;'; + put 'put ''MC45Yy0wLjYsMC0xLDAuNC0xLDFjMCwwLjYsMC40LDEsMSwxaDAuOWMyLjEsMCw0LTEuMSw1LTNcblx0XHRDMzMuMiwyNS4zLDMzLjIsMjMsMzIuMiwyMS4xeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjEuNywyOC40bC02LjItMy42Yy0w''@;'; + put 'put ''LjEtMC4xLTAuMy0wLjEtMC40LTAuMWMtMC41LDAtMC45LDAuNC0wLjksMC45djIuNkg5LjNjLTEuNSwwLTIuOS0wLjgtMy42LTIuMVxuXHRcdGMtMC44LTEuNC0wLjgtMy4xLDAtNC41YzAuMy0wLjUsMC4xLTEuMS0wLjQtMS40Yy0wLjUtMC4zLTEuMS0wLjEtMS40LDAuNGMtMS4yLDItMS4y''@;'; + put 'put ''LDQuNSwwLDYuNWMxLjEsMS45LDMuMSwzLjEsNS40LDMuMWg0Ljh2Mi42XG5cdFx0YzAsMC4zLDAuMiwwLjYsMC40LDAuOGMwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMwLjEsMCwwLjMsMCwwLjQtMC4xbDYuMy0zLjZjMC4zLTAuMiwwLjQtMC40LDAuNC0wLjhcblx0XHRDMjIuMSwyOC44LDIx''@;'; + put 'put ''LjksMjguNSwyMS43LDI4LjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVUcmVlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMC42LDExLjdDMjkuMiw1LjgsMjQsMS43LDE4LDEuN2MtNy4yLDAtMTMsNS44LTEzLDEzYzAsNi44''@;'; + put 'put ''LDUuMywxMi40LDEyLDEyLjl2NWMwLDAuNiwwLjQsMSwxLDFzMS0wLjQsMS0xdi01di0yVjIyXG5cdGMwLDAsMCwwLDAtMC4xdi0zLjZsNC43LTQuN2MwLjQtMC40LDAuNC0xLDAtMS40Yy0wLjQtMC40LTEtMC40LTEuNCwwTDE5LDE1LjZ2LTNsLTMuMy0zLjNjLTAuNC0wLjQtMS0wLjQtMS40''@;'; + put 'put ''LDBcblx0Yy0wLjQsMC40LTAuNCwxLDAsMS40bDIuNywyLjd2Ni4ybC0zLjgtMy44Yy0wLjQtMC40LTEtMC40LTEuNCwwYy0wLjQsMC40LTAuNCwxLDAsMS40bDUuMiw1LjJ2My4yYy01LjYtMC41LTEwLTUuMi0xMC0xMC45XG5cdGMwLTYuMSw0LjktMTEsMTEtMTFzMTEsNC45LDExLDExYzAs''@;'; + put 'put ''NC45LTMuMyw5LjItOCwxMC42djIuMUMyOCwyNS43LDMyLjMsMTguNywzMC42LDExLjd6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMkMxMC44LDEuNyw0LjgsNy4zLDQuNSwxNC41QzQuMiwyMS43LDkuOCwyNy43LDE3LDI4di01''@;'; + put 'put ''LjJsLTUuMi01LjJjLTAuNC0wLjQtMC40LTEsMC0xLjRjMC40LTAuNCwxLTAuNCwxLjQsMFxuXHRjMCwwLDAsMCwwLDBsMy44LDMuOHYtNi4ybC0yLjctMi43Yy0wLjQtMC40LTAuNC0xLDAtMS40YzAuNC0wLjQsMS0wLjQsMS40LDBjMCwwLDAsMCwwLDBsMy4zLDMuM3YzbDMuMy0zLjNjMC40''@;'; + put 'put ''LTAuNCwxLTAuNCwxLjQsMFxuXHRjMCwwLDAsMCwwLDBjMC40LDAuNCwwLjQsMSwwLDEuNEwxOSwxOC44VjI4YzcuMi0wLjMsMTIuOC02LjMsMTIuNS0xMy41UzI1LjIsMS43LDE4LDJ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwyOGMt''@;'; + put 'put ''MC4zLDAtMC42LDAtMSwwdjVjMCwwLjYsMC40LDEsMSwxczEtMC40LDEtMXYtNUMxOC43LDI4LDE4LjMsMjgsMTgsMjh6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVGaXNoPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjExLjQ5''@;'; + put 'put ''IiBjeT0iMTcuNSIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMuNDgsOS4yOWExLDEsMCwwLDAtMSwwYy0zLjM3LDItNS45MSw1LjgxLTYuOSw3LjQ1TDI0Ljg1LDE4cy0xLDEuNjItMSwxLjYyYy0xLjc2LDIuNDktNS4x''@;'; + put 'put ''LDYuMzYtOC43OSw2LjM2LTQuNjUsMC04Ljc1LTYuMTUtOS44NC03Ljk0LDEuMDktMS43OSw1LjE4LTcuOTQsOS44NC03Ljk0LDMuNTQsMCw2Ljc3LDMuNTgsOC41OCw2LjA3bC4yOC0uNDhzLjM2LS41MS45My0xLjI1QzIyLjcyLDExLjY0LDE5LjE4LDguMDYsMTUsOC4wNmMtNi41OSwwLTEx''@;'; + put 'put ''LjY3LDkuMDctMTEuODgsOS40NkwyLjg5LDE4bC4yNy40OGMuMjEuMzksNS4yOSw5LjQ2LDExLjg4LDkuNDYsNS4wNiwwLDkuMjItNS4zNCwxMS04QzI2LDIwLDI3LjE4LDE4LDI3LjE4LDE4aDBsLjA3LS4xMWExOC4wNiwxOC4wNiwwLDAsMSwxLjg4LTIuNzVzMCwwLDAsMGEyMC4zMSwyMC4z''@;'; + put 'put ''MSwwLDAsMSwyLjg2LTNWMjMuODhhMjAuOTMsMjAuOTMsMCwwLDEtMy42MS00bC0uMTYuMjZoMGwtMSwxLjU5YTE4Ljc0LDE4Ljc0LDAsMCwwLDUuMjEsNC45NSwxLDEsMCwwLDAsLjUuMTQsMS4xMywxLjEzLDAsMCwwLC41LS4xMywxLDEsMCwwLDAsLjUtLjg3VjEwLjE2QTEsMSwwLDAsMCwz''@;'; + put 'put ''My40OCw5LjI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUZvcm09KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIxLDEySDdhMSwxLDAsMCwxLTEtMVY3QTEsMSwwLDAsMSw3LDZIMjFhMSwxLDAsMCwxLDEsMXY0QTEsMSww''@;'; + put 'put ''LDAsMSwyMSwxMlpNOCwxMEgyMFY3Ljk0SDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEsMTQuMDhIN2ExLDEsMCwwLDAtMSwxVjE5YTEsMSwwLDAsMCwxLDFIMTguMzZMMjIsMTYuM1YxNS4wOEExLDEsMCwwLDAsMjEsMTQuMDha''@;'; + put 'put ''TTIwLDE4SDhWMTZIMjBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTEuMDYsMzEuNTF2LS4wNmwuMzItMS4zOUg0VjRoMjBWMTQuMjVMMjYsMTIuMzZWM2ExLDEsMCwwLDAtMS0xSDNBMSwxLDAsMCwwLDIsM1YzMWExLDEsMCwwLDAs''@;'; + put 'put ''MSwxaDhBMy40NCwzLjQ0LDAsMCwxLDExLjA2LDMxLjUxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTIyLDE5LjE3bC0uNzguNzlBMSwxLDAsMCwwLDIyLDE5LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQiIC8+PHBhdGggZD0iTTYsMjYuOTRhMSwxLDAsMCwwLDEsMWg0Ljg0bC4zLTEuMy4xMy0uNTUsMC0uMDVIOFYyNGg2LjM0bDItMkg3YTEsMSwwLDAsMC0xLDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMuNDksMTYuNjcs''@;'; + put 'put ''MzAuMTIsMTMuM2ExLjYxLDEuNjEsMCwwLDAtMi4yOCwwaDBMMTQuMTMsMjcuMDksMTMsMzEuOWExLjYxLDEuNjEsMCwwLDAsMS4yNiwxLjksMS41NSwxLjU1LDAsMCwwLC4zMSwwLDEuMTUsMS4xNSwwLDAsMCwuMzcsMGw0Ljg1LTEuMDdMMzMuNDksMTlhMS42LDEuNiwwLDAsMCwwLTIuMjda''@;'; + put 'put ''TTE4Ljc3LDMwLjkxbC0zLjY2LjgxTDE2LDI4LjA5LDI2LjI4LDE3LjdsMi44MiwyLjgyWk0zMC4yMywxOS4zOWwtMi44Mi0yLjgyTDI5LDE1bDIuODQsMi44NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLEwuQ2xyU2hhcGVGdWVsPSgwLEUuY2xy''@;'; + put 'put ''SWNvblNWRykoJzxwYXRoIGQ9Ik0yMC4xMiwzNEg1LjlBMi44MSwyLjgxLDAsMCwxLDMsMzEuMTlWNC44NkEyLjksMi45LDAsMCwxLDYsMi4wN0gyMC4yMkEyLjcyLDIuNzIsMCwwLDEsMjMsNC44NlYzMS4xOUEyLjgyLDIuODIsMCwwLDEsMjAuMTIsMzRaTTUuOSw0QS44Ny44NywwLDAsMCw1''@;'; + put 'put ''LDQuODZWMzEuMTlhLjg3Ljg3LDAsMCwwLC44Ny44N0gyMC4xMmEuOTQuOTQsMCwwLDAsLjk1LS44N1Y0Ljg2QS45NC45NCwwLDAsMCwyMC4xMiw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI5LjUzLDM0QTMuNSwzLjUsMCwwLDEs''@;'; + put 'put ''MjYsMzAuNVYyM2EyLDIsMCwwLDAtMi0ySDIyLjU3YTEsMSwwLDAsMSwwLTJIMjRhNCw0LDAsMCwxLDQsNFYzMC41YTEuNSwxLjUsMCwwLDAsMywwVjE3LjNsLTMuMTMtN0EyLjI5LDIuMjksMCwwLDAsMjUuOCw5aC0uNzNhMSwxLDAsMSwxLDAtMmguNzNhNC4zLDQuMywwLDAsMSwzLjkzLDIu''@;'; + put 'put ''NTVsMy4yMSw3LjE2YTEsMSwwLDAsMSwuMDkuNDFWMzAuNUEzLjUsMy41LDAsMCwxLDI5LjUzLDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE4LDlIOEExLDEsMCwxLDEsOCw3SDE4YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTgsMTNIOEExLDEsMCwxLDEsOCwxMUgxOEExLDEsMCwxLDEsMTgsMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMjUsMTIuMDhhMSwxLDAsMCwxLTEt''@;'; + put 'put ''MXYtNmExLDEsMCwwLDEsMiwwdjZBMSwxLDAsMCwxLDI1LDEyLjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+JyksTC5DbHJTaGFwZVNub3dmbGFrZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguMDUsMzMuNjFhMSwxLDAsMCwxLTEtMVYz''@;'; + put 'put ''LjM3YTEsMSwwLDEsMSwxLjk1LDBWMzIuNjNBMSwxLDAsMCwxLDE4LjA1LDMzLjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LjA2LDEwLjA3LDE0LjUyLDYuNTRhMSwxLDAsMCwxLDAtMS40MSwxLDEsMCwwLDEsMS40MSwwbDIu''@;'; + put 'put ''MTMsMi4xMiwyLjEyLTIuMTJhMSwxLDAsMCwxLDEuNDEsMCwxLDEsMCwwLDEsMCwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIwLjg1LDMxLjE3YTEsMSwwLDAsMS0uNy0uMjlMMTgsMjguNzYsMTUuOSwzMC44OGExLDEsMCww''@;'; + put 'put ''LDEtMS40MSwwLDEsMSwwLDAsMSwwLTEuNDJMMTgsMjUuOTNsMy41NCwzLjUzYTEsMSwwLDAsMSwwLDEuNDJBMSwxLDAsMCwxLDIwLjg1LDMxLjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjkyLDI2LjVhMSwxLDAsMCwxLS41''@;'; + put 'put ''LS4xM2wtMjYtMTVBMSwxLDAsMCwxLDQuMDcsMTBhMSwxLDAsMCwxLDEuMzctLjM2bDI2LDE1YTEsMSwwLDAsMS0uNSwxLjg3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTYsMTUuMzdhMSwxLDAsMCwxLS4yNi0ybDIuOS0uNzhMNy44''@;'; + put 'put ''NCw5LjczYTEsMSwwLDEsMSwxLjkzLS41MkwxMS4wNywxNCw2LjI0LDE1LjMzQS44Mi44MiwwLDAsMSw2LDE1LjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTI3LjA1LDI3LjU0YTEsMSwwLDAsMS0xLS43NUwyNC44LDIybDQuODIt''@;'; + put 'put ''MS4zYTEsMSwwLDEsMSwuNTIsMS45M2wtMi45Ljc4Ljc4LDIuOWExLDEsMCwwLDEtLjcxLDEuMjJBLjc1Ljc1LDAsMCwxLDI3LjA1LDI3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTQuOTQsMjYuNWExLDEsMCwwLDEtLjUtMS44''@;'; + put 'put ''N2wyNi0xNWExLDEsMCwwLDEsMS4zNi4zNiwxLDEsMCwwLDEtLjM2LDEuMzdsLTI2LDE1QTEsMSwwLDAsMSw0Ljk0LDI2LjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNOC44MSwyNy41NGEuNzUuNzUsMCwwLDEtLjI2LDAsMSwxLDAs''@;'; + put 'put ''MCwxLS43MS0xLjIybC43OC0yLjktMi45LS43OEExLDEsMCwwLDEsNSwyMS4zOGExLDEsMCwwLDEsMS4yMy0uNzFMMTEuMDcsMjJsLTEuMyw0LjgyQTEsMSwwLDAsMSw4LjgxLDI3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+PHBhdGggZD0iTTI5''@;'; + put 'put ''Ljg4LDE1LjM3YS44Mi44MiwwLDAsMS0uMjYsMEwyNC44LDE0bDEuMjktNC44M0ExLDEsMCwxLDEsMjgsOS43M2wtLjc4LDIuODksMi45Ljc4YTEsMSwwLDAsMS0uMjYsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiAvPicpLEwuQ2xyU2hhcGVUYWJsZT0o''@;'; + put 'put ''MCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNOCwzNGExLDEsMCwwLDEtMS0xVjIuOTJhMSwxLDAsMCwxLDIsMFYzM0ExLDEsMCwwLDEsOCwzNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNywzMy45MmExLDEsMCwwLDEtMS0xVjku''@;'; + put 'put ''MWExLDEsMCwxLDEsMiwwVjMyLjkyQTEsMSwwLDAsMSwxNywzMy45MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNiwzNGExLDEsMCwwLDEtMS0xVjlhMSwxLDAsMCwxLDIsMFYzM0ExLDEsMCwwLDEsMjYsMzRaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMuMTEsMThoLTI1YTEsMSwwLDEsMSwwLTJoMjVhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMy4xLDI2Ljk0SDguMUExLDEs''@;'; + put 'put ''MCwxLDEsOC4xLDI1aDI1YTEsMSwwLDEsMSwwLDEuOTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMsOC45MkgzQTEsMSwwLDEsMSwzLDdIMzNhMSwxLDAsMSwxLDAsMS45NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC02IiAvPicpLEwuQ2xyU2hhcGVWb2x1bWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI1Ljg4LDMySDEyYTQsNCwwLDAsMS00LTRWMTEuNDZMMi4zMSw1Ljc3YTEsMSwwLDAsMS0uMjItMS4wOUExLDEsMCwwLDEsMyw0LjA2SDI4Ljg2YTEsMSwwLDAsMSwxLDFWMjhB''@;'; + put 'put ''NCw0LDAsMCwxLDI1Ljg4LDMyWk01LjQzLDZsNC4yOCw0LjM0YS43NS43NSwwLDAsMSwuMjEuNjN2MTdBMi4xMywyLjEzLDAsMCwwLDEyLDMwSDI1Ljg4QTIuMSwyLjEsMCwwLDAsMjgsMjhWNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9''@;'; + put 'put ''Ik0zMywxNmExLDEsMCwwLDEtMS0xVjZIMjguODZhLjkyLjkyLDAsMCwxLTEtLjksMSwxLDAsMCwxLDEtMUgzM2ExLDEsMCwwLDEsMSwxVjE1QTEsMSwwLDAsMSwzMywxNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNCwxMUgxOGEx''@;'; + put 'put ''LDEsMCwxLDEsMC0ySDI0YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjQsMTVIMjFhMSwxLDAsMSwxLDAtMkgyNGExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQiIC8+PHBhdGggZD0iTTI0LDE5SDE4YTEsMSwwLDEsMSwwLTJIMjRhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0yNCwyN0gxOGExLDEsMCwxLDEsMC0ySDI0YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNMjQsMjNIMjFBMSwxLDAsMSwxLDIxLDIxSDI0QTEsMSwwLDEsMSwyNCwyM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPicpLEwuQ2xyU2hhcGVDcm9zc2hhaXJzPSgw''@;'; + put 'put ''LEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyOUExMSwxMSwwLDEsMSwyOSwxOCwxMSwxMSwwLDAsMSwxOCwyOVpNMTgsOWE5LDksMCwxLDAsOSw5QTksOSwwLDAsMCwxOCw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDIz''@;'; + put 'put ''YTUsNSwwLDEsMSw1LTVBNSw1LDAsMCwxLDE4LDIzWm0wLThhMywzLDAsMSwwLDMsM0EzLDMsMCwwLDAsMTgsMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTgsOWExLDEsMCwwLDEtMS0xVjIuOGExLDEsMCwwLDEsMiwwVjhBMSwx''@;'; + put 'put ''LDAsMCwxLDE4LDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTgsMzRhMSwxLDAsMCwxLTEtMVYyOGExLDEsMCwwLDEsMiwwdjVBMSwxLDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTQiIC8+PHBhdGggZD0iTTgsMTlIMy4xN2ExLDEsMCwwLDEsMC0ySDhhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMy4xLDE5SDI4YTEsMSwwLDAsMSwwLTJoNS4xYTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxMLkNsclNoYXBlQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwx''@;'; + put 'put ''OCw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlRG90Q2ly''@;'; + put 'put ''Y2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxMWE3LDcsMCwxLDEtNyw3LDcsNywwLDAsMSw3LTciIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpN''@;'; + put 'put ''MTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUJldGE9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTcuMjEsMTQuMDdoM2ExLjYxLDEuNjEsMCwwLDEsMS44''@;'; + put 'put ''MSwxLjUsMS40NCwxLjQ0LDAsMCwxLS44NCwxLjM0LDEuNjcsMS42NywwLDAsMSwxLjEsMS41MywxLjc1LDEuNzUsMCwwLDEtMiwxLjYzSDcuMjFabTIuNzEsMi40MmMuNDgsMCwuODItLjI4LjgyLS42N3MtLjM0LS42NS0uODItLjY1SDguNDl2MS4zMlptLjIsMi40OGEuNzUuNzUsMCwxLDAs''@;'; + put 'put ''MC0xLjQ3SDguNDlWMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTQuNTUsMTUuMjN2MS4yaDN2MS4xNmgtM3YxLjMyaDMuMzN2MS4xNkgxMy4yNnYtNmg0LjYydjEuMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjAuNDEsMTUuMjNIMTguNTRWMTQuMDdoNXYxLjE2SDIxLjd2NC44NEgyMC40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0yOCwxOS4xMkgyNS4zMmwtLjM4Ljk1SDIzLjVs''@;'; + put 'put ''Mi40NC02aDEuNDRsMi40NSw2SDI4LjM4Wk0yNy41NSwxOGwtLjg5LTIuMTlMMjUuNzcsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNOC4wNiwzMGEuODQuODQsMCwwLDEtLjM4LS4wOEExLDEsMCwwLDEsNy4wNiwyOVYyNWgt''@;'; + put 'put ''NGExLDEsMCwwLDEtMS0xVjEwYTEsMSwwLDAsMSwxLTFoMzBhMSwxLDAsMCwxLDEsMVYyNGExLDEsMCwwLDEtMSwxSDEzLjQ4TDguNzcsMjkuNzFBMSwxLDAsMCwxLDguMDYsMzBabS00LTdoNGExLDEsMCwwLDEsMSwxdjIuNTlsMy4zLTMuM2ExLDEsMCwwLDEsLjctLjI5aDE5VjExaC0yOFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG5cbiAgPHBvbHlnb24gcG9pbnRzPSIyNS44LDE4IDI3LjUsMTggMjYuNywxNS44IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG5cdDxwYXRoIGQ9Ik0xMC40LDE3LjVjLTAuMSww''@;'; + put 'put ''LTAuMiwwLTAuMywwSDguNVYxOWwxLjYsMGMwLjQsMC4xLDAuOC0wLjIsMC45LTAuNkMxMS4xLDE4LDEwLjgsMTcuNiwxMC40LDE3LjV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG5cdDxwYXRoIGQ9Ik0xMC43LDE1LjhjMC0wLjQtMC4zLTAuNy0wLjgtMC43''@;'; + put 'put ''SDguNXYxLjNoMS40QzEwLjQsMTYuNSwxMC43LDE2LjIsMTAuNywxNS44eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuXHQ8cGF0aCBkPSJNMzMuMSw5aC0zMGMtMC42LDAtMSwwLjQtMSwxdjE0YzAsMC42LDAuNCwxLDEsMWg0djRjMCwwLjQsMC4yLDAuOCww''@;'; + put 'put ''LjYsMC45QzcuOCwzMCw3LjksMzAsOC4xLDMwYzAuMywwLDAuNS0wLjEsMC43LTAuM1xuXHRcdGw0LjctNC43aDE5LjZjMC42LDAsMS0wLjQsMS0xVjEwQzM0LjEsOS40LDMzLjYsOSwzMy4xLDl6IE0xMC40LDIwLjFjLTAuMSwwLTAuMSwwLTAuMiwwSDcuMnYtNmgzYzAuOS0wLjEsMS43LDAu''@;'; + put 'put ''NSwxLjgsMS40XG5cdFx0YzAsMCwwLDAuMSwwLDAuMWMwLDAuNi0wLjMsMS4xLTAuOCwxLjNjMC42LDAuMiwxLjEsMC44LDEuMSwxLjVDMTIuMiwxOS40LDExLjQsMjAuMSwxMC40LDIwLjF6IE0xNy45LDE1LjJoLTMuM3YxLjJoM3YxLjJoLTN2MS4zXG5cdFx0aDMuM3YxLjJoLTQuNnYtNmg0''@;'; + put 'put ''LjZWMTUuMnogTTIxLjcsMjAuMWgtMS4zdi00LjhoLTEuOXYtMS4yaDV2MS4yaC0xLjhWMjAuMXogTTI4LjQsMjAuMWwtMC40LTFoLTIuN2wtMC40LDFoLTEuNGwyLjQtNmgxLjRsMi41LDZcblx0XHRIMjguNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbicp''@;'; + put 'put ''LEwuQ2xyU2hhcGVGaXJzdEFpZD0oMCxFLmNsckljb25TVkcpKCdcbiAgPHBhdGggZD0iTTMyLDZIMjMuOTFWNC41QTIuNSwyLjUsMCwwLDAsMjEuNDEsMmgtN2EyLjUsMi41LDAsMCwwLTIuNSwyLjVWNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0y''@;'; + put 'put ''VjhBMiwyLDAsMCwwLDMyLDZaTTEzLjkxLDQuNWEuNS41LDAsMCwxLC41LS41aDdhLjUuNSwwLDAsMSwuNS41VjZoLThaTTQsMjhWOEgzMlYyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yMC4xNSwyNS4ySDE2Ljc0YTEuMywx''@;'; + put 'put ''LjMsMCwwLDEtMS4zLTEuM1YyMS4yaC0yLjdhMS4zLDEuMywwLDAsMS0xLjMtMS4zVjE2LjVhMS4zLDEuMywwLDAsMSwxLjMtMS4zaDIuN1YxMi41YTEuMywxLjMsMCwwLDEsMS4zLTEuM2gzLjQxYTEuMywxLjMsMCwwLDEsMS4yOSwxLjN2Mi43aDIuNzFhMS4zLDEuMywwLDAsMSwxLjI5LDEu''@;'; + put 'put ''M3YzLjRhMS4zLDEuMywwLDAsMS0xLjI5LDEuM0gyMS40NHYyLjdBMS4zLDEuMywwLDAsMSwyMC4xNSwyNS4yWk0xNywyMy42aDIuODF2LTRoNFYxNi44aC00di00SDE3djRIMTN2Mi44aDRabTcuMTEtNi44WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5c''@;'; + put 'put ''blxuICA8cGF0aCBkPSJNMzIsNkgyMy45MVY0LjVBMi41LDIuNSwwLDAsMCwyMS40MSwyaC03YTIuNSwyLjUsMCwwLDAtMi41LDIuNVY2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNMTMuOTEsNC41YS41LjUsMCww''@;'; + put 'put ''LDEsLjUtLjVoN2EuNS41LDAsMCwxLC41LjVWNmgtOFpNMjQuNjQsMTkuOWEuNS41LDAsMCwxLS41LjVoLTMuNXYzLjVhLjUuNSwwLDAsMS0uNS41aC0zLjRhLjUuNSwwLDAsMS0uNS0uNVYyMC40aC0zLjVhLjUuNSwwLDAsMS0uNS0uNVYxNi41YS41LjUsMCwwLDEsLjUtLjVoMy41VjEyLjVh''@;'; + put 'put ''LjUuNSwwLDAsMSwuNS0uNWgzLjRhLjUuNSwwLDAsMSwuNS41VjE2aDMuNWEuNS41LDAsMCwxLC41LjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICcpLEwuQ2xyU2hhcGVDb2xvclBhbGV0dGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIxLjU0''@;'; + put 'put ''LDIzLjA1YTMuMjIsMy4yMiwwLDAsMS0zLTEuNzdBMy4wNSwzLjA1LDAsMCwxLDE4LjUsMTlhMy43NCwzLjc0LDAsMCwxLDEuOTUtMi4wNkEzLjQsMy40LDAsMCwxLDI1LDE4LjNhMywzLDAsMCwxLC4wOCwyLjMyLDMuNjksMy42OSwwLDAsMS0yLDIuMDdBMy44NSwzLjg1LDAsMCwxLDIxLjU0''@;'; + put 'put ''LDIzLjA1Wm0uNTQtNC45MWEyLjQxLDIuNDEsMCwwLDAtMSwuMjFoMEEyLjEzLDIuMTMsMCwwLDAsMjAsMTkuNTFhMS4zNywxLjM3LDAsMCwwLDAsMS4wOSwxLjgxLDEuODEsMCwwLDAsMi40NS42MywyLjEsMi4xLDAsMCwwLDEuMTItMS4xNSwxLjQsMS40LDAsMCwwLDAtMS4xQTEuNTksMS41''@;'; + put 'put ''OSwwLDAsMCwyMi4wOCwxOC4xNFptLTEuMjktLjUyaDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTYuMTksMzMuODdBMTMuNzIsMTMuNzIsMCwwLDEsNi40LDMwLDEzLjg2LDEzLjg2LDAsMCwxLDIsMjBjMC00LjQsMi04Ljg0''@;'; + put 'put ''LDUuNjgtMTIuNWExOC4yLDE4LjIsMCwwLDEsMTMuMS01LjM3aC4xMmMzLjMzLDAsNi44NSwxLjQ5LDcuMjQsNC43My4yMSwxLjc3LS41OSwzLjQ3LTEuMjksNS0uNTUsMS4xNy0xLjExLDIuMzktLjcyLDIuODFzMSwuMTIsMi4wOS0uMmE2LjI3LDYuMjcsMCwwLDEsMy4zOC0uMzYsMywzLDAs''@;'; + put 'put ''MCwxLDEuODcsMS41NmMuOTQsMS44My40Nyw0LjY3LS4yMyw2LjU0aDBBMTcuMzgsMTcuMzgsMCwwLDEsMjksMjguNzQsMTkuNDMsMTkuNDMsMCwwLDEsMTYuMTksMzMuODdaTTIwLjc4LDQuMTZBMTYuMjIsMTYuMjIsMCwwLDAsOS4wOSw5QzUuNzksMTIuMjMsNCwxNi4xNiw0LDIwQTExLjky''@;'; + put 'put ''LDExLjkyLDAsMCwwLDcuOCwyOC42YzUuMzgsNS4yNSwxNC42MiwzLjU1LDE5Ljg3LTEuMzNhMTUuNTIsMTUuNTIsMCwwLDAsMy43LTUuNzVoMGMuNy0xLjkuODQtMy45Mi4zMi00LjkyYTEsMSwwLDAsMC0uNjEtLjU1LDQuODYsNC44NiwwLDAsMC0yLjI5LjM1Yy0xLjMxLjM5LTMsLjg5LTQu''@;'; + put 'put ''MTItLjM1LTEuMzItMS40LS40Ni0zLjI1LjM3LTVhNy45Myw3LjkzLDAsMCwwLDEuMTEtMy45Yy0uMjQtMi0yLjgxLTIuOTUtNS4yNi0zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIzLjg3LDI2LjY1QTIuNTksMi41OSwwLDAs''@;'; + put 'put ''MCwyMi4zNSwyNUwyMiwyNC45bC0uNDYsMS41My4xNiwwYTEsMSwwLDAsMSwuNi42MWMuMTcuNi0uNDEsMS4zMS0xLjI2LDEuNTVzLTEuNzEtLjA3LTEuODgtLjY2bC0xLjU0LjQzaDBhMi44MywyLjgzLDAsMCwwLDIuODQsMS45MSw0LDQsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDIzLjg3LDI2''@;'; + put 'put ''LjY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE1LjA3LDI1LjU5aDBhMi43MywyLjczLDAsMCwwLTIuMjQtMS44NGwtLjI3LDEuNThhMS4xMiwxLjEyLDAsMCwxLDEsLjdjLjE3LjU5LS40MSwxLjMtMS4yNiwxLjU0QTEuOTIs''@;'; + put 'put ''MS45MiwwLDAsMSwxMSwyNy41MmExLDEsMCwwLDEtLjYtLjYxczAtLjA5LDAtLjEzbC0xLjU4LjE2YTIsMiwwLDAsMCwuMDYuNDFBMi41OSwyLjU5LDAsMCwwLDEwLjM3LDI5YTMuMzYsMy4zNiwwLDAsMCwxLjMxLjI1LDMuNywzLjcsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDE1LjA3LDI1LjU5''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTEwLjc4LDE5LjE3YTIuNTksMi41OSwwLDAsMC0xLjUyLTEuNjUsMi45MSwyLjkxLDAsMCwwLS41LS4xNmwtLjM3LDEuNTZhMS4yMSwxLjIxLDAsMCwxLC4yNS4wOCwxLDEsMCwwLDEs''@;'; + put 'put ''LjYuNmMuMTcuNi0uNDEsMS4zMS0xLjI2LDEuNTVzLTEuNzEtLjA2LTEuODgtLjY2YS44Ni44NiwwLDAsMSwwLS4zOWwtMS41Ni0uMzRhMi40LDIuNCwwLDAsMCwwLDEuMTZBMi44MywyLjgzLDAsMCwwLDcuNCwyMi44M2E0LDQsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDEwLjc4LDE5LjE3WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHBhdGggZD0iTTEzLjQ1LDExLjRhMi41OSwyLjU5LDAsMCwwLTEuNTItMS42NSwxLjE3LDEuMTcsMCwwLDAtLjItLjA2bC0uNTIsMS41MWEuMzguMzgsMCwwLDEsLjEsMCwxLDEsMCwwLDEsLjYuNmMuMTcu''@;'; + put 'put ''Ni0uNDEsMS4zMS0xLjI2LDEuNTVhMi4wNiwyLjA2LDAsMCwxLTEuMjgtLjA1LDEsMSwwLDAsMS0uNi0uNjEuODUuODUsMCwwLDEsMC0uMzJsLTEuNTgtLjE5YTIuMywyLjMsMCwwLDAsLjA2Ljk0QTIuNTYsMi41NiwwLDAsMCw4Ljc1LDE0LjhhMy4zNywzLjM3LDAsMCwwLDEuMzEuMjYsNCw0''@;'; + put 'put ''LDAsMCwwLDEtLjE0QTMsMywwLDAsMCwxMy40NSwxMS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgPHBhdGggZD0iTTIxLDYuNzhhMi41NiwyLjU2LDAsMCwwLTEuNTItMS42NWwtLjMtLjFMMTguNyw2LjU2bC4xNSwwYTEsMSwwLDAsMSwuNi42''@;'; + put 'put ''MWMuMTcuNi0uNDEsMS4zLTEuMjYsMS41NHMtMS43MS0uMDYtMS44OC0uNjVhLjkuOSwwLDAsMSwuMDYtLjU4TDE0Ljg5LDYuOWEyLjQ3LDIuNDcsMCwwLDAtLjEyLDEuNjMsMi44NCwyLjg0LDAsMCwwLDIuODQsMS45MSwzLjU4LDMuNTgsMCwwLDAsMS0uMTVBMywzLDAsMCwwLDIxLDYuNzha''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuXG4gIDxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTgu''@;'; + put 'put ''NSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAs''@;'; + put 'put ''MSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMyww''@;'; + put 'put ''LDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywy''@;'; + put 'put ''LjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQs''@;'; + put 'put ''Mi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEs''@;'; + put 'put ''MS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksTC5Fc3NlbnRpYWxTaGFwZXM9eyJhZGQtdGV4dCI6TC5DbHJTaGFwZUFkZFRleHQsImFsYXJtLW9mZiI6TC5DbHJTaGFw''@;'; + put 'put ''ZUFsYXJtT2ZmLHBpbmJvYXJkOkwuQ2xyU2hhcGVQaW5ib2FyZCxuZXc6TC5DbHJTaGFwZU5ldywiYnViYmxlLWV4Y2xhbWF0aW9uIjpMLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb24sImdyaWQtdmlldyI6TC5DbHJTaGFwZUdyaWRWaWV3LCJjdXJzb3ItYXJyb3ciOkwuQ2xyU2hhcGVDdXJz''@;'; + put 'put ''b3JBcnJvdywiY3Vyc29yLWhhbmQiOkwuQ2xyU2hhcGVDdXJzb3JIYW5kLCJjdXJzb3ItaGFuZC1jbGljayI6TC5DbHJTaGFwZUN1cnNvckhhbmRDbGljaywiY3Vyc29yLWhhbmQtZ3JhYiI6TC5DbHJTaGFwZUN1cnNvckhhbmRHcmFiLCJjdXJzb3ItaGFuZC1vcGVuIjpMLkNsclNoYXBlQ3Vy''@;'; + put 'put ''c29ySGFuZE9wZW4sImN1cnNvci1tb3ZlIjpMLkNsclNoYXBlQ3Vyc29yTW92ZSwiZmlyc3QtYWlkIjpMLkNsclNoYXBlRmlyc3RBaWQscmVzaXplOkwuQ2xyU2hhcGVSZXNpemUsb2JqZWN0czpMLkNsclNoYXBlT2JqZWN0cyxib29rOkwuQ2xyU2hhcGVCb29rLGFzdGVyaXNrOkwuQ2xyU2hh''@;'; + put 'put ''cGVBc3RlcmlzayxidWc6TC5DbHJTaGFwZUJ1ZyxzY2lzc29yczpMLkNsclNoYXBlU2Npc3NvcnMsdGhlcm1vbWV0ZXI6TC5DbHJTaGFwZVRoZXJtb21ldGVyLHBlbmNpbDpMLkNsclNoYXBlUGVuY2lsLG5vdGU6TC5DbHJTaGFwZU5vdGUscmVmcmVzaDpMLkNsclNoYXBlUmVmcmVzaCxzeW5j''@;'; + put 'put ''OkwuQ2xyU2hhcGVTeW5jLCJ2aWV3LWxpc3QiOkwuQ2xyU2hhcGVWaWV3TGlzdCwidmlldy1jYXJkcyI6TC5DbHJTaGFwZVZpZXdDYXJkcywidHJlZS12aWV3IjpMLkNsclNoYXBlVHJlZVZpZXcsbGlnaHRidWxiOkwuQ2xyU2hhcGVMaWdodGJ1bGIsZG93bmxvYWQ6TC5DbHJTaGFwZURvd25s''@;'; + put 'put ''b2FkLHVwbG9hZDpMLkNsclNoYXBlVXBsb2FkLGxvY2s6TC5DbHJTaGFwZUxvY2ssdW5sb2NrOkwuQ2xyU2hhcGVVbmxvY2ssdXNlcnM6TC5DbHJTaGFwZVVzZXJzLCJwb3Atb3V0IjpMLkNsclNoYXBlUG9wT3V0LGZpbHRlcjpMLkNsclNoYXBlRmlsdGVyLHBpbjpMLkNsclNoYXBlUGluLGZp''@;'; + put 'put ''bGU6TC5DbHJTaGFwZUZpbGUscGx1czpMLkNsclNoYXBlUGx1cyxtaW51czpMLkNsclNoYXBlTWludXMsIm1pbnVzLWNpcmNsZSI6TC5DbHJTaGFwZU1pbnVzQ2lyY2xlLCJwbHVzLWNpcmNsZSI6TC5DbHJTaGFwZVBsdXNDaXJjbGUsYmFuOkwuQ2xyU2hhcGVCYW4sInRpbWVzLWNpcmNsZSI6''@;'; + put 'put ''TC5DbHJTaGFwZVRpbWVzQ2lyY2xlLHRyYXNoOkwuQ2xyU2hhcGVUcmFzaCxjaXJjbGU6TC5DbHJTaGFwZUNpcmNsZSx0YWc6TC5DbHJTaGFwZVRhZyx0YWdzOkwuQ2xyU2hhcGVUYWdzLGhpc3Rvcnk6TC5DbHJTaGFwZUhpc3RvcnksY2xvY2s6TC5DbHJTaGFwZUNsb2NrLCJhbGFybS1jbG9j''@;'; + put 'put ''ayI6TC5DbHJTaGFwZUFsYXJtQ2xvY2ssYXJyb3c6TWUuQ2xyU2hhcGVBcnJvdywiY2lyY2xlLWFycm93IjpMLkNsclNoYXBlQ2lyY2xlQXJyb3csImNoaWxkLWFycm93IjpMLkNsclNoYXBlQ2hpbGRBcnJvdyxjb3B5OkwuQ2xyU2hhcGVDb3B5LGhlbHA6TC5DbHJTaGFwZUhlbHAsbG9naW46''@;'; + put 'put ''TC5DbHJTaGFwZUxvZ2luLGxvZ291dDpMLkNsclNoYXBlTG9nb3V0LHByaW50ZXI6TC5DbHJTaGFwZVByaW50ZXIsd29ybGQ6TC5DbHJTaGFwZVdvcmxkLHNsaWRlcjpMLkNsclNoYXBlU2xpZGVyLGNsaXBib2FyZDpMLkNsclNoYXBlQ2xpcGJvYXJkLGZpcmV3YWxsOkwuQ2xyU2hhcGVGaXJl''@;'; + put 'put ''d2FsbCxsaXN0OkwuQ2xyU2hhcGVMaXN0LHJlZG86TC5DbHJTaGFwZVJlZG8sdW5kbzpMLkNsclNoYXBlVW5kbyxzY3JvbGw6TC5DbHJTaGFwZVNjcm9sbCwiZmlsZS1zZXR0aW5ncyI6TC5DbHJTaGFwZUZpbGVTZXR0aW5ncywidHdvLXdheS1hcnJvd3MiOkwuQ2xyU2hhcGVUd29XYXlBcnJv''@;'; + put 'put ''d3Msc3dpdGNoOkwuQ2xyU2hhcGVTd2l0Y2gsdG9vbHM6TC5DbHJTaGFwZVRvb2xzLCJ3aW5kb3ctY2xvc2UiOkwuQ2xyU2hhcGVXaW5kb3dDbG9zZSwid2luZG93LW1heCI6TC5DbHJTaGFwZVdpbmRvd01heCwid2luZG93LW1pbiI6TC5DbHJTaGFwZVdpbmRvd01pbiwid2luZG93LXJlc3Rv''@;'; + put 'put ''cmUiOkwuQ2xyU2hhcGVXaW5kb3dSZXN0b3JlLCJ6b29tLWluIjpMLkNsclNoYXBlWm9vbUluLCJ6b29tLW91dCI6TC5DbHJTaGFwZVpvb21PdXQsa2V5OkwuQ2xyU2hhcGVLZXksbGlicmFyeTpMLkNsclNoYXBlTGlicmFyeSxib2x0OkwuQ2xyU2hhcGVCb2x0LHdyZW5jaDpMLkNsclNoYXBl''@;'; + put 'put ''V3JlbmNoLGJ1bGxzZXllOkwuQ2xyU2hhcGVCdWxsc2V5ZSx0YXJnZXQ6TC5DbHJTaGFwZVRhcmdldCxmbGFtZTpMLkNsclNoYXBlRmxhbWUsaG91cmdsYXNzOkwuQ2xyU2hhcGVIb3VyZ2xhc3MsIm5vLWFjY2VzcyI6TC5DbHJTaGFwZU5vQWNjZXNzLG9yZ2FuaXphdGlvbjpMLkNsclNoYXBl''@;'; + put 'put ''T3JnYW5pemF0aW9uLGJhbGFuY2U6TC5DbHJTaGFwZUJhbGFuY2UsImlkLWJhZGdlIjpMLkNsclNoYXBlSWRCYWRnZSxyZXBlYXQ6TC5DbHJTaGFwZVJlcGVhdCwiZmlsZS1ncm91cCI6TC5DbHJTaGFwZUZpbGVHcm91cCxwYXBlcmNsaXA6TC5DbHJTaGFwZVBhcGVyY2xpcCxzaHJpbms6TC5D''@;'; + put 'put ''bHJTaGFwZVNocmluaywiYWNjZXNzaWJpbGl0eS0xIjpMLkNsclNoYXBlQWNjZXNzaWJpbGl0eTEsImFjY2Vzc2liaWxpdHktMiI6TC5DbHJTaGFwZUFjY2Vzc2liaWxpdHkyLCJzb3J0LWJ5IjpMLkNsclNoYXBlU29ydEJ5LCJjb2xsYXBzZS1jYXJkIjpMLkNsclNoYXBlQ29sbGFwc2VDYXJk''@;'; + put 'put ''LCJleHBhbmQtY2FyZCI6TC5DbHJTaGFwZUV4cGFuZENhcmQsYnJpZWZjYXNlOkwuQ2xyU2hhcGVCcmllZmNhc2UsImNvbG9yLXBpY2tlciI6TC5DbHJTaGFwZUNvbG9yUGlja2VyLCJjb3B5LXRvLWNsaXBib2FyZCI6TC5DbHJTaGFwZUNvcHlUb0NsaXBib2FyZCwiZmlsdGVyLTIiOkwuQ2xy''@;'; + put 'put ''U2hhcGVGaWx0ZXIyLCJkcmFnLWhhbmRsZSI6TC5DbHJTaGFwZURyYWdIYW5kbGUsbW9vbjpMLkNsclNoYXBlTW9vbixzdW46TC5DbHJTaGFwZVN1bix3YW5kOkwuQ2xyU2hhcGVXYW5kLGNsb25lOkwuQ2xyU2hhcGVDbG9uZSxkZXRhaWxzOkwuQ2xyU2hhcGVEZXRhaWxzLCJkcmFnLWhhbmRs''@;'; + put 'put ''ZS1jb3JuZXIiOkwuQ2xyU2hhcGVEcmFnSGFuZGxlQ29ybmVyLGVyYXNlcjpMLkNsclNoYXBlRXJhc2VyLGxhbmRzY2FwZTpMLkNsclNoYXBlTGFuZHNjYXBlLHBhc3RlOkwuQ2xyU2hhcGVQYXN0ZSxwb3J0cmFpdDpMLkNsclNoYXBlUG9ydHJhaXQsImZpbGUtemlwIjpMLkNsclNoYXBlRmls''@;'; + put 'put ''ZVppcCwiZmlsdGVyLW9mZiI6TC5DbHJTaGFwZUZpbHRlck9mZixyZWN5Y2xlOkwuQ2xyU2hhcGVSZWN5Y2xlLHRyZWU6TC5DbHJTaGFwZVRyZWUsZmlzaDpMLkNsclNoYXBlRmlzaCxmb3JtOkwuQ2xyU2hhcGVGb3JtLGZ1ZWw6TC5DbHJTaGFwZUZ1ZWwsc25vd2ZsYWtlOkwuQ2xyU2hhcGVT''@;'; + put 'put ''bm93Zmxha2UsdGFibGU6TC5DbHJTaGFwZVRhYmxlLCJkb3QtY2lyY2xlIjpMLkNsclNoYXBlRG90Q2lyY2xlLHZvbHVtZTpMLkNsclNoYXBlVm9sdW1lLGNyb3NzaGFpcnM6TC5DbHJTaGFwZUNyb3NzaGFpcnMsYmV0YTpMLkNsclNoYXBlQmV0YSwiY29sb3ItcGFsZXR0ZSI6TC5DbHJTaGFw''@;'; + put 'put ''ZUNvbG9yUGFsZXR0ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuRXNzZW50aWFsU2hhcGVzLCJlZGl0IiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnBlbmNpbCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywibm90ZS1lZGl0Iiwo''@;'; + put 'put ''MCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLm5vdGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Fc3NlbnRpYWxTaGFwZXMsImdyb3VwIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnVzZXJzKSksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KEwuRXNzZW50aWFsU2hhcGVzLCJkb2N1bWVudCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkVzc2VudGlhbFNoYXBlcy5maWxlKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuRXNzZW50aWFsU2hhcGVzLCJhZGQiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Fc3NlbnRpYWxTaGFwZXMu''@;'; + put 'put ''cGx1cykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywiY2FuY2VsIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLmJhbikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywicmVtb3ZlIiwoMCxCLmRlc2NyaXB0''@;'; + put 'put ''b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzWyJ0aW1lcy1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywic2lnbi1pbiIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkVzc2VudGlhbFNoYXBlcy5sb2dpbikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShMLkVzc2VudGlhbFNoYXBlcywic2lnbi1vdXQiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Fc3NlbnRpYWxTaGFwZXMubG9nb3V0KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuRXNzZW50aWFsU2hhcGVzLCJsaWdodG5pbmciLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Fc3NlbnRp''@;'; + put 'put ''YWxTaGFwZXMuYm9sdCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywiZmxvdy1jaGFydCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkVzc2VudGlhbFNoYXBlcy5vcmdhbml6YXRpb24pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Fc3NlbnRpYWxTaGFwZXMs''@;'; + put 'put ''ImFsZXJ0IiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzWyJidWJibGUtZXhjbGFtYXRpb24iXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywicGlubmVkIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnBp''@;'; + put 'put ''bmJvYXJkKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuRXNzZW50aWFsU2hhcGVzLCJhdHRhY2htZW50IiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnBhcGVyY2xpcCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywiYXR0YWNobWVu''@;'; + put 'put ''dCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkVzc2VudGlhbFNoYXBlcy5wYXBlcmNsaXApKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Fc3NlbnRpYWxTaGFwZXMsInJlc2l6ZS1kb3duIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnNocmluaykpLE9iamVj''@;'; + put 'put ''dC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywicmVzaXplLXVwIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnJlc2l6ZSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3''@;'; + put 'put ''aW5kb3cuQ2xhcml0eUljb25zLmFkZChMLkVzc2VudGlhbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvbWVkaWEtc2hhcGVzLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZToh''@;'; + put 'put ''MH0pLEwuTWVkaWFTaGFwZXM9TC5DbHJTaGFwZU1pY3JvcGhvbmVNdXRlPUwuQ2xyU2hhcGVNaWNyb3Bob25lPUwuQ2xyU2hhcGVWaWRlb0dhbGxlcnk9TC5DbHJTaGFwZVJlcGxheU9uZT1MLkNsclNoYXBlUmVwbGF5QWxsPUwuQ2xyU2hhcGVJbWFnZUdhbGxlcnk9TC5DbHJTaGFwZU11c2lj''@;'; + put 'put ''Tm90ZT1MLkNsclNoYXBlRmlsbVN0cmlwPUwuQ2xyU2hhcGVIZWFkcGhvbmVzPUwuQ2xyU2hhcGVWb2x1bWVNdXRlPUwuQ2xyU2hhcGVWb2x1bWVVcD1MLkNsclNoYXBlVm9sdW1lRG93bj1MLkNsclNoYXBlU2h1ZmZsZT1MLkNsclNoYXBlVmlkZW9DYW1lcmE9TC5DbHJTaGFwZUNhbWVyYT1M''@;'; + put 'put ''LkNsclNoYXBlRmFzdEZvcndhcmQ9TC5DbHJTaGFwZVJld2luZD1MLkNsclNoYXBlUG93ZXI9TC5DbHJTaGFwZVN0b3A9TC5DbHJTaGFwZVN0ZXBGb3J3YXJkPUwuQ2xyU2hhcGVQYXVzZT1MLkNsclNoYXBlUGxheT12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxz''@;'; + put 'put ''L3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7TC5DbHJTaGFwZVBsYXk9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik04LjA3LDMxLjZBMi4wNywyLjA3LDAsMCwxLDYsMjkuNTNWNi4zMkEyLjA3LDIuMDcsMCwwLDEs''@;'; + put 'put ''OSw0LjQ3TDMyLjIxLDE2LjA4YTIuMDcsMi4wNywwLDAsMSwwLDMuN0w5LDMxLjM4QTIuMDYsMi4wNiwwLDAsMSw4LjA3LDMxLjZabTAtMjUuMzRMOCw2LjMyVjI5LjUzbC4xLjA2TDMxLjMxLDE4YS4wNi4wNiwwLDAsMCwwLS4wNloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTYuMDgsOC45NCw0LjQ3QTIuMDcsMi4wNywwLDAsMCw2LDYuMzJWMjkuNTNhMi4wNiwyLjA2LDAsMCwwLDMsMS44NUwzMi4xNiwxOS43N2EyLjA3LDIuMDcsMCwwLDAsMC0zLjdaIi8+JyksTC5DbHJTaGFwZVBhdXNl''@;'; + put 'put ''PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTIuOTMsMzJINi4wN0EyLjA3LDIuMDcsMCwwLDEsNCwyOS45M1Y2LjA3QTIuMDcsMi4wNywwLDAsMSw2LjA3LDRoNi44N0EyLjA3LDIuMDcsMCwwLDEsMTUsNi4w''@;'; + put 'put ''N1YyOS45M0EyLjA3LDIuMDcsMCwwLDEsMTIuOTMsMzJaTTEzLDZINlYzMGg3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjkuOTMsMzJIMjMuMDdBMi4wNywyLjA3LDAsMCwxLDIxLDI5LjkzVjYuMDdB''@;'; + put 'put ''Mi4wNywyLjA3LDAsMCwxLDIzLjA3LDRoNi44N0EyLjA3LDIuMDcsMCwwLDEsMzIsNi4wN1YyOS45M0EyLjA3LDIuMDcsMCwwLDEsMjkuOTMsMzJaTTMwLDZIMjNWMzBoN1oiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiB4''@;'; + put 'put ''PSIzLjk1IiB5PSI0IiB3aWR0aD0iMTEiIGhlaWdodD0iMjgiIHJ4PSIyLjA3IiByeT0iMi4wNyIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIHg9IjIwLjk1IiB5PSI0IiB3aWR0aD0iMTEiIGhlaWdodD0iMjgiIHJ4PSIy''@;'; + put 'put ''LjA3IiByeT0iMi4wNyIvPicpLEwuQ2xyU2hhcGVTdGVwRm9yd2FyZD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTUsMzIuMjNhMiwyLDAsMCwxLTItMlY1Ljc3QTIsMiwwLDAsMSw2LjE3LDQuMTRMMjMuMjMs''@;'; + put 'put ''MTYuMzhhMiwyLDAsMCwxLDAsMy4yNWgwTDYuMTcsMzEuODZBMiwyLDAsMCwxLDUsMzIuMjNaTTUsNS43N1YzMC4yM0wyMi4wNywxOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMxLDMySDI4YTIsMiww''@;'; + put 'put ''LDAsMS0yLTJWNmEyLDIsMCwwLDEsMi0yaDNhMiwyLDAsMCwxLDIsMlYzMEEyLDIsMCwwLDEsMzEsMzJaTTI4LDZWMzBoM1Y2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik01LDMxLjlhMiwyLDAsMCwxLTItMlY1''@;'; + put 'put ''LjQ0QTIsMiwwLDAsMSw2LjEyLDMuODFMMjMuMTgsMTZhMiwyLDAsMCwxLDAsMy4yNWgwTDYuMTIsMzEuNTJBMiwyLDAsMCwxLDUsMzEuOVoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiB4PSIyNS45NSIgeT0iMy42NyIg''@;'; + put 'put ''d2lkdGg9IjciIGhlaWdodD0iMjgiIHJ4PSIyIiByeT0iMiIvPicpLEwuQ2xyU2hhcGVTdG9wPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsMzJINmEyLDIsMCwwLDEtMi0yVjZBMiwyLDAsMCwxLDYsNEgz''@;'; + put 'put ''MGEyLDIsMCwwLDEsMiwyVjMwQTIsMiwwLDAsMSwzMCwzMlpNNiw2VjMwSDMwVjZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iMy45NiIgeT0iNCIgd2lkdGg9IjI3Ljk5IiBoZWlnaHQ9IjI4IiByeD0iMiIgcnk9''@;'; + put 'put ''IjIiLz4nKSxMLkNsclNoYXBlUG93ZXI9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMWExLDEsMCwwLDEtMS0xVjRhMSwxLDAsMCwxLDIsMFYyMEExLDEsMCwwLDEsMTgsMjFaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNC4xNWExNSwxNSwwLDAsMS03LjUyLTI4LDEsMSwwLDAsMSwxLDEuNzMsMTMsMTMsMCwxLDAsMTMsMCwxLDEsMCwxLDEsMS0xLjczLDE1LDE1LDAsMCwxLTcuNTIsMjhaIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOCwyMWExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTIsMFYyMEExLDEsMCwwLDAsMTgsMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0zMi41MSwxNS40SDMwLjQ0YTEzLDEzLDAsMSwxLTE5LTcuNSwxLDEsMCwwLDAtMS0xLjczQTE1LDE1LDAsMSwwLDMzLDE5LjE1LDE0LjksMTQuOSwwLDAsMCwzMi41MSwx''@;'; + put 'put ''NS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwx''@;'; + put 'put ''LjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTgsMjFhMSwxLDAsMCwxLTEt''@;'; + put 'put ''MVY0YTEsMSwwLDAsMSwyLDBWMjBBMSwxLDAsMCwxLDE4LDIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVsLS4zMSwwQTEzLDEzLDAsMSwxLDExLjQ4LDcuOWEx''@;'; + put 'put ''LDEsMCwwLDAtMS0xLjczLDE1LDE1LDAsMSwwLDIxLjMxLDcuMUE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9''@;'; + put 'put ''IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabS4wNiwxNy42OGExLjI4LDEuMjgsMCwwLDEtMS4yOS0xLjI4Vjgu''@;'; + put 'put ''NjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMFYxOC40QTEuMjgsMS4yOCwwLDAsMSwxOC4wNiwxOS42OFpNMTgsMjcuNzlBOS44OCw5Ljg4LDAsMCwxLDEyLjE3LDkuODVhMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0uMzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMs''@;'; + put 'put ''NS44LDcuMDcsNy4wNywwLDAsMC0zLTUuNzZBMS4zNywxLjM3LDAsMCwxLDIyLDEwLjJhMS40LDEuNCwwLDAsMSwxLjk0LS4yOUE5Ljg4LDkuODgsMCwwLDEsMTgsMjcuNzlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRoLTZBOS43LDkuNywwLDAsMSwyOCwxNy44OWExMCwxMCwwLDEsMS0xNS44My04LDEuNCwxLjQsMCwwLDEsMS45NC4zMSwxLjM3LDEuMzcsMCwwLDEtLjMxLDEuOTIsNy4xOCw3LjE4LDAsMSwwLDExLjQzLDUuOCw3LjA4LDcuMDgsMCww''@;'; + put 'put ''LDAtLjQ1LTIuNDlIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0djQuNGExLjI5LDEuMjksMCwwLDEtMi41OCwwVjguNjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMHYuNzFsMy43Ni02LjUxQTE2LDE2LDAsMSwwLDM0LDE4YTE2LDE2LDAsMCwwLS4yMy0yLjYxWiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjku''@;'; + put 'put ''MDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40Nyw3LjQ3LDAsMCwxLTMuNTctLjlBOS44Myw5LjgzLDAs''@;'; + put 'put ''MCwxLDI4LDE3Ljg5YTEwLDEwLDAsMSwxLTE1LjgzLTgsMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0uMzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMsNS44LDcuMDcsNy4wNywwLDAsMC0zLTUuNzZBMS4zNywxLjM3LDAsMCwxLDIyLDEwLjJhMS4zOCwxLjM4LDAs''@;'; + put 'put ''MCwxLDEuNTItLjQ5LDcuNDUsNy40NSwwLDAsMS0uMy02LjgzLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M0E3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuNzcsOC42NWExLjI5LDEuMjksMCwwLDEsMi41OCwwVjE4LjRhMS4yOSwxLjI5LDAsMCwxLTIuNTgsMFoiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFwZVJld2luZD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE3LjA5LDMxLjU4bC0xNS4zMi0xMmEyLDIsMCwwLDEsMC0zLjE1bDE1LjMyLTEyYTEuOTMsMS45MywwLDAsMSwyLjA2LS4yMkExLjc3LDEuNzcsMCwwLDEsMjAsNnY2LjdMMzAuODMsNC40MmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJB''@;'; + put 'put ''MiwyLDAsMCwxLDM0LDZWMzBhMiwyLDAsMCwxLTEuMTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJMMjAsMjMuMzFWMzBhMS43NywxLjc3LDAsMCwxLS44NSwxLjc5LDEuOTQsMS45NCwwLDAsMS0yLjA2LS4yMlpNMzIsMzBsLjA2LTI0TDE4LDE2LjhWNkwzLDE4LDE4LDMwVjE5LjJa''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTYuOTIsMzEuNTgsMS42LDE5LjU3YTIsMiwwLDAsMSwwLTMuMTVsMTUuMzItMTJBMS45MywxLjkzLDAsMCwxLDE5LDQuMiwxLjg5LDEuODksMCwwLDEsMjAsNnY2LjdMMzAu''@;'; + put 'put ''NjYsNC40MmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJBMiwyLDAsMCwxLDMzLjgzLDZWMzBhMiwyLDAsMCwxLTEuMTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJMMjAsMjMuMzFWMzBhMS44OSwxLjg5LDAsMCwxLTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJaIi8+Jyks''@;'; + put 'put ''TC5DbHJTaGFwZUZhc3RGb3J3YXJkPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTcuNzcsMzEuOTJhMiwyLDAsMCwxLS44Ni0uMkExLjgxLDEuODEsMCwwLDEsMTYsMjkuOTN2LTYuN0w1LjI0LDMxLjVhMS45''@;'; + put 'put ''NCwxLjk0LDAsMCwxLTIuMDYuMjIsMiwyLDAsMCwxLTEuMTEtMS43OXYtMjRBMiwyLDAsMCwxLDMuMTgsNC4xMmExLjkzLDEuOTMsMCwwLDEsMi4wNi4yMkwxNiwxMi42MVY1LjkxYTEuODEsMS44MSwwLDAsMSwuOTEtMS43OUExLjkzLDEuOTMsMCwwLDEsMTksNC4zNGwxNS4zMiwxMmEyLDIs''@;'; + put 'put ''MCwwLDEsMCwzLjE1TDE5LDMxLjVBMiwyLDAsMCwxLDE3Ljc3LDMxLjkyWm0wLTEyLjhWMjkuOTNsMTUuMjYtMTItMTUuMzItMTIsLjA2LDEwLjgxTDQsNS45MXYyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNy43''@;'; + put 'put ''MSwzMmEyLDIsMCwwLDEtLjg2LS4yQTEuNzcsMS43NywwLDAsMSwxNiwzMHYtNi43TDUuMTcsMzEuNThhMS45NCwxLjk0LDAsMCwxLTIuMDYuMjJBMiwyLDAsMCwxLDIsMzBWNkEyLDIsMCwwLDEsMy4xMSw0LjJhMS45MywxLjkzLDAsMCwxLDIuMDYuMjJMMTYsMTIuNjlWNmExLjc3LDEuNzcs''@;'; + put 'put ''MCwwLDEsLjg1LTEuNzksMS45MywxLjkzLDAsMCwxLDIuMDYuMjJsMTUuMzIsMTJhMiwyLDAsMCwxLDAsMy4xNWwtMTUuMzIsMTJBMiwyLDAsMCwxLDE3LjcxLDMyWiIvPicpLEwuQ2xyU2hhcGVDYW1lcmE9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDhIMjQuN0wyMy42NCw1LjI4''@;'; + put 'put ''QTIsMiwwLDAsMCwyMS43OCw0SDE0LjIyYTIsMiwwLDAsMC0xLjg3LDEuMjhMMTEuMyw4SDRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhabTAsMjJINFYxMGg4LjY3bDEuNTUtNGg3LjU2bDEuNTUsNEgzMloiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwxOWE5LDksMCwxLDAsOS05QTksOSwwLDAsMCw5LDE5Wm0xNi40LDBBNy40LDcuNCwwLDEsMSwxOCwxMS42LDcuNDEsNy40MSwwLDAsMSwyNS40LDE5WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjM3LDEyLjgzYS44LjgsMCwwLDAtLjgtLjhINi4xN2EuOC44LDAsMCwwLDAsMS42aDIuNEEuOC44LDAsMCwwLDkuMzcsMTIuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjM0LDE5YTUuNTcsNS41NywwLDAsMCwzLjI0LDVsLjg1LTEuMzdhNCw0LDAsMSwxLDQuMTEtNi42MWwuODYtMS4zOEE1LjU2LDUuNTYsMCwwLDAsMTIuMzQsMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDhIMjQuN0wyMy42NCw1LjI4QTIsMiwwLDAsMCwyMS43OCw0SDE0LjIyYTIsMiwwLDAsMC0xLjg3LDEuMjhMMTEuMyw4SDRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwy''@;'; + put 'put ''LDAsMCwwLDMyLDhaTTYuMTcsMTMuNjNhLjguOCwwLDAsMSwwLTEuNmgyLjRhLjguOCwwLDAsMSwwLDEuNlpNMTgsMjhhOSw5LDAsMSwxLDktOUE5LDksMCwwLDEsMTgsMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MTEuMTEsMTkuMDZhNy4wNyw3LjA3LDAsMCwwLDQuMTEsNi40MWwxLjA5LTEuNzRhNSw1LDAsMSwxLDUuMjItOC4zOWwxLjA5LTEuNzZhNy4wNiw3LjA2LDAsMCwwLTExLjUxLDUuNDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+JyksTC5DbHJTaGFwZVZpZGVv''@;'; + put 'put ''Q2FtZXJhPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQsMTAuMzRhMi4xMSwyLjExLDAsMCwwLTEuMTYtMS45LDIsMiwwLDAsMC0yLjEzLjE1TDI2LDExLjZWOGEyLDIsMCwwLDAtMi0ySDZhNCw0LDAsMCww''@;'; + put 'put ''LTQsNFYyNmE0LDQsMCwwLDAsNCw0SDI0YTIsMiwwLDAsMCwyLTJWMjQuNGw0LjY0LDNhMi4wNywyLjA3LDAsMCwwLDIuMi4yQTIuMTEsMi4xMSwwLDAsMCwzNCwyNS42NlpNMzEuOTMsMjUuNzdjLS4wNiwwLS4xMSwwLS4xOS0uMDZMMjQsMjAuNzdWMjhINmEyLDIsMCwwLDEtMi0yVjEwQTIs''@;'; + put 'put ''MiwwLDAsMSw2LDhIMjR2Ny4yM2w3LjgtNWEuMTEuMTEsMCwwLDEsLjEzLDAsLjExLjExLDAsMCwxLC4wNy4xMVYyNS42NkEuMTEuMTEsMCwwLDEsMzEuOTMsMjUuNzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIu''@;'; + put 'put ''Myw5LjM1LDI2LDEyLjlWOGEyLDIsMCwwLDAtMi0ySDZhNCw0LDAsMCwwLTQsNFYyNmE0LDQsMCwwLDAsNCw0SDI0YTIsMiwwLDAsMCwyLTJWMjMuMDhsNi4zLDMuNTVBMS4xLDEuMSwwLDAsMCwzNCwyNS43N1YxMC4yQTEuMSwxLjEsMCwwLDAsMzIuMyw5LjM1WiIvPicpLEwuQ2xyU2hhcGVT''@;'; + put 'put ''aHVmZmxlPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjEuNjEsMTFoOC42MmwtMy4zLDMuM2ExLDEsMCwxLDAsMS40MSwxLjQyTDM0LDEwLjA4bC0uNzEtLjcxaDBMMjguMzQsNC40M2ExLDEsMCwwLDAtMS40''@;'; + put 'put ''MSwxLjQyTDMwLjExLDlIMjFhMSwxLDAsMCwwLS44Ni41TDE3LjUsMTQuMDlsMS4xNiwyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xMS4wNywyNS4wN0gzYTEsMSwwLDAsMCwwLDJoOC42NWExLDEsMCwwLDAs''@;'; + put 'put ''Ljg2LS41TDE1LjE4LDIyLDE0LDIwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yOC4zNCwyMC4xN2ExLDEsMCwwLDAtMS40MSwxLjQybDMuNSwzLjVIMjEuNjFMMTIuNTEsOS41M2ExLDEsMCwwLDAtLjg2LS41''@;'; + put 'put ''SDNhMSwxLDAsMSwwLDAsMmg4LjA3bDkuMSwxNS41NWExLDEsMCwwLDAsLjg2LjVIMjkuOWwtMywzYTEsMSwwLDAsMCwxLjQxLDEuNDJsNC45NS00Ljk0aDBsLjcxLS43MVoiLz4nKSxMLkNsclNoYXBlVm9sdW1lRG93bj0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjExYTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEuNzNBOC4yMSw4LjIxLDAsMCwxLDIzLjk0LDI1LDEsMSwwLDAsMSwyMy40MSwyNS4xMVoiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzJhMiwyLDAsMCwxLTEuNDItLjU5TDkuMTQsMjRINGEyLDIsMCwwLDEtMi0yVjE0YTIsMiwwLDAsMSwyLTJIOS4yMmw3LjMzLTcuNDFBMiwyLDAsMCwxLDIwLDZWMzBhMiwyLDAsMCwx''@;'; + put 'put ''LTEuMjQsMS44NUEyLDIsMCwwLDEsMTgsMzJaTTQsMTR2OEg5LjU2YTEsMSwwLDAsMSwuNzEuMjhMMTgsMzBWNmwtNy42NSw3LjY4YTEsMSwwLDAsMS0uNzEuM1pNMTgsNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0y''@;'; + put 'put ''My40MSwyNS4xMWExLDEsMCwwLDEtLjU0LTEuODUsNi4yMSw2LjIxLDAsMCwwLS4xOS0xMC42NSwxLDEsMCwxLDEsMS0xLjczQTguMjEsOC4yMSwwLDAsMSwyMy45NCwyNSwxLDEsMCwwLDEsMjMuNDEsMjUuMTFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0yIiBkPSJNMTguMzQsMy44Nyw5LDEySDNhMSwxLDAsMCwwLTEsMVYyM2ExLDEsMCwwLDAsMSwxSDguODNsOS41MSw4LjNBMSwxLDAsMCwwLDIwLDMxLjU1VjQuNjJBMSwxLDAsMCwwLDE4LjM0LDMuODdaIi8+JyksTC5DbHJTaGFwZVZvbHVtZVVwPSgwLEIuY2xySWNv''@;'; + put 'put ''blNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjMuNDEsMjUuMjVhMSwxLDAsMCwxLS41NC0xLjg1LDYuMjEsNi4yMSwwLDAsMC0uMTktMTAuNjUsMSwxLDAsMSwxLDEtMS43Myw4LjIxLDguMjEsMCwwLDEsLjI0LDE0LjA2QTEsMSww''@;'; + put 'put ''LDAsMSwyMy40MSwyNS4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjUuNjIsMzEuMThhMSwxLDAsMCwxLS40NS0xLjg5QTEyLjQ0LDEyLjQ0LDAsMCwwLDI1LDYuODlhMSwxLDAsMSwxLC44Ny0xLjgsMTQu''@;'; + put 'put ''NDQsMTQuNDQsMCwwLDEsLjI0LDI2QTEsMSwwLDAsMSwyNS42MiwzMS4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzIuMDZhMiwyLDAsMCwxLTEuNDItLjU5TDkuMTQsMjRINGEyLDIsMCwwLDEtMi0y''@;'; + put 'put ''VjE0YTIsMiwwLDAsMSwyLTJIOS4yMmw3LjMzLTcuMzlBMiwyLDAsMCwxLDIwLDZ2MjRhMiwyLDAsMCwxLTEuMjQsMS44NUEyLDIsMCwwLDEsMTgsMzIuMDZaTTQsMTR2OEg5LjU2YTEsMSwwLDAsMSwuNzEuM0wxOCwzMC4wNlY2TDEwLjM1LDEzLjdhMSwxLDAsMCwxLS43MS4zWk0xOCw2WiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjI1YTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEuNzMsOC4yMSw4LjIxLDAsMCwxLC4yNCwxNC4wNkEx''@;'; + put 'put ''LDEsMCwwLDEsMjMuNDEsMjUuMjVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjUuNjIsMzEuMThhMSwxLDAsMCwxLS40NS0xLjg5QTEyLjQ0LDEyLjQ0LDAsMCwwLDI1LDYuODlhMSwxLDAsMSwxLC44Ny0xLjgsMTQu''@;'; + put 'put ''NDQsMTQuNDQsMCwwLDEsLjI0LDI2QTEsMSwwLDAsMSwyNS42MiwzMS4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xOC4zMyw0LDkuMDcsMTJoLTZhMSwxLDAsMCwwLTEsMXY5LjkyYTEsMSwwLDAsMCwxLDFIOC44''@;'; + put 'put ''OGw5LjQ2LDguMjRBMSwxLDAsMCwwLDIwLDMxLjQzVjQuNzJBMSwxLDAsMCwwLDE4LjMzLDRaIi8+JyksTC5DbHJTaGFwZVZvbHVtZU11dGU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zLjYxLDYuNDEsOS4x''@;'; + put 'put ''OSwxMkg0YTIsMiwwLDAsMC0yLDJ2OGEyLDIsMCwwLDAsMiwySDkuMTRsNy40MSw3LjQ3QTIsMiwwLDAsMCwxOCwzMmEyLDIsMCwwLDAsLjc2LS4xNUEyLDIsMCwwLDAsMjAsMzBWMjIuNzdsNS44OSw1Ljg5Yy0uMjUuMTUtLjQ5LjI5LS43NS40MmExLDEsMCwwLDAsLjksMS43OSwxNC40LDE0''@;'; + put 'put ''LjQsMCwwLDAsMS4zMS0uNzVsMi4yOCwyLjI4TDMxLDMxLDUsNVpNMTgsMzBsLTcuNzMtNy43N0ExLDEsMCwwLDAsOS41NiwyMkg0VjE0SDkuNjRhMSwxLDAsMCwwLC43MS0uM2wuMjYtLjI2TDE4LDIwLjgxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC44OSw2LjY5QTEyLjQyLDEyLjQyLDAsMCwxLDI5LDI2LjFsMS40MiwxLjQyQTE0LjQyLDE0LjQyLDAsMCwwLDI1Ljc2LDQuODhhMSwxLDAsMSwwLS44NywxLjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIyLjY5LDEyLjYyQTYuMjcsNi4yNywwLDAsMSwyNS44LDE4YTYuMTcsNi4xNywwLDAsMS0xLjI0LDMuNzFMMjYsMjMuMTNBOC4xNSw4LjE1LDAsMCwwLDI3LjgsMThhOC4yOCw4LjI4LDAsMCwwLTQuMS03LjExLDEsMSwwLDEsMC0xLDEuNzNaIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTE4LDZ2OS4xNWwyLDJWNmEyLDIsMCwwLDAtMy40Mi0xLjQxTDEyLDkuMTdsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMSIgZD0iTTI0Ljg3LDYuNjlBMTIuNDIsMTIuNDIsMCwwLDEsMjguNzUsMjYuM2wxLjQyLDEuNDJBMTQuNDMsMTQuNDMsMCwwLDAsMjUuNzQsNC44OGExLDEsMCwwLDAtLjg3LDEuOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTIiIGQ9Ik0yNy4zLDI3LjY3aDBsLTMuODQtMy44NC0uNTctLjU3aDBMNC42Myw1LDMuMjEsNi40MSw4LjgsMTJIM2ExLDEsMCwwLDAtMSwxVjIzYTEsMSwwLDAsMCwxLDFIOC44M2w5LjUxLDguM0ExLDEsMCwwLDAsMjAsMzEuNTVWMjMuMmw1LjU5LDUuNTljLS4xNy4xLS4z''@;'; + put 'put ''NC4yLS41MS4yOWExLDEsMCwwLDAsLjksMS43OWMuMzctLjE5LjcyLS40LDEuMDgtLjYybDIuMTQsMi4xNEwzMC42MSwzMWwtMy4yNS0zLjI1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTIyLjY5LDEyLjYyQTYuMjcs''@;'; + put 'put ''Ni4yNywwLDAsMSwyNS44LDE4YTYuMTcsNi4xNywwLDAsMS0xLjQyLDMuOTJsMS40MiwxLjQyYTguMTYsOC4xNiwwLDAsMCwyLTUuMzQsOC4yOCw4LjI4LDAsMCwwLTQuMS03LjExLDEsMSwwLDEsMC0xLDEuNzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC00IiBkPSJNMjAsNC42MmExLDEsMCwwLDAtMS42Ni0uNzVsLTYuNDIsNS42TDIwLDE3LjU0WiIvPicpLEwuQ2xyU2hhcGVIZWFkcGhvbmVzPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJN''@;'; + put 'put ''MTgsM0ExNC4yNywxNC4yNywwLDAsMCw0LDE3LjVWMzFIOS4yQTIuNzQsMi43NCwwLDAsMCwxMiwyOC4zM1YyMS42N0EyLjc0LDIuNzQsMCwwLDAsOS4yLDE5SDZWMTcuNUExMi4yNywxMi4yNywwLDAsMSwxOCw1LDEyLjI3LDEyLjI3LDAsMCwxLDMwLDE3LjVWMTlIMjYuOEEyLjc0LDIuNzQs''@;'; + put 'put ''MCwwLDAsMjQsMjEuNjd2Ni42N0EyLjc0LDIuNzQsMCwwLDAsMjYuOCwzMUgzMlYxNy41QTE0LjI3LDE0LjI3LDAsMCwwLDE4LDNaTTkuMiwyMWEuNzUuNzUsMCwwLDEsLjguNjd2Ni42N2EuNzUuNzUsMCwwLDEtLjguNjdINlYyMVpNMjYsMjguMzNWMjEuNjdhLjc1Ljc1LDAsMCwxLC44LS42''@;'; + put 'put ''N0gzMHY4SDI2LjhBLjc1Ljc1LDAsMCwxLDI2LDI4LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDNBMTQuMjcsMTQuMjcsMCwwLDAsNCwxNy41VjMxSDguMkExLjc0LDEuNzQsMCwwLDAsMTAsMjkuMzNWMjIu''@;'; + put 'put ''NjdBMS43NCwxLjc0LDAsMCwwLDguMiwyMUg2VjE3LjVBMTIuMjcsMTIuMjcsMCwwLDEsMTgsNSwxMi4yNywxMi4yNywwLDAsMSwzMCwxNy41VjIxSDI3LjhBMS43NCwxLjc0LDAsMCwwLDI2LDIyLjY3djYuNjdBMS43NCwxLjc0LDAsMCwwLDI3LjgsMzFIMzJWMTcuNUExNC4yNywxNC4yNyww''@;'; + put 'put ''LDAsMCwxOCwzWiIvPicpLEwuQ2xyU2hhcGVGaWxtU3RyaXA9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWNkEy''@;'; + put 'put ''LDIsMCwwLDAsMzAsNFptMCwyNkg2VjZIMzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE0LjYsMjMuMDdhMS4yOSwxLjI5LDAsMCwwLDEuMjQuMDlsOC43My00YTEuMywxLjMsMCwwLDAsMC0yLjM3aDBsLTgu''@;'; + put 'put ''NzMtNEExLjMsMS4zLDAsMCwwLDE0LDE0djhBMS4yOSwxLjI5LDAsMCwwLDE0LjYsMjMuMDdabTEtOC42TDIzLjMxLDE4LDE1LjYsMjEuNTFaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iOCIgeT0iNyIgd2lkdGg9''@;'; + put 'put ''IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE0IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNSIgeD0iMjAiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiB4PSIyNiIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3Qg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjgiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgeD0iMTQiIHk9IjI2IiB3aWR0aD0iMiIg''@;'; + put 'put ''aGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjAiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMTAiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY2''@;'; + put 'put ''QTIsMiwwLDAsMCwzMCw0Wk0yMCw3aDJ2M0gyMFpNMTQsN2gydjNIMTRaTTEwLDI5SDhWMjZoMlptMC0xOUg4VjdoMlptNiwxOUgxNFYyNmgyWm02LDBIMjBWMjZoMlptMy4xNi0xMC4xNkwxNS4zOSwyMy4yQTEsMSwwLDAsMSwxNCwyMi4yOFYxMy41N2ExLDEsMCwwLDEsMS40MS0uOTFMMjUu''@;'; + put 'put ''MTYsMTdBMSwxLDAsMCwxLDI1LjE2LDE4Ljg0Wk0yOCwyOUgyNlYyNmgyWm0wLTE5SDI2VjdoMloiLz4nKSxMLkNsclNoYXBlTXVzaWNOb3RlPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IGQ9Ik0zMS42OCw2LjE2Yy0xLjkyLTMuMy0xMC42LTQtMTEuNTgtNC4wOUwxOSwyVjIyLjM0YTUuODksNS44OSwwLDAsMC0uODItLjU2LDguMzMsOC4zMywwLDAsMC02LjUzLS40MUM3LjU3LDIyLjcsNC45MiwyNi41LDUuNzgsMjkuODRhNS4zMyw1LjMzLDAsMCwwLDIuNjYsMy4zMiw3LjQ4''@;'; + put 'put ''LDcuNDgsMCwwLDAsMy42MS44OEE5LjU0LDkuNTQsMCwwLDAsMTUsMzMuNTdjMy42Ny0xLjE4LDYuMTctNC4zMyw2LjA2LTcuMzZWOS4zNGEyOS4xNCwyOS4xNCwwLDAsMSw2LjU1LDEuNDMsMSwxLDAsMSwwLC43Mi0xLjg3QTMxLjM3LDMxLjM3LDAsMCwwLDIxLDcuMzNWNC4xN2MzLjMzLjM2''@;'; + put 'put ''LDgsMS4zOCw4LjkyLDMsMiwzLjQxLTIuMzMsNy4zNi0yLjM3LDcuNGExLDEsMCwwLDAsMS4zMywxLjQ5QzI5LjE1LDE1Ljg1LDM0LjUsMTEsMzEuNjgsNi4xNlpNMTQuMzUsMzEuNjdhNi40Myw2LjQzLDAsMCwxLTUtLjI2LDMuMzEsMy4zMSwwLDAsMS0xLjY5LTIuMDdjLS42LTIuMzMsMS40''@;'; + put 'put ''NS01LjA1LDQuNTgtNi4wNmE3LjUyLDcuNTIsMCwwLDEsMi4zLS4zNyw1LjUyLDUuNTIsMCwwLDEsMi42NS42MiwzLjMxLDMuMzEsMCwwLDEsMS42OSwyLjA3QzE5LjU0LDI3Ljk0LDE3LjQ5LDMwLjY2LDE0LjM1LDMxLjY3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; + put 'put ''bGlkIGNsci1pLXNvbGlkLXBhdGgtMSJcbiAgICAgICAgICAgICAgICBkPSJNMzEuNjgsNi4xNmMtMS45Mi0zLjMtMTAuNi00LTExLjU4LTQuMDlMMTksMlYyMi4yOWE1Ljg4LDUuODgsMCwwLDAtLjgxLS41NSw4LjMzLDguMzMsMCwwLDAtNi41My0uNDFjLTQuMTIsMS4zMy02Ljc3LDUuMTMt''@;'; + put 'put ''NS45MSw4LjQ3YTUuMzMsNS4zMywwLDAsMCwyLjY2LDMuMzIsNy40OCw3LjQ4LDAsMCwwLDMuNjEuODhBOS41NCw5LjU0LDAsMCwwLDE1LDMzLjUyYzMuNy0xLjE5LDYuMi00LjM3LDYuMDYtNy40MiwwLDAsMCwwLDAsMFY4LjQ5YzEsLjEyLDIuMzcuMzMsMy44Mi42NGExMS4xNywxMS4xNyww''@;'; + put 'put ''LDAsMSw0LjA2LDEuNDZjMSwuNjYuMzgsMS45LjMzLDJhMTEuOCwxMS44LDAsMCwxLTEuNjYsMiwxLDEsMCwwLDAsMS4zMywxLjQ5QzI5LjE1LDE1Ljg1LDM0LjUsMTEsMzEuNjgsNi4xNloiLz4nKSxMLkNsclNoYXBlSW1hZ2VHYWxsZXJ5PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0z''@;'; + put 'put ''Mi4xMiwxMEgzLjg4QTEuODgsMS44OCwwLDAsMCwyLDExLjg4VjMwLjEyQTEuODgsMS44OCwwLDAsMCwzLjg4LDMySDMyLjEyQTEuODgsMS44OCwwLDAsMCwzNCwzMC4xMlYxMS44OEExLjg4LDEuODgsMCwwLDAsMzIuMTIsMTBaTTMyLDMwSDRWMTJIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOC41NiwxOS40NWEzLDMsMCwxLDAtMy0zQTMsMywwLDAsMCw4LjU2LDE5LjQ1Wm0wLTQuNkExLjYsMS42LDAsMSwxLDcsMTYuNDUsMS42LDEuNiwwLDAsMSw4LjU2LDE0Ljg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTcuOSwyOGw2LTYsMy4xOCwzLjE4TDE0LjI2LDI4aDJsNy40Ni03LjQ2TDMwLDI2Ljc3di0yTDI0LjIsMTlhLjcxLjcxLDAsMCwwLTEsMGwtNS4xNiw1LjE2TDE0LjM3LDIwLjVhLjcxLjcxLDAsMCwwLTEsMEw1LjkyLDI4WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMi4xMiw3VjdhMSwx''@;'; + put 'put ''LDAsMCwwLTEtMWgtMjZhMSwxLDAsMCwwLTEsMWgwVjhoMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzAuMTQsM2gwYTEsMSwwLDAsMC0xLTFoLTIyYTEsMSwwLDAsMC0xLDFoMFY0aDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIuMTIsMTBIMy44OEExLjg4LDEuODgsMCwwLDAsMiwx''@;'; + put 'put ''MS44OFYzMC4xMkExLjg4LDEuODgsMCwwLDAsMy44OCwzMkgzMi4xMkExLjg4LDEuODgsMCwwLDAsMzQsMzAuMTJWMTEuODhBMS44OCwxLjg4LDAsMCwwLDMyLjEyLDEwWk04LjU2LDEzLjQ1YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguNTYsMTMuNDVaTTMwLDI4aC0yNGw3LjQ2LTcuNDdh''@;'; + put 'put ''LjcxLjcxLDAsMCwxLDEsMGwzLjY4LDMuNjhMMjMuMjEsMTlhLjcxLjcxLDAsMCwxLDEsMEwzMCwyNC43OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZVJlcGxheUFsbD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNDYsMjYu''@;'; + put 'put ''MjJhMS40LDEuNCwwLDAsMCwxLS40Mmw1LjU5LTUuNTZhMS40MywxLjQzLDAsMCwwLC40Mi0xLDEuNDYsMS40NiwwLDAsMC0uNDItMWwtNS41OS01LjU2YTEuNDMsMS40MywwLDAsMC0yLjQ0LDFWMjQuNzlhMS40MSwxLjQxLDAsMCwwLC44OCwxLjMyQTEuNTQsMS41NCwwLDAsMCwxNy40Niwy''@;'; + put 'put ''Ni4yMlptLjE2LTEyLjE2LDUuMTksNS4xNi01LjE5LDUuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsNWgtNi43bDIuOTItMi42NEExLDEsMCwwLDAsMTIuOTQuODhMNy4zMiw2LDEyLjk0LDExYTEsMSwwLDAsMCwuNjcu''@;'; + put 'put ''MjYsMSwxLDAsMCwwLC43NC0uMzMsMSwxLDAsMCwwLS4wNy0xLjQyTDExLjQ2LDdoNi42QTExLjc4LDExLjc4LDAsMSwxLDcuNzEsMjQuNDEsMSwxLDAsMCwwLDYsMjUuMzYsMTMuNzgsMTMuNzgsMCwxLDAsMTguMDYsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yIiAvPicpLEwuQ2xyU2hhcGVSZXBsYXlPbmU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LDI3LjI3YTEsMSwwLDAsMCwxLTFWMTRhMSwxLDAsMCwwLTEtMUgxOWEzLjgsMy44LDAsMCwwLTEuMS4yM2wtMiwuNjJhLjkyLjkyLDAsMCwwLS43Mi44Ni44OC44OCwwLDAsMCwuODgu''@;'; + put 'put ''ODYsMS40NiwxLjQ2LDAsMCwwLC40My0uMDhMMTgsMTUuMDd2MTEuMkExLDEsMCwwLDAsMTksMjcuMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsNWgtNi43bDIuOTItMi42NEExLDEsMCwwLDAsMTIuOTQuODhMNy4zMiw2''@;'; + put 'put ''LDEyLjk0LDExYTEsMSwwLDAsMCwuNjcuMjYsMSwxLDAsMCwwLC43NC0uMzMsMSwxLDAsMCwwLS4wNy0xLjQyTDExLjQ2LDdoNi42QTExLjc4LDExLjc4LDAsMSwxLDcuNzEsMjQuNDEsMSwxLDAsMCwwLDYsMjUuMzYsMTMuNzgsMTMuNzgsMCwxLDAsMTguMDYsNVoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVWaWRlb0dhbGxlcnk9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwxLjg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwx''@;'; + put 'put ''Ljg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgsMS44OCwwLDAsMCwzMi4xMiwxMFpNMzIsMzBINFYxMkgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC4xNCwzaDBhMSwxLDAsMCwwLTEtMWgtMjJhMSwxLDAsMCwwLTEsMWgw''@;'; + put 'put ''VjRoMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGgg''@;'; + put 'put ''ZD0iTTEyLjgyLDI2Ljc5YTEuNzQsMS43NCwwLDAsMCwuOTMuMjgsMS42OCwxLjY4LDAsMCwwLC42OS0uMTVsOS43Ny00LjM2YTEuNjksMS42OSwwLDAsMCwwLTMuMUwxNC40NCwxNS4xYTEuNywxLjcsMCwwLDAtMi4zOSwxLjU1djguNzJBMS43LDEuNywwLDAsMCwxMi44MiwyNi43OVptLjYz''@;'; + put 'put ''LTEwLjE0YS4yOS4yOSwwLDAsMSwuMTQtLjI1LjMuMywwLDAsMSwuMTYsMCwuMjcuMjcsMCwwLDEsLjEyLDBsOS43Nyw0LjM1YS4yOS4yOSwwLDAsMSwuMTguMjguMjguMjgsMCwwLDEtLjE4LjI3bC05Ljc3LDQuMzZhLjI4LjI4LDAsMCwxLS4yOCwwLC4zMS4zMSwwLDAsMS0uMTQtLjI1WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwxLjg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwxLjg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgs''@;'; + put 'put ''MS44OCwwLDAsMCwzMi4xMiwxMFpNMjQuMTgsMjEuODNsLTkuNzcsNC4zNkExLDEsMCwwLDEsMTMsMjUuMjhWMTYuNTZhMSwxLDAsMCwxLDEuNDEtLjkxTDI0LjE4LDIwQTEsMSwwLDAsMSwyNC4xOCwyMS44M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBh''@;'; + put 'put ''dGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTMyLjEyLDdWN2ExLDEsMCwwLDAtMS0xaC0yNmExLDEsMCwwLDAtMSwxaDBWOGgyOFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZU1pY3JvcGhvbmU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDI0YzMuOSwwLDctMy4xLDctN1Y5YzAtMy45LTMuMS03LTctN3MtNywzLjEtNyw3djhDMTEsMjAuOSwxNC4xLDI0LDE4LDI0eiBN''@;'; + put 'put ''MTMsOWMwLTIuOCwyLjItNSw1LTVzNSwyLjIsNSw1djhcblx0XHRjMCwyLjgtMi4yLDUtNSw1cy01LTIuMi01LTVWOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDUuNS00LjUsMTAtMTAsMTBTOCwyMi41LDgsMTdI''@;'; + put 'put ''NmMwLDYuMyw0LjgsMTEuNCwxMSwxMS45VjMyaC0zYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDhjMC42LDAsMS0wLjQsMS0xXG5cdFx0cy0wLjQtMS0xLTFoLTN2LTMuMUMyNS4yLDI4LjQsMzAsMjMuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yIiAvPjxwYXRoIGQ9Ik0xOCwyNGMzLjksMCw3LTMuMSw3LTdWOWMwLTMuOS0zLjEtNy03LTdzLTcsMy4xLTcsN3Y4QzExLDIwLjksMTQuMSwyNCwxOCwyNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMwLDE3aC0yYzAsNS41LTQuNSwx''@;'; + put 'put ''MC0xMCwxMFM4LDIyLjUsOCwxN0g2YzAsNi4zLDQuOCwxMS40LDExLDExLjlWMzJoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtMy4xQzI1LjIsMjguNCwzMCwyMy4zLDMwLDE3eiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlTWljcm9waG9uZU11dGU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLDE3aC0yYzAsMS44LTAuNSwzLjUtMS40LDVsMS41LDEuNUMyOS4zLDIxLjUsMjkuOSwxOS4zLDMwLDE3eiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDRjMi44LDAsNSwyLjIsNSw1djhjMCwwLjQtMC4xLDAuOC0wLjIsMS4ybDEuNiwxLjZjMC40LTAuOSwwLjYtMS44LDAuNi0yLjhWOWMwLTMuOS0zLjItNy03LjEtNi45XG5cdFx0Yy0yLjksMC01LjYsMS45LTYuNSw0LjdMMTMs''@;'; + put 'put ''OC4zQzEzLjUsNS45LDE1LjYsNC4yLDE4LDR6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUuMiwyNi42bDYuOSw2LjlsMS40LTEuNEw0LDIuNkwyLjYsNGw4LjQsOC40VjE3YzAsMy45LDMuMSw3LDcsN2MxLjMsMCwyLjUtMC4zLDMu''@;'; + put 'put ''Ni0xbDIuMiwyLjJDMjIuMSwyNi40LDIwLjEsMjcsMTgsMjdcblx0XHRjLTUuNCwwLjItOS44LTQuMS0xMC05LjRjMC0wLjIsMC0wLjQsMC0wLjZINmMwLjEsNi4yLDQuOCwxMS40LDExLDEydjNoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRz''@;'; + put 'put ''LTAuNC0xLTEtMWgtM3YtM0MyMS4yLDI4LjgsMjMuNCwyOCwyNS4yLDI2LjZ6IE0xMy44LDE5LjdDMTMuMywxOC45LDEzLDE4LDEzLDE3di0yLjZsNy4xLDcuMUMxNy45LDIyLjUsMTUuMiwyMS44LDEzLjgsMTkuN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0z''@;'; + put 'put ''IiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDEuOC0wLjUsMy41LTEuNCw1bDEuNSwxLjVDMjkuMywyMS41LDI5LjksMTkuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTI1LDE3VjljMC0zLjktMy4yLTctNy4xLTYuOWMtMi45LDAt''@;'; + put 'put ''NS42LDEuOS02LjUsNC43bDEzLDEzQzI0LjgsMTguOSwyNSwxNy45LDI1LDE3eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUuMiwyNi42bDYuOSw2LjlsMS40LTEuNEw0LDIuNkwyLjYsNGw4LjQsOC40VjE3YzAsMy45LDMuMSw3LDcsN2Mx''@;'; + put 'put ''LjMsMCwyLjUtMC4zLDMuNi0xbDIuMiwyLjJDMjIuMSwyNi40LDIwLjEsMjcsMTgsMjdcblx0XHRjLTUuNCwwLjItOS44LTQuMS0xMC05LjRjMC0wLjIsMC0wLjQsMC0wLjZINmMwLjEsNi4yLDQuOCwxMS40LDExLDEydjNoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwx''@;'; + put 'put ''LTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtM0MyMS4yLDI4LjgsMjMuNCwyOCwyNS4yLDI2LjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuTWVkaWFTaGFwZXM9e3BsYXk6TC5DbHJTaGFwZVBsYXkscGF1c2U6TC5DbHJTaGFwZVBhdXNlLCJz''@;'; + put 'put ''dGVwLWZvcndhcmQiOkwuQ2xyU2hhcGVTdGVwRm9yd2FyZCxzdG9wOkwuQ2xyU2hhcGVTdG9wLHBvd2VyOkwuQ2xyU2hhcGVQb3dlcixyZXdpbmQ6TC5DbHJTaGFwZVJld2luZCwiZmFzdC1mb3J3YXJkIjpMLkNsclNoYXBlRmFzdEZvcndhcmQsY2FtZXJhOkwuQ2xyU2hhcGVDYW1lcmEsInZp''@;'; + put 'put ''ZGVvLWNhbWVyYSI6TC5DbHJTaGFwZVZpZGVvQ2FtZXJhLHNodWZmbGU6TC5DbHJTaGFwZVNodWZmbGUsInZvbHVtZS11cCI6TC5DbHJTaGFwZVZvbHVtZVVwLCJ2b2x1bWUtZG93biI6TC5DbHJTaGFwZVZvbHVtZURvd24sInZvbHVtZS1tdXRlIjpMLkNsclNoYXBlVm9sdW1lTXV0ZSxoZWFk''@;'; + put 'put ''cGhvbmVzOkwuQ2xyU2hhcGVIZWFkcGhvbmVzLCJmaWxtLXN0cmlwIjpMLkNsclNoYXBlRmlsbVN0cmlwLCJtdXNpYy1ub3RlIjpMLkNsclNoYXBlTXVzaWNOb3RlLCJpbWFnZS1nYWxsZXJ5IjpMLkNsclNoYXBlSW1hZ2VHYWxsZXJ5LCJyZXBsYXktYWxsIjpMLkNsclNoYXBlUmVwbGF5QWxs''@;'; + put 'put ''LCJyZXBsYXktb25lIjpMLkNsclNoYXBlUmVwbGF5T25lLCJ2aWRlby1nYWxsZXJ5IjpMLkNsclNoYXBlVmlkZW9HYWxsZXJ5LG1pY3JvcGhvbmU6TC5DbHJTaGFwZU1pY3JvcGhvbmUsIm1pY3JvcGhvbmUtbXV0ZSI6TC5DbHJTaGFwZU1pY3JvcGhvbmVNdXRlfSwidW5kZWZpbmVkIiE9dHlw''@;'; + put 'put ''ZW9mIHdpbmRvdyYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoTC5NZWRpYVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvc29jaWFsLXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJp''@;'; + put 'put ''Y3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLlNvY2lhbFNoYXBlcz1MLkNsclNoYXBlSGFzaHRhZz1MLkNsclNoYXBlQ3Jvd249TC5DbHJTaGFwZVRodW1ic0Rvd249TC5DbHJTaGFwZVRodW1ic1VwPUwuQ2xyU2hhcGVTYWRGYWNlPUwuQ2xy''@;'; + put 'put ''U2hhcGVOZXV0cmFsRmFjZT1MLkNsclNoYXBlSGFwcHlGYWNlPUwuQ2xyU2hhcGVQaWN0dXJlPUwuQ2xyU2hhcGVDaGF0QnViYmxlPUwuQ2xyU2hhcGVUYWxrQnViYmxlcz1MLkNsclNoYXBlSGVhcnRCcm9rZW49TC5DbHJTaGFwZUhlYXJ0PUwuQ2xyU2hhcGVJbmJveD1MLkNsclNoYXBlRmxh''@;'; + put 'put ''Zz1MLkNsclNoYXBlVGFza3M9TC5DbHJTaGFwZUVudmVsb3BlPUwuQ2xyU2hhcGVCb29rbWFyaz1MLkNsclNoYXBlSGFsZlN0YXI9TC5DbHJTaGFwZVN0YXI9TC5DbHJTaGFwZVNoYXJlPXZvaWQgMDt2YXIgQj1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25m''@;'; + put 'put ''aWcudHMiKSxFPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLE1lPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKTtMLkNsclNoYXBlU2hhcmU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYuMjFhNS4xMiw1LjEyLDAsMSwwLTEuMDctMS43TDEwLjc5LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNs''@;'; + put 'put ''MTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVptMC0yMGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSwyNy41Myw0Wk03LDIxYTMsMywwLDEsMSwzLTNBMywzLDAsMCwxLDcsMjFaTTI3LjUzLDMyYTMsMywwLDEsMSwzLTNBMywzLDAsMCwxLDI3LjUzLDMy''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYuMjFhNS4xMiw1LjEyLDAsMSwwLTEuMDct''@;'; + put 'put ''MS43TDEwLjc5LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNsMTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVoiLz4nKSxMLkNsclNoYXBlU3Rhcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMSIgZD0iTTI3LjE5LDM0YTIuMjIsMi4yMiwwLDAsMS0xLjI0LS4zOGwtNy40Ni01YS4yMi4yMiwwLDAsMC0uMjUsMGwtNy40Niw1QTIuMjIsMi4yMiwwLDAsMSw3LjQsMzEuMjFsMi40NS04LjY0YS4yMy4yMywwLDAsMC0uMDgtLjI0TDIuNzEsMTYuNzhhMi4yMiwyLjIyLDAsMCwxLDEu''@;'; + put 'put ''MjktNGw5LS4zNGEuMjMuMjMsMCwwLDAsLjItLjE1bDMuMS04LjQzYTIuMjIsMi4yMiwwLDAsMSw0LjE3LDBsMy4xLDguNDNhLjIzLjIzLDAsMCwwLC4yLjE1bDksLjM0YTIuMjIsMi4yMiwwLDAsMSwxLjI5LDRMMjcsMjIuMzNhLjIyLjIyLDAsMCwwLS4wOC4yNGwyLjQ1LDguNjRBMi4yMywy''@;'; + put 'put ''LjIzLDAsMCwxLDI3LjE5LDM0Wm0tOC44Mi03LjQyQTIuMjEsMi4yMSwwLDAsMSwxOS42LDI3bDcuNDYsNWEuMjIuMjIsMCwwLDAsLjM0LS4yNWwtMi40NS04LjY0YTIuMjEsMi4yMSwwLDAsMSwuNzctMi4zNWw3LjA2LTUuNTVhLjIyLjIyLDAsMCwwLS4xMy0uNGwtOS0uMzRhMi4yMiwyLjIy''@;'; + put 'put ''LDAsMCwxLTItMS40NmwtMy4xLTguNDNhLjIyLjIyLDAsMCwwLS40MiwwTDE1LjA2LDEzYTIuMjIsMi4yMiwwLDAsMS0yLDEuNDZsLTksLjM0YS4yMi4yMiwwLDAsMC0uMTMuNEwxMSwyMC43NmEyLjIyLDIuMjIsMCwwLDEsLjc3LDIuMzVMOS4zMywzMS43NWEuMjEuMjEsMCwwLDAsLjA4LjI0''@;'; + put 'put ''LjIuMiwwLDAsMCwuMjYsMGw3LjQ2LTVBMi4yMiwyLjIyLDAsMCwxLDE4LjM2LDI2LjYyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCwxNi43OGEyLjIyLDIuMjIsMCwwLDAtMS4yOS00bC05LS4zNGEuMjMu''@;'; + put 'put ''MjMsMCwwLDEtLjItLjE1TDIwLjQsMy44OWEyLjIyLDIuMjIsMCwwLDAtNC4xNywwbC0zLjEsOC40M2EuMjMuMjMsMCwwLDEtLjIuMTVsLTksLjM0YTIuMjIsMi4yMiwwLDAsMC0xLjI5LDRsNy4wNiw1LjU1YS4yMy4yMywwLDAsMSwuMDguMjRMNy4zNSwzMS4yMWEyLjIyLDIuMjIsMCwwLDAs''@;'; + put 'put ''My4zOCwyLjQ1bDcuNDYtNWEuMjIuMjIsMCwwLDEsLjI1LDBsNy40Niw1YTIuMiwyLjIsMCwwLDAsMi41NSwwLDIuMiwyLjIsMCwwLDAsLjgzLTIuNGwtMi40NS04LjY0YS4yMi4yMiwwLDAsMSwuMDgtLjI0WiIvPicpLEwuQ2xyU2hhcGVIYWxmU3Rhcj0oMCxFLmNsckljb25TVkcpKCc8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LDE2Ljc4YTIuMjIsMi4yMiwwLDAsMC0xLjI5LTRsLTktLjM0YS4yMy4yMywwLDAsMS0uMi0uMTVMMjAuNCwzLjg5YTIuMjIsMi4yMiwwLDAsMC00LjE3LDBsLTMuMSw4LjQzYS4yMy4yMywwLDAsMS0u''@;'; + put 'put ''Mi4xNWwtOSwuMzRhMi4yMiwyLjIyLDAsMCwwLTEuMjksNGw3LjA2LDUuNTVhLjIyLjIyLDAsMCwxLC4wOC4yNEw3LjM1LDMxLjIxQTIuMjMsMi4yMywwLDAsMCw5LjQ5LDM0YTIuMjIsMi4yMiwwLDAsMCwxLjI0LS4zOGw3LjQ2LTVhLjIyLjIyLDAsMCwxLC4yNSwwbDcuNDYsNWEyLjIyLDIu''@;'; + put 'put ''MjIsMCwwLDAsMy4zOC0yLjQ1bC0yLjQ1LTguNjRhLjIzLjIzLDAsMCwxLC4wOC0uMjRaTTE4LjMzLDI2LjYyaDBhMi4yMSwyLjIxLDAsMCwwLTEuMjQuMzhMOS42MiwzMmEuMjIuMjIsMCwwLDEtLjM0LS4yNWwyLjQ1LTguNjRBMi4yMSwyLjIxLDAsMCwwLDExLDIwLjc2TDMuOSwxNS4yMWEu''@;'; + put 'put ''MjIuMjIsMCwwLDEsLjEzLS40bDktLjM0QTIuMjIsMi4yMiwwLDAsMCwxNSwxM2wzLjEtOC40M2EuMi4yLDAsMCwxLC4yMS0uMTVoMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQsMTYuNzhhMi4yMiwyLjIy''@;'; + put 'put ''LDAsMCwwLTEuMjktNGwtOS0uMzRhLjIzLjIzLDAsMCwxLS4yLS4xNUwyMC40LDMuODlhMi4yMiwyLjIyLDAsMCwwLTQuMTcsMGwtMy4xLDguNDNhLjIzLjIzLDAsMCwxLS4yLjE1bC05LC4zNGEyLjIyLDIuMjIsMCwwLDAtMS4yOSw0bDcuMDYsNS41NWEuMjMuMjMsMCwwLDEsLjA4LjI0TDcu''@;'; + put 'put ''MzUsMzEuMjFhMi4yMiwyLjIyLDAsMCwwLDMuMzgsMi40NWw3LjQ2LTVhLjIyLjIyLDAsMCwxLC4yNSwwbDcuNDYsNWEyLjIsMi4yLDAsMCwwLDIuNTUsMCwyLjIsMi4yLDAsMCwwLC44My0yLjRsLTIuNDUtOC42NGEuMjIuMjIsMCwwLDEsLjA4LS4yNFpNMjQuOSwyMy4xMWwyLjQ1LDguNjRB''@;'; + put 'put ''LjIyLjIyLDAsMCwxLDI3LDMybC03LjQ2LTVhMi4yMSwyLjIxLDAsMCwwLTEuMjQtLjM4aDBWNC40NGgwYS4yLjIsMCwwLDEsLjIxLjE1TDIxLjYyLDEzYTIuMjIsMi4yMiwwLDAsMCwyLDEuNDZsOSwuMzRhLjIyLjIyLDAsMCwxLC4xMy40bC03LjA2LDUuNTVBMi4yMSwyLjIxLDAsMCwwLDI0''@;'; + put 'put ''LjksMjMuMTFaIi8+JyksTC5DbHJTaGFwZUJvb2ttYXJrPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjYsMzRhMiwyLDAsMCwxLTEuNDEtLjU4TDE4LDI2LjgybC02LjU0LDYuNTJBMiwyLDAsMCwxLDgsMzEu''@;'; + put 'put ''OTNWNGEyLDIsMCwwLDEsMi0ySDI2YTIsMiwwLDAsMSwyLDJWMzJhMiwyLDAsMCwxLTIsMlptMC0yaDBWNEgxMFYzMS45M0wxOCwyNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYsMkgxMEEyLDIsMCwwLDAs''@;'; + put 'put ''OCw0VjMxLjkzYTIsMiwwLDAsMCwzLjQyLDEuNDFsNi41NC02LjUyLDYuNjMsNi42QTIsMiwwLDAsMCwyOCwzMlY0QTIsMiwwLDAsMCwyNiwyWiIvPicpLEwuQ2xyU2hhcGVFbnZlbG9wZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMSIgZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0zMC40NiwyOEg1LjY2bDctNy4yNC0xLjQ0LTEuMzlMNCwyNi44NFY5LjUyTDE2LjQzLDIxLjg5YTIsMiwwLDAsMCwyLjgyLDBMMzIsOS4y''@;'; + put 'put ''MXYxNy41bC03LjM2LTcuMzYtMS40MSwxLjQxWk01LjMxLDhIMzAuMzhMMTcuODQsMjAuNDdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIsMTMuMDhWMjYuNzFsLTcuMzYt''@;'; + put 'put ''Ny4zNi0xLjQxLDEuNDFMMzAuNDYsMjhINS42Nmw3LTcuMjQtMS40NC0xLjM5TDQsMjYuODRWOS41MkwxNi40MywyMS44OWEyLDIsMCwwLDAsMi44MiwwbDguODMtOC43OGE3LjQ0LDcuNDQsMCwwLDEtMi0uODVsLTguMjYsOC4yMUw1LjMxLDhIMjIuODFhNy40OSw3LjQ5LDAsMCwxLS4zMS0y''@;'; + put 'put ''SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMkE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMDhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjUuODYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjI2SDMyVjI2LjcxbC03LjM2LTcuMzYtMS40''@;'; + put 'put ''MSwxLjQxTDMwLjQ2LDI4SDUuNjZsNy03LjI0LTEuNDQtMS4zOUw0LDI2Ljg0VjkuNTJMMTYuNDMsMjEuODlhMiwyLDAsMCwwLDIuODIsMGw2LjY2LTYuNjNIMjMuMDhsLTUuMjQsNS4yMUw1LjMxLDhIMjAuMDZsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMTUuMjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxbC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkx''@;'; + put 'put ''SDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4zMyw2YTIsMiwwLDAsMC0uNDEsMGgtMjhhMiwy''@;'; + put 'put ''LDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuODEsNy4zOSwxOS4yNSwyMS44OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIs''@;'; + put 'put ''MCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzMuODEsNy4zOVpNNS4zLDI4SDMuOTFWMjYuNTdsNy4yNy03LjIxLDEuNDEsMS40MVptMjYuNjEsMEgzMC41MWwtNy4yOS03LjIzLDEuNDEtMS40MSw3LjI3LDcuMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yNiwxMi4zNEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2SDMuOTJhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTItLjI5bC04LjcxLDguNjhhMiwyLDAsMCwxLTIuODIsMEwyLDcuNWEyLDIsMCwwLDAtLjA3LjVWMjhhMiwyLDAsMCwwLDIsMmgyOGEyLDIsMCwwLDAsMi0yVjEyLjM5QTcu''@;'; + put 'put ''NDUsNy40NSwwLDAsMSwzMCwxMy41Wk01LjMsMjhIMy45MVYyNi41N2w3LjI3LTcuMjEsMS40MSwxLjQxWm0yNi42MSwwSDMwLjUxbC03LjI5LTcuMjMsMS40MS0xLjQxLDcuMjcsNy4yMVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMjUuNzdsLTYu''@;'; + put 'put ''NTIsNi40OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWMTUuMzhaTTUuMywyOEgzLjkxVjI2LjU3bDcuMjctNy4yMSwxLjQxLDEuNDFabTI2LjYxLDBIMzAuNTFsLTcuMjktNy4yMywxLjQxLTEuNDEsNy4y''@;'; + put 'put ''Nyw3LjIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yMi45NCwxNS40aC0uN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDMuOTJhMiwyLDAsMCwwLS41My4wOEwx''@;'; + put 'put ''Ny44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4y''@;'; + put 'put ''OCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+JyksTC5DbHJTaGFwZVRhc2tzPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuMjksMzRINi43''@;'; + put 'put ''MUExLjcsMS43LDAsMCwxLDUsMzIuMzFWNi42OUExLjc1LDEuNzUsMCwwLDEsNyw1SDlWN0g3VjMySDI5VjdIMjdWNWgyLjI1QTEuNywxLjcsMCwwLDEsMzEsNi42OVYzMi4zMUExLjcsMS43LDAsMCwxLDI5LjI5LDM0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTYuNjYsMjUuNzYsMTEuMywyMC40QTEsMSwwLDAsMSwxMi43MiwxOWwzLjk0LDMuOTQsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yNiwxMUgxMFY3LjMzQTIuMzQsMi4zNCwwLDAsMSwxMi4zMyw1aDEuNzlhNCw0LDAsMCwxLDcuNzUsMGgxLjc5QTIuMzQsMi4zNCwwLDAsMSwyNiw3LjMzWk0xMiw5SDI0VjcuMzNBLjMzLjMzLDAsMCwwLDIzLjY3LDdIMjBWNmEyLDIsMCwwLDAtNCww''@;'; + put 'put ''VjdIMTIuMzNhLjMzLjMzLDAsMCwwLS4zMy4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE5LDkuODksMTkuNTYsOUgxMlY3LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3''@;'; + put 'put ''SDE2VjZhMiwyLDAsMCwxLDQsMFY3aC43MWwxLjE2LTJhNCw0LDAsMCwwLTcuNzQsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMWg4LjY0QTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjQuMTksMTUuNGwtNy41Myw3LjUzTDEyLjcyLDE5QTEsMSwwLDAsMCwxMS4zLDIwLjRsNS4zNiw1LjM2TDI2LjcxLDE1LjcxYTEsMSwwLDAsMCwuMi0uMzFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNS40VjMySDdWN0g5VjVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMyLjMxVjE1LjRaIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCww''@;'; + put 'put ''LDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMi43MiwxOUExLDEsMCwwLDAsMTEuMywy''@;'; + put 'put ''MC40bDUuMzYsNS4zNkwyNi43MSwxNS43MWExLDEsMCwwLDAtMS40MS0xLjQxbC04LjY0LDguNjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMjMuMTMsOUgxMlY3LjMzQS4z''@;'; + put 'put ''My4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMUgyNC40MkE3LjUsNy41LDAsMCwxLDIz''@;'; + put 'put ''LjEzLDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjUyLDcuNTIsMCwwLDEtMS0uMDdWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIu''@;'; + put 'put ''MzFBMS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjkuMjksNC45NWgtNy4yYTQuMzEsNC4zMSwwLDAsMC04LjE3LDBIN0ExLjc1LDEuNzUsMCwwLDAs''@;'; + put 'put ''NSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWNi42NEExLjcsMS43LDAsMCwwLDI5LjI5LDQuOTVabS0xOCwzYTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2gzLjQ0YTEsMSwwLDAs''@;'; + put 'put ''MSwxLDFWOS44SDExLjI1Wm0xNC41Miw5LjIzLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDcuMTQtNy4xNGExLjQsMS40LDAsMSwxLDIsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjUuODgsMTUuNGExLjM4LDEuMzgsMCwwLDEtLjExLDEuODFsLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDctN0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwwLS4wOUgxMS4yNVY4YTEsMSww''@;'; + put 'put ''LDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2guNDJMMjIsNC43NmE0LjMsNC4zLDAsMCwwLTguMDkuMTlIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWMTUu''@;'; + put 'put ''NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAs''@;'; + put 'put ''MCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS02LjQ2''@;'; + put 'put ''LTMuN0gxMS4yNVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2gyLjI2YTcuNTMsNy41MywwLDAsMS0uMDctMSw3LjUzLDcuNTMsMCwwLDEsLjA4LTEuMDVoLS41YTQuMzEsNC4zMSwwLDAsMC04LjE3LDBIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0''@;'; + put 'put ''VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVabS00LjIzLDMuNzEtOS4xMiw5LjEyLTUuMjQtNS4yNGExLjQsMS40LDAsMCwxLDItMmwzLjI2LDMuMjYsNy4xNC03LjE0YTEuNCwx''@;'; + put 'put ''LjQsMCwxLDEsMiwyWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxMLkNsclNoYXBlRmxhZz0oMCxFLmNsckljb25TVkcp''@;'; + put 'put ''KCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTYsMzRhMSwxLDAsMCwxLTEtMVYzQTEsMSwwLDAsMSw3LDNWMzNBMSwxLDAsMCwxLDYsMzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTIiIGQ9Ik0zMC41NSwzLjgyYTEsMSwwLDAsMC0xLDAsMTQuOSwxNC45LDAsMCwxLTYuMTMsMS4xNiwxMy4xMSwxMy4xMSwwLDAsMS01LjE4LTEuNDksMTIuNzgsMTIuNzgsMCwwLDAtNS0xLjQ1QTEwLjg2LDEwLjg2LDAsMCwwLDksMi44NVY1LjA4QTguOCw4LjgsMCwwLDEs''@;'; + put 'put ''MTMuMjUsNGExMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjZBMTguNzUsMTguNzUsMCwwLDAsMjksNi4xMlYxOC45NWExNi4xNiwxNi4xNiwwLDAsMS01LjU4LjkzLDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OSwxMi43OCwxMi43OCwwLDAsMC01''@;'; + put 'put ''LTEuNDVBMTAuODYsMTAuODYsMCwwLDAsOSwxNy43OVYyMGE4LjgsOC44LDAsMCwxLDQuMjUtMS4wOCwxMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjYsMTYuNzksMTYuNzksMCwwLDAsNy0xLjM3LDEsMSwwLDAsMCwuNTUtLjg5VjQuNjdBMSwxLDAs''@;'; + put 'put ''MCwwLDMwLjU1LDMuODJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTUuOTIsMmExLDEsMCwwLDAtMSwxVjMzYTEsMSwwLDAsMCwyLDBWM0ExLDEsMCwwLDAsNS45MiwyWiIvPlxuICAgICAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMC41LDMuODJhMSwxLDAsMCwwLTEsMCwxNC45LDE0LjksMCwwLDEtNi4xMywxLjE2LDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OUExMi43OCwxMi43OCwwLDAsMCwxMy4yLDIsMTAuODYsMTAuODYsMCww''@;'; + put 'put ''LDAsOSwyLjg1VjIwYTguOCw4LjgsMCwwLDEsNC4yNS0xLjA4LDExLjIyLDExLjIyLDAsMCwxLDQuMiwxLjI4LDE0Ljg0LDE0Ljg0LDAsMCwwLDYsMS42NiwxNi43OSwxNi43OSwwLDAsMCw3LTEuMzcsMSwxLDAsMCwwLC41NS0uODlWNC42N0ExLDEsMCwwLDAsMzAuNSwzLjgyWiIvPicpLEwu''@;'; + put 'put ''Q2xyU2hhcGVJbmJveD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMjMsMTMuMDlhMSwxLDAsMCwwLDAsMS40MUwxOCwyMC4zbDUuNzktNS43OWExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDE2LjQ3VjJBMSwxLDAsMCwwLDE4LDFhMSwxLDAsMCwwLTEsMXYxNC41bC0zLjM4LTMuMzhB''@;'; + put 'put ''MSwxLDAsMCwwLDEyLjIzLDEzLjA5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41LDVIMjJWN2g3VjIxSDIzLjYxbC0uMS44OWE1LjQyLDUuNDIsMCwwLDEtMTAuNzcsMGwtLjEtLjg5SDdWN2g3VjVINi41''@;'; + put 'put ''QTEuNSwxLjUsMCwwLDAsNSw2LjV2MjVBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41VjYuNUExLjUsMS41LDAsMCwwLDI5LjUsNVpNMjksMzFIN1YyM2gzLjkxYTcuNDIsNy40MiwwLDAsMCwxNC40NCwwSDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi4yMywxMy4wOWExLDEsMCwwLDAsMCwxLjQxTDE4LDIwLjNsNS43OS01Ljc5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMTYuNDdWMkExLDEsMCwwLDAsMTgsMWExLDEsMCwwLDAtMSwxdjE0LjVsLTMuMzgtMy4z''@;'; + put 'put ''OEExLDEsMCwwLDAsMTIuMjMsMTMuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNTIsNy41MiwwLDAsMS0xLS4wN1YyMUgyMy42MWwtLjEuODlhNS40Miw1LjQy''@;'; + put 'put ''LDAsMCwxLTEwLjc3LDBsLS4xLS44OUg3VjdoN1Y1SDYuNUExLjUsMS41LDAsMCwwLDUsNi41djI1QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVpNMjksMzFIN1YyM2gzLjkxYTcuNDIsNy40MiwwLDAs''@;'; + put 'put ''MCwxNC40NCwwSDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLEwuQ2xyU2hhcGVIZWFydD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzIuNDNhMSwxLDAsMCwxLS42MS0uMjFDMTEuODMsMjcuOSw4LDI0LjE4LDUuMzIsMjAuNTEsMS45LDE1LjgyLDEuMTIsMTEuNDksMyw3LjY0YzEuMzQtMi43''@;'; + put 'put ''NSw1LjE5LTUsOS42OS0zLjY5QTkuODcsOS44NywwLDAsMSwxOCw3LjcyYTkuODcsOS44NywwLDAsMSw1LjMxLTMuNzdjNC40OS0xLjI5LDguMzUuOTQsOS42OSwzLjY5LDEuODgsMy44NSwxLjEsOC4xOC0yLjMyLDEyLjg3QzI4LDI0LjE4LDI0LjE3LDI3LjksMTguNjEsMzIuMjJBMSwxLDAs''@;'; + put 'put ''MCwxLDE4LDMyLjQzWk0xMC4xMyw1LjU4QTUuOSw1LjksMCwwLDAsNC44LDguNTFjLTEuNTUsMy4xOC0uODUsNi43MiwyLjE0LDEwLjgxQTU3LjEzLDU3LjEzLDAsMCwwLDE4LDMwLjE2LDU3LjEzLDU3LjEzLDAsMCwwLDI5LjA2LDE5LjMzYzMtNC4xLDMuNjktNy42NCwyLjE0LTEwLjgxLTEt''@;'; + put 'put ''Mi00LTMuNTktNy4zNC0yLjY1YTgsOCwwLDAsMC00Ljk0LDQuMiwxLDEsMCwwLDEtMS44NSwwLDcuOTMsNy45MywwLDAsMC00Ljk0LTQuMkE3LjMxLDcuMzEsMCwwLDAsMTAuMTMsNS41OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNMzMsNy42NGMtMS4zNC0yLjc1LTUuMi01LTkuNjktMy42OUE5Ljg3LDkuODcsMCwwLDAsMTgsNy43MmE5Ljg3LDkuODcsMCwwLDAtNS4zMS0zLjc3QzguMTksMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgsMi4zMiwxMi44N0M4LDI0LjE4LDEx''@;'; + put 'put ''LjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLkNsclNoYXBlSGVhcnRCcm9rZW49''@;'; + put 'put ''KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjA5LTUtOS42OS0zLjY5YTkuODcsOS44NywwLDAsMC02LDQuODQsMTguOSwxOC45LDAsMCwwLTIuMjMsNS4zM2w1LjI4LDIuMzQtNC42LDQuMzcsMy40OSw0LjEsMS41Mi0xLjNMMTguNTQsMjFsNS40LTUu''@;'; + put 'put ''MTNMMTcuNTgsMTNBMTYuMjMsMTYuMjMsMCwwLDEsMTkuNzUsOC45YTcuNjgsNy42OCwwLDAsMSw0LjExLTNjMy4zNC0uODksNi4zNC42LDcuMzQsMi42NSwxLjU1LDMuMTguODUsNi43Mi0yLjE0LDEwLjgxQTU3LjE2LDU3LjE2LDAsMCwxLDE4LDMwLjE2LDU3LjE2LDU3LjE2LDAsMCwxLDYu''@;'; + put 'put ''OTQsMTkuMzNjLTMtNC4xLTMuNjktNy42NC0yLjE0LTEwLjgxYTUuOSw1LjksMCwwLDEsNS4zMy0yLjkzLDcuMzEsNy4zMSwwLDAsMSwyLC4yOSw3LjcsNy43LDAsMCwxLDMuMzgsMmwuMTUtLjNhMTAuNjYsMTAuNjYsMCwwLDEsMS0xLjQxLDkuNjQsOS42NCwwLDAsMC0zLjk0LTIuMjJDOC4y''@;'; + put 'put ''LDIuNjYsNC4zNCw0Ljg5LDMsNy42NGMtMS44OCwzLjg1LTEuMSw4LjE4LDIuMzIsMTIuODdDOCwyNC4xOCwxMS44MywyNy45LDE3LjM5LDMyLjIyYTEsMSwwLDAsMCwxLjIzLDBjNS41NS00LjMxLDkuMzktOCwxMi4wNy0xMS43MUMzNC4xLDE1LjgyLDM0Ljg4LDExLjQ5LDMzLDcuNjRaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjItNS05LjY5LTMuNjlBMTEuNTUsMTEuNTUsMCwwLDAsMTguMTksNy41YTE2Ljg5LDE2Ljg5LDAsMCwwLTIuNDgsNC41NkwyMi4yNywx''@;'; + put 'put ''NSwxNi43LDIwLjI2LDE5LDIzbC0xLjU3LDEuMzQtMy42LTQuMjIsNC43NC00LjUxLTUuNDQtMi40MWExOS40OSwxOS40OSwwLDAsMSwyLjMtNS41LDE0Ljc3LDE0Ljc3LDAsMCwxLDEuMDYtMS41NGwuMDYsMGE5LjY2LDkuNjYsMCwwLDAtMy44OS0yLjE4QzguMTksMi42Niw0LjM0LDQuODks''@;'; + put 'put ''Myw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgsMi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLkNsclNoYXBlVGFsa0J1YmJsZXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRhMSwxLDAsMCwxLDEtMUg4Ljg2VjExSDVhMywzLDAsMCwwLTMsM1Yz''@;'; + put 'put ''MmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSw0SDE0YTMsMywwLDAs''@;'; + put 'put ''MC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWN0EzLDMsMCwwLDAsMzEsNFpNMzIsMjIuOTQsMjguNSwyMC4yMWExLDEsMCwwLDAtLjYxLS4yMUgxNGExLDEsMCwwLDEtMS0xVjdhMSwxLDAsMCwxLDEtMUgzMUEx''@;'; + put 'put ''LjEsMS4xLDAsMCwxLDMyLDcuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRhMSwxLDAsMCwxLDEtMUg4Ljg2VjExSDVh''@;'; + put 'put ''MywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2OS43MkwyOC41LDIwLjIxYTEsMSwwLDAsMC0uNjEtLjIxSDE0YTEsMSwwLDAsMS0xLTFWN2ExLDEsMCwwLDEsMS0xSDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDE0YTMsMywwLDAsMC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMu''@;'; + put 'put ''NzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWMTIuMzdBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYi''@;'; + put 'put ''IHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTgsMTlWMTFINWEzLDMsMCwwLDAtMywzVjMyYTEsMSwwLDAsMCwuNTYuODksMSwxLDAsMCwwLDEtLjFMOC43''@;'; + put 'put ''MSwyOUgyMi4xNUEyLjc3LDIuNzcsMCwwLDAsMjUsMjYuMTNWMjVIMTRBNiw2LDAsMCwxLDgsMTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsNEgxNGEzLDMsMCwwLDAtMywzVjE5YTMsMywwLDAsMCwzLDNIMjcu''@;'; + put 'put ''NTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjdBMywzLDAsMCwwLDMxLDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOCwxOVYxMUg1YTMsMywwLDAsMC0zLDNWMzJhMSwxLDAsMCww''@;'; + put 'put ''LC41Ni44OSwxLDEsMCwwLDAsMS0uMUw4LjcxLDI5SDIyLjE1QTIuNzcsMi43NywwLDAsMCwyNSwyNi4xM1YyNUgxNEE2LDYsMCwwLDEsOCwxOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MzAsMTMuNUE3LjQ4LDcuNDgsMCwwLDEsMjIuNzgsNEgxNGEzLDMsMCwwLDAtMywzVjE5YTMsMywwLDAsMCwzLDNIMjcuNTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjEyLjM3QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxMLkNsclNoYXBlQ2hh''@;'; + put 'put ''dEJ1YmJsZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2''@;'; + put 'put ''LjgyLDIuNSwxOCwyLjVaTTI4LjI5LDI0LjYxYTEsMSwwLDAsMC0uMzIuNzNsMCw1LjM0LTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMUExNiwxNiwwLDAsMSwxOCwyOC41Yy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUuMzgsMTQsMTJBMTEuMDgsMTEuMDgsMCww''@;'; + put 'put ''LDEsMjguMjksMjQuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxNS41SDExYTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLjc1LDIwLjVoLTcuNWExLDEsMCwwLDAsMCwyaDcuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuMjgsMTIuNUgy''@;'; + put 'put ''NC43MmExLDEsMCwwLDAsMC0ySDExLjI4YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4zOCwxMi42OWE3LjQzLDcuNDMsMCwwLDEtMS44OS42NkExMC4zNSwxMC4zNSwwLDAsMSwz''@;'; + put 'put ''MiwxNi41YTExLjA4LDExLjA4LDAsMCwxLTMuNzEsOC4xMSwxLDEsMCwwLDAtLjMyLjczbDAsNS4zNC00LjM4LTIuNzlhMSwxLDAsMCwwLS44My0uMTFBMTYsMTYsMCwwLDEsMTgsMjguNWMtNy43MiwwLTE0LTUuMzgtMTQtMTJzNi4yOC0xMiwxNC0xMmExNiwxNiwwLDAsMSw0LjU1LjY2QTcu''@;'; + put 'put ''NDQsNy40NCwwLDAsMSwyMywzLjIyYTE4LDE4LDAsMCwwLTUtLjcyYy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0ExMi4zMiwxMi4zMiww''@;'; + put 'put ''LDAsMCwzMy4zOCwxMi42OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMSwxNS41YTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC4yNSwyMC41YTEsMSwwLDAsMCwwLDJoNy41YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRn''@;'; + put 'put ''ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjgsMTEuNWExLDEsMCwwLDAsMSwxSDI0LjcyYTEsMSwwLDAsMCwuODMtLjQ3QTcuNTMsNy41MywwLDAsMSwyNCwxMC41SDExLjI4QTEsMSwwLDAsMCwxMC4yOCwxMS41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjdDMzQsOC43OCwyNi44MiwyLjUsMTgsMi41Wm04LDE0YTEsMSwwLDAsMS0x''@;'; + put 'put ''LDFIMTFhMSwxLDAsMCwxLDAtMkgyNUExLDEsMCwwLDEsMjYsMTYuNVptLTMuMjUsNWExLDEsMCwwLDEtMSwxaC03LjVhMSwxLDAsMCwxLDAtMmg3LjVBMSwxLDAsMCwxLDIyLjc1LDIxLjVabS0xMi40Ny0xMGExLDEsMCwwLDEsMS0xSDI0LjcyYTEsMSwwLDAsMSwwLDJIMTEuMjhBMSwxLDAs''@;'; + put 'put ''MCwxLDEwLjI4LDExLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjI1YTcuNDYsNy40NiwwLDAsMS00LjM1LTEuNCwxLDEsMCwwLDEtLjkzLjY1SDExLjI4YTEsMSwwLDAsMSwwLTJIMjQuMkE3LjQ2LDcu''@;'; + put 'put ''NDYsMCwwLDEsMjMsMy4yYTE4LDE4LDAsMCwwLTUtLjdjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3LDEyLjM0LDEyLjM0LDAsMCwwLS42''@;'; + put 'put ''OC00QTcuNDYsNy40NiwwLDAsMSwzMCwxMy4yNVpNMjEuNzUsMjIuNWgtNy41YTEsMSwwLDAsMSwwLTJoNy41YTEsMSwwLDAsMSwwLDJabTMuMjUtNUgxMWExLDEsMCwwLDEsMC0ySDI1YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNS43NSIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEwuQ2xyU2hhcGVQaWN0dXJlPSgwLEUuY2xySWNvblNW''@;'; + put 'put ''RykoJzxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNNCwzMFY2SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik04LjkyLDE0YTMsMywwLDEsMC0zLTNBMywzLDAsMCwwLDguOTIsMTRabTAtNC42QTEuNiwxLjYsMCwxLDEsNy4zMywxMSwxLjYsMS42LDAsMCwxLDguOTIsOS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; + put 'put ''PSJNMjIuNzgsMTUuMzdsLTUuNCw1LjQtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFBMSwxLDAsMCwwLDIyLjc4LDE1LjM3WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45MywxMWEzLDMsMCwxLDAtMywzQTMsMywwLDAsMCwxMS45MywxMVptLTQuNiwwYTEuNiwxLjYsMCwxLDEsMS42LDEuNkExLjYsMS42LDAsMCwxLDcuMzMsMTFaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4zOCwyMC43N2wtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0''@;'; + put 'put ''VjIxLjE4bC01LjgxLTUuODFhMSwxLDAsMCwwLTEuNDEsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjMwSDRWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkg0''@;'; + put 'put ''QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBj''@;'; + put 'put ''eD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAs''@;'; + put 'put ''MCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwy''@;'; + put 'put ''MS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNDgsNy40OCwwLDAsMSwyMi43OCw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40Niw3''@;'; + put 'put ''LjQ2LDAsMCwxLDMwLDEzLjVaTTguOTIsOGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjkyLDhaTTYsMjdWMjIuOWw2LTYuMDhhMSwxLDAsMCwxLDEuNDEsMEwxNiwxOS4zNSw4LjMyLDI3Wm0yNCwwSDExLjE1bDYuMjMtNi4yMyw1LjQtNS40YTEsMSwwLDAsMSwxLjQxLDBMMzAsMjEuMTha''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRn''@;'; + put 'put ''ZSIvPicpLEwuQ2xyU2hhcGVIYXBweUZhY2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMC44OSIgY3k9IjEzLjg5IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUuMDUiIGN5PSIxMy44OSIgcj0iMiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4xMywyOC4yMWE4LjY3LDguNjcsMCwwLDAsOC4yNi02SDkuODdBOC42Nyw4LjY3LDAsMCwwLDE4LjEzLDI4LjIxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTguODksMTMuODlhMiwyLDAsMSwxLDIsMkEyLDIsMCwwLDEsOC44OSwxMy44OVptOS4yNCwxNC4zMmE4LjY3LDguNjcsMCwwLDEtOC4yNi02SDI2LjM4''@;'; + put 'put ''QTguNjcsOC42NywwLDAsMSwxOC4xMywyOC4yMVptNi45My0xMi4zMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwyNS4wNSwxNS44OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLkNsclNoYXBlTmV1dHJhbEZhY2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBh''@;'; + put 'put ''dGggZD0iTTI0LjA1LDIyLjA2aC0xMmExLDEsMCwwLDAsMCwyaDEyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpt''@;'; + put 'put ''MCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwx''@;'; + put 'put ''NiwwLDAsMCwxOCwyWm03LjA1LDIxLjA2YTEsMSwwLDAsMS0xLDFoLTEyYTEsMSwwLDAsMSwwLTJoMTJBMSwxLDAsMCwxLDI1LjA1LDIzLjA2Wk0yNywxNC4yOGExLjgsMS44LDAsMSwxLTEuOC0xLjhBMS44LDEuOCwwLDAsMSwyNywxNC4yOFptLTE1LjgsMS44YTEuOCwxLjgsMCwxLDEsMS44''@;'; + put 'put ''LTEuOEExLjgsMS44LDAsMCwxLDExLjE2LDE2LjA4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLEwuQ2xyU2hhcGVTYWRGYWNlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAs''@;'; + put 'put ''MzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUuMTYiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTEuNDEiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjE2LDIwYTksOSwwLDAsMC03LjMzLDMuNzgs''@;'; + put 'put ''MSwxLDAsMSwwLDEuNjMsMS4xNiw3LDcsMCwwLDEsMTEuMzEtLjEzLDEsMSwwLDAsMCwxLjYtMS4yQTksOSwwLDAsMCwxOC4xNiwyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwz''@;'; + put 'put ''NCwxOCwxNiwxNiwwLDAsMCwxOCwyWm05LDEyLjI4YTEuOCwxLjgsMCwxLDEtMS44LTEuOEExLjgsMS44LDAsMCwxLDI3LDE0LjI4Wm0tMTUuNTUsMS44YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDExLjQxLDE2LjA4Wm0xNCw3LjUzYTEsMSwwLDAsMS0xLjYsMS4yLDcs''@;'; + put 'put ''NywwLDAsMC0xMS4zMS4xMywxLDEsMCwxLDEtMS42My0xLjE2LDksOSwwLDAsMSwxNC41NC0uMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksTC5DbHJTaGFwZVRodW1ic1VwPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNCwyNmMtMi45MiwxLjgy''@;'; + put 'put ''LTcuMyw0LTkuMzcsNGgtNmExNi42OCwxNi42OCwwLDAsMS0zLjMxLTYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsNCwxNmg5VjZhMi4wNSwyLjA1LDAsMCwxLDEuMjYtMS42OWMuNzcsMiwyLjYyLDYuNTcsNC4yMyw4LjcyQTExLjM5LDExLjM5LDAsMCwwLDI0LDE2LjkxVjE0Ljc4YTkuMTMsOS4x''@;'; + put 'put ''MywwLDAsMS0zLjkxLTNjLTEuODgtMi41MS00LjI5LTkuMTEtNC4zMS05LjE3QTEsMSwwLDAsMCwxNC41OSwyQzEzLjI1LDIuMzgsMTEsMy42LDExLDZ2OEgzYTEsMSwwLDAsMC0xLDEsMjksMjksMCwwLDAsMS40LDkuNjJjMS44OSw1LjQsNC4xLDcuMTQsNC4yLDcuMjJhMSwxLDAsMCwwLC42''@;'; + put 'put ''MS4yMWg2LjQyYzIuNDMsMCw2LjU1LTIsOS4zNy0zLjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMzFIMjdhMSwxLDAsMCwxLTEtMVYxNGExLDEsMCwwLDEsMS0xaDdabS02LTJoNFYxNUgyOFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYzLDEyLjEyQzE3LjUxLDkuMjgsMTQuODgsMiwxNC44OCwyUzEyLDIuODMsMTIsNS4yNVYxNUgyLjIzYTI5LjQ2LDI5LjQ2LDAsMCwwLDEuNDQsOS43NEM1LjYxLDMw''@;'; + put 'put ''LjI3LDcuOCwzMiw3LjgsMzJoNi44NkMxNi45LDMyLDIxLDMwLjA2LDI0LDI4LjMxVjE1LjUxQTEwLjg0LDEwLjg0LDAsMCwxLDE5LjYzLDEyLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNywxM2ExLDEsMCww''@;'; + put 'put ''LDAtMSwxVjMwYTEsMSwwLDAsMCwxLDFoN1YxM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZVRodW1ic0Rvd249KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLDEwYzIuOTItMS44Miw3LjMtNCw5LjM3LTRoNmExNi42OCwxNi42''@;'; + put 'put ''OCwwLDAsMSwzLjMxLDYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsMzIsMjBIMjNWMzBhMi4wNSwyLjA1LDAsMCwxLTEuMjYsMS42OWMtLjc3LTItMi42Mi02LjU3LTQuMjMtOC43MkExMS4zOSwxMS4zOSwwLDAsMCwxMiwxOS4wOXYyLjEzYTkuMTMsOS4xMywwLDAsMSwzLjkxLDNjMS44OCwyLjUx''@;'; + put 'put ''LDQuMjksOS4xMSw0LjMxLDkuMTdhMSwxLDAsMCwwLDEuMTkuNjNDMjIuNzUsMzMuNjIsMjUsMzIuNCwyNSwzMFYyMmg4YTEsMSwwLDAsMCwxLTEsMjksMjksMCwwLDAtMS40LTkuNjJjLTEuODktNS40LTQuMS03LjE0LTQuMi03LjIyQTEsMSwwLDAsMCwyNy43OSw0SDIxLjM3QzE4Ljk0LDQs''@;'; + put 'put ''MTQuODMsNiwxMiw3LjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMiw1SDlhMSwxLDAsMCwxLDEsMVYyMmExLDEsMCwwLDEtMSwxSDJaTTgsN0g0VjIxSDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi4zNywyMy44NGMyLjEyLDIuODQsNC43NiwxMC4wNyw0Ljc2LDEwLjA3UzI0LDMzLjEzLDI0LDMwLjcxVjIxaDkuNzdhMjkuNDYsMjkuNDYsMCwwLDAtMS40NC05Ljc0QzMwLjM5LDUuNjgsMjguMiw0LDI4LjIs''@;'; + put 'put ''NEgyMS4zNUMxOS4xLDQsMTUsNS45LDEyLDcuNjV2MTIuOEExMC44NCwxMC44NCwwLDAsMSwxNi4zNywyMy44NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwyM2ExLDEsMCwwLDAsMS0xVjZBMSwxLDAsMCwwLDks''@;'; + put 'put ''NUgyVjIzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlQ3Jvd249KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik00LDEzLjMzQTEuMzksMS4zOSwwLDEsMCwyLjYsMTQuNzIsMS4zOSwxLjM5LDAsMCwwLDQsMTMuMzNaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuODEsMTUuODRhMjAuMzUsMjAuMzUsMCwwLDAtNC41OCwxLjQzLDIyLjcsMjIuNywwLDAsMC0zLjQ4LDIuMUExNy42OSwxNy42OSwwLDAsMSwyMiwxNi41N2E0Ny42NSw0Ny42NSwwLDAsMS0y''@;'; + put 'put ''LjgtNy42OSwxLDEsMCwwLDAtMS0uNzQsMSwxLDAsMCwwLTEsLjc0LDQ2LjcxLDQ2LjcxLDAsMCwxLTIuOCw3LjY5LDE3LDE3LDAsMCwxLTEuNzYsMi44LDIyLjcsMjIuNywwLDAsMC0zLjQ4LTIuMSwyMC42NiwyMC42NiwwLDAsMC00LjU4LTEuNDMsMSwxLDAsMCwwLTEsLjM5LDEsMSwwLDAs''@;'; + put 'put ''MC0uMDksMS4wNUE1MC4xMyw1MC4xMywwLDAsMSw3LjgyLDMxLjE3YTEsMSwwLDAsMCwxLC44M0gyNy42MmExLDEsMCwwLDAsMS0uODMsNTAuMTUsNTAuMTUsMCwwLDEsNC4yNi0xMy44OSwxLDEsMCwwLDAtLjA5LTEuMDVBMSwxLDAsMCwwLDMxLjgxLDE1Ljg0Wk0yNi43OSwzMEg5LjY0YTU1''@;'; + put 'put ''LjY2LDU1LjY2LDAsMCwwLTMuNC0xMS43MSwxNS43NSwxNS43NSwwLDAsMSwyLjA5Ljc4LDIwLDIwLDAsMCwxLDMuODUsMi40NSwxLDEsMCwwLDAsMS4zOS0uMDksMTkuMjgsMTkuMjgsMCwwLDAsMi42Ny00LDQzLjQ2LDQzLjQ2LDAsMCwwLDItNC44OSw0MS43NCw0MS43NCwwLDAsMCwyLDQu''@;'; + put 'put ''ODksMTkuOTIsMTkuOTIsMCwwLDAsMi42Niw0LDEsMSwwLDAsMCwxLjQuMDksMTkuMjEsMTkuMjEsMCwwLDEsMy44NS0yLjQ1LDE0Ljc3LDE0Ljc3LDAsMCwxLDIuMDktLjc4QTU1LjA3LDU1LjA3LDAsMCwwLDI2Ljc5LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTIiLz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE4LjIyLDYuMzlBMS4zOSwxLjM5LDAsMSwwLDE2Ljg0LDUsMS4zOSwxLjM5''@;'; + put 'put ''LDAsMCwwLDE4LjIyLDYuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTguMjMsMjYuMzRhMS4xMSwxLjExLDAsMSwwLDEuMSwxLjFBMS4xLDEuMSwwLDAsMCwxOC4yMywyNi4zNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik0xMi41OCwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4xLDEuMUExLjEsMS4xLDAsMCwwLDEyLjU4LDI2LjM0WiIvPjxwYXRoIGQ9Ik0yMy44OSwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4xLDEuMUExLjEsMS4xLDAsMCwwLDIzLjg5''@;'; + put 'put ''LDI2LjM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cblxuICA8cGF0aCBkPSJNMi42LDExLjkzQTEuNCwxLjQsMCwxLDAsNCwxMy4zMywxLjQsMS40LDAsMCwwLDIuNiwxMS45M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTguMjIsNi4zOUExLjM5LDEuMzksMCwxLDAsMTYuODQsNSwxLjM5LDEuMzksMCwwLDAsMTgu''@;'; + put 'put ''MjIsNi4zOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTMxLjYzLDE2LjFBMTguNjEsMTguNjEsMCwwLDAsMjgsMTcuMzRhMjEuNTcsMjEuNTcsMCwwLDAtNCwyLjQ5LDE5LjIsMTkuMiwwLDAsMS0yLjI2LTMuNDksNDguOTIsNDguOTIs''@;'; + put 'put ''MCwwLDEtMi41Mi02LjU4LDEsMSwwLDAsMC0xLS43MWgwYTEsMSwwLDAsMC0xLC43MSw0OC40Miw0OC40MiwwLDAsMS0yLjUyLDYuNTgsMTguNjksMTguNjksMCwwLDEtMi4yNiwzLjQ4LDIyLjgxLDIyLjgxLDAsMCwwLTQtMi40OEExOC44MywxOC44MywwLDAsMCw0LjksMTYuMWExLDEsMCww''@;'; + put 'put ''LDAtMSwuMzMsMSwxLDAsMCwwLS4xMywxLjA3LDU1LjksNTUuOSwwLDAsMSw0LDEzLjUsMSwxLDAsMCwwLDEsLjgzaDE5YTEsMSwwLDAsMCwxLS44Myw1NS45LDU1LjksMCwwLDEsNC0xMy41LDEsMSwwLDAsMC0uMTMtMS4wN0ExLDEsMCwwLDAsMzEuNjMsMTYuMVpNMTEuMDgsMjguNTVhMS4x''@;'; + put 'put ''MSwxLjExLDAsMSwxLDEuMS0xLjExQTEuMTEsMS4xMSwwLDAsMSwxMS4wOCwyOC41NVptNy4xNSwwYTEuMTEsMS4xMSwwLDAsMSwwLTIuMjEsMS4xMSwxLjExLDAsMCwxLDAsMi4yMVptNy4xNiwwYTEuMTEsMS4xMSwwLDEsMSwxLjEtMS4xMUExLjExLDEuMTEsMCwwLDEsMjUuMzksMjguNTVa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00Ii8+XG4gICcpLEwuQ2xyU2hhcGVIYXNodGFnPSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzIsMTJIMjUuMzRsMS41NS03Ljc0YTEsMSwwLDAsMC0yLS4zOUwyMy4zLDEySDE1LjExbDEuNTUtNy43NGExLDEs''@;'; + put 'put ''MCwwLDAtMi0uMzlMMTMuMDcsMTJINmExLDEsMCwwLDAsMCwyaDYuNjdsLTEuNiw4SDRhMSwxLDAsMCwwLDAsMmg2LjY2TDkuMTEsMzEuNzRhMSwxLDAsMCwwLC43OSwxLjE3LjY4LjY4LDAsMCwwLC4yLDAsMSwxLDAsMCwwLDEtLjhMMTIuNywyNGg4LjE5bC0xLjU1LDcuNzRhMSwxLDAsMCww''@;'; + put 'put ''LC43OSwxLjE3LjYyLjYyLDAsMCwwLC4xOSwwLDEsMSwwLDAsMCwxLS44TDIyLjkzLDI0SDMwYTEsMSwwLDAsMCwwLTJIMjMuMzNsMS42MS04SDMyYTEsMSwwLDAsMCwwLTJaTTIxLjI5LDIySDEzLjFsMS42MS04SDIyLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMSIvPlxuXG4gIDxwYXRoIGQ9Ik0zMS44NywxMEgyNi4zMmwxLTQuODNBMSwxLDAsMCwwLDI2LjM1LDRoLTJhMSwxLDAsMCwwLTEsLjc4TDIyLjMzLDEwaC01LjRsMS00LjgzQTEsMSwwLDAsMCwxNyw0SDE1YTEsMSwwLDAsMC0xLC43OEwxMywxMEg3YTEsMSwwLDAsMC0xLC44bC0uNDEs''@;'; + put 'put ''MmExLDEsMCwwLDAsMSwxLjJoNS41NUwxMC41LDIyaC02YTEsMSwwLDAsMC0xLC44bC0uNDEsMmExLDEsMCwwLDAsMSwxLjJIOS42OGwtMSw0LjgzYTEsMSwwLDAsMCwxLDEuMTdoMmExLDEsMCwwLDAsLjk1LS43OEwxMy42NywyNmg1LjRsLTEsNC44M0ExLDEsMCwwLDAsMTksMzJoMmExLDEs''@;'; + put 'put ''MCwwLDAsMS0uNzhMMjMuMDUsMjZoNmExLDEsMCwwLDAsMS0uOGwuNC0yYTEsMSwwLDAsMC0xLTEuMkgyMy44N2wxLjYzLThoNmExLDEsMCwwLDAsMS0uOGwuNDEtMkExLDEsMCwwLDAsMzEuODcsMTBabS0xMiwxMmgtNS40bDEuNjQtOGg1LjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0xIi8+XG4gICcpLEwuU29jaWFsU2hhcGVzPXtjcm93bjpMLkNsclNoYXBlQ3Jvd24sc2hhcmU6TC5DbHJTaGFwZVNoYXJlLHN0YXI6TC5DbHJTaGFwZVN0YXIsImhhbGYtc3RhciI6TC5DbHJTaGFwZUhhbGZTdGFyLGJvb2ttYXJrOkwuQ2xyU2hhcGVCb29rbWFyayxlbnZl''@;'; + put 'put ''bG9wZTpMLkNsclNoYXBlRW52ZWxvcGUsY2FsZW5kYXI6TWUuQ2xyU2hhcGVDYWxlbmRhcixldmVudDpNZS5DbHJTaGFwZUV2ZW50LHRhc2tzOkwuQ2xyU2hhcGVUYXNrcyxmbGFnOkwuQ2xyU2hhcGVGbGFnLGluYm94OkwuQ2xyU2hhcGVJbmJveCxoYXNodGFnOkwuQ2xyU2hhcGVIYXNodGFn''@;'; + put 'put ''LGhlYXJ0OkwuQ2xyU2hhcGVIZWFydCwiaGVhcnQtYnJva2VuIjpMLkNsclNoYXBlSGVhcnRCcm9rZW4sInRhbGstYnViYmxlcyI6TC5DbHJTaGFwZVRhbGtCdWJibGVzLCJjaGF0LWJ1YmJsZSI6TC5DbHJTaGFwZUNoYXRCdWJibGUscGljdHVyZTpMLkNsclNoYXBlUGljdHVyZSwiaGFwcHkt''@;'; + put 'put ''ZmFjZSI6TC5DbHJTaGFwZUhhcHB5RmFjZSwibmV1dHJhbC1mYWNlIjpMLkNsclNoYXBlTmV1dHJhbEZhY2UsInNhZC1mYWNlIjpMLkNsclNoYXBlU2FkRmFjZSwidGh1bWJzLXVwIjpMLkNsclNoYXBlVGh1bWJzVXAsInRodW1icy1kb3duIjpMLkNsclNoYXBlVGh1bWJzRG93bn0sT2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KEwuU29jaWFsU2hhcGVzLCJmYXZvcml0ZSIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLlNvY2lhbFNoYXBlcy5zdGFyKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuU29jaWFsU2hhcGVzLCJlbWFpbCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLlNvY2lhbFNo''@;'; + put 'put ''YXBlcy5lbnZlbG9wZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlNvY2lhbFNoYXBlcywiZGF0ZSIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLlNvY2lhbFNoYXBlcy5jYWxlbmRhcikpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJp''@;'; + put 'put ''dHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChMLlNvY2lhbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGVjaG5vbG9neS1zaGFwZXMudHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTCwiX19lc01v''@;'; + put 'put ''ZHVsZSIse3ZhbHVlOiEwfSksTC5DbHJTaGFwZVZNV0FwcD1MLkNsclNoYXBlVk09TC5DbHJTaGFwZVJvdXRlcj1MLkNsclNoYXBlTmV0d29ya1N3aXRjaD1MLkNsclNoYXBlTmV0d29ya1NldHRpbmdzPUwuQ2xyU2hhcGVOZXR3b3JrR2xvYmU9TC5DbHJTaGFwZVRhYmxldD1MLkNsclNoYXBl''@;'; + put 'put ''TW9iaWxlPUwuQ2xyU2hhcGVCYXR0ZXJ5PUwuQ2xyU2hhcGVBcHBsaWNhdGlvbj1MLkNsclNoYXBlQ29kZT1MLkNsclNoYXBlVGVybWluYWw9TC5DbHJTaGFwZURpc3BsYXk9TC5DbHJTaGFwZUNvbXB1dGVyPUwuQ2xyU2hhcGVGbG9wcHk9TC5DbHJTaGFwZVBsdWdpbj1MLkNsclNoYXBlRG93''@;'; + put 'put ''bmxvYWRDbG91ZD1MLkNsclNoYXBlVXBsb2FkQ2xvdWQ9TC5DbHJTaGFwZUV4cG9ydD1MLkNsclNoYXBlSW1wb3J0PUwuQ2xyU2hhcGVTaGllbGRYPUwuQ2xyU2hhcGVTaGllbGQ9TC5DbHJTaGFwZVNoaWVsZENoZWNrPUwuQ2xyU2hhcGVSZXNvdXJjZVBvb2w9TC5DbHJTaGFwZURhdGFDbHVz''@;'; + put 'put ''dGVyPUwuQ2xyU2hhcGVNZW1vcnk9TC5DbHJTaGFwZUNQVT1MLkNsclNoYXBlQnVpbGRpbmc9TC5DbHJTaGFwZUFwcGxpY2F0aW9ucz1MLkNsclNoYXBlQ2x1c3Rlcj1MLkNsclNoYXBlU3RvcmFnZT1MLkNsclNoYXBlSG9zdD1MLkNsclNoYXBlRGFzaGJvYXJkPUwuQ2xyU2hhcGVNb3VzZT1M''@;'; + put 'put ''LkNsclNoYXBlS2V5Ym9hcmQ9TC5DbHJTaGFwZURldmljZXM9TC5DbHJTaGFwZUJhY2t1cD1MLkNsclNoYXBlQmFja3VwUmVzdG9yZT1MLkNsclNoYXBlSGFyZERpc2s9TC5DbHJTaGFwZVJhY2tTZXJ2ZXI9TC5DbHJTaGFwZVdpZmk9TC5DbHJTaGFwZUJ1bmRsZT1MLkNsclNoYXBlQmxvY2tz''@;'; + put 'put ''R3JvdXA9TC5DbHJTaGFwZUJsb2NrPUwuQ2xyU2hhcGVMYXllcnM9TC5DbHJTaGFwZVVuaW5zdGFsbD1MLkNsclNoYXBlSW5zdGFsbD1MLkNsclNoYXBlTm9XaWZpPUwuQ2xyU2hhcGVQaG9uZUhhbmRzZXQ9TC5DbHJTaGFwZVJ1bGVyUGVuY2lsPXZvaWQgMCxMLlRlY2hub2xvZ3lTaGFwZXM9''@;'; + put 'put ''TC5DbHJTaGFwZUZpbGVTaGFyZTI9TC5DbHJTaGFwZUNpQ2Q9TC5DbHJTaGFwZUFuaW1hdGlvbj1MLkNsclNoYXBlVGFwZURyaXZlPUwuQ2xyU2hhcGVNZWRpYUNoYW5nZXI9TC5DbHJDb250cm9sTHVuPUwuQ2xyU2hhcGVQb2Q9TC5DbHJTaGFwZU5vZGU9TC5DbHJTaGFwZU5hbWVzcGFjZT1M''@;'; + put 'put ''LkNsclNoYXBlTm9kZXM9TC5DbHJTaGFwZU5vZGVHcm91cD1MLkNsclNoYXBlU3RvcmFnZUFkYXB0ZXI9TC5DbHJTaGFwZUhvc3RHcm91cD1MLkNsclNoYXBlU3F1aWQ9TC5DbHJTaGFwZUNhcGFjaXRvcj1MLkNsclNoYXBlUmVzaXN0b3I9TC5DbHJTaGFwZUluZHVjdG9yPUwuQ2xyU2hhcGVS''@;'; + put 'put ''YWRhcj1MLkNsclNoYXBlVXNiPUwuQ2xyU2hhcGVRckNvZGU9TC5DbHJTaGFwZUZpbGVTaGFyZT1MLkNsclNoYXBlQ29udGFpbmVyVm9sdW1lPUwuQ2xyU2hhcGVDb250YWluZXI9TC5DbHJTaGFwZUNkRHZkPUwuQ2xyU2hhcGVCYXJDb2RlPUwuQ2xyU2hhcGVBdG9tPUwuQ2xyU2hhcGVBc3Np''@;'; + put 'put ''Z25Vc2VyPUwuQ2xyU2hhcGVQcm9jZXNzT25WTT1MLkNsclNoYXBlQmx1ZXRvb3RoT2ZmPUwuQ2xyU2hhcGVCbHVldG9vdGg9TC5DbHJTaGFwZVNTRD1MLkNsclNoYXBlTlZNZT1MLkNsclNoYXBlSGFyZERyaXZlRGlza3M9TC5DbHJTaGFwZUhhcmREcml2ZT1MLkNsclNoYXBlQWRtaW5pc3Ry''@;'; + put 'put ''YXRvcj1MLkNsclNoYXBlRmxhc2s9TC5DbHJTaGFwZUhlbGl4PUwuQ2xyU2hhcGVEZXBsb3k9TC5DbHJTaGFwZUNsb3VkVHJhZmZpYz1MLkNsclNoYXBlQ2xvdWRTY2FsZT1MLkNsclNoYXBlQ2xvdWROZXR3b3JrPUwuQ2xyU2hhcGVVbmxpbms9TC5DbHJTaGFwZUxpbms9TC5DbHJTaGFwZURp''@;'; + put 'put ''c2Nvbm5lY3Q9TC5DbHJTaGFwZUNvbm5lY3Q9TC5DbHJTaGFwZVVuYXJjaGl2ZT1MLkNsclNoYXBlQXJjaGl2ZT1MLkNsclNoYXBlQ2VydGlmaWNhdGU9dm9pZCAwO3ZhciBCPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpLEU9bWUoIi4vcHJv''@;'; + put 'put ''amVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7TC5DbHJTaGFwZVJ1bGVyUGVuY2lsPSgwLEUuY2xySWNvblNWRykoJzxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBwb2ludHM9IjkgMTcuNDEgOSAyNyAxOC41OSAy''@;'; + put 'put ''NyAxNi41OSAyNSAxMSAyNSAxMSAxOS40MSA5IDE3LjQxIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTM0Ljg3LDMyLjI5LDMyLDI5LjM4VjMySDRWMjcuODVINnYtMS42SDRWMTkuNkg2VjE4SDRWMTEuNkg2VjEw''@;'; + put 'put ''SDRWNC40MUwxOS45NCwyMC4yNlYxNy40NEwzLjcxLDEuMjlBMSwxLDAsMCwwLDIsMlYzM2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjQs''@;'; + put 'put ''MzBoNGEyLDIsMCwwLDAsMi0yVjguN0wyNy43LDQuNDdhMiwyLDAsMCwwLTEuNzYtMWgwYTIsMiwwLDAsMC0xLjc2LDEuMDhMMjIsOC43MlYyOEEyLDIsMCwwLDAsMjQsMzBaTTI0LDkuMmwxLjk0LTMuNzdMMjgsOS4yMVYyNEgyNFptMCwxNi40M2g0djIuNDRIMjRaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuODcsMzIuMjEsMzAsMjcuMzdWOC43NUwyNy43LDQuNTJhMiwyLDAsMCwwLTMuNTQsMEwyMiw4Ljc2VjE5LjQxTDMuNzEsMS4yMUExLDEsMCwwLDAsMiwxLjkyVjEwSDQuMTd2MS42SDJWMThINC4x''@;'; + put 'put ''N3YxLjZIMnY2LjY1SDQuMTd2MS42SDJ2NS4wN2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVpNMTAsMjZWMTYuOTRMMTkuMDcsMjZabTE4LDIuMTFIMjRWMjUuNjhoNFptMC00SDI0VjkuMjVsMS45NC0zLjc3TDI4LDkuMjZaIi8+XG4nKSxMLkNsclNoYXBlUGhvbmVI''@;'; + put 'put ''YW5kc2V0PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuNzMsMzUuNDRhNC43Miw0LjcyLDAsMCwxLTEtLjExLDMzLjkxLDMzLjkxLDAsMCwxLTE2LjYyLTguNzUsMzIuNzEsMzIuNzEsMCwwLDEtOS0xNi4y''@;'; + put 'put ''NUE0LjU4LDQuNTgsMCwwLDEsMi40Niw2LjA1bDQtMy44NUEyLDIsMCwwLDEsOCwxLjY2YTIsMiwwLDAsMSwxLjQ1Ljg3bDUsNy4zOWExLjYsMS42LDAsMCwxLS4xMSwxLjlsLTIuNTEsM2ExOC45NCwxOC45NCwwLDAsMCw0LjE3LDUuODloMGExOS4yNiwxOS4yNiwwLDAsMCw2LjA3LDQuMDls''@;'; + put 'put ''My4xMS0yLjQ3YTEuNjQsMS42NCwwLDAsMSwxLjg2LS4xMmw3LjU1LDQuODhBMiwyLDAsMCwxLDM1LDMwLjJsLTMuOSwzLjg2QTQuNzQsNC43NCwwLDAsMSwyNy43MywzNS40NFpNNy44NCwzLjY0bC00LDMuODVhMi41NCwyLjU0LDAsMCwwLS43NSwyLjQsMzAuNywzMC43LDAsMCwwLDguNDEs''@;'; + put 'put ''MTUuMjYsMzEuOSwzMS45LDAsMCwwLDE1LjY0LDguMjMsMi43NSwyLjc1LDAsMCwwLDIuNS0uNzRsMy45LTMuODYtNy4yOS00LjcxLTMuMzQsMi42NmExLDEsMCwwLDEtLjkyLjE3LDIwLjA2LDIwLjA2LDAsMCwxLTcuMzYtNC43NWgwYTE5LjQ5LDE5LjQ5LDAsMCwxLTQuODctNy4yQTEsMSww''@;'; + put 'put ''LDAsMSwxMCwxNGwyLjctMy4yM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4yMiwyMC42NGEyMC4zNywyMC4zNywwLDAsMCw3LjQsNC43OWwzLjc3LTNhLjY3LjY3LDAsMCwxLC43NiwwbDcsNC41MWEyLDIsMCww''@;'; + put 'put ''LDEsLjMzLDMuMThsLTMuMjgsMy4yNGE0LDQsMCwwLDEtMy42MywxLjA3LDM1LjA5LDM1LjA5LDAsMCwxLTE3LjE1LTlBMzMuNzksMzMuNzksMCwwLDEsMS4xNSw4LjZhMy43OCwzLjc4LDAsMCwxLDEuMS0zLjU1bDMuNC0zLjI4YTIsMiwwLDAsMSwzLjEyLjMyTDEzLjQzLDlhLjYzLjYzLDAs''@;'; + put 'put ''MCwxLDAsLjc1bC0zLjA3LDMuNjlBMTkuNzUsMTkuNzUsMCwwLDAsMTUuMjIsMjAuNjRaIi8+XG4nKSxMLkNsclNoYXBlTm9XaWZpPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjQuNDJhNCw0LDAsMSww''@;'; + put 'put ''LDQsNEE0LDQsMCwwLDAsMTgsMjQuNDJabTAsNmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwxOCwzMC40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjYuMjEsMjEuODVhMSwxLDAsMCwwLS4yMy0xLjQsMTMu''@;'; + put 'put ''NTYsMTMuNTYsMCwwLDAtNS0yLjIzbDMuODcsMy44N0ExLDEsMCwwLDAsMjYuMjEsMjEuODVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDEwLjcyYTIwLjg4LDIwLjg4LDAsMCwwLTQuMTYuNDNsMS43''@;'; + put 'put ''NCwxLjc0YTE5LDE5LDAsMCwxLDIuNDItLjE3QTE4Ljc2LDE4Ljc2LDAsMCwxLDI4LjY0LDE2YTEsMSwwLDAsMCwxLjEyLTEuNjVBMjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNCIgZD0iTTMzLjU1LDguMkEyOC4xMSwyOC4xMSwwLDAsMCw4LjExLDUuMzZMOS42OSw2LjkzQTI2LDI2LDAsMCwxLDMyLjQ1LDkuODdhMSwxLDAsMCwwLDEuMS0xLjY3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUi''@;'; + put 'put ''IGQ9Ik0xLjg0LDQuNzUsNC4yNyw3LjE4Yy0uNjIuMzQtMS4yMy43LTEuODMsMS4xQTEsMSwwLDEsMCwzLjU2LDkuOTRDNC4yNiw5LjQ3LDUsOSw1Ljc0LDguNjVsMy44NywzLjg3QTIwLjU5LDIwLjU5LDAsMCwwLDYuMjMsMTQuNCwxLDEsMCwwLDAsNy4zNiwxNmExOC44MiwxOC44MiwwLDAs''@;'; + put 'put ''MSwzLjc3LTJsNC4xNiw0LjE2QTEzLjUxLDEzLjUxLDAsMCwwLDEwLDIwLjU1YTEsMSwwLDAsMCwxLjE4LDEuNjFBMTEuNTIsMTEuNTIsMCwwLDEsMTcsMjBsMTAuOCwxMC44LDEuNDEtMS40MS0yNi0yNloiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjkuNTQiIHI9IjMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yOS4xOCwxNy43MWwuMTEtLjE3YTEuNTEsMS41MSwwLDAsMC0uNDctMi4xQTIwLjU3LDIwLjU3LDAsMCww''@;'; + put 'put ''LDE4LDEyLjM3Yy0uNTYsMC0xLjExLDAtMS42NS4wN2wzLjIxLDMuMjFhMTcuNDEsMTcuNDEsMCwwLDEsNy42LDIuNTJBMS40OSwxLjQ5LDAsMCwwLDI5LjE4LDE3LjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTMy''@;'; + put 'put ''Ljc2LDkuMzhBMjcuOSwyNy45LDAsMCwwLDEwLjE4LDYuMjdMMTIuODEsOC45QTI0LjY4LDI0LjY4LDAsMCwxLDMxLjEsMTIuMTJhMS40OSwxLjQ5LDAsMCwwLDItLjQ2bC4xMS0uMTdBMS41MSwxLjUxLDAsMCwwLDMyLjc2LDkuMzhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMyw0Ljc1bDMuMSwzLjFBMjcuMjgsMjcuMjgsMCwwLDAsMy4xOCw5LjQyYTEuNTEsMS41MSwwLDAsMC0uNDgsMi4xMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDI0LjY5LDI0LjY5LDAsMCwxLDMuNjctMS45bDMuMTQsMy4x''@;'; + put 'put ''NGEyMC42MywyMC42MywwLDAsMC00LjUzLDIuMDksMS41MSwxLjUxLDAsMCwwLS40NiwyLjFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NkExNy40NiwxNy40NiwwLDAsMSwxNC4yNSwxNmwzLjYsMy42YTEzLjM5LDEzLjM5LDAsMCwwLTYuNzksMS45MywxLjUsMS41LDAsMCwwLS40Niwy''@;'; + put 'put ''LjA5bC4xLjE2YTEuNTIsMS41MiwwLDAsMCwyLjA2LjQ0LDEwLjIsMTAuMiwwLDAsMSw5LS43TDI5LDMwLjc1bDEuNDEtMS40MS0yNi0yNloiLz5cbicpLEwuQ2xyU2hhcGVJbnN0YWxsPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCwwLDAsMCwySDMxVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMwLjkyLDhaIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEwLjMsMTguODdsNyw2Ljg5YTEsMSwwLDAsMCwxLjQsMGw3LTYuODlhMSwxLDAsMCwwLTEuNC0xLjQzTDE5LDIyLjY1VjRhMSwxLDAsMCwwLTIsMFYyMi42NWwtNS4zLTUuMjFhMSwxLDAs''@;'; + put 'put ''MCwwLTEuNCwxLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIu''@;'; + put 'put ''NjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+PHBhdGggZD0iTTMxLDEzLjQzVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBW''@;'; + put 'put ''MTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1bC01LjMt''@;'; + put 'put ''NS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywx''@;'; + put 'put ''MFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEz''@;'; + put 'put ''LDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLEwuQ2xyU2hhcGVVbmluc3RhbGw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42OGwtNS4zLTUuMjNhMSwxLDAs''@;'; + put 'put ''MCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCwwLDAsMCwySDMxVjMwSDVWMTBI''@;'; + put 'put ''OS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMwLjkyLDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42OGwtNS4zLTUuMjNhMSwxLDAsMCwwLTEuNDEs''@;'; + put 'put ''MS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMxLDEzLjQzVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAs''@;'; + put 'put ''MC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTEuMjksMjYuNzJhMSwxLDAsMCwwLDEuNDEsMEwx''@;'; + put 'put ''OCwyMS40OWw1LjMsNS4yM0ExLDEsMCwwLDAsMjQuNywyNS4zbC01LjI4LTUuMjEsNC43NS00LjY5SDIyLjIzYTMuNjUsMy42NSwwLDAsMS0uODEtLjFMMTgsMTguNjhsLTUuMy01LjIzYTEsMSwwLDAsMC0xLjQxLDEuNDJsNS4yOCw1LjIxTDExLjMsMjUuM0ExLDEsMCwwLDAsMTEuMjksMjYu''@;'; + put 'put ''NzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwy''@;'; + put 'put ''SDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwy''@;'; + put 'put ''Mi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLEwuQ2xyU2hhcGVMYXllcnM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVpNNS4zNCwxMi4xNmwxMi42Niw2LDEyLjY2LTZM''@;'; + put 'put ''MTgsNi4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjYuMTZhMSwxLDAsMCwxLS40My0uMUwyLjU3LDE5YTEsMSwwLDEsMSwuODUtMS44MUwxOCwyNC4wNmwxNC41Ny02Ljg5QTEsMSwwLDEsMSwzMy40''@;'; + put 'put ''MywxOWwtMTUsNy4wOUExLDEsMCwwLDEsMTgsMjYuMTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDMyLjA3YTEsMSwwLDAsMS0uNDMtLjFsLTE1LTcuMDlhMSwxLDAsMCwxLC44NS0xLjgxTDE4LDMwbDE0''@;'; + put 'put ''LjU3LTYuODlhMSwxLDAsMSwxLC44NSwxLjgxTDE4LjQzLDMyQTEsMSwwLDAsMSwxOCwzMi4wN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAs''@;'; + put 'put ''MSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xOCwyNi4xNmExLDEs''@;'; + put 'put ''MCwwLDEtLjQzLS4xTDIuNTcsMTlhMSwxLDAsMSwxLC44NS0xLjgxTDE4LDI0LjA2bDE0LjU3LTYuODlBMSwxLDAsMSwxLDMzLjQzLDE5bC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyNi4xNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTMiIGQ9Ik0xOCwzMi4wN2ExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwuODUtMS44MUwxOCwzMGwxNC41Ny02Ljg5YTEsMSwwLDEsMSwuODUsMS44MUwxOC40MywzMkExLDEsMCwwLDEsMTgsMzIuMDdaIi8+XG4nKSxMLkNsclNoYXBlQmxvY2s9KDAsRS5jbHJJY29uU1ZH''@;'; + put 'put ''KSgnPHBhdGggZD0iTTMxLjQyLDkuMDlsLTEzLTZhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTBBMSwxLDAsMCwwLDMxLjQyLDkuMDlaTTE4LDUuMSwyOC42''@;'; + put 'put ''MSwxMCwxOCwxNC45LDcuMzksMTBaTTYsMTEuNTZsMTEsNS4wOHYxNC44TDYsMjYuMzZaTTE5LDMxLjQ0VjE2LjY0bDExLTUuMDh2MTQuOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDE1LjUzVjI2LjM2''@;'; + put 'put ''TDE5LDMxLjQ0VjE2LjY0bDIuNTctMS4xOWEzLjY3LDMuNjcsMCwwLDEtMi4xMS0xLjIyTDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsMy4wOCwxLjQyLDEtMS43NEwxOC40MiwzLjA5YTEsMSwwLDAsMC0uODQsMGwtMTMsNkExLDEsMCwwLDAsNCwxMFYyN2ExLDEsMCwwLDAsLjU4LjkxbDEzLDZh''@;'; + put 'put ''MSwxLDAsMCwwLC44NCwwbDEzLTZBMSwxLDAsMCwwLDMyLDI3VjE1LjUzWk0xNywzMS40NCw2LDI2LjM2VjExLjU2bDExLDUuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; + put 'put ''Ni44NywxLjI2bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkySDMzLjdhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkyTDI5LjA4LDEuMjZBMS4yOCwxLjI4LDAsMCwwLDI2Ljg3LDEuMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''Mi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcuMTIsNy4xMiwwLDAsMSwyMi41''@;'; + put 'put ''LDZhOCw4LDAsMCwxLC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaTTE3LDMx''@;'; + put 'put ''LjQ0LDYsMjYuMzZWMTEuNTZsMTEsNS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDIsOS4wOWwtMTMtNmExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41OC45MWwxMyw2YTEsMSwwLDAs''@;'; + put 'put ''MCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMEExLDEsMCwwLDAsMzEuNDIsOS4wOVpNMTgsMTQuOSw3LjM5LDEwLDE4LDUuMSwyOC42MSwxMFpNMzAsMjYuMzYsMTksMzEuNDRWMTYuNjRsMTEtNS4wOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuMzh2MTFMMTksMzEuNDRWMTYuNjRsMi43OS0xLjI5YTMuNjgsMy42OCwwLDAsMS0yLjI1LTEuMTZMMTgsMTQuOSw3LjM5LDEwLDE4LDUuMWwzLDEuMzksMS0xLjc1TDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0''@;'; + put 'put ''LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu''@;'; + put 'put ''MTIsMjEuMTMsMTFhMS4yNywxLjI3LDAsMCwwLDEuMSwxLjkxSDMzLjY4QTEuMjcsMS4yNywwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjEyQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcuMTIsNy4xMiwwLDAsMSwyMi41LDZhOCw4LDAsMCwx''@;'; + put 'put ''LC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFw''@;'; + put 'put ''ZUJsb2Nrc0dyb3VwPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIuNjgsMTguNzZhMSwxLDAsMCww''@;'; + put 'put ''LS41OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZabS0yLjgxLjkxTDI1LjYx''@;'; + put 'put ''LDIyLDIwLjUsMTkuNjdsNS4xMS0yLjM1Wk0xOC4xLDQuMDhsNS4xMSwyLjM1TDE4LjEsOC43OCwxMyw2LjQzWk0xMC42LDE3LjMxbDUuMTEsMi4zNUwxMC42LDIyLDUuNDksMTkuNjdabTYuNSwxMS40OS02LjUsMy02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEsMCwwLDAsMTEsMjRsNi4wOC0y''@;'; + put 'put ''LjhaTTExLjYsMTUuNTdoMFY4bDYuMDgsMi44YTEsMSwwLDAsMCwuODQsMEwyNC42LDh2Ny41OGgwbC02LjUsM1pNMzIuMTEsMjguODFsLTYuNSwzLTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3aC0ydjBsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCwwbC4yNC0uMTFhNC4xNyw0LjE3LDAsMCwxLC4yOS0uNjVsMS4zMy0yLjMxLTIuMjgsMUwxMyw2LjQzbDUuMS0yLjM1LDMuNDcs''@;'; + put 'put ''MS42LDEtMS43M0wxOC41LDIuMDhhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwzLjI2YTEs''@;'; + put 'put ''MSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MVYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40OSwxOS42N1ptMCwxNC40OS02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEsMCwwLDAsMTEsMjRsNi4wOC0yLjgs''@;'; + put 'put ''MCw3LjZabTE1LTE0LjQ4LDUuMTEsMi4zNUwyNS42MSwyMiwyMC41LDE5LjY3Wm0wLDE0LjQ5LTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFs''@;'; + put 'put ''ZXJ0ZWQiIC8+XG48cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdWMTIuN2E3LjU4LDcuNTgsMCwwLDEtMi0xLjUxdjQuMzlsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCwwTDIzLDguNzJh''@;'; + put 'put ''Ny4wNSw3LjA1LDAsMCwxLS40Ny0ybC00LjQ3LDJMMTMsNi40M2w1LjEtMi4zNSw0LjQ0LDJzMC0uMDYsMC0uMDlhNy41NSw3LjU1LDAsMCwxLC4yNy0ybC00LjMtMmExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41''@;'; + put 'put ''OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlpNMTAuNiwxNy4zMWw1LjExLDIuMzVM''@;'; + put 'put ''MTAuNiwyMiw1LjQ5LDE5LjY3Wm0wLDE0LjQ5LTYuNS0zVjIxLjIzTDEwLjE4LDI0QTEsMSwwLDAsMCwxMSwyNGw2LjA4LTIuOCwwLDcuNlptMTUtMTQuNDgsNS4xMSwyLjM1TDI1LjYxLDIyLDIwLjUsMTkuNjdabTAsMTQuNDktNi41MS0zVjIxLjIyTDI1LjE5LDI0QTEsMSwwLDAsMCwyNiwy''@;'; + put 'put ''NGw2LjA4LTIuOCwwLDcuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG48Y2lyY2xlIGN4PSIzMC4wMyIgY3k9IjYuMDMiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIuNjgsMTguNzZhMSwxLDAsMCwwLS41''@;'; + put 'put ''OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZaTTI1LjYxLDIyLDIwLjUsMTku''@;'; + put 'put ''NjdsNS4xMS0yLjM1LDUuMTEsMi4zNVptLTEtNi40NC02LjQ0LDNWMTAuODdhMSwxLDAsMCwwLC4zNS0uMDhMMjQuNiw4djcuNThaTTE4LjEsNC4wOGw1LjExLDIuMzVMMTguMSw4Ljc4LDEzLDYuNDNaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40OSwxOS42N1ptNi41LDExLjQ5''@;'; + put 'put ''LTYuNSwzaDBWMjQuMTFoMEExLDEsMCwwLDAsMTEsMjRsNi4wOC0yLjhabTE1LDAtNi40NiwzVjI0LjExQTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMzMuNTMsMTguNzYsMjYuNiwxNS41N3Yw''@;'; + put 'put ''aC0ydjBsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOGwuMTQtLjA2QTMuMjMsMy4yMywwLDAsMSwxOSwxMGwxLjI4LTIuMjItMi4xNCwxTDEzLDYuNDNsNS4xLTIuMzUsMy4zOSwxLjU2LDEtMS43My00LTEuODNhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCww''@;'; + put 'put ''LDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MVYxOS42N0ExLDEsMCww''@;'; + put 'put ''LDAsMzMuNTMsMTguNzZabS0yOCwuOTEsNS4xMS0yLjM2LDUuMTEsMi4zNUwxMC42LDIyWk0xMC42LDMxLjhWMjQuMTFBMS4wOCwxLjA4LDAsMCwwLDExLDI0bDYuMDgtMi44LDAsNy42Wm05LjktMTIuMTMsNS4xMS0yLjM1LDUuMTEsMi4zNUwyNS42MSwyMlpNMjUuNjQsMzEuOFYyNC4xMUEu''@;'; + put 'put ''ODkuODksMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuPHBhdGggZD0iTTI2Ljg5LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCwwLDAsMjIuMjcsMTNIMzMuNzJhMS4yNywx''@;'; + put 'put ''LjI3LDAsMCwwLDEuMS0xLjkxTDI5LjEsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODksMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG48cGF0aCBkPSJNMzMuNTMsMTguNzYsMjYuNiwxNS41N1Yx''@;'; + put 'put ''Mi42OWE3LjY2LDcuNjYsMCwwLDEtMi0xLjQ3djQuMzRsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOEwyMyw4LjczYTcuNjUsNy42NSwwLDAsMS0uNDgtMmwtNC40MiwyTDEzLDYuNDNsNS4xLTIuMzUsNC4zOCwyVjZhNy41NSw3LjU1LDAsMCwxLC4yNy0yTDE4LjUsMi4w''@;'; + put 'put ''OGExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0z''@;'; + put 'put ''LjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlptLTI4LC45MSw1LjExLTIuMzYsNS4xMSwyLjM1TDEwLjYsMjJaTTEwLjYsMzEuOFYyNC4xMUExLjA4LDEuMDgsMCwwLDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTkuOS0xMi4xMyw1LjExLTIuMzUsNS4x''@;'; + put 'put ''MSwyLjM1TDI1LjYxLDIyWk0yNS42NCwzMS44VjI0LjExQS44OS44OSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuPGNpcmNsZSBjeD0iMjkuOTgiIGN5PSI2IiByPSI1IiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlQnVuZGxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuNDMsOC4z''@;'; + put 'put ''NWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAsMCwuNTctLjlWOS4yNUExLDEsMCwwLDAsMzIuNDMsOC4zNVpNMTksNC4xNSwyOS45Myw5''@;'; + put 'put ''LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWk01LDEyLjEzLDE2LDE3LjRWMzEuNDZMNSwyNi4yWk0xOCwzMS40NVYxNy4zNmwxMy02LjI5djE0LjFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuNDMsOC4zNWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAsMCwuNTctLjlWOS4yNUExLDEs''@;'; + put 'put ''MCwwLDAsMzIuNDMsOC4zNVpNMTksNC4xNSwyOS45Myw5LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWm0xLDE1LjhWMTcuMzZsMTMtNi4yOXYxNC4xWiIvPlxuJyksTC5DbHJTaGFwZVdpZmk9KDAsRS5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMy41NSw4LjJhMjguMSwyOC4xLDAsMCwwLTMxLjExLjA4QTEsMSwwLDEsMCwzLjU2LDkuOTRhMjYuMTEsMjYuMTEsMCwwLDEsMjguODktLjA3LDEsMSwwLDAsMCwxLjEtMS42N1oiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTguMDUsMTAuNzJBMjAuNzQsMjAuNzQsMCwwLDAsNi4yMywxNC40LDEsMSwwLDAsMCw3LjM2LDE2LDE4Ljg1LDE4Ljg1LDAsMCwxLDI4LjY0LDE2YTEsMSwwLDAsMCwxLjEyLTEuNjVB''@;'; + put 'put ''MjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDE3LjlhMTMuNTEsMTMuNTEsMCwwLDAtOCwyLjY0LDEsMSwwLDAsMCwxLjE4LDEuNjEsMTEuNTYsMTEu''@;'; + put 'put ''NTYsMCwwLDEsMTMuNjItLjA4QTEsMSwwLDEsMCwyNiwyMC40NiwxMy41MiwxMy41MiwwLDAsMCwxOC4wNSwxNy45WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOCwyNC40MmE0LDQsMCwxLDAsNCw0QTQsNCww''@;'; + put 'put ''LDAsMCwxOCwyNC40MlptMCw2YTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDMwLjQyWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBjeD0iMTgiIGN5PSIyOS41NCIgcj0iMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLjc2LDkuMzhhMjcuODcsMjcuODcsMCwwLDAtMjkuNTcsMCwxLjUxLDEuNTEsMCwwLDAtLjQ4LDIuMTFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NiwyNC42OCwyNC42OCwwLDAsMSwyNi4yNiwwLDEuNDksMS40''@;'; + put 'put ''OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwzMi43Niw5LjM4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTI4LjgyLDE1LjQ0YTIwLjU5LDIwLjU5LDAsMCwwLTIxLjcsMCwxLjUxLDEuNTEsMCww''@;'; + put 'put ''LDAtLjQ2LDIuMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDE3LjQsMTcuNCwwLDAsMSwxOC4zNiwwLDEuNDksMS40OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwyOC44MiwxNS40NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0yNC44OCwyMS40OWExMy40MSwxMy40MSwwLDAsMC0xMy44MiwwLDEuNSwxLjUsMCwwLDAtLjQ2LDIuMDlsLjEuMTZhMS41MiwxLjUyLDAsMCwwLDIuMDYuNDQsMTAuMjcsMTAuMjcsMCwwLDEsMTAuNDIsMCwxLjUyLDEuNTIsMCwwLDAsMi4wNi0uNDVs''@;'; + put 'put ''LjEtLjE2QTEuNDksMS40OSwwLDAsMCwyNC44OCwyMS40OVoiLz5cbicpLEwuQ2xyU2hhcGVSYWNrU2VydmVyPSgwLEUuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiB4PSIxMCIgeT0iMTciIHdp''@;'; + put 'put ''ZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxl''@;'; + put 'put ''cnRlZCIgZD0iTTE4LjY0LDExQTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTB2MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgzMlYyMUg0VjE1''@;'; + put 'put ''SDIwLjU4QTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41Nkg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTQsMjlWMjNIMzJ2NloiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRB''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIHg9IjYiIHk9IjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJh''@;'; + put 'put ''ZGdlZCIgeD0iMTAiIHk9IjE3IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiB4PSI2IiB5PSIyNSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC02LS1iYWRnZWQiIGQ9Ik0xMCwxMUgyNHYtLjUxQTcuNDgsNy40OCwwLDAsMSwyMy4xMyw5SDEwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjQ3''@;'; + put 'put ''LDcuNDcsMCwwLDEtMi42OC0uNUg0VjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDYsNy40NiwwLDAsMSwzMCwxMy41Wk00LDE1SDMydjZI''@;'; + put 'put ''NFpNNCwyOVYyM0gzMnY2WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSI5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMTAiIHk9IjkiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIx''@;'; + put 'put ''MCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAs''@;'; + put 'put ''MCwzMiw1Wk00LDdIMzJ2Nkg0Wm0wLDhIMzJ2Nkg0Wk00LDI5VjIzSDMydjZaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMiwz''@;'; + put 'put ''MGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTksOS44OSwxOS41Niw5SDEw''@;'; + put 'put ''VjdIMjAuNzFsMS43My0zSDRBMiwyLDAsMCwwLDIsNnY2SDE4LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5Wk04LDlINlY3SDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzMuNjgs''@;'; + put 'put ''MTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTRIMnY4SDM0VjE1LjM4Wk04LDE5SDZWMTdIOFptMTYsMEgxMFYxN0gyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxl''@;'; + put 'put ''cnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMiwxNHY4SDM0VjE0Wm02LDVINlYxN0g4Wm0xNiwwSDEwVjE3SDI0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0yLDMw''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNEgyWm04LTNIMjR2MkgxMFpNNiwyN0g4djJINloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMjMuMTMsOUgxMFY3SDIyLjU3YTcu''@;'; + put 'put ''NTIsNy41MiwwLDAsMS0uMDctMSw3LjQ5LDcuNDksMCwwLDEsLjI4LTJINEEyLDIsMCwwLDAsMiw2djZIMjUuNTFBNy41Miw3LjUyLDAsMCwxLDIzLjEzLDlaTTgsOUg2VjdIOFoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yLDIySDM0VjE0SDJabTgtNUgyNHYySDEwWk02LDE3SDh2Mkg2WiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2djZIMzRWNkEyLDIsMCwwLDAsMzIsNFpNOCw5SDZWN0g4Wk0yNCw5SDEwVjdIMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0zIiBkPSJNMiwzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4nKSxMLkNsclNoYXBlSGFyZERpc2s9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIwIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNCIg''@;'; + put 'put ''d2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zNCwyMS4wOGwtMS40LTUuNjhIMzAuNTFsMS40OSw2VjI5SDRWMjEuNDRMNy4wNiw5aDEyLjVsMS4x''@;'; + put 'put ''NS0ySDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjEuMzFBMSwxLDAsMCwwLDM0LDIxLjA4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iMjAiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzQsMjEuMDgsMzIsMTMuMjFh''@;'; + put 'put ''Ny40OSw3LjQ5LDAsMCwxLTIsLjI5bDIsNy45NFYyOUg0VjIxLjQ0TDcuMDYsOUgyMy4xM2E3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIsMjEuMDhhMSwxLDAsMCwwLDAsLjI0VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMS4zMUEx''@;'; + put 'put ''LDEsMCwwLDAsMzQsMjEuMDhaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNCwyMS4wOCwzMC44Niw4LjQzQTIsMiwwLDAsMCwyOC45NCw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjEuMzFB''@;'; + put 'put ''MSwxLDAsMCwwLDM0LDIxLjA4Wk00LDI5VjIxLjQ0TDcuMDYsOUgyOC45M0wzMiwyMS40NFYyOVoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI2IiB5PSIyMCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0''@;'; + put 'put ''ZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzIuNTgsMTUuNEgyMi4yM0Ez''@;'; + put 'put ''LjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0i''@;'; + put 'put ''TTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIg''@;'; + put 'put ''ZD0iTTMyLDEzLjIxQTcuNDcsNy40NywwLDAsMSwyMi41Nyw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRn''@;'; + put 'put ''ZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjg2LDguNDNBMiwyLDAsMCwwLDI4Ljk0LDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIuMjksMjBIMzMuNzFaIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMiwyMnY3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMlptMjgsNUgyNlYyNWg0WiIvPlxuJyksTC5DbHJTaGFwZUJhY2t1cFJlc3RvcmU9KDAsRS5jbHJJY29uU1ZHKSgnPHJl''@;'; + put 'put ''Y3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMTlhMSwxLDAsMSwwLDIs''@;'; + put 'put ''MFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMxLjU4LDE1LjRIMjkuNDZjMSwy''@;'; + put 'put ''Ljg1LDIuMzEsNi4zNywyLjU0LDcuMDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4x''@;'; + put 'put ''MiwzNCwyMiwzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gz''@;'; + put 'put ''My42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iMjIiIHdp''@;'; + put 'put ''ZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMTMsOS45MiwxNyw2VjE5YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVhMSwxLDAsMCwwLC43MS4yOWwuMTEsMGE3LjQ2LDcuNDYsMCwwLDEtMS4yNS0zLjUyTDE4LDIuMTYsMTEuNjEsOC41QTEsMSww''@;'; + put 'put ''LDAsMCwxMyw5LjkyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCwwLDEsMjUuNTEsMTJIMjF2Mmg3''@;'; + put 'put ''Ljk1QzMwLDE2Ljk0LDMxLjcyLDIxLjY1LDMyLDIyLjQ4VjMwSDRWMjIuNDhDNC4yOCwyMS42NSw3LjA1LDE0LDcuMDUsMTRIMTVWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMiwyMiwyLDIyLjEsMiwyMi4zM1YzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjIu''@;'; + put 'put ''MzNDMzQsMjIuMSwzNCwyMiwzMC44NywxMy40NVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICA8cmVj''@;'; + put 'put ''dCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMjYiIHk9IjI2IiB3aWR0aD0i''@;'; + put 'put ''NCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTEzLDkuOTIsMTcsNlYxOWExLDEsMCwxLDAsMiwwVjZsNCwzLjk1QTEsMSwwLDEsMCwyNC4zOCw4LjVMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAs''@;'; + put 'put ''MCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXYyaDcuOTVDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYy''@;'; + put 'put ''Mi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0LDEzLjM3WiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDVIMjZWMjdoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMThhMSwxLDAsMSwwLDIsMFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyMi4yM0EzLjYyLDMuNjIsMCwwLDEsMjEsMTUuMTZWMThhMywzLDAsMSwxLTYsMFYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMs''@;'; + put 'put ''Mi4wNywyMkgzMy45M0MzMy43OSwyMS40OSwzMy4yOCwyMC4wNywzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1i''@;'; + put 'put ''YWRnZWQiIGQ9Ik0yLDI0djZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw1SDI2VjI3aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTEzLDkuOTIsMTcsNlYxOGEx''@;'; + put 'put ''LDEsMCwxLDAsMiwwVjZsNCwzLjk1YTEsMSwwLDAsMCwuNzEuMjlsLjExLDBhNy40Niw3LjQ2LDAsMCwxLTEuMjUtMy41MkwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCwwLDEsMjUuNTEsMTJIMjF2NmEzLDMsMCwxLDEtNiwwVjEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIy''@;'; + put 'put ''SDMzLjkzQzMzLjc3LDIxLjQzLDMzLjE1LDE5LjcsMzAuODcsMTMuNDVaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMiwyNHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNFptMjgsNUgyNlYyN2g0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh''@;'; + put 'put ''dGgtMiIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXY2YTMsMywwLDEsMS02LDBWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMzMuOTNDMzMuNzcsMjEuNDMsMzMuMTQsMTkuNjksMzAuODQs''@;'; + put 'put ''MTMuMzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTMsOS45MiwxNyw2VjE4YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVBMSwxLDAsMSwwLDI0LjM4LDguNUwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45''@;'; + put 'put ''MloiLz5cbicpLEwuQ2xyU2hhcGVCYWNrdXA9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJl''@;'; + put 'put ''Y3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xOCwxOS44NGw0LjQ3LTQuNDRoLS4yM2EzLjY3LDMuNjcsMCwwLDEtMi0uNjFMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyOS40NmMxLDIuODUsMi4zMSw2LjM3LDIuNTQsNy4wOFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDkuNThhMywzLDAsMCwxLS4xNC0ySDcuMDdhMS45MiwxLjkyLDAsMCww''@;'; + put 'put ''LTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEyLDM0LDIyLDMxLjU4LDE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHJl''@;'; + put 'put ''Y3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTItLWJhZGdlZCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEy''@;'; + put 'put ''LjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0zMC44NywxMy40NWE3LjU1LDcuNTUs''@;'; + put 'put ''MCwwLDEtLjg3LjA1LDcuNDYsNy40NiwwLDAsMS0zLjM1LS44LDMsMywwLDAsMS0uMjQsMS4zaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQtMkg3LjA3YTEuOTIsMS45Miww''@;'; + put 'put ''LDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg3LDEzLjQ1WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIg''@;'; + put 'put ''eT0iMjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIlxuICAgICAgICAgICAgICAgIGQ9Ik0zMC44NCwxMy4zN0ExLjk0LDEuOTQsMCwwLDAsMjguOTMsMTJIMjYuNTVhMywzLDAsMCwx''@;'; + put 'put ''LS4xNCwyaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQtMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwy''@;'; + put 'put ''LDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0LDEzLjM3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2''@;'; + put 'put ''VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTYuNTgsMjEuMjYsMTAuMiwxNC45MUEzLDMsMCwwLDEs''@;'; + put 'put ''OS40NCwxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgxNy4zM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yLDI0djZh''@;'; + put 'put ''MiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw0SDI2VjI2aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMTguNjYsMjJIMzMuOTNjLS4xNS0uNTEtLjY1LTEuOTMt''@;'; + put 'put ''Mi4zNS02LjZIMjUuM2wtNS44OSw1Ljg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTE4LDE5Ljg0bDQuNDctNC40NGgtLjIzYTMuNjQsMy42NCwwLDAsMS0yLS42MUwxOSwxNlY0YTEs''@;'; + put 'put ''MSwwLDEsMC0yLDBWMTZsLTQtMy45NWExLDEsMCwwLDAtMS40MSwxLjQyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwx''@;'; + put 'put ''LjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQi''@;'; + put 'put ''IGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTIt''@;'; + put 'put ''LWJhZGdlZCIgZD0iTTE2LjU4LDIxLjI2LDEwLjIsMTQuOTFBMywzLDAsMCwxLDkuNDQsMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMTcuMzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFk''@;'; + put 'put ''Z2VkIiBkPSJNMTguNjYsMjJIMzMuOTNjLS4xNy0uNTctLjc5LTIuMy0zLjA2LTguNTVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNSw3LjQ2LDcuNDYsMCwwLDEtMy4zNS0uOCwzLDMsMCwwLDEtLjg2LDIuMjFsLTYuMzgsNi4zNVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAs''@;'; + put 'put ''MSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTkuNDEsMjEuMjZsLS43NC43NEgzMy45M2MtLjE3LS41''@;'; + put 'put ''Ny0uNzktMi4zMS0zLjA5LTguNjNBMS45NCwxLjk0LDAsMCwwLDI4LjkzLDEySDI2LjU1YTMsMywwLDAsMS0uNzYsMi45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xNi41OCwyMS4yNiwxMC4yLDE0LjkxQTMsMyww''@;'; + put 'put ''LDAsMSw5LjQ0LDEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIySDE3LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwy''@;'; + put 'put ''SDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbicpLEwuQ2xyU2hhcGVEZXZpY2VzPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMTNIMjRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCww''@;'; + put 'put ''LDAsMiwyaDhhMiwyLDAsMCwwLDItMlYxNUEyLDIsMCwwLDAsMzIsMTNabTAsMlYyNkgyNFYxNVpNMjQsMzBWMjcuNmg4VjMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yMCwyMkg0VjZIMjh2NWgyVjZhMiwy''@;'; + put 'put ''LDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMkgyMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjAsMjZIOWExLDEsMCwwLDAsMCwySDIwWiIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDEzSDI0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWMTVBMiwyLDAsMCwwLDMyLDEzWm0wLDJWMjhIMjRWMTVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjgsNEg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMmg4djJIOS4zMkExLjIsMS4yLDAsMCwwLDgsMjdhMS4yLDEuMiwwLDAsMCwxLjMyLDFIMTkuOTJ2LS4zN0gyMFYyMkg0VjZIMjh2NWgyVjZBMiwyLDAsMCwwLDI4LDRa''@;'; + put 'put ''Ii8+XG4nKSxMLkNsclNoYXBlS2V5Ym9hcmQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw4SDRhMiwyLDAsMCwwLTIsMlYyNmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCww''@;'; + put 'put ''LDMyLDhabTAsMThINFYxMEgzMloiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMiIHg9IjExIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE1IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjE5IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjIzIiB5PSIxMyIg''@;'; + put 'put ''d2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTgiIHg9IjciIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMTEiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjE1IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiB4PSIxOSIgeT0iMTci''@;'; + put 'put ''IHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIgeD0iMjMiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI3IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiB4PSIyNyIgeT0iMjIiIHdpZHRoPSIxLjk0IiBoZWlnaHQ9IjIiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgeD0iNyIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTEu''@;'; + put 'put ''MTMiIHk9IjIyIiB3aWR0aD0iMTMuNzUiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCww''@;'; + put 'put ''LDAsMzIsOFpNMTksMTNoMnYySDE5Wm0wLDRoMnYySDE5Wm0tNC00aDJ2MkgxNVptMCw0aDJ2MkgxNVptLTQtNGgydjJIMTFaTTksMjRIN1YyMkg5Wm0wLTVIN1YxN0g5Wm0wLTRIN1YxM0g5Wm0yLDJoMnYySDExWm0xMy44OCw3SDExLjEzVjIySDI0Ljg4Wk0yNSwxOUgyM1YxN2gyWm0wLTRI''@;'; + put 'put ''MjNWMTNoMlptMy45NCw5SDI3VjIyaDEuOTRaTTI5LDE5SDI3VjE3aDJabTAtNEgyN1YxM2gyWiIvPlxuJyksTC5DbHJTaGFwZU1vdXNlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMzRBMTAsMTAsMCww''@;'; + put 'put ''LDEsOCwyNFYxMmExMCwxMCwwLDAsMSwyMCwwVjI0QTEwLDEwLDAsMCwxLDE4LDM0Wk0xOCw0YTgsOCwwLDAsMC04LDhWMjRhOCw4LDAsMCwwLDE2LDBWMTJBOCw4LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMiIgZD0iTTE4LDE1YTEsMSwwLDAsMS0xLTFWMTBhMSwxLDAsMCwxLDIsMHY0QTEsMSwwLDAsMSwxOCwxNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTEwLDEwLDAsMCwwLDgsMTJWMjRhMTAsMTAsMCww''@;'; + put 'put ''LDAsMjAsMFYxMkExMCwxMCwwLDAsMCwxOCwyWm0xLjMsMTEuNDRhMS4zLDEuMywwLDAsMS0yLjYsMFYxMGExLjMsMS4zLDAsMCwxLDIuNiwwWiIvPlxuJyksTC5DbHJTaGFwZURhc2hib2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIgZD0iTTI1LjE4LDEyLjMybC01LjkxLDUuODFhMywzLDAsMSwwLDEuNDEsMS40Mmw1LjkyLTUuODFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCw0LjI1QTE2LjQ5LDE2LjQ5LDAs''@;'; + put 'put ''MCwwLDUuNCwzMS40bC4zLjM1SDMwLjNsLjMtLjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTExLjM0LDI1LjVINi42NmExNC40MywxNC40MywwLDAsMS0zLjExLTcuODRIN3YtMkgzLjU1QTE0LjQxLDE0LjQxLDAsMCwxLDcsMTEuMjlsMi40NSwyLjQ1LDEuNDEtMS40MUw4LjQzLDku''@;'; + put 'put ''ODdBMTQuNDEsMTQuNDEsMCwwLDEsMTcsNi4yOXYzLjVoMlY2LjNhMTQuNDcsMTQuNDcsMCwwLDEsMTMuNCwxMy42MUgyOC45MnYyaDMuNTNBMTQuNDMsMTQuNDMsMCwwLDEsMjkuMzQsMjkuNzVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTUuODUsMTguNjlhMywzLDAsMSwwLDQuODMuODVsNS45Mi01LjgxLTEuNDEtMS40MS01LjkxLDUuODFBMywzLDAsMCwwLDE1Ljg1LDE4LjY5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjU4LDEzYTcuNDUsNy40NSwwLDAsMS0yLjA2LjQ0LDE0LjQsMTQuNCwwLDAsMSwxLjkzLDYuNDNIMjguOTJ2MmgzLjUzYTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEsNy44NEg2LjY2YTE0LjQzLDE0LjQzLDAsMCwx''@;'; + put 'put ''LTMuMTEtNy44NEg3di0ySDMuNTVBMTQuNDEsMTQuNDEsMCwwLDEsNywxMS4yOWwyLjQ1LDIuNDUsMS40MS0xLjQxTDguNDMsOS44N0ExNC40MSwxNC40MSwwLDAsMSwxNyw2LjI5djMuNWgyVjYuM0ExNC40MSwxNC40MSwwLDAsMSwyMi41OCw3YTcuNTIsNy41MiwwLDAsMS0uMDgtMSw3LjUy''@;'; + put 'put ''LDcuNTIsMCwwLDEsLjA5LTEuMDlBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw0LjI1QTE2LjQ5LDE2LjQ5LDAsMCwwLDUuNCwzMS40bC4zLjM1SDMwLjNsLjMt''@;'; + put 'put ''LjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTguNiw5LjQ4LTUuOTIsNS44MWEzLDMsMCwxLDEtMS40MS0xLjQybDUuOTEtNS44MVptLTIzLDYuMTdIN3YySDMuNTZjMC0uMzktLjA1LS43Ny0uMDUtMS4xN1MzLjUzLDIwLjE4LDMuNTUsMTkuOVptNC44OC0xMCwyLjQ2LDIuNDZMOS40''@;'; + put 'put ''NywxMy43NCw3LDExLjI5QTE0LjU3LDE0LjU3LDAsMCwxLDguNDMsOS44N1pNMTksOS43OUgxN1Y2LjI5Yy4zMiwwLC42MywwLDEsMHMuNywwLDEsLjA1Wk0zMi40OSwyMC43NGMwLC4zOSwwLC43OS0uMDUsMS4xN0gyOC45MnYtMmgzLjUzQzMyLjQ3LDIwLjE4LDMyLjQ5LDIwLjQ2LDMyLjQ5''@;'; + put 'put ''LDIwLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIuNTgsMTNhNy40Niw3LjQ2LDAsMCwxLTEwLTguMTJBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wu''@;'; + put 'put ''My0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNlpNMTcsNi4yOWMuMzIsMCwuNjMsMCwxLDBzLjcsMCwxLC4wNXYzLjVIMTdaTTcsMjEuOTFIMy41NmMwLS4zOS0uMDUtLjc3LS4wNS0xLjE3czAtLjU2LDAtLjgzSDdabTIuNTEtOC4xNkw3LDExLjI5QTE0LjU3LDE0LjU3LDAsMCwxLDgu''@;'; + put 'put ''NDMsOS44N2wyLjQ2LDIuNDZabTEwLjYyLDkuMTlhMywzLDAsMSwxLS44Mi00LjgxbDUuOTEtNS44MSwxLjQxLDEuNDEtNS45Miw1LjgxQTMsMywwLDAsMSwyMC4wOSwyMi45M1ptMTIuMzUtMUgyOC45MnYtMmgzLjUzYzAsLjI4LDAsLjU1LDAsLjgzUzMyLjQ3LDIxLjUyLDMyLjQ0LDIxLjkx''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbicpLEwuQ2xyU2hhcGVIb3N0PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjQuM2EyLjQ4LDIuNDgsMCwxLDAsMi40OCwyLjQ3QTIuNDgsMi40OCwwLDAsMCwxOCwyNC4zWm0wLDMuNmExLjEzLDEuMTMsMCwxLDEsMS4xMy0xLjEyQTEuMTMsMS4xMywwLDAsMSwxOCwyNy45WiIvPjxy''@;'; + put 'put ''ZWN0IHg9IjEzLjUiIHk9IjIwLjciIHdpZHRoPSI5IiBoZWlnaHQ9IjEuNDQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI1LjY1LDMuNkgxMC4zNUExLjM1LDEuMzUsMCwwLDAsOSw0Ljk1VjMyLjRIMjdW''@;'; + put 'put ''NC45NUExLjM1LDEuMzUsMCwwLDAsMjUuNjUsMy42Wm0tLjQ1LDI3SDEwLjhWNS40SDI1LjJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjEyLjYiIHk9IjcuMiIgd2lkdGg9IjEwLjgiIGhlaWdodD0iMS40''@;'; + put 'put ''NCIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxMi42IiB5PSIxMC44IiB3aWR0aD0iMTAuOCIgaGVpZ2h0PSIxLjQ0Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIuOCwyLjgsMi44czIuOC0xLjIsMi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEuMi0xLjIsMS4ycy0xLjItMC42''@;'; + put 'put ''LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjEzIiB5PSIyMSIgd2lkdGg9IjEwIiBoZWlnaHQ9''@;'; + put 'put ''IjEuNiIvPlxuICAgICAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBwb2ludHM9IjIxLjMsNiAxMiw2IDEyLDcuNiAyMC40LDcuNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMTIsMTEuNmg2LjZjMC0wLjYsMC4yLTEuMSwwLjQtMS42aC03VjExLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0yNiwxNS40VjMySDEwVjRoMTIuNWwxLjEtMkg5LjVDOC43LDIsOCwyLjcsOCwzLjVWMzRoMjBWMTUuNEgyNnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''Ni0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEt''@;'; + put 'put ''MC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIuOCwyLjgsMi44czIuOC0xLjIs''@;'; + put 'put ''Mi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEuMi0xLjIsMS4ycy0xLjItMC42LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSIxMyIgeT0iMjEiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1i''@;'; + put 'put ''YWRnZWQiIGQ9Ik0yNCwxMC41Yy0wLjEtMC4yLTAuMi0wLjMtMC4zLTAuNUgxMnYxLjZoMTJWMTAuNXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0xMiw2djEuNmgxMC43Yy0w''@;'; + put 'put ''LjEtMC41LTAuMi0xLjEtMC4yLTEuNkgxMnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIGQ9Ik0yNiwxMi4zVjMySDEwVjRoMTIuOGMwLjItMC43LDAuNS0xLjQsMC45LTJIOS41Qzgu''@;'; + put 'put ''NywyLDgsMi43LDgsMy41VjM0aDIwVjEzLjJDMjcuMywxMywyNi42LDEyLjcsMjYsMTIuM3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0i''@;'; + put 'put ''NiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNi41LDJoLTE3QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjMuNUMyOCwyLjcsMjcuMywyLDI2LjUsMnogTTE4LDMwLjVjLTEuNSwwLTIuOC0xLjItMi44''@;'; + put 'put ''LTIuOFMxNi41LDI1LDE4LDI1czIuOCwxLjIsMi44LDIuOFMxOS41LDMwLjUsMTgsMzAuNXogTTIzLDIyLjZIMTNWMjFoMTBWMjIuNnogTTI0LDExLjZIMTJWMTBoMTJWMTEuNnogTTI0LDcuNkgxMlY2aDEyVjcuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjI3LjgiIHI9IjEuMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yMi4yLDE1LjNjLTIsMC0zLjctMS42LTMuNy0z''@;'; + put 'put ''LjdIMTJWMTBoNi45YzAtMC4xLDAuMS0wLjIsMC4xLTAuMmwxLjItMi4ySDEyVjZoOS4ybDIuMy00aC0xNEM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxNS4zSDIyLjJ6IE0xOCwzMC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgsMS4yLDIuOCwyLjhTMTkuNSwz''@;'; + put 'put ''MC41LDE4LDMwLjV6IE0yMywyMi42SDEzVjIxaDEwVjIyLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIiLz5cbiAgICAgICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxbC01LjcsOS45Yy0wLjMsMC42LTAuMSwxLjQsMC41LDEuN2MwLjIsMC4xLDAuNCwwLjIsMC42LDAuMmgxMS40YzAuNywwLDEuMy0wLjYs''@;'; + put 'put ''MS4zLTEuM2MwLTAuMi0wLjEtMC40LTAuMi0wLjZMMjkuMSwxYy0wLjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuNywyNywwLjgsMjYuOSwxeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2Vk''@;'; + put 'put ''IiBkPSJNMjQsMTAuM3YxLjJIMTJWMTBoMTEuOGMtMC41LTAuNy0wLjgtMS41LTEtMi40SDEyVjZoMTAuNWMwLDAsMC0wLjEsMC0wLjFjMC0xLjQsMC40LTIuNywxLjEtMy45SDkuNUM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxMy4xQzI2LjQsMTIuNiwyNSwxMS43LDI0LDEwLjN6IE0xOCwz''@;'; + put 'put ''MC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgsMS4yLDIuOCwyLjhTMTkuNSwzMC41LDE4LDMwLjV6TTIzLDIyLjZIMTNWMjFoMTBWMjIuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMi0tYmFkZ2VkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI1LjkiIHI9IjUiLz5cbicp''@;'; + put 'put ''LEwuQ2xyU2hhcGVTdG9yYWdlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMsNi42OWgwYy0uMTgtMy40MS05LjQ3LTQuMzMtMTUtNC4zM1MzLDMuMjksMyw2Ljc4VjI5LjM3YzAsMy40OSw5LjQzLDQuNDMs''@;'; + put 'put ''MTUsNC40M3MxNS0uOTMsMTUtNC40M1Y2Ljc4czAsMCwwLDBTMzMsNi43LDMzLDYuNjlabS0yLDcuNTZjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDE1LjM0djIuMDhBNDMuMzIsNDMuMzIsMCwwLDAsMTgsMTguN2M0LDAsOS45My0uNDgsMTMtMnY1LjE3''@;'; + put 'put ''Yy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywyMi45MlYyNWE0My4zMiw0My4zMiwwLDAsMCwxMSwxLjI4YzQsMCw5LjkzLS40OCwxMy0ydjUuMWMtLjM1Ljg2LTUuMDgsMi40NS0xMywyLjQ1UzUuMywzMC4yLDUsMjkuMzdWNi44MkM1LjMsNiwxMCw0LjM2''@;'; + put 'put ''LDE4LDQuMzZjNy43NywwLDEyLjQ2LDEuNTMsMTMsMi4zNy0uNTIuODctNS4yMSwyLjM5LTEzLDIuMzlBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdjNCwwLDkuOTMtLjQ4LDEzLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOS41MSw5LjA5LDE4LDkuMTFBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdoLjYxQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5WiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjguODMsMTUuNEEzOC4zNywzOC4zNywwLDAsMSwxOCwxNi43LDM3LjQ1LDM3LjQ1LDAsMCwxLDcsMTUuMzR2Mi4wOEE0My4zMyw0My4z''@;'; + put 'put ''MywwLDAsMCwxOCwxOC43YzQsMCw5LjkzLS40OCwxMy0ydjUuMTdjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDIyLjkyVjI1YTQzLjMzLDQzLjMzLDAsMCwwLDExLDEuMjhjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4xYy0uMzUuODYtNS4wOCwyLjQ1LTEzLDIu''@;'; + put 'put ''NDVTNS4zLDMwLjIsNSwyOS4zN1Y2LjgyQzUuMyw2LDEwLDQuMzYsMTgsNC4zNmMxLjUsMCwyLjg5LjA2LDQuMTUuMTZsMS4xLTEuOWMtMS44Ni0uMTgtMy43LS4yNi01LjI1LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMzdjMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45Mywx''@;'; + put 'put ''NS00LjQzdi0xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTcsNy43NlY5Ljg1''@;'; + put 'put ''YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjcsNTQuODIsNTQuODIsMCwwLDAsNi4yLS4zNiw3LjUsNy41LDAsMCwxLTEuMTMtMS44OGMtMS41LjE1LTMuMi4yNC01LjA3LjI0QTM3LjYsMzcuNiwwLDAsMSw3LDcuNzZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzEsMTMuNDN2LjgyYy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywxNS4zNHYyLjA4QTQzLjMzLDQzLjMzLDAsMCwwLDE4LDE4LjdjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4x''@;'; + put 'put ''N2MtLjMzLjg2LTUuMDYsMi40NS0xMywyLjQ1QTM3LjQ1LDM3LjQ1LDAsMCwxLDcsMjIuOTJWMjVhNDMuMzMsNDMuMzMsMCwwLDAsMTEsMS4yOGM0LDAsOS45My0uNDgsMTMtMnY1LjFjLS4zNS44Ni01LjA4LDIuNDUtMTMsMi40NVM1LjMsMzAuMiw1LDI5LjM3VjYuODJDNS4zLDYsMTAsNC4z''@;'; + put 'put ''NiwxOCw0LjM2YzEuNywwLDMuMjUuMDgsNC42NC4yYTcuNDQsNy40NCwwLDAsMSwuNjctMS45NGMtMS44OC0uMTgtMy43NS0uMjYtNS4zMS0uMjYtNS41NywwLTE1LC45My0xNSw0LjQzVjI5LjM3YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUtNC40M1YxMi44N0E3LjQ1LDcu''@;'; + put 'put ''NDUsMCwwLDEsMzEsMTMuNDNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NFY4LjU5Yy0uNDMsMi4yLTcsMy45NC0xNS4wOSwzLjk0QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzkuNCwzOS40LDAsMCwwLDExLjY2LDEu''@;'; + put 'put ''NTFDMjYsMTAuNTMsMzIuNTIsOC43OSwzMyw2LjYxaDBDMzIuOCwzLjIsMjMuNTIsMi4yOCwxOCwyLjI4UzMsMy4yMSwzLDYuNzFWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0LjA5QzMyLjU3LDI2LjI4LDI2LDI4LDE3LjkxLDI4QTM5LjQsMzkuNCww''@;'; + put 'put ''LDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4yNSwxOC43N3YtMkEzOS40LDM5LjQsMCwwLDAsMTcuOTEsMTguMjhaIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE3LjkxLDIwLjI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDE4Ljc3di0yYTM5LjQsMzkuNCwwLDAsMCwxMS42NiwxLjUxYzYuOSwwLDEyLjct''@;'; + put 'put ''MS4yNywxNC41MS0zSDIyLjIzYTMuNjcsMy42NywwLDAsMS0zLjU1LTIuNzVoLS43N0EzOS40LDM5LjQsMCwwLDEsNi4yNSwxMVY5YTM5LjQsMzkuNCwwLDAsMCwxMS42NiwxLjUxaC44MkEzLjY0LDMuNjQsMCwwLDEsMTksOS43NWw0LjE3LTcuMjJjLTEuODUtLjE4LTMuNjgtLjI1LTUuMjEt''@;'; + put 'put ''LjI1LTUuNTcsMC0xNSwuOTMtMTUsNC40M1YyOS4yOWMwLDMuNDksOS40Myw0LjQzLDE1LDQuNDNzMTUtLjkzLDE1LTQuNDNWMjQuMDlDMzIuNTcsMjYuMjgsMjYsMjgsMTcuOTEsMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMjYuNTJ2LTJBMzkuNCwzOS40LDAsMCwwLDE3LjkxLDI2QzI2LDI2''@;'; + put 'put ''LDMyLjU3LDI0LjI4LDMzLDIyLjA5VjE2LjM0QzMyLjU3LDE4LjUzLDI2LDIwLjI4LDE3LjkxLDIwLjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44''@;'; + put 'put ''NSwxbC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NHYtMS42YTcuNDcsNy40NywwLDAsMS03LjM4LS44LDQ4LjMsNDguMywwLDAsMS03LjcxLjU5QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzkuNCwzOS40LDAsMCwwLDExLjY2''@;'; + put 'put ''LDEuNTEsNTEsNTEsMCwwLDAsNi0uMzQsNy40Niw3LjQ2LDAsMCwxLS41OS03LjY1Yy0xLjg3LS4xOC0zLjczLS4yNi01LjI4LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0LjA5QzMyLjU3LDI2LjI4LDI2''@;'; + put 'put ''LDI4LDE3LjkxLDI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4yNSwxOC43N3YtMkEzOS40LDM5''@;'; + put 'put ''LjQsMCwwLDAsMTcuOTEsMTguMjhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNS44NiIgcj0iNSIvPlxuJyksTC5DbHJTaGFwZUNsdXN0ZXI9''@;'; + put 'put ''KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjM2LDhIMjcuNXYySDMxVjMwSDI3LjV2MkgzM1Y5LjY3QTEuNjUsMS42NSwwLDAsMCwzMS4zNiw4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDgu''@;'; + put 'put ''NVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+PGVsbGlwc2UgY3g9IjE4LjAxIiBjeT0iMjUuOTkiIHJ4PSIxLjgiIHJ5PSIxLjc5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWNS42OEExLjY4LDEuNjgsMCwwLDAsMjQuMzIsNFpNMjQsMzBIMTJWNkgyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5PSI5LjIxIiB3aWR0aD0iOSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxMEg4LjVWOEg0LjY0QTEuNjUsMS42''@;'; + put 'put ''NSwwLDAsMCwzLDkuNjdWMzJIOC41VjMwSDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSw5Ljg5bC4zOS0uNjhIMTMuNXYxLjZoNS4xN0EzLjY1LDMuNjUsMCwwLDEsMTksOS44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQsMzBIMTJWNmg5LjI5bDEuMTUtMkgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42OFYzMkgyNlYxNS40SDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0''@;'; + put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzEgMTUuNCAzMSAzMCAyNy41IDMwIDI3LjUgMzIgMzMgMzIgMzMgMTUuNCAzMSAxNS40IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJh''@;'; + put 'put ''ZGdlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5PSI5LjIxIiB3aWR0aD0iOSIg''@;'; + put 'put ''aGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LDEwLjQ5VjMwSDEyVjZIMjIuNWE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEw''@;'; + put 'put ''LDUuNjhWMzJIMjZWMTIuMzRBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjQ5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsMTMuNDNWMzBIMjcuNXYySDMzVjEyLjg3QTcuNDUsNy40''@;'; + put 'put ''NSwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC02LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zNiw4SDI3LjVWMzJIMzNWOS42N0ExLjY1LDEuNjUsMCwwLDAsMzEuMzYsOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0zLDkuNjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWNS42OEExLjY4''@;'; + put 'put ''LDEuNjgsMCwwLDAsMjQuMzIsNFpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDku''@;'; + put 'put ''NjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuNSIgeT0iMTUuNCIgd2lkdGg9IjUuNSIgaGVpZ2h0PSIxNi42IiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZhMy42OCwzLjY4LDAsMCwxLS4zMS0zSDEzVjloNi41NmwyLjg5LTVIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZW''@;'; + put 'put ''MTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZaTTE4LDI3Ljc5QTEuNzksMS43OSwwLDEsMSwxOS44MSwyNiwxLjgsMS44LDAsMCwxLDE4LDI3Ljc5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsOS42N1YzMkg4LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWMTIuMzRBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNlpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2LDEuOCwxLjgsMCwwLDEsMTgs''@;'; + put 'put ''MjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi41LS40NFYzMkgzM1YxMi44N0E3LjQ3LDcuNDcsMCwwLDEs''@;'; + put 'put ''MzAsMTMuNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVBcHBsaWNhdGlvbnM9KDAsRS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSA4IDE1IDggMTUgMTAgMjEgMTAgMjEgNCAxOSA0IDE5IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDQgMzAgOCAyNiA4IDI2IDEwIDMyIDEw''@;'; + put 'put ''IDMyIDQgMzAgNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''NCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMTkgMjYgMTkg''@;'; + put 'put ''MjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUgMzAgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBw''@;'; + put 'put ''b2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgOCAxNSA4IDE1IDEwIDIxIDEwIDIxIDQgMTkgNCAxOSA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5''@;'; + put 'put ''Z29uIHBvaW50cz0iMTkgMTkgMTUgMTkgMTUgMjEgMjEgMjEgMjEgMTUgMTkgMTUgMTkgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCAxOSAyNiAxOSAyNiAyMSAz''@;'; + put 'put ''MiAyMSAzMiAxNSAzMCAxNSAzMCAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDMwIDE1IDMwIDE1IDMyIDIxIDMyIDIxIDI2IDE5IDI2IDE5IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMzAgMjYgMzAgMjYgMzIgMzIgMzIgMzIgMjYgMzAgMjYgMzAgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCA4IDQgOCA0IDEwIDEwIDEwIDEwIDQgOCA0IDggOCIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMTUgMzAgMTkgMjYgMTkgMjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9''@;'; + put 'put ''IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkg''@;'; + put 'put ''MjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDhIMTV2Mmg0TDE5LDkuODksMjEsNi41VjRIMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQi''@;'; + put 'put ''IHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNiIgeT0iNCIgd2lkdGg9IjYiIGhlaWdo''@;'; + put 'put ''dD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIy''@;'; + put 'put ''NiIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lk''@;'; + put 'put ''dGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5''@;'; + put 'put ''PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMTBoNEwxOSw5Ljg5LDIxLDYuNVY0SDE1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtOC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''OS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1''@;'; + put 'put ''IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIx''@;'; + put 'put ''NSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5''@;'; + put 'put ''PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUJ1aWxkaW5nPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS44OCwzSDYuMTJBMi4xMiwyLjEyLDAsMCwwLDQsNS4xMlYzM0gyMlY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxOS44OCwzWk0yMCwz''@;'; + put 'put ''MUgxN1YyOEg5djNINlY1LjEyQS4xMi4xMiwwLDAsMSw2LjEyLDVIMTkuODhhLjEyLjEyLDAsMCwxLC4xMi4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iOCIgd2lkdGg9''@;'; + put 'put ''IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5''@;'; + put 'put ''PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IHg9IjgiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWln''@;'; + put 'put ''aHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0i''@;'; + put 'put ''MTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE1LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYmFkZ2VkIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCB4PSIyMyIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDEzLjQzVjMxSDIzdjJIMzNWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMjAtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cmVjdCB4''@;'; + put 'put ''PSI4IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIy''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTgi''@;'; + put 'put ''IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1hbGVydGVkIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEz''@;'; + put 'put ''LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjIzIiB3''@;'; + put 'put ''aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAsMzFIMTdWMjhIOXYzSDZWNS4xMkEuMTIuMTIsMCwwLDEsNi4xMiw1SDE5Ljg4YS4xMi4xMiwwLDAsMSwuMTIuMTJWOC4yNGwyLTMuNDFBMi4xMiwyLjEyLDAsMCwwLDE5Ljg4LDNI''@;'; + put 'put ''Ni4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjE1LjM4YTMuNjgsMy42OCwwLDAsMS0yLS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMSAxNS40''@;'; + put 'put ''IDMxIDMxIDIzIDMxIDIzIDMzIDMzIDMzIDMzIDE1LjQgMzEgMTUuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAs''@;'; + put 'put ''MjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0zMSw4SDIyVjMzSDMzVjEwQTIsMiwwLDAsMCwzMSw4Wk0yNiwyNUgyNFYyM2gyWm0wLTVIMjRWMThoMlptMC01SDI0VjEzaDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJabTAtNUgyOFYxM2gyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''MSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDlabTAtNUg3VjhIOVptNCwxNUgxMVYy''@;'; + put 'put ''M2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljg4''@;'; + put 'put ''LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWMTQuNjRhMy42NywzLjY3LDAsMCwxLTEtNC43NmwxLTEuNjVWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDlabTAtNUg3VjhIOVptNCwxNUgx''@;'; + put 'put ''MVYyM2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRsLS4yMywwVjMzSDMzVjE1LjRaTTI2LDI1SDI0VjIzaDJabTAtNUgyNFYxOGgyWm00LDVIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIOVYzMGg2djNoNVY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxNy44OCwzWk05LDI1SDdWMjNIOVptMC01SDdWMThI''@;'; + put 'put ''OVptMC01SDdWMTNIOVptMC01SDdWOEg5Wm00LDE1SDExVjIzaDJabTAtNUgxMVYxOGgyWm0wLTVIMTFWMTNoMlptMC01SDExVjhoMlptNCwxNUgxNVYyM2gyWm0wLTVIMTVWMThoMlptMC01SDE1VjEzaDJabTAtNUgxNVY4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMTVIMjhWMTMuMjJBNy41LDcuNSwwLDAsMSwyMi43OCw4SDIyVjMzSDMzVjEyLjg3QTcuNDcsNy40NywwLDAsMSwzMCwxMy41Wk0yNiwyNUgyNFYyM2gyWm0wLTVIMjRWMThoMlptMC01SDI0VjEz''@;'; + put 'put ''aDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDhIMjN2Mmg4VjMxSDIzdjJIMzNWMTBBMiwyLDAsMCwwLDMxLDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjUuMTJBMi4xMiwyLjEyLDAsMCwwLDE5Ljg4LDNaTTIwLDMxSDE3VjI4SDl2M0g2VjUuMTJBLjEyLjEyLDAsMCwxLDYuMTIsNUgxOS44OGEuMTIuMTIsMCwwLDEsLjEyLjEyWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIi''@;'; + put 'put ''IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgeD0iOCIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC03Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIxOCIgd2lkdGg9IjIiIGhl''@;'; + put 'put ''aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIyMyIgd2lkdGg9IjIi''@;'; + put 'put ''IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHJlY3QgeD0iMjciIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTE3Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xOCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjIzIiB3aWR0''@;'; + put 'put ''aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIwIi8+XG4g''@;'; + put 'put ''ICAgICAgICcpLEwuQ2xyU2hhcGVDUFU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjA4LDIzLjA3aC0xMXYxLjVIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTEuMzNoLTEuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBkPSJNMzIuMiwxOC4xNWEuOC44LDAsMSwwLDAtMS42SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWOC4xQTIuMSwyLjEsMCwwLDAsMjcuOSw2SDI2LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44''@;'; + put 'put ''YS44LjgsMCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEuOC44''@;'; + put 'put ''LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNFpNMjgsMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4x''@;'; + put 'put ''LjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhIMjcuOWEuMS4xLDAsMCwxLC4xLjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjA2LDI0LjU3SDIzLjgzYS43NS43NSwwLDAsMCwuNzUtLjc1''@;'; + put 'put ''VjExLjMzaC0xLjVWMjMuMDdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42SDMwVjEzLjVhNy40OSw3LjQ5''@;'; + put 'put ''LDAsMCwxLTItLjI4VjI3LjlhLjEuMSwwLDAsMS0uMS4xSDguMWEuMS4xLDAsMCwxLS4xLS4xVjguMUEuMS4xLDAsMCwxLDguMSw4SDIyLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkgxOS4zNVYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44YS44LjgsMCwxLDAtMS42LDBWNkg4LjFB''@;'; + put 'put ''Mi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJh''@;'; + put 'put ''LjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIuMmEuOC44''@;'; + put 'put ''LDAsMSwwLDAtMS42SDMwVjE1LjRIMjhWMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhoMTJsMS4xNS0ySDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4x''@;'; + put 'put ''LDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAs''@;'; + put 'put ''MSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMTIuMDYsMjQuNTdIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTUuNGgtMS41djcuNjdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''My0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIsMjMuNTVIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFYxNS40SDI1djguNDFBMS4xOCwxLjE4LDAsMCwxLDI0LDI1SDEzVjIzSDIzVjE1LjRoLS43N0EzLjY4LDMuNjgsMCwwLDEsMTks''@;'; + put 'put ''OS44OUwyMS4yOSw2SDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwx''@;'; + put 'put ''LDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCww''@;'; + put 'put ''LDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu''@;'; + put 'put ''NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDIzLjU1SDMwdi01LjRoMi4yYS44''@;'; + put 'put ''LjgsMCwxLDAsMC0xLjZIMzBWMTMuNWE3LjQ2LDcuNDYsMCwwLDEtNS0xLjkyVjIzLjgxQTEuMTgsMS4xOCwwLDAsMSwyNCwyNUgxM1YyM0gyM1YxMWgxLjQyQTcuNDYsNy40NiwwLDAsMSwyMi41LDZIMTkuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEu''@;'; + put 'put ''NiwwVjZIOC4xQTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJhLjguOCwwLDEsMCwxLjYsMFYz''@;'; + put 'put ''MGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45VjI1LjE1aDIuMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRn''@;'; + put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDE4LjE1YS44LjgsMCwxLDAsMC0x''@;'; + put 'put ''LjZIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFY4LjFBMi4xLDIuMSwwLDAsMCwyNy45LDZIMjYuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYs''@;'; + put 'put ''OC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiww''@;'; + put 'put ''VjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMHYtNS40Wk0yNSwyMy44MUExLjE4LDEuMTgsMCwwLDEsMjQsMjVIMTNWMjNIMjNWMTFoMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZU1lbW9yeT0oMCxFLmNsckljb25TVkcpKCc8cmVjdCB4PSI4IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxy''@;'; + put 'put ''ZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI0IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwyN0g0VjE3SDJWMjdhMiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NWgyLjI2VjI0SDE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; + put 'put ''Miw3SDRBMiwyLDAsMCwwLDIsOXY0SDRWOUgzMnY0aDJWOUEyLDIsMCwwLDAsMzIsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMjdIMTl2MkgzMmEyLDIsMCwwLDAsMi0yVjE3SDMyWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTE1LDI3SDRWMTdIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1LjU1aDIuMjZWMjRIMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjI3SDE5djJI''@;'; + put 'put ''MzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZBMy42NiwzLjY2LDAsMCwxLDE4LjU3LDEySDE2djhoNFYxNC42NEEzLjY3LDMuNjcs''@;'; + put 'put ''MCwwLDEsMTksMTMuNTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjQiIHk9IjE1LjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjQuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMTkuNTZsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMjdINFYxN0gyVjI3YTIsMiwwLDAsMCwyLDJIMTYu''@;'; + put 'put ''NjFWMjUuNTVoMi4yNlYyNEgxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjI3SDE5djJIMzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyQTcuNDYsNy40NiwwLDAsMSwyNS41MSwxMkgyNHY4aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMjMuMTNhNy40NSw3LjQ1LDAsMCwxLS41NS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMw''@;'; + put 'put ''IiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMTNWOWEyLDIsMCwwLDAtMi0ySDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiww''@;'; + put 'put ''LDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN0gzMlYxM1pNMTIsMjBIOFYxMmg0Wm04LDBIMTZWMTJoNFptOCwwSDI0VjEyaDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTdW''@;'; + put 'put ''MTUuMDdIMjhWMjBIMjRWMTUuMDdIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjMxVjIwSDE2VjEyaDIuNjFBMy42OCwzLjY4LDAsMCwxLDE5LDkuNTVMMjAuNTIsN0g0QTIsMiwwLDAsMCwyLDl2NEg0djRIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1LjU1SDE5VjI5SDMyYTIsMiww''@;'; + put 'put ''LDAsMCwyLTJWMTdaTTEyLDIwSDhWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NS44bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgs''@;'; + put 'put ''MS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNi44QTEuMjgsMS4yOCwwLDAsMCwyNi44NS44WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjEzLjIyYTcuMzMs''@;'; + put 'put ''Ny4zMywwLDAsMS00LDBWMjBIMjRWMTJoMS41MWE3LjQ4LDcuNDgsMCwwLDEtMi45NC01SDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN1pNMTIsMjBIOFYxMmg0Wm04LDBIMTZWMTJoNFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4g''@;'; + put 'put ''ICAgICAgICcpLEwuQ2xyU2hhcGVEYXRhQ2x1c3Rlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNSw0LjA4QzIyLjc3LDQuMDgsMTksNS40LDE5LDcuOTFWOS41YTE4Ljc1LDE4Ljc1LDAsMCwxLDIsLjJWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMzIsNy4yNywzMiw3''@;'; + put 'put ''LjkxVjE4LjI0YzAsLjU0LTEuNDYsMS40NC0zLjksMS43M3YyYzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUuNDYs''@;'; + put 'put ''MTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1''@;'; + put 'put ''LTEuODgsOC42NS00LjM4VjE1LjIzQzI2LjY1LDEyLjczLDIyLjkzLDEwLjg1LDE4LDEwLjg1Wm02LjY1LDcuNjdjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEu''@;'; + put 'put ''NTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIuMzhzLTYuNjUtMS40My02LjY1LTIuMzhWMTUu''@;'; + put 'put ''MjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOHM2LjY1LDEuNDMsNi42NSwyLjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDE4LjI0VjcuOTFjMC0uNjUsMi4wOS0xLjg0LDUuNS0xLjg0UzE1LDcuMjcs''@;'; + put 'put ''MTUsNy45MVY5LjdhMTguNzUsMTguNzUsMCwwLDEsMi0uMlY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMlYyMEM1LjQ2LDE5LjY4LDQsMTguNzgsNCwxOC4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuNjUsMTguNTJjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAs''@;'; + put 'put ''MCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIuMzhzLTYuNjUtMS40My02LjY1''@;'; + put 'put ''LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOGwuNzUsMGEzLjY5LDMuNjksMCwwLDEtLjA4LTJsLS42NiwwYy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4LjY1LTQuMzhWMTUuNGgtMloiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNC44Yy0xLjc1LjYzLTMsMS42OC0zLDMuMTJWOS41bC4yNSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjIuODRjMCwuNTQtMS40NiwxLjQ0LTMuOSwxLjczdjJjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43''@;'; + put 'put ''NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUuNDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTAuODVjLTQuOTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYxNS4yM0MyNi42NSwxMi43MywyMi45MywxMC44NSwxOCwxMC44''@;'; + put 'put ''NVptNi42NSw3LjY3Yy0uODUsMS0zLjQyLDItNi42NSwyQTE0LjQ5LDE0LjQ5LDAsMCwxLDE0LDIwdjEuNDZhMTYuMzMsMTYuMzMsMCwwLDAsNCwuNDcsMTIuNzYsMTIuNzYsMCwwLDAsNi42NS0xLjU2djMuMTJjLS44NSwxLTMuNDIsMi02LjY1LDJhMTQuNDksMTQuNDksMCwwLDEtNC0uNTN2''@;'; + put 'put ''MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2Mi4yOWMwLC45NS0yLjY1LDIuMzgtNi42NSwyLjM4cy02LjY1LTEuNDMtNi42NS0yLjM4VjE1LjIzYzAtLjk1LDIuNjUtMi4zOCw2LjY1LTIuMzhzNi42NSwxLjQzLDYuNjUsMi4zOFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDcuOTFjMC0uMzMuNTUtLjgsMS41NC0xLjE4LDAtLjI0LDAtLjQ4LDAtLjczYTcuNTIsNy41MiwwLDAsMSwuMTQtMS40MUMyMC41NSw1LjE5''@;'; + put 'put ''LDE5LDYuMywxOSw3LjkxVjkuNWExOC43NSwxOC43NSwwLDAsMSwyLC4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2NWMwLC41NC0xLjQ2LDEuNDQtMy45LDEuNzN2''@;'; + put 'put ''MmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1di01LjlBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjUsNC4wOEMyMi43Nyw0LjA4LDE5LDUuNCwxOSw3LjkxVjkuNDhjNS4zLjI2LDksMi42LDksNS43NnY2LjdsLjA1LjA2''@;'; + put 'put ''YzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRT''@;'; + put 'put ''Miw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4wOCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMC44NWMtNC45Myww''@;'; + put 'put ''LTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjI1LjM4QTEzLjU4LDEzLjU4LDAsMCwxLDE4LDI4YTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyNS4yN2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1''@;'; + put 'put ''LTEuMjMsOC42My0zLjIzVjIwLjQ3QzI0LjgsMjIsMjEuNzIsMjMsMTgsMjNhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjIwLjIzYTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4xMSw4LjYzLTMuMTFWMTUuMjNDMjYuNjUsMTIuNzMsMjIuOTMsMTAuODUsMTgsMTAuODVaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4w''@;'; + put 'put ''OCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NmEzLjY4LDMuNjgsMCwwLDEtLjM5LTIuN2wtLjY2LDBjLTQuOTMsMC04LjY1LDEuODgtOC42''@;'; + put 'put ''NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYyNS4zOEExMy41OCwxMy41OCwwLDAsMSwxOCwyOGExNi43NywxNi43NywwLDAsMS02LTFWMjUuMjdhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjIzLDguNjMtMy4y''@;'; + put 'put ''M1YyMC40N0MyNC44LDIyLDIxLjcyLDIzLDE4LDIzYTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyMC4yM2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1LTEuMTEsOC42My0zLjExVjE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDQuOGMtMS43NS42My0zLDEuNjgtMywzLjEyVjkuNDhsLjI3LDBaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgyOHY2LjUzbC4wNS4wNmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1VjE1LjM4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0t''@;'; + put 'put ''YWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LDkuNDhWNy45MWMwLTIuNTItMy43Ny0zLjg0LTcuNS0zLjg0UzIsNS40LDIsNy45MVYxOC4yNEMyLDIwLjQsNC43NywyMS42Nyw3LjksMjJMOCwyMS45M3YtNi43QzgsMTIuMDgsMTEuNyw5Ljc0LDE3LDku''@;'; + put 'put ''NDhaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEwLjg1Yy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4''@;'; + put 'put ''LjY1LTQuMzhWMjUuMzhBMTMuNTgsMTMuNTgsMCwwLDEsMTgsMjhhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjI1LjI3YTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4yMyw4LjYzLTMuMjNWMjAuNDdDMjQuOCwyMiwyMS43MiwyMywxOCwyM2ExNi43NywxNi43NywwLDAsMS02''@;'; + put 'put ''LTFWMjAuMjNhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjExLDguNjMtMy4xMVYxNS4yM0MyNi42NSwxMi43MywyMi45MywxMC44NSwxOCwxMC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBkPSJNMjIuNSw2YTcuNTIsNy41MiwwLDAsMSwuMTQtMS40QzIwLjU1LDUuMTksMTksNi4zLDE5LDcuOTFWOS40OGExNS4zMywxNS4zMywwLDAsMSw1LDFBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBh''@;'; + put 'put ''dGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNDlBNy40Nyw3LjQ3LDAsMCwxLDI3LjM1LDEzYTQsNCwwLDAsMSwuNywyLjIzdjYuN2wuMDUuMDZjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxMi4zM0E3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNDlaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI1Ljk5IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIv''@;'; + put 'put ''PlxuICAgICAgICAnKSxMLkNsclNoYXBlUmVzb3VyY2VQb29sPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy42OCwxNS40SDMxLjczYTE0LDE0LDAsMCwxLC4yMiwxLjZIMTcuNDlMOC4zLDI4LjA3QTE0LDE0LDAsMCwxLDIyLjA5LDQuNjJsMS0xLjc2QTE2LDE2LDAsMSwwLDM0LDE4''@;'; + put 'put ''YTE2LDE2LDAsMCwwLS4yMy0yLjYxWk0xOCwzMmExMy45MSwxMy45MSwwLDAsMS04LjE2LTIuNjVMMTguNDMsMTlIMzEuOTVBMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTQsMThhMTQsMTQsMCwwLDEsMjcuOTUtMUgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsNCwxOFpNMTgs''@;'; + put 'put ''MzJhMTMuOTEsMTMuOTEsMCwwLDEtOC4xNi0yLjY1TDE4LjQzLDE5SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4yLDEzLjRhMTMuOTEsMTMuOTEsMCwwLDEsLjc1''@;'; + put 'put ''LDMuNkgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsMjIuNjEsNC44YTcuNDMsNy40MywwLDAsMSwuNTgtMS45MiwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNBNy40Myw3LjQzLDAsMCwxLDMxLjIsMTMuNFpNMTgsMzJhMTMuOTEsMTMuOTEsMCwwLDEtOC4xNi0yLjY1TDE4LjQzLDE5''@;'; + put 'put ''SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguNTcsMzAuOUExNiwxNiwwLDAsMCwzMy45NSwxOUgxOC40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; + put 'put ''My45NSwxN0ExNiwxNiwwLDEsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45NSwxN2ExNS45MSwxNS45MSwwLDAsMC0uODQtNC4xOCw3LjQ5LDcuNDksMCwwLDEtOS45Mi05Ljk0QTE2LDE2LDAsMCwwLDcsMjkuNkwxNy40OSwxN1oiIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjk1LDE3YTE2LDE2LDAsMCwwLS4xOC0xLjYxSDIyLjIz''@;'; + put 'put ''QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDQuMDYtN0ExNiwxNiwwLDAsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUEx''@;'; + put 'put ''LjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+''@;'; + put 'put ''XG4gICAgICAgICcpLEwuQ2xyU2hhcGVTaGllbGRDaGVjaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5''@;'; + put 'put ''LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVpNMzAsMTUuOTNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2''@;'; + put 'put ''LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLDNBNDcuNTQsNDcuNTQsMCwwLDAsMzAsOS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMTAuODgsMTYuODdhMSwxLDAsMCwwLTEuNDEsMS40MWw2LDZMMjYuNCwxMy43N0ExLDEsMCwwLDAsMjUsMTIuMzNsLTkuNDcsOS4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40''@;'; + put 'put ''NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVptLTQuNTcsNi42NUwxNS41MSwyNC45LDkuMTksMTguNTdhMS40LDEuNCwwLDAsMSwyLTJMMTUuNTQsMjEsMjQuNzMsMTJhMS40LDEuNCwwLDEsMSwyLDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0xIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVTaGllbGQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgs''@;'; + put 'put ''My4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTIt''@;'; + put 'put ''NS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDE1LjR2LjUzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTNjMSwuNjQsMi4yLDEuMjcsMy40Mywx''@;'; + put 'put ''Ljg5bDEtMS43NGE0MS4xLDQxLjEsMCwwLDEtMy44OS0yLjE4TDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwx''@;'; + put 'put ''My42Ni01LjA1LDEzLjY2LTE4LjQ1VjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; + put 'put ''MCwxMy41djIuNDNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0Ni4xOSw0Ni4xOSwwLDAsMCw0LjUxLDIuNDJjMC0uMSwwLS4xOSwwLS4yOWE3LjQ5''@;'; + put 'put ''LDcuNDksMCwwLDEsLjIzLTEuODMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0''@;'; + put 'put ''LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9''@;'; + put 'put ''IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEu''@;'; + put 'put ''NWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMi40Myw0YTQxLjEsNDEuMSwwLDAsMS0zLjg5LTIuMThMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQz''@;'; + put 'put ''Ljc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0''@;'; + put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS03LjI3LTkuMzMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYu''@;'; + put 'put ''MDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAg''@;'; + put 'put ''JyksTC5DbHJTaGFwZVNoaWVsZFg9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0''@;'; + put 'put ''Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0''@;'; + put 'put ''LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTIyLjgxLDEwLjc5LDE4LDE1LjYxbC00LjgxLTQuODFhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi41OSwxN2wtNC44MSw0LjgxYTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTguNDNsNC44MSw0LjgxYTEsMSwwLDAsMCwxLjQxLTEuNDFMMTkuNDEsMTdsNC44MS00LjgxYTEsMSwwLDAsMC0x''@;'; + put 'put ''LjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwx''@;'; + put 'put ''LTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTI0LjUxLDIxLjU1YTEuNCwxLjQsMCwwLDEtMiwyTDE4LDE5''@;'; + put 'put ''bC00LjUzLDQuNTNhMS40MywxLjQzLDAsMCwxLTIsMCwxLjQsMS40LDAsMCwxLDAtMkwxNiwxN2wtNC41My00LjUzYTEuNCwxLjQsMCwxLDEsMi0yTDE4LDE1bDQuNTMtNC41M2ExLjQsMS40LDAsMCwxLDIsMkwyMCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUltcG9ydD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsNEgxNC44N0w4LDEwLjg2VjE1aDJWMTMuNjFoNy42MVY2SDI4VjMwSDhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDI4LDRaTTE2LDEySDEwdi0u''@;'; + put 'put ''MzJMMTUuNyw2SDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45NCwyNi4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDE5LDIybC01LjY4LTUuNjhhMSwxLDAsMCwwLTEuNDEsMS40MUwxNS4yLDIxSDNhMSwx''@;'; + put 'put ''LDAsMSwwLDAsMkgxNS4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwxOSwyMmwtNS42OC01LjY4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTUuMiwyMUgz''@;'; + put 'put ''YTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzBIOGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAsMTMuNjFoNy42MVY2aDMuNjhsMS4xNS0ySDE0Ljg3TDgsMTAuODZWMTVoMlptMC0xLjkyTDE1LjcsNkgxNnY2SDEwWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4''@;'; + put 'put ''LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwxOSwyMmwtNS42''@;'; + put 'put ''OC01LjY4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTUuMiwyMUgzYTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMEg4YTIsMiwwLDAs''@;'; + put 'put ''MCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDEzLjYxaDcuNjFWNkgyMi41YTcuNDks''@;'; + put 'put ''Ny40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjE1aDJabTAtMS45MkwxNS43LDZIMTZ2NkgxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw0SDE0Ljg3TDgsMTAuODZWMjFIMTUuMmwtMy4yNS0zLjI1YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTksMjJsLTUuNjgsNS42OGExLDEsMCwwLDEtMS40MS0xLjQxTDE1LjIzLDIzSDh2N2EyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIs''@;'; + put 'put ''MCwwLDAsMjgsNFpNMTYsMTJIMTB2LS4zMkwxNS42OSw2SDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsMjFhMSwxLDAsMSwwLDAsMkg4VjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIybC01LjY4LDUuNjhhMSwxLDAs''@;'; + put 'put ''MCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1LjRaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2''@;'; + put 'put ''YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIybC01LjY4LDUuNjhhMSwxLDAsMCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy41''@;'; + put 'put ''LDcuNSwwLDAsMSwyMi41LDZaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVFeHBvcnQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYsMTMuNjFoNy42MVY2SDI0djguMzhoMlY2YTIsMiwwLDAsMC0yLTJIMTAuODdMNCwxMC44N1YzMGEy''@;'; + put 'put ''LDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJINlptMC0xLjkyTDExLjY5LDZIMTJ2Nkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjE2LDIx''@;'; + put 'put ''SDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMw''@;'; + put 'put ''LjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDEzLjYxaDcu''@;'; + put 'put ''NjFWNmg3LjY4bDEuMTUtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMTIuMzRhNy41Myw3LjUzLDAsMCwxLTItMS44NXYzLjg5aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDEzLjYxaDcuNjFWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJh''@;'; + put 'put ''ZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjZhMiwyLDAsMCwwLTItMkgxMC44N0w0LDEwLjg2VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2LS4zMkwxMS42OSw2SDEyWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwzNSwyMloiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMxLjE2LDIxSDI2djJoNS4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzUsMjJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxMC44N0w0LDEwLjg2VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAs''@;'; + put 'put ''MCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2LS4zMkwxMS42OSw2SDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwx''@;'; + put 'put ''LjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwzNSwyMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjEyLjM0QTcuNDYsNy40NiwwLDAsMSwyMi43OCw0SDEwLjg3TDQsMTAuODZWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjIzSDE4QTEsMSwwLDAsMSwxNywyMlpNMTIsMTJINnYtLjMyTDExLjY5''@;'; + put 'put ''LDZIMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1iYWRnZSIvPlxuICAgICAgICAnKSxMLkNsclNoYXBlVXBsb2FkQ2xvdWQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjMxLDEzYzAtLjEsMC0uMjEsMC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5Ljc0LDkuNzQsMCww''@;'; + put 'put ''LDAsMS42LDE4LjQsOS42Miw5LjYyLDAsMCwwLDExLjI1LDI4SDE1VjI2SDExLjI1QTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjI2LDguMjYsMCwwLDEsOC40NSw4LDcuNzUsNy43NSwwLDAsMSwwLC44bC0uMDguNzIuNjUu''@;'; + put 'put ''M0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCwzLjkzLTE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyMS44NUExLDEsMCwwLDAsMjMsMjAuMTRsLTUtNS01LDVhMSwxLDAs''@;'; + put 'put ''MCwwLDEuNDEsMS40MUwxNywxOVYzMS4yNWExLDEsMCwxLDAsMiwwVjE5bDIuNTcsMi41N0ExLDEsMCwwLDAsMjIuMjgsMjEuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjI4LDIxLjg1QTEsMSwwLDAs''@;'; + put 'put ''MCwyMywyMC4xNGwtNS01LTUsNWExLDEsMCwwLDAsMS40MSwxLjQxTDE3LDE5VjMxLjI1YTEsMSwwLDEsMCwyLDBWMTlsMi41NywyLjU3QTEsMSwwLDAsMCwyMi4yOCwyMS44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4QTcuNzEsNy43MSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjgxLDguODEsMCwwLDEsMiwuMjVsMS0xLjhhMTAuOCwxMC44LDAsMCwwLTMuMDctLjQ1LDEwLjQ3LDEwLjQ3LDAsMCww''@;'; + put 'put ''LTkuNiw2LjFBOS43NCw5Ljc0LDAsMCwwLDEuNiwxOC40LDkuNjIsOS42MiwwLDAsMCwxMS4yNSwyOEgxNVYyNkgxMS4yNUE3LjY2LDcuNjYsMCwwLDEsMy42LDE4LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDIxdjJoNS4zOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjEuODVBMSwxLDAsMCwwLDIzLDIwLjE0bC01LTUtNSw1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTcsMTlWMzEuMjVhMSwxLDAsMSwwLDIsMFYxOWwyLjU3LDIuNTdBMSwxLDAsMCww''@;'; + put 'put ''LDIyLjI4LDIxLjg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAsLjA4LDAsLjE1LDAsLjIzbC0uMDguNzIuNjUu''@;'; + put 'put ''M0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCw0LjU0LTE0LjU2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4QTcuNzEsNy43MSwwLDAsMSwx''@;'; + put 'put ''MSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4Ljc5LDguNzksMCwwLDEsMi42OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNzQsOS43NCwwLDAsMCwxLjYs''@;'; + put 'put ''MTguNCw5LjYyLDkuNjIsMCwwLDAsMTEuMjUsMjhIMTVWMjZIMTEuMjVBNy42Niw3LjY2LDAsMCwxLDMuNiwxOC4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2''@;'; + put 'put ''IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZURvd25sb2FkQ2xvdWQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjMxLDEzYzAtLjEsMC0uMjEs''@;'; + put 'put ''MC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5LjY1LDkuNjUsMCwwLDAsMTAuODksMjhhMywzLDAsMCwxLDAtMkE3LjY1LDcuNjUsMCwwLDEsMTEsMTAuNzRsLjY3LDAsLjIzLS42M2E4LjQzLDguNDMsMCwwLDEsOC01LjQsOC4yNiw4''@;'; + put 'put ''LjI2LDAsMCwxLDguNDUsOCw3Ljc1LDcuNzUsMCwwLDEsMCwuOGwtLjA4LjcyLjY1LjNBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4yOGE4LDgsMCwwLDAsMy45My0xNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAtMiwwVjI4Ljk0bC0yLjU3LTIuNTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyNi4wN2ExLDEsMCwwLDAtLjcxLjI5TDE5LDI4Ljk0VjE2LjY4YTEsMSwwLDEsMC0yLDBWMjguOTRsLTIuNTctMi41N0ExLDEsMCwwLDAsMTMsMjcuNzhsNSw1LDUtNWExLDEsMCwwLDAtLjcxLTEuNzFa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljg3LDQuNjlhOC44MSw4LjgxLDAsMCwxLDIsLjI1bDEtMS44YTEwLjgsMTAuOCwwLDAsMC0zLjA3LS40NSwxMC40NywxMC40Nyww''@;'; + put 'put ''LDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzQTguNDMsOC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4yOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAtMiwwVjI4Ljk0bC0yLjU3LTIu''@;'; + put 'put ''NTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuODcsNC42OWE4Ljc5LDguNzksMCwwLDEsMi42''@;'; + put 'put ''OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzQTguNDMs''@;'; + put 'put ''OC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAsLjA4LDAsLjE1LDAsLjIzbC0u''@;'; + put 'put ''MDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjUuMDlhMywzLDAsMCwxLDAsMmgxLjI4YTgsOCwwLDAsMCw0LjU0LTE0LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIz''@;'; + put 'put ''MCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxMLkNsclNoYXBlUGx1Z2luPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS44MSwxNkgyOVY4LjgzYTIs''@;'; + put 'put ''MiwwLDAsMC0yLTJIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwy''@;'; + put 'put ''LDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2Wm0yLjQxLDdBMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEsMTVINFY4LjgzaDlWN2EzLDMsMCwwLDEsMS0yLjIy''@;'; + put 'put ''QTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoOFYxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTI5LjgxLDE2SDI5di0uNkgyN1YxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjMsMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEsMTVINFY4LjgzaDlWN2EzLDMs''@;'; + put 'put ''MCwwLDEsMS0yLjIyQTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoLjY2TDIxLDYuNTlBNS4xMiw1LjEyLDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywz''@;'; + put 'put ''LDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWMTMuNDNhNy40NSw3LjQ1LDAsMCwxLTItLjU1VjE4aDIuODFBMy4xMywzLjEzLDAsMCwxLDMzLDIwLjY5LDMsMyww''@;'; + put 'put ''LDAsMSwzMi4yMiwyMywzLDMsMCwwLDEsMzAsMjRIMjd2Ny44M0g0VjI1SDVhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsNC44MSwxNUg0VjguODNoOVY3YTMsMywwLDAsMSwxLTIuMjJBMywzLDAsMCwxLDE2LjMxLDQsMy4xMywzLjEzLDAsMCwxLDE5LDcuMTlWOC44M2g0LjA2''@;'; + put 'put ''YTcuNDQsNy40NCwwLDAsMS0uNTEtMkgyMUE1LjE0LDUuMTQsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCww''@;'; + put 'put ''LDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0i''@;'; + put 'put ''NiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWOC44M2EyLDIsMCwwLDAtMi0ySDIxQTUuMTQsNS4xNCwwLDAsMCwxNi41MSwyLDUs''@;'; + put 'put ''NSwwLDAsMCwxMSw2LjgzSDRhMiwyLDAsMCwwLTIsMlYxN0g0LjgxQTMuMTMsMy4xMywwLDAsMSw4LDE5LjY5LDMsMywwLDAsMSw3LjIyLDIyLDMsMywwLDAsMSw1LDIzSDJ2OC44M2EyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMjZoMWE1LDUsMCwwLDAsNS01LjUxQTUuMTUsNS4x''@;'; + put 'put ''NSwwLDAsMCwyOS44MSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS44MSwxNkgyOXYtLjZIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEsNi41OUE1LjEyLDUuMTIsMCwwLDAsMTYuNTEsMiw1LDUs''@;'; + put 'put ''MCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUs''@;'; + put 'put ''MCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCww''@;'; + put 'put ''LDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWMTMuNDNhNy41''@;'; + put 'put ''LDcuNSwwLDAsMS02LjQ1LTYuNTlIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwy''@;'; + put 'put ''LDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0i''@;'; + put 'put ''NSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUZsb3BweT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcuMzYsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCww''@;'; + put 'put ''LDIsMkgzMGEyLDIsMCwwLDAsMi0yVjguNzhaTTI1LDMwSDExVjIySDI1Wm01LDBIMjdWMjJhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhINlY2aDR2NmEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJIMTJWNkgyNi41MUwzMCw5LjU5WiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWgwVjMwSDI3VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0xLjY4bC0uNDMtLjNIMTJWNkgyMi41YTcu''@;'; + put 'put ''NDksNy40OSwwLDAsMSwuMjgtMkg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNSwzMEgxMVYyMkgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxNS40VjMwSDI3''@;'; + put 'put ''VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMmg3LjM1YTMuNTQsMy41NCwwLDAsMS0uNzctMkgxMlY2aDkuMjlsMS4xNS0ySDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFpNMjUsMzBI''@;'; + put 'put ''MTFWMjJIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwz''@;'; + put 'put ''NC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy4zNiw0SDZBMiwyLDAsMCww''@;'; + put 'put ''LDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWOC43OFpNMjYsMzBIMTBWMjEuNUExLjUsMS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41Wk0yNCwxNEgxMmEyLDIsMCwwLDEtMi0yVjZoMnY2SDI2QTIsMiwwLDAsMSwyNCwxNFoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDYsNy40NiwwLDAsMS00LTEuMThBMiwyLDAsMCwxLDI0LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZIMjUuNTRhNy40NSw3LjQ1LDAsMCwxLTIuNzYtOEg2QTIsMiwwLDAs''@;'; + put 'put ''MCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNiwzMEgxMFYyMS41QTEuNSwxLjUsMCwwLDEsMTEuNSwyMGgxM0ExLjUsMS41LDAsMCwxLDI2LDIxLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIz''@;'; + put 'put ''LDE1LjRBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZoNi41OEEzLjY3LDMuNjcsMCwwLDEsMTksOS44OUwyMi40NSw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFpNMjYsMzBIMTBWMjEuNUExLjUs''@;'; + put 'put ''MS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIy''@;'; + put 'put ''LjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAnKSxMLkNs''@;'; + put 'put ''clNoYXBlQ29tcHV0ZXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI5LjYgMjIuODggOS42IDEwLjYgMjQuNCAxMC42IDI1Ljk4IDkgOCA5IDggMjIuODggOS42IDIyLjg4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTYsN0gzMFYyM2gyVjYuNUExLjUsMS41LDAsMCwwLDMwLjUsNUg1LjVBMS41LDEuNSwwLDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDI1djMuNEEyLjYsMi42''@;'; + put 'put ''LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41NmEuNi42LDAsMCwxLS42LS42VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEuNS0xSDMzWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDI1djMuNEEyLjYsMi42LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41NmEuNi42LDAsMCwxLS42LS42''@;'; + put 'put ''VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEuNS0xSDMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjYsMjIuODhWMTAu''@;'; + put 'put ''Nmg5LjE0QTMuNjQsMy42NCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIOFYyMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNiw3SDIwLjcxbDEuMTUtMkg1LjVBMS41LDEuNSww''@;'; + put 'put ''LDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjMwIiB5PSIxNS40IiB3aWR0aD0iMiIgaGVpZ2h0PSI3LjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2''@;'; + put 'put ''Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEsMjV2My40QTIuNiwyLjYsMCwwLDAsMy42LDMxSDMyLjM0YTIuNiwyLjYsMCwwLDAsMi42LTIu''@;'; + put 'put ''NlYyNVptMzIsMy40YS42LjYsMCwwLDEtLjYuNkgzLjU2YS42LjYsMCwwLDEtLjYtLjZWMjYuNTNoOS45NWExLjY0LDEuNjQsMCwwLDAsMS41LDFoNy4xM2ExLjY0LDEuNjQsMCwwLDAsMS41LTFIMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZhNy41Miw3LjUyLDAsMCwxLC4wNy0xSDUuNUExLjUsMS41LDAsMCwwLDQsNi41VjIzSDZWN0gyMi41N0E3LjUyLDcuNTIsMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNVYyM2gyVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMjMuMTMsOUg4VjIyLjg4SDkuNlYxMC42SDI0LjA4QTcuNDksNy40OSwwLDAsMSwyMy4xMyw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9''@;'; + put 'put ''IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0xLjI2LS42LTEuNjEtMS41SDF2''@;'; + put 'put ''MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcsMTBIMjlWMjRoM1Y3LjU3QTEuNTQsMS41NCwwLDAsMCwzMC41''@;'; + put 'put ''LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44MSwyNmMtLjM1LjktLjk0LDEuNS0xLjYxLDEuNUgxMy43NGMtLjY4LDAtMS4yNi0uNi0xLjYxLTEuNUgx''@;'; + put 'put ''djEuNzVBMi40NSwyLjQ1LDAsMCwwLDMuNiwzMEgzMi40QTIuNDUsMi40NSwwLDAsMCwzNSwyNy43NVYyNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI5IiB5PSIxNS40IiB3aWR0aD0i''@;'; + put 'put ''MyIgaGVpZ2h0PSI4LjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDEwSDE5TDE5LDkuODksMjEuMjksNkg1LjVBMS41NCwxLjU0LDAsMCwwLDQsNy41N1YyNEg3WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgs''@;'; + put 'put ''MS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0x''@;'; + put 'put ''LjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDEw''@;'; + put 'put ''SDIzLjY2QTcuNDYsNy40NiwwLDAsMSwyMi41LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJhNy4xNCw3LjE0LDAs''@;'; + put 'put ''MCwxLTMsLjJWMjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVEaXNwbGF5PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjQuNUExLjUs''@;'; + put 'put ''MS41LDAsMCwwLDMyLjUsM1pNMzIsMjVINFY1SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNy43IDguNzYgMjguMTMgOC43NiAyOS45NCA3LjE2IDYuMSA3LjE2IDYuMSAyMyA3LjcgMjMgNy43''@;'; + put 'put ''IDguNzYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4y''@;'; + put 'put ''LDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0''@;'; + put 'put ''LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYy''@;'; + put 'put ''NUg0VjVIMjEuODdMMjMsM0gzLjVBMS41LDEuNSwwLDAsMCwyLDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCwwLDM0LDI1LjVWMTUuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3LjcgMjMgNy43IDguNzYgMTkuNyA4Ljc2IDIwLjYyIDcuMTYgNi4xIDcuMTYgNi4xIDIzIDcuNyAyMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4''@;'; + put 'put ''LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTYuMSwyM0g3LjdWOC43NkgyM2E3LjQ0LDcuNDQsMCwwLDEtLjQzLTEuNkg2LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMlYyNUg0''@;'; + put 'put ''VjVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjQuNUExLjUsMS41LDAsMCwwLDMyLjUsM1pNMzEsMjEuODNINVY3SDMx''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMySDI0LjI2YTMuNjEsMy42MSwwLDAsMS0xLjUtMi41MlYyOC4xM0gxMy4yNFYyOS41QTMuNjEsMy42MSwwLDAsMSwxMS43NCwzMkg5Ljk0YTEsMSwwLDEsMCwwLDJI''@;'; + put 'put ''MjYuMDZhLjkyLjkyLDAsMCwwLDEtMUExLDEsMCwwLDAsMjYsMzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMXY2LjQzSDVWN0gyMC43MUwyMywzSDMuNUExLjUs''@;'; + put 'put ''MS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxNS4zOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0''@;'; + put 'put ''LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45MiwwLDAsMCwxLTFBMSwxLDAsMCww''@;'; + put 'put ''LDI2LDMyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSwxMy40M3Y4LjQxSDVWN0gyMi41N2E3LjI5LDcuMjksMCwwLDEsLjU1LTRIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41''@;'; + put 'put ''LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjEyLjM0QTcuNDQsNy40NCwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9''@;'; + put 'put ''IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVUZXJtaW5hbD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwy''@;'; + put 'put ''LDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsN0gzMlY5LjJINFpNNCwyOVYxMC44SDMyVjI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2''@;'; + put 'put ''IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDE1LjY4IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcgMTMuNDggNyAxNS42OCIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcgMTMuNDggNyAxNS42OCAxMy43OSAxOC44IDcgMjEuOTEgNyAyNC4xMSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYyOUg0VjEwLjhIMTguNjhBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsLjQtLjY5SDRWN0gyMC43MWwxLjE1LTJINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4zOFoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTciIHk9IjIzIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcgMjQuMTEgMTYuNiAxOS43IDE2LjYgMTcuODkgNyAxMy40OCA3IDE1LjY4IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMjlINFYxMC44SDI0LjI0YTcuNTEsNy41MSwwLDAsMS0xLTEuNkg0VjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIs''@;'; + put 'put ''Ny41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIs''@;'; + put 'put ''MCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNi44LDE1LjgxVjEzLjE3bDEwLDQuNTl2Mi4wOGwtMTAsNC41OVYyMS43OGw2LjUxLTNaTTIzLjQsMjUuNEgxN1YyM2g2LjRaTTQsOS4yVjdIMzJWOS4yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bC40LS42OUg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTE2LjgsMTku''@;'; + put 'put ''ODNsLTEwLDQuNTlWMjEuNzhsNi41MS0zLTYuNTEtM1YxMy4xN2wxMCw0LjU5Wm02LjYsNS41N0gxN1YyM2g2LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEu''@;'; + put 'put ''MTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''YWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNi43OC00LjNINFY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCww''@;'; + put 'put ''LDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuOCwxOS44M2wtMTAsNC41OVYyMS43OGw2LjUxLTMtNi41MS0zVjEzLjE3bDEwLDQuNTlabTYuNiw1LjU3SDE3VjIzaDYuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2Vk''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVDb2RlPSgwLEUuY2xySWNvblNWRykoJzxw''@;'; + put 'put ''YXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTYuNTMtNC40NUExLDEsMCwxLDAsMjIuNTUsMTRsNS4zMiwzLjYzLTUuMzIsMy42M2ExLDEsMCwwLDAsMS4xMywxLjY1bDYuNTMtNC40NWExLDEsMCwwLDAsMC0xLjY1WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsOS44M2EuOS45LDAsMCwwLTEuMDkuNjZMMTUuNDEsMjQuMjlhLjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhsMy40NC0xMy44MUEuOS45LDAs''@;'; + put 'put ''MCwwLDE5Ljk0LDkuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAs''@;'; + put 'put ''MS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguNTYsMTEuNjIsMTUuNDEsMjQuMjlh''@;'; + put 'put ''LjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhMMTkuNzMsMTQuNGEzLjU5LDMuNTksMCwwLDEtMS4xNi0yLjc5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMzAuMjEsMTYuNzhsLTItMS4zOEgyNC42NGwzLjI0LDIuMjEtNS4zMiwzLjYzYTEsMSwwLDAsMCwxLjEzLDEuNjVsNi41My00LjQ1YTEsMSwwLDAsMCwwLTEuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDgu''@;'; + put 'put ''MTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjIxLDE2Ljc4bC02LjUzLTQuNDVBMSwxLDAsMSwwLDIyLjU1''@;'; + put 'put ''LDE0bDUuMzIsMy42My01LjMyLDMuNjNhMSwxLDAsMCwwLDEuMTMsMS42NWw2LjUzLTQuNDVhMSwxLDAsMCwwLDAtMS42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS45NCw5''@;'; + put 'put ''LjgzYS45LjksMCwwLDAtMS4wOS42NkwxNS40MSwyNC4yOWEuOS45LDAsMCwwLC42NiwxLjA5bC4yMiwwYS45LjksMCwwLDAsLjg3LS42OGwzLjQ0LTEzLjgxQS45LjksMCwwLDAsMTkuOTQsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMt''@;'; + put 'put ''LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUFwcGxpY2F0aW9uPSgw''@;'; + put 'put ''LEUuY2xySWNvblNWRykoJzxyZWN0IHg9IjUiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMyIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNEg0QTIs''@;'; + put 'put ''MiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTQsNkgzMnY0LjJINFpNNCwzMFYxMS44SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; + put 'put ''MzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRabTAsNi4ySDRWNkgzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI1IiB5PSI3IiB3aWR0''@;'; + put 'put ''aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IHg9IjEzIiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlQmF0dGVyeT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguNTksMTEuNzdhMSwxLDAsMCwwLTEu''@;'; + put 'put ''NzMsMWwyLjUsNC4zNC02LjA3LTEsNS4yOSwxMC41OWExLDEsMCwwLDAsMS43OS0uODlsLTMuNTMtNy4wOCw2LjM4LDEuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNS4xMiw0SDIzVjMuNThBMS41OCwx''@;'; + put 'put ''LjU4LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAsMCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWNS44OEExLjg4LDEuODgsMCwwLDAsMjUu''@;'; + put 'put ''MTIsNFpNMjUsMzJIMTFWNmg0VjRoNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC41OSwxMS43N2ExLDEsMCwwLDAtMS43MywxbDIuNSw0LjM0LTYuMDctMSw1LjI5LDEwLjU5YTEsMSwwLDAsMCwx''@;'; + put 'put ''Ljc5LS44OWwtMy41My03LjA4LDYuMzgsMS4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMz''@;'; + put 'put ''LjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTI1LDE1LjRWMzJIMTFWNmg0VjRoNlY2aC4yOGwxLjY0LTIuODVBMS41NywxLjU3LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAsMCwxMC44OCwzNEgyNS4xMkEx''@;'; + put 'put ''Ljg4LDEuODgsMCwwLDAsMjcsMzIuMTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjU5LDExLjc3YTEsMSwwLDAsMC0xLjczLDFsMi41LDQuMzQtNi4wNy0xLDUuMjksMTAuNTlhMSwxLDAsMCwwLDEuNzktLjg5bC0zLjUzLTcuMDgsNi4zOCwxLjA2''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDExLjU4VjMySDExVjZoNFY0aDZWNkgyMi41QTcuNDcsNy40NywwLDAsMSwyMywzLjM4LDEuNTcsMS41NywwLDAsMCwyMS40Miwy''@;'; + put 'put ''SDE0LjU4QTEuNTgsMS41OCwwLDAsMCwxMywzLjU4VjRIMTAuODhBMS44OCwxLjg4LDAsMCwwLDksNS44OFYzMi4xMkExLjg4LDEuODgsMCwwLDAsMTAuODgsMzRIMjUuMTJBMS44OCwxLjg4LDAsMCwwLDI3LDMyLjEyVjEyLjg3QTcuNSw3LjUsMCwwLDEsMjUsMTEuNThaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNFYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAs''@;'; + put 'put ''MCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NHYtMjhBMS4wOSwxLjA5LDAsMCwwLDI2LDRaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdMMTYuOSwxOC43WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYu''@;'; + put 'put ''ODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42NiwzLjY2LDAsMCwxLDIwLjU1LDE1bDIuNzYsNC43OUwxNi45LDE4LjdsMy4z''@;'; + put 'put ''Niw2LjczYTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmwuMDkuMTVBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgyMlYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42''@;'; + put 'put ''MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NFYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBj''@;'; + put 'put ''eT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMjJWMi42MkEuNi42LDAsMCwwLDIxLjQyLDJIMTQu''@;'; + put 'put ''NThhLjYuNiwwLDAsMC0uNTguNjJWNEgxMEExLjA5LDEuMDksMCwwLDAsOSw1LjA3djI4QTEsMSwwLDAsMCwxMCwzNEgyNmExLDEsMCwwLDAsMS0uOTRWMTIuODdBNy41LDcuNSwwLDAsMSwyMi41LDZaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYs''@;'; + put 'put ''MS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdMMTYuOSwxOC43WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVNb2JpbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGgg''@;'; + put 'put ''ZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAsMiwySDI1YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjUsNFpNMTEsNkgyNVYyNEgxMVptMCwyNFYyNkgyNXY0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCB4PSIxNyIgeT0iMjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAsMiwySDI1YTIsMiwwLDAsMCwy''@;'; + put 'put ''LTJWNkEyLDIsMCwwLDAsMjUsNFpNMTksMzBIMTdWMjhoMlptLTgtNFY2SDI1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZVRhYmxldD0oMCxFLmNsckljb25TVkcpKCc8cmVjdCB4PSIxNyIgeT0iMjkiIHdpZHRo''@;'; + put 'put ''PSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDJINkEyLDIsMCwwLDAsNCw0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwzMCwyWm0wLDJWMjYu''@;'; + put 'put ''MzhINlY0Wk02LDMyVjI4SDMwdjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwySDZBMiwyLDAsMCwwLDQsNFYzMmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWNEEyLDIsMCwwLDAsMzAsMlpN''@;'; + put 'put ''MTksMzJIMTdWMzBoMlpNNiwyOFY0SDMwVjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZU5ldHdvcmtHbG9iZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThh''@;'; + put 'put ''MSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1LDJhMTQsMTQsMCwwLDAtMTQsMTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEsMCwxNy43NSwyWm0wLDJhMTIs''@;'; + put 'put ''MTIsMCwwLDEsOC40NCwzLjQ4YzAsLjMzLDAsLjY2LDAsMUExOC41MSwxOC41MSwwLDAsMCwxNCw4LjUzYTIuMzMsMi4zMywwLDAsMC0xLjE0LS42MWwtLjI1LDBjLS4xMi0uNDItLjIzLS44NC0uMzItMS4yN3MtLjE0LS44MS0uMTktMS4yMkExMS45MiwxMS45MiwwLDAsMSwxNy43NSw0Wm0t''@;'; + put 'put ''Myw1Ljg3QTE3LDE3LDAsMCwxLDI1LjkyLDEwYTE2LjksMTYuOSwwLDAsMS0zLjExLDcsMi4yOCwyLjI4LDAsMCwwLTIuNTguNTdjLS4zNS0uMi0uNy0uNC0xLS42M2ExNiwxNiwwLDAsMS00LjkzLTUuMjMsMi4yNSwyLjI1LDAsMCwwLC40Ny0xLjc3Wm0tNC0zLjZjMCwuMjEuMDYuNDMuMS42''@;'; + put 'put ''NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0LDAsMCwxLDUuOCwxNi45''@;'; + put 'put ''MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4yNy44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAsMS02LjIsMy4xMUEyLjM0''@;'; + put 'put ''LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQzLDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAsMCw0LjMyLjU2bC41Myww''@;'; + put 'put ''QTEyLDEyLDAsMCwxLDE3Ljc1LDI4Wm02LjUxLTguOWEyLjMzLDIuMzMsMCwwLDAtLjMzLTEuMTksMTguNCwxOC40LDAsMCwwLDMuMzktNy4zN3EuNzUuMzUsMS40OC43OGExMiwxMiwwLDAsMSwuNDIsOC4yQTE2LDE2LDAsMCwxLDI0LjI3LDE5LjExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTMxLjczLDE1LjRoLTJjMCwuMiwwLC40LDAsLjYxYTEyLDEyLDAsMCwxLS41MywzLjUyLDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC44NywxOC44NywwLDAsMCwxLjYyLTIuNTJIMjMuODNhMTcuMjksMTcuMjksMCwwLDEtMSwx''@;'; + put 'put ''LjU0LDIuMjgsMi4yOCwwLDAsMC0yLjU4LjU3Yy0uMzUtLjItLjctLjQtMS0uNjNhMTYsMTYsMCwwLDEtNC45My01LjIzLDIuMjUsMi4yNSwwLDAsMCwuNDctMS43N0ExNy4wOCwxNy4wOCwwLDAsMSwxOS41Niw5bC44Ny0xLjUxYTE4LjU5LDE4LjU5LDAsMCwwLTYuMzksMSwyLjMzLDIuMzMs''@;'; + put 'put ''MCwwLDAtMS4xNC0uNjFsLS4yNSwwYy0uMTItLjQyLS4yMy0uODQtLjMyLTEuMjdzLS4xNC0uODEtLjE5LTEuMjJBMTEuODgsMTEuODgsMCwwLDEsMjIsNC43OUwyMywzQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDAsMCwzMS43NiwxNkMz''@;'; + put 'put ''MS43NiwxNS44LDMxLjc0LDE1LjYsMzEuNzMsMTUuNFptLTIxLTkuMTNjMCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2LjI3Wm0wLDE1LjcxQTIu''@;'; + put 'put ''MzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4yNy44My41MiwxLjI1Ljc2''@;'; + put 'put ''QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAsMS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQzLDE4LjQzLDAsMCwwLDct''@;'; + put 'put ''My41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAsMCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; + put 'put ''PSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zMS41LDEzLjM1YTcuNTQsNy41NCwwLDAsMS0xLjUuMTVsLS41MSwwYTExLjkxLDExLjkxLDAsMCwxLS4yNSw2LDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC41OSwxOC41OSwwLDAsMCwyLjc4LTUuMTgsNy40OSw3LjQ5''@;'; + put 'put ''LDAsMCwxLTEuMzEtLjgyLDE3LDE3LDAsMCwxLTIuNjEsNSwyLjI4LDIuMjgsMCwwLDAtMi41OC41N2MtLjM1LS4yLS43LS40LTEtLjYzYTE2LDE2LDAsMCwxLTQuOTMtNS4yMywyLjI1LDIuMjUsMCwwLDAsLjQ3LTEuNzcsMTcsMTcsMCwwLDEsOC41My0uNjIsNy40Myw3LjQzLDAsMCwxLS41''@;'; + put 'put ''Ni0xLjU5QTE4LjU2LDE4LjU2LDAsMCwwLDE0LDguNTNhMi4zMywyLjMzLDAsMCwwLTEuMTQtLjYxbC0uMjUsMGMtLjEyLS40Mi0uMjMtLjg0LS4zMi0xLjI3cy0uMTQtLjgxLS4xOS0xLjIyQTExLjkyLDExLjkyLDAsMCwxLDIyLjU3LDVhNy40NSw3LjQ1LDAsMCwxLC41My0yQTE0LDE0LDAs''@;'; + put 'put ''MCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMGExNCwxNCwwLDEsMCwyNy42OC00Wk0xMC43Niw2LjI3YzAsLjIxLjA2LjQzLjEuNjQuMDkuNDQuMjEuODcuMzMsMS4zYTIuMjgsMi4yOCwwLDAsMC0xLjEsMi4yNUExOC4zMiwxOC4zMiwwLDAsMCw1LjksMTQuMjIsMTIsMTIs''@;'; + put 'put ''MCwwLDEsMTAuNzYsNi4yN1ptMCwxNS43MUEyLjM0LDIuMzQsMCwwLDAsOS4yLDIzLjc0bC0uNjQsMEExMS45NCwxMS45NCwwLDAsMSw1LjgsMTYuOTJsLjExLS4xOWExNi45LDE2LjksMCwwLDEsNC44MS00Ljg5LDIuMzEsMi4zMSwwLDAsMCwyLjI4LjYzLDE3LjUzLDE3LjUzLDAsMCwwLDUu''@;'; + put 'put ''MzUsNS42NWMuNDEuMjcuODMuNTIsMS4yNS43NkEyLjMyLDIuMzIsMCwwLDAsMTkuNzgsMjBhMTYuOTQsMTYuOTQsMCwwLDEtNi4yLDMuMTFBMi4zNCwyLjM0LDAsMCwwLDEwLjc2LDIyWm03LDZhMTEuOTIsMTEuOTIsMCwwLDEtNS44MS0xLjUxbC4yOC0uMDZhMi4zNCwyLjM0LDAsMCwwLDEu''@;'; + put 'put ''NTctMS43OSwxOC40MywxOC40MywwLDAsMCw3LTMuNSwyLjI5LDIuMjksMCwwLDAsMy0uNjIsMTcuNDEsMTcuNDEsMCwwLDAsNC4zMi41NmwuNTMsMEExMiwxMiwwLDAsMSwxNy43NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdl''@;'; + put 'put ''ZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41OCwzMmgtMThhMSwxLDAs''@;'; + put 'put ''MSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43Miw5Ljg3YTIuMjUsMi4yNSwwLDAsMS0uNDcsMS43NywxNiwxNiwwLDAsMCw0LjkzLDUuMjNjLjM0LjIzLjY5LjQzLDEs''@;'; + put 'put ''LjYzYTIuMjgsMi4yOCwwLDAsMSwyLjU4LS41NywxNi45LDE2LjksMCwwLDAsMy4xMS03QTE3LDE3LDAsMCwwLDE0LjcyLDkuODdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1LDJhMTQsMTQsMCwwLDAtMTQs''@;'; + put 'put ''MTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEsMCwxNy43NSwyWk0yOC4xLDIxLjA5YTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSwwLDAsMS0zLC42MiwxOC40MywxOC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCwwLDEtMS41NywxLjc5bC0uMjku''@;'; + put 'put ''MDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiwwLDAsMS0uMTgtMS4xN2MtLjQyLS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3LjUzLDAsMCwxLDEzLDEyLjQ3''@;'; + put 'put ''YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43NSwwLDAsMSw0LjItMy44LDIuMjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40My0uMjQtLjg2LS4zMy0xLjMs''@;'; + put 'put ''MC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQsOC41M2ExOC41MSwxOC41MSwwLDAsMSwxMi4xMS0uMDdjMC0uMzIsMC0uNjUsMC0xaDBhMTIsMTIsMCwwLDEsMi42''@;'; + put 'put ''MiwzLjg1aDBxLS43My0uNDMtMS40OC0uNzhhMTguNCwxOC40LDAsMCwxLTMuMzksNy4zNywyLjMzLDIuMzMsMCwwLDEsLjMzLDEuMTksMjIsMjIsMCwwLDAsNSwuNDUsMTEuODgsMTEuODgsMCwwLDEtLjYxLDEuNTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjU4LDMyaC0xOGExLDEsMCwxLDAsMCwyaDE4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjczLDE1LjRI''@;'; + put 'put ''MjUuNTZhMTguODcsMTguODcsMCwwLDEtMS42MiwyLjUyLDIuMzMsMi4zMywwLDAsMSwuMzMsMS4xOSwyMiwyMiwwLDAsMCw1LC40NSwxMS44OCwxMS44OCwwLDAsMS0uNjEsMS41M0gyOC4xYTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSwwLDAsMS0zLC42MiwxOC40Mywx''@;'; + put 'put ''OC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCwwLDEtMS41NywxLjc5bC0uMjkuMDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiwwLDAsMS0uMTgtMS4xN2MtLjQy''@;'; + put 'put ''LS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3LjUzLDAsMCwxLDEzLDEyLjQ3YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43NSwwLDAsMSw0LjItMy44LDIu''@;'; + put 'put ''MjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40My0uMjQtLjg2LS4zMy0xLjMsMC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQsOC41M2ExOC41OSwxOC41OSww''@;'; + put 'put ''LDAsMSw2LjM5LTFMMjMsM0ExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBBMTQsMTQsMCwwLDAsMzEuNzYsMTZDMzEuNzYsMTUuOCwzMS43NCwxNS42LDMxLjczLDE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0y''@;'; + put 'put ''LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjI2LDExLjY0YTE2LDE2LDAsMCwwLDQuOTMsNS4yM2MuMzQuMjMuNjkuNDMsMSwuNjNhMi4yOCwyLjI4LDAsMCwxLDIuNTgtLjU3LDE3LjI5LDE3LjI5LDAsMCwwLDEtMS41NGgtMS42QTMuNjgsMy42OCwwLDAsMSwxOSw5''@;'; + put 'put ''Ljg5TDE5LjU2LDlhMTcuMDgsMTcuMDgsMCwwLDAtNC44NC44OCwyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMs''@;'; + put 'put ''MTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxl''@;'; + put 'put ''cnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNSwxMy4z''@;'; + put 'put ''NWE3LjU0LDcuNTQsMCwwLDEtMS41LjE1LDcuNDYsNy40NiwwLDAsMS0zLjI4LS43NiwxOC41OSwxOC41OSwwLDAsMS0yLjc4LDUuMTgsMi4zMywyLjMzLDAsMCwxLC4zMywxLjE5LDIyLDIyLDAsMCwwLDUsLjQ1LDExLjg4LDExLjg4LDAsMCwxLS42MSwxLjUzSDI4LjFhMTcuNDEsMTcuNDEs''@;'; + put 'put ''MCwwLDEtNC4zMi0uNTYsMi4yOSwyLjI5LDAsMCwxLTMsLjYyLDE4LjQzLDE4LjQzLDAsMCwxLTcsMy41LDIuMzQsMi4zNCwwLDAsMS0xLjU3LDEuNzlsLS4yOS4wNmExMS45MywxMS45MywwLDAsMS0zLjM5LTIuOGwuNjYsMGEyLjMzLDIuMzMsMCwwLDEsNC4zNy0uNThBMTYuOTQsMTYuOTQs''@;'; + put 'put ''MCwwLDAsMTkuNzgsMjBhMi4zMiwyLjMyLDAsMCwxLS4xOC0xLjE3Yy0uNDItLjI0LS44NC0uNDktMS4yNS0uNzZBMTcuNTMsMTcuNTMsMCwwLDEsMTMsMTIuNDdhMi4zMSwyLjMxLDAsMCwxLTIuMjgtLjYzLDI3LjMxLDI3LjMxLDAsMCwwLTUsNC43NGMwLS4yLDAtLjM5LDAtLjU3YTEyLDEy''@;'; + put 'put ''LDAsMCwxLC4xNC0xLjczLDE4Ljc1LDE4Ljc1LDAsMCwxLDQuMi0zLjgsMi4yOCwyLjI4LDAsMCwxLDEuMS0yLjI1Yy0uMTItLjQzLS4yNC0uODYtLjMzLTEuMywwLS4xNCwwLS4yOS0uMTEtLjY0YTEyLDEyLDAsMCwxLDEuMzctLjg3Yy4xLjU5LjE0LjkuMjEsMS4yMXMuMi44NS4zMiwxLjI3''@;'; + put 'put ''bC4yNSwwQTIuMzMsMi4zMywwLDAsMSwxNCw4LjUzYTE4LjU2LDE4LjU2LDAsMCwxLDguNjUtLjg3LDcuNDUsNy40NSwwLDAsMSwuNDEtNC41OUExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBhMTQsMTQsMCwxLDAsMjcuNjgtNFoiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNzIsOS44N2EyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzcsMTYsMTYsMCwwLDAsNC45Myw1LjIzYy4zNC4yMy42OS40MywxLC42M2EyLjI4LDIuMjgsMCwwLDEsMi41OC0u''@;'; + put 'put ''NTcsMTcsMTcsMCwwLDAsMi42MS01LDcuNTIsNy41MiwwLDAsMS0yLjE2LTIuNjdBMTcsMTcsMCwwLDAsMTQuNzIsOS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYi''@;'; + put 'put ''IHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVOZXR3b3JrU2V0dGluZ3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjg1LDI3LjQ0YTIuMjksMi4yOSww''@;'; + put 'put ''LDAsMCwxLjc0LTEuNjhjLjU0LS4xNCwxLjA2LS4zMiwxLjU5LS41MXYtMS4yYTIuNzcsMi43NywwLDAsMSwuMDYtLjUxLDE3LjQ0LDE3LjQ0LDAsMCwxLTEuODIuNjIsMi4yOCwyLjI4LDAsMCwwLTQuMjguNjNsLS40NSwwaDBhMTEuOTMsMTEuOTMsMCwwLDEtMi44OC03LjI3LDE3Ljc5LDE3''@;'; + put 'put ''Ljc5LDAsMCwxLDUtNC43MiwyLjIzLDIuMjMsMCwwLDAsMi4yOS41NiwxOC41MiwxOC41MiwwLDAsMCw0LjQ3LDUsMi43NCwyLjc0LDAsMCwxLC4yMS0uMjRsLjk1LS45MWExNi45LDE2LjksMCwwLDEtNC4zNS00Ljc5LDIuMjcsMi4yNywwLDAsMCwuMzUtMS4yYzAtLjA3LDAtLjE0LDAtLjIy''@;'; + put 'put ''QTE3LjY5LDE3LjY5LDAsMCwxLDI1LDExYTE3LjQ5LDE3LjQ5LDAsMCwxLTEuMTUsMy4zNGwuMTksMGgxLjU2YTE5LDE5LDAsMCwwLC45MS0yLjcyYy40My4xOS44NC40MSwxLjI2LjY0YTExLjk0LDExLjk0LDAsMCwxLDEsNC4wOWwwLDBBMi43NywyLjc3LDAsMCwxLDMwLDE2YTIuNzMsMi43''@;'; + put 'put ''MywwLDAsMSwuNjguMUExNCwxNCwwLDEsMCwxNi4wOCwzMWEyLjcyLDIuNzIsMCwwLDEsMC0yQTExLjkzLDExLjkzLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEsMCwwLDAtMTIuMzUuMTFBMi4y''@;'; + put 'put ''OCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIuNTNBMTEuOTIsMTEuOTIsMCwwLDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40NSwxOS40NSwwLDAsMCw1LDE0''@;'; + put 'put ''Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDIxLjE5QTMuODQsMy44NCwwLDEsMCwyOC44OCwyNSwzLjg3LDMuODcsMCwwLDAsMjUsMjEuMTlabTAsNi4wOEEy''@;'; + put 'put ''LjI0LDIuMjQsMCwxLDEsMjcuMjgsMjUsMi4yNiwyLjI2LDAsMCwxLDI1LDI3LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMTcsMjQuMTRhMS4xNCwxLjE0LDAsMCwwLS43LTEuMWwtMS41Ni0uNDZx''@;'; + put 'put ''LS4xMS0uMzItLjI2LS42M2wuNzItMS4zM2ExLjE0LDEuMTQsMCwwLDAtLjIxLTEuMzRsLTEuMzQtMS4zMmExLjE0LDEuMTQsMCwwLDAtMS4zNC0uMmwtMS4zNC43MWE3LjI4LDcuMjgsMCwwLDAtLjY3LS4yOEwyNywxNi43MWExLjE0LDEuMTQsMCwwLDAtMS4wOC0uNzZIMjRhMS4xNCwxLjE0''@;'; + put 'put ''LDAsMCwwLTEuMDguOGwtLjQ0LDEuNDNhNy4zMiw3LjMyLDAsMCwwLS42OC4yOGwtMS4zMi0uN2ExLjE0LDEuMTQsMCwwLDAtMS4zMy4xOWwtMS4zNywxLjMxYTEuMTQsMS4xNCwwLDAsMC0uMjEsMS4zNWwuNywxLjI4cS0uMTYuMzItLjI4LjY1TDE2LjU4LDIzYTEuMTMsMS4xMywwLDAsMC0u''@;'; + put 'put ''ODEsMS4wOXYxLjg3QTEuMTQsMS4xNCwwLDAsMCwxNi41OSwyN2wxLjQ3LjQ0cS4xMi4zMi4yOC42NGwtLjcyLDEuMzVhMS4xNCwxLjE0LDAsMCwwLC4yLDEuMzVsMS4zNCwxLjMyYTEuMTQsMS4xNCwwLDAsMCwxLjM0LjJsMS4zNy0uNzJxLjMxLjE0LjYzLjI2bC40NCwxLjQ3YTEuMTQsMS4x''@;'; + put 'put ''NCwwLDAsMCwxLjA5LjhoMS45QTEuMTQsMS4xNCwwLDAsMCwyNywzMy4zMWwuNDQtMS40N2MuMjEtLjA3LjQyLS4xNi42Mi0uMjVsMS4zOC43M2ExLjE0LDEuMTQsMCwwLDAsMS4zMy0uMmwxLjM0LTEuMzJhMS4xNCwxLjE0LDAsMCwwLC4yMS0xLjM1bC0uNzMtMS4zNHEuMTQtLjMuMjUtLjZs''@;'; + put 'put ''MS41LS40NEExLjEzLDEuMTMsMCwwLDAsMzQuMTcsMjZabS0xLjYsMS41LTIsLjU4LS4xMi40MkE1LjU1LDUuNTUsMCwwLDEsMzAsMjcuNzNsLS4yMS4zOCwxLDEuNzktLjg2Ljg0LTEuODItMS0uMzcuMmE1Ljc4LDUuNzgsMCwwLDEtMS4xMi40NmwtLjQyLjEyLS41OSwySDI0LjM4bC0uNTkt''@;'; + put 'put ''MS45NS0uNDItLjEyQTUuODYsNS44NiwwLDAsMSwyMi4yNCwzMGwtLjM3LS4yLTEuODEsMS0uODYtLjg1LDEtMS44Mi0uMjItLjM4YTUuNiw1LjYsMCwwLDEtLjQ5LTEuMTNsLS4xMy0uNDEtMS45NS0uNThWMjQuNDJsMS45NC0uNTguMTItLjQxYTUuNTMsNS41MywwLDAsMSwuNDktMS4xNGwu''@;'; + put 'put ''MjItLjM5LTEtMS43My44Ny0uODQsMS43Ny45NC4zOC0uMjFhNS44LDUuOCwwLDAsMSwxLjE3LS40OWwuNDEtLjEyLjU5LTEuOTFoMS4yM2wuNTgsMS45LjQxLjEyYTUuNzksNS43OSwwLDAsMSwxLjE2LjQ4bC4zOC4yMSwxLjgtLjk1Ljg2Ljg1LTEsMS43Ny4yMS4zOGE1LjUzLDUuNTMsMCww''@;'; + put 'put ''LDEsLjQ3LDEuMTNsLjEyLjQyLDEuOTMuNTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwyMy42MywzMiwyM2E3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0''@;'; + put 'put ''TDMwLjksMTcuODZhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMWE3LDcsMCwwLDAtMS40My0uNjFsLS42MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxTDIwLDE3LjhhLjM3LjM3LDAsMCwwLS40NC4wN0wx''@;'; + put 'put ''OCwxOS4zMWEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LDcsMCwwLDAsMTguMzUsMjNsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2LjM1bDIsLjYxQTcsNywwLDAsMCwxOSwyOC4zN2wtMSwxLjlhLjM3LjM3LDAsMCwwLC4wNy40NGwxLjQ1LDEuNDVh''@;'; + put 'put ''LjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTdsLjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40NC0uMDdsMS40NS0xLjQ1YS4z''@;'; + put 'put ''Ny4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhBNyw3LDAsMCwwLDMxLjk1LDI3bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjI0QS4zNy4zNywwLDAsMCwzNCwyMy42M1ptLTguODMsNC43MkEzLjMzLDMuMzMsMCwxLDEsMjguNTMsMjUsMy4zMywzLjMzLDAsMCwxLDI1LjE5LDI4LjM0WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC44NSwyNy40NGEyLjI5LDIuMjksMCwwLDAsMS43NC0xLjY4LDE5LjcxLDE5LjcxLDAsMCwwLDEuODktLjZWMjMuOTVhMiwyLDAsMCwxLC4wOS0uNTUsMTcuNDIsMTcuNDIs''@;'; + put 'put ''MCwwLDEtMi4xNy43OCwyLjI4LDIuMjgsMCwwLDAtNC4yOC42M2wtLjQ1LDBoMGExMS45MywxMS45MywwLDAsMS0yLjg4LTcuMjcsMTcuNzksMTcuNzksMCwwLDEsNS00LjcyLDIuMjMsMi4yMywwLDAsMCwyLjI5LjU2LDE4LjUyLDE4LjUyLDAsMCwwLDQuNjUsNS4wOSwxLjkzLDEuOTMsMCww''@;'; + put 'put ''LDEsLjIzLS4zMmwuODktLjg3YTE2Ljg5LDE2Ljg5LDAsMCwxLTQuNDktNC44OSwyLjI3LDIuMjcsMCwwLDAsLjM1LTEuMmMwLS4wNywwLS4xNCwwLS4yMkExNy42OSwxNy42OSwwLDAsMSwyNSwxMWExNy40OSwxNy40OSwwLDAsMS0xLjE1LDMuMzUsMS45NCwxLjk0LDAsMCwxLC4zMS0uMDVo''@;'; + put 'put ''MS40NWExOS4wNiwxOS4wNiwwLDAsMCwuOS0yLjdjLjQzLjE5Ljg0LjQxLDEuMjYuNjRhMTEuOTMsMTEuOTMsMCwwLDEsMSw0LjYzbDEtLjUxYTIsMiwwLDAsMSwuOTItLjIzaC4wOEExNCwxNCwwLDEsMCwxNi40NCwzMWExLjk0LDEuOTQsMCwwLDEsLjEyLTEuNDZsLjI4LS41M2gtLjA3QTEx''@;'; + put 'put ''LjkxLDExLjkxLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEsMCwwLDAtMTIuMzUuMTFBMi4yOCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIuNTNBMTEuOTIsMTEuOTIsMCww''@;'; + put 'put ''LDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40NSwxOS40NSwwLDAsMCw1LDE0Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTIiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVOZXR3b3JrU3dpdGNoPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMC43OCw4LjQxQTIsMiwwLDAsMCwyOC44Nyw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0u''@;'; + put 'put ''MDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2QTIsMiwwLDAsMCwzMy45MSwxOC40N1pNMzIsMjdINFYxOS4wNkw3LjEzLDlIMjguODdMMzIsMTkuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIg''@;'; + put 'put ''eT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0i''@;'; + put 'put ''MS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIg''@;'; + put 'put ''aGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMywxNS40SDMwLjg2TDMyLDE5LjA2VjI3SDRWMTkuMDZMNy4xMyw5SDE5LjU2bDEuMTUtMkg3LjEzQTIsMiwwLDAsMCw1LjIyLDguNDFMMi4wOSwxOC40OGEyLDIs''@;'; + put 'put ''MCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNkEyLDIsMCwwLDAsMzMuOTEsMTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; + put 'put ''Ni44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''OC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0''@;'; + put 'put ''IHg9IjEyLjEyIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNy4xMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''NC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4yMyIgeT0i''@;'; + put 'put ''MTgiIHdpZHRoPSIyMy42OSIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40N2wtMS42NS01LjMyYTcuNDksNy40OSwwLDAsMS0yLC4zM0wzMiwx''@;'; + put 'put ''OS4wNlYyN0g0VjE5LjA2TDcuMTMsOWgxNmE3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjkxLDE4LjQ3LDMwLjc4LDguNDFBMiwyLDAsMCwwLDI4Ljg3LDdINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJW''@;'; + put 'put ''MTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAs''@;'; + put 'put ''Mi0yVjE5LjA2YTIsMiwwLDAsMC0uMDktLjU5Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEu''@;'; + put 'put ''MTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yNiwxMy4xNUE3LjQ5LDcuNDksMCwwLDEsMjIuNTcsN0g3LjEzQTIsMiwwLDAsMCw1LjIyLDguNDFMMi4w''@;'; + put 'put ''OSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNmEyLDIsMCwwLDAtLjA5LS41OVpNOC45MiwyNUg3LjEyVjIyaDEuOFptNSwwaC0xLjhWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMEgyMi4xVjIyaDEuOFptNSwwSDI3LjFW''@;'; + put 'put ''MjJoMS44Wk0zMSwxOS40SDVWMThIMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlUm91dGVyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxNC44N2w1LjExLTUuMTRhMSwxLDAsMSwwLTEuNDItMS40MUwxOSwxMVYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEsOC4z''@;'; + put 'put ''MmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjEuMTNsLTUuMTEsNS4xNGExLDEsMCwwLDAsMS40MiwxLjQxTDE3LDI1djcuNjlhMSwxLDAsMCwwLDIsMFYyNWwyLjY5''@;'; + put 'put ''LDIuNzFhMSwxLDAsMCwwLDEuNDItMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJMMzAuMTUsMTdIMjIuNDZhMSwxLDAsMSwwLDAsMmg3LjY5bC0y''@;'; + put 'put ''LjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUuODUsMTloNy42OWExLDEsMCwwLDAsMC0ySDUuODVsMi43MS0yLjY5YTEsMSwwLDEsMC0xLjQxLTEu''@;'; + put 'put ''NDJMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMSwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxLjEzbC01LjExLDUuMTRhMSwxLDAsMCwwLDEuNDIsMS40MUwxNywyNXY3LjY5YTEsMSww''@;'; + put 'put ''LDAsMCwyLDBWMjVsMi42OSwyLjcxYTEsMSwwLDAsMCwxLjQyLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5aDcuNjlhMSwxLDAsMCwwLDAtMkg1Ljg1bDIu''@;'; + put 'put ''NzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zOCwxNS40SDI4''@;'; + put 'put ''LjU0TDMwLjE1LDE3SDIyLjQ2YTEsMSwwLDEsMCwwLDJoNy42OWwtMi43MSwyLjY5YTEsMSwwLDAsMCwxLjQxLDEuNDJMMzQsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x''@;'; + put 'put ''OCwxNC44N2wxLjE1LTEuMTYtLjEtLjE1QTMuNjgsMy42OCwwLDAsMSwxOSwxMFYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEsOC4zMmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuODdsNS4xMS01LjE0YTEsMSwwLDEsMC0xLjQyLTEuNDFMMTksMTFWMy4zM2ExLDEsMCwwLDAtMiwwVjExTDE0LjMxLDguMzJhMSwxLDAsMSwwLTEu''@;'; + put 'put ''NDIsMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMS4xM2wtNS4xMSw1LjE0YTEsMSwwLDAsMCwxLjQyLDEuNDFMMTcsMjV2Ny42OWExLDEsMCwwLDAsMiwwVjI1bDIu''@;'; + put 'put ''NjksMi43MWExLDEsMCwwLDAsMS40Mi0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJMMzAuMTUsMTdIMjIuNDZhMSwx''@;'; + put 'put ''LDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5aDcuNjlhMSwxLDAsMCwwLDAt''@;'; + put 'put ''Mkg1Ljg1bDIuNzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIg''@;'; + put 'put ''Y3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMS42N2ExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxOCwxLjY3Wk0xMy44Niw5''@;'; + put 'put ''LjkyYS44LjgsMCwwLDEsMS4xMywwbDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2Ni4xOEwyMSw5LjkyYS44LjgsMCwxLDEsMS4xMywxLjE0TDE4LDE1LjE1bC00LjE0LTQuMUEuOC44LDAsMCwxLDEzLjg2LDkuOTJaTTEwLjMyLDIxLjc0YS44LjgsMCwwLDEtMS4xMywwTDUsMTcu''@;'; + put 'put ''NjdsNC4xOS00LjA5YS44LjgsMCwxLDEsMS4xMiwxLjE0bC0yLjIsMi4xNGg2LjI3YS44LjgsMCwwLDEsMCwxLjZIOC4xMWwyLjIsMi4xNUEuOC44LDAsMCwxLDEwLjMyLDIxLjc0Wm0xMS44MiwzLjY3YS44LjgsMCwwLDEtMS4xMywwTDE4LjgsMjMuMjNWMjkuNGEuOC44LDAsMCwxLTEuNiww''@;'; + put 'put ''VjIzLjIzTDE1LDI1LjQyYS44LjgsMCwxLDEtMS4xMy0xLjE0TDE4LDIwLjE4bDQuMTQsNC4xQS44LjgsMCwwLDEsMjIuMTQsMjUuNDFabTQuNjctMy42NmEuOC44LDAsMSwxLTEuMTItMS4xNGwyLjItMi4xNUgyMS42M2EuOC44LDAsMCwxLDAtMS42aDYuMjdsLTIuMi0yLjE0YS44LjgsMCwx''@;'; + put 'put ''LDEsMS4xMi0xLjE0TDMxLDE3LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MiwxNS4zOUgyOC42OEwzMSwxNy42N2wtNC4xOSw0LjA5YS44LjgsMCwxLDEtMS4xMi0xLjE0bDIuMi0yLjE1SDIxLjYzYS44''@;'; + put 'put ''LjgsMCwwLDEsMC0xLjZoNi4yN2wtMS41LTEuNDdIMjIuMjNhMy42OCwzLjY4LDAsMCwxLTMtMS41MUwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDEsMSwxNSw5LjkybDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2NC40OUEzLjY1LDMuNjUsMCwwLDEsMTksOS44OWw0LjIyLTcu''@;'; + put 'put ''MzFBMTYsMTYsMCwxLDAsMzQsMTcuNjcsMTYsMTYsMCwwLDAsMzMuODIsMTUuMzlabS0yMy41LDYuMzVhLjguOCwwLDAsMS0xLjEzLDBMNSwxNy42N2w0LjE5LTQuMDlhLjguOCwwLDEsMSwxLjEyLDEuMTRsLTIuMiwyLjE0aDYuMjdhLjguOCwwLDAsMSwwLDEuNkg4LjExbDIuMiwyLjE1QS44''@;'; + put 'put ''LjgsMCwwLDEsMTAuMzIsMjEuNzRabTExLjgyLDMuNjdhLjguOCwwLDAsMS0xLjEzLDBMMTguOCwyMy4yM1YyOS40YS44LjgsMCwwLDEtMS42LDBWMjMuMjNMMTUsMjUuNDJhLjguOCwwLDEsMS0xLjEzLTEuMTRMMTgsMjAuMThsNC4xNCw0LjFBLjguOCwwLDAsMSwyMi4xNCwyNS40MVoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEu''@;'; + put 'put ''MTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4yMiwxMi43NkE3LjQ5LDcuNDksMCwwLDEsMjMuMzIsMi42''@;'; + put 'put ''YTE2LDE2LDAsMSwwLDkuOSwxMC4xN1pNMTMuODYsOS45MmEuOC44LDAsMCwxLDEuMTMsMGwyLjIxLDIuMTlWNS45M2EuOC44LDAsMCwxLDEuNiwwdjYuMThMMjEsOS45MmEuOC44LDAsMSwxLDEuMTMsMS4xNEwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDAsMSwxMy44Niw5LjkyWk0xMC4z''@;'; + put 'put ''MiwyMS43NGEuOC44LDAsMCwxLTEuMTMsMEw1LDE3LjY3bDQuMTktNC4wOWEuOC44LDAsMSwxLDEuMTIsMS4xNGwtMi4yLDIuMTRoNi4yN2EuOC44LDAsMCwxLDAsMS42SDguMTFsMi4yLDIuMTVBLjguOCwwLDAsMSwxMC4zMiwyMS43NFptMTEuODIsMy42N2EuOC44LDAsMCwxLTEuMTMsMEwx''@;'; + put 'put ''OC44LDIzLjIzVjI5LjRhLjguOCwwLDAsMS0xLjYsMFYyMy4yM0wxNSwyNS40MmEuOC44LDAsMSwxLTEuMTMtMS4xNEwxOCwyMC4xOGw0LjE0LDQuMUEuOC44LDAsMCwxLDIyLjE0LDI1LjQxWm00LjY3LTMuNjZhLjguOCwwLDEsMS0xLjEyLTEuMTRsMi4yLTIuMTVIMjEuNjNhLjguOCwwLDAs''@;'; + put 'put ''MSwwLTEuNmg2LjI3bC0yLjItMi4xNGEuOC44LDAsMSwxLDEuMTItMS4xNEwzMSwxNy42N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVWTT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTEsNUgyNVY4aDJWNWEyLDIsMCwwLDAtMi0ySDExQTIsMiwwLDAsMCw5LDV2Ni44NWgy''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTBIMTd2Mmg4djZoMlYxMmgzVjI2SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlYyOGg4YTIsMiwwLDAsMCwyLTJWMTJBMiwyLDAsMCwwLDMwLDEwWk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwyaDR2M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLDVIMjEuODdM''@;'; + put 'put ''MjMsM0gxMUEyLDIsMCwwLDAsOSw1djYuODVoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjUuMDEiIHk9IjE1LjQiIHdpZHRoPSIxLjk5IiBoZWlnaHQ9IjIuNiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuNFYyNkgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjho''@;'; + put 'put ''OGEyLDIsMCwwLDAsMi0yVjE1LjRaTTYsMzFWMTdIMjB2OUgxNlYyMEgxNHY2YTIsMiwwLDAsMCwyLDJoNHYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMTB2MmgxLjU3''@;'; + put 'put ''QTMuNjcsMy42NywwLDAsMSwxOSwxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEu''@;'; + put 'put ''MjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEx''@;'; + put 'put ''LDVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDExQTIsMiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVoMFYyNkgyMlYxN2EyLDIs''@;'; + put 'put ''MCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjhoOGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwyaDR2M1oiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMmg4djZoMlYxMi44N0E3LjUyLDcuNTIsMCwwLDEsMjMuNjYsMTBIMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTks''@;'; + put 'put ''MTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDI3VjVhMiwyLDAsMCwwLTItMkgxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMEgxNy4xOWEyLDIsMCwwLDAtMiwydjEu''@;'; + put 'put ''NEgyMEEzLjYsMy42LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjkuNkgxNy4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCww''@;'; + put 'put ''LDAsMi0yVjEyQTIsMiwwLDAsMCwzMCwxMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42aDIuNzJMMjMsM0gxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4xOSwxMGEyLDIsMCwwLDAtMiwydjEuNEgxOUEzLjY4LDMuNjgsMCwwLDEsMTksMTBaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjIxLDE1LjRBMy41NSwzLjU1LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjkuNkgx''@;'; + put 'put ''Ny4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu''@;'; + put 'put ''MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDIyLjlBNy40NSw3LjQ1LDAsMCwxLDIzLjEzLDNIMTFBMiwyLDAsMCwwLDksNXY4LjRoNC41OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwSDE3LjE5YTIsMiwwLDAsMC0yLDJ2MS40SDIwQTMuNiwzLjYsMCwwLDEsMjMuNiwxN3Y4SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMx''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOS42SDE3LjE5YTMuNiwzLjYsMCwwLDEtMy42LTMuNlYyMGgxLjZ2NmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBl''@;'; + put 'put ''Vk1XQXBwPSgwLEUuY2xySWNvblNWRykoJzxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIgMjAgMjggMjAgMjggMjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBvbHlnb24gcG9pbnRzPSIxNCAzMCA2IDMwIDYgMjIgOCAyMiA4IDIwIDQgMjAgNCAzMiAxNiAzMiAxNiAyOCAxNCAyOCAxNCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMTQgNiAx''@;'; + put 'put ''NCA2IDYgMTQgNiAxNCA4IDE2IDggMTYgNCA0IDQgNCAxNiA4IDE2IDggMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyMCA0IDIwIDggMjIgOCAyMiA2IDMwIDYgMzAgMTQgMjggMTQgMjggMTYg''@;'; + put 'put ''MzIgMTYgMzIgNCAyMCA0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cmVjdCB4PSIxOSIgeT0iMTEiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI4''@;'; + put 'put ''IDIyIDMwIDIyIDMwIDMwIDIyIDMwIDIyIDI4IDIwIDI4IDIwIDMyIDMyIDMyIDMyIDIwIDI4IDIwIDI4IDIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQgMzAg''@;'; + put 'put ''NiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQgMjggMTQgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDE0IDYgMTQgNiA2IDE0''@;'; + put 'put ''IDYgMTQgOCAxNiA4IDE2IDQgNCA0IDQgMTYgOCAxNiA4IDE0IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVy''@;'; + put 'put ''dGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTkiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxNS40SDIyLjIzQTMu''@;'; + put 'put ''NjksMy42OSwwLDAsMSwxOSwxMy41NmwwLS4xVjE3aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjIuNDUgNCAyMCA0IDIwIDggMjAuMTQgOCAyMi40NSA0IiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI4IiB5PSIxNS40IiB3aWR0aD0iNCIgaGVpZ2h0PSIwLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC05LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIgMjAgMjggMjAgMjgg''@;'; + put 'put ''MjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQgMzAgNiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQgMjggMTQgMzAiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxNCA2IDE0IDYgNiAxNCA2IDE0IDggMTYgOCAxNiA0IDQgNCA0IDE2IDggMTYgOCAxNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjExIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDZoLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDIwVjhoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTct''@;'; + put 'put ''LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjE0SDI4djJoNFYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0yNSwxMS41OGE3LjUzLDcuNTMsMCwwLDEtLjU4LS41OEgxOXY2aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlQ2VydGlmaWNhdGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTls''@;'; + put 'put ''LjU3LS43LjkzLTEuMTRMMjAuNDEsMjhINFY4SDMybDAsOC41NmE4LjQxLDguNDEsMCwwLDEsMiwxLjgxVjhBMiwyLDAsMCwwLDMyLDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjEyIiB3aWR0aD0i''@;'; + put 'put ''MTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0''@;'; + put 'put ''LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCww''@;'; + put 'put ''LDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcu''@;'; + put 'put ''NDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NkEzLjY2LDMuNjYsMCwwLDEsMTguNTcsMTJIN3YxLjZIMTkuMDdaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjEuMTZhOC40MSw4LjQxLDAsMCwxLDIsMS44MXYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01''@;'; + put 'put ''LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjhWOEgyMC4xNGwxLjE1LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRMMjAuNDEsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjEyIiB3aWR0aD0iMTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI3IiB5PSIxNiIgd2lkdGg9IjExIiBoZWlnaHQ9IjEuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIg''@;'; + put 'put ''eT0iMjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwz''@;'; + put 'put ''LjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2My4zNGE4LjQxLDguNDEsMCwwLDEsMiwxLjgxdi02QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI4VjhIMjIuNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDE5bC41Ny0uNy45My0xLjE0TDIwLjQxLDI4WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdl''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDMwSDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMzJhMiwyLDAsMCwxLDIsMlYxOC4zN2E4LjM0LDguMzQsMCwwLDAtMTMuNDksOS43OWwtLjkzLDEuMTRaTTcsMTJ2MS42SDI0VjEyWm0wLDUuNkgxOFYxNkg3Wm0wLDdIMTdW''@;'; + put 'put ''MjNIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuODMsMjMuNTlhNi4zNyw2LjM3LDAsMSwwLTEwLjc3LDQuNTlsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4yNiwwLDAsMCwzLjU1LDBsMy42''@;'; + put 'put ''Niw0LjQ2LjktMy42MS0xLjk0LTIuMzdBNi4zNCw2LjM0LDAsMCwwLDMzLjgzLDIzLjU5Wm0tMTAuNzQsMGE0LjM3LDQuMzcsMCwxLDEsNC4zNyw0LjMxQTQuMzUsNC4zNSwwLDAsMSwyMy4xLDIzLjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy41OWE2LjM3LDYuMzcsMCwxLDAtMTAuNzcsNC41OWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN0E2LjM0LDYuMzQsMCwwLDAsMzMuODMsMjMuNTlabS0x''@;'; + put 'put ''MC43NCwwYTQuMzcsNC4zNywwLDEsMSw0LjM3LDQuMzFBNC4zNSw0LjM1LDAsMCwxLDIzLjEsMjMuNTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMjkuMjVhOC4z''@;'; + put 'put ''Niw4LjM2LDAsMCwxLDQuNzUsM3YtM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMDcsMTMuNkg3VjEySDE4LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5TDIxLjI5LDZINEEy''@;'; + put 'put ''LDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRBOC4zNCw4LjM0LDAsMCwxLDI1LjY2LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LjA3LDEzLjZaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44''@;'; + put 'put ''NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNDYsMTcuMjNhNi4zNiw2LjM2LDAsMCwwLTQuNCwxMWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQu''@;'; + put 'put ''NDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN2E2LjM2LDYuMzYsMCwwLDAtNC40LTExWm0wLDEwLjY4YTQuMzEsNC4zMSwwLDEsMSw0LjM3LTQuMzFBNC4zNSw0LjM1LDAsMCwxLDI3LjQ2LDI3LjkxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEE4LjM0LDguMzQsMCwwLDEsMzQsMTguMzd2LTZB''@;'; + put 'put ''Ny40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThabTYtNEg3VjEySDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9''@;'; + put 'put ''IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUFyY2hpdmU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDMySDdWMjJINVYzMmEyLDIsMCwwLDAsMiwySDI5''@;'; + put 'put ''YTIsMiwwLDAsMCwyLTJWMjJIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwyNGExLDEsMCwwLDAsMSwxaDZhMSwxLDAsMCwwLDAtMkgxNUExLDEsMCwwLDAsMTQsMjRaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwxOEg2VjE0aDRhMywzLDAsMCwxLS42OC0xLjg3czAtLjA5LDAtLjEzSDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYyMEgxNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNBMywzLDAsMCwxLDI2LDE0aDR2NEgyMmwtMiwySDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTkuMThsNi4zOC02LjM1QTEsMSwwLDEsMCwyMywxMS40MWwtNCwzLjk1VjNhMSwxLDAsMSwwLTIsMHYxMi40bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjQxLDIwLjYsMTgsMjJsLTEuNDEtMS40TDE2LDIwSDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjIwSDIwWk0yMiwyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDAsMSwwLTJoNkExLDEsMCwwLDEsMjIsMjRaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNhMywzLDAsMCwxLS44OCwyLjEyTDIyLDE4SDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yLDE0LjI1YTMsMywwLDAsMS0uODgtMi4xMnMwLS4wOSwwLS4xM0g1LjVBMS41LDEuNSwwLDAsMCw0LDEzLjVWMThIMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTE4LDE5LjE4bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTEuNDFsLTQsMy45NVYzYTEsMSwwLDEsMC0yLDB2MTIuNGwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAn''@;'; + put 'put ''KSxMLkNsclNoYXBlVW5hcmNoaXZlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOSwzMkg3VjIySDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjIySDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMTQsMjRhMSwxLDAsMCwwLDEsMWg2YTEsMSwwLDAsMCwwLTJIMTVBMSwxLDAsMCwwLDE0LDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMThINlYxNGg5VjEySDUuNUExLjUsMS41LDAs''@;'; + put 'put ''MCwwLDQsMTMuNVYyMEgxNS43OEEzLDMsMCwwLDEsMTUsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC41LDEySDIxdjJoOXY0SDIxYTMsMywwLDAsMS0uNzgsMkgzMlYxMy41QTEuNSwxLjUsMCwwLDAs''@;'; + put 'put ''MzAuNSwxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLDkuNTUsMTcsNS42VjE4YTEsMSwwLDEsMCwyLDBWNS42bDQsMy45NWExLDEsMCwxLDAsMS40MS0xLjQyTDE4LDEuNzgsMTEuNjEsOC4xM0ExLDEs''@;'; + put 'put ''MCwwLDAsMTMsOS41NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxYTMsMywwLDAsMS0yLjIyLTFINVYzMmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjBIMjAuMjFBMywzLDAsMCwxLDE4''@;'; + put 'put ''LDIxWm00LDNhMSwxLDAsMCwxLTEsMUgxNWExLDEsMCwwLDEsMC0yaDZBMSwxLDAsMCwxLDIyLDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwxMkg1LjVBMS41LDEuNSwwLDAsMCw0LDEzLjVWMThIMTVaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjF2NkgzMlYxMy41QTEuNSwxLjUsMCwwLDAsMzAuNSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMTMsOS41NSwxNyw1LjZWMThhMSwxLDAsMSwwLDIsMFY1LjZsNCwzLjk1YTEsMSwwLDEsMCwxLjQxLTEuNDJMMTgsMS43OCwxMS42MSw4LjEzQTEsMSwwLDAsMCwxMyw5LjU1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz5cbiAgICAgICAgJyks''@;'; + put 'put ''TC5DbHJTaGFwZUNvbm5lY3Q9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDE3SDI4LjIzQTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMjJhNi4yMiw2LjIyLDAsMCwwLDYuMjIt''@;'; + put 'put ''NUgzNFpNMTcuMDgsMjJIMTQuMTVhNC4xNyw0LjE3LDAsMCwxLTQuMzEtNCw0LjE3LDQuMTcsMCwwLDEsNC4zMS00aDIuOTRaTTIyLDIySDE5VjE0aDNhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjIsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTI4LjIzLDE3QTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxOVYyNGgzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLTVIMzRWMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlRGlzY29ubmVjdD0oMCxFLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMTIuMTcsNkE2LjIxLDYuMjEsMCwwLDAsNiwxMUgyLjEzdjJINmE2LjIzLDYuMjMsMCwwLDAsNi4yMSw1SDE3VjZaTTE1LjEsMTZIMTIuMTdhNC4yLDQuMiwwLDAsMS00LjMxLTQsNC4xNyw0LjE3LDAsMCwxLDQuMzEtNEgxNS4xWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuOTIsMjNIMzAuMTRhNi4yNSw2LjI1LDAsMCwwLTYuMjEtNUgxOXYySDE0YTEsMSwwLDEsMCwwLDJoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djJoNC45NGE2LjIzLDYu''@;'; + put 'put ''MjMsMCwwLDAsNi4yMi01aDMuNzZabS0xMCw1SDIxVjIwaDIuOTRhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjMuOTQsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiw2YTYu''@;'; + put 'put ''MjEsNi4yMSwwLDAsMC02LjIxLDVIMnYySDUuODNBNi4yMyw2LjIzLDAsMCwwLDEyLDE4SDE3VjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc5LDIzSDMwLjE0YTYuMjUsNi4yNSwwLDAsMC02LjIxLTVIMTl2''@;'; + put 'put ''MkgxNGExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djJoNC45NGE2LjIzLDYuMjMsMCwwLDAsNi4yMi01aDMuNjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxMLkNs''@;'; + put 'put ''clNoYXBlTGluaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNiwyNC4zMmwtMi40NiwyLjQ0YTQsNCwwLDAsMS01LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAtNS41NWw0LjY5LTQuNjVhNCw0LDAsMCwxLDUuNjIsMCwzLjg2LDMuODYsMCwwLDEsMSwxLjcxQTIsMiwwLDAsMCwyMS4x''@;'; + put 'put ''LDE4bDEuMjktMS4yOGE1Ljg5LDUuODksMCwwLDAtMS4xNS0xLjYyLDYsNiwwLDAsMC04LjQ0LDBMOC4xLDE5Ljc5YTUuOTEsNS45MSwwLDAsMCwwLDguMzksNiw2LDAsMCwwLDguNDQsMGwzLjY1LTMuNjJjLS4xNywwLS4zMywwLS41LDBBOCw4LDAsMCwxLDE3LjYsMjQuMzJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC42MSw3LjgyYTYsNiwwLDAsMC04LjQ0LDBsLTMuNjUsMy42MmMuMTcsMCwuMzMsMCwuNDksMGgwYTgsOCwwLDAsMSwyLjEuMjhsMi40Ni0yLjQ0YTQsNCwwLDAsMSw1LjYyLDAs''@;'; + put 'put ''My45MiwzLjkyLDAsMCwxLDAsNS41NWwtNC42OSw0LjY1YTQsNCwwLDAsMS01LjYyLDAsMy44NiwzLjg2LDAsMCwxLTEtMS43MSwyLDIsMCwwLDAtLjI4LjIzbC0xLjI5LDEuMjhhNS44OSw1Ljg5LDAsMCwwLDEuMTUsMS42Miw2LDYsMCwwLDAsOC40NCwwbDQuNjktNC42NWE1LjkyLDUuOTIs''@;'; + put 'put ''MCwwLDAsMC04LjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVVbmxpbms9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUsNSwzLjU5LDYuNDFsOSw5TDguMSwxOS43OWE1LjkxLDUuOTEsMCwwLDAsMCw4''@;'; + put 'put ''LjM5LDYsNiwwLDAsMCw4LjQ0LDBMMjEsMjMuNzhsOC42Myw4LjYzTDMxLDMxWk0xNS4xMywyNi43NmE0LDQsMCwwLDEtNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLTUuNTVMMTQsMTYuNzlsNS41OCw1LjU4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuNTMsOS4yMmE0LDQsMCwwLDEsNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLDUuNTVsLTQuNzksNC43NkwyMy43OCwyMWw0Ljc5LTQuNzZhNS45Miw1LjkyLDAsMCwwLDAtOC4zOSw2LDYsMCwwLDAtOC40NCwwbC00Ljc2LDQuNzRMMTYuNzgsMTRa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUNsb3VkTmV0d29yaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAuNzEsMTUuMTh2LTFBMTEuMjgsMTEuMjgsMCwwLDAsMTkuNTYsMi44M2gtLjExYTExLjI4''@;'; + put 'put ''LDExLjI4LDAsMCwwLTExLDguOTMsNy40Nyw3LjQ3LDAsMCwwLDAsMTQuOTRIMjkuMTNhNS44Niw1Ljg2LDAsMCwwLDEuNTgtMTEuNTJaTTI5LjEzLDI0LjdIOC40NmE1LjQ3LDUuNDcsMCwxLDEsMC0xMC45NGgxLjY5bC4xMS0uODdhOS4yNyw5LjI3LDAsMCwxLDE4LjQ1LDEuM3YxLjI4YzAs''@;'; + put 'put ''LjA5LDAsLjE4LDAsLjI3bC0uMDcsMS4xNS45NC4xMWEzLjg2LDMuODYsMCwwLDEtLjQzLDcuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41OCwzMS4xOEgxOC44NXYtMi40aC0ydjIuNEg2LjA4YTEs''@;'; + put 'put ''MSwwLDAsMCwwLDJoMjMuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVDbG91ZFNjYWxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LjMyLDExLjExSDcuODRMOCwxMC4yNEE3''@;'; + put 'put ''LjE5LDcuMTksMCwwLDEsMTUuMDcsNGguMDdhNy4xNSw3LjE1LDAsMCwxLDQuNzEsMS44MywxMS4xLDExLjEsMCwwLDEsMy4wOS42NEE5LjE4LDkuMTgsMCwwLDAsMTUuMTYsMmgtLjA5QTkuMiw5LjIsMCwwLDAsNi4xMyw5LjExLDYuMTUsNi4xNSwwLDAsMCwyLjMzLDE5Ljk1LDguMDksOC4w''@;'; + put 'put ''OSwwLDAsMSwzLDE3LjcxYTQuMTIsNC4xMiwwLDAsMS0uODEtMi40NEE0LjE2LDQuMTYsMCwwLDEsNi4zMiwxMS4xMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjQsMTYuOTFoMS41MkwxMiwxNmE3LjE5''@;'; + put 'put ''LDcuMTksMCwwLDEsNy4xMi02LjI1aC4wN2E3LjE3LDcuMTcsMCwwLDEsNS43LDIuOTIsMTEuMDUsMTEuMDUsMCwwLDEsMi43Mi43Nyw5LjIsOS4yLDAsMCwwLTguNC01LjY5aC0uMDlhOS4yLDkuMiwwLDAsMC04Ljk0LDcuMTIsNi4xNSw2LjE1LDAsMCwwLTMuNjQsMTEsOC4xMSw4LjExLDAs''@;'; + put 'put ''MCwxLC43OS0yLDQuMTQsNC4xNCwwLDAsMSwzLTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi40MiwyNC40N3YtLjYyYTkuMTgsOS4xOCwwLDAsMC0xOC4xMy0yLjE2QTYuMTYsNi4xNiwwLDAsMCwxNC40''@;'; + put 'put ''OCwzNEgzMWE0Ljg4LDQuODgsMCwwLDAsMS40Ni05LjUzWk0zMSwzMkgxNC40OGE0LjE2LDQuMTYsMCwxLDEsMC04LjMySDE2bC4xMS0uODdhNy4xOSw3LjE5LDAsMCwxLDcuMTItNi4yNWguMDdhNy4yMSw3LjIxLDAsMCwxLDcuMTIsNy4yNXYxYzAsLjA3LDAsLjEzLDAsLjJsLS4wNywxLjEx''@;'; + put 'put ''Ljk0LjExQTIuODgsMi44OCwwLDAsMSwzMSwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlQ2xvdWRUcmFmZmljPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41NCwyMC44MmEuODguODgsMCwwLDAt''@;'; + put 'put ''Ljg4LS44OEgyMC43NWwxLjEtMS4xQS44OC44OCwwLDAsMCwyMC42LDE3LjZsLTMuMjEsMy4yMkwyMC42LDI0YS44OC44OCwwLDEsMCwxLjI1LTEuMjRMMjAuNzYsMjEuN2g0LjlBLjg4Ljg4LDAsMCwwLDI2LjU0LDIwLjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMjcsMjEuN2EuODguODgsMCwxLDAsMC0xLjc2aC0uNThhLjg4Ljg4LDAsMSwwLDAsMS43NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIx''@;'; + put 'put ''LDIwaC0uMDZhLjg1Ljg1LDAsMCwwLS44NS44OC45MS45MSwwLDAsMCwuOTEuODguODguODgsMCwxLDAsMC0xLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuNTksMTFhLjg4Ljg4LDAsMCwwLTEuMjUs''@;'; + put 'put ''MS4yNGwxLjEsMS4xSDI3LjUzYS44OC44OCwwLDEsMCwwLDEuNzZoNC45bC0xLjA5LDEuMDlhLjg4Ljg4LDAsMCwwLDEuMjUsMS4yNGwzLjIxLTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC41LDE1''@;'; + put 'put ''LjA3YS44OC44OCwwLDEsMCwwLTEuNzZoLS41OGEuODguODgsMCwxLDAsMCwxLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuOSwxNC4yN2EuODUuODUsMCwwLDAtLjg1LS44OEgyMWEuODguODgsMCwx''@;'; + put 'put ''LDAsMCwxLjc2QS45MS45MSwwLDAsMCwyMS45LDE0LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMzYsMjMuNjVjMCwuMTMsMCwuMjYsMCwuMzlhMy43NywzLjc3LDAsMCwxLTMuNjIsMy44OUg3LjI4''@;'; + put 'put ''YTUuMzIsNS4zMiwwLDAsMS01LjEzLTUuNDhBNS4zMiw1LjMyLDAsMCwxLDcuMjgsMTdIOC45MUw5LDE2LjEyYTguOTIsOC45MiwwLDAsMSw4LjYyLThoLjA4YTguNDksOC40OSwwLDAsMSw2LjU2LDMuMjloMi4zN2ExMC41NSwxMC41NSwwLDAsMC04LjkxLTUuMjVoLS4xMUExMC44MiwxMC44''@;'; + put 'put ''MiwwLDAsMCw3LjIyLDE1YTcuMjgsNy4yOCwwLDAsMC03LDcuNDMsNy4yNyw3LjI3LDAsMCwwLDcuMDgsNy40M0gyNi43N0E1LjcyLDUuNzIsMCwwLDAsMzIuMzUsMjRhMy43NywzLjc3LDAsMCwwLDAtLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+''@;'; + put 'put ''XG4gICAgICAgICcpLEwuQ2xyU2hhcGVEZXBsb3k9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSwwLDEuNDMsMS40TDMyLDUuNDZW''@;'; + put 'put ''MTMuOWExLDEsMCwwLDAsMiwwVjNBMSwxLDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTExLjU0LDEwLjczbC05LDUuMTdhMSwxLDAsMCwwLS41Ljg3djExYTEsMSwwLDAsMCwuNS44N2w5LDUu''@;'; + put 'put ''MTVhMSwxLDAsMCwwLDEsMGw5LTUuMTVhMSwxLDAsMCwwLC41LS44N3YtMTFhMSwxLDAsMCwwLS41LS44N2wtOS01LjE3QTEsMSwwLDAsMCwxMS41NCwxMC43M1pNMTEsMzEuMDhsLTctNFYxOC40NGw3LDRaTTEyLDIxLDQuODEsMTYuODcsMTIsMTIuNzhsNy4yMSw0LjEyWm04LDYuMDktNyw0''@;'; + put 'put ''VjIyLjQ0bDctNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSwwLDEuNDMsMS40TDMyLDUuNDZWMTMuOWExLDEsMCwwLDAsMiwwVjNBMSwx''@;'; + put 'put ''LDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTIuNDYsMTAuNzNhMSwxLDAsMCwwLTEsMGwtOC42OCw1TDEyLDIxbDkuMTktNS4yNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yLDI3LjczYTEsMSwwLDAsMCwuNS44N0wxMSwzMy40NnYtMTFMMiwxNy4yOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0xMywzMy40Nmw4LjUtNC44NmExLDEsMCww''@;'; + put 'put ''LDAsLjUtLjg3VjE3LjI5bC05LDUuMTVaIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVIZWxpeD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguODgsMTMuMDdhLjkuOSwwLDAsMS0uNDktMS42Nmw4LjkzLTUu''@;'; + put 'put ''NzNhLjkuOSwwLDEsMSwxLDEuNTJMOS4zNywxMi45MkEuOS45LDAsMCwxLDguODgsMTMuMDdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEzLjI1LDE1LjExYS45LjksMCwwLDEtLjQ5LTEuNjZMMTgsMTAuMDhh''@;'; + put 'put ''LjkuOSwwLDEsMSwxLDEuNTJMMTMuNzQsMTVBLjkuOSwwLDAsMSwxMy4yNSwxNS4xMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTkuNzIsMzAuMjNhLjkuOSwwLDAsMS0uNDktMS42Nmw4LjkzLTUuNzNhLjku''@;'; + put 'put ''OSwwLDAsMSwxLDEuNTJMMjAuMiwzMC4wOUEuOS45LDAsMCwxLDE5LjcyLDMwLjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOC45MiwyNS45NGEuOS45LDAsMCwxLS40OS0xLjY2bDUuMjUtMy4zN2EuOS45''@;'; + put 'put ''LDAsMSwxLDEsMS41MUwxOS40LDI1LjhBLjg5Ljg5LDAsMCwxLDE4LjkyLDI1Ljk0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0yMS41Niw1LjY5YTMuNTksMy41OSwwLDAsMSwuMTUsMy41M0wxOC44MywxNWgy''@;'; + put 'put ''LjI1bDIuNDMtNC44N2E1LjYxLDUuNjEsMCwwLDAtNS04LjE0SDEzLjI2bC0xLDJoNi4yMkEzLjYxLDMuNjEsMCwwLDEsMjEuNTYsNS42OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuOTEsMjAuNzhBNS41''@;'; + put 'put ''Myw1LjUzLDAsMCwwLDI3LjY2LDE3SDkuMzFhMy41NCwzLjU0LDAsMCwxLTMuNTYtMy42NywzLjYxLDMuNjEsMCwwLDEsLjQyLTEuNTRsNC4yNi04LjQ5YTEsMSwwLDEsMC0xLjc5LS45TDQuNCwxMC44NEE1LjY3LDUuNjcsMCwwLDAsNCwxNS4yMiw1LjUzLDUuNTMsMCwwLDAsOS4yOCwxOWg3''@;'; + put 'put ''LjZsLTMuNDQsNi44N2E1LjY0LDUuNjQsMCwwLDAsMS41LDYuOTJBNS4zOCw1LjM4LDAsMCwwLDE4LjQxLDM0aDUuMjVsMS0ySDE4LjQzYTMuNTgsMy41OCwwLDAsMS0zLjIyLTUuMjFMMTkuMTEsMTloOC41NGEzLjQyLDMuNDIsMCwwLDEsMi4xNS43MSwzLjU3LDMuNTcsMCwwLDEsMSw0LjQz''@;'; + put 'put ''bC00LjEyLDguMjJhMSwxLDAsMSwwLDEuNzkuOWw0LjA2LTguMUE1LjY3LDUuNjcsMCwwLDAsMzIuOTEsMjAuNzhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTkuNjNBNS41NSw1LjU1LDAsMCwwLDI3LjQy''@;'; + put 'put ''LDE3SDEwLjA2YTQuMzYsNC4zNiwwLDAsMS0zLjY3LTIsNC4wNyw0LjA3LDAsMCwxLS4xOS00LjEzbDMuNjItNywxLjQyLDEuNjMtMi43NCw1LjMsOC44NC01LjY2YS45MS45MSwwLDAsMSwxLDEuNTNMNy44NCwxMy4zOGEyLjEzLDIuMTMsMCwwLDAsLjI0LjUyLDIuMjgsMi4yOCwwLDAsMCwx''@;'; + put 'put ''LjY1LDFMMTguMTEsOS41YS45MS45MSwwLDAsMSwxLDEuNTJMMTMsMTQuOTRIMjAuOGwyLjQxLTQuODJhNS42LDUuNiwwLDAsMC01LTguMTJIOWExLDEsMCwwLDAtLjkuNTZMMy44OCwxMC44OWE1LjYsNS42LDAsMCwwLDUsOC4xMmg3LjY1bC0zLjQzLDYuODdhNS42LDUuNiwwLDAsMCw1LDgu''@;'; + put 'put ''MTJoOS4yOGExLDEsMCwwLDAsLjkzLS42NWw0LjE0LTguMjRBNS41OCw1LjU4LDAsMCwwLDMyLjE2LDE5LjYzWk0xNy43NSwyNS41N0EuOTEuOTEsMCwwLDEsMTgsMjQuMzFsNi0zLjg4QS45MS45MSwwLDEsMSwyNSwyMmwtNiwzLjg4YS45MS45MSwwLDAsMS0xLjI2LS4yN1pNMjksMjQuMzRs''@;'; + put 'put ''LTksNS43OGEuOTEuOTEsMCwxLDEtMS0xLjUzbDktNS43OGEuOTEuOTEsMCwxLDEsMSwxLjUzWiIvPlxuICAgICAgICAnKSxMLkNsclNoYXBlRmxhc2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQzLDI3LjI4LDIzLDE0Ljg0VjRoMWExLDEsMCwwLDAsMC0ySDEyYTEsMSwwLDAs''@;'; + put 'put ''MCwwLDJoMVYxNC44NEw0LjUxLDI3LjM2QTQuMjksNC4yOSwwLDAsMCw1LDMyLjgsNC4zOCw0LjM4LDAsMCwwLDguMTUsMzRIMjhhNC4yNCw0LjI0LDAsMCwwLDMuNDItNi43MlpNMjkuODUsMzFhMi42MiwyLjYyLDAsMCwxLTIsMUg4YTIuMiwyLjIsMCwwLDEtMi4wNi0xLjQxLDIuNjgsMi42''@;'; + put 'put ''OCwwLDAsMSwuMjktMi4xN2wzLTQuNDQsMTQsMC0xLjMxLTJIMTAuNTdMMTUsMTUuNDZWNGg2VjE1LjQ2bDguODQsMTMuMDVBMi4yMywyLjIzLDAsMCwxLDI5Ljg1LDMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; + put 'put ''PSJNMzEuNDksMjcuNCwyMywxNC45NFY0aDFhMSwxLDAsMCwwLDAtMkgxMi4wOGExLDEsMCwwLDAsMCwySDEzVjE0Ljk0TDQuNTgsMjcuMzFhNC4zMSw0LjMxLDAsMCwwLS43OCwzQTQuMjMsNC4yMywwLDAsMCw4LDM0SDI3Ljg2QTQuMzYsNC4zNiwwLDAsMCwzMSwzMi44LDQuMjMsNC4yMyww''@;'; + put 'put ''LDAsMCwzMS40OSwyNy40Wk0xNSwxNS40OVY0aDZWMTUuNDlMMjYuMTUsMjNIOS44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC42OCwx''@;'; + put 'put ''NC44MWE2Ljc2LDYuNzYsMCwxLDEsNi43Ni02Ljc1QTYuNzcsNi43NywwLDAsMSwxNC42OCwxNC44MVptMC0xMS41MWE0Ljc2LDQuNzYsMCwxLDAsNC43Niw0Ljc2QTQuNzYsNC43NiwwLDAsMCwxNC42OCwzLjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40MiwzMS42OEEyLjE0LDIuMTQsMCwwLDEsMTUuOCwzMEg0VjI0LjIyYTE0LjgxLDE0LjgxLDAsMCwxLDExLjA5LTQuNjhsLjcyLDBhMi4yLDIuMiwwLDAsMSwuNjItMS44NWwuMTItLjExYy0uNDcsMC0xLS4wNi0xLjQ2LS4wNkExNi40Nywx''@;'; + put 'put ''Ni40NywwLDAsMCwyLjIsMjMuMjZhMSwxLDAsMCwwLS4yLjZWMzBhMiwyLDAsMCwwLDIsMkgxNi43WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODcsMTYuMjlhLjM3LjM3LDAsMCwxLC4xNSwwLC40Mi40''@;'; + put 'put ''MiwwLDAsMC0uMTUsMFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwyMy4zMmwtMi0uNjFhNy4yMSw3LjIxLDAsMCwwLS41OC0xLjQxbDEtMS44NkEuMzguMzgsMCwwLDAsMzIsMTlsLTEuNDUtMS40''@;'; + put 'put ''NWEuMzYuMzYsMCwwLDAtLjQ0LS4wN2wtMS44NCwxYTcuMTUsNy4xNSwwLDAsMC0xLjQzLS42MWwtLjYxLTJhLjM2LjM2LDAsMCwwLS4zNi0uMjRIMjMuODJhLjM2LjM2LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNmwtMS44Mi0xYS4zNS4zNSwwLDAsMC0uNDMuMDdMMTcu''@;'; + put 'put ''NjksMTlhLjM4LjM4LDAsMCwwLS4wNi40NGwxLDEuODJBNi43Nyw2Ljc3LDAsMCwwLDE4LDIyLjY5bC0yLC42YS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNUEuMzUuMzUsMCwwLDAsMTYsMjZsMiwuNjFhNyw3LDAsMCwwLC42LDEuNDFsLTEsMS45MWEuMzYuMzYsMCwwLDAsLjA2LjQzbDEuNDUs''@;'; + put 'put ''MS40NWEuMzguMzgsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA5LDcuMDksMCwwLDAsMS40LjU3bC42LDJhLjM4LjM4LDAsMCwwLC4zNS4yNmgyLjA1YS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yLjA1YTYuOTIsNi45MiwwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM2LjM2LDAsMCwwLC40My0u''@;'; + put 'put ''MDdMMzIsMzAuNEEuMzUuMzUsMCwwLDAsMzIsMzBsLTEtMS44OGE3LDcsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM2LjM2LDAsMCwwLC4yNi0uMzVWMjMuNjdBLjM2LjM2LDAsMCwwLDMzLjY4LDIzLjMyWk0yNC44NSwyOGEzLjM0LDMuMzQsMCwxLDEsMy4zMy0zLjMzQTMuMzQsMy4zNCwwLDAs''@;'; + put 'put ''MSwyNC44NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTQuNjciIGN5PSI4LjMiIHI9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMTYuNDQsMzEuODJhMi4xNSwyLjE1LDAsMCwxLS4zOC0yLjU1bC41My0xLTEuMDktLjMzQTIuMTQsMi4xNCwwLDAsMSwxNCwyNS44NFYyMy43OWEyLjE2LDIuMTYsMCwwLDEsMS41My0yLjA3bDEuMDktLjMzLS41Mi0xYTIuMTcsMi4xNywwLDAsMSwuMzUtMi41MiwxOC45MiwxOC45''@;'; + put 'put ''MiwwLDAsMC0yLjMyLS4xNkExNS41OCwxNS41OCwwLDAsMCwyLDIzLjA3djcuNzVhMSwxLDAsMCwwLDEsMUgxNi40NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNywyMy40NmwtMi0uNmE2LjczLDYuNzMsMCww''@;'; + put 'put ''LDAtLjU4LTEuNDJsMS0xLjg2YS4zNS4zNSwwLDAsMC0uMDctLjQzbC0xLjQ1LTEuNDZhLjM4LjM4LDAsMCwwLS40My0uMDdsLTEuODUsMWE3Ljc0LDcuNzQsMCwwLDAtMS40My0uNmwtLjYxLTJhLjM4LjM4LDAsMCwwLS4zNi0uMjVIMjMuODRhLjM4LjM4LDAsMCwwLS4zNS4yNmwtLjYsMmE2''@;'; + put 'put ''Ljg1LDYuODUsMCwwLDAtMS40NS42MWwtMS44MS0xYS4zOC4zOCwwLDAsMC0uNDQuMDZsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LjI0LDcuMjQsMCwwLDAsMTgsMjIuODNsLTIsLjYxYS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNWEuMzYuMzYsMCwwLDAsLjI2LjM1''@;'; + put 'put ''bDIsLjYxYTcuMjksNy4yOSwwLDAsMCwuNiwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LjE2LDMyYS4zOC4zOCwwLDAsMCwuNDQuMDZsMS44Ny0xYTcuMDksNy4wOSwwLDAsMCwxLjQuNTdsLjYsMi4wNWEuMzguMzgsMCwwLDAsLjM2LjI2aDIuMDVhLjM4LjM4LDAsMCwwLC4z''@;'; + put 'put ''NS0uMjZsLjYtMi4wNWE2LjY4LDYuNjgsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zOC4zOCwwLDAsMCwuNDQtLjA2TDMyLDMwLjU1YS4zOC4zOCwwLDAsMCwuMDYtLjQ0bC0xLTEuODhhNi45Miw2LjkyLDAsMCwwLC41Ny0xLjM4bDItLjYxYS4zOS4zOSwwLDAsMCwuMjctLjM1VjIzLjgyQS40''@;'; + put 'put ''LjQsMCwwLDAsMzMuNywyMy40NlptLTguODMsNC43MmEzLjM0LDMuMzQsMCwxLDEsMy4zMy0zLjM0QTMuMzQsMy4zNCwwLDAsMSwyNC44NywyOC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVIYXJkRHJpdmU9KDAs''@;'; + put 'put ''RS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDhhMiwyLDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yWk0zMiwyOEg0VjhIMzJWMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIxMC4yNSIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyOS44MSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIyNS40MiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyOS44MSIgY3k9IjI1LjQyIiBy''@;'; + put 'put ''PSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS44OCwxOC4wOGEzLjU5LDMuNTksMCwxLDAsMy41OS0zLjU5LDMuODQsMy44NCwwLDAsMC0uOTEuMTNMMTUsMTYuMTZhMi4wOCwyLjA4LDAsMCwxLC41''@;'; + put 'put ''LS4wNywyLDIsMCwxLDEtMiwyLDEuNjQsMS42NCwwLDAsMSwuMDgtLjVMMTIsMTcuMTZBMy41MywzLjUzLDAsMCwwLDExLjg4LDE4LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNDcsMjUuNzNhNy42''@;'; + put 'put ''Niw3LjY2LDAsMCwxLTcuNjUtNy42NSw3LjU1LDcuNTUsMCwwLDEsLjI3LTJMNi41NCwxNS43YTkuMjQsOS4yNCwwLDAsMCwxNy44LDQuOTVIMjIuNjZBNy42NCw3LjY0LDAsMCwxLDE1LjQ3LDI1LjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjguMjIsMTcuODNhLjguOCwwLDAsMC0uOC0uOEgyNC42NmE5LjI2LDkuMjYsMCwwLDAtOS4xOS04LjIsOS4zNiw5LjM2LDAsMCwwLTIuMzguMzJsLjQyLDEuNTRhNy44Niw3Ljg2LDAsMCwxLDItLjI2QTcuNjYsNy42NiwwLDAsMSwyMywxN0gyMC45MmEu''@;'; + put 'put ''OC44LDAsMCwwLDAsMS42aDYuNUEuOC44LDAsMCwwLDI4LjIyLDE3LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAs''@;'; + put 'put ''Mi0yVjhBMiwyLDAsMCwwLDMyLDZaTTEyLDE3LjE2bDEuNTQuNDJhMS42NCwxLjY0LDAsMCwwLS4wOC41LDIsMiwwLDEsMCwyLTIsMi4wOCwyLjA4LDAsMCwwLS41LjA3bC0uNDEtMS41NGEzLjg0LDMuODQsMCwwLDEsLjkxLS4xMywzLjU5LDMuNTksMCwxLDEtMy41OSwzLjU5QTMuNTMsMy41''@;'; + put 'put ''MywwLDAsMSwxMiwxNy4xNlpNNS4zMSw4QTEuMjUsMS4yNSwwLDEsMSw0LjA2LDkuMjUsMS4yNSwxLjI1LDAsMCwxLDUuMzEsOFptMCwyMC4wNmExLjI1LDEuMjUsMCwxLDEsMS4yNS0xLjI1QTEuMjUsMS4yNSwwLDAsMSw1LjMxLDI4LjA2Wm0xMC4xNi0uNzNBOS4yMiw5LjIyLDAsMCwxLDYu''@;'; + put 'put ''NTQsMTUuN2wxLjU1LjQxYTcuNTUsNy41NSwwLDAsMC0uMjcsMiw3LjY0LDcuNjQsMCwwLDAsMTQuODQsMi41N2gxLjY4QTkuMjUsOS4yNSwwLDAsMSwxNS40NywyNy4zM1ptMTItOC43aC02LjVhLjguOCwwLDAsMSwwLTEuNkgyM2E3LjY2LDcuNjYsMCwwLDAtNy41Ny02LjYsNy44Niw3Ljg2''@;'; + put 'put ''LDAsMCwwLTIsLjI2bC0uNDItMS41NGE5LjM2LDkuMzYsMCwwLDEsMi4zOC0uMzJBOS4yNiw5LjI2LDAsMCwxLDI0LjY2LDE3aDIuNzZhLjguOCwwLDAsMSwwLDEuNlptMy4zOSw5LjQzYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjgxLDI4LjA2Wm0wLTE3''@;'; + put 'put ''LjU2YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjgxLDEwLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlSGFyZERyaXZlRGlza3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0i''@;'; + put 'put ''TTI2LDUuNzRBMS43NCwxLjc0LDAsMCwwLDI0LjI2LDRIMy43NEExLjc0LDEuNzQsMCwwLDAsMiw1Ljc0VjIwLjI2QTEuNzQsMS43NCwwLDAsMCwzLjc0LDIySDRWNkgyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTMwLDkuNzRBMS43NCwxLjc0LDAsMCwwLDI4LjI2LDhINy43NEExLjc0LDEuNzQsMCwwLDAsNiw5Ljc0VjI0LjI2QTEuNzQsMS43NCwwLDAsMCw3Ljc0LDI2SDhWMTBIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0zMi4yNiwxMkgxMS43NEExLjc0LDEuNzQsMCwwLDAsMTAsMTMuNzRWMjguMjZBMS43NCwxLjc0LDAsMCwwLDExLjc0LDMwSDMyLjI2QTEuNzQsMS43NCwwLDAsMCwzNCwyOC4yNlYxMy43NEExLjc0LDEuNzQsMCwwLDAsMzIuMjYsMTJaTTMyLDI4SDEyVjE0SDMyWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMjMuNjhhMi42NCwyLjY0LDAsMSwwLTIuNy0yLjYzQTIuNjcsMi42NywwLDAsMCwxOS45NCwyMy42OFptMC0zLjg3YTEuMjQsMS4yNCwwLDEsMS0xLjI5LDEuMjRBMS4y''@;'; + put 'put ''NywxLjI3LDAsMCwxLDE5Ljk0LDE5LjgxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMTYuMjJhNC45Myw0LjkzLDAsMCwxLDQuOTUsNC4zNUgyMy43MVYyMmg0LjQxYS43LjcsMCwwLDAsMC0xLjRI''@;'; + put 'put ''MjYuMzFhNi4zMyw2LjMzLDAsMCwwLTYuMzctNS43NSw2LjU4LDYuNTgsMCwwLDAtMS40OC4xN2wuMzUsMS4zN0E0LjczLDQuNzMsMCwwLDEsMTkuOTQsMTYuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x''@;'; + put 'put ''OS45NCwyNy4yN2E2LjQyLDYuNDIsMCwwLDAsNS42Ny0zLjM1SDIzLjkzYTUsNSwwLDAsMS00LDEuOTUsNC45MSw0LjkxLDAsMCwxLTUtNC44Miw1LjE2LDUuMTYsMCwwLDEsLjA4LS43OUwxMy42MywyMGE3LDcsMCwwLDAtLjA5LDFBNi4zMiw2LjMyLDAsMCwwLDE5Ljk0LDI3LjI3WiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsNS43NEExLjc0LDEuNzQsMCwwLDAsMjQuMjYsNEgzLjc0QTEuNzQsMS43NCwwLDAsMCwyLDUuNzRWMjAuMjZBMS43NCwxLjc0LDAsMCwwLDMuNzQsMjJINFY2SDI2WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCw5Ljc0QTEuNzQsMS43NCwwLDAsMCwyOC4yNiw4SDcuNzRBMS43NCwxLjc0LDAsMCwwLDYsOS43NFYyNC4yNkExLjc0LDEuNzQsMCwwLDAsNy43NCwyNkg4VjEwSDMwWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS42MiwyMi42QTEuNTUsMS41NSwwLDEsMCwxOCwyMS4wNSwxLjYsMS42LDAsMCwwLDE5LjYyLDIyLjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0z''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjI2LDEySDExLjc0QTEuNzQsMS43NCwwLDAsMCwxMCwxMy43NFYyOC4yNkExLjc0LDEuNzQsMCwwLDAsMTEuNzQsMzBIMzIuMjZBMS43NCwxLjc0LDAsMCwwLDM0LDI4LjI2VjEzLjc0QTEuNzQsMS43NCwwLDAsMCwzMi4yNiwxMlpNMTku''@;'; + put 'put ''NjIsMTcuNzRhMy4zMSwzLjMxLDAsMSwxLTMuMzgsMy4zMUEzLjM1LDMuMzUsMCwwLDEsMTkuNjIsMTcuNzRabTAsMTEuMTNhNy45NCw3Ljk0LDAsMCwxLTgtNy44Miw3LjgzLDcuODMsMCwwLDEsLjExLTEuMjlsMS43NS4zYTUuMzYsNS4zNiwwLDAsMC0uMTEsMSw2LjE4LDYuMTgsMCwwLDAs''@;'; + put 'put ''Ni4yOCw2LjA2LDYuMzUsNi4zNSwwLDAsMCw1LTIuNDZoMi4xQTguMDYsOC4wNiwwLDAsMSwxOS42MiwyOC44N1pNMjkuODksMjIuMkgyNC4zNlYyMC40NGgxLjQ4QTYuMTksNi4xOSwwLDAsMCwxOS42MiwxNWE2LjQ4LDYuNDgsMCwwLDAtMS40MS4xNmwtLjQ1LTEuN2E4LjE2LDguMTYsMCww''@;'; + put 'put ''LDEsMS44Ni0uMjIsOCw4LDAsMCwxLDgsNy4yMWgyLjI2YS44OC44OCwwLDAsMSwwLDEuNzZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlTlZNZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcsMjJWMTRhMiwy''@;'; + put 'put ''LDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMkgyNUEyLDIsMCwwLDAsMjcsMjJaTTExLDE0SDI1djhIMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSI2IiB3aWR0aD0i''@;'; + put 'put ''NCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI1LjAxIiB5PSI2IiB3aWR0aD0iMS45NyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik01LjgsOEgxNi44N1Y2aC0xMUw3Ljc4LDQuMDhhMSwxLDAsMCwwLDAtMS40MiwxLDEsMCwwLDAtMS40MSwwTDIsNyw2LjM3LDExLjRhMSwxLDAsMCwwLDEuNDEsMCwxLDEsMCwwLDAsMC0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuNjEsMjQuNjhhMSwxLDAsMCwwLTEuNDEsMCwxLDEsMCwwLDAsMCwxLjQyTDMwLjEsMjhIMTl2MkgzMC4ybC0yLDJhMSwxLDAsMCwwLDAsMS40MSwxLDEsMCwwLDAsLjcuMjksMSwxLDAsMCwwLC43MS0uMjlMMzQsMjku''@;'; + put 'put ''MDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSIyOCIgd2lkdGg9IjQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cmVjdCB4PSI5IiB5PSIyOCIgd2lkdGg9IjEuOTciIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVTU0Q9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMTAuMjUiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0i''@;'; + put 'put ''Ni4yMSIgY3k9IjI1LjQyIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMjUuNDIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDE4LjYyYzEuMzIuMzEsMS45MS41NCwxLjkxLDEuMjJzLS41MywxLjA5LTEuNTUsMS4wOWE0LDQsMCwwLDEtMi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEtMi41MnMtMS4xNS0yLjA1LTIu''@;'; + put 'put ''ODctMi40NGMtMS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDEwLDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMUE0LjU4LDQuNTgsMCwwLDAsMTAsMTMuNjljLTEuNzQsMC0zLDEuMDUtMywyLjQ5UzguMjYsMTguMjIsMTAsMTguNjJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy44MywyMC45M2E0LDQsMCwwLDEtMi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEtMi41MlMxOS43MywxNy42NSwxOCwxNy4yNmMt''@;'; + put 'put ''MS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDE3LjQ4LDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMWE0LjU2LDQuNTYsMCwwLDAtMy4xMi0xLjE1Yy0xLjczLDAtMywxLjA1LTMsMi40OXMxLjE5LDIsMi44OSwyLjQ0YzEuMzIuMzEsMS45MS41NCwx''@;'; + put 'put ''LjkxLDEuMjJTMTguODUsMjAuOTMsMTcuODMsMjAuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS45LDE4YzAtMi40MS0xLjkyLTQuMTItNC42NC00LjEyaC0yLjl2OC4yNGgyLjlDMjgsMjIuMDgsMjku''@;'; + put 'put ''OSwyMC4zNywyOS45LDE4Wm0tNi0yLjc2aDEuNTZhMi43NywyLjc3LDAsMSwxLDAsNS41M0gyMy44NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwy''@;'; + put 'put ''LDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk01LjIxLDhBMS4yNSwxLjI1LDAsMSwxLDQsOS4yNSwxLjI1LDEuMjUsMCwwLDEsNS4yMSw4Wm0wLDIwYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDUuMjEsMjhabTUuMDYtNS43OGE1LDUsMCww''@;'; + put 'put ''LDEtMy41Mi0xLjM0bC44Ni0xLjA2YTQsNCwwLDAsMCwyLjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIyLTIuNDksMy0yLjQ5YTQuNTgsNC41OCwwLDAsMSwzLjEyLDEuMTVsLS44MSwxLjFBMy42''@;'; + put 'put ''OCwzLjY4LDAsMCwwLDEwLDE1YTEuMjUsMS4yNSwwLDAsMC0xLjM5LDEuMDhjMCwuNjcuNjEuOTEsMS45MiwxLjIxLDEuNzIuMzksMi44Ny45NCwyLjg3LDIuNDRTMTIuMjQsMjIuMjIsMTAuMjcsMjIuMjJabTcuNTEsMGE1LDUsMCwwLDEtMy41Mi0xLjM0bC44Ni0xLjA2YTQsNCwwLDAsMCwy''@;'; + put 'put ''LjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIzLTIuNDksMy0yLjQ5YTQuNTYsNC41NiwwLDAsMSwzLjEyLDEuMTVsLS44MSwxLjFhMy42OCwzLjY4LDAsMCwwLTIuMzctMSwxLjI1LDEuMjUsMCww''@;'; + put 'put ''LDAtMS4zOSwxLjA4YzAsLjY3LjYxLjkxLDEuOTIsMS4yMSwxLjcyLjM5LDIuODcuOTQsMi44NywyLjQ0UzE5Ljc1LDIyLjIyLDE3Ljc4LDIyLjIyWm00LjU4LS4xNFYxMy44NGgyLjljMi43MiwwLDQuNjQsMS43MSw0LjY0LDQuMTJTMjgsMjIuMDgsMjUuMjYsMjIuMDhaTTMwLjY5LDI4YTEu''@;'; + put 'put ''MjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjY5LDI4Wm0wLTE3LjVhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsMzAuNjksMTAuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNMjMuODYsMTUuMmgxLjU2YTIuNzcsMi43NywwLDEsMSwwLDUuNTNIMjMuODZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlQmx1ZXRvb3RoPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi42''@;'; + put 'put ''NCwyNS4yNywxOSwxNy41MywxOSwzLDI1LjIxLDkuNGwtNS42NSw1Ljc5TDIxLDE2LjYybDUuNjgtNS44MmEyLDIsMCwwLDAsMC0yLjc4TDIwLjQ4LDEuN0EyLjA4LDIuMDgsMCwwLDAsMTguODUsMSwyLDIsMCwwLDAsMTcsM1YxNS4zOEwxMC4wNSw4LjI3QTEsMSwwLDAsMCw4LjYyLDkuNjZM''@;'; + put 'put ''MTYuNzksMTgsOS4wNiwyNmExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzM2EyLjA3LDIuMDcsMCwwLDAsLjcxLDEuNjJBMiwyLDAsMCwwLDE5LDM1YTEuOTQsMS45NCwwLDAsMCwxLjQyLS42bDYuMjMtNi4zOEEyLDIsMCwwLDAs''@;'; + put 'put ''MjYuNjQsMjUuMjdaTTE5LDMzLjA1VjIwLjI5bDYuMjEsNi4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICA8cGF0aCBkPSJNMjYuNTIsMjQuNTJsLTUuNjUtNS44My0xLjQ2LTEuNXYtMTJMMjMuNzksOS43bC0zLjYsMy43MSwyLjI0LDIuMjks''@;'; + put 'put ''NC4wOS00LjIyYTIuNTQsMi41NCwwLDAsMCwwLTMuNTZMMjAuNTcsMS43OEEyLjU0LDIuNTQsMCwwLDAsMTYuMiwzLjU1VjEzLjg2bC01LjUzLTUuN2ExLjYsMS42LDAsMSwwLTIuMywyLjIzTDE1Ljc1LDE4bC03LDcuMTlhMS42LDEuNiwwLDAsMCwwLDIuMjYsMS42MywxLjYzLDAsMCwwLDEu''@;'; + put 'put ''MTIuNDUsMS41OCwxLjU4LDAsMCwwLDEuMTUtLjQ5bDUuMTEtNS4yN1YzMi40NWEyLjUzLDIuNTMsMCwwLDAsMS41OSwyLjM2LDIuNDQsMi40NCwwLDAsMCwuOTUuMTksMi41NiwyLjU2LDAsMCwwLDEuODMtLjc3bDUuOTUtNi4xNUEyLjU0LDIuNTQsMCwwLDAsMjYuNTIsMjQuNTJaTTE5LjQs''@;'; + put 'put ''MzAuODNWMjEuNzdsNC4zOSw0LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQmx1ZXRvb3RoT2ZmPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOSwzLDI1LjIyLDkuNGwtNS42Niw1LjhMMjEsMTYuNjNsNS42OC01LjgzYTIs''@;'; + put 'put ''MiwwLDAsMCwwLTIuNzhMMjAuNDgsMS43QTIsMiwwLDAsMCwxOC44NSwxLDIsMiwwLDAsMCwxNywzdjExLjRsMiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQuNzcsNSwzLjM2LDYuNDIsMTUuODksMTksOS4wNiwyNmExLDEsMCww''@;'; + put 'put ''LDAsLjcxLDEuNywxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzMi45NGEyLjA4LDIuMDgsMCwwLDAsLjcxLDEuNjNBMiwyLDAsMCwwLDE5LDM1YTIsMiwwLDAsMCwxLjQyLS42bDUuNDEtNS41NCwzLjU0LDMuNTNMMzAuNzcsMzFaTTE5LDMzLjA1di0xMWw1LjQxLDUuNDFaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTkuMzEsNS4xNywyMy43LDkuN2wtMy41OSwzLjcxLDIuMjQsMi4yOSw0LjA5LTQuMjJhMi41NiwyLjU2LDAsMCwwLDAtMy41NmwtNi02LjE0YTIuNTEsMi41MSwwLDAsMC0yLjc3LS41OSwyLjU0LDIuNTQs''@;'; + put 'put ''MCwwLDAtMS42LDIuMzZ2MTBsMy4yMSwzLjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNNC41LDUsMy4wOSw2LjQyLDE1LjE3LDE4LjUxLDguNywyNS4xOUExLjYsMS42LDAsMCwwLDkuODUsMjcuOSwxLjU3LDEuNTcsMCwwLDAsMTEsMjcu''@;'; + put 'put ''NDFsNS4xMS01LjI3VjMyLjQ1YTIuNTQsMi41NCwwLDAsMCwxLjYsMi4zNiwyLjQ0LDIuNDQsMCwwLDAsLjk1LjE5LDIuNTUsMi41NSwwLDAsMCwxLjgyLS43N2w1LjEyLTUuMjksMy40OSwzLjQ4TDMwLjUsMzFaTTE5LjgxLDMwLjgzVjIyLjY1bDQsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZVByb2Nlc3NPblZNPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy40OSwyNi4yOGExLDEsMCwwLDAtMS4yLS43bC0yLjQ5LjY3YTE0LjIzLDE0LjIzLDAsMCwwLDIuNC02Ljc1QTE0LjQ4LDE0LjQ4LDAsMCwwLDI3LjM3LDcu''@;'; + put 'put ''MzUsMSwxLDAsMCwwLDI2LDcuNDRhMSwxLDAsMCwwLC4wOSwxLjQxLDEyLjQ1LDEyLjQ1LDAsMCwxLDQuMTYsMTAuNDYsMTIuMTksMTIuMTksMCwwLDEtMiw1Ljc0TDI4LDIyLjU0YTEsMSwwLDEsMC0xLjk1LjE2bC41LDYuNDQsNi4yNS0xLjY2QTEsMSwwLDAsMCwzMy40OSwyNi4yOFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjMxLDE3LjA4YTEuMDYsMS4wNiwwLDAsMCwuNDQuMTYsMSwxLDAsMCwwLDEuMTItLjg1QTEyLjIxLDEyLjIxLDAsMCwxLDE4LjY5LDUuODRMMTYuNDUsNy4zN2ExLDEsMCwwLDAsLjQ3LDEuNzlB''@;'; + put 'put ''MSwxLDAsMCwwLDE3LjU2LDlsNS4zMy0zLjY2TDE4LjMzLjc2YTEsMSwwLDEsMC0xLjM5LDEuMzhsMS43LDEuN0ExNC4yLDE0LjIsMCwwLDAsMy44OSwxNi4xMiwxLDEsMCwwLDAsNC4zMSwxNy4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRo''@;'; + put 'put ''IGQ9Ik0yMS43MywyOS45M2ExMiwxMiwwLDAsMS00Ljg0LjUxLDEyLjMsMTIuMywwLDAsMS05LjU3LTYuM2wyLjQ5LjkzYTEsMSwwLDAsMCwuNjktMS44NGwtNC41OS0xLjdoMEw0LjQ0LDIxLDMuMzMsMjcuMzVhMSwxLDAsMCwwLC43OSwxLjEzbC4xNywwYTEsMSwwLDAsMCwxLS44MWwuNDIt''@;'; + put 'put ''Mi40YTE0LjMsMTQuMywwLDAsMCwxMSw3LjE0LDEzLjkxLDEzLjkxLDAsMCwwLDUuNjMtLjYsMSwxLDAsMCwwLS42LTEuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwxM0gxNGExLDEsMCwwLDAtMSwxdjhhMSwxLDAsMCwwLDEs''@;'; + put 'put ''MWg4YTEsMSwwLDAsMCwxLTFWMTRBMSwxLDAsMCwwLDIyLDEzWm0tMSw4SDE1VjE1aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxMLkNsclNoYXBlQXNzaWduVXNlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNy40Niw3LjQ2''@;'; + put 'put ''LDAsMSwwLTcuNDUtNy40NkE3LjQ2LDcuNDYsMCwwLDAsMTgsMTdaTTE4LDQuMDdhNS40Niw1LjQ2LDAsMSwxLTUuNDUsNS40NUE1LjQ2LDUuNDYsMCwwLDEsMTgsNC4wN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LDMxLjg5VjI1''@;'; + put 'put ''Ljc3YTE2LjEzLDE2LjEzLDAsMCwxLDEyLTUsMTYuNjEsMTYuNjEsMCwwLDEsOC43MSwyLjMzbDEuMzUtMS41MUExOC41MywxOC41MywwLDAsMCwxOCwxOC43NCwxNy43LDE3LjcsMCwwLDAsNC4yMSwyNC44YTEsMSwwLDAsMC0uMjEuNnY2LjQ5QTIuMDYsMi4wNiwwLDAsMCw2LDM0SDE4LjM5''@;'; + put 'put ''bC0xLjktMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMS44OSwzMCwzMkgyNi44NWwtMS44LDJIMzBhMi4wNiwyLjA2LDAsMCwwLDItMi4wN1YyNi4ybC0yLDIuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzQuNzYsMTguNjJhMSwxLDAsMCwwLTEuNDEuMDhsLTExLjYyLDEzLTUuMi01LjU5QTEsMSwwLDAsMCwxNS4xMiwyNmExLDEsMCwwLDAtLjA2LDEuNDJsNi42OSw3LjJMMzQuODQsMjBBMSwxLDAsMCwwLDM0Ljc2LDE4LjYyWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PGNpcmNsZSBjeD0iMTcuOTkiIGN5PSIxMC4zNiIgcj0iNi44MSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTIsMjYuNjVhMi44LDIuOCwwLDAsMSw0Ljg1LTEuOEwyMC43MSwyOWw2''@;'; + put 'put ''Ljg0LTcuNjNBMTYuODEsMTYuODEsMCwwLDAsMTgsMTguNTUsMTYuMTMsMTYuMTMsMCwwLDAsNS41LDI0YTEsMSwwLDAsMC0uMi42MVYzMGEyLDIsMCwwLDAsMS45NCwyaDguNTdsLTMuMDctMy4zQTIuODEsMi44MSwwLDAsMSwxMiwyNi42NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI4Ljc2LDMyYTIsMiwwLDAsMCwxLjk0LTJWMjYuMjRMMjUuNTcsMzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMy43NywxOC42MmExLDEsMCwwLDAtMS40Mi4wOGwtMTEuNjIsMTMtNS4yLTUu''@;'; + put 'put ''NTlBMSwxLDAsMCwwLDE0LjEyLDI2YTEsMSwwLDAsMCwwLDEuNDJsNi42OCw3LjJMMzMuODQsMjBBMSwxLDAsMCwwLDMzLjc3LDE4LjYyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxMLkNsclNoYXBlQXRvbT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBk''@;'; + put 'put ''PSJNMTgsMTQuMDVhNCw0LDAsMSwwLDQsNEE0LDQsMCwwLDAsMTgsMTQuMDVabTAsNi40NGEyLjQyLDIuNDIsMCwxLDEsMi40Mi0yLjQyQTIuNDIsMi40MiwwLDAsMSwxOCwyMC40OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yNC4y''@;'; + put 'put ''MywxMS43MWEzOS4xNCwzOS4xNCwwLDAsMC00LjU3LTMuOTIsMjIuODYsMjIuODYsMCwwLDEsMy40OC0xLjcyYy4zMi0uMTIuNjItLjIxLjkyLS4zYTIuMjgsMi4yOCwwLDAsMCwzLjgxLS40NiwzLjMxLDMuMzEsMCwwLDEsMS45Mi44NGMxLjE5LDEuMTksMS4yMiwzLjU5LjEsNi41OC40OS42''@;'; + put 'put ''NS45NCwxLjMxLDEuMzUsMiwuMTctLjQuMzUtLjc5LjQ5LTEuMTgsMS40Ny0zLjg1LDEuMjgtNy0uNTMtOC43OGE1LjI5LDUuMjksMCwwLDAtMy4zMy0xLjQ0LDIuMjksMi4yOSwwLDAsMC00LjMxLjU0Yy0uMzcuMTEtLjc0LjIyLTEuMTMuMzdhMjUuNzksMjUuNzksMCwwLDAtNC41NywyLjM1''@;'; + put 'put ''QTI2LjIxLDI2LjIxLDAsMCwwLDEzLjI4LDQuMmMtMy44NS0xLjQ2LTctMS4yOC04Ljc3LjUzQzIuODUsNi40LDIuNTgsOS4xNywzLjY4LDEyLjU5YTIuMjgsMi4yOCwwLDAsMCwxLjU5LDMuNjdjLjMyLjYxLjY3LDEuMjIsMS4wNiwxLjgyQTI1LjU0LDI1LjU0LDAsMCwwLDQsMjIuNjZjLTEu''@;'; + put 'put ''NDcsMy44NC0xLjI4LDcsLjUzLDguNzdhNS42Myw1LjYzLDAsMCwwLDQuMTIsMS41MSwxMy4zNCwxMy4zNCwwLDAsMCw0LjY1LTEsMjYuMjEsMjYuMjEsMCwwLDAsNC41OC0yLjM1QTI1Ljc5LDI1Ljc5LDAsMCwwLDIyLjQzLDMyYTE0LjE2LDE0LjE2LDAsMCwwLDMuNjUuOUEyLjMsMi4zLDAs''@;'; + put 'put ''MCwwLDMwLjQ2LDMyYTQuNTUsNC41NSwwLDAsMCwuNzQtLjU3YzEuODEtMS44MSwyLTQuOTMuNTMtOC43N0EzMi42OCwzMi42OCwwLDAsMCwyNC4yMywxMS43MVpNMTIuNTcsMzAuMDljLTMsMS4xNS01LjQ1LDEuMTMtNi42NS0uMDhzLTEuMjMtMy42Mi0uMDctNi42NGEyMi43NywyMi43Nyww''@;'; + put 'put ''LDAsMSwxLjcxLTMuNDgsNDAuMTksNDAuMTksMCwwLDAsMy45Miw0LjU2Yy40My40My44Ny44NSwxLjMxLDEuMjVxLjktLjQ2LDEuODMtMS4wNWMtLjU4LS41Mi0xLjE2LTEtMS43Mi0xLjYxYTM0LDM0LDAsMCwxLTUuNzQtNy40N0EyLjI5LDIuMjksMCwwLDAsNS41LDExLjY5aDBjLS43NS0y''@;'; + put 'put ''LjUtLjYyLTQuNDkuNDMtNS41NGEzLjcyLDMuNzIsMCwwLDEsMi43Mi0uOTIsMTEuNCwxMS40LDAsMCwxLDMuOTMuODQsMjIuODYsMjIuODYsMCwwLDEsMy40OCwxLjcyLDM5LjE0LDM5LjE0LDAsMCwwLTQuNTcsMy45MmMtLjQ0LjQ0LS44Ny45LTEuMjksMS4zNmEyMC4yNywyMC4yNywwLDAs''@;'; + put 'put ''MCwxLDEuODVjLjU0LS42MSwxLjA5LTEuMjEsMS42OC0xLjhhMzYuMzMsMzYuMzMsMCwwLDEsNS00LjE3LDM2Ljg4LDM2Ljg4LDAsMCwxLDQuOTUsNC4xNywzNi4yNiwzNi4yNiwwLDAsMSw0LjE3LDUsMzcsMzcsMCwwLDEtNC4xNyw1QTMwLjY4LDMwLjY4LDAsMCwxLDEyLjU3LDMwLjA5Wk0y''@;'; + put 'put ''OS43OSwzMGwtLjE2LjEzYTIuMjcsMi4yNywwLDAsMC0zLjUuNzIsMTIuNTcsMTIuNTcsMCwwLDEtMy0uNzcsMjIsMjIsMCwwLDEtMy40OC0xLjcyLDM5LjE0LDM5LjE0LDAsMCwwLDQuNTctMy45MiwzOC4yNiwzOC4yNiwwLDAsMCwzLjkyLTQuNTYsMjIuODgsMjIuODgsMCwwLDEsMS43Miwz''@;'; + put 'put ''LjQ4QzMxLDI2LjM5LDMxLDI4LjgxLDI5Ljc5LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LjIzLDExLjcxYTM5LjE0LDM5LjE0LDAsMCwwLTQuNTctMy45MiwyMi44NiwyMi44NiwwLDAsMSwzLjQ4LTEuNzJjLjMyLS4xMi42''@;'; + put 'put ''Mi0uMjEuOTItLjNhMi4yOCwyLjI4LDAsMCwwLDMuODEtLjQ2LDMuMzEsMy4zMSwwLDAsMSwxLjkyLjg0YzEuMTksMS4xOSwxLjIyLDMuNTkuMSw2LjU4LjQ5LjY1Ljk0LDEuMzEsMS4zNSwyLC4xNy0uNC4zNS0uNzkuNDktMS4xOCwxLjQ3LTMuODUsMS4yOC03LS41My04Ljc4YTUuMjksNS4y''@;'; + put 'put ''OSwwLDAsMC0zLjMzLTEuNDQsMi4yOSwyLjI5LDAsMCwwLTQuMzEuNTRjLS4zNy4xMS0uNzQuMjItMS4xMy4zN2EyNS43OSwyNS43OSwwLDAsMC00LjU3LDIuMzVBMjYuMjEsMjYuMjEsMCwwLDAsMTMuMjgsNC4yYy0zLjg1LTEuNDYtNy0xLjI4LTguNzcuNTNDMi44NSw2LjQsMi41OCw5LjE3''@;'; + put 'put ''LDMuNjgsMTIuNTlhMi4yOCwyLjI4LDAsMCwwLDEuNTksMy42N2MuMzIuNjEuNjcsMS4yMiwxLjA2LDEuODJBMjUuNTQsMjUuNTQsMCwwLDAsNCwyMi42NmMtMS40NywzLjg0LTEuMjgsNywuNTMsOC43N2E1LjYzLDUuNjMsMCwwLDAsNC4xMiwxLjUxLDEzLjM0LDEzLjM0LDAsMCwwLDQuNjUt''@;'; + put 'put ''MSwyNi4yMSwyNi4yMSwwLDAsMCw0LjU4LTIuMzVBMjUuNzksMjUuNzksMCwwLDAsMjIuNDMsMzJhMTQuMTYsMTQuMTYsMCwwLDAsMy42NS45QTIuMywyLjMsMCwwLDAsMzAuNDYsMzJhNC41NSw0LjU1LDAsMCwwLC43NC0uNTdjMS44MS0xLjgxLDItNC45My41My04Ljc3QTMyLjY4LDMyLjY4''@;'; + put 'put ''LDAsMCwwLDI0LjIzLDExLjcxWk0xMi41NywzMC4wOWMtMywxLjE1LTUuNDUsMS4xMy02LjY1LS4wOHMtMS4yMy0zLjYyLS4wNy02LjY0YTIyLjc3LDIyLjc3LDAsMCwxLDEuNzEtMy40OCw0MC4xOSw0MC4xOSwwLDAsMCwzLjkyLDQuNTZjLjQzLjQzLjg3Ljg1LDEuMzEsMS4yNXEuOS0uNDYs''@;'; + put 'put ''MS44My0xLjA1Yy0uNTgtLjUyLTEuMTYtMS0xLjcyLTEuNjFhMzQsMzQsMCwwLDEtNS43NC03LjQ3QTIuMjksMi4yOSwwLDAsMCw1LjUsMTEuNjloMGMtLjc1LTIuNS0uNjItNC40OS40My01LjU0YTMuNzIsMy43MiwwLDAsMSwyLjcyLS45MiwxMS40LDExLjQsMCwwLDEsMy45My44NCwyMi44''@;'; + put 'put ''NiwyMi44NiwwLDAsMSwzLjQ4LDEuNzIsMzkuMTQsMzkuMTQsMCwwLDAtNC41NywzLjkyYy0uNDQuNDQtLjg3LjktMS4yOSwxLjM2YTIwLjI3LDIwLjI3LDAsMCwwLDEsMS44NWMuNTQtLjYxLDEuMDktMS4yMSwxLjY4LTEuOGEzNi4zMywzNi4zMywwLDAsMSw1LTQuMTcsMzYuODgsMzYuODgs''@;'; + put 'put ''MCwwLDEsNC45NSw0LjE3LDM2LjI2LDM2LjI2LDAsMCwxLDQuMTcsNSwzNywzNywwLDAsMS00LjE3LDVBMzAuNjgsMzAuNjgsMCwwLDEsMTIuNTcsMzAuMDlaTTI5Ljc5LDMwbC0uMTYuMTNhMi4yNywyLjI3LDAsMCwwLTMuNS43MiwxMi41NywxMi41NywwLDAsMS0zLS43NywyMiwyMiwwLDAs''@;'; + put 'put ''MS0zLjQ4LTEuNzIsMzkuMTQsMzkuMTQsMCwwLDAsNC41Ny0zLjkyLDM4LjI2LDM4LjI2LDAsMCwwLDMuOTItNC41NiwyMi44OCwyMi44OCwwLDAsMSwxLjcyLDMuNDhDMzEsMjYuMzksMzEsMjguODEsMjkuNzksMzBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAv''@;'; + put 'put ''PjxjaXJjbGUgY3g9IjE3Ljk5IiBjeT0iMTguMDciIHI9IjMuMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuNjYgMy4xMSkgcm90YXRlKC05LjIyKSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlQmFyQ29kZT0oMCxFLmNsckljb25TVkcp''@;'; + put 'put ''KCc8cGF0aCBkPSJNNSw3QTEsMSwwLDAsMCw0LDhWMzBhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCw1LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSw3QTEsMSwwLDAsMCw4LDhWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAs''@;'; + put 'put ''MCw5LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTMsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMTMsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxw''@;'; + put 'put ''YXRoIGQ9Ik0xNyw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwxNyw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTIxLDdhMSwxLDAsMCwwLTEsMVYyNmExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCww''@;'; + put 'put ''LDIxLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMjUsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxw''@;'; + put 'put ''YXRoIGQ9Ik0yOSw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwyOSw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTMzLDdhMSwxLDAsMCwwLTEsMVYzMGExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCww''@;'; + put 'put ''LDMzLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz4nKSxMLkNsclNoYXBlQ2REdmQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwx''@;'; + put 'put ''NCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMi4zMywxOGE0LjQ2LDQuNDYsMCwxLDAtNC40NSw0LjQ2QTQuNDYsNC40NiwwLDAsMCwyMi4zMywxOFpNMTcuODgsMjAuOUEyLjg2LDIuODYsMCwxLDEsMjAu''@;'; + put 'put ''NzMsMTgsMi44NiwyLjg2LDAsMCwxLDE3Ljg4LDIwLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTcuODgsNy40M0gxOFY1Ljg0aC0uMTJBMTIuMjEsMTIuMjEsMCwwLDAsNS42OCwxNy43NWgxLjZBMTAuNjEsMTAuNjEsMCwwLDEs''@;'; + put 'put ''MTcuODgsNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMC4wOCwxOEgyOC40OXYwQTEwLjYxLDEwLjYxLDAsMCwxLDE4LjI1LDI4LjYzdjEuNkExMi4yMiwxMi4yMiwwLDAsMCwzMC4wOSwxOFMzMC4wOCwxOCwzMC4wOCwxOFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxMVY5LjQ0aC0uMTJhOC42Miw4LjYyLDAsMCwwLTguNiw4LjMyaDEuNmE3LDcsMCwwLDEsNy02LjcyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTE4LjI1LDI1djEuNkE4LjYxLDguNjEsMCwwLDAsMjYuNDgsMTh2MGgtMS42djBBNyw3LDAsMCwxLDE4LjI1LDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTE4LjE3LDEuOTJhMTYsMTYsMCwxLDAsMTYsMTZBMTYs''@;'; + put 'put ''MTYsMCwwLDAsMTguMTcsMS45MlpNMjYuMjMsMThoMS41NGE5LjYxLDkuNjEsMCwwLDEtOS42LDkuNTNIMThWMjZoLjE3QTguMDcsOC4wNywwLDAsMCwyNi4yMywxOFpNNi4wNSwxOEg0LjQ1di0uMDhBMTMuNzIsMTMuNzIsMCwwLDEsMTgsNC4yMXYxLjZBMTIuMTMsMTIuMTMsMCwwLDAsNi4w''@;'; + put 'put ''NSwxNy45MlptNC4wNSwwSDguNTZ2LS4wOEE5LjYxLDkuNjEsMCwwLDEsMTgsOC4zMlY5Ljg2YTguMDcsOC4wNywwLDAsMC03LjksOC4wNlptNC4zMi0uMDhhMy43NSwzLjc1LDAsMSwxLDMuNzUsMy43NUEzLjc1LDMuNzUsMCwwLDEsMTQuNDIsMTcuOTJabTMuNzUsMTMuNzFIMThWMzBoLjE3''@;'; + put 'put ''QTEyLjEzLDEyLjEzLDAsMCwwLDMwLjI4LDE4aDEuNkExMy43MywxMy43MywwLDAsMSwxOC4xNywzMS42M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZUNvbnRhaW5lcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsMzBINGEy''@;'; + put 'put ''LDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgzMmEyLDIsMCwwLDEsMiwyVjI4QTIsMiwwLDAsMSwzMiwzMFpNNCw4VjI4SDMyVjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44''@;'; + put 'put ''LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSw5LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuOTIsMjUuM2EuOC44LDAsMCwxLS44LS44di0xM2EuOC44LDAsMCwxLDEuNiwwdjEzQS44LjgsMCwwLDEsMTQuOTIsMjUu''@;'; + put 'put ''M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMSwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSwyMSwyNS4zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQiIC8+PHBhdGggZD0iTTI3LDI1LjNhLjguOCwwLDAsMS0uOC0uOHYtMTNhLjguOCwwLDAsMSwxLjYsMHYxM0EuOC44LDAsMCwxLDI3LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhW''@;'; + put 'put ''MjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTkuNjMsMjQuMjNhLjc5Ljc5LDAsMCwxLS44MS43N0EuNzkuNzksMCwwLDEsOCwyNC4yM1YxMS43N0EuNzkuNzksMCwwLDEsOC44MiwxMWEuNzkuNzksMCwwLDEsLjgxLjc3Wm02LDBhLjc5Ljc5LDAs''@;'; + put 'put ''MCwxLS44Mi43Ny43OS43OSwwLDAsMS0uODEtLjc3VjExLjc3YS43OS43OSwwLDAsMSwuODEtLjc3Ljc5Ljc5LDAsMCwxLC44Mi43N1ptNi4yMSwwYS43OS43OSwwLDAsMS0uODIuNzcuNzkuNzksMCwwLDEtLjgxLS43N1YxMS43N2EuNzkuNzksMCwwLDEsLjgxLS43Ny43OS43OSwwLDAsMSwu''@;'; + put 'put ''ODIuNzdabTYuMTIsMGEuNzkuNzksMCwwLDEtLjgyLjc3Ljc5Ljc5LDAsMCwxLS44MS0uNzdWMTEuNzdhLjc5Ljc5LDAsMCwxLC44MS0uNzcuNzkuNzksMCwwLDEsLjgyLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQ29udGFpbmVy''@;'; + put 'put ''Vm9sdW1lPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LDE3LjU4YTMyLjM1LDMyLjM1LDAsMCwwLDYuMy45Miw0LjEzLDQuMTMsMCwwLDEsLjkyLTEuMzcsMzAuOTQsMzAuOTQsMCwwLDEtNy4yMi0xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTYsMjhWOC4xOWMuMzQtLjc2LDQuMzEtMi4xMSwxMS0yLjExczEwLjY3LDEuMzUsMTEsMnYuM2MtLjgyLjc5LTQuNTgsMi4wNS0xMS4xMSwyLjA1QTMzLjQ4LDMzLjQ4LDAsMCwxLDgsOS40NHYxLjQ0YTM1LjYsMzUuNiwwLDAsMCw4Ljg5LDFjNC4yOSwwLDguOC0uNTgsMTEu''@;'; + put 'put ''MTEtMS44MnY1LjA3YTUuMyw1LjMsMCwwLDEtMS44MS44OEgzMFY4LjEyYzAtMy4xOS04LjE3LTQtMTMtNHMtMTMsLjg1LTEzLDRWMjhDNCwzMC42Myw5LjM5LDMxLjY4LDE0LDMyVjMwQzkuMTMsMjkuNjYsNi4yOCwyOC42Miw2LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTgsMjQuMjhhMzEuMywzMS4zLDAsMCwwLDYsLjg5di0xLjRhMjguOTMsMjguOTMsMCwwLDEtNi0uOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIsMThIMThhMiwyLDAsMCwwLTIsMlYz''@;'; + put 'put ''MmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yMSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwwLDAs''@;'; + put 'put ''MS40LDBWMjIuNEEuNy43LDAsMCwwLDIxLDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsMjEuODJhLjcuNywwLDAsMC0uNy43VjMwYS43LjcsMCwxLDAsMS40LDBWMjIuNTJBLjcuNywwLDAsMCwyNSwyMS44MloiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIg''@;'; + put 'put ''Lz48cGF0aCBkPSJNMzIsMThIMThhMiwyLDAsMCwwLTIsMlYzMmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTIxLDIxLjdh''@;'; + put 'put ''LjcuNywwLDAsMC0uNy43djcuNDlhLjcuNywwLDAsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjEsMjEuN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI1LDIxLjgyYS43LjcsMCwwLDAtLjcuN1YzMGEuNy43LDAsMSwwLDEuNCwwVjIyLjUy''@;'; + put 'put ''QS43LjcsMCwwLDAsMjUsMjEuODJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxNkgyOFY4LjEyYzAtMS42OC01LjM4LTMtMTItM1M0LDYuNDQsNCw4LjEyVjI4YzAsMS41LDQuMzMsMi43NSwxMCwzVjI1LjIyYTI5LjE3LDI5LjE3LDAsMCwxLTgtMS4yOVYyMi40NGwuMjQuMUEyNi42MywyNi42MywwLDAsMCwx''@;'; + put 'put ''NCwyMy44MlYyMGE0LDQsMCwwLDEsLjI5LTEuNDdBMjkuMTksMjkuMTksMCwwLDEsNiwxNy4yM1YxNS43NWwuMjQuMDlhMjksMjksMCwwLDAsOSwxLjMyaDBBNCw0LDAsMCwxLDE4LDE2Wk02LDEwLjU0VjkuMDVsLjI0LjA5QTMwLjEyLDMwLjEyLDAsMCwwLDE2LDEwLjQ3LDI4LjMzLDI4LjMz''@;'; + put 'put ''LDAsMCwwLDI2LDkuMDV2MS41YTMyLjUzLDMyLjUzLDAsMCwxLTEwLDEuMzJBMzIuNDQsMzIuNDQsMCwwLDEsNiwxMC41NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+JyksTC5DbHJTaGFwZUZpbGVTaGFyZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJN''@;'; + put 'put ''MzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAs''@;'; + put 'put ''MCwuODEuNDFIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEuOTEsMjIuNDhhMi4wNiwyLjA2LDAsMCwwLTEuNDQuNjJsLTUuNzItMi42NlYyMGw1LjY2LTIuNjVhMi4wOCwyLjA4LDAsMSwwLC4wNi0yLjk0LDIuMTIsMi4xMiww''@;'; + put 'put ''LDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNhMi4wOSwyLjA5LDAsMSwwLDIuMDgtMi4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDlIMTYu''@;'; + put 'put ''NDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwzMCw5Wk02LDdoNi40OWwyLjcyLDRINlpNMjEuOTQsMjYuNjRhMi4wOSwyLjA5LDAsMCwxLTIuMTEtMi4wNmwwLS4zLTUu''@;'; + put 'put ''NjctMi42Ni0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMDgsMi4wOCwwLDEsMSwuNTgsMS40NkwxNC43NSwyMHYuNDdsNS43MiwyLjY2YTIuMDcsMi4wNywwLDEsMSwxLjQ3LDMuNTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0xIiAvPicpLEwuQ2xyU2hhcGVRckNvZGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUuNiw0QTEuNiwxLjYsMCwwLDAsNCw1LjZWMTJoOFY0Wk0xMCwxMEg2VjZoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LDMwLjRB''@;'; + put 'put ''MS42LDEuNiwwLDAsMCw1LjYsMzJIMTJWMjRINFpNNiwyNmg0djRINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNCwzMmg2LjRBMS42LDEuNiwwLDAsMCwzMiwzMC40VjI0SDI0Wm0yLTZoNHY0SDI2WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjQsNEgyNHY4aDhWNS42QTEuNiwxLjYsMCwwLDAsMzAuNCw0Wk0zMCwxMEgyNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cG9seWdvbiBwb2ludHM9IjIwIDEwIDIw''@;'; + put 'put ''IDggMTYgOCAxNiAxMiAxOCAxMiAxOCAxMCAyMCAxMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHJlY3QgeD0iMTIiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48''@;'; + put 'put ''cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgNiAyMCA4IDIyIDggMjIgNCAxNCA0IDE0IDggMTYgOCAxNiA2IDIwIDYiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxyZWN0IHg9IjQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSI0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz48cG9seWdvbiBwb2ludHM9IjEyIDE2IDEyIDE4IDEwIDE4IDEwIDE0IDggMTQgOCAxOCA2''@;'; + put 'put ''IDE4IDYgMjAgNCAyMCA0IDIyIDggMjIgOCAyMCAxMCAyMCAxMCAyMiAxMiAyMiAxMiAyMCAxNCAyMCAxNCAxNiAxMiAxNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgMTYgMjIgMTYgMjIgMTggMjQgMTggMjQgMTYg''@;'; + put 'put ''MjYgMTYgMjYgMTQgMjIgMTQgMjIgMTAgMjAgMTAgMjAgMTIgMTggMTIgMTggMTQgMjAgMTQgMjAgMTYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgLz48cG9seWdvbiBwb2ludHM9IjE4IDMwIDE0IDMwIDE0IDMyIDIyIDMyIDIyIDMwIDIwIDMwIDIwIDI4''@;'; + put 'put ''IDE4IDI4IDE4IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTIiIC8+PHBvbHlnb24gcG9pbnRzPSIyMiAyMCAyMiAxOCAyMCAxOCAyMCAxNiAxOCAxNiAxOCAxOCAxNiAxOCAxNiAyMCAxOCAyMCAxOCAyMiAyMCAyMiAyMCAyMCAyMiAyMCIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEzIiAvPjxyZWN0IHg9IjMwIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiAvPjxyZWN0IHg9IjIyIiB5PSIyMCIgd2lkdGg9IjYiIGhlaWdodD0iMiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiAvPjxwb2x5Z29uIHBvaW50cz0iMzAgMTQgMjggMTQgMjggMTYgMjYgMTYgMjYgMTggMjggMTggMjggMjAgMzAgMjAgMzAgMTggMzIgMTggMzIgMTYgMzAgMTYgMzAgMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xNiIgLz48cmVjdCB4PSIyMCIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNyIgLz48cG9seWdvbiBwb2ludHM9IjE0IDI4IDE2IDI4IDE2IDI2IDE4IDI2IDE4IDI0IDE2IDI0IDE2''@;'; + put 'put ''IDIwIDE0IDIwIDE0IDI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTgiIC8+JyksTC5DbHJTaGFwZVVzYj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTQuMjksMTEuNGExLjQ5LDEuNDksMCwwLDEsMS4yOC0uNzJoMWEyLjg5LDIuODksMCwwLDAsMi43''@;'; + put 'put ''NSwyLjA5LDMsMywwLDAsMCwwLTUuOTEsMi45LDIuOSwwLDAsMC0yLjY3LDEuODJIMTUuNTdhMy40OSwzLjQ5LDAsMCwwLTMsMS42NmwtMyw0LjgzaDIuMzZabTUtMi45NEExLjM2LDEuMzYsMCwxLDEsMTgsOS44MSwxLjMyLDEuMzIsMCwwLDEsMTkuMzMsOC40NloiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zNC4zLDE3LjM3bC02LjExLTMuNjZhLjcuNywwLDAsMC0uNywwLC43MS43MSwwLDAsMC0uMzYuNjFWMTdINi45MmEyLjMzLDIuMzMsMCwwLDEsLjMyLDEuMTcsMi40NywyLjQ3LDAsMSwxLTIuNDctMi40NiwyLjM3LDIu''@;'; + put 'put ''MzcsMCwwLDEsMS4xNS4zbC45My0xLjc2QTQuNDQsNC40NCwwLDEsMCw5LjE1LDE5aDMuNThsNC4xNyw2LjY1YTMuNDksMy40OSwwLDAsMCwzLDEuNjZoMS42NnYxLjI4YS43OS43OSwwLDAsMCwuOC43OWg0LjQ5YS43OS43OSwwLDAsMCwuOC0uNzl2LTQuNGEuNzkuNzksMCwwLDAtLjgtLjhI''@;'; + put 'put ''MjIuMzRhLjguOCwwLDAsMC0uOC44djEuMTJIMTkuODhhMS41MSwxLjUxLDAsMCwxLTEuMjgtLjcyTDE1LjA5LDE5aDEydjIuNjZhLjY5LjY5LDAsMCwwLC4zNi42MS42Ny42NywwLDAsMCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDYuMTEtMy42NmEuNjkuNjksMCwwLDAsLjM0LS42QS43''@;'; + put 'put ''MS43MSwwLDAsMCwzNC4zLDE3LjM3Wk0yMy4xNCwyNUgyNnYyLjhIMjMuMTRabTUuMzktNC41NlYxNS41NWw0LDIuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzQuNzIsMTcuMzdsLTUuNTEtMy4zMWEuNzEuNzEsMCwwLDAtMS4w''@;'; + put 'put ''Ny42VjE3SDExLjc3bDMuNTItNS42YTEuNDksMS40OSwwLDAsMSwxLjI4LS43MmgxLjY0YTIuNDEsMi40MSwwLDAsMCwyLjI1LDEuNjEsMi40OCwyLjQ4LDAsMCwwLDAtNC45NSwyLjM4LDIuMzgsMCwwLDAtMi4xMywxLjM0SDE2LjU3YTMuNDksMy40OSwwLDAsMC0zLDEuNjZMOS40MSwxN0g4''@;'; + put 'put ''YTMuNDYsMy40NiwwLDEsMCwuMDgsMmg1LjY0bDQuMTUsNi42MmEzLjQ5LDMuNDksMCwwLDAsMywxLjY2aDIuNTl2LjkyaDQuNFYyMy44aC00LjR2MS40OEgyMC44OGExLjUxLDEuNTEsMCwwLDEtMS4yOC0uNzJMMTYuMTEsMTloMTJ2Mi4yOGEuNy43LDAsMCwwLC4zNi42MS43Mi43MiwwLDAs''@;'; + put 'put ''MCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDUuNTItMy4zMWEuNy43LDAsMCwwLDAtMS4yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlUmFkYXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDE4YzAsNy43LTYuMywxNC0x''@;'; + put 'put ''NCwxNGMtNy43LDAtMTQtNi4zLTE0LTE0QzQsMTAuNiw5LjcsNC41LDE3LjEsNHYzLjdjLTUuNywwLjUtOS45LDUuNS05LjQsMTEuMnM1LjUsOS45LDExLjIsOS40XG5cdGM1LjMtMC41LDkuNC00LjksOS40LTEwLjNoLTJjMCw0LjYtMy43LDguMy04LjMsOC4zcy04LjMtMy43LTguMy04LjNj''@;'; + put 'put ''MC00LjIsMy4xLTcuOCw3LjMtOC4zdjQuNGMtMS44LDAuNC0zLjEsMi0zLjEsMy45XG5cdGMwLDIuMiwxLjgsNCw0LDRzNC0xLjgsNC00YzAtMS44LTEuMy0zLjQtMy0zLjhWMi4xQzE4LjYsMiwxOC4zLDIsMTgsMkM5LjIsMiwyLDkuMiwyLDE4czcuMiwxNiwxNiwxNnMxNi03LjIsMTYtMTZI''@;'; + put 'put ''MzJ6IE0yMCwxOFxuXHRjMCwxLjEtMC45LDItMiwycy0yLTAuOS0yLTJzMC45LTIsMi0yUzIwLDE2LjksMjAsMTh6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIsMThjMCw3LjctNi4yLDE0LTE0LDE0UzQsMjUuOCw0LDE4YzAtNy40''@;'; + put 'put ''LDUuNy0xMy41LDEzLjEtMTR2My43Yy01LjcsMC41LTkuOCw1LjUtOS4zLDExLjJzNS41LDkuOCwxMS4yLDkuM1xuXHRcdGM1LjMtMC41LDkuMy00LjksOS4zLTEwLjJoLTJjMCw0LjYtMy43LDguMy04LjMsOC4zUzkuNywyMi42LDkuNywxOGMwLTQuMiwzLjItNy44LDcuMy04LjJ2NC40Yy0y''@;'; + put 'put ''LjEsMC42LTMuNCwyLjctMi45LDQuOVxuXHRcdGMwLjYsMi4xLDIuNywzLjQsNC45LDIuOWMyLjEtMC42LDMuNC0yLjcsMi45LTQuOWMtMC40LTEuNC0xLjUtMi41LTIuOS0yLjlWMmMtMC40LDAtMC43LDAtMS4xLDBjLTguOCwwLTE2LDcuMi0xNiwxNlxuXHRcdGMwLDguOCw3LjIsMTYsMTYs''@;'; + put 'put ''MTZzMTYtNy4yLDE2LTE2YzAsMCwwLDAsMCwwSDMyeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlSW5kdWN0b3I9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjMxLDI1LjgxYy0xLjc1LDAtMy0yLjQ5LTMtNmExMi43OSwxMi43''@;'; + put 'put ''OSwwLDAsMSwxLjcyLTYuNywyLjU3LDIuNTcsMCwwLDAtMy43OSwwQTEyLjc5LDEyLjc5LDAsMCwxLDIxLDE5Ljc2YzAsMy41Ni0xLjIzLDYtMyw2cy0zLTIuNDktMy02YTEyLjc5LDEyLjc5LDAsMCwxLDEuNzItNi43LDIuNTcsMi41NywwLDAsMC0zLjc5LDAsMTIuNzksMTIuNzksMCwwLDEs''@;'; + put 'put ''MS43Miw2LjdjMCwzLjU2LTEuMjMsNi0zLDZzLTMtMi40OS0zLTZhMTIuODgsMTIuODgsMCwwLDEsMS43MS02LjcsMi43LDIuNywwLDAsMC0xLjg5LS44N0M3LjEsMTIuMTksNS42OSwxMy43LDUsMTZsLS4yMy43SDJhMSwxLDAsMCwxLDAtMkgzLjI5YzEuMS0yLjgzLDMuMDYtNC41NSw1LjI0''@;'; + put 'put ''LTQuNTVhNC42Nyw0LjY3LDAsMCwxLDMuMTYsMS4zMiw0LjYyLDQuNjIsMCwwLDEsMy4xNS0xLjMyQTQuNjUsNC42NSwwLDAsMSwxOCwxMS41MWE0LjQzLDQuNDMsMCwwLDEsNi4zMSwwLDQuNjcsNC42NywwLDAsMSwzLjE2LTEuMzJjMi4xOCwwLDQuMTQsMS43Miw1LjI0LDQuNTVIMzRhMSwx''@;'; + put 'put ''LDAsMCwxLDAsMkgzMS4yOGwtLjIzLS43Yy0uNzQtMi4zNC0yLjE1LTMuODUtMy41OC0zLjg1YTIuNywyLjcsMCwwLDAtMS44OS44NywxMi44OCwxMi44OCwwLDAsMSwxLjcxLDYuN0MyNy4yOSwyMy4zMiwyNi4wNywyNS44MSwyNC4zMSwyNS44MVpNMTgsMTQuOTNhMTEuNzEsMTEuNzEsMCww''@;'; + put 'put ''LDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTgsMTQuOTNabTYuMzEsMGExMS43MSwxMS43MSwwLDAsMC0xLDQuODNjMCwyLjU0LjY2LDMuNzUsMSw0LC4zMi0uMjcsMS0xLjQ4LDEtNEExMS43MSwxMS43MSwwLDAsMCwy''@;'; + put 'put ''NC4zMSwxNC45M1ptLTEyLjYyLDBhMTEuNzEsMTEuNzEsMCwwLDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTEuNjksMTQuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxM''@;'; + put 'put ''LkNsclNoYXBlUmVzaXN0b3I9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjQzLDI2LjM0aDBBMS40NywxLjQ3LDAsMCwxLDI4LDI1LjIyTDI0Ljg2LDEzLjE1LDIxLjc0LDI1LjIyYTEuNDksMS40OSwwLDAsMS0xLjQ1LDEuMTJoMGExLjQ5LDEuNDksMCwwLDEtMS40Ni0xLjEyTDE1''@;'; + put 'put ''LjcxLDEzLjE1LDEyLjYsMjUuMjJhMS41MSwxLjUxLDAsMCwxLTIuOTEsMEw2LjU3LDEzLjE1LDUuMjIsMTguMzdIMmExLDEsMCwwLDEsMC0ySDMuNjdsMS40NS01LjU5QTEuNDgsMS40OCwwLDAsMSw2LjU3LDkuNjZoMEExLjQ3LDEuNDcsMCwwLDEsOCwxMC43OGwzLjEyLDEyLjA3LDMuMTIt''@;'; + put 'put ''MTIuMDdhMS40OSwxLjQ5LDAsMCwxLDEuNDUtMS4xMmgwYTEuNDksMS40OSwwLDAsMSwxLjQ2LDEuMTJsMy4xMiwxMi4wNywzLjEyLTEyLjA3YTEuNSwxLjUsMCwwLDEsMi45LDBsMy4xMiwxMi4wNywxLjM1LTUuMjJIMzRhMSwxLDAsMCwxLDAsMkgzMi4zM2wtMS40NSw1LjU5QTEuNDgsMS40''@;'; + put 'put ''OCwwLDAsMSwyOS40MywyNi4zNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVDYXBhY2l0b3I9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LDM0LjA2YTEsMSwwLDAsMS0xLTFWMy4xNWExLDEsMCwxLDEsMiwwVjMzLjA2''@;'; + put 'put ''QTEsMSwwLDAsMSwxNSwzNC4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMSwzNC4wNmExLDEsMCwwLDEtMS0xVjMuMTVhMSwxLDAsMSwxLDIsMFYzMy4wNkExLDEsMCwwLDEsMjEsMzQuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuNDYsMTlIM2ExLDEsMCwwLDEsMC0ySDE0LjQ2YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMTlIMjEuNTRhMSwxLDAsMCwxLDAtMkgz''@;'; + put 'put ''M2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZVNxdWlkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw3YTEsMSwwLDAsMS0xLTFWMy4xOWExLDEsMCwwLDEsMiwwVjZBMSwxLDAsMCwxLDE4LDda''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMzRhMSwxLDAsMCwxLTEtMVYzMGExLDEsMCwwLDEsMiwwdjNBMSwxLDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGgg''@;'; + put 'put ''ZD0iTTcuNDEsMThsMS43OC0xLjc3YTEsMSwwLDEsMC0xLjQyLTEuNDJMNiwxNi41OSw0LjIzLDE0LjgxYTEsMSwwLDEsMC0xLjQyLDEuNDJMNC41OSwxOCwyLjgxLDE5Ljc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcxLS4yOUw2LDE5LjQxbDEuNzcs''@;'; + put 'put ''MS43OGExLDEsMCwwLDAsMS40MiwwLDEsMSwwLDAsMCwwLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNNiwxMy43NmwuMzYtLjM2YTMsMywwLDAsMSwyLjExLS44OCwxMSwxMSwwLDAsMSwxOSwwLDMsMywwLDAsMSwyLjEyLjg4''@;'; + put 'put ''bC4zNi4zNi4yLS4yYTEzLDEzLDAsMCwwLTI0LjQsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMCwyMi4yNGwtLjM2LjM2YTMsMywwLDAsMS0yLjEyLjg4LDExLDExLDAsMCwxLTE5LDAsMywzLDAsMCwxLTIuMTItLjg4TDYsMjIu''@;'; + put 'put ''MjRsLS4yLjJhMTMsMTMsMCwwLDAsMjQuNCwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMxLjQxLDE4bDEuNzgtMS43N2ExLDEsMCwwLDAtMS40Mi0xLjQyTDMwLDE2LjU5bC0xLjc3LTEuNzhhMSwxLDAsMSwwLTEuNDIsMS40Mkwy''@;'; + put 'put ''OC41OSwxOGwtMS43OCwxLjc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcxLS4yOUwzMCwxOS40MWwxLjc3LDEuNzhhMSwxLDAsMCwwLDEuNDIsMCwxLDEsMCwwLDAsMC0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTYiIC8+JyksTC5DbHJTaGFwZUhvc3RHcm91cD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEuMDgsMzRoLTE0QTEuMDgsMS4wOCwwLDAsMSw2LDMzVjEyYTEuMDgsMS4wOCwwLDAsMSwxLjA4LTEuMDhoMTRBMS4wOCwxLjA4LDAsMCwxLDIyLjE2LDEyVjMzQTEuMDgsMS4wOCwwLDAs''@;'; + put 'put ''MSwyMS4wOCwzNFpNOC4xNiwzMS44OEgyMFYxM0g4LjE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cmVjdCB4PSIxMC4wOCIgeT0iMTQuOTYiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNi4xLDI3LjgxaC0yVjloLTEyVjdoMTNhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuPHBhdGggZD0iTTMwLjA4LDIzaC0yVjVoLTExVjNoMTJhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxyZWN0IHg9IjEzLjA4IiB5PSIyNy44OCIgd2lkdGg9IjIiIGhlaWdodD0iMi4xNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG5cbjxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt''@;'; + put 'put ''aS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4wOCwzMSBMMS4wOCwzMSBDMC41MTM0MjcxOTcsMzEuMDAxNTU2NCAwLjA0MTk2NjM3NjUsMzAuNTY1MDE4NiAwLDMwIEwwLDkgQzAsOC40MDM1MzI0NyAwLjQ4MzUzMjQ3LDcuOTIgMS4wOCw3LjkyIEwxNS4wOCw3LjkyIEMxNS42NzY0Njc1LDcuOTIg''@;'; + put 'put ''MTYuMTYsOC40MDM1MzI0NyAxNi4xNiw5IEwxNi4xNiwzMCBDMTYuMTE4MDMzNiwzMC41NjUwMTg2IDE1LjY0NjU3MjgsMzEuMDAxNTU2NCAxNS4wOCwzMSBaIE00LjA4LDExLjk2IEw0LjA4LDEzLjk2IEwxMi4wOCwxMy45NiBMMTIuMDgsMTEuOTYgTDQuMDgsMTEuOTYgWiBNNy4wOCwyNC44''@;'; + put 'put ''OCBMNy4wOCwyNy4wNCBMOS4wOCwyNy4wNCBMOS4wOCwyNC44OCBMNy4wOCwyNC44OCBaIiAvPlxuPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTIwLjEsMjQuODEgTDE4LjEsMjQuODEgTDE4LjEsNiBMNi4xLDYgTDYuMSw0IEwxOS4xLDQgQzE5LjY1''@;'; + put 'put ''MjI4NDcsNCAyMC4xLDQuNDQ3NzE1MjUgMjAuMSw1IEwyMC4xLDI0LjgxIFoiIC8+XG48cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjQuMDgsMjAgTDIyLjA4LDIwIEwyMi4wOCwyIEwxMS4wOCwyIEwxMS4wOCwwIEwyMy4wOCwwIEMyMy42MzIyODQ3''@;'; + put 'put ''LDAgMjQuMDgsMC40NDc3MTUyNSAyNC4wOCwxIEwyNC4wOCwyMCBaIiAvPicpLEwuQ2xyU2hhcGVTdG9yYWdlQWRhcHRlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNi4wNiwzMGExLDEsMCwwLDEtMS0xVjhoLTJhMSwxLDAsMCwxLDAtMmg0VjI5QTEsMSwwLDAsMSw2LjA2LDMwWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMwLjA2LDI3aC0yNVY5aDI1YTMsMywwLDAsMSwzLDNWMjRBMywzLDAsMCwxLDMwLjA2LDI3Wm0tMjMtMmgyM2ExLDEsMCwwLDAsMS0xVjEyYTEsMSwwLDAsMC0xLTFoLTIzWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0iMjIuMDYiIHk9IjIwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cmVjdCB4PSIyMi4wNiIgeT0iMTQiIHdpZHRoPSI2''@;'; + put 'put ''IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOS4wNiwyMmgtOFYyMGg3VjE0aDJ2N0ExLDEsMCwwLDEsMTkuMDYsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPicpLEwu''@;'; + put 'put ''Q2xyU2hhcGVOb2RlR3JvdXA9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjUzLDIxLjU4bC00Ljk0LTIuODNWMTMuMDlhMSwxLDAsMCwwLS41MS0uODdMMjIuNjQsOS4xYTEsMSwwLDAsMC0xLDBMMTYuMiwxMi4yMmExLDEsMCwwLDAtLjUxLjg3djUuNjZsLTQuOTQsMi44M2ExLDEs''@;'; + put 'put ''MCwwLDAtLjUuODd2Ni4yNGExLDEsMCwwLDAsLjUuODZsNS40NSwzLjEyYTEsMSwwLDAsMCwxLDBsNC45NS0yLjgzLDQuOTUsMi44M2ExLDEsMCwwLDAsLjUuMTQsMSwxLDAsMCwwLC40OS0uMTRsNS40NS0zLjEyYTEsMSwwLDAsMCwuNS0uODZWMjIuNDVBMSwxLDAsMCwwLDMzLjUzLDIxLjU4''@;'; + put 'put ''Wk0yMi4xNCwxMS4xMmw0LjQ1LDIuNTVWMTlsLTQuNDYsMi41Ni00LjQ0LTIuNlYxMy42N1pNMTYuNjksMzAuNjVsLTQuNDQtMi41NFYyM2w0LjY4LTIuNjgsNC40LDIuNTdWMjhaTTMyLDI4LjExbC00LjQ0LDIuNTRMMjIuOTMsMjhWMjIuOTNsNC40Ni0yLjU3TDMyLDIzWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTcsMjcuNDNhMSwxLDAsMCwxLTEtMVYxOS45QTEsMSwwLDAsMSw2LjUsMTlsNC45NS0yLjgzVjEwLjU0YTEsMSwwLDAsMSwuNS0uODdsNS4yMS0zYTEsMSwwLDAsMSwxLjM3LjM3LDEsMSwwLDAsMS0uMzgs''@;'; + put 'put ''MS4zN2wtNC43LDIuNjh2NS42NmExLDEsMCwwLDEtLjUxLjg3TDgsMjAuNDh2NS45NUExLDEsMCwwLDEsNywyNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zLDI1LjA1YTEsMSwwLDAsMS0xLTFWMTcuNTNhMSwxLDAsMCwx''@;'; + put 'put ''LC41LS44Nmw1LTIuODRWOC4xN0ExLDEsMCwwLDEsOCw3LjMxbDUuMjUtM2ExLDEsMCwwLDEsMSwxLjc0TDkuNDUsOC43NXY1LjY2YTEsMSwwLDAsMS0uNTEuODdMNCwxOC4xMXY1Ljk0QTEsMSwwLDAsMSwzLDI1LjA1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTMiLz4nKSxMLkNsclNoYXBlTm9kZXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjUsMzQuMjksMiwyOS4zOVYxOS41OGw4LjUtNC45LDguNSw0Ljl2OS44MVpNNCwyOC4yMywxMC41LDMyLDE3LDI4LjIzVjIwLjc0TDEwLjUsMTcsNCwyMC43NFoiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yNS41LDM0LjI5LDE3LDI5LjM5VjE5LjU4bDguNS00LjksOC41LDQuOXY5LjgxWk0xOSwyOC4yMywyNS41LDMyLDMyLDI4LjIzVjIwLjc0TDI1LjUsMTcsMTksMjAuNzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTgsMjEuMzJsLTguNS00LjlWNi42MUwxOCwxLjcxbDguNSw0Ljl2OS44MVptLTYuNS02LjA2TDE4LDE5bDYuNS0zLjc1VjcuNzdMMTgsNCwxMS41LDcuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MyIvPicpLEwuQ2xyU2hhcGVOYW1lc3BhY2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LDQuMThhMSwxLDAsMSwwLTEsMS43M2w2LDMuNDdWMjYuNjJsLTYsMy40N2ExLDEsMCwwLDAtLjM3LDEuMzYsMSwxLDAsMCwwLDEuMzcuMzdsNy00LjA1VjguMjNaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNOS42OCwyOS45LDQsMjYuNjJWOS4zOEw5LjY4LDYuMWExLDEsMCwxLDAtMS0xLjczTDIsOC4yM1YyNy43N2w2LjY4LDMuODZhMSwxLDAsMCwwLDEuMzctLjM3QTEsMSwwLDAsMCw5LjY4LDI5LjlaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTAsMTJWMjRhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjEyYTIsMiwwLDAsMC0yLTJIMTJBMiwyLDAsMCwwLDEwLDEyWm03LDB2NUgxMlYxMlptLTUsN2g1djVIMTJabTcsNVYxOWg1djVa''@;'; + put 'put ''bTUtN0gxOVYxMmg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxMLkNsclNoYXBlTm9kZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzAuNjYsNywyNC4zM1YxMS42N0wxOCw1LjM0bDExLDYuMzNWMjQuMzNaTTksMjMuMThsOSw1LjE3''@;'; + put 'put ''LDktNS4xN1YxMi44MkwxOCw3LjY1LDksMTIuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPicpLEwuQ2xyU2hhcGVQb2Q9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LDMySDEwYTYsNiwwLDAsMS02LTZWMTBhNiw2LDAsMCwxLDYtNkgyNmE2''@;'; + put 'put ''LDYsMCwwLDEsNiw2VjI2QTYsNiwwLDAsMSwyNiwzMlpNMTAsNmE0LDQsMCwwLDAtNCw0VjI2YTQsNCwwLDAsMCw0LDRIMjZhNCw0LDAsMCwwLDQtNFYxMGE0LDQsMCwwLDAtNC00WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTI2''@;'; + put 'put ''LjU2LDE1SDE1LjQ0QTEuNDMsMS40MywwLDAsMCwxNCwxNi40NHY4LjEyQTEuNDMsMS40MywwLDAsMCwxNS40NCwyNkgyNi41NkExLjQzLDEuNDMsMCwwLDAsMjgsMjQuNTZWMTYuNDRBMS40MywxLjQzLDAsMCwwLDI2LjU2LDE1Wk0yNiwyNEgxNlYxN0gyNloiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xMi40LDE5SDEwVjEySDIwdjEuNGgydi0yQTEuNDMsMS40MywwLDAsMCwyMC41NiwxMEg5LjQ0QTEuNDMsMS40MywwLDAsMCw4LDExLjQ0djguMTJBMS40MywxLjQzLDAsMCwwLDkuNDQsMjFoM1oiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+JyksTC5DbHJDb250cm9sTHVuPSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0uODNaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNiwyNy41M1YxMC4zYzIuOSwxLjQzLDguMzQsMS44OCwxMiwxLjg4czkuMS0uNDUsMTItMS44OHY1LjExYy0uOTEuODItNSwyLjEzLTEyLDIuMTNBMzQuODEsMzQuODEsMCwwLDEsOCwxNi4zM1YxOGE0MC44Niw0''@;'; + put 'put ''MC44NiwwLDAsMCwxMCwxLjE2YzMuNDYsMCw5LjEzLS40NSwxMi0xLjkxdjMuMjNoMlY4aDBzMCwwLDAtLjA3YzAtMy4zNS04LjgtNC4yNS0xNC00LjI1UzQsNC41OCw0LDcuOTN2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3''@;'; + put 'put ''LjUzWk0xOCw1LjY4YzcuMTUsMCwxMS41MywxLjQ0LDEyLDIuMjUtLjQ2LjgxLTQuODQsMi4yNS0xMiwyLjI1UzYuMzEsOC42OSw2LDhDNi4zMSw3LjE4LDEwLjcxLDUuNjgsMTgsNS42OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9''@;'; + put 'put ''Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIuMDksMjJabTAsMTBIMTYuMzRsLTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi''@;'; + put 'put ''Lz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cblxuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQu''@;'; + put 'put ''MTMsMjQuMTMsMCwwLDEtNC0uODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLjA5LDIySDE1LjQ2bC01LjQxLDYuMzFMMTUuNDksMzRoMTYuNmEyLDIsMCwwLDAsMi0yVjIzLjkzQTIsMiwwLDAs''@;'; + put 'put ''MCwzMi4wOSwyMlptMCwxMEgxNi4zNGwtMy41OS0zLjc3TDE2LjM4LDI0SDMyLjA5djhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjEx''@;'; + put 'put ''LDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0xOCwxNy41NEEzNC44MSwzNC44MSwwLDAsMSw4LDE2LjMzVjE4YTQwLjg2LDQwLjg2LDAsMCwwLDEwLDEuMTZjMy40NiwwLDkuMTMtLjQ1LDEyLTEu''@;'; + put 'put ''OTF2My4yM2gyVjEzLjIyYTcuMzIsNy4zMiwwLDAsMS0yLC4yOHYxLjkxQzI5LjA5LDE2LjIzLDI1LDE3LjU0LDE4LDE3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik02LDI3LjUzVjEwLjNjMi45''@;'; + put 'put ''LDEuNDMsOC4zNCwxLjg4LDEyLDEuODhhNDcuNjYsNDcuNjYsMCwwLDAsNy4wOS0uNTIsNy40NSw3LjQ1LDAsMCwxLTEuNTEtMS44LDQ3LjQsNDcuNCwwLDAsMS01LjU4LjMyQzEwLjcxLDEwLjE4LDYuMzEsOC42OSw2LDhjLjMyLS44LDQuNzItMi4zLDEyLTIuMywxLjY2LDAsMy4xNi4wOCw0''@;'; + put 'put ''LjUxLjIxYTcuNTYsNy41NiwwLDAsMSwuMjktMmMtMS43LS4xNy0zLjM4LS4yNC00LjgtLjI0LTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHBhdGggZD0iTTgsMjQu''@;'; + put 'put ''NTlhMjUuNSwyNS41LDAsMCwwLDIuNzUuNTlsMS4yMS0xLjQxYTI0LjEzLDI0LjEzLDAsMCwxLTQtLjgzWiIvPjxwYXRoIGQ9Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIuMDksMjJabTAsMTBIMTYuMzRs''@;'; + put 'put ''LTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTYsMjcuNTNWMTAuM2MyLjksMS40Myw4LjM0LDEuODgsMTIsMS44OGguNTlhMy41OSwzLjU5LDAsMCwxLC4zMi0ySDE4QzEwLjcxLDEwLjE4LDYuMzEsOC42OSw2LDhjLjMyLS44LDQu''@;'; + put 'put ''NzItMi4zLDEyLTIuMywxLjIyLDAsMi4zNS4wNSwzLjQxLjEybDEuMS0xLjkxYy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3LjUzWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTgsMTYuMzNWMThhNDAuODYsNDAuODYsMCwwLDAsMTAsMS4xNmMzLjQ2LDAsOS4xMy0uNDUsMTItMS45MXYzLjIzaDJWMTUuNEgzMGMtLjkxLjgyLTUsMi4xMy0x''@;'; + put 'put ''MiwyLjEzQTM0LjgxLDM0LjgxLDAsMCwxLDgsMTYuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGEx''@;'; + put 'put ''LjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEs''@;'; + put 'put ''MSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzIuMDksMjFIMzJWMTcuMzJjLTEuOSwyLjkzLTEwLjQ2LDMuMy0xNCwzLjNBNDIuNDMsNDIuNDMsMCwwLDEsOCwxOS41NlYxNy44OEE0''@;'; + put 'put ''MC41OSw0MC41OSwwLDAsMCwxOCwxOWM1LDAsMTMuMi0uODIsMTQtMy44MlYxMC43MmMtMi4yMSwzLjM2LTEwLjQ5LDMuNDYtMTQsMy40NkE0Mi4xMiw0Mi4xMiwwLDAsMSw4LDEzLjExVjExYTQwLjU5LDQwLjU5LDAsMCwwLDEwLDEuMTRjNSwwLDEzLjI4LS44MywxNC0zLjg4VjcuODNoMGMt''@;'; + put 'put ''LjE5LTMuMjctOC44NC00LjE1LTE0LTQuMTVTNC4yMSw0LjU2LDQsNy44M0g0djE5LjdjMCwyLjE2LDMuNjQsMy4zLDcuNjMsMy44NGwyLjg0LDMsLjU5LjYyaDE3YTMsMywwLDAsMCwzLTNWMjMuOTNBMywzLDAsMCwwLDMyLjA5LDIxWk04LDI2LjA4VjI0LjRhMjUuNzksMjUuNzksMCwwLDAs''@;'; + put 'put ''My40Ni43bC0xLjI0LDEuNDRDOS40NiwyNi40Miw4LjcxLDI2LjI3LDgsMjYuMDhaTTMzLjA5LDMyYTEsMSwwLDAsMS0xLDFIMTUuOTJMMTEuNCwyOC4yMywxNS45MiwyM0gzMi4wOWExLDEsMCwwLDEsMSwxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuXG4g''@;'; + put 'put ''IDxwYXRoIGQ9Ik0xNi4xMSwyN2ExLDEsMCwxLDAsMSwxQTEsMSwwLDAsMCwxNi4xMSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0''@;'; + put 'put ''LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzUsMCwxMy4yLS44MiwxNC0zLjgydi0yYTcuMzQsNy4zNCwwLDAsMS00LjEyLDAsMzkuNDcsMzkuNDcsMCwwLDEtOS44OCwxQTQyLjEyLDQyLjEyLDAsMCwxLDgsMTMuMTFWMTFhNDAu''@;'; + put 'put ''NTksNDAuNTksMCwwLDAsMTAsMS4xNCw0Ny43Niw0Ny43NiwwLDAsMCw3LjA5LS41MkE3LjQ1LDcuNDUsMCwwLDEsMjIuOCwzLjkyYy0xLjctLjE3LTMuMzgtLjI0LTQuOC0uMjQtNS4xNCwwLTEzLjc5Ljg4LTE0LDQuMTVINHYxOS43YzAsMi4xNiwzLjY0LDMuMyw3LjYzLDMuODRsMi44NCwz''@;'; + put 'put ''LC41OS42MmgxN2EzLDMsMCwwLDAsMy0zVjIzLjkzQTMsMywwLDAsMCwzMi4wOSwyMVpNOCwyNi4wOFYyNC40YTI1Ljc5LDI1Ljc5LDAsMCwwLDMuNDYuN2wtMS4yNCwxLjQ0QzkuNDYsMjYuNDIsOC43MSwyNi4yNyw4LDI2LjA4Wk0zMy4wOSwzMmExLDEsMCwwLDEtMSwxSDE1LjkyTDExLjQs''@;'; + put 'put ''MjguMjMsMTUuOTIsMjNIMzIuMDlhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMi4w''@;'; + put 'put ''OSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzQuODUsMCwxMi44LS43OSwxMy45MS0zLjYySDIyLjIzYTMuNjgsMy42OCwwLDAsMS0yLjczLTEuMjNIMThBNDIuMTIs''@;'; + put 'put ''NDIuMTIsMCwwLDEsOCwxMy4xMVYxMWE0MC41OSw0MC41OSwwLDAsMCwxMCwxLjE0aC41OWEzLjYxLDMuNjEsMCwwLDEsLjQ2LTIuMjlsMy40Ni02Yy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMTQsMC0xMy43OS44OC0xNCw0LjE1SDR2MTkuN2MwLDIuMTYsMy42NCwzLjMsNy42Mywz''@;'; + put 'put ''Ljg0bDIuODQsMywuNTkuNjJoMTdhMywzLDAsMCwwLDMtM1YyMy45M0EzLDMsMCwwLDAsMzIuMDksMjFaTTgsMjYuMDhWMjQuNGEyNS43OSwyNS43OSwwLDAsMCwzLjQ2LjdsLTEuMjQsMS40NEM5LjQ2LDI2LjQyLDguNzEsMjYuMjcsOCwyNi4wOFpNMzMuMDksMzJhMSwxLDAsMCwxLTEsMUgx''@;'; + put 'put ''NS45MkwxMS40LDI4LjIzLDE1LjkyLDIzSDMyLjA5YTEsMSwwLDAsMSwxLDFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEz''@;'; + put 'put ''SDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAnKSxMLkNsclNoYXBlTWVkaWFD''@;'; + put 'put ''aGFuZ2VyPSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzAsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMCw0Wk02''@;'; + put 'put ''LDMwVjZIMzBWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSIyMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMjcuMjIsMTBIMjB2NGEuOC44LDAsMSwwLDEuNTksMFYxMS42aDUuNjNhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxyZWN0''@;'; + put 'put ''IHg9IjguODEiIHk9IjEwIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTciLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTgiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjIyIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIi8+XG5cbiAgPHJlY3QgeD0iMjAiIHk9IjE4IiB3aWR0aD0i''@;'; + put 'put ''MiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjAiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTAiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdl''@;'; + put 'put ''ZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjIiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdl''@;'; + put 'put ''ZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0yMCwxNGEuOC44LDAsMSwwLDEuNTksMFYxMS42SDI1QTcuNzQs''@;'; + put 'put ''Ny43NCwwLDAsMSwyMy42NiwxMEgyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMwLDEzLjVoMFYzMEg2VjZIMjIuNVY2YTcuMzcsNy4zNywwLDAsMSwuMjgtMkg2QTIsMiwwLDAsMCw0LDZWMzBh''@;'; + put 'put ''MiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjM3LDcuMzcsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEx''@;'; + put 'put ''LS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHJlY3QgeD0iMjAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVk''@;'; + put 'put ''Ii8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxMCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5c''@;'; + put 'put ''biAgPHJlY3QgeD0iOC44MSIgeT0iMTQiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyMiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWFsZXJ0''@;'; + put 'put ''ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjYiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMCwxNS40VjMwSDZWNkgyMS4yN2wxLjE4LTJINkEyLDIs''@;'; + put 'put ''MCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYWxlcnRlZCIv''@;'; + put 'put ''PlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuXG4gIDxwYXRoIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYzMkgzMGEyLDIsMCwwLDAsMi0y''@;'; + put 'put ''VjZBMiwyLDAsMCwwLDMwLDRaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWm0wLTZIMjBWMTBo''@;'; + put 'put ''NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cblxuICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNC0xLjE2VjE0SDIwVjEwaDMuNjZBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNmE3LjM3LDcuMzcsMCwwLDEsLjI4LTJINkEyLDIsMCwwLDAsNCw2''@;'; + put 'put ''VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgx''@;'; + put 'put ''N1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAi''@;'; + put 'put ''IGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik0yMi4yMywxNS40YTMuNjgsMy42OCwwLDAsMS0zLjE4LTUuNTFMMjIuNDUsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwy''@;'; + put 'put ''LDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk0xNywyOEg4LjgxVjI2SDE3Wm0wLTRIOC44MVYyMkgxN1ptMC00SDguODFWMThIMTdabTAtNEg4LjgxVjE0SDE3Wm0wLTRIOC44MVYxMEgx''@;'; + put 'put ''N1pNMjIsMjRIMjBWMjJoMlptMC00SDIwVjE4aDJabTQsNEgyNFYyMmgyWm0wLTRIMjRWMThoMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTI2Ljg1LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCww''@;'; + put 'put ''LDAsMjIuMjMsMTNIMzMuNjhhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICcpLEwuQ2xy''@;'; + put 'put ''U2hhcGVUYXBlRHJpdmU9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNNCwyOFY4SDMyVjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTEzLjMzLDEzLjM1YTQuNTIsNC41MiwwLDEsMCw0LjUzLDQuNTJBNC41Myw0LjUzLDAsMCwwLDEzLjMzLDEzLjM1Wm0wLDcuNDRhMi45MiwyLjkyLDAsMSwxLDIuOTMtMi45MkEyLjkyLDIuOTIsMCwwLDEsMTMuMzMsMjAuNzlaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjMuNjIsMTMuMzVhNC41Miw0LjUyLDAsMSwwLDQuNTIsNC41MkE0LjUzLDQuNTMsMCwwLDAsMjMuNjIsMTMuMzVabTAsNy40NGEyLjkyLDIuOTIsMCwxLDEsMi45Mi0yLjkyQTIuOTIsMi45MiwwLDAs''@;'; + put 'put ''MSwyMy42MiwyMC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik02LDExVjIzLjU1SDhWMTJIMjkuMzRWMTBIN0ExLDEsMCwwLDAsNiwxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG5c''@;'; + put 'put ''biAgPHBhdGggZD0iTTguODEsMTcuODdhNC41Myw0LjUzLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsOC44MSwxNy44N1ptNy40NSwwQTIuOTMsMi45MywwLDEsMSwxMy4zMywxNSwyLjkzLDIuOTMsMCwwLDEsMTYuMjYsMTcuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE5LjEsMTcuODdhNC41Miw0LjUyLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsMTkuMSwxNy44N1ptNy40NCwwQTIuOTIsMi45MiwwLDEsMSwyMy42MiwxNSwyLjkyLDIuOTIsMCwwLDEsMjYu''@;'; + put 'put ''NTQsMTcuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLDEzLjIyVjI4SDRWOEgyMi43OGE3LjM3LDcuMzcsMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJh''@;'; + put 'put ''MiwyLDAsMCwwLDItMlYxMi4zNEE3LjY1LDcuNjUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTYsMTFWMjMuNTVIOFYxMkgyNS41MWE3LjY2LDcuNjYsMCwwLDEtMS44NS0y''@;'; + put 'put ''SDdBMSwxLDAsMCwwLDYsMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNOC44MSwxNy44N2E0LjUzLDQuNTMsMCwxLDAsNC41Mi00LjUyQTQuNTMsNC41MywwLDAsMCw4LjgxLDE3Ljg3Wm03LjQ1LDBBMi45MywyLjkzLDAsMSwxLDEzLjMzLDE1LDIuOTMsMi45MywwLDAsMSwxNi4yNiwxNy44N1oiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik03LDEwYTEsMSwwLDAsMC0xLDFWMjMuNTVIOFYxMkgxOC41N0EzLjcsMy43LDAsMCwxLDE5LDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJWMjhINFY4SDIwLjE0bDEuMTUtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTIyLjA5LDE1LjM5YTMuNjUsMy42NSwwLDAsMS0xLjgtLjU1LDQuNTEsNC41MSwwLDEsMCw3LjExLjU2SDI1LjE3YTIuOTIsMi45MiwwLDEsMS0zLjA4LDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0z''@;'; + put 'put ''MCwyNEg2VjEySDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTIuMjEsMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMTIuMjEsMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwxMi4yMSwxNloiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIzLjc5LDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDIzLjc5LDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMjMuNzksMTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG5c''@;'; + put 'put ''biAgPHBhdGggZD0iTTEyLjIxLDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDEyLjIxLDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTIuMjEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJN''@;'; + put 'put ''MjMuNzksMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMjMuNzksMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwyMy43OSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0zMCwxMy41VjI0SDZW''@;'; + put 'put ''MTJIMjUuNTFhNy40OSw3LjQ5LDAsMCwxLTMtNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQi''@;'; + put 'put ''Lz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik03LjIsMThhNSw1LDAsMSwwLDUtNUE1LDUsMCwwLDAsNy4yLDE4Wm03LDBhMiwy''@;'; + put 'put ''LDAsMSwxLTItMkEyLDIsMCwwLDEsMTQuMjIsMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0xOC43OCwxOGE1LDUsMCwxLDAsOS4yNy0yLjZIMjIuMjNhMy43MSwzLjcxLDAsMCwxLTIuMTctLjcxQTUs''@;'; + put 'put ''NSwwLDAsMCwxOC43OCwxOFptNS0yYTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDIzLjc5LDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMFYyNEg2VjEySDE4LjU3YTMuNjUsMy42''@;'; + put 'put ''NSwwLDAsMSwuNDgtMi4xMUwyMS4yOSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0''@;'; + put 'put ''bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1hbGVydCIvPlxuICAnKSxMLkNsclNoYXBlQW5pbWF0aW9uPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMC4xNiwzMS43MWE0LjQsNC40LDAsMCwxLTQuNjQtMUE0LjM0LDQuMzQsMCwwLDEsNC4yMywyNy42YTQuNDEsNC40MSwwLDAsMSwuMTgtMS4yLDExLjYxLDExLjYxLDAs''@;'; + put 'put ''MCwxLTEtMi41Niw2LjQsNi40LDAsMCwwLDkuMzMsOC42M0ExMS41NSwxMS41NSwwLDAsMSwxMC4xNiwzMS43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MSwyNy42OGE3LjYxLDcuNjEsMCwwLDEtOS4wOC0xLjI2LDcu''@;'; + put 'put ''NTgsNy41OCwwLDAsMS0xLjI3LTkuMDYsMTQuMjYsMTQuMjYsMCwwLDEtLjM3LTIuODUsOS41OCw5LjU4LDAsMCwwLC4yMiwxMy4zMyw5LjYzLDkuNjMsMCwwLDAsMTMuMzUuMjJBMTQuNDYsMTQuNDYsMCwwLDEsMTguNDEsMjcuNjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNjYsMjYuMjFhMTIuMSwxMi4xLDAsMSwxLDguNTctMy41NGgwQTEyLjExLDEyLjExLDAsMCwxLDIxLjY2LDI2LjIxWk0yMS42Niw0QTEwLjExLDEwLjExLDAsMCwwLDExLjU0LDE0LjExYTEwLDEwLDAsMCwwLDMsNy4xNCwxMC4xMiwxMC4x''@;'; + put 'put ''MiwwLDAsMCwxNC4zMSwwQTEwLjExLDEwLjExLDAsMCwwLDIxLjY2LDRabTcuODYsMThoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIFxuICA8cGF0aCBkPSJNMy41LDIzLjc3YTYuNDEsNi40MSwwLDAsMCw5LjMzLDguNjdBMTEuNjUsMTEuNjUs''@;'; + put 'put ''MCwwLDEsMy41LDIzLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNy42OCwxNC41M2E5LjYsOS42LDAsMCwwLDEzLjQsMTMuN0ExNC4xMSwxNC4xMSwwLDAsMSw3LjY4LDE0LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNzgsMkExMi4xMiwxMi4xMiwwLDEsMSw5LjY2LDE0LjE1LDEyLjEyLDEyLjEyLDAsMCwxLDIxLjc4LDIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgJyksTC5DbHJTaGFwZUNpQ2Q9KDAsRS5jbHJJY29u''@;'; + put 'put ''U1ZHKSgnPHBhdGggZD0iTTIzLjUzLDE5LjgxYTcuNDUsNy40NSwwLDAsMS0xLjY1LS4xOCwxMC40OCwxMC40OCwwLDAsMSwuNzIsMi4xM2MuMywwLC42MSwwLC45MywwYTkuNTIsOS41MiwwLDAsMCwzLS40OWwtLjkzLTEuODFBNy42Nyw3LjY3LDAsMCwxLDIzLjUzLDE5LjgxWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE4LjM2LDE3Ljg3LDE4LDE3LjQ5YTcuNCw3LjQsMCwwLDEtMi4yLTUuOTIsNy4zMSw3LjMxLDAsMCwxLDEuNTQtNEwxNy4yNiw5QTEsMSwwLDAsMCwxOC4xNywxMGguMDlhMSwxLDAsMCwwLDEtLjkx''@;'; + put 'put ''TDE5LjYsNWExLDEsMCwwLDAtLjI5LS43OUExLDEsMCwwLDAsMTguNTIsNGwtNC4wOS4zNWExLDEsMCwwLDAsLjE3LDJsMS4yOS0uMTFhOS40NSw5LjQ1LDAsMCwwLTIuMDUsNS4zMiw5LjI4LDkuMjgsMCwwLDAsMi42Nyw3LjI2bC4zMS4zN2E3LjMzLDcuMzMsMCwwLDEsMi4wNiw0LjkxLDcu''@;'; + put 'put ''MzksNy4zOSwwLDAsMS0uMjYsMi40N2wxLjguOTFhOC43Niw4Ljc2LDAsMCwwLC40NS0zLjUxQTkuMjgsOS4yOCwwLDAsMCwxOC4zNiwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMi40LDE3LjkxLDMxLjE5LDE4QTku''@;'; + put 'put ''NjUsOS42NSwwLDAsMCwyMy41MywyLjQ1YTkuMzMsOS4zMywwLDAsMC0zLC40OWwuOTEsMS44YTcuNjcsNy42NywwLDAsMSw5Ljc2LDcuMzksNy41OCw3LjU4LDAsMCwxLTEuNjUsNC43MmwuMS0xLjU0YTEsMSwwLDEsMC0yLS4xM2wtLjI4LDQuMDhhMSwxLDAsMCwwLC4zMS43OC45NC45NCww''@;'; + put 'put ''LDAsMCwuNjkuMjhoLjFsNC4wOC0uNDJhMSwxLDAsMCwwLC45LTEuMUExLDEsMCwwLDAsMzIuNCwxNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik00LjA3LDIwLjQ0aC4wOGw0LjA5LS4zNWExLDEsMCwxLDAtLjE3LTJsLTEu''@;'; + put 'put ''MzkuMTJhNy42Myw3LjYzLDAsMCwxLDQuNTItMS40OSw3LjksNy45LDAsMCwxLDEuNjMuMTgsMTAuMjMsMTAuMjMsMCwwLDEtLjcxLTIuMTNjLS4zLDAtLjYxLDAtLjkyLDBhOS42Niw5LjY2LDAsMCwwLTUuOSwybC4xMi0xLjMxYTEsMSwwLDAsMC0uOTItMS4wOCwxLDEsMCwwLDAtMS4wOC45''@;'; + put 'put ''MWwtLjM1LDQuMDhhMSwxLDAsMCwwLDEsMS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwyOC4yM2wtNC4wOS4yN2ExLDEsMCwwLDAsLjEzLDJMMTYsMzAuMzlhNy43MSw3LjcxLDAsMCwxLTEyLjU0LTYsNy42LDcu''@;'; + put 'put ''NiwwLDAsMSwuMjktMkwyLDIxLjQ2YTkuNTksOS41OSwwLDAsMC0uNDcsMi45NUE5LjcsOS43LDAsMCwwLDE3LjE5LDMybC0uMTIsMS4xOGExLDEsMCwwLDAsLjg5LDEuMWguMTFhMSwxLDAsMCwwLDEtLjlsLjQyLTQuMDZhMSwxLDAsMCwwLTEuMDYtMS4xWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz4nKSxMLkNsclNoYXBlRmlsZVNoYXJlMj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUsNEg3LjgzQTEuODksMS44OSwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OSwxLjg5LDAsMCwwLDcuODMsMzJIMjguMTdBMS44NywxLjg3LDAsMCwwLDMw''@;'; + put 'put ''LDMwLjA5VjlaTTI0LDUuNzgsMjguMiwxMEgyNFpNOCwzMFY2SDIydjZoNlYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yMiwyMS44MWEyLjExLDIuMTEsMCwwLDAtMS40NC42MmwtNS43Mi0yLjY2di0uNDRsNS42Ni0yLjY1''@;'; + put 'put ''YTIuMDgsMi4wOCwwLDEsMCwuMDYtMi45NGgwYTIuMTQsMi4xNCwwLDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNBMi4wOSwyLjA5LDAsMSwwLDIyLDIxLjg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0yNSw0LjA2SDcuODNBMS44OSwxLjg5LDAsMCwwLDYsNlYzMC4xNWExLjg5LDEuODksMCwwLDAsMS44MywxLjkxSDI4LjE3QTEuODcsMS44NywwLDAsMCwzMCwzMC4xNVY5Wk0yMiwyNmEyLjA5LDIuMDksMCwwLDEtMi4xLTIu''@;'; + put 'put ''MDh2LS4zTDE0LjI3LDIxbC0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMTQsMi4xNCwwLDAsMSwuNjQtMS40OGgwYTIuMDgsMi4wOCwwLDEsMS0uMDYsMi45NGwtNS42NiwyLjY1di40NGw1LjcyLDIuNjZBMi4xMSwyLjExLDAsMCwxLDIyLDIxLjgx''@;'; + put 'put ''bDAsMEEyLjA5LDIuMDksMCwwLDEsMjIsMjZabTItMTZWNS44NGw0LjIsNC4yMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLlRlY2hub2xvZ3lTaGFwZXM9eyJydWxlci1wZW5jaWwiOkwuQ2xyU2hhcGVSdWxlclBlbmNpbCwicGhvbmUtaGFuZHNldCI6''@;'; + put 'put ''TC5DbHJTaGFwZVBob25lSGFuZHNldCwibm8td2lmaSI6TC5DbHJTaGFwZU5vV2lmaSxpbnN0YWxsOkwuQ2xyU2hhcGVJbnN0YWxsLHVuaW5zdGFsbDpMLkNsclNoYXBlVW5pbnN0YWxsLGxheWVyczpMLkNsclNoYXBlTGF5ZXJzLGJsb2NrOkwuQ2xyU2hhcGVCbG9jaywiYmxvY2tzLWdyb3Vw''@;'; + put 'put ''IjpMLkNsclNoYXBlQmxvY2tzR3JvdXAsYnVuZGxlOkwuQ2xyU2hhcGVCdW5kbGUsd2lmaTpMLkNsclNoYXBlV2lmaSwicmFjay1zZXJ2ZXIiOkwuQ2xyU2hhcGVSYWNrU2VydmVyLCJoYXJkLWRpc2siOkwuQ2xyU2hhcGVIYXJkRGlzaywiYmFja3VwLXJlc3RvcmUiOkwuQ2xyU2hhcGVCYWNr''@;'; + put 'put ''dXBSZXN0b3JlLGJhY2t1cDpMLkNsclNoYXBlQmFja3VwLGRldmljZXM6TC5DbHJTaGFwZURldmljZXMsa2V5Ym9hcmQ6TC5DbHJTaGFwZUtleWJvYXJkLG1vdXNlOkwuQ2xyU2hhcGVNb3VzZSxkYXNoYm9hcmQ6TC5DbHJTaGFwZURhc2hib2FyZCxob3N0OkwuQ2xyU2hhcGVIb3N0LHN0b3Jh''@;'; + put 'put ''Z2U6TC5DbHJTaGFwZVN0b3JhZ2UsY2x1c3RlcjpMLkNsclNoYXBlQ2x1c3RlcixhcHBsaWNhdGlvbnM6TC5DbHJTaGFwZUFwcGxpY2F0aW9ucyxidWlsZGluZzpMLkNsclNoYXBlQnVpbGRpbmcsY3B1OkwuQ2xyU2hhcGVDUFUsbWVtb3J5OkwuQ2xyU2hhcGVNZW1vcnksImRhdGEtY2x1c3Rl''@;'; + put 'put ''ciI6TC5DbHJTaGFwZURhdGFDbHVzdGVyLCJyZXNvdXJjZS1wb29sIjpMLkNsclNoYXBlUmVzb3VyY2VQb29sLHNoaWVsZDpMLkNsclNoYXBlU2hpZWxkLCJzaGllbGQtY2hlY2siOkwuQ2xyU2hhcGVTaGllbGRDaGVjaywic2hpZWxkLXgiOkwuQ2xyU2hhcGVTaGllbGRYLGltcG9ydDpMLkNs''@;'; + put 'put ''clNoYXBlSW1wb3J0LGV4cG9ydDpMLkNsclNoYXBlRXhwb3J0LCJ1cGxvYWQtY2xvdWQiOkwuQ2xyU2hhcGVVcGxvYWRDbG91ZCwiZG93bmxvYWQtY2xvdWQiOkwuQ2xyU2hhcGVEb3dubG9hZENsb3VkLHBsdWdpbjpMLkNsclNoYXBlUGx1Z2luLGZsb3BweTpMLkNsclNoYXBlRmxvcHB5LGNv''@;'; + put 'put ''bXB1dGVyOkwuQ2xyU2hhcGVDb21wdXRlcixkaXNwbGF5OkwuQ2xyU2hhcGVEaXNwbGF5LHRlcm1pbmFsOkwuQ2xyU2hhcGVUZXJtaW5hbCxjb2RlOkwuQ2xyU2hhcGVDb2RlLGFwcGxpY2F0aW9uOkwuQ2xyU2hhcGVBcHBsaWNhdGlvbixiYXR0ZXJ5OkwuQ2xyU2hhcGVCYXR0ZXJ5LG1vYmls''@;'; + put 'put ''ZTpMLkNsclNoYXBlTW9iaWxlLHRhYmxldDpMLkNsclNoYXBlVGFibGV0LCJuZXR3b3JrLWdsb2JlIjpMLkNsclNoYXBlTmV0d29ya0dsb2JlLCJuZXR3b3JrLXNldHRpbmdzIjpMLkNsclNoYXBlTmV0d29ya1NldHRpbmdzLCJuZXR3b3JrLXN3aXRjaCI6TC5DbHJTaGFwZU5ldHdvcmtTd2l0''@;'; + put 'put ''Y2gscm91dGVyOkwuQ2xyU2hhcGVSb3V0ZXIsdm06TC5DbHJTaGFwZVZNLCJ2bXctYXBwIjpMLkNsclNoYXBlVk1XQXBwLGNlcnRpZmljYXRlOkwuQ2xyU2hhcGVDZXJ0aWZpY2F0ZSxhcmNoaXZlOkwuQ2xyU2hhcGVBcmNoaXZlLHVuYXJjaGl2ZTpMLkNsclNoYXBlVW5hcmNoaXZlLGNvbm5l''@;'; + put 'put ''Y3Q6TC5DbHJTaGFwZUNvbm5lY3QsZGlzY29ubmVjdDpMLkNsclNoYXBlRGlzY29ubmVjdCxsaW5rOkwuQ2xyU2hhcGVMaW5rLHVubGluazpMLkNsclNoYXBlVW5saW5rLCJjbG91ZC1uZXR3b3JrIjpMLkNsclNoYXBlQ2xvdWROZXR3b3JrLCJjbG91ZC1zY2FsZSI6TC5DbHJTaGFwZUNsb3Vk''@;'; + put 'put ''U2NhbGUsImNsb3VkLXRyYWZmaWMiOkwuQ2xyU2hhcGVDbG91ZFRyYWZmaWMsImNvbnRyb2wtbHVuIjpMLkNsckNvbnRyb2xMdW4sZGVwbG95OkwuQ2xyU2hhcGVEZXBsb3ksaGVsaXg6TC5DbHJTaGFwZUhlbGl4LGZsYXNrOkwuQ2xyU2hhcGVGbGFzayxhZG1pbmlzdHJhdG9yOkwuQ2xyU2hh''@;'; + put 'put ''cGVBZG1pbmlzdHJhdG9yLCJoYXJkLWRyaXZlIjpMLkNsclNoYXBlSGFyZERyaXZlLCJoYXJkLWRyaXZlLWRpc2tzIjpMLkNsclNoYXBlSGFyZERyaXZlRGlza3MsbnZtZTpMLkNsclNoYXBlTlZNZSxzc2Q6TC5DbHJTaGFwZVNTRCxibHVldG9vdGg6TC5DbHJTaGFwZUJsdWV0b290aCwiYmx1''@;'; + put 'put ''ZXRvb3RoLW9mZiI6TC5DbHJTaGFwZUJsdWV0b290aE9mZiwicHJvY2Vzcy1vbi12bSI6TC5DbHJTaGFwZVByb2Nlc3NPblZNLCJhc3NpZ24tdXNlciI6TC5DbHJTaGFwZUFzc2lnblVzZXIsYXRvbTpMLkNsclNoYXBlQXRvbSwiYmFyLWNvZGUiOkwuQ2xyU2hhcGVCYXJDb2RlLCJjZC1kdmQi''@;'; + put 'put ''OkwuQ2xyU2hhcGVDZER2ZCxjb250YWluZXI6TC5DbHJTaGFwZUNvbnRhaW5lciwiY29udGFpbmVyLXZvbHVtZSI6TC5DbHJTaGFwZUNvbnRhaW5lclZvbHVtZSwiZmlsZS1zaGFyZSI6TC5DbHJTaGFwZUZpbGVTaGFyZSwicXItY29kZSI6TC5DbHJTaGFwZVFyQ29kZSx1c2I6TC5DbHJTaGFw''@;'; + put 'put ''ZVVzYixyYWRhcjpMLkNsclNoYXBlUmFkYXIsY2FwYWNpdG9yOkwuQ2xyU2hhcGVDYXBhY2l0b3Isc3F1aWQ6TC5DbHJTaGFwZVNxdWlkLGluZHVjdG9yOkwuQ2xyU2hhcGVJbmR1Y3RvcixyZXNpc3RvcjpMLkNsclNoYXBlUmVzaXN0b3IsImhvc3QtZ3JvdXAiOkwuQ2xyU2hhcGVIb3N0R3Jv''@;'; + put 'put ''dXAsInN0b3JhZ2UtYWRhcHRlciI6TC5DbHJTaGFwZVN0b3JhZ2VBZGFwdGVyLCJub2RlLWdyb3VwIjpMLkNsclNoYXBlTm9kZUdyb3VwLG5vZGVzOkwuQ2xyU2hhcGVOb2RlcyxuYW1lc3BhY2U6TC5DbHJTaGFwZU5hbWVzcGFjZSxub2RlOkwuQ2xyU2hhcGVOb2RlLHBvZDpMLkNsclNoYXBl''@;'; + put 'put ''UG9kLCJtZWRpYS1jaGFuZ2VyIjpMLkNsclNoYXBlTWVkaWFDaGFuZ2VyLCJ0YXBlLWRyaXZlIjpMLkNsclNoYXBlVGFwZURyaXZlLGFuaW1hdGlvbjpMLkNsclNoYXBlQW5pbWF0aW9uLCJjaS1jZCI6TC5DbHJTaGFwZUNpQ2QsImZpbGUtc2hhcmUtMiI6TC5DbHJTaGFwZUZpbGVTaGFyZTJ9''@;'; + put 'put ''LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlRlY2hub2xvZ3lTaGFwZXMsInNlcnZlciIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLlRlY2hub2xvZ3lTaGFwZXMuaG9zdCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlRlY2hub2xvZ3lTaGFwZXMsImNvbW1hbmQiLCgwLEIuZGVzY3JpcHRv''@;'; + put 'put ''ckNvbmZpZykoTC5UZWNobm9sb2d5U2hhcGVzLnRlcm1pbmFsKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuVGVjaG5vbG9neVNoYXBlcywibW9iaWxlLXBob25lIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlcy5tb2JpbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoTC5UZWNobm9sb2d5U2hhcGVzLCJsaWNlbnNlIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlcy5jZXJ0aWZpY2F0ZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlRlY2hub2xvZ3lTaGFwZXMsImRpc2Nvbm5lY3RlZCIsKDAsQi5kZXNjcmlwdG9yQ29uZmln''@;'; + put 'put ''KShMLlRlY2hub2xvZ3lTaGFwZXNbIm5vLXdpZmkiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlRlY2hub2xvZ3lTaGFwZXMsInJlY2VpdmVyIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlc1sicGhvbmUtaGFuZHNldCJdKSksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KEwuVGVjaG5vbG9neVNoYXBlcywiZGVzaWduIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlc1sicnVsZXItcGVuY2lsIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5UZWNobm9sb2d5U2hhcGVzLCJkbmEiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5U''@;'; + put 'put ''ZWNobm9sb2d5U2hhcGVzLmhlbGl4KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuVGVjaG5vbG9neVNoYXBlcywiZm9sZGVyLXNoYXJlIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlc1siZmlsZS1zaGFyZSJdKSksInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cm''@;'; + put 'put ''JndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKEwuVGVjaG5vbG9neVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGV4dC1lZGl0LXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3Qi''@;'; + put 'put ''O09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLlRleHRFZGl0U2hhcGVzPUwuQ2xyU2hhcGVTdXBlcnNjcmlwdD1MLkNsclNoYXBlU3Vic2NyaXB0PUwuQ2xyU2hhcGVTdHJpa2V0aHJvdWdoPUwuQ2xyU2hhcGVJbmRlbnQ9TC5DbHJTaGFwZU91dGRl''@;'; + put 'put ''bnQ9TC5DbHJTaGFwZUhpZ2hsaWdodGVyPUwuQ2xyU2hhcGVUZXh0Q29sb3I9TC5DbHJTaGFwZUxhbmd1YWdlPUwuQ2xyU2hhcGVBbGlnblRvcD1MLkNsclNoYXBlQWxpZ25NaWRkbGU9TC5DbHJTaGFwZUFsaWduQm90dG9tPUwuQ2xyU2hhcGVVbmRlcmxpbmU9TC5DbHJTaGFwZVRleHQ9TC5D''@;'; + put 'put ''bHJTaGFwZUFsaWduUmlnaHRUZXh0PUwuQ2xyU2hhcGVCbG9ja1F1b3RlPUwuQ2xyU2hhcGVQYWludFJvbGxlcj1MLkNsclNoYXBlTnVtYmVyTGlzdD1MLkNsclNoYXBlQWxpZ25MZWZ0VGV4dD1MLkNsclNoYXBlSnVzdGlmeVRleHQ9TC5DbHJTaGFwZUl0YWxpYz1MLkNsclNoYXBlQWxpZ25S''@;'; + put 'put ''aWdodD1MLkNsclNoYXBlQWxpZ25MZWZ0PUwuQ2xyU2hhcGVBbGlnbkNlbnRlcj1MLkNsclNoYXBlRm9udFNpemU9TC5DbHJTaGFwZUNoZWNrYm94TGlzdD1MLkNsclNoYXBlQ2VudGVyVGV4dD1MLkNsclNoYXBlQnVsbGV0TGlzdD1MLkNsclNoYXBlQm9sZD12b2lkIDA7dmFyIEI9bWUoIi4v''@;'; + put 'put ''cHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7TC5DbHJTaGFwZUJvbGQ9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIyLjQzLDE3LjU0YTQuNjcsNC42NywwLDAsMCwyLjgtNC4zN3YtLjA2YTQuNDMsNC40MywwLDAsMC0xLjMxLTMuMjUsNy4wOSw3''@;'; + put 'put ''LjA5LDAsMCwwLTUuMTMtMS43M2gtN0ExLjcxLDEuNzEsMCwwLDAsMTAsOS44NlYyNmExLjcyLDEuNzIsMCwwLDAsMS43NCwxLjc0aDcuMzNjNC4zNywwLDcuMjUtMS44OCw3LjI1LTUuMzhWMjIuM0MyNi4zMiwxOS42NCwyNC43MywxOC4zMiwyMi40MywxNy41NFpNMTMuNjgsMTEuNGg0LjU0''@;'; + put 'put ''YzIsMCwzLjE1Ljg5LDMuMTUsMi4zM3YuMDZjMCwxLjY4LTEuMzYsMi40OS0zLjM4LDIuNDlIMTMuNjhaTTIyLjM3LDIyYzAsMS41OS0xLjMxLDIuNDMtMy40NiwyLjQzSDEzLjY4VjE5LjYyaDVjMi40OSwwLDMuNjkuODgsMy42OSwyLjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZUJ1bGxldExpc3Q9KDAsQi5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iNS4yMSIgY3k9IjkuMTciIHI9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjUuMjEiIGN5PSIxNy4x''@;'; + put 'put ''NyIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PGNpcmNsZSBjeD0iNS4yMSIgY3k9IjI1LjE3IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIuNDIsOWExLDEsMCwwLDAtMS0x''@;'; + put 'put ''SDEwdjJIMzEuNDJBMSwxLDAsMCwwLDMyLjQyLDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzEuNDIsMTZIMTB2MkgzMS40MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUi''@;'; + put 'put ''IC8+PHBhdGggZD0iTTMxLjQyLDI0SDEwdjJIMzEuNDJhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLEwuQ2xyU2hhcGVDZW50ZXJUZXh0PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMC44OCw4SDUuMTJhMS4xLDEu''@;'; + put 'put ''MSwwLDAsMCwwLDIuMkgzMC44OGExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI1LjUsMTYuMmExLjEsMS4xLDAsMSwwLDAtMi4yaC0xNWExLjEsMS4xLDAsMSwwLDAsMi4yWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLjI1LDIwSDUuNzVhMS4xLDEuMSwwLDAsMCwwLDIuMmgyNC41YTEuMSwxLjEsMCwwLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjQuODgs''@;'; + put 'put ''MjZIMTEuMTJhMS4xLDEuMSwwLDEsMCwwLDIuMkgyNC44OGExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZUNoZWNrYm94TGlzdD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDMsMTZI''@;'; + put 'put ''MTB2MkgzMS40M2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLjQzLDI0SDEwdjJIMzEuNDNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxw''@;'; + put 'put ''YXRoIGQ9Ik0xNS40NSwxMGgxNmExLDEsMCwwLDAsMC0yaC0xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xNy41LDMuNDJhMS4wOSwxLjA5LDAsMCwwLTEuNTUsMEw3Ljg5LDExLjQ4LDQuNTEsNy44NEExLjEsMS4xLDAsMSwwLDIu''@;'; + put 'put ''OSw5LjM0bDQuOTQsNS4zTDE3LjUsNUExLjEsMS4xLDAsMCwwLDE3LjUsMy40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLEwuQ2xyU2hhcGVGb250U2l6ZT0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEsOS4wOEExLjEzLDEuMTMsMCww''@;'; + put 'put ''LDAsMTkuODYsOEg0LjYyYTEuMSwxLjEsMCwxLDAsMCwyLjE5SDExVjI3YTEuMDksMS4wOSwwLDAsMCwyLjE3LDBWMTAuMTloNi42OUExLjE0LDEuMTQsMCwwLDAsMjEsOS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC42Nywx''@;'; + put 'put ''NUgyMS4xNWExLjEsMS4xLDAsMSwwLDAsMi4xOUgyNVYyNi41YTEuMDksMS4wOSwwLDAsMCwyLjE3LDBWMTcuMjNoMy41NGExLjEsMS4xLDAsMSwwLDAtMi4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVBbGlnbkNlbnRlcj0o''@;'; + put 'put ''MCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMjBIMTlWMTZoNmExLDEsMCwwLDAsMS0xVjdhMSwxLDAsMCwwLTEtMUgxOVYyYTEsMSwwLDAsMC0yLDBWNkgxMWExLDEsMCwwLDAtMSwxdjhhMSwxLDAsMCwwLDEsMWg2djRINWExLDEsMCwwLDAtMSwxdjhhMSwxLDAsMCwwLDEsMUgxN3Y0''@;'; + put 'put ''YTEsMSwwLDAsMCwyLDBWMzBIMzFhMSwxLDAsMCwwLDEtMVYyMUExLDEsMCwwLDAsMzEsMjBaTTEyLDE0VjhIMjR2NlpNMzAsMjhINlYyMkgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVBbGlnbkxlZnQ9KDAsQi5jbHJJY29u''@;'; + put 'put ''U1ZHKSgnPHBhdGggZD0iTTUsMUExLDEsMCwwLDAsNCwyVjM0YTEsMSwwLDAsMCwyLDBWMkExLDEsMCwwLDAsNSwxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLDIwSDhWMzBIMzFhMSwxLDAsMCwwLDEtMVYyMUExLDEsMCwwLDAs''@;'; + put 'put ''MzEsMjBabS0xLDhIMTBWMjJIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjQsMTVWN2ExLDEsMCwwLDAtMS0xSDhWMTZIMjNBMSwxLDAsMCwwLDI0LDE1Wm0tMi0xSDEwVjhIMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxMLkNsclNoYXBlQWxpZ25SaWdodD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMWExLDEsMCwwLDAtMSwxVjM0YTEsMSwwLDAsMCwyLDBWMkExLDEsMCwwLDAsMzEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiAvPjxwYXRoIGQ9Ik00LDIxdjhhMSwxLDAsMCwwLDEsMUgyOFYyMEg1QTEsMSwwLDAsMCw0LDIxWm0yLDFIMjZ2Nkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTEyLDd2OGExLDEsMCwwLDAsMSwxSDI4VjZIMTNBMSwxLDAs''@;'; + put 'put ''MCwwLDEyLDdabTIsMUgyNnY2SDE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZUl0YWxpYz0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQuNDIsOEgxNy4xYTEuMSwxLjEsMCwxLDAsMCwyLjE5aDIuMTNMMTMuMTEsMjUu''@;'; + put 'put ''NTVIMTAuNDdhMS4xLDEuMSwwLDEsMCwwLDIuMTlIMTcuOGExLjEsMS4xLDAsMSwwLDAtMi4xOUgxNS41MWw2LjEzLTE1LjM2aDIuNzhhMS4xLDEuMSwwLDEsMCwwLTIuMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlSnVzdGlm''@;'; + put 'put ''eVRleHQ9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYsMTAuMkgzMS43NWExLjEsMS4xLDAsMSwwLDAtMi4ySDZhMS4xLDEuMSwwLDEsMCwwLDIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMS43NSwxNEg2YTEuMSwxLjEs''@;'; + put 'put ''MCwxLDAsMCwyLjJIMzEuNzVhMS4xLDEuMSwwLDEsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMS4xMiwyMEg2LjYyYTEuMSwxLjEsMCwxLDAsMCwyLjJoMjQuNWExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjQ1LDI1LjgzSDYuNmExLjEsMS4xLDAsMCwwLDAsMi4ySDMwLjQ1YTEuMSwxLjEsMCwwLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxMLkNsclNo''@;'; + put 'put ''YXBlQWxpZ25MZWZ0VGV4dD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjAuMjUsMjZINnYyLjJIMjAuMjVhMS4xLDEuMSwwLDAsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yOCwyMEg2djIuMkgyOEExLjEsMS4x''@;'; + put 'put ''LDAsMCwwLDI4LDIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjYsMTUuMUExLjEsMS4xLDAsMCwwLDIxLjUsMTRINnYyLjJIMjEuNUExLjEsMS4xLDAsMCwwLDIyLjYsMTUuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yOS4yNSw4SDZ2Mi4ySDI5LjI1YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxMLkNsclNoYXBlTnVtYmVyTGlzdD0oMCxCLmNsckljb25TVkcpKCc8cG9seWdv''@;'; + put 'put ''biBwb2ludHM9IjUuNDYgNy40MSA1LjQ2IDExLjU2IDYuNjUgMTEuNTYgNi42NSA2LjA1IDUuNyA2LjA1IDQuMDUgNy4xNiA0LjUyIDggNS40NiA3LjQxIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNS41NywxNC44MmEuNzYuNzYsMCww''@;'; + put 'put ''LDEsLjgzLjczYzAsLjM4LS4yMS43NC0uODcsMS4yN2wtMiwxLjU3djFINy42N1YxOC4yOEg1LjMzbDEtLjc3YzEtLjcsMS4yOC0xLjI3LDEuMjgtMmExLjgzLDEuODMsMCwwLDAtMi0xLjc2LDIuNjMsMi42MywwLDAsMC0yLjE0LDEuMDhsLjc2LjczQTEuNzUsMS43NSwwLDAsMSw1LjU3LDE0''@;'; + put 'put ''LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTYuNTYsMjQuNjRhMS4zMiwxLjMyLDAsMCwwLDEtMS4yN2MwLS44Ny0uNzgtMS41MS0yLTEuNTFhMi42MSwyLjYxLDAsMCwwLTIuMSwxbC42OS43MmExLjc4LDEuNzgsMCwwLDEsMS4z''@;'; + put 'put ''LS42NGMuNTQsMCwuOTIuMjYuOTIuNjZzLS4zNi42Mi0xLC42Mkg0Ljc5djFoLjY0Yy43NCwwLDEuMDcuMjEsMS4wNy42M3MtLjM1LjY4LTEsLjY4YTIsMiwwLDAsMS0xLjQ2LS42NWwtLjcuNzhhMi44NSwyLjg1LDAsMCwwLDIuMjEuOTNjMS4yOSwwLDIuMTMtLjY5LDIuMTMtMS42NEExLjMz''@;'; + put 'put ''LDEuMzMsMCwwLDAsNi41NiwyNC42NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMi40Miw5YTEsMSwwLDAsMC0xLTFIMTB2MkgzMS40MkExLDEsMCwwLDAsMzIuNDIsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMS40MiwxNkgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzEuNDIsMjRIMTB2MkgzMS40MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZVBhaW50Um9sbGVyPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwxMFY0YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw0djZhMiwyLDAsMCwwLDIsMkgyOUEyLDIsMCwwLDAsMzEsMTBaTTYsNEgyOXY2''@;'; + put 'put ''SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsNkgzMnY2LjI5TDE4LjcsMTYuNTRhMSwxLDAsMCwwLS43LDFWMTlIMTZWMzNhMiwyLDAsMCwwLDIsMmgyYTIsMiwwLDAsMCwyLTJWMTlIMjB2LS43M0wzMy4zLDE0YTEsMSwwLDAs''@;'; + put 'put ''MCwuNy0xVjdBMSwxLDAsMCwwLDMzLDZaTTIwLDMzSDE4VjIxaDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cmVjdCB4PSI0IiB5PSIyIiB3aWR0aD0iMjciIGhlaWdodD0iMTAiIHJ4PSIxIiByeT0iMSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsNkgzMnY2LjI0TDE4LjcxLDE2LjQ1YTEsMSwwLDAsMC0uNzEsMVYxOUgxNlYzNGExLDEsMCwwLDAsMSwxaDRhMSwxLDAsMCwwLDEtMVYxOUgyMHYtLjgyTDMzLjI5LDE0QTEsMSwwLDAsMCwzNCwxM1Y3QTEsMSwwLDAsMCwzMyw2WiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlQmxvY2tRdW90ZT0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTEuODYsMTYuNTVhNC4zMSw0LjMxLDAsMCwwLTIuMTEuNTYsMTQuNDQsMTQuNDQsMCwwLDEsNC4zNi02LDEuMSwxLjEsMCwwLDAt''@;'; + put 'put ''MS40LTEuN2MtNCwzLjI1LTUuNzgsNy43NS01Ljc4LDEwLjU0QTUuMDgsNS4wOCwwLDAsMCwxMCwyNC41OGE0LjQsNC40LDAsMCwwLDEuODguNDQsNC4yNCw0LjI0LDAsMSwwLDAtOC40N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0y''@;'; + put 'put ''MywxNi41NWE0LjI5LDQuMjksMCwwLDAtMi4xMS41NiwxNC41LDE0LjUsMCwwLDEsNC4zNS02LDEuMSwxLjEsMCwxLDAtMS4zOS0xLjdjLTQsMy4yNS01Ljc4LDcuNzUtNS43OCwxMC41NGE1LjA4LDUuMDgsMCwwLDAsMyw0LjYxQTQuMzcsNC4zNywwLDAsMCwyMywyNWE0LjI0LDQuMjQsMCwx''@;'; + put 'put ''LDAsMC04LjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUFsaWduUmlnaHRUZXh0PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC42NSwyNy4xYTEuMSwxLjEsMCwwLDAsMS4xLDEuMUgzMFYyNkgxNS43NUExLjEsMS4x''@;'; + put 'put ''LDAsMCwwLDE0LjY1LDI3LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNi45LDIxLjFBMS4xLDEuMSwwLDAsMCw4LDIyLjJIMzBWMjBIOEExLjEsMS4xLDAsMCwwLDYuOSwyMS4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTEzLjQsMTUuMWExLjEsMS4xLDAsMCwwLDEuMSwxLjFIMzBWMTRIMTQuNUExLjEsMS4xLDAsMCwwLDEzLjQsMTUuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik02Ljc1LDhhMS4xLDEu''@;'; + put 'put ''MSwwLDEsMCwwLDIuMkgzMFY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZVRleHQ9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLjE5LDguODRhMS40NSwxLjQ1LDAsMCwwLTEuNC0xaC0uMTJhMS40NiwxLjQ2LDAsMCww''@;'; + put 'put ''LTEuNDIsMUwxLjE0LDI2LjU2YTEuMjksMS4yOSwwLDAsMC0uMTQuNTksMSwxLDAsMCwwLDEsMSwxLjEyLDEuMTIsMCwwLDAsMS4wOC0uNzdsMi4wOC00LjY1aDExbDIuMDgsNC41OWExLjI0LDEuMjQsMCwwLDAsMS4xMi44MywxLjA4LDEuMDgsMCwwLDAsMS4wOC0xLjA4LDEuNjQsMS42NCww''@;'; + put 'put ''LDAsMC0uMTQtLjU3Wk02LjA4LDIwLjcxbDQuNTktMTAuMjIsNC42LDEwLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMyLjI0LDE0Ljc4QTYuMzUsNi4zNSwwLDAsMCwyNy42LDEzLjJhMTEuMzYsMTEuMzYsMCwwLDAtNC43LDEs''@;'; + put 'put ''MSwxLDAsMCwwLS41OC44OSwxLDEsMCwwLDAsLjk0LjkyLDEuMjMsMS4yMywwLDAsMCwuMzktLjA4LDguODcsOC44NywwLDAsMSwzLjcyLS44MWMyLjcsMCw0LjI4LDEuMzMsNC4yOCwzLjkydi41YTE1LjI5LDE1LjI5LDAsMCwwLTQuNDItLjYxYy0zLjY0LDAtNi4xNCwxLjYxLTYuMTQsNC42''@;'; + put 'put ''NHYuMDVjMCwyLjk1LDIuNyw0LjQ4LDUuMzcsNC40OGE2LjI5LDYuMjksMCwwLDAsNS4xOS0yLjQ4VjI2LjlhMSwxLDAsMCwwLDEsMSwxLDEsMCwwLDAsMS0xLjA2VjE5QTUuNzEsNS43MSwwLDAsMCwzMi4yNCwxNC43OFptLS41Niw3LjdjMCwyLjI4LTIuMTcsMy44OS00LjgxLDMuODktMS45''@;'; + put 'put ''NCwwLTMuNjEtMS4wNi0zLjYxLTIuODZ2LS4wNmMwLTEuOCwxLjUtMyw0LjItM2ExNS4yLDE1LjIsMCwwLDEsNC4yMi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVVbmRlcmxpbmU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGgg''@;'; + put 'put ''ZD0iTTE4LDI4LjE3YzUuMDgsMCw4LjQ4LTMuMDgsOC40OC05VjguNTRhMS4xNSwxLjE1LDAsMSwwLTIuMywwdjEwLjhjMCw0LjQ0LTIuMzgsNi43MS02LjEzLDYuNzFzLTYuMjEtMi40Ny02LjIxLTYuODVWOC41NGExLjE1LDEuMTUsMCwxLDAtMi4zLDB2MTAuOEM5LjUzLDI1LjA5LDEzLDI4''@;'; + put 'put ''LjE3LDE4LDI4LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLDMwSDVhMS4xMSwxLjExLDAsMCwwLDAsMi4yMUgzMUExLjExLDEuMTEsMCwwLDAsMzEsMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMiIgLz4nKSxMLkNsclNoYXBlQWxpZ25Cb3R0b209KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDMwSDJhMSwxLDAsMCwwLDAsMkgzNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE2LDVhMSwx''@;'; + put 'put ''LDAsMCwwLTEtMUg3QTEsMSwwLDAsMCw2LDVWMjhIMTZaTTE0LDI2SDhWNmg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDEzYTEsMSwwLDAsMC0xLTFIMjFhMSwxLDAsMCwwLTEsMVYyOEgzMFpNMjgsMjZIMjJWMTRoNloiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVBbGlnbk1pZGRsZT0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsMTdIMzBWMTFhMSwxLDAsMCwwLTEtMUgyMWExLDEsMCwwLDAtMSwxdjZIMTZWNWExLDEsMCwwLDAtMS0xSDdBMSwx''@;'; + put 'put ''LDAsMCwwLDYsNVYxN0gyYTEsMSwwLDAsMCwwLDJINlYzMWExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVYxOWg0djZhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWMTloNGExLDEsMCwwLDAsMC0yWk0xNCwzMEg4VjZoNlptMTQtNkgyMlYxMmg2WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZUFsaWduVG9wPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCw0SDJBMSwxLDAsMCwwLDIsNkgzNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTYsMzFhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWOEg2Wk04LDEwaDZWMzBIOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMCwyM2ExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVY4SDIwWm0yLTEz''@;'; + put 'put ''aDZWMjJIMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxMLkNsclNoYXBlTGFuZ3VhZ2U9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLDNIMTR2NWgyVjVoMTRjMC42LDAsMSwwLjQsMSwxdjExYzAsMC42LTAuNCwxLTEsMUgxN3Y3aC01''@;'; + put 'put ''LjNMOCwyNy45VjI1SDVjLTAuNiwwLTEtMC40LTEtMVYxM2MwLTAuNiwwLjQtMSwxLTFoMTN2LTJINVxuXHRcdGMtMS43LDAtMywxLjMtMywzdjExYzAsMS43LDEuMywzLDMsM2gxdjUuMWw2LjMtNS4xSDE5di03aDExYzEuNywwLDMtMS4zLDMtM1Y2QzMzLDQuMywzMS43LDMsMzAsM3oiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LjIsMjIuOWgyLjRsMC42LTEuNmgzLjFsMC42LDEuNmgyLjRMMTEuOSwxNEg5LjVMNi4yLDIyLjl6IE0xMC43LDE2LjVsMSwzLjFoLTJMMTAuNywxNi41eiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIwLDE3YzEuMSwwLDIuNi0wLjMsNC0xYzEuNCwwLjcsMywxLDQsMXYtMmMwLDAtMSwwLTIuMS0wLjRjMS4yLTEuMiwyLjEtMywyLjEtNS42VjhoLTNWNmgtMnYyaC0zdjJoNS45XG5cdFx0Yy0wLjIsMS44LTEsMi45LTEuOSwzLjZj''@;'; + put 'put ''LTAuNi0wLjUtMS4yLTEuMi0xLjYtMi4xaC0yLjFjMC40LDEuMywxLDIuMywxLjgsMy4xQzIxLjEsMTUsMjAuMiwxNSwyMCwxNVYxN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwb2x5Z29uIHBvaW50cz0iMTEsMTYuNSAxMCwxOS42IDEyLDE5LjYg''@;'; + put 'put ''MTEsMTYuNSBcdCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAuMywzaC0xNnY1aDR2MmgtMTNjLTEuNywwLTMsMS4zLTMsM3YxMWMwLDEuNywxLjMsMywzLDNoMXY1LjFsNi4zLTUuMWg2Ljd2LTdoMTFjMS43LDAsMy0xLjMsMy0zVjZcblx0''@;'; + put 'put ''XHRDMzMuMyw0LjMsMzIsMywzMC4zLDN6IE0xMy4xLDIyLjlsLTAuNS0xLjZIOS41bC0wLjYsMS42SDYuNUw5LjgsMTRoMi40bDMuMyw4LjlMMTMuMSwyMi45eiBNMjguMywxNXYyYy0xLjMsMC0yLjctMC40LTMuOS0xXG5cdFx0Yy0xLjIsMC42LTIuNiwwLjktNCwxbC0wLjEtMmMwLjcsMCwx''@;'; + put 'put ''LjQtMC4xLDIuMS0wLjNjLTAuOS0wLjktMS41LTItMS44LTMuMmgyLjFjMC4zLDAuOSwwLjksMS42LDEuNiwyLjJjMS4xLTAuOSwxLjgtMi4yLDEuOS0zLjdcblx0XHRoLTZWOGgzVjZoMnYyaDMuM2wwLjEsMWMwLjEsMi4xLTAuNyw0LjItMi4yLDUuN0MyNy4xLDE0LjksMjcuNywxNSwyOC4z''@;'; + put 'put ''LDE1eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlVGV4dENvbG9yPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS40NywzLjg0YTEuNDUsMS40NSwwLDAsMC0xLjQtMUgxOGExLjQ1LDEuNDUsMCwwLDAtMS40MiwxTDguNDIsMjEu''@;'; + put 'put ''NTZhMS4zNSwxLjM1LDAsMCwwLS4xNC41OSwxLDEsMCwwLDAsMSwxLDEuMTEsMS4xMSwwLDAsMCwxLjA4LS43N2wyLjA4LTQuNjVoMTFsMi4wOCw0LjU5YTEuMjQsMS4yNCwwLDAsMCwxLjEyLjgzLDEuMDgsMS4wOCwwLDAsMCwxLjA4LTEuMDgsMS41OSwxLjU5LDAsMCwwLS4xNC0uNTdaTTEz''@;'; + put 'put ''LjM2LDE1LjcxLDE4LDUuNDlsNC42LDEwLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHJlY3QgeD0iNC4wNiIgeT0iMjUiIHdpZHRoPSIyOCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0yIi8+JyksTC5DbHJTaGFwZUhpZ2hsaWdodGVyPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNS44MiwyNi4wNmExLDEsMCwwLDEtLjcxLS4yOUw4LjY3LDE5LjMzYTEsMSwwLDAsMS0uMjktLjcxLDEsMSwwLDAsMSwuMjktLjcxTDIzLDMuNTRhNS41NSw1LjU1LDAs''@;'; + put 'put ''MSwxLDcuODUsNy44NkwxNi41MywyNS43N0ExLDEsMCwwLDEsMTUuODIsMjYuMDZabS01LTcuNDQsNSw1TDI5LjQ4LDEwYTMuNTQsMy41NCwwLDAsMCwwLTUsMy42MywzLjYzLDAsMCwwLTUsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRo''@;'; + put 'put ''IGQ9Ik0xMC4zOCwyOC4yOEExLDEsMCwwLDEsOS42NywyOEw2LjQ1LDI0Ljc3YTEsMSwwLDAsMS0uMjItMS4wOWwyLjIyLTUuNDRhMSwxLDAsMCwxLDEuNjMtLjMzbDYuNDUsNi40NEExLDEsMCwwLDEsMTYuMiwyNmwtNS40NCwyLjIyQTEuMzMsMS4zMywwLDAsMSwxMC4zOCwyOC4yOFpNOC4z''@;'; + put 'put ''MywyMy44MmwyLjI5LDIuMjgsMy40My0xLjRMOS43NCwyMC4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik04Ljk0LDMwaC01YTEsMSwwLDAsMS0uODQtMS41NWwzLjIyLTQuOTRhMSwxLDAsMCwxLDEuNTUtLjE2bDMuMjEsMy4y''@;'; + put 'put ''MmExLDEsMCwwLDEsLjA2LDEuMzVMOS43LDI5LjY0QTEsMSwwLDAsMSw4Ljk0LDMwWk01Ljc4LDI4SDguNDdMOSwyNy4zNGwtMS43LTEuN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxyZWN0IHg9IjMuMDYiIHk9IjMxIiB3aWR0aD0iMzAiIGhl''@;'; + put 'put ''aWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz4nKSxMLkNsclNoYXBlT3V0ZGVudD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMDYsOWgtMjZhMSwxLDAsMSwxLDAtMmgyNmExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE0aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMTloLTE3YTEsMSwwLDAs''@;'; + put 'put ''MSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyNGgtMTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDI5aC0yNmExLDEsMCwwLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNOS41NiwyMi41NGExLDEsMCwwLDEtLjctLjNMNC42MSwxOGw0LjI1''@;'; + put 'put ''LTQuMjRhMSwxLDAsMCwxLDEuNDEsMS40MUw3LjQ0LDE4bDIuODMsMi44M2ExLDEsMCwwLDEtLjcxLDEuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPicpLEwuQ2xyU2hhcGVJbmRlbnQ9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjA2LDlo''@;'; + put 'put ''LTI2YTEsMSwwLDEsMSwwLTJoMjZhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwxNGgtMTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE5aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMjRoLTE3YTEsMSwwLDAsMSwwLTJo''@;'; + put 'put ''MTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyOWgtMjZhMSwxLDAsMCwxLDAtMmgyNmExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUi''@;'; + put 'put ''Lz5cbiAgPHBhdGggZD0iTTUuNTYsMjIuNTRhMSwxLDAsMCwxLS43LTEuNzFMNy42OCwxOCw0Ljg2LDE1LjE3YTEsMSwwLDAsMSwwLTEuNDEsMSwxLDAsMCwxLDEuNDEsMEwxMC41MSwxOCw2LjI3LDIyLjI0QTEsMSwwLDAsMSw1LjU2LDIyLjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTYiLz4nKSxMLkNsclNoYXBlU3RyaWtldGhyb3VnaD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIuODgsMTkuOTJoLTMwYTEsMSwwLDEsMSwwLTJoMzBhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''Ii8+XG4gIDxwYXRoIGQ9Ik03LjI3LDE1Ljg2YTEyLjksMTIuOSwwLDAsMSwxLjI5LS41MkE1LjY5LDUuNjksMCwwLDEsMTAuMzksMTVhMy4xOCwzLjE4LDAsMCwxLDIuNzUsMS4xMUE0LjQ0LDQuNDQsMCwwLDEsMTQsMTguODV2LjQ5YTEzLjgzLDEzLjgzLDAsMCwwLTQuMjktLjc0LDYuMTks''@;'; + put 'put ''Ni4xOSwwLDAsMC0yLjU5LjU0QTUsNSwwLDAsMCw1LjgxLDIwSDE1Ljg4VjE4Ljg1YTUuNjcsNS42NywwLDAsMC0xLjM3LTQsNS4xNiw1LjE2LDAsMCwwLTQtMS40OSwxMCwxMCwwLDAsMC0zLjkxLjg4Ljg3Ljg3LDAsMCwwLS40NCwxLjE4QS44NC44NCwwLDAsMCw3LjI3LDE1Ljg2WiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIxLDIwYTUuOTQsNS45NCwwLDAsMSwuNTQtMi4zMSw0LjM1LDQuMzUsMCwwLDEsMS41OC0xLjgzLDQuMjcsNC4yNywwLDAsMSw0LjU5LDAsNC40Nyw0LjQ3LDAsMCwxLDEuNTcsMS44M0E2LjEy''@;'; + put 'put ''LDYuMTIsMCwwLDEsMjkuODUsMjBoMmE3LjczLDcuNzMsMCwwLDAtLjc4LTMuMTksNiw2LDAsMCwwLTIuMTgtMi40NSw1Ljc0LDUuNzQsMCwwLDAtMy4xLS44OCw1LjM5LDUuMzksMCwwLDAtMi44LjczLDUuNTUsNS41NSwwLDAsMC0yLDIuMDVWMTBhLjg3Ljg3LDAsMCwwLS44Ni0uODZIMjBh''@;'; + put 'put ''Ljg3Ljg3LDAsMCwwLS44Ni44NlYyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0yOS42NywyMmE1LjYxLDUuNjEsMCwwLDEtLjM2LDEuMDcsNC40Nyw0LjQ3LDAsMCwxLTEuNTcsMS44NSw0LjMyLDQuMzIsMCwwLDEtNC41OSww''@;'; + put 'put ''LDQuMzUsNC4zNSwwLDAsMS0xLjU4LTEuODVBNS42NCw1LjY0LDAsMCwxLDIxLjIsMjJIMTkuMDl2NC4xM0EuODcuODcsMCwwLDAsMjAsMjdoLjJhLjg3Ljg3LDAsMCwwLC44Ni0uODZWMjQuNTFhNS41OCw1LjU4LDAsMCwwLDIsMi4wNiw1LjQ4LDUuNDgsMCwwLDAsMi44LjcyLDUuNjYsNS42''@;'; + put 'put ''NiwwLDAsMCwzLjEtLjg4QTUuODgsNS44OCwwLDAsMCwzMS4wOSwyNCw3LjA5LDcuMDksMCwwLDAsMzEuNzMsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTQsMjJ2Ljc2YTMuMzQsMy4zNCwwLDAsMS0xLjYyLDIsNS4zNCw1''@;'; + put 'put ''LjM0LDAsMCwxLTIuNjkuNzIsMy43OCwzLjc4LDAsMCwxLTIuMzYtLjcsMi4yNCwyLjI0LDAsMCwxLS45NC0xLjksMi4yOSwyLjI5LDAsMCwxLC4yLS45MUg0LjYyYTQsNCwwLDAsMC0uMTMsMSwzLjgzLDMuODMsMCwwLDAsMS4zNSwzLjA2QTUuMTUsNS4xNSwwLDAsMCw5LjMxLDI3LjIsNiw2''@;'; + put 'put ''LDAsMCwwLDEyLDI2LjU3YTQuNjIsNC42MiwwLDAsMCwyLTEuNzRWMjZhLjg2Ljg2LDAsMCwwLC44Ni44NkgxNWEuODYuODYsMCwwLDAsLjg2LS44NlYyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+JyksTC5DbHJTaGFwZVN1YnNjcmlwdD0oMCxCLmNs''@;'; + put 'put ''ckljb25TVkcpKCc8cGF0aCBkPSJNMTQuNTUsMThsNi44LDguNmExLjE3LDEuMTcsMCwwLDEtLjkyLDEuOWgwYTEuMTcsMS4xNywwLDAsMS0uOTItLjQ0TDEzLDE5LjkxLDYuNiwyOGExLjE3LDEuMTcsMCwwLDEtLjkyLjQ0aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0xLjlMMTEuNTUsMThsLTYu''@;'; + put 'put ''OC04LjZhMS4xNywxLjE3LDAsMCwxLC45Mi0xLjloMEExLjE3LDEuMTcsMCwwLDEsNi42Myw4bDYuNDQsOC4xM0wxOS41LDhhMS4xNywxLjE3LDAsMCwxLC45Mi0uNDRoMGExLjE3LDEuMTcsMCwwLDEsLjkyLDEuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''Ii8+XG4gIDxwYXRoIGQ9Ik0yMywzMS44LDI3LjQ5LDI4YTkuOSw5LjksMCwwLDAsMS44OC0yLjA1QTMuNDQsMy40NCwwLDAsMCwzMCwyNGEyLjM1LDIuMzUsMCwwLDAtLjM1LTEuMjcsMi40NCwyLjQ0LDAsMCwwLTEtLjg0LDIuOSwyLjksMCwwLDAtMS4yNi0uMjgsMy4zNiwzLjM2LDAsMCww''@;'; + put 'put ''LTEuODMuNSw1LjY0LDUuNjQsMCwwLDAtMS40OCwxLjQybC0xLS44MWE1LjExLDUuMTEsMCwwLDEsNC4zNi0yLjM3LDQuMzUsNC4zNSwwLDAsMSwyLC40NSwzLjQzLDMuNDMsMCwwLDEsMiwzLjE4LDQuNDUsNC40NSwwLDAsMS0uNjgsMi4zNSwxMC45LDEwLjksMCwwLDEtMi4yNCwyLjQ2bC0z''@;'; + put 'put ''LjI0LDIuODFIMzEuNVYzM0gyM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+JyksTC5DbHJTaGFwZVN1cGVyc2NyaXB0PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC40MywxOGw2Ljc5LDguNmExLjE3LDEuMTcsMCwwLDEtLjkyLDEuOWgwYTEu''@;'; + put 'put ''MTcsMS4xNywwLDAsMS0uOTItLjQ0bC02LjQ0LTguMTNMNi40NywyOGExLjE3LDEuMTcsMCwwLDEtLjkyLjQ0aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0xLjlMMTEuNDMsMThsLTYuOC04LjZhMS4xNywxLjE3LDAsMCwxLC45Mi0xLjloMEExLjIsMS4yLDAsMCwxLDYuNTEsOGw2LjQzLDguMTNM''@;'; + put 'put ''MTkuMzgsOGExLjE3LDEuMTcsMCwwLDEsLjkyLS40NGgwYTEuMTcsMS4xNywwLDAsMSwuOTIsMS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTIyLjg1LDE0LjQ3bDQuNTEtMy44NWE5LjM3LDkuMzcsMCwwLDAsMS44OC0yLDMu''@;'; + put 'put ''NDMsMy40MywwLDAsMCwuNTktMS44NiwyLjI3LDIuMjcsMCwwLDAtLjM2LTEuMjcsMi4zOCwyLjM4LDAsMCwwLS45NS0uODMsMi43NywyLjc3LDAsMCwwLTEuMjYtLjI5LDMuMzksMy4zOSwwLDAsMC0xLjgzLjUsNS44Myw1LjgzLDAsMCwwLTEuNDksMS40MmwtMS0uODFhNS4xMiw1LjEyLDAs''@;'; + put 'put ''MCwxLDQuMzYtMi4zNyw0LjM2LDQuMzYsMCwwLDEsMiwuNDUsMy40NywzLjQ3LDAsMCwxLDIsMy4xOEE0LjQ0LDQuNDQsMCwwLDEsMzAuNTgsOWExMS4xNCwxMS4xNCwwLDAsMS0yLjI0LDIuNDZMMjUuMSwxNC4zMWg2LjI4djEuMzNIMjIuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMiIvPicpLEwuVGV4dEVkaXRTaGFwZXM9e2JvbGQ6TC5DbHJTaGFwZUJvbGQsImJ1bGxldC1saXN0IjpMLkNsclNoYXBlQnVsbGV0TGlzdCwiY2hlY2tib3gtbGlzdCI6TC5DbHJTaGFwZUNoZWNrYm94TGlzdCwibnVtYmVyLWxpc3QiOkwuQ2xyU2hhcGVOdW1iZXJM''@;'; + put 'put ''aXN0LCJmb250LXNpemUiOkwuQ2xyU2hhcGVGb250U2l6ZSxpdGFsaWM6TC5DbHJTaGFwZUl0YWxpYywianVzdGlmeS10ZXh0IjpMLkNsclNoYXBlSnVzdGlmeVRleHQsImNlbnRlci10ZXh0IjpMLkNsclNoYXBlQ2VudGVyVGV4dCwiYWxpZ24tbGVmdC10ZXh0IjpMLkNsclNoYXBlQWxpZ25M''@;'; + put 'put ''ZWZ0VGV4dCwiYWxpZ24tcmlnaHQtdGV4dCI6TC5DbHJTaGFwZUFsaWduUmlnaHRUZXh0LCJwYWludC1yb2xsZXIiOkwuQ2xyU2hhcGVQYWludFJvbGxlciwiYmxvY2stcXVvdGUiOkwuQ2xyU2hhcGVCbG9ja1F1b3RlLHRleHQ6TC5DbHJTaGFwZVRleHQsdW5kZXJsaW5lOkwuQ2xyU2hhcGVV''@;'; + put 'put ''bmRlcmxpbmUsImFsaWduLWNlbnRlciI6TC5DbHJTaGFwZUFsaWduQ2VudGVyLCJhbGlnbi1sZWZ0IjpMLkNsclNoYXBlQWxpZ25MZWZ0LCJhbGlnbi1yaWdodCI6TC5DbHJTaGFwZUFsaWduUmlnaHQsImFsaWduLWJvdHRvbSI6TC5DbHJTaGFwZUFsaWduQm90dG9tLCJhbGlnbi1taWRkbGUi''@;'; + put 'put ''OkwuQ2xyU2hhcGVBbGlnbk1pZGRsZSwiYWxpZ24tdG9wIjpMLkNsclNoYXBlQWxpZ25Ub3AsbGFuZ3VhZ2U6TC5DbHJTaGFwZUxhbmd1YWdlLCJ0ZXh0LWNvbG9yIjpMLkNsclNoYXBlVGV4dENvbG9yLGhpZ2hsaWdodGVyOkwuQ2xyU2hhcGVIaWdobGlnaHRlcixpbmRlbnQ6TC5DbHJTaGFw''@;'; + put 'put ''ZUluZGVudCxvdXRkZW50OkwuQ2xyU2hhcGVPdXRkZW50LHN0cmlrZXRocm91Z2g6TC5DbHJTaGFwZVN0cmlrZXRocm91Z2gsc3Vic2NyaXB0OkwuQ2xyU2hhcGVTdWJzY3JpcHQsc3VwZXJzY3JpcHQ6TC5DbHJTaGFwZVN1cGVyc2NyaXB0fSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYm''@;'; + put 'put ''d2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoTC5UZXh0RWRpdFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdHJhdmVsLXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVj''@;'; + put 'put ''dC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLlRyYXZlbFNoYXBlcz1MLkNsclNoYXBlT25Ib2xpZGF5PUwuQ2xyU2hhcGVUcmFpbGVyPUwuQ2xyU2hhcGVGZXJyeT1MLkNsclNoYXBlQ2FyYXZhbj1MLkNsclNoYXBlQ2FtcGVydmFuPUwuQ2xyU2hhcGVCb2F0''@;'; + put 'put ''PUwuQ2xyU2hhcGVCaWN5Y2xlPUwuQ2xyU2hhcGVNYXBNYXJrZXI9TC5DbHJTaGFwZUNvbXBhc3M9TC5DbHJTaGFwZU1hcD1MLkNsclNoYXBlQ2FyPUwuQ2xyU2hhcGVBaXJwbGFuZT1MLkNsclNoYXBlVHJ1Y2s9dm9pZCAwO3ZhciBCPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9k''@;'; + put 'put ''ZXNjcmlwdG9yLWNvbmZpZy50cyIpLEU9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7TC5DbHJTaGFwZVRydWNrPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJN''@;'; + put 'put ''MzAsMTJIMjZWN2ExLDEsMCwwLDAtMS0xSDNBMSwxLDAsMCwwLDIsN1YyNWExLDEsMCwwLDAsMSwxSDRWOEgyNFYxOS43YTYuNDUsNi40NSwwLDAsMSwxLjU2LS4yYy4xNSwwLC4yOSwwLC40NCwwVjE0aDRhMiwyLDAsMCwxLDIsMnYxSDI4djJoNHY1SDI5LjZhNC41NCw0LjU0LDAsMCwwLTgu''@;'; + put 'put ''MzQsMEgxNC40M2E0LjUsNC41LDAsMCwwLTQuMTctMi43NkE0LjM4LDQuMzgsMCwxLDAsMTQuNzIsMjZIMjFhNC40OSw0LjQ5LDAsMCwwLDguOTIsMEgzM2ExLDEsMCwwLDAsMS0xVjE2QTQsNCwwLDAsMCwzMCwxMlpNMTAuMjYsMjhhMi4zOCwyLjM4LDAsMSwxLDAtNC43NSwyLjM4LDIuMzgs''@;'; + put 'put ''MCwxLDEsMCw0Ljc1Wm0xNS4xNywwYTIuMzgsMi4zOCwwLDEsMSwyLjUtMi4zN0EyLjQ0LDIuNDQsMCwwLDEsMjUuNDMsMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsMTJIMjZWN2ExLDEsMCwwLDAtMS0xSDNB''@;'; + put 'put ''MSwxLDAsMCwwLDIsN1YyNWExLDEsMCwwLDAsMSwxSDRWOEgyNFYyMS40OUE0LjQ1LDQuNDUsMCwwLDAsMjEuMjUsMjRIMTQuNDNhNC41LDQuNSwwLDAsMC00LjE3LTIuNzZBNC4zOCw0LjM4LDAsMSwwLDE0LjcyLDI2SDIxYTQuNDgsNC40OCwwLDAsMCw4LjkxLDBIMzRWMTZBNCw0LDAsMCww''@;'; + put 'put ''LDMwLDEyWk0xMC4yNiwyOGEyLjM4LDIuMzgsMCwxLDEsMC00Ljc1LDIuMzgsMi4zOCwwLDEsMSwwLDQuNzVabTE1LjE3LDBhMi4zOCwyLjM4LDAsMSwxLDIuNS0yLjM3QTIuNDQsMi40NCwwLDAsMSwyNS40MiwyOFpNMzIsMTdIMjZWMTRoNGEyLDIsMCwwLDEsMiwyWiIvPicpLEwuQ2xyU2hh''@;'; + put 'put ''cGVBaXJwbGFuZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM1Ljc3LDguMTZhMi40MywyLjQzLDAsMCwwLTEuOS0yTDI4LDQuODdhNC41LDQuNSwwLDAsMC0zLjY1Ljc5TDcsMTguMywyLjE0LDE4LjFBMS44''@;'; + put 'put ''NiwxLjg2LDAsMCwwLC45MSwyMS40MWw1LDMuOTNjLjYuNzMsMSwuNTksMTAuOTMtNC44MmwuOTMsOS40MmExLjM2LDEuMzYsMCwwLDAsLjg1LDEuMTgsMS40MywxLjQzLDAsMCwwLC41NC4xLDEuNTQsMS41NCwwLDAsMCwxLS40MWwyLjM5LTIuMThhMS41MiwxLjUyLDAsMCwwLC40Ni0uODNM''@;'; + put 'put ''MjUuMiwxNS45YzMuNTctMiw2Ljk1LTMuODgsOS4zNi01LjI1QTIuNDMsMi40MywwLDAsMCwzNS43Nyw4LjE2Wm0tMi4yLjc1Yy0yLjUsMS40Mi02LDMuNDEtOS43Niw1LjQ3bC0uNDEuMjNMMjEuMDcsMjcuMjhsLTEuNDcsMS4zNEwxOC41LDE3LjMyLDE3LjE3LDE4QzEwLDIyLDcuNjEsMjMu''@;'; + put 'put ''MTYsNi43OSwyMy41MmwtNC4zLTMuNDEsNS4wOC4yMiwxOC0xMy4wNmEyLjUxLDIuNTEsMCwwLDEsMi0uNDVsNS44NSwxLjI2YS40My40MywwLDAsMSwuMzUuMzdBLjQyLjQyLDAsMCwxLDMzLjU3LDguOTFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMiIgZD0iTTcsMTIuNTRsMy41NiwxLDEuNjQtMS4xOS00LTEuMTZMMTAsMTAuMDlsNS40Ny0uMTYsMi4zLTEuNjdMMTAsOC41YTEuMjUsMS4yNSwwLDAsMC0uNy4xN0w2LjY3LDEwLjJBMS4yOCwxLjI4LDAsMCwwLDcsMTIuNTRaIi8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNi4yNSwxMS41LDEyLDEzLjE2bDYuMzItNC41OS05LjA3LjI2QS41Mi41MiwwLDAsMCw5LDguOTFMNi4xMywxMC41NkEuNTEuNTEsMCwwLDAsNi4yNSwxMS41WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTM0LjUyLDYuMzYsMjguMjIsNWEzLjc4LDMuNzgsMCwwLDAtMy4wNy42N0w2LjEyLDE5LjVsLTQuNTctLjJhMS4yNSwxLjI1LDAsMCwwLS44MywyLjIybDQuNDUsMy41M2EuNTUuNTUsMCwwLDAsLjUzLjA5YzEuMjctLjQ5LDYt''@;'; + put 'put ''MywxMS41OS02LjA3bDEuMTIsMTEuNTFhLjU1LjU1LDAsMCwwLC45LjM3bDIuNS0yLjA4YS43Ni43NiwwLDAsMCwuMjYtLjQ1bDIuMzctMTMuMjljNC0yLjIyLDcuODItNC4zNywxMC41MS01Ljg5QTEuNTUsMS41NSwwLDAsMCwzNC41Miw2LjM2WiIvPicpLEwuQ2xyU2hhcGVDYXI9KDAsRS5j''@;'; + put 'put ''bHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjE1IiB5PSIxNyIgd2lkdGg9IjMiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBk''@;'; + put 'put ''PSJNMjYuNDUsMTQuMTdBMjIuMSwyMi4xLDAsMCwwLDE5LjM4LDdhOS42NCw5LjY0LDAsMCwwLTktLjcsOC42LDguNiwwLDAsMC00LjgyLDYuNGMtLjA4LjQ3LS4xNC45Mi0uMiwxLjM2QTQsNCwwLDAsMCwyLDE4djYuMTNhMiwyLDAsMCwwLDIsMlYyMEg0VjE4YTIsMiwwLDAsMSwyLTJIMjQu''@;'; + put 'put ''NzNBNy4yOCw3LjI4LDAsMCwxLDMyLDIzLjI3VjI0aC0yYTQuNTMsNC41MywwLDEsMCwuMzMsMkgzMmEyLDIsMCwwLDAsMi0ydi0uNzNBOS4yOCw5LjI4LDAsMCwwLDI2LjQ1LDE0LjE3Wk0xMSwxNEg2LjkzYzAtLjMxLjA5LS42My4xNS0xQTYuNTIsNi41MiwwLDAsMSwxMSw4aDBabTIsMFY3''@;'; + put 'put ''LjU4YTguMTcsOC4xNywwLDAsMSw1LjM2LDEuMTZBMTksMTksMCwwLDEsMjMuOSwxNFpNMjUuOCwyOC4zOGEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwyNS44LDI4LjM4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zIiBkPSJNMTQuMTcsMjRhNC41Myw0LjUzLDAsMSwwLC4zMywyaDUuM2MwLS4wOCwwLS4xNywwLS4yNUE2LDYsMCwwLDEsMjAsMjRaTTEwLDI4LjM4YTIuNSwyLjUsMCwxLDEsMi41LTIuNUEyLjUsMi41LDAsMCwxLDEwLDI4LjM4WiIvPlxuICAgICAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNi44NywxNC4yOEEyMi4zNiwyMi4zNiwwLDAsMCwxOS42NSw2LjlhOS42NCw5LjY0LDAsMCwwLTktLjcsOC42LDguNiwwLDAsMC00LjgyLDYuNGMtLjA4LjQ5LS4xNSwxLS4yMSwxLjRoLTFBMi41OSwyLjU5''@;'; + put 'put ''LDAsMCwwLDIsMTYuNTl2OC41NWEuODYuODYsMCwwLDAsLjg2Ljg2SDQuNTljMC0uMTMsMC0uMjYsMC0uMzlhNS43Nyw1Ljc3LDAsMCwxLDcuNzEtNS40NWwtMSwxYTQuNTYsNC41NiwwLDAsMC00LjM0LDEuNTgsMywzLDAsMCwwLS42My45M0E0LjUsNC41LDAsMSwwLDE0LjgyLDI2aDUuNDhj''@;'; + put 'put ''MC0uMTMsMC0uMjYsMC0uMzlBNS43Nyw1Ljc3LDAsMCwxLDI4LDIwLjE2bC0xLDFhNC41Niw0LjU2LDAsMCwwLTQuMzQsMS41OCwzLDMsMCwwLDAtLjYzLjkzQTQuNSw0LjUsMCwxLDAsMzAuNTMsMjZoMi42MWEuODYuODYsMCwwLDAsLjg2LS44NlYyMy4zNkE5LjM5LDkuMzksMCwwLDAsMjYu''@;'; + put 'put ''ODcsMTQuMjhaTTEyLDE0SDhjMC0uMzUuMS0uNzEuMTYtMS4wN2E2LjUyLDYuNTIsMCwwLDEsMy44Ny01aDBaTTEwLjM2LDI4LjM2YTIuNSwyLjUsMCwxLDEsMi41LTIuNUEyLjUsMi41LDAsMCwxLDEwLjM2LDI4LjM2Wk0xOSwxOUgxNlYxN2gzWm0tNi01VjcuNDdhOC4xNiw4LjE2LDAsMCwx''@;'; + put 'put ''LDUuNCwxLjE1QTE5LjE1LDE5LjE1LDAsMCwxLDI0LDE0Wk0yNi4wNiwyOC4zNmEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwyNi4wNiwyOC4zNloiLz4nKSxMLkNsclNoYXBlTWFwPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0xIiBkPSJNMzMuNTksNi4xOUExLDEsMCwwLDAsMzIuNyw2TDIzLjA5LDksMTMuNDYsNC4xMWExLDEsMCwwLDAtLjg0LDBMMi42Miw4LjJBMSwxLDAsMCwwLDIsOS4xM1YyOS42MWExLDEsMCwwLDAsMS4zOC45MkwxMywyNi41OGw5LjU5LDQuOTJhMSwxLDAsMCwwLC40''@;'; + put 'put ''Ni4xMSwxLDEsMCwwLDAsLjMsMGwxMC0zLjEyYTEsMSwwLDAsMCwuNy0xVjdBMSwxLDAsMCwwLDMzLjU5LDYuMTlaTTMyLDI2Ljc1bC04LjMyLDIuNlYyNy4wNmgtMS42djJsLTguNC00LjMxVjIzLjA2aC0xLjZ2MS43Mkw0LDI4LjExVjkuNzlsOC4wOC0zLjMzVjguODFoMS42VjYuNDdsOC40''@;'; + put 'put ''LDQuM3YyLjFoMS42VjExTDMyLDguMzZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjIyLjA4IiB5PSIxNS4wNiIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjgxIi8+XG4gICAgICAgICAgICAgICAgPHJlY3Qg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjIyLjA4IiB5PSIyMS4wNiIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjgxIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjEyLjA4''@;'; + put 'put ''IiB5PSIxMS4wNiIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjgxIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjEyLjA4IiB5PSIxNy4xMyIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjc1Ii8+XG4gICAgICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMzLjMxLDcuMzUsMjUsOS45NFYxNEgyM1YxMC4yOUwxNCw1LjY4VjlIMTJWNS4yN2wtOS42Nyw0QS41My41MywwLDAsMCwyLDkuNzVWMzAuNDVhLjUzLjUzLDAsMCwwLC43NC40OUwxMiwyNy4x''@;'; + put 'put ''MlYyM2gydjQuNTNsOSw0LjYxVjI4aDJ2My43OWw4LjYzLTIuN2EuNTMuNTMsMCwwLDAsLjM3LS41MVY3Ljg2QS41My41MywwLDAsMCwzMy4zMSw3LjM1Wk0xNCwyMUgxMlYxN2gyWm0wLTZIMTJWMTFoMlpNMjUsMjZIMjNWMjJoMlptMC02SDIzVjE2aDJaIi8+JyksTC5DbHJTaGFwZUNvbXBh''@;'; + put 'put ''c3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLjgyLDE1LjMxaDBMMTAuNDYsOWMtLjQ2LS4yNi0xLjExLjM3LS44Ni44NGw2LjE1LDEwLjU2LDEwLjU2LDYuMTVhLjY2LjY2LDAsMCwwLC44NC0uODZabS00LDQsMy0zLDQuNTUsNy40NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMSwyOS45NVYyOS41M0gxN3YyLjQyQTE0LDE0LDAsMCwxLDQuMDUsMTlINi40N1YxN0g0LjA1QTE0LDE0LDAsMCwxLDE3LDQuMDVWNi40''@;'; + put 'put ''N2gyVjQuMDVBMTQsMTQsMCwwLDEsMzEuOTUsMTdIMjkuNTN2MmgyLjQyQTE0LDE0LDAsMCwxLDE5LDMxLjk1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiww''@;'; + put 'put ''LDAsMCwxOCwyWk02LjQ3LDE5SDQuMDVjMC0uMzMtLjA1LS42Ni0uMDUtMXMwLS42Ny4wNS0xSDYuNDdaTTE3LDQuMDVjLjMzLDAsLjY2LS4wNSwxLS4wNXMuNjcsMCwxLC4wNVY2LjQ3SDE3Wm0yLDI3LjljLS4zMywwLS42Ni4wNS0xLC4wNXMtLjY3LDAtMS0uMDVWMjkuNTNoMlptOC01LjU4''@;'; + put 'put ''YS41OS41OSwwLDAsMS0uNjkuMTZMMTUuNzUsMjAuMzgsOS42LDkuODJjLS4yNS0uNDcuMzktMS4xLjg2LS44NGwxMC4zNyw2LjMzaDBsNi4zMywxMC4zN0EuNTkuNTksMCwwLDEsMjcsMjYuMzdaTTI5LjUzLDE5VjE3aDIuNDJjMCwuMzMuMDUuNjYuMDUsMXMwLC42Ny0uMDUsMVoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE2Ljc3IDE5LjM1IDI0LjM1IDIzLjc3IDE5LjggMTYuMzMgMTYuNzcgMTkuMzUiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJT''@;'; + put 'put ''aGFwZU1hcE1hcmtlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDYuNzJhNS43Myw1LjczLDAsMSwwLDUuNzMsNS43M0E1LjczLDUuNzMsMCwwLDAsMTgsNi43MlptMCw5LjQ2YTMuNzMsMy43MywwLDEs''@;'; + put 'put ''MSwzLjczLTMuNzNBMy43MywzLjczLDAsMCwxLDE4LDE2LjE3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMkExMS43OSwxMS43OSwwLDAsMCw2LjIyLDEzLjczYzAsNC42NywyLjYyLDguNTgsNC41''@;'; + put 'put ''NCwxMS40M2wuMzUuNTJhOTkuNjEsOTkuNjEsMCwwLDAsNi4xNCw4bC43Ni44OS43Ni0uODlhOTkuODIsOTkuODIsMCwwLDAsNi4xNC04bC4zNS0uNTNjMS45MS0yLjg1LDQuNTMtNi43NSw0LjUzLTExLjQyQTExLjc5LDExLjc5LDAsMCwwLDE4LDJaTTIzLjU5LDI0bC0uMzYuNTNjLTEuNzIs''@;'; + put 'put ''Mi41OC00LDUuNDctNS4yMyw2LjktMS4xOC0xLjQzLTMuNTEtNC4zMi01LjIzLTYuOUwxMi40MiwyNGMtMS43Ny0yLjY0LTQuMi02LjI1LTQuMi0xMC4zMWE5Ljc4LDkuNzgsMCwxLDEsMTkuNTYsMEMyNy43OCwxNy43OSwyNS4zNiwyMS40LDIzLjU5LDI0WiIvPlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTE4LDYuNzJhNS43Myw1LjczLDAsMSwwLDUuNzMsNS43M0E1LjczLDUuNzMsMCwwLDAsMTgsNi43MlptMCw5LjQ2YTMuNzMsMy43MywwLDEsMSwzLjczLTMuNzNBMy43''@;'; + put 'put ''MywzLjczLDAsMCwxLDE4LDE2LjE3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTI5Ljc3LDEzLjQ5YTcuNDksNy40OSwwLDAsMS0yLS4zM2MwLC4xOSwwLC4zOCwwLC41Nyww''@;'; + put 'put ''LDQuMDYtMi40Miw3LjY3LTQuMTksMTAuMzFsLS4zNi41M2MtMS43MiwyLjU4LTQsNS40Ny01LjIzLDYuOS0xLjE4LTEuNDMtMy41MS00LjMyLTUuMjMtNi45TDEyLjQyLDI0Yy0xLjc3LTIuNjQtNC4yLTYuMjUtNC4yLTEwLjMxQTkuNzcsOS43NywwLDAsMSwyMi41Niw1LjA5YTcuNDUsNy40''@;'; + put 'put ''NSwwLDAsMSwuNTItMkExMS43NSwxMS43NSwwLDAsMCw2LjIyLDEzLjczYzAsNC42NywyLjYyLDguNTgsNC41NCwxMS40M2wuMzUuNTJhOTkuNjEsOTkuNjEsMCwwLDAsNi4xNCw4bC43Ni44OS43Ni0uODlhOTkuODIsOTkuODIsMCwwLDAsNi4xNC04bC4zNS0uNTNjMS45MS0yLjg1LDQuNTMt''@;'; + put 'put ''Ni43NSw0LjUzLTExLjQyQzI5Ljc4LDEzLjY1LDI5Ljc3LDEzLjU3LDI5Ljc3LDEzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2''@;'; + put 'put ''IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTEuNzksMTEuNzksMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYu''@;'; + put 'put ''MTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkExMS43OSwxMS43OSwwLDAsMCwxOCwyWm0wLDE3YTYuNTYsNi41NiwwLDEsMSw2LjU2LTYuNTZBNi41Niw2LjU2LDAsMCwxLDE4LDE5WiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjE4IiBjeT0iMTIuNDQiIHI9IjMuNzMiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJh''@;'; + put 'put ''ZGdlZCIgZD0iTTI5Ljc3LDEzLjQ5QTcuNDcsNy40NywwLDAsMSwyNC4zOCwxMWE2LjU4LDYuNTgsMCwxLDEtMS42MS0zLDcuNDIsNy40MiwwLDAsMSwuMzEtNC44NEExMS43NSwxMS43NSwwLDAsMCw2LjIyLDEzLjczYzAsNC42NywyLjYyLDguNTgsNC41NCwxMS40M2wuMzUuNTJhOTkuNjEs''@;'; + put 'put ''OTkuNjEsMCwwLDAsNi4xNCw4bC43Ni44OS43Ni0uODlhOTkuODIsOTkuODIsMCwwLDAsNi4xNC04bC4zNS0uNTNjMS45MS0yLjg1LDQuNTMtNi43NSw0LjUzLTExLjQyQzI5Ljc4LDEzLjY1LDI5Ljc3LDEzLjU3LDI5Ljc3LDEzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGN4PSIxOCIgY3k9IjEyLjQ0IiByPSIzLjczIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVCaWN5Y2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LjUsMjkuNjVBNi41MSw2LjUxLDAsMCwxLDIsMjMuMTVhNi4zOSw2LjM5LDAsMCwxLDYuNS02LjM2QTYuMzksNi4zOSwwLDAsMSwxNSwyMy4xNSw2''@;'; + put 'put ''LjUxLDYuNTEsMCwwLDEsOC41LDI5LjY1Wm0wLTExYTQuNSw0LjUsMCwxLDAsNC41LDQuNUE0LjUxLDQuNTEsMCwwLDAsOC41LDE4LjY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI3LjUsMjkuNjVhNi41MSw2LjUxLDAsMCwxLTYu''@;'; + put 'put ''NS02LjUsNi41LDYuNSwwLDAsMSwxMywwQTYuNTEsNi41MSwwLDAsMSwyNy41LDI5LjY1Wm0wLTExYTQuNSw0LjUsMCwxLDAsNC41LDQuNUE0LjUxLDQuNTEsMCwwLDAsMjcuNSwxOC42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0x''@;'; + put 'put ''OSwyNC42Nkg4YTEsMSwwLDAsMS0uODktMS40NWw1LTEwLDEuNzguOUw5LjYyLDIyLjczSDE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHJlY3QgeD0iMTMiIHk9IjEyLjY4IiB3aWR0aD0iMTEiIGhlaWdodD0iMS45MSIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTI4LDI0LjY2YTEsMSwwLDAsMS0uOTQtLjY2TDIyLjI5LDEwLjY2SDIwYTEsMSwwLDAsMS0xLTEsMSwxLDAsMCwxLDEtLjkzaDNhLjk0Ljk0LDAsMCwxLC45NC42bDUsMTRhMSwxLDAsMCwxLS42LDEuMjdBMSwxLDAsMCwx''@;'; + put 'put ''LDI4LDI0LjY2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTEzLDE0LjY2YTEsMSwwLDAsMS0uNzEtLjI5bC0xLjctMS43MUg4YTEsMSwwLDAsMS0xLTEsLjk0Ljk0LDAsMCwxLDEtMWgzYTEuMDgsMS4wOCwwLDAsMSwuNzUuMjdsMiwy''@;'; + put 'put ''YTEsMSwwLDAsMSwwLDEuNDFBMSwxLDAsMCwxLDEzLDE0LjY2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTE1LDIxLjljLTAuMi0yLTEuMi0zLjgtMi45LTQuOWwtMi41LDQuOUgxNXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTcuMiwyMy40Yy0wLjItMC4zLTAuMi0wLjcsMC0xbDMuMi02LjNjLTAuNi0wLjItMS4yLTAuMi0xLjgtMC4yQzUsMTUuOSwyLDE4LjgsMiwyMi40YzAsMy42LDIuOSw2LjUsNi41LDYuNVxuXHRjMywwLDUuNi0yLjEsNi4zLTVIOEM3LjcsMjMuOSw3''@;'; + put 'put ''LjMsMjMuNyw3LjIsMjMuNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE5LDIxLjloLTRjMCwwLjIsMCwwLjMsMCwwLjVjMCwwLjUtMC4xLDEtMC4yLDEuNUgxOVYyMS45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''MyIgLz48cGF0aCBkPSJNMjcuNSwxNS45Yy0wLjMsMC0wLjYsMC0wLjksMC4xbDIuNCw2LjZjMC4yLDAuNS0wLjEsMS4xLTAuNiwxLjNjLTAuMSwwLTAuMiwwLjEtMC4zLDAuMWMtMC40LDAtMC44LTAuMy0wLjktMC43bC0yLjQtNi43XG5cdGMtMy4yLDEuNi00LjUsNS41LTMsOC43YzEuNiwz''@;'; + put 'put ''LjIsNS41LDQuNSw4LjcsM2MzLjItMS42LDQuNS01LjUsMy04LjdDMzIuMiwxNy4zLDMwLDE1LjksMjcuNSwxNS45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJNMjQuNywxNi43YzAuNi0wLjMsMS4zLTAuNSwxLjktMC42bC0yLjctNy40QzIz''@;'; + put 'put ''LjgsOC4yLDIzLjQsOCwyMyw3LjloLTNjLTAuNiwwLTEsMC41LTEsMS4xYzAsMC41LDAuNCwwLjksMSwwLjlcblx0YzAsMCwwLDAsMCwwaDIuM2wwLjcsMmgtOS42bC0xLjctMS43QzExLjUsMTAuMSwxMS4zLDEwLDExLDEwSDhjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMi42bDEuMiwx''@;'; + put 'put ''LjJsLTEuNSwzXG5cdGMwLjYsMC4yLDEuMywwLjUsMS44LDAuOGwxLjYtMy4yaDEwTDI0LjcsMTYuN3oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+JyksTC5DbHJTaGFwZUJvYXQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjEsMjcuMUMyOCwyNywy''@;'; + put 'put ''Ni45LDI3LjQsMjYsMjguMmMtMS4xLDEuMS0yLjksMS4xLTQuMSwwYy0xLTAuNy0yLjEtMS4xLTMuMy0xLjFjLTEuMi0wLjEtMi40LDAuMy0zLjMsMS4xXG5cdFx0QzE0LjcsMjguNywxNCwyOSwxMy4yLDI5cy0xLjUtMC4zLTIuMS0wLjhjLTEtMC44LTIuMi0xLjItMy40LTEuMnMtMi40LDAu''@;'; + put 'put ''NC0zLjQsMS4yQzMuNywyOC43LDIuOCwyOSwyLDI5djJcblx0XHRjMS4zLDAuMSwyLjYtMC4zLDMuNi0xLjJDNi4yLDI5LjMsNy4xLDI5LDcuOSwyOWMwLjcsMCwxLjUsMC4zLDIuMSwwLjhjMS44LDEuNiw0LjYsMS42LDYuNSwwYzAuNi0wLjUsMS4zLTAuOCwyLjEtMC44XG5cdFx0YzAuNyww''@;'; + put 'put ''LDEuNCwwLjMsMiwwLjhjMS45LDEuNiw0LjYsMS42LDYuNSwwYzAuNS0wLjUsMS4zLTAuOCwyLTAuOGMwLjcsMCwxLjQsMC4zLDEuOSwwLjhjMC45LDAuNywxLjksMS4xLDMsMS4ydi0yXG5cdFx0Yy0xLDAtMS4yLTAuNC0xLjctMC44QzMxLjQsMjcuNSwzMC4zLDI3LjEsMjkuMSwyNy4xeiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYsMjNjMC0wLjYsMC41LTEsMS4xLTFIMzJsLTMuNSwzLjFoMC4yYzAuOCwwLDEuNiwwLjIsMi4yLDAuNWwyLjUtMi4ybDAuMi0wLjJjMC43LTAuOCwwLjYtMi4xLTAuMi0yLjhcblx0XHRDMzMs''@;'; + put 'put ''MjAuMiwzMi42LDIwLDMyLjEsMjBoLTI1Yy0xLjcsMC0zLDEuMy0zLDN2My4yYzAuNS0wLjUsMS4yLTAuOCwxLjktMS4xVjIzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTguOSwxOUgxNXYtNy44YzAtMC42LTAuMy0xLjItMC44LTEu''@;'; + put 'put ''NkMxMy4zLDguOSwxMiw5LjEsMTEuNCwxMGwtNC4xLDUuOWMtMC40LDAuNi0wLjQsMS40LTAuMSwyLjFDNy41LDE4LjYsOC4yLDE5LDguOSwxOVxuXHRcdHogTTEzLjEsMTEuMkwxMywxN0g4LjlMMTMuMSwxMS4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi''@;'; + put 'put ''IC8+PHBhdGggZD0iTTI2LDE4YzAuNC0wLjYsMC40LTEuNCwwLTJMMTkuNyw1LjZjLTAuNC0wLjYtMS0xLTEuNy0xYy0xLjEsMC0yLDAuOS0yLDJWMTloOC4zQzI1LDE5LDI1LjcsMTguNiwyNiwxOHogTTE3LjksNi42XG5cdFx0bDYuNCwxMC41aC02LjRWNi42eiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTM0LDMxYy0xLjEtMC4xLTIuMS0wLjUtMy0xLjJjLTAuNS0wLjUtMS4yLTAuOC0yLTAuOGMtMC43LDAtMS41LDAuMy0yLDAuOGMtMC45LDAuOC0yLDEuMS0zLjEsMS4xYy0xLjIsMC0yLjQtMC40LTMuMy0xLjFcblx0Yy0x''@;'; + put 'put ''LjItMS4xLTMtMS4xLTQuMSwwYy0wLjksMC44LTIuMSwxLjItMy40LDEuMmMtMS4yLDAtMi4zLTAuNC0zLjItMS4yYy0wLjYtMC41LTEuMy0wLjgtMi0wLjhjLTAuOCwwLTEuNywwLjMtMi4zLDAuOFxuXHRjLTEsMC44LTIuMywxLjItMy41LDEuMVYyOWMwLjgsMCwxLjctMC4zLDIuMy0wLjlj''@;'; + put 'put ''MS0wLjgsMi4yLTEuMiwzLjQtMS4xYzEuMiwwLDIuNCwwLjQsMy4zLDEuMmMxLjIsMS4xLDMsMS4xLDQuMiwwXG5cdGMxLjktMS42LDQuNy0xLjYsNi41LDBjMS4yLDEuMSwzLDEuMSw0LjEsMGMwLjktMC44LDIuMS0xLjIsMy4zLTEuMmMxLjEsMCwyLjIsMC40LDMsMS4yQzMyLjgsMjguNywz''@;'; + put 'put ''MywyOSwzNCwyOUwzNCwzMXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTQuMSwyNi4yYzAuNi0wLjUsMS4yLTAuOCwxLjktMVYyM2MwLTAuNiwwLjQtMS4xLDEtMS4xaDI1TDI4LjQsMjVoMC4yYzAuOCwwLDEuNiwwLjIsMi4yLDAuNWwyLjUt''@;'; + put 'put ''Mi4ybDAuMi0wLjJcblx0YzAuNy0wLjksMC41LTIuMS0wLjQtMi44QzMyLjksMjAuMSwzMi40LDIwLDMyLDIwSDdjLTEuNywwLTMsMS4zLTMsM0w0LjEsMjYuMkw0LjEsMjYuMnoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE0LjksMTguOUg4''@;'; + put 'put ''LjljLTEuMSwwLTItMC45LTItMmMwLTAuNCwwLjEtMC44LDAuNC0xLjJsNC4xLTUuOGMwLjYtMC45LDEuOS0xLjEsMi44LTAuNWMwLjUsMC40LDAuOCwxLDAuOCwxLjZWMTguOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTI0LjMsMTguOUgx''@;'; + put 'put ''NlY2LjRjMC0xLjEsMC45LTIsMi0yYzAuNywwLDEuMywwLjQsMS43LDFMMjYsMTUuOGMwLjYsMSwwLjIsMi4yLTAuNywyLjdDMjUsMTguNywyNC42LDE4LjgsMjQuMywxOC45XG5cdEwyNC4zLDE4Ljl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLEwuQ2xy''@;'; + put 'put ''U2hhcGVDYW1wZXJ2YW49KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTkuNSwyNEM5LjUsMjQsOS41LDI0LDkuNSwyNEM3LjYsMjQsNiwyNS42LDYsMjcuNWMwLDAsMCwwLDAsMEM2LDI5LjQsNy42LDMxLDkuNSwzMWMxLjksMCwzLjUtMS42LDMuNS0zLjVcblx0XHRTMTEuNCwyNCw5LjUs''@;'; + put 'put ''MjR6IE05LjUsMjlDOC43LDI5LDgsMjguMyw4LDI3LjVTOC43LDI2LDkuNSwyNnMxLjUsMC43LDEuNSwxLjVTMTAuMywyOSw5LjUsMjl6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjMuNSwyNEMyMy41LDI0LDIzLjUsMjQsMjMuNSwy''@;'; + put 'put ''NGMtMS45LDAtMy41LDEuNi0zLjUsMy41YzAsMCwwLDAsMCwwYzAsMS45LDEuNSwzLjUsMy41LDMuNWMxLjksMCwzLjUtMS42LDMuNS0zLjVcblx0XHRTMjUuNCwyNCwyMy41LDI0eiBNMjMuNSwyOWMtMC44LDAtMS41LTAuNy0xLjUtMS41czAuNy0xLjUsMS41LTEuNXMxLjUsMC43LDEuNSwx''@;'; + put 'put ''LjVTMjQuMywyOSwyMy41LDI5eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMzLDIwLjFWMjBoLTAuMWwtMy41LTUuNUMzMSwxMy42LDMyLDEyLDMyLDEwLjNWOS43QzMyLDcuMSwyOS45LDUsMjcuMyw1aC04LjVjLTEuOSwwLTMuNywx''@;'; + put 'put ''LjItNC40LDNINWMtMS43LDAtMywxLjMtMywzXG5cdFx0djE3aDJWMTFjMC0wLjYsMC40LTEsMS0xaDEwLjlMMTYsOS4yQzE2LjMsNy45LDE3LjQsNywxOC43LDdoOC41QzI4LjgsNywzMCw4LjIsMzAsOS43djAuNWMwLDEuNS0xLjIsMi43LTIuNywyLjdIMjR2OWg3Ljhcblx0XHRsMC4yLDAu''@;'; + put 'put ''M1YyNWMwLDAuNi0wLjQsMS0xLDFoLTJ2MmgyYzEuNywwLDMtMS4zLDMtM3YtMy4zTDMzLDIwLjF6IE0yNiwyMHYtNWgxLjVsMy4xLDVIMjZ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cmVjdCB4PSIxOSIgeT0iOSIgd2lkdGg9IjgiIGhlaWdodD0i''@;'; + put 'put ''MiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBvbHlnb24gcG9pbnRzPSIyMCwyMiAyMiwyMiAyMiwxMyAxNSwxMyAxNSwyOCAxNywyOCAxNywxNSAyMCwxNSBcdCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBh''@;'; + put 'put ''dGggZD0iTTYsMjBoN3YtN0g2VjIweiBNOCwxNWgzdjNIOFYxNXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik05LjUsMjRDNy42LDI0LDYsMjUuNiw2LDI3LjVTNy42LDMxLDkuNSwzMWMwLDAsMCwwLDAsMGMxLjksMCwzLjUtMS42LDMu''@;'; + put 'put ''NS0zLjVjMCwwLDAtMC4xLDAtMC4xQzEzLDI1LjUsMTEuNCwyNCw5LjUsMjR6IlxuXHRcdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjIzLjUiIGN5PSIyNy41IiByPSIzLjUiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTIiIC8+PHBhdGggZD0iTTI5LjUsMTQuNUMzMSwxMy42LDMyLDEyLDMyLDEwLjJWOS43YzAsMCwwLDAsMC0wLjFDMzIsNywyOS45LDUsMjcuMyw1aC04LjVjLTEuOSwwLTMuNywxLjItNC40LDNINWMtMS43LDAtMywxLjMtMywzdjE3XG5cdFx0aDJWMTFjMC0wLjYsMC40LTEsMS0xaDEwLjlM''@;'; + put 'put ''MTYsOS4yQzE2LjMsNy45LDE3LjQsNywxOC43LDdoOC41QzI4LjgsNywzMCw4LjIsMzAsOS43djAuNWMwLDEuNS0xLjIsMi43LTIuNywyLjdIMjdoLTN2OWg3Ljhcblx0XHRsMC4yLDAuM1YyNWMwLDAuNi0wLjQsMS0xLDFoLTJ2MmgyYzEuNywwLDMtMS4zLDMtM3YtMy4zTDI5LjUsMTQuNXoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHJlY3QgeD0iMTkiIHk9IjkiIHdpZHRoPSI3LjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cG9seWdvbiBwb2ludHM9IjIwLDIyIDIxLjksMjIgMjEuOSwxMyAx''@;'; + put 'put ''NSwxMyAxNSwyOCAxNi45LDI4IDE2LjksMTUgMjAsMTUgXHQiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+PHJlY3QgeD0iNiIgeT0iMTMiIHdpZHRoPSI2LjkiIGhlaWdodD0iNyIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz4nKSxM''@;'; + put 'put ''LkNsclNoYXBlQ2FyYXZhbj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTMuNSwyMUMxMSwyMSw5LDIzLDksMjUuNXMyLDQuNSw0LjUsNC41YzIuNSwwLDQuNS0yLDQuNS00LjVDMTgsMjMsMTYsMjEsMTMuNSwyMXogTTEzLjUsMjhjLTEuNCwwLTIuNS0xLjEtMi41LTIuNVxuXHRcdHMx''@;'; + put 'put ''LjEtMi41LDIuNS0yLjVzMi41LDEuMSwyLjUsMi41UzE0LjksMjgsMTMuNSwyOHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMywyNGgtMnYtNy41YzAtMC41LTAuMS0xLTAuNC0xLjVsLTQuMi03LjVjLTAuNS0xLTEuNS0xLjUtMi42''@;'; + put 'put ''LTEuNUg1QzMuMyw2LDIsNy4zLDIsOXYxNGMwLDEuNywxLjMsMywzLDNoMnYtMkg1XG5cdFx0Yy0wLjYsMC0xLTAuNC0xLTFWOWMwLTAuNiwwLjQtMSwxLTFoMTguOGMwLjQsMCwwLjcsMC4yLDAuOSwwLjVsNC4yLDcuNWMwLjEsMC4xLDAuMSwwLjMsMC4xLDAuNVYyNGgtNFYxMmgtN3Y4aDJ2''@;'; + put 'put ''LTZoM3YxMGgtM3YyaDEzXG5cdFx0YzAuNiwwLDEtMC40LDEtMVMzMy42LDI0LDMzLDI0eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE2LDEySDd2Nmg5VjEyeiBNMTQsMTZIOXYtMmg1VjE2eiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTEzLjUsMzBDMTEsMzAsOSwyOCw5LDI1LjVzMi00LjUsNC41LTQuNXM0LjUsMiw0LjUsNC41QzE4LDI4LDE2LDMwLDEzLjUsMzB6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMywy''@;'; + put 'put ''NGgtMnYtNy41YzAtMC41LTAuMS0xLTAuNC0xLjVsLTQuMi03LjVjLTAuNS0xLTEuNS0xLjUtMi42LTEuNUg1QzMuMyw2LDIsNy4zLDIsOXYxNGMwLDEuNywxLjMsMywzLDNoMnYtMkg1XG5cdGMtMC42LDAtMS0wLjQtMS0xVjljMC0wLjYsMC40LTEsMS0xaDE4LjhjMC40LDAsMC43LDAuMiww''@;'; + put 'put ''LjksMC41bDQuMiw3LjVjMC4xLDAuMSwwLjEsMC4zLDAuMSwwLjVWMjRoLTRWMTJoLTd2OGgydi02aDN2MTBoLTN2MmgxM1xuXHRjMC42LDAsMS0wLjQsMS0xUzMzLjYsMjQsMzMsMjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNiwxOEg3''@;'; + put 'put ''di02aDlWMTh6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVGZXJyeT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjksMjUuMWMtMS4yLDAtMi4zLDAuNC0zLjMsMS4xYzAsMCwwLDAsMCwwYy0xLjEsMS4xLTMsMS4xLTQuMSwwYy0w''@;'; + put 'put ''LjktMC44LTIuMS0xLjItMy4zLTEuMmMtMS4yLDAtMi4zLDAuNC0zLjIsMS4yXG5cdFx0Yy0xLjIsMS4xLTMsMS4xLTQuMiwwQzEwLDI1LjQsOC44LDI1LDcuNiwyNWMtMS4yLDAtMi40LDAuNC0zLjQsMS4xQzMuNiwyNi43LDIuOCwyNywyLDI3djJjMS4zLDAuMSwyLjUtMC40LDMuNC0xLjJc''@;'; + put 'put ''blx0XHRDNi4xLDI3LjMsNi45LDI3LDcuNywyN2MwLjgsMCwxLjUsMC4zLDIuMSwwLjhjMS45LDEuNiw0LjcsMS42LDYuNSwwYzAuNi0wLjUsMS4zLTAuOCwyLjEtMC44YzAuOCwwLDEuNSwwLjMsMi4xLDAuOFxuXHRcdGMxLjksMS42LDQuNiwxLjYsNi41LDBjMC41LTAuNSwxLjMtMC44LDIt''@;'; + put 'put ''MC44YzAuNywwLDEuNSwwLjMsMiwwLjhjMC45LDAuNywyLDEuMSwzLjEsMS4ydi0xLjljLTAuNywwLTEuNC0wLjMtMS45LTAuOVxuXHRcdEMzMS4zLDI1LjQsMzAuMSwyNSwyOSwyNS4xeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTUu''@;'; + put 'put ''OSwyMy4yVjIwSDMybC0zLjUsM2gwLjJjMC44LDAsMS42LDAuMiwyLjIsMC41bDIuNS0yLjJsMC4yLTAuMmMwLjUtMC42LDAuNS0xLjQsMC4yLTIuMWMtMC40LTAuNy0xLTEtMS44LTFoLTQuNFxuXHRcdEwyMi41LDExSDE3Yy0xLjcsMC0zLDEuMy0zLDNoLTJWOC4xSDZ2Ni4xYy0xLjIsMC40''@;'; + put 'put ''LTIsMS41LTIsMi44djEuMVYyMHY0LjNsMC4xLTAuMUM0LjYsMjMuNyw1LjIsMjMuNCw1LjksMjMuMnogTTgsMTBoMnY0SDhWMTB6XG5cdFx0IE02LDE3YzAtMC42LDAuNC0xLDEtMWg5di0yYzAtMC42LDAuNC0xLDEtMWg1bDAuNiwxSDE4djJoNS44bDEuMiwyLjFINlYxN3oiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yOC4yLDI1Yy0xLjIsMC0yLjQsMC40LTMuMywxLjJjLTEuMiwxLjEtMywxLjEtNC4xLDBjLTEuOS0xLjYtNC42LTEuNi02LjUsMGMtMS4yLDEuMS0yLjksMS4xLTQuMSwwXG5cdFx0Yy0wLjktMC44LTItMS4y''@;'; + put 'put ''LTMuMi0xLjJjLTEuMiwwLTIuMywwLjQtMy4yLDEuMkMzLjQsMjYuNywyLjcsMjcsMiwyN3YyYzEuMS0wLjEsMi4yLTAuNSwzLjEtMS4yQzUuNiwyNy4zLDYuMywyNyw3LDI3XG5cdFx0YzAuNywwLDEuNSwwLjMsMiwwLjhjMS45LDEuNiw0LjcsMS42LDYuNiwwYzAuNi0wLjUsMS4zLTAuOCwy''@;'; + put 'put ''LjEtMC44YzAuOCwwLDEuNSwwLjMsMi4xLDAuOGMxLjksMS42LDQuNywxLjYsNi41LDBcblx0XHRjMC42LTAuNSwxLjMtMC44LDIuMS0wLjhjMC44LDAsMS42LDAuMywyLjEsMC44YzAuOSwwLjgsMi4yLDEuMywzLjQsMS4ydi0yYy0wLjgsMC0xLjYtMC4zLTIuMi0wLjhDMzAuNywyNS40LDI5''@;'; + put 'put ''LjUsMjUsMjguMiwyNXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTUuOCwyMy4ydi0zLjNoMjYuMUwyOC40LDIzaDAuMmMwLjgsMCwxLjYsMC4yLDIuMiwwLjVsMi41LTIuMmwwLjEtMC4yYzAuNy0wLjksMC41LTIuMS0wLjQtMi44Yy0wLjMt''@;'; + put 'put ''MC4zLTAuOC0wLjQtMS4yLTAuNFxuXHRcdGgtNC4xbC01LjQtN2gtNS41Yy0xLjcsMC0zLDEuMy0zLDNoLTJWOEg2djYuMmMtMS4yLDAuNC0yLjEsMS41LTIuMSwyLjhsMCw3LjJsMC4xLDBDNC41LDIzLjcsNS4xLDIzLjQsNS44LDIzLjJ6IE0xNy45LDE0aDQuMlxuXHRcdGwxLjQsMmgtNS43''@;'; + put 'put ''VjE0eiBNNy45LDEwaDJ2NGgtMlYxMHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZVRyYWlsZXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LDE5LjJjLTMuMiwwLTUuOCwyLjYtNS44LDUuOHMyLjYsNS44LDUuOCw1LjhzNS44''@;'; + put 'put ''LTIuNiw1LjgtNS44UzE4LjIsMTkuMiwxNSwxOS4yeiBNMTUsMjkuMmMtMi4zLDAtNC4yLTEuOS00LjItNC4yXG5cdFx0czEuOS00LjIsNC4yLTQuMnM0LjIsMS45LDQuMiw0LjJTMTcuMywyOS4yLDE1LDI5LjJ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg''@;'; + put 'put ''Lz48cmVjdCB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMyw5SDJ2MTMuMWMwLDAsMCwwLDAsMEMyLDI0LjMsMy43LDI2LDUuOSwyNkg3di0ySDUuOWMtMSwwLTEuOC0wLjgt''@;'; + put 'put ''MS45LTEuOVYxNWgyMnY3LjFjMCwxLTAuOCwxLjgtMS45LDEuOUgyM3YyaDEuMVxuXHRcdGMwLDAsMCwwLDAsMGMyLjEsMCwzLjgtMS43LDMuOC0zLjlWMTFoNWMwLjYsMCwxLTAuNCwxLTFTMzMuNiw5LDMzLDl6IE0yNiwxM0g0di0yaDIyVjEzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMzLDlIMnYxMy4xYzAsMCwwLDAsMCwwQzIsMjQuMywzLjcsMjYsNS45LDI2SDd2LTJINS45Yy0xLDAtMS44LTAuOC0xLjktMS45VjE1aDIydjcuMWMwLDEtMC44LDEuOC0xLjksMS45SDIzdjJoMS4xXG5cdGMwLDAsMCwwLDAsMGMyLjEs''@;'; + put 'put ''MCwzLjgtMS43LDMuOC0zLjlWMTFoNWMwLjYsMCwxLTAuNCwxLTFTMzMuNiw5LDMzLDl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNSwxOS4yYy0zLjIsMC01LjgsMi42LTUuOCw1LjhzMi42LDUuOCw1LjgsNS44czUuOC0yLjYsNS44LTUu''@;'; + put 'put ''OGwwLDBDMjAuOCwyMS44LDE4LjIsMTkuMiwxNSwxOS4yeiBNMTYsMjZoLTJ2LTJoMlYyNnoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZU9uSG9saWRheT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguMDgsMi4zNGMtOC44Miww''@;'; + put 'put ''LTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNEExNy45MSwxNy45MSwwLDAsMCwyMywyOS42Nmw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuMzgtLjMsMSwxLDAsMCwwLC4xNi0uNTRWMjUuNjFhMTMsMTMsMCwwLDAsNC05LjI3QzM0LjA4LDguNjIsMjYuOSwyLjM0LDE4LjA4LDIuMzRaTTI4LjM3''@;'; + put 'put ''LDI0LjQ1YTEsMSwwLDAsMC0uMzIuNzN2NS4zNGwtNC4zOC0yLjc5YTEsMSwwLDAsMC0uODMtLjExLDE2LDE2LDAsMCwxLTQuNzYuNzJjLTcuNzIsMC0xNC01LjM4LTE0LTEyczYuMjgtMTIsMTQtMTIsMTQsNS4zOCwxNCwxMkExMS4xLDExLjEsMCwwLDEsMjguMzcsMjQuNDVaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuMSwxNS44MiwzMSwxNS42NywyOC41LDEzLjQ0YTMuMjUsMy4yNSwwLDAsMC0yLjM5LS44NGwtNS4zOC4zNC0zLjU5LTNhLjgxLjgxLDAsMCwwLS41Mi0uMTlIMTMuNTZhLjc4Ljc4LDAsMCwwLS42''@;'; + put 'put ''OS40Ljc3Ljc3LDAsMCwwLDAsLjc5bDEuMzYsMi40NC00LjcxLjI5LDEuMzEsMS41MiwxNS4zOS0xYTEuNjUsMS42NSwwLDAsMSwxLjIyLjQzbDIuMzYsMi4xM2EuMTEuMTEsMCwwLDEsMCwuMDdjMCwuMDYtLjA5LjA1LS4xLjA2SDIxLjgybC0uMzUuMzctNS4xOSw1LjUzSDE0LjY0bDIuNzMt''@;'; + put 'put ''NS45SDguNTRMNy4xMywxNC4xNiw2LjUxLDEzYS44LjgsMCwwLDAtMS0uMkEuODEuODEsMCwwLDAsNS4yLDEzLjlsMiwzLjk0YTEuMjEsMS4yMSwwLDAsMCwxLjA4LjY1aDYuNTdsLTEuOTQsNC4xOEExLjIsMS4yLDAsMCwwLDEzLDIzLjgzYTEuMjIsMS4yMiwwLDAsMCwxLC41NmgyLjQzYTEu''@;'; + put 'put ''MTcsMS4xNywwLDAsMCwuODgtLjM5bDUuMTgtNS41MWg3LjE2YTEuNjUsMS42NSwwLDAsMCwxLjUyLS45MUExLjc0LDEuNzQsMCwwLDAsMzEuMSwxNS44MlpNMTQuOTIsMTEuMzFoMS40MWwyLjA5LDEuNzdMMTYsMTMuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMiIvPlxuICBcbiAgPHBhdGggZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExNy45MSwxNy45MSwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuMzgtLjNBMSwxLDAsMCwwLDMwLDMyLjVWMjUuNzdhMTMsMTMsMCwwLDAsNC05LjI3''@;'; + put 'put ''QzM0LDguNzgsMjYuODIsMi41LDE4LDIuNVpNMjkuODQsMThIMjEuNTFhLjQyLjQyLDAsMCwwLS4zLjEzbC01LjMsNS42NGEuMzkuMzksMCwwLDEtLjI5LjEzSDEzLjE5YS40MS40MSwwLDAsMS0uMzctLjU4bDIuNDctNS4zMkg3LjQ2YS40Mi40MiwwLDAsMS0uMzYtLjIybC0yLjctNUg2LjI0''@;'; + put 'put ''YS41My41MywwLDAsMSwuMzkuMThsMS41NiwxLjY5YS4zOC4zOCwwLDAsMCwuMzMuMTRsNi4xOC0uMzgtMi0zLjU1aDIuODlhLjQ3LjQ3LDAsMCwxLC4zMS4xMUwxOS42MywxNGw2LjY5LS4zNWEyLjQ0LDIuNDQsMCwwLDEsMS44MS42M2wyLjQ3LDIuMjNBLjkyLjkyLDAsMCwxLDI5Ljg0LDE4''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAnKSxMLlRyYXZlbFNoYXBlcz17dHJ1Y2s6TC5DbHJTaGFwZVRydWNrLGFpcnBsYW5lOkwuQ2xyU2hhcGVBaXJwbGFuZSxjYXI6TC5DbHJTaGFwZUNhcixtYXA6TC5DbHJTaGFwZU1hcCxjb21wYXNzOkwuQ2xy''@;'; + put 'put ''U2hhcGVDb21wYXNzLCJtYXAtbWFya2VyIjpMLkNsclNoYXBlTWFwTWFya2VyLGJpY3ljbGU6TC5DbHJTaGFwZUJpY3ljbGUsYm9hdDpMLkNsclNoYXBlQm9hdCxjYW1wZXJ2YW46TC5DbHJTaGFwZUNhbXBlcnZhbixjYXJhdmFuOkwuQ2xyU2hhcGVDYXJhdmFuLGZlcnJ5OkwuQ2xyU2hhcGVG''@;'; + put 'put ''ZXJyeSx0cmFpbGVyOkwuQ2xyU2hhcGVUcmFpbGVyLCJvbi1ob2xpZGF5IjpMLkNsclNoYXBlT25Ib2xpZGF5fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5UcmF2ZWxTaGFwZXMsInBsYW5lIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVHJhdmVsU2hhcGVzLmFpcnBsYW5lKSksT2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KEwuVHJhdmVsU2hhcGVzLCJhdXRvIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVHJhdmVsU2hhcGVzLmNhcikpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUlj''@;'; + put 'put ''b25zLmFkZChMLlRyYXZlbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLmRlc2NyaXB0''@;'; + put 'put ''b3JDb25maWc9dm9pZCAwLEwuZGVzY3JpcHRvckNvbmZpZz1mdW5jdGlvbiBCKEUpe3JldHVybntlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpFfX19LCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyI6ZnVuY3Rp''@;'; + put 'put ''b24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLmNsckljb25TVkc9dm9pZCAwO0wuY2xySWNvblNWRz1mdW5jdGlvbiBVKFEpe3ZhciBaPSIiO3JldHVybiBRLmluZGV4T2YoIi0tYmFkZ2VkIik+LTEmJiha''@;'; + put 'put ''Kz0iY2FuLWJhZGdlICIpLFEuaW5kZXhPZigiLS1hbGVydGVkIik+LTEmJihaKz0iY2FuLWFsZXJ0ICIpLFEuaW5kZXhPZigiY2xyLWktc29saWQiKT4tMSYmKForPSJoYXMtc29saWQgIiksKFo/JzxzdmcgdmVyc2lvbj0iMS4xIiBjbGFzcz0iJytaKyciIHZpZXdCb3g9IjAgMCAzNiAzNiIg''@;'; + put 'put ''cHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmb2N1c2FibGU9ImZhbHNlIiByb2xlPSJpbWciPic6JzxzdmcgdmVyc2lvbj0i''@;'; + put 'put ''MS4xIiB2aWV3Qm94PSIwIDAgMzYgMzYiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiXG4gICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgZm9jdXNhYmxlPSJmYWxzZSIgcm9s''@;'; + put 'put ''ZT0iaW1nIj4nKStRKyI8L3N2Zz4ifX19KX0sMjU3MjQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT17fTtMLnIobWUpLEwuZChtZSx7Y2FuY2VsQW5pbWF0aW9uRnJhbWU6KCk9PkVaLGdldENvbXBhcmlzb25GdW5jdGlvbjooKT0+bGJlLGhhc0NhcHRpb25Qcm9ibGVtOigpPT5X''@;'; + put 'put ''aGUsaXNDbGFzc0xpc3RTdXBwb3J0ZWQ6KCk9PmliZSxpc0dldENvbXB1dGVkU3R5bGVTdXBwb3J0ZWQ6KCk9PmFiZSxpc1Bhc3NpdmVFdmVudFN1cHBvcnRlZDooKT0+c2JlLGlzVGV4dENvbnRlbnRTdXBwb3J0ZWQ6KCk9Pm9iZSxpc1RvdWNoU3VwcG9ydGVkOigpPT56aGUscmVxdWVzdEFu''@;'; + put 'put ''aW1hdGlvbkZyYW1lOigpPT5aaGV9KTt2YXIgQj17fTtMLnIoQiksTC5kKEIse2FycmF5QXZnOigpPT5ZamUsYXJyYXlFYWNoOigpPT5VcixhcnJheUZpbHRlcjooKT0+ZzQsYXJyYXlGbGF0dGVuOigpPT5mYmUsYXJyYXlNYXA6KCk9Pk9sLGFycmF5TWF4OigpPT5HamUsYXJyYXlNaW46KCk9''@;'; + put 'put ''PldqZSxhcnJheVJlZHVjZTooKT0+U3UsYXJyYXlTdW06KCk9PmNiZSxhcnJheVVuaXF1ZTooKT0+VWhlLGV4dGVuZEFycmF5OigpPT5ZaGUsZ2V0RGlmZmVyZW5jZU9mQXJyYXlzOigpPT5RaGUsZ2V0SW50ZXJzZWN0aW9uT2ZBcnJheXM6KCk9PlVqZSxnZXRVbmlvbk9mQXJyYXlzOigpPT5R''@;'; + put 'put ''amUscGl2b3Q6KCk9PlRaLHN0cmluZ1RvQXJyYXk6KCk9PkpoZSx0bzJkQXJyYXk6KCk9PnViZX0pO3ZhciBFPXt9O0wucihFKSxMLmQoRSx7Y2xvbmU6KCk9PmEzLGNyZWF0ZU9iamVjdFByb3BMaXN0ZW5lcjooKT0+d1MsZGVlcENsb25lOigpPT5naCxkZWVwRXh0ZW5kOigpPT5JWixkZWVw''@;'; + put 'put ''T2JqZWN0U2l6ZTooKT0+SnEsZGVmaW5lR2V0dGVyOigpPT5TZyxkdWNrU2NoZW1hOigpPT4kTCxleHRlbmQ6KCk9PkkxLGdldFByb3BlcnR5OigpPT5kYmUsaGFzT3duUHJvcGVydHk6KCk9Pm8xLGluaGVyaXQ6KCk9Pms5LGlzT2JqZWN0OigpPT54bCxpc09iamVjdEVxdWFsOigpPT5YaGUs''@;'; + put 'put ''bWl4aW46KCk9PlIyLG9iamVjdEVhY2g6KCk9PkdsLHNldFByb3BlcnR5OigpPT5RcX0pO3ZhciBNZT17fTtMLnIoTWUpLEwuZChNZSx7aXNDaHJvbWU6KCk9Pm1iZSxpc0Nocm9tZVdlYktpdDooKT0+dmJlLGlzRWRnZTooKT0+d2JlLGlzRWRnZVdlYktpdDooKT0+SmplLGlzRmlyZWZveDoo''@;'; + put 'put ''KT0+WHEsaXNGaXJlZm94V2ViS2l0OigpPT5BYmUsaXNJRTooKT0+YmJlLGlzSUU5OigpPT5fYmUsaXNJT1M6KCk9PktoZSxpc0lwYWRPUzooKT0+JGhlLGlzTGludXhPUzooKT0+S2plLGlzTVNCcm93c2VyOigpPT5YamUsaXNNYWNPUzooKT0+S3EsaXNNb2JpbGVCcm93c2VyOigpPT5iOCxp''@;'; + put 'put ''c1NhZmFyaTooKT0+eWJlLGlzV2luZG93c09TOigpPT5xaGUsc2V0QnJvd3Nlck1ldGE6KCk9PnBiZSxzZXRQbGF0Zm9ybU1ldGE6KCk9PmdiZX0pO3ZhciBVPXt9O0wucihVKSxMLmQoVSx7X2luamVjdFByb2R1Y3RJbmZvOigpPT5SYmUsaXNEZWZpbmVkOigpPT5Ubyxpc0VtcHR5OigpPT5k''@;'; + put 'put ''Yyxpc1JlZ0V4cDooKT0+VGJlLGlzVW5kZWZpbmVkOigpPT5hMSxzdHJpbmdpZnk6KCk9PmV1fSk7dmFyIFE9e307TC5yKFEpLEwuZChRLHtlcXVhbHNJZ25vcmVDYXNlOigpPT5uWmUsaXNQZXJjZW50VmFsdWU6KCk9PnIzZSxyYW5kb21TdHJpbmc6KCk9Pm4zZSxzYW5pdGl6ZTooKT0+cXEs''@;'; + put 'put ''c3RyaXBUYWdzOigpPT5vM2Usc3Vic3RpdHV0ZTooKT0+aTNlLHRvVXBwZXJDYXNlRmlyc3Q6KCk9PmFkfSk7dmFyIFo9e307TC5yKFopLEwuZChaLHtIVE1MX0NIQVJBQ1RFUlM6KCk9PlZiZSxhZGRDbGFzczooKT0+TzAsYWRkRXZlbnQ6KCk9PnVaZSxjbGVhclRleHRTZWxlY3Rpb246KCk9''@;'; + put 'put ''PnAzZSxjbG9zZXN0OigpPT5TOSxjbG9zZXN0RG93bjooKT0+UlosZW1wdHk6KCk9PkRwLGZhc3RJbm5lckhUTUw6KCk9Pl93LGZhc3RJbm5lclRleHQ6KCk9PkN3LGdldENhcmV0UG9zaXRpb246KCk9PmQzZSxnZXRDb21wdXRlZFN0eWxlOigpPT5rdyxnZXRDc3NUcmFuc2Zvcm06KCk9Pmha''@;'; + put 'put ''ZSxnZXRGcmFtZUVsZW1lbnQ6KCk9PkZiZSxnZXRQYXJlbnQ6KCk9PlBiZSxnZXRQYXJlbnRXaW5kb3c6KCk9PmwzZSxnZXRTY3JvbGxMZWZ0OigpPT50ZWUsZ2V0U2Nyb2xsVG9wOigpPT5CWixnZXRTY3JvbGxhYmxlRWxlbWVudDooKT0+UFosZ2V0U2Nyb2xsYmFyV2lkdGg6KCk9PkJjLGdl''@;'; + put 'put ''dFNlbGVjdGlvbkVuZFBvc2l0aW9uOigpPT5qYmUsZ2V0U2VsZWN0aW9uVGV4dDooKT0+WmJlLGdldFN0eWxlOigpPT5uZWUsZ2V0VHJpbW1pbmdDb250YWluZXI6KCk9PnJPLGdldFdpbmRvd1Njcm9sbExlZnQ6KCk9PmJTLGdldFdpbmRvd1Njcm9sbFRvcDooKT0+bk8saGFzQWNjZXNzVG9Q''@;'; + put 'put ''YXJlbnRXaW5kb3c6KCk9PmxaZSxoYXNDbGFzczooKT0+dGwsaGFzSG9yaXpvbnRhbFNjcm9sbGJhcjooKT0+R2JlLGhhc1ZlcnRpY2FsU2Nyb2xsYmFyOigpPT56YmUsaW5kZXg6KCk9PkhiZSxpbm5lckhlaWdodDooKT0+TTksaW5uZXJXaWR0aDooKT0+RlosaXNDaGlsZE9mOigpPT53dyxp''@;'; + put 'put ''c0RldGFjaGVkOigpPT52M2UsaXNJbnB1dDooKT0+VlosaXNPdXRzaWRlSW5wdXQ6KCk9Pm0zZSxpc1Zpc2libGU6KCk9PnRPLG1hdGNoZXNDU1NSdWxlczooKT0+c1plLG9mZnNldDooKT0+anUsb3V0ZXJIZWlnaHQ6KCk9PkQxLG91dGVyV2lkdGg6KCk9PkUyLG92ZXJsYXlDb250YWluc0Vs''@;'; + put 'put ''ZW1lbnQ6KCk9PmJ3LHJlbW92ZUNsYXNzOigpPT5wbCxyZW1vdmVFdmVudDooKT0+Y1plLHJlbW92ZVRleHROb2RlczooKT0+aDNlLHJlc2V0Q3NzVHJhbnNmb3JtOigpPT5OWixzZWxlY3RFbGVtZW50SWZBbGxvd2VkOigpPT5XYmUsc2V0Q2FyZXRQb3NpdGlvbjooKT0+SFosc2V0T3Zlcmxh''@;'; + put 'put ''eVBvc2l0aW9uOigpPT5yZWV9KTt2YXIgaWU9e307TC5yKGllKSxMLmQoaWUse2N1cnJ5OigpPT5VYmUsY3VycnlSaWdodDooKT0+Z1plLGRlYm91bmNlOigpPT5BM2UsZmFzdENhbGw6KCk9PmllZSxpc0Z1bmN0aW9uOigpPT5ZMixwYXJ0aWFsOigpPT55M2UscGlwZTooKT0+cFplLHRocm90''@;'; + put 'put ''dGxlOigpPT5ZYmUsdGhyb3R0bGVBZnRlckhpdHM6KCk9PmRaZX0pO3ZhciBsZT17fTtMLnIobGUpLEwuZChsZSx7S0VZX0NPREVTOigpPT5Rbyxpc0N0cmxLZXk6KCk9PnZaZSxpc0N0cmxNZXRhS2V5OigpPT5KYmUsaXNGdW5jdGlvbktleTooKT0+dzNlLGlzS2V5OigpPT5pTyxpc1ByaW50''@;'; + put 'put ''YWJsZUNoYXI6KCk9PlFiZX0pO3ZhciBZPXt9O0wucihZKSxMLmQoWSx7aXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6KCk9Pl9TLGlzTGVmdENsaWNrOigpPT5vZWUsaXNSaWdodENsaWNrOigpPT5TdyxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246KCk9Pl84fSk7dmFyIFc9e307TC5y''@;'; + put 'put ''KFcpLEwuZChXLHtfZGF0YVRvSFRNTDooKT0+RDNlLGh0bWxUb0dyaWRTZXR0aW5nczooKT0+dV9lLGluc3RhbmNlVG9IVE1MOigpPT5JM2V9KTt2YXIgTj17fTtMLnIoTiksTC5kKE4se2lzTnVtZXJpYzooKT0+djQsaXNOdW1lcmljTGlrZTooKT0+Y19lLHJhbmdlRWFjaDooKT0+aWEscmFu''@;'; + put 'put ''Z2VFYWNoUmV2ZXJzZTooKT0+c2VlLHZhbHVlQWNjb3JkaW5nUGVyY2VudDooKT0+UjNlfSk7dmFyIGVlPXt9O0wucihlZSksTC5kKGVlLHtjZWxsTWV0aG9kTG9va3VwRmFjdG9yeTooKT0+S1osY291bnRGaXJzdFJvd0tleXM6KCk9PlVkZSxjcmVhdGVFbXB0eVNwcmVhZHNoZWV0RGF0YToo''@;'; + put 'put ''KT0+VlFlLGNyZWF0ZVNwcmVhZHNoZWV0RGF0YTooKT0+SFFlLGNyZWF0ZVNwcmVhZHNoZWV0T2JqZWN0RGF0YTooKT0+TlFlLGRhdGFSb3dUb0NoYW5nZXNBcnJheTooKT0+WWRlLGlzQXJyYXlPZkFycmF5czooKT0+WENlLGlzQXJyYXlPZk9iamVjdHM6KCk9PktDZSxzcHJlYWRzaGVldENv''@;'; + put 'put ''bHVtbkluZGV4OigpPT5GUWUsc3ByZWFkc2hlZXRDb2x1bW5MYWJlbDooKT0+emVlfSk7dmFyIHE9e307TC5yKHEpLEwuZChxLHtDT05URVhUTUVOVV9JVEVNU19BRERfQ09NTUVOVDooKT0+TjRlLENPTlRFWFRNRU5VX0lURU1TX0FMSUdOTUVOVDooKT0+ejRlLENPTlRFWFRNRU5VX0lURU1T''@;'; + put 'put ''X0FMSUdOTUVOVF9CT1RUT006KCk9Plg0ZSxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfQ0VOVEVSOigpPT5XNGUsQ09OVEVYVE1FTlVfSVRFTVNfQUxJR05NRU5UX0pVU1RJRlk6KCk9PlU0ZSxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfTEVGVDooKT0+RzRlLENPTlRFWFRNRU5V''@;'; + put 'put ''X0lURU1TX0FMSUdOTUVOVF9NSURETEU6KCk9Pko0ZSxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfUklHSFQ6KCk9Plk0ZSxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfVE9QOigpPT5RNGUsQ09OVEVYVE1FTlVfSVRFTVNfQk9SREVSUzooKT0+SzRlLENPTlRFWFRNRU5VX0lURU1T''@;'; + put 'put ''X0JPUkRFUlNfQk9UVE9NOigpPT5lcGUsQ09OVEVYVE1FTlVfSVRFTVNfQk9SREVSU19MRUZUOigpPT50cGUsQ09OVEVYVE1FTlVfSVRFTVNfQk9SREVSU19SSUdIVDooKT0+cTRlLENPTlRFWFRNRU5VX0lURU1TX0JPUkRFUlNfVE9QOigpPT4kNGUsQ09OVEVYVE1FTlVfSVRFTVNfQ0xFQVJf''@;'; + put 'put ''Q09MVU1OOigpPT5MNGUsQ09OVEVYVE1FTlVfSVRFTVNfQ09QWTooKT0+TzRlLENPTlRFWFRNRU5VX0lURU1TX0NVVDooKT0+UjRlLENPTlRFWFRNRU5VX0lURU1TX0VESVRfQ09NTUVOVDooKT0+VjRlLENPTlRFWFRNRU5VX0lURU1TX0ZSRUVaRV9DT0xVTU46KCk9PkI0ZSxDT05URVhUTUVO''@;'; + put 'put ''VV9JVEVNU19ISURFX0NPTFVNTjooKT0+b3BlLENPTlRFWFRNRU5VX0lURU1TX0hJREVfUk9XOigpPT5scGUsQ09OVEVYVE1FTlVfSVRFTVNfSU5TRVJUX0xFRlQ6KCk9PlM0ZSxDT05URVhUTUVOVV9JVEVNU19JTlNFUlRfUklHSFQ6KCk9Pk00ZSxDT05URVhUTUVOVV9JVEVNU19NRVJHRV9D''@;'; + put 'put ''RUxMUzooKT0+RjRlLENPTlRFWFRNRU5VX0lURU1TX05FU1RFRF9ST1dTX0RFVEFDSF9DSElMRDooKT0+aXBlLENPTlRFWFRNRU5VX0lURU1TX05FU1RFRF9ST1dTX0lOU0VSVF9DSElMRDooKT0+cnBlLENPTlRFWFRNRU5VX0lURU1TX05PX0lURU1TOigpPT5fNGUsQ09OVEVYVE1FTlVfSVRF''@;'; + put 'put ''TVNfUkVBRF9PTkxZOigpPT5ENGUsQ09OVEVYVE1FTlVfSVRFTVNfUkVBRF9PTkxZX0NPTU1FTlQ6KCk9Plo0ZSxDT05URVhUTUVOVV9JVEVNU19SRURPOigpPT5JNGUsQ09OVEVYVE1FTlVfSVRFTVNfUkVNT1ZFX0JPUkRFUlM6KCk9Pm5wZSxDT05URVhUTUVOVV9JVEVNU19SRU1PVkVfQ09M''@;'; + put 'put ''VU1OOigpPT54NGUsQ09OVEVYVE1FTlVfSVRFTVNfUkVNT1ZFX0NPTU1FTlQ6KCk9Pmo0ZSxDT05URVhUTUVOVV9JVEVNU19SRU1PVkVfUk9XOigpPT5FNGUsQ09OVEVYVE1FTlVfSVRFTVNfUk9XX0FCT1ZFOigpPT5DNGUsQ09OVEVYVE1FTlVfSVRFTVNfUk9XX0JFTE9XOigpPT5rNGUsQ09O''@;'; + put 'put ''VEVYVE1FTlVfSVRFTVNfU0hPV19DT0xVTU46KCk9PmFwZSxDT05URVhUTUVOVV9JVEVNU19TSE9XX1JPVzooKT0+c3BlLENPTlRFWFRNRU5VX0lURU1TX1VORE86KCk9PlQ0ZSxDT05URVhUTUVOVV9JVEVNU19VTkZSRUVaRV9DT0xVTU46KCk9PlA0ZSxDT05URVhUTUVOVV9JVEVNU19VTk1F''@;'; + put 'put ''UkdFX0NFTExTOigpPT5INGUsQ09OVEVYVF9NRU5VX0lURU1TX05BTUVTUEFDRTooKT0+UmwsRklMVEVSU19CVVRUT05TX0NBTkNFTDooKT0+UnBlLEZJTFRFUlNfQlVUVE9OU19DTEVBUjooKT0+THBlLEZJTFRFUlNfQlVUVE9OU19PSzooKT0+T3BlLEZJTFRFUlNfQlVUVE9OU19QTEFDRUhP''@;'; + put 'put ''TERFUl9TRUFSQ0g6KCk9PkJwZSxGSUxURVJTX0JVVFRPTlNfUExBQ0VIT0xERVJfU0VDT05EX1ZBTFVFOigpPT5GcGUsRklMVEVSU19CVVRUT05TX1BMQUNFSE9MREVSX1ZBTFVFOigpPT5QcGUsRklMVEVSU19CVVRUT05TX1NFTEVDVF9BTEw6KCk9PkRwZSxGSUxURVJTX0NPTkRJVElPTlNf''@;'; + put 'put ''QUZURVI6KCk9PkNwZSxGSUxURVJTX0NPTkRJVElPTlNfQkVGT1JFOigpPT5rcGUsRklMVEVSU19DT05ESVRJT05TX0JFR0lOU19XSVRIOigpPT5kcGUsRklMVEVSU19DT05ESVRJT05TX0JFVFdFRU46KCk9PmJwZSxGSUxURVJTX0NPTkRJVElPTlNfQllfVkFMVUU6KCk9PklYZSxGSUxURVJT''@;'; + put 'put ''X0NPTkRJVElPTlNfQ09OVEFJTlM6KCk9PmdwZSxGSUxURVJTX0NPTkRJVElPTlNfRU1QVFk6KCk9PnVwZSxGSUxURVJTX0NPTkRJVElPTlNfRU5EU19XSVRIOigpPT5wcGUsRklMVEVSU19DT05ESVRJT05TX0VRVUFMOigpPT5mcGUsRklMVEVSU19DT05ESVRJT05TX0dSRUFURVJfVEhBTjoo''@;'; + put 'put ''KT0+dnBlLEZJTFRFUlNfQ09ORElUSU9OU19HUkVBVEVSX1RIQU5fT1JfRVFVQUw6KCk9PkFwZSxGSUxURVJTX0NPTkRJVElPTlNfTEVTU19USEFOOigpPT55cGUsRklMVEVSU19DT05ESVRJT05TX0xFU1NfVEhBTl9PUl9FUVVBTDooKT0+d3BlLEZJTFRFUlNfQ09ORElUSU9OU19OQU1FU1BB''@;'; + put 'put ''Q0U6KCk9PnR1LEZJTFRFUlNfQ09ORElUSU9OU19OT05FOigpPT5ldGUsRklMVEVSU19DT05ESVRJT05TX05PVF9CRVRXRUVOOigpPT5fcGUsRklMVEVSU19DT05ESVRJT05TX05PVF9DT05UQUlOOigpPT5tcGUsRklMVEVSU19DT05ESVRJT05TX05PVF9FTVBUWTooKT0+Y3BlLEZJTFRFUlNf''@;'; + put 'put ''Q09ORElUSU9OU19OT1RfRVFVQUw6KCk9PmhwZSxGSUxURVJTX0NPTkRJVElPTlNfVE9EQVk6KCk9PlNwZSxGSUxURVJTX0NPTkRJVElPTlNfVE9NT1JST1c6KCk9Pk1wZSxGSUxURVJTX0NPTkRJVElPTlNfWUVTVEVSREFZOigpPT5FcGUsRklMVEVSU19ESVZTX0ZJTFRFUl9CWV9DT05ESVRJ''@;'; + put 'put ''T046KCk9PnhwZSxGSUxURVJTX0RJVlNfRklMVEVSX0JZX1ZBTFVFOigpPT5UcGUsRklMVEVSU19MQUJFTFNfQ09OSlVOQ1RJT046KCk9PklwZSxGSUxURVJTX0xBQkVMU19ESVNKVU5DVElPTjooKT0+dHRlLEZJTFRFUlNfTkFNRVNQQUNFOigpPT5sMyxGSUxURVJTX1ZBTFVFU19CTEFOS19D''@;'; + put 'put ''RUxMUzooKT0+bnRlfSk7dmFyIEo9e307ZnVuY3Rpb24gc2UoZCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGR9TC5yKEopLEwuZChKLHtnZXROb3JtYWxpemVkRGF0ZTooKT0+ZE1lfSk7bGV0IG9lPSExO2NvbnN0IGNlPXtQcm9taXNlOnZvaWQgMCxzZXQgdXNlRGVwcmVjYXRlZFN5bmNo''@;'; + put 'put ''cm9ub3VzRXJyb3JIYW5kbGluZyhkKXtpZihkKXtjb25zdCBnPW5ldyBFcnJvcjtjb25zb2xlLndhcm4oIkRFUFJFQ0FURUQhIFJ4SlMgd2FzIHNldCB0byB1c2UgZGVwcmVjYXRlZCBzeW5jaHJvbm91cyBlcnJvciBoYW5kbGluZyBiZWhhdmlvciBieSBjb2RlIGF0OiBcbiIrZy5zdGFjayl9''@;'; + put 'put ''ZWxzZSBvZSYmY29uc29sZS5sb2coIlJ4SlM6IEJhY2sgdG8gYSBiZXR0ZXIgZXJyb3IgYmVoYXZpb3IuIFRoYW5rIHlvdS4gPDMiKTtvZT1kfSxnZXQgdXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZygpe3JldHVybiBvZX19O2Z1bmN0aW9uIGRlKGQpe3NldFRpbWVvdXQo''@;'; + put 'put ''KCk9Pnt0aHJvdyBkfSwwKX1jb25zdCB2ZT17Y2xvc2VkOiEwLG5leHQoZCl7fSxlcnJvcihkKXtpZihjZS51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nKXRocm93IGQ7ZGUoZCl9LGNvbXBsZXRlKCl7fX0sQWU9QXJyYXkuaXNBcnJheXx8KGQ9PmQmJiJudW1iZXIiPT10''@;'; + put 'put ''eXBlb2YgZC5sZW5ndGgpO2Z1bmN0aW9uIGtlKGQpe3JldHVybiBudWxsIT09ZCYmIm9iamVjdCI9PXR5cGVvZiBkfWNvbnN0IEllPSgoKT0+e2Z1bmN0aW9uIGQoZyl7cmV0dXJuIEVycm9yLmNhbGwodGhpcyksdGhpcy5tZXNzYWdlPWc/YCR7Zy5sZW5ndGh9IGVycm9ycyBvY2N1cnJlZCBk''@;'; + put 'put ''dXJpbmcgdW5zdWJzY3JpcHRpb246XG4ke2cubWFwKChoLHYpPT5gJHt2KzF9KSAke2gudG9TdHJpbmcoKX1gKS5qb2luKCJcbiAgIil9YDoiIix0aGlzLm5hbWU9IlVuc3Vic2NyaXB0aW9uRXJyb3IiLHRoaXMuZXJyb3JzPWcsdGhpc31yZXR1cm4gZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0''@;'; + put 'put ''ZShFcnJvci5wcm90b3R5cGUpLGR9KSgpO2NsYXNzIFRle2NvbnN0cnVjdG9yKGcpe3RoaXMuY2xvc2VkPSExLHRoaXMuX3BhcmVudE9yUGFyZW50cz1udWxsLHRoaXMuX3N1YnNjcmlwdGlvbnM9bnVsbCxnJiYodGhpcy5fY3RvclVuc3Vic2NyaWJlPSEwLHRoaXMuX3Vuc3Vic2NyaWJlPWcp''@;'; + put 'put ''fXVuc3Vic2NyaWJlKCl7bGV0IGc7aWYodGhpcy5jbG9zZWQpcmV0dXJuO2xldHtfcGFyZW50T3JQYXJlbnRzOmgsX2N0b3JVbnN1YnNjcmliZTp2LF91bnN1YnNjcmliZTp5LF9zdWJzY3JpcHRpb25zOkN9PXRoaXM7aWYodGhpcy5jbG9zZWQ9ITAsdGhpcy5fcGFyZW50T3JQYXJlbnRzPW51''@;'; + put 'put ''bGwsdGhpcy5fc3Vic2NyaXB0aW9ucz1udWxsLGggaW5zdGFuY2VvZiBUZSloLnJlbW92ZSh0aGlzKTtlbHNlIGlmKG51bGwhPT1oKWZvcihsZXQgST0wO0k8aC5sZW5ndGg7KytJKWhbSV0ucmVtb3ZlKHRoaXMpO2lmKHNlKHkpKXt2JiYodGhpcy5fdW5zdWJzY3JpYmU9dm9pZCAwKTt0cnl7''@;'; + put 'put ''eS5jYWxsKHRoaXMpfWNhdGNoKEkpe2c9SSBpbnN0YW5jZW9mIEllP0VlKEkuZXJyb3JzKTpbSV19fWlmKEFlKEMpKXtsZXQgST0tMSxqPUMubGVuZ3RoO2Zvcig7KytJPGo7KXtjb25zdCB1ZT1DW0ldO2lmKGtlKHVlKSl0cnl7dWUudW5zdWJzY3JpYmUoKX1jYXRjaChfZSl7Zz1nfHxbXSxf''@;'; + put 'put ''ZSBpbnN0YW5jZW9mIEllP2c9Zy5jb25jYXQoRWUoX2UuZXJyb3JzKSk6Zy5wdXNoKF9lKX19fWlmKGcpdGhyb3cgbmV3IEllKGcpfWFkZChnKXtsZXQgaD1nO2lmKCFnKXJldHVybiBUZS5FTVBUWTtzd2l0Y2godHlwZW9mIGcpe2Nhc2UiZnVuY3Rpb24iOmg9bmV3IFRlKGcpO2Nhc2Uib2Jq''@;'; + put 'put ''ZWN0IjppZihoPT09dGhpc3x8aC5jbG9zZWR8fCJmdW5jdGlvbiIhPXR5cGVvZiBoLnVuc3Vic2NyaWJlKXJldHVybiBoO2lmKHRoaXMuY2xvc2VkKXJldHVybiBoLnVuc3Vic2NyaWJlKCksaDtpZighKGggaW5zdGFuY2VvZiBUZSkpe2NvbnN0IEM9aDtoPW5ldyBUZSxoLl9zdWJzY3JpcHRp''@;'; + put 'put ''b25zPVtDXX1icmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIHRlYXJkb3duICIrZysiIGFkZGVkIHRvIFN1YnNjcmlwdGlvbi4iKX1sZXR7X3BhcmVudE9yUGFyZW50czp2fT1oO2lmKG51bGw9PT12KWguX3BhcmVudE9yUGFyZW50cz10aGlzO2Vsc2UgaWYodiBp''@;'; + put 'put ''bnN0YW5jZW9mIFRlKXtpZih2PT09dGhpcylyZXR1cm4gaDtoLl9wYXJlbnRPclBhcmVudHM9W3YsdGhpc119ZWxzZXtpZigtMSE9PXYuaW5kZXhPZih0aGlzKSlyZXR1cm4gaDt2LnB1c2godGhpcyl9Y29uc3QgeT10aGlzLl9zdWJzY3JpcHRpb25zO3JldHVybiBudWxsPT09eT90aGlzLl9z''@;'; + put 'put ''dWJzY3JpcHRpb25zPVtoXTp5LnB1c2goaCksaH1yZW1vdmUoZyl7Y29uc3QgaD10aGlzLl9zdWJzY3JpcHRpb25zO2lmKGgpe2NvbnN0IHY9aC5pbmRleE9mKGcpOy0xIT09diYmaC5zcGxpY2UodiwxKX19fXZhciBkO2Z1bmN0aW9uIEVlKGQpe3JldHVybiBkLnJlZHVjZSgoZyxoKT0+Zy5j''@;'; + put 'put ''b25jYXQoaCBpbnN0YW5jZW9mIEllP2guZXJyb3JzOmgpLFtdKX1UZS5FTVBUWT0oKGQ9bmV3IFRlKS5jbG9zZWQ9ITAsZCk7Y29uc3QgaGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2woInJ4U3Vic2NyaWJlciIpOiJAQHJ4U3Vic2NyaWJlcl8iK01hdGgucmFuZG9tKCk7Y2xh''@;'; + put 'put ''c3MgeiBleHRlbmRzIFRle2NvbnN0cnVjdG9yKGcsaCx2KXtzd2l0Y2goc3VwZXIoKSx0aGlzLnN5bmNFcnJvclZhbHVlPW51bGwsdGhpcy5zeW5jRXJyb3JUaHJvd249ITEsdGhpcy5zeW5jRXJyb3JUaHJvd2FibGU9ITEsdGhpcy5pc1N0b3BwZWQ9ITEsYXJndW1lbnRzLmxlbmd0aCl7Y2Fz''@;'; + put 'put ''ZSAwOnRoaXMuZGVzdGluYXRpb249dmU7YnJlYWs7Y2FzZSAxOmlmKCFnKXt0aGlzLmRlc3RpbmF0aW9uPXZlO2JyZWFrfWlmKCJvYmplY3QiPT10eXBlb2YgZyl7ZyBpbnN0YW5jZW9mIHo/KHRoaXMuc3luY0Vycm9yVGhyb3dhYmxlPWcuc3luY0Vycm9yVGhyb3dhYmxlLHRoaXMuZGVzdGlu''@;'; + put 'put ''YXRpb249ZyxnLmFkZCh0aGlzKSk6KHRoaXMuc3luY0Vycm9yVGhyb3dhYmxlPSEwLHRoaXMuZGVzdGluYXRpb249bmV3IG5lKHRoaXMsZykpO2JyZWFrfWRlZmF1bHQ6dGhpcy5zeW5jRXJyb3JUaHJvd2FibGU9ITAsdGhpcy5kZXN0aW5hdGlvbj1uZXcgbmUodGhpcyxnLGgsdil9fVtoZV0o''@;'; + put 'put ''KXtyZXR1cm4gdGhpc31zdGF0aWMgY3JlYXRlKGcsaCx2KXtjb25zdCB5PW5ldyB6KGcsaCx2KTtyZXR1cm4geS5zeW5jRXJyb3JUaHJvd2FibGU9ITEseX1uZXh0KGcpe3RoaXMuaXNTdG9wcGVkfHx0aGlzLl9uZXh0KGcpfWVycm9yKGcpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5pc1N0b3Bw''@;'; + put 'put ''ZWQ9ITAsdGhpcy5fZXJyb3IoZykpfWNvbXBsZXRlKCl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9jb21wbGV0ZSgpKX11bnN1YnNjcmliZSgpe3RoaXMuY2xvc2VkfHwodGhpcy5pc1N0b3BwZWQ9ITAsc3VwZXIudW5zdWJzY3JpYmUoKSl9X25leHQoZyl7dGhp''@;'; + put 'put ''cy5kZXN0aW5hdGlvbi5uZXh0KGcpfV9lcnJvcihnKXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGcpLHRoaXMudW5zdWJzY3JpYmUoKX1fY29tcGxldGUoKXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCksdGhpcy51bnN1YnNjcmliZSgpfV91bnN1YnNjcmliZUFuZFJlY3ljbGUoKXtjb25z''@;'; + put 'put ''dHtfcGFyZW50T3JQYXJlbnRzOmd9PXRoaXM7cmV0dXJuIHRoaXMuX3BhcmVudE9yUGFyZW50cz1udWxsLHRoaXMudW5zdWJzY3JpYmUoKSx0aGlzLmNsb3NlZD0hMSx0aGlzLmlzU3RvcHBlZD0hMSx0aGlzLl9wYXJlbnRPclBhcmVudHM9Zyx0aGlzfX1jbGFzcyBuZSBleHRlbmRzIHp7Y29u''@;'; + put 'put ''c3RydWN0b3IoZyxoLHYseSl7c3VwZXIoKSx0aGlzLl9wYXJlbnRTdWJzY3JpYmVyPWc7bGV0IEMsST10aGlzO3NlKGgpP0M9aDpoJiYoQz1oLm5leHQsdj1oLmVycm9yLHk9aC5jb21wbGV0ZSxoIT09dmUmJihJPU9iamVjdC5jcmVhdGUoaCksc2UoSS51bnN1YnNjcmliZSkmJnRoaXMuYWRk''@;'; + put 'put ''KEkudW5zdWJzY3JpYmUuYmluZChJKSksSS51bnN1YnNjcmliZT10aGlzLnVuc3Vic2NyaWJlLmJpbmQodGhpcykpKSx0aGlzLl9jb250ZXh0PUksdGhpcy5fbmV4dD1DLHRoaXMuX2Vycm9yPXYsdGhpcy5fY29tcGxldGU9eX1uZXh0KGcpe2lmKCF0aGlzLmlzU3RvcHBlZCYmdGhpcy5fbmV4''@;'; + put 'put ''dCl7Y29uc3R7X3BhcmVudFN1YnNjcmliZXI6aH09dGhpcztjZS51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nJiZoLnN5bmNFcnJvclRocm93YWJsZT90aGlzLl9fdHJ5T3JTZXRFcnJvcihoLHRoaXMuX25leHQsZykmJnRoaXMudW5zdWJzY3JpYmUoKTp0aGlzLl9fdHJ5''@;'; + put 'put ''T3JVbnN1Yih0aGlzLl9uZXh0LGcpfX1lcnJvcihnKXtpZighdGhpcy5pc1N0b3BwZWQpe2NvbnN0e19wYXJlbnRTdWJzY3JpYmVyOmh9PXRoaXMse3VzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6dn09Y2U7aWYodGhpcy5fZXJyb3IpdiYmaC5zeW5jRXJyb3JUaHJvd2Fi''@;'; + put 'put ''bGU/KHRoaXMuX190cnlPclNldEVycm9yKGgsdGhpcy5fZXJyb3IsZyksdGhpcy51bnN1YnNjcmliZSgpKToodGhpcy5fX3RyeU9yVW5zdWIodGhpcy5fZXJyb3IsZyksdGhpcy51bnN1YnNjcmliZSgpKTtlbHNlIGlmKGguc3luY0Vycm9yVGhyb3dhYmxlKXY/KGguc3luY0Vycm9yVmFsdWU9''@;'; + put 'put ''ZyxoLnN5bmNFcnJvclRocm93bj0hMCk6ZGUoZyksdGhpcy51bnN1YnNjcmliZSgpO2Vsc2V7aWYodGhpcy51bnN1YnNjcmliZSgpLHYpdGhyb3cgZztkZShnKX19fWNvbXBsZXRlKCl7aWYoIXRoaXMuaXNTdG9wcGVkKXtjb25zdHtfcGFyZW50U3Vic2NyaWJlcjpnfT10aGlzO2lmKHRoaXMu''@;'; + put 'put ''X2NvbXBsZXRlKXtjb25zdCBoPSgpPT50aGlzLl9jb21wbGV0ZS5jYWxsKHRoaXMuX2NvbnRleHQpO2NlLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJmcuc3luY0Vycm9yVGhyb3dhYmxlPyh0aGlzLl9fdHJ5T3JTZXRFcnJvcihnLGgpLHRoaXMudW5zdWJzY3JpYmUo''@;'; + put 'put ''KSk6KHRoaXMuX190cnlPclVuc3ViKGgpLHRoaXMudW5zdWJzY3JpYmUoKSl9ZWxzZSB0aGlzLnVuc3Vic2NyaWJlKCl9fV9fdHJ5T3JVbnN1YihnLGgpe3RyeXtnLmNhbGwodGhpcy5fY29udGV4dCxoKX1jYXRjaCh2KXtpZih0aGlzLnVuc3Vic2NyaWJlKCksY2UudXNlRGVwcmVjYXRlZFN5''@;'; + put 'put ''bmNocm9ub3VzRXJyb3JIYW5kbGluZyl0aHJvdyB2O2RlKHYpfX1fX3RyeU9yU2V0RXJyb3IoZyxoLHYpe2lmKCFjZS51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nKXRocm93IG5ldyBFcnJvcigiYmFkIGNhbGwiKTt0cnl7aC5jYWxsKHRoaXMuX2NvbnRleHQsdil9Y2F0''@;'; + put 'put ''Y2goeSl7cmV0dXJuIGNlLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc/KGcuc3luY0Vycm9yVmFsdWU9eSxnLnN5bmNFcnJvclRocm93bj0hMCwhMCk6KGRlKHkpLCEwKX1yZXR1cm4hMX1fdW5zdWJzY3JpYmUoKXtjb25zdHtfcGFyZW50U3Vic2NyaWJlcjpnfT10aGlz''@;'; + put 'put ''O3RoaXMuX2NvbnRleHQ9bnVsbCx0aGlzLl9wYXJlbnRTdWJzY3JpYmVyPW51bGwsZy51bnN1YnNjcmliZSgpfX1jb25zdCBQPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIjtmdW5jdGlvbiBWKGQpe3JldHVybiBkfWZ1bmN0aW9u''@;'; + put 'put ''IFMoZCl7cmV0dXJuIDA9PT1kLmxlbmd0aD9WOjE9PT1kLmxlbmd0aD9kWzBdOmZ1bmN0aW9uKGgpe3JldHVybiBkLnJlZHVjZSgodix5KT0+eSh2KSxoKX19bGV0IEY9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLl9pc1NjYWxhcj0hMSxoJiYodGhpcy5fc3Vic2NyaWJlPWgp''@;'; + put 'put ''fWxpZnQoaCl7Y29uc3Qgdj1uZXcgZDtyZXR1cm4gdi5zb3VyY2U9dGhpcyx2Lm9wZXJhdG9yPWgsdn1zdWJzY3JpYmUoaCx2LHkpe2NvbnN0e29wZXJhdG9yOkN9PXRoaXMsST1mdW5jdGlvbiB4KGQsZyxoKXtpZihkKXtpZihkIGluc3RhbmNlb2YgeilyZXR1cm4gZDtpZihkW2hlXSlyZXR1''@;'; + put 'put ''cm4gZFtoZV0oKX1yZXR1cm4gZHx8Z3x8aD9uZXcgeihkLGcsaCk6bmV3IHoodmUpfShoLHYseSk7aWYoSS5hZGQoQz9DLmNhbGwoSSx0aGlzLnNvdXJjZSk6dGhpcy5zb3VyY2V8fGNlLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJiFJLnN5bmNFcnJvclRocm93YWJs''@;'; + put 'put ''ZT90aGlzLl9zdWJzY3JpYmUoSSk6dGhpcy5fdHJ5U3Vic2NyaWJlKEkpKSxjZS51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nJiZJLnN5bmNFcnJvclRocm93YWJsZSYmKEkuc3luY0Vycm9yVGhyb3dhYmxlPSExLEkuc3luY0Vycm9yVGhyb3duKSl0aHJvdyBJLnN5bmNF''@;'; + put 'put ''cnJvclZhbHVlO3JldHVybiBJfV90cnlTdWJzY3JpYmUoaCl7dHJ5e3JldHVybiB0aGlzLl9zdWJzY3JpYmUoaCl9Y2F0Y2godil7Y2UudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyYmKGguc3luY0Vycm9yVGhyb3duPSEwLGguc3luY0Vycm9yVmFsdWU9diksZnVuY3Rp''@;'; + put 'put ''b24gdGUoZCl7Zm9yKDtkOyl7Y29uc3R7Y2xvc2VkOmcsZGVzdGluYXRpb246aCxpc1N0b3BwZWQ6dn09ZDtpZihnfHx2KXJldHVybiExO2Q9aCYmaCBpbnN0YW5jZW9mIHo/aDpudWxsfXJldHVybiEwfShoKT9oLmVycm9yKHYpOmNvbnNvbGUud2Fybih2KX19Zm9yRWFjaChoLHYpe3JldHVy''@;'; + put 'put ''biBuZXcodj15ZSh2KSkoKHksQyk9PntsZXQgSTtJPXRoaXMuc3Vic2NyaWJlKGo9Pnt0cnl7aChqKX1jYXRjaCh1ZSl7Qyh1ZSksSSYmSS51bnN1YnNjcmliZSgpfX0sQyx5KX0pfV9zdWJzY3JpYmUoaCl7Y29uc3R7c291cmNlOnZ9PXRoaXM7cmV0dXJuIHYmJnYuc3Vic2NyaWJlKGgpfVtQ''@;'; + put 'put ''XSgpe3JldHVybiB0aGlzfXBpcGUoLi4uaCl7cmV0dXJuIDA9PT1oLmxlbmd0aD90aGlzOlMoaCkodGhpcyl9dG9Qcm9taXNlKGgpe3JldHVybiBuZXcoaD15ZShoKSkoKHYseSk9PntsZXQgQzt0aGlzLnN1YnNjcmliZShJPT5DPUksST0+eShJKSwoKT0+dihDKSl9KX19cmV0dXJuIGQuY3Jl''@;'; + put 'put ''YXRlPWc9Pm5ldyBkKGcpLGR9KSgpO2Z1bmN0aW9uIHllKGQpe2lmKGR8fChkPWNlLlByb21pc2V8fFByb21pc2UpLCFkKXRocm93IG5ldyBFcnJvcigibm8gUHJvbWlzZSBpbXBsIGZvdW5kIik7cmV0dXJuIGR9Y29uc3QgRGU9KCgpPT57ZnVuY3Rpb24gZCgpe3JldHVybiBFcnJvci5jYWxs''@;'; + put 'put ''KHRoaXMpLHRoaXMubWVzc2FnZT0ib2JqZWN0IHVuc3Vic2NyaWJlZCIsdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpc31yZXR1cm4gZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLGR9KSgpO2NsYXNzIFBlIGV4dGVuZHMgVGV7Y29uc3Ry''@;'; + put 'put ''dWN0b3IoZyxoKXtzdXBlcigpLHRoaXMuc3ViamVjdD1nLHRoaXMuc3Vic2NyaWJlcj1oLHRoaXMuY2xvc2VkPSExfXVuc3Vic2NyaWJlKCl7aWYodGhpcy5jbG9zZWQpcmV0dXJuO3RoaXMuY2xvc2VkPSEwO2NvbnN0IGc9dGhpcy5zdWJqZWN0LGg9Zy5vYnNlcnZlcnM7aWYodGhpcy5zdWJq''@;'; + put 'put ''ZWN0PW51bGwsIWh8fDA9PT1oLmxlbmd0aHx8Zy5pc1N0b3BwZWR8fGcuY2xvc2VkKXJldHVybjtjb25zdCB2PWguaW5kZXhPZih0aGlzLnN1YnNjcmliZXIpOy0xIT09diYmaC5zcGxpY2UodiwxKX19Y2xhc3MgUWUgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcpe3N1cGVyKGcpLHRoaXMuZGVz''@;'; + put 'put ''dGluYXRpb249Z319bGV0ICRlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBGe2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLm9ic2VydmVycz1bXSx0aGlzLmNsb3NlZD0hMSx0aGlzLmlzU3RvcHBlZD0hMSx0aGlzLmhhc0Vycm9yPSExLHRoaXMudGhyb3duRXJyb3I9bnVsbH1baGVdKCl7cmV0''@;'; + put 'put ''dXJuIG5ldyBRZSh0aGlzKX1saWZ0KGgpe2NvbnN0IHY9bmV3IGd0KHRoaXMsdGhpcyk7cmV0dXJuIHYub3BlcmF0b3I9aCx2fW5leHQoaCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO2lmKCF0aGlzLmlzU3RvcHBlZCl7Y29uc3R7b2JzZXJ2ZXJzOnZ9PXRoaXMseT12Lmxlbmd0aCxD''@;'; + put 'put ''PXYuc2xpY2UoKTtmb3IobGV0IEk9MDtJPHk7SSsrKUNbSV0ubmV4dChoKX19ZXJyb3IoaCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO3RoaXMuaGFzRXJyb3I9ITAsdGhpcy50aHJvd25FcnJvcj1oLHRoaXMuaXNTdG9wcGVkPSEwO2NvbnN0e29ic2VydmVyczp2fT10aGlzLHk9di5s''@;'; + put 'put ''ZW5ndGgsQz12LnNsaWNlKCk7Zm9yKGxldCBJPTA7STx5O0krKylDW0ldLmVycm9yKGgpO3RoaXMub2JzZXJ2ZXJzLmxlbmd0aD0wfWNvbXBsZXRlKCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO3RoaXMuaXNTdG9wcGVkPSEwO2NvbnN0e29ic2VydmVyczpofT10aGlzLHY9aC5sZW5n''@;'; + put 'put ''dGgseT1oLnNsaWNlKCk7Zm9yKGxldCBDPTA7Qzx2O0MrKyl5W0NdLmNvbXBsZXRlKCk7dGhpcy5vYnNlcnZlcnMubGVuZ3RoPTB9dW5zdWJzY3JpYmUoKXt0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLmNsb3NlZD0hMCx0aGlzLm9ic2VydmVycz1udWxsfV90cnlTdWJzY3JpYmUoaCl7aWYodGhp''@;'; + put 'put ''cy5jbG9zZWQpdGhyb3cgbmV3IERlO3JldHVybiBzdXBlci5fdHJ5U3Vic2NyaWJlKGgpfV9zdWJzY3JpYmUoaCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO3JldHVybiB0aGlzLmhhc0Vycm9yPyhoLmVycm9yKHRoaXMudGhyb3duRXJyb3IpLFRlLkVNUFRZKTp0aGlzLmlzU3RvcHBl''@;'; + put 'put ''ZD8oaC5jb21wbGV0ZSgpLFRlLkVNUFRZKToodGhpcy5vYnNlcnZlcnMucHVzaChoKSxuZXcgUGUodGhpcyxoKSl9YXNPYnNlcnZhYmxlKCl7Y29uc3QgaD1uZXcgRjtyZXR1cm4gaC5zb3VyY2U9dGhpcyxofX1yZXR1cm4gZC5jcmVhdGU9KGcsaCk9Pm5ldyBndChnLGgpLGR9KSgpO2NsYXNz''@;'; + put 'put ''IGd0IGV4dGVuZHMgJGV7Y29uc3RydWN0b3IoZyxoKXtzdXBlcigpLHRoaXMuZGVzdGluYXRpb249Zyx0aGlzLnNvdXJjZT1ofW5leHQoZyl7Y29uc3R7ZGVzdGluYXRpb246aH09dGhpcztoJiZoLm5leHQmJmgubmV4dChnKX1lcnJvcihnKXtjb25zdHtkZXN0aW5hdGlvbjpofT10aGlzO2gm''@;'; + put 'put ''JmguZXJyb3ImJnRoaXMuZGVzdGluYXRpb24uZXJyb3IoZyl9Y29tcGxldGUoKXtjb25zdHtkZXN0aW5hdGlvbjpnfT10aGlzO2cmJmcuY29tcGxldGUmJnRoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKX1fc3Vic2NyaWJlKGcpe2NvbnN0e3NvdXJjZTpofT10aGlzO3JldHVybiBoP3RoaXMu''@;'; + put 'put ''c291cmNlLnN1YnNjcmliZShnKTpUZS5FTVBUWX19ZnVuY3Rpb24gd3QoZCl7cmV0dXJuIGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLnNjaGVkdWxlfWZ1bmN0aW9uIHZ0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uKHYpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBkKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''ImFyZ3VtZW50IGlzIG5vdCBhIGZ1bmN0aW9uLiBBcmUgeW91IGxvb2tpbmcgZm9yIGBtYXBUbygpYD8iKTtyZXR1cm4gdi5saWZ0KG5ldyBBdChkLGcpKX19Y2xhc3MgQXR7Y29uc3RydWN0b3IoZyxoKXt0aGlzLnByb2plY3Q9Zyx0aGlzLnRoaXNBcmc9aH1jYWxsKGcsaCl7cmV0dXJuIGgu''@;'; + put 'put ''c3Vic2NyaWJlKG5ldyBtdChnLHRoaXMucHJvamVjdCx0aGlzLnRoaXNBcmcpKX19Y2xhc3MgbXQgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCx2KXtzdXBlcihnKSx0aGlzLnByb2plY3Q9aCx0aGlzLmNvdW50PTAsdGhpcy50aGlzQXJnPXZ8fHRoaXN9X25leHQoZyl7bGV0IGg7dHJ5e2g9''@;'; + put 'put ''dGhpcy5wcm9qZWN0LmNhbGwodGhpcy50aGlzQXJnLGcsdGhpcy5jb3VudCsrKX1jYXRjaCh2KXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHYpfXRoaXMuZGVzdGluYXRpb24ubmV4dChoKX19Y29uc3QgaHQ9ZD0+Zz0+e2ZvcihsZXQgaD0wLHY9ZC5sZW5ndGg7aDx2JiYh''@;'; + put 'put ''Zy5jbG9zZWQ7aCsrKWcubmV4dChkW2hdKTtnLmNvbXBsZXRlKCl9LF90PWZ1bmN0aW9uIG9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yP1N5bWJvbC5pdGVyYXRvcjoiQEBpdGVyYXRvciJ9KCksTHQ9ZD0+ZCYmIm51bWJlciI9PXR5cGVvZiBk''@;'; + put 'put ''Lmxlbmd0aCYmImZ1bmN0aW9uIiE9dHlwZW9mIGQ7ZnVuY3Rpb24gQ3QoZCl7cmV0dXJuISFkJiYiZnVuY3Rpb24iIT10eXBlb2YgZC5zdWJzY3JpYmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLnRoZW59Y29uc3QgZnQ9ZD0+e2lmKGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkW1BdKXJldHVybihk''@;'; + put 'put ''PT5nPT57Y29uc3QgaD1kW1BdKCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGguc3Vic2NyaWJlKXRocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIik7cmV0dXJuIGguc3Vic2NyaWJlKGcpfSko''@;'; + put 'put ''ZCk7aWYoTHQoZCkpcmV0dXJuIGh0KGQpO2lmKEN0KGQpKXJldHVybihkPT5nPT4oZC50aGVuKGg9PntnLmNsb3NlZHx8KGcubmV4dChoKSxnLmNvbXBsZXRlKCkpfSxoPT5nLmVycm9yKGgpKS50aGVuKG51bGwsZGUpLGcpKShkKTtpZihkJiYiZnVuY3Rpb24iPT10eXBlb2YgZFtfdF0pcmV0''@;'; + put 'put ''dXJuKGQ9Pmc9Pntjb25zdCBoPWRbX3RdKCk7Zm9yKDs7KXtsZXQgdjt0cnl7dj1oLm5leHQoKX1jYXRjaCh5KXtyZXR1cm4gZy5lcnJvcih5KSxnfWlmKHYuZG9uZSl7Zy5jb21wbGV0ZSgpO2JyZWFrfWlmKGcubmV4dCh2LnZhbHVlKSxnLmNsb3NlZClicmVha31yZXR1cm4iZnVuY3Rpb24i''@;'; + put 'put ''PT10eXBlb2YgaC5yZXR1cm4mJmcuYWRkKCgpPT57aC5yZXR1cm4mJmgucmV0dXJuKCl9KSxnfSkoZCk7e2NvbnN0IGg9YFlvdSBwcm92aWRlZCAke2tlKGQpPyJhbiBpbnZhbGlkIG9iamVjdCI6YCcke2R9J2B9IHdoZXJlIGEgc3RyZWFtIHdhcyBleHBlY3RlZC4gWW91IGNhbiBwcm92aWRl''@;'; + put 'put ''IGFuIE9ic2VydmFibGUsIFByb21pc2UsIEFycmF5LCBvciBJdGVyYWJsZS5gO3Rocm93IG5ldyBUeXBlRXJyb3IoaCl9fTtmdW5jdGlvbiBVZShkLGcpe3JldHVybiBuZXcgRihoPT57Y29uc3Qgdj1uZXcgVGU7bGV0IHk9MDtyZXR1cm4gdi5hZGQoZy5zY2hlZHVsZShmdW5jdGlvbigpe3kh''@;'; + put 'put ''PT1kLmxlbmd0aD8oaC5uZXh0KGRbeSsrXSksaC5jbG9zZWR8fHYuYWRkKHRoaXMuc2NoZWR1bGUoKSkpOmguY29tcGxldGUoKX0pKSx2fSl9ZnVuY3Rpb24gZG4oZCxnKXtyZXR1cm4gZz9mdW5jdGlvbiBnbihkLGcpe2lmKG51bGwhPWQpe2lmKGZ1bmN0aW9uIGp0KGQpe3JldHVybiBkJiYi''@;'; + put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgZFtQXX0oZCkpcmV0dXJuIGZ1bmN0aW9uIEh0KGQsZyl7cmV0dXJuIG5ldyBGKGg9Pntjb25zdCB2PW5ldyBUZTtyZXR1cm4gdi5hZGQoZy5zY2hlZHVsZSgoKT0+e2NvbnN0IHk9ZFtQXSgpO3YuYWRkKHkuc3Vic2NyaWJlKHtuZXh0KEMpe3YuYWRkKGcuc2No''@;'; + put 'put ''ZWR1bGUoKCk9PmgubmV4dChDKSkpfSxlcnJvcihDKXt2LmFkZChnLnNjaGVkdWxlKCgpPT5oLmVycm9yKEMpKSl9LGNvbXBsZXRlKCl7di5hZGQoZy5zY2hlZHVsZSgoKT0+aC5jb21wbGV0ZSgpKSl9fSkpfSkpLHZ9KX0oZCxnKTtpZihDdChkKSlyZXR1cm4gZnVuY3Rpb24gR2UoZCxnKXty''@;'; + put 'put ''ZXR1cm4gbmV3IEYoaD0+e2NvbnN0IHY9bmV3IFRlO3JldHVybiB2LmFkZChnLnNjaGVkdWxlKCgpPT5kLnRoZW4oeT0+e3YuYWRkKGcuc2NoZWR1bGUoKCk9PntoLm5leHQoeSksdi5hZGQoZy5zY2hlZHVsZSgoKT0+aC5jb21wbGV0ZSgpKSl9KSl9LHk9Pnt2LmFkZChnLnNjaGVkdWxlKCgp''@;'; + put 'put ''PT5oLmVycm9yKHkpKSl9KSkpLHZ9KX0oZCxnKTtpZihMdChkKSlyZXR1cm4gVWUoZCxnKTtpZihmdW5jdGlvbiBRdChkKXtyZXR1cm4gZCYmImZ1bmN0aW9uIj09dHlwZW9mIGRbX3RdfShkKXx8InN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBmdW5jdGlvbiB5dChkLGcpe2lmKCFkKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTtyZXR1cm4gbmV3IEYoaD0+e2NvbnN0IHY9bmV3IFRlO2xldCB5O3JldHVybiB2LmFkZCgoKT0+e3kmJiJmdW5jdGlvbiI9PXR5cGVvZiB5LnJldHVybiYmeS5yZXR1cm4oKX0pLHYuYWRkKGcuc2NoZWR1bGUoKCk9Pnt5PWRb''@;'; + put 'put ''X3RdKCksdi5hZGQoZy5zY2hlZHVsZShmdW5jdGlvbigpe2lmKGguY2xvc2VkKXJldHVybjtsZXQgQyxJO3RyeXtjb25zdCBqPXkubmV4dCgpO0M9ai52YWx1ZSxJPWouZG9uZX1jYXRjaChqKXtyZXR1cm4gdm9pZCBoLmVycm9yKGopfUk/aC5jb21wbGV0ZSgpOihoLm5leHQoQyksdGhpcy5z''@;'; + put 'put ''Y2hlZHVsZSgpKX0pKX0pKSx2fSl9KGQsZyl9dGhyb3cgbmV3IFR5cGVFcnJvcigobnVsbCE9PWQmJnR5cGVvZiBkfHxkKSsiIGlzIG5vdCBvYnNlcnZhYmxlIil9KGQsZyk6ZCBpbnN0YW5jZW9mIEY/ZDpuZXcgRihmdChkKSl9Y2xhc3MgeW4gZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcpe3N1''@;'; + put 'put ''cGVyKCksdGhpcy5wYXJlbnQ9Z31fbmV4dChnKXt0aGlzLnBhcmVudC5ub3RpZnlOZXh0KGcpfV9lcnJvcihnKXt0aGlzLnBhcmVudC5ub3RpZnlFcnJvcihnKSx0aGlzLnVuc3Vic2NyaWJlKCl9X2NvbXBsZXRlKCl7dGhpcy5wYXJlbnQubm90aWZ5Q29tcGxldGUoKSx0aGlzLnVuc3Vic2Ny''@;'; + put 'put ''aWJlKCl9fWNsYXNzIE5uIGV4dGVuZHMgentub3RpZnlOZXh0KGcpe3RoaXMuZGVzdGluYXRpb24ubmV4dChnKX1ub3RpZnlFcnJvcihnKXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGcpfW5vdGlmeUNvbXBsZXRlKCl7dGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfX1mdW5jdGlvbiBlcihk''@;'; + put 'put ''LGcpe2lmKGcuY2xvc2VkKXJldHVybjtpZihkIGluc3RhbmNlb2YgRilyZXR1cm4gZC5zdWJzY3JpYmUoZyk7bGV0IGg7dHJ5e2g9ZnQoZCkoZyl9Y2F0Y2godil7Zy5lcnJvcih2KX1yZXR1cm4gaH1mdW5jdGlvbiBzcihkLGcsaD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpe3JldHVybiJm''@;'; + put 'put ''dW5jdGlvbiI9PXR5cGVvZiBnP3Y9PnYucGlwZShzcigoeSxDKT0+ZG4oZCh5LEMpKS5waXBlKHZ0KChJLGopPT5nKHksSSxDLGopKSksaCkpOigibnVtYmVyIj09dHlwZW9mIGcmJihoPWcpLHY9PnYubGlmdChuZXcgWG4oZCxoKSkpfWNsYXNzIFhue2NvbnN0cnVjdG9yKGcsaD1OdW1iZXIu''@;'; + put 'put ''UE9TSVRJVkVfSU5GSU5JVFkpe3RoaXMucHJvamVjdD1nLHRoaXMuY29uY3VycmVudD1ofWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IEZyKGcsdGhpcy5wcm9qZWN0LHRoaXMuY29uY3VycmVudCkpfX1jbGFzcyBGciBleHRlbmRzIE5ue2NvbnN0cnVjdG9yKGcsaCx2PU51bWJl''@;'; + put 'put ''ci5QT1NJVElWRV9JTkZJTklUWSl7c3VwZXIoZyksdGhpcy5wcm9qZWN0PWgsdGhpcy5jb25jdXJyZW50PXYsdGhpcy5oYXNDb21wbGV0ZWQ9ITEsdGhpcy5idWZmZXI9W10sdGhpcy5hY3RpdmU9MCx0aGlzLmluZGV4PTB9X25leHQoZyl7dGhpcy5hY3RpdmU8dGhpcy5jb25jdXJyZW50P3Ro''@;'; + put 'put ''aXMuX3RyeU5leHQoZyk6dGhpcy5idWZmZXIucHVzaChnKX1fdHJ5TmV4dChnKXtsZXQgaDtjb25zdCB2PXRoaXMuaW5kZXgrKzt0cnl7aD10aGlzLnByb2plY3QoZyx2KX1jYXRjaCh5KXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHkpfXRoaXMuYWN0aXZlKyssdGhpcy5f''@;'; + put 'put ''aW5uZXJTdWIoaCl9X2lubmVyU3ViKGcpe2NvbnN0IGg9bmV3IHluKHRoaXMpLHY9dGhpcy5kZXN0aW5hdGlvbjt2LmFkZChoKTtjb25zdCB5PWVyKGcsaCk7eSE9PWgmJnYuYWRkKHkpfV9jb21wbGV0ZSgpe3RoaXMuaGFzQ29tcGxldGVkPSEwLDA9PT10aGlzLmFjdGl2ZSYmMD09PXRoaXMu''@;'; + put 'put ''YnVmZmVyLmxlbmd0aCYmdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpLHRoaXMudW5zdWJzY3JpYmUoKX1ub3RpZnlOZXh0KGcpe3RoaXMuZGVzdGluYXRpb24ubmV4dChnKX1ub3RpZnlDb21wbGV0ZSgpe2NvbnN0IGc9dGhpcy5idWZmZXI7dGhpcy5hY3RpdmUtLSxnLmxlbmd0aD4wP3Ro''@;'; + put 'put ''aXMuX25leHQoZy5zaGlmdCgpKTowPT09dGhpcy5hY3RpdmUmJnRoaXMuaGFzQ29tcGxldGVkJiZ0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9fWZ1bmN0aW9uIHF0KGQ9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKXtyZXR1cm4gc3IoVixkKX1mdW5jdGlvbiBwcihkLGcpe3JldHVybiBn''@;'; + put 'put ''P1VlKGQsZyk6bmV3IEYoaHQoZCkpfWZ1bmN0aW9uIG5yKC4uLmQpe2xldCBnPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxoPW51bGwsdj1kW2QubGVuZ3RoLTFdO3JldHVybiB3dCh2KT8oaD1kLnBvcCgpLGQubGVuZ3RoPjEmJiJudW1iZXIiPT10eXBlb2YgZFtkLmxlbmd0aC0xXSYmKGc9''@;'; + put 'put ''ZC5wb3AoKSkpOiJudW1iZXIiPT10eXBlb2YgdiYmKGc9ZC5wb3AoKSksbnVsbD09PWgmJjE9PT1kLmxlbmd0aCYmZFswXWluc3RhbmNlb2YgRj9kWzBdOnF0KGcpKHByKGQsaCkpfWZ1bmN0aW9uIEFuKCl7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBnLmxpZnQobmV3IHFuKGcpKX19Y2xh''@;'; + put 'put ''c3MgcW57Y29uc3RydWN0b3IoZyl7dGhpcy5jb25uZWN0YWJsZT1nfWNhbGwoZyxoKXtjb25zdHtjb25uZWN0YWJsZTp2fT10aGlzO3YuX3JlZkNvdW50Kys7Y29uc3QgeT1uZXcgV3QoZyx2KSxDPWguc3Vic2NyaWJlKHkpO3JldHVybiB5LmNsb3NlZHx8KHkuY29ubmVjdGlvbj12LmNvbm5l''@;'; + put 'put ''Y3QoKSksQ319Y2xhc3MgV3QgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoZyksdGhpcy5jb25uZWN0YWJsZT1ofV91bnN1YnNjcmliZSgpe2NvbnN0e2Nvbm5lY3RhYmxlOmd9PXRoaXM7aWYoIWcpcmV0dXJuIHZvaWQodGhpcy5jb25uZWN0aW9uPW51bGwpO3RoaXMuY29ubmVj''@;'; + put 'put ''dGFibGU9bnVsbDtjb25zdCBoPWcuX3JlZkNvdW50O2lmKGg8PTApcmV0dXJuIHZvaWQodGhpcy5jb25uZWN0aW9uPW51bGwpO2lmKGcuX3JlZkNvdW50PWgtMSxoPjEpcmV0dXJuIHZvaWQodGhpcy5jb25uZWN0aW9uPW51bGwpO2NvbnN0e2Nvbm5lY3Rpb246dn09dGhpcyx5PWcuX2Nvbm5l''@;'; + put 'put ''Y3Rpb247dGhpcy5jb25uZWN0aW9uPW51bGwseSYmKCF2fHx5PT09dikmJnkudW5zdWJzY3JpYmUoKX19Y2xhc3MgcG4gZXh0ZW5kcyBGe2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoKSx0aGlzLnNvdXJjZT1nLHRoaXMuc3ViamVjdEZhY3Rvcnk9aCx0aGlzLl9yZWZDb3VudD0wLHRoaXMuX2lz''@;'; + put 'put ''Q29tcGxldGU9ITF9X3N1YnNjcmliZShnKXtyZXR1cm4gdGhpcy5nZXRTdWJqZWN0KCkuc3Vic2NyaWJlKGcpfWdldFN1YmplY3QoKXtjb25zdCBnPXRoaXMuX3N1YmplY3Q7cmV0dXJuKCFnfHxnLmlzU3RvcHBlZCkmJih0aGlzLl9zdWJqZWN0PXRoaXMuc3ViamVjdEZhY3RvcnkoKSksdGhp''@;'; + put 'put ''cy5fc3ViamVjdH1jb25uZWN0KCl7bGV0IGc9dGhpcy5fY29ubmVjdGlvbjtyZXR1cm4gZ3x8KHRoaXMuX2lzQ29tcGxldGU9ITEsZz10aGlzLl9jb25uZWN0aW9uPW5ldyBUZSxnLmFkZCh0aGlzLnNvdXJjZS5zdWJzY3JpYmUobmV3IE50KHRoaXMuZ2V0U3ViamVjdCgpLHRoaXMpKSksZy5j''@;'; + put 'put ''bG9zZWQmJih0aGlzLl9jb25uZWN0aW9uPW51bGwsZz1UZS5FTVBUWSkpLGd9cmVmQ291bnQoKXtyZXR1cm4gQW4oKSh0aGlzKX19Y29uc3QgS249KCgpPT57Y29uc3QgZD1wbi5wcm90b3R5cGU7cmV0dXJue29wZXJhdG9yOnt2YWx1ZTpudWxsfSxfcmVmQ291bnQ6e3ZhbHVlOjAsd3JpdGFi''@;'; + put 'put ''bGU6ITB9LF9zdWJqZWN0Ont2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSxfY29ubmVjdGlvbjp7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0sX3N1YnNjcmliZTp7dmFsdWU6ZC5fc3Vic2NyaWJlfSxfaXNDb21wbGV0ZTp7dmFsdWU6ZC5faXNDb21wbGV0ZSx3cml0YWJsZTohMH0sZ2V0U3ViamVj''@;'; + put 'put ''dDp7dmFsdWU6ZC5nZXRTdWJqZWN0fSxjb25uZWN0Ont2YWx1ZTpkLmNvbm5lY3R9LHJlZkNvdW50Ont2YWx1ZTpkLnJlZkNvdW50fX19KSgpO2NsYXNzIE50IGV4dGVuZHMgUWV7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnKSx0aGlzLmNvbm5lY3RhYmxlPWh9X2Vycm9yKGcpe3RoaXMuX3Vu''@;'; + put 'put ''c3Vic2NyaWJlKCksc3VwZXIuX2Vycm9yKGcpfV9jb21wbGV0ZSgpe3RoaXMuY29ubmVjdGFibGUuX2lzQ29tcGxldGU9ITAsdGhpcy5fdW5zdWJzY3JpYmUoKSxzdXBlci5fY29tcGxldGUoKX1fdW5zdWJzY3JpYmUoKXtjb25zdCBnPXRoaXMuY29ubmVjdGFibGU7aWYoZyl7dGhpcy5jb25u''@;'; + put 'put ''ZWN0YWJsZT1udWxsO2NvbnN0IGg9Zy5fY29ubmVjdGlvbjtnLl9yZWZDb3VudD0wLGcuX3N1YmplY3Q9bnVsbCxnLl9jb25uZWN0aW9uPW51bGwsaCYmaC51bnN1YnNjcmliZSgpfX19Y2xhc3MgdG57Y29uc3RydWN0b3IoZyxoKXt0aGlzLnN1YmplY3RGYWN0b3J5PWcsdGhpcy5zZWxlY3Rv''@;'; + put 'put ''cj1ofWNhbGwoZyxoKXtjb25zdHtzZWxlY3Rvcjp2fT10aGlzLHk9dGhpcy5zdWJqZWN0RmFjdG9yeSgpLEM9dih5KS5zdWJzY3JpYmUoZyk7cmV0dXJuIEMuYWRkKGguc3Vic2NyaWJlKHkpKSxDfX1mdW5jdGlvbiB6bigpe3JldHVybiBuZXcgJGV9ZnVuY3Rpb24gQm4oZCl7Zm9yKGxldCBn''@;'; + put 'put ''IGluIGQpaWYoZFtnXT09PUJuKXJldHVybiBnO3Rocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCByZW5hbWVkIHByb3BlcnR5IG9uIHRhcmdldCBvYmplY3QuIil9ZnVuY3Rpb24ga3IoZCxnKXtmb3IoY29uc3QgaCBpbiBnKWcuaGFzT3duUHJvcGVydHkoaCkmJiFkLmhhc093blByb3BlcnR5''@;'; + put 'put ''KGgpJiYoZFtoXT1nW2hdKX1mdW5jdGlvbiBtbihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGQ7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4iWyIrZC5tYXAobW4pLmpvaW4oIiwgIikrIl0iO2lmKG51bGw9PWQpcmV0dXJuIiIrZDtpZihkLm92ZXJyaWRkZW5OYW1lKXJldHVy''@;'; + put 'put ''bmAke2Qub3ZlcnJpZGRlbk5hbWV9YDtpZihkLm5hbWUpcmV0dXJuYCR7ZC5uYW1lfWA7Y29uc3QgZz1kLnRvU3RyaW5nKCk7aWYobnVsbD09ZylyZXR1cm4iIitnO2NvbnN0IGg9Zy5pbmRleE9mKCJcbiIpO3JldHVybi0xPT09aD9nOmcuc3Vic3RyaW5nKDAsaCl9ZnVuY3Rpb24gdW4oZCxn''@;'; + put 'put ''KXtyZXR1cm4gbnVsbD09ZHx8IiI9PT1kP251bGw9PT1nPyIiOmc6bnVsbD09Z3x8IiI9PT1nP2Q6ZCsiICIrZ31jb25zdCBjbj1Cbih7X19mb3J3YXJkX3JlZl9fOkJufSk7ZnVuY3Rpb24gX24oZCl7cmV0dXJuIGQuX19mb3J3YXJkX3JlZl9fPV9uLGQudG9TdHJpbmc9ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gbW4odGhpcygpKX0sZH1mdW5jdGlvbiBHdChkKXtyZXR1cm4ga24oZCk/ZCgpOmR9ZnVuY3Rpb24ga24oZCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGQmJmQuaGFzT3duUHJvcGVydHkoY24pJiZkLl9fZm9yd2FyZF9yZWZfXz09PV9ufWNsYXNzIGVuIGV4dGVuZHMgRXJyb3J7''@;'; + put 'put ''Y29uc3RydWN0b3IoZyxoKXtzdXBlcihmdW5jdGlvbiBJbihkLGcpe3JldHVybmBORzAke01hdGguYWJzKGQpfSR7Zz8iOiAiK2cudHJpbSgpOiIifWB9KGcsaCkpLHRoaXMuY29kZT1nfX1mdW5jdGlvbiBKbihkKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGQ/ZDpudWxsPT1kPyIiOlN0cmlu''@;'; + put 'put ''ZyhkKX1mdW5jdGlvbiBpaShkLGcpe3Rocm93IG5ldyBlbigtMjAxLCExKX1mdW5jdGlvbiBsbChkLGcpe251bGw9PWQmJmZ1bmN0aW9uIFFpKGQsZyxoLHYpe3Rocm93IG5ldyBFcnJvcihgQVNTRVJUSU9OIEVSUk9SOiAke2R9YCsobnVsbD09dj8iIjpgIFtFeHBlY3RlZD0+ICR7aH0gJHt2''@;'; + put 'put ''fSAke2d9IDw9QWN0dWFsXWApKX0oZyxkLG51bGwsIiE9Iil9ZnVuY3Rpb24gQWkoZCl7cmV0dXJue3Rva2VuOmQudG9rZW4scHJvdmlkZWRJbjpkLnByb3ZpZGVkSW58fG51bGwsZmFjdG9yeTpkLmZhY3RvcnksdmFsdWU6dm9pZCAwfX1jb25zdCB2aT1BaTtmdW5jdGlvbiBiMChkKXtyZXR1''@;'; + put 'put ''cm57cHJvdmlkZXJzOmQucHJvdmlkZXJzfHxbXSxpbXBvcnRzOmQuaW1wb3J0c3x8W119fWZ1bmN0aW9uIHNhKGQpe3JldHVybiBybChkLFUwKXx8cmwoZCxYMCl9ZnVuY3Rpb24gcmwoZCxnKXtyZXR1cm4gZC5oYXNPd25Qcm9wZXJ0eShnKT9kW2ddOm51bGx9ZnVuY3Rpb24gSGMoZCl7cmV0''@;'; + put 'put ''dXJuIGQmJihkLmhhc093blByb3BlcnR5KE9zKXx8ZC5oYXNPd25Qcm9wZXJ0eSh1YSkpP2RbT3NdOm51bGx9Y29uc3QgVTA9Qm4oe1x1MDI3NXByb3Y6Qm59KSxPcz1Cbih7XHUwMjc1aW5qOkJufSksWDA9Qm4oe25nSW5qZWN0YWJsZURlZjpCbn0pLHVhPUJuKHtuZ0luamVjdG9yRGVmOkJu''@;'; + put 'put ''fSk7dmFyIGowPSgoKT0+KChqMD1qMHx8e30pW2owLkRlZmF1bHQ9MF09IkRlZmF1bHQiLGowW2owLkhvc3Q9MV09Ikhvc3QiLGowW2owLlNlbGY9Ml09IlNlbGYiLGowW2owLlNraXBTZWxmPTRdPSJTa2lwU2VsZiIsajBbajAuT3B0aW9uYWw9OF09Ik9wdGlvbmFsIixqMCkpKCk7bGV0IEJs''@;'; + put 'put ''O2Z1bmN0aW9uIF8wKGQpe2NvbnN0IGc9Qmw7cmV0dXJuIEJsPWQsZ31mdW5jdGlvbiBnYyhkLGcsaCl7Y29uc3Qgdj1zYShkKTtyZXR1cm4gdiYmInJvb3QiPT12LnByb3ZpZGVkSW4/dm9pZCAwPT09di52YWx1ZT92LnZhbHVlPXYuZmFjdG9yeSgpOnYudmFsdWU6aCZqMC5PcHRpb25hbD9u''@;'; + put 'put ''dWxsOnZvaWQgMCE9PWc/Zzp2b2lkIGlpKG1uKGQpKX1mdW5jdGlvbiBCMShkKXtyZXR1cm57dG9TdHJpbmc6ZH0udG9TdHJpbmcoKX12YXIgYXU9KCgpPT4oKGF1PWF1fHx7fSlbYXUuT25QdXNoPTBdPSJPblB1c2giLGF1W2F1LkRlZmF1bHQ9MV09IkRlZmF1bHQiLGF1KSkoKSx4Mj0oKCk9''@;'; + put 'put ''PihmdW5jdGlvbihkKXtkW2QuRW11bGF0ZWQ9MF09IkVtdWxhdGVkIixkW2QuTm9uZT0yXT0iTm9uZSIsZFtkLlNoYWRvd0RvbT0zXT0iU2hhZG93RG9tIn0oeDJ8fCh4Mj17fSkpLHgyKSkoKTtjb25zdCBQbD0oKCk9PiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhp''@;'; + put 'put ''c3x8InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJmdsb2JhbHx8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvd3x8InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYidW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xv''@;'; + put 'put ''YmFsU2NvcGUmJnNlbGYpKCksczE9e30sWjA9W10sZmk9Qm4oe1x1MDI3NWNtcDpCbn0pLFIwPUJuKHtcdTAyNzVkaXI6Qm59KSxtbz1Cbih7XHUwMjc1cGlwZTpCbn0pLHJzPUJuKHtcdTAyNzVtb2Q6Qm59KSxocz1Cbih7XHUwMjc1ZmFjOkJufSksbjI9Qm4oe19fTkdfRUxFTUVOVF9JRF9f''@;'; + put 'put ''OkJufSk7bGV0IFQyPTA7ZnVuY3Rpb24gVGkoZCl7cmV0dXJuIEIxKCgpPT57Y29uc3QgaD0hMD09PWQuc3RhbmRhbG9uZSx2PXt9LHk9e3R5cGU6ZC50eXBlLHByb3ZpZGVyc1Jlc29sdmVyOm51bGwsZGVjbHM6ZC5kZWNscyx2YXJzOmQudmFycyxmYWN0b3J5Om51bGwsdGVtcGxhdGU6ZC50''@;'; + put 'put ''ZW1wbGF0ZXx8bnVsbCxjb25zdHM6ZC5jb25zdHN8fG51bGwsbmdDb250ZW50U2VsZWN0b3JzOmQubmdDb250ZW50U2VsZWN0b3JzLGhvc3RCaW5kaW5nczpkLmhvc3RCaW5kaW5nc3x8bnVsbCxob3N0VmFyczpkLmhvc3RWYXJzfHwwLGhvc3RBdHRyczpkLmhvc3RBdHRyc3x8bnVsbCxjb250''@;'; + put 'put ''ZW50UXVlcmllczpkLmNvbnRlbnRRdWVyaWVzfHxudWxsLGRlY2xhcmVkSW5wdXRzOnYsaW5wdXRzOm51bGwsb3V0cHV0czpudWxsLGV4cG9ydEFzOmQuZXhwb3J0QXN8fG51bGwsb25QdXNoOmQuY2hhbmdlRGV0ZWN0aW9uPT09YXUuT25QdXNoLGRpcmVjdGl2ZURlZnM6bnVsbCxwaXBlRGVm''@;'; + put 'put ''czpudWxsLHN0YW5kYWxvbmU6aCxkZXBlbmRlbmNpZXM6aCYmZC5kZXBlbmRlbmNpZXN8fG51bGwsZ2V0U3RhbmRhbG9uZUluamVjdG9yOm51bGwsc2VsZWN0b3JzOmQuc2VsZWN0b3JzfHxaMCx2aWV3UXVlcnk6ZC52aWV3UXVlcnl8fG51bGwsZmVhdHVyZXM6ZC5mZWF0dXJlc3x8bnVsbCxk''@;'; + put 'put ''YXRhOmQuZGF0YXx8e30sZW5jYXBzdWxhdGlvbjpkLmVuY2Fwc3VsYXRpb258fHgyLkVtdWxhdGVkLGlkOiJjIitUMisrLHN0eWxlczpkLnN0eWxlc3x8WjAsXzpudWxsLHNldElucHV0Om51bGwsc2NoZW1hczpkLnNjaGVtYXN8fG51bGwsdFZpZXc6bnVsbH0sQz1kLmRlcGVuZGVuY2llcyxJ''@;'; + put 'put ''PWQuZmVhdHVyZXM7cmV0dXJuIHkuaW5wdXRzPXIyKGQuaW5wdXRzLHYpLHkub3V0cHV0cz1yMihkLm91dHB1dHMpLEkmJkkuZm9yRWFjaChqPT5qKHkpKSx5LmRpcmVjdGl2ZURlZnM9Qz8oKT0+KCJmdW5jdGlvbiI9PXR5cGVvZiBDP0MoKTpDKS5tYXAoTmYpLmZpbHRlcihZbCk6bnVsbCx5''@;'; + put 'put ''LnBpcGVEZWZzPUM/KCk9PigiZnVuY3Rpb24iPT10eXBlb2YgQz9DKCk6QykubWFwKEtsKS5maWx0ZXIoWWwpOm51bGwseX0pfWZ1bmN0aW9uIE5mKGQpe3JldHVybiBtcyhkKXx8RjEoZCl9ZnVuY3Rpb24gWWwoZCl7cmV0dXJuIG51bGwhPT1kfWNvbnN0IE5jPXt9O2Z1bmN0aW9uIGNvKGQp''@;'; + put 'put ''e3JldHVybiBCMSgoKT0+e2NvbnN0IGc9e3R5cGU6ZC50eXBlLGJvb3RzdHJhcDpkLmJvb3RzdHJhcHx8WjAsZGVjbGFyYXRpb25zOmQuZGVjbGFyYXRpb25zfHxaMCxpbXBvcnRzOmQuaW1wb3J0c3x8WjAsZXhwb3J0czpkLmV4cG9ydHN8fFowLHRyYW5zaXRpdmVDb21waWxlU2NvcGVzOm51''@;'; + put 'put ''bGwsc2NoZW1hczpkLnNjaGVtYXN8fG51bGwsaWQ6ZC5pZHx8bnVsbH07cmV0dXJuIG51bGwhPWQuaWQmJihOY1tkLmlkXT1kLnR5cGUpLGd9KX1mdW5jdGlvbiByMihkLGcpe2lmKG51bGw9PWQpcmV0dXJuIHMxO2NvbnN0IGg9e307Zm9yKGNvbnN0IHYgaW4gZClpZihkLmhhc093blByb3Bl''@;'; + put 'put ''cnR5KHYpKXtsZXQgeT1kW3ZdLEM9eTtBcnJheS5pc0FycmF5KHkpJiYoQz15WzFdLHk9eVswXSksaFt5XT12LGcmJihnW3ldPUMpfXJldHVybiBofWNvbnN0IFdpPVRpO2Z1bmN0aW9uIFVzKGQpe3JldHVybnt0eXBlOmQudHlwZSxuYW1lOmQubmFtZSxmYWN0b3J5Om51bGwscHVyZTohMSE9''@;'; + put 'put ''PWQucHVyZSxzdGFuZGFsb25lOiEwPT09ZC5zdGFuZGFsb25lLG9uRGVzdHJveTpkLnR5cGUucHJvdG90eXBlLm5nT25EZXN0cm95fHxudWxsfX1mdW5jdGlvbiBtcyhkKXtyZXR1cm4gZFtmaV18fG51bGx9ZnVuY3Rpb24gRjEoZCl7cmV0dXJuIGRbUjBdfHxudWxsfWZ1bmN0aW9uIEtsKGQp''@;'; + put 'put ''e3JldHVybiBkW21vXXx8bnVsbH1mdW5jdGlvbiBfcyhkLGcpe2NvbnN0IGg9ZFtyc118fG51bGw7aWYoIWgmJiEwPT09Zyl0aHJvdyBuZXcgRXJyb3IoYFR5cGUgJHttbihkKX0gZG9lcyBub3QgaGF2ZSAnXHUwMjc1bW9kJyBwcm9wZXJ0eS5gKTtyZXR1cm4gaH1mdW5jdGlvbiBUdShkKXty''@;'; + put 'put ''ZXR1cm4gQXJyYXkuaXNBcnJheShkKSYmIm9iamVjdCI9PXR5cGVvZiBkWzFdfWZ1bmN0aW9uIHNmKGQpe3JldHVybiBBcnJheS5pc0FycmF5KGQpJiYhMD09PWRbMV19ZnVuY3Rpb24gS28oZCl7cmV0dXJuIDAhPSg4JmQuZmxhZ3MpfWZ1bmN0aW9uIENzKGQpe3JldHVybiAyPT0oMiZkLmZs''@;'; + put 'put ''YWdzKX1mdW5jdGlvbiB6ZyhkKXtyZXR1cm4gMT09KDEmZC5mbGFncyl9ZnVuY3Rpb24gVmYoZCl7cmV0dXJuIG51bGwhPT1kLnRlbXBsYXRlfWZ1bmN0aW9uIEt3KGQpe3JldHVybiAwIT0oMjU2JmRbMl0pfWZ1bmN0aW9uIGpmKGQsZyl7cmV0dXJuIGQuaGFzT3duUHJvcGVydHkoaHMpP2Rb''@;'; + put 'put ''aHNdOm51bGx9Y2xhc3MgcXd7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMucHJldmlvdXNWYWx1ZT1nLHRoaXMuY3VycmVudFZhbHVlPWgsdGhpcy5maXJzdENoYW5nZT12fWlzRmlyc3RDaGFuZ2UoKXtyZXR1cm4gdGhpcy5maXJzdENoYW5nZX19ZnVuY3Rpb24gUDIoKXtyZXR1cm4gY3Z9ZnVu''@;'; + put 'put ''Y3Rpb24gY3YoZCl7cmV0dXJuIGQudHlwZS5wcm90b3R5cGUubmdPbkNoYW5nZXMmJihkLnNldElucHV0PVFnKSxlYn1mdW5jdGlvbiBlYigpe2NvbnN0IGQ9UXModGhpcyksZz1udWxsPT1kP3ZvaWQgMDpkLmN1cnJlbnQ7aWYoZyl7Y29uc3QgaD1kLnByZXZpb3VzO2lmKGg9PT1zMSlkLnBy''@;'; + put 'put ''ZXZpb3VzPWc7ZWxzZSBmb3IobGV0IHYgaW4gZyloW3ZdPWdbdl07ZC5jdXJyZW50PW51bGwsdGhpcy5uZ09uQ2hhbmdlcyhnKX19ZnVuY3Rpb24gUWcoZCxnLGgsdil7Y29uc3QgeT1RcyhkKXx8ZnVuY3Rpb24gYmgoZCxnKXtyZXR1cm4gZFtXcF09Z30oZCx7cHJldmlvdXM6czEsY3VycmVu''@;'; + put 'put ''dDpudWxsfSksQz15LmN1cnJlbnR8fCh5LmN1cnJlbnQ9e30pLEk9eS5wcmV2aW91cyxqPXRoaXMuZGVjbGFyZWRJbnB1dHNbaF0sdWU9SVtqXTtDW2pdPW5ldyBxdyh1ZSYmdWUuY3VycmVudFZhbHVlLGcsST09PXMxKSxkW3ZdPWd9UDIubmdJbmhlcml0PSEwO2NvbnN0IFdwPSJfX25nU2lt''@;'; + put 'put ''cGxlQ2hhbmdlc19fIjtmdW5jdGlvbiBRcyhkKXtyZXR1cm4gZFtXcF18fG51bGx9ZnVuY3Rpb24gSjIoZCl7Zm9yKDtBcnJheS5pc0FycmF5KGQpOylkPWRbMF07cmV0dXJuIGR9ZnVuY3Rpb24gVXAoZCxnKXtyZXR1cm4gSjIoZ1tkXSl9ZnVuY3Rpb24gdmMoZCxnKXtyZXR1cm4gSjIoZ1tk''@;'; + put 'put ''LmluZGV4XSl9ZnVuY3Rpb24gWGcoZCxnKXtyZXR1cm4gZC5kYXRhW2ddfWZ1bmN0aW9uIFFwKGQsZyl7cmV0dXJuIGRbZ119ZnVuY3Rpb24gUXUoZCxnKXtjb25zdCBoPWdbZF07cmV0dXJuIFR1KGgpP2g6aFswXX1mdW5jdGlvbiBLZyhkKXtyZXR1cm4gND09KDQmZFsyXSl9ZnVuY3Rpb24g''@;'; + put 'put ''dXUoZCl7cmV0dXJuIDY0PT0oNjQmZFsyXSl9ZnVuY3Rpb24gTjEoZCxnKXtyZXR1cm4gbnVsbD09Zz9udWxsOmRbZ119ZnVuY3Rpb24gX2goZCl7ZFsxOF09MH1mdW5jdGlvbiBtZChkLGcpe2RbNV0rPWc7bGV0IGg9ZCx2PWRbM107Zm9yKDtudWxsIT09diYmKDE9PT1nJiYxPT09aFs1XXx8''@;'; + put 'put ''LTE9PT1nJiYwPT09aFs1XSk7KXZbNV0rPWcsaD12LHY9dlszXX1jb25zdCBDYT17bEZyYW1lOmhhKG51bGwpLGJpbmRpbmdzRW5hYmxlZDohMH07ZnVuY3Rpb24gRU0oKXtyZXR1cm4gQ2EuYmluZGluZ3NFbmFibGVkfWZ1bmN0aW9uIFB0KCl7cmV0dXJuIENhLmxGcmFtZS5sVmlld31mdW5j''@;'; + put 'put ''dGlvbiBmZSgpe3JldHVybiBDYS5sRnJhbWUudFZpZXd9ZnVuY3Rpb24gcnQoZCl7cmV0dXJuIENhLmxGcmFtZS5jb250ZXh0TFZpZXc9ZCxkWzhdfWZ1bmN0aW9uIGEoZCl7cmV0dXJuIENhLmxGcmFtZS5jb250ZXh0TFZpZXc9bnVsbCxkfWZ1bmN0aW9uIEp0KCl7bGV0IGQ9aHIoKTtmb3Io''@;'; + put 'put ''O251bGwhPT1kJiY2ND09PWQudHlwZTspZD1kLnBhcmVudDtyZXR1cm4gZH1mdW5jdGlvbiBocigpe3JldHVybiBDYS5sRnJhbWUuY3VycmVudFROb2RlfWZ1bmN0aW9uIGpuKGQsZyl7Y29uc3QgaD1DYS5sRnJhbWU7aC5jdXJyZW50VE5vZGU9ZCxoLmlzUGFyZW50PWd9ZnVuY3Rpb24gXygp''@;'; + put 'put ''e3JldHVybiBDYS5sRnJhbWUuaXNQYXJlbnR9ZnVuY3Rpb24gQW8oKXtDYS5sRnJhbWUuaXNQYXJlbnQ9ITF9ZnVuY3Rpb24gbHMoKXtjb25zdCBkPUNhLmxGcmFtZTtsZXQgZz1kLmJpbmRpbmdSb290SW5kZXg7cmV0dXJuLTE9PT1nJiYoZz1kLmJpbmRpbmdSb290SW5kZXg9ZC50Vmlldy5i''@;'; + put 'put ''aW5kaW5nU3RhcnRJbmRleCksZ31mdW5jdGlvbiBNbigpe3JldHVybiBDYS5sRnJhbWUuYmluZGluZ0luZGV4fWZ1bmN0aW9uIGkyKCl7cmV0dXJuIENhLmxGcmFtZS5iaW5kaW5nSW5kZXgrK31mdW5jdGlvbiBvMihkKXtjb25zdCBnPUNhLmxGcmFtZSxoPWcuYmluZGluZ0luZGV4O3JldHVy''@;'; + put 'put ''biBnLmJpbmRpbmdJbmRleD1nLmJpbmRpbmdJbmRleCtkLGh9ZnVuY3Rpb24geE0oZCxnKXtjb25zdCBoPUNhLmxGcmFtZTtoLmJpbmRpbmdJbmRleD1oLmJpbmRpbmdSb290SW5kZXg9ZCxwdihnKX1mdW5jdGlvbiBwdihkKXtDYS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4PWR9ZnVu''@;'; + put 'put ''Y3Rpb24gZ3YoZCl7Y29uc3QgZz1DYS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4O3JldHVybi0xPT09Zz9udWxsOmRbZ119ZnVuY3Rpb24gcmIoKXtyZXR1cm4gQ2EubEZyYW1lLmN1cnJlbnRRdWVyeUluZGV4fWZ1bmN0aW9uIERuKGQpe0NhLmxGcmFtZS5jdXJyZW50UXVlcnlJbmRl''@;'; + put 'put ''eD1kfWZ1bmN0aW9uIGNmKGQpe2NvbnN0IGc9ZFsxXTtyZXR1cm4gMj09PWcudHlwZT9nLmRlY2xUTm9kZToxPT09Zy50eXBlP2RbNl06bnVsbH1mdW5jdGlvbiBlbyhkLGcsaCl7aWYoaCZqMC5Ta2lwU2VsZil7bGV0IHk9ZyxDPWQ7Zm9yKDshKHk9eS5wYXJlbnQsbnVsbCE9PXl8fGgmajAu''@;'; + put 'put ''SG9zdHx8KHk9Y2YoQyksbnVsbD09PXl8fChDPUNbMTVdLDEwJnkudHlwZSkpKTspO2lmKG51bGw9PT15KXJldHVybiExO2c9eSxkPUN9Y29uc3Qgdj1DYS5sRnJhbWU9cWwoKTtyZXR1cm4gdi5jdXJyZW50VE5vZGU9Zyx2LmxWaWV3PWQsITB9ZnVuY3Rpb24gRDAoZCl7Y29uc3QgZz1xbCgp''@;'; + put 'put ''LGg9ZFsxXTtDYS5sRnJhbWU9ZyxnLmN1cnJlbnRUTm9kZT1oLmZpcnN0Q2hpbGQsZy5sVmlldz1kLGcudFZpZXc9aCxnLmNvbnRleHRMVmlldz1kLGcuYmluZGluZ0luZGV4PWguYmluZGluZ1N0YXJ0SW5kZXgsZy5pbkkxOG49ITF9ZnVuY3Rpb24gcWwoKXtjb25zdCBkPUNhLmxGcmFtZSxn''@;'; + put 'put ''PW51bGw9PT1kP251bGw6ZC5jaGlsZDtyZXR1cm4gbnVsbD09PWc/aGEoZCk6Z31mdW5jdGlvbiBoYShkKXtjb25zdCBnPXtjdXJyZW50VE5vZGU6bnVsbCxpc1BhcmVudDohMCxsVmlldzpudWxsLHRWaWV3Om51bGwsc2VsZWN0ZWRJbmRleDotMSxjb250ZXh0TFZpZXc6bnVsbCxlbGVtZW50''@;'; + put 'put ''RGVwdGhDb3VudDowLGN1cnJlbnROYW1lc3BhY2U6bnVsbCxjdXJyZW50RGlyZWN0aXZlSW5kZXg6LTEsYmluZGluZ1Jvb3RJbmRleDotMSxiaW5kaW5nSW5kZXg6LTEsY3VycmVudFF1ZXJ5SW5kZXg6MCxwYXJlbnQ6ZCxjaGlsZDpudWxsLGluSTE4bjohMX07cmV0dXJuIG51bGwhPT1kJiYo''@;'; + put 'put ''ZC5jaGlsZD1nKSxnfWZ1bmN0aW9uIERhKCl7Y29uc3QgZD1DYS5sRnJhbWU7cmV0dXJuIENhLmxGcmFtZT1kLnBhcmVudCxkLmN1cnJlbnRUTm9kZT1udWxsLGQubFZpZXc9bnVsbCxkfWNvbnN0IFQ4PURhO2Z1bmN0aW9uIEpwKCl7Y29uc3QgZD1EYSgpO2QuaXNQYXJlbnQ9ITAsZC50Vmll''@;'; + put 'put ''dz1udWxsLGQuc2VsZWN0ZWRJbmRleD0tMSxkLmNvbnRleHRMVmlldz1udWxsLGQuZWxlbWVudERlcHRoQ291bnQ9MCxkLmN1cnJlbnREaXJlY3RpdmVJbmRleD0tMSxkLmN1cnJlbnROYW1lc3BhY2U9bnVsbCxkLmJpbmRpbmdSb290SW5kZXg9LTEsZC5iaW5kaW5nSW5kZXg9LTEsZC5jdXJy''@;'; + put 'put ''ZW50UXVlcnlJbmRleD0wfWZ1bmN0aW9uIFVsKCl7cmV0dXJuIENhLmxGcmFtZS5zZWxlY3RlZEluZGV4fWZ1bmN0aW9uIHpmKGQpe0NhLmxGcmFtZS5zZWxlY3RlZEluZGV4PWR9ZnVuY3Rpb24gRjIoKXtjb25zdCBkPUNhLmxGcmFtZTtyZXR1cm4gWGcoZC50VmlldyxkLnNlbGVjdGVkSW5k''@;'; + put 'put ''ZXgpfWZ1bmN0aW9uIGVtKGQsZyl7Zm9yKGxldCBoPWcuZGlyZWN0aXZlU3RhcnQsdj1nLmRpcmVjdGl2ZUVuZDtoPHY7aCsrKXtjb25zdCBDPWQuZGF0YVtoXS50eXBlLnByb3RvdHlwZSx7bmdBZnRlckNvbnRlbnRJbml0OkksbmdBZnRlckNvbnRlbnRDaGVja2VkOmosbmdBZnRlclZpZXdJ''@;'; + put 'put ''bml0OnVlLG5nQWZ0ZXJWaWV3Q2hlY2tlZDpfZSxuZ09uRGVzdHJveTpCZX09QztJJiYoZC5jb250ZW50SG9va3N8fChkLmNvbnRlbnRIb29rcz1bXSkpLnB1c2goLWgsSSksaiYmKChkLmNvbnRlbnRIb29rc3x8KGQuY29udGVudEhvb2tzPVtdKSkucHVzaChoLGopLChkLmNvbnRlbnRDaGVj''@;'; + put 'put ''a0hvb2tzfHwoZC5jb250ZW50Q2hlY2tIb29rcz1bXSkpLnB1c2goaCxqKSksdWUmJihkLnZpZXdIb29rc3x8KGQudmlld0hvb2tzPVtdKSkucHVzaCgtaCx1ZSksX2UmJigoZC52aWV3SG9va3N8fChkLnZpZXdIb29rcz1bXSkpLnB1c2goaCxfZSksKGQudmlld0NoZWNrSG9va3N8fChkLnZp''@;'; + put 'put ''ZXdDaGVja0hvb2tzPVtdKSkucHVzaChoLF9lKSksbnVsbCE9QmUmJihkLmRlc3Ryb3lIb29rc3x8KGQuZGVzdHJveUhvb2tzPVtdKSkucHVzaChoLEJlKX19ZnVuY3Rpb24gQWQoZCxnLGgpe0k4KGQsZywzLGgpfWZ1bmN0aW9uIEtwKGQsZyxoLHYpeygzJmRbMl0pPT09aCYmSTgoZCxnLGgs''@;'; + put 'put ''dil9ZnVuY3Rpb24gZmYoZCxnKXtsZXQgaD1kWzJdOygzJmgpPT09ZyYmKGgmPTIwNDcsaCs9MSxkWzJdPWgpfWZ1bmN0aW9uIEk4KGQsZyxoLHYpe2NvbnN0IEM9bnVsbCE9dj92Oi0xLEk9Zy5sZW5ndGgtMTtsZXQgaj0wO2ZvcihsZXQgdWU9dm9pZCAwIT09dj82NTUzNSZkWzE4XTowO3Vl''@;'; + put 'put ''PEk7dWUrKylpZigibnVtYmVyIj09dHlwZW9mIGdbdWUrMV0pe2lmKGo9Z1t1ZV0sbnVsbCE9diYmaj49dilicmVha31lbHNlIGdbdWVdPDAmJihkWzE4XSs9NjU1MzYpLChqPEN8fC0xPT1DKSYmKERNKGQsaCxnLHVlKSxkWzE4XT0oNDI5NDkwMTc2MCZkWzE4XSkrdWUrMiksdWUrK31mdW5j''@;'; + put 'put ''dGlvbiBETShkLGcsaCx2KXtjb25zdCB5PWhbdl08MCxDPWhbdisxXSxqPWRbeT8taFt2XTpoW3ZdXTtpZih5KXtpZihkWzJdPj4xMTxkWzE4XT4+MTYmJigzJmRbMl0pPT09Zyl7ZFsyXSs9MjA0ODt0cnl7Qy5jYWxsKGopfWZpbmFsbHl7fX19ZWxzZSB0cnl7Qy5jYWxsKGopfWZpbmFsbHl7''@;'; + put 'put ''fX1jbGFzcyB5ZHtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5mYWN0b3J5PWcsdGhpcy5yZXNvbHZpbmc9ITEsdGhpcy5jYW5TZWVWaWV3UHJvdmlkZXJzPWgsdGhpcy5pbmplY3RJbXBsPXZ9fWZ1bmN0aW9uIFpjKGQsZyxoKXtsZXQgdj0wO2Zvcig7djxoLmxlbmd0aDspe2NvbnN0IHk9aFt2''@;'; + put 'put ''XTtpZigibnVtYmVyIj09dHlwZW9mIHkpe2lmKDAhPT15KWJyZWFrO3YrKztjb25zdCBDPWhbdisrXSxJPWhbdisrXSxqPWhbdisrXTtkLnNldEF0dHJpYnV0ZShnLEksaixDKX1lbHNle2NvbnN0IEM9eSxJPWhbKyt2XTtaMShDKT9kLnNldFByb3BlcnR5KGcsQyxJKTpkLnNldEF0dHJpYnV0''@;'; + put 'put ''ZShnLEMsSSksdisrfX1yZXR1cm4gdn1mdW5jdGlvbiBzcyhkKXtyZXR1cm4gMz09PWR8fDQ9PT1kfHw2PT09ZH1mdW5jdGlvbiBaMShkKXtyZXR1cm4gNjQ9PT1kLmNoYXJDb2RlQXQoMCl9ZnVuY3Rpb24gemMoZCxnKXtpZihudWxsIT09ZyYmMCE9PWcubGVuZ3RoKWlmKG51bGw9PT1kfHww''@;'; + put 'put ''PT09ZC5sZW5ndGgpZD1nLnNsaWNlKCk7ZWxzZXtsZXQgaD0tMTtmb3IobGV0IHY9MDt2PGcubGVuZ3RoO3YrKyl7Y29uc3QgeT1nW3ZdOyJudW1iZXIiPT10eXBlb2YgeT9oPXk6MD09PWh8fG9iKGQsaCx5LG51bGwsLTE9PT1ofHwyPT09aD9nWysrdl06bnVsbCl9fXJldHVybiBkfWZ1bmN0''@;'; + put 'put ''aW9uIG9iKGQsZyxoLHYseSl7bGV0IEM9MCxJPWQubGVuZ3RoO2lmKC0xPT09ZylJPS0xO2Vsc2UgZm9yKDtDPGQubGVuZ3RoOyl7Y29uc3Qgaj1kW0MrK107aWYoIm51bWJlciI9PXR5cGVvZiBqKXtpZihqPT09Zyl7ST0tMTticmVha31pZihqPmcpe0k9Qy0xO2JyZWFrfX19Zm9yKDtDPGQu''@;'; + put 'put ''bGVuZ3RoOyl7Y29uc3Qgaj1kW0NdO2lmKCJudW1iZXIiPT10eXBlb2YgailicmVhaztpZihqPT09aCl7aWYobnVsbD09PXYpcmV0dXJuIHZvaWQobnVsbCE9PXkmJihkW0MrMV09eSkpO2lmKHY9PT1kW0MrMV0pcmV0dXJuIHZvaWQoZFtDKzJdPXkpfUMrKyxudWxsIT09diYmQysrLG51bGwh''@;'; + put 'put ''PT15JiZDKyt9LTEhPT1JJiYoZC5zcGxpY2UoSSwwLGcpLEM9SSsxKSxkLnNwbGljZShDKyssMCxoKSxudWxsIT09diYmZC5zcGxpY2UoQysrLDAsdiksbnVsbCE9PXkmJmQuc3BsaWNlKEMrKywwLHkpfWZ1bmN0aW9uIEdjKGQpe3JldHVybi0xIT09ZH1mdW5jdGlvbiBjdShkKXtyZXR1cm4g''@;'; + put 'put ''MzI3NjcmZH1mdW5jdGlvbiBkZihkLGcpe2xldCBoPWZ1bmN0aW9uIHg0KGQpe3JldHVybiBkPj4xNn0oZCksdj1nO2Zvcig7aD4wOyl2PXZbMTVdLGgtLTtyZXR1cm4gdn1sZXQgUHI9ITA7ZnVuY3Rpb24gTDgoZCl7Y29uc3QgZz1QcjtyZXR1cm4gUHI9ZCxnfWxldCBxcD0wO2NvbnN0IHBm''@;'; + put 'put ''PXt9O2Z1bmN0aW9uIGU2KGQsZyl7Y29uc3QgaD1SOChkLGcpO2lmKC0xIT09aClyZXR1cm4gaDtjb25zdCB2PWdbMV07di5maXJzdENyZWF0ZVBhc3MmJihkLmluamVjdG9ySW5kZXg9Zy5sZW5ndGgsdDYodi5kYXRhLGQpLHQ2KGcsbnVsbCksdDYodi5ibHVlcHJpbnQsbnVsbCkpO2NvbnN0''@;'; + put 'put ''IHk9QWMoZCxnKSxDPWQuaW5qZWN0b3JJbmRleDtpZihHYyh5KSl7Y29uc3QgST1jdSh5KSxqPWRmKHksZyksdWU9alsxXS5kYXRhO2ZvcihsZXQgX2U9MDtfZTw4O19lKyspZ1tDK19lXT1qW0krX2VdfHVlW0krX2VdfXJldHVybiBnW0MrOF09eSxDfWZ1bmN0aW9uIHQ2KGQsZyl7ZC5wdXNo''@;'; + put 'put ''KDAsMCwwLDAsMCwwLDAsMCxnKX1mdW5jdGlvbiBSOChkLGcpe3JldHVybi0xPT09ZC5pbmplY3RvckluZGV4fHxkLnBhcmVudCYmZC5wYXJlbnQuaW5qZWN0b3JJbmRleD09PWQuaW5qZWN0b3JJbmRleHx8bnVsbD09PWdbZC5pbmplY3RvckluZGV4KzhdPy0xOmQuaW5qZWN0b3JJbmRleH1m''@;'; + put 'put ''dW5jdGlvbiBBYyhkLGcpe2lmKGQucGFyZW50JiYtMSE9PWQucGFyZW50LmluamVjdG9ySW5kZXgpcmV0dXJuIGQucGFyZW50LmluamVjdG9ySW5kZXg7bGV0IGg9MCx2PW51bGwseT1nO2Zvcig7bnVsbCE9PXk7KXtpZih2PUR1KHkpLG51bGw9PT12KXJldHVybi0xO2lmKGgrKyx5PXlbMTVd''@;'; + put 'put ''LC0xIT09di5pbmplY3RvckluZGV4KXJldHVybiB2LmluamVjdG9ySW5kZXh8aDw8MTZ9cmV0dXJuLTF9ZnVuY3Rpb24gR2YoZCxnLGgpeyFmdW5jdGlvbiBraChkLGcsaCl7bGV0IHY7InN0cmluZyI9PXR5cGVvZiBoP3Y9aC5jaGFyQ29kZUF0KDApfHwwOmguaGFzT3duUHJvcGVydHkobjIp''@;'; + put 'put ''JiYodj1oW24yXSksbnVsbD09diYmKHY9aFtuMl09cXArKyk7Y29uc3QgeT0yNTUmdjtnLmRhdGFbZCsoeT4+NSldfD0xPDx5fShkLGcsaCl9ZnVuY3Rpb24gd2QoZCxnLGgpe2lmKGgmajAuT3B0aW9uYWwpcmV0dXJuIGQ7aWkoKX1mdW5jdGlvbiBtdihkLGcsaCx2KXtpZihoJmowLk9wdGlv''@;'; + put 'put ''bmFsJiZ2b2lkIDA9PT12JiYodj1udWxsKSwwPT0oaCYoajAuU2VsZnxqMC5Ib3N0KSkpe2NvbnN0IHk9ZFs5XSxDPV8wKHZvaWQgMCk7dHJ5e3JldHVybiB5P3kuZ2V0KGcsdixoJmowLk9wdGlvbmFsKTpnYyhnLHYsaCZqMC5PcHRpb25hbCl9ZmluYWxseXtfMChDKX19cmV0dXJuIHdkKHYs''@;'; + put 'put ''MCxoKX1mdW5jdGlvbiB0bShkLGcsaCx2PWowLkRlZmF1bHQseSl7aWYobnVsbCE9PWQpe2lmKDEwMjQmZ1syXSl7Y29uc3QgST1mdW5jdGlvbiBYdShkLGcsaCx2LHkpe2xldCBDPWQsST1nO2Zvcig7bnVsbCE9PUMmJm51bGwhPT1JJiYxMDI0JklbMl0mJiEoMjU2JklbMl0pOyl7Y29uc3Qg''@;'; + put 'put ''aj1COChDLEksaCx2fGowLlNlbGYscGYpO2lmKGohPT1wZilyZXR1cm4gajtsZXQgdWU9Qy5wYXJlbnQ7aWYoIXVlKXtjb25zdCBfZT1JWzIxXTtpZihfZSl7Y29uc3QgQmU9X2UuZ2V0KGgscGYsdik7aWYoQmUhPT1wZilyZXR1cm4gQmV9dWU9RHUoSSksST1JWzE1XX1DPXVlfXJldHVybiB5''@;'; + put 'put ''fShkLGcsaCx2LHBmKTtpZihJIT09cGYpcmV0dXJuIEl9Y29uc3QgQz1COChkLGcsaCx2LHBmKTtpZihDIT09cGYpcmV0dXJuIEN9cmV0dXJuIG12KGcsaCx2LHkpfWZ1bmN0aW9uIEI4KGQsZyxoLHYseSl7Y29uc3QgQz1mdW5jdGlvbiByNihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0''@;'; + put 'put ''dXJuIGQuY2hhckNvZGVBdCgwKXx8MDtjb25zdCBnPWQuaGFzT3duUHJvcGVydHkobjIpP2RbbjJdOnZvaWQgMDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGc/Zz49MD8yNTUmZzpPTTpnfShoKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgQyl7aWYoIWVvKGcsZCx2KSlyZXR1cm4gdiZqMC5Ib3N0''@;'; + put 'put ''P3dkKHksMCx2KTptdihnLGgsdix5KTt0cnl7Y29uc3QgST1DKHYpO2lmKG51bGwhPUl8fHYmajAuT3B0aW9uYWwpcmV0dXJuIEk7aWkoKX1maW5hbGx5e1Q4KCl9fWVsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBDKXtsZXQgST1udWxsLGo9UjgoZCxnKSx1ZT0tMSxfZT12JmowLkhvc3Q/Z1sx''@;'; + put 'put ''Nl1bNl06bnVsbDtmb3IoKC0xPT09anx8diZqMC5Ta2lwU2VsZikmJih1ZT0tMT09PWo/QWMoZCxnKTpnW2orOF0sLTEhPT11ZSYmdnYodiwhMSk/KEk9Z1sxXSxqPWN1KHVlKSxnPWRmKHVlLGcpKTpqPS0xKTstMSE9PWo7KXtjb25zdCBCZT1nWzFdO2lmKGxiKEMsaixCZS5kYXRhKSl7Y29u''@;'; + put 'put ''c3QgTmU9bjYoaixnLGgsSSx2LF9lKTtpZihOZSE9PXBmKXJldHVybiBOZX11ZT1nW2orOF0sLTEhPT11ZSYmdnYodixnWzFdLmRhdGFbais4XT09PV9lKSYmbGIoQyxqLGcpPyhJPUJlLGo9Y3UodWUpLGc9ZGYodWUsZykpOmo9LTF9fXJldHVybiB5fWZ1bmN0aW9uIG42KGQsZyxoLHYseSxD''@;'; + put 'put ''KXtjb25zdCBJPWdbMV0saj1JLmRhdGFbZCs4XSxCZT1KdShqLEksaCxudWxsPT12P0NzKGopJiZQcjp2IT1JJiYwIT0oMyZqLnR5cGUpLHkmajAuSG9zdCYmQz09PWopO3JldHVybiBudWxsIT09QmU/VDQoZyxJLEJlLGopOnBmfWZ1bmN0aW9uIEp1KGQsZyxoLHYseSl7Y29uc3QgQz1kLnBy''@;'; + put 'put ''b3ZpZGVySW5kZXhlcyxJPWcuZGF0YSxqPTEwNDg1NzUmQyx1ZT1kLmRpcmVjdGl2ZVN0YXJ0LEJlPUM+PjIwLEtlPXk/aitCZTpkLmRpcmVjdGl2ZUVuZDtmb3IobGV0IGR0PXY/ajpqK0JlO2R0PEtlO2R0Kyspe2NvbnN0IE90PUlbZHRdO2lmKGR0PHVlJiZoPT09T3R8fGR0Pj11ZSYmT3Qu''@;'; + put 'put ''dHlwZT09PWgpcmV0dXJuIGR0fWlmKHkpe2NvbnN0IGR0PUlbdWVdO2lmKGR0JiZWZihkdCkmJmR0LnR5cGU9PT1oKXJldHVybiB1ZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBUNChkLGcsaCx2KXtsZXQgeT1kW2hdO2NvbnN0IEM9Zy5kYXRhO2lmKGZ1bmN0aW9uIGEwKGQpe3JldHVybiBkIGlu''@;'; + put 'put ''c3RhbmNlb2YgeWR9KHkpKXtjb25zdCBJPXk7SS5yZXNvbHZpbmcmJmZ1bmN0aW9uIGdyKGQsZyl7Y29uc3QgaD1nP2AuIERlcGVuZGVuY3kgcGF0aDogJHtnLmpvaW4oIiA+ICIpfSA+ICR7ZH1gOiIiO3Rocm93IG5ldyBlbigtMjAwLGBDaXJjdWxhciBkZXBlbmRlbmN5IGluIERJIGRldGVj''@;'; + put 'put ''dGVkIGZvciAke2R9JHtofWApfShmdW5jdGlvbiBvcihkKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZD9kLm5hbWV8fGQudG9TdHJpbmcoKToib2JqZWN0Ij09dHlwZW9mIGQmJm51bGwhPWQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLnR5cGU/ZC50eXBlLm5hbWV8fGQudHlwZS50b1N0cmlu''@;'; + put 'put ''ZygpOkpuKGQpfShDW2hdKSk7Y29uc3Qgaj1MOChJLmNhblNlZVZpZXdQcm92aWRlcnMpO0kucmVzb2x2aW5nPSEwO2NvbnN0IHVlPUkuaW5qZWN0SW1wbD9fMChJLmluamVjdEltcGwpOm51bGw7ZW8oZCx2LGowLkRlZmF1bHQpO3RyeXt5PWRbaF09SS5mYWN0b3J5KHZvaWQgMCxDLGQsdiks''@;'; + put 'put ''Zy5maXJzdENyZWF0ZVBhc3MmJmg+PXYuZGlyZWN0aXZlU3RhcnQmJmZ1bmN0aW9uIHcyKGQsZyxoKXtjb25zdHtuZ09uQ2hhbmdlczp2LG5nT25Jbml0OnksbmdEb0NoZWNrOkN9PWcudHlwZS5wcm90b3R5cGU7aWYodil7Y29uc3QgST1jdihnKTsoaC5wcmVPcmRlckhvb2tzfHwoaC5wcmVP''@;'; + put 'put ''cmRlckhvb2tzPVtdKSkucHVzaChkLEkpLChoLnByZU9yZGVyQ2hlY2tIb29rc3x8KGgucHJlT3JkZXJDaGVja0hvb2tzPVtdKSkucHVzaChkLEkpfXkmJihoLnByZU9yZGVySG9va3N8fChoLnByZU9yZGVySG9va3M9W10pKS5wdXNoKDAtZCx5KSxDJiYoKGgucHJlT3JkZXJIb29rc3x8KGgu''@;'; + put 'put ''cHJlT3JkZXJIb29rcz1bXSkpLnB1c2goZCxDKSwoaC5wcmVPcmRlckNoZWNrSG9va3N8fChoLnByZU9yZGVyQ2hlY2tIb29rcz1bXSkpLnB1c2goZCxDKSl9KGgsQ1toXSxnKX1maW5hbGx5e251bGwhPT11ZSYmXzAodWUpLEw4KGopLEkucmVzb2x2aW5nPSExLFQ4KCl9fXJldHVybiB5fWZ1''@;'; + put 'put ''bmN0aW9uIGxiKGQsZyxoKXtyZXR1cm4hIShoW2crKGQ+PjUpXSYxPDxkKX1mdW5jdGlvbiB2dihkLGcpe3JldHVybiEoZCZqMC5TZWxmfHxkJmowLkhvc3QmJmcpfWNsYXNzIEk0e2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5fdE5vZGU9Zyx0aGlzLl9sVmlldz1ofWdldChnLGgsdil7cmV0dXJu''@;'; + put 'put ''IHRtKHRoaXMuX3ROb2RlLHRoaXMuX2xWaWV3LGcsdixoKX19ZnVuY3Rpb24gT00oKXtyZXR1cm4gbmV3IEk0KEp0KCksUHQoKSl9ZnVuY3Rpb24gZmwoZCl7cmV0dXJuIEIxKCgpPT57Y29uc3QgZz1kLnByb3RvdHlwZS5jb25zdHJ1Y3RvcixoPWdbaHNdfHxubShnKSx2PU9iamVjdC5wcm90''@;'; + put 'put ''b3R5cGU7bGV0IHk9T2JqZWN0LmdldFByb3RvdHlwZU9mKGQucHJvdG90eXBlKS5jb25zdHJ1Y3Rvcjtmb3IoO3kmJnkhPT12Oyl7Y29uc3QgQz15W2hzXXx8bm0oeSk7aWYoQyYmQyE9PWgpcmV0dXJuIEM7eT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoeSl9cmV0dXJuIEM9Pm5ldyBDfSl9ZnVu''@;'; + put 'put ''Y3Rpb24gbm0oZCl7cmV0dXJuIGtuKGQpPygpPT57Y29uc3QgZz1ubShHdChkKSk7cmV0dXJuIGcmJmcoKX06amYoZCl9ZnVuY3Rpb24gRHUoZCl7Y29uc3QgZz1kWzFdLGg9Zy50eXBlO3JldHVybiAyPT09aD9nLmRlY2xUTm9kZToxPT09aD9kWzZdOm51bGx9ZnVuY3Rpb24gZzMoZCl7cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uIGFiKGQsZyl7aWYoImNsYXNzIj09PWcpcmV0dXJuIGQuY2xhc3NlcztpZigic3R5bGUiPT09ZylyZXR1cm4gZC5zdHlsZXM7Y29uc3QgaD1kLmF0dHJzO2lmKGgpe2NvbnN0IHY9aC5sZW5ndGg7bGV0IHk9MDtmb3IoO3k8djspe2NvbnN0IEM9aFt5XTtpZihzcyhDKSli''@;'; + put 'put ''cmVhaztpZigwPT09Qyl5Kz0yO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBDKWZvcih5Kys7eTx2JiYic3RyaW5nIj09dHlwZW9mIGhbeV07KXkrKztlbHNle2lmKEM9PT1nKXJldHVybiBoW3krMV07eSs9Mn19fXJldHVybiBudWxsfShKdCgpLGQpfWNvbnN0IG82PSJfX3BhcmFtZXRlcnNf''@;'; + put 'put ''XyI7ZnVuY3Rpb24gV2YoZCxnLGgpe3JldHVybiBCMSgoKT0+e2NvbnN0IHY9ZnVuY3Rpb24gUDgoZCl7cmV0dXJuIGZ1bmN0aW9uKC4uLmgpe2lmKGQpe2NvbnN0IHY9ZCguLi5oKTtmb3IoY29uc3QgeSBpbiB2KXRoaXNbeV09dlt5XX19fShnKTtmdW5jdGlvbiB5KC4uLkMpe2lmKHRoaXMg''@;'; + put 'put ''aW5zdGFuY2VvZiB5KXJldHVybiB2LmFwcGx5KHRoaXMsQyksdGhpcztjb25zdCBJPW5ldyB5KC4uLkMpO3JldHVybiBqLmFubm90YXRpb249SSxqO2Z1bmN0aW9uIGoodWUsX2UsQmUpe2NvbnN0IE5lPXVlLmhhc093blByb3BlcnR5KG82KT91ZVtvNl06T2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KHVlLG82LHt2YWx1ZTpbXX0pW282XTtmb3IoO05lLmxlbmd0aDw9QmU7KU5lLnB1c2gobnVsbCk7cmV0dXJuKE5lW0JlXT1OZVtCZV18fFtdKS5wdXNoKEkpLHVlfX1yZXR1cm4gaCYmKHkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpKSx5LnByb3RvdHlwZS5uZ01ldGFk''@;'; + put 'put ''YXRhTmFtZT1kLHkuYW5ub3RhdGlvbkNscz15LHl9KX1jbGFzcyB6ZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuX2Rlc2M9Zyx0aGlzLm5nTWV0YWRhdGFOYW1lPSJJbmplY3Rpb25Ub2tlbiIsdGhpcy5cdTAyNzVwcm92PXZvaWQgMCwibnVtYmVyIj09dHlwZW9mIGg/dGhpcy5fX05HX0VMRU1F''@;'; + put 'put ''TlRfSURfXz1oOnZvaWQgMCE9PWgmJih0aGlzLlx1MDI3NXByb3Y9QWkoe3Rva2VuOnRoaXMscHJvdmlkZWRJbjpoLnByb3ZpZGVkSW58fCJyb290IixmYWN0b3J5OmguZmFjdG9yeX0pKX1nZXQgbXVsdGkoKXtyZXR1cm4gdGhpc310b1N0cmluZygpe3JldHVybmBJbmplY3Rpb25Ub2tlbiAk''@;'; + put 'put ''e3RoaXMuX2Rlc2N9YH19Y29uc3QgV2M9RnVuY3Rpb247ZnVuY3Rpb24gZ2YoZCxnKXt2b2lkIDA9PT1nJiYoZz1kKTtmb3IobGV0IGg9MDtoPGQubGVuZ3RoO2grKyl7bGV0IHY9ZFtoXTtBcnJheS5pc0FycmF5KHYpPyhnPT09ZCYmKGc9ZC5zbGljZSgwLGgpKSxnZih2LGcpKTpnIT09ZCYm''@;'; + put 'put ''Zy5wdXNoKHYpfXJldHVybiBnfWZ1bmN0aW9uIGJkKGQsZyl7ZC5mb3JFYWNoKGg9PkFycmF5LmlzQXJyYXkoaCk/YmQoaCxnKTpnKGgpKX1mdW5jdGlvbiB1YihkLGcsaCl7Zz49ZC5sZW5ndGg/ZC5wdXNoKGgpOmQuc3BsaWNlKGcsMCxoKX1mdW5jdGlvbiBfZChkLGcpe3JldHVybiBnPj1k''@;'; + put 'put ''Lmxlbmd0aC0xP2QucG9wKCk6ZC5zcGxpY2UoZywxKVswXX1mdW5jdGlvbiBtMyhkLGcpe2NvbnN0IGg9W107Zm9yKGxldCB2PTA7djxkO3YrKyloLnB1c2goZyk7cmV0dXJuIGh9ZnVuY3Rpb24gWWMoZCxnLGgpe2xldCB2PUY4KGQsZyk7cmV0dXJuIHY+PTA/ZFsxfHZdPWg6KHY9fnYsZnVu''@;'; + put 'put ''Y3Rpb24gbDYoZCxnLGgsdil7bGV0IHk9ZC5sZW5ndGg7aWYoeT09ZylkLnB1c2goaCx2KTtlbHNlIGlmKDE9PT15KWQucHVzaCh2LGRbMF0pLGRbMF09aDtlbHNle2Zvcih5LS0sZC5wdXNoKGRbeS0xXSxkW3ldKTt5Pmc7KWRbeV09ZFt5LTJdLHktLTtkW2ddPWgsZFtnKzFdPXZ9fShkLHYs''@;'; + put 'put ''ZyxoKSksdn1mdW5jdGlvbiBpbShkLGcpe2NvbnN0IGg9RjgoZCxnKTtpZihoPj0wKXJldHVybiBkWzF8aF19ZnVuY3Rpb24gRjgoZCxnKXtyZXR1cm4gZnVuY3Rpb24gb20oZCxnLGgpe2xldCB2PTAseT1kLmxlbmd0aD4+aDtmb3IoO3khPT12Oyl7Y29uc3QgQz12Kyh5LXY+PjEpLEk9ZFtD''@;'; + put 'put ''PDxoXTtpZihnPT09SSlyZXR1cm4gQzw8aDtJPmc/eT1DOnY9QysxfXJldHVybn4oeTw8aCl9KGQsZywxKX1jb25zdCBIOD17fSxOOD0iX19OR19ESV9GTEFHX18iLEQ0PSJuZ1RlbXBUb2tlblBhdGgiLEZNPS9cbi9nbSxoYj0iX19zb3VyY2UiO2xldCBWODtmdW5jdGlvbiBqOChkKXtjb25z''@;'; + put 'put ''dCBnPVY4O3JldHVybiBWOD1kLGd9ZnVuY3Rpb24gZFIoZCxnPWowLkRlZmF1bHQpe2lmKHZvaWQgMD09PVY4KXRocm93IG5ldyBlbigtMjAzLCExKTtyZXR1cm4gbnVsbD09PVY4P2djKGQsdm9pZCAwLGcpOlY4LmdldChkLGcmajAuT3B0aW9uYWw/bnVsbDp2b2lkIDAsZyl9ZnVuY3Rpb24g''@;'; + put 'put ''Q2koZCxnPWowLkRlZmF1bHQpe3JldHVybihmdW5jdGlvbiB2bigpe3JldHVybiBCbH0oKXx8ZFIpKEd0KGQpLGcpfWZ1bmN0aW9uIGgyKGQsZz1qMC5EZWZhdWx0KXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGcmJihnPTB8KGcub3B0aW9uYWwmJjgpfChnLmhvc3QmJjEpfChnLnNlbGYmJjIp''@;'; + put 'put ''fChnLnNraXBTZWxmJiY0KSksQ2koZCxnKX1mdW5jdGlvbiB3dihkKXtjb25zdCBnPVtdO2ZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7aCsrKXtjb25zdCB2PUd0KGRbaF0pO2lmKEFycmF5LmlzQXJyYXkodikpe2lmKDA9PT12Lmxlbmd0aCl0aHJvdyBuZXcgZW4oOTAwLCExKTtsZXQgeSxDPWow''@;'; + put 'put ''LkRlZmF1bHQ7Zm9yKGxldCBJPTA7STx2Lmxlbmd0aDtJKyspe2NvbnN0IGo9dltJXSx1ZT1wUihqKTsibnVtYmVyIj09dHlwZW9mIHVlPy0xPT09dWU/eT1qLnRva2VuOkN8PXVlOnk9an1nLnB1c2goQ2koeSxDKSl9ZWxzZSBnLnB1c2goQ2kodikpfXJldHVybiBnfWZ1bmN0aW9uIGxtKGQs''@;'; + put 'put ''Zyl7cmV0dXJuIGRbTjhdPWcsZC5wcm90b3R5cGVbTjhdPWcsZH1mdW5jdGlvbiBwUihkKXtyZXR1cm4gZFtOOF19Y29uc3QgbWY9bG0oV2YoIk9wdGlvbmFsIiksOCksTDQ9bG0oV2YoIlNraXBTZWxmIiksNCk7bGV0IHBiLEc4LEEzO2Z1bmN0aW9uIFlmKGQpe3ZhciBnO3JldHVybihudWxs''@;'; + put 'put ''PT09KGc9ZnVuY3Rpb24gY20oKXtpZih2b2lkIDA9PT1HOCYmKEc4PW51bGwsUGwudHJ1c3RlZFR5cGVzKSl0cnl7Rzg9UGwudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgiYW5ndWxhciIse2NyZWF0ZUhUTUw6ZD0+ZCxjcmVhdGVTY3JpcHQ6ZD0+ZCxjcmVhdGVTY3JpcHRVUkw6ZD0+ZH0p''@;'; + put 'put ''fWNhdGNoKGQpe31yZXR1cm4gRzh9KCkpfHx2b2lkIDA9PT1nP3ZvaWQgMDpnLmNyZWF0ZUhUTUwoZCkpfHxkfWZ1bmN0aW9uIEcxKGQpe3ZhciBnO3JldHVybihudWxsPT09KGc9ZnVuY3Rpb24gbWIoKXtpZih2b2lkIDA9PT1BMyYmKEEzPW51bGwsUGwudHJ1c3RlZFR5cGVzKSl0cnl7QTM9''@;'; + put 'put ''UGwudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgiYW5ndWxhciN1bnNhZmUtYnlwYXNzIix7Y3JlYXRlSFRNTDpkPT5kLGNyZWF0ZVNjcmlwdDpkPT5kLGNyZWF0ZVNjcmlwdFVSTDpkPT5kfSl9Y2F0Y2goZCl7fXJldHVybiBBM30oKSl8fHZvaWQgMD09PWc/dm9pZCAwOmcuY3JlYXRlSFRN''@;'; + put 'put ''TChkKSl8fGR9Y2xhc3MgTzR7Y29uc3RydWN0b3IoZyl7dGhpcy5jaGFuZ2luZ1RoaXNCcmVha3NBcHBsaWNhdGlvblNlY3VyaXR5PWd9dG9TdHJpbmcoKXtyZXR1cm5gU2FmZVZhbHVlIG11c3QgdXNlIFtwcm9wZXJ0eV09YmluZGluZzogJHt0aGlzLmNoYW5naW5nVGhpc0JyZWFrc0FwcGxp''@;'; + put 'put ''Y2F0aW9uU2VjdXJpdHl9IChzZWUgaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcylgfX1jbGFzcyBobSBleHRlbmRzIE80e2dldFR5cGVOYW1lKCl7cmV0dXJuIkhUTUwifX1jbGFzcyBtYSBleHRlbmRzIE80e2dldFR5cGVOYW1lKCl7cmV0dXJuIlN0eWxlIn19Y2xhc3MgdTYgZXh0ZW5k''@;'; + put 'put ''cyBPNHtnZXRUeXBlTmFtZSgpe3JldHVybiJTY3JpcHQifX1jbGFzcyBobCBleHRlbmRzIE80e2dldFR5cGVOYW1lKCl7cmV0dXJuIlVSTCJ9fWNsYXNzIFVmIGV4dGVuZHMgTzR7Z2V0VHlwZU5hbWUoKXtyZXR1cm4iUmVzb3VyY2VVUkwifX1mdW5jdGlvbiBkMihkKXtyZXR1cm4gZCBpbnN0''@;'; + put 'put ''YW5jZW9mIE80P2QuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eTpkfWZ1bmN0aW9uICR1KGQsZyl7Y29uc3QgaD1mdW5jdGlvbiBrYShkKXtyZXR1cm4gZCBpbnN0YW5jZW9mIE80JiZkLmdldFR5cGVOYW1lKCl8fG51bGx9KGQpO2lmKG51bGwhPWgmJmghPT1nKXtpZigi''@;'; + put 'put ''UmVzb3VyY2VVUkwiPT09aCYmIlVSTCI9PT1nKXJldHVybiEwO3Rocm93IG5ldyBFcnJvcihgUmVxdWlyZWQgYSBzYWZlICR7Z30sIGdvdCBhICR7aH0gKHNlZSBodHRwczovL2cuY28vbmcvc2VjdXJpdHkjeHNzKWApfXJldHVybiBoPT09Z31jbGFzcyB4aHtjb25zdHJ1Y3RvcihnKXt0aGlz''@;'; + put 'put ''LmluZXJ0RG9jdW1lbnRIZWxwZXI9Z31nZXRJbmVydEJvZHlFbGVtZW50KGcpe2c9Ijxib2R5PjxyZW1vdmU+PC9yZW1vdmU+IitnO3RyeXtjb25zdCBoPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKFlmKGcpLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiBudWxsPT09''@;'; + put 'put ''aD90aGlzLmluZXJ0RG9jdW1lbnRIZWxwZXIuZ2V0SW5lcnRCb2R5RWxlbWVudChnKTooaC5yZW1vdmVDaGlsZChoLmZpcnN0Q2hpbGQpLGgpfWNhdGNoKGgpe3JldHVybiBudWxsfX19Y2xhc3MgWE17Y29uc3RydWN0b3IoZyl7aWYodGhpcy5kZWZhdWx0RG9jPWcsdGhpcy5pbmVydERvY3Vt''@;'; + put 'put ''ZW50PXRoaXMuZGVmYXVsdERvYy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoInNhbml0aXphdGlvbi1pbmVydCIpLG51bGw9PXRoaXMuaW5lcnREb2N1bWVudC5ib2R5KXtjb25zdCBoPXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJodG1sIik7dGhpcy5pbmVy''@;'; + put 'put ''dERvY3VtZW50LmFwcGVuZENoaWxkKGgpO2NvbnN0IHY9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvZHkiKTtoLmFwcGVuZENoaWxkKHYpfX1nZXRJbmVydEJvZHlFbGVtZW50KGcpe2NvbnN0IGg9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRl''@;'; + put 'put ''Iik7aWYoImNvbnRlbnQiaW4gaClyZXR1cm4gaC5pbm5lckhUTUw9WWYoZyksaDtjb25zdCB2PXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJib2R5Iik7cmV0dXJuIHYuaW5uZXJIVE1MPVlmKGcpLHRoaXMuZGVmYXVsdERvYy5kb2N1bWVudE1vZGUmJnRoaXMuc3RyaXBDdXN0''@;'; + put 'put ''b21Oc0F0dHJzKHYpLHZ9c3RyaXBDdXN0b21Oc0F0dHJzKGcpe2NvbnN0IGg9Zy5hdHRyaWJ1dGVzO2ZvcihsZXQgeT1oLmxlbmd0aC0xOzA8eTt5LS0pe2NvbnN0IEk9aC5pdGVtKHkpLm5hbWU7KCJ4bWxuczpuczEiPT09SXx8MD09PUkuaW5kZXhPZigibnMxOiIpKSYmZy5yZW1vdmVBdHRy''@;'; + put 'put ''aWJ1dGUoSSl9bGV0IHY9Zy5maXJzdENoaWxkO2Zvcig7djspdi5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZ0aGlzLnN0cmlwQ3VzdG9tTnNBdHRycyh2KSx2PXYubmV4dFNpYmxpbmd9fWNvbnN0IGtSPS9eKD86KD86aHR0cHM/fG1haWx0b3xmdHB8dGVsfGZpbGV8c21zKTp8W14m''@;'; + put 'put ''Oi8/I10qKD86Wy8/I118JCkpL2dpLEtNPS9eZGF0YTooPzppbWFnZVwvKD86Ym1wfGdpZnxqcGVnfGpwZ3xwbmd8dGlmZnx3ZWJwKXx2aWRlb1wvKD86bXBlZ3xtcDR8b2dnfHdlYm0pfGF1ZGlvXC8oPzptcDN8b2dhfG9nZ3xvcHVzKSk7YmFzZTY0LFthLXowLTkrXC9dKz0qJC9pO2Z1bmN0''@;'; + put 'put ''aW9uIHZmKGQpe3JldHVybihkPVN0cmluZyhkKSkubWF0Y2goa1IpfHxkLm1hdGNoKEtNKT9kOiJ1bnNhZmU6IitkfWZ1bmN0aW9uICRNKGQpe3JldHVybihkPVN0cmluZyhkKSkuc3BsaXQoIiwiKS5tYXAoZz0+dmYoZy50cmltKCkpKS5qb2luKCIsICIpfWZ1bmN0aW9uIHczKGQpe2NvbnN0''@;'; + put 'put ''IGc9e307Zm9yKGNvbnN0IGggb2YgZC5zcGxpdCgiLCIpKWdbaF09ITA7cmV0dXJuIGd9ZnVuY3Rpb24gcG0oLi4uZCl7Y29uc3QgZz17fTtmb3IoY29uc3QgaCBvZiBkKWZvcihjb25zdCB2IGluIGgpaC5oYXNPd25Qcm9wZXJ0eSh2KSYmKGdbdl09ITApO3JldHVybiBnfWNvbnN0IHFNPXcz''@;'; + put 'put ''KCJhcmVhLGJyLGNvbCxocixpbWcsd2JyIiksZUU9dzMoImNvbGdyb3VwLGRkLGR0LGxpLHAsdGJvZHksdGQsdGZvb3QsdGgsdGhlYWQsdHIiKSx0RT13MygicnAscnQiKSx2Yj1wbShxTSxwbShlRSx3MygiYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGJsb2NrcXVvdGUsY2FwdGlvbixjZW50ZXIs''@;'; + put 'put ''ZGVsLGRldGFpbHMsZGlhbG9nLGRpcixkaXYsZGwsZmlndXJlLGZpZ2NhcHRpb24sZm9vdGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhlYWRlcixoZ3JvdXAsaHIsaW5zLG1haW4sbWFwLG1lbnUsbmF2LG9sLHByZSxzZWN0aW9uLHN1bW1hcnksdGFibGUsdWwiKSkscG0odEUsdzMoImEsYWJicixh''@;'; + put 'put ''Y3JvbnltLGF1ZGlvLGIsYmRpLGJkbyxiaWcsYnIsY2l0ZSxjb2RlLGRlbCxkZm4sZW0sZm9udCxpLGltZyxpbnMsa2JkLGxhYmVsLG1hcCxtYXJrLHBpY3R1cmUscSxydWJ5LHJwLHJ0LHMsc2FtcCxzbWFsbCxzb3VyY2Usc3BhbixzdHJpa2Usc3Ryb25nLHN1YixzdXAsdGltZSx0cmFjayx0''@;'; + put 'put ''dCx1LHZhcix2aWRlbyIpKSxwbSh0RSxlRSkpLEFiPXczKCJiYWNrZ3JvdW5kLGNpdGUsaHJlZixpdGVtdHlwZSxsb25nZGVzYyxwb3N0ZXIsc3JjLHhsaW5rOmhyZWYiKSx5Yj13Mygic3Jjc2V0IiksU3Y9cG0oQWIseWIsdzMoImFiYnIsYWNjZXNza2V5LGFsaWduLGFsdCxhdXRvcGxheSxh''@;'; + put 'put ''eGlzLGJnY29sb3IsYm9yZGVyLGNlbGxwYWRkaW5nLGNlbGxzcGFjaW5nLGNsYXNzLGNsZWFyLGNvbG9yLGNvbHMsY29sc3Bhbixjb21wYWN0LGNvbnRyb2xzLGNvb3JkcyxkYXRldGltZSxkZWZhdWx0LGRpcixkb3dubG9hZCxmYWNlLGhlYWRlcnMsaGVpZ2h0LGhpZGRlbixocmVmbGFuZyxo''@;'; + put 'put ''c3BhY2UsaXNtYXAsaXRlbXNjb3BlLGl0ZW1wcm9wLGtpbmQsbGFiZWwsbGFuZyxsYW5ndWFnZSxsb29wLG1lZGlhLG11dGVkLG5vaHJlZixub3dyYXAsb3BlbixwcmVsb2FkLHJlbCxyZXYscm9sZSxyb3dzLHJvd3NwYW4scnVsZXMsc2NvcGUsc2Nyb2xsaW5nLHNoYXBlLHNpemUsc2l6ZXMs''@;'; + put 'put ''c3BhbixzcmNsYW5nLHN0YXJ0LHN1bW1hcnksdGFiaW5kZXgsdGFyZ2V0LHRpdGxlLHRyYW5zbGF0ZSx0eXBlLHVzZW1hcCx2YWxpZ24sdmFsdWUsdnNwYWNlLHdpZHRoIiksdzMoImFyaWEtYWN0aXZlZGVzY2VuZGFudCxhcmlhLWF0b21pYyxhcmlhLWF1dG9jb21wbGV0ZSxhcmlhLWJ1c3ks''@;'; + put 'put ''YXJpYS1jaGVja2VkLGFyaWEtY29sY291bnQsYXJpYS1jb2xpbmRleCxhcmlhLWNvbHNwYW4sYXJpYS1jb250cm9scyxhcmlhLWN1cnJlbnQsYXJpYS1kZXNjcmliZWRieSxhcmlhLWRldGFpbHMsYXJpYS1kaXNhYmxlZCxhcmlhLWRyb3BlZmZlY3QsYXJpYS1lcnJvcm1lc3NhZ2UsYXJpYS1l''@;'; + put 'put ''eHBhbmRlZCxhcmlhLWZsb3d0byxhcmlhLWdyYWJiZWQsYXJpYS1oYXNwb3B1cCxhcmlhLWhpZGRlbixhcmlhLWludmFsaWQsYXJpYS1rZXlzaG9ydGN1dHMsYXJpYS1sYWJlbCxhcmlhLWxhYmVsbGVkYnksYXJpYS1sZXZlbCxhcmlhLWxpdmUsYXJpYS1tb2RhbCxhcmlhLW11bHRpbGluZSxh''@;'; + put 'put ''cmlhLW11bHRpc2VsZWN0YWJsZSxhcmlhLW9yaWVudGF0aW9uLGFyaWEtb3ducyxhcmlhLXBsYWNlaG9sZGVyLGFyaWEtcG9zaW5zZXQsYXJpYS1wcmVzc2VkLGFyaWEtcmVhZG9ubHksYXJpYS1yZWxldmFudCxhcmlhLXJlcXVpcmVkLGFyaWEtcm9sZWRlc2NyaXB0aW9uLGFyaWEtcm93Y291''@;'; + put 'put ''bnQsYXJpYS1yb3dpbmRleCxhcmlhLXJvd3NwYW4sYXJpYS1zZWxlY3RlZCxhcmlhLXNldHNpemUsYXJpYS1zb3J0LGFyaWEtdmFsdWVtYXgsYXJpYS12YWx1ZW1pbixhcmlhLXZhbHVlbm93LGFyaWEtdmFsdWV0ZXh0IikpLE12PXczKCJzY3JpcHQsc3R5bGUsdGVtcGxhdGUiKTtjbGFzcyBF''@;'; + put 'put ''Untjb25zdHJ1Y3Rvcigpe3RoaXMuc2FuaXRpemVkU29tZXRoaW5nPSExLHRoaXMuYnVmPVtdfXNhbml0aXplQ2hpbGRyZW4oZyl7bGV0IGg9Zy5maXJzdENoaWxkLHY9ITA7Zm9yKDtoOylpZihoLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREU/dj10aGlzLnN0YXJ0RWxlbWVudChoKTpo''@;'; + put 'put ''Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/dGhpcy5jaGFycyhoLm5vZGVWYWx1ZSk6dGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITAsdiYmaC5maXJzdENoaWxkKWg9aC5maXJzdENoaWxkO2Vsc2UgZm9yKDtoOyl7aC5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZ0aGlzLmVuZEVs''@;'; + put 'put ''ZW1lbnQoaCk7bGV0IHk9dGhpcy5jaGVja0Nsb2JiZXJlZEVsZW1lbnQoaCxoLm5leHRTaWJsaW5nKTtpZih5KXtoPXk7YnJlYWt9aD10aGlzLmNoZWNrQ2xvYmJlcmVkRWxlbWVudChoLGgucGFyZW50Tm9kZSl9cmV0dXJuIHRoaXMuYnVmLmpvaW4oIiIpfXN0YXJ0RWxlbWVudChnKXtjb25z''@;'; + put 'put ''dCBoPWcubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZighdmIuaGFzT3duUHJvcGVydHkoaCkpcmV0dXJuIHRoaXMuc2FuaXRpemVkU29tZXRoaW5nPSEwLCFNdi5oYXNPd25Qcm9wZXJ0eShoKTt0aGlzLmJ1Zi5wdXNoKCI8IiksdGhpcy5idWYucHVzaChoKTtjb25zdCB2PWcuYXR0cmlidXRl''@;'; + put 'put ''cztmb3IobGV0IHk9MDt5PHYubGVuZ3RoO3krKyl7Y29uc3QgQz12Lml0ZW0oeSksST1DLm5hbWUsaj1JLnRvTG93ZXJDYXNlKCk7aWYoIVN2Lmhhc093blByb3BlcnR5KGopKXt0aGlzLnNhbml0aXplZFNvbWV0aGluZz0hMDtjb250aW51ZX1sZXQgdWU9Qy52YWx1ZTtBYltqXSYmKHVlPXZm''@;'; + put 'put ''KHVlKSkseWJbal0mJih1ZT0kTSh1ZSkpLHRoaXMuYnVmLnB1c2goIiAiLEksJz0iJyxuRSh1ZSksJyInKX1yZXR1cm4gdGhpcy5idWYucHVzaCgiPiIpLCEwfWVuZEVsZW1lbnQoZyl7Y29uc3QgaD1nLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7dmIuaGFzT3duUHJvcGVydHkoaCkmJiFxTS5o''@;'; + put 'put ''YXNPd25Qcm9wZXJ0eShoKSYmKHRoaXMuYnVmLnB1c2goIjwvIiksdGhpcy5idWYucHVzaChoKSx0aGlzLmJ1Zi5wdXNoKCI+IikpfWNoYXJzKGcpe3RoaXMuYnVmLnB1c2gobkUoZykpfWNoZWNrQ2xvYmJlcmVkRWxlbWVudChnLGgpe2lmKGgmJihnLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9u''@;'; + put 'put ''KGgpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZKT09PU5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZKXRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHNhbml0aXplIGh0bWwgYmVjYXVzZSB0aGUgZWxlbWVudCBpcyBjbG9iYmVyZWQ6ICR7Zy5vdXRlckhU''@;'; + put 'put ''TUx9YCk7cmV0dXJuIGh9fWNvbnN0IHhSPS9bXHVEODAwLVx1REJGRl1bXHVEQzAwLVx1REZGRl0vZyxUUj0vKFteXCMtfiB8IV0pL2c7ZnVuY3Rpb24gbkUoZCl7cmV0dXJuIGQucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoeFIsZnVuY3Rpb24oZyl7cmV0dXJuIiYjIisoMTAyNCoo''@;'; + put 'put ''Zy5jaGFyQ29kZUF0KDApLTU1Mjk2KSsoZy5jaGFyQ29kZUF0KDEpLTU2MzIwKSs2NTUzNikrIjsifSkucmVwbGFjZShUUixmdW5jdGlvbihnKXtyZXR1cm4iJiMiK2cuY2hhckNvZGVBdCgwKSsiOyJ9KS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKX1sZXQgZ207''@;'; + put 'put ''ZnVuY3Rpb24gRXYoZCxnKXtsZXQgaD1udWxsO3RyeXtnbT1nbXx8ZnVuY3Rpb24gSk0oZCl7Y29uc3QgZz1uZXcgWE0oZCk7cmV0dXJuIGZ1bmN0aW9uIENSKCl7dHJ5e3JldHVybiEhKG5ldyB3aW5kb3cuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoWWYoIiIpLCJ0ZXh0L2h0bWwiKX1j''@;'; + put 'put ''YXRjaChkKXtyZXR1cm4hMX19KCk/bmV3IHhoKGcpOmd9KGQpO2xldCB2PWc/U3RyaW5nKGcpOiIiO2g9Z20uZ2V0SW5lcnRCb2R5RWxlbWVudCh2KTtsZXQgeT01LEM9djtkb3tpZigwPT09eSl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBzYW5pdGl6ZSBodG1sIGJlY2F1c2UgdGhlIGlu''@;'; + put 'put ''cHV0IGlzIHVuc3RhYmxlIik7eS0tLHY9QyxDPWguaW5uZXJIVE1MLGg9Z20uZ2V0SW5lcnRCb2R5RWxlbWVudCh2KX13aGlsZSh2IT09Qyk7cmV0dXJuIFlmKChuZXcgRVIpLnNhbml0aXplQ2hpbGRyZW4oWTgoaCl8fGgpKX1maW5hbGx5e2lmKGgpe2NvbnN0IHY9WTgoaCl8fGg7Zm9yKDt2''@;'; + put 'put ''LmZpcnN0Q2hpbGQ7KXYucmVtb3ZlQ2hpbGQodi5maXJzdENoaWxkKX19fWZ1bmN0aW9uIFk4KGQpe3JldHVybiJjb250ZW50ImluIGQmJmZ1bmN0aW9uIGIzKGQpe3JldHVybiBkLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJiJURU1QTEFURSI9PT1kLm5vZGVOYW1lfShkKT9kLmNv''@;'; + put 'put ''bnRlbnQ6bnVsbH12YXIgYTI9KCgpPT4oKGEyPWEyfHx7fSlbYTIuTk9ORT0wXT0iTk9ORSIsYTJbYTIuSFRNTD0xXT0iSFRNTCIsYTJbYTIuU1RZTEU9Ml09IlNUWUxFIixhMlthMi5TQ1JJUFQ9M109IlNDUklQVCIsYTJbYTIuVVJMPTRdPSJVUkwiLGEyW2EyLlJFU09VUkNFX1VSTD01XT0i''@;'; + put 'put ''UkVTT1VSQ0VfVVJMIixhMikpKCk7ZnVuY3Rpb24gVTgoZCl7Y29uc3QgZz1jNigpO3JldHVybiBnP0cxKGcuc2FuaXRpemUoYTIuSFRNTCxkKXx8IiIpOiR1KGQsIkhUTUwiKT9HMShkMihkKSk6RXYoZnVuY3Rpb24gWU0oKXtyZXR1cm4gdm9pZCAwIT09cGI/cGI6InVuZGVmaW5lZCIhPXR5''@;'; + put 'put ''cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDB9KCksSm4oZCkpfWZ1bmN0aW9uIHh2KGQpe2NvbnN0IGc9YzYoKTtyZXR1cm4gZz9nLnNhbml0aXplKGEyLlVSTCxkKXx8IiI6JHUoZCwiVVJMIik/ZDIoZCk6dmYoSm4oZCkpfWZ1bmN0aW9uIGM2KCl7Y29uc3QgZD1QdCgpO3JldHVybiBk''@;'; + put 'put ''JiZkWzEyXX1jb25zdCBpRT1uZXcgemUoIkVOVklST05NRU5UX0lOSVRJQUxJWkVSIikseWM9bmV3IHplKCJJTkpFQ1RPUiIsLTEpLHdjPW5ldyB6ZSgiSU5KRUNUT1JfREVGX1RZUEVTIik7Y2xhc3MgUjR7Z2V0KGcsaD1IOCl7aWYoaD09PUg4KXtjb25zdCB2PW5ldyBFcnJvcihgTnVsbElu''@;'; + put 'put ''amVjdG9yRXJyb3I6IE5vIHByb3ZpZGVyIGZvciAke21uKGcpfSFgKTt0aHJvdyB2Lm5hbWU9Ik51bGxJbmplY3RvckVycm9yIix2fXJldHVybiBofX1mdW5jdGlvbiBUaCguLi5kKXtyZXR1cm57XHUwMjc1cHJvdmlkZXJzOkFmKDAsZCl9fWZ1bmN0aW9uIEFmKGQsLi4uZyl7Y29uc3QgaD1b''@;'; + put 'put ''XSx2PW5ldyBTZXQ7bGV0IHk7cmV0dXJuIGJkKGcsQz0+e2NvbnN0IEk9QztKOChJLGgsW10sdikmJih5fHwoeT1bXSkseS5wdXNoKEkpKX0pLHZvaWQgMCE9PXkmJkMzKHksaCksaH1mdW5jdGlvbiBDMyhkLGcpe2ZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7aCsrKXtjb25zdHtwcm92aWRlcnM6''@;'; + put 'put ''eX09ZFtoXTtiZCh5LEM9PntnLnB1c2goQyl9KX19ZnVuY3Rpb24gSjgoZCxnLGgsdil7aWYoIShkPUd0KGQpKSlyZXR1cm4hMTtsZXQgeT1udWxsLEM9SGMoZCk7Y29uc3QgST0hQyYmbXMoZCk7aWYoQ3x8SSl7aWYoSSYmIUkuc3RhbmRhbG9uZSlyZXR1cm4hMTt5PWR9ZWxzZXtjb25zdCB1''@;'; + put 'put ''ZT1kLm5nTW9kdWxlO2lmKEM9SGModWUpLCFDKXJldHVybiExO3k9dWV9Y29uc3Qgaj12Lmhhcyh5KTtpZihJKXtpZihqKXJldHVybiExO2lmKHYuYWRkKHkpLEkuZGVwZW5kZW5jaWVzKXtjb25zdCB1ZT0iZnVuY3Rpb24iPT10eXBlb2YgSS5kZXBlbmRlbmNpZXM/SS5kZXBlbmRlbmNpZXMo''@;'; + put 'put ''KTpJLmRlcGVuZGVuY2llcztmb3IoY29uc3QgX2Ugb2YgdWUpSjgoX2UsZyxoLHYpfX1lbHNle2lmKCFDKXJldHVybiExO3tpZihudWxsIT1DLmltcG9ydHMmJiFqKXtsZXQgX2U7di5hZGQoeSk7dHJ5e2JkKEMuaW1wb3J0cyxCZT0+e0o4KEJlLGcsaCx2KSYmKF9lfHwoX2U9W10pLF9lLnB1''@;'; + put 'put ''c2goQmUpKX0pfWZpbmFsbHl7fXZvaWQgMCE9PV9lJiZDMyhfZSxnKX1pZighail7Y29uc3QgX2U9amYoeSl8fCgoKT0+bmV3IHkpO2cucHVzaCh7cHJvdmlkZTp5LHVzZUZhY3Rvcnk6X2UsZGVwczpaMH0se3Byb3ZpZGU6d2MsdXNlVmFsdWU6eSxtdWx0aTohMH0se3Byb3ZpZGU6aUUsdXNl''@;'; + put 'put ''VmFsdWU6KCk9PkNpKHkpLG11bHRpOiEwfSl9Y29uc3QgdWU9Qy5wcm92aWRlcnM7bnVsbD09dWV8fGp8fGJkKHVlLEJlPT57Zy5wdXNoKEJlKX0pfX1yZXR1cm4geSE9PWQmJnZvaWQgMCE9PWQucHJvdmlkZXJzfWNvbnN0IG9FPUJuKHtwcm92aWRlOlN0cmluZyx1c2VWYWx1ZTpCbn0pO2Z1''@;'; + put 'put ''bmN0aW9uIEl2KGQpe3JldHVybiBudWxsIT09ZCYmIm9iamVjdCI9PXR5cGVvZiBkJiZvRSBpbiBkfWZ1bmN0aW9uIGszKGQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBkfWNvbnN0IHZtPW5ldyB6ZSgiU2V0IEluamVjdG9yIHNjb3BlLiIpLFMzPXt9LE9SPXt9O2xldCBoNjtmdW5jdGlv''@;'; + put 'put ''biBNMygpe3JldHVybiB2b2lkIDA9PT1oNiYmKGg2PW5ldyBSNCksaDZ9Y2xhc3MgRTN7fWNsYXNzIF9iIGV4dGVuZHMgRTN7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoKSx0aGlzLnBhcmVudD1oLHRoaXMuc291cmNlPXYsdGhpcy5zY29wZXM9eSx0aGlzLnJlY29yZHM9bmV3IE1hcCx0''@;'; + put 'put ''aGlzLl9uZ09uRGVzdHJveUhvb2tzPW5ldyBTZXQsdGhpcy5fb25EZXN0cm95SG9va3M9W10sdGhpcy5fZGVzdHJveWVkPSExLHgzKGcsST0+dGhpcy5wcm9jZXNzUHJvdmlkZXIoSSkpLHRoaXMucmVjb3Jkcy5zZXQoeWMsZDYodm9pZCAwLHRoaXMpKSx5LmhhcygiZW52aXJvbm1lbnQiKSYm''@;'; + put 'put ''dGhpcy5yZWNvcmRzLnNldChFMyxkNih2b2lkIDAsdGhpcykpO2NvbnN0IEM9dGhpcy5yZWNvcmRzLmdldCh2bSk7bnVsbCE9QyYmInN0cmluZyI9PXR5cGVvZiBDLnZhbHVlJiZ0aGlzLnNjb3Blcy5hZGQoQy52YWx1ZSksdGhpcy5pbmplY3RvckRlZlR5cGVzPW5ldyBTZXQodGhpcy5nZXQo''@;'; + put 'put ''d2MubXVsdGksWjAsajAuU2VsZikpfWdldCBkZXN0cm95ZWQoKXtyZXR1cm4gdGhpcy5fZGVzdHJveWVkfWRlc3Ryb3koKXt0aGlzLmFzc2VydE5vdERlc3Ryb3llZCgpLHRoaXMuX2Rlc3Ryb3llZD0hMDt0cnl7Zm9yKGNvbnN0IGcgb2YgdGhpcy5fbmdPbkRlc3Ryb3lIb29rcylnLm5nT25E''@;'; + put 'put ''ZXN0cm95KCk7Zm9yKGNvbnN0IGcgb2YgdGhpcy5fb25EZXN0cm95SG9va3MpZygpfWZpbmFsbHl7dGhpcy5yZWNvcmRzLmNsZWFyKCksdGhpcy5fbmdPbkRlc3Ryb3lIb29rcy5jbGVhcigpLHRoaXMuaW5qZWN0b3JEZWZUeXBlcy5jbGVhcigpLHRoaXMuX29uRGVzdHJveUhvb2tzLmxlbmd0''@;'; + put 'put ''aD0wfX1vbkRlc3Ryb3koZyl7dGhpcy5fb25EZXN0cm95SG9va3MucHVzaChnKX1ydW5JbkNvbnRleHQoZyl7dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKTtjb25zdCBoPWo4KHRoaXMpLHY9XzAodm9pZCAwKTt0cnl7cmV0dXJuIGcoKX1maW5hbGx5e2o4KGgpLF8wKHYpfX1nZXQoZyxoPUg4''@;'; + put 'put ''LHY9ajAuRGVmYXVsdCl7dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKTtjb25zdCB5PWo4KHRoaXMpLEM9XzAodm9pZCAwKTt0cnl7aWYoISh2JmowLlNraXBTZWxmKSl7bGV0IGo9dGhpcy5yZWNvcmRzLmdldChnKTtpZih2b2lkIDA9PT1qKXtjb25zdCB1ZT1mdW5jdGlvbiBzRShkKXtyZXR1''@;'; + put 'put ''cm4iZnVuY3Rpb24iPT10eXBlb2YgZHx8Im9iamVjdCI9PXR5cGVvZiBkJiZkIGluc3RhbmNlb2YgemV9KGcpJiZzYShnKTtqPXVlJiZ0aGlzLmluamVjdGFibGVEZWZJblNjb3BlKHVlKT9kNihDZChnKSxTMyk6bnVsbCx0aGlzLnJlY29yZHMuc2V0KGcsail9aWYobnVsbCE9ailyZXR1cm4g''@;'; + put 'put ''dGhpcy5oeWRyYXRlKGcsail9cmV0dXJuKHYmajAuU2VsZj9NMygpOnRoaXMucGFyZW50KS5nZXQoZyxoPXYmajAuT3B0aW9uYWwmJmg9PT1IOD9udWxsOmgpfWNhdGNoKEkpe2lmKCJOdWxsSW5qZWN0b3JFcnJvciI9PT1JLm5hbWUpe2lmKChJW0Q0XT1JW0Q0XXx8W10pLnVuc2hpZnQobW4o''@;'; + put 'put ''ZykpLHkpdGhyb3cgSTtyZXR1cm4gZnVuY3Rpb24gZ1IoZCxnLGgsdil7Y29uc3QgeT1kW0Q0XTt0aHJvdyBnW2hiXSYmeS51bnNoaWZ0KGdbaGJdKSxkLm1lc3NhZ2U9ZnVuY3Rpb24gejEoZCxnLGgsdj1udWxsKXtkPWQmJiJcbiI9PT1kLmNoYXJBdCgwKSYmIlx1MDI3NSI9PWQuY2hhckF0''@;'; + put 'put ''KDEpP2Quc2xpY2UoMik6ZDtsZXQgeT1tbihnKTtpZihBcnJheS5pc0FycmF5KGcpKXk9Zy5tYXAobW4pLmpvaW4oIiAtPiAiKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgZyl7bGV0IEM9W107Zm9yKGxldCBJIGluIGcpaWYoZy5oYXNPd25Qcm9wZXJ0eShJKSl7bGV0IGo9Z1tJXTtDLnB1''@;'; + put 'put ''c2goSSsiOiIrKCJzdHJpbmciPT10eXBlb2Ygaj9KU09OLnN0cmluZ2lmeShqKTptbihqKSkpfXk9YHske0Muam9pbigiLCAiKX19YH1yZXR1cm5gJHtofSR7dj8iKCIrdisiKSI6IiJ9WyR7eX1dOiAke2QucmVwbGFjZShGTSwiXG4gICIpfWB9KCJcbiIrZC5tZXNzYWdlLHksaCx2KSxkLm5n''@;'; + put 'put ''VG9rZW5QYXRoPXksZFtENF09bnVsbCxkfShJLGcsIlIzSW5qZWN0b3JFcnJvciIsdGhpcy5zb3VyY2UpfXRocm93IEl9ZmluYWxseXtfMChDKSxqOCh5KX19cmVzb2x2ZUluamVjdG9ySW5pdGlhbGl6ZXJzKCl7Y29uc3QgZz1qOCh0aGlzKSxoPV8wKHZvaWQgMCk7dHJ5e2NvbnN0IHY9dGhp''@;'; + put 'put ''cy5nZXQoaUUubXVsdGksWjAsajAuU2VsZik7Zm9yKGNvbnN0IHkgb2Ygdil5KCl9ZmluYWxseXtqOChnKSxfMChoKX19dG9TdHJpbmcoKXtjb25zdCBnPVtdLGg9dGhpcy5yZWNvcmRzO2Zvcihjb25zdCB2IG9mIGgua2V5cygpKWcucHVzaChtbih2KSk7cmV0dXJuYFIzSW5qZWN0b3JbJHtn''@;'; + put 'put ''LmpvaW4oIiwgIil9XWB9YXNzZXJ0Tm90RGVzdHJveWVkKCl7aWYodGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyBlbigyMDUsITEpfXByb2Nlc3NQcm92aWRlcihnKXtsZXQgaD1rMyhnPUd0KGcpKT9nOkd0KGcmJmcucHJvdmlkZSk7Y29uc3Qgdj1mdW5jdGlvbiBhRShkKXtyZXR1cm4gSXYo''@;'; + put 'put ''ZCk/ZDYodm9pZCAwLGQudXNlVmFsdWUpOmQ2KGxFKGQpLFMzKX0oZyk7aWYoazMoZyl8fCEwIT09Zy5tdWx0aSl0aGlzLnJlY29yZHMuZ2V0KGgpO2Vsc2V7bGV0IHk9dGhpcy5yZWNvcmRzLmdldChoKTt5fHwoeT1kNih2b2lkIDAsUzMsITApLHkuZmFjdG9yeT0oKT0+d3YoeS5tdWx0aSks''@;'; + put 'put ''dGhpcy5yZWNvcmRzLnNldChoLHkpKSxoPWcseS5tdWx0aS5wdXNoKGcpfXRoaXMucmVjb3Jkcy5zZXQoaCx2KX1oeWRyYXRlKGcsaCl7cmV0dXJuIGgudmFsdWU9PT1TMyYmKGgudmFsdWU9T1IsaC52YWx1ZT1oLmZhY3RvcnkoKSksIm9iamVjdCI9PXR5cGVvZiBoLnZhbHVlJiZoLnZhbHVl''@;'; + put 'put ''JiZmdW5jdGlvbiBSUihkKXtyZXR1cm4gbnVsbCE9PWQmJiJvYmplY3QiPT10eXBlb2YgZCYmImZ1bmN0aW9uIj09dHlwZW9mIGQubmdPbkRlc3Ryb3l9KGgudmFsdWUpJiZ0aGlzLl9uZ09uRGVzdHJveUhvb2tzLmFkZChoLnZhbHVlKSxoLnZhbHVlfWluamVjdGFibGVEZWZJblNjb3BlKGcp''@;'; + put 'put ''e2lmKCFnLnByb3ZpZGVkSW4pcmV0dXJuITE7Y29uc3QgaD1HdChnLnByb3ZpZGVkSW4pO3JldHVybiJzdHJpbmciPT10eXBlb2YgaD8iYW55Ij09PWh8fHRoaXMuc2NvcGVzLmhhcyhoKTp0aGlzLmluamVjdG9yRGVmVHlwZXMuaGFzKGgpfX1mdW5jdGlvbiBDZChkKXtjb25zdCBnPXNhKGQp''@;'; + put 'put ''LGg9bnVsbCE9PWc/Zy5mYWN0b3J5OmpmKGQpO2lmKG51bGwhPT1oKXJldHVybiBoO2lmKGQgaW5zdGFuY2VvZiB6ZSl0aHJvdyBuZXcgZW4oMjA0LCExKTtpZihkIGluc3RhbmNlb2YgRnVuY3Rpb24pcmV0dXJuIGZ1bmN0aW9uIER2KGQpe2NvbnN0IGc9ZC5sZW5ndGg7aWYoZz4wKXRocm93''@;'; + put 'put ''IG0zKGcsIj8iKSxuZXcgZW4oMjA0LCExKTtjb25zdCBoPWZ1bmN0aW9uIGJpKGQpe2NvbnN0IGc9ZCYmKGRbVTBdfHxkW1gwXSk7aWYoZyl7Y29uc3QgaD1mdW5jdGlvbiBvdShkKXtpZihkLmhhc093blByb3BlcnR5KCJuYW1lIikpcmV0dXJuIGQubmFtZTtjb25zdCBnPSgiIitkKS5tYXRj''@;'; + put 'put ''aCgvXmZ1bmN0aW9uXHMqKFteXHMoXSspLyk7cmV0dXJuIG51bGw9PT1nPyIiOmdbMV19KGQpO3JldHVybiBjb25zb2xlLndhcm4oYERFUFJFQ0FURUQ6IERJIGlzIGluc3RhbnRpYXRpbmcgYSB0b2tlbiAiJHtofSIgdGhhdCBpbmhlcml0cyBpdHMgQEluamVjdGFibGUgZGVjb3JhdG9yIGJ1''@;'; + put 'put ''dCBkb2VzIG5vdCBwcm92aWRlIG9uZSBpdHNlbGYuXG5UaGlzIHdpbGwgYmVjb21lIGFuIGVycm9yIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgQW5ndWxhci4gUGxlYXNlIGFkZCBASW5qZWN0YWJsZSgpIHRvIHRoZSAiJHtofSIgY2xhc3MuYCksZ31yZXR1cm4gbnVsbH0oZCk7cmV0dXJuIG51''@;'; + put 'put ''bGwhPT1oPygpPT5oLmZhY3RvcnkoZCk6KCk9Pm5ldyBkfShkKTt0aHJvdyBuZXcgZW4oMjA0LCExKX1mdW5jdGlvbiBsRShkLGcsaCl7bGV0IHY7aWYoazMoZCkpe2NvbnN0IHk9R3QoZCk7cmV0dXJuIGpmKHkpfHxDZCh5KX1pZihJdihkKSl2PSgpPT5HdChkLnVzZVZhbHVlKTtlbHNlIGlm''@;'; + put 'put ''KGZ1bmN0aW9uIGY2KGQpe3JldHVybiEoIWR8fCFkLnVzZUZhY3RvcnkpfShkKSl2PSgpPT5kLnVzZUZhY3RvcnkoLi4ud3YoZC5kZXBzfHxbXSkpO2Vsc2UgaWYoZnVuY3Rpb24gWDgoZCl7cmV0dXJuISghZHx8IWQudXNlRXhpc3RpbmcpfShkKSl2PSgpPT5DaShHdChkLnVzZUV4aXN0aW5n''@;'; + put 'put ''KSk7ZWxzZXtjb25zdCB5PUd0KGQmJihkLnVzZUNsYXNzfHxkLnByb3ZpZGUpKTtpZighZnVuY3Rpb24gTHYoZCl7cmV0dXJuISFkLmRlcHN9KGQpKXJldHVybiBqZih5KXx8Q2QoeSk7dj0oKT0+bmV3IHkoLi4ud3YoZC5kZXBzKSl9cmV0dXJuIHZ9ZnVuY3Rpb24gZDYoZCxnLGg9ITEpe3Jl''@;'; + put 'put ''dHVybntmYWN0b3J5OmQsdmFsdWU6ZyxtdWx0aTpoP1tdOnZvaWQgMH19ZnVuY3Rpb24gdUUoZCl7cmV0dXJuISFkLlx1MDI3NXByb3ZpZGVyc31mdW5jdGlvbiB4MyhkLGcpe2Zvcihjb25zdCBoIG9mIGQpQXJyYXkuaXNBcnJheShoKT94MyhoLGcpOnVFKGgpP3gzKGguXHUwMjc1cHJvdmlk''@;'; + put 'put ''ZXJzLGcpOmcoaCl9Y2xhc3MgY0V7fWNsYXNzIGhFe3Jlc29sdmVDb21wb25lbnRGYWN0b3J5KGcpe3Rocm93IGZ1bmN0aW9uIEJSKGQpe2NvbnN0IGc9RXJyb3IoYE5vIGNvbXBvbmVudCBmYWN0b3J5IGZvdW5kIGZvciAke21uKGQpfS4gRGlkIHlvdSBhZGQgaXQgdG8gQE5nTW9kdWxlLmVu''@;'; + put 'put ''dHJ5Q29tcG9uZW50cz9gKTtyZXR1cm4gZy5uZ0NvbXBvbmVudD1kLGd9KGcpfX1sZXQga2Q9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuTlVMTD1uZXcgaEUsZH0pKCk7ZnVuY3Rpb24gZEUoKXtyZXR1cm4gcDYoSnQoKSxQdCgpKX1mdW5jdGlvbiBwNihkLGcpe3JldHVybiBuZXcgYm8odmMo''@;'; + put 'put ''ZCxnKSl9bGV0IGJvPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5uYXRpdmVFbGVtZW50PWh9fXJldHVybiBkLl9fTkdfRUxFTUVOVF9JRF9fPWRFLGR9KSgpO2Z1bmN0aW9uIE92KGQpe3JldHVybiBkIGluc3RhbmNlb2YgYm8/ZC5uYXRpdmVFbGVtZW50OmR9Y2xhc3MgU2R7''@;'; + put 'put ''fWxldCBHYT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5fX05HX0VMRU1FTlRfSURfXz0oKT0+ZnVuY3Rpb24gRlIoKXtjb25zdCBkPVB0KCksaD1RdShKdCgpLmluZGV4LGQpO3JldHVybihUdShoKT9oOmQpWzExXX0oKSxkfSkoKSxwRT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVw''@;'; + put 'put ''cm92PUFpKHt0b2tlbjpkLHByb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9Pm51bGx9KSxkfSkoKTtjbGFzcyBQNHtjb25zdHJ1Y3RvcihnKXt0aGlzLmZ1bGw9Zyx0aGlzLm1ham9yPWcuc3BsaXQoIi4iKVswXSx0aGlzLm1pbm9yPWcuc3BsaXQoIi4iKVsxXSx0aGlzLnBhdGNoPWcuc3Bs''@;'; + put 'put ''aXQoIi4iKS5zbGljZSgyKS5qb2luKCIuIil9fWNvbnN0IGdFPW5ldyBQNCgiMTQuMS4xIiksUnY9e307ZnVuY3Rpb24gQ2IoZCl7cmV0dXJuIGQubmdPcmlnaW5hbEVycm9yfWNsYXNzIHY2e2NvbnN0cnVjdG9yKCl7dGhpcy5fY29uc29sZT1jb25zb2xlfWhhbmRsZUVycm9yKGcpe2NvbnN0''@;'; + put 'put ''IGg9dGhpcy5fZmluZE9yaWdpbmFsRXJyb3IoZyk7dGhpcy5fY29uc29sZS5lcnJvcigiRVJST1IiLGcpLGgmJnRoaXMuX2NvbnNvbGUuZXJyb3IoIk9SSUdJTkFMIEVSUk9SIixoKX1fZmluZE9yaWdpbmFsRXJyb3IoZyl7bGV0IGg9ZyYmQ2IoZyk7Zm9yKDtoJiZDYihoKTspaD1DYihoKTty''@;'; + put 'put ''ZXR1cm4gaHx8bnVsbH19Y29uc3QgU2I9bmV3IE1hcDtsZXQgVVI9MDtjb25zdCBFYj0iX19uZ0NvbnRleHRfXyI7ZnVuY3Rpb24gcXUoZCxnKXtUdShnKT8oZFtFYl09Z1syMF0sZnVuY3Rpb24gSlIoZCl7U2Iuc2V0KGRbMjBdLGQpfShnKSk6ZFtFYl09Z31mdW5jdGlvbiBibShkKXtjb25z''@;'; + put 'put ''dCBnPWRbRWJdO3JldHVybiJudW1iZXIiPT10eXBlb2YgZz9mdW5jdGlvbiBYUihkKXtyZXR1cm4gU2IuZ2V0KGQpfHxudWxsfShnKTpnfHxudWxsfWZ1bmN0aW9uIHhiKGQpe2NvbnN0IGc9Ym0oZCk7cmV0dXJuIGc/VHUoZyk/ZzpnLmxWaWV3Om51bGx9Y29uc3QgdEI9KCgpPT4oInVuZGVm''@;'; + put 'put ''aW5lZCIhPXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUmJnJlcXVlc3RBbmltYXRpb25GcmFtZXx8c2V0VGltZW91dCkuYmluZChQbCkpKCk7ZnVuY3Rpb24gSWIoZCl7cmV0dXJuIGQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld31mdW5jdGlvbiBIbChkKXtyZXR1cm4gZC5vd25lckRv''@;'; + put 'put ''Y3VtZW50fWZ1bmN0aW9uIG5CKGQpe3JldHVybiBkLm93bmVyRG9jdW1lbnQuYm9keX1mdW5jdGlvbiB5ZihkKXtyZXR1cm4gZCBpbnN0YW5jZW9mIEZ1bmN0aW9uP2QoKTpkfXZhciBmdT0oKCk9PigoZnU9ZnV8fHt9KVtmdS5JbXBvcnRhbnQ9MV09IkltcG9ydGFudCIsZnVbZnUuRGFzaENh''@;'; + put 'put ''c2U9Ml09IkRhc2hDYXNlIixmdSkpKCk7ZnVuY3Rpb24gX20oZCxnKXtyZXR1cm4gdW5kZWZpbmVkKGQsZyl9ZnVuY3Rpb24gZTUoZCl7Y29uc3QgZz1kWzNdO3JldHVybiBzZihnKT9nWzNdOmd9ZnVuY3Rpb24gVnYoZCl7cmV0dXJuIFJiKGRbMTNdKX1mdW5jdGlvbiBqdihkKXtyZXR1cm4g''@;'; + put 'put ''UmIoZFs0XSl9ZnVuY3Rpb24gUmIoZCl7Zm9yKDtudWxsIT09ZCYmIXNmKGQpOylkPWRbNF07cmV0dXJuIGR9ZnVuY3Rpb24gQTYoZCxnLGgsdix5KXtpZihudWxsIT12KXtsZXQgQyxJPSExO3NmKHYpP0M9djpUdSh2KSYmKEk9ITAsdj12WzBdKTtjb25zdCBqPUoyKHYpOzA9PT1kJiZudWxs''@;'; + put 'put ''IT09aD9udWxsPT15P2piKGcsaCxqKTpONChnLGgsaix5fHxudWxsLCEwKToxPT09ZCYmbnVsbCE9PWg/TjQoZyxoLGoseXx8bnVsbCwhMCk6Mj09PWQ/ZnVuY3Rpb24gREUoZCxnLGgpe2NvbnN0IHY9Q20oZCxnKTt2JiZmdW5jdGlvbiB6dihkLGcsaCx2KXtkLnJlbW92ZUNoaWxkKGcsaCx2''@;'; + put 'put ''KX0oZCx2LGcsaCl9KGcsaixJKTozPT09ZCYmZy5kZXN0cm95Tm9kZShqKSxudWxsIT1DJiZmdW5jdGlvbiBZdihkLGcsaCx2LHkpe2NvbnN0IEM9aFs3XTtDIT09SjIoaCkmJkE2KGcsZCx2LEMseSk7Zm9yKGxldCBqPTEwO2o8aC5sZW5ndGg7aisrKXtjb25zdCB1ZT1oW2pdO2ttKHVlWzFd''@;'; + put 'put ''LHVlLGQsZyx2LEMpfX0oZyxkLEMsaCx5KX19ZnVuY3Rpb24gdDUoZCxnLGgpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZyxoKX1mdW5jdGlvbiBFRShkLGcpe2NvbnN0IGg9ZFs5XSx2PWguaW5kZXhPZihnKSx5PWdbM107NTEyJmdbMl0mJihnWzJdJj0tNTEzLG1kKHksLTEpKSxoLnNwbGlj''@;'; + put 'put ''ZSh2LDEpfWZ1bmN0aW9uIEZiKGQsZyl7aWYoZC5sZW5ndGg8PTEwKXJldHVybjtjb25zdCBoPTEwK2csdj1kW2hdO2lmKHYpe2NvbnN0IHk9dlsxN107bnVsbCE9PXkmJnkhPT1kJiZFRSh5LHYpLGc+MCYmKGRbaC0xXVs0XT12WzRdKTtjb25zdCBDPV9kKGQsMTArZyk7IWZ1bmN0aW9uIHc2''@;'; + put 'put ''KGQsZyl7a20oZCxnLGdbMTFdLDIsbnVsbCxudWxsKSxnWzBdPW51bGwsZ1s2XT1udWxsfSh2WzFdLHYpO2NvbnN0IEk9Q1sxOV07bnVsbCE9PUkmJkkuZGV0YWNoVmlldyhDWzFdKSx2WzNdPW51bGwsdls0XT1udWxsLHZbMl0mPS02NX1yZXR1cm4gdn1mdW5jdGlvbiB4RShkLGcpe2lmKCEo''@;'; + put 'put ''MTI4JmdbMl0pKXtjb25zdCBoPWdbMTFdO2guZGVzdHJveU5vZGUmJmttKGQsZyxoLDMsbnVsbCxudWxsKSxmdW5jdGlvbiByRyhkKXtsZXQgZz1kWzEzXTtpZighZylyZXR1cm4gWnYoZFsxXSxkKTtmb3IoO2c7KXtsZXQgaD1udWxsO2lmKFR1KGcpKWg9Z1sxM107ZWxzZXtjb25zdCB2PWdb''@;'; + put 'put ''MTBdO3YmJihoPXYpfWlmKCFoKXtmb3IoO2cmJiFnWzRdJiZnIT09ZDspVHUoZykmJlp2KGdbMV0sZyksZz1nWzNdO251bGw9PT1nJiYoZz1kKSxUdShnKSYmWnYoZ1sxXSxnKSxoPWcmJmdbNF19Zz1ofX0oZyl9fWZ1bmN0aW9uIFp2KGQsZyl7aWYoISgxMjgmZ1syXSkpe2dbMl0mPS02NSxn''@;'; + put 'put ''WzJdfD0xMjgsZnVuY3Rpb24gb0IoZCxnKXtsZXQgaDtpZihudWxsIT1kJiZudWxsIT0oaD1kLmRlc3Ryb3lIb29rcykpZm9yKGxldCB2PTA7djxoLmxlbmd0aDt2Kz0yKXtjb25zdCB5PWdbaFt2XV07aWYoISh5IGluc3RhbmNlb2YgeWQpKXtjb25zdCBDPWhbdisxXTtpZihBcnJheS5pc0Fy''@;'; + put 'put ''cmF5KEMpKWZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSs9Mil7Y29uc3Qgaj15W0NbSV1dLHVlPUNbSSsxXTt0cnl7dWUuY2FsbChqKX1maW5hbGx5e319ZWxzZSB0cnl7Qy5jYWxsKHkpfWZpbmFsbHl7fX19fShkLGcpLGZ1bmN0aW9uIEhiKGQsZyl7Y29uc3QgaD1kLmNsZWFudXAsdj1nWzdd''@;'; + put 'put ''O2xldCB5PS0xO2lmKG51bGwhPT1oKWZvcihsZXQgQz0wO0M8aC5sZW5ndGgtMTtDKz0yKWlmKCJzdHJpbmciPT10eXBlb2YgaFtDXSl7Y29uc3QgST1oW0MrMV0saj0iZnVuY3Rpb24iPT10eXBlb2YgST9JKGcpOkoyKGdbSV0pLHVlPXZbeT1oW0MrMl1dLF9lPWhbQyszXTsiYm9vbGVhbiI9''@;'; + put 'put ''PXR5cGVvZiBfZT9qLnJlbW92ZUV2ZW50TGlzdGVuZXIoaFtDXSx1ZSxfZSk6X2U+PTA/dlt5PV9lXSgpOnZbeT0tX2VdLnVuc3Vic2NyaWJlKCksQys9Mn1lbHNle2NvbnN0IEk9dlt5PWhbQysxXV07aFtDXS5jYWxsKEkpfWlmKG51bGwhPT12KXtmb3IobGV0IEM9eSsxO0M8di5sZW5ndGg7''@;'; + put 'put ''QysrKSgwLHZbQ10pKCk7Z1s3XT1udWxsfX0oZCxnKSwxPT09Z1sxXS50eXBlJiZnWzExXS5kZXN0cm95KCk7Y29uc3QgaD1nWzE3XTtpZihudWxsIT09aCYmc2YoZ1szXSkpe2ghPT1nWzNdJiZFRShoLGcpO2NvbnN0IHY9Z1sxOV07bnVsbCE9PXYmJnYuZGV0YWNoVmlldyhkKX0hZnVuY3Rp''@;'; + put 'put ''b24geUUoZCl7U2IuZGVsZXRlKGRbMjBdKX0oZyl9fWZ1bmN0aW9uIE5iKGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24gVmIoZCxnLGgpe2xldCB2PWc7Zm9yKDtudWxsIT09diYmNDAmdi50eXBlOyl2PShnPXYpLnBhcmVudDtpZihudWxsPT09dilyZXR1cm4gaFswXTtpZigyJnYuZmxhZ3Mpe2Nv''@;'; + put 'put ''bnN0IHk9ZC5kYXRhW3YuZGlyZWN0aXZlU3RhcnRdLmVuY2Fwc3VsYXRpb247aWYoeT09PXgyLk5vbmV8fHk9PT14Mi5FbXVsYXRlZClyZXR1cm4gbnVsbH1yZXR1cm4gdmModixoKX0oZCxnLnBhcmVudCxoKX1mdW5jdGlvbiBONChkLGcsaCx2LHkpe2QuaW5zZXJ0QmVmb3JlKGcsaCx2LHkp''@;'; + put 'put ''fWZ1bmN0aW9uIGpiKGQsZyxoKXtkLmFwcGVuZENoaWxkKGcsaCl9ZnVuY3Rpb24gWmIoZCxnLGgsdix5KXtudWxsIT09dj9ONChkLGcsaCx2LHkpOmpiKGQsZyxoKX1mdW5jdGlvbiBDbShkLGcpe3JldHVybiBkLnBhcmVudE5vZGUoZyl9ZnVuY3Rpb24gVEUoZCxnLGgpe3JldHVybiB6Yihk''@;'; + put 'put ''LGcsaCl9bGV0IHpiPWZ1bmN0aW9uIGI2KGQsZyxoKXtyZXR1cm4gNDAmZC50eXBlP3ZjKGQsaCk6bnVsbH07ZnVuY3Rpb24gYmYoZCxnLGgsdil7Y29uc3QgeT1OYihkLHYsZyksQz1nWzExXSxqPVRFKHYucGFyZW50fHxnWzZdLHYsZyk7aWYobnVsbCE9eSlpZihBcnJheS5pc0FycmF5KGgp''@;'; + put 'put ''KWZvcihsZXQgdWU9MDt1ZTxoLmxlbmd0aDt1ZSsrKVpiKEMseSxoW3VlXSxqLCExKTtlbHNlIFpiKEMseSxoLGosITEpfWZ1bmN0aW9uIEloKGQsZyl7aWYobnVsbCE9PWcpe2NvbnN0IGg9Zy50eXBlO2lmKDMmaClyZXR1cm4gdmMoZyxkKTtpZig0JmgpcmV0dXJuIFdiKC0xLGRbZy5pbmRl''@;'; + put 'put ''eF0pO2lmKDgmaCl7Y29uc3Qgdj1nLmNoaWxkO2lmKG51bGwhPT12KXJldHVybiBJaChkLHYpO3tjb25zdCB5PWRbZy5pbmRleF07cmV0dXJuIHNmKHkpP1diKC0xLHkpOkoyKHkpfX1pZigzMiZoKXJldHVybiBfbShnLGQpKCl8fEoyKGRbZy5pbmRleF0pO3tjb25zdCB2PUdiKGQsZyk7cmV0''@;'; + put 'put ''dXJuIG51bGwhPT12P0FycmF5LmlzQXJyYXkodik/dlswXTpJaChlNShkWzE2XSksdik6SWgoZCxnLm5leHQpfX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBHYihkLGcpe3JldHVybiBudWxsIT09Zz9kWzE2XVs2XS5wcm9qZWN0aW9uW2cucHJvamVjdGlvbl06bnVsbH1mdW5jdGlvbiBXYihkLGcp''@;'; + put 'put ''e2NvbnN0IGg9MTArZCsxO2lmKGg8Zy5sZW5ndGgpe2NvbnN0IHY9Z1toXSx5PXZbMV0uZmlyc3RDaGlsZDtpZihudWxsIT09eSlyZXR1cm4gSWgodix5KX1yZXR1cm4gZ1s3XX1mdW5jdGlvbiBZYihkLGcsaCx2LHksQyxJKXtmb3IoO251bGwhPWg7KXtjb25zdCBqPXZbaC5pbmRleF0sdWU9''@;'; + put 'put ''aC50eXBlO2lmKEkmJjA9PT1nJiYoaiYmcXUoSjIoaiksdiksaC5mbGFnc3w9NCksNjQhPSg2NCZoLmZsYWdzKSlpZig4JnVlKVliKGQsZyxoLmNoaWxkLHYseSxDLCExKSxBNihnLGQseSxqLEMpO2Vsc2UgaWYoMzImdWUpe2NvbnN0IF9lPV9tKGgsdik7bGV0IEJlO2Zvcig7QmU9X2UoKTsp''@;'; + put 'put ''QTYoZyxkLHksQmUsQyk7QTYoZyxkLHksaixDKX1lbHNlIDE2JnVlP0xFKGQsZyx2LGgseSxDKTpBNihnLGQseSxqLEMpO2g9ST9oLnByb2plY3Rpb25OZXh0OmgubmV4dH19ZnVuY3Rpb24ga20oZCxnLGgsdix5LEMpe1liKGgsdixkLmZpcnN0Q2hpbGQsZyx5LEMsITEpfWZ1bmN0aW9uIExF''@;'; + put 'put ''KGQsZyxoLHYseSxDKXtjb25zdCBJPWhbMTZdLHVlPUlbNl0ucHJvamVjdGlvblt2LnByb2plY3Rpb25dO2lmKEFycmF5LmlzQXJyYXkodWUpKWZvcihsZXQgX2U9MDtfZTx1ZS5sZW5ndGg7X2UrKylBNihnLGQseSx1ZVtfZV0sQyk7ZWxzZSBZYihkLGcsdWUsSVszXSx5LEMsITApfWZ1bmN0''@;'; + put 'put ''aW9uIFViKGQsZyxoKXtkLnNldEF0dHJpYnV0ZShnLCJzdHlsZSIsaCl9ZnVuY3Rpb24gRDMoZCxnLGgpeyIiPT09aD9kLnJlbW92ZUF0dHJpYnV0ZShnLCJjbGFzcyIpOmQuc2V0QXR0cmlidXRlKGcsImNsYXNzIixoKX1mdW5jdGlvbiBTbShkLGcsaCl7bGV0IHY9ZC5sZW5ndGg7Zm9yKDs7''@;'; + put 'put ''KXtjb25zdCB5PWQuaW5kZXhPZihnLGgpO2lmKC0xPT09eSlyZXR1cm4geTtpZigwPT09eXx8ZC5jaGFyQ29kZUF0KHktMSk8PTMyKXtjb25zdCBDPWcubGVuZ3RoO2lmKHkrQz09PXZ8fGQuY2hhckNvZGVBdCh5K0MpPD0zMilyZXR1cm4geX1oPXkrMX19Y29uc3QgVXY9Im5nLXRlbXBsYXRl''@;'; + put 'put ''IjtmdW5jdGlvbiBWNChkLGcsaCl7bGV0IHY9MDtmb3IoO3Y8ZC5sZW5ndGg7KXtsZXQgeT1kW3YrK107aWYoaCYmImNsYXNzIj09PXkpe2lmKHk9ZFt2XSwtMSE9PVNtKHkudG9Mb3dlckNhc2UoKSxnLDApKXJldHVybiEwfWVsc2UgaWYoMT09PXkpe2Zvcig7djxkLmxlbmd0aCYmInN0cmlu''@;'; + put 'put ''ZyI9PXR5cGVvZih5PWRbdisrXSk7KWlmKHkudG9Mb3dlckNhc2UoKT09PWcpcmV0dXJuITA7cmV0dXJuITF9fXJldHVybiExfWZ1bmN0aW9uIEVkKGQpe3JldHVybiA0PT09ZC50eXBlJiZkLnZhbHVlIT09VXZ9ZnVuY3Rpb24gUWIoZCxnLGgpe3JldHVybiBnPT09KDQhPT1kLnR5cGV8fGg/''@;'; + put 'put ''ZC52YWx1ZTpVdil9ZnVuY3Rpb24gYjEoZCxnLGgpe2xldCB2PTQ7Y29uc3QgeT1kLmF0dHJzfHxbXSxDPWZ1bmN0aW9uIFJFKGQpe2ZvcihsZXQgZz0wO2c8ZC5sZW5ndGg7ZysrKWlmKHNzKGRbZ10pKXJldHVybiBnO3JldHVybiBkLmxlbmd0aH0oeSk7bGV0IEk9ITE7Zm9yKGxldCBqPTA7''@;'; + put 'put ''ajxnLmxlbmd0aDtqKyspe2NvbnN0IHVlPWdbal07aWYoIm51bWJlciIhPXR5cGVvZiB1ZSl7aWYoIUkpaWYoNCZ2KXtpZih2PTJ8MSZ2LCIiIT09dWUmJiFRYihkLHVlLGgpfHwiIj09PXVlJiYxPT09Zy5sZW5ndGgpe2lmKGh1KHYpKXJldHVybiExO0k9ITB9fWVsc2V7Y29uc3QgX2U9OCZ2''@;'; + put 'put ''P3VlOmdbKytqXTtpZig4JnYmJm51bGwhPT1kLmF0dHJzKXtpZighVjQoZC5hdHRycyxfZSxoKSl7aWYoaHUodikpcmV0dXJuITE7ST0hMH1jb250aW51ZX1jb25zdCBOZT1NbSg4JnY/ImNsYXNzIjp1ZSx5LEVkKGQpLGgpO2lmKC0xPT09TmUpe2lmKGh1KHYpKXJldHVybiExO0k9ITA7Y29u''@;'; + put 'put ''dGludWV9aWYoIiIhPT1fZSl7bGV0IEtlO0tlPU5lPkM/IiI6eVtOZSsxXS50b0xvd2VyQ2FzZSgpO2NvbnN0IGR0PTgmdj9LZTpudWxsO2lmKGR0JiYtMSE9PVNtKGR0LF9lLDApfHwyJnYmJl9lIT09S2Upe2lmKGh1KHYpKXJldHVybiExO0k9ITB9fX19ZWxzZXtpZighSSYmIWh1KHYpJiYh''@;'; + put 'put ''aHUodWUpKXJldHVybiExO2lmKEkmJmh1KHVlKSljb250aW51ZTtJPSExLHY9dWV8MSZ2fX1yZXR1cm4gaHUodil8fEl9ZnVuY3Rpb24gaHUoZCl7cmV0dXJuIDA9PSgxJmQpfWZ1bmN0aW9uIE1tKGQsZyxoLHYpe2lmKG51bGw9PT1nKXJldHVybi0xO2xldCB5PTA7aWYodnx8IWgpe2xldCBD''@;'; + put 'put ''PSExO2Zvcig7eTxnLmxlbmd0aDspe2NvbnN0IEk9Z1t5XTtpZihJPT09ZClyZXR1cm4geTtpZigzPT09SXx8Nj09PUkpQz0hMDtlbHNle2lmKDE9PT1JfHwyPT09SSl7bGV0IGo9Z1srK3ldO2Zvcig7InN0cmluZyI9PXR5cGVvZiBqOylqPWdbKyt5XTtjb250aW51ZX1pZig0PT09SSlicmVh''@;'; + put 'put ''aztpZigwPT09SSl7eSs9NDtjb250aW51ZX19eSs9Qz8xOjJ9cmV0dXJuLTF9cmV0dXJuIGZ1bmN0aW9uIEJFKGQsZyl7bGV0IGg9ZC5pbmRleE9mKDQpO2lmKGg+LTEpZm9yKGgrKztoPGQubGVuZ3RoOyl7Y29uc3Qgdj1kW2hdO2lmKCJudW1iZXIiPT10eXBlb2YgdilyZXR1cm4tMTtpZih2''@;'; + put 'put ''PT09ZylyZXR1cm4gaDtoKyt9cmV0dXJuLTF9KGcsZCl9ZnVuY3Rpb24gSmIoZCxnLGg9ITEpe2ZvcihsZXQgdj0wO3Y8Zy5sZW5ndGg7disrKWlmKGIxKGQsZ1t2XSxoKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBjQihkLGcpe2U6Zm9yKGxldCBoPTA7aDxnLmxlbmd0aDtoKyspe2Nv''@;'; + put 'put ''bnN0IHY9Z1toXTtpZihkLmxlbmd0aD09PXYubGVuZ3RoKXtmb3IobGV0IHk9MDt5PGQubGVuZ3RoO3krKylpZihkW3ldIT09dlt5XSljb250aW51ZSBlO3JldHVybiEwfX1yZXR1cm4hMX1mdW5jdGlvbiBQRShkLGcpe3JldHVybiBkPyI6bm90KCIrZy50cmltKCkrIikiOmd9ZnVuY3Rpb24g''@;'; + put 'put ''ZkIoZCl7bGV0IGc9ZFswXSxoPTEsdj0yLHk9IiIsQz0hMTtmb3IoO2g8ZC5sZW5ndGg7KXtsZXQgST1kW2hdO2lmKCJzdHJpbmciPT10eXBlb2YgSSlpZigyJnYpe2NvbnN0IGo9ZFsrK2hdO3krPSJbIitJKyhqLmxlbmd0aD4wPyc9IicraisnIic6IiIpKyJdIn1lbHNlIDgmdj95Kz0iLiIr''@;'; + put 'put ''STo0JnYmJih5Kz0iICIrSSk7ZWxzZSIiIT09eSYmIWh1KEkpJiYoZys9UEUoQyx5KSx5PSIiKSx2PUksQz1DfHwhaHUodik7aCsrfXJldHVybiIiIT09eSYmKGcrPVBFKEMseSkpLGd9Y29uc3QgSGE9e307ZnVuY3Rpb24gdXQoZCl7WGIoZmUoKSxQdCgpLFVsKCkrZCwhMSl9ZnVuY3Rpb24g''@;'; + put 'put ''WGIoZCxnLGgsdil7aWYoIXYpaWYoMz09KDMmZ1syXSkpe2NvbnN0IEM9ZC5wcmVPcmRlckNoZWNrSG9va3M7bnVsbCE9PUMmJkFkKGcsQyxoKX1lbHNle2NvbnN0IEM9ZC5wcmVPcmRlckhvb2tzO251bGwhPT1DJiZLcChnLEMsMCxoKX16ZihoKX1mdW5jdGlvbiBqRShkLGc9bnVsbCxoPW51''@;'; + put 'put ''bGwsdil7Y29uc3QgeT1uNShkLGcsaCx2KTtyZXR1cm4geS5yZXNvbHZlSW5qZWN0b3JJbml0aWFsaXplcnMoKSx5fWZ1bmN0aW9uIG41KGQsZz1udWxsLGg9bnVsbCx2LHk9bmV3IFNldCl7Y29uc3QgQz1baHx8WjAsVGgoZCldO3JldHVybiB2PXZ8fCgib2JqZWN0Ij09dHlwZW9mIGQ/dm9p''@;'; + put 'put ''ZCAwOm1uKGQpKSxuZXcgX2IoQyxnfHxNMygpLHZ8fG51bGwseSl9bGV0IGtzPSgoKT0+e2NsYXNzIGR7c3RhdGljIGNyZWF0ZShoLHYpe3ZhciB5O2lmKEFycmF5LmlzQXJyYXkoaCkpcmV0dXJuIGpFKHtuYW1lOiIifSx2LGgsIiIpO3tjb25zdCBDPW51bGwhPT0oeT1oLm5hbWUpJiZ2b2lk''@;'; + put 'put ''IDAhPT15P3k6IiI7cmV0dXJuIGpFKHtuYW1lOkN9LGgucGFyZW50LGgucHJvdmlkZXJzLEMpfX19cmV0dXJuIGQuVEhST1dfSUZfTk9UX0ZPVU5EPUg4LGQuTlVMTD1uZXcgUjQsZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLHByb3ZpZGVkSW46ImFueSIsZmFjdG9yeTooKT0+Q2koeWMpfSks''@;'; + put 'put ''ZC5fX05HX0VMRU1FTlRfSURfXz0tMSxkfSkoKTtmdW5jdGlvbiBYdChkLGc9ajAuRGVmYXVsdCl7Y29uc3QgaD1QdCgpO3JldHVybiBudWxsPT09aD9DaShkLGcpOnRtKEp0KCksaCxHdChkKSxnKX1mdW5jdGlvbiBYdigpe3Rocm93IG5ldyBFcnJvcigiaW52YWxpZCIpfWZ1bmN0aW9uIEt2''@;'; + put 'put ''KGQsZyl7cmV0dXJuIGQ8PDE3fGc8PDJ9ZnVuY3Rpb24gRGgoZCl7cmV0dXJuIGQ+PjE3JjMyNzY3fWZ1bmN0aW9uIG5fKGQpe3JldHVybiAyfGR9ZnVuY3Rpb24gSWQoZCl7cmV0dXJuKDEzMTA2OCZkKT4+Mn1mdW5jdGlvbiBfNihkLGcpe3JldHVybi0xMzEwNjkmZHxnPDwyfWZ1bmN0aW9u''@;'; + put 'put ''IGE1KGQpe3JldHVybiAxfGR9ZnVuY3Rpb24gVWMoZCxnKXtjb25zdCBoPWQuY29udGVudFF1ZXJpZXM7aWYobnVsbCE9PWgpZm9yKGxldCB2PTA7djxoLmxlbmd0aDt2Kz0yKXtjb25zdCB5PWhbdl0sQz1oW3YrMV07aWYoLTEhPT1DKXtjb25zdCBJPWQuZGF0YVtDXTtEbih5KSxJLmNvbnRl''@;'; + put 'put ''bnRRdWVyaWVzKDIsZ1tDXSxDKX19fWZ1bmN0aW9uIGs2KGQsZyxoLHYseSxDLEksaix1ZSxfZSxCZSl7Y29uc3QgTmU9Zy5ibHVlcHJpbnQuc2xpY2UoKTtyZXR1cm4gTmVbMF09eSxOZVsyXT03Nnx2LChudWxsIT09QmV8fGQmJjEwMjQmZFsyXSkmJihOZVsyXXw9MTAyNCksX2goTmUpLE5l''@;'; + put 'put ''WzNdPU5lWzE1XT1kLE5lWzhdPWgsTmVbMTBdPUl8fGQmJmRbMTBdLE5lWzExXT1qfHxkJiZkWzExXSxOZVsxMl09dWV8fGQmJmRbMTJdfHxudWxsLE5lWzldPV9lfHxkJiZkWzldfHxudWxsLE5lWzZdPUMsTmVbMjBdPWZ1bmN0aW9uIFFSKCl7cmV0dXJuIFVSKyt9KCksTmVbMjFdPUJlLE5l''@;'; + put 'put ''WzE2XT0yPT1nLnR5cGU/ZFsxNl06TmUsTmV9ZnVuY3Rpb24gUzYoZCxnLGgsdix5KXtsZXQgQz1kLmRhdGFbZ107aWYobnVsbD09PUMpQz1mdW5jdGlvbiBPZChkLGcsaCx2LHkpe2NvbnN0IEM9aHIoKSxJPV8oKSx1ZT1kLmRhdGFbZ109ZnVuY3Rpb24gbV8oZCxnLGgsdix5LEMpe3JldHVy''@;'; + put 'put ''bnt0eXBlOmgsaW5kZXg6dixpbnNlcnRCZWZvcmVJbmRleDpudWxsLGluamVjdG9ySW5kZXg6Zz9nLmluamVjdG9ySW5kZXg6LTEsZGlyZWN0aXZlU3RhcnQ6LTEsZGlyZWN0aXZlRW5kOi0xLGRpcmVjdGl2ZVN0eWxpbmdMYXN0Oi0xLHByb3BlcnR5QmluZGluZ3M6bnVsbCxmbGFnczowLHBy''@;'; + put 'put ''b3ZpZGVySW5kZXhlczowLHZhbHVlOnksYXR0cnM6QyxtZXJnZWRBdHRyczpudWxsLGxvY2FsTmFtZXM6bnVsbCxpbml0aWFsSW5wdXRzOnZvaWQgMCxpbnB1dHM6bnVsbCxvdXRwdXRzOm51bGwsdFZpZXdzOm51bGwsbmV4dDpudWxsLHByb2plY3Rpb25OZXh0Om51bGwsY2hpbGQ6bnVsbCxw''@;'; + put 'put ''YXJlbnQ6Zyxwcm9qZWN0aW9uOm51bGwsc3R5bGVzOm51bGwsc3R5bGVzV2l0aG91dEhvc3Q6bnVsbCxyZXNpZHVhbFN0eWxlczp2b2lkIDAsY2xhc3NlczpudWxsLGNsYXNzZXNXaXRob3V0SG9zdDpudWxsLHJlc2lkdWFsQ2xhc3Nlczp2b2lkIDAsY2xhc3NCaW5kaW5nczowLHN0eWxlQmlu''@;'; + put 'put ''ZGluZ3M6MH19KDAsST9DOkMmJkMucGFyZW50LGgsZyx2LHkpO3JldHVybiBudWxsPT09ZC5maXJzdENoaWxkJiYoZC5maXJzdENoaWxkPXVlKSxudWxsIT09QyYmKEk/bnVsbD09Qy5jaGlsZCYmbnVsbCE9PXVlLnBhcmVudCYmKEMuY2hpbGQ9dWUpOm51bGw9PT1DLm5leHQmJihDLm5leHQ9''@;'; + put 'put ''dWUpKSx1ZX0oZCxnLGgsdix5KSxmdW5jdGlvbiBqYygpe3JldHVybiBDYS5sRnJhbWUuaW5JMThufSgpJiYoQy5mbGFnc3w9NjQpO2Vsc2UgaWYoNjQmQy50eXBlKXtDLnR5cGU9aCxDLnZhbHVlPXYsQy5hdHRycz15O2NvbnN0IEk9ZnVuY3Rpb24gUGkoKXtjb25zdCBkPUNhLmxGcmFtZSxn''@;'; + put 'put ''PWQuY3VycmVudFROb2RlO3JldHVybiBkLmlzUGFyZW50P2c6Zy5wYXJlbnR9KCk7Qy5pbmplY3RvckluZGV4PW51bGw9PT1JPy0xOkkuaW5qZWN0b3JJbmRleH1yZXR1cm4gam4oQywhMCksQ31mdW5jdGlvbiBoNShkLGcsaCx2KXtpZigwPT09aClyZXR1cm4tMTtjb25zdCB5PWcubGVuZ3Ro''@;'; + put 'put ''O2ZvcihsZXQgQz0wO0M8aDtDKyspZy5wdXNoKHYpLGQuYmx1ZXByaW50LnB1c2godiksZC5kYXRhLnB1c2gobnVsbCk7cmV0dXJuIHl9ZnVuY3Rpb24gejQoZCxnLGgpe0QwKGcpO3RyeXtjb25zdCB2PWQudmlld1F1ZXJ5O251bGwhPT12JiZQbSgxLHYsaCk7Y29uc3QgeT1kLnRlbXBsYXRl''@;'; + put 'put ''O251bGwhPT15JiZpQShkLGcseSwxLGgpLGQuZmlyc3RDcmVhdGVQYXNzJiYoZC5maXJzdENyZWF0ZVBhc3M9ITEpLGQuc3RhdGljQ29udGVudFF1ZXJpZXMmJlVjKGQsZyksZC5zdGF0aWNWaWV3UXVlcmllcyYmUG0oMixkLnZpZXdRdWVyeSxoKTtjb25zdCBDPWQuY29tcG9uZW50cztudWxs''@;'; + put 'put ''IT09QyYmZnVuY3Rpb24gQzYoZCxnKXtmb3IobGV0IGg9MDtoPGcubGVuZ3RoO2grKyloQShkLGdbaF0pfShnLEMpfWNhdGNoKHYpe3Rocm93IGQuZmlyc3RDcmVhdGVQYXNzJiYoZC5pbmNvbXBsZXRlRmlyc3RQYXNzPSEwLGQuZmlyc3RDcmVhdGVQYXNzPSExKSx2fWZpbmFsbHl7Z1syXSY9''@;'; + put 'put ''LTUsSnAoKX19ZnVuY3Rpb24gWTEoZCxnLGgsdil7Y29uc3QgeT1nWzJdO2lmKDEyOCE9KDEyOCZ5KSl7RDAoZyk7dHJ5e19oKGcpLGZ1bmN0aW9uIHhuKGQpe3JldHVybiBDYS5sRnJhbWUuYmluZGluZ0luZGV4PWR9KGQuYmluZGluZ1N0YXJ0SW5kZXgpLG51bGwhPT1oJiZpQShkLGcsaCwy''@;'; + put 'put ''LHYpO2NvbnN0IEk9Mz09KDMmeSk7aWYoSSl7Y29uc3QgX2U9ZC5wcmVPcmRlckNoZWNrSG9va3M7bnVsbCE9PV9lJiZBZChnLF9lLG51bGwpfWVsc2V7Y29uc3QgX2U9ZC5wcmVPcmRlckhvb2tzO251bGwhPT1fZSYmS3AoZyxfZSwwLG51bGwpLGZmKGcsMCl9aWYoZnVuY3Rpb24gaXgoZCl7''@;'; + put 'put ''Zm9yKGxldCBnPVZ2KGQpO251bGwhPT1nO2c9anYoZykpe2lmKCFnWzJdKWNvbnRpbnVlO2NvbnN0IGg9Z1s5XTtmb3IobGV0IHY9MDt2PGgubGVuZ3RoO3YrKyl7Y29uc3QgeT1oW3ZdLEM9eVszXTswPT0oNTEyJnlbMl0pJiZtZChDLDEpLHlbMl18PTUxMn19fShnKSxmdW5jdGlvbiBIQihk''@;'; + put 'put ''KXtmb3IobGV0IGc9VnYoZCk7bnVsbCE9PWc7Zz1qdihnKSlmb3IobGV0IGg9MTA7aDxnLmxlbmd0aDtoKyspe2NvbnN0IHY9Z1toXSx5PXZbMV07dXUodikmJlkxKHksdix5LnRlbXBsYXRlLHZbOF0pfX0oZyksbnVsbCE9PWQuY29udGVudFF1ZXJpZXMmJlVjKGQsZyksSSl7Y29uc3QgX2U9''@;'; + put 'put ''ZC5jb250ZW50Q2hlY2tIb29rcztudWxsIT09X2UmJkFkKGcsX2UpfWVsc2V7Y29uc3QgX2U9ZC5jb250ZW50SG9va3M7bnVsbCE9PV9lJiZLcChnLF9lLDEpLGZmKGcsMSl9IWZ1bmN0aW9uIExkKGQsZyl7Y29uc3QgaD1kLmhvc3RCaW5kaW5nT3BDb2RlcztpZihudWxsIT09aCl0cnl7Zm9y''@;'; + put 'put ''KGxldCB2PTA7djxoLmxlbmd0aDt2Kyspe2NvbnN0IHk9aFt2XTtpZih5PDApemYofnkpO2Vsc2V7Y29uc3QgQz15LEk9aFsrK3ZdLGo9aFsrK3ZdO3hNKEksQyksaigyLGdbQ10pfX19ZmluYWxseXt6ZigtMSl9fShkLGcpO2NvbnN0IGo9ZC5jb21wb25lbnRzO251bGwhPT1qJiZmdW5jdGlv''@;'; + put 'put ''biBmNShkLGcpe2ZvcihsZXQgaD0wO2g8Zy5sZW5ndGg7aCsrKW94KGQsZ1toXSl9KGcsaik7Y29uc3QgdWU9ZC52aWV3UXVlcnk7aWYobnVsbCE9PXVlJiZQbSgyLHVlLHYpLEkpe2NvbnN0IF9lPWQudmlld0NoZWNrSG9va3M7bnVsbCE9PV9lJiZBZChnLF9lKX1lbHNle2NvbnN0IF9lPWQu''@;'; + put 'put ''dmlld0hvb2tzO251bGwhPT1fZSYmS3AoZyxfZSwyKSxmZihnLDIpfSEwPT09ZC5maXJzdFVwZGF0ZVBhc3MmJihkLmZpcnN0VXBkYXRlUGFzcz0hMSksZ1syXSY9LTQxLDUxMiZnWzJdJiYoZ1syXSY9LTUxMyxtZChnWzNdLC0xKSl9ZmluYWxseXtKcCgpfX19ZnVuY3Rpb24gZDUoZCxnLGgs''@;'; + put 'put ''dil7Y29uc3QgeT1nWzEwXSxJPUtnKGcpO3RyeXshSSYmeS5iZWdpbiYmeS5iZWdpbigpLEkmJno0KGQsZyx2KSxZMShkLGcsaCx2KX1maW5hbGx5eyFJJiZ5LmVuZCYmeS5lbmQoKX19ZnVuY3Rpb24gaUEoZCxnLGgsdix5KXtjb25zdCBDPVVsKCksST0yJnY7dHJ5e3pmKC0xKSxJJiZnLmxl''@;'; + put 'put ''bmd0aD4yMiYmWGIoZCxnLDIyLCExKSxoKHYseSl9ZmluYWxseXt6ZihDKX19ZnVuY3Rpb24gZl8oZCxnLGgpe2lmKEtvKGcpKXtjb25zdCB5PWcuZGlyZWN0aXZlRW5kO2ZvcihsZXQgQz1nLmRpcmVjdGl2ZVN0YXJ0O0M8eTtDKyspe2NvbnN0IEk9ZC5kYXRhW0NdO0kuY29udGVudFF1ZXJp''@;'; + put 'put ''ZXMmJkkuY29udGVudFF1ZXJpZXMoMSxoW0NdLEMpfX19ZnVuY3Rpb24gaF8oZCxnLGgpeyFFTSgpfHwoZnVuY3Rpb24gbngoZCxnLGgsdil7Y29uc3QgeT1oLmRpcmVjdGl2ZVN0YXJ0LEM9aC5kaXJlY3RpdmVFbmQ7ZC5maXJzdENyZWF0ZVBhc3N8fGU2KGgsZykscXUodixnKTtjb25zdCBJ''@;'; + put 'put ''PWguaW5pdGlhbElucHV0cztmb3IobGV0IGo9eTtqPEM7aisrKXtjb25zdCB1ZT1kLmRhdGFbal0sX2U9VmYodWUpO19lJiZjQShnLGgsdWUpO2NvbnN0IEJlPVQ0KGcsZCxqLGgpO3F1KEJlLGcpLG51bGwhPT1JJiZ3XygwLGoteSxCZSx1ZSwwLEkpLF9lJiYoUXUoaC5pbmRleCxnKVs4XT1C''@;'; + put 'put ''ZSl9fShkLGcsaCx2YyhoLGcpKSwxMjg9PSgxMjgmaC5mbGFncykmJmZ1bmN0aW9uIGIyKGQsZyxoKXtjb25zdCB2PWguZGlyZWN0aXZlU3RhcnQseT1oLmRpcmVjdGl2ZUVuZCxDPWguaW5kZXgsST1mdW5jdGlvbiBUTSgpe3JldHVybiBDYS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4''@;'; + put 'put ''fSgpO3RyeXt6ZihDKTtmb3IobGV0IGo9djtqPHk7aisrKXtjb25zdCB1ZT1kLmRhdGFbal0sX2U9Z1tqXTtwdihqKSwobnVsbCE9PXVlLmhvc3RCaW5kaW5nc3x8MCE9PXVlLmhvc3RWYXJzfHxudWxsIT09dWUuaG9zdEF0dHJzKSYmQ2YodWUsX2UpfX1maW5hbGx5e3pmKC0xKSxwdihJKX19''@;'; + put 'put ''KGQsZyxoKSl9ZnVuY3Rpb24gZF8oZCxnLGg9dmMpe2NvbnN0IHY9Zy5sb2NhbE5hbWVzO2lmKG51bGwhPT12KXtsZXQgeT1nLmluZGV4KzE7Zm9yKGxldCBDPTA7Qzx2Lmxlbmd0aDtDKz0yKXtjb25zdCBJPXZbQysxXSxqPS0xPT09ST9oKGcsZCk6ZFtJXTtkW3krK109an19fWZ1bmN0aW9u''@;'; + put 'put ''IHR4KGQpe2NvbnN0IGc9ZC50VmlldztyZXR1cm4gbnVsbD09PWd8fGcuaW5jb21wbGV0ZUZpcnN0UGFzcz9kLnRWaWV3PXBfKDEsbnVsbCxkLnRlbXBsYXRlLGQuZGVjbHMsZC52YXJzLGQuZGlyZWN0aXZlRGVmcyxkLnBpcGVEZWZzLGQudmlld1F1ZXJ5LGQuc2NoZW1hcyxkLmNvbnN0cyk6''@;'; + put 'put ''Z31mdW5jdGlvbiBwXyhkLGcsaCx2LHksQyxJLGosdWUsX2Upe2NvbnN0IEJlPTIyK3YsTmU9QmUreSxLZT1mdW5jdGlvbiBCQihkLGcpe2NvbnN0IGg9W107Zm9yKGxldCB2PTA7djxnO3YrKyloLnB1c2godjxkP251bGw6SGEpO3JldHVybiBofShCZSxOZSksZHQ9ImZ1bmN0aW9uIj09dHlw''@;'; + put 'put ''ZW9mIF9lP19lKCk6X2U7cmV0dXJuIEtlWzFdPXt0eXBlOmQsYmx1ZXByaW50OktlLHRlbXBsYXRlOmgscXVlcmllczpudWxsLHZpZXdRdWVyeTpqLGRlY2xUTm9kZTpnLGRhdGE6S2Uuc2xpY2UoKS5maWxsKG51bGwsQmUpLGJpbmRpbmdTdGFydEluZGV4OkJlLGV4cGFuZG9TdGFydEluZGV4''@;'; + put 'put ''Ok5lLGhvc3RCaW5kaW5nT3BDb2RlczpudWxsLGZpcnN0Q3JlYXRlUGFzczohMCxmaXJzdFVwZGF0ZVBhc3M6ITAsc3RhdGljVmlld1F1ZXJpZXM6ITEsc3RhdGljQ29udGVudFF1ZXJpZXM6ITEscHJlT3JkZXJIb29rczpudWxsLHByZU9yZGVyQ2hlY2tIb29rczpudWxsLGNvbnRlbnRIb29r''@;'; + put 'put ''czpudWxsLGNvbnRlbnRDaGVja0hvb2tzOm51bGwsdmlld0hvb2tzOm51bGwsdmlld0NoZWNrSG9va3M6bnVsbCxkZXN0cm95SG9va3M6bnVsbCxjbGVhbnVwOm51bGwsY29udGVudFF1ZXJpZXM6bnVsbCxjb21wb25lbnRzOm51bGwsZGlyZWN0aXZlUmVnaXN0cnk6ImZ1bmN0aW9uIj09dHlw''@;'; + put 'put ''ZW9mIEM/QygpOkMscGlwZVJlZ2lzdHJ5OiJmdW5jdGlvbiI9PXR5cGVvZiBJP0koKTpJLGZpcnN0Q2hpbGQ6bnVsbCxzY2hlbWFzOnVlLGNvbnN0czpkdCxpbmNvbXBsZXRlRmlyc3RQYXNzOiExfX1mdW5jdGlvbiBnXyhkLGcsaCx2KXtjb25zdCB5PU1fKGcpO251bGw9PT1oP3kucHVzaCh2''@;'; + put 'put ''KTooeS5wdXNoKGgpLGQuZmlyc3RDcmVhdGVQYXNzJiZFXyhkKS5wdXNoKHYseS5sZW5ndGgtMSkpfWZ1bmN0aW9uIGFBKGQsZyxoKXtmb3IobGV0IHYgaW4gZClpZihkLmhhc093blByb3BlcnR5KHYpKXtjb25zdCB5PWRbdl07KGg9bnVsbD09PWg/e306aCkuaGFzT3duUHJvcGVydHkodik/''@;'; + put 'put ''aFt2XS5wdXNoKGcseSk6aFt2XT1bZyx5XX1yZXR1cm4gaH1mdW5jdGlvbiBJbShkLGcpe2NvbnN0IHY9Zy5kaXJlY3RpdmVFbmQseT1kLmRhdGEsQz1nLmF0dHJzLEk9W107bGV0IGo9bnVsbCx1ZT1udWxsO2ZvcihsZXQgX2U9Zy5kaXJlY3RpdmVTdGFydDtfZTx2O19lKyspe2NvbnN0IEJl''@;'; + put 'put ''PXlbX2VdLE5lPUJlLmlucHV0cyxLZT1udWxsPT09Q3x8RWQoZyk/bnVsbDpiXyhOZSxDKTtJLnB1c2goS2UpLGo9YUEoTmUsX2UsaiksdWU9YUEoQmUub3V0cHV0cyxfZSx1ZSl9bnVsbCE9PWomJihqLmhhc093blByb3BlcnR5KCJjbGFzcyIpJiYoZy5mbGFnc3w9MTYpLGouaGFzT3duUHJv''@;'; + put 'put ''cGVydHkoInN0eWxlIikmJihnLmZsYWdzfD0zMikpLGcuaW5pdGlhbElucHV0cz1JLGcuaW5wdXRzPWosZy5vdXRwdXRzPXVlfWZ1bmN0aW9uIGVjKGQsZyxoLHYseSxDLEksail7Y29uc3QgdWU9dmMoZyxoKTtsZXQgQmUsX2U9Zy5pbnB1dHM7IWomJm51bGwhPV9lJiYoQmU9X2Vbdl0pPyht''@;'; + put 'put ''QShkLGgsQmUsdix5KSxDcyhnKSYmRG0oaCxnLmluZGV4KSk6MyZnLnR5cGUmJih2PWZ1bmN0aW9uIFBCKGQpe3JldHVybiJjbGFzcyI9PT1kPyJjbGFzc05hbWUiOiJmb3IiPT09ZD8iaHRtbEZvciI6ImZvcm1hY3Rpb24iPT09ZD8iZm9ybUFjdGlvbiI6ImlubmVySHRtbCI9PT1kPyJpbm5l''@;'; + put 'put ''ckhUTUwiOiJyZWFkb25seSI9PT1kPyJyZWFkT25seSI6InRhYmluZGV4Ij09PWQ/InRhYkluZGV4IjpkfSh2KSx5PW51bGwhPUk/SSh5LGcudmFsdWV8fCIiLHYpOnksQy5zZXRQcm9wZXJ0eSh1ZSx2LHkpKX1mdW5jdGlvbiBEbShkLGcpe2NvbnN0IGg9UXUoZyxkKTsxNiZoWzJdfHwoaFsy''@;'; + put 'put ''XXw9MzIpfWZ1bmN0aW9uIHZfKGQsZyxoLHYpe2xldCB5PSExO2lmKEVNKCkpe2NvbnN0IEM9ZnVuY3Rpb24gXzEoZCxnLGgpe2NvbnN0IHY9ZC5kaXJlY3RpdmVSZWdpc3RyeTtsZXQgeT1udWxsO2lmKHYpZm9yKGxldCBDPTA7Qzx2Lmxlbmd0aDtDKyspe2NvbnN0IEk9dltDXTtKYihoLEku''@;'; + put 'put ''c2VsZWN0b3JzLCExKSYmKHl8fCh5PVtdKSxHZihlNihoLGcpLGQsSS50eXBlKSxWZihJKT8odUEoZCxoKSx5LnVuc2hpZnQoSSkpOnkucHVzaChJKSl9cmV0dXJuIHl9KGQsZyxoKSxJPW51bGw9PT12P251bGw6eyIiOi0xfTtpZihudWxsIT09Qyl7eT0hMCx5XyhoLGQuZGF0YS5sZW5ndGgs''@;'; + put 'put ''Qy5sZW5ndGgpO2ZvcihsZXQgQmU9MDtCZTxDLmxlbmd0aDtCZSsrKXtjb25zdCBOZT1DW0JlXTtOZS5wcm92aWRlcnNSZXNvbHZlciYmTmUucHJvdmlkZXJzUmVzb2x2ZXIoTmUpfWxldCBqPSExLHVlPSExLF9lPWg1KGQsZyxDLmxlbmd0aCxudWxsKTtmb3IobGV0IEJlPTA7QmU8Qy5sZW5n''@;'; + put 'put ''dGg7QmUrKyl7Y29uc3QgTmU9Q1tCZV07aC5tZXJnZWRBdHRycz16YyhoLm1lcmdlZEF0dHJzLE5lLmhvc3RBdHRycykscngoZCxoLGcsX2UsTmUpLE9tKF9lLE5lLEkpLG51bGwhPT1OZS5jb250ZW50UXVlcmllcyYmKGguZmxhZ3N8PTgpLChudWxsIT09TmUuaG9zdEJpbmRpbmdzfHxudWxs''@;'; + put 'put ''IT09TmUuaG9zdEF0dHJzfHwwIT09TmUuaG9zdFZhcnMpJiYoaC5mbGFnc3w9MTI4KTtjb25zdCBLZT1OZS50eXBlLnByb3RvdHlwZTshaiYmKEtlLm5nT25DaGFuZ2VzfHxLZS5uZ09uSW5pdHx8S2UubmdEb0NoZWNrKSYmKChkLnByZU9yZGVySG9va3N8fChkLnByZU9yZGVySG9va3M9W10p''@;'; + put 'put ''KS5wdXNoKGguaW5kZXgpLGo9ITApLCF1ZSYmKEtlLm5nT25DaGFuZ2VzfHxLZS5uZ0RvQ2hlY2spJiYoKGQucHJlT3JkZXJDaGVja0hvb2tzfHwoZC5wcmVPcmRlckNoZWNrSG9va3M9W10pKS5wdXNoKGguaW5kZXgpLHVlPSEwKSxfZSsrfUltKGQsaCl9SSYmZnVuY3Rpb24gQV8oZCxnLGgp''@;'; + put 'put ''e2lmKGcpe2NvbnN0IHY9ZC5sb2NhbE5hbWVzPVtdO2ZvcihsZXQgeT0wO3k8Zy5sZW5ndGg7eSs9Mil7Y29uc3QgQz1oW2dbeSsxXV07aWYobnVsbD09Qyl0aHJvdyBuZXcgZW4oLTMwMSwhMSk7di5wdXNoKGdbeV0sQyl9fX0oaCx2LEkpfXJldHVybiBoLm1lcmdlZEF0dHJzPXpjKGgubWVy''@;'; + put 'put ''Z2VkQXR0cnMsaC5hdHRycykseX1mdW5jdGlvbiBsQShkLGcsaCx2LHksQyl7Y29uc3QgST1DLmhvc3RCaW5kaW5ncztpZihJKXtsZXQgaj1kLmhvc3RCaW5kaW5nT3BDb2RlcztudWxsPT09aiYmKGo9ZC5ob3N0QmluZGluZ09wQ29kZXM9W10pO2NvbnN0IHVlPX5nLmluZGV4OyhmdW5jdGlv''@;'; + put 'put ''biBzQShkKXtsZXQgZz1kLmxlbmd0aDtmb3IoO2c+MDspe2NvbnN0IGg9ZFstLWddO2lmKCJudW1iZXIiPT10eXBlb2YgaCYmaDwwKXJldHVybiBofXJldHVybiAwfSkoaikhPXVlJiZqLnB1c2godWUpLGoucHVzaCh2LHksSSl9fWZ1bmN0aW9uIENmKGQsZyl7bnVsbCE9PWQuaG9zdEJpbmRp''@;'; + put 'put ''bmdzJiZkLmhvc3RCaW5kaW5ncygxLGcpfWZ1bmN0aW9uIHVBKGQsZyl7Zy5mbGFnc3w9MiwoZC5jb21wb25lbnRzfHwoZC5jb21wb25lbnRzPVtdKSkucHVzaChnLmluZGV4KX1mdW5jdGlvbiBPbShkLGcsaCl7aWYoaCl7aWYoZy5leHBvcnRBcylmb3IobGV0IHY9MDt2PGcuZXhwb3J0QXMu''@;'; + put 'put ''bGVuZ3RoO3YrKyloW2cuZXhwb3J0QXNbdl1dPWQ7VmYoZykmJihoWyIiXT1kKX19ZnVuY3Rpb24geV8oZCxnLGgpe2QuZmxhZ3N8PTEsZC5kaXJlY3RpdmVTdGFydD1nLGQuZGlyZWN0aXZlRW5kPWcraCxkLnByb3ZpZGVySW5kZXhlcz1nfWZ1bmN0aW9uIHJ4KGQsZyxoLHYseSl7ZC5kYXRh''@;'; + put 'put ''W3ZdPXk7Y29uc3QgQz15LmZhY3Rvcnl8fCh5LmZhY3Rvcnk9amYoeS50eXBlKSksST1uZXcgeWQoQyxWZih5KSxYdCk7ZC5ibHVlcHJpbnRbdl09SSxoW3ZdPUksbEEoZCxnLDAsdixoNShkLGgseS5ob3N0VmFycyxIYSkseSl9ZnVuY3Rpb24gY0EoZCxnLGgpe2NvbnN0IHY9dmMoZyxkKSx5''@;'; + put 'put ''PXR4KGgpLEM9ZFsxMF0sST1SbShkLGs2KGQseSxudWxsLGgub25QdXNoPzMyOjE2LHYsZyxDLEMuY3JlYXRlUmVuZGVyZXIodixoKSxudWxsLG51bGwsbnVsbCkpO2RbZy5pbmRleF09SX1mdW5jdGlvbiBPaChkLGcsaCx2LHksQyl7Y29uc3QgST12YyhkLGcpOyFmdW5jdGlvbiB2bChkLGcs''@;'; + put 'put ''aCx2LHksQyxJKXtpZihudWxsPT1DKWQucmVtb3ZlQXR0cmlidXRlKGcseSxoKTtlbHNle2NvbnN0IGo9bnVsbD09ST9KbihDKTpJKEMsdnx8IiIseSk7ZC5zZXRBdHRyaWJ1dGUoZyx5LGosaCl9fShnWzExXSxJLEMsZC52YWx1ZSxoLHYseSl9ZnVuY3Rpb24gd18oZCxnLGgsdix5LEMpe2Nv''@;'; + put 'put ''bnN0IEk9Q1tnXTtpZihudWxsIT09SSl7Y29uc3Qgaj12LnNldElucHV0O2ZvcihsZXQgdWU9MDt1ZTxJLmxlbmd0aDspe2NvbnN0IF9lPUlbdWUrK10sQmU9SVt1ZSsrXSxOZT1JW3VlKytdO251bGwhPT1qP3Yuc2V0SW5wdXQoaCxOZSxfZSxCZSk6aFtCZV09TmV9fX1mdW5jdGlvbiBiXyhk''@;'; + put 'put ''LGcpe2xldCBoPW51bGwsdj0wO2Zvcig7djxnLmxlbmd0aDspe2NvbnN0IHk9Z1t2XTtpZigwIT09eSlpZig1IT09eSl7aWYoIm51bWJlciI9PXR5cGVvZiB5KWJyZWFrO2QuaGFzT3duUHJvcGVydHkoeSkmJihudWxsPT09aCYmKGg9W10pLGgucHVzaCh5LGRbeV0sZ1t2KzFdKSksdis9Mn1l''@;'; + put 'put ''bHNlIHYrPTI7ZWxzZSB2Kz00fXJldHVybiBofWZ1bmN0aW9uIGZBKGQsZyxoLHYpe3JldHVybiBuZXcgQXJyYXkoZCwhMCwhMSxnLG51bGwsMCx2LGgsbnVsbCxudWxsKX1mdW5jdGlvbiBveChkLGcpe2NvbnN0IGg9UXUoZyxkKTtpZih1dShoKSl7Y29uc3Qgdj1oWzFdOzQ4JmhbMl0/WTEo''@;'; + put 'put ''dixoLHYudGVtcGxhdGUsaFs4XSk6aFs1XT4wJiZfXyhoKX19ZnVuY3Rpb24gX18oZCl7Zm9yKGxldCB2PVZ2KGQpO251bGwhPT12O3Y9anYodikpZm9yKGxldCB5PTEwO3k8di5sZW5ndGg7eSsrKXtjb25zdCBDPXZbeV07aWYoNTEyJkNbMl0pe2NvbnN0IEk9Q1sxXTtZMShJLEMsSS50ZW1w''@;'; + put 'put ''bGF0ZSxDWzhdKX1lbHNlIENbNV0+MCYmX18oQyl9Y29uc3QgaD1kWzFdLmNvbXBvbmVudHM7aWYobnVsbCE9PWgpZm9yKGxldCB2PTA7djxoLmxlbmd0aDt2Kyspe2NvbnN0IHk9UXUoaFt2XSxkKTt1dSh5KSYmeVs1XT4wJiZfXyh5KX19ZnVuY3Rpb24gaEEoZCxnKXtjb25zdCBoPVF1KGcs''@;'; + put 'put ''ZCksdj1oWzFdOyhmdW5jdGlvbiBDXyhkLGcpe2ZvcihsZXQgaD1nLmxlbmd0aDtoPGQuYmx1ZXByaW50Lmxlbmd0aDtoKyspZy5wdXNoKGQuYmx1ZXByaW50W2hdKX0pKHYsaCksejQodixoLGhbOF0pfWZ1bmN0aW9uIFJtKGQsZyl7cmV0dXJuIGRbMTNdP2RbMTRdWzRdPWc6ZFsxM109Zyxk''@;'; + put 'put ''WzE0XT1nLGd9ZnVuY3Rpb24gZEEoZCl7Zm9yKDtkOyl7ZFsyXXw9MzI7Y29uc3QgZz1lNShkKTtpZihLdyhkKSYmIWcpcmV0dXJuIGQ7ZD1nfXJldHVybiBudWxsfWZ1bmN0aW9uIFNfKGQpeyFmdW5jdGlvbiBrXyhkKXtmb3IobGV0IGc9MDtnPGQuY29tcG9uZW50cy5sZW5ndGg7ZysrKXtj''@;'; + put 'put ''b25zdCBoPWQuY29tcG9uZW50c1tnXSx2PXhiKGgpO2lmKG51bGwhPT12KXtjb25zdCB5PXZbMV07ZDUoeSx2LHkudGVtcGxhdGUsaCl9fX0oZFs4XSl9ZnVuY3Rpb24gUG0oZCxnLGgpe0RuKDApLGcoZCxoKX1jb25zdCBseD0oKCk9PlByb21pc2UucmVzb2x2ZShudWxsKSkoKTtmdW5jdGlv''@;'; + put 'put ''biBNXyhkKXtyZXR1cm4gZFs3XXx8KGRbN109W10pfWZ1bmN0aW9uIEVfKGQpe3JldHVybiBkLmNsZWFudXB8fChkLmNsZWFudXA9W10pfWZ1bmN0aW9uIHhfKGQsZyxoKXtyZXR1cm4obnVsbD09PWR8fFZmKGQpKSYmKGg9ZnVuY3Rpb24gU00oZCl7Zm9yKDtBcnJheS5pc0FycmF5KGQpOyl7''@;'; + put 'put ''aWYoIm9iamVjdCI9PXR5cGVvZiBkWzFdKXJldHVybiBkO2Q9ZFswXX1yZXR1cm4gbnVsbH0oaFtnLmluZGV4XSkpLGhbMTFdfWZ1bmN0aW9uIGdBKGQsZyl7Y29uc3QgaD1kWzldLHY9aD9oLmdldCh2NixudWxsKTpudWxsO3YmJnYuaGFuZGxlRXJyb3IoZyl9ZnVuY3Rpb24gbUEoZCxnLGgs''@;'; + put 'put ''dix5KXtmb3IobGV0IEM9MDtDPGgubGVuZ3RoOyl7Y29uc3QgST1oW0MrK10saj1oW0MrK10sdWU9Z1tJXSxfZT1kLmRhdGFbSV07bnVsbCE9PV9lLnNldElucHV0P19lLnNldElucHV0KHVlLHksdixqKTp1ZVtqXT15fX1mdW5jdGlvbiBSaChkLGcsaCl7Y29uc3Qgdj1VcChnLGQpOyFmdW5j''@;'; + put 'put ''dGlvbiBINChkLGcsaCl7ZC5zZXRWYWx1ZShnLGgpfShkWzExXSx2LGgpfWZ1bmN0aW9uIHA1KGQsZyxoKXtsZXQgdj1oP2Quc3R5bGVzOm51bGwseT1oP2QuY2xhc3NlczpudWxsLEM9MDtpZihudWxsIT09Zylmb3IobGV0IEk9MDtJPGcubGVuZ3RoO0krKyl7Y29uc3Qgaj1nW0ldOyJudW1i''@;'; + put 'put ''ZXIiPT10eXBlb2Ygaj9DPWo6MT09Qz95PXVuKHksaik6Mj09QyYmKHY9dW4odixqKyI6ICIrZ1srK0ldKyI7IikpfWg/ZC5zdHlsZXM9djpkLnN0eWxlc1dpdGhvdXRIb3N0PXYsaD9kLmNsYXNzZXM9eTpkLmNsYXNzZXNXaXRob3V0SG9zdD15fWZ1bmN0aW9uIEc0KGQsZyxoLHYseT0hMSl7''@;'; + put 'put ''Zm9yKDtudWxsIT09aDspe2NvbnN0IEM9Z1toLmluZGV4XTtpZihudWxsIT09QyYmdi5wdXNoKEoyKEMpKSxzZihDKSlmb3IobGV0IGo9MTA7ajxDLmxlbmd0aDtqKyspe2NvbnN0IHVlPUNbal0sX2U9dWVbMV0uZmlyc3RDaGlsZDtudWxsIT09X2UmJkc0KHVlWzFdLHVlLF9lLHYpfWNvbnN0''@;'; + put 'put ''IEk9aC50eXBlO2lmKDgmSSlHNChkLGcsaC5jaGlsZCx2KTtlbHNlIGlmKDMyJkkpe2NvbnN0IGo9X20oaCxnKTtsZXQgdWU7Zm9yKDt1ZT1qKCk7KXYucHVzaCh1ZSl9ZWxzZSBpZigxNiZJKXtjb25zdCBqPUdiKGcsaCk7aWYoQXJyYXkuaXNBcnJheShqKSl2LnB1c2goLi4uaik7ZWxzZXtj''@;'; + put 'put ''b25zdCB1ZT1lNShnWzE2XSk7RzQodWVbMV0sdWUsaix2LCEwKX19aD15P2gucHJvamVjdGlvbk5leHQ6aC5uZXh0fXJldHVybiB2fWNsYXNzIE02e2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5fbFZpZXc9Zyx0aGlzLl9jZFJlZkluamVjdGluZ1ZpZXc9aCx0aGlzLl9hcHBSZWY9bnVsbCx0aGlz''@;'; + put 'put ''Ll9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcj0hMX1nZXQgcm9vdE5vZGVzKCl7Y29uc3QgZz10aGlzLl9sVmlldyxoPWdbMV07cmV0dXJuIEc0KGgsZyxoLmZpcnN0Q2hpbGQsW10pfWdldCBjb250ZXh0KCl7cmV0dXJuIHRoaXMuX2xWaWV3WzhdfXNldCBjb250ZXh0KGcpe3RoaXMuX2xWaWV3''@;'; + put 'put ''WzhdPWd9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiAxMjg9PSgxMjgmdGhpcy5fbFZpZXdbMl0pfWRlc3Ryb3koKXtpZih0aGlzLl9hcHBSZWYpdGhpcy5fYXBwUmVmLmRldGFjaFZpZXcodGhpcyk7ZWxzZSBpZih0aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcil7Y29uc3QgZz10aGlzLl9s''@;'; + put 'put ''Vmlld1szXTtpZihzZihnKSl7Y29uc3QgaD1nWzhdLHY9aD9oLmluZGV4T2YodGhpcyk6LTE7dj4tMSYmKEZiKGcsdiksX2QoaCx2KSl9dGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITF9eEUodGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcpfW9uRGVzdHJveShnKXtnXyh0aGlzLl9s''@;'; + put 'put ''Vmlld1sxXSx0aGlzLl9sVmlldyxudWxsLGcpfW1hcmtGb3JDaGVjaygpe2RBKHRoaXMuX2NkUmVmSW5qZWN0aW5nVmlld3x8dGhpcy5fbFZpZXcpfWRldGFjaCgpe3RoaXMuX2xWaWV3WzJdJj0tNjV9cmVhdHRhY2goKXt0aGlzLl9sVmlld1syXXw9NjR9ZGV0ZWN0Q2hhbmdlcygpeyFmdW5j''@;'; + put 'put ''dGlvbiBwQShkLGcsaCl7Y29uc3Qgdj1nWzEwXTt2LmJlZ2luJiZ2LmJlZ2luKCk7dHJ5e1kxKGQsZyxkLnRlbXBsYXRlLGgpfWNhdGNoKHkpe3Rocm93IGdBKGcseSkseX1maW5hbGx5e3YuZW5kJiZ2LmVuZCgpfX0odGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcsdGhpcy5jb250ZXh0KX1j''@;'; + put 'put ''aGVja05vQ2hhbmdlcygpe31hdHRhY2hUb1ZpZXdDb250YWluZXJSZWYoKXtpZih0aGlzLl9hcHBSZWYpdGhyb3cgbmV3IGVuKDkwMiwhMSk7dGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITB9ZGV0YWNoRnJvbUFwcFJlZigpe3RoaXMuX2FwcFJlZj1udWxsLGZ1bmN0aW9uIE1FKGQs''@;'; + put 'put ''Zyl7a20oZCxnLGdbMTFdLDIsbnVsbCxudWxsKX0odGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcpfWF0dGFjaFRvQXBwUmVmKGcpe2lmKHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyKXRocm93IG5ldyBlbig5MDIsITEpO3RoaXMuX2FwcFJlZj1nfX1jbGFzcyB2QSBleHRlbmRzIE02''@;'; + put 'put ''e2NvbnN0cnVjdG9yKGcpe3N1cGVyKGcpLHRoaXMuX3ZpZXc9Z31kZXRlY3RDaGFuZ2VzKCl7U18odGhpcy5fdmlldyl9Y2hlY2tOb0NoYW5nZXMoKXt9Z2V0IGNvbnRleHQoKXtyZXR1cm4gbnVsbH19Y2xhc3MgVF8gZXh0ZW5kcyBrZHtjb25zdHJ1Y3RvcihnKXtzdXBlcigpLHRoaXMubmdN''@;'; + put 'put ''b2R1bGU9Z31yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShnKXtjb25zdCBoPW1zKGcpO3JldHVybiBuZXcgRm0oaCx0aGlzLm5nTW9kdWxlKX19ZnVuY3Rpb24gQUEoZCl7Y29uc3QgZz1bXTtmb3IobGV0IGggaW4gZClkLmhhc093blByb3BlcnR5KGgpJiZnLnB1c2goe3Byb3BOYW1lOmRbaF0s''@;'; + put 'put ''dGVtcGxhdGVOYW1lOmh9KTtyZXR1cm4gZ31jbGFzcyB5QXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuaW5qZWN0b3I9Zyx0aGlzLnBhcmVudEluamVjdG9yPWh9Z2V0KGcsaCx2KXtjb25zdCB5PXRoaXMuaW5qZWN0b3IuZ2V0KGcsUnYsdik7cmV0dXJuIHkhPT1Sdnx8aD09PVJ2P3k6dGhpcy5w''@;'; + put 'put ''YXJlbnRJbmplY3Rvci5nZXQoZyxoLHYpfX1jbGFzcyBGbSBleHRlbmRzIGNFe2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoKSx0aGlzLmNvbXBvbmVudERlZj1nLHRoaXMubmdNb2R1bGU9aCx0aGlzLmNvbXBvbmVudFR5cGU9Zy50eXBlLHRoaXMuc2VsZWN0b3I9ZnVuY3Rpb24gaEIoZCl7cmV0''@;'; + put 'put ''dXJuIGQubWFwKGZCKS5qb2luKCIsIil9KGcuc2VsZWN0b3JzKSx0aGlzLm5nQ29udGVudFNlbGVjdG9ycz1nLm5nQ29udGVudFNlbGVjdG9ycz9nLm5nQ29udGVudFNlbGVjdG9yczpbXSx0aGlzLmlzQm91bmRUb01vZHVsZT0hIWh9Z2V0IGlucHV0cygpe3JldHVybiBBQSh0aGlzLmNvbXBv''@;'; + put 'put ''bmVudERlZi5pbnB1dHMpfWdldCBvdXRwdXRzKCl7cmV0dXJuIEFBKHRoaXMuY29tcG9uZW50RGVmLm91dHB1dHMpfWNyZWF0ZShnLGgsdix5KXtsZXQgQz0oeT15fHx0aGlzLm5nTW9kdWxlKWluc3RhbmNlb2YgRTM/eTpudWxsPT15P3ZvaWQgMDp5LmluamVjdG9yO0MmJm51bGwhPT10aGlz''@;'; + put 'put ''LmNvbXBvbmVudERlZi5nZXRTdGFuZGFsb25lSW5qZWN0b3ImJihDPXRoaXMuY29tcG9uZW50RGVmLmdldFN0YW5kYWxvbmVJbmplY3RvcihDKXx8Qyk7Y29uc3QgST1DP25ldyB5QShnLEMpOmcsaj1JLmdldChTZCxudWxsKTtpZihudWxsPT09ail0aHJvdyBuZXcgZW4oNDA3LCExKTtjb25z''@;'; + put 'put ''dCB1ZT1JLmdldChwRSxudWxsKSxfZT1qLmNyZWF0ZVJlbmRlcmVyKG51bGwsdGhpcy5jb21wb25lbnREZWYpLEJlPXRoaXMuY29tcG9uZW50RGVmLnNlbGVjdG9yc1swXVswXXx8ImRpdiIsTmU9dj9mdW5jdGlvbiBvQShkLGcsaCl7cmV0dXJuIGQuc2VsZWN0Um9vdEVsZW1lbnQoZyxoPT09''@;'; + put 'put ''eDIuU2hhZG93RG9tKX0oX2Usdix0aGlzLmNvbXBvbmVudERlZi5lbmNhcHN1bGF0aW9uKTp0NShqLmNyZWF0ZVJlbmRlcmVyKG51bGwsdGhpcy5jb21wb25lbnREZWYpLEJlLGZ1bmN0aW9uIElfKGQpe2NvbnN0IGc9ZC50b0xvd2VyQ2FzZSgpO3JldHVybiJzdmciPT09Zz8ic3ZnIjoibWF0''@;'; + put 'put ''aCI9PT1nPyJtYXRoIjpudWxsfShCZSkpLEtlPXRoaXMuY29tcG9uZW50RGVmLm9uUHVzaD8yODg6MjcyLGR0PWZ1bmN0aW9uIHV4KGQsZyl7cmV0dXJue2NvbXBvbmVudHM6W10sc2NoZWR1bGVyOmR8fHRCLGNsZWFuOmx4LHBsYXllckhhbmRsZXI6Z3x8bnVsbCxmbGFnczowfX0oKSxPdD1w''@;'; + put 'put ''XygwLG51bGwsbnVsbCwxLDAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsKSwkdD1rNihudWxsLE90LGR0LEtlLG51bGwsbnVsbCxqLF9lLHVlLEksbnVsbCk7bGV0IGZuLExuO0QwKCR0KTt0cnl7Y29uc3QgaXI9ZnVuY3Rpb24gc3goZCxnLGgsdix5LEMpe2NvbnN0IEk9aFsxXTtoWzIyXT1k''@;'; + put 'put ''O2NvbnN0IHVlPVM2KEksMjIsMiwiI2hvc3QiLG51bGwpLF9lPXVlLm1lcmdlZEF0dHJzPWcuaG9zdEF0dHJzO251bGwhPT1fZSYmKHA1KHVlLF9lLCEwKSxudWxsIT09ZCYmKFpjKHksZCxfZSksbnVsbCE9PXVlLmNsYXNzZXMmJkQzKHksZCx1ZS5jbGFzc2VzKSxudWxsIT09dWUuc3R5bGVz''@;'; + put 'put ''JiZVYih5LGQsdWUuc3R5bGVzKSkpO2NvbnN0IEJlPXYuY3JlYXRlUmVuZGVyZXIoZCxnKSxOZT1rNihoLHR4KGcpLG51bGwsZy5vblB1c2g/MzI6MTYsaFsyMl0sdWUsdixCZSxDfHxudWxsLG51bGwsbnVsbCk7cmV0dXJuIEkuZmlyc3RDcmVhdGVQYXNzJiYoR2YoZTYodWUsaCksSSxnLnR5''@;'; + put 'put ''cGUpLHVBKEksdWUpLHlfKHVlLGgubGVuZ3RoLDEpKSxSbShoLE5lKSxoWzIyXT1OZX0oTmUsdGhpcy5jb21wb25lbnREZWYsJHQsaixfZSk7aWYoTmUpaWYodilaYyhfZSxOZSxbIm5nLXZlcnNpb24iLGdFLmZ1bGxdKTtlbHNle2NvbnN0e2F0dHJzOm1yLGNsYXNzZXM6U3J9PWZ1bmN0aW9u''@;'; + put 'put ''IGRCKGQpe2NvbnN0IGc9W10saD1bXTtsZXQgdj0xLHk9Mjtmb3IoO3Y8ZC5sZW5ndGg7KXtsZXQgQz1kW3ZdO2lmKCJzdHJpbmciPT10eXBlb2YgQykyPT09eT8iIiE9PUMmJmcucHVzaChDLGRbKyt2XSk6OD09PXkmJmgucHVzaChDKTtlbHNle2lmKCFodSh5KSlicmVhazt5PUN9disrfXJl''@;'; + put 'put ''dHVybnthdHRyczpnLGNsYXNzZXM6aH19KHRoaXMuY29tcG9uZW50RGVmLnNlbGVjdG9yc1swXSk7bXImJlpjKF9lLE5lLG1yKSxTciYmU3IubGVuZ3RoPjAmJkQzKF9lLE5lLFNyLmpvaW4oIiAiKSl9aWYoTG49WGcoT3QsMjIpLHZvaWQgMCE9PWgpe2NvbnN0IG1yPUxuLnByb2plY3Rpb249''@;'; + put 'put ''W107Zm9yKGxldCBTcj0wO1NyPHRoaXMubmdDb250ZW50U2VsZWN0b3JzLmxlbmd0aDtTcisrKXtjb25zdCB3cj1oW1NyXTttci5wdXNoKG51bGwhPXdyP0FycmF5LmZyb20od3IpOm51bGwpfX1mbj1mdW5jdGlvbiBWQihkLGcsaCx2LHkpe2NvbnN0IEM9aFsxXSxJPWZ1bmN0aW9uIEZCKGQs''@;'; + put 'put ''ZyxoKXtjb25zdCB2PUp0KCk7ZC5maXJzdENyZWF0ZVBhc3MmJihoLnByb3ZpZGVyc1Jlc29sdmVyJiZoLnByb3ZpZGVyc1Jlc29sdmVyKGgpLHJ4KGQsdixnLGg1KGQsZywxLG51bGwpLGgpLEltKGQsdikpO2NvbnN0IHk9VDQoZyxkLHYuZGlyZWN0aXZlU3RhcnQsdik7cXUoeSxnKTtjb25z''@;'; + put 'put ''dCBDPXZjKHYsZyk7cmV0dXJuIEMmJnF1KEMsZykseX0oQyxoLGcpO2lmKHYuY29tcG9uZW50cy5wdXNoKEkpLGRbOF09SSxudWxsIT09eSlmb3IoY29uc3QgdWUgb2YgeSl1ZShJLGcpO2lmKGcuY29udGVudFF1ZXJpZXMpe2NvbnN0IHVlPUp0KCk7Zy5jb250ZW50UXVlcmllcygxLEksdWUu''@;'; + put 'put ''ZGlyZWN0aXZlU3RhcnQpfWNvbnN0IGo9SnQoKTtyZXR1cm4hQy5maXJzdENyZWF0ZVBhc3N8fG51bGw9PT1nLmhvc3RCaW5kaW5ncyYmbnVsbD09PWcuaG9zdEF0dHJzfHwoemYoai5pbmRleCksbEEoaFsxXSxqLDAsai5kaXJlY3RpdmVTdGFydCxqLmRpcmVjdGl2ZUVuZCxnKSxDZihnLEkp''@;'; + put 'put ''KSxJfShpcix0aGlzLmNvbXBvbmVudERlZiwkdCxkdCxbY3hdKSx6NChPdCwkdCxudWxsKX1maW5hbGx5e0pwKCl9cmV0dXJuIG5ldyBEXyh0aGlzLmNvbXBvbmVudFR5cGUsZm4scDYoTG4sJHQpLCR0LExuKX19Y2xhc3MgRF8gZXh0ZW5kcyBjbGFzcyBCNHt9e2NvbnN0cnVjdG9yKGcsaCx2''@;'; + put 'put ''LHksQyl7c3VwZXIoKSx0aGlzLmxvY2F0aW9uPXYsdGhpcy5fcm9vdExWaWV3PXksdGhpcy5fdE5vZGU9Qyx0aGlzLmluc3RhbmNlPWgsdGhpcy5ob3N0Vmlldz10aGlzLmNoYW5nZURldGVjdG9yUmVmPW5ldyB2QSh5KSx0aGlzLmNvbXBvbmVudFR5cGU9Z31zZXRJbnB1dChnLGgpe2NvbnN0''@;'; + put 'put ''IHY9dGhpcy5fdE5vZGUuaW5wdXRzO2xldCB5O2lmKG51bGwhPT12JiYoeT12W2ddKSl7Y29uc3QgQz10aGlzLl9yb290TFZpZXc7bUEoQ1sxXSxDLHksZyxoKSxEbShDLHRoaXMuX3ROb2RlLmluZGV4KX19Z2V0IGluamVjdG9yKCl7cmV0dXJuIG5ldyBJNCh0aGlzLl90Tm9kZSx0aGlzLl9y''@;'; + put 'put ''b290TFZpZXcpfWRlc3Ryb3koKXt0aGlzLmhvc3RWaWV3LmRlc3Ryb3koKX1vbkRlc3Ryb3koZyl7dGhpcy5ob3N0Vmlldy5vbkRlc3Ryb3koZyl9fWZ1bmN0aW9uIGN4KCl7Y29uc3QgZD1KdCgpO2VtKFB0KClbMV0sZCl9ZnVuY3Rpb24gRG8oZCl7bGV0IGc9ZnVuY3Rpb24gZngoZCl7cmV0''@;'; + put 'put ''dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihkLnByb3RvdHlwZSkuY29uc3RydWN0b3J9KGQudHlwZSksaD0hMDtjb25zdCB2PVtkXTtmb3IoO2c7KXtsZXQgeTtpZihWZihkKSl5PWcuXHUwMjc1Y21wfHxnLlx1MDI3NWRpcjtlbHNle2lmKGcuXHUwMjc1Y21wKXRocm93IG5ldyBlbig5MDMs''@;'; + put 'put ''ITEpO3k9Zy5cdTAyNzVkaXJ9aWYoeSl7aWYoaCl7di5wdXNoKHkpO2NvbnN0IEk9ZDtJLmlucHV0cz1MXyhkLmlucHV0cyksSS5kZWNsYXJlZElucHV0cz1MXyhkLmRlY2xhcmVkSW5wdXRzKSxJLm91dHB1dHM9TF8oZC5vdXRwdXRzKTtjb25zdCBqPXkuaG9zdEJpbmRpbmdzO2omJnpCKGQs''@;'; + put 'put ''aik7Y29uc3QgdWU9eS52aWV3UXVlcnksX2U9eS5jb250ZW50UXVlcmllcztpZih1ZSYmaHgoZCx1ZSksX2UmJlpCKGQsX2UpLGtyKGQuaW5wdXRzLHkuaW5wdXRzKSxrcihkLmRlY2xhcmVkSW5wdXRzLHkuZGVjbGFyZWRJbnB1dHMpLGtyKGQub3V0cHV0cyx5Lm91dHB1dHMpLFZmKHkpJiZ5''@;'; + put 'put ''LmRhdGEuYW5pbWF0aW9uKXtjb25zdCBCZT1kLmRhdGE7QmUuYW5pbWF0aW9uPShCZS5hbmltYXRpb258fFtdKS5jb25jYXQoeS5kYXRhLmFuaW1hdGlvbil9fWNvbnN0IEM9eS5mZWF0dXJlcztpZihDKWZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSsrKXtjb25zdCBqPUNbSV07aiYmai5uZ0lu''@;'; + put 'put ''aGVyaXQmJmooZCksaj09PURvJiYoaD0hMSl9fWc9T2JqZWN0LmdldFByb3RvdHlwZU9mKGcpfSFmdW5jdGlvbiBqQihkKXtsZXQgZz0wLGg9bnVsbDtmb3IobGV0IHY9ZC5sZW5ndGgtMTt2Pj0wO3YtLSl7Y29uc3QgeT1kW3ZdO3kuaG9zdFZhcnM9Zys9eS5ob3N0VmFycyx5Lmhvc3RBdHRy''@;'; + put 'put ''cz16Yyh5Lmhvc3RBdHRycyxoPXpjKGgseS5ob3N0QXR0cnMpKX19KHYpfWZ1bmN0aW9uIExfKGQpe3JldHVybiBkPT09czE/e306ZD09PVowP1tdOmR9ZnVuY3Rpb24gaHgoZCxnKXtjb25zdCBoPWQudmlld1F1ZXJ5O2Qudmlld1F1ZXJ5PWg/KHYseSk9PntnKHYseSksaCh2LHkpfTpnfWZ1''@;'; + put 'put ''bmN0aW9uIFpCKGQsZyl7Y29uc3QgaD1kLmNvbnRlbnRRdWVyaWVzO2QuY29udGVudFF1ZXJpZXM9aD8odix5LEMpPT57Zyh2LHksQyksaCh2LHksQyl9Omd9ZnVuY3Rpb24gekIoZCxnKXtjb25zdCBoPWQuaG9zdEJpbmRpbmdzO2QuaG9zdEJpbmRpbmdzPWg/KHYseSk9PntnKHYseSksaCh2''@;'; + put 'put ''LHkpfTpnfWxldCBXND1udWxsO2Z1bmN0aW9uIEU2KCl7aWYoIVc0KXtjb25zdCBkPVBsLlN5bWJvbDtpZihkJiZkLml0ZXJhdG9yKVc0PWQuaXRlcmF0b3I7ZWxzZXtjb25zdCBnPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE1hcC5wcm90b3R5cGUpO2ZvcihsZXQgaD0wO2g8Zy5sZW5n''@;'; + put 'put ''dGg7KytoKXtjb25zdCB2PWdbaF07ImVudHJpZXMiIT09diYmInNpemUiIT09diYmTWFwLnByb3RvdHlwZVt2XT09PU1hcC5wcm90b3R5cGUuZW50cmllcyYmKFc0PXYpfX19cmV0dXJuIFc0fWZ1bmN0aW9uIEJkKGQpe3JldHVybiEhT18oZCkmJihBcnJheS5pc0FycmF5KGQpfHwhKGQgaW5z''@;'; + put 'put ''dGFuY2VvZiBNYXApJiZFNigpaW4gZCl9ZnVuY3Rpb24gT18oZCl7cmV0dXJuIG51bGwhPT1kJiYoImZ1bmN0aW9uIj09dHlwZW9mIGR8fCJvYmplY3QiPT10eXBlb2YgZCl9ZnVuY3Rpb24gTDMoZCxnLGgpe3JldHVybiBkW2ddPWh9ZnVuY3Rpb24gdGMoZCxnLGgpe3JldHVybiFPYmplY3Qu''@;'; + put 'put ''aXMoZFtnXSxoKSYmKGRbZ109aCwhMCl9ZnVuY3Rpb24geDYoZCxnLGgsdil7Y29uc3QgeT10YyhkLGcsaCk7cmV0dXJuIHRjKGQsZysxLHYpfHx5fWZ1bmN0aW9uIHdBKGQsZyxoLHYseSl7Y29uc3QgQz14NihkLGcsaCx2KTtyZXR1cm4gdGMoZCxnKzIseSl8fEN9ZnVuY3Rpb24gemkoZCxn''@;'; + put 'put ''LGgsdil7Y29uc3QgeT1QdCgpO3JldHVybiB0Yyh5LGkyKCksZykmJihmZSgpLE9oKEYyKCkseSxkLGcsaCx2KSkseml9ZnVuY3Rpb24gbTUoZCxnLGgsdil7cmV0dXJuIHRjKGQsaTIoKSxoKT9nK0puKGgpK3Y6SGF9ZnVuY3Rpb24gcm4oZCxnLGgsdix5LEMsSSxqKXtjb25zdCB1ZT1QdCgp''@;'; + put 'put ''LF9lPWZlKCksQmU9ZCsyMixOZT1fZS5maXJzdENyZWF0ZVBhc3M/ZnVuY3Rpb24gYkEoZCxnLGgsdix5LEMsSSxqLHVlKXtjb25zdCBfZT1nLmNvbnN0cyxCZT1TNihnLGQsNCxJfHxudWxsLE4xKF9lLGopKTt2XyhnLGgsQmUsTjEoX2UsdWUpKSxlbShnLEJlKTtjb25zdCBOZT1CZS50Vmll''@;'; + put 'put ''d3M9cF8oMixCZSx2LHksQyxnLmRpcmVjdGl2ZVJlZ2lzdHJ5LGcucGlwZVJlZ2lzdHJ5LG51bGwsZy5zY2hlbWFzLF9lKTtyZXR1cm4gbnVsbCE9PWcucXVlcmllcyYmKGcucXVlcmllcy50ZW1wbGF0ZShnLEJlKSxOZS5xdWVyaWVzPWcucXVlcmllcy5lbWJlZGRlZFRWaWV3KEJlKSksQmV9''@;'; + put 'put ''KEJlLF9lLHVlLGcsaCx2LHksQyxJKTpfZS5kYXRhW0JlXTtqbihOZSwhMSk7Y29uc3QgS2U9dWVbMTFdLmNyZWF0ZUNvbW1lbnQoIiIpO2JmKF9lLHVlLEtlLE5lKSxxdShLZSx1ZSksUm0odWUsdWVbQmVdPWZBKEtlLHVlLEtlLE5lKSksemcoTmUpJiZoXyhfZSx1ZSxOZSksbnVsbCE9SSYm''@;'; + put 'put ''ZF8odWUsTmUsail9ZnVuY3Rpb24geWEoZCl7cmV0dXJuIFFwKGZ1bmN0aW9uICRvKCl7cmV0dXJuIENhLmxGcmFtZS5jb250ZXh0TFZpZXd9KCksMjIrZCl9ZnVuY3Rpb24gVHQoZCxnLGgpe2NvbnN0IHY9UHQoKTtyZXR1cm4gdGModixpMigpLGcpJiZlYyhmZSgpLEYyKCksdixkLGcsdlsx''@;'; + put 'put ''MV0saCwhMSksVHR9ZnVuY3Rpb24gQl8oZCxnLGgsdix5KXtjb25zdCBJPXk/ImNsYXNzIjoic3R5bGUiO21BKGQsaCxnLmlucHV0c1tJXSxJLHYpfWZ1bmN0aW9uIGl0KGQsZyxoLHYpe2NvbnN0IHk9UHQoKSxDPWZlKCksST0yMitkLGo9eVsxMV0sdWU9eVtJXT10NShqLGcsZnVuY3Rpb24g''@;'; + put 'put ''dmQoKXtyZXR1cm4gQ2EubEZyYW1lLmN1cnJlbnROYW1lc3BhY2V9KCkpLF9lPUMuZmlyc3RDcmVhdGVQYXNzP2Z1bmN0aW9uIEtCKGQsZyxoLHYseSxDLEkpe2NvbnN0IGo9Zy5jb25zdHMsX2U9UzYoZyxkLDIseSxOMShqLEMpKTtyZXR1cm4gdl8oZyxoLF9lLE4xKGosSSkpLG51bGwhPT1f''@;'; + put 'put ''ZS5hdHRycyYmcDUoX2UsX2UuYXR0cnMsITEpLG51bGwhPT1fZS5tZXJnZWRBdHRycyYmcDUoX2UsX2UubWVyZ2VkQXR0cnMsITApLG51bGwhPT1nLnF1ZXJpZXMmJmcucXVlcmllcy5lbGVtZW50U3RhcnQoZyxfZSksX2V9KEksQyx5LDAsZyxoLHYpOkMuZGF0YVtJXTtqbihfZSwhMCk7Y29u''@;'; + put 'put ''c3QgQmU9X2UubWVyZ2VkQXR0cnM7bnVsbCE9PUJlJiZaYyhqLHVlLEJlKTtjb25zdCBOZT1fZS5jbGFzc2VzO251bGwhPT1OZSYmRDMoaix1ZSxOZSk7Y29uc3QgS2U9X2Uuc3R5bGVzO3JldHVybiBudWxsIT09S2UmJlViKGosdWUsS2UpLDY0IT0oNjQmX2UuZmxhZ3MpJiZiZihDLHksdWUs''@;'; + put 'put ''X2UpLDA9PT1mdW5jdGlvbiBuYigpe3JldHVybiBDYS5sRnJhbWUuZWxlbWVudERlcHRoQ291bnR9KCkmJnF1KHVlLHkpLGZ1bmN0aW9uIGYyKCl7Q2EubEZyYW1lLmVsZW1lbnREZXB0aENvdW50Kyt9KCksemcoX2UpJiYoaF8oQyx5LF9lKSxmXyhDLF9lLHkpKSxudWxsIT09diYmZF8oeSxf''@;'; + put 'put ''ZSksaXR9ZnVuY3Rpb24gc3QoKXtsZXQgZD1KdCgpO18oKT9BbygpOihkPWQucGFyZW50LGpuKGQsITEpKTtjb25zdCBnPWQ7IWZ1bmN0aW9uIG9SKCl7Q2EubEZyYW1lLmVsZW1lbnREZXB0aENvdW50LS19KCk7Y29uc3QgaD1mZSgpO3JldHVybiBoLmZpcnN0Q3JlYXRlUGFzcyYmKGVtKGgs''@;'; + put 'put ''ZCksS28oZCkmJmgucXVlcmllcy5lbGVtZW50RW5kKGQpKSxudWxsIT1nLmNsYXNzZXNXaXRob3V0SG9zdCYmZnVuY3Rpb24gdGEoZCl7cmV0dXJuIDAhPSgxNiZkLmZsYWdzKX0oZykmJkJfKGgsZyxQdCgpLGcuY2xhc3Nlc1dpdGhvdXRIb3N0LCEwKSxudWxsIT1nLnN0eWxlc1dpdGhvdXRI''@;'; + put 'put ''b3N0JiZmdW5jdGlvbiBqMShkKXtyZXR1cm4gMCE9KDMyJmQuZmxhZ3MpfShnKSYmQl8oaCxnLFB0KCksZy5zdHlsZXNXaXRob3V0SG9zdCwhMSksc3R9ZnVuY3Rpb24gQ3IoZCxnLGgsdil7cmV0dXJuIGl0KGQsZyxoLHYpLHN0KCksQ3J9ZnVuY3Rpb24gRjAoZCxnLGgpe2NvbnN0IHY9UHQo''@;'; + put 'put ''KSx5PWZlKCksQz1kKzIyLEk9eS5maXJzdENyZWF0ZVBhc3M/ZnVuY3Rpb24gdzUoZCxnLGgsdix5KXtjb25zdCBDPWcuY29uc3RzLEk9TjEoQyx2KSxqPVM2KGcsZCw4LCJuZy1jb250YWluZXIiLEkpO3JldHVybiBudWxsIT09SSYmcDUoaixJLCEwKSx2XyhnLGgsaixOMShDLHkpKSxudWxs''@;'; + put 'put ''IT09Zy5xdWVyaWVzJiZnLnF1ZXJpZXMuZWxlbWVudFN0YXJ0KGcsaiksan0oQyx5LHYsZyxoKTp5LmRhdGFbQ107am4oSSwhMCk7Y29uc3Qgaj12W0NdPXZbMTFdLmNyZWF0ZUNvbW1lbnQoIiIpO3JldHVybiBiZih5LHYsaixJKSxxdShqLHYpLHpnKEkpJiYoaF8oeSx2LEkpLGZfKHksSSx2''@;'; + put 'put ''KSksbnVsbCE9aCYmZF8odixJKSxGMH1mdW5jdGlvbiBIMCgpe2xldCBkPUp0KCk7Y29uc3QgZz1mZSgpO3JldHVybiBfKCk/QW8oKTooZD1kLnBhcmVudCxqbihkLCExKSksZy5maXJzdENyZWF0ZVBhc3MmJihlbShnLGQpLEtvKGQpJiZnLnF1ZXJpZXMuZWxlbWVudEVuZChkKSksSDB9ZnVu''@;'; + put 'put ''Y3Rpb24gZjEoZCxnLGgpe3JldHVybiBGMChkLGcsaCksSDAoKSxmMX1mdW5jdGlvbiBfaSgpe3JldHVybiBQdCgpfWZ1bmN0aW9uIFZtKGQpe3JldHVybiEhZCYmImZ1bmN0aW9uIj09dHlwZW9mIGQudGhlbn1mdW5jdGlvbiBBeChkKXtyZXR1cm4hIWQmJiJmdW5jdGlvbiI9PXR5cGVvZiBk''@;'; + put 'put ''LnN1YnNjcmliZX1jb25zdCBQXz1BeDtmdW5jdGlvbiBZbihkLGcsaCx2KXtjb25zdCB5PVB0KCksQz1mZSgpLEk9SnQoKTtyZXR1cm4gSF8oQyx5LHlbMTFdLEksZCxnLDAsdiksWW59ZnVuY3Rpb24gRl8oZCxnKXtjb25zdCBoPUp0KCksdj1QdCgpLHk9ZmUoKTtyZXR1cm4gSF8oeSx2LHhf''@;'; + put 'put ''KGd2KHkuZGF0YSksaCx2KSxoLGQsZyksRl99ZnVuY3Rpb24gSF8oZCxnLGgsdix5LEMsSSxqKXtjb25zdCB1ZT16Zyh2KSxCZT1kLmZpcnN0Q3JlYXRlUGFzcyYmRV8oZCksTmU9Z1s4XSxLZT1NXyhnKTtsZXQgZHQ9ITA7aWYoMyZ2LnR5cGV8fGope2NvbnN0IGZuPXZjKHYsZyksTG49aj9q''@;'; + put 'put ''KGZuKTpmbixpcj1LZS5sZW5ndGgsbXI9aj93cj0+aihKMih3clt2LmluZGV4XSkpOnYuaW5kZXg7bGV0IFNyPW51bGw7aWYoIWomJnVlJiYoU3I9ZnVuY3Rpb24gJEIoZCxnLGgsdil7Y29uc3QgeT1kLmNsZWFudXA7aWYobnVsbCE9eSlmb3IobGV0IEM9MDtDPHkubGVuZ3RoLTE7Qys9Mil7''@;'; + put 'put ''Y29uc3QgST15W0NdO2lmKEk9PT1oJiZ5W0MrMV09PT12KXtjb25zdCBqPWdbN10sdWU9eVtDKzJdO3JldHVybiBqLmxlbmd0aD51ZT9qW3VlXTpudWxsfSJzdHJpbmciPT10eXBlb2YgSSYmKEMrPTIpfXJldHVybiBudWxsfShkLGcseSx2LmluZGV4KSksbnVsbCE9PVNyKShTci5fX25nTGFz''@;'; + put 'put ''dExpc3RlbmVyRm5fX3x8U3IpLl9fbmdOZXh0TGlzdGVuZXJGbl9fPUMsU3IuX19uZ0xhc3RMaXN0ZW5lckZuX189QyxkdD0hMTtlbHNle0M9X0EodixnLE5lLEMsITEpO2NvbnN0IHdyPWgubGlzdGVuKExuLHksQyk7S2UucHVzaChDLHdyKSxCZSYmQmUucHVzaCh5LG1yLGlyLGlyKzEpfX1l''@;'; + put 'put ''bHNlIEM9X0EodixnLE5lLEMsITEpO2NvbnN0IE90PXYub3V0cHV0cztsZXQgJHQ7aWYoZHQmJm51bGwhPT1PdCYmKCR0PU90W3ldKSl7Y29uc3QgZm49JHQubGVuZ3RoO2lmKGZuKWZvcihsZXQgTG49MDtMbjxmbjtMbis9Mil7Y29uc3QgUXI9Z1skdFtMbl1dWyR0W0xuKzFdXS5zdWJzY3Jp''@;'; + put 'put ''YmUoQykseWk9S2UubGVuZ3RoO0tlLnB1c2goQyxRciksQmUmJkJlLnB1c2goeSx2LmluZGV4LHlpLC0oeWkrMSkpfX19ZnVuY3Rpb24gam0oZCxnLGgsdil7dHJ5e3JldHVybiExIT09aCh2KX1jYXRjaCh5KXtyZXR1cm4gZ0EoZCx5KSwhMX19ZnVuY3Rpb24gX0EoZCxnLGgsdix5KXtyZXR1''@;'; + put 'put ''cm4gZnVuY3Rpb24gQyhJKXtpZihJPT09RnVuY3Rpb24pcmV0dXJuIHY7ZEEoMiZkLmZsYWdzP1F1KGQuaW5kZXgsZyk6Zyk7bGV0IHVlPWptKGcsMCx2LEkpLF9lPUMuX19uZ05leHRMaXN0ZW5lckZuX187Zm9yKDtfZTspdWU9am0oZywwLF9lLEkpJiZ1ZSxfZT1fZS5fX25nTmV4dExpc3Rl''@;'; + put 'put ''bmVyRm5fXztyZXR1cm4geSYmITE9PT11ZSYmKEkucHJldmVudERlZmF1bHQoKSxJLnJldHVyblZhbHVlPSExKSx1ZX19ZnVuY3Rpb24gS3QoZD0xKXtyZXR1cm4gZnVuY3Rpb24gWHAoZCl7cmV0dXJuKENhLmxGcmFtZS5jb250ZXh0TFZpZXc9ZnVuY3Rpb24gWmYoZCxnKXtmb3IoO2Q+MDsp''@;'; + put 'put ''Zz1nWzE1XSxkLS07cmV0dXJuIGd9KGQsQ2EubEZyYW1lLmNvbnRleHRMVmlldykpWzhdfShkKX1mdW5jdGlvbiBxQihkLGcpe2xldCBoPW51bGw7Y29uc3Qgdj1mdW5jdGlvbiB1QihkKXtjb25zdCBnPWQuYXR0cnM7aWYobnVsbCE9Zyl7Y29uc3QgaD1nLmluZGV4T2YoNSk7aWYoMD09KDEm''@;'; + put 'put ''aCkpcmV0dXJuIGdbaCsxXX1yZXR1cm4gbnVsbH0oZCk7Zm9yKGxldCB5PTA7eTxnLmxlbmd0aDt5Kyspe2NvbnN0IEM9Z1t5XTtpZigiKiIhPT1DKXtpZihudWxsPT09dj9KYihkLEMsITApOmNCKHYsQykpcmV0dXJuIHl9ZWxzZSBoPXl9cmV0dXJuIGh9ZnVuY3Rpb24gSzAoZCl7Y29uc3Qg''@;'; + put 'put ''Zz1QdCgpWzE2XVs2XTtpZighZy5wcm9qZWN0aW9uKXtjb25zdCB2PWcucHJvamVjdGlvbj1tMyhkP2QubGVuZ3RoOjEsbnVsbCkseT12LnNsaWNlKCk7bGV0IEM9Zy5jaGlsZDtmb3IoO251bGwhPT1DOyl7Y29uc3QgST1kP3FCKEMsZCk6MDtudWxsIT09SSYmKHlbSV0/eVtJXS5wcm9qZWN0''@;'; + put 'put ''aW9uTmV4dD1DOnZbSV09Qyx5W0ldPUMpLEM9Qy5uZXh0fX19ZnVuY3Rpb24gTmkoZCxnPTAsaCl7Y29uc3Qgdj1QdCgpLHk9ZmUoKSxDPVM2KHksMjIrZCwxNixudWxsLGh8fG51bGwpO251bGw9PT1DLnByb2plY3Rpb24mJihDLnByb2plY3Rpb249ZyksQW8oKSw2NCE9KDY0JkMuZmxhZ3Mp''@;'; + put 'put ''JiZmdW5jdGlvbiBsQihkLGcsaCl7TEUoZ1sxMV0sMCxnLGgsTmIoZCxoLGcpLFRFKGgucGFyZW50fHxnWzZdLGgsZykpfSh5LHYsQyl9ZnVuY3Rpb24gSTYoZCxnLGgpe3JldHVybiBabShkLCIiLGcsIiIsaCksSTZ9ZnVuY3Rpb24gWm0oZCxnLGgsdix5KXtjb25zdCBDPVB0KCksST1tNShD''@;'; + put 'put ''LGcsaCx2KTtyZXR1cm4gSSE9PUhhJiZlYyhmZSgpLEYyKCksQyxkLEksQ1sxMV0seSwhMSksWm19ZnVuY3Rpb24ga3goZCxnLGgsdix5KXtjb25zdCBDPWRbaCsxXSxJPW51bGw9PT1nO2xldCBqPXY/RGgoQyk6SWQoQyksdWU9ITE7Zm9yKDswIT09aiYmKCExPT09dWV8fEkpOyl7Y29uc3Qg''@;'; + put 'put ''QmU9ZFtqKzFdO1ZfKGRbal0sZykmJih1ZT0hMCxkW2orMV09dj9hNShCZSk6bl8oQmUpKSxqPXY/RGgoQmUpOklkKEJlKX11ZSYmKGRbaCsxXT12P25fKEMpOmE1KEMpKX1mdW5jdGlvbiBWXyhkLGcpe3JldHVybiBudWxsPT09ZHx8bnVsbD09Z3x8KEFycmF5LmlzQXJyYXkoZCk/ZFsxXTpk''@;'; + put 'put ''KT09PWd8fCEoIUFycmF5LmlzQXJyYXkoZCl8fCJzdHJpbmciIT10eXBlb2YgZykmJkY4KGQsZyk+PTB9ZnVuY3Rpb24gUjMoZCxnLGgpe3JldHVybiAkZihkLGcsaCwhMSksUjN9ZnVuY3Rpb24gRmkoZCxnKXtyZXR1cm4gJGYoZCxnLG51bGwsITApLEZpfWZ1bmN0aW9uICRmKGQsZyxoLHYp''@;'; + put 'put ''e2NvbnN0IHk9UHQoKSxDPWZlKCksST1vMigyKTtDLmZpcnN0VXBkYXRlUGFzcyYmZnVuY3Rpb24gUngoZCxnLGgsdil7Y29uc3QgeT1kLmRhdGE7aWYobnVsbD09PXlbaCsxXSl7Y29uc3QgQz15W1VsKCldLEk9ZnVuY3Rpb24gT3goZCxnKXtyZXR1cm4gZz49ZC5leHBhbmRvU3RhcnRJbmRl''@;'; + put 'put ''eH0oZCxoKTsoZnVuY3Rpb24gR20oZCxnKXtyZXR1cm4gMCE9KGQuZmxhZ3MmKGc/MTY6MzIpKX0pKEMsdikmJm51bGw9PT1nJiYhSSYmKGc9ITEpLGc9ZnVuY3Rpb24gQngoZCxnLGgsdil7Y29uc3QgeT1ndihkKTtsZXQgQz12P2cucmVzaWR1YWxDbGFzc2VzOmcucmVzaWR1YWxTdHlsZXM7''@;'; + put 'put ''aWYobnVsbD09PXkpMD09PSh2P2cuY2xhc3NCaW5kaW5nczpnLnN0eWxlQmluZGluZ3MpJiYoaD1fNShoPWpfKG51bGwsZCxnLGgsdiksZy5hdHRycyx2KSxDPW51bGwpO2Vsc2V7Y29uc3QgST1nLmRpcmVjdGl2ZVN0eWxpbmdMYXN0O2lmKC0xPT09SXx8ZFtJXSE9PXkpaWYoaD1qXyh5LGQs''@;'; + put 'put ''ZyxoLHYpLG51bGw9PT1DKXtsZXQgdWU9ZnVuY3Rpb24gdVAoZCxnLGgpe2NvbnN0IHY9aD9nLmNsYXNzQmluZGluZ3M6Zy5zdHlsZUJpbmRpbmdzO2lmKDAhPT1JZCh2KSlyZXR1cm4gZFtEaCh2KV19KGQsZyx2KTt2b2lkIDAhPT11ZSYmQXJyYXkuaXNBcnJheSh1ZSkmJih1ZT1qXyhudWxs''@;'; + put 'put ''LGQsZyx1ZVsxXSx2KSx1ZT1fNSh1ZSxnLmF0dHJzLHYpLGZ1bmN0aW9uIGNQKGQsZyxoLHYpe2RbRGgoaD9nLmNsYXNzQmluZGluZ3M6Zy5zdHlsZUJpbmRpbmdzKV09dn0oZCxnLHYsdWUpKX1lbHNlIEM9ZnVuY3Rpb24gUHgoZCxnLGgpe2xldCB2O2NvbnN0IHk9Zy5kaXJlY3RpdmVFbmQ7''@;'; + put 'put ''Zm9yKGxldCBDPTErZy5kaXJlY3RpdmVTdHlsaW5nTGFzdDtDPHk7QysrKXY9XzUodixkW0NdLmhvc3RBdHRycyxoKTtyZXR1cm4gXzUodixnLmF0dHJzLGgpfShkLGcsdil9cmV0dXJuIHZvaWQgMCE9PUMmJih2P2cucmVzaWR1YWxDbGFzc2VzPUM6Zy5yZXNpZHVhbFN0eWxlcz1DKSxofSh5''@;'; + put 'put ''LEMsZyx2KSxmdW5jdGlvbiBlUChkLGcsaCx2LHksQyl7bGV0IEk9Qz9nLmNsYXNzQmluZGluZ3M6Zy5zdHlsZUJpbmRpbmdzLGo9RGgoSSksdWU9SWQoSSk7ZFt2XT1oO2xldCBCZSxfZT0hMTtpZihBcnJheS5pc0FycmF5KGgpKXtjb25zdCBOZT1oO0JlPU5lWzFdLChudWxsPT09QmV8fEY4''@;'; + put 'put ''KE5lLEJlKT4wKSYmKF9lPSEwKX1lbHNlIEJlPWg7aWYoeSlpZigwIT09dWUpe2NvbnN0IEtlPURoKGRbaisxXSk7ZFt2KzFdPUt2KEtlLGopLDAhPT1LZSYmKGRbS2UrMV09XzYoZFtLZSsxXSx2KSksZFtqKzFdPWZ1bmN0aW9uICR2KGQsZyl7cmV0dXJuIDEzMTA3MSZkfGc8PDE3fShkW2or''@;'; + put 'put ''MV0sdil9ZWxzZSBkW3YrMV09S3YoaiwwKSwwIT09aiYmKGRbaisxXT1fNihkW2orMV0sdikpLGo9djtlbHNlIGRbdisxXT1Ldih1ZSwwKSwwPT09aj9qPXY6ZFt1ZSsxXT1fNihkW3VlKzFdLHYpLHVlPXY7X2UmJihkW3YrMV09bl8oZFt2KzFdKSksa3goZCxCZSx2LCEwKSxreChkLEJlLHYs''@;'; + put 'put ''ITEpLGZ1bmN0aW9uIHRQKGQsZyxoLHYseSl7Y29uc3QgQz15P2QucmVzaWR1YWxDbGFzc2VzOmQucmVzaWR1YWxTdHlsZXM7bnVsbCE9QyYmInN0cmluZyI9PXR5cGVvZiBnJiZGOChDLGcpPj0wJiYoaFt2KzFdPWE1KGhbdisxXSkpfShnLEJlLGQsdixDKSxJPUt2KGosdWUpLEM/Zy5jbGFz''@;'; + put 'put ''c0JpbmRpbmdzPUk6Zy5zdHlsZUJpbmRpbmdzPUl9KHksQyxnLGgsSSx2KX19KEMsZCxJLHYpLGchPT1IYSYmdGMoeSxJLGcpJiZmdW5jdGlvbiBaXyhkLGcsaCx2LHksQyxJLGope2lmKCEoMyZnLnR5cGUpKXJldHVybjtjb25zdCB1ZT1kLmRhdGEsX2U9dWVbaisxXTtDQShmdW5jdGlvbiBx''@;'; + put 'put ''dihkKXtyZXR1cm4gMT09KDEmZCl9KF9lKT96Xyh1ZSxnLGgseSxJZChfZSksSSk6dm9pZCAwKXx8KENBKEMpfHxmdW5jdGlvbiB0XyhkKXtyZXR1cm4gMj09KDImZCl9KF9lKSYmKEM9el8odWUsbnVsbCxoLHksaixJKSksZnVuY3Rpb24gc0IoZCxnLGgsdix5KXtpZihnKXk/ZC5hZGRDbGFz''@;'; + put 'put ''cyhoLHYpOmQucmVtb3ZlQ2xhc3MoaCx2KTtlbHNle2xldCBDPS0xPT09di5pbmRleE9mKCItIik/dm9pZCAwOmZ1LkRhc2hDYXNlO251bGw9PXk/ZC5yZW1vdmVTdHlsZShoLHYsQyk6KCJzdHJpbmciPT10eXBlb2YgeSYmeS5lbmRzV2l0aCgiIWltcG9ydGFudCIpJiYoeT15LnNsaWNlKDAs''@;'; + put 'put ''LTEwKSxDfD1mdS5JbXBvcnRhbnQpLGQuc2V0U3R5bGUoaCx2LHksQykpfX0odixJLFVwKFVsKCksaCkseSxDKSl9KEMsQy5kYXRhW1VsKCldLHkseVsxMV0sZCx5W0krMV09ZnVuY3Rpb24gTHUoZCxnKXtyZXR1cm4gbnVsbD09ZHx8KCJzdHJpbmciPT10eXBlb2YgZz9kKz1nOiJvYmplY3Qi''@;'; + put 'put ''PT10eXBlb2YgZCYmKGQ9bW4oZDIoZCkpKSksZH0oZyxoKSx2LEkpfWZ1bmN0aW9uIGpfKGQsZyxoLHYseSl7bGV0IEM9bnVsbDtjb25zdCBJPWguZGlyZWN0aXZlRW5kO2xldCBqPWguZGlyZWN0aXZlU3R5bGluZ0xhc3Q7Zm9yKC0xPT09aj9qPWguZGlyZWN0aXZlU3RhcnQ6aisrO2o8SSYm''@;'; + put 'put ''KEM9Z1tqXSx2PV81KHYsQy5ob3N0QXR0cnMseSksQyE9PWQpOylqKys7cmV0dXJuIG51bGwhPT1kJiYoaC5kaXJlY3RpdmVTdHlsaW5nTGFzdD1qKSx2fWZ1bmN0aW9uIF81KGQsZyxoKXtjb25zdCB2PWg/MToyO2xldCB5PS0xO2lmKG51bGwhPT1nKWZvcihsZXQgQz0wO0M8Zy5sZW5ndGg7''@;'; + put 'put ''QysrKXtjb25zdCBJPWdbQ107Im51bWJlciI9PXR5cGVvZiBJP3k9STp5PT09diYmKEFycmF5LmlzQXJyYXkoZCl8fChkPXZvaWQgMD09PWQ/W106WyIiLGRdKSxZYyhkLEksISFofHxnWysrQ10pKX1yZXR1cm4gdm9pZCAwPT09ZD9udWxsOmR9ZnVuY3Rpb24gel8oZCxnLGgsdix5LEMpe2Nv''@;'; + put 'put ''bnN0IEk9bnVsbD09PWc7bGV0IGo7Zm9yKDt5PjA7KXtjb25zdCB1ZT1kW3ldLF9lPUFycmF5LmlzQXJyYXkodWUpLEJlPV9lP3VlWzFdOnVlLE5lPW51bGw9PT1CZTtsZXQgS2U9aFt5KzFdO0tlPT09SGEmJihLZT1OZT9aMDp2b2lkIDApO2xldCBkdD1OZT9pbShLZSx2KTpCZT09PXY/S2U6''@;'; + put 'put ''dm9pZCAwO2lmKF9lJiYhQ0EoZHQpJiYoZHQ9aW0odWUsdikpLENBKGR0KSYmKGo9ZHQsSSkpcmV0dXJuIGo7Y29uc3QgT3Q9ZFt5KzFdO3k9ST9EaChPdCk6SWQoT3QpfWlmKG51bGwhPT1nKXtsZXQgdWU9Qz9nLnJlc2lkdWFsQ2xhc3NlczpnLnJlc2lkdWFsU3R5bGVzO251bGwhPXVlJiYo''@;'; + put 'put ''aj1pbSh1ZSx2KSl9cmV0dXJuIGp9ZnVuY3Rpb24gQ0EoZCl7cmV0dXJuIHZvaWQgMCE9PWR9ZnVuY3Rpb24gVXQoZCxnPSIiKXtjb25zdCBoPVB0KCksdj1mZSgpLHk9ZCsyMixDPXYuZmlyc3RDcmVhdGVQYXNzP1M2KHYseSwxLGcsbnVsbCk6di5kYXRhW3ldLEk9aFt5XT1mdW5jdGlvbiBC''@;'; + put 'put ''YihkLGcpe3JldHVybiBkLmNyZWF0ZVRleHQoZyl9KGhbMTFdLGcpO2JmKHYsaCxJLEMpLGpuKEMsITEpfWZ1bmN0aW9uIEdpKGQpe3JldHVybiBKaSgiIixkLCIiKSxHaX1mdW5jdGlvbiBKaShkLGcsaCl7Y29uc3Qgdj1QdCgpLHk9bTUodixkLGcsaCk7cmV0dXJuIHkhPT1IYSYmUmgodixV''@;'; + put 'put ''bCgpLHkpLEppfWZ1bmN0aW9uIEZoKGQsZyxoLHYseSl7Y29uc3QgQz1QdCgpLEk9ZnVuY3Rpb24gS2YoZCxnLGgsdix5LEMpe2NvbnN0IGo9eDYoZCxNbigpLGgseSk7cmV0dXJuIG8yKDIpLGo/ZytKbihoKSt2K0puKHkpK0M6SGF9KEMsZCxnLGgsdix5KTtyZXR1cm4gSSE9PUhhJiZSaChD''@;'; + put 'put ''LFVsKCksSSksRmh9ZnVuY3Rpb24ga2YoZCxnLGgsdix5LEMsSSl7Y29uc3Qgaj1QdCgpLHVlPWZ1bmN0aW9uIFBkKGQsZyxoLHYseSxDLEksail7Y29uc3QgX2U9d0EoZCxNbigpLGgseSxJKTtyZXR1cm4gbzIoMyksX2U/ZytKbihoKSt2K0puKHkpK0MrSm4oSSkrajpIYX0oaixkLGcsaCx2''@;'; + put 'put ''LHksQyxJKTtyZXR1cm4gdWUhPT1IYSYmUmgoaixVbCgpLHVlKSxrZn1mdW5jdGlvbiBQMyhkLGcsaCl7Y29uc3Qgdj1QdCgpO3JldHVybiB0Yyh2LGkyKCksZykmJmVjKGZlKCksRjIoKSx2LGQsZyx2WzExXSxoLCEwKSxQM31mdW5jdGlvbiBDNShkLGcsaCl7Y29uc3Qgdj1QdCgpO2lmKHRj''@;'; + put 'put ''KHYsaTIoKSxnKSl7Y29uc3QgQz1mZSgpLEk9RjIoKTtlYyhDLEksdixkLGcseF8oZ3YoQy5kYXRhKSxJLHYpLGgsITApfXJldHVybiBDNX1jb25zdCBOaD12b2lkIDA7dmFyICRfPVsiZW4iLFtbImEiLCJwIl0sWyJBTSIsIlBNIl0sTmhdLFtbIkFNIiwiUE0iXSxOaCxOaF0sW1siUyIsIk0i''@;'; + put 'put ''LCJUIiwiVyIsIlQiLCJGIiwiUyJdLFsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sWyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLFsiU3UiLCJNbyIsIlR1IiwiV2UiLCJUaCIs''@;'; + put 'put ''IkZyIiwiU2EiXV0sTmgsW1siSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sWyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSxbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1h''@;'; + put 'put ''cmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl1dLE5oLFtbIkIiLCJBIl0sWyJCQyIsIkFEIl0sWyJCZWZvcmUgQ2hyaXN0IiwiQW5ubyBEb21pbmkiXV0sMCxbNiwwXSxbIk0vZC95eSIs''@;'; + put 'put ''Ik1NTSBkLCB5IiwiTU1NTSBkLCB5IiwiRUVFRSwgTU1NTSBkLCB5Il0sWyJoOm1tIGEiLCJoOm1tOnNzIGEiLCJoOm1tOnNzIGEgeiIsImg6bW06c3MgYSB6enp6Il0sWyJ7MX0sIHswfSIsTmgsInsxfSAnYXQnIHswfSIsTmhdLFsiLiIsIiwiLCI7IiwiJSIsIisiLCItIiwiRSIsIlx4ZDci''@;'; + put 'put ''LCJcdTIwMzAiLCJcdTIyMWUiLCJOYU4iLCI6Il0sWyIjLCMjMC4jIyMiLCIjLCMjMCUiLCJceGE0IywjIzAuMDAiLCIjRTAiXSwiVVNEIiwiJCIsIlVTIERvbGxhciIse30sImx0ciIsZnVuY3Rpb24gS18oZCl7Y29uc3QgaD1NYXRoLmZsb29yKE1hdGguYWJzKGQpKSx2PWQudG9TdHJpbmco''@;'; + put 'put ''KS5yZXBsYWNlKC9eW14uXSpcLj8vLCIiKS5sZW5ndGg7cmV0dXJuIDE9PT1oJiYwPT09dj8xOjV9XTtsZXQgazU9e307ZnVuY3Rpb24gcmMoZCl7Y29uc3QgZz1mdW5jdGlvbiAkeChkKXtyZXR1cm4gZC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywiLSIpfShkKTtsZXQgaD1LeChnKTtp''@;'; + put 'put ''ZihoKXJldHVybiBoO2NvbnN0IHY9Zy5zcGxpdCgiLSIpWzBdO2lmKGg9S3godiksaClyZXR1cm4gaDtpZigiZW4iPT09dilyZXR1cm4gJF87dGhyb3cgbmV3IGVuKDcwMSwhMSl9ZnVuY3Rpb24gS3goZCl7cmV0dXJuIGQgaW4gazV8fChrNVtkXT1QbC5uZyYmUGwubmcuY29tbW9uJiZQbC5u''@;'; + put 'put ''Zy5jb21tb24ubG9jYWxlcyYmUGwubmcuY29tbW9uLmxvY2FsZXNbZF0pLGs1W2RdfXZhciBNbz0oKCk9PigoTW89TW98fHt9KVtNby5Mb2NhbGVJZD0wXT0iTG9jYWxlSWQiLE1vW01vLkRheVBlcmlvZHNGb3JtYXQ9MV09IkRheVBlcmlvZHNGb3JtYXQiLE1vW01vLkRheVBlcmlvZHNTdGFu''@;'; + put 'put ''ZGFsb25lPTJdPSJEYXlQZXJpb2RzU3RhbmRhbG9uZSIsTW9bTW8uRGF5c0Zvcm1hdD0zXT0iRGF5c0Zvcm1hdCIsTW9bTW8uRGF5c1N0YW5kYWxvbmU9NF09IkRheXNTdGFuZGFsb25lIixNb1tNby5Nb250aHNGb3JtYXQ9NV09Ik1vbnRoc0Zvcm1hdCIsTW9bTW8uTW9udGhzU3RhbmRhbG9u''@;'; + put 'put ''ZT02XT0iTW9udGhzU3RhbmRhbG9uZSIsTW9bTW8uRXJhcz03XT0iRXJhcyIsTW9bTW8uRmlyc3REYXlPZldlZWs9OF09IkZpcnN0RGF5T2ZXZWVrIixNb1tNby5XZWVrZW5kUmFuZ2U9OV09IldlZWtlbmRSYW5nZSIsTW9bTW8uRGF0ZUZvcm1hdD0xMF09IkRhdGVGb3JtYXQiLE1vW01vLlRp''@;'; + put 'put ''bWVGb3JtYXQ9MTFdPSJUaW1lRm9ybWF0IixNb1tNby5EYXRlVGltZUZvcm1hdD0xMl09IkRhdGVUaW1lRm9ybWF0IixNb1tNby5OdW1iZXJTeW1ib2xzPTEzXT0iTnVtYmVyU3ltYm9scyIsTW9bTW8uTnVtYmVyRm9ybWF0cz0xNF09Ik51bWJlckZvcm1hdHMiLE1vW01vLkN1cnJlbmN5Q29k''@;'; + put 'put ''ZT0xNV09IkN1cnJlbmN5Q29kZSIsTW9bTW8uQ3VycmVuY3lTeW1ib2w9MTZdPSJDdXJyZW5jeVN5bWJvbCIsTW9bTW8uQ3VycmVuY3lOYW1lPTE3XT0iQ3VycmVuY3lOYW1lIixNb1tNby5DdXJyZW5jaWVzPTE4XT0iQ3VycmVuY2llcyIsTW9bTW8uRGlyZWN0aW9uYWxpdHk9MTldPSJEaXJl''@;'; + put 'put ''Y3Rpb25hbGl0eSIsTW9bTW8uUGx1cmFsQ2FzZT0yMF09IlBsdXJhbENhc2UiLE1vW01vLkV4dHJhRGF0YT0yMV09IkV4dHJhRGF0YSIsTW8pKSgpO2NvbnN0IFM1PSJlbi1VUyI7bGV0IE01PVM1O2Z1bmN0aW9uIEthKGQsZyxoLHYseSl7aWYoZD1HdChkKSxBcnJheS5pc0FycmF5KGQpKWZv''@;'; + put 'put ''cihsZXQgQz0wO0M8ZC5sZW5ndGg7QysrKUthKGRbQ10sZyxoLHYseSk7ZWxzZXtjb25zdCBDPWZlKCksST1QdCgpO2xldCBqPWszKGQpP2Q6R3QoZC5wcm92aWRlKSx1ZT1sRShkKTtjb25zdCBfZT1KdCgpLEJlPTEwNDg1NzUmX2UucHJvdmlkZXJJbmRleGVzLE5lPV9lLmRpcmVjdGl2ZVN0''@;'; + put 'put ''YXJ0LEtlPV9lLnByb3ZpZGVySW5kZXhlcz4+MjA7aWYoazMoZCl8fCFkLm11bHRpKXtjb25zdCBkdD1uZXcgeWQodWUseSxYdCksT3Q9cW0oaixnLHk/QmU6QmUrS2UsTmUpOy0xPT09T3Q/KEdmKGU2KF9lLEkpLEMsaiksS20oQyxkLGcubGVuZ3RoKSxnLnB1c2goaiksX2UuZGlyZWN0aXZl''@;'; + put 'put ''U3RhcnQrKyxfZS5kaXJlY3RpdmVFbmQrKyx5JiYoX2UucHJvdmlkZXJJbmRleGVzKz0xMDQ4NTc2KSxoLnB1c2goZHQpLEkucHVzaChkdCkpOihoW090XT1kdCxJW090XT1kdCl9ZWxzZXtjb25zdCBkdD1xbShqLGcsQmUrS2UsTmUpLE90PXFtKGosZyxCZSxCZStLZSksJHQ9ZHQ+PTAmJmhb''@;'; + put 'put ''ZHRdLGZuPU90Pj0wJiZoW090XTtpZih5JiYhZm58fCF5JiYhJHQpe0dmKGU2KF9lLEkpLEMsaik7Y29uc3QgTG49ZnVuY3Rpb24gSFAoZCxnLGgsdix5KXtjb25zdCBDPW5ldyB5ZChkLGgsWHQpO3JldHVybiBDLm11bHRpPVtdLEMuaW5kZXg9ZyxDLmNvbXBvbmVudFByb3ZpZGVycz0wLCRt''@;'; + put 'put ''KEMseSx2JiYhaCksQ30oeT91QzpWZCxoLmxlbmd0aCx5LHYsdWUpOyF5JiZmbiYmKGhbT3RdLnByb3ZpZGVyRmFjdG9yeT1MbiksS20oQyxkLGcubGVuZ3RoLDApLGcucHVzaChqKSxfZS5kaXJlY3RpdmVTdGFydCsrLF9lLmRpcmVjdGl2ZUVuZCsrLHkmJihfZS5wcm92aWRlckluZGV4ZXMr''@;'; + put 'put ''PTEwNDg1NzYpLGgucHVzaChMbiksSS5wdXNoKExuKX1lbHNlIEttKEMsZCxkdD4tMT9kdDpPdCwkbShoW3k/T3Q6ZHRdLHVlLCF5JiZ2KSk7IXkmJnYmJmZuJiZoW090XS5jb21wb25lbnRQcm92aWRlcnMrK319fWZ1bmN0aW9uIEttKGQsZyxoLHYpe2NvbnN0IHk9azMoZyksQz1mdW5jdGlv''@;'; + put 'put ''biBiYihkKXtyZXR1cm4hIWQudXNlQ2xhc3N9KGcpO2lmKHl8fEMpe2NvbnN0IHVlPShDP0d0KGcudXNlQ2xhc3MpOmcpLnByb3RvdHlwZS5uZ09uRGVzdHJveTtpZih1ZSl7Y29uc3QgX2U9ZC5kZXN0cm95SG9va3N8fChkLmRlc3Ryb3lIb29rcz1bXSk7aWYoIXkmJmcubXVsdGkpe2NvbnN0''@;'; + put 'put ''IEJlPV9lLmluZGV4T2YoaCk7LTE9PT1CZT9fZS5wdXNoKGgsW3YsdWVdKTpfZVtCZSsxXS5wdXNoKHYsdWUpfWVsc2UgX2UucHVzaChoLHVlKX19fWZ1bmN0aW9uICRtKGQsZyxoKXtyZXR1cm4gaCYmZC5jb21wb25lbnRQcm92aWRlcnMrKyxkLm11bHRpLnB1c2goZyktMX1mdW5jdGlvbiBx''@;'; + put 'put ''bShkLGcsaCx2KXtmb3IobGV0IHk9aDt5PHY7eSsrKWlmKGdbeV09PT1kKXJldHVybiB5O3JldHVybi0xfWZ1bmN0aW9uIFZkKGQsZyxoLHYpe3JldHVybiBvYyh0aGlzLm11bHRpLFtdKX1mdW5jdGlvbiB1QyhkLGcsaCx2KXtjb25zdCB5PXRoaXMubXVsdGk7bGV0IEM7aWYodGhpcy5wcm92''@;'; + put 'put ''aWRlckZhY3Rvcnkpe2NvbnN0IEk9dGhpcy5wcm92aWRlckZhY3RvcnkuY29tcG9uZW50UHJvdmlkZXJzLGo9VDQoaCxoWzFdLHRoaXMucHJvdmlkZXJGYWN0b3J5LmluZGV4LHYpO0M9ai5zbGljZSgwLEkpLG9jKHksQyk7Zm9yKGxldCB1ZT1JO3VlPGoubGVuZ3RoO3VlKyspQy5wdXNoKGpb''@;'; + put 'put ''dWVdKX1lbHNlIEM9W10sb2MoeSxDKTtyZXR1cm4gQ31mdW5jdGlvbiBvYyhkLGcpe2ZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7aCsrKWcucHVzaCgoMCxkW2hdKSgpKTtyZXR1cm4gZ31mdW5jdGlvbiBobyhkLGc9W10pe3JldHVybiBoPT57aC5wcm92aWRlcnNSZXNvbHZlcj0odix5KT0+ZnVu''@;'; + put 'put ''Y3Rpb24gaDEoZCxnLGgpe2NvbnN0IHY9ZmUoKTtpZih2LmZpcnN0Q3JlYXRlUGFzcyl7Y29uc3QgeT1WZihkKTtLYShoLHYuZGF0YSx2LmJsdWVwcmludCx5LCEwKSxLYShnLHYuZGF0YSx2LmJsdWVwcmludCx5LCExKX19KHYseT95KGQpOmQsZyl9fWNsYXNzIE4ze31jbGFzcyBDMXt9Y2xh''@;'; + put 'put ''c3MgamQgZXh0ZW5kcyBOM3tjb25zdHJ1Y3RvcihnLGgpe3N1cGVyKCksdGhpcy5fcGFyZW50PWgsdGhpcy5fYm9vdHN0cmFwQ29tcG9uZW50cz1bXSx0aGlzLmRlc3Ryb3lDYnM9W10sdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9bmV3IFRfKHRoaXMpO2NvbnN0IHY9X3MoZyk7dGhp''@;'; + put 'put ''cy5fYm9vdHN0cmFwQ29tcG9uZW50cz15Zih2LmJvb3RzdHJhcCksdGhpcy5fcjNJbmplY3Rvcj1uNShnLGgsW3twcm92aWRlOk4zLHVzZVZhbHVlOnRoaXN9LHtwcm92aWRlOmtkLHVzZVZhbHVlOnRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyfV0sbW4oZyksbmV3IFNldChbImVudmly''@;'; + put 'put ''b25tZW50Il0pKSx0aGlzLl9yM0luamVjdG9yLnJlc29sdmVJbmplY3RvckluaXRpYWxpemVycygpLHRoaXMuaW5zdGFuY2U9dGhpcy5fcjNJbmplY3Rvci5nZXQoZyl9Z2V0IGluamVjdG9yKCl7cmV0dXJuIHRoaXMuX3IzSW5qZWN0b3J9ZGVzdHJveSgpe2NvbnN0IGc9dGhpcy5fcjNJbmpl''@;'; + put 'put ''Y3RvcjshZy5kZXN0cm95ZWQmJmcuZGVzdHJveSgpLHRoaXMuZGVzdHJveUNicy5mb3JFYWNoKGg9PmgoKSksdGhpcy5kZXN0cm95Q2JzPW51bGx9b25EZXN0cm95KGcpe3RoaXMuZGVzdHJveUNicy5wdXNoKGcpfX1jbGFzcyBlNyBleHRlbmRzIEMxe2NvbnN0cnVjdG9yKGcpe3N1cGVyKCks''@;'; + put 'put ''dGhpcy5tb2R1bGVUeXBlPWd9Y3JlYXRlKGcpe3JldHVybiBuZXcgamQodGhpcy5tb2R1bGVUeXBlLGcpfX1jbGFzcyBTYyBleHRlbmRzIE4ze2NvbnN0cnVjdG9yKGcsaCx2KXtzdXBlcigpLHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPW5ldyBUXyh0aGlzKSx0aGlzLmluc3RhbmNl''@;'; + put 'put ''PW51bGw7Y29uc3QgeT1uZXcgX2IoWy4uLmcse3Byb3ZpZGU6TjMsdXNlVmFsdWU6dGhpc30se3Byb3ZpZGU6a2QsdXNlVmFsdWU6dGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJ9XSxofHxNMygpLHYsbmV3IFNldChbImVudmlyb25tZW50Il0pKTt0aGlzLmluamVjdG9yPXkseS5yZXNv''@;'; + put 'put ''bHZlSW5qZWN0b3JJbml0aWFsaXplcnMoKX1kZXN0cm95KCl7dGhpcy5pbmplY3Rvci5kZXN0cm95KCl9b25EZXN0cm95KGcpe3RoaXMuaW5qZWN0b3Iub25EZXN0cm95KGcpfX1mdW5jdGlvbiB0NyhkLGcsaD1udWxsKXtyZXR1cm4gbmV3IFNjKGQsZyxoKS5pbmplY3Rvcn1mdW5jdGlvbiBO''@;'; + put 'put ''cyhkLGcsaCl7Y29uc3Qgdj1scygpK2QseT1QdCgpO3JldHVybiB5W3ZdPT09SGE/TDMoeSx2LGg/Zy5jYWxsKGgpOmcoKSk6ZnVuY3Rpb24gTm0oZCxnKXtyZXR1cm4gZFtnXX0oeSx2KX1mdW5jdGlvbiBaZChkLGcsaCx2KXtyZXR1cm4gWWUoUHQoKSxscygpLGQsZyxoLHYpfWZ1bmN0aW9u''@;'; + put 'put ''IFozKGQsZyxoLHYseSl7cmV0dXJuIE10KFB0KCksbHMoKSxkLGcsaCx2LHkpfWZ1bmN0aW9uIEgoZCxnLGgsdix5LEMpe3JldHVybiB4dChQdCgpLGxzKCksZCxnLGgsdix5LEMpfWZ1bmN0aW9uIHJlKGQsZyxoLHYseSxDLEkpe3JldHVybiBmdW5jdGlvbiBSdChkLGcsaCx2LHksQyxJLGos''@;'; + put 'put ''dWUpe2NvbnN0IF9lPWcraDtyZXR1cm4gZnVuY3Rpb24gWGYoZCxnLGgsdix5LEMpe2NvbnN0IEk9eDYoZCxnLGgsdik7cmV0dXJuIHg2KGQsZysyLHksQyl8fEl9KGQsX2UseSxDLEksaik/TDMoZCxfZSs0LHVlP3YuY2FsbCh1ZSx5LEMsSSxqKTp2KHksQyxJLGopKTpqZShkLF9lKzQpfShQ''@;'; + put 'put ''dCgpLGxzKCksZCxnLGgsdix5LEMsSSl9ZnVuY3Rpb24gamUoZCxnKXtjb25zdCBoPWRbZ107cmV0dXJuIGg9PT1IYT92b2lkIDA6aH1mdW5jdGlvbiBZZShkLGcsaCx2LHksQyl7Y29uc3QgST1nK2g7cmV0dXJuIHRjKGQsSSx5KT9MMyhkLEkrMSxDP3YuY2FsbChDLHkpOnYoeSkpOmplKGQs''@;'; + put 'put ''SSsxKX1mdW5jdGlvbiBNdChkLGcsaCx2LHksQyxJKXtjb25zdCBqPWcraDtyZXR1cm4geDYoZCxqLHksQyk/TDMoZCxqKzIsST92LmNhbGwoSSx5LEMpOnYoeSxDKSk6amUoZCxqKzIpfWZ1bmN0aW9uIHh0KGQsZyxoLHYseSxDLEksail7Y29uc3QgdWU9ZytoO3JldHVybiB3QShkLHVlLHks''@;'; + put 'put ''QyxJKT9MMyhkLHVlKzMsaj92LmNhbGwoaix5LEMsSSk6dih5LEMsSSkpOmplKGQsdWUrMyl9ZnVuY3Rpb24gbm4oZCxnKXtjb25zdCBoPWZlKCk7bGV0IHY7Y29uc3QgeT1kKzIyO2guZmlyc3RDcmVhdGVQYXNzPyh2PWZ1bmN0aW9uIENuKGQsZyl7aWYoZylmb3IobGV0IGg9Zy5sZW5ndGgt''@;'; + put 'put ''MTtoPj0wO2gtLSl7Y29uc3Qgdj1nW2hdO2lmKGQ9PT12Lm5hbWUpcmV0dXJuIHZ9fShnLGgucGlwZVJlZ2lzdHJ5KSxoLmRhdGFbeV09dix2Lm9uRGVzdHJveSYmKGguZGVzdHJveUhvb2tzfHwoaC5kZXN0cm95SG9va3M9W10pKS5wdXNoKHksdi5vbkRlc3Ryb3kpKTp2PWguZGF0YVt5XTtj''@;'; + put 'put ''b25zdCBDPXYuZmFjdG9yeXx8KHYuZmFjdG9yeT1qZih2LnR5cGUpKSxJPV8wKFh0KTt0cnl7Y29uc3Qgaj1MOCghMSksdWU9QygpO3JldHVybiBMOChqKSxmdW5jdGlvbiB2eChkLGcsaCx2KXtoPj1kLmRhdGEubGVuZ3RoJiYoZC5kYXRhW2hdPW51bGwsZC5ibHVlcHJpbnRbaF09bnVsbCks''@;'; + put 'put ''Z1toXT12fShoLFB0KCkseSx1ZSksdWV9ZmluYWxseXtfMChJKX19ZnVuY3Rpb24genQoZCxnLGgpe2NvbnN0IHY9ZCsyMix5PVB0KCksQz1RcCh5LHYpO3JldHVybiBNcih5LHYpP1llKHksbHMoKSxnLEMudHJhbnNmb3JtLGgsQyk6Qy50cmFuc2Zvcm0oaCl9ZnVuY3Rpb24gUG4oZCxnLGgs''@;'; + put 'put ''dil7Y29uc3QgeT1kKzIyLEM9UHQoKSxJPVFwKEMseSk7cmV0dXJuIE1yKEMseSk/TXQoQyxscygpLGcsSS50cmFuc2Zvcm0saCx2LEkpOkkudHJhbnNmb3JtKGgsdil9ZnVuY3Rpb24gVG4oZCxnLGgsdix5KXtjb25zdCBDPWQrMjIsST1QdCgpLGo9UXAoSSxDKTtyZXR1cm4gTXIoSSxDKT94''@;'; + put 'put ''dChJLGxzKCksZyxqLnRyYW5zZm9ybSxoLHYseSxqKTpqLnRyYW5zZm9ybShoLHYseSl9ZnVuY3Rpb24gTXIoZCxnKXtyZXR1cm4gZFsxXS5kYXRhW2ddLnB1cmV9ZnVuY3Rpb24geXIoZCl7cmV0dXJuIGc9PntzZXRUaW1lb3V0KGQsdm9pZCAwLGcpfX1jb25zdCBhcj1jbGFzcyBhaSBleHRl''@;'; + put 'put ''bmRzICRle2NvbnN0cnVjdG9yKGc9ITEpe3N1cGVyKCksdGhpcy5fX2lzQXN5bmM9Z31lbWl0KGcpe3N1cGVyLm5leHQoZyl9c3Vic2NyaWJlKGcsaCx2KXt2YXIgeSxDLEk7bGV0IGo9Zyx1ZT1ofHwoKCk9Pm51bGwpLF9lPXY7aWYoZyYmIm9iamVjdCI9PXR5cGVvZiBnKXtjb25zdCBOZT1n''@;'; + put 'put ''O2o9bnVsbD09PSh5PU5lLm5leHQpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmJpbmQoTmUpLHVlPW51bGw9PT0oQz1OZS5lcnJvcil8fHZvaWQgMD09PUM/dm9pZCAwOkMuYmluZChOZSksX2U9bnVsbD09PShJPU5lLmNvbXBsZXRlKXx8dm9pZCAwPT09ST92b2lkIDA6SS5iaW5kKE5lKX10aGlz''@;'; + put 'put ''Ll9faXNBc3luYyYmKHVlPXlyKHVlKSxqJiYoaj15cihqKSksX2UmJihfZT15cihfZSkpKTtjb25zdCBCZT1zdXBlci5zdWJzY3JpYmUoe25leHQ6aixlcnJvcjp1ZSxjb21wbGV0ZTpfZX0pO3JldHVybiBnIGluc3RhbmNlb2YgVGUmJmcuYWRkKEJlKSxCZX19O2Z1bmN0aW9uIEdyKCl7cmV0''@;'; + put 'put ''dXJuIHRoaXMuX3Jlc3VsdHNbRTYoKV0oKX1jbGFzcyB6cntjb25zdHJ1Y3RvcihnPSExKXt0aGlzLl9lbWl0RGlzdGluY3RDaGFuZ2VzT25seT1nLHRoaXMuZGlydHk9ITAsdGhpcy5fcmVzdWx0cz1bXSx0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWQ9ITEsdGhpcy5fY2hhbmdlcz1udWxsLHRoaXMu''@;'; + put 'put ''bGVuZ3RoPTAsdGhpcy5maXJzdD12b2lkIDAsdGhpcy5sYXN0PXZvaWQgMDtjb25zdCBoPUU2KCksdj16ci5wcm90b3R5cGU7dltoXXx8KHZbaF09R3IpfWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZXN8fCh0aGlzLl9jaGFuZ2VzPW5ldyBhcil9Z2V0KGcpe3JldHVybiB0aGlz''@;'; + put 'put ''Ll9yZXN1bHRzW2ddfW1hcChnKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5tYXAoZyl9ZmlsdGVyKGcpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbHRlcihnKX1maW5kKGcpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbmQoZyl9cmVkdWNlKGcsaCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMucmVkdWNl''@;'; + put 'put ''KGcsaCl9Zm9yRWFjaChnKXt0aGlzLl9yZXN1bHRzLmZvckVhY2goZyl9c29tZShnKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zb21lKGcpfXRvQXJyYXkoKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zbGljZSgpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMudG9TdHJpbmcoKX1yZXNl''@;'; + put 'put ''dChnLGgpe2NvbnN0IHY9dGhpczt2LmRpcnR5PSExO2NvbnN0IHk9Z2YoZyk7KHRoaXMuX2NoYW5nZXNEZXRlY3RlZD0hZnVuY3Rpb24gYVIoZCxnLGgpe2lmKGQubGVuZ3RoIT09Zy5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCB2PTA7djxkLmxlbmd0aDt2Kyspe2xldCB5PWRbdl0sQz1nW3Zd''@;'; + put 'put ''O2lmKGgmJih5PWgoeSksQz1oKEMpKSxDIT09eSlyZXR1cm4hMX1yZXR1cm4hMH0odi5fcmVzdWx0cyx5LGgpKSYmKHYuX3Jlc3VsdHM9eSx2Lmxlbmd0aD15Lmxlbmd0aCx2Lmxhc3Q9eVt0aGlzLmxlbmd0aC0xXSx2LmZpcnN0PXlbMF0pfW5vdGlmeU9uQ2hhbmdlcygpe3RoaXMuX2NoYW5n''@;'; + put 'put ''ZXMmJih0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWR8fCF0aGlzLl9lbWl0RGlzdGluY3RDaGFuZ2VzT25seSkmJnRoaXMuX2NoYW5nZXMuZW1pdCh0aGlzKX1zZXREaXJ0eSgpe3RoaXMuZGlydHk9ITB9ZGVzdHJveSgpe3RoaXMuY2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMuY2hhbmdlcy51bnN1YnNj''@;'; + put 'put ''cmliZSgpfX1sZXQgcXI9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuX19OR19FTEVNRU5UX0lEX189ZGksZH0pKCk7Y29uc3Qgb2k9cXIsY3I9Y2xhc3MgZXh0ZW5kcyBvaXtjb25zdHJ1Y3RvcihnLGgsdil7c3VwZXIoKSx0aGlzLl9kZWNsYXJhdGlvbkxWaWV3PWcsdGhpcy5fZGVjbGFyYXRp''@;'; + put 'put ''b25UQ29udGFpbmVyPWgsdGhpcy5lbGVtZW50UmVmPXZ9Y3JlYXRlRW1iZWRkZWRWaWV3KGcsaCl7Y29uc3Qgdj10aGlzLl9kZWNsYXJhdGlvblRDb250YWluZXIudFZpZXdzLHk9azYodGhpcy5fZGVjbGFyYXRpb25MVmlldyx2LGcsMTYsbnVsbCx2LmRlY2xUTm9kZSxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLGh8fG51bGwpO3lbMTddPXRoaXMuX2RlY2xhcmF0aW9uTFZpZXdbdGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyLmluZGV4XTtjb25zdCBJPXRoaXMuX2RlY2xhcmF0aW9uTFZpZXdbMTldO3JldHVybiBudWxsIT09SSYmKHlbMTldPUkuY3JlYXRlRW1iZWRkZWRWaWV3KHYpKSx6''@;'; + put 'put ''NCh2LHksZyksbmV3IE02KHkpfX07ZnVuY3Rpb24gZGkoKXtyZXR1cm4gdjAoSnQoKSxQdCgpKX1mdW5jdGlvbiB2MChkLGcpe3JldHVybiA0JmQudHlwZT9uZXcgY3IoZyxkLHA2KGQsZykpOm51bGx9bGV0IFVpPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLl9fTkdfRUxFTUVOVF9JRF9fPXRv''@;'; + put 'put ''LGR9KSgpO2Z1bmN0aW9uIHRvKCl7cmV0dXJuIGhpKEp0KCksUHQoKSl9Y29uc3QgQTA9VWksd2k9Y2xhc3MgZXh0ZW5kcyBBMHtjb25zdHJ1Y3RvcihnLGgsdil7c3VwZXIoKSx0aGlzLl9sQ29udGFpbmVyPWcsdGhpcy5faG9zdFROb2RlPWgsdGhpcy5faG9zdExWaWV3PXZ9Z2V0IGVsZW1l''@;'; + put 'put ''bnQoKXtyZXR1cm4gcDYodGhpcy5faG9zdFROb2RlLHRoaXMuX2hvc3RMVmlldyl9Z2V0IGluamVjdG9yKCl7cmV0dXJuIG5ldyBJNCh0aGlzLl9ob3N0VE5vZGUsdGhpcy5faG9zdExWaWV3KX1nZXQgcGFyZW50SW5qZWN0b3IoKXtjb25zdCBnPUFjKHRoaXMuX2hvc3RUTm9kZSx0aGlzLl9o''@;'; + put 'put ''b3N0TFZpZXcpO2lmKEdjKGcpKXtjb25zdCBoPWRmKGcsdGhpcy5faG9zdExWaWV3KSx2PWN1KGcpO3JldHVybiBuZXcgSTQoaFsxXS5kYXRhW3YrOF0saCl9cmV0dXJuIG5ldyBJNChudWxsLHRoaXMuX2hvc3RMVmlldyl9Y2xlYXIoKXtmb3IoO3RoaXMubGVuZ3RoPjA7KXRoaXMucmVtb3Zl''@;'; + put 'put ''KHRoaXMubGVuZ3RoLTEpfWdldChnKXtjb25zdCBoPVlyKHRoaXMuX2xDb250YWluZXIpO3JldHVybiBudWxsIT09aCYmaFtnXXx8bnVsbH1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2xDb250YWluZXIubGVuZ3RoLTEwfWNyZWF0ZUVtYmVkZGVkVmlldyhnLGgsdil7bGV0IHksQzsibnVt''@;'; + put 'put ''YmVyIj09dHlwZW9mIHY/eT12Om51bGwhPXYmJih5PXYuaW5kZXgsQz12LmluamVjdG9yKTtjb25zdCBJPWcuY3JlYXRlRW1iZWRkZWRWaWV3KGh8fHt9LEMpO3JldHVybiB0aGlzLmluc2VydChJLHkpLEl9Y3JlYXRlQ29tcG9uZW50KGcsaCx2LHksQyl7Y29uc3QgST1nJiYhZnVuY3Rpb24g''@;'; + put 'put ''cm0oZCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGR9KGcpO2xldCBqO2lmKEkpaj1oO2Vsc2V7Y29uc3QgTmU9aHx8e307aj1OZS5pbmRleCx2PU5lLmluamVjdG9yLHk9TmUucHJvamVjdGFibGVOb2RlcyxDPU5lLmVudmlyb25tZW50SW5qZWN0b3J8fE5lLm5nTW9kdWxlUmVmfWNvbnN0''@;'; + put 'put ''IHVlPUk/ZzpuZXcgRm0obXMoZykpLF9lPXZ8fHRoaXMucGFyZW50SW5qZWN0b3I7aWYoIUMmJm51bGw9PXVlLm5nTW9kdWxlKXtjb25zdCBLZT0oST9fZTp0aGlzLnBhcmVudEluamVjdG9yKS5nZXQoRTMsbnVsbCk7S2UmJihDPUtlKX1jb25zdCBCZT11ZS5jcmVhdGUoX2UseSx2b2lkIDAs''@;'; + put 'put ''Qyk7cmV0dXJuIHRoaXMuaW5zZXJ0KEJlLmhvc3RWaWV3LGopLEJlfWluc2VydChnLGgpe2NvbnN0IHY9Zy5fbFZpZXcseT12WzFdO2lmKGZ1bmN0aW9uIE1NKGQpe3JldHVybiBzZihkWzNdKX0odikpe2NvbnN0IEJlPXRoaXMuaW5kZXhPZihnKTtpZigtMSE9PUJlKXRoaXMuZGV0YWNoKEJl''@;'; + put 'put ''KTtlbHNle2NvbnN0IE5lPXZbM10sS2U9bmV3IHdpKE5lLE5lWzZdLE5lWzNdKTtLZS5kZXRhY2goS2UuaW5kZXhPZihnKSl9fWNvbnN0IEM9dGhpcy5fYWRqdXN0SW5kZXgoaCksST10aGlzLl9sQ29udGFpbmVyOyFmdW5jdGlvbiBQYihkLGcsaCx2KXtjb25zdCB5PTEwK3YsQz1oLmxlbmd0''@;'; + put 'put ''aDt2PjAmJihoW3ktMV1bNF09ZyksdjxDLTEwPyhnWzRdPWhbeV0sdWIoaCwxMCt2LGcpKTooaC5wdXNoKGcpLGdbNF09bnVsbCksZ1szXT1oO2NvbnN0IEk9Z1sxN107bnVsbCE9PUkmJmghPT1JJiZmdW5jdGlvbiBpRyhkLGcpe2NvbnN0IGg9ZFs5XTtnWzE2XSE9PWdbM11bM11bMTZdJiYo''@;'; + put 'put ''ZFsyXT0hMCksbnVsbD09PWg/ZFs5XT1bZ106aC5wdXNoKGcpfShJLGcpO2NvbnN0IGo9Z1sxOV07bnVsbCE9PWomJmouaW5zZXJ0VmlldyhkKSxnWzJdfD02NH0oeSx2LEksQyk7Y29uc3Qgaj1XYihDLEkpLHVlPXZbMTFdLF9lPUNtKHVlLElbN10pO3JldHVybiBudWxsIT09X2UmJmZ1bmN0''@;'; + put 'put ''aW9uIHdmKGQsZyxoLHYseSxDKXt2WzBdPXksdls2XT1nLGttKGQsdixoLDEseSxDKX0oeSxJWzZdLHVlLHYsX2UsaiksZy5hdHRhY2hUb1ZpZXdDb250YWluZXJSZWYoKSx1YihFaShJKSxDLGcpLGd9bW92ZShnLGgpe3JldHVybiB0aGlzLmluc2VydChnLGgpfWluZGV4T2YoZyl7Y29uc3Qg''@;'; + put 'put ''aD1Zcih0aGlzLl9sQ29udGFpbmVyKTtyZXR1cm4gbnVsbCE9PWg/aC5pbmRleE9mKGcpOi0xfXJlbW92ZShnKXtjb25zdCBoPXRoaXMuX2FkanVzdEluZGV4KGcsLTEpLHY9RmIodGhpcy5fbENvbnRhaW5lcixoKTt2JiYoX2QoRWkodGhpcy5fbENvbnRhaW5lciksaCkseEUodlsxXSx2KSl9''@;'; + put 'put ''ZGV0YWNoKGcpe2NvbnN0IGg9dGhpcy5fYWRqdXN0SW5kZXgoZywtMSksdj1GYih0aGlzLl9sQ29udGFpbmVyLGgpO3JldHVybiB2JiZudWxsIT1fZChFaSh0aGlzLl9sQ29udGFpbmVyKSxoKT9uZXcgTTYodik6bnVsbH1fYWRqdXN0SW5kZXgoZyxoPTApe3JldHVybiBudWxsPT1nP3RoaXMu''@;'; + put 'put ''bGVuZ3RoK2g6Z319O2Z1bmN0aW9uIFlyKGQpe3JldHVybiBkWzhdfWZ1bmN0aW9uIEVpKGQpe3JldHVybiBkWzhdfHwoZFs4XT1bXSl9ZnVuY3Rpb24gaGkoZCxnKXtsZXQgaDtjb25zdCB2PWdbZC5pbmRleF07aWYoc2YodikpaD12O2Vsc2V7bGV0IHk7aWYoOCZkLnR5cGUpeT1KMih2KTtl''@;'; + put 'put ''bHNle2NvbnN0IEM9Z1sxMV07eT1DLmNyZWF0ZUNvbW1lbnQoIiIpO2NvbnN0IEk9dmMoZCxnKTtONChDLENtKEMsSSkseSxmdW5jdGlvbiBHdihkLGcpe3JldHVybiBkLm5leHRTaWJsaW5nKGcpfShDLEkpLCExKX1nW2QuaW5kZXhdPWg9ZkEodixnLHksZCksUm0oZyxoKX1yZXR1cm4gbmV3''@;'; + put 'put ''IHdpKGgsZCxnKX1jbGFzcyB0MHtjb25zdHJ1Y3RvcihnKXt0aGlzLnF1ZXJ5TGlzdD1nLHRoaXMubWF0Y2hlcz1udWxsfWNsb25lKCl7cmV0dXJuIG5ldyB0MCh0aGlzLnF1ZXJ5TGlzdCl9c2V0RGlydHkoKXt0aGlzLnF1ZXJ5TGlzdC5zZXREaXJ0eSgpfX1jbGFzcyBpb3tjb25zdHJ1Y3Rv''@;'; + put 'put ''cihnPVtdKXt0aGlzLnF1ZXJpZXM9Z31jcmVhdGVFbWJlZGRlZFZpZXcoZyl7Y29uc3QgaD1nLnF1ZXJpZXM7aWYobnVsbCE9PWgpe2NvbnN0IHY9bnVsbCE9PWcuY29udGVudFF1ZXJpZXM/Zy5jb250ZW50UXVlcmllc1swXTpoLmxlbmd0aCx5PVtdO2ZvcihsZXQgQz0wO0M8djtDKyspe2Nv''@;'; + put 'put ''bnN0IEk9aC5nZXRCeUluZGV4KEMpO3kucHVzaCh0aGlzLnF1ZXJpZXNbSS5pbmRleEluRGVjbGFyYXRpb25WaWV3XS5jbG9uZSgpKX1yZXR1cm4gbmV3IGlvKHkpfXJldHVybiBudWxsfWluc2VydFZpZXcoZyl7dGhpcy5kaXJ0eVF1ZXJpZXNXaXRoTWF0Y2hlcyhnKX1kZXRhY2hWaWV3KGcp''@;'; + put 'put ''e3RoaXMuZGlydHlRdWVyaWVzV2l0aE1hdGNoZXMoZyl9ZGlydHlRdWVyaWVzV2l0aE1hdGNoZXMoZyl7Zm9yKGxldCBoPTA7aDx0aGlzLnF1ZXJpZXMubGVuZ3RoO2grKyludWxsIT09SXIoZyxoKS5tYXRjaGVzJiZ0aGlzLnF1ZXJpZXNbaF0uc2V0RGlydHkoKX19Y2xhc3Mgb2F7Y29uc3Ry''@;'; + put 'put ''dWN0b3IoZyxoLHY9bnVsbCl7dGhpcy5wcmVkaWNhdGU9Zyx0aGlzLmZsYWdzPWgsdGhpcy5yZWFkPXZ9fWNsYXNzICQwe2NvbnN0cnVjdG9yKGc9W10pe3RoaXMucXVlcmllcz1nfWVsZW1lbnRTdGFydChnLGgpe2ZvcihsZXQgdj0wO3Y8dGhpcy5xdWVyaWVzLmxlbmd0aDt2KyspdGhpcy5x''@;'; + put 'put ''dWVyaWVzW3ZdLmVsZW1lbnRTdGFydChnLGgpfWVsZW1lbnRFbmQoZyl7Zm9yKGxldCBoPTA7aDx0aGlzLnF1ZXJpZXMubGVuZ3RoO2grKyl0aGlzLnF1ZXJpZXNbaF0uZWxlbWVudEVuZChnKX1lbWJlZGRlZFRWaWV3KGcpe2xldCBoPW51bGw7Zm9yKGxldCB2PTA7djx0aGlzLmxlbmd0aDt2''@;'; + put 'put ''Kyspe2NvbnN0IHk9bnVsbCE9PWg/aC5sZW5ndGg6MCxDPXRoaXMuZ2V0QnlJbmRleCh2KS5lbWJlZGRlZFRWaWV3KGcseSk7QyYmKEMuaW5kZXhJbkRlY2xhcmF0aW9uVmlldz12LG51bGwhPT1oP2gucHVzaChDKTpoPVtDXSl9cmV0dXJuIG51bGwhPT1oP25ldyAkMChoKTpudWxsfXRlbXBs''@;'; + put 'put ''YXRlKGcsaCl7Zm9yKGxldCB2PTA7djx0aGlzLnF1ZXJpZXMubGVuZ3RoO3YrKyl0aGlzLnF1ZXJpZXNbdl0udGVtcGxhdGUoZyxoKX1nZXRCeUluZGV4KGcpe3JldHVybiB0aGlzLnF1ZXJpZXNbZ119Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLnF1ZXJpZXMubGVuZ3RofXRyYWNrKGcpe3Ro''@;'; + put 'put ''aXMucXVlcmllcy5wdXNoKGcpfX1jbGFzcyBOYXtjb25zdHJ1Y3RvcihnLGg9LTEpe3RoaXMubWV0YWRhdGE9Zyx0aGlzLm1hdGNoZXM9bnVsbCx0aGlzLmluZGV4SW5EZWNsYXJhdGlvblZpZXc9LTEsdGhpcy5jcm9zc2VzTmdUZW1wbGF0ZT0hMSx0aGlzLl9hcHBsaWVzVG9OZXh0Tm9kZT0h''@;'; + put 'put ''MCx0aGlzLl9kZWNsYXJhdGlvbk5vZGVJbmRleD1ofWVsZW1lbnRTdGFydChnLGgpe3RoaXMuaXNBcHBseWluZ1RvTm9kZShoKSYmdGhpcy5tYXRjaFROb2RlKGcsaCl9ZWxlbWVudEVuZChnKXt0aGlzLl9kZWNsYXJhdGlvbk5vZGVJbmRleD09PWcuaW5kZXgmJih0aGlzLl9hcHBsaWVzVG9O''@;'; + put 'put ''ZXh0Tm9kZT0hMSl9dGVtcGxhdGUoZyxoKXt0aGlzLmVsZW1lbnRTdGFydChnLGgpfWVtYmVkZGVkVFZpZXcoZyxoKXtyZXR1cm4gdGhpcy5pc0FwcGx5aW5nVG9Ob2RlKGcpPyh0aGlzLmNyb3NzZXNOZ1RlbXBsYXRlPSEwLHRoaXMuYWRkTWF0Y2goLWcuaW5kZXgsaCksbmV3IE5hKHRoaXMu''@;'; + put 'put ''bWV0YWRhdGEpKTpudWxsfWlzQXBwbHlpbmdUb05vZGUoZyl7aWYodGhpcy5fYXBwbGllc1RvTmV4dE5vZGUmJjEhPSgxJnRoaXMubWV0YWRhdGEuZmxhZ3MpKXtjb25zdCBoPXRoaXMuX2RlY2xhcmF0aW9uTm9kZUluZGV4O2xldCB2PWcucGFyZW50O2Zvcig7bnVsbCE9PXYmJjgmdi50eXBl''@;'; + put 'put ''JiZ2LmluZGV4IT09aDspdj12LnBhcmVudDtyZXR1cm4gaD09PShudWxsIT09dj92LmluZGV4Oi0xKX1yZXR1cm4gdGhpcy5fYXBwbGllc1RvTmV4dE5vZGV9bWF0Y2hUTm9kZShnLGgpe2NvbnN0IHY9dGhpcy5tZXRhZGF0YS5wcmVkaWNhdGU7aWYoQXJyYXkuaXNBcnJheSh2KSlmb3IobGV0''@;'; + put 'put ''IHk9MDt5PHYubGVuZ3RoO3krKyl7Y29uc3QgQz12W3ldO3RoaXMubWF0Y2hUTm9kZVdpdGhSZWFkT3B0aW9uKGcsaCxqbyhoLEMpKSx0aGlzLm1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbihnLGgsSnUoaCxnLEMsITEsITEpKX1lbHNlIHY9PT1xcj80JmgudHlwZSYmdGhpcy5tYXRjaFROb2Rl''@;'; + put 'put ''V2l0aFJlYWRPcHRpb24oZyxoLC0xKTp0aGlzLm1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbihnLGgsSnUoaCxnLHYsITEsITEpKX1tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24oZyxoLHYpe2lmKG51bGwhPT12KXtjb25zdCB5PXRoaXMubWV0YWRhdGEucmVhZDtpZihudWxsIT09eSlpZih5PT09''@;'; + put 'put ''Ym98fHk9PT1VaXx8eT09PXFyJiY0JmgudHlwZSl0aGlzLmFkZE1hdGNoKGguaW5kZXgsLTIpO2Vsc2V7Y29uc3QgQz1KdShoLGcseSwhMSwhMSk7bnVsbCE9PUMmJnRoaXMuYWRkTWF0Y2goaC5pbmRleCxDKX1lbHNlIHRoaXMuYWRkTWF0Y2goaC5pbmRleCx2KX19YWRkTWF0Y2goZyxoKXtu''@;'; + put 'put ''dWxsPT09dGhpcy5tYXRjaGVzP3RoaXMubWF0Y2hlcz1bZyxoXTp0aGlzLm1hdGNoZXMucHVzaChnLGgpfX1mdW5jdGlvbiBqbyhkLGcpe2NvbnN0IGg9ZC5sb2NhbE5hbWVzO2lmKG51bGwhPT1oKWZvcihsZXQgdj0wO3Y8aC5sZW5ndGg7dis9MilpZihoW3ZdPT09ZylyZXR1cm4gaFt2KzFd''@;'; + put 'put ''O3JldHVybiBudWxsfWZ1bmN0aW9uIGFvKGQsZyxoLHYpe3JldHVybi0xPT09aD9mdW5jdGlvbiB3YShkLGcpe3JldHVybiAxMSZkLnR5cGU/cDYoZCxnKTo0JmQudHlwZT92MChkLGcpOm51bGx9KGcsZCk6LTI9PT1oP2Z1bmN0aW9uIHgwKGQsZyxoKXtyZXR1cm4gaD09PWJvP3A2KGcsZCk6''@;'; + put 'put ''aD09PXFyP3YwKGcsZCk6aD09PVVpP2hpKGcsZCk6dm9pZCAwfShkLGcsdik6VDQoZCxkWzFdLGgsZyl9ZnVuY3Rpb24gaDAoZCxnLGgsdil7Y29uc3QgeT1nWzE5XS5xdWVyaWVzW3ZdO2lmKG51bGw9PT15Lm1hdGNoZXMpe2NvbnN0IEM9ZC5kYXRhLEk9aC5tYXRjaGVzLGo9W107Zm9yKGxl''@;'; + put 'put ''dCB1ZT0wO3VlPEkubGVuZ3RoO3VlKz0yKXtjb25zdCBfZT1JW3VlXTtqLnB1c2goX2U8MD9udWxsOmFvKGcsQ1tfZV0sSVt1ZSsxXSxoLm1ldGFkYXRhLnJlYWQpKX15Lm1hdGNoZXM9an1yZXR1cm4geS5tYXRjaGVzfWZ1bmN0aW9uIGpyKGQsZyxoLHYpe2NvbnN0IHk9ZC5xdWVyaWVzLmdl''@;'; + put 'put ''dEJ5SW5kZXgoaCksQz15Lm1hdGNoZXM7aWYobnVsbCE9PUMpe2NvbnN0IEk9aDAoZCxnLHksaCk7Zm9yKGxldCBqPTA7ajxDLmxlbmd0aDtqKz0yKXtjb25zdCB1ZT1DW2pdO2lmKHVlPjApdi5wdXNoKElbai8yXSk7ZWxzZXtjb25zdCBfZT1DW2orMV0sQmU9Z1stdWVdO2ZvcihsZXQgTmU9''@;'; + put 'put ''MTA7TmU8QmUubGVuZ3RoO05lKyspe2NvbnN0IEtlPUJlW05lXTtLZVsxN109PT1LZVszXSYmanIoS2VbMV0sS2UsX2Usdil9aWYobnVsbCE9PUJlWzldKXtjb25zdCBOZT1CZVs5XTtmb3IobGV0IEtlPTA7S2U8TmUubGVuZ3RoO0tlKyspe2NvbnN0IGR0PU5lW0tlXTtqcihkdFsxXSxkdCxf''@;'; + put 'put ''ZSx2KX19fX19cmV0dXJuIHZ9ZnVuY3Rpb24gSGkoZCl7Y29uc3QgZz1QdCgpLGg9ZmUoKSx2PXJiKCk7RG4odisxKTtjb25zdCB5PUlyKGgsdik7aWYoZC5kaXJ0eSYmS2coZyk9PT0oMj09KDImeS5tZXRhZGF0YS5mbGFncykpKXtpZihudWxsPT09eS5tYXRjaGVzKWQucmVzZXQoW10pO2Vs''@;'; + put 'put ''c2V7Y29uc3QgQz15LmNyb3NzZXNOZ1RlbXBsYXRlP2pyKGgsZyx2LFtdKTpoMChoLGcseSx2KTtkLnJlc2V0KEMsT3YpLGQubm90aWZ5T25DaGFuZ2VzKCl9cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gdm8oZCxnLGgpe2NvbnN0IHY9ZmUoKTt2LmZpcnN0Q3JlYXRlUGFzcyYmKHAyKHYs''@;'; + put 'put ''bmV3IG9hKGQsZyxoKSwtMSksMj09KDImZykmJih2LnN0YXRpY1ZpZXdRdWVyaWVzPSEwKSksTWModixQdCgpLGcpfWZ1bmN0aW9uIHhvKGQsZyxoLHYpe2NvbnN0IHk9ZmUoKTtpZih5LmZpcnN0Q3JlYXRlUGFzcyl7Y29uc3QgQz1KdCgpO3AyKHksbmV3IG9hKGcsaCx2KSxDLmluZGV4KSxm''@;'; + put 'put ''dW5jdGlvbiBycihkLGcpe2NvbnN0IGg9ZC5jb250ZW50UXVlcmllc3x8KGQuY29udGVudFF1ZXJpZXM9W10pO2chPT0oaC5sZW5ndGg/aFtoLmxlbmd0aC0xXTotMSkmJmgucHVzaChkLnF1ZXJpZXMubGVuZ3RoLTEsZyl9KHksZCksMj09KDImaCkmJih5LnN0YXRpY0NvbnRlbnRRdWVyaWVz''@;'; + put 'put ''PSEwKX1NYyh5LFB0KCksaCl9ZnVuY3Rpb24gJGkoKXtyZXR1cm4gZnVuY3Rpb24gbDIoZCxnKXtyZXR1cm4gZFsxOV0ucXVlcmllc1tnXS5xdWVyeUxpc3R9KFB0KCkscmIoKSl9ZnVuY3Rpb24gTWMoZCxnLGgpe2NvbnN0IHY9bmV3IHpyKDQ9PSg0JmgpKTtnXyhkLGcsdix2LmRlc3Ryb3kp''@;'; + put 'put ''LG51bGw9PT1nWzE5XSYmKGdbMTldPW5ldyBpbyksZ1sxOV0ucXVlcmllcy5wdXNoKG5ldyB0MCh2KSl9ZnVuY3Rpb24gcDIoZCxnLGgpe251bGw9PT1kLnF1ZXJpZXMmJihkLnF1ZXJpZXM9bmV3ICQwKSxkLnF1ZXJpZXMudHJhY2sobmV3IE5hKGcsaCkpfWZ1bmN0aW9uIElyKGQsZyl7cmV0''@;'; + put 'put ''dXJuIGQucXVlcmllcy5nZXRCeUluZGV4KGcpfWZ1bmN0aW9uIFpyKGQsZyl7cmV0dXJuIHYwKGQsZyl9ZnVuY3Rpb24gbUMoLi4uZCl7fWNvbnN0IHZDPW5ldyB6ZSgiQXBwbGljYXRpb24gSW5pdGlhbGl6ZXIiKTtsZXQgZFQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmFw''@;'; + put 'put ''cEluaXRzPWgsdGhpcy5yZXNvbHZlPW1DLHRoaXMucmVqZWN0PW1DLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5kb25lPSExLHRoaXMuZG9uZVByb21pc2U9bmV3IFByb21pc2UoKHYseSk9Pnt0aGlzLnJlc29sdmU9dix0aGlzLnJlamVjdD15fSl9cnVuSW5pdGlhbGl6ZXJzKCl7aWYodGhp''@;'; + put 'put ''cy5pbml0aWFsaXplZClyZXR1cm47Y29uc3QgaD1bXSx2PSgpPT57dGhpcy5kb25lPSEwLHRoaXMucmVzb2x2ZSgpfTtpZih0aGlzLmFwcEluaXRzKWZvcihsZXQgeT0wO3k8dGhpcy5hcHBJbml0cy5sZW5ndGg7eSsrKXtjb25zdCBDPXRoaXMuYXBwSW5pdHNbeV0oKTtpZihWbShDKSloLnB1''@;'; + put 'put ''c2goQyk7ZWxzZSBpZihQXyhDKSl7Y29uc3QgST1uZXcgUHJvbWlzZSgoaix1ZSk9PntDLnN1YnNjcmliZSh7Y29tcGxldGU6aixlcnJvcjp1ZX0pfSk7aC5wdXNoKEkpfX1Qcm9taXNlLmFsbChoKS50aGVuKCgpPT57digpfSkuY2F0Y2goeT0+e3RoaXMucmVqZWN0KHkpfSksMD09PWgubGVu''@;'; + put 'put ''Z3RoJiZ2KCksdGhpcy5pbml0aWFsaXplZD0hMH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2kodkMsOCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO2NvbnN0''@;'; + put 'put ''IEFDPW5ldyB6ZSgiQXBwSWQiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIHBUKCl7cmV0dXJuYCR7Z1QoKX0ke2dUKCl9JHtnVCgpfWB9fSk7ZnVuY3Rpb24gZ1QoKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSg5NytNYXRoLmZsb29yKDI1Kk1hdGgucmFuZG9tKCkp''@;'; + put 'put ''KX1jb25zdCBWUD1uZXcgemUoIlBsYXRmb3JtIEluaXRpYWxpemVyIiksRDI9bmV3IHplKCJQbGF0Zm9ybSBJRCIse3Byb3ZpZGVkSW46InBsYXRmb3JtIixmYWN0b3J5OigpPT4idW5rbm93biJ9KSxGNj1uZXcgemUoImFwcEJvb3RzdHJhcExpc3RlbmVyIikseEc9bmV3IHplKCJBbmltYXRp''@;'; + put 'put ''b25Nb2R1bGVUeXBlIik7bGV0IG5yZT0oKCk9PntjbGFzcyBke2xvZyhoKXtjb25zb2xlLmxvZyhoKX13YXJuKGgpe2NvbnNvbGUud2FybihoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5''@;'; + put 'put ''OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLGR9KSgpO2NvbnN0IEdkPW5ldyB6ZSgiTG9jYWxlSWQiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5oMihHZCxqMC5PcHRpb25hbHxqMC5Ta2lwU2VsZil8fGZ1bmN0aW9uIHJyZSgpe3JldHVybiJ1bmRlZmluZWQi''@;'; + put 'put ''IT10eXBlb2YgJGxvY2FsaXplJiYkbG9jYWxpemUubG9jYWxlfHxTNX0oKX0pO2NsYXNzIGlyZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMubmdNb2R1bGVGYWN0b3J5PWcsdGhpcy5jb21wb25lbnRGYWN0b3JpZXM9aH19bGV0IG1UPSgoKT0+e2NsYXNzIGR7Y29tcGlsZU1vZHVsZVN5bmMoaCl7''@;'; + put 'put ''cmV0dXJuIG5ldyBlNyhoKX1jb21waWxlTW9kdWxlQXN5bmMoaCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmNvbXBpbGVNb2R1bGVTeW5jKGgpKX1jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoaCl7Y29uc3Qgdj10aGlzLmNvbXBpbGVNb2R1bGVTeW5jKGgpLEM9eWYo''@;'; + put 'put ''X3MoaCkuZGVjbGFyYXRpb25zKS5yZWR1Y2UoKEksaik9Pntjb25zdCB1ZT1tcyhqKTtyZXR1cm4gdWUmJkkucHVzaChuZXcgRm0odWUpKSxJfSxbXSk7cmV0dXJuIG5ldyBpcmUodixDKX1jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c0FzeW5jKGgpe3JldHVybiBQcm9taXNlLnJlc29s''@;'; + put 'put ''dmUodGhpcy5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoaCkpfWNsZWFyQ2FjaGUoKXt9Y2xlYXJDYWNoZUZvcihoKXt9Z2V0TW9kdWxlSWQoaCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tl''@;'; + put 'put ''bjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTtjb25zdCB6UD0oKCk9PlByb21pc2UucmVzb2x2ZSgwKSkoKTtmdW5jdGlvbiB2VChkKXsidW5kZWZpbmVkIj09dHlwZW9mIFpvbmU/elAudGhlbigoKT0+e2QmJmQuYXBwbHkobnVsbCxudWxsKX0pOlpv''@;'; + put 'put ''bmUuY3VycmVudC5zY2hlZHVsZU1pY3JvVGFzaygic2NoZWR1bGVNaWNyb3Rhc2siLGQpfWNsYXNzIF9se2NvbnN0cnVjdG9yKHtlbmFibGVMb25nU3RhY2tUcmFjZTpnPSExLHNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb246aD0hMSxzaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURl''@;'; + put 'put ''dGVjdGlvbjp2PSExfSl7aWYodGhpcy5oYXNQZW5kaW5nTWFjcm90YXNrcz0hMSx0aGlzLmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSExLHRoaXMuaXNTdGFibGU9ITAsdGhpcy5vblVuc3RhYmxlPW5ldyBhcighMSksdGhpcy5vbk1pY3JvdGFza0VtcHR5PW5ldyBhcighMSksdGhpcy5vblN0YWJs''@;'; + put 'put ''ZT1uZXcgYXIoITEpLHRoaXMub25FcnJvcj1uZXcgYXIoITEpLCJ1bmRlZmluZWQiPT10eXBlb2YgWm9uZSl0aHJvdyBuZXcgZW4oOTA4LCExKTtab25lLmFzc2VydFpvbmVQYXRjaGVkKCk7Y29uc3QgeT10aGlzO2lmKHkuX25lc3Rpbmc9MCx5Ll9vdXRlcj15Ll9pbm5lcj1ab25lLmN1cnJl''@;'; + put 'put ''bnQsWm9uZS5Bc3luY1N0YWNrVGFnZ2luZ1pvbmVTcGVjKXtjb25zdCBDPVpvbmUuQXN5bmNTdGFja1RhZ2dpbmdab25lU3BlYzt5Ll9pbm5lcj15Ll9pbm5lci5mb3JrKG5ldyBDKCJBbmd1bGFyIikpfVpvbmUuVGFza1RyYWNraW5nWm9uZVNwZWMmJih5Ll9pbm5lcj15Ll9pbm5lci5mb3Jr''@;'; + put 'put ''KG5ldyBab25lLlRhc2tUcmFja2luZ1pvbmVTcGVjKSksZyYmWm9uZS5sb25nU3RhY2tUcmFjZVpvbmVTcGVjJiYoeS5faW5uZXI9eS5faW5uZXIuZm9yayhab25lLmxvbmdTdGFja1RyYWNlWm9uZVNwZWMpKSx5LnNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb249IXYmJmgseS5z''@;'; + put 'put ''aG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbj12LHkubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkPS0xLHkubmF0aXZlUmVxdWVzdEFuaW1hdGlvbkZyYW1lPWZ1bmN0aW9uIExHKCl7bGV0IGQ9UGwucmVxdWVzdEFuaW1hdGlvbkZyYW1lLGc9UGwuY2FuY2VsQW5pbWF0aW9uRnJh''@;'; + put 'put ''bWU7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBab25lJiZkJiZnKXtjb25zdCBoPWRbWm9uZS5fX3N5bWJvbF9fKCJPcmlnaW5hbERlbGVnYXRlIildO2gmJihkPWgpO2NvbnN0IHY9Z1tab25lLl9fc3ltYm9sX18oIk9yaWdpbmFsRGVsZWdhdGUiKV07diYmKGc9dil9cmV0dXJue25hdGl2ZVJl''@;'; + put 'put ''cXVlc3RBbmltYXRpb25GcmFtZTpkLG5hdGl2ZUNhbmNlbEFuaW1hdGlvbkZyYW1lOmd9fSgpLm5hdGl2ZVJlcXVlc3RBbmltYXRpb25GcmFtZSxmdW5jdGlvbiBSRyhkKXtjb25zdCBnPSgpPT57IWZ1bmN0aW9uIE9HKGQpe2QuaXNDaGVja1N0YWJsZVJ1bm5pbmd8fC0xIT09ZC5sYXN0UmVx''@;'; + put 'put ''dWVzdEFuaW1hdGlvbkZyYW1lSWR8fChkLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD1kLm5hdGl2ZVJlcXVlc3RBbmltYXRpb25GcmFtZS5jYWxsKFBsLCgpPT57ZC5mYWtlVG9wRXZlbnRUYXNrfHwoZC5mYWtlVG9wRXZlbnRUYXNrPVpvbmUucm9vdC5zY2hlZHVsZUV2ZW50VGFzaygi''@;'; + put 'put ''ZmFrZVRvcEV2ZW50VGFzayIsKCk9PntkLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD0tMSxXUChkKSxkLmlzQ2hlY2tTdGFibGVSdW5uaW5nPSEwLEdQKGQpLGQuaXNDaGVja1N0YWJsZVJ1bm5pbmc9ITF9LHZvaWQgMCwoKT0+e30sKCk9Pnt9KSksZC5mYWtlVG9wRXZlbnRUYXNrLmlu''@;'; + put 'put ''dm9rZSgpfSksV1AoZCkpfShkKX07ZC5faW5uZXI9ZC5faW5uZXIuZm9yayh7bmFtZToiYW5ndWxhciIscHJvcGVydGllczp7aXNBbmd1bGFyWm9uZTohMH0sb25JbnZva2VUYXNrOihoLHYseSxDLEksaik9Pnt0cnl7cmV0dXJuIEFUKGQpLGguaW52b2tlVGFzayh5LEMsSSxqKX1maW5hbGx5''@;'; + put 'put ''eyhkLnNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb24mJiJldmVudFRhc2siPT09Qy50eXBlfHxkLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uKSYmZygpLHdDKGQpfX0sb25JbnZva2U6KGgsdix5LEMsSSxqLHVlKT0+e3RyeXtyZXR1cm4gQVQoZCksaC5pbnZva2Uo''@;'; + put 'put ''eSxDLEksaix1ZSl9ZmluYWxseXtkLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uJiZnKCksd0MoZCl9fSxvbkhhc1Rhc2s6KGgsdix5LEMpPT57aC5oYXNUYXNrKHksQyksdj09PXkmJigibWljcm9UYXNrIj09Qy5jaGFuZ2U/KGQuX2hhc1BlbmRpbmdNaWNyb3Rhc2tzPUMubWlj''@;'; + put 'put ''cm9UYXNrLFdQKGQpLEdQKGQpKToibWFjcm9UYXNrIj09Qy5jaGFuZ2UmJihkLmhhc1BlbmRpbmdNYWNyb3Rhc2tzPUMubWFjcm9UYXNrKSl9LG9uSGFuZGxlRXJyb3I6KGgsdix5LEMpPT4oaC5oYW5kbGVFcnJvcih5LEMpLGQucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PmQub25FcnJvci5lbWl0''@;'; + put 'put ''KEMpKSwhMSl9KX0oeSl9c3RhdGljIGlzSW5Bbmd1bGFyWm9uZSgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgWm9uZSYmITA9PT1ab25lLmN1cnJlbnQuZ2V0KCJpc0FuZ3VsYXJab25lIil9c3RhdGljIGFzc2VydEluQW5ndWxhclpvbmUoKXtpZighX2wuaXNJbkFuZ3VsYXJab25lKCkp''@;'; + put 'put ''dGhyb3cgbmV3IGVuKDkwOSwhMSl9c3RhdGljIGFzc2VydE5vdEluQW5ndWxhclpvbmUoKXtpZihfbC5pc0luQW5ndWxhclpvbmUoKSl0aHJvdyBuZXcgZW4oOTA5LCExKX1ydW4oZyxoLHYpe3JldHVybiB0aGlzLl9pbm5lci5ydW4oZyxoLHYpfXJ1blRhc2soZyxoLHYseSl7Y29uc3QgQz10''@;'; + put 'put ''aGlzLl9pbm5lcixJPUMuc2NoZWR1bGVFdmVudFRhc2soIk5nWm9uZUV2ZW50OiAiK3ksZyxscmUsbUMsbUMpO3RyeXtyZXR1cm4gQy5ydW5UYXNrKEksaCx2KX1maW5hbGx5e0MuY2FuY2VsVGFzayhJKX19cnVuR3VhcmRlZChnLGgsdil7cmV0dXJuIHRoaXMuX2lubmVyLnJ1bkd1YXJkZWQo''@;'; + put 'put ''ZyxoLHYpfXJ1bk91dHNpZGVBbmd1bGFyKGcpe3JldHVybiB0aGlzLl9vdXRlci5ydW4oZyl9fWNvbnN0IGxyZT17fTtmdW5jdGlvbiBHUChkKXtpZigwPT1kLl9uZXN0aW5nJiYhZC5oYXNQZW5kaW5nTWljcm90YXNrcyYmIWQuaXNTdGFibGUpdHJ5e2QuX25lc3RpbmcrKyxkLm9uTWljcm90''@;'; + put 'put ''YXNrRW1wdHkuZW1pdChudWxsKX1maW5hbGx5e2lmKGQuX25lc3RpbmctLSwhZC5oYXNQZW5kaW5nTWljcm90YXNrcyl0cnl7ZC5ydW5PdXRzaWRlQW5ndWxhcigoKT0+ZC5vblN0YWJsZS5lbWl0KG51bGwpKX1maW5hbGx5e2QuaXNTdGFibGU9ITB9fX1mdW5jdGlvbiBXUChkKXtkLmhhc1Bl''@;'; + put 'put ''bmRpbmdNaWNyb3Rhc2tzPSEhKGQuX2hhc1BlbmRpbmdNaWNyb3Rhc2tzfHwoZC5zaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9ufHxkLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uKSYmLTEhPT1kLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCl9ZnVuY3Rpb24g''@;'; + put 'put ''QVQoZCl7ZC5fbmVzdGluZysrLGQuaXNTdGFibGUmJihkLmlzU3RhYmxlPSExLGQub25VbnN0YWJsZS5lbWl0KG51bGwpKX1mdW5jdGlvbiB3QyhkKXtkLl9uZXN0aW5nLS0sR1AoZCl9Y2xhc3MgQkd7Y29uc3RydWN0b3IoKXt0aGlzLmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSExLHRoaXMuaGFz''@;'; + put 'put ''UGVuZGluZ01hY3JvdGFza3M9ITEsdGhpcy5pc1N0YWJsZT0hMCx0aGlzLm9uVW5zdGFibGU9bmV3IGFyLHRoaXMub25NaWNyb3Rhc2tFbXB0eT1uZXcgYXIsdGhpcy5vblN0YWJsZT1uZXcgYXIsdGhpcy5vbkVycm9yPW5ldyBhcn1ydW4oZyxoLHYpe3JldHVybiBnLmFwcGx5KGgsdil9cnVu''@;'; + put 'put ''R3VhcmRlZChnLGgsdil7cmV0dXJuIGcuYXBwbHkoaCx2KX1ydW5PdXRzaWRlQW5ndWxhcihnKXtyZXR1cm4gZygpfXJ1blRhc2soZyxoLHYseSl7cmV0dXJuIGcuYXBwbHkoaCx2KX19Y29uc3QgeVQ9bmV3IHplKCIiKSx6aD1uZXcgemUoIiIpO2xldCBiQyx3VD0oKCk9PntjbGFzcyBke2Nv''@;'; + put 'put ''bnN0cnVjdG9yKGgsdix5KXt0aGlzLl9uZ1pvbmU9aCx0aGlzLnJlZ2lzdHJ5PXYsdGhpcy5fcGVuZGluZ0NvdW50PTAsdGhpcy5faXNab25lU3RhYmxlPSEwLHRoaXMuX2RpZFdvcms9ITEsdGhpcy5fY2FsbGJhY2tzPVtdLHRoaXMudGFza1RyYWNraW5nWm9uZT1udWxsLGJDfHwoZnVuY3Rp''@;'; + put 'put ''b24gc3JlKGQpe2JDPWR9KHkpLHkuYWRkVG9XaW5kb3codikpLHRoaXMuX3dhdGNoQW5ndWxhckV2ZW50cygpLGgucnVuKCgpPT57dGhpcy50YXNrVHJhY2tpbmdab25lPSJ1bmRlZmluZWQiPT10eXBlb2YgWm9uZT9udWxsOlpvbmUuY3VycmVudC5nZXQoIlRhc2tUcmFja2luZ1pvbmUiKX0p''@;'; + put 'put ''fV93YXRjaEFuZ3VsYXJFdmVudHMoKXt0aGlzLl9uZ1pvbmUub25VbnN0YWJsZS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl9kaWRXb3JrPSEwLHRoaXMuX2lzWm9uZVN0YWJsZT0hMX19KSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLl9uZ1pvbmUub25TdGFi''@;'; + put 'put ''bGUuc3Vic2NyaWJlKHtuZXh0OigpPT57X2wuYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpLHZUKCgpPT57dGhpcy5faXNab25lU3RhYmxlPSEwLHRoaXMuX3J1bkNhbGxiYWNrc0lmUmVhZHkoKX0pfX0pfSl9aW5jcmVhc2VQZW5kaW5nUmVxdWVzdENvdW50KCl7cmV0dXJuIHRoaXMuX3BlbmRp''@;'; + put 'put ''bmdDb3VudCs9MSx0aGlzLl9kaWRXb3JrPSEwLHRoaXMuX3BlbmRpbmdDb3VudH1kZWNyZWFzZVBlbmRpbmdSZXF1ZXN0Q291bnQoKXtpZih0aGlzLl9wZW5kaW5nQ291bnQtPTEsdGhpcy5fcGVuZGluZ0NvdW50PDApdGhyb3cgbmV3IEVycm9yKCJwZW5kaW5nIGFzeW5jIHJlcXVlc3RzIGJl''@;'; + put 'put ''bG93IHplcm8iKTtyZXR1cm4gdGhpcy5fcnVuQ2FsbGJhY2tzSWZSZWFkeSgpLHRoaXMuX3BlbmRpbmdDb3VudH1pc1N0YWJsZSgpe3JldHVybiB0aGlzLl9pc1pvbmVTdGFibGUmJjA9PT10aGlzLl9wZW5kaW5nQ291bnQmJiF0aGlzLl9uZ1pvbmUuaGFzUGVuZGluZ01hY3JvdGFza3N9X3J1''@;'; + put 'put ''bkNhbGxiYWNrc0lmUmVhZHkoKXtpZih0aGlzLmlzU3RhYmxlKCkpdlQoKCk9Pntmb3IoOzAhPT10aGlzLl9jYWxsYmFja3MubGVuZ3RoOyl7bGV0IGg9dGhpcy5fY2FsbGJhY2tzLnBvcCgpO2NsZWFyVGltZW91dChoLnRpbWVvdXRJZCksaC5kb25lQ2IodGhpcy5fZGlkV29yayl9dGhpcy5f''@;'; + put 'put ''ZGlkV29yaz0hMX0pO2Vsc2V7bGV0IGg9dGhpcy5nZXRQZW5kaW5nVGFza3MoKTt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzLmZpbHRlcih2PT4hdi51cGRhdGVDYnx8IXYudXBkYXRlQ2IoaCl8fChjbGVhclRpbWVvdXQodi50aW1lb3V0SWQpLCExKSksdGhpcy5fZGlkV29yaz0h''@;'; + put 'put ''MH19Z2V0UGVuZGluZ1Rhc2tzKCl7cmV0dXJuIHRoaXMudGFza1RyYWNraW5nWm9uZT90aGlzLnRhc2tUcmFja2luZ1pvbmUubWFjcm9UYXNrcy5tYXAoaD0+KHtzb3VyY2U6aC5zb3VyY2UsY3JlYXRpb25Mb2NhdGlvbjpoLmNyZWF0aW9uTG9jYXRpb24sZGF0YTpoLmRhdGF9KSk6W119YWRk''@;'; + put 'put ''Q2FsbGJhY2soaCx2LHkpe2xldCBDPS0xO3YmJnY+MCYmKEM9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3MuZmlsdGVyKEk9PkkudGltZW91dElkIT09QyksaCh0aGlzLl9kaWRXb3JrLHRoaXMuZ2V0UGVuZGluZ1Rhc2tzKCkpfSx2KSksdGhpcy5fY2Fs''@;'; + put 'put ''bGJhY2tzLnB1c2goe2RvbmVDYjpoLHRpbWVvdXRJZDpDLHVwZGF0ZUNiOnl9KX13aGVuU3RhYmxlKGgsdix5KXtpZih5JiYhdGhpcy50YXNrVHJhY2tpbmdab25lKXRocm93IG5ldyBFcnJvcignVGFzayB0cmFja2luZyB6b25lIGlzIHJlcXVpcmVkIHdoZW4gcGFzc2luZyBhbiB1cGRhdGUg''@;'; + put 'put ''Y2FsbGJhY2sgdG8gd2hlblN0YWJsZSgpLiBJcyAiem9uZS5qcy9wbHVnaW5zL3Rhc2stdHJhY2tpbmciIGxvYWRlZD8nKTt0aGlzLmFkZENhbGxiYWNrKGgsdix5KSx0aGlzLl9ydW5DYWxsYmFja3NJZlJlYWR5KCl9Z2V0UGVuZGluZ1JlcXVlc3RDb3VudCgpe3JldHVybiB0aGlzLl9wZW5k''@;'; + put 'put ''aW5nQ291bnR9cmVnaXN0ZXJBcHBsaWNhdGlvbihoKXt0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyQXBwbGljYXRpb24oaCx0aGlzKX11bnJlZ2lzdGVyQXBwbGljYXRpb24oaCl7dGhpcy5yZWdpc3RyeS51bnJlZ2lzdGVyQXBwbGljYXRpb24oaCl9ZmluZFByb3ZpZGVycyhoLHYseSl7cmV0dXJu''@;'; + put 'put ''W119fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKF9sKSxDaShZUCksQ2koemgpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxZUD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5f''@;'; + put 'put ''YXBwbGljYXRpb25zPW5ldyBNYXB9cmVnaXN0ZXJBcHBsaWNhdGlvbihoLHYpe3RoaXMuX2FwcGxpY2F0aW9ucy5zZXQoaCx2KX11bnJlZ2lzdGVyQXBwbGljYXRpb24oaCl7dGhpcy5fYXBwbGljYXRpb25zLmRlbGV0ZShoKX11bnJlZ2lzdGVyQWxsQXBwbGljYXRpb25zKCl7dGhpcy5fYXBw''@;'; + put 'put ''bGljYXRpb25zLmNsZWFyKCl9Z2V0VGVzdGFiaWxpdHkoaCl7cmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9ucy5nZXQoaCl8fG51bGx9Z2V0QWxsVGVzdGFiaWxpdGllcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2FwcGxpY2F0aW9ucy52YWx1ZXMoKSl9Z2V0QWxsUm9vdEVsZW1lbnRzKCl7''@;'; + put 'put ''cmV0dXJuIEFycmF5LmZyb20odGhpcy5fYXBwbGljYXRpb25zLmtleXMoKSl9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKGgsdj0hMCl7dmFyIHk7cmV0dXJuIG51bGwhPT0oeT1udWxsPT1iQz92b2lkIDA6YkMuZmluZFRlc3RhYmlsaXR5SW5UcmVlKHRoaXMsaCx2KSkmJnZvaWQgMCE9PXk/eTpu''@;'; + put 'put ''dWxsfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicGxhdGZvcm0ifSksZH0pKCkscTQ9bnVsbDtjb25zdCBVUD1uZXcgemUoIkFsbG93TXVsdGlw''@;'; + put 'put ''bGVUb2tlbiIpLGJUPW5ldyB6ZSgiUGxhdGZvcm1EZXN0cm95TGlzdGVuZXJzIik7Y2xhc3MgRkd7Y29uc3RydWN0b3IoZyxoKXt0aGlzLm5hbWU9Zyx0aGlzLnRva2VuPWh9fWZ1bmN0aW9uIEpQKGQsZyxoPVtdKXtjb25zdCB2PWBQbGF0Zm9ybTogJHtnfWAseT1uZXcgemUodik7cmV0dXJu''@;'; + put 'put ''KEM9W10pPT57bGV0IEk9S1AoKTtpZighSXx8SS5pbmplY3Rvci5nZXQoVVAsITEpKXtjb25zdCBqPVsuLi5oLC4uLkMse3Byb3ZpZGU6eSx1c2VWYWx1ZTohMH1dO2Q/ZChqKTpmdW5jdGlvbiB1cmUoZCl7aWYocTQmJiFxNC5nZXQoVVAsITEpKXRocm93IG5ldyBlbig0MDAsITEpO3E0PWQ7''@;'; + put 'put ''Y29uc3QgZz1kLmdldChPcik7KGZ1bmN0aW9uIEhHKGQpe2NvbnN0IGc9ZC5nZXQoVlAsbnVsbCk7ZyYmZy5mb3JFYWNoKGg9PmgoKSl9KShkKX0oZnVuY3Rpb24gTkcoZD1bXSxnKXtyZXR1cm4ga3MuY3JlYXRlKHtuYW1lOmcscHJvdmlkZXJzOlt7cHJvdmlkZTp2bSx1c2VWYWx1ZToicGxh''@;'; + put 'put ''dGZvcm0ifSx7cHJvdmlkZTpiVCx1c2VWYWx1ZTpuZXcgU2V0KFsoKT0+cTQ9bnVsbF0pfSwuLi5kXX0pfShqLHYpKX1yZXR1cm4gZnVuY3Rpb24gWFAoZCl7Y29uc3QgZz1LUCgpO2lmKCFnKXRocm93IG5ldyBlbig0MDEsITEpO3JldHVybiBnfSgpfX1mdW5jdGlvbiBLUCgpe3ZhciBkO3Jl''@;'; + put 'put ''dHVybiBudWxsIT09KGQ9bnVsbD09cTQ/dm9pZCAwOnE0LmdldChPcikpJiZ2b2lkIDAhPT1kP2Q6bnVsbH1sZXQgT3I9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLl9pbmplY3Rvcj1oLHRoaXMuX21vZHVsZXM9W10sdGhpcy5fZGVzdHJveUxpc3RlbmVycz1bXSx0aGlzLl9k''@;'; + put 'put ''ZXN0cm95ZWQ9ITF9Ym9vdHN0cmFwTW9kdWxlRmFjdG9yeShoLHYpe2NvbnN0IHk9ZnVuY3Rpb24gJFAoZCxnKXtsZXQgaDtyZXR1cm4gaD0ibm9vcCI9PT1kP25ldyBCRzooInpvbmUuanMiPT09ZD92b2lkIDA6ZCl8fG5ldyBfbChnKSxofShudWxsPT12P3ZvaWQgMDp2Lm5nWm9uZSxmdW5j''@;'; + put 'put ''dGlvbiBqcyhkKXtyZXR1cm57ZW5hYmxlTG9uZ1N0YWNrVHJhY2U6ITEsc2hvdWxkQ29hbGVzY2VFdmVudENoYW5nZURldGVjdGlvbjohKCFkfHwhZC5uZ1pvbmVFdmVudENvYWxlc2NpbmcpfHwhMSxzaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbjohKCFkfHwhZC5uZ1pvbmVSdW5D''@;'; + put 'put ''b2FsZXNjaW5nKXx8ITF9fSh2KSksQz1be3Byb3ZpZGU6X2wsdXNlVmFsdWU6eX1dO3JldHVybiB5LnJ1bigoKT0+e2NvbnN0IEk9a3MuY3JlYXRlKHtwcm92aWRlcnM6QyxwYXJlbnQ6dGhpcy5pbmplY3RvcixuYW1lOmgubW9kdWxlVHlwZS5uYW1lfSksaj1oLmNyZWF0ZShJKSx1ZT1qLmlu''@;'; + put 'put ''amVjdG9yLmdldCh2NixudWxsKTtpZighdWUpdGhyb3cgbmV3IGVuKDQwMiwhMSk7cmV0dXJuIHkucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pntjb25zdCBfZT15Lm9uRXJyb3Iuc3Vic2NyaWJlKHtuZXh0OkJlPT57dWUuaGFuZGxlRXJyb3IoQmUpfX0pO2oub25EZXN0cm95KCgpPT57X1QodGhp''@;'; + put 'put ''cy5fbW9kdWxlcyxqKSxfZS51bnN1YnNjcmliZSgpfSl9KSxmdW5jdGlvbiBuaChkLGcsaCl7dHJ5e2NvbnN0IHY9aCgpO3JldHVybiBWbSh2KT92LmNhdGNoKHk9Pnt0aHJvdyBnLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT5kLmhhbmRsZUVycm9yKHkpKSx5fSk6dn1jYXRjaCh2KXt0aHJvdyBn''@;'; + put 'put ''LnJ1bk91dHNpZGVBbmd1bGFyKCgpPT5kLmhhbmRsZUVycm9yKHYpKSx2fX0odWUseSwoKT0+e2NvbnN0IF9lPWouaW5qZWN0b3IuZ2V0KGRUKTtyZXR1cm4gX2UucnVuSW5pdGlhbGl6ZXJzKCksX2UuZG9uZVByb21pc2UudGhlbigoKT0+KGZ1bmN0aW9uIHF4KGQpe2xsKGQsIkV4cGVjdGVk''@;'; + put 'put ''IGxvY2FsZUlkIHRvIGJlIGRlZmluZWQiKSwic3RyaW5nIj09dHlwZW9mIGQmJihNNT1kLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXy9nLCItIikpfShqLmluamVjdG9yLmdldChHZCxTNSl8fFM1KSx0aGlzLl9tb2R1bGVEb0Jvb3RzdHJhcChqKSxqKSl9KX0pfWJvb3RzdHJhcE1vZHVsZSho''@;'; + put 'put ''LHY9W10pe2NvbnN0IHk9RzMoe30sdik7cmV0dXJuIGZ1bmN0aW9uIFBHKGQsZyxoKXtjb25zdCB2PW5ldyBlNyhoKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHYpfSgwLDAsaCkudGhlbihDPT50aGlzLmJvb3RzdHJhcE1vZHVsZUZhY3RvcnkoQyx5KSl9X21vZHVsZURvQm9vdHN0cmFwKGgp''@;'; + put 'put ''e2NvbnN0IHY9aC5pbmplY3Rvci5nZXQoX0MpO2lmKGguX2Jvb3RzdHJhcENvbXBvbmVudHMubGVuZ3RoPjApaC5fYm9vdHN0cmFwQ29tcG9uZW50cy5mb3JFYWNoKHk9PnYuYm9vdHN0cmFwKHkpKTtlbHNle2lmKCFoLmluc3RhbmNlLm5nRG9Cb290c3RyYXApdGhyb3cgbmV3IGVuKDQwMywh''@;'; + put 'put ''MSk7aC5pbnN0YW5jZS5uZ0RvQm9vdHN0cmFwKHYpfXRoaXMuX21vZHVsZXMucHVzaChoKX1vbkRlc3Ryb3koaCl7dGhpcy5fZGVzdHJveUxpc3RlbmVycy5wdXNoKGgpfWdldCBpbmplY3Rvcigpe3JldHVybiB0aGlzLl9pbmplY3Rvcn1kZXN0cm95KCl7aWYodGhpcy5fZGVzdHJveWVkKXRo''@;'; + put 'put ''cm93IG5ldyBlbig0MDQsITEpO3RoaXMuX21vZHVsZXMuc2xpY2UoKS5mb3JFYWNoKHY9PnYuZGVzdHJveSgpKSx0aGlzLl9kZXN0cm95TGlzdGVuZXJzLmZvckVhY2godj0+digpKTtjb25zdCBoPXRoaXMuX2luamVjdG9yLmdldChiVCxudWxsKTtoJiYoaC5mb3JFYWNoKHY9PnYoKSksaC5j''@;'; + put 'put ''bGVhcigpKSx0aGlzLl9kZXN0cm95ZWQ9ITB9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGtzKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1''@;'; + put 'put ''ZmFjLHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLGR9KSgpO2Z1bmN0aW9uIEczKGQsZyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZyk/Zy5yZWR1Y2UoRzMsZCk6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLGcpfWxldCBfQz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5''@;'; + put 'put ''KXt0aGlzLl96b25lPWgsdGhpcy5faW5qZWN0b3I9dix0aGlzLl9leGNlcHRpb25IYW5kbGVyPXksdGhpcy5fYm9vdHN0cmFwTGlzdGVuZXJzPVtdLHRoaXMuX3ZpZXdzPVtdLHRoaXMuX3J1bm5pbmdUaWNrPSExLHRoaXMuX3N0YWJsZT0hMCx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZGVz''@;'; + put 'put ''dHJveUxpc3RlbmVycz1bXSx0aGlzLmNvbXBvbmVudFR5cGVzPVtdLHRoaXMuY29tcG9uZW50cz1bXSx0aGlzLl9vbk1pY3JvdGFza0VtcHR5U3Vic2NyaXB0aW9uPXRoaXMuX3pvbmUub25NaWNyb3Rhc2tFbXB0eS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl96b25lLnJ1bigoKT0+e3Ro''@;'; + put 'put ''aXMudGljaygpfSl9fSk7Y29uc3QgQz1uZXcgRihqPT57dGhpcy5fc3RhYmxlPXRoaXMuX3pvbmUuaXNTdGFibGUmJiF0aGlzLl96b25lLmhhc1BlbmRpbmdNYWNyb3Rhc2tzJiYhdGhpcy5fem9uZS5oYXNQZW5kaW5nTWljcm90YXNrcyx0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgp''@;'; + put 'put ''PT57ai5uZXh0KHRoaXMuX3N0YWJsZSksai5jb21wbGV0ZSgpfSl9KSxJPW5ldyBGKGo9PntsZXQgdWU7dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3VlPXRoaXMuX3pvbmUub25TdGFibGUuc3Vic2NyaWJlKCgpPT57X2wuYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpLHZUKCgp''@;'; + put 'put ''PT57IXRoaXMuX3N0YWJsZSYmIXRoaXMuX3pvbmUuaGFzUGVuZGluZ01hY3JvdGFza3MmJiF0aGlzLl96b25lLmhhc1BlbmRpbmdNaWNyb3Rhc2tzJiYodGhpcy5fc3RhYmxlPSEwLGoubmV4dCghMCkpfSl9KX0pO2NvbnN0IF9lPXRoaXMuX3pvbmUub25VbnN0YWJsZS5zdWJzY3JpYmUoKCk9''@;'; + put 'put ''PntfbC5hc3NlcnRJbkFuZ3VsYXJab25lKCksdGhpcy5fc3RhYmxlJiYodGhpcy5fc3RhYmxlPSExLHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntqLm5leHQoITEpfSkpfSk7cmV0dXJuKCk9Pnt1ZS51bnN1YnNjcmliZSgpLF9lLnVuc3Vic2NyaWJlKCl9fSk7dGhpcy5pc1N0''@;'; + put 'put ''YWJsZT1ucihDLEkucGlwZShmdW5jdGlvbiBUcigpe3JldHVybiBkPT5BbigpKGZ1bmN0aW9uIHduKGQsZyl7cmV0dXJuIGZ1bmN0aW9uKHYpe2xldCB5O2lmKHk9ImZ1bmN0aW9uIj09dHlwZW9mIGQ/ZDpmdW5jdGlvbigpe3JldHVybiBkfSwiZnVuY3Rpb24iPT10eXBlb2YgZylyZXR1cm4g''@;'; + put 'put ''di5saWZ0KG5ldyB0bih5LGcpKTtjb25zdCBDPU9iamVjdC5jcmVhdGUodixLbik7cmV0dXJuIEMuc291cmNlPXYsQy5zdWJqZWN0RmFjdG9yeT15LEN9fSh6bikoZCkpfSgpKSl9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9Z2V0IGluamVjdG9yKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2luamVjdG9yfWJvb3RzdHJhcChoLHYpe2NvbnN0IHk9aCBpbnN0YW5jZW9mIGNFO2lmKCF0aGlzLl9pbmplY3Rvci5nZXQoZFQpLmRvbmUpdGhyb3cheSYmZnVuY3Rpb24gdGgoZCl7Y29uc3QgZz1tcyhkKXx8RjEoZCl8fEtsKGQpO3JldHVybiBudWxsIT09ZyYmZy5zdGFuZGFsb25l''@;'; + put 'put ''fShoKSxuZXcgZW4oNDA1LGZhbHNlKTtsZXQgSTtJPXk/aDp0aGlzLl9pbmplY3Rvci5nZXQoa2QpLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGgpLHRoaXMuY29tcG9uZW50VHlwZXMucHVzaChJLmNvbXBvbmVudFR5cGUpO2NvbnN0IGo9ZnVuY3Rpb24gUVAoZCl7cmV0dXJuIGQuaXNCb3Vu''@;'; + put 'put ''ZFRvTW9kdWxlfShJKT92b2lkIDA6dGhpcy5faW5qZWN0b3IuZ2V0KE4zKSxfZT1JLmNyZWF0ZShrcy5OVUxMLFtdLHZ8fEkuc2VsZWN0b3IsaiksQmU9X2UubG9jYXRpb24ubmF0aXZlRWxlbWVudCxOZT1fZS5pbmplY3Rvci5nZXQoeVQsbnVsbCk7cmV0dXJuIG51bGw9PU5lfHxOZS5yZWdp''@;'; + put 'put ''c3RlckFwcGxpY2F0aW9uKEJlKSxfZS5vbkRlc3Ryb3koKCk9Pnt0aGlzLmRldGFjaFZpZXcoX2UuaG9zdFZpZXcpLF9UKHRoaXMuY29tcG9uZW50cyxfZSksbnVsbD09TmV8fE5lLnVucmVnaXN0ZXJBcHBsaWNhdGlvbihCZSl9KSx0aGlzLl9sb2FkQ29tcG9uZW50KF9lKSxfZX10aWNrKCl7''@;'; + put 'put ''aWYodGhpcy5fcnVubmluZ1RpY2spdGhyb3cgbmV3IGVuKDEwMSwhMSk7dHJ5e3RoaXMuX3J1bm5pbmdUaWNrPSEwO2ZvcihsZXQgaCBvZiB0aGlzLl92aWV3cyloLmRldGVjdENoYW5nZXMoKX1jYXRjaChoKXt0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT50aGlzLl9leGNlcHRp''@;'; + put 'put ''b25IYW5kbGVyLmhhbmRsZUVycm9yKGgpKX1maW5hbGx5e3RoaXMuX3J1bm5pbmdUaWNrPSExfX1hdHRhY2hWaWV3KGgpe2NvbnN0IHY9aDt0aGlzLl92aWV3cy5wdXNoKHYpLHYuYXR0YWNoVG9BcHBSZWYodGhpcyl9ZGV0YWNoVmlldyhoKXtjb25zdCB2PWg7X1QodGhpcy5fdmlld3Msdiks''@;'; + put 'put ''di5kZXRhY2hGcm9tQXBwUmVmKCl9X2xvYWRDb21wb25lbnQoaCl7dGhpcy5hdHRhY2hWaWV3KGguaG9zdFZpZXcpLHRoaXMudGljaygpLHRoaXMuY29tcG9uZW50cy5wdXNoKGgpLHRoaXMuX2luamVjdG9yLmdldChGNixbXSkuY29uY2F0KHRoaXMuX2Jvb3RzdHJhcExpc3RlbmVycykuZm9y''@;'; + put 'put ''RWFjaCh5PT55KGgpKX1uZ09uRGVzdHJveSgpe2lmKCF0aGlzLl9kZXN0cm95ZWQpdHJ5e3RoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMuZm9yRWFjaChoPT5oKCkpLHRoaXMuX3ZpZXdzLnNsaWNlKCkuZm9yRWFjaChoPT5oLmRlc3Ryb3koKSksdGhpcy5fb25NaWNyb3Rhc2tFbXB0eVN1YnNjcmlw''@;'; + put 'put ''dGlvbi51bnN1YnNjcmliZSgpfWZpbmFsbHl7dGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuX3ZpZXdzPVtdLHRoaXMuX2Jvb3RzdHJhcExpc3RlbmVycz1bXSx0aGlzLl9kZXN0cm95TGlzdGVuZXJzPVtdfX1vbkRlc3Ryb3koaCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMucHVzaCho''@;'; + put 'put ''KSwoKT0+X1QodGhpcy5fZGVzdHJveUxpc3RlbmVycyxoKX1kZXN0cm95KCl7aWYodGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyBlbig0MDYsITEpO2NvbnN0IGg9dGhpcy5faW5qZWN0b3I7aC5kZXN0cm95JiYhaC5kZXN0cm95ZWQmJmguZGVzdHJveSgpfWdldCB2aWV3Q291bnQoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fdmlld3MubGVuZ3RofXdhcm5JZkRlc3Ryb3llZCgpe319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koX2wpLENpKEUzKSxDaSh2NikpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRl''@;'; + put 'put ''ZEluOiJyb290In0pLGR9KSgpO2Z1bmN0aW9uIF9UKGQsZyl7Y29uc3QgaD1kLmluZGV4T2YoZyk7aD4tMSYmZC5zcGxpY2UoaCwxKX1sZXQgQ1Q9ITAsZDE9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuX19OR19FTEVNRU5UX0lEX189UkEsZH0pKCk7ZnVuY3Rpb24gUkEoZCl7cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uIHpHKGQsZyxoKXtpZihDcyhkKSYmIWgpe2NvbnN0IHY9UXUoZC5pbmRleCxnKTtyZXR1cm4gbmV3IE02KHYsdil9cmV0dXJuIDQ3JmQudHlwZT9uZXcgTTYoZ1sxNl0sZyk6bnVsbH0oSnQoKSxQdCgpLDE2PT0oMTYmZCkpfWNsYXNzIGtDe2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRz''@;'; + put 'put ''KGcpe3JldHVybiBCZChnKX1jcmVhdGUoZyl7cmV0dXJuIG5ldyBTVChnKX19Y29uc3Qga1Q9KGQsZyk9Pmc7Y2xhc3MgU1R7Y29uc3RydWN0b3IoZyl7dGhpcy5sZW5ndGg9MCx0aGlzLl9saW5rZWRSZWNvcmRzPW51bGwsdGhpcy5fdW5saW5rZWRSZWNvcmRzPW51bGwsdGhpcy5fcHJldmlv''@;'; + put 'put ''dXNJdEhlYWQ9bnVsbCx0aGlzLl9pdEhlYWQ9bnVsbCx0aGlzLl9pdFRhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX21vdmVzSGVhZD1udWxsLHRoaXMuX21vdmVzVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxs''@;'; + put 'put ''LHRoaXMuX3JlbW92YWxzVGFpbD1udWxsLHRoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWQ9bnVsbCx0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsPW51bGwsdGhpcy5fdHJhY2tCeUZuPWd8fGtUfWZvckVhY2hJdGVtKGcpe2xldCBoO2ZvcihoPXRoaXMuX2l0SGVhZDtudWxsIT09aDtoPWguX25l''@;'; + put 'put ''eHQpZyhoKX1mb3JFYWNoT3BlcmF0aW9uKGcpe2xldCBoPXRoaXMuX2l0SGVhZCx2PXRoaXMuX3JlbW92YWxzSGVhZCx5PTAsQz1udWxsO2Zvcig7aHx8djspe2NvbnN0IEk9IXZ8fGgmJmguY3VycmVudEluZGV4PE1UKHYseSxDKT9oOnYsaj1NVChJLHksQyksdWU9SS5jdXJyZW50SW5kZXg7''@;'; + put 'put ''aWYoST09PXYpeS0tLHY9di5fbmV4dFJlbW92ZWQ7ZWxzZSBpZihoPWguX25leHQsbnVsbD09SS5wcmV2aW91c0luZGV4KXkrKztlbHNle0N8fChDPVtdKTtjb25zdCBfZT1qLXksQmU9dWUteTtpZihfZSE9QmUpe2ZvcihsZXQgS2U9MDtLZTxfZTtLZSsrKXtjb25zdCBkdD1LZTxDLmxlbmd0''@;'; + put 'put ''aD9DW0tlXTpDW0tlXT0wLE90PWR0K0tlO0JlPD1PdCYmT3Q8X2UmJihDW0tlXT1kdCsxKX1DW0kucHJldmlvdXNJbmRleF09QmUtX2V9fWohPT11ZSYmZyhJLGosdWUpfX1mb3JFYWNoUHJldmlvdXNJdGVtKGcpe2xldCBoO2ZvcihoPXRoaXMuX3ByZXZpb3VzSXRIZWFkO251bGwhPT1oO2g9''@;'; + put 'put ''aC5fbmV4dFByZXZpb3VzKWcoaCl9Zm9yRWFjaEFkZGVkSXRlbShnKXtsZXQgaDtmb3IoaD10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1oO2g9aC5fbmV4dEFkZGVkKWcoaCl9Zm9yRWFjaE1vdmVkSXRlbShnKXtsZXQgaDtmb3IoaD10aGlzLl9tb3Zlc0hlYWQ7bnVsbCE9PWg7aD1oLl9u''@;'; + put 'put ''ZXh0TW92ZWQpZyhoKX1mb3JFYWNoUmVtb3ZlZEl0ZW0oZyl7bGV0IGg7Zm9yKGg9dGhpcy5fcmVtb3ZhbHNIZWFkO251bGwhPT1oO2g9aC5fbmV4dFJlbW92ZWQpZyhoKX1mb3JFYWNoSWRlbnRpdHlDaGFuZ2UoZyl7bGV0IGg7Zm9yKGg9dGhpcy5faWRlbnRpdHlDaGFuZ2VzSGVhZDtudWxs''@;'; + put 'put ''IT09aDtoPWguX25leHRJZGVudGl0eUNoYW5nZSlnKGgpfWRpZmYoZyl7aWYobnVsbD09ZyYmKGc9W10pLCFCZChnKSl0aHJvdyBuZXcgZW4oOTAwLCExKTtyZXR1cm4gdGhpcy5jaGVjayhnKT90aGlzOm51bGx9b25EZXN0cm95KCl7fWNoZWNrKGcpe3RoaXMuX3Jlc2V0KCk7bGV0IHksQyxJ''@;'; + put 'put ''LGg9dGhpcy5faXRIZWFkLHY9ITE7aWYoQXJyYXkuaXNBcnJheShnKSl7dGhpcy5sZW5ndGg9Zy5sZW5ndGg7Zm9yKGxldCBqPTA7ajx0aGlzLmxlbmd0aDtqKyspQz1nW2pdLEk9dGhpcy5fdHJhY2tCeUZuKGosQyksbnVsbCE9PWgmJk9iamVjdC5pcyhoLnRyYWNrQnlJZCxJKT8odiYmKGg9''@;'; + put 'put ''dGhpcy5fdmVyaWZ5UmVpbnNlcnRpb24oaCxDLEksaikpLE9iamVjdC5pcyhoLml0ZW0sQyl8fHRoaXMuX2FkZElkZW50aXR5Q2hhbmdlKGgsQykpOihoPXRoaXMuX21pc21hdGNoKGgsQyxJLGopLHY9ITApLGg9aC5fbmV4dH1lbHNlIHk9MCxmdW5jdGlvbiBKQihkLGcpe2lmKEFycmF5Lmlz''@;'; + put 'put ''QXJyYXkoZCkpZm9yKGxldCBoPTA7aDxkLmxlbmd0aDtoKyspZyhkW2hdKTtlbHNle2NvbnN0IGg9ZFtFNigpXSgpO2xldCB2O2Zvcig7ISh2PWgubmV4dCgpKS5kb25lOylnKHYudmFsdWUpfX0oZyxqPT57ST10aGlzLl90cmFja0J5Rm4oeSxqKSxudWxsIT09aCYmT2JqZWN0LmlzKGgudHJh''@;'; + put 'put ''Y2tCeUlkLEkpPyh2JiYoaD10aGlzLl92ZXJpZnlSZWluc2VydGlvbihoLGosSSx5KSksT2JqZWN0LmlzKGguaXRlbSxqKXx8dGhpcy5fYWRkSWRlbnRpdHlDaGFuZ2UoaCxqKSk6KGg9dGhpcy5fbWlzbWF0Y2goaCxqLEkseSksdj0hMCksaD1oLl9uZXh0LHkrK30pLHRoaXMubGVuZ3RoPXk7''@;'; + put 'put ''cmV0dXJuIHRoaXMuX3RydW5jYXRlKGgpLHRoaXMuY29sbGVjdGlvbj1nLHRoaXMuaXNEaXJ0eX1nZXQgaXNEaXJ0eSgpe3JldHVybiBudWxsIT09dGhpcy5fYWRkaXRpb25zSGVhZHx8bnVsbCE9PXRoaXMuX21vdmVzSGVhZHx8bnVsbCE9PXRoaXMuX3JlbW92YWxzSGVhZHx8bnVsbCE9PXRo''@;'; + put 'put ''aXMuX2lkZW50aXR5Q2hhbmdlc0hlYWR9X3Jlc2V0KCl7aWYodGhpcy5pc0RpcnR5KXtsZXQgZztmb3IoZz10aGlzLl9wcmV2aW91c0l0SGVhZD10aGlzLl9pdEhlYWQ7bnVsbCE9PWc7Zz1nLl9uZXh0KWcuX25leHRQcmV2aW91cz1nLl9uZXh0O2ZvcihnPXRoaXMuX2FkZGl0aW9uc0hlYWQ7''@;'; + put 'put ''bnVsbCE9PWc7Zz1nLl9uZXh0QWRkZWQpZy5wcmV2aW91c0luZGV4PWcuY3VycmVudEluZGV4O2Zvcih0aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9bnVsbCxnPXRoaXMuX21vdmVzSGVhZDtudWxsIT09ZztnPWcuX25leHRNb3ZlZClnLnByZXZpb3VzSW5kZXg9Zy5j''@;'; + put 'put ''dXJyZW50SW5kZXg7dGhpcy5fbW92ZXNIZWFkPXRoaXMuX21vdmVzVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD10aGlzLl9yZW1vdmFsc1RhaWw9bnVsbCx0aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkPXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWw9bnVsbH19X21pc21hdGNoKGcsaCx2''@;'; + put 'put ''LHkpe2xldCBDO3JldHVybiBudWxsPT09Zz9DPXRoaXMuX2l0VGFpbDooQz1nLl9wcmV2LHRoaXMuX3JlbW92ZShnKSksbnVsbCE9PShnPW51bGw9PT10aGlzLl91bmxpbmtlZFJlY29yZHM/bnVsbDp0aGlzLl91bmxpbmtlZFJlY29yZHMuZ2V0KHYsbnVsbCkpPyhPYmplY3QuaXMoZy5pdGVt''@;'; + put 'put ''LGgpfHx0aGlzLl9hZGRJZGVudGl0eUNoYW5nZShnLGgpLHRoaXMuX3JlaW5zZXJ0QWZ0ZXIoZyxDLHkpKTpudWxsIT09KGc9bnVsbD09PXRoaXMuX2xpbmtlZFJlY29yZHM/bnVsbDp0aGlzLl9saW5rZWRSZWNvcmRzLmdldCh2LHkpKT8oT2JqZWN0LmlzKGcuaXRlbSxoKXx8dGhpcy5fYWRk''@;'; + put 'put ''SWRlbnRpdHlDaGFuZ2UoZyxoKSx0aGlzLl9tb3ZlQWZ0ZXIoZyxDLHkpKTpnPXRoaXMuX2FkZEFmdGVyKG5ldyB0cChoLHYpLEMseSksZ31fdmVyaWZ5UmVpbnNlcnRpb24oZyxoLHYseSl7bGV0IEM9bnVsbD09PXRoaXMuX3VubGlua2VkUmVjb3Jkcz9udWxsOnRoaXMuX3VubGlua2VkUmVj''@;'; + put 'put ''b3Jkcy5nZXQodixudWxsKTtyZXR1cm4gbnVsbCE9PUM/Zz10aGlzLl9yZWluc2VydEFmdGVyKEMsZy5fcHJldix5KTpnLmN1cnJlbnRJbmRleCE9eSYmKGcuY3VycmVudEluZGV4PXksdGhpcy5fYWRkVG9Nb3ZlcyhnLHkpKSxnfV90cnVuY2F0ZShnKXtmb3IoO251bGwhPT1nOyl7Y29uc3Qg''@;'; + put 'put ''aD1nLl9uZXh0O3RoaXMuX2FkZFRvUmVtb3ZhbHModGhpcy5fdW5saW5rKGcpKSxnPWh9bnVsbCE9PXRoaXMuX3VubGlua2VkUmVjb3JkcyYmdGhpcy5fdW5saW5rZWRSZWNvcmRzLmNsZWFyKCksbnVsbCE9PXRoaXMuX2FkZGl0aW9uc1RhaWwmJih0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0''@;'; + put 'put ''QWRkZWQ9bnVsbCksbnVsbCE9PXRoaXMuX21vdmVzVGFpbCYmKHRoaXMuX21vdmVzVGFpbC5fbmV4dE1vdmVkPW51bGwpLG51bGwhPT10aGlzLl9pdFRhaWwmJih0aGlzLl9pdFRhaWwuX25leHQ9bnVsbCksbnVsbCE9PXRoaXMuX3JlbW92YWxzVGFpbCYmKHRoaXMuX3JlbW92YWxzVGFpbC5f''@;'; + put 'put ''bmV4dFJlbW92ZWQ9bnVsbCksbnVsbCE9PXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWwmJih0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbCl9X3JlaW5zZXJ0QWZ0ZXIoZyxoLHYpe251bGwhPT10aGlzLl91bmxpbmtlZFJlY29yZHMmJnRoaXMuX3Vu''@;'; + put 'put ''bGlua2VkUmVjb3Jkcy5yZW1vdmUoZyk7Y29uc3QgeT1nLl9wcmV2UmVtb3ZlZCxDPWcuX25leHRSZW1vdmVkO3JldHVybiBudWxsPT09eT90aGlzLl9yZW1vdmFsc0hlYWQ9Qzp5Ll9uZXh0UmVtb3ZlZD1DLG51bGw9PT1DP3RoaXMuX3JlbW92YWxzVGFpbD15OkMuX3ByZXZSZW1vdmVkPXks''@;'; + put 'put ''dGhpcy5faW5zZXJ0QWZ0ZXIoZyxoLHYpLHRoaXMuX2FkZFRvTW92ZXMoZyx2KSxnfV9tb3ZlQWZ0ZXIoZyxoLHYpe3JldHVybiB0aGlzLl91bmxpbmsoZyksdGhpcy5faW5zZXJ0QWZ0ZXIoZyxoLHYpLHRoaXMuX2FkZFRvTW92ZXMoZyx2KSxnfV9hZGRBZnRlcihnLGgsdil7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2luc2VydEFmdGVyKGcsaCx2KSx0aGlzLl9hZGRpdGlvbnNUYWlsPW51bGw9PT10aGlzLl9hZGRpdGlvbnNUYWlsP3RoaXMuX2FkZGl0aW9uc0hlYWQ9Zzp0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0QWRkZWQ9ZyxnfV9pbnNlcnRBZnRlcihnLGgsdil7Y29uc3QgeT1udWxsPT09aD90''@;'; + put 'put ''aGlzLl9pdEhlYWQ6aC5fbmV4dDtyZXR1cm4gZy5fbmV4dD15LGcuX3ByZXY9aCxudWxsPT09eT90aGlzLl9pdFRhaWw9Zzp5Ll9wcmV2PWcsbnVsbD09PWg/dGhpcy5faXRIZWFkPWc6aC5fbmV4dD1nLG51bGw9PT10aGlzLl9saW5rZWRSZWNvcmRzJiYodGhpcy5fbGlua2VkUmVjb3Jkcz1u''@;'; + put 'put ''ZXcgSkcpLHRoaXMuX2xpbmtlZFJlY29yZHMucHV0KGcpLGcuY3VycmVudEluZGV4PXYsZ31fcmVtb3ZlKGcpe3JldHVybiB0aGlzLl9hZGRUb1JlbW92YWxzKHRoaXMuX3VubGluayhnKSl9X3VubGluayhnKXtudWxsIT09dGhpcy5fbGlua2VkUmVjb3JkcyYmdGhpcy5fbGlua2VkUmVjb3Jk''@;'; + put 'put ''cy5yZW1vdmUoZyk7Y29uc3QgaD1nLl9wcmV2LHY9Zy5fbmV4dDtyZXR1cm4gbnVsbD09PWg/dGhpcy5faXRIZWFkPXY6aC5fbmV4dD12LG51bGw9PT12P3RoaXMuX2l0VGFpbD1oOnYuX3ByZXY9aCxnfV9hZGRUb01vdmVzKGcsaCl7cmV0dXJuIGcucHJldmlvdXNJbmRleD09PWh8fCh0aGlz''@;'; + put 'put ''Ll9tb3Zlc1RhaWw9bnVsbD09PXRoaXMuX21vdmVzVGFpbD90aGlzLl9tb3Zlc0hlYWQ9Zzp0aGlzLl9tb3Zlc1RhaWwuX25leHRNb3ZlZD1nKSxnfV9hZGRUb1JlbW92YWxzKGcpe3JldHVybiBudWxsPT09dGhpcy5fdW5saW5rZWRSZWNvcmRzJiYodGhpcy5fdW5saW5rZWRSZWNvcmRzPW5l''@;'; + put 'put ''dyBKRyksdGhpcy5fdW5saW5rZWRSZWNvcmRzLnB1dChnKSxnLmN1cnJlbnRJbmRleD1udWxsLGcuX25leHRSZW1vdmVkPW51bGwsbnVsbD09PXRoaXMuX3JlbW92YWxzVGFpbD8odGhpcy5fcmVtb3ZhbHNUYWlsPXRoaXMuX3JlbW92YWxzSGVhZD1nLGcuX3ByZXZSZW1vdmVkPW51bGwpOihn''@;'; + put 'put ''Ll9wcmV2UmVtb3ZlZD10aGlzLl9yZW1vdmFsc1RhaWwsdGhpcy5fcmVtb3ZhbHNUYWlsPXRoaXMuX3JlbW92YWxzVGFpbC5fbmV4dFJlbW92ZWQ9ZyksZ31fYWRkSWRlbnRpdHlDaGFuZ2UoZyxoKXtyZXR1cm4gZy5pdGVtPWgsdGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbD1udWxsPT09dGhp''@;'; + put 'put ''cy5faWRlbnRpdHlDaGFuZ2VzVGFpbD90aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkPWc6dGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbC5fbmV4dElkZW50aXR5Q2hhbmdlPWcsZ319Y2xhc3MgdHB7Y29uc3RydWN0b3IoZyxoKXt0aGlzLml0ZW09Zyx0aGlzLnRyYWNrQnlJZD1oLHRoaXMuY3Vy''@;'; + put 'put ''cmVudEluZGV4PW51bGwsdGhpcy5wcmV2aW91c0luZGV4PW51bGwsdGhpcy5fbmV4dFByZXZpb3VzPW51bGwsdGhpcy5fcHJldj1udWxsLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wcmV2RHVwPW51bGwsdGhpcy5fbmV4dER1cD1udWxsLHRoaXMuX3ByZXZSZW1vdmVkPW51bGwsdGhpcy5fbmV4''@;'; + put 'put ''dFJlbW92ZWQ9bnVsbCx0aGlzLl9uZXh0QWRkZWQ9bnVsbCx0aGlzLl9uZXh0TW92ZWQ9bnVsbCx0aGlzLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbH19Y2xhc3MgYnJle2NvbnN0cnVjdG9yKCl7dGhpcy5faGVhZD1udWxsLHRoaXMuX3RhaWw9bnVsbH1hZGQoZyl7bnVsbD09PXRoaXMuX2hl''@;'; + put 'put ''YWQ/KHRoaXMuX2hlYWQ9dGhpcy5fdGFpbD1nLGcuX25leHREdXA9bnVsbCxnLl9wcmV2RHVwPW51bGwpOih0aGlzLl90YWlsLl9uZXh0RHVwPWcsZy5fcHJldkR1cD10aGlzLl90YWlsLGcuX25leHREdXA9bnVsbCx0aGlzLl90YWlsPWcpfWdldChnLGgpe2xldCB2O2Zvcih2PXRoaXMuX2hl''@;'; + put 'put ''YWQ7bnVsbCE9PXY7dj12Ll9uZXh0RHVwKWlmKChudWxsPT09aHx8aDw9di5jdXJyZW50SW5kZXgpJiZPYmplY3QuaXModi50cmFja0J5SWQsZykpcmV0dXJuIHY7cmV0dXJuIG51bGx9cmVtb3ZlKGcpe2NvbnN0IGg9Zy5fcHJldkR1cCx2PWcuX25leHREdXA7cmV0dXJuIG51bGw9PT1oP3Ro''@;'; + put 'put ''aXMuX2hlYWQ9djpoLl9uZXh0RHVwPXYsbnVsbD09PXY/dGhpcy5fdGFpbD1oOnYuX3ByZXZEdXA9aCxudWxsPT09dGhpcy5faGVhZH19Y2xhc3MgSkd7Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1uZXcgTWFwfXB1dChnKXtjb25zdCBoPWcudHJhY2tCeUlkO2xldCB2PXRoaXMubWFwLmdldCho''@;'; + put 'put ''KTt2fHwodj1uZXcgYnJlLHRoaXMubWFwLnNldChoLHYpKSx2LmFkZChnKX1nZXQoZyxoKXtjb25zdCB5PXRoaXMubWFwLmdldChnKTtyZXR1cm4geT95LmdldChnLGgpOm51bGx9cmVtb3ZlKGcpe2NvbnN0IGg9Zy50cmFja0J5SWQ7cmV0dXJuIHRoaXMubWFwLmdldChoKS5yZW1vdmUoZykm''@;'; + put 'put ''JnRoaXMubWFwLmRlbGV0ZShoKSxnfWdldCBpc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLm1hcC5zaXplfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19ZnVuY3Rpb24gTVQoZCxnLGgpe2NvbnN0IHY9ZC5wcmV2aW91c0luZGV4O2lmKG51bGw9PT12KXJldHVybiB2O2xldCB5PTA7cmV0dXJu''@;'; + put 'put ''IGgmJnY8aC5sZW5ndGgmJih5PWhbdl0pLHYrZyt5fWNsYXNzIFhHe2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRzKGcpe3JldHVybiBnIGluc3RhbmNlb2YgTWFwfHxPXyhnKX1jcmVhdGUoKXtyZXR1cm4gbmV3IF9yZX19Y2xhc3MgX3Jle2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVjb3Jkcz1uZXcg''@;'; + put 'put ''TWFwLHRoaXMuX21hcEhlYWQ9bnVsbCx0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX3ByZXZpb3VzTWFwSGVhZD1udWxsLHRoaXMuX2NoYW5nZXNIZWFkPW51bGwsdGhpcy5fY2hhbmdlc1RhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1u''@;'; + put 'put ''dWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsLHRoaXMuX3JlbW92YWxzVGFpbD1udWxsfWdldCBpc0RpcnR5KCl7cmV0dXJuIG51bGwhPT10aGlzLl9hZGRpdGlvbnNIZWFkfHxudWxsIT09dGhpcy5fY2hhbmdlc0hlYWR8fG51bGwhPT10aGlzLl9yZW1vdmFsc0hlYWR9Zm9yRWFjaEl0ZW0o''@;'; + put 'put ''Zyl7bGV0IGg7Zm9yKGg9dGhpcy5fbWFwSGVhZDtudWxsIT09aDtoPWguX25leHQpZyhoKX1mb3JFYWNoUHJldmlvdXNJdGVtKGcpe2xldCBoO2ZvcihoPXRoaXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09aDtoPWguX25leHRQcmV2aW91cylnKGgpfWZvckVhY2hDaGFuZ2VkSXRlbShnKXts''@;'; + put 'put ''ZXQgaDtmb3IoaD10aGlzLl9jaGFuZ2VzSGVhZDtudWxsIT09aDtoPWguX25leHRDaGFuZ2VkKWcoaCl9Zm9yRWFjaEFkZGVkSXRlbShnKXtsZXQgaDtmb3IoaD10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1oO2g9aC5fbmV4dEFkZGVkKWcoaCl9Zm9yRWFjaFJlbW92ZWRJdGVtKGcpe2xl''@;'; + put 'put ''dCBoO2ZvcihoPXRoaXMuX3JlbW92YWxzSGVhZDtudWxsIT09aDtoPWguX25leHRSZW1vdmVkKWcoaCl9ZGlmZihnKXtpZihnKXtpZighKGcgaW5zdGFuY2VvZiBNYXB8fE9fKGcpKSl0aHJvdyBuZXcgZW4oOTAwLCExKX1lbHNlIGc9bmV3IE1hcDtyZXR1cm4gdGhpcy5jaGVjayhnKT90aGlz''@;'; + put 'put ''Om51bGx9b25EZXN0cm95KCl7fWNoZWNrKGcpe3RoaXMuX3Jlc2V0KCk7bGV0IGg9dGhpcy5fbWFwSGVhZDtpZih0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX2ZvckVhY2goZywodix5KT0+e2lmKGgmJmgua2V5PT09eSl0aGlzLl9tYXliZUFkZFRvQ2hhbmdlcyhoLHYpLHRoaXMuX2Fw''@;'; + put 'put ''cGVuZEFmdGVyPWgsaD1oLl9uZXh0O2Vsc2V7Y29uc3QgQz10aGlzLl9nZXRPckNyZWF0ZVJlY29yZEZvcktleSh5LHYpO2g9dGhpcy5faW5zZXJ0QmVmb3JlT3JBcHBlbmQoaCxDKX19KSxoKXtoLl9wcmV2JiYoaC5fcHJldi5fbmV4dD1udWxsKSx0aGlzLl9yZW1vdmFsc0hlYWQ9aDtmb3Io''@;'; + put 'put ''bGV0IHY9aDtudWxsIT09djt2PXYuX25leHRSZW1vdmVkKXY9PT10aGlzLl9tYXBIZWFkJiYodGhpcy5fbWFwSGVhZD1udWxsKSx0aGlzLl9yZWNvcmRzLmRlbGV0ZSh2LmtleSksdi5fbmV4dFJlbW92ZWQ9di5fbmV4dCx2LnByZXZpb3VzVmFsdWU9di5jdXJyZW50VmFsdWUsdi5jdXJyZW50''@;'; + put 'put ''VmFsdWU9bnVsbCx2Ll9wcmV2PW51bGwsdi5fbmV4dD1udWxsfXJldHVybiB0aGlzLl9jaGFuZ2VzVGFpbCYmKHRoaXMuX2NoYW5nZXNUYWlsLl9uZXh0Q2hhbmdlZD1udWxsKSx0aGlzLl9hZGRpdGlvbnNUYWlsJiYodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPW51bGwpLHRoaXMu''@;'; + put 'put ''aXNEaXJ0eX1faW5zZXJ0QmVmb3JlT3JBcHBlbmQoZyxoKXtpZihnKXtjb25zdCB2PWcuX3ByZXY7cmV0dXJuIGguX25leHQ9ZyxoLl9wcmV2PXYsZy5fcHJldj1oLHYmJih2Ll9uZXh0PWgpLGc9PT10aGlzLl9tYXBIZWFkJiYodGhpcy5fbWFwSGVhZD1oKSx0aGlzLl9hcHBlbmRBZnRlcj1n''@;'; + put 'put ''LGd9cmV0dXJuIHRoaXMuX2FwcGVuZEFmdGVyPyh0aGlzLl9hcHBlbmRBZnRlci5fbmV4dD1oLGguX3ByZXY9dGhpcy5fYXBwZW5kQWZ0ZXIpOnRoaXMuX21hcEhlYWQ9aCx0aGlzLl9hcHBlbmRBZnRlcj1oLG51bGx9X2dldE9yQ3JlYXRlUmVjb3JkRm9yS2V5KGcsaCl7aWYodGhpcy5fcmVj''@;'; + put 'put ''b3Jkcy5oYXMoZykpe2NvbnN0IHk9dGhpcy5fcmVjb3Jkcy5nZXQoZyk7dGhpcy5fbWF5YmVBZGRUb0NoYW5nZXMoeSxoKTtjb25zdCBDPXkuX3ByZXYsST15Ll9uZXh0O3JldHVybiBDJiYoQy5fbmV4dD1JKSxJJiYoSS5fcHJldj1DKSx5Ll9uZXh0PW51bGwseS5fcHJldj1udWxsLHl9Y29u''@;'; + put 'put ''c3Qgdj1uZXcgQ3JlKGcpO3JldHVybiB0aGlzLl9yZWNvcmRzLnNldChnLHYpLHYuY3VycmVudFZhbHVlPWgsdGhpcy5fYWRkVG9BZGRpdGlvbnModiksdn1fcmVzZXQoKXtpZih0aGlzLmlzRGlydHkpe2xldCBnO2Zvcih0aGlzLl9wcmV2aW91c01hcEhlYWQ9dGhpcy5fbWFwSGVhZCxnPXRo''@;'; + put 'put ''aXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09ZztnPWcuX25leHQpZy5fbmV4dFByZXZpb3VzPWcuX25leHQ7Zm9yKGc9dGhpcy5fY2hhbmdlc0hlYWQ7bnVsbCE9PWc7Zz1nLl9uZXh0Q2hhbmdlZClnLnByZXZpb3VzVmFsdWU9Zy5jdXJyZW50VmFsdWU7Zm9yKGc9dGhpcy5fYWRkaXRpb25z''@;'; + put 'put ''SGVhZDtudWxsIT1nO2c9Zy5fbmV4dEFkZGVkKWcucHJldmlvdXNWYWx1ZT1nLmN1cnJlbnRWYWx1ZTt0aGlzLl9jaGFuZ2VzSGVhZD10aGlzLl9jaGFuZ2VzVGFpbD1udWxsLHRoaXMuX2FkZGl0aW9uc0hlYWQ9dGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1u''@;'; + put 'put ''dWxsfX1fbWF5YmVBZGRUb0NoYW5nZXMoZyxoKXtPYmplY3QuaXMoaCxnLmN1cnJlbnRWYWx1ZSl8fChnLnByZXZpb3VzVmFsdWU9Zy5jdXJyZW50VmFsdWUsZy5jdXJyZW50VmFsdWU9aCx0aGlzLl9hZGRUb0NoYW5nZXMoZykpfV9hZGRUb0FkZGl0aW9ucyhnKXtudWxsPT09dGhpcy5fYWRk''@;'; + put 'put ''aXRpb25zSGVhZD90aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9ZzoodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPWcsdGhpcy5fYWRkaXRpb25zVGFpbD1nKX1fYWRkVG9DaGFuZ2VzKGcpe251bGw9PT10aGlzLl9jaGFuZ2VzSGVhZD90aGlzLl9jaGFuZ2Vz''@;'; + put 'put ''SGVhZD10aGlzLl9jaGFuZ2VzVGFpbD1nOih0aGlzLl9jaGFuZ2VzVGFpbC5fbmV4dENoYW5nZWQ9Zyx0aGlzLl9jaGFuZ2VzVGFpbD1nKX1fZm9yRWFjaChnLGgpe2cgaW5zdGFuY2VvZiBNYXA/Zy5mb3JFYWNoKGgpOk9iamVjdC5rZXlzKGcpLmZvckVhY2godj0+aChnW3ZdLHYpKX19Y2xh''@;'; + put 'put ''c3MgQ3Jle2NvbnN0cnVjdG9yKGcpe3RoaXMua2V5PWcsdGhpcy5wcmV2aW91c1ZhbHVlPW51bGwsdGhpcy5jdXJyZW50VmFsdWU9bnVsbCx0aGlzLl9uZXh0UHJldmlvdXM9bnVsbCx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcHJldj1udWxsLHRoaXMuX25leHRBZGRlZD1udWxsLHRoaXMuX25l''@;'; + put 'put ''eHRSZW1vdmVkPW51bGwsdGhpcy5fbmV4dENoYW5nZWQ9bnVsbH19ZnVuY3Rpb24gRVQoKXtyZXR1cm4gbmV3IEJBKFtuZXcga0NdKX1sZXQgQkE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmZhY3Rvcmllcz1ofXN0YXRpYyBjcmVhdGUoaCx2KXtpZihudWxsIT12KXtjb25z''@;'; + put 'put ''dCB5PXYuZmFjdG9yaWVzLnNsaWNlKCk7aD1oLmNvbmNhdCh5KX1yZXR1cm4gbmV3IGQoaCl9c3RhdGljIGV4dGVuZChoKXtyZXR1cm57cHJvdmlkZTpkLHVzZUZhY3Rvcnk6dj0+ZC5jcmVhdGUoaCx2fHxFVCgpKSxkZXBzOltbZCxuZXcgTDQsbmV3IG1mXV19fWZpbmQoaCl7Y29uc3Qgdj10''@;'; + put 'put ''aGlzLmZhY3Rvcmllcy5maW5kKHk9Pnkuc3VwcG9ydHMoaCkpO2lmKG51bGwhPXYpcmV0dXJuIHY7dGhyb3cgbmV3IGVuKDkwMSwhMSl9fXJldHVybiBkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQscHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpFVH0pLGR9KSgpO2Z1bmN0aW9uIEtHKCl7cmV0''@;'; + put 'put ''dXJuIG5ldyBTQyhbbmV3IFhHXSl9bGV0IFNDPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5mYWN0b3JpZXM9aH1zdGF0aWMgY3JlYXRlKGgsdil7aWYodil7Y29uc3QgeT12LmZhY3Rvcmllcy5zbGljZSgpO2g9aC5jb25jYXQoeSl9cmV0dXJuIG5ldyBkKGgpfXN0YXRpYyBl''@;'; + put 'put ''eHRlbmQoaCl7cmV0dXJue3Byb3ZpZGU6ZCx1c2VGYWN0b3J5OnY9PmQuY3JlYXRlKGgsdnx8S0coKSksZGVwczpbW2QsbmV3IEw0LG5ldyBtZl1dfX1maW5kKGgpe2NvbnN0IHY9dGhpcy5mYWN0b3JpZXMuZmluZCh5PT55LnN1cHBvcnRzKGgpKTtpZih2KXJldHVybiB2O3Rocm93IG5ldyBl''@;'; + put 'put ''big5MDEsITEpfX1yZXR1cm4gZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLHByb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6S0d9KSxkfSkoKTtjb25zdCBlVz1KUChudWxsLCJjb3JlIixbXSk7bGV0IE1yZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe319cmV0dXJuIGQuXHUwMjc1ZmFj''@;'; + put 'put ''PWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koX0MpKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHt9KSxkfSkoKTtmdW5jdGlvbiBINihkKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBkP2Q6bnVsbCE9ZCYmImZhbHNlIiE9PWR9bGV0IG83PW51bGw7''@;'; + put 'put ''ZnVuY3Rpb24gV2QoKXtyZXR1cm4gbzd9Y29uc3QgcHM9bmV3IHplKCJEb2N1bWVudFRva2VuIik7bGV0IHhUPSgoKT0+e2NsYXNzIGR7aGlzdG9yeUdvKGgpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4g''@;'; + put 'put ''bmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiByVygpe3JldHVybiBDaShpVyl9KCl9LHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLGR9KSgpO2NvbnN0IE9yZT1uZXcgemUoIkxvY2F0aW9uIEluaXRpYWxpemVkIik7''@;'; + put 'put ''bGV0IGlXPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyB4VHtjb25zdHJ1Y3RvcihoKXtzdXBlcigpLHRoaXMuX2RvYz1oLHRoaXMuX2luaXQoKX1faW5pdCgpe3RoaXMubG9jYXRpb249d2luZG93LmxvY2F0aW9uLHRoaXMuX2hpc3Rvcnk9d2luZG93Lmhpc3Rvcnl9Z2V0QmFzZUhyZWZGcm9tRE9N''@;'; + put 'put ''KCl7cmV0dXJuIFdkKCkuZ2V0QmFzZUhyZWYodGhpcy5fZG9jKX1vblBvcFN0YXRlKGgpe2NvbnN0IHY9V2QoKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsIndpbmRvdyIpO3JldHVybiB2LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixoLCExKSwoKT0+di5yZW1vdmVFdmVu''@;'; + put 'put ''dExpc3RlbmVyKCJwb3BzdGF0ZSIsaCl9b25IYXNoQ2hhbmdlKGgpe2NvbnN0IHY9V2QoKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsIndpbmRvdyIpO3JldHVybiB2LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGgsITEpLCgpPT52LnJlbW92ZUV2ZW50TGlzdGVuZXIo''@;'; + put 'put ''Imhhc2hjaGFuZ2UiLGgpfWdldCBocmVmKCl7cmV0dXJuIHRoaXMubG9jYXRpb24uaHJlZn1nZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5wcm90b2NvbH1nZXQgaG9zdG5hbWUoKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5ob3N0bmFtZX1nZXQgcG9ydCgpe3JldHVybiB0aGlz''@;'; + put 'put ''LmxvY2F0aW9uLnBvcnR9Z2V0IHBhdGhuYW1lKCl7cmV0dXJuIHRoaXMubG9jYXRpb24ucGF0aG5hbWV9Z2V0IHNlYXJjaCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLnNlYXJjaH1nZXQgaGFzaCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLmhhc2h9c2V0IHBhdGhuYW1lKGgpe3RoaXMubG9jYXRp''@;'; + put 'put ''b24ucGF0aG5hbWU9aH1wdXNoU3RhdGUoaCx2LHkpe29XKCk/dGhpcy5faGlzdG9yeS5wdXNoU3RhdGUoaCx2LHkpOnRoaXMubG9jYXRpb24uaGFzaD15fXJlcGxhY2VTdGF0ZShoLHYseSl7b1coKT90aGlzLl9oaXN0b3J5LnJlcGxhY2VTdGF0ZShoLHYseSk6dGhpcy5sb2NhdGlvbi5oYXNo''@;'; + put 'put ''PXl9Zm9yd2FyZCgpe3RoaXMuX2hpc3RvcnkuZm9yd2FyZCgpfWJhY2soKXt0aGlzLl9oaXN0b3J5LmJhY2soKX1oaXN0b3J5R28oaD0wKXt0aGlzLl9oaXN0b3J5LmdvKGgpfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX2hpc3Rvcnkuc3RhdGV9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlv''@;'; + put 'put ''bihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHBzKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGlGKCl7cmV0dXJuIG5ldyBpVyhDaShwcykpfSgpfSxwcm92aWRlZEluOiJwbGF0Zm9ybSJ9KSxkfSkoKTtmdW5jdGlvbiBvVygp''@;'; + put 'put ''e3JldHVybiEhd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlfWZ1bmN0aW9uIHJoKGQsZyl7aWYoMD09ZC5sZW5ndGgpcmV0dXJuIGc7aWYoMD09Zy5sZW5ndGgpcmV0dXJuIGQ7bGV0IGg9MDtyZXR1cm4gZC5lbmRzV2l0aCgiLyIpJiZoKyssZy5zdGFydHNXaXRoKCIvIikmJmgrKywyPT1oP2Qr''@;'; + put 'put ''Zy5zdWJzdHJpbmcoMSk6MT09aD9kK2c6ZCsiLyIrZ31mdW5jdGlvbiBvRihkKXtjb25zdCBnPWQubWF0Y2goLyN8XD98JC8pLGg9ZyYmZy5pbmRleHx8ZC5sZW5ndGg7cmV0dXJuIGQuc2xpY2UoMCxoLSgiLyI9PT1kW2gtMV0/MTowKSkrZC5zbGljZShoKX1mdW5jdGlvbiBucChkKXtyZXR1''@;'; + put 'put ''cm4gZCYmIj8iIT09ZFswXT8iPyIrZDpkfWxldCBONj0oKCk9PntjbGFzcyBke2hpc3RvcnlHbyhoKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tl''@;'; + put 'put ''bjpkLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gaDIobFcpfSxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO2NvbnN0IGFXPW5ldyB6ZSgiYXBwQmFzZUhyZWYiKTtsZXQgbFc9KCgpPT57Y2xhc3MgZCBleHRlbmRzIE42e2NvbnN0cnVjdG9yKGgsdil7dmFyIHksQyxJO3N1cGVyKCksdGhp''@;'; + put 'put ''cy5fcGxhdGZvcm1Mb2NhdGlvbj1oLHRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zPVtdLHRoaXMuX2Jhc2VIcmVmPW51bGwhPT0oST1udWxsIT09KHk9bnVsbCE9dj92OnRoaXMuX3BsYXRmb3JtTG9jYXRpb24uZ2V0QmFzZUhyZWZGcm9tRE9NKCkpJiZ2b2lkIDAhPT15P3k6bnVsbD09PShDPWgy''@;'; + put 'put ''KHBzKS5sb2NhdGlvbil8fHZvaWQgMD09PUM/dm9pZCAwOkMub3JpZ2luKSYmdm9pZCAwIT09ST9JOiIifW5nT25EZXN0cm95KCl7Zm9yKDt0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5sZW5ndGg7KXRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLnBvcCgpKCl9b25Qb3BTdGF0ZShoKXt0aGlzLl9y''@;'; + put 'put ''ZW1vdmVMaXN0ZW5lckZucy5wdXNoKHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ub25Qb3BTdGF0ZShoKSx0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uSGFzaENoYW5nZShoKSl9Z2V0QmFzZUhyZWYoKXtyZXR1cm4gdGhpcy5fYmFzZUhyZWZ9cHJlcGFyZUV4dGVybmFsVXJsKGgpe3JldHVybiBy''@;'; + put 'put ''aCh0aGlzLl9iYXNlSHJlZixoKX1wYXRoKGg9ITEpe2NvbnN0IHY9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZStucCh0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLnNlYXJjaCkseT10aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmhhc2g7cmV0dXJuIHkmJmg/YCR7dn0ke3l9YDp2fXB1c2hT''@;'; + put 'put ''dGF0ZShoLHYseSxDKXtjb25zdCBJPXRoaXMucHJlcGFyZUV4dGVybmFsVXJsKHkrbnAoQykpO3RoaXMuX3BsYXRmb3JtTG9jYXRpb24ucHVzaFN0YXRlKGgsdixJKX1yZXBsYWNlU3RhdGUoaCx2LHksQyl7Y29uc3QgST10aGlzLnByZXBhcmVFeHRlcm5hbFVybCh5K25wKEMpKTt0aGlzLl9w''@;'; + put 'put ''bGF0Zm9ybUxvY2F0aW9uLnJlcGxhY2VTdGF0ZShoLHYsSSl9Zm9yd2FyZCgpe3RoaXMuX3BsYXRmb3JtTG9jYXRpb24uZm9yd2FyZCgpfWJhY2soKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmJhY2soKX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmdldFN0YXRl''@;'; + put 'put ''KCl9aGlzdG9yeUdvKGg9MCl7dmFyIHYseTtudWxsPT09KHk9KHY9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbikuaGlzdG9yeUdvKXx8dm9pZCAwPT09eXx8eS5jYWxsKHYsaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHhUKSxDaShhVyw4KSl9''@;'; + put 'put ''LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksZH0pKCksUnJlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBONntjb25zdHJ1Y3RvcihoLHYpe3N1cGVyKCksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbj1oLHRoaXMuX2Jhc2VIcmVm''@;'; + put 'put ''PSIiLHRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zPVtdLG51bGwhPXYmJih0aGlzLl9iYXNlSHJlZj12KX1uZ09uRGVzdHJveSgpe2Zvcig7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMubGVuZ3RoOyl0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5wb3AoKSgpfW9uUG9wU3RhdGUoaCl7dGhpcy5fcmVt''@;'; + put 'put ''b3ZlTGlzdGVuZXJGbnMucHVzaCh0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uUG9wU3RhdGUoaCksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vbkhhc2hDaGFuZ2UoaCkpfWdldEJhc2VIcmVmKCl7cmV0dXJuIHRoaXMuX2Jhc2VIcmVmfXBhdGgoaD0hMSl7bGV0IHY9dGhpcy5fcGxhdGZvcm1M''@;'; + put 'put ''b2NhdGlvbi5oYXNoO3JldHVybiBudWxsPT12JiYodj0iIyIpLHYubGVuZ3RoPjA/di5zdWJzdHJpbmcoMSk6dn1wcmVwYXJlRXh0ZXJuYWxVcmwoaCl7Y29uc3Qgdj1yaCh0aGlzLl9iYXNlSHJlZixoKTtyZXR1cm4gdi5sZW5ndGg+MD8iIyIrdjp2fXB1c2hTdGF0ZShoLHYseSxDKXtsZXQg''@;'; + put 'put ''ST10aGlzLnByZXBhcmVFeHRlcm5hbFVybCh5K25wKEMpKTswPT1JLmxlbmd0aCYmKEk9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZSksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wdXNoU3RhdGUoaCx2LEkpfXJlcGxhY2VTdGF0ZShoLHYseSxDKXtsZXQgST10aGlzLnByZXBhcmVF''@;'; + put 'put ''eHRlcm5hbFVybCh5K25wKEMpKTswPT1JLmxlbmd0aCYmKEk9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZSksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5yZXBsYWNlU3RhdGUoaCx2LEkpfWZvcndhcmQoKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmZvcndhcmQoKX1iYWNrKCl7dGhp''@;'; + put 'put ''cy5fcGxhdGZvcm1Mb2NhdGlvbi5iYWNrKCl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5nZXRTdGF0ZSgpfWhpc3RvcnlHbyhoPTApe3ZhciB2LHk7bnVsbD09PSh5PSh2PXRoaXMuX3BsYXRmb3JtTG9jYXRpb24pLmhpc3RvcnlHbyl8fHZvaWQgMD09PXl8fHku''@;'; + put 'put ''Y2FsbCh2LGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaSh4VCksQ2koYVcsOCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLFY2PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhp''@;'; + put 'put ''cy5fc3ViamVjdD1uZXcgYXIsdGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzPVtdLHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj1udWxsLHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3k9aDtjb25zdCB2PXRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kuZ2V0QmFzZUhyZWYoKTt0aGlzLl9iYXNlSHJlZj1v''@;'; + put 'put ''RihFQyh2KSksdGhpcy5fbG9jYXRpb25TdHJhdGVneS5vblBvcFN0YXRlKHk9Pnt0aGlzLl9zdWJqZWN0LmVtaXQoe3VybDp0aGlzLnBhdGgoITApLHBvcDohMCxzdGF0ZTp5LnN0YXRlLHR5cGU6eS50eXBlfSl9KX1uZ09uRGVzdHJveSgpe3ZhciBoO251bGw9PT0oaD10aGlzLl91cmxDaGFu''@;'; + put 'put ''Z2VTdWJzY3JpcHRpb24pfHx2b2lkIDA9PT1ofHxoLnVuc3Vic2NyaWJlKCksdGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzPVtdfXBhdGgoaD0hMSl7cmV0dXJuIHRoaXMubm9ybWFsaXplKHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kucGF0aChoKSl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fbG9j''@;'; + put 'put ''YXRpb25TdHJhdGVneS5nZXRTdGF0ZSgpfWlzQ3VycmVudFBhdGhFcXVhbFRvKGgsdj0iIil7cmV0dXJuIHRoaXMucGF0aCgpPT10aGlzLm5vcm1hbGl6ZShoK25wKHYpKX1ub3JtYWxpemUoaCl7cmV0dXJuIGQuc3RyaXBUcmFpbGluZ1NsYXNoKGZ1bmN0aW9uIHVXKGQsZyl7cmV0dXJuIGQm''@;'; + put 'put ''Jmcuc3RhcnRzV2l0aChkKT9nLnN1YnN0cmluZyhkLmxlbmd0aCk6Z30odGhpcy5fYmFzZUhyZWYsRUMoaCkpKX1wcmVwYXJlRXh0ZXJuYWxVcmwoaCl7cmV0dXJuIGgmJiIvIiE9PWhbMF0mJihoPSIvIitoKSx0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LnByZXBhcmVFeHRlcm5hbFVybChoKX1n''@;'; + put 'put ''byhoLHY9IiIseT1udWxsKXt0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LnB1c2hTdGF0ZSh5LCIiLGgsdiksdGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHRoaXMucHJlcGFyZUV4dGVybmFsVXJsKGgrbnAodikpLHkpfXJlcGxhY2VTdGF0ZShoLHY9IiIseT1udWxsKXt0aGlzLl9sb2Nh''@;'; + put 'put ''dGlvblN0cmF0ZWd5LnJlcGxhY2VTdGF0ZSh5LCIiLGgsdiksdGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHRoaXMucHJlcGFyZUV4dGVybmFsVXJsKGgrbnAodikpLHkpfWZvcndhcmQoKXt0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LmZvcndhcmQoKX1iYWNrKCl7dGhpcy5fbG9jYXRp''@;'; + put 'put ''b25TdHJhdGVneS5iYWNrKCl9aGlzdG9yeUdvKGg9MCl7dmFyIHYseTtudWxsPT09KHk9KHY9dGhpcy5fbG9jYXRpb25TdHJhdGVneSkuaGlzdG9yeUdvKXx8dm9pZCAwPT09eXx8eS5jYWxsKHYsaCl9b25VcmxDaGFuZ2UoaCl7cmV0dXJuIHRoaXMuX3VybENoYW5nZUxpc3RlbmVycy5wdXNo''@;'; + put 'put ''KGgpLHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbnx8KHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj10aGlzLnN1YnNjcmliZSh2PT57dGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHYudXJsLHYuc3RhdGUpfSkpLCgpPT57dmFyIHY7Y29uc3QgeT10aGlzLl91cmxDaGFuZ2VM''@;'; + put 'put ''aXN0ZW5lcnMuaW5kZXhPZihoKTt0aGlzLl91cmxDaGFuZ2VMaXN0ZW5lcnMuc3BsaWNlKHksMSksMD09PXRoaXMuX3VybENoYW5nZUxpc3RlbmVycy5sZW5ndGgmJihudWxsPT09KHY9dGhpcy5fdXJsQ2hhbmdlU3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09dnx8di51bnN1YnNjcmliZSgpLHRo''@;'; + put 'put ''aXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj1udWxsKX19X25vdGlmeVVybENoYW5nZUxpc3RlbmVycyhoPSIiLHYpe3RoaXMuX3VybENoYW5nZUxpc3RlbmVycy5mb3JFYWNoKHk9PnkoaCx2KSl9c3Vic2NyaWJlKGgsdix5KXtyZXR1cm4gdGhpcy5fc3ViamVjdC5zdWJzY3JpYmUoe25leHQ6''@;'; + put 'put ''aCxlcnJvcjp2LGNvbXBsZXRlOnl9KX19cmV0dXJuIGQubm9ybWFsaXplUXVlcnlQYXJhbXM9bnAsZC5qb2luV2l0aFNsYXNoPXJoLGQuc3RyaXBUcmFpbGluZ1NsYXNoPW9GLGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koTjYpKX0sZC5cdTAyNzVwcm92PUFp''@;'; + put 'put ''KHt0b2tlbjpkLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gc1coKXtyZXR1cm4gbmV3IFY2KENpKE42KSl9KCl9LHByb3ZpZGVkSW46InJvb3QifSksZH0pKCk7ZnVuY3Rpb24gRUMoZCl7cmV0dXJuIGQucmVwbGFjZSgvXC9pbmRleC5odG1sJC8sIiIpfXZhciBOMj0oKCk9''@;'; + put 'put ''PigoTjI9TjJ8fHt9KVtOMi5Gb3JtYXQ9MF09IkZvcm1hdCIsTjJbTjIuU3RhbmRhbG9uZT0xXT0iU3RhbmRhbG9uZSIsTjIpKSgpLENsPSgoKT0+KChDbD1DbHx8e30pW0NsLk5hcnJvdz0wXT0iTmFycm93IixDbFtDbC5BYmJyZXZpYXRlZD0xXT0iQWJicmV2aWF0ZWQiLENsW0NsLldpZGU9''@;'; + put 'put ''Ml09IldpZGUiLENsW0NsLlNob3J0PTNdPSJTaG9ydCIsQ2wpKSgpLHAxPSgoKT0+KChwMT1wMXx8e30pW3AxLlNob3J0PTBdPSJTaG9ydCIscDFbcDEuTWVkaXVtPTFdPSJNZWRpdW0iLHAxW3AxLkxvbmc9Ml09IkxvbmciLHAxW3AxLkZ1bGw9M109IkZ1bGwiLHAxKSkoKTtmdW5jdGlvbiBy''@;'; + put 'put ''cChkLGcsaCl7Y29uc3Qgdj1yYyhkKSxDPVczKFt2W01vLkRheXNGb3JtYXRdLHZbTW8uRGF5c1N0YW5kYWxvbmVdXSxnKTtyZXR1cm4gVzMoQyxoKX1mdW5jdGlvbiBUVChkLGcsaCl7Y29uc3Qgdj1yYyhkKSxDPVczKFt2W01vLk1vbnRoc0Zvcm1hdF0sdltNby5Nb250aHNTdGFuZGFsb25l''@;'; + put 'put ''XV0sZyk7cmV0dXJuIFczKEMsaCl9ZnVuY3Rpb24gVzMoZCxnKXtmb3IobGV0IGg9ZztoPi0xO2gtLSlpZih2b2lkIDAhPT1kW2hdKXJldHVybiBkW2hdO3Rocm93IG5ldyBFcnJvcigiTG9jYWxlIGRhdGEgQVBJOiBsb2NhbGUgZGF0YSB1bmRlZmluZWQiKX1mdW5jdGlvbiB5VyhkLGcpe2c9''@;'; + put 'put ''ZW5jb2RlVVJJQ29tcG9uZW50KGcpO2Zvcihjb25zdCBoIG9mIGQuc3BsaXQoIjsiKSl7Y29uc3Qgdj1oLmluZGV4T2YoIj0iKSxbeSxDXT0tMT09dj9baCwiIl06W2guc2xpY2UoMCx2KSxoLnNsaWNlKHYrMSldO2lmKHkudHJpbSgpPT09ZylyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KEMp''@;'; + put 'put ''fXJldHVybiBudWxsfWxldCBsYz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuX2l0ZXJhYmxlRGlmZmVycz1oLHRoaXMuX2tleVZhbHVlRGlmZmVycz12LHRoaXMuX25nRWw9eSx0aGlzLl9yZW5kZXJlcj1DLHRoaXMuX2l0ZXJhYmxlRGlmZmVyPW51bGwsdGhpcy5f''@;'; + put 'put ''a2V5VmFsdWVEaWZmZXI9bnVsbCx0aGlzLl9pbml0aWFsQ2xhc3Nlcz1bXSx0aGlzLl9yYXdDbGFzcz1udWxsfXNldCBrbGFzcyhoKXt0aGlzLl9yZW1vdmVDbGFzc2VzKHRoaXMuX2luaXRpYWxDbGFzc2VzKSx0aGlzLl9pbml0aWFsQ2xhc3Nlcz0ic3RyaW5nIj09dHlwZW9mIGg/aC5zcGxp''@;'; + put 'put ''dCgvXHMrLyk6W10sdGhpcy5fYXBwbHlDbGFzc2VzKHRoaXMuX2luaXRpYWxDbGFzc2VzKSx0aGlzLl9hcHBseUNsYXNzZXModGhpcy5fcmF3Q2xhc3MpfXNldCBuZ0NsYXNzKGgpe3RoaXMuX3JlbW92ZUNsYXNzZXModGhpcy5fcmF3Q2xhc3MpLHRoaXMuX2FwcGx5Q2xhc3Nlcyh0aGlzLl9p''@;'; + put 'put ''bml0aWFsQ2xhc3NlcyksdGhpcy5faXRlcmFibGVEaWZmZXI9bnVsbCx0aGlzLl9rZXlWYWx1ZURpZmZlcj1udWxsLHRoaXMuX3Jhd0NsYXNzPSJzdHJpbmciPT10eXBlb2YgaD9oLnNwbGl0KC9ccysvKTpoLHRoaXMuX3Jhd0NsYXNzJiYoQmQodGhpcy5fcmF3Q2xhc3MpP3RoaXMuX2l0ZXJh''@;'; + put 'put ''YmxlRGlmZmVyPXRoaXMuX2l0ZXJhYmxlRGlmZmVycy5maW5kKHRoaXMuX3Jhd0NsYXNzKS5jcmVhdGUoKTp0aGlzLl9rZXlWYWx1ZURpZmZlcj10aGlzLl9rZXlWYWx1ZURpZmZlcnMuZmluZCh0aGlzLl9yYXdDbGFzcykuY3JlYXRlKCkpfW5nRG9DaGVjaygpe2lmKHRoaXMuX2l0ZXJhYmxl''@;'; + put 'put ''RGlmZmVyKXtjb25zdCBoPXRoaXMuX2l0ZXJhYmxlRGlmZmVyLmRpZmYodGhpcy5fcmF3Q2xhc3MpO2gmJnRoaXMuX2FwcGx5SXRlcmFibGVDaGFuZ2VzKGgpfWVsc2UgaWYodGhpcy5fa2V5VmFsdWVEaWZmZXIpe2NvbnN0IGg9dGhpcy5fa2V5VmFsdWVEaWZmZXIuZGlmZih0aGlzLl9yYXdD''@;'; + put 'put ''bGFzcyk7aCYmdGhpcy5fYXBwbHlLZXlWYWx1ZUNoYW5nZXMoaCl9fV9hcHBseUtleVZhbHVlQ2hhbmdlcyhoKXtoLmZvckVhY2hBZGRlZEl0ZW0odj0+dGhpcy5fdG9nZ2xlQ2xhc3Modi5rZXksdi5jdXJyZW50VmFsdWUpKSxoLmZvckVhY2hDaGFuZ2VkSXRlbSh2PT50aGlzLl90b2dnbGVD''@;'; + put 'put ''bGFzcyh2LmtleSx2LmN1cnJlbnRWYWx1ZSkpLGguZm9yRWFjaFJlbW92ZWRJdGVtKHY9Pnt2LnByZXZpb3VzVmFsdWUmJnRoaXMuX3RvZ2dsZUNsYXNzKHYua2V5LCExKX0pfV9hcHBseUl0ZXJhYmxlQ2hhbmdlcyhoKXtoLmZvckVhY2hBZGRlZEl0ZW0odj0+e2lmKCJzdHJpbmciIT10eXBl''@;'; + put 'put ''b2Ygdi5pdGVtKXRocm93IG5ldyBFcnJvcihgTmdDbGFzcyBjYW4gb25seSB0b2dnbGUgQ1NTIGNsYXNzZXMgZXhwcmVzc2VkIGFzIHN0cmluZ3MsIGdvdCAke21uKHYuaXRlbSl9YCk7dGhpcy5fdG9nZ2xlQ2xhc3Modi5pdGVtLCEwKX0pLGguZm9yRWFjaFJlbW92ZWRJdGVtKHY9PnRoaXMu''@;'; + put 'put ''X3RvZ2dsZUNsYXNzKHYuaXRlbSwhMSkpfV9hcHBseUNsYXNzZXMoaCl7aCYmKEFycmF5LmlzQXJyYXkoaCl8fGggaW5zdGFuY2VvZiBTZXQ/aC5mb3JFYWNoKHY9PnRoaXMuX3RvZ2dsZUNsYXNzKHYsITApKTpPYmplY3Qua2V5cyhoKS5mb3JFYWNoKHY9PnRoaXMuX3RvZ2dsZUNsYXNzKHYs''@;'; + put 'put ''ISFoW3ZdKSkpfV9yZW1vdmVDbGFzc2VzKGgpe2gmJihBcnJheS5pc0FycmF5KGgpfHxoIGluc3RhbmNlb2YgU2V0P2guZm9yRWFjaCh2PT50aGlzLl90b2dnbGVDbGFzcyh2LCExKSk6T2JqZWN0LmtleXMoaCkuZm9yRWFjaCh2PT50aGlzLl90b2dnbGVDbGFzcyh2LCExKSkpfV90b2dnbGVD''@;'; + put 'put ''bGFzcyhoLHYpeyhoPWgudHJpbSgpKSYmaC5zcGxpdCgvXHMrL2cpLmZvckVhY2goeT0+e3Y/dGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LHkpOnRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX25nRWwubmF0aXZlRWxlbWVudCx5KX0pfX1y''@;'; + put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChCQSksWHQoU0MpLFh0KGJvKSxYdChHYSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZ0NsYXNzIiwiIl1dLGlucHV0czp7a2xhc3M6WyJjbGFzcyIsImtsYXNzIl0sbmdD''@;'; + put 'put ''bGFzczoibmdDbGFzcyJ9LHN0YW5kYWxvbmU6ITB9KSxkfSkoKTtjbGFzcyBxcmV7Y29uc3RydWN0b3IoZyxoLHYseSl7dGhpcy4kaW1wbGljaXQ9Zyx0aGlzLm5nRm9yT2Y9aCx0aGlzLmluZGV4PXYsdGhpcy5jb3VudD15fWdldCBmaXJzdCgpe3JldHVybiAwPT09dGhpcy5pbmRleH1nZXQg''@;'; + put 'put ''bGFzdCgpe3JldHVybiB0aGlzLmluZGV4PT09dGhpcy5jb3VudC0xfWdldCBldmVuKCl7cmV0dXJuIHRoaXMuaW5kZXglMj09MH1nZXQgb2RkKCl7cmV0dXJuIXRoaXMuZXZlbn19bGV0IFpzPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuX3ZpZXdDb250YWluZXI9aCx0''@;'; + put 'put ''aGlzLl90ZW1wbGF0ZT12LHRoaXMuX2RpZmZlcnM9eSx0aGlzLl9uZ0Zvck9mPW51bGwsdGhpcy5fbmdGb3JPZkRpcnR5PSEwLHRoaXMuX2RpZmZlcj1udWxsfXNldCBuZ0Zvck9mKGgpe3RoaXMuX25nRm9yT2Y9aCx0aGlzLl9uZ0Zvck9mRGlydHk9ITB9c2V0IG5nRm9yVHJhY2tCeShoKXt0''@;'; + put 'put ''aGlzLl90cmFja0J5Rm49aH1nZXQgbmdGb3JUcmFja0J5KCl7cmV0dXJuIHRoaXMuX3RyYWNrQnlGbn1zZXQgbmdGb3JUZW1wbGF0ZShoKXtoJiYodGhpcy5fdGVtcGxhdGU9aCl9bmdEb0NoZWNrKCl7aWYodGhpcy5fbmdGb3JPZkRpcnR5KXt0aGlzLl9uZ0Zvck9mRGlydHk9ITE7Y29uc3Qg''@;'; + put 'put ''aD10aGlzLl9uZ0Zvck9mOyF0aGlzLl9kaWZmZXImJmgmJih0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKGgpLmNyZWF0ZSh0aGlzLm5nRm9yVHJhY2tCeSkpfWlmKHRoaXMuX2RpZmZlcil7Y29uc3QgaD10aGlzLl9kaWZmZXIuZGlmZih0aGlzLl9uZ0Zvck9mKTtoJiZ0aGlzLl9h''@;'; + put 'put ''cHBseUNoYW5nZXMoaCl9fV9hcHBseUNoYW5nZXMoaCl7Y29uc3Qgdj10aGlzLl92aWV3Q29udGFpbmVyO2guZm9yRWFjaE9wZXJhdGlvbigoeSxDLEkpPT57aWYobnVsbD09eS5wcmV2aW91c0luZGV4KXYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlLG5ldyBxcmUoeS5pdGVt''@;'; + put 'put ''LHRoaXMuX25nRm9yT2YsLTEsLTEpLG51bGw9PT1JP3ZvaWQgMDpJKTtlbHNlIGlmKG51bGw9PUkpdi5yZW1vdmUobnVsbD09PUM/dm9pZCAwOkMpO2Vsc2UgaWYobnVsbCE9PUMpe2NvbnN0IGo9di5nZXQoQyk7di5tb3ZlKGosSSksX1coaix5KX19KTtmb3IobGV0IHk9MCxDPXYubGVuZ3Ro''@;'; + put 'put ''O3k8Qzt5Kyspe2NvbnN0IGo9di5nZXQoeSkuY29udGV4dDtqLmluZGV4PXksai5jb3VudD1DLGoubmdGb3JPZj10aGlzLl9uZ0Zvck9mfWguZm9yRWFjaElkZW50aXR5Q2hhbmdlKHk9PntfVyh2LmdldCh5LmN1cnJlbnRJbmRleCkseSl9KX1zdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFy''@;'; + put 'put ''ZChoLHYpe3JldHVybiEwfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChVaSksWHQocXIpLFh0KEJBKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nRm9yIiwiIiwibmdGb3JPZiIsIiJdXSxpbnB1dHM6e25nRm9y''@;'; + put 'put ''T2Y6Im5nRm9yT2YiLG5nRm9yVHJhY2tCeToibmdGb3JUcmFja0J5IixuZ0ZvclRlbXBsYXRlOiJuZ0ZvclRlbXBsYXRlIn0sc3RhbmRhbG9uZTohMH0pLGR9KSgpO2Z1bmN0aW9uIF9XKGQsZyl7ZC5jb250ZXh0LiRpbXBsaWNpdD1nLml0ZW19bGV0IFZvPSgoKT0+e2NsYXNzIGR7Y29uc3Ry''@;'; + put 'put ''dWN0b3IoaCx2KXt0aGlzLl92aWV3Q29udGFpbmVyPWgsdGhpcy5fY29udGV4dD1uZXcgdGllLHRoaXMuX3RoZW5UZW1wbGF0ZVJlZj1udWxsLHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZj1udWxsLHRoaXMuX3RoZW5WaWV3UmVmPW51bGwsdGhpcy5fZWxzZVZpZXdSZWY9bnVsbCx0aGlzLl90aGVu''@;'; + put 'put ''VGVtcGxhdGVSZWY9dn1zZXQgbmdJZihoKXt0aGlzLl9jb250ZXh0LiRpbXBsaWNpdD10aGlzLl9jb250ZXh0Lm5nSWY9aCx0aGlzLl91cGRhdGVWaWV3KCl9c2V0IG5nSWZUaGVuKGgpe0NXKCJuZ0lmVGhlbiIsaCksdGhpcy5fdGhlblRlbXBsYXRlUmVmPWgsdGhpcy5fdGhlblZpZXdSZWY9''@;'; + put 'put ''bnVsbCx0aGlzLl91cGRhdGVWaWV3KCl9c2V0IG5nSWZFbHNlKGgpe0NXKCJuZ0lmRWxzZSIsaCksdGhpcy5fZWxzZVRlbXBsYXRlUmVmPWgsdGhpcy5fZWxzZVZpZXdSZWY9bnVsbCx0aGlzLl91cGRhdGVWaWV3KCl9X3VwZGF0ZVZpZXcoKXt0aGlzLl9jb250ZXh0LiRpbXBsaWNpdD90aGlz''@;'; + put 'put ''Ll90aGVuVmlld1JlZnx8KHRoaXMuX3ZpZXdDb250YWluZXIuY2xlYXIoKSx0aGlzLl9lbHNlVmlld1JlZj1udWxsLHRoaXMuX3RoZW5UZW1wbGF0ZVJlZiYmKHRoaXMuX3RoZW5WaWV3UmVmPXRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RoZW5UZW1wbGF0''@;'; + put 'put ''ZVJlZix0aGlzLl9jb250ZXh0KSkpOnRoaXMuX2Vsc2VWaWV3UmVmfHwodGhpcy5fdmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX3RoZW5WaWV3UmVmPW51bGwsdGhpcy5fZWxzZVRlbXBsYXRlUmVmJiYodGhpcy5fZWxzZVZpZXdSZWY9dGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJl''@;'; + put 'put ''ZGRlZFZpZXcodGhpcy5fZWxzZVRlbXBsYXRlUmVmLHRoaXMuX2NvbnRleHQpKSl9c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoaCx2KXtyZXR1cm4hMH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoVWkpLFh0KHFyKSl9LGQuXHUwMjc1''@;'; + put 'put ''ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nSWYiLCIiXV0saW5wdXRzOntuZ0lmOiJuZ0lmIixuZ0lmVGhlbjoibmdJZlRoZW4iLG5nSWZFbHNlOiJuZ0lmRWxzZSJ9LHN0YW5kYWxvbmU6ITB9KSxkfSkoKTtjbGFzcyB0aWV7Y29uc3RydWN0b3IoKXt0aGlzLiRpbXBsaWNpdD1u''@;'; + put 'put ''dWxsLHRoaXMubmdJZj1udWxsfX1mdW5jdGlvbiBDVyhkLGcpe2lmKGcmJiFnLmNyZWF0ZUVtYmVkZGVkVmlldyl0aHJvdyBuZXcgRXJyb3IoYCR7ZH0gbXVzdCBiZSBhIFRlbXBsYXRlUmVmLCBidXQgcmVjZWl2ZWQgJyR7bW4oZyl9Jy5gKX1jbGFzcyB2Rntjb25zdHJ1Y3RvcihnLGgpe3Ro''@;'; + put 'put ''aXMuX3ZpZXdDb250YWluZXJSZWY9Zyx0aGlzLl90ZW1wbGF0ZVJlZj1oLHRoaXMuX2NyZWF0ZWQ9ITF9Y3JlYXRlKCl7dGhpcy5fY3JlYXRlZD0hMCx0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZVJlZil9ZGVzdHJveSgpe3RoaXMuX2Ny''@;'; + put 'put ''ZWF0ZWQ9ITEsdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpfWVuZm9yY2VTdGF0ZShnKXtnJiYhdGhpcy5fY3JlYXRlZD90aGlzLmNyZWF0ZSgpOiFnJiZ0aGlzLl9jcmVhdGVkJiZ0aGlzLmRlc3Ryb3koKX19bGV0IFVkPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9k''@;'; + put 'put ''ZWZhdWx0VXNlZD0hMSx0aGlzLl9jYXNlQ291bnQ9MCx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9MCx0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkPSExfXNldCBuZ1N3aXRjaChoKXt0aGlzLl9uZ1N3aXRjaD1oLDA9PT10aGlzLl9jYXNlQ291bnQmJnRoaXMuX3VwZGF0ZURlZmF1bHRDYXNlcygh''@;'; + put 'put ''MCl9X2FkZENhc2UoKXtyZXR1cm4gdGhpcy5fY2FzZUNvdW50Kyt9X2FkZERlZmF1bHQoaCl7dGhpcy5fZGVmYXVsdFZpZXdzfHwodGhpcy5fZGVmYXVsdFZpZXdzPVtdKSx0aGlzLl9kZWZhdWx0Vmlld3MucHVzaChoKX1fbWF0Y2hDYXNlKGgpe2NvbnN0IHY9aD09dGhpcy5fbmdTd2l0Y2g7''@;'; + put 'put ''cmV0dXJuIHRoaXMuX2xhc3RDYXNlc01hdGNoZWQ9dGhpcy5fbGFzdENhc2VzTWF0Y2hlZHx8dix0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXgrKyx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9PT10aGlzLl9jYXNlQ291bnQmJih0aGlzLl91cGRhdGVEZWZhdWx0Q2FzZXMoIXRoaXMuX2xhc3RD''@;'; + put 'put ''YXNlc01hdGNoZWQpLHRoaXMuX2xhc3RDYXNlQ2hlY2tJbmRleD0wLHRoaXMuX2xhc3RDYXNlc01hdGNoZWQ9ITEpLHZ9X3VwZGF0ZURlZmF1bHRDYXNlcyhoKXtpZih0aGlzLl9kZWZhdWx0Vmlld3MmJmghPT10aGlzLl9kZWZhdWx0VXNlZCl7dGhpcy5fZGVmYXVsdFVzZWQ9aDtmb3IobGV0''@;'; + put 'put ''IHY9MDt2PHRoaXMuX2RlZmF1bHRWaWV3cy5sZW5ndGg7disrKXRoaXMuX2RlZmF1bHRWaWV3c1t2XS5lbmZvcmNlU3RhdGUoaCl9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwi''@;'; + put 'put ''bmdTd2l0Y2giLCIiXV0saW5wdXRzOntuZ1N3aXRjaDoibmdTd2l0Y2gifSxzdGFuZGFsb25lOiEwfSksZH0pKCksaXA9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5uZ1N3aXRjaD15LHkuX2FkZENhc2UoKSx0aGlzLl92aWV3PW5ldyB2RihoLHYpfW5nRG9DaGVjaygp''@;'; + put 'put ''e3RoaXMuX3ZpZXcuZW5mb3JjZVN0YXRlKHRoaXMubmdTd2l0Y2guX21hdGNoQ2FzZSh0aGlzLm5nU3dpdGNoQ2FzZSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChVaSksWHQocXIpLFh0KFVkLDkpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6''@;'; + put 'put ''ZCxzZWxlY3RvcnM6W1siIiwibmdTd2l0Y2hDYXNlIiwiIl1dLGlucHV0czp7bmdTd2l0Y2hDYXNlOiJuZ1N3aXRjaENhc2UifSxzdGFuZGFsb25lOiEwfSksZH0pKCksU1c9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5fbmdFbD1oLHRoaXMuX2RpZmZlcnM9dix0aGlz''@;'; + put 'put ''Ll9yZW5kZXJlcj15LHRoaXMuX25nU3R5bGU9bnVsbCx0aGlzLl9kaWZmZXI9bnVsbH1zZXQgbmdTdHlsZShoKXt0aGlzLl9uZ1N0eWxlPWgsIXRoaXMuX2RpZmZlciYmaCYmKHRoaXMuX2RpZmZlcj10aGlzLl9kaWZmZXJzLmZpbmQoaCkuY3JlYXRlKCkpfW5nRG9DaGVjaygpe2lmKHRoaXMu''@;'; + put 'put ''X2RpZmZlcil7Y29uc3QgaD10aGlzLl9kaWZmZXIuZGlmZih0aGlzLl9uZ1N0eWxlKTtoJiZ0aGlzLl9hcHBseUNoYW5nZXMoaCl9fV9zZXRTdHlsZShoLHYpe2NvbnN0W3ksQ109aC5zcGxpdCgiLiIpLEk9LTE9PT15LmluZGV4T2YoIi0iKT92b2lkIDA6ZnUuRGFzaENhc2U7bnVsbCE9dj90''@;'; + put 'put ''aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLl9uZ0VsLm5hdGl2ZUVsZW1lbnQseSxDP2Ake3Z9JHtDfWA6dixJKTp0aGlzLl9yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLl9uZ0VsLm5hdGl2ZUVsZW1lbnQseSxJKX1fYXBwbHlDaGFuZ2VzKGgpe2guZm9yRWFjaFJlbW92ZWRJdGVtKHY9''@;'; + put 'put ''PnRoaXMuX3NldFN0eWxlKHYua2V5LG51bGwpKSxoLmZvckVhY2hBZGRlZEl0ZW0odj0+dGhpcy5fc2V0U3R5bGUodi5rZXksdi5jdXJyZW50VmFsdWUpKSxoLmZvckVhY2hDaGFuZ2VkSXRlbSh2PT50aGlzLl9zZXRTdHlsZSh2LmtleSx2LmN1cnJlbnRWYWx1ZSkpfX1yZXR1cm4gZC5cdTAy''@;'; + put 'put ''NzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChibyksWHQoU0MpLFh0KEdhKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nU3R5bGUiLCIiXV0saW5wdXRzOntuZ1N0eWxlOiJuZ1N0eWxlIn0sc3RhbmRhbG9uZTohMH0pLGR9KSgpLFFkPSgo''@;'; + put 'put ''KT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5fdmlld0NvbnRhaW5lclJlZj1oLHRoaXMuX3ZpZXdSZWY9bnVsbCx0aGlzLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0PW51bGwsdGhpcy5uZ1RlbXBsYXRlT3V0bGV0PW51bGwsdGhpcy5uZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3I9bnVs''@;'; + put 'put ''bH1uZ09uQ2hhbmdlcyhoKXtpZihoLm5nVGVtcGxhdGVPdXRsZXR8fGgubmdUZW1wbGF0ZU91dGxldEluamVjdG9yKXtjb25zdCB2PXRoaXMuX3ZpZXdDb250YWluZXJSZWY7aWYodGhpcy5fdmlld1JlZiYmdi5yZW1vdmUodi5pbmRleE9mKHRoaXMuX3ZpZXdSZWYpKSx0aGlzLm5nVGVtcGxh''@;'; + put 'put ''dGVPdXRsZXQpe2NvbnN0e25nVGVtcGxhdGVPdXRsZXQ6eSxuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dDpDLG5nVGVtcGxhdGVPdXRsZXRJbmplY3RvcjpJfT10aGlzO3RoaXMuX3ZpZXdSZWY9di5jcmVhdGVFbWJlZGRlZFZpZXcoeSxDLEk/e2luamVjdG9yOkl9OnZvaWQgMCl9ZWxzZSB0aGlz''@;'; + put 'put ''Ll92aWV3UmVmPW51bGx9ZWxzZSB0aGlzLl92aWV3UmVmJiZoLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0JiZ0aGlzLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0JiYodGhpcy5fdmlld1JlZi5jb250ZXh0PXRoaXMubmdUZW1wbGF0ZU91dGxldENvbnRleHQpfX1yZXR1cm4gZC5cdTAyNzVmYWM9''@;'; + put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChVaSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZ1RlbXBsYXRlT3V0bGV0IiwiIl1dLGlucHV0czp7bmdUZW1wbGF0ZU91dGxldENvbnRleHQ6Im5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixuZ1RlbXBs''@;'; + put 'put ''YXRlT3V0bGV0OiJuZ1RlbXBsYXRlT3V0bGV0IixuZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3I6Im5nVGVtcGxhdGVPdXRsZXRJbmplY3RvciJ9LHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6W1AyXX0pLGR9KSgpO2NsYXNzIFBUe2NyZWF0ZVN1YnNjcmlwdGlvbihnLGgpe3JldHVybiBnLnN1YnNj''@;'; + put 'put ''cmliZSh7bmV4dDpoLGVycm9yOnY9Pnt0aHJvdyB2fX0pfWRpc3Bvc2UoZyl7Zy51bnN1YnNjcmliZSgpfX1jbGFzcyBGQ3tjcmVhdGVTdWJzY3JpcHRpb24oZyxoKXtyZXR1cm4gZy50aGVuKGgsdj0+e3Rocm93IHZ9KX1kaXNwb3NlKGcpe319Y29uc3QgSEM9bmV3IEZDLEI1PW5ldyBQVDts''@;'; + put 'put ''ZXQgV2g9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLl9sYXRlc3RWYWx1ZT1udWxsLHRoaXMuX3N1YnNjcmlwdGlvbj1udWxsLHRoaXMuX29iaj1udWxsLHRoaXMuX3N0cmF0ZWd5PW51bGwsdGhpcy5fcmVmPWh9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdWJzY3JpcHRpb24mJnRo''@;'; + put 'put ''aXMuX2Rpc3Bvc2UoKSx0aGlzLl9yZWY9bnVsbH10cmFuc2Zvcm0oaCl7cmV0dXJuIHRoaXMuX29iaj9oIT09dGhpcy5fb2JqPyh0aGlzLl9kaXNwb3NlKCksdGhpcy50cmFuc2Zvcm0oaCkpOnRoaXMuX2xhdGVzdFZhbHVlOihoJiZ0aGlzLl9zdWJzY3JpYmUoaCksdGhpcy5fbGF0ZXN0VmFs''@;'; + put 'put ''dWUpfV9zdWJzY3JpYmUoaCl7dGhpcy5fb2JqPWgsdGhpcy5fc3RyYXRlZ3k9dGhpcy5fc2VsZWN0U3RyYXRlZ3koaCksdGhpcy5fc3Vic2NyaXB0aW9uPXRoaXMuX3N0cmF0ZWd5LmNyZWF0ZVN1YnNjcmlwdGlvbihoLHY9PnRoaXMuX3VwZGF0ZUxhdGVzdFZhbHVlKGgsdikpfV9zZWxlY3RT''@;'; + put 'put ''dHJhdGVneShoKXtpZihWbShoKSlyZXR1cm4gSEM7aWYoQXgoaCkpcmV0dXJuIEI1O3Rocm93IGZ1bmN0aW9uIEpkKGQsZyl7cmV0dXJuIG5ldyBlbigyMTAwLCExKX0oKX1fZGlzcG9zZSgpe3RoaXMuX3N0cmF0ZWd5LmRpc3Bvc2UodGhpcy5fc3Vic2NyaXB0aW9uKSx0aGlzLl9sYXRlc3RW''@;'; + put 'put ''YWx1ZT1udWxsLHRoaXMuX3N1YnNjcmlwdGlvbj1udWxsLHRoaXMuX29iaj1udWxsfV91cGRhdGVMYXRlc3RWYWx1ZShoLHYpe2g9PT10aGlzLl9vYmomJih0aGlzLl9sYXRlc3RWYWx1ZT12LHRoaXMuX3JlZi5tYXJrRm9yQ2hlY2soKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbiho''@;'; + put 'put ''KXtyZXR1cm4gbmV3KGh8fGQpKFh0KGQxLDE2KSl9LGQuXHUwMjc1cGlwZT1Vcyh7bmFtZToiYXN5bmMiLHR5cGU6ZCxwdXJlOiExLHN0YW5kYWxvbmU6ITB9KSxkfSkoKSx4Vz0oKCk9PntjbGFzcyBke3RyYW5zZm9ybShoKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoaCxudWxsLDIpfX1yZXR1''@;'; + put 'put ''cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJqc29uIix0eXBlOmQscHVyZTohMSxzdGFuZGFsb25lOiEwfSksZH0pKCksTlQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmRpZmZlcnM9aCx0aGlzLmtl''@;'; + put 'put ''eVZhbHVlcz1bXSx0aGlzLmNvbXBhcmVGbj1iRn10cmFuc2Zvcm0oaCx2PWJGKXtpZighaHx8IShoIGluc3RhbmNlb2YgTWFwKSYmIm9iamVjdCIhPXR5cGVvZiBoKXJldHVybiBudWxsO3RoaXMuZGlmZmVyfHwodGhpcy5kaWZmZXI9dGhpcy5kaWZmZXJzLmZpbmQoaCkuY3JlYXRlKCkpO2Nv''@;'; + put 'put ''bnN0IHk9dGhpcy5kaWZmZXIuZGlmZihoKSxDPXYhPT10aGlzLmNvbXBhcmVGbjtyZXR1cm4geSYmKHRoaXMua2V5VmFsdWVzPVtdLHkuZm9yRWFjaEl0ZW0oST0+e3RoaXMua2V5VmFsdWVzLnB1c2goZnVuY3Rpb24gb2llKGQsZyl7cmV0dXJue2tleTpkLHZhbHVlOmd9fShJLmtleSxJLmN1''@;'; + put 'put ''cnJlbnRWYWx1ZSkpfSkpLCh5fHxDKSYmKHRoaXMua2V5VmFsdWVzLnNvcnQodiksdGhpcy5jb21wYXJlRm49diksdGhpcy5rZXlWYWx1ZXN9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KFNDLDE2KSl9LGQuXHUwMjc1cGlwZT1Vcyh7bmFtZToi''@;'; + put 'put ''a2V5dmFsdWUiLHR5cGU6ZCxwdXJlOiExLHN0YW5kYWxvbmU6ITB9KSxkfSkoKTtmdW5jdGlvbiBiRihkLGcpe2NvbnN0IGg9ZC5rZXksdj1nLmtleTtpZihoPT09dilyZXR1cm4gMDtpZih2b2lkIDA9PT1oKXJldHVybiAxO2lmKHZvaWQgMD09PXYpcmV0dXJuLTE7aWYobnVsbD09PWgpcmV0''@;'; + put 'put ''dXJuIDE7aWYobnVsbD09PXYpcmV0dXJuLTE7aWYoInN0cmluZyI9PXR5cGVvZiBoJiYic3RyaW5nIj09dHlwZW9mIHYpcmV0dXJuIGg8dj8tMToxO2lmKCJudW1iZXIiPT10eXBlb2YgaCYmIm51bWJlciI9PXR5cGVvZiB2KXJldHVybiBoLXY7aWYoImJvb2xlYW4iPT10eXBlb2YgaCYmImJv''@;'; + put 'put ''b2xlYW4iPT10eXBlb2YgdilyZXR1cm4gaDx2Py0xOjE7Y29uc3QgeT1TdHJpbmcoaCksQz1TdHJpbmcodik7cmV0dXJuIHk9PUM/MDp5PEM/LTE6MX1sZXQgYmE9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1''@;'; + put 'put ''bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7fSksZH0pKCk7Y29uc3QgSVc9ImJyb3dzZXIiO2Z1bmN0aW9uIFNsKGQpe3JldHVybiBkPT09SVd9bGV0IHVpZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLHByb3ZpZGVkSW46InJvb3QiLGZh''@;'; + put 'put ''Y3Rvcnk6KCk9Pm5ldyBPVyhDaShwcyksd2luZG93KX0pLGR9KSgpO2NsYXNzIE9Xe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5kb2N1bWVudD1nLHRoaXMud2luZG93PWgsdGhpcy5vZmZzZXQ9KCk9PlswLDBdfXNldE9mZnNldChnKXt0aGlzLm9mZnNldD1BcnJheS5pc0FycmF5KGcpPygpPT5n''@;'; + put 'put ''Omd9Z2V0U2Nyb2xsUG9zaXRpb24oKXtyZXR1cm4gdGhpcy5zdXBwb3J0c1Njcm9sbGluZygpP1t0aGlzLndpbmRvdy5wYWdlWE9mZnNldCx0aGlzLndpbmRvdy5wYWdlWU9mZnNldF06WzAsMF19c2Nyb2xsVG9Qb3NpdGlvbihnKXt0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkmJnRoaXMud2lu''@;'; + put 'put ''ZG93LnNjcm9sbFRvKGdbMF0sZ1sxXSl9c2Nyb2xsVG9BbmNob3IoZyl7aWYoIXRoaXMuc3VwcG9ydHNTY3JvbGxpbmcoKSlyZXR1cm47Y29uc3QgaD1mdW5jdGlvbiBjaWUoZCxnKXtjb25zdCBoPWQuZ2V0RWxlbWVudEJ5SWQoZyl8fGQuZ2V0RWxlbWVudHNCeU5hbWUoZylbMF07aWYoaCly''@;'; + put 'put ''ZXR1cm4gaDtpZigiZnVuY3Rpb24iPT10eXBlb2YgZC5jcmVhdGVUcmVlV2Fsa2VyJiZkLmJvZHkmJihkLmJvZHkuY3JlYXRlU2hhZG93Um9vdHx8ZC5ib2R5LmF0dGFjaFNoYWRvdykpe2NvbnN0IHY9ZC5jcmVhdGVUcmVlV2Fsa2VyKGQuYm9keSxOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCk7''@;'; + put 'put ''bGV0IHk9di5jdXJyZW50Tm9kZTtmb3IoO3k7KXtjb25zdCBDPXkuc2hhZG93Um9vdDtpZihDKXtjb25zdCBJPUMuZ2V0RWxlbWVudEJ5SWQoZyl8fEMucXVlcnlTZWxlY3RvcihgW25hbWU9IiR7Z30iXWApO2lmKEkpcmV0dXJuIEl9eT12Lm5leHROb2RlKCl9fXJldHVybiBudWxsfSh0aGlz''@;'; + put 'put ''LmRvY3VtZW50LGcpO2gmJih0aGlzLnNjcm9sbFRvRWxlbWVudChoKSxoLmZvY3VzKCkpfXNldEhpc3RvcnlTY3JvbGxSZXN0b3JhdGlvbihnKXtpZih0aGlzLnN1cHBvcnRTY3JvbGxSZXN0b3JhdGlvbigpKXtjb25zdCBoPXRoaXMud2luZG93Lmhpc3Rvcnk7aCYmaC5zY3JvbGxSZXN0b3Jh''@;'; + put 'put ''dGlvbiYmKGguc2Nyb2xsUmVzdG9yYXRpb249Zyl9fXNjcm9sbFRvRWxlbWVudChnKXtjb25zdCBoPWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj1oLmxlZnQrdGhpcy53aW5kb3cucGFnZVhPZmZzZXQseT1oLnRvcCt0aGlzLndpbmRvdy5wYWdlWU9mZnNldCxDPXRoaXMub2Zmc2V0KCk7''@;'; + put 'put ''dGhpcy53aW5kb3cuc2Nyb2xsVG8odi1DWzBdLHktQ1sxXSl9c3VwcG9ydFNjcm9sbFJlc3RvcmF0aW9uKCl7dHJ5e2lmKCF0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkpcmV0dXJuITE7Y29uc3QgZz1SVyh0aGlzLndpbmRvdy5oaXN0b3J5KXx8UlcoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRo''@;'; + put 'put ''aXMud2luZG93Lmhpc3RvcnkpKTtyZXR1cm4hKCFnfHwhZy53cml0YWJsZSYmIWcuc2V0KX1jYXRjaChnKXtyZXR1cm4hMX19c3VwcG9ydHNTY3JvbGxpbmcoKXt0cnl7cmV0dXJuISF0aGlzLndpbmRvdyYmISF0aGlzLndpbmRvdy5zY3JvbGxUbyYmInBhZ2VYT2Zmc2V0ImluIHRoaXMud2lu''@;'; + put 'put ''ZG93fWNhdGNoKGcpe3JldHVybiExfX19ZnVuY3Rpb24gUlcoZCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCwic2Nyb2xsUmVzdG9yYXRpb24iKX1jbGFzcyBCV3t9Y2xhc3MgQ0YgZXh0ZW5kcyBjbGFzcyBmaWUgZXh0ZW5kcyBjbGFzcyBMcmV7fXtjb25zdHJ1''@;'; + put 'put ''Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zdXBwb3J0c0RPTUV2ZW50cz0hMH19e3N0YXRpYyBtYWtlQ3VycmVudCgpeyFmdW5jdGlvbiBuVyhkKXtvN3x8KG83PWQpfShuZXcgQ0YpfW9uQW5kQ2FuY2VsKGcsaCx2KXtyZXR1cm4gZy5hZGRFdmVudExpc3RlbmVyKGgsdiwhMSks''@;'; + put 'put ''KCk9PntnLnJlbW92ZUV2ZW50TGlzdGVuZXIoaCx2LCExKX19ZGlzcGF0Y2hFdmVudChnLGgpe2cuZGlzcGF0Y2hFdmVudChoKX1yZW1vdmUoZyl7Zy5wYXJlbnROb2RlJiZnLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZyl9Y3JlYXRlRWxlbWVudChnLGgpe3JldHVybihoPWh8fHRoaXMuZ2V0''@;'; + put 'put ''RGVmYXVsdERvY3VtZW50KCkpLmNyZWF0ZUVsZW1lbnQoZyl9Y3JlYXRlSHRtbERvY3VtZW50KCl7cmV0dXJuIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiZmFrZVRpdGxlIil9Z2V0RGVmYXVsdERvY3VtZW50KCl7cmV0dXJuIGRvY3VtZW50fWlzRWxlbWVu''@;'; + put 'put ''dE5vZGUoZyl7cmV0dXJuIGcubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERX1pc1NoYWRvd1Jvb3QoZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50fWdldEdsb2JhbEV2ZW50VGFyZ2V0KGcsaCl7cmV0dXJuIndpbmRvdyI9PT1oP3dpbmRvdzoiZG9jdW1lbnQiPT09''@;'; + put 'put ''aD9nOiJib2R5Ij09PWg/Zy5ib2R5Om51bGx9Z2V0QmFzZUhyZWYoZyl7Y29uc3QgaD1mdW5jdGlvbiBoaWUoKXtyZXR1cm4gVkM9VkN8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJhc2UiKSxWQz9WQy5nZXRBdHRyaWJ1dGUoImhyZWYiKTpudWxsfSgpO3JldHVybiBudWxsPT1oP251bGw6''@;'; + put 'put ''ZnVuY3Rpb24gZGllKGQpe1ZUPVZUfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksVlQuc2V0QXR0cmlidXRlKCJocmVmIixkKTtjb25zdCBnPVZULnBhdGhuYW1lO3JldHVybiIvIj09PWcuY2hhckF0KDApP2c6YC8ke2d9YH0oaCl9cmVzZXRCYXNlRWxlbWVudCgpe1ZDPW51bGx9Z2V0''@;'; + put 'put ''VXNlckFnZW50KCl7cmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50fWdldENvb2tpZShnKXtyZXR1cm4geVcoZG9jdW1lbnQuY29va2llLGcpfX1sZXQgVlQsVkM9bnVsbDtjb25zdCBQVz1uZXcgemUoIlRSQU5TSVRJT05fSUQiKSxnaWU9W3twcm92aWRlOnZDLHVzZUZhY3Rvcnk6''@;'; + put 'put ''ZnVuY3Rpb24gcGllKGQsZyxoKXtyZXR1cm4oKT0+e2guZ2V0KGRUKS5kb25lUHJvbWlzZS50aGVuKCgpPT57Y29uc3Qgdj1XZCgpLHk9Zy5xdWVyeVNlbGVjdG9yQWxsKGBzdHlsZVtuZy10cmFuc2l0aW9uPSIke2R9Il1gKTtmb3IobGV0IEM9MDtDPHkubGVuZ3RoO0MrKyl2LnJlbW92ZSh5''@;'; + put 'put ''W0NdKX0pfX0sZGVwczpbUFcscHMsa3NdLG11bHRpOiEwfV07bGV0IHZpZT0oKCk9PntjbGFzcyBke2J1aWxkKCl7cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46''@;'; + put 'put ''ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgalQ9bmV3IHplKCJFdmVudE1hbmFnZXJQbHVnaW5zIik7bGV0IHU3PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLl96b25lPXYsdGhpcy5fZXZlbnROYW1lVG9QbHVnaW49bmV3IE1hcCxoLmZvckVhY2goeT0+''@;'; + put 'put ''eS5tYW5hZ2VyPXRoaXMpLHRoaXMuX3BsdWdpbnM9aC5zbGljZSgpLnJldmVyc2UoKX1hZGRFdmVudExpc3RlbmVyKGgsdix5KXtyZXR1cm4gdGhpcy5fZmluZFBsdWdpbkZvcih2KS5hZGRFdmVudExpc3RlbmVyKGgsdix5KX1hZGRHbG9iYWxFdmVudExpc3RlbmVyKGgsdix5KXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5fZmluZFBsdWdpbkZvcih2KS5hZGRHbG9iYWxFdmVudExpc3RlbmVyKGgsdix5KX1nZXRab25lKCl7cmV0dXJuIHRoaXMuX3pvbmV9X2ZpbmRQbHVnaW5Gb3IoaCl7Y29uc3Qgdj10aGlzLl9ldmVudE5hbWVUb1BsdWdpbi5nZXQoaCk7aWYodilyZXR1cm4gdjtjb25zdCB5PXRoaXMu''@;'; + put 'put ''X3BsdWdpbnM7Zm9yKGxldCBDPTA7Qzx5Lmxlbmd0aDtDKyspe2NvbnN0IEk9eVtDXTtpZihJLnN1cHBvcnRzKGgpKXJldHVybiB0aGlzLl9ldmVudE5hbWVUb1BsdWdpbi5zZXQoaCxJKSxJfXRocm93IG5ldyBFcnJvcihgTm8gZXZlbnQgbWFuYWdlciBwbHVnaW4gZm91bmQgZm9yIGV2ZW50''@;'; + put 'put ''ICR7aH1gKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koalQpLENpKF9sKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3Mga0Z7Y29uc3RydWN0b3IoZyl7dGhpcy5fZG9jPWd9YWRk''@;'; + put 'put ''R2xvYmFsRXZlbnRMaXN0ZW5lcihnLGgsdil7Y29uc3QgeT1XZCgpLmdldEdsb2JhbEV2ZW50VGFyZ2V0KHRoaXMuX2RvYyxnKTtpZigheSl0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGV2ZW50IHRhcmdldCAke3l9IGZvciBldmVudCAke2h9YCk7cmV0dXJuIHRoaXMuYWRkRXZlbnRM''@;'; + put 'put ''aXN0ZW5lcih5LGgsdil9fWxldCBGVz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fc3R5bGVzU2V0PW5ldyBTZXR9YWRkU3R5bGVzKGgpe2NvbnN0IHY9bmV3IFNldDtoLmZvckVhY2goeT0+e3RoaXMuX3N0eWxlc1NldC5oYXMoeSl8fCh0aGlzLl9zdHlsZXNTZXQuYWRkKHkp''@;'; + put 'put ''LHYuYWRkKHkpKX0pLHRoaXMub25TdHlsZXNBZGRlZCh2KX1vblN0eWxlc0FkZGVkKGgpe31nZXRBbGxTdHlsZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9zdHlsZXNTZXQpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92''@;'; + put 'put ''PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxqQz0oKCk9PntjbGFzcyBkIGV4dGVuZHMgRld7Y29uc3RydWN0b3IoaCl7c3VwZXIoKSx0aGlzLl9kb2M9aCx0aGlzLl9ob3N0Tm9kZXM9bmV3IE1hcCx0aGlzLl9ob3N0Tm9kZXMuc2V0KGguaGVhZCxbXSl9X2FkZFN0''@;'; + put 'put ''eWxlc1RvSG9zdChoLHYseSl7aC5mb3JFYWNoKEM9Pntjb25zdCBJPXRoaXMuX2RvYy5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0kudGV4dENvbnRlbnQ9Qyx5LnB1c2godi5hcHBlbmRDaGlsZChJKSl9KX1hZGRIb3N0KGgpe2NvbnN0IHY9W107dGhpcy5fYWRkU3R5bGVzVG9Ib3N0KHRoaXMu''@;'; + put 'put ''X3N0eWxlc1NldCxoLHYpLHRoaXMuX2hvc3ROb2Rlcy5zZXQoaCx2KX1yZW1vdmVIb3N0KGgpe2NvbnN0IHY9dGhpcy5faG9zdE5vZGVzLmdldChoKTt2JiZ2LmZvckVhY2goSFcpLHRoaXMuX2hvc3ROb2Rlcy5kZWxldGUoaCl9b25TdHlsZXNBZGRlZChoKXt0aGlzLl9ob3N0Tm9kZXMuZm9y''@;'; + put 'put ''RWFjaCgodix5KT0+e3RoaXMuX2FkZFN0eWxlc1RvSG9zdChoLHksdil9KX1uZ09uRGVzdHJveSgpe3RoaXMuX2hvc3ROb2Rlcy5mb3JFYWNoKGg9PmguZm9yRWFjaChIVykpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShwcykpfSxkLlx1MDI3''@;'; + put 'put ''NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2Z1bmN0aW9uIEhXKGQpe1dkKCkucmVtb3ZlKGQpfWNvbnN0IFNGPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIseGxpbms6Imh0''@;'; + put 'put ''dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iLG1hdGg6Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aE1MLyJ9LE1GPS8lQ09NUCUvZztmdW5j''@;'; + put 'put ''dGlvbiB6VChkLGcsaCl7Zm9yKGxldCB2PTA7djxnLmxlbmd0aDt2Kyspe2xldCB5PWdbdl07QXJyYXkuaXNBcnJheSh5KT96VChkLHksaCk6KHk9eS5yZXBsYWNlKE1GLGQpLGgucHVzaCh5KSl9cmV0dXJuIGh9ZnVuY3Rpb24gVlcoZCl7cmV0dXJuIGc9PntpZigiX19uZ1Vud3JhcF9fIj09''@;'; + put 'put ''PWcpcmV0dXJuIGQ7ITE9PT1kKGcpJiYoZy5wcmV2ZW50RGVmYXVsdCgpLGcucmV0dXJuVmFsdWU9ITEpfX1sZXQgR1Q9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5ldmVudE1hbmFnZXI9aCx0aGlzLnNoYXJlZFN0eWxlc0hvc3Q9dix0aGlzLmFwcElkPXksdGhpcy5y''@;'; + put 'put ''ZW5kZXJlckJ5Q29tcElkPW5ldyBNYXAsdGhpcy5kZWZhdWx0UmVuZGVyZXI9bmV3IEVGKGgpfWNyZWF0ZVJlbmRlcmVyKGgsdil7aWYoIWh8fCF2KXJldHVybiB0aGlzLmRlZmF1bHRSZW5kZXJlcjtzd2l0Y2godi5lbmNhcHN1bGF0aW9uKXtjYXNlIHgyLkVtdWxhdGVkOntsZXQgeT10aGlz''@;'; + put 'put ''LnJlbmRlcmVyQnlDb21wSWQuZ2V0KHYuaWQpO3JldHVybiB5fHwoeT1uZXcgQ2llKHRoaXMuZXZlbnRNYW5hZ2VyLHRoaXMuc2hhcmVkU3R5bGVzSG9zdCx2LHRoaXMuYXBwSWQpLHRoaXMucmVuZGVyZXJCeUNvbXBJZC5zZXQodi5pZCx5KSkseS5hcHBseVRvSG9zdChoKSx5fWNhc2UgMTpj''@;'; + put 'put ''YXNlIHgyLlNoYWRvd0RvbTpyZXR1cm4gbmV3IFdUKHRoaXMuZXZlbnRNYW5hZ2VyLHRoaXMuc2hhcmVkU3R5bGVzSG9zdCxoLHYpO2RlZmF1bHQ6aWYoIXRoaXMucmVuZGVyZXJCeUNvbXBJZC5oYXModi5pZCkpe2NvbnN0IHk9elQodi5pZCx2LnN0eWxlcyxbXSk7dGhpcy5zaGFyZWRTdHls''@;'; + put 'put ''ZXNIb3N0LmFkZFN0eWxlcyh5KSx0aGlzLnJlbmRlcmVyQnlDb21wSWQuc2V0KHYuaWQsdGhpcy5kZWZhdWx0UmVuZGVyZXIpfXJldHVybiB0aGlzLmRlZmF1bHRSZW5kZXJlcn19YmVnaW4oKXt9ZW5kKCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; + put 'put ''KShDaSh1NyksQ2koakMpLENpKEFDKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3MgRUZ7Y29uc3RydWN0b3IoZyl7dGhpcy5ldmVudE1hbmFnZXI9Zyx0aGlzLmRhdGE9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmRlc3Ryb3lO''@;'; + put 'put ''b2RlPW51bGx9ZGVzdHJveSgpe31jcmVhdGVFbGVtZW50KGcsaCl7cmV0dXJuIGg/ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFNGW2hdfHxoLGcpOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZyl9Y3JlYXRlQ29tbWVudChnKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudChnKX1jcmVh''@;'; + put 'put ''dGVUZXh0KGcpe3JldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShnKX1hcHBlbmRDaGlsZChnLGgpeyhaVyhnKT9nLmNvbnRlbnQ6ZykuYXBwZW5kQ2hpbGQoaCl9aW5zZXJ0QmVmb3JlKGcsaCx2KXtnJiYoWlcoZyk/Zy5jb250ZW50OmcpLmluc2VydEJlZm9yZShoLHYpfXJlbW92ZUNo''@;'; + put 'put ''aWxkKGcsaCl7ZyYmZy5yZW1vdmVDaGlsZChoKX1zZWxlY3RSb290RWxlbWVudChnLGgpe2xldCB2PSJzdHJpbmciPT10eXBlb2YgZz9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGcpOmc7aWYoIXYpdGhyb3cgbmV3IEVycm9yKGBUaGUgc2VsZWN0b3IgIiR7Z30iIGRpZCBub3QgbWF0Y2ggYW55''@;'; + put 'put ''IGVsZW1lbnRzYCk7cmV0dXJuIGh8fCh2LnRleHRDb250ZW50PSIiKSx2fXBhcmVudE5vZGUoZyl7cmV0dXJuIGcucGFyZW50Tm9kZX1uZXh0U2libGluZyhnKXtyZXR1cm4gZy5uZXh0U2libGluZ31zZXRBdHRyaWJ1dGUoZyxoLHYseSl7aWYoeSl7aD15KyI6IitoO2NvbnN0IEM9U0ZbeV07''@;'; + put 'put ''Qz9nLnNldEF0dHJpYnV0ZU5TKEMsaCx2KTpnLnNldEF0dHJpYnV0ZShoLHYpfWVsc2UgZy5zZXRBdHRyaWJ1dGUoaCx2KX1yZW1vdmVBdHRyaWJ1dGUoZyxoLHYpe2lmKHYpe2NvbnN0IHk9U0Zbdl07eT9nLnJlbW92ZUF0dHJpYnV0ZU5TKHksaCk6Zy5yZW1vdmVBdHRyaWJ1dGUoYCR7dn06''@;'; + put 'put ''JHtofWApfWVsc2UgZy5yZW1vdmVBdHRyaWJ1dGUoaCl9YWRkQ2xhc3MoZyxoKXtnLmNsYXNzTGlzdC5hZGQoaCl9cmVtb3ZlQ2xhc3MoZyxoKXtnLmNsYXNzTGlzdC5yZW1vdmUoaCl9c2V0U3R5bGUoZyxoLHYseSl7eSYoZnUuRGFzaENhc2V8ZnUuSW1wb3J0YW50KT9nLnN0eWxlLnNldFBy''@;'; + put 'put ''b3BlcnR5KGgsdix5JmZ1LkltcG9ydGFudD8iaW1wb3J0YW50IjoiIik6Zy5zdHlsZVtoXT12fXJlbW92ZVN0eWxlKGcsaCx2KXt2JmZ1LkRhc2hDYXNlP2cuc3R5bGUucmVtb3ZlUHJvcGVydHkoaCk6Zy5zdHlsZVtoXT0iIn1zZXRQcm9wZXJ0eShnLGgsdil7Z1toXT12fXNldFZhbHVlKGcs''@;'; + put 'put ''aCl7Zy5ub2RlVmFsdWU9aH1saXN0ZW4oZyxoLHYpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZz90aGlzLmV2ZW50TWFuYWdlci5hZGRHbG9iYWxFdmVudExpc3RlbmVyKGcsaCxWVyh2KSk6dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihnLGgsVlcodikpfX1mdW5jdGlvbiBa''@;'; + put 'put ''VyhkKXtyZXR1cm4iVEVNUExBVEUiPT09ZC50YWdOYW1lJiZ2b2lkIDAhPT1kLmNvbnRlbnR9Y2xhc3MgQ2llIGV4dGVuZHMgRUZ7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoZyksdGhpcy5jb21wb25lbnQ9djtjb25zdCBDPXpUKHkrIi0iK3YuaWQsdi5zdHlsZXMsW10pO2guYWRkU3R5''@;'; + put 'put ''bGVzKEMpLHRoaXMuY29udGVudEF0dHI9ZnVuY3Rpb24gd2llKGQpe3JldHVybiJfbmdjb250ZW50LSVDT01QJSIucmVwbGFjZShNRixkKX0oeSsiLSIrdi5pZCksdGhpcy5ob3N0QXR0cj1mdW5jdGlvbiBiaWUoZCl7cmV0dXJuIl9uZ2hvc3QtJUNPTVAlIi5yZXBsYWNlKE1GLGQpfSh5KyIt''@;'; + put 'put ''Iit2LmlkKX1hcHBseVRvSG9zdChnKXtzdXBlci5zZXRBdHRyaWJ1dGUoZyx0aGlzLmhvc3RBdHRyLCIiKX1jcmVhdGVFbGVtZW50KGcsaCl7Y29uc3Qgdj1zdXBlci5jcmVhdGVFbGVtZW50KGcsaCk7cmV0dXJuIHN1cGVyLnNldEF0dHJpYnV0ZSh2LHRoaXMuY29udGVudEF0dHIsIiIpLHZ9''@;'; + put 'put ''fWNsYXNzIFdUIGV4dGVuZHMgRUZ7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoZyksdGhpcy5zaGFyZWRTdHlsZXNIb3N0PWgsdGhpcy5ob3N0RWw9dix0aGlzLnNoYWRvd1Jvb3Q9di5hdHRhY2hTaGFkb3coe21vZGU6Im9wZW4ifSksdGhpcy5zaGFyZWRTdHlsZXNIb3N0LmFkZEhvc3Qo''@;'; + put 'put ''dGhpcy5zaGFkb3dSb290KTtjb25zdCBDPXpUKHkuaWQseS5zdHlsZXMsW10pO2ZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSsrKXtjb25zdCBqPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ai50ZXh0Q29udGVudD1DW0ldLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChqKX19''@;'; + put 'put ''bm9kZU9yU2hhZG93Um9vdChnKXtyZXR1cm4gZz09PXRoaXMuaG9zdEVsP3RoaXMuc2hhZG93Um9vdDpnfWRlc3Ryb3koKXt0aGlzLnNoYXJlZFN0eWxlc0hvc3QucmVtb3ZlSG9zdCh0aGlzLnNoYWRvd1Jvb3QpfWFwcGVuZENoaWxkKGcsaCl7cmV0dXJuIHN1cGVyLmFwcGVuZENoaWxkKHRo''@;'; + put 'put ''aXMubm9kZU9yU2hhZG93Um9vdChnKSxoKX1pbnNlcnRCZWZvcmUoZyxoLHYpe3JldHVybiBzdXBlci5pbnNlcnRCZWZvcmUodGhpcy5ub2RlT3JTaGFkb3dSb290KGcpLGgsdil9cmVtb3ZlQ2hpbGQoZyxoKXtyZXR1cm4gc3VwZXIucmVtb3ZlQ2hpbGQodGhpcy5ub2RlT3JTaGFkb3dSb290''@;'; + put 'put ''KGcpLGgpfXBhcmVudE5vZGUoZyl7cmV0dXJuIHRoaXMubm9kZU9yU2hhZG93Um9vdChzdXBlci5wYXJlbnROb2RlKHRoaXMubm9kZU9yU2hhZG93Um9vdChnKSkpfX1sZXQgelc9KCgpPT57Y2xhc3MgZCBleHRlbmRzIGtGe2NvbnN0cnVjdG9yKGgpe3N1cGVyKGgpfXN1cHBvcnRzKGgpe3Jl''@;'; + put 'put ''dHVybiEwfWFkZEV2ZW50TGlzdGVuZXIoaCx2LHkpe3JldHVybiBoLmFkZEV2ZW50TGlzdGVuZXIodix5LCExKSwoKT0+dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGgsdix5KX1yZW1vdmVFdmVudExpc3RlbmVyKGgsdix5KXtyZXR1cm4gaC5yZW1vdmVFdmVudExpc3RlbmVyKHYseSl9fXJl''@;'; + put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHBzKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgR1c9WyJhbHQiLCJjb250cm9sIiwibWV0YSIsInNoaWZ0Il0sU2llPXsiXGIiOiJCYWNr''@;'; + put 'put ''c3BhY2UiLCJcdCI6IlRhYiIsIlx4N2YiOiJEZWxldGUiLCJceDFiIjoiRXNjYXBlIixEZWw6IkRlbGV0ZSIsRXNjOiJFc2NhcGUiLExlZnQ6IkFycm93TGVmdCIsUmlnaHQ6IkFycm93UmlnaHQiLFVwOiJBcnJvd1VwIixEb3duOiJBcnJvd0Rvd24iLE1lbnU6IkNvbnRleHRNZW51IixTY3Jv''@;'; + put 'put ''bGw6IlNjcm9sbExvY2siLFdpbjoiT1MifSxXVz17QToiMSIsQjoiMiIsQzoiMyIsRDoiNCIsRToiNSIsRjoiNiIsRzoiNyIsSDoiOCIsSToiOSIsSjoiKiIsSzoiKyIsTToiLSIsTjoiLiIsTzoiLyIsImAiOiIwIiwiXHg5MCI6Ik51bUxvY2sifSxNaWU9e2FsdDpkPT5kLmFsdEtleSxjb250''@;'; + put 'put ''cm9sOmQ9PmQuY3RybEtleSxtZXRhOmQ9PmQubWV0YUtleSxzaGlmdDpkPT5kLnNoaWZ0S2V5fTtsZXQgRWllPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBrRntjb25zdHJ1Y3RvcihoKXtzdXBlcihoKX1zdXBwb3J0cyhoKXtyZXR1cm4gbnVsbCE9ZC5wYXJzZUV2ZW50TmFtZShoKX1hZGRFdmVu''@;'; + put 'put ''dExpc3RlbmVyKGgsdix5KXtjb25zdCBDPWQucGFyc2VFdmVudE5hbWUodiksST1kLmV2ZW50Q2FsbGJhY2soQy5mdWxsS2V5LHksdGhpcy5tYW5hZ2VyLmdldFpvbmUoKSk7cmV0dXJuIHRoaXMubWFuYWdlci5nZXRab25lKCkucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PldkKCkub25BbmRDYW5j''@;'; + put 'put ''ZWwoaCxDLmRvbUV2ZW50TmFtZSxJKSl9c3RhdGljIHBhcnNlRXZlbnROYW1lKGgpe2NvbnN0IHY9aC50b0xvd2VyQ2FzZSgpLnNwbGl0KCIuIikseT12LnNoaWZ0KCk7aWYoMD09PXYubGVuZ3RofHwia2V5ZG93biIhPT15JiYia2V5dXAiIT09eSlyZXR1cm4gbnVsbDtjb25zdCBDPWQuX25v''@;'; + put 'put ''cm1hbGl6ZUtleSh2LnBvcCgpKTtsZXQgST0iIjtpZihHVy5mb3JFYWNoKHVlPT57Y29uc3QgX2U9di5pbmRleE9mKHVlKTtfZT4tMSYmKHYuc3BsaWNlKF9lLDEpLEkrPXVlKyIuIil9KSxJKz1DLDAhPXYubGVuZ3RofHwwPT09Qy5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3Qgaj17fTtyZXR1''@;'; + put 'put ''cm4gai5kb21FdmVudE5hbWU9eSxqLmZ1bGxLZXk9SSxqfXN0YXRpYyBnZXRFdmVudEZ1bGxLZXkoaCl7bGV0IHY9IiIseT1mdW5jdGlvbiB4aWUoZCl7bGV0IGc9ZC5rZXk7aWYobnVsbD09Zyl7aWYoZz1kLmtleUlkZW50aWZpZXIsbnVsbD09ZylyZXR1cm4iVW5pZGVudGlmaWVkIjtnLnN0''@;'; + put 'put ''YXJ0c1dpdGgoIlUrIikmJihnPVN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoZy5zdWJzdHJpbmcoMiksMTYpKSwzPT09ZC5sb2NhdGlvbiYmV1cuaGFzT3duUHJvcGVydHkoZykmJihnPVdXW2ddKSl9cmV0dXJuIFNpZVtnXXx8Z30oaCk7cmV0dXJuIHk9eS50b0xvd2VyQ2FzZSgpLCIg''@;'; + put 'put ''Ij09PXk/eT0ic3BhY2UiOiIuIj09PXkmJih5PSJkb3QiKSxHVy5mb3JFYWNoKEM9PntDIT15JiYoMCxNaWVbQ10pKGgpJiYodis9QysiLiIpfSksdis9eSx2fXN0YXRpYyBldmVudENhbGxiYWNrKGgsdix5KXtyZXR1cm4gQz0+e2QuZ2V0RXZlbnRGdWxsS2V5KEMpPT09aCYmeS5ydW5HdWFy''@;'; + put 'put ''ZGVkKCgpPT52KEMpKX19c3RhdGljIF9ub3JtYWxpemVLZXkoaCl7cmV0dXJuImVzYyI9PT1oPyJlc2NhcGUiOmh9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHBzKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1''@;'; + put 'put ''ZmFjfSksZH0pKCk7Y29uc3QgWVc9W3twcm92aWRlOkQyLHVzZVZhbHVlOklXfSx7cHJvdmlkZTpWUCx1c2VWYWx1ZTpmdW5jdGlvbiBUaWUoKXtDRi5tYWtlQ3VycmVudCgpfSxtdWx0aTohMH0se3Byb3ZpZGU6cHMsdXNlRmFjdG9yeTpmdW5jdGlvbiBEaWUoKXtyZXR1cm4gZnVuY3Rpb24g''@;'; + put 'put ''X1IoZCl7cGI9ZH0oZG9jdW1lbnQpLGRvY3VtZW50fSxkZXBzOltdfV0sTGllPUpQKGVXLCJicm93c2VyIixZVyksVVc9bmV3IHplKCIiKSxRVz1be3Byb3ZpZGU6emgsdXNlQ2xhc3M6Y2xhc3MgbWlle2FkZFRvV2luZG93KGcpe1BsLmdldEFuZ3VsYXJUZXN0YWJpbGl0eT0odix5PSEwKT0+''@;'; + put 'put ''e2NvbnN0IEM9Zy5maW5kVGVzdGFiaWxpdHlJblRyZWUodix5KTtpZihudWxsPT1DKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgdGVzdGFiaWxpdHkgZm9yIGVsZW1lbnQuIik7cmV0dXJuIEN9LFBsLmdldEFsbEFuZ3VsYXJUZXN0YWJpbGl0aWVzPSgpPT5nLmdldEFsbFRlc3Rh''@;'; + put 'put ''YmlsaXRpZXMoKSxQbC5nZXRBbGxBbmd1bGFyUm9vdEVsZW1lbnRzPSgpPT5nLmdldEFsbFJvb3RFbGVtZW50cygpLFBsLmZyYW1ld29ya1N0YWJpbGl6ZXJzfHwoUGwuZnJhbWV3b3JrU3RhYmlsaXplcnM9W10pLFBsLmZyYW1ld29ya1N0YWJpbGl6ZXJzLnB1c2godj0+e2NvbnN0IHk9UGwu''@;'; + put 'put ''Z2V0QWxsQW5ndWxhclRlc3RhYmlsaXRpZXMoKTtsZXQgQz15Lmxlbmd0aCxJPSExO2NvbnN0IGo9ZnVuY3Rpb24odWUpe0k9SXx8dWUsQy0tLDA9PUMmJnYoSSl9O3kuZm9yRWFjaChmdW5jdGlvbih1ZSl7dWUud2hlblN0YWJsZShqKX0pfSl9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKGcsaCx2''@;'; + put 'put ''KXtpZihudWxsPT1oKXJldHVybiBudWxsO2NvbnN0IHk9Zy5nZXRUZXN0YWJpbGl0eShoKTtyZXR1cm4gbnVsbCE9eT95OnY/V2QoKS5pc1NoYWRvd1Jvb3QoaCk/dGhpcy5maW5kVGVzdGFiaWxpdHlJblRyZWUoZyxoLmhvc3QsITApOnRoaXMuZmluZFRlc3RhYmlsaXR5SW5UcmVlKGcsaC5w''@;'; + put 'put ''YXJlbnRFbGVtZW50LCEwKTpudWxsfX0sZGVwczpbXX0se3Byb3ZpZGU6eVQsdXNlQ2xhc3M6d1QsZGVwczpbX2wsWVAsemhdfSx7cHJvdmlkZTp3VCx1c2VDbGFzczp3VCxkZXBzOltfbCxZUCx6aF19XSxKVz1be3Byb3ZpZGU6dm0sdXNlVmFsdWU6InJvb3QifSx7cHJvdmlkZTp2Nix1c2VG''@;'; + put 'put ''YWN0b3J5OmZ1bmN0aW9uIElpZSgpe3JldHVybiBuZXcgdjZ9LGRlcHM6W119LHtwcm92aWRlOmpULHVzZUNsYXNzOnpXLG11bHRpOiEwLGRlcHM6W3BzLF9sLEQyXX0se3Byb3ZpZGU6alQsdXNlQ2xhc3M6RWllLG11bHRpOiEwLGRlcHM6W3BzXX0se3Byb3ZpZGU6R1QsdXNlQ2xhc3M6R1Qs''@;'; + put 'put ''ZGVwczpbdTcsakMsQUNdfSx7cHJvdmlkZTpTZCx1c2VFeGlzdGluZzpHVH0se3Byb3ZpZGU6RlcsdXNlRXhpc3Rpbmc6akN9LHtwcm92aWRlOmpDLHVzZUNsYXNzOmpDLGRlcHM6W3BzXX0se3Byb3ZpZGU6dTcsdXNlQ2xhc3M6dTcsZGVwczpbalQsX2xdfSx7cHJvdmlkZTpCVyx1c2VDbGFz''@;'; + put 'put ''czp2aWUsZGVwczpbXX0sW11dO2xldCBYVz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe31zdGF0aWMgd2l0aFNlcnZlclRyYW5zaXRpb24oaCl7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOlt7cHJvdmlkZTpBQyx1c2VWYWx1ZTpoLmFwcElkfSx7cHJvdmlkZTpQVyx1c2VFeGlz''@;'; + put 'put ''dGluZzpBQ30sZ2llXX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKFVXLDEyKSl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7cHJvdmlkZXJzOlsuLi5KVywuLi5RV10saW1wb3J0czpbYmEsTXJlXX0pLGR9KSgp''@;'; + put 'put ''LHpBPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5fZG9jPWh9Z2V0VGl0bGUoKXtyZXR1cm4gdGhpcy5fZG9jLnRpdGxlfXNldFRpdGxlKGgpe3RoaXMuX2RvYy50aXRsZT1ofHwiIn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2ko''@;'; + put 'put ''cHMpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZnVuY3Rpb24oaCl7bGV0IHY9bnVsbDtyZXR1cm4gdj1oP25ldyBoOmZ1bmN0aW9uIGFwKCl7cmV0dXJuIG5ldyB6QShDaShwcykpfSgpLHZ9LHByb3ZpZGVkSW46InJvb3QifSksZH0pKCk7InVuZGVmaW5lZCIhPXR5cGVv''@;'; + put 'put ''ZiB3aW5kb3cmJndpbmRvdztsZXQgYzc9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmZ1bmN0aW9uKGgpe2xldCB2PW51bGw7cmV0dXJuIHY9aD9uZXcoaHx8ZCk6''@;'; + put 'put ''Q2kodFkpLHZ9LHByb3ZpZGVkSW46InJvb3QifSksZH0pKCksdFk9KCgpPT57Y2xhc3MgZCBleHRlbmRzIGM3e2NvbnN0cnVjdG9yKGgpe3N1cGVyKCksdGhpcy5fZG9jPWh9c2FuaXRpemUoaCx2KXtpZihudWxsPT12KXJldHVybiBudWxsO3N3aXRjaChoKXtjYXNlIGEyLk5PTkU6cmV0dXJu''@;'; + put 'put ''IHY7Y2FzZSBhMi5IVE1MOnJldHVybiAkdSh2LCJIVE1MIik/ZDIodik6RXYodGhpcy5fZG9jLFN0cmluZyh2KSkudG9TdHJpbmcoKTtjYXNlIGEyLlNUWUxFOnJldHVybiAkdSh2LCJTdHlsZSIpP2QyKHYpOnY7Y2FzZSBhMi5TQ1JJUFQ6aWYoJHUodiwiU2NyaXB0IikpcmV0dXJuIGQyKHYp''@;'; + put 'put ''O3Rocm93IG5ldyBFcnJvcigidW5zYWZlIHZhbHVlIHVzZWQgaW4gYSBzY3JpcHQgY29udGV4dCIpO2Nhc2UgYTIuVVJMOnJldHVybiAkdSh2LCJVUkwiKT9kMih2KTp2ZihTdHJpbmcodikpO2Nhc2UgYTIuUkVTT1VSQ0VfVVJMOmlmKCR1KHYsIlJlc291cmNlVVJMIikpcmV0dXJuIGQyKHYp''@;'; + put 'put ''O3Rocm93IG5ldyBFcnJvcigidW5zYWZlIHZhbHVlIHVzZWQgaW4gYSByZXNvdXJjZSBVUkwgY29udGV4dCAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpIik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgU2VjdXJpdHlDb250ZXh0ICR7aH0gKHNlZSBodHRw''@;'; + put 'put ''czovL2cuY28vbmcvc2VjdXJpdHkjeHNzKWApfX1ieXBhc3NTZWN1cml0eVRydXN0SHRtbChoKXtyZXR1cm4gZnVuY3Rpb24geTMoZCl7cmV0dXJuIG5ldyBobShkKX0oaCl9YnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGgpe3JldHVybiBmdW5jdGlvbiBRZihkKXtyZXR1cm4gbmV3IG1hKGQp''@;'; + put 'put ''fShoKX1ieXBhc3NTZWN1cml0eVRydXN0U2NyaXB0KGgpe3JldHVybiBmdW5jdGlvbiBXbyhkKXtyZXR1cm4gbmV3IHU2KGQpfShoKX1ieXBhc3NTZWN1cml0eVRydXN0VXJsKGgpe3JldHVybiBmdW5jdGlvbiBkbShkKXtyZXR1cm4gbmV3IGhsKGQpfShoKX1ieXBhc3NTZWN1cml0eVRydXN0''@;'; + put 'put ''UmVzb3VyY2VVcmwoaCl7cmV0dXJuIGZ1bmN0aW9uIFFNKGQpe3JldHVybiBuZXcgVWYoZCl9KGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShwcykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpmdW5jdGlvbihoKXtsZXQg''@;'; + put 'put ''dj1udWxsO3JldHVybiB2PWg/bmV3IGg6ZnVuY3Rpb24gVmllKGQpe3JldHVybiBuZXcgdFkoZC5nZXQocHMpKX0oQ2koa3MpKSx2fSxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO0woNDI0NCksTCg3NzY1NyksTCg4ODgxMyksTCg1MzEwKSxMKDUxNzcxKSxMKDYyMzE0KSxMKDE2MzQzKSxM''@;'; + put 'put ''KDY4MTQ4KSxMKDc2NzcpLEwoODI2OTEpLEwoMjkxMzIpLEwoMTc4NzgpLEwoNTIyOTgpLEwoNDM0OTkpLEwoNjc3OTUpLEwoODg1ODMpLEwoNTQyNjEpO3ZhciBqaWU9TCg5MzE3Mik7d2luZG93Lmdsb2JhbD13aW5kb3csd2luZG93Lmdsb2JhbC5CdWZmZXI9d2luZG93Lmdsb2JhbC5CdWZm''@;'; + put 'put ''ZXJ8fGppZS5CdWZmZXIsd2luZG93LnByb2Nlc3M9e3ZlcnNpb246IiJ9O0woNTY3NzEpLEwoOTM4NzcpO2NvbnN0IG5pPXtyb290UGFyYW06IiIsZWRpdG9yOntzdGFydHVwU2V0OiExLHRyZWVOb2RlTGlicmFyaWVzOltdLGxpYnNBbmRUYWJsZXM6W10sbGlicmFyaWVzOltdLGxpYnJhcnk6''@;'; + put 'put ''IiIsdGFibGU6IiIsZmlsdGVyOntjb2xzOltdLHZhbHM6W10sZ3JvdXBMb2dpYzoiIix3aGVyZUNsYXVzZToiIixsaWJkczoiIixjbGF1c2VzOltdLHF1ZXJ5OltdfX0sdmlld2VyOntzdGFydHVwU2V0OiExLHRhYmxlc1NldDohMSxsaWJyYXJpZXM6W10sdGFibGVzOm51bGwsbGlicmFyeToi''@;'; + put 'put ''Iix0YWJsZToiIixsaWJpbmZvOltdLGxpYnJhcmllc1NlYXJjaDoiIixmaWx0ZXI6e2NvbHM6W10sdmFsczpbXSxncm91cExvZ2ljOiIiLHdoZXJlQ2xhdXNlOiIiLGxpYmRzOiIiLGNsYXVzZXM6W10scXVlcnk6W119LGN1cnJlbnRTZWxlY3Rpb246IiJ9LGxpbmVhZ2U6e2xpYnJhcnlMaXN0''@;'; + put 'put ''OltdLHRhYmxlc0xpc3Q6W10sY29sdW1uc0xpc3Q6W10sbGlicmFyaWVzU2VhcmNoOiIiLGxpYjoiIix0YWJsZToiIixjb2x1bW46IiIsY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGU6IiIsY3VycmVudExpbmVhZ2VQYXRoQ29sdW1uOiIifSxtZXRhZGF0YTp7bWV0YURhdGFMaXN0OnZvaWQg''@;'; + put 'put ''MCxtZXRhRGF0YVNlYXJjaDoiIixtZXRhT2JqZWN0TGlzdDpbXSxtZXRhT2JqZWN0U2VhcmNoOiIiLG1ldGFSZXBvc2l0b3JpZXM6dm9pZCAwLHNlbGVjdGVkUmVwb3NpdG9yeToiIn0sdXNlcm5hdjp7dXNlckxpc3Q6dm9pZCAwLHVzZXJTZWFyY2g6IiIsZ3JvdXBMaXN0OnZvaWQgMCxncm91''@;'; + put 'put ''cFNlYXJjaDoiIixyb2xlTGlzdDp2b2lkIDAscm9sZVNlYXJjaDoiIn0sb3BlcmF0b3JzOntudW1PcGVyYXRvcnM6WyI9IiwiPCIsIj4iLCI8PSIsIj49IiwiQkVUV0VFTiIsIklOIiwiTk9UIElOIiwiTkUiXSxjaGFyT3BlcmF0b3JzOlsiPSIsIjwiLCI+IiwiPD0iLCI+PSIsIkNPTlRBSU5T''@;'; + put 'put ''IiwiSU4iLCJOT1QgSU4iLCJORSJdfX07dmFyIFRsPUwoMTU0MzkpLEpUPUwubihUbCk7ZnVuY3Rpb24gVjIoZCxnLGgsdil7dmFyIEkseT1hcmd1bWVudHMubGVuZ3RoLEM9eTwzP2c6bnVsbD09PXY/dj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsaCk6djtpZigib2JqZWN0''@;'; + put 'put ''Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKUM9UmVmbGVjdC5kZWNvcmF0ZShkLGcsaCx2KTtlbHNlIGZvcih2YXIgaj1kLmxlbmd0aC0xO2o+PTA7ai0tKShJPWRbal0pJiYoQz0oeTwzP0koQyk6eT4zP0koZyxoLEMpOkkoZyxoKSl8fEMp''@;'; + put 'put ''O3JldHVybiB5PjMmJkMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLGgsQyksQ31mdW5jdGlvbiBubyhkLGcsaCx2KXtyZXR1cm4gbmV3KGh8fChoPVByb21pc2UpKShmdW5jdGlvbihDLEkpe2Z1bmN0aW9uIGooQmUpe3RyeXtfZSh2Lm5leHQoQmUpKX1jYXRjaChOZSl7SShOZSl9fWZ1bmN0''@;'; + put 'put ''aW9uIHVlKEJlKXt0cnl7X2Uodi50aHJvdyhCZSkpfWNhdGNoKE5lKXtJKE5lKX19ZnVuY3Rpb24gX2UoQmUpe0JlLmRvbmU/QyhCZS52YWx1ZSk6ZnVuY3Rpb24geShDKXtyZXR1cm4gQyBpbnN0YW5jZW9mIGg/QzpuZXcgaChmdW5jdGlvbihJKXtJKEMpfSl9KEJlLnZhbHVlKS50aGVuKGos''@;'; + put 'put ''dWUpfV9lKCh2PXYuYXBwbHkoZCxnfHxbXSkpLm5leHQoKSl9KX1mdW5jdGlvbiBhYSguLi5kKXtsZXQgZz1kW2QubGVuZ3RoLTFdO3JldHVybiB3dChnKT8oZC5wb3AoKSxVZShkLGcpKTpwcihkKX1jbGFzcyBjcyBleHRlbmRzICRle2NvbnN0cnVjdG9yKGcpe3N1cGVyKCksdGhpcy5fdmFs''@;'; + put 'put ''dWU9Z31nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSgpfV9zdWJzY3JpYmUoZyl7Y29uc3QgaD1zdXBlci5fc3Vic2NyaWJlKGcpO3JldHVybiBoJiYhaC5jbG9zZWQmJmcubmV4dCh0aGlzLl92YWx1ZSksaH1nZXRWYWx1ZSgpe2lmKHRoaXMuaGFzRXJyb3IpdGhyb3cgdGhpcy50''@;'; + put 'put ''aHJvd25FcnJvcjtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgRGU7cmV0dXJuIHRoaXMuX3ZhbHVlfW5leHQoZyl7c3VwZXIubmV4dCh0aGlzLl92YWx1ZT1nKX19Y2xhc3MgV2llIGV4dGVuZHMgentub3RpZnlOZXh0KGcsaCx2LHksQyl7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KGgpfW5vdGlm''@;'; + put 'put ''eUVycm9yKGcsaCl7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcihnKX1ub3RpZnlDb21wbGV0ZShnKXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9fWNsYXNzIFlpZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKCksdGhpcy5wYXJlbnQ9Zyx0aGlzLm91dGVyVmFsdWU9aCx0''@;'; + put 'put ''aGlzLm91dGVySW5kZXg9dix0aGlzLmluZGV4PTB9X25leHQoZyl7dGhpcy5wYXJlbnQubm90aWZ5TmV4dCh0aGlzLm91dGVyVmFsdWUsZyx0aGlzLm91dGVySW5kZXgsdGhpcy5pbmRleCsrLHRoaXMpfV9lcnJvcihnKXt0aGlzLnBhcmVudC5ub3RpZnlFcnJvcihnLHRoaXMpLHRoaXMudW5z''@;'; + put 'put ''dWJzY3JpYmUoKX1fY29tcGxldGUoKXt0aGlzLnBhcmVudC5ub3RpZnlDb21wbGV0ZSh0aGlzKSx0aGlzLnVuc3Vic2NyaWJlKCl9fWZ1bmN0aW9uIFVpZShkLGcsaCx2LHk9bmV3IFlpZShkLGgsdikpe2lmKCF5LmNsb3NlZClyZXR1cm4gZyBpbnN0YW5jZW9mIEY/Zy5zdWJzY3JpYmUoeSk6''@;'; + put 'put ''ZnQoZykoeSl9Y29uc3QgYVk9e307ZnVuY3Rpb24gJFQoLi4uZCl7bGV0IGcsaDtyZXR1cm4gd3QoZFtkLmxlbmd0aC0xXSkmJihoPWQucG9wKCkpLCJmdW5jdGlvbiI9PXR5cGVvZiBkW2QubGVuZ3RoLTFdJiYoZz1kLnBvcCgpKSwxPT09ZC5sZW5ndGgmJkFlKGRbMF0pJiYoZD1kWzBdKSxw''@;'; + put 'put ''cihkLGgpLmxpZnQobmV3IERGKGcpKX1jbGFzcyBERntjb25zdHJ1Y3RvcihnKXt0aGlzLnJlc3VsdFNlbGVjdG9yPWd9Y2FsbChnLGgpe3JldHVybiBoLnN1YnNjcmliZShuZXcgbFkoZyx0aGlzLnJlc3VsdFNlbGVjdG9yKSl9fWNsYXNzIGxZIGV4dGVuZHMgV2lle2NvbnN0cnVjdG9yKGcs''@;'; + put 'put ''aCl7c3VwZXIoZyksdGhpcy5yZXN1bHRTZWxlY3Rvcj1oLHRoaXMuYWN0aXZlPTAsdGhpcy52YWx1ZXM9W10sdGhpcy5vYnNlcnZhYmxlcz1bXX1fbmV4dChnKXt0aGlzLnZhbHVlcy5wdXNoKGFZKSx0aGlzLm9ic2VydmFibGVzLnB1c2goZyl9X2NvbXBsZXRlKCl7Y29uc3QgZz10aGlzLm9i''@;'; + put 'put ''c2VydmFibGVzLGg9Zy5sZW5ndGg7aWYoMD09PWgpdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpO2Vsc2V7dGhpcy5hY3RpdmU9aCx0aGlzLnRvUmVzcG9uZD1oO2ZvcihsZXQgdj0wO3Y8aDt2KyspdGhpcy5hZGQoVWllKHRoaXMsZ1t2XSx2b2lkIDAsdikpfX1ub3RpZnlDb21wbGV0ZShn''@;'; + put 'put ''KXswPT0odGhpcy5hY3RpdmUtPTEpJiZ0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9bm90aWZ5TmV4dChnLGgsdil7Y29uc3QgeT10aGlzLnZhbHVlcyxJPXRoaXMudG9SZXNwb25kP3lbdl09PT1hWT8tLXRoaXMudG9SZXNwb25kOnRoaXMudG9SZXNwb25kOjA7eVt2XT1oLDA9PT1JJiYo''@;'; + put 'put ''dGhpcy5yZXN1bHRTZWxlY3Rvcj90aGlzLl90cnlSZXN1bHRTZWxlY3Rvcih5KTp0aGlzLmRlc3RpbmF0aW9uLm5leHQoeS5zbGljZSgpKSl9X3RyeVJlc3VsdFNlbGVjdG9yKGcpe2xldCBoO3RyeXtoPXRoaXMucmVzdWx0U2VsZWN0b3IuYXBwbHkodGhpcyxnKX1jYXRjaCh2KXtyZXR1cm4g''@;'; + put 'put ''dm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHYpfXRoaXMuZGVzdGluYXRpb24ubmV4dChoKX19ZnVuY3Rpb24gTEYoLi4uZCl7cmV0dXJuIGZ1bmN0aW9uIFFpZSgpe3JldHVybiBxdCgxKX0oKShhYSguLi5kKSl9Y29uc3QgWUE9bmV3IEYoZD0+ZC5jb21wbGV0ZSgpKTtmdW5jdGlvbiBx''@;'; + put 'put ''VChkKXtyZXR1cm4gZD9mdW5jdGlvbiBKaWUoZCl7cmV0dXJuIG5ldyBGKGc9PmQuc2NoZWR1bGUoKCk9PmcuY29tcGxldGUoKSkpfShkKTpZQX1mdW5jdGlvbiBzWShkKXtyZXR1cm4gbmV3IEYoZz0+e2xldCBoO3RyeXtoPWQoKX1jYXRjaCh5KXtyZXR1cm4gdm9pZCBnLmVycm9yKHkpfXJl''@;'; + put 'put ''dHVybihoP2RuKGgpOnFUKCkpLnN1YnNjcmliZShnKX0pfWZ1bmN0aW9uIFVBKGQsZyl7cmV0dXJuIG5ldyBGKGc/aD0+Zy5zY2hlZHVsZShYaWUsMCx7ZXJyb3I6ZCxzdWJzY3JpYmVyOmh9KTpoPT5oLmVycm9yKGQpKX1mdW5jdGlvbiBYaWUoe2Vycm9yOmQsc3Vic2NyaWJlcjpnfSl7Zy5l''@;'; + put 'put ''cnJvcihkKX1jb25zdCBRQT0oKCk9PntmdW5jdGlvbiBkKCl7cmV0dXJuIEVycm9yLmNhbGwodGhpcyksdGhpcy5tZXNzYWdlPSJubyBlbGVtZW50cyBpbiBzZXF1ZW5jZSIsdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzfXJldHVybiBkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9y''@;'; + put 'put ''LnByb3RvdHlwZSksZH0pKCk7ZnVuY3Rpb24gWWgoZCxnKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZz9oPT5oLnBpcGUoWWgoKHYseSk9PmRuKGQodix5KSkucGlwZSh2dCgoQyxJKT0+Zyh2LEMseSxJKSkpKSk6aD0+aC5saWZ0KG5ldyBLaWUoZCkpfWNsYXNzIEtpZXtjb25zdHJ1Y3Rv''@;'; + put 'put ''cihnKXt0aGlzLnByb2plY3Q9Z31jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyB1WShnLHRoaXMucHJvamVjdCkpfX1jbGFzcyB1WSBleHRlbmRzIE5ue2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoZyksdGhpcy5wcm9qZWN0PWgsdGhpcy5pbmRleD0wfV9uZXh0KGcpe2xldCBoO2Nv''@;'; + put 'put ''bnN0IHY9dGhpcy5pbmRleCsrO3RyeXtoPXRoaXMucHJvamVjdChnLHYpfWNhdGNoKHkpe3JldHVybiB2b2lkIHRoaXMuZGVzdGluYXRpb24uZXJyb3IoeSl9dGhpcy5faW5uZXJTdWIoaCl9X2lubmVyU3ViKGcpe2NvbnN0IGg9dGhpcy5pbm5lclN1YnNjcmlwdGlvbjtoJiZoLnVuc3Vic2Ny''@;'; + put 'put ''aWJlKCk7Y29uc3Qgdj1uZXcgeW4odGhpcykseT10aGlzLmRlc3RpbmF0aW9uO3kuYWRkKHYpLHRoaXMuaW5uZXJTdWJzY3JpcHRpb249ZXIoZyx2KSx0aGlzLmlubmVyU3Vic2NyaXB0aW9uIT09diYmeS5hZGQodGhpcy5pbm5lclN1YnNjcmlwdGlvbil9X2NvbXBsZXRlKCl7Y29uc3R7aW5u''@;'; + put 'put ''ZXJTdWJzY3JpcHRpb246Z309dGhpczsoIWd8fGcuY2xvc2VkKSYmc3VwZXIuX2NvbXBsZXRlKCksdGhpcy51bnN1YnNjcmliZSgpfV91bnN1YnNjcmliZSgpe3RoaXMuaW5uZXJTdWJzY3JpcHRpb249dm9pZCAwfW5vdGlmeUNvbXBsZXRlKCl7dGhpcy5pbm5lclN1YnNjcmlwdGlvbj12b2lk''@;'; + put 'put ''IDAsdGhpcy5pc1N0b3BwZWQmJnN1cGVyLl9jb21wbGV0ZSgpfW5vdGlmeU5leHQoZyl7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpfX1jb25zdCBjWT0oKCk9PntmdW5jdGlvbiBkKCl7cmV0dXJuIEVycm9yLmNhbGwodGhpcyksdGhpcy5tZXNzYWdlPSJhcmd1bWVudCBvdXQgb2YgcmFuZ2Ui''@;'; + put 'put ''LHRoaXMubmFtZT0iQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLHRoaXN9cmV0dXJuIGQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxkfSkoKTtmdW5jdGlvbiBINShkKXtyZXR1cm4gZz0+MD09PWQ/cVQoKTpnLmxpZnQobmV3ICRpZShkKSl9Y2xhc3MgJGlle2Nv''@;'; + put 'put ''bnN0cnVjdG9yKGcpe2lmKHRoaXMudG90YWw9Zyx0aGlzLnRvdGFsPDApdGhyb3cgbmV3IGNZfWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IGZZKGcsdGhpcy50b3RhbCkpfX1jbGFzcyBmWSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnKSx0aGlzLnRvdGFsPWgs''@;'; + put 'put ''dGhpcy5jb3VudD0wfV9uZXh0KGcpe2NvbnN0IGg9dGhpcy50b3RhbCx2PSsrdGhpcy5jb3VudDt2PD1oJiYodGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpLHY9PT1oJiYodGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpLHRoaXMudW5zdWJzY3JpYmUoKSkpfX1mdW5jdGlvbiBONSguLi5kKXtj''@;'; + put 'put ''b25zdCBnPWRbZC5sZW5ndGgtMV07cmV0dXJuIHd0KGcpPyhkLnBvcCgpLGg9PkxGKGQsaCxnKSk6aD0+TEYoZCxoKX1mdW5jdGlvbiBMMihkLGcpe3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4gdi5saWZ0KG5ldyBxaWUoZCxnKSl9fWNsYXNzIHFpZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMu''@;'; + put 'put ''cHJlZGljYXRlPWcsdGhpcy50aGlzQXJnPWh9Y2FsbChnLGgpe3JldHVybiBoLnN1YnNjcmliZShuZXcgZTBlKGcsdGhpcy5wcmVkaWNhdGUsdGhpcy50aGlzQXJnKSl9fWNsYXNzIGUwZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKGcpLHRoaXMucHJlZGljYXRlPWgsdGhp''@;'; + put 'put ''cy50aGlzQXJnPXYsdGhpcy5jb3VudD0wfV9uZXh0KGcpe2xldCBoO3RyeXtoPXRoaXMucHJlZGljYXRlLmNhbGwodGhpcy50aGlzQXJnLGcsdGhpcy5jb3VudCsrKX1jYXRjaCh2KXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHYpfWgmJnRoaXMuZGVzdGluYXRpb24ubmV4''@;'; + put 'put ''dChnKX19ZnVuY3Rpb24gaDcoZD1udWxsKXtyZXR1cm4gZz0+Zy5saWZ0KG5ldyB0MGUoZCkpfWNsYXNzIHQwZXtjb25zdHJ1Y3RvcihnKXt0aGlzLmRlZmF1bHRWYWx1ZT1nfWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IG4wZShnLHRoaXMuZGVmYXVsdFZhbHVlKSl9fWNsYXNz''@;'; + put 'put ''IG4wZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnKSx0aGlzLmRlZmF1bHRWYWx1ZT1oLHRoaXMuaXNFbXB0eT0hMH1fbmV4dChnKXt0aGlzLmlzRW1wdHk9ITEsdGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpfV9jb21wbGV0ZSgpe3RoaXMuaXNFbXB0eSYmdGhpcy5kZXN0aW5h''@;'; + put 'put ''dGlvbi5uZXh0KHRoaXMuZGVmYXVsdFZhbHVlKSx0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9fWZ1bmN0aW9uIGhZKGQ9cFkpe3JldHVybiBnPT5nLmxpZnQobmV3IHIwZShkKSl9Y2xhc3MgcjBle2NvbnN0cnVjdG9yKGcpe3RoaXMuZXJyb3JGYWN0b3J5PWd9Y2FsbChnLGgpe3JldHVy''@;'; + put 'put ''biBoLnN1YnNjcmliZShuZXcgZFkoZyx0aGlzLmVycm9yRmFjdG9yeSkpfX1jbGFzcyBkWSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnKSx0aGlzLmVycm9yRmFjdG9yeT1oLHRoaXMuaGFzVmFsdWU9ITF9X25leHQoZyl7dGhpcy5oYXNWYWx1ZT0hMCx0aGlzLmRlc3RpbmF0''@;'; + put 'put ''aW9uLm5leHQoZyl9X2NvbXBsZXRlKCl7aWYodGhpcy5oYXNWYWx1ZSlyZXR1cm4gdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpO3tsZXQgZzt0cnl7Zz10aGlzLmVycm9yRmFjdG9yeSgpfWNhdGNoKGgpe2c9aH10aGlzLmRlc3RpbmF0aW9uLmVycm9yKGcpfX19ZnVuY3Rpb24gcFkoKXty''@;'; + put 'put ''ZXR1cm4gbmV3IFFBfWZ1bmN0aW9uIFkzKGQsZyl7Y29uc3QgaD1hcmd1bWVudHMubGVuZ3RoPj0yO3JldHVybiB2PT52LnBpcGUoZD9MMigoeSxDKT0+ZCh5LEMsdikpOlYsSDUoMSksaD9oNyhnKTpoWSgoKT0+bmV3IFFBKSl9ZnVuY3Rpb24gVjUoZCxnKXtyZXR1cm4gc3IoZCxnLDEpfWZ1''@;'; + put 'put ''bmN0aW9uIGo1KCl7fWZ1bmN0aW9uIEFhKGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuIHkubGlmdChuZXcgSkEoZCxnLGgpKX19Y2xhc3MgSkF7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMubmV4dE9yT2JzZXJ2ZXI9Zyx0aGlzLmVycm9yPWgsdGhpcy5jb21wbGV0ZT12fWNhbGwo''@;'; + put 'put ''ZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IGkwZShnLHRoaXMubmV4dE9yT2JzZXJ2ZXIsdGhpcy5lcnJvcix0aGlzLmNvbXBsZXRlKSl9fWNsYXNzIGkwZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoZyksdGhpcy5fdGFwTmV4dD1qNSx0aGlzLl90YXBFcnJvcj1q''@;'; + put 'put ''NSx0aGlzLl90YXBDb21wbGV0ZT1qNSx0aGlzLl90YXBFcnJvcj12fHxqNSx0aGlzLl90YXBDb21wbGV0ZT15fHxqNSxzZShoKT8odGhpcy5fY29udGV4dD10aGlzLHRoaXMuX3RhcE5leHQ9aCk6aCYmKHRoaXMuX2NvbnRleHQ9aCx0aGlzLl90YXBOZXh0PWgubmV4dHx8ajUsdGhpcy5fdGFw''@;'; + put 'put ''RXJyb3I9aC5lcnJvcnx8ajUsdGhpcy5fdGFwQ29tcGxldGU9aC5jb21wbGV0ZXx8ajUpfV9uZXh0KGcpe3RyeXt0aGlzLl90YXBOZXh0LmNhbGwodGhpcy5fY29udGV4dCxnKX1jYXRjaChoKXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGgpfXRoaXMuZGVzdGluYXRpb24u''@;'; + put 'put ''bmV4dChnKX1fZXJyb3IoZyl7dHJ5e3RoaXMuX3RhcEVycm9yLmNhbGwodGhpcy5fY29udGV4dCxnKX1jYXRjaChoKXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGgpfXRoaXMuZGVzdGluYXRpb24uZXJyb3IoZyl9X2NvbXBsZXRlKCl7dHJ5e3RoaXMuX3RhcENvbXBsZXRl''@;'; + put 'put ''LmNhbGwodGhpcy5fY29udGV4dCl9Y2F0Y2goZyl7cmV0dXJuIHZvaWQgdGhpcy5kZXN0aW5hdGlvbi5lcnJvcihnKX1yZXR1cm4gdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfX1mdW5jdGlvbiBaNShkKXtyZXR1cm4gZnVuY3Rpb24oaCl7Y29uc3Qgdj1uZXcgZ1koZCkseT1oLmxpZnQo''@;'; + put 'put ''dik7cmV0dXJuIHYuY2F1Z2h0PXl9fWNsYXNzIGdZe2NvbnN0cnVjdG9yKGcpe3RoaXMuc2VsZWN0b3I9Z31jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBvMGUoZyx0aGlzLnNlbGVjdG9yLHRoaXMuY2F1Z2h0KSl9fWNsYXNzIG8wZSBleHRlbmRzIE5ue2NvbnN0cnVjdG9yKGcs''@;'; + put 'put ''aCx2KXtzdXBlcihnKSx0aGlzLnNlbGVjdG9yPWgsdGhpcy5jYXVnaHQ9dn1lcnJvcihnKXtpZighdGhpcy5pc1N0b3BwZWQpe2xldCBoO3RyeXtoPXRoaXMuc2VsZWN0b3IoZyx0aGlzLmNhdWdodCl9Y2F0Y2goQyl7cmV0dXJuIHZvaWQgc3VwZXIuZXJyb3IoQyl9dGhpcy5fdW5zdWJzY3Jp''@;'; + put 'put ''YmVBbmRSZWN5Y2xlKCk7Y29uc3Qgdj1uZXcgeW4odGhpcyk7dGhpcy5hZGQodik7Y29uc3QgeT1lcihoLHYpO3khPT12JiZ0aGlzLmFkZCh5KX19fWZ1bmN0aW9uIGVJKGQsZyl7bGV0IGg9ITE7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+PTImJihoPSEwKSxmdW5jdGlvbih5KXtyZXR1cm4g''@;'; + put 'put ''eS5saWZ0KG5ldyBhMGUoZCxnLGgpKX19Y2xhc3MgYTBle2NvbnN0cnVjdG9yKGcsaCx2PSExKXt0aGlzLmFjY3VtdWxhdG9yPWcsdGhpcy5zZWVkPWgsdGhpcy5oYXNTZWVkPXZ9Y2FsbChnLGgpe3JldHVybiBoLnN1YnNjcmliZShuZXcgT0YoZyx0aGlzLmFjY3VtdWxhdG9yLHRoaXMuc2Vl''@;'; + put 'put ''ZCx0aGlzLmhhc1NlZWQpKX19Y2xhc3MgT0YgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcpLHRoaXMuYWNjdW11bGF0b3I9aCx0aGlzLl9zZWVkPXYsdGhpcy5oYXNTZWVkPXksdGhpcy5pbmRleD0wfWdldCBzZWVkKCl7cmV0dXJuIHRoaXMuX3NlZWR9c2V0IHNlZWQo''@;'; + put 'put ''Zyl7dGhpcy5oYXNTZWVkPSEwLHRoaXMuX3NlZWQ9Z31fbmV4dChnKXtpZih0aGlzLmhhc1NlZWQpcmV0dXJuIHRoaXMuX3RyeU5leHQoZyk7dGhpcy5zZWVkPWcsdGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpfV90cnlOZXh0KGcpe2NvbnN0IGg9dGhpcy5pbmRleCsrO2xldCB2O3RyeXt2PXRo''@;'; + put 'put ''aXMuYWNjdW11bGF0b3IodGhpcy5zZWVkLGcsaCl9Y2F0Y2goeSl7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcih5KX10aGlzLnNlZWQ9dix0aGlzLmRlc3RpbmF0aW9uLm5leHQodil9fWZ1bmN0aW9uIHo1KGQpe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gMD09PWQ/cVQoKTpoLmxpZnQobmV3''@;'; + put 'put ''IGwwZShkKSl9fWNsYXNzIGwwZXtjb25zdHJ1Y3RvcihnKXtpZih0aGlzLnRvdGFsPWcsdGhpcy50b3RhbDwwKXRocm93IG5ldyBjWX1jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBzMGUoZyx0aGlzLnRvdGFsKSl9fWNsYXNzIHMwZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxo''@;'; + put 'put ''KXtzdXBlcihnKSx0aGlzLnRvdGFsPWgsdGhpcy5yaW5nPW5ldyBBcnJheSx0aGlzLmNvdW50PTB9X25leHQoZyl7Y29uc3QgaD10aGlzLnJpbmcsdj10aGlzLnRvdGFsLHk9dGhpcy5jb3VudCsrO2gubGVuZ3RoPHY/aC5wdXNoKGcpOmhbeSV2XT1nfV9jb21wbGV0ZSgpe2NvbnN0IGc9dGhp''@;'; + put 'put ''cy5kZXN0aW5hdGlvbjtsZXQgaD10aGlzLmNvdW50O2lmKGg+MCl7Y29uc3Qgdj10aGlzLmNvdW50Pj10aGlzLnRvdGFsP3RoaXMudG90YWw6dGhpcy5jb3VudCx5PXRoaXMucmluZztmb3IobGV0IEM9MDtDPHY7QysrKXtjb25zdCBJPWgrKyV2O2cubmV4dCh5W0ldKX19Zy5jb21wbGV0ZSgp''@;'; + put 'put ''fX1mdW5jdGlvbiBtWShkLGcpe2NvbnN0IGg9YXJndW1lbnRzLmxlbmd0aD49MjtyZXR1cm4gdj0+di5waXBlKGQ/TDIoKHksQyk9PmQoeSxDLHYpKTpWLHo1KDEpLGg/aDcoZyk6aFkoKCk9Pm5ldyBRQSkpfWNsYXNzIGMwZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMucHJlZGljYXRlPWcsdGhp''@;'; + put 'put ''cy5pbmNsdXNpdmU9aH1jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBmMGUoZyx0aGlzLnByZWRpY2F0ZSx0aGlzLmluY2x1c2l2ZSkpfX1jbGFzcyBmMGUgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCx2KXtzdXBlcihnKSx0aGlzLnByZWRpY2F0ZT1oLHRoaXMuaW5jbHVzaXZl''@;'; + put 'put ''PXYsdGhpcy5pbmRleD0wfV9uZXh0KGcpe2NvbnN0IGg9dGhpcy5kZXN0aW5hdGlvbjtsZXQgdjt0cnl7dj10aGlzLnByZWRpY2F0ZShnLHRoaXMuaW5kZXgrKyl9Y2F0Y2goeSl7cmV0dXJuIHZvaWQgaC5lcnJvcih5KX10aGlzLm5leHRPckNvbXBsZXRlKGcsdil9bmV4dE9yQ29tcGxldGUo''@;'; + put 'put ''ZyxoKXtjb25zdCB2PXRoaXMuZGVzdGluYXRpb247Qm9vbGVhbihoKT92Lm5leHQoZyk6KHRoaXMuaW5jbHVzaXZlJiZ2Lm5leHQoZyksdi5jb21wbGV0ZSgpKX19ZnVuY3Rpb24gRzUoZCl7cmV0dXJuIGc9PmcubGlmdChuZXcgekMoZCkpfWNsYXNzIHpDe2NvbnN0cnVjdG9yKGcpe3RoaXMu''@;'; + put 'put ''dmFsdWU9Z31jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBYQShnLHRoaXMudmFsdWUpKX19Y2xhc3MgWEEgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoZyksdGhpcy52YWx1ZT1ofV9uZXh0KGcpe3RoaXMuZGVzdGluYXRpb24ubmV4dCh0aGlzLnZhbHVlKX19ZnVu''@;'; + put 'put ''Y3Rpb24gdEkoZCl7cmV0dXJuIGc9PmcubGlmdChuZXcgaDBlKGQpKX1jbGFzcyBoMGV7Y29uc3RydWN0b3IoZyl7dGhpcy5jYWxsYmFjaz1nfWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IHZZKGcsdGhpcy5jYWxsYmFjaykpfX1jbGFzcyB2WSBleHRlbmRzIHp7Y29uc3RydWN0''@;'; + put 'put ''b3IoZyxoKXtzdXBlcihnKSx0aGlzLmFkZChuZXcgVGUoaCkpfX1jb25zdCBqbD0icHJpbWFyeSI7Y2xhc3MgQVl7Y29uc3RydWN0b3IoZyl7dGhpcy5wYXJhbXM9Z3x8e319aGFzKGcpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5wYXJhbXMsZyl9''@;'; + put 'put ''Z2V0KGcpe2lmKHRoaXMuaGFzKGcpKXtjb25zdCBoPXRoaXMucGFyYW1zW2ddO3JldHVybiBBcnJheS5pc0FycmF5KGgpP2hbMF06aH1yZXR1cm4gbnVsbH1nZXRBbGwoZyl7aWYodGhpcy5oYXMoZykpe2NvbnN0IGg9dGhpcy5wYXJhbXNbZ107cmV0dXJuIEFycmF5LmlzQXJyYXkoaCk/aDpb''@;'; + put 'put ''aF19cmV0dXJuW119Z2V0IGtleXMoKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5wYXJhbXMpfX1mdW5jdGlvbiBkNyhkKXtyZXR1cm4gbmV3IEFZKGQpfWZ1bmN0aW9uIHlZKGQsZyxoKXtjb25zdCB2PWgucGF0aC5zcGxpdCgiLyIpO2lmKHYubGVuZ3RoPmQubGVuZ3RofHwiZnVsbCI9PT1o''@;'; + put 'put ''LnBhdGhNYXRjaCYmKGcuaGFzQ2hpbGRyZW4oKXx8di5sZW5ndGg8ZC5sZW5ndGgpKXJldHVybiBudWxsO2NvbnN0IHk9e307Zm9yKGxldCBDPTA7Qzx2Lmxlbmd0aDtDKyspe2NvbnN0IEk9dltDXSxqPWRbQ107aWYoSS5zdGFydHNXaXRoKCI6IikpeVtJLnN1YnN0cmluZygxKV09ajtlbHNl''@;'; + put 'put ''IGlmKEkhPT1qLnBhdGgpcmV0dXJuIG51bGx9cmV0dXJue2NvbnN1bWVkOmQuc2xpY2UoMCx2Lmxlbmd0aCkscG9zUGFyYW1zOnl9fWZ1bmN0aW9uIGxwKGQsZyl7Y29uc3QgaD1kP09iamVjdC5rZXlzKGQpOnZvaWQgMCx2PWc/T2JqZWN0LmtleXMoZyk6dm9pZCAwO2lmKCFofHwhdnx8aC5s''@;'; + put 'put ''ZW5ndGghPXYubGVuZ3RoKXJldHVybiExO2xldCB5O2ZvcihsZXQgQz0wO0M8aC5sZW5ndGg7QysrKWlmKHk9aFtDXSwhUkYoZFt5XSxnW3ldKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBSRihkLGcpe2lmKEFycmF5LmlzQXJyYXkoZCkmJkFycmF5LmlzQXJyYXkoZykpe2lmKGQubGVu''@;'; + put 'put ''Z3RoIT09Zy5sZW5ndGgpcmV0dXJuITE7Y29uc3QgaD1bLi4uZF0uc29ydCgpLHY9Wy4uLmddLnNvcnQoKTtyZXR1cm4gaC5ldmVyeSgoeSxDKT0+dltDXT09PXkpfXJldHVybiBkPT09Z31mdW5jdGlvbiBCRihkKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxkKX1m''@;'; + put 'put ''dW5jdGlvbiBQRihkKXtyZXR1cm4gZC5sZW5ndGg+MD9kW2QubGVuZ3RoLTFdOm51bGx9ZnVuY3Rpb24gVGMoZCxnKXtmb3IoY29uc3QgaCBpbiBkKWQuaGFzT3duUHJvcGVydHkoaCkmJmcoZFtoXSxoKX1mdW5jdGlvbiBCdShkKXtyZXR1cm4gUF8oZCk/ZDpWbShkKT9kbihQcm9taXNlLnJl''@;'; + put 'put ''c29sdmUoZCkpOmFhKGQpfWNvbnN0IGcwZT17ZXhhY3Q6ZnVuY3Rpb24gTkYoZCxnLGgpe2lmKCFwNyhkLnNlZ21lbnRzLGcuc2VnbWVudHMpfHwhR0MoZC5zZWdtZW50cyxnLnNlZ21lbnRzLGgpfHxkLm51bWJlck9mQ2hpbGRyZW4hPT1nLm51bWJlck9mQ2hpbGRyZW4pcmV0dXJuITE7Zm9y''@;'; + put 'put ''KGNvbnN0IHYgaW4gZy5jaGlsZHJlbilpZighZC5jaGlsZHJlblt2XXx8IU5GKGQuY2hpbGRyZW5bdl0sZy5jaGlsZHJlblt2XSxoKSlyZXR1cm4hMTtyZXR1cm4hMH0sc3Vic2V0Ol9ZfSxIRj17ZXhhY3Q6ZnVuY3Rpb24gbkkoZCxnKXtyZXR1cm4gbHAoZCxnKX0sc3Vic2V0OmZ1bmN0aW9u''@;'; + put 'put ''IFc1KGQsZyl7cmV0dXJuIE9iamVjdC5rZXlzKGcpLmxlbmd0aDw9T2JqZWN0LmtleXMoZCkubGVuZ3RoJiZPYmplY3Qua2V5cyhnKS5ldmVyeShoPT5SRihkW2hdLGdbaF0pKX0saWdub3JlZDooKT0+ITB9O2Z1bmN0aW9uIGJZKGQsZyxoKXtyZXR1cm4gZzBlW2gucGF0aHNdKGQucm9vdCxn''@;'; + put 'put ''LnJvb3QsaC5tYXRyaXhQYXJhbXMpJiZIRltoLnF1ZXJ5UGFyYW1zXShkLnF1ZXJ5UGFyYW1zLGcucXVlcnlQYXJhbXMpJiYhKCJleGFjdCI9PT1oLmZyYWdtZW50JiZkLmZyYWdtZW50IT09Zy5mcmFnbWVudCl9ZnVuY3Rpb24gX1koZCxnLGgpe3JldHVybiBDWShkLGcsZy5zZWdtZW50cyxo''@;'; + put 'put ''KX1mdW5jdGlvbiBDWShkLGcsaCx2KXtpZihkLnNlZ21lbnRzLmxlbmd0aD5oLmxlbmd0aCl7Y29uc3QgeT1kLnNlZ21lbnRzLnNsaWNlKDAsaC5sZW5ndGgpO3JldHVybiEoIXA3KHksaCl8fGcuaGFzQ2hpbGRyZW4oKXx8IUdDKHksaCx2KSl9aWYoZC5zZWdtZW50cy5sZW5ndGg9PT1oLmxl''@;'; + put 'put ''bmd0aCl7aWYoIXA3KGQuc2VnbWVudHMsaCl8fCFHQyhkLnNlZ21lbnRzLGgsdikpcmV0dXJuITE7Zm9yKGNvbnN0IHkgaW4gZy5jaGlsZHJlbilpZighZC5jaGlsZHJlblt5XXx8IV9ZKGQuY2hpbGRyZW5beV0sZy5jaGlsZHJlblt5XSx2KSlyZXR1cm4hMTtyZXR1cm4hMH17Y29uc3QgeT1o''@;'; + put 'put ''LnNsaWNlKDAsZC5zZWdtZW50cy5sZW5ndGgpLEM9aC5zbGljZShkLnNlZ21lbnRzLmxlbmd0aCk7cmV0dXJuISEocDcoZC5zZWdtZW50cyx5KSYmR0MoZC5zZWdtZW50cyx5LHYpJiZkLmNoaWxkcmVuW2psXSkmJkNZKGQuY2hpbGRyZW5bamxdLGcsQyx2KX19ZnVuY3Rpb24gR0MoZCxnLGgp''@;'; + put 'put ''e3JldHVybiBnLmV2ZXJ5KCh2LHkpPT5IRltoXShkW3ldLnBhcmFtZXRlcnMsdi5wYXJhbWV0ZXJzKSl9Y2xhc3MgWTV7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMucm9vdD1nLHRoaXMucXVlcnlQYXJhbXM9aCx0aGlzLmZyYWdtZW50PXZ9Z2V0IHF1ZXJ5UGFyYW1NYXAoKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5fcXVlcnlQYXJhbU1hcHx8KHRoaXMuX3F1ZXJ5UGFyYW1NYXA9ZDcodGhpcy5xdWVyeVBhcmFtcykpLHRoaXMuX3F1ZXJ5UGFyYW1NYXB9dG9TdHJpbmcoKXtyZXR1cm4ga1kuc2VyaWFsaXplKHRoaXMpfX1jbGFzcyBjbHtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuc2VnbWVudHM9Zyx0aGlz''@;'; + put 'put ''LmNoaWxkcmVuPWgsdGhpcy5wYXJlbnQ9bnVsbCxUYyhoLCh2LHkpPT52LnBhcmVudD10aGlzKX1oYXNDaGlsZHJlbigpe3JldHVybiB0aGlzLm51bWJlck9mQ2hpbGRyZW4+MH1nZXQgbnVtYmVyT2ZDaGlsZHJlbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmNoaWxkcmVuKS5sZW5ndGh9''@;'; + put 'put ''dG9TdHJpbmcoKXtyZXR1cm4gWUModGhpcyl9fWNsYXNzIFdDe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5wYXRoPWcsdGhpcy5wYXJhbWV0ZXJzPWh9Z2V0IHBhcmFtZXRlck1hcCgpe3JldHVybiB0aGlzLl9wYXJhbWV0ZXJNYXB8fCh0aGlzLl9wYXJhbWV0ZXJNYXA9ZDcodGhpcy5wYXJhbWV0''@;'; + put 'put ''ZXJzKSksdGhpcy5fcGFyYW1ldGVyTWFwfXRvU3RyaW5nKCl7cmV0dXJuIHJJKHRoaXMpfX1mdW5jdGlvbiBwNyhkLGcpe3JldHVybiBkLmxlbmd0aD09PWcubGVuZ3RoJiZkLmV2ZXJ5KChoLHYpPT5oLnBhdGg9PT1nW3ZdLnBhdGgpfWNsYXNzIFU1e31jbGFzcyBWRntwYXJzZShnKXtjb25z''@;'; + put 'put ''dCBoPW5ldyBNWShnKTtyZXR1cm4gbmV3IFk1KGgucGFyc2VSb290U2VnbWVudCgpLGgucGFyc2VRdWVyeVBhcmFtcygpLGgucGFyc2VGcmFnbWVudCgpKX1zZXJpYWxpemUoZyl7Y29uc3QgaD1gLyR7c3AoZy5yb290LCEwKX1gLHY9ZnVuY3Rpb24gaUkoZCl7Y29uc3QgZz1PYmplY3Qua2V5''@;'; + put 'put ''cyhkKS5tYXAoaD0+e2NvbnN0IHY9ZFtoXTtyZXR1cm4gQXJyYXkuaXNBcnJheSh2KT92Lm1hcCh5PT5gJHtYZChoKX09JHtYZCh5KX1gKS5qb2luKCImIik6YCR7WGQoaCl9PSR7WGQodil9YH0pLmZpbHRlcihoPT4hIWgpO3JldHVybiBnLmxlbmd0aD9gPyR7Zy5qb2luKCImIil9YDoiIn0o''@;'; + put 'put ''Zy5xdWVyeVBhcmFtcykseT0ic3RyaW5nIj09dHlwZW9mIGcuZnJhZ21lbnQ/YCMke2Z1bmN0aW9uIFNZKGQpe3JldHVybiBlbmNvZGVVUkkoZCl9KGcuZnJhZ21lbnQpfWA6IiI7cmV0dXJuYCR7aH0ke3Z9JHt5fWB9fWNvbnN0IGtZPW5ldyBWRjtmdW5jdGlvbiBZQyhkKXtyZXR1cm4gZC5z''@;'; + put 'put ''ZWdtZW50cy5tYXAoZz0+ckkoZykpLmpvaW4oIi8iKX1mdW5jdGlvbiBzcChkLGcpe2lmKCFkLmhhc0NoaWxkcmVuKCkpcmV0dXJuIFlDKGQpO2lmKGcpe2NvbnN0IGg9ZC5jaGlsZHJlbltqbF0/c3AoZC5jaGlsZHJlbltqbF0sITEpOiIiLHY9W107cmV0dXJuIFRjKGQuY2hpbGRyZW4sKHks''@;'; + put 'put ''Qyk9PntDIT09amwmJnYucHVzaChgJHtDfToke3NwKHksITEpfWApfSksdi5sZW5ndGg+MD9gJHtofSgke3Yuam9pbigiLy8iKX0pYDpofXtjb25zdCBoPWZ1bmN0aW9uIHYwZShkLGcpe2xldCBoPVtdO3JldHVybiBUYyhkLmNoaWxkcmVuLCh2LHkpPT57eT09PWpsJiYoaD1oLmNvbmNhdChn''@;'; + put 'put ''KHYseSkpKX0pLFRjKGQuY2hpbGRyZW4sKHYseSk9Pnt5IT09amwmJihoPWguY29uY2F0KGcodix5KSkpfSksaH0oZCwodix5KT0+eT09PWpsP1tzcChkLmNoaWxkcmVuW2psXSwhMSldOltgJHt5fToke3NwKHYsITEpfWBdKTtyZXR1cm4gMT09PU9iamVjdC5rZXlzKGQuY2hpbGRyZW4pLmxl''@;'; + put 'put ''bmd0aCYmbnVsbCE9ZC5jaGlsZHJlbltqbF0/YCR7WUMoZCl9LyR7aFswXX1gOmAke1lDKGQpfS8oJHtoLmpvaW4oIi8vIil9KWB9fWZ1bmN0aW9uIFUzKGQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZCkucmVwbGFjZSgvJTQwL2csIkAiKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBs''@;'; + put 'put ''YWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpfWZ1bmN0aW9uIFhkKGQpe3JldHVybiBVMyhkKS5yZXBsYWNlKC8lM0IvZ2ksIjsiKX1mdW5jdGlvbiBqRihkKXtyZXR1cm4gVTMoZCkucmVwbGFjZSgvXCgvZywiJTI4IikucmVwbGFjZSgvXCkvZywiJTI5IikucmVwbGFjZSgv''@;'; + put 'put ''JTI2L2dpLCImIil9ZnVuY3Rpb24gS0EoZCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChkKX1mdW5jdGlvbiBKYyhkKXtyZXR1cm4gS0EoZC5yZXBsYWNlKC9cKy9nLCIlMjAiKSl9ZnVuY3Rpb24gckkoZCl7cmV0dXJuYCR7akYoZC5wYXRoKX0ke2Z1bmN0aW9uIEEwZShkKXtyZXR1cm4g''@;'; + put 'put ''T2JqZWN0LmtleXMoZCkubWFwKGc9PmA7JHtqRihnKX09JHtqRihkW2ddKX1gKS5qb2luKCIiKX0oZC5wYXJhbWV0ZXJzKX1gfWNvbnN0IHkwZT0vXlteXC8oKT87PSNdKy87ZnVuY3Rpb24gVWgoZCl7Y29uc3QgZz1kLm1hdGNoKHkwZSk7cmV0dXJuIGc/Z1swXToiIn1jb25zdCBvST0vXlte''@;'; + put 'put ''PT8mI10rLyx6Nj0vXlteJiNdKy87Y2xhc3MgTVl7Y29uc3RydWN0b3IoZyl7dGhpcy51cmw9Zyx0aGlzLnJlbWFpbmluZz1nfXBhcnNlUm9vdFNlZ21lbnQoKXtyZXR1cm4gdGhpcy5jb25zdW1lT3B0aW9uYWwoIi8iKSwiIj09PXRoaXMucmVtYWluaW5nfHx0aGlzLnBlZWtTdGFydHNXaXRo''@;'; + put 'put ''KCI/Iil8fHRoaXMucGVla1N0YXJ0c1dpdGgoIiMiKT9uZXcgY2woW10se30pOm5ldyBjbChbXSx0aGlzLnBhcnNlQ2hpbGRyZW4oKSl9cGFyc2VRdWVyeVBhcmFtcygpe2NvbnN0IGc9e307aWYodGhpcy5jb25zdW1lT3B0aW9uYWwoIj8iKSlkb3t0aGlzLnBhcnNlUXVlcnlQYXJhbShnKX13''@;'; + put 'put ''aGlsZSh0aGlzLmNvbnN1bWVPcHRpb25hbCgiJiIpKTtyZXR1cm4gZ31wYXJzZUZyYWdtZW50KCl7cmV0dXJuIHRoaXMuY29uc3VtZU9wdGlvbmFsKCIjIik/ZGVjb2RlVVJJQ29tcG9uZW50KHRoaXMucmVtYWluaW5nKTpudWxsfXBhcnNlQ2hpbGRyZW4oKXtpZigiIj09PXRoaXMucmVtYWlu''@;'; + put 'put ''aW5nKXJldHVybnt9O3RoaXMuY29uc3VtZU9wdGlvbmFsKCIvIik7Y29uc3QgZz1bXTtmb3IodGhpcy5wZWVrU3RhcnRzV2l0aCgiKCIpfHxnLnB1c2godGhpcy5wYXJzZVNlZ21lbnQoKSk7dGhpcy5wZWVrU3RhcnRzV2l0aCgiLyIpJiYhdGhpcy5wZWVrU3RhcnRzV2l0aCgiLy8iKSYmIXRo''@;'; + put 'put ''aXMucGVla1N0YXJ0c1dpdGgoIi8oIik7KXRoaXMuY2FwdHVyZSgiLyIpLGcucHVzaCh0aGlzLnBhcnNlU2VnbWVudCgpKTtsZXQgaD17fTt0aGlzLnBlZWtTdGFydHNXaXRoKCIvKCIpJiYodGhpcy5jYXB0dXJlKCIvIiksaD10aGlzLnBhcnNlUGFyZW5zKCEwKSk7bGV0IHY9e307cmV0dXJu''@;'; + put 'put ''IHRoaXMucGVla1N0YXJ0c1dpdGgoIigiKSYmKHY9dGhpcy5wYXJzZVBhcmVucyghMSkpLChnLmxlbmd0aD4wfHxPYmplY3Qua2V5cyhoKS5sZW5ndGg+MCkmJih2W2psXT1uZXcgY2woZyxoKSksdn1wYXJzZVNlZ21lbnQoKXtjb25zdCBnPVVoKHRoaXMucmVtYWluaW5nKTtpZigiIj09PWcm''@;'; + put 'put ''JnRoaXMucGVla1N0YXJ0c1dpdGgoIjsiKSl0aHJvdyBuZXcgZW4oNDAwOSwhMSk7cmV0dXJuIHRoaXMuY2FwdHVyZShnKSxuZXcgV0MoS0EoZyksdGhpcy5wYXJzZU1hdHJpeFBhcmFtcygpKX1wYXJzZU1hdHJpeFBhcmFtcygpe2NvbnN0IGc9e307Zm9yKDt0aGlzLmNvbnN1bWVPcHRpb25h''@;'; + put 'put ''bCgiOyIpOyl0aGlzLnBhcnNlUGFyYW0oZyk7cmV0dXJuIGd9cGFyc2VQYXJhbShnKXtjb25zdCBoPVVoKHRoaXMucmVtYWluaW5nKTtpZighaClyZXR1cm47dGhpcy5jYXB0dXJlKGgpO2xldCB2PSIiO2lmKHRoaXMuY29uc3VtZU9wdGlvbmFsKCI9Iikpe2NvbnN0IHk9VWgodGhpcy5yZW1h''@;'; + put 'put ''aW5pbmcpO3kmJih2PXksdGhpcy5jYXB0dXJlKHYpKX1nW0tBKGgpXT1LQSh2KX1wYXJzZVF1ZXJ5UGFyYW0oZyl7Y29uc3QgaD1mdW5jdGlvbiBaRihkKXtjb25zdCBnPWQubWF0Y2gob0kpO3JldHVybiBnP2dbMF06IiJ9KHRoaXMucmVtYWluaW5nKTtpZighaClyZXR1cm47dGhpcy5jYXB0''@;'; + put 'put ''dXJlKGgpO2xldCB2PSIiO2lmKHRoaXMuY29uc3VtZU9wdGlvbmFsKCI9Iikpe2NvbnN0IEk9ZnVuY3Rpb24gdzBlKGQpe2NvbnN0IGc9ZC5tYXRjaCh6Nik7cmV0dXJuIGc/Z1swXToiIn0odGhpcy5yZW1haW5pbmcpO0kmJih2PUksdGhpcy5jYXB0dXJlKHYpKX1jb25zdCB5PUpjKGgpLEM9''@;'; + put 'put ''SmModik7aWYoZy5oYXNPd25Qcm9wZXJ0eSh5KSl7bGV0IEk9Z1t5XTtBcnJheS5pc0FycmF5KEkpfHwoST1bSV0sZ1t5XT1JKSxJLnB1c2goQyl9ZWxzZSBnW3ldPUN9cGFyc2VQYXJlbnMoZyl7Y29uc3QgaD17fTtmb3IodGhpcy5jYXB0dXJlKCIoIik7IXRoaXMuY29uc3VtZU9wdGlvbmFs''@;'; + put 'put ''KCIpIikmJnRoaXMucmVtYWluaW5nLmxlbmd0aD4wOyl7Y29uc3Qgdj1VaCh0aGlzLnJlbWFpbmluZykseT10aGlzLnJlbWFpbmluZ1t2Lmxlbmd0aF07aWYoIi8iIT09eSYmIikiIT09eSYmIjsiIT09eSl0aHJvdyBuZXcgZW4oNDAxMCwhMSk7bGV0IEM7di5pbmRleE9mKCI6Iik+LTE/KEM9''@;'; + put 'put ''di5zbGljZSgwLHYuaW5kZXhPZigiOiIpKSx0aGlzLmNhcHR1cmUoQyksdGhpcy5jYXB0dXJlKCI6IikpOmcmJihDPWpsKTtjb25zdCBJPXRoaXMucGFyc2VDaGlsZHJlbigpO2hbQ109MT09PU9iamVjdC5rZXlzKEkpLmxlbmd0aD9JW2psXTpuZXcgY2woW10sSSksdGhpcy5jb25zdW1lT3B0''@;'; + put 'put ''aW9uYWwoIi8vIil9cmV0dXJuIGh9cGVla1N0YXJ0c1dpdGgoZyl7cmV0dXJuIHRoaXMucmVtYWluaW5nLnN0YXJ0c1dpdGgoZyl9Y29uc3VtZU9wdGlvbmFsKGcpe3JldHVybiEhdGhpcy5wZWVrU3RhcnRzV2l0aChnKSYmKHRoaXMucmVtYWluaW5nPXRoaXMucmVtYWluaW5nLnN1YnN0cmlu''@;'; + put 'put ''ZyhnLmxlbmd0aCksITApfWNhcHR1cmUoZyl7aWYoIXRoaXMuY29uc3VtZU9wdGlvbmFsKGcpKXRocm93IG5ldyBlbig0MDExLCExKX19ZnVuY3Rpb24gYUkoZCl7cmV0dXJuIGQuc2VnbWVudHMubGVuZ3RoPjA/bmV3IGNsKFtdLHtbamxdOmR9KTpkfWZ1bmN0aW9uIGxJKGQpe2NvbnN0IGc9''@;'; + put 'put ''e307Zm9yKGNvbnN0IHYgb2YgT2JqZWN0LmtleXMoZC5jaGlsZHJlbikpe2NvbnN0IEM9bEkoZC5jaGlsZHJlblt2XSk7KEMuc2VnbWVudHMubGVuZ3RoPjB8fEMuaGFzQ2hpbGRyZW4oKSkmJihnW3ZdPUMpfXJldHVybiBmdW5jdGlvbiBiMGUoZCl7aWYoMT09PWQubnVtYmVyT2ZDaGlsZHJl''@;'; + put 'put ''biYmZC5jaGlsZHJlbltqbF0pe2NvbnN0IGc9ZC5jaGlsZHJlbltqbF07cmV0dXJuIG5ldyBjbChkLnNlZ21lbnRzLmNvbmNhdChnLnNlZ21lbnRzKSxnLmNoaWxkcmVuKX1yZXR1cm4gZH0obmV3IGNsKGQuc2VnbWVudHMsZykpfWZ1bmN0aW9uIGc3KGQpe3JldHVybiBkIGluc3RhbmNlb2Yg''@;'; + put 'put ''WTV9ZnVuY3Rpb24gazBlKGQsZyxoLHYseSl7dmFyIEM7aWYoMD09PWgubGVuZ3RoKXJldHVybiBxQShnLnJvb3QsZy5yb290LGcucm9vdCx2LHkpO2NvbnN0IGo9ZnVuY3Rpb24gekYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkWzBdJiYxPT09ZC5sZW5ndGgmJiIvIj09PWRbMF0pcmV0dXJu''@;'; + put 'put ''IG5ldyBFWSghMCwwLGQpO2xldCBnPTAsaD0hMTtjb25zdCB2PWQucmVkdWNlKCh5LEMsSSk9PntpZigib2JqZWN0Ij09dHlwZW9mIEMmJm51bGwhPUMpe2lmKEMub3V0bGV0cyl7Y29uc3Qgaj17fTtyZXR1cm4gVGMoQy5vdXRsZXRzLCh1ZSxfZSk9PntqW19lXT0ic3RyaW5nIj09dHlwZW9m''@;'; + put 'put ''IHVlP3VlLnNwbGl0KCIvIik6dWV9KSxbLi4ueSx7b3V0bGV0czpqfV19aWYoQy5zZWdtZW50UGF0aClyZXR1cm5bLi4ueSxDLnNlZ21lbnRQYXRoXX1yZXR1cm4ic3RyaW5nIiE9dHlwZW9mIEM/Wy4uLnksQ106MD09PUk/KEMuc3BsaXQoIi8iKS5mb3JFYWNoKChqLHVlKT0+ezA9PXVlJiYi''@;'; + put 'put ''LiI9PT1qfHwoMD09dWUmJiIiPT09aj9oPSEwOiIuLiI9PT1qP2crKzoiIiE9aiYmeS5wdXNoKGopKX0pLHkpOlsuLi55LENdfSxbXSk7cmV0dXJuIG5ldyBFWShoLGcsdil9KGgpO3JldHVybiBqLnRvUm9vdCgpP3FBKGcucm9vdCxnLnJvb3QsbmV3IGNsKFtdLHt9KSx2LHkpOmZ1bmN0aW9u''@;'; + put 'put ''IHVlKEJlKXt2YXIgTmU7Y29uc3QgS2U9ZnVuY3Rpb24gUzBlKGQsZyxoLHYpe2lmKGQuaXNBYnNvbHV0ZSlyZXR1cm4gbmV3IGV5KGcucm9vdCwhMCwwKTtpZigtMT09PXYpcmV0dXJuIG5ldyBleShoLGg9PT1nLnJvb3QsMCk7cmV0dXJuIGZ1bmN0aW9uIFdGKGQsZyxoKXtsZXQgdj1kLHk9''@;'; + put 'put ''ZyxDPWg7Zm9yKDtDPnk7KXtpZihDLT15LHY9di5wYXJlbnQsIXYpdGhyb3cgbmV3IGVuKDQwMDUsITEpO3k9di5zZWdtZW50cy5sZW5ndGh9cmV0dXJuIG5ldyBleSh2LCExLHktQyl9KGgsdisoJEEoZC5jb21tYW5kc1swXSk/MDoxKSxkLm51bWJlck9mRG91YmxlRG90cyl9KGosZyxudWxs''@;'; + put 'put ''PT09KE5lPWQuc25hcHNob3QpfHx2b2lkIDA9PT1OZT92b2lkIDA6TmUuX3VybFNlZ21lbnQsQmUpLGR0PUtlLnByb2Nlc3NDaGlsZHJlbj90eShLZS5zZWdtZW50R3JvdXAsS2UuaW5kZXgsai5jb21tYW5kcyk6dUkoS2Uuc2VnbWVudEdyb3VwLEtlLmluZGV4LGouY29tbWFuZHMpO3JldHVy''@;'; + put 'put ''biBxQShnLnJvb3QsS2Uuc2VnbWVudEdyb3VwLGR0LHYseSl9KG51bGw9PT0oQz1kLnNuYXBzaG90KXx8dm9pZCAwPT09Qz92b2lkIDA6Qy5fbGFzdFBhdGhJbmRleCl9ZnVuY3Rpb24gJEEoZCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT1kJiYhZC5vdXRsZXRzJiYhZC5zZWdt''@;'; + put 'put ''ZW50UGF0aH1mdW5jdGlvbiBRQyhkKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGQmJm51bGwhPWQmJmQub3V0bGV0c31mdW5jdGlvbiBxQShkLGcsaCx2LHkpe2xldCBJLEM9e307diYmVGModiwodWUsX2UpPT57Q1tfZV09QXJyYXkuaXNBcnJheSh1ZSk/dWUubWFwKEJlPT5gJHtCZX1gKTpg''@;'; + put 'put ''JHt1ZX1gfSksST1kPT09Zz9oOnNJKGQsZyxoKTtjb25zdCBqPWFJKGxJKEkpKTtyZXR1cm4gbmV3IFk1KGosQyx5KX1mdW5jdGlvbiBzSShkLGcsaCl7Y29uc3Qgdj17fTtyZXR1cm4gVGMoZC5jaGlsZHJlbiwoeSxDKT0+e3ZbQ109eT09PWc/aDpzSSh5LGcsaCl9KSxuZXcgY2woZC5zZWdt''@;'; + put 'put ''ZW50cyx2KX1jbGFzcyBFWXtjb25zdHJ1Y3RvcihnLGgsdil7aWYodGhpcy5pc0Fic29sdXRlPWcsdGhpcy5udW1iZXJPZkRvdWJsZURvdHM9aCx0aGlzLmNvbW1hbmRzPXYsZyYmdi5sZW5ndGg+MCYmJEEodlswXSkpdGhyb3cgbmV3IGVuKDQwMDMsITEpO2NvbnN0IHk9di5maW5kKFFDKTtp''@;'; + put 'put ''Zih5JiZ5IT09UEYodikpdGhyb3cgbmV3IGVuKDQwMDQsITEpfXRvUm9vdCgpe3JldHVybiB0aGlzLmlzQWJzb2x1dGUmJjE9PT10aGlzLmNvbW1hbmRzLmxlbmd0aCYmIi8iPT10aGlzLmNvbW1hbmRzWzBdfX1jbGFzcyBleXtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5zZWdtZW50R3JvdXA9''@;'; + put 'put ''Zyx0aGlzLnByb2Nlc3NDaGlsZHJlbj1oLHRoaXMuaW5kZXg9dn19ZnVuY3Rpb24gdUkoZCxnLGgpe2lmKGR8fChkPW5ldyBjbChbXSx7fSkpLDA9PT1kLnNlZ21lbnRzLmxlbmd0aCYmZC5oYXNDaGlsZHJlbigpKXJldHVybiB0eShkLGcsaCk7Y29uc3Qgdj1mdW5jdGlvbiBZRihkLGcsaCl7''@;'; + put 'put ''bGV0IHY9MCx5PWc7Y29uc3QgQz17bWF0Y2g6ITEscGF0aEluZGV4OjAsY29tbWFuZEluZGV4OjB9O2Zvcig7eTxkLnNlZ21lbnRzLmxlbmd0aDspe2lmKHY+PWgubGVuZ3RoKXJldHVybiBDO2NvbnN0IEk9ZC5zZWdtZW50c1t5XSxqPWhbdl07aWYoUUMoaikpYnJlYWs7Y29uc3QgdWU9YCR7''@;'; + put 'put ''an1gLF9lPXY8aC5sZW5ndGgtMT9oW3YrMV06bnVsbDtpZih5PjAmJnZvaWQgMD09PXVlKWJyZWFrO2lmKHVlJiZfZSYmIm9iamVjdCI9PXR5cGVvZiBfZSYmdm9pZCAwPT09X2Uub3V0bGV0cyl7aWYoIUpDKHVlLF9lLEkpKXJldHVybiBDO3YrPTJ9ZWxzZXtpZighSkModWUse30sSSkpcmV0''@;'; + put 'put ''dXJuIEM7disrfXkrK31yZXR1cm57bWF0Y2g6ITAscGF0aEluZGV4OnksY29tbWFuZEluZGV4OnZ9fShkLGcsaCkseT1oLnNsaWNlKHYuY29tbWFuZEluZGV4KTtpZih2Lm1hdGNoJiZ2LnBhdGhJbmRleDxkLnNlZ21lbnRzLmxlbmd0aCl7Y29uc3QgQz1uZXcgY2woZC5zZWdtZW50cy5zbGlj''@;'; + put 'put ''ZSgwLHYucGF0aEluZGV4KSx7fSk7cmV0dXJuIEMuY2hpbGRyZW5bamxdPW5ldyBjbChkLnNlZ21lbnRzLnNsaWNlKHYucGF0aEluZGV4KSxkLmNoaWxkcmVuKSx0eShDLDAseSl9cmV0dXJuIHYubWF0Y2gmJjA9PT15Lmxlbmd0aD9uZXcgY2woZC5zZWdtZW50cyx7fSk6di5tYXRjaCYmIWQu''@;'; + put 'put ''aGFzQ2hpbGRyZW4oKT9jSShkLGcsaCk6di5tYXRjaD90eShkLDAseSk6Y0koZCxnLGgpfWZ1bmN0aW9uIHR5KGQsZyxoKXtpZigwPT09aC5sZW5ndGgpcmV0dXJuIG5ldyBjbChkLnNlZ21lbnRzLHt9KTt7Y29uc3Qgdj1mdW5jdGlvbiBNMGUoZCl7cmV0dXJuIFFDKGRbMF0pP2RbMF0ub3V0''@;'; + put 'put ''bGV0czp7W2psXTpkfX0oaCkseT17fTtyZXR1cm4gVGModiwoQyxJKT0+eyJzdHJpbmciPT10eXBlb2YgQyYmKEM9W0NdKSxudWxsIT09QyYmKHlbSV09dUkoZC5jaGlsZHJlbltJXSxnLEMpKX0pLFRjKGQuY2hpbGRyZW4sKEMsSSk9Pnt2b2lkIDA9PT12W0ldJiYoeVtJXT1DKX0pLG5ldyBj''@;'; + put 'put ''bChkLnNlZ21lbnRzLHkpfX1mdW5jdGlvbiBjSShkLGcsaCl7Y29uc3Qgdj1kLnNlZ21lbnRzLnNsaWNlKDAsZyk7bGV0IHk9MDtmb3IoO3k8aC5sZW5ndGg7KXtjb25zdCBDPWhbeV07aWYoUUMoQykpe2NvbnN0IHVlPXhZKEMub3V0bGV0cyk7cmV0dXJuIG5ldyBjbCh2LHVlKX1pZigwPT09''@;'; + put 'put ''eSYmJEEoaFswXSkpe3YucHVzaChuZXcgV0MoZC5zZWdtZW50c1tnXS5wYXRoLFVGKGhbMF0pKSkseSsrO2NvbnRpbnVlfWNvbnN0IEk9UUMoQyk/Qy5vdXRsZXRzW2psXTpgJHtDfWAsaj15PGgubGVuZ3RoLTE/aFt5KzFdOm51bGw7SSYmaiYmJEEoaik/KHYucHVzaChuZXcgV0MoSSxVRihq''@;'; + put 'put ''KSkpLHkrPTIpOih2LnB1c2gobmV3IFdDKEkse30pKSx5KyspfXJldHVybiBuZXcgY2wodix7fSl9ZnVuY3Rpb24geFkoZCl7Y29uc3QgZz17fTtyZXR1cm4gVGMoZCwoaCx2KT0+eyJzdHJpbmciPT10eXBlb2YgaCYmKGg9W2hdKSxudWxsIT09aCYmKGdbdl09Y0kobmV3IGNsKFtdLHt9KSww''@;'; + put 'put ''LGgpKX0pLGd9ZnVuY3Rpb24gVUYoZCl7Y29uc3QgZz17fTtyZXR1cm4gVGMoZCwoaCx2KT0+Z1t2XT1gJHtofWApLGd9ZnVuY3Rpb24gSkMoZCxnLGgpe3JldHVybiBkPT1oLnBhdGgmJmxwKGcsaC5wYXJhbWV0ZXJzKX1jbGFzcyB1cHtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuaWQ9Zyx0aGlz''@;'; + put 'put ''LnVybD1ofX1jbGFzcyBmSSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2PSJpbXBlcmF0aXZlIix5PW51bGwpe3N1cGVyKGcsaCksdGhpcy50eXBlPTAsdGhpcy5uYXZpZ2F0aW9uVHJpZ2dlcj12LHRoaXMucmVzdG9yZWRTdGF0ZT15fXRvU3RyaW5nKCl7cmV0dXJuYE5hdmlnYXRpb25T''@;'; + put 'put ''dGFydChpZDogJHt0aGlzLmlkfSwgdXJsOiAnJHt0aGlzLnVybH0nKWB9fWNsYXNzIEc2IGV4dGVuZHMgdXB7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKGcsaCksdGhpcy51cmxBZnRlclJlZGlyZWN0cz12LHRoaXMudHlwZT0xfXRvU3RyaW5nKCl7cmV0dXJuYE5hdmlnYXRpb25FbmQoaWQ6''@;'; + put 'put ''ICR7dGhpcy5pZH0sIHVybDogJyR7dGhpcy51cmx9JywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcke3RoaXMudXJsQWZ0ZXJSZWRpcmVjdHN9JylgfX1jbGFzcyBoSSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcsaCksdGhpcy5yZWFzb249dix0aGlzLmNvZGU9eSx0aGlz''@;'; + put 'put ''LnR5cGU9Mn10b1N0cmluZygpe3JldHVybmBOYXZpZ2F0aW9uQ2FuY2VsKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScpYH19Y2xhc3MgUUYgZXh0ZW5kcyB1cHtjb25zdHJ1Y3RvcihnLGgsdix5KXtzdXBlcihnLGgpLHRoaXMuZXJyb3I9dix0aGlzLnRhcmdldD15LHRoaXMu''@;'; + put 'put ''dHlwZT0zfXRvU3RyaW5nKCl7cmV0dXJuYE5hdmlnYXRpb25FcnJvcihpZDogJHt0aGlzLmlkfSwgdXJsOiAnJHt0aGlzLnVybH0nLCBlcnJvcjogJHt0aGlzLmVycm9yfSlgfX1jbGFzcyBUWSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcsaCksdGhpcy51cmxBZnRl''@;'; + put 'put ''clJlZGlyZWN0cz12LHRoaXMuc3RhdGU9eSx0aGlzLnR5cGU9NH10b1N0cmluZygpe3JldHVybmBSb3V0ZXNSZWNvZ25pemVkKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVkaXJlY3RzfScsIHN0YXRlOiAk''@;'; + put 'put ''e3RoaXMuc3RhdGV9KWB9fWNsYXNzIEUwZSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcsaCksdGhpcy51cmxBZnRlclJlZGlyZWN0cz12LHRoaXMuc3RhdGU9eSx0aGlzLnR5cGU9N310b1N0cmluZygpe3JldHVybmBHdWFyZHNDaGVja1N0YXJ0KGlkOiAke3RoaXMu''@;'; + put 'put ''aWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVkaXJlY3RzfScsIHN0YXRlOiAke3RoaXMuc3RhdGV9KWB9fWNsYXNzIEpGIGV4dGVuZHMgdXB7Y29uc3RydWN0b3IoZyxoLHYseSxDKXtzdXBlcihnLGgpLHRoaXMudXJsQWZ0ZXJS''@;'; + put 'put ''ZWRpcmVjdHM9dix0aGlzLnN0YXRlPXksdGhpcy5zaG91bGRBY3RpdmF0ZT1DLHRoaXMudHlwZT04fXRvU3RyaW5nKCl7cmV0dXJuYEd1YXJkc0NoZWNrRW5kKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVk''@;'; + put 'put ''aXJlY3RzfScsIHN0YXRlOiAke3RoaXMuc3RhdGV9LCBzaG91bGRBY3RpdmF0ZTogJHt0aGlzLnNob3VsZEFjdGl2YXRlfSlgfX1jbGFzcyBJWSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcsaCksdGhpcy51cmxBZnRlclJlZGlyZWN0cz12LHRoaXMuc3RhdGU9eSx0''@;'; + put 'put ''aGlzLnR5cGU9NX10b1N0cmluZygpe3JldHVybmBSZXNvbHZlU3RhcnQoaWQ6ICR7dGhpcy5pZH0sIHVybDogJyR7dGhpcy51cmx9JywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcke3RoaXMudXJsQWZ0ZXJSZWRpcmVjdHN9Jywgc3RhdGU6ICR7dGhpcy5zdGF0ZX0pYH19Y2xhc3MgeDBlIGV4dGVu''@;'; + put 'put ''ZHMgdXB7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoZyxoKSx0aGlzLnVybEFmdGVyUmVkaXJlY3RzPXYsdGhpcy5zdGF0ZT15LHRoaXMudHlwZT02fXRvU3RyaW5nKCl7cmV0dXJuYFJlc29sdmVFbmQoaWQ6ICR7dGhpcy5pZH0sIHVybDogJyR7dGhpcy51cmx9JywgdXJsQWZ0ZXJSZWRp''@;'; + put 'put ''cmVjdHM6ICcke3RoaXMudXJsQWZ0ZXJSZWRpcmVjdHN9Jywgc3RhdGU6ICR7dGhpcy5zdGF0ZX0pYH19Y2xhc3MgVDBle2NvbnN0cnVjdG9yKGcpe3RoaXMucm91dGU9Zyx0aGlzLnR5cGU9OX10b1N0cmluZygpe3JldHVybmBSb3V0ZUNvbmZpZ0xvYWRTdGFydChwYXRoOiAke3RoaXMucm91''@;'; + put 'put ''dGUucGF0aH0pYH19Y2xhc3MgWEN7Y29uc3RydWN0b3IoZyl7dGhpcy5yb3V0ZT1nLHRoaXMudHlwZT0xMH10b1N0cmluZygpe3JldHVybmBSb3V0ZUNvbmZpZ0xvYWRFbmQocGF0aDogJHt0aGlzLnJvdXRlLnBhdGh9KWB9fWNsYXNzIFhGe2NvbnN0cnVjdG9yKGcpe3RoaXMuc25hcHNob3Q9''@;'; + put 'put ''Zyx0aGlzLnR5cGU9MTF9dG9TdHJpbmcoKXtyZXR1cm5gQ2hpbGRBY3RpdmF0aW9uU3RhcnQocGF0aDogJyR7dGhpcy5zbmFwc2hvdC5yb3V0ZUNvbmZpZyYmdGhpcy5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRofHwiIn0nKWB9fWNsYXNzIERZe2NvbnN0cnVjdG9yKGcpe3RoaXMuc25hcHNo''@;'; + put 'put ''b3Q9Zyx0aGlzLnR5cGU9MTJ9dG9TdHJpbmcoKXtyZXR1cm5gQ2hpbGRBY3RpdmF0aW9uRW5kKHBhdGg6ICcke3RoaXMuc25hcHNob3Qucm91dGVDb25maWcmJnRoaXMuc25hcHNob3Qucm91dGVDb25maWcucGF0aHx8IiJ9JylgfX1jbGFzcyBMWXtjb25zdHJ1Y3RvcihnKXt0aGlzLnNuYXBz''@;'; + put 'put ''aG90PWcsdGhpcy50eXBlPTEzfXRvU3RyaW5nKCl7cmV0dXJuYEFjdGl2YXRpb25TdGFydChwYXRoOiAnJHt0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnJiZ0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGh8fCIifScpYH19Y2xhc3MgSTBle2NvbnN0cnVjdG9yKGcpe3RoaXMuc25hcHNo''@;'; + put 'put ''b3Q9Zyx0aGlzLnR5cGU9MTR9dG9TdHJpbmcoKXtyZXR1cm5gQWN0aXZhdGlvbkVuZChwYXRoOiAnJHt0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnJiZ0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGh8fCIifScpYH19Y2xhc3MgZEl7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMucm91dGVy''@;'; + put 'put ''RXZlbnQ9Zyx0aGlzLnBvc2l0aW9uPWgsdGhpcy5hbmNob3I9dix0aGlzLnR5cGU9MTV9dG9TdHJpbmcoKXtyZXR1cm5gU2Nyb2xsKGFuY2hvcjogJyR7dGhpcy5hbmNob3J9JywgcG9zaXRpb246ICcke3RoaXMucG9zaXRpb24/YCR7dGhpcy5wb3NpdGlvblswXX0sICR7dGhpcy5wb3NpdGlv''@;'; + put 'put ''blsxXX1gOm51bGx9JylgfX1jbGFzcyBwSXtjb25zdHJ1Y3RvcihnKXt0aGlzLl9yb290PWd9Z2V0IHJvb3QoKXtyZXR1cm4gdGhpcy5fcm9vdC52YWx1ZX1wYXJlbnQoZyl7Y29uc3QgaD10aGlzLnBhdGhGcm9tUm9vdChnKTtyZXR1cm4gaC5sZW5ndGg+MT9oW2gubGVuZ3RoLTJdOm51bGx9''@;'; + put 'put ''Y2hpbGRyZW4oZyl7Y29uc3QgaD1ueShnLHRoaXMuX3Jvb3QpO3JldHVybiBoP2guY2hpbGRyZW4ubWFwKHY9PnYudmFsdWUpOltdfWZpcnN0Q2hpbGQoZyl7Y29uc3QgaD1ueShnLHRoaXMuX3Jvb3QpO3JldHVybiBoJiZoLmNoaWxkcmVuLmxlbmd0aD4wP2guY2hpbGRyZW5bMF0udmFsdWU6''@;'; + put 'put ''bnVsbH1zaWJsaW5ncyhnKXtjb25zdCBoPXJ5KGcsdGhpcy5fcm9vdCk7cmV0dXJuIGgubGVuZ3RoPDI/W106aFtoLmxlbmd0aC0yXS5jaGlsZHJlbi5tYXAoeT0+eS52YWx1ZSkuZmlsdGVyKHk9PnkhPT1nKX1wYXRoRnJvbVJvb3QoZyl7cmV0dXJuIHJ5KGcsdGhpcy5fcm9vdCkubWFwKGg9''@;'; + put 'put ''PmgudmFsdWUpfX1mdW5jdGlvbiBueShkLGcpe2lmKGQ9PT1nLnZhbHVlKXJldHVybiBnO2Zvcihjb25zdCBoIG9mIGcuY2hpbGRyZW4pe2NvbnN0IHY9bnkoZCxoKTtpZih2KXJldHVybiB2fXJldHVybiBudWxsfWZ1bmN0aW9uIHJ5KGQsZyl7aWYoZD09PWcudmFsdWUpcmV0dXJuW2ddO2Zv''@;'; + put 'put ''cihjb25zdCBoIG9mIGcuY2hpbGRyZW4pe2NvbnN0IHY9cnkoZCxoKTtpZih2Lmxlbmd0aClyZXR1cm4gdi51bnNoaWZ0KGcpLHZ9cmV0dXJuW119Y2xhc3MgVzZ7Y29uc3RydWN0b3IoZyxoKXt0aGlzLnZhbHVlPWcsdGhpcy5jaGlsZHJlbj1ofXRvU3RyaW5nKCl7cmV0dXJuYFRyZWVOb2Rl''@;'; + put 'put ''KCR7dGhpcy52YWx1ZX0pYH19ZnVuY3Rpb24gY3AoZCl7Y29uc3QgZz17fTtyZXR1cm4gZCYmZC5jaGlsZHJlbi5mb3JFYWNoKGg9PmdbaC52YWx1ZS5vdXRsZXRdPWgpLGd9Y2xhc3MgT1kgZXh0ZW5kcyBwSXtjb25zdHJ1Y3RvcihnLGgpe3N1cGVyKGcpLHRoaXMuc25hcHNob3Q9aCxnSSh0''@;'; + put 'put ''aGlzLGcpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuc25hcHNob3QudG9TdHJpbmcoKX19ZnVuY3Rpb24gUlkoZCxnKXtjb25zdCBoPWZ1bmN0aW9uIEwwZShkLGcpe2NvbnN0IEk9bmV3IEtDKFtdLHt9LHt9LCIiLHt9LGpsLGcsbnVsbCxkLnJvb3QsLTEse30pO3JldHVybiBuZXcgRlkoIiIs''@;'; + put 'put ''bmV3IFc2KEksW10pKX0oZCxnKSx2PW5ldyBjcyhbbmV3IFdDKCIiLHt9KV0pLHk9bmV3IGNzKHt9KSxDPW5ldyBjcyh7fSksST1uZXcgY3Moe30pLGo9bmV3IGNzKCIiKSx1ZT1uZXcgUHUodix5LEksaixDLGpsLGcsaC5yb290KTtyZXR1cm4gdWUuc25hcHNob3Q9aC5yb290LG5ldyBPWShu''@;'; + put 'put ''ZXcgVzYodWUsW10pLGgpfWNsYXNzIFB1e2NvbnN0cnVjdG9yKGcsaCx2LHksQyxJLGosdWUpe3RoaXMudXJsPWcsdGhpcy5wYXJhbXM9aCx0aGlzLnF1ZXJ5UGFyYW1zPXYsdGhpcy5mcmFnbWVudD15LHRoaXMuZGF0YT1DLHRoaXMub3V0bGV0PUksdGhpcy5jb21wb25lbnQ9aix0aGlzLl9m''@;'; + put 'put ''dXR1cmVTbmFwc2hvdD11ZX1nZXQgcm91dGVDb25maWcoKXtyZXR1cm4gdGhpcy5fZnV0dXJlU25hcHNob3Qucm91dGVDb25maWd9Z2V0IHJvb3QoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucm9vdH1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLnBhcmVudCh0aGlz''@;'; + put 'put ''KX1nZXQgZmlyc3RDaGlsZCgpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5maXJzdENoaWxkKHRoaXMpfWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5jaGlsZHJlbih0aGlzKX1nZXQgcGF0aEZyb21Sb290KCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLnBhdGhG''@;'; + put 'put ''cm9tUm9vdCh0aGlzKX1nZXQgcGFyYW1NYXAoKXtyZXR1cm4gdGhpcy5fcGFyYW1NYXB8fCh0aGlzLl9wYXJhbU1hcD10aGlzLnBhcmFtcy5waXBlKHZ0KGc9PmQ3KGcpKSkpLHRoaXMuX3BhcmFtTWFwfWdldCBxdWVyeVBhcmFtTWFwKCl7cmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1NYXB8fCh0''@;'; + put 'put ''aGlzLl9xdWVyeVBhcmFtTWFwPXRoaXMucXVlcnlQYXJhbXMucGlwZSh2dChnPT5kNyhnKSkpKSx0aGlzLl9xdWVyeVBhcmFtTWFwfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuc25hcHNob3Q/dGhpcy5zbmFwc2hvdC50b1N0cmluZygpOmBGdXR1cmUoJHt0aGlzLl9mdXR1cmVTbmFwc2hvdH0p''@;'; + put 'put ''YH19ZnVuY3Rpb24gQlkoZCxnPSJlbXB0eU9ubHkiKXtjb25zdCBoPWQucGF0aEZyb21Sb290O2xldCB2PTA7aWYoImFsd2F5cyIhPT1nKWZvcih2PWgubGVuZ3RoLTE7dj49MTspe2NvbnN0IHk9aFt2XSxDPWhbdi0xXTtpZih5LnJvdXRlQ29uZmlnJiYiIj09PXkucm91dGVDb25maWcucGF0''@;'; + put 'put ''aCl2LS07ZWxzZXtpZihDLmNvbXBvbmVudClicmVhazt2LS19fXJldHVybiBmdW5jdGlvbiBQWShkKXtyZXR1cm4gZC5yZWR1Y2UoKGcsaCk9Pnt2YXIgdjtyZXR1cm57cGFyYW1zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnLnBhcmFtcyksaC5wYXJhbXMpLGRhdGE6T2JqZWN0''@;'; + put 'put ''LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcuZGF0YSksaC5kYXRhKSxyZXNvbHZlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saC5kYXRhKSxnLnJlc29sdmUpLG51bGw9PT0odj1oLnJvdXRlQ29uZmlnKXx8dm9pZCAwPT09dj92''@;'; + put 'put ''b2lkIDA6di5kYXRhKSxoLl9yZXNvbHZlZERhdGEpfX0se3BhcmFtczp7fSxkYXRhOnt9LHJlc29sdmU6e319KX0oaC5zbGljZSh2KSl9Y2xhc3MgS0N7Y29uc3RydWN0b3IoZyxoLHYseSxDLEksaix1ZSxfZSxCZSxOZSxLZSl7dGhpcy51cmw9Zyx0aGlzLnBhcmFtcz1oLHRoaXMucXVlcnlQ''@;'; + put 'put ''YXJhbXM9dix0aGlzLmZyYWdtZW50PXksdGhpcy5kYXRhPUMsdGhpcy5vdXRsZXQ9SSx0aGlzLmNvbXBvbmVudD1qLHRoaXMucm91dGVDb25maWc9dWUsdGhpcy5fdXJsU2VnbWVudD1fZSx0aGlzLl9sYXN0UGF0aEluZGV4PUJlLHRoaXMuX2NvcnJlY3RlZExhc3RQYXRoSW5kZXg9bnVsbCE9''@;'; + put 'put ''S2U/S2U6QmUsdGhpcy5fcmVzb2x2ZT1OZX1nZXQgcm9vdCgpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5yb290fWdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucGFyZW50KHRoaXMpfWdldCBmaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLmZpcnN0''@;'; + put 'put ''Q2hpbGQodGhpcyl9Z2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLmNoaWxkcmVuKHRoaXMpfWdldCBwYXRoRnJvbVJvb3QoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucGF0aEZyb21Sb290KHRoaXMpfWdldCBwYXJhbU1hcCgpe3JldHVybiB0aGlzLl9wYXJhbU1h''@;'; + put 'put ''cHx8KHRoaXMuX3BhcmFtTWFwPWQ3KHRoaXMucGFyYW1zKSksdGhpcy5fcGFyYW1NYXB9Z2V0IHF1ZXJ5UGFyYW1NYXAoKXtyZXR1cm4gdGhpcy5fcXVlcnlQYXJhbU1hcHx8KHRoaXMuX3F1ZXJ5UGFyYW1NYXA9ZDcodGhpcy5xdWVyeVBhcmFtcykpLHRoaXMuX3F1ZXJ5UGFyYW1NYXB9dG9T''@;'; + put 'put ''dHJpbmcoKXtyZXR1cm5gUm91dGUodXJsOicke3RoaXMudXJsLm1hcCh2PT52LnRvU3RyaW5nKCkpLmpvaW4oIi8iKX0nLCBwYXRoOicke3RoaXMucm91dGVDb25maWc/dGhpcy5yb3V0ZUNvbmZpZy5wYXRoOiIifScpYH19Y2xhc3MgRlkgZXh0ZW5kcyBwSXtjb25zdHJ1Y3RvcihnLGgpe3N1''@;'; + put 'put ''cGVyKGgpLHRoaXMudXJsPWcsZ0kodGhpcyxoKX10b1N0cmluZygpe3JldHVybiBIWSh0aGlzLl9yb290KX19ZnVuY3Rpb24gZ0koZCxnKXtnLnZhbHVlLl9yb3V0ZXJTdGF0ZT1kLGcuY2hpbGRyZW4uZm9yRWFjaChoPT5nSShkLGgpKX1mdW5jdGlvbiBIWShkKXtjb25zdCBnPWQuY2hpbGRy''@;'; + put 'put ''ZW4ubGVuZ3RoPjA/YCB7ICR7ZC5jaGlsZHJlbi5tYXAoSFkpLmpvaW4oIiwgIil9IH0gYDoiIjtyZXR1cm5gJHtkLnZhbHVlfSR7Z31gfWZ1bmN0aW9uIEtGKGQpe2lmKGQuc25hcHNob3Qpe2NvbnN0IGc9ZC5zbmFwc2hvdCxoPWQuX2Z1dHVyZVNuYXBzaG90O2Quc25hcHNob3Q9aCxscChn''@;'; + put 'put ''LnF1ZXJ5UGFyYW1zLGgucXVlcnlQYXJhbXMpfHxkLnF1ZXJ5UGFyYW1zLm5leHQoaC5xdWVyeVBhcmFtcyksZy5mcmFnbWVudCE9PWguZnJhZ21lbnQmJmQuZnJhZ21lbnQubmV4dChoLmZyYWdtZW50KSxscChnLnBhcmFtcyxoLnBhcmFtcyl8fGQucGFyYW1zLm5leHQoaC5wYXJhbXMpLGZ1''@;'; + put 'put ''bmN0aW9uIHdZKGQsZyl7aWYoZC5sZW5ndGghPT1nLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGg9MDtoPGQubGVuZ3RoOysraClpZighbHAoZFtoXSxnW2hdKSlyZXR1cm4hMTtyZXR1cm4hMH0oZy51cmwsaC51cmwpfHxkLnVybC5uZXh0KGgudXJsKSxscChnLmRhdGEsaC5kYXRhKXx8ZC5k''@;'; + put 'put ''YXRhLm5leHQoaC5kYXRhKX1lbHNlIGQuc25hcHNob3Q9ZC5fZnV0dXJlU25hcHNob3QsZC5kYXRhLm5leHQoZC5fZnV0dXJlU25hcHNob3QuZGF0YSl9ZnVuY3Rpb24gbUkoZCxnKXtjb25zdCBoPWxwKGQucGFyYW1zLGcucGFyYW1zKSYmZnVuY3Rpb24gbTBlKGQsZyl7cmV0dXJuIHA3KGQs''@;'; + put 'put ''ZykmJmQuZXZlcnkoKGgsdik9PmxwKGgucGFyYW1ldGVycyxnW3ZdLnBhcmFtZXRlcnMpKX0oZC51cmwsZy51cmwpO3JldHVybiBoJiYhKCFkLnBhcmVudCE9IWcucGFyZW50KSYmKCFkLnBhcmVudHx8bUkoZC5wYXJlbnQsZy5wYXJlbnQpKX1mdW5jdGlvbiBpeShkLGcsaCl7aWYoaCYmZC5z''@;'; + put 'put ''aG91bGRSZXVzZVJvdXRlKGcudmFsdWUsaC52YWx1ZS5zbmFwc2hvdCkpe2NvbnN0IHY9aC52YWx1ZTt2Ll9mdXR1cmVTbmFwc2hvdD1nLnZhbHVlO2NvbnN0IHk9ZnVuY3Rpb24gTzBlKGQsZyxoKXtyZXR1cm4gZy5jaGlsZHJlbi5tYXAodj0+e2Zvcihjb25zdCB5IG9mIGguY2hpbGRyZW4p''@;'; + put 'put ''aWYoZC5zaG91bGRSZXVzZVJvdXRlKHYudmFsdWUseS52YWx1ZS5zbmFwc2hvdCkpcmV0dXJuIGl5KGQsdix5KTtyZXR1cm4gaXkoZCx2KX0pfShkLGcsaCk7cmV0dXJuIG5ldyBXNih2LHkpfXtpZihkLnNob3VsZEF0dGFjaChnLnZhbHVlKSl7Y29uc3QgQz1kLnJldHJpZXZlKGcudmFsdWUp''@;'; + put 'put ''O2lmKG51bGwhPT1DKXtjb25zdCBJPUMucm91dGU7cmV0dXJuIEkudmFsdWUuX2Z1dHVyZVNuYXBzaG90PWcudmFsdWUsSS5jaGlsZHJlbj1nLmNoaWxkcmVuLm1hcChqPT5peShkLGopKSxJfX1jb25zdCB2PWZ1bmN0aW9uIFZZKGQpe3JldHVybiBuZXcgUHUobmV3IGNzKGQudXJsKSxuZXcg''@;'; + put 'put ''Y3MoZC5wYXJhbXMpLG5ldyBjcyhkLnF1ZXJ5UGFyYW1zKSxuZXcgY3MoZC5mcmFnbWVudCksbmV3IGNzKGQuZGF0YSksZC5vdXRsZXQsZC5jb21wb25lbnQsZCl9KGcudmFsdWUpLHk9Zy5jaGlsZHJlbi5tYXAoQz0+aXkoZCxDKSk7cmV0dXJuIG5ldyBXNih2LHkpfX1jb25zdCB2ST0ibmdO''@;'; + put 'put ''YXZpZ2F0aW9uQ2FuY2VsaW5nRXJyb3IiO2Z1bmN0aW9uICRGKGQsZyl7Y29uc3R7cmVkaXJlY3RUbzpoLG5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnM6dn09ZzcoZyk/e3JlZGlyZWN0VG86ZyxuYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zOnZvaWQgMH06Zyx5PWpZKCExLDAsZyk7cmV0dXJu''@;'; + put 'put ''IHkudXJsPWgseS5uYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zPXYseX1mdW5jdGlvbiBqWShkLGcsaCl7Y29uc3Qgdj1uZXcgRXJyb3IoIk5hdmlnYXRpb25DYW5jZWxpbmdFcnJvcjogIisoZHx8IiIpKTtyZXR1cm4gdlt2SV09ITAsdi5jYW5jZWxsYXRpb25Db2RlPWcsaCYmKHYudXJsPWgp''@;'; + put 'put ''LHZ9ZnVuY3Rpb24gWlkoZCl7cmV0dXJuIHFGKGQpJiZnNyhkLnVybCl9ZnVuY3Rpb24gcUYoZCl7cmV0dXJuIGQmJmRbdkldfWNsYXNzIFIwZXtjb25zdHJ1Y3Rvcigpe3RoaXMub3V0bGV0PW51bGwsdGhpcy5yb3V0ZT1udWxsLHRoaXMucmVzb2x2ZXI9bnVsbCx0aGlzLmluamVjdG9yPW51''@;'; + put 'put ''bGwsdGhpcy5jaGlsZHJlbj1uZXcgJEMsdGhpcy5hdHRhY2hSZWY9bnVsbH19Y2xhc3MgJEN7Y29uc3RydWN0b3IoKXt0aGlzLmNvbnRleHRzPW5ldyBNYXB9b25DaGlsZE91dGxldENyZWF0ZWQoZyxoKXtjb25zdCB2PXRoaXMuZ2V0T3JDcmVhdGVDb250ZXh0KGcpO3Yub3V0bGV0PWgsdGhp''@;'; + put 'put ''cy5jb250ZXh0cy5zZXQoZyx2KX1vbkNoaWxkT3V0bGV0RGVzdHJveWVkKGcpe2NvbnN0IGg9dGhpcy5nZXRDb250ZXh0KGcpO2gmJihoLm91dGxldD1udWxsLGguYXR0YWNoUmVmPW51bGwpfW9uT3V0bGV0RGVhY3RpdmF0ZWQoKXtjb25zdCBnPXRoaXMuY29udGV4dHM7cmV0dXJuIHRoaXMu''@;'; + put 'put ''Y29udGV4dHM9bmV3IE1hcCxnfW9uT3V0bGV0UmVBdHRhY2hlZChnKXt0aGlzLmNvbnRleHRzPWd9Z2V0T3JDcmVhdGVDb250ZXh0KGcpe2xldCBoPXRoaXMuZ2V0Q29udGV4dChnKTtyZXR1cm4gaHx8KGg9bmV3IFIwZSx0aGlzLmNvbnRleHRzLnNldChnLGgpKSxofWdldENvbnRleHQoZyl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuY29udGV4dHMuZ2V0KGcpfHxudWxsfX1jb25zdCBBST0hMTtsZXQgb3k9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMucGFyZW50Q29udGV4dHM9aCx0aGlzLmxvY2F0aW9uPXYsdGhpcy5jaGFuZ2VEZXRlY3Rvcj1DLHRoaXMuZW52aXJvbm1l''@;'; + put 'put ''bnRJbmplY3Rvcj1JLHRoaXMuYWN0aXZhdGVkPW51bGwsdGhpcy5fYWN0aXZhdGVkUm91dGU9bnVsbCx0aGlzLmFjdGl2YXRlRXZlbnRzPW5ldyBhcix0aGlzLmRlYWN0aXZhdGVFdmVudHM9bmV3IGFyLHRoaXMuYXR0YWNoRXZlbnRzPW5ldyBhcix0aGlzLmRldGFjaEV2ZW50cz1uZXcgYXIs''@;'; + put 'put ''dGhpcy5uYW1lPXl8fGpsLGgub25DaGlsZE91dGxldENyZWF0ZWQodGhpcy5uYW1lLHRoaXMpfW5nT25EZXN0cm95KCl7dmFyIGg7KG51bGw9PT0oaD10aGlzLnBhcmVudENvbnRleHRzLmdldENvbnRleHQodGhpcy5uYW1lKSl8fHZvaWQgMD09PWg/dm9pZCAwOmgub3V0bGV0KT09PXRoaXMm''@;'; + put 'put ''JnRoaXMucGFyZW50Q29udGV4dHMub25DaGlsZE91dGxldERlc3Ryb3llZCh0aGlzLm5hbWUpfW5nT25Jbml0KCl7aWYoIXRoaXMuYWN0aXZhdGVkKXtjb25zdCBoPXRoaXMucGFyZW50Q29udGV4dHMuZ2V0Q29udGV4dCh0aGlzLm5hbWUpO2gmJmgucm91dGUmJihoLmF0dGFjaFJlZj90aGlz''@;'; + put 'put ''LmF0dGFjaChoLmF0dGFjaFJlZixoLnJvdXRlKTp0aGlzLmFjdGl2YXRlV2l0aChoLnJvdXRlLGguaW5qZWN0b3IpKX19Z2V0IGlzQWN0aXZhdGVkKCl7cmV0dXJuISF0aGlzLmFjdGl2YXRlZH1nZXQgY29tcG9uZW50KCl7aWYoIXRoaXMuYWN0aXZhdGVkKXRocm93IG5ldyBlbig0MDEyLEFJ''@;'; + put 'put ''KTtyZXR1cm4gdGhpcy5hY3RpdmF0ZWQuaW5zdGFuY2V9Z2V0IGFjdGl2YXRlZFJvdXRlKCl7aWYoIXRoaXMuYWN0aXZhdGVkKXRocm93IG5ldyBlbig0MDEyLEFJKTtyZXR1cm4gdGhpcy5fYWN0aXZhdGVkUm91dGV9Z2V0IGFjdGl2YXRlZFJvdXRlRGF0YSgpe3JldHVybiB0aGlzLl9hY3Rp''@;'; + put 'put ''dmF0ZWRSb3V0ZT90aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhOnt9fWRldGFjaCgpe2lmKCF0aGlzLmFjdGl2YXRlZCl0aHJvdyBuZXcgZW4oNDAxMixBSSk7dGhpcy5sb2NhdGlvbi5kZXRhY2goKTtjb25zdCBoPXRoaXMuYWN0aXZhdGVkO3JldHVybiB0aGlzLmFjdGl2YXRl''@;'; + put 'put ''ZD1udWxsLHRoaXMuX2FjdGl2YXRlZFJvdXRlPW51bGwsdGhpcy5kZXRhY2hFdmVudHMuZW1pdChoLmluc3RhbmNlKSxofWF0dGFjaChoLHYpe3RoaXMuYWN0aXZhdGVkPWgsdGhpcy5fYWN0aXZhdGVkUm91dGU9dix0aGlzLmxvY2F0aW9uLmluc2VydChoLmhvc3RWaWV3KSx0aGlzLmF0dGFj''@;'; + put 'put ''aEV2ZW50cy5lbWl0KGguaW5zdGFuY2UpfWRlYWN0aXZhdGUoKXtpZih0aGlzLmFjdGl2YXRlZCl7Y29uc3QgaD10aGlzLmNvbXBvbmVudDt0aGlzLmFjdGl2YXRlZC5kZXN0cm95KCksdGhpcy5hY3RpdmF0ZWQ9bnVsbCx0aGlzLl9hY3RpdmF0ZWRSb3V0ZT1udWxsLHRoaXMuZGVhY3RpdmF0''@;'; + put 'put ''ZUV2ZW50cy5lbWl0KGgpfX1hY3RpdmF0ZVdpdGgoaCx2KXtpZih0aGlzLmlzQWN0aXZhdGVkKXRocm93IG5ldyBlbig0MDEzLEFJKTt0aGlzLl9hY3RpdmF0ZWRSb3V0ZT1oO2NvbnN0IHk9dGhpcy5sb2NhdGlvbixJPWguX2Z1dHVyZVNuYXBzaG90LmNvbXBvbmVudCxqPXRoaXMucGFyZW50''@;'; + put 'put ''Q29udGV4dHMuZ2V0T3JDcmVhdGVDb250ZXh0KHRoaXMubmFtZSkuY2hpbGRyZW4sdWU9bmV3IHpZKGgsaix5LmluamVjdG9yKTtpZih2JiZmdW5jdGlvbiBCMGUoZCl7cmV0dXJuISFkLnJlc29sdmVDb21wb25lbnRGYWN0b3J5fSh2KSl7Y29uc3QgX2U9di5yZXNvbHZlQ29tcG9uZW50RmFj''@;'; + put 'put ''dG9yeShJKTt0aGlzLmFjdGl2YXRlZD15LmNyZWF0ZUNvbXBvbmVudChfZSx5Lmxlbmd0aCx1ZSl9ZWxzZSB0aGlzLmFjdGl2YXRlZD15LmNyZWF0ZUNvbXBvbmVudChJLHtpbmRleDp5Lmxlbmd0aCxpbmplY3Rvcjp1ZSxlbnZpcm9ubWVudEluamVjdG9yOm51bGwhPXY/djp0aGlzLmVudmly''@;'; + put 'put ''b25tZW50SW5qZWN0b3J9KTt0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpLHRoaXMuYWN0aXZhdGVFdmVudHMuZW1pdCh0aGlzLmFjdGl2YXRlZC5pbnN0YW5jZSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KCRDKSxYdChVaSks''@;'; + put 'put ''ZzMoIm5hbWUiKSxYdChkMSksWHQoRTMpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1sicm91dGVyLW91dGxldCJdXSxvdXRwdXRzOnthY3RpdmF0ZUV2ZW50czoiYWN0aXZhdGUiLGRlYWN0aXZhdGVFdmVudHM6ImRlYWN0aXZhdGUiLGF0dGFjaEV2ZW50czoiYXR0YWNo''@;'; + put 'put ''IixkZXRhY2hFdmVudHM6ImRldGFjaCJ9LGV4cG9ydEFzOlsib3V0bGV0Il19KSxkfSkoKTtjbGFzcyB6WXtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5yb3V0ZT1nLHRoaXMuY2hpbGRDb250ZXh0cz1oLHRoaXMucGFyZW50PXZ9Z2V0KGcsaCl7cmV0dXJuIGc9PT1QdT90aGlzLnJvdXRlOmc9''@;'; + put 'put ''PT0kQz90aGlzLmNoaWxkQ29udGV4dHM6dGhpcy5wYXJlbnQuZ2V0KGcsaCl9fWxldCBlSD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1sibmctY29tcG9uZW50''@;'; + put 'put ''Il1dLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiZDcigwLCJyb3V0ZXItb3V0bGV0Iil9LGRlcGVuZGVuY2llczpbb3ldLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpO2Z1bmN0aW9uIEdZKGQsZyl7dmFyIGg7cmV0dXJuIGQucHJvdmlkZXJzJiYhZC5faW5qZWN0''@;'; + put 'put ''b3ImJihkLl9pbmplY3Rvcj10NyhkLnByb3ZpZGVycyxnLGBSb3V0ZTogJHtkLnBhdGh9YCkpLG51bGwhPT0oaD1kLl9pbmplY3RvcikmJnZvaWQgMCE9PWg/aDpnfWZ1bmN0aW9uIG5IKGQpe2NvbnN0IGc9ZC5jaGlsZHJlbiYmZC5jaGlsZHJlbi5tYXAobkgpLGg9Zz9PYmplY3QuYXNzaWdu''@;'; + put 'put ''KE9iamVjdC5hc3NpZ24oe30sZCkse2NoaWxkcmVuOmd9KTpPYmplY3QuYXNzaWduKHt9LGQpO3JldHVybiFoLmNvbXBvbmVudCYmIWgubG9hZENvbXBvbmVudCYmKGd8fGgubG9hZENoaWxkcmVuKSYmaC5vdXRsZXQmJmgub3V0bGV0IT09amwmJihoLmNvbXBvbmVudD1lSCksaH1mdW5jdGlv''@;'; + put 'put ''biBRaChkKXtyZXR1cm4gZC5vdXRsZXR8fGpsfWZ1bmN0aW9uIHFDKGQsZyl7Y29uc3QgaD1kLmZpbHRlcih2PT5RaCh2KT09PWcpO3JldHVybiBoLnB1c2goLi4uZC5maWx0ZXIodj0+UWgodikhPT1nKSksaH1mdW5jdGlvbiBySChkKXt2YXIgZztpZighZClyZXR1cm4gbnVsbDtpZihudWxs''@;'; + put 'put ''IT09KGc9ZC5yb3V0ZUNvbmZpZykmJnZvaWQgMCE9PWcmJmcuX2luamVjdG9yKXJldHVybiBkLnJvdXRlQ29uZmlnLl9pbmplY3Rvcjtmb3IobGV0IGg9ZC5wYXJlbnQ7aDtoPWgucGFyZW50KXtjb25zdCB2PWgucm91dGVDb25maWc7aWYobnVsbCE9diYmdi5fbG9hZGVkSW5qZWN0b3IpcmV0''@;'; + put 'put ''dXJuIHYuX2xvYWRlZEluamVjdG9yO2lmKG51bGwhPXYmJnYuX2luamVjdG9yKXJldHVybiB2Ll9pbmplY3Rvcn1yZXR1cm4gbnVsbH1jbGFzcyBZWXtjb25zdHJ1Y3RvcihnLGgsdix5KXt0aGlzLnJvdXRlUmV1c2VTdHJhdGVneT1nLHRoaXMuZnV0dXJlU3RhdGU9aCx0aGlzLmN1cnJTdGF0''@;'; + put 'put ''ZT12LHRoaXMuZm9yd2FyZEV2ZW50PXl9YWN0aXZhdGUoZyl7Y29uc3QgaD10aGlzLmZ1dHVyZVN0YXRlLl9yb290LHY9dGhpcy5jdXJyU3RhdGU/dGhpcy5jdXJyU3RhdGUuX3Jvb3Q6bnVsbDt0aGlzLmRlYWN0aXZhdGVDaGlsZFJvdXRlcyhoLHYsZyksS0YodGhpcy5mdXR1cmVTdGF0ZS5y''@;'; + put 'put ''b290KSx0aGlzLmFjdGl2YXRlQ2hpbGRSb3V0ZXMoaCx2LGcpfWRlYWN0aXZhdGVDaGlsZFJvdXRlcyhnLGgsdil7Y29uc3QgeT1jcChoKTtnLmNoaWxkcmVuLmZvckVhY2goQz0+e2NvbnN0IEk9Qy52YWx1ZS5vdXRsZXQ7dGhpcy5kZWFjdGl2YXRlUm91dGVzKEMseVtJXSx2KSxkZWxldGUg''@;'; + put 'put ''eVtJXX0pLFRjKHksKEMsSSk9Pnt0aGlzLmRlYWN0aXZhdGVSb3V0ZUFuZEl0c0NoaWxkcmVuKEMsdil9KX1kZWFjdGl2YXRlUm91dGVzKGcsaCx2KXtjb25zdCB5PWcudmFsdWUsQz1oP2gudmFsdWU6bnVsbDtpZih5PT09QylpZih5LmNvbXBvbmVudCl7Y29uc3QgST12LmdldENvbnRleHQo''@;'; + put 'put ''eS5vdXRsZXQpO0kmJnRoaXMuZGVhY3RpdmF0ZUNoaWxkUm91dGVzKGcsaCxJLmNoaWxkcmVuKX1lbHNlIHRoaXMuZGVhY3RpdmF0ZUNoaWxkUm91dGVzKGcsaCx2KTtlbHNlIEMmJnRoaXMuZGVhY3RpdmF0ZVJvdXRlQW5kSXRzQ2hpbGRyZW4oaCx2KX1kZWFjdGl2YXRlUm91dGVBbmRJdHND''@;'; + put 'put ''aGlsZHJlbihnLGgpe2cudmFsdWUuY29tcG9uZW50JiZ0aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5zaG91bGREZXRhY2goZy52YWx1ZS5zbmFwc2hvdCk/dGhpcy5kZXRhY2hBbmRTdG9yZVJvdXRlU3VidHJlZShnLGgpOnRoaXMuZGVhY3RpdmF0ZVJvdXRlQW5kT3V0bGV0KGcsaCl9ZGV0YWNo''@;'; + put 'put ''QW5kU3RvcmVSb3V0ZVN1YnRyZWUoZyxoKXtjb25zdCB2PWguZ2V0Q29udGV4dChnLnZhbHVlLm91dGxldCkseT12JiZnLnZhbHVlLmNvbXBvbmVudD92LmNoaWxkcmVuOmgsQz1jcChnKTtmb3IoY29uc3QgSSBvZiBPYmplY3Qua2V5cyhDKSl0aGlzLmRlYWN0aXZhdGVSb3V0ZUFuZEl0c0No''@;'; + put 'put ''aWxkcmVuKENbSV0seSk7aWYodiYmdi5vdXRsZXQpe2NvbnN0IEk9di5vdXRsZXQuZGV0YWNoKCksaj12LmNoaWxkcmVuLm9uT3V0bGV0RGVhY3RpdmF0ZWQoKTt0aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5zdG9yZShnLnZhbHVlLnNuYXBzaG90LHtjb21wb25lbnRSZWY6SSxyb3V0ZTpnLGNv''@;'; + put 'put ''bnRleHRzOmp9KX19ZGVhY3RpdmF0ZVJvdXRlQW5kT3V0bGV0KGcsaCl7Y29uc3Qgdj1oLmdldENvbnRleHQoZy52YWx1ZS5vdXRsZXQpLHk9diYmZy52YWx1ZS5jb21wb25lbnQ/di5jaGlsZHJlbjpoLEM9Y3AoZyk7Zm9yKGNvbnN0IEkgb2YgT2JqZWN0LmtleXMoQykpdGhpcy5kZWFjdGl2''@;'; + put 'put ''YXRlUm91dGVBbmRJdHNDaGlsZHJlbihDW0ldLHkpO3YmJnYub3V0bGV0JiYodi5vdXRsZXQuZGVhY3RpdmF0ZSgpLHYuY2hpbGRyZW4ub25PdXRsZXREZWFjdGl2YXRlZCgpLHYuYXR0YWNoUmVmPW51bGwsdi5yZXNvbHZlcj1udWxsLHYucm91dGU9bnVsbCl9YWN0aXZhdGVDaGlsZFJvdXRl''@;'; + put 'put ''cyhnLGgsdil7Y29uc3QgeT1jcChoKTtnLmNoaWxkcmVuLmZvckVhY2goQz0+e3RoaXMuYWN0aXZhdGVSb3V0ZXMoQyx5W0MudmFsdWUub3V0bGV0XSx2KSx0aGlzLmZvcndhcmRFdmVudChuZXcgSTBlKEMudmFsdWUuc25hcHNob3QpKX0pLGcuY2hpbGRyZW4ubGVuZ3RoJiZ0aGlzLmZvcndh''@;'; + put 'put ''cmRFdmVudChuZXcgRFkoZy52YWx1ZS5zbmFwc2hvdCkpfWFjdGl2YXRlUm91dGVzKGcsaCx2KXt2YXIgeTtjb25zdCBDPWcudmFsdWUsST1oP2gudmFsdWU6bnVsbDtpZihLRihDKSxDPT09SSlpZihDLmNvbXBvbmVudCl7Y29uc3Qgaj12LmdldE9yQ3JlYXRlQ29udGV4dChDLm91dGxldCk7''@;'; + put 'put ''dGhpcy5hY3RpdmF0ZUNoaWxkUm91dGVzKGcsaCxqLmNoaWxkcmVuKX1lbHNlIHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhnLGgsdik7ZWxzZSBpZihDLmNvbXBvbmVudCl7Y29uc3Qgaj12LmdldE9yQ3JlYXRlQ29udGV4dChDLm91dGxldCk7aWYodGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3ku''@;'; + put 'put ''c2hvdWxkQXR0YWNoKEMuc25hcHNob3QpKXtjb25zdCB1ZT10aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5yZXRyaWV2ZShDLnNuYXBzaG90KTt0aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5zdG9yZShDLnNuYXBzaG90LG51bGwpLGouY2hpbGRyZW4ub25PdXRsZXRSZUF0dGFjaGVkKHVlLmNvbnRl''@;'; + put 'put ''eHRzKSxqLmF0dGFjaFJlZj11ZS5jb21wb25lbnRSZWYsai5yb3V0ZT11ZS5yb3V0ZS52YWx1ZSxqLm91dGxldCYmai5vdXRsZXQuYXR0YWNoKHVlLmNvbXBvbmVudFJlZix1ZS5yb3V0ZS52YWx1ZSksS0YodWUucm91dGUudmFsdWUpLHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhnLG51bGws''@;'; + put 'put ''ai5jaGlsZHJlbil9ZWxzZXtjb25zdCB1ZT1ySChDLnNuYXBzaG90KSxfZT1udWxsIT09KHk9bnVsbD09dWU/dm9pZCAwOnVlLmdldChrZCkpJiZ2b2lkIDAhPT15P3k6bnVsbDtqLmF0dGFjaFJlZj1udWxsLGoucm91dGU9QyxqLnJlc29sdmVyPV9lLGouaW5qZWN0b3I9dWUsai5vdXRsZXQm''@;'; + put 'put ''Jmoub3V0bGV0LmFjdGl2YXRlV2l0aChDLGouaW5qZWN0b3IpLHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhnLG51bGwsai5jaGlsZHJlbil9fWVsc2UgdGhpcy5hY3RpdmF0ZUNoaWxkUm91dGVzKGcsbnVsbCx2KX19Y2xhc3MgaUh7Y29uc3RydWN0b3IoZyl7dGhpcy5wYXRoPWcsdGhpcy5y''@;'; + put 'put ''b3V0ZT10aGlzLnBhdGhbdGhpcy5wYXRoLmxlbmd0aC0xXX19Y2xhc3MgZWt7Y29uc3RydWN0b3IoZyxoKXt0aGlzLmNvbXBvbmVudD1nLHRoaXMucm91dGU9aH19ZnVuY3Rpb24gVVkoZCxnLGgpe2NvbnN0IHY9ZC5fcm9vdDtyZXR1cm4gYXkodixnP2cuX3Jvb3Q6bnVsbCxoLFt2LnZhbHVl''@;'; + put 'put ''XSl9ZnVuY3Rpb24geUkoZCxnLGgpe2NvbnN0IHY9ckgoZyk7cmV0dXJuKG51bGwhPXY/djpoKS5nZXQoZCl9ZnVuY3Rpb24gYXkoZCxnLGgsdix5PXtjYW5EZWFjdGl2YXRlQ2hlY2tzOltdLGNhbkFjdGl2YXRlQ2hlY2tzOltdfSl7Y29uc3QgQz1jcChnKTtyZXR1cm4gZC5jaGlsZHJlbi5m''@;'; + put 'put ''b3JFYWNoKEk9PnsoZnVuY3Rpb24gSlkoZCxnLGgsdix5PXtjYW5EZWFjdGl2YXRlQ2hlY2tzOltdLGNhbkFjdGl2YXRlQ2hlY2tzOltdfSl7Y29uc3QgQz1kLnZhbHVlLEk9Zz9nLnZhbHVlOm51bGwsaj1oP2guZ2V0Q29udGV4dChkLnZhbHVlLm91dGxldCk6bnVsbDtpZihJJiZDLnJvdXRl''@;'; + put 'put ''Q29uZmlnPT09SS5yb3V0ZUNvbmZpZyl7Y29uc3QgdWU9ZnVuY3Rpb24gWFkoZCxnLGgpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBoKXJldHVybiBoKGQsZyk7c3dpdGNoKGgpe2Nhc2UicGF0aFBhcmFtc0NoYW5nZSI6cmV0dXJuIXA3KGQudXJsLGcudXJsKTtjYXNlInBhdGhQYXJhbXNPclF1''@;'; + put 'put ''ZXJ5UGFyYW1zQ2hhbmdlIjpyZXR1cm4hcDcoZC51cmwsZy51cmwpfHwhbHAoZC5xdWVyeVBhcmFtcyxnLnF1ZXJ5UGFyYW1zKTtjYXNlImFsd2F5cyI6cmV0dXJuITA7Y2FzZSJwYXJhbXNPclF1ZXJ5UGFyYW1zQ2hhbmdlIjpyZXR1cm4hbUkoZCxnKXx8IWxwKGQucXVlcnlQYXJhbXMsZy5x''@;'; + put 'put ''dWVyeVBhcmFtcyk7ZGVmYXVsdDpyZXR1cm4hbUkoZCxnKX19KEksQyxDLnJvdXRlQ29uZmlnLnJ1bkd1YXJkc0FuZFJlc29sdmVycyk7dWU/eS5jYW5BY3RpdmF0ZUNoZWNrcy5wdXNoKG5ldyBpSCh2KSk6KEMuZGF0YT1JLmRhdGEsQy5fcmVzb2x2ZWREYXRhPUkuX3Jlc29sdmVkRGF0YSks''@;'; + put 'put ''YXkoZCxnLEMuY29tcG9uZW50P2o/ai5jaGlsZHJlbjpudWxsOmgsdix5KSx1ZSYmaiYmai5vdXRsZXQmJmoub3V0bGV0LmlzQWN0aXZhdGVkJiZ5LmNhbkRlYWN0aXZhdGVDaGVja3MucHVzaChuZXcgZWsoai5vdXRsZXQuY29tcG9uZW50LEkpKX1lbHNlIEkmJmx5KGcsaix5KSx5LmNhbkFj''@;'; + put 'put ''dGl2YXRlQ2hlY2tzLnB1c2gobmV3IGlIKHYpKSxheShkLG51bGwsQy5jb21wb25lbnQ/aj9qLmNoaWxkcmVuOm51bGw6aCx2LHkpfSkoSSxDW0kudmFsdWUub3V0bGV0XSxoLHYuY29uY2F0KFtJLnZhbHVlXSkseSksZGVsZXRlIENbSS52YWx1ZS5vdXRsZXRdfSksVGMoQywoSSxqKT0+bHko''@;'; + put 'put ''SSxoLmdldENvbnRleHQoaikseSkpLHl9ZnVuY3Rpb24gbHkoZCxnLGgpe2NvbnN0IHY9Y3AoZCkseT1kLnZhbHVlO1RjKHYsKEMsSSk9PntseShDLHkuY29tcG9uZW50P2c/Zy5jaGlsZHJlbi5nZXRDb250ZXh0KEkpOm51bGw6ZyxoKX0pLGguY2FuRGVhY3RpdmF0ZUNoZWNrcy5wdXNoKG5l''@;'; + put 'put ''dyBlayh5LmNvbXBvbmVudCYmZyYmZy5vdXRsZXQmJmcub3V0bGV0LmlzQWN0aXZhdGVkP2cub3V0bGV0LmNvbXBvbmVudDpudWxsLHkpKX1mdW5jdGlvbiBzeShkKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZH1jb25zdCB1eT1TeW1ib2woIklOSVRJQUxfVkFMVUUiKTtmdW5jdGlvbiBt''@;'; + put 'put ''Nygpe3JldHVybiBZaChkPT4kVChkLm1hcChnPT5nLnBpcGUoSDUoMSksTjUodXkpKSkpLnBpcGUodnQoZz0+e2Zvcihjb25zdCBoIG9mIGcpaWYoITAhPT1oKXtpZihoPT09dXkpcmV0dXJuIHV5O2lmKCExPT09aHx8aCBpbnN0YW5jZW9mIFk1KXJldHVybiBofXJldHVybiEwfSksTDIoZz0+''@;'; + put 'put ''ZyE9PXV5KSxINSgxKSkpfWZ1bmN0aW9uIG9VKGQpe3JldHVybiBmdW5jdGlvbiBUKC4uLmQpe3JldHVybiBTKGQpfShBYShnPT57aWYoZzcoZykpdGhyb3cgJEYoMCxnKX0pLHZ0KGc9PiEwPT09ZykpfWNvbnN0IGFIPXttYXRjaGVkOiExLGNvbnN1bWVkU2VnbWVudHM6W10scmVtYWluaW5n''@;'; + put 'put ''U2VnbWVudHM6W10scGFyYW1ldGVyczp7fSxwb3NpdGlvbmFsUGFyYW1TZWdtZW50czp7fX07ZnVuY3Rpb24gbEgoZCxnLGgsdix5KXtjb25zdCBDPXdJKGQsZyxoKTtyZXR1cm4gQy5tYXRjaGVkP2Z1bmN0aW9uIFEwZShkLGcsaCx2KXtjb25zdCB5PWcuY2FuTWF0Y2g7cmV0dXJuIHkmJjAh''@;'; + put 'put ''PT15Lmxlbmd0aD9hYSh5Lm1hcChJPT57Y29uc3Qgaj1kLmdldChJKSx1ZT1mdW5jdGlvbiBaMGUoZCl7cmV0dXJuIGQmJnN5KGQuY2FuTWF0Y2gpfShqKT9qLmNhbk1hdGNoKGcsaCk6aihnLGgpO3JldHVybiBCdSh1ZSl9KSkucGlwZShtNygpLG9VKCkpOmFhKCEwKX0odj1HWShnLHYpLGcs''@;'; + put 'put ''aCkucGlwZSh2dChJPT4hMD09PUk/QzpPYmplY3QuYXNzaWduKHt9LGFIKSkpOmFhKEMpfWZ1bmN0aW9uIHdJKGQsZyxoKXt2YXIgdjtpZigiIj09PWcucGF0aClyZXR1cm4iZnVsbCI9PT1nLnBhdGhNYXRjaCYmKGQuaGFzQ2hpbGRyZW4oKXx8aC5sZW5ndGg+MCk/T2JqZWN0LmFzc2lnbih7''@;'; + put 'put ''fSxhSCk6e21hdGNoZWQ6ITAsY29uc3VtZWRTZWdtZW50czpbXSxyZW1haW5pbmdTZWdtZW50czpoLHBhcmFtZXRlcnM6e30scG9zaXRpb25hbFBhcmFtU2VnbWVudHM6e319O2NvbnN0IEM9KGcubWF0Y2hlcnx8eVkpKGgsZCxnKTtpZighQylyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxhSCk7''@;'; + put 'put ''Y29uc3QgST17fTtUYyhDLnBvc1BhcmFtcywodWUsX2UpPT57SVtfZV09dWUucGF0aH0pO2NvbnN0IGo9Qy5jb25zdW1lZC5sZW5ndGg+MD9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sSSksQy5jb25zdW1lZFtDLmNvbnN1bWVkLmxlbmd0aC0xXS5wYXJhbWV0ZXJzKTpJO3JldHVy''@;'; + put 'put ''bnttYXRjaGVkOiEwLGNvbnN1bWVkU2VnbWVudHM6Qy5jb25zdW1lZCxyZW1haW5pbmdTZWdtZW50czpoLnNsaWNlKEMuY29uc3VtZWQubGVuZ3RoKSxwYXJhbWV0ZXJzOmoscG9zaXRpb25hbFBhcmFtU2VnbWVudHM6bnVsbCE9PSh2PUMucG9zUGFyYW1zKSYmdm9pZCAwIT09dj92Ont9fX1m''@;'; + put 'put ''dW5jdGlvbiBiSShkLGcsaCx2LHk9ImNvcnJlY3RlZCIpe2lmKGgubGVuZ3RoPjAmJmZ1bmN0aW9uIFgwZShkLGcsaCl7cmV0dXJuIGguc29tZSh2PT5fSShkLGcsdikmJlFoKHYpIT09amwpfShkLGgsdikpe2NvbnN0IEk9bmV3IGNsKGcsZnVuY3Rpb24gYVUoZCxnLGgsdil7Y29uc3QgeT17''@;'; + put 'put ''fTt5W2psXT12LHYuX3NvdXJjZVNlZ21lbnQ9ZCx2Ll9zZWdtZW50SW5kZXhTaGlmdD1nLmxlbmd0aDtmb3IoY29uc3QgQyBvZiBoKWlmKCIiPT09Qy5wYXRoJiZRaChDKSE9PWpsKXtjb25zdCBJPW5ldyBjbChbXSx7fSk7SS5fc291cmNlU2VnbWVudD1kLEkuX3NlZ21lbnRJbmRleFNoaWZ0''@;'; + put 'put ''PWcubGVuZ3RoLHlbUWgoQyldPUl9cmV0dXJuIHl9KGQsZyx2LG5ldyBjbChoLGQuY2hpbGRyZW4pKSk7cmV0dXJuIEkuX3NvdXJjZVNlZ21lbnQ9ZCxJLl9zZWdtZW50SW5kZXhTaGlmdD1nLmxlbmd0aCx7c2VnbWVudEdyb3VwOkksc2xpY2VkU2VnbWVudHM6W119fWlmKDA9PT1oLmxlbmd0''@;'; + put 'put ''aCYmZnVuY3Rpb24gSzBlKGQsZyxoKXtyZXR1cm4gaC5zb21lKHY9Pl9JKGQsZyx2KSl9KGQsaCx2KSl7Y29uc3QgST1uZXcgY2woZC5zZWdtZW50cyxmdW5jdGlvbiBKMGUoZCxnLGgsdix5LEMpe2NvbnN0IEk9e307Zm9yKGNvbnN0IGogb2YgdilpZihfSShkLGgsaikmJiF5W1FoKGopXSl7''@;'; + put 'put ''Y29uc3QgdWU9bmV3IGNsKFtdLHt9KTt1ZS5fc291cmNlU2VnbWVudD1kLHVlLl9zZWdtZW50SW5kZXhTaGlmdD0ibGVnYWN5Ij09PUM/ZC5zZWdtZW50cy5sZW5ndGg6Zy5sZW5ndGgsSVtRaChqKV09dWV9cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx5KSxJKX0oZCxn''@;'; + put 'put ''LGgsdixkLmNoaWxkcmVuLHkpKTtyZXR1cm4gSS5fc291cmNlU2VnbWVudD1kLEkuX3NlZ21lbnRJbmRleFNoaWZ0PWcubGVuZ3RoLHtzZWdtZW50R3JvdXA6SSxzbGljZWRTZWdtZW50czpofX1jb25zdCBDPW5ldyBjbChkLnNlZ21lbnRzLGQuY2hpbGRyZW4pO3JldHVybiBDLl9zb3VyY2VT''@;'; + put 'put ''ZWdtZW50PWQsQy5fc2VnbWVudEluZGV4U2hpZnQ9Zy5sZW5ndGgse3NlZ21lbnRHcm91cDpDLHNsaWNlZFNlZ21lbnRzOmh9fWZ1bmN0aW9uIF9JKGQsZyxoKXtyZXR1cm4oIShkLmhhc0NoaWxkcmVuKCl8fGcubGVuZ3RoPjApfHwiZnVsbCIhPT1oLnBhdGhNYXRjaCkmJiIiPT09aC5wYXRo''@;'; + put 'put ''fWZ1bmN0aW9uIGxVKGQsZyxoLHYpe3JldHVybiEhKFFoKGQpPT09dnx8diE9PWpsJiZfSShnLGgsZCkpJiYoIioqIj09PWQucGF0aHx8d0koZyxkLGgpLm1hdGNoZWQpfWZ1bmN0aW9uIEpoKGQsZyxoKXtyZXR1cm4gMD09PWcubGVuZ3RoJiYhZC5jaGlsZHJlbltoXX1jb25zdCBuaz0hMTtj''@;'; + put 'put ''bGFzcyBjeXtjb25zdHJ1Y3RvcihnKXt0aGlzLnNlZ21lbnRHcm91cD1nfHxudWxsfX1jbGFzcyBmeXtjb25zdHJ1Y3RvcihnKXt0aGlzLnVybFRyZWU9Z319ZnVuY3Rpb24gaHkoZCl7cmV0dXJuIFVBKG5ldyBjeShkKSl9ZnVuY3Rpb24gc1UoZCl7cmV0dXJuIFVBKG5ldyBmeShkKSl9Y2xh''@;'; + put 'put ''c3MgcTBle2NvbnN0cnVjdG9yKGcsaCx2LHksQyl7dGhpcy5pbmplY3Rvcj1nLHRoaXMuY29uZmlnTG9hZGVyPWgsdGhpcy51cmxTZXJpYWxpemVyPXYsdGhpcy51cmxUcmVlPXksdGhpcy5jb25maWc9Qyx0aGlzLmFsbG93UmVkaXJlY3RzPSEwfWFwcGx5KCl7Y29uc3QgZz1iSSh0aGlzLnVy''@;'; + put 'put ''bFRyZWUucm9vdCxbXSxbXSx0aGlzLmNvbmZpZykuc2VnbWVudEdyb3VwLGg9bmV3IGNsKGcuc2VnbWVudHMsZy5jaGlsZHJlbik7cmV0dXJuIHRoaXMuZXhwYW5kU2VnbWVudEdyb3VwKHRoaXMuaW5qZWN0b3IsdGhpcy5jb25maWcsaCxqbCkucGlwZSh2dChDPT50aGlzLmNyZWF0ZVVybFRy''@;'; + put 'put ''ZWUobEkoQyksdGhpcy51cmxUcmVlLnF1ZXJ5UGFyYW1zLHRoaXMudXJsVHJlZS5mcmFnbWVudCkpKS5waXBlKFo1KEM9PntpZihDIGluc3RhbmNlb2YgZnkpcmV0dXJuIHRoaXMuYWxsb3dSZWRpcmVjdHM9ITEsdGhpcy5tYXRjaChDLnVybFRyZWUpO3Rocm93IEMgaW5zdGFuY2VvZiBjeT90''@;'; + put 'put ''aGlzLm5vTWF0Y2hFcnJvcihDKTpDfSkpfW1hdGNoKGcpe3JldHVybiB0aGlzLmV4cGFuZFNlZ21lbnRHcm91cCh0aGlzLmluamVjdG9yLHRoaXMuY29uZmlnLGcucm9vdCxqbCkucGlwZSh2dCh5PT50aGlzLmNyZWF0ZVVybFRyZWUobEkoeSksZy5xdWVyeVBhcmFtcyxnLmZyYWdtZW50KSkp''@;'; + put 'put ''LnBpcGUoWjUoeT0+e3Rocm93IHkgaW5zdGFuY2VvZiBjeT90aGlzLm5vTWF0Y2hFcnJvcih5KTp5fSkpfW5vTWF0Y2hFcnJvcihnKXtyZXR1cm4gbmV3IGVuKDQwMDIsbmspfWNyZWF0ZVVybFRyZWUoZyxoLHYpe2NvbnN0IHk9YUkoZyk7cmV0dXJuIG5ldyBZNSh5LGgsdil9ZXhwYW5kU2Vn''@;'; + put 'put ''bWVudEdyb3VwKGcsaCx2LHkpe3JldHVybiAwPT09di5zZWdtZW50cy5sZW5ndGgmJnYuaGFzQ2hpbGRyZW4oKT90aGlzLmV4cGFuZENoaWxkcmVuKGcsaCx2KS5waXBlKHZ0KEM9Pm5ldyBjbChbXSxDKSkpOnRoaXMuZXhwYW5kU2VnbWVudChnLHYsaCx2LnNlZ21lbnRzLHksITApfWV4cGFu''@;'; + put 'put ''ZENoaWxkcmVuKGcsaCx2KXtjb25zdCB5PVtdO2Zvcihjb25zdCBDIG9mIE9iamVjdC5rZXlzKHYuY2hpbGRyZW4pKSJwcmltYXJ5Ij09PUM/eS51bnNoaWZ0KEMpOnkucHVzaChDKTtyZXR1cm4gZG4oeSkucGlwZShWNShDPT57Y29uc3QgST12LmNoaWxkcmVuW0NdLGo9cUMoaCxDKTtyZXR1''@;'; + put 'put ''cm4gdGhpcy5leHBhbmRTZWdtZW50R3JvdXAoZyxqLEksQykucGlwZSh2dCh1ZT0+KHtzZWdtZW50OnVlLG91dGxldDpDfSkpKX0pLGVJKChDLEkpPT4oQ1tJLm91dGxldF09SS5zZWdtZW50LEMpLHt9KSxtWSgpKX1leHBhbmRTZWdtZW50KGcsaCx2LHksQyxJKXtyZXR1cm4gZG4odikucGlw''@;'; + put 'put ''ZShWNShqPT50aGlzLmV4cGFuZFNlZ21lbnRBZ2FpbnN0Um91dGUoZyxoLHYsaix5LEMsSSkucGlwZShaNShfZT0+e2lmKF9lIGluc3RhbmNlb2YgY3kpcmV0dXJuIGFhKG51bGwpO3Rocm93IF9lfSkpKSxZMyhqPT4hIWopLFo1KChqLHVlKT0+e2lmKGogaW5zdGFuY2VvZiBRQXx8IkVtcHR5''@;'; + put 'put ''RXJyb3IiPT09ai5uYW1lKXJldHVybiBKaChoLHksQyk/YWEobmV3IGNsKFtdLHt9KSk6aHkoaCk7dGhyb3cgan0pKX1leHBhbmRTZWdtZW50QWdhaW5zdFJvdXRlKGcsaCx2LHksQyxJLGope3JldHVybiBsVSh5LGgsQyxJKT92b2lkIDA9PT15LnJlZGlyZWN0VG8/dGhpcy5tYXRjaFNlZ21l''@;'; + put 'put ''bnRBZ2FpbnN0Um91dGUoZyxoLHksQyxJKTpqJiZ0aGlzLmFsbG93UmVkaXJlY3RzP3RoaXMuZXhwYW5kU2VnbWVudEFnYWluc3RSb3V0ZVVzaW5nUmVkaXJlY3QoZyxoLHYseSxDLEkpOmh5KGgpOmh5KGgpfWV4cGFuZFNlZ21lbnRBZ2FpbnN0Um91dGVVc2luZ1JlZGlyZWN0KGcsaCx2LHks''@;'; + put 'put ''QyxJKXtyZXR1cm4iKioiPT09eS5wYXRoP3RoaXMuZXhwYW5kV2lsZENhcmRXaXRoUGFyYW1zQWdhaW5zdFJvdXRlVXNpbmdSZWRpcmVjdChnLHYseSxJKTp0aGlzLmV4cGFuZFJlZ3VsYXJTZWdtZW50QWdhaW5zdFJvdXRlVXNpbmdSZWRpcmVjdChnLGgsdix5LEMsSSl9ZXhwYW5kV2lsZENh''@;'; + put 'put ''cmRXaXRoUGFyYW1zQWdhaW5zdFJvdXRlVXNpbmdSZWRpcmVjdChnLGgsdix5KXtjb25zdCBDPXRoaXMuYXBwbHlSZWRpcmVjdENvbW1hbmRzKFtdLHYucmVkaXJlY3RUbyx7fSk7cmV0dXJuIHYucmVkaXJlY3RUby5zdGFydHNXaXRoKCIvIik/c1UoQyk6dGhpcy5saW5lcmFsaXplU2VnbWVu''@;'; + put 'put ''dHModixDKS5waXBlKHNyKEk9Pntjb25zdCBqPW5ldyBjbChJLHt9KTtyZXR1cm4gdGhpcy5leHBhbmRTZWdtZW50KGcsaixoLEkseSwhMSl9KSl9ZXhwYW5kUmVndWxhclNlZ21lbnRBZ2FpbnN0Um91dGVVc2luZ1JlZGlyZWN0KGcsaCx2LHksQyxJKXtjb25zdHttYXRjaGVkOmosY29uc3Vt''@;'; + put 'put ''ZWRTZWdtZW50czp1ZSxyZW1haW5pbmdTZWdtZW50czpfZSxwb3NpdGlvbmFsUGFyYW1TZWdtZW50czpCZX09d0koaCx5LEMpO2lmKCFqKXJldHVybiBoeShoKTtjb25zdCBOZT10aGlzLmFwcGx5UmVkaXJlY3RDb21tYW5kcyh1ZSx5LnJlZGlyZWN0VG8sQmUpO3JldHVybiB5LnJlZGlyZWN0''@;'; + put 'put ''VG8uc3RhcnRzV2l0aCgiLyIpP3NVKE5lKTp0aGlzLmxpbmVyYWxpemVTZWdtZW50cyh5LE5lKS5waXBlKHNyKEtlPT50aGlzLmV4cGFuZFNlZ21lbnQoZyxoLHYsS2UuY29uY2F0KF9lKSxJLCExKSkpfW1hdGNoU2VnbWVudEFnYWluc3RSb3V0ZShnLGgsdix5LEMpe3JldHVybiIqKiI9PT12''@;'; + put 'put ''LnBhdGg/KGc9R1kodixnKSx2LmxvYWRDaGlsZHJlbj8odi5fbG9hZGVkUm91dGVzP2FhKHtyb3V0ZXM6di5fbG9hZGVkUm91dGVzLGluamVjdG9yOnYuX2xvYWRlZEluamVjdG9yfSk6dGhpcy5jb25maWdMb2FkZXIubG9hZENoaWxkcmVuKGcsdikpLnBpcGUodnQoaj0+KHYuX2xvYWRlZFJv''@;'; + put 'put ''dXRlcz1qLnJvdXRlcyx2Ll9sb2FkZWRJbmplY3Rvcj1qLmluamVjdG9yLG5ldyBjbCh5LHt9KSkpKTphYShuZXcgY2woeSx7fSkpKTpsSChoLHYseSxnKS5waXBlKFloKCh7bWF0Y2hlZDpJLGNvbnN1bWVkU2VnbWVudHM6aixyZW1haW5pbmdTZWdtZW50czp1ZX0pPT57dmFyIF9lO3JldHVy''@;'; + put 'put ''biBJPyhnPW51bGwhPT0oX2U9di5faW5qZWN0b3IpJiZ2b2lkIDAhPT1fZT9fZTpnLHRoaXMuZ2V0Q2hpbGRDb25maWcoZyx2LHkpLnBpcGUoc3IoTmU9Pnt2YXIgS2U7Y29uc3QgZHQ9bnVsbCE9PShLZT1OZS5pbmplY3RvcikmJnZvaWQgMCE9PUtlP0tlOmcsT3Q9TmUucm91dGVzLHtzZWdt''@;'; + put 'put ''ZW50R3JvdXA6JHQsc2xpY2VkU2VnbWVudHM6Zm59PWJJKGgsaix1ZSxPdCksTG49bmV3IGNsKCR0LnNlZ21lbnRzLCR0LmNoaWxkcmVuKTtpZigwPT09Zm4ubGVuZ3RoJiZMbi5oYXNDaGlsZHJlbigpKXJldHVybiB0aGlzLmV4cGFuZENoaWxkcmVuKGR0LE90LExuKS5waXBlKHZ0KHdyPT5u''@;'; + put 'put ''ZXcgY2woaix3cikpKTtpZigwPT09T3QubGVuZ3RoJiYwPT09Zm4ubGVuZ3RoKXJldHVybiBhYShuZXcgY2woaix7fSkpO2NvbnN0IGlyPVFoKHYpPT09QztyZXR1cm4gdGhpcy5leHBhbmRTZWdtZW50KGR0LExuLE90LGZuLGlyP2psOkMsITApLnBpcGUodnQoU3I9Pm5ldyBjbChqLmNvbmNh''@;'; + put 'put ''dChTci5zZWdtZW50cyksU3IuY2hpbGRyZW4pKSl9KSkpOmh5KGgpfSkpfWdldENoaWxkQ29uZmlnKGcsaCx2KXtyZXR1cm4gaC5jaGlsZHJlbj9hYSh7cm91dGVzOmguY2hpbGRyZW4saW5qZWN0b3I6Z30pOmgubG9hZENoaWxkcmVuP3ZvaWQgMCE9PWguX2xvYWRlZFJvdXRlcz9hYSh7cm91''@;'; + put 'put ''dGVzOmguX2xvYWRlZFJvdXRlcyxpbmplY3RvcjpoLl9sb2FkZWRJbmplY3Rvcn0pOmZ1bmN0aW9uIGlVKGQsZyxoLHYpe2NvbnN0IHk9Zy5jYW5Mb2FkO3JldHVybiB2b2lkIDA9PT15fHwwPT09eS5sZW5ndGg/YWEoITApOmFhKHkubWFwKEk9Pntjb25zdCBqPWQuZ2V0KEkpLHVlPWZ1bmN0''@;'; + put 'put ''aW9uIHRrKGQpe3JldHVybiBkJiZzeShkLmNhbkxvYWQpfShqKT9qLmNhbkxvYWQoZyxoKTpqKGcsaCk7cmV0dXJuIEJ1KHVlKX0pKS5waXBlKG03KCksb1UoKSl9KGcsaCx2KS5waXBlKHNyKHk9Pnk/dGhpcy5jb25maWdMb2FkZXIubG9hZENoaWxkcmVuKGcsaCkucGlwZShBYShDPT57aC5f''@;'; + put 'put ''bG9hZGVkUm91dGVzPUMucm91dGVzLGguX2xvYWRlZEluamVjdG9yPUMuaW5qZWN0b3J9KSk6ZnVuY3Rpb24gdUgoZCl7cmV0dXJuIFVBKGpZKG5rLDMpKX0oKSkpOmFhKHtyb3V0ZXM6W10saW5qZWN0b3I6Z30pfWxpbmVyYWxpemVTZWdtZW50cyhnLGgpe2xldCB2PVtdLHk9aC5yb290O2Zv''@;'; + put 'put ''cig7Oyl7aWYodj12LmNvbmNhdCh5LnNlZ21lbnRzKSwwPT09eS5udW1iZXJPZkNoaWxkcmVuKXJldHVybiBhYSh2KTtpZih5Lm51bWJlck9mQ2hpbGRyZW4+MXx8IXkuY2hpbGRyZW5bamxdKXJldHVybiBVQShuZXcgZW4oNGUzLG5rKSk7eT15LmNoaWxkcmVuW2psXX19YXBwbHlSZWRpcmVj''@;'; + put 'put ''dENvbW1hbmRzKGcsaCx2KXtyZXR1cm4gdGhpcy5hcHBseVJlZGlyZWN0Q3JlYXRlVXJsVHJlZShoLHRoaXMudXJsU2VyaWFsaXplci5wYXJzZShoKSxnLHYpfWFwcGx5UmVkaXJlY3RDcmVhdGVVcmxUcmVlKGcsaCx2LHkpe2NvbnN0IEM9dGhpcy5jcmVhdGVTZWdtZW50R3JvdXAoZyxoLnJv''@;'; + put 'put ''b3Qsdix5KTtyZXR1cm4gbmV3IFk1KEMsdGhpcy5jcmVhdGVRdWVyeVBhcmFtcyhoLnF1ZXJ5UGFyYW1zLHRoaXMudXJsVHJlZS5xdWVyeVBhcmFtcyksaC5mcmFnbWVudCl9Y3JlYXRlUXVlcnlQYXJhbXMoZyxoKXtjb25zdCB2PXt9O3JldHVybiBUYyhnLCh5LEMpPT57aWYoInN0cmluZyI9''@;'; + put 'put ''PXR5cGVvZiB5JiZ5LnN0YXJ0c1dpdGgoIjoiKSl7Y29uc3Qgaj15LnN1YnN0cmluZygxKTt2W0NdPWhbal19ZWxzZSB2W0NdPXl9KSx2fWNyZWF0ZVNlZ21lbnRHcm91cChnLGgsdix5KXtjb25zdCBDPXRoaXMuY3JlYXRlU2VnbWVudHMoZyxoLnNlZ21lbnRzLHYseSk7bGV0IEk9e307cmV0''@;'; + put 'put ''dXJuIFRjKGguY2hpbGRyZW4sKGosdWUpPT57SVt1ZV09dGhpcy5jcmVhdGVTZWdtZW50R3JvdXAoZyxqLHYseSl9KSxuZXcgY2woQyxJKX1jcmVhdGVTZWdtZW50cyhnLGgsdix5KXtyZXR1cm4gaC5tYXAoQz0+Qy5wYXRoLnN0YXJ0c1dpdGgoIjoiKT90aGlzLmZpbmRQb3NQYXJhbShnLEMs''@;'; + put 'put ''eSk6dGhpcy5maW5kT3JSZXR1cm4oQyx2KSl9ZmluZFBvc1BhcmFtKGcsaCx2KXtjb25zdCB5PXZbaC5wYXRoLnN1YnN0cmluZygxKV07aWYoIXkpdGhyb3cgbmV3IGVuKDQwMDEsbmspO3JldHVybiB5fWZpbmRPclJldHVybihnLGgpe2xldCB2PTA7Zm9yKGNvbnN0IHkgb2YgaCl7aWYoeS5w''@;'; + put 'put ''YXRoPT09Zy5wYXRoKXJldHVybiBoLnNwbGljZSh2KSx5O3YrK31yZXR1cm4gZ319Y2xhc3MgZW9le31jbGFzcyByb2V7Y29uc3RydWN0b3IoZyxoLHYseSxDLEksaix1ZSl7dGhpcy5pbmplY3Rvcj1nLHRoaXMucm9vdENvbXBvbmVudFR5cGU9aCx0aGlzLmNvbmZpZz12LHRoaXMudXJsVHJl''@;'; + put 'put ''ZT15LHRoaXMudXJsPUMsdGhpcy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5PUksdGhpcy5yZWxhdGl2ZUxpbmtSZXNvbHV0aW9uPWosdGhpcy51cmxTZXJpYWxpemVyPXVlfXJlY29nbml6ZSgpe2NvbnN0IGc9YkkodGhpcy51cmxUcmVlLnJvb3QsW10sW10sdGhpcy5jb25maWcuZmlsdGVy''@;'; + put 'put ''KGg9PnZvaWQgMD09PWgucmVkaXJlY3RUbyksdGhpcy5yZWxhdGl2ZUxpbmtSZXNvbHV0aW9uKS5zZWdtZW50R3JvdXA7cmV0dXJuIHRoaXMucHJvY2Vzc1NlZ21lbnRHcm91cCh0aGlzLmluamVjdG9yLHRoaXMuY29uZmlnLGcsamwpLnBpcGUodnQoaD0+e2lmKG51bGw9PT1oKXJldHVybiBu''@;'; + put 'put ''dWxsO2NvbnN0IHY9bmV3IEtDKFtdLE9iamVjdC5mcmVlemUoe30pLE9iamVjdC5mcmVlemUoT2JqZWN0LmFzc2lnbih7fSx0aGlzLnVybFRyZWUucXVlcnlQYXJhbXMpKSx0aGlzLnVybFRyZWUuZnJhZ21lbnQse30samwsdGhpcy5yb290Q29tcG9uZW50VHlwZSxudWxsLHRoaXMudXJsVHJl''@;'; + put 'put ''ZS5yb290LC0xLHt9KSx5PW5ldyBXNih2LGgpLEM9bmV3IEZZKHRoaXMudXJsLHkpO3JldHVybiB0aGlzLmluaGVyaXRQYXJhbXNBbmREYXRhKEMuX3Jvb3QpLEN9KSl9aW5oZXJpdFBhcmFtc0FuZERhdGEoZyl7Y29uc3QgaD1nLnZhbHVlLHY9QlkoaCx0aGlzLnBhcmFtc0luaGVyaXRhbmNl''@;'; + put 'put ''U3RyYXRlZ3kpO2gucGFyYW1zPU9iamVjdC5mcmVlemUodi5wYXJhbXMpLGguZGF0YT1PYmplY3QuZnJlZXplKHYuZGF0YSksZy5jaGlsZHJlbi5mb3JFYWNoKHk9PnRoaXMuaW5oZXJpdFBhcmFtc0FuZERhdGEoeSkpfXByb2Nlc3NTZWdtZW50R3JvdXAoZyxoLHYseSl7cmV0dXJuIDA9PT12''@;'; + put 'put ''LnNlZ21lbnRzLmxlbmd0aCYmdi5oYXNDaGlsZHJlbigpP3RoaXMucHJvY2Vzc0NoaWxkcmVuKGcsaCx2KTp0aGlzLnByb2Nlc3NTZWdtZW50KGcsaCx2LHYuc2VnbWVudHMseSl9cHJvY2Vzc0NoaWxkcmVuKGcsaCx2KXtyZXR1cm4gZG4oT2JqZWN0LmtleXModi5jaGlsZHJlbikpLnBpcGUo''@;'; + put 'put ''VjUoeT0+e2NvbnN0IEM9di5jaGlsZHJlblt5XSxJPXFDKGgseSk7cmV0dXJuIHRoaXMucHJvY2Vzc1NlZ21lbnRHcm91cChnLEksQyx5KX0pLGVJKCh5LEMpPT55JiZDPyh5LnB1c2goLi4uQykseSk6bnVsbCksZnVuY3Rpb24gdTBlKGQsZz0hMSl7cmV0dXJuIGg9PmgubGlmdChuZXcgYzBl''@;'; + put 'put ''KGQsZykpfSh5PT5udWxsIT09eSksaDcobnVsbCksbVkoKSx2dCh5PT57aWYobnVsbD09PXkpcmV0dXJuIG51bGw7Y29uc3QgQz1jVSh5KTtyZXR1cm4gZnVuY3Rpb24ga0koZCl7ZC5zb3J0KChnLGgpPT5nLnZhbHVlLm91dGxldD09PWpsPy0xOmgudmFsdWUub3V0bGV0PT09amw/MTpnLnZh''@;'; + put 'put ''bHVlLm91dGxldC5sb2NhbGVDb21wYXJlKGgudmFsdWUub3V0bGV0KSl9KEMpLEN9KSl9cHJvY2Vzc1NlZ21lbnQoZyxoLHYseSxDKXtyZXR1cm4gZG4oaCkucGlwZShWNShJPT57dmFyIGo7cmV0dXJuIHRoaXMucHJvY2Vzc1NlZ21lbnRBZ2FpbnN0Um91dGUobnVsbCE9PShqPUkuX2luamVj''@;'; + put 'put ''dG9yKSYmdm9pZCAwIT09aj9qOmcsSSx2LHksQyl9KSxZMyhJPT4hIUkpLFo1KEk9PntpZihJIGluc3RhbmNlb2YgUUEpcmV0dXJuIEpoKHYseSxDKT9hYShbXSk6YWEobnVsbCk7dGhyb3cgSX0pKX1wcm9jZXNzU2VnbWVudEFnYWluc3RSb3V0ZShnLGgsdix5LEMpe3ZhciBJLGo7aWYoaC5y''@;'; + put 'put ''ZWRpcmVjdFRvfHwhbFUoaCx2LHksQykpcmV0dXJuIGFhKG51bGwpO2xldCB1ZTtpZigiKioiPT09aC5wYXRoKXtjb25zdCBfZT15Lmxlbmd0aD4wP1BGKHkpLnBhcmFtZXRlcnM6e30sQmU9aEgodikreS5sZW5ndGg7dWU9YWEoe3NuYXBzaG90Om5ldyBLQyh5LF9lLE9iamVjdC5mcmVlemUo''@;'; + put 'put ''T2JqZWN0LmFzc2lnbih7fSx0aGlzLnVybFRyZWUucXVlcnlQYXJhbXMpKSx0aGlzLnVybFRyZWUuZnJhZ21lbnQsU0koaCksUWgoaCksbnVsbCE9PShqPW51bGwhPT0oST1oLmNvbXBvbmVudCkmJnZvaWQgMCE9PUk/STpoLl9sb2FkZWRDb21wb25lbnQpJiZ2b2lkIDAhPT1qP2o6bnVsbCxo''@;'; + put 'put ''LGZIKHYpLEJlLGZVKGgpLEJlKSxjb25zdW1lZFNlZ21lbnRzOltdLHJlbWFpbmluZ1NlZ21lbnRzOltdfSl9ZWxzZSB1ZT1sSCh2LGgseSxnKS5waXBlKHZ0KCh7bWF0Y2hlZDpfZSxjb25zdW1lZFNlZ21lbnRzOkJlLHJlbWFpbmluZ1NlZ21lbnRzOk5lLHBhcmFtZXRlcnM6S2V9KT0+e3Zh''@;'; + put 'put ''ciBkdCxPdDtpZighX2UpcmV0dXJuIG51bGw7Y29uc3QgJHQ9aEgodikrQmUubGVuZ3RoO3JldHVybntzbmFwc2hvdDpuZXcgS0MoQmUsS2UsT2JqZWN0LmZyZWV6ZShPYmplY3QuYXNzaWduKHt9LHRoaXMudXJsVHJlZS5xdWVyeVBhcmFtcykpLHRoaXMudXJsVHJlZS5mcmFnbWVudCxTSSho''@;'; + put 'put ''KSxRaChoKSxudWxsIT09KE90PW51bGwhPT0oZHQ9aC5jb21wb25lbnQpJiZ2b2lkIDAhPT1kdD9kdDpoLl9sb2FkZWRDb21wb25lbnQpJiZ2b2lkIDAhPT1PdD9PdDpudWxsLGgsZkgodiksJHQsZlUoaCksJHQpLGNvbnN1bWVkU2VnbWVudHM6QmUscmVtYWluaW5nU2VnbWVudHM6TmV9fSkp''@;'; + put 'put ''O3JldHVybiB1ZS5waXBlKFloKF9lPT57dmFyIEJlLE5lO2lmKG51bGw9PT1fZSlyZXR1cm4gYWEobnVsbCk7Y29uc3R7c25hcHNob3Q6S2UsY29uc3VtZWRTZWdtZW50czpkdCxyZW1haW5pbmdTZWdtZW50czpPdH09X2U7Zz1udWxsIT09KEJlPWguX2luamVjdG9yKSYmdm9pZCAwIT09QmU/''@;'; + put 'put ''QmU6Zztjb25zdCAkdD1udWxsIT09KE5lPWguX2xvYWRlZEluamVjdG9yKSYmdm9pZCAwIT09TmU/TmU6Zyxmbj1mdW5jdGlvbiBjSChkKXtyZXR1cm4gZC5jaGlsZHJlbj9kLmNoaWxkcmVuOmQubG9hZENoaWxkcmVuP2QuX2xvYWRlZFJvdXRlczpbXX0oaCkse3NlZ21lbnRHcm91cDpMbixz''@;'; + put 'put ''bGljZWRTZWdtZW50czppcn09YkkodixkdCxPdCxmbi5maWx0ZXIoU3I9PnZvaWQgMD09PVNyLnJlZGlyZWN0VG8pLHRoaXMucmVsYXRpdmVMaW5rUmVzb2x1dGlvbik7aWYoMD09PWlyLmxlbmd0aCYmTG4uaGFzQ2hpbGRyZW4oKSlyZXR1cm4gdGhpcy5wcm9jZXNzQ2hpbGRyZW4oJHQsZm4s''@;'; + put 'put ''TG4pLnBpcGUodnQoU3I9Pm51bGw9PT1Tcj9udWxsOltuZXcgVzYoS2UsU3IpXSkpO2lmKDA9PT1mbi5sZW5ndGgmJjA9PT1pci5sZW5ndGgpcmV0dXJuIGFhKFtuZXcgVzYoS2UsW10pXSk7Y29uc3QgbXI9UWgoaCk9PT1DO3JldHVybiB0aGlzLnByb2Nlc3NTZWdtZW50KCR0LGZuLExuLGly''@;'; + put 'put ''LG1yP2psOkMpLnBpcGUodnQoU3I9Pm51bGw9PT1Tcj9udWxsOltuZXcgVzYoS2UsU3IpXSkpfSkpfX1mdW5jdGlvbiBpb2UoZCl7Y29uc3QgZz1kLnZhbHVlLnJvdXRlQ29uZmlnO3JldHVybiBnJiYiIj09PWcucGF0aCYmdm9pZCAwPT09Zy5yZWRpcmVjdFRvfWZ1bmN0aW9uIGNVKGQpe2Nv''@;'; + put 'put ''bnN0IGc9W10saD1uZXcgU2V0O2Zvcihjb25zdCB2IG9mIGQpe2lmKCFpb2Uodikpe2cucHVzaCh2KTtjb250aW51ZX1jb25zdCB5PWcuZmluZChDPT52LnZhbHVlLnJvdXRlQ29uZmlnPT09Qy52YWx1ZS5yb3V0ZUNvbmZpZyk7dm9pZCAwIT09eT8oeS5jaGlsZHJlbi5wdXNoKC4uLnYuY2hp''@;'; + put 'put ''bGRyZW4pLGguYWRkKHkpKTpnLnB1c2godil9Zm9yKGNvbnN0IHYgb2YgaCl7Y29uc3QgeT1jVSh2LmNoaWxkcmVuKTtnLnB1c2gobmV3IFc2KHYudmFsdWUseSkpfXJldHVybiBnLmZpbHRlcih2PT4haC5oYXModikpfWZ1bmN0aW9uIGZIKGQpe2xldCBnPWQ7Zm9yKDtnLl9zb3VyY2VTZWdt''@;'; + put 'put ''ZW50OylnPWcuX3NvdXJjZVNlZ21lbnQ7cmV0dXJuIGd9ZnVuY3Rpb24gaEgoZCl7dmFyIGcsaDtsZXQgdj1kLHk9bnVsbCE9PShnPXYuX3NlZ21lbnRJbmRleFNoaWZ0KSYmdm9pZCAwIT09Zz9nOjA7Zm9yKDt2Ll9zb3VyY2VTZWdtZW50Oyl2PXYuX3NvdXJjZVNlZ21lbnQseSs9bnVsbCE9''@;'; + put 'put ''PShoPXYuX3NlZ21lbnRJbmRleFNoaWZ0KSYmdm9pZCAwIT09aD9oOjA7cmV0dXJuIHktMX1mdW5jdGlvbiBTSShkKXtyZXR1cm4gZC5kYXRhfHx7fX1mdW5jdGlvbiBmVShkKXtyZXR1cm4gZC5yZXNvbHZlfHx7fX1jb25zdCBkVT1TeW1ib2woIlJvdXRlVGl0bGUiKTtmdW5jdGlvbiBNSShk''@;'; + put 'put ''KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGQudGl0bGV8fG51bGw9PT1kLnRpdGxlfWZ1bmN0aW9uIHBIKGQpe3JldHVybiBZaChnPT57Y29uc3QgaD1kKGcpO3JldHVybiBoP2RuKGgpLnBpcGUodnQoKCk9PmcpKTphYShnKX0pfWxldCBtVT0oKCk9PntjbGFzcyBke2J1aWxkVGl0bGUoaCl7''@;'; + put 'put ''dmFyIHY7bGV0IHksQz1oLnJvb3Q7Zm9yKDt2b2lkIDAhPT1DOyl5PW51bGwhPT0odj10aGlzLmdldFJlc29sdmVkVGl0bGVGb3JSb3V0ZShDKSkmJnZvaWQgMCE9PXY/djp5LEM9Qy5jaGlsZHJlbi5maW5kKEk9Pkkub3V0bGV0PT09amwpO3JldHVybiB5fWdldFJlc29sdmVkVGl0bGVGb3JS''@;'; + put 'put ''b3V0ZShoKXtyZXR1cm4gaC5kYXRhW2RVXX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIGgyKHZVKX0scHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKSx2VT0o''@;'; + put 'put ''KCk9PntjbGFzcyBkIGV4dGVuZHMgbVV7Y29uc3RydWN0b3IoaCl7c3VwZXIoKSx0aGlzLnRpdGxlPWh9dXBkYXRlVGl0bGUoaCl7Y29uc3Qgdj10aGlzLmJ1aWxkVGl0bGUoaCk7dm9pZCAwIT09diYmdGhpcy50aXRsZS5zZXRUaXRsZSh2KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9u''@;'; + put 'put ''KGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koekEpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTtjbGFzcyB1b2V7fWNsYXNzIGNvZSBleHRlbmRzIGNsYXNzIEFVe3Nob3VsZERldGFjaChnKXtyZXR1cm4hMX1z''@;'; + put 'put ''dG9yZShnLGgpe31zaG91bGRBdHRhY2goZyl7cmV0dXJuITF9cmV0cmlldmUoZyl7cmV0dXJuIG51bGx9c2hvdWxkUmV1c2VSb3V0ZShnLGgpe3JldHVybiBnLnJvdXRlQ29uZmlnPT09aC5yb3V0ZUNvbmZpZ319e31jb25zdCBnSD1uZXcgemUoIiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rv''@;'; + put 'put ''cnk6KCk9Pih7fSl9KSxFST1uZXcgemUoIlJPVVRFUyIpO2xldCB2SD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5pbmplY3Rvcj1oLHRoaXMuY29tcGlsZXI9dix0aGlzLmNvbXBvbmVudExvYWRlcnM9bmV3IFdlYWtNYXAsdGhpcy5jaGlsZHJlbkxvYWRlcnM9bmV3IFdl''@;'; + put 'put ''YWtNYXB9bG9hZENvbXBvbmVudChoKXtpZih0aGlzLmNvbXBvbmVudExvYWRlcnMuZ2V0KGgpKXJldHVybiB0aGlzLmNvbXBvbmVudExvYWRlcnMuZ2V0KGgpO2lmKGguX2xvYWRlZENvbXBvbmVudClyZXR1cm4gYWEoaC5fbG9hZGVkQ29tcG9uZW50KTt0aGlzLm9uTG9hZFN0YXJ0TGlzdGVu''@;'; + put 'put ''ZXImJnRoaXMub25Mb2FkU3RhcnRMaXN0ZW5lcihoKTtjb25zdCB2PUJ1KGgubG9hZENvbXBvbmVudCgpKS5waXBlKEFhKEM9Pnt0aGlzLm9uTG9hZEVuZExpc3RlbmVyJiZ0aGlzLm9uTG9hZEVuZExpc3RlbmVyKGgpLGguX2xvYWRlZENvbXBvbmVudD1DfSksdEkoKCk9Pnt0aGlzLmNvbXBv''@;'; + put 'put ''bmVudExvYWRlcnMuZGVsZXRlKGgpfSkpLHk9bmV3IHBuKHYsKCk9Pm5ldyAkZSkucGlwZShBbigpKTtyZXR1cm4gdGhpcy5jb21wb25lbnRMb2FkZXJzLnNldChoLHkpLHl9bG9hZENoaWxkcmVuKGgsdil7aWYodGhpcy5jaGlsZHJlbkxvYWRlcnMuZ2V0KHYpKXJldHVybiB0aGlzLmNoaWxk''@;'; + put 'put ''cmVuTG9hZGVycy5nZXQodik7aWYodi5fbG9hZGVkUm91dGVzKXJldHVybiBhYSh7cm91dGVzOnYuX2xvYWRlZFJvdXRlcyxpbmplY3Rvcjp2Ll9sb2FkZWRJbmplY3Rvcn0pO3RoaXMub25Mb2FkU3RhcnRMaXN0ZW5lciYmdGhpcy5vbkxvYWRTdGFydExpc3RlbmVyKHYpO2NvbnN0IEM9dGhp''@;'; + put 'put ''cy5sb2FkTW9kdWxlRmFjdG9yeU9yUm91dGVzKHYubG9hZENoaWxkcmVuKS5waXBlKHZ0KGo9Pnt0aGlzLm9uTG9hZEVuZExpc3RlbmVyJiZ0aGlzLm9uTG9hZEVuZExpc3RlbmVyKHYpO2xldCB1ZSxfZSxCZT0hMTtBcnJheS5pc0FycmF5KGopP19lPWo6KHVlPWouY3JlYXRlKGgpLmluamVj''@;'; + put 'put ''dG9yLF9lPUJGKHVlLmdldChFSSxbXSxqMC5TZWxmfGowLk9wdGlvbmFsKSkpO3JldHVybntyb3V0ZXM6X2UubWFwKG5IKSxpbmplY3Rvcjp1ZX19KSx0SSgoKT0+e3RoaXMuY2hpbGRyZW5Mb2FkZXJzLmRlbGV0ZSh2KX0pKSxJPW5ldyBwbihDLCgpPT5uZXcgJGUpLnBpcGUoQW4oKSk7cmV0''@;'; + put 'put ''dXJuIHRoaXMuY2hpbGRyZW5Mb2FkZXJzLnNldCh2LEkpLEl9bG9hZE1vZHVsZUZhY3RvcnlPclJvdXRlcyhoKXtyZXR1cm4gQnUoaCgpKS5waXBlKHNyKHY9PnYgaW5zdGFuY2VvZiBDMXx8QXJyYXkuaXNBcnJheSh2KT9hYSh2KTpkbih0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBc3lu''@;'; + put 'put ''Yyh2KSkpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koa3MpLENpKG1UKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3Mgcmt7fWNsYXNzIHdVe3Nob3VsZFByb2Nlc3NVcmwoZyl7''@;'; + put 'put ''cmV0dXJuITB9ZXh0cmFjdChnKXtyZXR1cm4gZ31tZXJnZShnLGgpe3JldHVybiBnfX1mdW5jdGlvbiBiVShkKXt0aHJvdyBkfWZ1bmN0aW9uIGZvZShkLGcsaCl7cmV0dXJuIGcucGFyc2UoIi8iKX1jb25zdCBob2U9e3BhdGhzOiJleGFjdCIsZnJhZ21lbnQ6Imlnbm9yZWQiLG1hdHJpeFBh''@;'; + put 'put ''cmFtczoiaWdub3JlZCIscXVlcnlQYXJhbXM6ImV4YWN0In0seEk9e3BhdGhzOiJzdWJzZXQiLGZyYWdtZW50OiJpZ25vcmVkIixtYXRyaXhQYXJhbXM6Imlnbm9yZWQiLHF1ZXJ5UGFyYW1zOiJzdWJzZXQifTtmdW5jdGlvbiBfVSgpe3ZhciBkLGc7Y29uc3QgaD1oMihVNSksdj1oMigkQyks''@;'; + put 'put ''eT1oMihWNiksQz1oMihrcyksST1oMihtVCksaj1udWxsIT09KGQ9aDIoRUkse29wdGlvbmFsOiEwfSkpJiZ2b2lkIDAhPT1kP2Q6W10sdWU9bnVsbCE9PShnPWgyKGdILHtvcHRpb25hbDohMH0pKSYmdm9pZCAwIT09Zz9nOnt9LF9lPWgyKHZVKSxCZT1oMihtVSx7b3B0aW9uYWw6ITB9KSxO''@;'; + put 'put ''ZT1oMihyayx7b3B0aW9uYWw6ITB9KSxLZT1oMih1b2Use29wdGlvbmFsOiEwfSksZHQ9bmV3IFpsKG51bGwsaCx2LHksQyxJLEJGKGopKTtyZXR1cm4gTmUmJihkdC51cmxIYW5kbGluZ1N0cmF0ZWd5PU5lKSxLZSYmKGR0LnJvdXRlUmV1c2VTdHJhdGVneT1LZSksZHQudGl0bGVTdHJhdGVn''@;'; + put 'put ''eT1udWxsIT1CZT9CZTpfZSxmdW5jdGlvbiBkb2UoZCxnKXtkLmVycm9ySGFuZGxlciYmKGcuZXJyb3JIYW5kbGVyPWQuZXJyb3JIYW5kbGVyKSxkLm1hbGZvcm1lZFVyaUVycm9ySGFuZGxlciYmKGcubWFsZm9ybWVkVXJpRXJyb3JIYW5kbGVyPWQubWFsZm9ybWVkVXJpRXJyb3JIYW5kbGVy''@;'; + put 'put ''KSxkLm9uU2FtZVVybE5hdmlnYXRpb24mJihnLm9uU2FtZVVybE5hdmlnYXRpb249ZC5vblNhbWVVcmxOYXZpZ2F0aW9uKSxkLnBhcmFtc0luaGVyaXRhbmNlU3RyYXRlZ3kmJihnLnBhcmFtc0luaGVyaXRhbmNlU3RyYXRlZ3k9ZC5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5KSxkLnJlbGF0''@;'; + put 'put ''aXZlTGlua1Jlc29sdXRpb24mJihnLnJlbGF0aXZlTGlua1Jlc29sdXRpb249ZC5yZWxhdGl2ZUxpbmtSZXNvbHV0aW9uKSxkLnVybFVwZGF0ZVN0cmF0ZWd5JiYoZy51cmxVcGRhdGVTdHJhdGVneT1kLnVybFVwZGF0ZVN0cmF0ZWd5KSxkLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb24m''@;'; + put 'put ''JihnLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb249ZC5jYW5jZWxlZE5hdmlnYXRpb25SZXNvbHV0aW9uKX0odWUsZHQpLGR0fWxldCBabD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqLHVlKXt0aGlzLnJvb3RDb21wb25lbnRUeXBlPWgsdGhpcy51cmxTZXJpYWxp''@;'; + put 'put ''emVyPXYsdGhpcy5yb290Q29udGV4dHM9eSx0aGlzLmxvY2F0aW9uPUMsdGhpcy5jb25maWc9dWUsdGhpcy5sYXN0U3VjY2Vzc2Z1bE5hdmlnYXRpb249bnVsbCx0aGlzLmN1cnJlbnROYXZpZ2F0aW9uPW51bGwsdGhpcy5kaXNwb3NlZD0hMSx0aGlzLm5hdmlnYXRpb25JZD0wLHRoaXMuY3Vy''@;'; + put 'put ''cmVudFBhZ2VJZD0wLHRoaXMuaXNOZ1pvbmVFbmFibGVkPSExLHRoaXMuZXZlbnRzPW5ldyAkZSx0aGlzLmVycm9ySGFuZGxlcj1iVSx0aGlzLm1hbGZvcm1lZFVyaUVycm9ySGFuZGxlcj1mb2UsdGhpcy5uYXZpZ2F0ZWQ9ITEsdGhpcy5sYXN0U3VjY2Vzc2Z1bElkPS0xLHRoaXMuYWZ0ZXJQ''@;'; + put 'put ''cmVhY3RpdmF0aW9uPSgpPT5hYSh2b2lkIDApLHRoaXMudXJsSGFuZGxpbmdTdHJhdGVneT1uZXcgd1UsdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3k9bmV3IGNvZSx0aGlzLm9uU2FtZVVybE5hdmlnYXRpb249Imlnbm9yZSIsdGhpcy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5PSJlbXB0eU9u''@;'; + put 'put ''bHkiLHRoaXMudXJsVXBkYXRlU3RyYXRlZ3k9ImRlZmVycmVkIix0aGlzLnJlbGF0aXZlTGlua1Jlc29sdXRpb249ImNvcnJlY3RlZCIsdGhpcy5jYW5jZWxlZE5hdmlnYXRpb25SZXNvbHV0aW9uPSJyZXBsYWNlIix0aGlzLmNvbmZpZ0xvYWRlcj1JLmdldCh2SCksdGhpcy5jb25maWdMb2Fk''@;'; + put 'put ''ZXIub25Mb2FkRW5kTGlzdGVuZXI9S2U9PnRoaXMudHJpZ2dlckV2ZW50KG5ldyBYQyhLZSkpLHRoaXMuY29uZmlnTG9hZGVyLm9uTG9hZFN0YXJ0TGlzdGVuZXI9S2U9PnRoaXMudHJpZ2dlckV2ZW50KG5ldyBUMGUoS2UpKSx0aGlzLm5nTW9kdWxlPUkuZ2V0KE4zKSx0aGlzLmNvbnNvbGU9''@;'; + put 'put ''SS5nZXQobnJlKTtjb25zdCBOZT1JLmdldChfbCk7dGhpcy5pc05nWm9uZUVuYWJsZWQ9TmUgaW5zdGFuY2VvZiBfbCYmX2wuaXNJbkFuZ3VsYXJab25lKCksdGhpcy5yZXNldENvbmZpZyh1ZSksdGhpcy5jdXJyZW50VXJsVHJlZT1mdW5jdGlvbiBwMGUoKXtyZXR1cm4gbmV3IFk1KG5ldyBj''@;'; + put 'put ''bChbXSx7fSkse30sbnVsbCl9KCksdGhpcy5yYXdVcmxUcmVlPXRoaXMuY3VycmVudFVybFRyZWUsdGhpcy5icm93c2VyVXJsVHJlZT10aGlzLmN1cnJlbnRVcmxUcmVlLHRoaXMucm91dGVyU3RhdGU9UlkodGhpcy5jdXJyZW50VXJsVHJlZSx0aGlzLnJvb3RDb21wb25lbnRUeXBlKSx0aGlz''@;'; + put 'put ''LnRyYW5zaXRpb25zPW5ldyBjcyh7aWQ6MCx0YXJnZXRQYWdlSWQ6MCxjdXJyZW50VXJsVHJlZTp0aGlzLmN1cnJlbnRVcmxUcmVlLGN1cnJlbnRSYXdVcmw6dGhpcy5jdXJyZW50VXJsVHJlZSxleHRyYWN0ZWRVcmw6dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LmV4dHJhY3QodGhpcy5jdXJy''@;'; + put 'put ''ZW50VXJsVHJlZSksdXJsQWZ0ZXJSZWRpcmVjdHM6dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LmV4dHJhY3QodGhpcy5jdXJyZW50VXJsVHJlZSkscmF3VXJsOnRoaXMuY3VycmVudFVybFRyZWUsZXh0cmFzOnt9LHJlc29sdmU6bnVsbCxyZWplY3Q6bnVsbCxwcm9taXNlOlByb21pc2UucmVz''@;'; + put 'put ''b2x2ZSghMCksc291cmNlOiJpbXBlcmF0aXZlIixyZXN0b3JlZFN0YXRlOm51bGwsY3VycmVudFNuYXBzaG90OnRoaXMucm91dGVyU3RhdGUuc25hcHNob3QsdGFyZ2V0U25hcHNob3Q6bnVsbCxjdXJyZW50Um91dGVyU3RhdGU6dGhpcy5yb3V0ZXJTdGF0ZSx0YXJnZXRSb3V0ZXJTdGF0ZTpu''@;'; + put 'put ''dWxsLGd1YXJkczp7Y2FuQWN0aXZhdGVDaGVja3M6W10sY2FuRGVhY3RpdmF0ZUNoZWNrczpbXX0sZ3VhcmRzUmVzdWx0Om51bGx9KSx0aGlzLm5hdmlnYXRpb25zPXRoaXMuc2V0dXBOYXZpZ2F0aW9ucyh0aGlzLnRyYW5zaXRpb25zKSx0aGlzLnByb2Nlc3NOYXZpZ2F0aW9ucygpfWdldCBi''@;'; + put 'put ''cm93c2VyUGFnZUlkKCl7dmFyIGg7cmV0dXJuIG51bGw9PT0oaD10aGlzLmxvY2F0aW9uLmdldFN0YXRlKCkpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLlx1MDI3NXJvdXRlclBhZ2VJZH1zZXR1cE5hdmlnYXRpb25zKGgpe2NvbnN0IHY9dGhpcy5ldmVudHM7cmV0dXJuIGgucGlwZShMMih5PT4w''@;'; + put 'put ''IT09eS5pZCksdnQoeT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHkpLHtleHRyYWN0ZWRVcmw6dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LmV4dHJhY3QoeS5yYXdVcmwpfSkpLFloKHk9PntsZXQgQz0hMSxJPSExO3JldHVybiBhYSh5KS5waXBlKEFhKGo9Pnt0aGlzLmN1cnJl''@;'; + put 'put ''bnROYXZpZ2F0aW9uPXtpZDpqLmlkLGluaXRpYWxVcmw6ai5yYXdVcmwsZXh0cmFjdGVkVXJsOmouZXh0cmFjdGVkVXJsLHRyaWdnZXI6ai5zb3VyY2UsZXh0cmFzOmouZXh0cmFzLHByZXZpb3VzTmF2aWdhdGlvbjp0aGlzLmxhc3RTdWNjZXNzZnVsTmF2aWdhdGlvbj9PYmplY3QuYXNzaWdu''@;'; + put 'put ''KE9iamVjdC5hc3NpZ24oe30sdGhpcy5sYXN0U3VjY2Vzc2Z1bE5hdmlnYXRpb24pLHtwcmV2aW91c05hdmlnYXRpb246bnVsbH0pOm51bGx9fSksWWgoaj0+e2NvbnN0IHVlPXRoaXMuYnJvd3NlclVybFRyZWUudG9TdHJpbmcoKSxfZT0hdGhpcy5uYXZpZ2F0ZWR8fGouZXh0cmFjdGVkVXJs''@;'; + put 'put ''LnRvU3RyaW5nKCkhPT11ZXx8dWUhPT10aGlzLmN1cnJlbnRVcmxUcmVlLnRvU3RyaW5nKCk7aWYoKCJyZWxvYWQiPT09dGhpcy5vblNhbWVVcmxOYXZpZ2F0aW9ufHxfZSkmJnRoaXMudXJsSGFuZGxpbmdTdHJhdGVneS5zaG91bGRQcm9jZXNzVXJsKGoucmF3VXJsKSlyZXR1cm4gQUgoai5z''@;'; + put 'put ''b3VyY2UpJiYodGhpcy5icm93c2VyVXJsVHJlZT1qLmV4dHJhY3RlZFVybCksYWEoaikucGlwZShZaChOZT0+e2NvbnN0IEtlPXRoaXMudHJhbnNpdGlvbnMuZ2V0VmFsdWUoKTtyZXR1cm4gdi5uZXh0KG5ldyBmSShOZS5pZCx0aGlzLnNlcmlhbGl6ZVVybChOZS5leHRyYWN0ZWRVcmwpLE5l''@;'; + put 'put ''LnNvdXJjZSxOZS5yZXN0b3JlZFN0YXRlKSksS2UhPT10aGlzLnRyYW5zaXRpb25zLmdldFZhbHVlKCk/WUE6UHJvbWlzZS5yZXNvbHZlKE5lKX0pLGZ1bmN0aW9uIHVVKGQsZyxoLHYpe3JldHVybiBZaCh5PT5mdW5jdGlvbiAkMGUoZCxnLGgsdix5KXtyZXR1cm4gbmV3IHEwZShkLGcsaCx2''@;'; + put 'put ''LHkpLmFwcGx5KCl9KGQsZyxoLHkuZXh0cmFjdGVkVXJsLHYpLnBpcGUodnQoQz0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHkpLHt1cmxBZnRlclJlZGlyZWN0czpDfSkpKSl9KHRoaXMubmdNb2R1bGUuaW5qZWN0b3IsdGhpcy5jb25maWdMb2FkZXIsdGhpcy51cmxTZXJpYWxp''@;'; + put 'put ''emVyLHRoaXMuY29uZmlnKSxBYShOZT0+e3RoaXMuY3VycmVudE5hdmlnYXRpb249T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuY3VycmVudE5hdmlnYXRpb24pLHtmaW5hbFVybDpOZS51cmxBZnRlclJlZGlyZWN0c30pLHkudXJsQWZ0ZXJSZWRpcmVjdHM9TmUudXJsQWZ0''@;'; + put 'put ''ZXJSZWRpcmVjdHN9KSxmdW5jdGlvbiBoVShkLGcsaCx2LHksQyl7cmV0dXJuIHNyKEk9PmZ1bmN0aW9uIG5vZShkLGcsaCx2LHksQyxJPSJlbXB0eU9ubHkiLGo9ImxlZ2FjeSIpe3JldHVybiBuZXcgcm9lKGQsZyxoLHYseSxJLGosQykucmVjb2duaXplKCkucGlwZShZaCh1ZT0+bnVsbD09''@;'; + put 'put ''PXVlP2Z1bmN0aW9uIHRvZShkKXtyZXR1cm4gbmV3IEYoZz0+Zy5lcnJvcihkKSl9KG5ldyBlb2UpOmFhKHVlKSkpfShkLGcsaCxJLnVybEFmdGVyUmVkaXJlY3RzLHYuc2VyaWFsaXplKEkudXJsQWZ0ZXJSZWRpcmVjdHMpLHYseSxDKS5waXBlKHZ0KGo9Pk9iamVjdC5hc3NpZ24oT2JqZWN0''@;'; + put 'put ''LmFzc2lnbih7fSxJKSx7dGFyZ2V0U25hcHNob3Q6an0pKSkpfSh0aGlzLm5nTW9kdWxlLmluamVjdG9yLHRoaXMucm9vdENvbXBvbmVudFR5cGUsdGhpcy5jb25maWcsdGhpcy51cmxTZXJpYWxpemVyLHRoaXMucGFyYW1zSW5oZXJpdGFuY2VTdHJhdGVneSx0aGlzLnJlbGF0aXZlTGlua1Jl''@;'; + put 'put ''c29sdXRpb24pLEFhKE5lPT57aWYoeS50YXJnZXRTbmFwc2hvdD1OZS50YXJnZXRTbmFwc2hvdCwiZWFnZXIiPT09dGhpcy51cmxVcGRhdGVTdHJhdGVneSl7aWYoIU5lLmV4dHJhcy5za2lwTG9jYXRpb25DaGFuZ2Upe2NvbnN0IGR0PXRoaXMudXJsSGFuZGxpbmdTdHJhdGVneS5tZXJnZShO''@;'; + put 'put ''ZS51cmxBZnRlclJlZGlyZWN0cyxOZS5yYXdVcmwpO3RoaXMuc2V0QnJvd3NlclVybChkdCxOZSl9dGhpcy5icm93c2VyVXJsVHJlZT1OZS51cmxBZnRlclJlZGlyZWN0c31jb25zdCBLZT1uZXcgVFkoTmUuaWQsdGhpcy5zZXJpYWxpemVVcmwoTmUuZXh0cmFjdGVkVXJsKSx0aGlzLnNlcmlh''@;'; + put 'put ''bGl6ZVVybChOZS51cmxBZnRlclJlZGlyZWN0cyksTmUudGFyZ2V0U25hcHNob3QpO3YubmV4dChLZSl9KSk7aWYoX2UmJnRoaXMucmF3VXJsVHJlZSYmdGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LnNob3VsZFByb2Nlc3NVcmwodGhpcy5yYXdVcmxUcmVlKSl7Y29uc3R7aWQ6S2UsZXh0cmFj''@;'; + put 'put ''dGVkVXJsOmR0LHNvdXJjZTpPdCxyZXN0b3JlZFN0YXRlOiR0LGV4dHJhczpmbn09aixMbj1uZXcgZkkoS2UsdGhpcy5zZXJpYWxpemVVcmwoZHQpLE90LCR0KTt2Lm5leHQoTG4pO2NvbnN0IGlyPVJZKGR0LHRoaXMucm9vdENvbXBvbmVudFR5cGUpLnNuYXBzaG90O3JldHVybiBhYSh5PU9i''@;'; + put 'put ''amVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxqKSx7dGFyZ2V0U25hcHNob3Q6aXIsdXJsQWZ0ZXJSZWRpcmVjdHM6ZHQsZXh0cmFzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxmbikse3NraXBMb2NhdGlvbkNoYW5nZTohMSxyZXBsYWNlVXJsOiExfSl9KSl9cmV0dXJuIHRo''@;'; + put 'put ''aXMucmF3VXJsVHJlZT1qLnJhd1VybCxqLnJlc29sdmUobnVsbCksWUF9KSxBYShqPT57Y29uc3QgdWU9bmV3IEUwZShqLmlkLHRoaXMuc2VyaWFsaXplVXJsKGouZXh0cmFjdGVkVXJsKSx0aGlzLnNlcmlhbGl6ZVVybChqLnVybEFmdGVyUmVkaXJlY3RzKSxqLnRhcmdldFNuYXBzaG90KTt0''@;'; + put 'put ''aGlzLnRyaWdnZXJFdmVudCh1ZSl9KSx2dChqPT55PU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxqKSx7Z3VhcmRzOlVZKGoudGFyZ2V0U25hcHNob3Qsai5jdXJyZW50U25hcHNob3QsdGhpcy5yb290Q29udGV4dHMpfSkpLGZ1bmN0aW9uIEcwZShkLGcpe3JldHVybiBzcihoPT57''@;'; + put 'put ''Y29uc3R7dGFyZ2V0U25hcHNob3Q6dixjdXJyZW50U25hcHNob3Q6eSxndWFyZHM6e2NhbkFjdGl2YXRlQ2hlY2tzOkMsY2FuRGVhY3RpdmF0ZUNoZWNrczpJfX09aDtyZXR1cm4gMD09PUkubGVuZ3RoJiYwPT09Qy5sZW5ndGg/YWEoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGgp''@;'; + put 'put ''LHtndWFyZHNSZXN1bHQ6ITB9KSk6ZnVuY3Rpb24gVzBlKGQsZyxoLHYpe3JldHVybiBkbihkKS5waXBlKHNyKHk9PmZ1bmN0aW9uIHJVKGQsZyxoLHYseSl7Y29uc3QgQz1nJiZnLnJvdXRlQ29uZmlnP2cucm91dGVDb25maWcuY2FuRGVhY3RpdmF0ZTpudWxsO3JldHVybiBDJiYwIT09Qy5s''@;'; + put 'put ''ZW5ndGg/YWEoQy5tYXAoaj0+e2NvbnN0IHVlPXlJKGosZyx5KTtyZXR1cm4gQnUoZnVuY3Rpb24gJFkoZCl7cmV0dXJuIGQmJnN5KGQuY2FuRGVhY3RpdmF0ZSl9KHVlKT91ZS5jYW5EZWFjdGl2YXRlKGQsZyxoLHYpOnVlKGQsZyxoLHYpKS5waXBlKFkzKCkpfSkpLnBpcGUobTcoKSk6YWEo''@;'; + put 'put ''ITApfSh5LmNvbXBvbmVudCx5LnJvdXRlLGgsZyx2KSksWTMoeT0+ITAhPT15LCEwKSl9KEksdix5LGQpLnBpcGUoc3Ioaj0+aiYmZnVuY3Rpb24gajBlKGQpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGR9KGopP2Z1bmN0aW9uIFkwZShkLGcsaCx2KXtyZXR1cm4gZG4oZykucGlwZShWNSh5''@;'; + put 'put ''PT5MRihmdW5jdGlvbiB0VShkLGcpe3JldHVybiBudWxsIT09ZCYmZyYmZyhuZXcgWEYoZCkpLGFhKCEwKX0oeS5yb3V0ZS5wYXJlbnQsdiksZnVuY3Rpb24gZVUoZCxnKXtyZXR1cm4gbnVsbCE9PWQmJmcmJmcobmV3IExZKGQpKSxhYSghMCl9KHkucm91dGUsdiksZnVuY3Rpb24gblUoZCxn''@;'; + put 'put ''LGgpe2NvbnN0IHY9Z1tnLmxlbmd0aC0xXSxDPWcuc2xpY2UoMCxnLmxlbmd0aC0xKS5yZXZlcnNlKCkubWFwKEk9PmZ1bmN0aW9uIFFZKGQpe2NvbnN0IGc9ZC5yb3V0ZUNvbmZpZz9kLnJvdXRlQ29uZmlnLmNhbkFjdGl2YXRlQ2hpbGQ6bnVsbDtyZXR1cm4gZyYmMCE9PWcubGVuZ3RoP3tu''@;'; + put 'put ''b2RlOmQsZ3VhcmRzOmd9Om51bGx9KEkpKS5maWx0ZXIoST0+bnVsbCE9PUkpLm1hcChJPT5zWSgoKT0+YWEoSS5ndWFyZHMubWFwKHVlPT57Y29uc3QgX2U9eUkodWUsSS5ub2RlLGgpO3JldHVybiBCdShmdW5jdGlvbiBvSChkKXtyZXR1cm4gZCYmc3koZC5jYW5BY3RpdmF0ZUNoaWxkKX0o''@;'; + put 'put ''X2UpP19lLmNhbkFjdGl2YXRlQ2hpbGQodixkKTpfZSh2LGQpKS5waXBlKFkzKCkpfSkpLnBpcGUobTcoKSkpKTtyZXR1cm4gYWEoQykucGlwZShtNygpKX0oZCx5LnBhdGgsaCksZnVuY3Rpb24gVTBlKGQsZyxoKXtjb25zdCB2PWcucm91dGVDb25maWc/Zy5yb3V0ZUNvbmZpZy5jYW5BY3Rp''@;'; + put 'put ''dmF0ZTpudWxsO2lmKCF2fHwwPT09di5sZW5ndGgpcmV0dXJuIGFhKCEwKTtjb25zdCB5PXYubWFwKEM9PnNZKCgpPT57Y29uc3QgST15SShDLGcsaCk7cmV0dXJuIEJ1KGZ1bmN0aW9uIEtZKGQpe3JldHVybiBkJiZzeShkLmNhbkFjdGl2YXRlKX0oSSk/SS5jYW5BY3RpdmF0ZShnLGQpOkko''@;'; + put 'put ''ZyxkKSkucGlwZShZMygpKX0pKTtyZXR1cm4gYWEoeSkucGlwZShtNygpKX0oZCx5LnJvdXRlLGgpKSksWTMoeT0+ITAhPT15LCEwKSl9KHYsQyxkLGcpOmFhKGopKSx2dChqPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saCkse2d1YXJkc1Jlc3VsdDpqfSkpKX0pfSh0aGlzLm5n''@;'; + put 'put ''TW9kdWxlLmluamVjdG9yLGo9PnRoaXMudHJpZ2dlckV2ZW50KGopKSxBYShqPT57aWYoeS5ndWFyZHNSZXN1bHQ9ai5ndWFyZHNSZXN1bHQsZzcoai5ndWFyZHNSZXN1bHQpKXRocm93ICRGKDAsai5ndWFyZHNSZXN1bHQpO2NvbnN0IHVlPW5ldyBKRihqLmlkLHRoaXMuc2VyaWFsaXplVXJs''@;'; + put 'put ''KGouZXh0cmFjdGVkVXJsKSx0aGlzLnNlcmlhbGl6ZVVybChqLnVybEFmdGVyUmVkaXJlY3RzKSxqLnRhcmdldFNuYXBzaG90LCEhai5ndWFyZHNSZXN1bHQpO3RoaXMudHJpZ2dlckV2ZW50KHVlKX0pLEwyKGo9PiEhai5ndWFyZHNSZXN1bHR8fCh0aGlzLnJlc3RvcmVIaXN0b3J5KGopLHRo''@;'; + put 'put ''aXMuY2FuY2VsTmF2aWdhdGlvblRyYW5zaXRpb24oaiwiIiwzKSwhMSkpLHBIKGo9PntpZihqLmd1YXJkcy5jYW5BY3RpdmF0ZUNoZWNrcy5sZW5ndGgpcmV0dXJuIGFhKGopLnBpcGUoQWEodWU9Pntjb25zdCBfZT1uZXcgSVkodWUuaWQsdGhpcy5zZXJpYWxpemVVcmwodWUuZXh0cmFjdGVk''@;'; + put 'put ''VXJsKSx0aGlzLnNlcmlhbGl6ZVVybCh1ZS51cmxBZnRlclJlZGlyZWN0cyksdWUudGFyZ2V0U25hcHNob3QpO3RoaXMudHJpZ2dlckV2ZW50KF9lKX0pLFloKHVlPT57bGV0IF9lPSExO3JldHVybiBhYSh1ZSkucGlwZShmdW5jdGlvbiBwVShkLGcpe3JldHVybiBzcihoPT57Y29uc3R7dGFy''@;'; + put 'put ''Z2V0U25hcHNob3Q6dixndWFyZHM6e2NhbkFjdGl2YXRlQ2hlY2tzOnl9fT1oO2lmKCF5Lmxlbmd0aClyZXR1cm4gYWEoaCk7bGV0IEM9MDtyZXR1cm4gZG4oeSkucGlwZShWNShJPT5mdW5jdGlvbiBhb2UoZCxnLGgsdil7Y29uc3QgeT1kLnJvdXRlQ29uZmlnLEM9ZC5fcmVzb2x2ZTtyZXR1''@;'; + put 'put ''cm4gdm9pZCAwIT09KG51bGw9PXk/dm9pZCAwOnkudGl0bGUpJiYhTUkoeSkmJihDW2RVXT15LnRpdGxlKSxmdW5jdGlvbiBsb2UoZCxnLGgsdil7Y29uc3QgeT1mdW5jdGlvbiBnVShkKXtyZXR1cm5bLi4uT2JqZWN0LmtleXMoZCksLi4uT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhk''@;'; + put 'put ''KV19KGQpO2lmKDA9PT15Lmxlbmd0aClyZXR1cm4gYWEoe30pO2NvbnN0IEM9e307cmV0dXJuIGRuKHkpLnBpcGUoc3IoST0+ZnVuY3Rpb24gc29lKGQsZyxoLHYpe2NvbnN0IHk9eUkoZCxnLHYpO3JldHVybiBCdSh5LnJlc29sdmU/eS5yZXNvbHZlKGcsaCk6eShnLGgpKX0oZFtJXSxnLGgs''@;'; + put 'put ''dikucGlwZShZMygpLEFhKGo9PntDW0ldPWp9KSkpLHo1KDEpLEc1KEMpLFo1KEk9PkkgaW5zdGFuY2VvZiBRQT9ZQTpVQShJKSkpfShDLGQsZyx2KS5waXBlKHZ0KEk9PihkLl9yZXNvbHZlZERhdGE9SSxkLmRhdGE9QlkoZCxoKS5yZXNvbHZlLHkmJk1JKHkpJiYoZC5kYXRhW2RVXT15LnRp''@;'; + put 'put ''dGxlKSxudWxsKSkpfShJLnJvdXRlLHYsZCxnKSksQWEoKCk9PkMrKyksejUoMSksc3IoST0+Qz09PXkubGVuZ3RoP2FhKGgpOllBKSl9KX0odGhpcy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5LHRoaXMubmdNb2R1bGUuaW5qZWN0b3IpLEFhKHtuZXh0OigpPT5fZT0hMCxjb21wbGV0ZToo''@;'; + put 'put ''KT0+e19lfHwodGhpcy5yZXN0b3JlSGlzdG9yeSh1ZSksdGhpcy5jYW5jZWxOYXZpZ2F0aW9uVHJhbnNpdGlvbih1ZSwiIiwyKSl9fSkpfSksQWEodWU9Pntjb25zdCBfZT1uZXcgeDBlKHVlLmlkLHRoaXMuc2VyaWFsaXplVXJsKHVlLmV4dHJhY3RlZFVybCksdGhpcy5zZXJpYWxpemVVcmwo''@;'; + put 'put ''dWUudXJsQWZ0ZXJSZWRpcmVjdHMpLHVlLnRhcmdldFNuYXBzaG90KTt0aGlzLnRyaWdnZXJFdmVudChfZSl9KSl9KSxwSChqPT57Y29uc3QgdWU9X2U9Pnt2YXIgQmU7Y29uc3QgTmU9W107KG51bGw9PT0oQmU9X2Uucm91dGVDb25maWcpfHx2b2lkIDA9PT1CZT92b2lkIDA6QmUubG9hZENv''@;'; + put 'put ''bXBvbmVudCkmJiFfZS5yb3V0ZUNvbmZpZy5fbG9hZGVkQ29tcG9uZW50JiZOZS5wdXNoKHRoaXMuY29uZmlnTG9hZGVyLmxvYWRDb21wb25lbnQoX2Uucm91dGVDb25maWcpLnBpcGUoQWEoS2U9PntfZS5jb21wb25lbnQ9S2V9KSx2dCgoKT0+e30pKSk7Zm9yKGNvbnN0IEtlIG9mIF9lLmNo''@;'; + put 'put ''aWxkcmVuKU5lLnB1c2goLi4udWUoS2UpKTtyZXR1cm4gTmV9O3JldHVybiAkVCh1ZShqLnRhcmdldFNuYXBzaG90LnJvb3QpKS5waXBlKGg3KCksSDUoMSkpfSkscEgoKCk9PnRoaXMuYWZ0ZXJQcmVhY3RpdmF0aW9uKCkpLHZ0KGo9Pntjb25zdCB1ZT1mdW5jdGlvbiBOWShkLGcsaCl7Y29u''@;'; + put 'put ''c3Qgdj1peShkLGcuX3Jvb3QsaD9oLl9yb290OnZvaWQgMCk7cmV0dXJuIG5ldyBPWSh2LGcpfSh0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSxqLnRhcmdldFNuYXBzaG90LGouY3VycmVudFJvdXRlclN0YXRlKTtyZXR1cm4geT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saikse3Rh''@;'; + put 'put ''cmdldFJvdXRlclN0YXRlOnVlfSl9KSxBYShqPT57dGhpcy5jdXJyZW50VXJsVHJlZT1qLnVybEFmdGVyUmVkaXJlY3RzLHRoaXMucmF3VXJsVHJlZT10aGlzLnVybEhhbmRsaW5nU3RyYXRlZ3kubWVyZ2Uoai51cmxBZnRlclJlZGlyZWN0cyxqLnJhd1VybCksdGhpcy5yb3V0ZXJTdGF0ZT1q''@;'; + put 'put ''LnRhcmdldFJvdXRlclN0YXRlLCJkZWZlcnJlZCI9PT10aGlzLnVybFVwZGF0ZVN0cmF0ZWd5JiYoai5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlfHx0aGlzLnNldEJyb3dzZXJVcmwodGhpcy5yYXdVcmxUcmVlLGopLHRoaXMuYnJvd3NlclVybFRyZWU9ai51cmxBZnRlclJlZGlyZWN0cyl9''@;'; + put 'put ''KSwoKGQsZyxoKT0+dnQodj0+KG5ldyBZWShnLHYudGFyZ2V0Um91dGVyU3RhdGUsdi5jdXJyZW50Um91dGVyU3RhdGUsaCkuYWN0aXZhdGUoZCksdikpKSh0aGlzLnJvb3RDb250ZXh0cyx0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSxqPT50aGlzLnRyaWdnZXJFdmVudChqKSksQWEoe25leHQo''@;'; + put 'put ''KXtDPSEwfSxjb21wbGV0ZSgpe0M9ITB9fSksdEkoKCk9Pnt2YXIgajtDfHxJfHx0aGlzLmNhbmNlbE5hdmlnYXRpb25UcmFuc2l0aW9uKHksIiIsMSksKG51bGw9PT0oaj10aGlzLmN1cnJlbnROYXZpZ2F0aW9uKXx8dm9pZCAwPT09aj92b2lkIDA6ai5pZCk9PT15LmlkJiYodGhpcy5jdXJy''@;'; + put 'put ''ZW50TmF2aWdhdGlvbj1udWxsKX0pLFo1KGo9Pnt2YXIgdWU7aWYoST0hMCxxRihqKSl7Wlkoail8fCh0aGlzLm5hdmlnYXRlZD0hMCx0aGlzLnJlc3RvcmVIaXN0b3J5KHksITApKTtjb25zdCBfZT1uZXcgaEkoeS5pZCx0aGlzLnNlcmlhbGl6ZVVybCh5LmV4dHJhY3RlZFVybCksai5tZXNz''@;'; + put 'put ''YWdlLGouY2FuY2VsbGF0aW9uQ29kZSk7aWYodi5uZXh0KF9lKSxaWShqKSl7Y29uc3QgQmU9dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5Lm1lcmdlKGoudXJsLHRoaXMucmF3VXJsVHJlZSksTmU9e3NraXBMb2NhdGlvbkNoYW5nZTp5LmV4dHJhcy5za2lwTG9jYXRpb25DaGFuZ2UscmVwbGFj''@;'; + put 'put ''ZVVybDoiZWFnZXIiPT09dGhpcy51cmxVcGRhdGVTdHJhdGVneXx8QUgoeS5zb3VyY2UpfTt0aGlzLnNjaGVkdWxlTmF2aWdhdGlvbihCZSwiaW1wZXJhdGl2ZSIsbnVsbCxOZSx7cmVzb2x2ZTp5LnJlc29sdmUscmVqZWN0OnkucmVqZWN0LHByb21pc2U6eS5wcm9taXNlfSl9ZWxzZSB5LnJl''@;'; + put 'put ''c29sdmUoITEpfWVsc2V7dGhpcy5yZXN0b3JlSGlzdG9yeSh5LCEwKTtjb25zdCBfZT1uZXcgUUYoeS5pZCx0aGlzLnNlcmlhbGl6ZVVybCh5LmV4dHJhY3RlZFVybCksaixudWxsIT09KHVlPXkudGFyZ2V0U25hcHNob3QpJiZ2b2lkIDAhPT11ZT91ZTp2b2lkIDApO3YubmV4dChfZSk7dHJ5''@;'; + put 'put ''e3kucmVzb2x2ZSh0aGlzLmVycm9ySGFuZGxlcihqKSl9Y2F0Y2goQmUpe3kucmVqZWN0KEJlKX19cmV0dXJuIFlBfSkpfSkpfXJlc2V0Um9vdENvbXBvbmVudFR5cGUoaCl7dGhpcy5yb290Q29tcG9uZW50VHlwZT1oLHRoaXMucm91dGVyU3RhdGUucm9vdC5jb21wb25lbnQ9dGhpcy5yb290''@;'; + put 'put ''Q29tcG9uZW50VHlwZX1zZXRUcmFuc2l0aW9uKGgpe3RoaXMudHJhbnNpdGlvbnMubmV4dChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy50cmFuc2l0aW9ucy52YWx1ZSksaCkpfWluaXRpYWxOYXZpZ2F0aW9uKCl7dGhpcy5zZXRVcExvY2F0aW9uQ2hhbmdlTGlzdGVuZXIo''@;'; + put 'put ''KSwwPT09dGhpcy5uYXZpZ2F0aW9uSWQmJnRoaXMubmF2aWdhdGVCeVVybCh0aGlzLmxvY2F0aW9uLnBhdGgoITApLHtyZXBsYWNlVXJsOiEwfSl9c2V0VXBMb2NhdGlvbkNoYW5nZUxpc3RlbmVyKCl7dGhpcy5sb2NhdGlvblN1YnNjcmlwdGlvbnx8KHRoaXMubG9jYXRpb25TdWJzY3JpcHRp''@;'; + put 'put ''b249dGhpcy5sb2NhdGlvbi5zdWJzY3JpYmUoaD0+e2NvbnN0IHY9InBvcHN0YXRlIj09PWgudHlwZT8icG9wc3RhdGUiOiJoYXNoY2hhbmdlIjsicG9wc3RhdGUiPT09diYmc2V0VGltZW91dCgoKT0+e3ZhciB5O2NvbnN0IEM9e3JlcGxhY2VVcmw6ITB9LEk9bnVsbCE9PSh5PWguc3RhdGUp''@;'; + put 'put ''JiZ2b2lkIDAhPT15JiZ5Lm5hdmlnYXRpb25JZD9oLnN0YXRlOm51bGw7aWYoSSl7Y29uc3QgdWU9T2JqZWN0LmFzc2lnbih7fSxJKTtkZWxldGUgdWUubmF2aWdhdGlvbklkLGRlbGV0ZSB1ZS5cdTAyNzVyb3V0ZXJQYWdlSWQsMCE9PU9iamVjdC5rZXlzKHVlKS5sZW5ndGgmJihDLnN0YXRl''@;'; + put 'put ''PXVlKX1jb25zdCBqPXRoaXMucGFyc2VVcmwoaC51cmwpO3RoaXMuc2NoZWR1bGVOYXZpZ2F0aW9uKGosdixJLEMpfSwwKX0pKX1nZXQgdXJsKCl7cmV0dXJuIHRoaXMuc2VyaWFsaXplVXJsKHRoaXMuY3VycmVudFVybFRyZWUpfWdldEN1cnJlbnROYXZpZ2F0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''Y3VycmVudE5hdmlnYXRpb259dHJpZ2dlckV2ZW50KGgpe3RoaXMuZXZlbnRzLm5leHQoaCl9cmVzZXRDb25maWcoaCl7dGhpcy5jb25maWc9aC5tYXAobkgpLHRoaXMubmF2aWdhdGVkPSExLHRoaXMubGFzdFN1Y2Nlc3NmdWxJZD0tMX1uZ09uRGVzdHJveSgpe3RoaXMuZGlzcG9zZSgpfWRp''@;'; + put 'put ''c3Bvc2UoKXt0aGlzLnRyYW5zaXRpb25zLmNvbXBsZXRlKCksdGhpcy5sb2NhdGlvblN1YnNjcmlwdGlvbiYmKHRoaXMubG9jYXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLmxvY2F0aW9uU3Vic2NyaXB0aW9uPXZvaWQgMCksdGhpcy5kaXNwb3NlZD0hMH1jcmVhdGVVcmxU''@;'; + put 'put ''cmVlKGgsdj17fSl7Y29uc3R7cmVsYXRpdmVUbzp5LHF1ZXJ5UGFyYW1zOkMsZnJhZ21lbnQ6SSxxdWVyeVBhcmFtc0hhbmRsaW5nOmoscHJlc2VydmVGcmFnbWVudDp1ZX09dixfZT15fHx0aGlzLnJvdXRlclN0YXRlLnJvb3QsQmU9dWU/dGhpcy5jdXJyZW50VXJsVHJlZS5mcmFnbWVudDpJ''@;'; + put 'put ''O2xldCBOZT1udWxsO3N3aXRjaChqKXtjYXNlIm1lcmdlIjpOZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5jdXJyZW50VXJsVHJlZS5xdWVyeVBhcmFtcyksQyk7YnJlYWs7Y2FzZSJwcmVzZXJ2ZSI6TmU9dGhpcy5jdXJyZW50VXJsVHJlZS5xdWVyeVBhcmFtczticmVh''@;'; + put 'put ''aztkZWZhdWx0Ok5lPUN8fG51bGx9cmV0dXJuIG51bGwhPT1OZSYmKE5lPXRoaXMucmVtb3ZlRW1wdHlQcm9wcyhOZSkpLGswZShfZSx0aGlzLmN1cnJlbnRVcmxUcmVlLGgsTmUsbnVsbCE9QmU/QmU6bnVsbCl9bmF2aWdhdGVCeVVybChoLHY9e3NraXBMb2NhdGlvbkNoYW5nZTohMX0pe2Nv''@;'; + put 'put ''bnN0IHk9ZzcoaCk/aDp0aGlzLnBhcnNlVXJsKGgpLEM9dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5Lm1lcmdlKHksdGhpcy5yYXdVcmxUcmVlKTtyZXR1cm4gdGhpcy5zY2hlZHVsZU5hdmlnYXRpb24oQywiaW1wZXJhdGl2ZSIsbnVsbCx2KX1uYXZpZ2F0ZShoLHY9e3NraXBMb2NhdGlvbkNo''@;'; + put 'put ''YW5nZTohMX0pe3JldHVybiBmdW5jdGlvbiBwb2UoZCl7Zm9yKGxldCBnPTA7ZzxkLmxlbmd0aDtnKyspe2lmKG51bGw9PWRbZ10pdGhyb3cgbmV3IGVuKDQwMDgsZmFsc2UpfX0oaCksdGhpcy5uYXZpZ2F0ZUJ5VXJsKHRoaXMuY3JlYXRlVXJsVHJlZShoLHYpLHYpfXNlcmlhbGl6ZVVybCho''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShoKX1wYXJzZVVybChoKXtsZXQgdjt0cnl7dj10aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UoaCl9Y2F0Y2goeSl7dj10aGlzLm1hbGZvcm1lZFVyaUVycm9ySGFuZGxlcih5LHRoaXMudXJsU2VyaWFsaXplcixoKX1yZXR1cm4g''@;'; + put 'put ''dn1pc0FjdGl2ZShoLHYpe2xldCB5O2lmKHk9ITA9PT12P09iamVjdC5hc3NpZ24oe30saG9lKTohMT09PXY/T2JqZWN0LmFzc2lnbih7fSx4SSk6dixnNyhoKSlyZXR1cm4gYlkodGhpcy5jdXJyZW50VXJsVHJlZSxoLHkpO2NvbnN0IEM9dGhpcy5wYXJzZVVybChoKTtyZXR1cm4gYlkodGhp''@;'; + put 'put ''cy5jdXJyZW50VXJsVHJlZSxDLHkpfXJlbW92ZUVtcHR5UHJvcHMoaCl7cmV0dXJuIE9iamVjdC5rZXlzKGgpLnJlZHVjZSgodix5KT0+e2NvbnN0IEM9aFt5XTtyZXR1cm4gbnVsbCE9QyYmKHZbeV09Qyksdn0se30pfXByb2Nlc3NOYXZpZ2F0aW9ucygpe3RoaXMubmF2aWdhdGlvbnMuc3Vi''@;'; + put 'put ''c2NyaWJlKGg9Pnt2YXIgdjt0aGlzLm5hdmlnYXRlZD0hMCx0aGlzLmxhc3RTdWNjZXNzZnVsSWQ9aC5pZCx0aGlzLmN1cnJlbnRQYWdlSWQ9aC50YXJnZXRQYWdlSWQsdGhpcy5ldmVudHMubmV4dChuZXcgRzYoaC5pZCx0aGlzLnNlcmlhbGl6ZVVybChoLmV4dHJhY3RlZFVybCksdGhpcy5z''@;'; + put 'put ''ZXJpYWxpemVVcmwodGhpcy5jdXJyZW50VXJsVHJlZSkpKSx0aGlzLmxhc3RTdWNjZXNzZnVsTmF2aWdhdGlvbj10aGlzLmN1cnJlbnROYXZpZ2F0aW9uLG51bGw9PT0odj10aGlzLnRpdGxlU3RyYXRlZ3kpfHx2b2lkIDA9PT12fHx2LnVwZGF0ZVRpdGxlKHRoaXMucm91dGVyU3RhdGUuc25h''@;'; + put 'put ''cHNob3QpLGgucmVzb2x2ZSghMCl9LGg9Pnt0aGlzLmNvbnNvbGUud2FybihgVW5oYW5kbGVkIE5hdmlnYXRpb24gRXJyb3I6ICR7aH1gKX0pfXNjaGVkdWxlTmF2aWdhdGlvbihoLHYseSxDLEkpe3ZhciBqLHVlO2lmKHRoaXMuZGlzcG9zZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSghMSk7''@;'; + put 'put ''bGV0IF9lLEJlLE5lO0k/KF9lPUkucmVzb2x2ZSxCZT1JLnJlamVjdCxOZT1JLnByb21pc2UpOk5lPW5ldyBQcm9taXNlKChPdCwkdCk9PntfZT1PdCxCZT0kdH0pO2NvbnN0IEtlPSsrdGhpcy5uYXZpZ2F0aW9uSWQ7bGV0IGR0O3JldHVybiJjb21wdXRlZCI9PT10aGlzLmNhbmNlbGVkTmF2''@;'; + put 'put ''aWdhdGlvblJlc29sdXRpb24/KDA9PT10aGlzLmN1cnJlbnRQYWdlSWQmJih5PXRoaXMubG9jYXRpb24uZ2V0U3RhdGUoKSksZHQ9eSYmeS5cdTAyNzVyb3V0ZXJQYWdlSWQ/eS5cdTAyNzVyb3V0ZXJQYWdlSWQ6Qy5yZXBsYWNlVXJsfHxDLnNraXBMb2NhdGlvbkNoYW5nZT9udWxsIT09KGo9''@;'; + put 'put ''dGhpcy5icm93c2VyUGFnZUlkKSYmdm9pZCAwIT09aj9qOjA6KG51bGwhPT0odWU9dGhpcy5icm93c2VyUGFnZUlkKSYmdm9pZCAwIT09dWU/dWU6MCkrMSk6ZHQ9MCx0aGlzLnNldFRyYW5zaXRpb24oe2lkOktlLHRhcmdldFBhZ2VJZDpkdCxzb3VyY2U6dixyZXN0b3JlZFN0YXRlOnksY3Vy''@;'; + put 'put ''cmVudFVybFRyZWU6dGhpcy5jdXJyZW50VXJsVHJlZSxjdXJyZW50UmF3VXJsOnRoaXMucmF3VXJsVHJlZSxyYXdVcmw6aCxleHRyYXM6QyxyZXNvbHZlOl9lLHJlamVjdDpCZSxwcm9taXNlOk5lLGN1cnJlbnRTbmFwc2hvdDp0aGlzLnJvdXRlclN0YXRlLnNuYXBzaG90LGN1cnJlbnRSb3V0''@;'; + put 'put ''ZXJTdGF0ZTp0aGlzLnJvdXRlclN0YXRlfSksTmUuY2F0Y2goT3Q9PlByb21pc2UucmVqZWN0KE90KSl9c2V0QnJvd3NlclVybChoLHYpe2NvbnN0IHk9dGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShoKSxDPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx2LmV4dHJhcy5zdGF0''@;'; + put 'put ''ZSksdGhpcy5nZW5lcmF0ZU5nUm91dGVyU3RhdGUodi5pZCx2LnRhcmdldFBhZ2VJZCkpO3RoaXMubG9jYXRpb24uaXNDdXJyZW50UGF0aEVxdWFsVG8oeSl8fHYuZXh0cmFzLnJlcGxhY2VVcmw/dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoeSwiIixDKTp0aGlzLmxvY2F0aW9uLmdvKHks''@;'; + put 'put ''IiIsQyl9cmVzdG9yZUhpc3RvcnkoaCx2PSExKXt2YXIgeSxDO2lmKCJjb21wdXRlZCI9PT10aGlzLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb24pe2NvbnN0IEk9dGhpcy5jdXJyZW50UGFnZUlkLWgudGFyZ2V0UGFnZUlkOyJwb3BzdGF0ZSIhPT1oLnNvdXJjZSYmImVhZ2VyIiE9PXRo''@;'; + put 'put ''aXMudXJsVXBkYXRlU3RyYXRlZ3kmJnRoaXMuY3VycmVudFVybFRyZWUhPT0obnVsbD09PSh5PXRoaXMuY3VycmVudE5hdmlnYXRpb24pfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmZpbmFsVXJsKXx8MD09PUk/dGhpcy5jdXJyZW50VXJsVHJlZT09PShudWxsPT09KEM9dGhpcy5jdXJyZW50TmF2''@;'; + put 'put ''aWdhdGlvbil8fHZvaWQgMD09PUM/dm9pZCAwOkMuZmluYWxVcmwpJiYwPT09SSYmKHRoaXMucmVzZXRTdGF0ZShoKSx0aGlzLmJyb3dzZXJVcmxUcmVlPWguY3VycmVudFVybFRyZWUsdGhpcy5yZXNldFVybFRvQ3VycmVudFVybFRyZWUoKSk6dGhpcy5sb2NhdGlvbi5oaXN0b3J5R28oSSl9''@;'; + put 'put ''ZWxzZSJyZXBsYWNlIj09PXRoaXMuY2FuY2VsZWROYXZpZ2F0aW9uUmVzb2x1dGlvbiYmKHYmJnRoaXMucmVzZXRTdGF0ZShoKSx0aGlzLnJlc2V0VXJsVG9DdXJyZW50VXJsVHJlZSgpKX1yZXNldFN0YXRlKGgpe3RoaXMucm91dGVyU3RhdGU9aC5jdXJyZW50Um91dGVyU3RhdGUsdGhpcy5j''@;'; + put 'put ''dXJyZW50VXJsVHJlZT1oLmN1cnJlbnRVcmxUcmVlLHRoaXMucmF3VXJsVHJlZT10aGlzLnVybEhhbmRsaW5nU3RyYXRlZ3kubWVyZ2UodGhpcy5jdXJyZW50VXJsVHJlZSxoLnJhd1VybCl9cmVzZXRVcmxUb0N1cnJlbnRVcmxUcmVlKCl7dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhp''@;'; + put 'put ''cy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZSh0aGlzLnJhd1VybFRyZWUpLCIiLHRoaXMuZ2VuZXJhdGVOZ1JvdXRlclN0YXRlKHRoaXMubGFzdFN1Y2Nlc3NmdWxJZCx0aGlzLmN1cnJlbnRQYWdlSWQpKX1jYW5jZWxOYXZpZ2F0aW9uVHJhbnNpdGlvbihoLHYseSl7Y29uc3QgQz1uZXcgaEko''@;'; + put 'put ''aC5pZCx0aGlzLnNlcmlhbGl6ZVVybChoLmV4dHJhY3RlZFVybCksdix5KTt0aGlzLnRyaWdnZXJFdmVudChDKSxoLnJlc29sdmUoITEpfWdlbmVyYXRlTmdSb3V0ZXJTdGF0ZShoLHYpe3JldHVybiJjb21wdXRlZCI9PT10aGlzLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb24/e25hdmln''@;'; + put 'put ''YXRpb25JZDpoLFx1MDI3NXJvdXRlclBhZ2VJZDp2fTp7bmF2aWdhdGlvbklkOmh9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7WHYoKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gX1UoKX0scHJvdmlkZWRJbjoicm9vdCJ9KSxk''@;'; + put 'put ''fSkoKTtmdW5jdGlvbiBBSChkKXtyZXR1cm4iaW1wZXJhdGl2ZSIhPT1kfWxldCBZNj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5yb3V0ZXI9aCx0aGlzLnJvdXRlPXYsdGhpcy50YWJJbmRleEF0dHJpYnV0ZT15LHRoaXMucmVuZGVyZXI9Qyx0aGlzLmVsPUks''@;'; + put 'put ''dGhpcy5jb21tYW5kcz1udWxsLHRoaXMub25DaGFuZ2VzPW5ldyAkZSx0aGlzLnNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKCIwIil9c2V0VGFiSW5kZXhJZk5vdE9uTmF0aXZlRWwoaCl7aWYobnVsbCE9dGhpcy50YWJJbmRleEF0dHJpYnV0ZSlyZXR1cm47Y29uc3Qgdj10aGlzLnJlbmRl''@;'; + put 'put ''cmVyLHk9dGhpcy5lbC5uYXRpdmVFbGVtZW50O251bGwhPT1oP3Yuc2V0QXR0cmlidXRlKHksInRhYmluZGV4IixoKTp2LnJlbW92ZUF0dHJpYnV0ZSh5LCJ0YWJpbmRleCIpfW5nT25DaGFuZ2VzKGgpe3RoaXMub25DaGFuZ2VzLm5leHQodGhpcyl9c2V0IHJvdXRlckxpbmsoaCl7bnVsbCE9''@;'; + put 'put ''aD8odGhpcy5jb21tYW5kcz1BcnJheS5pc0FycmF5KGgpP2g6W2hdLHRoaXMuc2V0VGFiSW5kZXhJZk5vdE9uTmF0aXZlRWwoIjAiKSk6KHRoaXMuY29tbWFuZHM9bnVsbCx0aGlzLnNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKG51bGwpKX1vbkNsaWNrKCl7aWYobnVsbD09PXRoaXMudXJs''@;'; + put 'put ''VHJlZSlyZXR1cm4hMDtjb25zdCBoPXtza2lwTG9jYXRpb25DaGFuZ2U6SDYodGhpcy5za2lwTG9jYXRpb25DaGFuZ2UpLHJlcGxhY2VVcmw6SDYodGhpcy5yZXBsYWNlVXJsKSxzdGF0ZTp0aGlzLnN0YXRlfTtyZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnVybFRyZWUs''@;'; + put 'put ''aCksITB9Z2V0IHVybFRyZWUoKXtyZXR1cm4gbnVsbD09PXRoaXMuY29tbWFuZHM/bnVsbDp0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKHRoaXMuY29tbWFuZHMse3JlbGF0aXZlVG86dm9pZCAwIT09dGhpcy5yZWxhdGl2ZVRvP3RoaXMucmVsYXRpdmVUbzp0aGlzLnJvdXRlLHF1ZXJ5UGFy''@;'; + put 'put ''YW1zOnRoaXMucXVlcnlQYXJhbXMsZnJhZ21lbnQ6dGhpcy5mcmFnbWVudCxxdWVyeVBhcmFtc0hhbmRsaW5nOnRoaXMucXVlcnlQYXJhbXNIYW5kbGluZyxwcmVzZXJ2ZUZyYWdtZW50Okg2KHRoaXMucHJlc2VydmVGcmFnbWVudCl9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgp''@;'; + put 'put ''e3JldHVybiBuZXcoaHx8ZCkoWHQoWmwpLFh0KFB1KSxnMygidGFiaW5kZXgiKSxYdChHYSksWHQoYm8pKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwicm91dGVyTGluayIsIiIsNSwiYSIsNSwiYXJlYSJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgm''@;'; + put 'put ''JlluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkNsaWNrKCl9KX0saW5wdXRzOntxdWVyeVBhcmFtczoicXVlcnlQYXJhbXMiLGZyYWdtZW50OiJmcmFnbWVudCIscXVlcnlQYXJhbXNIYW5kbGluZzoicXVlcnlQYXJhbXNIYW5kbGluZyIscHJlc2VydmVGcmFnbWVudDoicHJlc2Vy''@;'; + put 'put ''dmVGcmFnbWVudCIsc2tpcExvY2F0aW9uQ2hhbmdlOiJza2lwTG9jYXRpb25DaGFuZ2UiLHJlcGxhY2VVcmw6InJlcGxhY2VVcmwiLHN0YXRlOiJzdGF0ZSIscmVsYXRpdmVUbzoicmVsYXRpdmVUbyIscm91dGVyTGluazoicm91dGVyTGluayJ9LGZlYXR1cmVzOltQMl19KSxkfSkoKSx2Nz0o''@;'; + put 'put ''KCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLnJvdXRlcj1oLHRoaXMucm91dGU9dix0aGlzLmxvY2F0aW9uU3RyYXRlZ3k9eSx0aGlzLmNvbW1hbmRzPW51bGwsdGhpcy5ocmVmPW51bGwsdGhpcy5vbkNoYW5nZXM9bmV3ICRlLHRoaXMuc3Vic2NyaXB0aW9uPWguZXZlbnRz''@;'; + put 'put ''LnN1YnNjcmliZShDPT57QyBpbnN0YW5jZW9mIEc2JiZ0aGlzLnVwZGF0ZVRhcmdldFVybEFuZEhyZWYoKX0pfXNldCByb3V0ZXJMaW5rKGgpe3RoaXMuY29tbWFuZHM9bnVsbCE9aD9BcnJheS5pc0FycmF5KGgpP2g6W2hdOm51bGx9bmdPbkNoYW5nZXMoaCl7dGhpcy51cGRhdGVUYXJnZXRV''@;'; + put 'put ''cmxBbmRIcmVmKCksdGhpcy5vbkNoYW5nZXMubmV4dCh0aGlzKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9b25DbGljayhoLHYseSxDLEkpe2lmKDAhPT1ofHx2fHx5fHxDfHxJfHwic3RyaW5nIj09dHlwZW9mIHRoaXMudGFyZ2V0JiYiX3NlbGYiIT10''@;'; + put 'put ''aGlzLnRhcmdldHx8bnVsbD09PXRoaXMudXJsVHJlZSlyZXR1cm4hMDtjb25zdCBqPXtza2lwTG9jYXRpb25DaGFuZ2U6SDYodGhpcy5za2lwTG9jYXRpb25DaGFuZ2UpLHJlcGxhY2VVcmw6SDYodGhpcy5yZXBsYWNlVXJsKSxzdGF0ZTp0aGlzLnN0YXRlfTtyZXR1cm4gdGhpcy5yb3V0ZXIu''@;'; + put 'put ''bmF2aWdhdGVCeVVybCh0aGlzLnVybFRyZWUsaiksITF9dXBkYXRlVGFyZ2V0VXJsQW5kSHJlZigpe3RoaXMuaHJlZj1udWxsIT09dGhpcy51cmxUcmVlP3RoaXMubG9jYXRpb25TdHJhdGVneS5wcmVwYXJlRXh0ZXJuYWxVcmwodGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHRoaXMudXJsVHJl''@;'; + put 'put ''ZSkpOm51bGx9Z2V0IHVybFRyZWUoKXtyZXR1cm4gbnVsbD09PXRoaXMuY29tbWFuZHM/bnVsbDp0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKHRoaXMuY29tbWFuZHMse3JlbGF0aXZlVG86dm9pZCAwIT09dGhpcy5yZWxhdGl2ZVRvP3RoaXMucmVsYXRpdmVUbzp0aGlzLnJvdXRlLHF1ZXJ5''@;'; + put 'put ''UGFyYW1zOnRoaXMucXVlcnlQYXJhbXMsZnJhZ21lbnQ6dGhpcy5mcmFnbWVudCxxdWVyeVBhcmFtc0hhbmRsaW5nOnRoaXMucXVlcnlQYXJhbXNIYW5kbGluZyxwcmVzZXJ2ZUZyYWdtZW50Okg2KHRoaXMucHJlc2VydmVGcmFnbWVudCl9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9u''@;'; + put 'put ''KGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoWmwpLFh0KFB1KSxYdChONikpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhIiwicm91dGVyTGluayIsIiJdLFsiYXJlYSIsInJvdXRlckxpbmsiLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsx''@;'; + put 'put ''JmgmJlluKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25DbGljayhDLmJ1dHRvbixDLmN0cmxLZXksQy5zaGlmdEtleSxDLmFsdEtleSxDLm1ldGFLZXkpfSksMiZoJiZ6aSgidGFyZ2V0Iix2LnRhcmdldCkoImhyZWYiLHYuaHJlZix4dil9LGlucHV0czp7dGFyZ2V0OiJ0YXJnZXQi''@;'; + put 'put ''LHF1ZXJ5UGFyYW1zOiJxdWVyeVBhcmFtcyIsZnJhZ21lbnQ6ImZyYWdtZW50IixxdWVyeVBhcmFtc0hhbmRsaW5nOiJxdWVyeVBhcmFtc0hhbmRsaW5nIixwcmVzZXJ2ZUZyYWdtZW50OiJwcmVzZXJ2ZUZyYWdtZW50Iixza2lwTG9jYXRpb25DaGFuZ2U6InNraXBMb2NhdGlvbkNoYW5nZSIs''@;'; + put 'put ''cmVwbGFjZVVybDoicmVwbGFjZVVybCIsc3RhdGU6InN0YXRlIixyZWxhdGl2ZVRvOiJyZWxhdGl2ZVRvIixyb3V0ZXJMaW5rOiJyb3V0ZXJMaW5rIn0sZmVhdHVyZXM6W1AyXX0pLGR9KSgpLG9rPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGope3RoaXMucm91dGVyPWgs''@;'; + put 'put ''dGhpcy5lbGVtZW50PXYsdGhpcy5yZW5kZXJlcj15LHRoaXMuY2RyPUMsdGhpcy5saW5rPUksdGhpcy5saW5rV2l0aEhyZWY9aix0aGlzLmNsYXNzZXM9W10sdGhpcy5pc0FjdGl2ZT0hMSx0aGlzLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zPXtleGFjdDohMX0sdGhpcy5pc0FjdGl2ZUNoYW5n''@;'; + put 'put ''ZT1uZXcgYXIsdGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb249aC5ldmVudHMuc3Vic2NyaWJlKHVlPT57dWUgaW5zdGFuY2VvZiBHNiYmdGhpcy51cGRhdGUoKX0pfW5nQWZ0ZXJDb250ZW50SW5pdCgpe2FhKHRoaXMubGlua3MuY2hhbmdlcyx0aGlzLmxpbmtzV2l0aEhyZWZzLmNoYW5n''@;'; + put 'put ''ZXMsYWEobnVsbCkpLnBpcGUocXQoKSkuc3Vic2NyaWJlKGg9Pnt0aGlzLnVwZGF0ZSgpLHRoaXMuc3Vic2NyaWJlVG9FYWNoTGlua09uQ2hhbmdlcygpfSl9c3Vic2NyaWJlVG9FYWNoTGlua09uQ2hhbmdlcygpe3ZhciBoO251bGw9PT0oaD10aGlzLmxpbmtJbnB1dENoYW5nZXNTdWJzY3Jp''@;'; + put 'put ''cHRpb24pfHx2b2lkIDA9PT1ofHxoLnVuc3Vic2NyaWJlKCk7Y29uc3Qgdj1bLi4udGhpcy5saW5rcy50b0FycmF5KCksLi4udGhpcy5saW5rc1dpdGhIcmVmcy50b0FycmF5KCksdGhpcy5saW5rLHRoaXMubGlua1dpdGhIcmVmXS5maWx0ZXIoeT0+ISF5KS5tYXAoeT0+eS5vbkNoYW5nZXMp''@;'; + put 'put ''O3RoaXMubGlua0lucHV0Q2hhbmdlc1N1YnNjcmlwdGlvbj1kbih2KS5waXBlKHF0KCkpLnN1YnNjcmliZSh5PT57dGhpcy5pc0FjdGl2ZSE9PXRoaXMuaXNMaW5rQWN0aXZlKHRoaXMucm91dGVyKSh5KSYmdGhpcy51cGRhdGUoKX0pfXNldCByb3V0ZXJMaW5rQWN0aXZlKGgpe2NvbnN0IHY9''@;'; + put 'put ''QXJyYXkuaXNBcnJheShoKT9oOmguc3BsaXQoIiAiKTt0aGlzLmNsYXNzZXM9di5maWx0ZXIoeT0+ISF5KX1uZ09uQ2hhbmdlcyhoKXt0aGlzLnVwZGF0ZSgpfW5nT25EZXN0cm95KCl7dmFyIGg7dGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSxudWxsPT09KGg9''@;'; + put 'put ''dGhpcy5saW5rSW5wdXRDaGFuZ2VzU3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09aHx8aC51bnN1YnNjcmliZSgpfXVwZGF0ZSgpeyF0aGlzLmxpbmtzfHwhdGhpcy5saW5rc1dpdGhIcmVmc3x8IXRoaXMucm91dGVyLm5hdmlnYXRlZHx8UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2NvbnN0''@;'; + put 'put ''IGg9dGhpcy5oYXNBY3RpdmVMaW5rcygpO3RoaXMuaXNBY3RpdmUhPT1oJiYodGhpcy5pc0FjdGl2ZT1oLHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpLHRoaXMuY2xhc3Nlcy5mb3JFYWNoKHY9PntoP3RoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsdik6''@;'; + put 'put ''dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCx2KX0pLGgmJnZvaWQgMCE9PXRoaXMuYXJpYUN1cnJlbnRXaGVuQWN0aXZlP3RoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCJhcmlhLWN1cnJlbnQi''@;'; + put 'put ''LHRoaXMuYXJpYUN1cnJlbnRXaGVuQWN0aXZlLnRvU3RyaW5nKCkpOnRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCJhcmlhLWN1cnJlbnQiKSx0aGlzLmlzQWN0aXZlQ2hhbmdlLmVtaXQoaCkpfSl9aXNMaW5rQWN0aXZlKGgpe2NvbnN0''@;'; + put 'put ''IHY9ZnVuY3Rpb24gQ1UoZCl7cmV0dXJuISFkLnBhdGhzfSh0aGlzLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zKT90aGlzLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zOnRoaXMucm91dGVyTGlua0FjdGl2ZU9wdGlvbnMuZXhhY3R8fCExO3JldHVybiB5PT4hIXkudXJsVHJlZSYmaC5pc0FjdGl2''@;'; + put 'put ''ZSh5LnVybFRyZWUsdil9aGFzQWN0aXZlTGlua3MoKXtjb25zdCBoPXRoaXMuaXNMaW5rQWN0aXZlKHRoaXMucm91dGVyKTtyZXR1cm4gdGhpcy5saW5rJiZoKHRoaXMubGluayl8fHRoaXMubGlua1dpdGhIcmVmJiZoKHRoaXMubGlua1dpdGhIcmVmKXx8dGhpcy5saW5rcy5zb21lKGgpfHx0''@;'; + put 'put ''aGlzLmxpbmtzV2l0aEhyZWZzLnNvbWUoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KFpsKSxYdChibyksWHQoR2EpLFh0KGQxKSxYdChZNiw4KSxYdCh2Nyw4KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsInJv''@;'; + put 'put ''dXRlckxpbmtBY3RpdmUiLCIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmKHhvKHksWTYsNSkseG8oeSx2Nyw1KSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5saW5rcz1DKSxIaShDPSRpKCkpJiYodi5saW5rc1dpdGhIcmVmcz1DKX19LGlucHV0czp7cm91''@;'; + put 'put ''dGVyTGlua0FjdGl2ZU9wdGlvbnM6InJvdXRlckxpbmtBY3RpdmVPcHRpb25zIixhcmlhQ3VycmVudFdoZW5BY3RpdmU6ImFyaWFDdXJyZW50V2hlbkFjdGl2ZSIscm91dGVyTGlua0FjdGl2ZToicm91dGVyTGlua0FjdGl2ZSJ9LG91dHB1dHM6e2lzQWN0aXZlQ2hhbmdlOiJpc0FjdGl2ZUNo''@;'; + put 'put ''YW5nZSJ9LGV4cG9ydEFzOlsicm91dGVyTGlua0FjdGl2ZSJdLGZlYXR1cmVzOltQMl19KSxkfSkoKTtjbGFzcyBrVXt9bGV0IHlIPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLnJvdXRlcj1oLHRoaXMuaW5qZWN0b3I9eSx0aGlzLnByZWxvYWRpbmdTdHJhdGVn''@;'; + put 'put ''eT1DLHRoaXMubG9hZGVyPUl9c2V0VXBQcmVsb2FkaW5nKCl7dGhpcy5zdWJzY3JpcHRpb249dGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoTDIoaD0+aCBpbnN0YW5jZW9mIEc2KSxWNSgoKT0+dGhpcy5wcmVsb2FkKCkpKS5zdWJzY3JpYmUoKCk9Pnt9KX1wcmVsb2FkKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''cHJvY2Vzc1JvdXRlcyh0aGlzLmluamVjdG9yLHRoaXMucm91dGVyLmNvbmZpZyl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbiYmdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1wcm9jZXNzUm91dGVzKGgsdil7dmFyIHksQyxJO2NvbnN0IGo9W107Zm9yKGNvbnN0IHVl''@;'; + put 'put ''IG9mIHYpe3VlLnByb3ZpZGVycyYmIXVlLl9pbmplY3RvciYmKHVlLl9pbmplY3Rvcj10Nyh1ZS5wcm92aWRlcnMsaCxgUm91dGU6ICR7dWUucGF0aH1gKSk7Y29uc3QgX2U9bnVsbCE9PSh5PXVlLl9pbmplY3RvcikmJnZvaWQgMCE9PXk/eTpoLEJlPW51bGwhPT0oQz11ZS5fbG9hZGVkSW5q''@;'; + put 'put ''ZWN0b3IpJiZ2b2lkIDAhPT1DP0M6X2U7dWUubG9hZENoaWxkcmVuJiYhdWUuX2xvYWRlZFJvdXRlcyYmdm9pZCAwPT09dWUuY2FuTG9hZHx8dWUubG9hZENvbXBvbmVudCYmIXVlLl9sb2FkZWRDb21wb25lbnQ/ai5wdXNoKHRoaXMucHJlbG9hZENvbmZpZyhfZSx1ZSkpOih1ZS5jaGlsZHJl''@;'; + put 'put ''bnx8dWUuX2xvYWRlZFJvdXRlcykmJmoucHVzaCh0aGlzLnByb2Nlc3NSb3V0ZXMoQmUsbnVsbCE9PShJPXVlLmNoaWxkcmVuKSYmdm9pZCAwIT09ST9JOnVlLl9sb2FkZWRSb3V0ZXMpKX1yZXR1cm4gZG4oaikucGlwZShxdCgpKX1wcmVsb2FkQ29uZmlnKGgsdil7cmV0dXJuIHRoaXMucHJl''@;'; + put 'put ''bG9hZGluZ1N0cmF0ZWd5LnByZWxvYWQodiwoKT0+e2xldCB5O3k9di5sb2FkQ2hpbGRyZW4mJnZvaWQgMD09PXYuY2FuTG9hZD90aGlzLmxvYWRlci5sb2FkQ2hpbGRyZW4oaCx2KTphYShudWxsKTtjb25zdCBDPXkucGlwZShzcihJPT57dmFyIGo7cmV0dXJuIG51bGw9PT1JP2FhKHZvaWQg''@;'; + put 'put ''MCk6KHYuX2xvYWRlZFJvdXRlcz1JLnJvdXRlcyx2Ll9sb2FkZWRJbmplY3Rvcj1JLmluamVjdG9yLHRoaXMucHJvY2Vzc1JvdXRlcyhudWxsIT09KGo9SS5pbmplY3RvcikmJnZvaWQgMCE9PWo/ajpoLEkucm91dGVzKSl9KSk7cmV0dXJuIHYubG9hZENvbXBvbmVudCYmIXYuX2xvYWRlZENv''@;'; + put 'put ''bXBvbmVudD9kbihbQyx0aGlzLmxvYWRlci5sb2FkQ29tcG9uZW50KHYpXSkucGlwZShxdCgpKTpDfSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKFpsKSxDaShtVCksQ2koRTMpLENpKGtVKSxDaSh2SCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rv''@;'; + put 'put ''a2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NvbnN0IFNVPW5ldyB6ZSgiIik7bGV0IGdvZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5PXt9KXt0aGlzLnJvdXRlcj1oLHRoaXMudmlld3BvcnRTY3JvbGxlcj12LHRoaXMub3B0aW9ucz15LHRoaXMubGFzdElkPTAs''@;'; + put 'put ''dGhpcy5sYXN0U291cmNlPSJpbXBlcmF0aXZlIix0aGlzLnJlc3RvcmVkSWQ9MCx0aGlzLnN0b3JlPXt9LHkuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbj15LnNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb258fCJkaXNhYmxlZCIseS5hbmNob3JTY3JvbGxpbmc9eS5hbmNob3JTY3JvbGxpbmd8''@;'; + put 'put ''fCJkaXNhYmxlZCJ9aW5pdCgpeyJkaXNhYmxlZCIhPT10aGlzLm9wdGlvbnMuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiYmdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNldEhpc3RvcnlTY3JvbGxSZXN0b3JhdGlvbigibWFudWFsIiksdGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb249dGhp''@;'; + put 'put ''cy5jcmVhdGVTY3JvbGxFdmVudHMoKSx0aGlzLnNjcm9sbEV2ZW50c1N1YnNjcmlwdGlvbj10aGlzLmNvbnN1bWVTY3JvbGxFdmVudHMoKX1jcmVhdGVTY3JvbGxFdmVudHMoKXtyZXR1cm4gdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShoPT57aCBpbnN0YW5jZW9mIGZJPyh0aGlzLnN0''@;'; + put 'put ''b3JlW3RoaXMubGFzdElkXT10aGlzLnZpZXdwb3J0U2Nyb2xsZXIuZ2V0U2Nyb2xsUG9zaXRpb24oKSx0aGlzLmxhc3RTb3VyY2U9aC5uYXZpZ2F0aW9uVHJpZ2dlcix0aGlzLnJlc3RvcmVkSWQ9aC5yZXN0b3JlZFN0YXRlP2gucmVzdG9yZWRTdGF0ZS5uYXZpZ2F0aW9uSWQ6MCk6aCBpbnN0''@;'; + put 'put ''YW5jZW9mIEc2JiYodGhpcy5sYXN0SWQ9aC5pZCx0aGlzLnNjaGVkdWxlU2Nyb2xsRXZlbnQoaCx0aGlzLnJvdXRlci5wYXJzZVVybChoLnVybEFmdGVyUmVkaXJlY3RzKS5mcmFnbWVudCkpfSl9Y29uc3VtZVNjcm9sbEV2ZW50cygpe3JldHVybiB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2Ny''@;'; + put 'put ''aWJlKGg9PntoIGluc3RhbmNlb2YgZEkmJihoLnBvc2l0aW9uPyJ0b3AiPT09dGhpcy5vcHRpb25zLnNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24/dGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvUG9zaXRpb24oWzAsMF0pOiJlbmFibGVkIj09PXRoaXMub3B0aW9ucy5zY3JvbGxQb3Np''@;'; + put 'put ''dGlvblJlc3RvcmF0aW9uJiZ0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihoLnBvc2l0aW9uKTpoLmFuY2hvciYmImVuYWJsZWQiPT09dGhpcy5vcHRpb25zLmFuY2hvclNjcm9sbGluZz90aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9BbmNob3IoaC5hbmNob3Ip''@;'; + put 'put ''OiJkaXNhYmxlZCIhPT10aGlzLm9wdGlvbnMuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiYmdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvUG9zaXRpb24oWzAsMF0pKX0pfXNjaGVkdWxlU2Nyb2xsRXZlbnQoaCx2KXt0aGlzLnJvdXRlci50cmlnZ2VyRXZlbnQobmV3IGRJKGgsInBv''@;'; + put 'put ''cHN0YXRlIj09PXRoaXMubGFzdFNvdXJjZT90aGlzLnN0b3JlW3RoaXMucmVzdG9yZWRJZF06bnVsbCx2KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnJvdXRlckV2ZW50c1N1YnNjcmlwdGlvbiYmdGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnNjcm9sbEV2''@;'; + put 'put ''ZW50c1N1YnNjcmlwdGlvbiYmdGhpcy5zY3JvbGxFdmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe1h2KCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgTVU9bmV3''@;'; + put 'put ''IHplKCJST1VURVJfRk9SUk9PVF9HVUFSRCIpLEVVPW5ldyB6ZSgiIikseFU9W1Y2LHtwcm92aWRlOlU1LHVzZUNsYXNzOlZGfSx7cHJvdmlkZTpabCx1c2VGYWN0b3J5Ol9VfSwkQyx7cHJvdmlkZTpQdSx1c2VGYWN0b3J5OmZ1bmN0aW9uIGR5KGQpe3JldHVybiBkLnJvdXRlclN0YXRlLnJv''@;'; + put 'put ''b3R9LGRlcHM6W1psXX0sdkhdO2Z1bmN0aW9uIFRJKCl7cmV0dXJuIG5ldyBGRygiUm91dGVyIixabCl9bGV0IFhoPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7fXN0YXRpYyBmb3JSb290KGgsdil7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOlt4VSxbXSxJVShoKSx7cHJvdmlk''@;'; + put 'put ''ZTpNVSx1c2VGYWN0b3J5OnZvZSxkZXBzOltbWmwsbmV3IG1mLG5ldyBMNF1dfSx7cHJvdmlkZTpnSCx1c2VWYWx1ZTp2fHx7fX0sbnVsbCE9diYmdi51c2VIYXNoP3twcm92aWRlOk42LHVzZUNsYXNzOlJyZX06e3Byb3ZpZGU6TjYsdXNlQ2xhc3M6bFd9LHtwcm92aWRlOlNVLHVzZUZhY3Rv''@;'; + put 'put ''cnk6KCk9Pntjb25zdCBkPWgyKFpsKSxnPWgyKHVpZSksaD1oMihnSCk7cmV0dXJuIGguc2Nyb2xsT2Zmc2V0JiZnLnNldE9mZnNldChoLnNjcm9sbE9mZnNldCksbmV3IGdvZShkLGcsaCl9fSxudWxsIT12JiZ2LnByZWxvYWRpbmdTdHJhdGVneT9GVSh2LnByZWxvYWRpbmdTdHJhdGVneSk6''@;'; + put 'put ''W10se3Byb3ZpZGU6RkcsbXVsdGk6ITAsdXNlRmFjdG9yeTpUSX0sbnVsbCE9diYmdi5pbml0aWFsTmF2aWdhdGlvbj9MVSh2KTpbXSxbe3Byb3ZpZGU6RFUsdXNlRmFjdG9yeTpMSX0se3Byb3ZpZGU6RjYsbXVsdGk6ITAsdXNlRXhpc3Rpbmc6RFV9XV19fXN0YXRpYyBmb3JDaGlsZChoKXty''@;'; + put 'put ''ZXR1cm57bmdNb2R1bGU6ZCxwcm92aWRlcnM6W0lVKGgpXX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKE1VLDgpKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHt9KSxkfSkoKTtmdW5jdGlvbiB2b2UoZCl7cmV0''@;'; + put 'put ''dXJuImd1YXJkZWQifWZ1bmN0aW9uIElVKGQpe3JldHVyblt7cHJvdmlkZTpFSSxtdWx0aTohMCx1c2VWYWx1ZTpkfV19ZnVuY3Rpb24gTEkoKXtjb25zdCBkPWgyKGtzKTtyZXR1cm4gZz0+e3ZhciBoLHY7Y29uc3QgeT1kLmdldChfQyk7aWYoZyE9PXkuY29tcG9uZW50c1swXSlyZXR1cm47''@;'; + put 'put ''Y29uc3QgQz1kLmdldChabCksST1kLmdldChPVSk7MT09PWQuZ2V0KHdIKSYmQy5pbml0aWFsTmF2aWdhdGlvbigpLG51bGw9PT0oaD1kLmdldChFVSxudWxsLGowLk9wdGlvbmFsKSl8fHZvaWQgMD09PWh8fGguc2V0VXBQcmVsb2FkaW5nKCksbnVsbD09PSh2PWQuZ2V0KFNVLG51bGwsajAu''@;'; + put 'put ''T3B0aW9uYWwpKXx8dm9pZCAwPT09dnx8di5pbml0KCksQy5yZXNldFJvb3RDb21wb25lbnRUeXBlKHkuY29tcG9uZW50VHlwZXNbMF0pLEkubmV4dCgpLEkuY29tcGxldGUoKX19Y29uc3QgRFU9bmV3IHplKCIiKTtmdW5jdGlvbiBMVShkKXtyZXR1cm5bImRpc2FibGVkIj09PWQuaW5pdGlh''@;'; + put 'put ''bE5hdmlnYXRpb24/W3twcm92aWRlOnZDLG11bHRpOiEwLHVzZUZhY3Rvcnk6KCk9Pntjb25zdCBkPWgyKFpsKTtyZXR1cm4oKT0+e2Quc2V0VXBMb2NhdGlvbkNoYW5nZUxpc3RlbmVyKCl9fX0se3Byb3ZpZGU6d0gsdXNlVmFsdWU6Mn1dOltdLCJlbmFibGVkQmxvY2tpbmciPT09ZC5pbml0''@;'; + put 'put ''aWFsTmF2aWdhdGlvbj9be3Byb3ZpZGU6d0gsdXNlVmFsdWU6MH0se3Byb3ZpZGU6dkMsbXVsdGk6ITAsZGVwczpba3NdLHVzZUZhY3Rvcnk6ZD0+e2NvbnN0IGc9ZC5nZXQoT3JlLFByb21pc2UucmVzb2x2ZShudWxsKSk7bGV0IGg9ITE7cmV0dXJuKCk9PmcudGhlbigoKT0+bmV3IFByb21p''@;'; + put 'put ''c2UoeT0+e2NvbnN0IEM9ZC5nZXQoWmwpLEk9ZC5nZXQoT1UpOyhmdW5jdGlvbiB2KHkpe2QuZ2V0KFpsKS5ldmVudHMucGlwZShMMihJPT5JIGluc3RhbmNlb2YgRzZ8fEkgaW5zdGFuY2VvZiBoSXx8SSBpbnN0YW5jZW9mIFFGKSx2dChJPT5JIGluc3RhbmNlb2YgRzZ8fEkgaW5zdGFuY2Vv''@;'; + put 'put ''ZiBoSSYmKDA9PT1JLmNvZGV8fDE9PT1JLmNvZGUpJiZudWxsKSxMMihJPT5udWxsIT09SSksSDUoMSkpLnN1YnNjcmliZSgoKT0+e3koKX0pfSkoKCk9Pnt5KCEwKSxoPSEwfSksQy5hZnRlclByZWFjdGl2YXRpb249KCk9Pih5KCEwKSxofHxJLmNsb3NlZD9hYSh2b2lkIDApOkkpLEMuaW5p''@;'; + put 'put ''dGlhbE5hdmlnYXRpb24oKX0pKX19XTpbXV19Y29uc3QgT1U9bmV3IHplKCIiLHtmYWN0b3J5OigpPT5uZXcgJGV9KSx3SD1uZXcgemUoIiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PjF9KTtmdW5jdGlvbiBGVShkKXtyZXR1cm5beUgse3Byb3ZpZGU6RVUsdXNlRXhpc3Rpbmc6''@;'; + put 'put ''eUh9LHtwcm92aWRlOmtVLHVzZUV4aXN0aW5nOmR9XX12YXIgSFU9TCg0MDM5MCkseW9lPUwoMjQ4NzkpO2NvbnN0IE5VPXtleHBpcmF0aW9uX2RhdGVfdW5saW1pdGVkOiEwLHVzZXJzX2FsbG93ZWQ6NSxyb3dzX2FsbG93ZWQ6MTUsZGlzYWJsZWRGaWxlVXBsb2FkOiEwLGRpc2FibGVkRWRp''@;'; + put 'put ''dFJlY29yZDohMH0sd29lPXt1c2Vyc19hbGxvd2VkOjF9O2xldCBhaz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7fXNldERjQWRhcHRlclNldHRpbmdzKGgpe3RoaXMuZGNBZGFwdGVyU2V0dGluZ3M9aH1nZXREY0FkYXB0ZXJTZXR0aW5ncygpe3JldHVybiB0aGlzLmRjQWRhcHRlclNl''@;'; + put 'put ''dHRpbmdzfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTtjbGFzcyBWVXtjb25zdHJ1Y3Rvcigpe3RoaXMuc2FzU2Vydmlj''@;'; + put 'put ''ZT1udWxsLHRoaXMubWVzc2FnZT0iIix0aGlzLmRldGFpbHM9bmV3IF9IfX1jbGFzcyBfSHt9bGV0IENIPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLmFsZXJ0cz1uZXcgJGV9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3''@;'; + put 'put ''NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLG11PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5hbGVydHNTZXJ2aWNlPWgsdGhpcy5vblNpZGViYXJUb2dnbGU9bmV3IGFyLHRoaXMub25TdGFydHVwRGF0YUxvYWRlZD1uZXcgYXIsdGhpcy5v''@;'; + put 'put ''blNob3dBYm9ydE1vZGFsPW5ldyBhcix0aGlzLm9uUmVxdWVzdHNNb2RhbE9wZW49bmV3IGFyLHRoaXMub25EZW1vTGltaXRNb2RhbFNob3c9bmV3IGFyLHRoaXMudmlld0xhc3RVcmw9bnVsbCx0aGlzLnNpZGViYXJDbG9zZUxpbWl0PTEyODB9c2hvd0RlbW9MaW1pdE1vZGFsKCl7dGhpcy5v''@;'; + put 'put ''bkRlbW9MaW1pdE1vZGFsU2hvdy5lbWl0KCl9c2hvd0luZm9Nb2RhbChoPSJJbmZvIix2KXt0aGlzLm9uU2hvd0Fib3J0TW9kYWwuZW1pdCh7bW9kYWxUaXRsZTpoLG1lc3NhZ2U6dixzYXNTZXJ2aWNlOiIiLGRldGFpbHM6bnVsbH0pfXNob3dBYm9ydE1vZGFsKGgsdix5LEMpe2xldCBJPXtz''@;'; + put 'put ''YXNTZXJ2aWNlOmgsbWVzc2FnZTp2LGRldGFpbHM6eT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbmV3IF9IKSx5KX07QyYmKEkubW9kYWxUaXRsZT1DKSx0aGlzLm9uU2hvd0Fib3J0TW9kYWwuZW1pdChJKX1vcGVuUmVxdWVzdHNNb2RhbCgpe3RoaXMub25SZXF1ZXN0c01vZGFs''@;'; + put 'put ''T3Blbi5lbWl0KCEwKX1jYXRjaFJlc3BvbnNlRXJyb3IoaCx2KXtsZXQgeT0iU0FTIFNlcnZpY2UgZXJyb3Igb2N1cnJlZCI7aWYodi5lcnJvcil7bGV0IEM7eT12LmVycm9yLm1lc3NhZ2Usdi5lcnJvci5kZXRhaWxzJiZ2LmVycm9yLmRldGFpbHMubG9nJiYoQz12LmVycm9yLmRldGFpbHMu''@;'; + put 'put ''bG9nKSwoIXl8fHkudHJpbSgpLmxlbmd0aDwxKSYmKHk9IlNBUyBTZXJ2aWNlIGVycm9yIG9jdXJyZWQiKSx0aGlzLnNob3dBYm9ydE1vZGFsKGgseSx7TE9HOkN9LCJSZXF1ZXN0IGVycm9yIil9ZWxzZSB0aGlzLnNob3dBYm9ydE1vZGFsKGgseSl9dG9nZ2xlU2lkZWJhcigpe3RoaXMub25T''@;'; + put 'put ''aWRlYmFyVG9nZ2xlLmVtaXQoKX1jbG9zZVNpZGViYXIoKXt3aW5kb3cuaW5uZXJXaWR0aDx0aGlzLnNpZGViYXJDbG9zZUxpbWl0JiZ0aGlzLm9uU2lkZWJhclRvZ2dsZS5lbWl0KHtvcGVuOiExfSl9b3BlblNpZGViYXIoKXt0aGlzLm9uU2lkZWJhclRvZ2dsZS5lbWl0KHtvcGVuOiEwfSl9''@;'; + put 'put ''c3RhcnR1cERhdGFMb2FkZWQoKXt0aGlzLm9uU3RhcnR1cERhdGFMb2FkZWQuZW1pdCgpfWRpc3BhdGNoRXZlbnQoaCl7bGV0IHY7ImZ1bmN0aW9uIj09dHlwZW9mIEV2ZW50P3Y9bmV3IEV2ZW50KGgpOih2PWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLHYuaW5pdEV2ZW50KGgsITAs''@;'; + put 'put ''ITApKSx3aW5kb3cuZGlzcGF0Y2hFdmVudCh2KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koQ0gpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTt2YXIgUTM9''@;'; + put 'put ''TCgxMTQwKSxqVT1MLm4oUTMpLEh1PUwoMjU4NTkpO2xldCBrSD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy51c2VyQ2hhbmdlPW5ldyAkZX1zZXQgdXNlcihoKXt0aGlzLl91c2VyPWgsdGhpcy51c2VyQ2hhbmdlLm5leHQoaCl9Z2V0IHVzZXIoKXtyZXR1cm4gdGhpcy5fdXNl''@;'; + put 'put ''cn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3MgWlV7fWNsYXNzIHpVe31jbGFzcyBocHtjb25zdHJ1Y3RvcihnKXt0aGlzLm5vcm1hbGl6ZWRO''@;'; + put 'put ''YW1lcz1uZXcgTWFwLHRoaXMubGF6eVVwZGF0ZT1udWxsLGc/dGhpcy5sYXp5SW5pdD0ic3RyaW5nIj09dHlwZW9mIGc/KCk9Pnt0aGlzLmhlYWRlcnM9bmV3IE1hcCxnLnNwbGl0KCJcbiIpLmZvckVhY2goaD0+e2NvbnN0IHY9aC5pbmRleE9mKCI6Iik7aWYodj4wKXtjb25zdCB5PWguc2xp''@;'; + put 'put ''Y2UoMCx2KSxDPXkudG9Mb3dlckNhc2UoKSxJPWguc2xpY2UodisxKS50cmltKCk7dGhpcy5tYXliZVNldE5vcm1hbGl6ZWROYW1lKHksQyksdGhpcy5oZWFkZXJzLmhhcyhDKT90aGlzLmhlYWRlcnMuZ2V0KEMpLnB1c2goSSk6dGhpcy5oZWFkZXJzLnNldChDLFtJXSl9fSl9OigpPT57dGhp''@;'; + put 'put ''cy5oZWFkZXJzPW5ldyBNYXAsT2JqZWN0LmtleXMoZykuZm9yRWFjaChoPT57bGV0IHY9Z1toXTtjb25zdCB5PWgudG9Mb3dlckNhc2UoKTsic3RyaW5nIj09dHlwZW9mIHYmJih2PVt2XSksdi5sZW5ndGg+MCYmKHRoaXMuaGVhZGVycy5zZXQoeSx2KSx0aGlzLm1heWJlU2V0Tm9ybWFsaXpl''@;'; + put 'put ''ZE5hbWUoaCx5KSl9KX06dGhpcy5oZWFkZXJzPW5ldyBNYXB9aGFzKGcpe3JldHVybiB0aGlzLmluaXQoKSx0aGlzLmhlYWRlcnMuaGFzKGcudG9Mb3dlckNhc2UoKSl9Z2V0KGcpe3RoaXMuaW5pdCgpO2NvbnN0IGg9dGhpcy5oZWFkZXJzLmdldChnLnRvTG93ZXJDYXNlKCkpO3JldHVybiBo''@;'; + put 'put ''JiZoLmxlbmd0aD4wP2hbMF06bnVsbH1rZXlzKCl7cmV0dXJuIHRoaXMuaW5pdCgpLEFycmF5LmZyb20odGhpcy5ub3JtYWxpemVkTmFtZXMudmFsdWVzKCkpfWdldEFsbChnKXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5oZWFkZXJzLmdldChnLnRvTG93ZXJDYXNlKCkpfHxudWxsfWFwcGVu''@;'; + put 'put ''ZChnLGgpe3JldHVybiB0aGlzLmNsb25lKHtuYW1lOmcsdmFsdWU6aCxvcDoiYSJ9KX1zZXQoZyxoKXtyZXR1cm4gdGhpcy5jbG9uZSh7bmFtZTpnLHZhbHVlOmgsb3A6InMifSl9ZGVsZXRlKGcsaCl7cmV0dXJuIHRoaXMuY2xvbmUoe25hbWU6Zyx2YWx1ZTpoLG9wOiJkIn0pfW1heWJlU2V0''@;'; + put 'put ''Tm9ybWFsaXplZE5hbWUoZyxoKXt0aGlzLm5vcm1hbGl6ZWROYW1lcy5oYXMoaCl8fHRoaXMubm9ybWFsaXplZE5hbWVzLnNldChoLGcpfWluaXQoKXt0aGlzLmxhenlJbml0JiYodGhpcy5sYXp5SW5pdCBpbnN0YW5jZW9mIGhwP3RoaXMuY29weUZyb20odGhpcy5sYXp5SW5pdCk6dGhpcy5s''@;'; + put 'put ''YXp5SW5pdCgpLHRoaXMubGF6eUluaXQ9bnVsbCx0aGlzLmxhenlVcGRhdGUmJih0aGlzLmxhenlVcGRhdGUuZm9yRWFjaChnPT50aGlzLmFwcGx5VXBkYXRlKGcpKSx0aGlzLmxhenlVcGRhdGU9bnVsbCkpfWNvcHlGcm9tKGcpe2cuaW5pdCgpLEFycmF5LmZyb20oZy5oZWFkZXJzLmtleXMo''@;'; + put 'put ''KSkuZm9yRWFjaChoPT57dGhpcy5oZWFkZXJzLnNldChoLGcuaGVhZGVycy5nZXQoaCkpLHRoaXMubm9ybWFsaXplZE5hbWVzLnNldChoLGcubm9ybWFsaXplZE5hbWVzLmdldChoKSl9KX1jbG9uZShnKXtjb25zdCBoPW5ldyBocDtyZXR1cm4gaC5sYXp5SW5pdD10aGlzLmxhenlJbml0JiZ0''@;'; + put 'put ''aGlzLmxhenlJbml0IGluc3RhbmNlb2YgaHA/dGhpcy5sYXp5SW5pdDp0aGlzLGgubGF6eVVwZGF0ZT0odGhpcy5sYXp5VXBkYXRlfHxbXSkuY29uY2F0KFtnXSksaH1hcHBseVVwZGF0ZShnKXtjb25zdCBoPWcubmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChnLm9wKXtjYXNlImEiOmNhc2Ui''@;'; + put 'put ''cyI6bGV0IHY9Zy52YWx1ZTtpZigic3RyaW5nIj09dHlwZW9mIHYmJih2PVt2XSksMD09PXYubGVuZ3RoKXJldHVybjt0aGlzLm1heWJlU2V0Tm9ybWFsaXplZE5hbWUoZy5uYW1lLGgpO2NvbnN0IHk9KCJhIj09PWcub3A/dGhpcy5oZWFkZXJzLmdldChoKTp2b2lkIDApfHxbXTt5LnB1c2go''@;'; + put 'put ''Li4udiksdGhpcy5oZWFkZXJzLnNldChoLHkpO2JyZWFrO2Nhc2UiZCI6Y29uc3QgQz1nLnZhbHVlO2lmKEMpe2xldCBJPXRoaXMuaGVhZGVycy5nZXQoaCk7aWYoIUkpcmV0dXJuO0k9SS5maWx0ZXIoaj0+LTE9PT1DLmluZGV4T2YoaikpLDA9PT1JLmxlbmd0aD8odGhpcy5oZWFkZXJzLmRl''@;'; + put 'put ''bGV0ZShoKSx0aGlzLm5vcm1hbGl6ZWROYW1lcy5kZWxldGUoaCkpOnRoaXMuaGVhZGVycy5zZXQoaCxJKX1lbHNlIHRoaXMuaGVhZGVycy5kZWxldGUoaCksdGhpcy5ub3JtYWxpemVkTmFtZXMuZGVsZXRlKGgpfX1mb3JFYWNoKGcpe3RoaXMuaW5pdCgpLEFycmF5LmZyb20odGhpcy5ub3Jt''@;'; + put 'put ''YWxpemVkTmFtZXMua2V5cygpKS5mb3JFYWNoKGg9PmcodGhpcy5ub3JtYWxpemVkTmFtZXMuZ2V0KGgpLHRoaXMuaGVhZGVycy5nZXQoaCkpKX19Y2xhc3MgR1V7ZW5jb2RlS2V5KGcpe3JldHVybiBZVShnKX1lbmNvZGVWYWx1ZShnKXtyZXR1cm4gWVUoZyl9ZGVjb2RlS2V5KGcpe3JldHVy''@;'; + put 'put ''biBkZWNvZGVVUklDb21wb25lbnQoZyl9ZGVjb2RlVmFsdWUoZyl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChnKX19Y29uc3QgV1U9LyUoXGRbYS1mMC05XSkvZ2ksX29lPXs0MDoiQCIsIjNBIjoiOiIsMjQ6IiQiLCIyQyI6IiwiLCIzQiI6IjsiLCIzRCI6Ij0iLCIzRiI6Ij8iLCIyRiI6''@;'; + put 'put ''Ii8ifTtmdW5jdGlvbiBZVShkKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGQpLnJlcGxhY2UoV1UsKGcsaCk9Pnt2YXIgdjtyZXR1cm4gbnVsbCE9PSh2PV9vZVtoXSkmJnZvaWQgMCE9PXY/djpnfSl9ZnVuY3Rpb24gT0koZCl7cmV0dXJuYCR7ZH1gfWNsYXNzIFE1e2NvbnN0cnVjdG9y''@;'; + put 'put ''KGc9e30pe2lmKHRoaXMudXBkYXRlcz1udWxsLHRoaXMuY2xvbmVGcm9tPW51bGwsdGhpcy5lbmNvZGVyPWcuZW5jb2Rlcnx8bmV3IEdVLGcuZnJvbVN0cmluZyl7aWYoZy5mcm9tT2JqZWN0KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNwZWNpZnkgYm90aCBmcm9tU3RyaW5nIGFuZCBmcm9t''@;'; + put 'put ''T2JqZWN0LiIpO3RoaXMubWFwPWZ1bmN0aW9uIGJvZShkLGcpe2NvbnN0IGg9bmV3IE1hcDtyZXR1cm4gZC5sZW5ndGg+MCYmZC5yZXBsYWNlKC9eXD8vLCIiKS5zcGxpdCgiJiIpLmZvckVhY2goeT0+e2NvbnN0IEM9eS5pbmRleE9mKCI9IiksW0ksal09LTE9PUM/W2cuZGVjb2RlS2V5KHkp''@;'; + put 'put ''LCIiXTpbZy5kZWNvZGVLZXkoeS5zbGljZSgwLEMpKSxnLmRlY29kZVZhbHVlKHkuc2xpY2UoQysxKSldLHVlPWguZ2V0KEkpfHxbXTt1ZS5wdXNoKGopLGguc2V0KEksdWUpfSksaH0oZy5mcm9tU3RyaW5nLHRoaXMuZW5jb2Rlcil9ZWxzZSBnLmZyb21PYmplY3Q/KHRoaXMubWFwPW5ldyBN''@;'; + put 'put ''YXAsT2JqZWN0LmtleXMoZy5mcm9tT2JqZWN0KS5mb3JFYWNoKGg9Pntjb25zdCB2PWcuZnJvbU9iamVjdFtoXSx5PUFycmF5LmlzQXJyYXkodik/di5tYXAoT0kpOltPSSh2KV07dGhpcy5tYXAuc2V0KGgseSl9KSk6dGhpcy5tYXA9bnVsbH1oYXMoZyl7cmV0dXJuIHRoaXMuaW5pdCgpLHRo''@;'; + put 'put ''aXMubWFwLmhhcyhnKX1nZXQoZyl7dGhpcy5pbml0KCk7Y29uc3QgaD10aGlzLm1hcC5nZXQoZyk7cmV0dXJuIGg/aFswXTpudWxsfWdldEFsbChnKXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5tYXAuZ2V0KGcpfHxudWxsfWtleXMoKXtyZXR1cm4gdGhpcy5pbml0KCksQXJyYXkuZnJvbSh0''@;'; + put 'put ''aGlzLm1hcC5rZXlzKCkpfWFwcGVuZChnLGgpe3JldHVybiB0aGlzLmNsb25lKHtwYXJhbTpnLHZhbHVlOmgsb3A6ImEifSl9YXBwZW5kQWxsKGcpe2NvbnN0IGg9W107cmV0dXJuIE9iamVjdC5rZXlzKGcpLmZvckVhY2godj0+e2NvbnN0IHk9Z1t2XTtBcnJheS5pc0FycmF5KHkpP3kuZm9y''@;'; + put 'put ''RWFjaChDPT57aC5wdXNoKHtwYXJhbTp2LHZhbHVlOkMsb3A6ImEifSl9KTpoLnB1c2goe3BhcmFtOnYsdmFsdWU6eSxvcDoiYSJ9KX0pLHRoaXMuY2xvbmUoaCl9c2V0KGcsaCl7cmV0dXJuIHRoaXMuY2xvbmUoe3BhcmFtOmcsdmFsdWU6aCxvcDoicyJ9KX1kZWxldGUoZyxoKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5jbG9uZSh7cGFyYW06Zyx2YWx1ZTpoLG9wOiJkIn0pfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMua2V5cygpLm1hcChnPT57Y29uc3QgaD10aGlzLmVuY29kZXIuZW5jb2RlS2V5KGcpO3JldHVybiB0aGlzLm1hcC5nZXQoZykubWFwKHY9PmgrIj0iK3RoaXMuZW5j''@;'; + put 'put ''b2Rlci5lbmNvZGVWYWx1ZSh2KSkuam9pbigiJiIpfSkuZmlsdGVyKGc9PiIiIT09Zykuam9pbigiJiIpfWNsb25lKGcpe2NvbnN0IGg9bmV3IFE1KHtlbmNvZGVyOnRoaXMuZW5jb2Rlcn0pO3JldHVybiBoLmNsb25lRnJvbT10aGlzLmNsb25lRnJvbXx8dGhpcyxoLnVwZGF0ZXM9KHRoaXMu''@;'; + put 'put ''dXBkYXRlc3x8W10pLmNvbmNhdChnKSxofWluaXQoKXtudWxsPT09dGhpcy5tYXAmJih0aGlzLm1hcD1uZXcgTWFwKSxudWxsIT09dGhpcy5jbG9uZUZyb20mJih0aGlzLmNsb25lRnJvbS5pbml0KCksdGhpcy5jbG9uZUZyb20ua2V5cygpLmZvckVhY2goZz0+dGhpcy5tYXAuc2V0KGcsdGhp''@;'; + put 'put ''cy5jbG9uZUZyb20ubWFwLmdldChnKSkpLHRoaXMudXBkYXRlcy5mb3JFYWNoKGc9Pntzd2l0Y2goZy5vcCl7Y2FzZSJhIjpjYXNlInMiOmNvbnN0IGg9KCJhIj09PWcub3A/dGhpcy5tYXAuZ2V0KGcucGFyYW0pOnZvaWQgMCl8fFtdO2gucHVzaChPSShnLnZhbHVlKSksdGhpcy5tYXAuc2V0''@;'; + put 'put ''KGcucGFyYW0saCk7YnJlYWs7Y2FzZSJkIjppZih2b2lkIDA9PT1nLnZhbHVlKXt0aGlzLm1hcC5kZWxldGUoZy5wYXJhbSk7YnJlYWt9e2xldCB2PXRoaXMubWFwLmdldChnLnBhcmFtKXx8W107Y29uc3QgeT12LmluZGV4T2YoT0koZy52YWx1ZSkpOy0xIT09eSYmdi5zcGxpY2UoeSwxKSx2''@;'; + put 'put ''Lmxlbmd0aD4wP3RoaXMubWFwLnNldChnLnBhcmFtLHYpOnRoaXMubWFwLmRlbGV0ZShnLnBhcmFtKX19fSksdGhpcy5jbG9uZUZyb209dGhpcy51cGRhdGVzPW51bGwpfX1jbGFzcyBNSHtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwPW5ldyBNYXB9c2V0KGcsaCl7cmV0dXJuIHRoaXMubWFwLnNl''@;'; + put 'put ''dChnLGgpLHRoaXN9Z2V0KGcpe3JldHVybiB0aGlzLm1hcC5oYXMoZyl8fHRoaXMubWFwLnNldChnLGcuZGVmYXVsdFZhbHVlKCkpLHRoaXMubWFwLmdldChnKX1kZWxldGUoZyl7cmV0dXJuIHRoaXMubWFwLmRlbGV0ZShnKSx0aGlzfWhhcyhnKXtyZXR1cm4gdGhpcy5tYXAuaGFzKGcpfWtl''@;'; + put 'put ''eXMoKXtyZXR1cm4gdGhpcy5tYXAua2V5cygpfX1mdW5jdGlvbiBVVShkKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZkIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ9ZnVuY3Rpb24gUVUoZCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiZkIGluc3RhbmNl''@;'; + put 'put ''b2YgQmxvYn1mdW5jdGlvbiBKVShkKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEZvcm1EYXRhJiZkIGluc3RhbmNlb2YgRm9ybURhdGF9Y2xhc3MgcHl7Y29uc3RydWN0b3IoZyxoLHYseSl7bGV0IEM7aWYodGhpcy51cmw9aCx0aGlzLmJvZHk9bnVsbCx0aGlzLnJlcG9ydFByb2dyZXNz''@;'; + put 'put ''PSExLHRoaXMud2l0aENyZWRlbnRpYWxzPSExLHRoaXMucmVzcG9uc2VUeXBlPSJqc29uIix0aGlzLm1ldGhvZD1nLnRvVXBwZXJDYXNlKCksZnVuY3Rpb24gQ29lKGQpe3N3aXRjaChkKXtjYXNlIkRFTEVURSI6Y2FzZSJHRVQiOmNhc2UiSEVBRCI6Y2FzZSJPUFRJT05TIjpjYXNlIkpTT05Q''@;'; + put 'put ''IjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX0odGhpcy5tZXRob2QpfHx5Pyh0aGlzLmJvZHk9dm9pZCAwIT09dj92Om51bGwsQz15KTpDPXYsQyYmKHRoaXMucmVwb3J0UHJvZ3Jlc3M9ISFDLnJlcG9ydFByb2dyZXNzLHRoaXMud2l0aENyZWRlbnRpYWxzPSEhQy53aXRoQ3JlZGVudGlh''@;'; + put 'put ''bHMsQy5yZXNwb25zZVR5cGUmJih0aGlzLnJlc3BvbnNlVHlwZT1DLnJlc3BvbnNlVHlwZSksQy5oZWFkZXJzJiYodGhpcy5oZWFkZXJzPUMuaGVhZGVycyksQy5jb250ZXh0JiYodGhpcy5jb250ZXh0PUMuY29udGV4dCksQy5wYXJhbXMmJih0aGlzLnBhcmFtcz1DLnBhcmFtcykpLHRoaXMu''@;'; + put 'put ''aGVhZGVyc3x8KHRoaXMuaGVhZGVycz1uZXcgaHApLHRoaXMuY29udGV4dHx8KHRoaXMuY29udGV4dD1uZXcgTUgpLHRoaXMucGFyYW1zKXtjb25zdCBJPXRoaXMucGFyYW1zLnRvU3RyaW5nKCk7aWYoMD09PUkubGVuZ3RoKXRoaXMudXJsV2l0aFBhcmFtcz1oO2Vsc2V7Y29uc3Qgaj1oLmlu''@;'; + put 'put ''ZGV4T2YoIj8iKTt0aGlzLnVybFdpdGhQYXJhbXM9aCsoLTE9PT1qPyI/IjpqPGgubGVuZ3RoLTE/IiYiOiIiKStJfX1lbHNlIHRoaXMucGFyYW1zPW5ldyBRNSx0aGlzLnVybFdpdGhQYXJhbXM9aH1zZXJpYWxpemVCb2R5KCl7cmV0dXJuIG51bGw9PT10aGlzLmJvZHk/bnVsbDpVVSh0aGlz''@;'; + put 'put ''LmJvZHkpfHxRVSh0aGlzLmJvZHkpfHxKVSh0aGlzLmJvZHkpfHxmdW5jdGlvbiBrb2UoZCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBVUkxTZWFyY2hQYXJhbXMmJmQgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXN9KHRoaXMuYm9keSl8fCJzdHJpbmciPT10eXBlb2YgdGhpcy5ib2R5''@;'; + put 'put ''P3RoaXMuYm9keTp0aGlzLmJvZHkgaW5zdGFuY2VvZiBRNT90aGlzLmJvZHkudG9TdHJpbmcoKToib2JqZWN0Ij09dHlwZW9mIHRoaXMuYm9keXx8ImJvb2xlYW4iPT10eXBlb2YgdGhpcy5ib2R5fHxBcnJheS5pc0FycmF5KHRoaXMuYm9keSk/SlNPTi5zdHJpbmdpZnkodGhpcy5ib2R5KTp0''@;'; + put 'put ''aGlzLmJvZHkudG9TdHJpbmcoKX1kZXRlY3RDb250ZW50VHlwZUhlYWRlcigpe3JldHVybiBudWxsPT09dGhpcy5ib2R5fHxKVSh0aGlzLmJvZHkpP251bGw6UVUodGhpcy5ib2R5KT90aGlzLmJvZHkudHlwZXx8bnVsbDpVVSh0aGlzLmJvZHkpP251bGw6InN0cmluZyI9PXR5cGVvZiB0aGlz''@;'; + put 'put ''LmJvZHk/InRleHQvcGxhaW4iOnRoaXMuYm9keSBpbnN0YW5jZW9mIFE1PyJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCI6Im9iamVjdCI9PXR5cGVvZiB0aGlzLmJvZHl8fCJudW1iZXIiPT10eXBlb2YgdGhpcy5ib2R5fHwiYm9vbGVhbiI9PXR5cGVv''@;'; + put 'put ''ZiB0aGlzLmJvZHk/ImFwcGxpY2F0aW9uL2pzb24iOm51bGx9Y2xvbmUoZz17fSl7dmFyIGg7Y29uc3Qgdj1nLm1ldGhvZHx8dGhpcy5tZXRob2QseT1nLnVybHx8dGhpcy51cmwsQz1nLnJlc3BvbnNlVHlwZXx8dGhpcy5yZXNwb25zZVR5cGUsST12b2lkIDAhPT1nLmJvZHk/Zy5ib2R5OnRo''@;'; + put 'put ''aXMuYm9keSxqPXZvaWQgMCE9PWcud2l0aENyZWRlbnRpYWxzP2cud2l0aENyZWRlbnRpYWxzOnRoaXMud2l0aENyZWRlbnRpYWxzLHVlPXZvaWQgMCE9PWcucmVwb3J0UHJvZ3Jlc3M/Zy5yZXBvcnRQcm9ncmVzczp0aGlzLnJlcG9ydFByb2dyZXNzO2xldCBfZT1nLmhlYWRlcnN8fHRoaXMu''@;'; + put 'put ''aGVhZGVycyxCZT1nLnBhcmFtc3x8dGhpcy5wYXJhbXM7Y29uc3QgTmU9bnVsbCE9PShoPWcuY29udGV4dCkmJnZvaWQgMCE9PWg/aDp0aGlzLmNvbnRleHQ7cmV0dXJuIHZvaWQgMCE9PWcuc2V0SGVhZGVycyYmKF9lPU9iamVjdC5rZXlzKGcuc2V0SGVhZGVycykucmVkdWNlKChLZSxkdCk9''@;'; + put 'put ''PktlLnNldChkdCxnLnNldEhlYWRlcnNbZHRdKSxfZSkpLGcuc2V0UGFyYW1zJiYoQmU9T2JqZWN0LmtleXMoZy5zZXRQYXJhbXMpLnJlZHVjZSgoS2UsZHQpPT5LZS5zZXQoZHQsZy5zZXRQYXJhbXNbZHRdKSxCZSkpLG5ldyBweSh2LHksSSx7cGFyYW1zOkJlLGhlYWRlcnM6X2UsY29udGV4''@;'; + put 'put ''dDpOZSxyZXBvcnRQcm9ncmVzczp1ZSxyZXNwb25zZVR5cGU6Qyx3aXRoQ3JlZGVudGlhbHM6an0pfX12YXIgdnU9KCgpPT4oKHZ1PXZ1fHx7fSlbdnUuU2VudD0wXT0iU2VudCIsdnVbdnUuVXBsb2FkUHJvZ3Jlc3M9MV09IlVwbG9hZFByb2dyZXNzIix2dVt2dS5SZXNwb25zZUhlYWRlcj0y''@;'; + put 'put ''XT0iUmVzcG9uc2VIZWFkZXIiLHZ1W3Z1LkRvd25sb2FkUHJvZ3Jlc3M9M109IkRvd25sb2FkUHJvZ3Jlc3MiLHZ1W3Z1LlJlc3BvbnNlPTRdPSJSZXNwb25zZSIsdnVbdnUuVXNlcj01XT0iVXNlciIsdnUpKSgpO2NsYXNzIEE3e2NvbnN0cnVjdG9yKGcsaD0yMDAsdj0iT0siKXt0aGlzLmhl''@;'; + put 'put ''YWRlcnM9Zy5oZWFkZXJzfHxuZXcgaHAsdGhpcy5zdGF0dXM9dm9pZCAwIT09Zy5zdGF0dXM/Zy5zdGF0dXM6aCx0aGlzLnN0YXR1c1RleHQ9Zy5zdGF0dXNUZXh0fHx2LHRoaXMudXJsPWcudXJsfHxudWxsLHRoaXMub2s9dGhpcy5zdGF0dXM+PTIwMCYmdGhpcy5zdGF0dXM8MzAwfX1jbGFz''@;'; + put 'put ''cyBFSCBleHRlbmRzIEE3e2NvbnN0cnVjdG9yKGc9e30pe3N1cGVyKGcpLHRoaXMudHlwZT12dS5SZXNwb25zZUhlYWRlcn1jbG9uZShnPXt9KXtyZXR1cm4gbmV3IEVIKHtoZWFkZXJzOmcuaGVhZGVyc3x8dGhpcy5oZWFkZXJzLHN0YXR1czp2b2lkIDAhPT1nLnN0YXR1cz9nLnN0YXR1czp0''@;'; + put 'put ''aGlzLnN0YXR1cyxzdGF0dXNUZXh0Omcuc3RhdHVzVGV4dHx8dGhpcy5zdGF0dXNUZXh0LHVybDpnLnVybHx8dGhpcy51cmx8fHZvaWQgMH0pfX1jbGFzcyBneSBleHRlbmRzIEE3e2NvbnN0cnVjdG9yKGc9e30pe3N1cGVyKGcpLHRoaXMudHlwZT12dS5SZXNwb25zZSx0aGlzLmJvZHk9dm9p''@;'; + put 'put ''ZCAwIT09Zy5ib2R5P2cuYm9keTpudWxsfWNsb25lKGc9e30pe3JldHVybiBuZXcgZ3koe2JvZHk6dm9pZCAwIT09Zy5ib2R5P2cuYm9keTp0aGlzLmJvZHksaGVhZGVyczpnLmhlYWRlcnN8fHRoaXMuaGVhZGVycyxzdGF0dXM6dm9pZCAwIT09Zy5zdGF0dXM/Zy5zdGF0dXM6dGhpcy5zdGF0''@;'; + put 'put ''dXMsc3RhdHVzVGV4dDpnLnN0YXR1c1RleHR8fHRoaXMuc3RhdHVzVGV4dCx1cmw6Zy51cmx8fHRoaXMudXJsfHx2b2lkIDB9KX19Y2xhc3MgWFUgZXh0ZW5kcyBBN3tjb25zdHJ1Y3RvcihnKXtzdXBlcihnLDAsIlVua25vd24gRXJyb3IiKSx0aGlzLm5hbWU9Ikh0dHBFcnJvclJlc3BvbnNl''@;'; + put 'put ''Iix0aGlzLm9rPSExLHRoaXMubWVzc2FnZT10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDA/YEh0dHAgZmFpbHVyZSBkdXJpbmcgcGFyc2luZyBmb3IgJHtnLnVybHx8Iih1bmtub3duIHVybCkifWA6YEh0dHAgZmFpbHVyZSByZXNwb25zZSBmb3IgJHtnLnVybHx8Iih1bmtub3du''@;'; + put 'put ''IHVybCkifTogJHtnLnN0YXR1c30gJHtnLnN0YXR1c1RleHR9YCx0aGlzLmVycm9yPWcuZXJyb3J8fG51bGx9fWZ1bmN0aW9uIHhIKGQsZyl7cmV0dXJue2JvZHk6ZyxoZWFkZXJzOmQuaGVhZGVycyxjb250ZXh0OmQuY29udGV4dCxvYnNlcnZlOmQub2JzZXJ2ZSxwYXJhbXM6ZC5wYXJhbXMs''@;'; + put 'put ''cmVwb3J0UHJvZ3Jlc3M6ZC5yZXBvcnRQcm9ncmVzcyxyZXNwb25zZVR5cGU6ZC5yZXNwb25zZVR5cGUsd2l0aENyZWRlbnRpYWxzOmQud2l0aENyZWRlbnRpYWxzfX1sZXQgVEg9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmhhbmRsZXI9aH1yZXF1ZXN0KGgsdix5PXt9KXts''@;'; + put 'put ''ZXQgQztpZihoIGluc3RhbmNlb2YgcHkpQz1oO2Vsc2V7bGV0IHVlLF9lO3VlPXkuaGVhZGVycyBpbnN0YW5jZW9mIGhwP3kuaGVhZGVyczpuZXcgaHAoeS5oZWFkZXJzKSx5LnBhcmFtcyYmKF9lPXkucGFyYW1zIGluc3RhbmNlb2YgUTU/eS5wYXJhbXM6bmV3IFE1KHtmcm9tT2JqZWN0Onku''@;'; + put 'put ''cGFyYW1zfSkpLEM9bmV3IHB5KGgsdix2b2lkIDAhPT15LmJvZHk/eS5ib2R5Om51bGwse2hlYWRlcnM6dWUsY29udGV4dDp5LmNvbnRleHQscGFyYW1zOl9lLHJlcG9ydFByb2dyZXNzOnkucmVwb3J0UHJvZ3Jlc3MscmVzcG9uc2VUeXBlOnkucmVzcG9uc2VUeXBlfHwianNvbiIsd2l0aENy''@;'; + put 'put ''ZWRlbnRpYWxzOnkud2l0aENyZWRlbnRpYWxzfSl9Y29uc3QgST1hYShDKS5waXBlKFY1KHVlPT50aGlzLmhhbmRsZXIuaGFuZGxlKHVlKSkpO2lmKGggaW5zdGFuY2VvZiBweXx8ImV2ZW50cyI9PT15Lm9ic2VydmUpcmV0dXJuIEk7Y29uc3Qgaj1JLnBpcGUoTDIodWU9PnVlIGluc3RhbmNl''@;'; + put 'put ''b2YgZ3kpKTtzd2l0Y2goeS5vYnNlcnZlfHwiYm9keSIpe2Nhc2UiYm9keSI6c3dpdGNoKEMucmVzcG9uc2VUeXBlKXtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gai5waXBlKHZ0KHVlPT57aWYobnVsbCE9PXVlLmJvZHkmJiEodWUuYm9keSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSl0aHJv''@;'; + put 'put ''dyBuZXcgRXJyb3IoIlJlc3BvbnNlIGlzIG5vdCBhbiBBcnJheUJ1ZmZlci4iKTtyZXR1cm4gdWUuYm9keX0pKTtjYXNlImJsb2IiOnJldHVybiBqLnBpcGUodnQodWU9PntpZihudWxsIT09dWUuYm9keSYmISh1ZS5ib2R5IGluc3RhbmNlb2YgQmxvYikpdGhyb3cgbmV3IEVycm9yKCJSZXNw''@;'; + put 'put ''b25zZSBpcyBub3QgYSBCbG9iLiIpO3JldHVybiB1ZS5ib2R5fSkpO2Nhc2UidGV4dCI6cmV0dXJuIGoucGlwZSh2dCh1ZT0+e2lmKG51bGwhPT11ZS5ib2R5JiYic3RyaW5nIiE9dHlwZW9mIHVlLmJvZHkpdGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBpcyBub3QgYSBzdHJpbmcuIik7cmV0''@;'; + put 'put ''dXJuIHVlLmJvZHl9KSk7ZGVmYXVsdDpyZXR1cm4gai5waXBlKHZ0KHVlPT51ZS5ib2R5KSl9Y2FzZSJyZXNwb25zZSI6cmV0dXJuIGo7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVucmVhY2hhYmxlOiB1bmhhbmRsZWQgb2JzZXJ2ZSB0eXBlICR7eS5vYnNlcnZlfX1gKX19ZGVsZXRlKGgs''@;'; + put 'put ''dj17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiREVMRVRFIixoLHYpfWdldChoLHY9e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIkdFVCIsaCx2KX1oZWFkKGgsdj17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiSEVBRCIsaCx2KX1qc29ucChoLHYpe3JldHVybiB0aGlzLnJlcXVlc3QoIkpTT05Q''@;'; + put 'put ''IixoLHtwYXJhbXM6KG5ldyBRNSkuYXBwZW5kKHYsIkpTT05QX0NBTExCQUNLIiksb2JzZXJ2ZToiYm9keSIscmVzcG9uc2VUeXBlOiJqc29uIn0pfW9wdGlvbnMoaCx2PXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJPUFRJT05TIixoLHYpfXBhdGNoKGgsdix5PXt9KXtyZXR1cm4gdGhpcy5y''@;'; + put 'put ''ZXF1ZXN0KCJQQVRDSCIsaCx4SCh5LHYpKX1wb3N0KGgsdix5PXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJQT1NUIixoLHhIKHksdikpfXB1dChoLHYseT17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiUFVUIixoLHhIKHksdikpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0''@;'; + put 'put ''dXJuIG5ldyhofHxkKShDaShaVSkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NsYXNzIEtVe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5uZXh0PWcsdGhpcy5pbnRlcmNlcHRvcj1ofWhhbmRsZShnKXtyZXR1cm4gdGhpcy5pbnRlcmNlcHRv''@;'; + put 'put ''ci5pbnRlcmNlcHQoZyx0aGlzLm5leHQpfX1jb25zdCAkVT1uZXcgemUoIkhUVFBfSU5URVJDRVBUT1JTIik7bGV0IFNvZT0oKCk9PntjbGFzcyBke2ludGVyY2VwdChoLHYpe3JldHVybiB2LmhhbmRsZShoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; + put 'put ''ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgeG9lPS9eXClcXVx9Jyw/XG4vO2xldCBlUT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMueGhyRmFjdG9yeT1ofWhhbmRsZShoKXtpZigiSlNPTlAiPT09aC5tZXRo''@;'; + put 'put ''b2QpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0ZWQgdG8gY29uc3RydWN0IEpzb25wIHJlcXVlc3Qgd2l0aG91dCBIdHRwQ2xpZW50SnNvbnBNb2R1bGUgaW5zdGFsbGVkLiIpO3JldHVybiBuZXcgRih2PT57Y29uc3QgeT10aGlzLnhockZhY3RvcnkuYnVpbGQoKTtpZih5Lm9wZW4oaC5tZXRo''@;'; + put 'put ''b2QsaC51cmxXaXRoUGFyYW1zKSxoLndpdGhDcmVkZW50aWFscyYmKHkud2l0aENyZWRlbnRpYWxzPSEwKSxoLmhlYWRlcnMuZm9yRWFjaCgoZHQsT3QpPT55LnNldFJlcXVlc3RIZWFkZXIoZHQsT3Quam9pbigiLCIpKSksaC5oZWFkZXJzLmhhcygiQWNjZXB0Iil8fHkuc2V0UmVxdWVzdEhl''@;'; + put 'put ''YWRlcigiQWNjZXB0IiwiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiksIWguaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpKXtjb25zdCBkdD1oLmRldGVjdENvbnRlbnRUeXBlSGVhZGVyKCk7bnVsbCE9PWR0JiZ5LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIs''@;'; + put 'put ''ZHQpfWlmKGgucmVzcG9uc2VUeXBlKXtjb25zdCBkdD1oLnJlc3BvbnNlVHlwZS50b0xvd2VyQ2FzZSgpO3kucmVzcG9uc2VUeXBlPSJqc29uIiE9PWR0P2R0OiJ0ZXh0In1jb25zdCBDPWguc2VyaWFsaXplQm9keSgpO2xldCBJPW51bGw7Y29uc3Qgaj0oKT0+e2lmKG51bGwhPT1JKXJldHVy''@;'; + put 'put ''biBJO2NvbnN0IGR0PXkuc3RhdHVzVGV4dHx8Ik9LIixPdD1uZXcgaHAoeS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksJHQ9ZnVuY3Rpb24gSUgoZCl7cmV0dXJuInJlc3BvbnNlVVJMImluIGQmJmQucmVzcG9uc2VVUkw/ZC5yZXNwb25zZVVSTDovXlgtUmVxdWVzdC1VUkw6L20udGVzdChk''@;'; + put 'put ''LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKT9kLmdldFJlc3BvbnNlSGVhZGVyKCJYLVJlcXVlc3QtVVJMIik6bnVsbH0oeSl8fGgudXJsO3JldHVybiBJPW5ldyBFSCh7aGVhZGVyczpPdCxzdGF0dXM6eS5zdGF0dXMsc3RhdHVzVGV4dDpkdCx1cmw6JHR9KSxJfSx1ZT0oKT0+e2xldHtoZWFk''@;'; + put 'put ''ZXJzOmR0LHN0YXR1czpPdCxzdGF0dXNUZXh0OiR0LHVybDpmbn09aigpLExuPW51bGw7MjA0IT09T3QmJihMbj12b2lkIDA9PT15LnJlc3BvbnNlP3kucmVzcG9uc2VUZXh0OnkucmVzcG9uc2UpLDA9PT1PdCYmKE90PUxuPzIwMDowKTtsZXQgaXI9T3Q+PTIwMCYmT3Q8MzAwO2lmKCJqc29u''@;'; + put 'put ''Ij09PWgucmVzcG9uc2VUeXBlJiYic3RyaW5nIj09dHlwZW9mIExuKXtjb25zdCBtcj1MbjtMbj1Mbi5yZXBsYWNlKHhvZSwiIik7dHJ5e0xuPSIiIT09TG4/SlNPTi5wYXJzZShMbik6bnVsbH1jYXRjaChTcil7TG49bXIsaXImJihpcj0hMSxMbj17ZXJyb3I6U3IsdGV4dDpMbn0pfX1pcj8o''@;'; + put 'put ''di5uZXh0KG5ldyBneSh7Ym9keTpMbixoZWFkZXJzOmR0LHN0YXR1czpPdCxzdGF0dXNUZXh0OiR0LHVybDpmbnx8dm9pZCAwfSkpLHYuY29tcGxldGUoKSk6di5lcnJvcihuZXcgWFUoe2Vycm9yOkxuLGhlYWRlcnM6ZHQsc3RhdHVzOk90LHN0YXR1c1RleHQ6JHQsdXJsOmZufHx2b2lkIDB9''@;'; + put 'put ''KSl9LF9lPWR0PT57Y29uc3R7dXJsOk90fT1qKCksJHQ9bmV3IFhVKHtlcnJvcjpkdCxzdGF0dXM6eS5zdGF0dXN8fDAsc3RhdHVzVGV4dDp5LnN0YXR1c1RleHR8fCJVbmtub3duIEVycm9yIix1cmw6T3R8fHZvaWQgMH0pO3YuZXJyb3IoJHQpfTtsZXQgQmU9ITE7Y29uc3QgTmU9ZHQ9PntC''@;'; + put 'put ''ZXx8KHYubmV4dChqKCkpLEJlPSEwKTtsZXQgT3Q9e3R5cGU6dnUuRG93bmxvYWRQcm9ncmVzcyxsb2FkZWQ6ZHQubG9hZGVkfTtkdC5sZW5ndGhDb21wdXRhYmxlJiYoT3QudG90YWw9ZHQudG90YWwpLCJ0ZXh0Ij09PWgucmVzcG9uc2VUeXBlJiYhIXkucmVzcG9uc2VUZXh0JiYoT3QucGFy''@;'; + put 'put ''dGlhbFRleHQ9eS5yZXNwb25zZVRleHQpLHYubmV4dChPdCl9LEtlPWR0PT57bGV0IE90PXt0eXBlOnZ1LlVwbG9hZFByb2dyZXNzLGxvYWRlZDpkdC5sb2FkZWR9O2R0Lmxlbmd0aENvbXB1dGFibGUmJihPdC50b3RhbD1kdC50b3RhbCksdi5uZXh0KE90KX07cmV0dXJuIHkuYWRkRXZlbnRM''@;'; + put 'put ''aXN0ZW5lcigibG9hZCIsdWUpLHkuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLF9lKSx5LmFkZEV2ZW50TGlzdGVuZXIoInRpbWVvdXQiLF9lKSx5LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixfZSksaC5yZXBvcnRQcm9ncmVzcyYmKHkuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLE5l''@;'; + put 'put ''KSxudWxsIT09QyYmeS51cGxvYWQmJnkudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixLZSkpLHkuc2VuZChDKSx2Lm5leHQoe3R5cGU6dnUuU2VudH0pLCgpPT57eS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsX2UpLHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQi''@;'; + put 'put ''LF9lKSx5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLHVlKSx5LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRpbWVvdXQiLF9lKSxoLnJlcG9ydFByb2dyZXNzJiYoeS5yZW1vdmVFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsTmUpLG51bGwhPT1DJiZ5LnVwbG9hZCYmeS51cGxvYWQucmVtb3Zl''@;'; + put 'put ''RXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLEtlKSkseS5yZWFkeVN0YXRlIT09eS5ET05FJiZ5LmFib3J0KCl9fSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEJXKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1''@;'; + put 'put ''ZmFjfSksZH0pKCk7Y29uc3QgREg9bmV3IHplKCJYU1JGX0NPT0tJRV9OQU1FIiksTEg9bmV3IHplKCJYU1JGX0hFQURFUl9OQU1FIik7Y2xhc3MgdFF7fWxldCBUb2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5kb2M9aCx0aGlzLnBsYXRmb3JtPXYsdGhpcy5jb29r''@;'; + put 'put ''aWVOYW1lPXksdGhpcy5sYXN0Q29va2llU3RyaW5nPSIiLHRoaXMubGFzdFRva2VuPW51bGwsdGhpcy5wYXJzZUNvdW50PTB9Z2V0VG9rZW4oKXtpZigic2VydmVyIj09PXRoaXMucGxhdGZvcm0pcmV0dXJuIG51bGw7Y29uc3QgaD10aGlzLmRvYy5jb29raWV8fCIiO3JldHVybiBoIT09dGhp''@;'; + put 'put ''cy5sYXN0Q29va2llU3RyaW5nJiYodGhpcy5wYXJzZUNvdW50KyssdGhpcy5sYXN0VG9rZW49eVcoaCx0aGlzLmNvb2tpZU5hbWUpLHRoaXMubGFzdENvb2tpZVN0cmluZz1oKSx0aGlzLmxhc3RUb2tlbn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCko''@;'; + put 'put ''Q2kocHMpLENpKEQyKSxDaShESCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLEJJPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLnRva2VuU2VydmljZT1oLHRoaXMuaGVhZGVyTmFtZT12fWludGVyY2VwdChoLHYpe2Nv''@;'; + put 'put ''bnN0IHk9aC51cmwudG9Mb3dlckNhc2UoKTtpZigiR0VUIj09PWgubWV0aG9kfHwiSEVBRCI9PT1oLm1ldGhvZHx8eS5zdGFydHNXaXRoKCJodHRwOi8vIil8fHkuc3RhcnRzV2l0aCgiaHR0cHM6Ly8iKSlyZXR1cm4gdi5oYW5kbGUoaCk7Y29uc3QgQz10aGlzLnRva2VuU2VydmljZS5nZXRU''@;'; + put 'put ''b2tlbigpO3JldHVybiBudWxsIT09QyYmIWguaGVhZGVycy5oYXModGhpcy5oZWFkZXJOYW1lKSYmKGg9aC5jbG9uZSh7aGVhZGVyczpoLmhlYWRlcnMuc2V0KHRoaXMuaGVhZGVyTmFtZSxDKX0pKSx2LmhhbmRsZShoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBu''@;'; + put 'put ''ZXcoaHx8ZCkoQ2kodFEpLENpKExIKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksbGs9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuYmFja2VuZD1oLHRoaXMuaW5qZWN0b3I9dix0aGlzLmNoYWluPW51bGx9aGFuZGxl''@;'; + put 'put ''KGgpe2lmKG51bGw9PT10aGlzLmNoYWluKXtjb25zdCB2PXRoaXMuaW5qZWN0b3IuZ2V0KCRVLFtdKTt0aGlzLmNoYWluPXYucmVkdWNlUmlnaHQoKHksQyk9Pm5ldyBLVSh5LEMpLHRoaXMuYmFja2VuZCl9cmV0dXJuIHRoaXMuY2hhaW4uaGFuZGxlKGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9''@;'; + put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaSh6VSksQ2koa3MpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxPSD0oKCk9PntjbGFzcyBke3N0YXRpYyBkaXNhYmxlKCl7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOlt7cHJv''@;'; + put 'put ''dmlkZTpCSSx1c2VDbGFzczpTb2V9XX19c3RhdGljIHdpdGhPcHRpb25zKGg9e30pe3JldHVybntuZ01vZHVsZTpkLHByb3ZpZGVyczpbaC5jb29raWVOYW1lP3twcm92aWRlOkRILHVzZVZhbHVlOmguY29va2llTmFtZX06W10saC5oZWFkZXJOYW1lP3twcm92aWRlOkxILHVzZVZhbHVlOmgu''@;'; + put 'put ''aGVhZGVyTmFtZX06W11dfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7cHJvdmlkZXJzOltCSSx7cHJvdmlkZTokVSx1c2VFeGlzdGluZzpCSSxtdWx0aTohMH0se3Byb3Zp''@;'; + put 'put ''ZGU6dFEsdXNlQ2xhc3M6VG9lfSx7cHJvdmlkZTpESCx1c2VWYWx1ZToiWFNSRi1UT0tFTiJ9LHtwcm92aWRlOkxILHVzZVZhbHVlOiJYLVhTUkYtVE9LRU4ifV19KSxkfSkoKSxQST0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; + put 'put ''KX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtwcm92aWRlcnM6W1RILHtwcm92aWRlOlpVLHVzZUNsYXNzOmxrfSxlUSx7cHJvdmlkZTp6VSx1c2VFeGlzdGluZzplUX1dLGltcG9ydHM6W09ILndpdGhPcHRpb25zKHtjb29raWVOYW1lOiJYU1JGLVRPS0VOIixo''@;'; + put 'put ''ZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4ifSldfSksZH0pKCksblE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuaHR0cD1oLHRoaXMuYXBwU3RvcmVTZXJ2aWNlPXYsdGhpcy51cmw9IiIsdGhpcy5kcml2ZVVybD0iIix0aGlzLmh0dHBPcHRpb25zPXt3aXRoQ3JlZGVudGlh''@;'; + put 'put ''bHM6ITB9fXNldHVwKCl7Y29uc3QgaD10aGlzLmFwcFN0b3JlU2VydmljZS5nZXREY0FkYXB0ZXJTZXR0aW5ncygpO3RoaXMudXJsPWAkeyhudWxsPT1oP3ZvaWQgMDpoLnNlcnZlclVybCl8fCIifS9TQVNqc0FwaWAsdGhpcy5kcml2ZVVybD1gJHt0aGlzLnVybH0vZHJpdmVgfWdldFNlcnZl''@;'; + put 'put ''ckluZm8oKXtyZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnVybH0vaW5mb2ApfWdldEZpbGVGcm9tRHJpdmUoaCl7cmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5kcml2ZVVybH0vZmlsZS8/X2ZpbGVQYXRoPSR7aH1gLHRoaXMuaHR0cE9wdGlvbnMpfWdldEZvbGRlckNvbnRlbnRz''@;'; + put 'put ''RnJvbURyaXZlKGgpe3JldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZHJpdmVVcmx9L2ZvbGRlcj9fZm9sZGVyUGF0aD0ke2h9YCx0aGlzLmh0dHBPcHRpb25zKX1nZXRGaWxlVHJlZUZyb21Ecml2ZSgpe3JldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZHJpdmVVcmx9L2ZpbGV0cmVl''@;'; + put 'put ''YCx0aGlzLmh0dHBPcHRpb25zKX1nZXRGaWxlRnJvbUZpbGVUcmVlKGgpe3JldHVybiBuZXcgUHJvbWlzZSgodix5KT0+e3RoaXMuZ2V0RmlsZVRyZWVGcm9tRHJpdmUoKS5zdWJzY3JpYmUoQz0+e2NvbnN0IGo9dGhpcy5maW5kSW5UcmVlKEMudHJlZSxoKTt2KGopfSl9KX1maW5kSW5UcmVl''@;'; + put 'put ''KGgsdil7aWYoaC5yZWxhdGl2ZVBhdGg9PT12KXJldHVybiBoO2ZvcihsZXQgeSBvZiBoLmNoaWxkcmVuKXtjb25zdCBDPXRoaXMuZmluZEluVHJlZSh5LHYpO2lmKEMpcmV0dXJuIEN9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShUSCksQ2ko''@;'; + put 'put ''YWspKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKSxzYz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuaW5qZWN0b3I9aH1sb2coaCx2KXt2YXIgeTt0aGlzLmluamVjdFNhc1NlcnZpY2UoKSxu''@;'; + put 'put ''dWxsIT09KHk9dGhpcy5zYXNqc0NvbmZpZykmJnZvaWQgMCE9PXkmJnkuZGVidWcmJih2P2NvbnNvbGUubG9nKGgsdik6Y29uc29sZS5sb2coaCkpfWVycm9yKGgsdil7Y29uc29sZS5lcnJvcihoLHYpfWxvZ1JlcXVlc3REYXRhKGgsdil7aWYodGhpcy5sb2coIi0tLSBBZGFwdGVyIFJlcXVl''@;'; + put 'put ''c3QgSW5wdXQgLS0tIiksdGhpcy5sb2coaCksdil7Zm9yKGxldCB5IG9mIE9iamVjdC5rZXlzKHYpKXRoaXMubG9nKHksdlt5XSk7dGhpcy5sb2coIi0tLS0tLSIpfWVsc2UgdGhpcy5sb2coIm5vIGRhdGEgc2VudCIpfWluamVjdFNhc1NlcnZpY2UoKXtpZighdGhpcy5zYXNqc0NvbmZpZyl7''@;'; + put 'put ''Y29uc3QgaD10aGlzLmluamVjdG9yLmdldChnMik7dGhpcy5zYXNqc0NvbmZpZz1oLmdldFNhc2pzQ29uZmlnKCl9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShrcykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3''@;'; + put 'put ''NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpLGcyPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGope3RoaXMuYXBwU3RvcmVTZXJ2aWNlPWgsdGhpcy51c2VyU2VydmljZT12LHRoaXMuZXZlbnRTZXJ2aWNlPXksdGhpcy5zYXNqc1NlcnZpY2U9Qyx0aGlzLmxvZ2dl''@;'; + put 'put ''clNlcnZpY2U9SSx0aGlzLnJvdXRlcj1qLHRoaXMubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRlcj1uZXcgYXIsdGhpcy5pbmNvcnJlY3RTaXRlSWRFbWl0dGVyPW5ldyBhcix0aGlzLnJlcXVlc3RTaXRlSWRFbWl0dGVyPW5ldyBhcix0aGlzLnNhc2pzQWRhcHRlcj1uZXcoalUoKSksdGhpcy5h''@;'; + put 'put ''cHBMb2NDaGVja1BlbmRpbmc9ITEsdGhpcy5zaG91bGRMb2dpbj1uZXcgY3MoITEpLHRoaXMubGljZW5zZV9zaXRlX2lkPW5ldyBjcyhudWxsKX1zYXNTZXJ2aWNlSW5pdCgpe2lmKHRoaXMuZGNBZGFwdGVyU2V0dGluZ3M9dGhpcy5hcHBTdG9yZVNlcnZpY2UuZ2V0RGNBZGFwdGVyU2V0dGlu''@;'; + put 'put ''Z3MoKSx0aGlzLnNhc2pzU2VydmljZS5zZXR1cCgpLHRoaXMuZGNBZGFwdGVyU2V0dGluZ3Mpe3N3aXRjaCh0aGlzLnNhc2pzQWRhcHRlcj1uZXcoalUoKSkodGhpcy5kY0FkYXB0ZXJTZXR0aW5ncyksdGhpcy5kY0FkYXB0ZXJTZXR0aW5ncy5zZXJ2ZXJUeXBlKXtjYXNlIEh1LkQuU2FzVml5''@;'; + put 'put ''YTp0aGlzLmNoZWNrVml5YURlcGxveSh0aGlzLmRjQWRhcHRlclNldHRpbmdzLmFwcExvY3x8IiIpO2JyZWFrO2Nhc2UgSHUuRC5TYXM5OnRoaXMubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRlci5lbWl0KCk7YnJlYWs7Y2FzZSBIdS5ELlNhc2pzOnRoaXMuY2hlY2tTYXNqc0RlcGxveSgpfSJS''@;'; + put 'put ''ZWRpcmVjdGVkIj09PXRoaXMuZ2V0U2FzanNDb25maWcoKS5sb2dpbk1lY2hhbmlzbSYmdGhpcy5zaG91bGRMb2dpbi5zdWJzY3JpYmUoaD0+e2gmJnRoaXMuc2FzanNBZGFwdGVyLmxvZ0luKCkudGhlbih2PT57Y29uc29sZS5sb2coInJlcyIsdil9KX0pfWVsc2UgdGhpcy5ldmVudFNlcnZp''@;'; + put 'put ''Y2Uuc2hvd0luZm9Nb2RhbCgiRXJyb3IiLCJBZGFwdGVyIHNldHRpbmdzIChpbmRleC5odG1sKSBhcmUgbm90IHByZXNlbnQuIil9cmVxdWVzdChoLHYseSxDKXtyZXR1cm4gQ3x8KEM9e30pLHRoaXMubG9nZ2VyU2VydmljZS5sb2dSZXF1ZXN0RGF0YShoPSJzZXJ2aWNlcy8iK2gsdiksbmV3''@;'; + put 'put ''IFByb21pc2UoKEksaik9Pnt0aGlzLnNhc2pzQWRhcHRlci5yZXF1ZXN0KGgsdix5LCgpPT57dGhpcy5zaG91bGRMb2dpbi5uZXh0KCEwKX0pLnRoZW4odWU9PntpZighMT09PXVlLmxvZ2luJiYodGhpcy5zaG91bGRMb2dpbi5uZXh0KCEwKSxqKCExKSksIXRoaXMudXNlclNlcnZpY2UudXNl''@;'; + put 'put ''ciYmdWUuTUZfR0VUVVNFUiYmKHRoaXMudXNlclNlcnZpY2UudXNlcj17dXNlcm5hbWU6dWUuTUZfR0VUVVNFUn0pLHVlLlNZU1NJVEUmJih0aGlzLnJlcXVlc3RTaXRlSWRFbWl0dGVyLmVtaXQodWUuU1lTU0lURSksdGhpcy5nZXRMaWNlbnNlU2l0ZUlkKCkubGVuZ3RoPjAmJih0aGlzLmdl''@;'; + put 'put ''dExpY2Vuc2VTaXRlSWQoKS5pbmNsdWRlcyh1ZS5TWVNTSVRFKXx8dGhpcy5pbmNvcnJlY3RTaXRlSWRFbWl0dGVyLmVtaXQodWUuU1lTU0lURSkpKSw0MDQ9PT11ZS5zdGF0dXMmJmooe01FU1NBR0U6dWUuYm9keXx8IlNBUyBSZXNwb25kZWQgd2l0aCBlcnJvciJ9KSx2b2lkIDAhPT11ZS5z''@;'; + put 'put ''YXNqc0Fib3J0KXtjb25zdCBfZT11ZSxCZT1fZS5zYXNqc0Fib3J0WzBdLk1TRyxOZT1fZS5zYXNqc0Fib3J0WzBdLk1BQztpZihCZS5pbmNsdWRlcygiRGF0YV9Db250cm9sbGVyX1NldHRpbmdzKFN0b3JlZFByb2Nlc3MpIG5vdCBmb3VuZCIpKXJldHVybiB0aGlzLmV2ZW50U2VydmljZS5z''@;'; + put 'put ''dGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSx2b2lkIGooe2Vycm9yOkJlfSk7bnVsbCE9QyYmQy5zdXBwcmVzc1N1Y2Nlc3NBYm9ydE1vZGFsfHx0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChoLnJlcGxhY2UoInNlcnZpY2Vz''@;'; + put 'put ''LyIsIiIpLEJlLHtTWVNXQVJOSU5HVEVYVDpfZS5TWVNXQVJOSU5HVEVYVCxTWVNFUlJPUlRFWFQ6X2UuU1lTRVJST1JURVhULE1BQzpOZX0pLGooe2Vycm9yOkJlfSl9SSh1ZSl9LHVlPT57aWYoY29uc29sZS5lcnJvcih1ZSksdWUuZXJyb3Ipe2xldCBCZSxfZT11ZS5lcnJvci5tZXNzYWdl''@;'; + put 'put ''O3VlLmVycm9yLmRldGFpbHMmJnVlLmVycm9yLmRldGFpbHMubG9nJiYoQmU9dWUuZXJyb3IuZGV0YWlscy5sb2cpLCghX2V8fF9lLnRyaW0oKS5sZW5ndGg8MSkmJihfZT0iU0FTIFNlcnZpY2UgZXJyb3Igb2N1cnJlZCIpLG51bGwhPUMmJkMuc3VwcHJlc3NFcnJvckFib3J0TW9kYWx8fHRo''@;'; + put 'put ''aXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKGgsX2Use0xPRzpCZX0sIlJlcXVlc3QgZXJyb3IiKSxqKHtlcnJvcjpfZX0pfWoodWUpfSl9KX11cGxvYWRGaWxlKGgsdix5KXtyZXR1cm4gdGhpcy5zYXNqc0FkYXB0ZXIudXBsb2FkRmlsZShoLHYseSl9bG9naW4oaCx2KXtyZXR1cm4g''@;'; + put 'put ''bm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IHk9dGhpcy5nZXRTZXJ2ZXJUeXBlKCk9PT1IdS5ELlNhc2pzPyJjbGllbnRJRDEiOnZvaWQgMDtyZXR1cm4gdGhpcy5zYXNqc0FkYXB0ZXIubG9nSW4oaCx2LHkpLnRoZW4oQz0+e3ZhciBJO3JldHVybiBDLmlzTG9nZ2Vk''@;'; + put 'put ''SW4mJih0aGlzLnVzZXJTZXJ2aWNlLnVzZXI9e3VzZXJuYW1lOkMudXNlck5hbWV9LHRoaXMuYXBwTG9jQ2hlY2tQZW5kaW5nJiYodGhpcy5jaGVja1ZpeWFEZXBsb3koKG51bGw9PT0oST10aGlzLmRjQWRhcHRlclNldHRpbmdzKXx8dm9pZCAwPT09ST92b2lkIDA6SS5hcHBMb2MpfHwiIiks''@;'; + put 'put ''dGhpcy5hcHBMb2NDaGVja1BlbmRpbmc9ITEpKSx0aGlzLnNob3VsZExvZ2luLm5leHQoIUMuaXNMb2dnZWRJbiksQy5pc0xvZ2dlZElufSxDPT4oY29uc29sZS5lcnJvcihDKSx0aGlzLnNob3VsZExvZ2luLm5leHQoITApLCExKSkuY2F0Y2goQz0+KDQwMz09PUMmJmNvbnNvbGUuZXJyb3Io''@;'; + put 'put ''IkludmFsaWQgaG9zdCIpLCExKSl9KX1nZXRMaWNlbnNlU2l0ZUlkKCl7cmV0dXJuIHRoaXMubGljZW5zZV9zaXRlX2lkLnZhbHVlfHxbXX1zZXRMaWNlbnNlU2l0ZUlkKGgpe3RoaXMubGljZW5zZV9zaXRlX2lkLm5leHQoIm9iamVjdCI9PXR5cGVvZiBoP2g6W2hdKX1jaGVja1Nhc2pzRGVw''@;'; + put 'put ''bG95KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCB2PWAke3RoaXMuZ2V0U2FzanNDb25maWcoKS5hcHBMb2N9L3NlcnZpY2VzL2FkbWluYDt0aGlzLnNhc2pzU2VydmljZS5nZXRGb2xkZXJDb250ZW50c0Zyb21Ecml2ZSh2KS5zdWJzY3JpYmUoeT0+''@;'; + put 'put ''e3kuZmlsZXMuaW5jbHVkZXMoIm1ha2VkYXRhLnNhcyIpPyh0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSk6dGhpcy5sb2FkU3RhcnR1cFNlcnZpY2VFbWl0dGVyLmVtaXQoKX0seT0+e3kuZXJyb3IuaW5j''@;'; + put 'put ''bHVkZXMoIlVuYXV0aG9yaXplZCIpPyh0aGlzLnNob3VsZExvZ2luLm5leHQoITApLHRoaXMuc2hvdWxkTG9naW4uc3Vic2NyaWJlKEM9PnshMT09PUMmJmxvY2F0aW9uLnJlbG9hZCgpfSkpOnkuZXJyb3IuaW5jbHVkZXMoIkZvbGRlciBkb2Vzbid0IGV4aXN0LiIpJiYoY29uc29sZS53YXJu''@;'; + put 'put ''KCJTQVNqcyBTQVMgc2VydmljZXMgYXJlIG5vdCBwcmVzZW50IG9uIHRoZSBjdXJyZW50IGFwcExvYy4iKSx0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSl9KX0pfXNhc2pzTWFrZWRhdGFDaGVja2luZygp''@;'; + put 'put ''e3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKChoLHYpPT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5jaGVja2luZ0ludGVydmFsPXNldEludGVydmFsKCgpPT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVu''@;'; + put 'put ''Y3Rpb24qKCl7dGhpcy5zYXNqc01ha2VkYXRhU3VjY2Vzc2Z1bGwoKS50aGVuKHk9Pnt5JiYoY2xlYXJJbnRlcnZhbCh0aGlzLmNoZWNraW5nSW50ZXJ2YWwpLGgoeSkpfSkuY2F0Y2goeT0+e2NsZWFySW50ZXJ2YWwodGhpcy5jaGVja2luZ0ludGVydmFsKSx2KHkpfSl9KSwxZTMpfSkpfSl9''@;'; + put 'put ''c2FzanNNYWtlZGF0YVN1Y2Nlc3NmdWxsKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gbmV3IFByb21pc2UoKGgsdik9Pntjb25zdCBDPWAke3RoaXMuZ2V0U2FzanNDb25maWcoKS5hcHBMb2N9L3NlcnZpY2VzL2FkbWluYDt0aGlzLnNhc2pzU2Vy''@;'; + put 'put ''dmljZS5nZXRGb2xkZXJDb250ZW50c0Zyb21Ecml2ZShDKS5zdWJzY3JpYmUoST0+e0kuZmlsZXMuaW5jbHVkZXMoIm1ha2VkYXRhLnNhcyIpP2goITEpOmgoITApfSxJPT57SS5lcnJvci5pbmNsdWRlcygiRm9sZGVyIGRvZXNuJ3QgZXhpc3QuIikmJnYoKX0pfSl9KX1jaGVja1ZpeWFEZXBs''@;'; + put 'put ''b3koaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgeT0hMTt5PXZvaWQgMCE9PXRoaXMuc2FzanNBZGFwdGVyLmdldEZvbGRlcj95aWVsZCB0aGlzLmFwcExvY0NoZWNrKGgpOnlpZWxkIHRoaXMuYXBwTG9jQ2hlY2tQcmVBeGlvc2RBZGFwdGVyKGgpLHkm''@;'; + put 'put ''JnRoaXMubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRlci5lbWl0KCl9KX1hcHBMb2NDaGVjayhoKXtyZXR1cm4gbmV3IFByb21pc2UoKHYseSk9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgSSxDPSExO3RyeXtJPXlpZWxkIHRoaXMuc2FzanNBZGFwdGVyLmdldEZvbGRl''@;'; + put 'put ''cihoKX1jYXRjaChqKXsiTG9naW5SZXF1aXJlZEVycm9yIj09PWoubmFtZT8odGhpcy5hcHBMb2NDaGVja1BlbmRpbmc9ITAsdGhpcy5zaG91bGRMb2dpbi5uZXh0KCEwKSx2KCExKSk6Qz0hMH1pZihDKXJldHVybiBjb25zb2xlLndhcm4oIlZpeWEgc2VydmljZXMgYXJlIG5vdCBwcmVzZW50''@;'; + put 'put ''IG9uIHRoZSBjdXJyZW50IGFwcExvYy4iKSx0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSx2KCExKTt2KCEwKX0pKX1hcHBMb2NDaGVja1ByZUF4aW9zZEFkYXB0ZXIoaCl7cmV0dXJuIG5ldyBQcm9taXNl''@;'; + put 'put ''KCh2LHkpPT57bGV0IEk9ITE7cmV0dXJuIGZldGNoKGAvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9JHtofWApLnRoZW4oaj0+KDQwND09PWouc3RhdHVzJiYoST0hMCksai50ZXh0KCkpKS50aGVuKGo9PntpZih0aGlzLmlzTG9naW5SZXF1aXJlZChqKSl0aGlzLmFwcExvY0NoZWNrUGVu''@;'; + put 'put ''ZGluZz0hMCx0aGlzLnNob3VsZExvZ2luLm5leHQoITApO2Vsc2V7aWYoSSlyZXR1cm4gY29uc29sZS53YXJuKCJWaXlhIHNlcnZpY2VzIGFyZSBub3QgcHJlc2VudCBvbiB0aGUgY3VycmVudCBhcHBMb2MuIiksdGhpcy5ldmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2FkZWQoKSx0aGlzLnJv''@;'; + put 'put ''dXRlci5uYXZpZ2F0ZUJ5VXJsKCIvZGVwbG95IiksdighMSk7bGV0IHVlPW51bGw7dHJ5e3VlPUpTT04ucGFyc2Uoail9Y2F0Y2goX2Upe31pZih1ZSYmdWUuaHR0cFN0YXR1c0NvZGUmJjQwND09PXVlLmh0dHBTdGF0dXNDb2RlKXJldHVybiBjb25zb2xlLndhcm4oIlZpeWEgc2VydmljZXMg''@;'; + put 'put ''YXJlIG5vdCBwcmVzZW50IG9uIHRoZSBjdXJyZW50IGFwcExvYy4iKSx0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSx2KCExKTt2KCEwKX19KS5jYXRjaChqPT57dighMSl9KX0pfWlzTG9naW5SZXF1aXJl''@;'; + put 'put ''ZChoKXtyZXR1cm4vPGZvcm0uK2FjdGlvbj0iKC4qTG9nb25bXiJdKikuKj4vZ20udGVzdChoKX1sb2dvdXQoKXt0aGlzLnNhc2pzQWRhcHRlci5sb2dPdXQoKS50aGVuKCgpPT57bG9jYXRpb24ucmVsb2FkKCl9KX1nZXRTYXNqc0NvbmZpZygpe3JldHVybiB0aGlzLnNhc2pzQWRhcHRlci5n''@;'; + put 'put ''ZXRTYXNqc0NvbmZpZygpfWdldFNhc1JlcXVlc3RzKCl7cmV0dXJuIHRoaXMuc2FzanNBZGFwdGVyLmdldFNhc1JlcXVlc3RzKCl9c2V0RGVidWdTdGF0ZShoKXt0aGlzLnNhc2pzQWRhcHRlci5zZXREZWJ1Z1N0YXRlKGgpfWdldFNhc2pzSW5zdGFuY2UoKXtyZXR1cm4gdGhpcy5zYXNqc0Fk''@;'; + put 'put ''YXB0ZXJ9Z2V0U2VydmVyVHlwZSgpe2NvbnN0IGg9dGhpcy5zYXNqc0FkYXB0ZXIuZ2V0U2FzanNDb25maWcoKTtyZXR1cm4gaC5zZXJ2ZXJUeXBlP2guc2VydmVyVHlwZToiU0FTVklZQSJ9Z2V0RXhlY3V0aW9uUGF0aCgpe2NvbnN0IGg9dGhpcy5zYXNqc0FkYXB0ZXIuZ2V0U2FzanNDb25m''@;'; + put 'put ''aWcoKTtzd2l0Y2goaC5zZXJ2ZXJUeXBlKXtjYXNlIEh1LkQuU2FzVml5YTpyZXR1cm4gaC5wYXRoU0FTVml5YTtjYXNlIEh1LkQuU2FzOTpyZXR1cm4gaC5wYXRoU0FTOTtjYXNlIEh1LkQuU2FzanM6cmV0dXJuIGgucGF0aFNBU0pTfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgp''@;'; + put 'put ''e3JldHVybiBuZXcoaHx8ZCkoQ2koYWspLENpKGtIKSxDaShtdSksQ2koblEpLENpKHNjKSxDaShabCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO2NvbnN0IHJRPWZ1bmN0aW9uIE9vZShkLGcpe3JldHVy''@;'; + put 'put ''biBkPT09Z3x8ZCE9ZCYmZyE9Z30sRkk9ZnVuY3Rpb24gUm9lKGQsZyl7Zm9yKHZhciBoPWQubGVuZ3RoO2gtLTspaWYoclEoZFtoXVswXSxnKSlyZXR1cm4gaDtyZXR1cm4tMX07dmFyIFBvZT1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIHk3KGQpe3ZhciBnPS0xLGg9bnVsbD09''@;'; + put 'put ''ZD8wOmQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytnPGg7KXt2YXIgdj1kW2ddO3RoaXMuc2V0KHZbMF0sdlsxXSl9fXk3LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBEb2UoKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSx5Ny5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uIEZv''@;'; + put 'put ''ZShkKXt2YXIgZz10aGlzLl9fZGF0YV9fLGg9RkkoZyxkKTtyZXR1cm4hKGg8MHx8KGg9PWcubGVuZ3RoLTE/Zy5wb3AoKTpQb2UuY2FsbChnLGgsMSksLS10aGlzLnNpemUsMCkpfSx5Ny5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIEhJKGQpe3ZhciBnPXRoaXMuX19kYXRhX18saD1GSShnLGQp''@;'; + put 'put ''O3JldHVybiBoPDA/dm9pZCAwOmdbaF1bMV19LHk3LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gTm9lKGQpe3JldHVybiBGSSh0aGlzLl9fZGF0YV9fLGQpPi0xfSx5Ny5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIGpvZShkLGcpe3ZhciBoPXRoaXMuX19kYXRhX18sdj1GSShoLGQpO3JldHVybiB2''@;'; + put 'put ''PDA/KCsrdGhpcy5zaXplLGgucHVzaChbZCxnXSkpOmhbdl1bMV09Zyx0aGlzfTtjb25zdCBOST15NyxsUT0ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWw7dmFyIHNRPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2Vs''@;'; + put 'put ''Zi5PYmplY3Q9PT1PYmplY3QmJnNlbGY7Y29uc3QgZHA9bFF8fHNRfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHc3PWRwLlN5bWJvbDt2YXIgWkk9T2JqZWN0LnByb3RvdHlwZSxKNT1aSS5oYXNPd25Qcm9wZXJ0eSx1UT1aSS50b1N0cmluZyx2eT13Nz93Ny50b1N0cmluZ1RhZzp2b2lk''@;'; + put 'put ''IDA7dmFyIE0xPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIFFuPXc3P3c3LnRvU3RyaW5nVGFnOnZvaWQgMDtjb25zdCBWMD1mdW5jdGlvbiBCSChkKXtyZXR1cm4gbnVsbD09ZD92b2lkIDA9PT1kPyJbb2JqZWN0IFVuZGVmaW5lZF0iOiJbb2JqZWN0IE51bGxdIjpRbiYmUW4gaW4g''@;'; + put 'put ''T2JqZWN0KGQpP2Z1bmN0aW9uIEljKGQpe3ZhciBnPUo1LmNhbGwoZCx2eSksaD1kW3Z5XTt0cnl7ZFt2eV09dm9pZCAwO3ZhciB2PSEwfWNhdGNoKEMpe312YXIgeT11US5jYWxsKGQpO3JldHVybiB2JiYoZz9kW3Z5XT1oOmRlbGV0ZSBkW3Z5XSkseX0oZCk6ZnVuY3Rpb24gUkgoZCl7cmV0''@;'; + put 'put ''dXJuIE0xLmNhbGwoZCl9KGQpfSxjaz1mdW5jdGlvbiBoUShkKXt2YXIgZz10eXBlb2YgZDtyZXR1cm4gbnVsbCE9ZCYmKCJvYmplY3QiPT1nfHwiZnVuY3Rpb24iPT1nKX0sUEg9ZnVuY3Rpb24gWG9lKGQpe2lmKCFjayhkKSlyZXR1cm4hMTt2YXIgZz1WMChkKTtyZXR1cm4iW29iamVjdCBG''@;'; + put 'put ''dW5jdGlvbl0iPT1nfHwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iPT1nfHwiW29iamVjdCBBc3luY0Z1bmN0aW9uXSI9PWd8fCJbb2JqZWN0IFByb3h5XSI9PWd9LEZIPWRwWyJfX2NvcmUtanNfc2hhcmVkX18iXTt2YXIgcFE9ZnVuY3Rpb24oKXt2YXIgZD0vW14uXSskLy5leGVjKEZI''@;'; + put 'put ''JiZGSC5rZXlzJiZGSC5rZXlzLklFX1BST1RPfHwiIik7cmV0dXJuIGQ/IlN5bWJvbChzcmMpXzEuIitkOiIifSgpO3ZhciAkb2U9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2NvbnN0IFE2PWZ1bmN0aW9uIHpJKGQpe2lmKG51bGwhPWQpe3RyeXtyZXR1cm4gJG9lLmNhbGwoZCl9Y2F0''@;'; + put 'put ''Y2goZyl7fXRyeXtyZXR1cm4gZCsiIn1jYXRjaChnKXt9fXJldHVybiIifTt2YXIgcW9lPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLGlhZT1SZWdFeHAoIl4iK0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpLnJl''@;'; + put 'put ''cGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2NvbnN0IG9hZT1mdW5jdGlvbiBOSChkKXtyZXR1cm4hKCFjayhkKXx8ZnVuY3Rpb24g''@;'; + put 'put ''Z1EoZCl7cmV0dXJuISFwUSYmcFEgaW4gZH0oZCkpJiYoUEgoZCk/aWFlOnFvZSkudGVzdChRNihkKSl9LEtkPWZ1bmN0aW9uIHZRKGQsZyl7dmFyIGg9ZnVuY3Rpb24gVkgoZCxnKXtyZXR1cm4gbnVsbD09ZD92b2lkIDA6ZFtnXX0oZCxnKTtyZXR1cm4gb2FlKGgpP2g6dm9pZCAwfSxfNz1L''@;'; + put 'put ''ZChkcCwiTWFwIiksQzc9S2QoT2JqZWN0LCJjcmVhdGUiKTt2YXIgWkg9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgd1E9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBFNyhkKXt2YXIgZz0tMSxoPW51bGw9PWQ/MDpkLmxlbmd0aDtmb3IodGhp''@;'; + put 'put ''cy5jbGVhcigpOysrZzxoOyl7dmFyIHY9ZFtnXTt0aGlzLnNldCh2WzBdLHZbMV0pfX1FNy5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gakgoKXt0aGlzLl9fZGF0YV9fPUM3P0M3KG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxFNy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uIHNhZShkKXt2YXIg''@;'; + put 'put ''Zz10aGlzLmhhcyhkKSYmZGVsZXRlIHRoaXMuX19kYXRhX19bZF07cmV0dXJuIHRoaXMuc2l6ZS09Zz8xOjAsZ30sRTcucHJvdG90eXBlLmdldD1mdW5jdGlvbiBKMyhkKXt2YXIgZz10aGlzLl9fZGF0YV9fO2lmKEM3KXt2YXIgaD1nW2RdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5l''@;'; + put 'put ''ZF9fIj09PWg/dm9pZCAwOmh9cmV0dXJuIFpILmNhbGwoZyxkKT9nW2RdOnZvaWQgMH0sRTcucHJvdG90eXBlLmhhcz1mdW5jdGlvbiB1YWUoZCl7dmFyIGc9dGhpcy5fX2RhdGFfXztyZXR1cm4gQzc/dm9pZCAwIT09Z1tkXTp3US5jYWxsKGcsZCl9LEU3LnByb3RvdHlwZS5zZXQ9ZnVuY3Rp''@;'; + put 'put ''b24gX1EoZCxnKXt2YXIgaD10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKGQpPzA6MSxoW2RdPUM3JiZ2b2lkIDA9PT1nPyJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjpnLHRoaXN9O2NvbnN0IHg3PUU3LCRkPWZ1bmN0aW9uIFNRKGQsZyl7dmFyIGg9ZC5fX2Rh''@;'; + put 'put ''dGFfXztyZXR1cm4gZnVuY3Rpb24gQXkoZCl7dmFyIGc9dHlwZW9mIGQ7cmV0dXJuInN0cmluZyI9PWd8fCJudW1iZXIiPT1nfHwic3ltYm9sIj09Z3x8ImJvb2xlYW4iPT1nPyJfX3Byb3RvX18iIT09ZDpudWxsPT09ZH0oZyk/aFsic3RyaW5nIj09dHlwZW9mIGc/InN0cmluZyI6Imhhc2gi''@;'; + put 'put ''XTpoLm1hcH07ZnVuY3Rpb24geXkoZCl7dmFyIGc9LTEsaD1udWxsPT1kPzA6ZC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2c8aDspe3ZhciB2PWRbZ107dGhpcy5zZXQodlswXSx2WzFdKX19eXkucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIGNhZSgpe3RoaXMuc2l6ZT0wLHRoaXMuX19k''@;'; + put 'put ''YXRhX189e2hhc2g6bmV3IHg3LG1hcDpuZXcoXzd8fE5JKSxzdHJpbmc6bmV3IHg3fX0seXkucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBoYWUoZCl7dmFyIGc9JGQodGhpcyxkKS5kZWxldGUoZCk7cmV0dXJuIHRoaXMuc2l6ZS09Zz8xOjAsZ30seXkucHJvdG90eXBlLmdldD1mdW5jdGlv''@;'; + put 'put ''biBFUShkKXtyZXR1cm4gJGQodGhpcyxkKS5nZXQoZCl9LHl5LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gZGFlKGQpe3JldHVybiAkZCh0aGlzLGQpLmhhcyhkKX0seXkucHJvdG90eXBlLnNldD1mdW5jdGlvbiBnYWUoZCxnKXt2YXIgaD0kZCh0aGlzLGQpLHY9aC5zaXplO3JldHVybiBoLnNl''@;'; + put 'put ''dChkLGcpLHRoaXMuc2l6ZSs9aC5zaXplPT12PzA6MSx0aGlzfTtjb25zdCB2YWU9eXk7ZnVuY3Rpb24gWDYoZCl7dmFyIGc9dGhpcy5fX2RhdGFfXz1uZXcgTkkoZCk7dGhpcy5zaXplPWcuc2l6ZX1YNi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gVkkoKXt0aGlzLl9fZGF0YV9fPW5ldyBO''@;'; + put 'put ''SSx0aGlzLnNpemU9MH0sWDYucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBqSShkKXt2YXIgZz10aGlzLl9fZGF0YV9fLGg9Zy5kZWxldGUoZCk7cmV0dXJuIHRoaXMuc2l6ZT1nLnNpemUsaH0sWDYucHJvdG90eXBlLmdldD1mdW5jdGlvbiB6b2UoZCl7cmV0dXJuIHRoaXMuX19kYXRhX18u''@;'; + put 'put ''Z2V0KGQpfSxYNi5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uIGFRKGQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhkKX0sWDYucHJvdG90eXBlLnNldD1mdW5jdGlvbiBKNihkLGcpe3ZhciBoPXRoaXMuX19kYXRhX187aWYoaCBpbnN0YW5jZW9mIE5JKXt2YXIgdj1oLl9fZGF0YV9fO2lmKCFf''@;'; + put 'put ''N3x8di5sZW5ndGg8MTk5KXJldHVybiB2LnB1c2goW2QsZ10pLHRoaXMuc2l6ZT0rK2guc2l6ZSx0aGlzO2g9dGhpcy5fX2RhdGFfXz1uZXcgdmFlKHYpfXJldHVybiBoLnNldChkLGcpLHRoaXMuc2l6ZT1oLnNpemUsdGhpc307Y29uc3QgSVE9WDY7dmFyIHlhZT1mdW5jdGlvbigpe3RyeXt2''@;'; + put 'put ''YXIgZD1LZChPYmplY3QsImRlZmluZVByb3BlcnR5Iik7cmV0dXJuIGQoe30sIiIse30pLGR9Y2F0Y2goZyl7fX0oKTtjb25zdCBMUT15YWUsV0g9ZnVuY3Rpb24gd2FlKGQsZyxoKXsiX19wcm90b19fIj09ZyYmTFE/TFEoZCxnLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1''@;'; + put 'put ''ZTpoLHdyaXRhYmxlOiEwfSk6ZFtnXT1ofTt2YXIgd3k9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCBPUT1mdW5jdGlvbiBmayhkLGcsaCl7dmFyIHY9ZFtnXTsoIXd5LmNhbGwoZCxnKXx8IXJRKHYsaCl8fHZvaWQgMD09PWgmJiEoZyBpbiBkKSkmJldIKGQsZyxoKX0s''@;'; + put 'put ''aGs9ZnVuY3Rpb24gX2FlKGQsZyxoLHYpe3ZhciB5PSFoO2h8fChoPXt9KTtmb3IodmFyIEM9LTEsST1nLmxlbmd0aDsrK0M8STspe3ZhciBqPWdbQ10sdWU9dj92KGhbal0sZFtqXSxqLGgsZCk6dm9pZCAwO3ZvaWQgMD09PXVlJiYodWU9ZFtqXSkseT9XSChoLGosdWUpOk9RKGgsaix1ZSl9''@;'; + put 'put ''cmV0dXJuIGh9LHFkPWZ1bmN0aW9uIFJRKGQpe3JldHVybiBudWxsIT1kJiYib2JqZWN0Ij09dHlwZW9mIGR9LEJRPWZ1bmN0aW9uIFNhZShkKXtyZXR1cm4gcWQoZCkmJiJbb2JqZWN0IEFyZ3VtZW50c10iPT1WMChkKX07dmFyIFBRPU9iamVjdC5wcm90b3R5cGUsWUg9UFEuaGFzT3duUHJv''@;'; + put 'put ''cGVydHksRlE9UFEucHJvcGVydHlJc0VudW1lcmFibGUsTWFlPUJRKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/QlE6ZnVuY3Rpb24oZCl7cmV0dXJuIHFkKGQpJiZZSC5jYWxsKGQsImNhbGxlZSIpJiYhRlEuY2FsbChkLCJjYWxsZWUiKX07Y29uc3QgVUg9TWFlLFdJPUFycmF5''@;'; + put 'put ''LmlzQXJyYXk7dmFyIE5RPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsYnk9TlEmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5cGUmJm1vZHVsZSxqUT1ieSYmYnkuZXhwb3J0cz09PU5R''@;'; + put 'put ''P2RwLkJ1ZmZlcjp2b2lkIDA7Y29uc3QgSkg9KGpRP2pRLmlzQnVmZmVyOnZvaWQgMCl8fGZ1bmN0aW9uIEhRKCl7cmV0dXJuITF9O3ZhciBUYWU9L14oPzowfFsxLTldXGQqKSQvO2NvbnN0IEdRPWZ1bmN0aW9uIHpRKGQsZyl7dmFyIGg9dHlwZW9mIGQ7cmV0dXJuISEoZz1udWxsPT1nPzkw''@;'; + put 'put ''MDcxOTkyNTQ3NDA5OTE6ZykmJigibnVtYmVyIj09aHx8InN5bWJvbCIhPWgmJlRhZS50ZXN0KGQpKSYmZD4tMSYmZCUxPT0wJiZkPGd9LEs1PWZ1bmN0aW9uIERhZShkKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGQmJmQ+LTEmJmQlMT09MCYmZDw9OTAwNzE5OTI1NDc0MDk5MX07dmFyIGoy''@;'; + put 'put ''PXt9O2oyWyJbb2JqZWN0IEZsb2F0MzJBcnJheV0iXT1qMlsiW29iamVjdCBGbG9hdDY0QXJyYXldIl09ajJbIltvYmplY3QgSW50OEFycmF5XSJdPWoyWyJbb2JqZWN0IEludDE2QXJyYXldIl09ajJbIltvYmplY3QgSW50MzJBcnJheV0iXT1qMlsiW29iamVjdCBVaW50OEFycmF5XSJdPWoy''@;'; + put 'put ''WyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPWoyWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPWoyWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLGoyWyJbb2JqZWN0IEFyZ3VtZW50c10iXT1qMlsiW29iamVjdCBBcnJheV0iXT1qMlsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1qMlsi''@;'; + put 'put ''W29iamVjdCBCb29sZWFuXSJdPWoyWyJbb2JqZWN0IERhdGFWaWV3XSJdPWoyWyJbb2JqZWN0IERhdGVdIl09ajJbIltvYmplY3QgRXJyb3JdIl09ajJbIltvYmplY3QgRnVuY3Rpb25dIl09ajJbIltvYmplY3QgTWFwXSJdPWoyWyJbb2JqZWN0IE51bWJlcl0iXT1qMlsiW29iamVjdCBPYmpl''@;'; + put 'put ''Y3RdIl09ajJbIltvYmplY3QgUmVnRXhwXSJdPWoyWyJbb2JqZWN0IFNldF0iXT1qMlsiW29iamVjdCBTdHJpbmddIl09ajJbIltvYmplY3QgV2Vha01hcF0iXT0hMTtjb25zdCBreT1mdW5jdGlvbiBxSChkKXtyZXR1cm4gZnVuY3Rpb24oZyl7cmV0dXJuIGQoZyl9fTt2YXIgZU49Im9iamVj''@;'; + put 'put ''dCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxxNT1lTiYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZSYmIW1vZHVsZS5ub2RlVHlwZSYmbW9kdWxlLFVJPXE1JiZxNS5leHBvcnRzPT09ZU4mJmxRLnByb2Nlc3M7Y29uc3QgU3k9''@;'; + put 'put ''ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHE1JiZxNS5yZXF1aXJlJiZxNS5yZXF1aXJlKCJ1dGlsIikudHlwZXN8fFVJJiZVSS5iaW5kaW5nJiZVSS5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2goZyl7fX0oKTt2YXIgTXk9U3kmJlN5LmlzVHlwZWRBcnJheTtjb25zdCAkUT1NeT9reShNeSk6ZnVuY3Rp''@;'; + put 'put ''b24gR2FlKGQpe3JldHVybiBxZChkKSYmSzUoZC5sZW5ndGgpJiYhIWoyW1YwKGQpXX07dmFyIFlhZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IHFRPWZ1bmN0aW9uIFVhZShkLGcpe3ZhciBoPVdJKGQpLHY9IWgmJlVIKGQpLHk9IWgmJiF2JiZKSChkKSxDPSFoJiYh''@;'; + put 'put ''diYmIXkmJiRRKGQpLEk9aHx8dnx8eXx8QyxqPUk/ZnVuY3Rpb24gcDllKGQsZyl7Zm9yKHZhciBoPS0xLHY9QXJyYXkoZCk7KytoPGQ7KXZbaF09ZyhoKTtyZXR1cm4gdn0oZC5sZW5ndGgsU3RyaW5nKTpbXSx1ZT1qLmxlbmd0aDtmb3IodmFyIF9lIGluIGQpKGd8fFlhZS5jYWxsKGQsX2Up''@;'; + put 'put ''KSYmKCFJfHwhKCJsZW5ndGgiPT1fZXx8eSYmKCJvZmZzZXQiPT1fZXx8InBhcmVudCI9PV9lKXx8QyYmKCJidWZmZXIiPT1fZXx8ImJ5dGVMZW5ndGgiPT1fZXx8ImJ5dGVPZmZzZXQiPT1fZSl8fEdRKF9lLHVlKSkpJiZqLnB1c2goX2UpO3JldHVybiBqfTt2YXIgUWFlPU9iamVjdC5wcm90''@;'; + put 'put ''b3R5cGU7Y29uc3QgdE49ZnVuY3Rpb24gSmFlKGQpe3ZhciBnPWQmJmQuY29uc3RydWN0b3I7cmV0dXJuIGQ9PT0oImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcucHJvdG90eXBlfHxRYWUpfSxlSj1mdW5jdGlvbiBYYWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIGQoZyhoKSl9fSx0''@;'; + put 'put ''Sj1lSihPYmplY3Qua2V5cyxPYmplY3QpO3ZhciBuSj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IG5OPWZ1bmN0aW9uIHJKKGQpe3JldHVybiBudWxsIT1kJiZLNShkLmxlbmd0aCkmJiFQSChkKX0sRXk9ZnVuY3Rpb24gdGxlKGQpe3JldHVybiBuTihkKT9xUShkKTpm''@;'; + put 'put ''dW5jdGlvbiBxYWUoZCl7aWYoIXROKGQpKXJldHVybiB0SihkKTt2YXIgZz1bXTtmb3IodmFyIGggaW4gT2JqZWN0KGQpKW5KLmNhbGwoZCxoKSYmImNvbnN0cnVjdG9yIiE9aCYmZy5wdXNoKGgpO3JldHVybiBnfShkKX07dmFyIG9sZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5''@;'; + put 'put ''O2NvbnN0IGlOPWZ1bmN0aW9uIHJOKGQpe2lmKCFjayhkKSlyZXR1cm4gZnVuY3Rpb24gcmxlKGQpe3ZhciBnPVtdO2lmKG51bGwhPWQpZm9yKHZhciBoIGluIE9iamVjdChkKSlnLnB1c2goaCk7cmV0dXJuIGd9KGQpO3ZhciBnPXROKGQpLGg9W107Zm9yKHZhciB2IGluIGQpImNvbnN0cnVj''@;'; + put 'put ''dG9yIj09diYmKGd8fCFvbGUuY2FsbChkLHYpKXx8aC5wdXNoKHYpO3JldHVybiBofSxvTj1mdW5jdGlvbiBBdShkKXtyZXR1cm4gbk4oZCk/cVEoZCwhMCk6aU4oZCl9O3ZhciBhTj0ib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJmV4cG9ydHMmJiFleHBvcnRzLm5vZGVUeXBlJiZleHBvcnRz''@;'; + put 'put ''LGxOPWFOJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsb0o9bE4mJmxOLmV4cG9ydHM9PT1hTj9kcC5CdWZmZXI6dm9pZCAwLEtJPW9KP29KLmFsbG9jVW5zYWZlOnZvaWQgMDtjb25zdCBnaz1mdW5jdGlvbiBzTigpe3JldHVybltd''@;'; + put 'put ''fTt2YXIgbEo9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxzSj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLHVsZT1zSj9mdW5jdGlvbihkKXtyZXR1cm4gbnVsbD09ZD9bXTooZD1PYmplY3QoZCksZnVuY3Rpb24gJEkoZCxnKXtmb3IodmFyIGg9LTEsdj1udWxs''@;'; + put 'put ''PT1kPzA6ZC5sZW5ndGgseT0wLEM9W107KytoPHY7KXt2YXIgST1kW2hdO2coSSxoLGQpJiYoQ1t5KytdPUkpfXJldHVybiBDfShzSihkKSxmdW5jdGlvbihnKXtyZXR1cm4gbEouY2FsbChkLGcpfSkpfTpnaztjb25zdCB0Zz11bGUsdU49ZnVuY3Rpb24gcUkoZCxnKXtmb3IodmFyIGg9LTEs''@;'; + put 'put ''dj1nLmxlbmd0aCx5PWQubGVuZ3RoOysraDx2OylkW3kraF09Z1toXTtyZXR1cm4gZH0sY049ZUooT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCk7dmFyIGhsZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKGQpe2Zvcih2YXIgZz1bXTtkOyl1TihnLHRnKGQpKSxk''@;'; + put 'put ''PWNOKGQpO3JldHVybiBnfTpnaztjb25zdCB1Sj1obGUsZUQ9ZnVuY3Rpb24gcGxlKGQsZyxoKXt2YXIgdj1nKGQpO3JldHVybiBXSShkKT92OnVOKHYsaChkKSl9LG1sZT1mdW5jdGlvbiBnbGUoZCl7cmV0dXJuIGVEKGQsRXksdGcpfSxBbGU9ZnVuY3Rpb24gdmxlKGQpe3JldHVybiBlRChk''@;'; + put 'put ''LG9OLHVKKX0saE49S2QoZHAsIkRhdGFWaWV3IiksZE49S2QoZHAsIlByb21pc2UiKSxuRD1LZChkcCwiU2V0IiksRDc9S2QoZHAsIldlYWtNYXAiKTt2YXIgckQ9IltvYmplY3QgTWFwXSIsTWw9IltvYmplY3QgUHJvbWlzZV0iLHBOPSJbb2JqZWN0IFNldF0iLHYyPSJbb2JqZWN0IFdlYWtN''@;'; + put 'put ''YXBdIixCYT0iW29iamVjdCBEYXRhVmlld10iLGhKPVE2KGhOKSxlMT1RNihfNyksbmc9UTYoZE4pLGcxPVE2KG5EKSxpRD1RNihENykscmc9VjA7KGhOJiZyZyhuZXcgaE4obmV3IEFycmF5QnVmZmVyKDEpKSkhPUJhfHxfNyYmcmcobmV3IF83KSE9ckR8fGROJiZyZyhkTi5yZXNvbHZlKCkp''@;'; + put 'put ''IT1NbHx8bkQmJnJnKG5ldyBuRCkhPXBOfHxENyYmcmcobmV3IEQ3KSE9djIpJiYocmc9ZnVuY3Rpb24oZCl7dmFyIGc9VjAoZCksaD0iW29iamVjdCBPYmplY3RdIj09Zz9kLmNvbnN0cnVjdG9yOnZvaWQgMCx2PWg/UTYoaCk6IiI7aWYodilzd2l0Y2godil7Y2FzZSBoSjpyZXR1cm4gQmE7''@;'; + put 'put ''Y2FzZSBlMTpyZXR1cm4gckQ7Y2FzZSBuZzpyZXR1cm4gTWw7Y2FzZSBnMTpyZXR1cm4gcE47Y2FzZSBpRDpyZXR1cm4gdjJ9cmV0dXJuIGd9KTtjb25zdCBnTj1yZzt2YXIgd3U9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCBkSj1kcC5VaW50OEFycmF5LGxEPWZ1bmN0''@;'; + put 'put ''aW9uIG1OKGQpe3ZhciBnPW5ldyBkLmNvbnN0cnVjdG9yKGQuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBkSihnKS5zZXQobmV3IGRKKGQpKSxnfTt2YXIgTDc9L1x3KiQvO3ZhciBBTj13Nz93Ny5wcm90b3R5cGU6dm9pZCAwLHlOPUFOP0FOLnZhbHVlT2Y6dm9pZCAwO2NvbnN0IG9nPWZ1bmN0''@;'; + put 'put ''aW9uIERsZShkLGcsaCl7dmFyIHY9ZC5jb25zdHJ1Y3Rvcjtzd2l0Y2goZyl7Y2FzZSJbb2JqZWN0IEFycmF5QnVmZmVyXSI6cmV0dXJuIGxEKGQpO2Nhc2UiW29iamVjdCBCb29sZWFuXSI6Y2FzZSJbb2JqZWN0IERhdGVdIjpyZXR1cm4gbmV3IHYoK2QpO2Nhc2UiW29iamVjdCBEYXRhVmll''@;'; + put 'put ''d10iOnJldHVybiBmdW5jdGlvbiBDbGUoZCxnKXt2YXIgaD1nP2xEKGQuYnVmZmVyKTpkLmJ1ZmZlcjtyZXR1cm4gbmV3IGQuY29uc3RydWN0b3IoaCxkLmJ5dGVPZmZzZXQsZC5ieXRlTGVuZ3RoKX0oZCxoKTtjYXNlIltvYmplY3QgRmxvYXQzMkFycmF5XSI6Y2FzZSJbb2JqZWN0IEZsb2F0''@;'; + put 'put ''NjRBcnJheV0iOmNhc2UiW29iamVjdCBJbnQ4QXJyYXldIjpjYXNlIltvYmplY3QgSW50MTZBcnJheV0iOmNhc2UiW29iamVjdCBJbnQzMkFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQ4QXJyYXldIjpjYXNlIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIjpjYXNlIltvYmplY3QgVWludDE2''@;'; + put 'put ''QXJyYXldIjpjYXNlIltvYmplY3QgVWludDMyQXJyYXldIjpyZXR1cm4gZnVuY3Rpb24gTzcoZCxnKXt2YXIgaD1nP2xEKGQuYnVmZmVyKTpkLmJ1ZmZlcjtyZXR1cm4gbmV3IGQuY29uc3RydWN0b3IoaCxkLmJ5dGVPZmZzZXQsZC5sZW5ndGgpfShkLGgpO2Nhc2UiW29iamVjdCBNYXBdIjpj''@;'; + put 'put ''YXNlIltvYmplY3QgU2V0XSI6cmV0dXJuIG5ldyB2O2Nhc2UiW29iamVjdCBOdW1iZXJdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIG5ldyB2KGQpO2Nhc2UiW29iamVjdCBSZWdFeHBdIjpyZXR1cm4gZnVuY3Rpb24gdk4oZCl7dmFyIGc9bmV3IGQuY29uc3RydWN0b3IoZC5zb3Vy''@;'; + put 'put ''Y2UsTDcuZXhlYyhkKSk7cmV0dXJuIGcubGFzdEluZGV4PWQubGFzdEluZGV4LGd9KGQpO2Nhc2UiW29iamVjdCBTeW1ib2xdIjpyZXR1cm4gZnVuY3Rpb24gZ0ooZCl7cmV0dXJuIHlOP09iamVjdCh5Ti5jYWxsKGQpKTp7fX0oZCl9fTt2YXIga049T2JqZWN0LmNyZWF0ZSxhZz1mdW5jdGlv''@;'; + put 'put ''bigpe2Z1bmN0aW9uIGQoKXt9cmV0dXJuIGZ1bmN0aW9uKGcpe2lmKCFjayhnKSlyZXR1cm57fTtpZihrTilyZXR1cm4ga04oZyk7ZC5wcm90b3R5cGU9Zzt2YXIgaD1uZXcgZDtyZXR1cm4gZC5wcm90b3R5cGU9dm9pZCAwLGh9fSgpO2NvbnN0IGhEPWFnO3ZhciBNTj1TeSYmU3kuaXNNYXA7''@;'; + put 'put ''Y29uc3QgYko9TU4/a3koTU4pOmZ1bmN0aW9uIFNOKGQpe3JldHVybiBxZChkKSYmIltvYmplY3QgTWFwXSI9PWdOKGQpfTt2YXIgX0o9U3kmJlN5LmlzU2V0O2NvbnN0IEZsZT1fSj9reShfSik6ZnVuY3Rpb24gQmxlKGQpe3JldHVybiBxZChkKSYmIltvYmplY3QgU2V0XSI9PWdOKGQpfTt2''@;'; + put 'put ''YXIgZEQ9IltvYmplY3QgQXJndW1lbnRzXSIseE49IltvYmplY3QgRnVuY3Rpb25dIixTSj0iW29iamVjdCBPYmplY3RdIixBMj17fTtBMltkRF09QTJbIltvYmplY3QgQXJyYXldIl09QTJbIltvYmplY3QgQXJyYXlCdWZmZXJdIl09QTJbIltvYmplY3QgRGF0YVZpZXddIl09QTJbIltvYmpl''@;'; + put 'put ''Y3QgQm9vbGVhbl0iXT1BMlsiW29iamVjdCBEYXRlXSJdPUEyWyJbb2JqZWN0IEZsb2F0MzJBcnJheV0iXT1BMlsiW29iamVjdCBGbG9hdDY0QXJyYXldIl09QTJbIltvYmplY3QgSW50OEFycmF5XSJdPUEyWyJbb2JqZWN0IEludDE2QXJyYXldIl09QTJbIltvYmplY3QgSW50MzJBcnJheV0i''@;'; + put 'put ''XT1BMlsiW29iamVjdCBNYXBdIl09QTJbIltvYmplY3QgTnVtYmVyXSJdPUEyW1NKXT1BMlsiW29iamVjdCBSZWdFeHBdIl09QTJbIltvYmplY3QgU2V0XSJdPUEyWyJbb2JqZWN0IFN0cmluZ10iXT1BMlsiW29iamVjdCBTeW1ib2xdIl09QTJbIltvYmplY3QgVWludDhBcnJheV0iXT1BMlsi''@;'; + put 'put ''W29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1BMlsiW29iamVjdCBVaW50MTZBcnJheV0iXT1BMlsiW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxBMlsiW29iamVjdCBFcnJvcl0iXT1BMlt4Tl09QTJbIltvYmplY3QgV2Vha01hcF0iXT0hMTtjb25zdCBJTj1mdW5jdGlvbiB3ayhkLGcs''@;'; + put 'put ''aCx2LHksQyl7dmFyIEksaj0xJmcsdWU9MiZnLF9lPTQmZztpZihoJiYoST15P2goZCx2LHksQyk6aChkKSksdm9pZCAwIT09SSlyZXR1cm4gSTtpZighY2soZCkpcmV0dXJuIGQ7dmFyIEJlPVdJKGQpO2lmKEJlKXtpZihJPWZ1bmN0aW9uIGJsZShkKXt2YXIgZz1kLmxlbmd0aCxoPW5ldyBk''@;'; + put 'put ''LmNvbnN0cnVjdG9yKGcpO3JldHVybiBnJiYic3RyaW5nIj09dHlwZW9mIGRbMF0mJnd1LmNhbGwoZCwiaW5kZXgiKSYmKGguaW5kZXg9ZC5pbmRleCxoLmlucHV0PWQuaW5wdXQpLGh9KGQpLCFqKXJldHVybiBmdW5jdGlvbiBsbGUoZCxnKXt2YXIgaD0tMSx2PWQubGVuZ3RoO2ZvcihnfHwo''@;'; + put 'put ''Zz1BcnJheSh2KSk7KytoPHY7KWdbaF09ZFtoXTtyZXR1cm4gZ30oZCxJKX1lbHNle3ZhciBOZT1nTihkKSxLZT1OZT09eE58fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PU5lO2lmKEpIKGQpKXJldHVybiBmdW5jdGlvbiBhbGUoZCxnKXtpZihnKXJldHVybiBkLnNsaWNlKCk7dmFy''@;'; + put 'put ''IGg9ZC5sZW5ndGgsdj1LST9LSShoKTpuZXcgZC5jb25zdHJ1Y3RvcihoKTtyZXR1cm4gZC5jb3B5KHYpLHZ9KGQsaik7aWYoTmU9PVNKfHxOZT09ZER8fEtlJiYheSl7aWYoST11ZXx8S2U/e306ZnVuY3Rpb24gWjIoZCl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIGQuY29uc3RydWN0b3J8''@;'; + put 'put ''fHROKGQpP3t9OmhEKGNOKGQpKX0oZCksIWopcmV0dXJuIHVlP2Z1bmN0aW9uIGNKKGQsZyl7cmV0dXJuIGhrKGQsdUooZCksZyl9KGQsZnVuY3Rpb24gWDMoZCxnKXtyZXR1cm4gZCYmaGsoZyxvTihnKSxkKX0oSSxkKSk6ZnVuY3Rpb24gY2xlKGQsZyl7cmV0dXJuIGhrKGQsdGcoZCksZyl9''@;'; + put 'put ''KGQsZnVuY3Rpb24gbmxlKGQsZyl7cmV0dXJuIGQmJmhrKGcsRXkoZyksZCl9KEksZCkpfWVsc2V7aWYoIUEyW05lXSlyZXR1cm4geT9kOnt9O0k9b2coZCxOZSxqKX19Q3x8KEM9bmV3IElRKTt2YXIgZHQ9Qy5nZXQoZCk7aWYoZHQpcmV0dXJuIGR0O0Muc2V0KGQsSSksRmxlKGQpP2QuZm9y''@;'; + put 'put ''RWFjaChmdW5jdGlvbihmbil7SS5hZGQod2soZm4sZyxoLGZuLGQsQykpfSk6YkooZCkmJmQuZm9yRWFjaChmdW5jdGlvbihmbixMbil7SS5zZXQoTG4sd2soZm4sZyxoLExuLGQsQykpfSk7dmFyICR0PUJlP3ZvaWQgMDooX2U/dWU/QWxlOm1sZTp1ZT9vTjpFeSkoZCk7cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uIERRKGQsZyl7Zm9yKHZhciBoPS0xLHY9bnVsbD09ZD8wOmQubGVuZ3RoOysraDx2JiYhMSE9PWcoZFtoXSxoLGQpOyk7fSgkdHx8ZCxmdW5jdGlvbihmbixMbil7JHQmJihmbj1kW0xuPWZuXSksT1EoSSxMbix3ayhmbixnLGgsTG4sZCxDKSl9KSxJfTt2YXIgdHNlPUwoOTQ5Myk7bGV0''@;'; + put 'put ''IFhjPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLnNob3duTGlicmFyaWVzPTUwLHRoaXMubG9hZE1vcmVDb3VudD01MCx0aGlzLmlzTWljcm9zb2Z0PSExLHRoaXMuaXNNaWNyb3NvZnQ9dGhpcy5pc0lFb3JFREdFKCksY29uc29sZS5sb2coIklzIElFIG9yIEVkZ2U/Iix0aGlz''@;'; + put 'put ''LmlzTWljcm9zb2Z0KX1jb252ZXJ0SnNEYXRlVG9TYXNEYXRlKGgsdj0iZGF5cyIpe2xldCB5LEM9MDt5PWggaW5zdGFuY2VvZiBEYXRlP2g6bmV3IERhdGUoaCksQz1uZXcgRGF0ZShEYXRlLlVUQyh5LmdldEZ1bGxZZWFyKCkseS5nZXRNb250aCgpLHkuZ2V0RGF0ZSgpLHkuZ2V0SG91cnMo''@;'; + put 'put ''KSx5LmdldE1pbnV0ZXMoKSx5LmdldFNlY29uZHMoKSkpLnZhbHVlT2YoKTtjb25zdCB1ZT1DKzMxNTYxOTJlNTtzd2l0Y2godil7Y2FzZSJkYXlzIjp7bGV0IF9lPXVlLzg2NGU1O3JldHVybiBfZT1NYXRoLmFicyhfZSksX2U9TWF0aC5mbG9vcihfZSksX2V9Y2FzZSJzZWNvbmRzIjpyZXR1''@;'; + put 'put ''cm4gdWUvMWUzfXJldHVybiAwfWNvbnZlcnRTYXNEYXlzVG9Kc0RhdGUoaCx2PSJkYXlzIil7aWYoIm51bWJlciIhPXR5cGVvZiBoJiYoaD1wYXJzZUZsb2F0KGgpKSwic2Vjb25kcyI9PT12KXtsZXQgaj0xZTMqaC0zMTU2MTkyZTU7cmV0dXJuIGorPTYwKm5ldyBEYXRlKGopLmdldFRpbWV6''@;'; + put 'put ''b25lT2Zmc2V0KCkqMWUzLG5ldyBEYXRlKGopfXJldHVybiBuZXcgRGF0ZSg4NjRlNSpoLTMxNTYxOTJlNSl9dHJlZU9uRmlsdGVyKGgsdil7bGV0IHk9aC5zZWFyY2hTdHJpbmc/aC5zZWFyY2hTdHJpbmc6IiIsQz12LnNwbGl0KCIuIilbMF0sST12LnNwbGl0KCIuIilbMV0saj1DKyJBbGwi''@;'; + put 'put ''O2hbQ10mJihoW2pdfHwoaFtqXT10aGlzLmRlZXBDbG9uZShoW0NdKSksaFtDXT10aGlzLmRlZXBDbG9uZShoW2pdKSx5Lmxlbmd0aD4wJiYoaFtDXT1oW0NdLmZpbHRlcihJP3VlPT51ZVtJXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHkudG9Mb3dlckNhc2UoKSk6dWU9PnVlLnRvTG93ZXJD''@;'; + put 'put ''YXNlKCkuaW5jbHVkZXMoeS50b0xvd2VyQ2FzZSgpKSkpKX1saWJyYXJ5T25GaWx0ZXIoaCx2LHkpe3YubGVuZ3RoPjA/aC5mb3JFYWNoKEM9PntDW3ldLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModi50b0xvd2VyQ2FzZSgpKT8oQy5oaWRkZW49ITEsQy5pbkZvcmVncm91bmQ9ITApOihDLmhp''@;'; + put 'put ''ZGRlbj0hMCxDLmluRm9yZWdyb3VuZD0hMSl9KToodGhpcy5yZXNldEFycmF5RmlsdGVyKGgpLHRoaXMuZGlzcGxheUxpYnJhcmllcyhoKSl9ZGlzcGxheUxpYnJhcmllcyhoLHYpe3Y/dGhpcy5zaG93bkxpYnJhcmllcys9dGhpcy5sb2FkTW9yZUNvdW50Oih0aGlzLnNob3duTGlicmFyaWVz''@;'; + put 'put ''PTUwLHRoaXMucmVzZXRMaWJyYXJ5Rm9yZWdyb3VuZChoKSk7Zm9yKGxldCB5PTA7eTxoLmxlbmd0aCYmeSE9PXRoaXMuc2hvd25MaWJyYXJpZXM7eSsrKWhbeV0uaW5Gb3JlZ3JvdW5kPSEwfXJlc2V0TGlicmFyeUZvcmVncm91bmQoaCl7Zm9yKGxldCB2PTA7djxoLmxlbmd0aDt2KyspaFt2''@;'; + put 'put ''XS5pbkZvcmVncm91bmQ9ITF9bWV0YU9iamVjdE9uRmlsdGVyKGgsdix5KXt2Lmxlbmd0aD4wPyh0aGlzLnJlc2V0QXJyYXlGaWx0ZXIoaCksaC5mb3JFYWNoKEM9PntDW3ldLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModi50b0xvd2VyQ2FzZSgpKXx8KEMuaGlkZGVuPSEwKX0pKTp0aGlzLnJl''@;'; + put 'put ''c2V0QXJyYXlGaWx0ZXIoaCl9cmVzZXRBcnJheUZpbHRlcihoKXtoLmZvckVhY2godj0+e3YuaGlkZGVuPSExLHYuaW5Gb3JlZ3JvdW5kJiZkZWxldGUgdi5pbkZvcmVncm91bmR9KX1pc0lFb3JFREdFKCl7dmFyIGg9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7cmV0dXJuIGguaW5kZXhP''@;'; + put 'put ''ZigiTVNJRSAiKT4wfHwoaC5pbmRleE9mKCJUcmlkZW50LyIpPjA/KGguaW5kZXhPZigicnY6IiksITApOmguaW5kZXhPZigiRWRnZS8iKT4wKX1jb252ZXJ0T2JqZWN0c1RvQXJyYXkoaCx2PSExKXtyZXR1cm4gdiYmKGg9dGhpcy5kZWVwQ2xvbmUoaCkpLGgubWFwKHk9Pk9iamVjdC5rZXlz''@;'; + put 'put ''KHkpLm1hcChDPT55W0NdKSl9YWRkTGVhZGluZ1plcm8oaCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBoJiYoaD1oLnRvU3RyaW5nKCkpLGgubGVuZ3RoPDI/IjAiK2g6aH1kZWxldGVLZXlzQW5kSGFzaChoLHYseT0hMCl7Y29uc3QgQz15P3RoaXMuZGVlcENsb25lKGgpOmg7Zm9yKGxldCBJ''@;'; + put 'put ''IG9mIHYpZGVsZXRlIENbSV07cmV0dXJuIHRzZShKU09OLnN0cmluZ2lmeShDKSkudG9TdHJpbmcoKX1kb3dubG9hZFRleHRGaWxlKGgsdil7Y29uc3QgeT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7eS5zZXRBdHRyaWJ1dGUoImhyZWYiLCJkYXRhOnRleHQvcGxhaW47Y2hhcnNldD11''@;'; + put 'put ''dGYtOCwiK2VuY29kZVVSSUNvbXBvbmVudCh2KSkseS5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixoKyIudHh0IikseS5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHkpLHkuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHkpfWNvbnZlcnRB''@;'; + put 'put ''cnJheVZhbHVlcyhoLHYpe2lmKGgubGVuZ3RoPDEpcmV0dXJuW107c3dpdGNoKHYpe2Nhc2UibnVtYmVyIjpyZXR1cm4gaC5tYXAoeT0+MSp5KTtjYXNlInN0cmluZyI6cmV0dXJuIGgudG9TdHJpbmcoKS5zcGxpdCgiLCIpfX1kZWJvdW5jZUNhbGwoaCx2KXtjbGVhclRpbWVvdXQodGhpcy5k''@;'; + put 'put ''ZWJvdW5jZVRpbWVvdXQpLHRoaXMuZGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQodixoKX1kZWVwQ2xvbmUoaCl7cmV0dXJuIGZ1bmN0aW9uIEROKGQpe3JldHVybiBJTihkLDUpfShoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1''@;'; + put 'put ''cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksZH0pKCksUjc9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksail7dGhpcy5hcHBTdG9yZVNlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMuc2FzU2VydmljZT15''@;'; + put 'put ''LHRoaXMubG9nZ2VyU2VydmljZT1DLHRoaXMuaGVscGVyU2VydmljZT1JLHRoaXMucm91dGVyPWosdGhpcy5pc0FwcEFjdGl2YXRlZD1uZXcgY3MobnVsbCksdGhpcy5pc0FwcE92ZXJDYXBhY2l0eT1uZXcgY3MoITEpLHRoaXMuY3VycmVudFVzZXJDYW5SZWdpc3Rlcj1uZXcgY3MoITEpLHRo''@;'; + put 'put ''aXMubGljZW5zZUV4cGlyZXNJbkRheXM9bmV3IGNzKG51bGwpLHRoaXMuaXNBcHBEZW1vPW5ldyBjcyghMSksdGhpcy5zeXNzaXRlPW5ldyBjcyhudWxsKSx0aGlzLnJlc3RyaWN0RWRpdFJlY29yZD0hMSx0aGlzLmhvdF9saWNlbnNlX2tleT1uZXcgY3Modm9pZCAwKSx0aGlzLmRlbW9MaW1p''@;'; + put 'put ''dHM9e30sdGhpcy5saWNlbnNlS2V5RGF0YT1udWxsLHRoaXMuc3Vic2NyaWJlKCksdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSh1ZT0+e3VlIGluc3RhbmNlb2YgRzYmJiIvZGVwbG95Ij09PXVlLnVybCYmdGhpcy5ldmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2FkZWQoKX0pfXNhc1Nl''@;'; + put 'put ''cnZpY2VJbml0KCl7dGhpcy5zYXNTZXJ2aWNlLnNhc1NlcnZpY2VJbml0KCl9c3Vic2NyaWJlKCl7dGhpcy5zYXNTZXJ2aWNlLmxvYWRTdGFydHVwU2VydmljZUVtaXR0ZXIuc3Vic2NyaWJlKCgpPT57dGhpcy5zdGFydFVwRGF0YSgpfSksdGhpcy5zYXNTZXJ2aWNlLmluY29ycmVjdFNpdGVJ''@;'; + put 'put ''ZEVtaXR0ZXIuc3Vic2NyaWJlKGg9PntudWxsIT09dGhpcy5pc0FwcEFjdGl2YXRlZC52YWx1ZSYmIXRoaXMuaXNBcHBEZW1vLnZhbHVlJiZ0aGlzLmRlYWN0aXZhdGVBcHAoYC9saWNlbnNpbmcva2V5P2Vycm9yPW1pc3NtYXRjaCZtaXNzbWF0Y2hJZD0ke2h9YCl9KSx0aGlzLnNhc1NlcnZp''@;'; + put 'put ''Y2UucmVxdWVzdFNpdGVJZEVtaXR0ZXIuc3Vic2NyaWJlKGg9Pnt0aGlzLnBhdGNoU3lzc2l0ZShoKX0pfWdldEhvdExpY2Vuc2VLZXkoKXtyZXR1cm4gdGhpcy5ob3RfbGljZW5zZV9rZXkudmFsdWV9Z2V0TGljZW5zZUtleURhdGEoKXtyZXR1cm4gdGhpcy5saWNlbnNlS2V5RGF0YX1kZWFj''@;'; + put 'put ''dGl2YXRlQXBwKGgpe3RoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksaCYmdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChoKX1wYXRjaFN5c3NpdGUoaCl7bGV0IHY9dGhpcy5zeXNzaXRlLmdldFZhbHVlKCk7diYmKHYuaW5jbHVkZXMoaCl8fCh2LnB1c2goaCksdGhpcy5zeXNzaXRlLm5l''@;'; + put 'put ''eHQodikpKX1zdGFydFVwRGF0YSgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IGg9ITE7eWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy9zdGFydHVwc2VydmljZSIsbnVsbCkudGhlbih2PT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVu''@;'; + put 'put ''Y3Rpb24qKCl7dGhpcy5zeXNzaXRlLm5leHQoW3YuU1lTU0lURV0pO2xldCBJLGoseT12LnNhc2RhdGFzZXRzLEM9e307Zm9yKGxldCBOZSBvZiB5KUNbTmUuTElCUkVGXXx8KENbTmUuTElCUkVGXT1bXSksQ1tOZS5MSUJSRUZdLnB1c2goTmUuRFNOKTtsZXQgdWU9SlNPTi5wYXJzZShKU09O''@;'; + put 'put ''LnN0cmluZ2lmeShDKSksX2U9W107Zm9yKGxldCBOZSBvZiBPYmplY3Qua2V5cyh1ZSkpX2UucHVzaCh7TElCUkFSWVJFRjpOZSx0YWJsZXM6dWVbTmVdfSk7bGV0IEJlPV9lO0k9QyxqPU9iamVjdC5rZXlzKEMpLHZvaWQgMCE9PUkmJihuaS5lZGl0b3IubGlic0FuZFRhYmxlcz1JKSxuaS5l''@;'; + put 'put ''ZGl0b3IudHJlZU5vZGVMaWJyYXJpZXM9QmUsbmkuZWRpdG9yLmxpYnJhcmllcz1qLG5pLmVkaXRvci5zdGFydHVwU2V0PSEwLHRoaXMucmVzdHJpY3RFZGl0UmVjb3JkPSJZRVMiPT09di5nbG9idmFyc1swXS5EQ19SRVNUUklDVF9FRElUUkVDT1JELHlpZWxkIHRoaXMubGljZW5zaW5nKHYu''@;'; + put 'put ''Z2xvYnZhcnMsdi5TWVNTSVRFKX0pKS5jYXRjaCh2PT57aD0hMCx0aGlzLmlzQXBwQWN0aXZhdGVkLm5leHQoITEpfSksdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZygiQWN0aXZhdGVkOiIsdGhpcy5pc0FwcEFjdGl2YXRlZC52YWx1ZSksaHx8KHRoaXMuZXZlbnRTZXJ2aWNlLnN0YXJ0dXBEYXRh''@;'; + put 'put ''TG9hZGVkKCksdGhpcy5pc0FwcEFjdGl2YXRlZC52YWx1ZT90aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpJiZ0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvaG9tZSIpOiF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoImRlcGxveSIpJiYhdGhpcy5yb3V0ZXIudXJsLmlu''@;'; + put 'put ''Y2x1ZGVzKCJsaWNlbnNpbmciKSYmdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy9rZXk/ZXJyb3I9bWlzc2luZyIpKX0pfWxpY2Vuc2luZyhoLHYpe3ZhciB5O3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYoIWh8fCFoWzBdKXJldHVybiBj''@;'; + put 'put ''b25zb2xlLmVycm9yKCJnbG9idmFycyBub3QgcHJlc2VudCIpLHZvaWQgdGhpcy5pc0FwcEFjdGl2YXRlZC5uZXh0KCExKTtsZXQgQz1oWzBdO2lmKEMuTElDRU5DRV9LRVkmJkMuQUNUSVZBVElPTl9LRVkmJm51bGwhPSFDLlJFR0lTVEVSQ09VTlQmJm51bGwhPSFDLklTUkVHSVNURVJFRCl0''@;'; + put 'put ''aGlzLmxpY2VuY2VLZXk9Qy5MSUNFTkNFX0tFWSx0aGlzLmFjdGl2YXRpb25LZXk9Qy5BQ1RJVkFUSU9OX0tFWSx5aWVsZCB0aGlzLmRlY3J5cHRMaWNlbnNlS2V5KEMuTElDRU5DRV9LRVksQy5BQ1RJVkFUSU9OX0tFWSkudGhlbihJPT57dGhpcy5hcHBsaWNhdGlvbkFjdGl2YXRpb24oSSxD''@;'; + put 'put ''LHYpfSxJPT57Y29uc29sZS5lcnJvcigiRXJyb3IgZGVjcnlwdGluZyBsaWNlbnNlIGtleS4iLEkpLHRoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy9rZXk/ZXJyb3I9aW52YWxpZCIpfSk7ZWxzZXt0aGlzLmRlbW9MaW1p''@;'; + put 'put ''dHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LE5VKSx3b2UpO2NvbnN0IEk9e2RlbW86ITAsaG90X2xpY2Vuc2Vfa2V5Om51bGw9PT0oeT10aGlzLmFwcFN0b3JlU2VydmljZS5nZXREY0FkYXB0ZXJTZXR0aW5ncygpKXx8dm9pZCAwPT09eT92b2lkIDA6eS5ob3RMaWNlbmNlS2V5''@;'; + put 'put ''LHVzZXJzX2FsbG93ZWQ6dGhpcy5kZW1vTGltaXRzLnVzZXJzX2FsbG93ZWR8fDEsdmFsaWRfdW50aWw6IiIsc2l0ZV9pZDoiIixzaXRlX2lkX211bHRpcGxlOltdfTt0aGlzLmFwcGxpY2F0aW9uQWN0aXZhdGlvbihJLEMsdil9fSl9YXBwbGljYXRpb25BY3RpdmF0aW9uKGgsdix5KXtpZiho''@;'; + put 'put ''LnNpdGVfaWRfbXVsdGlwbGU/dGhpcy5zYXNTZXJ2aWNlLnNldExpY2Vuc2VTaXRlSWQoaC5zaXRlX2lkX211bHRpcGxlKTpoLnNpdGVfaWQmJnRoaXMuc2FzU2VydmljZS5zZXRMaWNlbnNlU2l0ZUlkKGguc2l0ZV9pZCksIWguZGVtbyl7bGV0IHVlPSExLF9lPSExO2lmKCghaC5zaXRlX2lk''@;'; + put 'put ''fHxoLnNpdGVfaWQhPT15KSYmKHVlPSEwKSwoIWguc2l0ZV9pZF9tdWx0aXBsZXx8IWguc2l0ZV9pZF9tdWx0aXBsZS5pbmNsdWRlcyh5KSkmJihfZT0hMCksdWUmJl9lKXJldHVybiBjb25zb2xlLmVycm9yKCJUaGUga2V5IHByb3ZpZGVkIGlzIGZvciBkaWZmZXJlbnQgb3JnYW5pemF0aW9u''@;'; + put 'put ''LiIpLHRoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvbGljZW5zaW5nL2tleT9lcnJvcj1taXNzbWF0Y2giKX10aGlzLmhvdF9saWNlbnNlX2tleS5uZXh0KHZvaWQgMCE9PWguaG90X2xpY2Vuc2Vfa2V5P2guaG90X2xpY2Vuc2Vf''@;'; + put 'put ''a2V5OnRoaXMuaG90X2xpY2Vuc2Vfa2V5LnZhbHVlKTtsZXQgQz1UbChoLnZhbGlkX3VudGlsLCJZWVlZLU1NLUREIiksST1UbCgpLGo9Qy5kaWZmKEksImRheXMiKTtyZXR1cm4gaC5kZW1vJiYoT2JqZWN0LmtleXModGhpcy5kZW1vTGltaXRzKS5sZW5ndGg8MSYmKHRoaXMuZGVtb0xpbWl0''@;'; + put 'put ''cz1OVSksITA9PT10aGlzLmRlbW9MaW1pdHMuZXhwaXJhdGlvbl9kYXRlX3VubGltaXRlZCYmKGo9MS8wKSx2b2lkIDAhPT10aGlzLmRlbW9MaW1pdHMudXNlcnNfYWxsb3dlZCYmKGgudXNlcnNfYWxsb3dlZD10aGlzLmRlbW9MaW1pdHMudXNlcnNfYWxsb3dlZD4tMT90aGlzLmRlbW9MaW1p''@;'; + put 'put ''dHMudXNlcnNfYWxsb3dlZDpoLnVzZXJzX2FsbG93ZWQpKSx0aGlzLmxpY2Vuc2VLZXlEYXRhPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoaCksd2luZG93LmFwcGluZm8oKSxqPD0wPyhjb25zb2xlLmVycm9yKCJMaWNlbnNlIGtleSBoYXMgZXhwaXJlZCIpLHRoaXMuaXNBcHBBY3Rp''@;'; + put 'put ''dmF0ZWQubmV4dCghMSksdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvbGljZW5zaW5nL2tleT9lcnJvcj1leHBpcmVkIikpOih3aW5kb3cubGljZW5zZUV4cGlyZXNJbj1qLHRoaXMubGljZW5zZUV4cGlyZXNJbkRheXMubmV4dChqKSx0aGlzLmlzQXBwRGVtby5uZXh0KCEhaC5k''@;'; + put 'put ''ZW1vKSx2LlJFR0lTVEVSQ09VTlQ+aC51c2Vyc19hbGxvd2VkPyhjb25zb2xlLndhcm4oIkFwcCBoYXMgbW9yZSB1c2VycyByZWdpc3RlcmVkIHRoZW4gbGljZW5zZWQuIiksdGhpcy5pc0FwcE92ZXJDYXBhY2l0eS5uZXh0KCEwKSk6di5SRUdJU1RFUkNPVU5UPT09aC51c2Vyc19hbGxvd2Vk''@;'; + put 'put ''JiZjb25zb2xlLndhcm4oIkFwcCBoYXMgaGl0IGxpbWl0IG9mIHVzZXJzIHJlZ2lzdGVyZWQuIiksMSE9PXYuSVNSRUdJU1RFUkVEP3YuUkVHSVNURVJDT1VOVDxoLnVzZXJzX2FsbG93ZWQ/KGNvbnNvbGUubG9nKCJVc2VyIGNhbiByZWdpc3RlciIpLHRoaXMuY3VycmVudFVzZXJDYW5SZWdp''@;'; + put 'put ''c3Rlci5uZXh0KCEwKSx0aGlzLmlzQXBwQWN0aXZhdGVkLm5leHQoITEpLHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy9yZWdpc3RlciIpKToodGhpcy5jdXJyZW50VXNlckNhblJlZ2lzdGVyLm5leHQoITEpLHRoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSks''@;'; + put 'put ''dm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvbGljZW5zaW5nL2xpbWl0IikpOnZvaWQgdGhpcy5pc0FwcEFjdGl2YXRlZC5uZXh0KCEwKSl9ZGVjcnlwdExpY2Vuc2VLZXkoaCx2KXtyZXR1cm4gbmV3IFByb21pc2UoKHksQyk9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlv''@;'; + put 'put ''biooKXtpZighd2luZG93LmNyeXB0b3x8IXdpbmRvdy5jcnlwdG8uc3VidGxlKXRyeXtsZXQgQmU9YXRvYihoLnNwbGl0KCIiKS5yZXZlcnNlKCkuam9pbigiIikpO3koSlNPTi5wYXJzZShCZSkpfWNhdGNoKEJlKXtDKCJFcnJvciBwYXJzaW5nIGh0dHAgbGljZW5zZSBrZXkgZGF0YS4gIitC''@;'; + put 'put ''ZSl9bGV0IGosST15aWVsZCB0aGlzLmJhc2U2NFRvQXJyYXlCdWZmZXIoaCkuY2F0Y2goQmU9PntDKEJlKX0pO2NvbnN0IHVlPXlpZWxkIHRoaXMuYmFzZTY0VG9BcnJheUJ1ZmZlcih2KS5jYXRjaChCZT0+e0MoQmUpfSk7aWYoIXVlKXJldHVybiB2b2lkIEMoIk1pc3NpbmcgYWN0aXZhdGlv''@;'; + put 'put ''biBrZXkiKTtsZXQgX2U7aj11ZTt0cnl7X2U9eWllbGQgd2luZG93LmNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJwa2NzOCIsaix7bmFtZToiUlNBLU9BRVAiLGhhc2g6IlNIQS0yNTYifSwhMCxbImRlY3J5cHQiXSl9Y2F0Y2goQmUpe0MoIlVuYWJsZSB0byBpbXBvcnQgZGVjcnlwdGlvbiBr''@;'; + put 'put ''ZXk6ICIrQmUpfWlmKF9lKWlmKEkpdHJ5e3dpbmRvdy5jcnlwdG8uc3VidGxlLmRlY3J5cHQoe25hbWU6IlJTQS1PQUVQIixoYXNoOntuYW1lOiJTSEEtMjU2In19LF9lLEkpLnRoZW4oQmU9PntsZXQgTmU9KG5ldyB5b2UuVGV4dERlY29kZXIpLmRlY29kZShCZSk7dHJ5e3koSlNPTi5wYXJz''@;'; + put 'put ''ZShOZSkpfWNhdGNoKEtlKXtDKCJFcnJvciBwYXJzaW5nIGxpY2Vuc2Uga2V5IGRhdGEuICIrS2UpfX0sQmU9PntDKEJlKX0pfWNhdGNoKEJlKXtDKEJlKX1lbHNlIEMoIkxpY2Vuc2Uga2V5IGJ5dGVzIG1pc3NpbmciKTtlbHNlIEMoIlVuYWJsZSB0byBpbXBvcnQgZGVjcnlwdGlvbiBrZXki''@;'; + put 'put ''KX0pKX1iYXNlNjRUb0FycmF5QnVmZmVyKGgpe3JldHVybiBuZXcgUHJvbWlzZSgodix5KT0+bm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3YoSFUuSihoKSl9KSl9YXJyYXlCdWZmZXJUb0Jhc2U2NChoKXtyZXR1cm4gbmV3IFByb21pc2UoKHYseSk9Pnt2KEhVLmMoaCkpfSl9''@;'; + put 'put ''fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGFrKSxDaShtdSksQ2koZzIpLENpKHNjKSxDaShYYyksQ2koWmwpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTtjbGFzcyBJSntjb25zdHJ1Y3Rv''@;'; + put 'put ''cihnLGgpe3RoaXMuZm49Zyx0aGlzLnN1YnNjcmlwdGlvbnM9aH11bnN1YnNjcmliZSgpe2NvbnN0IGc9dGhpcy5zdWJzY3JpcHRpb25zLmluZGV4T2YodGhpcyk7LTEhPT1nJiZ0aGlzLnN1YnNjcmlwdGlvbnMuc3BsaWNlKGcsMSl9fWZ1bmN0aW9uIGxnKGQpe3JldHVybiBudWxsIT1kJiYi''@;'; + put 'put ''b2JqZWN0Ij09dHlwZW9mIGQmJiEwPT09ZFsiQEBmdW5jdGlvbmFsL3BsYWNlaG9sZGVyIl19ZnVuY3Rpb24gbjQoZCl7cmV0dXJuIGZ1bmN0aW9uIGcoaCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RofHxsZyhoKT9nOmQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBwcChk''@;'; + put 'put ''KXtyZXR1cm4gZnVuY3Rpb24gZyhoLHYpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIGc7Y2FzZSAxOnJldHVybiBsZyhoKT9nOm40KGZ1bmN0aW9uKHkpe3JldHVybiBkKGgseSl9KTtkZWZhdWx0OnJldHVybiBsZyhoKSYmbGcodik/ZzpsZyhoKT9uNChmdW5jdGlv''@;'; + put 'put ''bih5KXtyZXR1cm4gZCh5LHYpfSk6bGcodik/bjQoZnVuY3Rpb24oeSl7cmV0dXJuIGQoaCx5KX0pOmQoaCx2KX19fWNvbnN0IHBEPXBwKGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGggaW5zdGFuY2VvZiBnfHxudWxsIT1oJiYoaC5jb25zdHJ1Y3Rvcj09PWd8fCJPYmplY3QiPT09Zy5uYW1lJiYi''@;'; + put 'put ''b2JqZWN0Ij09dHlwZW9mIGgpfSk7ZnVuY3Rpb24gZ0QoZCxnKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGcsZCl9dmFyIERKPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7Y29uc3QgUk49ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBBcmd1bWVudHNd''@;'; + put 'put ''Ij09PURKLmNhbGwoYXJndW1lbnRzKT9mdW5jdGlvbihnKXtyZXR1cm4iW29iamVjdCBBcmd1bWVudHNdIj09PURKLmNhbGwoZyl9OmZ1bmN0aW9uKGcpe3JldHVybiBnRCgiY2FsbGVlIixnKX19KCksQk49QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oZyl7cmV0dXJuIG51bGwhPWcmJmcubGVu''@;'; + put 'put ''Z3RoPj0wJiYiW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGcpfTtmdW5jdGlvbiBtRChkKXtyZXR1cm4iW29iamVjdCBTdHJpbmddIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKX12YXIgdWc9bjQoZnVuY3Rpb24oZyl7cmV0dXJu''@;'; + put 'put ''IG51bGwhPWcmJiJmdW5jdGlvbiI9PXR5cGVvZiBnWyJmYW50YXN5LWxhbmQvZW1wdHkiXT9nWyJmYW50YXN5LWxhbmQvZW1wdHkiXSgpOm51bGwhPWcmJm51bGwhPWcuY29uc3RydWN0b3ImJiJmdW5jdGlvbiI9PXR5cGVvZiBnLmNvbnN0cnVjdG9yWyJmYW50YXN5LWxhbmQvZW1wdHkiXT9n''@;'; + put 'put ''LmNvbnN0cnVjdG9yWyJmYW50YXN5LWxhbmQvZW1wdHkiXSgpOm51bGwhPWcmJiJmdW5jdGlvbiI9PXR5cGVvZiBnLmVtcHR5P2cuZW1wdHkoKTpudWxsIT1nJiZudWxsIT1nLmNvbnN0cnVjdG9yJiYiZnVuY3Rpb24iPT10eXBlb2YgZy5jb25zdHJ1Y3Rvci5lbXB0eT9nLmNvbnN0cnVjdG9y''@;'; + put 'put ''LmVtcHR5KCk6Qk4oZyk/W106bUQoZyk/IiI6ZnVuY3Rpb24gTEooZCl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCl9KGcpP3t9OlJOKGcpP2Z1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKTpmdW5jdGlvbiBzZyhkKXt2YXIg''@;'; + put 'put ''Zz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCk7cmV0dXJuIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIj09PWd8fCJbb2JqZWN0IEludDhBcnJheV0iPT09Z3x8IltvYmplY3QgVWludDhBcnJheV0iPT09Z3x8IltvYmplY3QgSW50MTZBcnJheV0iPT09Z3x8IltvYmplY3Qg''@;'; + put 'put ''VWludDE2QXJyYXldIj09PWd8fCJbb2JqZWN0IEludDMyQXJyYXldIj09PWd8fCJbb2JqZWN0IFVpbnQzMkFycmF5XSI9PT1nfHwiW29iamVjdCBGbG9hdDMyQXJyYXldIj09PWd8fCJbb2JqZWN0IEZsb2F0NjRBcnJheV0iPT09Z3x8IltvYmplY3QgQmlnSW50NjRBcnJheV0iPT09Z3x8Iltv''@;'; + put 'put ''YmplY3QgQmlnVWludDY0QXJyYXldIj09PWd9KGcpP2cuY29uc3RydWN0b3IuZnJvbSgiIik6dm9pZCAwfSk7Y29uc3QgT0o9dWc7ZnVuY3Rpb24gYmsoZCl7Zm9yKHZhciBoLGc9W107IShoPWQubmV4dCgpKS5kb25lOylnLnB1c2goaC52YWx1ZSk7cmV0dXJuIGd9ZnVuY3Rpb24gUE4oZCxn''@;'; + put 'put ''LGgpe2Zvcih2YXIgdj0wLHk9aC5sZW5ndGg7djx5Oyl7aWYoZChnLGhbdl0pKXJldHVybiEwO3YrPTF9cmV0dXJuITF9Y29uc3QgRk49ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24gUkooZCxnKXtyZXR1cm4gZD09PWc/MCE9PWR8fDEvZD09MS9nOmQh''@;'; + put 'put ''PWQmJmchPWd9O3ZhciB2RD0he3RvU3RyaW5nOm51bGx9LnByb3BlcnR5SXNFbnVtZXJhYmxlKCJ0b1N0cmluZyIpLEJKPVsiY29uc3RydWN0b3IiLCJ2YWx1ZU9mIiwiaXNQcm90b3R5cGVPZiIsInRvU3RyaW5nIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJoYXNPd25Qcm9wZXJ0eSIsInRv''@;'; + put 'put ''TG9jYWxlU3RyaW5nIl0sUEo9ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJsZW5ndGgiKX0oKSxBRD1mdW5jdGlvbihnLGgpe2Zvcih2YXIgdj0wO3Y8Zy5sZW5ndGg7KXtpZihnW3ZdPT09aClyZXR1cm4hMDt2Kz0xfXJldHVybiExfTtjb25zdCBO''@;'; + put 'put ''Tj1uNCgiZnVuY3Rpb24iIT10eXBlb2YgT2JqZWN0LmtleXN8fFBKP2Z1bmN0aW9uKGcpe2lmKE9iamVjdChnKSE9PWcpcmV0dXJuW107dmFyIGgsdix5PVtdLEM9UEomJlJOKGcpO2ZvcihoIGluIGcpZ0QoaCxnKSYmKCFDfHwibGVuZ3RoIiE9PWgpJiYoeVt5Lmxlbmd0aF09aCk7aWYodkQp''@;'; + put 'put ''Zm9yKHY9QkoubGVuZ3RoLTE7dj49MDspZ0QoaD1CSlt2XSxnKSYmIUFEKHksaCkmJih5W3kubGVuZ3RoXT1oKSx2LT0xO3JldHVybiB5fTpmdW5jdGlvbihnKXtyZXR1cm4gT2JqZWN0KGcpIT09Zz9bXTpPYmplY3Qua2V5cyhnKX0pLEhKPW40KGZ1bmN0aW9uKGcpe3JldHVybiBudWxsPT09''@;'; + put 'put ''Zz8iTnVsbCI6dm9pZCAwPT09Zz8iVW5kZWZpbmVkIjpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZykuc2xpY2UoOCwtMSl9KTtmdW5jdGlvbiBWTihkLGcsaCx2KXt2YXIgeT1iayhkKTtmdW5jdGlvbiBJKGosdWUpe3JldHVybiBqTihqLHVlLGguc2xpY2UoKSx2LnNsaWNlKCkp''@;'; + put 'put ''fXJldHVybiFQTihmdW5jdGlvbihqLHVlKXtyZXR1cm4hUE4oSSx1ZSxqKX0sYmsoZykseSl9ZnVuY3Rpb24gak4oZCxnLGgsdil7aWYoRk4oZCxnKSlyZXR1cm4hMDt2YXIgeT1ISihkKTtpZih5IT09SEooZykpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGRbImZhbnRhc3ktbGFu''@;'; + put 'put ''ZC9lcXVhbHMiXXx8ImZ1bmN0aW9uIj09dHlwZW9mIGdbImZhbnRhc3ktbGFuZC9lcXVhbHMiXSlyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZFsiZmFudGFzeS1sYW5kL2VxdWFscyJdJiZkWyJmYW50YXN5LWxhbmQvZXF1YWxzIl0oZykmJiJmdW5jdGlvbiI9PXR5cGVvZiBnWyJmYW50YXN5''@;'; + put 'put ''LWxhbmQvZXF1YWxzIl0mJmdbImZhbnRhc3ktbGFuZC9lcXVhbHMiXShkKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZC5lcXVhbHN8fCJmdW5jdGlvbiI9PXR5cGVvZiBnLmVxdWFscylyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZC5lcXVhbHMmJmQuZXF1YWxzKGcpJiYiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgZy5lcXVhbHMmJmcuZXF1YWxzKGQpO3N3aXRjaCh5KXtjYXNlIkFyZ3VtZW50cyI6Y2FzZSJBcnJheSI6Y2FzZSJPYmplY3QiOmlmKCJmdW5jdGlvbiI9PXR5cGVvZiBkLmNvbnN0cnVjdG9yJiYiUHJvbWlzZSI9PT1mdW5jdGlvbiBvc2UoZCl7dmFyIGc9U3RyaW5nKGQpLm1hdGNo''@;'; + put 'put ''KC9eZnVuY3Rpb24gKFx3KikvKTtyZXR1cm4gbnVsbD09Zz8iIjpnWzFdfShkLmNvbnN0cnVjdG9yKSlyZXR1cm4gZD09PWc7YnJlYWs7Y2FzZSJCb29sZWFuIjpjYXNlIk51bWJlciI6Y2FzZSJTdHJpbmciOmlmKHR5cGVvZiBkIT10eXBlb2YgZ3x8IUZOKGQudmFsdWVPZigpLGcudmFsdWVP''@;'; + put 'put ''ZigpKSlyZXR1cm4hMTticmVhaztjYXNlIkRhdGUiOmlmKCFGTihkLnZhbHVlT2YoKSxnLnZhbHVlT2YoKSkpcmV0dXJuITE7YnJlYWs7Y2FzZSJFcnJvciI6cmV0dXJuIGQubmFtZT09PWcubmFtZSYmZC5tZXNzYWdlPT09Zy5tZXNzYWdlO2Nhc2UiUmVnRXhwIjppZihkLnNvdXJjZSE9PWcu''@;'; + put 'put ''c291cmNlfHxkLmdsb2JhbCE9PWcuZ2xvYmFsfHxkLmlnbm9yZUNhc2UhPT1nLmlnbm9yZUNhc2V8fGQubXVsdGlsaW5lIT09Zy5tdWx0aWxpbmV8fGQuc3RpY2t5IT09Zy5zdGlja3l8fGQudW5pY29kZSE9PWcudW5pY29kZSlyZXR1cm4hMX1mb3IodmFyIEM9aC5sZW5ndGgtMTtDPj0wOyl7''@;'; + put 'put ''aWYoaFtDXT09PWQpcmV0dXJuIHZbQ109PT1nO0MtPTF9c3dpdGNoKHkpe2Nhc2UiTWFwIjpyZXR1cm4gZC5zaXplPT09Zy5zaXplJiZWTihkLmVudHJpZXMoKSxnLmVudHJpZXMoKSxoLmNvbmNhdChbZF0pLHYuY29uY2F0KFtnXSkpO2Nhc2UiU2V0IjpyZXR1cm4gZC5zaXplPT09Zy5zaXpl''@;'; + put 'put ''JiZWTihkLnZhbHVlcygpLGcudmFsdWVzKCksaC5jb25jYXQoW2RdKSx2LmNvbmNhdChbZ10pKTtjYXNlIkFyZ3VtZW50cyI6Y2FzZSJBcnJheSI6Y2FzZSJPYmplY3QiOmNhc2UiQm9vbGVhbiI6Y2FzZSJOdW1iZXIiOmNhc2UiU3RyaW5nIjpjYXNlIkRhdGUiOmNhc2UiRXJyb3IiOmNhc2Ui''@;'; + put 'put ''UmVnRXhwIjpjYXNlIkludDhBcnJheSI6Y2FzZSJVaW50OEFycmF5IjpjYXNlIlVpbnQ4Q2xhbXBlZEFycmF5IjpjYXNlIkludDE2QXJyYXkiOmNhc2UiVWludDE2QXJyYXkiOmNhc2UiSW50MzJBcnJheSI6Y2FzZSJVaW50MzJBcnJheSI6Y2FzZSJGbG9hdDMyQXJyYXkiOmNhc2UiRmxvYXQ2''@;'; + put 'put ''NEFycmF5IjpjYXNlIkFycmF5QnVmZmVyIjpicmVhaztkZWZhdWx0OnJldHVybiExfXZhciBJPU5OKGQpO2lmKEkubGVuZ3RoIT09Tk4oZykubGVuZ3RoKXJldHVybiExO3ZhciBqPWguY29uY2F0KFtkXSksdWU9di5jb25jYXQoW2ddKTtmb3IoQz1JLmxlbmd0aC0xO0M+PTA7KXt2YXIgX2U9''@;'; + put 'put ''SVtDXTtpZighZ0QoX2UsZyl8fCFqTihnW19lXSxkW19lXSxqLHVlKSlyZXR1cm4hMTtDLT0xfXJldHVybiEwfWNvbnN0IEs2PXBwKGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGpOKGcsaCxbXSxbXSl9KSxaTj1uNChmdW5jdGlvbihnKXtyZXR1cm4gbnVsbCE9ZyYmSzYoZyxPSihnKSl9KTtmdW5j''@;'; + put 'put ''dGlvbiBUeShkKXtyZXR1cm4gbnVsbD09ZH1mdW5jdGlvbiAkNihkKXtyZXR1cm4gVHkoZCl8fFpOKGQpfWZ1bmN0aW9uIF9rKGQpe3JldHVybiBwRChTdHJpbmcsZCl9ZnVuY3Rpb24gd0QoZCl7cmV0dXJuIHBEKE9iamVjdCxkKX1mdW5jdGlvbiBhc2UoZCl7cmV0dXJuIHBEKE1hcCxkKX1m''@;'; + put 'put ''dW5jdGlvbiBaSihkLGcpe3JldHVybiBkIT09Z31mdW5jdGlvbiBXSihkLGcpe3JldHVybiBKU09OLnN0cmluZ2lmeShkKT09PUpTT04uc3RyaW5naWZ5KGcpfWZ1bmN0aW9uIEdOKGQpe2NvbnN0IGc9bmV3IE1hcDtmb3IoY29uc3RbaCx2XW9mIGQpYXNlKHYpP2cuc2V0KGgsR04odikpOmcu''@;'; + put 'put ''c2V0KGgsdik7cmV0dXJuIGd9ZnVuY3Rpb24gc3NlKGQpe3N3aXRjaCghMCl7Y2FzZSBhc2UoZCk6cmV0dXJuIEdOKGQpO2Nhc2Ugd0QoZCkmJiFBcnJheS5pc0FycmF5KGQpOnJldHVybiBQNyh7fSxkKTtkZWZhdWx0OnJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGQpKX19ZnVu''@;'; + put 'put ''Y3Rpb24gUDcoLi4uZCl7Y29uc3QgZz17fTtyZXR1cm4gZC5tYXAoaD0+d0QoaCk/Z3Moe30saCk6e30pLmZvckVhY2goaD0+e09iamVjdC5rZXlzKGgpLmZvckVhY2godj0+e2NvbnN0IHk9aFt2XTtnW3ZdPUFycmF5LmlzQXJyYXkoeSk/QXJyYXkuZnJvbSh5KTp3RCh5KT9QNyhnW3ZdfHx7''@;'; + put 'put ''fSx5KTp5fSl9KSxnfWZ1bmN0aW9uIFVKKGQ9d2luZG93KXtyZXR1cm4hVHkoZCl9bGV0IGJELGhzZSxVTixRTjtmdW5jdGlvbiBKTihkPSEwKXtpZighZHx8IWJEKXtjb25zdCBnPWRvY3VtZW50JiZkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbbmctdmVyc2lvbl0iKTtiRD1nPyIiK2cuZ2V0''@;'; + put 'put ''QXR0cmlidXRlKCJuZy12ZXJzaW9uIik6dm9pZCAwfXJldHVybiBiRH1mdW5jdGlvbiBkc2UoZD0hMCl7dmFyIGcsaDtyZXR1cm4gZCYmYkR8fChoc2U9bnVsbD09KGg9bnVsbD09KGc9bnVsbD09d2luZG93P3ZvaWQgMDp3aW5kb3cuYW5ndWxhcik/dm9pZCAwOmcudmVyc2lvbik/dm9pZCAw''@;'; + put 'put ''OmguZnVsbCksaHNlfWZ1bmN0aW9uIFhOKGQ9ITApe3ZhciBnLGg7cmV0dXJuIGQmJlVOfHwoVU49bnVsbCE9KGg9bnVsbD09KGc9bnVsbD09d2luZG93P3ZvaWQgMDp3aW5kb3cuQ0RTKT92b2lkIDA6Zy5fcmVhY3QpJiZoLnZlcnNpb24/d2luZG93LkNEUy5fcmVhY3QudmVyc2lvbjpkb2N1''@;'; + put 'put ''bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1yZWFjdHJvb3RdLCBbZGF0YS1yZWFjdGlkXSIpPyJ1bmtub3duIHZlcnNpb24iOnZvaWQgMCksVU59ZnVuY3Rpb24gUUooZD0hMCl7aWYoIWR8fCFRTil7Y29uc3QgZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIik7bGV0IGg7Zm9yKGxl''@;'; + put 'put ''dCB2PTA7djxnLmxlbmd0aDt2KyspaWYoZ1t2XS5fX3Z1ZV9fKXtoPWdbdl07YnJlYWt9UU49aD8idW5rbm93biB2ZXJzaW9uIjp2b2lkIDB9cmV0dXJuIFFOfWZ1bmN0aW9uIEY3KGQpe3JldHVybiBkLnJlcGxhY2UoL1tBLVpdL2csZz0+Ii0iK2cudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24g''@;'; + put 'put ''JEooZCl7cmV0dXJuIGQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZC5zbGljZSgxKX1jb25zdCB3c2U9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7aWYodGhpcy5zdXBwb3J0cz17anM6ITB9LCFkb2N1bWVudC5ib2R5Lmhhc0F0dHJpYnV0ZSgiY2RzLXN1cHBvcnRzIil8fCJuby1qcyI9PT1k''@;'; + put 'put ''b2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZSgiY2RzLXN1cHBvcnRzIikpe2NvbnN0IGQ9RjcoT2JqZWN0LmtleXModGhpcy5zdXBwb3J0cykucmVkdWNlKChnLGgpPT5gJHtnfSAke3RoaXMuc3VwcG9ydHNbaF0/aDoibm8tIitofWAsIiIpKS50cmltKCk7ZG9jdW1lbnQuYm9keS5zZXRBdHRy''@;'; + put 'put ''aWJ1dGUoImNkcy1zdXBwb3J0cyIsZCl9fX07ZnVuY3Rpb24gSDcoZCxnKXtzd2l0Y2goZCl7Y2FzZSAwOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSAxOnJldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50''@;'; + put 'put ''cyl9O2Nhc2UgMjpyZXR1cm4gZnVuY3Rpb24oaCx2KXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24oaCx2LHkpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSA0OnJldHVybiBmdW5jdGlvbihoLHYseSxDKXtyZXR1cm4g''@;'; + put 'put ''Zy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNTpyZXR1cm4gZnVuY3Rpb24oaCx2LHksQyxJKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNjpyZXR1cm4gZnVuY3Rpb24oaCx2LHksQyxJLGope3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSA3''@;'; + put 'put ''OnJldHVybiBmdW5jdGlvbihoLHYseSxDLEksaix1ZSl7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDg6cmV0dXJuIGZ1bmN0aW9uKGgsdix5LEMsSSxqLHVlLF9lKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgOTpyZXR1cm4gZnVuY3Rpb24oaCx2''@;'; + put 'put ''LHksQyxJLGosdWUsX2UsQmUpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSAxMDpyZXR1cm4gZnVuY3Rpb24oaCx2LHksQyxJLGosdWUsX2UsQmUsTmUpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkZpcnN0IGFy''@;'; + put 'put ''Z3VtZW50IHRvIF9hcml0eSBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgbm8gZ3JlYXRlciB0aGFuIHRlbiIpfX1mdW5jdGlvbiByWChkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB2PVtdLHk9MCxDPWQsST0wO0k8Zy5sZW5ndGh8fHk8YXJndW1lbnRzLmxlbmd0aDsp''@;'; + put 'put ''e3ZhciBqO0k8Zy5sZW5ndGgmJighbGcoZ1tJXSl8fHk+PWFyZ3VtZW50cy5sZW5ndGgpP2o9Z1tJXTooaj1hcmd1bWVudHNbeV0seSs9MSksdltJXT1qLGxnKGopfHwoQy09MSksSSs9MX1yZXR1cm4gQzw9MD9oLmFwcGx5KHRoaXMsdik6SDcoQyxyWChkLHYsaCkpfX1jb25zdCBpWD1wcChm''@;'; + put 'put ''dW5jdGlvbihnLGgpe3JldHVybiAxPT09Zz9uNChoKTpINyhnLHJYKGcsW10saCkpfSksb1g9TnVtYmVyLmlzSW50ZWdlcnx8ZnVuY3Rpb24oZyl7cmV0dXJuIGc8PDA9PT1nfSxDc2U9cHAoZnVuY3Rpb24oZyxoKXt2YXIgdj1nPDA/aC5sZW5ndGgrZzpnO3JldHVybiBtRChoKT9oLmNoYXJB''@;'; + put 'put ''dCh2KTpoW3ZdfSksU3NlPXBwKGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGcubWFwKGZ1bmN0aW9uKHYpe2Zvcih2YXIgSSx5PWgsQz0wO0M8di5sZW5ndGg7KXtpZihudWxsPT15KXJldHVybjt5PW9YKEk9dltDXSk/Q3NlKEkseSk6eVtJXSxDKz0xfXJldHVybiB5fSl9KSxFc2U9cHAoZnVuY3Rp''@;'; + put 'put ''b24oZyxoKXtyZXR1cm4gU3NlKFtnXSxoKVswXX0pLHhzZT1pWCgyLChkLGcpPT52b2lkIDAhPT1Fc2UoZCxnKSksX0Q9eHNlKHsiQEBmdW5jdGlvbmFsL3BsYWNlaG9sZGVyIjohMH0sd2luZG93KTtjbGFzcyBON3tzdGF0aWMgbG9nKC4uLmcpe2VWKCkmJnFOKCkmJmNvbnNvbGUubG9nKC4u''@;'; + put 'put ''LmcpfXN0YXRpYyB3YXJuKC4uLmcpe2VWKCkmJnFOKCkmJmNvbnNvbGUud2FybiguLi5nKX1zdGF0aWMgZXJyb3IoLi4uZyl7ZVYoKSYmcU4oKSYmY29uc29sZS5lcnJvciguLi5nKX19ZnVuY3Rpb24gcU4oKXtyZXR1cm4hX0QoWyJqYXNtaW5lIl0pfWZ1bmN0aW9uIGVWKCl7cmV0dXJuIXdp''@;'; + put 'put ''bmRvdy5DRFMuZW52aXJvbm1lbnQucHJvZHVjdGlvbn1mdW5jdGlvbiB0Vigpe1VKKCkmJih3aW5kb3cuQ0RTPXdpbmRvdy5DRFN8fHtfdmVyc2lvbjpbXSxfcmVhY3Q6e3ZlcnNpb246dm9pZCAwfSxfc3VwcG9ydHM6d3NlLnN1cHBvcnRzLF9pc1N0YXRlUHJveGllZDohMSxfc3RhdGU6e2Zv''@;'; + put 'put ''Y3VzVHJhcEl0ZW1zOltdLGxheWVyRWxlbWVudHM6W10saTE4blJlZ2lzdHJ5Ont9LGVsZW1lbnRSZWdpc3RyeTp7fSxpY29uUmVnaXN0cnk6e30sbW90aW9uUmVnaXN0cnk6e319LGVudmlyb25tZW50Ontwcm9kdWN0aW9uOiExfSxnZXREZXRhaWxzOmxYLGxvZ0RldGFpbHM6c1h9LGZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIGc7Y29uc3QgZD0iNi4xLjAiO3dpbmRvdy5DRFMuX3ZlcnNpb24uaW5kZXhPZihkKTwwJiYod2luZG93LkNEUy5fdmVyc2lvbi5wdXNoKGQpLG51bGw9PShnPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKSl8fGcuc2V0QXR0cmlidXRlKCJjZHMtdmVyc2lvbiIsd2lu''@;'; + put 'put ''ZG93LkNEUy5fdmVyc2lvbi5qb2luKCIgIikpKSx3aW5kb3cuQ0RTLl92ZXJzaW9uLmxlbmd0aD4xJiZONy53YXJuKCJSdW5uaW5nIG1vcmUgdGhhbiBvbmUgdmVyc2lvbiBvZiBDbGFyaXR5IGNhbiBjYXVzZSB1bmV4cGVjdGVkIGlzc3Vlcy4gUGxlYXNlIGVuc3VyZSBvbmx5IG9uZSB2ZXJz''@;'; + put 'put ''aW9uIGlzIGxvYWRlZC4iKX0oKSx3aW5kb3cuQ0RTLl9pc1N0YXRlUHJveGllZHx8KHdpbmRvdy5DRFMuX2lzU3RhdGVQcm94aWVkPSEwLHdpbmRvdy5DRFMuX3N0YXRlPW5ldyBQcm94eSh3aW5kb3cuQ0RTLl9zdGF0ZSx7c2V0OihkLGcsaCk9Pntjb25zdCB2PXtrZXk6ZyxwcmV2OndpbmRv''@;'; + put 'put ''dy5DRFMuX3N0YXRlW2ddLGN1cnJlbnQ6aH07cmV0dXJuIGRbZ109aCxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiQ0RTX1NUQVRFX1VQREFURSIse2RldGFpbDp2fSkpLCEwfX0pKSl9ZnVuY3Rpb24gbFgoKXtyZXR1cm57dmVyc2lvbnM6d2luZG93LkNEUy5fdmVy''@;'; + put 'put ''c2lvbixlbnZpcm9ubWVudDp3aW5kb3cuQ0RTLmVudmlyb25tZW50LHVzZXJBZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHN1cHBvcnRzOndpbmRvdy5DRFMuX3N1cHBvcnRzLGFuZ3VsYXJWZXJzaW9uOkpOKCExKSxhbmd1bGFySlNWZXJzaW9uOmRzZSghMSkscmVhY3RWZXJzaW9uOlhOKCEx''@;'; + put 'put ''KSx2dWVWZXJzaW9uOlFKKCExKSxzdGF0ZTpaeihncyh7fSx3aW5kb3cuQ0RTLl9zdGF0ZSkse2ljb25SZWdpc3RyeTpPYmplY3Qua2V5cyh3aW5kb3cuQ0RTLl9zdGF0ZS5pY29uUmVnaXN0cnkpLG1vdGlvblJlZ2lzdHJ5Ok9iamVjdC5rZXlzKHdpbmRvdy5DRFMuX3N0YXRlLm1vdGlvblJl''@;'; + put 'put ''Z2lzdHJ5KSxmb2N1c1RyYXBSZWdpc3RyeTpPYmplY3Qua2V5cyh3aW5kb3cuQ0RTLl9zdGF0ZS5mb2N1c1RyYXBJdGVtcy5tYXAoZD0+ZC5mb2N1c1RyYXBJZCkpfSl9fWZ1bmN0aW9uIHNYKCl7TjcubG9nKEpTT04uc3RyaW5naWZ5KGxYKCksbnVsbCwyKSl9Y29uc3QgQ0Q9bmV3IGNsYXNz''@;'; + put 'put ''IG5zZXtjb25zdHJ1Y3Rvcigpe3RoaXMuc3Vic2NyaXB0aW9ucz1bXX1zdWJzY3JpYmUoZyl7Y29uc3QgaD1uZXcgSUooZyx0aGlzLnN1YnNjcmlwdGlvbnMpO3JldHVybiB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChoKSxofWVtaXQoZyl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+''@;'; + put 'put ''aC5mbihnKSl9dG9FdmVudE9ic2VydmFibGUoKXtyZXR1cm4gdGhpc319O0NELmxpc3RlbmVyPWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkNEU19TVEFURV9VUERBVEUiLGQ9PkNELmVtaXQoZC5kZXRhaWwpKTtjbGFzcyBKMXtzdGF0aWMgZ2V0IHN0YXRlKCl7cmV0dXJuIHRWKCksd2lu''@;'; + put 'put ''ZG93LkNEUy5fc3RhdGV9c3RhdGljIGdldFZhbHVlKGcpe3JldHVybiBKMS5zdGF0ZVtnXX1zdGF0aWMgc2V0VmFsdWUoZyxoKXtKMS5zdGF0ZVtnXT1ofXN0YXRpYyBsb2coKXtONy5sb2coSlNPTi5zdHJpbmdpZnkoSjEuc3RhdGUsbnVsbCwyKSl9fUoxLnN0YXRlVXBkYXRlcz1DRC50b0V2''@;'; + put 'put ''ZW50T2JzZXJ2YWJsZSgpO2NvbnN0IElzZT1bInVua25vd24iLHtvdXRsaW5lOic8Y2lyY2xlIGNsYXNzPSJjZHMtaW50ZXJuYWwtZG90LTMiIGN4PSIzMS4xIiBjeT0iMTgiIHI9IjIuOSIvPjxjaXJjbGUgY2xhc3M9ImNkcy1pbnRlcm5hbC1kb3QtMiIgY3g9IjE4IiBjeT0iMTgiIHI9IjIu''@;'; + put 'put ''OSIvPjxjaXJjbGUgY2xhc3M9ImNkcy1pbnRlcm5hbC1kb3QtMSIgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiLz4nfV07Y2xhc3MgZnN7c3RhdGljIGdldCByZWdpc3RyeSgpe3JldHVybiBncyh7dW5rbm93bjpJc2VbMV19LEoxLnN0YXRlLmljb25SZWdpc3RyeSl9c3RhdGljIGFkZEljb25z''@;'; + put 'put ''KC4uLmcpe0oxLnN0YXRlLmljb25SZWdpc3RyeT1ncyhncyh7fSxKMS5zdGF0ZS5pY29uUmVnaXN0cnkpLE9iamVjdC5mcm9tRW50cmllcyhnLmZpbHRlcigoW2hdKT0+IWZzLnJlZ2lzdHJ5W2hdKSkpfXN0YXRpYyBhZGRBbGlhc2VzKC4uLmcpe2NvbnN0IGg9Zy5maWx0ZXIoKFt2XSk9PmZz''@;'; + put 'put ''LnJlZ2lzdHJ5W3ZdKS5mbGF0TWFwKChbdix5XSk9PnkubWFwKEM9PltDLGZzLnJlZ2lzdHJ5W3ZdXSkpO0oxLnN0YXRlLmljb25SZWdpc3RyeT1ncyhncyh7fSxKMS5zdGF0ZS5pY29uUmVnaXN0cnkpLE9iamVjdC5mcm9tRW50cmllcyhoKSl9c3RhdGljIGdldEljb25OYW1lRnJvbVNoYXBl''@;'; + put 'put ''KGcpe3JldHVybiBnWzBdfX1jb25zdCBJeT1bImFuZ2xlIix7b3V0bGluZTonPHBhdGggZD0iTTI5LjUyLDIyLjUyLDE4LDEwLjYsNi40OCwyMi41MmExLjcsMS43LDAsMCwwLDIuNDUsMi4zNkwxOCwxNS40OWw5LjA4LDkuMzlhMS43LDEuNywwLDAsMCwyLjQ1LTIuMzZaIi8+J31dLEtoPVsi''@;'; + put 'put ''ZXhjbGFtYXRpb24tY2lyY2xlIix7b3V0bGluZTonPHBhdGggZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz48cGF0aCBkPSJNMTgsMjAuMDdhMS4zLDEuMywwLDAsMS0xLjMtMS4z''@;'; + put 'put ''di02YTEuMywxLjMsMCwxLDEsMi42LDB2NkExLjMsMS4zLDAsMCwxLDE4LDIwLjA3WiIvPjxjaXJjbGUgY3g9IjE3Ljk1IiBjeT0iMjMuMDIiIHI9IjEuNSIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0xLjQ5LDZhMS40OSwx''@;'; + put 'put ''LjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSwwLDEsMS0zLDBaTTE4LDI1LjVhMS43MiwxLjcyLDAsMSwxLDEuNzItMS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjUuNVoiLz4nfV0sVGY9WyJjaGVjay1jaXJjbGUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwx''@;'; + put 'put ''OCwxMiwxMiwwLDAsMCwxOCw2Wm0wLDIyQTEwLDEwLDAsMSwxLDI4LDE4LDEwLDEwLDAsMCwxLDE4LDI4WiIvPjxwYXRoIGQ9Ik0xNi4zNCwyMy43NGwtNS01YTEsMSwwLDAsMSwxLjQxLTEuNDFsMy41OSwzLjU5LDYuNzgtNi43OGExLDEsMCwwLDEsMS40MSwxLjQxWiIvPicsc29saWQ6Jzxw''@;'; + put 'put ''YXRoIGQ9Ik0zMCwxOEExMiwxMiwwLDEsMSwxOCw2LDEyLDEyLDAsMCwxLDMwLDE4Wm0tNC43Ny0yLjE2YTEuNCwxLjQsMCwwLDAtMi0ybC02Ljc3LDYuNzdMMTMsMTcuMTZhMS40LDEuNCwwLDAsMC0yLDJsNS40NSw1LjQ1WiIvPid9XSxuVj1bImVsbGlwc2lzLWhvcml6b250YWwiLHtvdXRs''@;'; + put 'put ''aW5lOic8Y2lyY2xlIGN4PSIzMS4xIiBjeT0iMTgiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiLz4nLG91dGxpbmVCYWRnZWQ6JzxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45Ii8+PGNpcmNs''@;'; + put 'put ''ZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45Ii8+PGNpcmNsZSBjeD0iNC45IiBjeT0iMTgiIHI9IjIuOSIvPid9XSxDaz1bIndpbmRvdy1jbG9zZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0xOS40MSwxOGw3LjI5LTcuMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSwxMC43MSw5LjI5YTEs''@;'; + put 'put ''MSwwLDAsMC0xLjQxLDEuNDFMMTYuNTksMTgsOS4yOSwyNS4yOWExLDEsMCwxLDAsMS40MSwxLjQxTDE4LDE5LjQxbDcuMjksNy4yOWExLDEsMCwwLDAsMS40MS0xLjQxWiIvPid9XSxEc2U9WyJldmVudCIse291dGxpbmU6JzxwYXRoIGQ9Ik0xNi4xNywyNS44NiwxMC44MSwyMC41YTEsMSww''@;'; + put 'put ''LDAsMSwxLjQxLTEuNDFMMTYuMTcsMjNsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+PHBhdGggZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4''@;'; + put 'put ''LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaIi8+PHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPjxwYXRoIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEs''@;'; + put 'put ''MSwwLDAsMCwyNiwxMFoiLz48cmVjdCB4PSIxMyIgeT0iNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiLz4nLG91dGxpbmVBbGVydGVkOic8cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTEwLjgxLDIwLjVs''@;'; + put 'put ''NS4zNiw1LjM2TDI2LjIyLDE1LjgxYTEsMSwwLDAsMCwuMjMtLjQxSDIzLjhMMTYuMTcsMjNsLTMuOTQtMy45NGExLDEsMCwwLDAtMS40MSwxLjQxWiIvPjxwb2x5Z29uIHBvaW50cz0iMjEuMjkgNiAxMyA2IDEzIDggMjAuMTQgOCAyMS4yOSA2Ii8+PHBhdGggZD0iTTMzLjY4LDE1LjRIMzJW''@;'; + put 'put ''MzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+JyxvdXRsaW5lQmFkZ2VkOic8cGF0aCBkPSJNMTAuODEsMjAuNWw1LjM2LDUuMzZMMjYuMjIsMTUu''@;'; + put 'put ''ODFhMSwxLDAsMCwwLTEuNDEtMS40MUwxNi4xNywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+PHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPjxwYXRoIGQ9Ik0zMiwxMy4yMlYzMEg0VjhIN1Y2SDMu''@;'; + put 'put ''NzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIi8+PHBhdGggZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIy''@;'; + put 'put ''LjUsNloiLz4nLHNvbGlkOic8cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPjxwYXRoIGQ9Ik0zMi4y''@;'; + put 'put ''NSw2aC00VjlhMi4yLDIuMiwwLDAsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAs''@;'; + put 'put ''MCwzMi4yNSw2Wk0yNS45NCwxNi41OGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPicsc29saWRBbGVydGVkOic8cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEs''@;'; + put 'put ''MSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTMzLjY4LDE1LjRIMjYuM2ExLjM0LDEuMzQsMCwwLDEtLjM2LDEuMThsLTkuNjcsOS42N0wxMSwyMC45NEExLjM2LDEuMzYsMCwwLDEsMTIuOSwxOWwzLjM4LDMuMzgsNy03aC0xQTMuNjgsMy42OCwwLDAsMSwxOSw5''@;'; + put 'put ''Ljg5TDIxLjI5LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4WiIvPicsc29saWRCYWRnZWQ6JzxwYXRoIGQ9Ik0xMCwx''@;'; + put 'put ''MGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAs''@;'; + put 'put ''MCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVabS00LjA2LDMuMDgtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45''@;'; + put 'put ''MywxLjkzWiIvPid9XSxMc2U9WyJjYWxlbmRhciIse291dGxpbmU6JzxwYXRoIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3''@;'; + put 'put ''LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2WiIvPjxyZWN0IHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0i''@;'; + put 'put ''MjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4''@;'; + put 'put ''PSIyNiIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVj''@;'; + put 'put ''dCB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2''@;'; + put 'put ''LDEwWiIvPjxyZWN0IHg9IjEzIiB5PSI2IiB3aWR0aD0iMTAiIGhlaWdodD0iMiIvPicsb3V0bGluZUFsZXJ0ZWQ6JzxwYXRoIGQ9Ik0zMy42OCwxNS40SDMyVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVB''@;'; + put 'put ''MS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4WiIvPjxyZWN0IHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4''@;'; + put 'put ''PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0''@;'; + put 'put ''IHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDks''@;'; + put 'put ''M1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cG9seWdvbiBwb2ludHM9IjIxLjI5IDYgMTMgNiAxMyA4IDIwLjE0IDggMjEuMjkgNiIvPicsb3V0bGluZUJhZGdlZDonPHBhdGggZD0iTTMyLDEzLjIyVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43''@;'; + put 'put ''OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiLz48cmVjdCB4PSI4IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxy''@;'; + put 'put ''ZWN0IHg9IjIwIiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjI2IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMTQiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+''@;'; + put 'put ''PHJlY3QgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIi''@;'; + put 'put ''Lz48cmVjdCB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTIy''@;'; + put 'put ''LjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz4nLHNvbGlkOic8cGF0aCBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwxLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4''@;'; + put 'put ''LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYxNGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgyWm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgy''@;'; + put 'put ''Wm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJabTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAtNUgyNlYxNGgyWiIvPjxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cGF0aCBkPSJNMjYsMTBhMSwxLDAsMCwwLDEt''@;'; + put 'put ''MVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+Jyxzb2xpZEFsZXJ0ZWQ6JzxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3''@;'; + put 'put ''LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAt''@;'; + put 'put ''NUgyMFYxOWgyWm02LDVIMjZWMjRoMlptMC01SDI2VjE5aDJaIi8+PHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPicsc29saWRCYWRnZWQ6JzxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDks''@;'; + put 'put ''M1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCww''@;'; + put 'put ''LDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVaTTEwLDI2SDhWMjRoMlptMC01SDhWMTloMlptMC01SDhWMTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTAtNUgyMFYxNGgyWm02LDEw''@;'; + put 'put ''SDI2VjI0aDJabTAtNUgyNlYxOWgyWm0wLTVIMjZWMTRoMloiLz4nfV0sclY9WyJleWUtaGlkZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0yNS4xOSwyMC40QTYuNzgsNi43OCwwLDAsMCwyNS42MiwxOGE2Ljg2LDYuODYsMCwwLDAtNi44Ni02Ljg2LDYuNzksNi43OSwwLDAsMC0yLjM3LjQzTDE4''@;'; + put 'put ''LDEzLjIzYTQuNzgsNC43OCwwLDAsMSwuNzQtLjA2QTQuODcsNC44NywwLDAsMSwyMy42MiwxOGE0Ljc5LDQuNzksMCwwLDEtLjA2Ljc0WiIvPjxwYXRoIGQ9Ik0zNC4yOSwxNy41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBhMTYuODIsMTYuODIsMCwwLDAtNS4yNC44NUwxNC44NCwx''@;'; + put 'put ''MGExNC43OCwxNC43OCwwLDAsMSwzLjYzLS40N2M1LjYzLDAsMTAuNzUsMy4xNCwxMy44LDguNDNhMTcuNzUsMTcuNzUsMCwwLDEtNC4zNyw1LjFsMS40MiwxLjQyYTE5LjkzLDE5LjkzLDAsMCwwLDUtNmwuMjYtLjQ4WiIvPjxwYXRoIGQ9Ik00Ljg3LDUuNzhsNC40Niw0LjQ2YTE5LjUyLDE5''@;'; + put 'put ''LjUyLDAsMCwwLTYuNjksNy4yOUwyLjM4LDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMGExNi45MywxNi45MywwLDAsMCw3LjM3LTEuNjlsNSw1LDEuNzUtMS41LTI2LTI2Wm05Ljc1LDkuNzUsNi42NSw2LjY1YTQuODEsNC44MSwwLDAsMS0yLjUuNzJBNC44Nyw0Ljg3LDAs''@;'; + put 'put ''MCwxLDEzLjksMTgsNC44MSw0LjgxLDAsMCwxLDE0LjYyLDE1LjUzWm0tMS40NS0xLjQ1YTYuODUsNi44NSwwLDAsMCw5LjU1LDkuNTVsMS42LDEuNmExNC45MSwxNC45MSwwLDAsMS01Ljg2LDEuMmMtNS42MywwLTEwLjc1LTMuMTQtMTMuOC04LjQzYTE3LjI5LDE3LjI5LDAsMCwxLDYuMTIt''@;'; + put 'put ''Ni4zWiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xOC4zNywxMS4xN0E2Ljc5LDYuNzksMCwwLDAsMTYsMTEuNmw4LjgsOC44QTYuNzgsNi43OCwwLDAsMCwyNS4yMywxOCw2Ljg2LDYuODYsMCwwLDAsMTguMzcsMTEuMTdaIi8+PHBhdGggZD0iTTM0LjI5LDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0x''@;'; + put 'put ''MC0xNS44Mi0xMGExNi44MiwxNi44MiwwLDAsMC01LjI0Ljg1TDE0Ljg0LDEwYTE0Ljc4LDE0Ljc4LDAsMCwxLDMuNjMtLjQ3YzUuNjMsMCwxMC43NSwzLjE0LDEzLjgsOC40M2ExNy43NSwxNy43NSwwLDAsMS00LjM3LDUuMWwxLjQyLDEuNDJhMTkuOTMsMTkuOTMsMCwwLDAsNS02bC4yNi0u''@;'; + put 'put ''NDhaIi8+PHBhdGggZD0iTTQuODcsNS43OGw0LjQ2LDQuNDZhMTkuNTIsMTkuNTIsMCwwLDAtNi42OSw3LjI5TDIuMzgsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwYTE2LjkzLDE2LjkzLDAsMCwwLDcuMzctMS42OWw1LDUsMS43NS0xLjUtMjYtMjZabTguMyw4LjNhNi44''@;'; + put 'put ''NSw2Ljg1LDAsMCwwLDkuNTUsOS41NWwxLjYsMS42YTE0LjkxLDE0LjkxLDAsMCwxLTUuODYsMS4yYy01LjYzLDAtMTAuNzUtMy4xNC0xMy44LTguNDNhMTcuMjksMTcuMjksMCwwLDEsNi4xMi02LjNaIi8+J31dLE9zZT1bImV5ZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0zMy42MiwxNy41M2Mt''@;'; + put 'put ''My4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBTNS4zNCwxMS4zLDIsMTcuNTNMMS43MiwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBzMTIuNDYtMy43MiwxNS44Mi0xMGwuMjYtLjQ4Wk0xNy44LDI2LjQzQzEyLjE3LDI2LjQzLDcsMjMuMjksNCwxOGMzLTUuMjksOC4xNy04''@;'; + put 'put ''LjQzLDEzLjgtOC40M1MyOC41NCwxMi43MiwzMS41OSwxOEMyOC41NCwyMy4yOSwyMy40MiwyNi40MywxNy44LDI2LjQzWiIvPjxwYXRoIGQ9Ik0xOC4wOSwxMS4xN0E2Ljg2LDYuODYsMCwxLDAsMjUsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjA5LDExLjE3Wm0wLDExLjcyQTQuODYsNC44Niww''@;'; + put 'put ''LDEsMSwyMywxOCw0Ljg3LDQuODcsMCwwLDEsMTguMDksMjIuODlaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTMzLjYyLDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMFM1LjM0LDExLjMsMiwxNy41M0wxLjcyLDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMHMxMi40''@;'; + put 'put ''Ni0zLjcyLDE1LjgyLTEwbC4yNi0uNDhaTTE3LjgsMjYuNDNDMTIuMTcsMjYuNDMsNywyMy4yOSw0LDE4YzMtNS4yOSw4LjE3LTguNDMsMTMuOC04LjQzUzI4LjU0LDEyLjcyLDMxLjU5LDE4QzI4LjU0LDIzLjI5LDIzLjQyLDI2LjQzLDE3LjgsMjYuNDNaIi8+PGNpcmNsZSBjeD0iMTguMDki''@;'; + put 'put ''IGN5PSIxOC4wMyIgcj0iNi44NiIvPid9XSxjWD1bImVsbGlwc2lzLXZlcnRpY2FsIix7b3V0bGluZTonPGNpcmNsZSBjeD0iMTgiIGN5PSI0LjkiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45Ii8+Jyxv''@;'; + put 'put ''dXRsaW5lQmFkZ2VkOic8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45Ii8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45Ii8+PGNpcmNsZSBjeD0iMTgiIGN5PSIzMS4xIiByPSIyLjkiLz4nfV0sZlg9WyJ2aWV3LWNvbHVtbnMiLHtvdXRsaW5lOic8cGF0aCBkPSJNMzEsNUg1''@;'; + put 'put ''QTIsMiwwLDAsMCwzLDdWMjlhMiwyLDAsMCwwLDIsMkgzMWEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMxLDVaTTEzLDI5SDVWN2g4Wm0xMCwwSDE1VjdoOFoiLz4nfV0sUHNlPVsiYXJyb3ciLHtvdXRsaW5lOic8cGF0aCBkPSJNMjcuNjYsMTUuNjEsMTgsNiw4LjM0LDE1LjYxQTEsMSww''@;'; + put 'put ''LDEsMCw5Ljc1LDE3TDE3LDkuODFWMjguOTRhMSwxLDAsMSwwLDIsMFY5LjgxTDI2LjI1LDE3YTEsMSwwLDAsMCwxLjQxLTEuNDJaIi8+J31dLGhYPVsidGltZXMiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTkuNDEsMThsOC4yOS04LjI5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTgsMTYuNTksOS43''@;'; + put 'put ''MSw4LjI5QTEsMSwwLDAsMCw4LjI5LDkuNzFMMTYuNTksMTgsOC4yOSwyNi4yOWExLDEsMCwxLDAsMS40MSwxLjQxTDE4LDE5LjQxbDguMjksOC4yOWExLDEsMCwwLDAsMS40MS0xLjQxWiIvPid9XSxGc2U9WyJzdGVwLWZvcndhcmQtMiIse291dGxpbmU6JzxwYXRoIGQ9Ik03LjA4LDYuNTJh''@;'; + put 'put ''MS42OCwxLjY4LDAsMCwwLDAsMi40TDE2LjUxLDE4LDcuMTIsMjcuMDhhMS43LDEuNywwLDAsMCwyLjM2LDIuNDRoMEwyMS40LDE4LDkuNDgsNi40N0ExLjY5LDEuNjksMCwwLDAsNy4wOCw2LjUyWiIvPjxwYXRoIGQ9Ik0yNi40OSw1YTEuNywxLjcsMCwwLDAtMS43LDEuN1YyOS4zYTEuNywx''@;'; + put 'put ''LjcsMCwwLDAsMy40LDBWNi43QTEuNywxLjcsMCwwLDAsMjYuNDksNVoiLz4nfV0sZFg9WyJhbmdsZS1kb3VibGUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMjksMTkuNDFhMSwxLDAsMCwxLS43MS0uMjlMMTgsOC44Myw3LjcxLDE5LjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsNiwyOS43MSwx''@;'; + put 'put ''Ny43MUExLDEsMCwwLDEsMjksMTkuNDFaIi8+PHBhdGggZD0iTTI5LDMwLjQxYTEsMSwwLDAsMS0uNzEtLjI5TDE4LDE5LjgzLDcuNzEsMzAuMTJhMSwxLDAsMCwxLTEuNDEtMS40MUwxOCwxNywyOS43MSwyOC43MUExLDEsMCwwLDEsMjksMzAuNDFaIi8+J31dLEhzZT1bImZpbHRlci1ncmlk''@;'; + put 'put ''LWNpcmNsZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAsMCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAsMC0uMjkuN0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRBMS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEsMSwwLDAs''@;'; + put 'put ''MC0xLTFIOWExLDEsMCwwLDAtMSwxdjFhMS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4WiIvPjxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+Jyxzb2xpZDonPHBh''@;'; + put 'put ''dGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz48cGF0aCBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41''@;'; + put 'put ''LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAsMSwuMTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCwwLC4xNS0uMzVWMTFaIi8+J31dLGlWPVsiZmlsdGVyLWdyaWQiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTUsMjUuODZsMiwxVjIw''@;'; + put 'put ''LjI3YTEsMSwwLDAsMC0uMjktLjdMMTAuMjMsMTNIMjUuNzlsLTYuNDcsNi41N2ExLDEsMCwwLDAtLjI5LjdMMTksMjhsMiwxVjIwLjY4TDI3LjU4LDE0QTEuNDYsMS40NiwwLDAsMCwyOCwxM1YxMmExLDEsMCwwLDAtMS0xSDlhMSwxLDAsMCwwLTEsMXYxYTEuNDYsMS40NiwwLDAsMCwuNDIs''@;'; + put 'put ''MUwxNSwyMC42OFoiLz4nLHNvbGlkOic8cGF0aCBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAsMSwuMTgt''@;'; + put 'put ''LjM1bDcuMTItNy4yNWEuNS41LDAsMCwwLC4xNS0uMzVWMTFaIi8+J31dLHBYPVsiaW5mby1jaXJjbGUiLHtvdXRsaW5lOic8Y2lyY2xlIGN4PSIxNy45MyIgY3k9IjExLjkiIHI9IjEuNCIvPjxwYXRoIGQ9Ik0yMSwyM0gxOVYxNUgxNmExLDEsMCwwLDAsMCwyaDF2NkgxNWExLDEsMCwxLDAs''@;'; + put 'put ''MCwyaDZhMSwxLDAsMCwwLDAtMloiLz48cGF0aCBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0wLDIyQTEwLDEwLDAsMSwxLDI4LDE4LDEwLDEwLDAsMCwxLDE4LDI4WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEy''@;'; + put 'put ''LDAsMCwwLDE4LDZabS0yLDUuMTVhMiwyLDAsMSwxLDIsMkEyLDIsMCwwLDEsMTUuOSwxMS4xNVpNMjMsMjRhMSwxLDAsMCwxLTEsMUgxNWExLDEsMCwxLDEsMC0yaDJWMTdIMTZhMSwxLDAsMCwxLDAtMmg0djhoMkExLDEsMCwwLDEsMjMsMjRaIi8+J31dLFZzZT1bImV4Y2xhbWF0aW9uLXRy''@;'; + put 'put ''aWFuZ2xlIix7b3V0bGluZTonPHBhdGggZD0iTTE4LDIxLjMyYTEuMywxLjMsMCwwLDAsMS4zLTEuM1YxNGExLjMsMS4zLDAsMSwwLTIuNiwwdjZBMS4zLDEuMywwLDAsMCwxOCwyMS4zMloiLz48Y2lyY2xlIGN4PSIxNy45NSIgY3k9IjI0LjI3IiByPSIxLjUiLz48cGF0aCBkPSJNMzAuMzMs''@;'; + put 'put ''MjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWm0tMS43OCwxLjk0YTEsMSwwLDAsMS0uODYuNDlIOC4yMWExLDEsMCwwLDEtLjg4LTEuNDhMMTcuMDcsOC41NWExLDEsMCwwLDEsMS43''@;'; + put 'put ''NiwwbDkuNzQsMTcuOTRBMSwxLDAsMCwxLDI4LjU1LDI3LjQ4WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZhMywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMsMywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQuNDNaTTE2LjQ2LDEyLjc0''@;'; + put 'put ''YTEuNDksMS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEuNDksMCwxLDEtMywwWk0xOCwyNi4yNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcyQTEuNzIsMS43MiwwLDAsMSwxOCwyNi4yNVoiLz4nfV0sanNlPVsiY2lyY2xlIix7b3V0bGluZTonPHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwx''@;'; + put 'put ''LDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0WiIvPid9XSxac2U9WyJkb3QtY2lyY2xlIix7b3V0bGluZTon''@;'; + put 'put ''PHBhdGggZD0iTTE4LDExYTcsNywwLDEsMS03LDcsNyw3LDAsMCwxLDctNyIvPjxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPid9XSxnWD1bImVycm9yLXN0YW5kYXJk''@;'; + put 'put ''Iix7b3V0bGluZTonPGNpcmNsZSBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPjxwYXRoIGQ9Ik0xOCwyMi42MWExLDEsMCwwLDEtMS0xdi0xMmExLDEsMCwxLDEsMiwwdjEyQTEsMSwwLDAsMSwxOCwyMi42MVoiLz48cGF0aCBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYs''@;'; + put 'put ''MCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz4nLHNvbGlkOic8cGF0aCBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVpNMTYuNiw4LjhhMS40LDEuNCwwLDAsMSwyLjgsMHYxMmExLjQsMS40LDAsMCwx''@;'; + put 'put ''LTIuOCwwWk0xOCwyOC42YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI4LjZaIi8+J31dLEdzZT1bInN1Y2Nlc3Mtc3RhbmRhcmQiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAs''@;'; + put 'put ''MSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPjxwYXRoIGQ9Ik0yOCwxMi4xYTEsMSwwLDAsMC0xLjQxLDBMMTUuNDksMjMuMTVsLTYtNkExLDEsMCwwLDAsOCwxOC41M0wxNS40OSwyNiwyOCwxMy41MkExLDEsMCwwLDAsMjgsMTIuMVoiLz4nLHNvbGlkOic8cGF0aCBkPSJNMTgsMkEx''@;'; + put 'put ''NiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk0yOC40NSwxMi42MywxNS4zMSwyNS43Niw3LjU1LDE4YTEuNCwxLjQsMCwwLDEsMi0ybDUuNzgsNS43OEwyNi40NywxMC42NWExLjQsMS40LDAsMSwxLDIsMloiLz4nfV07Y2xhc3MgV3Nle2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5j''@;'; + put 'put ''b21wYXJlPWcsdGhpcy5rZXlTZWxlY3Rvcj1ofWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IFlzZShnLHRoaXMuY29tcGFyZSx0aGlzLmtleVNlbGVjdG9yKSl9fWNsYXNzIFlzZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKGcpLHRoaXMua2V5U2VsZWN0b3I9''@;'; + put 'put ''dix0aGlzLmhhc0tleT0hMSwiZnVuY3Rpb24iPT10eXBlb2YgaCYmKHRoaXMuY29tcGFyZT1oKX1jb21wYXJlKGcsaCl7cmV0dXJuIGc9PT1ofV9uZXh0KGcpe2xldCBoO3RyeXtjb25zdHtrZXlTZWxlY3Rvcjp5fT10aGlzO2g9eT95KGcpOmd9Y2F0Y2goeSl7cmV0dXJuIHRoaXMuZGVzdGlu''@;'; + put 'put ''YXRpb24uZXJyb3IoeSl9bGV0IHY9ITE7aWYodGhpcy5oYXNLZXkpdHJ5e2NvbnN0e2NvbXBhcmU6eX09dGhpczt2PXkodGhpcy5rZXksaCl9Y2F0Y2goeSl7cmV0dXJuIHRoaXMuZGVzdGluYXRpb24uZXJyb3IoeSl9ZWxzZSB0aGlzLmhhc0tleT0hMDt2fHwodGhpcy5rZXk9aCx0aGlzLmRl''@;'; + put 'put ''c3RpbmF0aW9uLm5leHQoZykpfX1jbGFzcyBKc2UgZXh0ZW5kcyBUZXtjb25zdHJ1Y3RvcihnLGgpe3N1cGVyKCl9c2NoZWR1bGUoZyxoPTApe3JldHVybiB0aGlzfX1jbGFzcyBBWCBleHRlbmRzIEpzZXtjb25zdHJ1Y3RvcihnLGgpe3N1cGVyKGcsaCksdGhpcy5zY2hlZHVsZXI9Zyx0aGlz''@;'; + put 'put ''Lndvcms9aCx0aGlzLnBlbmRpbmc9ITF9c2NoZWR1bGUoZyxoPTApe2lmKHRoaXMuY2xvc2VkKXJldHVybiB0aGlzO3RoaXMuc3RhdGU9Zztjb25zdCB2PXRoaXMuaWQseT10aGlzLnNjaGVkdWxlcjtyZXR1cm4gbnVsbCE9diYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZCh5LHYsaCkp''@;'; + put 'put ''LHRoaXMucGVuZGluZz0hMCx0aGlzLmRlbGF5PWgsdGhpcy5pZD10aGlzLmlkfHx0aGlzLnJlcXVlc3RBc3luY0lkKHksdGhpcy5pZCxoKSx0aGlzfXJlcXVlc3RBc3luY0lkKGcsaCx2PTApe3JldHVybiBzZXRJbnRlcnZhbChnLmZsdXNoLmJpbmQoZyx0aGlzKSx2KX1yZWN5Y2xlQXN5bmNJ''@;'; + put 'put ''ZChnLGgsdj0wKXtpZihudWxsIT09diYmdGhpcy5kZWxheT09PXYmJiExPT09dGhpcy5wZW5kaW5nKXJldHVybiBoO2NsZWFySW50ZXJ2YWwoaCl9ZXhlY3V0ZShnLGgpe2lmKHRoaXMuY2xvc2VkKXJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTt0aGlz''@;'; + put 'put ''LnBlbmRpbmc9ITE7Y29uc3Qgdj10aGlzLl9leGVjdXRlKGcsaCk7aWYodilyZXR1cm4gdjshMT09PXRoaXMucGVuZGluZyYmbnVsbCE9dGhpcy5pZCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZCh0aGlzLnNjaGVkdWxlcix0aGlzLmlkLG51bGwpKX1fZXhlY3V0ZShnLGgpe2xldCB5''@;'; + put 'put ''LHY9ITE7dHJ5e3RoaXMud29yayhnKX1jYXRjaChDKXt2PSEwLHk9ISFDJiZDfHxuZXcgRXJyb3IoQyl9aWYodilyZXR1cm4gdGhpcy51bnN1YnNjcmliZSgpLHl9X3Vuc3Vic2NyaWJlKCl7Y29uc3QgZz10aGlzLmlkLGg9dGhpcy5zY2hlZHVsZXIsdj1oLmFjdGlvbnMseT12LmluZGV4T2Yo''@;'; + put 'put ''dGhpcyk7dGhpcy53b3JrPW51bGwsdGhpcy5zdGF0ZT1udWxsLHRoaXMucGVuZGluZz0hMSx0aGlzLnNjaGVkdWxlcj1udWxsLC0xIT09eSYmdi5zcGxpY2UoeSwxKSxudWxsIT1nJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKGgsZyxudWxsKSksdGhpcy5kZWxheT1udWxsfX1sZXQg''@;'; + put 'put ''eVg9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHY9ZC5ub3cpe3RoaXMuU2NoZWR1bGVyQWN0aW9uPWgsdGhpcy5ub3c9dn1zY2hlZHVsZShoLHY9MCx5KXtyZXR1cm4gbmV3IHRoaXMuU2NoZWR1bGVyQWN0aW9uKHRoaXMsaCkuc2NoZWR1bGUoeSx2KX19cmV0dXJuIGQubm93PSgpPT5E''@;'; + put 'put ''YXRlLm5vdygpLGR9KSgpO2NsYXNzIGU4IGV4dGVuZHMgeVh7Y29uc3RydWN0b3IoZyxoPXlYLm5vdyl7c3VwZXIoZywoKT0+ZTguZGVsZWdhdGUmJmU4LmRlbGVnYXRlIT09dGhpcz9lOC5kZWxlZ2F0ZS5ub3coKTpoKCkpLHRoaXMuYWN0aW9ucz1bXSx0aGlzLmFjdGl2ZT0hMSx0aGlzLnNj''@;'; + put 'put ''aGVkdWxlZD12b2lkIDB9c2NoZWR1bGUoZyxoPTAsdil7cmV0dXJuIGU4LmRlbGVnYXRlJiZlOC5kZWxlZ2F0ZSE9PXRoaXM/ZTguZGVsZWdhdGUuc2NoZWR1bGUoZyxoLHYpOnN1cGVyLnNjaGVkdWxlKGcsaCx2KX1mbHVzaChnKXtjb25zdHthY3Rpb25zOmh9PXRoaXM7aWYodGhpcy5hY3Rp''@;'; + put 'put ''dmUpcmV0dXJuIHZvaWQgaC5wdXNoKGcpO2xldCB2O3RoaXMuYWN0aXZlPSEwO2Rve2lmKHY9Zy5leGVjdXRlKGcuc3RhdGUsZy5kZWxheSkpYnJlYWt9d2hpbGUoZz1oLnNoaWZ0KCkpO2lmKHRoaXMuYWN0aXZlPSExLHYpe2Zvcig7Zz1oLnNoaWZ0KCk7KWcudW5zdWJzY3JpYmUoKTt0aHJv''@;'; + put 'put ''dyB2fX19Y29uc3Qgb1Y9bmV3IGU4KEFYKTtmdW5jdGlvbiBrRChkLGc9b1Ype3JldHVybiBoPT5oLmxpZnQobmV3IGFWKGQsZykpfWNsYXNzIGFWe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5kdWVUaW1lPWcsdGhpcy5zY2hlZHVsZXI9aH1jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5l''@;'; + put 'put ''dyBsVihnLHRoaXMuZHVlVGltZSx0aGlzLnNjaGVkdWxlcikpfX1jbGFzcyBsViBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKGcpLHRoaXMuZHVlVGltZT1oLHRoaXMuc2NoZWR1bGVyPXYsdGhpcy5kZWJvdW5jZWRTdWJzY3JpcHRpb249bnVsbCx0aGlzLmxhc3RWYWx1ZT1u''@;'; + put 'put ''dWxsLHRoaXMuaGFzVmFsdWU9ITF9X25leHQoZyl7dGhpcy5jbGVhckRlYm91bmNlKCksdGhpcy5sYXN0VmFsdWU9Zyx0aGlzLmhhc1ZhbHVlPSEwLHRoaXMuYWRkKHRoaXMuZGVib3VuY2VkU3Vic2NyaXB0aW9uPXRoaXMuc2NoZWR1bGVyLnNjaGVkdWxlKHdYLHRoaXMuZHVlVGltZSx0aGlz''@;'; + put 'put ''KSl9X2NvbXBsZXRlKCl7dGhpcy5kZWJvdW5jZWROZXh0KCksdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfWRlYm91bmNlZE5leHQoKXtpZih0aGlzLmNsZWFyRGVib3VuY2UoKSx0aGlzLmhhc1ZhbHVlKXtjb25zdHtsYXN0VmFsdWU6Z309dGhpczt0aGlzLmxhc3RWYWx1ZT1udWxsLHRo''@;'; + put 'put ''aXMuaGFzVmFsdWU9ITEsdGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpfX1jbGVhckRlYm91bmNlKCl7Y29uc3QgZz10aGlzLmRlYm91bmNlZFN1YnNjcmlwdGlvbjtudWxsIT09ZyYmKHRoaXMucmVtb3ZlKGcpLGcudW5zdWJzY3JpYmUoKSx0aGlzLmRlYm91bmNlZFN1YnNjcmlwdGlvbj1udWxs''@;'; + put 'put ''KX19ZnVuY3Rpb24gd1goZCl7ZC5kZWJvdW5jZWROZXh0KCl9ZnVuY3Rpb24gajcoZCl7cmV0dXJuIGc9PmcubGlmdChuZXcgU0QoZCkpfWNsYXNzIFNEe2NvbnN0cnVjdG9yKGcpe3RoaXMubm90aWZpZXI9Z31jYWxsKGcsaCl7Y29uc3Qgdj1uZXcgS3NlKGcpLHk9ZXIodGhpcy5ub3RpZmll''@;'; + put 'put ''cixuZXcgeW4odikpO3JldHVybiB5JiYhdi5zZWVuVmFsdWU/KHYuYWRkKHkpLGguc3Vic2NyaWJlKHYpKTp2fX1jbGFzcyBLc2UgZXh0ZW5kcyBObntjb25zdHJ1Y3RvcihnKXtzdXBlcihnKSx0aGlzLnNlZW5WYWx1ZT0hMX1ub3RpZnlOZXh0KCl7dGhpcy5zZWVuVmFsdWU9ITAsdGhpcy5j''@;'; + put 'put ''b21wbGV0ZSgpfW5vdGlmeUNvbXBsZXRlKCl7fX1mdW5jdGlvbiB0OChkLGcsaCx2KXtyZXR1cm4gc2UoaCkmJih2PWgsaD12b2lkIDApLHY/dDgoZCxnLGgpLnBpcGUodnQoeT0+QWUoeSk/diguLi55KTp2KHkpKSk6bmV3IEYoeT0+e2JYKGQsZyxmdW5jdGlvbiBDKEkpe3kubmV4dChhcmd1''@;'; + put 'put ''bWVudHMubGVuZ3RoPjE/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTpJKX0seSxoKX0pfWZ1bmN0aW9uIGJYKGQsZyxoLHYseSl7bGV0IEM7aWYoZnVuY3Rpb24gU2soZCl7cmV0dXJuIGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLmFkZEV2ZW50TGlzdGVuZXImJiJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBkLnJlbW92ZUV2ZW50TGlzdGVuZXJ9KGQpKXtjb25zdCBJPWQ7ZC5hZGRFdmVudExpc3RlbmVyKGcsaCx5KSxDPSgpPT5JLnJlbW92ZUV2ZW50TGlzdGVuZXIoZyxoLHkpfWVsc2UgaWYoZnVuY3Rpb24ga2soZCl7cmV0dXJuIGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBk''@;'; + put 'put ''Lm9uJiYiZnVuY3Rpb24iPT10eXBlb2YgZC5vZmZ9KGQpKXtjb25zdCBJPWQ7ZC5vbihnLGgpLEM9KCk9Pkkub2ZmKGcsaCl9ZWxzZSBpZihmdW5jdGlvbiAkc2UoZCl7cmV0dXJuIGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLmFkZExpc3RlbmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgZC5yZW1v''@;'; + put 'put ''dmVMaXN0ZW5lcn0oZCkpe2NvbnN0IEk9ZDtkLmFkZExpc3RlbmVyKGcsaCksQz0oKT0+SS5yZW1vdmVMaXN0ZW5lcihnLGgpfWVsc2V7aWYoIWR8fCFkLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGV2ZW50IHRhcmdldCIpO2ZvcihsZXQgST0wLGo9ZC5sZW5ndGg7STxq''@;'; + put 'put ''O0krKyliWChkW0ldLGcsaCx2LHkpfXYuYWRkKEMpfWZ1bmN0aW9uIF9YKGQpe3JldHVybiEhZCYmKGQgaW5zdGFuY2VvZiBGfHwiZnVuY3Rpb24iPT10eXBlb2YgZC5saWZ0JiYiZnVuY3Rpb24iPT10eXBlb2YgZC5zdWJzY3JpYmUpfWNvbnN0IE1EPW5ldyBjbGFzcyBlMmUgZXh0ZW5kcyBl''@;'; + put 'put ''OHt9KGNsYXNzIHFzZSBleHRlbmRzIEFYe2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoZyxoKSx0aGlzLnNjaGVkdWxlcj1nLHRoaXMud29yaz1ofXNjaGVkdWxlKGcsaD0wKXtyZXR1cm4gaD4wP3N1cGVyLnNjaGVkdWxlKGcsaCk6KHRoaXMuZGVsYXk9aCx0aGlzLnN0YXRlPWcsdGhpcy5zY2hl''@;'; + put 'put ''ZHVsZXIuZmx1c2godGhpcyksdGhpcyl9ZXhlY3V0ZShnLGgpe3JldHVybiBoPjB8fHRoaXMuY2xvc2VkP3N1cGVyLmV4ZWN1dGUoZyxoKTp0aGlzLl9leGVjdXRlKGcsaCl9cmVxdWVzdEFzeW5jSWQoZyxoLHY9MCl7cmV0dXJuIG51bGwhPT12JiZ2PjB8fG51bGw9PT12JiZ0aGlzLmRlbGF5''@;'; + put 'put ''PjA/c3VwZXIucmVxdWVzdEFzeW5jSWQoZyxoLHYpOmcuZmx1c2godGhpcyl9fSk7Y2xhc3MgSzN7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMua2luZD1nLHRoaXMudmFsdWU9aCx0aGlzLmVycm9yPXYsdGhpcy5oYXNWYWx1ZT0iTiI9PT1nfW9ic2VydmUoZyl7c3dpdGNoKHRoaXMua2luZCl7''@;'; + put 'put ''Y2FzZSJOIjpyZXR1cm4gZy5uZXh0JiZnLm5leHQodGhpcy52YWx1ZSk7Y2FzZSJFIjpyZXR1cm4gZy5lcnJvciYmZy5lcnJvcih0aGlzLmVycm9yKTtjYXNlIkMiOnJldHVybiBnLmNvbXBsZXRlJiZnLmNvbXBsZXRlKCl9fWRvKGcsaCx2KXtzd2l0Y2godGhpcy5raW5kKXtjYXNlIk4iOnJl''@;'; + put 'put ''dHVybiBnJiZnKHRoaXMudmFsdWUpO2Nhc2UiRSI6cmV0dXJuIGgmJmgodGhpcy5lcnJvcik7Y2FzZSJDIjpyZXR1cm4gdiYmdigpfX1hY2NlcHQoZyxoLHYpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgZy5uZXh0P3RoaXMub2JzZXJ2ZShnKTp0aGlzLmRvKGcsaCx2KX10b09ic2Vy''@;'; + put 'put ''dmFibGUoKXtzd2l0Y2godGhpcy5raW5kKXtjYXNlIk4iOnJldHVybiBhYSh0aGlzLnZhbHVlKTtjYXNlIkUiOnJldHVybiBVQSh0aGlzLmVycm9yKTtjYXNlIkMiOnJldHVybiBxVCgpfXRocm93IG5ldyBFcnJvcigidW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCB2YWx1ZSIpfXN0YXRp''@;'; + put 'put ''YyBjcmVhdGVOZXh0KGcpe3JldHVybiB2b2lkIDAhPT1nP25ldyBLMygiTiIsZyk6SzMudW5kZWZpbmVkVmFsdWVOb3RpZmljYXRpb259c3RhdGljIGNyZWF0ZUVycm9yKGcpe3JldHVybiBuZXcgSzMoIkUiLHZvaWQgMCxnKX1zdGF0aWMgY3JlYXRlQ29tcGxldGUoKXtyZXR1cm4gSzMuY29t''@;'; + put 'put ''cGxldGVOb3RpZmljYXRpb259fUszLmNvbXBsZXRlTm90aWZpY2F0aW9uPW5ldyBLMygiQyIpLEszLnVuZGVmaW5lZFZhbHVlTm90aWZpY2F0aW9uPW5ldyBLMygiTiIsdm9pZCAwKTtjbGFzcyBFRCBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHY9MCl7c3VwZXIoZyksdGhpcy5zY2hlZHVs''@;'; + put 'put ''ZXI9aCx0aGlzLmRlbGF5PXZ9c3RhdGljIGRpc3BhdGNoKGcpe2NvbnN0e25vdGlmaWNhdGlvbjpoLGRlc3RpbmF0aW9uOnZ9PWc7aC5vYnNlcnZlKHYpLHRoaXMudW5zdWJzY3JpYmUoKX1zY2hlZHVsZU1lc3NhZ2UoZyl7dGhpcy5kZXN0aW5hdGlvbi5hZGQodGhpcy5zY2hlZHVsZXIuc2No''@;'; + put 'put ''ZWR1bGUoRUQuZGlzcGF0Y2gsdGhpcy5kZWxheSxuZXcgbjJlKGcsdGhpcy5kZXN0aW5hdGlvbikpKX1fbmV4dChnKXt0aGlzLnNjaGVkdWxlTWVzc2FnZShLMy5jcmVhdGVOZXh0KGcpKX1fZXJyb3IoZyl7dGhpcy5zY2hlZHVsZU1lc3NhZ2UoSzMuY3JlYXRlRXJyb3IoZykpLHRoaXMudW5z''@;'; + put 'put ''dWJzY3JpYmUoKX1fY29tcGxldGUoKXt0aGlzLnNjaGVkdWxlTWVzc2FnZShLMy5jcmVhdGVDb21wbGV0ZSgpKSx0aGlzLnVuc3Vic2NyaWJlKCl9fWNsYXNzIG4yZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMubm90aWZpY2F0aW9uPWcsdGhpcy5kZXN0aW5hdGlvbj1ofX1jbGFzcyBNayBleHRl''@;'; + put 'put ''bmRzICRle2NvbnN0cnVjdG9yKGc9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGg9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHYpe3N1cGVyKCksdGhpcy5zY2hlZHVsZXI9dix0aGlzLl9ldmVudHM9W10sdGhpcy5faW5maW5pdGVUaW1lV2luZG93PSExLHRoaXMuX2J1ZmZlclNpemU9Zzwx''@;'; + put 'put ''PzE6Zyx0aGlzLl93aW5kb3dUaW1lPWg8MT8xOmgsaD09PU51bWJlci5QT1NJVElWRV9JTkZJTklUWT8odGhpcy5faW5maW5pdGVUaW1lV2luZG93PSEwLHRoaXMubmV4dD10aGlzLm5leHRJbmZpbml0ZVRpbWVXaW5kb3cpOnRoaXMubmV4dD10aGlzLm5leHRUaW1lV2luZG93fW5leHRJbmZp''@;'; + put 'put ''bml0ZVRpbWVXaW5kb3coZyl7aWYoIXRoaXMuaXNTdG9wcGVkKXtjb25zdCBoPXRoaXMuX2V2ZW50cztoLnB1c2goZyksaC5sZW5ndGg+dGhpcy5fYnVmZmVyU2l6ZSYmaC5zaGlmdCgpfXN1cGVyLm5leHQoZyl9bmV4dFRpbWVXaW5kb3coZyl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLl9ldmVu''@;'; + put 'put ''dHMucHVzaChuZXcgcjJlKHRoaXMuX2dldE5vdygpLGcpKSx0aGlzLl90cmltQnVmZmVyVGhlbkdldEV2ZW50cygpKSxzdXBlci5uZXh0KGcpfV9zdWJzY3JpYmUoZyl7Y29uc3QgaD10aGlzLl9pbmZpbml0ZVRpbWVXaW5kb3csdj1oP3RoaXMuX2V2ZW50czp0aGlzLl90cmltQnVmZmVyVGhl''@;'; + put 'put ''bkdldEV2ZW50cygpLHk9dGhpcy5zY2hlZHVsZXIsQz12Lmxlbmd0aDtsZXQgSTtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgRGU7aWYodGhpcy5pc1N0b3BwZWR8fHRoaXMuaGFzRXJyb3I/ST1UZS5FTVBUWToodGhpcy5vYnNlcnZlcnMucHVzaChnKSxJPW5ldyBQZSh0aGlzLGcpKSx5JiZn''@;'; + put 'put ''LmFkZChnPW5ldyBFRChnLHkpKSxoKWZvcihsZXQgaj0wO2o8QyYmIWcuY2xvc2VkO2orKylnLm5leHQodltqXSk7ZWxzZSBmb3IobGV0IGo9MDtqPEMmJiFnLmNsb3NlZDtqKyspZy5uZXh0KHZbal0udmFsdWUpO3JldHVybiB0aGlzLmhhc0Vycm9yP2cuZXJyb3IodGhpcy50aHJvd25FcnJv''@;'; + put 'put ''cik6dGhpcy5pc1N0b3BwZWQmJmcuY29tcGxldGUoKSxJfV9nZXROb3coKXtyZXR1cm4odGhpcy5zY2hlZHVsZXJ8fE1EKS5ub3coKX1fdHJpbUJ1ZmZlclRoZW5HZXRFdmVudHMoKXtjb25zdCBnPXRoaXMuX2dldE5vdygpLGg9dGhpcy5fYnVmZmVyU2l6ZSx2PXRoaXMuX3dpbmRvd1RpbWUs''@;'; + put 'put ''eT10aGlzLl9ldmVudHMsQz15Lmxlbmd0aDtsZXQgST0wO2Zvcig7STxDJiYhKGcteVtJXS50aW1lPHYpOylJKys7cmV0dXJuIEM+aCYmKEk9TWF0aC5tYXgoSSxDLWgpKSxJPjAmJnkuc3BsaWNlKDAsSSkseX19Y2xhc3MgcjJle2NvbnN0cnVjdG9yKGcsaCl7dGhpcy50aW1lPWcsdGhpcy52''@;'; + put 'put ''YWx1ZT1ofX1jbGFzcyBDWHt9Y29uc3Qgbjg9IioiO2Z1bmN0aW9uICRoKGQsZyl7cmV0dXJue3R5cGU6NyxuYW1lOmQsZGVmaW5pdGlvbnM6ZyxvcHRpb25zOnt9fX1mdW5jdGlvbiBEYyhkLGc9bnVsbCl7cmV0dXJue3R5cGU6NCxzdHlsZXM6Zyx0aW1pbmdzOmR9fWZ1bmN0aW9uIEVrKGQs''@;'; + put 'put ''Zz1udWxsKXtyZXR1cm57dHlwZToyLHN0ZXBzOmQsb3B0aW9uczpnfX1mdW5jdGlvbiB5bChkKXtyZXR1cm57dHlwZTo2LHN0eWxlczpkLG9mZnNldDpudWxsfX1mdW5jdGlvbiBaNyhkLGcsaCl7cmV0dXJue3R5cGU6MCxuYW1lOmQsc3R5bGVzOmcsb3B0aW9uczpofX1mdW5jdGlvbiBvMmUo''@;'; + put 'put ''ZCl7cmV0dXJue3R5cGU6NSxzdGVwczpkfX1mdW5jdGlvbiBidShkLGcsaD1udWxsKXtyZXR1cm57dHlwZToxLGV4cHI6ZCxhbmltYXRpb246ZyxvcHRpb25zOmh9fWZ1bmN0aW9uIHNWKGQpe1Byb21pc2UucmVzb2x2ZShudWxsKS50aGVuKGQpfWNsYXNzIHhre2NvbnN0cnVjdG9yKGc9MCxo''@;'; + put 'put ''PTApe3RoaXMuX29uRG9uZUZucz1bXSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX29uRGVzdHJveUZucz1bXSx0aGlzLl9vcmlnaW5hbE9uRG9uZUZucz1bXSx0aGlzLl9vcmlnaW5hbE9uU3RhcnRGbnM9W10sdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmlu''@;'; + put 'put ''aXNoZWQ9ITEsdGhpcy5fcG9zaXRpb249MCx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMudG90YWxUaW1lPWcraH1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXMuX29uRG9uZUZucy5mb3JFYWNoKGc9PmcoKSksdGhpcy5fb25Eb25lRm5zPVtd''@;'; + put 'put ''KX1vblN0YXJ0KGcpe3RoaXMuX29yaWdpbmFsT25TdGFydEZucy5wdXNoKGcpLHRoaXMuX29uU3RhcnRGbnMucHVzaChnKX1vbkRvbmUoZyl7dGhpcy5fb3JpZ2luYWxPbkRvbmVGbnMucHVzaChnKSx0aGlzLl9vbkRvbmVGbnMucHVzaChnKX1vbkRlc3Ryb3koZyl7dGhpcy5fb25EZXN0cm95''@;'; + put 'put ''Rm5zLnB1c2goZyl9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfWluaXQoKXt9cGxheSgpe3RoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fb25TdGFydCgpLHRoaXMudHJpZ2dlck1pY3JvdGFzaygpKSx0aGlzLl9zdGFydGVkPSEwfXRyaWdnZXJNaWNyb3Rhc2soKXtzVigoKT0+''@;'; + put 'put ''dGhpcy5fb25GaW5pc2goKSl9X29uU3RhcnQoKXt0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2goZz0+ZygpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdfXBhdXNlKCl7fXJlc3RhcnQoKXt9ZmluaXNoKCl7dGhpcy5fb25GaW5pc2goKX1kZXN0cm95KCl7dGhpcy5fZGVzdHJveWVkfHwodGhpcy5fZGVz''@;'; + put 'put ''dHJveWVkPSEwLHRoaXMuaGFzU3RhcnRlZCgpfHx0aGlzLl9vblN0YXJ0KCksdGhpcy5maW5pc2goKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaChnPT5nKCkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9cmVzZXQoKXt0aGlzLl9zdGFydGVkPSExLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXMu''@;'; + put 'put ''X29uU3RhcnRGbnM9dGhpcy5fb3JpZ2luYWxPblN0YXJ0Rm5zLHRoaXMuX29uRG9uZUZucz10aGlzLl9vcmlnaW5hbE9uRG9uZUZuc31zZXRQb3NpdGlvbihnKXt0aGlzLl9wb3NpdGlvbj10aGlzLnRvdGFsVGltZT9nKnRoaXMudG90YWxUaW1lOjF9Z2V0UG9zaXRpb24oKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy50b3RhbFRpbWU/dGhpcy5fcG9zaXRpb24vdGhpcy50b3RhbFRpbWU6MX10cmlnZ2VyQ2FsbGJhY2soZyl7Y29uc3QgaD0ic3RhcnQiPT1nP3RoaXMuX29uU3RhcnRGbnM6dGhpcy5fb25Eb25lRm5zO2guZm9yRWFjaCh2PT52KCkpLGgubGVuZ3RoPTB9fWNsYXNzIHo3e2NvbnN0cnVjdG9y''@;'; + put 'put ''KGcpe3RoaXMuX29uRG9uZUZucz1bXSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX29uRGVzdHJveUZucz1bXSx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMudG90YWxUaW1lPTAsdGhpcy5w''@;'; + put 'put ''bGF5ZXJzPWc7bGV0IGg9MCx2PTAseT0wO2NvbnN0IEM9dGhpcy5wbGF5ZXJzLmxlbmd0aDswPT1DP3NWKCgpPT50aGlzLl9vbkZpbmlzaCgpKTp0aGlzLnBsYXllcnMuZm9yRWFjaChJPT57SS5vbkRvbmUoKCk9PnsrK2g9PUMmJnRoaXMuX29uRmluaXNoKCl9KSxJLm9uRGVzdHJveSgoKT0+''@;'; + put 'put ''eysrdj09QyYmdGhpcy5fb25EZXN0cm95KCl9KSxJLm9uU3RhcnQoKCk9PnsrK3k9PUMmJnRoaXMuX29uU3RhcnQoKX0pfSksdGhpcy50b3RhbFRpbWU9dGhpcy5wbGF5ZXJzLnJlZHVjZSgoSSxqKT0+TWF0aC5tYXgoSSxqLnRvdGFsVGltZSksMCl9X29uRmluaXNoKCl7dGhpcy5fZmluaXNo''@;'; + put 'put ''ZWR8fCh0aGlzLl9maW5pc2hlZD0hMCx0aGlzLl9vbkRvbmVGbnMuZm9yRWFjaChnPT5nKCkpLHRoaXMuX29uRG9uZUZucz1bXSl9aW5pdCgpe3RoaXMucGxheWVycy5mb3JFYWNoKGc9PmcuaW5pdCgpKX1vblN0YXJ0KGcpe3RoaXMuX29uU3RhcnRGbnMucHVzaChnKX1fb25TdGFydCgpe3Ro''@;'; + put 'put ''aXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fc3RhcnRlZD0hMCx0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2goZz0+ZygpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdKX1vbkRvbmUoZyl7dGhpcy5fb25Eb25lRm5zLnB1c2goZyl9b25EZXN0cm95KGcpe3RoaXMuX29uRGVzdHJveUZucy5wdXNoKGcpfWhh''@;'; + put 'put ''c1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhcnRlZH1wbGF5KCl7dGhpcy5wYXJlbnRQbGF5ZXJ8fHRoaXMuaW5pdCgpLHRoaXMuX29uU3RhcnQoKSx0aGlzLnBsYXllcnMuZm9yRWFjaChnPT5nLnBsYXkoKSl9cGF1c2UoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChnPT5nLnBhdXNlKCkpfXJl''@;'; + put 'put ''c3RhcnQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChnPT5nLnJlc3RhcnQoKSl9ZmluaXNoKCl7dGhpcy5fb25GaW5pc2goKSx0aGlzLnBsYXllcnMuZm9yRWFjaChnPT5nLmZpbmlzaCgpKX1kZXN0cm95KCl7dGhpcy5fb25EZXN0cm95KCl9X29uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZHx8''@;'; + put 'put ''KHRoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLl9vbkZpbmlzaCgpLHRoaXMucGxheWVycy5mb3JFYWNoKGc9PmcuZGVzdHJveSgpKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaChnPT5nKCkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9cmVzZXQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChnPT5n''@;'; + put 'put ''LnJlc2V0KCkpLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9zdGFydGVkPSExfXNldFBvc2l0aW9uKGcpe2NvbnN0IGg9Zyp0aGlzLnRvdGFsVGltZTt0aGlzLnBsYXllcnMuZm9yRWFjaCh2PT57Y29uc3QgeT12LnRvdGFsVGltZT9NYXRoLm1pbigxLGgvdi50''@;'; + put 'put ''b3RhbFRpbWUpOjE7di5zZXRQb3NpdGlvbih5KX0pfWdldFBvc2l0aW9uKCl7Y29uc3QgZz10aGlzLnBsYXllcnMucmVkdWNlKChoLHYpPT5udWxsPT09aHx8di50b3RhbFRpbWU+aC50b3RhbFRpbWU/djpoLG51bGwpO3JldHVybiBudWxsIT1nP2cuZ2V0UG9zaXRpb24oKTowfWJlZm9yZURl''@;'; + put 'put ''c3Ryb3koKXt0aGlzLnBsYXllcnMuZm9yRWFjaChnPT57Zy5iZWZvcmVEZXN0cm95JiZnLmJlZm9yZURlc3Ryb3koKX0pfXRyaWdnZXJDYWxsYmFjayhnKXtjb25zdCBoPSJzdGFydCI9PWc/dGhpcy5fb25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7aC5mb3JFYWNoKHY9PnYoKSksaC5sZW5n''@;'; + put 'put ''dGg9MH19ZnVuY3Rpb24gVGsoZCxnKXtyZXR1cm4gbmV3IEYoaD0+e2NvbnN0IHY9ZC5sZW5ndGg7aWYoMD09PXYpcmV0dXJuIHZvaWQgaC5jb21wbGV0ZSgpO2NvbnN0IHk9bmV3IEFycmF5KHYpO2xldCBDPTAsST0wO2ZvcihsZXQgaj0wO2o8djtqKyspe2NvbnN0IHVlPWRuKGRbal0pO2xl''@;'; + put 'put ''dCBfZT0hMTtoLmFkZCh1ZS5zdWJzY3JpYmUoe25leHQ6QmU9PntfZXx8KF9lPSEwLEkrKykseVtqXT1CZX0sZXJyb3I6QmU9PmguZXJyb3IoQmUpLGNvbXBsZXRlOigpPT57QysrLChDPT09dnx8IV9lKSYmKEk9PT12JiZoLm5leHQoZz9nLnJlZHVjZSgoQmUsTmUsS2UpPT4oQmVbTmVdPXlb''@;'; + put 'put ''S2VdLEJlKSx7fSk6eSksaC5jb21wbGV0ZSgpKX19KSl9fSl9bGV0IGtYPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLl9yZW5kZXJlcj1oLHRoaXMuX2VsZW1lbnRSZWY9dix0aGlzLm9uQ2hhbmdlPXk9Pnt9LHRoaXMub25Ub3VjaGVkPSgpPT57fX1zZXRQcm9wZXJ0eSho''@;'; + put 'put ''LHYpe3RoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxoLHYpfXJlZ2lzdGVyT25Ub3VjaGVkKGgpe3RoaXMub25Ub3VjaGVkPWh9cmVnaXN0ZXJPbkNoYW5nZShoKXt0aGlzLm9uQ2hhbmdlPWh9c2V0RGlzYWJsZWRTdGF0ZShoKXt0aGlz''@;'; + put 'put ''LnNldFByb3BlcnR5KCJkaXNhYmxlZCIsaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KEdhKSxYdChibykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkfSksZH0pKCksRzc9KCgpPT57Y2xhc3MgZCBleHRlbmRzIGtYe31yZXR1cm4gZC5cdTAy''@;'; + put 'put ''NzVmYWM9ZnVuY3Rpb24oKXtsZXQgZztyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuKGd8fChnPWZsKGQpKSkodnx8ZCl9fSgpLGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsZmVhdHVyZXM6W0RvXX0pLGR9KSgpO2NvbnN0IGdwPW5ldyB6ZSgiTmdWYWx1ZUFjY2Vzc29yIiksZjJlPXtwcm92aWRl''@;'; + put 'put ''OmdwLHVzZUV4aXN0aW5nOl9uKCgpPT5JZiksbXVsdGk6ITB9O2xldCBJZj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgRzd7d3JpdGVWYWx1ZShoKXt0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIixoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IGc7cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''KHYpe3JldHVybihnfHwoZz1mbChkKSkpKHZ8fGQpfX0oKSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJjaGVja2JveCIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJmb3JtQ29udHJvbCIsIiJdLFsi''@;'; + put 'put ''aW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmWW4oImNoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25DaGFuZ2UoQy50YXJnZXQuY2hlY2tlZCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vblRv''@;'; + put 'put ''dWNoZWQoKX0pfSxmZWF0dXJlczpbaG8oW2YyZV0pLERvXX0pLGR9KSgpO2NvbnN0IFNYPXtwcm92aWRlOmdwLHVzZUV4aXN0aW5nOl9uKCgpPT5tMSksbXVsdGk6ITB9LGgyZT1uZXcgemUoIkNvbXBvc2l0aW9uRXZlbnRNb2RlIik7bGV0IG0xPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBrWHtj''@;'; + put 'put ''b25zdHJ1Y3RvcihoLHYseSl7c3VwZXIoaCx2KSx0aGlzLl9jb21wb3NpdGlvbk1vZGU9eSx0aGlzLl9jb21wb3Npbmc9ITEsbnVsbD09dGhpcy5fY29tcG9zaXRpb25Nb2RlJiYodGhpcy5fY29tcG9zaXRpb25Nb2RlPSFmdW5jdGlvbiBNWCgpe2NvbnN0IGQ9V2QoKT9XZCgpLmdldFVzZXJB''@;'; + put 'put ''Z2VudCgpOiIiO3JldHVybi9hbmRyb2lkIChcZCspLy50ZXN0KGQudG9Mb3dlckNhc2UoKSl9KCkpfXdyaXRlVmFsdWUoaCl7dGhpcy5zZXRQcm9wZXJ0eSgidmFsdWUiLG51bGw9PWg/IiI6aCl9X2hhbmRsZUlucHV0KGgpeyghdGhpcy5fY29tcG9zaXRpb25Nb2RlfHx0aGlzLl9jb21wb3Np''@;'; + put 'put ''dGlvbk1vZGUmJiF0aGlzLl9jb21wb3NpbmcpJiZ0aGlzLm9uQ2hhbmdlKGgpfV9jb21wb3NpdGlvblN0YXJ0KCl7dGhpcy5fY29tcG9zaW5nPSEwfV9jb21wb3NpdGlvbkVuZChoKXt0aGlzLl9jb21wb3Npbmc9ITEsdGhpcy5fY29tcG9zaXRpb25Nb2RlJiZ0aGlzLm9uQ2hhbmdlKGgpfX1y''@;'; + put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChHYSksWHQoYm8pLFh0KGgyZSw4KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImlucHV0IiwiZm9ybUNvbnRyb2xOYW1lIiwiIiwzLCJ0eXBlIiwiY2hlY2tib3giXSxbInRleHRh''@;'; + put 'put ''cmVhIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJpbnB1dCIsImZvcm1Db250cm9sIiwiIiwzLCJ0eXBlIiwiY2hlY2tib3giXSxbInRleHRhcmVhIiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwibmdNb2RlbCIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyJ0ZXh0YXJlYSIsIm5nTW9k''@;'; + put 'put ''ZWwiLCIiXSxbIiIsIm5nRGVmYXVsdENvbnRyb2wiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZZbigiaW5wdXQiLGZ1bmN0aW9uKEMpe3JldHVybiB2Ll9oYW5kbGVJbnB1dChDLnRhcmdldC52YWx1ZSl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vblRvdWNo''@;'; + put 'put ''ZWQoKX0pKCJjb21wb3NpdGlvbnN0YXJ0IixmdW5jdGlvbigpe3JldHVybiB2Ll9jb21wb3NpdGlvblN0YXJ0KCl9KSgiY29tcG9zaXRpb25lbmQiLGZ1bmN0aW9uKEMpe3JldHVybiB2Ll9jb21wb3NpdGlvbkVuZChDLnRhcmdldC52YWx1ZSl9KX0sZmVhdHVyZXM6W2hvKFtTWF0pLERvXX0p''@;'; + put 'put ''LGR9KSgpO2NvbnN0IEtjPW5ldyB6ZSgiTmdWYWxpZGF0b3JzIiksaGc9bmV3IHplKCJOZ0FzeW5jVmFsaWRhdG9ycyIpO2Z1bmN0aW9uIElYKGQpe3JldHVybiBudWxsIT1kfWZ1bmN0aW9uIGRWKGQpe3JldHVybiBWbShkKT9kbihkKTpkfWZ1bmN0aW9uIHBWKGQpe2xldCBnPXt9O3JldHVy''@;'; + put 'put ''biBkLmZvckVhY2goaD0+e2c9bnVsbCE9aD9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZyksaCk6Z30pLDA9PT1PYmplY3Qua2V5cyhnKS5sZW5ndGg/bnVsbDpnfWZ1bmN0aW9uIEx5KGQsZyl7cmV0dXJuIGcubWFwKGg9PmgoZCkpfWZ1bmN0aW9uIGdWKGQpe3JldHVybiBkLm1h''@;'; + put 'put ''cChnPT5mdW5jdGlvbiB4RChkKXtyZXR1cm4hZC52YWxpZGF0ZX0oZyk/ZzpoPT5nLnZhbGlkYXRlKGgpKX1mdW5jdGlvbiBtVihkKXtyZXR1cm4gbnVsbCE9ZD9mdW5jdGlvbiBEWChkKXtpZighZClyZXR1cm4gbnVsbDtjb25zdCBnPWQuZmlsdGVyKElYKTtyZXR1cm4gMD09Zy5sZW5ndGg/''@;'; + put 'put ''bnVsbDpmdW5jdGlvbihoKXtyZXR1cm4gcFYoTHkoaCxnKSl9fShnVihkKSk6bnVsbH1mdW5jdGlvbiBEayhkKXtyZXR1cm4gbnVsbCE9ZD9mdW5jdGlvbiB2VihkKXtpZighZClyZXR1cm4gbnVsbDtjb25zdCBnPWQuZmlsdGVyKElYKTtyZXR1cm4gMD09Zy5sZW5ndGg/bnVsbDpmdW5jdGlv''@;'; + put 'put ''bihoKXtyZXR1cm4gZnVuY3Rpb24gYzJlKC4uLmQpe2lmKDE9PT1kLmxlbmd0aCl7Y29uc3QgZz1kWzBdO2lmKEFlKGcpKXJldHVybiBUayhnLG51bGwpO2lmKGtlKGcpJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoZyk9PT1PYmplY3QucHJvdG90eXBlKXtjb25zdCBoPU9iamVjdC5rZXlzKGcp''@;'; + put 'put ''O3JldHVybiBUayhoLm1hcCh2PT5nW3ZdKSxoKX19aWYoImZ1bmN0aW9uIj09dHlwZW9mIGRbZC5sZW5ndGgtMV0pe2NvbnN0IGc9ZC5wb3AoKTtyZXR1cm4gVGsoZD0xPT09ZC5sZW5ndGgmJkFlKGRbMF0pP2RbMF06ZCxudWxsKS5waXBlKHZ0KGg9PmcoLi4uaCkpKX1yZXR1cm4gVGsoZCxu''@;'; + put 'put ''dWxsKX0oTHkoaCxnKS5tYXAoZFYpKS5waXBlKHZ0KHBWKSl9fShnVihkKSk6bnVsbH1mdW5jdGlvbiBMWChkLGcpe3JldHVybiBudWxsPT09ZD9bZ106QXJyYXkuaXNBcnJheShkKT9bLi4uZCxnXTpbZCxnXX1mdW5jdGlvbiBBVihkKXtyZXR1cm4gZD9BcnJheS5pc0FycmF5KGQpP2Q6W2Rd''@;'; + put 'put ''OltdfWZ1bmN0aW9uIFREKGQsZyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZCk/ZC5pbmNsdWRlcyhnKTpkPT09Z31mdW5jdGlvbiBpOChkLGcpe2NvbnN0IGg9QVYoZyk7cmV0dXJuIEFWKGQpLmZvckVhY2goeT0+e1REKGgseSl8fGgucHVzaCh5KX0pLGh9ZnVuY3Rpb24gQlgoZCxnKXtyZXR1''@;'; + put 'put ''cm4gQVYoZykuZmlsdGVyKGg9PiFURChkLGgpKX1jbGFzcyBvOHtjb25zdHJ1Y3Rvcigpe3RoaXMuX3Jhd1ZhbGlkYXRvcnM9W10sdGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPVtdLHRoaXMuX29uRGVzdHJveUNhbGxiYWNrcz1bXX1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5jb250cm9sP3Ro''@;'; + put 'put ''aXMuY29udHJvbC52YWx1ZTpudWxsfWdldCB2YWxpZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnZhbGlkOm51bGx9Z2V0IGludmFsaWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5pbnZhbGlkOm51bGx9Z2V0IHBlbmRpbmcoKXtyZXR1cm4gdGhpcy5j''@;'; + put 'put ''b250cm9sP3RoaXMuY29udHJvbC5wZW5kaW5nOm51bGx9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZGlzYWJsZWQ6bnVsbH1nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmVuYWJsZWQ6bnVsbH1nZXQgZXJyb3Jz''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZXJyb3JzOm51bGx9Z2V0IHByaXN0aW5lKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wucHJpc3RpbmU6bnVsbH1nZXQgZGlydHkoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5kaXJ0eTpudWxs''@;'; + put 'put ''fWdldCB0b3VjaGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wudG91Y2hlZDpudWxsfWdldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5zdGF0dXM6bnVsbH1nZXQgdW50b3VjaGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRy''@;'; + put 'put ''b2wudW50b3VjaGVkOm51bGx9Z2V0IHN0YXR1c0NoYW5nZXMoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzOm51bGx9Z2V0IHZhbHVlQ2hhbmdlcygpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlczpudWxsfWdldCBw''@;'; + put 'put ''YXRoKCl7cmV0dXJuIG51bGx9X3NldFZhbGlkYXRvcnMoZyl7dGhpcy5fcmF3VmFsaWRhdG9ycz1nfHxbXSx0aGlzLl9jb21wb3NlZFZhbGlkYXRvckZuPW1WKHRoaXMuX3Jhd1ZhbGlkYXRvcnMpfV9zZXRBc3luY1ZhbGlkYXRvcnMoZyl7dGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPWd8fFtd''@;'; + put 'put ''LHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1Eayh0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpfWdldCB2YWxpZGF0b3IoKXtyZXR1cm4gdGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbnx8bnVsbH1nZXQgYXN5bmNWYWxpZGF0b3IoKXtyZXR1cm4gdGhpcy5fY29tcG9zZWRBc3luY1Zh''@;'; + put 'put ''bGlkYXRvckZufHxudWxsfV9yZWdpc3Rlck9uRGVzdHJveShnKXt0aGlzLl9vbkRlc3Ryb3lDYWxsYmFja3MucHVzaChnKX1faW52b2tlT25EZXN0cm95Q2FsbGJhY2tzKCl7dGhpcy5fb25EZXN0cm95Q2FsbGJhY2tzLmZvckVhY2goZz0+ZygpKSx0aGlzLl9vbkRlc3Ryb3lDYWxsYmFja3M9''@;'; + put 'put ''W119cmVzZXQoZyl7dGhpcy5jb250cm9sJiZ0aGlzLmNvbnRyb2wucmVzZXQoZyl9aGFzRXJyb3IoZyxoKXtyZXR1cm4hIXRoaXMuY29udHJvbCYmdGhpcy5jb250cm9sLmhhc0Vycm9yKGcsaCl9Z2V0RXJyb3IoZyxoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5nZXRFcnJv''@;'; + put 'put ''cihnLGgpOm51bGx9fWNsYXNzIERmIGV4dGVuZHMgbzh7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3BhcmVudD1udWxsLHRoaXMubmFtZT1udWxsLHRoaXMudmFsdWVBY2Nlc3Nvcj1udWxsfX1jbGFzcyBMZiBleHRlbmRzIG84e2dldCBmb3JtRGlyZWN0aXZlKCl7''@;'; + put 'put ''cmV0dXJuIG51bGx9Z2V0IHBhdGgoKXtyZXR1cm4gbnVsbH19Y2xhc3MgSUR7Y29uc3RydWN0b3IoZyl7dGhpcy5fY2Q9Z31nZXQgaXNUb3VjaGVkKCl7dmFyIGcsaDtyZXR1cm4hKG51bGw9PT0oaD1udWxsPT09KGc9dGhpcy5fY2QpfHx2b2lkIDA9PT1nP3ZvaWQgMDpnLmNvbnRyb2wpfHx2''@;'; + put 'put ''b2lkIDA9PT1ofHwhaC50b3VjaGVkKX1nZXQgaXNVbnRvdWNoZWQoKXt2YXIgZyxoO3JldHVybiEobnVsbD09PShoPW51bGw9PT0oZz10aGlzLl9jZCl8fHZvaWQgMD09PWc/dm9pZCAwOmcuY29udHJvbCl8fHZvaWQgMD09PWh8fCFoLnVudG91Y2hlZCl9Z2V0IGlzUHJpc3RpbmUoKXt2YXIg''@;'; + put 'put ''ZyxoO3JldHVybiEobnVsbD09PShoPW51bGw9PT0oZz10aGlzLl9jZCl8fHZvaWQgMD09PWc/dm9pZCAwOmcuY29udHJvbCl8fHZvaWQgMD09PWh8fCFoLnByaXN0aW5lKX1nZXQgaXNEaXJ0eSgpe3ZhciBnLGg7cmV0dXJuIShudWxsPT09KGg9bnVsbD09PShnPXRoaXMuX2NkKXx8dm9pZCAw''@;'; + put 'put ''PT09Zz92b2lkIDA6Zy5jb250cm9sKXx8dm9pZCAwPT09aHx8IWguZGlydHkpfWdldCBpc1ZhbGlkKCl7dmFyIGcsaDtyZXR1cm4hKG51bGw9PT0oaD1udWxsPT09KGc9dGhpcy5fY2QpfHx2b2lkIDA9PT1nP3ZvaWQgMDpnLmNvbnRyb2wpfHx2b2lkIDA9PT1ofHwhaC52YWxpZCl9Z2V0IGlz''@;'; + put 'put ''SW52YWxpZCgpe3ZhciBnLGg7cmV0dXJuIShudWxsPT09KGg9bnVsbD09PShnPXRoaXMuX2NkKXx8dm9pZCAwPT09Zz92b2lkIDA6Zy5jb250cm9sKXx8dm9pZCAwPT09aHx8IWguaW52YWxpZCl9Z2V0IGlzUGVuZGluZygpe3ZhciBnLGg7cmV0dXJuIShudWxsPT09KGg9bnVsbD09PShnPXRo''@;'; + put 'put ''aXMuX2NkKXx8dm9pZCAwPT09Zz92b2lkIDA6Zy5jb250cm9sKXx8dm9pZCAwPT09aHx8IWgucGVuZGluZyl9Z2V0IGlzU3VibWl0dGVkKCl7dmFyIGc7cmV0dXJuIShudWxsPT09KGc9dGhpcy5fY2QpfHx2b2lkIDA9PT1nfHwhZy5zdWJtaXR0ZWQpfX1sZXQgRXM9KCgpPT57Y2xhc3MgZCBl''@;'; + put 'put ''eHRlbmRzIElEe2NvbnN0cnVjdG9yKGgpe3N1cGVyKGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChEZiwyKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiIiwibmdNb2Rl''@;'; + put 'put ''bCIsIiJdLFsiIiwiZm9ybUNvbnRyb2wiLCIiXV0saG9zdFZhcnM6MTQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgibmctdW50b3VjaGVkIix2LmlzVW50b3VjaGVkKSgibmctdG91Y2hlZCIsdi5pc1RvdWNoZWQpKCJuZy1wcmlzdGluZSIsdi5pc1ByaXN0aW5lKSgibmct''@;'; + put 'put ''ZGlydHkiLHYuaXNEaXJ0eSkoIm5nLXZhbGlkIix2LmlzVmFsaWQpKCJuZy1pbnZhbGlkIix2LmlzSW52YWxpZCkoIm5nLXBlbmRpbmciLHYuaXNQZW5kaW5nKX0sZmVhdHVyZXM6W0RvXX0pLGR9KSgpLGRnPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBJRHtjb25zdHJ1Y3RvcihoKXtzdXBlciho''@;'; + put 'put ''KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoTGYsMTApKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiZm9ybUdyb3VwTmFtZSIsIiJdLFsiIiwiZm9ybUFycmF5TmFtZSIsIiJdLFsiIiwibmdNb2RlbEdyb3VwIiwi''@;'; + put 'put ''Il0sWyIiLCJmb3JtR3JvdXAiLCIiXSxbImZvcm0iLDMsIm5nTm9Gb3JtIiwiIl0sWyIiLCJuZ0Zvcm0iLCIiXV0saG9zdFZhcnM6MTYsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgibmctdW50b3VjaGVkIix2LmlzVW50b3VjaGVkKSgibmctdG91Y2hlZCIsdi5pc1RvdWNo''@;'; + put 'put ''ZWQpKCJuZy1wcmlzdGluZSIsdi5pc1ByaXN0aW5lKSgibmctZGlydHkiLHYuaXNEaXJ0eSkoIm5nLXZhbGlkIix2LmlzVmFsaWQpKCJuZy1pbnZhbGlkIix2LmlzSW52YWxpZCkoIm5nLXBlbmRpbmciLHYuaXNQZW5kaW5nKSgibmctc3VibWl0dGVkIix2LmlzU3VibWl0dGVkKX0sZmVhdHVy''@;'; + put 'put ''ZXM6W0RvXX0pLGR9KSgpO2NvbnN0IFJ5PSJWQUxJRCIsT0Q9IklOVkFMSUQiLEJ5PSJQRU5ESU5HIixMaz0iRElTQUJMRUQiO2Z1bmN0aW9uIF9WKGQpe3JldHVybihPayhkKT9kLnZhbGlkYXRvcnM6ZCl8fG51bGx9ZnVuY3Rpb24gQ1YoZCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZCk/bVYo''@;'; + put 'put ''ZCk6ZHx8bnVsbH1mdW5jdGlvbiBSRChkLGcpe3JldHVybihPayhnKT9nLmFzeW5jVmFsaWRhdG9yczpkKXx8bnVsbH1mdW5jdGlvbiBrVihkKXtyZXR1cm4gQXJyYXkuaXNBcnJheShkKT9EayhkKTpkfHxudWxsfWZ1bmN0aW9uIE9rKGQpe3JldHVybiBudWxsIT1kJiYhQXJyYXkuaXNBcnJh''@;'; + put 'put ''eShkKSYmIm9iamVjdCI9PXR5cGVvZiBkfWNsYXNzIE5Ye2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5fcGVuZGluZ0RpcnR5PSExLHRoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSx0aGlzLl9wZW5kaW5nVG91Y2hlZD0hMSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2U9KCk9Pnt9''@;'; + put 'put ''LHRoaXMuX3BhcmVudD1udWxsLHRoaXMucHJpc3RpbmU9ITAsdGhpcy50b3VjaGVkPSExLHRoaXMuX29uRGlzYWJsZWRDaGFuZ2U9W10sdGhpcy5fcmF3VmFsaWRhdG9ycz1nLHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz1oLHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49Q1YodGhpcy5fcmF3''@;'; + put 'put ''VmFsaWRhdG9ycyksdGhpcy5fY29tcG9zZWRBc3luY1ZhbGlkYXRvckZuPWtWKHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyl9Z2V0IHZhbGlkYXRvcigpe3JldHVybiB0aGlzLl9jb21wb3NlZFZhbGlkYXRvckZufXNldCB2YWxpZGF0b3IoZyl7dGhpcy5fcmF3VmFsaWRhdG9ycz10aGlzLl9j''@;'; + put 'put ''b21wb3NlZFZhbGlkYXRvckZuPWd9Z2V0IGFzeW5jVmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbn1zZXQgYXN5bmNWYWxpZGF0b3IoZyl7dGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPXRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1nfWdldCBw''@;'; + put 'put ''YXJlbnQoKXtyZXR1cm4gdGhpcy5fcGFyZW50fWdldCB2YWxpZCgpe3JldHVybiB0aGlzLnN0YXR1cz09PVJ5fWdldCBpbnZhbGlkKCl7cmV0dXJuIHRoaXMuc3RhdHVzPT09T0R9Z2V0IHBlbmRpbmcoKXtyZXR1cm4gdGhpcy5zdGF0dXM9PUJ5fWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlz''@;'; + put 'put ''LnN0YXR1cz09PUxrfWdldCBlbmFibGVkKCl7cmV0dXJuIHRoaXMuc3RhdHVzIT09TGt9Z2V0IGRpcnR5KCl7cmV0dXJuIXRoaXMucHJpc3RpbmV9Z2V0IHVudG91Y2hlZCgpe3JldHVybiF0aGlzLnRvdWNoZWR9Z2V0IHVwZGF0ZU9uKCl7cmV0dXJuIHRoaXMuX3VwZGF0ZU9uP3RoaXMuX3Vw''@;'; + put 'put ''ZGF0ZU9uOnRoaXMucGFyZW50P3RoaXMucGFyZW50LnVwZGF0ZU9uOiJjaGFuZ2UifXNldFZhbGlkYXRvcnMoZyl7dGhpcy5fcmF3VmFsaWRhdG9ycz1nLHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49Q1YoZyl9c2V0QXN5bmNWYWxpZGF0b3JzKGcpe3RoaXMuX3Jhd0FzeW5jVmFsaWRhdG9y''@;'; + put 'put ''cz1nLHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1rVihnKX1hZGRWYWxpZGF0b3JzKGcpe3RoaXMuc2V0VmFsaWRhdG9ycyhpOChnLHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1hZGRBc3luY1ZhbGlkYXRvcnMoZyl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoaTgoZyx0aGlzLl9yYXdB''@;'; + put 'put ''c3luY1ZhbGlkYXRvcnMpKX1yZW1vdmVWYWxpZGF0b3JzKGcpe3RoaXMuc2V0VmFsaWRhdG9ycyhCWChnLHRoaXMuX3Jhd1ZhbGlkYXRvcnMpKX1yZW1vdmVBc3luY1ZhbGlkYXRvcnMoZyl7dGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoQlgoZyx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1o''@;'; + put 'put ''YXNWYWxpZGF0b3IoZyl7cmV0dXJuIFREKHRoaXMuX3Jhd1ZhbGlkYXRvcnMsZyl9aGFzQXN5bmNWYWxpZGF0b3IoZyl7cmV0dXJuIFREKHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyxnKX1jbGVhclZhbGlkYXRvcnMoKXt0aGlzLnZhbGlkYXRvcj1udWxsfWNsZWFyQXN5bmNWYWxpZGF0b3Jz''@;'; + put 'put ''KCl7dGhpcy5hc3luY1ZhbGlkYXRvcj1udWxsfW1hcmtBc1RvdWNoZWQoZz17fSl7dGhpcy50b3VjaGVkPSEwLHRoaXMuX3BhcmVudCYmIWcub25seVNlbGYmJnRoaXMuX3BhcmVudC5tYXJrQXNUb3VjaGVkKGcpfW1hcmtBbGxBc1RvdWNoZWQoKXt0aGlzLm1hcmtBc1RvdWNoZWQoe29ubHlT''@;'; + put 'put ''ZWxmOiEwfSksdGhpcy5fZm9yRWFjaENoaWxkKGc9PmcubWFya0FsbEFzVG91Y2hlZCgpKX1tYXJrQXNVbnRvdWNoZWQoZz17fSl7dGhpcy50b3VjaGVkPSExLHRoaXMuX3BlbmRpbmdUb3VjaGVkPSExLHRoaXMuX2ZvckVhY2hDaGlsZChoPT57aC5tYXJrQXNVbnRvdWNoZWQoe29ubHlTZWxm''@;'; + put 'put ''OiEwfSl9KSx0aGlzLl9wYXJlbnQmJiFnLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVRvdWNoZWQoZyl9bWFya0FzRGlydHkoZz17fSl7dGhpcy5wcmlzdGluZT0hMSx0aGlzLl9wYXJlbnQmJiFnLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQubWFya0FzRGlydHkoZyl9bWFya0FzUHJp''@;'; + put 'put ''c3RpbmUoZz17fSl7dGhpcy5wcmlzdGluZT0hMCx0aGlzLl9wZW5kaW5nRGlydHk9ITEsdGhpcy5fZm9yRWFjaENoaWxkKGg9PntoLm1hcmtBc1ByaXN0aW5lKHtvbmx5U2VsZjohMH0pfSksdGhpcy5fcGFyZW50JiYhZy5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVQcmlzdGluZShn''@;'; + put 'put ''KX1tYXJrQXNQZW5kaW5nKGc9e30pe3RoaXMuc3RhdHVzPUJ5LCExIT09Zy5lbWl0RXZlbnQmJnRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSx0aGlzLl9wYXJlbnQmJiFnLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQubWFya0FzUGVuZGluZyhnKX1kaXNhYmxlKGc9e30pe2Nv''@;'; + put 'put ''bnN0IGg9dGhpcy5fcGFyZW50TWFya2VkRGlydHkoZy5vbmx5U2VsZik7dGhpcy5zdGF0dXM9TGssdGhpcy5lcnJvcnM9bnVsbCx0aGlzLl9mb3JFYWNoQ2hpbGQodj0+e3YuZGlzYWJsZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse29ubHlTZWxmOiEwfSkpfSksdGhpcy5f''@;'; + put 'put ''dXBkYXRlVmFsdWUoKSwhMSE9PWcuZW1pdEV2ZW50JiYodGhpcy52YWx1ZUNoYW5nZXMuZW1pdCh0aGlzLnZhbHVlKSx0aGlzLnN0YXR1c0NoYW5nZXMuZW1pdCh0aGlzLnN0YXR1cykpLHRoaXMuX3VwZGF0ZUFuY2VzdG9ycyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse3Nr''@;'; + put 'put ''aXBQcmlzdGluZUNoZWNrOmh9KSksdGhpcy5fb25EaXNhYmxlZENoYW5nZS5mb3JFYWNoKHY9PnYoITApKX1lbmFibGUoZz17fSl7Y29uc3QgaD10aGlzLl9wYXJlbnRNYXJrZWREaXJ0eShnLm9ubHlTZWxmKTt0aGlzLnN0YXR1cz1SeSx0aGlzLl9mb3JFYWNoQ2hpbGQodj0+e3YuZW5hYmxl''@;'; + put 'put ''KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7b25seVNlbGY6ITB9KSl9KSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwLGVtaXRFdmVudDpnLmVtaXRFdmVudH0pLHRoaXMuX3VwZGF0ZUFuY2VzdG9ycyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3Np''@;'; + put 'put ''Z24oe30sZykse3NraXBQcmlzdGluZUNoZWNrOmh9KSksdGhpcy5fb25EaXNhYmxlZENoYW5nZS5mb3JFYWNoKHY9PnYoITEpKX1fdXBkYXRlQW5jZXN0b3JzKGcpe3RoaXMuX3BhcmVudCYmIWcub25seVNlbGYmJih0aGlzLl9wYXJlbnQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShnKSxnLnNr''@;'; + put 'put ''aXBQcmlzdGluZUNoZWNrfHx0aGlzLl9wYXJlbnQuX3VwZGF0ZVByaXN0aW5lKCksdGhpcy5fcGFyZW50Ll91cGRhdGVUb3VjaGVkKCkpfXNldFBhcmVudChnKXt0aGlzLl9wYXJlbnQ9Z31nZXRSYXdWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoZz17''@;'; + put 'put ''fSl7dGhpcy5fc2V0SW5pdGlhbFN0YXR1cygpLHRoaXMuX3VwZGF0ZVZhbHVlKCksdGhpcy5lbmFibGVkJiYodGhpcy5fY2FuY2VsRXhpc3RpbmdTdWJzY3JpcHRpb24oKSx0aGlzLmVycm9ycz10aGlzLl9ydW5WYWxpZGF0b3IoKSx0aGlzLnN0YXR1cz10aGlzLl9jYWxjdWxhdGVTdGF0dXMo''@;'; + put 'put ''KSwodGhpcy5zdGF0dXM9PT1SeXx8dGhpcy5zdGF0dXM9PT1CeSkmJnRoaXMuX3J1bkFzeW5jVmFsaWRhdG9yKGcuZW1pdEV2ZW50KSksITEhPT1nLmVtaXRFdmVudCYmKHRoaXMudmFsdWVDaGFuZ2VzLmVtaXQodGhpcy52YWx1ZSksdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQodGhpcy5zdGF0''@;'; + put 'put ''dXMpKSx0aGlzLl9wYXJlbnQmJiFnLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShnKX1fdXBkYXRlVHJlZVZhbGlkaXR5KGc9e2VtaXRFdmVudDohMH0pe3RoaXMuX2ZvckVhY2hDaGlsZChoPT5oLl91cGRhdGVUcmVlVmFsaWRpdHkoZykpLHRoaXMudXBk''@;'; + put 'put ''YXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OmcuZW1pdEV2ZW50fSl9X3NldEluaXRpYWxTdGF0dXMoKXt0aGlzLnN0YXR1cz10aGlzLl9hbGxDb250cm9sc0Rpc2FibGVkKCk/TGs6Unl9X3J1blZhbGlkYXRvcigpe3JldHVybiB0aGlzLnZhbGlkYXRvcj90aGlz''@;'; + put 'put ''LnZhbGlkYXRvcih0aGlzKTpudWxsfV9ydW5Bc3luY1ZhbGlkYXRvcihnKXtpZih0aGlzLmFzeW5jVmFsaWRhdG9yKXt0aGlzLnN0YXR1cz1CeSx0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITA7Y29uc3QgaD1kVih0aGlzLmFzeW5jVmFsaWRhdG9yKHRoaXMpKTt0aGlzLl9h''@;'; + put 'put ''c3luY1ZhbGlkYXRpb25TdWJzY3JpcHRpb249aC5zdWJzY3JpYmUodj0+e3RoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSx0aGlzLnNldEVycm9ycyh2LHtlbWl0RXZlbnQ6Z30pfSl9fV9jYW5jZWxFeGlzdGluZ1N1YnNjcmlwdGlvbigpe3RoaXMuX2FzeW5jVmFsaWRhdGlv''@;'; + put 'put ''blN1YnNjcmlwdGlvbiYmKHRoaXMuX2FzeW5jVmFsaWRhdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSl9c2V0RXJyb3JzKGcsaD17fSl7dGhpcy5lcnJvcnM9Zyx0aGlzLl91cGRhdGVDb250cm9sc0Vycm9ycyghMSE9''@;'; + put 'put ''PWguZW1pdEV2ZW50KX1nZXQoZyl7bGV0IGg9ZztyZXR1cm4gbnVsbD09aHx8KEFycmF5LmlzQXJyYXkoaCl8fChoPWguc3BsaXQoIi4iKSksMD09PWgubGVuZ3RoKT9udWxsOmgucmVkdWNlKCh2LHkpPT52JiZ2Ll9maW5kKHkpLHRoaXMpfWdldEVycm9yKGcsaCl7Y29uc3Qgdj1oP3RoaXMu''@;'; + put 'put ''Z2V0KGgpOnRoaXM7cmV0dXJuIHYmJnYuZXJyb3JzP3YuZXJyb3JzW2ddOm51bGx9aGFzRXJyb3IoZyxoKXtyZXR1cm4hIXRoaXMuZ2V0RXJyb3IoZyxoKX1nZXQgcm9vdCgpe2xldCBnPXRoaXM7Zm9yKDtnLl9wYXJlbnQ7KWc9Zy5fcGFyZW50O3JldHVybiBnfV91cGRhdGVDb250cm9sc0Vy''@;'; + put 'put ''cm9ycyhnKXt0aGlzLnN0YXR1cz10aGlzLl9jYWxjdWxhdGVTdGF0dXMoKSxnJiZ0aGlzLnN0YXR1c0NoYW5nZXMuZW1pdCh0aGlzLnN0YXR1cyksdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZUNvbnRyb2xzRXJyb3JzKGcpfV9pbml0T2JzZXJ2YWJsZXMoKXt0aGlzLnZhbHVl''@;'; + put 'put ''Q2hhbmdlcz1uZXcgYXIsdGhpcy5zdGF0dXNDaGFuZ2VzPW5ldyBhcn1fY2FsY3VsYXRlU3RhdHVzKCl7cmV0dXJuIHRoaXMuX2FsbENvbnRyb2xzRGlzYWJsZWQoKT9Mazp0aGlzLmVycm9ycz9PRDp0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3J8fHRoaXMuX2FueUNvbnRyb2xz''@;'; + put 'put ''SGF2ZVN0YXR1cyhCeSk/Qnk6dGhpcy5fYW55Q29udHJvbHNIYXZlU3RhdHVzKE9EKT9PRDpSeX1fYW55Q29udHJvbHNIYXZlU3RhdHVzKGcpe3JldHVybiB0aGlzLl9hbnlDb250cm9scyhoPT5oLnN0YXR1cz09PWcpfV9hbnlDb250cm9sc0RpcnR5KCl7cmV0dXJuIHRoaXMuX2FueUNvbnRy''@;'; + put 'put ''b2xzKGc9PmcuZGlydHkpfV9hbnlDb250cm9sc1RvdWNoZWQoKXtyZXR1cm4gdGhpcy5fYW55Q29udHJvbHMoZz0+Zy50b3VjaGVkKX1fdXBkYXRlUHJpc3RpbmUoZz17fSl7dGhpcy5wcmlzdGluZT0hdGhpcy5fYW55Q29udHJvbHNEaXJ0eSgpLHRoaXMuX3BhcmVudCYmIWcub25seVNlbGYm''@;'; + put 'put ''JnRoaXMuX3BhcmVudC5fdXBkYXRlUHJpc3RpbmUoZyl9X3VwZGF0ZVRvdWNoZWQoZz17fSl7dGhpcy50b3VjaGVkPXRoaXMuX2FueUNvbnRyb2xzVG91Y2hlZCgpLHRoaXMuX3BhcmVudCYmIWcub25seVNlbGYmJnRoaXMuX3BhcmVudC5fdXBkYXRlVG91Y2hlZChnKX1fcmVnaXN0ZXJPbkNv''@;'; + put 'put ''bGxlY3Rpb25DaGFuZ2UoZyl7dGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlPWd9X3NldFVwZGF0ZVN0cmF0ZWd5KGcpe09rKGcpJiZudWxsIT1nLnVwZGF0ZU9uJiYodGhpcy5fdXBkYXRlT249Zy51cGRhdGVPbil9X3BhcmVudE1hcmtlZERpcnR5KGcpe3JldHVybiFnJiYhKCF0aGlzLl9wYXJl''@;'; + put 'put ''bnR8fCF0aGlzLl9wYXJlbnQuZGlydHkpJiYhdGhpcy5fcGFyZW50Ll9hbnlDb250cm9sc0RpcnR5KCl9X2ZpbmQoZyl7cmV0dXJuIG51bGx9fWNsYXNzIFBEIGV4dGVuZHMgTlh7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKF9WKGgpLFJEKHYsaCkpLHRoaXMuY29udHJvbHM9Zyx0aGlzLl9p''@;'; + put 'put ''bml0T2JzZXJ2YWJsZXMoKSx0aGlzLl9zZXRVcGRhdGVTdHJhdGVneShoKSx0aGlzLl9zZXRVcENvbnRyb2xzKCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ISF0aGlzLmFzeW5jVmFsaWRhdG9yfSl9cmVnaXN0ZXJDb250cm9sKGcsaCl7cmV0''@;'; + put 'put ''dXJuIHRoaXMuY29udHJvbHNbZ10/dGhpcy5jb250cm9sc1tnXToodGhpcy5jb250cm9sc1tnXT1oLGguc2V0UGFyZW50KHRoaXMpLGguX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSksaCl9YWRkQ29udHJvbChnLGgsdj17fSl7dGhpcy5yZWdp''@;'; + put 'put ''c3RlckNvbnRyb2woZyxoKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDp2LmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfXJlbW92ZUNvbnRyb2woZyxoPXt9KXt0aGlzLmNvbnRyb2xzW2ddJiZ0aGlzLmNvbnRyb2xzW2ddLl9yZWdpc3Rlck9u''@;'; + put 'put ''Q29sbGVjdGlvbkNoYW5nZSgoKT0+e30pLGRlbGV0ZSB0aGlzLmNvbnRyb2xzW2ddLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OmguZW1pdEV2ZW50fSksdGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlKCl9c2V0Q29udHJvbChnLGgsdj17fSl7dGhpcy5jb250cm9sc1tn''@;'; + put 'put ''XSYmdGhpcy5jb250cm9sc1tnXS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UoKCk9Pnt9KSxkZWxldGUgdGhpcy5jb250cm9sc1tnXSxoJiZ0aGlzLnJlZ2lzdGVyQ29udHJvbChnLGgpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OnYuZW1pdEV2ZW50fSksdGhp''@;'; + put 'put ''cy5fb25Db2xsZWN0aW9uQ2hhbmdlKCl9Y29udGFpbnMoZyl7cmV0dXJuIHRoaXMuY29udHJvbHMuaGFzT3duUHJvcGVydHkoZykmJnRoaXMuY29udHJvbHNbZ10uZW5hYmxlZH1zZXRWYWx1ZShnLGg9e30peyhmdW5jdGlvbiBCRChkLGcsaCl7ZC5fZm9yRWFjaENoaWxkKCh2LHkpPT57aWYo''@;'; + put 'put ''dm9pZCAwPT09aFt5XSl0aHJvdyBuZXcgZW4oMTAwMiwiIil9KX0pKHRoaXMsMCxnKSxPYmplY3Qua2V5cyhnKS5mb3JFYWNoKHY9PnsoZnVuY3Rpb24gSFgoZCxnLGgpe2NvbnN0IHY9ZC5jb250cm9scztpZighKGc/T2JqZWN0LmtleXModik6dikubGVuZ3RoKXRocm93IG5ldyBlbigxZTMs''@;'; + put 'put ''IiIpO2lmKCF2W2hdKXRocm93IG5ldyBlbigxMDAxLCIiKX0pKHRoaXMsITAsdiksdGhpcy5jb250cm9sc1t2XS5zZXRWYWx1ZShnW3ZdLHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6aC5lbWl0RXZlbnR9KX0pLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShoKX1wYXRjaFZhbHVlKGcsaD17''@;'; + put 'put ''fSl7bnVsbCE9ZyYmKE9iamVjdC5rZXlzKGcpLmZvckVhY2godj0+e2NvbnN0IHk9dGhpcy5jb250cm9sc1t2XTt5JiZ5LnBhdGNoVmFsdWUoZ1t2XSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmguZW1pdEV2ZW50fSl9KSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoaCkpfXJlc2V0KGc9''@;'; + put 'put ''e30saD17fSl7dGhpcy5fZm9yRWFjaENoaWxkKCh2LHkpPT57di5yZXNldChnW3ldLHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6aC5lbWl0RXZlbnR9KX0pLHRoaXMuX3VwZGF0ZVByaXN0aW5lKGgpLHRoaXMuX3VwZGF0ZVRvdWNoZWQoaCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGgp''@;'; + put 'put ''fWdldFJhd1ZhbHVlKCl7cmV0dXJuIHRoaXMuX3JlZHVjZUNoaWxkcmVuKHt9LChnLGgsdik9PihnW3ZdPWguZ2V0UmF3VmFsdWUoKSxnKSl9X3N5bmNQZW5kaW5nQ29udHJvbHMoKXtsZXQgZz10aGlzLl9yZWR1Y2VDaGlsZHJlbighMSwoaCx2KT0+ISF2Ll9zeW5jUGVuZGluZ0NvbnRyb2xz''@;'; + put 'put ''KCl8fGgpO3JldHVybiBnJiZ0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwfSksZ31fZm9yRWFjaENoaWxkKGcpe09iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpLmZvckVhY2goaD0+e2NvbnN0IHY9dGhpcy5jb250cm9sc1toXTt2JiZnKHYsaCl9KX1fc2V0VXBDb250''@;'; + put 'put ''cm9scygpe3RoaXMuX2ZvckVhY2hDaGlsZChnPT57Zy5zZXRQYXJlbnQodGhpcyksZy5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UodGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlKX0pfV91cGRhdGVWYWx1ZSgpe3RoaXMudmFsdWU9dGhpcy5fcmVkdWNlVmFsdWUoKX1fYW55Q29udHJvbHMo''@;'; + put 'put ''Zyl7Zm9yKGNvbnN0W2gsdl1vZiBPYmplY3QuZW50cmllcyh0aGlzLmNvbnRyb2xzKSlpZih0aGlzLmNvbnRhaW5zKGgpJiZnKHYpKXJldHVybiEwO3JldHVybiExfV9yZWR1Y2VWYWx1ZSgpe3JldHVybiB0aGlzLl9yZWR1Y2VDaGlsZHJlbih7fSwoaCx2LHkpPT4oKHYuZW5hYmxlZHx8dGhp''@;'; + put 'put ''cy5kaXNhYmxlZCkmJihoW3ldPXYudmFsdWUpLGgpKX1fcmVkdWNlQ2hpbGRyZW4oZyxoKXtsZXQgdj1nO3JldHVybiB0aGlzLl9mb3JFYWNoQ2hpbGQoKHksQyk9Pnt2PWgodix5LEMpfSksdn1fYWxsQ29udHJvbHNEaXNhYmxlZCgpe2Zvcihjb25zdCBnIG9mIE9iamVjdC5rZXlzKHRoaXMu''@;'; + put 'put ''Y29udHJvbHMpKWlmKHRoaXMuY29udHJvbHNbZ10uZW5hYmxlZClyZXR1cm4hMTtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5jb250cm9scykubGVuZ3RoPjB8fHRoaXMuZGlzYWJsZWR9X2ZpbmQoZyl7cmV0dXJuIHRoaXMuY29udHJvbHMuaGFzT3duUHJvcGVydHkoZyk/dGhpcy5jb250cm9s''@;'; + put 'put ''c1tnXTpudWxsfX1mdW5jdGlvbiBQeShkLGcpe3ZhciBoLHY7QmsoZCxnKSxnLnZhbHVlQWNjZXNzb3Iud3JpdGVWYWx1ZShkLnZhbHVlKSxkLmRpc2FibGVkJiYobnVsbD09PSh2PShoPWcudmFsdWVBY2Nlc3Nvcikuc2V0RGlzYWJsZWRTdGF0ZSl8fHZvaWQgMD09PXZ8fHYuY2FsbChoLCEw''@;'; + put 'put ''KSksZnVuY3Rpb24gdzJlKGQsZyl7Zy52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25DaGFuZ2UoaD0+e2QuX3BlbmRpbmdWYWx1ZT1oLGQuX3BlbmRpbmdDaGFuZ2U9ITAsZC5fcGVuZGluZ0RpcnR5PSEwLCJjaGFuZ2UiPT09ZC51cGRhdGVPbiYmWlgoZCxnKX0pfShkLGcpLGZ1bmN0aW9uIF8y''@;'; + put 'put ''ZShkLGcpe2NvbnN0IGg9KHYseSk9PntnLnZhbHVlQWNjZXNzb3Iud3JpdGVWYWx1ZSh2KSx5JiZnLnZpZXdUb01vZGVsVXBkYXRlKHYpfTtkLnJlZ2lzdGVyT25DaGFuZ2UoaCksZy5fcmVnaXN0ZXJPbkRlc3Ryb3koKCk9PntkLl91bnJlZ2lzdGVyT25DaGFuZ2UoaCl9KX0oZCxnKSxmdW5j''@;'; + put 'put ''dGlvbiBiMmUoZCxnKXtnLnZhbHVlQWNjZXNzb3IucmVnaXN0ZXJPblRvdWNoZWQoKCk9PntkLl9wZW5kaW5nVG91Y2hlZD0hMCwiYmx1ciI9PT1kLnVwZGF0ZU9uJiZkLl9wZW5kaW5nQ2hhbmdlJiZaWChkLGcpLCJzdWJtaXQiIT09ZC51cGRhdGVPbiYmZC5tYXJrQXNUb3VjaGVkKCl9KX0o''@;'; + put 'put ''ZCxnKSxmdW5jdGlvbiBqWChkLGcpe2lmKGcudmFsdWVBY2Nlc3Nvci5zZXREaXNhYmxlZFN0YXRlKXtjb25zdCBoPXY9PntnLnZhbHVlQWNjZXNzb3Iuc2V0RGlzYWJsZWRTdGF0ZSh2KX07ZC5yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UoaCksZy5fcmVnaXN0ZXJPbkRlc3Ryb3koKCk9Pntk''@;'; + put 'put ''Ll91bnJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZShoKX0pfX0oZCxnKX1mdW5jdGlvbiBVNyhkLGcpe2QuZm9yRWFjaChoPT57aC5yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlJiZoLnJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZyl9KX1mdW5jdGlvbiBCayhkLGcpe2NvbnN0IGg9ZnVuY3Rp''@;'; + put 'put ''b24gT1goZCl7cmV0dXJuIGQuX3Jhd1ZhbGlkYXRvcnN9KGQpO251bGwhPT1nLnZhbGlkYXRvcj9kLnNldFZhbGlkYXRvcnMoTFgoaCxnLnZhbGlkYXRvcikpOiJmdW5jdGlvbiI9PXR5cGVvZiBoJiZkLnNldFZhbGlkYXRvcnMoW2hdKTtjb25zdCB2PWZ1bmN0aW9uIFJYKGQpe3JldHVybiBk''@;'; + put 'put ''Ll9yYXdBc3luY1ZhbGlkYXRvcnN9KGQpO251bGwhPT1nLmFzeW5jVmFsaWRhdG9yP2Quc2V0QXN5bmNWYWxpZGF0b3JzKExYKHYsZy5hc3luY1ZhbGlkYXRvcikpOiJmdW5jdGlvbiI9PXR5cGVvZiB2JiZkLnNldEFzeW5jVmFsaWRhdG9ycyhbdl0pO2NvbnN0IHk9KCk9PmQudXBkYXRlVmFs''@;'; + put 'put ''dWVBbmRWYWxpZGl0eSgpO1U3KGcuX3Jhd1ZhbGlkYXRvcnMseSksVTcoZy5fcmF3QXN5bmNWYWxpZGF0b3JzLHkpfWZ1bmN0aW9uIFpYKGQsZyl7ZC5fcGVuZGluZ0RpcnR5JiZkLm1hcmtBc0RpcnR5KCksZC5zZXRWYWx1ZShkLl9wZW5kaW5nVmFsdWUse2VtaXRNb2RlbFRvVmlld0NoYW5n''@;'; + put 'put ''ZTohMX0pLGcudmlld1RvTW9kZWxVcGRhdGUoZC5fcGVuZGluZ1ZhbHVlKSxkLl9wZW5kaW5nQ2hhbmdlPSExfWNvbnN0IFdYPXtwcm92aWRlOkxmLHVzZUV4aXN0aW5nOl9uKCgpPT5MYyl9LE55PSgoKT0+UHJvbWlzZS5yZXNvbHZlKG51bGwpKSgpO2xldCBMYz0oKCk9PntjbGFzcyBkIGV4''@;'; + put 'put ''dGVuZHMgTGZ7Y29uc3RydWN0b3IoaCx2KXtzdXBlcigpLHRoaXMuc3VibWl0dGVkPSExLHRoaXMuX2RpcmVjdGl2ZXM9bmV3IFNldCx0aGlzLm5nU3VibWl0PW5ldyBhcix0aGlzLmZvcm09bmV3IFBEKHt9LG1WKGgpLERrKHYpKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9zZXRVcGRhdGVT''@;'; + put 'put ''dHJhdGVneSgpfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXN9Z2V0IGNvbnRyb2woKXtyZXR1cm4gdGhpcy5mb3JtfWdldCBwYXRoKCl7cmV0dXJuW119Z2V0IGNvbnRyb2xzKCl7cmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc31hZGRDb250cm9sKGgpe055LnRoZW4oKCk9Pntjb25z''@;'; + put 'put ''dCB2PXRoaXMuX2ZpbmRDb250YWluZXIoaC5wYXRoKTtoLmNvbnRyb2w9di5yZWdpc3RlckNvbnRyb2woaC5uYW1lLGguY29udHJvbCksUHkoaC5jb250cm9sLGgpLGguY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KSx0aGlzLl9kaXJlY3RpdmVzLmFkZCho''@;'; + put 'put ''KX0pfWdldENvbnRyb2woaCl7cmV0dXJuIHRoaXMuZm9ybS5nZXQoaC5wYXRoKX1yZW1vdmVDb250cm9sKGgpe055LnRoZW4oKCk9Pntjb25zdCB2PXRoaXMuX2ZpbmRDb250YWluZXIoaC5wYXRoKTt2JiZ2LnJlbW92ZUNvbnRyb2woaC5uYW1lKSx0aGlzLl9kaXJlY3RpdmVzLmRlbGV0ZSho''@;'; + put 'put ''KX0pfWFkZEZvcm1Hcm91cChoKXtOeS50aGVuKCgpPT57Y29uc3Qgdj10aGlzLl9maW5kQ29udGFpbmVyKGgucGF0aCkseT1uZXcgUEQoe30pOyhmdW5jdGlvbiB6WChkLGcpe0JrKGQsZyl9KSh5LGgpLHYucmVnaXN0ZXJDb250cm9sKGgubmFtZSx5KSx5LnVwZGF0ZVZhbHVlQW5kVmFsaWRp''@;'; + put 'put ''dHkoe2VtaXRFdmVudDohMX0pfSl9cmVtb3ZlRm9ybUdyb3VwKGgpe055LnRoZW4oKCk9Pntjb25zdCB2PXRoaXMuX2ZpbmRDb250YWluZXIoaC5wYXRoKTt2JiZ2LnJlbW92ZUNvbnRyb2woaC5uYW1lKX0pfWdldEZvcm1Hcm91cChoKXtyZXR1cm4gdGhpcy5mb3JtLmdldChoLnBhdGgpfXVw''@;'; + put 'put ''ZGF0ZU1vZGVsKGgsdil7TnkudGhlbigoKT0+e3RoaXMuZm9ybS5nZXQoaC5wYXRoKS5zZXRWYWx1ZSh2KX0pfXNldFZhbHVlKGgpe3RoaXMuY29udHJvbC5zZXRWYWx1ZShoKX1vblN1Ym1pdChoKXtyZXR1cm4gdGhpcy5zdWJtaXR0ZWQ9ITAsZnVuY3Rpb24geFYoZCxnKXtkLl9zeW5jUGVu''@;'; + put 'put ''ZGluZ0NvbnRyb2xzKCksZy5mb3JFYWNoKGg9Pntjb25zdCB2PWguY29udHJvbDsic3VibWl0Ij09PXYudXBkYXRlT24mJnYuX3BlbmRpbmdDaGFuZ2UmJihoLnZpZXdUb01vZGVsVXBkYXRlKHYuX3BlbmRpbmdWYWx1ZSksdi5fcGVuZGluZ0NoYW5nZT0hMSl9KX0odGhpcy5mb3JtLHRoaXMu''@;'; + put 'put ''X2RpcmVjdGl2ZXMpLHRoaXMubmdTdWJtaXQuZW1pdChoKSwhMX1vblJlc2V0KCl7dGhpcy5yZXNldEZvcm0oKX1yZXNldEZvcm0oaCl7dGhpcy5mb3JtLnJlc2V0KGgpLHRoaXMuc3VibWl0dGVkPSExfV9zZXRVcGRhdGVTdHJhdGVneSgpe3RoaXMub3B0aW9ucyYmbnVsbCE9dGhpcy5vcHRp''@;'; + put 'put ''b25zLnVwZGF0ZU9uJiYodGhpcy5mb3JtLl91cGRhdGVPbj10aGlzLm9wdGlvbnMudXBkYXRlT24pfV9maW5kQ29udGFpbmVyKGgpe3JldHVybiBoLnBvcCgpLGgubGVuZ3RoP3RoaXMuZm9ybS5nZXQoaCk6dGhpcy5mb3JtfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJu''@;'; + put 'put ''IG5ldyhofHxkKShYdChLYywxMCksWHQoaGcsMTApKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siZm9ybSIsMywibmdOb0Zvcm0iLCIiLDMsImZvcm1Hcm91cCIsIiJdLFsibmctZm9ybSJdLFsiIiwibmdGb3JtIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYp''@;'; + put 'put ''ezEmaCYmWW4oInN1Ym1pdCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25TdWJtaXQoQyl9KSgicmVzZXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHYub25SZXNldCgpfSl9LGlucHV0czp7b3B0aW9uczpbIm5nRm9ybU9wdGlvbnMiLCJvcHRpb25zIl19LG91dHB1dHM6e25nU3VibWl0OiJuZ1N1Ym1p''@;'; + put 'put ''dCJ9LGV4cG9ydEFzOlsibmdGb3JtIl0sZmVhdHVyZXM6W2hvKFtXWF0pLERvXX0pLGR9KSgpO2Z1bmN0aW9uIFRWKGQsZyl7Y29uc3QgaD1kLmluZGV4T2YoZyk7aD4tMSYmZC5zcGxpY2UoaCwxKX1mdW5jdGlvbiBQayhkKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGQmJm51bGwhPT1kJiYy''@;'; + put 'put ''PT09T2JqZWN0LmtleXMoZCkubGVuZ3RoJiYidmFsdWUiaW4gZCYmImRpc2FibGVkImluIGR9Y29uc3QgRms9Y2xhc3MgZXh0ZW5kcyBOWHtjb25zdHJ1Y3RvcihnPW51bGwsaCx2KXtzdXBlcihfVihoKSxSRCh2LGgpKSx0aGlzLmRlZmF1bHRWYWx1ZT1udWxsLHRoaXMuX29uQ2hhbmdlPVtd''@;'; + put 'put ''LHRoaXMuX3BlbmRpbmdDaGFuZ2U9ITEsdGhpcy5fYXBwbHlGb3JtU3RhdGUoZyksdGhpcy5fc2V0VXBkYXRlU3RyYXRlZ3koaCksdGhpcy5faW5pdE9ic2VydmFibGVzKCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ISF0aGlzLmFzeW5jVmFs''@;'; + put 'put ''aWRhdG9yfSksT2soaCkmJihoLm5vbk51bGxhYmxlfHxoLmluaXRpYWxWYWx1ZUlzRGVmYXVsdCkmJih0aGlzLmRlZmF1bHRWYWx1ZT1QayhnKT9nLnZhbHVlOmcpfXNldFZhbHVlKGcsaD17fSl7dGhpcy52YWx1ZT10aGlzLl9wZW5kaW5nVmFsdWU9Zyx0aGlzLl9vbkNoYW5nZS5sZW5ndGgm''@;'; + put 'put ''JiExIT09aC5lbWl0TW9kZWxUb1ZpZXdDaGFuZ2UmJnRoaXMuX29uQ2hhbmdlLmZvckVhY2godj0+dih0aGlzLnZhbHVlLCExIT09aC5lbWl0Vmlld1RvTW9kZWxDaGFuZ2UpKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoaCl9cGF0Y2hWYWx1ZShnLGg9e30pe3RoaXMuc2V0VmFsdWUo''@;'; + put 'put ''ZyxoKX1yZXNldChnPXRoaXMuZGVmYXVsdFZhbHVlLGg9e30pe3RoaXMuX2FwcGx5Rm9ybVN0YXRlKGcpLHRoaXMubWFya0FzUHJpc3RpbmUoaCksdGhpcy5tYXJrQXNVbnRvdWNoZWQoaCksdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlLGgpLHRoaXMuX3BlbmRpbmdDaGFuZ2U9ITF9X3VwZGF0''@;'; + put 'put ''ZVZhbHVlKCl7fV9hbnlDb250cm9scyhnKXtyZXR1cm4hMX1fYWxsQ29udHJvbHNEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfXJlZ2lzdGVyT25DaGFuZ2UoZyl7dGhpcy5fb25DaGFuZ2UucHVzaChnKX1fdW5yZWdpc3Rlck9uQ2hhbmdlKGcpe1RWKHRoaXMuX29uQ2hhbmdlLGcp''@;'; + put 'put ''fXJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZShnKXt0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLnB1c2goZyl9X3VucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKGcpe1RWKHRoaXMuX29uRGlzYWJsZWRDaGFuZ2UsZyl9X2ZvckVhY2hDaGlsZChnKXt9X3N5bmNQZW5kaW5nQ29udHJvbHMoKXtyZXR1''@;'; + put 'put ''cm4hKCJzdWJtaXQiIT09dGhpcy51cGRhdGVPbnx8KHRoaXMuX3BlbmRpbmdEaXJ0eSYmdGhpcy5tYXJrQXNEaXJ0eSgpLHRoaXMuX3BlbmRpbmdUb3VjaGVkJiZ0aGlzLm1hcmtBc1RvdWNoZWQoKSwhdGhpcy5fcGVuZGluZ0NoYW5nZSl8fCh0aGlzLnNldFZhbHVlKHRoaXMuX3BlbmRpbmdW''@;'; + put 'put ''YWx1ZSx7b25seVNlbGY6ITAsZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiExfSksMCkpfV9hcHBseUZvcm1TdGF0ZShnKXtQayhnKT8odGhpcy52YWx1ZT10aGlzLl9wZW5kaW5nVmFsdWU9Zy52YWx1ZSxnLmRpc2FibGVkP3RoaXMuZGlzYWJsZSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OiExfSk6''@;'; + put 'put ''dGhpcy5lbmFibGUoe29ubHlTZWxmOiEwLGVtaXRFdmVudDohMX0pKTp0aGlzLnZhbHVlPXRoaXMuX3BlbmRpbmdWYWx1ZT1nfX0sTTJlPXtwcm92aWRlOkRmLHVzZUV4aXN0aW5nOl9uKCgpPT54cyl9LFE3PSgoKT0+UHJvbWlzZS5yZXNvbHZlKG51bGwpKSgpO2xldCB4cz0oKCk9PntjbGFz''@;'; + put 'put ''cyBkIGV4dGVuZHMgRGZ7Y29uc3RydWN0b3IoaCx2LHksQyxJKXtzdXBlcigpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPUksdGhpcy5jb250cm9sPW5ldyBGayx0aGlzLl9yZWdpc3RlcmVkPSExLHRoaXMudXBkYXRlPW5ldyBhcix0aGlzLl9wYXJlbnQ9aCx0aGlzLl9zZXRWYWxpZGF0b3Jz''@;'; + put 'put ''KHYpLHRoaXMuX3NldEFzeW5jVmFsaWRhdG9ycyh5KSx0aGlzLnZhbHVlQWNjZXNzb3I9ZnVuY3Rpb24gSHkoZCxnKXtpZighZylyZXR1cm4gbnVsbDtsZXQgaCx2LHk7cmV0dXJuIEFycmF5LmlzQXJyYXkoZyksZy5mb3JFYWNoKEM9PntDLmNvbnN0cnVjdG9yPT09bTE/aD1DOmZ1bmN0aW9u''@;'; + put 'put ''IEVWKGQpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZC5jb25zdHJ1Y3Rvcik9PT1HN30oQyk/dj1DOnk9Q30pLHl8fHZ8fGh8fG51bGx9KDAsQyl9bmdPbkNoYW5nZXMoaCl7aWYodGhpcy5fY2hlY2tGb3JFcnJvcnMoKSwhdGhpcy5fcmVnaXN0ZXJlZHx8Im5hbWUiaW4gaCl7aWYo''@;'; + put 'put ''dGhpcy5fcmVnaXN0ZXJlZCYmKHRoaXMuX2NoZWNrTmFtZSgpLHRoaXMuZm9ybURpcmVjdGl2ZSkpe2NvbnN0IHY9aC5uYW1lLnByZXZpb3VzVmFsdWU7dGhpcy5mb3JtRGlyZWN0aXZlLnJlbW92ZUNvbnRyb2woe25hbWU6dixwYXRoOnRoaXMuX2dldFBhdGgodil9KX10aGlzLl9zZXRVcENv''@;'; + put 'put ''bnRyb2woKX0iaXNEaXNhYmxlZCJpbiBoJiZ0aGlzLl91cGRhdGVEaXNhYmxlZChoKSxmdW5jdGlvbiBNVihkLGcpe2lmKCFkLmhhc093blByb3BlcnR5KCJtb2RlbCIpKXJldHVybiExO2NvbnN0IGg9ZC5tb2RlbDtyZXR1cm4hIWguaXNGaXJzdENoYW5nZSgpfHwhT2JqZWN0LmlzKGcsaC5j''@;'; + put 'put ''dXJyZW50VmFsdWUpfShoLHRoaXMudmlld01vZGVsKSYmKHRoaXMuX3VwZGF0ZVZhbHVlKHRoaXMubW9kZWwpLHRoaXMudmlld01vZGVsPXRoaXMubW9kZWwpfW5nT25EZXN0cm95KCl7dGhpcy5mb3JtRGlyZWN0aXZlJiZ0aGlzLmZvcm1EaXJlY3RpdmUucmVtb3ZlQ29udHJvbCh0aGlzKX1n''@;'; + put 'put ''ZXQgcGF0aCgpe3JldHVybiB0aGlzLl9nZXRQYXRoKHRoaXMubmFtZSl9Z2V0IGZvcm1EaXJlY3RpdmUoKXtyZXR1cm4gdGhpcy5fcGFyZW50P3RoaXMuX3BhcmVudC5mb3JtRGlyZWN0aXZlOm51bGx9dmlld1RvTW9kZWxVcGRhdGUoaCl7dGhpcy52aWV3TW9kZWw9aCx0aGlzLnVwZGF0ZS5l''@;'; + put 'put ''bWl0KGgpfV9zZXRVcENvbnRyb2woKXt0aGlzLl9zZXRVcGRhdGVTdHJhdGVneSgpLHRoaXMuX2lzU3RhbmRhbG9uZSgpP3RoaXMuX3NldFVwU3RhbmRhbG9uZSgpOnRoaXMuZm9ybURpcmVjdGl2ZS5hZGRDb250cm9sKHRoaXMpLHRoaXMuX3JlZ2lzdGVyZWQ9ITB9X3NldFVwZGF0ZVN0cmF0''@;'; + put 'put ''ZWd5KCl7dGhpcy5vcHRpb25zJiZudWxsIT10aGlzLm9wdGlvbnMudXBkYXRlT24mJih0aGlzLmNvbnRyb2wuX3VwZGF0ZU9uPXRoaXMub3B0aW9ucy51cGRhdGVPbil9X2lzU3RhbmRhbG9uZSgpe3JldHVybiF0aGlzLl9wYXJlbnR8fCEoIXRoaXMub3B0aW9uc3x8IXRoaXMub3B0aW9ucy5z''@;'; + put 'put ''dGFuZGFsb25lKX1fc2V0VXBTdGFuZGFsb25lKCl7UHkodGhpcy5jb250cm9sLHRoaXMpLHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KX1fY2hlY2tGb3JFcnJvcnMoKXt0aGlzLl9pc1N0YW5kYWxvbmUoKXx8dGhpcy5fY2hlY2tQYXJlbnRUeXBl''@;'; + put 'put ''KCksdGhpcy5fY2hlY2tOYW1lKCl9X2NoZWNrUGFyZW50VHlwZSgpe31fY2hlY2tOYW1lKCl7dGhpcy5vcHRpb25zJiZ0aGlzLm9wdGlvbnMubmFtZSYmKHRoaXMubmFtZT10aGlzLm9wdGlvbnMubmFtZSksdGhpcy5faXNTdGFuZGFsb25lKCl9X3VwZGF0ZVZhbHVlKGgpe1E3LnRoZW4oKCk9''@;'; + put 'put ''Pnt2YXIgdjt0aGlzLmNvbnRyb2wuc2V0VmFsdWUoaCx7ZW1pdFZpZXdUb01vZGVsQ2hhbmdlOiExfSksbnVsbD09PSh2PXRoaXMuX2NoYW5nZURldGVjdG9yUmVmKXx8dm9pZCAwPT09dnx8di5tYXJrRm9yQ2hlY2soKX0pfV91cGRhdGVEaXNhYmxlZChoKXtjb25zdCB2PWguaXNEaXNhYmxl''@;'; + put 'put ''ZC5jdXJyZW50VmFsdWUseT0wIT09diYmSDYodik7UTcudGhlbigoKT0+e3ZhciBDO3kmJiF0aGlzLmNvbnRyb2wuZGlzYWJsZWQ/dGhpcy5jb250cm9sLmRpc2FibGUoKToheSYmdGhpcy5jb250cm9sLmRpc2FibGVkJiZ0aGlzLmNvbnRyb2wuZW5hYmxlKCksbnVsbD09PShDPXRoaXMuX2No''@;'; + put 'put ''YW5nZURldGVjdG9yUmVmKXx8dm9pZCAwPT09Q3x8Qy5tYXJrRm9yQ2hlY2soKX0pfV9nZXRQYXRoKGgpe3JldHVybiB0aGlzLl9wYXJlbnQ/ZnVuY3Rpb24gUmsoZCxnKXtyZXR1cm5bLi4uZy5wYXRoLGRdfShoLHRoaXMuX3BhcmVudCk6W2hdfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rp''@;'; + put 'put ''b24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChMZiw5KSxYdChLYywxMCksWHQoaGcsMTApLFh0KGdwLDEwKSxYdChkMSw4KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nTW9kZWwiLCIiLDMsImZvcm1Db250cm9sTmFtZSIsIiIsMywiZm9ybUNvbnRyb2wiLCIi''@;'; + put 'put ''XV0saW5wdXRzOntuYW1lOiJuYW1lIixpc0Rpc2FibGVkOlsiZGlzYWJsZWQiLCJpc0Rpc2FibGVkIl0sbW9kZWw6WyJuZ01vZGVsIiwibW9kZWwiXSxvcHRpb25zOlsibmdNb2RlbE9wdGlvbnMiLCJvcHRpb25zIl19LG91dHB1dHM6e3VwZGF0ZToibmdNb2RlbENoYW5nZSJ9LGV4cG9ydEFz''@;'; + put 'put ''OlsibmdNb2RlbCJdLGZlYXR1cmVzOltobyhbTTJlXSksRG8sUDJdfSksZH0pKCkscGc9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImZvcm0iLDMsIm5nTm9G''@;'; + put 'put ''b3JtIiwiIiwzLCJuZ05hdGl2ZVZhbGlkYXRlIiwiIl1dLGhvc3RBdHRyczpbIm5vdmFsaWRhdGUiLCIiXX0pLGR9KSgpO2NvbnN0IFhYPXtwcm92aWRlOmdwLHVzZUV4aXN0aW5nOl9uKCgpPT5MViksbXVsdGk6ITB9O2xldCBMVj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgRzd7d3JpdGVWYWx1''@;'; + put 'put ''ZShoKXt0aGlzLnNldFByb3BlcnR5KCJ2YWx1ZSIsbnVsbD09aD8iIjpoKX1yZWdpc3Rlck9uQ2hhbmdlKGgpe3RoaXMub25DaGFuZ2U9dj0+e2goIiI9PXY/bnVsbDpwYXJzZUZsb2F0KHYpKX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBnO3JldHVybiBmdW5jdGlvbih2''@;'; + put 'put ''KXtyZXR1cm4oZ3x8KGc9ZmwoZCkpKSh2fHxkKX19KCksZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQi''@;'; + put 'put ''LCJ0eXBlIiwibnVtYmVyIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJpbnB1dCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25DaGFuZ2UoQy50YXJnZXQudmFsdWUpfSkoImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHYub25Ub3VjaGVkKCl9KX0s''@;'; + put 'put ''ZmVhdHVyZXM6W2hvKFtYWF0pLERvXX0pLGR9KSgpO2NvbnN0IEUyZT17cHJvdmlkZTpncCx1c2VFeGlzdGluZzpfbigoKT0+cWgpLG11bHRpOiEwfTtsZXQgS1g9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1''@;'; + put 'put ''bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7fSksZH0pKCksJFg9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2FjY2Vzc29ycz1bXX1hZGQoaCx2KXt0aGlzLl9hY2Nlc3NvcnMucHVzaChbaCx2XSl9cmVtb3ZlKGgpe2ZvcihsZXQgdj10aGlzLl9hY2Nlc3NvcnMu''@;'; + put 'put ''bGVuZ3RoLTE7dj49MDstLXYpaWYodGhpcy5fYWNjZXNzb3JzW3ZdWzFdPT09aClyZXR1cm4gdm9pZCB0aGlzLl9hY2Nlc3NvcnMuc3BsaWNlKHYsMSl9c2VsZWN0KGgpe3RoaXMuX2FjY2Vzc29ycy5mb3JFYWNoKHY9Pnt0aGlzLl9pc1NhbWVHcm91cCh2LGgpJiZ2WzFdIT09aCYmdlsxXS5m''@;'; + put 'put ''aXJlVW5jaGVjayhoLnZhbHVlKX0pfV9pc1NhbWVHcm91cChoLHYpe3JldHVybiEhaFswXS5jb250cm9sJiZoWzBdLl9wYXJlbnQ9PT12Ll9jb250cm9sLl9wYXJlbnQmJmhbMV0ubmFtZT09PXYubmFtZX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9''@;'; + put 'put ''LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46S1h9KSxkfSkoKSxxaD0oKCk9PntjbGFzcyBkIGV4dGVuZHMgRzd7Y29uc3RydWN0b3IoaCx2LHksQyl7c3VwZXIoaCx2KSx0aGlzLl9yZWdpc3RyeT15LHRoaXMuX2luamVjdG9yPUMsdGhp''@;'; + put 'put ''cy5vbkNoYW5nZT0oKT0+e319bmdPbkluaXQoKXt0aGlzLl9jb250cm9sPXRoaXMuX2luamVjdG9yLmdldChEZiksdGhpcy5fY2hlY2tOYW1lKCksdGhpcy5fcmVnaXN0cnkuYWRkKHRoaXMuX2NvbnRyb2wsdGhpcyl9bmdPbkRlc3Ryb3koKXt0aGlzLl9yZWdpc3RyeS5yZW1vdmUodGhpcyl9''@;'; + put 'put ''d3JpdGVWYWx1ZShoKXt0aGlzLl9zdGF0ZT1oPT09dGhpcy52YWx1ZSx0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIix0aGlzLl9zdGF0ZSl9cmVnaXN0ZXJPbkNoYW5nZShoKXt0aGlzLl9mbj1oLHRoaXMub25DaGFuZ2U9KCk9PntoKHRoaXMudmFsdWUpLHRoaXMuX3JlZ2lzdHJ5LnNlbGVj''@;'; + put 'put ''dCh0aGlzKX19ZmlyZVVuY2hlY2soaCl7dGhpcy53cml0ZVZhbHVlKGgpfV9jaGVja05hbWUoKXshdGhpcy5uYW1lJiZ0aGlzLmZvcm1Db250cm9sTmFtZSYmKHRoaXMubmFtZT10aGlzLmZvcm1Db250cm9sTmFtZSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3''@;'; + put 'put ''KGh8fGQpKFh0KEdhKSxYdChibyksWHQoJFgpLFh0KGtzKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImlucHV0IiwidHlwZSIsInJhZGlvIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJyYWRpbyIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1''@;'; + put 'put ''dCIsInR5cGUiLCJyYWRpbyIsIm5nTW9kZWwiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZZbigiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiB2Lm9uQ2hhbmdlKCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vblRvdWNoZWQoKX0pfSxpbnB1dHM6e25hbWU6''@;'; + put 'put ''Im5hbWUiLGZvcm1Db250cm9sTmFtZToiZm9ybUNvbnRyb2xOYW1lIix2YWx1ZToidmFsdWUifSxmZWF0dXJlczpbaG8oW0UyZV0pLERvXX0pLGR9KSgpO2NvbnN0IGpEPW5ldyB6ZSgiTmdNb2RlbFdpdGhGb3JtQ29udHJvbFdhcm5pbmciKSxvSz17cHJvdmlkZTpncCx1c2VFeGlzdGluZzpf''@;'; + put 'put ''bigoKT0+T2YpLG11bHRpOiEwfTtmdW5jdGlvbiBhOChkLGcpe3JldHVybiBudWxsPT1kP2Ake2d9YDooZyYmIm9iamVjdCI9PXR5cGVvZiBnJiYoZz0iT2JqZWN0IiksYCR7ZH06ICR7Z31gLnNsaWNlKDAsNTApKX1sZXQgT2Y9KCgpPT57Y2xhc3MgZCBleHRlbmRzIEc3e2NvbnN0cnVjdG9y''@;'; + put 'put ''KCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcHRpb25NYXA9bmV3IE1hcCx0aGlzLl9pZENvdW50ZXI9MCx0aGlzLl9jb21wYXJlV2l0aD1PYmplY3QuaXN9c2V0IGNvbXBhcmVXaXRoKGgpe3RoaXMuX2NvbXBhcmVXaXRoPWh9d3JpdGVWYWx1ZShoKXt0aGlzLnZhbHVlPWg7Y29uc3Qg''@;'; + put 'put ''eT1hOCh0aGlzLl9nZXRPcHRpb25JZChoKSxoKTt0aGlzLnNldFByb3BlcnR5KCJ2YWx1ZSIseSl9cmVnaXN0ZXJPbkNoYW5nZShoKXt0aGlzLm9uQ2hhbmdlPXY9Pnt0aGlzLnZhbHVlPXRoaXMuX2dldE9wdGlvblZhbHVlKHYpLGgodGhpcy52YWx1ZSl9fV9yZWdpc3Rlck9wdGlvbigpe3Jl''@;'; + put 'put ''dHVybih0aGlzLl9pZENvdW50ZXIrKykudG9TdHJpbmcoKX1fZ2V0T3B0aW9uSWQoaCl7Zm9yKGNvbnN0IHYgb2YgQXJyYXkuZnJvbSh0aGlzLl9vcHRpb25NYXAua2V5cygpKSlpZih0aGlzLl9jb21wYXJlV2l0aCh0aGlzLl9vcHRpb25NYXAuZ2V0KHYpLGgpKXJldHVybiB2O3JldHVybiBu''@;'; + put 'put ''dWxsfV9nZXRPcHRpb25WYWx1ZShoKXtjb25zdCB2PWZ1bmN0aW9uIEkyZShkKXtyZXR1cm4gZC5zcGxpdCgiOiIpWzBdfShoKTtyZXR1cm4gdGhpcy5fb3B0aW9uTWFwLmhhcyh2KT90aGlzLl9vcHRpb25NYXAuZ2V0KHYpOmh9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBn''@;'; + put 'put ''O3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4oZ3x8KGc9ZmwoZCkpKSh2fHxkKX19KCksZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1sic2VsZWN0IiwiZm9ybUNvbnRyb2xOYW1lIiwiIiwzLCJtdWx0aXBsZSIsIiJdLFsic2VsZWN0IiwiZm9ybUNvbnRyb2wiLCIiLDMsIm11''@;'; + put 'put ''bHRpcGxlIiwiIl0sWyJzZWxlY3QiLCJuZ01vZGVsIiwiIiwzLCJtdWx0aXBsZSIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJjaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uQ2hhbmdlKEMudGFyZ2V0LnZhbHVlKX0pKCJibHVyIixmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiB2Lm9uVG91Y2hlZCgpfSl9LGlucHV0czp7Y29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIn0sZmVhdHVyZXM6W2hvKFtvS10pLERvXX0pLGR9KSgpLHEzPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuX2VsZW1lbnQ9aCx0aGlzLl9yZW5kZXJlcj12LHRoaXMuX3Nl''@;'; + put 'put ''bGVjdD15LHRoaXMuX3NlbGVjdCYmKHRoaXMuaWQ9dGhpcy5fc2VsZWN0Ll9yZWdpc3Rlck9wdGlvbigpKX1zZXQgbmdWYWx1ZShoKXtudWxsIT10aGlzLl9zZWxlY3QmJih0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5zZXQodGhpcy5pZCxoKSx0aGlzLl9zZXRFbGVtZW50VmFsdWUoYTgodGhp''@;'; + put 'put ''cy5pZCxoKSksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9c2V0IHZhbHVlKGgpe3RoaXMuX3NldEVsZW1lbnRWYWx1ZShoKSx0aGlzLl9zZWxlY3QmJnRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSl9X3NldEVsZW1lbnRWYWx1''@;'; + put 'put ''ZShoKXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsInZhbHVlIixoKX1uZ09uRGVzdHJveSgpe3RoaXMuX3NlbGVjdCYmKHRoaXMuX3NlbGVjdC5fb3B0aW9uTWFwLmRlbGV0ZSh0aGlzLmlkKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0''@;'; + put 'put ''aGlzLl9zZWxlY3QudmFsdWUpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoYm8pLFh0KEdhKSxYdChPZiw5KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIm9wdGlvbiJdXSxpbnB1dHM6e25nVmFsdWU6Im5nVmFsdWUi''@;'; + put 'put ''LHZhbHVlOiJ2YWx1ZSJ9fSksZH0pKCk7Y29uc3QgWkQ9e3Byb3ZpZGU6Z3AsdXNlRXhpc3Rpbmc6X24oKCk9PnZwKSxtdWx0aTohMH07ZnVuY3Rpb24gSGsoZCxnKXtyZXR1cm4gbnVsbD09ZD9gJHtnfWA6KCJzdHJpbmciPT10eXBlb2YgZyYmKGc9YCcke2d9J2ApLGcmJiJvYmplY3QiPT10''@;'; + put 'put ''eXBlb2YgZyYmKGc9Ik9iamVjdCIpLGAke2R9OiAke2d9YC5zbGljZSgwLDUwKSl9bGV0IHZwPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBHN3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fb3B0aW9uTWFwPW5ldyBNYXAsdGhpcy5faWRDb3VudGVyPTAsdGhpcy5fY29t''@;'; + put 'put ''cGFyZVdpdGg9T2JqZWN0LmlzfXNldCBjb21wYXJlV2l0aChoKXt0aGlzLl9jb21wYXJlV2l0aD1ofXdyaXRlVmFsdWUoaCl7bGV0IHY7aWYodGhpcy52YWx1ZT1oLEFycmF5LmlzQXJyYXkoaCkpe2NvbnN0IHk9aC5tYXAoQz0+dGhpcy5fZ2V0T3B0aW9uSWQoQykpO3Y9KEMsSSk9PntDLl9z''@;'; + put 'put ''ZXRTZWxlY3RlZCh5LmluZGV4T2YoSS50b1N0cmluZygpKT4tMSl9fWVsc2Ugdj0oeSxDKT0+e3kuX3NldFNlbGVjdGVkKCExKX07dGhpcy5fb3B0aW9uTWFwLmZvckVhY2godil9cmVnaXN0ZXJPbkNoYW5nZShoKXt0aGlzLm9uQ2hhbmdlPXY9Pntjb25zdCB5PVtdLEM9di5zZWxlY3RlZE9w''@;'; + put 'put ''dGlvbnM7aWYodm9pZCAwIT09Qyl7Y29uc3QgST1DO2ZvcihsZXQgaj0wO2o8SS5sZW5ndGg7aisrKXtjb25zdCBfZT10aGlzLl9nZXRPcHRpb25WYWx1ZShJW2pdLnZhbHVlKTt5LnB1c2goX2UpfX1lbHNle2NvbnN0IEk9di5vcHRpb25zO2ZvcihsZXQgaj0wO2o8SS5sZW5ndGg7aisrKXtj''@;'; + put 'put ''b25zdCB1ZT1JW2pdO2lmKHVlLnNlbGVjdGVkKXtjb25zdCBfZT10aGlzLl9nZXRPcHRpb25WYWx1ZSh1ZS52YWx1ZSk7eS5wdXNoKF9lKX19fXRoaXMudmFsdWU9eSxoKHkpfX1fcmVnaXN0ZXJPcHRpb24oaCl7Y29uc3Qgdj0odGhpcy5faWRDb3VudGVyKyspLnRvU3RyaW5nKCk7cmV0dXJu''@;'; + put 'put ''IHRoaXMuX29wdGlvbk1hcC5zZXQodixoKSx2fV9nZXRPcHRpb25JZChoKXtmb3IoY29uc3QgdiBvZiBBcnJheS5mcm9tKHRoaXMuX29wdGlvbk1hcC5rZXlzKCkpKWlmKHRoaXMuX2NvbXBhcmVXaXRoKHRoaXMuX29wdGlvbk1hcC5nZXQodikuX3ZhbHVlLGgpKXJldHVybiB2O3JldHVybiBu''@;'; + put 'put ''dWxsfV9nZXRPcHRpb25WYWx1ZShoKXtjb25zdCB2PWZ1bmN0aW9uIFZ5KGQpe3JldHVybiBkLnNwbGl0KCI6IilbMF19KGgpO3JldHVybiB0aGlzLl9vcHRpb25NYXAuaGFzKHYpP3RoaXMuX29wdGlvbk1hcC5nZXQodikuX3ZhbHVlOmh9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbigp''@;'; + put 'put ''e2xldCBnO3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4oZ3x8KGc9ZmwoZCkpKSh2fHxkKX19KCksZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1sic2VsZWN0IiwibXVsdGlwbGUiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbInNlbGVjdCIsIm11bHRpcGxlIiwiIiwiZm9y''@;'; + put 'put ''bUNvbnRyb2wiLCIiXSxbInNlbGVjdCIsIm11bHRpcGxlIiwiIiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJjaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uQ2hhbmdlKEMudGFyZ2V0KX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiB2''@;'; + put 'put ''Lm9uVG91Y2hlZCgpfSl9LGlucHV0czp7Y29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIn0sZmVhdHVyZXM6W2hvKFtaRF0pLERvXX0pLGR9KSgpLGVkPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuX2VsZW1lbnQ9aCx0aGlzLl9yZW5kZXJlcj12LHRoaXMuX3NlbGVjdD15''@;'; + put 'put ''LHRoaXMuX3NlbGVjdCYmKHRoaXMuaWQ9dGhpcy5fc2VsZWN0Ll9yZWdpc3Rlck9wdGlvbih0aGlzKSl9c2V0IG5nVmFsdWUoaCl7bnVsbCE9dGhpcy5fc2VsZWN0JiYodGhpcy5fdmFsdWU9aCx0aGlzLl9zZXRFbGVtZW50VmFsdWUoSGsodGhpcy5pZCxoKSksdGhpcy5fc2VsZWN0LndyaXRl''@;'; + put 'put ''VmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9c2V0IHZhbHVlKGgpe3RoaXMuX3NlbGVjdD8odGhpcy5fdmFsdWU9aCx0aGlzLl9zZXRFbGVtZW50VmFsdWUoSGsodGhpcy5pZCxoKSksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSk6dGhpcy5fc2V0RWxlbWVu''@;'; + put 'put ''dFZhbHVlKGgpfV9zZXRFbGVtZW50VmFsdWUoaCl7dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCJ2YWx1ZSIsaCl9X3NldFNlbGVjdGVkKGgpe3RoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVu''@;'; + put 'put ''dCwic2VsZWN0ZWQiLGgpfW5nT25EZXN0cm95KCl7dGhpcy5fc2VsZWN0JiYodGhpcy5fc2VsZWN0Ll9vcHRpb25NYXAuZGVsZXRlKHRoaXMuaWQpLHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0''@;'; + put 'put ''dXJuIG5ldyhofHxkKShYdChibyksWHQoR2EpLFh0KHZwLDkpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1sib3B0aW9uIl1dLGlucHV0czp7bmdWYWx1ZToibmdWYWx1ZSIsdmFsdWU6InZhbHVlIn19KSxkfSkoKSxIVj0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAy''@;'; + put 'put ''NzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltLWF19KSxkfSkoKSxuZD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0s''@;'; + put 'put ''ZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltIVl19KSxkfSkoKSxCMmU9KCgpPT57Y2xhc3MgZHtzdGF0aWMgd2l0aENvbmZpZyhoKXtyZXR1cm57bmdNb2R1bGU6ZCxwcm92aWRlcnM6W3twcm92aWRlOmpELHVzZVZhbHVlOmgud2Fybk9uTmdNb2Rl''@;'; + put 'put ''bFdpdGhGb3JtQ29udHJvbH1dfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbSFZdfSksZH0pKCk7ZnVuY3Rpb24gWUQoZCl7dGhpcy53cmFwcGVkPWR9ZnVu''@;'; + put 'put ''Y3Rpb24gVUQoZCl7dmFyIGcsaDtmdW5jdGlvbiB5KEksail7dHJ5e3ZhciB1ZT1kW0ldKGopLF9lPXVlLnZhbHVlLEJlPV9lIGluc3RhbmNlb2YgWUQ7UHJvbWlzZS5yZXNvbHZlKEJlP19lLndyYXBwZWQ6X2UpLnRoZW4oZnVuY3Rpb24oTmUpe0JlP3koInJldHVybiI9PT1JPyJyZXR1cm4i''@;'; + put 'put ''OiJuZXh0IixOZSk6Qyh1ZS5kb25lPyJyZXR1cm4iOiJub3JtYWwiLE5lKX0sZnVuY3Rpb24oTmUpe3koInRocm93IixOZSl9KX1jYXRjaChOZSl7QygidGhyb3ciLE5lKX19ZnVuY3Rpb24gQyhJLGope3N3aXRjaChJKXtjYXNlInJldHVybiI6Zy5yZXNvbHZlKHt2YWx1ZTpqLGRvbmU6ITB9''@;'; + put 'put ''KTticmVhaztjYXNlInRocm93IjpnLnJlamVjdChqKTticmVhaztkZWZhdWx0OmcucmVzb2x2ZSh7dmFsdWU6aixkb25lOiExfSl9KGc9Zy5uZXh0KT95KGcua2V5LGcuYXJnKTpoPW51bGx9dGhpcy5faW52b2tlPWZ1bmN0aW9uIHYoSSxqKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o''@;'; + put 'put ''dWUsX2Upe3ZhciBCZT17a2V5OkksYXJnOmoscmVzb2x2ZTp1ZSxyZWplY3Q6X2UsbmV4dDpudWxsfTtoP2g9aC5uZXh0PUJlOihnPWg9QmUseShJLGopKX0pfSwiZnVuY3Rpb24iIT10eXBlb2YgZC5yZXR1cm4mJih0aGlzLnJldHVybj12b2lkIDApfVVELnByb3RvdHlwZVsiZnVuY3Rpb24i''@;'; + put 'put ''PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciJdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LFVELnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKGQpe3JldHVybiB0aGlzLl9pbnZva2UoIm5leHQiLGQpfSxVRC5wcm90b3R5cGUudGhyb3c9ZnVu''@;'; + put 'put ''Y3Rpb24oZCl7cmV0dXJuIHRoaXMuX2ludm9rZSgidGhyb3ciLGQpfSxVRC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGQpe3JldHVybiB0aGlzLl9pbnZva2UoInJldHVybiIsZCl9LCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2w7Y2xhc3MgWER7c3RhdGljIGdldFRyYXBF''@;'; + put 'put ''bGVtZW50cygpe3JldHVyblsuLi5KMS5zdGF0ZS5mb2N1c1RyYXBJdGVtc119c3RhdGljIHNldFRyYXBFbGVtZW50cyhnKXtjb25zdCBoPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImh0bWwiKTtudWxsIT09aCYmZnVuY3Rpb24gV1YoZCwuLi5nKXtkJiZnLmZvckVhY2goKFtoLHZdKT0+eyEx''@;'; + put 'put ''PT09dnx8bnVsbD09PXY/ZC5yZW1vdmVBdHRyaWJ1dGUoaCk6ZC5zZXRBdHRyaWJ1dGUoaCx2KyIiKX0pfShoLFsiY2RzLWZvY3VzLXRyYXAiLCEhZy5sZW5ndGgmJiIiXSksSjEuc3RhdGUuZm9jdXNUcmFwSXRlbXM9Wy4uLmddfXN0YXRpYyByZW1vdmVUcmFwRWxlbWVudChnKXt0aGlzLmdl''@;'; + put 'put ''dFRyYXBFbGVtZW50cygpLmxlbmd0aDwxfHx0aGlzLnNldFRyYXBFbGVtZW50cyhbLi4udGhpcy5nZXRUcmFwRWxlbWVudHMoKS5maWx0ZXIoaD0+aC5mb2N1c1RyYXBJZCE9PWcuZm9jdXNUcmFwSWQpXSl9c3RhdGljIHNldEN1cnJlbnQoZyl7bnVsbCE9ZyYmZy5mb2N1c1RyYXBJZCYmdGhp''@;'; + put 'put ''cy5zZXRUcmFwRWxlbWVudHMoWy4uLnRoaXMuZ2V0VHJhcEVsZW1lbnRzKCkuZmlsdGVyKGg9PmguZm9jdXNUcmFwSWQhPT1nLmZvY3VzVHJhcElkKSxnXSl9c3RhdGljIGFjdGl2YXRlUHJldmlvdXNDdXJyZW50KCl7dGhpcy5zZXRUcmFwRWxlbWVudHMoWy4uLnRoaXMuZ2V0VHJhcEVsZW1l''@;'; + put 'put ''bnRzKCldLnNsaWNlKDAsLTEpKX1zdGF0aWMgZ2V0Q3VycmVudCgpe3JldHVybiBmdW5jdGlvbiBjSyhkKXtyZXR1cm4gZC5sZW5ndGg/ZFtkLmxlbmd0aC0xXTp2b2lkIDB9KHRoaXMuZ2V0VHJhcEVsZW1lbnRzKCkpfHxudWxsfX1jb25zdCBmMWU9aVgoMywoZCxnLGgpPT57IWZ1bmN0aW9u''@;'; + put 'put ''IFRzZShkLGcpe3JldHVybiBnfHwoZz13aW5kb3cmJndpbmRvdy5jdXN0b21FbGVtZW50cyksIWd8fCEhZy5nZXQoZCl9KGQpfHxmdW5jdGlvbiBKSigpe3ZhciBkLGc7cmV0dXJuIG51bGw9PShnPW51bGw9PShkPW51bGw9PXdpbmRvdz92b2lkIDA6d2luZG93LmxvY2F0aW9uKT92b2lkIDA6''@;'; + put 'put ''ZC5ocmVmKT92b2lkIDA6Zy5pbmNsdWRlcygibG9jYWxob3N0OjYwMDYiKX0oKT8oaC5kZWZpbmUoZCxnKSx0VigpLHdpbmRvdyYmIU9iamVjdC5rZXlzKHdpbmRvdy5DRFMuX3N0YXRlLmVsZW1lbnRSZWdpc3RyeSkuc29tZSh2PT52PT09ZCkmJih3aW5kb3cuQ0RTLl9zdGF0ZS5lbGVtZW50''@;'; + put 'put ''UmVnaXN0cnk9WnooZ3Moe30sd2luZG93LkNEUy5fc3RhdGUuZWxlbWVudFJlZ2lzdHJ5KSx7W2RdOnt9fSkpKTpONy53YXJuKGQrIiBoYXMgYWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQiKX0pO2Z1bmN0aW9uIGJLKGQsZyl7VUooKSYmX0QoWyJjdXN0b21FbGVtZW50cyJdKSYmZjFlKGQsZyx3''@;'; + put 'put ''aW5kb3cuY3VzdG9tRWxlbWVudHMpfWxldCBfSz0hMTtmdW5jdGlvbiBoMWUoZCl7aWYoKGQ9TWF0aC50cnVuYyhkKXx8MCk8MCYmKGQrPXRoaXMubGVuZ3RoKSwhKGQ8MHx8ZD49dGhpcy5sZW5ndGgpKXJldHVybiB0aGlzW2RdfWlmKCFfSyl7X0s9ITA7Y29uc3QgZD1SZWZsZWN0LmdldFBy''@;'; + put 'put ''b3RvdHlwZU9mKEludDhBcnJheSk7Zm9yKGNvbnN0IGcgb2ZbQXJyYXksU3RyaW5nLGRdKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLnByb3RvdHlwZSwiYXQiLHt2YWx1ZTpoMWUsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KX1sZXQgQ0s9ITEsa0s9ITE7ZnVu''@;'; + put 'put ''Y3Rpb24gU0soZCxnLGgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGgse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc0F0dHJpYnV0ZShnKT90aGlzLmdldEF0dHJpYnV0ZShnKTpudWxsfSxzZXQ6ZnVuY3Rpb24odil7bnVsbCE9''@;'; + put 'put ''PXY/dGhpcy5zZXRBdHRyaWJ1dGUoZyx2KTp0aGlzLnJlbW92ZUF0dHJpYnV0ZShnKX19KX1mdW5jdGlvbiBNSyhkLGcsaCx2LHksQyxJKXt0cnl7dmFyIGo9ZFtDXShJKSx1ZT1qLnZhbHVlfWNhdGNoKF9lKXtyZXR1cm4gdm9pZCBoKF9lKX1qLmRvbmU/Zyh1ZSk6UHJvbWlzZS5yZXNvbHZl''@;'; + put 'put ''KHVlKS50aGVuKHYseSl9ZnVuY3Rpb24gRUsoZCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odix5KXt2YXIgQz1kLmFwcGx5KGcsaCk7ZnVuY3Rpb24gSSh1ZSl7TUsoQyx2LHksSSxqLCJuZXh0Iix1ZSl9ZnVu''@;'; + put 'put ''Y3Rpb24gaih1ZSl7TUsoQyx2LHksSSxqLCJ0aHJvdyIsdWUpfUkodm9pZCAwKX0pfX1DS3x8RWxlbWVudC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInJvbGUiKXx8KFNLKEVsZW1lbnQucHJvdG90eXBlLCJyb2xlIiwicm9sZSIpLENLPSEwKSxrS3x8RWxlbWVudC5wcm90b3R5cGUuaGFz''@;'; + put 'put ''T3duUHJvcGVydHkoImFyaWFMYWJlbCIpfHwoa0s9ITAsWyJBY3RpdmVEZXNjZW5kYW50IiwiQXRvbWljIiwiQXV0b0NvbXBsZXRlIiwiQnVzeSIsIkNoZWNrZWQiLCJDb2xDb3VudCIsIkNvbEluZGV4IiwiQ29sU3BhbiIsIkNvbnRyb2xzIiwiQ3VycmVudCIsIkRlc2NyaWJlZEJ5IiwiRGV0''@;'; + put 'put ''YWlscyIsIkRpc2FibGVkIiwiRXJyb3JNZXNzYWdlIiwiRXhwYW5kZWQiLCJGbG93VG8iLCJIYXNQb3B1cCIsIkhpZGRlbiIsIkludmFsaWQiLCJLZXlTaG9ydGN1dHMiLCJMYWJlbCIsIkxhYmVsbGVkQnkiLCJMZXZlbCIsIkxpdmUiLCJNb2RhbCIsIk11bHRpTGluZSIsIk11bHRpU2VsZWN0''@;'; + put 'put ''YWJsZSIsIk9yaWVudGF0aW9uIiwiT3ducyIsIlBsYWNlaG9sZGVyIiwiUG9zSW5TZXQiLCJQcmVzc2VkIiwiUmVhZE9ubHkiLCJSZWxldmFudCIsIlJlcXVpcmVkIiwiUm9sZURlc2NyaXB0aW9uIiwiUm93Q291bnQiLCJSb3dJbmRleCIsIlJvd1NwYW4iLCJTZWxlY3RlZCIsIlNldFNpemUi''@;'; + put 'put ''LCJTb3J0IiwiVmFsdWVNYXgiLCJWYWx1ZU1pbiIsIlZhbHVlTm93IiwiVmFsdWVUZXh0Il0uZm9yRWFjaChkPT5TSyhFbGVtZW50LnByb3RvdHlwZSwiYXJpYS0iK2QudG9Mb3dlckNhc2UoKSwiYXJpYSIrZCkpKTtjb25zdCBKVj13aW5kb3cuU2hhZG93Um9vdCYmKHZvaWQgMD09PXdpbmRv''@;'; + put 'put ''dy5TaGFkeUNTU3x8d2luZG93LlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZSJpbiBDU1NTdHlsZVNoZWV0LnByb3RvdHlwZSxYVj1TeW1ib2woKSxHeT1uZXcgV2Vha01hcDtjbGFzcyBWa3tjb25zdHJ1''@;'; + put 'put ''Y3RvcihnLGgsdil7aWYodGhpcy5fJGNzc1Jlc3VsdCQ9ITAsdiE9PVhWKXRocm93IEVycm9yKCJDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLiIpO3RoaXMuY3NzVGV4dD1nLHRoaXMudD1ofWdldCBzdHlsZVNoZWV0KCl7''@;'; + put 'put ''bGV0IGc9dGhpcy5vO2NvbnN0IGg9dGhpcy50O2lmKEpWJiZ2b2lkIDA9PT1nKXtjb25zdCB2PXZvaWQgMCE9PWgmJjE9PT1oLmxlbmd0aDt2JiYoZz1HeS5nZXQoaCkpLHZvaWQgMD09PWcmJigodGhpcy5vPWc9bmV3IENTU1N0eWxlU2hlZXQpLnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCks''@;'; + put 'put ''diYmR3kuc2V0KGgsZykpfXJldHVybiBnfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzVGV4dH19Y29uc3QgS0Q9KGQsLi4uZyk9Pntjb25zdCBoPTE9PT1kLmxlbmd0aD9kWzBdOmcucmVkdWNlKCh2LHksQyk9PnYrKEk9PntpZighMD09PUkuXyRjc3NSZXN1bHQkKXJldHVybiBJLmNzc1Rl''@;'; + put 'put ''eHQ7aWYoIm51bWJlciI9PXR5cGVvZiBJKXJldHVybiBJO3Rocm93IEVycm9yKCJWYWx1ZSBwYXNzZWQgdG8gJ2NzcycgZnVuY3Rpb24gbXVzdCBiZSBhICdjc3MnIGZ1bmN0aW9uIHJlc3VsdDogIitJKyIuIFVzZSAndW5zYWZlQ1NTJyB0byBwYXNzIG5vbi1saXRlcmFsIHZhbHVlcywgYnV0''@;'; + put 'put ''IHRha2UgY2FyZSB0byBlbnN1cmUgcGFnZSBzZWN1cml0eS4iKX0pKHkpK2RbQysxXSxkWzBdKTtyZXR1cm4gbmV3IFZrKGgsZCxYVil9LCREPUpWP2Q9PmQ6ZD0+ZCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KGc9PntsZXQgaD0iIjtmb3IoY29uc3QgdiBvZiBnLmNzc1J1bGVzKWgrPXYu''@;'; + put 'put ''Y3NzVGV4dDtyZXR1cm4oZD0+bmV3IFZrKCJzdHJpbmciPT10eXBlb2YgZD9kOmQrIiIsdm9pZCAwLFhWKSkoaCl9KShkKTpkO3ZhciBLVjtjb25zdCBLNz13aW5kb3cudHJ1c3RlZFR5cGVzLFRLPUs3P0s3LmVtcHR5U2NyaXB0OiIiLFprPXdpbmRvdy5yZWFjdGl2ZUVsZW1lbnRQb2x5Zmls''@;'; + put 'put ''bFN1cHBvcnQsems9e3RvQXR0cmlidXRlKGQsZyl7c3dpdGNoKGcpe2Nhc2UgQm9vbGVhbjpkPWQ/VEs6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OmQ9bnVsbD09ZD9kOkpTT04uc3RyaW5naWZ5KGQpfXJldHVybiBkfSxmcm9tQXR0cmlidXRlKGQsZyl7bGV0IGg9ZDtzd2l0''@;'; + put 'put ''Y2goZyl7Y2FzZSBCb29sZWFuOmg9bnVsbCE9PWQ7YnJlYWs7Y2FzZSBOdW1iZXI6aD1udWxsPT09ZD9udWxsOk51bWJlcihkKTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXtoPUpTT04ucGFyc2UoZCl9Y2F0Y2godil7aD1udWxsfX1yZXR1cm4gaH19LEdrPShkLGcpPT5nIT09''@;'; + put 'put ''ZCYmKGc9PWd8fGQ9PWQpLHFEPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOnprLHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpHa307Y2xhc3MgJDcgZXh0ZW5kcyBIVE1MRWxlbWVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fJEVpPW5ldyBNYXAsdGhpcy5pc1VwZGF0''@;'; + put 'put ''ZVBlbmRpbmc9ITEsdGhpcy5oYXNVcGRhdGVkPSExLHRoaXMuXyRFbD1udWxsLHRoaXMudSgpfXN0YXRpYyBhZGRJbml0aWFsaXplcihnKXt2YXIgaDtudWxsIT09KGg9dGhpcy5oKSYmdm9pZCAwIT09aHx8KHRoaXMuaD1bXSksdGhpcy5oLnB1c2goZyl9c3RhdGljIGdldCBvYnNlcnZlZEF0''@;'; + put 'put ''dHJpYnV0ZXMoKXt0aGlzLmZpbmFsaXplKCk7Y29uc3QgZz1bXTtyZXR1cm4gdGhpcy5lbGVtZW50UHJvcGVydGllcy5mb3JFYWNoKChoLHYpPT57Y29uc3QgeT10aGlzLl8kRXAodixoKTt2b2lkIDAhPT15JiYodGhpcy5fJEV2LnNldCh5LHYpLGcucHVzaCh5KSl9KSxnfXN0YXRpYyBjcmVh''@;'; + put 'put ''dGVQcm9wZXJ0eShnLGg9cUQpe2lmKGguc3RhdGUmJihoLmF0dHJpYnV0ZT0hMSksdGhpcy5maW5hbGl6ZSgpLHRoaXMuZWxlbWVudFByb3BlcnRpZXMuc2V0KGcsaCksIWgubm9BY2Nlc3NvciYmIXRoaXMucHJvdG90eXBlLmhhc093blByb3BlcnR5KGcpKXtjb25zdCB2PSJzeW1ib2wiPT10''@;'; + put 'put ''eXBlb2YgZz9TeW1ib2woKToiX18iK2cseT10aGlzLmdldFByb3BlcnR5RGVzY3JpcHRvcihnLHYsaCk7dm9pZCAwIT09eSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMucHJvdG90eXBlLGcseSl9fXN0YXRpYyBnZXRQcm9wZXJ0eURlc2NyaXB0b3IoZyxoLHYpe3JldHVybntnZXQoKXty''@;'; + put 'put ''ZXR1cm4gdGhpc1toXX0sc2V0KHkpe2NvbnN0IEM9dGhpc1tnXTt0aGlzW2hdPXksdGhpcy5yZXF1ZXN0VXBkYXRlKGcsQyx2KX0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9fXN0YXRpYyBnZXRQcm9wZXJ0eU9wdGlvbnMoZyl7cmV0dXJuIHRoaXMuZWxlbWVudFByb3BlcnRpZXMu''@;'; + put 'put ''Z2V0KGcpfHxxRH1zdGF0aWMgZmluYWxpemUoKXtpZih0aGlzLmhhc093blByb3BlcnR5KCJmaW5hbGl6ZWQiKSlyZXR1cm4hMTt0aGlzLmZpbmFsaXplZD0hMDtjb25zdCBnPU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtpZihnLmZpbmFsaXplKCksdGhpcy5lbGVtZW50UHJvcGVydGll''@;'; + put 'put ''cz1uZXcgTWFwKGcuZWxlbWVudFByb3BlcnRpZXMpLHRoaXMuXyRFdj1uZXcgTWFwLHRoaXMuaGFzT3duUHJvcGVydHkoInByb3BlcnRpZXMiKSl7Y29uc3QgaD10aGlzLnByb3BlcnRpZXMsdj1bLi4uT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaCksLi4uT2JqZWN0LmdldE93blByb3Bl''@;'; + put 'put ''cnR5U3ltYm9scyhoKV07Zm9yKGNvbnN0IHkgb2Ygdil0aGlzLmNyZWF0ZVByb3BlcnR5KHksaFt5XSl9cmV0dXJuIHRoaXMuZWxlbWVudFN0eWxlcz10aGlzLmZpbmFsaXplU3R5bGVzKHRoaXMuc3R5bGVzKSwhMH1zdGF0aWMgZmluYWxpemVTdHlsZXMoZyl7Y29uc3QgaD1bXTtpZihBcnJh''@;'; + put 'put ''eS5pc0FycmF5KGcpKXtjb25zdCB2PW5ldyBTZXQoZy5mbGF0KDEvMCkucmV2ZXJzZSgpKTtmb3IoY29uc3QgeSBvZiB2KWgudW5zaGlmdCgkRCh5KSl9ZWxzZSB2b2lkIDAhPT1nJiZoLnB1c2goJEQoZykpO3JldHVybiBofXN0YXRpYyBfJEVwKGcsaCl7Y29uc3Qgdj1oLmF0dHJpYnV0ZTty''@;'; + put 'put ''ZXR1cm4hMT09PXY/dm9pZCAwOiJzdHJpbmciPT10eXBlb2Ygdj92OiJzdHJpbmciPT10eXBlb2YgZz9nLnRvTG93ZXJDYXNlKCk6dm9pZCAwfXUoKXt2YXIgZzt0aGlzLl8kRV89bmV3IFByb21pc2UoaD0+dGhpcy5lbmFibGVVcGRhdGluZz1oKSx0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLl8k''@;'; + put 'put ''RWcoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSxudWxsPT09KGc9dGhpcy5jb25zdHJ1Y3Rvci5oKXx8dm9pZCAwPT09Z3x8Zy5mb3JFYWNoKGg9PmgodGhpcykpfWFkZENvbnRyb2xsZXIoZyl7dmFyIGgsdjsobnVsbCE9PShoPXRoaXMuXyRFUykmJnZvaWQgMCE9PWg/aDp0aGlzLl8kRVM9W10p''@;'; + put 'put ''LnB1c2goZyksdm9pZCAwIT09dGhpcy5yZW5kZXJSb290JiZ0aGlzLmlzQ29ubmVjdGVkJiYobnVsbD09PSh2PWcuaG9zdENvbm5lY3RlZCl8fHZvaWQgMD09PXZ8fHYuY2FsbChnKSl9cmVtb3ZlQ29udHJvbGxlcihnKXt2YXIgaDtudWxsPT09KGg9dGhpcy5fJEVTKXx8dm9pZCAwPT09aHx8''@;'; + put 'put ''aC5zcGxpY2UodGhpcy5fJEVTLmluZGV4T2YoZyk+Pj4wLDEpfV8kRWcoKXt0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzLmZvckVhY2goKGcsaCk9Pnt0aGlzLmhhc093blByb3BlcnR5KGgpJiYodGhpcy5fJEVpLnNldChoLHRoaXNbaF0pLGRlbGV0ZSB0aGlzW2hdKX0pfWNy''@;'; + put 'put ''ZWF0ZVJlbmRlclJvb3QoKXt2YXIgZztjb25zdCBoPW51bGwhPT0oZz10aGlzLnNoYWRvd1Jvb3QpJiZ2b2lkIDAhPT1nP2c6dGhpcy5hdHRhY2hTaGFkb3codGhpcy5jb25zdHJ1Y3Rvci5zaGFkb3dSb290T3B0aW9ucyk7cmV0dXJuKChkLGcpPT57SlY/ZC5hZG9wdGVkU3R5bGVTaGVldHM9''@;'; + put 'put ''Zy5tYXAoaD0+aCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/aDpoLnN0eWxlU2hlZXQpOmcuZm9yRWFjaChoPT57Y29uc3Qgdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLHk9d2luZG93LmxpdE5vbmNlO3ZvaWQgMCE9PXkmJnYuc2V0QXR0cmlidXRlKCJub25jZSIseSksdi50''@;'; + put 'put ''ZXh0Q29udGVudD1oLmNzc1RleHQsZC5hcHBlbmRDaGlsZCh2KX0pfSkoaCx0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRTdHlsZXMpLGh9Y29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgZzt2b2lkIDA9PT10aGlzLnJlbmRlclJvb3QmJih0aGlzLnJlbmRlclJvb3Q9dGhpcy5jcmVhdGVSZW5kZXJS''@;'; + put 'put ''b290KCkpLHRoaXMuZW5hYmxlVXBkYXRpbmcoITApLG51bGw9PT0oZz10aGlzLl8kRVMpfHx2b2lkIDA9PT1nfHxnLmZvckVhY2goaD0+e3ZhciB2O3JldHVybiBudWxsPT09KHY9aC5ob3N0Q29ubmVjdGVkKXx8dm9pZCAwPT09dj92b2lkIDA6di5jYWxsKGgpfSl9ZW5hYmxlVXBkYXRpbmco''@;'; + put 'put ''Zyl7fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dmFyIGc7bnVsbD09PShnPXRoaXMuXyRFUyl8fHZvaWQgMD09PWd8fGcuZm9yRWFjaChoPT57dmFyIHY7cmV0dXJuIG51bGw9PT0odj1oLmhvc3REaXNjb25uZWN0ZWQpfHx2b2lkIDA9PT12P3ZvaWQgMDp2LmNhbGwoaCl9KX1hdHRyaWJ1dGVD''@;'; + put 'put ''aGFuZ2VkQ2FsbGJhY2soZyxoLHYpe3RoaXMuXyRBSyhnLHYpfV8kRU8oZyxoLHY9cUQpe3ZhciB5LEM7Y29uc3QgST10aGlzLmNvbnN0cnVjdG9yLl8kRXAoZyx2KTtpZih2b2lkIDAhPT1JJiYhMD09PXYucmVmbGVjdCl7Y29uc3Qgaj0obnVsbCE9PShDPW51bGw9PT0oeT12LmNvbnZlcnRl''@;'; + put 'put ''cil8fHZvaWQgMD09PXk/dm9pZCAwOnkudG9BdHRyaWJ1dGUpJiZ2b2lkIDAhPT1DP0M6emsudG9BdHRyaWJ1dGUpKGgsdi50eXBlKTt0aGlzLl8kRWw9ZyxudWxsPT1qP3RoaXMucmVtb3ZlQXR0cmlidXRlKEkpOnRoaXMuc2V0QXR0cmlidXRlKEksaiksdGhpcy5fJEVsPW51bGx9fV8kQUso''@;'; + put 'put ''ZyxoKXt2YXIgdix5O2NvbnN0IEM9dGhpcy5jb25zdHJ1Y3RvcixJPUMuXyRFdi5nZXQoZyk7aWYodm9pZCAwIT09SSYmdGhpcy5fJEVsIT09SSl7Y29uc3Qgaj1DLmdldFByb3BlcnR5T3B0aW9ucyhJKSx1ZT1qLmNvbnZlcnRlcixfZT1udWxsIT09KHk9bnVsbCE9PSh2PW51bGw9PXVlP3Zv''@;'; + put 'put ''aWQgMDp1ZS5mcm9tQXR0cmlidXRlKSYmdm9pZCAwIT09dj92OiJmdW5jdGlvbiI9PXR5cGVvZiB1ZT91ZTpudWxsKSYmdm9pZCAwIT09eT95OnprLmZyb21BdHRyaWJ1dGU7dGhpcy5fJEVsPUksdGhpc1tJXT1fZShoLGoudHlwZSksdGhpcy5fJEVsPW51bGx9fXJlcXVlc3RVcGRhdGUoZyxo''@;'; + put 'put ''LHYpe2xldCB5PSEwO3ZvaWQgMCE9PWcmJigoKHY9dnx8dGhpcy5jb25zdHJ1Y3Rvci5nZXRQcm9wZXJ0eU9wdGlvbnMoZykpLmhhc0NoYW5nZWR8fEdrKSh0aGlzW2ddLGgpPyh0aGlzLl8kQUwuaGFzKGcpfHx0aGlzLl8kQUwuc2V0KGcsaCksITA9PT12LnJlZmxlY3QmJnRoaXMuXyRFbCE9''@;'; + put 'put ''PWcmJih2b2lkIDA9PT10aGlzLl8kRUMmJih0aGlzLl8kRUM9bmV3IE1hcCksdGhpcy5fJEVDLnNldChnLHYpKSk6eT0hMSksIXRoaXMuaXNVcGRhdGVQZW5kaW5nJiZ5JiYodGhpcy5fJEVfPXRoaXMuXyRFaigpKX1fJEVqKCl7dmFyIGc9dGhpcztyZXR1cm4gRUsoZnVuY3Rpb24qKCl7Zy5p''@;'; + put 'put ''c1VwZGF0ZVBlbmRpbmc9ITA7dHJ5e3lpZWxkIGcuXyRFX31jYXRjaCh2KXtQcm9taXNlLnJlamVjdCh2KX1jb25zdCBoPWcuc2NoZWR1bGVVcGRhdGUoKTtyZXR1cm4gbnVsbCE9aCYmKHlpZWxkIGgpLCFnLmlzVXBkYXRlUGVuZGluZ30pKCl9c2NoZWR1bGVVcGRhdGUoKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5wZXJmb3JtVXBkYXRlKCl9cGVyZm9ybVVwZGF0ZSgpe3ZhciBnO2lmKCF0aGlzLmlzVXBkYXRlUGVuZGluZylyZXR1cm47dGhpcy5fJEVpJiYodGhpcy5fJEVpLmZvckVhY2goKHksQyk9PnRoaXNbQ109eSksdGhpcy5fJEVpPXZvaWQgMCk7bGV0IGg9ITE7Y29uc3Qgdj10aGlzLl8kQUw7''@;'; + put 'put ''dHJ5e2g9dGhpcy5zaG91bGRVcGRhdGUodiksaD8odGhpcy53aWxsVXBkYXRlKHYpLG51bGw9PT0oZz10aGlzLl8kRVMpfHx2b2lkIDA9PT1nfHxnLmZvckVhY2goeT0+e3ZhciBDO3JldHVybiBudWxsPT09KEM9eS5ob3N0VXBkYXRlKXx8dm9pZCAwPT09Qz92b2lkIDA6Qy5jYWxsKHkpfSks''@;'; + put 'put ''dGhpcy51cGRhdGUodikpOnRoaXMuXyRFaygpfWNhdGNoKHkpe3Rocm93IGg9ITEsdGhpcy5fJEVrKCkseX1oJiZ0aGlzLl8kQUUodil9d2lsbFVwZGF0ZShnKXt9XyRBRShnKXt2YXIgaDtudWxsPT09KGg9dGhpcy5fJEVTKXx8dm9pZCAwPT09aHx8aC5mb3JFYWNoKHY9Pnt2YXIgeTtyZXR1''@;'; + put 'put ''cm4gbnVsbD09PSh5PXYuaG9zdFVwZGF0ZWQpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmNhbGwodil9KSx0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLmhhc1VwZGF0ZWQ9ITAsdGhpcy5maXJzdFVwZGF0ZWQoZykpLHRoaXMudXBkYXRlZChnKX1fJEVrKCl7dGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5p''@;'; + put 'put ''c1VwZGF0ZVBlbmRpbmc9ITF9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl8kRV99c2hvdWxkVXBkYXRlKGcpe3JldHVybiEwfXVwZGF0ZShnKXt2b2lkIDAhPT10aGlzLl8kRUMmJih0''@;'; + put 'put ''aGlzLl8kRUMuZm9yRWFjaCgoaCx2KT0+dGhpcy5fJEVPKHYsdGhpc1t2XSxoKSksdGhpcy5fJEVDPXZvaWQgMCksdGhpcy5fJEVrKCl9dXBkYXRlZChnKXt9Zmlyc3RVcGRhdGVkKGcpe319dmFyIFdrOyQ3LmZpbmFsaXplZD0hMCwkNy5lbGVtZW50UHJvcGVydGllcz1uZXcgTWFwLCQ3LmVs''@;'; + put 'put ''ZW1lbnRTdHlsZXM9W10sJDcuc2hhZG93Um9vdE9wdGlvbnM9e21vZGU6Im9wZW4ifSxudWxsPT1aa3x8Wmsoe1JlYWN0aXZlRWxlbWVudDokN30pLChudWxsIT09KEtWPWdsb2JhbFRoaXMucmVhY3RpdmVFbGVtZW50VmVyc2lvbnMpJiZ2b2lkIDAhPT1LVj9LVjpnbG9iYWxUaGlzLnJlYWN0''@;'; + put 'put ''aXZlRWxlbWVudFZlcnNpb25zPVtdKS5wdXNoKCIxLjMuNCIpO2NvbnN0IHE3PWdsb2JhbFRoaXMudHJ1c3RlZFR5cGVzLCRWPXE3P3E3LmNyZWF0ZVBvbGljeSgibGl0LWh0bWwiLHtjcmVhdGVIVE1MOmQ9PmR9KTp2b2lkIDAsQXA9YGxpdCQkeyhNYXRoLnJhbmRvbSgpKyIiKS5zbGljZSg5''@;'; + put 'put ''KX0kYCxlOT0iPyIrQXAsV3k9YDwke2U5fT5gLFJhPWRvY3VtZW50LHVjPShkPSIiKT0+UmEuY3JlYXRlQ29tbWVudChkKSxZaz1kPT5udWxsPT09ZHx8Im9iamVjdCIhPXR5cGVvZiBkJiYiZnVuY3Rpb24iIT10eXBlb2YgZCxxVj1BcnJheS5pc0FycmF5LGFoPS88KD86KCEtLXxcL1teYS16''@;'; + put 'put ''QS1aXSl8KFwvP1thLXpBLVpdW14+XHNdKil8KFwvPyQpKS9nLGxoPS8tLT4vZyx0OT0vPi9nLHlwPVJlZ0V4cCgiPnxbIFx0XG5cZlxyXSg/OihbXlxcc1wiJz49L10rKShbIFx0XG5cZlxyXSo9WyBcdFxuXGZccl0qKD86W14gXHRcblxmXHJcIidgPD49XXwoXCJ8Jyl8KSl8JCkiLCJnIiks''@;'; + put 'put ''dGo9LycvZyxVaz0vIi9nLHdwPS9eKD86c2NyaXB0fHN0eWxlfHRleHRhcmVhfHRpdGxlKSQvaSxuaj1kPT4oZywuLi5oKT0+KHtfJGxpdFR5cGUkOmQsc3RyaW5nczpnLHZhbHVlczpofSkscjQ9bmooMSksZDFlPW5qKDIpLFl5PVN5bWJvbC5mb3IoImxpdC1ub0NoYW5nZSIpLE51PVN5bWJv''@;'; + put 'put ''bC5mb3IoImxpdC1ub3RoaW5nIiksSUs9bmV3IFdlYWtNYXAsREs9KGQsZyxoKT0+e3ZhciB2LHk7Y29uc3QgQz1udWxsIT09KHY9bnVsbD09aD92b2lkIDA6aC5yZW5kZXJCZWZvcmUpJiZ2b2lkIDAhPT12P3Y6ZztsZXQgST1DLl8kbGl0UGFydCQ7aWYodm9pZCAwPT09SSl7Y29uc3Qgaj1u''@;'; + put 'put ''dWxsIT09KHk9bnVsbD09aD92b2lkIDA6aC5yZW5kZXJCZWZvcmUpJiZ2b2lkIDAhPT15P3k6bnVsbDtDLl8kbGl0UGFydCQ9ST1uZXcgUXkoZy5pbnNlcnRCZWZvcmUodWMoKSxqKSxqLHZvaWQgMCxudWxsIT1oP2g6e30pfXJldHVybiBJLl8kQUkoZCksSX0sVXk9UmEuY3JlYXRlVHJlZVdh''@;'; + put 'put ''bGtlcihSYSwxMjksbnVsbCwhMSk7Y2xhc3MgUWt7Y29uc3RydWN0b3Ioe3N0cmluZ3M6ZyxfJGxpdFR5cGUkOmh9LHYpe2xldCB5O3RoaXMucGFydHM9W107bGV0IEM9MCxJPTA7Y29uc3Qgaj1nLmxlbmd0aC0xLHVlPXRoaXMucGFydHMsW19lLEJlXT0oKGQsZyk9Pntjb25zdCBoPWQubGVu''@;'; + put 'put ''Z3RoLTEsdj1bXTtsZXQgeSxDPTI9PT1nPyI8c3ZnPiI6IiIsST1haDtmb3IobGV0IHVlPTA7dWU8aDt1ZSsrKXtjb25zdCBfZT1kW3VlXTtsZXQgQmUsTmUsS2U9LTEsZHQ9MDtmb3IoO2R0PF9lLmxlbmd0aCYmKEkubGFzdEluZGV4PWR0LE5lPUkuZXhlYyhfZSksbnVsbCE9PU5lKTspZHQ9''@;'; + put 'put ''SS5sYXN0SW5kZXgsST09PWFoPyIhLS0iPT09TmVbMV0/ST1saDp2b2lkIDAhPT1OZVsxXT9JPXQ5OnZvaWQgMCE9PU5lWzJdPyh3cC50ZXN0KE5lWzJdKSYmKHk9UmVnRXhwKCI8LyIrTmVbMl0sImciKSksST15cCk6dm9pZCAwIT09TmVbM10mJihJPXlwKTpJPT09eXA/Ij4iPT09TmVbMF0/''@;'; + put 'put ''KEk9bnVsbCE9eT95OmFoLEtlPS0xKTp2b2lkIDA9PT1OZVsxXT9LZT0tMjooS2U9SS5sYXN0SW5kZXgtTmVbMl0ubGVuZ3RoLEJlPU5lWzFdLEk9dm9pZCAwPT09TmVbM10/eXA6JyInPT09TmVbM10/VWs6dGopOkk9PT1Va3x8ST09PXRqP0k9eXA6ST09PWxofHxJPT09dDk/ST1haDooST15''@;'; + put 'put ''cCx5PXZvaWQgMCk7Y29uc3QgT3Q9ST09PXlwJiZkW3VlKzFdLnN0YXJ0c1dpdGgoIi8+Iik/IiAiOiIiO0MrPUk9PT1haD9fZStXeTpLZT49MD8odi5wdXNoKEJlKSxfZS5zbGljZSgwLEtlKSsiJGxpdCQiK19lLnNsaWNlKEtlKStBcCtPdCk6X2UrQXArKC0yPT09S2U/KHYucHVzaCh2b2lk''@;'; + put 'put ''IDApLHVlKTpPdCl9Y29uc3Qgaj1DKyhkW2hdfHwiPD8+IikrKDI9PT1nPyI8L3N2Zz4iOiIiKTtpZighQXJyYXkuaXNBcnJheShkKXx8IWQuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm5bdm9pZCAwIT09''@;'; + put 'put ''JFY/JFYuY3JlYXRlSFRNTChqKTpqLHZdfSkoZyxoKTtpZih0aGlzLmVsPVFrLmNyZWF0ZUVsZW1lbnQoX2UsdiksVXkuY3VycmVudE5vZGU9dGhpcy5lbC5jb250ZW50LDI9PT1oKXtjb25zdCBOZT10aGlzLmVsLmNvbnRlbnQsS2U9TmUuZmlyc3RDaGlsZDtLZS5yZW1vdmUoKSxOZS5hcHBl''@;'; + put 'put ''bmQoLi4uS2UuY2hpbGROb2Rlcyl9Zm9yKDtudWxsIT09KHk9VXkubmV4dE5vZGUoKSkmJnVlLmxlbmd0aDxqOyl7aWYoMT09PXkubm9kZVR5cGUpe2lmKHkuaGFzQXR0cmlidXRlcygpKXtjb25zdCBOZT1bXTtmb3IoY29uc3QgS2Ugb2YgeS5nZXRBdHRyaWJ1dGVOYW1lcygpKWlmKEtlLmVu''@;'; + put 'put ''ZHNXaXRoKCIkbGl0JCIpfHxLZS5zdGFydHNXaXRoKEFwKSl7Y29uc3QgZHQ9QmVbSSsrXTtpZihOZS5wdXNoKEtlKSx2b2lkIDAhPT1kdCl7Y29uc3QgT3Q9eS5nZXRBdHRyaWJ1dGUoZHQudG9Mb3dlckNhc2UoKSsiJGxpdCQiKS5zcGxpdChBcCksJHQ9LyhbLj9AXSk/KC4qKS8uZXhlYyhk''@;'; + put 'put ''dCk7dWUucHVzaCh7dHlwZToxLGluZGV4OkMsbmFtZTokdFsyXSxzdHJpbmdzOk90LGN0b3I6Ii4iPT09JHRbMV0/T0s6Ij8iPT09JHRbMV0/aWo6IkAiPT09JHRbMV0/Uks6Smt9KX1lbHNlIHVlLnB1c2goe3R5cGU6NixpbmRleDpDfSl9Zm9yKGNvbnN0IEtlIG9mIE5lKXkucmVtb3ZlQXR0''@;'; + put 'put ''cmlidXRlKEtlKX1pZih3cC50ZXN0KHkudGFnTmFtZSkpe2NvbnN0IE5lPXkudGV4dENvbnRlbnQuc3BsaXQoQXApLEtlPU5lLmxlbmd0aC0xO2lmKEtlPjApe3kudGV4dENvbnRlbnQ9cTc/cTcuZW1wdHlTY3JpcHQ6IiI7Zm9yKGxldCBkdD0wO2R0PEtlO2R0KyspeS5hcHBlbmQoTmVbZHRd''@;'; + put 'put ''LHVjKCkpLFV5Lm5leHROb2RlKCksdWUucHVzaCh7dHlwZToyLGluZGV4OisrQ30pO3kuYXBwZW5kKE5lW0tlXSx1YygpKX19fWVsc2UgaWYoOD09PXkubm9kZVR5cGUpaWYoeS5kYXRhPT09ZTkpdWUucHVzaCh7dHlwZToyLGluZGV4OkN9KTtlbHNle2xldCBOZT0tMTtmb3IoOy0xIT09KE5l''@;'; + put 'put ''PXkuZGF0YS5pbmRleE9mKEFwLE5lKzEpKTspdWUucHVzaCh7dHlwZTo3LGluZGV4OkN9KSxOZSs9QXAubGVuZ3RoLTF9QysrfX1zdGF0aWMgY3JlYXRlRWxlbWVudChnLGgpe2NvbnN0IHY9UmEuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gdi5pbm5lckhUTUw9Zyx2fX1mdW5j''@;'; + put 'put ''dGlvbiBuOShkLGcsaD1kLHYpe3ZhciB5LEMsSSxqO2lmKGc9PT1ZeSlyZXR1cm4gZztsZXQgdWU9dm9pZCAwIT09dj9udWxsPT09KHk9aC5fJENsKXx8dm9pZCAwPT09eT92b2lkIDA6eVt2XTpoLl8kQ3U7Y29uc3QgX2U9WWsoZyk/dm9pZCAwOmcuXyRsaXREaXJlY3RpdmUkO3JldHVybihu''@;'; + put 'put ''dWxsPT11ZT92b2lkIDA6dWUuY29uc3RydWN0b3IpIT09X2UmJihudWxsPT09KEM9bnVsbD09dWU/dm9pZCAwOnVlLl8kQU8pfHx2b2lkIDA9PT1DfHxDLmNhbGwodWUsITEpLHZvaWQgMD09PV9lP3VlPXZvaWQgMDoodWU9bmV3IF9lKGQpLHVlLl8kQVQoZCxoLHYpKSx2b2lkIDAhPT12Pyhu''@;'; + put 'put ''dWxsIT09KEk9KGo9aCkuXyRDbCkmJnZvaWQgMCE9PUk/STpqLl8kQ2w9W10pW3ZdPXVlOmguXyRDdT11ZSksdm9pZCAwIT09dWUmJihnPW45KGQsdWUuXyRBUyhkLGcudmFsdWVzKSx1ZSx2KSksZ31jbGFzcyByantjb25zdHJ1Y3RvcihnLGgpe3RoaXMudj1bXSx0aGlzLl8kQU49dm9pZCAw''@;'; + put 'put ''LHRoaXMuXyRBRD1nLHRoaXMuXyRBTT1ofWdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBTS5wYXJlbnROb2RlfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfXAoZyl7dmFyIGg7Y29uc3R7ZWw6e2NvbnRlbnQ6dn0scGFydHM6eX09dGhpcy5fJEFELEM9KG51bGwhPT0o''@;'; + put 'put ''aD1udWxsPT1nP3ZvaWQgMDpnLmNyZWF0aW9uU2NvcGUpJiZ2b2lkIDAhPT1oP2g6UmEpLmltcG9ydE5vZGUodiwhMCk7VXkuY3VycmVudE5vZGU9QztsZXQgST1VeS5uZXh0Tm9kZSgpLGo9MCx1ZT0wLF9lPXlbMF07Zm9yKDt2b2lkIDAhPT1fZTspe2lmKGo9PT1fZS5pbmRleCl7bGV0IEJl''@;'; + put 'put ''OzI9PT1fZS50eXBlP0JlPW5ldyBReShJLEkubmV4dFNpYmxpbmcsdGhpcyxnKToxPT09X2UudHlwZT9CZT1uZXcgX2UuY3RvcihJLF9lLm5hbWUsX2Uuc3RyaW5ncyx0aGlzLGcpOjY9PT1fZS50eXBlJiYoQmU9bmV3IEJLKEksdGhpcyxnKSksdGhpcy52LnB1c2goQmUpLF9lPXlbKyt1ZV19''@;'; + put 'put ''aiE9PShudWxsPT1fZT92b2lkIDA6X2UuaW5kZXgpJiYoST1VeS5uZXh0Tm9kZSgpLGorKyl9cmV0dXJuIEN9bShnKXtsZXQgaD0wO2Zvcihjb25zdCB2IG9mIHRoaXMudil2b2lkIDAhPT12JiYodm9pZCAwIT09di5zdHJpbmdzPyh2Ll8kQUkoZyx2LGgpLGgrPXYuc3RyaW5ncy5sZW5ndGgt''@;'; + put 'put ''Mik6di5fJEFJKGdbaF0pKSxoKyt9fWNsYXNzIFF5e2NvbnN0cnVjdG9yKGcsaCx2LHkpe3ZhciBDO3RoaXMudHlwZT0yLHRoaXMuXyRBSD1OdSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBQT1nLHRoaXMuXyRBQj1oLHRoaXMuXyRBTT12LHRoaXMub3B0aW9ucz15LHRoaXMuXyRDXz1udWxs''@;'; + put 'put ''PT09KEM9bnVsbD09eT92b2lkIDA6eS5pc0Nvbm5lY3RlZCl8fHZvaWQgMD09PUN8fEN9Z2V0IF8kQVUoKXt2YXIgZyxoO3JldHVybiBudWxsIT09KGg9bnVsbD09PShnPXRoaXMuXyRBTSl8fHZvaWQgMD09PWc/dm9pZCAwOmcuXyRBVSkmJnZvaWQgMCE9PWg/aDp0aGlzLl8kQ199Z2V0IHBh''@;'; + put 'put ''cmVudE5vZGUoKXtsZXQgZz10aGlzLl8kQUEucGFyZW50Tm9kZTtjb25zdCBoPXRoaXMuXyRBTTtyZXR1cm4gdm9pZCAwIT09aCYmMTE9PT1nLm5vZGVUeXBlJiYoZz1oLnBhcmVudE5vZGUpLGd9Z2V0IHN0YXJ0Tm9kZSgpe3JldHVybiB0aGlzLl8kQUF9Z2V0IGVuZE5vZGUoKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5fJEFCfV8kQUkoZyxoPXRoaXMpe2c9bjkodGhpcyxnLGgpLFlrKGcpP2c9PT1OdXx8bnVsbD09Z3x8IiI9PT1nPyh0aGlzLl8kQUghPT1OdSYmdGhpcy5fJEFSKCksdGhpcy5fJEFIPU51KTpnIT09dGhpcy5fJEFIJiZnIT09WXkmJnRoaXMuVChnKTp2b2lkIDAhPT1nLl8kbGl0VHlw''@;'; + put 'put ''ZSQ/dGhpcy4kKGcpOnZvaWQgMCE9PWcubm9kZVR5cGU/dGhpcy5rKGcpOihkPT5xVihkKXx8ImZ1bmN0aW9uIj09dHlwZW9mKG51bGw9PWQ/dm9pZCAwOmRbU3ltYm9sLml0ZXJhdG9yXSkpKGcpP3RoaXMuUyhnKTp0aGlzLlQoZyl9aihnLGg9dGhpcy5fJEFCKXtyZXR1cm4gdGhpcy5fJEFB''@;'; + put 'put ''LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGcsaCl9ayhnKXt0aGlzLl8kQUghPT1nJiYodGhpcy5fJEFSKCksdGhpcy5fJEFIPXRoaXMuaihnKSl9VChnKXt0aGlzLl8kQUghPT1OdSYmWWsodGhpcy5fJEFIKT90aGlzLl8kQUEubmV4dFNpYmxpbmcuZGF0YT1nOnRoaXMuayhSYS5jcmVhdGVU''@;'; + put 'put ''ZXh0Tm9kZShnKSksdGhpcy5fJEFIPWd9JChnKXt2YXIgaDtjb25zdHt2YWx1ZXM6dixfJGxpdFR5cGUkOnl9PWcsQz0ibnVtYmVyIj09dHlwZW9mIHk/dGhpcy5fJEFDKGcpOih2b2lkIDA9PT15LmVsJiYoeS5lbD1Ray5jcmVhdGVFbGVtZW50KHkuaCx0aGlzLm9wdGlvbnMpKSx5KTtpZigo''@;'; + put 'put ''bnVsbD09PShoPXRoaXMuXyRBSCl8fHZvaWQgMD09PWg/dm9pZCAwOmguXyRBRCk9PT1DKXRoaXMuXyRBSC5tKHYpO2Vsc2V7Y29uc3QgST1uZXcgcmooQyx0aGlzKSxqPUkucCh0aGlzLm9wdGlvbnMpO0kubSh2KSx0aGlzLmsoaiksdGhpcy5fJEFIPUl9fV8kQUMoZyl7bGV0IGg9SUsuZ2V0''@;'; + put 'put ''KGcuc3RyaW5ncyk7cmV0dXJuIHZvaWQgMD09PWgmJklLLnNldChnLnN0cmluZ3MsaD1uZXcgUWsoZykpLGh9UyhnKXtxVih0aGlzLl8kQUgpfHwodGhpcy5fJEFIPVtdLHRoaXMuXyRBUigpKTtjb25zdCBoPXRoaXMuXyRBSDtsZXQgdix5PTA7Zm9yKGNvbnN0IEMgb2YgZyl5PT09aC5sZW5n''@;'; + put 'put ''dGg/aC5wdXNoKHY9bmV3IFF5KHRoaXMuaih1YygpKSx0aGlzLmoodWMoKSksdGhpcyx0aGlzLm9wdGlvbnMpKTp2PWhbeV0sdi5fJEFJKEMpLHkrKzt5PGgubGVuZ3RoJiYodGhpcy5fJEFSKHYmJnYuXyRBQi5uZXh0U2libGluZyx5KSxoLmxlbmd0aD15KX1fJEFSKGc9dGhpcy5fJEFBLm5l''@;'; + put 'put ''eHRTaWJsaW5nLGgpe3ZhciB2O2ZvcihudWxsPT09KHY9dGhpcy5fJEFQKXx8dm9pZCAwPT09dnx8di5jYWxsKHRoaXMsITEsITAsaCk7ZyYmZyE9PXRoaXMuXyRBQjspe2NvbnN0IHk9Zy5uZXh0U2libGluZztnLnJlbW92ZSgpLGc9eX19c2V0Q29ubmVjdGVkKGcpe3ZhciBoO3ZvaWQgMD09''@;'; + put 'put ''PXRoaXMuXyRBTSYmKHRoaXMuXyRDXz1nLG51bGw9PT0oaD10aGlzLl8kQVApfHx2b2lkIDA9PT1ofHxoLmNhbGwodGhpcyxnKSl9fWNsYXNzIEpre2NvbnN0cnVjdG9yKGcsaCx2LHksQyl7dGhpcy50eXBlPTEsdGhpcy5fJEFIPU51LHRoaXMuXyRBTj12b2lkIDAsdGhpcy5lbGVtZW50PWcs''@;'; + put 'put ''dGhpcy5uYW1lPWgsdGhpcy5fJEFNPXksdGhpcy5vcHRpb25zPUMsdi5sZW5ndGg+Mnx8IiIhPT12WzBdfHwiIiE9PXZbMV0/KHRoaXMuXyRBSD1BcnJheSh2Lmxlbmd0aC0xKS5maWxsKG5ldyBTdHJpbmcpLHRoaXMuc3RyaW5ncz12KTp0aGlzLl8kQUg9TnV9Z2V0IHRhZ05hbWUoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5lbGVtZW50LnRhZ05hbWV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9XyRBSShnLGg9dGhpcyx2LHkpe2NvbnN0IEM9dGhpcy5zdHJpbmdzO2xldCBJPSExO2lmKHZvaWQgMD09PUMpZz1uOSh0aGlzLGcsaCwwKSxJPSFZayhnKXx8ZyE9PXRoaXMuXyRBSCYmZyE9''@;'; + put 'put ''PVl5LEkmJih0aGlzLl8kQUg9Zyk7ZWxzZXtjb25zdCBqPWc7bGV0IHVlLF9lO2ZvcihnPUNbMF0sdWU9MDt1ZTxDLmxlbmd0aC0xO3VlKyspX2U9bjkodGhpcyxqW3YrdWVdLGgsdWUpLF9lPT09WXkmJihfZT10aGlzLl8kQUhbdWVdKSxJfHwoST0hWWsoX2UpfHxfZSE9PXRoaXMuXyRBSFt1''@;'; + put 'put ''ZV0pLF9lPT09TnU/Zz1OdTpnIT09TnUmJihnKz0obnVsbCE9X2U/X2U6IiIpK0NbdWUrMV0pLHRoaXMuXyRBSFt1ZV09X2V9SSYmIXkmJnRoaXMuUChnKX1QKGcpe2c9PT1OdT90aGlzLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHRoaXMubmFtZSk6dGhpcy5lbGVtZW50LnNldEF0dHJpYnV0''@;'; + put 'put ''ZSh0aGlzLm5hbWUsbnVsbCE9Zz9nOiIiKX19Y2xhc3MgT0sgZXh0ZW5kcyBKa3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTN9UChnKXt0aGlzLmVsZW1lbnRbdGhpcy5uYW1lXT1nPT09TnU/dm9pZCAwOmd9fWNvbnN0IGVMPXE3P3E3LmVtcHR5U2NyaXB0''@;'; + put 'put ''OiIiO2NsYXNzIGlqIGV4dGVuZHMgSmt7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT00fVAoZyl7ZyYmZyE9PU51P3RoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLGVMKTp0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHRoaXMubmFtZSl9''@;'; + put 'put ''fWNsYXNzIFJLIGV4dGVuZHMgSmt7Y29uc3RydWN0b3IoZyxoLHYseSxDKXtzdXBlcihnLGgsdix5LEMpLHRoaXMudHlwZT01fV8kQUkoZyxoPXRoaXMpe3ZhciB2O2lmKChnPW51bGwhPT0odj1uOSh0aGlzLGcsaCwwKSkmJnZvaWQgMCE9PXY/djpOdSk9PT1ZeSlyZXR1cm47Y29uc3QgeT10''@;'; + put 'put ''aGlzLl8kQUgsQz1nPT09TnUmJnkhPT1OdXx8Zy5jYXB0dXJlIT09eS5jYXB0dXJlfHxnLm9uY2UhPT15Lm9uY2V8fGcucGFzc2l2ZSE9PXkucGFzc2l2ZSxJPWchPT1OdSYmKHk9PT1OdXx8Qyk7QyYmdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMseSks''@;'; + put 'put ''SSYmdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsZyksdGhpcy5fJEFIPWd9aGFuZGxlRXZlbnQoZyl7dmFyIGgsdjsiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fJEFIP3RoaXMuXyRBSC5jYWxsKG51bGwhPT0odj1udWxsPT09KGg9dGhpcy5vcHRpb25zKXx8''@;'; + put 'put ''dm9pZCAwPT09aD92b2lkIDA6aC5ob3N0KSYmdm9pZCAwIT09dj92OnRoaXMuZWxlbWVudCxnKTp0aGlzLl8kQUguaGFuZGxlRXZlbnQoZyl9fWNsYXNzIEJLe2NvbnN0cnVjdG9yKGcsaCx2KXt0aGlzLmVsZW1lbnQ9Zyx0aGlzLnR5cGU9Nix0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBTT1o''@;'; + put 'put ''LHRoaXMub3B0aW9ucz12fWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQUkoZyl7bjkodGhpcyxnKX19Y29uc3Qgb2o9d2luZG93LmxpdEh0bWxQb2x5ZmlsbFN1cHBvcnQ7dmFyIGFqLHRMO251bGw9PW9qfHxvaihRayxReSksKG51bGwhPT0oV2s9Z2xvYmFsVGhpcy5saXRI''@;'; + put 'put ''dG1sVmVyc2lvbnMpJiZ2b2lkIDAhPT1Xaz9XazpnbG9iYWxUaGlzLmxpdEh0bWxWZXJzaW9ucz1bXSkucHVzaCgiMi4yLjciKTtjbGFzcyBKeSBleHRlbmRzICQ3e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJlbmRlck9wdGlvbnM9e2hvc3Q6dGhpc30sdGhpcy5f''@;'; + put 'put ''JERvPXZvaWQgMH1jcmVhdGVSZW5kZXJSb290KCl7dmFyIGcsaDtjb25zdCB2PXN1cGVyLmNyZWF0ZVJlbmRlclJvb3QoKTtyZXR1cm4gbnVsbCE9PShnPShoPXRoaXMucmVuZGVyT3B0aW9ucykucmVuZGVyQmVmb3JlKSYmdm9pZCAwIT09Z3x8KGgucmVuZGVyQmVmb3JlPXYuZmlyc3RDaGls''@;'; + put 'put ''ZCksdn11cGRhdGUoZyl7Y29uc3QgaD10aGlzLnJlbmRlcigpO3RoaXMuaGFzVXBkYXRlZHx8KHRoaXMucmVuZGVyT3B0aW9ucy5pc0Nvbm5lY3RlZD10aGlzLmlzQ29ubmVjdGVkKSxzdXBlci51cGRhdGUoZyksdGhpcy5fJERvPURLKGgsdGhpcy5yZW5kZXJSb290LHRoaXMucmVuZGVyT3B0''@;'; + put 'put ''aW9ucyl9Y29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgZztzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLG51bGw9PT0oZz10aGlzLl8kRG8pfHx2b2lkIDA9PT1nfHxnLnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgZztzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFj''@;'; + put 'put ''aygpLG51bGw9PT0oZz10aGlzLl8kRG8pfHx2b2lkIDA9PT1nfHxnLnNldENvbm5lY3RlZCghMSl9cmVuZGVyKCl7cmV0dXJuIFl5fX1KeS5maW5hbGl6ZWQ9ITAsSnkuXyRsaXRFbGVtZW50JD0hMCxudWxsPT09KGFqPWdsb2JhbFRoaXMubGl0RWxlbWVudEh5ZHJhdGVTdXBwb3J0KXx8dm9p''@;'; + put 'put ''ZCAwPT09YWp8fGFqLmNhbGwoZ2xvYmFsVGhpcyx7TGl0RWxlbWVudDpKeX0pO2NvbnN0IGxqPWdsb2JhbFRoaXMubGl0RWxlbWVudFBvbHlmaWxsU3VwcG9ydDtudWxsPT1sanx8bGooe0xpdEVsZW1lbnQ6Snl9KSwobnVsbCE9PSh0TD1nbG9iYWxUaGlzLmxpdEVsZW1lbnRWZXJzaW9ucykm''@;'; + put 'put ''JnZvaWQgMCE9PXRMP3RMOmdsb2JhbFRoaXMubGl0RWxlbWVudFZlcnNpb25zPVtdKS5wdXNoKCIzLjIuMiIpO2NvbnN0IFBLPUtEYEBjaGFyc2V0ICJVVEYtOCI7Omhvc3QsOnJvb3R7LS3OtDI6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UteHhzLCBjYWxjKDQgKiAxcmVtIC8gdmFy''@;'; + put 'put ''KC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKTstLc60Mzp2YXIoLS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS14cywgY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS3OtDQ6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2Utc20sIGNhbGMoMTIgKiAxcmVt''@;'; + put 'put ''IC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKTstLc60NTp2YXIoLS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS1tZCwgY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkpOy0tzrQ2OnZhcigtLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNlLWxnLCBjYWxjKDI0''@;'; + put 'put ''ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS3OtDc6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UteGwsIGNhbGMoMzIgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKX1bY2RzLWxheW91dH49IndyYXA6bm9uZSJde2ZsZXgtd3JhcDpub3dy''@;'; + put 'put ''YXAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2ZsZXgtZ3JvdzoxIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImFsaWduOnNocmluayJde2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50O2ZsZXgtZ3JvdzowIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF17''@;'; + put 'put ''ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWl0ZW1zOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt3aWR0aDoxMDAlO21hcmdpbjowO21pbi1oZWlnaHQ6MH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXR+''@;'; + put 'put ''PWhvcml6b250YWxdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dH49dmVydGljYWxdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLXRleHRde3dpZHRoOmluaXRpYWwhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246''@;'; + put 'put ''dG9wIl17YWxpZ24taXRlbXM6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il17anVzdGlm''@;'; + put 'put ''eS1jb250ZW50OmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtY2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246''@;'; + put 'put ''aG9yaXpvbnRhbC1jZW50ZXIiXXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1s''@;'; + put 'put ''YXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJvcmRlcjpyZXZlcnNlIl17ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2V9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLXN0cmV0Y2giXXtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaDtm''@;'; + put 'put ''bGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtc3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDth''@;'; + put 'put ''bGlnbi1jb250ZW50OnN0cmV0Y2g7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl0+KntmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxheW91''@;'; + put 'put ''dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJh''@;'; + put 'put ''bGlnbjpob3Jpem9udGFsLWNlbnRlciJde21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjp0b3AiXXthbGlnbi1zZWxmOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+''@;'; + put 'put ''PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246cmlnaHQiXXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0''@;'; + put 'put ''aWNhbF17d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSxbY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjp0b3AiXXtqdXN0aWZ5LWNvbnRlbnQ6Zmxl''@;'; + put 'put ''eC1zdGFydH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17YWxpZ24taXRlbXM6ZmxleC1zdGFydH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpyaWdodCJde2FsaWduLWl0ZW1zOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj12''@;'; + put 'put ''ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOnZlcnRpY2FsLWNlbnRlciJde2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1jZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZl''@;'; + put 'put ''cnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0ib3JkZXI6cmV2ZXJzZSJde2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfVtjZHMt''@;'; + put 'put ''bGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtc3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50''@;'; + put 'put ''OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJh''@;'; + put 'put ''bGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXXttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1j''@;'; + put 'put ''ZW50ZXIiXXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl17bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246cmlnaHQiXXttYXJnaW4tbGVm''@;'; + put 'put ''dDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17bWFyZ2luLXJpZ2h0OmF1dG99W2Nkcy1sYXlvdXR+PWdyaWRde2Rpc3BsYXk6Z3JpZDthbGlnbi1pdGVtczpzdGFydDthbGlnbi1jb250ZW50OnN0YXJ0O2dyaWQtdGVtcGxhdGUtY29sdW1u''@;'; + put 'put ''czpyZXBlYXQodmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtZ3JpZC1jb2xzLDEyKSwxZnIpO3dpZHRoOjEwMCV9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPXJvd3Nde2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoMTIsYXV0byl9W2Nkcy1sYXlvdXR+PWdyaWRdPltjZHMtbGF5b3V0''@;'; + put 'put ''Kj1yb3dde2FsaWduLXNlbGY6c3RyZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOnRvcCJde2FsaWduLWNvbnRlbnQ6c3RhcnR9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjpyaWdodCJde2p1c3RpZnktY29udGVudDplbmR9W2Nkcy1sYXlv''@;'; + put 'put ''dXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17anVzdGlmeS1jb250ZW50OnN0YXJ0fVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1zdHJldGNoIl17anVzdGlmeS1pdGVtczpzdHJldGNoO2p1c3RpZnktY29udGVudDpzdHJldGNofVtj''@;'; + put 'put ''ZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tY29udGVudDpzdHJldGNoO2p1c3RpZnktaXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9''@;'; + put 'put ''ImFsaWduOnZlcnRpY2FsLWNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtY2VudGVyIl17anVzdGlmeS1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRl''@;'; + put 'put ''cn1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfTo6c2xvdHRlZChbY2RzLWxheW91dH49ImRpc3BsYXk6''@;'; + put 'put ''c2NyZWVuLXJlYWRlci1vbmx5Il0pLFtjZHMtbGF5b3V0fj0iZGlzcGxheTpzY3JlZW4tcmVhZGVyLW9ubHkiXXtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7Y2xpcDpyZWN0KDFweCwxcHgsMXB4LDFweCk7Y2xpcC1wYXRoOmluc2V0KDUwJSk7cGFkZGluZzowO2JvcmRlcjowO2hlaWdo''@;'; + put 'put ''dDoxcHg7d2lkdGg6MXB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dG9wOjA7bGVmdDowO2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iZ2FwOm5vbmUiXXtnYXA6MH1bY2RzLWxheW91dCo9ImdhcDp4eHMiXXtnYXA6dmFyKC0tzrQyKX1bY2RzLWxh''@;'; + put 'put ''eW91dCo9ImdhcDp4cyJde2dhcDp2YXIoLS3OtDMpfVtjZHMtbGF5b3V0Kj0iZ2FwOnNtIl17Z2FwOnZhcigtLc60NCl9W2Nkcy1sYXlvdXQqPSJnYXA6bWQiXXtnYXA6dmFyKC0tzrQ1KX1bY2RzLWxheW91dCo9ImdhcDpsZyJde2dhcDp2YXIoLS3OtDYpfVtjZHMtbGF5b3V0fj0icDpub25l''@;'; + put 'put ''Il17cGFkZGluZzowIWltcG9ydGFudH1bY2RzLWxheW91dH49InA6eHhzIl17cGFkZGluZzp2YXIoLS3OtDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InA6eHMiXXtwYWRkaW5nOnZhcigtLc60MykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icDpzbSJde3BhZGRpbmc6dmFyKC0tzrQ0KSFp''@;'; + put 'put ''bXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwOm1kIl17cGFkZGluZzp2YXIoLS3OtDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im06bWQiXXttYXJnaW46dmFyKC0tzrQ1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwOmxnIl17cGFkZGluZzp2YXIoLS3OtDYpIWltcG9ydGFudH1bY2RzLWxh''@;'; + put 'put ''eW91dH49InAteTp4cyJde3BhZGRpbmctdG9wOnZhcigtLc60MykhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLc60MykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14OmxnIl17cGFkZGluZy1sZWZ0OnZhcigtLc60NikhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tzrQ2''@;'; + put 'put ''KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWw6bWQiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tzrQ1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXQ6bGciXXtwYWRkaW5nLXRvcDp2YXIoLS3OtDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYjpsZyJde3BhZGRpbmctYm90dG9tOnZh''@;'; + put 'put ''cigtLc60NikhaW1wb3J0YW50fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtbY2RzLWxheW91dCo9ImdhcEBtZDpsZyJde2dhcDp2YXIoLS3OtDYpfVtjZHMtbGF5b3V0fj0icEBtZDpsZyJde3BhZGRpbmc6dmFyKC0tzrQ2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQG1kOnhsIl17bWFy''@;'; + put 'put ''Z2luOnZhcigtLc60NykhaW1wb3J0YW50fX1bY2RzLWxheW91dH49ZmlsbF17d2lkdGg6MTAwJSFpbXBvcnRhbnR9Kiw6YWZ0ZXIsOmJlZm9yZXtib3gtc2l6aW5nOmJvcmRlci1ib3h9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLXN0cmV0''@;'; + put 'put ''Y2giXT46OnNsb3R0ZWQoKiksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl0+OjpzbG90dGVkKCopLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOnN0cmV0Y2giXT46OnNsb3R0ZWQoKil7ZmxleC1ncm93OjF9W2Nk''@;'; + put 'put ''cy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXSl7bWFyZ2luLXRvcDphdXRvO21hcmdpbi1ib3R0b206YXV0''@;'; + put 'put ''b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5''@;'; + put 'put ''b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl0pe21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpib3R0b20iXSl7bWFyZ2luLXRvcDphdXRvIWltcG9y''@;'; + put 'put ''dGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNh''@;'; + put 'put ''bF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17bWFyZ2luLXJpZ2h0OmF1dG99QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpe1tjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpz''@;'; + put 'put ''bG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6dmVydGljYWwtY2VudGVyIl0pe21hcmdpbi10b3A6YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZl''@;'; + put 'put ''cnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpob3Jpem9udGFsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOnRvcCJdKXttYXJnaW4tYm90dG9tOmF1dG8haW1w''@;'; + put 'put ''b3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Ym90dG9tIl0pe21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpyaWdodCJdKXtt''@;'; + put 'put ''YXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0b319QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1tjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5''@;'; + put 'put ''b3V0Kj0iYWxpZ25Ac206Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dmVydGljYWwtY2VudGVyIl0pe21hcmdpbi10b3A6YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0''@;'; + put 'put ''ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpob3Jpem9udGFsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChb''@;'; + put 'put ''Y2RzLWxheW91dCo9ImFsaWduQHNtOnRvcCJdKXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206Ym90dG9tIl0pe21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZl''@;'; + put 'put ''cnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0b319QG1lZGlhIChtaW4td2lk''@;'; + put 'put ''dGg6OTkycHgpe1tjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6dmVydGljYWwtY2VudGVyIl0pe21hcmdpbi10b3A6YXV0''@;'; + put 'put ''bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpob3Jpem9udGFsLWNlbnRlciJdKXth''@;'; + put 'put ''bGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOnRvcCJdKXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6''@;'; + put 'put ''Ym90dG9tIl0pe21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0i''@;'; + put 'put ''YWxpZ25AbWQ6bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0b319QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXtbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2Rz''@;'; + put 'put ''LWxheW91dCo9ImFsaWduQGxnOnZlcnRpY2FsLWNlbnRlciJdKXttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpz''@;'; + put 'put ''bG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6aG9yaXpvbnRhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzp0b3AiXSl7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH1bY2Rz''@;'; + put 'put ''LWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmJvdHRvbSJdKXttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6cmlnaHQiXSl7bWFyZ2luLWxlZnQ6''@;'; + put 'put ''YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG99fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGln''@;'; + put 'put ''bkB4bDpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp2ZXJ0aWNhbC1jZW50ZXIiXSl7bWFyZ2luLXRvcDphdXRvO21hcmdpbi1ib3R0b206YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxh''@;'; + put 'put ''eW91dCo9ImFsaWduQHhsOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmhvcml6b250YWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0''@;'; + put 'put ''Kj0iYWxpZ25AeGw6dG9wIl0pe21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpib3R0b20iXSl7bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6''@;'; + put 'put ''c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvfX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0g''@;'; + put 'put ''OjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRl''@;'; + put 'put ''ZChbY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1jZW50ZXIiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtj''@;'; + put 'put ''ZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjp0b3AiXSl7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpib3R0b20iXSl7YWxpZ24tc2VsZjpmbGV4LWVu''@;'; + put 'put ''ZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXSl7bWFyZ2luLXJp''@;'; + put 'put ''Z2h0OmF1dG8haW1wb3J0YW50fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXtbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGln''@;'; + put 'put ''bkB4czp2ZXJ0aWNhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25A''@;'; + put 'put ''eHM6aG9yaXpvbnRhbC1jZW50ZXIiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czp0b3AiXSl7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0''@;'; + put 'put ''fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpib3R0b20iXSl7YWxpZ24tc2VsZjpmbGV4LWVuZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6cmlnaHQiXSl7bWFyZ2luLWxl''@;'; + put 'put ''ZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6''@;'; + put 'put ''c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dmVydGljYWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNs''@;'; + put 'put ''b3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOmhvcml6b250YWwtY2VudGVyIl0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWlt''@;'; + put 'put ''cG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dG9wIl0pe2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206Ym90dG9tIl0pe2Fs''@;'; + put 'put ''aWduLXNlbGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGln''@;'; + put 'put ''bkBzbTpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpe1tjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xv''@;'; + put 'put ''dHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOnZlcnRpY2FsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0''@;'; + put 'put ''ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpob3Jpem9udGFsLWNlbnRlciJdKXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOnRvcCJd''@;'; + put 'put ''KXthbGlnbi1zZWxmOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOmJvdHRvbSJdKXthbGlnbi1zZWxmOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGln''@;'; + put 'put ''bkBtZDpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7W2Nk''@;'; + put 'put ''cy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6dmVydGljYWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMt''@;'; + put 'put ''bGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmhvcml6b250YWwtY2VudGVyIl0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0''@;'; + put 'put ''YW50O21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6dG9wIl0pe2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0''@;'; + put 'put ''Kj0iYWxpZ25AbGc6Ym90dG9tIl0pe2FsaWduLXNlbGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNs''@;'; + put 'put ''b3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTQ0MHB4KXtbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6Y2VudGVyIl0pLFtjZHMt''@;'; + put 'put ''bGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp2ZXJ0aWNhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmNlbnRlciJdKSxbY2RzLWxh''@;'; + put 'put ''eW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6aG9yaXpvbnRhbC1jZW50ZXIiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nk''@;'; + put 'put ''cy1sYXlvdXQqPSJhbGlnbkB4bDp0b3AiXSl7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpib3R0b20iXSl7YWxpZ24tc2VsZjpmbGV4LWVuZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpz''@;'; + put 'put ''bG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fX1bY2Rz''@;'; + put 'put ''LXRleHRde2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNhbnMtc2VyaWYpO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9W2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj1ncmlkXTo6YWZ0''@;'; + put 'put ''ZXIsW2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj1ncmlkXTo6YmVmb3JlLFtjZHMtdGV4dF1bY2RzLWxheW91dH49aG9yaXpvbnRhbF06OmFmdGVyLFtjZHMtdGV4dF1bY2RzLWxheW91dH49aG9yaXpvbnRhbF06OmJlZm9yZSxbY2RzLXRleHRdW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXTo6YWZ0ZXIs''@;'; + put 'put ''W2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF06OmJlZm9yZXtkaXNwbGF5Om5vbmV9W2Nkcy10ZXh0Kj1kaXNwbGF5XSxbY2RzLXRleHQqPXNlY3Rpb25dLFtjZHMtdGV4dCo9c3Vic2VjdGlvbl0sW2Nkcy10ZXh0Kj10aXRsZV17Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWdsb2JhbC10''@;'; + put 'put ''eXBvZ3JhcGh5LWhlYWRlci1mb250LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNhbnMtc2VyaWYpO2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci00MDAsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tOTAwLCMyMTMzM2Ip''@;'; + put 'put ''KX1bY2RzLXRleHQqPWJvZHldLFtjZHMtdGV4dCo9bWVzc2FnZV0sW2Nkcy10ZXh0Kj1zZWNvbmRhcnlde2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci01MDAsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibGFjaywjMDAwKSl9W2Nkcy10ZXh0Kj1pbmxpbmVde3dpZHRo''@;'; + put 'put ''OmF1dG8haW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH1bY2RzLXRleHQqPWRpc3BsYXlde2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1mb250LXNpemUsY2FsYyg0MCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjAp''@;'; + put 'put ''KSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc3BsYXktZm9udC13ZWlnaHQsNDAwKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1saW5lLWhlaWdodCwxLjFlbSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2Jh''@;'; + put 'put ''bC10eXBvZ3JhcGh5LWRpc3BsYXktbGV0dGVyLXNwYWNpbmcsLS4wMTI1ZW0pfVtjZHMtdGV4dCo9ZGlzcGxheV06OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkt''@;'; + put 'put ''dG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1saW5lLWhlaWdodCwxLjFlbSkgLSAxZW0pLyAyKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPWRpc3BsYXldOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7''@;'; + put 'put ''aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9i''@;'; + put 'put ''YWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1kaXNwbGF5LWxpbmUtaGVpZ2h0LDEuMWVtKSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9dGl0bGVde2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFs''@;'; + put 'put ''LXR5cG9ncmFwaHktdGl0bGUtZm9udC1zaXplLGNhbGMoMjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1mb250LXdlaWdodCw0MDApO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwt''@;'; + put 'put ''dHlwb2dyYXBoeS10aXRsZS1saW5lLWhlaWdodCwxLjE2NjY3ZW0pO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1sZXR0ZXItc3BhY2luZywtLjAwODMzM2VtKX1bY2RzLXRleHQqPXRpdGxlXTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9j''@;'; + put 'put ''aztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1saW5lLWhlaWdodCwxLjE2NjY3ZW0pIC0gMWVtKS8g''@;'; + put 'put ''MikpKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj10aXRsZV06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgLSB2''@;'; + put 'put ''YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRpdGxlLWxpbmUtaGVpZ2h0LDEuMTY2NjdlbSkg''@;'; + put 'put ''LSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPXNlY3Rpb25de2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2VjdGlvbi1mb250LXNpemUsY2FsYygyMCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7Zm9udC13ZWlnaHQ6dmFyKC0t''@;'; + put 'put ''Y2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tZm9udC13ZWlnaHQsNDAwKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2VjdGlvbi1saW5lLWhlaWdodCwxLjJlbSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24t''@;'; + put 'put ''bGV0dGVyLXNwYWNpbmcsLS4wMWVtKX1bY2RzLXRleHQqPXNlY3Rpb25dOjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0p''@;'; + put 'put ''ICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tbGluZS1oZWlnaHQsMS4yZW0pIC0gMWVtKS8gMikpKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj1zZWN0aW9uXTo6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2lu''@;'; + put 'put ''LXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQsLjE3MDNlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQs''@;'; + put 'put ''LjUxN2VtKSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2VjdGlvbi1saW5lLWhlaWdodCwxLjJlbSkgLSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPXN1YnNlY3Rpb25de2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc3Vic2Vj''@;'; + put 'put ''dGlvbi1mb250LXNpemUsY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tZm9udC13ZWlnaHQsNDAwKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFw''@;'; + put 'put ''aHktc3Vic2VjdGlvbi1saW5lLWhlaWdodCwxLjI1ZW0pO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxldHRlci1zcGFjaW5nLC0uMDEyNWVtKX1bY2RzLXRleHQqPXN1YnNlY3Rpb25dOjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJs''@;'; + put 'put ''b2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tbGluZS1oZWlnaHQsMS4yNWVtKSAtIDFl''@;'; + put 'put ''bSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9c3Vic2VjdGlvbl06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0''@;'; + put 'put ''NzVlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tbGluZS1oZWln''@;'; + put 'put ''aHQsMS4yNWVtKSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9Ym9keV17Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWJvZHktZm9udC13ZWlnaHQsNDAwKTtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWJvZHktZm9udC1z''@;'; + put 'put ''aXplLGNhbGMoMTQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1ib2R5LWxldHRlci1zcGFjaW5nLC0uMDE0Mjg2ZW0pO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1i''@;'; + put 'put ''b2R5LWxpbmUtaGVpZ2h0LDEuNDI4NTdlbSl9W2Nkcy10ZXh0Kj1ib2R5XTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVt''@;'; + put 'put ''KSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1ib2R5LWxpbmUtaGVpZ2h0LDEuNDI4NTdlbSkgLSAxZW0pLyAyKSkqLTEpICsgLjFlbSl9W2Nkcy10ZXh0Kj1ib2R5XTo6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRv''@;'; + put 'put ''cDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQsLjE3MDNlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQsLjUx''@;'; + put 'put ''N2VtKSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCwxLjQyODU3ZW0pIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1tZXNzYWdlXXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3NhZ2UtZm9u''@;'; + put 'put ''dC1zaXplLGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWZvbnQtd2VpZ2h0LGNhbGMoNDAwICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtsaW5lLWhl''@;'; + put 'put ''aWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbWVzc2FnZS1saW5lLWhlaWdodCwxLjI1ZW0pO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWxldHRlci1zcGFjaW5nLC0uMDEyNWVtKX1bY2RzLXRleHQqPW1lc3NhZ2VdOjpiZWZvcmV7''@;'; + put 'put ''Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3NhZ2UtbGluZS1o''@;'; + put 'put ''ZWlnaHQsMS4yNWVtKSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9bWVzc2FnZV06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9w''@;'; + put 'put ''LWdhcC1oZWlnaHQsLjE0NzVlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3Nh''@;'; + put 'put ''Z2UtbGluZS1oZWlnaHQsMS4yNWVtKSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9c2Vjb25kYXJ5XXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXNpemUsY2FsYygxMyAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJh''@;'; + put 'put ''c2UsMjApKSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXdlaWdodCw0MDApO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQsMS4yMzA3N2VtKTtsZXR0ZXItc3BhY2luZzp2''@;'; + put 'put ''YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nLC0uMDA3NjkyZW0pfVtjZHMtdGV4dCo9c2Vjb25kYXJ5XTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNk''@;'; + put 'put ''cy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQsMS4yMzA3N2VtKSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9c2Vjb25kYXJ5XTo6YWZ0''@;'; + put 'put ''ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWln''@;'; + put 'put ''aHQsLjE3MDNlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQsLjUxN2VtKSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxpbmUtaGVpZ2h0LDEuMjMwNzdlbSkgLSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHR+''@;'; + put 'put ''PWxpbmtde2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1saW5rLWNvbG9yLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS04MDAsIzAwNjA4YSkpIWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIWltcG9ydGFudDtsaW5lLWhlaWdodDppbmhlcml0IWltcG9y''@;'; + put 'put ''dGFudDtmb250LXNpemU6aW5oZXJpdCFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1saW5rXTpmb2N1c3tvdXRsaW5lOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZSxIaWdobGlnaHQgc29saWQgMnB4KTtvdXRsaW5lLW9mZnNldDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0''@;'; + put 'put ''LWludGVyYWN0aW9uLW91dGxpbmUtb2Zmc2V0LDFweCl9W2Nkcy10ZXh0fj1saW5rXTpob3Zlcntjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbGluay1jb2xvci1ob3Zlcix2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtOTAwLCMwMDRiNmIpKSFpbXBvcnRhbnR9W2Nkcy10''@;'; + put 'put ''ZXh0fj1saW5rXTp2aXNpdGVkOm5vdChbY2RzLXRleHR+PXN0YXRpY10pe2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1saW5rLWNvbG9yLXZpc2l0ZWQsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1sYXZlbmRlci02MDAsIzNiNDBjZSkpIWltcG9ydGFudH1bY2RzLXRleHR+PWxp''@;'; + put 'put ''bmtdOnZpc2l0ZWQ6bm90KFtjZHMtdGV4dH49c3RhdGljXSk6aG92ZXJ7Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWxpbmstY29sb3ItdmlzaXRlZC1ob3Zlcix2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTcwMCwjMjQyOWMyKSkhaW1wb3J0YW50fUBtZWRpYSAo''@;'; + put 'put ''LXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApe1tjZHMtdGV4dD1saW5rXTpmb2N1c3tvdXRsaW5lOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZS13ZWJraXQsNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yKX19W2Nkcy10ZXh0fj1jb2Rl''@;'; + put 'put ''XXtjb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlcix2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC03MDAsI2UwMjIwMCkpO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtmb250LXNpemU6MS4xZW19W2Nkcy1kaXZpZGVyXXtkaXNwbGF5OmJsb2NrO2hlaWdodDp2YXIoLS1jZHMtYWxp''@;'; + put 'put ''YXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDAsY2FsYygxICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtvdmVyZmxvdzpoaWRkZW47Ym94LXNoYWRvdzp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1jb2xvcix2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVj''@;'; + put 'put ''dGlvbi0yMDAsI2NiZDRkOCkpIDAgMCAwIHZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCxjYWxjKDEgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpIGluc2V0fVtjZHMtdGV4dH49bGlnaHRde2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlw''@;'; + put 'put ''b2dyYXBoeS1mb250LXdlaWdodC1saWdodCwzMDApIWltcG9ydGFudH1bY2RzLXRleHR+PWp1c3RpZnlde3RleHQtYWxpZ246anVzdGlmeSFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1sZWZ0XXt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fVtjZHMtdGV4dH49cmlnaHRde3RleHQtYWxpZ246cmln''@;'; + put 'put ''aHQhaW1wb3J0YW50fVtjZHMtdGV4dH49Y2VudGVyXXt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1saGVde3BhZGRpbmc6LjA1cHggMH1bY2RzLXRleHR+PWxoZV06OmJlZm9yZXtjb250ZW50OiIiO21hcmdpbi10b3A6LS4xMjRlbTtkaXNwbGF5OmJsb2NrO2hlaWdo''@;'; + put 'put ''dDowfVtjZHMtdGV4dH49bGhlXTo6YWZ0ZXJ7Y29udGVudDoiIjttYXJnaW4tYm90dG9tOi0uMjIxZW07ZGlzcGxheTpibG9jaztoZWlnaHQ6MH1bY2RzLXRleHQqPWgyXSxbY2RzLXRleHQqPWgzXXtmb250LWZhbWlseTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktaGVhZGVyLWZvbnQt''@;'; + put 'put ''ZmFtaWx5LCAiQ2xhcml0eSBDaXR5IiwgIkF2ZW5pciBOZXh0Iiwgc2Fucy1zZXJpZik7Zm9udC1zaXplOjEuNHJlbTtmb250LXdlaWdodDoyMDA7Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNvbG9yLTQwMCk7bGluZS1oZWlnaHQ6MS43MTQzZW07bGV0dGVyLXNwYWNpbmc6''@;'; + put 'put ''LS4wMTc4NTdlbX1bY2RzLXRleHQqPWgyXTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSArIGNhbGMoKDEuNzE0M2Vt''@;'; + put 'put ''IC0gMWVtKS8gMikpKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj1oMl06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVl''@;'; + put 'put ''bSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygoMS43MTQzZW0gLSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPWgzXXtm''@;'; + put 'put ''b250LXNpemU6MS4xcmVtO2xpbmUtaGVpZ2h0OjEuMDkwOWVtO2xldHRlci1zcGFjaW5nOi0uMDEzNjM2ZW19W2Nkcy10ZXh0Kj1oM106OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFs''@;'; + put 'put ''LXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCgxLjA5MDllbSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9aDNdOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVt''@;'; + put 'put ''IC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMo''@;'; + put 'put ''KDEuMDkwOWVtIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9Omhvc3R7YWxsOmluaXRpYWw7ZGlzcGxheTpibG9jazt2aXNpYmlsaXR5OmluaGVyaXQ7Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAiQ2xhcml0eSBDaXR5IiwgIkF2ZW5pciBO''@;'; + put 'put ''ZXh0Iiwgc2Fucy1zZXJpZik7Y29udGFpbjpsYXlvdXQ7Ym94LXNpemluZzpib3JkZXItYm94IWltcG9ydGFudDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZSFpbXBvcnRhbnR9Kiw6YWZ0ZXIsOmJlZm9yZXtib3gtc2l6aW5nOmluaGVyaXQhaW1wb3J0YW50fXNsb3R7Zm9udC1mYW1pbHk6dmFy''@;'; + put 'put ''KC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAiQ2xhcml0eSBDaXR5IiwgIkF2ZW5pciBOZXh0Iiwgc2Fucy1zZXJpZik7ZGlzcGxheTpjb250ZW50cyFpbXBvcnRhbnR9OjpzbG90dGVkKCope2ZvbnQtZmFtaWx5OmluaGVyaXQ7Ym94LXNpemluZzppbmhlcml0fTo6c2xv''@;'; + put 'put ''dHRlZCgqKTo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNvbG9yLTIwMCx2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDAsIzRmNjE2OSkpfTpob3N0KFtfaXMtYW5jaG9yXSksOmhvc3QoW3JvbGU9YnV0dG9uXSl7Y3Vyc29yOnBv''@;'; + put 'put ''aW50ZXIhaW1wb3J0YW50fTpob3N0KFtfaXMtYW5jaG9yXSkgOjpzbG90dGVkKCopLDpob3N0KFtyb2xlPWJ1dHRvbl0pIDo6c2xvdHRlZCgqKXtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9Omhvc3QoW3JvbGU9YnV0dG9uXVtkaXNhYmxlZF0pe2N1cnNvcjpub3QtYWxsb3dlZCFpbXBvcnRh''@;'; + put 'put ''bnR9Omhvc3QoW3JvbGU9YnV0dG9uXVtkaXNhYmxlZF0pIDo6c2xvdHRlZCgqKXtjdXJzb3I6bm90LWFsbG93ZWQhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmV9Omhvc3QoW2hpZGRlbl0pLFtoaWRkZW5de2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Omhvc3QoW2hpZGRlbio9ZmFsc2Vd''@;'; + put 'put ''KXtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH06aG9zdChbcm9sZT1kaWFsb2ddW2hpZGRlbl0pLDpob3N0KFtyb2xlPWRpYWxvZ11baGlkZGVuXSkgOjpzbG90dGVkKCope2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudH06aG9zdChbcm9sZT1kaWFs''@;'; + put 'put ''b2ddW2hpZGRlbio9ZmFsc2VdKSw6aG9zdChbcm9sZT1kaWFsb2ddW2hpZGRlbio9ZmFsc2VdKSA6OnNsb3R0ZWQoKil7dmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudH06aG9zdChbX2ZvY3VzZWRdKSAuaW5wdXQsOmhvc3QoW19mb2N1c2VkXSkgW2ZvY3VzYWJsZV0sOmhvc3QoW3RhYmlu''@;'; + put 'put ''ZGV4PSIwIl06Zm9jdXMpLDpob3N0KFt0YWJpbmRleD0iMCJdOmZvY3VzKSBbZm9jdXNhYmxlXSxbdGFiaW5kZXg9IjAiXVtmb2N1c2FibGVdOmZvY3Vze291dGxpbmU6SGlnaGxpZ2h0IHNvbGlkIDJweDtvdXRsaW5lOjVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtvdXRsaW5l''@;'; + put 'put ''LW9mZnNldDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW91dGxpbmUtb2Zmc2V0LDFweCl9YDtmdW5jdGlvbiBzaihkKXtyZXR1cm5gY2FsYygoJHtkfSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSkpICogMXJlbSlgfWNvbnN0IHkxZT0oZCxnKT0+Im1ldGhvZCI9PT1nLmtp''@;'; + put 'put ''bmQmJmcuZGVzY3JpcHRvciYmISgidmFsdWUiaW4gZy5kZXNjcmlwdG9yKT9aeihncyh7fSxnKSx7ZmluaXNoZXIoaCl7aC5jcmVhdGVQcm9wZXJ0eShnLmtleSxkKX19KTp7a2luZDoiZmllbGQiLGtleTpTeW1ib2woKSxwbGFjZW1lbnQ6Im93biIsZGVzY3JpcHRvcjp7fSxvcmlnaW5hbEtl''@;'; + put 'put ''eTpnLmtleSxpbml0aWFsaXplcigpeyJmdW5jdGlvbiI9PXR5cGVvZiBnLmluaXRpYWxpemVyJiYodGhpc1tnLmtleV09Zy5pbml0aWFsaXplci5jYWxsKHRoaXMpKX0sZmluaXNoZXIoaCl7aC5jcmVhdGVQcm9wZXJ0eShnLmtleSxkKX19O2Z1bmN0aW9uIEZLKGQpe3JldHVybihnLGgpPT52''@;'; + put 'put ''b2lkIDAhPT1oP3ZvaWQgZy5jb25zdHJ1Y3Rvci5jcmVhdGVQcm9wZXJ0eShoLGQpOnkxZShkLGcpfWZ1bmN0aW9uIEhLKGQsZyl7c3dpdGNoKGcmJmcudHlwZSl7Y2FzZSBBcnJheTpjYXNlIE9iamVjdDpyZXR1cm4gZ3Moe3JlZmxlY3Q6ITF9LGcpO2Nhc2UgU3RyaW5nOnJldHVybiBncyh7''@;'; + put 'put ''cmVmbGVjdDohMCxhdHRyaWJ1dGU6RjcoZCksY29udmVydGVyOnt0b0F0dHJpYnV0ZTpoPT5ofHxudWxsfX0sZyk7Y2FzZSBOdW1iZXI6cmV0dXJuIGdzKHtyZWZsZWN0OiEwLGF0dHJpYnV0ZTpGNyhkKX0sZyk7Y2FzZSBCb29sZWFuOnJldHVybiBncyh7cmVmbGVjdDohMCxhdHRyaWJ1dGU6''@;'; + put 'put ''RjcoZCksY29udmVydGVyOnt0b0F0dHJpYnV0ZTpoPT5oPyIiOm51bGwsZnJvbUF0dHJpYnV0ZTpoPT5mdW5jdGlvbiB1MWUoZCl7cmV0dXJuIG51bGwhPWQmJiIiK2QhPSJmYWxzZSJ9KGgpfX0sZyk7Y2FzZSBEYXRlOnJldHVybiBncyh7cmVmbGVjdDohMSxjb252ZXJ0ZXI6e2Zyb21BdHRy''@;'; + put 'put ''aWJ1dGU6aD0+bmV3IERhdGUoaCl9fSxnKTtkZWZhdWx0OnJldHVybiBncyh7fSxnKX19ZnVuY3Rpb24gRTEoZCl7cmV0dXJuKGcsaCk9PihudWxsIT1kJiZkLnJlcXVpcmVkJiZmdW5jdGlvbiB3MWUoZCxnLGgpe2NvbnN0IHY9ZC5maXJzdFVwZGF0ZWQ7ZC5maXJzdFVwZGF0ZWQ9ZnVuY3Rp''@;'; + put 'put ''b24oeSl7aWYoaCYmaC5yZXF1aXJlZCYmJDYodGhpc1tnXSkpe2NvbnN0IEM9aC5yZXF1aXJlZE1lc3NhZ2V8fGZ1bmN0aW9uKEk9Indhcm5pbmciLGosdWUpe2NvbnN0IF9lPXVlLnRvTG9jYWxlTG93ZXJDYXNlKCk7cmV0dXJuYCR7JEooSSl9OiAke2p9IGlzIHJlcXVpcmVkIHRvIHVzZSAk''@;'; + put 'put ''e19lfSBjb21wb25lbnQuIFNldCB0aGUgSlMgUHJvcGVydHkgb3IgSFRNTCBBdHRyaWJ1dGUuXG5cbmArKEpOKCk/YEFuZ3VsYXI6IDwke19lfSBbJHtqfV09Ii4uLiI+PC8ke19lfT5cbmA6IiIpKyhRSigpP2BWdWU6IDwke19lfSA6JHtqfT0iLi4uIj48LyR7X2V9PlxuYDoiIikrKFhOKCk/''@;'; + put 'put ''YFJlYWN0OiA8JHtmdW5jdGlvbiBnc2UoZCl7cmV0dXJuICRKKGZ1bmN0aW9uIHBzZShkKXtyZXR1cm4gZC5zcGxpdCgiLSIpLm1hcCgoZyxoKT0+aD9nLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2cuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTpnKS5qb2luKCIiKX0oZCkpfShfZSl9ICR7QmU9''@;'; + put 'put ''aixCZS5zdGFydHNXaXRoKCJhcmlhIik/RjcoQmUpOkJlfT17Li4ufSAvPlxuYDoiIikrYEhUTUw6IDwke19lfSAke0Y3KGopfT0iLi4uIj48LyR7X2V9PlxuSmF2YVNjcmlwdDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignJHtfZX0nKS4ke2p9ID0gJy4uLic7XG5cbmA7dmFyIEJlfShoLnJl''@;'; + put 'put ''cXVpcmVkLGcsdGhpcy50YWdOYW1lKTtpZigiZXJyb3IiPT09aC5yZXF1aXJlZCl0aHJvdyBFcnJvcihDKTtONy53YXJuKEMsdGhpcyl9diYmdi5jYWxsKHRoaXMseSl9fShnLGgsZCksRksoSEsoaCxkKSkoZyxoKSl9ZnVuY3Rpb24gTksoZCl7cmV0dXJuKGcsaCk9Pntjb25zdCB2PUhLKGgs''@;'; + put 'put ''ZCk7cmV0dXJuIHYmJih2LnJlZmxlY3Q9IShudWxsPT1kfHwhZC5yZWZsZWN0KSYmZC5yZWZsZWN0LHYucmVmbGVjdCYmIShudWxsIT1kJiZkLmF0dHJpYnV0ZSkmJih2LmF0dHJpYnV0ZT0iXyIrRjcoaCkpKSxGSyh2KShnLGgpfX12YXIgYnAsQzFlPUtEYEBrZXlmcmFtZXMgZmFkZUluQW5k''@;'; + put 'put ''T3V0ezAlLHRve29wYWNpdHk6MH03NSV7b3BhY2l0eToxfX06aG9zdHstLWNvbG9yOmN1cnJlbnRDb2xvcjtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO3dpZHRo''@;'; + put 'put ''OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4td2lkdGg6dmFy''@;'; + put 'put ''KC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21hcmdpbjowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtmaWxsOnZhcigtLWNvbG9yKTtjb2xvcjp2YXIoLS1jb2xvcik7Y29udGFpbjpzdHJpY3Q7Y3Vyc29yOmluaGVyaXR9''@;'; + put 'put ''c3Zne2Rpc3BsYXk6YmxvY2t9Omhvc3QoW3NpemUqPXhzXSl7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxjKDggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxjKDggKiAxcmVtIC8gdmFyKC0t''@;'; + put 'put ''Y2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01LGNhbGMoOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxjKDggKiAxcmVtIC8gdmFyKC0tY2RzLWds''@;'; + put 'put ''b2JhbC1iYXNlLDIwKSkpfTpob3N0KFtzaXplKj1zbV0pe2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcsY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0t''@;'; + put 'put ''Y2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcsY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMt''@;'; + put 'put ''Z2xvYmFsLWJhc2UsMjApKSl9Omhvc3QoW3NpemUqPW1kXSl7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSxjYWxjKDI0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTksY2FsYygyNCAqIDFyZW0gLyB2YXIo''@;'; + put 'put ''LS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTksY2FsYygyNCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSxjYWxjKDI0ICogMXJlbSAvIHZhcigtLWNk''@;'; + put 'put ''cy1nbG9iYWwtYmFzZSwyMCkpKX06aG9zdChbc2l6ZSo9bGddKXtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSxjYWxjKDM2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExLGNhbGMoMzYgKiAxcmVtIC8g''@;'; + put 'put ''dmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSxjYWxjKDM2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSxjYWxjKDM2ICogMXJlbSAvIHZh''@;'; + put 'put ''cigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKX06aG9zdChbc2l6ZSo9eGxdKXtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMixjYWxjKDQ4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEyLGNhbGMoNDggKiAx''@;'; + put 'put ''cmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMixjYWxjKDQ4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMixjYWxjKDQ4ICogMXJl''@;'; + put 'put ''bSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKX06aG9zdChbc2l6ZSo9eHhsXSl7aGVpZ2h0OmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMyxjYWxjKDY0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxj''@;'; + put 'put ''KDggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpKTt3aWR0aDpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTMsY2FsYyg2NCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAv''@;'; + put 'put ''IHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKSk7bWluLWhlaWdodDpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTMsY2FsYyg2NCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigt''@;'; + put 'put ''LWNkcy1nbG9iYWwtYmFzZSwyMCkpKSk7bWluLXdpZHRoOmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMyxjYWxjKDY0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxjKDggKiAxcmVtIC8gdmFyKC0tY2RzLWds''@;'; + put 'put ''b2JhbC1iYXNlLDIwKSkpKX06aG9zdChbc2l6ZSo9Zml0XSl7aGVpZ2h0OmF1dG87d2lkdGg6YXV0bztjb250YWluOmxheW91dH06aG9zdChbc3RhdHVzPXN1Y2Nlc3NdKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtc3VjY2VzcywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVl''@;'; + put 'put ''bi03MDAsICM0MjgxMGUpKX06aG9zdChbc3RhdHVzPWRhbmdlcl0pey0tY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTcwMCwgI2UwMjIwMCkpfTpob3N0KFtzdGF0dXM9d2FybmluZ10pey0tY29sb3I6dmFyKC0tY2RzLWFs''@;'; + put 'put ''aWFzLXN0YXR1cy13YXJuaW5nLWRhcmssIHZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtODAwLCAjYTM2NTAwKSl9Omhvc3QoW3N0YXR1cz1pbmZvXSl7LS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWluZm8tc2hhZGUsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS04MDAs''@;'; + put 'put ''ICMwMDYwOGEpKX06aG9zdChbaW52ZXJzZV0pey0tY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMjAwLCAjY2JkNGQ4KX06aG9zdChbZGlyZWN0aW9uPXVwXSl7dHJhbnNmb3JtOnJvdGF0ZSgwKX06aG9zdChbZGlyZWN0aW9uPWRvd25dKXt0cmFuc2Zvcm06cm90''@;'; + put 'put ''YXRlKDE4MGRlZyl9Omhvc3QoW2RpcmVjdGlvbj1yaWdodF0pe3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfTpob3N0KFtkaXJlY3Rpb249bGVmdF0pe3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX06aG9zdChbZmxpcD1ob3Jpem9udGFsXSl7dHJhbnNmb3JtOnNjYWxlKC0xKSByb3RhdGVYKDE4''@;'; + put 'put ''MGRlZyl9Omhvc3QoW2ZsaXA9dmVydGljYWxdKXt0cmFuc2Zvcm06c2NhbGUoLTEpIHJvdGF0ZVkoMTgwZGVnKX0uYWxlcnQsLmJhZGdle2ZpbGw6dmFyKC0tYmFkZ2UtY29sb3IsdmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNzAwLCNl''@;'; + put 'put ''MDIyMDApKSl9Omhvc3QoW2JhZGdlPXN1Y2Nlc3NdKXstLWJhZGdlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtc3VjY2VzcywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi03MDAsICM0MjgxMGUpKX06aG9zdChbYmFkZ2U9ZGFuZ2VyXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''ZHMtYWxpYXMtc3RhdHVzLWRhbmdlciwgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNzAwLCAjZTAyMjAwKSl9Omhvc3QoW2JhZGdlKj13YXJuaW5nXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmctZGFyaywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1v''@;'; + put 'put ''Y2hyZS04MDAsICNhMzY1MDApKX06aG9zdChbYmFkZ2U9aW5oZXJpdF0pey0tYmFkZ2UtY29sb3I6Y3VycmVudENvbG9yfTpob3N0KFtiYWRnZT1pbmZvXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWluZm8sIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS03MDAs''@;'; + put 'put ''ICMwMDc5YWQpKX06aG9zdChbYmFkZ2U9aW5oZXJpdC10cmlhbmdsZV0pey0tYmFkZ2UtY29sb3I6Y3VycmVudENvbG9yfTpob3N0KFtiYWRnZV1baW52ZXJzZV0pey0tYmFkZ2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVk''@;'; + put 'put ''LTcwMCwgI2UwMjIwMCkpfTpob3N0KFtiYWRnZT1zdWNjZXNzXVtpbnZlcnNlXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNzAwLCAjNDI4MTBlKSl9Omhvc3QoW2JhZGdlKj13YXJuaW5nXVtpbnZl''@;'; + put 'put ''cnNlXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmctZGFyaywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS04MDAsICNhMzY1MDApKX06aG9zdChbYmFkZ2UqPWluaGVyaXRdW2ludmVyc2VdKXstLWJhZGdlLWNvbG9yOmN1cnJlbnRDb2xvcn06aG9z''@;'; + put 'put ''dChbYmFkZ2U9aW5mb11baW52ZXJzZV0pey0tYmFkZ2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNzAwLCAjMDA3OWFkKSl9LmNkcy1pbnRlcm5hbC1kb3QtMXthbmltYXRpb246ZmFkZUluQW5kT3V0IDEuOHMgZWFzZS1p''@;'; + put 'put ''biAwcyBpbmZpbml0ZX0uY2RzLWludGVybmFsLWRvdC0ye2FuaW1hdGlvbjpmYWRlSW5BbmRPdXQgMS44cyBlYXNlLW91dCAuNDIycyBpbmZpbml0ZX0uY2RzLWludGVybmFsLWRvdC0ze2FuaW1hdGlvbjpmYWRlSW5BbmRPdXQgMS44cyBlYXNlLW91dCAuNjc1cyBpbmZpbml0ZX1AbWVkaWEg''@;'; + put 'put ''KHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pey5jZHMtaW50ZXJuYWwtZG90LTEsLmNkcy1pbnRlcm5hbC1kb3QtMiwuY2RzLWludGVybmFsLWRvdC0ze2FuaW1hdGlvbjpub25lfX1gO2Z1bmN0aW9uIG5MKGQsZyl7bGV0IGg9IiI7c3dpdGNoKGZ1bmN0aW9uIGsxZShkKXtzd2l0Y2goITApe2Nh''@;'; + put 'put ''c2UgJDYoZCk6cmV0dXJuIGJwLk5pbFNpemVWYWx1ZTtjYXNlIGZ1bmN0aW9uIFZLKGQpe3JldHVyblsieHhzIiwieHMiLCJzbSIsIm1kIiwibGciLCJ4bCIsInh4bCJdLmluZGV4T2YoZCk+LTF9KGQpOnJldHVybiBicC5WYWxpZFNpemVTdHJpbmc7Y2FzZSBmdW5jdGlvbiB5RChkKXtyZXR1''@;'; + put 'put ''cm4gX2soZCkmJiFaTihkLnRyaW0oKSkmJitkPT0rZH0oZCk6cmV0dXJuIGJwLlZhbGlkTnVtZXJpY1N0cmluZztkZWZhdWx0OnJldHVybiBicC5CYWRTaXplVmFsdWV9fShmdW5jdGlvbiBTMWUoZCl7cmV0dXJuICQ2KGQpPyIiOmZ1bmN0aW9uIHZzZShkLGcsaD0iIil7Y29uc3Qgdj1kLnNw''@;'; + put 'put ''bGl0KCIgIikseT0iIj09PWg/di5maWx0ZXIoQz0+QyE9PWcpOnYubWFwKEM9PkM9PT1nP2g6Qyk7cmV0dXJuIHkubGVuZ3RoPjA/eS5qb2luKCIgIik6IiJ9KGQsImZpdCIpfShnKSkpe2Nhc2UgYnAuVmFsaWROdW1lcmljU3RyaW5nOnJldHVybiBoPXNqKHBhcnNlSW50KGcpKSx2b2lkIGZ1''@;'; + put 'put ''bmN0aW9uIHYxZShkLC4uLmcpe2cuZm9yRWFjaCgoW2gsdl0pPT57ZC5zdHlsZVtoXT12fSl9KGQsLi4uZnVuY3Rpb24gZjAoZCxnKXtyZXR1cm4hVHkoZCkmJmQuaW5kZXhPZigiZml0Iik+LTE/W1sid2lkdGgiLCJhdXRvIl0sWyJoZWlnaHQiLCJhdXRvIl0sWyJtaW4td2lkdGgiLGddLFsi''@;'; + put 'put ''bWluLWhlaWdodCIsZ11dOltbIndpZHRoIixnXSxbImhlaWdodCIsZ10sWyJtaW4td2lkdGgiLGddLFsibWluLWhlaWdodCIsZ11dfShnLGgpKTtjYXNlIGJwLlZhbGlkU2l6ZVN0cmluZzpjYXNlIGJwLk5pbFNpemVWYWx1ZTpyZXR1cm4gdm9pZCBmdW5jdGlvbiBBMWUoZCwuLi5nKXtnLmZv''@;'; + put 'put ''ckVhY2goaD0+e2Quc3R5bGVbaF09IiJ9KX0oZCwid2lkdGgiLCJoZWlnaHQiLCJtaW4td2lkdGgiLCJtaW4taGVpZ2h0Iik7ZGVmYXVsdDpyZXR1cm59fWZ1bmN0aW9uIHJMKGQpe3JldHVybiBkLmJhZGdlJiYoImluaGVyaXQtdHJpYW5nbGUiPT09ZC5iYWRnZXx8Indhcm5pbmctdHJpYW5n''@;'; + put 'put ''bGUiPT09ZC5iYWRnZSl9IWZ1bmN0aW9uKGQpe2QuQmFkU2l6ZVZhbHVlPSJiYWQtdmFsdWUiLGQuVmFsaWRTaXplU3RyaW5nPSJ2YWx1ZS1pcy1zdHJpbmciLGQuVmFsaWROdW1lcmljU3RyaW5nPSJ2YWx1ZS1pcy1udW1lcmljIixkLk5pbFNpemVWYWx1ZT0idmFsdWUtaXMtbmlsIn0oYnB8''@;'; + put 'put ''fChicD17fSkpO2NsYXNzIGk0IGV4dGVuZHMgSnl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3NoYXBlPSJ1bmtub3duIix0aGlzLnNvbGlkPSExLHRoaXMuaW52ZXJzZT0hMX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybltQSyxDMWVdfWdldCBzaGFwZSgpe3Jl''@;'; + put 'put ''dHVybiB0aGlzLl9zaGFwZX1zZXQgc2hhcGUoZyl7aWYoZnVuY3Rpb24gY2coZCxnKXtyZXR1cm4hJDYoZCkmJlpKKGQsZyl9KGcsdGhpcy5fc2hhcGUpKXtjb25zdCBoPXRoaXMuX3NoYXBlO3RoaXMuX3NoYXBlPWcsdGhpcy5yZXF1ZXN0VXBkYXRlKCJzaGFwZSIsaCl9fWdldCBzaXplKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuX3NpemV9c2V0IHNpemUoZyl7aWYoZnVuY3Rpb24gekooZCxnKXtyZXR1cm4gZnVuY3Rpb24gakooZCl7cmV0dXJuIHBEKFN0cmluZyxkKXx8VHkoZCl9KGQpJiZaSihkLGcpfShnLHRoaXMuX3NpemUpKXtjb25zdCBoPXRoaXMuX3NpemU7dGhpcy5fc2l6ZT1nLG5MKHRo''@;'; + put 'put ''aXMsZyksdGhpcy5yZXF1ZXN0VXBkYXRlKCJzaXplIixoKX19dXBkYXRlZChnKXtpZihnLmhhcygiaW5uZXJPZmZzZXQiKSYmdGhpcy5pbm5lck9mZnNldD4wKXtjb25zdCBoPXNqKC0xKnRoaXMuaW5uZXJPZmZzZXQpLHY9YGNhbGMoMTAwJSArICR7c2ooMip0aGlzLmlubmVyT2Zmc2V0KX0p''@;'; + put 'put ''YDt0aGlzLnN2Zy5zdHlsZS53aWR0aD12LHRoaXMuc3ZnLnN0eWxlLmhlaWdodD12LHRoaXMuc3ZnLnN0eWxlLm1hcmdpbj1gJHtofSAwIDAgJHtofWB9fWZpcnN0VXBkYXRlZChnKXtpZihzdXBlci5maXJzdFVwZGF0ZWQoZyksdGhpcy5pc0Nvbm5lY3RlZCl7bGV0IGg9InVua25vd24iO3Ro''@;'; + put 'put ''aXMuc3Vic2NyaXB0aW9uPUoxLnN0YXRlVXBkYXRlcy5zdWJzY3JpYmUodj0+eyJpY29uUmVnaXN0cnkiPT09di5rZXkmJmZzLnJlZ2lzdHJ5W3RoaXMuc2hhcGVdJiZoIT09dGhpcy5zaGFwZSYmKGg9dGhpcy5zaGFwZSx0aGlzLnJlcXVlc3RVcGRhdGUoInNoYXBlIikpfSl9fWRpc2Nvbm5l''@;'; + put 'put ''Y3RlZENhbGxiYWNrKCl7dmFyIGc7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxudWxsPT0oZz10aGlzLnN1YnNjcmlwdGlvbil8fGcudW5zdWJzY3JpYmUoKX1yZW5kZXIoKXtyZXR1cm4gX2soZnMucmVnaXN0cnlbdGhpcy5zaGFwZV0pP3I0YDxzcGFuIC5pbm5lckhUTUw9IiR7ZnMu''@;'; + put 'put ''cmVnaXN0cnlbdGhpcy5zaGFwZV19Ij48L3NwYW4+YDpkMWVgPHN2ZyAuaW5uZXJIVE1MPSIke2Z1bmN0aW9uIEUxZShkKXt2YXIgdix5LEMsSSxqO2NvbnN0IGc9bnVsbCE9KHY9ZnMucmVnaXN0cnlbZC5zaGFwZV0pP3Y6ZnMucmVnaXN0cnkudW5rbm93bjtsZXQgaD1kLnNvbGlkJiZnLnNv''@;'; + put 'put ''bGlkP2cuc29saWQ6Zy5vdXRsaW5lO3JldHVybiBkLmJhZGdlJiYhckwoZCkmJihoPWQuc29saWQ/bnVsbCE9KHk9Zy5zb2xpZEJhZGdlZCk/eTpoOm51bGwhPShDPWcub3V0bGluZUJhZGdlZCk/QzpoKSxyTChkKSYmKGg9ZC5zb2xpZD9udWxsIT0oST1nLnNvbGlkQWxlcnRlZCk/STpoOm51''@;'; + put 'put ''bGwhPShqPWcub3V0bGluZUFsZXJ0ZWQpP2o6aCksaH0odGhpcykrZnVuY3Rpb24gTTFlKGQpe2xldCBnPSIiO3JldHVybiBkLmJhZGdlJiZyTChkKT9nPSc8cGF0aCBkPSJNMjYuODUgMS4xNEwyMS4xMyAxMWExLjI4IDEuMjggMCAwMDEuMSAyaDExLjQ1YTEuMjggMS4yOCAwIDAwMS4xLTJs''@;'; + put 'put ''LTUuNzItOS44NmExLjI4IDEuMjggMCAwMC0yLjIxIDB6IiBjbGFzcz0iYWxlcnQiIC8+JzpkLmJhZGdlJiYoZz0nPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iYmFkZ2UiIC8+JyksZ30odGhpcyl9IiB2aWV3Qm94PSIwIDAgMzYgMzYiIHhtbG5zPSJodHRwOi8vd3d3Lncz''@;'; + put 'put ''Lm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiPjwvc3ZnPmB9fVYyKFtFMSh7dHlwZTpTdHJpbmd9KV0saTQucHJvdG90eXBlLCJzaGFwZSIsbnVsbCksVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxpNC5wcm90b3R5cGUsInNpemUiLG51bGwpLFYyKFtFMSh7dHlwZTpTdHJpbmd9KV0s''@;'; + put 'put ''aTQucHJvdG90eXBlLCJkaXJlY3Rpb24iLHZvaWQgMCksVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxpNC5wcm90b3R5cGUsImZsaXAiLHZvaWQgMCksVjIoW0UxKHt0eXBlOkJvb2xlYW59KV0saTQucHJvdG90eXBlLCJzb2xpZCIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLGk0LnBy''@;'; + put 'put ''b3RvdHlwZSwic3RhdHVzIix2b2lkIDApLFYyKFtFMSh7dHlwZTpCb29sZWFufSldLGk0LnByb3RvdHlwZSwiaW52ZXJzZSIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLGk0LnByb3RvdHlwZSwiYmFkZ2UiLHZvaWQgMCksVjIoW05LKHt0eXBlOk51bWJlcn0pXSxpNC5wcm90b3R5''@;'; + put 'put ''cGUsImlubmVyT2Zmc2V0Iix2b2lkIDApLFYyKFtmdW5jdGlvbiBfMWUoZCxnKXtyZXR1cm4oKHtmaW5pc2hlcjpkLGRlc2NyaXB0b3I6Z30pPT4oaCx2KT0+e3ZhciB5O2lmKHZvaWQgMD09PXYpe2NvbnN0IEM9bnVsbCE9PSh5PWgub3JpZ2luYWxLZXkpJiZ2b2lkIDAhPT15P3k6aC5rZXks''@;'; + put 'put ''ST1udWxsIT1nP3traW5kOiJtZXRob2QiLHBsYWNlbWVudDoicHJvdG90eXBlIixrZXk6QyxkZXNjcmlwdG9yOmcoaC5rZXkpfTpaeihncyh7fSxoKSx7a2V5OkN9KTtyZXR1cm4gbnVsbCE9ZCYmKEkuZmluaXNoZXI9ZnVuY3Rpb24oail7ZChqLEMpfSksSX17Y29uc3QgQz1oLmNvbnN0cnVj''@;'; + put 'put ''dG9yO3ZvaWQgMCE9PWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShoLHYsZyh2KSksbnVsbD09ZHx8ZChDLHYpfX0pKHtkZXNjcmlwdG9yOmg9Pntjb25zdCB2PXtnZXQoKXt2YXIgeSxDO3JldHVybiBudWxsIT09KEM9bnVsbD09PSh5PXRoaXMucmVuZGVyUm9vdCl8fHZvaWQgMD09PXk/dm9p''@;'; + put 'put ''ZCAwOnkucXVlcnlTZWxlY3RvcihkKSkmJnZvaWQgMCE9PUM/QzpudWxsfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH07aWYoZyl7Y29uc3QgeT0ic3ltYm9sIj09dHlwZW9mIGg/U3ltYm9sKCk6Il9fIitoO3YuZ2V0PWZ1bmN0aW9uKCl7dmFyIEMsSTtyZXR1cm4gdm9pZCAwPT09''@;'; + put 'put ''dGhpc1t5XSYmKHRoaXNbeV09bnVsbCE9PShJPW51bGw9PT0oQz10aGlzLnJlbmRlclJvb3QpfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLnF1ZXJ5U2VsZWN0b3IoZCkpJiZ2b2lkIDAhPT1JP0k6bnVsbCksdGhpc1t5XX19cmV0dXJuIHZ9fSl9KCJzdmciKV0saTQucHJvdG90eXBlLCJzdmciLHZv''@;'; + put 'put ''aWQgMCksYksoImNkcy1pY29uIixpNCk7Y2xhc3MgeDFle2NvbnN0cnVjdG9yKGcpe3RoaXMuaG9zdD1nLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWhvc3RDb25uZWN0ZWQoKXt2YXIgZz10aGlzO3JldHVybiBFSyhmdW5jdGlvbiooKXt5aWVsZCBnLmhvc3QudXBkYXRlQ29tcGxl''@;'; + put 'put ''dGUsZy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGg9PmcuZW11bGF0ZUFjdGl2ZShoKSksZy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsaD0+Zy5lbXVsYXRlQWN0aXZlKGgpKSxnLmhvc3QuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLCgpPT5nLmVtdWxhdGVJ''@;'; + put 'put ''bmFjdGl2ZSgpKSxnLmhvc3QuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PmcuZW11bGF0ZUluYWN0aXZlKCkpLGcuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwoKT0+Zy5lbXVsYXRlSW5hY3RpdmUoKSl9KSgpfWVtdWxhdGVBY3RpdmUoZyl7dmFyIGg7dGhpcy5ob3N0LmRp''@;'; + put 'put ''c2FibGVkfHxudWxsPT0oaD10aGlzLmhvc3QpfHxoLnNldEF0dHJpYnV0ZSgiY2RzLWFjdGl2ZSIsIiIpLCJTcGFjZSI9PT1nLmNvZGUmJmcudGFyZ2V0PT09dGhpcy5ob3N0JiZnLnByZXZlbnREZWZhdWx0KCl9ZW11bGF0ZUluYWN0aXZlKCl7dGhpcy5ob3N0LnJlbW92ZUF0dHJpYnV0ZSgi''@;'; + put 'put ''Y2RzLWFjdGl2ZSIpfX1jbGFzcyBUMWV7Y29uc3RydWN0b3IoZyl7dGhpcy5ob3N0PWcsdGhpcy5ob3N0LmFkZENvbnRyb2xsZXIodGhpcyl9aG9zdENvbm5lY3RlZCgpe3RoaXMuaG9zdC5wb3B1cCYmKHRoaXMuaG9zdC5hcmlhQ29udHJvbHM9dGhpcy5ob3N0LnBvcHVwLHRoaXMuaG9zdC5h''@;'; + put 'put ''cmlhSGFzUG9wdXA9InRydWUiLHRoaXMuaG9zdC5hcmlhRXhwYW5kZWQ9ImZhbHNlIil9fWNsYXNzIHpLe2NvbnN0cnVjdG9yKGcpe3RoaXMuaG9zdD1nLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWhvc3RVcGRhdGVkKCl7bnVsbCE9PXRoaXMuaG9zdC5kaXNhYmxlZCYmKHRoaXMu''@;'; + put 'put ''aG9zdC5hcmlhRGlzYWJsZWQ9dGhpcy5ob3N0LmRpc2FibGVkKSx0aGlzLmhvc3QucmVhZG9ubHkmJih0aGlzLmhvc3QuYXJpYURpc2FibGVkPW51bGwpfX1jbGFzcyBEMWV7Y29uc3RydWN0b3IoZyl7dGhpcy5ob3N0PWcsdGhpcy5ob3N0LmFkZENvbnRyb2xsZXIodGhpcyl9aG9zdFVwZGF0''@;'; + put 'put ''ZWQoKXtudWxsIT10aGlzLmhvc3QucHJlc3NlZCYmKHRoaXMuaG9zdC5hcmlhUHJlc3NlZD10aGlzLmhvc3QucHJlc3NlZD8idHJ1ZSI6ImZhbHNlIiksdGhpcy5ob3N0LnJlYWRvbmx5JiYodGhpcy5ob3N0LmFyaWFQcmVzc2VkPW51bGwpfX1jbGFzcyBXS3tjb25zdHJ1Y3RvcihnKXt0aGlz''@;'; + put 'put ''Lmhvc3Q9Zyx0aGlzLmhvc3QuYWRkQ29udHJvbGxlcih0aGlzKX1ob3N0Q29ubmVjdGVkKCl7dGhpcy5ob3N0LnRhYkluZGV4PTB9aG9zdFVwZGF0ZWQoKXt0aGlzLmhvc3Qucm9sZT10aGlzLmhvc3QucmVhZG9ubHk/bnVsbDoiYnV0dG9uIix0aGlzLmhvc3QudGFiSW5kZXg9dGhpcy5ob3N0''@;'; + put 'put ''LmRpc2FibGVkPy0xOjAsdGhpcy5ob3N0LnJlYWRvbmx5JiZ0aGlzLmhvc3QucmVtb3ZlQXR0cmlidXRlKCJ0YWJpbmRleCIpfX1jbGFzcyBPMWV7Y29uc3RydWN0b3IoZyl7dGhpcy5ob3N0PWcsdGhpcy5ob3N0LmFkZENvbnRyb2xsZXIodGhpcyl9Z2V0IGN1cnJlbnRBbmNob3IoKXt2YXIg''@;'; + put 'put ''ZztyZXR1cm4iQSI9PT0obnVsbD09KGc9dGhpcy5ob3N0LnBhcmVudEVsZW1lbnQpP3ZvaWQgMDpnLnRhZ05hbWUpP3RoaXMuaG9zdC5wYXJlbnRFbGVtZW50Om51bGx9aG9zdENvbm5lY3RlZCgpe3RoaXMuc2V0QW5jaG9yKCl9aG9zdFVwZGF0ZWQoKXt0aGlzLnNldEFuY2hvcigpfXNldEFu''@;'; + put 'put ''Y2hvcigpe3RoaXMuY3VycmVudEFuY2hvciYmdGhpcy5jdXJyZW50QW5jaG9yIT09dGhpcy5wcmV2aW91c0FuY2hvciYmKHRoaXMucHJldmlvdXNBbmNob3I9dGhpcy5jdXJyZW50QW5jaG9yLHRoaXMuaG9zdC5yZWFkb25seT0hMCx0aGlzLmN1cnJlbnRBbmNob3Iuc3R5bGUubGluZUhlaWdo''@;'; + put 'put ''dD0iMCIsdGhpcy5jdXJyZW50QW5jaG9yLnN0eWxlLnRleHREZWNvcmF0aW9uPSJub25lIil9fWNvbnN0IHVqPWQ9Pm51bGwhPWQ/ZDpOdTtmdW5jdGlvbiBZSyhkKXtkLnByZXZlbnREZWZhdWx0KCksZC5zdG9wUHJvcGFnYXRpb24oKX1jb25zdCBmaj1uZXcgTWFwKFtbImFycm93LWxlZnQi''@;'; + put 'put ''LCJBcnJvd0xlZnQiXSxbImFycm93LXJpZ2h0IiwiQXJyb3dSaWdodCJdLFsiYXJyb3ctdXAiLCJBcnJvd1VwIl0sWyJhcnJvdy1kb3duIiwiQXJyb3dEb3duIl0sWyJ0YWIiLCJUYWIiXSxbImVudGVyIiwiRW50ZXIiXSxbImVzY2FwZSIsIkVzY2FwZSJdLFsic3BhY2UiLCIgIl0sWyJob21l''@;'; + put 'put ''IiwiSG9tZSJdLFsiZW5kIiwiRW5kIl1dKTt2YXIgX3A7IWZ1bmN0aW9uKGQpe2QuQXJyb3dVcD0iQXJyb3dVcCIsZC5BcnJvd0Rvd249IkFycm93RG93biIsZC5BcnJvd0xlZnQ9IkFycm93TGVmdCIsZC5BcnJvd1JpZ2h0PSJBcnJvd1JpZ2h0IixkLkVuZD0iRW5kIixkLkhvbWU9IkhvbWUi''@;'; + put 'put ''LGQuUGFnZVVwPSJQYWdlVXAiLGQuUGFnZURvd249IlBhZ2VEb3duIn0oX3B8fChfcD17fSkpO2NsYXNzIEcxZXtjb25zdHJ1Y3RvcihnKXt0aGlzLmhvc3Q9Zyx0aGlzLnRyaWdnZXJOYXRpdmVCdXR0b25CZWhhdmlvckhhbmRsZXI9dGhpcy50cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3Iu''@;'; + put 'put ''YmluZCh0aGlzKSx0aGlzLmVtdWxhdGVLZXlCb2FyZEV2ZW50QmVoYXZpb3JIYW5kbGVyPXRoaXMuZW11bGF0ZUtleUJvYXJkRXZlbnRCZWhhdmlvci5iaW5kKHRoaXMpLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWhvc3RVcGRhdGVkKCl7dGhpcy5zZXRCdXR0b25UeXBlKCksdGhp''@;'; + put 'put ''cy5zZXR1cE5hdGl2ZUJ1dHRvbkJlaGF2aW9yKCl9c2V0QnV0dG9uVHlwZSgpeyF0aGlzLmhvc3QudHlwZSYmdGhpcy5ob3N0LmNsb3Nlc3QoImZvcm0iKSYmKHRoaXMuaG9zdC50eXBlPSJzdWJtaXQiKX1zZXR1cE5hdGl2ZUJ1dHRvbkJlaGF2aW9yKCl7dGhpcy5ob3N0LnJlYWRvbmx5fHx0''@;'; + put 'put ''aGlzLmhvc3QuZGlzYWJsZWQ/KHRoaXMuaG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy50cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3JIYW5kbGVyKSx0aGlzLmhvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuZW11bGF0ZUtleUJvYXJkRXZlbnRCZWhh''@;'; + put 'put ''dmlvckhhbmRsZXIpKToodGhpcy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLnRyaWdnZXJOYXRpdmVCdXR0b25CZWhhdmlvckhhbmRsZXIpLHRoaXMuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5lbXVsYXRlS2V5Qm9hcmRFdmVudEJlaGF2aW9ySGFuZGxl''@;'; + put 'put ''cikpfWVtdWxhdGVLZXlCb2FyZEV2ZW50QmVoYXZpb3IoZyl7IWZ1bmN0aW9uIEYxZShkLGcsaCl7ZC5maWx0ZXIodj0+ZnVuY3Rpb24gaGooZCxnKXtyZXR1cm4gY2xhc3MgQjFle3N0YXRpYyBnZXQga2V5Y29kZXMoKXtyZXR1cm4gc3NlKGZqKX1zdGF0aWMgYWRkKGcsaCl7Zmouc2V0KGcs''@;'; + put 'put ''aCl9c3RhdGljIGhhcyhnKXtyZXR1cm4gZmouaGFzKGcpfXN0YXRpYyBnZXRDb2RlKGcsaD10aGlzLmtleWNvZGVzKXtyZXR1cm4gZnVuY3Rpb24gUDFlKGQsZyl7cmV0dXJuIGcuZ2V0KGQpfHwiIn0oZyxoKX19LmdldENvZGUoZyk9PT1kLmtleX0oZyx2KSkubGVuZ3RoPjAmJmgoKX0oWyJl''@;'; + put 'put ''bnRlciIsInNwYWNlIl0sZywoKT0+eyJzdWJtaXQiPT09dGhpcy5ob3N0LnR5cGU/dGhpcy50cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3IoZyk6dGhpcy5ob3N0LmNsaWNrKCksWUsoZyl9KX10cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3IoZyl7aWYodGhpcy5ob3N0LmRpc2FibGVkKVlL''@;'; + put 'put ''KGcpO2Vsc2UgaWYoIWcuZGVmYXVsdFByZXZlbnRlZCl7Y29uc3QgaD1mdW5jdGlvbiB6MWUoZCxnLGgpe2NvbnN0IHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zy5hcHBlbmRDaGlsZCh2KSxESyhkLGcsZ3Moe3JlbmRlckJlZm9yZTp2fSxoKSk7Y29uc3QgeT12LnByZXZpb3Vz''@;'; + put 'put ''U2libGluZztyZXR1cm4gdi5yZW1vdmUoKSx5fShyNGA8YnV0dG9uIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJwcmVzZW50YXRpb24iID9kaXNhYmxlZD0iJHt0aGlzLmhvc3QuZGlzYWJsZWR9IiB0YWJpbmRleD0iLTEiIHN0eWxlPSJkaXNwbGF5Om5vbmUhaW1wb3J0YW50IiB2YWx1ZT0i''@;'; + put 'put ''JHt1aih0aGlzLmhvc3QudmFsdWUpfSIgbmFtZT0iJHt1aih0aGlzLmhvc3QubmFtZSl9IiB0eXBlPSIke3VqKHRoaXMuaG9zdC50eXBlKX0iPjwvYnV0dG9uPmAsdGhpcy5ob3N0KTtudWxsPT1ofHxoLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoImNsaWNrIix7cmVsYXRlZFRhcmdl''@;'; + put 'put ''dDp0aGlzLmhvc3QsY29tcG9zZWQ6ITB9KSksbnVsbD09aHx8aC5yZW1vdmUoKX19fWNsYXNzIEpLe2NvbnN0cnVjdG9yKGcpe3RoaXMuaG9zdD1nLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWhvc3RVcGRhdGVkKCl7bnVsbCE9dGhpcy5ob3N0LmV4cGFuZGVkJiYodGhpcy5ob3N0''@;'; + put 'put ''LmFyaWFFeHBhbmRlZD10aGlzLmhvc3QuZXhwYW5kZWQ/InRydWUiOiJmYWxzZSIpLHRoaXMuaG9zdC5yZWFkb25seSYmKHRoaXMuaG9zdC5hcmlhRXhwYW5kZWQ9bnVsbCl9fWxldCByZD1jbGFzcyBleHRlbmRzIEp5e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmRp''@;'; + put 'put ''c2FibGVkPSExfX07VjIoW0UxKHt0eXBlOkJvb2xlYW59KV0scmQucHJvdG90eXBlLCJwcmVzc2VkIix2b2lkIDApLFYyKFtFMSh7dHlwZTpCb29sZWFufSldLHJkLnByb3RvdHlwZSwiZXhwYW5kZWQiLHZvaWQgMCksVjIoW0UxKHt0eXBlOkJvb2xlYW59KV0scmQucHJvdG90eXBlLCJyZWFk''@;'; + put 'put ''b25seSIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLHJkLnByb3RvdHlwZSwidHlwZSIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLHJkLnByb3RvdHlwZSwibmFtZSIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLHJkLnByb3RvdHlwZSwidmFsdWUiLHZvaWQg''@;'; + put 'put ''MCksVjIoW0UxKHt0eXBlOkJvb2xlYW59KV0scmQucHJvdG90eXBlLCJkaXNhYmxlZCIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLHJkLnByb3RvdHlwZSwicG9wdXAiLHZvaWQgMCkscmQ9VjIoW2Z1bmN0aW9uIGpLKCl7cmV0dXJuIGQ9PmQuYWRkSW5pdGlhbGl6ZXIoZz0+bmV3''@;'; + put 'put ''IHgxZShnKSl9KCksZnVuY3Rpb24gTDFlKCl7cmV0dXJuIGQ9PmQuYWRkSW5pdGlhbGl6ZXIoZz0+bmV3IFdLKGcpKX0oKSxmdW5jdGlvbiBHSygpe3JldHVybiBkPT5kLmFkZEluaXRpYWxpemVyKGc9Pm5ldyBEMWUoZykpfSgpLGZ1bmN0aW9uIFcxZSgpe3JldHVybiBkPT5kLmFkZEluaXRp''@;'; + put 'put ''YWxpemVyKGc9Pm5ldyBKSyhnKSl9KCksZnVuY3Rpb24gSTFlKCl7cmV0dXJuIGQ9PmQuYWRkSW5pdGlhbGl6ZXIoZz0+bmV3IHpLKGcpKX0oKSxmdW5jdGlvbiBaSygpe3JldHVybiBkPT5kLmFkZEluaXRpYWxpemVyKGc9Pm5ldyBUMWUoZykpfSgpLGZ1bmN0aW9uIFFLKCl7cmV0dXJuIGQ9''@;'; + put 'put ''PmQuYWRkSW5pdGlhbGl6ZXIoZz0+bmV3IEcxZShnKSl9KCksZnVuY3Rpb24gaUwoKXtyZXR1cm4gZD0+ZC5hZGRJbml0aWFsaXplcihnPT5uZXcgTzFlKGcpKX0oKV0scmQpO2NvbnN0IG9MPXthY3Rpb25zOntzb3J0OiJTb3J0IixleHBhbmQ6IkV4cGFuZCIsY2xvc2U6IkNsb3NlIixyZXNp''@;'; + put 'put ''emU6IlJlc2l6ZSIsZmlsdGVyOiJGaWx0ZXIifSxhbGVydDp7Y2xvc2VCdXR0b25BcmlhTGFiZWw6IkNsb3NlIixsb2FkaW5nOiJMb2FkaW5nIixpbmZvOiJJbmZvIixzdWNjZXNzOiJTdWNjZXNzIix3YXJuaW5nOiJXYXJuaW5nIixkYW5nZXI6IkVycm9yIn0sZHJvcGRvd246e29wZW46Ik9w''@;'; + put 'put ''ZW4ifSxmaWxlOnticm93c2U6ImJyb3dzZSIsZmlsZXM6ImZpbGVzIixyZW1vdmVGaWxlOiJyZW1vdmUgZmlsZSJ9LG1vZGFsOntjbG9zZUJ1dHRvbkFyaWFMYWJlbDoiQ2xvc2UgbW9kYWwiLGNvbnRlbnRTdGFydDoiQmVnaW5uaW5nIG9mIG1vZGFsIGNvbnRlbnQiLGNvbnRlbnRCb3g6IlNj''@;'; + put 'put ''cm9sbGFibGUgbW9kYWwgYm9keSIsY29udGVudEVuZDoiRW5kIG9mIG1vZGFsIGNvbnRlbnQifSxuYXZpZ2F0aW9uOntuYXZpZ2F0aW9uRWxlbWVudDoibmF2aWdhdGlvbiIsbmF2aWdhdGlvbkxhYmVsOiJuYXZpZ2F0aW9uIG1lbnUiLG5hdmlnYXRpb25BYnJpZGdlZFRleHQ6IlZpZXcgYWJy''@;'; + put 'put ''aWRnZWQgbWVudSIsbmF2aWdhdGlvblVuYWJyaWRnZWRUZXh0OiJWaWV3IHVuYWJyaWRnZWQgbWVudSJ9LG92ZXJsYXk6e2Nsb3NlQnV0dG9uQXJpYUxhYmVsOiJDbG9zZSBkaWFsb2ciLGNvbnRlbnRTdGFydDoiQmVnaW5uaW5nIG9mIGRpYWxvZyBjb250ZW50Iixjb250ZW50RW5kOiJFbmQg''@;'; + put 'put ''b2YgZGlhbG9nIGNvbnRlbnQifSxwb3B1cDp7Y2xvc2VCdXR0b25BcmlhTGFiZWw6IkNsb3NlIHBvcHVwIixjb250ZW50U3RhcnQ6IkJlZ2lubmluZyBvZiBwb3B1cCBjb250ZW50Iixjb250ZW50RW5kOiJFbmQgb2YgcG9wdXAgY29udGVudCJ9LHBhc3N3b3JkOntzaG93QnV0dG9uQXJpYUxh''@;'; + put 'put ''YmVsOiJTaG93IHBhc3N3b3JkIixoaWRlQnV0dG9uQXJpYUxhYmVsOiJIaWRlIHBhc3N3b3JkIn0scHJvZ3Jlc3M6e2xvYWRpbmc6IkxvYWRpbmciLGxvb3Bpbmc6IkxvYWRpbmcifSx0cmVldmlldzp7bG9hZGluZzoiTG9hZGluZyJ9LGdyaWQ6e3Jlc2l6ZUNvbHVtbjoiUmVzaXplIENvbHVt''@;'; + put 'put ''biIsY2xvc2VEZXRhaWxzOiJDbG9zZSBEZXRhaWxzIixub0RhdGE6Ik5vIFJlc3VsdHMgRm91bmQiLHJvd0RldGFpbFN0YXJ0OiJTdGFydCBvZiByb3cgZGV0YWlscyIscm93RGV0YWlsRW5kOiJFbmQgb2Ygcm93IGRldGFpbHMiLGZvb3RlckVuZDoiRW5kIG9mIGdyaWQgcm93cyIsYWN0aW9u''@;'; + put 'put ''OiJBY3Rpb24iLGRyb3BUYXJnZXQ6IkRyb3AgSXRlbSIscGFnaW5hdGlvbjp7bGFiZWw6ImdyaWQgcGFnaW5hdGlvbiIsZmlyc3RQYWdlOiJnbyB0byBmaXJzdCBwYWdlIixwcmV2aW91c1BhZ2U6ImdvIHRvIHByZXZpb3VzIHBhZ2UiLG5leHRQYWdlOiJnbyB0byBuZXh0IHBhZ2UiLGxhc3RQ''@;'; + put 'put ''YWdlOiJnbyB0byBsYXN0IHBhZ2UiLHBhZ2VTaXplOiJyb3dzIHBlciBwYWdlIixwYWdlOiJwYWdlIn19fTtjbGFzcyByOXtzdGF0aWMgZ2V0IGtleXMoKXtyZXR1cm4gMD09PU9iamVjdC5rZXlzKEoxLnN0YXRlLmkxOG5SZWdpc3RyeSkubGVuZ3RoJiYoSjEuc3RhdGUuaTE4blJlZ2lzdHJ5''@;'; + put 'put ''PVA3KG9MLEoxLnN0YXRlLmkxOG5SZWdpc3RyeSkpLFA3KG9MLEoxLnN0YXRlLmkxOG5SZWdpc3RyeSl9c3RhdGljIGZpbmRLZXkoZyl7Y29uc3QgaD1yOS5rZXlzO3JldHVybiBPYmplY3Qua2V5cyhoKS5maW5kKHY9PldKKGhbdl0sZykpfXN0YXRpYyBnZXQoZyl7cmV0dXJuIGcmJnI5Lmtl''@;'; + put 'put ''eXNbZ118fHt9fXN0YXRpYyByZXNldCgpe0oxLnN0YXRlLmkxOG5SZWdpc3RyeT1QNyh7fSxvTCl9c3RhdGljIGh5ZHJhdGUoZyxoKXtyZXR1cm4gSlNPTi5wYXJzZShmdW5jdGlvbiBuWChkLGcsaCl7cmV0dXJuIGQucmVwbGFjZSgvXCRcey4rP1x9L2csdj0+ZnVuY3Rpb24gZzllKGQsZyxo''@;'; + put 'put ''PWBcJHske2R9fWApe3JldHVybiBkLnNwbGl0KCIuIikucmVkdWNlKCh2LHkpPT57dHJ5e2NvbnN0IEM9dlt5XTtzd2l0Y2goITApe2Nhc2UgbnVsbD09PUM6Y2FzZSExPT09QzpjYXNlIiI9PT1DOmNhc2UgMD09PUM6cmV0dXJuIEM7ZGVmYXVsdDpyZXR1cm4gQ3x8aH19Y2F0Y2goQyl7cmV0''@;'; + put 'put ''dXJuIGh9fSxnKX0odi5zdWJzdHIoMix2Lmxlbmd0aC0zKS50cmltKCksZyxoKSl9KEpTT04uc3RyaW5naWZ5KGcpLGgpKX1zdGF0aWMgbG9jYWxpemUoZyl7SjEuc3RhdGUuaTE4blJlZ2lzdHJ5PVA3KG9MLEoxLnN0YXRlLmkxOG5SZWdpc3RyeSxnKX19dmFyIFExZT1LRGA6aG9zdHstLWlj''@;'; + put 'put ''b24td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LCBjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS1pY29uLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcsIGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkp''@;'; + put 'put ''KTstLXdpZHRoOnZhcigtLWljb24td2lkdGgpOy0taGVpZ2h0OnZhcigtLWljb24td2lkdGgpOy0tY3Vyc29yOnBvaW50ZXI7LS1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY29sb3ItMzAwLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi04MDAsICMyZDQw''@;'; + put 'put ''NDgpKTstLWZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC1zaXplLTMsIGNhbGMoMTMgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKTstLWJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7LS1wYWRkaW5nOjA7LS1vdXRsaW5lOnZhcigtLWNkcy1hbGlh''@;'; + put 'put ''cy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZSwgSGlnaGxpZ2h0IHNvbGlkIDJweCk7LS1vdXRsaW5lLW9mZnNldDpjYWxjKHZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZS1vZmZzZXQsIDFweCkgKiAtMSk7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5Omlu''@;'; + put 'put ''bGluZS1ibG9jaztvdXRsaW5lOjAhaW1wb3J0YW50fTpob3N0KFtyb2xlPWJ1dHRvbl0pe3BvaW50ZXItZXZlbnRzOmluaXRpYWw7Y3Vyc29yOnZhcigtLWN1cnNvcikhaW1wb3J0YW50fTpob3N0KFtzdGF0dXM9YWN0aXZlXSl7LS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWluZm8s''@;'; + put 'put ''IHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS03MDAsICMwMDc5YWQpKX06OnNsb3R0ZWQoW3NoYXBlPWNsb3NlXSksOjpzbG90dGVkKFtzaGFwZT1pbmZvLWNpcmNsZV0pLDo6c2xvdHRlZChbc2hhcGU9dGltZXNdKSw6aG9zdChbc2hhcGU9Y2xvc2VdKSw6aG9zdChbc2hhcGU9aW5mby1j''@;'; + put 'put ''aXJjbGVdKXstLWljb24td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS04LCBjYWxjKDE4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS1pY29uLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTgsIGNhbGMoMTggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2Jh''@;'; + put 'put ''bC1iYXNlLCAyMCkpKX06aG9zdCg6aG92ZXIpey0tY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1ob3ZlciwgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMTAwMCwgIzFiMmIzMikpfTpob3N0KDphY3RpdmUpey0tY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1hY3RpdmUsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTEwMDAsICMxYjJiMzIpKX06aG9zdCg6YWN0aXZlKSAucHJpdmF0ZS1ob3N0e3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGModmFyKC0tY2RzLWdsb2Jh''@;'; + put 'put ''bC1zcGFjZS0xLGNhbGMoMSAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkvIDIpKX06aG9zdChbZGlzYWJsZWRdKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItZGlzYWJsZWQsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3Ry''@;'; + put 'put ''dWN0aW9uLTMwMCwgI2FlYjhiYykpfS5wcml2YXRlLWhvc3R7LS1pY29uLWNvbG9yOnZhcigtLWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLWJhY2tncm91bmQpO3BhZGRpbmc6dmFyKC0tcGFkZGluZyk7Y29sb3I6dmFyKC0tY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1mb250LXNpemUpO2Rpc3Bs''@;'; + put 'put ''YXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttaW4td2lkdGg6dmFyKC0td2lkdGgpO21pbi1oZWlnaHQ6dmFyKC0taGVpZ2h0KX06OnNsb3R0ZWQoY2RzLWljb24pLGNkcy1pY29ue3dpZHRoOnZhcigtLWljb24td2lkdGgpO2hlaWdodDp2YXIoLS1p''@;'; + put 'put ''Y29uLWhlaWdodCk7cG9pbnRlci1ldmVudHM6bm9uZX06OnNsb3R0ZWQoY2RzLWljb246bm90KFtzdGF0dXNdKSksY2RzLWljb257LS1jb2xvcjp2YXIoLS1pY29uLWNvbG9yKX06aG9zdChbZGlzYWJsZWRdOmFjdGl2ZSl7cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnR9LnByaXZhdGUt''@;'; + put 'put ''aG9zdDo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OmNhbGMoLTEqdmFyKC0td2lkdGgpIC0gMSk7dG9wOmNhbGMoLTEqdmFyKC0taGVpZ2h0KSAtIDEpO3dpZHRoOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tdG91Y2gtdGFyZ2V0LGNhbGMoMzYg''@;'; + put 'put ''KiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2hlaWdodDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXRvdWNoLXRhcmdldCxjYWxjKDM2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKX06aG9zdChbZGlzYWJsZWRdKSAucHJpdmF0ZS1o''@;'; + put 'put ''b3N0OjphZnRlcntvdXRsaW5lOjAhaW1wb3J0YW50fTpob3N0KDpmb2N1cykgLnByaXZhdGUtaG9zdDo6YWZ0ZXJ7b3V0bGluZTp2YXIoLS1vdXRsaW5lKTtvdXRsaW5lLW9mZnNldDp2YXIoLS1vdXRsaW5lLW9mZnNldCl9QG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86''@;'; + put 'put ''MCl7Omhvc3QoOmZvY3VzKSAucHJpdmF0ZS1ob3N0OjphZnRlcntvdXRsaW5lLWNvbG9yOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvcn19YDtjbGFzcyBtZyBleHRlbmRzIHJke2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmkxOG49cjkua2V5cy5hY3Rpb25zLHRoaXMu''@;'; + put 'put ''Y2RzQnV0dG9uQWN0aW9uPSEwfXJlbmRlcigpe3JldHVybiByNGA8ZGl2IGNsYXNzPSJwcml2YXRlLWhvc3QiPjxzbG90PjxjZHMtaWNvbiAuc2hhcGU9IiR7dGhpcy5zaGFwZT90aGlzLnNoYXBlOiJlbGxpcHNpcy12ZXJ0aWNhbCJ9IiAuc2l6ZT0iJHt0aGlzLmljb25TaXplfSIgP3NvbGlk''@;'; + put 'put ''PSIke3RoaXMucHJlc3NlZHx8dGhpcy5leHBhbmRlZH0iIGlubmVyLW9mZnNldD0iJHsxfSI+PC9jZHMtaWNvbj48L3Nsb3Q+PC9kaXY+YH11cGRhdGVkKGcpe3N1cGVyLnVwZGF0ZWQoZyksdGhpcy5hcmlhTGFiZWx8fHRoaXMucmVhZG9ubHl8fE43Lndhcm4oIkEgYXJpYS1sYWJlbCBpcyBy''@;'; + put 'put ''ZXF1aXJlZCBmb3IgaW50ZXJhY3RpdmUgY2RzLWJ1dHRvbi1hY3Rpb24gdHlwZSIsdGhpcyksZy5oYXMoInJlYWRvbmx5IikmJih0aGlzLmFyaWFIaWRkZW49dGhpcy5yZWFkb25seSYmIXRoaXMuaGFzQXR0cmlidXRlKCJhcmlhLWxhYmVsIik/InRydWUiOm51bGwpfX1tZy5zdHlsZXM9W1BL''@;'; + put 'put ''LFExZV0sVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxtZy5wcm90b3R5cGUsInNoYXBlIix2b2lkIDApLFYyKFtFMSh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxtZy5wcm90b3R5cGUsImFjdGlvbiIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLG1nLnByb3RvdHlwZSwiaWNvblNp''@;'; + put 'put ''emUiLHZvaWQgMCksVjIoW2Z1bmN0aW9uIFkxZSgpe3JldHVybihkLGcpPT57Y29uc3QgaD1kLmNvbm5lY3RlZENhbGxiYWNrLHY9ZC5kaXNjb25uZWN0ZWRDYWxsYmFjaztkLmNvbm5lY3RlZENhbGxiYWNrPWZ1bmN0aW9uKCl7ZC5fX2kxOG5TdWI9SjEuc3RhdGVVcGRhdGVzLnN1YnNjcmli''@;'; + put 'put ''ZShDPT57ImkxOG5SZWdpc3RyeSI9PT1DLmtleSYmdGhpcy5yZXF1ZXN0VXBkYXRlKGcpfSksaCYmaC5hcHBseSh0aGlzKX0sZC5kaXNjb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbigpe2QuX19pMThuU3ViLnVuc3Vic2NyaWJlKCksdiYmdi5hcHBseSh0aGlzKX07Y29uc3QgeT17Z2V0KCl7''@;'; + put 'put ''Y29uc3QgQz1QNyhyOS5rZXlzW3RoaXMuX19pMThuS2V5XSx0aGlzLl9faTE4bnx8e30pO3JldHVybiByOS5oeWRyYXRlKEMsdGhpcyl9LHNldChDKXtjb25zdCBJPWZ1bmN0aW9uIHBqKGQsZyl7aWYoJDYoZCkpe2xldCBoPXt9O2lmKGcuaGFzQXR0cmlidXRlKCJjZHMtaTE4biIpKXtjb25z''@;'; + put 'put ''dCB2PWcuZ2V0QXR0cmlidXRlKCJjZHMtaTE4biIpKyIiO2lmKCQ2KHYpKWg9e307ZWxzZSB0cnl7aD1KU09OLnBhcnNlKHYpfWNhdGNoKHkpe043Lndhcm4oIkNsYXJpdHkgaTE4bjogSW52YWxpZCBKU09OIHBhc3NlZCB0byBjZHMtaTE4biIpLGg9e319fXJldHVybiBofXJldHVybiBkfShD''@;'; + put 'put ''LHRoaXMpLGo9ZnVuY3Rpb24gVTFlKGQsZyxoLHYpe3JldHVybiAkNihkKT9XSihoLHYpP3t1cGRhdGU6ITF9Ont1cGRhdGU6ITAsdmFsdWVzOmh9OmQ9PT1nP3t1cGRhdGU6ITEsdmFsdWVzOnt9fTp7dXBkYXRlOiEwLGtleTpkLHZhbHVlczp7fX19KHI5LmZpbmRLZXkoSSl8fCIiLHRoaXMu''@;'; + put 'put ''X19pMThuS2V5LEksdGhpcy5fX2kxOG4pO3ZvaWQgMCE9PWoua2V5JiYodGhpcy5fX2kxOG5LZXk9ai5rZXkrIiIpLHZvaWQgMCE9PWoudmFsdWVzJiYodGhpcy5fX2kxOG49Z3Moe30sai52YWx1ZXMpKSwhMD09PWoudXBkYXRlJiZ0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLnJlcXVlc3RV''@;'; + put 'put ''cGRhdGUoZyl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfTtyZXR1cm4gdm9pZCAwIT09Zz9mdW5jdGlvbihDLEksail7Y29uc3QgdWU9T2JqZWN0LmRlZmluZVByb3BlcnR5KEksaixDKTtyZXR1cm4gRTEoe3R5cGU6T2JqZWN0LGF0dHJpYnV0ZToiY2RzLWkxOG4ifSkodWUsail9''@;'; + put 'put ''KHksZCxnKTpmdW5jdGlvbihDLEkpe2NvbnN0IGo9e2tpbmQ6Im1ldGhvZCIscGxhY2VtZW50OiJwcm90b3R5cGUiLGtleTpJLmtleSxkZXNjcmlwdG9yOkN9O3JldHVybiBFMSh7dHlwZTpPYmplY3R9KShqKX0oeSxkKX19KCldLG1nLnByb3RvdHlwZSwiaTE4biIsdm9pZCAwKSxWMihbTkso''@;'; + put 'put ''e3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToiY2RzLWJ1dHRvbi1hY3Rpb24ifSldLG1nLnByb3RvdHlwZSwiY2RzQnV0dG9uQWN0aW9uIix2b2lkIDApO2NsYXNzIHM4IGV4dGVuZHMgbWd7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuc2hhcGU9ImNs''@;'; + put 'put ''b3NlIn1jb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5hcmlhTGFiZWw9dGhpcy5hcmlhTGFiZWw/dGhpcy5hcmlhTGFiZWw6dGhpcy5pMThuLmNsb3NlfX1WMihbRTEoe3R5cGU6U3RyaW5nfSldLHM4LnByb3RvdHlwZSwic2hhcGUiLHZvaWQgMCks''@;'; + put 'put ''YksoImNkcy1pbnRlcm5hbC1jbG9zZS1idXR0b24iLHM4KSxmcy5hZGRJY29ucyhoWCksZnMuYWRkQWxpYXNlcyhbInRpbWVzIixbImNsb3NlIl1dKTtjb25zdCBuYT1bIioiXTtmdW5jdGlvbiBKMWUoZCxnKXtpZigxJmQmJihGMCgwKSxVdCgxKSxIMCgpKSwyJmQpe2NvbnN0IGg9S3QoMyk7''@;'; + put 'put ''dXQoMSksR2koaC5jb21tb25TdHJpbmdzLmtleXMuZGFuZ2VyKX19ZnVuY3Rpb24gWDFlKGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2IiwxNCkscm4oMSxKMWUsMiwxLCJuZy1jb250YWluZXIiLDApLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgpLiRpbXBsaWNpdCx2PUt0KCk7dXQoMSksVHQoIm5n''@;'; + put 'put ''SWYiLGguc3RhdHVzPT09di5BY2NvcmRpb25TdGF0dXMuRXJyb3IpfX1mdW5jdGlvbiBLMWUoZCxnKXtpZigxJmQmJihGMCgwKSxVdCgxKSxIMCgpKSwyJmQpe2NvbnN0IGg9S3QoMik7dXQoMSksR2koaC5jb21tb25TdHJpbmdzLmtleXMuZGFuZ2VyKX19ZnVuY3Rpb24gJDFlKGQsZyl7aWYo''@;'; + put 'put ''MSZkJiYoRjAoMCksVXQoMSksSDAoKSksMiZkKXtjb25zdCBoPUt0KDIpO3V0KDEpLEdpKGguY29tbW9uU3RyaW5ncy5rZXlzLnN1Y2Nlc3MpfX1mdW5jdGlvbiBxMWUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiLDE1KSxZbigiQHRvZ2dsZS5kb25lIixmdW5jdGlvbigp''@;'; + put 'put ''e3J0KGgpO2NvbnN0IHk9S3QoKS4kaW1wbGljaXQ7cmV0dXJuIGEoS3QoKS5jb2xsYXBzZVBhbmVsT25BbmltYXRpb25Eb25lKHkpKX0pLGl0KDEsImRpdiIsMTYpLE5pKDIsMiksc3QoKSgpfTImZCYmVHQoIkB0b2dnbGUiLHZvaWQgMCl9ZnVuY3Rpb24gZXVlKGQsZyl7aWYoMSZkKXtjb25z''@;'; + put 'put ''dCBoPV9pKCk7RjAoMCkscm4oMSxYMWUsMiwxLCJkaXYiLDEpLGl0KDIsImRpdiIsMikoMywiZGl2IiwzKSg0LCJidXR0b24iLDQsNSksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkudG9nZ2xlUGFuZWwoKSl9KSxubig2LCJhc3luYyIpLGl0KDcsInNwYW4iLDYp''@;'; + put 'put ''LHJuKDgsSzFlLDIsMSwibmctY29udGFpbmVyIiwwKSxybig5LCQxZSwyLDEsIm5nLWNvbnRhaW5lciIsMCksc3QoKSxpdCgxMCwic3BhbiIsNyksQ3IoMTEsImNkcy1pY29uIiw4KSgxMiwic3BhbiIsOSkoMTMsImNkcy1pY29uIiwxMCkoMTQsImNkcy1pY29uIiwxMSksc3QoKSxOaSgxNSks''@;'; + put 'put ''TmkoMTYsMSksc3QoKSgpLGl0KDE3LCJkaXYiLDEyKSxybigxOCxxMWUsMywxLCJkaXYiLDEzKSxzdCgpKCksSDAoKX1pZigyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1LdCgpO2xldCB5O3V0KDEpLFR0KCJuZ0lmIixoLnN0YXR1cyE9PXYuQWNjb3JkaW9uU3RhdHVzLkluYWN0aXZlKSx1''@;'; + put 'put ''dCgxKSxUdCgibmdDbGFzcyIsdi5nZXRQYW5lbFN0YXRlQ2xhc3NlcyhoKSksdXQoMiksRmkoImNsci1hY2NvcmRpb24taGVhZGVyLWhhcy1kZXNjcmlwdGlvbiIsKG51bGw9PSh5PXp0KDYsMTYsdi5hY2NvcmRpb25EZXNjcmlwdGlvbi5jaGFuZ2VzKSk/bnVsbDp5Lmxlbmd0aCl8fHYuYWNj''@;'; + put 'put ''b3JkaW9uRGVzY3JpcHRpb24ubGVuZ3RoKSxUdCgiaWQiLHYuZ2V0QWNjb3JkaW9uSGVhZGVySWQoaC50ZW1wbGF0ZUlkKSkoImRpc2FibGVkIix2LmlzQWNjb3JkaW9uJiZoLmRpc2FibGVkKSx6aSgiYXJpYS1kaXNhYmxlZCIsIXYuaXNBY2NvcmRpb24mJmguZGlzYWJsZWQpKCJhcmlhLWNv''@;'; + put 'put ''bnRyb2xzIix2LmdldEFjY29yZGlvbkNvbnRlbnRJZChoLnRlbXBsYXRlSWQpKSgiYXJpYS1leHBhbmRlZCIsaC5vcGVuKSx1dCg0KSxUdCgibmdJZiIsaC5zdGF0dXM9PT12LkFjY29yZGlvblN0YXR1cy5FcnJvciksdXQoMSksVHQoIm5nSWYiLGguc3RhdHVzPT09di5BY2NvcmRpb25TdGF0''@;'; + put 'put ''dXMuQ29tcGxldGUpLHV0KDgpLFR0KCJAc2tpcEluaXRpYWxSZW5kZXIiLHZvaWQgMCkoImlkIix2LmdldEFjY29yZGlvbkNvbnRlbnRJZChoLnRlbXBsYXRlSWQpKSx6aSgiYXJpYS1oaWRkZW4iLCFoLm9wZW4pKCJhcmlhLWxhYmVsbGVkYnkiLHYuZ2V0QWNjb3JkaW9uSGVhZGVySWQoaC50''@;'; + put 'put ''ZW1wbGF0ZUlkKSksdXQoMSksVHQoIm5nSWYiLGgub3Blbil9fWNvbnN0IFhLPVtbWyJjbHItYWNjb3JkaW9uLXRpdGxlIl0sWyJjbHItc3RlcC10aXRsZSJdXSxbWyJjbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9uIl0sWyJjbHItc3RlcC1kZXNjcmlwdGlvbiJdXSwiKiJdLEtLPVsiY2xyLWFj''@;'; + put 'put ''Y29yZGlvbi10aXRsZSwgY2xyLXN0ZXAtdGl0bGUiLCJjbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9uLCBjbHItc3RlcC1kZXNjcmlwdGlvbiIsIioiXSxBdWU9WyJjbHJMb2FkaW5nIiwiIl07ZnVuY3Rpb24geXVlKGQsZyl7MSZkJiYoaXQoMCwic3BhbiIpLENyKDEsInNwYW4iLDIpLHN0KCkp''@;'; + put 'put ''LDImZCYmKHV0KDEpLFR0KCJAc3Bpbm5lciIsdm9pZCAwKSl9ZnVuY3Rpb24gd3VlKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwic3BhbiIpKDEsInNwYW4iLDMpLFluKCJAdmFsaWRhdGVkLmRvbmUiLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT1LdCgpO3JldHVybiBhKHkubG9h''@;'; + put 'put ''ZGluZ1N0YXRlQ2hhbmdlKHkuYnV0dG9uU3RhdGUuREVGQVVMVCkpfSksc3QoKSgpfTImZCYmKHV0KDEpLFR0KCJAdmFsaWRhdGVkIix2b2lkIDApKX1mdW5jdGlvbiBidWUoZCxnKXsxJmQmJihpdCgwLCJzcGFuIiksTmkoMSksc3QoKSksMiZkJiZUdCgiQGRlZmF1bHRCdXR0b24iLHZvaWQg''@;'; + put 'put ''MCl9ZnVuY3Rpb24gX3VlKGQsZyl7MSZkJiZDcigwLCJsYWJlbCIpfWNvbnN0IEN1ZT1bW1siIiwiY2xyQ2hlY2tib3giLCIiXSxbIiIsImNsclRvZ2dsZSIsIiJdXSxbWyJsYWJlbCJdXV0sa3VlPVsiW2NsckNoZWNrYm94XSxbY2xyVG9nZ2xlXSIsImxhYmVsIl07ZnVuY3Rpb24gU3VlKGQs''@;'; + put 'put ''Zyl7MSZkJiZDcigwLCJsYWJlbCIpfWZ1bmN0aW9uIE11ZShkLGcpezEmZCYmTmkoMCwyLFsiKm5nSWYiLCJzaG93SGVscGVyIl0pfWZ1bmN0aW9uIEV1ZShkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDUpfWZ1bmN0aW9uIHh1ZShkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDYpfWZ1bmN0''@;'; + put 'put ''aW9uIFR1ZShkLGcpezEmZCYmTmkoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlvbiBJdWUoZCxnKXsxJmQmJk5pKDAsNCxbIipuZ0lmIiwic2hvd1ZhbGlkIl0pfWNvbnN0IER1ZT1bW1sibGFiZWwiXV0sW1siY2xyLWNoZWNrYm94LXdyYXBwZXIiXSxbImNsci10b2dnbGUt''@;'; + put 'put ''d3JhcHBlciJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1siY2xyLWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sTHVlPVsibGFiZWwiLCJjbHItY2hlY2tib3gtd3JhcHBlcixjbHItdG9nZ2xlLXdyYXBwZXIiLCJjbHItY29udHJvbC1oZWxwZXIiLCJj''@;'; + put 'put ''bHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9sLXN1Y2Nlc3MiXSxPdWU9WyJjbHJLZXlGb2N1cyIsIiJdO2Z1bmN0aW9uIHRzKGQsZyl7MSZkJiZDcigwLCJsYWJlbCIpfWZ1bmN0aW9uIHFLKGQsZyl7MSZkJiZDcigwLCJjZHMtaWNvbiIsNSl9ZnVuY3Rpb24gRnVlKGQsZyl7MSZkJiZD''@;'; + put 'put ''cigwLCJjZHMtaWNvbiIsNil9ZnVuY3Rpb24gZSQoZCxnKXsxJmQmJk5pKDAsMixbIipuZ0lmIiwic2hvd0hlbHBlciJdKX1mdW5jdGlvbiB0JChkLGcpezEmZCYmTmkoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlvbiBiQWUoZCxnKXsxJmQmJk5pKDAsNCxbIipuZ0lmIiwi''@;'; + put 'put ''c2hvd1ZhbGlkIl0pfWNvbnN0IEh1ZT1bW1sibGFiZWwiXV0sW1siIiwiY2xySW5wdXQiLCIiXV0sW1siY2xyLWNvbnRyb2wtaGVscGVyIl1dLFtbImNsci1jb250cm9sLWVycm9yIl1dLFtbImNsci1jb250cm9sLXN1Y2Nlc3MiXV1dLGxMPVsibGFiZWwiLCJbY2xySW5wdXRdIiwiY2xyLWNv''@;'; + put 'put ''bnRyb2wtaGVscGVyIiwiY2xyLWNvbnRyb2wtZXJyb3IiLCJjbHItY29udHJvbC1zdWNjZXNzIl07ZnVuY3Rpb24gWGsoZCxnKXtpZigxJmQmJihpdCgwLCJ0aCIsNCksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3ppKCJhcmlhLWxhYmVsIixoLmRheSksdXQoMSksSmko''@;'; + put 'put ''IiAiLGgubmFycm93LCIgIil9fWZ1bmN0aW9uIE51ZShkLGcpe2lmKDEmZCYmKGl0KDAsInRkIiw3KSxDcigxLCJjbHItZGF5Iiw4KSxzdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoImNsckRheVZpZXciLGgpfX1mdW5jdGlvbiBLayhkLGcpe2lmKDEmZCYmKGl0KDAs''@;'; + put 'put ''InRyIiw1KSxybigxLE51ZSwyLDEsInRkIiw2KSxzdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoIm5nRm9yT2YiLGgpfX1mdW5jdGlvbiBuJChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImJ1dHRvbiIsMSksWW4oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0''@;'; + put 'put ''IEM9cnQoaCkuaW5kZXg7cmV0dXJuIGEoS3QoKS5jaGFuZ2VNb250aChDKSl9KSxVdCgxKSxzdCgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PWcuaW5kZXgseT1LdCgpO0ZpKCJpcy1zZWxlY3RlZCIsdj09PXkuY2FsZW5kYXJNb250aEluZGV4KSx6aSgidGFiaW5kZXgiLHkuZ2V0''@;'; + put 'put ''VGFiSW5kZXgodikpLHV0KDEpLEppKCIgIixoLCIgIil9fWZ1bmN0aW9uIHIkKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYnV0dG9uIiw3KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgQz1ydChoKS4kaW1wbGljaXQ7cmV0dXJuIGEoS3QoKS5jaGFuZ2VZZWFyKEMpKX0p''@;'; + put 'put ''LFV0KDEpLHN0KCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9S3QoKTtGaSgiaXMtc2VsZWN0ZWQiLGg9PT12LmNhbGVuZGFyWWVhciksemkoInRhYmluZGV4Iix2LmdldFRhYkluZGV4KGgpKSx1dCgxKSxKaSgiICIsaCwiICIpfX1mdW5jdGlvbiBpJChkLGcpezEmZCYmQ3IoMCwi''@;'; + put 'put ''Y2xyLW1vbnRocGlja2VyIil9ZnVuY3Rpb24gbyQoZCxnKXsxJmQmJkNyKDAsImNsci15ZWFycGlja2VyIil9ZnVuY3Rpb24gVnVlKGQsZyl7MSZkJiZDcigwLCJjbHItZGF5cGlja2VyIil9Y29uc3QganVlPVsiYWN0aW9uQnV0dG9uIl07ZnVuY3Rpb24gWnVlKGQsZyl7MSZkJiZDcigwLCJs''@;'; + put 'put ''YWJlbCIpfWZ1bmN0aW9uIHZnKGQsZyl7MSZkJiYoaXQoMCwiYnV0dG9uIiw4LDkpLENyKDIsImNkcy1pY29uIiwxMCksc3QoKSksMiZkJiZUdCgiZGlzYWJsZWQiLEt0KCkuaXNJbnB1dERhdGVEaXNhYmxlZCl9ZnVuY3Rpb24gbWooZCxnKXsxJmQmJkNyKDAsImNsci1kYXRlcGlja2VyLXZp''@;'; + put 'put ''ZXctbWFuYWdlciIsMTEpfWZ1bmN0aW9uIHp1ZShkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDEyKX1mdW5jdGlvbiBhJChkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDEzKX1mdW5jdGlvbiBsJChkLGcpezEmZCYmTmkoMCwyLFsiKm5nSWYiLCJzaG93SGVscGVyIl0pfWZ1bmN0aW9uIHMk''@;'; + put 'put ''KGQsZyl7MSZkJiZOaSgwLDMsWyIqbmdJZiIsInNob3dJbnZhbGlkIl0pfWZ1bmN0aW9uIEd1ZShkLGcpezEmZCYmTmkoMCw0LFsiKm5nSWYiLCJzaG93VmFsaWQiXSl9Y29uc3QgV3VlPVtbWyJsYWJlbCJdXSxbWyIiLCJjbHJEYXRlIiwiIl1dLFtbImNsci1jb250cm9sLWhlbHBlciJdXSxb''@;'; + put 'put ''WyJjbHItY29udHJvbC1lcnJvciJdXSxbWyJjbHItY29udHJvbC1zdWNjZXNzIl1dXSxLeT1bImxhYmVsIiwiW2NsckRhdGVdIiwiY2xyLWNvbnRyb2wtaGVscGVyIiwiY2xyLWNvbnRyb2wtZXJyb3IiLCJjbHItY29udHJvbC1zdWNjZXNzIl07ZnVuY3Rpb24gdSQoZCxnKXsxJmQmJkNyKDAs''@;'; + put 'put ''ImxhYmVsIil9Y29uc3QgY2g9W1tbIiIsImNsclJhZGlvIiwiIl1dLFtbImxhYmVsIl1dXSxjJD1bIltjbHJSYWRpb10iLCJsYWJlbCJdO2Z1bmN0aW9uIElsKGQsZyl7MSZkJiZDcigwLCJsYWJlbCIpfWZ1bmN0aW9uIHVMKGQsZyl7MSZkJiZOaSgwLDIsWyIqbmdJZiIsInNob3dIZWxwZXIi''@;'; + put 'put ''XSl9ZnVuY3Rpb24gZiQoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiw1KX1mdW5jdGlvbiBoJChkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDYpfWZ1bmN0aW9uIGk5KGQsZyl7MSZkJiZOaSgwLDMsWyIqbmdJZiIsInNob3dJbnZhbGlkIl0pfWZ1bmN0aW9uIGNMKGQsZyl7MSZkJiZOaSgw''@;'; + put 'put ''LDQsWyIqbmdJZiIsInNob3dWYWxpZCJdKX1jb25zdCB5MD1bW1sibGFiZWwiXV0sW1siY2xyLXJhZGlvLXdyYXBwZXIiXV0sW1siY2xyLWNvbnRyb2wtaGVscGVyIl1dLFtbImNsci1jb250cm9sLWVycm9yIl1dLFtbImNsci1jb250cm9sLXN1Y2Nlc3MiXV1dLENwPVsibGFiZWwiLCJjbHIt''@;'; + put 'put ''cmFkaW8td3JhcHBlciIsImNsci1jb250cm9sLWhlbHBlciIsImNsci1jb250cm9sLWVycm9yIiwiY2xyLWNvbnRyb2wtc3VjY2VzcyJdO2Z1bmN0aW9uIEt1ZShkLGcpezEmZCYmQ3IoMCwibGFiZWwiKX1mdW5jdGlvbiAkdWUoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiw1KX1mdW5jdGlv''@;'; + put 'put ''biBxdWUoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiw2KX1mdW5jdGlvbiBlY2UoZCxnKXsxJmQmJk5pKDAsMixbIipuZ0lmIiwic2hvd0hlbHBlciJdKX1mdW5jdGlvbiBpZChkLGcpezEmZCYmTmkoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlvbiB0Y2UoZCxnKXsxJmQm''@;'; + put 'put ''Jk5pKDAsNCxbIipuZ0lmIiwic2hvd1ZhbGlkIl0pfWNvbnN0IG5jZT1bW1sibGFiZWwiXV0sW1siIiwiY2xyU2VsZWN0IiwiIl1dLFtbImNsci1jb250cm9sLWhlbHBlciJdXSxbWyJjbHItY29udHJvbC1lcnJvciJdXSxbWyJjbHItY29udHJvbC1zdWNjZXNzIl1dXSxwJD1bImxhYmVsIiwi''@;'; + put 'put ''W2NsclNlbGVjdF0iLCJjbHItY29udHJvbC1oZWxwZXIiLCJjbHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9sLXN1Y2Nlc3MiXTtmdW5jdGlvbiByY2UoZCxnKXsxJmQmJkNyKDAsImxhYmVsIil9ZnVuY3Rpb24gdTgoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiw1KX1mdW5jdGlvbiB3''@;'; + put 'put ''cyhkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDYpfWZ1bmN0aW9uIGljZShkLGcpezEmZCYmTmkoMCwyLFsiKm5nSWYiLCJzaG93SGVscGVyIl0pfWZ1bmN0aW9uIG9jZShkLGcpezEmZCYmTmkoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlvbiBhY2UoZCxnKXsxJmQmJk5p''@;'; + put 'put ''KDAsNCxbIipuZ0lmIiwic2hvd1ZhbGlkIl0pfWNvbnN0IHZqPVtbWyJsYWJlbCJdXSxbWyIiLCJjbHJUZXh0YXJlYSIsIiJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1siY2xyLWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sQWo9WyJsYWJlbCIsIltj''@;'; + put 'put ''bHJUZXh0YXJlYV0iLCJjbHItY29udHJvbC1oZWxwZXIiLCJjbHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9sLXN1Y2Nlc3MiXSxsY2U9WyJhbmNob3IiXTtmdW5jdGlvbiBBZyhkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsNCkoMSwiZGl2Iiw1KSgyLCJidXR0b24iLDYpLENyKDMsImNk''@;'; + put 'put ''cy1pY29uIiw3KSxzdCgpKCksTmkoNCksc3QoKSksMiZkKXtjb25zdCBoPUt0KCk7VHQoImlkIixoLnBvcG92ZXJJZCksemkoImFyaWEtbGFiZWwiLGguY29tbW9uU3RyaW5ncy5rZXlzLmRhdGFncmlkRmlsdGVyRGlhbG9nQXJpYUxhYmVsKSx1dCgzKSx6aSgidGl0bGUiLGguY29tbW9uU3Ry''@;'; + put 'put ''aW5ncy5rZXlzLmNsb3NlKX19Y29uc3Qgc2NlPVsiaW5wdXRfbG93Il0sZkw9WyJpbnB1dCJdLGhMPVsiY29sdW1uUG9ydGFsIl07ZnVuY3Rpb24geWooZCxnKXsxJmQmJk5pKDApfWNvbnN0IFJmPVsicmVzaXplVHJhY2tlciJdLGUzPVsiY29sdW1uSGFuZGxlIl07ZnVuY3Rpb24gVnUoZCxn''@;'; + put 'put ''KXsxJmQmJmYxKDApfWZ1bmN0aW9uIGckKGQsZyl7MSZkJiZDcigwLCJjZHMtaWNvbiIsMTApLDImZCYmemkoImRpcmVjdGlvbiIsS3QoMikuc29ydERpcmVjdGlvbil9ZnVuY3Rpb24gbSQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJidXR0b24iLDcpLFluKCJjbGljayIsZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLnNvcnQoKSl9KSxybigxLFZ1LDEsMCwibmctY29udGFpbmVyIiw4KSxybigyLGckLDEsMSwiY2RzLWljb24iLDkpLHN0KCl9aWYoMiZkKXtjb25zdCBoPUt0KCksdj15YSg2KTt1dCgxKSxUdCgibmdUZW1wbGF0ZU91dGxldCIsdiksdXQoMSks''@;'; + put 'put ''VHQoIm5nSWYiLGguc29ydERpcmVjdGlvbil9fWZ1bmN0aW9uIHVjZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci1kZy1zdHJpbmctZmlsdGVyIiwxMSksWW4oImNsckZpbHRlclZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLmZpbHRlclZh''@;'; + put 'put ''bHVlPXkpfSksc3QoKX1pZigyJmQpe2NvbnN0IGg9S3QoKTtUdCgiY2xyRmlsdGVyUGxhY2Vob2xkZXIiLGguZmlsdGVyU3RyaW5nUGxhY2Vob2xkZXJWYWx1ZSkoImNsckRnU3RyaW5nRmlsdGVyIixoLnJlZ2lzdGVyZWQpKCJjbHJGaWx0ZXJWYWx1ZSIsaC5maWx0ZXJWYWx1ZSl9fWZ1bmN0''@;'; + put 'put ''aW9uIGNjZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci1kZy1udW1lcmljLWZpbHRlciIsMTIpLFluKCJjbHJGaWx0ZXJWYWx1ZUNoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5maWx0ZXJWYWx1ZT15KX0pLHN0KCl9aWYoMiZkKXtjb25zdCBoPUt0''@;'; + put 'put ''KCk7VHQoImNsckZpbHRlck1heFBsYWNlaG9sZGVyIixoLmZpbHRlck1heFBsYWNlaG9sZGVyVmFsdWUpKCJjbHJGaWx0ZXJNaW5QbGFjZWhvbGRlciIsaC5maWx0ZXJNaW5QbGFjZWhvbGRlclZhbHVlKSgiY2xyRGdOdW1lcmljRmlsdGVyIixoLnJlZ2lzdGVyZWQpKCJjbHJGaWx0ZXJWYWx1''@;'; + put 'put ''ZSIsaC5maWx0ZXJWYWx1ZSl9fWZ1bmN0aW9uICR5KGQsZyl7MSZkJiZOaSgwLDEpfWZ1bmN0aW9uIGNjKGQsZyl7MSZkJiZmMSgwKX1mdW5jdGlvbiBmY2UoZCxnKXtpZigxJmQmJihpdCgwLCJzcGFuIiwxMykscm4oMSxjYywxLDAsIm5nLWNvbnRhaW5lciIsOCksc3QoKSksMiZkKXtLdCgp''@;'; + put 'put ''O2NvbnN0IGg9eWEoNik7dXQoMSksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLGgpfX1mdW5jdGlvbiB2JChkLGcpezEmZCYmQ3IoMCwiY2xyLWRnLWNvbHVtbi1zZXBhcmF0b3IiKX1jb25zdCB3aj1bW1siY2xyLWRnLWZpbHRlciJdLFsiY2xyLWRnLXN0cmluZy1maWx0ZXIiXSxbImNsci1kZy1u''@;'; + put 'put ''dW1lcmljLWZpbHRlciJdXSwiKiJdLEEkPVsiY2xyLWRnLWZpbHRlciwgY2xyLWRnLXN0cmluZy1maWx0ZXIsIGNsci1kZy1udW1lcmljLWZpbHRlciIsIioiXTtmdW5jdGlvbiBoY2UoZCxnKXsxJmQmJkNyKDAsImRpdiIsNCl9ZnVuY3Rpb24gZGNlKGQsZyl7MSZkJiZOaSgwLDAsWyIqbmdJ''@;'; + put 'put ''ZiIsImVtcHR5RGF0YWdyaWQiXSl9ZnVuY3Rpb24gYTkoZCxnKXtpZigxJmQmJihGMCgwKSxpdCgxLCJidXR0b24iLDEpLENyKDIsImNkcy1pY29uIiwyKSxzdCgpLEgwKCkpLDImZCl7Y29uc3QgaD1LdCgpO3V0KDIpLHppKCJ0aXRsZSIsaC5jb21tb25TdHJpbmdzLmtleXMuaW5mbyl9fWNv''@;'; + put 'put ''bnN0IGJqPVsiY2VsbFBvcnRhbCJdO2Z1bmN0aW9uIHkkKGQsZyl7MSZkJiZOaSgwKX1jb25zdCB0Mz1bInJvd1BvcnRhbCJdO2Z1bmN0aW9uIHBjZShkLGcpezEmZCYmTmkoMCl9Y29uc3QgZ2NlPVsiZGV0YWlsQnV0dG9uIl0seWc9WyJzdGlja3lDZWxscyJdLHFrPVsic2Nyb2xsYWJsZUNl''@;'; + put 'put ''bGxzIl0sbWNlPVsiY2FsY3VsYXRlZENlbGxzIl07ZnVuY3Rpb24gdmNlKGQsZyl7fWZ1bmN0aW9uIEFjZShkLGcpe2lmKDEmZCYmKGl0KDAsImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiIsNykscm4oMSx2Y2UsMCwwLCJuZy10ZW1wbGF0ZSIsOCksc3QoKSksMiZkKXtjb25zdCBoPUt0KDIp''@;'; + put 'put ''LHY9eWEoNik7VHQoImNsckV4cGFuZFRyaWdnZXIiLGguZXhwYW5kQW5pbWF0aW9uVHJpZ2dlciksdXQoMSksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLHYpfX1mdW5jdGlvbiB5Y2UoZCxnKXt9ZnVuY3Rpb24gcXkoZCxnKXsxJmQmJnJuKDAseWNlLDAsMCwibmctdGVtcGxhdGUiLDgpLDImZCYm''@;'; + put 'put ''KEt0KDIpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0Iix5YSg2KSkpfWZ1bmN0aW9uIHdjZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImxhYmVsIiw2KSxZbigibW91c2Vkb3duIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLmNsZWFyUmFuZ2VzKHkpKX0pLHJuKDEsQWNl''@;'; + put 'put ''LDIsMiwiY2xyLWV4cGFuZGFibGUtYW5pbWF0aW9uIiwxKSxybigyLHF5LDEsMSxudWxsLDIpLHN0KCl9aWYoMiZkKXtjb25zdCBoPUt0KCk7dXQoMSksVHQoIm5nSWYiLGguZXhwYW5kLmV4cGFuZGFibGUpLHV0KDEpLFR0KCJuZ0lmIiwhaC5leHBhbmQuZXhwYW5kYWJsZSl9fWZ1bmN0aW9u''@;'; + put 'put ''IHckKGQsZyl7fWZ1bmN0aW9uIGJjZShkLGcpe2lmKDEmZCYmKGl0KDAsImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiIsNykscm4oMSx3JCwwLDAsIm5nLXRlbXBsYXRlIiw4KSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKSx2PXlhKDYpO1R0KCJjbHJFeHBhbmRUcmlnZ2VyIixoLmV4cGFuZEFu''@;'; + put 'put ''aW1hdGlvblRyaWdnZXIpLHV0KDEpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0Iix2KX19ZnVuY3Rpb24gb28oZCxnKXt9ZnVuY3Rpb24gX2ooZCxnKXsxJmQmJnJuKDAsb28sMCwwLCJuZy10ZW1wbGF0ZSIsOCksMiZkJiYoS3QoKSxUdCgibmdUZW1wbGF0ZU91dGxldCIseWEoNikpKX1mdW5jdGlv''@;'; + put 'put ''biB4MShkLGcpezEmZCYmTmkoMCl9Y29uc3QgZEw9ZnVuY3Rpb24oZCl7cmV0dXJueyJjbHItZm9ybS1jb250cm9sLWRpc2FibGVkIjpkfX07ZnVuY3Rpb24gcEwoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiLDE5KSgxLCJkaXYiLDIwKSgyLCJpbnB1dCIsMjEpLFluKCJu''@;'; + put 'put ''Z01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgyKS50b2dnbGUoeSkpfSksc3QoKSxpdCgzLCJsYWJlbCIsMjIpLFluKCJjbGljayIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoMikuY2xlYXJSYW5nZXMoeSkpfSksaXQoNCwic3BhbiIsMjMpLFV0KDUp''@;'; + put 'put ''LHN0KCkoKSgpKCl9aWYoMiZkKXtjb25zdCBoPUt0KDIpO1R0KCJuZ0NsYXNzIixaZCg4LGRMLCFoLmNsckRnU2VsZWN0YWJsZSkpLHV0KDIpLFR0KCJuZ01vZGVsIixoLnNlbGVjdGVkKSgiaWQiLGguY2hlY2tib3hJZCksemkoImRpc2FibGVkIiwhaC5jbHJEZ1NlbGVjdGFibGV8fG51bGwp''@;'; + put 'put ''KCJhcmlhLWRpc2FibGVkIiwhaC5jbHJEZ1NlbGVjdGFibGV8fG51bGwpKCJhcmlhLWxhYmVsIixoLmNsckRnUm93QXJpYUxhYmVsKSx1dCgxKSxUdCgiZm9yIixoLmNoZWNrYm94SWQpLHV0KDIpLEdpKGguY29tbW9uU3RyaW5ncy5rZXlzLnNlbGVjdCl9fWZ1bmN0aW9uIGdMKGQsZyl7aWYo''@;'; + put 'put ''MSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiZGl2IiwxOSkoMSwiaW5wdXQiLDI0KSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoMikuc2VsZWN0aW9uLmN1cnJlbnRTaW5nbGU9eSl9KSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPUt0KDIpO1R0KCJuZ0Ns''@;'; + put 'put ''YXNzIixaZCg5LGRMLCFoLmNsckRnU2VsZWN0YWJsZSkpLHV0KDEpLFR0KCJpZCIsaC5yYWRpb0lkKSgibmFtZSIsaC5zZWxlY3Rpb24uaWQrIi1yYWRpbyIpKCJ2YWx1ZSIsaC5pdGVtKSgibmdNb2RlbCIsaC5zZWxlY3Rpb24uY3VycmVudFNpbmdsZSkoImNoZWNrZWQiLGguc2VsZWN0aW9u''@;'; + put 'put ''LmN1cnJlbnRTaW5nbGU9PT1oLml0ZW0pLHppKCJkaXNhYmxlZCIsIWguY2xyRGdTZWxlY3RhYmxlfHxudWxsKSgiYXJpYS1kaXNhYmxlZCIsIWguY2xyRGdTZWxlY3RhYmxlfHxudWxsKSgiYXJpYS1sYWJlbCIsaC5jbHJEZ1Jvd0FyaWFMYWJlbCl9fWZ1bmN0aW9uIG1MKGQsZyl7MSZkJiYo''@;'; + put 'put ''aXQoMCwiZGl2IiwyNSksTmkoMSwyKSxzdCgpKX1mdW5jdGlvbiBiJChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImJ1dHRvbiIsMjkpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCg0KS50b2dnbGVFeHBhbmQoKSl9KSxDcigxLCJjZHMtaWNvbiIsMzAp''@;'; + put 'put ''LHN0KCl9aWYoMiZkKXtjb25zdCBoPUt0KDQpO3ppKCJhcmlhLWV4cGFuZGVkIixoLmV4cGFuZC5leHBhbmRlZCkoImFyaWEtbGFiZWwiLGguZXhwYW5kLmV4cGFuZGVkP2guY2xyRGdEZXRhaWxDbG9zZUxhYmVsOmguY2xyRGdEZXRhaWxPcGVuTGFiZWwpKCJhcmlhLWNvbnRyb2xzIixoLmV4''@;'; + put 'put ''cGFuZGFibGVJZCksdXQoMSksemkoImRpcmVjdGlvbiIsaC5leHBhbmQuZXhwYW5kZWQ/ImRvd24iOiJyaWdodCIpKCJ0aXRsZSIsaC5leHBhbmQuZXhwYW5kZWQ/aC5jb21tb25TdHJpbmdzLmtleXMuY29sbGFwc2U6aC5jb21tb25TdHJpbmdzLmtleXMuZXhwYW5kKX19ZnVuY3Rpb24gXyQo''@;'; + put 'put ''ZCxnKXtpZigxJmQmJihpdCgwLCJjbHItc3Bpbm5lciIsMzEpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCg0KTt1dCgxKSxHaShoLmNvbW1vblN0cmluZ3Mua2V5cy5sb2FkaW5nKX19ZnVuY3Rpb24gQyQoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLGIkLDIsNSwiYnV0dG9uIiwyNyks''@;'; + put 'put ''cm4oMixfJCwyLDEsImNsci1zcGlubmVyIiwyOCksSDAoKSksMiZkKXtjb25zdCBoPUt0KDMpO3V0KDEpLFR0KCJuZ0lmIiwhaC5leHBhbmQubG9hZGluZyksdXQoMSksVHQoIm5nSWYiLGguZXhwYW5kLmxvYWRpbmcpfX1mdW5jdGlvbiBUMChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsMjYp''@;'; + put 'put ''LHJuKDEsQyQsMywyLCJuZy1jb250YWluZXIiLDIpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCgxKSxUdCgibmdJZiIsaC5leHBhbmQuZXhwYW5kYWJsZSl9fWZ1bmN0aW9uIF9jZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImRpdiIsMzIpKDEsImJ1dHRvbiIsMzMsMzQp''@;'; + put 'put ''LFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PXlhKDIpLEM9S3QoMik7cmV0dXJuIGEoQy5kZXRhaWxTZXJ2aWNlLnRvZ2dsZShDLml0ZW0seSkpfSksQ3IoMywiY2RzLWljb24iLDM1KSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPUt0KDIpO3V0KDEpLEZpKCJpcy1vcGVuIixo''@;'; + put 'put ''LmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGguaXRlbSkpLHppKCJhcmlhLWxhYmVsIixoLmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGguaXRlbSk/aC5jbHJEZ0RldGFpbENsb3NlTGFiZWw6aC5jbHJEZ0RldGFpbE9wZW5MYWJlbCkoImFyaWEtZXhwYW5kZWQiLGguZGV0YWlsU2VydmljZS5p''@;'; + put 'put ''c09wZW4pKCJhcmlhLWNvbnRyb2xzIixoLmRldGFpbFNlcnZpY2UuaWQpLHV0KDIpLHppKCJkaXJlY3Rpb24iLGguZGV0YWlsU2VydmljZS5pc1Jvd09wZW4oaC5pdGVtKT8ibGVmdCI6InJpZ2h0IikoInRpdGxlIixoLmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGguaXRlbSk/aC5jb21tb25T''@;'; + put 'put ''dHJpbmdzLmtleXMuY2xvc2U6aC5jb21tb25TdHJpbmdzLmtleXMub3Blbil9fWZ1bmN0aW9uIHZMKGQsZyl7fWZ1bmN0aW9uIENqKGQsZyl7MSZkJiZybigwLHZMLDAsMCwibmctdGVtcGxhdGUiLDgpLDImZCYmKEt0KDIpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0Iix5YSg0KSkpfWZ1bmN0aW9u''@;'; + put 'put ''IGw5KGQsZyl7fWZ1bmN0aW9uIENjZShkLGcpezEmZCYmcm4oMCxsOSwwLDAsIm5nLXRlbXBsYXRlIiw4KSwyJmQmJihLdCgyKSxUdCgibmdUZW1wbGF0ZU91dGxldCIseWEoNCkpKX1jb25zdCBraj1mdW5jdGlvbihkKXtyZXR1cm57ImlzLXJlcGxhY2VkIjpkfX07ZnVuY3Rpb24gcmEoZCxn''@;'; + put 'put ''KXtpZigxJmQmJihpdCgwLCJkaXYiLDkpKDEsImRpdiIsMTApLEYwKDIsbnVsbCwxMSkscm4oNCxwTCw2LDEwLCJkaXYiLDEyKSxybig1LGdMLDIsMTEsImRpdiIsMTIpLHJuKDYsbUwsMiwwLCJkaXYiLDEzKSxybig3LFQwLDIsMSwiZGl2IiwxNCkscm4oOCxfY2UsNCw3LCJkaXYiLDE1KSxI''@;'; + put 'put ''MCgpLHN0KCksaXQoOSwiZGl2IiwxNikoMTAsImRpdiIsMTcpLE5pKDExLDEpLGYxKDEyLG51bGwsMTgpLHN0KCkscm4oMTQsQ2osMSwxLG51bGwsMikscm4oMTUsQ2NlLDEsMSxudWxsLDIpLHN0KCkoKSksMiZkKXtjb25zdCBoPUt0KCk7RmkoImRhdGFncmlkLXJvdy1kZXRhaWwtb3BlbiIs''@;'; + put 'put ''aC5kZXRhaWxTZXJ2aWNlLmlzUm93T3BlbihoLml0ZW0pKSxUdCgiaWQiLGguaWQpLHV0KDQpLFR0KCJuZ0lmIixoLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09aC5TRUxFQ1RJT05fVFlQRS5NdWx0aSksdXQoMSksVHQoIm5nSWYiLGguc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT1oLlNF''@;'; + put 'put ''TEVDVElPTl9UWVBFLlNpbmdsZSksdXQoMSksVHQoIm5nSWYiLGgucm93QWN0aW9uU2VydmljZS5oYXNBY3Rpb25hYmxlUm93KSx1dCgxKSxUdCgibmdJZiIsaC5nbG9iYWxFeHBhbmRhYmxlLmhhc0V4cGFuZGFibGVSb3cpLHV0KDEpLFR0KCJuZ0lmIixoLmRldGFpbFNlcnZpY2UuZW5hYmxl''@;'; + put 'put ''ZCksdXQoMSksVHQoIm5nQ2xhc3MiLFpkKDExLGtqLGgucmVwbGFjZWQmJmguZXhwYW5kZWQpKSx1dCg1KSxUdCgibmdJZiIsaC5yZXBsYWNlZCYmIWguZXhwYW5kLmxvYWRpbmcpLHV0KDEpLFR0KCJuZ0lmIiwhaC5yZXBsYWNlZCYmIWguZXhwYW5kLmxvYWRpbmcpfX1jb25zdCBrJD1bW1si''@;'; + put 'put ''Y2xyLWRnLXJvdy1kZXRhaWwiXV0sW1siY2xyLWRnLWNlbGwiXV0sW1siY2xyLWRnLWFjdGlvbi1vdmVyZmxvdyJdXV0sczk9WyJjbHItZGctcm93LWRldGFpbCIsImNsci1kZy1jZWxsIiwiY2xyLWRnLWFjdGlvbi1vdmVyZmxvdyJdLGtjZT1bInNjcm9sbGFibGVDb2x1bW5zIl0sUyQ9WyJk''@;'; + put 'put ''YXRhZ3JpZFRhYmxlIl0sZXc9WyJwcm9qZWN0ZWREaXNwbGF5Q29sdW1ucyJdLFNjZT1bInByb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucyJdLFNqPVsiZGlzcGxheWVkUm93cyJdLE1qPVsiY2FsY3VsYXRpb25Sb3dzIl07ZnVuY3Rpb24gQUwoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtp''@;'; + put 'put ''dCgwLCJkaXYiLDI0KSxZbigia2V5ZG93bi5zcGFjZSIsZnVuY3Rpb24oeSl7cnQoaCk7Y29uc3QgQz1LdCgpO3JldHVybiBDLmFsbFNlbGVjdGVkPSFDLmFsbFNlbGVjdGVkLGEoeS5wcmV2ZW50RGVmYXVsdCgpKX0pLGl0KDEsImRpdiIsMjUpKDIsImlucHV0IiwyNiksWW4oIm5nTW9kZWxD''@;'; + put 'put ''aGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KCkuYWxsU2VsZWN0ZWQ9eSl9KSxzdCgpLGl0KDMsImxhYmVsIiwyNykoNCwic3BhbiIsMjgpLFV0KDUpLHN0KCkoKSgpLENyKDYsImRpdiIsMjkpLHN0KCl9aWYoMiZkKXtjb25zdCBoPUt0KCk7dXQoMiksVHQoImlkIixoLnNl''@;'; + put 'put ''bGVjdEFsbElkKSgibmdNb2RlbCIsaC5hbGxTZWxlY3RlZCksemkoImFyaWEtbGFiZWwiLGguY29tbW9uU3RyaW5ncy5rZXlzLnNlbGVjdEFsbCksdXQoMSksVHQoImZvciIsaC5zZWxlY3RBbGxJZCksdXQoMiksR2koaC5jb21tb25TdHJpbmdzLmtleXMuc2VsZWN0QWxsKX19ZnVuY3Rpb24g''@;'; + put 'put ''RWooZCxnKXsxJmQmJihpdCgwLCJkaXYiLDMwKSxDcigxLCJkaXYiLDI5KSxzdCgpKSwyJmQmJnppKCJhcmlhLWxhYmVsIixLdCgpLmNsckRnU2luZ2xlU2VsZWN0aW9uQXJpYUxhYmVsKX1mdW5jdGlvbiBNY2UoZCxnKXsxJmQmJihpdCgwLCJkaXYiLDMxKSxDcigxLCJkaXYiLDI5KSxzdCgp''@;'; + put 'put ''KSwyJmQmJnppKCJhcmlhLWxhYmVsIixLdCgpLmNsckRnU2luZ2xlQWN0aW9uYWJsZUFyaWFMYWJlbCl9ZnVuY3Rpb24gTSQoZCxnKXsxJmQmJihpdCgwLCJkaXYiLDMyKSxDcigxLCJkaXYiLDI5KSxzdCgpKSwyJmQmJnppKCJhcmlhLWxhYmVsIixLdCgpLmNsckRldGFpbEV4cGFuZGFibGVB''@;'; + put 'put ''cmlhTGFiZWwpfWZ1bmN0aW9uIEVjZShkLGcpezEmZCYmQ3IoMCwiY2xyLWRnLXBsYWNlaG9sZGVyIil9ZnVuY3Rpb24gYzgoZCxnKXsxJmQmJihpdCgwLCJkaXYiLDMzKSgxLCJjbHItc3Bpbm5lciIsMzQpLFV0KDIsIkxvYWRpbmciKSxzdCgpKCkpfWNvbnN0IHhjZT1bW1siY2xyLWRnLWFj''@;'; + put 'put ''dGlvbi1iYXIiXV0sW1siY2xyLWRnLXBsYWNlaG9sZGVyIl1dLFtbImNsci1kZy1mb290ZXIiXV0sW1siIiwiY2xySWZEZXRhaWwiLCIiXSxbImNsci1kZy1kZXRhaWwiXV1dLF91PVsiY2xyLWRnLWFjdGlvbi1iYXIiLCJjbHItZGctcGxhY2Vob2xkZXIiLCJjbHItZGctZm9vdGVyIiwiW2Ns''@;'; + put 'put ''cklmRGV0YWlsXSxjbHItZGctZGV0YWlsIl0seGo9WyJhbGxTZWxlY3RlZCJdO2Z1bmN0aW9uIFRjZShkLGcpe2lmKDEmZCYmKEYwKDApLGl0KDEsImgyIiksVXQoMiksc3QoKSxIMCgpKSwyJmQpe2NvbnN0IGg9S3QoMik7dXQoMiksR2koaC5jb21tb25TdHJpbmdzLmtleXMuc2hvd0NvbHVt''@;'; + put 'put ''bnMpfX1mdW5jdGlvbiBUaihkLGcpe31mdW5jdGlvbiBJY2UoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJsaSIpKDEsImNsci1jaGVja2JveC13cmFwcGVyIikoMiwiaW5wdXQiLDE1KSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7Y29uc3QgST1ydChoKS4kaW1wbGlj''@;'; + put 'put ''aXQ7cmV0dXJuIGEoS3QoMikudG9nZ2xlQ29sdW1uU3RhdGUoSSwheSkpfSksc3QoKSxpdCgzLCJsYWJlbCIpLHJuKDQsVGosMCwwLCJuZy10ZW1wbGF0ZSIsMTYpLHN0KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUt0KDIpO3V0KDIpLFR0KCJkaXNhYmxlZCIsdi5oYXNP''@;'; + put 'put ''bmx5T25lVmlzaWJsZUNvbHVtbiYmIWguaGlkZGVuKSgibmdNb2RlbCIsIWguaGlkZGVuKSx1dCgyKSxUdCgibmdUZW1wbGF0ZU91dGxldCIsaC50aXRsZVRlbXBsYXRlUmVmKX19ZnVuY3Rpb24gRSQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItZGctY29sdW1uLXRvZ2ds''@;'; + put 'put ''ZS1idXR0b24iLDE3KSxZbigiY2xyQWxsU2VsZWN0ZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoMikuYWxsQ29sdW1uc1NlbGVjdGVkKCkpfSksVXQoMSksc3QoKX1pZigyJmQpe2NvbnN0IGg9S3QoMik7dXQoMSksSmkoIiAiLGguY29tbW9uU3RyaW5ncy5rZXlzLnNlbGVjdEFs''@;'; + put 'put ''bCwiICIpfX1mdW5jdGlvbiBEY2UoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDQpKDEsImRpdiIsNSkoMiwiZGl2Iiw2LDcpLFV0KDQpLHN0KCkscm4oNSxUY2UsMywxLCJuZy1jb250YWluZXIiLDgpLE5pKDYpLGl0KDcsImJ1dHRvbiIsOSksQ3IoOCwiY2RzLWljb24iLDEwKSxpdCg5LCJz''@;'; + put 'put ''cGFuIiwyKSxVdCgxMCksc3QoKSgpKCksaXQoMTEsInVsIiwxMSkscm4oMTIsSWNlLDUsMywibGkiLDEyKSxzdCgpLGl0KDEzLCJkaXYiLDEzKSxOaSgxNCwxKSxybigxNSxFJCwyLDEsImNsci1kZy1jb2x1bW4tdG9nZ2xlLWJ1dHRvbiIsMTQpLHN0KCkoKSksMiZkKXtjb25zdCBoPUt0KCk7''@;'; + put 'put ''VHQoImlkIixoLnBvcG92ZXJJZCksemkoImFyaWEtbGFiZWwiLGguY29tbW9uU3RyaW5ncy5rZXlzLnNob3dDb2x1bW5zTWVudURlc2NyaXB0aW9uKSx1dCg0KSxHaShoLmNvbW1vblN0cmluZ3Mua2V5cy5hbGxDb2x1bW5zU2VsZWN0ZWQpLHV0KDEpLFR0KCJuZ0lmIiwhaC5jdXN0b21Ub2dn''@;'; + put 'put ''bGVUaXRsZSksdXQoMiksemkoImFyaWEtbGFiZWwiLGguY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlKSx1dCgxKSx6aSgidGl0bGUiLGguY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlKSx1dCgyKSxHaShoLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSksdXQoMiksVHQoIm5nRm9yT2YiLGguaGlk''@;'; + put 'put ''ZWFibGVDb2x1bW5TdGF0ZXMpKCJuZ0ZvclRyYWNrQnkiLGgudHJhY2tCeUZuKSx1dCgzKSxUdCgibmdJZiIsIWguY3VzdG9tVG9nZ2xlQnV0dG9uKX19Y29uc3QgZVM9W1tbImNsci1kZy1jb2x1bW4tdG9nZ2xlLXRpdGxlIl1dLFtbImNsci1kZy1jb2x1bW4tdG9nZ2xlLWJ1dHRvbiJdXV0s''@;'; + put 'put ''TGNlPVsiY2xyLWRnLWNvbHVtbi10b2dnbGUtdGl0bGUiLCJjbHItZGctY29sdW1uLXRvZ2dsZS1idXR0b24iXTtmdW5jdGlvbiBSY2UoZCxnKXtpZigxJmQmJihGMCgwKSxpdCgxLCJkaXYiLDEpKDIsImNsci1jaGVja2JveC13cmFwcGVyIiwyKSxDcigzLCJpbnB1dCIsMyksaXQoNCwibGFi''@;'; + put 'put ''ZWwiKSxVdCg1KSxzdCgpLGl0KDYsInNwYW4iLDQpLFV0KDcpLHN0KCkoKSgpLEgwKCkpLDImZCl7Y29uc3QgaD1LdCgpO3V0KDUpLEdpKGguc2VsZWN0aW9uLmN1cnJlbnQubGVuZ3RoKSx1dCgyKSxHaShoLmNvbW1vblN0cmluZ3Mua2V5cy5zZWxlY3RlZFJvd3MpfX1mdW5jdGlvbiBCY2Uo''@;'; + put 'put ''ZCxnKXsxJmQmJkNyKDAsImNsci1kZy1jb2x1bW4tdG9nZ2xlIil9ZnVuY3Rpb24gUGNlKGQsZyl7aWYoMSZkJiYoRjAoMCksTmkoMSwxKSxybigyLEJjZSwxLDAsImNsci1kZy1jb2x1bW4tdG9nZ2xlIiwwKSxpdCgzLCJkaXYiLDUpLE5pKDQsMiksc3QoKSxIMCgpKSwyJmQpe2NvbnN0IGg9''@;'; + put 'put ''S3QoKTt1dCgyKSxUdCgibmdJZiIsaC5oYXNIaWRlYWJsZUNvbHVtbnMmJiFoLnRvZ2dsZSl9fWNvbnN0IHgkPVtbWyJjbHItZGctcGFnaW5hdGlvbiJdXSxbWyJjbHItZGctY29sdW1uLXRvZ2dsZSJdXSwiKiJdLEZjZT1bImNsci1kZy1wYWdpbmF0aW9uIiwiY2xyLWRnLWNvbHVtbi10b2dn''@;'; + put 'put ''bGUiLCIqIl07ZnVuY3Rpb24gVCQoZCxnKXtpZigxJmQmJihpdCgwLCJvcHRpb24iLDMpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgibmdWYWx1ZSIsaCksdXQoMSksR2koaCl9fWNvbnN0IEhjZT1bImN1cnJlbnRQYWdlSW5wdXQiXTtmdW5jdGlvbiBOY2UoZCxn''@;'; + put 'put ''KXsxJmQmJihpdCgwLCJkaXYiLDQpLE5pKDEsMSksc3QoKSl9ZnVuY3Rpb24gSSQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJpbnB1dCIsMTcsMTgpLFluKCJrZXlkb3duLmVudGVyIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgzKS51cGRhdGVDdXJyZW50UGFnZSh5''@;'; + put 'put ''KSl9KSgiYmx1ciIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoMykudXBkYXRlQ3VycmVudFBhZ2UoeSkpfSksc3QoKX1pZigyJmQpe2NvbnN0IGg9S3QoMyk7VHQoInNpemUiLGgucGFnZS5sYXN0LnRvU3RyaW5nKCkubGVuZ3RoKSgidmFsdWUiLGgucGFnZS5jdXJyZW50KSx6aSgi''@;'; + put 'put ''YXJpYS1sYWJlbCIsaC5jb21tb25TdHJpbmdzLmtleXMuY3VycmVudFBhZ2UpfX1mdW5jdGlvbiBWY2UoZCxnKXtpZigxJmQmJihpdCgwLCJzcGFuIiksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPUt0KDMpO3V0KDEpLEdpKGgucGFnZS5jdXJyZW50KX19ZnVuY3Rpb24gbjMoZCxnKXtpZigx''@;'; + put 'put ''JmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiLDUpKDEsImJ1dHRvbiIsNiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDIpLnBhZ2UuY3VycmVudD0xKX0pLGl0KDIsInNwYW4iLDcpLFV0KDMpLHN0KCksQ3IoNCwiY2RzLWljb24iLDgpLHN0KCksaXQoNSwiYnV0''@;'; + put 'put ''dG9uIiw5KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT1LdCgyKTtyZXR1cm4gYSh5LnBhZ2UuY3VycmVudD15LnBhZ2UuY3VycmVudC0xKX0pLGl0KDYsInNwYW4iLDcpLFV0KDcpLHN0KCksQ3IoOCwiY2RzLWljb24iLDEwKSxzdCgpLHJuKDksSSQsMiwzLCJpbnB1dCIs''@;'; + put 'put ''MTEpLHJuKDEwLFZjZSwyLDEsIm5nLXRlbXBsYXRlIixudWxsLDEyLFpyKSxVdCgxMiwiIFx4YTAvXHhhMCIpLGl0KDEzLCJzcGFuIiksVXQoMTQpLHN0KCksaXQoMTUsImJ1dHRvbiIsMTMpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KDIpO3JldHVybiBhKHkucGFn''@;'; + put 'put ''ZS5jdXJyZW50PXkucGFnZS5jdXJyZW50KzEpfSksaXQoMTYsInNwYW4iLDcpLFV0KDE3KSxzdCgpLENyKDE4LCJjZHMtaWNvbiIsMTQpLHN0KCksaXQoMTksImJ1dHRvbiIsMTUpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KDIpO3JldHVybiBhKHkucGFnZS5jdXJy''@;'; + put 'put ''ZW50PXkucGFnZS5sYXN0KX0pLGl0KDIwLCJzcGFuIiw3KSxVdCgyMSksc3QoKSxDcigyMiwiY2RzLWljb24iLDE2KSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDExKSx2PUt0KDIpO3V0KDEpLFR0KCJkaXNhYmxlZCIsdi5wYWdlLmN1cnJlbnQ8PTEpLHppKCJhcmlhLWxhYmVsIix2LmNv''@;'; + put 'put ''bW1vblN0cmluZ3Mua2V5cy5maXJzdFBhZ2UpLHV0KDIpLEdpKHYuY29tbW9uU3RyaW5ncy5rZXlzLmZpcnN0UGFnZSksdXQoMiksVHQoImRpc2FibGVkIix2LnBhZ2UuY3VycmVudDw9MSksemkoImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLnByZXZpb3VzUGFnZSksdXQoMiks''@;'; + put 'put ''R2kodi5jb21tb25TdHJpbmdzLmtleXMucHJldmlvdXNQYWdlKSx1dCgyKSxUdCgibmdJZiIsIXYuZGlzYWJsZUN1cnJlbnRQYWdlSW5wdXQpKCJuZ0lmRWxzZSIsaCksdXQoNCksemkoImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLnRvdGFsUGFnZXMpLHV0KDEpLEdpKHYucGFn''@;'; + put 'put ''ZS5sYXN0KSx1dCgxKSxUdCgiZGlzYWJsZWQiLHYucGFnZS5jdXJyZW50Pj12LnBhZ2UubGFzdCksemkoImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLm5leHRQYWdlKSx1dCgyKSxHaSh2LmNvbW1vblN0cmluZ3Mua2V5cy5uZXh0UGFnZSksdXQoMiksVHQoImRpc2FibGVkIix2''@;'; + put 'put ''LnBhZ2UuY3VycmVudD49di5wYWdlLmxhc3QpLHppKCJhcmlhLWxhYmVsIix2LmNvbW1vblN0cmluZ3Mua2V5cy5sYXN0UGFnZSksdXQoMiksR2kodi5jb21tb25TdHJpbmdzLmtleXMubGFzdFBhZ2UpfX1mdW5jdGlvbiBqY2UoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLE5jZSwyLDAsImRp''@;'; + put 'put ''diIsMSksaXQoMiwiZGl2IiwyKSxOaSgzKSxzdCgpLHJuKDQsbjMsMjMsMTYsImRpdiIsMyksSDAoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMSksVHQoIm5nSWYiLGguX3BhZ2VTaXplQ29tcG9uZW50KSx1dCgzKSxUdCgibmdJZiIsaC5wYWdlLmxhc3Q+MSl9fWZ1bmN0aW9uIEQkKGQsZyl7''@;'; + put 'put ''aWYoMSZkKXtjb25zdCBoPV9pKCk7RjAoMCksaXQoMSwiZGl2IiwxOSksVXQoMiksc3QoKSxpdCgzLCJkaXYiLDUpKDQsImJ1dHRvbiIsOSksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoKTtyZXR1cm4gYSh5LnBhZ2UuY3VycmVudD15LnBhZ2UuY3VycmVudC0xKX0p''@;'; + put 'put ''LGl0KDUsInNwYW4iLDcpLFV0KDYpLHN0KCksQ3IoNywiY2RzLWljb24iLDEwKSxzdCgpLGl0KDgsInNwYW4iKSxVdCg5KSxzdCgpLGl0KDEwLCJidXR0b24iLDEzKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT1LdCgpO3JldHVybiBhKHkucGFnZS5jdXJyZW50PXkucGFn''@;'; + put 'put ''ZS5jdXJyZW50KzEpfSksaXQoMTEsInNwYW4iLDcpLFV0KDEyKSxzdCgpLENyKDEzLCJjZHMtaWNvbiIsMTQpLHN0KCkoKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1LdCgpO3V0KDIpLGtmKCIgIixoLnBhZ2UuZmlyc3RJdGVtKzEsIi0iLGgucGFnZS5sYXN0SXRlbSsxLCIgLyAiLGgucGFnZS50''@;'; + put 'put ''b3RhbEl0ZW1zLCIgIiksdXQoMiksVHQoImRpc2FibGVkIixoLnBhZ2UuY3VycmVudDw9MSksemkoImFyaWEtbGFiZWwiLGguY29tbW9uU3RyaW5ncy5rZXlzLnByZXZpb3VzUGFnZSksdXQoMiksR2koaC5jb21tb25TdHJpbmdzLmtleXMucHJldmlvdXNQYWdlKSx1dCgzKSxHaShoLnBhZ2Uu''@;'; + put 'put ''Y3VycmVudCksdXQoMSksVHQoImRpc2FibGVkIixoLnBhZ2UuY3VycmVudD49aC5wYWdlLmxhc3QpLHppKCJhcmlhLWxhYmVsIixoLmNvbW1vblN0cmluZ3Mua2V5cy5uZXh0UGFnZSksdXQoMiksR2koaC5jb21tb25TdHJpbmdzLmtleXMubmV4dFBhZ2UpfX1jb25zdCByMz1bIioiLFtbImNs''@;'; + put 'put ''ci1kZy1wYWdlLXNpemUiXV1dLGtwPVsiKiIsImNsci1kZy1wYWdlLXNpemUiXTtmdW5jdGlvbiBpMyhkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDcpLDImZCYmemkoImRpcmVjdGlvbiIsS3QoKS5jYXJldERpcmVjdGlvbil9ZnVuY3Rpb24gWmNlKGQsZyl7aWYoMSZkJiYoaXQoMCwic3Bh''@;'; + put 'put ''biIsOCksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMSksR2koaC5jb21tb25TdHJpbmdzLmtleXMuc3RhY2tWaWV3Q2hhbmdlZCl9fWZ1bmN0aW9uIHR3KGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2Iiw5KSxOaSgxLDIpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgpO1IzKCJoZWln''@;'; + put 'put ''aHQiLGguZXhwYW5kZWQ/ImF1dG8iOjApLHppKCJpZCIsaC5nZXRTdGFja0NoaWxkcmVuSWQoKSkoImFyaWEtbGFiZWxsZWRieSIsaC5sYWJlbGxlZEJ5SWQpfX1jb25zdCB6Y2U9W1tbImNsci1zdGFjay1sYWJlbCJdXSwiKiIsW1siY2xyLXN0YWNrLWJsb2NrIl1dXSxudz1bImNsci1zdGFj''@;'; + put 'put ''ay1sYWJlbCIsIioiLCJjbHItc3RhY2stYmxvY2siXSxUMT1bW1siY2xyLXN0YWNrLWhlYWRlciJdXSwiKiJdLEdjZT1bImNsci1zdGFjay1oZWFkZXIiLCIqIl07ZnVuY3Rpb24gVWNlKGQsZyl7MSZkJiZmMSgwKX1mdW5jdGlvbiBEaihkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsVWNlLDEs''@;'; + put 'put ''MCwibmctY29udGFpbmVyIiwyKSxIMCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1LdCgyKTt1dCgxKSxUdCgibmdUZW1wbGF0ZU91dGxldCIsdi5mZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uLnRlbXBsYXRlKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLHYuZ2V0Q29udGV4dCho''@;'; + put 'put ''KSl9fWZ1bmN0aW9uIFFjZShkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsRGosMiwyLCJuZy1jb250YWluZXIiLDEpLEgwKCkpLDImZCl7Y29uc3QgaD1LdCgpO3V0KDEpLFR0KCJuZ0Zvck9mIiwobnVsbD09aC5wYXJlbnQ/bnVsbDpoLnBhcmVudC5jaGlsZHJlbil8fGguY2hpbGRyZW4pfX1j''@;'; + put 'put ''b25zdCBPJD1bImNvbnRlbnRDb250YWluZXIiXTtmdW5jdGlvbiBKY2UoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJidXR0b24iLDkpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLmV4cGFuZFNlcnZpY2UudG9nZ2xlKCkpfSkoImZvY3VzIixmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBydChoKSxhKEt0KCkuZm9jdXNUcmVlTm9kZSgpKX0pLENyKDEsImNkcy1pY29uIiwxMCksc3QoKX1pZigyJmQpe2NvbnN0IGg9S3QoKTt1dCgxKSx6aSgiZGlyZWN0aW9uIixoLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ/ImRvd24iOiJyaWdodCIpfX1mdW5jdGlvbiB0''@;'; + put 'put ''MShkLGcpezEmZCYmKGl0KDAsImRpdiIsMTEpLENyKDEsInNwYW4iLDEyKSxzdCgpKX1mdW5jdGlvbiB1OShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImRpdiIsMTMpKDEsImlucHV0IiwxNCksWW4oImNoYW5nZSIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KCk7cmV0dXJu''@;'; + put 'put ''IGEoeS5fbW9kZWwudG9nZ2xlU2VsZWN0aW9uKHkuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyKSl9KSgiZm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5mb2N1c1RyZWVOb2RlKCkpfSksc3QoKSxDcigyLCJsYWJlbCIsMTUpLHN0KCl9aWYoMiZkKXtjb25zdCBoPUt0KCk7dXQo''@;'; + put 'put ''MSksWm0oImlkIiwiIixoLm5vZGVJZCwiLWNoZWNrIiksVHQoImNoZWNrZWQiLGguX21vZGVsLnNlbGVjdGVkLnZhbHVlPT09aC5TVEFURVMuU0VMRUNURUQpKCJpbmRldGVybWluYXRlIixoLl9tb2RlbC5zZWxlY3RlZC52YWx1ZT09PWguU1RBVEVTLklOREVURVJNSU5BVEUpLHV0KDEpLFpt''@;'; + put 'put ''KCJmb3IiLCIiLGgubm9kZUlkLCItY2hlY2siKX19ZnVuY3Rpb24gWGNlKGQsZyl7MSZkJiYoaXQoMCwic3BhbiIpLFV0KDEsInNlbGVjdGVkIiksc3QoKSl9ZnVuY3Rpb24geUwoZCxnKXsxJmQmJihpdCgwLCJzcGFuIiksVXQoMSwidW5zZWxlY3RlZCIpLHN0KCkpfWZ1bmN0aW9uIEtjZShk''@;'; + put 'put ''LGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsMTYpLHJuKDEsWGNlLDIsMCwic3BhbiIsMTcpLHJuKDIseUwsMiwwLCJzcGFuIiwxNyksc3QoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMSksVHQoIm5nSWYiLGguYXJpYVNlbGVjdGVkKSx1dCgxKSxUdCgibmdJZiIsIWguYXJpYVNlbGVjdGVkKX19''@;'; + put 'put ''Y29uc3QgUiQ9WyIqIixbWyJjbHItdHJlZS1ub2RlIl1dLFtbIiIsImNscklmRXhwYW5kZWQiLCIiXV1dLGVmPVsiKiIsImNsci10cmVlLW5vZGUiLCJbY2xySWZFeHBhbmRlZF0iXTtmdW5jdGlvbiBFbChkLGcpezEmZCYmQ3IoMCwiY2xyLXJlY3Vyc2l2ZS1jaGlsZHJlbiIsMSksMiZkJiZU''@;'; + put 'put ''dCgiY2hpbGRyZW4iLEt0KCkuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbi5yb290KX1mdW5jdGlvbiBRYShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImJ1dHRvbiIsNCksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDIpLmNsb3NlKCkpfSksQ3IoMSwi''@;'; + put 'put ''Y2RzLWljb24iLDUpLHN0KCl9MiZkJiZ6aSgiYXJpYS1sYWJlbCIsS3QoMikuY2xyQ2xvc2VCdXR0b25BcmlhTGFiZWwpfWZ1bmN0aW9uIEJmKGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2IiwxKSgxLCJkaXYiLDIpLE5pKDIpLHN0KCkscm4oMyxRYSwyLDEsImJ1dHRvbiIsMyksc3QoKSksMiZk''@;'; + put 'put ''KXtjb25zdCBoPUt0KCk7RmkoImFsZXJ0LWhpZGRlbiIsaC5oaWRkZW4pKCJhbGVydC1zbSIsaC5pc1NtYWxsKSgiYWxlcnQtYXBwLWxldmVsIixoLmlzQXBwTGV2ZWwpLFR0KCJuZ0NsYXNzIixoLmFsZXJ0Q2xhc3MpLHV0KDMpLFR0KCJuZ0lmIixoLmNsb3NhYmxlKX19ZnVuY3Rpb24gZmgo''@;'; + put 'put ''ZCxnKXsxJmQmJkNyKDAsImNsci1hbGVydHMtcGFnZXIiLDEpLDImZCYmVHQoImNsckN1cnJlbnRBbGVydEluZGV4IixLdCgpLmN1cnJlbnRBbGVydEluZGV4KX1jb25zdCB3TD1bW1siY2xyLWFsZXJ0Il1dXSxCJD1bImNsci1hbGVydCJdO2Z1bmN0aW9uIExqKGQsZyl7MSZkJiZOaSgwKX1j''@;'; + put 'put ''b25zdCB0Uz1bInRhYkNvbnRlbnRQcm9qZWN0ZWRSZWYiXTtmdW5jdGlvbiBDTChkLGcpe2lmKDEmZCYmKGl0KDAsInNlY3Rpb24iLDEpLE5pKDEpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgpO0ZpKCJhY3RpdmUiLGguYWN0aXZlKSxUdCgiaWQiLGgudGFiQ29udGVudElkKSgiaGlkZGVuIiwh''@;'; + put 'put ''aC5hY3RpdmUpLHppKCJhcmlhLWxhYmVsbGVkYnkiLGguYXJpYUxhYmVsbGVkQnkpKCJhcmlhLWhpZGRlbiIsIWguYWN0aXZlKX19Y29uc3QgT2o9WyJ0YWJDb250ZW50Vmlld0NvbnRhaW5lciJdO2Z1bmN0aW9uIGJnKGQsZyl7aWYoMSZkJiYoRjAoMCksaXQoMSwibGkiLDQpLGYxKDIsNSks''@;'; + put 'put ''c3QoKSxIMCgpKSwyJmQpe2NvbnN0IGg9S3QoKS4kaW1wbGljaXQ7dXQoMiksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLGgudGVtcGxhdGVSZWZDb250YWluZXIudGVtcGxhdGUpfX1mdW5jdGlvbiBSaihkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsYmcsMywxLCJuZy1jb250YWluZXIiLDIpLEgw''@;'; + put 'put ''KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUt0KCk7dXQoMSksVHQoIm5nSWYiLGgudGFic0lkPT09di50YWJzSWQmJiFoLmluT3ZlcmZsb3cpfX1mdW5jdGlvbiBrTChkLGcpezEmZCYmZjEoMCw1KSwyJmQmJlR0KCJuZ1RlbXBsYXRlT3V0bGV0IixLdCgpLiRpbXBsaWNpdC50ZW1w''@;'; + put 'put ''bGF0ZVJlZkNvbnRhaW5lci50ZW1wbGF0ZSl9ZnVuY3Rpb24gUCQoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLGtMLDEsMSwibmctY29udGFpbmVyIiwxMyksSDAoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9S3QoMyk7dXQoMSksVHQoIm5nSWYiLGgudGFic0lkPT09di50YWJzSWQm''@;'; + put 'put ''JmguaW5PdmVyZmxvdyl9fWZ1bmN0aW9uIEYkKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiY2xyLXRhYi1vdmVyZmxvdy1jb250ZW50IiwxMiksWW4oImtleWRvd24uZXNjIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDIpLmNsb3NlT25Fc2NhcGVLZXkoKSl9LDAsSGwp''@;'; + put 'put ''KCJjbGljayIsZnVuY3Rpb24oeSl7cnQoaCksS3QoKTtjb25zdCBDPXlhKDQpO3JldHVybiBhKEt0KCkuY2xvc2VPbk91dHNpZGVDbGljayh5LEMpKX0sITEsSGwpKCJmb2N1c291dCIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoMikuY2xvc2VPbkZvY3VzT3V0KHkpKX0pLHJuKDEs''@;'; + put 'put ''UCQsMiwxLCJuZy1jb250YWluZXIiLDEpLHN0KCl9aWYoMiZkKXtjb25zdCBoPUt0KDIpO3V0KDEpLFR0KCJuZ0Zvck9mIixoLnRhYkxpbmtEaXJlY3RpdmVzKX19ZnVuY3Rpb24gJGNlKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7RjAoMCksaXQoMSwiZGl2Iiw2KSgyLCJsaSIsNykoMywi''@;'; + put 'put ''YnV0dG9uIiw4LDkpLFluKCJtb3VzZWRvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5fbW91c2Vkb3duPSEwKX0pKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLm9wZW5PdmVyZmxvd09uRm9jdXMoKSl9KSgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHJ0KGgpLGEoS3QoKS50b2dnbGVPdmVyZmxvd09uQ2xpY2soKSl9KSxDcig1LCJjZHMtaWNvbiIsMTApLHN0KCkoKSxybig2LEYkLDIsMSwiY2xyLXRhYi1vdmVyZmxvdy1jb250ZW50IiwxMSksc3QoKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1LdCgpO3V0KDEpLEZpKCJvcGVuIixoLnRvZ2ds''@;'; + put 'put ''ZVNlcnZpY2Uub3BlbiksdXQoMiksRmkoImFjdGl2ZSIsaC5hY3RpdmVUYWJJbk92ZXJmbG93KSgib3BlbiIsaC50b2dnbGVTZXJ2aWNlLm9wZW4pLHppKCJ0YWJpbmRleCIsaC5hY3RpdmVUYWJJbk92ZXJmbG93JiYhaC50b2dnbGVTZXJ2aWNlLm9wZW4/MDotMSkoInRpdGxlIixoLmNvbW1v''@;'; + put 'put ''blN0cmluZ3Mua2V5cy5tb3JlKSx1dCgyKSx6aSgidGl0bGUiLGguY29tbW9uU3RyaW5ncy5rZXlzLm1vcmUpLHV0KDEpLFR0KCJuZ0lmIixoLnRvZ2dsZVNlcnZpY2Uub3Blbil9fWZ1bmN0aW9uIHFjZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImJ1dHRvbiIsMyksWW4oImNs''@;'; + put 'put ''aWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkudG9nZ2xlQnlCdXR0b24oKSl9KSxDcigxLCJjZHMtaWNvbiIsNCksc3QoKX1pZigyJmQpe2NvbnN0IGg9S3QoKTtGaSgib24tY29sbGFwc2UiLGguY29sbGFwc2VkKSx6aSgiYXJpYS1leHBhbmRlZCIsaC5hcmlhRXhwYW5kZWQp''@;'; + put 'put ''KCJhcmlhLWxhYmVsIixoLmNvbW1vblN0cmluZ3Mua2V5cy52ZXJ0aWNhbE5hdlRvZ2dsZSksdXQoMSksemkoImRpcmVjdGlvbiIsaC5jb2xsYXBzZWQ/InJpZ2h0IjoibGVmdCIpKCJ0aXRsZSIsaC5jb2xsYXBzZWQ/aC5jb21tb25TdHJpbmdzLmtleXMuZXhwYW5kOmguY29tbW9uU3RyaW5n''@;'; + put 'put ''cy5rZXlzLmNvbGxhcHNlKX19ZnVuY3Rpb24gSCQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJidXR0b24iLDUpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLmNvbGxhcHNlZD0hMSl9KSxzdCgpfTImZCYmemkoImFyaWEtbGFiZWwiLEt0KCkuY29t''@;'; + put 'put ''bW9uU3RyaW5ncy5rZXlzLnZlcnRpY2FsTmF2VG9nZ2xlKX1jb25zdCBuZmU9WyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiXSxyZmU9W1tbIiIsImNsclZlcnRpY2FsTmF2SWNvbiIsIiJdXSwiKiJdLGlmZT1bIltjbHJWZXJ0aWNhbE5hdkljb25dIiwiKiJdO2Z1bmN0aW9uIEJqKGQsZyl7aWYo''@;'; + put 'put ''MSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYnV0dG9uIiwxMSksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDIpLmNsb3NlKCkpfSksQ3IoMSwiY2RzLWljb24iLDEyKSxzdCgpfTImZCYmemkoImFyaWEtbGFiZWwiLEt0KDIpLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9z''@;'; + put 'put ''ZSl9ZnVuY3Rpb24gb2ZlKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiZGl2IiwxKSgxLCJkaXYiLDIpLFluKCJAZmFkZURvd24uZG9uZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5mYWRlRG9uZSh5KSl9KSxpdCgyLCJkaXYiLDMpLFV0KDMpLHN0KCksaXQoNCwi''@;'; + put 'put ''ZGl2Iiw0KSxOaSg1KSxpdCg2LCJkaXYiLDUpKDcsImRpdiIsNikoOCwiZGl2Iiw3KSxOaSg5LDEpLHN0KCkscm4oMTAsQmosMiwxLCJidXR0b24iLDgpLHN0KCksaXQoMTEsImRpdiIsOSksTmkoMTIsMiksc3QoKSxOaSgxMywzKSxzdCgpKCksaXQoMTQsImRpdiIsMyksVXQoMTUpLHN0KCko''@;'; + put 'put ''KSxpdCgxNiwiZGl2IiwxMCksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoKTtyZXR1cm4gYSh5LnN0YXRpY0JhY2tkcm9wfHx5LmNsb3NlKCkpfSksc3QoKSgpfWlmKDImZCl7Y29uc3QgaD1LdCgpO3V0KDEpLEZpKCJtb2RhbC1zbSIsInNtIj09aC5zaXplKSgibW9k''@;'; + put 'put ''YWwtbGciLCJsZyI9PWguc2l6ZSkoIm1vZGFsLXhsIiwieGwiPT1oLnNpemUpLFR0KCJAZmFkZURvd24iLGguc2tpcEFuaW1hdGlvbiksemkoImFyaWEtaGlkZGVuIiwhaC5fb3BlbikoImFyaWEtbGFiZWxsZWRieSIsaC5sYWJlbGxlZEJ5KSx1dCgyKSxHaShoLmNvbW1vblN0cmluZ3Mua2V5''@;'; + put 'put ''cy5tb2RhbENvbnRlbnRTdGFydCksdXQoNSksSTYoImlkIixoLm1vZGFsSWQpLHV0KDIpLFR0KCJuZ0lmIixoLmNsb3NhYmxlKSx1dCg1KSxHaShoLmNvbW1vblN0cmluZ3Mua2V5cy5tb2RhbENvbnRlbnRFbmQpLHV0KDEpLFR0KCJAZmFkZSIsdm9pZCAwKX19Y29uc3QgYWZlPVtbWyIiLDgs''@;'; + put 'put ''Im1vZGFsLW5hdiJdXSxbWyIiLDgsIm1vZGFsLXRpdGxlIl1dLFtbIiIsOCwibW9kYWwtYm9keSJdXSxbWyIiLDgsIm1vZGFsLWZvb3RlciJdXV0sbGZlPVsiLm1vZGFsLW5hdiIsIi5tb2RhbC10aXRsZSIsIi5tb2RhbC1ib2R5IiwiLm1vZGFsLWZvb3RlciJdO2xldCB3bD0oKCk9PntjbGFz''@;'; + put 'put ''cyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWljb24iXV19KSxkfSkoKSxabz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJu''@;'; + put 'put ''IG5ldyhofHxkKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2RzLWljb24iXV19KSxkfSkoKSxUcz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUw''@;'; + put 'put ''Mjc1aW5qPWIwKHtpbXBvcnRzOltbYmFdXX0pLGR9KSgpO2NsYXNzIFBme312YXIgZ2k9KCgpPT4oZnVuY3Rpb24oZCl7ZFtkLkRFRkFVTFQ9MF09IkRFRkFVTFQiLGRbZC5MT0FESU5HPTFdPSJMT0FESU5HIixkW2QuU1VDQ0VTUz0yXT0iU1VDQ0VTUyIsZFtkLkVSUk9SPTNdPSJFUlJPUiJ9''@;'; + put 'put ''KGdpfHwoZ2k9e30pKSxnaSkpKCk7bGV0IGdvPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5saXN0ZW5lcj1oLHRoaXMuX2xvYWRpbmdTdGF0ZT1naS5ERUZBVUxUfWdldCBsb2FkaW5nU3RhdGUoKXtyZXR1cm4gdGhpcy5fbG9hZGluZ1N0YXRlfXNldCBsb2FkaW5nU3RhdGUo''@;'; + put 'put ''aCl7ITA9PT1oP2g9Z2kuTE9BRElORzpofHwoaD1naS5ERUZBVUxUKSxoIT09dGhpcy5fbG9hZGluZ1N0YXRlJiYodGhpcy5fbG9hZGluZ1N0YXRlPWgsdGhpcy5saXN0ZW5lciYmdGhpcy5saXN0ZW5lci5sb2FkaW5nU3RhdGVDaGFuZ2UoaCkpfW5nT25EZXN0cm95KCl7dGhpcy5sb2FkaW5n''@;'; + put 'put ''U3RhdGU9Z2kuREVGQVVMVH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoUGYsOCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJMb2FkaW5nIiwiIl1dLGlucHV0czp7bG9hZGluZ1N0YXRlOlsiY2xyTG9hZGlu''@;'; + put 'put ''ZyIsImxvYWRpbmdTdGF0ZSJdfX0pLGR9KSgpLG4xPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLmV4cGFuZGFibGU9MCx0aGlzLl9sb2FkaW5nPSExLHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX2V4cGFuZENoYW5nZT1uZXcgJGV9Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy5f''@;'; + put 'put ''bG9hZGluZ31zZXQgbG9hZGluZyhoKXsoaD0hIWgpIT09dGhpcy5fbG9hZGluZyYmKHRoaXMuX2xvYWRpbmc9aCl9Z2V0IGV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuX2V4cGFuZGVkfXNldCBleHBhbmRlZChoKXsoaD0hIWgpIT09dGhpcy5fZXhwYW5kZWQmJih0aGlzLl9leHBhbmRlZD1oLHRo''@;'; + put 'put ''aXMuX2V4cGFuZENoYW5nZS5uZXh0KGgpKX10b2dnbGUoKXt0aGlzLmV4cGFuZGVkPSF0aGlzLl9leHBhbmRlZH1nZXQgZXhwYW5kQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2V4cGFuZENoYW5nZS5hc09ic2VydmFibGUoKX1sb2FkaW5nU3RhdGVDaGFuZ2UoaCl7dGhpcy5sb2FkaW5nPWg9PT1n''@;'; + put 'put ''aS5MT0FESU5HfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx1Mj0wO2NvbnN0IHkyPW5ldyB6ZSgiVU5JUVVFX0lEIiksT2M9e3Byb3ZpZGU6eTIsdXNl''@;'; + put 'put ''RmFjdG9yeTpmdW5jdGlvbiBtZmUoKXtyZXR1cm4iY2xyLWlkLSIrdTIrK319O2xldCBVJD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWFjY29yZGlv''@;'; + put 'put ''bi1kZXNjcmlwdGlvbiJdLFsiY2xyLXN0ZXAtZGVzY3JpcHRpb24iXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9uIiwhMCl9LG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0''@;'; + put 'put ''ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxkfSkoKTt2YXIgYTQ9KCgpPT4oZnVuY3Rpb24oZCl7ZC5JbmFjdGl2ZT0iaW5hY3RpdmUiLGQuRXJyb3I9ImVycm9yIixkLkNvbXBsZXRlPSJjb21wbGV0ZSJ9KGE0''@;'; + put 'put ''fHwoYTQ9e30pKSxhNCkpKCk7Y29uc3QgbDQ9IjAuMnMgZWFzZS1pbi1vdXQiLHZmZT1bJGgoInNraXBJbml0aWFsUmVuZGVyIixbYnUoIjplbnRlciIsW10pXSksJGgoInRvZ2dsZSIsW2J1KCJ2b2lkID0+ICoiLFt5bCh7ZGlzcGxheToiYmxvY2siLGhlaWdodDowfSksRGMobDQseWwoe2hl''@;'; + put 'put ''aWdodDoiKiJ9KSldKV0pXSxIaj0oJGgoInNraXBJbml0aWFsUmVuZGVyIixbYnUoIjplbnRlciIsW10pXSksJGgoInRvZ2dsZSIsW2J1KCJ2b2lkID0+ICoiLFt5bCh7ZGlzcGxheToiYmxvY2siLGhlaWdodDowfSksRGMobDQseWwoe2hlaWdodDoiKiJ9KSldKSxidSgiKiA9PiB2b2lkIixb''@;'; + put 'put ''eWwoe2Rpc3BsYXk6ImJsb2NrIn0pLERjKGw0LHlsKHtoZWlnaHQ6MCxkaXNwbGF5OiJub25lIn0pKV0pXSkse29wZW46Ik9wZW4iLGNsb3NlOiJDbG9zZSIsc2hvdzoiU2hvdyIsaGlkZToiSGlkZSIsZXhwYW5kOiJFeHBhbmQiLGNvbGxhcHNlOiJDb2xsYXBzZSIsbW9yZToiTW9yZSIsc2Vs''@;'; + put 'put ''ZWN0OiJTZWxlY3QiLHNlbGVjdEFsbDoiU2VsZWN0IEFsbCIscHJldmlvdXM6IlByZXZpb3VzIixuZXh0OiJOZXh0IixjdXJyZW50OiJKdW1wIHRvIGN1cnJlbnQiLGluZm86IkluZm8iLHN1Y2Nlc3M6IlN1Y2Nlc3MiLHdhcm5pbmc6Ildhcm5pbmciLGRhbmdlcjoiRXJyb3IiLHJvd0FjdGlv''@;'; + put 'put ''bnM6IkF2YWlsYWJsZSBhY3Rpb25zIixwaWNrQ29sdW1uczoiU2hvdyBvciBoaWRlIGNvbHVtbnMiLHNob3dDb2x1bW5zOiJTaG93IENvbHVtbnMiLHNvcnRDb2x1bW46IlNvcnQgQ29sdW1uIixmaXJzdFBhZ2U6IkZpcnN0IFBhZ2UiLGxhc3RQYWdlOiJMYXN0IFBhZ2UiLG5leHRQYWdlOiJO''@;'; + put 'put ''ZXh0IFBhZ2UiLHByZXZpb3VzUGFnZToiUHJldmlvdXMgUGFnZSIsY3VycmVudFBhZ2U6IkN1cnJlbnQgUGFnZSIsdG90YWxQYWdlczoiVG90YWwgUGFnZXMiLGZpbHRlckl0ZW1zOiJGaWx0ZXIgaXRlbXMiLG1pblZhbHVlOiJNaW4gdmFsdWUiLG1heFZhbHVlOiJNYXggdmFsdWUiLG1vZGFs''@;'; + put 'put ''Q29udGVudFN0YXJ0OiJCZWdpbm5pbmcgb2YgTW9kYWwgQ29udGVudCIsbW9kYWxDb250ZW50RW5kOiJFbmQgb2YgTW9kYWwgQ29udGVudCIsc2hvd0NvbHVtbnNNZW51RGVzY3JpcHRpb246IlNob3cgb3IgaGlkZSBjb2x1bW5zIG1lbnUiLGFsbENvbHVtbnNTZWxlY3RlZDoiQWxsIGNvbHVt''@;'; + put 'put ''bnMgc2VsZWN0ZWQiLHNpZ25wb3N0VG9nZ2xlOiJTaWducG9zdCBUb2dnbGUiLHNpZ25wb3N0Q2xvc2U6IlNpZ25wb3N0IENsb3NlIixsb2FkaW5nOiJMb2FkaW5nIixkZXRhaWxQYW5lU3RhcnQ6IlN0YXJ0IG9mIHJvdyBkZXRhaWxzIixkZXRhaWxQYW5lRW5kOiJFbmQgb2Ygcm93IGRldGFp''@;'; + put 'put ''bHMiLHNpbmdsZVNlbGVjdGlvbkFyaWFMYWJlbDoiU2luZ2xlIHNlbGVjdGlvbiBoZWFkZXIiLHNpbmdsZUFjdGlvbmFibGVBcmlhTGFiZWw6IlNpbmdsZSBhY3Rpb25hYmxlIGhlYWRlciIsZGV0YWlsRXhwYW5kYWJsZUFyaWFMYWJlbDoiVG9nZ2xlIG1vcmUgcm93IGNvbnRlbnQiLGRhdGFn''@;'; + put 'put ''cmlkRmlsdGVyQXJpYUxhYmVsOiJGaWx0ZXIgZGlhbG9nIixkYXRhZ3JpZEZpbHRlckRpYWxvZ0FyaWFMYWJlbDoiVG9nZ2xlIGNvbHVtbiBmaWx0ZXIiLGNvbHVtblNlcGFyYXRvckFyaWFMYWJlbDoiQ29sdW1uIHJlc2l6ZSBoYW5kbGUiLGNvbHVtblNlcGFyYXRvckRlc2NyaXB0aW9uOiJV''@;'; + put 'put ''c2UgbGVmdCBvciByaWdodCBrZXkgdG8gcmVzaXplIHRoZSBjb2x1bW4iLGFsZXJ0Q2xvc2VCdXR0b25BcmlhTGFiZWw6IkNsb3NlIGFsZXJ0IixkYXRlcGlja2VyRGlhbG9nTGFiZWw6IkNob29zZSBkYXRlIixkYXRlcGlja2VyVG9nZ2xlOiJUb2dnbGUgZGF0ZXBpY2tlciIsZGF0ZXBpY2tl''@;'; + put 'put ''clRvZ2dsZUNob29zZURhdGVMYWJlbDoiQ2hvb3NlIGRhdGUiLGRhdGVwaWNrZXJUb2dnbGVDaGFuZ2VEYXRlTGFiZWw6IkNoYW5nZSBkYXRlLCB7U0VMRUNURURfREFURX0iLGRhdGVwaWNrZXJQcmV2aW91c01vbnRoOiJQcmV2aW91cyBtb250aCIsZGF0ZXBpY2tlckN1cnJlbnRNb250aDoi''@;'; + put 'put ''Q3VycmVudCBtb250aCIsZGF0ZXBpY2tlck5leHRNb250aDoiTmV4dCBtb250aCIsZGF0ZXBpY2tlclByZXZpb3VzRGVjYWRlOiJQcmV2aW91cyBkZWNhZGUiLGRhdGVwaWNrZXJOZXh0RGVjYWRlOiJOZXh0IGRlY2FkZSIsZGF0ZXBpY2tlckN1cnJlbnREZWNhZGU6IkN1cnJlbnQgZGVjYWRl''@;'; + put 'put ''IixkYXRlcGlja2VyU2VsZWN0TW9udGhUZXh0OiJTZWxlY3QgbW9udGgsIHRoZSBjdXJyZW50IG1vbnRoIGlzIHtDQUxFTkRBUl9NT05USH0iLGRhdGVwaWNrZXJTZWxlY3RZZWFyVGV4dDoiU2VsZWN0IHllYXIsIHRoZSBjdXJyZW50IHllYXIgaXMge0NBTEVOREFSX1lFQVJ9IixkYXRlcGlj''@;'; + put 'put ''a2VyU2VsZWN0ZWRMYWJlbDoie0ZVTExfREFURX0gLSBTZWxlY3RlZCIsc3RhY2tWaWV3Q2hhbmdlZDoiVmFsdWUgY2hhbmdlZC4iLHJlc3BvbnNpdmVOYXZUb2dnbGVPcGVuOiJOYXZpZ2F0aW9uIG1lbnUiLHJlc3BvbnNpdmVOYXZUb2dnbGVDbG9zZToiTmF2aWdhdGlvbiBtZW51IixyZXNw''@;'; + put 'put ''b25zaXZlTmF2T3ZlcmZsb3dPcGVuOiJOYXZpZ2F0aW9uIG92ZXJmbG93IG1lbnUiLHJlc3BvbnNpdmVOYXZPdmVyZmxvd0Nsb3NlOiJOYXZpZ2F0aW9uIG92ZXJmbG93IG1lbnUiLHZlcnRpY2FsTmF2R3JvdXBUb2dnbGU6IlRvZ2dsZSB2ZXJ0aWNhbCBuYXZpZ2F0aW9uIGdyb3VwIix2ZXJ0''@;'; + put 'put ''aWNhbE5hdlRvZ2dsZToiVG9nZ2xlIHZlcnRpY2FsIG5hdmlnYXRpb24iLHRpbWVsaW5lU3RlcE5vdFN0YXJ0ZWQ6Ik5vdCBzdGFydGVkIix0aW1lbGluZVN0ZXBDdXJyZW50OiJDdXJyZW50Iix0aW1lbGluZVN0ZXBTdWNjZXNzOiJDb21wbGV0ZWQiLHRpbWVsaW5lU3RlcEVycm9yOiJFcnJv''@;'; + put 'put ''ciIsdGltZWxpbmVTdGVwUHJvY2Vzc2luZzoiSW4gcHJvZ3Jlc3MiLGNvbWJvYm94RGVsZXRlOiJEZWxldGUgc2VsZWN0ZWQgb3B0aW9uIixjb21ib2JveFNlYXJjaGluZzonU2VhcmNoaW5nIGZvciBtYXRjaGVzIGZvciAie0lOUFVUfSInLGNvbWJvYm94U2VsZWN0aW9uOiJTZWxlY3Rpb24i''@;'; + put 'put ''LGNvbWJvYm94U2VsZWN0ZWQ6IlNlbGVjdGVkIixjb21ib2JveE5vUmVzdWx0czoiTm8gcmVzdWx0cyIsY29tYm9ib3hPcGVuOiJTaG93IG9wdGlvbnMiLGRhdGFncmlkRXhwYW5kYWJsZUJlZ2lubmluZ09mOiJCZWdpbm5pbmcgb2YiLGRhdGFncmlkRXhwYW5kYWJsZUVuZE9mOiJFbmQgb2Yi''@;'; + put 'put ''LGRhdGFncmlkRXhwYW5kYWJsZVJvd0NvbnRlbnQ6IkV4cGFuZGFibGUgcm93IGNvbnRlbnQiLGRhdGFncmlkRXhwYW5kYWJsZVJvd3NIZWxwZXJUZXh0OiJTY3JlZW4gcmVhZGVyIHRhYmxlIGNvbW1hbmRzIG1heSBub3Qgd29yayBmb3Igdmlld2luZyBleHBhbmRlZCBjb250ZW50LCBwbGVh''@;'; + put 'put ''c2UgdXNlIHlvdXIgc2NyZWVuIHJlYWRlcidzIGJyb3dzZSBtb2RlIHRvIHJlYWQgdGhlIGNvbnRlbnQgZXhwb3NlZCBieSB0aGlzIGJ1dHRvbiIsd2l6YXJkU3RlcFN1Y2Nlc3M6IkNvbXBsZXRlZCIsd2l6YXJkU3RlcEVycm9yOiJFcnJvciIscGFzc3dvcmRIaWRlOiJIaWRlIHBhc3N3b3Jk''@;'; + put 'put ''IixwYXNzd29yZFNob3c6IlNob3cgcGFzc3dvcmQiLHNlbGVjdGVkUm93czoiU2VsZWN0ZWQgcm93cyJ9KTtsZXQgbnM9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX3N0cmluZ3M9SGp9bG9jYWxpemUoaCl7dGhpcy5fc3RyaW5ncz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3Np''@;'; + put 'put ''Z24oe30sdGhpcy5fc3RyaW5ncyksaCl9Z2V0IGtleXMoKXtyZXR1cm4gdGhpcy5fc3RyaW5nc31wYXJzZShoLHY9e30pe2NvbnN0IHk9T2JqZWN0LmtleXModik7bGV0IEM9aDtyZXR1cm4geS5sZW5ndGgmJnkuZm9yRWFjaChJPT57Qz1DLnJlcGxhY2UoYHske0l9fWAsdltJXSl9KSxDfX1y''@;'; + put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTt2YXIgYzk9KCgpPT4oZnVuY3Rpb24oZCl7ZC5EZWZhdWx0PSJkZWZhdWx0Iixk''@;'; + put 'put ''Lk11bHRpPSJtdWx0aSJ9KGM5fHwoYzk9e30pKSxjOSkpKCk7bGV0IHlmZT0wO2NsYXNzIHdmZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuaWQ9Zyx0aGlzLmFjY29yZGlvbklkPWgsdGhpcy5zdGF0dXM9YTQuSW5hY3RpdmUsdGhpcy5pbmRleD1udWxsLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5v''@;'; + put 'put ''cGVuPSExLHRoaXMudGVtcGxhdGVJZD1gJHt0aGlzLmlkfS0ke3RoaXMuYWNjb3JkaW9uSWR9YH19Y2xhc3MgUSR7Y29uc3RydWN0b3IoKXt0aGlzLnN0cmF0ZWd5PWM5LkRlZmF1bHQsdGhpcy5hY2NvcmRpb25Db3VudD15ZmUrKyx0aGlzLl9wYW5lbHM9e319Z2V0IHBhbmVscygpe3JldHVy''@;'; + put 'put ''biBPYmplY3Qua2V5cyh0aGlzLl9wYW5lbHMpLm1hcChnPT50aGlzLl9wYW5lbHNbZ10pfXNldFN0cmF0ZWd5KGcpe3RoaXMuc3RyYXRlZ3k9Z311cGRhdGVQYW5lbE9yZGVyKGcpe2cuZm9yRWFjaCgoaCx2KT0+dGhpcy5fcGFuZWxzW2hdLmluZGV4PXYpLHRoaXMucmVtb3ZlT2xkUGFuZWxz''@;'; + put 'put ''KGcpfWFkZFBhbmVsKGcsaD0hMSl7dGhpcy5fcGFuZWxzW2ddPW5ldyB3ZmUoZyx0aGlzLmFjY29yZGlvbkNvdW50KSx0aGlzLl9wYW5lbHNbZ10ub3Blbj1ofXRvZ2dsZVBhbmVsKGcsaCl7Y29uc3QgeT12b2lkIDAhPT1oP2g6IXRoaXMuX3BhbmVsc1tnXS5vcGVuO3kmJnRoaXMuc3RyYXRl''@;'; + put 'put ''Z3k9PT1jOS5EZWZhdWx0JiZ0aGlzLmNsb3NlQWxsUGFuZWxzKCksdGhpcy5fcGFuZWxzW2ddLm9wZW49eX1kaXNhYmxlUGFuZWwoZyxoKXt0aGlzLl9wYW5lbHNbZ10uZGlzYWJsZWQ9aH1jbG9zZUFsbFBhbmVscygpe3RoaXMucGFuZWxzLmZvckVhY2goZz0+dGhpcy5fcGFuZWxzW2cuaWRd''@;'; + put 'put ''Lm9wZW49ITEpfXJlbW92ZU9sZFBhbmVscyhnKXt0aGlzLnBhbmVscy5maWx0ZXIoaD0+dm9pZCAwPT09Zy5maW5kKHY9PnY9PT1oLmlkKSkuZm9yRWFjaChoPT5kZWxldGUgdGhpcy5fcGFuZWxzW2guaWRdKX19bGV0IHJTPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLmFjY29y''@;'; + put 'put ''ZGlvbj1uZXcgUSQsdGhpcy5fcGFuZWxzQ2hhbmdlcz1uZXcgY3ModGhpcy5hY2NvcmRpb24ucGFuZWxzKX1nZXRQYW5lbENoYW5nZXMoaCl7cmV0dXJuIHRoaXMuX3BhbmVsc0NoYW5nZXMucGlwZSh2dCh2PT52LmZpbmQoeT0+eS5pZD09PWgpKSl9c2V0U3RyYXRlZ3koaCl7dGhpcy5hY2Nv''@;'; + put 'put ''cmRpb24uc2V0U3RyYXRlZ3koaCl9YWRkUGFuZWwoaCx2PSExKXt0aGlzLmFjY29yZGlvbi5hZGRQYW5lbChoLHYpLHRoaXMuZW1pdFVwZGF0ZWRQYW5lbHMoKX10b2dnbGVQYW5lbChoLHYpe3RoaXMuYWNjb3JkaW9uLnRvZ2dsZVBhbmVsKGgsdiksdGhpcy5lbWl0VXBkYXRlZFBhbmVscygp''@;'; + put 'put ''fWRpc2FibGVQYW5lbChoLHYpe3RoaXMuYWNjb3JkaW9uLmRpc2FibGVQYW5lbChoLHYpLHRoaXMuZW1pdFVwZGF0ZWRQYW5lbHMoKX11cGRhdGVQYW5lbE9yZGVyKGgpe3RoaXMuYWNjb3JkaW9uLnVwZGF0ZVBhbmVsT3JkZXIoaCksdGhpcy5lbWl0VXBkYXRlZFBhbmVscygpfWVtaXRVcGRh''@;'; + put 'put ''dGVkUGFuZWxzKCl7dGhpcy5fcGFuZWxzQ2hhbmdlcy5uZXh0KHRoaXMuYWNjb3JkaW9uLnBhbmVscyl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLE1M''@;'; + put 'put ''PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5jb21tb25TdHJpbmdzPWgsdGhpcy5hY2NvcmRpb25TZXJ2aWNlPXYsdGhpcy5pZkV4cGFuZFNlcnZpY2U9eSx0aGlzLl9pZD1DLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5wYW5lbE9wZW49ITEsdGhpcy5wYW5lbE9wZW5D''@;'; + put 'put ''aGFuZ2U9bmV3IGFyLHRoaXMuQWNjb3JkaW9uU3RhdHVzPWE0LHRoaXMuaXNBY2NvcmRpb249ITB9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2lkfXNldCBpZChoKXt0aGlzLl9pZD1ofW5nT25Jbml0KCl7dGhpcy5wYW5lbD10aGlzLmFjY29yZGlvblNlcnZpY2UuZ2V0UGFuZWxDaGFuZ2VzKHRo''@;'; + put 'put ''aXMuaWQpLnBpcGUoQWEoaD0+dGhpcy5lbWl0UGFuZWxDaGFuZ2UoaCkpKSx0aGlzLmFjY29yZGlvblNlcnZpY2UuYWRkUGFuZWwodGhpcy5pZCx0aGlzLnBhbmVsT3BlbiksdGhpcy5hY2NvcmRpb25TZXJ2aWNlLnRvZ2dsZVBhbmVsKHRoaXMuaWQsdGhpcy5wYW5lbE9wZW4pLHRoaXMuYWNj''@;'; + put 'put ''b3JkaW9uU2VydmljZS5kaXNhYmxlUGFuZWwodGhpcy5pZCx0aGlzLmRpc2FibGVkKX1uZ09uQ2hhbmdlcyhoKXt0aGlzLnBhbmVsJiZoLnBhbmVsT3BlbiYmaC5wYW5lbE9wZW4uY3VycmVudFZhbHVlIT09aC5wYW5lbE9wZW4ucHJldmlvdXNWYWx1ZSYmdGhpcy5hY2NvcmRpb25TZXJ2aWNl''@;'; + put 'put ''LnRvZ2dsZVBhbmVsKHRoaXMuaWQsaC5wYW5lbE9wZW4uY3VycmVudFZhbHVlKSx0aGlzLnBhbmVsJiZoLmRpc2FibGVkJiZoLmRpc2FibGVkLmN1cnJlbnRWYWx1ZSE9PWguZGlzYWJsZWQucHJldmlvdXNWYWx1ZSYmdGhpcy5hY2NvcmRpb25TZXJ2aWNlLmRpc2FibGVQYW5lbCh0aGlzLmlk''@;'; + put 'put ''LGguZGlzYWJsZWQuY3VycmVudFZhbHVlKX10b2dnbGVQYW5lbCgpe3RoaXMuYWNjb3JkaW9uU2VydmljZS50b2dnbGVQYW5lbCh0aGlzLmlkKX1jb2xsYXBzZVBhbmVsT25BbmltYXRpb25Eb25lKGgpe2gub3Blbnx8KHRoaXMuaWZFeHBhbmRTZXJ2aWNlLmV4cGFuZGVkPSExKX1nZXRQYW5l''@;'; + put 'put ''bFN0YXRlQ2xhc3NlcyhoKXtyZXR1cm5gY2xyLWFjY29yZGlvbi1wYW5lbC0ke2guc3RhdHVzfSAke2gub3Blbj8iY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuIjoiIn1gfWdldEFjY29yZGlvbkNvbnRlbnRJZChoKXtyZXR1cm5gY2xyLWFjY29yZGlvbi1jb250ZW50LSR7aH0nYH1nZXRBY2Nv''@;'; + put 'put ''cmRpb25IZWFkZXJJZChoKXtyZXR1cm5gY2xyLWFjY29yZGlvbi1oZWFkZXItJHtofWB9ZW1pdFBhbmVsQ2hhbmdlKGgpe2gub3BlbiE9PXRoaXMucGFuZWxPcGVuJiYodGhpcy5wYW5lbE9wZW5DaGFuZ2UuZW1pdChoLm9wZW4pLHRoaXMucGFuZWxPcGVuPWgub3BlbiksaC5vcGVuJiYodGhp''@;'; + put 'put ''cy5pZkV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ9ITApfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChucyksWHQoclMpLFh0KG4xKSxYdCh5MikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItYWNjb3JkaW9uLXBhbmVs''@;'; + put 'put ''Il1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksVSQsNCksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5hY2NvcmRpb25EZXNjcmlwdGlvbj1DKX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLWFjY29yZGlv''@;'; + put 'put ''bi1wYW5lbCIsITApfSxpbnB1dHM6e2Rpc2FibGVkOlsiY2xyQWNjb3JkaW9uUGFuZWxEaXNhYmxlZCIsImRpc2FibGVkIl0scGFuZWxPcGVuOlsiY2xyQWNjb3JkaW9uUGFuZWxPcGVuIiwicGFuZWxPcGVuIl19LG91dHB1dHM6e3BhbmVsT3BlbkNoYW5nZToiY2xyQWNjb3JkaW9uUGFuZWxP''@;'; + put 'put ''cGVuQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFtuMSxPY10pLFAyXSxuZ0NvbnRlbnRTZWxlY3RvcnM6S0ssZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbNCwibmdJZiJdLFsiYXJpYS1saXZlIiwiYXNzZXJ0aXZlIiwiY2xhc3MiLCJjbHItc3Itb25seSIsNCwibmdJZiJdLFszLCJuZ0NsYXNzIl0s''@;'; + put 'put ''WzEsImNsci1hY2NvcmRpb24taGVhZGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b24iLDMsImlkIiwiZGlzYWJsZWQiLCJjbGljayJdLFsiaGVhZGVyQnV0dG9uIiwiIl0sWzEsImNsci1zci1vbmx5Il0sWzEsImNsci1hY2NvcmRpb24tc3RhdHVz''@;'; + put 'put ''Il0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiLDEsImNsci1hY2NvcmRpb24tYW5nbGUiXSxbMSwiY2xyLWFjY29yZGlvbi1udW1iZXIiXSxbInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwxLCJjbHItYWNjb3JkaW9uLWVycm9yLWlj''@;'; + put 'put ''b24iXSxbInN0YXR1cyIsInN1Y2Nlc3MiLCJzaGFwZSIsImNoZWNrLWNpcmNsZSIsMSwiY2xyLWFjY29yZGlvbi1jb21wbGV0ZS1pY29uIl0sWyJyb2xlIiwicmVnaW9uIiwzLCJpZCJdLFsiY2xhc3MiLCJjbHItYWNjb3JkaW9uLWNvbnRlbnQiLDQsIm5nSWYiXSxbImFyaWEtbGl2ZSIsImFz''@;'; + put 'put ''c2VydGl2ZSIsMSwiY2xyLXNyLW9ubHkiXSxbMSwiY2xyLWFjY29yZGlvbi1jb250ZW50Il0sWzEsImNsci1hY2NvcmRpb24taW5uZXItY29udGVudCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKFhLKSxybigwLGV1ZSwxOSwxOCwibmctY29udGFpbmVyIiwwKSxubigxLCJh''@;'; + put 'put ''c3luYyIpKSwyJmgmJlR0KCJuZ0lmIix6dCgxLDEsdi5wYW5lbCkpfSxkZXBlbmRlbmNpZXM6W1ZvLGxjLFpvLFdoXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOnZmZX0sY2hhbmdlRGV0ZWN0aW9uOjB9KSxkfSkoKSxKJD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3Ro''@;'; + put 'put ''aXMuYWNjb3JkaW9uU2VydmljZT1oLHRoaXMubXVsdGlQYW5lbD0hMSx0aGlzLnN1YnNjcmlwdGlvbnM9W119bmdPbkluaXQoKXt0aGlzLnNldEFjY29yZGlvblN0cmF0ZWd5KCl9bmdPbkNoYW5nZXMoaCl7aC5tdWx0aVBhbmVsLmN1cnJlbnRWYWx1ZSE9PWgubXVsdGlQYW5lbC5wcmV2aW91''@;'; + put 'put ''c1ZhbHVlJiZ0aGlzLnNldEFjY29yZGlvblN0cmF0ZWd5KCl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JET01DaGFuZ2VzKCkpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgp''@;'; + put 'put ''KX1zZXRBY2NvcmRpb25TdHJhdGVneSgpe3RoaXMuYWNjb3JkaW9uU2VydmljZS5zZXRTdHJhdGVneSh0aGlzLm11bHRpUGFuZWw/YzkuTXVsdGk6YzkuRGVmYXVsdCl9bGlzdGVuRm9yRE9NQ2hhbmdlcygpe3JldHVybiB0aGlzLnBhbmVscy5jaGFuZ2VzLnBpcGUoTjUodGhpcy5wYW5lbHMp''@;'; + put 'put ''KS5zdWJzY3JpYmUoaD0+dGhpcy5hY2NvcmRpb25TZXJ2aWNlLnVwZGF0ZVBhbmVsT3JkZXIoaC50b0FycmF5KCkubWFwKHY9PnYuaWQpKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KHJTKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2Vs''@;'; + put 'put ''ZWN0b3JzOltbImNsci1hY2NvcmRpb24iXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxNTCw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LnBhbmVscz1DKX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xy''@;'; + put 'put ''LWFjY29yZGlvbiIsITApfSxpbnB1dHM6e211bHRpUGFuZWw6WyJjbHJBY2NvcmRpb25NdWx0aVBhbmVsIiwibXVsdGlQYW5lbCJdfSxmZWF0dXJlczpbaG8oW3JTXSksUDJdLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYm''@;'; + put 'put ''KEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxkfSkoKSxYJD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWFj''@;'; + put 'put ''Y29yZGlvbi1jb250ZW50Il0sWyJjbHItc3RlcC1jb250ZW50Il1dLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxkfSkoKSxLJD0o''@;'; + put 'put ''KCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWFjY29yZGlvbi10aXRsZSJdLFsiY2xyLXN0ZXAtdGl0bGUiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6''@;'; + put 'put ''ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItYWNjb3JkaW9uLXRpdGxlIiwhMCl9LG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxk''@;'; + put 'put ''fSkoKSxvdz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fY2hvY29sYXRlPW5ldyAkZSx0aGlzLmRpc2FibGVDaG9jb2xhdGVDaGVjaz0hMX1nZXQgY2hvY29sYXRlKCl7cmV0dXJuIHRoaXMuX2Nob2NvbGF0ZS5hc09ic2VydmFibGUoKX1uZ0FmdGVyVmlld0NoZWNrZWQoKXt0''@;'; + put 'put ''aGlzLmRpc2FibGVDaG9jb2xhdGVDaGVja3x8dGhpcy5fY2hvY29sYXRlLm5leHQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmR9KSxkfSkoKSxhdz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7''@;'; + put 'put ''dGhpcy5zdWJzY3JpcHRpb249di5jaG9jb2xhdGUuc3Vic2NyaWJlKCgpPT57dGhpcy5sYXRlc3RGbGF2b3IhPT10aGlzLmZsYXZvciYmKHYuZGlzYWJsZUNob2NvbGF0ZUNoZWNrPSEwLGguZGV0ZWN0Q2hhbmdlcygpLHYuZGlzYWJsZUNob2NvbGF0ZUNoZWNrPSExKX0pfW5nQWZ0ZXJDb250''@;'; + put 'put ''ZW50Q2hlY2tlZCgpe3RoaXMubGF0ZXN0Rmxhdm9yPXRoaXMuZmxhdm9yfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoZDEpLFh0KG93KSl9LGQuXHUwMjc1ZGly''@;'; + put 'put ''PVdpKHt0eXBlOmR9KSxkfSkoKSxOaj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgb3d7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBnO3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4oZ3x8KGc9ZmwoZCkpKSh2fHxkKX19KCksZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3Rv''@;'; + put 'put ''cnM6W1siY2xyLWFjY29yZGlvbiJdXSxmZWF0dXJlczpbRG9dfSksZH0pKCksJCQ9KCgpPT57Y2xhc3MgZCBleHRlbmRzIGF3e2NvbnN0cnVjdG9yKGgsdix5KXtpZighdil0aHJvdyBuZXcgRXJyb3IoImNsci1hY2NvcmRpb24tcGFuZWwgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2Yg''@;'; + put 'put ''Y2xyLWFjY29yZGlvbiIpO3N1cGVyKGgsdiksdGhpcy5leHBhbmQ9eX1nZXQgZmxhdm9yKCl7cmV0dXJuIHRoaXMuZXhwYW5kLmV4cGFuZGVkfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChkMSksWHQoTmosOCksWHQobjEpKX0sZC5cdTAyNzVk''@;'; + put 'put ''aXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWFjY29yZGlvbi1wYW5lbCJdXSxmZWF0dXJlczpbRG9dfSksZH0pKCkscSQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKEl5LEtoLFRmKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBu''@;'; + put 'put ''ZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLFRzXV19KSxkfSkoKSxJcz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6''@;'; + put 'put ''ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsVHMscSRdLHEkXX0pLGR9KSgpO3ZhciBNMD0oKCk9PihmdW5jdGlvbihkKXtkLkFycm93TGVmdD0iQXJyb3dMZWZ0IixkLkFycm93VXA9IkFycm93VXAiLGQuQXJyb3dSaWdodD0iQXJyb3dSaWdodCIsZC5BcnJvd0Rvd249IkFycm93''@;'; + put 'put ''RG93biIsZC5CYWNrc3BhY2U9IkJhY2tzcGFjZSIsZC5UYWI9IlRhYiIsZC5FbnRlcj0iRW50ZXIiLGQuRXNjYXBlPSJFc2NhcGUiLGQuU3BhY2U9IlNwYWNlIixkLlNwYWNlYmFyPSIgIixkLkhvbWU9IkhvbWUiLGQuRW5kPSJFbmQifShNMHx8KE0wPXt9KSksTTApKSgpLGZjPSgoKT0+KGZ1''@;'; + put 'put ''bmN0aW9uKGQpe2QuQXJyb3dVcD0iVXAiLGQuQXJyb3dEb3duPSJEb3duIixkLkFycm93UmlnaHQ9IlJpZ2h0IixkLkFycm93TGVmdD0iTGVmdCIsZC5TcGFjZT0iU3BhY2ViYXIiLGQuRXNjYXBlPSJFc2MiLGQuSG9tZT0iSG9tZSIsZC5FbmQ9IkVuZCIsZC5FbnRlcj0iRW50ZXIiLGQuVGFi''@;'; + put 'put ''PSJUYWIifShmY3x8KGZjPXt9KSksZmMpKSgpO2Z1bmN0aW9uIGlTKGQpe3JldHVybiBkPT09TTAuQXJyb3dVcHx8ZD09PWZjLkFycm93VXA/TTAuQXJyb3dVcDpkPT09TTAuQXJyb3dEb3dufHxkPT09ZmMuQXJyb3dEb3duP00wLkFycm93RG93bjpkPT09TTAuQXJyb3dSaWdodHx8ZD09PWZj''@;'; + put 'put ''LkFycm93UmlnaHQ/TTAuQXJyb3dSaWdodDpkPT09TTAuQXJyb3dMZWZ0fHxkPT09ZmMuQXJyb3dMZWZ0P00wLkFycm93TGVmdDpkPT09TTAuU3BhY2V8fGQ9PT1mYy5TcGFjZT9NMC5TcGFjZTpkPT09TTAuRXNjYXBlfHxkPT09ZmMuRXNjYXBlP00wLkVzY2FwZTpkfWZ1bmN0aW9uIE1wKGQp''@;'; + put 'put ''e2NvbnN0IGc9aVMoZC5rZXkpOyhnPT09TTAuQXJyb3dVcHx8Zz09PU0wLkFycm93RG93bnx8Zz09PU0wLkFycm93TGVmdHx8Zz09PU0wLkFycm93UmlnaHQpJiZkLnByZXZlbnREZWZhdWx0KCl9bGV0IHpzPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9vcGVuPSExLHRoaXMu''@;'; + put 'put ''X29wZW5DaGFuZ2U9bmV3ICRlLHRoaXMuX29wZW5FdmVudENoYW5nZT1uZXcgJGUsdGhpcy5fcG9wb3ZlckFsaWduZWQ9bmV3ICRlfWdldCBvcGVuQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX29wZW5DaGFuZ2UuYXNPYnNlcnZhYmxlKCl9c2V0IG9wZW5FdmVudChoKXt0aGlzLl9vcGVuRXZlbnQ9''@;'; + put 'put ''aCx0aGlzLl9vcGVuRXZlbnRDaGFuZ2UubmV4dChoKX1nZXQgb3BlbkV2ZW50KCl7cmV0dXJuIHRoaXMuX29wZW5FdmVudH1nZXRFdmVudENoYW5nZSgpe3JldHVybiB0aGlzLl9vcGVuRXZlbnRDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9c2V0IG9wZW4oaCl7dGhpcy5fb3BlbiE9PShoPSEhaCkm''@;'; + put 'put ''Jih0aGlzLl9vcGVuPWgsdGhpcy5fb3BlbkNoYW5nZS5uZXh0KGgpKX1nZXQgb3Blbigpe3JldHVybiB0aGlzLl9vcGVufWdldCBvcmlnaW5hbEV2ZW50KCl7cmV0dXJuIHRoaXMuX29wZW5FdmVudH10b2dnbGVXaXRoRXZlbnQoaCl7TXAoaCksdGhpcy5vcGVuRXZlbnQ9aCx0aGlzLm9wZW49''@;'; + put 'put ''IXRoaXMub3Blbn1nZXQgcG9wb3ZlckFsaWduZWQoKXtyZXR1cm4gdGhpcy5fcG9wb3ZlckFsaWduZWQuYXNPYnNlcnZhYmxlKCl9cG9wb3ZlckFsaWduZWRFbWl0KGgpe3RoaXMuX3BvcG92ZXJBbGlnbmVkLm5leHQoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4g''@;'; + put 'put ''bmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLGg4PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMucmVuZGVyZXI9aCx0aGlzLnNtYXJ0T3BlblNlcnZpY2U9dix0aGlzLmRvY3VtZW50PXksdGhpcy5vdXRz''@;'; + put 'put ''aWRlQ2xpY2tDbG9zZT0hMCx0aGlzLnNjcm9sbFRvQ2xvc2U9ITAsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHYub3BlbkNoYW5nZS5zdWJzY3JpYmUoQz0+e0M/KHRoaXMuYWRkRXNjYXBlTGlzdGVuZXIoKSx0aGlzLmFkZENsaWNrTGlzdGVuZXIoKSx0''@;'; + put 'put ''aGlzLmFkZFNjcm9sbExpc3RlbmVyKCkpOnRoaXMucmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKX0pLHYuZ2V0RXZlbnRDaGFuZ2UoKS5zdWJzY3JpYmUoQz0+e3RoaXMuaWdub3JlZEV2ZW50PUN9KSl9YWRkU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLnNjcm9sbFRvQ2xvc2UmJih0aGlzLmRvY3Vt''@;'; + put 'put ''ZW50U2Nyb2xsZXI9dDgodGhpcy5kb2N1bWVudCwic2Nyb2xsIix7Y2FwdHVyZTohMH0pLHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uPXRoaXMuZG9jdW1lbnRTY3JvbGxlci5waXBlKEwyKHRoaXMudGVzdEZvclNtYXJ0UG9wb3ZlckNvbnRlbnRDb250YWluZXIpKS5zdWJzY3JpYmUoKCk9Pnt0''@;'; + put 'put ''aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3Blbj0hMSx0aGlzLnNldEFuY2hvckZvY3VzKCl9KSl9cmVtb3ZlU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLmRvY3VtZW50U2Nyb2xsZXImJih0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLGRlbGV0ZSB0aGlzLmRvY3VtZW50U2Nyb2xs''@;'; + put 'put ''ZXIpfXRlc3RGb3JTbWFydFBvcG92ZXJDb250ZW50Q29udGFpbmVyKGgpe2xldCB2PWgudGFyZ2V0O2Zvcig7di5jbGFzc0xpc3QmJiJib2R5IiE9PXYucGFyZW50RWxlbWVudC5sb2NhbE5hbWU7KXY9di5wYXJlbnRFbGVtZW50O3JldHVybiEhdi5jbGFzc0xpc3QmJiF2LmNsYXNzTGlzdC5j''@;'; + put 'put ''b250YWlucygiY2xyLXBvcG92ZXItY29udGVudCIpfWFkZENsaWNrTGlzdGVuZXIoKXt0aGlzLm91dHNpZGVDbGlja0Nsb3NlJiYodGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXI9dGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwiY2xpY2siLGg9PntoPT09dGhpcy5pZ25vcmVk''@;'; + put 'put ''RXZlbnQ/ZGVsZXRlIHRoaXMuaWdub3JlZEV2ZW50Oih0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3Blbj0hMSxoLnRhcmdldC5mb2N1cygpKX0pKX1yZW1vdmVDbGlja0xpc3RlbmVyKCl7dGhpcy5vdXRzaWRlQ2xpY2tDbG9zZSYmKGRlbGV0ZSB0aGlzLmlnbm9yZWRFdmVudCx0aGlzLmRvY3Vt''@;'; + put 'put ''ZW50Q2xpY2tMaXN0ZW5lciYmKHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKCksZGVsZXRlIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKSl9YWRkRXNjYXBlTGlzdGVuZXIoKXt0aGlzLmVzY2FwZUxpc3RlbmVyPXRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQsImtleWRv''@;'; + put 'put ''d24uZXNjYXBlIiwoKT0+e3RoaXMuc21hcnRPcGVuU2VydmljZS5vcGVuPSExLHRoaXMuc2V0QW5jaG9yRm9jdXMoKX0pfXJlbW92ZUVzY2FwZUxpc3RlbmVyKCl7dGhpcy5lc2NhcGVMaXN0ZW5lciYmKHRoaXMuZXNjYXBlTGlzdGVuZXIoKSxkZWxldGUgdGhpcy5lc2NhcGVMaXN0ZW5lcil9''@;'; + put 'put ''c2V0IGFuY2hvckJ1dHRvblJlZihoKXt0aGlzLl9hbmNob3JCdXR0b25SZWY9aH1nZXQgYW5jaG9yQnV0dG9uUmVmKCl7cmV0dXJuIHRoaXMuX2FuY2hvckJ1dHRvblJlZn1zZXQgY2xvc2VCdXR0b25SZWYoaCl7dGhpcy5fY2xvc2VCdXR0b25SZWY9aH1nZXQgY2xvc2VCdXR0b25SZWYoKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5fY2xvc2VCdXR0b25SZWZ9c2V0Q2xvc2VGb2N1cygpe3RoaXMuX2Nsb3NlQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX1zZXRBbmNob3JGb2N1cygpe3RoaXMuYW5jaG9yQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX1zZXQgY29udGVudFJlZihoKXt0''@;'; + put 'put ''aGlzLl9jb250ZW50UmVmPWh9Z2V0IGNvbnRlbnRSZWYoKXtyZXR1cm4gdGhpcy5fY29udGVudFJlZn1yZW1vdmVBbGxFdmVudExpc3RlbmVycygpe3RoaXMucmVtb3ZlU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXIoKSx0aGlzLnJlbW92ZUVzY2FwZUxpc3RlbmVy''@;'; + put 'put ''KCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpLHRoaXMucmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koR2EpLENpKHpzKSxDaShwcykp''@;'; + put 'put ''fSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLHN3PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXtoLmFuY2hvckJ1dHRvblJlZj12fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChoOCks''@;'; + put 'put ''WHQoYm8pKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyUG9wb3ZlckFuY2hvciIsIiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNsci1hbmNob3IiLCEwKX19KSxkfSkoKSx0cT0oKCk9PntjbGFzcyBke2NvbnN0''@;'; + put 'put ''cnVjdG9yKGgsdix5KXt0aGlzLmVsZW1lbnRSZWY9aCx0aGlzLnNtYXJ0RXZlbnRzU2VydmljZT12LHRoaXMuc21hcnRPcGVuU2VydmljZT15LHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmNsb3NlQ2hhbmdlPW5ldyBhcix0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh5Lm9wZW5DaGFuZ2Uu''@;'; + put 'put ''cGlwZShMMihDPT4hQykpLnN1YnNjcmliZSgoKT0+e3RoaXMuY2xvc2VDaGFuZ2UubmV4dCgpfSkpfWhhbmRsZUNsaWNrKGgpe3RoaXMuc21hcnRPcGVuU2VydmljZS50b2dnbGVXaXRoRXZlbnQoaCksdGhpcy5zbWFydEV2ZW50c1NlcnZpY2Uuc2V0QW5jaG9yRm9jdXMoKX1uZ0FmdGVyVmll''@;'; + put 'put ''d0luaXQoKXt0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5jbG9zZUJ1dHRvblJlZj10aGlzLmVsZW1lbnRSZWYsdGhpcy5zbWFydEV2ZW50c1NlcnZpY2Uuc2V0Q2xvc2VGb2N1cygpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19''@;'; + put 'put ''cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoYm8pLFh0KGg4KSxYdCh6cykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJQb3BvdmVyQ2xvc2VCdXR0b24iLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVu''@;'; + put 'put ''Y3Rpb24oaCx2KXsxJmgmJlluKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuaGFuZGxlQ2xpY2soQyl9KSwyJmgmJkZpKCJjbHItc21hcnQtY2xvc2UtYnV0dG9uIiwhMCl9LG91dHB1dHM6e2Nsb3NlQ2hhbmdlOiJjbHJQb3BvdmVyT25DbG9zZUNoYW5nZSJ9fSksZH0pKCk7dmFyICQx''@;'; + put 'put ''PSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5WRVJUSUNBTD0wXT0iVkVSVElDQUwiLGRbZC5IT1JJWk9OVEFMPTFdPSJIT1JJWk9OVEFMIn0oJDF8fCgkMT17fSkpLCQxKSkoKSxfbz0oKCk9PihmdW5jdGlvbihkKXtkW2QuU1RBUlQ9MF09IlNUQVJUIixkW2QuQ0VOVEVSPS41XT0iQ0VOVEVSIixk''@;'; + put 'put ''W2QuRU5EPTFdPSJFTkQifShfb3x8KF9vPXt9KSksX28pKSgpLEJpPSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5CT1RUT009MF09IkJPVFRPTSIsZFtkLkxFRlQ9MV09IkxFRlQiLGRbZC5SSUdIVD0yXT0iUklHSFQiLGRbZC5UT1A9M109IlRPUCJ9KEJpfHwoQmk9e30pKSxCaSkpKCk7Y29uc3Qg''@;'; + put 'put ''ZDg9ZD0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLHtzaWRlOi0xKmQuc2lkZX0pLHEwPShkLGcpPT57Y29uc3QgaD1kLmNvbnRlbnQrKGc/LjU6LS41KTtyZXR1cm4gaDwwfHxoPjE/ZDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZCkse2NvbnRlbnQ6aH0pfTtm''@;'; + put 'put ''dW5jdGlvbiBPMihkLGcsaCl7cmV0dXJuIHY9PmcoZCh2KSxoKX1mdW5jdGlvbiBvMyhkLGcsaCl7bGV0IHY9Zy5sZWZ0LHk9Zy50b3A7c3dpdGNoKGQuYXhpcytkLnNpZGUpe2Nhc2UtMTp2Kz1aaihkLGcsaCkseS09aC5oZWlnaHQ7YnJlYWs7Y2FzZSAxOnYrPVpqKGQsZyxoKSx5Kz1nLmhl''@;'; + put 'put ''aWdodDticmVhaztjYXNlIDA6di09aC53aWR0aCx5Kz1ucShkLGcsaCk7YnJlYWs7Y2FzZSAyOnYrPWcud2lkdGgseSs9bnEoZCxnLGgpfXJldHVybnt4T2Zmc2V0OnYseU9mZnNldDp5fX1mdW5jdGlvbiBaaihkLGcsaCl7bGV0IHY9MDtzd2l0Y2goZC5hbmNob3Ipe2Nhc2UgX28uU1RBUlQ6''@;'; + put 'put ''YnJlYWs7Y2FzZSBfby5DRU5URVI6dis9Zy53aWR0aC8yO2JyZWFrO2Nhc2UgX28uRU5EOnYrPWcud2lkdGh9c3dpdGNoKGQuY29udGVudCl7Y2FzZSBfby5TVEFSVDpicmVhaztjYXNlIF9vLkNFTlRFUjp2LT1oLndpZHRoLzI7YnJlYWs7Y2FzZSBfby5FTkQ6di09aC53aWR0aH1yZXR1cm4g''@;'; + put 'put ''dn1mdW5jdGlvbiBucShkLGcsaCl7bGV0IHY9MDtzd2l0Y2goZC5hbmNob3Ipe2Nhc2UgX28uU1RBUlQ6YnJlYWs7Y2FzZSBfby5DRU5URVI6dis9Zy5oZWlnaHQvMjticmVhaztjYXNlIF9vLkVORDp2Kz1nLmhlaWdodH1zd2l0Y2goZC5jb250ZW50KXtjYXNlIF9vLlNUQVJUOmJyZWFrO2Nh''@;'; + put 'put ''c2UgX28uQ0VOVEVSOnYtPWguaGVpZ2h0LzI7YnJlYWs7Y2FzZSBfby5FTkQ6di09aC5oZWlnaHR9cmV0dXJuIHZ9bGV0IEdzPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLmV2ZW50U2VydmljZT1oLHRoaXMucGxhdGZvcm1JZD12LHRoaXMuX3Nob3VsZFJlYWxpZ249bmV3''@;'; + put 'put ''ICRlLHRoaXMuc2hvdWxkUmVhbGlnbj10aGlzLl9zaG91bGRSZWFsaWduLmFzT2JzZXJ2YWJsZSgpfXJlYWxpZ24oKXt0aGlzLl9zaG91bGRSZWFsaWduLm5leHQoKX1zZXQgcG9zaXRpb24oaCl7dGhpcy5fcG9zaXRpb249aH1nZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fcG9zaXRpb259''@;'; + put 'put ''YWxpZ25Db250ZW50KGgpe2lmKCFTbCh0aGlzLnBsYXRmb3JtSWQpKXJldHVybnt4T2Zmc2V0OjAseU9mZnNldDowfTt0aGlzLmN1cnJlbnRBbmNob3JDb29yZHM9dGhpcy5ldmVudFNlcnZpY2UuYW5jaG9yQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCks''@;'; + put 'put ''dGhpcy5jdXJyZW50Q29udGVudENvb3Jkcz1oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRoaXMuY29udGVudE9mZnNldHM9bzModGhpcy5wb3NpdGlvbix0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7Y29uc3Qgdj1mdW5jdGlvbiBDbyhkLGcp''@;'; + put 'put ''e2NvbnN0IGg9W10sdl9ib3R0b209ZC55T2Zmc2V0K2cuaGVpZ2h0LHZfbGVmdD1kLnhPZmZzZXQsdl9yaWdodD1kLnhPZmZzZXQrZy53aWR0aDtyZXR1cm4gZC55T2Zmc2V0Pj0wfHxoLnB1c2goQmkuVE9QKSx2X2xlZnQ+PTB8fGgucHVzaChCaS5MRUZUKSx2X2JvdHRvbTw9KHdpbmRvdy5p''@;'; + put 'put ''bm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCl8fGgucHVzaChCaS5CT1RUT00pLHZfcmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKXx8aC5wdXNoKEJpLlJJR0hUKSxofSh0aGlzLmNv''@;'; + put 'put ''bnRlbnRPZmZzZXRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpLHk9di5yZWR1Y2UoKEMsSSk9PkMrSSwwKTtyZXR1cm4gMT09PXYubGVuZ3RoJiZ0aGlzLnBvc2l0aW9uLmF4aXM9PT0kMS5WRVJUSUNBTD90aGlzLmhhbmRsZVZlcnRpY2FsQXhpc09uZVZpb2xhdGlvbih5KToxPT09di5s''@;'; + put 'put ''ZW5ndGgmJnRoaXMucG9zaXRpb24uYXhpcz09PSQxLkhPUklaT05UQUw/dGhpcy5oYW5kbGVIb3Jpem9udGFsQXhpc09uZVZpb2xhdGlvbih5KToyPT09di5sZW5ndGgmJnRoaXMucG9zaXRpb24uYXhpcz09PSQxLlZFUlRJQ0FMP3RoaXMuaGFuZGxlVmVydGljYWxBeGlzVHdvVmlvbGF0aW9u''@;'; + put 'put ''cyh5KToyPT09di5sZW5ndGgmJnRoaXMucG9zaXRpb24uYXhpcz09PSQxLkhPUklaT05UQUwmJnRoaXMuaGFuZGxlSG9yaXpvbnRhbEF4aXNUd29WaW9sYXRpb25zKHkpLHRoaXMuY29udGVudE9mZnNldHN9aGFuZGxlVmVydGljYWxBeGlzT25lVmlvbGF0aW9uKGgpe3N3aXRjaChoKXtjYXNl''@;'; + put 'put ''IDA6Y2FzZSAzOnRoaXMuY29udGVudE9mZnNldHM9bzMoZDgodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO2JyZWFrO2Nhc2UgMTp0aGlzLmNvbnRlbnRPZmZzZXRzPW8zKHRoaXMucG9zaXRpb24sdGhpcy5jdXJyZW50''@;'; + put 'put ''QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpLHRoaXMuY29udGVudE9mZnNldHMueE9mZnNldDwwJiYodGhpcy5jb250ZW50T2Zmc2V0cy54T2Zmc2V0PTEwKTticmVhaztjYXNlIDI6dGhpcy5jb250ZW50T2Zmc2V0cz1vMyhxMCh0aGlzLnBvc2l0aW9uLCEwKSx0aGlz''@;'; + put 'put ''LmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyl9fWhhbmRsZVZlcnRpY2FsQXhpc1R3b1Zpb2xhdGlvbnMoaCl7c3dpdGNoKGgpe2Nhc2UgNTp7Y29uc3Qgdj1PMihkOCxxMCwhMCk7dGhpcy5jb250ZW50T2Zmc2V0cz1vMyh2KHRoaXMucG9zaXRpb24pLHRo''@;'; + put 'put ''aXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVha31jYXNlIDQ6e2NvbnN0IHY9TzIoZDgscTAsITEpO3RoaXMuY29udGVudE9mZnNldHM9bzModih0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29u''@;'; + put 'put ''dGVudENvb3Jkcyk7YnJlYWt9Y2FzZSAzOmRlZmF1bHQ6YnJlYWs7Y2FzZSAyOntjb25zdCB2PU8yKGQ4LHEwLCEwKTt0aGlzLmNvbnRlbnRPZmZzZXRzPW8zKHYodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO2JyZWFr''@;'; + put 'put ''fWNhc2UgMTp7Y29uc3Qgdj1PMihkOCxxMCwhMSk7dGhpcy5jb250ZW50T2Zmc2V0cz1vMyh2KHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVha319fWhhbmRsZUhvcml6b250YWxBeGlzT25lVmlvbGF0aW9uKGgp''@;'; + put 'put ''e3N3aXRjaChoKXtjYXNlIDE6Y2FzZSAyOnRoaXMuY29udGVudE9mZnNldHM9bzMoZDgodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO2JyZWFrO2Nhc2UgMDp0aGlzLmNvbnRlbnRPZmZzZXRzPW8zKHEwKHRoaXMucG9z''@;'; + put 'put ''aXRpb24sITApLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVhaztjYXNlIDM6dGhpcy5jb250ZW50T2Zmc2V0cz1vMyhxMCh0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jk''@;'; + put 'put ''cyl9fWhhbmRsZUhvcml6b250YWxBeGlzVHdvVmlvbGF0aW9ucyhoKXtzd2l0Y2goaCl7Y2FzZSA1OmNhc2UgNDp7Y29uc3Qgdj1PMihkOCxxMCwhMSk7dGhpcy5jb250ZW50T2Zmc2V0cz1vMyh2KHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRD''@;'; + put 'put ''b250ZW50Q29vcmRzKTticmVha31jYXNlIDM6ZGVmYXVsdDpicmVhaztjYXNlIDI6Y2FzZSAxOntjb25zdCB2PU8yKGQ4LHEwLCEwKTt0aGlzLmNvbnRlbnRPZmZzZXRzPW8zKHYodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29y''@;'; + put 'put ''ZHMpO2JyZWFrfX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGg4KSxDaShEMikpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLGRsPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHks''@;'; + put 'put ''QyxJLGosdWUpe3RoaXMuZG9jdW1lbnQ9aCx0aGlzLmNvbnRhaW5lcj12LHRoaXMudGVtcGxhdGU9eSx0aGlzLnJlbmRlcmVyPUMsdGhpcy5zbWFydFBvc2l0aW9uU2VydmljZT1JLHRoaXMuc21hcnRFdmVudHNTZXJ2aWNlPWosdGhpcy5zbWFydE9wZW5TZXJ2aWNlPXVlLHRoaXMuc3Vic2Ny''@;'; + put 'put ''aXB0aW9ucz1bXSx0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXJGbj1udWxsLHRoaXMuc2hvdWxkUmVhbGlnbj0hMSx0aGlzLmNoZWNrQ29sbGVjdG9yPW5ldyBhcn1zZXQgb3BlbihoKXt0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3Blbj0hIWh9c2V0IGNvbnRlbnRBdChoKXt0aGlzLnNtYXJ0UG9z''@;'; + put 'put ''aXRpb25TZXJ2aWNlLnBvc2l0aW9uPWh9c2V0IG91dHNpZGVDbGlja0Nsb3NlKGgpe3RoaXMuc21hcnRFdmVudHNTZXJ2aWNlLm91dHNpZGVDbGlja0Nsb3NlPSEhaH1zZXQgc2Nyb2xsVG9DbG9zZShoKXt0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5zY3JvbGxUb0Nsb3NlPSEhaH1uZ0FmdGVy''@;'; + put 'put ''Vmlld0luaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUoaD0+e2g/dGhpcy5hZGRDb250ZW50KCk6dGhpcy5yZW1vdmVDb250ZW50KCl9KSx0aGlzLnNtYXJ0UG9zaXRpb25TZXJ2aWNlLnNob3VsZFJlYWxpZ24u''@;'; + put 'put ''c3Vic2NyaWJlKCgpPT57dGhpcy5zaG91bGRSZWFsaWduPSEwLHRoaXMudmlldyYmdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnZpZXcucm9vdE5vZGVzWzBdLCJvcGFjaXR5IiwiMCIpfSksdGhpcy5jaGVja0NvbGxlY3Rvci5waXBlKGtEKDApKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmFs''@;'; + put 'put ''aWduQ29udGVudCgpLHRoaXMuc2hvdWxkUmVhbGlnbj0hMSx0aGlzLnZpZXcmJnRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwib3BhY2l0eSIsIjEiKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMucmVtb3ZlQ29udGVudCgpLHRoaXMuc3Vic2NyaXB0aW9ucy5m''@;'; + put 'put ''b3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9cmVtb3ZlQ29udGVudCgpeyF0aGlzLnZpZXd8fCh0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXJGbiYmKHRoaXMucmVtb3ZlQ2xpY2tMaXN0ZW5lckZuKCksdGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyRm49bnVsbCksdGhpcy52aWV3LnJvb3ROb2Rl''@;'; + put 'put ''cy5mb3JFYWNoKGg9PnRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LGgpKSx0aGlzLmNvbnRhaW5lci5jbGVhcigpLGRlbGV0ZSB0aGlzLnZpZXcpfWFkZENvbnRlbnQoKXt0aGlzLnZpZXc9dGhpcy5jb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMu''@;'; + put 'put ''dGVtcGxhdGUpO2NvbnN0W2hdPXRoaXMudmlldy5yb290Tm9kZXM7dGhpcy5zbWFydEV2ZW50c1NlcnZpY2UuY29udGVudFJlZj1oLHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaCwiY2xyLXBvcG92ZXItY29udGVudCIpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaCwidG9wIiwiMHB4IiksdGhp''@;'; + put 'put ''cy5yZW5kZXJlci5zZXRTdHlsZShoLCJsZWZ0IiwiMHB4IiksdGhpcy5yZW5kZXJlci5zZXRTdHlsZShoLCJvcGFjaXR5IiwiMCIpLHRoaXMucmVtb3ZlQ2xpY2tMaXN0ZW5lckZuPXRoaXMucmVuZGVyZXIubGlzdGVuKGgsImNsaWNrIix2PT57dGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW5F''@;'; + put 'put ''dmVudD12fSksdGhpcy52aWV3LnJvb3ROb2Rlcy5mb3JFYWNoKHY9Pnt0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSx2KX0pLHRoaXMuc2hvdWxkUmVhbGlnbj0hMH1uZ0FmdGVyQ29udGVudENoZWNrZWQoKXt0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3BlbiYm''@;'; + put 'put ''dGhpcy52aWV3JiZ0aGlzLnNob3VsZFJlYWxpZ24mJnRoaXMuY2hlY2tDb2xsZWN0b3IuZW1pdCgpfWFsaWduQ29udGVudCgpe2lmKCF0aGlzLnZpZXcpcmV0dXJuO2NvbnN0IGg9dGhpcy5zbWFydFBvc2l0aW9uU2VydmljZS5hbGlnbkNvbnRlbnQodGhpcy52aWV3LnJvb3ROb2Rlc1swXSk7''@;'; + put 'put ''dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnZpZXcucm9vdE5vZGVzWzBdLCJ0b3AiLGAke2gueU9mZnNldH1weGApLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwibGVmdCIsYCR7aC54T2Zmc2V0fXB4YCksdGhpcy5zbWFydE9wZW5TZXJ2aWNlLnBv''@;'; + put 'put ''cG92ZXJBbGlnbmVkRW1pdCh0aGlzLnZpZXcucm9vdE5vZGVzWzBdKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQocHMpLFh0KFVpKSxYdChxciksWHQoR2EpLFh0KEdzKSxYdChoOCksWHQoenMpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxz''@;'; + put 'put ''ZWxlY3RvcnM6W1siIiwiY2xyUG9wb3ZlckNvbnRlbnQiLCIiXV0saW5wdXRzOntvcGVuOlsiY2xyUG9wb3ZlckNvbnRlbnQiLCJvcGVuIl0sY29udGVudEF0OlsiY2xyUG9wb3ZlckNvbnRlbnRBdCIsImNvbnRlbnRBdCJdLG91dHNpZGVDbGlja0Nsb3NlOlsiY2xyUG9wb3ZlckNvbnRlbnRP''@;'; + put 'put ''dXRzaWRlQ2xpY2tUb0Nsb3NlIiwib3V0c2lkZUNsaWNrQ2xvc2UiXSxzY3JvbGxUb0Nsb3NlOlsiY2xyUG9wb3ZlckNvbnRlbnRTY3JvbGxUb0Nsb3NlIiwic2Nyb2xsVG9DbG9zZSJdfX0pLGR9KSgpLHV3PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5zbWFydE9wZW5TZXJ2''@;'; + put 'put ''aWNlPWgsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMub3BlbkNsb3NlQ2hhbmdlPW5ldyBhcix0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUodj0+e3RoaXMub3BlbkNsb3NlQ2hhbmdlLm5leHQodil9KSl9aGFuZGxl''@;'; + put 'put ''Q2xpY2soaCl7dGhpcy5zbWFydE9wZW5TZXJ2aWNlLnRvZ2dsZVdpdGhFdmVudChoKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KHpz''@;'; + put 'put ''KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b24iLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuaGFuZGxlQ2xpY2soQyl9''@;'; + put 'put ''KSwyJmgmJkZpKCJjbHItc21hcnQtb3Blbi1jbG9zZSIsITApfSxvdXRwdXRzOntvcGVuQ2xvc2VDaGFuZ2U6ImNsclBvcG92ZXJPcGVuQ2xvc2VDaGFuZ2UifX0pLGR9KSgpLFJjPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQp''@;'; + put 'put ''fSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tdXX0pLGR9KSgpO3ZhciBsPSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5CRUZPUkU9LTFdPSJCRUZPUkUiLGRbZC5BRlRFUj0xXT0iQUZURVIifShsfHwobD17fSkpLGwpKSgpO2NsYXNzIGN7fWNbInRv''@;'; + put 'put ''cC1yaWdodCJdPXtheGlzOiQxLlZFUlRJQ0FMLHNpZGU6bC5CRUZPUkUsYW5jaG9yOl9vLkVORCxjb250ZW50Ol9vLkVORH0sY1sidG9wLWxlZnQiXT17YXhpczokMS5WRVJUSUNBTCxzaWRlOmwuQkVGT1JFLGFuY2hvcjpfby5TVEFSVCxjb250ZW50Ol9vLlNUQVJUfSxjWyJib3R0b20tcmln''@;'; + put 'put ''aHQiXT17YXhpczokMS5WRVJUSUNBTCxzaWRlOmwuQUZURVIsYW5jaG9yOl9vLkVORCxjb250ZW50Ol9vLkVORH0sY1siYm90dG9tLWxlZnQiXT17YXhpczokMS5WRVJUSUNBTCxzaWRlOmwuQUZURVIsYW5jaG9yOl9vLlNUQVJULGNvbnRlbnQ6X28uU1RBUlR9LGNbInJpZ2h0LXRvcCJdPXth''@;'; + put 'put ''eGlzOiQxLkhPUklaT05UQUwsc2lkZTpsLkFGVEVSLGFuY2hvcjpfby5DRU5URVIsY29udGVudDpfby5FTkR9LGNbInJpZ2h0LWJvdHRvbSJdPXtheGlzOiQxLkhPUklaT05UQUwsc2lkZTpsLkFGVEVSLGFuY2hvcjpfby5TVEFSVCxjb250ZW50Ol9vLlNUQVJUfSxjWyJsZWZ0LXRvcCJdPXth''@;'; + put 'put ''eGlzOiQxLkhPUklaT05UQUwsc2lkZTpsLkJFRk9SRSxhbmNob3I6X28uQ0VOVEVSLGNvbnRlbnQ6X28uRU5EfSxjWyJsZWZ0LWJvdHRvbSJdPXtheGlzOiQxLkhPUklaT05UQUwsc2lkZTpsLkJFRk9SRSxhbmNob3I6X28uU1RBUlQsY29udGVudDpfby5TVEFSVH07bGV0IG09KCgpPT57Y2xh''@;'; + put 'put ''c3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLFRzLFJjXV19KSxkfSkoKSx3PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLmVs''@;'; + put 'put ''PWgsdGhpcy5yZW5kZXJlcj12LHRoaXMuYnV0dG9uU3RhdGU9Z2ksdGhpcy5zdGF0ZT1naS5ERUZBVUxULHRoaXMuY2xyTG9hZGluZ0NoYW5nZT1uZXcgYXIoITEpfWxvYWRpbmdTdGF0ZUNoYW5nZShoKXtpZihoIT09dGhpcy5zdGF0ZSl7c3dpdGNoKHRoaXMuc3RhdGU9aCxoKXtjYXNlIGdp''@;'; + put 'put ''LkRFRkFVTFQ6dGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIiksdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsInRyYW5zZm9ybSIpLHRoaXMuZGlzYWJsZWR8fHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0''@;'; + put 'put ''cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiZGlzYWJsZWQiKTticmVhaztjYXNlIGdpLkxPQURJTkc6dGhpcy5zZXRFeHBsaWNpdEJ1dHRvbldpZHRoKCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsInRyYW5zZm9ybSIsInRyYW5zbGF0ZXooMCki''@;'; + put 'put ''KSx0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImRpc2FibGVkIiwiIik7YnJlYWs7Y2FzZSBnaS5TVUNDRVNTOnRoaXMuc2V0RXhwbGljaXRCdXR0b25XaWR0aCgpO2JyZWFrO2Nhc2UgZ2kuRVJST1I6dGhpcy5sb2FkaW5nU3RhdGVDaGFuZ2UoZ2ku''@;'; + put 'put ''REVGQVVMVCl9dGhpcy5jbHJMb2FkaW5nQ2hhbmdlLmVtaXQoaCl9fXNldEV4cGxpY2l0QnV0dG9uV2lkdGgoKXtpZih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQmJnRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qpe2NvbnN0IGg9dGhpcy5lbC5uYXRpdmVFbGVtZW50''@;'; + put 'put ''LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9TWF0aC5tYXgoNDIsaC53aWR0aCk7dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIixgJHt2fXB4YCl9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChi''@;'; + put 'put ''byksWHQoR2EpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYnV0dG9uIiwiY2xyTG9hZGluZyIsIiJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmemkoImRpc2FibGVkIix2LmRpc2FibGVkPyIiOm51bGwpfSxpbnB1dHM6e2Rpc2Fi''@;'; + put 'put ''bGVkOiJkaXNhYmxlZCJ9LG91dHB1dHM6e2NsckxvYWRpbmdDaGFuZ2U6ImNsckxvYWRpbmdDaGFuZ2UifSxmZWF0dXJlczpbaG8oW3twcm92aWRlOlBmLHVzZUV4aXN0aW5nOmR9XSldLGF0dHJzOkF1ZSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6NCx2YXJzOjQsY29uc3RzOltbMywi''@;'; + put 'put ''bmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzEsInNwaW5uZXIiLCJzcGlubmVyLWlubGluZSJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1pbmxpbmUiLCJzcGlubmVyLWNoZWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxGMCgwLDApLHJuKDEseXVlLDIsMSwi''@;'; + put 'put ''c3BhbiIsMSkscm4oMix3dWUsMiwxLCJzcGFuIiwxKSxybigzLGJ1ZSwyLDEsInNwYW4iLDEpLEgwKCkpLDImaCYmKFR0KCJuZ1N3aXRjaCIsdi5zdGF0ZSksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsdi5idXR0b25TdGF0ZS5MT0FESU5HKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIix2LmJ1''@;'; + put 'put ''dHRvblN0YXRlLlNVQ0NFU1MpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLHYuYnV0dG9uU3RhdGUuREVGQVVMVCkpfSxkZXBlbmRlbmNpZXM6W1VkLGlwXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOlskaCgiZGVmYXVsdEJ1dHRvbiIsW2J1KCI6ZW50ZXIiLFt5bCh7b3BhY2l0''@;'; + put 'put ''eTowfSksRGMoIjIwMG1zIDEwMG1zIGVhc2UtaW4iLHlsKHtvcGFjaXR5OjF9KSldKSxidSgiOmxlYXZlIixbeWwoe29wYWNpdHk6MH0pXSldKSwkaCgic3Bpbm5lciIsW2J1KCI6ZW50ZXIiLFt5bCh7b3BhY2l0eTowfSksRGMoIjIwMG1zIDEwMG1zIGVhc2UtaW4iLHlsKHtvcGFjaXR5OjF9''@;'; + put 'put ''KSldKSxidSgiOmxlYXZlIixbeWwoe29wYWNpdHk6MX0pLERjKCIxMDBtcyBlYXNlLW91dCIseWwoe29wYWNpdHk6MH0pKV0pXSksJGgoInZhbGlkYXRlZCIsW2J1KCI6ZW50ZXIiLFtEYygiNjAwbXMiLG8yZShbeWwoe3RyYW5zZm9ybToic2NhbGUoMCwwKSIsb2Zmc2V0OjB9KSx5bCh7b3Bh''@;'; + put 'put ''Y2l0eToxLG9mZnNldDouMn0pLHlsKHt0cmFuc2Zvcm06InNjYWxlKDEuMiwxLjIpIixvZmZzZXQ6LjR9KSx5bCh7dHJhbnNmb3JtOiJzY2FsZSguOSwuOSkiLG9mZnNldDouNn0pLHlsKHt0cmFuc2Zvcm06InNjYWxlKDEsMSkiLG9mZnNldDoxfSldKSldKSxidSgiOmxlYXZlIixbeWwoe29w''@;'; + put 'put ''YWNpdHk6MX0pLERjKCIxMDBtcyBlYXNlLW91dCIseWwoe29wYWNpdHk6MH0pKV0pXSldfX0pLGR9KSgpLGs9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1i''@;'; + put 'put ''MCh7aW1wb3J0czpbW2JhXV19KSxkfSkoKSxNPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhuVil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2lt''@;'; + put 'put ''cG9ydHM6W2ssbV19KSxkfSkoKSxEPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJuZy1jb21wb25lbnQiXV0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVu''@;'; + put 'put ''Y3Rpb24oaCx2KXt9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLFI9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7fSksZH0pKCksRz0wLEs9KCgpPT57''@;'; + put 'put ''Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2lkPSJjbHItZm9ybS1jb250cm9sLSIrICsrRyx0aGlzLl9pZENoYW5nZT1uZXcgY3ModGhpcy5faWQpfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZH1zZXQgaWQoaCl7dGhpcy5faWQ9aCx0aGlzLl9pZENoYW5nZS5uZXh0KGgpfWdldCBpZENo''@;'; + put 'put ''YW5nZSgpe3JldHVybiB0aGlzLl9pZENoYW5nZS5hc09ic2VydmFibGUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCkscGU9MCxnZT0oKCk9PntjbGFz''@;'; + put 'put ''cyBke2NvbnN0cnVjdG9yKCl7dGhpcy5faWQ9ImNsci1mb3JtLWNvbnRhaW5lci0iKyArK3BlLHRoaXMuX2lkQ2hhbmdlPW5ldyBjcyh0aGlzLl9pZCl9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2lkfXNldCBpZChoKXt0aGlzLl9pZD1oLHRoaXMuX2lkQ2hhbmdlLm5leHQoaCl9Z2V0IGlkQ2hh''@;'; + put 'put ''bmdlKCl7cmV0dXJuIHRoaXMuX2lkQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTtsZXQgT2U9KCgpPT57Y2xhc3Mg''@;'; + put 'put ''ZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuY29udHJvbElkU2VydmljZT1oLHRoaXMuY29udGFpbmVySWRTZXJ2aWNlPXYsdGhpcy5jb250cm9sSWRTdWZmaXg9ImFic3RyYWN0In1nZXQgaWQoKXtyZXR1cm4gdGhpcy5jb250YWluZXJJZFNlcnZpY2U/YCR7dGhpcy5jb250YWluZXJJZFNlcnZp''@;'; + put 'put ''Y2UuaWR9LSR7dGhpcy5jb250cm9sSWRTdWZmaXh9YDp0aGlzLmNvbnRyb2xJZFNlcnZpY2U/YCR7dGhpcy5jb250cm9sSWRTZXJ2aWNlLmlkfS0ke3RoaXMuY29udHJvbElkU3VmZml4fWA6bnVsbH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQo''@;'; + put 'put ''Syw4KSxYdChnZSw4KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmR9KSxkfSkoKSxMZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgT2V7Y29uc3RydWN0b3IoaCx2KXtzdXBlcihoLHYpLHRoaXMuY29udHJvbElkU2VydmljZT1oLHRoaXMuY29udGFpbmVySWRTZXJ2aWNlPXYsdGhpcy5jb250cm9s''@;'; + put 'put ''SWRTdWZmaXg9ImVycm9yIn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoSyw4KSxYdChnZSw4KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1jb250cm9sLWVycm9yIl1dLGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdz''@;'; + put 'put ''OmZ1bmN0aW9uKGgsdil7MiZoJiYoemkoImlkIix2LmlkKSxGaSgiY2xyLXN1YnRleHQiLCEwKSl9LGZlYXR1cmVzOltEb10sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSl9LGVuY2Fwc3VsYXRpb246''@;'; + put 'put ''Mn0pLGR9KSgpLFJlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBPZXtjb25zdHJ1Y3RvcihoLHYpe3N1cGVyKGgsdiksdGhpcy5jb250cm9sSWRTZXJ2aWNlPWgsdGhpcy5jb250YWluZXJJZFNlcnZpY2U9dix0aGlzLmNvbnRyb2xJZFN1ZmZpeD0iaGVscGVyIn19cmV0dXJuIGQuXHUwMjc1ZmFj''@;'; + put 'put ''PWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoSyw4KSxYdChnZSw4KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1jb250cm9sLWhlbHBlciJdXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKHppKCJpZCIsdi5pZCks''@;'; + put 'put ''RmkoImNsci1zdWJ0ZXh0IiwhMCkpfSxmZWF0dXJlczpbRG9dLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxIZT0oKCk9PntjbGFzcyBke2NvbnN0cnVj''@;'; + put 'put ''dG9yKCl7dGhpcy5fY29udHJvbENoYW5nZXM9bmV3ICRlLHRoaXMuX2hlbHBlcnM9bmV3ICRlfWdldCBjb250cm9sQ2hhbmdlcygpe3JldHVybiB0aGlzLl9jb250cm9sQ2hhbmdlcy5hc09ic2VydmFibGUoKX1zZXRDb250cm9sKGgpe3RoaXMuX2NvbnRyb2xDaGFuZ2VzLm5leHQoaCl9Z2V0''@;'; + put 'put ''IGhlbHBlcnNDaGFuZ2UoKXtyZXR1cm4gdGhpcy5faGVscGVycy5hc09ic2VydmFibGUoKX1zZXRIZWxwZXJzKGgpe3RoaXMuX2hlbHBlcnMubmV4dChoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxm''@;'; + put 'put ''YWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7dmFyIFZlPSgoKT0+KGZ1bmN0aW9uKGQpe2QuTk9ORT0iTk9ORSIsZC5WQUxJRD0iVkFMSUQiLGQuSU5WQUxJRD0iSU5WQUxJRCJ9KFZlfHwoVmU9e30pKSxWZSkpKCk7bGV0IHFlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5u''@;'; + put 'put ''Z0NvbnRyb2xTZXJ2aWNlPWgsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuX3N0YXR1c0NoYW5nZXM9bmV3IGNzKFZlLk5PTkUpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubmdDb250cm9sU2VydmljZS5jb250cm9sQ2hhbmdlcy5zdWJzY3JpYmUodj0+e3YmJih0aGlzLmNvbnRy''@;'; + put 'put ''b2w9dix0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCk9Pnt0aGlzLnRyaWdnZXJTdGF0dXNDaGFuZ2UoKX0pKSl9KSl9Z2V0IHN0YXR1c0NoYW5nZXMoKXtyZXR1cm4gdGhpcy5fc3RhdHVzQ2hhbmdlcy5hc09ic2VydmFibGUo''@;'; + put 'put ''KX10cmlnZ2VyU3RhdHVzQ2hhbmdlKCl7aWYodGhpcy5jb250cm9sKXtjb25zdCBoPVZlW3RoaXMuY29udHJvbC5zdGF0dXNdO3RoaXMuX3N0YXR1c0NoYW5nZXMubmV4dCh0aGlzLmNvbnRyb2wudG91Y2hlZCYmWyJWQUxJRCIsIklOVkFMSUQiXS5pbmNsdWRlcyhoKT9oOlZlLk5PTkUpfX1u''@;'; + put 'put ''Z09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEhlKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSks''@;'; + put 'put ''ZH0pKCk7dmFyIG50PSgoKT0+KGZ1bmN0aW9uKGQpe2QuVkVSVElDQUw9InZlcnRpY2FsIixkLkhPUklaT05UQUw9Imhvcml6b250YWwiLGQuQ09NUEFDVD0iY29tcGFjdCJ9KG50fHwobnQ9e30pKSxudCkpKCk7bGV0IFdlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLm1pbkxh''@;'; + put 'put ''YmVsU2l6ZT0xLHRoaXMubWF4TGFiZWxTaXplPTEyLHRoaXMubGF5b3V0PW50LkhPUklaT05UQUwsdGhpcy5sYXlvdXRWYWx1ZXM9T2JqZWN0LmtleXMobnQpLm1hcChoPT5udFtoXSksdGhpcy5fbGFiZWxTaXplPTJ9c2V0IGxhYmVsU2l6ZShoKXt0aGlzLmxhYmVsU2l6ZUlzVmFsaWQoaCkm''@;'; + put 'put ''Jih0aGlzLl9sYWJlbFNpemU9aCl9Z2V0IGxhYmVsU2l6ZSgpe3JldHVybiB0aGlzLl9sYWJlbFNpemV9aXNWZXJ0aWNhbCgpe3JldHVybiB0aGlzLmxheW91dD09PW50LlZFUlRJQ0FMfWlzSG9yaXpvbnRhbCgpe3JldHVybiB0aGlzLmxheW91dD09PW50LkhPUklaT05UQUx9aXNDb21wYWN0''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMubGF5b3V0PT09bnQuQ09NUEFDVH1nZXQgbGF5b3V0Q2xhc3MoKXtyZXR1cm5gY2xyLWZvcm0tJHt0aGlzLmxheW91dH1gfWlzVmFsaWQoaCl7cmV0dXJuIHRoaXMubGF5b3V0VmFsdWVzLmluZGV4T2YoaCk+LTF9bGFiZWxTaXplSXNWYWxpZChoKXtyZXR1cm4gTnVt''@;'; + put 'put ''YmVyLmlzSW50ZWdlcihoKSYmaD49dGhpcy5taW5MYWJlbFNpemUmJmg8PXRoaXMubWF4TGFiZWxTaXplfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxv''@;'; + put 'put ''dD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5jb250cm9sSWRTZXJ2aWNlPWgsdGhpcy5sYXlvdXRTZXJ2aWNlPXYsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPXksdGhpcy5yZW5kZXJlcj1DLHRoaXMuZWw9SSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5lbmFi''@;'; + put 'put ''bGVHcmlkPSEwfWdldCBsYWJlbFRleHQoKXtyZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50JiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnR9bmdPbkluaXQoKXsodGhpcy5jb250cm9sSWRTZXJ2aWNlfHx0aGlzLm5nQ29udHJvbFNlcnZpY2UpJiZ0aGlzLnJlbmRlcmVyLmFk''@;'; + put 'put ''ZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiY2xyLWNvbnRyb2wtbGFiZWwiKSx0aGlzLmVuYWJsZUdyaWQmJnRoaXMubGF5b3V0U2VydmljZSYmIXRoaXMubGF5b3V0U2VydmljZS5pc1ZlcnRpY2FsKCkmJnRoaXMuZWwubmF0aXZlRWxlbWVudCYmdGhpcy5lbC5uYXRpdmVFbGVtZW50''@;'; + put 'put ''LmNsYXNzTmFtZS5pbmRleE9mKCJjbHItY29sIik8MCYmKHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCJjbHItY29sLTEyIiksdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsYGNsci1jb2wtbWQtJHt0aGlzLmxheW91dFNl''@;'; + put 'put ''cnZpY2UubGFiZWxTaXplfWApKSx0aGlzLmNvbnRyb2xJZFNlcnZpY2UmJiF0aGlzLmZvckF0dHImJnRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuY29udHJvbElkU2VydmljZS5pZENoYW5nZS5zdWJzY3JpYmUoaD0+dGhpcy5mb3JBdHRyPWgpKX1kaXNhYmxlR3JpZCgpe3RoaXMuZW5h''@;'; + put 'put ''YmxlR3JpZD0hMX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KEssOCksWHQoV2UsOCksWHQoSGUsOCksWHQoR2EpLFh0KGJvKSl9LGQu''@;'; + put 'put ''XHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImxhYmVsIl1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZ6aSgiZm9yIix2LmZvckF0dHIpfSxpbnB1dHM6e2ZvckF0dHI6WyJmb3IiLCJmb3JBdHRyIl19fSksZH0pKCksU3Q9KCgpPT57Y2xhc3Mg''@;'; + put 'put ''ZCBleHRlbmRzIE9le2NvbnN0cnVjdG9yKGgsdil7c3VwZXIoaCx2KSx0aGlzLmNvbnRyb2xJZFNlcnZpY2U9aCx0aGlzLmNvbnRhaW5lcklkU2VydmljZT12LHRoaXMuY29udHJvbElkU3VmZml4PSJzdWNjZXNzIn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXco''@;'; + put 'put ''aHx8ZCkoWHQoSyw4KSxYdChnZSw4KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1jb250cm9sLXN1Y2Nlc3MiXV0saG9zdFZhcnM6Myxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJih6aSgiaWQiLHYuaWQpLEZpKCJjbHItc3VidGV4dCIsITApKX0s''@;'; + put 'put ''ZmVhdHVyZXM6W0RvXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDApKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksRXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmxheW91dFNlcnZp''@;'; + put 'put ''Y2U9aCx0aGlzLmNsYXNzTmFtZT0iIn1jb250cm9sQ2xhc3MoaD1WZS5OT05FLHY9ITEseT0iIil7Y29uc3QgQz1bdGhpcy5jbGFzc05hbWUseV07c3dpdGNoKGgpe2Nhc2UgVmUuVkFMSUQ6Qy5wdXNoKCJjbHItc3VjY2VzcyIpO2JyZWFrO2Nhc2UgVmUuSU5WQUxJRDpDLnB1c2goImNsci1l''@;'; + put 'put ''cnJvciIpfXJldHVybiB2JiZ0aGlzLmxheW91dFNlcnZpY2UmJi0xPT09dGhpcy5jbGFzc05hbWUuaW5kZXhPZigiY2xyLWNvbCIpJiZDLnB1c2goYGNsci1jb2wtbWQtJHt0aGlzLmxheW91dFNlcnZpY2UubWF4TGFiZWxTaXplLXRoaXMubGF5b3V0U2VydmljZS5sYWJlbFNpemV9IGNsci1j''@;'; + put 'put ''b2wtMTJgKSxDLmpvaW4oIiAiKS50cmltKCl9aW5pdENvbnRyb2xDbGFzcyhoLHYpe3YmJnYuY2xhc3NOYW1lJiYodGhpcy5jbGFzc05hbWU9di5jbGFzc05hbWUsdi5jbGFzc05hbWUuc3BsaXQoIiAiKS5mb3JFYWNoKEM9PntDLnN0YXJ0c1dpdGgoImNsci1jb2wiKSYmaC5yZW1vdmVDbGFz''@;'; + put 'put ''cyh2LEMpfSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShXZSw4KSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksWnQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlz''@;'; + put 'put ''LmlmQ29udHJvbFN0YXRlU2VydmljZT1oLHRoaXMubGF5b3V0U2VydmljZT12LHRoaXMuY29udHJvbENsYXNzU2VydmljZT15LHRoaXMubmdDb250cm9sU2VydmljZT1DLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLl9keW5hbWljPSExLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMu''@;'; + put 'put ''aWZDb250cm9sU3RhdGVTZXJ2aWNlLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKEk9Pnt0aGlzLnN0YXRlPUksdGhpcy51cGRhdGVIZWxwZXJzKCl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5uZ0NvbnRyb2xTZXJ2aWNlLmNvbnRyb2xDaGFuZ2VzLnN1YnNjcmliZShJPT57dGhp''@;'; + put 'put ''cy5jb250cm9sPUl9KSl9Z2V0IHNob3dIZWxwZXIoKXtyZXR1cm4hIXRoaXMuY29udHJvbEhlbHBlckNvbXBvbmVudCYmKCEhdGhpcy5jb250cm9sSGVscGVyQ29tcG9uZW50JiZ0aGlzLnN0YXRlPT09VmUuTk9ORXx8IXRoaXMuY29udHJvbFN1Y2Nlc3NDb21wb25lbnQmJnRoaXMuc3RhdGU9''@;'; + put 'put ''PT1WZS5WQUxJRHx8IXRoaXMuY29udHJvbEVycm9yQ29tcG9uZW50JiZ0aGlzLnN0YXRlPT09VmUuSU5WQUxJRCl9Z2V0IHNob3dWYWxpZCgpe3JldHVybiB0aGlzLnN0YXRlPT09VmUuVkFMSUQmJiEhdGhpcy5jb250cm9sU3VjY2Vzc0NvbXBvbmVudH1nZXQgc2hvd0ludmFsaWQoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5zdGF0ZT09PVZlLklOVkFMSUQmJiEhdGhpcy5jb250cm9sRXJyb3JDb21wb25lbnR9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy51cGRhdGVIZWxwZXJzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWNvbnRy''@;'; + put 'put ''b2xDbGFzcygpe3JldHVybiB0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2UuY29udHJvbENsYXNzKHRoaXMuY29udHJvbFN1Y2Nlc3NDb21wb25lbnR8fHRoaXMuc3RhdGUhPT1WZS5WQUxJRD90aGlzLnN0YXRlOlZlLk5PTkUsdGhpcy5hZGRHcmlkKCkpfWFkZEdyaWQoKXtyZXR1cm4gdGhpcy5s''@;'; + put 'put ''YXlvdXRTZXJ2aWNlJiYhdGhpcy5sYXlvdXRTZXJ2aWNlLmlzVmVydGljYWwoKX11cGRhdGVIZWxwZXJzKCl7dGhpcy5uZ0NvbnRyb2xTZXJ2aWNlJiZ0aGlzLm5nQ29udHJvbFNlcnZpY2Uuc2V0SGVscGVycyh7c2hvdzp0aGlzLnNob3dJbnZhbGlkfHx0aGlzLnNob3dIZWxwZXJ8fHRoaXMu''@;'; + put 'put ''c2hvd1ZhbGlkLHNob3dJbnZhbGlkOnRoaXMuc2hvd0ludmFsaWQsc2hvd0hlbHBlcjp0aGlzLnNob3dIZWxwZXIsc2hvd1ZhbGlkOnRoaXMuc2hvd1ZhbGlkfSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KHFlKSxYdChXZSw4KSxYdChFdCks''@;'; + put 'put ''WHQoSGUpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiYoeG8oeSxvdCw1KSx4byh5LFN0LDUpLHhvKHksTGUsNSkseG8oeSxSZSw1KSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5sYWJlbD1DLmZpcnN0KSxIaShDPSRp''@;'; + put 'put ''KCkpJiYodi5jb250cm9sU3VjY2Vzc0NvbXBvbmVudD1DLmZpcnN0KSxIaShDPSRpKCkpJiYodi5jb250cm9sRXJyb3JDb21wb25lbnQ9Qy5maXJzdCksSGkoQz0kaSgpKSYmKHYuY29udHJvbEhlbHBlckNvbXBvbmVudD1DLmZpcnN0KX19fSksZH0pKCk7Y2xhc3MgYnR7Y29uc3RydWN0b3Io''@;'; + put 'put ''ZyxoLHY9MCl7aWYodGhpcy5pbmplY3Rvcj1oLmluamVjdG9yLCF0aGlzLmluamVjdG9yLmdldChnLG51bGwpKXtjb25zdCB5PXRoaXMuaW5qZWN0b3IuZ2V0KGtkKSxDPXRoaXMuaW5qZWN0b3IuZ2V0KGJvKTtoLmNyZWF0ZUNvbXBvbmVudCh5LnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEQp''@;'; + put 'put ''KTtjb25zdCBJPXkucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZyksaj1bXTtqW3ZdPVtDLm5hdGl2ZUVsZW1lbnRdO2NvbnN0IHVlPWguY3JlYXRlQ29tcG9uZW50KEksdm9pZCAwLHZvaWQgMCxqKTtoLnJlbW92ZSgwKSx1ZS5pbnN0YW5jZS5fZHluYW1pYz0hMCx0aGlzLmluamVjdG9yPXVl''@;'; + put 'put ''LmluamVjdG9yfX1nZXQoZyxoKXtyZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoZyxoKX19bGV0IGFuPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl90b3VjaGVkPW5ldyAkZX1nZXQgdG91Y2hlZENoYW5nZSgpe3JldHVybiB0aGlzLl90b3VjaGVkLmFzT2JzZXJ2YWJsZSgpfW1h''@;'; + put 'put ''cmtBc1RvdWNoZWQoKXt0aGlzLl90b3VjaGVkLm5leHQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksU249KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rv''@;'; + put 'put ''cihoLHYseSxDLEksail7dGhpcy52Y3I9aCx0aGlzLndyYXBwZXJUeXBlPXYsdGhpcy5uZ0NvbnRyb2w9Qyx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5pbmRleD0wLHRoaXMucmVuZGVyZXI9SSx0aGlzLmVsPWo7dHJ5e3RoaXMubmdDb250cm9sU2VydmljZT15LmdldChIZSksdGhpcy5p''@;'; + put 'put ''ZkNvbnRyb2xTdGF0ZVNlcnZpY2U9eS5nZXQocWUpLHRoaXMuY29udHJvbENsYXNzU2VydmljZT15LmdldChFdCksdGhpcy5tYXJrQ29udHJvbFNlcnZpY2U9eS5nZXQoYW4pfWNhdGNoKHVlKXt9dGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlJiZ0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2UuaW5p''@;'; + put 'put ''dENvbnRyb2xDbGFzcyhJLGoubmF0aXZlRWxlbWVudCksdGhpcy5tYXJrQ29udHJvbFNlcnZpY2UmJnRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubWFya0NvbnRyb2xTZXJ2aWNlLnRvdWNoZWRDaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhpcy5tYXJrQXNUb3VjaGVkKCl9KSksdGhpcy5u''@;'; + put 'put ''Z0NvbnRyb2xTZXJ2aWNlJiZ0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm5nQ29udHJvbFNlcnZpY2UuaGVscGVyc0NoYW5nZS5zdWJzY3JpYmUodWU9Pnt0aGlzLnNldEFyaWFEZXNjcmliZWRCeSh1ZSl9KSl9Z2V0IGlkKCl7cmV0dXJuIHRoaXMuX2lkfXNldCBpZChoKXt0aGlzLl9p''@;'; + put 'put ''ZD1oLHRoaXMuY29udHJvbElkU2VydmljZSYmKHRoaXMuY29udHJvbElkU2VydmljZS5pZD1oKX10cmlnZ2VyVmFsaWRhdGlvbigpe3RoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlJiYodGhpcy5uZ0NvbnRyb2wmJiF0aGlzLm5nQ29udHJvbC50b3VjaGVkJiZ0aGlzLm1hcmtBc1RvdWNoZWQo''@;'; + put 'put ''KSx0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZS50cmlnZ2VyU3RhdHVzQ2hhbmdlKCkpfW1hcmtBc1RvdWNoZWQoKXt0aGlzLm5nQ29udHJvbC5jb250cm9sLm1hcmtBc1RvdWNoZWQoKSx0aGlzLm5nQ29udHJvbC5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKX1nZXRQcm92aWRl''@;'; + put 'put ''ckZyb21Db250YWluZXIoaCx2KXt0cnl7cmV0dXJuIHRoaXMuX2NvbnRhaW5lckluamVjdG9yLmdldChoLHYpfWNhdGNoKHkpe3JldHVybiB2fX1uZ09uSW5pdCgpe3RoaXMuX2NvbnRhaW5lckluamVjdG9yPW5ldyBidCh0aGlzLndyYXBwZXJUeXBlLHRoaXMudmNyLHRoaXMuaW5kZXgpLHRo''@;'; + put 'put ''aXMuY29udHJvbElkU2VydmljZT10aGlzLl9jb250YWluZXJJbmplY3Rvci5nZXQoSyk7dHJ5e3RoaXMuY29udGFpbmVySWRTZXJ2aWNlPXRoaXMuX2NvbnRhaW5lckluamVjdG9yLmdldChnZSl9Y2F0Y2goaCl7fXRoaXMuX2lkP3RoaXMuY29udHJvbElkU2VydmljZS5pZD10aGlzLl9pZDp0''@;'; + put 'put ''aGlzLl9pZD10aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWQsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlJiZ0aGlzLm5nQ29udHJvbFNlcnZpY2Uuc2V0Q29udHJvbCh0aGlzLm5nQ29udHJvbCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkp''@;'; + put 'put ''fXNldEFyaWFEZXNjcmliZWRCeShoKXtpZihoLnNob3cpe2NvbnN0IHY9dGhpcy5nZXRBcmlhRGVzY3JpYmVkQnlJZChoKTtpZihudWxsIT09dilyZXR1cm4gdm9pZCB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImFyaWEtZGVzY3JpYmVkYnkiLHYp''@;'; + put 'put ''fXRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiYXJpYS1kZXNjcmliZWRieSIpfWdldEFyaWFEZXNjcmliZWRCeUlkKGgpe2xldCB2PSJoZWxwZXIiO3JldHVybiBoLnNob3dJbnZhbGlkP3Y9ImVycm9yIjpoLnNob3dWYWxpZCYmKHY9InN1Y2Nl''@;'; + put 'put ''c3MiKSx0aGlzLmNvbnRhaW5lcklkU2VydmljZT90aGlzLmNvbnRhaW5lcklkU2VydmljZS5pZC5jb25jYXQoIi0iLHYpOnRoaXMuY29udHJvbElkU2VydmljZT90aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWQuY29uY2F0KCItIix2KTpudWxsfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24o''@;'; + put 'put ''aCl7cmV0dXJuIG5ldyhofHxkKShYdChVaSksWHQoV2MpLFh0KGtzKSxYdChEZiksWHQoR2EpLFh0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsaG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJibHVyIixmdW5jdGlvbigpe3JldHVybiB2LnRyaWdn''@;'; + put 'put ''ZXJWYWxpZGF0aW9uKCl9KSwyJmgmJlAzKCJpZCIsdi5pZCl9LGlucHV0czp7aWQ6ImlkIn19KSxkfSkoKSx1cj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5sYXlvdXRTZXJ2aWNlPWgsdGhpcy5tYXJrQ29udHJvbFNlcnZpY2U9dn1zZXQgbGFiZWxTaXplKGgpe2NvbnN0''@;'; + put 'put ''IHY9cGFyc2VJbnQoaCwxMCl8fDI7dGhpcy5sYXlvdXRTZXJ2aWNlLmxhYmVsU2l6ZT12fW1hcmtBc1RvdWNoZWQoKXt0aGlzLm1hcmtDb250cm9sU2VydmljZS5tYXJrQXNUb3VjaGVkKCl9b25Gb3JtU3VibWl0KCl7dGhpcy5tYXJrQXNUb3VjaGVkKCl9fXJldHVybiBkLlx1MDI3NWZhYz1m''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KFdlKSxYdChhbikpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJGb3JtIiwiIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksb3QsNSksMiZoKXtsZXQgQztIaShDPSRp''@;'; + put 'put ''KCkpJiYodi5sYWJlbHM9Qyl9fSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmWW4oInN1Ym1pdCIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkZvcm1TdWJtaXQoKX0pLDImaCYmRmkoImNsci1mb3JtIiwhMCkoImNsci1mb3JtLWhvcml6b250YWwiLHYubGF5b3V0''@;'; + put 'put ''U2VydmljZS5pc0hvcml6b250YWwoKSkoImNsci1mb3JtLWNvbXBhY3QiLHYubGF5b3V0U2VydmljZS5pc0NvbXBhY3QoKSl9LGlucHV0czp7bGFiZWxTaXplOlsiY2xyTGFiZWxTaXplIiwibGFiZWxTaXplIl19LGZlYXR1cmVzOltobyhbV2UsYW5dKV19KSxkfSkoKSxKcj0oKCk9PntjbGFz''@;'; + put 'put ''cyBke2NvbnN0cnVjdG9yKCl7ZnMuYWRkSWNvbnMoS2gsVGYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsVHNdXX0pLGR9KSgpO2NvbnN0IExyPW5l''@;'; + put 'put ''dyB6ZSgiSVNfVE9HR0xFIiksVmk9e3Byb3ZpZGU6THIsdXNlRmFjdG9yeTpmdW5jdGlvbiBsMCgpe3JldHVybiBuZXcgY3MoITEpfX07bGV0IE9pPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5fZHluYW1pYz0hMSx0aGlzLnRvZ2dsZT0hMSx0aGlzLnN1YnNjcmlwdGlvbnM9''@;'; + put 'put ''W10sdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goaC5zdWJzY3JpYmUodj0+e3RoaXMudG9nZ2xlPXZ9KSl9bmdPbkluaXQoKXt0aGlzLmxhYmVsJiZ0aGlzLmxhYmVsLmRpc2FibGVHcmlkKCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJl''@;'; + put 'put ''KCkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChMcikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItY2hlY2tib3gtd3JhcHBlciJdLFsiY2xyLXRvZ2dsZS13cmFwcGVyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdix5KXtpZigxJmgmJnhvKHksb3QsNyksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5sYWJlbD1DLmZpcnN0KX19LGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLWNoZWNrYm94LXdyYXBwZXIiLCF2LnRvZ2dsZSkoImNsci10b2dnbGUt''@;'; + put 'put ''d3JhcHBlciIsdi50b2dnbGUpfSxmZWF0dXJlczpbaG8oW0ssVmldKV0sbmdDb250ZW50U2VsZWN0b3JzOmt1ZSxkZWNsczozLHZhcnM6MSxjb25zdHM6W1s0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoQ3VlKSxOaSgwKSxOaSgxLDEpLHJuKDIsX3VlLDEsMCwi''@;'; + put 'put ''bGFiZWwiLDApKSwyJmgmJih1dCgyKSxUdCgibmdJZiIsIXYubGFiZWwpKX0sZGVwZW5kZW5jaWVzOltWbyxvdF0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksUm89KCgpPT57Y2xhc3MgZCBleHRlbmRzIFNue2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqKXtzdXBlcihoLE9pLHYseSxDLEkpLHRo''@;'; + put 'put ''aXMudG9nZ2xlPWp9bmdPbkluaXQoKXtzdXBlci5uZ09uSW5pdCgpO2NvbnN0IGg9dGhpcy5nZXRQcm92aWRlckZyb21Db250YWluZXIoTHIsbnVsbCk7aCYmbnVsbCE9PXRoaXMudG9nZ2xlJiZoLm5leHQoITApfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyho''@;'; + put 'put ''fHxkKShYdChVaSksWHQoa3MpLFh0KERmLDEwKSxYdChHYSksWHQoYm8pLGczKCJjbHJUb2dnbGUiKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsckNoZWNrYm94IiwiIl0sWyIiLCJjbHJUb2dnbGUiLCIiXV0sZmVhdHVyZXM6W0RvXX0pLGR9KSgpLGxvPSgo''@;'; + put 'put ''KT0+e2NsYXNzIGQgZXh0ZW5kcyBadHtjb25zdHJ1Y3RvcihoLHYseSxDKXtzdXBlcihDLGgsdix5KSx0aGlzLmxheW91dFNlcnZpY2U9aCx0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2U9dix0aGlzLm5nQ29udHJvbFNlcnZpY2U9eSx0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZT1DLHRoaXMu''@;'; + put 'put ''aW5saW5lPSExfXNldCBjbHJJbmxpbmUoaCl7dGhpcy5pbmxpbmU9InN0cmluZyI9PXR5cGVvZiBoPyJmYWxzZSIhPT1oOiEhaH1nZXQgY2xySW5saW5lKCl7cmV0dXJuIHRoaXMuaW5saW5lfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc2V0QXJpYVJvbGVzKCl9c2V0QXJpYVJvbGVzKCl7''@;'; + put 'put ''dGhpcy5yb2xlPXRoaXMuY2hlY2tib3hlcy5sZW5ndGg/Imdyb3VwIjpudWxsfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChXZSw4KSxYdChFdCksWHQoSGUpLFh0KHFlKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNs''@;'; + put 'put ''ci1jaGVja2JveC1jb250YWluZXIiXSxbImNsci10b2dnbGUtY29udGFpbmVyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksUm8sNSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5jaGVja2JveGVzPUMpfX0saG9zdFZhcnM6Nyxob3N0QmluZGluZ3M6''@;'; + put 'put ''ZnVuY3Rpb24oaCx2KXsyJmgmJih6aSgicm9sZSIsdi5yb2xlKSxGaSgiY2xyLWZvcm0tY29udHJvbCIsITApKCJjbHItZm9ybS1jb250cm9sLWRpc2FibGVkIixudWxsPT12LmNvbnRyb2w/bnVsbDp2LmNvbnRyb2wuZGlzYWJsZWQpKCJjbHItcm93Iix2LmFkZEdyaWQoKSkpfSxpbnB1dHM6''@;'; + put 'put ''e2NscklubGluZToiY2xySW5saW5lIn0sZmVhdHVyZXM6W2hvKFtxZSxIZSxFdCxnZV0pLERvXSxuZ0NvbnRlbnRTZWxlY3RvcnM6THVlLGRlY2xzOjEwLHZhcnM6OSxjb25zdHM6W1s0LCJuZ0lmIl0sWzEsImNsci1jb250cm9sLWNvbnRhaW5lciIsMywibmdDbGFzcyJdLFsxLCJjbHItc3Vi''@;'; + put 'put ''dGV4dC13cmFwcGVyIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic3RhdHVzIiwiZGFuZ2VyIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzdGF0dXMiLCJzdWNj''@;'; + put 'put ''ZXNzIiwic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdLFsic3RhdHVzIiwic3Vj''@;'; + put 'put ''Y2VzcyIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKER1ZSksTmkoMCkscm4oMSxTdWUsMSwwLCJsYWJlbCIsMCksaXQoMiwiZGl2IiwxKSxOaSgzLDEpLGl0''@;'; + put 'put ''KDQsImRpdiIsMikscm4oNSxNdWUsMSwwLCJuZy1jb250ZW50IiwwKSxybig2LEV1ZSwxLDAsImNkcy1pY29uIiwzKSxybig3LHh1ZSwxLDAsImNkcy1pY29uIiw0KSxybig4LFR1ZSwxLDAsIm5nLWNvbnRlbnQiLDApLHJuKDksSXVlLDEsMCwibmctY29udGVudCIsMCksc3QoKSgpKSwyJmgm''@;'; + put 'put ''Jih1dCgxKSxUdCgibmdJZiIsIXYubGFiZWwmJnYuYWRkR3JpZCgpKSx1dCgxKSxGaSgiY2xyLWNvbnRyb2wtaW5saW5lIix2LmNscklubGluZSksVHQoIm5nQ2xhc3MiLHYuY29udHJvbENsYXNzKCkpLHV0KDMpLFR0KCJuZ0lmIix2LnNob3dIZWxwZXIpLHV0KDEpLFR0KCJuZ0lmIix2LnNo''@;'; + put 'put ''b3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpKX0sZGVwZW5kZW5jaWVzOltWbyxvdCxsYyxab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksVGE9KCgpPT57Y2xh''@;'; + put 'put ''c3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKEtoLFRmKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLFRzLEpyLFJdLEpyXX0pLGR9KSgpO2Z1''@;'; + put 'put ''bmN0aW9uIGphKGQpe3JldHVybiBudWxsIT09ZCYmKCJzdHJpbmciPT10eXBlb2YgZD9kLmxlbmd0aD49MDoiYm9vbGVhbiI9PXR5cGVvZiBkJiZkKX1sZXQgZ2E9KCgpPT57Y2xhc3MgZHtnZXQgc3Bpbm5lckNsYXNzKCl7cmV0dXJuITB9Z2V0IGlubGluZUNsYXNzKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''X2lubGluZX1zZXQgY2xySW5saW5lKGgpe3RoaXMuX2lubGluZT1qYShoKX1nZXQgaW52ZXJzZUNsYXNzKCl7cmV0dXJuIHRoaXMuX2ludmVyc2V9c2V0IGNsckludmVyc2UoaCl7dGhpcy5faW52ZXJzZT1qYShoKX1nZXQgc21hbGxDbGFzcygpe3JldHVybiB0aGlzLl9zbWFsbH1zZXQgY2xy''@;'; + put 'put ''U21hbGwoaCl7dGhpcy5fc21hbGw9amEoaCl9Z2V0IG1lZGl1bUNsYXNzKCl7cmV0dXJuIXRoaXMuX3NtYWxsJiZ0aGlzLl9tZWRpdW19c2V0IGNsck1lZGl1bShoKXt0aGlzLl9tZWRpdW09amEoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxk''@;'; + put 'put ''Llx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItc3Bpbm5lciJdXSxob3N0VmFyczoxMSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJih6aSgiYXJpYS1idXN5IiwhMCksRmkoInNwaW5uZXIiLHYuc3Bpbm5lckNsYXNzKSgic3Bpbm5lci1pbmxpbmUiLHYuaW5s''@;'; + put 'put ''aW5lQ2xhc3MpKCJzcGlubmVyLWludmVyc2UiLHYuaW52ZXJzZUNsYXNzKSgic3Bpbm5lci1zbSIsdi5zbWFsbENsYXNzKSgic3Bpbm5lci1tZCIsdi5tZWRpdW1DbGFzcykpfSxpbnB1dHM6e2NscklubGluZToiY2xySW5saW5lIixjbHJJbnZlcnNlOiJjbHJJbnZlcnNlIixjbHJTbWFsbDoi''@;'; + put 'put ''Y2xyU21hbGwiLGNsck1lZGl1bToiY2xyTWVkaXVtIn0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLERsPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1''@;'; + put 'put ''MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV1dfSksZH0pKCksb3M9MDtjb25zdCBvbD1uZXcgemUoIklGX0FDVElWRV9JRCIpLHhhPXtwcm92aWRlOm9sLHVzZUZhY3Rvcnk6''@;'; + put 'put ''ZnVuY3Rpb24gTDAoKXtyZXR1cm4rK29zfX07bGV0IHoyPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9jdXJyZW50Q2hhbmdlPW5ldyAkZX1nZXQgY3VycmVudENoYW5nZSgpe3JldHVybiB0aGlzLl9jdXJyZW50Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpfXNldCBjdXJyZW50KGgp''@;'; + put 'put ''e3RoaXMuX2N1cnJlbnQhPT1oJiYodGhpcy5fY3VycmVudD1oLHRoaXMuX2N1cnJlbnRDaGFuZ2UubmV4dChoKSl9Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1B''@;'; + put 'put ''aSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCkscjE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLmlmQWN0aXZlU2VydmljZT1oLHRoaXMuaWQ9dix0aGlzLnRlbXBsYXRlPXksdGhpcy5jb250YWluZXI9Qyx0aGlzLndhc0FjdGl2ZT0hMSx0aGlz''@;'; + put 'put ''LmFjdGl2ZUNoYW5nZT1uZXcgYXIoITEpLHRoaXMuY2hlY2tBbmRVcGRhdGVWaWV3KGguY3VycmVudCksdGhpcy5zdWJzY3JpcHRpb249dGhpcy5pZkFjdGl2ZVNlcnZpY2UuY3VycmVudENoYW5nZS5zdWJzY3JpYmUoST0+e3RoaXMuY2hlY2tBbmRVcGRhdGVWaWV3KEkpfSl9Y2hlY2tBbmRV''@;'; + put 'put ''cGRhdGVWaWV3KGgpe2NvbnN0IHY9aD09PXRoaXMuaWQ7diE9PXRoaXMud2FzQWN0aXZlJiYodGhpcy51cGRhdGVWaWV3KHYpLHRoaXMuYWN0aXZlQ2hhbmdlLmVtaXQodiksdGhpcy53YXNBY3RpdmU9dil9c2V0IGFjdGl2ZShoKXtoJiYodGhpcy5pZkFjdGl2ZVNlcnZpY2UuY3VycmVudD10''@;'; + put 'put ''aGlzLmlkKX1nZXQgYWN0aXZlKCl7cmV0dXJuIHRoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ9PT10aGlzLmlkfXVwZGF0ZVZpZXcoaCl7aD90aGlzLmNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk6dGhpcy5jb250YWluZXIuY2xlYXIoKX1uZ09uRGVzdHJv''@;'; + put 'put ''eSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KHoyKSxYdChvbCksWHQocXIpLFh0KFVpKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNscklmQWN0aXZl''@;'; + put 'put ''IiwiIl1dLGlucHV0czp7YWN0aXZlOlsiY2xySWZBY3RpdmUiLCJhY3RpdmUiXX0sb3V0cHV0czp7YWN0aXZlQ2hhbmdlOiJjbHJJZkFjdGl2ZUNoYW5nZSJ9fSksZH0pKCksRmY9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMudGVtcGxhdGU9aCx0aGlzLmNvbnRh''@;'; + put 'put ''aW5lcj12LHRoaXMuZWw9eSx0aGlzLnJlbmRlcmVyPUMsdGhpcy5leHBhbmQ9SSx0aGlzLl9leHBhbmRlZD0hMSx0aGlzLmV4cGFuZGVkQ2hhbmdlPW5ldyBhcighMCksdGhpcy5fc3Vic2NyaXB0aW9ucz1bXSx0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goSS5leHBhbmRDaGFuZ2Uuc3Vic2Ny''@;'; + put 'put ''aWJlKCgpPT57dGhpcy51cGRhdGVWaWV3KCksdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuZXhwYW5kLmV4cGFuZGVkKX0pKX1nZXQgZXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5fZXhwYW5kZWR9c2V0IGV4cGFuZGVkKGgpeyJib29sZWFuIj09dHlwZW9mIGgmJih0aGlzLmV4cGFuZC5l''@;'; + put 'put ''eHBhbmRlZD1oLHRoaXMuX2V4cGFuZGVkPWgpfXVwZGF0ZVZpZXcoKXtpZighdGhpcy5leHBhbmQuZXhwYW5kZWR8fDA9PT10aGlzLmNvbnRhaW5lci5sZW5ndGgpaWYodGhpcy50ZW1wbGF0ZSl0aGlzLmV4cGFuZC5leHBhbmRlZD90aGlzLmNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXco''@;'; + put 'put ''dGhpcy50ZW1wbGF0ZSk6dGhpcy5jb250YWluZXIuY2xlYXIoKTtlbHNlIHRyeXt0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiZGlzcGxheSIsdGhpcy5leHBhbmQuZXhwYW5kZWQ/bnVsbDoibm9uZSIpfWNhdGNoKGgpe319bmdPbkluaXQoKXt0aGlzLmV4''@;'; + put 'put ''cGFuZC5leHBhbmRhYmxlKyssdGhpcy51cGRhdGVWaWV3KCl9bmdPbkRlc3Ryb3koKXt0aGlzLmV4cGFuZC5leHBhbmRhYmxlLS0sdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3''@;'; + put 'put ''KGh8fGQpKFh0KHFyLDgpLFh0KFVpKSxYdChibyksWHQoR2EpLFh0KG4xKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNscklmRXhwYW5kZWQiLCIiXV0saW5wdXRzOntleHBhbmRlZDpbImNscklmRXhwYW5kZWQiLCJleHBhbmRlZCJdfSxvdXRwdXRzOntleHBh''@;'; + put 'put ''bmRlZENoYW5nZToiY2xySWZFeHBhbmRlZENoYW5nZSJ9fSksZH0pKCksWmE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy50b2dnbGVTZXJ2aWNlPWgsdGhpcy50ZW1wbGF0ZT12LHRoaXMuY29udGFpbmVyPXksdGhpcy5vcGVuQ2hhbmdlPW5ldyBhcighMSksdGhpcy5z''@;'; + put 'put ''dWJzY3JpcHRpb249dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKEM9Pnt0aGlzLnVwZGF0ZVZpZXcoQyksdGhpcy5vcGVuQ2hhbmdlLmVtaXQoQyl9KX1zZXQgb3BlbihoKXt0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj1ofWdldCBvcGVuKCl7cmV0dXJuIHRoaXMudG9n''@;'; + put 'put ''Z2xlU2VydmljZS5vcGVufXVwZGF0ZVZpZXcoaCl7aD90aGlzLmNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk6dGhpcy5jb250YWluZXIuY2xlYXIoKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fXJldHVybiBkLlx1MDI3''@;'; + put 'put ''NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KHpzKSxYdChxciksWHQoVWkpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xySWZPcGVuIiwiIl1dLGlucHV0czp7b3BlbjpbImNscklmT3BlbiIsIm9wZW4iXX0sb3V0cHV0czp7b3BlbkNoYW5n''@;'; + put 'put ''ZToiY2xySWZPcGVuQ2hhbmdlIn19KSxkfSkoKSxxYT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmFdXX0pLGR9KSgpO3ZhciB2''@;'; + put 'put ''MT0oKCk9PihmdW5jdGlvbihkKXtkLlZFUlRJQ0FMPSJ2ZXJ0aWNhbCIsZC5IT1JJWk9OVEFMPSJob3Jpem9udGFsIixkLkJPVEg9ImJvdGgifSh2MXx8KHYxPXt9KSksdjEpKSgpO2xldCBicz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5lbGVtZW50UmVmPWgsdGhpcy5w''@;'; + put 'put ''bGF0Zm9ybUlkPXZ9Z2V0IG5hdGl2ZUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR9Zm9jdXMoKXtTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24o''@;'; + put 'put ''aCl7cmV0dXJuIG5ldyhofHxkKShYdChibyksWHQoRDIpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyS2V5Rm9jdXNJdGVtIiwiIl1dfSksZH0pKCksRXA9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmVsZW1lbnRSZWY9aCx0aGlzLmRpcmVj''@;'; + put 'put ''dGlvbj12MS5WRVJUSUNBTCx0aGlzLmZvY3VzT25Mb2FkPSExLHRoaXMuZm9jdXNDaGFuZ2U9bmV3IGFyLHRoaXMuX2N1cnJlbnQ9MCx0aGlzLnN1YnNjcmlwdGlvbnM9W119c2V0IGZvY3VzYWJsZUl0ZW1zKGgpe0FycmF5LmlzQXJyYXkoaCkmJmgubGVuZ3RoJiYodGhpcy5fZm9jdXNhYmxl''@;'; + put 'put ''SXRlbXM9aCx0aGlzLmluaXRpYWxpemVGb2N1cygpKX1nZXQgZm9jdXNhYmxlSXRlbXMoKXtyZXR1cm4gdGhpcy5fZm9jdXNhYmxlSXRlbXM/dGhpcy5fZm9jdXNhYmxlSXRlbXM6dGhpcy5jbHJLZXlGb2N1c0l0ZW1zP3RoaXMuY2xyS2V5Rm9jdXNJdGVtcy50b0FycmF5KCk6W119Z2V0IG5h''@;'; + put 'put ''dGl2ZUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnR9Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH1zZXQgY3VycmVudChoKXt0aGlzLl9jdXJyZW50IT09aCYmKHRoaXMuX2N1cnJlbnQ9aCl9Z2V0IGN1cnJlbnRJdGVtKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuZm9jdXNhYmxlSXRlbXNbdGhpcy5fY3VycmVudF19Z2V0IGN1cnJlbnRJdGVtRWxlbWVudCgpe3JldHVybiB0aGlzLmN1cnJlbnRJdGVtLm5hdGl2ZUVsZW1lbnQ/dGhpcy5jdXJyZW50SXRlbS5uYXRpdmVFbGVtZW50OnRoaXMuY3VycmVudEl0ZW19Zm9jdXNDdXJyZW50KCl7dGhpcy5j''@;'; + put 'put ''dXJyZW50SXRlbS5mb2N1cygpLHRoaXMuZm9jdXNDaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KX1tb3ZlVG8oaCl7dGhpcy5wb3NpdGlvbkluUmFuZ2UoaCkmJih0aGlzLmN1cnJlbnQ9aCx0aGlzLmZvY3VzQ3VycmVudCgpKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnN1YnNjcmlwdGlv''@;'; + put 'put ''bnMucHVzaCh0aGlzLmxpc3RlbkZvckl0ZW1VcGRhdGVzKCkpLHRoaXMuaW5pdGlhbGl6ZUZvY3VzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWhhbmRsZUtleWJvYXJkRXZlbnQoaCl7aWYodGhpcy5jdXJyZW50SXRlbUVs''@;'; + put 'put ''ZW1lbnQhPT1oLnRhcmdldCl7Y29uc3Qgdj10aGlzLmdldEl0ZW1Qb3NpdGlvbihoLnRhcmdldCk7dGhpcy5wb3NpdGlvbkluUmFuZ2UodikmJih0aGlzLmN1cnJlbnQ9dil9dGhpcy5wcmV2S2V5UHJlc3NlZChoKSYmdGhpcy5jdXJyZW50Rm9jdXNJc05vdEZpcnN0SXRlbSgpP3RoaXMubW92''@;'; + put 'put ''ZVRvKHRoaXMuY3VycmVudC0xKTp0aGlzLm5leHRLZXlQcmVzc2VkKGgpJiZ0aGlzLmN1cnJlbnRGb2N1c0lzTm90TGFzdEl0ZW0oKT90aGlzLm1vdmVUbyh0aGlzLmN1cnJlbnQrMSk6aC5jb2RlPT09TTAuSG9tZT90aGlzLm1vdmVUbygwKTpoLmNvZGU9PT1NMC5FbmQmJnRoaXMubW92ZVRv''@;'; + put 'put ''KHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoLTEpLE1wKGgpfXNldENsaWNrZWRJdGVtQ3VycmVudChoKXtjb25zdCB2PXRoaXMuZ2V0SXRlbVBvc2l0aW9uKGgudGFyZ2V0KTt2Pi0xJiZ0aGlzLm1vdmVUbyh2KX1nZXRJdGVtUG9zaXRpb24oaCl7cmV0dXJuIHRoaXMuX2ZvY3VzYWJsZUl0''@;'; + put 'put ''ZW1zP3RoaXMuZm9jdXNhYmxlSXRlbXMuaW5kZXhPZihoKTp0aGlzLmZvY3VzYWJsZUl0ZW1zLm1hcCh2PT52Lm5hdGl2ZUVsZW1lbnQpLmluZGV4T2YoaCl9cG9zaXRpb25JblJhbmdlKGgpe3JldHVybiBoPj0wJiZoPHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RofWN1cnJlbnRGb2N1c0lz''@;'; + put 'put ''Tm90Rmlyc3RJdGVtKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnQtMT49MH1jdXJyZW50Rm9jdXNJc05vdExhc3RJdGVtKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnQrMTx0aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aH1pbml0aWFsaXplRm9jdXMoKXt0aGlzLmZvY3VzYWJsZUl0ZW1zJiZ0aGlzLmZv''@;'; + put 'put ''Y3VzYWJsZUl0ZW1zLmxlbmd0aCYmKHRoaXMuX2N1cnJlbnQ+PXRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoJiYodGhpcy5fY3VycmVudD10aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aC0xKSx0aGlzLmZvY3VzT25Mb2FkJiYodGhpcy5jdXJyZW50SXRlbS5mb2N1cygpLHRoaXMuZm9jdXND''@;'; + put 'put ''aGFuZ2UubmV4dCgpKSl9bGlzdGVuRm9ySXRlbVVwZGF0ZXMoKXtyZXR1cm4gdGhpcy5jbHJLZXlGb2N1c0l0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5pbml0aWFsaXplRm9jdXMoKX0pfW5leHRLZXlQcmVzc2VkKGgpe2NvbnN0IHY9aVMoaC5rZXkpO3N3aXRjaCh0aGlzLmRp''@;'; + put 'put ''cmVjdGlvbil7Y2FzZSB2MS5WRVJUSUNBTDpyZXR1cm4gdj09PU0wLkFycm93RG93bjtjYXNlIHYxLkhPUklaT05UQUw6cmV0dXJuIHY9PT1NMC5BcnJvd1JpZ2h0O2Nhc2UgdjEuQk9USDpyZXR1cm4gdj09PU0wLkFycm93RG93bnx8dj09PU0wLkFycm93UmlnaHQ7ZGVmYXVsdDpyZXR1cm4h''@;'; + put 'put ''MX19cHJldktleVByZXNzZWQoaCl7Y29uc3Qgdj1pUyhoLmtleSk7c3dpdGNoKHRoaXMuZGlyZWN0aW9uKXtjYXNlIHYxLlZFUlRJQ0FMOnJldHVybiB2PT09TTAuQXJyb3dVcDtjYXNlIHYxLkhPUklaT05UQUw6cmV0dXJuIHY9PT1NMC5BcnJvd0xlZnQ7Y2FzZSB2MS5CT1RIOnJldHVybiB2''@;'; + put 'put ''PT09TTAuQXJyb3dVcHx8dj09PU0wLkFycm93TGVmdDtkZWZhdWx0OnJldHVybiExfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoYm8pKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyS2V5Rm9jdXMiLCIiXV0s''@;'; + put 'put ''Y29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxicyw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LmNscktleUZvY3VzSXRlbXM9Qyl9fSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJrZXlkb3duIixmdW5jdGlvbihDKXtyZXR1cm4gdi5o''@;'; + put 'put ''YW5kbGVLZXlib2FyZEV2ZW50KEMpfSkoImNsaWNrIixmdW5jdGlvbihDKXtyZXR1cm4gdi5zZXRDbGlja2VkSXRlbUN1cnJlbnQoQyl9KX0saW5wdXRzOntkaXJlY3Rpb246WyJjbHJEaXJlY3Rpb24iLCJkaXJlY3Rpb24iXSxmb2N1c09uTG9hZDpbImNsckZvY3VzT25Mb2FkIiwiZm9jdXNP''@;'; + put 'put ''bkxvYWQiXSxmb2N1c2FibGVJdGVtczpbImNscktleUZvY3VzIiwiZm9jdXNhYmxlSXRlbXMiXX0sb3V0cHV0czp7Zm9jdXNDaGFuZ2U6ImNsckZvY3VzQ2hhbmdlIn0sYXR0cnM6T3VlLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYp''@;'; + put 'put ''ezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxjdz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmFd''@;'; + put 'put ''XX0pLGR9KSgpO2NvbnN0IHRmPW5ldyB6ZSgiUE9QT1ZFUl9IT1NUX0FOQ0hPUiIpO2xldCBhUz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9''@;'; + put 'put ''KSxkfSkoKTt2YXIgcTE9KCgpPT4oZnVuY3Rpb24oZCl7ZC5VUD0idXAiLGQuRE9XTj0iZG93biIsZC5MRUZUPSJsZWZ0IixkLlJJR0hUPSJyaWdodCJ9KHExfHwocTE9e30pKSxxMSkpKCk7bGV0IHhwPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5yZW5kZXJlcj1oLHRoaXMu''@;'; + put 'put ''X3VubGlzdGVuRnVuY3M9W119Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH1yZXNldChoKXt0aGlzLl9jdXJyZW50PWh9bGlzdGVuVG9BcnJvd0tleXMoaCl7dGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGgsImtleWRvd24uYXJyb3d1cCIs''@;'; + put 'put ''KCk9PiF0aGlzLm1vdmUocTEuVVApKSksdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGgsImtleWRvd24uYXJyb3dkb3duIiwoKT0+IXRoaXMubW92ZShxMS5ET1dOKSkpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbiho''@;'; + put 'put ''LCJrZXlkb3duLmFycm93bGVmdCIsKCk9PiF0aGlzLm1vdmUocTEuTEVGVCkpKSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi5hcnJvd3JpZ2h0IiwoKT0+IXRoaXMubW92ZShxMS5SSUdIVCkpKX1yZWdpc3RlckNvbnRhaW5lcihoKXt0''@;'; + put 'put ''aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShoLCJ0YWJpbmRleCIsIjAiKSx0aGlzLmxpc3RlblRvQXJyb3dLZXlzKGgpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihoLCJrZXlkb3duLnNwYWNlIiwoKT0+IXRoaXMuYWN0aXZhdGVDdXJyZW50KCkpKSx0''@;'; + put 'put ''aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi5lbnRlciIsKCk9PiF0aGlzLmFjdGl2YXRlQ3VycmVudCgpKSl9bW92ZVRvKGgpe3ZvaWQgMCE9PWgmJih0aGlzLmN1cnJlbnQmJnRoaXMuY3VycmVudC5ibHVyKCksaC5mb2N1cygpLHRoaXMu''@;'; + put 'put ''X2N1cnJlbnQ9aCl9bW92ZShoKXtsZXQgdj0hMTtpZih0aGlzLmN1cnJlbnQpe2NvbnN0IHk9dGhpcy5jdXJyZW50W2hdO3kmJihfWCh5KT95OmFhKHkpKS5zdWJzY3JpYmUoST0+e0kmJih0aGlzLm1vdmVUbyhJKSx2PSEwKX0pfXJldHVybiB2fWFjdGl2YXRlQ3VycmVudCgpe3JldHVybiEo''@;'; + put 'put ''IXRoaXMuY3VycmVudHx8IXRoaXMuY3VycmVudC5hY3RpdmF0ZXx8KHRoaXMuY3VycmVudC5hY3RpdmF0ZSgpLDApKX1kZXRhY2hMaXN0ZW5lcnMoKXt0aGlzLl91bmxpc3RlbkZ1bmNzLmZvckVhY2goaD0+aCgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXco''@;'; + put 'put ''aHx8ZCkoQ2koR2EpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTtjb25zdCBnOD17cHJvdmlkZTp4cCx1c2VGYWN0b3J5OmZ1bmN0aW9uIHhMKGQsZyl7cmV0dXJuIGR8fG5ldyB4cChnKX0sZGVwczpbW25ldyBtZixuZXcgTDQseHBdLEdh''@;'; + put 'put ''XX07Y2xhc3Mgb3F7fWZ1bmN0aW9uIExBZShkKXtyZXR1cm5bT2MsZCx7cHJvdmlkZTpvcSx1c2VFeGlzdGluZzpkfV19Y2xhc3MgVkxlIGV4dGVuZHMgY2xhc3MgTkxle2NvbnRhaW5zSXRlbShnKXtyZXR1cm4gdGhpcy5tb2RlbD09PWd9c2VsZWN0KGcpe3RoaXMubW9kZWw9Z311bnNlbGVj''@;'; + put 'put ''dChnKXt0aGlzLmNvbnRhaW5zSXRlbShnKSYmKHRoaXMubW9kZWw9bnVsbCl9aXNFbXB0eSgpe3JldHVybiF0aGlzLm1vZGVsfXBvcCgpe2NvbnN0IGc9dGhpcy5tb2RlbDtyZXR1cm4gdGhpcy5tb2RlbD1udWxsLGd9dG9TdHJpbmcoZyl7cmV0dXJuIHRoaXMubW9kZWw/ZyYmdGhpcy5tb2Rl''@;'; + put 'put ''bFtnXT90aGlzLm1vZGVsW2ddOnRoaXMubW9kZWwudG9TdHJpbmcoKToiIn19e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9mb2N1c0NoYW5nZWQ9bmV3IGNzKG51bGwpfWdldCBmb2N1c0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5fZm9jdXNDaGFuZ2VkLmFzT2JzZXJ2''@;'; + put 'put ''YWJsZSgpfXNlbGVjdChnKXt0aGlzLm1vZGVsIT09ZyYmKHRoaXMubW9kZWw9Zyx0aGlzLl9mb2N1c0NoYW5nZWQubmV4dChnKSl9fWxldCBqTGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGluZz0hMSx0aGlzLl9jdXJyZW50SW5wdXQ9IiIsdGhpcy5faW5wdXRDaGFu''@;'; + put 'put ''Z2VkPW5ldyBjcygiIiksdGhpcy5pbnB1dENoYW5nZWQ9dGhpcy5faW5wdXRDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQ9bmV3IE1rKDEpfWdldCBjdXJyZW50SW5wdXQoKXtyZXR1cm4gdGhpcy5fY3VycmVudElucHV0fXNldCBjdXJyZW50SW5wdXQoaCl7''@;'; + put 'put ''IiI9PT1oJiYhdGhpcy5tdWx0aXNlbGVjdGFibGUmJnRoaXMuc2V0U2VsZWN0aW9uVmFsdWUobnVsbCksdGhpcy5fY3VycmVudElucHV0PWgsdGhpcy5faW5wdXRDaGFuZ2VkLm5leHQoaCl9Z2V0IHNlbGVjdGlvbkNoYW5nZWQoKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5hc09i''@;'; + put 'put ''c2VydmFibGUoKX1zZWxlY3QoaCl7bnVsbD09aHx8dGhpcy5zZWxlY3Rpb25Nb2RlbC5jb250YWluc0l0ZW0oaCl8fCh0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdChoKSx0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLm5leHQodGhpcy5zZWxlY3Rpb25Nb2RlbCkpfXRvZ2dsZShoKXtudWxsIT1o''@;'; + put 'put ''JiYodGhpcy5zZWxlY3Rpb25Nb2RlbC5jb250YWluc0l0ZW0oaCk/dGhpcy5zZWxlY3Rpb25Nb2RlbC51bnNlbGVjdChoKTp0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdChoKSx0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLm5leHQodGhpcy5zZWxlY3Rpb25Nb2RlbCkpfXVuc2VsZWN0KGgpe251''@;'; + put 'put ''bGw9PWh8fCF0aGlzLnNlbGVjdGlvbk1vZGVsLmNvbnRhaW5zSXRlbShoKXx8KHRoaXMuc2VsZWN0aW9uTW9kZWwudW5zZWxlY3QoaCksdGhpcy5fc2VsZWN0aW9uQ2hhbmdlZC5uZXh0KHRoaXMuc2VsZWN0aW9uTW9kZWwpKX1nZXQgbXVsdGlzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuc2Vs''@;'; + put 'put ''ZWN0aW9uTW9kZWwgaW5zdGFuY2VvZiBjbGFzcyBITGV7Y29udGFpbnNJdGVtKGcpe3JldHVybiEhdGhpcy5tb2RlbCYmdGhpcy5tb2RlbC5pbmNsdWRlcyhnKX1zZWxlY3QoZyl7dGhpcy5hZGRJdGVtKGcpfXVuc2VsZWN0KGcpe3RoaXMucmVtb3ZlSXRlbShnKX1pc0VtcHR5KCl7cmV0dXJu''@;'; + put 'put ''ISh0aGlzLm1vZGVsJiZ0aGlzLm1vZGVsLmxlbmd0aD4wKX1wb3AoKXtsZXQgZztyZXR1cm4gdGhpcy5tb2RlbCYmdGhpcy5tb2RlbC5sZW5ndGg+MCYmKGc9dGhpcy5tb2RlbFt0aGlzLm1vZGVsLmxlbmd0aC0xXSx0aGlzLnJlbW92ZUl0ZW0oZykpLGd9dG9TdHJpbmcoZyxoPS0xKXtsZXQg''@;'; + put 'put ''dj0iIjtyZXR1cm4gdGhpcy5tb2RlbCYmKGg+LTE/dGhpcy5tb2RlbFtoXSYmKHYrPWcmJnRoaXMubW9kZWxbaF1bZ10/dGhpcy5tb2RlbFtoXVtnXTp0aGlzLm1vZGVsW2hdLnRvU3RyaW5nKCkpOnRoaXMubW9kZWwuZm9yRWFjaCh5PT57dis9ZyYmeVtnXT95W2ddOnkudG9TdHJpbmcoKSx2''@;'; + put 'put ''Kz0iICJ9KSksdi50cmltKCl9YWRkSXRlbShnKXt0aGlzLmNvbnRhaW5zSXRlbShnKXx8KHRoaXMubW9kZWw9dGhpcy5tb2RlbHx8W10sdGhpcy5tb2RlbC5wdXNoKGcpKX1yZW1vdmVJdGVtKGcpe2lmKG51bGw9PXRoaXMubW9kZWwpcmV0dXJuO2NvbnN0IGg9dGhpcy5tb2RlbC5pbmRleE9m''@;'; + put 'put ''KGcpO2g+LTEmJnRoaXMubW9kZWwuc3BsaWNlKGgsMSksMD09PXRoaXMubW9kZWwubGVuZ3RoJiYodGhpcy5tb2RlbD1udWxsKX19fXNldFNlbGVjdGlvblZhbHVlKGgpeyF0aGlzLnNlbGVjdGlvbk1vZGVsfHx0aGlzLnNlbGVjdGlvbk1vZGVsLm1vZGVsPT09aHx8IXRoaXMuc2VsZWN0aW9u''@;'; + put 'put ''TW9kZWwubW9kZWwmJiFofHwodGhpcy5zZWxlY3Rpb25Nb2RlbC5tb2RlbD1oLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQubmV4dCh0aGlzLnNlbGVjdGlvbk1vZGVsKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rv''@;'; + put 'put ''a2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO0xBZSgoKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5pZD1oLHRoaXMudG9nZ2xlU2VydmljZT15LHRoaXMuc2VsZWN0aW9uU2VydmljZT1DLHRoaXMucGxhdGZvcm1JZD1JLHRoaXMucHNldWRvRm9jdXM9''@;'; + put 'put ''bmV3IFZMZSx0aGlzLm9wdGlvbkRhdGE9W10sdGhpcy5oYW5kbGVGb2N1c1N1YnNjcmlwdGlvbigpLHRoaXMucmVuZGVyZXI9di5jcmVhdGVSZW5kZXJlcihudWxsLG51bGwpfWhhbmRsZUZvY3VzU3Vic2NyaXB0aW9uKCl7dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJl''@;'; + put 'put ''KGg9PntofHwodGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbD1udWxsKX0pfWdldCB0cmlnZ2VyKCl7cmV0dXJuIHRoaXMuX3RyaWdnZXJ9c2V0IHRyaWdnZXIoaCl7dGhpcy5fdHJpZ2dlcj1oLHRoaXMuYWRkRm9jdXNPbkJsdXJMaXN0ZW5lcihoKX1nZXQgbGlzdGJveCgpe3JldHVybiB0aGlzLl9s''@;'; + put 'put ''aXN0Ym94fXNldCBsaXN0Ym94KGgpe3RoaXMuX2xpc3Rib3g9aCx0aGlzLmFkZEZvY3VzT25CbHVyTGlzdGVuZXIoaCl9Z2V0IHRleHRJbnB1dCgpe3JldHVybiB0aGlzLl90ZXh0SW5wdXR9c2V0IHRleHRJbnB1dChoKXt0aGlzLl90ZXh0SW5wdXQ9aCx0aGlzLnJlbmRlcmVyLmxpc3Rlbiho''@;'; + put 'put ''LCJrZXlkb3duIix2PT4hdGhpcy5oYW5kbGVUZXh0SW5wdXQodikpLHRoaXMuYWRkRm9jdXNPbkJsdXJMaXN0ZW5lcihoKX1tb3ZlRm9jdXNUbyhoKXtsZXQgdj10aGlzLm9wdGlvbkRhdGEuZmluZEluZGV4KHk9PnkuZXF1YWxzKHRoaXMucHNldWRvRm9jdXMubW9kZWwpKTtoPT09cTEuVVA/''@;'; + put 'put ''LTE9PT12fHwwPT09dj92PXRoaXMub3B0aW9uRGF0YS5sZW5ndGgtMTp2LS06aD09PXExLkRPV04mJigtMT09PXZ8fHY9PT10aGlzLm9wdGlvbkRhdGEubGVuZ3RoLTE/dj0wOnYrKyksdGhpcy5wc2V1ZG9Gb2N1cy5zZWxlY3QodGhpcy5vcHRpb25EYXRhW3ZdKSx0aGlzLnBzZXVkb0ZvY3Vz''@;'; + put 'put ''Lm1vZGVsJiZ0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsLmVsJiZ0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsLmVsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoiY2VudGVyIixpbmxpbmU6Im5lYXJlc3QifSl9b3BlbkFuZE1vdmVUbyhoKXt0aGlzLnRvZ2dsZVNlcnZpY2Uu''@;'; + put 'put ''b3Blbj90aGlzLm1vdmVGb2N1c1RvKGgpOih0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5waXBlKEg1KDEpKS5zdWJzY3JpYmUodj0+e3YmJnRoaXMubW92ZUZvY3VzVG8oaCl9KSx0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMCl9aGFuZGxlVGV4dElucHV0KGgpe2xldCB2PSExO2Nv''@;'; + put 'put ''bnN0IHk9aVMoaC5rZXkpO2lmKGgpc3dpdGNoKHkpe2Nhc2UgTTAuRW50ZXI6dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4mJnRoaXMucHNldWRvRm9jdXMubW9kZWwmJih0aGlzLnNlbGVjdGlvblNlcnZpY2UubXVsdGlzZWxlY3RhYmxlP3RoaXMuc2VsZWN0aW9uU2VydmljZS50b2dnbGUodGhp''@;'; + put 'put ''cy5wc2V1ZG9Gb2N1cy5tb2RlbC52YWx1ZSk6dGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdCh0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsLnZhbHVlKSx2PSEwKTticmVhaztjYXNlIE0wLlNwYWNlOnRoaXMudG9nZ2xlU2VydmljZS5vcGVufHwodGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITAs''@;'; + put 'put ''dj0hMCk7YnJlYWs7Y2FzZSBNMC5BcnJvd1VwOnRoaXMucHJldmVudFZpZXdwb3J0U2Nyb2xsaW5nKGgpLHRoaXMub3BlbkFuZE1vdmVUbyhxMS5VUCksdj0hMDticmVhaztjYXNlIE0wLkFycm93RG93bjp0aGlzLnByZXZlbnRWaWV3cG9ydFNjcm9sbGluZyhoKSx0aGlzLm9wZW5BbmRNb3Zl''@;'; + put 'put ''VG8ocTEuRE9XTiksdj0hMDticmVhaztkZWZhdWx0Omgua2V5IT09TTAuVGFiJiYoIXRoaXMuc2VsZWN0aW9uU2VydmljZS5tdWx0aXNlbGVjdGFibGV8fGgua2V5IT09TTAuQmFja3NwYWNlKSYmaC5rZXkhPT1NMC5Fc2NhcGUmJiF0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiYmKHRoaXMudG9n''@;'; + put 'put ''Z2xlU2VydmljZS5vcGVuPSEwKX1yZXR1cm4gdn1wcmV2ZW50Vmlld3BvcnRTY3JvbGxpbmcoaCl7aC5wcmV2ZW50RGVmYXVsdCgpLGguc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9Zm9jdXNJbnB1dCgpe3RoaXMudGV4dElucHV0JiZTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLnRleHRJ''@;'; + put 'put ''bnB1dC5mb2N1cygpfWFkZEZvY3VzT25CbHVyTGlzdGVuZXIoaCl7U2wodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy5yZW5kZXJlci5saXN0ZW4oaCwiYmx1ciIsdj0+e3RoaXMuZm9jdXNPdXRPZkNvbXBvbmVudCh2KSYmKHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExLHRoaXMuY29tcG9uZW50''@;'; + put 'put ''Q2RSZWYmJnRoaXMuY29tcG9uZW50Q2RSZWYuZGV0ZWN0Q2hhbmdlcygpKX0pfWZvY3VzT3V0T2ZDb21wb25lbnQoaCl7Y29uc3Qgdj1oLnJlbGF0ZWRUYXJnZXR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuISh0aGlzLnRleHRJbnB1dC5jb250YWlucyh2KXx8dGhpcy50cmlnZ2Vy''@;'; + put 'put ''LmNvbnRhaW5zKHYpfHx0aGlzLmxpc3Rib3guY29udGFpbnModikpfWZvY3VzRmlyc3RBY3RpdmUoKXtpZih0aGlzLm9wdGlvbkRhdGEubGVuZ3RoPjApaWYodGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSl0aGlzLnBzZXVkb0ZvY3VzLnNlbGVjdCh0aGlz''@;'; + put 'put ''Lm9wdGlvbkRhdGFbMF0pO2Vsc2V7bGV0IGg7aD10aGlzLnNlbGVjdGlvblNlcnZpY2UubXVsdGlzZWxlY3RhYmxlP3RoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbFswXTp0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9kZWw7Y29uc3Qgdj10''@;'; + put 'put ''aGlzLm9wdGlvbkRhdGEuZmluZCh5PT55LnZhbHVlPT09aCk7dGhpcy5wc2V1ZG9Gb2N1cy5zZWxlY3Qodnx8dGhpcy5vcHRpb25EYXRhWzBdKX19YWRkT3B0aW9uVmFsdWVzKGgpe3RoaXMub3B0aW9uRGF0YT1ofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyho''@;'; + put 'put ''fHxkKShDaSh5MiksQ2koU2QpLENpKHpzKSxDaShqTGUpLENpKEQyKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCkpO2xldCBaTGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKEtoLFRmLEl5LENrKX19cmV0dXJu''@;'; + put 'put ''IGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLG5kLFRzLGN3LEpyLHFhLFJjLERsXSxKcixxYV19KSxkfSkoKSxPQWU9KCgpPT57Y2xhc3MgZCBleHRlbmRzIFp0e31y''@;'; + put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgZztyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuKGd8fChnPWZsKGQpKSkodnx8ZCl9fSgpLGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1pbnB1dC1jb250YWluZXIiXV0saG9zdFZhcnM6Nixob3N0QmluZGlu''@;'; + put 'put ''Z3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItZm9ybS1jb250cm9sIiwhMCkoImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLG51bGw9PXYuY29udHJvbD9udWxsOnYuY29udHJvbC5kaXNhYmxlZCkoImNsci1yb3ciLHYuYWRkR3JpZCgpKX0sZmVhdHVyZXM6W2hvKFtxZSxIZSxLLEV0''@;'; + put 'put ''XSksRG9dLG5nQ29udGVudFNlbGVjdG9yczpsTCxkZWNsczoxMCx2YXJzOjcsY29uc3RzOltbNCwibmdJZiJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiLDMsIm5nQ2xhc3MiXSxbMSwiY2xyLWlucHV0LXdyYXBwZXIiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIs''@;'; + put 'put ''ImV4Y2xhbWF0aW9uLWNpcmNsZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsic2hhcGUiLCJl''@;'; + put 'put ''eGNsYW1hdGlvbi1jaXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl0sWyJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdil7MSZoJiYoSzAoSHVlKSxOaSgwKSxybigxLHRzLDEsMCwibGFiZWwiLDApLGl0KDIsImRpdiIsMSkoMywiZGl2IiwyKSxOaSg0LDEpLHJuKDUscUssMSwwLCJjZHMtaWNvbiIsMykscm4oNixGdWUsMSwwLCJjZHMtaWNvbiIsNCksc3QoKSxybig3LGUkLDEsMCwibmctY29udGVu''@;'; + put 'put ''dCIsMCkscm4oOCx0JCwxLDAsIm5nLWNvbnRlbnQiLDApLHJuKDksYkFlLDEsMCwibmctY29udGVudCIsMCksc3QoKSksMiZoJiYodXQoMSksVHQoIm5nSWYiLCF2LmxhYmVsJiZ2LmFkZEdyaWQoKSksdXQoMSksVHQoIm5nQ2xhc3MiLHYuY29udHJvbENsYXNzKCkpLHV0KDMpLFR0KCJuZ0lm''@;'; + put 'put ''Iix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dIZWxwZXIpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpKX0sZGVwZW5kZW5jaWVzOltWbyxvdCxsYyxab10s''@;'; + put 'put ''ZW5jYXBzdWxhdGlvbjoyfSksZH0pKCkscDk9KCgpPT57Y2xhc3MgZCBleHRlbmRzIFNue2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7c3VwZXIoaCxPQWUsdix5LEMsSSksdGhpcy5pbmRleD0xfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChVaSks''@;'; + put 'put ''WHQoa3MpLFh0KERmLDEwKSxYdChHYSksWHQoYm8pKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xySW5wdXQiLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItaW5wdXQiLCEwKX0sZmVhdHVyZXM6W0RvXX0p''@;'; + put 'put ''LGR9KSgpLFJBZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7ZnMuYWRkSWNvbnMoS2gsVGYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsbmQs''@;'; + put 'put ''VHMsSnJdLEpyXX0pLGR9KSgpLENmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fZm9jdXNlZD1uZXcgY3MoITEpfWdldCBmb2N1c0NoYW5nZSgpe3JldHVybiB0aGlzLl9mb2N1c2VkLmFzT2JzZXJ2YWJsZSgpfXNldCBmb2N1c2VkKGgpe3RoaXMuX2ZvY3VzZWQubmV4dCho''@;'; + put 'put ''KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksekxlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhLaCxUZil9fXJldHVybiBk''@;'; + put 'put ''Llx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxSQWUsVHNdXX0pLGR9KSgpLEdMZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fcHJldmlvdXNGb2N1c1Ry''@;'; + put 'put ''YXBzPVtdfWdldCBjdXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9c2V0IGN1cnJlbnQoaCl7dGhpcy5fcHJldmlvdXNGb2N1c1RyYXBzLnB1c2godGhpcy5fY3VycmVudCksdGhpcy5fY3VycmVudD1ofWdldCBuYkZvY3VzVHJhcHBlcnMoKXtyZXR1cm4gdGhpcy5fcHJldmlvdXNGb2N1''@;'; + put 'put ''c1RyYXBzLmxlbmd0aH1hY3RpdmF0ZVByZXZpb3VzVHJhcHBlcigpe3RoaXMuX2N1cnJlbnQ9dGhpcy5fcHJldmlvdXNGb2N1c1RyYXBzLnBvcCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rv''@;'; + put 'put ''cnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKSxmdz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5lbD1oLHRoaXMuaW5qZWN0b3I9dix0aGlzLmZvY3VzVHJhcHNUcmFja2VyPXksdGhpcy5yZW5kZXJlcj1DLHRoaXMucGxhdGZvcm1JZD1J''@;'; + put 'put ''LHRoaXMubG9jYWxGb2N1c0VzY2FwZWQ9ITEsdGhpcy5fY29uZmlnPXtzdHJpY3Q6ITB9LHRoaXMuZG9jdW1lbnQ9dGhpcy5pbmplY3Rvci5nZXQocHMpLHRoaXMuZm9jdXNUcmFwc1RyYWNrZXIuY3VycmVudD10aGlzfXNldCBjb25maWcoaCl7dGhpcy5fY29uZmlnPU9iamVjdC5hc3NpZ24o''@;'; + put 'put ''dGhpcy5fY29uZmlnLCIiPT09aD97fTpoKX1vbkZvY3VzSW4oaCl7Y29uc3Qgdj10aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7dGhpcy5mb2N1c1RyYXBzVHJhY2tlci5jdXJyZW50IT09dGhpc3x8IVNsKHRoaXMucGxhdGZvcm1JZCl8fHRoaXMubG9jYWxGb2N1c0VzY2FwZWR8fHYuY29udGFpbnMo''@;'; + put 'put ''aC50YXJnZXQpfHwoaC50YXJnZXQ9PT10aGlzLnRvcFJlYm91bmRFbCYmdi5jb250YWlucyhoLnJlbGF0ZWRUYXJnZXQpPyh0aGlzLmZvY3VzTGFzdEZvY3VzYWJsZSgpLHRoaXMuZm9jdXNUcmFwRWxJZk91dHNpZGUoKSk6aC50YXJnZXQ9PT10aGlzLmJvdHRvbVJlYm91bmRFbCYmdi5jb250''@;'; + put 'put ''YWlucyhoLnJlbGF0ZWRUYXJnZXQpPyh0aGlzLmZvY3VzRmlyc3RGb2N1c2FibGUoKSx0aGlzLmZvY3VzVHJhcEVsSWZPdXRzaWRlKCkpOnRoaXMuX2NvbmZpZy5zdHJpY3Q/dGhpcy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk6dGhpcy5sb2NhbEZvY3VzRXNjYXBlZD0hMCl9Y3JlYXRlRm9j''@;'; + put 'put ''dXNhYmxlT2ZmU2NyZWVuRWwoKXtjb25zdCBoPXRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3JldHVybiB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShoLCJ0YWJpbmRleCIsIjAiKSx0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGgsIm9mZnNjcmVlbi1mb2N1cy1yZWJvdW5k''@;'; + put 'put ''ZXIiKSxofWFkZFJlYm91bmRFbHMoKXtpZihTbCh0aGlzLnBsYXRmb3JtSWQpKXt0aGlzLnRvcFJlYm91bmRFbD10aGlzLmNyZWF0ZUZvY3VzYWJsZU9mZlNjcmVlbkVsKCksdGhpcy5ib3R0b21SZWJvdW5kRWw9dGhpcy5jcmVhdGVGb2N1c2FibGVPZmZTY3JlZW5FbCgpO2NvbnN0IGg9dGhp''@;'; + put 'put ''cy5lbC5uYXRpdmVFbGVtZW50O3RoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKGgucGFyZW50RWxlbWVudCx0aGlzLnRvcFJlYm91bmRFbCxoKSxoLm5leHRTaWJsaW5nP3RoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKGgucGFyZW50Tm9kZSx0aGlzLmJvdHRvbVJlYm91bmRFbCxoLm5leHRT''@;'; + put 'put ''aWJsaW5nKTp0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGgucGFyZW50Tm9kZSx0aGlzLmJvdHRvbVJlYm91bmRFbCl9fXJlbW92ZVJlYm91bmRFbHMoKXtTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLnRvcFJlYm91bmRFbCYmdGhpcy5ib3R0b21SZWJvdW5kRWwmJih0aGlzLnBhcmVudEVs''@;'; + put 'put ''ZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy50b3BSZWJvdW5kRWwpLHRoaXMucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmJvdHRvbVJlYm91bmRFbCksZGVsZXRlIHRoaXMudG9wUmVib3VuZEVsLGRlbGV0ZSB0aGlzLmJvdHRvbVJlYm91bmRFbCl9c2V0UHJldmlvdXNGb2N1cygpe3Ro''@;'; + put 'put ''aXMucHJldmlvdXNBY3RpdmVFbGVtZW50JiZ0aGlzLnByZXZpb3VzQWN0aXZlRWxlbWVudC5mb2N1cyYmdGhpcy5wcmV2aW91c0FjdGl2ZUVsZW1lbnQuZm9jdXMoKX1uZ09uSW5pdCgpe1NsKHRoaXMucGxhdGZvcm1JZCkmJih0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5h''@;'; + put 'put ''dGl2ZUVsZW1lbnQsInRhYmluZGV4IiwiLTEiKSx0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSl9bmdBZnRlclZpZXdJbml0KCl7U2wodGhpcy5wbGF0Zm9ybUlkKSYmKHRoaXMucHJldmlvdXNBY3RpdmVFbGVtZW50PXRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCx0aGlzLnBhcmVu''@;'; + put 'put ''dEVsZW1lbnQ9dGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpLHRoaXMuYWRkUmVib3VuZEVscygpfWdldCBwb3RlbnRpYWxseUZvY3VzYWJsZUVscygpe3JldHVyblsuLi50aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2hyZWZdOm5vdChbdGFiaW5k''@;'; + put 'put ''ZXg9Ii0xIl0pLCBidXR0b246bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9Ii0xIl0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD0iLTEiXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD0iLTEiXSksIHRleHRhcmVhOm5vdChbZGlzYWJs''@;'; + put 'put ''ZWRdKTpub3QoW3RhYmluZGV4PSItMSJdKSwgW2NvbnRlbnRlZGl0YWJsZT0idHJ1ZSJdOm5vdChbdGFiaW5kZXg9Ii0xIl0pLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9Ii0xIl0pICcpXX1mb2N1c0ZpcnN0Rm9jdXNhYmxlKCl7Zm9yKGxldCBoPTA7aDx0aGlzLnBvdGVudGlhbGx5Rm9j''@;'; + put 'put ''dXNhYmxlRWxzLmxlbmd0aCYmKHRoaXMuZmlyc3RGb2N1c2FibGVFbD10aGlzLmZvY3VzRWxlbWVudCh0aGlzLnBvdGVudGlhbGx5Rm9jdXNhYmxlRWxzW2hdKSwhdGhpcy5maXJzdEZvY3VzYWJsZUVsKTtoKyspO31mb2N1c0xhc3RGb2N1c2FibGUoKXtmb3IobGV0IGg9dGhpcy5wb3RlbnRp''@;'; + put 'put ''YWxseUZvY3VzYWJsZUVscy5sZW5ndGgtMTtoPj0wJiYodGhpcy5sYXN0Rm9jdXNhYmxlRWw9dGhpcy5mb2N1c0VsZW1lbnQodGhpcy5wb3RlbnRpYWxseUZvY3VzYWJsZUVsc1toXSksIXRoaXMubGFzdEZvY3VzYWJsZUVsKTtoLS0pO31mb2N1c1RyYXBFbElmT3V0c2lkZSgpe3RoaXMuZWwu''@;'; + put 'put ''bmF0aXZlRWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KXx8dGhpcy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCl9Zm9jdXNFbGVtZW50KGgpe3JldHVybiBoJiZoLmZvY3VzJiYoaC5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1oKT9oOm51bGx9bmdPbkRl''@;'; + put 'put ''c3Ryb3koKXt0aGlzLnJlbW92ZVJlYm91bmRFbHMoKSx0aGlzLnNldFByZXZpb3VzRm9jdXMoKSx0aGlzLmZvY3VzVHJhcHNUcmFja2VyLmFjdGl2YXRlUHJldmlvdXNUcmFwcGVyKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KGJvKSxYdChr''@;'; + put 'put ''cyksWHQoR0xlKSxYdChHYSksWHQoRDIpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyRm9jdXNUcmFwIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmWW4oImZvY3VzaW4iLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uRm9jdXNJbihDKX0s''@;'; + put 'put ''MCxIbCl9LGlucHV0czp7Y29uZmlnOlsiY2xyRm9jdXNUcmFwIiwiY29uZmlnIl19fSksZH0pKCksYXE9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7''@;'; + put 'put ''aW1wb3J0czpbW2JhXV19KSxkfSkoKTtjb25zdCBVTGU9L2QrLittKy4reSsvaSxRTGU9L20rLitkKy4reSsvaSxKTGU9L2QrfG0rfHkrL2ksWExlPS9cZCsvZyxLTGU9L01vYmkvaSwkTGU9L1x1MjAwZi9nLGxxPXtuYW1lOiJMSVRUTEVfRU5ESUFOIixmb3JtYXQ6WyJERCIsIk1NIiwiWVlZ''@;'; + put 'put ''WSJdfSxFZmU9e25hbWU6Ik1JRERMRV9FTkRJQU4iLGZvcm1hdDpbIk1NIiwiREQiLCJZWVlZIl19LHFMZT17bmFtZToiQklHX0VORElBTiIsZm9ybWF0OlsiWVlZWSIsIk1NIiwiREQiXX07ZnVuY3Rpb24gUEFlKGQsZyl7cmV0dXJuIG5ldyBEYXRlKGQsZysxLDApLmdldERhdGUoKX1jbGFz''@;'; + put 'put ''cyBpT2V7Y29uc3RydWN0b3IoZyxoPSExLHY9ITEseT0hMSxDPSExLEk9ITEpe3RoaXMuZGF5TW9kZWw9Zyx0aGlzLmlzVG9kYXlzRGF0ZT1oLHRoaXMuaXNFeGNsdWRlZD12LHRoaXMuaXNEaXNhYmxlZD15LHRoaXMuaXNTZWxlY3RlZD1DLHRoaXMuaXNGb2N1c2FibGU9SX1nZXQgdGFiSW5k''@;'; + put 'put ''ZXgoKXtyZXR1cm4gdGhpcy5pc0ZvY3VzYWJsZT8wOi0xfX1jbGFzcyBzNHtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy55ZWFyPWcsdGhpcy5tb250aD1oLHRoaXMuZGF0ZT12fWlzRXF1YWwoZyl7cmV0dXJuISFnJiZ0aGlzLnllYXI9PT1nLnllYXImJnRoaXMubW9udGg9PT1nLm1vbnRoJiZ0''@;'; + put 'put ''aGlzLmRhdGU9PT1nLmRhdGV9dG9EYXRlKCl7cmV0dXJuIG5ldyBEYXRlKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF0ZSl9aW5jcmVtZW50QnkoZyl7Y29uc3QgaD1uZXcgRGF0ZSh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRhdGUrZyk7cmV0dXJuIG5ldyBzNChoLmdldEZ1bGxZ''@;'; + put 'put ''ZWFyKCksaC5nZXRNb250aCgpLGguZ2V0RGF0ZSgpKX1jbG9uZSgpe3JldHVybiBuZXcgczQodGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXRlKX10b0NvbXBhcmlzb25TdHJpbmcoKXtyZXR1cm5gJHt0aGlzLnllYXJ9JHt0aGlzLnBhZCh0aGlzLm1vbnRoKX0ke3RoaXMucGFkKHRoaXMu''@;'; + put 'put ''ZGF0ZSl9YH1wYWQoZyl7cmV0dXJuIGc8MTA/YDAke2d9YDpgJHtnfWB9dG9EYXRlU3RyaW5nKCl7cmV0dXJuIHRoaXMudG9EYXRlKCkudG9Mb2NhbGVEYXRlU3RyaW5nKCl9fWNsYXNzIG9PZXtjb25zdHJ1Y3RvcihnLGgsdix5LEMsSSl7dGhpcy5jYWxlbmRhcj1nLHRoaXMuc2VsZWN0ZWRE''@;'; + put 'put ''YXk9aCx0aGlzLmZvY3VzYWJsZURheT12LHRoaXMudG9kYXk9eSx0aGlzLmZpcnN0RGF5T2ZXZWVrPUMsdGhpcy5leGNsdWRlZERhdGVzPUksdGhpcy5jdXJyTW9udGhEYXlWaWV3cz1bXSx0aGlzLmluaXRpYWxpemVDYWxlbmRhclZpZXcoKX1nZXQgY2FsZW5kYXJWaWV3KCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2NhbGVuZGFyVmlld31pbml0aWFsaXplQ2FsZW5kYXJWaWV3KCl7Y29uc3QgZz10aGlzLmNhbGVuZGFyLnByZXZpb3VzTW9udGgoKSxoPXRoaXMuY2FsZW5kYXIubmV4dE1vbnRoKCksdj10aGlzLm51bURheXNGcm9tUHJldk1vbnRoSW5DYWxWaWV3KHRoaXMuY2FsZW5kYXIueWVhcix0''@;'; + put 'put ''aGlzLmNhbGVuZGFyLm1vbnRoKSx5PTQyLSh0aGlzLmNhbGVuZGFyLmRheXMubGVuZ3RoK3YpO2xldCBDPVtdLEk9W107dj4wJiYoQz10aGlzLmdlbmVyYXRlRGF5Vmlld01vZGVscyhnLmRheXMuc2xpY2UoLTEqdiksITAsITEpKSx0aGlzLmN1cnJNb250aERheVZpZXdzPXRoaXMuZ2VuZXJh''@;'; + put 'put ''dGVEYXlWaWV3TW9kZWxzKHRoaXMuY2FsZW5kYXIuZGF5cywhMSwhMCkseT4wJiYoST10aGlzLmdlbmVyYXRlRGF5Vmlld01vZGVscyhoLmRheXMuc2xpY2UoMCx5KSwhMCwhMSkpLHRoaXMuX2NhbGVuZGFyVmlldz10aGlzLmdlbmVyYXRlQ2FsZW5kYXJWaWV3KEMsdGhpcy5jdXJyTW9udGhE''@;'; + put 'put ''YXlWaWV3cyxJKSx0aGlzLmluaXRpYWxpemVTZWxlY3RlZERheSgpLHRoaXMuaW5pdGlhbGl6ZUZvY3VzYWJsZURheSgpfWlzRGF0ZUV4Y2x1ZGVkKGcpe2NvbnN0e21pbkRhdGU6aCxtYXhEYXRlOnZ9PXRoaXMuZXhjbHVkZWREYXRlcyx5PWgudG9Db21wYXJpc29uU3RyaW5nKCksQz12LnRv''@;'; + put 'put ''Q29tcGFyaXNvblN0cmluZygpLEk9Zy50b0NvbXBhcmlzb25TdHJpbmcoKTtyZXR1cm4hKEk+PXkmJkk8PUMpfWdlbmVyYXRlRGF5Vmlld01vZGVscyhnLGgsdil7Y29uc3QgeT1nLm1hcChDPT5uZXcgaU9lKEMsITEsaCx0aGlzLmlzRGF0ZUV4Y2x1ZGVkKEMpLCExLCExKSk7cmV0dXJuIHYm''@;'; + put 'put ''JnRoaXMuY2FsZW5kYXIuaXNEYXlJbkNhbGVuZGFyKHRoaXMudG9kYXkpJiYoeVt0aGlzLnRvZGF5LmRhdGUtMV0uaXNUb2RheXNEYXRlPSEwKSx5fW51bURheXNGcm9tUHJldk1vbnRoSW5DYWxWaWV3KGcsaCl7Y29uc3Qgdj1mdW5jdGlvbiB0T2UoZCxnLGgpe3JldHVybiBuZXcgRGF0ZShk''@;'; + put 'put ''LGcsaCkuZ2V0RGF5KCl9KGcsaCwxKTtyZXR1cm4gdj49dGhpcy5maXJzdERheU9mV2Vlaz92LXRoaXMuZmlyc3REYXlPZldlZWs6Nyt2LXRoaXMuZmlyc3REYXlPZldlZWt9aXNEYXlJbkNhbGVuZGFyVmlldyhnKXtyZXR1cm4hIXRoaXMuY2FsZW5kYXIuaXNEYXlJbkNhbGVuZGFyKGcpfWdl''@;'; + put 'put ''bmVyYXRlQ2FsZW5kYXJWaWV3KGcsaCx2KXtjb25zdCB5PVsuLi5nLC4uLmgsLi4udl0sQz1bXTtmb3IobGV0IEk9MDtJPDY7SSsrKUNbSV09eS5zbGljZSg3KkksNyooSSsxKSk7cmV0dXJuIEN9aW5pdGlhbGl6ZVNlbGVjdGVkRGF5KCl7dGhpcy5zZWxlY3RlZERheSYmdGhpcy5pc0RheUlu''@;'; + put 'put ''Q2FsZW5kYXJWaWV3KHRoaXMuc2VsZWN0ZWREYXkpJiYodGhpcy5jdXJyTW9udGhEYXlWaWV3c1t0aGlzLnNlbGVjdGVkRGF5LmRhdGUtMV0uaXNTZWxlY3RlZD0hMCl9aW5pdGlhbGl6ZUZvY3VzYWJsZURheSgpe3RoaXMuZm9jdXNhYmxlRGF5JiZ0aGlzLmlzRGF5SW5DYWxlbmRhclZpZXco''@;'; + put 'put ''dGhpcy5mb2N1c2FibGVEYXkpP3RoaXMuc2V0Rm9jdXNhYmxlRmxhZyh0aGlzLmZvY3VzYWJsZURheSwhMCk6dGhpcy5zZWxlY3RlZERheSYmdGhpcy5pc0RheUluQ2FsZW5kYXJWaWV3KHRoaXMuc2VsZWN0ZWREYXkpPyh0aGlzLnNldEZvY3VzYWJsZUZsYWcodGhpcy5zZWxlY3RlZERheSwh''@;'; + put 'put ''MCksdGhpcy5mb2N1c2FibGVEYXk9dGhpcy5zZWxlY3RlZERheS5jbG9uZSgpKTp0aGlzLmlzRGF5SW5DYWxlbmRhclZpZXcodGhpcy50b2RheSk/KHRoaXMuc2V0Rm9jdXNhYmxlRmxhZyh0aGlzLnRvZGF5LCEwKSx0aGlzLmZvY3VzYWJsZURheT10aGlzLnRvZGF5LmNsb25lKCkpOih0aGlz''@;'; + put 'put ''LmZvY3VzYWJsZURheT1uZXcgczQodGhpcy5jYWxlbmRhci55ZWFyLHRoaXMuY2FsZW5kYXIubW9udGgsMTUpLHRoaXMuc2V0Rm9jdXNhYmxlRmxhZyh0aGlzLmZvY3VzYWJsZURheSwhMCkpfXNldEZvY3VzYWJsZUZsYWcoZyxoKXtnJiYodGhpcy5jdXJyTW9udGhEYXlWaWV3c1tnLmRhdGUt''@;'; + put 'put ''MV0uaXNGb2N1c2FibGU9aCl9dXBkYXRlRm9jdXNhYmxlRGF5KGcpe3RoaXMuc2V0Rm9jdXNhYmxlRmxhZyh0aGlzLmZvY3VzYWJsZURheSwhMSksdGhpcy5zZXRGb2N1c2FibGVGbGFnKGcsITApLHRoaXMuZm9jdXNhYmxlRGF5PWd9fWxldCBHaj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9y''@;'; + put 'put ''KGgpe3RoaXMubG9jYWxlPWgsdGhpcy5fZmlyc3REYXlPZldlZWs9MCx0aGlzLmluaXRpYWxpemVMb2NhbGVEYXRhKCl9Z2V0IGZpcnN0RGF5T2ZXZWVrKCl7cmV0dXJuIHRoaXMuX2ZpcnN0RGF5T2ZXZWVrfWdldCBsb2NhbGVEYXlzKCl7cmV0dXJuIHRoaXMuX2xvY2FsZURheXN9Z2V0IGxv''@;'; + put 'put ''Y2FsZURheXNOYXJyb3coKXtyZXR1cm4gdGhpcy5fbG9jYWxlRGF5cy5tYXAoaD0+aC5uYXJyb3cpfWdldCBsb2NhbGVNb250aHNBYmJyZXZpYXRlZCgpe3JldHVybiB0aGlzLl9sb2NhbGVNb250aHNBYmJyZXZpYXRlZH1nZXQgbG9jYWxlTW9udGhzV2lkZSgpe3JldHVybiB0aGlzLl9sb2Nh''@;'; + put 'put ''bGVNb250aHNXaWRlfWdldCBsb2NhbGVEYXRlRm9ybWF0KCl7cmV0dXJuIHRoaXMuX2xvY2FsZURhdGVGb3JtYXR9aW5pdGlhbGl6ZUxvY2FsZURhdGEoKXt0aGlzLmluaXRpYWxpemVGaXJzdERheU9mV2VlaygpLHRoaXMuaW5pdGlhbGl6ZUxvY2FsZURhdGVGb3JtYXQoKSx0aGlzLmluaXRp''@;'; + put 'put ''YWxpemVMb2NhbGVNb250aHNBYmJyZXZpYXRlZCgpLHRoaXMuaW5pdGlhbGl6ZUxvY2FsZU1vbnRoc1dpZGUoKSx0aGlzLmluaXRpYWxpemVMb2NhbGVEYXlzKCl9aW5pdGlhbGl6ZUxvY2FsZURheXMoKXtjb25zdCBoPVtdLHY9cnAodGhpcy5sb2NhbGUsTjIuU3RhbmRhbG9uZSxDbC5XaWRl''@;'; + put 'put ''KS5zbGljZSgpLHk9cnAodGhpcy5sb2NhbGUsTjIuU3RhbmRhbG9uZSxDbC5OYXJyb3cpLnNsaWNlKCksQz10aGlzLmZpcnN0RGF5T2ZXZWVrO2ZvcihsZXQgST0wO0k8NztJKyspaC5wdXNoKHtkYXk6dltJXSxuYXJyb3c6eVtJXX0pO2lmKEM+MCl7Y29uc3QgST1oLnNwbGljZSgwLEMpO2gu''@;'; + put 'put ''cHVzaCguLi5JKX10aGlzLl9sb2NhbGVEYXlzPWh9aW5pdGlhbGl6ZUxvY2FsZU1vbnRoc0FiYnJldmlhdGVkKCl7dGhpcy5fbG9jYWxlTW9udGhzQWJicmV2aWF0ZWQ9VFQodGhpcy5sb2NhbGUsTjIuU3RhbmRhbG9uZSxDbC5BYmJyZXZpYXRlZCkuc2xpY2UoKX1pbml0aWFsaXplTG9jYWxl''@;'; + put 'put ''TW9udGhzV2lkZSgpe3RoaXMuX2xvY2FsZU1vbnRoc1dpZGU9VFQodGhpcy5sb2NhbGUsTjIuU3RhbmRhbG9uZSxDbC5XaWRlKS5zbGljZSgpfWluaXRpYWxpemVGaXJzdERheU9mV2Vlaygpe3RoaXMuX2ZpcnN0RGF5T2ZXZWVrPWZ1bmN0aW9uIEJyZShkKXtyZXR1cm4gcmMoZClbTW8uRmly''@;'; + put 'put ''c3REYXlPZldlZWtdfSh0aGlzLmxvY2FsZSl9aW5pdGlhbGl6ZUxvY2FsZURhdGVGb3JtYXQoKXt0aGlzLl9sb2NhbGVEYXRlRm9ybWF0PWZ1bmN0aW9uIGo2KGQsZyl7cmV0dXJuIFczKHJjKGQpW01vLkRhdGVGb3JtYXRdLGcpfSh0aGlzLmxvY2FsZSxwMS5TaG9ydCl9fXJldHVybiBkLlx1''@;'; + put 'put ''MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEdkKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3Mgdjh7Y29uc3RydWN0b3IoZyxoKXt0aGlzLnllYXI9Zyx0aGlzLm1vbnRoPWgsdGhpcy5pbml0aWFsaXpl''@;'; + put 'put ''RGF5c0luQ2FsZW5kYXIoKX1pbml0aWFsaXplRGF5c0luQ2FsZW5kYXIoKXtjb25zdCBnPVBBZSh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpcy5kYXlzPUFycmF5KGcpLmZpbGwobnVsbCkubWFwKChoLHYpPT5uZXcgczQodGhpcy55ZWFyLHRoaXMubW9udGgsdisxKSl9aXNFcXVhbChnKXty''@;'; + put 'put ''ZXR1cm4hIWcmJnRoaXMueWVhcj09PWcueWVhciYmdGhpcy5tb250aD09PWcubW9udGh9aXNEYXlJbkNhbGVuZGFyKGcpe3JldHVybiEhZyYmdGhpcy55ZWFyPT09Zy55ZWFyJiZ0aGlzLm1vbnRoPT09Zy5tb250aH1wcmV2aW91c01vbnRoKCl7cmV0dXJuIDA9PT10aGlzLm1vbnRoP25ldyB2''@;'; + put 'put ''OCh0aGlzLnllYXItMSwxMSk6bmV3IHY4KHRoaXMueWVhcix0aGlzLm1vbnRoLTEpfW5leHRNb250aCgpe3JldHVybiAxMT09PXRoaXMubW9udGg/bmV3IHY4KHRoaXMueWVhcisxLDApOm5ldyB2OCh0aGlzLnllYXIsdGhpcy5tb250aCsxKX19bGV0IGc5PSgoKT0+e2NsYXNzIGR7Y29uc3Ry''@;'; + put 'put ''dWN0b3IoKXt0aGlzLl90b2RheXNGdWxsRGF0ZT1uZXcgRGF0ZSx0aGlzLl9zZWxlY3RlZERheUNoYW5nZT1uZXcgJGUsdGhpcy5fZGlzcGxheWVkQ2FsZW5kYXJDaGFuZ2U9bmV3ICRlLHRoaXMuX2ZvY3VzT25DYWxlbmRhckNoYW5nZT1uZXcgJGUsdGhpcy5fZm9jdXNlZERheUNoYW5nZT1u''@;'; + put 'put ''ZXcgJGV9Z2V0IGRpc3BsYXllZENhbGVuZGFyKCl7cmV0dXJuIHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyfXNldERpc3BsYXllZENhbGVuZGFyKGgpe3RoaXMuX2Rpc3BsYXllZENhbGVuZGFyLmlzRXF1YWwoaCl8fCh0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhcj1oLHRoaXMuX2Rpc3BsYXllZENh''@;'; + put 'put ''bGVuZGFyQ2hhbmdlLm5leHQoKSl9aW5pdGlhbGl6ZVRvZGF5c0RhdGUoKXt0aGlzLl90b2RheXNGdWxsRGF0ZT1uZXcgRGF0ZSx0aGlzLl90b2RheT1uZXcgczQodGhpcy5fdG9kYXlzRnVsbERhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLl90b2RheXNGdWxsRGF0ZS5nZXRNb250aCgpLHRoaXMu''@;'; + put 'put ''X3RvZGF5c0Z1bGxEYXRlLmdldERhdGUoKSl9Z2V0IHRvZGF5KCl7cmV0dXJuIHRoaXMuX3RvZGF5fWdldCBzZWxlY3RlZERheUNoYW5nZSgpe3JldHVybiB0aGlzLl9zZWxlY3RlZERheUNoYW5nZS5hc09ic2VydmFibGUoKX1ub3RpZnlTZWxlY3RlZERheUNoYW5nZWQoaCl7dGhpcy5zZWxl''@;'; + put 'put ''Y3RlZERheT1oLHRoaXMuX3NlbGVjdGVkRGF5Q2hhbmdlLm5leHQoaCl9aW5pdGlhbGl6ZUNhbGVuZGFyKCl7dGhpcy5mb2N1c2VkRGF5PW51bGwsdGhpcy5pbml0aWFsaXplVG9kYXlzRGF0ZSgpLHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyPXRoaXMuc2VsZWN0ZWREYXk/bmV3IHY4KHRoaXMu''@;'; + put 'put ''c2VsZWN0ZWREYXkueWVhcix0aGlzLnNlbGVjdGVkRGF5Lm1vbnRoKTpuZXcgdjgodGhpcy50b2RheS55ZWFyLHRoaXMudG9kYXkubW9udGgpfWNoYW5nZU1vbnRoKGgpe3RoaXMuc2V0RGlzcGxheWVkQ2FsZW5kYXIobmV3IHY4KHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyLnllYXIsaCkpfWNo''@;'; + put 'put ''YW5nZVllYXIoaCl7dGhpcy5zZXREaXNwbGF5ZWRDYWxlbmRhcihuZXcgdjgoaCx0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhci5tb250aCkpfW1vdmVUb05leHRNb250aCgpe3RoaXMuc2V0RGlzcGxheWVkQ2FsZW5kYXIodGhpcy5fZGlzcGxheWVkQ2FsZW5kYXIubmV4dE1vbnRoKCkpfW1vdmVU''@;'; + put 'put ''b1ByZXZpb3VzTW9udGgoKXt0aGlzLnNldERpc3BsYXllZENhbGVuZGFyKHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyLnByZXZpb3VzTW9udGgoKSl9bW92ZVRvQ3VycmVudE1vbnRoKCl7dGhpcy5kaXNwbGF5ZWRDYWxlbmRhci5pc0RheUluQ2FsZW5kYXIodGhpcy50b2RheSl8fHRoaXMuc2V0''@;'; + put 'put ''RGlzcGxheWVkQ2FsZW5kYXIobmV3IHY4KHRoaXMudG9kYXkueWVhcix0aGlzLnRvZGF5Lm1vbnRoKSksdGhpcy5fZm9jdXNPbkNhbGVuZGFyQ2hhbmdlLm5leHQoKX1pbmNyZW1lbnRGb2N1c0RheShoKXt0aGlzLmZvY3VzZWREYXk9dGhpcy5mb2N1c2VkRGF5LmluY3JlbWVudEJ5KGgpLHRo''@;'; + put 'put ''aXMuX2Rpc3BsYXllZENhbGVuZGFyLmlzRGF5SW5DYWxlbmRhcih0aGlzLmZvY3VzZWREYXkpP3RoaXMuX2ZvY3VzZWREYXlDaGFuZ2UubmV4dCh0aGlzLmZvY3VzZWREYXkpOnRoaXMuc2V0RGlzcGxheWVkQ2FsZW5kYXIobmV3IHY4KHRoaXMuZm9jdXNlZERheS55ZWFyLHRoaXMuZm9jdXNl''@;'; + put 'put ''ZERheS5tb250aCkpLHRoaXMuX2ZvY3VzT25DYWxlbmRhckNoYW5nZS5uZXh0KCl9Z2V0IGRpc3BsYXllZENhbGVuZGFyQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBmb2N1c09uQ2FsZW5kYXJDaGFuZ2UoKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5fZm9jdXNPbkNhbGVuZGFyQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBmb2N1c2VkRGF5Q2hhbmdlKCl7cmV0dXJuIHRoaXMuX2ZvY3VzZWREYXlDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1''@;'; + put 'put ''MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLElMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLl9uZ1pvbmU9aCx0aGlzLnBsYXRmb3JtSWQ9dn1mb2N1c0NlbGwoaCl7dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57''@;'; + put 'put ''dGhpcy5uZ1pvbmVJc1N0YWJsZUluQnJvd3NlcigpLnN1YnNjcmliZSgoKT0+e2NvbnN0IHY9aC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t0YWJpbmRleD0iMCJdJyk7diYmdi5mb2N1cygpfSl9KX1mb2N1c0lucHV0KGgpe3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigo''@;'; + put 'put ''KT0+dGhpcy5uZ1pvbmVJc1N0YWJsZUluQnJvd3NlcigpLnN1YnNjcmliZSgoKT0+aC5mb2N1cygpKSl9ZWxlbWVudElzRm9jdXNlZChoKXtyZXR1cm4gU2wodGhpcy5wbGF0Zm9ybUlkKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWh9bmdab25lSXNTdGFibGVJbkJyb3dzZXIoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fbmdab25lLm9uU3RhYmxlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoWTMoKSxMMigoKT0+U2wodGhpcy5wbGF0Zm9ybUlkKSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShfbCksQ2koRDIpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tl''@;'; + put 'put ''bjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxXaj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9aCx0aGlzLmRpc2FibGVkRGF0ZXM9e21pbkRhdGU6bmV3IHM0KDAsMCwxKSxtYXhEYXRlOm5ldyBzNCg5OTk5LDExLDMxKX0sdGhp''@;'; + put 'put ''cy5jbGRyTG9jYWxlRGF0ZUZvcm1hdD0iZGQvTU0veSIsdGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0PWxxLHRoaXMuZGVsaW1pdGVycz1bIi8iLCIvIl0sdGhpcy5jbGRyTG9jYWxlRGF0ZUZvcm1hdD10aGlzLl9sb2NhbGVIZWxwZXJTZXJ2aWNlLmxvY2FsZURhdGVGb3JtYXQsdGhpcy5pbml0''@;'; + put 'put ''aWFsaXplTG9jYWxlRGlzcGxheUZvcm1hdCgpfXNldE1pbkRhdGUoaCl7aWYoaCl7Y29uc3Rbdix5LENdPWguc3BsaXQoIi0iKS5tYXAoST0+cGFyc2VJbnQoSSwxMCkpO3RoaXMuZGlzYWJsZWREYXRlcy5taW5EYXRlPW5ldyBzNCh2LHktMSxDKX1lbHNlIHRoaXMuZGlzYWJsZWREYXRlcy5t''@;'; + put 'put ''aW5EYXRlPW5ldyBzNCgwLDAsMSl9c2V0TWF4RGF0ZShoKXtpZihoKXtjb25zdFt2LHksQ109aC5zcGxpdCgiLSIpLm1hcChJPT5wYXJzZUludChJLDEwKSk7dGhpcy5kaXNhYmxlZERhdGVzLm1heERhdGU9bmV3IHM0KHYseS0xLEMpfWVsc2UgdGhpcy5kaXNhYmxlZERhdGVzLm1heERhdGU9''@;'; + put 'put ''bmV3IHM0KDk5OTksMTEsMzEpfWluaXRpYWxpemVMb2NhbGVEaXNwbGF5Rm9ybWF0KCl7Y29uc3QgaD10aGlzLmNsZHJMb2NhbGVEYXRlRm9ybWF0LnRvTG9jYWxlTG93ZXJDYXNlKCk7dGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0PVVMZS50ZXN0KGgpP2xxOlFMZS50ZXN0KGgpP0VmZTpxTGUs''@;'; + put 'put ''dGhpcy5leHRyYWN0RGVsaW1pdGVycygpfWV4dHJhY3REZWxpbWl0ZXJzKCl7aWYodGhpcy5jbGRyTG9jYWxlRGF0ZUZvcm1hdCl7Y29uc3Qgdj10aGlzLmNsZHJMb2NhbGVEYXRlRm9ybWF0LnJlcGxhY2UoJExlLCIiKS5zcGxpdChKTGUpO3YmJjQ9PT12Lmxlbmd0aD90aGlzLmRlbGltaXRl''@;'; + put 'put ''cnM9W3ZbMV0sdlsyXV06Y29uc29sZS5lcnJvcigiVW5leHBlY3RlZCBkYXRlIGZvcm1hdCByZWNlaXZlZC4gRGVsaW1pdGVycyBleHRyYWN0ZWQ6ICIsdil9fXRvTG9jYWxlRGlzcGxheUZvcm1hdFN0cmluZyhoKXtpZihoKXtpZihpc05hTihoLmdldFRpbWUoKSkpcmV0dXJuIiI7Y29uc3Qg''@;'; + put 'put ''dj1oLmdldERhdGUoKSx5PWguZ2V0TW9udGgoKSsxLEM9dj45P3YudG9TdHJpbmcoKToiMCIrdixJPXk+OT95LnRvU3RyaW5nKCk6IjAiK3k7cmV0dXJuIHRoaXMubG9jYWxlRGlzcGxheUZvcm1hdD09PWxxP0MrdGhpcy5kZWxpbWl0ZXJzWzBdK0krdGhpcy5kZWxpbWl0ZXJzWzFdK2guZ2V0''@;'; + put 'put ''RnVsbFllYXIoKTp0aGlzLmxvY2FsZURpc3BsYXlGb3JtYXQ9PT1FZmU/SSt0aGlzLmRlbGltaXRlcnNbMF0rQyt0aGlzLmRlbGltaXRlcnNbMV0raC5nZXRGdWxsWWVhcigpOmguZ2V0RnVsbFllYXIoKSt0aGlzLmRlbGltaXRlcnNbMF0rSSt0aGlzLmRlbGltaXRlcnNbMV0rQ31yZXR1cm4i''@;'; + put 'put ''In1nZXQgcGxhY2Vob2xkZXJUZXh0KCl7Y29uc3QgaD10aGlzLmxvY2FsZURpc3BsYXlGb3JtYXQuZm9ybWF0O3JldHVybiBoWzBdK3RoaXMuZGVsaW1pdGVyc1swXStoWzFdK3RoaXMuZGVsaW1pdGVyc1sxXStoWzJdfWlzVmFsaWRNb250aChoKXtyZXR1cm4gaD4tMSYmaDwxMn1pc1ZhbGlk''@;'; + put 'put ''RGF0ZShoLHYseSl7cmV0dXJuIHk+MCYmeTw9UEFlKGgsdil9dmFsaWRhdGVBbmRHZXREYXRlKGgsdix5KXtjb25zdCBDPStoLEk9K3YtMSxqPSt5O2lmKCF0aGlzLmlzVmFsaWRNb250aChJKXx8IXRoaXMuaXNWYWxpZERhdGUoQyxJLGopKXJldHVybiBudWxsO2NvbnN0IHVlPWZ1bmN0aW9u''@;'; + put 'put ''IG5PZShkKXtpZihkPjk5OTl8fGQ+MTAwJiZkPDk5OXx8ZDwxMClyZXR1cm4tMTtpZihkPjk5OSlyZXR1cm4gZDtjb25zdCBnPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTtsZXQgdj1kKzEwMCpNYXRoLmZsb29yKGcvMTAwKTtyZXR1cm4gdj5nKzIwJiYodi09MTAwKSx2fShDKTtyZXR1cm4t''@;'; + put 'put ''MSE9PXVlP25ldyBEYXRlKHVlLEksaik6bnVsbH1nZXREYXRlVmFsdWVGcm9tRGF0ZVN0cmluZyhoKXtpZighaClyZXR1cm4gbnVsbDtjb25zdCB2PWgubWF0Y2goWExlKTtpZighdnx8MyE9PXYubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0W3ksQyxJXT12O3JldHVybiB0aGlzLmxvY2FsZURp''@;'; + put 'put ''c3BsYXlGb3JtYXQ9PT1scT90aGlzLnZhbGlkYXRlQW5kR2V0RGF0ZShJLEMseSk6dGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0PT09RWZlP3RoaXMudmFsaWRhdGVBbmRHZXREYXRlKEkseSxDKTp0aGlzLnZhbGlkYXRlQW5kR2V0RGF0ZSh5LEMsSSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5j''@;'; + put 'put ''dGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEdqKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksWWo9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX3RvdWNoZWRDaGFuZ2U9bmV3ICRlLHRoaXMuX2RpcnR5Q2hhbmdlPW5l''@;'; + put 'put ''dyAkZX1nZXQgdG91Y2hlZENoYW5nZSgpe3JldHVybiB0aGlzLl90b3VjaGVkQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBkaXJ0eUNoYW5nZSgpe3JldHVybiB0aGlzLl9kaXJ0eUNoYW5nZS5hc09ic2VydmFibGUoKX1tYXJrQXNUb3VjaGVkKCl7dGhpcy5fdG91Y2hlZENoYW5nZS5uZXh0''@;'; + put 'put ''KCl9bWFya0FzRGlydHkoKXt0aGlzLl9kaXJ0eUNoYW5nZS5uZXh0KCl9c2V0RGlzYWJsZWQoaCl7dGhpcy5kaXNhYmxlZD1ofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVm''@;'; + put 'put ''YWN9KSxkfSkoKSxGQWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2U9aCx0aGlzLl90b2dnbGVTZXJ2aWNlPXYsdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlPXksdGhpcy5jb21tb25TdHJpbmdzPUN9c2V0IGRheVZpZXco''@;'; + put 'put ''aCl7dGhpcy5fZGF5Vmlldz1ofWdldCBkYXlWaWV3KCl7cmV0dXJuIHRoaXMuX2RheVZpZXd9Z2V0IGRheVN0cmluZygpe3JldHVybiB0aGlzLmRheVZpZXcuaXNTZWxlY3RlZD90aGlzLmNvbW1vblN0cmluZ3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclNlbGVj''@;'; + put 'put ''dGVkTGFiZWwse0ZVTExfREFURTp0aGlzLl9kYXlWaWV3LmRheU1vZGVsLnRvRGF0ZVN0cmluZygpfSk6dGhpcy5fZGF5Vmlldy5kYXlNb2RlbC50b0RhdGVTdHJpbmcoKX1vbkRheVZpZXdGb2N1cygpe3RoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5mb2N1c2VkRGF5PXRoaXMuZGF5Vmll''@;'; + put 'put ''dy5kYXlNb2RlbH1zZWxlY3REYXkoKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uubm90aWZ5U2VsZWN0ZWREYXlDaGFuZ2VkKHRoaXMuZGF5Vmlldy5kYXlNb2RlbCksdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlLm1hcmtBc0RpcnR5KCksdGhpcy5fdG9nZ2xlU2VydmljZS5vcGVu''@;'; + put 'put ''PSExfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChnOSksWHQoenMpLFh0KFlqKSxYdChucykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF5Il1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgs''@;'; + put 'put ''dil7MiZoJiZGaSgiZGF5IiwhMCl9LGlucHV0czp7ZGF5VmlldzpbImNsckRheVZpZXciLCJkYXlWaWV3Il19LGRlY2xzOjIsdmFyczoxMyxjb25zdHM6W1sidHlwZSIsImJ1dHRvbiIsMSwiZGF5LWJ0biIsMywiY2xpY2siLCJmb2N1cyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYm''@;'; + put 'put ''KGl0KDAsImJ1dHRvbiIsMCksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnNlbGVjdERheSgpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiB2Lm9uRGF5Vmlld0ZvY3VzKCl9KSxVdCgxKSxzdCgpKSwyJmgmJihGaSgiaXMtdG9kYXkiLHYuZGF5Vmlldy5pc1RvZGF5c0RhdGUp''@;'; + put 'put ''KCJpcy1leGNsdWRlZCIsdi5kYXlWaWV3LmlzRXhjbHVkZWQpKCJpcy1kaXNhYmxlZCIsdi5kYXlWaWV3LmlzRGlzYWJsZWQpKCJpcy1zZWxlY3RlZCIsdi5kYXlWaWV3LmlzU2VsZWN0ZWQpLHppKCJ0YWJpbmRleCIsdi5kYXlWaWV3LnRhYkluZGV4KSgiYXJpYS1jdXJyZW50Iix2LmRheVZp''@;'; + put 'put ''ZXcuaXNUb2RheXNEYXRlPyJkYXRlIjoiZmFsc2UiKSgiYXJpYS1sYWJlbCIsdi5kYXlTdHJpbmcpKCJhcmlhLXNlbGVjdGVkIix2LmRheVZpZXcuaXNTZWxlY3RlZCksdXQoMSksSmkoIiAiLHYuZGF5Vmlldy5kYXlNb2RlbC5kYXRlLCIgIikpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxI''@;'; + put 'put ''QWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9aCx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2U9dix0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlPXksdGhpcy5fZGF0ZUlPU2VydmljZT1DLHRoaXMuX2VsUmVmPUks''@;'; + put 'put ''dGhpcy5fc3Vicz1bXSx0aGlzLmdlbmVyYXRlQ2FsZW5kYXJWaWV3KCksdGhpcy5pbml0aWFsaXplU3Vic2NyaXB0aW9ucygpfWdldCBsb2NhbGVEYXlzKCl7cmV0dXJuIHRoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2UubG9jYWxlRGF5c31nZXQgY2FsZW5kYXIoKXtyZXR1cm4gdGhpcy5fZGF0''@;'; + put 'put ''ZU5hdmlnYXRpb25TZXJ2aWNlLmRpc3BsYXllZENhbGVuZGFyfWdldCBzZWxlY3RlZERheSgpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXl9Z2V0IGZvY3VzZWREYXkoKXtyZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmZvY3VzZWREYXl9''@;'; + put 'put ''Z2V0IHRvZGF5KCl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS50b2RheX1pbml0aWFsaXplU3Vic2NyaXB0aW9ucygpe3RoaXMuX3N1YnMucHVzaCh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZGlzcGxheWVkQ2FsZW5kYXJDaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhp''@;'; + put 'put ''cy5nZW5lcmF0ZUNhbGVuZGFyVmlldygpfSkpLHRoaXMuX3N1YnMucHVzaCh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZm9jdXNlZERheUNoYW5nZS5zdWJzY3JpYmUoaD0+e3RoaXMuY2FsZW5kYXJWaWV3TW9kZWwudXBkYXRlRm9jdXNhYmxlRGF5KGgpfSkpLHRoaXMuX3N1YnMucHVz''@;'; + put 'put ''aCh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZm9jdXNPbkNhbGVuZGFyQ2hhbmdlLnN1YnNjcmliZSgoKT0+e3RoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKX0pKX1nZW5lcmF0ZUNhbGVuZGFyVmlldygpe3RoaXMuY2FsZW5kYXJWaWV3TW9k''@;'; + put 'put ''ZWw9bmV3IG9PZSh0aGlzLmNhbGVuZGFyLHRoaXMuc2VsZWN0ZWREYXksdGhpcy5mb2N1c2VkRGF5LHRoaXMudG9kYXksdGhpcy5fbG9jYWxlSGVscGVyU2VydmljZS5maXJzdERheU9mV2Vlayx0aGlzLl9kYXRlSU9TZXJ2aWNlLmRpc2FibGVkRGF0ZXMpfW9uS2V5RG93bihoKXtpZihoJiZ0''@;'; + put 'put ''aGlzLmZvY3VzZWREYXkpc3dpdGNoKGgua2V5Q29kZSl7Y2FzZSAzODpoLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmluY3JlbWVudEZvY3VzRGF5KC03KTticmVhaztjYXNlIDQwOmgucHJldmVudERlZmF1bHQoKSx0aGlzLl9kYXRlTmF2aWdhdGlvblNl''@;'; + put 'put ''cnZpY2UuaW5jcmVtZW50Rm9jdXNEYXkoNyk7YnJlYWs7Y2FzZSAzNzpoLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmluY3JlbWVudEZvY3VzRGF5KC0xKTticmVhaztjYXNlIDM5OmgucHJldmVudERlZmF1bHQoKSx0aGlzLl9kYXRlTmF2aWdhdGlvblNl''@;'; + put 'put ''cnZpY2UuaW5jcmVtZW50Rm9jdXNEYXkoMSl9fW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKX1uZ09uRGVzdHJveSgpe3RoaXMuX3N1YnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gZC5cdTAy''@;'; + put 'put ''NzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChHaiksWHQoZzkpLFh0KElMKSxYdChXaiksWHQoYm8pKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWNhbGVuZGFyIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmWW4oImtleWRv''@;'; + put 'put ''d24iLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uS2V5RG93bihDKX0pfSxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1sxLCJjYWxlbmRhci10YWJsZSJdLFsxLCJjYWxlbmRhci1yb3ciLCJ3ZWVrZGF5cyJdLFsiY2xhc3MiLCJjYWxlbmRhci1jZWxsIHdlZWtkYXkiLCJyb2xlIiwiaGVhZGluZyIs''@;'; + put 'put ''NCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsImNhbGVuZGFyLXJvdyIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJyb2xlIiwiaGVhZGluZyIsMSwiY2FsZW5kYXItY2VsbCIsIndlZWtkYXkiXSxbMSwiY2FsZW5kYXItcm93Il0sWyJjbGFzcyIsImNhbGVuZGFyLWNlbGwiLDQsIm5nRm9y''@;'; + put 'put ''IiwibmdGb3JPZiJdLFsxLCJjYWxlbmRhci1jZWxsIl0sWzMsImNsckRheVZpZXciXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJ0YWJsZSIsMCkoMSwidHIiLDEpLHJuKDIsWGssMiwyLCJ0aCIsMiksc3QoKSxybigzLEtrLDIsMSwidHIiLDMpLHN0KCkpLDImaCYmKHV0''@;'; + put 'put ''KDIpLFR0KCJuZ0Zvck9mIix2LmxvY2FsZURheXMpLHV0KDEpLFR0KCJuZ0Zvck9mIix2LmNhbGVuZGFyVmlld01vZGVsLmNhbGVuZGFyVmlldykpfSxkZXBlbmRlbmNpZXM6W0ZBZSxac10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksc3E9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0''@;'; + put 'put ''aGlzLl9kb2N1bWVudD1oLHRoaXMuX2lzVXNlckFnZW50TW9iaWxlPSExLHRoaXMuX2RvY3VtZW50JiYodGhpcy5faXNVc2VyQWdlbnRNb2JpbGU9S0xlLnRlc3QoaC5kZWZhdWx0Vmlldy5uYXZpZ2F0b3IudXNlckFnZW50KSx0aGlzLl9pbm5lcldpZHRoPWguZGVmYXVsdFZpZXcuaW5uZXJX''@;'; + put 'put ''aWR0aCl9Z2V0IGlzRW5hYmxlZCgpe3JldHVybiEodGhpcy5fZG9jdW1lbnQmJnRoaXMuX2lubmVyV2lkdGg8NzY4JiZ0aGlzLl9pc1VzZXJBZ2VudE1vYmlsZSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHBzKSl9LGQuXHUwMjc1cHJvdj1B''@;'; + put 'put ''aSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksREw9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2N1cnJlbnRWaWV3PSJEQVlWSUVXIix0aGlzLnBvc2l0aW9uPWNbImJvdHRvbS1sZWZ0Il19Z2V0IGlzRGF5Vmlldygpe3JldHVybiJEQVlWSUVXIj09PXRo''@;'; + put 'put ''aXMuX2N1cnJlbnRWaWV3fWdldCBpc1llYXJWaWV3KCl7cmV0dXJuIllFQVJWSUVXIj09PXRoaXMuX2N1cnJlbnRWaWV3fWdldCBpc01vbnRoVmlldygpe3JldHVybiJNT05USFZJRVciPT09dGhpcy5fY3VycmVudFZpZXd9Y2hhbmdlVG9Nb250aFZpZXcoKXt0aGlzLl9jdXJyZW50Vmlldz0i''@;'; + put 'put ''TU9OVEhWSUVXIn1jaGFuZ2VUb1llYXJWaWV3KCl7dGhpcy5fY3VycmVudFZpZXc9IllFQVJWSUVXIn1jaGFuZ2VUb0RheVZpZXcoKXt0aGlzLl9jdXJyZW50Vmlldz0iREFZVklFVyJ9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXBy''@;'; + put 'put ''b3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLE5BZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5fdmlld01hbmFnZXJTZXJ2aWNlPWgsdGhpcy5fbG9jYWxlSGVscGVyU2VydmljZT12LHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2Vydmlj''@;'; + put 'put ''ZT15LHRoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2U9Qyx0aGlzLl9lbFJlZj1JLHRoaXMuX2ZvY3VzZWRNb250aEluZGV4PXRoaXMuY2FsZW5kYXJNb250aEluZGV4fWdldCBtb250aE5hbWVzKCl7cmV0dXJuIHRoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2UubG9jYWxlTW9udGhzV2lkZX1n''@;'; + put 'put ''ZXQgY2FsZW5kYXJNb250aEluZGV4KCl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5kaXNwbGF5ZWRDYWxlbmRhci5tb250aH1jaGFuZ2VNb250aChoKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuY2hhbmdlTW9udGgoaCksdGhpcy5fdmlld01hbmFnZXJTZXJ2aWNl''@;'; + put 'put ''LmNoYW5nZVRvRGF5VmlldygpfWdldFRhYkluZGV4KGgpe3JldHVybiBoPT09dGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg/MDotMX1vbktleURvd24oaCl7aWYoaCl7Y29uc3Qgdj1oLmtleUNvZGU7Mzg9PT12JiZ0aGlzLl9mb2N1c2VkTW9udGhJbmRleD4wPyhoLnByZXZlbnREZWZhdWx0KCks''@;'; + put 'put ''dGhpcy5fZm9jdXNlZE1vbnRoSW5kZXgtLSx0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZikpOjQwPT09diYmdGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg8MTE/KGgucHJldmVudERlZmF1bHQoKSx0aGlzLl9mb2N1c2VkTW9udGhJbmRleCsrLHRoaXMu''@;'; + put 'put ''X2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKSk6Mzk9PT12JiZ0aGlzLl9mb2N1c2VkTW9udGhJbmRleDw2PyhoLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg9dGhpcy5fZm9jdXNlZE1vbnRoSW5kZXgrNix0aGlzLl9kYXRlcGlj''@;'; + put 'put ''a2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZikpOjM3PT09diYmdGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg+NSYmKGgucHJldmVudERlZmF1bHQoKSx0aGlzLl9mb2N1c2VkTW9udGhJbmRleD10aGlzLl9mb2N1c2VkTW9udGhJbmRleC02LHRoaXMuX2RhdGVwaWNrZXJGb2N1''@;'; + put 'put ''c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKSl9fW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoREwpLFh0KEdq''@;'; + put 'put ''KSxYdChnOSksWHQoSUwpLFh0KGJvKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1tb250aHBpY2tlciJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmWW4oImtleWRvd24iLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uS2V5RG93''@;'; + put 'put ''bihDKX0pLDImaCYmRmkoIm1vbnRocGlja2VyIiwhMCl9LGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJjYWxlbmRhci1idG4gbW9udGgiLDMsImlzLXNlbGVjdGVkIiwiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsidHlwZSIsImJ1dHRvbiIs''@;'; + put 'put ''MSwiY2FsZW5kYXItYnRuIiwibW9udGgiLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiZybigwLG4kLDIsNCwiYnV0dG9uIiwwKSwyJmgmJlR0KCJuZ0Zvck9mIix2Lm1vbnRoTmFtZXMpfSxkZXBlbmRlbmNpZXM6W1pzXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKTtj''@;'; + put 'put ''bGFzcyBVantjb25zdHJ1Y3RvcihnKXt0aGlzLnllYXI9Zyx0aGlzLnllYXJSYW5nZT1bXSx0aGlzLmdlbmVyYXRlWWVhclJhbmdlKCl9Z2V0IG1pZGRsZVllYXIoKXtyZXR1cm4gdGhpcy55ZWFyUmFuZ2VbTWF0aC5mbG9vcih0aGlzLnllYXJSYW5nZS5sZW5ndGgvMildfWdlbmVyYXRlWWVh''@;'; + put 'put ''clJhbmdlKCl7Y29uc3QgaD10aGlzLnllYXItdGhpcy55ZWFyJTEwO3RoaXMueWVhclJhbmdlPXRoaXMuZ2VuZXJhdGVSYW5nZShoLGgrMTApfWdlbmVyYXRlUmFuZ2UoZyxoKXtyZXR1cm4gQXJyYXkuZnJvbSh7bGVuZ3RoOmgtZ30sKHYseSk9PnkrZyl9bmV4dERlY2FkZSgpe3JldHVybiBu''@;'; + put 'put ''ZXcgVWoodGhpcy55ZWFyKzEwKX1wcmV2aW91c0RlY2FkZSgpe3JldHVybiBuZXcgVWoodGhpcy55ZWFyLTEwKX1jdXJyZW50RGVjYWRlKCl7cmV0dXJuIG5ldyBVaigobmV3IERhdGUpLmdldEZ1bGxZZWFyKCkpfWluUmFuZ2UoZyl7cmV0dXJuIHRoaXMueWVhclJhbmdlLmluZGV4T2YoZyk+''@;'; + put 'put ''LTF9fWxldCBqQWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZT1oLHRoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZT12LHRoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2U9eSx0aGlzLl9lbFJlZj1DLHRoaXMuY29tbW9uU3Ry''@;'; + put 'put ''aW5ncz1JLHRoaXMueWVhclJhbmdlTW9kZWw9bmV3IFVqKHRoaXMuY2FsZW5kYXJZZWFyKSx0aGlzLl9mb2N1c2VkWWVhcj10aGlzLmNhbGVuZGFyWWVhcix0aGlzLnVwZGF0ZVJhbmdlKHRoaXMueWVhclJhbmdlTW9kZWwpfWdldCBjYWxlbmRhclllYXIoKXtyZXR1cm4gdGhpcy5fZGF0ZU5h''@;'; + put 'put ''dmlnYXRpb25TZXJ2aWNlLmRpc3BsYXllZENhbGVuZGFyLnllYXJ9aW5jcmVtZW50Rm9jdXNZZWFyQnkoaCl7dGhpcy5fZm9jdXNlZFllYXI9dGhpcy5fZm9jdXNlZFllYXIraCx0aGlzLnllYXJSYW5nZU1vZGVsLmluUmFuZ2UodGhpcy5fZm9jdXNlZFllYXIpfHwodGhpcy55ZWFyUmFuZ2VN''@;'; + put 'put ''b2RlbD1oPjA/dGhpcy55ZWFyUmFuZ2VNb2RlbC5uZXh0RGVjYWRlKCk6dGhpcy55ZWFyUmFuZ2VNb2RlbC5wcmV2aW91c0RlY2FkZSgpKSx0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZil9Y2hhbmdlWWVhcihoKXt0aGlzLl9kYXRlTmF2aWdhdGlv''@;'; + put 'put ''blNlcnZpY2UuY2hhbmdlWWVhcihoKSx0aGlzLl92aWV3TWFuYWdlclNlcnZpY2UuY2hhbmdlVG9EYXlWaWV3KCl9cHJldmlvdXNEZWNhZGUoKXt0aGlzLnllYXJSYW5nZU1vZGVsPXRoaXMueWVhclJhbmdlTW9kZWwucHJldmlvdXNEZWNhZGUoKSx0aGlzLnVwZGF0ZVJhbmdlKHRoaXMueWVh''@;'; + put 'put ''clJhbmdlTW9kZWwpfWN1cnJlbnREZWNhZGUoKXt0aGlzLnllYXJSYW5nZU1vZGVsLmluUmFuZ2UodGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnRvZGF5LnllYXIpfHwodGhpcy55ZWFyUmFuZ2VNb2RlbD10aGlzLnllYXJSYW5nZU1vZGVsLmN1cnJlbnREZWNhZGUoKSksdGhpcy5fZGF0''@;'; + put 'put ''ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpLHRoaXMudXBkYXRlUmFuZ2UodGhpcy55ZWFyUmFuZ2VNb2RlbCl9bmV4dERlY2FkZSgpe3RoaXMueWVhclJhbmdlTW9kZWw9dGhpcy55ZWFyUmFuZ2VNb2RlbC5uZXh0RGVjYWRlKCksdGhpcy51cGRhdGVSYW5nZSh0''@;'; + put 'put ''aGlzLnllYXJSYW5nZU1vZGVsKX1nZXRUYWJJbmRleChoKXtyZXR1cm4gdGhpcy55ZWFyUmFuZ2VNb2RlbC5pblJhbmdlKHRoaXMuX2ZvY3VzZWRZZWFyKXx8KHRoaXMuX2ZvY3VzZWRZZWFyPXRoaXMueWVhclJhbmdlTW9kZWwuaW5SYW5nZSh0aGlzLmNhbGVuZGFyWWVhcik/dGhpcy5jYWxl''@;'; + put 'put ''bmRhclllYXI6dGhpcy55ZWFyUmFuZ2VNb2RlbC5taWRkbGVZZWFyKSx0aGlzLl9mb2N1c2VkWWVhcj09PWg/MDotMX1vbktleURvd24oaCl7aWYoaCl7Y29uc3Qgdj1oLmtleUNvZGU7Mzg9PT12PyhoLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbmNyZW1lbnRGb2N1c1llYXJCeSgtMSkpOjQw''@;'; + put 'put ''PT09dj8oaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5jcmVtZW50Rm9jdXNZZWFyQnkoMSkpOjM5PT09dj8oaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5jcmVtZW50Rm9jdXNZZWFyQnkoNSkpOjM3PT09diYmKGgucHJldmVudERlZmF1bHQoKSx0aGlzLmluY3JlbWVudEZvY3VzWWVhckJ5''@;'; + put 'put ''KC01KSl9fXVwZGF0ZVJhbmdlKGgpe3RoaXMuZGVjYWRlUmFuZ2U9YCR7aC55ZWFyUmFuZ2VbMF19IHRvICR7aC55ZWFyUmFuZ2VbaC55ZWFyUmFuZ2UubGVuZ3RoLTFdfWB9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxS''@;'; + put 'put ''ZWYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChnOSksWHQoREwpLFh0KElMKSxYdChibyksWHQobnMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXllYXJwaWNrZXIiXV0saG9zdFZhcnM6Mixob3N0QmluZGlu''@;'; + put 'put ''Z3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJrZXlkb3duIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbktleURvd24oQyl9KSwyJmgmJkZpKCJ5ZWFycGlja2VyIiwhMCl9LGRlY2xzOjksdmFyczo3LGNvbnN0czpbWzEsInllYXItc3dpdGNoZXJzIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjYWxl''@;'; + put 'put ''bmRhci1idG4iLCJzd2l0Y2hlciIsMywiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJsZWZ0Il0sWyJzaGFwZSIsImV2ZW50Il0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiXSxbMSwieWVhcnMiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImNh''@;'; + put 'put ''bGVuZGFyLWJ0biB5ZWFyIiwzLCJpcy1zZWxlY3RlZCIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInR5cGUiLCJidXR0b24iLDEsImNhbGVuZGFyLWJ0biIsInllYXIiLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoaXQoMCwiZGl2IiwwKSgxLCJidXR0''@;'; + put 'put ''b24iLDEpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5wcmV2aW91c0RlY2FkZSgpfSksQ3IoMiwiY2RzLWljb24iLDIpLHN0KCksaXQoMywiYnV0dG9uIiwxKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuY3VycmVudERlY2FkZSgpfSksQ3IoNCwiY2RzLWljb24iLDMp''@;'; + put 'put ''LHN0KCksaXQoNSwiYnV0dG9uIiwxKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYubmV4dERlY2FkZSgpfSksQ3IoNiwiY2RzLWljb24iLDQpLHN0KCkoKSxpdCg3LCJkaXYiLDUpLHJuKDgsciQsMiw0LCJidXR0b24iLDYpLHN0KCkpLDImaCYmKHV0KDEpLHppKCJhcmlhLWxhYmVs''@;'; + put 'put ''Iix2LmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyUHJldmlvdXNEZWNhZGUpLHV0KDEpLHppKCJ0aXRsZSIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclByZXZpb3VzRGVjYWRlKSx1dCgxKSx6aSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tl''@;'; + put 'put ''ckN1cnJlbnREZWNhZGUpLHV0KDEpLHppKCJ0aXRsZSIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckN1cnJlbnREZWNhZGUpLHV0KDEpLHppKCJhcmlhLWxhYmVsIix2LmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyTmV4dERlY2FkZSksdXQoMSksemkoInRpdGxlIix2LmNv''@;'; + put 'put ''bW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyTmV4dERlY2FkZSksdXQoMiksVHQoIm5nRm9yT2YiLHYueWVhclJhbmdlTW9kZWwueWVhclJhbmdlKSl9LGRlcGVuZGVuY2llczpbWm8sWnNdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLFpBZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgs''@;'; + put 'put ''dix5LEMpe3RoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZT1oLHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZT12LHRoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9eSx0aGlzLmNvbW1vblN0cmluZ3M9Q31nZXQgbW9udGhBdHRyU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29tbW9uU3RyaW5ncy5wYXJz''@;'; + put 'put ''ZSh0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyU2VsZWN0TW9udGhUZXh0LHtDQUxFTkRBUl9NT05USDp0aGlzLmNhbGVuZGFyTW9udGh9KX1nZXQgeWVhckF0dHJTdHJpbmcoKXtyZXR1cm4gdGhpcy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlz''@;'; + put 'put ''LmRhdGVwaWNrZXJTZWxlY3RZZWFyVGV4dCx7Q0FMRU5EQVJfWUVBUjp0aGlzLmNhbGVuZGFyWWVhci50b1N0cmluZygpfSl9Y2hhbmdlVG9Nb250aFZpZXcoKXt0aGlzLl92aWV3TWFuYWdlclNlcnZpY2UuY2hhbmdlVG9Nb250aFZpZXcoKX1jaGFuZ2VUb1llYXJWaWV3KCl7dGhpcy5fdmll''@;'; + put 'put ''d01hbmFnZXJTZXJ2aWNlLmNoYW5nZVRvWWVhclZpZXcoKX1nZXQgY2FsZW5kYXJNb250aCgpe3JldHVybiB0aGlzLl9sb2NhbGVIZWxwZXJTZXJ2aWNlLmxvY2FsZU1vbnRoc0FiYnJldmlhdGVkW3RoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5kaXNwbGF5ZWRDYWxlbmRhci5tb250aF19''@;'; + put 'put ''Z2V0IGNhbGVuZGFyWWVhcigpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZGlzcGxheWVkQ2FsZW5kYXIueWVhcn1uZXh0TW9udGgoKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UubW92ZVRvTmV4dE1vbnRoKCl9cHJldmlvdXNNb250aCgpe3RoaXMuX2RhdGVOYXZp''@;'; + put 'put ''Z2F0aW9uU2VydmljZS5tb3ZlVG9QcmV2aW91c01vbnRoKCl9Y3VycmVudE1vbnRoKCl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLm1vdmVUb0N1cnJlbnRNb250aCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChETCksWHQoZzkpLFh0''@;'; + put 'put ''KEdqKSxYdChucykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF5cGlja2VyIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiZGF5cGlja2VyIiwhMCl9LGRlY2xzOjE4LHZhcnM6MTMsY29uc3RzOltbMSwiY2xyLXNy''@;'; + put 'put ''LW9ubHkiXSxbMSwiY2FsZW5kYXItaGVhZGVyIl0sWzEsImNhbGVuZGFyLXBpY2tlcnMiXSxbInR5cGUiLCJidXR0b24iLDEsImNhbGVuZGFyLWJ0biIsIm1vbnRocGlja2VyLXRyaWdnZXIiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjYWxlbmRhci1idG4iLCJ5ZWFycGlja2Vy''@;'; + put 'put ''LXRyaWdnZXIiLDMsImNsaWNrIl0sWzEsImNhbGVuZGFyLXN3aXRjaGVycyJdLFsidHlwZSIsImJ1dHRvbiIsMSwiY2FsZW5kYXItYnRuIiwic3dpdGNoZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwibGVmdCJdLFsic2hhcGUiLCJldmVudCJdLFsic2hhcGUi''@;'; + put 'put ''LCJhbmdsZSIsImRpcmVjdGlvbiIsInJpZ2h0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoaXQoMCwiZGl2IiwwKSxVdCgxKSxzdCgpLGl0KDIsImRpdiIsMSkoMywiZGl2IiwyKSg0LCJidXR0b24iLDMpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5jaGFuZ2VUb01v''@;'; + put 'put ''bnRoVmlldygpfSksVXQoNSksc3QoKSxpdCg2LCJidXR0b24iLDQpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5jaGFuZ2VUb1llYXJWaWV3KCl9KSxVdCg3KSxzdCgpKCksaXQoOCwiZGl2Iiw1KSg5LCJidXR0b24iLDYpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5w''@;'; + put 'put ''cmV2aW91c01vbnRoKCl9KSxDcigxMCwiY2RzLWljb24iLDcpLHN0KCksaXQoMTEsImJ1dHRvbiIsNiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmN1cnJlbnRNb250aCgpfSksQ3IoMTIsImNkcy1pY29uIiw4KSxzdCgpLGl0KDEzLCJidXR0b24iLDYpLFluKCJjbGljayIsZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdi5uZXh0TW9udGgoKX0pLENyKDE0LCJjZHMtaWNvbiIsOSksc3QoKSgpKCksQ3IoMTUsImNsci1jYWxlbmRhciIpLGl0KDE2LCJkaXYiLDApLFV0KDE3KSxzdCgpKSwyJmgmJih1dCgxKSxHaSh2LmNvbW1vblN0cmluZ3Mua2V5cy5tb2RhbENvbnRlbnRTdGFydCks''@;'; + put 'put ''dXQoMyksemkoImFyaWEtbGFiZWwiLHYubW9udGhBdHRyU3RyaW5nKSgidGl0bGUiLHYubW9udGhBdHRyU3RyaW5nKSx1dCgxKSxKaSgiICIsdi5jYWxlbmRhck1vbnRoLCIgIiksdXQoMSksemkoImFyaWEtbGFiZWwiLHYueWVhckF0dHJTdHJpbmcpKCJ0aXRsZSIsdi55ZWFyQXR0clN0cmlu''@;'; + put 'put ''ZyksdXQoMSksSmkoIiAiLHYuY2FsZW5kYXJZZWFyLCIgIiksdXQoMiksemkoImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJQcmV2aW91c01vbnRoKSx1dCgxKSx6aSgidGl0bGUiLHYuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJQcmV2aW91c01vbnRo''@;'; + put 'put ''KSx1dCgxKSx6aSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckN1cnJlbnRNb250aCksdXQoMSksemkoInRpdGxlIix2LmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyQ3VycmVudE1vbnRoKSx1dCgxKSx6aSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJp''@;'; + put 'put ''bmdzLmtleXMuZGF0ZXBpY2tlck5leHRNb250aCksdXQoNCksR2kodi5jb21tb25TdHJpbmdzLmtleXMubW9kYWxDb250ZW50RW5kKSl9LGRlcGVuZGVuY2llczpbSEFlLFpvXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSx6QWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMu''@;'; + put 'put ''Y29tbW9uU3RyaW5ncz1oLHRoaXMudmlld01hbmFnZXJTZXJ2aWNlPXZ9Z2V0IGlzTW9udGhWaWV3KCl7cmV0dXJuIHRoaXMudmlld01hbmFnZXJTZXJ2aWNlLmlzTW9udGhWaWV3fWdldCBpc1llYXJWaWV3KCl7cmV0dXJuIHRoaXMudmlld01hbmFnZXJTZXJ2aWNlLmlzWWVhclZpZXd9Z2V0''@;'; + put 'put ''IGlzRGF5Vmlldygpe3JldHVybiB0aGlzLnZpZXdNYW5hZ2VyU2VydmljZS5pc0RheVZpZXd9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KG5zKSxYdChETCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF0ZXBp''@;'; + put 'put ''Y2tlci12aWV3LW1hbmFnZXIiXV0saG9zdEF0dHJzOlsicm9sZSIsImRpYWxvZyJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiYoemkoImFyaWEtbW9kYWwiLCEwKSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckRpYWxvZ0xh''@;'; + put 'put ''YmVsKSxGaSgiZGF0ZXBpY2tlciIsITApKX0sZmVhdHVyZXM6W2hvKFtJTF0pXSxkZWNsczozLHZhcnM6Myxjb25zdHM6W1s0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYocm4oMCxpJCwxLDAsImNsci1tb250aHBpY2tlciIsMCkscm4oMSxvJCwxLDAsImNsci15ZWFy''@;'; + put 'put ''cGlja2VyIiwwKSxybigyLFZ1ZSwxLDAsImNsci1kYXlwaWNrZXIiLDApKSwyJmgmJihUdCgibmdJZiIsdi5pc01vbnRoVmlldyksdXQoMSksVHQoIm5nSWYiLHYuaXNZZWFyVmlldyksdXQoMSksVHQoIm5nSWYiLHYuaXNEYXlWaWV3KSl9LGRlcGVuZGVuY2llczpbTkFlLGpBZSxaQWUsVm9d''@;'; + put 'put ''LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLFFqPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBadHtjb25zdHJ1Y3RvcihoLHYseSxDLEksaix1ZSxfZSxCZSxOZSxLZSxkdCxPdCl7c3VwZXIoT3QsS2UsTmUsZHQpLHRoaXMucmVuZGVyZXI9aCx0aGlzLnRvZ2dsZVNlcnZpY2U9dix0aGlzLmRhdGVO''@;'; + put 'put ''YXZpZ2F0aW9uU2VydmljZT15LHRoaXMuZGF0ZXBpY2tlckVuYWJsZWRTZXJ2aWNlPUMsdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlPUksdGhpcy5kYXRlSU9TZXJ2aWNlPWosdGhpcy5jb21tb25TdHJpbmdzPXVlLHRoaXMuZm9jdXNTZXJ2aWNlPV9lLHRoaXMudmlld01hbmFnZXJTZXJ2''@;'; + put 'put ''aWNlPUJlLHRoaXMuY29udHJvbENsYXNzU2VydmljZT1OZSx0aGlzLmxheW91dFNlcnZpY2U9S2UsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPWR0LHRoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlPU90LHRoaXMuZm9jdXM9ITEsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5mb2N1c1NlcnZp''@;'; + put 'put ''Y2UuZm9jdXNDaGFuZ2Uuc3Vic2NyaWJlKCR0PT57dGhpcy5mb2N1cz0kdH0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UubWFya0FzVG91Y2hlZCgpfSkpfXNl''@;'; + put 'put ''dCBjbHJQb3NpdGlvbihoKXtoJiZjW2hdJiYodGhpcy52aWV3TWFuYWdlclNlcnZpY2UucG9zaXRpb249Y1toXSl9Z2V0IHBvcG92ZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLnZpZXdNYW5hZ2VyU2VydmljZS5wb3NpdGlvbn1nZXQgb3Blbigpe3JldHVybiB0aGlzLnRvZ2dsZVNlcnZpY2Uu''@;'; + put 'put ''b3Blbn1zZXQgYWN0aW9uQnV0dG9uKGgpe3RoaXMudG9nZ2xlQnV0dG9uPWh9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGg9PntoP3RoaXMuaW5pdGlhbGl6ZUNhbGVuZGFyKCk6dGhpcy50''@;'; + put 'put ''b2dnbGVCdXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9yRGF0ZUNoYW5nZXMoKSl9Z2V0IGlzRW5hYmxlZCgpe3JldHVybiB0aGlzLmRhdGVwaWNrZXJFbmFibGVkU2VydmljZS5pc0VuYWJsZWR9Z2V0IGlzSW5wdXRE''@;'; + put 'put ''YXRlRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5jb250cm9sJiZ0aGlzLmNvbnRyb2wuZGlzYWJsZWR8fHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZSYmdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlLmRpc2FibGVkfWdldFRvZ2dsZUJ1dHRvbkxhYmVsKGgpe2lmKGgpe2NvbnN0IHY9dGhp''@;'; + put 'put ''cy5kYXRlSU9TZXJ2aWNlLnRvTG9jYWxlRGlzcGxheUZvcm1hdFN0cmluZyhoLnRvRGF0ZSgpKTtyZXR1cm4gdGhpcy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJUb2dnbGVDaGFuZ2VEYXRlTGFiZWwse1NFTEVDVEVEX0RBVEU6dn0pfHx0''@;'; + put 'put ''aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyVG9nZ2xlfXJldHVybiB0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyVG9nZ2xlQ2hvb3NlRGF0ZUxhYmVsfHx0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyVG9nZ2xlfWxpc3RlbkZvckRhdGVDaGFuZ2Vz''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5Q2hhbmdlLnBpcGUoTjUodGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXkpKS5zdWJzY3JpYmUoaD0+e2NvbnN0IHY9dGhpcy5nZXRUb2dnbGVCdXR0b25MYWJlbChoKSx5PXRoaXMudG9n''@;'; + put 'put ''Z2xlQnV0dG9uLm5hdGl2ZUVsZW1lbnQ7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoeSwiYXJpYS1sYWJlbCIsdiksdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoeSwidGl0bGUiLHYpfSl9aW5pdGlhbGl6ZUNhbGVuZGFyKCl7dGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2UuaW5pdGlh''@;'; + put 'put ''bGl6ZUNhbGVuZGFyKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KEdhKSxYdCh6cyksWHQoZzkpLFh0KHNxKSxYdChZaiksWHQoV2opLFh0KG5zKSxYdChDZmUpLFh0KERMKSxYdChFdCksWHQoV2UsOCksWHQoSGUpLFh0KHFlKSl9LGQuXHUw''@;'; + put 'put ''Mjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kYXRlLWNvbnRhaW5lciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJnZvKGp1ZSw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LmFjdGlvbkJ1dHRvbj15LmZpcnN0KX19LGhvc3RWYXJzOjgsaG9zdEJpbmRp''@;'; + put 'put ''bmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLWRhdGUtY29udGFpbmVyIiwhMCkoImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLHYuaXNJbnB1dERhdGVEaXNhYmxlZCkoImNsci1mb3JtLWNvbnRyb2wiLCEwKSgiY2xyLXJvdyIsdi5hZGRHcmlkKCkpfSxpbnB1dHM6e2NsclBvc2l0''@;'; + put 'put ''aW9uOiJjbHJQb3NpdGlvbiJ9LGZlYXR1cmVzOltobyhbSyx6cyxoOCxHcyxHaixFdCxDZmUsSGUsV2osZzksc3EsWWosREwscWVdKSxEb10sbmdDb250ZW50U2VsZWN0b3JzOkt5LGRlY2xzOjEzLHZhcnM6MTQsY29uc3RzOltbNCwibmdJZiJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIi''@;'; + put 'put ''LDMsIm5nQ2xhc3MiXSxbImNsclBvcG92ZXJBbmNob3IiLCIiLDEsImNsci1pbnB1dC13cmFwcGVyIl0sWzEsImNsci1pbnB1dC1ncm91cCJdLFsidHlwZSIsImJ1dHRvbiIsImNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b24iLCIiLCJjbGFzcyIsImNsci1pbnB1dC1ncm91cC1pY29uLWFjdGlv''@;'; + put 'put ''biIsMywiZGlzYWJsZWQiLDQsIm5nSWYiXSxbImNsckZvY3VzVHJhcCIsIiIsNCwiY2xyUG9wb3ZlckNvbnRlbnQiLCJjbHJQb3BvdmVyQ29udGVudEF0IiwiY2xyUG9wb3ZlckNvbnRlbnRPdXRzaWRlQ2xpY2tUb0Nsb3NlIiwiY2xyUG9wb3ZlckNvbnRlbnRTY3JvbGxUb0Nsb3NlIl0sWyJj''@;'; + put 'put ''bGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic3RhdHVzIiwiZGFuZ2VyIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIs''@;'; + put 'put ''InN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLCJjbHJQb3BvdmVyT3BlbkNsb3NlQnV0dG9uIiwiIiwxLCJjbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb24iLDMsImRpc2FibGVkIl0sWyJhY3Rpb25CdXR0b24iLCIiXSxbInN0YXR1cyIs''@;'; + put 'put ''ImluZm8iLCJzaGFwZSIsImNhbGVuZGFyIl0sWyJjbHJGb2N1c1RyYXAiLCIiXSxbInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdLFsic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJz''@;'; + put 'put ''dGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKFd1ZSksTmkoMCkscm4oMSxadWUsMSwwLCJsYWJlbCIsMCksaXQoMiwiZGl2IiwxKSgzLCJkaXYiLDIpKDQsImRpdiIsMyks''@;'; + put 'put ''TmkoNSwxKSxybig2LHZnLDMsMSwiYnV0dG9uIiw0KSxybig3LG1qLDEsMCwiY2xyLWRhdGVwaWNrZXItdmlldy1tYW5hZ2VyIiw1KSxzdCgpLHJuKDgsenVlLDEsMCwiY2RzLWljb24iLDYpLHJuKDksYSQsMSwwLCJjZHMtaWNvbiIsNyksc3QoKSxybigxMCxsJCwxLDAsIm5nLWNvbnRlbnQi''@;'; + put 'put ''LDApLHJuKDExLHMkLDEsMCwibmctY29udGVudCIsMCkscm4oMTIsR3VlLDEsMCwibmctY29udGVudCIsMCksc3QoKSksMiZoJiYodXQoMSksVHQoIm5nSWYiLCF2LmxhYmVsJiZ2LmFkZEdyaWQoKSksdXQoMSksVHQoIm5nQ2xhc3MiLHYuY29udHJvbENsYXNzKCkpLHV0KDIpLEZpKCJjbHIt''@;'; + put 'put ''Zm9jdXMiLHYuZm9jdXMpLHV0KDIpLFR0KCJuZ0lmIix2LmlzRW5hYmxlZCksdXQoMSksVHQoImNsclBvcG92ZXJDb250ZW50Iix2Lm9wZW4pKCJjbHJQb3BvdmVyQ29udGVudEF0Iix2LnBvcG92ZXJQb3NpdGlvbikoImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZSIsITAp''@;'; + put 'put ''KCJjbHJQb3BvdmVyQ29udGVudFNjcm9sbFRvQ2xvc2UiLCEwKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SW52YWxpZCksdXQoMSksVHQoIm5nSWYiLHYuc2hvd1ZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SGVscGVyKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SW52YWxpZCksdXQoMSks''@;'; + put 'put ''VHQoIm5nSWYiLHYuc2hvd1ZhbGlkKSl9LGRlcGVuZGVuY2llczpbekFlLFZvLG90LGxjLHN3LHV3LFpvLGRsLGZ3XSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxUZmU9KCgpPT57Y2xhc3MgZCBleHRlbmRzIFNue2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqLHVlLF9lLEJlLE5lLEtlLGR0LE90''@;'; + put 'put ''KXtzdXBlcihoLFFqLHYsSSxDLHkpLHRoaXMuZWw9eSx0aGlzLnJlbmRlcmVyPUMsdGhpcy5jb250cm9sPUksdGhpcy5jb250YWluZXI9aix0aGlzLmRhdGVJT1NlcnZpY2U9dWUsdGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2U9X2UsdGhpcy5kYXRlcGlja2VyRW5hYmxlZFNlcnZpY2U9QmUs''@;'; + put 'put ''dGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlPU5lLHRoaXMucGxhdGZvcm1JZD1LZSx0aGlzLmZvY3VzU2VydmljZT1kdCx0aGlzLmRhdGVwaWNrZXJGb2N1c1NlcnZpY2U9T3QsdGhpcy5kYXRlQ2hhbmdlPW5ldyBhcighMSksdGhpcy5pbmRleD0xfXNldCBkYXRlKGgpe3RoaXMucHJldmlv''@;'; + put 'put ''dXNEYXRlQ2hhbmdlIT09aCYmdGhpcy51cGRhdGVEYXRlKHRoaXMuZ2V0VmFsaWREYXRlVmFsdWVGcm9tRGF0ZShoKSksdGhpcy5pbml0aWFsQ2xyRGF0ZUlucHV0VmFsdWV8fCh0aGlzLmluaXRpYWxDbHJEYXRlSW5wdXRWYWx1ZT1oKX1zZXQgbWluKGgpe3RoaXMuZGF0ZUlPU2VydmljZS5z''@;'; + put 'put ''ZXRNaW5EYXRlKGgpfXNldCBtYXgoaCl7dGhpcy5kYXRlSU9TZXJ2aWNlLnNldE1heERhdGUoaCl9bmdPbkluaXQoKXtzdXBlci5uZ09uSW5pdCgpLHRoaXMucG9wdWxhdGVTZXJ2aWNlc0Zyb21Db250YWluZXJDb21wb25lbnQoKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3Rl''@;'; + put 'put ''bkZvclVzZXJTZWxlY3RlZERheUNoYW5nZXMoKSx0aGlzLmxpc3RlbkZvckNvbnRyb2xWYWx1ZUNoYW5nZXMoKSx0aGlzLmxpc3RlbkZvclRvdWNoQ2hhbmdlcygpLHRoaXMubGlzdGVuRm9yRGlydHlDaGFuZ2VzKCksdGhpcy5saXN0ZW5Gb3JJbnB1dFJlZm9jdXMoKSl9bmdBZnRlclZpZXdJ''@;'; + put 'put ''bml0KCl7dGhpcy5wcm9jZXNzSW5pdGlhbElucHV0cygpfXNldEZvY3VzU3RhdGVzKCl7dGhpcy5zZXRGb2N1cyghMCl9dHJpZ2dlclZhbGlkYXRpb24oKXtzdXBlci50cmlnZ2VyVmFsaWRhdGlvbigpLHRoaXMuc2V0Rm9jdXMoITEpfWdldCBwbGFjZWhvbGRlclRleHQoKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5wbGFjZWhvbGRlcj90aGlzLnBsYWNlaG9sZGVyOnRoaXMuZGF0ZUlPU2VydmljZS5wbGFjZWhvbGRlclRleHR9Z2V0IGlucHV0VHlwZSgpe3JldHVybiBTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLnVzaW5nTmF0aXZlRGF0ZXBpY2tlcigpPyJkYXRlIjoidGV4dCJ9b25WYWx1ZUNoYW5n''@;'; + put 'put ''ZShoKXtjb25zdCB2PXRoaXMuZGF0ZUlPU2VydmljZS5nZXREYXRlVmFsdWVGcm9tRGF0ZVN0cmluZyhoLnZhbHVlKTtpZih0aGlzLnVzaW5nQ2xhcml0eURhdGVwaWNrZXIoKSYmdil0aGlzLnVwZGF0ZURhdGUodiwhMCk7ZWxzZSBpZih0aGlzLnVzaW5nTmF0aXZlRGF0ZXBpY2tlcigpKXtj''@;'; + put 'put ''b25zdFt5LEMsSV09aC52YWx1ZS5zcGxpdCgiLSIpO3RoaXMudXBkYXRlRGF0ZShuZXcgRGF0ZSgreSwrQy0xLCtJKSwhMCl9ZWxzZSB0aGlzLmVtaXREYXRlT3V0cHV0KG51bGwpfXNldCBkaXNhYmxlZChoKXt0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UmJnRoaXMuZGF0ZUZvcm1Db250''@;'; + put 'put ''cm9sU2VydmljZS5zZXREaXNhYmxlZChqYShoKSl9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZT90aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UuZGlzYWJsZWQ6bnVsbH11c2luZ0NsYXJpdHlEYXRlcGlja2VyKCl7cmV0dXJuIHRoaXMuZGF0ZXBp''@;'; + put 'put ''Y2tlckVuYWJsZWRTZXJ2aWNlLmlzRW5hYmxlZH11c2luZ05hdGl2ZURhdGVwaWNrZXIoKXtyZXR1cm4hdGhpcy5kYXRlcGlja2VyRW5hYmxlZFNlcnZpY2UuaXNFbmFibGVkfXNldEZvY3VzKGgpe3RoaXMuZm9jdXNTZXJ2aWNlJiYodGhpcy5mb2N1c1NlcnZpY2UuZm9jdXNlZD1oKX1wb3B1''@;'; + put 'put ''bGF0ZVNlcnZpY2VzRnJvbUNvbnRhaW5lckNvbXBvbmVudCgpe3RoaXMuY29udGFpbmVyfHwodGhpcy5kYXRlSU9TZXJ2aWNlPXRoaXMuZ2V0UHJvdmlkZXJGcm9tQ29udGFpbmVyKFdqKSx0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZT10aGlzLmdldFByb3ZpZGVyRnJvbUNvbnRhaW5lcihn''@;'; + put 'put ''OSksdGhpcy5kYXRlcGlja2VyRW5hYmxlZFNlcnZpY2U9dGhpcy5nZXRQcm92aWRlckZyb21Db250YWluZXIoc3EpLHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZT10aGlzLmdldFByb3ZpZGVyRnJvbUNvbnRhaW5lcihZaikpfXByb2Nlc3NJbml0aWFsSW5wdXRzKCl7dGhpcy5kYXRlcGlj''@;'; + put 'put ''a2VySGFzRm9ybUNvbnRyb2woKT90aGlzLnVwZGF0ZURhdGUodGhpcy5kYXRlSU9TZXJ2aWNlLmdldERhdGVWYWx1ZUZyb21EYXRlU3RyaW5nKHRoaXMuY29udHJvbC52YWx1ZSkpOnRoaXMudXBkYXRlRGF0ZSh0aGlzLmluaXRpYWxDbHJEYXRlSW5wdXRWYWx1ZSl9dXBkYXRlRGF0ZShoLHY9''@;'; + put 'put ''ITEpe2NvbnN0IHk9dGhpcy5nZXRWYWxpZERhdGVWYWx1ZUZyb21EYXRlKGgpO3Y/dGhpcy5lbWl0RGF0ZU91dHB1dCh5KTp0aGlzLnByZXZpb3VzRGF0ZUNoYW5nZT15LHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlJiYodGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXk9''@;'; + put 'put ''eT9uZXcgczQoeS5nZXRGdWxsWWVhcigpLHkuZ2V0TW9udGgoKSx5LmdldERhdGUoKSk6bnVsbCksdGhpcy51cGRhdGVJbnB1dCh5KX11cGRhdGVJbnB1dChoKXtpZihoKXtjb25zdCB2PXRoaXMuZGF0ZUlPU2VydmljZS50b0xvY2FsZURpc3BsYXlGb3JtYXRTdHJpbmcoaCk7dGhpcy51c2lu''@;'; + put 'put ''Z05hdGl2ZURhdGVwaWNrZXIoKT8oaC5zZXRNaW51dGVzKGguZ2V0TWludXRlcygpLWguZ2V0VGltZXpvbmVPZmZzZXQoKSksdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsInZhbHVlQXNEYXRlIixoKSk6dGhpcy5kYXRlcGlja2VySGFzRm9ybUNvbnRy''@;'; + put 'put ''b2woKSYmdiE9PXRoaXMuY29udHJvbC52YWx1ZT90aGlzLmNvbnRyb2wuY29udHJvbC5zZXRWYWx1ZSh2KTp0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWwubmF0aXZlRWxlbWVudCwidmFsdWUiLHYpfWVsc2UgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsLm5hdGl2''@;'; + put 'put ''ZUVsZW1lbnQsInZhbHVlIiwiIil9Z2V0VmFsaWREYXRlVmFsdWVGcm9tRGF0ZShoKXtpZih0aGlzLmRhdGVJT1NlcnZpY2Upe2NvbnN0IHY9dGhpcy5kYXRlSU9TZXJ2aWNlLnRvTG9jYWxlRGlzcGxheUZvcm1hdFN0cmluZyhoKTtyZXR1cm4gdGhpcy5kYXRlSU9TZXJ2aWNlLmdldERhdGVW''@;'; + put 'put ''YWx1ZUZyb21EYXRlU3RyaW5nKHYpfXJldHVybiBudWxsfWVtaXREYXRlT3V0cHV0KGgpeyFmdW5jdGlvbiByT2UoZCxnKXtyZXR1cm4gZCBpbnN0YW5jZW9mIERhdGUmJmcgaW5zdGFuY2VvZiBEYXRlJiZkLmdldEZ1bGxZZWFyKCk9PT1nLmdldEZ1bGxZZWFyKCkmJmQuZ2V0TW9udGgoKT09''@;'; + put 'put ''PWcuZ2V0TW9udGgoKSYmZC5nZXREYXRlKCk9PT1nLmdldERhdGUoKX0oaCx0aGlzLnByZXZpb3VzRGF0ZUNoYW5nZSk/KHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGgpLHRoaXMucHJldmlvdXNEYXRlQ2hhbmdlPWgpOiFoJiZ0aGlzLnByZXZpb3VzRGF0ZUNoYW5nZSYmKHRoaXMuZGF0ZUNoYW5n''@;'; + put 'put ''ZS5lbWl0KG51bGwpLHRoaXMucHJldmlvdXNEYXRlQ2hhbmdlPW51bGwpfWRhdGVwaWNrZXJIYXNGb3JtQ29udHJvbCgpe3JldHVybiEhdGhpcy5jb250cm9sfWxpc3RlbkZvckNvbnRyb2xWYWx1ZUNoYW5nZXMoKXtyZXR1cm4gYWEodGhpcy5kYXRlcGlja2VySGFzRm9ybUNvbnRyb2woKSku''@;'; + put 'put ''cGlwZShMMihoPT5oKSxZaCgoKT0+dGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcyksTDIoKCk9PiF0aGlzLmRhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZWxlbWVudElzRm9jdXNlZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpKSkuc3Vic2NyaWJlKGg9PnRoaXMudXBkYXRlRGF0ZSh0aGlzLmRhdGVJ''@;'; + put 'put ''T1NlcnZpY2UuZ2V0RGF0ZVZhbHVlRnJvbURhdGVTdHJpbmcoaCkpKX1saXN0ZW5Gb3JVc2VyU2VsZWN0ZWREYXlDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5Q2hhbmdlLnN1YnNjcmliZShoPT50aGlzLnVwZGF0ZURhdGUoaC50b0RhdGUo''@;'; + put 'put ''KSwhMCkpfWxpc3RlbkZvclRvdWNoQ2hhbmdlcygpe3JldHVybiB0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UudG91Y2hlZENoYW5nZS5waXBlKEwyKCgpPT50aGlzLmRhdGVwaWNrZXJIYXNGb3JtQ29udHJvbCgpKSkuc3Vic2NyaWJlKCgpPT50aGlzLmNvbnRyb2wuY29udHJvbC5tYXJr''@;'; + put 'put ''QXNUb3VjaGVkKCkpfWxpc3RlbkZvckRpcnR5Q2hhbmdlcygpe3JldHVybiB0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UuZGlydHlDaGFuZ2UucGlwZShMMigoKT0+dGhpcy5kYXRlcGlja2VySGFzRm9ybUNvbnRyb2woKSkpLnN1YnNjcmliZSgoKT0+dGhpcy5jb250cm9sLmNvbnRyb2wu''@;'; + put 'put ''bWFya0FzRGlydHkoKSl9bGlzdGVuRm9ySW5wdXRSZWZvY3VzKCl7cmV0dXJuIHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5Q2hhbmdlLnBpcGUoTDIoaD0+ISFoKSkuc3Vic2NyaWJlKCgpPT50aGlzLmRhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNJbnB1dCh0aGlz''@;'; + put 'put ''LmVsLm5hdGl2ZUVsZW1lbnQpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoVWkpLFh0KGtzKSxYdChibyksWHQoR2EpLFh0KERmLDEwKSxYdChRaiw4KSxYdChXaiw4KSxYdChnOSw4KSxYdChzcSw4KSxYdChZaiw4KSxYdChEMiksWHQoQ2Zl''@;'; + put 'put ''LDgpLFh0KElMKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsckRhdGUiLCIiXV0saG9zdFZhcnM6NSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gdi5zZXRGb2N1c1N0YXRlcygpfSkoImJsdXIi''@;'; + put 'put ''LGZ1bmN0aW9uKCl7cmV0dXJuIHYudHJpZ2dlclZhbGlkYXRpb24oKX0pKCJjaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uVmFsdWVDaGFuZ2UoQy50YXJnZXQpfSksMiZoJiYoUDMoImRpc2FibGVkIix2LmRpc2FibGVkKSx6aSgicGxhY2Vob2xkZXIiLHYucGxhY2Vob2xkZXJUZXh0''@;'; + put 'put ''KSgidHlwZSIsdi5pbnB1dFR5cGUpLEZpKCJjbHItaW5wdXQiLCEwKSl9LGlucHV0czp7cGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIixkYXRlOlsiY2xyRGF0ZSIsImRhdGUiXSxtaW46Im1pbiIsbWF4OiJtYXgiLGRpc2FibGVkOiJkaXNhYmxlZCJ9LG91dHB1dHM6e2RhdGVDaGFuZ2U6ImNs''@;'; + put 'put ''ckRhdGVDaGFuZ2UifSxmZWF0dXJlczpbaG8oW0lMXSksRG9dfSksZH0pKCksbE9lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhLaCxUZixJeSxEc2UsTHNlKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1''@;'; + put 'put ''bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLFIscWEsUmMsVHMsYXEsSnJdXX0pLGR9KSgpO25ldyB6ZSh2b2lkIDApO2xldCBjT2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKHJWLE9zZSxLaCxUZil9fXJldHVybiBkLlx1MDI3''@;'; + put 'put ''NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxuZCxUcyxKcl0sSnJdfSksZH0pKCksR0FlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9keW5hbWljPSExfW5nT25J''@;'; + put 'put ''bml0KCl7dGhpcy5sYWJlbCYmdGhpcy5sYWJlbC5kaXNhYmxlR3JpZCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXJhZGlvLXdyYXBwZXIiXV0sY29udGVudFF1ZXJpZXM6''@;'; + put 'put ''ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxvdCw3KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LmxhYmVsPUMuZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItcmFkaW8td3JhcHBlciIsITApfSxmZWF0dXJlczpbaG8oW0td''@;'; + put 'put ''KV0sbmdDb250ZW50U2VsZWN0b3JzOmMkLGRlY2xzOjMsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChjaCksTmkoMCksTmkoMSwxKSxybigyLHUkLDEsMCwibGFiZWwiLDApKSwyJmgmJih1dCgyKSxUdCgibmdJZiIsIXYubGFiZWwp''@;'; + put 'put ''KX0sZGVwZW5kZW5jaWVzOltWbyxvdF0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksSWZlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBTbntjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3N1cGVyKGgsR0FlLHYseSxDLEkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyho''@;'; + put 'put ''fHxkKShYdChVaSksWHQoa3MpLFh0KERmLDEwKSxYdChHYSksWHQoYm8pKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyUmFkaW8iLCIiXV0sZmVhdHVyZXM6W0RvXX0pLGR9KSgpLGZPZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgWnR7Y29uc3RydWN0b3IoaCx2''@;'; + put 'put ''LHksQyl7c3VwZXIoQyxoLHYseSksdGhpcy5sYXlvdXRTZXJ2aWNlPWgsdGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlPXYsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPXksdGhpcy5pZkNvbnRyb2xTdGF0ZVNlcnZpY2U9Qyx0aGlzLmlubGluZT0hMX1zZXQgY2xySW5saW5lKGgpe3RoaXMuaW5saW5l''@;'; + put 'put ''PSJzdHJpbmciPT10eXBlb2YgaD8iZmFsc2UiIT09aDohIWh9Z2V0IGNscklubGluZSgpe3JldHVybiB0aGlzLmlubGluZX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnNldEFyaWFSb2xlcygpfXNldEFyaWFSb2xlcygpe3RoaXMucm9sZT10aGlzLnJhZGlvcy5sZW5ndGg/Imdyb3VwIjpu''@;'; + put 'put ''dWxsfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChXZSw4KSxYdChFdCksWHQoSGUpLFh0KHFlKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1yYWRpby1jb250YWluZXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rp''@;'; + put 'put ''b24oaCx2LHkpe2lmKDEmaCYmeG8oeSxJZmUsNSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5yYWRpb3M9Qyl9fSxob3N0VmFyczo3LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKHppKCJyb2xlIix2LnJvbGUpLEZpKCJjbHItZm9ybS1jb250cm9sIiwhMCkoImNsci1mb3Jt''@;'; + put 'put ''LWNvbnRyb2wtZGlzYWJsZWQiLG51bGw9PXYuY29udHJvbD9udWxsOnYuY29udHJvbC5kaXNhYmxlZCkoImNsci1yb3ciLHYuYWRkR3JpZCgpKSl9LGlucHV0czp7Y2xySW5saW5lOiJjbHJJbmxpbmUifSxmZWF0dXJlczpbaG8oW0hlLHFlLEV0LGdlXSksRG9dLG5nQ29udGVudFNlbGVjdG9y''@;'; + put 'put ''czpDcCxkZWNsczoxMCx2YXJzOjksY29uc3RzOltbNCwibmdJZiJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiLDMsIm5nQ2xhc3MiXSxbMSwiY2xyLXN1YnRleHQtd3JhcHBlciJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhj''@;'; + put 'put ''bGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJzdGF0dXMiLCJkYW5n''@;'; + put 'put ''ZXIiLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXSxbInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXV0s''@;'; + put 'put ''dGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCh5MCksTmkoMCkscm4oMSxJbCwxLDAsImxhYmVsIiwwKSxpdCgyLCJkaXYiLDEpLE5pKDMsMSksaXQoNCwiZGl2IiwyKSxybig1LHVMLDEsMCwibmctY29udGVudCIsMCkscm4oNixmJCwxLDAsImNkcy1pY29uIiwzKSxybig3LGgkLDEs''@;'; + put 'put ''MCwiY2RzLWljb24iLDQpLHJuKDgsaTksMSwwLCJuZy1jb250ZW50IiwwKSxybig5LGNMLDEsMCwibmctY29udGVudCIsMCksc3QoKSgpKSwyJmgmJih1dCgxKSxUdCgibmdJZiIsIXYubGFiZWwmJnYuYWRkR3JpZCgpKSx1dCgxKSxGaSgiY2xyLWNvbnRyb2wtaW5saW5lIix2LmNscklubGlu''@;'; + put 'put ''ZSksVHQoIm5nQ2xhc3MiLHYuY29udHJvbENsYXNzKCkpLHV0KDMpLFR0KCJuZ0lmIix2LnNob3dIZWxwZXIpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgi''@;'; + put 'put ''bmdJZiIsdi5zaG93VmFsaWQpKX0sZGVwZW5kZW5jaWVzOltWbyxvdCxsYyxab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksaE9lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhLaCxUZil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3''@;'; + put 'put ''KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxKcixSLFRzXSxKcl19KSxkfSkoKSxkT2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKEtoLFRmKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgp''@;'; + put 'put ''e3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLEpyLFIsVHNdLEpyXX0pLGR9KSgpLEpqPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBadHtjb25zdHJ1Y3RvcihoLHYseSxDKXtzdXBlcihDLGgsdix5KSx0aGlzLmxh''@;'; + put 'put ''eW91dFNlcnZpY2U9aCx0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2U9dix0aGlzLm5nQ29udHJvbFNlcnZpY2U9eSx0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZT1DLHRoaXMubXVsdGk9ITF9bmdPbkluaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm5nQ29udHJvbFNlcnZpY2Uu''@;'; + put 'put ''Y29udHJvbENoYW5nZXMuc3Vic2NyaWJlKGg9PntoJiYodGhpcy5tdWx0aT1oLnZhbHVlQWNjZXNzb3IgaW5zdGFuY2VvZiB2cCx0aGlzLmNvbnRyb2w9aCl9KSl9d3JhcHBlckNsYXNzKCl7cmV0dXJuIHRoaXMubXVsdGk/ImNsci1tdWx0aXNlbGVjdC13cmFwcGVyIjoiY2xyLXNlbGVjdC13''@;'; + put 'put ''cmFwcGVyIn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoV2UsOCksWHQoRXQpLFh0KEhlKSxYdChxZSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItc2VsZWN0LWNvbnRhaW5lciJdXSxjb250ZW50UXVlcmllczpm''@;'; + put 'put ''dW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LHZwLDUpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYubXVsdGlwbGU9Qy5maXJzdCl9fSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNsci1mb3JtLWNvbnRyb2wiLCEwKSgiY2xyLWZvcm0tY29udHJv''@;'; + put 'put ''bC1kaXNhYmxlZCIsbnVsbD09di5jb250cm9sP251bGw6di5jb250cm9sLmRpc2FibGVkKSgiY2xyLXJvdyIsdi5hZGRHcmlkKCkpfSxmZWF0dXJlczpbaG8oW3FlLEhlLEssRXRdKSxEb10sbmdDb250ZW50U2VsZWN0b3JzOnAkLGRlY2xzOjEwLHZhcnM6OCxjb25zdHM6W1s0LCJuZ0lmIl0s''@;'; + put 'put ''WzEsImNsci1jb250cm9sLWNvbnRhaW5lciIsMywibmdDbGFzcyJdLFszLCJuZ0NsYXNzIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic3RhdHVzIiwiZGFuZ2VyIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbImNs''@;'; + put 'put ''YXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVl''@;'; + put 'put ''IiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdLFsic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKG5jZSksTmkoMCkscm4oMSxLdWUs''@;'; + put 'put ''MSwwLCJsYWJlbCIsMCksaXQoMiwiZGl2IiwxKSgzLCJkaXYiLDIpLE5pKDQsMSkscm4oNSwkdWUsMSwwLCJjZHMtaWNvbiIsMykscm4oNixxdWUsMSwwLCJjZHMtaWNvbiIsNCksc3QoKSxybig3LGVjZSwxLDAsIm5nLWNvbnRlbnQiLDApLHJuKDgsaWQsMSwwLCJuZy1jb250ZW50IiwwKSxy''@;'; + put 'put ''big5LHRjZSwxLDAsIm5nLWNvbnRlbnQiLDApLHN0KCkpLDImaCYmKHV0KDEpLFR0KCJuZ0lmIiwhdi5sYWJlbCYmdi5hZGRHcmlkKCkpLHV0KDEpLFR0KCJuZ0NsYXNzIix2LmNvbnRyb2xDbGFzcygpKSx1dCgxKSxUdCgibmdDbGFzcyIsdi53cmFwcGVyQ2xhc3MoKSksdXQoMiksVHQoIm5n''@;'; + put 'put ''SWYiLHYuc2hvd0ludmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dWYWxpZCksdXQoMSksVHQoIm5nSWYiLHYuc2hvd0hlbHBlciksdXQoMSksVHQoIm5nSWYiLHYuc2hvd0ludmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dWYWxpZCkpfSxkZXBlbmRlbmNpZXM6W1ZvLG90LGxjLFpv''@;'; + put 'put ''XSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxYaj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgU257Y29uc3RydWN0b3IoaCx2LHksQyxJKXtzdXBlcihoLEpqLHYseSxDLEkpLHRoaXMuaW5kZXg9MX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoVWkp''@;'; + put 'put ''LFh0KGtzKSxYdChEZiwxMCksWHQoR2EpLFh0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclNlbGVjdCIsIiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNsci1zZWxlY3QiLCEwKX0sZmVhdHVyZXM6W0Rv''@;'; + put 'put ''XX0pLGR9KSgpLHBPZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7ZnMuYWRkSWNvbnMoS2gsVGYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEs''@;'; + put 'put ''bmQsVHMsSnJdLEpyXX0pLGR9KSgpLFdBZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgWnR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBnO3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4oZ3x8KGc9ZmwoZCkpKSh2fHxkKX19KCksZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxl''@;'; + put 'put ''Y3RvcnM6W1siY2xyLXRleHRhcmVhLWNvbnRhaW5lciJdXSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNsci1mb3JtLWNvbnRyb2wiLCEwKSgiY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCIsbnVsbD09di5jb250cm9sP251bGw6di5jb250cm9sLmRp''@;'; + put 'put ''c2FibGVkKSgiY2xyLXJvdyIsdi5hZGRHcmlkKCkpfSxmZWF0dXJlczpbaG8oW3FlLEhlLEssRXRdKSxEb10sbmdDb250ZW50U2VsZWN0b3JzOkFqLGRlY2xzOjEwLHZhcnM6Nyxjb25zdHM6W1s0LCJuZ0lmIl0sWzEsImNsci1jb250cm9sLWNvbnRhaW5lciIsMywibmdDbGFzcyJdLFsxLCJj''@;'; + put 'put ''bHItdGV4dGFyZWEtd3JhcHBlciJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUi''@;'; + put 'put ''LCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJzdGF0dXMiLCJkYW5nZXIiLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXSxbInNoYXBl''@;'; + put 'put ''IiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCh2aiksTmkoMCkscm4oMSxyY2UsMSwwLCJsYWJlbCIsMCksaXQoMiwiZGl2IiwxKSgzLCJk''@;'; + put 'put ''aXYiLDIpLE5pKDQsMSkscm4oNSx1OCwxLDAsImNkcy1pY29uIiwzKSxybig2LHdzLDEsMCwiY2RzLWljb24iLDQpLHN0KCkscm4oNyxpY2UsMSwwLCJuZy1jb250ZW50IiwwKSxybig4LG9jZSwxLDAsIm5nLWNvbnRlbnQiLDApLHJuKDksYWNlLDEsMCwibmctY29udGVudCIsMCksc3QoKSks''@;'; + put 'put ''MiZoJiYodXQoMSksVHQoIm5nSWYiLCF2LmxhYmVsJiZ2LmFkZEdyaWQoKSksdXQoMSksVHQoIm5nQ2xhc3MiLHYuY29udHJvbENsYXNzKCkpLHV0KDMpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dI''@;'; + put 'put ''ZWxwZXIpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpKX0sZGVwZW5kZW5jaWVzOltWbyxvdCxsYyxab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksZ09lPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBTbntjb25zdHJ1Y3RvcihoLHYs''@;'; + put 'put ''eSxDLEkpe3N1cGVyKGgsV0FlLHYseSxDLEkpLHRoaXMuaW5kZXg9MX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoVWkpLFh0KGtzKSxYdChEZiwxMCksWHQoR2EpLFh0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltb''@;'; + put 'put ''IiIsImNsclRleHRhcmVhIiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLXRleHRhcmVhIiwhMCl9LGZlYXR1cmVzOltEb119KSxkfSkoKSxtT2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKEtoLFRmKX19cmV0''@;'; + put 'put ''dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLG5kLFRzLEpyXSxKcl19KSxkfSkoKSxZQWU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0''@;'; + put 'put ''aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXSxKcixUYSxaTGUsbE9lLFJBZSxjT2UsaE9lLHBPZSxtT2UsZE9lLHpMZV19KSxkfSkoKSx1ND0oKCk9PntjbGFzcyBke3VzZXJEZWZpbmVkV2lkdGgo''@;'; + put 'put ''aCl7aC5jbGFzc0xpc3QuYWRkKCJkYXRhZ3JpZC1jZWxsLXdpZHRoLXplcm8iKTtjb25zdCB2PXRoaXMuY2xpZW50UmVjdChoKS53aWR0aDtyZXR1cm4gaC5jbGFzc0xpc3QucmVtb3ZlKCJkYXRhZ3JpZC1jZWxsLXdpZHRoLXplcm8iKSx2fXNjcm9sbEJhcldpZHRoKGgpe3JldHVybiBoLm9m''@;'; + put 'put ''ZnNldFdpZHRoLWguY2xpZW50V2lkdGh9c2Nyb2xsV2lkdGgoaCl7cmV0dXJuIGguc2Nyb2xsV2lkdGh8fDB9Y29tcHV0ZWRIZWlnaHQoaCl7cmV0dXJuIHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoaCkuZ2V0UHJvcGVydHlWYWx1ZSgiaGVpZ2h0IiksMTApfWNsaWVudFJlY3QoaCl7Y29u''@;'; + put 'put ''c3Qgdj1oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt0b3A6cGFyc2VJbnQodi50b3AsMTApLGJvdHRvbTpwYXJzZUludCh2LmJvdHRvbSwxMCksbGVmdDpwYXJzZUludCh2LmxlZnQsMTApLHJpZ2h0OnBhcnNlSW50KHYucmlnaHQsMTApLHdpZHRoOnBhcnNlSW50KHYud2lkdGgs''@;'; + put 'put ''MTApLGhlaWdodDpwYXJzZUludCh2LmhlaWdodCwxMCl9fW1pbldpZHRoKGgpe3JldHVybiBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGgpLmdldFByb3BlcnR5VmFsdWUoIm1pbi13aWR0aCIpLDEwKX1mb2N1cyhoKXtoLmZvY3VzKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbiho''@;'; + put 'put ''KXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLHVxPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLmVsZW1lbnQ9aCx0aGlzLmRvbUFkYXB0ZXI9dix0aGlzLnN0YXJ0SGVpZ2h0PTB9Z2V0IGV4''@;'; + put 'put ''cGFuZEFuaW1hdGlvbigpe3JldHVybnt2YWx1ZTp0aGlzLmNsckV4cGFuZFRyaWdnZXIscGFyYW1zOntzdGFydEhlaWdodDp0aGlzLnN0YXJ0SGVpZ2h0fX19YW5pbWF0aW9uRG9uZSgpe3RoaXMudXBkYXRlU3RhcnRIZWlnaHQoKX11cGRhdGVTdGFydEhlaWdodCgpe3RoaXMuc3RhcnRIZWln''@;'; + put 'put ''aHQ9dGhpcy5kb21BZGFwdGVyLmNvbXB1dGVkSGVpZ2h0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KXx8MH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoYm8pLFh0KHU0KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltb''@;'; + put 'put ''ImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmRl8oIkBleHBhbmRBbmltYXRpb24uZG9uZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi5hbmltYXRpb25Eb25lKCl9KSwyJmgmJkM1KCJAZXhwYW5kQW5pbWF0aW9uIix2''@;'; + put 'put ''LmV4cGFuZEFuaW1hdGlvbil9LGlucHV0czp7Y2xyRXhwYW5kVHJpZ2dlcjoiY2xyRXhwYW5kVHJpZ2dlciJ9LGZlYXR1cmVzOltobyhbdTRdKV0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSl9LHN0''@;'; + put 'put ''eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpibG9ja30iXSxkYXRhOnthbmltYXRpb246WyRoKCJleHBhbmRBbmltYXRpb24iLFtidSgidHJ1ZSA8PT4gZmFsc2UiLFt5bCh7aGVpZ2h0OiJ7e3N0YXJ0SGVpZ2h0fX1weCIsb3ZlcmZsb3c6ImhpZGRlbiJ9KSxEYygiMC4ycyBlYXNl''@;'; + put 'put ''LWluLW91dCIseWwoe2hlaWdodDoiKiJ9KSldKV0pXX19KSxkfSkoKSxVQWU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXV19''@;'; + put 'put ''KSxkfSkoKTt2YXIgaGg9KCgpPT4oZnVuY3Rpb24oZCl7ZFtkLkRSQUdfU1RBUlQ9MF09IkRSQUdfU1RBUlQiLGRbZC5EUkFHX01PVkU9MV09IkRSQUdfTU9WRSIsZFtkLkRSQUdfRU5EPTJdPSJEUkFHX0VORCIsZFtkLkRSQUdfRU5URVI9M109IkRSQUdfRU5URVIiLGRbZC5EUkFHX0xFQVZF''@;'; + put 'put ''PTRdPSJEUkFHX0xFQVZFIixkW2QuRFJPUD01XT0iRFJPUCJ9KGhofHwoaGg9e30pKSxoaCkpKCk7bGV0IFFBZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5kcmFnU3RhcnQ9bmV3ICRlLHRoaXMuZHJhZ01vdmU9bmV3ICRlLHRoaXMuZHJhZ0VuZD1uZXcgJGUsdGhpcy5kcm9w''@;'; + put 'put ''PW5ldyAkZX1nZXQgZHJhZ1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5kcmFnU3RhcnQuYXNPYnNlcnZhYmxlKCl9Z2V0IGRyYWdNb3ZlZCgpe3JldHVybiB0aGlzLmRyYWdNb3ZlLmFzT2JzZXJ2YWJsZSgpfWdldCBkcmFnRW5kZWQoKXtyZXR1cm4gdGhpcy5kcmFnRW5kLmFzT2JzZXJ2YWJsZSgp''@;'; + put 'put ''fWdldCBkcm9wcGVkKCl7cmV0dXJuIHRoaXMuZHJvcC5hc09ic2VydmFibGUoKX1icm9hZGNhc3QoaCl7c3dpdGNoKGgudHlwZSl7Y2FzZSBoaC5EUkFHX1NUQVJUOnRoaXMuZHJhZ1N0YXJ0Lm5leHQoaCk7YnJlYWs7Y2FzZSBoaC5EUkFHX01PVkU6dGhpcy5kcmFnTW92ZS5uZXh0KGgpO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgaGguRFJBR19FTkQ6dGhpcy5kcmFnRW5kLm5leHQoaCk7YnJlYWs7Y2FzZSBoaC5EUk9QOnRoaXMuZHJvcC5uZXh0KGgpfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQu''@;'; + put 'put ''XHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksZH0pKCksS2o9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5uZ1pvbmU9aCx0aGlzLnJlbmRlcmVyPXYsdGhpcy5ldmVudEJ1cz15LHRoaXMubGlzdGVuZXJzPVtdLHRoaXMuZHJhZ1N0YXJ0PW5ldyAkZSx0aGlzLmRy''@;'; + put 'put ''YWdNb3ZlPW5ldyAkZSx0aGlzLmRyYWdFbmQ9bmV3ICRlLHRoaXMuaGFzRHJhZ1N0YXJ0ZWQ9ITEsdGhpcy5kcmFnU3RhcnREZWxheT0wfWdldCBkcmFnU3RhcnRlZCgpe3JldHVybiB0aGlzLmRyYWdTdGFydC5hc09ic2VydmFibGUoKX1nZXQgZHJhZ01vdmVkKCl7cmV0dXJuIHRoaXMuZHJh''@;'; + put 'put ''Z01vdmUuYXNPYnNlcnZhYmxlKCl9Z2V0IGRyYWdFbmRlZCgpe3JldHVybiB0aGlzLmRyYWdFbmQuYXNPYnNlcnZhYmxlKCl9Z2V0IGRyYWdTdGFydFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdGlhbFBvc2l0aW9ufWF0dGFjaERyYWdMaXN0ZW5lcnMoaCl7dGhpcy5kcmFnZ2FibGVFbD1o''@;'; + put 'put ''LHRoaXMubGlzdGVuZXJzLnB1c2godGhpcy5jdXN0b21EcmFnRXZlbnQodGhpcy5kcmFnZ2FibGVFbCwibW91c2Vkb3duIiwibW91c2Vtb3ZlIiwibW91c2V1cCIpKSx0aGlzLmxpc3RlbmVycy5wdXNoKHRoaXMuY3VzdG9tRHJhZ0V2ZW50KHRoaXMuZHJhZ2dhYmxlRWwsInRvdWNoc3RhcnQi''@;'; + put 'put ''LCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCIpKX1kZXRhY2hEcmFnTGlzdGVuZXJzKCl7dGhpcy5saXN0ZW5lcnMmJnRoaXMubGlzdGVuZXJzLm1hcChoPT5oKCkpLHRoaXMubmVzdGVkTGlzdGVuZXJzJiZ0aGlzLm5lc3RlZExpc3RlbmVycy5tYXAoaD0+aCgpKSx0aGlzLmNoZWNrRHJhZ1N0YXJ0''@;'; + put 'put ''Qm91bmRhcnlMaXN0ZW5lciYmdGhpcy5jaGVja0RyYWdTdGFydEJvdW5kYXJ5TGlzdGVuZXIoKX1nZXROYXRpdmVFdmVudE9iamVjdChoKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGgsImNoYW5nZWRUb3VjaGVzIik/aC5jaGFuZ2VkVG91Y2hlc1swXTpo''@;'; + put 'put ''fWN1c3RvbURyYWdFdmVudChoLHYseSxDKXtyZXR1cm4gdGhpcy5yZW5kZXJlci5saXN0ZW4oaCx2LEk9Pnt0aGlzLmluaXRpYWxQb3NpdGlvbj17cGFnZVg6dGhpcy5nZXROYXRpdmVFdmVudE9iamVjdChJKS5wYWdlWCxwYWdlWTp0aGlzLmdldE5hdGl2ZUV2ZW50T2JqZWN0KEkpLnBhZ2VZ''@;'; + put 'put ''fSx0aGlzLm5lc3RlZExpc3RlbmVycz1bXSx0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMubmVzdGVkTGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oImRvY3VtZW50Iiwic2VsZWN0c3RhcnQiLGo9PntqLnByZXZlbnREZWZhdWx0KCksai5zdG9wSW1t''@;'; + put 'put ''ZWRpYXRlUHJvcGFnYXRpb24oKX0pKSx0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnkoeSksdGhpcy5kcmFnU3RhcnREZWxheVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuY2hlY2tEcmFnU3RhcnRCb3VuZGFyeUxpc3RlbmVyJiZ0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnlMaXN0''@;'; + put 'put ''ZW5lcigpLHRoaXMuaGFzRHJhZ1N0YXJ0ZWQ9ITAsdGhpcy5icm9hZGNhc3QoSSxoaC5EUkFHX1NUQVJUKSx0aGlzLm5lc3RlZExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKCJkb2N1bWVudCIseSxqPT57ai5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLmhhc0Ry''@;'; + put 'put ''YWdTdGFydGVkJiZ0aGlzLmJyb2FkY2FzdChqLGhoLkRSQUdfTU9WRSl9KSl9LHRoaXMuZHJhZ1N0YXJ0RGVsYXkpfSksdGhpcy5uZXN0ZWRMaXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbigiZG9jdW1lbnQiLEMsaj0+e3RoaXMuaGFzRHJhZ1N0YXJ0ZWQmJih0aGlzLmhhc0Ry''@;'; + put 'put ''YWdTdGFydGVkPSExLHRoaXMuYnJvYWRjYXN0KGosaGguRFJBR19FTkQpKSxjbGVhclRpbWVvdXQodGhpcy5kcmFnU3RhcnREZWxheVRpbWVvdXQpLHRoaXMubmVzdGVkTGlzdGVuZXJzLm1hcCh1ZT0+dWUoKSksdGhpcy5jaGVja0RyYWdTdGFydEJvdW5kYXJ5TGlzdGVuZXImJnRoaXMuY2hl''@;'; + put 'put ''Y2tEcmFnU3RhcnRCb3VuZGFyeUxpc3RlbmVyKCl9KSl9KX1jaGVja0RyYWdTdGFydEJvdW5kYXJ5KGgpe3RoaXMuY2hlY2tEcmFnU3RhcnRCb3VuZGFyeUxpc3RlbmVyPXRoaXMucmVuZGVyZXIubGlzdGVuKCJkb2N1bWVudCIsaCx2PT57Y29uc3QgeT1NYXRoLmFicyh0aGlzLmdldE5hdGl2''@;'; + put 'put ''ZUV2ZW50T2JqZWN0KHYpLnBhZ2VYLXRoaXMuaW5pdGlhbFBvc2l0aW9uLnBhZ2VYKSxDPU1hdGguYWJzKHRoaXMuZ2V0TmF0aXZlRXZlbnRPYmplY3QodikucGFnZVktdGhpcy5pbml0aWFsUG9zaXRpb24ucGFnZVkpOyh5PjF8fEM+MSkmJihjbGVhclRpbWVvdXQodGhpcy5kcmFnU3RhcnRE''@;'; + put 'put ''ZWxheVRpbWVvdXQpLHRoaXMuY2hlY2tEcmFnU3RhcnRCb3VuZGFyeUxpc3RlbmVyJiZ0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnlMaXN0ZW5lcigpKX0pfWJyb2FkY2FzdChoLHYpe2NvbnN0IHk9dGhpcy5nZW5lcmF0ZURyYWdFdmVudChoLHYpO3N3aXRjaCh5LnR5cGUpe2Nhc2UgaGgu''@;'; + put 'put ''RFJBR19TVEFSVDp0aGlzLmRyYWdTdGFydC5uZXh0KHkpO2JyZWFrO2Nhc2UgaGguRFJBR19NT1ZFOnRoaXMuZHJhZ01vdmUubmV4dCh5KTticmVhaztjYXNlIGhoLkRSQUdfRU5EOnRoaXMuZHJhZ0VuZC5uZXh0KHkpfXkuZ2hvc3RFbGVtZW50PXRoaXMuZ2hvc3RFbGVtZW50LHkuZHJvcFBv''@;'; + put 'put ''aW50UG9zaXRpb249dGhpcy5kcm9wUG9pbnRQb3NpdGlvbix0aGlzLmV2ZW50QnVzLmJyb2FkY2FzdCh5KX1nZW5lcmF0ZURyYWdFdmVudChoLHYpe2NvbnN0IHk9dGhpcy5nZXROYXRpdmVFdmVudE9iamVjdChoKTtyZXR1cm57dHlwZTp2LGRyYWdQb3NpdGlvbjp7cGFnZVg6eS5wYWdlWCxw''@;'; + put 'put ''YWdlWTp5LnBhZ2VZLG1vdmVYOnkucGFnZVgtdGhpcy5pbml0aWFsUG9zaXRpb24ucGFnZVgsbW92ZVk6eS5wYWdlWS10aGlzLmluaXRpYWxQb3NpdGlvbi5wYWdlWX0sZ3JvdXA6dGhpcy5ncm91cCxkcmFnRGF0YVRyYW5zZmVyOnRoaXMuZHJhZ0RhdGFUcmFuc2ZlcixnaG9zdEVsZW1lbnQ6''@;'; + put 'put ''dGhpcy5naG9zdEVsZW1lbnR9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShfbCksQ2koR2EpLENpKFFBZSkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLERmZT0oKCk9PntjbGFzcyBke2Nv''@;'; + put 'put ''bnN0cnVjdG9yKGgsdil7dGhpcy5kcmFnRXZlbnRMaXN0ZW5lcj1oLHRoaXMucmVuZGVyZXI9dn1nZXQgZGVmYXVsdEhhbmRsZUVsKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRIYW5kbGVFbH1zZXQgZGVmYXVsdEhhbmRsZUVsKGgpe3RoaXMuX2RlZmF1bHRIYW5kbGVFbD1oLHRoaXMuX2N1c3Rv''@;'; + put 'put ''bUhhbmRsZUVsfHx0aGlzLm1ha2VFbGVtZW50SGFuZGxlKHRoaXMuX2RlZmF1bHRIYW5kbGVFbCl9bWFrZUVsZW1lbnRIYW5kbGUoaCl7dGhpcy5fZGVmYXVsdEhhbmRsZUVsJiZ0aGlzLl9kZWZhdWx0SGFuZGxlRWwhPT1oJiZ0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2RlZmF1''@;'; + put 'put ''bHRIYW5kbGVFbCwiZHJhZy1oYW5kbGUiKSx0aGlzLmRyYWdFdmVudExpc3RlbmVyLmF0dGFjaERyYWdMaXN0ZW5lcnMoaCksdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhoLCJkcmFnLWhhbmRsZSIpfWdldCBjdXN0b21IYW5kbGVFbCgpe3JldHVybiB0aGlzLl9jdXN0b21IYW5kbGVFbH1yZWdp''@;'; + put 'put ''c3RlckN1c3RvbUhhbmRsZShoKXt0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRldGFjaERyYWdMaXN0ZW5lcnMoKSx0aGlzLl9jdXN0b21IYW5kbGVFbD1oLHRoaXMubWFrZUVsZW1lbnRIYW5kbGUodGhpcy5fY3VzdG9tSGFuZGxlRWwpfXVucmVnaXN0ZXJDdXN0b21IYW5kbGUoKXt0aGlzLmRy''@;'; + put 'put ''YWdFdmVudExpc3RlbmVyLmRldGFjaERyYWdMaXN0ZW5lcnMoKSx0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2N1c3RvbUhhbmRsZUVsLCJkcmFnLWhhbmRsZSIpLGRlbGV0ZSB0aGlzLl9jdXN0b21IYW5kbGVFbCx0aGlzLl9kZWZhdWx0SGFuZGxlRWwmJnRoaXMubWFrZUVsZW1l''@;'; + put 'put ''bnRIYW5kbGUodGhpcy5fZGVmYXVsdEhhbmRsZUVsKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koS2opLENpKEdhKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksTGZlPSgoKT0+e2NsYXNz''@;'; + put 'put ''IGR7Y29uc3RydWN0b3IoaCl7dGhpcy5kb21BZGFwdGVyPWh9Y2FwdHVyZShoLHYpe3RoaXMuZHJhZ2dhYmxlRWxDbGllbnRSZWN0PXRoaXMuZG9tQWRhcHRlci5jbGllbnRSZWN0KGgpLHRoaXMuc25hcHNob3REcmFnRXZlbnQ9dn1kaXNjYXJkKCl7ZGVsZXRlIHRoaXMuZHJhZ2dhYmxlRWxD''@;'; + put 'put ''bGllbnRSZWN0LGRlbGV0ZSB0aGlzLnNuYXBzaG90RHJhZ0V2ZW50fWdldCBoYXNEcmFnZ2FibGVTdGF0ZSgpe3JldHVybiEhdGhpcy5zbmFwc2hvdERyYWdFdmVudCYmISF0aGlzLmRyYWdnYWJsZUVsQ2xpZW50UmVjdH1nZXQgY2xpZW50UmVjdCgpe3JldHVybiB0aGlzLmRyYWdnYWJsZUVs''@;'; + put 'put ''Q2xpZW50UmVjdH1nZXQgZHJhZ0V2ZW50KCl7cmV0dXJuIHRoaXMuc25hcHNob3REcmFnRXZlbnR9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHU0KSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0p''@;'; + put 'put ''KCksSkFlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXtpZih0aGlzLmVsPWgsdGhpcy5kcmFnRXZlbnRMaXN0ZW5lcj12LHRoaXMuZHJhZ2dhYmxlU25hcHNob3Q9eSx0aGlzLnJlbmRlcmVyPUMsdGhpcy5uZ1pvbmU9SSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5s''@;'; + put 'put ''ZWF2ZUFuaW1Db25maWc9e3ZhbHVlOjAscGFyYW1zOnt0b3A6IjBweCIsbGVmdDoiMHB4In19LCF0aGlzLmRyYWdFdmVudExpc3RlbmVyfHwhdGhpcy5kcmFnZ2FibGVTbmFwc2hvdCl0aHJvdyBuZXcgRXJyb3IoIlRoZSBjbHItZHJhZ2dhYmxlLWdob3N0IGNvbXBvbmVudCBjYW4gb25seSBi''@;'; + put 'put ''ZSB1c2VkIGluc2lkZSBvZiBhIGNsckRyYWdnYWJsZSBkaXJlY3RpdmUuIik7dGhpcy5kcmFnZ2FibGVHaG9zdEVsPXRoaXMuZWwubmF0aXZlRWxlbWVudCx0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZHJhZ2dhYmxlR2hvc3RFbCwiZHJhZ2dhYmxlLWdob3N0IiksdGhpcy5kcmFnRXZl''@;'; + put 'put ''bnRMaXN0ZW5lci5naG9zdEVsZW1lbnQ9dGhpcy5kcmFnZ2FibGVHaG9zdEVsLHRoaXMuc2V0RGVmYXVsdEdob3N0U2l6ZSh0aGlzLmRyYWdnYWJsZUdob3N0RWwpO2NvbnN0IGo9e3RvcDp0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlP3RoaXMuZHJhZ2dhYmxlU25h''@;'; + put 'put ''cHNob3QuZHJhZ0V2ZW50LmRyYWdQb3NpdGlvbi5wYWdlWS10aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QudG9wOjAsbGVmdDp0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlP3RoaXMuZHJhZ2dhYmxlU25hcHNob3QuZHJhZ0V2ZW50LmRyYWdQb3NpdGlv''@;'; + put 'put ''bi5wYWdlWC10aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QubGVmdDowfTtsZXQgdWU9ITE7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnTW92ZWQuc3Vic2NyaWJlKF9lPT57dWV8fCh0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0Ry''@;'; + put 'put ''YWdnYWJsZVN0YXRlP3RoaXMuYW5pbWF0ZVRvT25MZWF2ZShgJHt0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QudG9wfXB4YCxgJHt0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QubGVmdH1weGApOnRoaXMuYW5pbWF0ZVRvT25MZWF2ZShgJHt0aGlzLmRyYWdFdmVu''@;'; + put 'put ''dExpc3RlbmVyLmRyYWdTdGFydFBvc2l0aW9uLnBhZ2VZfXB4YCxgJHt0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdTdGFydFBvc2l0aW9uLnBhZ2VZfXB4YCksdWU9ITApO2NvbnN0IEJlPXRoaXMuZmluZFRvcExlZnRQb3NpdGlvbihfZS5kcmFnUG9zaXRpb24saik7dGhpcy5zZXRQb3Np''@;'; + put 'put ''dGlvblN0eWxlKHRoaXMuZHJhZ2dhYmxlR2hvc3RFbCxCZS5wYWdlWCxCZS5wYWdlWSksdGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcm9wUG9pbnRQb3NpdGlvbj10aGlzLmZpbmREcm9wUG9pbnRQb3NpdGlvbihCZSl9KSl9c2V0RGVmYXVsdEdob3N0U2l6ZShoKXt0aGlzLmRyYWdnYWJsZVNu''@;'; + put 'put ''YXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlJiZ0aGlzLnNldFNpemVTdHlsZShoLHRoaXMuZHJhZ2dhYmxlU25hcHNob3QuY2xpZW50UmVjdC53aWR0aCx0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QuaGVpZ2h0KX1hbmltYXRlVG9PbkxlYXZlKGgsdil7dGhpcy5uZ1pvbmUucnVu''@;'; + put 'put ''KCgpPT57dGhpcy5sZWF2ZUFuaW1Db25maWc9e3ZhbHVlOjAscGFyYW1zOnt0b3A6aCxsZWZ0OnZ9fX0pfWZpbmRUb3BMZWZ0UG9zaXRpb24oaCx2KXtyZXR1cm57cGFnZVg6aC5wYWdlWC12LmxlZnQscGFnZVk6aC5wYWdlWS12LnRvcH19ZmluZERyb3BQb2ludFBvc2l0aW9uKGgpe3JldHVy''@;'; + put 'put ''biB0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlP3twYWdlWDpoLnBhZ2VYK3RoaXMuZHJhZ2dhYmxlU25hcHNob3QuY2xpZW50UmVjdC53aWR0aC8yLHBhZ2VZOmgucGFnZVkrdGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5jbGllbnRSZWN0LmhlaWdodC8yfTpofXNldFNp''@;'; + put 'put ''emVTdHlsZShoLHYseSl7dGhpcy5yZW5kZXJlci5zZXRTdHlsZShoLCJ3aWR0aCIsYCR7dn1weGApLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaCwiaGVpZ2h0IixgJHt5fXB4YCl9c2V0UG9zaXRpb25TdHlsZShoLHYseSl7dGhpcy5yZW5kZXJlci5zZXRTdHlsZShoLCJsZWZ0IixgJHt2fXB4''@;'; + put 'put ''YCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZShoLCJ0b3AiLGAke3l9cHhgKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGgsInZpc2liaWxpdHkiLCJ2aXNpYmxlIil9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gZC5c''@;'; + put 'put ''dTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChibyksWHQoS2osOCksWHQoTGZlLDgpLFh0KEdhKSxYdChfbCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZHJhZ2dhYmxlLWdob3N0Il1dLGhvc3RWYXJzOjEsaG9zdEJpbmRpbmdzOmZ1''@;'; + put 'put ''bmN0aW9uKGgsdil7MiZoJiZDNSgiQGxlYXZlQW5pbWF0aW9uIix2LmxlYXZlQW5pbUNvbmZpZyl9LG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0''@;'; + put 'put ''aW9uOlskaCgibGVhdmVBbmltYXRpb24iLFtidSgiOmxlYXZlIixbeWwoe2xlZnQ6IioiLHRvcDoiKiJ9KSxEYygiMC4ycyBlYXNlLWluLW91dCIseWwoe3RvcDoie3t0b3B9fSIsbGVmdDoie3tsZWZ0fX0ifSkpXSldKV19fSksZH0pKCk7Y2xhc3MgbTl7Y29uc3RydWN0b3IoZyl7dGhpcy5k''@;'; + put 'put ''cmFnUG9zaXRpb249Zy5kcmFnUG9zaXRpb24sdGhpcy5ncm91cD1nLmdyb3VwLHRoaXMuZHJhZ0RhdGFUcmFuc2Zlcj1nLmRyYWdEYXRhVHJhbnNmZXIsdGhpcy5kcm9wUG9pbnRQb3NpdGlvbj1nLmRyb3BQb2ludFBvc2l0aW9ufX1sZXQgWEFlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3Io''@;'; + put 'put ''aCx2LHkpe2lmKHRoaXMudGVtcGxhdGU9aCx0aGlzLmNvbnRhaW5lcj12LHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXI9eSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sIXRoaXMuZHJhZ0V2ZW50TGlzdGVuZXJ8fCF0aGlzLmNvbnRhaW5lcil0aHJvdyBuZXcgRXJyb3IoIlRoZSAqY2xySWZEcmFnZ2Vk''@;'; + put 'put ''IGRpcmVjdGl2ZSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBvZiBhIGNsckRyYWdnYWJsZSBkaXJlY3RpdmUuIik7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnU3RhcnRlZC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNvbnRhaW5lci5jcmVhdGVFbWJl''@;'; + put 'put ''ZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnRW5kZWQuc3Vic2NyaWJlKCgpPT57dGhpcy5jb250YWluZXIuY2xlYXIoKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNo''@;'; + put 'put ''KGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KHFyKSxYdChVaSwxMiksWHQoS2osOCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJJZkRyYWdnZWQiLCIiXV19KSxkfSkoKSxL''@;'; + put 'put ''QWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLnJlbmRlcmVyPWh9ZW50ZXIoKXt0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksImluLWRyYWciKX1leGl0KCl7dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5LCJpbi1kcmFnIil9fXJl''@;'; + put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEdhKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksJEFlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGosdWUsX2Upe3RoaXMuZWw9''@;'; + put 'put ''aCx0aGlzLmRyYWdFdmVudExpc3RlbmVyPXYsdGhpcy5kcmFnSGFuZGxlUmVnaXN0cmFyPXksdGhpcy52aWV3Q29udGFpbmVyUmVmPUMsdGhpcy5jZnI9SSx0aGlzLmluamVjdG9yPWosdGhpcy5kcmFnZ2FibGVTbmFwc2hvdD11ZSx0aGlzLmdsb2JhbERyYWdNb2RlPV9lLHRoaXMuc3Vic2Ny''@;'; + put 'put ''aXB0aW9ucz1bXSx0aGlzLmRyYWdPbj0hMSx0aGlzLmRyYWdTdGFydEVtaXR0ZXI9bmV3IGFyLHRoaXMuZHJhZ01vdmVFbWl0dGVyPW5ldyBhcix0aGlzLmRyYWdFbmRFbWl0dGVyPW5ldyBhcix0aGlzLmRyYWdnYWJsZUVsPXRoaXMuZWwubmF0aXZlRWxlbWVudCx0aGlzLmNvbXBvbmVudEZh''@;'; + put 'put ''Y3Rvcnk9dGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoSkFlKX1zZXQgZGF0YVRyYW5zZmVyKGgpe3RoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ0RhdGFUcmFuc2Zlcj1ofXNldCBncm91cChoKXt0aGlzLmRyYWdFdmVudExpc3RlbmVyLmdyb3VwPWh9c2V0IGRyYWdTdGFydERl''@;'; + put 'put ''bGF5KGgpeyJudW1iZXIiPT10eXBlb2YgaD90aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdTdGFydERlbGF5PWg6InN0cmluZyI9PXR5cGVvZiBoJiYodGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnU3RhcnREZWxheT1wYXJzZUludChoLDEwKXx8MCl9Y3JlYXRlRGVmYXVsdEdob3N0KGgp''@;'; + put 'put ''e3RoaXMuZHJhZ2dhYmxlU25hcHNob3QuY2FwdHVyZSh0aGlzLmRyYWdnYWJsZUVsLGgpLHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQodGhpcy5jb21wb25lbnRGYWN0b3J5LDAsdGhpcy5pbmplY3RvcixbW3RoaXMuZHJhZ2dhYmxlRWwuY2xvbmVOb2RlKCEwKV1dKX1k''@;'; + put 'put ''ZXN0cm95RGVmYXVsdEdob3N0KCl7dGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCksdGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5kaXNjYXJkKCl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5kcmFnSGFuZGxlUmVnaXN0cmFyLmRlZmF1bHRIYW5kbGVFbD10aGlzLmRyYWdnYWJsZUVsLHRo''@;'; + put 'put ''aXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ1N0YXJ0ZWQuc3Vic2NyaWJlKGg9Pnt0aGlzLmdsb2JhbERyYWdNb2RlLmVudGVyKCksdGhpcy5kcmFnT249ITAsdGhpcy5jdXN0b21HaG9zdHx8dGhpcy5jcmVhdGVEZWZhdWx0R2hvc3QoaCksdGhpcy5k''@;'; + put 'put ''cmFnU3RhcnRFbWl0dGVyLmVtaXQobmV3IG05KGgpKX0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdNb3ZlZC5zdWJzY3JpYmUoaD0+e3RoaXMuZHJhZ01vdmVFbWl0dGVyLmVtaXQobmV3IG05KGgpKX0pKSx0aGlzLnN1YnNjcmlwdGlvbnMu''@;'; + put 'put ''cHVzaCh0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdFbmRlZC5zdWJzY3JpYmUoaD0+e3RoaXMuZ2xvYmFsRHJhZ01vZGUuZXhpdCgpLHRoaXMuZHJhZ09uPSExLHRoaXMuY3VzdG9tR2hvc3R8fHRoaXMuZGVzdHJveURlZmF1bHRHaG9zdCgpLHRoaXMuZHJhZ0VuZEVtaXR0ZXIuZW1pdChu''@;'; + put 'put ''ZXcgbTkoaCkpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKSx0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRldGFjaERyYWdMaXN0ZW5lcnMoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; + put 'put ''ZCkoWHQoYm8pLFh0KEtqKSxYdChEZmUpLFh0KFVpKSxYdChrZCksWHQoa3MpLFh0KExmZSksWHQoS0FlKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsckRyYWdnYWJsZSIsIiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5''@;'; + put 'put ''LFhBZSw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LmN1c3RvbUdob3N0PUMuZmlyc3QpfX0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJkcmFnZ2FibGUiLCEwKSgiYmVpbmctZHJhZ2dlZCIsdi5kcmFnT24pfSxpbnB1dHM6e2RhdGFUcmFuc2Zl''@;'; + put 'put ''cjpbImNsckRyYWdnYWJsZSIsImRhdGFUcmFuc2ZlciJdLGdyb3VwOlsiY2xyR3JvdXAiLCJncm91cCJdLGRyYWdTdGFydERlbGF5OlsiY2xyRHJhZ1N0YXJ0RGVsYXkiLCJkcmFnU3RhcnREZWxheSJdfSxvdXRwdXRzOntkcmFnU3RhcnRFbWl0dGVyOiJjbHJEcmFnU3RhcnQiLGRyYWdNb3Zl''@;'; + put 'put ''RW1pdHRlcjoiY2xyRHJhZ01vdmUiLGRyYWdFbmRFbWl0dGVyOiJjbHJEcmFnRW5kIn0sZmVhdHVyZXM6W2hvKFtLaixEZmUsTGZlLEtBZSx1NF0pXX0pLGR9KSgpLHFBZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5c''@;'; + put 'put ''dTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmFdXX0pLGR9KSgpO2NvbnN0IGV5ZT1uZXcgemUoIkZPQ1VTX09OX1ZJRVdfSU5JVCIpLEFPZT17cHJvdmlkZTpleWUsdXNlVmFsdWU6ITB9O2xldCBPZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvciho''@;'; + put 'put ''LHYseSxDLEksail7dGhpcy5lbD1oLHRoaXMucGxhdGZvcm1JZD12LHRoaXMuZm9jdXNPblZpZXdJbml0PXksdGhpcy5yZW5kZXJlcj1JLHRoaXMuZGVzdHJveSQ9bmV3ICRlLHRoaXMuZGlyZWN0Rm9jdXM9ITAsdGhpcy5faXNFbmFibGVkPXRoaXMuZm9jdXNPblZpZXdJbml0LHRoaXMuZG9j''@;'; + put 'put ''dW1lbnQ9QyxqLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT50OChoLm5hdGl2ZUVsZW1lbnQsImZvY3Vzb3V0IikucGlwZShqNyh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5kaXJlY3RGb2N1c3x8KHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWwubmF0aXZl''@;'; + put 'put ''RWxlbWVudCwidGFiaW5kZXgiKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwib3V0bGluZSIsbnVsbCkpfSkpfXNldCBpc0VuYWJsZWQoaCl7dGhpcy5mb2N1c09uVmlld0luaXQmJiJib29sZWFuIj09dHlwZW9mIGgmJih0aGlzLl9pc0VuYWJsZWQ9aCl9''@;'; + put 'put ''bmdBZnRlclZpZXdJbml0KCl7dGhpcy5mb2N1cygpfW5nT25EZXN0cm95KCl7dGhpcy5kZXN0cm95JC5uZXh0KCl9Zm9jdXMoKXshU2wodGhpcy5wbGF0Zm9ybUlkKXx8IXRoaXMuX2lzRW5hYmxlZHx8dGhpcy5kb2N1bWVudCYmdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dGhpcy5l''@;'; + put 'put ''bC5uYXRpdmVFbGVtZW50JiYodGhpcy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCksdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dGhpcy5lbC5uYXRpdmVFbGVtZW50JiYodGhpcy5kaXJlY3RGb2N1cz0hMSx0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVs''@;'; + put 'put ''ZW1lbnQsInRhYmluZGV4IiwiLTEiKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwib3V0bGluZSIsIm5vbmUiKSx0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; + put 'put ''KShYdChibyksWHQoRDIpLFh0KGV5ZSksWHQocHMpLFh0KEdhKSxYdChfbCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJGb2N1c09uVmlld0luaXQiLCIiXV0saW5wdXRzOntpc0VuYWJsZWQ6WyJjbHJGb2N1c09uVmlld0luaXQiLCJpc0VuYWJsZWQiXX19''@;'; + put 'put ''KSxkfSkoKSx1Uz0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtwcm92aWRlcnM6W0FPZV0saW1wb3J0czpbW2JhXV19KSxkfSkoKSxSZmU9KCgpPT57''@;'; + put 'put ''Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXV19KSxkfSkoKSx5T2U9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0''@;'; + put 'put ''aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXV19KSxkfSkoKTtjbGFzcyBjcXt9bGV0ICRqPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9jaGFuZ2U9bmV3ICRlLHRoaXMubmJDaGFu''@;'; + put 'put ''Z2VzPTB9Z2V0IGNoYW5nZSgpe3JldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Y2hhbmdlU3RhcnQoKXt0aGlzLm5iQ2hhbmdlcysrfWNoYW5nZURvbmUoKXswPT0tLXRoaXMubmJDaGFuZ2VzJiZ0aGlzLl9jaGFuZ2UubmV4dCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rp''@;'; + put 'put ''b24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxodz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuc3RhdGVEZWJvdW5jZXI9aCx0aGlzLnByZXZlbnRFbWl0PSExLHRoaXMuYWN0aXZhdGVk''@;'; + put 'put ''PSExLHRoaXMuX3NpemU9MCx0aGlzLl9jaGFuZ2U9bmV3ICRlLHRoaXMuX3NpemVDaGFuZ2U9bmV3ICRlLHRoaXMuX2N1cnJlbnQ9MX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLl9zaXplfXNldCBzaXplKGgpe2NvbnN0IHY9dGhpcy5fc2l6ZTtoIT09diYmKHRoaXMucHJldmVudEVtaXR8fHRo''@;'; + put 'put ''aXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlU3RhcnQoKSx0aGlzLl9zaXplPWgsdGhpcy5fY3VycmVudD0wPT09aD8xOk1hdGguZmxvb3Iodi9oKih0aGlzLl9jdXJyZW50LTEpKSsxLHRoaXMucHJldmVudEVtaXR8fCh0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KSx0aGlzLl9zaXpl''@;'; + put 'put ''Q2hhbmdlLm5leHQodGhpcy5fc2l6ZSksdGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VEb25lKCkpKSx0aGlzLnByZXZlbnRFbWl0PSExfWdldCB0b3RhbEl0ZW1zKCl7cmV0dXJuIHRoaXMuX3RvdGFsSXRlbXN8fDB9c2V0IHRvdGFsSXRlbXMoaCl7dGhpcy5fdG90YWxJdGVtcz1oLHRoaXMu''@;'; + put 'put ''Y3VycmVudD50aGlzLmxhc3QmJih0aGlzLmN1cnJlbnQ9dGhpcy5sYXN0KX1nZXQgbGFzdCgpe3JldHVybiB0aGlzLl9sYXN0P3RoaXMuX2xhc3Q6dGhpcy5zaXplPjAmJnRoaXMudG90YWxJdGVtcz9NYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1zL3RoaXMuc2l6ZSk6MX1zZXQgbGFzdChoKXt0''@;'; + put 'put ''aGlzLl9sYXN0PWh9Z2V0IGNoYW5nZSgpe3JldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Z2V0IHNpemVDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fc2l6ZUNoYW5nZS5hc09ic2VydmFibGUoKX1nZXQgY3VycmVudCgpe3JldHVybiB0aGlzLl9jdXJyZW50fXNldCBjdXJyZW50KGgp''@;'; + put 'put ''e2ghPT10aGlzLl9jdXJyZW50JiYodGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VTdGFydCgpLHRoaXMuX2N1cnJlbnQ9aCx0aGlzLl9jaGFuZ2UubmV4dChoKSx0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZURvbmUoKSl9cHJldmlvdXMoKXt0aGlzLmN1cnJlbnQ+MSYmdGhpcy5jdXJyZW50''@;'; + put 'put ''LS19bmV4dCgpe3RoaXMuY3VycmVudDx0aGlzLmxhc3QmJnRoaXMuY3VycmVudCsrfWdldCBmaXJzdEl0ZW0oKXtyZXR1cm4gMD09PXRoaXMuX3RvdGFsSXRlbXM/LTE6MD09PXRoaXMuc2l6ZT8wOih0aGlzLmN1cnJlbnQtMSkqdGhpcy5zaXplfWdldCBsYXN0SXRlbSgpe2lmKDA9PT10aGlz''@;'; + put 'put ''Ll90b3RhbEl0ZW1zKXJldHVybi0xO2lmKDA9PT10aGlzLnNpemUpcmV0dXJuIHRoaXMudG90YWxJdGVtcy0xO2xldCBoPXRoaXMuY3VycmVudCp0aGlzLnNpemUtMTtyZXR1cm4gdGhpcy50b3RhbEl0ZW1zJiYoaD1NYXRoLm1pbihoLHRoaXMudG90YWxJdGVtcy0xKSksaH1yZXNldFBhZ2VT''@;'; + put 'put ''aXplKGg9ITEpe3RoaXMucHJldmVudEVtaXQ9aCx0aGlzLnNpemU9MH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koJGopKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx2OT0oKCk9PntjbGFz''@;'; + put 'put ''cyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5fcGFnZT1oLHRoaXMuc3RhdGVEZWJvdW5jZXI9dix0aGlzLl9jaGFuZ2U9bmV3ICRlLHRoaXMuX2FsbD1bXX1nZXQgY2hhbmdlKCl7cmV0dXJuIHRoaXMuX2NoYW5nZS5hc09ic2VydmFibGUoKX1oYXNBY3RpdmVGaWx0ZXJzKCl7Zm9yKGNvbnN0''@;'; + put 'put ''e2ZpbHRlcjpofW9mIHRoaXMuX2FsbClpZihoJiZoLmlzQWN0aXZlKCkpcmV0dXJuITA7cmV0dXJuITF9Z2V0QWN0aXZlRmlsdGVycygpe2NvbnN0IGg9W107Zm9yKGNvbnN0e2ZpbHRlcjp2fW9mIHRoaXMuX2FsbCl2JiZ2LmlzQWN0aXZlKCkmJmgucHVzaCh2KTtyZXR1cm4gaH1hZGQoaCl7''@;'; + put 'put ''Y29uc3Qgdj1oLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT50aGlzLnJlc2V0UGFnZUFuZEVtaXRGaWx0ZXJDaGFuZ2UoW2hdKSk7bGV0IHk9ITE7Y29uc3QgQz1uZXcgZnEoaCwoKT0+e2lmKHkpcmV0dXJuO3YudW5zdWJzY3JpYmUoKTtjb25zdCBJPXRoaXMuX2FsbC5maW5kSW5kZXgoaj0+ai5m''@;'; + put 'put ''aWx0ZXI9PT1oKTtJPj0wJiZ0aGlzLl9hbGwuc3BsaWNlKEksMSksaC5pc0FjdGl2ZSgpJiZ0aGlzLnJlc2V0UGFnZUFuZEVtaXRGaWx0ZXJDaGFuZ2UoW10pLHk9ITB9KTtyZXR1cm4gdGhpcy5fYWxsLnB1c2goQyksaC5pc0FjdGl2ZSgpJiZ0aGlzLnJlc2V0UGFnZUFuZEVtaXRGaWx0ZXJD''@;'; + put 'put ''aGFuZ2UoW2hdKSxDfWFjY2VwdHMoaCl7Zm9yKGNvbnN0e2ZpbHRlcjp2fW9mIHRoaXMuX2FsbClpZih2JiZ2LmlzQWN0aXZlKCkmJiF2LmFjY2VwdHMoaCkpcmV0dXJuITE7cmV0dXJuITB9cmVzZXRQYWdlQW5kRW1pdEZpbHRlckNoYW5nZShoKXt0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5n''@;'; + put 'put ''ZVN0YXJ0KCksdGhpcy5fcGFnZS5jdXJyZW50PTEsdGhpcy5fY2hhbmdlLm5leHQoaCksdGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VEb25lKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGh3KSxDaSgkaikpfSxkLlx1MDI3NXByb3Y9QWko''@;'; + put 'put ''e3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NsYXNzIGZxe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5maWx0ZXI9Zyx0aGlzLnVucmVnaXN0ZXI9aH19bGV0IGhxPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5maWx0ZXJzPWh9Z2V0IGZpbHRlcigpe3JldHVy''@;'; + put 'put ''biB0aGlzLnJlZ2lzdGVyZWQmJnRoaXMucmVnaXN0ZXJlZC5maWx0ZXJ9c2V0RmlsdGVyKGgpe3RoaXMuZGVsZXRlRmlsdGVyKCksaCBpbnN0YW5jZW9mIGZxP3RoaXMucmVnaXN0ZXJlZD1oOmgmJih0aGlzLnJlZ2lzdGVyZWQ9dGhpcy5maWx0ZXJzLmFkZChoKSl9ZGVsZXRlRmlsdGVyKCl7''@;'; + put 'put ''dGhpcy5yZWdpc3RlcmVkJiYodGhpcy5yZWdpc3RlcmVkLnVucmVnaXN0ZXIoKSxkZWxldGUgdGhpcy5yZWdpc3RlcmVkKX1uZ09uRGVzdHJveSgpe3RoaXMuZGVsZXRlRmlsdGVyKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KHY5KSl9LGQu''@;'; + put 'put ''XHUwMjc1ZGlyPVdpKHt0eXBlOmR9KSxkfSkoKSxxaj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgaHF7Y29uc3RydWN0b3IoaCx2LHksQyxJKXtzdXBlcihoKSx0aGlzLmNvbW1vblN0cmluZ3M9dix0aGlzLnNtYXJ0VG9nZ2xlU2VydmljZT15LHRoaXMucGxhdGZvcm1JZD1DLHRoaXMucG9wb3Zl''@;'; + put 'put ''cklkPUksdGhpcy5zdWJzPVtdLHRoaXMuYXJpYUV4cGFuZGVkPSExLHRoaXMuc21hcnRQb3NpdGlvbj17YXhpczokMS5WRVJUSUNBTCxzaWRlOmwuQUZURVIsYW5jaG9yOl9vLkVORCxjb250ZW50Ol9vLkVORH0sdGhpcy5fb3Blbj0hMSx0aGlzLm9wZW5DaGFuZ2U9bmV3IGFyKCExKSx0aGlz''@;'; + put 'put ''LnN1YnMucHVzaCh5Lm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGo9Pnt0aGlzLm9wZW49aix0aGlzLmFyaWFFeHBhbmRlZD1qfSkpfWdldCBvcGVuKCl7cmV0dXJuIHRoaXMuX29wZW59c2V0IG9wZW4oaCl7dGhpcy5vcGVuIT09KGg9ISFoKSYmKHRoaXMuc21hcnRUb2dnbGVTZXJ2aWNlLm9wZW49''@;'; + put 'put ''aCx0aGlzLm9wZW5DaGFuZ2UuZW1pdChoKSwhaCYmU2wodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy5hbmNob3IubmF0aXZlRWxlbWVudC5mb2N1cygpLHRoaXMuX29wZW49aCl9c2V0IGN1c3RvbUZpbHRlcihoKXt0aGlzLnNldEZpbHRlcihoKX1nZXQgYWN0aXZlKCl7cmV0dXJuISF0aGlzLmZp''@;'; + put 'put ''bHRlciYmdGhpcy5maWx0ZXIuaXNBY3RpdmUoKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95KCksdGhpcy5zdWJzLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQodjkpLFh0KG5zKSxY''@;'; + put 'put ''dCh6cyksWHQoRDIpLFh0KHkyKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1maWx0ZXIiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhsY2UsNSxibyksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5hbmNob3I9eS5maXJzdCl9fSxp''@;'; + put 'put ''bnB1dHM6e29wZW46WyJjbHJEZ0ZpbHRlck9wZW4iLCJvcGVuIl0sY3VzdG9tRmlsdGVyOlsiY2xyRGdGaWx0ZXIiLCJjdXN0b21GaWx0ZXIiXX0sb3V0cHV0czp7b3BlbkNoYW5nZToiY2xyRGdGaWx0ZXJPcGVuQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFt7cHJvdmlkZTpjcSx1c2VFeGlzdGlu''@;'; + put 'put ''ZzpkfSxPY10pLERvXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6NCx2YXJzOjEzLGNvbnN0czpbWyJ0eXBlIiwiYnV0dG9uIiwiY2xyUG9wb3ZlckFuY2hvciIsIiIsImNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b24iLCIiLDEsImRhdGFncmlkLWZpbHRlci10b2dnbGUiXSxbImFuY2hv''@;'; + put 'put ''ciIsIiJdLFsic29saWQiLCIiXSxbImNsYXNzIiwiZGF0YWdyaWQtZmlsdGVyIiwiY2xyRm9jdXNUcmFwIiwiIiwicm9sZSIsImRpYWxvZyIsMywiaWQiLDQsImNsclBvcG92ZXJDb250ZW50IiwiY2xyUG9wb3ZlckNvbnRlbnRBdCIsImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9D''@;'; + put 'put ''bG9zZSIsImNsclBvcG92ZXJDb250ZW50U2Nyb2xsVG9DbG9zZSJdLFsiY2xyRm9jdXNUcmFwIiwiIiwicm9sZSIsImRpYWxvZyIsMSwiZGF0YWdyaWQtZmlsdGVyIiwzLCJpZCJdLFsxLCJkYXRhZ3JpZC1maWx0ZXItY2xvc2Utd3JhcHBlciJdLFsidHlwZSIsImJ1dHRvbiIsImNsclBvcG92''@;'; + put 'put ''ZXJDbG9zZUJ1dHRvbiIsIiIsMSwiY2xvc2UiXSxbInNoYXBlIiwid2luZG93LWNsb3NlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxpdCgwLCJidXR0b24iLDAsMSksQ3IoMiwiY2RzLWljb24iLDIpLHN0KCkscm4oMyxBZyw1LDMsImRpdiIsMykpLDImaCYmKEZpKCJk''@;'; + put 'put ''YXRhZ3JpZC1maWx0ZXItb3BlbiIsdi5vcGVuKSgiZGF0YWdyaWQtZmlsdGVyZWQiLHYuYWN0aXZlKSx6aSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0YWdyaWRGaWx0ZXJBcmlhTGFiZWwpKCJhcmlhLWV4cGFuZGVkIix2LmFyaWFFeHBhbmRlZCkoImFyaWEtY29udHJv''@;'; + put 'put ''bHMiLHYucG9wb3ZlcklkKSx1dCgyKSx6aSgic3RhdHVzIix2LmFjdGl2ZT8iaW5mbyI6bnVsbCkoInNoYXBlIix2LmFjdGl2ZT8iZmlsdGVyLWdyaWQtY2lyY2xlIjoiZmlsdGVyLWdyaWQiKSx1dCgxKSxUdCgiY2xyUG9wb3ZlckNvbnRlbnQiLHYub3BlbikoImNsclBvcG92ZXJDb250ZW50''@;'; + put 'put ''QXQiLHYuc21hcnRQb3NpdGlvbikoImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZSIsITApKCJjbHJQb3BvdmVyQ29udGVudFNjcm9sbFRvQ2xvc2UiLCEwKSl9LGRlcGVuZGVuY2llczpbc3csdXcsWm8sZGwsZncsdHFdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpO2NsYXNz''@;'; + put 'put ''IEJmZXtjb25zdHJ1Y3RvcihnKXt0aGlzLnByb3A9ZyxnLmluZGV4T2YoIi4iKT49MCYmKHRoaXMuc3BsaXRQcm9wPWcuc3BsaXQoIi4iKSl9Z2V0UHJvcFZhbHVlKGcpe2lmKHRoaXMuc3BsaXRQcm9wKXtsZXQgaD1nO2Zvcihjb25zdCB2IG9mIHRoaXMuc3BsaXRQcm9wKXtpZihudWxsPT1o''@;'; + put 'put ''fHx2b2lkIDA9PT1oW3ZdKXJldHVybjtoPWhbdl19cmV0dXJuIGh9cmV0dXJuIGdbdGhpcy5wcm9wXX19Y2xhc3MgZHF7Y29uc3RydWN0b3IoZyxoPSExKXt0aGlzLnByb3A9Zyx0aGlzLmV4YWN0PWgsdGhpcy5uZXN0ZWRQcm9wPW5ldyBCZmUoZyl9YWNjZXB0cyhnLGgsdil7Y29uc3QgeT10''@;'; + put 'put ''aGlzLm5lc3RlZFByb3AuZ2V0UHJvcFZhbHVlKGcpO3JldHVybiEobnVsbCE9PWgmJnk8aHx8bnVsbCE9PXYmJnk+dil9fWNsYXNzIGNTe2NvbnN0cnVjdG9yKGcpe3RoaXMuZmlsdGVyRm49Zyx0aGlzLl9jaGFuZ2VzPW5ldyAkZSx0aGlzLl9sb3c9bnVsbCx0aGlzLl9oaWdoPW51bGx9Z2V0''@;'; + put 'put ''IGNoYW5nZXMoKXtyZXR1cm4gdGhpcy5fY2hhbmdlcy5hc09ic2VydmFibGUoKX1nZXQgdmFsdWUoKXtyZXR1cm5bdGhpcy5fbG93LHRoaXMuX2hpZ2hdfXNldCB2YWx1ZShnKXtjb25zdCBoPWdbMF0sdj1nWzFdOyhoIT09dGhpcy5fbG93fHx2IT09dGhpcy5faGlnaCkmJih0aGlzLl9sb3c9''@;'; + put 'put ''aCx0aGlzLl9oaWdoPXYsdGhpcy5fY2hhbmdlcy5uZXh0KFt0aGlzLl9sb3csdGhpcy5faGlnaF0pKX1nZXQgbG93KCl7cmV0dXJuIHRoaXMuX2xvd31zZXQgbG93KGcpe2chPT10aGlzLl9sb3cmJih0aGlzLl9sb3c9Zyx0aGlzLl9jaGFuZ2VzLm5leHQoW3RoaXMuX2xvdyx0aGlzLl9oaWdo''@;'; + put 'put ''XSkpfWdldCBoaWdoKCl7cmV0dXJuIHRoaXMuX2hpZ2h9c2V0IGhpZ2goZyl7ZyE9PXRoaXMuX2hpZ2gmJih0aGlzLl9oaWdoPWcsdGhpcy5fY2hhbmdlcy5uZXh0KFt0aGlzLl9sb3csdGhpcy5faGlnaF0pKX1pc0FjdGl2ZSgpe3JldHVybiBudWxsIT09dGhpcy5fbG93fHxudWxsIT09dGhp''@;'; + put 'put ''cy5oaWdofWFjY2VwdHMoZyl7cmV0dXJuIHRoaXMuZmlsdGVyRm4uYWNjZXB0cyhnLHRoaXMuX2xvdyx0aGlzLl9oaWdoKX1nZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy5maWx0ZXJGbiBpbnN0YW5jZW9mIGRxP3twcm9wZXJ0eTp0aGlzLmZpbHRlckZuLnByb3AsbG93OnRoaXMuX2xvdyxoaWdo''@;'; + put 'put ''OnRoaXMuX2hpZ2h9OnRoaXN9ZXF1YWxzKGcpe3JldHVybiBnIGluc3RhbmNlb2YgY1MmJihnLmZpbHRlckZuIGluc3RhbmNlb2YgZHE/dGhpcy5maWx0ZXJGbiBpbnN0YW5jZW9mIGRxJiZnLmZpbHRlckZuLnByb3A9PT10aGlzLmZpbHRlckZuLnByb3AmJmcubG93PT09dGhpcy5fbG93JiZn''@;'; + put 'put ''LmhpZ2g9PT10aGlzLl9oaWdoOmc9PT10aGlzKX19bGV0IHR5ZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgaHF7Y29uc3RydWN0b3IoaCx2LHksQyxJKXtzdXBlcihoKSx0aGlzLmRvbUFkYXB0ZXI9dix0aGlzLmNvbW1vblN0cmluZ3M9eSx0aGlzLnBvcG92ZXJUb2dnbGVTZXJ2aWNlPUMsdGhp''@;'; + put 'put ''cy5uZ1pvbmU9SSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5vcGVuPSExLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2U9bmV3IGFyfW5nT25EZXN0cm95KCl7c3VwZXIubmdPbkRlc3Ryb3koKSx0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT57aC51bnN1YnNjcmliZSgpfSl9Z2V0IG1h''@;'; + put 'put ''eFBsYWNlaG9sZGVyVmFsdWUoKXtyZXR1cm4gdGhpcy5tYXhQbGFjZWhvbGRlcnx8dGhpcy5jb21tb25TdHJpbmdzLmtleXMubWF4VmFsdWV9Z2V0IG1pblBsYWNlaG9sZGVyVmFsdWUoKXtyZXR1cm4gdGhpcy5taW5QbGFjZWhvbGRlcnx8dGhpcy5jb21tb25TdHJpbmdzLmtleXMubWluVmFs''@;'; + put 'put ''dWV9c2V0IGN1c3RvbU51bWVyaWNGaWx0ZXIoaCl7dGhpcy5zZXRGaWx0ZXIoaCBpbnN0YW5jZW9mIGZxP2g6bmV3IGNTKGgpKSx0aGlzLmluaXRGaWx0ZXJWYWx1ZXMmJih0aGlzLnZhbHVlPXRoaXMuaW5pdEZpbHRlclZhbHVlcyxkZWxldGUgdGhpcy5pbml0RmlsdGVyVmFsdWVzKX1uZ0Fm''@;'; + put 'put ''dGVyVmlld0luaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnBvcG92ZXJUb2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGg9Pnt0aGlzLm9wZW49aCx0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3Ro''@;'; + put 'put ''aXMuZG9tQWRhcHRlci5mb2N1cyh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpfSl9KX0pKX1nZXQgdmFsdWUoKXtyZXR1cm5bdGhpcy5maWx0ZXIubG93LHRoaXMuZmlsdGVyLmhpZ2hdfXNldCB2YWx1ZShoKXt0aGlzLmZpbHRlciYmQXJyYXkuaXNBcnJheShoKT9oJiYoaFswXSE9PXRoaXMu''@;'; + put 'put ''ZmlsdGVyLmxvd3x8aFsxXSE9PXRoaXMuZmlsdGVyLmhpZ2gpJiYodGhpcy5maWx0ZXIubG93PSJudW1iZXIiPT10eXBlb2YgaFswXT9oWzBdOm51bGwsdGhpcy5maWx0ZXIuaGlnaD0ibnVtYmVyIj09dHlwZW9mIGhbMV0/aFsxXTpudWxsLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2UuZW1pdCho''@;'; + put 'put ''KSk6dGhpcy5pbml0RmlsdGVyVmFsdWVzPWh9Z2V0IGxvdygpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdGhpcy5maWx0ZXIubG93JiZpc0Zpbml0ZSh0aGlzLmZpbHRlci5sb3cpP3RoaXMuZmlsdGVyLmxvdzpudWxsfXNldCBsb3coaCl7Im51bWJlciI9PXR5cGVvZiBoJiZoIT09dGhpcy5m''@;'; + put 'put ''aWx0ZXIubG93Pyh0aGlzLmZpbHRlci5sb3c9aCx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoW3RoaXMuZmlsdGVyLmxvdyx0aGlzLmZpbHRlci5oaWdoXSkpOiJudW1iZXIiIT10eXBlb2YgaCYmKHRoaXMuZmlsdGVyLmxvdz1udWxsLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChb''@;'; + put 'put ''dGhpcy5maWx0ZXIubG93LHRoaXMuZmlsdGVyLmhpZ2hdKSl9Z2V0IGhpZ2goKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHRoaXMuZmlsdGVyLmhpZ2gmJmlzRmluaXRlKHRoaXMuZmlsdGVyLmhpZ2gpP3RoaXMuZmlsdGVyLmhpZ2g6bnVsbH1zZXQgaGlnaChoKXsibnVtYmVyIj09dHlwZW9m''@;'; + put 'put ''IGgmJmghPT10aGlzLmZpbHRlci5oaWdoPyh0aGlzLmZpbHRlci5oaWdoPWgsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KFt0aGlzLmZpbHRlci5sb3csdGhpcy5maWx0ZXIuaGlnaF0pKToibnVtYmVyIiE9dHlwZW9mIGgmJih0aGlzLmZpbHRlci5oaWdoPW51bGwsdGhpcy5maWx0ZXJW''@;'; + put 'put ''YWx1ZUNoYW5nZS5lbWl0KFt0aGlzLmZpbHRlci5sb3csdGhpcy5maWx0ZXIuaGlnaF0pKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQodjkpLFh0KHU0KSxYdChucyksWHQoenMpLFh0KF9sKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2Vs''@;'; + put 'put ''ZWN0b3JzOltbImNsci1kZy1udW1lcmljLWZpbHRlciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJih2byhzY2UsNSksdm8ocWosNSkpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYuaW5wdXQ9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYuZmlsdGVyQ29udGFpbmVyPXkuZmly''@;'; + put 'put ''c3QpfX0saW5wdXRzOnttYXhQbGFjZWhvbGRlcjpbImNsckZpbHRlck1heFBsYWNlaG9sZGVyIiwibWF4UGxhY2Vob2xkZXIiXSxtaW5QbGFjZWhvbGRlcjpbImNsckZpbHRlck1pblBsYWNlaG9sZGVyIiwibWluUGxhY2Vob2xkZXIiXSxjdXN0b21OdW1lcmljRmlsdGVyOlsiY2xyRGdOdW1l''@;'; + put 'put ''cmljRmlsdGVyIiwiY3VzdG9tTnVtZXJpY0ZpbHRlciJdLHZhbHVlOlsiY2xyRmlsdGVyVmFsdWUiLCJ2YWx1ZSJdfSxvdXRwdXRzOntmaWx0ZXJWYWx1ZUNoYW5nZToiY2xyRmlsdGVyVmFsdWVDaGFuZ2UifSxmZWF0dXJlczpbaG8oW3twcm92aWRlOmNxLHVzZUV4aXN0aW5nOmR9XSksRG9d''@;'; + put 'put ''LGRlY2xzOjYsdmFyczo4LGNvbnN0czpbWzMsImNsckRnRmlsdGVyIiwiY2xyRGdGaWx0ZXJPcGVuIiwiY2xyRGdGaWx0ZXJPcGVuQ2hhbmdlIl0sWyJ0eXBlIiwibnVtYmVyIiwibmFtZSIsImxvdyIsMSwiZGF0YWdyaWQtbnVtZXJpYy1maWx0ZXItaW5wdXQiLDMsIm5nTW9kZWwiLCJwbGFj''@;'; + put 'put ''ZWhvbGRlciIsIm5nTW9kZWxDaGFuZ2UiXSxbImlucHV0X2xvdyIsIiJdLFsxLCJkYXRhZ3JpZC1maWx0ZXItaW5wdXQtc3BhY2VyIl0sWyJ0eXBlIiwibnVtYmVyIiwibmFtZSIsImhpZ2giLDEsImRhdGFncmlkLW51bWVyaWMtZmlsdGVyLWlucHV0IiwzLCJuZ01vZGVsIiwicGxhY2Vob2xk''@;'; + put 'put ''ZXIiLCJuZ01vZGVsQ2hhbmdlIl0sWyJpbnB1dF9oaWdoIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoaXQoMCwiY2xyLWRnLWZpbHRlciIsMCksWW4oImNsckRnRmlsdGVyT3BlbkNoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub3Blbj1DfSksaXQoMSwiaW5wdXQiLDEs''@;'; + put 'put ''MiksWW4oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lmxvdz1DfSksc3QoKSxDcigzLCJzcGFuIiwzKSxpdCg0LCJpbnB1dCIsNCw1KSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuaGlnaD1DfSksc3QoKSgpKSwyJmgmJihUdCgiY2xyRGdGaWx0''@;'; + put 'put ''ZXIiLHYucmVnaXN0ZXJlZCkoImNsckRnRmlsdGVyT3BlbiIsdi5vcGVuKSx1dCgxKSxUdCgibmdNb2RlbCIsdi5sb3cpKCJwbGFjZWhvbGRlciIsdi5taW5QbGFjZWhvbGRlclZhbHVlKSx6aSgiYXJpYS1sYWJlbCIsdi5taW5QbGFjZWhvbGRlclZhbHVlKSx1dCgzKSxUdCgibmdNb2RlbCIs''@;'; + put 'put ''di5oaWdoKSgicGxhY2Vob2xkZXIiLHYubWF4UGxhY2Vob2xkZXJWYWx1ZSksemkoImFyaWEtbGFiZWwiLHYubWF4UGxhY2Vob2xkZXJWYWx1ZSkpfSxkZXBlbmRlbmNpZXM6W3FqLExWLG0xLEVzLHhzXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKTtjbGFzcyBwcXtjb25zdHJ1Y3RvcihnLGg9''@;'; + put 'put ''ITEpe3RoaXMucHJvcD1nLHRoaXMuZXhhY3Q9aCx0aGlzLm5lc3RlZFByb3A9bmV3IEJmZShnKX1hY2NlcHRzKGcsaCl7Y29uc3Qgdj10aGlzLm5lc3RlZFByb3AuZ2V0UHJvcFZhbHVlKGcpO3JldHVybiB2b2lkIDAhPT12JiYodGhpcy5leGFjdD8oIiIrdikudG9Mb3dlckNhc2UoKT09PWg6''@;'; + put 'put ''KCIiK3YpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihoKT49MCl9fWNsYXNzIGZTe2NvbnN0cnVjdG9yKGcpe3RoaXMuZmlsdGVyRm49Zyx0aGlzLl9jaGFuZ2VzPW5ldyAkZSx0aGlzLl9sb3dlckNhc2VWYWx1ZT0iIix0aGlzLl9yYXdWYWx1ZT0iIn1nZXQgY2hhbmdlcygpe3JldHVybiB0aGlz''@;'; + put 'put ''Ll9jaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpfWdldCBsb3dlckNhc2VWYWx1ZSgpe3JldHVybiB0aGlzLl9sb3dlckNhc2VWYWx1ZX1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5fcmF3VmFsdWV9c2V0IHZhbHVlKGcpe2d8fChnPSIiKSxnIT09dGhpcy5fcmF3VmFsdWUmJih0aGlzLl9yYXdWYWx1''@;'; + put 'put ''ZT1nLHRoaXMuX2xvd2VyQ2FzZVZhbHVlPWcudG9Mb3dlckNhc2UoKS50cmltKCksdGhpcy5fY2hhbmdlcy5uZXh0KGcpKX1pc0FjdGl2ZSgpe3JldHVybiEhdGhpcy52YWx1ZX1hY2NlcHRzKGcpe3JldHVybiB0aGlzLmZpbHRlckZuLmFjY2VwdHMoZyx0aGlzLmxvd2VyQ2FzZVZhbHVlKX1n''@;'; + put 'put ''ZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy5maWx0ZXJGbiBpbnN0YW5jZW9mIHBxP3twcm9wZXJ0eTp0aGlzLmZpbHRlckZuLnByb3AsdmFsdWU6dGhpcy52YWx1ZX06dGhpc31lcXVhbHMoZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBmUyYmKGcuZmlsdGVyRm4gaW5zdGFuY2VvZiBwcT90aGlzLmZp''@;'; + put 'put ''bHRlckZuIGluc3RhbmNlb2YgcHEmJmcuZmlsdGVyRm4ucHJvcD09PXRoaXMuZmlsdGVyRm4ucHJvcCYmZy52YWx1ZT09PXRoaXMudmFsdWU6Zz09PXRoaXMpfX1sZXQgUGZlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBocXtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3N1cGVyKGgpLHRoaXMuZG9t''@;'; + put 'put ''QWRhcHRlcj12LHRoaXMuY29tbW9uU3RyaW5ncz15LHRoaXMuc21hcnRUb2dnbGVTZXJ2aWNlPUMsdGhpcy5uZ1pvbmU9SSx0aGlzLnN1YnM9W10sdGhpcy5vcGVuPSExLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2U9bmV3IGFyfWdldCBwbGFjZWhvbGRlclZhbHVlKCl7cmV0dXJuIHRoaXMucGxh''@;'; + put 'put ''Y2Vob2xkZXJ8fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmZpbHRlckl0ZW1zfXNldCBjdXN0b21TdHJpbmdGaWx0ZXIoaCl7dGhpcy5zZXRGaWx0ZXIoaCBpbnN0YW5jZW9mIGZxP2g6bmV3IGZTKGgpKSx0aGlzLmluaXRGaWx0ZXJWYWx1ZSYmKHRoaXMudmFsdWU9dGhpcy5pbml0RmlsdGVy''@;'; + put 'put ''VmFsdWUsZGVsZXRlIHRoaXMuaW5pdEZpbHRlclZhbHVlKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN1YnMucHVzaCh0aGlzLnNtYXJ0VG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShoPT57dGhpcy5vcGVuPWgsdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnty''@;'; + put 'put ''ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRvbUFkYXB0ZXIuZm9jdXModGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KX0pfSl9KSl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuc3Vicy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9Z2V0IHZhbHVlKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuZmlsdGVyLnZhbHVlfXNldCB2YWx1ZShoKXt0aGlzLmZpbHRlciYmInN0cmluZyI9PXR5cGVvZiBoPyhofHwoaD0iIiksaCE9PXRoaXMuZmlsdGVyLnZhbHVlJiYodGhpcy5maWx0ZXIudmFsdWU9aCx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoaCkpKTp0aGlzLmlu''@;'; + put 'put ''aXRGaWx0ZXJWYWx1ZT1ofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdCh2OSksWHQodTQpLFh0KG5zKSxYdCh6cyksWHQoX2wpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLXN0cmluZy1maWx0ZXIiXV0sdmll''@;'; + put 'put ''d1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiYodm8oZkwsNSksdm8ocWosNSkpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYuaW5wdXQ9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYuZmlsdGVyQ29udGFpbmVyPXkuZmlyc3QpfX0saW5wdXRzOntwbGFjZWhvbGRlcjpbImNsckZpbHRlclBs''@;'; + put 'put ''YWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiXSxjdXN0b21TdHJpbmdGaWx0ZXI6WyJjbHJEZ1N0cmluZ0ZpbHRlciIsImN1c3RvbVN0cmluZ0ZpbHRlciJdLHZhbHVlOlsiY2xyRmlsdGVyVmFsdWUiLCJ2YWx1ZSJdfSxvdXRwdXRzOntmaWx0ZXJWYWx1ZUNoYW5nZToiY2xyRmlsdGVyVmFsdWVD''@;'; + put 'put ''aGFuZ2UifSxmZWF0dXJlczpbaG8oW3twcm92aWRlOmNxLHVzZUV4aXN0aW5nOmR9XSksRG9dLGRlY2xzOjMsdmFyczo1LGNvbnN0czpbWzMsImNsckRnRmlsdGVyIiwiY2xyRGdGaWx0ZXJPcGVuIiwiY2xyRGdGaWx0ZXJPcGVuQ2hhbmdlIl0sWyJ0eXBlIiwidGV4dCIsIm5hbWUiLCJzZWFy''@;'; + put 'put ''Y2giLDEsImNsci1pbnB1dCIsMywibmdNb2RlbCIsInBsYWNlaG9sZGVyIiwibmdNb2RlbENoYW5nZSJdLFsiaW5wdXQiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJjbHItZGctZmlsdGVyIiwwKSxZbigiY2xyRGdGaWx0ZXJPcGVuQ2hhbmdlIixmdW5jdGlvbihD''@;'; + put 'put ''KXtyZXR1cm4gdi5vcGVuPUN9KSxpdCgxLCJpbnB1dCIsMSwyKSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYudmFsdWU9Q30pLHN0KCkoKSksMiZoJiYoVHQoImNsckRnRmlsdGVyIix2LnJlZ2lzdGVyZWQpKCJjbHJEZ0ZpbHRlck9wZW4iLHYub3BlbiksdXQoMSks''@;'; + put 'put ''VHQoIm5nTW9kZWwiLHYudmFsdWUpKCJwbGFjZWhvbGRlciIsdi5wbGFjZWhvbGRlclZhbHVlKSx6aSgiYXJpYS1sYWJlbCIsdi5wbGFjZWhvbGRlclZhbHVlKSl9LGRlcGVuZGVuY2llczpbcWosbTEsRXMseHNdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGhTPSgoKT0+e2NsYXNzIGQgZXh0''@;'; + put 'put ''ZW5kcyBvd3t9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IGc7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybihnfHwoZz1mbChkKSkpKHZ8fGQpfX0oKSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF0YWdyaWQiXV0sZmVhdHVyZXM6W0RvXX0pLGR9''@;'; + put 'put ''KSgpLExMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLmFjdGlvbmFibGVDb3VudD0wfXJlZ2lzdGVyKCl7dGhpcy5hY3Rpb25hYmxlQ291bnQrK311bnJlZ2lzdGVyKCl7dGhpcy5hY3Rpb25hYmxlQ291bnQtLX1nZXQgaGFzQWN0aW9uYWJsZVJvdygpe3JldHVybiB0aGlzLmFj''@;'; + put 'put ''dGlvbmFibGVDb3VudD4wfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxlWj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgYXd7Y29uc3RydWN0b3IoaCx2LHkp''@;'; + put 'put ''e2lmKCF2KXRocm93IG5ldyBFcnJvcigiY2xyLWRnLXJvdyBzaG91bGQgb25seSBiZSB1c2VkIGluc2lkZSBvZiBhIGNsci1kYXRhZ3JpZCIpO3N1cGVyKGgsdiksdGhpcy5yb3dBY3Rpb25zPXl9Z2V0IGZsYXZvcigpe3JldHVybiB0aGlzLnJvd0FjdGlvbnMuaGFzQWN0aW9uYWJsZVJvd319''@;'; + put 'put ''cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoZDEpLFh0KGhTLDgpLFh0KExMKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kYXRhZ3JpZCJdLFsiY2xyLWRnLXJvdyJdXSxmZWF0dXJlczpbRG9dfSksZH0pKCksQTg9''@;'; + put 'put ''KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMudG9nZ2xlU3RhdGU9ITEsdGhpcy5fc3RhdGU9bmV3IGNzKHRoaXMudG9nZ2xlU3RhdGUpLHRoaXMuX2VuYWJsZWQ9ITF9Z2V0IGVuYWJsZWQoKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH1zZXQgZW5hYmxlZChoKXt0aGlzLl9lbmFibGVk''@;'; + put 'put ''PWh9Z2V0IHN0YXRlQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX3N0YXRlLmFzT2JzZXJ2YWJsZSgpfWNsb3NlKCl7dGhpcy50b2dnbGVTdGF0ZT0hMSx0aGlzLl9zdGF0ZS5uZXh0KHRoaXMudG9nZ2xlU3RhdGUpLHRoaXMuYnV0dG9uJiYodGhpcy5idXR0b24uZm9jdXMoKSx0aGlzLmJ1dHRvbj1u''@;'; + put 'put ''dWxsKX1vcGVuKGgsdil7dGhpcy5jYWNoZT1oLHRoaXMuYnV0dG9uPXYsdGhpcy50b2dnbGVTdGF0ZT0hMCx0aGlzLl9zdGF0ZS5uZXh0KHRoaXMudG9nZ2xlU3RhdGUpfXRvZ2dsZShoLHYpe3RoaXMuaXNSb3dPcGVuKGgpfHwhaD90aGlzLmNsb3NlKCk6dGhpcy5vcGVuKGgsdil9Z2V0IHN0''@;'; + put 'put ''YXRlKCl7cmV0dXJuIHRoaXMuY2FjaGV9aXNSb3dPcGVuKGgpe3JldHVybiEoIXRoaXMudG9nZ2xlU3RhdGV8fHRoaXMuY2FjaGUhPT1oKX1nZXQgaXNPcGVuKCl7cmV0dXJuITA9PT10aGlzLnRvZ2dsZVN0YXRlfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyho''@;'; + put 'put ''fHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxPTD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuZGV0YWlsU2VydmljZT1oLHRoaXMuZXhwYW5kYWJsZUNvdW50PTB9cmVnaXN0ZXIoKXt0aGlzLmV4cGFuZGFibGVDb3Vu''@;'; + put 'put ''dCsrfXVucmVnaXN0ZXIoKXt0aGlzLmV4cGFuZGFibGVDb3VudC0tfWdldCBoYXNFeHBhbmRhYmxlUm93KCl7cmV0dXJuIXRoaXMuZGV0YWlsU2VydmljZS5lbmFibGVkJiZ0aGlzLmV4cGFuZGFibGVDb3VudD4wfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyho''@;'; + put 'put ''fHxkKShDaShBOCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLHRaPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBhd3tjb25zdHJ1Y3RvcihoLHYseSl7aWYoIXYpdGhyb3cgbmV3IEVycm9yKCJjbHItZGctcm93IHNob3VsZCBvbmx5IGJlIHVz''@;'; + put 'put ''ZWQgaW5zaWRlIG9mIGEgY2xyLWRhdGFncmlkIik7c3VwZXIoaCx2KSx0aGlzLmV4cGFuZGFibGVDb3VudD15fWdldCBmbGF2b3IoKXtyZXR1cm4gdGhpcy5leHBhbmRhYmxlQ291bnQuaGFzRXhwYW5kYWJsZVJvd319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXco''@;'; + put 'put ''aHx8ZCkoWHQoZDEpLFh0KGhTLDgpLFh0KE9MKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kYXRhZ3JpZCJdLFsiY2xyLWRnLXJvdyJdXSxmZWF0dXJlczpbRG9dfSksZH0pKCk7Y2xhc3MgZ3F7Y29uc3RydWN0b3IoZyl7dGhpcy5wcm9wPWcsdGhpcy5uZXN0''@;'; + put 'put ''ZWRQcm9wPW5ldyBCZmUoZyl9Y29tcGFyZShnLGgpe2xldCB2PXRoaXMubmVzdGVkUHJvcC5nZXRQcm9wVmFsdWUoZykseT10aGlzLm5lc3RlZFByb3AuZ2V0UHJvcFZhbHVlKGgpO3JldHVybiJzdHJpbmciPT10eXBlb2YgdiYmKHY9di50b0xvd2VyQ2FzZSgpKSwic3RyaW5nIj09dHlwZW9m''@;'; + put 'put ''IHkmJih5PXkudG9Mb3dlckNhc2UoKSksbnVsbD09dj9udWxsPT15PzA6MTpudWxsPT15fHx2PHk/LTE6dj55PzE6MH19dmFyIGRoPSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5VTlNPUlRFRD0wXT0iVU5TT1JURUQiLGRbZC5BU0M9MV09IkFTQyIsZFtkLkRFU0M9LTFdPSJERVNDIn0oZGh8fChk''@;'; + put 'put ''aD17fSkpLGRoKSkoKTtsZXQgRmZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9keW5hbWljPSExfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuY29sdW1uVmlldz10aGlzLnRlbXBsYXRlUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyhudWxsKX1uZ09uRGVzdHJveSgpe3RoaXMuY29s''@;'; + put 'put ''dW1uVmlldy5kZXN0cm95KCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJkZy13cmFwcGVkLWNvbHVtbiJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJnZvKGhMLDUp''@;'; + put 'put ''LDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYudGVtcGxhdGVSZWY9eS5maXJzdCl9fSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6Mix2YXJzOjAsY29uc3RzOltbImNvbHVtblBvcnRhbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCkscm4oMCx5aiwxLDAsIm5n''@;'; + put 'put ''LXRlbXBsYXRlIixudWxsLDAsWnIpKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksbXE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLnN0YXRlRGVib3VuY2VyPWgsdGhpcy5fcmV2ZXJzZT0hMSx0aGlzLl9jaGFuZ2U9bmV3ICRlfWdldCBjb21wYXJhdG9yKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2NvbXBhcmF0b3J9c2V0IGNvbXBhcmF0b3IoaCl7dGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VTdGFydCgpLHRoaXMuX2NvbXBhcmF0b3I9aCx0aGlzLmVtaXRDaGFuZ2UoKSx0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZURvbmUoKX1nZXQgcmV2ZXJzZSgpe3JldHVybiB0aGlzLl9y''@;'; + put 'put ''ZXZlcnNlfXNldCByZXZlcnNlKGgpe3RoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlU3RhcnQoKSx0aGlzLl9yZXZlcnNlPWgsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VEb25lKCl9ZW1pdENoYW5nZSgpe3RoaXMuX2NoYW5nZS5uZXh0KHRoaXMpfWdldCBj''@;'; + put 'put ''aGFuZ2UoKXtyZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpfXRvZ2dsZShoLHYpe3RoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlU3RhcnQoKSx0aGlzLmNvbXBhcmF0b3I9PT1oP3RoaXMuX3JldmVyc2U9dm9pZCAwIT09diYmdnx8IXRoaXMuX3JldmVyc2U6KHRoaXMuX2NvbXBh''@;'; + put 'put ''cmF0b3I9aCx0aGlzLl9yZXZlcnNlPXZvaWQgMCE9PXYmJnYpLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlRG9uZSgpfWNsZWFyKCl7dGhpcy5jb21wYXJhdG9yPW51bGx9Y29tcGFyZShoLHYpe3JldHVybih0aGlzLnJldmVyc2U/LTE6MSkqdGhpcy5jb21w''@;'; + put 'put ''YXJhdG9yLmNvbXBhcmUoaCx2KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koJGopKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTt2YXIgYzQ9KCgpPT4oZnVuY3Rpb24oZCl7ZFtkLkFMSUdO''@;'; + put 'put ''X0NPTFVNTlM9MF09IkFMSUdOX0NPTFVNTlMiLGRbZC5DQUxDVUxBVEVfTU9ERV9PTj0xXT0iQ0FMQ1VMQVRFX01PREVfT04iLGRbZC5DQUxDVUxBVEVfTU9ERV9PRkY9Ml09IkNBTENVTEFURV9NT0RFX09GRiIsZFtkLkNMRUFSX1dJRFRIUz0zXT0iQ0xFQVJfV0lEVEhTIixkW2QuQ09NUFVU''@;'; + put 'put ''RV9DT0xVTU5fV0lEVEhTPTRdPSJDT01QVVRFX0NPTFVNTl9XSURUSFMifShjNHx8KGM0PXt9KSksYzQpKSgpO2xldCBkUz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVuZGVyU3RlcD1uZXcgJGUsdGhpcy5hbHJlYWR5U2l6ZWQ9ITF9Z2V0IHJlbmRlclN0ZXAoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fcmVuZGVyU3RlcC5hc09ic2VydmFibGUoKX1maWx0ZXJSZW5kZXJTdGVwcyhoKXtyZXR1cm4gdGhpcy5yZW5kZXJTdGVwLnBpcGUoTDIodj0+aD09PXYpKX1yZXNpemUoKXt0aGlzLl9yZW5kZXJTdGVwLm5leHQoYzQuQ0FMQ1VMQVRFX01PREVfT04pLHRoaXMuYWxyZWFkeVNp''@;'; + put 'put ''emVkJiZ0aGlzLl9yZW5kZXJTdGVwLm5leHQoYzQuQ0xFQVJfV0lEVEhTKSx0aGlzLl9yZW5kZXJTdGVwLm5leHQoYzQuQ09NUFVURV9DT0xVTU5fV0lEVEhTKSx0aGlzLl9yZW5kZXJTdGVwLm5leHQoYzQuQUxJR05fQ09MVU1OUyksdGhpcy5hbHJlYWR5U2l6ZWQ9ITAsdGhpcy5fcmVuZGVy''@;'; + put 'put ''U3RlcC5uZXh0KGM0LkNBTENVTEFURV9NT0RFX09GRil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLEhmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9y''@;'; + put 'put ''KGgsdix5KXt0aGlzLmVsPWgsdGhpcy5kb21BZGFwdGVyPXYsdGhpcy5vcmdhbml6ZXI9eSx0aGlzLl9yZXNpemVkQnk9MH1nZXQgcmVzaXplZEJ5KCl7cmV0dXJuIHRoaXMuX3Jlc2l6ZWRCeX1nZXQgbWluQ29sdW1uV2lkdGgoKXtyZXR1cm4gdGhpcy5kb21BZGFwdGVyLm1pbldpZHRoKHRo''@;'; + put 'put ''aXMuZWwubmF0aXZlRWxlbWVudCl8fDk2fWdldCBtYXhSZXNpemVSYW5nZSgpe3JldHVybiB0aGlzLndpZHRoQmVmb3JlUmVzaXplLXRoaXMubWluQ29sdW1uV2lkdGh9c3RhcnRSZXNpemUoKXt0aGlzLl9yZXNpemVkQnk9MCx0aGlzLmlzV2l0aGluTWF4UmVzaXplUmFuZ2U9ITAsdGhpcy53''@;'; + put 'put ''aWR0aEJlZm9yZVJlc2l6ZT10aGlzLmRvbUFkYXB0ZXIuY2xpZW50UmVjdCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLndpZHRofWVuZFJlc2l6ZSgpe3RoaXMub3JnYW5pemVyLnJlc2l6ZSgpfWdldCB3aWR0aEFmdGVyUmVzaXplKCl7cmV0dXJuIHRoaXMud2lkdGhCZWZvcmVSZXNpemUrdGhp''@;'; + put 'put ''cy5fcmVzaXplZEJ5fWNhbGN1bGF0ZVJlc2l6ZShoKXtoPC10aGlzLm1heFJlc2l6ZVJhbmdlPyh0aGlzLl9yZXNpemVkQnk9LXRoaXMubWF4UmVzaXplUmFuZ2UsdGhpcy5pc1dpdGhpbk1heFJlc2l6ZVJhbmdlPSExKToodGhpcy5fcmVzaXplZEJ5PWgsdGhpcy5pc1dpdGhpbk1heFJlc2l6''@;'; + put 'put ''ZVJhbmdlPSEwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koYm8pLENpKHU0KSxDaShkUykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLE5mZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9y''@;'; + put 'put ''KGgpe3RoaXMucGxhdGZvcm1JZD1ofWdldCB0YWJsZVJlZigpe3JldHVybiB0aGlzLl90YWJsZVJlZn1zZXQgdGFibGVSZWYoaCl7dGhpcy5fdGFibGVSZWY9aH1zZXQgdGFibGUoaCl7U2wodGhpcy5wbGF0Zm9ybUlkKSYmaC5uYXRpdmVFbGVtZW50JiYodGhpcy50YWJsZVJlZj1oLm5hdGl2''@;'; + put 'put ''ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmRhdGFncmlkLXRhYmxlIikpfWdldENvbHVtbkRyYWdIZWlnaHQoKXtyZXR1cm4gdGhpcy50YWJsZVJlZj9gJHt0aGlzLnRhYmxlUmVmLmNsaWVudEhlaWdodH1weGA6bnVsbH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBu''@;'; + put 'put ''ZXcoaHx8ZCkoQ2koRDIpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxyeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksaix1ZSl7dGhpcy5jb2x1bW5SZXNpemVyU2VydmljZT1oLHRoaXMucmVuZGVyZXI9dix0aGlz''@;'; + put 'put ''Lm5nWm9uZT15LHRoaXMudGFibGVTaXplU2VydmljZT1DLHRoaXMuY29tbW9uU3RyaW5nPUksdGhpcy5kb2N1bWVudD1qLHRoaXMuY29sdW1uU2VwYXJhdG9ySWQ9dWUsdGhpcy5yZXNpemVTdGFydGVkT25LZXlEb3duPSExLHRoaXMudW5saXN0ZW5lcnM9W119Z2V0IHJlc2l6ZVRyYWNrZXJF''@;'; + put 'put ''bCgpe3JldHVybiB0aGlzLnJlc2l6ZVRyYWNrZXJSZWYubmF0aXZlRWxlbWVudH1nZXQgY29sdW1uSGFuZGxlRWwoKXtyZXR1cm4gdGhpcy5jb2x1bW5IYW5kbGVSZWYubmF0aXZlRWxlbWVudH1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3Ro''@;'; + put 'put ''aXMudW5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmNvbHVtbkhhbmRsZUVsLCJrZXlkb3duIixoPT57dGhpcy5zaG93VHJhY2tlck9uRmlyc3RLZXlEb3duKGgpLHRoaXMubW92ZVRyYWNrZXJPbktleURvd24oaCl9KSksdGhpcy51bmxpc3RlbmVycy5wdXNoKHRo''@;'; + put 'put ''aXMucmVuZGVyZXIubGlzdGVuKHRoaXMuY29sdW1uSGFuZGxlRWwsImtleXVwIixoPT57dGhpcy5oaWRlVHJhY2tlck9uS2V5VXAoaCl9KSl9KX1nZXQgZGVzY3JpcHRpb25JZCgpe3JldHVybmAke3RoaXMuY29sdW1uU2VwYXJhdG9ySWR9LWFyaWEtZGVzY3JpYmVkYnlgfXNob3dUcmFja2Vy''@;'; + put 'put ''KCl7dGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5zdGFydFJlc2l6ZSgpO2NvbnN0IGg9dGhpcy50YWJsZVNpemVTZXJ2aWNlLmdldENvbHVtbkRyYWdIZWlnaHQoKTt0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucmVzaXplVHJhY2tlckVsLCJoZWlnaHQiLGgpLHRoaXMucmVuZGVyZXIu''@;'; + put 'put ''c2V0U3R5bGUodGhpcy5yZXNpemVUcmFja2VyRWwsImRpc3BsYXkiLCJibG9jayIpfW1vdmVUcmFja2VyKGgpe3RoaXMuY29sdW1uUmVzaXplclNlcnZpY2UuY2FsY3VsYXRlUmVzaXplKGgpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yZXNpemVUcmFja2VyRWwsInRyYW5zZm9ybSIs''@;'; + put 'put ''YHRyYW5zbGF0ZVgoJHt0aGlzLmNvbHVtblJlc2l6ZXJTZXJ2aWNlLnJlc2l6ZWRCeX1weClgKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZG9jdW1lbnQuYm9keSwiY3Vyc29yIiwiY29sLXJlc2l6ZSIpLHRoaXMucmVkRmxhZ1RyYWNrZXIoKX1oaWRlVHJhY2tlcigpe3RoaXMuY29s''@;'; + put 'put ''dW1uUmVzaXplclNlcnZpY2UuZW5kUmVzaXplKCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwiZGlzcGxheSIsIm5vbmUiKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucmVzaXplVHJhY2tlckVsLCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGVYKDBweCki''@;'; + put 'put ''KSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZG9jdW1lbnQuYm9keSwiY3Vyc29yIiwiYXV0byIpfXNob3dUcmFja2VyT25GaXJzdEtleURvd24oaCl7IXRoaXMucmVzaXplU3RhcnRlZE9uS2V5RG93biYmKHRoaXMuaXNBcnJvd0xlZnRLZXlFdmVudChoKXx8dGhpcy5pc0Fycm93Umln''@;'; + put 'put ''aHRLZXlFdmVudChoKSkmJih0aGlzLnJlc2l6ZVN0YXJ0ZWRPbktleURvd249ITAsdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwib24tYXJyb3cta2V5LXJlc2l6ZSIpLHRoaXMuc2hvd1RyYWNrZXIoKSl9bW92ZVRyYWNrZXJPbktleURvd24oaCl7dGhpcy5p''@;'; + put 'put ''c0Fycm93TGVmdEtleUV2ZW50KGgpP3RoaXMubW92ZVRyYWNrZXIodGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnktMTIpOnRoaXMuaXNBcnJvd1JpZ2h0S2V5RXZlbnQoaCkmJnRoaXMubW92ZVRyYWNrZXIodGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnkrMTIp''@;'; + put 'put ''fWhpZGVUcmFja2VyT25LZXlVcChoKXt0aGlzLnJlc2l6ZVN0YXJ0ZWRPbktleURvd24mJih0aGlzLmlzQXJyb3dMZWZ0S2V5RXZlbnQoaCl8fHRoaXMuaXNBcnJvd1JpZ2h0S2V5RXZlbnQoaCkpJiYodGhpcy5yZXNpemVTdGFydGVkT25LZXlEb3duPSExLHRoaXMucmVuZGVyZXIucmVtb3Zl''@;'; + put 'put ''Q2xhc3ModGhpcy5yZXNpemVUcmFja2VyRWwsIm9uLWFycm93LWtleS1yZXNpemUiKSx0aGlzLmhpZGVUcmFja2VyKCksdGhpcy5jb2x1bW5IYW5kbGVFbC5mb2N1cygpKX1yZWRGbGFnVHJhY2tlcigpe3RoaXMuaXNXaXRoaW5NYXhSZXNpemVSYW5nZSE9PXRoaXMuY29sdW1uUmVzaXplclNl''@;'; + put 'put ''cnZpY2UuaXNXaXRoaW5NYXhSZXNpemVSYW5nZSYmKHRoaXMuaXNXaXRoaW5NYXhSZXNpemVSYW5nZT10aGlzLmNvbHVtblJlc2l6ZXJTZXJ2aWNlLmlzV2l0aGluTWF4UmVzaXplUmFuZ2UsdGhpcy5pc1dpdGhpbk1heFJlc2l6ZVJhbmdlP3RoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhp''@;'; + put 'put ''cy5yZXNpemVUcmFja2VyRWwsImV4Y2VlZGVkLW1heCIpOnRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5yZXNpemVUcmFja2VyRWwsImV4Y2VlZGVkLW1heCIpKX1pc0Fycm93TGVmdEtleUV2ZW50KGgpe3JldHVybiBoLmtleT09PU0wLkFycm93TGVmdHx8aC5rZXk9PT1mYy5BcnJvd0xl''@;'; + put 'put ''ZnR9aXNBcnJvd1JpZ2h0S2V5RXZlbnQoaCl7cmV0dXJuIGgua2V5PT09TTAuQXJyb3dSaWdodHx8aC5rZXk9PT1mYy5BcnJvd1JpZ2h0fW5nT25EZXN0cm95KCl7dGhpcy51bmxpc3RlbmVycy5mb3JFYWNoKGg9PmgoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4g''@;'; + put 'put ''bmV3KGh8fGQpKFh0KEhmZSksWHQoR2EpLFh0KF9sKSxYdChOZmUpLFh0KG5zKSxYdChwcyksWHQoeTIpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVtbi1zZXBhcmF0b3IiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiYodm8oUmYs''@;'; + put 'put ''NSksdm8oZTMsNSkpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYucmVzaXplVHJhY2tlclJlZj15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5jb2x1bW5IYW5kbGVSZWY9eS5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImRhdGFncmlkLWNv''@;'; + put 'put ''bHVtbi1zZXBhcmF0b3IiLCEwKX0sZmVhdHVyZXM6W2hvKFtPY10pXSxkZWNsczo2LHZhcnM6NSxjb25zdHM6W1sidHlwZSIsImJ1dHRvbiIsImNsckRyYWdnYWJsZSIsIiIsMSwiZGF0YWdyaWQtY29sdW1uLWhhbmRsZSIsMywiY2xyR3JvdXAiLCJjbHJEcmFnU3RhcnQiLCJjbHJEcmFnTW92''@;'; + put 'put ''ZSIsImNsckRyYWdFbmQiXSxbImNvbHVtbkhhbmRsZSIsIiJdLFsxLCJjbHItc3Itb25seSJdLFsxLCJkYXRhZ3JpZC1jb2x1bW4tcmVzaXplLXRyYWNrZXIiXSxbInJlc2l6ZVRyYWNrZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJidXR0b24iLDAsMSksWW4o''@;'; + put 'put ''ImNsckRyYWdTdGFydCIsZnVuY3Rpb24oKXtyZXR1cm4gdi5zaG93VHJhY2tlcigpfSkoImNsckRyYWdNb3ZlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5tb3ZlVHJhY2tlcihDLmRyYWdQb3NpdGlvbi5tb3ZlWCl9KSgiY2xyRHJhZ0VuZCIsZnVuY3Rpb24oKXtyZXR1cm4gdi5oaWRlVHJhY2tl''@;'; + put 'put ''cigpfSksc3QoKSxpdCgyLCJzcGFuIiwyKSxVdCgzKSxzdCgpLENyKDQsImRpdiIsMyw0KSksMiZoJiYoVHQoImNsckdyb3VwIix2LmNvbHVtblNlcGFyYXRvcklkKSx6aSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmcua2V5cy5jb2x1bW5TZXBhcmF0b3JBcmlhTGFiZWwpKCJhcmlhLWRl''@;'; + put 'put ''c2NyaWJlZGJ5Iix2LmRlc2NyaXB0aW9uSWQpLHV0KDIpLHppKCJpZCIsdi5kZXNjcmlwdGlvbklkKSx1dCgxKSxKaSgiICIsdi5jb21tb25TdHJpbmcua2V5cy5jb2x1bW5TZXBhcmF0b3JEZXNjcmlwdGlvbiwiICIpKX0sZGVwZW5kZW5jaWVzOlskQWVdLGVuY2Fwc3VsYXRpb246Mn0pLGR9''@;'; + put 'put ''KSgpLFJMPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBocXtjb25zdHJ1Y3RvcihoLHYseSxDLEksail7c3VwZXIodiksdGhpcy5fc29ydD1oLHRoaXMudmNyPXksdGhpcy5kZXRhaWxTZXJ2aWNlPUMsdGhpcy5jaGFuZ2VEZXRlY3RvclJlZj1JLHRoaXMuY29tbW9uU3RyaW5ncz1qLHRoaXMuc2hv''@;'; + put 'put ''d1NlcGFyYXRvcj0hMCx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5fY29sVHlwZT0ic3RyaW5nIix0aGlzLl9zb3J0ZWQ9ITEsdGhpcy5zb3J0ZWRDaGFuZ2U9bmV3IGFyLHRoaXMuX3NvcnRPcmRlcj1kaC5VTlNPUlRFRCx0aGlzLnNvcnRPcmRlckNoYW5nZT1uZXcgYXIsdGhpcy5jdXN0''@;'; + put 'put ''b21GaWx0ZXI9ITEsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZT1uZXcgYXIsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JTb3J0aW5nQ2hhbmdlcygpKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3RlbkZvckRldGFpbFBhbmVDaGFuZ2VzKCkpfW5nT25EZXN0''@;'; + put 'put ''cm95KCl7c3VwZXIubmdPbkRlc3Ryb3koKSx0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWxpc3RlbkZvckRldGFpbFBhbmVDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuZGV0YWlsU2VydmljZS5zdGF0ZUNoYW5nZS5zdWJzY3JpYmUoaD0+e3RoaXMuc2hvd1Nl''@;'; + put 'put ''cGFyYXRvciE9PSFoJiYodGhpcy5zaG93U2VwYXJhdG9yPSFoLHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfSl9bGlzdGVuRm9yU29ydGluZ0NoYW5nZXMoKXtyZXR1cm4gdGhpcy5fc29ydC5jaGFuZ2Uuc3Vic2NyaWJlKGg9Pnt0aGlzLmNoYW5nZURldGVjdG9yUmVm''@;'; + put 'put ''Lm1hcmtGb3JDaGVjaygpLHRoaXMuc29ydE9yZGVyIT09ZGguVU5TT1JURUQmJmguY29tcGFyYXRvciE9PXRoaXMuX3NvcnRCeSYmKHRoaXMuX3NvcnRPcmRlcj1kaC5VTlNPUlRFRCx0aGlzLnNvcnRPcmRlckNoYW5nZS5lbWl0KHRoaXMuX3NvcnRPcmRlciksdGhpcy5zb3J0SWNvbj1udWxs''@;'; + put 'put ''LHRoaXMuX3NvcnREaXJlY3Rpb249bnVsbCksdGhpcy5zb3J0ZWQmJmguY29tcGFyYXRvciE9PXRoaXMuX3NvcnRCeSYmKHRoaXMuX3NvcnRlZD0hMSx0aGlzLnNvcnRlZENoYW5nZS5lbWl0KCExKSl9KX1nZXQgY29sVHlwZSgpe3JldHVybiB0aGlzLl9jb2xUeXBlfXNldCBjb2xUeXBlKGgp''@;'; + put 'put ''e3RoaXMuX2NvbFR5cGU9aH1nZXQgZmllbGQoKXtyZXR1cm4gdGhpcy5fZmllbGR9c2V0IGZpZWxkKGgpeyJzdHJpbmciPT10eXBlb2YgaCYmKHRoaXMuX2ZpZWxkPWgsdGhpcy5fc29ydEJ5fHwodGhpcy5fc29ydEJ5PW5ldyBncShoKSkpfXNldHVwRGVmYXVsdEZpbHRlcihoLHYpeyJudW1i''@;'; + put 'put ''ZXIiPT09dj90aGlzLnNldEZpbHRlcihuZXcgY1MobmV3IGRxKGgpKSk6InN0cmluZyI9PT12JiZ0aGlzLnNldEZpbHRlcihuZXcgZlMobmV3IHBxKGgpKSksdGhpcy5maWx0ZXImJnRoaXMuaW5pdEZpbHRlclZhbHVlJiYodGhpcy51cGRhdGVGaWx0ZXJWYWx1ZT10aGlzLmluaXRGaWx0ZXJW''@;'; + put 'put ''YWx1ZSxkZWxldGUgdGhpcy5pbml0RmlsdGVyVmFsdWUpfW5nT25DaGFuZ2VzKGgpe2guY29sVHlwZSYmaC5jb2xUeXBlLmN1cnJlbnRWYWx1ZSYmaC5jb2xUeXBlLmN1cnJlbnRWYWx1ZSE9PWguY29sVHlwZS5wcmV2aW91c1ZhbHVlJiYhdGhpcy5jdXN0b21GaWx0ZXImJiF0aGlzLmZpbHRl''@;'; + put 'put ''ciYmdGhpcy5jb2xUeXBlJiZ0aGlzLmZpZWxkJiZ0aGlzLnNldHVwRGVmYXVsdEZpbHRlcih0aGlzLmZpZWxkLHRoaXMuY29sVHlwZSksaC5maWVsZCYmaC5maWVsZC5jdXJyZW50VmFsdWUmJmguZmllbGQuY3VycmVudFZhbHVlIT09aC5maWVsZC5wcmV2aW91c1ZhbHVlJiYhdGhpcy5jdXN0''@;'; + put 'put ''b21GaWx0ZXImJnRoaXMuY29sVHlwZSYmdGhpcy5zZXR1cERlZmF1bHRGaWx0ZXIodGhpcy5maWVsZCx0aGlzLmNvbFR5cGUpfWdldCBzb3J0QnkoKXtyZXR1cm4gdGhpcy5fc29ydEJ5fXNldCBzb3J0QnkoaCl7InN0cmluZyI9PXR5cGVvZiBoP3RoaXMuX3NvcnRCeT1uZXcgZ3EoaCk6aD90''@;'; + put 'put ''aGlzLl9zb3J0Qnk9aDp0aGlzLmZpZWxkP3RoaXMuX3NvcnRCeT1uZXcgZ3EodGhpcy5maWVsZCk6ZGVsZXRlIHRoaXMuX3NvcnRCeX1nZXQgc29ydGFibGUoKXtyZXR1cm4hIXRoaXMuX3NvcnRCeX1nZXQgc29ydGVkKCl7cmV0dXJuIHRoaXMuX3NvcnRlZH1zZXQgc29ydGVkKGgpeyFoJiZ0''@;'; + put 'put ''aGlzLnNvcnRlZD8odGhpcy5fc29ydGVkPSExLHRoaXMuX3NvcnQuY2xlYXIoKSk6aCYmIXRoaXMuc29ydGVkJiZ0aGlzLnNvcnQoKX1nZXQgc29ydE9yZGVyKCl7cmV0dXJuIHRoaXMuX3NvcnRPcmRlcn1zZXQgc29ydE9yZGVyKGgpe2lmKHZvaWQgMCE9PWgmJnRoaXMuX3NvcnRPcmRlciE9''@;'; + put 'put ''PWgpc3dpdGNoKGgpe2RlZmF1bHQ6Y2FzZSBkaC5VTlNPUlRFRDp0aGlzLl9zb3J0LmNsZWFyKCk7YnJlYWs7Y2FzZSBkaC5BU0M6dGhpcy5zb3J0KCExKTticmVhaztjYXNlIGRoLkRFU0M6dGhpcy5zb3J0KCEwKX19Z2V0IGFyaWFTb3J0KCl7c3dpdGNoKHRoaXMuX3NvcnRPcmRlcil7ZGVm''@;'; + put 'put ''YXVsdDpjYXNlIGRoLlVOU09SVEVEOnJldHVybiJub25lIjtjYXNlIGRoLkFTQzpyZXR1cm4iYXNjZW5kaW5nIjtjYXNlIGRoLkRFU0M6cmV0dXJuImRlc2NlbmRpbmcifX1nZXQgc29ydERpcmVjdGlvbigpe3JldHVybiB0aGlzLl9zb3J0RGlyZWN0aW9ufXNvcnQoaCl7IXRoaXMuc29ydGFi''@;'; + put 'put ''bGV8fCh0aGlzLl9zb3J0LnRvZ2dsZSh0aGlzLl9zb3J0QnksaCksdGhpcy5fc29ydE9yZGVyPXRoaXMuX3NvcnQucmV2ZXJzZT9kaC5ERVNDOmRoLkFTQyx0aGlzLl9zb3J0RGlyZWN0aW9uPXRoaXMuX3NvcnRPcmRlcj09PWRoLkRFU0M/ImRvd24iOiJ1cCIsdGhpcy5zb3J0SWNvbj10aGlz''@;'; + put 'put ''Ll9zb3J0T3JkZXI9PT1kaC5ERVNDPyJhcnJvdyBkb3duIjoiYXJyb3ciLHRoaXMuc29ydE9yZGVyQ2hhbmdlLmVtaXQodGhpcy5fc29ydE9yZGVyKSx0aGlzLl9zb3J0ZWQ9ITAsdGhpcy5zb3J0ZWRDaGFuZ2UuZW1pdCghMCkpfXNldCBwcm9qZWN0ZWRGaWx0ZXIoaCl7aCYmKHRoaXMuZGVs''@;'; + put 'put ''ZXRlRmlsdGVyKCksdGhpcy5jdXN0b21GaWx0ZXI9ITApfWdldCBmaWx0ZXJTdHJpbmdQbGFjZWhvbGRlclZhbHVlKCl7cmV0dXJuIHRoaXMuZmlsdGVyU3RyaW5nUGxhY2Vob2xkZXJ8fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmZpbHRlckl0ZW1zfWdldCBmaWx0ZXJOdW1iZXJNYXhQbGFj''@;'; + put 'put ''ZWhvbGRlclZhbHVlKCl7cmV0dXJuIHRoaXMuZmlsdGVyTnVtYmVyTWF4UGxhY2Vob2xkZXJ8fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLm1heFZhbHVlfWdldCBmaWx0ZXJOdW1iZXJNaW5QbGFjZWhvbGRlclZhbHVlKCl7cmV0dXJuIHRoaXMuZmlsdGVyTnVtYmVyTWluUGxhY2Vob2xkZXJ8''@;'; + put 'put ''fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLm1pblZhbHVlfXNldCB1cGRhdGVGaWx0ZXJWYWx1ZShoKXt0aGlzLmZpbHRlcj90aGlzLmZpbHRlciBpbnN0YW5jZW9mIGZTPygoIWh8fCJzdHJpbmciIT10eXBlb2YgaCkmJihoPSIiKSxoIT09dGhpcy5maWx0ZXIudmFsdWUmJih0aGlzLmZpbHRl''@;'; + put 'put ''ci52YWx1ZT1oKSk6dGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBjUyYmKCghaHx8IShoIGluc3RhbmNlb2YgQXJyYXkpKSYmKGg9W251bGwsbnVsbF0pLDI9PT1oLmxlbmd0aCYmKGhbMF0hPT10aGlzLmZpbHRlci52YWx1ZVswXXx8aFsxXSE9PXRoaXMuZmlsdGVyLnZhbHVlWzFdKSYmKHRoaXMu''@;'; + put 'put ''ZmlsdGVyLnZhbHVlPWgpKTp0aGlzLmluaXRGaWx0ZXJWYWx1ZT1ofWdldCBmaWx0ZXJWYWx1ZSgpe3JldHVybiB0aGlzLmZpbHRlciBpbnN0YW5jZW9mIGZTfHx0aGlzLmZpbHRlciBpbnN0YW5jZW9mIGNTP3RoaXMuZmlsdGVyLnZhbHVlOm51bGx9c2V0IGZpbHRlclZhbHVlKGgpeyh0aGlz''@;'; + put 'put ''LmZpbHRlciBpbnN0YW5jZW9mIGZTfHx0aGlzLmZpbHRlciBpbnN0YW5jZW9mIGNTKSYmKHRoaXMudXBkYXRlRmlsdGVyVmFsdWU9aCx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQodGhpcy5maWx0ZXIudmFsdWUpKX1uZ09uSW5pdCgpe3RoaXMud3JhcHBlZEluamVjdG9yPW5ldyBidChG''@;'; + put 'put ''ZmUsdGhpcy52Y3IpfWdldCBfdmlldygpe3JldHVybiB0aGlzLndyYXBwZWRJbmplY3Rvci5nZXQoRmZlLHRoaXMudmNyKS5jb2x1bW5WaWV3fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChtcSksWHQodjkpLFh0KFVpKSxYdChBOCksWHQoZDEp''@;'; + put 'put ''LFh0KG5zKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1jb2x1bW4iXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxjcSw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LnByb2plY3RlZEZpbHRlcj1DLmZpcnN0KX19''@;'; + put 'put ''LGhvc3RBdHRyczpbInJvbGUiLCJjb2x1bW5oZWFkZXIiXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKHppKCJhcmlhLXNvcnQiLHYuYXJpYVNvcnQpLEZpKCJkYXRhZ3JpZC1jb2x1bW4iLCEwKSl9LGlucHV0czp7Y29sVHlwZTpbImNsckRnQ29sVHlwZSIs''@;'; + put 'put ''ImNvbFR5cGUiXSxmaWVsZDpbImNsckRnRmllbGQiLCJmaWVsZCJdLHNvcnRCeTpbImNsckRnU29ydEJ5Iiwic29ydEJ5Il0sc29ydGVkOlsiY2xyRGdTb3J0ZWQiLCJzb3J0ZWQiXSxzb3J0T3JkZXI6WyJjbHJEZ1NvcnRPcmRlciIsInNvcnRPcmRlciJdLGZpbHRlclN0cmluZ1BsYWNlaG9s''@;'; + put 'put ''ZGVyOlsiY2xyRmlsdGVyU3RyaW5nUGxhY2Vob2xkZXIiLCJmaWx0ZXJTdHJpbmdQbGFjZWhvbGRlciJdLGZpbHRlck51bWJlck1heFBsYWNlaG9sZGVyOlsiY2xyRmlsdGVyTnVtYmVyTWF4UGxhY2Vob2xkZXIiLCJmaWx0ZXJOdW1iZXJNYXhQbGFjZWhvbGRlciJdLGZpbHRlck51bWJlck1p''@;'; + put 'put ''blBsYWNlaG9sZGVyOlsiY2xyRmlsdGVyTnVtYmVyTWluUGxhY2Vob2xkZXIiLCJmaWx0ZXJOdW1iZXJNaW5QbGFjZWhvbGRlciJdLHVwZGF0ZUZpbHRlclZhbHVlOlsiY2xyRmlsdGVyVmFsdWUiLCJ1cGRhdGVGaWx0ZXJWYWx1ZSJdfSxvdXRwdXRzOntzb3J0ZWRDaGFuZ2U6ImNsckRnU29y''@;'; + put 'put ''dGVkQ2hhbmdlIixzb3J0T3JkZXJDaGFuZ2U6ImNsckRnU29ydE9yZGVyQ2hhbmdlIixmaWx0ZXJWYWx1ZUNoYW5nZToiY2xyRmlsdGVyVmFsdWVDaGFuZ2UifSxmZWF0dXJlczpbaG8oW0dzLGg4LHpzXSksRG8sUDJdLG5nQ29udGVudFNlbGVjdG9yczpBJCxkZWNsczo5LHZhcnM6NSxjb25z''@;'; + put 'put ''dHM6W1sxLCJkYXRhZ3JpZC1jb2x1bW4tZmxleCJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1jb2x1bW4tdGl0bGUiLCJ0eXBlIiwiYnV0dG9uIiwzLCJjbGljayIsNCwibmdJZiJdLFszLCJjbHJGaWx0ZXJQbGFjZWhvbGRlciIsImNsckRnU3RyaW5nRmlsdGVyIiwiY2xyRmlsdGVyVmFsdWUiLCJj''@;'; + put 'put ''bHJGaWx0ZXJWYWx1ZUNoYW5nZSIsNCwibmdJZiJdLFszLCJjbHJGaWx0ZXJNYXhQbGFjZWhvbGRlciIsImNsckZpbHRlck1pblBsYWNlaG9sZGVyIiwiY2xyRGdOdW1lcmljRmlsdGVyIiwiY2xyRmlsdGVyVmFsdWUiLCJjbHJGaWx0ZXJWYWx1ZUNoYW5nZSIsNCwibmdJZiJdLFsiY29sdW1u''@;'; + put 'put ''VGl0bGUiLCIiXSxbImNsYXNzIiwiZGF0YWdyaWQtY29sdW1uLXRpdGxlIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImRhdGFncmlkLWNvbHVtbi10aXRsZSIsMywiY2xpY2siXSxbNCwibmdUZW1wbGF0ZU91dGxldCJdLFsic2hhcGUiLCJhcnJvdyIsImFyaWEt''@;'; + put 'put ''aGlkZGVuIiwidHJ1ZSIsImNsYXNzIiwic29ydC1pY29uIiw0LCJuZ0lmIl0sWyJzaGFwZSIsImFycm93IiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJzb3J0LWljb24iXSxbMywiY2xyRmlsdGVyUGxhY2Vob2xkZXIiLCJjbHJEZ1N0cmluZ0ZpbHRlciIsImNsckZpbHRlclZhbHVlIiwiY2xy''@;'; + put 'put ''RmlsdGVyVmFsdWVDaGFuZ2UiXSxbMywiY2xyRmlsdGVyTWF4UGxhY2Vob2xkZXIiLCJjbHJGaWx0ZXJNaW5QbGFjZWhvbGRlciIsImNsckRnTnVtZXJpY0ZpbHRlciIsImNsckZpbHRlclZhbHVlIiwiY2xyRmlsdGVyVmFsdWVDaGFuZ2UiXSxbMSwiZGF0YWdyaWQtY29sdW1uLXRpdGxlIl1d''@;'; + put 'put ''LHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAod2opLGl0KDAsImRpdiIsMCkscm4oMSxtJCwzLDIsImJ1dHRvbiIsMSksTmkoMikscm4oMyx1Y2UsMSwzLCJjbHItZGctc3RyaW5nLWZpbHRlciIsMikscm4oNCxjY2UsMSw0LCJjbHItZGctbnVtZXJpYy1maWx0ZXIiLDMpLHJuKDUs''@;'; + put 'put ''JHksMSwwLCJuZy10ZW1wbGF0ZSIsbnVsbCw0LFpyKSxybig3LGZjZSwyLDEsInNwYW4iLDUpLHJuKDgsdiQsMSwwLCJjbHItZGctY29sdW1uLXNlcGFyYXRvciIsNiksc3QoKSksMiZoJiYodXQoMSksVHQoIm5nSWYiLHYuc29ydGFibGUpLHV0KDIpLFR0KCJuZ0lmIix2LmZpZWxkJiYhdi5j''@;'; + put 'put ''dXN0b21GaWx0ZXImJiJzdHJpbmciPT12LmNvbFR5cGUpLHV0KDEpLFR0KCJuZ0lmIix2LmZpZWxkJiYhdi5jdXN0b21GaWx0ZXImJiJudW1iZXIiPT12LmNvbFR5cGUpLHV0KDMpLFR0KCJuZ0lmIiwhdi5zb3J0YWJsZSksdXQoMSksVHQoIm5nSWYiLHYuc2hvd1NlcGFyYXRvcikpfSxkZXBl''@;'; + put 'put ''bmRlbmNpZXM6W1BmZSx0eWUscnllLFZvLFFkLFpvXSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxkfSkoKSxkdz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLl9maWx0ZXJzPWgsdGhpcy5fc29ydD12LHRoaXMuX3BhZ2U9eSx0aGlzLmxvYWRpbmc9''@;'; + put 'put ''ITEsdGhpcy50cmFja0J5PShDLEkpPT5JLHRoaXMuX3NtYXJ0PSExLHRoaXMuX2Rpc3BsYXllZD1bXSx0aGlzLl9jaGFuZ2U9bmV3ICRlLHRoaXMuX2FsbENoYW5nZXM9bmV3ICRlfWRlc3Ryb3koKXt0aGlzLl9maWx0ZXJzU3ViJiZ0aGlzLl9maWx0ZXJzU3ViLnVuc3Vic2NyaWJlKCksdGhp''@;'; + put 'put ''cy5fc29ydFN1YiYmdGhpcy5fc29ydFN1Yi51bnN1YnNjcmliZSgpLHRoaXMuX3BhZ2VTdWImJnRoaXMuX3BhZ2VTdWIudW5zdWJzY3JpYmUoKX1nZXQgc21hcnQoKXtyZXR1cm4gdGhpcy5fc21hcnR9c21hcnRlblVwKCl7dGhpcy5fc21hcnQ9ITAsdGhpcy5fZmlsdGVyc1N1Yj10aGlzLl9m''@;'; + put 'put ''aWx0ZXJzLmNoYW5nZS5zdWJzY3JpYmUoKCk9PnRoaXMuX2ZpbHRlckl0ZW1zKCkpLHRoaXMuX3NvcnRTdWI9dGhpcy5fc29ydC5jaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhpcy5fc29ydC5jb21wYXJhdG9yP3RoaXMuX3NvcnRJdGVtcygpOnRoaXMuX2ZpbHRlckl0ZW1zKCl9KSx0aGlzLl9w''@;'; + put 'put ''YWdlU3ViPXRoaXMuX3BhZ2UuY2hhbmdlLnN1YnNjcmliZSgoKT0+dGhpcy5fY2hhbmdlUGFnZSgpKX1nZXQgYWxsKCl7cmV0dXJuIHRoaXMuX2FsbH1zZXQgYWxsKGgpe3RoaXMuX2FsbD1oLHRoaXMuZW1pdEFsbENoYW5nZXMoaCksdGhpcy5zbWFydD90aGlzLl9maWx0ZXJJdGVtcygpOih0''@;'; + put 'put ''aGlzLl9kaXNwbGF5ZWQ9aCx0aGlzLmVtaXRDaGFuZ2UoKSl9cmVmcmVzaCgpe3RoaXMuc21hcnQmJnRoaXMuX2ZpbHRlckl0ZW1zKCl9Z2V0IGRpc3BsYXllZCgpe3JldHVybiB0aGlzLl9kaXNwbGF5ZWR9ZW1pdENoYW5nZSgpe3RoaXMuX2NoYW5nZS5uZXh0KHRoaXMuZGlzcGxheWVkKX1n''@;'; + put 'put ''ZXQgY2hhbmdlKCl7cmV0dXJuIHRoaXMuX2NoYW5nZS5hc09ic2VydmFibGUoKX1lbWl0QWxsQ2hhbmdlcyhoKXt0aGlzLl9hbGxDaGFuZ2VzLm5leHQoaCl9Z2V0IGFsbENoYW5nZXMoKXtyZXR1cm4gdGhpcy5fYWxsQ2hhbmdlcy5hc09ic2VydmFibGUoKX1nZXQgdW5pbml0aWFsaXplZCgp''@;'; + put 'put ''e3JldHVybiF0aGlzLl9hbGx9X2ZpbHRlckl0ZW1zKCl7dGhpcy51bmluaXRpYWxpemVkfHwodGhpcy5fZmlsdGVyZWQ9dGhpcy5fZmlsdGVycy5oYXNBY3RpdmVGaWx0ZXJzKCk/dGhpcy5fYWxsLmZpbHRlcihoPT50aGlzLl9maWx0ZXJzLmFjY2VwdHMoaCkpOnRoaXMuX2FsbC5zbGljZSgp''@;'; + put 'put ''LHRoaXMuX3BhZ2UudG90YWxJdGVtcz10aGlzLl9maWx0ZXJlZC5sZW5ndGgsdGhpcy5fc29ydEl0ZW1zKCkpfV9zb3J0SXRlbXMoKXt0aGlzLnVuaW5pdGlhbGl6ZWR8fCh0aGlzLl9zb3J0LmNvbXBhcmF0b3ImJnRoaXMuX2ZpbHRlcmVkLnNvcnQoKGgsdik9PnRoaXMuX3NvcnQuY29tcGFy''@;'; + put 'put ''ZShoLHYpKSx0aGlzLl9jaGFuZ2VQYWdlKCkpfV9jaGFuZ2VQYWdlKCl7dGhpcy51bmluaXRpYWxpemVkfHx0aGlzLl9wYWdlLmFjdGl2YXRlZCYmMD09PXRoaXMuX3BhZ2Uuc2l6ZXx8KHRoaXMuX2Rpc3BsYXllZD10aGlzLl9wYWdlLnNpemU+MD90aGlzLl9maWx0ZXJlZC5zbGljZSh0aGlz''@;'; + put 'put ''Ll9wYWdlLmZpcnN0SXRlbSx0aGlzLl9wYWdlLmxhc3RJdGVtKzEpOnRoaXMuX2ZpbHRlcmVkLHRoaXMuZW1pdENoYW5nZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2kodjkpLENpKG1xKSxDaShodykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rv''@;'; + put 'put ''a2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLEJMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy50ZW1wbGF0ZT1oLHRoaXMuZGlmZmVycz12LHRoaXMuaXRlbXM9eSx0aGlzLnZjcj1DLHRoaXMuZGlmZmVyPW51bGwsdGhpcy5zdWJzY3JpcHRpb25zPVtd''@;'; + put 'put ''LHkuc21hcnRlblVwKCksdGhpcy5pdGVyYWJsZVByb3h5PW5ldyBacyh0aGlzLnZjcix0aGlzLnRlbXBsYXRlLHRoaXMuZGlmZmVycyksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goeS5jaGFuZ2Uuc3Vic2NyaWJlKEk9Pnt0aGlzLml0ZXJhYmxlUHJveHkubmdGb3JPZj1JLHRoaXMuaXRlcmFi''@;'; + put 'put ''bGVQcm94eS5uZ0RvQ2hlY2soKX0pKX1zZXQgcmF3SXRlbXMoaCl7dGhpcy5fcmF3SXRlbXM9aHx8W119c2V0IHRyYWNrQnkoaCl7dGhpcy5pdGVtcy50cmFja0J5PWgsdGhpcy5pdGVyYWJsZVByb3h5Lm5nRm9yVHJhY2tCeT1ofW5nRG9DaGVjaygpe3RoaXMuZGlmZmVyfHwodGhpcy5kaWZm''@;'; + put 'put ''ZXI9dGhpcy5kaWZmZXJzLmZpbmQodGhpcy5fcmF3SXRlbXMpLmNyZWF0ZSh0aGlzLml0ZXJhYmxlUHJveHkubmdGb3JUcmFja0J5KSksdGhpcy5kaWZmZXImJnRoaXMuZGlmZmVyLmRpZmYodGhpcy5fcmF3SXRlbXMpJiYodGhpcy5pdGVtcy5hbGw9dGhpcy5fcmF3SXRlbXMpfW5nT25EZXN0''@;'; + put 'put ''cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQocXIpLFh0KEJBKSxYdChkdyksWHQoVWkpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6''@;'; + put 'put ''W1siIiwiY2xyRGdJdGVtcyIsIiIsImNsckRnSXRlbXNPZiIsIiJdXSxpbnB1dHM6e3Jhd0l0ZW1zOlsiY2xyRGdJdGVtc09mIiwicmF3SXRlbXMiXSx0cmFja0J5OlsiY2xyRGdJdGVtc1RyYWNrQnkiLCJ0cmFja0J5Il19fSksZH0pKCksVmZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3Io''@;'; + put 'put ''aCl7dGhpcy5pdGVtcz1ofWdldCBlbXB0eURhdGFncmlkKCl7cmV0dXJuISh0aGlzLml0ZW1zLmxvYWRpbmd8fHRoaXMuaXRlbXMuZGlzcGxheWVkJiYwIT09dGhpcy5pdGVtcy5kaXNwbGF5ZWQubGVuZ3RoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; + put 'put ''ZCkoWHQoZHcpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLXBsYWNlaG9sZGVyIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVyIiwhMCl9LG5nQ29udGVudFNl''@;'; + put 'put ''bGVjdG9yczpuYSxkZWNsczo0LHZhcnM6NCxjb25zdHM6W1sicm9sZSIsInJvdyIsMSwiZGF0YWdyaWQtcGxhY2Vob2xkZXIiXSxbImNsYXNzIiwiZGF0YWdyaWQtcGxhY2Vob2xkZXItaW1hZ2UiLDQsIm5nSWYiXSxbInJvbGUiLCJncmlkY2VsbCIsMSwiZGF0YWdyaWQtcGxhY2Vob2xkZXIt''@;'; + put 'put ''Y29udGVudCJdLFs0LCJuZ0lmIl0sWzEsImRhdGFncmlkLXBsYWNlaG9sZGVyLWltYWdlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxpdCgwLCJkaXYiLDApLHJuKDEsaGNlLDEsMCwiZGl2IiwxKSxpdCgyLCJzcGFuIiwyKSxybigzLGRjZSwxLDAsIm5nLWNvbnRlbnQi''@;'; + put 'put ''LDMpLHN0KCkoKSksMiZoJiYoRmkoImRhdGFncmlkLWVtcHR5Iix2LmVtcHR5RGF0YWdyaWQpLHV0KDEpLFR0KCJuZ0lmIix2LmVtcHR5RGF0YWdyaWQpLHV0KDIpLFR0KCJuZ0lmIix2LmVtcHR5RGF0YWdyaWQpKX0sZGVwZW5kZW5jaWVzOltWb10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCks''@;'; + put 'put ''amZlPSgoKT0+e2NsYXNzIGR7c2V0IHRyaWdnZXJFbChoKXt0aGlzLl90cmlnZ2VyRWw9aH1mb2N1c1RyaWdnZXIoKXt0aGlzLl90cmlnZ2VyRWwmJnRoaXMuX3RyaWdnZXJFbC5mb2N1cygpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAy''@;'; + put 'put ''NzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxaZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2lkPW5ldyAkZX1zZXRJZChoKXt0aGlzLl9pZC5uZXh0KGgpfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZC5hc09ic2VydmFibGUoKX19cmV0''@;'; + put 'put ''dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksdnE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksaix1ZSl7dGhpcy50b2dnbGVTZXJ2aWNlPWgs''@;'; + put 'put ''dGhpcy5lbD12LHRoaXMuY29tbW9uU3RyaW5ncz15LHRoaXMuc2lnbnBvc3RJZFNlcnZpY2U9Qyx0aGlzLnNpZ25wb3N0Rm9jdXNNYW5hZ2VyPUksdGhpcy5wbGF0Zm9ybUlkPXVlLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmRvY3VtZW50PWp9bmdPbkluaXQoKXt0aGlzLnNpZ25wb3N0''@;'; + put 'put ''Rm9jdXNNYW5hZ2VyLnRyaWdnZXJFbD10aGlzLmVsLm5hdGl2ZUVsZW1lbnQsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGg9Pnt0aGlzLmFyaWFFeHBhbmRlZD1oO2NvbnN0IHY9dGhpcy5pc09wZW47dGhpcy5pc09wZW49''@;'; + put 'put ''aCwhdGhpcy5pc09wZW4mJnYmJnRoaXMuZm9jdXNPbkNsb3NlKCl9KSx0aGlzLnNpZ25wb3N0SWRTZXJ2aWNlLmlkLnN1YnNjcmliZShoPT50aGlzLmFyaWFDb250cm9sPWgpKSx0aGlzLmFkZERlZmF1bHRBcmlhTGFiZWwodGhpcy5lbC5uYXRpdmVFbGVtZW50KX1hZGREZWZhdWx0QXJpYUxh''@;'; + put 'put ''YmVsKGgpe2guaGFzQXR0cmlidXRlKCJhcmlhLWxhYmVsIil8fGguc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5zaWducG9zdFRvZ2dsZSl9Zm9jdXNPbkNsb3NlKCl7IVNsKHRoaXMucGxhdGZvcm1JZCl8fCF0aGlzLmlzT3BlbiYmdGhpcy5kb2N1''@;'; + put 'put ''bWVudC5hY3RpdmVFbGVtZW50PT09dGhpcy5kb2N1bWVudC5ib2R5JiZ0aGlzLnNpZ25wb3N0Rm9jdXNNYW5hZ2VyLmZvY3VzVHJpZ2dlcigpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1vblNpZ25wb3N0VHJpZ2dlckNsaWNr''@;'; + put 'put ''KGgpe3RoaXMudG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZlbnQoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KHpzKSxYdChibyksWHQobnMpLFh0KFpmZSksWHQoamZlKSxYdChwcyksWHQoRDIpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6''@;'; + put 'put ''ZCxzZWxlY3RvcnM6W1siIiwiY2xyU2lnbnBvc3RUcmlnZ2VyIiwiIl1dLGhvc3RBdHRyczpbMSwic2lnbnBvc3QtdHJpZ2dlciJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZZbigiY2xpY2siLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uU2lnbnBvc3RUcmln''@;'; + put 'put ''Z2VyQ2xpY2soQyl9KSwyJmgmJih6aSgiYXJpYS1leHBhbmRlZCIsdi5hcmlhRXhwYW5kZWQpKCJhcmlhLWNvbnRyb2xzIix2LmFyaWFDb250cm9sKSxGaSgiYWN0aXZlIix2LmlzT3BlbikpfX0pLGR9KSgpLHpmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuY29tbW9uU3Ry''@;'; + put 'put ''aW5ncz1oLHRoaXMudXNlQ3VzdG9tVHJpZ2dlcj0hMX1zZXQgY3VzdG9tVHJpZ2dlcihoKXt0aGlzLnVzZUN1c3RvbVRyaWdnZXI9ISFofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChucykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVj''@;'; + put 'put ''dG9yczpbWyJjbHItc2lnbnBvc3QiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSx2cSw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LmN1c3RvbVRyaWdnZXI9Qy5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezIm''@;'; + put 'put ''aCYmRmkoInNpZ25wb3N0IiwhMCl9LGZlYXR1cmVzOltobyhbenMsamZlLHtwcm92aWRlOnRmLHVzZUV4aXN0aW5nOmJvfSxaZmVdKV0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjIsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLCJjbHJTaWducG9zdFRy''@;'; + put 'put ''aWdnZXIiLCIiLDEsInNpZ25wb3N0LWFjdGlvbiIsImJ0biIsImJ0bi1zbWFsbCIsImJ0bi1saW5rIl0sWyJzaGFwZSIsImluZm8tY2lyY2xlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxybigwLGE5LDMsMSwibmctY29udGFpbmVyIiwwKSxOaSgxKSksMiZoJiZUdCgi''@;'; + put 'put ''bmdJZiIsIXYudXNlQ3VzdG9tVHJpZ2dlcil9LGRlcGVuZGVuY2llczpbVm8sdnEsWm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLEdmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fZHluYW1pYz0hMX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLmNlbGxWaWV3PXRoaXMudGVt''@;'; + put 'put ''cGxhdGVSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpfW5nT25EZXN0cm95KCl7dGhpcy5jZWxsVmlldy5kZXN0cm95KCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJkZy13cmFw''@;'; + put 'put ''cGVkLWNlbGwiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhiaiw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LnRlbXBsYXRlUmVmPXkuZmlyc3QpfX0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjIsdmFyczowLGNvbnN0czpbWyJjZWxsUG9ydGFsIiwiIl1d''@;'; + put 'put ''LHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxybigwLHkkLDEsMCwibmctdGVtcGxhdGUiLG51bGwsMCxacikpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxwUz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMudmNyPWh9bmdPbkluaXQoKXt0aGlzLndyYXBwZWRJ''@;'; + put 'put ''bmplY3Rvcj1uZXcgYnQoR2ZlLHRoaXMudmNyKX1nZXQgX3ZpZXcoKXtyZXR1cm4gdGhpcy53cmFwcGVkSW5qZWN0b3IuZ2V0KEdmZSx0aGlzLnZjcikuY2VsbFZpZXd9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KFVpKSl9LGQuXHUwMjc1Y21w''@;'; + put 'put ''PVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1jZWxsIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksemZlLDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuc2lnbnBvc3Q9Qyl9fSxob3N0QXR0cnM6WyJyb2xlIiwiZ3JpZGNlbGwiXSxob3N0''@;'; + put 'put ''VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImRhdGFncmlkLWNlbGwiLCEwKSgiZGF0YWdyaWQtc2lnbnBvc3QtdHJpZ2dlciIsdi5zaWducG9zdC5sZW5ndGg+MCl9LG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlv''@;'; + put 'put ''bihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxpeWU9MCxuWj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgbjF7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuZXhwYW5kYWJsZUlkPSIiLHRoaXMuX3JlcGxhY2U9bmV3IGNzKCExKSx0aGlzLl9hbmltYXRl''@;'; + put 'put ''PW5ldyAkZSxpeWUrKyx0aGlzLmV4cGFuZGFibGVJZD0iY2xyLWRnLWV4cGFuZGFibGUtcm93LSIraXllfWdldCBleHBhbmRlZCgpe3JldHVybiB0aGlzLl9leHBhbmRlZH1zZXQgZXhwYW5kZWQoaCl7KGg9ISFoKSE9PXRoaXMuX2V4cGFuZGVkJiYodGhpcy5fZXhwYW5kZWQ9aCx0aGlzLl9h''@;'; + put 'put ''bmltYXRlLm5leHQoKSx0aGlzLl9leHBhbmRDaGFuZ2UubmV4dChoKSl9bG9hZGluZ1N0YXRlQ2hhbmdlKGgpe3N1cGVyLmxvYWRpbmdTdGF0ZUNoYW5nZShoKSxoIT09Z2kuTE9BRElORyYmdGhpcy5fYW5pbWF0ZS5uZXh0KCl9Z2V0IHJlcGxhY2UoKXtyZXR1cm4gdGhpcy5fcmVwbGFjZS5h''@;'; + put 'put ''c09ic2VydmFibGUoKX1zZXRSZXBsYWNlKGgpe3RoaXMuX3JlcGxhY2UubmV4dChoKX1nZXQgYW5pbWF0ZSgpe3JldHVybiB0aGlzLl9hbmltYXRlLmFzT2JzZXJ2YWJsZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFp''@;'; + put 'put ''KHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTt2YXIgcHc9KCgpPT4oZnVuY3Rpb24oZCl7ZFtkLkRJU1BMQVk9MF09IkRJU1BMQVkiLGRbZC5DQUxDVUxBVEU9MV09IkNBTENVTEFURSJ9KHB3fHwocHc9e30pKSxwdykpKCksV3M9KCgpPT4oZnVuY3Rpb24oZCl7ZFtkLk5v''@;'; + put 'put ''bmU9MF09Ik5vbmUiLGRbZC5TaW5nbGU9MV09IlNpbmdsZSIsZFtkLk11bHRpPTJdPSJNdWx0aSJ9KFdzfHwoV3M9e30pKSxXcykpKCk7bGV0IFdmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fZHluYW1pYz0hMX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnJvd1ZpZXc9dGhp''@;'; + put 'put ''cy50ZW1wbGF0ZVJlZi5jcmVhdGVFbWJlZGRlZFZpZXcobnVsbCl9bmdPbkRlc3Ryb3koKXt0aGlzLnJvd1ZpZXcuZGVzdHJveSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siZGct''@;'; + put 'put ''d3JhcHBlZC1yb3ciXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byh0Myw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LnRlbXBsYXRlUmVmPXkuZmlyc3QpfX0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjIsdmFyczowLGNvbnN0czpbWyJyb3dQb3J0YWwiLCIi''@;'; + put 'put ''XV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLHJuKDAscGNlLDEsMCwibmctdGVtcGxhdGUiLG51bGwsMCxacikpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxiT2U9MCxyWj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLl9pdGVtcz1oLHRoaXMuX2Zp''@;'; + put 'put ''bHRlcnM9dix0aGlzLl96b25lPXksdGhpcy5wcmVzZXJ2ZVNlbGVjdGlvbj0hMSx0aGlzLnByZXZTZWxlY3Rpb25SZWZzPVtdLHRoaXMubG9ja2VkUmVmcz1bXSx0aGlzLl9zZWxlY3Rpb25UeXBlPVdzLk5vbmUsdGhpcy5yb3dTZWxlY3Rpb25Nb2RlPSExLHRoaXMuc3Vic2NyaXB0aW9ucz1b''@;'; + put 'put ''XSx0aGlzLnNoaWZ0UHJlc3NlZD0hMSx0aGlzLnZhbHVlQ29sbGVjdG9yPW5ldyAkZSx0aGlzLl9jaGFuZ2U9bmV3ICRlLHRoaXMuaWQ9ImNsci1kZy1zZWxlY3Rpb24iK2JPZSsrLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuX2ZpbHRlcnMuY2hhbmdlLnN1YnNjcmliZSgoKT0+eyF0''@;'; + put 'put ''aGlzLl9zZWxlY3RhYmxlfHx0aGlzLnByZXNlcnZlU2VsZWN0aW9ufHx0aGlzLmNsZWFyU2VsZWN0aW9uKCl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5faXRlbXMuYWxsQ2hhbmdlcy5zdWJzY3JpYmUoQz0+e2NvbnN0IEk9W107c3dpdGNoKHRoaXMuc2VsZWN0aW9uVHlwZSl7''@;'; + put 'put ''Y2FzZSBXcy5Ob25lOmJyZWFrO2Nhc2UgV3MuU2luZ2xlOntsZXQgajtjb25zdCB1ZT10aGlzLl9pdGVtcy50cmFja0J5O2xldCBfZT0hMTtpZih0aGlzLmN1cnJlbnRTaW5nbGUmJiF0aGlzLnByZXZTaW5nbGVTZWxlY3Rpb25SZWYmJnRoaXMuX2l0ZW1zLmFsbCYmdGhpcy5faXRlbXMudHJh''@;'; + put 'put ''Y2tCeSl7Y29uc3QgQmU9dGhpcy5faXRlbXMuYWxsLmZpbmRJbmRleChOZT0+TmU9PT10aGlzLmN1cnJlbnRTaW5nbGUpO3RoaXMucHJldlNpbmdsZVNlbGVjdGlvblJlZj10aGlzLl9pdGVtcy50cmFja0J5KEJlLHRoaXMuY3VycmVudFNpbmdsZSl9Qy5mb3JFYWNoKChCZSxOZSk9Pntjb25z''@;'; + put 'put ''dCBLZT11ZShOZSxCZSk7dGhpcy5wcmV2U2luZ2xlU2VsZWN0aW9uUmVmPT09S2UmJihqPUJlLF9lPSEwKSx0aGlzLmxvY2tlZFJlZnMuaW5kZXhPZihLZSk+LTEmJkkucHVzaChLZSl9KSx0aGlzLl9pdGVtcy5zbWFydCYmIWomJihfZT0hMCksc2V0VGltZW91dCgoKT0+e19lJiYodGhpcy5j''@;'; + put 'put ''dXJyZW50U2luZ2xlPWopfSwwKTticmVha31jYXNlIFdzLk11bHRpOntsZXQgaj10aGlzLmN1cnJlbnQuc2xpY2UoKTtjb25zdCB1ZT10aGlzLl9pdGVtcy50cmFja0J5O2xldCBfZT0hMTt0aGlzLmN1cnJlbnQubGVuZ3RoPjAmJnRoaXMucHJldlNlbGVjdGlvblJlZnMubGVuZ3RoIT09dGhp''@;'; + put 'put ''cy5jdXJyZW50Lmxlbmd0aCYmdGhpcy5faXRlbXMuYWxsJiZ0aGlzLl9pdGVtcy50cmFja0J5JiYodGhpcy5wcmV2U2VsZWN0aW9uUmVmcz1bXSx0aGlzLmN1cnJlbnQuZm9yRWFjaChCZT0+e2NvbnN0IE5lPXRoaXMuX2l0ZW1zLmFsbC5maW5kSW5kZXgoS2U9PktlPT09QmUpO3RoaXMucHJl''@;'; + put 'put ''dlNlbGVjdGlvblJlZnMucHVzaCh0aGlzLl9pdGVtcy50cmFja0J5KE5lLEJlKSl9KSksQy5mb3JFYWNoKChCZSxOZSk9Pntjb25zdCBLZT11ZShOZSxCZSk7dGhpcy5sb2NrZWRSZWZzLmluZGV4T2YoS2UpPi0xJiZJLnB1c2goS2UpfSksai5sZW5ndGg+MCYmKEMuZm9yRWFjaCgoQmUsTmUp''@;'; + put 'put ''PT57Y29uc3QgS2U9dWUoTmUsQmUpLGR0PXRoaXMucHJldlNlbGVjdGlvblJlZnMuaW5kZXhPZihLZSk7ZHQ+LTEmJihqW2R0XT1CZSxfZT0hMCl9KSx0aGlzLl9pdGVtcy5zbWFydCYmKGo9ai5maWx0ZXIoQmU9PkMuaW5kZXhPZihCZSk+LTEpLHRoaXMuY3VycmVudC5sZW5ndGghPT1qLmxl''@;'; + put 'put ''bmd0aCYmKF9lPSEwKSksc2V0VGltZW91dCgoKT0+e19lJiYodGhpcy5jdXJyZW50PWopfSwwKSk7YnJlYWt9fXRoaXMubG9ja2VkUmVmcz1JfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudmFsdWVDb2xsZWN0b3IucGlwZShrRCgwKSkuc3Vic2NyaWJlKCgpPT50aGlzLmVtaXRD''@;'; + put 'put ''aGFuZ2UoKSkpfWNsZWFyU2VsZWN0aW9uKCl7dGhpcy5fY3VycmVudD1bXSx0aGlzLnByZXZTZWxlY3Rpb25SZWZzPVtdLHRoaXMucHJldlNpbmdsZVNlbGVjdGlvblJlZj1udWxsLHRoaXMuX2N1cnJlbnRTaW5nbGU9bnVsbCx0aGlzLmVtaXRDaGFuZ2UoKX1nZXQgc2VsZWN0aW9uVHlwZSgp''@;'; + put 'put ''e3JldHVybiB0aGlzLl9zZWxlY3Rpb25UeXBlfXNldCBzZWxlY3Rpb25UeXBlKGgpe2ghPT10aGlzLnNlbGVjdGlvblR5cGUmJih0aGlzLl9zZWxlY3Rpb25UeXBlPWgsaD09PVdzLk5vbmU/ZGVsZXRlIHRoaXMuY3VycmVudDp0aGlzLnVwZGF0ZUN1cnJlbnQoW10sITEpKX1nZXQgX3NlbGVj''@;'; + put 'put ''dGFibGUoKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uVHlwZT09PVdzLk11bHRpfHx0aGlzLl9zZWxlY3Rpb25UeXBlPT09V3MuU2luZ2xlfWRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWdldCBjdXJyZW50U2luZ2xlKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2N1cnJlbnRTaW5nbGV9c2V0IGN1cnJlbnRTaW5nbGUoaCl7aWYoaCE9PXRoaXMuX2N1cnJlbnRTaW5nbGUpe2lmKHRoaXMuX2N1cnJlbnRTaW5nbGU9aCx0aGlzLl9pdGVtcy5hbGwmJnRoaXMuX2l0ZW1zLnRyYWNrQnkmJmgpe2NvbnN0IHY9dGhpcy5faXRlbXMuYWxsLmZpbmRJbmRl''@;'; + put 'put ''eCh5PT55PT09aCk7dGhpcy5wcmV2U2luZ2xlU2VsZWN0aW9uUmVmPXRoaXMuX2l0ZW1zLnRyYWNrQnkodixoKX10aGlzLmVtaXRDaGFuZ2UoKX19Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH1zZXQgY3VycmVudChoKXt0aGlzLnVwZGF0ZUN1cnJlbnQoaCwhMCl9dXBkYXRl''@;'; + put 'put ''Q3VycmVudChoLHYpe3RoaXMuX2N1cnJlbnQ9aCx2JiZ0aGlzLnZhbHVlQ29sbGVjdG9yLm5leHQoaCl9ZW1pdENoYW5nZSgpe3RoaXMuX3NlbGVjdGlvblR5cGU9PT1Xcy5TaW5nbGU/dGhpcy5fY2hhbmdlLm5leHQodGhpcy5jdXJyZW50U2luZ2xlKTp0aGlzLl9zZWxlY3Rpb25UeXBlPT09''@;'; + put 'put ''V3MuTXVsdGkmJnRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuY3VycmVudCl9Z2V0IGNoYW5nZSgpe3JldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCl9aXNTZWxlY3RlZChoKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uVHlwZT09PVdzLlNpbmdsZT90aGlzLmN1cnJlbnRTaW5nbGU9PT1o''@;'; + put 'put ''OnRoaXMuX3NlbGVjdGlvblR5cGU9PT1Xcy5NdWx0aSYmdGhpcy5jdXJyZW50LmluZGV4T2YoaCk+PTB9c2VsZWN0SXRlbShoKXtpZih0aGlzLmN1cnJlbnQ9dGhpcy5jdXJyZW50LmNvbmNhdChoKSx0aGlzLl9pdGVtcy50cmFja0J5JiZ0aGlzLl9pdGVtcy5hbGwpe2NvbnN0IHY9dGhpcy5f''@;'; + put 'put ''aXRlbXMuYWxsLmZpbmRJbmRleCh5PT55PT09aCk7dGhpcy5wcmV2U2VsZWN0aW9uUmVmcy5wdXNoKHRoaXMuX2l0ZW1zLnRyYWNrQnkodixoKSl9fWRlc2VsZWN0SXRlbShoKXtpZih0aGlzLmN1cnJlbnQ9dGhpcy5jdXJyZW50LnNsaWNlKDAsaCkuY29uY2F0KHRoaXMuY3VycmVudC5zbGlj''@;'; + put 'put ''ZShoKzEpKSx0aGlzLl9pdGVtcy50cmFja0J5JiZoPHRoaXMucHJldlNlbGVjdGlvblJlZnMubGVuZ3RoKXtjb25zdCB2PXRoaXMucHJldlNlbGVjdGlvblJlZnMuc3BsaWNlKGgsMSk7dGhpcy5sb2NrZWRSZWZzPXRoaXMubG9ja2VkUmVmcy5maWx0ZXIoeT0+eSE9PXZbMF0pfX1zZXRTZWxl''@;'; + put 'put ''Y3RlZChoLHYpe2NvbnN0IHk9dGhpcy5jdXJyZW50P3RoaXMuY3VycmVudC5pbmRleE9mKGgpOi0xO3N3aXRjaCh0aGlzLl9zZWxlY3Rpb25UeXBlKXtjYXNlIFdzLk5vbmU6Y2FzZSBXcy5TaW5nbGU6YnJlYWs7Y2FzZSBXcy5NdWx0aTp5Pj0wJiYhdj90aGlzLmRlc2VsZWN0SXRlbSh5KTp5''@;'; + put 'put ''PDAmJnYmJnRoaXMuc2VsZWN0SXRlbShoKX19aXNBbGxTZWxlY3RlZCgpe2lmKHRoaXMuX3NlbGVjdGlvblR5cGUhPT1Xcy5NdWx0aXx8IXRoaXMuX2l0ZW1zLmRpc3BsYXllZClyZXR1cm4hMTtjb25zdCBoPXRoaXMuX2l0ZW1zLmRpc3BsYXllZC5maWx0ZXIoQz0+ITE9PT10aGlzLmlzTG9j''@;'; + put 'put ''a2VkKEMpKTtyZXR1cm4hKGgubGVuZ3RoPDEpJiZoLmZpbHRlcihDPT50aGlzLmN1cnJlbnQuaW5kZXhPZihDKT4tMSkubGVuZ3RoPT09aC5sZW5ndGh9Y2FuSXRCZUxvY2tlZCgpe3JldHVybiB0aGlzLl9zZWxlY3Rpb25UeXBlIT09V3MuTm9uZSYmQXJyYXkuaXNBcnJheSh0aGlzLl9pdGVt''@;'; + put 'put ''cy5hbGwpfWxvY2tJdGVtKGgsdil7aWYodGhpcy5jYW5JdEJlTG9ja2VkKCkpe2NvbnN0IHk9dGhpcy5faXRlbXMudHJhY2tCeSh0aGlzLl9pdGVtcy5hbGwuZmluZEluZGV4KEM9PkM9PT1oKSxoKTshMD09PXY/dGhpcy5sb2NrZWRSZWZzLnB1c2goeSk6dGhpcy5sb2NrZWRSZWZzPXRoaXMu''@;'; + put 'put ''bG9ja2VkUmVmcy5maWx0ZXIoQz0+eSE9PUMpfX1pc0xvY2tlZChoKXtpZih0aGlzLmNhbkl0QmVMb2NrZWQoKSl7Y29uc3Qgdj10aGlzLl9pdGVtcy50cmFja0J5KHRoaXMuX2l0ZW1zLmFsbC5maW5kSW5kZXgoeT0+eT09PWgpLGgpO3JldHVybiB0aGlzLmxvY2tlZFJlZnMuaW5kZXhPZih2''@;'; + put 'put ''KT4tMX1yZXR1cm4hMX10b2dnbGVBbGwoKXt0aGlzLl9zZWxlY3Rpb25UeXBlPT09V3MuTm9uZXx8dGhpcy5fc2VsZWN0aW9uVHlwZT09PVdzLlNpbmdsZXx8KHRoaXMuaXNBbGxTZWxlY3RlZCgpP3RoaXMuX2l0ZW1zLmRpc3BsYXllZC5mb3JFYWNoKGg9Pntjb25zdCB2PXRoaXMuY3VycmVu''@;'; + put 'put ''dC5pbmRleE9mKGgpO3Y+LTEmJiExPT09dGhpcy5pc0xvY2tlZChoKSYmdGhpcy5kZXNlbGVjdEl0ZW0odil9KTp0aGlzLl9pdGVtcy5kaXNwbGF5ZWQuZm9yRWFjaChoPT57dGhpcy5jdXJyZW50LmluZGV4T2YoaCk8MCYmITE9PT10aGlzLmlzTG9ja2VkKGgpJiZ0aGlzLnNlbGVjdEl0ZW0o''@;'; + put 'put ''aCl9KSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGR3KSxDaSh2OSksQ2koX2wpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxZZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0''@;'; + put 'put ''aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5fdmlldz1uZXcgY3MocHcuRElTUExBWSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goaC5maWx0ZXJSZW5kZXJTdGVwcyhjNC5DQUxDVUxBVEVfTU9ERV9PTikuc3Vic2NyaWJlKCgpPT50aGlzLl92aWV3Lm5leHQocHcuQ0FMQ1VMQVRFKSkpLHRo''@;'; + put 'put ''aXMuc3Vic2NyaXB0aW9ucy5wdXNoKGguZmlsdGVyUmVuZGVyU3RlcHMoYzQuQ0FMQ1VMQVRFX01PREVfT0ZGKS5zdWJzY3JpYmUoKCk9PnRoaXMuX3ZpZXcubmV4dChwdy5ESVNQTEFZKSkpfWdldCB2aWV3KCl7cmV0dXJuIHRoaXMuX3ZpZXcuYXNPYnNlcnZhYmxlKCl9bmdPbkRlc3Ryb3ko''@;'; + put 'put ''KXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShkUykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLEFxPTAs''@;'; + put 'put ''UEw9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksaix1ZSxfZSxCZSxOZSxLZSxkdCl7dGhpcy5zZWxlY3Rpb249aCx0aGlzLnJvd0FjdGlvblNlcnZpY2U9dix0aGlzLmdsb2JhbEV4cGFuZGFibGU9eSx0aGlzLmV4cGFuZD1DLHRoaXMuZGV0YWlsU2VydmljZT1JLHRoaXMu''@;'; + put 'put ''ZGlzcGxheU1vZGU9aix0aGlzLnZjcj11ZSx0aGlzLnJlbmRlcmVyPV9lLHRoaXMuZWw9QmUsdGhpcy5jb21tb25TdHJpbmdzPU5lLHRoaXMuaXRlbXM9S2UsdGhpcy5kb2N1bWVudD1kdCx0aGlzLlNFTEVDVElPTl9UWVBFPVdzLHRoaXMuZXhwYW5kQW5pbWF0aW9uVHJpZ2dlcj0hMSx0aGlz''@;'; + put 'put ''Ll9zZWxlY3RlZD0hMSx0aGlzLnNlbGVjdGVkQ2hhbmdlZD1uZXcgYXIoITEpLHRoaXMuZXhwYW5kZWRDaGFuZ2U9bmV3IGFyKCExKSx0aGlzLl9kZXRhaWxPcGVuTGFiZWw9IiIsdGhpcy5fZGV0YWlsQ2xvc2VMYWJlbD0iIix0aGlzLl9yb3dBcmlhTGFiZWw9IiIsdGhpcy5zdWJzY3JpcHRp''@;'; + put 'put ''b25zPVtdLHRoaXMuZGlzcGxheUNlbGxzPSExLEFxKyssdGhpcy5pZD0iY2xyLWRnLXJvdyIrQXEsdGhpcy5yYWRpb0lkPSJjbHItZGctcm93LXJkIitBcSx0aGlzLmNoZWNrYm94SWQ9ImNsci1kZy1yb3ctY2IiK0FxLHRoaXMuZXhwYW5kYWJsZUlkPUMuZXhwYW5kYWJsZUlkLHRoaXMuc3Vi''@;'; + put 'put ''c2NyaXB0aW9ucy5wdXNoKCRUKHRoaXMuZXhwYW5kLnJlcGxhY2UsdGhpcy5leHBhbmQuZXhwYW5kQ2hhbmdlKS5zdWJzY3JpYmUoKFtPdCwkdF0pPT57T3QmJiR0Pyh0aGlzLnJlcGxhY2VkPSEwLHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCJkYXRhZ3Jp''@;'; + put 'put ''ZC1yb3ctcmVwbGFjZWQiKSk6KHRoaXMucmVwbGFjZWQ9ITEsdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImRhdGFncmlkLXJvdy1yZXBsYWNlZCIpKX0pKX1jbGVhclJhbmdlcyhoKXtoLnNoaWZ0S2V5JiYodGhpcy5kb2N1bWVudC5nZXRTZWxlY3Rp''@;'; + put 'put ''b24oKS5yZW1vdmVBbGxSYW5nZXMoKSwtMSE9PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkZpcmVmb3giKSYmKGgucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZSghMCkpKX1nZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09''@;'; + put 'put ''PVdzLk5vbmU/dGhpcy5fc2VsZWN0ZWQ6dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZCh0aGlzLml0ZW0pfXNldCBzZWxlY3RlZChoKXt0aGlzLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09V3MuTm9uZT90aGlzLl9zZWxlY3RlZD1oOihoJiZ0aGlzLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBl''@;'; + put 'put ''PT09V3MuTXVsdGk/dGhpcy5yYW5nZVNlbGVjdCgpOnRoaXMuc2VsZWN0aW9uLnJhbmdlU3RhcnQ9bnVsbCx0aGlzLnNlbGVjdGlvbi5zZXRTZWxlY3RlZCh0aGlzLml0ZW0saCkpfXNldCBjbHJEZ1NlbGVjdGFibGUoaCl7dGhpcy5zZWxlY3Rpb24ubG9ja0l0ZW0odGhpcy5pdGVtLCExPT09''@;'; + put 'put ''aCl9Z2V0IGNsckRnU2VsZWN0YWJsZSgpe3JldHVybiF0aGlzLnNlbGVjdGlvbi5pc0xvY2tlZCh0aGlzLml0ZW0pfXRvZ2dsZShoPSF0aGlzLnNlbGVjdGVkKXtoIT09dGhpcy5zZWxlY3RlZCYmKHRoaXMuc2VsZWN0ZWQ9aCx0aGlzLnNlbGVjdGVkQ2hhbmdlZC5lbWl0KGgpKX1nZXQgZXhw''@;'; + put 'put ''YW5kZWQoKXtyZXR1cm4gdGhpcy5leHBhbmQuZXhwYW5kZWR9c2V0IGV4cGFuZGVkKGgpe3RoaXMuZXhwYW5kLmV4cGFuZGVkPWh9dG9nZ2xlRXhwYW5kKCl7dGhpcy5leHBhbmQuZXhwYW5kYWJsZSYmKHRoaXMuZXhwYW5kQW5pbWF0aW9uLnVwZGF0ZVN0YXJ0SGVpZ2h0KCksdGhpcy5leHBh''@;'; + put 'put ''bmRlZD0hdGhpcy5leHBhbmRlZCx0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCkpfXNldCBjbHJEZ0RldGFpbE9wZW5MYWJlbChoKXt0aGlzLl9kZXRhaWxPcGVuTGFiZWw9aH1nZXQgY2xyRGdEZXRhaWxPcGVuTGFiZWwoKXtyZXR1cm4gdGhpcy5fZGV0YWlsT3Blbkxh''@;'; + put 'put ''YmVsP3RoaXMuX2RldGFpbE9wZW5MYWJlbDp0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5vcGVufXNldCBjbHJEZ0RldGFpbENsb3NlTGFiZWwoaCl7dGhpcy5fZGV0YWlsQ2xvc2VMYWJlbD1ofWdldCBjbHJEZ0RldGFpbENsb3NlTGFiZWwoKXtyZXR1cm4gdGhpcy5fZGV0YWlsQ2xvc2VMYWJl''@;'; + put 'put ''bD90aGlzLl9kZXRhaWxDbG9zZUxhYmVsOnRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlfXNldCBjbHJEZ1Jvd0FyaWFMYWJlbChoKXt0aGlzLl9yb3dBcmlhTGFiZWw9aH1nZXQgY2xyRGdSb3dBcmlhTGFiZWwoKXtyZXR1cm4gdGhpcy5fcm93QXJpYUxhYmVsP3RoaXMuX3Jvd0FyaWFM''@;'; + put 'put ''YWJlbDp0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5zZWxlY3R9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5kZ0NlbGxzLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5kZ0NlbGxzLmZvckVhY2goaD0+e2guX3ZpZXcuZGVzdHJveWVkfHx0aGlzLl9zY3JvbGxhYmxlQ2VsbHMuaW5zZXJ0''@;'; + put 'put ''KGguX3ZpZXcpfSl9KX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmRpc3BsYXlNb2RlLnZpZXcuc3Vic2NyaWJlKGg9Pntmb3IobGV0IHY9dGhpcy5fc2Nyb2xsYWJsZUNlbGxzLmxlbmd0aDt2PjA7di0tKXRoaXMuX3Njcm9sbGFibGVDZWxscy5kZXRh''@;'; + put 'put ''Y2goKTtmb3IobGV0IHY9dGhpcy5fY2FsY3VsYXRlZENlbGxzLmxlbmd0aDt2PjA7di0tKXRoaXMuX2NhbGN1bGF0ZWRDZWxscy5kZXRhY2goKTtoPT09cHcuQ0FMQ1VMQVRFPyh0aGlzLmRpc3BsYXlDZWxscz0hMSx0aGlzLmRnQ2VsbHMuZm9yRWFjaCh2PT57di5fdmlldy5kZXN0cm95ZWR8''@;'; + put 'put ''fHRoaXMuX2NhbGN1bGF0ZWRDZWxscy5pbnNlcnQodi5fdmlldyl9KSk6KHRoaXMuZGlzcGxheUNlbGxzPSEwLHRoaXMuZGdDZWxscy5mb3JFYWNoKHY9Pnt2Ll92aWV3LmRlc3Ryb3llZHx8dGhpcy5fc2Nyb2xsYWJsZUNlbGxzLmluc2VydCh2Ll92aWV3KX0pKX0pLHRoaXMuZXhwYW5kLmFu''@;'; + put 'put ''aW1hdGUuc3Vic2NyaWJlKCgpPT57dGhpcy5leHBhbmRBbmltYXRpb25UcmlnZ2VyPSF0aGlzLmV4cGFuZEFuaW1hdGlvblRyaWdnZXJ9KSl9cmFuZ2VTZWxlY3QoKXtjb25zdCBoPXRoaXMuaXRlbXMuZGlzcGxheWVkO2lmKCFoKXJldHVybjtjb25zdCB2PWguaW5kZXhPZih0aGlzLnNlbGVj''@;'; + put 'put ''dGlvbi5yYW5nZVN0YXJ0KTtpZih0aGlzLnNlbGVjdGlvbi5yYW5nZVN0YXJ0JiZ0aGlzLnNlbGVjdGlvbi5jdXJyZW50LmluY2x1ZGVzKHRoaXMuc2VsZWN0aW9uLnJhbmdlU3RhcnQpJiZ0aGlzLnNlbGVjdGlvbi5zaGlmdFByZXNzZWQmJi0xIT09dil7Y29uc3QgeT1oLmluZGV4T2YodGhp''@;'; + put 'put ''cy5pdGVtKSxDPW5ldyBTZXQodGhpcy5zZWxlY3Rpb24uY3VycmVudC5jb25jYXQoaC5zbGljZShNYXRoLm1pbih2LHkpLE1hdGgubWF4KHYseSkrMSkpKTt0aGlzLnNlbGVjdGlvbi5jbGVhclNlbGVjdGlvbigpLHRoaXMuc2VsZWN0aW9uLmN1cnJlbnQucHVzaCguLi5DKX1lbHNlIHRoaXMu''@;'; + put 'put ''c2VsZWN0aW9uLnJhbmdlU3RhcnQ9dGhpcy5pdGVtfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1uZ09uSW5pdCgpe3RoaXMud3JhcHBlZEluamVjdG9yPW5ldyBidChXZmUsdGhpcy52Y3IpLHRoaXMuc2VsZWN0aW9uLmxvY2tJ''@;'; + put 'put ''dGVtKHRoaXMuaXRlbSwhMT09PXRoaXMuY2xyRGdTZWxlY3RhYmxlKX1nZXQgX3ZpZXcoKXtyZXR1cm4gdGhpcy53cmFwcGVkSW5qZWN0b3IuZ2V0KFdmZSx0aGlzLnZjcikucm93Vmlld319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoclopLFh0''@;'; + put 'put ''KExMKSxYdChPTCksWHQoblopLFh0KEE4KSxYdChZZmUpLFh0KFVpKSxYdChHYSksWHQoYm8pLFh0KG5zKSxYdChkdyksWHQocHMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLXJvdyJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZo''@;'; + put 'put ''JiZ4byh5LHBTLDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuZGdDZWxscz1DKX19LHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmKHZvKHVxLDUpLHZvKGdjZSw1KSx2byh5Zyw1LFVpKSx2byhxayw1LFVpKSx2byhtY2UsNSxVaSkpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYm''@;'; + put 'put ''KHYuZXhwYW5kQW5pbWF0aW9uPXkuZmlyc3QpLEhpKHk9JGkoKSkmJih2LmRldGFpbEJ1dHRvbj15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5fc3RpY2t5Q2VsbHM9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYuX3Njcm9sbGFibGVDZWxscz15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5fY2FsY3Vs''@;'; + put 'put ''YXRlZENlbGxzPXkuZmlyc3QpfX0saG9zdEF0dHJzOlsicm9sZSIsInJvd2dyb3VwIl0saG9zdFZhcnM6NSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJih6aSgiYXJpYS1vd25zIix2LmlkKSxGaSgiZGF0YWdyaWQtcm93IiwhMCkoImRhdGFncmlkLXNlbGVjdGVkIix2LnNlbGVj''@;'; + put 'put ''dGVkKSl9LGlucHV0czp7aXRlbTpbImNsckRnSXRlbSIsIml0ZW0iXSxzZWxlY3RlZDpbImNsckRnU2VsZWN0ZWQiLCJzZWxlY3RlZCJdLGNsckRnU2VsZWN0YWJsZToiY2xyRGdTZWxlY3RhYmxlIixleHBhbmRlZDpbImNsckRnRXhwYW5kZWQiLCJleHBhbmRlZCJdLGNsckRnRGV0YWlsT3Bl''@;'; + put 'put ''bkxhYmVsOiJjbHJEZ0RldGFpbE9wZW5MYWJlbCIsY2xyRGdEZXRhaWxDbG9zZUxhYmVsOiJjbHJEZ0RldGFpbENsb3NlTGFiZWwiLGNsckRnUm93QXJpYUxhYmVsOiJjbHJEZ1Jvd0FyaWFMYWJlbCJ9LG91dHB1dHM6e3NlbGVjdGVkQ2hhbmdlZDoiY2xyRGdTZWxlY3RlZENoYW5nZSIsZXhw''@;'; + put 'put ''YW5kZWRDaGFuZ2U6ImNsckRnRXhwYW5kZWRDaGFuZ2UifSxmZWF0dXJlczpbaG8oW25aLHtwcm92aWRlOm4xLHVzZUV4aXN0aW5nOm5afSx7cHJvdmlkZTpQZix1c2VFeGlzdGluZzpuWn1dKV0sbmdDb250ZW50U2VsZWN0b3JzOnM5LGRlY2xzOjksdmFyczozLGNvbnN0czpbWyJjbGFzcyIs''@;'; + put 'put ''ImRhdGFncmlkLXJvdy1jbGlja2FibGUiLDMsIm1vdXNlZG93biIsNCwibmdJZiJdLFszLCJjbHJFeHBhbmRUcmlnZ2VyIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbImRldGFpbCIsIiJdLFsicm93Q29udGVudCIsIiJdLFsiY2FsY3VsYXRlZENlbGxzIiwiIl0sWzEsImRhdGFncmlkLXJvdy1j''@;'; + put 'put ''bGlja2FibGUiLDMsIm1vdXNlZG93biJdLFszLCJjbHJFeHBhbmRUcmlnZ2VyIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiXSxbInJvbGUiLCJyb3ciLDEsImRhdGFncmlkLXJvdy1tYXN0ZXIiLCJkYXRhZ3JpZC1yb3ctZmxleCIsMywiaWQiXSxbMSwiZGF0YWdyaWQtcm93LXN0aWNreSJdLFsi''@;'; + put 'put ''c3RpY2t5Q2VsbHMiLCIiXSxbImNsYXNzIiwiZGF0YWdyaWQtc2VsZWN0IGRhdGFncmlkLWZpeGVkLWNvbHVtbiBkYXRhZ3JpZC1jZWxsIiwicm9sZSIsImdyaWRjZWxsIiwzLCJuZ0NsYXNzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRhdGFncmlkLXJvdy1hY3Rpb25zIGRhdGFncmlkLWZpeGVk''@;'; + put 'put ''LWNvbHVtbiBkYXRhZ3JpZC1jZWxsIiwicm9sZSIsImdyaWRjZWxsIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgZGF0YWdyaWQtZml4ZWQtY29sdW1uIGRhdGFncmlkLWNlbGwiLCJyb2xlIiwiZ3JpZGNlbGwiLDQsIm5nSWYiXSxbImNsYXNzIiwiZGF0''@;'; + put 'put ''YWdyaWQtZGV0YWlsLWNhcmV0IGRhdGFncmlkLWZpeGVkLWNvbHVtbiBkYXRhZ3JpZC1jZWxsIiw0LCJuZ0lmIl0sWzEsImRhdGFncmlkLXJvdy1zY3JvbGxhYmxlIiwzLCJuZ0NsYXNzIl0sWzEsImRhdGFncmlkLXNjcm9sbGluZy1jZWxscyJdLFsic2Nyb2xsYWJsZUNlbGxzIiwiIl0sWyJy''@;'; + put 'put ''b2xlIiwiZ3JpZGNlbGwiLDEsImRhdGFncmlkLXNlbGVjdCIsImRhdGFncmlkLWZpeGVkLWNvbHVtbiIsImRhdGFncmlkLWNlbGwiLDMsIm5nQ2xhc3MiXSxbMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiXSxbInR5cGUiLCJjaGVja2JveCIsMywibmdNb2RlbCIsImlkIiwibmdNb2RlbENoYW5n''@;'; + put 'put ''ZSJdLFsxLCJjbHItY29udHJvbC1sYWJlbCIsImNsci1jb2wtbnVsbCIsMywiZm9yIiwiY2xpY2siXSxbMSwiY2xyLXNyLW9ubHkiXSxbInR5cGUiLCJyYWRpbyIsImNsclJhZGlvIiwiIiwzLCJpZCIsIm5hbWUiLCJ2YWx1ZSIsIm5nTW9kZWwiLCJjaGVja2VkIiwibmdNb2RlbENoYW5nZSJd''@;'; + put 'put ''LFsicm9sZSIsImdyaWRjZWxsIiwxLCJkYXRhZ3JpZC1yb3ctYWN0aW9ucyIsImRhdGFncmlkLWZpeGVkLWNvbHVtbiIsImRhdGFncmlkLWNlbGwiXSxbInJvbGUiLCJncmlkY2VsbCIsMSwiZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCIsImRhdGFncmlkLWZpeGVkLWNvbHVtbiIsImRhdGFn''@;'; + put 'put ''cmlkLWNlbGwiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtYnV0dG9uIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xyU21hbGwiLCIiLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtYnV0''@;'; + put 'put ''dG9uIiwzLCJjbGljayJdLFsic2hhcGUiLCJhbmdsZSIsMSwiZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1pY29uIl0sWyJjbHJTbWFsbCIsIiJdLFsxLCJkYXRhZ3JpZC1kZXRhaWwtY2FyZXQiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLCJkYXRhZ3JpZC1jZWxsIl0sWyJ0eXBlIiwiYnV0''@;'; + put 'put ''dG9uIiwiYXJpYS1oYXNwb3B1cCIsImRpYWxvZyIsMSwiZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWJ1dHRvbiIsMywiY2xpY2siXSxbImRldGFpbEJ1dHRvbiIsIiJdLFsic2hhcGUiLCJhbmdsZS1kb3VibGUiLDEsImRhdGFncmlkLWRldGFpbC1jYXJldC1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdil7MSZoJiYoSzAoayQpLHJuKDAsd2NlLDMsMiwibGFiZWwiLDApLHJuKDEsYmNlLDIsMiwiY2xyLWV4cGFuZGFibGUtYW5pbWF0aW9uIiwxKSxybigyLF9qLDEsMSxudWxsLDIpLHJuKDMseDEsMSwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwzLFpyKSxybig1LHJhLDE2LDEzLCJuZy10''@;'; + put 'put ''ZW1wbGF0ZSIsbnVsbCw0LFpyKSxmMSg3LG51bGwsNSkpLDImaCYmKFR0KCJuZ0lmIix2LnNlbGVjdGlvbi5yb3dTZWxlY3Rpb25Nb2RlKSx1dCgxKSxUdCgibmdJZiIsIXYuc2VsZWN0aW9uLnJvd1NlbGVjdGlvbk1vZGUmJnYuZXhwYW5kLmV4cGFuZGFibGUpLHV0KDEpLFR0KCJuZ0lmIiwh''@;'; + put 'put ''di5zZWxlY3Rpb24ucm93U2VsZWN0aW9uTW9kZSYmIXYuZXhwYW5kLmV4cGFuZGFibGUpKX0sZGVwZW5kZW5jaWVzOlt1cSxnYSxWbyxvdCxRZCxsYyxJZixFcyx4cyxxaCxtMSxJZmUsWm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpO3ZhciBwaD0oKCk9PihmdW5jdGlvbihkKXtkW2QuV0lE''@;'; + put 'put ''VEg9MF09IldJRFRIIixkW2QuSElEREVOPTFdPSJISURERU4ifShwaHx8KHBoPXt9KSkscGgpKSgpO2NvbnN0IG95ZT1PYmplY3Qua2V5cyhwaCkubWFwKGQ9PnBoW2RdKS5maWx0ZXIoZD0+ZD09PXBhcnNlSW50KGQsMTApKTtsZXQgQTk9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3Ro''@;'; + put 'put ''aXMuY29sdW1ucz1bXSx0aGlzLl9jYWNoZT1bXX1jYWNoZSgpe3RoaXMuX2NhY2hlPXRoaXMuY29sdW1ucy5tYXAoaD0+e2NvbnN0IHY9T2JqZWN0LmFzc2lnbih7fSxoLnZhbHVlKTtyZXR1cm4gZGVsZXRlIHYuY2hhbmdlcyx2fSl9aGFzQ2FjaGUoKXtyZXR1cm4hIXRoaXMuX2NhY2hlLmxl''@;'; + put 'put ''bmd0aH1yZXNldFRvTGFzdENhY2hlKCl7dGhpcy5fY2FjaGUuZm9yRWFjaCgoaCx2KT0+e3RoaXMuY29sdW1uc1t2XS5uZXh0KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxoKSx7Y2hhbmdlczpveWV9KSl9KSx0aGlzLl9jYWNoZT1bXX1nZXQgY29sdW1uU3RhdGVzKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuY29sdW1ucy5tYXAoaD0+aC52YWx1ZSl9Z2V0IGhhc0hpZGVhYmxlQ29sdW1ucygpe3JldHVybiB0aGlzLmNvbHVtblN0YXRlcy5maWx0ZXIoaD0+aC5oaWRlYWJsZSkubGVuZ3RoPjB9ZW1pdFN0YXRlQ2hhbmdlQXQoaCx2KXshdGhpcy5jb2x1bW5zW2hdfHx0aGlzLmVtaXRTdGF0''@;'; + put 'put ''ZUNoYW5nZSh0aGlzLmNvbHVtbnNbaF0sdil9ZW1pdFN0YXRlQ2hhbmdlKGgsdil7aC5uZXh0KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxoLnZhbHVlKSx2KSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWko''@;'; + put 'put ''e3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLGF5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuZmlsdGVycz1oLHRoaXMuc29ydD12LHRoaXMucGFnZT15LHRoaXMuZGVib3VuY2VyPUMsdGhpcy5jaGFuZ2U9dGhpcy5kZWJvdW5jZXIuY2hhbmdl''@;'; + put 'put ''LnBpcGUodnQoKCk9PnRoaXMuc3RhdGUpKX1nZXQgc3RhdGUoKXtjb25zdCBoPXt9O3RoaXMucGFnZS5zaXplPjAmJihoLnBhZ2U9e2Zyb206dGhpcy5wYWdlLmZpcnN0SXRlbSx0bzp0aGlzLnBhZ2UubGFzdEl0ZW0sc2l6ZTp0aGlzLnBhZ2Uuc2l6ZSxjdXJyZW50OnRoaXMucGFnZS5jdXJy''@;'; + put 'put ''ZW50fSksdGhpcy5zb3J0LmNvbXBhcmF0b3ImJihoLnNvcnQ9dGhpcy5zb3J0LmNvbXBhcmF0b3IgaW5zdGFuY2VvZiBncT97Ynk6dGhpcy5zb3J0LmNvbXBhcmF0b3IucHJvcCxyZXZlcnNlOnRoaXMuc29ydC5yZXZlcnNlfTp7Ynk6dGhpcy5zb3J0LmNvbXBhcmF0b3IscmV2ZXJzZTp0aGlz''@;'; + put 'put ''LnNvcnQucmV2ZXJzZX0pO2NvbnN0IHY9dGhpcy5maWx0ZXJzLmdldEFjdGl2ZUZpbHRlcnMoKTtpZih2Lmxlbmd0aD4wKXtoLmZpbHRlcnM9W107Zm9yKGNvbnN0IHkgb2YgdiloLmZpbHRlcnMucHVzaCh5LnN0YXRlP3kuc3RhdGU6eSl9cmV0dXJuIGh9fXJldHVybiBkLlx1MDI3NWZhYz1m''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHY5KSxDaShtcSksQ2koaHcpLENpKCRqKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksbHllPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy56b25lPWgsdGhpcy5saXN0''@;'; + put 'put ''ZW5lcnNBZGRlZD0hMSx0aGlzLmRlc3Ryb3kkPW5ldyAkZSx0aGlzLmNvbmZpZz17a2V5R3JpZFJvd3M6Iltyb2xlPXJvd106bm90KC5kYXRhZ3JpZC1wbGFjZWhvbGRlcikiLGtleUdyaWRDZWxsczoiW3JvbGU9Z3JpZGNlbGxdOm5vdCguZGF0YWdyaWQtaGlkZGVuLWNvbHVtbik6bm90KC5k''@;'; + put 'put ''YXRhZ3JpZC1wbGFjZWhvbGRlci1jb250ZW50KSwgW3JvbGU9Y29sdW1uaGVhZGVyXTpub3QoLmRhdGFncmlkLWhpZGRlbi1jb2x1bW4pOm5vdCguZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGVudCksIC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQiLGtleUdyaWQ6Iltyb2xlPWdyaWRdIn19Z2V0''@;'; + put 'put ''IGdyaWQoKXt2YXIgaDtyZXR1cm4gbnVsbD09PShoPXRoaXMuaG9zdCl8fHZvaWQgMD09PWg/dm9pZCAwOmgucXVlcnlTZWxlY3Rvcih0aGlzLmNvbmZpZy5rZXlHcmlkKX1nZXQgcm93cygpe3ZhciBoO3JldHVybiBudWxsPT09KGg9dGhpcy5ob3N0KXx8dm9pZCAwPT09aD92b2lkIDA6aC5x''@;'; + put 'put ''dWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnLmtleUdyaWRSb3dzKX1nZXQgY2VsbHMoKXt2YXIgaDtyZXR1cm4gbnVsbD09PShoPXRoaXMuaG9zdCl8fHZvaWQgMD09PWg/dm9pZCAwOmgucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpfW5nT25EZXN0cm95KCl7''@;'; + put 'put ''dGhpcy5kZXN0cm95JC5uZXh0KCksdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpfWFkZExpc3RlbmVycygpe3RoaXMubGlzdGVuZXJzQWRkZWR8fCh0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0OCh0aGlzLmdyaWQsIm1vdXNlZG93biIpLnBpcGUoajcodGhpcy5kZXN0cm95JCkp''@;'; + put 'put ''LnN1YnNjcmliZShoPT57aWYoMT09PWguYnV0dG9ucyYmIWguY3RybEtleSl7Y29uc3Qgdj10aGlzLmNlbGxzP0FycmF5LmZyb20odGhpcy5jZWxscykuZmluZCh5PT55PT09aC50YXJnZXR8fHk9PT1oLnRhcmdldC5jbG9zZXN0KHRoaXMuY29uZmlnLmtleUdyaWRDZWxscykpOm51bGw7diYm''@;'; + put 'put ''dGhpcy5zZXRBY3RpdmVDZWxsKHYpfX0pLHQ4KHRoaXMuZ3JpZCwia2V5ZG93biIpLnBpcGUoajcodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShoPT57aWYoKCFoLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoImRyYWctaGFuZGxlIil8fCJBcnJvd0xlZnQiIT09aC5jb2RlJiYiQXJyb3dS''@;'; + put 'put ''aWdodCIhPT1oLmNvZGUpJiYoIkFycm93VXAiPT09aC5jb2RlfHwiQXJyb3dEb3duIj09PWguY29kZXx8IkFycm93TGVmdCI9PT1oLmNvZGV8fCJBcnJvd1JpZ2h0Ij09PWguY29kZXx8IkVuZCI9PT1oLmNvZGV8fCJIb21lIj09PWguY29kZXx8IlBhZ2VVcCI9PT1oLmNvZGV8fCJQYWdlRG93''@;'; + put 'put ''biI9PT1oLmNvZGUpKXtjb25zdHt4OnYseX09dGhpcy5nZXROZXh0SXRlbUNvb3JkaW5hdGUoaCksQz10aGlzLnJvd3M/QXJyYXkuZnJvbSh0aGlzLnJvd3NbeV0ucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpKVt2XTpudWxsO0MmJnRoaXMuc2V0QWN0aXZlQ2Vs''@;'; + put 'put ''bChDKSxoLnByZXZlbnREZWZhdWx0KCl9fSl9KSx0aGlzLmxpc3RlbmVyc0FkZGVkPSEwKX1pbml0aWFsaXplS2V5R3JpZChoKXt0aGlzLmhvc3Q9aCx0aGlzLmFkZExpc3RlbmVycygpLHRoaXMucmVzZXRLZXlHcmlkKCl9cmVzZXRLZXlHcmlkKCl7dmFyIGg7bnVsbD09PShoPXRoaXMuY2Vs''@;'; + put 'put ''bHMpfHx2b2lkIDA9PT1ofHxoLmZvckVhY2goeT0+eS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSk7Y29uc3Qgdj10aGlzLmNlbGxzP3RoaXMuY2VsbHNbMF06bnVsbDtudWxsPT12fHx2LnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIil9c2V0QWN0aXZlQ2VsbChoKXtjb25zdCB2''@;'; + put 'put ''PXRoaXMuY2VsbHM/QXJyYXkuZnJvbSh0aGlzLmNlbGxzKS5maW5kKEk9PiIwIj09PUkuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpKTpudWxsO3YmJnYuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksaC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpO2NvbnN0IHk9ZnVuY3Rpb24g''@;'; + put 'put ''X09lKGQpe2NvbnN0IGc9WyJhW2hyZWZdIiwiYXJlYVtocmVmXSIsImlucHV0Om5vdChbZGlzYWJsZWRdKSIsImJ1dHRvbjpub3QoW2Rpc2FibGVkXSkiLCJzZWxlY3Q6bm90KFtkaXNhYmxlZF0pIiwidGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pIiwiaWZyYW1lIiwib2JqZWN0IiwiZW1iZWQi''@;'; + put 'put ''LCIqW3RhYmluZGV4XSIsIipbY29udGVudGVkaXRhYmxlPXRydWVdIiwiW3JvbGU9YnV0dG9uXTpub3QoW2Rpc2FibGVkXSkiXS5qb2luKCIsIik7cmV0dXJuIEFycmF5LmZyb20oZC5xdWVyeVNlbGVjdG9yQWxsKGcpKX0oaCk7KCJjb2x1bW5oZWFkZXIiIT09aC5nZXRBdHRyaWJ1dGUoInJv''@;'; + put 'put ''bGUiKSYmeVswXT95WzBdOmgpLmZvY3VzKCl9Z2V0TmV4dEl0ZW1Db29yZGluYXRlKGgpe3ZhciB2O2xldCB5PXRoaXMuY2VsbHM/QXJyYXkuZnJvbSh0aGlzLmNlbGxzKS5maW5kKE90PT4iMCI9PT1PdC5nZXRBdHRyaWJ1dGUoInRhYmluZGV4IikpOm51bGw7IlRhYiI9PT1oLmNvZGUmJih5''@;'; + put 'put ''PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO2NvbnN0IEM9dGhpcy5yb3dzJiZ5P0FycmF5LmZyb20odGhpcy5yb3dzKS5maW5kKE90PT5PdC5jb250YWlucyh5KSk6bnVsbCxJPXRoaXMucm93cz90aGlzLnJvd3MubGVuZ3RoLTE6MCxqPXRoaXMuY2VsbHM/dGhpcy5jZWxscy5sZW5ndGgvdGhp''@;'; + put 'put ''cy5yb3dzLmxlbmd0aC0xOjA7bGV0IHVlPUMmJnk/QXJyYXkuZnJvbShDLnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5jb25maWcua2V5R3JpZENlbGxzKSkuaW5kZXhPZih5KTowLF9lPUMmJnkmJnRoaXMucm93cz9BcnJheS5mcm9tKHRoaXMucm93cykuaW5kZXhPZihDKTowO2NvbnN0IEJlPXRo''@;'; + put 'put ''aXMuaG9zdC5kaXIsTmU9InJ0bCI9PT1CZT8iQXJyb3dSaWdodCI6IkFycm93TGVmdCIsS2U9InJ0bCI9PT1CZT8iQXJyb3dMZWZ0IjoiQXJyb3dSaWdodCIsZHQ9TWF0aC5mbG9vcigobnVsbD09PSh2PXRoaXMuaG9zdCl8fHZvaWQgMD09PXY/dm9pZCAwOnYucXVlcnlTZWxlY3RvcigiLmRh''@;'; + put 'put ''dGFncmlkIikuY2xpZW50SGVpZ2h0KS90aGlzLnJvd3NbMF0uY2xpZW50SGVpZ2h0KS0xfHwwO3JldHVybiJBcnJvd1VwIj09PWguY29kZSYmMCE9PV9lP19lLT0xOiJBcnJvd0Rvd24iPT09aC5jb2RlJiZfZTxJP19lKz0xOmguY29kZT09PU5lJiYwIT09dWU/dWUtPTE6aC5jb2RlPT09S2Um''@;'; + put 'put ''JnVlPGo/dWUrPTE6IkVuZCI9PT1oLmNvZGU/KHVlPWosaC5jdHJsS2V5JiYoX2U9SSkpOiJIb21lIj09PWguY29kZT8odWU9MCxoLmN0cmxLZXkmJihfZT0wKSk6IlBhZ2VVcCI9PT1oLmNvZGU/X2U9X2UtZHQ+MD9fZS1kdDowOiJQYWdlRG93biI9PT1oLmNvZGUmJihfZT1fZStkdDxJP19l''@;'; + put 'put ''K2R0OkkpLHt4OnVlLHk6X2V9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShfbCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLGlaPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHks''@;'; + put 'put ''QyxJLGosdWUsX2UsQmUsTmUsS2UsZHQsT3QsJHQsZm4sTG4saXIpe3RoaXMub3JnYW5pemVyPWgsdGhpcy5pdGVtcz12LHRoaXMuZXhwYW5kYWJsZVJvd3M9eSx0aGlzLnNlbGVjdGlvbj1DLHRoaXMucm93QWN0aW9uU2VydmljZT1JLHRoaXMuc3RhdGVQcm92aWRlcj1qLHRoaXMuZGlzcGxh''@;'; + put 'put ''eU1vZGU9dWUsdGhpcy5yZW5kZXJlcj1fZSx0aGlzLmRldGFpbFNlcnZpY2U9QmUsdGhpcy5kb2N1bWVudD1LZSx0aGlzLmVsPWR0LHRoaXMucGFnZT1PdCx0aGlzLmNvbW1vblN0cmluZ3M9JHQsdGhpcy5jb2x1bW5zU2VydmljZT1mbix0aGlzLmtleU5hdmlnYXRpb249TG4sdGhpcy56b25l''@;'; + put 'put ''PWlyLHRoaXMuU0VMRUNUSU9OX1RZUEU9V3MsdGhpcy5yZWZyZXNoPW5ldyBhcighMSksdGhpcy5zZWxlY3RlZENoYW5nZWQ9bmV3IGFyKCExKSx0aGlzLnNpbmdsZVNlbGVjdGVkQ2hhbmdlZD1uZXcgYXIoITEpLHRoaXMuY2xyRGdTaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWw9dGhpcy5jb21t''@;'; + put 'put ''b25TdHJpbmdzLmtleXMuc2luZ2xlU2VsZWN0aW9uQXJpYUxhYmVsLHRoaXMuY2xyRGdTaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLnNpbmdsZUFjdGlvbmFibGVBcmlhTGFiZWwsdGhpcy5jbHJEZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsPXRoaXMu''@;'; + put 'put ''Y29tbW9uU3RyaW5ncy5rZXlzLmRldGFpbEV4cGFuZGFibGVBcmlhTGFiZWwsdGhpcy5jbHJEZ0Rpc2FibGVQYWdlRm9jdXM9ITEsdGhpcy5fc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnNlbGVjdEFsbElkPSJjbHItZGctc2VsZWN0LWFsbC0iK05lLHRoaXMuZGV0YWlsU2VydmljZS5pZD1OZX1n''@;'; + put 'put ''ZXQgbG9hZGluZygpe3JldHVybiB0aGlzLml0ZW1zLmxvYWRpbmd9c2V0IGxvYWRpbmcoaCl7dGhpcy5pdGVtcy5sb2FkaW5nPWh9ZGF0YUNoYW5nZWQoKXt0aGlzLml0ZW1zLnJlZnJlc2goKX1zZXQgc2VsZWN0ZWQoaCl7dGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT1oP1dzLk11bHRp''@;'; + put 'put ''OldzLk5vbmUsdGhpcy5zZWxlY3Rpb24udXBkYXRlQ3VycmVudChoLCExKX1zZXQgc2luZ2xlU2VsZWN0ZWQoaCl7dGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT1Xcy5TaW5nbGUsaD90aGlzLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlPWg6dGhpcy5zZWxlY3Rpb24uY3VycmVudFNpbmds''@;'; + put 'put ''ZSYmKHRoaXMuc2VsZWN0aW9uLmN1cnJlbnRTaW5nbGU9bnVsbCl9c2V0IGNsckRnUHJlc2VydmVTZWxlY3Rpb24oaCl7dGhpcy5zZWxlY3Rpb24ucHJlc2VydmVTZWxlY3Rpb249aH1zZXQgcm93U2VsZWN0aW9uTW9kZShoKXt0aGlzLnNlbGVjdGlvbi5yb3dTZWxlY3Rpb25Nb2RlPWh9Z2V0''@;'; + put 'put ''IGFsbFNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uLmlzQWxsU2VsZWN0ZWQoKX1zZXQgYWxsU2VsZWN0ZWQoaCl7dGhpcy5zZWxlY3Rpb24udG9nZ2xlQWxsKCl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5pdGVtcy5zbWFydHx8KHRoaXMuaXRlbXMuYWxsPXRoaXMucm93cy5t''@;'; + put 'put ''YXAoaD0+aC5pdGVtKSksdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucm93cy5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuaXRlbXMuc21hcnR8fCh0aGlzLml0ZW1zLmFsbD10aGlzLnJvd3MubWFwKGg9PmguaXRlbSkpO2ZvcihsZXQgaD10aGlzLl9kaXNwbGF5ZWRSb3dzLmxl''@;'; + put 'put ''bmd0aC0xO2g+PTA7aC0tKXRoaXMuX2Rpc3BsYXllZFJvd3MuZ2V0KGgpLmRlc3Ryb3llZCYmdGhpcy5fZGlzcGxheWVkUm93cy5yZW1vdmUoaCk7aWYodGhpcy5yb3dzLmZvckVhY2goaD0+e3RoaXMuX2Rpc3BsYXllZFJvd3MuaW5zZXJ0KGguX3ZpZXcpfSksdGhpcy5kZXRhaWxTZXJ2aWNl''@;'; + put 'put ''LnN0YXRlJiZ0aGlzLmRldGFpbFNlcnZpY2UuaXNPcGVuKXtjb25zdCBoPXRoaXMucm93cy5maW5kKCh2LHkpPT50aGlzLml0ZW1zLnRyYWNrQnkoeSx2Lml0ZW0pPT09dGhpcy5pdGVtcy50cmFja0J5KHksdGhpcy5kZXRhaWxTZXJ2aWNlLnN0YXRlKSk7aD90aGlzLmRldGFpbFNlcnZpY2Uu''@;'; + put 'put ''b3BlbihoLml0ZW0saC5kZXRhaWxCdXR0b24ubmF0aXZlRWxlbWVudCk6dGhpcy5kZXRhaWxTZXJ2aWNlLmNsb3NlKCl9fSkpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMua2V5TmF2aWdhdGlvbi5pbml0aWFsaXplS2V5R3JpZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLHRoaXMucmVmcmVzaC5l''@;'; + put 'put ''bWl0KHRoaXMuc3RhdGVQcm92aWRlci5zdGF0ZSksdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuc3RhdGVQcm92aWRlci5jaGFuZ2Uuc3Vic2NyaWJlKGg9PnRoaXMucmVmcmVzaC5lbWl0KGgpKSx0aGlzLnNlbGVjdGlvbi5jaGFuZ2Uuc3Vic2NyaWJlKGg9Pnt0aGlzLnNlbGVjdGlv''@;'; + put 'put ''bi5zZWxlY3Rpb25UeXBlPT09V3MuU2luZ2xlP3RoaXMuc2luZ2xlU2VsZWN0ZWRDaGFuZ2VkLmVtaXQoaCk6dGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PVdzLk11bHRpJiZ0aGlzLnNlbGVjdGVkQ2hhbmdlZC5lbWl0KGgpfSksdGhpcy5wYWdlLmNoYW5nZS5zdWJzY3JpYmUoKCk9''@;'; + put 'put ''Pnt0aGlzLmtleU5hdmlnYXRpb24ucmVzZXRLZXlHcmlkKCksdGhpcy5jbHJEZ0Rpc2FibGVQYWdlRm9jdXN8fHRoaXMuZGF0YWdyaWRUYWJsZS5uYXRpdmVFbGVtZW50LmZvY3VzKCl9KSwkVCh0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMpLnN1YnNjcmliZSgoKT0+e3ZhciBoO3JldHVy''@;'; + put 'put ''biBudWxsPT09KGg9dGhpcy5rZXlOYXZpZ2F0aW9uKXx8dm9pZCAwPT09aD92b2lkIDA6aC5yZXNldEtleUdyaWQoKX0pLHRoaXMuZGlzcGxheU1vZGUudmlldy5zdWJzY3JpYmUoaD0+e2ZvcihsZXQgdj10aGlzLl9wcm9qZWN0ZWREaXNwbGF5Q29sdW1ucy5sZW5ndGg7dj4wO3YtLSl0aGlz''@;'; + put 'put ''Ll9wcm9qZWN0ZWREaXNwbGF5Q29sdW1ucy5kZXRhY2goKTtmb3IobGV0IHY9dGhpcy5fcHJvamVjdGVkQ2FsY3VsYXRpb25Db2x1bW5zLmxlbmd0aDt2PjA7di0tKXRoaXMuX3Byb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucy5kZXRhY2goKTtmb3IobGV0IHY9dGhpcy5fY2FsY3VsYXRpb25S''@;'; + put 'put ''b3dzLmxlbmd0aDt2PjA7di0tKXRoaXMuX2NhbGN1bGF0aW9uUm93cy5kZXRhY2goKTtmb3IobGV0IHY9dGhpcy5fZGlzcGxheWVkUm93cy5sZW5ndGg7dj4wO3YtLSl0aGlzLl9kaXNwbGF5ZWRSb3dzLmRldGFjaCgpO2g9PT1wdy5ESVNQTEFZPyh0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNz''@;'; + put 'put ''KHRoaXMuZWwubmF0aXZlRWxlbWVudCwiZGF0YWdyaWQtY2FsY3VsYXRlLW1vZGUiKSx0aGlzLmNvbHVtbnMuZm9yRWFjaCh2PT57dGhpcy5fcHJvamVjdGVkRGlzcGxheUNvbHVtbnMuaW5zZXJ0KHYuX3ZpZXcpfSksdGhpcy5yb3dzLmZvckVhY2godj0+e3RoaXMuX2Rpc3BsYXllZFJvd3Mu''@;'; + put 'put ''aW5zZXJ0KHYuX3ZpZXcpfSkpOih0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiZGF0YWdyaWQtY2FsY3VsYXRlLW1vZGUiKSx0aGlzLmNvbHVtbnMuZm9yRWFjaCh2PT57dGhpcy5fcHJvamVjdGVkQ2FsY3VsYXRpb25Db2x1bW5zLmluc2VydCh2Ll92aWV3''@;'; + put 'put ''KX0pLHRoaXMucm93cy5mb3JFYWNoKHY9Pnt0aGlzLl9jYWxjdWxhdGlvblJvd3MuaW5zZXJ0KHYuX3ZpZXcpfSkpfSkpLHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX3N1YnNjcmlwdGlvbnMucHVzaCh0OCh0aGlzLmRvY3VtZW50LmJvZHksImtleWRvd24iKS5zdWJz''@;'; + put 'put ''Y3JpYmUoaD0+eyJTaGlmdCI9PT1oLmtleSYmKHRoaXMuc2VsZWN0aW9uLnNoaWZ0UHJlc3NlZD0hMCl9KSx0OCh0aGlzLmRvY3VtZW50LmJvZHksImtleXVwIikuc3Vic2NyaWJlKGg9PnsiU2hpZnQiPT09aC5rZXkmJih0aGlzLnNlbGVjdGlvbi5zaGlmdFByZXNzZWQ9ITEpfSkpfSl9bmdP''@;'; + put 'put ''bkRlc3Ryb3koKXt0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1yZXNpemUoKXt0aGlzLm9yZ2FuaXplci5yZXNpemUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoZFMpLFh0KGR3KSxYdChPTCksWHQo''@;'; + put 'put ''clopLFh0KExMKSxYdChheWUpLFh0KFlmZSksWHQoR2EpLFh0KEE4KSxYdCh5MiksWHQocHMpLFh0KGJvKSxYdChodyksWHQobnMpLFh0KEE5KSxYdChseWUpLFh0KF9sKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kYXRhZ3JpZCJdXSxjb250ZW50UXVlcmll''@;'; + put 'put ''czpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiYoeG8oeSxCTCw1KSx4byh5LFZmZSw1KSx4byh5LFJMLDQpLHhvKHksUEwsNCkpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuaXRlcmF0b3I9Qy5maXJzdCksSGkoQz0kaSgpKSYmKHYucGxhY2Vob2xkZXI9Qy5maXJzdCksSGkoQz0kaSgpKSYm''@;'; + put 'put ''KHYuY29sdW1ucz1DKSxIaShDPSRpKCkpJiYodi5yb3dzPUMpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiYodm8oa2NlLDUsVWkpLHZvKFMkLDUsYm8pLHZvKGV3LDUsVWkpLHZvKFNjZSw1LFVpKSx2byhTaiw1LFVpKSx2byhNaiw1LFVpKSksMiZoKXtsZXQgeTtIaSh5PSRp''@;'; + put 'put ''KCkpJiYodi5zY3JvbGxhYmxlQ29sdW1ucz15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5kYXRhZ3JpZFRhYmxlPXkuZmlyc3QpLEhpKHk9JGkoKSkmJih2Ll9wcm9qZWN0ZWREaXNwbGF5Q29sdW1ucz15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5fcHJvamVjdGVkQ2FsY3VsYXRpb25Db2x1bW5z''@;'; + put 'put ''PXkuZmlyc3QpLEhpKHk9JGkoKSkmJih2Ll9kaXNwbGF5ZWRSb3dzPXkuZmlyc3QpLEhpKHk9JGkoKSkmJih2Ll9jYWxjdWxhdGlvblJvd3M9eS5maXJzdCl9fSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImRhdGFncmlkLWhvc3QiLCEwKSgiZGF0YWdy''@;'; + put 'put ''aWQtZGV0YWlsLW9wZW4iLHYuZGV0YWlsU2VydmljZS5pc09wZW4pfSxpbnB1dHM6e2xvYWRpbmc6WyJjbHJEZ0xvYWRpbmciLCJsb2FkaW5nIl0sc2VsZWN0ZWQ6WyJjbHJEZ1NlbGVjdGVkIiwic2VsZWN0ZWQiXSxzaW5nbGVTZWxlY3RlZDpbImNsckRnU2luZ2xlU2VsZWN0ZWQiLCJzaW5n''@;'; + put 'put ''bGVTZWxlY3RlZCJdLGNsckRnU2luZ2xlU2VsZWN0aW9uQXJpYUxhYmVsOiJjbHJEZ1NpbmdsZVNlbGVjdGlvbkFyaWFMYWJlbCIsY2xyRGdTaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsOiJjbHJEZ1NpbmdsZUFjdGlvbmFibGVBcmlhTGFiZWwiLGNsckRldGFpbEV4cGFuZGFibGVBcmlhTGFi''@;'; + put 'put ''ZWw6ImNsckRldGFpbEV4cGFuZGFibGVBcmlhTGFiZWwiLGNsckRnRGlzYWJsZVBhZ2VGb2N1czoiY2xyRGdEaXNhYmxlUGFnZUZvY3VzIixjbHJEZ1ByZXNlcnZlU2VsZWN0aW9uOiJjbHJEZ1ByZXNlcnZlU2VsZWN0aW9uIixyb3dTZWxlY3Rpb25Nb2RlOlsiY2xyRGdSb3dTZWxlY3Rpb24i''@;'; + put 'put ''LCJyb3dTZWxlY3Rpb25Nb2RlIl19LG91dHB1dHM6e3JlZnJlc2g6ImNsckRnUmVmcmVzaCIsc2VsZWN0ZWRDaGFuZ2VkOiJjbHJEZ1NlbGVjdGVkQ2hhbmdlIixzaW5nbGVTZWxlY3RlZENoYW5nZWQ6ImNsckRnU2luZ2xlU2VsZWN0ZWRDaGFuZ2UifSxmZWF0dXJlczpbaG8oW3JaLG1xLHY5''@;'; + put 'put ''LGh3LGR3LGRTLExMLE9MLCRqLEE4LE9jLGF5ZSxOZmUsQTksWWZlLGx5ZV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6X3UsZGVjbHM6MzIsdmFyczo3LGNvbnN0czpbWzEsImRhdGFncmlkLW91dGVyLXdyYXBwZXIiXSxbMSwiZGF0YWdyaWQtaW5uZXItd3JhcHBlciJdLFsxLCJkYXRhZ3JpZCJd''@;'; + put 'put ''LFsiZGF0YWdyaWQiLCIiXSxbMSwiZGF0YWdyaWQtdGFibGUtd3JhcHBlciJdLFsicm9sZSIsImdyaWQiLCJ0YWJpbmRleCIsIi0xIiwxLCJkYXRhZ3JpZC10YWJsZSJdLFsiZGF0YWdyaWRUYWJsZSIsIiJdLFsicm9sZSIsInJvd2dyb3VwIiwxLCJkYXRhZ3JpZC1oZWFkZXIiXSxbInJvbGUi''@;'; + put 'put ''LCJyb3ciLDEsImRhdGFncmlkLXJvdyJdLFsxLCJkYXRhZ3JpZC1yb3ctbWFzdGVyIiwiZGF0YWdyaWQtcm93LWZsZXgiXSxbMSwiZGF0YWdyaWQtcm93LXN0aWNreSJdLFsicm9sZSIsImNvbHVtbmhlYWRlciIsImNsYXNzIiwiZGF0YWdyaWQtY29sdW1uIGRhdGFncmlkLXNlbGVjdCBkYXRh''@;'; + put 'put ''Z3JpZC1maXhlZC1jb2x1bW4iLDMsImtleWRvd24uc3BhY2UiLDQsIm5nSWYiXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLCJjbGFzcyIsImRhdGFncmlkLWNvbHVtbiBkYXRhZ3JpZC1zZWxlY3QgZGF0YWdyaWQtZml4ZWQtY29sdW1uIiw0LCJuZ0lmIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVy''@;'; + put 'put ''IiwiY2xhc3MiLCJkYXRhZ3JpZC1jb2x1bW4gZGF0YWdyaWQtcm93LWFjdGlvbnMgZGF0YWdyaWQtZml4ZWQtY29sdW1uIiw0LCJuZ0lmIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwiY2xhc3MiLCJkYXRhZ3JpZC1jb2x1bW4gZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCBkYXRhZ3JpZC1m''@;'; + put 'put ''aXhlZC1jb2x1bW4iLDQsIm5nSWYiXSxbMSwiZGF0YWdyaWQtcm93LXNjcm9sbGFibGUiXSxbInByb2plY3RlZERpc3BsYXlDb2x1bW5zIiwiIl0sWyJkaXNwbGF5ZWRSb3dzIiwiIl0sWzQsIm5nSWYiXSxbImNsYXNzIiwiZGF0YWdyaWQtc3Bpbm5lciIsNCwibmdJZiJdLFsxLCJkYXRhZ3Jp''@;'; + put 'put ''ZC1jYWxjdWxhdGlvbi10YWJsZSJdLFsxLCJkYXRhZ3JpZC1jYWxjdWxhdGlvbi1oZWFkZXIiXSxbInByb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucyIsIiJdLFsiY2FsY3VsYXRpb25Sb3dzIiwiIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwxLCJkYXRhZ3JpZC1jb2x1bW4iLCJkYXRhZ3Jp''@;'; + put 'put ''ZC1zZWxlY3QiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLDMsImtleWRvd24uc3BhY2UiXSxbMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiXSxbInR5cGUiLCJjaGVja2JveCIsInRhYmluZGV4IiwiLTEiLDMsImlkIiwibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMSwiY2xyLWNvbnRyb2wt''@;'; + put 'put ''bGFiZWwiLCJjbHItY29sLW51bGwiLDMsImZvciJdLFsxLCJjbHItc3Itb25seSJdLFsxLCJkYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwxLCJkYXRhZ3JpZC1jb2x1bW4iLCJkYXRhZ3JpZC1zZWxlY3QiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4i''@;'; + put 'put ''XSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLDEsImRhdGFncmlkLWNvbHVtbiIsImRhdGFncmlkLXJvdy1hY3Rpb25zIiwiZGF0YWdyaWQtZml4ZWQtY29sdW1uIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwxLCJkYXRhZ3JpZC1jb2x1bW4iLCJkYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0Iiwi''@;'; + put 'put ''ZGF0YWdyaWQtZml4ZWQtY29sdW1uIl0sWzEsImRhdGFncmlkLXNwaW5uZXIiXSxbImNsck1lZGl1bSIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKHhjZSksTmkoMCksaXQoMSwiZGl2IiwwKSgyLCJkaXYiLDEpKDMsImRpdiIsMiwzKSg1LCJkaXYiLDQpKDYsImRpdiIs''@;'; + put 'put ''NSw2KSg4LCJkaXYiLDcpKDksImRpdiIsOCkoMTAsImRpdiIsOSkoMTEsImRpdiIsMTApLHJuKDEyLEFMLDcsNSwiZGl2IiwxMSkscm4oMTMsRWosMiwxLCJkaXYiLDEyKSxybigxNCxNY2UsMiwxLCJkaXYiLDEzKSxybigxNSxNJCwyLDEsImRpdiIsMTQpLHN0KCksaXQoMTYsImRpdiIsMTUp''@;'; + put 'put ''LGYxKDE3LG51bGwsMTYpLHN0KCkoKSgpKCksZjEoMTksbnVsbCwxNyksTmkoMjEsMSkscm4oMjIsRWNlLDEsMCwiY2xyLWRnLXBsYWNlaG9sZGVyIiwxOCksc3QoKSgpKCksTmkoMjMsMikscm4oMjQsYzgsMywwLCJkaXYiLDE5KSxzdCgpLE5pKDI1LDMpLHN0KCksaXQoMjYsImRpdiIsMjAp''@;'; + put 'put ''KDI3LCJkaXYiLDIxKSxmMSgyOCxudWxsLDIyKSxzdCgpLGYxKDMwLG51bGwsMjMpLHN0KCkpLDImaCYmKHV0KDMpLHppKCJhcmlhLWhpZGRlbiIsISF2LmRldGFpbFNlcnZpY2UuaXNPcGVufHxudWxsKSx1dCg5KSxUdCgibmdJZiIsdi5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PXYuU0VM''@;'; + put 'put ''RUNUSU9OX1RZUEUuTXVsdGkpLHV0KDEpLFR0KCJuZ0lmIix2LnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09di5TRUxFQ1RJT05fVFlQRS5TaW5nbGUpLHV0KDEpLFR0KCJuZ0lmIix2LnJvd0FjdGlvblNlcnZpY2UuaGFzQWN0aW9uYWJsZVJvdyksdXQoMSksVHQoIm5nSWYiLHYuZXhwYW5k''@;'; + put 'put ''YWJsZVJvd3MuaGFzRXhwYW5kYWJsZVJvd3x8di5kZXRhaWxTZXJ2aWNlLmVuYWJsZWQpLHV0KDcpLFR0KCJuZ0lmIiwhdi5wbGFjZWhvbGRlciksdXQoMiksVHQoIm5nSWYiLHYubG9hZGluZykpfSxkZXBlbmRlbmNpZXM6W1ZmZSxnYSxWbyxJZixFcyx4cyxvdF0sZW5jYXBzdWxhdGlvbjoy''@;'; + put 'put ''fSksZH0pKCksVWZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5jb2x1bW5zU2VydmljZT1oLHRoaXMuYWxsU2VsZWN0ZWQ9bmV3IGFyfWdldCBjbHJBbGxTZWxlY3RlZCgpe3JldHVybiB0aGlzLmFsbFNlbGVjdGVkLmFzT2JzZXJ2YWJsZSgpfWhpZGVhYmxlQ29sdW1ucygp''@;'; + put 'put ''e3JldHVybiB0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMuZmlsdGVyKGg9PmgudmFsdWUuaGlkZWFibGUpfWdldCBhbGxIaWRlYWJsZXNWaXNpYmxlKCl7cmV0dXJuIDA9PT10aGlzLmhpZGVhYmxlQ29sdW1ucygpLmZpbHRlcihoPT5oLnZhbHVlLmhpZGRlbikubGVuZ3RofXNlbGVjdEFs''@;'; + put 'put ''bCgpe3RoaXMuaGlkZWFibGVDb2x1bW5zKCkuZm9yRWFjaChoPT50aGlzLmNvbHVtbnNTZXJ2aWNlLmVtaXRTdGF0ZUNoYW5nZShoLHtoaWRkZW46ITEsY2hhbmdlczpbcGguSElEREVOXX0pKSx0aGlzLmFsbFNlbGVjdGVkLm5leHQoITApfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24o''@;'; + put 'put ''aCl7cmV0dXJuIG5ldyhofHxkKShYdChBOSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGctY29sdW1uLXRvZ2dsZS1idXR0b24iXV0sb3V0cHV0czp7Y2xyQWxsU2VsZWN0ZWQ6ImNsckFsbFNlbGVjdGVkIn0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xz''@;'; + put 'put ''OjIsdmFyczoxLGNvbnN0czpbWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tbGluayIsInN3aXRjaC1idXR0b24iLDMsImRpc2FibGVkIiwiY2xpY2siXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLGl0KDAsImJ1dHRvbiIsMCksWW4oImNsaWNrIixm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB2LnNlbGVjdEFsbCgpfSksTmkoMSksc3QoKSksMiZoJiZUdCgiZGlzYWJsZWQiLHYuYWxsSGlkZWFibGVzVmlzaWJsZSl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLHN5ZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0''@;'; + put 'put ''dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVtbi10b2dnbGUtdGl0bGUiXV0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSl9LGVuY2Fw''@;'; + put 'put ''c3VsYXRpb246Mn0pLGR9KSgpLFFmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuX2l0ZW1zPWh9c2V0IHRyYWNrQnkoaCl7dGhpcy5faXRlbXMmJih0aGlzLl9pdGVtcy50cmFja0J5PWgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; + put 'put ''KShYdChkdyw4KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nRm9yVHJhY2tCeSIsIiJdXSxpbnB1dHM6e3RyYWNrQnk6WyJuZ0ZvclRyYWNrQnkiLCJ0cmFja0J5Il19fSksZH0pKCksSmZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGos''@;'; + put 'put ''dWUpe3RoaXMuY29tbW9uU3RyaW5ncz1oLHRoaXMuY29sdW1uc1NlcnZpY2U9dix0aGlzLmNvbHVtblN3aXRjaElkPXksdGhpcy5wbGF0Zm9ybUlkPUMsdGhpcy56b25lPUksdGhpcy5wb3BvdmVySWQ9aix0aGlzLnBvcG92ZXJUb2dnbGVTZXJ2aWNlPXVlLHRoaXMuc21hcnRQb3NpdGlvbj17''@;'; + put 'put ''YXhpczokMS5WRVJUSUNBTCxzaWRlOmwuQkVGT1JFLGFuY2hvcjpfby5TVEFSVCxjb250ZW50Ol9vLlNUQVJUfSx0aGlzLnN1YnNjcmlwdGlvbj11ZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShfZT0+dGhpcy5vcGVuU3RhdGU9X2UpfWdldCBhbGxDb2x1bW5zVmlzaWJsZSgpe3JldHVybiB0aGlz''@;'; + put 'put ''Ll9hbGxDb2x1bW5zVmlzaWJsZX1zZXQgYWxsQ29sdW1uc1Zpc2libGUoaCl7dGhpcy5fYWxsQ29sdW1uc1Zpc2libGU9aH1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9Z2V0IGhpZGVhYmxlQ29sdW1uU3RhdGVzKCl7cmV0dXJuIHRoaXMuY29sdW1uc1Nl''@;'; + put 'put ''cnZpY2UuY29sdW1ucy5maWx0ZXIodj0+di52YWx1ZS5oaWRlYWJsZSkubWFwKHY9PnYudmFsdWUpfWdldCBoYXNPbmx5T25lVmlzaWJsZUNvbHVtbigpe3JldHVybiB0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMubGVuZ3RoLXRoaXMuaGlkZWFibGVDb2x1bW5TdGF0ZXMubGVuZ3RoPT0w''@;'; + put 'put ''JiYxPT09dGhpcy5oaWRlYWJsZUNvbHVtblN0YXRlcy5maWx0ZXIodj0+IXYuaGlkZGVuKS5sZW5ndGh9dG9nZ2xlQ29sdW1uU3RhdGUoaCx2KXtjb25zdCB5PXRoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1ucy5maWx0ZXIoQz0+Qy52YWx1ZT09PWgpWzBdO3RoaXMuY29sdW1uc1NlcnZpY2Uu''@;'; + put 'put ''ZW1pdFN0YXRlQ2hhbmdlKHkse2hpZGRlbjp2LGNoYW5nZXM6W3BoLkhJRERFTl19KX10b2dnbGVTd2l0Y2hQYW5lbCgpe3RoaXMub3BlblN0YXRlPSF0aGlzLm9wZW5TdGF0ZX1hbGxDb2x1bW5zU2VsZWN0ZWQoKXt0aGlzLmFsbFNlbGVjdGVkRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3Vz''@;'; + put 'put ''KCl9dHJhY2tCeUZuKGgpe3JldHVybiBofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChucyksWHQoQTkpLFh0KHkyKSxYdChEMiksWHQoX2wpLFh0KHkyKSxYdCh6cykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHIt''@;'; + put 'put ''ZGctY29sdW1uLXRvZ2dsZSJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiYoeG8oeSxzeWUsNSkseG8oeSxVZmUsNSkpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuY3VzdG9tVG9nZ2xlVGl0bGU9Qy5maXJzdCksSGkoQz0kaSgpKSYmKHYuY3VzdG9tVG9nZ2xl''@;'; + put 'put ''QnV0dG9uPUMuZmlyc3QpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byh4aiw1LGJvKSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LmFsbFNlbGVjdGVkRWxlbWVudD15LmZpcnN0KX19LGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgi''@;'; + put 'put ''Y29sdW1uLXN3aXRjaC13cmFwcGVyIiwhMCkoImFjdGl2ZSIsdi5vcGVuU3RhdGUpfSxmZWF0dXJlczpbaG8oW09jLGg4LEdzLHpzXSldLG5nQ29udGVudFNlbGVjdG9yczpMY2UsZGVjbHM6NSx2YXJzOjksY29uc3RzOltbInJvbGUiLCJidXR0b24iLCJ0eXBlIiwiYnV0dG9uIiwiY2xyUG9w''@;'; + put 'put ''b3ZlckFuY2hvciIsIiIsImNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b24iLCIiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwiY29sdW1uLXRvZ2dsZS0tYWN0aW9uIl0sWyJzaGFwZSIsInZpZXctY29sdW1ucyIsImFyaWEtaGlkZGVuIiwidHJ1ZSJdLFsxLCJjbHItc3Itb25seSJdLFsi''@;'; + put 'put ''Y2xhc3MiLCJjb2x1bW4tc3dpdGNoIiwicm9sZSIsImRpYWxvZyIsImNsckZvY3VzVHJhcCIsIiIsMywiaWQiLDQsImNsclBvcG92ZXJDb250ZW50IiwiY2xyUG9wb3ZlckNvbnRlbnRBdCIsImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZSIsImNsclBvcG92ZXJDb250ZW50''@;'; + put 'put ''U2Nyb2xsVG9DbG9zZSJdLFsicm9sZSIsImRpYWxvZyIsImNsckZvY3VzVHJhcCIsIiIsMSwiY29sdW1uLXN3aXRjaCIsMywiaWQiXSxbMSwic3dpdGNoLWhlYWRlciJdLFsidGFiaW5kZXgiLCItMSIsMSwiY2xyLXNyLW9ubHkiXSxbImFsbFNlbGVjdGVkIiwiIl0sWzQsIm5nSWYiXSxbImNs''@;'; + put 'put ''clBvcG92ZXJDbG9zZUJ1dHRvbiIsIiIsInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwidG9nZ2xlLXN3aXRjaC1jbG9zZS1idXR0b24iXSxbInNoYXBlIiwid2luZG93LWNsb3NlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIl0sWzEsInN3aXRjaC1jb250ZW50Iiwi''@;'; + put 'put ''bGlzdC11bnN0eWxlZCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbMSwic3dpdGNoLWZvb3RlciJdLFszLCJjbHJBbGxTZWxlY3RlZCIsNCwibmdJZiJdLFsiY2xyQ2hlY2tib3giLCIiLCJ0eXBlIiwiY2hlY2tib3giLDMsImRpc2FibGVkIiwibmdNb2RlbCIsIm5n''@;'; + put 'put ''TW9kZWxDaGFuZ2UiXSxbMywibmdUZW1wbGF0ZU91dGxldCJdLFszLCJjbHJBbGxTZWxlY3RlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKGVTKSxpdCgwLCJidXR0b24iLDApLENyKDEsImNkcy1pY29uIiwxKSxpdCgyLCJzcGFuIiwyKSxVdCgzKSxzdCgpKCkscm4oNCxE''@;'; + put 'put ''Y2UsMTYsMTAsImRpdiIsMykpLDImaCYmKHppKCJhcmlhLWNvbnRyb2xzIix2LnBvcG92ZXJJZCkoImFyaWEtb3ducyIsdi5wb3BvdmVySWQpKCJhcmlhLWV4cGFuZGVkIix2Lm9wZW5TdGF0ZSksdXQoMSksemkoInRpdGxlIix2LmNvbW1vblN0cmluZ3Mua2V5cy5waWNrQ29sdW1ucyksdXQo''@;'; + put 'put ''MiksR2kodi5jb21tb25TdHJpbmdzLmtleXMucGlja0NvbHVtbnMpLHV0KDEpLFR0KCJjbHJQb3BvdmVyQ29udGVudCIsdi5vcGVuU3RhdGUpKCJjbHJQb3BvdmVyQ29udGVudEF0Iix2LnNtYXJ0UG9zaXRpb24pKCJjbHJQb3BvdmVyQ29udGVudE91dHNpZGVDbGlja1RvQ2xvc2UiLCEwKSgi''@;'; + put 'put ''Y2xyUG9wb3ZlckNvbnRlbnRTY3JvbGxUb0Nsb3NlIiwhMCkpfSxkZXBlbmRlbmNpZXM6W09pLFVmZSxzdyx1dyxabyxkbCxmdyxWbyx0cSxacyxRZmUsSWYsUm8sRXMseHMsb3QsUWRdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGN5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3Ro''@;'; + put 'put ''aXMuZXhwYW5kYWJsZVJvd3NDb3VudD1oLHRoaXMuZXhwYW5kYWJsZVJvd3NDb3VudCYmdGhpcy5leHBhbmRhYmxlUm93c0NvdW50LnJlZ2lzdGVyKCl9bmdPbkRlc3Ryb3koKXt0aGlzLmV4cGFuZGFibGVSb3dzQ291bnQmJnRoaXMuZXhwYW5kYWJsZVJvd3NDb3VudC51bnJlZ2lzdGVyKCl9''@;'; + put 'put ''fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KE9MLDgpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xySWZFeHBhbmRlZCIsIiJdXX0pLGR9KSgpLHhPZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5f''@;'; + put 'put ''dGV4dENvbnRlbnRDaGFuZ2U9bmV3ICRlfWdldCB0ZXh0Q29udGVudENoYW5nZSgpe3JldHVybiB0aGlzLl90ZXh0Q29udGVudENoYW5nZS5hc09ic2VydmFibGUoKX1nZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy5fdGV4dENvbnRlbnR9c2V0IHRleHRDb250ZW50KGgpe3RoaXMuX3Rl''@;'; + put 'put ''eHRDb250ZW50PWgsdGhpcy5fdGV4dENvbnRlbnRDaGFuZ2UubmV4dChoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksVE9lPSgoKT0+e2NsYXNzIGR7''@;'; + put 'put ''fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV1dfSksZH0pKCksb1o9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLnNlbGVjdGlv''@;'; + put 'put ''bj1oLHRoaXMuZGV0YWlsU2VydmljZT12LHRoaXMuY29sdW1uc1NlcnZpY2U9eSx0aGlzLmNvbW1vblN0cmluZ3M9Qyx0aGlzLlNFTEVDVElPTl9UWVBFPVdzfWdldCBoYXNIaWRlYWJsZUNvbHVtbnMoKXtyZXR1cm4gdGhpcy5jb2x1bW5zU2VydmljZS5oYXNIaWRlYWJsZUNvbHVtbnN9fXJl''@;'; + put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KHJaKSxYdChBOCksWHQoQTkpLFh0KG5zKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1mb290ZXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEm''@;'; + put 'put ''aCYmeG8oeSxKZmUsNSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi50b2dnbGU9Qy5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImRhdGFncmlkLWZvb3RlciIsITApfSxuZ0NvbnRlbnRTZWxlY3RvcnM6RmNlLGRlY2xzOjMsdmFyczoy''@;'; + put 'put ''LGNvbnN0czpbWzQsIm5nSWYiXSxbMSwiY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCJdLFsxLCJkYXRhZ3JpZC1mb290ZXItc2VsZWN0Il0sWyJjbHJDaGVja2JveCIsIiIsInR5cGUiLCJjaGVja2JveCIsImNoZWNrZWQiLCJjaGVja2VkIiwiZGlzYWJsZWQiLCIiXSxbMSwiY2xyLXNyLW9u''@;'; + put 'put ''bHkiXSxbMSwiZGF0YWdyaWQtZm9vdGVyLWRlc2NyaXB0aW9uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoeCQpLHJuKDAsUmNlLDgsMiwibmctY29udGFpbmVyIiwwKSxybigxLFBjZSw1LDEsIm5nLWNvbnRhaW5lciIsMCksTmkoMikpLDImaCYmKFR0KCJuZ0lmIix2LnNl''@;'; + put 'put ''bGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09di5TRUxFQ1RJT05fVFlQRS5NdWx0aSYmdi5zZWxlY3Rpb24uY3VycmVudC5sZW5ndGg+MCksdXQoMSksVHQoIm5nSWYiLCF2LmRldGFpbFNlcnZpY2UuaXNPcGVuKSl9LGRlcGVuZGVuY2llczpbT2ksSmZlLFZvLFJvLG90XSxlbmNhcHN1bGF0aW9u''@;'; + put 'put ''OjJ9KSxkfSkoKTtjb25zdCBYZmU9bmV3IHplKCJDT0xVTU5fU1RBVEUiKSxET2U9e3Byb3ZpZGU6WGZlLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gSU9lKCl7cmV0dXJuIG5ldyBjcyh7Y2hhbmdlczpbXX0pfX07bGV0IEtmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMucGFnZT1o''@;'; + put 'put ''fW5nT25Jbml0KCl7KCF0aGlzLnBhZ2VTaXplT3B0aW9uc3x8MD09PXRoaXMucGFnZVNpemVPcHRpb25zLmxlbmd0aCkmJih0aGlzLnBhZ2VTaXplT3B0aW9ucz1bdGhpcy5wYWdlLnNpemVdKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoaHcp''@;'; + put 'put ''KX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLXBhZ2Utc2l6ZSJdXSxpbnB1dHM6e3BhZ2VTaXplT3B0aW9uczpbImNsclBhZ2VTaXplT3B0aW9ucyIsInBhZ2VTaXplT3B0aW9ucyJdfSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6NCx2YXJzOjQsY29u''@;'; + put 'put ''c3RzOltbMSwiY2xyLXNlbGVjdC13cmFwcGVyIl0sWzMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsIm5nVmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJuZ1ZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSxpdCgxLCJkaXYiLDApKDIs''@;'; + put 'put ''InNlbGVjdCIsMSksWW4oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnBhZ2Uuc2l6ZT1DfSkscm4oMyxUJCwyLDIsIm9wdGlvbiIsMiksc3QoKSgpKSwyJmgmJih1dCgyKSxGaSgiY2xyLXBhZ2Utc2l6ZS1zZWxlY3QiLCEwKSxUdCgibmdNb2RlbCIsdi5wYWdlLnNpemUp''@;'; + put 'put ''LHV0KDEpLFR0KCJuZ0Zvck9mIix2LnBhZ2VTaXplT3B0aW9ucykpfSxkZXBlbmRlbmNpZXM6W09mLEVzLHhzLFpzLHEzLGVkXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxhWj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLnBhZ2U9aCx0aGlzLmNvbW1vblN0cmluZ3M9''@;'; + put 'put ''dix0aGlzLmRldGFpbFNlcnZpY2U9eSx0aGlzLmN1cnJlbnRDaGFuZ2VkPW5ldyBhcighMSksdGhpcy5wYWdlLmFjdGl2YXRlZD0hMH1uZ09uSW5pdCgpe3RoaXMucGFnZS5zaXplfHwodGhpcy5wYWdlLnNpemU9MTApLHRoaXMuX3BhZ2VTdWJzY3JpcHRpb249dGhpcy5wYWdlLmNoYW5nZS5z''@;'; + put 'put ''dWJzY3JpYmUoaD0+dGhpcy5jdXJyZW50Q2hhbmdlZC5lbWl0KGgpKX1uZ09uRGVzdHJveSgpe3RoaXMucGFnZS5yZXNldFBhZ2VTaXplKCEwKSx0aGlzLl9wYWdlU3Vic2NyaXB0aW9uJiZ0aGlzLl9wYWdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9Z2V0IHBhZ2VTaXplKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMucGFnZS5zaXplfXNldCBwYWdlU2l6ZShoKXsibnVtYmVyIj09dHlwZW9mIGgmJih0aGlzLnBhZ2Uuc2l6ZT1oKX1nZXQgdG90YWxJdGVtcygpe3JldHVybiB0aGlzLnBhZ2UudG90YWxJdGVtc31zZXQgdG90YWxJdGVtcyhoKXsibnVtYmVyIj09dHlwZW9mIGgmJih0aGlzLnBhZ2Uu''@;'; + put 'put ''dG90YWxJdGVtcz1oKX1nZXQgbGFzdFBhZ2UoKXtyZXR1cm4gdGhpcy5wYWdlLmxhc3R9c2V0IGxhc3RQYWdlKGgpeyJudW1iZXIiPT10eXBlb2YgaCYmKHRoaXMucGFnZS5sYXN0PWgpfWdldCBjdXJyZW50UGFnZSgpe3JldHVybiB0aGlzLnBhZ2UuY3VycmVudH1zZXQgY3VycmVudFBhZ2Uo''@;'; + put 'put ''aCl7Im51bWJlciI9PXR5cGVvZiBoJiYodGhpcy5wYWdlLmN1cnJlbnQ9aCl9cHJldmlvdXMoKXt0aGlzLnBhZ2UucHJldmlvdXMoKX1uZXh0KCl7dGhpcy5wYWdlLm5leHQoKX1nZXQgZmlyc3RJdGVtKCl7cmV0dXJuIHRoaXMucGFnZS5maXJzdEl0ZW19Z2V0IGxhc3RJdGVtKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMucGFnZS5sYXN0SXRlbX1nZXQgbWlkZGxlUGFnZXMoKXtjb25zdCBoPVtdO3JldHVybiB0aGlzLnBhZ2UuY3VycmVudD4xJiZoLnB1c2godGhpcy5wYWdlLmN1cnJlbnQtMSksaC5wdXNoKHRoaXMucGFnZS5jdXJyZW50KSx0aGlzLnBhZ2UuY3VycmVudDx0aGlzLnBhZ2UubGFzdCYm''@;'; + put 'put ''aC5wdXNoKHRoaXMucGFnZS5jdXJyZW50KzEpLGh9dXBkYXRlQ3VycmVudFBhZ2UoaCl7Y29uc3Qgdj1wYXJzZUludChoLnRhcmdldC52YWx1ZSwxMCk7aXNOYU4odil8fCh0aGlzLnBhZ2UuY3VycmVudD12PDE/MTp2PnRoaXMucGFnZS5sYXN0P3RoaXMucGFnZS5sYXN0OnYpLHRoaXMuY3Vy''@;'; + put 'put ''cmVudFBhZ2VJbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlPXRoaXMucGFnZS5jdXJyZW50fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChodyksWHQobnMpLFh0KEE4KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNs''@;'; + put 'put ''ci1kZy1wYWdpbmF0aW9uIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksS2ZlLDUpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuX3BhZ2VTaXplQ29tcG9uZW50PUMuZmlyc3QpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhIY2Us''@;'; + put 'put ''NSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5jdXJyZW50UGFnZUlucHV0UmVmPXkuZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJwYWdpbmF0aW9uIiwhMCl9LGlucHV0czp7ZGlzYWJsZUN1cnJlbnRQYWdlSW5wdXQ6WyJjbHJEZ1Bh''@;'; + put 'put ''Z2VJbnB1dERpc2FibGVkIiwiZGlzYWJsZUN1cnJlbnRQYWdlSW5wdXQiXSxwYWdlU2l6ZTpbImNsckRnUGFnZVNpemUiLCJwYWdlU2l6ZSJdLHRvdGFsSXRlbXM6WyJjbHJEZ1RvdGFsSXRlbXMiLCJ0b3RhbEl0ZW1zIl0sbGFzdFBhZ2U6WyJjbHJEZ0xhc3RQYWdlIiwibGFzdFBhZ2UiXSxj''@;'; + put 'put ''dXJyZW50UGFnZTpbImNsckRnUGFnZSIsImN1cnJlbnRQYWdlIl19LG91dHB1dHM6e2N1cnJlbnRDaGFuZ2VkOiJjbHJEZ1BhZ2VDaGFuZ2UifSxuZ0NvbnRlbnRTZWxlY3RvcnM6a3AsZGVjbHM6Mix2YXJzOjIsY29uc3RzOltbNCwibmdJZiJdLFsiY2xhc3MiLCJwYWdpbmF0aW9uLXNpemUi''@;'; + put 'put ''LDQsIm5nSWYiXSxbMSwicGFnaW5hdGlvbi1kZXNjcmlwdGlvbiJdLFsiY2xhc3MiLCJwYWdpbmF0aW9uLWxpc3QiLDQsIm5nSWYiXSxbMSwicGFnaW5hdGlvbi1zaXplIl0sWzEsInBhZ2luYXRpb24tbGlzdCJdLFsidHlwZSIsImJ1dHRvbiIsMSwicGFnaW5hdGlvbi1maXJzdCIsMywiZGlz''@;'; + put 'put ''YWJsZWQiLCJjbGljayJdLFsxLCJjbHItc3Itb25seSJdLFsic2hhcGUiLCJzdGVwLWZvcndhcmQtMiIsImRpcmVjdGlvbiIsImRvd24iXSxbInR5cGUiLCJidXR0b24iLDEsInBhZ2luYXRpb24tcHJldmlvdXMiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJl''@;'; + put 'put ''Y3Rpb24iLCJsZWZ0Il0sWyJ0eXBlIiwidGV4dCIsImNsYXNzIiwicGFnaW5hdGlvbi1jdXJyZW50IGNsci1pbnB1dCIsMywic2l6ZSIsInZhbHVlIiwia2V5ZG93bi5lbnRlciIsImJsdXIiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsicmVhZE9ubHkiLCIiXSxbInR5cGUiLCJidXR0b24iLDEs''@;'; + put 'put ''InBhZ2luYXRpb24tbmV4dCIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsic2hhcGUiLCJhbmdsZSIsImRpcmVjdGlvbiIsInJpZ2h0Il0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJwYWdpbmF0aW9uLWxhc3QiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInNoYXBlIiwic3RlcC1mb3J3YXJkLTIiLCJk''@;'; + put 'put ''aXJlY3Rpb24iLCJ1cCJdLFsidHlwZSIsInRleHQiLDEsInBhZ2luYXRpb24tY3VycmVudCIsImNsci1pbnB1dCIsMywic2l6ZSIsInZhbHVlIiwia2V5ZG93bi5lbnRlciIsImJsdXIiXSxbImN1cnJlbnRQYWdlSW5wdXQiLCIiXSxbMSwicGFnaW5hdGlvbi1kZXNjcmlwdGlvbi1jb21wYWN0''@;'; + put 'put ''Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAocjMpLHJuKDAsamNlLDUsMiwibmctY29udGFpbmVyIiwwKSxybigxLEQkLDE0LDEwLCJuZy1jb250YWluZXIiLDApKSwyJmgmJihUdCgibmdJZiIsIXYuZGV0YWlsU2VydmljZS5pc09wZW4pLHV0KDEpLFR0KCJuZ0lmIix2LmRl''@;'; + put 'put ''dGFpbFNlcnZpY2UuaXNPcGVuKSl9LGRlcGVuZGVuY2llczpbVm8sWm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpO2NvbnN0IEZMPSJkYXRhZ3JpZC1maXhlZC13aWR0aCIseXE9ImRhdGFncmlkLWhpZGRlbi1jb2x1bW4iO2xldCBITD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5''@;'; + put 'put ''KXt0aGlzLmVsPWgsdGhpcy5yZW5kZXJlcj12LHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh5LmZpbHRlclJlbmRlclN0ZXBzKGM0LkNMRUFSX1dJRFRIUykuc3Vic2NyaWJlKCgpPT50aGlzLmNsZWFyV2lkdGgoKSkpfXNldCBjb2x1bW5TdGF0ZShoKXt0''@;'; + put 'put ''aGlzLnN0YXRlU3Vic2NyaXB0aW9uJiZ0aGlzLnN0YXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5ydW5BbGxDaGFuZ2VzPW95ZSx0aGlzLnN0YXRlU3Vic2NyaXB0aW9uPWguc3Vic2NyaWJlKHY9PnRoaXMuc3RhdGVDaGFuZ2VzKHYpKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vi''@;'; + put 'put ''c2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSksdGhpcy5zdGF0ZVN1YnNjcmlwdGlvbiYmdGhpcy5zdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfXN0YXRlQ2hhbmdlcyhoKXt0aGlzLnJ1bkFsbENoYW5nZXMmJihoLmNoYW5nZXM9dGhpcy5ydW5BbGxDaGFuZ2Vz''@;'; + put 'put ''LGRlbGV0ZSB0aGlzLnJ1bkFsbENoYW5nZXMpLGguY2hhbmdlcyYmaC5jaGFuZ2VzLmxlbmd0aCYmaC5jaGFuZ2VzLmZvckVhY2godj0+e3N3aXRjaCh2KXtjYXNlIHBoLldJRFRIOnRoaXMuc2V0V2lkdGgoaCk7YnJlYWs7Y2FzZSBwaC5ISURERU46dGhpcy5zZXRIaWRkZW4oaCl9fSl9Y2xl''@;'; + put 'put ''YXJXaWR0aCgpe3RoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LEZMKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwid2lkdGgiLG51bGwpfXNldFdpZHRoKGgpe2guc3RyaWN0V2lkdGg/dGhpcy5yZW5kZXJlci5hZGRD''@;'; + put 'put ''bGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsRkwpOnRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LEZMKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwid2lkdGgiLGgud2lkdGgrInB4Iil9c2V0SGlkZGVuKGgpe2gu''@;'; + put 'put ''aGlkZGVuP3RoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LHlxKTp0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCx5cSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KGJvKSxY''@;'; + put 'put ''dChHYSksWHQoZFMpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLWNlbGwiXV19KSxkfSkoKSxOTD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqLHVlKXt0aGlzLmVsPWgsdGhpcy5yZW5kZXJlcj12LHRoaXMub3JnYW5pemVyPXksdGhp''@;'; + put 'put ''cy5kb21BZGFwdGVyPUMsdGhpcy5jb2x1bW5SZXNpemVyU2VydmljZT1JLHRoaXMuY29sdW1uc1NlcnZpY2U9aix0aGlzLmNvbHVtblN0YXRlPXVlLHRoaXMucmVzaXplRW1pdHRlcj1uZXcgYXIsdGhpcy53aWR0aFNldD0hMSx0aGlzLmF1dG9TZXQ9ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtd''@;'; + put 'put ''LHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMub3JnYW5pemVyLmZpbHRlclJlbmRlclN0ZXBzKGM0LkNMRUFSX1dJRFRIUykuc3Vic2NyaWJlKCgpPT50aGlzLmNsZWFyV2lkdGgoKSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHVlLnN1YnNjcmliZShfZT0+dGhpcy5zdGF0ZUNoYW5n''@;'; + put 'put ''ZXMoX2UpKSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfXN0YXRlQ2hhbmdlcyhoKXtoLmNoYW5nZXMmJmguY2hhbmdlcy5sZW5ndGgmJmguY2hhbmdlcy5mb3JFYWNoKHY9Pntzd2l0Y2godil7Y2FzZSBwaC5XSURUSDp0aGlz''@;'; + put 'put ''LnNldFdpZHRoKGgpO2JyZWFrO2Nhc2UgcGguSElEREVOOnRoaXMuc2V0SGlkZGVuKGgpfX0pfWNsZWFyV2lkdGgoKXt0aGlzLndpZHRoU2V0JiYhdGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnkmJnRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50''@;'; + put 'put ''LCJ3aWR0aCIsbnVsbCksdGhpcy5hdXRvU2V0JiZ0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxGTCl9ZGV0ZWN0U3RyaWN0V2lkdGgoKXtyZXR1cm4gdGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnk/dGhpcy5jb2x1bW5SZXNpemVyU2Vy''@;'; + put 'put ''dmljZS53aWR0aEFmdGVyUmVzaXplOnRoaXMuYXV0b1NldD8wOnRoaXMuZG9tQWRhcHRlci51c2VyRGVmaW5lZFdpZHRoKHRoaXMuZWwubmF0aXZlRWxlbWVudCl9Y29tcHV0ZVdpZHRoKGgpe2xldCB2PWg7cmV0dXJuIHZ8fCh2PXRoaXMuZG9tQWRhcHRlci5zY3JvbGxXaWR0aCh0aGlzLmVs''@;'; + put 'put ''Lm5hdGl2ZUVsZW1lbnQpKSx2fWdldENvbHVtbldpZHRoU3RhdGUoKXtjb25zdCBoPXRoaXMuZGV0ZWN0U3RyaWN0V2lkdGgoKTtyZXR1cm57d2lkdGg6dGhpcy5jb21wdXRlV2lkdGgoaCksc3RyaWN0V2lkdGg6aH19c2V0Q29sdW1uU3RhdGUoaCl7dGhpcy5jb2x1bW5zU2VydmljZS5jb2x1''@;'; + put 'put ''bW5zW2hdPXRoaXMuY29sdW1uU3RhdGV9c2V0V2lkdGgoaCl7aC5zdHJpY3RXaWR0aD8odGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnkmJih0aGlzLnJlc2l6ZUVtaXR0ZXIuZW1pdChoLndpZHRoKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVu''@;'; + put 'put ''dCwid2lkdGgiLGgud2lkdGgrInB4IiksdGhpcy53aWR0aFNldD0hMSksdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsRkwpLHRoaXMuYXV0b1NldD0hMSk6KHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LEZMKSx0aGlz''@;'; + put 'put ''LnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwid2lkdGgiLGgud2lkdGgrInB4IiksdGhpcy53aWR0aFNldD0hMCx0aGlzLmF1dG9TZXQ9ITApfXNldEhpZGRlbihoKXtoLmhpZGRlbj90aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCx5''@;'; + put 'put ''cSk6dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQseXEpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChibyksWHQoR2EpLFh0KGRTKSxYdCh1NCksWHQoSGZlKSxYdChBOSksWHQoWGZlKSl9LGQuXHUwMjc1''@;'; + put 'put ''ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1jb2x1bW4iXV0sb3V0cHV0czp7cmVzaXplRW1pdHRlcjoiY2xyRGdDb2x1bW5SZXNpemUifSxmZWF0dXJlczpbaG8oW0hmZSxET2VdKV19KSxkfSkoKSxCT2U9KCgpPT57Y2xhc3MgZHt1c2VyRGVmaW5lZFdpZHRoKGgpe3JldHVy''@;'; + put 'put ''biAwfXNjcm9sbEJhcldpZHRoKGgpe3JldHVybiAwfXNjcm9sbFdpZHRoKGgpe3JldHVybiAwfWNvbXB1dGVkSGVpZ2h0KGgpe3JldHVybiAwfWNsaWVudFJlY3QoaCl7cmV0dXJue3RvcDowLGJvdHRvbTowLGxlZnQ6MCxyaWdodDowLHdpZHRoOjAsaGVpZ2h0OjB9fW1pbldpZHRoKGgpe3Jl''@;'; + put 'put ''dHVybiAwfWZvY3VzKGgpe319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksVkw9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmNvbHVtbnNT''@;'; + put 'put ''ZXJ2aWNlPWgsdGhpcy5zdWJzY3JpcHRpb25zPVtdfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc2V0Q29sdW1uU3RhdGUoKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmNlbGxzLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5zZXRDb2x1bW5TdGF0ZSgpfSkpfW5nT25EZXN0''@;'; + put 'put ''cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1zZXRDb2x1bW5TdGF0ZSgpe3RoaXMuY2VsbHMubGVuZ3RoPT09dGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zLmxlbmd0aCYmdGhpcy5jZWxscy5mb3JFYWNoKChoLHYpPT57dGhpcy5jb2x1bW5z''@;'; + put 'put ''U2VydmljZS5jb2x1bW5zW3ZdJiYoaC5jb2x1bW5TdGF0ZT10aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnNbdl0pfSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KEE5KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNs''@;'; + put 'put ''ci1kZy1yb3ciXSxbImNsci1kZy1yb3ctZGV0YWlsIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksSEwsNCksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5jZWxscz1DKX19fSksZH0pKCk7Y29uc3QgUE9lPWQ9PlNsKGQpP25ldyB1NDpuZXcgQk9lO2xl''@;'; + put 'put ''dCBsWj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqLHVlLF9lLEJlLE5lKXt0aGlzLm9yZ2FuaXplcj1oLHRoaXMuaXRlbXM9dix0aGlzLnBhZ2U9eSx0aGlzLmRvbUFkYXB0ZXI9Qyx0aGlzLmVsPUksdGhpcy5yZW5kZXJlcj1qLHRoaXMuZGV0YWlsU2VydmljZT11ZSx0''@;'; + put 'put ''aGlzLnRhYmxlU2l6ZVNlcnZpY2U9X2UsdGhpcy5jb2x1bW5zU2VydmljZT1CZSx0aGlzLm5nWm9uZT1OZSx0aGlzLl9oZWlnaHRTZXQ9ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuY29sdW1uc1NpemVzU3RhYmxlPSExLHRoaXMuc2hvdWxkU3RhYmlsaXplQ29sdW1ucz0hMCx0aGlz''@;'; + put 'put ''LnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm9yZ2FuaXplci5maWx0ZXJSZW5kZXJTdGVwcyhjNC5DT01QVVRFX0NPTFVNTl9XSURUSFMpLnN1YnNjcmliZSgoKT0+dGhpcy5jb21wdXRlSGVhZGVyc1dpZHRoKCkpKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnBhZ2Uuc2l6ZUNoYW5n''@;'; + put 'put ''ZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl9oZWlnaHRTZXQmJnRoaXMucmVzZXREYXRhZ3JpZEhlaWdodCgpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZGV0YWlsU2VydmljZS5zdGF0ZUNoYW5nZS5zdWJzY3JpYmUoS2U9PnRoaXMudG9nZ2xlRGV0YWlsUGFuZShLZSkpKSx0aGlz''@;'; + put 'put ''LnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLml0ZW1zLmNoYW5nZS5zdWJzY3JpYmUoKCk9PnRoaXMuc2hvdWxkU3RhYmlsaXplQ29sdW1ucz0hMCkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc2V0dXBDb2x1bW5zKCksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5oZWFkZXJzLmNo''@;'; + put 'put ''YW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5zZXR1cENvbHVtbnMoKSx0aGlzLmNvbHVtbnNTaXplc1N0YWJsZT0hMSx0aGlzLnN0YWJpbGl6ZUNvbHVtbnMoKX0pKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnRhYmxlU2l6ZVNlcnZpY2UudGFibGU9dGhpcy5lbH1uZ0FmdGVyVmlld0NoZWNr''@;'; + put 'put ''ZWQoKXt0aGlzLnNob3VsZFN0YWJpbGl6ZUNvbHVtbnMmJnRoaXMuc3RhYmlsaXplQ29sdW1ucygpLHRoaXMuc2hvdWxkQ29tcHV0ZUhlaWdodCgpJiZ0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3NldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXB1dGVEYXRhZ3JpZEhlaWdodCgp''@;'; + put 'put ''fSl9KX1zZXR1cENvbHVtbnMoKXt0aGlzLmhlYWRlcnMuZm9yRWFjaCgoaCx2KT0+aC5zZXRDb2x1bW5TdGF0ZSh2KSksdGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zLnNwbGljZSh0aGlzLmhlYWRlcnMubGVuZ3RoKSx0aGlzLnJvd3MuZm9yRWFjaChoPT5oLnNldENvbHVtblN0YXRlKCkp''@;'; + put 'put ''fXNob3VsZENvbXB1dGVIZWlnaHQoKXtyZXR1cm4hdGhpcy5faGVpZ2h0U2V0JiZ0aGlzLnBhZ2Uuc2l6ZT4wJiZ0aGlzLml0ZW1zLmRpc3BsYXllZC5sZW5ndGg9PT10aGlzLnBhZ2Uuc2l6ZX10b2dnbGVEZXRhaWxQYW5lKGgpe3RoaXMuaGVhZGVycyYmKGgmJiF0aGlzLmNvbHVtbnNTZXJ2''@;'; + put 'put ''aWNlLmhhc0NhY2hlKCk/KHRoaXMuY29sdW1uc1NlcnZpY2UuY2FjaGUoKSx0aGlzLmhlYWRlcnMuZm9yRWFjaCgodix5KT0+e3k+MCYmdGhpcy5jb2x1bW5zU2VydmljZS5lbWl0U3RhdGVDaGFuZ2VBdCh5LHtjaGFuZ2VzOltwaC5ISURERU5dLGhpZGRlbjpofSl9KSk6aHx8dGhpcy5jb2x1''@;'; + put 'put ''bW5zU2VydmljZS5yZXNldFRvTGFzdENhY2hlKCkpfWNvbXB1dGVEYXRhZ3JpZEhlaWdodCgpe2NvbnN0IGg9dGhpcy5kb21BZGFwdGVyLmNsaWVudFJlY3QodGhpcy5lbC5uYXRpdmVFbGVtZW50KS5oZWlnaHQ7dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQs''@;'; + put 'put ''ImhlaWdodCIsaCsicHgiKSx0aGlzLl9oZWlnaHRTZXQ9ITB9cmVzZXREYXRhZ3JpZEhlaWdodCgpe3RoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJoZWlnaHQiLCIiKSx0aGlzLl9oZWlnaHRTZXQ9ITF9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlv''@;'; + put 'put ''bnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWNvbXB1dGVIZWFkZXJzV2lkdGgoKXtjb25zdCBoPXRoaXMuaGVhZGVycy5sZW5ndGg7bGV0IHY9ITA7dGhpcy5oZWFkZXJzLmZvckVhY2goKHksQyk9Pntjb25zdCBJPU9iamVjdC5hc3NpZ24oe2NoYW5nZXM6W3BoLldJRFRIXX0seS5n''@;'; + put 'put ''ZXRDb2x1bW5XaWR0aFN0YXRlKCkpO0kuc3RyaWN0V2lkdGh8fCh2PSExKSxoPT09QysxJiZ2JiYoSS5zdHJpY3RXaWR0aD0wKSx0aGlzLmNvbHVtbnNTZXJ2aWNlLmVtaXRTdGF0ZUNoYW5nZUF0KEMsSSl9KX1zdGFiaWxpemVDb2x1bW5zKCl7dGhpcy5zaG91bGRTdGFiaWxpemVDb2x1bW5z''@;'; + put 'put ''PSExLCF0aGlzLmNvbHVtbnNTaXplc1N0YWJsZSYmdGhpcy5pdGVtcy5kaXNwbGF5ZWQubGVuZ3RoPjAmJih0aGlzLm9yZ2FuaXplci5yZXNpemUoKSx0aGlzLmNvbHVtbnNTaXplc1N0YWJsZT0hMCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0''@;'; + put 'put ''KGRTKSxYdChkdyksWHQoaHcpLFh0KHU0KSxYdChibyksWHQoR2EpLFh0KEE4KSxYdChOZmUpLFh0KEE5KSxYdChfbCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF0YWdyaWQiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmKHhv''@;'; + put 'put ''KHksTkwsNCkseG8oeSxWTCw1KSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5oZWFkZXJzPUMpLEhpKEM9JGkoKSkmJih2LnJvd3M9Qyl9fSxmZWF0dXJlczpbaG8oW3twcm92aWRlOnU0LHVzZUZhY3Rvcnk6UE9lLGRlcHM6W0QyXX1dKV19KSxkfSkoKSxGT2U9KCgpPT57Y2xhc3MgZHtj''@;'; + put 'put ''b25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKGNYLGZYLENrLFBzZSxoWCxGc2UsZFgsSHNlLGlWKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLFRzLFlB''@;'; + put 'put ''ZSxuZCxSZmUscWEseU9lLFVBZSxxQWUsRGwsUmMsY3csYXEsdVNdXX0pLGR9KSgpLGZ5ZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXN0YWNrLWNv''@;'; + put 'put ''bnRlbnQiXV19KSxkfSkoKSwkZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLnVuaXF1ZUlkPWgsdGhpcy5fZ2VuZXJhdGVkSWQ9bnVsbCx0aGlzLl9pZD1udWxsfXNldCBpZChoKXt0aGlzLl9pZD0ic3RyaW5nIj09dHlwZW9mIGgmJiIiIT09aD9oOnRoaXMuX2dlbmVyYXRl''@;'; + put 'put ''ZElkKyIifWdldCBpZCgpe3JldHVybiB0aGlzLl9pZH1uZ09uSW5pdCgpe3RoaXMuX2dlbmVyYXRlZElkPSJjbHItc3RhY2stbGFiZWwtIit0aGlzLnVuaXF1ZUlkLHRoaXMuaWR8fCh0aGlzLl9pZD10aGlzLl9nZW5lcmF0ZWRJZCsiIil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbiho''@;'; + put 'put ''KXtyZXR1cm4gbmV3KGh8fGQpKFh0KHkyKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1zdGFjay1sYWJlbCJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmemkoImlkIix2LmlkKX0saW5wdXRzOntpZDoiaWQifSxmZWF0dXJl''@;'; + put 'put ''czpbaG8oW09jXSldLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxoeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5wYXJlbnQ9''@;'; + put 'put ''aCx0aGlzLnVuaXF1ZUlkPXYsdGhpcy5jb21tb25TdHJpbmdzPXksdGhpcy5leHBhbmRlZD0hMSx0aGlzLmV4cGFuZGVkQ2hhbmdlPW5ldyBhcighMSksdGhpcy5leHBhbmRhYmxlPSExLHRoaXMuZm9jdXNlZD0hMSx0aGlzLl9jaGFuZ2VkQ2hpbGRyZW49MCx0aGlzLl9mdWxseUluaXRpYWxp''@;'; + put 'put ''emVkPSExLHRoaXMuX2NoYW5nZWQ9ITEsaCYmaC5hZGRDaGlsZCgpfWdldCBnZXRDaGFuZ2VkVmFsdWUoKXtyZXR1cm4gdGhpcy5fY2hhbmdlZHx8dGhpcy5fY2hhbmdlZENoaWxkcmVuPjAmJiF0aGlzLmV4cGFuZGVkfXNldCBzZXRDaGFuZ2VkVmFsdWUoaCl7dGhpcy5fY2hhbmdlZD1oLHRo''@;'; + put 'put ''aXMucGFyZW50JiZ0aGlzLl9mdWxseUluaXRpYWxpemVkJiYoaD90aGlzLnBhcmVudC5fY2hhbmdlZENoaWxkcmVuKys6dGhpcy5wYXJlbnQuX2NoYW5nZWRDaGlsZHJlbi0tKX1nZXQgbGFiZWxsZWRCeUlkKCl7cmV0dXJuIHRoaXMuc3RhY2tCbG9ja1RpdGxlLmlkfWdldCBoZWFkaW5nTGV2''@;'; + put 'put ''ZWwoKXtyZXR1cm4gdGhpcy5hcmlhTGV2ZWw/dGhpcy5hcmlhTGV2ZWwrIiI6dGhpcy5wYXJlbnQ/IjQiOiIzIn1uZ09uSW5pdCgpe3RoaXMuX2Z1bGx5SW5pdGlhbGl6ZWQ9ITB9YWRkQ2hpbGQoKXt0aGlzLmV4cGFuZGFibGU9ITB9dG9nZ2xlRXhwYW5kKCl7dGhpcy5leHBhbmRhYmxlJiYo''@;'; + put 'put ''dGhpcy5leHBhbmRlZD0hdGhpcy5leHBhbmRlZCx0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCkpfWdldCBjYXJldERpcmVjdGlvbigpe3JldHVybiB0aGlzLmV4cGFuZGVkPyJkb3duIjoicmlnaHQifWdldCByb2xlKCl7cmV0dXJuIHRoaXMuZXhwYW5kYWJsZT8iYnV0''@;'; + put 'put ''dG9uIjpudWxsfWdldCB0YWJJbmRleCgpe3JldHVybiB0aGlzLmV4cGFuZGFibGU/IjAiOm51bGx9Z2V0IG9uU3RhY2tMYWJlbEZvY3VzKCl7cmV0dXJuIHRoaXMuZXhwYW5kYWJsZSYmIXRoaXMuZXhwYW5kZWQmJnRoaXMuZm9jdXNlZH1nZXQgYXJpYUV4cGFuZGVkKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''ZXhwYW5kYWJsZT90aGlzLmV4cGFuZGVkPyJ0cnVlIjoiZmFsc2UiOm51bGx9Z2V0U3RhY2tDaGlsZHJlbklkKCl7cmV0dXJuIHRoaXMuZXhwYW5kZWQ/YGNsci1zdGFjay1jaGlsZHJlbi0ke3RoaXMudW5pcXVlSWR9YDpudWxsfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0''@;'; + put 'put ''dXJuIG5ldyhofHxkKShYdChkLDEyKSxYdCh5MiksWHQobnMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXN0YWNrLWJsb2NrIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksJGZlLDUpLDImaCl7bGV0IEM7SGkoQz0kaSgp''@;'; + put 'put ''KSYmKHYuc3RhY2tCbG9ja1RpdGxlPUMuZmlyc3QpfX0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiYoemkoInJvbGUiLCJoZWFkaW5nIikoImFyaWEtbGV2ZWwiLHYuaGVhZGluZ0xldmVsKSxGaSgic3RhY2stYmxvY2siLCEwKSgic3RhY2stYmxvY2stZXhw''@;'; + put 'put ''YW5kZWQiLHYuZXhwYW5kZWQpKCJzdGFjay1ibG9jay1leHBhbmRhYmxlIix2LmV4cGFuZGFibGUpKCJzdGFjay1ibG9jay1jaGFuZ2VkIix2LmdldENoYW5nZWRWYWx1ZSkoIm9uLWZvY3VzIix2Lm9uU3RhY2tMYWJlbEZvY3VzKSl9LGlucHV0czp7ZXhwYW5kZWQ6WyJjbHJTYkV4cGFuZGVk''@;'; + put 'put ''IiwiZXhwYW5kZWQiXSxleHBhbmRhYmxlOlsiY2xyU2JFeHBhbmRhYmxlIiwiZXhwYW5kYWJsZSJdLHNldENoYW5nZWRWYWx1ZTpbImNsclNiTm90aWZ5Q2hhbmdlIiwic2V0Q2hhbmdlZFZhbHVlIl0sYXJpYUxldmVsOlsiY2xyU3RhY2tWaWV3TGV2ZWwiLCJhcmlhTGV2ZWwiXSxhcmlhU2V0''@;'; + put 'put ''c2l6ZTpbImNsclN0YWNrVmlld1NldHNpemUiLCJhcmlhU2V0c2l6ZSJdLGFyaWFQb3NpbnNldDpbImNsclN0YWNrVmlld1Bvc2luc2V0IiwiYXJpYVBvc2luc2V0Il19LG91dHB1dHM6e2V4cGFuZGVkQ2hhbmdlOiJjbHJTYkV4cGFuZGVkQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFtPY10pXSxu''@;'; + put 'put ''Z0NvbnRlbnRTZWxlY3RvcnM6bncsZGVjbHM6OSx2YXJzOjksY29uc3RzOltbMSwic3RhY2stYmxvY2stbGFiZWwiLDMsImlkIiwiY2xpY2siLCJrZXl1cC5lbnRlciIsImtleXVwLnNwYWNlIiwiZm9jdXMiLCJibHVyIl0sWyJzaGFwZSIsImFuZ2xlIiwiY2xhc3MiLCJzdGFjay1ibG9jay1j''@;'; + put 'put ''YXJldCIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItc3Itb25seSIsNCwibmdJZiJdLFsxLCJzdGFjay12aWV3LWtleSJdLFsxLCJzdGFjay1ibG9jay1jb250ZW50Il0sWzEsInN0YWNrLWNoaWxkcmVuIiwzLCJjbHJFeHBhbmRUcmlnZ2VyIl0sWyJyb2xlIiwicmVnaW9uIiwzLCJoZWlnaHQi''@;'; + put 'put ''LDQsIm5nSWYiXSxbInNoYXBlIiwiYW5nbGUiLDEsInN0YWNrLWJsb2NrLWNhcmV0Il0sWzEsImNsci1zci1vbmx5Il0sWyJyb2xlIiwicmVnaW9uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoemNlKSxpdCgwLCJkaXYiLDApLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdi50b2dnbGVFeHBhbmQoKX0pKCJrZXl1cC5lbnRlciIsZnVuY3Rpb24oKXtyZXR1cm4gdi50b2dnbGVFeHBhbmQoKX0pKCJrZXl1cC5zcGFjZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi50b2dnbGVFeHBhbmQoKX0pKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gdi5mb2N1c2VkPSEwfSko''@;'; + put 'put ''ImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZm9jdXNlZD0hMX0pLHJuKDEsaTMsMSwxLCJjZHMtaWNvbiIsMSkscm4oMixaY2UsMiwxLCJzcGFuIiwyKSxpdCgzLCJkaXYiLDMpLE5pKDQpLHN0KCksaXQoNSwiZGl2Iiw0KSxOaSg2LDEpLHN0KCkoKSxpdCg3LCJjbHItZXhwYW5kYWJsZS1h''@;'; + put 'put ''bmltYXRpb24iLDUpLHJuKDgsdHcsMiw0LCJkaXYiLDYpLHN0KCkpLDImaCYmKFR0KCJpZCIsdi51bmlxdWVJZCksemkoInJvbGUiLHYucm9sZSkoInRhYmluZGV4Iix2LnRhYkluZGV4KSgiYXJpYS1leHBhbmRlZCIsdi5hcmlhRXhwYW5kZWQpKCJhcmlhLWNvbnRyb2xzIix2LmdldFN0YWNr''@;'; + put 'put ''Q2hpbGRyZW5JZCgpKSx1dCgxKSxUdCgibmdJZiIsdi5leHBhbmRhYmxlKSx1dCgxKSxUdCgibmdJZiIsdi5nZXRDaGFuZ2VkVmFsdWUpLHV0KDUpLFR0KCJjbHJFeHBhbmRUcmlnZ2VyIix2LmV4cGFuZGVkKSx1dCgxKSxUdCgibmdJZiIsdi5leHBhbmRlZCkpfSxkZXBlbmRlbmNpZXM6W3Vx''@;'; + put 'put ''LFZvLFpvXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9Il19KSxkfSkoKSxqTD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5lZGl0YWJsZT0hMSx0aGlzLnNhdmU9bmV3IGFyKCExKSx0aGlzLl9lZGl0TW9kZT0hMSx0aGlzLmVkaXRpbmdDaGFuZ2U9''@;'; + put 'put ''bmV3IGFyKCExKX1nZXQgZWRpdGluZygpe3JldHVybiB0aGlzLmVkaXRhYmxlJiZ0aGlzLl9lZGl0TW9kZX1zZXQgZWRpdGluZyhoKXt0aGlzLmVkaXRhYmxlJiYodGhpcy5fZWRpdE1vZGU9aCx0aGlzLmVkaXRpbmdDaGFuZ2UuZW1pdChoKSxofHx0aGlzLnNhdmUuZW1pdChudWxsKSl9fXJl''@;'; + put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItc3RhY2stdmlldyJdXSxvdXRwdXRzOntzYXZlOiJjbHJTdGFja1NhdmUifSxuZ0NvbnRlbnRTZWxlY3RvcnM6R2NlLGRlY2xzOjMsdmFy''@;'; + put 'put ''czowLGNvbnN0czpbWzEsInN0YWNrLXZpZXciXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChUMSksTmkoMCksaXQoMSwiZGl2IiwwKSxOaSgyLDEpLHN0KCkpfSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9Il19KSxkfSkoKSxWT2U9KCgpPT57Y2xh''@;'; + put 'put ''c3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKEl5KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLG5kLFRzLFVBZV1dfSksZH0pKCksZ1M9KCgp''@;'; + put 'put ''PT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuc2VsZWN0YWJsZT0hMSx0aGlzLmVhZ2VyPSEwLHRoaXMuY2hpbGRyZW5GZXRjaGVkPW5ldyAkZX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0''@;'; + put 'put ''b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgcHllPXtwcm92aWRlOmdTLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gak9lKGQpe3JldHVybiBkfHxuZXcgZ1N9LGRlcHM6W1tuZXcgbWYsbmV3IEw0LGdTXV19O2xldCBneWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuZmVh''@;'; + put 'put ''dHVyZXNTZXJ2aWNlPWgsdGhpcy5leHBhbmRTZXJ2aWNlPXYsdiYmKHRoaXMuc3Vic2NyaXB0aW9uPXRoaXMuZXhwYW5kU2VydmljZS5leHBhbmRDaGFuZ2Uuc3Vic2NyaWJlKHk9PnsheSYmdGhpcy5wYXJlbnQmJiF0aGlzLmZlYXR1cmVzU2VydmljZS5lYWdlciYmdGhpcy5mZWF0dXJlc1Nl''@;'; + put 'put ''cnZpY2UucmVjdXJzaW9uJiZ0aGlzLnBhcmVudC5jbGVhckNoaWxkcmVuKCl9KSl9c2hvdWxkUmVuZGVyKCl7cmV0dXJuIHRoaXMuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbiYmKHRoaXMuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyfHwhdGhpcy5leHBhbmRTZXJ2aWNlfHx0aGlzLmV4cGFuZFNl''@;'; + put 'put ''cnZpY2UuZXhwYW5kZWQpfWdldENvbnRleHQoaCl7cmV0dXJueyRpbXBsaWNpdDpoLm1vZGVsLGNsck1vZGVsOmh9fW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb24mJnRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXty''@;'; + put 'put ''ZXR1cm4gbmV3KGh8fGQpKFh0KGdTKSxYdChuMSw4KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1yZWN1cnNpdmUtY2hpbGRyZW4iXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJnppKCJyb2xlIiwiZ3JvdXAiKX0saW5wdXRz''@;'; + put 'put ''OntwYXJlbnQ6InBhcmVudCIsY2hpbGRyZW46ImNoaWxkcmVuIn0sZGVjbHM6MSx2YXJzOjEsY29uc3RzOltbNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbNCwibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgs''@;'; + put 'put ''dil7MSZoJiZybigwLFFjZSwyLDEsIm5nLWNvbnRhaW5lciIsMCksMiZoJiZUdCgibmdJZiIsdi5zaG91bGRSZW5kZXIoKSl9LGRlcGVuZGVuY2llczpbVm8sWnMsUWRdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpO3ZhciBrdT0oKCk9PihmdW5jdGlvbihkKXtkW2QuVU5TRUxFQ1RFRD0wXT0i''@;'; + put 'put ''VU5TRUxFQ1RFRCIsZFtkLlNFTEVDVEVEPTFdPSJTRUxFQ1RFRCIsZFtkLklOREVURVJNSU5BVEU9Ml09IklOREVURVJNSU5BVEUifShrdXx8KGt1PXt9KSksa3UpKSgpO2NsYXNzIG15ZXtjb25zdHJ1Y3Rvcigpe3RoaXMuc2VsZWN0ZWQ9bmV3IGNzKGt1LlVOU0VMRUNURUQpLHRoaXMuX2xv''@;'; + put 'put ''YWRpbmc9ITEsdGhpcy5sb2FkaW5nJD1uZXcgY3MoITEpfWdldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuX2xvYWRpbmd9c2V0IGxvYWRpbmcoZyl7dGhpcy5fbG9hZGluZz1nLHRoaXMubG9hZGluZyQubmV4dChnKX1kZXN0cm95KCl7dGhpcy5zZWxlY3RlZC5jb21wbGV0ZSgpfXNldFNlbGVj''@;'; + put 'put ''dGVkKGcsaCx2KXtnIT09dGhpcy5zZWxlY3RlZC52YWx1ZSYmKHRoaXMuc2VsZWN0ZWQubmV4dChnKSx2JiZnIT09a3UuSU5ERVRFUk1JTkFURSYmdGhpcy5jaGlsZHJlbiYmdGhpcy5jaGlsZHJlbi5mb3JFYWNoKHk9Pnkuc2V0U2VsZWN0ZWQoZywhMSwhMCkpLGgmJnRoaXMucGFyZW50JiZ0''@;'; + put 'put ''aGlzLnBhcmVudC5fdXBkYXRlU2VsZWN0aW9uRnJvbUNoaWxkcmVuKCkpfXRvZ2dsZVNlbGVjdGlvbihnKXt0aGlzLnNldFNlbGVjdGVkKHRoaXMuc2VsZWN0ZWQudmFsdWU9PT1rdS5TRUxFQ1RFRD9rdS5VTlNFTEVDVEVEOmt1LlNFTEVDVEVELCEwLGcpfWNvbXB1dGVTZWxlY3Rpb25TdGF0''@;'; + put 'put ''ZUZyb21DaGlsZHJlbigpe2xldCBnPSExLGg9ITE7Zm9yKGNvbnN0IHYgb2YgdGhpcy5jaGlsZHJlbilzd2l0Y2godi5zZWxlY3RlZC52YWx1ZSl7Y2FzZSBrdS5JTkRFVEVSTUlOQVRFOnJldHVybiBrdS5JTkRFVEVSTUlOQVRFO2Nhc2Uga3UuU0VMRUNURUQ6aWYoZz0hMCxoKXJldHVybiBr''@;'; + put 'put ''dS5JTkRFVEVSTUlOQVRFO2JyZWFrO2RlZmF1bHQ6aWYoaD0hMCxnKXJldHVybiBrdS5JTkRFVEVSTUlOQVRFfXJldHVybiBnP2g/a3UuVU5TRUxFQ1RFRDprdS5TRUxFQ1RFRDprdS5VTlNFTEVDVEVEfV91cGRhdGVTZWxlY3Rpb25Gcm9tQ2hpbGRyZW4oKXtjb25zdCBnPXRoaXMuY29tcHV0''@;'; + put 'put ''ZVNlbGVjdGlvblN0YXRlRnJvbUNoaWxkcmVuKCk7ZyE9PXRoaXMuc2VsZWN0ZWQudmFsdWUmJih0aGlzLnNlbGVjdGVkLm5leHQoZyksdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50Ll91cGRhdGVTZWxlY3Rpb25Gcm9tQ2hpbGRyZW4oKSl9fWNsYXNzIHdxIGV4dGVuZHMgbXlle2NvbnN0cnVj''@;'; + put 'put ''dG9yKGcsaCx2LHkpe3N1cGVyKCksdGhpcy5nZXRDaGlsZHJlbj12LHRoaXMuZmVhdHVyZXNTZXJ2aWNlPXksdGhpcy5jaGlsZHJlbkZldGNoZWQ9ITEsdGhpcy5fY2hpbGRyZW49W10sdGhpcy5tb2RlbD1nLHRoaXMucGFyZW50PWh9Y2xlYXJDaGlsZHJlbigpe3RoaXMuX2NoaWxkcmVuLmZv''@;'; + put 'put ''ckVhY2goZz0+Zy5kZXN0cm95KCkpLGRlbGV0ZSB0aGlzLl9jaGlsZHJlbix0aGlzLmNoaWxkcmVuRmV0Y2hlZD0hMX1mZXRjaENoaWxkcmVuKCl7aWYodGhpcy5jaGlsZHJlbkZldGNoZWQpcmV0dXJuO2NvbnN0IGc9dGhpcy5nZXRDaGlsZHJlbih0aGlzLm1vZGVsKTshZnVuY3Rpb24gWk9l''@;'; + put 'put ''KGQpe3JldHVybiBkJiYiZnVuY3Rpb24iPT10eXBlb2YgZC50aGVufShnKT9fWChnKT8odGhpcy5sb2FkaW5nPSEwLHRoaXMuc3Vic2NyaXB0aW9uPWcuc3Vic2NyaWJlKGg9Pnt0aGlzLl9jaGlsZHJlbj10aGlzLndyYXBDaGlsZHJlbihoKSx0aGlzLmxvYWRpbmc9ITF9KSk6dGhpcy5fY2hp''@;'; + put 'put ''bGRyZW49Zz90aGlzLndyYXBDaGlsZHJlbihnKTpbXToodGhpcy5sb2FkaW5nPSEwLGcudGhlbihoPT57dGhpcy5fY2hpbGRyZW49dGhpcy53cmFwQ2hpbGRyZW4oaCksdGhpcy5sb2FkaW5nPSExfSkpLHRoaXMuY2hpbGRyZW5GZXRjaGVkPSEwLHRoaXMuZmVhdHVyZXNTZXJ2aWNlJiZ0aGlz''@;'; + put 'put ''LmZlYXR1cmVzU2VydmljZS5jaGlsZHJlbkZldGNoZWQubmV4dCgpfXdyYXBDaGlsZHJlbihnKXtyZXR1cm4gZy5tYXAoaD0+bmV3IHdxKGgsdGhpcyx0aGlzLmdldENoaWxkcmVuLHRoaXMuZmVhdHVyZXNTZXJ2aWNlKSl9Z2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMuZmV0Y2hDaGlsZHJl''@;'; + put 'put ''bigpLHRoaXMuX2NoaWxkcmVufXNldCBjaGlsZHJlbihnKXt0aGlzLl9jaGlsZHJlbj1nfWRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbiYmdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSxzdXBlci5kZXN0cm95KCl9fWxldCB2eWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvciho''@;'; + put 'put ''LHYseSl7dGhpcy50ZW1wbGF0ZT1oLHRoaXMuZmVhdHVyZXNTZXJ2aWNlPXYsdGhpcy5jZHI9eX1uZ09uQ2hhbmdlcygpe2xldCBoO2g9QXJyYXkuaXNBcnJheSh0aGlzLm5vZGVzKT90aGlzLm5vZGVzLm1hcCh2PT5uZXcgd3EodixudWxsLHRoaXMuZ2V0Q2hpbGRyZW4sdGhpcy5mZWF0dXJl''@;'; + put 'put ''c1NlcnZpY2UpKTpbbmV3IHdxKHRoaXMubm9kZXMsbnVsbCx0aGlzLmdldENoaWxkcmVuLHRoaXMuZmVhdHVyZXNTZXJ2aWNlKV0sdGhpcy5jaGlsZHJlbkZldGNoU3Vic2NyaXB0aW9ufHwodGhpcy5jaGlsZHJlbkZldGNoU3Vic2NyaXB0aW9uPXRoaXMuZmVhdHVyZXNTZXJ2aWNlLmNoaWxk''@;'; + put 'put ''cmVuRmV0Y2hlZC5waXBlKGtEKDApKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCl9KSksdGhpcy5mZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uPXt0ZW1wbGF0ZTp0aGlzLnRlbXBsYXRlLHJvb3Q6aH19bmdPbkRlc3Ryb3koKXt0aGlzLmNoaWxkcmVuRmV0Y2hTdWJz''@;'; + put 'put ''Y3JpcHRpb24mJnRoaXMuY2hpbGRyZW5GZXRjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChxciksWHQoZ1MpLFh0KGQxKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIs''@;'; + put 'put ''ImNsclJlY3Vyc2l2ZUZvciIsIiIsImNsclJlY3Vyc2l2ZUZvck9mIiwiIl1dLGlucHV0czp7bm9kZXM6WyJjbHJSZWN1cnNpdmVGb3JPZiIsIm5vZGVzIl0sZ2V0Q2hpbGRyZW46WyJjbHJSZWN1cnNpdmVGb3JHZXRDaGlsZHJlbiIsImdldENoaWxkcmVuIl19LGZlYXR1cmVzOltQMl19KSxk''@;'; + put 'put ''fSkoKSxxZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2ZvY3VzUmVxdWVzdD1uZXcgJGUsdGhpcy5fZm9jdXNDaGFuZ2U9bmV3ICRlfWdldCBmb2N1c1JlcXVlc3QoKXtyZXR1cm4gdGhpcy5fZm9jdXNSZXF1ZXN0LmFzT2JzZXJ2YWJsZSgpfWdldCBmb2N1c0NoYW5nZSgp''@;'; + put 'put ''e3JldHVybiB0aGlzLl9mb2N1c0NoYW5nZS5hc09ic2VydmFibGUoKX1maW5kU2libGluZ3MoaCl7cmV0dXJuIGgucGFyZW50P2gucGFyZW50LmNoaWxkcmVuOnRoaXMucm9vdE5vZGVNb2RlbHN9ZmluZExhc3RWaXNpYmxlSW5Ob2RlKGgpe2lmKCFoKXJldHVybiBudWxsO2lmKGguZXhwYW5k''@;'; + put 'put ''ZWQmJmguY2hpbGRyZW4ubGVuZ3RoPjApe2NvbnN0IHY9aC5jaGlsZHJlbjtyZXR1cm4gdGhpcy5maW5kTGFzdFZpc2libGVJbk5vZGUodlt2Lmxlbmd0aC0xXSl9cmV0dXJuIGh9ZmluZE5leHRGb2N1c2FibGUoaCl7aWYoIWgpcmV0dXJuIG51bGw7Y29uc3Qgdj10aGlzLmZpbmRTaWJsaW5n''@;'; + put 'put ''cyhoKSx5PXYuaW5kZXhPZihoKTtyZXR1cm4geTx2Lmxlbmd0aC0xP3ZbeSsxXTp5PT09di5sZW5ndGgtMT90aGlzLmZpbmROZXh0Rm9jdXNhYmxlKGgucGFyZW50KTpudWxsfWZpbmRMYXN0VmlzaWJsZUluVHJlZSgpe3JldHVybiB0aGlzLmZpbmRMYXN0VmlzaWJsZUluTm9kZSh0aGlzLnJv''@;'; + put 'put ''b3ROb2RlTW9kZWxzJiZ0aGlzLnJvb3ROb2RlTW9kZWxzLmxlbmd0aCYmdGhpcy5yb290Tm9kZU1vZGVsc1t0aGlzLnJvb3ROb2RlTW9kZWxzLmxlbmd0aC0xXSl9ZmluZE5vZGVBYm92ZShoKXtpZighaClyZXR1cm4gbnVsbDtjb25zdCB2PXRoaXMuZmluZFNpYmxpbmdzKGgpLHk9di5pbmRl''@;'; + put 'put ''eE9mKGgpO3JldHVybiAwPT09eT9oLnBhcmVudDp5PjA/dGhpcy5maW5kTGFzdFZpc2libGVJbk5vZGUodlt5LTFdKTpudWxsfWZpbmROb2RlQmVsb3coaCl7cmV0dXJuIGg/aC5leHBhbmRlZCYmaC5jaGlsZHJlbi5sZW5ndGg+MD9oLmNoaWxkcmVuWzBdOnRoaXMuZmluZE5leHRGb2N1c2Fi''@;'; + put 'put ''bGUoaCk6bnVsbH1maW5kRGVzY2VuZGVudE5vZGVTdGFydHNXaXRoKGgsdil7aWYodi5leHBhbmRlZCYmdi5jaGlsZHJlbi5sZW5ndGg+MClmb3IoY29uc3QgeSBvZiB2LmNoaWxkcmVuKXtjb25zdCBDPXRoaXMuZmluZE5vZGVTdGFydHNXaXRoKGgseSk7aWYoQylyZXR1cm4gQ31yZXR1cm4g''@;'; + put 'put ''bnVsbH1maW5kU2libGluZ05vZGVTdGFydHNXaXRoKGgsdil7Y29uc3QgeT10aGlzLmZpbmRTaWJsaW5ncyh2KTtmb3IobGV0IEk9eS5pbmRleE9mKHYpKzE7STx5Lmxlbmd0aDtJKyspe2NvbnN0IHVlPXRoaXMuZmluZE5vZGVTdGFydHNXaXRoKGgseVtJXSk7aWYodWUpcmV0dXJuIHVlfXJl''@;'; + put 'put ''dHVybiBudWxsfWZpbmRSb290Tm9kZVN0YXJ0c1dpdGgoaCx2KXtmb3IoY29uc3QgeSBvZiB0aGlzLnJvb3ROb2RlTW9kZWxzKXtpZih2LnBhcmVudCYmdi5wYXJlbnQ9PT15KWNvbnRpbnVlO2NvbnN0IEM9dGhpcy5maW5kTm9kZVN0YXJ0c1dpdGgoaCx5KTtpZihDKXJldHVybiBDfXJldHVy''@;'; + put 'put ''biBudWxsfWZpbmROb2RlU3RhcnRzV2l0aChoLHYpe3JldHVybiB2P3YudGV4dENvbnRlbnQuc3RhcnRzV2l0aChoKT92OnRoaXMuZmluZERlc2NlbmRlbnROb2RlU3RhcnRzV2l0aChoLHYpOm51bGx9ZmluZENsb3Nlc3ROb2RlU3RhcnRzV2l0aChoLHYpe2lmKCF2KXJldHVybiBudWxsO2Nv''@;'; + put 'put ''bnN0IHk9dGhpcy5maW5kRGVzY2VuZGVudE5vZGVTdGFydHNXaXRoKGgsdik7aWYoeSlyZXR1cm4geTtjb25zdCBDPXRoaXMuZmluZFNpYmxpbmdOb2RlU3RhcnRzV2l0aChoLHYpO3JldHVybiBDfHwodGhpcy5maW5kUm9vdE5vZGVTdGFydHNXaXRoKGgsdil8fHRoaXMuZmluZE5vZGVTdGFy''@;'; + put 'put ''dHNXaXRoKGgsdi5wYXJlbnQpKX1mb2N1c05vZGUoaCl7aCYmdGhpcy5fZm9jdXNSZXF1ZXN0Lm5leHQoaC5ub2RlSWQpfWJyb2FkY2FzdEZvY3VzZWROb2RlKGgpe3RoaXMuZm9jdXNlZE5vZGVJZCE9PWgmJih0aGlzLmZvY3VzZWROb2RlSWQ9aCx0aGlzLl9mb2N1c0NoYW5nZS5uZXh0KGgp''@;'; + put 'put ''KX1mb2N1c1BhcmVudChoKXtoJiZ0aGlzLmZvY3VzTm9kZShoLnBhcmVudCl9Zm9jdXNGaXJzdFZpc2libGVOb2RlKCl7dGhpcy5mb2N1c05vZGUodGhpcy5yb290Tm9kZU1vZGVscyYmdGhpcy5yb290Tm9kZU1vZGVsc1swXSl9Zm9jdXNMYXN0VmlzaWJsZU5vZGUoKXt0aGlzLmZvY3VzTm9k''@;'; + put 'put ''ZSh0aGlzLmZpbmRMYXN0VmlzaWJsZUluVHJlZSgpKX1mb2N1c05vZGVBYm92ZShoKXt0aGlzLmZvY3VzTm9kZSh0aGlzLmZpbmROb2RlQWJvdmUoaCkpfWZvY3VzTm9kZUJlbG93KGgpe3RoaXMuZm9jdXNOb2RlKHRoaXMuZmluZE5vZGVCZWxvdyhoKSl9Zm9jdXNOb2RlU3RhcnRzV2l0aCho''@;'; + put 'put ''LHYpe3RoaXMuZm9jdXNOb2RlKHRoaXMuZmluZENsb3Nlc3ROb2RlU3RhcnRzV2l0aChoLHYpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3Mg''@;'; + put 'put ''ek9lIGV4dGVuZHMgbXlle2NvbnN0cnVjdG9yKGcpe3N1cGVyKCksdGhpcy5wYXJlbnQ9ZyxnJiZnLl9hZGRDaGlsZCh0aGlzKSx0aGlzLmNoaWxkcmVuPVtdfV9hZGRDaGlsZChnKXt0aGlzLmNoaWxkcmVuLnB1c2goZyl9X3JlbW92ZUNoaWxkKGcpe2NvbnN0IGg9dGhpcy5jaGlsZHJlbi5p''@;'; + put 'put ''bmRleE9mKGcpO2g+LTEmJnRoaXMuY2hpbGRyZW4uc3BsaWNlKGgsMSl9ZGVzdHJveSgpe3RoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5fcmVtb3ZlQ2hpbGQodGhpcyksc3VwZXIuZGVzdHJveSgpfX1sZXQgWkw9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmVsPWh9YWN0aXZh''@;'; + put 'put ''dGUoKXt0aGlzLmVsLm5hdGl2ZUVsZW1lbnQmJnRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGljayYmdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsaWNrKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBl''@;'; + put 'put ''OmQsc2VsZWN0b3JzOltbIiIsOCwiY2xyLXRyZWVub2RlLWxpbmsiXV19KSxkfSkoKSxfZz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqLHVlLF9lLEJlKXt0aGlzLm5vZGVJZD1oLHRoaXMucGxhdGZvcm1JZD12LHRoaXMuZm9yVHlwZUFoZWFkUHJvdmlkZXI9Qyx0aGlz''@;'; + put 'put ''LmZlYXR1cmVzU2VydmljZT1JLHRoaXMuZXhwYW5kU2VydmljZT1qLHRoaXMuY29tbW9uU3RyaW5ncz11ZSx0aGlzLmZvY3VzTWFuYWdlcj1fZSx0aGlzLlNUQVRFUz1rdSx0aGlzLnNraXBFbWl0Q2hhbmdlPSExLHRoaXMuaXNNb2RlbExvYWRpbmc9ITEsdGhpcy50eXBlQWhlYWRLZXlFdmVu''@;'; + put 'put ''dD1uZXcgJGUsdGhpcy50eXBlQWhlYWRLZXlCdWZmZXI9IiIsdGhpcy5zZWxlY3RlZENoYW5nZT1uZXcgYXIoITEpLHRoaXMuZXhwYW5kZWRDaGFuZ2U9bmV3IGFyLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmNvbnRlbnRDb250YWluZXJUYWJpbmRleD0tMSx0aGlzLl9tb2RlbD10aGlz''@;'; + put 'put ''LmZlYXR1cmVzU2VydmljZS5yZWN1cnNpb24/QmUudmlldz9CZS52aWV3LmNvbnRleHQuY2xyTW9kZWw6QmUuX2xWaWV3WzhdLmNsck1vZGVsOm5ldyB6T2UoeT95Ll9tb2RlbDpudWxsKSx0aGlzLl9tb2RlbC5ub2RlSWQ9dGhpcy5ub2RlSWR9aXNFeHBhbmRhYmxlKCl7cmV0dXJuIHZvaWQg''@;'; + put 'put ''MCE9PXRoaXMuZXhwYW5kYWJsZT90aGlzLmV4cGFuZGFibGU6ISF0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kYWJsZXx8dGhpcy5pc1BhcmVudH1pc1NlbGVjdGFibGUoKXtyZXR1cm4gdGhpcy5mZWF0dXJlc1NlcnZpY2Uuc2VsZWN0YWJsZX1nZXQgc2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5f''@;'; + put 'put ''bW9kZWwuc2VsZWN0ZWQudmFsdWV9c2V0IHNlbGVjdGVkKGgpe3RoaXMuZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGU9ITAsbnVsbD09aCYmKGg9a3UuVU5TRUxFQ1RFRCksImJvb2xlYW4iPT10eXBlb2YgaCYmKGg9aD9rdS5TRUxFQ1RFRDprdS5VTlNFTEVDVEVEKSx0aGlzLnNraXBFbWl0''@;'; + put 'put ''Q2hhbmdlPSEwLHRoaXMuX21vZGVsLnNldFNlbGVjdGVkKGgsdGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXIsdGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXIpLHRoaXMuc2tpcEVtaXRDaGFuZ2U9ITF9Z2V0IGFyaWFTZWxlY3RlZCgpe3JldHVybiB0aGlzLmlzU2VsZWN0YWJsZSgpP3RoaXMu''@;'; + put 'put ''X21vZGVsLnNlbGVjdGVkLnZhbHVlPT09a3UuU0VMRUNURUQ6bnVsbH1nZXQgZXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkfXNldCBleHBhbmRlZChoKXt0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ9aH1uZ09uSW5pdCgpe3RoaXMuX21vZGVsLmV4cGFu''@;'; + put 'put ''ZGVkPXRoaXMuZXhwYW5kZWQsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5fbW9kZWwuc2VsZWN0ZWQucGlwZShMMigoKT0+IXRoaXMuc2tpcEVtaXRDaGFuZ2UpKS5zdWJzY3JpYmUoaD0+e3RoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChoKX0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVz''@;'; + put 'put ''aCh0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kQ2hhbmdlLnN1YnNjcmliZShoPT57dGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KGgpLHRoaXMuX21vZGVsLmV4cGFuZGVkPWh9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5mb2N1c01hbmFnZXIuZm9jdXNSZXF1ZXN0LnN1YnNjcmli''@;'; + put 'put ''ZShoPT57dGhpcy5ub2RlSWQ9PT1oJiZ0aGlzLmZvY3VzVHJlZU5vZGUoKX0pLHRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzQ2hhbmdlLnN1YnNjcmliZShoPT57dGhpcy5jaGVja1RhYkluZGV4KGgpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuX21vZGVsLmxvYWRpbmckLnBpcGUo''@;'; + put 'put ''a0QoMCkpLnN1YnNjcmliZShoPT50aGlzLmlzTW9kZWxMb2FkaW5nPWgpKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLmZvclR5cGVBaGVhZFByb3ZpZGVyJiYodGhpcy5fbW9kZWwudGV4dENvbnRlbnQ9dGhpcy5mb3JUeXBlQWhlYWRQcm92aWRlci50ZXh0Q29udGVudCx0aGlzLnN1YnNj''@;'; + put 'put ''cmlwdGlvbnMucHVzaCh0aGlzLnR5cGVBaGVhZEtleUV2ZW50LnBpcGUoa0QoMjAwKSkuc3Vic2NyaWJlKGg9Pnt0aGlzLmZvY3VzTWFuYWdlci5mb2N1c05vZGVTdGFydHNXaXRoKGgsdGhpcy5fbW9kZWwpLHRoaXMudHlwZUFoZWFkS2V5QnVmZmVyPSIifSkpKX1uZ09uRGVzdHJveSgpe3Ro''@;'; + put 'put ''aXMuX21vZGVsLmRlc3Ryb3koKSx0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWdldCB0cmVlTm9kZUxpbmsoKXtyZXR1cm4gdGhpcy50cmVlTm9kZUxpbmtMaXN0JiZ0aGlzLnRyZWVOb2RlTGlua0xpc3QuZmlyc3R9c2V0VGFiSW5kZXgoaCl7dGhpcy5j''@;'; + put 'put ''b250ZW50Q29udGFpbmVyVGFiaW5kZXg9aCx0aGlzLmNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IixoKX1jaGVja1RhYkluZGV4KGgpe1NsKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMubm9kZUlkIT09aCYmLTEhPT10aGlzLmNvbnRlbnRDb250''@;'; + put 'put ''YWluZXJUYWJpbmRleCYmdGhpcy5zZXRUYWJJbmRleCgtMSl9Zm9jdXNUcmVlTm9kZSgpe2NvbnN0IGg9dGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7U2wodGhpcy5wbGF0Zm9ybUlkKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWgmJih0aGlzLnNldFRhYkluZGV4KDAp''@;'; + put 'put ''LGguZm9jdXMoKSxoLnNjcm9sbEludG9WaWV3KHtibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In0pKX1icm9hZGNhc3RGb2N1c09uQ29udGFpbmVyKCl7dGhpcy5mb2N1c01hbmFnZXIuYnJvYWRjYXN0Rm9jdXNlZE5vZGUodGhpcy5ub2RlSWQpfW9uS2V5RG93bihoKXtzd2l0Y2go''@;'; + put 'put ''TXAoaCksaVMoaC5rZXkpKXtjYXNlIE0wLkFycm93VXA6dGhpcy5mb2N1c01hbmFnZXIuZm9jdXNOb2RlQWJvdmUodGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2UgTTAuQXJyb3dEb3duOnRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzTm9kZUJlbG93KHRoaXMuX21vZGVsKTticmVhaztjYXNlIE0wLkFy''@;'; + put 'put ''cm93UmlnaHQ6dGhpcy5leHBhbmRPckZvY3VzRmlyc3RDaGlsZCgpO2JyZWFrO2Nhc2UgTTAuQXJyb3dMZWZ0OnRoaXMuY29sbGFwc2VPckZvY3VzUGFyZW50KCk7YnJlYWs7Y2FzZSBNMC5Ib21lOmgucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTWFuYWdlci5mb2N1c0ZpcnN0VmlzaWJs''@;'; + put 'put ''ZU5vZGUoKTticmVhaztjYXNlIE0wLkVuZDpoLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNMYXN0VmlzaWJsZU5vZGUoKTticmVhaztjYXNlIE0wLkVudGVyOnRoaXMudG9nZ2xlRXhwYW5kT3JUcmlnZ2VyRGVmYXVsdCgpO2JyZWFrO2Nhc2UgTTAuU3BhY2U6Y2Fz''@;'; + put 'put ''ZSBNMC5TcGFjZWJhcjpoLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVFeHBhbmRPclRyaWdnZXJEZWZhdWx0KCk7YnJlYWs7ZGVmYXVsdDppZih0aGlzLl9tb2RlbC50ZXh0Q29udGVudCYmZnVuY3Rpb24gbHcoZCl7Y29uc3QgZz1kLmtleTtyZXR1cm4gZy50b0xvd2VyQ2FzZSgpIT09''@;'; + put 'put ''Zy50b1VwcGVyQ2FzZSgpfHxnPj0iMCImJmc8PSI5In0oaCkpcmV0dXJuIHRoaXMudHlwZUFoZWFkS2V5QnVmZmVyKz1oLmtleSx2b2lkIHRoaXMudHlwZUFoZWFkS2V5RXZlbnQubmV4dCh0aGlzLnR5cGVBaGVhZEtleUJ1ZmZlcil9dGhpcy50eXBlQWhlYWRLZXlCdWZmZXI9IiJ9Z2V0IGlz''@;'; + put 'put ''UGFyZW50KCl7cmV0dXJuIHRoaXMuX21vZGVsLmNoaWxkcmVuJiZ0aGlzLl9tb2RlbC5jaGlsZHJlbi5sZW5ndGg+MH10b2dnbGVFeHBhbmRPclRyaWdnZXJEZWZhdWx0KCl7dGhpcy5pc0V4cGFuZGFibGUoKSYmIXRoaXMuaXNTZWxlY3RhYmxlKCk/dGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFu''@;'; + put 'put ''ZGVkPSF0aGlzLmV4cGFuZGVkOnRoaXMudHJpZ2dlckRlZmF1bHRBY3Rpb24oKX1leHBhbmRPckZvY3VzRmlyc3RDaGlsZCgpe3RoaXMuZXhwYW5kZWQ/dGhpcy5pc1BhcmVudCYmdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNOb2RlQmVsb3codGhpcy5fbW9kZWwpOnRoaXMuaXNFeHBhbmRhYmxl''@;'; + put 'put ''KCkmJih0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ9ITApfWNvbGxhcHNlT3JGb2N1c1BhcmVudCgpe3RoaXMuZXhwYW5kZWQ/dGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkPSExOnRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzUGFyZW50KHRoaXMuX21vZGVsKX10cmlnZ2VyRGVmYXVsdEFj''@;'; + put 'put ''dGlvbigpe3RoaXMudHJlZU5vZGVMaW5rP3RoaXMudHJlZU5vZGVMaW5rLmFjdGl2YXRlKCk6dGhpcy5pc1NlbGVjdGFibGUoKSYmdGhpcy5fbW9kZWwudG9nZ2xlU2VsZWN0aW9uKHRoaXMuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3Jl''@;'; + put 'put ''dHVybiBuZXcoaHx8ZCkoWHQoeTIpLFh0KEQyKSxYdChkLDEyKSxYdCh4T2UsMTApLFh0KGdTKSxYdChuMSksWHQobnMpLFh0KHFmZSksWHQoa3MpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXRyZWUtbm9kZSJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbiho''@;'; + put 'put ''LHYseSl7aWYoMSZoJiZ4byh5LFpMLDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYudHJlZU5vZGVMaW5rTGlzdD1DKX19LHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmdm8oTyQsNyxibyksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5jb250ZW50Q29udGFpbmVyPXkuZmly''@;'; + put 'put ''c3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItdHJlZS1ub2RlIiwhMCl9LGlucHV0czp7c2VsZWN0ZWQ6WyJjbHJTZWxlY3RlZCIsInNlbGVjdGVkIl0sZXhwYW5kYWJsZTpbImNsckV4cGFuZGFibGUiLCJleHBhbmRhYmxlIl0sZXhwYW5k''@;'; + put 'put ''ZWQ6WyJjbHJFeHBhbmRlZCIsImV4cGFuZGVkIl19LG91dHB1dHM6e3NlbGVjdGVkQ2hhbmdlOiJjbHJTZWxlY3RlZENoYW5nZSIsZXhwYW5kZWRDaGFuZ2U6ImNsckV4cGFuZGVkQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFtPYyxweWUsbjEse3Byb3ZpZGU6UGYsdXNlRXhpc3Rpbmc6bjF9XSld''@;'; + put 'put ''LG5nQ29udGVudFNlbGVjdG9yczplZixkZWNsczoxMix2YXJzOjksY29uc3RzOltbInJvbGUiLCJ0cmVlaXRlbSIsInRhYmluZGV4IiwiLTEiLDEsImNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXIiLDMsImtleWRvd24iLCJmb2N1cyJdLFsiY29udGVudENvbnRhaW5lciIsIiJdLFsi''@;'; + put 'put ''YXJpYS1oaWRkZW4iLCJ0cnVlIiwidHlwZSIsImJ1dHRvbiIsInRhYmluZGV4IiwiLTEiLCJjbGFzcyIsImNsci10cmVlbm9kZS1jYXJldCIsMywiY2xpY2siLCJmb2N1cyIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdHJlZW5vZGUtc3Bpbm5lci1jb250YWluZXIiLDQsIm5nSWYiXSxbImNs''@;'; + put 'put ''YXNzIiwiY2xyLWNoZWNrYm94LXdyYXBwZXIgY2xyLXRyZWVub2RlLWNoZWNrYm94Iiw0LCJuZ0lmIl0sWzEsImNsci10cmVlbm9kZS1jb250ZW50IiwzLCJtb3VzZWRvd24iXSxbImNsYXNzIiwiY2xyLXNyLW9ubHkiLDQsIm5nSWYiXSxbMSwiY2xyLXRyZWVub2RlLWNoaWxkcmVuIl0sWzMs''@;'; + put 'put ''InBhcmVudCJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwidHlwZSIsImJ1dHRvbiIsInRhYmluZGV4IiwiLTEiLDEsImNsci10cmVlbm9kZS1jYXJldCIsMywiY2xpY2siLCJmb2N1cyJdLFsic2hhcGUiLCJhbmdsZSIsMSwiY2xyLXRyZWVub2RlLWNhcmV0LWljb24iXSxbMSwiY2xyLXRyZWVu''@;'; + put 'put ''b2RlLXNwaW5uZXItY29udGFpbmVyIl0sWzEsImNsci10cmVlbm9kZS1zcGlubmVyIiwic3Bpbm5lciJdLFsxLCJjbHItY2hlY2tib3gtd3JhcHBlciIsImNsci10cmVlbm9kZS1jaGVja2JveCJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwidHlwZSIsImNoZWNrYm94IiwidGFiaW5kZXgiLCIt''@;'; + put 'put ''MSIsMSwiY2xyLWNoZWNrYm94IiwzLCJpZCIsImNoZWNrZWQiLCJpbmRldGVybWluYXRlIiwiY2hhbmdlIiwiZm9jdXMiXSxbMSwiY2xyLWNvbnRyb2wtbGFiZWwiLDMsImZvciJdLFsxLCJjbHItc3Itb25seSJdLFs0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAo''@;'; + put 'put ''UiQpLGl0KDAsImRpdiIsMCwxKSxZbigia2V5ZG93biIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25LZXlEb3duKEMpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiB2LmJyb2FkY2FzdEZvY3VzT25Db250YWluZXIoKX0pLHJuKDIsSmNlLDIsMSwiYnV0dG9uIiwyKSxybigzLHQxLDIsMCwi''@;'; + put 'put ''ZGl2IiwzKSxybig0LHU5LDMsNCwiZGl2Iiw0KSxpdCg1LCJkaXYiLDUpLFluKCJtb3VzZWRvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZm9jdXNUcmVlTm9kZSgpfSksTmkoNikscm4oNyxLY2UsMywyLCJkaXYiLDYpLHN0KCkoKSxpdCg4LCJkaXYiLDcpLE5pKDksMSksTmkoMTAsMiksQ3Io''@;'; + put 'put ''MTEsImNsci1yZWN1cnNpdmUtY2hpbGRyZW4iLDgpLHN0KCkpLDImaCYmKHppKCJhcmlhLWV4cGFuZGVkIix2LmlzRXhwYW5kYWJsZSgpP3YuZXhwYW5kZWQ6bnVsbCkoImFyaWEtc2VsZWN0ZWQiLHYuYXJpYVNlbGVjdGVkKSx1dCgyKSxUdCgibmdJZiIsdi5pc0V4cGFuZGFibGUoKSYmIXYu''@;'; + put 'put ''aXNNb2RlbExvYWRpbmcmJiF2LmV4cGFuZFNlcnZpY2UubG9hZGluZyksdXQoMSksVHQoIm5nSWYiLHYuZXhwYW5kU2VydmljZS5sb2FkaW5nfHx2LmlzTW9kZWxMb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsdi5mZWF0dXJlc1NlcnZpY2Uuc2VsZWN0YWJsZSksdXQoMyksVHQoIm5nSWYiLHYu''@;'; + put 'put ''ZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGUpLHV0KDEpLFR0KCJAdG9nZ2xlQ2hpbGRyZW5BbmltIix2LmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ/ImV4cGFuZGVkIjoiY29sbGFwc2VkIiksemkoInJvbGUiLHYuaXNFeHBhbmRhYmxlKCkmJiF2LmZlYXR1cmVzU2VydmljZS5yZWN1cnNpb24/''@;'; + put 'put ''Imdyb3VwIjpudWxsKSx1dCgzKSxUdCgicGFyZW50Iix2Ll9tb2RlbCkpfSxkZXBlbmRlbmNpZXM6W2d5ZSxWbyxab10sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbJGgoInRvZ2dsZUNoaWxkcmVuQW5pbSIsW2J1KCJjb2xsYXBzZWQgPT4gZXhwYW5kZWQiLFt5bCh7aGVpZ2h0''@;'; + put 'put ''OjB9KSxEYygyMDAseWwoe2hlaWdodDoiKiJ9KSldKSxidSgiZXhwYW5kZWQgPT4gY29sbGFwc2VkIixbeWwoe2hlaWdodDoiKiJ9KSxEYygyMDAseWwoe2hlaWdodDowfSkpXSksWjcoImV4cGFuZGVkIix5bCh7aGVpZ2h0OiIqIiwib3ZlcmZsb3cteSI6InZpc2libGUifSkpLFo3KCJjb2xs''@;'; + put 'put ''YXBzZWQiLHlsKHtoZWlnaHQ6MH0pKV0pXX19KSxkfSkoKSx5OT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix7bmF0aXZlRWxlbWVudDp5fSxDLEkpe3RoaXMuZmVhdHVyZXNTZXJ2aWNlPWgsdGhpcy5mb2N1c01hbmFnZXJTZXJ2aWNlPXYsdGhpcy5zdWJzY3JpcHRpb25zPVtdO2Nv''@;'; + put 'put ''bnN0IGo9SS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+dDgoeSwiZm9jdXNpbiIpLnN1YnNjcmliZSh1ZT0+e3VlLnRhcmdldD09PXkmJih0aGlzLmZvY3VzTWFuYWdlclNlcnZpY2UuZm9jdXNGaXJzdFZpc2libGVOb2RlKCksQy5yZW1vdmVBdHRyaWJ1dGUoeSwidGFiaW5kZXgiKSl9KSk7dGhp''@;'; + put 'put ''cy5zdWJzY3JpcHRpb25zLnB1c2goail9c2V0IGxhenkoaCl7dGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXI9IWh9Z2V0IGlzTXVsdGlTZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGUmJnRoaXMucm9vdE5vZGVzLmxlbmd0aD4wfW5nQWZ0ZXJDb250''@;'; + put 'put ''ZW50SW5pdCgpe3RoaXMuc2V0Um9vdE5vZGVzKCksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5yb290Tm9kZXMuY2hhbmdlcy5zdWJzY3JpYmUoKCk9Pnt0aGlzLnNldFJvb3ROb2RlcygpfSkpfXNldFJvb3ROb2Rlcygpe3RoaXMuZm9jdXNNYW5hZ2VyU2VydmljZS5yb290Tm9kZU1v''@;'; + put 'put ''ZGVscz10aGlzLnJvb3ROb2Rlcy5tYXAoaD0+aC5fbW9kZWwpLmZpbHRlcihoPT4haC5wYXJlbnQpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; + put 'put ''ZCkoWHQoZ1MpLFh0KHFmZSksWHQoYm8pLFh0KEdhKSxYdChfbCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItdHJlZSJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LF9nLDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYu''@;'; + put 'put ''cm9vdE5vZGVzPUMpfX0saG9zdEF0dHJzOlsidGFiaW5kZXgiLCIwIl0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJnppKCJyb2xlIiwidHJlZSIpKCJhcmlhLW11bHRpc2VsZWN0YWJsZSIsdi5pc011bHRpU2VsZWN0YWJsZSl9LGlucHV0czp7bGF6eTpbImNs''@;'; + put 'put ''ckxhenkiLCJsYXp5Il19LGZlYXR1cmVzOltobyhbcHllLHFmZV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6Mix2YXJzOjEsY29uc3RzOltbMywiY2hpbGRyZW4iLDQsIm5nSWYiXSxbMywiY2hpbGRyZW4iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDAp''@;'; + put 'put ''LHJuKDEsRWwsMSwxLCJjbHItcmVjdXJzaXZlLWNoaWxkcmVuIiwwKSksMiZoJiYodXQoMSksVHQoIm5nSWYiLHYuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbikpfSxkZXBlbmRlbmNpZXM6W2d5ZSxWb10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksWU9lPSgoKT0+e2NsYXNzIGR7Y29uc3Ry''@;'; + put 'put ''dWN0b3IoKXtmcy5hZGRJY29ucyhJeSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxUcyxSZmVdXX0pLGR9KSgpLFVPZT0oKCk9PntjbGFzcyBke31y''@;'; + put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltGT2UsVk9lLFlPZV19KSxkfSkoKTtjbGFzcyBBeWV7c3RhdGljIGxpbmtQYXJlbnQoZyxoLHYpe2cuZm9yRWFjaCh5''@;'; + put 'put ''PT55W3ZdPWgpfXN0YXRpYyBsaW5rVmVydGljYWwoZyxoPSEwKXtnLmZvckVhY2goKHYseSk9Pnt5PjAmJih2LnVwPWdbeS0xXSkseTxnLmxlbmd0aC0xJiYodi5kb3duPWdbeSsxXSl9KSxoJiZnLmxlbmd0aD4xJiYoZ1swXS51cD1nW2cubGVuZ3RoLTFdLGdbZy5sZW5ndGgtMV0uZG93bj1n''@;'; + put 'put ''WzBdKX19ZnVuY3Rpb24geXllKGQsZyxoKXtyZXR1cm4gRi5jcmVhdGUodj0+e2codik7Y29uc3QgeT1kLnN1YnNjcmliZSh2KTtyZXR1cm4oKT0+e3kudW5zdWJzY3JpYmUoKSxoJiZoKHYpfX0pfWxldCBlaGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksail7dGhpcy5p''@;'; + put 'put ''ZD1oLHRoaXMucmVuZGVyZXI9dix0aGlzLnBhcmVudD15LHRoaXMudG9nZ2xlU2VydmljZT1DLHRoaXMuZm9jdXNTZXJ2aWNlPUksdGhpcy5wbGF0Zm9ybUlkPWosdGhpcy5fdW5saXN0ZW5GdW5jcz1bXSx0aGlzLmZvY3VzQmFja09uVHJpZ2dlcj0hMSx0aGlzLnJlc2V0Q2hpbGRyZW4oKSx0''@;'; + put 'put ''aGlzLm1vdmVUb0ZpcnN0SXRlbVdoZW5PcGVuKCksdGhpcy5wYXJlbnR8fHRoaXMuaGFuZGxlUm9vdEZvY3VzKCl9bW92ZVRvRmlyc3RJdGVtV2hlbk9wZW4oKXtjb25zdCBoPXRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZSh2PT57diYmdGhpcy50b2dnbGVTZXJ2aWNl''@;'; + put 'put ''Lm9yaWdpbmFsRXZlbnQmJnNldFRpbWVvdXQoKCk9Pnt0aGlzLmZvY3VzU2VydmljZS5tb3ZlVG8odGhpcyksdGhpcy5mb2N1c1NlcnZpY2UubW92ZSh0aGlzLnBhcmVudD9xMS5SSUdIVDpxMS5ET1dOKX0pfSk7dGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKCgpPT5oLnVuc3Vic2NyaWJlKCkp''@;'; + put 'put ''fWhhbmRsZVJvb3RGb2N1cygpe2NvbnN0IGg9dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKHY9Pnt2fHwodGhpcy5mb2N1c1NlcnZpY2UucmVzZXQodGhpcyksdGhpcy5mb2N1c0JhY2tPblRyaWdnZXImJnRoaXMuZm9jdXMoKSksdGhpcy5mb2N1c0JhY2tPblRyaWdn''@;'; + put 'put ''ZXI9dn0pO3RoaXMuX3VubGlzdGVuRnVuY3MucHVzaCgoKT0+aC51bnN1YnNjcmliZSgpKX1nZXQgdHJpZ2dlcigpe3JldHVybiB0aGlzLl90cmlnZ2VyfXNldCB0cmlnZ2VyKGgpe3RoaXMuX3RyaWdnZXI9aCx0aGlzLnBhcmVudD90aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5k''@;'; + put 'put ''ZXJlci5saXN0ZW4oaCwia2V5ZG93bi5hcnJvd3JpZ2h0Iix2PT50aGlzLnRvZ2dsZVNlcnZpY2UudG9nZ2xlV2l0aEV2ZW50KHYpKSk6KHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihoLCJrZXlkb3duLmFycm93dXAiLHY9PnRoaXMudG9nZ2xlU2Vydmlj''@;'; + put 'put ''ZS50b2dnbGVXaXRoRXZlbnQodikpKSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi5hcnJvd2Rvd24iLHY9PnRoaXMudG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZlbnQodikpKSx0aGlzLmZvY3VzU2VydmljZS5saXN0ZW5Ub0Fycm93''@;'; + put 'put ''S2V5cyhoKSl9Z2V0IGNvbnRhaW5lcigpe3JldHVybiB0aGlzLl9jb250YWluZXJ9c2V0IGNvbnRhaW5lcihoKXt0aGlzLl9jb250YWluZXI9aCx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi50YWIiLHY9PnRoaXMudG9nZ2xlU2Vydmlj''@;'; + put 'put ''ZS50b2dnbGVXaXRoRXZlbnQodikpKSx0aGlzLnBhcmVudD90aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi5lc2MiLHY9Pnt0aGlzLmZvY3VzU2VydmljZS5tb3ZlKHExLkxFRlQpLHYuc3RvcFByb3BhZ2F0aW9uKCl9KSk6KHRoaXMuZm9j''@;'; + put 'put ''dXNTZXJ2aWNlLnJlZ2lzdGVyQ29udGFpbmVyKGgpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihoLCJrZXlkb3duLmVzYyIsdj0+dGhpcy50b2dnbGVTZXJ2aWNlLnRvZ2dsZVdpdGhFdmVudCh2KSkpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlz''@;'; + put 'put ''LnJlbmRlcmVyLmxpc3RlbihoLCJibHVyIix2PT57dGhpcy5jaGlsZHJlbi5waXBlKEg1KDEpKS5zdWJzY3JpYmUoQz0+Qy5mb3JFYWNoKEk9PkkuYmx1cigpKSk7Y29uc3QgeT12LnJlbGF0ZWRUYXJnZXR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7eSYmU2wodGhpcy5wbGF0Zm9ybUlkKSYm''@;'; + put 'put ''KGguY29udGFpbnMoeSl8fHk9PT10aGlzLnRyaWdnZXIpfHwodGhpcy5mb2N1c0JhY2tPblRyaWdnZXI9ITEsdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITEpfSkpKX1mb2N1cygpe3RoaXMudHJpZ2dlciYmU2wodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy50cmlnZ2VyLmZvY3VzKCl9Ymx1cigp''@;'; + put 'put ''e3RoaXMudHJpZ2dlciYmU2wodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy50cmlnZ2VyLmJsdXIoKX1hY3RpdmF0ZSgpe1NsKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMudHJpZ2dlci5jbGljaygpfW9wZW5BbmRHZXRDaGlsZHJlbigpe3JldHVybiB5eWUodGhpcy5jaGlsZHJlbiwoKT0+dGhpcy50''@;'; + put 'put ''b2dnbGVTZXJ2aWNlLm9wZW49ITApfWNsb3NlQW5kR2V0VGhpcygpe3JldHVybiB5eWUoYWEodGhpcyksKCk9PnRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExKX1yZXNldENoaWxkcmVuKCl7dGhpcy5jaGlsZHJlbj1uZXcgTWsoMSksdGhpcy5wYXJlbnQ/dGhpcy5yaWdodD10aGlzLm9wZW5B''@;'; + put 'put ''bmRHZXRDaGlsZHJlbigpLnBpcGUodnQoaD0+aFswXSkpOih0aGlzLmRvd249dGhpcy5vcGVuQW5kR2V0Q2hpbGRyZW4oKS5waXBlKHZ0KGg9PmhbMF0pKSx0aGlzLnVwPXRoaXMub3BlbkFuZEdldENoaWxkcmVuKCkucGlwZSh2dChoPT5oW2gubGVuZ3RoLTFdKSkpfWFkZENoaWxkcmVuKGgp''@;'; + put 'put ''e0F5ZS5saW5rVmVydGljYWwoaCksdGhpcy5wYXJlbnQmJkF5ZS5saW5rUGFyZW50KGgsdGhpcy5jbG9zZUFuZEdldFRoaXMoKSxxMS5MRUZUKSx0aGlzLmNoaWxkcmVuLm5leHQoaCl9bmdPbkRlc3Ryb3koKXt0aGlzLl91bmxpc3RlbkZ1bmNzLmZvckVhY2goaD0+aCgpKSx0aGlzLmZvY3Vz''@;'; + put 'put ''U2VydmljZS5kZXRhY2hMaXN0ZW5lcnMoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koeTIpLENpKEdhKSxDaShkLDEyKSxDaSh6cyksQ2koeHApLENpKEQyKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFj''@;'; + put 'put ''fSksZH0pKCk7Y29uc3QgUU9lPUxBZShlaGUpO2xldCBzWj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fY2hhbmdlcz1uZXcgJGV9Z2V0IGNoYW5nZXMoKXtyZXR1cm4gdGhpcy5fY2hhbmdlcy5hc09ic2VydmFibGUoKX1jbG9zZU1lbnVzKCl7dGhpcy5fY2hhbmdlcy5uZXh0''@;'; + put 'put ''KCExKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgWE9lPXtwcm92aWRlOnNaLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gSk9lKGQpe3JldHVybiBk''@;'; + put 'put ''fHxuZXcgc1p9LGRlcHM6W1tuZXcgbWYsbmV3IEw0LHNaXV19O2xldCBndz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMucGFyZW50PWgsdGhpcy50b2dnbGVTZXJ2aWNlPXYsdGhpcy5jZHI9eSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5pc01lbnVDbG9zYWJs''@;'; + put 'put ''ZT0hMCx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChDLmNoYW5nZXMuc3Vic2NyaWJlKEk9PnRoaXMudG9nZ2xlU2VydmljZS5vcGVuPUkpKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh2Lm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKCgpPT50aGlzLmNkci5tYXJrRm9yQ2hlY2soKSkpfW5nT25EZXN0''@;'; + put 'put ''cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoZCwxMiksWHQoenMpLFh0KGQxKSxYdChzWikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9y''@;'; + put 'put ''czpbWyJjbHItZHJvcGRvd24iXV0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJkcm9wZG93biIsITApKCJvcGVuIix2LnRvZ2dsZVNlcnZpY2Uub3Blbil9LGlucHV0czp7aXNNZW51Q2xvc2FibGU6WyJjbHJDbG9zZU1lbnVPbkl0ZW1DbGljayIsImlz''@;'; + put 'put ''TWVudUNsb3NhYmxlIl19LGZlYXR1cmVzOltobyhbWE9lLHtwcm92aWRlOnRmLHVzZUV4aXN0aW5nOmJvfSxnOCx6cyxRT2VdKV0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSl9LGVuY2Fwc3VsYXRp''@;'; + put 'put ''b246Mn0pLGR9KSgpO2NvbnN0IEtPZT1bT2Mse3Byb3ZpZGU6b3EsdXNlQ2xhc3M6KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLmlkPWgsdGhpcy5lbD12LHRoaXMucmVuZGVyZXI9eSx0aGlzLnBsYXRmb3JtSWQ9Qyx0aGlzLmRpc2FibGVkPSExLHkuc2V0QXR0cmli''@;'; + put 'put ''dXRlKHYubmF0aXZlRWxlbWVudCwiaWQiLGgpLHkuc2V0QXR0cmlidXRlKHYubmF0aXZlRWxlbWVudCwidGFiaW5kZXgiLCItMSIpfWZvY3VzKCl7U2wodGhpcy5wbGF0Zm9ybUlkKSYmKHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwidGFiaW5kZXgi''@;'; + put 'put ''LCIwIiksdGhpcy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCksdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoiY2VudGVyIixpbmxpbmU6Im5lYXJlc3QifSkpfWJsdXIoKXtTbCh0aGlzLnBsYXRmb3JtSWQpJiYodGhpcy5yZW5k''@;'; + put 'put ''ZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ0YWJpbmRleCIsIi0xIiksdGhpcy5lbC5uYXRpdmVFbGVtZW50LmJsdXIoKSl9YWN0aXZhdGUoKXtTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xpY2soKX19cmV0dXJuIGQuXHUwMjc1''@;'; + put 'put ''ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koeTIpLENpKGJvKSxDaShHYSksQ2koRDIpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKX1dO2xldCB1Wj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhp''@;'; + put 'put ''cy5kcm9wZG93bj1oLHRoaXMuZWw9dix0aGlzLl9kcm9wZG93blNlcnZpY2U9eSx0aGlzLnJlbmRlcmVyPUMsdGhpcy5mb2N1c2FibGVJdGVtPUksdGhpcy5zZXRCeURlcHJlY2F0ZWREaXNhYmxlZD0hMX1zZXQgZGlzYWJsZWQoaCl7dGhpcy5mb2N1c2FibGVJdGVtLmRpc2FibGVkPSEhaHx8''@;'; + put 'put ''IiI9PT1ofWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW0uZGlzYWJsZWR9c2V0IGRpc2FibGVkRGVwcmVjYXRlZChoKXt0aGlzLmZvY3VzYWJsZUl0ZW0uZGlzYWJsZWQ9ISFofHwiIj09PWgsdGhpcy5zZXRCeURlcHJlY2F0ZWREaXNhYmxlZD0hMH1nZXQgZGlzYWJs''@;'; + put 'put ''ZWREZXByZWNhdGVkKCl7cmV0dXJuIHRoaXMuZm9jdXNhYmxlSXRlbS5kaXNhYmxlZH1zZXQgZHJvcGRvd25JdGVtSWQoaCl7dGhpcy5mb2N1c2FibGVJdGVtLmlkPWh9Z2V0IGRyb3Bkb3duSXRlbUlkKCl7cmV0dXJuIHRoaXMuZm9jdXNhYmxlSXRlbS5pZH1uZ0FmdGVyVmlld0luaXQoKXt0''@;'; + put 'put ''aGlzLnVubGlzdGVuPXRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiY2xpY2siLCgpPT50aGlzLm9uRHJvcGRvd25JdGVtQ2xpY2soKSl9b25Ecm9wZG93bkl0ZW1DbGljaygpe3RoaXMuZHJvcGRvd24uaXNNZW51Q2xvc2FibGUmJiF0aGlzLmVsLm5hdGl2ZUVs''@;'; + put 'put ''ZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJkaXNhYmxlZCIpJiZ0aGlzLl9kcm9wZG93blNlcnZpY2UuY2xvc2VNZW51cygpfW5nT25EZXN0cm95KCl7dGhpcy51bmxpc3RlbiYmdGhpcy51bmxpc3RlbigpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; + put 'put ''KShYdChndyksWHQoYm8pLFh0KHNaKSxYdChHYSksWHQob3EpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyRHJvcGRvd25JdGVtIiwiIl1dLGhvc3RWYXJzOjgsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiYoemkoInJvbGUiLCJtZW51aXRlbSIp''@;'; + put 'put ''KCJhcmlhLWRpc2FibGVkIix2LmRpc2FibGVkKSgiZGlzYWJsZWQiLHYuZGlzYWJsZWQmJnYuc2V0QnlEZXByZWNhdGVkRGlzYWJsZWQ/IiI6bnVsbCkoImlkIix2LmRyb3Bkb3duSXRlbUlkKSxGaSgiZGlzYWJsZWQiLHYuZGlzYWJsZWQpKCJkcm9wZG93bi1pdGVtIiwhMCkpfSxpbnB1dHM6''@;'; + put 'put ''e2Rpc2FibGVkOlsiY2xyRGlzYWJsZWQiLCJkaXNhYmxlZCJdLGRpc2FibGVkRGVwcmVjYXRlZDpbImRpc2FibGVkIiwiZGlzYWJsZWREZXByZWNhdGVkIl0sZHJvcGRvd25JdGVtSWQ6WyJpZCIsImRyb3Bkb3duSXRlbUlkIl19LGZlYXR1cmVzOltobyhbS09lXSldfSksZH0pKCk7dmFyIGcw''@;'; + put 'put ''PSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5SSUdIVF9DRU5URVI9MF09IlJJR0hUX0NFTlRFUiIsZFtkLlJJR0hUX1RPUD0xXT0iUklHSFRfVE9QIixkW2QuUklHSFRfQk9UVE9NPTJdPSJSSUdIVF9CT1RUT00iLGRbZC5UT1BfQ0VOVEVSPTNdPSJUT1BfQ0VOVEVSIixkW2QuVE9QX1JJR0hUPTRd''@;'; + put 'put ''PSJUT1BfUklHSFQiLGRbZC5UT1BfTEVGVD01XT0iVE9QX0xFRlQiLGRbZC5CT1RUT01fQ0VOVEVSPTZdPSJCT1RUT01fQ0VOVEVSIixkW2QuQk9UVE9NX1JJR0hUPTddPSJCT1RUT01fUklHSFQiLGRbZC5CT1RUT01fTEVGVD04XT0iQk9UVE9NX0xFRlQiLGRbZC5MRUZUX0NFTlRFUj05XT0i''@;'; + put 'put ''TEVGVF9DRU5URVIiLGRbZC5MRUZUX1RPUD0xMF09IkxFRlRfVE9QIixkW2QuTEVGVF9CT1RUT009MTFdPSJMRUZUX0JPVFRPTSJ9KGcwfHwoZzA9e30pKSxnMCkpKCk7Y2xhc3MgZVJle2NvbnN0cnVjdG9yKGcpe3RoaXMuZWxlbWVudD1nLHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnRzPVtdLHRo''@;'; + put 'put ''aXMuYm91bmRPblNjcm9sbExpc3RlbmVyPXRoaXMuZW1pdFNjcm9sbEV2ZW50LmJpbmQodGhpcyksZy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGcuc3R5bGUudG9wPTAsZy5zdHlsZS5ib3R0b209ImF1dG8iLGcuc3R5bGUubGVmdD0wLGcuc3R5bGUucmlnaHQ9ImF1dG8ifWFuY2hvcihn''@;'; + put 'put ''LGgsdix7b2Zmc2V0WDp5PTAsb2Zmc2V0WTpDPTAsdXNlQW5jaG9yUGFyZW50Okk9ITF9PXt9KXt0aGlzLmFkZFNjcm9sbEV2ZW50TGlzdGVuZXJzKGcpLEkmJihnPWcucGFyZW50Tm9kZSksZy5zdHlsZS5wb3NpdGlvbj0ic3RhdGljIjtjb25zdCBqPWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0''@;'; + put 'put ''KCksdWU9dGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBfZT1qLmxlZnQtdWUubGVmdCt5LEJlPWoudG9wLXVlLnRvcCtDO3N3aXRjaChoKXtjYXNlIGcwLkxFRlRfVE9QOmNhc2UgZzAuVE9QX0xFRlQ6YnJlYWs7Y2FzZSBnMC5UT1BfQ0VOVEVSOl9lKz1qLndpZHRo''@;'; + put 'put ''LzI7YnJlYWs7Y2FzZSBnMC5UT1BfUklHSFQ6Y2FzZSBnMC5SSUdIVF9UT1A6X2UrPWoud2lkdGg7YnJlYWs7Y2FzZSBnMC5MRUZUX0JPVFRPTTpjYXNlIGcwLkJPVFRPTV9MRUZUOkJlKz1qLmhlaWdodDticmVhaztjYXNlIGcwLkJPVFRPTV9DRU5URVI6QmUrPWouaGVpZ2h0LF9lKz1qLndp''@;'; + put 'put ''ZHRoLzI7YnJlYWs7Y2FzZSBnMC5CT1RUT01fUklHSFQ6Y2FzZSBnMC5SSUdIVF9CT1RUT006QmUrPWouaGVpZ2h0LF9lKz1qLndpZHRoO2JyZWFrO2Nhc2UgZzAuTEVGVF9DRU5URVI6QmUrPWouaGVpZ2h0LzI7YnJlYWs7Y2FzZSBnMC5SSUdIVF9DRU5URVI6QmUrPWouaGVpZ2h0LzIsX2Ur''@;'; + put 'put ''PWoud2lkdGh9c3dpdGNoKHYpe2Nhc2UgZzAuTEVGVF9UT1A6Y2FzZSBnMC5UT1BfTEVGVDpicmVhaztjYXNlIGcwLlRPUF9DRU5URVI6X2UtPXVlLndpZHRoLzI7YnJlYWs7Y2FzZSBnMC5UT1BfUklHSFQ6Y2FzZSBnMC5SSUdIVF9UT1A6X2UtPXVlLndpZHRoO2JyZWFrO2Nhc2UgZzAuTEVG''@;'; + put 'put ''VF9CT1RUT006Y2FzZSBnMC5CT1RUT01fTEVGVDpCZS09dWUuaGVpZ2h0O2JyZWFrO2Nhc2UgZzAuQk9UVE9NX0NFTlRFUjpCZS09dWUuaGVpZ2h0LF9lLT11ZS53aWR0aC8yO2JyZWFrO2Nhc2UgZzAuQk9UVE9NX1JJR0hUOmNhc2UgZzAuUklHSFRfQk9UVE9NOkJlLT11ZS5oZWlnaHQsX2Ut''@;'; + put 'put ''PXVlLndpZHRoO2JyZWFrO2Nhc2UgZzAuTEVGVF9DRU5URVI6QmUtPXVlLmhlaWdodC8yO2JyZWFrO2Nhc2UgZzAuUklHSFRfQ0VOVEVSOkJlLT11ZS5oZWlnaHQvMixfZS09dWUud2lkdGh9Y29uc3QgTmU9Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnQpLEtlPXBhcnNlSW50KE5lLm1h''@;'; + put 'put ''cmdpbkxlZnQsMTApLGR0PXBhcnNlSW50KE5lLm1hcmdpblJpZ2h0LDEwKSxPdD1wYXJzZUludChOZS5tYXJnaW5Ub3AsMTApLCR0PXBhcnNlSW50KE5lLm1hcmdpbkJvdHRvbSwxMCk7c3dpdGNoKGgpe2Nhc2UgZzAuTEVGVF9UT1A6Y2FzZSBnMC5UT1BfTEVGVDpjYXNlIGcwLlRPUF9SSUdI''@;'; + put 'put ''VDpjYXNlIGcwLlJJR0hUX1RPUDoodj09PWcwLkJPVFRPTV9SSUdIVHx8dj09PWcwLlJJR0hUX0JPVFRPTSkmJihCZS09JHQsX2UtPWR0KSwodj09PWcwLkJPVFRPTV9MRUZUfHx2PT09ZzAuTEVGVF9CT1RUT00pJiYoQmUtPU90LF9lKz1LZSksKHY9PT1nMC5UT1BfTEVGVHx8dj09PWcwLkxF''@;'; + put 'put ''RlRfVE9QKSYmKEJlKz1PdCxfZSs9S2UpLCh2PT09ZzAuVE9QX1JJR0hUfHx2PT09ZzAuUklHSFRfVE9QKSYmKEJlKz1PdCxfZS09ZHQpO2JyZWFrO2Nhc2UgZzAuTEVGVF9CT1RUT006Y2FzZSBnMC5CT1RUT01fTEVGVDpjYXNlIGcwLkJPVFRPTV9SSUdIVDpjYXNlIGcwLlJJR0hUX0JPVFRP''@;'; + put 'put ''TToodj09PWcwLkJPVFRPTV9MRUZUfHx2PT09ZzAuTEVGVF9CT1RUT00pJiYoQmUtPSR0LF9lKz1LZSksKHY9PT1nMC5CT1RUT01fUklHSFR8fHY9PT1nMC5SSUdIVF9CT1RUT00pJiYoQmUtPSR0LF9lLT1kdCksKHY9PT1nMC5UT1BfTEVGVHx8dj09PWcwLkxFRlRfVE9QKSYmKEJlKz1PdCxf''@;'; + put 'put ''ZSs9S2UpLCh2PT09ZzAuVE9QX1JJR0hUfHx2PT09ZzAuUklHSFRfVE9QKSYmKEJlKz1PdCxfZS09ZHQpO2JyZWFrO2Nhc2UgZzAuVE9QX0NFTlRFUjpCZS09JHQsX2UrPUtlLF9lLT1kdDticmVhaztjYXNlIGcwLkJPVFRPTV9DRU5URVI6QmUrPU90LF9lKz1LZSxfZS09ZHQ7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSBnMC5MRUZUX0NFTlRFUjpCZSs9T3QsQmUtPSR0LF9lLT1kdDticmVhaztjYXNlIGcwLlJJR0hUX0NFTlRFUjpCZSs9T3QsQmUtPSR0LF9lKz1LZX1yZXR1cm4gdGhpcy5lbGVtZW50LnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWCgke01hdGgucm91bmQoX2UpfXB4KSB0cmFuc2xhdGVZ''@;'; + put 'put ''KCR7TWF0aC5yb3VuZChCZSl9cHgpYCx0aGlzLl9zY3JvbGwuYXNPYnNlcnZhYmxlKCl9cmVsZWFzZSgpe3RoaXMuZWxlbWVudC5zdHlsZS50cmFuc2Zvcm09IiIsdGhpcy5yZW1vdmVTY3JvbGxFdmVudExpc3RlbmVycygpfWlzUG9zaXRpb25lZChnKXtjb25zdCBoPWdldENvbXB1dGVkU3R5''@;'; + put 'put ''bGUoZykucG9zaXRpb247cmV0dXJuInJlbGF0aXZlIj09PWh8fCJhYnNvbHV0ZSI9PT1ofHwiZml4ZWQiPT09aH1lbWl0U2Nyb2xsRXZlbnQoKXt0aGlzLl9zY3JvbGwubmV4dCgpfWFkZFNjcm9sbEV2ZW50TGlzdGVuZXJzKGcpe3RoaXMuX3Njcm9sbD1uZXcgJGU7Y29uc3QgaD1nO2xldCB2''@;'; + put 'put ''PWc7Zm9yKDt2JiZ2IT09ZG9jdW1lbnQmJih0aGlzLnNjcm9sbHModikmJih2LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5ib3VuZE9uU2Nyb2xsTGlzdGVuZXIpLHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnRzLnB1c2godikpLHY9PT1ofHwhdGhpcy5pc1Bvc2l0aW9uZWQodikpOyl2''@;'; + put 'put ''PXYucGFyZW50Tm9kZX1yZW1vdmVTY3JvbGxFdmVudExpc3RlbmVycygpe2Zvcihjb25zdCBnIG9mIHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnRzKWcucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmJvdW5kT25TY3JvbGxMaXN0ZW5lcik7dGhpcy5zY3JvbGxhYmxlRWxlbWVudHMu''@;'; + put 'put ''bGVuZ3RoPTAsdGhpcy5fc2Nyb2xsJiYodGhpcy5fc2Nyb2xsLmNvbXBsZXRlKCksZGVsZXRlIHRoaXMuX3Njcm9sbCl9c2Nyb2xscyhnKXtjb25zdCBoPWdldENvbXB1dGVkU3R5bGUoZyk7cmV0dXJuInNjcm9sbCI9PT1oLm92ZXJmbG93WHx8ImF1dG8iPT09aC5vdmVyZmxvd1h8fCJzY3Jv''@;'; + put 'put ''bGwiPT09aC5vdmVyZmxvd1l8fCJhdXRvIj09PWgub3ZlcmZsb3dZfX1sZXQgdGhlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLnBhcmVudEhvc3Q9dix0aGlzLnVwZGF0ZUFuY2hvcj0hMSx0aGlzLnBvcG92ZXJPcHRpb25zPXt9LHRoaXMuY2xvc2VPbk91dHNpZGVDbGlj''@;'; + put 'put ''az0hMSx0aGlzLmRvY3VtZW50RVNDTGlzdGVuZXI9bnVsbCx0aGlzLmNsb3NlT25PdXRzaWRlQ2xpY2tDYWxsYmFjaz15PT57dGhpcy5hbmNob3JFbGVtLmNvbnRhaW5zKHkudGFyZ2V0KXx8KHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExKX0sdGhpcy5lbD1oLmdldChibyksdGhpcy50b2dn''@;'; + put 'put ''bGVTZXJ2aWNlPWguZ2V0KHpzKSx0aGlzLnJlbmRlcmVyPWguZ2V0KEdhKSx0aGlzLm5nWm9uZT1oLmdldChfbCksdGhpcy5yZWY9aC5nZXQoZDEpLHRoaXMuYW5jaG9yRWxlbT12Lm5hdGl2ZUVsZW1lbnQsdGhpcy5wb3BvdmVySW5zdGFuY2U9bmV3IGVSZSh0aGlzLmVsLm5hdGl2ZUVsZW1l''@;'; + put 'put ''bnQpLHRoaXMuc3Vic2NyaXB0aW9uPXRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZSh5PT57eT8odGhpcy5hbmNob3IoKSx0aGlzLmF0dGFjaEVTQ0xpc3RlbmVyKCkpOih0aGlzLnJlbGVhc2UoKSx0aGlzLmRldGFjaEVTQ0xpc3RlbmVyKCkpfSksdGhpcy50b2dnbGVT''@;'; + put 'put ''ZXJ2aWNlLm9wZW4mJih0aGlzLmFuY2hvcigpLHRoaXMuYXR0YWNoRVNDTGlzdGVuZXIoKSl9YW5jaG9yKCl7dGhpcy51cGRhdGVBbmNob3I9ITB9cmVsZWFzZSgpe3RoaXMuZGV0YWNoT3V0c2lkZUNsaWNrTGlzdGVuZXIoKSx0aGlzLnBvcG92ZXJJbnN0YW5jZS5yZWxlYXNlKCl9bmdBZnRl''@;'; + put 'put ''clZpZXdDaGVja2VkKCl7dGhpcy51cGRhdGVBbmNob3ImJih0aGlzLnVwZGF0ZUFuY2hvcj0hMSx0aGlzLnBvcG92ZXJJbnN0YW5jZS5hbmNob3IodGhpcy5hbmNob3JFbGVtLHRoaXMuYW5jaG9yUG9pbnQsdGhpcy5wb3BvdmVyUG9pbnQsdGhpcy5wb3BvdmVyT3B0aW9ucykuc3Vic2NyaWJl''@;'; + put 'put ''KCgpPT57dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITF9KSx0aGlzLmF0dGFjaE91dHNpZGVDbGlja0xpc3RlbmVyKCkpfW5nT25EZXN0cm95KCl7dGhpcy5yZWxlYXNlKCksdGhpcy5kZXRhY2hFU0NMaXN0ZW5lcigpLHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9Z2V0IGlzT2Zm''@;'; + put 'put ''U2NyZWVuKCl7cmV0dXJuIXRoaXMudG9nZ2xlU2VydmljZS5vcGVufWF0dGFjaEVTQ0xpc3RlbmVyKCl7dGhpcy5wb3BvdmVyT3B0aW9ucy5pZ25vcmVHbG9iYWxFU0NMaXN0ZW5lcnx8dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLmRvY3VtZW50RVNDTGlzdGVuZXI9''@;'; + put 'put ''dGhpcy5yZW5kZXJlci5saXN0ZW4oImRvY3VtZW50Iiwia2V5ZG93biIsaD0+e2gmJmgua2V5JiYoIkVzY2FwZSI9PT1oLmtleXx8IkVzYyI9PT1oLmtleSkmJnRoaXMubmdab25lLnJ1bigoKT0+e3RoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExLHRoaXMucmVmLm1hcmtGb3JDaGVjaygpfSl9''@;'; + put 'put ''KX0pfWRldGFjaEVTQ0xpc3RlbmVyKCl7dGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyJiYodGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyKCksdGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyPW51bGwpfWF0dGFjaE91dHNpZGVDbGlja0xpc3RlbmVyKCl7dGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrJiZ0''@;'; + put 'put ''aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiYmZG9jdW1lbnQmJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXImJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmNsb3NlT25PdXRzaWRlQ2xpY2tDYWxsYmFjaywhMCl9ZGV0YWNoT3V0c2lkZUNsaWNrTGlzdGVuZXIoKXt0aGlz''@;'; + put 'put ''LmNsb3NlT25PdXRzaWRlQ2xpY2smJmRvY3VtZW50JiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrQ2FsbGJhY2ssITApfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24o''@;'; + put 'put ''aCl7cmV0dXJuIG5ldyhofHxkKShYdChrcyksWHQoYm8sNCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiaXMtb2ZmLXNjcmVlbiIsdi5pc09mZlNjcmVlbil9fSksZH0pKCksekw9KCgpPT57Y2xhc3MgZCBl''@;'; + put 'put ''eHRlbmRzIHRoZXtjb25zdHJ1Y3RvcihoLHYseSxDKXtpZighdil0aHJvdyBuZXcgRXJyb3IoImNsci1kcm9wZG93bi1tZW51IHNob3VsZCBvbmx5IGJlIHVzZWQgaW5zaWRlIG9mIGEgY2xyLWRyb3Bkb3duIik7c3VwZXIoaCx2KSx5Pyh0aGlzLmFuY2hvclBvaW50PWcwLlJJR0hUX1RPUCx0''@;'; + put 'put ''aGlzLnBvcG92ZXJQb2ludD1nMC5MRUZUX1RPUCk6KHRoaXMuYW5jaG9yUG9pbnQ9ZzAuQk9UVE9NX0xFRlQsdGhpcy5wb3BvdmVyUG9pbnQ9ZzAuTEVGVF9UT1ApLHRoaXMucG9wb3Zlck9wdGlvbnMuYWxsb3dNdWx0aXBsZU9wZW49ITAsdGhpcy5wb3BvdmVyT3B0aW9ucy5pZ25vcmVHbG9i''@;'; + put 'put ''YWxFU0NMaXN0ZW5lcj0hMCx0aGlzLmNsb3NlT25PdXRzaWRlQ2xpY2s9ITAsdGhpcy5mb2N1c0hhbmRsZXI9Q31zZXQgcG9zaXRpb24oaCl7c3dpdGNoKGgpe2Nhc2UidG9wLXJpZ2h0Ijp0aGlzLmFuY2hvclBvaW50PWcwLlRPUF9SSUdIVCx0aGlzLnBvcG92ZXJQb2ludD1nMC5SSUdIVF9C''@;'; + put 'put ''T1RUT007YnJlYWs7Y2FzZSJ0b3AtbGVmdCI6dGhpcy5hbmNob3JQb2ludD1nMC5UT1BfTEVGVCx0aGlzLnBvcG92ZXJQb2ludD1nMC5MRUZUX0JPVFRPTTticmVhaztjYXNlImJvdHRvbS1yaWdodCI6dGhpcy5hbmNob3JQb2ludD1nMC5CT1RUT01fUklHSFQsdGhpcy5wb3BvdmVyUG9pbnQ9''@;'; + put 'put ''ZzAuUklHSFRfVE9QO2JyZWFrO2Nhc2UiYm90dG9tLWxlZnQiOmRlZmF1bHQ6dGhpcy5hbmNob3JQb2ludD1nMC5CT1RUT01fTEVGVCx0aGlzLnBvcG92ZXJQb2ludD1nMC5MRUZUX1RPUDticmVhaztjYXNlInJpZ2h0LXRvcCI6dGhpcy5hbmNob3JQb2ludD1nMC5SSUdIVF9UT1AsdGhpcy5w''@;'; + put 'put ''b3BvdmVyUG9pbnQ9ZzAuTEVGVF9UT1A7YnJlYWs7Y2FzZSJyaWdodC1ib3R0b20iOnRoaXMuYW5jaG9yUG9pbnQ9ZzAuUklHSFRfQk9UVE9NLHRoaXMucG9wb3ZlclBvaW50PWcwLkxFRlRfQk9UVE9NO2JyZWFrO2Nhc2UibGVmdC10b3AiOnRoaXMuYW5jaG9yUG9pbnQ9ZzAuTEVGVF9UT1As''@;'; + put 'put ''dGhpcy5wb3BvdmVyUG9pbnQ9ZzAuUklHSFRfVE9QO2JyZWFrO2Nhc2UibGVmdC1ib3R0b20iOnRoaXMuYW5jaG9yUG9pbnQ9ZzAuTEVGVF9CT1RUT00sdGhpcy5wb3BvdmVyUG9pbnQ9ZzAuUklHSFRfQk9UVE9NfX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLmZvY3VzSGFuZGxlci5jb250''@;'; + put 'put ''YWluZXI9dGhpcy5lbC5uYXRpdmVFbGVtZW50LHRoaXMuaXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoKCk9PnRoaXMuZm9jdXNIYW5kbGVyLmFkZENoaWxkcmVuKHRoaXMuaXRlbXMudG9BcnJheSgpKSksdGhpcy5pdGVtcy5ub3RpZnlPbkNoYW5nZXMoKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5n''@;'; + put 'put ''T25EZXN0cm95KCksdGhpcy5mb2N1c0hhbmRsZXIucmVzZXRDaGlsZHJlbigpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChrcyksWHQodGYsOCksWHQoZCwxMiksWHQoZWhlKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltb''@;'; + put 'put ''ImNsci1kcm9wZG93bi1tZW51Il1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksb3EsNCksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5pdGVtcz1DKX19LGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiYoemkoInJvbGUiLCJt''@;'; + put 'put ''ZW51IiksRmkoImRyb3Bkb3duLW1lbnUiLCEwKSl9LGlucHV0czp7cG9zaXRpb246WyJjbHJQb3NpdGlvbiIsInBvc2l0aW9uIl19LGZlYXR1cmVzOltEb10sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgw''@;'; + put 'put ''KSl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLEdMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy50b2dnbGVTZXJ2aWNlPXYsdGhpcy5pc1Jvb3RMZXZlbFRvZ2dsZT0hMCxoLnBhcmVudCYmKHRoaXMuaXNSb290TGV2ZWxUb2dnbGU9ITEpLEMudHJpZ2dlcj15Lm5h''@;'; + put 'put ''dGl2ZUVsZW1lbnR9Z2V0IGFjdGl2ZSgpe3JldHVybiB0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbn1vbkRyb3Bkb3duVHJpZ2dlckNsaWNrKGgpe3RoaXMudG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZlbnQoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8''@;'; + put 'put ''fGQpKFh0KGd3KSxYdCh6cyksWHQoYm8pLFh0KGVoZSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJEcm9wZG93blRyaWdnZXIiLCIiXSxbIiIsImNsckRyb3Bkb3duVG9nZ2xlIiwiIl1dLGhvc3RWYXJzOjEwLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYp''@;'; + put 'put ''ezEmaCYmWW4oImNsaWNrIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbkRyb3Bkb3duVHJpZ2dlckNsaWNrKEMpfSksMiZoJiYoemkoImFyaWEtaGFzcG9wdXAiLCJtZW51IikoImFyaWEtZXhwYW5kZWQiLHYuYWN0aXZlKSxGaSgiZHJvcGRvd24tdG9nZ2xlIix2LmlzUm9vdExldmVsVG9nZ2xl''@;'; + put 'put ''KSgiZHJvcGRvd24taXRlbSIsIXYuaXNSb290TGV2ZWxUb2dnbGUpKCJleHBhbmRhYmxlIiwhdi5pc1Jvb3RMZXZlbFRvZ2dsZSkoImFjdGl2ZSIsdi5hY3RpdmUpKX19KSxkfSkoKSxuaGU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXco''@;'; + put 'put ''aHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXSxxYSxUc119KSxkfSkoKTtjb25zdCB0UmU9WyJpbmZvIiwid2FybmluZyIsImRhbmdlciIsInN1Y2Nlc3MiXTtsZXQgcmhlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhp''@;'; + put 'put ''cy5jb21tb25TdHJpbmdzPWgsdGhpcy5kZWZhdWx0SWNvblNoYXBlPSJpbmZvLWNpcmNsZSIsdGhpcy5fYWxlcnRJY29uU2hhcGU9IiIsdGhpcy5fYWxlcnRUeXBlPSJpbmZvIn1nZXQgYWxlcnRUeXBlKCl7cmV0dXJuIHRoaXMuX2FsZXJ0VHlwZX1zZXQgYWxlcnRUeXBlKGgpe3RSZS5pbmRl''@;'; + put 'put ''eE9mKGgpPi0xJiYodGhpcy5fYWxlcnRUeXBlPWgpfWdldCBhbGVydEljb25TaGFwZSgpe3JldHVybiIiPT09dGhpcy5fYWxlcnRJY29uU2hhcGU/dGhpcy5pY29uSW5mb0Zyb21UeXBlKHRoaXMuX2FsZXJ0VHlwZSkuc2hhcGU6dGhpcy5fYWxlcnRJY29uU2hhcGV9c2V0IGFsZXJ0SWNvblNo''@;'; + put 'put ''YXBlKGgpe2g/aCE9PXRoaXMuX2FsZXJ0SWNvblNoYXBlJiYodGhpcy5fYWxlcnRJY29uU2hhcGU9aCk6dGhpcy5fYWxlcnRJY29uU2hhcGU9IiJ9Z2V0IGFsZXJ0SWNvblRpdGxlKCl7cmV0dXJuIHRoaXMuaWNvbkluZm9Gcm9tVHlwZSh0aGlzLl9hbGVydFR5cGUpLnRpdGxlfWljb25JbmZv''@;'; + put 'put ''RnJvbVR5cGUoaCl7Y29uc3Qgdj17c2hhcGU6IiIsY3NzQ2xhc3M6IiIsdGl0bGU6IiJ9O3N3aXRjaChoKXtjYXNlIndhcm5pbmciOnYuc2hhcGU9ImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIix2LmNzc0NsYXNzPSJhbGVydC13YXJuaW5nIix2LnRpdGxlPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlz''@;'; + put 'put ''Lndhcm5pbmc7YnJlYWs7Y2FzZSJkYW5nZXIiOnYuc2hhcGU9ImV4Y2xhbWF0aW9uLWNpcmNsZSIsdi5jc3NDbGFzcz0iYWxlcnQtZGFuZ2VyIix2LnRpdGxlPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhbmdlcjticmVhaztjYXNlInN1Y2Nlc3MiOnYuc2hhcGU9ImNoZWNrLWNpcmNsZSIs''@;'; + put 'put ''di5jc3NDbGFzcz0iYWxlcnQtc3VjY2VzcyIsdi50aXRsZT10aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5zdWNjZXNzO2JyZWFrO2RlZmF1bHQ6di5zaGFwZT10aGlzLmRlZmF1bHRJY29uU2hhcGUsdi5jc3NDbGFzcz0iYWxlcnQtaW5mbyIsdi50aXRsZT10aGlzLmNvbW1vblN0cmluZ3Mua2V5''@;'; + put 'put ''cy5pbmZvfXJldHVybiB2fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShucykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLGJxPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9j''@;'; + put 'put ''aGFuZ2U9bmV3ICRlfWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZS5hc09ic2VydmFibGUoKX1nZXQgY3VycmVudCgpe3JldHVybiB0aGlzLl9jdXJyZW50fXNldCBjdXJyZW50KGgpe2ghPT10aGlzLl9jdXJyZW50JiYodGhpcy5fY3VycmVudD1oLHRoaXMuX2NoYW5nZS5uZXh0''@;'; + put 'put ''KGgpKX1nZXQgYWN0aXZlQWxlcnRzKCl7cmV0dXJuIHRoaXMuYWxsQWxlcnRzJiZ0aGlzLmFsbEFsZXJ0cy5maWx0ZXIoaD0+IWguX2Nsb3NlZCl9Z2V0IGN1cnJlbnRBbGVydCgpe3JldHVybiB0aGlzLmFjdGl2ZUFsZXJ0cyYmdGhpcy5hY3RpdmVBbGVydHNbdGhpcy5jdXJyZW50XX1zZXQg''@;'; + put 'put ''Y3VycmVudEFsZXJ0KGgpe3RoaXMuY3VycmVudD10aGlzLmFjdGl2ZUFsZXJ0cy5pbmRleE9mKGgpfWdldCBjb3VudCgpe3JldHVybiB0aGlzLmFjdGl2ZUFsZXJ0cyYmdGhpcy5hY3RpdmVBbGVydHMubGVuZ3RofHwwfW1hbmFnZShoKXt0aGlzLnN1YnNjcmlwdGlvbiYmdGhpcy5zdWJzY3Jp''@;'; + put 'put ''cHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLmFsbEFsZXJ0cz1oLHRoaXMuY3VycmVudD0ibnVtYmVyIj09dHlwZW9mIHRoaXMuX2N1cnJlbnQ/dGhpcy5fY3VycmVudDowLHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuY3VycmVudCksdGhpcy5zdWJzY3JpcHRpb249dGhpcy5hbGxBbGVydHMuY2hh''@;'; + put 'put ''bmdlcy5zdWJzY3JpYmUoKCk9Pnt0aGlzLmN1cnJlbnQ+PXRoaXMuYWxsQWxlcnRzLmxlbmd0aCYmKHRoaXMuY3VycmVudD1NYXRoLm1heCgwLHRoaXMuYWxsQWxlcnRzLmxlbmd0aC0xKSl9KX1uZXh0KCl7dGhpcy5fY3VycmVudD10aGlzLmN1cnJlbnQ9PT10aGlzLmFjdGl2ZUFsZXJ0cy5s''@;'; + put 'put ''ZW5ndGgtMT8wOnRoaXMuY3VycmVudCsxLHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuX2N1cnJlbnQpfXByZXZpb3VzKCl7MCE9PXRoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aCYmKHRoaXMuX2N1cnJlbnQ9MD09PXRoaXMuY3VycmVudD90aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGgtMTp0aGlzLmN1''@;'; + put 'put ''cnJlbnQtMSx0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KSl9b3BlbigpezAhPT10aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGgmJih0aGlzLmN1cnJlbnRBbGVydHx8KHRoaXMuX2N1cnJlbnQ9MCksdGhpcy5fY2hhbmdlLm5leHQodGhpcy5fY3VycmVudCkpfWNsb3NlKGgpezAhPT10''@;'; + put 'put ''aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGgmJihoJiYodGhpcy5fY3VycmVudD1NYXRoLm1heCgwLHRoaXMuY3VycmVudC0xKSksdGhpcy5fY2hhbmdlLm5leHQodGhpcy5fY3VycmVudCkpfWRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbiYmdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUo''@;'; + put 'put ''KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksY1o9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLmljb25TZXJ2aWNlPWgsdGhp''@;'; + put 'put ''cy5jZHI9dix0aGlzLm11bHRpQWxlcnRTZXJ2aWNlPXksdGhpcy5jb21tb25TdHJpbmdzPUMsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuaXNTbWFsbD0hMSx0aGlzLmNsb3NhYmxlPSEwLHRoaXMuaXNBcHBMZXZlbD0hMSx0aGlzLmNsckNsb3NlQnV0dG9uQXJpYUxhYmVsPXRoaXMuY29t''@;'; + put 'put ''bW9uU3RyaW5ncy5rZXlzLmFsZXJ0Q2xvc2VCdXR0b25BcmlhTGFiZWwsdGhpcy5fY2xvc2VkPSExLHRoaXMuX2Nsb3NlZENoYW5nZWQ9bmV3IGFyKCExKX1uZ09uSW5pdCgpe3RoaXMubXVsdGlBbGVydFNlcnZpY2UmJnRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubXVsdGlBbGVydFNl''@;'; + put 'put ''cnZpY2UuY2hhbmdlcy5zdWJzY3JpYmUoKCk9Pnt0aGlzLmhpZGRlbj10aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnRBbGVydCE9PXRoaXN9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfXNldCBjbG9zZWQoaCl7aCYm''@;'; + put 'put ''IXRoaXMuX2Nsb3NlZD90aGlzLmNsb3NlKCk6IWgmJnRoaXMuX2Nsb3NlZCYmdGhpcy5vcGVuKCl9c2V0IGFsZXJ0VHlwZShoKXt0aGlzLmljb25TZXJ2aWNlLmFsZXJ0VHlwZT1ofWdldCBhbGVydFR5cGUoKXtyZXR1cm4gdGhpcy5pY29uU2VydmljZS5hbGVydFR5cGV9c2V0IGFsZXJ0SWNv''@;'; + put 'put ''blNoYXBlKGgpe3RoaXMuaWNvblNlcnZpY2UuYWxlcnRJY29uU2hhcGU9aH1nZXQgYWxlcnRDbGFzcygpe3JldHVybiB0aGlzLmljb25TZXJ2aWNlLmljb25JbmZvRnJvbVR5cGUodGhpcy5pY29uU2VydmljZS5hbGVydFR5cGUpLmNzc0NsYXNzfXNldCBoaWRkZW4oaCl7aCE9PXRoaXMuX2hp''@;'; + put 'put ''ZGRlbiYmKHRoaXMuX2hpZGRlbj1oLHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSl9Z2V0IGhpZGRlbigpe3JldHVybiB0aGlzLl9oaWRkZW59Y2xvc2UoKXt2YXIgaDtpZighdGhpcy5jbG9zYWJsZSlyZXR1cm47Y29uc3Qgdj0obnVsbD09PShoPXRoaXMubXVsdGlBbGVydFNlcnZpY2UpfHx2''@;'; + put 'put ''b2lkIDA9PT1oP3ZvaWQgMDpoLmN1cnJlbnRBbGVydCk9PT10aGlzO3RoaXMuX2Nsb3NlZD0hMCx0aGlzLm11bHRpQWxlcnRTZXJ2aWNlJiZ0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmNsb3NlKHYpLHRoaXMuX2Nsb3NlZENoYW5nZWQuZW1pdCghMCl9b3Blbigpe3RoaXMuX2Nsb3NlZD0hMSx0''@;'; + put 'put ''aGlzLm11bHRpQWxlcnRTZXJ2aWNlJiZ0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLm9wZW4oKSx0aGlzLl9jbG9zZWRDaGFuZ2VkLmVtaXQoITEpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChyaGUpLFh0KGQxKSxYdChicSw4KSxYdChucykpfSxk''@;'; + put 'put ''Llx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItYWxlcnQiXV0saW5wdXRzOntpc1NtYWxsOlsiY2xyQWxlcnRTaXplU21hbGwiLCJpc1NtYWxsIl0sY2xvc2FibGU6WyJjbHJBbGVydENsb3NhYmxlIiwiY2xvc2FibGUiXSxpc0FwcExldmVsOlsiY2xyQWxlcnRBcHBMZXZl''@;'; + put 'put ''bCIsImlzQXBwTGV2ZWwiXSxjbHJDbG9zZUJ1dHRvbkFyaWFMYWJlbDoiY2xyQ2xvc2VCdXR0b25BcmlhTGFiZWwiLGNsb3NlZDpbImNsckFsZXJ0Q2xvc2VkIiwiY2xvc2VkIl0sYWxlcnRUeXBlOlsiY2xyQWxlcnRUeXBlIiwiYWxlcnRUeXBlIl0sYWxlcnRJY29uU2hhcGU6WyJjbHJBbGVy''@;'; + put 'put ''dEljb24iLCJhbGVydEljb25TaGFwZSJdfSxvdXRwdXRzOntfY2xvc2VkQ2hhbmdlZDoiY2xyQWxlcnRDbG9zZWRDaGFuZ2UifSxmZWF0dXJlczpbaG8oW3JoZV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjEsY29uc3RzOltbImNsYXNzIiwiYWxlcnQiLDMsIm5nQ2xh''@;'; + put 'put ''c3MiLCJhbGVydC1oaWRkZW4iLCJhbGVydC1zbSIsImFsZXJ0LWFwcC1sZXZlbCIsNCwibmdJZiJdLFsxLCJhbGVydCIsMywibmdDbGFzcyJdLFsxLCJhbGVydC1pdGVtcyJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiY2xvc2UiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0''@;'; + put 'put ''dG9uIiwxLCJjbG9zZSIsMywiY2xpY2siXSxbInNoYXBlIiwid2luZG93LWNsb3NlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxybigwLEJmLDQsOCwiZGl2IiwwKSksMiZoJiZUdCgibmdJZiIsIXYuX2Nsb3NlZCl9LGRlcGVuZGVuY2llczpbVm8sbGMsWm9dLHN0eWxl''@;'; + put 'put ''czpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpibG9ja30iXX0pLGR9KSgpLEN5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuaWNvblNlcnZpY2U9aH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQocmhlKSl9LGQuXHUwMjc1''@;'; + put 'put ''Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1hbGVydC1pdGVtIl1dLGhvc3RBdHRyczpbMSwiYWxlcnQtaXRlbSJdLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczozLHZhcnM6Mixjb25zdHM6W1sxLCJhbGVydC1pY29uLXdyYXBwZXIiXSxbInJvbGUiLCJpbWciLDEsImFsZXJ0''@;'; + put 'put ''LWljb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLGl0KDAsImRpdiIsMCksQ3IoMSwiY2RzLWljb24iLDEpLHN0KCksTmkoMikpLDImaCYmKHV0KDEpLHppKCJzaGFwZSIsdi5pY29uU2VydmljZS5hbGVydEljb25TaGFwZSkoImFyaWEtbGFiZWwiLHYuaWNvblNlcnZp''@;'; + put 'put ''Y2UuYWxlcnRJY29uVGl0bGUpKX0sZGVwZW5kZW5jaWVzOltab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksZlo9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltb''@;'; + put 'put ''IiIsOCwiYWxlcnQtdGV4dCJdXX0pLGR9KSgpLGt5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5tdWx0aUFsZXJ0U2VydmljZT1oLHRoaXMuY29tbW9uU3RyaW5ncz12LHRoaXMuY3VycmVudEFsZXJ0Q2hhbmdlPW5ldyBhcighMSksdGhpcy5jdXJyZW50QWxlcnRJbmRl''@;'; + put 'put ''eENoYW5nZT1uZXcgYXJ9c2V0IGN1cnJlbnRBbGVydChoKXtoJiYodGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQ9aCl9Z2V0IGN1cnJlbnRBbGVydCgpe3JldHVybiB0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnRBbGVydH1zZXQgY3VycmVudEFsZXJ0SW5kZXgoaCl7''@;'; + put 'put ''dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50PWh9Z2V0IGN1cnJlbnRBbGVydEluZGV4KCl7cmV0dXJuIHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudH1uZ09uSW5pdCgpe3RoaXMubXVsdGlBbGVydFNlcnZpY2VDaGFuZ2VzPXRoaXMubXVsdGlBbGVydFNlcnZpY2UuY2hhbmdl''@;'; + put 'put ''cy5zdWJzY3JpYmUoaD0+e3RoaXMuY3VycmVudEFsZXJ0SW5kZXhDaGFuZ2UuZW1pdChoKSx0aGlzLmN1cnJlbnRBbGVydENoYW5nZS5lbWl0KHRoaXMubXVsdGlBbGVydFNlcnZpY2UuYWN0aXZlQWxlcnRzW2hdKX0pfXBhZ2VVcCgpe3RoaXMubXVsdGlBbGVydFNlcnZpY2UubmV4dCgpfXBh''@;'; + put 'put ''Z2VEb3duKCl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5wcmV2aW91cygpfW5nT25EZXN0cm95KCl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZUNoYW5nZXMudW5zdWJzY3JpYmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoYnEpLFh0KG5zKSl9''@;'; + put 'put ''LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1hbGVydHMtcGFnZXIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJhbGVydHMtcGFnZXIiLCEwKX0saW5wdXRzOntjdXJyZW50QWxlcnQ6WyJjbHJDdXJyZW50QWxlcnQiLCJj''@;'; + put 'put ''dXJyZW50QWxlcnQiXSxjdXJyZW50QWxlcnRJbmRleDpbImNsckN1cnJlbnRBbGVydEluZGV4IiwiY3VycmVudEFsZXJ0SW5kZXgiXX0sb3V0cHV0czp7Y3VycmVudEFsZXJ0Q2hhbmdlOiJjbHJDdXJyZW50QWxlcnRDaGFuZ2UiLGN1cnJlbnRBbGVydEluZGV4Q2hhbmdlOiJjbHJDdXJyZW50''@;'; + put 'put ''QWxlcnRJbmRleENoYW5nZSJ9LGRlY2xzOjksdmFyczo0LGNvbnN0czpbWzEsImFsZXJ0cy1wYWdlci1jb250cm9sIl0sWzEsImFsZXJ0cy1wYWdlLWRvd24iXSxbMSwiYWxlcnRzLXBhZ2VyLWJ1dHRvbiIsMywiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJsZWZ0Il0s''@;'; + put 'put ''WzEsImFsZXJ0cy1wYWdlci10ZXh0Il0sWzEsImFsZXJ0cy1wYWdlLXVwIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJkaXYiLDApKDEsImRpdiIsMSkoMiwiYnV0dG9uIiwyKSxZbigiY2xpY2siLGZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIHYucGFnZURvd24oKX0pLENyKDMsImNkcy1pY29uIiwzKSxzdCgpKCksaXQoNCwiZGl2Iiw0KSxVdCg1KSxzdCgpLGl0KDYsImRpdiIsNSkoNywiYnV0dG9uIiwyKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucGFnZVVwKCl9KSxDcig4LCJjZHMtaWNv''@;'; + put 'put ''biIsNiksc3QoKSgpKCkpLDImaCYmKHV0KDMpLHppKCJ0aXRsZSIsdi5jb21tb25TdHJpbmdzLmtleXMucHJldmlvdXMpLHV0KDIpLEZoKCIiLHYubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudCsxLCIgLyAiLHYubXVsdGlBbGVydFNlcnZpY2UuY291bnQsIiIpLHV0KDMpLHppKCJ0aXRsZSIs''@;'; + put 'put ''di5jb21tb25TdHJpbmdzLmtleXMubmV4dCkpfSxkZXBlbmRlbmNpZXM6W1pvXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxTeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLm11bHRpQWxlcnRTZXJ2aWNlPWgsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuY3VycmVudEFs''@;'; + put 'put ''ZXJ0SW5kZXhDaGFuZ2U9bmV3IGFyKCExKSx0aGlzLmN1cnJlbnRBbGVydENoYW5nZT1uZXcgYXIoITEpfXNldCBhbGxBbGVydHMoaCl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5tYW5hZ2UoaCl9c2V0IF9pbnB1dEN1cnJlbnRJbmRleChoKXtOdW1iZXIuaXNJbnRlZ2VyKGgpJiZoPj0wJiYo''@;'; + put 'put ''dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50PWgpfXNldCBjdXJyZW50QWxlcnRJbmRleChoKXt0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnQ9aH1nZXQgY3VycmVudEFsZXJ0SW5kZXgoKXtyZXR1cm4gdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50fXNldCBjdXJyZW50''@;'; + put 'put ''QWxlcnQoaCl7aCYmKHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudEFsZXJ0PWgpfWdldCBjdXJyZW50QWxlcnQoKXtyZXR1cm4gdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnR9Z2V0IGFsZXJ0cygpe3JldHVybiB0aGlzLmFsbEFsZXJ0cy5maWx0ZXIoaD0+ITE9PT1o''@;'; + put 'put ''LmhpZGRlbil9Z2V0IGN1cnJlbnRBbGVydFR5cGUoKXtyZXR1cm4gdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQ/dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQuYWxlcnRUeXBlOiIifW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc3Vic2NyaXB0aW9ucy5w''@;'; + put 'put ''dXNoKHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY2hhbmdlcy5zdWJzY3JpYmUoaD0+e3RoaXMuY3VycmVudEFsZXJ0SW5kZXhDaGFuZ2UubmV4dChoKSx0aGlzLmN1cnJlbnRBbGVydENoYW5nZS5uZXh0KHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudEFsZXJ0KX0pKX1uZ09uRGVzdHJv''@;'; + put 'put ''eSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSksdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5kZXN0cm95KCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KGJxKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQs''@;'; + put 'put ''c2VsZWN0b3JzOltbImNsci1hbGVydHMiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxjWiw0KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LmFsbEFsZXJ0cz1DKX19LGhvc3RWYXJzOjEwLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmko''@;'; + put 'put ''ImFsZXJ0cyIsITApKCJhbGVydC1kYW5nZXIiLCJkYW5nZXIiPT12LmN1cnJlbnRBbGVydFR5cGUpKCJhbGVydC1pbmZvIiwiaW5mbyI9PXYuY3VycmVudEFsZXJ0VHlwZSkoImFsZXJ0LXN1Y2Nlc3MiLCJzdWNjZXNzIj09di5jdXJyZW50QWxlcnRUeXBlKSgiYWxlcnQtd2FybmluZyIsIndh''@;'; + put 'put ''cm5pbmciPT12LmN1cnJlbnRBbGVydFR5cGUpfSxpbnB1dHM6e19pbnB1dEN1cnJlbnRJbmRleDpbImNsckN1cnJlbnRBbGVydEluZGV4IiwiX2lucHV0Q3VycmVudEluZGV4Il0sY3VycmVudEFsZXJ0OlsiY2xyQ3VycmVudEFsZXJ0IiwiY3VycmVudEFsZXJ0Il19LG91dHB1dHM6e2N1cnJl''@;'; + put 'put ''bnRBbGVydEluZGV4Q2hhbmdlOiJjbHJDdXJyZW50QWxlcnRJbmRleENoYW5nZSIsY3VycmVudEFsZXJ0Q2hhbmdlOiJjbHJDdXJyZW50QWxlcnRDaGFuZ2UifSxmZWF0dXJlczpbaG8oW2JxXSldLG5nQ29udGVudFNlbGVjdG9yczpCJCxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1szLCJjbHJD''@;'; + put 'put ''dXJyZW50QWxlcnRJbmRleCIsNCwibmdJZiJdLFszLCJjbHJDdXJyZW50QWxlcnRJbmRleCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKHdMKSxybigwLGZoLDEsMSwiY2xyLWFsZXJ0cy1wYWdlciIsMCksTmkoMSkpLDImaCYmVHQoIm5nSWYiLHYubXVsdGlBbGVydFNlcnZp''@;'; + put 'put ''Y2UuY291bnQ+MSl9LGRlcGVuZGVuY2llczpba3llLFZvXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9Il19KSxkfSkoKSxNeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKFRmLHBYLEtoLFZzZSxDayl9fXJldHVybiBkLlx1MDI3NWZh''@;'; + put 'put ''Yz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxUcyxuaGVdXX0pLGR9KSgpLG5SZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyho''@;'; + put 'put ''fHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltNeWVdfSksZH0pKCkscXM9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuTkFWX0xFVkVMXzE9MSxkLk5BVl9MRVZFTF8yPTIsZC5OQVZfQ0xPU0VfQUxMPSJOQVZfQ0xPU0VfQUxMIixkLk5BVl9P''@;'; + put 'put ''UEVOPSJOQVZfT1BFTiIsZC5OQVZfQ0xPU0U9Ik5BVl9DTE9TRSIsZC5OQVZfVE9HR0xFPSJOQVZfVE9HR0xFIixkLk5BVl9DTEFTU19IQU1CVVJHRVJfTUVOVT0ib3Blbi1oYW1idXJnZXItbWVudSIsZC5OQVZfQ0xBU1NfT1ZFUkZMT1dfTUVOVT0ib3Blbi1vdmVyZmxvdy1tZW51IixkLk5B''@;'; + put 'put ''Vl9DTEFTU19UUklHR0VSXzE9ImhlYWRlci1oYW1idXJnZXItdHJpZ2dlciIsZC5OQVZfQ0xBU1NfVFJJR0dFUl8yPSJoZWFkZXItb3ZlcmZsb3ctdHJpZ2dlciIsZC5OQVZfQ0xBU1NfTEVWRUxfMT0iY2xyLW5hdi1sZXZlbC0xIixkLk5BVl9DTEFTU19MRVZFTF8yPSJjbHItbmF2LWxldmVs''@;'; + put 'put ''LTIiLGR9KSgpO2NsYXNzIEV5ZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuX2NvbnRyb2xDb2RlPWcsdGhpcy5fbmF2TGV2ZWw9aH1nZXQgY29udHJvbENvZGUoKXtyZXR1cm4gdGhpcy5fY29udHJvbENvZGV9Z2V0IG5hdkxldmVsKCl7cmV0dXJuIHRoaXMuX25hdkxldmVsfX1sZXQgX3E9KCgp''@;'; + put 'put ''PT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMucmVzcG9uc2l2ZU5hdkxpc3Q9W10sdGhpcy5yZWdpc3Rlck5hdlN1YmplY3Q9bmV3IE1rLHRoaXMuY29udHJvbE5hdlN1YmplY3Q9bmV3ICRlLHRoaXMuY2xvc2VBbGxOYXZzKCl9Z2V0IHJlZ2lzdGVyZWROYXZzKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''cmVnaXN0ZXJOYXZTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpfWdldCBuYXZDb250cm9sKCl7cmV0dXJuIHRoaXMuY29udHJvbE5hdlN1YmplY3QuYXNPYnNlcnZhYmxlKCl9cmVnaXN0ZXJOYXYoaCl7IWh8fHRoaXMuaXNOYXZSZWdpc3RlcmVkKGgpfHwodGhpcy5yZXNwb25zaXZlTmF2TGlzdC5w''@;'; + put 'put ''dXNoKGgpLHRoaXMucmVnaXN0ZXJOYXZTdWJqZWN0Lm5leHQodGhpcy5yZXNwb25zaXZlTmF2TGlzdCkpfWlzTmF2UmVnaXN0ZXJlZChoKXtyZXR1cm4gdGhpcy5yZXNwb25zaXZlTmF2TGlzdC5pbmRleE9mKGgpPi0xJiYoY29uc29sZS5lcnJvcigiTXVsdGlwbGUgY2xyLW5hdi1sZXZlbCAi''@;'; + put 'put ''K2grIiBhdHRyaWJ1dGVzIGZvdW5kLiBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgb25seSBvbmUgZXhpc3RzIiksITApfXVucmVnaXN0ZXJOYXYoaCl7Y29uc3Qgdj10aGlzLnJlc3BvbnNpdmVOYXZMaXN0LmluZGV4T2YoaCk7dj4tMSYmKHRoaXMucmVzcG9uc2l2ZU5hdkxpc3Quc3BsaWNlKHYs''@;'; + put 'put ''MSksdGhpcy5yZWdpc3Rlck5hdlN1YmplY3QubmV4dCh0aGlzLnJlc3BvbnNpdmVOYXZMaXN0KSl9c2VuZENvbnRyb2xNZXNzYWdlKGgsdil7Y29uc3QgeT1uZXcgRXllKGgsdik7dGhpcy5jb250cm9sTmF2U3ViamVjdC5uZXh0KHkpfWNsb3NlQWxsTmF2cygpe2NvbnN0IGg9bmV3IEV5ZShx''@;'; + put 'put ''cy5OQVZfQ0xPU0VfQUxMLC05OTkpO3RoaXMuY29udHJvbE5hdlN1YmplY3QubmV4dChoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3Qi''@;'; + put 'put ''fSksZH0pKCksclJlPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxUc11dfSksZH0pKCk7ZnVuY3Rpb24gVHllKGQpe2NvbnN0''@;'; + put 'put ''IGc9ZC5jcmVhdGVFbGVtZW50KCJzcGFuIik7cmV0dXJuIGcuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxnLmNsYXNzTGlzdC5hZGQoIm9mZnNjcmVlbi1mb2N1cy1yZWJvdW5kZXIiKSxnfWxldCBmUmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLnJlbmRl''@;'; + put 'put ''cmVyPWgsdGhpcy5hY3RpdmU9ITEsU2woeSkmJih0aGlzLl9kb2N1bWVudD12LmdldChwcykpLEMuZm9jdXNUcmFwSWR8fChDLmZvY3VzVHJhcElkPWZ1bmN0aW9uIEdKKGQ9Il8iKXtyZXR1cm5gJHtkfSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YH0oKSksdGhp''@;'; + put 'put ''cy5mb2N1c1RyYXBFbGVtZW50PUN9ZW5hYmxlRm9jdXNUcmFwKCl7Y29uc3QgaD10aGlzLmZvY3VzVHJhcEVsZW1lbnQsdj1oLnF1ZXJ5U2VsZWN0b3IoIltjZHMtZmlyc3QtZm9jdXNdIikseT10aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKFhELmdldEN1cnJlbnQoKT09PWgpdGhy''@;'; + put 'put ''b3cgbmV3IEVycm9yKCJGb2N1cyB0cmFwIGlzIGFscmVhZHkgZW5hYmxlZCBmb3IgdGhpcyBpbnN0YW5jZS4iKTt0aGlzLmZpcnN0Rm9jdXNFbGVtZW50PXZ8fHRoaXMuZm9jdXNUcmFwRWxlbWVudCxmdW5jdGlvbiB1UmUoZCxnKXtpZihnJiYhZy50b3BSZWJvdW5kRWxlbWVudCYmIWcuYm90''@;'; + put 'put ''dG9tUmVib3VuZEVsZW1lbnQpe2cudG9wUmVib3VuZEVsZW1lbnQ9VHllKGQpLGcuYm90dG9tUmVib3VuZEVsZW1lbnQ9VHllKGQpO2NvbnN0IGg9Zy5wYXJlbnRFbGVtZW50LHY9Zy5uZXh0U2libGluZztoJiYoaC5pbnNlcnRCZWZvcmUoZy50b3BSZWJvdW5kRWxlbWVudCxnKSx2P2guaW5z''@;'; + put 'put ''ZXJ0QmVmb3JlKGcuYm90dG9tUmVib3VuZEVsZW1lbnQsdik6aC5hcHBlbmRDaGlsZChnLmJvdHRvbVJlYm91bmRFbGVtZW50KSl9fSh0aGlzLl9kb2N1bWVudCxoKSxmdW5jdGlvbiBuMWUoZCl7c3dpdGNoKGQudGFnTmFtZS50b0xvd2VyQ2FzZSgpKXtjYXNlImlucHV0IjpyZXR1cm4iaGlk''@;'; + put 'put ''ZGVuIiE9PWQuZ2V0QXR0cmlidXRlKCJ0eXBlIikmJiFkLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSYmIWQuaGFzQXR0cmlidXRlKCJyZWFkb25seSIpO2Nhc2UiYnV0dG9uIjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6cmV0dXJuIWQuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpO2Nh''@;'; + put 'put ''c2UiaWZyYW1lIjpjYXNlImVtYmVkIjpjYXNlIm9iamVjdCI6cmV0dXJuITA7Y2FzZSJhIjpjYXNlImFyZWEiOnJldHVybiBkLmhhc0F0dHJpYnV0ZSgiaHJlZiIpO2Nhc2UiYXVkaW8iOmNhc2UidmlkZW8iOnJldHVybiBkLmhhc0F0dHJpYnV0ZSgiY29udHJvbHMiKTtkZWZhdWx0OnJldHVy''@;'; + put 'put ''biBkLmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKXx8InRydWUiPT09ZC5nZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHwiYnV0dG9uIj09PWQuZ2V0QXR0cmlidXRlKCJyb2xlIikmJiFkLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKX19KGgpfHxoLnNldEF0dHJpYnV0ZSgidGFiaW5k''@;'; + put 'put ''ZXgiLCItMSIpLHkmJmZ1bmN0aW9uIGExZShkKXtyZXR1cm4hIWQmJmQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudH0oeSkmJih0aGlzLnByZXZpb3VzRm9jdXM9eSksWEQuc2V0Q3VycmVudChoKTtjb25zdCBDPXNldFRpbWVvdXQoKCk9Pnt0aGlzLmZpcnN0Rm9jdXNFbGVtZW50LmZvY3VzKCks''@;'; + put 'put ''Y2xlYXJUaW1lb3V0KEMpfSwxMCk7dGhpcy5vbkZvY3VzSW5FdmVudD10aGlzLm9uRm9jdXNJbi5iaW5kKHRoaXMpLHRoaXMudW5saXN0ZW49dGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5fZG9jdW1lbnQsImZvY3VzaW4iLHRoaXMub25Gb2N1c0luRXZlbnQpLHRoaXMuYWN0aXZlPSEwfXJl''@;'; + put 'put ''bW92ZUZvY3VzVHJhcCgpe3RoaXMudW5saXN0ZW4mJnRoaXMudW5saXN0ZW4oKSxmdW5jdGlvbiBjUmUoZCl7aWYoZCl7Y29uc3QgZz1kLnBhcmVudEVsZW1lbnQ7aWYoZyl7Y29uc3QgaD1kLnRvcFJlYm91bmRFbGVtZW50LHY9ZC5ib3R0b21SZWJvdW5kRWxlbWVudDtoJiZnLnJlbW92ZUNo''@;'; + put 'put ''aWxkKGgpLHYmJmcucmVtb3ZlQ2hpbGQodil9ZGVsZXRlIGQudG9wUmVib3VuZEVsZW1lbnQsZGVsZXRlIGQuYm90dG9tUmVib3VuZEVsZW1lbnR9fSh0aGlzLmZvY3VzVHJhcEVsZW1lbnQpLHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZm9jdXNUcmFwRWxlbWVudCwidGFi''@;'; + put 'put ''aW5kZXgiKSxYRC5hY3RpdmF0ZVByZXZpb3VzQ3VycmVudCgpLHRoaXMuYWN0aXZlPSExLHRoaXMucHJldmlvdXNGb2N1cyYmdGhpcy5wcmV2aW91c0ZvY3VzLmZvY3VzKCl9b25Gb2N1c0luKGgpeyFmdW5jdGlvbiBsUmUoZCxnLGgpe2NvbnN0IHY9WEQuZ2V0Q3VycmVudCgpPT09Zyx5PWZ1''@;'; + put 'put ''bmN0aW9uIHNSZShkLGcpe3JldHVybiBkPT09Zy50b3BSZWJvdW5kRWxlbWVudHx8ZD09PWcuYm90dG9tUmVib3VuZEVsZW1lbnR8fCEoZy5jb250YWlucyhkKXx8bnVsbCE9PWcmJmcuY29udGFpbnMoZCkpfShkLGcpO3YmJnk/KGg9aHx8ZykuZm9jdXMoKTpkLmZvY3VzKCl9KGguY29tcG9z''@;'; + put 'put ''ZWRQYXRoKClbMF0sdGhpcy5mb2N1c1RyYXBFbGVtZW50LHRoaXMuZmlyc3RGb2N1c0VsZW1lbnQpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7WHYoKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxJeWU9KCgpPT57Y2xhc3Mg''@;'; + put 'put ''ZCBleHRlbmRzIGZSZXtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3N1cGVyKEMsSSxoLHkubmF0aXZlRWxlbWVudCksdGhpcy5yZXNwb25zaXZlTmF2U2VydmljZT12LHRoaXMuZWxlbWVudFJlZj15LHRoaXMuX2lzT3Blbj0hMSxTbChoKSYmKHRoaXMuX2RvY3VtZW50PUkuZ2V0KHBzKSksdGhp''@;'; + put 'put ''cy5fc3Vic2NyaXB0aW9uPXYubmF2Q29udHJvbC5waXBlKEwyKGo9PmoubmF2TGV2ZWw9PT10aGlzLmxldmVsKSxMMigoe2NvbnRyb2xDb2RlOmp9KT0+aj09PXFzLk5BVl9PUEVOJiYhdGhpcy5pc09wZW58fGo9PT1xcy5OQVZfQ0xPU0UmJnRoaXMuaXNPcGVuKSkuc3Vic2NyaWJlKCh7Y29u''@;'; + put 'put ''dHJvbENvZGU6an0pPT57aiE9PXFzLk5BVl9PUEVOP3RoaXMuY2xvc2UoKTp0aGlzLm9wZW4oKX0pLHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQodi5uYXZDb250cm9sLnBpcGUoTDIoKHtjb250cm9sQ29kZTpqfSk9Pmo9PT1xcy5OQVZfQ0xPU0VfQUxMKSkuc3Vic2NyaWJlKCgpPT50aGlzLmNs''@;'; + put 'put ''b3NlKCkpKX1uZ09uSW5pdCgpe3RoaXMuY2xvc2VCdXR0b25BcmlhTGFiZWx8fCh0aGlzLmNsb3NlQnV0dG9uQXJpYUxhYmVsPXRoaXMuX2xldmVsPT09cXMuTkFWX0xFVkVMXzE/SGoucmVzcG9uc2l2ZU5hdlRvZ2dsZUNsb3NlOkhqLnJlc3BvbnNpdmVOYXZPdmVyZmxvd0Nsb3NlKSx0aGlz''@;'; + put 'put ''LmxldmVsPT09cXMuTkFWX0xFVkVMXzF8fHRoaXMubGV2ZWw9PT1xcy5OQVZfTEVWRUxfMj8odGhpcy5yZXNwb25zaXZlTmF2U2VydmljZS5yZWdpc3Rlck5hdih0aGlzLmxldmVsKSx0aGlzLmFkZE5hdkNsYXNzKHRoaXMubGV2ZWwpKTpjb25zb2xlLmVycm9yKCJOYXYgTGV2ZWwgY2FuIG9u''@;'; + put 'put ''bHkgYmUgMSBvciAyIil9bmdBZnRlclZpZXdJbml0KCl7Y29uc3QgaD0oKGQsZyk9Pntjb25zdCBoPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNkcy1pbnRlcm5hbC1jbG9zZS1idXR0b24iKTtyZXR1cm4gaC5zZXRBdHRyaWJ1dGUoImljb24tc2l6ZSIsIjMyIiksaC5zZXRBdHRy''@;'; + put 'put ''aWJ1dGUoImFyaWEtbGFiZWwiLGcpLGguc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSxoLnNldEF0dHJpYnV0ZSgidHlwZSIsImJ1dHRvbiIpLGguc2V0QXR0cmlidXRlKCJoaWRkZW4iLCJ0cnVlIiksaC5jbGFzc05hbWU9ImNsci1uYXYtY2xvc2UiLGh9KSgwLHRoaXMuY2xv''@;'; + put 'put ''c2VCdXR0b25BcmlhTGFiZWwpO3RoaXMucmVuZGVyZXIubGlzdGVuKGgsImNsaWNrIix0aGlzLmNsb3NlLmJpbmQodGhpcykpLHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LGgsdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmly''@;'; + put 'put ''c3RDaGlsZCksdGhpcy5fZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDw5OTImJnRoaXMuY2xvc2UoKX1hZGROYXZDbGFzcyhoKXtjb25zdCB2PXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdDtoPT09cXMuTkFWX0xFVkVMXzE/di5hZGQocXMuTkFWX0NMQVNTX0xFVkVM''@;'; + put 'put ''XzEpOmg9PT1xcy5OQVZfTEVWRUxfMiYmdi5hZGQocXMuTkFWX0NMQVNTX0xFVkVMXzIpfWdldCBsZXZlbCgpe3JldHVybiB0aGlzLl9sZXZlbH1nZXQgcmVzcG9uc2l2ZU5hdkNvZGVzKCl7cmV0dXJuIHFzfWdldCBpc09wZW4oKXtyZXR1cm4gdGhpcy5faXNPcGVufW9uUmVzaXplKGgpe2gu''@;'; + put 'put ''dGFyZ2V0LmlubmVyV2lkdGg8OTkyJiZ0aGlzLmlzT3Blbj90aGlzLmNsb3NlKCk6dGhpcy5zaG93TmF2aWdhdGlvbigpfW9wZW4oKXt0aGlzLl9pc09wZW49ITAsdGhpcy5zaG93TmF2aWdhdGlvbigpLHRoaXMuZW5hYmxlRm9jdXNUcmFwKCksdGhpcy5zaG93Q2xvc2VCdXR0b24oKSx0aGlz''@;'; + put 'put ''LnJlc3BvbnNpdmVOYXZTZXJ2aWNlLnNlbmRDb250cm9sTWVzc2FnZShxcy5OQVZfT1BFTix0aGlzLmxldmVsKX1jbG9zZSgpe3RoaXMuX2lzT3Blbj0hMSx0aGlzLmhpZGVOYXZpZ2F0aW9uKCksdGhpcy5yZW1vdmVGb2N1c1RyYXAoKSx0aGlzLmhpZGVDbG9zZUJ1dHRvbigpLHRoaXMucmVz''@;'; + put 'put ''cG9uc2l2ZU5hdlNlcnZpY2Uuc2VuZENvbnRyb2xNZXNzYWdlKHFzLk5BVl9DTE9TRSx0aGlzLmxldmVsKX1vbk1vdXNlQ2xpY2soaCl7bGV0IHY9aDtjb25zdCB5PXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O2Zvcig7djspe2lmKHY9PT15KXJldHVybjtpZih2LmNsYXNzTGlzdC5j''@;'; + put 'put ''b250YWlucygibmF2LWxpbmsiKSYmdGhpcy5fZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDw5OTIpcmV0dXJuIHZvaWQgdGhpcy5jbG9zZSgpO3Y9di5wYXJlbnROb2RlfX1oaWRlTmF2aWdhdGlvbigpe3RoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVF''@;'; + put 'put ''bGVtZW50LCJhcmlhLWhpZGRlbiIsInRydWUiKSx0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwiaGlkZGVuIiwidHJ1ZSIpfXNob3dOYXZpZ2F0aW9uKCl7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5h''@;'; + put 'put ''dGl2ZUVsZW1lbnQsImFyaWEtaGlkZGVuIiwiZmFsc2UiKSx0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwiaGlkZGVuIil9aGlkZUNsb3NlQnV0dG9uKCl7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVm''@;'; + put 'put ''Lm5hdGl2ZUVsZW1lbnQsImFyaWEtaGlkZGVuIiwidHJ1ZSIpLHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jbHItbmF2LWNsb3NlIiksImhpZGRlbiIsInRydWUiKX1zaG93Q2xvc2VCdXR0b24oKXt0aGlz''@;'; + put 'put ''LnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuY2xyLW5hdi1jbG9zZSIpLCJhcmlhLWhpZGRlbiIsImZhbHNlIiksdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1l''@;'; + put 'put ''bnQucXVlcnlTZWxlY3RvcigiLmNsci1uYXYtY2xvc2UiKSwiaGlkZGVuIil9bmdPbkRlc3Ryb3koKXt0aGlzLnJlc3BvbnNpdmVOYXZTZXJ2aWNlLnVucmVnaXN0ZXJOYXYodGhpcy5sZXZlbCksdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1m''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KEQyKSxYdChfcSksWHQoYm8pLFh0KEdhKSxYdChrcykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHItbmF2LWxldmVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmWW4oInJlc2l6''@;'; + put 'put ''ZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25SZXNpemUoQyl9LDAsSWIpKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25Nb3VzZUNsaWNrKEMudGFyZ2V0KX0pfSxpbnB1dHM6e19sZXZlbDpbImNsci1uYXYtbGV2ZWwiLCJfbGV2ZWwiXSxjbG9zZUJ1dHRvbkFyaWFMYWJlbDpbImNs''@;'; + put 'put ''b3NlQXJpYUxhYmVsIiwiY2xvc2VCdXR0b25BcmlhTGFiZWwiXX0sZmVhdHVyZXM6W0RvXX0pLGR9KSgpLGRSZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5q''@;'; + put 'put ''PWIwKHtpbXBvcnRzOltbYmEsVHMsbmhlXV19KSxkfSkoKSxEeWU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbIm5nLWNvbXBvbmVudCJdXSx2aWV3UXVlcnk6''@;'; + put 'put ''ZnVuY3Rpb24oaCx2KXtpZigxJmgmJnZvKHFyLDUpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYudGVtcGxhdGU9eS5maXJzdCl9fSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLHJuKDAsTGosMSwwLCJuZy10''@;'; + put 'put ''ZW1wbGF0ZSIpKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCkscFJlPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV1dfSksZH0p''@;'; + put 'put ''KCksaFo9KCgpPT57Y2xhc3MgZCBleHRlbmRzIG93e31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgZztyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuKGd8fChnPWZsKGQpKSkodnx8ZCl9fSgpLGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci10YWJzIl1d''@;'; + put 'put ''LGZlYXR1cmVzOltEb119KSxkfSkoKSxDcT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgYXd7Y29uc3RydWN0b3IoaCx2LHksQyl7aWYoIXYpdGhyb3cgbmV3IEVycm9yKCJjbHJUYWJMaW5rIGFuZCBjbHItdGFiLWNvbnRlbnQgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgYSBjbHItdGFi''@;'; + put 'put ''cyIpO3N1cGVyKGgsdiksdGhpcy5pZkFjdGl2ZT1DLHRoaXMuaWQ9eX1nZXQgZmxhdm9yKCl7cmV0dXJuIHRoaXMuaWZBY3RpdmUuY3VycmVudD09PXRoaXMuaWR9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KGQxKSxYdChoWiw4KSxYdChvbCks''@;'; + put 'put ''WHQoejIpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyVGFiTGluayIsIiJdLFsiY2xyLXRhYi1jb250ZW50Il1dLGZlYXR1cmVzOltEb119KSxkfSkoKTt2YXIgdzk9KCgpPT4oZnVuY3Rpb24oZCl7ZC5IT1JJWk9OVEFMPSJob3Jpem9udGFsIixkLlZFUlRJ''@;'; + put 'put ''Q0FMPSJ2ZXJ0aWNhbCJ9KHc5fHwodzk9e30pKSx3OSkpKCk7bGV0IGRaPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9jaGlsZHJlbj1bXSx0aGlzLmxheW91dD13OS5IT1JJWk9OVEFMfXJlZ2lzdGVyKGgpe3RoaXMuX2NoaWxkcmVuLnB1c2goaCl9Z2V0IGNoaWxkcmVuKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuX2NoaWxkcmVufWdldCBhY3RpdmVUYWIoKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5maW5kKGg9PmguYWN0aXZlKX1nZXQgb3ZlcmZsb3dUYWJzKCl7cmV0dXJuIHRoaXMubGF5b3V0PT09dzkuVkVSVElDQUw/W106dGhpcy5jaGlsZHJlbi5maWx0ZXIoaD0+ITA9PT1oLnRh''@;'; + put 'put ''YkxpbmsuaW5PdmVyZmxvdyl9dW5yZWdpc3RlcihoKXtjb25zdCB2PXRoaXMuY2hpbGRyZW4uaW5kZXhPZihoKTt2Pi0xJiZ0aGlzLmNoaWxkcmVuLnNwbGljZSh2LDEpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0''@;'; + put 'put ''b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxnUmU9MCxwWj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlPWgsdGhpcy5pZD12LHRoaXMuYXJpYVNlcnZpY2U9eSx0aGlzLnRhYnNTZXJ2aWNlPUMsdGhpcy50YWJDb250ZW50''@;'; + put 'put ''SWR8fCh0aGlzLnRhYkNvbnRlbnRJZD0iY2xyLXRhYi1jb250ZW50LSIrZ1JlKyspfXNldCB0ZW1wbGF0ZVJlZihoKXt0aGlzLnZpZXdSZWY9dGhpcy50YWJzU2VydmljZS50YWJDb250ZW50Vmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcoaCl9Z2V0IGFyaWFMYWJlbGxlZEJ5KCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuYXJpYVNlcnZpY2UuYXJpYUxhYmVsbGVkQnl9Z2V0IHRhYkNvbnRlbnRJZCgpe3JldHVybiB0aGlzLmFyaWFTZXJ2aWNlLmFyaWFDb250cm9sc31zZXQgdGFiQ29udGVudElkKGgpe3RoaXMuYXJpYVNlcnZpY2UuYXJpYUNvbnRyb2xzPWh9Z2V0IGFjdGl2ZSgpe3JldHVy''@;'; + put 'put ''biB0aGlzLmlmQWN0aXZlU2VydmljZS5jdXJyZW50PT09dGhpcy5pZH1uZ09uRGVzdHJveSgpe2NvbnN0IGg9dGhpcy50YWJzU2VydmljZS50YWJDb250ZW50Vmlld0NvbnRhaW5lci5pbmRleE9mKHRoaXMudmlld1JlZik7aD4tMSYmdGhpcy50YWJzU2VydmljZS50YWJDb250ZW50Vmlld0Nv''@;'; + put 'put ''bnRhaW5lci5yZW1vdmUoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KHoyKSxYdChvbCksWHQoYVMpLFh0KGRaKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci10YWItY29udGVudCJdXSx2aWV3UXVlcnk6ZnVu''@;'; + put 'put ''Y3Rpb24oaCx2KXtpZigxJmgmJnZvKHRTLDcpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYudGVtcGxhdGVSZWY9eS5maXJzdCl9fSxpbnB1dHM6e3RhYkNvbnRlbnRJZDpbImlkIiwidGFiQ29udGVudElkIl19LG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoyLHZhcnM6MCxjb25zdHM6''@;'; + put 'put ''W1sidGFiQ29udGVudFByb2plY3RlZFJlZiIsIiJdLFsicm9sZSIsInRhYnBhbmVsIiwxLCJ0YWItY29udGVudCIsMywiaWQiLCJoaWRkZW4iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLHJuKDAsQ0wsMiw2LCJuZy10ZW1wbGF0ZSIsbnVsbCwwLFpyKSl9LGVuY2Fwc3Vs''@;'; + put 'put ''YXRpb246Mn0pLGR9KSgpLG1SZT0wO2NvbnN0IGloZT1uZXcgemUoIlRBQlNfSUQiKSxBUmU9e3Byb3ZpZGU6aWhlLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gdlJlKCl7cmV0dXJuImNsci10YWJzLSIrbVJlKyt9fTtsZXQgeVJlPTAsZ1o9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxD''@;'; + put 'put ''LEksaix1ZSxfZSl7dGhpcy5pZkFjdGl2ZVNlcnZpY2U9aCx0aGlzLmlkPXYsdGhpcy5hcmlhU2VydmljZT15LHRoaXMuZWw9Qyx0aGlzLmNmcj1JLHRoaXMudmlld0NvbnRhaW5lclJlZj1qLHRoaXMudGFic1NlcnZpY2U9dWUsdGhpcy50YWJzSWQ9X2UsdGhpcy50YWJMaW5rSWR8fCh0aGlz''@;'; + put 'put ''LnRhYkxpbmtJZD0iY2xyLXRhYi1saW5rLSIreVJlKyspO2NvbnN0IEJlPXRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KER5ZSk7dGhpcy50ZW1wbGF0ZVJlZkNvbnRhaW5lcj10aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KEJlLHZvaWQgMCx2b2lkIDAsW1t0''@;'; + put 'put ''aGlzLmVsLm5hdGl2ZUVsZW1lbnRdXSkuaW5zdGFuY2V9c2V0IGluT3ZlcmZsb3coaCl7dGhpcy5faW5PdmVyZmxvdz1ofWdldCBpbk92ZXJmbG93KCl7cmV0dXJuIHRoaXMuX2luT3ZlcmZsb3cmJnRoaXMudGFic1NlcnZpY2UubGF5b3V0IT09dzkuVkVSVElDQUx9Z2V0IGFkZExpbmtDbGFz''@;'; + put 'put ''c2VzKCl7cmV0dXJuIXRoaXMuaW5PdmVyZmxvd31nZXQgYXJpYUNvbnRyb2xzKCl7cmV0dXJuIHRoaXMuYXJpYVNlcnZpY2UuYXJpYUNvbnRyb2xzfWdldCB0YWJMaW5rSWQoKXtyZXR1cm4gdGhpcy5hcmlhU2VydmljZS5hcmlhTGFiZWxsZWRCeX1zZXQgdGFiTGlua0lkKGgpe3RoaXMuYXJp''@;'; + put 'put ''YVNlcnZpY2UuYXJpYUxhYmVsbGVkQnk9aH1hY3RpdmF0ZSgpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ9dGhpcy5pZH1nZXQgYWN0aXZlKCl7cmV0dXJuIHRoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ9PT10aGlzLmlkfWdldCB0YWJpbmRleCgpe3JldHVybiB0aGlzLmFjdGl2''@;'; + put 'put ''ZT8wOi0xfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdCh6MiksWHQob2wpLFh0KGFTKSxYdChibyksWHQoa2QpLFh0KFVpKSxYdChkWiksWHQoaWhlKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclRhYkxpbmsi''@;'; + put 'put ''LCIiXV0saG9zdEF0dHJzOlsicm9sZSIsInRhYiIsInR5cGUiLCJidXR0b24iXSxob3N0VmFyczoxMixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5hY3RpdmF0ZSgpfSksMiZoJiYoUDMoImlkIix2LnRhYkxpbmtJZCksemko''@;'; + put 'put ''ImFyaWEtY29udHJvbHMiLHYuYXJpYUNvbnRyb2xzKSgiYXJpYS1zZWxlY3RlZCIsdi5hY3RpdmUpKCJ0YWJpbmRleCIsdi50YWJpbmRleCksRmkoImJ0biIsITApKCJidG4tbGluayIsdi5hZGRMaW5rQ2xhc3NlcykoIm5hdi1saW5rIix2LmFkZExpbmtDbGFzc2VzKSgiYWN0aXZlIix2LmFj''@;'; + put 'put ''dGl2ZSkpfSxpbnB1dHM6e2luT3ZlcmZsb3c6WyJjbHJUYWJMaW5rSW5PdmVyZmxvdyIsImluT3ZlcmZsb3ciXSx0YWJMaW5rSWQ6WyJpZCIsInRhYkxpbmtJZCJdfX0pLGR9KSgpLG1aPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlPWgsdGhp''@;'; + put 'put ''cy5pZD12LHRoaXMudGFic1NlcnZpY2U9eSx5LnJlZ2lzdGVyKHRoaXMpfW5nT25EZXN0cm95KCl7dGhpcy50YWJzU2VydmljZS51bnJlZ2lzdGVyKHRoaXMpfWdldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy5pZkFjdGl2ZVNlcnZpY2UuY3VycmVudD09PXRoaXMuaWR9fXJldHVybiBkLlx1MDI3''@;'; + put 'put ''NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KHoyKSxYdChvbCksWHQoZFopKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXRhYiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiYoeG8oeSxnWiw3KSx4byh5LHBaLDcp''@;'; + put 'put ''KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LnRhYkxpbms9Qy5maXJzdCksSGkoQz0kaSgpKSYmKHYudGFiQ29udGVudD1DLmZpcnN0KX19LGZlYXR1cmVzOltobyhbeGEsYVNdKV0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7''@;'; + put 'put ''MSZoJiYoSzAoKSxOaSgwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLG9oZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXRhYi1vdmVyZmxvdy1j''@;'; + put 'put ''b250ZW50Il1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiZHJvcGRvd24tbWVudSIsITApfSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDApKX0sZW5jYXBzdWxh''@;'; + put 'put ''dGlvbjoyfSksZH0pKCksa3E9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlPWgsdGhpcy50b2dnbGVTZXJ2aWNlPXYsdGhpcy50YWJzU2VydmljZT15LHRoaXMudGFic0lkPUMsdGhpcy5jb21tb25TdHJpbmdzPUksdGhpcy5zdWJzY3Jp''@;'; + put 'put ''cHRpb25zPVtdLHRoaXMuX3RhYkxpbmtEaXJlY3RpdmVzPVtdLHRoaXMudGFiTGlua0VsZW1lbnRzPVtdLHRoaXMuX21vdXNlZG93bj0hMX1nZXQgb3ZlcmZsb3dQb3NpdGlvbigpe3JldHVybiB0aGlzLl90YWJMaW5rRGlyZWN0aXZlcy5maWx0ZXIoaD0+IWguaW5PdmVyZmxvdykubGVuZ3Ro''@;'; + put 'put ''fXNldCB0YWJDb250ZW50Vmlld0NvbnRhaW5lcihoKXt0aGlzLnRhYnNTZXJ2aWNlLnRhYkNvbnRlbnRWaWV3Q29udGFpbmVyPWh9c2V0IGxheW91dChoKXtPYmplY3Qua2V5cyh3OSkubWFwKHY9Pnc5W3ZdKS5pbmRleE9mKGgpPj0wJiYodGhpcy50YWJzU2VydmljZS5sYXlvdXQ9aCl9Z2V0''@;'; + put 'put ''IGxheW91dCgpe3JldHVybiB0aGlzLnRhYnNTZXJ2aWNlLmxheW91dH1nZXQgdGFiTGlua0RpcmVjdGl2ZXMoKXtyZXR1cm4gdGhpcy5fdGFiTGlua0RpcmVjdGl2ZXN9Z2V0IGFjdGl2ZVRhYkluT3ZlcmZsb3coKXtyZXR1cm4gdGhpcy50YWJzU2VydmljZS5vdmVyZmxvd1RhYnMuaW5kZXhP''@;'; + put 'put ''Zih0aGlzLnRhYnNTZXJ2aWNlLmFjdGl2ZVRhYik+LTF9Z2V0IGFjdGl2ZVRhYlBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3RhYkxpbmtEaXJlY3RpdmVzLmZpbmRJbmRleChoPT5oLmFjdGl2ZSl9Z2V0IHRhYklkcygpe3JldHVybiB0aGlzLnRhYnNTZXJ2aWNlLmNoaWxkcmVuLm1hcChoPT5o''@;'; + put 'put ''LnRhYkxpbmsudGFiTGlua0lkKS5qb2luKCIgIil9Z2V0IGlzQ3VycmVudEluT3ZlcmZsb3coKXtyZXR1cm4gdGhpcy5rZXlGb2N1cy5jdXJyZW50Pj10aGlzLm92ZXJmbG93UG9zaXRpb259Z2V0IGlzVmVydGljYWwoKXtyZXR1cm4gdGhpcy5sYXlvdXQ9PT13OS5WRVJUSUNBTH10b2dnbGVP''@;'; + put 'put ''dmVyZmxvd09uUG9zaXRpb24oaCl7dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49aD49dGhpcy5vdmVyZmxvd1Bvc2l0aW9ufXNldCB0YWJPdmVyZmxvd0VsKGgpe3RoaXMuX3RhYk92ZXJmbG93RWw9aCYmaC5uYXRpdmVFbGVtZW50LHRoaXMudG9nZ2xlU2VydmljZS5vcGVuJiZoJiZ0aGlzLmtl''@;'; + put 'put ''eUZvY3VzLmZvY3VzQ3VycmVudCgpfXJlc2V0S2V5Rm9jdXNDdXJyZW50VG9BY3RpdmUoaCl7IXRoaXMua2V5Rm9jdXMubmF0aXZlRWxlbWVudC5jb250YWlucyhoLnJlbGF0ZWRUYXJnZXQpJiZ0aGlzLmtleUZvY3VzLmN1cnJlbnQhPT10aGlzLmFjdGl2ZVRhYlBvc2l0aW9uJiYodGhpcy5r''@;'; + put 'put ''ZXlGb2N1cy5jdXJyZW50PXRoaXMuYWN0aXZlVGFiUG9zaXRpb24pfXRvZ2dsZU92ZXJmbG93T25DbGljaygpe3RoaXMua2V5Rm9jdXMubW92ZVRvKHRoaXMuaXNDdXJyZW50SW5PdmVyZmxvdyYmdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4/dGhpcy5vdmVyZmxvd1Bvc2l0aW9uLTE6dGhpcy5v''@;'; + put 'put ''dmVyZmxvd1Bvc2l0aW9uKSx0aGlzLl9tb3VzZWRvd249ITF9b3Blbk92ZXJmbG93T25Gb2N1cygpeyF0aGlzLl9tb3VzZWRvd24mJiF0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiYmdGhpcy5rZXlGb2N1cy5tb3ZlVG8odGhpcy5hY3RpdmVUYWJQb3NpdGlvbil9Y2xvc2VPbkZvY3VzT3V0KGgp''@;'; + put 'put ''eyF0aGlzLl90YWJPdmVyZmxvd0VsLmNvbnRhaW5zKGgucmVsYXRlZFRhcmdldCkmJnRoaXMudG9nZ2xlU2VydmljZS5vcGVuJiYhdGhpcy5fbW91c2Vkb3duJiYodGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITEsdGhpcy50YWJMaW5rRWxlbWVudHNbdGhpcy5hY3RpdmVUYWJQb3NpdGlvbl09''@;'; + put 'put ''PT1oLnJlbGF0ZWRUYXJnZXQmJih0aGlzLmtleUZvY3VzLmN1cnJlbnQ9dGhpcy5hY3RpdmVUYWJQb3NpdGlvbikpfWNsb3NlT25Fc2NhcGVLZXkoKXt0aGlzLmtleUZvY3VzLm1vdmVUbyh0aGlzLm92ZXJmbG93UG9zaXRpb24tMSl9Y2xvc2VPbk91dHNpZGVDbGljayhoLHYpe2gudGFyZ2V0''@;'; + put 'put ''PT09dnx8di5jb250YWlucyhoLnRhcmdldCl8fCF0aGlzLl90YWJPdmVyZmxvd0VsLmNvbnRhaW5zKGgudGFyZ2V0KSYmdGhpcy5pc0N1cnJlbnRJbk92ZXJmbG93JiZ0aGlzLmtleUZvY3VzLm1vdmVUbyh0aGlzLm92ZXJmbG93UG9zaXRpb24tMSl9bGlzdGVuRm9yVGFiTGlua0NoYW5nZXMo''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy50YWJzLmNoYW5nZXMucGlwZShONSh0aGlzLnRhYnMubWFwKGg9PmgudGFiTGluaykpKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl90YWJMaW5rRGlyZWN0aXZlcz10aGlzLnRhYnMubWFwKGg9PmgudGFiTGluayksdGhpcy50YWJMaW5rRWxlbWVudHM9dGhpcy5fdGFiTGlu''@;'; + put 'put ''a0RpcmVjdGl2ZXMubWFwKGg9PmguZWwubmF0aXZlRWxlbWVudCl9KX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3RlbkZvclRhYkxpbmtDaGFuZ2VzKCkpLHZvaWQgMD09PXRoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQmJnRoaXMudGFi''@;'; + put 'put ''TGlua0RpcmVjdGl2ZXNbMF0mJnRoaXMudGFiTGlua0RpcmVjdGl2ZXNbMF0uYWN0aXZhdGUoKSx0aGlzLmtleUZvY3VzLmN1cnJlbnQ9dGhpcy5hY3RpdmVUYWJQb3NpdGlvbn1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PntoLnVuc3Vic2NyaWJlKCl9KX19''@;'; + put 'put ''cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoejIpLFh0KHpzKSxYdChkWiksWHQoaWhlKSxYdChucykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItdGFicyJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7''@;'; + put 'put ''aWYoMSZoJiZ4byh5LG1aLDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYudGFicz1DKX19LHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmKHZvKE9qLDcsVWkpLHZvKEVwLDcpLHZvKG9oZSw1LGJvKSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi50YWJDb250ZW50Vmlld0Nv''@;'; + put 'put ''bnRhaW5lcj15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5rZXlGb2N1cz15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi50YWJPdmVyZmxvd0VsPXkuZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJ0YWJzLXZlcnRpY2FsIix2LmlzVmVydGljYWwp''@;'; + put 'put ''fSxpbnB1dHM6e2xheW91dDpbImNsckxheW91dCIsImxheW91dCJdfSxmZWF0dXJlczpbaG8oW3oyLHpzLGRaLEFSZV0pXSxkZWNsczo1LHZhcnM6NCxjb25zdHM6W1sicm9sZSIsInRhYmxpc3QiLCJjbHJEaXJlY3Rpb24iLCJib3RoIiwxLCJuYXYiLDMsImNscktleUZvY3VzIiwiY2xyRm9j''@;'; + put 'put ''dXNDaGFuZ2UiLCJmb2N1c291dCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbNCwibmdJZiJdLFsidGFiQ29udGVudFZpZXdDb250YWluZXIiLCIiXSxbInJvbGUiLCJwcmVzZW50YXRpb24iLDEsIm5hdi1pdGVtIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiXSxbInJvbGUiLCJwcmVzZW50YXRp''@;'; + put 'put ''b24iLDEsInRhYnMtb3ZlcmZsb3ciLCJib3R0b20tcmlnaHQiXSxbInJvbGUiLCJhcHBsaWNhdGlvbiIsMSwibmF2LWl0ZW0iXSxbInR5cGUiLCJidXR0b24iLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImJ0biIsImJ0bi1saW5rIiwibmF2LWxpbmsiLCJkcm9wZG93bi10b2dnbGUiLDMsIm1v''@;'; + put 'put ''dXNlZG93biIsImZvY3VzIiwiY2xpY2siXSxbInRhYk92ZXJmbG93VHJpZ2dlciIsIiJdLFsic2hhcGUiLCJlbGxpcHNpcy1ob3Jpem9udGFsIiwic3RhdHVzIiwidG9nZ2xlU2VydmljZS5vcGVuID8gJ2luZm8nIDogbnVsbCJdLFszLCJrZXlkb3duLmVzYyIsImNsaWNrIiwiZm9jdXNvdXQi''@;'; + put 'put ''LDQsIm5nSWYiXSxbMywia2V5ZG93bi5lc2MiLCJjbGljayIsImZvY3Vzb3V0Il0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiLDQsIm5nSWYiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJ1bCIsMCksWW4oImNsckZvY3VzQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi50''@;'; + put 'put ''b2dnbGVPdmVyZmxvd09uUG9zaXRpb24oQyl9KSgiZm9jdXNvdXQiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnJlc2V0S2V5Rm9jdXNDdXJyZW50VG9BY3RpdmUoQyl9KSxybigxLFJqLDIsMSwibmctY29udGFpbmVyIiwxKSxybigyLCRjZSw3LDEwLCJuZy1jb250YWluZXIiLDIpLHN0KCksZjEo''@;'; + put 'put ''MyxudWxsLDMpKSwyJmgmJihUdCgiY2xyS2V5Rm9jdXMiLHYudGFiTGlua0VsZW1lbnRzKSx6aSgiYXJpYS1vd25zIix2LnRhYklkcyksdXQoMSksVHQoIm5nRm9yT2YiLHYudGFiTGlua0RpcmVjdGl2ZXMpLHV0KDEpLFR0KCJuZ0lmIix2LnRhYnNTZXJ2aWNlLm92ZXJmbG93VGFicy5sZW5n''@;'; + put 'put ''dGg+MCkpfSxkZXBlbmRlbmNpZXM6W0VwLG9oZSxacyxWbyxRZCxab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksd1JlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhuVil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxk''@;'; + put 'put ''Llx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxxYSxUcyxwUmUsY3ddLHFhXX0pLGR9KSgpLGFoZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5uYXZHcm91cENvdW50PTB9cmVnaXN0ZXJOYXZHcm91cCgpe3RoaXMubmF2R3JvdXBD''@;'; + put 'put ''b3VudCsrfXVucmVnaXN0ZXJOYXZHcm91cCgpe3RoaXMubmF2R3JvdXBDb3VudC0tfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxsaGU9KCgpPT57Y2xh''@;'; + put 'put ''c3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2ljb25zPTB9Z2V0IGhhc0ljb25zKCl7cmV0dXJuIHRoaXMuX2ljb25zPjB9cmVnaXN0ZXJJY29uKCl7dGhpcy5faWNvbnMrK311bnJlZ2lzdGVySWNvbigpe3RoaXMuX2ljb25zLS19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1''@;'; + put 'put ''cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLHNoZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fYW5pbWF0ZU9uQ29sbGFwc2VkPW5ldyAkZSx0aGlzLl9jb2xsYXBzZWRDaGFuZ2VkPW5ldyAkZSx0aGlz''@;'; + put 'put ''Ll9jb2xsYXBzZWQ9ITEsdGhpcy5fY29sbGFwc2libGU9ITF9Z2V0IGFuaW1hdGVPbkNvbGxhcHNlZCgpe3JldHVybiB0aGlzLl9hbmltYXRlT25Db2xsYXBzZWQuYXNPYnNlcnZhYmxlKCl9Z2V0IGNvbGxhcHNlZENoYW5nZWQoKXtyZXR1cm4gdGhpcy5fY29sbGFwc2VkQ2hhbmdlZC5hc09i''@;'; + put 'put ''c2VydmFibGUoKX1nZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuX2NvbGxhcHNlZH1zZXQgY29sbGFwc2VkKGgpe2g9ISFoLHRoaXMuY29sbGFwc2libGUmJnRoaXMuX2NvbGxhcHNlZCE9PWgmJnRoaXMudXBkYXRlQ29sbGFwc2VCZWhhdmlvcihoKX1nZXQgY29sbGFwc2libGUoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fY29sbGFwc2libGV9c2V0IGNvbGxhcHNpYmxlKGgpe3RoaXMuX2NvbGxhcHNpYmxlIT09KGg9ISFoKSYmKCFoJiZ0aGlzLmNvbGxhcHNlZCYmdGhpcy51cGRhdGVDb2xsYXBzZUJlaGF2aW9yKCExKSx0aGlzLl9jb2xsYXBzaWJsZT1oKX11cGRhdGVDb2xsYXBzZUJlaGF2aW9y''@;'; + put 'put ''KGgpe3RoaXMuX2FuaW1hdGVPbkNvbGxhcHNlZC5uZXh0KGgpLHRoaXMuX2NvbGxhcHNlZD1oLHRoaXMuX2NvbGxhcHNlZENoYW5nZWQubmV4dChoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0''@;'; + put 'put ''b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksTHllPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5fbmF2U2VydmljZT1oLHRoaXMuX25hdkljb25TZXJ2aWNlPXYsdGhpcy5fbmF2R3JvdXBSZWdpc3RyYXRpb25TZXJ2aWNlPXksdGhpcy5jb21tb25TdHJpbmdzPUMsdGhp''@;'; + put 'put ''cy5fY29sbGFwc2VkQ2hhbmdlZD1uZXcgYXIoITApLHRoaXMuX3N1Yj10aGlzLl9uYXZTZXJ2aWNlLmNvbGxhcHNlZENoYW5nZWQuc3Vic2NyaWJlKEk9Pnt0aGlzLl9jb2xsYXBzZWRDaGFuZ2VkLmVtaXQoSSl9KX1nZXQgY29sbGFwc2libGUoKXtyZXR1cm4gdGhpcy5fbmF2U2VydmljZS5j''@;'; + put 'put ''b2xsYXBzaWJsZX1zZXQgY29sbGFwc2libGUoaCl7dGhpcy5fbmF2U2VydmljZS5jb2xsYXBzaWJsZT1ofWdldCBjb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy5fbmF2U2VydmljZS5jb2xsYXBzZWR9c2V0IGNvbGxhcHNlZChoKXt0aGlzLl9uYXZTZXJ2aWNlLmNvbGxhcHNlZD1ofWdldCBoYXNO''@;'; + put 'put ''YXZHcm91cHMoKXtyZXR1cm4gdGhpcy5fbmF2R3JvdXBSZWdpc3RyYXRpb25TZXJ2aWNlLm5hdkdyb3VwQ291bnQ+MH1nZXQgaGFzSWNvbnMoKXtyZXR1cm4gdGhpcy5fbmF2SWNvblNlcnZpY2UuaGFzSWNvbnN9Z2V0IGFyaWFFeHBhbmRlZCgpe3JldHVybiB0aGlzLmNvbGxhcHNpYmxlP3Ro''@;'; + put 'put ''aXMuY29sbGFwc2VkPyJmYWxzZSI6InRydWUiOm51bGx9dG9nZ2xlQnlCdXR0b24oKXt0aGlzLmNvbGxhcHNlZD0hdGhpcy5jb2xsYXBzZWR9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdWIudW5zdWJzY3JpYmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; + put 'put ''ZCkoWHQoc2hlKSxYdChsaGUpLFh0KGFoZSksWHQobnMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXZlcnRpY2FsLW5hdiJdXSxob3N0QXR0cnM6WzEsImNsci12ZXJ0aWNhbC1uYXYiXSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezIm''@;'; + put 'put ''aCYmRmkoImlzLWNvbGxhcHNlZCIsdi5jb2xsYXBzZWQpKCJoYXMtbmF2LWdyb3VwcyIsdi5oYXNOYXZHcm91cHMpKCJoYXMtaWNvbnMiLHYuaGFzSWNvbnMpfSxpbnB1dHM6e2NvbGxhcHNpYmxlOlsiY2xyVmVydGljYWxOYXZDb2xsYXBzaWJsZSIsImNvbGxhcHNpYmxlIl0sY29sbGFwc2Vk''@;'; + put 'put ''OlsiY2xyVmVydGljYWxOYXZDb2xsYXBzZWQiLCJjb2xsYXBzZWQiXX0sb3V0cHV0czp7X2NvbGxhcHNlZENoYW5nZWQ6ImNsclZlcnRpY2FsTmF2Q29sbGFwc2VkQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFtzaGUsbGhlLGFoZV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6NCx2YXJz''@;'; + put 'put ''OjIsY29uc3RzOltbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsIm5hdi10cmlnZ2VyIiwzLCJvbi1jb2xsYXBzZSIsImNsaWNrIiw0LCJuZ0lmIl0sWzEsIm5hdi1jb250ZW50Il0sWyJjbGFzcyIsIm5hdi1idG4iLCJhcmlhLWhpZGRlbiIsInRydWUiLCJ0YWJpbmRleCIsIi0xIiwzLCJjbGlj''@;'; + put 'put ''ayIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwibmF2LXRyaWdnZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlLWRvdWJsZSIsMSwibmF2LXRyaWdnZXItaWNvbiJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwidGFiaW5kZXgiLCItMSIsMSwibmF2LWJ0biIsMywiY2xpY2siXV0s''@;'; + put 'put ''dGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLHJuKDAscWNlLDIsNiwiYnV0dG9uIiwwKSxpdCgxLCJkaXYiLDEpLE5pKDIpLHJuKDMsSCQsMSwxLCJidXR0b24iLDIpLHN0KCkpLDImaCYmKFR0KCJuZ0lmIix2LmNvbGxhcHNpYmxlKSx1dCgzKSxUdCgibmdJZiIsdi5jb2xsYXBz''@;'; + put 'put ''aWJsZSYmdi5jb2xsYXBzZWQpKX0sZGVwZW5kZW5jaWVzOltWbyxab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksdWhlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9leHBhbmRDaGFuZ2U9bmV3ICRlfWdldCBleHBhbmRDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fZXhwYW5kQ2hh''@;'; + put 'put ''bmdlLmFzT2JzZXJ2YWJsZSgpfWV4cGFuZCgpe3RoaXMuX2V4cGFuZENoYW5nZS5uZXh0KCEwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksT3llPSgo''@;'; + put 'put ''KT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuZGVzdHJveSQ9bmV3ICRlLHkmJnQ4KGgubmF0aXZlRWxlbWVudCwiY2xpY2siKS5waXBlKGo3KHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCk9Pnt5LmV4cGFuZCgpLHYubWFya0ZvckNoZWNrKCl9KX1uZ09uRGVzdHJveSgp''@;'; + put 'put ''e3RoaXMuZGVzdHJveSQubmV4dCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChibyksWHQoZDEpLFh0KHVoZSw4KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclZlcnRpY2FsTmF2TGluayIsIiJdXSxob3N0''@;'; + put 'put ''QXR0cnM6WzEsIm5hdi1saW5rIl0sYXR0cnM6bmZlLG5nQ29udGVudFNlbGVjdG9yczppZmUsZGVjbHM6Myx2YXJzOjAsY29uc3RzOltbMSwibmF2LXRleHQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChyZmUpLE5pKDApLGl0KDEsInNwYW4iLDApLE5pKDIsMSksc3QoKSl9''@;'; + put 'put ''LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGtSZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7ZnMuYWRkSWNvbnMoSXksZFgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIw''@;'; + put 'put ''KHtpbXBvcnRzOltbYmEsVHMscWEsdVNdLHFhLFRzLHVTXX0pLGR9KSgpLFNSZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltyUmUs''@;'; + put 'put ''ZFJlLHdSZSxrUmVdfSksZH0pKCksUnllPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5fZG9jdW1lbnQ9aH1zdG9wU2Nyb2xsaW5nKCl7dGhpcy5fZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJuby1zY3JvbGxpbmciKX1yZXN1bWVTY3JvbGxpbmcoKXt0aGlzLl9kb2N1''@;'; + put 'put ''bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygibm8tc2Nyb2xsaW5nIikmJnRoaXMuX2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgibm8tc2Nyb2xsaW5nIil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHBzKSl9LGQuXHUwMjc1''@;'; + put 'put ''cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksZjQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5fc2Nyb2xsaW5nU2VydmljZT1oLHRoaXMuY29tbW9uU3RyaW5ncz12LHRoaXMubW9kYWxJZD15LHRoaXMuX29wZW49ITEsdGhpcy5fb3Bl''@;'; + put 'put ''bkNoYW5nZWQ9bmV3IGFyKCExKSx0aGlzLmNsb3NhYmxlPSEwLHRoaXMuc3RhdGljQmFja2Ryb3A9ITAsdGhpcy5za2lwQW5pbWF0aW9uPSJmYWxzZSIsdGhpcy5ieXBhc3NTY3JvbGxTZXJ2aWNlPSExLHRoaXMuc3RvcENsb3NlPSExLHRoaXMuYWx0Q2xvc2U9bmV3IGFyKCExKSx0aGlzLmxh''@;'; + put 'put ''YmVsbGVkQnk9dGhpcy5tb2RhbElkfW5nT25DaGFuZ2VzKGgpeyF0aGlzLmJ5cGFzc1Njcm9sbFNlcnZpY2UmJmgmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoLCJfb3BlbiIpJiYoaC5fb3Blbi5jdXJyZW50VmFsdWU/dGhpcy5fc2Nyb2xsaW5nU2VydmljZS5zdG9w''@;'; + put 'put ''U2Nyb2xsaW5nKCk6dGhpcy5fc2Nyb2xsaW5nU2VydmljZS5yZXN1bWVTY3JvbGxpbmcoKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zY3JvbGxpbmdTZXJ2aWNlLnJlc3VtZVNjcm9sbGluZygpfW9wZW4oKXt0aGlzLl9vcGVufHwodGhpcy5fb3Blbj0hMCx0aGlzLl9vcGVuQ2hhbmdlZC5lbWl0''@;'; + put 'put ''KCEwKSl9Y2xvc2UoKXt0aGlzLnN0b3BDbG9zZT90aGlzLmFsdENsb3NlLmVtaXQoITEpOiF0aGlzLmNsb3NhYmxlfHwhdGhpcy5fb3Blbnx8KHRoaXMuX29wZW49ITEsdGhpcy5mb2N1c1RyYXAuc2V0UHJldmlvdXNGb2N1cygpKX1mYWRlRG9uZShoKXsidm9pZCI9PT1oLnRvU3RhdGUmJnRo''@;'; + put 'put ''aXMuX29wZW5DaGFuZ2VkLmVtaXQoITEpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChSeWUpLFh0KG5zKSxYdCh5MikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItbW9kYWwiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9u''@;'; + put 'put ''KGgsdil7aWYoMSZoJiZ2byhmdyw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LmZvY3VzVHJhcD15LmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZZbigia2V5dXAuZXNjYXBlIixmdW5jdGlvbigpe3JldHVybiB2LmNsb3NlKCl9LDAsbkIp''@;'; + put 'put ''LDImaCYmRmkoIm9wZW4iLHYuX29wZW4pfSxpbnB1dHM6e19vcGVuOlsiY2xyTW9kYWxPcGVuIiwiX29wZW4iXSxjbG9zYWJsZTpbImNsck1vZGFsQ2xvc2FibGUiLCJjbG9zYWJsZSJdLHNpemU6WyJjbHJNb2RhbFNpemUiLCJzaXplIl0sc3RhdGljQmFja2Ryb3A6WyJjbHJNb2RhbFN0YXRp''@;'; + put 'put ''Y0JhY2tkcm9wIiwic3RhdGljQmFja2Ryb3AiXSxza2lwQW5pbWF0aW9uOlsiY2xyTW9kYWxTa2lwQW5pbWF0aW9uIiwic2tpcEFuaW1hdGlvbiJdLGJ5cGFzc1Njcm9sbFNlcnZpY2U6WyJjbHJNb2RhbE92ZXJyaWRlU2Nyb2xsU2VydmljZSIsImJ5cGFzc1Njcm9sbFNlcnZpY2UiXSxzdG9w''@;'; + put 'put ''Q2xvc2U6WyJjbHJNb2RhbFByZXZlbnRDbG9zZSIsInN0b3BDbG9zZSJdLGxhYmVsbGVkQnk6WyJjbHJNb2RhbExhYmVsbGVkQnlJZCIsImxhYmVsbGVkQnkiXX0sb3V0cHV0czp7X29wZW5DaGFuZ2VkOiJjbHJNb2RhbE9wZW5DaGFuZ2UiLGFsdENsb3NlOiJjbHJNb2RhbEFsdGVybmF0ZUNs''@;'; + put 'put ''b3NlIn0sZmVhdHVyZXM6W2hvKFtPY10sW1J5ZV0pLFAyXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bGZlLGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWyJjbHJGb2N1c1RyYXAiLCIiLCJjbGFzcyIsIm1vZGFsIiw0LCJuZ0lmIl0sWyJjbHJGb2N1c1RyYXAiLCIiLDEsIm1vZGFsIl0sWyJyb2xlIiwi''@;'; + put 'put ''ZGlhbG9nIiwiYXJpYS1tb2RhbCIsInRydWUiLDEsIm1vZGFsLWRpYWxvZyJdLFsxLCJjbHItc3Itb25seSJdLFsxLCJtb2RhbC1jb250ZW50LXdyYXBwZXIiXSxbMSwibW9kYWwtY29udGVudCJdLFsxLCJtb2RhbC1oZWFkZXItLWFjY2Vzc2libGUiXSxbImNsckZvY3VzT25WaWV3SW5pdCIs''@;'; + put 'put ''IiIsMSwibW9kYWwtdGl0bGUtd3JhcHBlciIsMywiaWQiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImNsb3NlIiwzLCJjbGljayIsNCwibmdJZiJdLFsxLCJtb2RhbC1ib2R5LXdyYXBwZXIiXSxbImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibW9kYWwtYmFja2Ryb3AiLDMsImNsaWNrIl0s''@;'; + put 'put ''WyJ0eXBlIiwiYnV0dG9uIiwxLCJjbG9zZSIsMywiY2xpY2siXSxbInNoYXBlIiwid2luZG93LWNsb3NlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoYWZlKSxybigwLG9mZSwxNywxNCwiZGl2IiwwKSksMiZoJiZUdCgibmdJZiIsdi5fb3Blbil9LGRlcGVuZGVuY2llczpb''@;'; + put 'put ''Vm8sZncsT2ZlLFpvXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6bm9uZX0ub3Blbltfbmdob3N0LSVDT01QJV17ZGlzcGxheTppbmxpbmV9Il0sZGF0YTp7YW5pbWF0aW9uOlskaCgiZmFkZURvd24iLFtidSgiKiA9PiBmYWxzZSIsW3lsKHtvcGFjaXR5OjAsdHJhbnNmb3Jt''@;'; + put 'put ''OiJ0cmFuc2xhdGUoMCwgLTI1JSkifSksRGMoIjAuMnMgZWFzZS1pbi1vdXQiKV0pLGJ1KCJmYWxzZSA9PiAqIixbRGMoIjAuMnMgZWFzZS1pbi1vdXQiLHlsKHtvcGFjaXR5OjAsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoMCwgLTI1JSkifSkpXSldKSwkaCgiZmFkZSIsW2J1KCJ2b2lkID0+ICoi''@;'; + put 'put ''LFt5bCh7b3BhY2l0eTowfSksRGMoIjAuMnMgZWFzZS1pbi1vdXQiLHlsKHtvcGFjaXR5Oi44NX0pKV0pLGJ1KCIqID0+IHZvaWQiLFtEYygiMC4ycyBlYXNlLWluLW91dCIseWwoe29wYWNpdHk6MH0pKV0pXSldfX0pLGR9KSgpLGg0PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkp''@;'; + put 'put ''e3RoaXMucmVuZGVyZXI9aCx0aGlzLmhvc3Q9dix0aGlzLnRhYmluZGV4PSIwIix0aGlzLnVubGlzdGVuZXJzPVtdLHkucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLm9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+dGhpcy5hZGRPclJlbW92ZVRhYkluZGV4KCkpLHRoaXMub2Jz''@;'; + put 'put ''ZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCksdGhpcy51bmxpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCJtb3VzZXVwIiwoKT0+e3RoaXMuYWRkT3JSZW1vdmVUYWJJbmRleCgpfSksdGhpcy5yZW5kZXJlci5s''@;'; + put 'put ''aXN0ZW4odGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsIm1vdXNlZG93biIsKCk9Pnt0aGlzLnJlbW92ZVRhYkluZGV4KCl9KSl9KX1uZ09uRGVzdHJveSgpe2Zvcig7dGhpcy51bmxpc3RlbmVycy5sZW5ndGg7KXRoaXMudW5saXN0ZW5lcnMucG9wKCkoKTt0aGlzLm9ic2VydmVyLmRpc2Nvbm5l''@;'; + put 'put ''Y3QoKSx0aGlzLm9ic2VydmVyPW51bGx9YWRkVGFiSW5kZXgoKXt0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwidGFiaW5kZXgiLHRoaXMudGFiaW5kZXgpfXJlbW92ZVRhYkluZGV4KCl7dGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhp''@;'; + put 'put ''cy5ob3N0Lm5hdGl2ZUVsZW1lbnQsInRhYmluZGV4Iil9YWRkT3JSZW1vdmVUYWJJbmRleCgpe2NvbnN0IGg9dGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtoLmNsaWVudEhlaWdodDxoLnNjcm9sbEhlaWdodD90aGlzLmFkZFRhYkluZGV4KCk6dGhpcy5yZW1vdmVUYWJJ''@;'; + put 'put ''bmRleCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChHYSksWHQoYm8pLFh0KF9sKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsOCwibW9kYWwtYm9keSJdXX0pLGR9KSgpLEJ5ZT0oKCk9PntjbGFzcyBke2NvbnN0''@;'; + put 'put ''cnVjdG9yKCl7ZnMuYWRkSWNvbnMoQ2spfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsVHMsYXEsdVNdLFRzLHVTXX0pLGR9KSgpO2NvbnN0IE1SZT17''@;'; + put 'put ''InRvcC1sZWZ0Ijp7YW5jaG9yUG9pbnQ6ZzAuVE9QX0NFTlRFUixwb3BvdmVyUG9pbnQ6ZzAuQk9UVE9NX1JJR0hULG9mZnNldFk6LTEwLG9mZnNldFg6MH0sInRvcC1taWRkbGUiOnthbmNob3JQb2ludDpnMC5UT1BfQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5CT1RUT01fQ0VOVEVSLG9mZnNl''@;'; + put 'put ''dFk6LTEwLG9mZnNldFg6MH0sInRvcC1yaWdodCI6e2FuY2hvclBvaW50OmcwLlRPUF9DRU5URVIscG9wb3ZlclBvaW50OmcwLkJPVFRPTV9MRUZULG9mZnNldFk6LTEwLG9mZnNldFg6MH0sInJpZ2h0LXRvcCI6e2FuY2hvclBvaW50OmcwLlJJR0hUX0NFTlRFUixwb3BvdmVyUG9pbnQ6ZzAu''@;'; + put 'put ''TEVGVF9CT1RUT00sb2Zmc2V0WToyLG9mZnNldFg6MTR9LCJyaWdodC1taWRkbGUiOnthbmNob3JQb2ludDpnMC5SSUdIVF9DRU5URVIscG9wb3ZlclBvaW50OmcwLkxFRlRfQ0VOVEVSLG9mZnNldFk6NixvZmZzZXRYOjE0fSwicmlnaHQtYm90dG9tIjp7YW5jaG9yUG9pbnQ6ZzAuUklHSFRf''@;'; + put 'put ''Q0VOVEVSLHBvcG92ZXJQb2ludDpnMC5MRUZUX1RPUCxvZmZzZXRZOi0xLG9mZnNldFg6MTR9LCJib3R0b20tcmlnaHQiOnthbmNob3JQb2ludDpnMC5CT1RUT01fQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5UT1BfTEVGVCxvZmZzZXRZOjksb2Zmc2V0WDotMX0sImJvdHRvbS1taWRkbGUiOnth''@;'; + put 'put ''bmNob3JQb2ludDpnMC5CT1RUT01fQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5UT1BfQ0VOVEVSLG9mZnNldFk6OSxvZmZzZXRYOjEyfSwiYm90dG9tLWxlZnQiOnthbmNob3JQb2ludDpnMC5CT1RUT01fQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5UT1BfUklHSFQsb2Zmc2V0WTo5LG9mZnNldFg6''@;'; + put 'put ''MH0sImxlZnQtYm90dG9tIjp7YW5jaG9yUG9pbnQ6ZzAuTEVGVF9DRU5URVIscG9wb3ZlclBvaW50OmcwLlJJR0hUX1RPUCxvZmZzZXRZOjAsb2Zmc2V0WDotMTR9LCJsZWZ0LW1pZGRsZSI6e2FuY2hvclBvaW50OmcwLkxFRlRfQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5SSUdIVF9DRU5URVIs''@;'; + put 'put ''b2Zmc2V0WTo0LG9mZnNldFg6LTE0fSwibGVmdC10b3AiOnthbmNob3JQb2ludDpnMC5MRUZUX0NFTlRFUixwb3BvdmVyUG9pbnQ6ZzAuUklHSFRfQk9UVE9NLG9mZnNldFk6MCxvZmZzZXRYOi0xNH0sZGVmYXVsdDp7YW5jaG9yUG9pbnQ6ZzAuUklHSFRfQ0VOVEVSLHBvcG92ZXJQb2ludDpn''@;'; + put 'put ''MC5MRUZUX0NFTlRFUixvZmZzZXRZOjYsb2Zmc2V0WDoxNH19LEVSZT1bInRvcC1sZWZ0IiwidG9wLW1pZGRsZSIsInRvcC1yaWdodCIsInJpZ2h0LXRvcCIsInJpZ2h0LW1pZGRsZSIsInJpZ2h0LWJvdHRvbSIsImJvdHRvbS1yaWdodCIsImJvdHRvbS1taWRkbGUiLCJib3R0b20tbGVmdCIs''@;'; + put 'put ''ImxlZnQtYm90dG9tIiwibGVmdC1taWRkbGUiLCJsZWZ0LXRvcCJdO2xldCBQeWU9KCgpPT57Y2xhc3MgZCBleHRlbmRzIHRoZXtjb25zdHJ1Y3RvcihoLHYseSxDLEksaix1ZSxfZSl7aWYoc3VwZXIoaCx2KSx0aGlzLmNvbW1vblN0cmluZ3M9eSx0aGlzLnNpZ25wb3N0Q29udGVudElkPUMs''@;'; + put 'put ''dGhpcy5zaWducG9zdElkU2VydmljZT1JLHRoaXMuc2lnbnBvc3RGb2N1c01hbmFnZXI9aix0aGlzLnBsYXRmb3JtSWQ9dWUsIXYpdGhyb3cgbmV3IEVycm9yKCJjbHItc2lnbnBvc3QtY29udGVudCBzaG91bGQgb25seSBiZSB1c2VkIGluc2lkZSBvZiBhIGNsci1zaWducG9zdCIpO3RoaXMu''@;'; + put 'put ''cG9zaXRpb249InJpZ2h0LW1pZGRsZSIsdGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrPSEwLHRoaXMuc2lnbnBvc3RJZFNlcnZpY2Uuc2V0SWQoQyksdGhpcy5kb2N1bWVudD1fZX1jbG9zZSgpe3RoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExfWdldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLl9w''@;'; + put 'put ''b3NpdGlvbn1zZXQgcG9zaXRpb24oaCl7dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsdGhpcy5wb3NpdGlvbiksdGhpcy5fcG9zaXRpb249aCYmRVJlLmluZGV4T2YoaCk+LTE/aDoicmlnaHQtbWlkZGxlIix0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRo''@;'; + put 'put ''aXMuZWwubmF0aXZlRWxlbWVudCx0aGlzLnBvc2l0aW9uKTtjb25zdCB2PU1SZVt0aGlzLnBvc2l0aW9uXTt0aGlzLmFuY2hvclBvaW50PXYuYW5jaG9yUG9pbnQsdGhpcy5wb3BvdmVyUG9pbnQ9di5wb3BvdmVyUG9pbnQsdGhpcy5wb3BvdmVyT3B0aW9ucy5vZmZzZXRZPXYub2Zmc2V0WSx0''@;'; + put 'put ''aGlzLnBvcG92ZXJPcHRpb25zLm9mZnNldFg9di5vZmZzZXRYfW5nT25EZXN0cm95KCl7c3VwZXIubmdPbkRlc3Ryb3koKSxTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmdGhpcy5zaWducG9z''@;'; + put 'put ''dEZvY3VzTWFuYWdlci5mb2N1c1RyaWdnZXIoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoa3MpLFh0KHRmLDgpLFh0KG5zKSxYdCh5MiksWHQoWmZlKSxYdChqZmUpLFh0KEQyKSxYdChwcykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNl''@;'; + put 'put ''bGVjdG9yczpbWyJjbHItc2lnbnBvc3QtY29udGVudCJdXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKFAzKCJpZCIsdi5zaWducG9zdENvbnRlbnRJZCksRmkoInNpZ25wb3N0LWNvbnRlbnQiLCEwKSl9LGlucHV0czp7cG9zaXRpb246WyJjbHJQb3NpdGlv''@;'; + put 'put ''biIsInBvc2l0aW9uIl19LGZlYXR1cmVzOltobyhbT2NdKSxEb10sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjcsdmFyczozLGNvbnN0czpbWzEsInNpZ25wb3N0LXdyYXAiXSxbMSwicG9wb3Zlci1wb2ludGVyIl0sWzEsInNpZ25wb3N0LWNvbnRlbnQtaGVhZGVyIl0sWyJ0eXBlIiwi''@;'; + put 'put ''YnV0dG9uIiwxLCJzaWducG9zdC1hY3Rpb24iLCJjbG9zZSIsMywiY2xpY2siXSxbInNoYXBlIiwid2luZG93LWNsb3NlIl0sWzEsInNpZ25wb3N0LWNvbnRlbnQtYm9keSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksaXQoMCwiZGl2IiwwKSxDcigxLCJkaXYiLDEpLGl0''@;'; + put 'put ''KDIsImRpdiIsMikoMywiYnV0dG9uIiwzKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuY2xvc2UoKX0pLENyKDQsImNkcy1pY29uIiw0KSxzdCgpKCksaXQoNSwiZGl2Iiw1KSxOaSg2KSxzdCgpKCkpLDImaCYmKHV0KDMpLHppKCJhcmlhLWxhYmVsIix2LmNvbW1vblN0cmluZ3Mu''@;'; + put 'put ''a2V5cy5zaWducG9zdENsb3NlKSgiYXJpYS1jb250cm9scyIsdi5zaWducG9zdENvbnRlbnRJZCksdXQoMSksemkoInRpdGxlIix2LmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSkpfSxkZXBlbmRlbmNpZXM6W1pvXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSx4UmU9KCgpPT57Y2xhc3MgZHtj''@;'; + put 'put ''b25zdHJ1Y3Rvcigpe2ZzLmFkZEljb25zKENrLHBYKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLFRzLHVTXSxxYV19KSxkfSkoKSxPUmU9KCgpPT57''@;'; + put 'put ''Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXSxxYSxUc119KSxkfSkoKSxSUmU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFj''@;'; + put 'put ''PWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbbmhlLHhSZSxPUmVdfSksZH0pKCksQlJlPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8''@;'; + put 'put ''fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV1dfSksZH0pKCksRlJlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhqc2UsWnNlLGdYLEdzZSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1''@;'; + put 'put ''cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxUcyxEbF0sVHMsRGxdfSksZH0pKCksWlJlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtmcy5hZGRJY29ucyhnWCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlv''@;'; + put 'put ''bihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxCeWUsTXllXV19KSxkfSkoKSxVTD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5c''@;'; + put 'put ''dTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltuUmUsVU9lLFRzLEJ5ZSxSZmUscWEsYXEsdVMsVE9lLE0sWUFlLFNSZSxSUmUsWlJlLHFBZSxJcyxEbCxCUmUsUmMsRlJlXX0pLGR9KSgpO2Z1bmN0aW9uIHpSZShkLGcpezEmZCYmKGl0KDAsInNwYW4iLDEw''@;'; + put 'put ''KSxVdCgxLCJsb2FkaW5nIiksc3QoKSl9ZnVuY3Rpb24gR1JlKGQsZyl7MSZkJiYoaXQoMCwic3BhbiIsMTEpLFV0KDEsImxvYWRlZCIpLHN0KCkpfWZ1bmN0aW9uIFdSZShkLGcpezEmZCYmKGl0KDAsInNwYW4iLDEyKSxVdCgxLCJmYWlsZWQiKSxzdCgpKX1mdW5jdGlvbiBZUmUoZCxnKXtp''@;'; + put 'put ''ZigxJmQmJihpdCgwLCJwIikoMSwiY29kZSIpLFV0KDIpLHN0KCksVXQoMywiIFx4YTAgIikscm4oNCx6UmUsMiwwLCJzcGFuIiw3KSxybig1LEdSZSwyLDAsInNwYW4iLDgpLHJuKDYsV1JlLDIsMCwic3BhbiIsOSksc3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDIpLEdpKGgu''@;'; + put 'put ''cHJvZ3JhbSksdXQoMiksVHQoIm5nSWYiLGgucnVubmluZyksdXQoMSksVHQoIm5nSWYiLCFoLnJ1bm5pbmcmJmguc3VjY2Vzc2Z1bCksdXQoMSksVHQoIm5nSWYiLCFoLnJ1bm5pbmcmJiFoLnN1Y2Nlc3NmdWwpfX1mdW5jdGlvbiBVUmUoZCxnKXtpZigxJmQmJihpdCgwLCJjbHItc2lnbnBv''@;'; + put 'put ''c3QtY29udGVudCIsNSkscm4oMSxZUmUsNyw0LCJwIiw2KSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKTtUdCgiY2xyUG9zaXRpb24iLCJib3R0b20tbWlkZGxlIiksdXQoMSksVHQoIm5nRm9yT2YiLGgucmVxdWVzdHMpfX1sZXQgUVJlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlz''@;'; + put 'put ''LmxvYWRpbmc9ITEsdGhpcy5yZXF1ZXN0cz1bXSx0aGlzLl9sb2FkaW5nU3ViPW5ldyBUZX1uZ09uSW5pdCgpe31uZ09uRGVzdHJveSgpe3RoaXMuX2xvYWRpbmdTdWIudW5zdWJzY3JpYmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUw''@;'; + put 'put ''Mjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1sb2FkaW5nLWluZGljYXRvciJdXSxkZWNsczo2LHZhcnM6Nixjb25zdHM6W1sxLCJsb2FkaW5nLWluZGljYXRvciJdLFsiY2xyU2lnbnBvc3RUcmlnZ2VyIiwiIiwxLCJzcGlubmVyIiwic3Bpbm5lci1zbSIsInNwaW5uZXItaW52''@;'; + put 'put ''ZXJzZSJdLFsiY2xyU2lnbnBvc3RUcmlnZ2VyIiwiIiwic2hhcGUiLCJjaGVjayIsInNpemUiLCIyMCIsMSwiaXMtaW5mbyJdLFsiY2xyU2lnbnBvc3RUcmlnZ2VyIiwiIiwic2hhcGUiLCJlcnJvciIsInNpemUiLCIyNCIsMSwiaXMtZXJyb3IiXSxbMywiY2xyUG9zaXRpb24iLDQsImNscklm''@;'; + put 'put ''T3BlbiJdLFszLCJjbHJQb3NpdGlvbiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNsYXNzIiwicnVubmluZyIsNCwibmdJZiJdLFsiY2xhc3MiLCJzdWNjZXNzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImZhaWwiLDQsIm5nSWYiXSxbMSwicnVubmluZyJdLFsxLCJzdWNjZXNzIl0sWzEsImZh''@;'; + put 'put ''aWwiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJkaXYiLDApKDEsImNsci1zaWducG9zdCIpLENyKDIsInNwYW4iLDEpKDMsImNsci1pY29uIiwyKSg0LCJjbHItaWNvbiIsMykscm4oNSxVUmUsMiwyLCJjbHItc2lnbnBvc3QtY29udGVudCIsNCksc3QoKSgpKSwyJmgm''@;'; + put 'put ''Jih1dCgyKSxSMygiZGlzcGxheSIsdi5sb2FkaW5nPyJpbmxpbmUtYmxvY2siOiJub25lIiksdXQoMSksUjMoImRpc3BsYXkiLCF2LmxvYWRpbmcmJnYucmVxdWVzdHMubGVuZ3RoPjAmJnYucmVxdWVzdHNbMF0uc3VjY2Vzc2Z1bD8iaW5saW5lLWJsb2NrIjoibm9uZSIpLHV0KDEpLFIzKCJk''@;'; + put 'put ''aXNwbGF5Iiwhdi5sb2FkaW5nJiZ2LnJlcXVlc3RzLmxlbmd0aD4wJiYhdi5yZXF1ZXN0c1swXS5zdWNjZXNzZnVsPyJpbmxpbmUtYmxvY2siOiJub25lIikpfSxkZXBlbmRlbmNpZXM6W1pzLFZvLHdsLFphLHpmZSxQeWUsdnFdLHN0eWxlczpbIi5sb2FkaW5nLWluZGljYXRvcltfbmdjb250''@;'; + put 'put ''ZW50LSVDT01QJV17bGluZS1oZWlnaHQ6Mi41cmVtO2hlaWdodDoyLjVyZW07ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAgLnNwaW5uZXJbX25nY29udGVudC0lQ09NUCVde3ZlcnRpY2FsLWFsaWduOm1pZGRs''@;'; + put 'put ''ZX0ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAgY2xyLXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjI0cHg7Y29sb3I6IzU2NTY1NjtjdXJzb3I6YXV0b30ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAg''@;'; + put 'put ''Y2xyLXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoxMHB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAgY2xy''@;'; + put 'put ''LXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV06Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5sb2FkaW5nLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV0gICBjbHItc2lnbnBvc3QtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0g''@;'; + put 'put ''ICBwW19uZ2NvbnRlbnQtJUNPTVAlXTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAgY2xyLXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0gICBzcGFuW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXXttYXJnaW4tbGVmdDoxMHB4fS5sb2FkaW5nLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV0gICBjbHItc2lnbnBvc3QtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHNwYW4ucnVubmluZ1tfbmdjb250ZW50LSVDT01Q''@;'; + put 'put ''JV17Y29sb3I6I2U5YmYwNH0ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAgY2xyLXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0gICBzcGFuLnN1Y2Nlc3NbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2MGI1''@;'; + put 'put ''MTV9LmxvYWRpbmctaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1zaWducG9zdC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdICAgc3Bhbi5mYWlsW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojYzkyMTAwfSJdfSksZH0pKCksSlJl''@;'; + put 'put ''PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLmxvZ2dlclNlcnZpY2U9dix0aGlzLl9zdWJzY3JpcHRpb249bmV3IFRlLHRoaXMubG9hZGluZz0hMSx0aGlzLmFsZXJ0Q2xvc2VkPSEwLHRoaXMuZGF0YT17dXNlcjpudWxsLHBhc3M6bnVsbH19''@;'; + put 'put ''bmdPbkluaXQoKXsiUmVkaXJlY3RlZCIhPT10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKS5sb2dpbk1lY2hhbmlzbSYmKHRoaXMuX3N1YnNjcmlwdGlvbj10aGlzLnNhc1NlcnZpY2Uuc2hvdWxkTG9naW4uc3Vic2NyaWJlKHY9Pnt0aGlzLmlzQWN0aXZlPXY7bGV0IHk9ZG9jdW1l''@;'; + put 'put ''bnQucXVlcnlTZWxlY3RvcigiYm9keSIpOyF5fHwodj95LmNsYXNzTGlzdC5hZGQoInNob3VsZC1sb2dpbiIpOnkuY2xhc3NMaXN0LnJlbW92ZSgic2hvdWxkLWxvZ2luIikpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9c3VibWl0KCl7dGhpcy5s''@;'; + put 'put ''b2FkaW5nfHwodGhpcy5sb2FkaW5nPSEwLHRoaXMuZGF0YS51c2VyJiZ0aGlzLmRhdGEucGFzcyYmdGhpcy5zYXNTZXJ2aWNlLmxvZ2luKHRoaXMuZGF0YS51c2VyLHRoaXMuZGF0YS5wYXNzKS50aGVuKGg9Pnt0aGlzLmxvYWRpbmc9ITEsaHx8KHRoaXMuZXJyb3JNc2c9IlVzZXJuYW1lIG9y''@;'; + put 'put ''IHBhc3N3b3JkIGludmFsaWQiLHRoaXMuYWxlcnRDbG9zZWQ9ITEpfSxoPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyhoKSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvck1zZz1oLHRoaXMuYWxlcnRDbG9zZWQ9ITF9KSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4g''@;'; + put 'put ''bmV3KGh8fGQpKFh0KGcyKSxYdChzYykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtbG9naW4iXV0sZGVjbHM6MjAsdmFyczo5LGNvbnN0czpbWzEsImxvZ2luLXNpZGViYXItd3JhcHBlciJdLFsxLCJsb2dpbi1zaWRlYmFyIiwic2lkZUJhclByb3BzIl0sWyJz''@;'; + put 'put ''cmMiLCIvU0FTU3RvcmVkUHJvY2Vzcy8/X1BST0dSQU09cFpLZDZGOTVqRUN2UlFsTjBMQ2ZkQT09L3dlYjkvaW1hZ2VzL2RhdGFjb250cm9sbGVyLXN2ZyIsImFsdCIsIiIsMiwibWF4LXdpZHRoIiwiMjAwcHgiXSxbMSwibG9naW4iLDMsIm5nU3VibWl0Il0sWzEsInRpdGxlIl0sWzEsIndl''@;'; + put 'put ''bGNvbWUiXSxbMSwiaGludCJdLFsxLCJsb2dpbi1ncm91cCJdLFsiY2xySW5wdXQiLCIiLCJuYW1lIiwidXNlciIsInR5cGUiLCJ0ZXh0IiwicGxhY2Vob2xkZXIiLCJVc2VybmFtZSIsMSwidXNlcm5hbWUiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWyJjbHJJbnB1dCIsIiIsIm5h''@;'; + put 'put ''bWUiLCJwYXNzIiwidHlwZSIsInBhc3N3b3JkIiwicGxhY2Vob2xkZXIiLCJQYXNzd29yZCIsMSwicGFzc3dvcmQiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsImNsckFsZXJ0VHlwZSIsImNsckFsZXJ0Q2xvc2VkIiwiY2xyQWxlcnRDbG9zZWRDaGFuZ2UiXSxbImNsci1hbGVy''@;'; + put 'put ''dC1pdGVtIiwiIiwxLCJhbGVydC1pdGVtIl0sWzEsImFsZXJ0LXRleHQiXSxbInR5cGUiLCJzdWJtaXQiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwzLCJjbHJMb2FkaW5nIiwiZGlzYWJsZWQiXSxbMSwib3ZlcmxheSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKGl0''@;'; + put 'put ''KDAsImRpdiIsMCkoMSwiZGl2IiwxKSxDcigyLCJpbWciLDIpLGl0KDMsImZvcm0iLDMpLFluKCJuZ1N1Ym1pdCIsZnVuY3Rpb24oKXtyZXR1cm4gdi5zdWJtaXQoKX0pLGl0KDQsImxhYmVsIiw0KSg1LCJoMyIsNSksVXQoNiwiV2VsY29tZSB0byIpLHN0KCksVXQoNywiIERhdGEgQ29udHJv''@;'; + put 'put ''bGxlciAiKSxpdCg4LCJoNSIsNiksVXQoOSwiQ2FwdHVyZSwgUmV2aWV3LCBhbmQgQXBwcm92ZSIpLHN0KCkoKSxpdCgxMCwiZGl2Iiw3KSgxMSwiaW5wdXQiLDgpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5kYXRhLnVzZXI9Q30pLHN0KCksaXQoMTIsImlucHV0''@;'; + put 'put ''Iiw5KSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuZGF0YS5wYXNzPUN9KSxzdCgpLGl0KDEzLCJjbHItYWxlcnQiLDEwKSxZbigiY2xyQWxlcnRDbG9zZWRDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LmFsZXJ0Q2xvc2VkPUN9KSxpdCgxNCwiZGl2IiwxMSko''@;'; + put 'put ''MTUsInNwYW4iLDEyKSxVdCgxNiksc3QoKSgpKCksaXQoMTcsImJ1dHRvbiIsMTMpLFV0KDE4LCIgTG9nIGluICIpLHN0KCkoKSgpKCksQ3IoMTksImRpdiIsMTQpLHN0KCkpLDImaCYmKEZpKCJhY3RpdmUiLHYuaXNBY3RpdmUpLHV0KDExKSxUdCgibmdNb2RlbCIsdi5kYXRhLnVzZXIpLHV0''@;'; + put 'put ''KDEpLFR0KCJuZ01vZGVsIix2LmRhdGEucGFzcyksdXQoMSksVHQoImNsckFsZXJ0VHlwZSIsImFsZXJ0LWRhbmdlciIpKCJjbHJBbGVydENsb3NlZCIsdi5hbGVydENsb3NlZCksdXQoMyksR2kodi5lcnJvck1zZyksdXQoMSksVHQoImNsckxvYWRpbmciLHYubG9hZGluZykoImRpc2FibGVk''@;'; + put 'put ''Iix2LmxvYWRpbmcpKX0sZGVwZW5kZW5jaWVzOltwZyxtMSxFcyxkZyx4cyxMYyxjWixmWixnbyx3LG90LHA5XSxzdHlsZXM6WyIuc2lkZUJhclByb3BzW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiMzMTQzNTEhaW1wb3J0YW50O2NvbG9yOiNlMGUwZTB9LnNpZGVCYXJQcm9wc1tf''@;'; + put 'put ''bmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5zaWRlQmFyUHJvcHNbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAuc2lkZUJhclByb3BzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNpZGVC''@;'; + put 'put ''YXJQcm9wc1tfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5zaWRlQmFyUHJvcHNbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNlMGUwZTB9LnNpZGVCYXJQcm9wc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0''@;'; + put 'put ''b25bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjp3aGVhdCFpbXBvcnRhbnR9LnNpZGVCYXJQcm9wc1tfbmdjb250ZW50LSVDT01QJV0gICBhW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZTBlMGUwfS5sb2dpbi1zaWRlYmFyLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3dp''@;'; + put 'put ''ZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxMDAwMH0ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSA+ICpbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOmF1''@;'; + put 'put ''dG99LmxvZ2luLXNpZGViYXItd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubG9naW4tc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6NDAwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmlnaHQ6MXB4''@;'; + put 'put ''IHNvbGlkICNkZGQ7cGFkZGluZzo0MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTQwMHB4KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZX0ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGZv''@;'; + put 'put ''cm0ubG9naW5bX25nY29udGVudC0lQ09NUCVde3otaW5kZXg6MTAxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcn0ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1zaWRlYmFyW19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXSAgIGZvcm0ubG9naW5bX25nY29udGVudC0lQ09NUCVdICAgLnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MzJweDtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MzZweH0ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAl''@;'; + put 'put ''XSAgIC5sb2dpbi1zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGZvcm0ubG9naW5bX25nY29udGVudC0lQ09NUCVdICAgLnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC53ZWxjb21lW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjM2cHh9LmxvZ2luLXNpZGViYXItd3JhcHBl''@;'; + put 'put ''cltfbmdjb250ZW50LSVDT01QJV0gICAubG9naW4tc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0gICBmb3JtLmxvZ2luW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1ncm91cFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5n''@;'; + put 'put ''OjQ4cHggMCAwfS5sb2dpbi1zaWRlYmFyLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmxvZ2luLXNpZGViYXJbX25nY29udGVudC0lQ09NUCVdICAgZm9ybS5sb2dpbltfbmdjb250ZW50LSVDT01QJV0gICAubG9naW4tZ3JvdXBbX25nY29udGVudC0lQ09NUCVdID4gKltfbmdjb250''@;'; + put 'put ''ZW50LSVDT01QJV17bWFyZ2luOjZweCAwIDE4cHh9LmxvZ2luLXNpZGViYXItd3JhcHBlci5hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmxvZ2luLXNpZGViYXJbX25nY29udGVudC0lQ09NUCVde3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7ei1pbmRleDoxMDF9LmxvZ2luLXNpZGViYXIt''@;'; + put 'put ''d3JhcHBlci5hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm92ZXJsYXlbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9LmxvZ2luLXNpZGViYXItd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAub3ZlcmxheVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lO3Bv''@;'; + put 'put ''c2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2JhY2tncm91bmQ6cmdiYSgzMywzMywzMywuNSk7ei1pbmRleDoxMDB9ICAubG9naW4tc2lkZWJhci13cmFwcGVyIC5sb2dpbi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVyLCAgIC5sb2dpbi1zaWRl''@;'; + put 'put ''YmFyLXdyYXBwZXIgLmxvZ2luLWdyb3VwIC51c2VybmFtZSwgICAubG9naW4tc2lkZWJhci13cmFwcGVyIC5sb2dpbi1ncm91cCAucGFzc3dvcmR7d2lkdGg6MTAwJX0gIC5sb2dpbi1zaWRlYmFyLXdyYXBwZXIgLmxvZ2luLWdyb3VwIC5jbHItaW5wdXQtd3JhcHBlcnttYXgtd2lkdGg6bm9u''@;'; + put 'put ''ZX0gIC5sb2dpbi1zaWRlYmFyLXdyYXBwZXIgLmxvZ2luLWdyb3VwIGJ1dHRvbnttYXgtd2lkdGg6bm9uZX0iXX0pLGR9KSgpO2Z1bmN0aW9uIFhSZShkLGcpe2lmKDEmZCYmKGl0KDAsInNwYW4iKSxDcigxLCJpbWciLDE4KSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKTt1dCgxKSxJNigic3Jj''@;'; + put 'put ''IixoLmdldFBpY3R1cmVVcmwoKSx4dil9fWZ1bmN0aW9uIEtSZShkLGcpe2lmKDEmZCYmKGl0KDAsInNwYW4iLDE5KSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKTtGaSgiaGlkZGVuIiwwPT09aC5mYWlsZWRSZXFzLmxlbmd0aCksdXQoMSksR2koaC5mYWlsZWRSZXFzLmxlbmd0aCl9''@;'; + put 'put ''fWZ1bmN0aW9uICRSZShkLGcpe2lmKDEmZCYmKGl0KDAsInNwYW4iLDIwKSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKTtGaSgiaGlkZGVuIiwwPT09aC5kZWJ1Z0xvZ3MubGVuZ3RoKSx1dCgxKSxHaShoLmRlYnVnTG9ncy5sZW5ndGgpfX1mdW5jdGlvbiBxUmUoZCxnKXsxJmQmJkNy''@;'; + put 'put ''KDAsImNsci1pY29uIiwyMSl9ZnVuY3Rpb24gZUJlKGQsZyl7MSZkJiYoRjAoMCksaXQoMSwiYSIsMzApKDIsInNwYW4iLDMxKSxVdCgzLCJEb2N1bWVudGF0aW9uIiksc3QoKSgpLEgwKCkpfWZ1bmN0aW9uIHRCZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci1kcm9wZG93''@;'; + put 'put ''bi1tZW51IikoMSwiZGl2IiwyMiwyMykoMywiY2xyLXRvZ2dsZS1jb250YWluZXIiLDI0KSxZbigiY2xpY2siLGZ1bmN0aW9uKHkpe3J0KGgpO2NvbnN0IEM9eWEoMik7cmV0dXJuIGEoS3QoKS5vbkRlYnVnUm93Q2xpY2soeSxDKSl9KSxpdCg0LCJjbHItdG9nZ2xlLXdyYXBwZXIiKSg1LCJp''@;'; + put 'put ''bnB1dCIsMjUpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLnNhc2pzQ29uZmlnLmRlYnVnPXkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5vbkRlYnVnTW9kZUNoYW5nZSgpKX0pLHN0KCksaXQoNiwi''@;'; + put 'put ''bGFiZWwiKSxVdCg3LCJEZWJ1ZyBNb2RlIiksc3QoKSgpKCkoKSxpdCg4LCJhIiwyNiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkub3BlblJlcXVlc3RzTW9kYWwoKSl9KSxpdCg5LCJzcGFuIiksVXQoMTAsIlNBUyBSZXF1ZXN0cyIpLHN0KCkoKSxybigxMSxl''@;'; + put 'put ''QmUsNCwwLCJuZy1jb250YWluZXIiLDIpLENyKDEyLCJkaXYiLDE1KSxpdCgxMywiYSIsMjcpLFluKCJjbGljayIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5sb2dvdXQoeSkpfSksaXQoMTQsInNwYW4iKSxVdCgxNSwiTG9nIE91dCIpLHN0KCksQ3IoMTYsImNsci1pY29uIiwy''@;'; + put 'put ''OCksc3QoKSxpdCgxNywiZGl2IiwyOSkoMTgsInNwYW4iKSxVdCgxOSksc3QoKSgpKCl9aWYoMiZkKXtjb25zdCBoPUt0KCk7dXQoNSksVHQoIm5nTW9kZWwiLGguc2FzanNDb25maWcuZGVidWcpLHV0KDYpLFR0KCJuZ0lmIiwhaC5pc0RlcGxveVBhZ2UpLHV0KDgpLEppKCJ2IixoLmNvbW1p''@;'; + put 'put ''dFZlciwiIil9fWNvbnN0IG5CZT1mdW5jdGlvbigpe3JldHVybntzdGFuZGFsb25lOiEwfX07bGV0IHJCZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMudXNlclNlcnZpY2U9aCx0aGlzLnNhc1NlcnZpY2U9dix0aGlzLmV2ZW50U2VydmljZT15LHRoaXMucm91dGVy''@;'; + put 'put ''PUMsdGhpcy51c2VyTmFtZT0iTm90IGxvZ2dlZCBpbiIsdGhpcy5yZXFTdWI9bmV3IFRlLHRoaXMudXNlclN1Yj1uZXcgVGUsdGhpcy5hcHBMb2dzPVtdLHRoaXMuZGVidWdMb2dzPVtdLHRoaXMuZmFpbGVkUmVxcz1bXSx0aGlzLnNhc0Vycm9ycz1bXSx0aGlzLmlzVml5YT0hMSx0aGlzLnNh''@;'; + put 'put ''c2pzQ29uZmlnPW5ldyBRMy5TQVNqc0NvbmZpZyx0aGlzLnJlcXVlc3RzQ291bnQ9MCx0aGlzLmNvbW1pdFZlcj0iIn1uZ09uSW5pdCgpe3RoaXMudXNlclN1Yj10aGlzLnVzZXJTZXJ2aWNlLnVzZXJDaGFuZ2Uuc3Vic2NyaWJlKGg9Pnt0aGlzLnVzZXJOYW1lPWgudXNlcm5hbWV9KSx0aGlz''@;'; + put 'put ''LnNhc2pzQ29uZmlnPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLCJTQVNWSVlBIj09PXRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSYmKHRoaXMuaXNWaXlhPSEwKSx0aGlzLmNvbW1pdFZlcj0idjUuMC4wIi5yZXBsYWNlKCJ2IiwiIikrIi5nZDVjOTBlZTEifW5nT25EZXN0''@;'; + put 'put ''cm95KCl7dGhpcy5yZXFTdWIudW5zdWJzY3JpYmUoKSx0aGlzLnVzZXJTdWIudW5zdWJzY3JpYmUoKX1vcGVuUmVxdWVzdHNNb2RhbCgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9wZW5SZXF1ZXN0c01vZGFsKCl9b25EZWJ1Z01vZGVDaGFuZ2UoaCl7dGhpcy5zYXNqc0NvbmZpZyYmdGhpcy5zYXNT''@;'; + put 'put ''ZXJ2aWNlLnNldERlYnVnU3RhdGUodGhpcy5zYXNqc0NvbmZpZy5kZWJ1Zyl9b25EZWJ1Z1Jvd0NsaWNrKGgsdil7aC5zdG9wUHJvcGFnYXRpb24oKSxzZXRUaW1lb3V0KCgpPT57di5jbGljaygpfSwzMDApfWxvZ291dChoKXtoLnByZXZlbnREZWZhdWx0KCk7dHJ5e3RoaXMuc2FzU2Vydmlj''@;'; + put 'put ''ZS5sb2dvdXQoKX1jYXRjaCh2KXtjb25zb2xlLmVycm9yKHYpfX1nZXRQaWN0dXJlVXJsKCl7cmV0dXJuIi9pZGVudGl0aWVzL3VzZXJzLyIrdGhpcy51c2VyTmFtZSsiL2F2YXRhci9jb250ZW50In1nZXQgaXNEZXBsb3lQYWdlKCl7cmV0dXJuIHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygi''@;'; + put 'put ''ZGVwbG95Iil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KGtIKSxYdChnMiksWHQobXUpLFh0KFpsKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC11c2VyLW5hdi1kcm9wZG93biJdXSxkZWNsczoyOCx2YXJzOjEw''@;'; + put 'put ''LGNvbnN0czpbWyJjbHJNZW51UG9zaXRpb24iLCJib3R0b20tcmlnaHQiLDEsImFwcC1uYXYtZHJvcGRvd24iLCJkLW5vbmUiLCJkLW1kLWJsb2NrIl0sWyJjbHJEcm9wZG93blRvZ2dsZSIsIiIsMSwibmF2LXRleHQiLDIsImNvbG9yIiwiI2ZmZiJdLFs0LCJuZ0lmIl0sWyJjbGFzcyIsImJh''@;'; + put 'put ''ZGdlIGJhZGdlLWRhbmdlciIsMywiaGlkZGVuIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImJhZGdlIGJhZGdlLWluZm8iLDMsImhpZGRlbiIsNCwibmdJZiJdLFsic2hhcGUiLCJjYXJldCBkb3duIiw0LCJuZ0lmIl0sWzQsImNscklmT3BlbiJdLFsxLCJjb250ZW50LWNvbnRhaW5lciIsMiwiaGVp''@;'; + put 'put ''Z2h0IiwiYXV0byJdLFsxLCJzaWRlbmF2IiwiZC1ibG9jayIsImQtbWQtbm9uZSIsMywiY2xyLW5hdi1sZXZlbCJdLFsxLCJzaWRlbmF2LWNvbnRlbnQiXSxbImhyZWYiLCIuLi4iLDEsIm5hdi1saW5rIiwiYWN0aXZlIl0sWzEsInRvZ2dsZS1zd2l0Y2giXSxbImlkIiwiZGVidWctdG9nZ2xl''@;'; + put 'put ''MiIsInR5cGUiLCJjaGVja2JveCIsMywibmdNb2RlbCIsIm5nTW9kZWxPcHRpb25zIiwibmdNb2RlbENoYW5nZSJdLFsiZm9yIiwiZGVidWctdG9nZ2xlMiIsMiwicGFkZGluZy1sZWZ0IiwiNDJweCIsImNvbG9yIiwiIzMxMzEzMSJdLFsidGFyZ2V0IiwiX2JsYW5rIiwiaHJlZiIsImh0dHBz''@;'; + put 'put ''Oi8vZG9jcy5kYXRhY29udHJvbGxlci5pbyIsMSwibmF2LWxpbmsiLCJkLWJsb2NrIl0sWzEsInNlcGFyYXRvciJdLFsiaHJlZiIsIi4uLiIsMSwibmF2LWxpbmsiLCJkLWJsb2NrIiwzLCJjbGljayJdLFsic2hhcGUiLCJsb2dvdXQiXSxbImFsdCIsIiIsMSwiYXZhdGFyLWltZyIsMywic3Jj''@;'; + put 'put ''Il0sWzEsImJhZGdlIiwiYmFkZ2UtZGFuZ2VyIl0sWzEsImJhZGdlIiwiYmFkZ2UtaW5mbyJdLFsic2hhcGUiLCJjYXJldCBkb3duIl0sWyJjbHJEcm9wZG93bkl0ZW0iLCIiLDEsImRlYnVnLXN3aXRjaC1pdGVtIl0sWyJkcm9wZG93bkl0ZW1EZWJ1ZyIsIiJdLFsxLCJ0b2dnbGUtc3dpdGNo''@;'; + put 'put ''IiwzLCJjbGljayJdLFsiaWQiLCJkZWJ1Zy10b2dnbGUxIiwidHlwZSIsImNoZWNrYm94IiwiY2xyVG9nZ2xlIiwiIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwzLCJjbGljayJdLFsiaHJlZiIsIi4uLiIsImNsckRyb3Bkb3duSXRlbSIsIiIs''@;'; + put 'put ''MywiY2xpY2siXSxbInNoYXBlIiwibG9nb3V0IiwxLCJjbHItbG9nb3V0Il0sWzEsImNvcHlSaWdodCJdLFsidGFyZ2V0IiwiX2JsYW5rIiwiaHJlZiIsImh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pbyIsImNsckRyb3Bkb3duSXRlbSIsIiJdLFsxLCJkcm9wZG93bi10ZXh0Il1dLHRl''@;'; + put 'put ''bXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoaXQoMCwiY2xyLWRyb3Bkb3duIiwwKSgxLCJidXR0b24iLDEpKDIsInNwYW4iKSxVdCgzKSxzdCgpLHJuKDQsWFJlLDIsMSwic3BhbiIsMikscm4oNSxLUmUsMiwzLCJzcGFuIiwzKSxybig2LCRSZSwyLDMsInNwYW4iLDQpLHJuKDcscVJlLDEs''@;'; + put 'put ''MCwiY2xyLWljb24iLDUpLHN0KCkscm4oOCx0QmUsMjAsMywiY2xyLWRyb3Bkb3duLW1lbnUiLDYpLHN0KCksaXQoOSwiZGl2Iiw3KSgxMCwibmF2Iiw4KSgxMSwic2VjdGlvbiIsOSkoMTIsImEiLDEwKSxVdCgxMyksc3QoKSxpdCgxNCwiZGl2IikoMTUsImZvcm0iKSgxNiwiZGl2IiwxMSko''@;'; + put 'put ''MTcsImlucHV0IiwxMiksWW4oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnNhc2pzQ29uZmlnLmRlYnVnPUN9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkRlYnVnTW9kZUNoYW5nZSgpfSksc3QoKSxpdCgxOCwibGFiZWwiLDEzKSxVdCgxOSwi''@;'; + put 'put ''RGVidWcgTW9kZSIpLHN0KCkoKSgpKCksaXQoMjAsImEiLDE0KSgyMSwic3BhbiIpLFV0KDIyLCJEb2N1bWVudGF0aW9uIiksc3QoKSgpLENyKDIzLCJkaXYiLDE1KSxpdCgyNCwiYSIsMTYpLFluKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYubG9nb3V0KEMpfSksaXQoMjUsInNwYW4i''@;'; + put 'put ''KSxVdCgyNiwiTG9nIE91dCIpLHN0KCksQ3IoMjcsImNsci1pY29uIiwxNyksc3QoKSgpKCkoKSksMiZoJiYodXQoMyksR2kodi51c2VyTmFtZSksdXQoMSksVHQoIm5nSWYiLCJOb3QgbG9nZ2VkIGluIiE9PXYudXNlck5hbWUmJnYuaXNWaXlhKSx1dCgxKSxUdCgibmdJZiIsIXYuc2FzanND''@;'; + put 'put ''b25maWcuZGVidWcpLHV0KDEpLFR0KCJuZ0lmIix2LnNhc2pzQ29uZmlnLmRlYnVnKSx1dCgxKSxUdCgibmdJZiIsIXYuaXNWaXlhKSx1dCgzKSxUdCgiY2xyLW5hdi1sZXZlbCIsMiksdXQoMyksSmkoIiAiLHYudXNlck5hbWUsIiAiKSx1dCg0KSxUdCgibmdNb2RlbCIsdi5zYXNqc0NvbmZp''@;'; + put 'put ''Zy5kZWJ1ZykoIm5nTW9kZWxPcHRpb25zIixOcyg5LG5CZSkpKX0sZGVwZW5kZW5jaWVzOltWbyxwZyxJZixFcyxkZyx4cyxMYyx3bCxaYSxvdCxSbyxsbyxPaSxJeWUsZ3csekwsR0wsdVpdLHN0eWxlczpbJy5jb3B5UmlnaHRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MTBweH0u''@;'; + put 'put ''Y29weVJpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHNwYW5bX25nY29udGVudC0lQ09NUCVde3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3aWR0aDoxMDAlO3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjEuNX0uYXBwLW5hdi1kcm9wZG93bltfbmdj''@;'; + put 'put ''b250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6M3JlbTtoZWlnaHQ6M3JlbX0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gPiBidXR0b24uZHJvcGRvd24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmFmYWZhO21pbi13aWR0''@;'; + put 'put ''aDoyMDBweDtwb3NpdGlvbjpyZWxhdGl2ZX0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gPiBidXR0b24uZHJvcGRvd24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXTphZnRlcntjb250ZW50OiIiO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtvcGFjaXR5Oi4xNTtsZWZ0''@;'; + put 'put ''OjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDo0MHB4O3RvcDoxMHB4fS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSA+IGJ1dHRvbi5kcm9wZG93bi10b2dnbGVbX25nY29udGVudC0lQ09NUCVdICAgLmJhZGdlLmhpZGRlbltfbmdjb250ZW50LSVDT01Q''@;'; + put 'put ''JV17dmlzaWJpbGl0eTpoaWRkZW59LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3duLW1lbnVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM1NjU2NTY7bWluLXdpZHRoOjIwMHB4O3BhZGRpbmctYm90dG9tOjB9LmFwcC1uYXYtZHJvcGRvd25bX25n''@;'; + put 'put ''Y29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3duLW1lbnVbX25nY29udGVudC0lQ09NUCVdICAgLnNlcGFyYXRvcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjEwcHggMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5fS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAl''@;'; + put 'put ''XSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6NDVweDtsaW5lLWhl''@;'; + put 'put ''aWdodDo0MHB4fS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHNwYW4uZHJvcGRvd24tdGV4dFtfbmdjb250ZW50LSVDT01QJV17Y29s''@;'; + put 'put ''b3I6IzU2NTY1Nn0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gICBjbHItZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV0gICAuZHJvcGRvd24taXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAuYmFkZ2VbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29s''@;'; + put 'put ''dXRlO3RvcDoxNXB4O3JpZ2h0OjI2cHg7bWFyZ2luLXJpZ2h0OjB9LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3duLW1lbnVbX25nY29udGVudC0lQ09NUCVdICAgLmRyb3Bkb3duLWl0ZW0uZGVidWctc3dpdGNoLWl0ZW1bX25nY29udGVudC0lQ09N''@;'; + put 'put ''UCVde3BhZGRpbmc6MH0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gICBjbHItZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV0gICAuZHJvcGRvd24taXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAudG9nZ2xlLXN3aXRjaFtfbmdjb250ZW50LSVDT01QJV17bWFy''@;'; + put 'put ''Z2luOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAg''@;'; + put 'put ''IC5jbHItbG9nb3V0W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoyMHB4O3RvcDoxNXB4fS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19u''@;'; + put 'put ''Z2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXSAgICAgY2xyLXRvZ2dsZS13cmFwcGVye3dpZHRoOjEwMCU7bWFyZ2luOjA7aGVpZ2h0OjEwMCU7cGFkZGluZzoxMHB4IDIwcHh9LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3duLW1lbnVbX25nY29udGVudC0lQ09NUCVdICAg''@;'; + put 'put ''LmRyb3Bkb3duLWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgICBpbnB1dHt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2N1cnNvcjpwb2ludGVyfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1t''@;'; + put 'put ''ZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDphZnRlcnt0cmFuc2l0aW9uOm5vbmUhaW1wb3J0YW50fUBtZWRpYSAobWF4LXdpZHRoOiA3Njhw''@;'; + put 'put ''eCl7LnNpZGVuYXYtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBhLm5hdi1saW5rLmFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6aW5oZXJpdDtwYWRkaW5nOjE1cHg7YmFja2dyb3VuZDojNTY1NjU2fX0ubmF2LWxpbmsuZC1ibG9ja1tfbmdjb250ZW50LSVDT01QJV0gICBz''@;'; + put 'put ''cGFuLmJhZGdlW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZX0uYXZhdGFyLWltZ1tfbmdjb250ZW50LSVDT01QJV17d2lkdGg6NDBweDtoZWlnaHQ6NDBweDttYXJnaW4tbGVmdDoxMHB4O2JvcmRlci1yYWRpdXM6NTBweH0nXX0pLGR9KSgpO2Z1bmN0aW9uIGlCZShkLGcp''@;'; + put 'put ''e2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci1hbGVydCIsMiksWW4oImNsckFsZXJ0Q2xvc2VkQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gYShydChoKS4kaW1wbGljaXQuY2xvc2VkPXkpfSkoImNsckFsZXJ0Q2xvc2VkQ2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBydChoKSxh''@;'; + put 'put ''KEt0KDIpLm9uQWxlcnRDbG9zZSgpKX0pLGl0KDEsImRpdiIsMykoMiwic3BhbiIsNCksVXQoMyksc3QoKSgpKCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O1R0KCJjbHJBbGVydFR5cGUiLGgudHlwZSkoImNsckFsZXJ0QXBwTGV2ZWwiLCEwKSgiY2xyQWxlcnRDbG9zZWQiLGguY2xv''@;'; + put 'put ''c2VkKSx1dCgzKSxKaSgiICIsaC5tZXNzYWdlLCIgIil9fWZ1bmN0aW9uIG9CZShkLGcpe2lmKDEmZCYmKGl0KDAsImNsci1hbGVydHMiKSxybigxLGlCZSw0LDQsImNsci1hbGVydCIsMSksc3QoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMSksVHQoIm5nRm9yT2YiLGguYWxlcnRzKX19bGV0''@;'; + put 'put ''IGFCZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuX2FsZXJ0c1NlcnZpY2U9aCx0aGlzLmFsZXJ0cz1bXSx0aGlzLmhhc09wZW5BbGVydD0hMSx0aGlzLmFsZXJ0c1N1Yj1uZXcgVGV9bmdPbkluaXQoKXt0aGlzLmFsZXJ0c1N1Yj10aGlzLl9hbGVydHNTZXJ2aWNlLmFsZXJ0''@;'; + put 'put ''cy5zdWJzY3JpYmUoaD0+e3RoaXMuYWxlcnRzLnB1c2goaCksdGhpcy5oYXNPcGVuQWxlcnQ9ITAsaC5lcnImJmNvbnNvbGUuZXJyb3IoaC5lcnIpfSl9b25BbGVydENsb3NlKCl7dGhpcy5oYXNPcGVuQWxlcnQ9dGhpcy5hbGVydHMuc29tZShoPT4haC5jbG9zZWQpfX1yZXR1cm4gZC5cdTAy''@;'; + put 'put ''NzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChDSCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtYWxlcnRzIl1dLGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXSxbMywiY2xyQWxlcnRUeXBlIiwiY2xyQWxlcnRBcHBMZXZlbCIs''@;'; + put 'put ''ImNsckFsZXJ0Q2xvc2VkIiwiY2xyQWxlcnRDbG9zZWRDaGFuZ2UiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJjbHJBbGVydFR5cGUiLCJjbHJBbGVydEFwcExldmVsIiwiY2xyQWxlcnRDbG9zZWQiLCJjbHJBbGVydENsb3NlZENoYW5nZSJdLFsxLCJhbGVydC1pdGVtIl0sWzEsImFsZXJ0''@;'; + put 'put ''LXRleHQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJnJuKDAsb0JlLDIsMSwiY2xyLWFsZXJ0cyIsMCksMiZoJiZUdCgibmdJZiIsdi5oYXNPcGVuQWxlcnQpfSxkZXBlbmRlbmNpZXM6W1pzLFZvLGNaLFN5ZSxmWl0sc3R5bGVzOlsiY2xyLWFsZXJ0c1tfbmdjb250ZW50LSVDT01Q''@;'; + put 'put ''JV17ZGlzcGxheTpibG9ja30iXX0pLGR9KSgpO2Z1bmN0aW9uIGxCZShkLGcpezEmZCYmKGl0KDAsInAiLDYpLFV0KDEsIk5vIHJlcXVlc3RzIG1hZGUiKSxzdCgpKX1mdW5jdGlvbiBzQmUoZCxnKXsxJmQmJihpdCgwLCJzcGFuIiksQ3IoMSwiY2xyLWljb24iLDEzKSxzdCgpKX1mdW5jdGlv''@;'; + put 'put ''biB1QmUoZCxnKXsxJmQmJihpdCgwLCJzcGFuIiksQ3IoMSwiY2xyLWljb24iLDE0KSxzdCgpKX1mdW5jdGlvbiBjQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItdHJlZS1ub2RlIiwyMSksWW4oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9cnQoaCkuJGltcGxpY2l0''@;'; + put 'put ''LEk9S3QoMykuaW5kZXg7cmV0dXJuIGEoS3QoMikuZ29Ub0xvZ0xpbmUoQywicmVxdWVzdF8iK0ksImVycm9yIikpfSksaXQoMSwiYnV0dG9uIiwyMiksVXQoMiksc3QoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgyKSxKaSgiICIsaCwiICIpfX1jb25zdCBLeWU9ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm5bXX07ZnVuY3Rpb24gZkJlKGQsZyl7aWYoMSZkJiYoaXQoMCwiY2xyLXRyZWUtbm9kZSIsMTgpLENyKDEsImNsci1pY29uIiwxOSksVXQoMikscm4oMyxjQmUsMywxLCJjbHItdHJlZS1ub2RlIiwyMCksc3QoKSksMiZkKXtjb25zdCBoPUt0KDIpLiRpbXBsaWNpdDt1dCgy''@;'; + put 'put ''KSxKaSgiIEVycm9ycyAoIixoLmxvZ0Vycm9ycy5sZW5ndGgsIikgIiksdXQoMSksVHQoIm5nRm9yT2YiLGgubG9nRXJyb3JzfHxOcygyLEt5ZSkpfX1mdW5jdGlvbiBoQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItdHJlZS1ub2RlIiwyMSksWW4oImNsaWNrIixmdW5j''@;'; + put 'put ''dGlvbigpe2NvbnN0IEM9cnQoaCkuJGltcGxpY2l0LEk9S3QoMykuaW5kZXg7cmV0dXJuIGEoS3QoMikuZ29Ub0xvZ0xpbmUoQywicmVxdWVzdF8iK0ksIndhcm5pbmciKSl9KSxpdCgxLCJidXR0b24iLDIyKSxVdCgyKSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDIp''@;'; + put 'put ''LEppKCIgIixoLCIgIil9fWZ1bmN0aW9uIGRCZShkLGcpe2lmKDEmZCYmKGl0KDAsImNsci10cmVlLW5vZGUiLDE4KSxDcigxLCJjbHItaWNvbiIsMjMpLFV0KDIpLHJuKDMsaEJlLDMsMSwiY2xyLXRyZWUtbm9kZSIsMjApLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgyKS4kaW1wbGljaXQ7dXQo''@;'; + put 'put ''MiksSmkoIiBXYXJuaW5ncyAoIixoLmxvZ1dhcm5pbmdzLmxlbmd0aCwiKSAiKSx1dCgxKSxUdCgibmdGb3JPZiIsaC5sb2dXYXJuaW5nc3x8TnMoMixLeWUpKX19ZnVuY3Rpb24gcEJlKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYnV0dG9uIiwyNCksWW4oImNsaWNrIixmdW5j''@;'; + put 'put ''dGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoMikuJGltcGxpY2l0O3JldHVybiBhKEt0KDIpLmRvd25sb2FkTG9nKHkubG9nRmlsZSkpfSksVXQoMSwiIERvd25sb2FkICIpLHN0KCl9fWZ1bmN0aW9uIGdCZShkLGcpe2lmKDEmZCYmKGl0KDAsImNsci10YWItY29udGVudCIpKDEsImNsci10cmVl''@;'; + put 'put ''Iikscm4oMixmQmUsNCwzLCJjbHItdHJlZS1ub2RlIiwxNSkscm4oMyxkQmUsNCwzLCJjbHItdHJlZS1ub2RlIiwxNSksc3QoKSxDcig0LCJkaXYiLDE2KSxybig1LHBCZSwyLDAsImJ1dHRvbiIsMTcpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgpLiRpbXBsaWNpdDt1dCgyKSxUdCgibmdJZiIs''@;'; + put 'put ''aC5sb2dFcnJvcnMpLHV0KDEpLFR0KCJuZ0lmIixoLmxvZ1dhcm5pbmdzKSx1dCgxKSxUdCgiaW5uZXJIVE1MIixoLmxvZ0ZpbGUsVTgpLHV0KDEpLFR0KCJuZ0lmIiwobnVsbD09aC5sb2dGaWxlP251bGw6aC5sb2dGaWxlLmxlbmd0aCk+MCl9fWZ1bmN0aW9uIG1CZShkLGcpe2lmKDEmZCl7''@;'; + put 'put ''Y29uc3QgaD1faSgpO2l0KDAsImJ1dHRvbiIsMjQpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KDIpLiRpbXBsaWNpdDtyZXR1cm4gYShLdCgyKS5kb3dubG9hZFNvdXJjZUNvZGUoeS5zb3VyY2VDb2RlKSl9KSxVdCgxLCIgRG93bmxvYWQgIiksc3QoKX19ZnVuY3Rp''@;'; + put 'put ''b24gdkJlKGQsZyl7aWYoMSZkJiYoaXQoMCwiY2xyLXRhYi1jb250ZW50IikoMSwiZGl2IiwyNSksVXQoMiksc3QoKSxybigzLG1CZSwyLDAsImJ1dHRvbiIsMTcpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgpLiRpbXBsaWNpdDt1dCgyKSxHaShoLnNvdXJjZUNvZGUpLHV0KDEpLFR0KCJuZ0lm''@;'; + put 'put ''IiwobnVsbD09aC5zb3VyY2VDb2RlP251bGw6aC5zb3VyY2VDb2RlLmxlbmd0aCk+MCl9fWZ1bmN0aW9uIEFCZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImJ1dHRvbiIsMjQpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KDIpLiRpbXBsaWNpdDtyZXR1''@;'; + put 'put ''cm4gYShLdCgyKS5kb3dubG9hZEdlbmVyYXRlZENvZGUoeS5nZW5lcmF0ZWRDb2RlKSl9KSxVdCgxLCIgRG93bmxvYWQgIiksc3QoKX19ZnVuY3Rpb24geUJlKGQsZyl7aWYoMSZkJiYoaXQoMCwiY2xyLXRhYi1jb250ZW50IikoMSwiZGl2IiwyNSksVXQoMiksc3QoKSxybigzLEFCZSwyLDAs''@;'; + put 'put ''ImJ1dHRvbiIsMTcpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgpLiRpbXBsaWNpdDt1dCgyKSxKaSgiICIsaC5nZW5lcmF0ZWRDb2RlLCIgIiksdXQoMSksVHQoIm5nSWYiLChudWxsPT1oLmdlbmVyYXRlZENvZGU/bnVsbDpoLmdlbmVyYXRlZENvZGUubGVuZ3RoKT4wKX19ZnVuY3Rpb24gd0Jl''@;'; + put 'put ''KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiZGl2IiwzMSksWW4oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9cnQoaCkuJGltcGxpY2l0O3JldHVybiBhKEt0KDMpLiRpbXBsaWNpdC5zZWxlY3RlZFRhYmxlPUMua2V5KX0pLFV0KDEpLHN0KCl9aWYoMiZkKXtjb25zdCBoPWcu''@;'; + put 'put ''JGltcGxpY2l0O0ZpKCJzZWxlY3RlZCIsS3QoMykuJGltcGxpY2l0LnNlbGVjdGVkVGFibGU9PT1oLmtleSksdXQoMSksSmkoIiAiLGgua2V5LCIgIil9fWZ1bmN0aW9uIGJCZShkLGcpe2lmKDEmZCYmKGl0KDAsImNsci1kcm9wZG93bi1tZW51Iikscm4oMSx3QmUsMiwzLCJkaXYiLDMwKSxu''@;'; + put 'put ''bigyLCJrZXl2YWx1ZSIpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgyKS4kaW1wbGljaXQ7dXQoMSksVHQoIm5nRm9yT2YiLHp0KDIsMSxoLlNBU1dPUkspKX19ZnVuY3Rpb24gX0JlKGQsZyl7aWYoMSZkJiYoaXQoMCwicCIsMzUpKDEsInN0cm9uZyIpLFV0KDIpLHN0KCkoKSksMiZkKXtjb25z''@;'; + put 'put ''dCBoPUt0KDMpLiRpbXBsaWNpdDt1dCgyKSxKaSgiIixoLnNlbGVjdGVkVGFibGUsIiAoZmlyc3QgMTAgcm93cykgIil9fWZ1bmN0aW9uIENCZShkLGcpe2lmKDEmZCYmKGl0KDAsInRoIiksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLEppKCIgIixoLmtleSwi''@;'; + put 'put ''ICIpfX1mdW5jdGlvbiBrQmUoZCxnKXtpZigxJmQmJihpdCgwLCJ0ZCIpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUt0KCkuJGltcGxpY2l0O3V0KDEpLEppKCIgIix2W2gua2V5XSwiICIpfX1mdW5jdGlvbiBTQmUoZCxnKXtpZigxJmQmJihpdCgwLCJ0ciIpLHJu''@;'; + put 'put ''KDEsa0JlLDIsMSwidGQiLDM3KSxubigyLCJrZXl2YWx1ZSIpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCg0KS4kaW1wbGljaXQ7dXQoMSksVHQoIm5nRm9yT2YiLHp0KDIsMSxoLlNBU1dPUktbaC5zZWxlY3RlZFRhYmxlXS5maXJzdDEwcm93c1swXSkpfX1mdW5jdGlvbiBNQmUoZCxnKXtpZigx''@;'; + put 'put ''JmQmJihpdCgwLCJ0YWJsZSIsMzYpKDEsInRoZWFkIikoMiwidHIiKSxybigzLENCZSwyLDEsInRoIiwzNyksbm4oNCwia2V5dmFsdWUiKSxzdCgpKCksaXQoNSwidGJvZHkiKSxybig2LFNCZSwzLDMsInRyIiwzNyksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3QoMykuJGltcGxpY2l0O3V0KDMp''@;'; + put 'put ''LFR0KCJuZ0Zvck9mIix6dCg0LDIsaC5TQVNXT1JLW2guc2VsZWN0ZWRUYWJsZV0uZmlyc3QxMHJvd3NbMF0pKSx1dCgzKSxUdCgibmdGb3JPZiIsaC5TQVNXT1JLW2guc2VsZWN0ZWRUYWJsZV0uZmlyc3QxMHJvd3MpfX1mdW5jdGlvbiBFQmUoZCxnKXtpZigxJmQmJihpdCgwLCJjbHItdGFi''@;'; + put 'put ''LWNvbnRlbnQiKSxybigxLF9CZSwzLDEsInAiLDMyKSxpdCgyLCJkaXYiLDMzKSxybigzLE1CZSw3LDQsInRhYmxlIiwzNCksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3QoMikuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0lmIixoLnNlbGVjdGVkVGFibGUpLHV0KDIpLFR0KCJuZ0lmIixoLnNlbGVj''@;'; + put 'put ''dGVkVGFibGUpfX1mdW5jdGlvbiB4QmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItdGFiIikoMSwiY2xyLWRyb3Bkb3duIiwyNikoMiwiYnV0dG9uIiwyNyksVXQoMywiIFNBUyBXb3JrIFRhYmxlcyAiKSxDcig0LCJjbHItaWNvbiIsMjgpLHN0KCkscm4oNSxiQmUsMywz''@;'; + put 'put ''LCJjbHItZHJvcGRvd24tbWVudSIsMjkpLHN0KCkscm4oNixFQmUsNCwyLCJuZy10ZW1wbGF0ZSIsMTIpLFluKCJjbHJJZkFjdGl2ZUNoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoMykudGFibGVzQWN0aXZlPXkpfSksc3QoKX1pZigyJmQpe2NvbnN0IGg9S3QoMyk7dXQo''@;'; + put 'put ''MSksVHQoImNsckNsb3NlTWVudU9uSXRlbUNsaWNrIiwhMCksdXQoNSksVHQoImNscklmQWN0aXZlIixoLnRhYmxlc0FjdGl2ZSl9fWZ1bmN0aW9uIFRCZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci1zdGFjay1ibG9jayIsOCkoMSwiY2xyLXN0YWNrLWxhYmVsIiksVXQo''@;'; + put 'put ''MiksaXQoMywic3BhbiIsOSkscm4oNCxzQmUsMiwwLCJzcGFuIiw1KSxybig1LHVCZSwyLDAsInNwYW4iLDUpLHN0KCkoKSxpdCg2LCJjbHItc3RhY2stY29udGVudCIpLFV0KDcpLHN0KCksaXQoOCwiY2xyLXN0YWNrLWJsb2NrIiwxMCkoOSwiY2xyLXN0YWNrLWNvbnRlbnQiKSgxMCwiY2xy''@;'; + put 'put ''LXRhYnMiKSgxMSwiY2xyLXRhYiIpKDEyLCJidXR0b24iLDExKSxVdCgxMywiU0FTIExvZyIpLHN0KCkscm4oMTQsZ0JlLDYsNCwibmctdGVtcGxhdGUiLDEyKSxZbigiY2xySWZBY3RpdmVDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KDIpLnNhc0xvZ0FjdGl2ZT15KX0p''@;'; + put 'put ''LHN0KCksaXQoMTUsImNsci10YWIiKSgxNiwiYnV0dG9uIiwxMSksVXQoMTcsIlNBUyBTb3VyY2UgQ29kZSIpLHN0KCkscm4oMTgsdkJlLDQsMiwibmctdGVtcGxhdGUiLDEyKSxZbigiY2xySWZBY3RpdmVDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KDIpLnNhc1NvdXJj''@;'; + put 'put ''ZUNvZGVBY3RpdmU9eSl9KSxzdCgpLGl0KDE5LCJjbHItdGFiIikoMjAsImJ1dHRvbiIsMTEpLFV0KDIxLCJTQVMgR2VuZXJhdGVkIENvZGUiKSxzdCgpLHJuKDIyLHlCZSw0LDIsIm5nLXRlbXBsYXRlIiwxMiksWW4oImNscklmQWN0aXZlQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQo''@;'; + put 'put ''aCksYShLdCgyKS5zYXNHZW5lcmF0ZWRDb2RlQWN0aXZlPXkpfSksc3QoKSxybigyMyx4QmUsNywyLCJjbHItdGFiIiw1KSxzdCgpKCkoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PWcuaW5kZXgseT1LdCgyKTtUdCgiaWQiLCJyZXF1ZXN0XyIrdikoImNsclN0YWNrVmlld0xl''@;'; + put 'put ''dmVsIiwxKSgiY2xyU3RhY2tWaWV3U2V0c2l6ZSIsMykoImNsclN0YWNrVmlld1Bvc2luc2V0IiwzKSx1dCgyKSxKaSgiICIsaC5zZXJ2aWNlTGluaywiICIpLHV0KDIpLFR0KCJuZ0lmIiwobnVsbD09aC5sb2dXYXJuaW5ncz9udWxsOmgubG9nV2FybmluZ3MubGVuZ3RoKT4wKSx1dCgxKSxU''@;'; + put 'put ''dCgibmdJZiIsKG51bGw9PWgubG9nRXJyb3JzP251bGw6aC5sb2dFcnJvcnMubGVuZ3RoKT4wKSx1dCgyKSxHaShoLnBhcnNlZFRpbWVzdGFtcCksdXQoNyksVHQoImNscklmQWN0aXZlIix5LnNhc0xvZ0FjdGl2ZSksdXQoNCksVHQoImNscklmQWN0aXZlIix5LnNhc1NvdXJjZUNvZGVBY3Rp''@;'; + put 'put ''dmUpLHV0KDQpLFR0KCJjbHJJZkFjdGl2ZSIseS5zYXNHZW5lcmF0ZWRDb2RlQWN0aXZlKSx1dCgxKSxUdCgibmdJZiIsaC5TQVNXT1JLKX19ZnVuY3Rpb24gSUJlKGQsZyl7aWYoMSZkJiYoaXQoMCwiY2xyLXN0YWNrLXZpZXciKSxybigxLFRCZSwyNCwxMiwiY2xyLXN0YWNrLWJsb2NrIiw3''@;'; + put 'put ''KSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKTt1dCgxKSxUdCgibmdGb3JPZiIsaC5zYXNqc1JlcXVlc3RzKX19bGV0IERCZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLmxvZ2dlclNlcnZpY2U9dix0aGlzLmhlbHBlclNlcnZpY2U9eSx0''@;'; + put 'put ''aGlzLl9vcGVuZWQ9ITEsdGhpcy5vcGVuZWRDaGFuZ2U9bmV3IGFyLHRoaXMuc2FzTG9nQWN0aXZlPSEwLHRoaXMuc2FzU291cmNlQ29kZUFjdGl2ZT0hMSx0aGlzLnNhc0dlbmVyYXRlZENvZGVBY3RpdmU9ITEsdGhpcy50YWJsZXNBY3RpdmU9ITEsdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNh''@;'; + put 'put ''c1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSx0aGlzLnNhc2pzUmVxdWVzdHM9W119Z2V0IG9wZW5lZCgpe3JldHVybiB0aGlzLl9vcGVuZWR9c2V0IG9wZW5lZChoKXt0aGlzLl9vcGVuZWQ9aCxoJiZ0aGlzLm1vZGFsT3BlbmVkKCksdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyh0aGlzLnNhc2pz''@;'; + put 'put ''UmVxdWVzdHMpfW5nT25Jbml0KCl7fXBhcnNlTG9nVGltZXN0YW1wKGgpe3JldHVybmAke3RoaXMuZm9ybWF0VGltZXN0YW1wKGgpfSAke3RoaXMudGltZXN0YW1wRnJvbU5vdyhoKX1gfWN1dEFwcExvYyhoKXtyZXR1cm4gaC5yZXBsYWNlKHRoaXMuc2FzanNDb25maWcuYXBwTG9jKyIvIiwi''@;'; + put 'put ''Iil9Zm9ybWF0VGltZXN0YW1wKGgpe3JldHVybiBUbChoKS5mb3JtYXQoKT9UbChoKS5mb3JtYXQoImRkZGQsIE1NTU0gRG8gWVlZWSwgaDptbTpzcyBhIik6aH10aW1lc3RhbXBGcm9tTm93KGgpe3JldHVybiBUbChoKS5mb3JtYXQoKT9gICgke1RsKGgpLmZyb21Ob3coKX0pYDoiIn1tb2Rh''@;'; + put 'put ''bE9wZW5DaGFuZ2UoaCl7dGhpcy5vcGVuZWQ9aCx0aGlzLm9wZW5lZENoYW5nZS5lbWl0KHRoaXMub3BlbmVkKX1tb2RhbE9wZW5lZCgpe3RoaXMuc2FzanNSZXF1ZXN0cz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzUmVxdWVzdHMoKTtmb3IobGV0IGggb2YgdGhpcy5zYXNqc1JlcXVlc3RzKXRo''@;'; + put 'put ''aXMucGFyc2VFcnJvcnNBbmRXYXJuaW5ncyhoKSxoLnNlcnZpY2VMaW5rPXRoaXMuY3V0QXBwTG9jKGguc2VydmljZUxpbmspLGgucGFyc2VkVGltZXN0YW1wPXRoaXMucGFyc2VMb2dUaW1lc3RhbXAoaC50aW1lc3RhbXApfWdvVG9Mb2dMaW5lKGgsdix5KXtsZXQgQz1kb2N1bWVudC5xdWVy''@;'; + put 'put ''eVNlbGVjdG9yQWxsKGAjJHt2fSAubG9nLXdyYXBwZXIuc2FzbG9nIGZvbnRgKSxJPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3Z9IC5sb2ctd3JhcHBlci5zYXNsb2dgKTtmb3IobGV0IGogb2YgQylqLnRleHRDb250ZW50LmluY2x1ZGVzKGgpJiYoSS5zY3JvbGxUb3A9ai5vZmZzZXRU''@;'; + put 'put ''b3AtSS5vZmZzZXRUb3Asai5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9IiM2MWEyMjAyYiIsc2V0VGltZW91dCgoKT0+e2ouc3R5bGU9IiJ9LDNlMykpfXBhcnNlRXJyb3JzQW5kV2FybmluZ3MoaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZighaHx8IWgubG9n''@;'; + put 'put ''RmlsZXx8InN0cmluZyIhPXR5cGVvZiBoLmxvZ0ZpbGV8fHZvaWQgMCE9PWgubG9nRXJyb3JzfHx2b2lkIDAhPT1oLmxvZ1dhcm5pbmdzKXJldHVybjtsZXQgdj1bXSx5PVtdLEM9aC5sb2dGaWxlLnNwbGl0KCJcbiIpO2ZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSsrKXtpZigvPC4qPkVSUk9S''@;'; + put 'put ''L2dtLnRlc3QoQ1tJXSkpe2xldCBqPUNbSV0uc3Vic3RyaW5nKENbSV0uaW5kZXhPZigiRSIpLENbSV0ubGVuZ3RoLTEpO3YucHVzaChqKX1lbHNlL15FUlJPUi9nbS50ZXN0KENbSV0pJiYodi5wdXNoKENbSV0pLENbSV09Ijxmb250PiIrQ1tJXSsiPC9mb250PiIpO2lmKC88Lio+V0FSTklO''@;'; + put 'put ''Ry9nbS50ZXN0KENbSV0pKXtsZXQgaj1DW0ldLnN1YnN0cmluZyhDW0ldLmluZGV4T2YoIlciKSxDW0ldLmxlbmd0aC0xKTt5LnB1c2goail9ZWxzZS9eV0FSTklORy9nbS50ZXN0KENbSV0pJiYoeS5wdXNoKENbSV0pLENbSV09Ijxmb250PiIrQ1tJXSsiPC9mb250PiIpfXRoaXMubG9nZ2Vy''@;'; + put 'put ''U2VydmljZS5sb2coeSksaC5sb2dGaWxlPUMuam9pbigiXG4iKSxoLmxvZ0Vycm9ycz12LGgubG9nV2FybmluZ3M9eX0pfWRvd25sb2FkTG9nKGgpe2NvbnN0IHY9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYGxvZ0ZpbGUtJHt2fWAs''@;'; + put 'put ''aCl9ZG93bmxvYWRTb3VyY2VDb2RlKGgpe2NvbnN0IHY9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYHNvdXJjZUNvZGUtJHt2fWAsaCl9ZG93bmxvYWRHZW5lcmF0ZWRDb2RlKGgpe2NvbnN0IHY9KG5ldyBEYXRlKS52YWx1ZU9mKCk7''@;'; + put 'put ''dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYGdlbmVyYXRlZENvZGUtJHt2fWAsaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KGcyKSxYdChzYyksWHQoWGMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6''@;'; + put 'put ''W1siYXBwLXJlcXVlc3RzLW1vZGFsIl1dLGlucHV0czp7b3BlbmVkOiJvcGVuZWQifSxvdXRwdXRzOntvcGVuZWRDaGFuZ2U6Im9wZW5lZENoYW5nZSJ9LGRlY2xzOjgsdmFyczo0LGNvbnN0czpbWyJjbHJNb2RhbFNpemUiLCJ4bCIsMSwicmVxdWVzdHMtbW9kYWwiLDMsImNsck1vZGFsT3Bl''@;'; + put 'put ''biIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsyLCJtYXJnaW4tdG9wIiwiMCIsImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siXSxbMSwibW9kYWwtYm9keSIsMiwiaGVpZ2h0IiwiNzB2aCJdLFsiY2xhc3MiLCJuby1yZXFzIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxb''@;'; + put 'put ''MSwibm8tcmVxcyJdLFszLCJpZCIsImNsclN0YWNrVmlld0xldmVsIiwiY2xyU3RhY2tWaWV3U2V0c2l6ZSIsImNsclN0YWNrVmlld1Bvc2luc2V0Iiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywiaWQiLCJjbHJTdGFja1ZpZXdMZXZlbCIsImNsclN0YWNrVmlld1NldHNpemUiLCJjbHJTdGFj''@;'; + put 'put ''a1ZpZXdQb3NpbnNldCJdLFsyLCJtYXJnaW4tbGVmdCIsIjEwcHgiXSxbMSwiY29udGVudCJdLFsiY2xyVGFiTGluayIsIiJdLFszLCJjbHJJZkFjdGl2ZSIsImNscklmQWN0aXZlQ2hhbmdlIl0sWyJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsMiwibWFyZ2luLWJvdHRvbSIsIjVweCIs''@;'; + put 'put ''ImNvbG9yIiwiZ3JlZW4iXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLDIsIm1hcmdpbi1ib3R0b20iLCI1cHgiLCJjb2xvciIsInJlZCJdLFsiY2xhc3MiLCJlcnItbGlua3MiLDQsIm5nSWYiXSxbMSwibG9nLXdyYXBwZXIiLCJzYXNsb2ciLDMsImlubmVySFRNTCJdLFsidHlw''@;'; + put 'put ''ZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1saW5rIiwzLCJjbGljayIsNCwibmdJZiJdLFsxLCJlcnItbGlua3MiXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLDIsImNvbG9yIiwicmVkIl0sWzMsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywiY2xpY2siXSxb''@;'; + put 'put ''MSwiY2xyLXRyZWVub2RlLWxpbmsiXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwyLCJjb2xvciIsImdyZWVuIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tbGluayIsMywiY2xpY2siXSxbMSwibG9nLXdyYXBwZXIiXSxbImNsclRhYkxpbmsiLCIiLDEsIndvcmstdGFi''@;'; + put 'put ''bGVzLWRyb3Bkb3duIiwzLCJjbHJDbG9zZU1lbnVPbkl0ZW1DbGljayJdLFsiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIl0sWyJzaGFwZSIsImNhcmV0IGRvd24iXSxbNCwiY2xySWZPcGVuIl0sWyJjbGFzcyIsImRyb3Bkb3duLWl0ZW0iLCJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsInNlbGVjdGVk''@;'; + put 'put ''IiwiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwxLCJkcm9wZG93bi1pdGVtIiwzLCJjbGljayJdLFsiY2xhc3MiLCJtdC0xMCIsNCwibmdJZiJdLFsyLCJtaW4taGVpZ2h0IiwiNTB2aCJdLFsiY2xhc3MiLCJ0YWJsZSBtdC0xMCIsNCwibmdJZiJd''@;'; + put 'put ''LFsxLCJtdC0xMCJdLFsxLCJ0YWJsZSIsIm10LTEwIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKGl0KDAsImNsci1tb2RhbCIsMCksWW4oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYubW9kYWxPcGVuQ2hhbmdl''@;'; + put 'put ''KEMpfSksaXQoMSwiaDMiLDEpLFV0KDIsIiBSZXF1ZXN0IEhpc3RvcnkgIiksaXQoMywicCIsMiksVXQoNCksc3QoKSgpLGl0KDUsImRpdiIsMykscm4oNixsQmUsMiwwLCJwIiw0KSxybig3LElCZSwyLDEsImNsci1zdGFjay12aWV3Iiw1KSxzdCgpKCkpLDImaCYmKFR0KCJjbHJNb2RhbE9w''@;'; + put 'put ''ZW4iLHYub3BlbmVkKSx1dCg0KSxKaSgiIEFwcCBMb2NhdGlvbjogIix2LnNhc2pzQ29uZmlnLmFwcExvYywiICIpLHV0KDIpLFR0KCJuZ0lmIiwobnVsbD09di5zYXNqc1JlcXVlc3RzP251bGw6di5zYXNqc1JlcXVlc3RzLmxlbmd0aCk8MSksdXQoMSksVHQoIm5nSWYiLHYub3BlbmVkJiYo''@;'; + put 'put ''bnVsbD09di5zYXNqc1JlcXVlc3RzP251bGw6di5zYXNqc1JlcXVlc3RzLmxlbmd0aCk+MCkpfSxkZXBlbmRlbmNpZXM6W1pzLFZvLGpMLGh5ZSwkZmUsZnllLHk5LF9nLFpMLHdsLGY0LGg0LHIxLFphLHBaLG1aLGtxLGdaLGhaLENxLGd3LHpMLEdMLHVaLE5UXSxzdHlsZXM6WyIucmVxdWVz''@;'; + put 'put ''dHMtbW9kYWwgLm1vZGFsLWhlYWRlciAuY2xvc2UgY2xyLWljb257ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9ICAucmVxdWVzdHMtbW9kYWwgLm1vZGFsLWNvbnRlbnR7cGFkZGluZzoyMHB4IDEwcHggNXB4fSAgLndvcmstdGFibGVzLWRyb3Bkb3duIGJ1dHRvbntjb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''bmF2LWxpbmstY29sb3IsICM4YzhjOGMpIWltcG9ydGFudH0gIC5zdGFjay12aWV3e2hlaWdodDphdXRvIWltcG9ydGFudDttYXNrLWltYWdlOm5vbmUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTpub25lIWltcG9ydGFudH0gIC5jb250ZW50IGNsci1pY29ue21hcmdpbi1ib3R0b206''@;'; + put 'put ''NXB4fSAgLmNvbnRlbnQgcHJle3dvcmQtYnJlYWs6YnJlYWstYWxsO3doaXRlLXNwYWNlOnByZS13cmFwO21heC1oZWlnaHQ6aW5pdGlhbDtvdmVyZmxvdzp2aXNpYmxlO2JvcmRlcjowfSAgLmNvbnRlbnQgLnN0YWNrLWJsb2NrLWxhYmVse3dpZHRoOjEwMCU7cGFkZGluZy1sZWZ0Oi42cmVt''@;'; + put 'put ''IWltcG9ydGFudH0gIC5jb250ZW50IC5zdGFjay1ibG9jay1sYWJlbCAuc3RhY2stdmlldy1rZXl7ZGlzcGxheTpub25lIWltcG9ydGFudH0gIC5lcnItbGlua3MgLmNsci10cmVlbm9kZS1jaGlsZHJlbnttYXgtaGVpZ2h0OjU1cHg7b3ZlcmZsb3c6YXV0b30uZHJvcGRvd24taXRlbS5zZWxl''@;'; + put 'put ''Y3RlZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZDhlM2U5fS5sb2ctd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDo1MHB4O3BhZGRpbmc6MTBweDttYXJnaW4tdG9wOjEwcHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7Ym9yZGVyLXJhZGl1czozcHg7Ym9yZGVy''@;'; + put 'put ''OjFweCBzb2xpZCAjZTJlMmUyO2JhY2tncm91bmQtY29sb3I6I2ZiZmJmYjtoZWlnaHQ6NDh2aDtvdmVyZmxvdzphdXRvfS5uby1yZXFzW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMDE5NjA3ODQzKTtwYWRkaW5nLXRvcDo1cHg7dGV4dC1h''@;'; + put 'put ''bGlnbjpjZW50ZXJ9Il19KSxkfSkoKTtmdW5jdGlvbiBMQmUoZCxnKXtpZigxJmQmJihpdCgwLCJwIiw4KSxVdCgxLCIgU0FTIFNlcnZpY2U6ICIpLGl0KDIsInN0cm9uZyIpLFV0KDMpLHN0KCkoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMyksR2koaC5kYXRhLnNhc1NlcnZpY2UpfX1mdW5j''@;'; + put 'put ''dGlvbiBPQmUoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDkpKDEsInAiKSgyLCJzdHJvbmciKSxVdCgzLCJTWVNXQVJOSU5HVEVYVDoiKSxzdCgpLFV0KDQpLHN0KCksaXQoNSwicCIpKDYsInN0cm9uZyIpLFV0KDcsIlNZU0VSUk9SVEVYVDoiKSxzdCgpLFV0KDgpLHN0KCksaXQoOSwicCIp''@;'; + put 'put ''KDEwLCJzdHJvbmciKSxVdCgxMSwiTUFDOiIpLHN0KCksVXQoMTIpLHN0KCkoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoNCksSmkoIiAiLGguZGF0YS5kZXRhaWxzLlNZU1dBUk5JTkdURVhULCIiKSx1dCg0KSxKaSgiICIsaC5kYXRhLmRldGFpbHMuU1lTRVJST1JURVhULCIiKSx1dCg0KSxK''@;'; + put 'put ''aSgiICIsaC5kYXRhLmRldGFpbHMuTUFDLCIiKX19ZnVuY3Rpb24gUkJlKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYnV0dG9uIiwxMCksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkub3BlbkNvbmZpZ3VyYXRvcigpKX0pLFV0KDEsIiBPcGVuIGNv''@;'; + put 'put ''bmZpZ3VyYXRvciAiKSxzdCgpfX1mdW5jdGlvbiBCQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJidXR0b24iLDEwKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5vcGVuUmVxdWVzdHNNb2RhbCgpKX0pLFV0KDEsIiBPcGVuIHJlcXVlc3RzIG1v''@;'; + put 'put ''ZGFsICIpLHN0KCl9fWZ1bmN0aW9uIFBCZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImJ1dHRvbiIsMTApLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLmRvd25sb2FkTG9nKCkpfSksVXQoMSwiIERvd25sb2FkIGxvZyAiKSxzdCgpfX1mdW5jdGlv''@;'; + put 'put ''biBGQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJidXR0b24iLDEwKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5jbG9zZUFib3J0TW9kYWwoKSl9KSxVdCgxLCIgQ2xvc2UgIiksc3QoKX19ZnVuY3Rpb24gSEJlKGQsZyl7aWYoMSZkKXtjb25z''@;'; + put 'put ''dCBoPV9pKCk7aXQoMCwiYnV0dG9uIiwxMCksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkucmVsb2FkKCkpfSksVXQoMSwiIFJlbG9hZCAiKSxzdCgpfX1sZXQgTkJlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5oZWxwZXJTZXJ2aWNl''@;'; + put 'put ''PWgsdGhpcy5ldmVudFNlcnZpY2U9dix0aGlzLnNhc1NlcnZpY2U9eSx0aGlzLnJvdXRlcj1DLHRoaXMub25Db25maXJtTW9kYWxDbGljaz1uZXcgYXIsdGhpcy5kYXRhPW5ldyBWVSx0aGlzLmZvcmNlUmVsb2FkPSExLHRoaXMubW9kYWxFbmFibGVkPSEwLHRoaXMuZGVmYXVsdERhdGE9e21v''@;'; + put 'put ''ZGFsVGl0bGU6IkFib3J0IE1lc3NhZ2UiLHNhc1NlcnZpY2U6bnVsbCxtZXNzYWdlOiIiLGRldGFpbHM6bmV3IF9IfX1uZ09uSW5pdCgpe2xldCBoPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmRlZmF1bHREYXRhKSx0aGlzLmRhdGEpO3RoaXMuZGF0YT1ofXNob3dDb25m''@;'; + put 'put ''aWd1cmF0b3JCdXR0b24oaCl7Y29uc3Qgdj10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKTtyZXR1cm4obnVsbD09aD92b2lkIDA6aC5pbmNsdWRlcygic3RhcnR1cHNlcnZpY2UiKSkmJnYuc2VydmVyVHlwZT09PUh1LkQuU2FzOX1jbG9zZUFib3J0TW9kYWwoKXt0aGlzLm9uQ29u''@;'; + put 'put ''ZmlybU1vZGFsQ2xpY2suZW1pdCgpfW9wZW5Db25maWd1cmF0b3IoKXt0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSx0aGlzLmNsb3NlQWJvcnRNb2RhbCgpfWRvd25sb2FkTG9nKCl7dmFyIGg7dGhpcy5o''@;'; + put 'put ''ZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYCR7dGhpcy5kYXRhLnNhc1NlcnZpY2V9LUxPR2AsKG51bGw9PT0oaD10aGlzLmRhdGEuZGV0YWlscyl8fHZvaWQgMD09PWg/dm9pZCAwOmguTE9HKXx8IkVycm9yIHBhcnNpbmcgdGhlIGxvZyIpfW9wZW5SZXF1ZXN0c01vZGFsKCl7dGhp''@;'; + put 'put ''cy5ldmVudFNlcnZpY2Uub3BlblJlcXVlc3RzTW9kYWwoKX1yZWxvYWQoKXtsb2NhdGlvbi5yZWxvYWQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoWGMpLFh0KG11KSxYdChnMiksWHQoWmwpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxz''@;'; + put 'put ''ZWxlY3RvcnM6W1siYXBwLWluZm8tbW9kYWwiXV0saW5wdXRzOntkYXRhOiJkYXRhIixmb3JjZVJlbG9hZDoiZm9yY2VSZWxvYWQifSxvdXRwdXRzOntvbkNvbmZpcm1Nb2RhbENsaWNrOiJvbkNvbmZpcm1Nb2RhbENsaWNrIn0sZGVjbHM6MTMsdmFyczoxMixjb25zdHM6W1siYXBwRHJhZ05k''@;'; + put 'put ''cm9wIiwiIiwxLCJjbHItYWJvcnQtbW9kYWwiLDMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsU2l6ZSIsImNsck1vZGFsQ2xvc2FibGUiLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbMSwibW9kYWwtdGl0bGUiXSxbImNsYXNzIiwic2FzU2VydmljZSIsNCwibmdJZiJdLFsxLCJtb2RhbC1ib2R5''@;'; + put 'put ''Il0sWzEsImFib3J0TXNnIiwzLCJpbm5lckhUTUwiXSxbImNsYXNzIiwic3lzdGV4dCIsNCwibmdJZiJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImJ0biBidG4tcHJpbWFyeSIsMywiY2xpY2siLDQsIm5nSWYiXSxbMSwic2FzU2VydmljZSJdLFsxLCJz''@;'; + put 'put ''eXN0ZXh0Il0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJjbHItbW9kYWwiLDApLFluKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm1vZGFsRW5hYmxl''@;'; + put 'put ''ZD1DfSksaXQoMSwiaDMiLDEpLFV0KDIpLHJuKDMsTEJlLDQsMSwicCIsMiksc3QoKSxpdCg0LCJkaXYiLDMpLENyKDUsImRpdiIsNCkscm4oNixPQmUsMTMsMywiZGl2Iiw1KSxzdCgpLGl0KDcsImRpdiIsNikscm4oOCxSQmUsMiwwLCJidXR0b24iLDcpLHJuKDksQkJlLDIsMCwiYnV0dG9u''@;'; + put 'put ''Iiw3KSxybigxMCxQQmUsMiwwLCJidXR0b24iLDcpLHJuKDExLEZCZSwyLDAsImJ1dHRvbiIsNykscm4oMTIsSEJlLDIsMCwiYnV0dG9uIiw3KSxzdCgpKCkpLDImaCYmKFR0KCJjbHJNb2RhbE9wZW4iLHYubW9kYWxFbmFibGVkKSgiY2xyTW9kYWxTaXplIiwieGwiKSgiY2xyTW9kYWxDbG9z''@;'; + put 'put ''YWJsZSIsIXYuZm9yY2VSZWxvYWQpLHV0KDIpLEppKCIgIix2LmRhdGEubW9kYWxUaXRsZSwiICIpLHV0KDEpLFR0KCJuZ0lmIix2LmRhdGEuc2FzU2VydmljZSYmdi5kYXRhLnNhc1NlcnZpY2UubGVuZ3RoPjApLHV0KDIpLFR0KCJpbm5lckhUTUwiLHYuZGF0YS5tZXNzYWdlLFU4KSx1dCgx''@;'; + put 'put ''KSxUdCgibmdJZiIsbnVsbCE9PXYuZGF0YS5kZXRhaWxzKSx1dCgyKSxUdCgibmdJZiIsdi5zaG93Q29uZmlndXJhdG9yQnV0dG9uKHYuZGF0YS5zYXNTZXJ2aWNlKSksdXQoMSksVHQoIm5nSWYiLG51bGwhPT12LmRhdGEuZGV0YWlscyksdXQoMSksVHQoIm5nSWYiLChudWxsPT12LmRhdGEu''@;'; + put 'put ''ZGV0YWlscz9udWxsOnYuZGF0YS5kZXRhaWxzLkxPRykmJihudWxsPT12LmRhdGEuZGV0YWlsc3x8bnVsbD09di5kYXRhLmRldGFpbHMuTE9HP251bGw6di5kYXRhLmRldGFpbHMuTE9HLnRyaW0oKSkubGVuZ3RoPjApLHV0KDEpLFR0KCJuZ0lmIiwhdi5mb3JjZVJlbG9hZCksdXQoMSksVHQo''@;'; + put 'put ''Im5nSWYiLHYuZm9yY2VSZWxvYWQpKX0sZGVwZW5kZW5jaWVzOltWbyxmNCxoNF0sc3R5bGVzOlsiLmNsci1hYm9ydC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tb2RhbC10aXRsZS13cmFwcGVye3dpZHRoOjEwMCV9LmNsci1hYm9ydC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0g''@;'; + put 'put ''ICAgIC5tb2RhbHt6LWluZGV4OjIwNTB9Lm1vZGFsLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uc2FzU2VydmljZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7dG9wOjBweDtyaWdodDoxMHB4O21hcmdpbjowfS5tb2RhbC1mb290ZXJb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci10b3A6MXB4IHNvbGlkICNkY2RjZGN9LnN5c3RleHRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmF1dG87bWFyZ2luLXRvcDoyMHB4O3BhZGRpbmc6MTBweCAwO2JvcmRlci10b3A6MXB4IHNvbGlkICNkY2Rj''@;'; + put 'put ''ZGN9LnN5c3RleHRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDowO3dvcmQtd3JhcDpicmVhay13b3JkfSJdfSksZH0pKCk7ZnVuY3Rpb24gVkJlKGQsZyl7MSZkJiYoRjAoMCksVXQoMSwiIFRoaXMgdmVyc2lvbiBpcyBsaW1pdGVkIHRvICIp''@;'; + put 'put ''LEgwKCkpfWZ1bmN0aW9uIGpCZShkLGcpe2lmKDEmZCYmKEYwKDApLFV0KDEpLEgwKCkpLDImZCl7Y29uc3QgaD1LdCgzKTt1dCgxKSxGaCgiICIsaC5kZW1vTGltaXRzLnJvd3NfYWxsb3dlZCwiIHJvdyIsMT09PWguZGVtb0xpbWl0cy5yb3dzX2FsbG93ZWQ/IiI6InMiLCIgb24gYWxsIHRh''@;'; + put 'put ''YmxlIHZpZXdzICIpfX1mdW5jdGlvbiBaQmUoZCxnKXtpZigxJmQmJihGMCgwKSxVdCgxKSxIMCgpKSwyJmQpe2NvbnN0IGg9S3QoMyk7dXQoMSksa2YoIiIsaC5kZW1vTGltaXRzLnJvd3NfYWxsb3dlZD8iYW5kIjoiIiwiICIsaC5kZW1vTGltaXRzLnVzZXJzX2FsbG93ZWQsIiB1c2VyIiwx''@;'; + put 'put ''PT09aC5kZW1vTGltaXRzLnVzZXJzX2FsbG93ZWQ/IiI6InMiLCIiKX19ZnVuY3Rpb24gekJlKGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2IiwyMCkoMSwiZGl2IiwyMSkoMiwiZGl2IiwyMikoMywiZGl2IiwyMyksQ3IoNCwiY2xyLWljb24iLDI0KSxzdCgpLGl0KDUsImRpdiIsMjUpLFV0KDYs''@;'; + put 'put ''IiBEZW1vIFZlcnNpb24gb2YgRGF0YSBDb250cm9sbGVyIC0gZm9yIGV2YWx1YXRpb24gdXNlIG9ubHkuICIpLHJuKDcsVkJlLDIsMCwibmctY29udGFpbmVyIiwxKSxybig4LGpCZSwyLDIsIm5nLWNvbnRhaW5lciIsMSkscm4oOSxaQmUsMiwzLCJuZy1jb250YWluZXIiLDEpLHN0KCkoKSgp''@;'; + put 'put ''LGl0KDEwLCJhIiwyNiksVXQoMTEsIlVwZGF0ZSBMaWNlbmNlIEtleSIpLHN0KCkoKSksMiZkKXtjb25zdCBoPUt0KDIpO3V0KDcpLFR0KCJuZ0lmIixoLmRlbW9MaW1pdHMucm93c19hbGxvd2VkfHxoLmRlbW9MaW1pdHMudXNlcnNfYWxsb3dlZCksdXQoMSksVHQoIm5nSWYiLGguZGVtb0xp''@;'; + put 'put ''bWl0cy5yb3dzX2FsbG93ZWQpLHV0KDEpLFR0KCJuZ0lmIixoLmRlbW9MaW1pdHMudXNlcnNfYWxsb3dlZCl9fWZ1bmN0aW9uIEdCZShkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsMjcpKDEsImRpdiIsMjEpKDIsImRpdiIsMjIpKDMsImRpdiIsMjMpLENyKDQsImNsci1pY29uIiwyNCksc3Qo''@;'; + put 'put ''KSxpdCg1LCJkaXYiLDI1KSxVdCg2KSxpdCg3LCJhIiwyOCksVXQoOCwic3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyIpLHN0KCksVXQoOSksc3QoKSgpKCksaXQoMTAsImEiLDI2KSxVdCgxMSwiVXBkYXRlIExpY2VuY2UgS2V5Iiksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3QoMik7dXQoNiks''@;'; + put 'put ''SmkoIiBUaGlzIGxpY2Vuc2Uga2V5IHdpbGwgZXhwaXJlIGluICIsaC5saWNlbnNlRXhwaXJpbmdEYXlzLCIgZGF5cy4gUGxlYXNlIGNvbnRhY3QgIiksdXQoMyksSmkoIiBvciB5b3VyIHJlc2VsbGVyIHRvIGFycmFuZ2UgYWRkaXRpb25hbCBsaWNlbmNlIGZvciBzaXRlIGlkICIsaC5zeXNz''@;'; + put 'put ''aXRlLmdldFZhbHVlKCksIi4gIil9fWZ1bmN0aW9uIFdCZShkLGcpezEmZCYmKGl0KDAsImEiLDI2KSxVdCgxLCJVcGRhdGUgTGljZW5jZSBLZXkiKSxzdCgpKX1mdW5jdGlvbiBZQmUoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDI3KSgxLCJkaXYiLDIxKSgyLCJkaXYiLDIyKSgzLCJkaXYi''@;'; + put 'put ''LDIzKSxDcig0LCJjbHItaWNvbiIsMjQpLHN0KCksaXQoNSwiZGl2IiwyNSksVXQoNiwiIFRoZSByZWdpc3RlcmVkIG51bWJlciBvZiB1c2VycyBleGNlZWRzIHRoZSBsaW1pdCBzcGVjaWZpZWQgZm9yIHlvdXIgbGljZW5zZS4gUGxlYXNlIGNvbnRhY3QgIiksaXQoNywiYSIsMjgpLFV0KDgs''@;'; + put 'put ''InN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iKSxzdCgpLFV0KDkpLHN0KCkoKSgpLHJuKDEwLFdCZSwyLDAsImEiLDI5KSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoMik7dXQoOSksSmkoIiBvciB5b3VyIHJlc2VsbGVyIHRvIGFycmFuZ2UgYWRkaXRpb25hbCBsaWNlbmNlIGZvciBzaXRlIGlk''@;'; + put 'put ''ICIsaC5zeXNzaXRlLmdldFZhbHVlKCksIi4gIiksdXQoMSksVHQoIm5nSWYiLCFoLmxpY2Vuc2VFeHBpcmluZ0RheXMpfX1mdW5jdGlvbiBVQmUoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLHpCZSwxMiwzLCJkaXYiLDE4KSxybigyLEdCZSwxMiwyLCJkaXYiLDE5KSxybigzLFlCZSwxMSwy''@;'; + put 'put ''LCJkaXYiLDE5KSxIMCgpKSwyJmQpe2NvbnN0IGg9S3QoKTt1dCgxKSxUdCgibmdJZiIsaC5kZW1vQmFubmVyJiYhaC5saWNlbnNlRXhwaXJpbmdEYXlzKSx1dCgxKSxUdCgibmdJZiIsaC5saWNlbnNlRXhwaXJpbmdEYXlzKSx1dCgxKSxUdCgibmdJZiIsaC5hcHBPdmVyQ2FwYWNpdHkpfX1m''@;'; + put 'put ''dW5jdGlvbiBRQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJidXR0b24iLDMwKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS50b2dnbGVTaWRlYmFyKCkpfSksQ3IoMSwic3BhbiIpLHN0KCl9fWNvbnN0IEpCZT1mdW5jdGlvbigpe3JldHVyblsi''@;'; + put 'put ''LyJdfTtmdW5jdGlvbiBYQmUoZCxnKXsxJmQmJihpdCgwLCJhIiwzMSksQ3IoMSwic3BhbiIsMzIpLHN0KCkpLDImZCYmVHQoInJvdXRlckxpbmsiLE5zKDEsSkJlKSl9ZnVuY3Rpb24gS0JlKGQsZyl7MSZkJiYoaXQoMCwiYSIpLENyKDEsInNwYW4iLDMzKSxzdCgpKX1jb25zdCAkQmU9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm5bIi92aWV3Il19LHFCZT1mdW5jdGlvbigpe3JldHVyblsiL2hvbWUiXX0sZVBlPWZ1bmN0aW9uKCl7cmV0dXJuWyIvc3VibWl0dGVkIl19LHRQZT1mdW5jdGlvbigpe3JldHVyblsiL2FwcHJvdmUiXX0sblBlPWZ1bmN0aW9uKCl7cmV0dXJuWyIvaGlzdG9yeSJdfTtm''@;'; + put 'put ''dW5jdGlvbiByUGUoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDM0KSgxLCJhIiwzNSksVXQoMiwiVklFVyIpLHN0KCksaXQoMywiYSIsMzYpLFV0KDQsIkVESVQiKSxzdCgpLGl0KDUsImEiLDM1KSxVdCg2LCJTVUJNSVRURUQiKSxzdCgpLGl0KDcsImEiLDM1KSxVdCg4LCJBUFBST1ZFIiks''@;'; + put 'put ''c3QoKSxpdCg5LCJhIiwzNSksVXQoMTAsIkhJU1RPUlkiKSxzdCgpKCkpLDImZCl7Y29uc3QgaD1LdCgpO3V0KDEpLFR0KCJyb3V0ZXJMaW5rIixOcyg3LCRCZSkpLHV0KDIpLEZpKCJhY3RpdmUiLGgucm91dGVyLnVybC5pbmNsdWRlcygiZWRpdG9yIil8fGgucm91dGVyLnVybC5pbmNsdWRl''@;'; + put 'put ''cygiZWRpdC1yZWNvcmQiKXx8aC5yb3V0ZXIudXJsLmluY2x1ZGVzKCJob21lIikpLFR0KCJyb3V0ZXJMaW5rIixOcyg4LHFCZSkpLHV0KDIpLFR0KCJyb3V0ZXJMaW5rIixOcyg5LGVQZSkpLHV0KDIpLFR0KCJyb3V0ZXJMaW5rIixOcygxMCx0UGUpKSx1dCgyKSxUdCgicm91dGVyTGluayIs''@;'; + put 'put ''TnMoMTEsblBlKSl9fWZ1bmN0aW9uIGlQZShkLGcpezEmZCYmQ3IoMCwiYXBwLWFsZXJ0cyIpfWZ1bmN0aW9uIG9QZShkLGcpezEmZCYmQ3IoMCwicm91dGVyLW91dGxldCIpfWZ1bmN0aW9uIGFQZShkLGcpezEmZCYmQ3IoMCwiYXBwLWFsZXJ0cyIpfWZ1bmN0aW9uIGxQZShkLGcpe2lmKDEm''@;'; + put 'put ''ZCl7Y29uc3QgaD1faSgpO2l0KDAsImFwcC1pbmZvLW1vZGFsIiwzNyksWW4oIm9uQ29uZmlybU1vZGFsQ2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgQz1ydChoKS4kaW1wbGljaXQ7cmV0dXJuIGEoS3QoKS5jbG9zZUFib3J0TW9kYWwoQy5pZCkpfSksc3QoKX1pZigyJmQpe2NvbnN0IGg9Zy4k''@;'; + put 'put ''aW1wbGljaXQsdj1LdCgpO1R0KCJkYXRhIixoKSgiZm9yY2VSZWxvYWQiLCF2LnN0YXJ0dXBEYXRhTG9hZGVkJiYxPT09di5zYXNqc0Fib3J0cy5sZW5ndGgpfX1mdW5jdGlvbiBzUGUoZCxnKXsxJmQmJihpdCgwLCJkaXYiLDQxKSxDcigxLCJkaXYiLDQyKSgyLCJkaXYiLDQzKSgzLCJkaXYi''@;'; + put 'put ''LDQ0KSxzdCgpKX1mdW5jdGlvbiB1UGUoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDM4KSxDcigxLCJpbWciLDM5KSxybigyLHNQZSw0LDAsImRpdiIsNDApLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgpO3V0KDIpLFR0KCJuZ0lmIixudWxsPT09aC5hcHBBY3RpdmUpfX1sZXQgY1BlPSgoKT0+''@;'; + put 'put ''e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGosdWUsX2Upe3RoaXMuYXBwU2VydmljZT1oLHRoaXMucm91dGVyPXYsdGhpcy5yb3V0ZT15LHRoaXMubG9jYXRpb249Qyx0aGlzLmV2ZW50U2VydmljZT1JLHRoaXMuYXBwU3RvcmVTZXJ2aWNlPWosdGhpcy5jZHI9dWUsdGhpcy5lbGVt''@;'; + put 'put ''ZW50UmVmPV9lLHRoaXMubGljZW5zZUV4cGlyaW5nRGF5cz1udWxsLHRoaXMuc2FzanNBYm9ydHM9W10sdGhpcy5lZGl0b3JBY3RpdmU9ITEsdGhpcy5hcHByb3ZlQWN0aXZlPSExLHRoaXMuZGVtb0Jhbm5lcj10aGlzLmFwcFNlcnZpY2UuaXNBcHBEZW1vLnZhbHVlLHRoaXMuYXBwT3ZlckNh''@;'; + put 'put ''cGFjaXR5PSExLHRoaXMuYXBwQWN0aXZlPW51bGwsdGhpcy5yZXF1ZXN0c01vZGFsPSExLHRoaXMuc2hvd1JlZ2lzdHJhdGlvbj0hMCx0aGlzLnN0YXJ0dXBEYXRhTG9hZGVkPSExLHRoaXMuZGVtb0xpbWl0Tm90aWNlPSExLHRoaXMuc3lzc2l0ZT10aGlzLmFwcFNlcnZpY2Uuc3lzc2l0ZSx0''@;'; + put 'put ''aGlzLmRlbW9MaW1pdHM9e30sdGhpcy5wYXJzZURjQWRhcHRlclNldHRpbmdzKCksd2luZG93LmFwcGluZm89KCk9Pntjb25zdCBCZT10aGlzLmFwcFNlcnZpY2UuZ2V0TGljZW5zZUtleURhdGEoKTtpZihCZSl7Y29uc3QgTmU9VGwoQmUudmFsaWRfdW50aWwsIllZWVktTU0tREQiKSxLZT1U''@;'; + put 'put ''bCgpLGR0PU5lLmRpZmYoS2UsImRheXMiKTtCZS52YWxpZF91bnRpbCs9YCAoJHtkdH0gZGF5cyByZW1haW5pbmcpYCxpc05hTihkdCkmJihCZS52YWxpZF91bnRpbD0iVW5saW1pdGVkIil9Y29uc29sZS50YWJsZShPYmplY3QuYXNzaWduKHsiQWRhcHRlciB2ZXJzaW9uIjoiMy4xMC4xMSIs''@;'; + put 'put ''IkFwcCB2ZXJzaW9uIjoidjUuMC4wIi5yZXBsYWNlKCJ2IiwiIiksIkJ1aWxkIHRpbWVzdGFtcCI6VGwocGFyc2VJbnQoIjE2NjA5MTQ4NDMyOTUiKSkuZm9ybWF0KCJERC1NTU0tWVlZWSBISDpNTSIpLCIuLi4iOiIuLi4ifSx0aGlzLmFwcFNlcnZpY2UuZ2V0TGljZW5zZUtleURhdGEoKSkp''@;'; + put 'put ''fSx0aGlzLnN1YnNjcmliZVRvTGljZW5zZUV2ZW50cygpLHRoaXMuY29tbWl0VmVyPSJ2NS4wLjAiLnJlcGxhY2UoInYiLCIiKSsiLmdkNWM5MGVlMSIsdi5ldmVudHMuc3Vic2NyaWJlKEJlPT57aWYodGhpcy5yb3V0ZVVybD10aGlzLnJvdXRlci51cmwsdm9pZCAwIT09dGhpcy5yb3V0ZVVy''@;'; + put 'put ''bCYmdGhpcy5yb3V0ZVVybC5sZW5ndGg+NCl7bGV0IE5lPXRoaXMucm91dGVVcmwuc3BsaXQoIi8iKVsxXTsiZWRpdG9yIj09PU5lPyh0aGlzLmVyclRvcD0hMCx0aGlzLmVkaXRvckFjdGl2ZT0hMCx0aGlzLmFwcHJvdmVBY3RpdmU9ITEpOiJob21lIj09PU5lPyh0aGlzLmVyclRvcD0hMSx0''@;'; + put 'put ''aGlzLmVkaXRvckFjdGl2ZT0hMCx0aGlzLmFwcHJvdmVBY3RpdmU9ITEpOih0aGlzLmVyclRvcD0hMCx0aGlzLmVkaXRvckFjdGl2ZT0hMSksbmkucm9vdFBhcmFtPU5lfXZvaWQgMCE9PXRoaXMucm91dGVVcmwmJnRoaXMucm91dGVVcmwubGVuZ3RoPjYmJih0aGlzLmFwcHJvdmVBY3RpdmU9''@;'; + put 'put ''ISF0aGlzLnJvdXRlVXJsLmluY2x1ZGVzKCJhcHByb3ZlRGV0Iil8fCEhdGhpcy5yb3V0ZVVybC5pbmNsdWRlcygidG9hcHByb3ZlIikpfSksdGhpcy5zdWJzY3JpYmVUb1Nob3dBYm9ydE1vZGFsKCksdGhpcy5zdWJzY3JpYmVUb1JlcXVlc3RzTW9kYWwoKSx0aGlzLnN1YnNjcmliZVRvU3Rh''@;'; + put 'put ''cnR1cERhdGEoKSx0aGlzLnN1YnNjcmliZVRvQXBwQWN0aXZlKCksdGhpcy5zdWJzY3JpYmVUb0RlbW9MaW1pdE1vZGFsKCksd2luZG93LmZyYW1lRWxlbWVudCYmKHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdHlsZSIsImhlaWdodDoxMDAlO3dpZHRoOjEwMCU7cG9zaXRp''@;'; + put 'put ''b246YWJzb2x1dGUiKSx3aW5kb3cuZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWxsb3dmdWxsc2NyZWVuIiwiIiksd2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoImZyYW1lYm9yZGVyIiwiMCIpLHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXJnaW5oZWln''@;'; + put 'put ''aHQiLCIwIiksd2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1hcmdpbndpZHRoIiwiMCIpLHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzY3JvbGxpbmciLCJhdXRvIiksd2luZG93LmZvY3VzKCkpfXBhcnNlRGNBZGFwdGVyU2V0dGluZ3MoKXtjb25zdCBoPXk9''@;'; + put 'put ''PnRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSh5KSx2PXtzZXJ2ZXJVcmw6aCgic2VydmVyVXJsIiksYXBwTG9jOmgoImFwcExvYyIpLHNlcnZlclR5cGU6aCgic2VydmVyVHlwZSIpLGxvZ2luTWVjaGFuaXNtOmgoImxvZ2luTWVjaGFuaXNtIiksYWRtaW5Hcm91''@;'; + put 'put ''cDpoKCJhZG1pbkdyb3VwIiksZGNQYXRoOmgoImRjUGF0aCIpLGRlYnVnOiJ0cnVlIj09PWgoImRlYnVnIiksdXNlQ29tcHV0ZUFwaToidHJ1ZSI9PT1oKCJ1c2VDb21wdXRlQXBpIiksY29udGV4dE5hbWU6aCgiY29udGV4dE5hbWUiKSxob3RMaWNlbmNlS2V5OmgoImhvdExpY2VuY2VLZXki''@;'; + put 'put ''KX07dGhpcy5kY0FkYXB0ZXJTZXR0aW5ncz12LHRoaXMuYXBwU3RvcmVTZXJ2aWNlLnNldERjQWRhcHRlclNldHRpbmdzKHYpLHRoaXMuYXBwU2VydmljZS5zYXNTZXJ2aWNlSW5pdCgpfXN1YnNjcmliZVRvRGVtb0xpbWl0TW9kYWwoKXt0aGlzLmV2ZW50U2VydmljZS5vbkRlbW9MaW1pdE1v''@;'; + put 'put ''ZGFsU2hvdy5zdWJzY3JpYmUoKCk9Pnt0aGlzLmRlbW9MaW1pdE5vdGljZT0hMH0pfXN1YnNjcmliZVRvTGljZW5zZUV2ZW50cygpe3RoaXMuYXBwU2VydmljZS5pc0FwcERlbW8uc3Vic2NyaWJlKGg9Pnt0aGlzLmRlbW9CYW5uZXI9aH0pLHRoaXMuYXBwU2VydmljZS5saWNlbnNlRXhwaXJl''@;'; + put 'put ''c0luRGF5cy5zdWJzY3JpYmUoaD0+e2gmJmg8PTE0JiYodGhpcy5saWNlbnNlRXhwaXJpbmdEYXlzPWgpfSksdGhpcy5hcHBTZXJ2aWNlLmlzQXBwT3ZlckNhcGFjaXR5LnN1YnNjcmliZShoPT57dGhpcy5hcHBPdmVyQ2FwYWNpdHk9aH0pfXN1YnNjcmliZVRvQXBwQWN0aXZlKCl7dGhpcy5h''@;'; + put 'put ''cHBTZXJ2aWNlLmlzQXBwQWN0aXZhdGVkLnN1YnNjcmliZShoPT57dGhpcy5hcHBBY3RpdmU9aCx0aGlzLmRlbW9MaW1pdHM9dGhpcy5hcHBTZXJ2aWNlLmRlbW9MaW1pdHN9KX1zdWJzY3JpYmVUb1Nob3dBYm9ydE1vZGFsKCl7dGhpcy5ldmVudFNlcnZpY2Uub25TaG93QWJvcnRNb2RhbC5z''@;'; + put 'put ''dWJzY3JpYmUoaD0+e2guaWQ9dGhpcy5zYXNqc0Fib3J0cy5sZW5ndGgrMSx0aGlzLnNhc2pzQWJvcnRzLnB1c2goaCksdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpfSl9c3Vic2NyaWJlVG9TdGFydHVwRGF0YSgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9uU3RhcnR1cERhdGFMb2FkZWQuc3Vic2Ny''@;'; + put 'put ''aWJlKCgpPT57dGhpcy5zdGFydHVwRGF0YUxvYWRlZD0hMH0pfXN1YnNjcmliZVRvUmVxdWVzdHNNb2RhbCgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9uUmVxdWVzdHNNb2RhbE9wZW4uc3Vic2NyaWJlKGg9Pnt0aGlzLnJlcXVlc3RzTW9kYWw9ITB9KX1jbG9zZUFib3J0TW9kYWwoaCl7bGV0IHY9''@;'; + put 'put ''dGhpcy5zYXNqc0Fib3J0cy5maW5kSW5kZXgoeT0+eS5pZD09PWgpO3RoaXMuc2FzanNBYm9ydHMuc3BsaWNlKHYsMSl9dG9nZ2xlU2lkZWJhcigpe3RoaXMuZXZlbnRTZXJ2aWNlLnRvZ2dsZVNpZGViYXIoKX1pc01haW5Sb3V0ZShoKXtyZXR1cm4gdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVz''@;'; + put 'put ''KGgpfW9wZW5MaWNlbmNpbmdQYWdlKCl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy91cGRhdGUiKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoUjcpLFh0KFpsKSxYdChQdSksWHQoVjYpLFh0KG11KSxYdChhayksWHQo''@;'; + put 'put ''ZDEpLFh0KGJvKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbIm15LWFwcCJdXSxkZWNsczoyOSx2YXJzOjE1LGNvbnN0czpbWzEsIm1haW4tY29udGFpbmVyIl0sWzQsIm5nSWYiXSxbMiwiYmFja2dyb3VuZCIsIiMzMTQzNTEgIWltcG9ydGFudCIsImNvbG9yIiwiI2Zm''@;'; + put 'put ''ZiJdLFsiY2xhc3MiLCJoZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIiLCJ0eXBlIiwiYnV0dG9uIiwzLCJjbGljayIsNCwibmdJZiJdLFsxLCJicmFuZGluZyJdLFsiaHJlZiIsIiMiLCJjbGFzcyIsIm5hdi1saW5rIiwzLCJyb3V0ZXJMaW5rIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImhlYWRlci1u''@;'; + put 'put ''YXYiLDQsIm5nSWYiXSxbMSwiaGVhZGVyLWFjdGlvbnMiXSxbMSwibmF2LXRleHQiXSxbMSwiZHJvcGRvd24iXSxbMywib3BlbmVkIiwib3BlbmVkQ2hhbmdlIl0sWzMsImRhdGEiLCJmb3JjZVJlbG9hZCIsIm9uQ29uZmlybU1vZGFsQ2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiYXBw''@;'; + put 'put ''RHJhZ05kcm9wIiwiIiwyLCJwb3NpdGlvbiIsInJlbGF0aXZlIiwzLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWyJzaXplIiwiMjAiLCJzaGFwZSIsImxvY2siXSxbMSwibW9k''@;'; + put 'put ''YWwtYm9keSJdLFsiaHJlZiIsIm1haWx0bzpzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIl0sWyJjbGFzcyIsImFwcC1sb2FkaW5nIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImFsZXJ0IGFsZXJ0LWFwcC1sZXZlbCBhbGVydC13YXJuaW5nIiwiaWQiLCJkZW1vLWJhbm5lciIsInJvbGUiLCJhbGVy''@;'; + put 'put ''dCIsNCwibmdJZiJdLFsiY2xhc3MiLCJhbGVydCBhbGVydC1hcHAtbGV2ZWwgYWxlcnQtZGFuZ2VyIiwiaWQiLCJkZW1vLWJhbm5lciIsInJvbGUiLCJhbGVydCIsNCwibmdJZiJdLFsiaWQiLCJkZW1vLWJhbm5lciIsInJvbGUiLCJhbGVydCIsMSwiYWxlcnQiLCJhbGVydC1hcHAtbGV2ZWwi''@;'; + put 'put ''LCJhbGVydC13YXJuaW5nIl0sWzEsImFsZXJ0LWl0ZW1zIl0sWzEsImFsZXJ0LWl0ZW0iLCJzdGF0aWMiXSxbMSwiYWxlcnQtaWNvbi13cmFwcGVyIl0sWyJzaGFwZSIsIndhcm5pbmctc3RhbmRhcmQiLDIsIm1hcmdpbi10b3AiLCIycHgiXSxbMSwiYWxlcnQtdGV4dCJdLFsicm91dGVyTGlu''@;'; + put 'put ''ayIsIi9saWNlbnNpbmcvdXBkYXRlIiwxLCJ1cGRhdGUta2V5Il0sWyJpZCIsImRlbW8tYmFubmVyIiwicm9sZSIsImFsZXJ0IiwxLCJhbGVydCIsImFsZXJ0LWFwcC1sZXZlbCIsImFsZXJ0LWRhbmdlciJdLFsiaHJlZiIsIm1haWx0bzogc3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyIsMiwi''@;'; + put 'put ''Y29sb3IiLCJ3aGl0ZSJdLFsicm91dGVyTGluayIsIi9saWNlbnNpbmcvdXBkYXRlIiwiY2xhc3MiLCJ1cGRhdGUta2V5Iiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJoZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIiLDMsImNsaWNrIl0sWyJocmVmIiwiIyIsMSwibmF2LWxpbmsiLDMs''@;'; + put 'put ''InJvdXRlckxpbmsiXSxbMSwiY2xyLWljb24iLCJoZWFkZXItbG9nbyJdLFsxLCJjbHItaWNvbiIsImhlYWRlci1sb2dvIiwyLCJtYXJnaW4tbGVmdCIsIjEwcHgiXSxbMSwiaGVhZGVyLW5hdiJdLFsicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsMSwibmF2LWxpbmsiLCJuYXYtdGV4dCIs''@;'; + put 'put ''Mywicm91dGVyTGluayJdLFsxLCJuYXYtbGluayIsIm5hdi10ZXh0IiwzLCJyb3V0ZXJMaW5rIl0sWzMsImRhdGEiLCJmb3JjZVJlbG9hZCIsIm9uQ29uZmlybU1vZGFsQ2xpY2siXSxbMSwiYXBwLWxvYWRpbmciXSxbInNyYyIsIi9TQVNTdG9yZWRQcm9jZXNzLz9fUFJPR1JBTT1wWktkNkY5''@;'; + put 'put ''NWpFQ3ZSUWxOMExDZmRBPT0vd2ViOS9pbWFnZXMvZGF0YWNvbnRyb2xsZXItc3ZnIiwyLCJtYXgtd2lkdGgiLCI0MDBweCJdLFsiY2xhc3MiLCJzbGlkZXIiLDQsIm5nSWYiXSxbMSwic2xpZGVyIl0sWzEsImxpbmUiXSxbMSwic3VibGluZSIsImluYyJdLFsxLCJzdWJsaW5lIiwiZGVjIl1d''@;'; + put 'put ''LHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoaXQoMCwiZGl2IiwwKSxybigxLFVCZSw0LDMsIm5nLWNvbnRhaW5lciIsMSksaXQoMiwiaGVhZGVyIiwyKSxybigzLFFCZSwyLDAsImJ1dHRvbiIsMyksaXQoNCwiZGl2Iiw0KSxybig1LFhCZSwyLDIsImEiLDUpLHJuKDYsS0JlLDIsMCwi''@;'; + put 'put ''YSIsMSksc3QoKSxybig3LHJQZSwxMSwxMiwiZGl2Iiw2KSxpdCg4LCJkaXYiLDcpKDksImRpdiIsOCksQ3IoMTAsImFwcC1sb2FkaW5nLWluZGljYXRvciIpLHN0KCksaXQoMTEsImRpdiIsOSksQ3IoMTIsImFwcC11c2VyLW5hdi1kcm9wZG93biIpLHN0KCkoKSgpLHJuKDEzLGlQZSwxLDAs''@;'; + put 'put ''ImFwcC1hbGVydHMiLDEpLGl0KDE0LCJhcHAtcmVxdWVzdHMtbW9kYWwiLDEwKSxZbigib3BlbmVkQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5yZXF1ZXN0c01vZGFsPUN9KSxzdCgpLHJuKDE1LG9QZSwxLDAsInJvdXRlci1vdXRsZXQiLDEpLENyKDE2LCJhcHAtbG9naW4iKSxybigx''@;'; + put 'put ''NyxhUGUsMSwwLCJhcHAtYWxlcnRzIiwxKSxybigxOCxsUGUsMSwyLCJhcHAtaW5mby1tb2RhbCIsMTEpLGl0KDE5LCJjbHItbW9kYWwiLDEyKSxZbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5kZW1vTGltaXROb3RpY2U9Q30pLGl0KDIwLCJoMyIsMTMpLFV0''@;'; + put 'put ''KDIxLCIgTG9ja2VkIEZlYXR1cmUgIiksQ3IoMjIsImNsci1pY29uIiwxNCksc3QoKSxpdCgyMywiZGl2IiwxNSksVXQoMjQsIiBDb250YWN0ICIpLGl0KDI1LCJhIiwxNiksVXQoMjYsInN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iKSxzdCgpLFV0KDI3KSxzdCgpKCkoKSxybigyOCx1UGUs''@;'; + put 'put ''MywxLCJkaXYiLDE3KSksMiZoJiYodXQoMSksVHQoIm5nSWYiLCF2LnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpKSx1dCgyKSxUdCgibmdJZiIsdi5pc01haW5Sb3V0ZSgidmlldyIpfHx2LmlzTWFpblJvdXRlKCJob21lIikmJiF2LnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vu''@;'; + put 'put ''c2luZyIpKSx1dCgyKSxUdCgibmdJZiIsIXYucm91dGVyLnVybC5pbmNsdWRlcygiZGVwbG95IikpLHV0KDEpLFR0KCJuZ0lmIix2LnJvdXRlci51cmwuaW5jbHVkZXMoImRlcGxveSIpKSx1dCgxKSxUdCgibmdJZiIsIXYucm91dGVyLnVybC5pbmNsdWRlcygiZGVwbG95IikmJiF2LnJvdXRl''@;'; + put 'put ''ci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpKSx1dCg2KSxUdCgibmdJZiIsIXYuZXJyVG9wKSx1dCgxKSxUdCgib3BlbmVkIix2LnJlcXVlc3RzTW9kYWwpLHV0KDEpLFR0KCJuZ0lmIix2LnN0YXJ0dXBEYXRhTG9hZGVkKSx1dCgyKSxUdCgibmdJZiIsdi5lcnJUb3ApLHV0KDEpLFR0KCJu''@;'; + put 'put ''Z0Zvck9mIix2LnNhc2pzQWJvcnRzKSx1dCgxKSxUdCgiY2xyTW9kYWxPcGVuIix2LmRlbW9MaW1pdE5vdGljZSkoImNsck1vZGFsQ2xvc2FibGUiLCEwKSgiY2xyTW9kYWxTaXplIiwibGciKSx1dCg4KSxKaSgiIHdpdGggeW91ciBzaXRlIGlkICgiLHYuc3lzc2l0ZS52YWx1ZSwiKSB0byBh''@;'; + put 'put ''Y3RpdmF0ZSEgIiksdXQoMSksVHQoIm5nSWYiLCF2LnN0YXJ0dXBEYXRhTG9hZGVkKSl9LGRlcGVuZGVuY2llczpbWnMsVm8sb3ksdjcsb2ssUVJlLEpSZSxyQmUsYUJlLGZaLHdsLGY0LGg0LERCZSxOQmVdLHN0eWxlczpbImFwcC1yZXF1ZXN0cy1tb2RhbFtfbmdjb250ZW50LSVDT01QJV17''@;'; + put 'put ''ei1pbmRleDoxMDAwMH0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7bWFyZ2luLWxlZnQ6MTBweH0uZGVtby1leHBpcmVkLW5vdGljZVtfbmdjb250ZW50LSVDT01QJV17ZGlz''@;'; + put 'put ''cGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDt0b3A6MDtoZWlnaHQ6MTAwdmghaW1wb3J0YW50O3dpZHRoOjEwMHZ3IWltcG9ydGFudDt6LWluZGV4OjEwNTtiYWNrZ3JvdW5kOnJnYmEoMzMsMzMsMzMsLjUp''@;'; + put 'put ''fS5kZW1vLWV4cGlyZWQtbm90aWNlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5leHBpcmVkLWRldGFpbHNbX25nY29udGVudC0lQ09NUCVde2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzozMHB4O3otaW5kZXg6MTEwO2JhY2tncm91bmQ6IzMxNDM1MX0u''@;'; + put 'put ''ZGVtby1leHBpcmVkLW5vdGljZVtfbmdjb250ZW50LSVDT01QJV0gICAuZXhwaXJlZC1kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5leHBpcmVkLW5vdGljZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2UwZTBlMDtmb250LXNpemU6MTZweH0uZGVtby1leHBpcmVkLW5vdGljZVtf''@;'; + put 'put ''bmdjb250ZW50LSVDT01QJV0gICAuZXhwaXJlZC1kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5leHBpcmVkLW5vdGljZVtfbmdjb250ZW50LSVDT01QJV0gICAubWFpbHRvW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojOGRjNTNlfS5tYWluLWNvbnRhaW5lcltfbmdjb250ZW50LSVD''@;'; + put 'put ''T01QJV0gICAudXBkYXRlLWtleVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjojZmZmO3BhZGRpbmc6MCAxMHB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMTQ5MDE5NjA3OCl9LmFsZXJ0LWljb24td3JhcHBlcltfbmdjb250ZW50LSVD''@;'; + put 'put ''T01QJV17bWFyZ2luLXRvcDowIWltcG9ydGFudH0uYnJhbmRpbmdbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6OHB4fS5uYXYtdGV4dFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjIwcHh9LnNpZGViYXItdG9nZ2xlW19uZ2NvbnRlbnQt''@;'; + put 'put ''JUNPTVAlXXtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctbGVmdDoxMHB4fS5zaWRlYmFyLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV0gICBjbHItaWNvbltfbmdjb250ZW50LSVDT01QJV17Y3Vyc29yOnBvaW50ZXI7d2lkdGg6MzBweDtoZWln''@;'; + put 'put ''aHQ6MzBweH0uY2xyLWljb24uaGVhZGVyLWxvZ29bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtaW1hZ2U6dXJsKC9TQVNTdG9yZWRQcm9jZXNzLz9fUFJPR1JBTT1wWktkNkY5NWpFQ3ZSUWxOMExDZmRBPT0vd2ViOS9pbWFnZXMvZGF0YWNvbnRyb2xsZXIuY2YxNzljZDg5ZDI4MGE1''@;'; + put 'put ''Ni1zdmcpO3dpZHRoOjE2MHB4O2hlaWdodDoyNXB4fS5uYXZbX25nY29udGVudC0lQ09NUCVdICAgLm5hdi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmFmYWZhO29wYWNpdHk6Ljk7bGluZS1oZWlnaHQ6MS40NXJlbX0ubmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtbGlu''@;'; + put 'put ''a1tfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7Ym94LXNoYWRvdzppbnNldCAwIC0zcHggMCB0cmFuc3BhcmVudDt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjJzIGVhc2UtaW59Lm5hdltfbmdjb250ZW50LSVDT01QJV0gICAubmF2LWxpbmtbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2NvbG9y''@;'; + put 'put ''OiNmYWZhZmE7b3BhY2l0eToxfS5uYXZbX25nY29udGVudC0lQ09NUCVdICAgLm5hdi1saW5rLmFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojNjE3MTdEO29wYWNpdHk6MTtib3gtc2hhZG93Omluc2V0IDAgLTNweCB0cmFuc3BhcmVudH0ubmF2W19uZ2NvbnRlbnQtJUNP''@;'; + put 'put ''TVAlXSAgIC5uYXYtaXRlbVtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjFyZW19Lm5vdGZbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6IzE2YTU3YTtjb2xvcjojZmZmY2ZjO2ZvbnQtc2l6ZToxMnB4fS5idG4uYnRuLXN1Y2Nlc3NbX25nY29udGVudC0lQ09NUCVde2Jv''@;'; + put 'put ''cmRlci1jb2xvcjojNjJhNDIwO2JhY2tncm91bmQtY29sb3I6IzE2YTU3YSFpbXBvcnRhbnQ7Y29sb3I6I2ZmZn0uYnRuLmJ0bi1zdWNjZXNzW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMyYWRkMzk7Y29sb3I6I2ZmZn0udG9nZ2xlLXN3aXRjaFtfbmdjb250''@;'; + put 'put ''ZW50LSVDT01QJV0gICBpbnB1dFt0eXBlPWNoZWNrYm94XVtfbmdjb250ZW50LSVDT01QJV06Y2hlY2tlZCArIGxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmV7Ym9yZGVyLWNvbG9yOiM2MTcxN2Q7YmFja2dyb3VuZC1jb2xvcjojNjE3MTdkO3RyYW5zaXRpb246LjE1cyBlYXNlLWlu''@;'; + put 'put ''O3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9Lm1haW4tY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OjEwMHZoIWltcG9ydGFudH0ubWFpbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRlbnQtY29udGFp''@;'; + put 'put ''bmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50LWFyZWFbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MHJlbSAxcmVtIDFyZW19LmNvbnRlbnQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXt6LWluZGV4OjAhaW1wb3J0YW50fS5uYXZCYXJSZXNwW19uZ2NvbnRlbnQtJUNP''@;'; + put 'put ''TVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOiM0OTVBNjc7Y29sb3I6I2ZmZn1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lm5hdkJhclJlc3BbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRl''@;'; + put 'put ''bnQ6ZmxleC1zdGFydDtiYWNrZ3JvdW5kOiM0OTVBNjc7Y29sb3I6I2ZmZn0ubWFpbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXZbX25nY29udGVudC0lQ09NUCVdICAgLm5hdi1saW5rW19u''@;'; + put 'put ''Z2NvbnRlbnQtJUNPTVAlXSwgLm1haW4tY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMltfbmdjb250ZW50LSVDT01QJV0gICAubmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtbGlua1tfbmdjb250ZW50LSVDT01QJV0sIC5tYWluLWNv''@;'; + put 'put ''bnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMVtfbmdjb250ZW50LSVDT01QJV0gICAubmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtbGlua1tfbmdjb250ZW50LSVDT01QJV0sIC5tYWluLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0g''@;'; + put 'put ''ICAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMltfbmdjb250ZW50LSVDT01QJV0gICAubmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtbGlua1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzowIC41cmVtIDAgMXJlbTt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRl''@;'; + put 'put ''bjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2JvcmRlci1yYWRpdXM6LjEyNXJlbSAwIDAgLjEyNXJlbTtjb2xvcjojOTVjODRifS5jYXJkLWJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNhcmQtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjEwcHggMCAwfS5tYWluLWNvbnRh''@;'; + put 'put ''aW5lcltfbmdjb250ZW50LWMwXVtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGVudC1jb250YWluZXJbX25nY29udGVudC1jMF1bX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRlbnQtYXJlYVtfbmdjb250ZW50LWMwXVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzowcmVtfX0gIC5odElu''@;'; + put 'put ''dmFsaWR7YmFja2dyb3VuZDpibGFjayFpbXBvcnRhbnR9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpeyAgaDJ7Zm9udC1zaXplOi43cmVtIWltcG9ydGFudH0gIGgze2ZvbnQtc2l6ZTouN3JlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpeyAgLmNh''@;'; + put 'put ''cmR7bWluLWhlaWdodDpjYWxjKDEwMHZoICsgLTBweCkhaW1wb3J0YW50fX0gIC5uYXYtbGlua3twYWRkaW5nOjByZW0gMXJlbX0gIC5idG4tcHJpbWFyeSAuYnRuLCAgIC5idG4uYnRuLXByaW1hcnl7Ym9yZGVyLWNvbG9yOiMzMTQzNTE7YmFja2dyb3VuZC1jb2xvcjojMzE0MzUxO2NvbG9y''@;'; + put 'put ''OiNmZmZ9ICAuYnRue2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrOy13ZWJraXQtYXBwZWFyYW5jZTpub25lIWltcG9ydGFudDtib3JkZXItcmFkaXVzOi4xMjVyZW07Ym9yZGVyOjFweCBzb2xpZDttaW4td2lkdGg6M3JlbTttYXgtd2lkdGg6MTVyZW07d2hpdGUtc3BhY2U6''@;'; + put 'put ''bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bGluZS1oZWlnaHQ6MS41cmVtO2xldHRlci1zcGFjaW5nOi4xMmVtO2ZvbnQtc2l6ZTouNXJl''@;'; + put 'put ''bTtmb250LXdlaWdodDo1MDA7aGVpZ2h0OjEuNXJlbTtwYWRkaW5nOjAgLjVyZW07Ym9yZGVyLWNvbG9yOiMzMTQzNTE7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjojMzE0MzUxfSAgLmJ0bi5idG4tb3V0bGluZXtib3JkZXItY29sb3I6IzMxNDM1MTtiYWNrZ3JvdW5kLWNv''@;'; + put 'put ''bG9yOnRyYW5zcGFyZW50O2NvbG9yOiMzMTQzNTF9ICAuYnRuLmJ0bi1vdXRsaW5lOmhvdmVye2JvcmRlci1jb2xvcjojMzE0MzUxO2JhY2tncm91bmQtY29sb3I6IzQ5NWE2Nztjb2xvcjojZmZmfSAgLmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzVl''@;'; + put 'put ''YTcxZjtjb2xvcjojZmZmN2Y3O2JvcmRlci1jb2xvcjojOWE5Njk2fSAgLmh0TW9iaWxlRWRpdG9yQ29udGFpbmVyIC5pbnB1dHMgdGV4dGFyZWF7Zm9udC1zaXplOjEzcHQ7Ym9yZGVyOjJweCBzb2xpZCAjNDg1OTY3O2JvcmRlci1yYWRpdXM6NHB4Oy13ZWJraXQtYXBwZWFyYW5jZTpub25l''@;'; + put 'put ''O2JveC1zaGFkb3c6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjE0cHg7cmlnaHQ6MHB4O3RvcDowO2JvdHRvbTowO3BhZGRpbmc6N3B0O3dpZHRoOjI5MHB4fSAgLmh0TW9iaWxlRWRpdG9yQ29udGFpbmVyIC5wb3NpdGlvbkNvbnRyb2xze3dpZHRoOjMzM3B4O3Bvc2l0aW9uOmFic29s''@;'; + put 'put ''dXRlO3JpZ2h0OjVwdDt0b3A6NTBweDtib3R0b206MDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0gIC5odE1vYmlsZUVkaXRvckNvbnRhaW5lci5hY3RpdmV7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTIwcHg7d2lkdGg6MzUwcHh9ICAuaGFuZHNvbnRhYmxle2JhY2tncm91''@;'; + put 'put ''bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjNweH0gIC5oYW5kc29udGFibGUgdGh7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhfSAgLmh0X2Nsb25lX2xlZnQgdGh7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfSAgLmh0X2Nsb25lX3Rv''@;'; + put 'put ''cCB0aHtib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjO2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjYztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjfSAgLmh0X2Nsb25lX3RvcF9sZWZ0X2Nvcm5lciB0aHtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2N9ICAuaHRfbWFzdGVyIHRyOm50''@;'; + put 'put ''aC1vZi10eXBlKG9kZCk+dGR7YmFja2dyb3VuZC1jb2xvcjojZjNmM2YzO2JvcmRlcjoxcHggc29saWQgcmdiKDE5NywxOTcsMTk3KTtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2IoMjM2LDIzNSwyMzUpfSAgLmh0X21hc3RlciB0cjpudGgtb2YtdHlwZShldmVuKT50ZHtiYWNrZ3JvdW5k''@;'; + put 'put ''LWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCByZ2IoMTk3LDE5NywxOTcpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYigyMzYsMjM1LDIzNSl9ICAud3RCb3JkZXJ7YmFja2dyb3VuZC1jb2xvcjojNDk1YTY3IWltcG9ydGFudH0gIC5oYW5kc29udGFibGUgLmhhbmRzb250YWJsZS5o''@;'; + put 'put ''dF9jbG9uZV90b3AgLnd0SGlkZXJ7cGFkZGluZzowIWltcG9ydGFudDttYXJnaW46MDtib3JkZXItYm90dG9tOjNweCBzb2xpZCAjZDZkM2QzfSAgLmNvbnRlbnQtY29udGFpbmVye2JhY2tncm91bmQ6I0Y1RjZGRn0gIC5jYXJke2JveC1zaGFkb3c6MCAuMTI1cmVtICNkN2Q3ZDc7Ym9yZGVy''@;'; + put 'put ''LXJhZGl1czowcmVtO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9ICAuZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQsICAgLmRhdGFncmlkLWhpc3RvcnkgLmRhdGFncmlke2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1y''@;'; + put 'put ''YWRpdXM6LjEyNXJlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzU2NTY1NjttYXJnaW46MDttYXJnaW4tdG9wOjFyZW07bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJTtwYWRkaW5nOjE1cHggMTVweCA1MHB4fSAgLmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWZvb3QsICAgLmRh''@;'; + put 'put ''dGFncmlkLWhpc3RvcnkgLmRhdGFncmlkLWZvb3R7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2hlaWdodDoxLjVyZW07cGFkZGluZzowIC41cmVtO2xpbmUtaGVpZ2h0OmNhbGMoMS41cmVtIC0gM3B4KTtmb250LXNpemU6LjQ1ODMzcmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXIt''@;'; + put 'put ''dG9wOjFweCBzb2xpZCAjY2NjO2JvcmRlci1yYWRpdXM6MH0gIC5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290ZXIsICAgLmRhdGFncmlkLWhpc3RvcnkgLmRhdGFncmlkLWZvb3Rlcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxNXB4O3RvcDoycHh9ICAuZGF0YWdyaWQtY29tcGFj''@;'; + put 'put ''dCAuZGF0YWdyaWQgLmRhdGFncmlkLWhlYWQsICAgLmRhdGFncmlkLWhpc3RvcnkgLmRhdGFncmlkIC5kYXRhZ3JpZC1oZWFke2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjfSAgLmRyb3Bkb3duLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEw''@;'; + put 'put ''MCU7bGVmdDowO21hcmdpbi10b3A6LjA4MzMzM3JlbTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQ6I2Y1ZjZmZjtwYWRkaW5nOi41cmVtIDA7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JveC1zaGFkb3c6MCAxcHggLjEyNXJlbSAjNzM3MzczNDA7bWluLXdp''@;'; + put 'put ''ZHRoOjVyZW07bWF4LXdpZHRoOjE1cmVtO2JvcmRlci1yYWRpdXM6LjEyNXJlbTt2aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4OjEwMDB9ICAudGFibGV7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91''@;'; + put 'put ''bmQtY29sb3I6I2ZmZjtjb2xvcjojNTY1NjU2O21hcmdpbjowO21hcmdpbi10b3A6MXJlbTttYXgtd2lkdGg6MTAwJTt3aWR0aDoxMDAlfSAgLnRhYmxlIHRoe2ZvbnQtc2l6ZTouNDU4MzNyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wM2VtO2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''I2ZmZjt2ZXJ0aWNhbC1hbGlnbjpib3R0b207Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9ICAubW9kYWwtaGVhZGVye2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNlNGU0ZTQ7cGFkZGluZzowIDAgLjVyZW07bWFyZ2luLWJvdHRvbToxcmVt''@;'; + put 'put ''fSAgLm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lcnttaW4taGVpZ2h0OjBweH0iXX0pLGR9KSgpO2Z1bmN0aW9uICR5ZShkKXtyZXR1cm4gbmV3IGVuKDNlMywhMSl9ZnVuY3Rpb24gV1BlKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRv''@;'; + put 'put ''dy5kb2N1bWVudH1mdW5jdGlvbiBmaGUoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwocHJvY2Vzcyl9ZnVuY3Rpb24gbXcoZCl7c3dpdGNoKGQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyB4aztjYXNl''@;'; + put 'put ''IDE6cmV0dXJuIGRbMF07ZGVmYXVsdDpyZXR1cm4gbmV3IHo3KGQpfX1mdW5jdGlvbiBxeWUoZCxnLGgsdix5PW5ldyBNYXAsQz1uZXcgTWFwKXtjb25zdCBJPVtdLGo9W107bGV0IHVlPS0xLF9lPW51bGw7aWYodi5mb3JFYWNoKEJlPT57Y29uc3QgTmU9QmUuZ2V0KCJvZmZzZXQiKSxLZT1O''@;'; + put 'put ''ZT09dWUsZHQ9S2UmJl9lfHxuZXcgTWFwO0JlLmZvckVhY2goKE90LCR0KT0+e2xldCBmbj0kdCxMbj1PdDtpZigib2Zmc2V0IiE9PSR0KXN3aXRjaChmbj1nLm5vcm1hbGl6ZVByb3BlcnR5TmFtZShmbixJKSxMbil7Y2FzZSIhIjpMbj15LmdldCgkdCk7YnJlYWs7Y2FzZSBuODpMbj1DLmdl''@;'; + put 'put ''dCgkdCk7YnJlYWs7ZGVmYXVsdDpMbj1nLm5vcm1hbGl6ZVN0eWxlVmFsdWUoJHQsZm4sTG4sSSl9ZHQuc2V0KGZuLExuKX0pLEtlfHxqLnB1c2goZHQpLF9lPWR0LHVlPU5lfSksSS5sZW5ndGgpdGhyb3cgZnVuY3Rpb24gT1BlKGQpe3JldHVybiBuZXcgZW4oMzUwMiwhMSl9KCk7cmV0dXJu''@;'; + put 'put ''IGp9ZnVuY3Rpb24gaGhlKGQsZyxoLHYpe3N3aXRjaChnKXtjYXNlInN0YXJ0IjpkLm9uU3RhcnQoKCk9PnYoaCYmZGhlKGgsInN0YXJ0IixkKSkpO2JyZWFrO2Nhc2UiZG9uZSI6ZC5vbkRvbmUoKCk9PnYoaCYmZGhlKGgsImRvbmUiLGQpKSk7YnJlYWs7Y2FzZSJkZXN0cm95IjpkLm9uRGVz''@;'; + put 'put ''dHJveSgoKT0+dihoJiZkaGUoaCwiZGVzdHJveSIsZCkpKX19ZnVuY3Rpb24gZGhlKGQsZyxoKXtjb25zdCB2PWgudG90YWxUaW1lLEM9cGhlKGQuZWxlbWVudCxkLnRyaWdnZXJOYW1lLGQuZnJvbVN0YXRlLGQudG9TdGF0ZSxnfHxkLnBoYXNlTmFtZSxudWxsPT12P2QudG90YWxUaW1lOnYs''@;'; + put 'put ''ISFoLmRpc2FibGVkKSxJPWQuX2RhdGE7cmV0dXJuIG51bGwhPUkmJihDLl9kYXRhPUkpLEN9ZnVuY3Rpb24gcGhlKGQsZyxoLHYseT0iIixDPTAsSSl7cmV0dXJue2VsZW1lbnQ6ZCx0cmlnZ2VyTmFtZTpnLGZyb21TdGF0ZTpoLHRvU3RhdGU6dixwaGFzZU5hbWU6eSx0b3RhbFRpbWU6Qyxk''@;'; + put 'put ''aXNhYmxlZDohIUl9fWZ1bmN0aW9uIGQ0KGQsZyxoKXtsZXQgdj1kLmdldChnKTtyZXR1cm4gdnx8ZC5zZXQoZyx2PWgpLHZ9ZnVuY3Rpb24gZXdlKGQpe2NvbnN0IGc9ZC5pbmRleE9mKCI6Iik7cmV0dXJuW2Quc3Vic3RyaW5nKDEsZyksZC5zbGljZShnKzEpXX1sZXQgZ2hlPShkLGcpPT4h''@;'; + put 'put ''MSx0d2U9KGQsZyxoKT0+W10sbndlPW51bGw7ZnVuY3Rpb24gbWhlKGQpe2NvbnN0IGc9ZC5wYXJlbnROb2RlfHxkLmhvc3Q7cmV0dXJuIGc9PT1ud2U/bnVsbDpnfShmaGUoKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBFbGVtZW50KSYmKFdQZSgpPyhud2U9KCgpPT5kb2N1bWVudC5kb2N1bWVu''@;'; + put 'put ''dEVsZW1lbnQpKCksZ2hlPShkLGcpPT57Zm9yKDtnOyl7aWYoZz09PWQpcmV0dXJuITA7Zz1taGUoZyl9cmV0dXJuITF9KTpnaGU9KGQsZyk9PmQuY29udGFpbnMoZyksdHdlPShkLGcsaCk9PntpZihoKXJldHVybiBBcnJheS5mcm9tKGQucXVlcnlTZWxlY3RvckFsbChnKSk7Y29uc3Qgdj1k''@;'; + put 'put ''LnF1ZXJ5U2VsZWN0b3IoZyk7cmV0dXJuIHY/W3ZdOltdfSk7bGV0IG1TPW51bGwscndlPSExO2NvbnN0IGl3ZT1naGUsb3dlPXR3ZTtsZXQgYXdlPSgoKT0+e2NsYXNzIGR7dmFsaWRhdGVTdHlsZVByb3BlcnR5KGgpe3JldHVybiBmdW5jdGlvbiBVUGUoZCl7bVN8fChtUz1mdW5jdGlvbiBR''@;'; + put 'put ''UGUoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmJvZHk6bnVsbH0oKXx8e30scndlPSEhbVMuc3R5bGUmJiJXZWJraXRBcHBlYXJhbmNlImluIG1TLnN0eWxlKTtsZXQgZz0hMDtyZXR1cm4gbVMuc3R5bGUmJiFmdW5jdGlvbiBZUGUoZCl7cmV0dXJuImVi''@;'; + put 'put ''a2l0Ij09ZC5zdWJzdHJpbmcoMSw2KX0oZCkmJihnPWQgaW4gbVMuc3R5bGUsIWcmJnJ3ZSYmKGc9IldlYmtpdCIrZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStkLnNsaWNlKDEpaW4gbVMuc3R5bGUpKSxnfShoKX1tYXRjaGVzRWxlbWVudChoLHYpe3JldHVybiExfWNvbnRhaW5zRWxlbWVu''@;'; + put 'put ''dChoLHYpe3JldHVybiBpd2UoaCx2KX1nZXRQYXJlbnRFbGVtZW50KGgpe3JldHVybiBtaGUoaCl9cXVlcnkoaCx2LHkpe3JldHVybiBvd2UoaCx2LHkpfWNvbXB1dGVTdHlsZShoLHYseSl7cmV0dXJuIHl8fCIifWFuaW1hdGUoaCx2LHksQyxJLGo9W10sdWUpe3JldHVybiBuZXcgeGsoeSxD''@;'; + put 'put ''KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksdmhlPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLk5PT1A9bmV3IGF3ZSxkfSkoKTtjb25zdCBTcT0ibmct''@;'; + put 'put ''bGVhdmUiLE1xPSJuZy10cmlnZ2VyIixFcT0iLm5nLXRyaWdnZXIiLHN3ZT0ibmctYW5pbWF0aW5nIix5aGU9Ii5uZy1hbmltYXRpbmciO2Z1bmN0aW9uIHZ3KGQpe2lmKCJudW1iZXIiPT10eXBlb2YgZClyZXR1cm4gZDtjb25zdCBnPWQubWF0Y2goL14oLT9bXC5cZF0rKShtP3MpLyk7cmV0''@;'; + put 'put ''dXJuIWd8fGcubGVuZ3RoPDI/MDp3aGUocGFyc2VGbG9hdChnWzFdKSxnWzJdKX1mdW5jdGlvbiB3aGUoZCxnKXtyZXR1cm4icyI9PT1nPzFlMypkOmR9ZnVuY3Rpb24geHEoZCxnLGgpe3JldHVybiBkLmhhc093blByb3BlcnR5KCJkdXJhdGlvbiIpP2Q6ZnVuY3Rpb24gS1BlKGQsZyxoKXts''@;'; + put 'put ''ZXQgeSxDPTAsST0iIjtpZigic3RyaW5nIj09dHlwZW9mIGQpe2NvbnN0IGo9ZC5tYXRjaCgvXigtP1tcLlxkXSspKG0/cykoPzpccysoLT9bXC5cZF0rKShtP3MpKT8oPzpccysoWy1hLXpdKyg/OlwoLis/XCkpPykpPyQvaSk7aWYobnVsbD09PWopcmV0dXJuIGcucHVzaCgkeWUoKSkse2R1''@;'; + put 'put ''cmF0aW9uOjAsZGVsYXk6MCxlYXNpbmc6IiJ9O3k9d2hlKHBhcnNlRmxvYXQoalsxXSksalsyXSk7Y29uc3QgdWU9alszXTtudWxsIT11ZSYmKEM9d2hlKHBhcnNlRmxvYXQodWUpLGpbNF0pKTtjb25zdCBfZT1qWzVdO19lJiYoST1fZSl9ZWxzZSB5PWQ7aWYoIWgpe2xldCBqPSExLHVlPWcu''@;'; + put 'put ''bGVuZ3RoO3k8MCYmKGcucHVzaChmdW5jdGlvbiBmUGUoKXtyZXR1cm4gbmV3IGVuKDMxMDAsITEpfSgpKSxqPSEwKSxDPDAmJihnLnB1c2goZnVuY3Rpb24gaFBlKCl7cmV0dXJuIG5ldyBlbigzMTAxLCExKX0oKSksaj0hMCksaiYmZy5zcGxpY2UodWUsMCwkeWUoKSl9cmV0dXJue2R1cmF0''@;'; + put 'put ''aW9uOnksZGVsYXk6QyxlYXNpbmc6SX19KGQsZyxoKX1mdW5jdGlvbiB3WihkLGc9e30pe3JldHVybiBPYmplY3Qua2V5cyhkKS5mb3JFYWNoKGg9PntnW2hdPWRbaF19KSxnfWZ1bmN0aW9uIHV3ZShkKXtjb25zdCBnPW5ldyBNYXA7cmV0dXJuIE9iamVjdC5rZXlzKGQpLmZvckVhY2goaD0+''@;'; + put 'put ''e2cuc2V0KGgsZFtoXSl9KSxnfWZ1bmN0aW9uIEF3KGQsZz1uZXcgTWFwLGgpe2lmKGgpZm9yKGxldFt2LHldb2YgaClnLnNldCh2LHkpO2ZvcihsZXRbdix5XW9mIGQpZy5zZXQodix5KTtyZXR1cm4gZ31mdW5jdGlvbiBmd2UoZCxnLGgpe3JldHVybiBoP2crIjoiK2grIjsiOiIifWZ1bmN0''@;'; + put 'put ''aW9uIGh3ZShkKXtsZXQgZz0iIjtmb3IobGV0IGg9MDtoPGQuc3R5bGUubGVuZ3RoO2grKyl7Y29uc3Qgdj1kLnN0eWxlLml0ZW0oaCk7Zys9ZndlKDAsdixkLnN0eWxlLmdldFByb3BlcnR5VmFsdWUodikpfWZvcihjb25zdCBoIGluIGQuc3R5bGUpZC5zdHlsZS5oYXNPd25Qcm9wZXJ0eSho''@;'; + put 'put ''KSYmIWguc3RhcnRzV2l0aCgiXyIpJiYoZys9ZndlKDAsdEZlKGgpLGQuc3R5bGVbaF0pKTtkLnNldEF0dHJpYnV0ZSgic3R5bGUiLGcpfWZ1bmN0aW9uIENnKGQsZyxoKXtkLnN0eWxlJiYoZy5mb3JFYWNoKCh2LHkpPT57Y29uc3QgQz1faGUoeSk7aCYmIWguaGFzKHkpJiZoLnNldCh5LGQu''@;'; + put 'put ''c3R5bGVbQ10pLGQuc3R5bGVbQ109dn0pLGZoZSgpJiZod2UoZCkpfWZ1bmN0aW9uIHZTKGQsZyl7ZC5zdHlsZSYmKGcuZm9yRWFjaCgoaCx2KT0+e2NvbnN0IHk9X2hlKHYpO2Quc3R5bGVbeV09IiJ9KSxmaGUoKSYmaHdlKGQpKX1mdW5jdGlvbiBiWihkKXtyZXR1cm4gQXJyYXkuaXNBcnJh''@;'; + put 'put ''eShkKT8xPT1kLmxlbmd0aD9kWzBdOkVrKGQpOmR9Y29uc3QgYmhlPW5ldyBSZWdFeHAoInt7XFxzKiguKz8pXFxzKn19IiwiZyIpO2Z1bmN0aW9uIGR3ZShkKXtsZXQgZz1bXTtpZigic3RyaW5nIj09dHlwZW9mIGQpe2xldCBoO2Zvcig7aD1iaGUuZXhlYyhkKTspZy5wdXNoKGhbMV0pO2Jo''@;'; + put 'put ''ZS5sYXN0SW5kZXg9MH1yZXR1cm4gZ31mdW5jdGlvbiBUcShkLGcsaCl7Y29uc3Qgdj1kLnRvU3RyaW5nKCkseT12LnJlcGxhY2UoYmhlLChDLEkpPT57bGV0IGo9Z1tJXTtyZXR1cm4gbnVsbD09aiYmKGgucHVzaChmdW5jdGlvbiBwUGUoZCl7cmV0dXJuIG5ldyBlbigzMDAzLCExKX0oKSks''@;'; + put 'put ''aj0iIiksai50b1N0cmluZygpfSk7cmV0dXJuIHk9PXY/ZDp5fWZ1bmN0aW9uIElxKGQpe2NvbnN0IGc9W107bGV0IGg9ZC5uZXh0KCk7Zm9yKDshaC5kb25lOylnLnB1c2goaC52YWx1ZSksaD1kLm5leHQoKTtyZXR1cm4gZ31jb25zdCBlRmU9Ly0rKFthLXowLTldKS9nO2Z1bmN0aW9uIF9o''@;'; + put 'put ''ZShkKXtyZXR1cm4gZC5yZXBsYWNlKGVGZSwoLi4uZyk9PmdbMV0udG9VcHBlckNhc2UoKSl9ZnVuY3Rpb24gdEZlKGQpe3JldHVybiBkLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBwNChkLGcsaCl7c3dpdGNoKGcudHlwZSl7Y2Fz''@;'; + put 'put ''ZSA3OnJldHVybiBkLnZpc2l0VHJpZ2dlcihnLGgpO2Nhc2UgMDpyZXR1cm4gZC52aXNpdFN0YXRlKGcsaCk7Y2FzZSAxOnJldHVybiBkLnZpc2l0VHJhbnNpdGlvbihnLGgpO2Nhc2UgMjpyZXR1cm4gZC52aXNpdFNlcXVlbmNlKGcsaCk7Y2FzZSAzOnJldHVybiBkLnZpc2l0R3JvdXAoZyxo''@;'; + put 'put ''KTtjYXNlIDQ6cmV0dXJuIGQudmlzaXRBbmltYXRlKGcsaCk7Y2FzZSA1OnJldHVybiBkLnZpc2l0S2V5ZnJhbWVzKGcsaCk7Y2FzZSA2OnJldHVybiBkLnZpc2l0U3R5bGUoZyxoKTtjYXNlIDg6cmV0dXJuIGQudmlzaXRSZWZlcmVuY2UoZyxoKTtjYXNlIDk6cmV0dXJuIGQudmlzaXRBbmlt''@;'; + put 'put ''YXRlQ2hpbGQoZyxoKTtjYXNlIDEwOnJldHVybiBkLnZpc2l0QW5pbWF0ZVJlZihnLGgpO2Nhc2UgMTE6cmV0dXJuIGQudmlzaXRRdWVyeShnLGgpO2Nhc2UgMTI6cmV0dXJuIGQudmlzaXRTdGFnZ2VyKGcsaCk7ZGVmYXVsdDp0aHJvdyBmdW5jdGlvbiBnUGUoZCl7cmV0dXJuIG5ldyBlbigz''@;'; + put 'put ''MDA0LCExKX0oKX19ZnVuY3Rpb24gcHdlKGQsZyl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGQpW2ddfWZ1bmN0aW9uIGxGZShkLGcpe2NvbnN0IGg9W107cmV0dXJuInN0cmluZyI9PXR5cGVvZiBkP2Quc3BsaXQoL1xzKixccyovKS5mb3JFYWNoKHY9PmZ1bmN0aW9uIHNGZShk''@;'; + put 'put ''LGcsaCl7aWYoIjoiPT1kWzBdKXtjb25zdCB1ZT1mdW5jdGlvbiB1RmUoZCxnKXtzd2l0Y2goZCl7Y2FzZSI6ZW50ZXIiOnJldHVybiJ2b2lkID0+ICoiO2Nhc2UiOmxlYXZlIjpyZXR1cm4iKiA9PiB2b2lkIjtjYXNlIjppbmNyZW1lbnQiOnJldHVybihoLHYpPT5wYXJzZUZsb2F0KHYpPnBh''@;'; + put 'put ''cnNlRmxvYXQoaCk7Y2FzZSI6ZGVjcmVtZW50IjpyZXR1cm4oaCx2KT0+cGFyc2VGbG9hdCh2KTxwYXJzZUZsb2F0KGgpO2RlZmF1bHQ6cmV0dXJuIGcucHVzaChmdW5jdGlvbiBUUGUoZCl7cmV0dXJuIG5ldyBlbigzMDE2LCExKX0oKSksIiogPT4gKiJ9fShkLGgpO2lmKCJmdW5jdGlvbiI9''@;'; + put 'put ''PXR5cGVvZiB1ZSlyZXR1cm4gdm9pZCBnLnB1c2godWUpO2Q9dWV9Y29uc3Qgdj1kLm1hdGNoKC9eKFwqfFstXHddKylccyooPD9bPS1dPilccyooXCp8Wy1cd10rKSQvKTtpZihudWxsPT12fHx2Lmxlbmd0aDw0KXJldHVybiBoLnB1c2goZnVuY3Rpb24geFBlKGQpe3JldHVybiBuZXcgZW4o''@;'; + put 'put ''MzAxNSwhMSl9KCkpLGc7Y29uc3QgeT12WzFdLEM9dlsyXSxJPXZbM107Zy5wdXNoKGd3ZSh5LEkpKTsiPCI9PUNbMF0mJiEoIioiPT15JiYiKiI9PUkpJiZnLnB1c2goZ3dlKEkseSkpfSh2LGgsZykpOmgucHVzaChkKSxofWNvbnN0IFJxPW5ldyBTZXQoWyJ0cnVlIiwiMSJdKSxCcT1uZXcg''@;'; + put 'put ''U2V0KFsiZmFsc2UiLCIwIl0pO2Z1bmN0aW9uIGd3ZShkLGcpe2NvbnN0IGg9UnEuaGFzKGQpfHxCcS5oYXMoZCksdj1ScS5oYXMoZyl8fEJxLmhhcyhnKTtyZXR1cm4oeSxDKT0+e2xldCBJPSIqIj09ZHx8ZD09eSxqPSIqIj09Z3x8Zz09QztyZXR1cm4hSSYmaCYmImJvb2xlYW4iPT10eXBl''@;'; + put 'put ''b2YgeSYmKEk9eT9ScS5oYXMoZCk6QnEuaGFzKGQpKSwhaiYmdiYmImJvb2xlYW4iPT10eXBlb2YgQyYmKGo9Qz9ScS5oYXMoZyk6QnEuaGFzKGcpKSxJJiZqfX1jb25zdCBjRmU9bmV3IFJlZ0V4cCgicyo6c2VsZnMqLD8iLCJnIik7ZnVuY3Rpb24gQ2hlKGQsZyxoLHYpe3JldHVybiBuZXcg''@;'; + put 'put ''ZkZlKGQpLmJ1aWxkKGcsaCx2KX1jbGFzcyBmRmV7Y29uc3RydWN0b3IoZyl7dGhpcy5fZHJpdmVyPWd9YnVpbGQoZyxoLHYpe2NvbnN0IHk9bmV3IHBGZShoKTtyZXR1cm4gdGhpcy5fcmVzZXRDb250ZXh0U3R5bGVUaW1pbmdTdGF0ZSh5KSxwNCh0aGlzLGJaKGcpLHkpfV9yZXNldENvbnRl''@;'; + put 'put ''eHRTdHlsZVRpbWluZ1N0YXRlKGcpe2cuY3VycmVudFF1ZXJ5U2VsZWN0b3I9IiIsZy5jb2xsZWN0ZWRTdHlsZXM9bmV3IE1hcCxnLmNvbGxlY3RlZFN0eWxlcy5zZXQoIiIsbmV3IE1hcCksZy5jdXJyZW50VGltZT0wfXZpc2l0VHJpZ2dlcihnLGgpe2xldCB2PWgucXVlcnlDb3VudD0wLHk9''@;'; + put 'put ''aC5kZXBDb3VudD0wO2NvbnN0IEM9W10sST1bXTtyZXR1cm4iQCI9PWcubmFtZS5jaGFyQXQoMCkmJmguZXJyb3JzLnB1c2goZnVuY3Rpb24gdlBlKCl7cmV0dXJuIG5ldyBlbigzMDA2LCExKX0oKSksZy5kZWZpbml0aW9ucy5mb3JFYWNoKGo9PntpZih0aGlzLl9yZXNldENvbnRleHRTdHls''@;'; + put 'put ''ZVRpbWluZ1N0YXRlKGgpLDA9PWoudHlwZSl7Y29uc3QgdWU9aixfZT11ZS5uYW1lO19lLnRvU3RyaW5nKCkuc3BsaXQoL1xzKixccyovKS5mb3JFYWNoKEJlPT57dWUubmFtZT1CZSxDLnB1c2godGhpcy52aXNpdFN0YXRlKHVlLGgpKX0pLHVlLm5hbWU9X2V9ZWxzZSBpZigxPT1qLnR5cGUp''@;'; + put 'put ''e2NvbnN0IHVlPXRoaXMudmlzaXRUcmFuc2l0aW9uKGosaCk7dis9dWUucXVlcnlDb3VudCx5Kz11ZS5kZXBDb3VudCxJLnB1c2godWUpfWVsc2UgaC5lcnJvcnMucHVzaChmdW5jdGlvbiBBUGUoKXtyZXR1cm4gbmV3IGVuKDMwMDcsITEpfSgpKX0pLHt0eXBlOjcsbmFtZTpnLm5hbWUsc3Rh''@;'; + put 'put ''dGVzOkMsdHJhbnNpdGlvbnM6SSxxdWVyeUNvdW50OnYsZGVwQ291bnQ6eSxvcHRpb25zOm51bGx9fXZpc2l0U3RhdGUoZyxoKXtjb25zdCB2PXRoaXMudmlzaXRTdHlsZShnLnN0eWxlcyxoKSx5PWcub3B0aW9ucyYmZy5vcHRpb25zLnBhcmFtc3x8bnVsbDtpZih2LmNvbnRhaW5zRHluYW1p''@;'; + put 'put ''Y1N0eWxlcyl7Y29uc3QgQz1uZXcgU2V0LEk9eXx8e307di5zdHlsZXMuZm9yRWFjaChqPT57aiBpbnN0YW5jZW9mIE1hcCYmai5mb3JFYWNoKHVlPT57ZHdlKHVlKS5mb3JFYWNoKF9lPT57SS5oYXNPd25Qcm9wZXJ0eShfZSl8fEMuYWRkKF9lKX0pfSl9KSxDLnNpemUmJihJcShDLnZhbHVl''@;'; + put 'put ''cygpKSxoLmVycm9ycy5wdXNoKGZ1bmN0aW9uIHlQZShkLGcpe3JldHVybiBuZXcgZW4oMzAwOCwhMSl9KCkpKX1yZXR1cm57dHlwZTowLG5hbWU6Zy5uYW1lLHN0eWxlOnYsb3B0aW9uczp5P3twYXJhbXM6eX06bnVsbH19dmlzaXRUcmFuc2l0aW9uKGcsaCl7aC5xdWVyeUNvdW50PTAsaC5k''@;'; + put 'put ''ZXBDb3VudD0wO2NvbnN0IHY9cDQodGhpcyxiWihnLmFuaW1hdGlvbiksaCk7cmV0dXJue3R5cGU6MSxtYXRjaGVyczpsRmUoZy5leHByLGguZXJyb3JzKSxhbmltYXRpb246dixxdWVyeUNvdW50OmgucXVlcnlDb3VudCxkZXBDb3VudDpoLmRlcENvdW50LG9wdGlvbnM6QVMoZy5vcHRpb25z''@;'; + put 'put ''KX19dmlzaXRTZXF1ZW5jZShnLGgpe3JldHVybnt0eXBlOjIsc3RlcHM6Zy5zdGVwcy5tYXAodj0+cDQodGhpcyx2LGgpKSxvcHRpb25zOkFTKGcub3B0aW9ucyl9fXZpc2l0R3JvdXAoZyxoKXtjb25zdCB2PWguY3VycmVudFRpbWU7bGV0IHk9MDtjb25zdCBDPWcuc3RlcHMubWFwKEk9Pnto''@;'; + put 'put ''LmN1cnJlbnRUaW1lPXY7Y29uc3Qgaj1wNCh0aGlzLEksaCk7cmV0dXJuIHk9TWF0aC5tYXgoeSxoLmN1cnJlbnRUaW1lKSxqfSk7cmV0dXJuIGguY3VycmVudFRpbWU9eSx7dHlwZTozLHN0ZXBzOkMsb3B0aW9uczpBUyhnLm9wdGlvbnMpfX12aXNpdEFuaW1hdGUoZyxoKXtjb25zdCB2PWZ1''@;'; + put 'put ''bmN0aW9uIG1GZShkLGcpe2lmKGQuaGFzT3duUHJvcGVydHkoImR1cmF0aW9uIikpcmV0dXJuIGQ7aWYoIm51bWJlciI9PXR5cGVvZiBkKXJldHVybiBraGUoeHEoZCxnKS5kdXJhdGlvbiwwLCIiKTtjb25zdCBoPWQ7aWYoaC5zcGxpdCgvXHMrLykuc29tZShDPT4ieyI9PUMuY2hhckF0KDAp''@;'; + put 'put ''JiYieyI9PUMuY2hhckF0KDEpKSl7Y29uc3QgQz1raGUoMCwwLCIiKTtyZXR1cm4gQy5keW5hbWljPSEwLEMuc3RyVmFsdWU9aCxDfWNvbnN0IHk9eHEoaCxnKTtyZXR1cm4ga2hlKHkuZHVyYXRpb24seS5kZWxheSx5LmVhc2luZyl9KGcudGltaW5ncyxoLmVycm9ycyk7aC5jdXJyZW50QW5p''@;'; + put 'put ''bWF0ZVRpbWluZ3M9djtsZXQgeSxDPWcuc3R5bGVzP2cuc3R5bGVzOnlsKHt9KTtpZig1PT1DLnR5cGUpeT10aGlzLnZpc2l0S2V5ZnJhbWVzKEMsaCk7ZWxzZXtsZXQgST1nLnN0eWxlcyxqPSExO2lmKCFJKXtqPSEwO2NvbnN0IF9lPXt9O3YuZWFzaW5nJiYoX2UuZWFzaW5nPXYuZWFzaW5n''@;'; + put 'put ''KSxJPXlsKF9lKX1oLmN1cnJlbnRUaW1lKz12LmR1cmF0aW9uK3YuZGVsYXk7Y29uc3QgdWU9dGhpcy52aXNpdFN0eWxlKEksaCk7dWUuaXNFbXB0eVN0ZXA9aix5PXVlfXJldHVybiBoLmN1cnJlbnRBbmltYXRlVGltaW5ncz1udWxsLHt0eXBlOjQsdGltaW5nczp2LHN0eWxlOnksb3B0aW9u''@;'; + put 'put ''czpudWxsfX12aXNpdFN0eWxlKGcsaCl7Y29uc3Qgdj10aGlzLl9tYWtlU3R5bGVBc3QoZyxoKTtyZXR1cm4gdGhpcy5fdmFsaWRhdGVTdHlsZUFzdCh2LGgpLHZ9X21ha2VTdHlsZUFzdChnLGgpe2NvbnN0IHY9W10seT1BcnJheS5pc0FycmF5KGcuc3R5bGVzKT9nLnN0eWxlczpbZy5zdHls''@;'; + put 'put ''ZXNdO2ZvcihsZXQgaiBvZiB5KSJzdHJpbmciPT10eXBlb2Ygaj9qPT09bjg/di5wdXNoKGopOmguZXJyb3JzLnB1c2gobmV3IGVuKDMwMDIsITEpKTp2LnB1c2godXdlKGopKTtsZXQgQz0hMSxJPW51bGw7cmV0dXJuIHYuZm9yRWFjaChqPT57aWYoaiBpbnN0YW5jZW9mIE1hcCYmKGouaGFz''@;'; + put 'put ''KCJlYXNpbmciKSYmKEk9ai5nZXQoImVhc2luZyIpLGouZGVsZXRlKCJlYXNpbmciKSksIUMpKWZvcihsZXQgdWUgb2Ygai52YWx1ZXMoKSlpZih1ZS50b1N0cmluZygpLmluZGV4T2YoInt7Iik+PTApe0M9ITA7YnJlYWt9fSkse3R5cGU6NixzdHlsZXM6dixlYXNpbmc6SSxvZmZzZXQ6Zy5v''@;'; + put 'put ''ZmZzZXQsY29udGFpbnNEeW5hbWljU3R5bGVzOkMsb3B0aW9uczpudWxsfX1fdmFsaWRhdGVTdHlsZUFzdChnLGgpe2NvbnN0IHY9aC5jdXJyZW50QW5pbWF0ZVRpbWluZ3M7bGV0IHk9aC5jdXJyZW50VGltZSxDPWguY3VycmVudFRpbWU7diYmQz4wJiYoQy09di5kdXJhdGlvbit2LmRlbGF5''@;'; + put 'put ''KSxnLnN0eWxlcy5mb3JFYWNoKEk9Pnsic3RyaW5nIiE9dHlwZW9mIEkmJkkuZm9yRWFjaCgoaix1ZSk9Pntjb25zdCBfZT1oLmNvbGxlY3RlZFN0eWxlcy5nZXQoaC5jdXJyZW50UXVlcnlTZWxlY3RvciksQmU9X2UuZ2V0KHVlKTtsZXQgTmU9ITA7QmUmJihDIT15JiZDPj1CZS5zdGFydFRp''@;'; + put 'put ''bWUmJnk8PUJlLmVuZFRpbWUmJihoLmVycm9ycy5wdXNoKGZ1bmN0aW9uIGJQZShkLGcsaCx2LHkpe3JldHVybiBuZXcgZW4oMzAxMCwhMSl9KCkpLE5lPSExKSxDPUJlLnN0YXJ0VGltZSksTmUmJl9lLnNldCh1ZSx7c3RhcnRUaW1lOkMsZW5kVGltZTp5fSksaC5vcHRpb25zJiZmdW5jdGlv''@;'; + put 'put ''biBxUGUoZCxnLGgpe2NvbnN0IHY9Zy5wYXJhbXN8fHt9LHk9ZHdlKGQpO3kubGVuZ3RoJiZ5LmZvckVhY2goQz0+e3YuaGFzT3duUHJvcGVydHkoQyl8fGgucHVzaChmdW5jdGlvbiBkUGUoZCl7cmV0dXJuIG5ldyBlbigzMDAxLCExKX0oKSl9KX0oaixoLm9wdGlvbnMsaC5lcnJvcnMpfSl9''@;'; + put 'put ''KX12aXNpdEtleWZyYW1lcyhnLGgpe2NvbnN0IHY9e3R5cGU6NSxzdHlsZXM6W10sb3B0aW9uczpudWxsfTtpZighaC5jdXJyZW50QW5pbWF0ZVRpbWluZ3MpcmV0dXJuIGguZXJyb3JzLnB1c2goZnVuY3Rpb24gX1BlKCl7cmV0dXJuIG5ldyBlbigzMDExLCExKX0oKSksdjtsZXQgQz0wO2Nv''@;'; + put 'put ''bnN0IEk9W107bGV0IGo9ITEsdWU9ITEsX2U9MDtjb25zdCBCZT1nLnN0ZXBzLm1hcChMbj0+e2NvbnN0IGlyPXRoaXMuX21ha2VTdHlsZUFzdChMbixoKTtsZXQgbXI9bnVsbCE9aXIub2Zmc2V0P2lyLm9mZnNldDpmdW5jdGlvbiBnRmUoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVy''@;'; + put 'put ''biBudWxsO2xldCBnPW51bGw7aWYoQXJyYXkuaXNBcnJheShkKSlkLmZvckVhY2goaD0+e2lmKGggaW5zdGFuY2VvZiBNYXAmJmguaGFzKCJvZmZzZXQiKSl7Y29uc3Qgdj1oO2c9cGFyc2VGbG9hdCh2LmdldCgib2Zmc2V0IikpLHYuZGVsZXRlKCJvZmZzZXQiKX19KTtlbHNlIGlmKGQgaW5z''@;'; + put 'put ''dGFuY2VvZiBNYXAmJmQuaGFzKCJvZmZzZXQiKSl7Y29uc3QgaD1kO2c9cGFyc2VGbG9hdChoLmdldCgib2Zmc2V0IikpLGguZGVsZXRlKCJvZmZzZXQiKX1yZXR1cm4gZ30oaXIuc3R5bGVzKSxTcj0wO3JldHVybiBudWxsIT1tciYmKEMrKyxTcj1pci5vZmZzZXQ9bXIpLHVlPXVlfHxTcjww''@;'; + put 'put ''fHxTcj4xLGo9anx8U3I8X2UsX2U9U3IsSS5wdXNoKFNyKSxpcn0pO3VlJiZoLmVycm9ycy5wdXNoKGZ1bmN0aW9uIENQZSgpe3JldHVybiBuZXcgZW4oMzAxMiwhMSl9KCkpLGomJmguZXJyb3JzLnB1c2goZnVuY3Rpb24ga1BlKCl7cmV0dXJuIG5ldyBlbigzMjAwLCExKX0oKSk7Y29uc3Qg''@;'; + put 'put ''TmU9Zy5zdGVwcy5sZW5ndGg7bGV0IEtlPTA7Qz4wJiZDPE5lP2guZXJyb3JzLnB1c2goZnVuY3Rpb24gU1BlKCl7cmV0dXJuIG5ldyBlbigzMjAyLCExKX0oKSk6MD09QyYmKEtlPTEvKE5lLTEpKTtjb25zdCBkdD1OZS0xLE90PWguY3VycmVudFRpbWUsJHQ9aC5jdXJyZW50QW5pbWF0ZVRp''@;'; + put 'put ''bWluZ3MsZm49JHQuZHVyYXRpb247cmV0dXJuIEJlLmZvckVhY2goKExuLGlyKT0+e2NvbnN0IG1yPUtlPjA/aXI9PWR0PzE6S2UqaXI6SVtpcl0sU3I9bXIqZm47aC5jdXJyZW50VGltZT1PdCskdC5kZWxheStTciwkdC5kdXJhdGlvbj1Tcix0aGlzLl92YWxpZGF0ZVN0eWxlQXN0KExuLGgp''@;'; + put 'put ''LExuLm9mZnNldD1tcix2LnN0eWxlcy5wdXNoKExuKX0pLHZ9dmlzaXRSZWZlcmVuY2UoZyxoKXtyZXR1cm57dHlwZTo4LGFuaW1hdGlvbjpwNCh0aGlzLGJaKGcuYW5pbWF0aW9uKSxoKSxvcHRpb25zOkFTKGcub3B0aW9ucyl9fXZpc2l0QW5pbWF0ZUNoaWxkKGcsaCl7cmV0dXJuIGguZGVw''@;'; + put 'put ''Q291bnQrKyx7dHlwZTo5LG9wdGlvbnM6QVMoZy5vcHRpb25zKX19dmlzaXRBbmltYXRlUmVmKGcsaCl7cmV0dXJue3R5cGU6MTAsYW5pbWF0aW9uOnRoaXMudmlzaXRSZWZlcmVuY2UoZy5hbmltYXRpb24saCksb3B0aW9uczpBUyhnLm9wdGlvbnMpfX12aXNpdFF1ZXJ5KGcsaCl7Y29uc3Qg''@;'; + put 'put ''dj1oLmN1cnJlbnRRdWVyeVNlbGVjdG9yLHk9Zy5vcHRpb25zfHx7fTtoLnF1ZXJ5Q291bnQrKyxoLmN1cnJlbnRRdWVyeT1nO2NvbnN0W0MsSV09ZnVuY3Rpb24gaEZlKGQpe2NvbnN0IGc9ISFkLnNwbGl0KC9ccyosXHMqLykuZmluZChoPT4iOnNlbGYiPT1oKTtyZXR1cm4gZyYmKGQ9ZC5y''@;'; + put 'put ''ZXBsYWNlKGNGZSwiIikpLGQ9ZC5yZXBsYWNlKC9AXCovZyxFcSkucmVwbGFjZSgvQFx3Ky9nLGg9PkVxKyItIitoLnNsaWNlKDEpKS5yZXBsYWNlKC86YW5pbWF0aW5nL2cseWhlKSxbZCxnXX0oZy5zZWxlY3Rvcik7aC5jdXJyZW50UXVlcnlTZWxlY3Rvcj12Lmxlbmd0aD92KyIgIitDOkMs''@;'; + put 'put ''ZDQoaC5jb2xsZWN0ZWRTdHlsZXMsaC5jdXJyZW50UXVlcnlTZWxlY3RvcixuZXcgTWFwKTtjb25zdCBqPXA0KHRoaXMsYlooZy5hbmltYXRpb24pLGgpO3JldHVybiBoLmN1cnJlbnRRdWVyeT1udWxsLGguY3VycmVudFF1ZXJ5U2VsZWN0b3I9dix7dHlwZToxMSxzZWxlY3RvcjpDLGxpbWl0''@;'; + put 'put ''OnkubGltaXR8fDAsb3B0aW9uYWw6ISF5Lm9wdGlvbmFsLGluY2x1ZGVTZWxmOkksYW5pbWF0aW9uOmosb3JpZ2luYWxTZWxlY3RvcjpnLnNlbGVjdG9yLG9wdGlvbnM6QVMoZy5vcHRpb25zKX19dmlzaXRTdGFnZ2VyKGcsaCl7aC5jdXJyZW50UXVlcnl8fGguZXJyb3JzLnB1c2goZnVuY3Rp''@;'; + put 'put ''b24gTVBlKCl7cmV0dXJuIG5ldyBlbigzMDEzLCExKX0oKSk7Y29uc3Qgdj0iZnVsbCI9PT1nLnRpbWluZ3M/e2R1cmF0aW9uOjAsZGVsYXk6MCxlYXNpbmc6ImZ1bGwifTp4cShnLnRpbWluZ3MsaC5lcnJvcnMsITApO3JldHVybnt0eXBlOjEyLGFuaW1hdGlvbjpwNCh0aGlzLGJaKGcuYW5p''@;'; + put 'put ''bWF0aW9uKSxoKSx0aW1pbmdzOnYsb3B0aW9uczpudWxsfX19Y2xhc3MgcEZle2NvbnN0cnVjdG9yKGcpe3RoaXMuZXJyb3JzPWcsdGhpcy5xdWVyeUNvdW50PTAsdGhpcy5kZXBDb3VudD0wLHRoaXMuY3VycmVudFRyYW5zaXRpb249bnVsbCx0aGlzLmN1cnJlbnRRdWVyeT1udWxsLHRoaXMu''@;'; + put 'put ''Y3VycmVudFF1ZXJ5U2VsZWN0b3I9bnVsbCx0aGlzLmN1cnJlbnRBbmltYXRlVGltaW5ncz1udWxsLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmNvbGxlY3RlZFN0eWxlcz1uZXcgTWFwLHRoaXMub3B0aW9ucz1udWxsLHRoaXMudW5zdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzRm91bmQ9bmV3IFNl''@;'; + put 'put ''dH19ZnVuY3Rpb24gQVMoZCl7cmV0dXJuIGQ/KGQ9d1ooZCkpLnBhcmFtcyYmKGQucGFyYW1zPWZ1bmN0aW9uIGRGZShkKXtyZXR1cm4gZD93WihkKTpudWxsfShkLnBhcmFtcykpOmQ9e30sZH1mdW5jdGlvbiBraGUoZCxnLGgpe3JldHVybntkdXJhdGlvbjpkLGRlbGF5OmcsZWFzaW5nOmh9''@;'; + put 'put ''fWZ1bmN0aW9uIFNoZShkLGcsaCx2LHksQyxJPW51bGwsaj0hMSl7cmV0dXJue3R5cGU6MSxlbGVtZW50OmQsa2V5ZnJhbWVzOmcscHJlU3R5bGVQcm9wczpoLHBvc3RTdHlsZVByb3BzOnYsZHVyYXRpb246eSxkZWxheTpDLHRvdGFsVGltZTp5K0MsZWFzaW5nOkksc3ViVGltZWxpbmU6an19''@;'; + put 'put ''Y2xhc3MgUHF7Y29uc3RydWN0b3IoKXt0aGlzLl9tYXA9bmV3IE1hcH1nZXQoZyl7cmV0dXJuIHRoaXMuX21hcC5nZXQoZyl8fFtdfWFwcGVuZChnLGgpe2xldCB2PXRoaXMuX21hcC5nZXQoZyk7dnx8dGhpcy5fbWFwLnNldChnLHY9W10pLHYucHVzaCguLi5oKX1oYXMoZyl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX21hcC5oYXMoZyl9Y2xlYXIoKXt0aGlzLl9tYXAuY2xlYXIoKX19Y29uc3QgeUZlPW5ldyBSZWdFeHAoIjplbnRlciIsImciKSxiRmU9bmV3IFJlZ0V4cCgiOmxlYXZlIiwiZyIpO2Z1bmN0aW9uIE1oZShkLGcsaCx2LHksQz1uZXcgTWFwLEk9bmV3IE1hcCxqLHVlLF9lPVtdKXtyZXR1''@;'; + put 'put ''cm4obmV3IF9GZSkuYnVpbGRLZXlmcmFtZXMoZCxnLGgsdix5LEMsSSxqLHVlLF9lKX1jbGFzcyBfRmV7YnVpbGRLZXlmcmFtZXMoZyxoLHYseSxDLEksaix1ZSxfZSxCZT1bXSl7X2U9X2V8fG5ldyBQcTtjb25zdCBOZT1uZXcgRWhlKGcsaCxfZSx5LEMsQmUsW10pO05lLm9wdGlvbnM9dWU7''@;'; + put 'put ''Y29uc3QgS2U9dWUuZGVsYXk/dncodWUuZGVsYXkpOjA7TmUuY3VycmVudFRpbWVsaW5lLmRlbGF5TmV4dFN0ZXAoS2UpLE5lLmN1cnJlbnRUaW1lbGluZS5zZXRTdHlsZXMoW0ldLG51bGwsTmUuZXJyb3JzLHVlKSxwNCh0aGlzLHYsTmUpO2NvbnN0IGR0PU5lLnRpbWVsaW5lcy5maWx0ZXIo''@;'; + put 'put ''T3Q9Pk90LmNvbnRhaW5zQW5pbWF0aW9uKCkpO2lmKGR0Lmxlbmd0aCYmai5zaXplKXtsZXQgT3Q7Zm9yKGxldCAkdD1kdC5sZW5ndGgtMTskdD49MDskdC0tKXtjb25zdCBmbj1kdFskdF07aWYoZm4uZWxlbWVudD09PWgpe090PWZuO2JyZWFrfX1PdCYmIU90LmFsbG93T25seVRpbWVsaW5l''@;'; + put 'put ''U3R5bGVzKCkmJk90LnNldFN0eWxlcyhbal0sbnVsbCxOZS5lcnJvcnMsdWUpfXJldHVybiBkdC5sZW5ndGg/ZHQubWFwKE90PT5PdC5idWlsZEtleWZyYW1lcygpKTpbU2hlKGgsW10sW10sW10sMCxLZSwiIiwhMSldfXZpc2l0VHJpZ2dlcihnLGgpe312aXNpdFN0YXRlKGcsaCl7fXZpc2l0''@;'; + put 'put ''VHJhbnNpdGlvbihnLGgpe312aXNpdEFuaW1hdGVDaGlsZChnLGgpe2NvbnN0IHY9aC5zdWJJbnN0cnVjdGlvbnMuZ2V0KGguZWxlbWVudCk7aWYodil7Y29uc3QgeT1oLmNyZWF0ZVN1YkNvbnRleHQoZy5vcHRpb25zKSxDPWguY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lLEk9dGhpcy5f''@;'; + put 'put ''dmlzaXRTdWJJbnN0cnVjdGlvbnModix5LHkub3B0aW9ucyk7QyE9SSYmaC50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoSSl9aC5wcmV2aW91c05vZGU9Z312aXNpdEFuaW1hdGVSZWYoZyxoKXtjb25zdCB2PWguY3JlYXRlU3ViQ29udGV4dChnLm9wdGlvbnMpO3YudHJhbnNmb3JtSW50b05l''@;'; + put 'put ''d1RpbWVsaW5lKCksdGhpcy52aXNpdFJlZmVyZW5jZShnLmFuaW1hdGlvbix2KSxoLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZSh2LmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSksaC5wcmV2aW91c05vZGU9Z31fdmlzaXRTdWJJbnN0cnVjdGlvbnMoZyxoLHYpe2xldCBDPWguY3VycmVu''@;'; + put 'put ''dFRpbWVsaW5lLmN1cnJlbnRUaW1lO2NvbnN0IEk9bnVsbCE9di5kdXJhdGlvbj92dyh2LmR1cmF0aW9uKTpudWxsLGo9bnVsbCE9di5kZWxheT92dyh2LmRlbGF5KTpudWxsO3JldHVybiAwIT09SSYmZy5mb3JFYWNoKHVlPT57Y29uc3QgX2U9aC5hcHBlbmRJbnN0cnVjdGlvblRvVGltZWxp''@;'; + put 'put ''bmUodWUsSSxqKTtDPU1hdGgubWF4KEMsX2UuZHVyYXRpb24rX2UuZGVsYXkpfSksQ312aXNpdFJlZmVyZW5jZShnLGgpe2gudXBkYXRlT3B0aW9ucyhnLm9wdGlvbnMsITApLHA0KHRoaXMsZy5hbmltYXRpb24saCksaC5wcmV2aW91c05vZGU9Z312aXNpdFNlcXVlbmNlKGcsaCl7Y29uc3Qg''@;'; + put 'put ''dj1oLnN1YkNvbnRleHRDb3VudDtsZXQgeT1oO2NvbnN0IEM9Zy5vcHRpb25zO2lmKEMmJihDLnBhcmFtc3x8Qy5kZWxheSkmJih5PWguY3JlYXRlU3ViQ29udGV4dChDKSx5LnRyYW5zZm9ybUludG9OZXdUaW1lbGluZSgpLG51bGwhPUMuZGVsYXkpKXs2PT15LnByZXZpb3VzTm9kZS50eXBl''@;'; + put 'put ''JiYoeS5jdXJyZW50VGltZWxpbmUuc25hcHNob3RDdXJyZW50U3R5bGVzKCkseS5wcmV2aW91c05vZGU9RnEpO2NvbnN0IEk9dncoQy5kZWxheSk7eS5kZWxheU5leHRTdGVwKEkpfWcuc3RlcHMubGVuZ3RoJiYoZy5zdGVwcy5mb3JFYWNoKEk9PnA0KHRoaXMsSSx5KSkseS5jdXJyZW50VGlt''@;'; + put 'put ''ZWxpbmUuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCkseS5zdWJDb250ZXh0Q291bnQ+diYmeS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoKSksaC5wcmV2aW91c05vZGU9Z312aXNpdEdyb3VwKGcsaCl7Y29uc3Qgdj1bXTtsZXQgeT1oLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZTtjb25z''@;'; + put 'put ''dCBDPWcub3B0aW9ucyYmZy5vcHRpb25zLmRlbGF5P3Z3KGcub3B0aW9ucy5kZWxheSk6MDtnLnN0ZXBzLmZvckVhY2goST0+e2NvbnN0IGo9aC5jcmVhdGVTdWJDb250ZXh0KGcub3B0aW9ucyk7QyYmai5kZWxheU5leHRTdGVwKEMpLHA0KHRoaXMsSSxqKSx5PU1hdGgubWF4KHksai5jdXJy''@;'; + put 'put ''ZW50VGltZWxpbmUuY3VycmVudFRpbWUpLHYucHVzaChqLmN1cnJlbnRUaW1lbGluZSl9KSx2LmZvckVhY2goST0+aC5jdXJyZW50VGltZWxpbmUubWVyZ2VUaW1lbGluZUNvbGxlY3RlZFN0eWxlcyhJKSksaC50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoeSksaC5wcmV2aW91c05vZGU9Z31f''@;'; + put 'put ''dmlzaXRUaW1pbmcoZyxoKXtpZihnLmR5bmFtaWMpe2NvbnN0IHY9Zy5zdHJWYWx1ZTtyZXR1cm4geHEoaC5wYXJhbXM/VHEodixoLnBhcmFtcyxoLmVycm9ycyk6dixoLmVycm9ycyl9cmV0dXJue2R1cmF0aW9uOmcuZHVyYXRpb24sZGVsYXk6Zy5kZWxheSxlYXNpbmc6Zy5lYXNpbmd9fXZp''@;'; + put 'put ''c2l0QW5pbWF0ZShnLGgpe2NvbnN0IHY9aC5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9dGhpcy5fdmlzaXRUaW1pbmcoZy50aW1pbmdzLGgpLHk9aC5jdXJyZW50VGltZWxpbmU7di5kZWxheSYmKGguaW5jcmVtZW50VGltZSh2LmRlbGF5KSx5LnNuYXBzaG90Q3VycmVudFN0eWxlcygpKTtjb25z''@;'; + put 'put ''dCBDPWcuc3R5bGU7NT09Qy50eXBlP3RoaXMudmlzaXRLZXlmcmFtZXMoQyxoKTooaC5pbmNyZW1lbnRUaW1lKHYuZHVyYXRpb24pLHRoaXMudmlzaXRTdHlsZShDLGgpLHkuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCkpLGguY3VycmVudEFuaW1hdGVUaW1pbmdzPW51bGwsaC5wcmV2aW91c05v''@;'; + put 'put ''ZGU9Z312aXNpdFN0eWxlKGcsaCl7Y29uc3Qgdj1oLmN1cnJlbnRUaW1lbGluZSx5PWguY3VycmVudEFuaW1hdGVUaW1pbmdzOyF5JiZ2Lmhhc0N1cnJlbnRTdHlsZVByb3BlcnRpZXMoKSYmdi5mb3J3YXJkRnJhbWUoKTtjb25zdCBDPXkmJnkuZWFzaW5nfHxnLmVhc2luZztnLmlzRW1wdHlT''@;'; + put 'put ''dGVwP3YuYXBwbHlFbXB0eVN0ZXAoQyk6di5zZXRTdHlsZXMoZy5zdHlsZXMsQyxoLmVycm9ycyxoLm9wdGlvbnMpLGgucHJldmlvdXNOb2RlPWd9dmlzaXRLZXlmcmFtZXMoZyxoKXtjb25zdCB2PWguY3VycmVudEFuaW1hdGVUaW1pbmdzLHk9aC5jdXJyZW50VGltZWxpbmUuZHVyYXRpb24s''@;'; + put 'put ''Qz12LmR1cmF0aW9uLGo9aC5jcmVhdGVTdWJDb250ZXh0KCkuY3VycmVudFRpbWVsaW5lO2ouZWFzaW5nPXYuZWFzaW5nLGcuc3R5bGVzLmZvckVhY2godWU9PntqLmZvcndhcmRUaW1lKCh1ZS5vZmZzZXR8fDApKkMpLGouc2V0U3R5bGVzKHVlLnN0eWxlcyx1ZS5lYXNpbmcsaC5lcnJvcnMs''@;'; + put 'put ''aC5vcHRpb25zKSxqLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpfSksaC5jdXJyZW50VGltZWxpbmUubWVyZ2VUaW1lbGluZUNvbGxlY3RlZFN0eWxlcyhqKSxoLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZSh5K0MpLGgucHJldmlvdXNOb2RlPWd9dmlzaXRRdWVyeShnLGgpe2NvbnN0IHY9aC5j''@;'; + put 'put ''dXJyZW50VGltZWxpbmUuY3VycmVudFRpbWUseT1nLm9wdGlvbnN8fHt9LEM9eS5kZWxheT92dyh5LmRlbGF5KTowO0MmJig2PT09aC5wcmV2aW91c05vZGUudHlwZXx8MD09diYmaC5jdXJyZW50VGltZWxpbmUuaGFzQ3VycmVudFN0eWxlUHJvcGVydGllcygpKSYmKGguY3VycmVudFRpbWVs''@;'; + put 'put ''aW5lLnNuYXBzaG90Q3VycmVudFN0eWxlcygpLGgucHJldmlvdXNOb2RlPUZxKTtsZXQgST12O2NvbnN0IGo9aC5pbnZva2VRdWVyeShnLnNlbGVjdG9yLGcub3JpZ2luYWxTZWxlY3RvcixnLmxpbWl0LGcuaW5jbHVkZVNlbGYsISF5Lm9wdGlvbmFsLGguZXJyb3JzKTtoLmN1cnJlbnRRdWVy''@;'; + put 'put ''eVRvdGFsPWoubGVuZ3RoO2xldCB1ZT1udWxsO2ouZm9yRWFjaCgoX2UsQmUpPT57aC5jdXJyZW50UXVlcnlJbmRleD1CZTtjb25zdCBOZT1oLmNyZWF0ZVN1YkNvbnRleHQoZy5vcHRpb25zLF9lKTtDJiZOZS5kZWxheU5leHRTdGVwKEMpLF9lPT09aC5lbGVtZW50JiYodWU9TmUuY3VycmVu''@;'; + put 'put ''dFRpbWVsaW5lKSxwNCh0aGlzLGcuYW5pbWF0aW9uLE5lKSxOZS5jdXJyZW50VGltZWxpbmUuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksST1NYXRoLm1heChJLE5lLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSl9KSxoLmN1cnJlbnRRdWVyeUluZGV4PTAsaC5jdXJyZW50UXVlcnlUb3Rh''@;'; + put 'put ''bD0wLGgudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKEkpLHVlJiYoaC5jdXJyZW50VGltZWxpbmUubWVyZ2VUaW1lbGluZUNvbGxlY3RlZFN0eWxlcyh1ZSksaC5jdXJyZW50VGltZWxpbmUuc25hcHNob3RDdXJyZW50U3R5bGVzKCkpLGgucHJldmlvdXNOb2RlPWd9dmlzaXRTdGFnZ2VyKGcs''@;'; + put 'put ''aCl7Y29uc3Qgdj1oLnBhcmVudENvbnRleHQseT1oLmN1cnJlbnRUaW1lbGluZSxDPWcudGltaW5ncyxJPU1hdGguYWJzKEMuZHVyYXRpb24pLGo9SSooaC5jdXJyZW50UXVlcnlUb3RhbC0xKTtsZXQgdWU9SSpoLmN1cnJlbnRRdWVyeUluZGV4O3N3aXRjaChDLmR1cmF0aW9uPDA/InJldmVy''@;'; + put 'put ''c2UiOkMuZWFzaW5nKXtjYXNlInJldmVyc2UiOnVlPWotdWU7YnJlYWs7Y2FzZSJmdWxsIjp1ZT12LmN1cnJlbnRTdGFnZ2VyVGltZX1jb25zdCBCZT1oLmN1cnJlbnRUaW1lbGluZTt1ZSYmQmUuZGVsYXlOZXh0U3RlcCh1ZSk7Y29uc3QgTmU9QmUuY3VycmVudFRpbWU7cDQodGhpcyxnLmFu''@;'; + put 'put ''aW1hdGlvbixoKSxoLnByZXZpb3VzTm9kZT1nLHYuY3VycmVudFN0YWdnZXJUaW1lPXkuY3VycmVudFRpbWUtTmUrKHkuc3RhcnRUaW1lLXYuY3VycmVudFRpbWVsaW5lLnN0YXJ0VGltZSl9fWNvbnN0IEZxPXt9O2NsYXNzIEVoZXtjb25zdHJ1Y3RvcihnLGgsdix5LEMsSSxqLHVlKXt0aGlz''@;'; + put 'put ''Ll9kcml2ZXI9Zyx0aGlzLmVsZW1lbnQ9aCx0aGlzLnN1Ykluc3RydWN0aW9ucz12LHRoaXMuX2VudGVyQ2xhc3NOYW1lPXksdGhpcy5fbGVhdmVDbGFzc05hbWU9Qyx0aGlzLmVycm9ycz1JLHRoaXMudGltZWxpbmVzPWosdGhpcy5wYXJlbnRDb250ZXh0PW51bGwsdGhpcy5jdXJyZW50QW5p''@;'; + put 'put ''bWF0ZVRpbWluZ3M9bnVsbCx0aGlzLnByZXZpb3VzTm9kZT1GcSx0aGlzLnN1YkNvbnRleHRDb3VudD0wLHRoaXMub3B0aW9ucz17fSx0aGlzLmN1cnJlbnRRdWVyeUluZGV4PTAsdGhpcy5jdXJyZW50UXVlcnlUb3RhbD0wLHRoaXMuY3VycmVudFN0YWdnZXJUaW1lPTAsdGhpcy5jdXJyZW50''@;'; + put 'put ''VGltZWxpbmU9dWV8fG5ldyBIcSh0aGlzLl9kcml2ZXIsaCwwKSxqLnB1c2godGhpcy5jdXJyZW50VGltZWxpbmUpfWdldCBwYXJhbXMoKXtyZXR1cm4gdGhpcy5vcHRpb25zLnBhcmFtc311cGRhdGVPcHRpb25zKGcsaCl7aWYoIWcpcmV0dXJuO2NvbnN0IHY9ZztsZXQgeT10aGlzLm9wdGlv''@;'; + put 'put ''bnM7bnVsbCE9di5kdXJhdGlvbiYmKHkuZHVyYXRpb249dncodi5kdXJhdGlvbikpLG51bGwhPXYuZGVsYXkmJih5LmRlbGF5PXZ3KHYuZGVsYXkpKTtjb25zdCBDPXYucGFyYW1zO2lmKEMpe2xldCBJPXkucGFyYW1zO0l8fChJPXRoaXMub3B0aW9ucy5wYXJhbXM9e30pLE9iamVjdC5rZXlz''@;'; + put 'put ''KEMpLmZvckVhY2goaj0+eyghaHx8IUkuaGFzT3duUHJvcGVydHkoaikpJiYoSVtqXT1UcShDW2pdLEksdGhpcy5lcnJvcnMpKX0pfX1fY29weU9wdGlvbnMoKXtjb25zdCBnPXt9O2lmKHRoaXMub3B0aW9ucyl7Y29uc3QgaD10aGlzLm9wdGlvbnMucGFyYW1zO2lmKGgpe2NvbnN0IHY9Zy5w''@;'; + put 'put ''YXJhbXM9e307T2JqZWN0LmtleXMoaCkuZm9yRWFjaCh5PT57dlt5XT1oW3ldfSl9fXJldHVybiBnfWNyZWF0ZVN1YkNvbnRleHQoZz1udWxsLGgsdil7Y29uc3QgeT1ofHx0aGlzLmVsZW1lbnQsQz1uZXcgRWhlKHRoaXMuX2RyaXZlcix5LHRoaXMuc3ViSW5zdHJ1Y3Rpb25zLHRoaXMuX2Vu''@;'; + put 'put ''dGVyQ2xhc3NOYW1lLHRoaXMuX2xlYXZlQ2xhc3NOYW1lLHRoaXMuZXJyb3JzLHRoaXMudGltZWxpbmVzLHRoaXMuY3VycmVudFRpbWVsaW5lLmZvcmsoeSx2fHwwKSk7cmV0dXJuIEMucHJldmlvdXNOb2RlPXRoaXMucHJldmlvdXNOb2RlLEMuY3VycmVudEFuaW1hdGVUaW1pbmdzPXRoaXMu''@;'; + put 'put ''Y3VycmVudEFuaW1hdGVUaW1pbmdzLEMub3B0aW9ucz10aGlzLl9jb3B5T3B0aW9ucygpLEMudXBkYXRlT3B0aW9ucyhnKSxDLmN1cnJlbnRRdWVyeUluZGV4PXRoaXMuY3VycmVudFF1ZXJ5SW5kZXgsQy5jdXJyZW50UXVlcnlUb3RhbD10aGlzLmN1cnJlbnRRdWVyeVRvdGFsLEMucGFyZW50''@;'; + put 'put ''Q29udGV4dD10aGlzLHRoaXMuc3ViQ29udGV4dENvdW50KyssQ310cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoZyl7cmV0dXJuIHRoaXMucHJldmlvdXNOb2RlPUZxLHRoaXMuY3VycmVudFRpbWVsaW5lPXRoaXMuY3VycmVudFRpbWVsaW5lLmZvcmsodGhpcy5lbGVtZW50LGcpLHRoaXMudGlt''@;'; + put 'put ''ZWxpbmVzLnB1c2godGhpcy5jdXJyZW50VGltZWxpbmUpLHRoaXMuY3VycmVudFRpbWVsaW5lfWFwcGVuZEluc3RydWN0aW9uVG9UaW1lbGluZShnLGgsdil7Y29uc3QgeT17ZHVyYXRpb246bnVsbCE9aD9oOmcuZHVyYXRpb24sZGVsYXk6dGhpcy5jdXJyZW50VGltZWxpbmUuY3VycmVudFRp''@;'; + put 'put ''bWUrKG51bGwhPXY/djowKStnLmRlbGF5LGVhc2luZzoiIn0sQz1uZXcgQ0ZlKHRoaXMuX2RyaXZlcixnLmVsZW1lbnQsZy5rZXlmcmFtZXMsZy5wcmVTdHlsZVByb3BzLGcucG9zdFN0eWxlUHJvcHMseSxnLnN0cmV0Y2hTdGFydGluZ0tleWZyYW1lKTtyZXR1cm4gdGhpcy50aW1lbGluZXMu''@;'; + put 'put ''cHVzaChDKSx5fWluY3JlbWVudFRpbWUoZyl7dGhpcy5jdXJyZW50VGltZWxpbmUuZm9yd2FyZFRpbWUodGhpcy5jdXJyZW50VGltZWxpbmUuZHVyYXRpb24rZyl9ZGVsYXlOZXh0U3RlcChnKXtnPjAmJnRoaXMuY3VycmVudFRpbWVsaW5lLmRlbGF5TmV4dFN0ZXAoZyl9aW52b2tlUXVlcnko''@;'; + put 'put ''ZyxoLHYseSxDLEkpe2xldCBqPVtdO2lmKHkmJmoucHVzaCh0aGlzLmVsZW1lbnQpLGcubGVuZ3RoPjApe2c9KGc9Zy5yZXBsYWNlKHlGZSwiLiIrdGhpcy5fZW50ZXJDbGFzc05hbWUpKS5yZXBsYWNlKGJGZSwiLiIrdGhpcy5fbGVhdmVDbGFzc05hbWUpO2xldCBfZT10aGlzLl9kcml2ZXIu''@;'; + put 'put ''cXVlcnkodGhpcy5lbGVtZW50LGcsMSE9dik7MCE9PXYmJihfZT12PDA/X2Uuc2xpY2UoX2UubGVuZ3RoK3YsX2UubGVuZ3RoKTpfZS5zbGljZSgwLHYpKSxqLnB1c2goLi4uX2UpfXJldHVybiFDJiYwPT1qLmxlbmd0aCYmSS5wdXNoKGZ1bmN0aW9uIEVQZShkKXtyZXR1cm4gbmV3IGVuKDMw''@;'; + put 'put ''MTQsITEpfSgpKSxqfX1jbGFzcyBIcXtjb25zdHJ1Y3RvcihnLGgsdix5KXt0aGlzLl9kcml2ZXI9Zyx0aGlzLmVsZW1lbnQ9aCx0aGlzLnN0YXJ0VGltZT12LHRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1cD15LHRoaXMuZHVyYXRpb249MCx0aGlzLl9wcmV2aW91c0tleWZyYW1l''@;'; + put 'put ''PW5ldyBNYXAsdGhpcy5fY3VycmVudEtleWZyYW1lPW5ldyBNYXAsdGhpcy5fa2V5ZnJhbWVzPW5ldyBNYXAsdGhpcy5fc3R5bGVTdW1tYXJ5PW5ldyBNYXAsdGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcz1uZXcgTWFwLHRoaXMuX3BlbmRpbmdTdHlsZXM9bmV3IE1hcCx0aGlzLl9iYWNrRmls''@;'; + put 'put ''bD1uZXcgTWFwLHRoaXMuX2N1cnJlbnRFbXB0eVN0ZXBLZXlmcmFtZT1udWxsLHRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1cHx8KHRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1cD1uZXcgTWFwKSx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcz10aGlzLl9lbGVtZW50''@;'; + put 'put ''VGltZWxpbmVTdHlsZXNMb29rdXAuZ2V0KGgpLHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzfHwodGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXM9dGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcyx0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXAuc2V0KGgsdGhpcy5fbG9jYWxUaW1l''@;'; + put 'put ''bGluZVN0eWxlcykpLHRoaXMuX2xvYWRLZXlmcmFtZSgpfWNvbnRhaW5zQW5pbWF0aW9uKCl7c3dpdGNoKHRoaXMuX2tleWZyYW1lcy5zaXplKXtjYXNlIDA6cmV0dXJuITE7Y2FzZSAxOnJldHVybiB0aGlzLmhhc0N1cnJlbnRTdHlsZVByb3BlcnRpZXMoKTtkZWZhdWx0OnJldHVybiEwfX1o''@;'; + put 'put ''YXNDdXJyZW50U3R5bGVQcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRLZXlmcmFtZS5zaXplPjB9Z2V0IGN1cnJlbnRUaW1lKCl7cmV0dXJuIHRoaXMuc3RhcnRUaW1lK3RoaXMuZHVyYXRpb259ZGVsYXlOZXh0U3RlcChnKXtjb25zdCBoPTE9PT10aGlzLl9rZXlmcmFtZXMuc2l6''@;'; + put 'put ''ZSYmdGhpcy5fcGVuZGluZ1N0eWxlcy5zaXplO3RoaXMuZHVyYXRpb258fGg/KHRoaXMuZm9yd2FyZFRpbWUodGhpcy5jdXJyZW50VGltZStnKSxoJiZ0aGlzLnNuYXBzaG90Q3VycmVudFN0eWxlcygpKTp0aGlzLnN0YXJ0VGltZSs9Z31mb3JrKGcsaCl7cmV0dXJuIHRoaXMuYXBwbHlTdHls''@;'; + put 'put ''ZXNUb0tleWZyYW1lKCksbmV3IEhxKHRoaXMuX2RyaXZlcixnLGh8fHRoaXMuY3VycmVudFRpbWUsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwKX1fbG9hZEtleWZyYW1lKCl7dGhpcy5fY3VycmVudEtleWZyYW1lJiYodGhpcy5fcHJldmlvdXNLZXlmcmFtZT10aGlzLl9jdXJy''@;'; + put 'put ''ZW50S2V5ZnJhbWUpLHRoaXMuX2N1cnJlbnRLZXlmcmFtZT10aGlzLl9rZXlmcmFtZXMuZ2V0KHRoaXMuZHVyYXRpb24pLHRoaXMuX2N1cnJlbnRLZXlmcmFtZXx8KHRoaXMuX2N1cnJlbnRLZXlmcmFtZT1uZXcgTWFwLHRoaXMuX2tleWZyYW1lcy5zZXQodGhpcy5kdXJhdGlvbix0aGlzLl9j''@;'; + put 'put ''dXJyZW50S2V5ZnJhbWUpKX1mb3J3YXJkRnJhbWUoKXt0aGlzLmR1cmF0aW9uKz0xLHRoaXMuX2xvYWRLZXlmcmFtZSgpfWZvcndhcmRUaW1lKGcpe3RoaXMuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksdGhpcy5kdXJhdGlvbj1nLHRoaXMuX2xvYWRLZXlmcmFtZSgpfV91cGRhdGVTdHlsZShn''@;'; + put 'put ''LGgpe3RoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMuc2V0KGcsaCksdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXMuc2V0KGcsaCksdGhpcy5fc3R5bGVTdW1tYXJ5LnNldChnLHt0aW1lOnRoaXMuY3VycmVudFRpbWUsdmFsdWU6aH0pfWFsbG93T25seVRpbWVsaW5lU3R5bGVzKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuX2N1cnJlbnRFbXB0eVN0ZXBLZXlmcmFtZSE9PXRoaXMuX2N1cnJlbnRLZXlmcmFtZX1hcHBseUVtcHR5U3RlcChnKXtnJiZ0aGlzLl9wcmV2aW91c0tleWZyYW1lLnNldCgiZWFzaW5nIixnKTtmb3IobGV0W2gsdl1vZiB0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcyl0aGlzLl9i''@;'; + put 'put ''YWNrRmlsbC5zZXQoaCx2fHxuOCksdGhpcy5fY3VycmVudEtleWZyYW1lLnNldChoLG44KTt0aGlzLl9jdXJyZW50RW1wdHlTdGVwS2V5ZnJhbWU9dGhpcy5fY3VycmVudEtleWZyYW1lfXNldFN0eWxlcyhnLGgsdix5KXt2YXIgQztoJiZ0aGlzLl9wcmV2aW91c0tleWZyYW1lLnNldCgiZWFz''@;'; + put 'put ''aW5nIixoKTtjb25zdCBJPXkmJnkucGFyYW1zfHx7fSxqPWZ1bmN0aW9uIGtGZShkLGcpe2NvbnN0IGg9bmV3IE1hcDtsZXQgdjtyZXR1cm4gZC5mb3JFYWNoKHk9PntpZigiKiI9PT15KXt2PXZ8fGcua2V5cygpO2ZvcihsZXQgQyBvZiB2KWguc2V0KEMsbjgpfWVsc2UgQXcoeSxoKX0pLGh9''@;'; + put 'put ''KGcsdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXMpO2ZvcihsZXRbdWUsX2Vdb2Ygail7Y29uc3QgQmU9VHEoX2UsSSx2KTt0aGlzLl9wZW5kaW5nU3R5bGVzLnNldCh1ZSxCZSksdGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcy5oYXModWUpfHx0aGlzLl9iYWNrRmlsbC5zZXQodWUsbnVsbCE9''@;'; + put 'put ''PShDPXRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzLmdldCh1ZSkpJiZ2b2lkIDAhPT1DP0M6bjgpLHRoaXMuX3VwZGF0ZVN0eWxlKHVlLEJlKX19YXBwbHlTdHlsZXNUb0tleWZyYW1lKCl7MCE9dGhpcy5fcGVuZGluZ1N0eWxlcy5zaXplJiYodGhpcy5fcGVuZGluZ1N0eWxlcy5mb3JFYWNo''@;'; + put 'put ''KChnLGgpPT57dGhpcy5fY3VycmVudEtleWZyYW1lLnNldChoLGcpfSksdGhpcy5fcGVuZGluZ1N0eWxlcy5jbGVhcigpLHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMuZm9yRWFjaCgoZyxoKT0+e3RoaXMuX2N1cnJlbnRLZXlmcmFtZS5oYXMoaCl8fHRoaXMuX2N1cnJlbnRLZXlmcmFtZS5z''@;'; + put 'put ''ZXQoaCxnKX0pKX1zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKXtmb3IobGV0W2csaF1vZiB0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzKXRoaXMuX3BlbmRpbmdTdHlsZXMuc2V0KGcsaCksdGhpcy5fdXBkYXRlU3R5bGUoZyxoKX1nZXRGaW5hbEtleWZyYW1lKCl7cmV0dXJuIHRoaXMuX2tleWZy''@;'; + put 'put ''YW1lcy5nZXQodGhpcy5kdXJhdGlvbil9Z2V0IHByb3BlcnRpZXMoKXtjb25zdCBnPVtdO2ZvcihsZXQgaCBpbiB0aGlzLl9jdXJyZW50S2V5ZnJhbWUpZy5wdXNoKGgpO3JldHVybiBnfW1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHlsZXMoZyl7Zy5fc3R5bGVTdW1tYXJ5LmZvckVhY2goKGgs''@;'; + put 'put ''dik9Pntjb25zdCB5PXRoaXMuX3N0eWxlU3VtbWFyeS5nZXQodik7KCF5fHxoLnRpbWU+eS50aW1lKSYmdGhpcy5fdXBkYXRlU3R5bGUodixoLnZhbHVlKX0pfWJ1aWxkS2V5ZnJhbWVzKCl7dGhpcy5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKTtjb25zdCBnPW5ldyBTZXQsaD1uZXcgU2V0LHY9''@;'; + put 'put ''MT09PXRoaXMuX2tleWZyYW1lcy5zaXplJiYwPT09dGhpcy5kdXJhdGlvbjtsZXQgeT1bXTt0aGlzLl9rZXlmcmFtZXMuZm9yRWFjaCgoaix1ZSk9Pntjb25zdCBfZT1BdyhqLG5ldyBNYXAsdGhpcy5fYmFja0ZpbGwpO19lLmZvckVhY2goKEJlLE5lKT0+eyIhIj09PUJlP2cuYWRkKE5lKTpC''@;'; + put 'put ''ZT09PW44JiZoLmFkZChOZSl9KSx2fHxfZS5zZXQoIm9mZnNldCIsdWUvdGhpcy5kdXJhdGlvbikseS5wdXNoKF9lKX0pO2NvbnN0IEM9Zy5zaXplP0lxKGcudmFsdWVzKCkpOltdLEk9aC5zaXplP0lxKGgudmFsdWVzKCkpOltdO2lmKHYpe2NvbnN0IGo9eVswXSx1ZT1uZXcgTWFwKGopO2ou''@;'; + put 'put ''c2V0KCJvZmZzZXQiLDApLHVlLnNldCgib2Zmc2V0IiwxKSx5PVtqLHVlXX1yZXR1cm4gU2hlKHRoaXMuZWxlbWVudCx5LEMsSSx0aGlzLmR1cmF0aW9uLHRoaXMuc3RhcnRUaW1lLHRoaXMuZWFzaW5nLCExKX19Y2xhc3MgQ0ZlIGV4dGVuZHMgSHF7Y29uc3RydWN0b3IoZyxoLHYseSxDLEks''@;'; + put 'put ''aj0hMSl7c3VwZXIoZyxoLEkuZGVsYXkpLHRoaXMua2V5ZnJhbWVzPXYsdGhpcy5wcmVTdHlsZVByb3BzPXksdGhpcy5wb3N0U3R5bGVQcm9wcz1DLHRoaXMuX3N0cmV0Y2hTdGFydGluZ0tleWZyYW1lPWosdGhpcy50aW1pbmdzPXtkdXJhdGlvbjpJLmR1cmF0aW9uLGRlbGF5OkkuZGVsYXks''@;'; + put 'put ''ZWFzaW5nOkkuZWFzaW5nfX1jb250YWluc0FuaW1hdGlvbigpe3JldHVybiB0aGlzLmtleWZyYW1lcy5sZW5ndGg+MX1idWlsZEtleWZyYW1lcygpe2xldCBnPXRoaXMua2V5ZnJhbWVzLHtkZWxheTpoLGR1cmF0aW9uOnYsZWFzaW5nOnl9PXRoaXMudGltaW5ncztpZih0aGlzLl9zdHJldGNo''@;'; + put 'put ''U3RhcnRpbmdLZXlmcmFtZSYmaCl7Y29uc3QgQz1bXSxJPXYraCxqPWgvSSx1ZT1BdyhnWzBdKTt1ZS5zZXQoIm9mZnNldCIsMCksQy5wdXNoKHVlKTtjb25zdCBfZT1BdyhnWzBdKTtfZS5zZXQoIm9mZnNldCIsQXdlKGopKSxDLnB1c2goX2UpO2NvbnN0IEJlPWcubGVuZ3RoLTE7Zm9yKGxl''@;'; + put 'put ''dCBOZT0xO05lPD1CZTtOZSsrKXtsZXQgS2U9QXcoZ1tOZV0pO2NvbnN0IGR0PUtlLmdldCgib2Zmc2V0Iik7S2Uuc2V0KCJvZmZzZXQiLEF3ZSgoaCtkdCp2KS9JKSksQy5wdXNoKEtlKX12PUksaD0wLHk9IiIsZz1DfXJldHVybiBTaGUodGhpcy5lbGVtZW50LGcsdGhpcy5wcmVTdHlsZVBy''@;'; + put 'put ''b3BzLHRoaXMucG9zdFN0eWxlUHJvcHMsdixoLHksITApfX1mdW5jdGlvbiBBd2UoZCxnPTMpe2NvbnN0IGg9TWF0aC5wb3coMTAsZy0xKTtyZXR1cm4gTWF0aC5yb3VuZChkKmgpL2h9Y2xhc3MgeGhle31jb25zdCBTRmU9bmV3IFNldChbIndpZHRoIiwiaGVpZ2h0IiwibWluV2lkdGgiLCJt''@;'; + put 'put ''aW5IZWlnaHQiLCJtYXhXaWR0aCIsIm1heEhlaWdodCIsImxlZnQiLCJ0b3AiLCJib3R0b20iLCJyaWdodCIsImZvbnRTaXplIiwib3V0bGluZVdpZHRoIiwib3V0bGluZU9mZnNldCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdCb3R0b20iLCJwYWRkaW5nUmlnaHQiLCJt''@;'; + put 'put ''YXJnaW5Ub3AiLCJtYXJnaW5MZWZ0IiwibWFyZ2luQm90dG9tIiwibWFyZ2luUmlnaHQiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJXaWR0aCIsImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIiwidGV4dEluZGVu''@;'; + put 'put ''dCIsInBlcnNwZWN0aXZlIl0pO2NsYXNzIE1GZSBleHRlbmRzIHhoZXtub3JtYWxpemVQcm9wZXJ0eU5hbWUoZyxoKXtyZXR1cm4gX2hlKGcpfW5vcm1hbGl6ZVN0eWxlVmFsdWUoZyxoLHYseSl7bGV0IEM9IiI7Y29uc3QgST12LnRvU3RyaW5nKCkudHJpbSgpO2lmKFNGZS5oYXMoaCkmJjAh''@;'; + put 'put ''PT12JiYiMCIhPT12KWlmKCJudW1iZXIiPT10eXBlb2YgdilDPSJweCI7ZWxzZXtjb25zdCBqPXYubWF0Y2goL15bKy1dP1tcZFwuXSsoW2Etel0qKSQvKTtqJiYwPT1qWzFdLmxlbmd0aCYmeS5wdXNoKGZ1bmN0aW9uIG1QZShkLGcpe3JldHVybiBuZXcgZW4oMzAwNSwhMSl9KCkpfXJldHVy''@;'; + put 'put ''biBJK0N9fWZ1bmN0aW9uIHl3ZShkLGcsaCx2LHksQyxJLGosdWUsX2UsQmUsTmUsS2Upe3JldHVybnt0eXBlOjAsZWxlbWVudDpkLHRyaWdnZXJOYW1lOmcsaXNSZW1vdmFsVHJhbnNpdGlvbjp5LGZyb21TdGF0ZTpoLGZyb21TdHlsZXM6Qyx0b1N0YXRlOnYsdG9TdHlsZXM6SSx0aW1lbGlu''@;'; + put 'put ''ZXM6aixxdWVyaWVkRWxlbWVudHM6dWUscHJlU3R5bGVQcm9wczpfZSxwb3N0U3R5bGVQcm9wczpCZSx0b3RhbFRpbWU6TmUsZXJyb3JzOktlfX1jb25zdCBUaGU9e307Y2xhc3Mgd3dle2NvbnN0cnVjdG9yKGcsaCx2KXt0aGlzLl90cmlnZ2VyTmFtZT1nLHRoaXMuYXN0PWgsdGhpcy5fc3Rh''@;'; + put 'put ''dGVTdHlsZXM9dn1tYXRjaChnLGgsdix5KXtyZXR1cm4gZnVuY3Rpb24gRUZlKGQsZyxoLHYseSl7cmV0dXJuIGQuc29tZShDPT5DKGcsaCx2LHkpKX0odGhpcy5hc3QubWF0Y2hlcnMsZyxoLHYseSl9YnVpbGRTdHlsZXMoZyxoLHYpe2xldCB5PXRoaXMuX3N0YXRlU3R5bGVzLmdldCgiKiIp''@;'; + put 'put ''O3JldHVybiB2b2lkIDAhPT1nJiYoeT10aGlzLl9zdGF0ZVN0eWxlcy5nZXQobnVsbD09Zz92b2lkIDA6Zy50b1N0cmluZygpKXx8eSkseT95LmJ1aWxkU3R5bGVzKGgsdik6bmV3IE1hcH1idWlsZChnLGgsdix5LEMsSSxqLHVlLF9lLEJlKXt2YXIgTmU7Y29uc3QgS2U9W10sZHQ9dGhpcy5h''@;'; + put 'put ''c3Qub3B0aW9ucyYmdGhpcy5hc3Qub3B0aW9ucy5wYXJhbXN8fFRoZSwkdD10aGlzLmJ1aWxkU3R5bGVzKHYsaiYmai5wYXJhbXN8fFRoZSxLZSksZm49dWUmJnVlLnBhcmFtc3x8VGhlLExuPXRoaXMuYnVpbGRTdHlsZXMoeSxmbixLZSksaXI9bmV3IFNldCxtcj1uZXcgTWFwLFNyPW5ldyBN''@;'; + put 'put ''YXAsd3I9InZvaWQiPT09eSxRcj17cGFyYW1zOnhGZShmbixkdCksZGVsYXk6bnVsbD09PShOZT10aGlzLmFzdC5vcHRpb25zKXx8dm9pZCAwPT09TmU/dm9pZCAwOk5lLmRlbGF5fSx5aT1CZT9bXTpNaGUoZyxoLHRoaXMuYXN0LmFuaW1hdGlvbixDLEksJHQsTG4sUXIsX2UsS2UpO2xldCBL''@;'; + put 'put ''aT0wO2lmKHlpLmZvckVhY2goUG89PntLaT1NYXRoLm1heChQby5kdXJhdGlvbitQby5kZWxheSxLaSl9KSxLZS5sZW5ndGgpcmV0dXJuIHl3ZShoLHRoaXMuX3RyaWdnZXJOYW1lLHYseSx3ciwkdCxMbixbXSxbXSxtcixTcixLaSxLZSk7eWkuZm9yRWFjaChQbz0+e2NvbnN0IFNhPVBvLmVs''@;'; + put 'put ''ZW1lbnQsSmE9ZDQobXIsU2EsbmV3IFNldCk7UG8ucHJlU3R5bGVQcm9wcy5mb3JFYWNoKGFsPT5KYS5hZGQoYWwpKTtjb25zdCBsYT1kNChTcixTYSxuZXcgU2V0KTtQby5wb3N0U3R5bGVQcm9wcy5mb3JFYWNoKGFsPT5sYS5hZGQoYWwpKSxTYSE9PWgmJmlyLmFkZChTYSl9KTtjb25zdCBT''@;'; + put 'put ''bz1JcShpci52YWx1ZXMoKSk7cmV0dXJuIHl3ZShoLHRoaXMuX3RyaWdnZXJOYW1lLHYseSx3ciwkdCxMbix5aSxTbyxtcixTcixLaSl9fWZ1bmN0aW9uIHhGZShkLGcpe2NvbnN0IGg9d1ooZyk7Zm9yKGNvbnN0IHYgaW4gZClkLmhhc093blByb3BlcnR5KHYpJiZudWxsIT1kW3ZdJiYoaFt2''@;'; + put 'put ''XT1kW3ZdKTtyZXR1cm4gaH1jbGFzcyBURmV7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMuc3R5bGVzPWcsdGhpcy5kZWZhdWx0UGFyYW1zPWgsdGhpcy5ub3JtYWxpemVyPXZ9YnVpbGRTdHlsZXMoZyxoKXtjb25zdCB2PW5ldyBNYXAseT13Wih0aGlzLmRlZmF1bHRQYXJhbXMpO3JldHVybiBP''@;'; + put 'put ''YmplY3Qua2V5cyhnKS5mb3JFYWNoKEM9Pntjb25zdCBJPWdbQ107bnVsbCE9PUkmJih5W0NdPUkpfSksdGhpcy5zdHlsZXMuc3R5bGVzLmZvckVhY2goQz0+eyJzdHJpbmciIT10eXBlb2YgQyYmQy5mb3JFYWNoKChJLGopPT57SSYmKEk9VHEoSSx5LGgpKTtjb25zdCB1ZT10aGlzLm5vcm1h''@;'; + put 'put ''bGl6ZXIubm9ybWFsaXplUHJvcGVydHlOYW1lKGosaCk7ST10aGlzLm5vcm1hbGl6ZXIubm9ybWFsaXplU3R5bGVWYWx1ZShqLHVlLEksaCksdi5zZXQodWUsSSl9KX0pLHZ9fWNsYXNzIERGZXtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5uYW1lPWcsdGhpcy5hc3Q9aCx0aGlzLl9ub3JtYWxp''@;'; + put 'put ''emVyPXYsdGhpcy50cmFuc2l0aW9uRmFjdG9yaWVzPVtdLHRoaXMuc3RhdGVzPW5ldyBNYXAsaC5zdGF0ZXMuZm9yRWFjaCh5PT57dGhpcy5zdGF0ZXMuc2V0KHkubmFtZSxuZXcgVEZlKHkuc3R5bGUseS5vcHRpb25zJiZ5Lm9wdGlvbnMucGFyYW1zfHx7fSx2KSl9KSxid2UodGhpcy5zdGF0''@;'; + put 'put ''ZXMsInRydWUiLCIxIiksYndlKHRoaXMuc3RhdGVzLCJmYWxzZSIsIjAiKSxoLnRyYW5zaXRpb25zLmZvckVhY2goeT0+e3RoaXMudHJhbnNpdGlvbkZhY3Rvcmllcy5wdXNoKG5ldyB3d2UoZyx5LHRoaXMuc3RhdGVzKSl9KSx0aGlzLmZhbGxiYWNrVHJhbnNpdGlvbj1mdW5jdGlvbiBMRmUo''@;'; + put 'put ''ZCxnLGgpe3JldHVybiBuZXcgd3dlKGQse3R5cGU6MSxhbmltYXRpb246e3R5cGU6MixzdGVwczpbXSxvcHRpb25zOm51bGx9LG1hdGNoZXJzOlsoSSxqKT0+ITBdLG9wdGlvbnM6bnVsbCxxdWVyeUNvdW50OjAsZGVwQ291bnQ6MH0sZyl9KGcsdGhpcy5zdGF0ZXMpfWdldCBjb250YWluc1F1''@;'; + put 'put ''ZXJpZXMoKXtyZXR1cm4gdGhpcy5hc3QucXVlcnlDb3VudD4wfW1hdGNoVHJhbnNpdGlvbihnLGgsdix5KXtyZXR1cm4gdGhpcy50cmFuc2l0aW9uRmFjdG9yaWVzLmZpbmQoST0+SS5tYXRjaChnLGgsdix5KSl8fG51bGx9bWF0Y2hTdHlsZXMoZyxoLHYpe3JldHVybiB0aGlzLmZhbGxiYWNr''@;'; + put 'put ''VHJhbnNpdGlvbi5idWlsZFN0eWxlcyhnLGgsdil9fWZ1bmN0aW9uIGJ3ZShkLGcsaCl7ZC5oYXMoZyk/ZC5oYXMoaCl8fGQuc2V0KGgsZC5nZXQoZykpOmQuaGFzKGgpJiZkLnNldChnLGQuZ2V0KGgpKX1jb25zdCBPRmU9bmV3IFBxO2NsYXNzIFJGZXtjb25zdHJ1Y3RvcihnLGgsdil7dGhp''@;'; + put 'put ''cy5ib2R5Tm9kZT1nLHRoaXMuX2RyaXZlcj1oLHRoaXMuX25vcm1hbGl6ZXI9dix0aGlzLl9hbmltYXRpb25zPW5ldyBNYXAsdGhpcy5fcGxheWVyc0J5SWQ9bmV3IE1hcCx0aGlzLnBsYXllcnM9W119cmVnaXN0ZXIoZyxoKXtjb25zdCB2PVtdLEM9Q2hlKHRoaXMuX2RyaXZlcixoLHYsW10p''@;'; + put 'put ''O2lmKHYubGVuZ3RoKXRocm93IGZ1bmN0aW9uIFJQZShkKXtyZXR1cm4gbmV3IGVuKDM1MDMsITEpfSgpO3RoaXMuX2FuaW1hdGlvbnMuc2V0KGcsQyl9X2J1aWxkUGxheWVyKGcsaCx2KXtjb25zdCB5PWcuZWxlbWVudCxDPXF5ZSgwLHRoaXMuX25vcm1hbGl6ZXIsMCxnLmtleWZyYW1lcyxo''@;'; + put 'put ''LHYpO3JldHVybiB0aGlzLl9kcml2ZXIuYW5pbWF0ZSh5LEMsZy5kdXJhdGlvbixnLmRlbGF5LGcuZWFzaW5nLFtdLCEwKX1jcmVhdGUoZyxoLHY9e30pe2NvbnN0IHk9W10sQz10aGlzLl9hbmltYXRpb25zLmdldChnKTtsZXQgSTtjb25zdCBqPW5ldyBNYXA7aWYoQz8oST1NaGUodGhpcy5f''@;'; + put 'put ''ZHJpdmVyLGgsQywibmctZW50ZXIiLFNxLG5ldyBNYXAsbmV3IE1hcCx2LE9GZSx5KSxJLmZvckVhY2goQmU9Pntjb25zdCBOZT1kNChqLEJlLmVsZW1lbnQsbmV3IE1hcCk7QmUucG9zdFN0eWxlUHJvcHMuZm9yRWFjaChLZT0+TmUuc2V0KEtlLG51bGwpKX0pKTooeS5wdXNoKGZ1bmN0aW9u''@;'; + put 'put ''IEJQZSgpe3JldHVybiBuZXcgZW4oMzMwMCwhMSl9KCkpLEk9W10pLHkubGVuZ3RoKXRocm93IGZ1bmN0aW9uIFBQZShkKXtyZXR1cm4gbmV3IGVuKDM1MDQsITEpfSgpO2ouZm9yRWFjaCgoQmUsTmUpPT57QmUuZm9yRWFjaCgoS2UsZHQpPT57QmUuc2V0KGR0LHRoaXMuX2RyaXZlci5jb21w''@;'; + put 'put ''dXRlU3R5bGUoTmUsZHQsbjgpKX0pfSk7Y29uc3QgX2U9bXcoSS5tYXAoQmU9Pntjb25zdCBOZT1qLmdldChCZS5lbGVtZW50KTtyZXR1cm4gdGhpcy5fYnVpbGRQbGF5ZXIoQmUsbmV3IE1hcCxOZSl9KSk7cmV0dXJuIHRoaXMuX3BsYXllcnNCeUlkLnNldChnLF9lKSxfZS5vbkRlc3Ryb3ko''@;'; + put 'put ''KCk9PnRoaXMuZGVzdHJveShnKSksdGhpcy5wbGF5ZXJzLnB1c2goX2UpLF9lfWRlc3Ryb3koZyl7Y29uc3QgaD10aGlzLl9nZXRQbGF5ZXIoZyk7aC5kZXN0cm95KCksdGhpcy5fcGxheWVyc0J5SWQuZGVsZXRlKGcpO2NvbnN0IHY9dGhpcy5wbGF5ZXJzLmluZGV4T2YoaCk7dj49MCYmdGhp''@;'; + put 'put ''cy5wbGF5ZXJzLnNwbGljZSh2LDEpfV9nZXRQbGF5ZXIoZyl7Y29uc3QgaD10aGlzLl9wbGF5ZXJzQnlJZC5nZXQoZyk7aWYoIWgpdGhyb3cgZnVuY3Rpb24gRlBlKGQpe3JldHVybiBuZXcgZW4oMzMwMSwhMSl9KCk7cmV0dXJuIGh9bGlzdGVuKGcsaCx2LHkpe2NvbnN0IEM9cGhlKGgsIiIs''@;'; + put 'put ''IiIsIiIpO3JldHVybiBoaGUodGhpcy5fZ2V0UGxheWVyKGcpLHYsQyx5KSwoKT0+e319Y29tbWFuZChnLGgsdix5KXtpZigicmVnaXN0ZXIiPT12KXJldHVybiB2b2lkIHRoaXMucmVnaXN0ZXIoZyx5WzBdKTtpZigiY3JlYXRlIj09dilyZXR1cm4gdm9pZCB0aGlzLmNyZWF0ZShnLGgseVsw''@;'; + put 'put ''XXx8e30pO2NvbnN0IEM9dGhpcy5fZ2V0UGxheWVyKGcpO3N3aXRjaCh2KXtjYXNlInBsYXkiOkMucGxheSgpO2JyZWFrO2Nhc2UicGF1c2UiOkMucGF1c2UoKTticmVhaztjYXNlInJlc2V0IjpDLnJlc2V0KCk7YnJlYWs7Y2FzZSJyZXN0YXJ0IjpDLnJlc3RhcnQoKTticmVhaztjYXNlImZp''@;'; + put 'put ''bmlzaCI6Qy5maW5pc2goKTticmVhaztjYXNlImluaXQiOkMuaW5pdCgpO2JyZWFrO2Nhc2Uic2V0UG9zaXRpb24iOkMuc2V0UG9zaXRpb24ocGFyc2VGbG9hdCh5WzBdKSk7YnJlYWs7Y2FzZSJkZXN0cm95Ijp0aGlzLmRlc3Ryb3koZyl9fX1jb25zdCBfd2U9Im5nLWFuaW1hdGUtcXVldWVk''@;'; + put 'put ''IixJaGU9Im5nLWFuaW1hdGUtZGlzYWJsZWQiLE5GZT1bXSxDd2U9e25hbWVzcGFjZUlkOiIiLHNldEZvclJlbW92YWw6ITEsc2V0Rm9yTW92ZTohMSxoYXNBbmltYXRpb246ITEscmVtb3ZlZEJlZm9yZVF1ZXJpZWQ6ITF9LFZGZT17bmFtZXNwYWNlSWQ6IiIsc2V0Rm9yTW92ZTohMSxzZXRG''@;'; + put 'put ''b3JSZW1vdmFsOiExLGhhc0FuaW1hdGlvbjohMSxyZW1vdmVkQmVmb3JlUXVlcmllZDohMH0sVHA9Il9fbmdfcmVtb3ZlZCI7Y2xhc3MgRGhle2NvbnN0cnVjdG9yKGcsaD0iIil7dGhpcy5uYW1lc3BhY2VJZD1oO2NvbnN0IHY9ZyYmZy5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKTtpZih0aGlz''@;'; + put 'put ''LnZhbHVlPWZ1bmN0aW9uIEdGZShkKXtyZXR1cm4gbnVsbCE9ZD9kOm51bGx9KHY/Zy52YWx1ZTpnKSx2KXtjb25zdCBDPXdaKGcpO2RlbGV0ZSBDLnZhbHVlLHRoaXMub3B0aW9ucz1DfWVsc2UgdGhpcy5vcHRpb25zPXt9O3RoaXMub3B0aW9ucy5wYXJhbXN8fCh0aGlzLm9wdGlvbnMucGFy''@;'; + put 'put ''YW1zPXt9KX1nZXQgcGFyYW1zKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5wYXJhbXN9YWJzb3JiT3B0aW9ucyhnKXtjb25zdCBoPWcucGFyYW1zO2lmKGgpe2NvbnN0IHY9dGhpcy5vcHRpb25zLnBhcmFtcztPYmplY3Qua2V5cyhoKS5mb3JFYWNoKHk9PntudWxsPT12W3ldJiYodlt5XT1oW3ld''@;'; + put 'put ''KX0pfX19Y29uc3QgX1o9InZvaWQiLExoZT1uZXcgRGhlKF9aKTtjbGFzcyBqRmV7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMuaWQ9Zyx0aGlzLmhvc3RFbGVtZW50PWgsdGhpcy5fZW5naW5lPXYsdGhpcy5wbGF5ZXJzPVtdLHRoaXMuX3RyaWdnZXJzPW5ldyBNYXAsdGhpcy5fcXVldWU9W10s''@;'; + put 'put ''dGhpcy5fZWxlbWVudExpc3RlbmVycz1uZXcgTWFwLHRoaXMuX2hvc3RDbGFzc05hbWU9Im5nLXRucy0iK2csSXAoaCx0aGlzLl9ob3N0Q2xhc3NOYW1lKX1saXN0ZW4oZyxoLHYseSl7aWYoIXRoaXMuX3RyaWdnZXJzLmhhcyhoKSl0aHJvdyBmdW5jdGlvbiBIUGUoZCxnKXtyZXR1cm4gbmV3''@;'; + put 'put ''IGVuKDMzMDIsITEpfSgpO2lmKG51bGw9PXZ8fDA9PXYubGVuZ3RoKXRocm93IGZ1bmN0aW9uIE5QZShkKXtyZXR1cm4gbmV3IGVuKDMzMDMsITEpfSgpO2lmKCFmdW5jdGlvbiBXRmUoZCl7cmV0dXJuInN0YXJ0Ij09ZHx8ImRvbmUiPT1kfSh2KSl0aHJvdyBmdW5jdGlvbiBWUGUoZCxnKXty''@;'; + put 'put ''ZXR1cm4gbmV3IGVuKDM0MDAsITEpfSgpO2NvbnN0IEM9ZDQodGhpcy5fZWxlbWVudExpc3RlbmVycyxnLFtdKSxJPXtuYW1lOmgscGhhc2U6dixjYWxsYmFjazp5fTtDLnB1c2goSSk7Y29uc3Qgaj1kNCh0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LGcsbmV3IE1hcCk7cmV0dXJuIGou''@;'; + put 'put ''aGFzKGgpfHwoSXAoZyxNcSksSXAoZyxNcSsiLSIraCksai5zZXQoaCxMaGUpKSwoKT0+e3RoaXMuX2VuZ2luZS5hZnRlckZsdXNoKCgpPT57Y29uc3QgdWU9Qy5pbmRleE9mKEkpO3VlPj0wJiZDLnNwbGljZSh1ZSwxKSx0aGlzLl90cmlnZ2Vycy5oYXMoaCl8fGouZGVsZXRlKGgpfSl9fXJl''@;'; + put 'put ''Z2lzdGVyKGcsaCl7cmV0dXJuIXRoaXMuX3RyaWdnZXJzLmhhcyhnKSYmKHRoaXMuX3RyaWdnZXJzLnNldChnLGgpLCEwKX1fZ2V0VHJpZ2dlcihnKXtjb25zdCBoPXRoaXMuX3RyaWdnZXJzLmdldChnKTtpZighaCl0aHJvdyBmdW5jdGlvbiBqUGUoZCl7cmV0dXJuIG5ldyBlbigzNDAxLCEx''@;'; + put 'put ''KX0oKTtyZXR1cm4gaH10cmlnZ2VyKGcsaCx2LHk9ITApe2NvbnN0IEM9dGhpcy5fZ2V0VHJpZ2dlcihoKSxJPW5ldyBPaGUodGhpcy5pZCxoLGcpO2xldCBqPXRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQuZ2V0KGcpO2p8fChJcChnLE1xKSxJcChnLE1xKyItIitoKSx0aGlzLl9lbmdp''@;'; + put 'put ''bmUuc3RhdGVzQnlFbGVtZW50LnNldChnLGo9bmV3IE1hcCkpO2xldCB1ZT1qLmdldChoKTtjb25zdCBfZT1uZXcgRGhlKHYsdGhpcy5pZCk7aWYoISh2JiZ2Lmhhc093blByb3BlcnR5KCJ2YWx1ZSIpKSYmdWUmJl9lLmFic29yYk9wdGlvbnModWUub3B0aW9ucyksai5zZXQoaCxfZSksdWV8''@;'; + put 'put ''fCh1ZT1MaGUpLF9lLnZhbHVlIT09X1omJnVlLnZhbHVlPT09X2UudmFsdWUpe2lmKCFmdW5jdGlvbiBRRmUoZCxnKXtjb25zdCBoPU9iamVjdC5rZXlzKGQpLHY9T2JqZWN0LmtleXMoZyk7aWYoaC5sZW5ndGghPXYubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgeT0wO3k8aC5sZW5ndGg7eSsr''@;'; + put 'put ''KXtjb25zdCBDPWhbeV07aWYoIWcuaGFzT3duUHJvcGVydHkoQyl8fGRbQ10hPT1nW0NdKXJldHVybiExfXJldHVybiEwfSh1ZS5wYXJhbXMsX2UucGFyYW1zKSl7Y29uc3QgJHQ9W10sZm49Qy5tYXRjaFN0eWxlcyh1ZS52YWx1ZSx1ZS5wYXJhbXMsJHQpLExuPUMubWF0Y2hTdHlsZXMoX2Uu''@;'; + put 'put ''dmFsdWUsX2UucGFyYW1zLCR0KTskdC5sZW5ndGg/dGhpcy5fZW5naW5lLnJlcG9ydEVycm9yKCR0KTp0aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKT0+e3ZTKGcsZm4pLENnKGcsTG4pfSl9cmV0dXJufWNvbnN0IEtlPWQ0KHRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LGcsW10pO0tl''@;'; + put 'put ''LmZvckVhY2goJHQ9PnskdC5uYW1lc3BhY2VJZD09dGhpcy5pZCYmJHQudHJpZ2dlck5hbWU9PWgmJiR0LnF1ZXVlZCYmJHQuZGVzdHJveSgpfSk7bGV0IGR0PUMubWF0Y2hUcmFuc2l0aW9uKHVlLnZhbHVlLF9lLnZhbHVlLGcsX2UucGFyYW1zKSxPdD0hMTtpZighZHQpe2lmKCF5KXJldHVy''@;'; + put 'put ''bjtkdD1DLmZhbGxiYWNrVHJhbnNpdGlvbixPdD0hMH1yZXR1cm4gdGhpcy5fZW5naW5lLnRvdGFsUXVldWVkUGxheWVycysrLHRoaXMuX3F1ZXVlLnB1c2goe2VsZW1lbnQ6Zyx0cmlnZ2VyTmFtZTpoLHRyYW5zaXRpb246ZHQsZnJvbVN0YXRlOnVlLHRvU3RhdGU6X2UscGxheWVyOkksaXNG''@;'; + put 'put ''YWxsYmFja1RyYW5zaXRpb246T3R9KSxPdHx8KElwKGcsX3dlKSxJLm9uU3RhcnQoKCk9PntRTChnLF93ZSl9KSksSS5vbkRvbmUoKCk9PntsZXQgJHQ9dGhpcy5wbGF5ZXJzLmluZGV4T2YoSSk7JHQ+PTAmJnRoaXMucGxheWVycy5zcGxpY2UoJHQsMSk7Y29uc3QgZm49dGhpcy5fZW5naW5l''@;'; + put 'put ''LnBsYXllcnNCeUVsZW1lbnQuZ2V0KGcpO2lmKGZuKXtsZXQgTG49Zm4uaW5kZXhPZihJKTtMbj49MCYmZm4uc3BsaWNlKExuLDEpfX0pLHRoaXMucGxheWVycy5wdXNoKEkpLEtlLnB1c2goSSksSX1kZXJlZ2lzdGVyKGcpe3RoaXMuX3RyaWdnZXJzLmRlbGV0ZShnKSx0aGlzLl9lbmdpbmUu''@;'; + put 'put ''c3RhdGVzQnlFbGVtZW50LmZvckVhY2goaD0+aC5kZWxldGUoZykpLHRoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuZm9yRWFjaCgoaCx2KT0+e3RoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuc2V0KHYsaC5maWx0ZXIoeT0+eS5uYW1lIT1nKSl9KX1jbGVhckVsZW1lbnRDYWNoZShnKXt0aGlzLl9lbmdp''@;'; + put 'put ''bmUuc3RhdGVzQnlFbGVtZW50LmRlbGV0ZShnKSx0aGlzLl9lbGVtZW50TGlzdGVuZXJzLmRlbGV0ZShnKTtjb25zdCBoPXRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LmdldChnKTtoJiYoaC5mb3JFYWNoKHY9PnYuZGVzdHJveSgpKSx0aGlzLl9lbmdpbmUucGxheWVyc0J5RWxlbWVu''@;'; + put 'put ''dC5kZWxldGUoZykpfV9zaWduYWxSZW1vdmFsRm9ySW5uZXJUcmlnZ2VycyhnLGgpe2NvbnN0IHY9dGhpcy5fZW5naW5lLmRyaXZlci5xdWVyeShnLEVxLCEwKTt2LmZvckVhY2goeT0+e2lmKHlbVHBdKXJldHVybjtjb25zdCBDPXRoaXMuX2VuZ2luZS5mZXRjaE5hbWVzcGFjZXNCeUVsZW1l''@;'; + put 'put ''bnQoeSk7Qy5zaXplP0MuZm9yRWFjaChJPT5JLnRyaWdnZXJMZWF2ZUFuaW1hdGlvbih5LGgsITEsITApKTp0aGlzLmNsZWFyRWxlbWVudENhY2hlKHkpfSksdGhpcy5fZW5naW5lLmFmdGVyRmx1c2hBbmltYXRpb25zRG9uZSgoKT0+di5mb3JFYWNoKHk9PnRoaXMuY2xlYXJFbGVtZW50Q2Fj''@;'; + put 'put ''aGUoeSkpKX10cmlnZ2VyTGVhdmVBbmltYXRpb24oZyxoLHYseSl7Y29uc3QgQz10aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmdldChnKSxJPW5ldyBNYXA7aWYoQyl7Y29uc3Qgaj1bXTtpZihDLmZvckVhY2goKHVlLF9lKT0+e2lmKEkuc2V0KF9lLHVlLnZhbHVlKSx0aGlzLl90cmln''@;'; + put 'put ''Z2Vycy5oYXMoX2UpKXtjb25zdCBCZT10aGlzLnRyaWdnZXIoZyxfZSxfWix5KTtCZSYmai5wdXNoKEJlKX19KSxqLmxlbmd0aClyZXR1cm4gdGhpcy5fZW5naW5lLm1hcmtFbGVtZW50QXNSZW1vdmVkKHRoaXMuaWQsZywhMCxoLEkpLHYmJm13KGopLm9uRG9uZSgoKT0+dGhpcy5fZW5naW5l''@;'; + put 'put ''LnByb2Nlc3NMZWF2ZU5vZGUoZykpLCEwfXJldHVybiExfXByZXBhcmVMZWF2ZUFuaW1hdGlvbkxpc3RlbmVycyhnKXtjb25zdCBoPXRoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuZ2V0KGcpLHY9dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5nZXQoZyk7aWYoaCYmdil7Y29uc3QgeT1uZXcg''@;'; + put 'put ''U2V0O2guZm9yRWFjaChDPT57Y29uc3QgST1DLm5hbWU7aWYoeS5oYXMoSSkpcmV0dXJuO3kuYWRkKEkpO2NvbnN0IHVlPXRoaXMuX3RyaWdnZXJzLmdldChJKS5mYWxsYmFja1RyYW5zaXRpb24sX2U9di5nZXQoSSl8fExoZSxCZT1uZXcgRGhlKF9aKSxOZT1uZXcgT2hlKHRoaXMuaWQsSSxn''@;'; + put 'put ''KTt0aGlzLl9lbmdpbmUudG90YWxRdWV1ZWRQbGF5ZXJzKyssdGhpcy5fcXVldWUucHVzaCh7ZWxlbWVudDpnLHRyaWdnZXJOYW1lOkksdHJhbnNpdGlvbjp1ZSxmcm9tU3RhdGU6X2UsdG9TdGF0ZTpCZSxwbGF5ZXI6TmUsaXNGYWxsYmFja1RyYW5zaXRpb246ITB9KX0pfX1yZW1vdmVOb2Rl''@;'; + put 'put ''KGcsaCl7Y29uc3Qgdj10aGlzLl9lbmdpbmU7aWYoZy5jaGlsZEVsZW1lbnRDb3VudCYmdGhpcy5fc2lnbmFsUmVtb3ZhbEZvcklubmVyVHJpZ2dlcnMoZyxoKSx0aGlzLnRyaWdnZXJMZWF2ZUFuaW1hdGlvbihnLGgsITApKXJldHVybjtsZXQgeT0hMTtpZih2LnRvdGFsQW5pbWF0aW9ucyl7''@;'; + put 'put ''Y29uc3QgQz12LnBsYXllcnMubGVuZ3RoP3YucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuZ2V0KGcpOltdO2lmKEMmJkMubGVuZ3RoKXk9ITA7ZWxzZXtsZXQgST1nO2Zvcig7ST1JLnBhcmVudE5vZGU7KWlmKHYuc3RhdGVzQnlFbGVtZW50LmdldChJKSl7eT0hMDticmVha319fWlmKHRoaXMu''@;'; + put 'put ''cHJlcGFyZUxlYXZlQW5pbWF0aW9uTGlzdGVuZXJzKGcpLHkpdi5tYXJrRWxlbWVudEFzUmVtb3ZlZCh0aGlzLmlkLGcsITEsaCk7ZWxzZXtjb25zdCBDPWdbVHBdOyghQ3x8Qz09PUN3ZSkmJih2LmFmdGVyRmx1c2goKCk9PnRoaXMuY2xlYXJFbGVtZW50Q2FjaGUoZykpLHYuZGVzdHJveUlu''@;'; + put 'put ''bmVyQW5pbWF0aW9ucyhnKSx2Ll9vblJlbW92YWxDb21wbGV0ZShnLGgpKX19aW5zZXJ0Tm9kZShnLGgpe0lwKGcsdGhpcy5faG9zdENsYXNzTmFtZSl9ZHJhaW5RdWV1ZWRUcmFuc2l0aW9ucyhnKXtjb25zdCBoPVtdO3JldHVybiB0aGlzLl9xdWV1ZS5mb3JFYWNoKHY9Pntjb25zdCB5PXYu''@;'; + put 'put ''cGxheWVyO2lmKHkuZGVzdHJveWVkKXJldHVybjtjb25zdCBDPXYuZWxlbWVudCxJPXRoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuZ2V0KEMpO0kmJkkuZm9yRWFjaChqPT57aWYoai5uYW1lPT12LnRyaWdnZXJOYW1lKXtjb25zdCB1ZT1waGUoQyx2LnRyaWdnZXJOYW1lLHYuZnJvbVN0YXRlLnZh''@;'; + put 'put ''bHVlLHYudG9TdGF0ZS52YWx1ZSk7dWUuX2RhdGE9ZyxoaGUodi5wbGF5ZXIsai5waGFzZSx1ZSxqLmNhbGxiYWNrKX19KSx5Lm1hcmtlZEZvckRlc3Ryb3k/dGhpcy5fZW5naW5lLmFmdGVyRmx1c2goKCk9Pnt5LmRlc3Ryb3koKX0pOmgucHVzaCh2KX0pLHRoaXMuX3F1ZXVlPVtdLGguc29y''@;'; + put 'put ''dCgodix5KT0+e2NvbnN0IEM9di50cmFuc2l0aW9uLmFzdC5kZXBDb3VudCxJPXkudHJhbnNpdGlvbi5hc3QuZGVwQ291bnQ7cmV0dXJuIDA9PUN8fDA9PUk/Qy1JOnRoaXMuX2VuZ2luZS5kcml2ZXIuY29udGFpbnNFbGVtZW50KHYuZWxlbWVudCx5LmVsZW1lbnQpPzE6LTF9KX1kZXN0cm95''@;'; + put 'put ''KGcpe3RoaXMucGxheWVycy5mb3JFYWNoKGg9PmguZGVzdHJveSgpKSx0aGlzLl9zaWduYWxSZW1vdmFsRm9ySW5uZXJUcmlnZ2Vycyh0aGlzLmhvc3RFbGVtZW50LGcpfWVsZW1lbnRDb250YWluc0RhdGEoZyl7bGV0IGg9ITE7cmV0dXJuIHRoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuaGFzKGcp''@;'; + put 'put ''JiYoaD0hMCksaD0hIXRoaXMuX3F1ZXVlLmZpbmQodj0+di5lbGVtZW50PT09Zyl8fGgsaH19Y2xhc3MgWkZle2NvbnN0cnVjdG9yKGcsaCx2KXt0aGlzLmJvZHlOb2RlPWcsdGhpcy5kcml2ZXI9aCx0aGlzLl9ub3JtYWxpemVyPXYsdGhpcy5wbGF5ZXJzPVtdLHRoaXMubmV3SG9zdEVsZW1l''@;'; + put 'put ''bnRzPW5ldyBNYXAsdGhpcy5wbGF5ZXJzQnlFbGVtZW50PW5ldyBNYXAsdGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudD1uZXcgTWFwLHRoaXMuc3RhdGVzQnlFbGVtZW50PW5ldyBNYXAsdGhpcy5kaXNhYmxlZE5vZGVzPW5ldyBTZXQsdGhpcy50b3RhbEFuaW1hdGlvbnM9MCx0aGlzLnRv''@;'; + put 'put ''dGFsUXVldWVkUGxheWVycz0wLHRoaXMuX25hbWVzcGFjZUxvb2t1cD17fSx0aGlzLl9uYW1lc3BhY2VMaXN0PVtdLHRoaXMuX2ZsdXNoRm5zPVtdLHRoaXMuX3doZW5RdWlldEZucz1bXSx0aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50PW5ldyBNYXAsdGhpcy5jb2xsZWN0ZWRFbnRlckVs''@;'; + put 'put ''ZW1lbnRzPVtdLHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cz1bXSx0aGlzLm9uUmVtb3ZhbENvbXBsZXRlPSh5LEMpPT57fX1fb25SZW1vdmFsQ29tcGxldGUoZyxoKXt0aGlzLm9uUmVtb3ZhbENvbXBsZXRlKGcsaCl9Z2V0IHF1ZXVlZFBsYXllcnMoKXtjb25zdCBnPVtdO3JldHVybiB0''@;'; + put 'put ''aGlzLl9uYW1lc3BhY2VMaXN0LmZvckVhY2goaD0+e2gucGxheWVycy5mb3JFYWNoKHY9Pnt2LnF1ZXVlZCYmZy5wdXNoKHYpfSl9KSxnfWNyZWF0ZU5hbWVzcGFjZShnLGgpe2NvbnN0IHY9bmV3IGpGZShnLGgsdGhpcyk7cmV0dXJuIHRoaXMuYm9keU5vZGUmJnRoaXMuZHJpdmVyLmNvbnRh''@;'; + put 'put ''aW5zRWxlbWVudCh0aGlzLmJvZHlOb2RlLGgpP3RoaXMuX2JhbGFuY2VOYW1lc3BhY2VMaXN0KHYsaCk6KHRoaXMubmV3SG9zdEVsZW1lbnRzLnNldChoLHYpLHRoaXMuY29sbGVjdEVudGVyRWxlbWVudChoKSksdGhpcy5fbmFtZXNwYWNlTG9va3VwW2ddPXZ9X2JhbGFuY2VOYW1lc3BhY2VM''@;'; + put 'put ''aXN0KGcsaCl7Y29uc3Qgdj10aGlzLl9uYW1lc3BhY2VMaXN0LHk9dGhpcy5uYW1lc3BhY2VzQnlIb3N0RWxlbWVudDtpZih2Lmxlbmd0aC0xPj0wKXtsZXQgST0hMSxqPXRoaXMuZHJpdmVyLmdldFBhcmVudEVsZW1lbnQoaCk7Zm9yKDtqOyl7Y29uc3QgdWU9eS5nZXQoaik7aWYodWUpe2Nv''@;'; + put 'put ''bnN0IF9lPXYuaW5kZXhPZih1ZSk7di5zcGxpY2UoX2UrMSwwLGcpLEk9ITA7YnJlYWt9aj10aGlzLmRyaXZlci5nZXRQYXJlbnRFbGVtZW50KGopfUl8fHYudW5zaGlmdChnKX1lbHNlIHYucHVzaChnKTtyZXR1cm4geS5zZXQoaCxnKSxnfXJlZ2lzdGVyKGcsaCl7bGV0IHY9dGhpcy5fbmFt''@;'; + put 'put ''ZXNwYWNlTG9va3VwW2ddO3JldHVybiB2fHwodj10aGlzLmNyZWF0ZU5hbWVzcGFjZShnLGgpKSx2fXJlZ2lzdGVyVHJpZ2dlcihnLGgsdil7bGV0IHk9dGhpcy5fbmFtZXNwYWNlTG9va3VwW2ddO3kmJnkucmVnaXN0ZXIoaCx2KSYmdGhpcy50b3RhbEFuaW1hdGlvbnMrK31kZXN0cm95KGcs''@;'; + put 'put ''aCl7aWYoIWcpcmV0dXJuO2NvbnN0IHY9dGhpcy5fZmV0Y2hOYW1lc3BhY2UoZyk7dGhpcy5hZnRlckZsdXNoKCgpPT57dGhpcy5uYW1lc3BhY2VzQnlIb3N0RWxlbWVudC5kZWxldGUodi5ob3N0RWxlbWVudCksZGVsZXRlIHRoaXMuX25hbWVzcGFjZUxvb2t1cFtnXTtjb25zdCB5PXRoaXMu''@;'; + put 'put ''X25hbWVzcGFjZUxpc3QuaW5kZXhPZih2KTt5Pj0wJiZ0aGlzLl9uYW1lc3BhY2VMaXN0LnNwbGljZSh5LDEpfSksdGhpcy5hZnRlckZsdXNoQW5pbWF0aW9uc0RvbmUoKCk9PnYuZGVzdHJveShoKSl9X2ZldGNoTmFtZXNwYWNlKGcpe3JldHVybiB0aGlzLl9uYW1lc3BhY2VMb29rdXBbZ119''@;'; + put 'put ''ZmV0Y2hOYW1lc3BhY2VzQnlFbGVtZW50KGcpe2NvbnN0IGg9bmV3IFNldCx2PXRoaXMuc3RhdGVzQnlFbGVtZW50LmdldChnKTtpZih2KWZvcihsZXQgeSBvZiB2LnZhbHVlcygpKWlmKHkubmFtZXNwYWNlSWQpe2NvbnN0IEM9dGhpcy5fZmV0Y2hOYW1lc3BhY2UoeS5uYW1lc3BhY2VJZCk7''@;'; + put 'put ''QyYmaC5hZGQoQyl9cmV0dXJuIGh9dHJpZ2dlcihnLGgsdix5KXtpZihOcShoKSl7Y29uc3QgQz10aGlzLl9mZXRjaE5hbWVzcGFjZShnKTtpZihDKXJldHVybiBDLnRyaWdnZXIoaCx2LHkpLCEwfXJldHVybiExfWluc2VydE5vZGUoZyxoLHYseSl7aWYoIU5xKGgpKXJldHVybjtjb25zdCBD''@;'; + put 'put ''PWhbVHBdO2lmKEMmJkMuc2V0Rm9yUmVtb3ZhbCl7Qy5zZXRGb3JSZW1vdmFsPSExLEMuc2V0Rm9yTW92ZT0hMDtjb25zdCBJPXRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5pbmRleE9mKGgpO0k+PTAmJnRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5zcGxpY2UoSSwxKX1pZihnKXtj''@;'; + put 'put ''b25zdCBJPXRoaXMuX2ZldGNoTmFtZXNwYWNlKGcpO0kmJkkuaW5zZXJ0Tm9kZShoLHYpfXkmJnRoaXMuY29sbGVjdEVudGVyRWxlbWVudChoKX1jb2xsZWN0RW50ZXJFbGVtZW50KGcpe3RoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5wdXNoKGcpfW1hcmtFbGVtZW50QXNEaXNhYmxlZChn''@;'; + put 'put ''LGgpe2g/dGhpcy5kaXNhYmxlZE5vZGVzLmhhcyhnKXx8KHRoaXMuZGlzYWJsZWROb2Rlcy5hZGQoZyksSXAoZyxJaGUpKTp0aGlzLmRpc2FibGVkTm9kZXMuaGFzKGcpJiYodGhpcy5kaXNhYmxlZE5vZGVzLmRlbGV0ZShnKSxRTChnLEloZSkpfXJlbW92ZU5vZGUoZyxoLHYseSl7aWYoTnEo''@;'; + put 'put ''aCkpe2NvbnN0IEM9Zz90aGlzLl9mZXRjaE5hbWVzcGFjZShnKTpudWxsO2lmKEM/Qy5yZW1vdmVOb2RlKGgseSk6dGhpcy5tYXJrRWxlbWVudEFzUmVtb3ZlZChnLGgsITEseSksdil7Y29uc3QgST10aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50LmdldChoKTtJJiZJLmlkIT09ZyYmSS5y''@;'; + put 'put ''ZW1vdmVOb2RlKGgseSl9fWVsc2UgdGhpcy5fb25SZW1vdmFsQ29tcGxldGUoaCx5KX1tYXJrRWxlbWVudEFzUmVtb3ZlZChnLGgsdix5LEMpe3RoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5wdXNoKGgpLGhbVHBdPXtuYW1lc3BhY2VJZDpnLHNldEZvclJlbW92YWw6eSxoYXNBbmltYXRp''@;'; + put 'put ''b246dixyZW1vdmVkQmVmb3JlUXVlcmllZDohMSxwcmV2aW91c1RyaWdnZXJzVmFsdWVzOkN9fWxpc3RlbihnLGgsdix5LEMpe3JldHVybiBOcShoKT90aGlzLl9mZXRjaE5hbWVzcGFjZShnKS5saXN0ZW4oaCx2LHksQyk6KCk9Pnt9fV9idWlsZEluc3RydWN0aW9uKGcsaCx2LHksQyl7cmV0''@;'; + put 'put ''dXJuIGcudHJhbnNpdGlvbi5idWlsZCh0aGlzLmRyaXZlcixnLmVsZW1lbnQsZy5mcm9tU3RhdGUudmFsdWUsZy50b1N0YXRlLnZhbHVlLHYseSxnLmZyb21TdGF0ZS5vcHRpb25zLGcudG9TdGF0ZS5vcHRpb25zLGgsQyl9ZGVzdHJveUlubmVyQW5pbWF0aW9ucyhnKXtsZXQgaD10aGlzLmRy''@;'; + put 'put ''aXZlci5xdWVyeShnLEVxLCEwKTtoLmZvckVhY2godj0+dGhpcy5kZXN0cm95QWN0aXZlQW5pbWF0aW9uc0ZvckVsZW1lbnQodikpLDAhPXRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuc2l6ZSYmKGg9dGhpcy5kcml2ZXIucXVlcnkoZyx5aGUsITApLGguZm9yRWFjaCh2PT50aGlzLmZp''@;'; + put 'put ''bmlzaEFjdGl2ZVF1ZXJpZWRBbmltYXRpb25PbkVsZW1lbnQodikpKX1kZXN0cm95QWN0aXZlQW5pbWF0aW9uc0ZvckVsZW1lbnQoZyl7Y29uc3QgaD10aGlzLnBsYXllcnNCeUVsZW1lbnQuZ2V0KGcpO2gmJmguZm9yRWFjaCh2PT57di5xdWV1ZWQ/di5tYXJrZWRGb3JEZXN0cm95PSEwOnYu''@;'; + put 'put ''ZGVzdHJveSgpfSl9ZmluaXNoQWN0aXZlUXVlcmllZEFuaW1hdGlvbk9uRWxlbWVudChnKXtjb25zdCBoPXRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuZ2V0KGcpO2gmJmguZm9yRWFjaCh2PT52LmZpbmlzaCgpKX13aGVuUmVuZGVyaW5nRG9uZSgpe3JldHVybiBuZXcgUHJvbWlzZShn''@;'; + put 'put ''PT57aWYodGhpcy5wbGF5ZXJzLmxlbmd0aClyZXR1cm4gbXcodGhpcy5wbGF5ZXJzKS5vbkRvbmUoKCk9PmcoKSk7ZygpfSl9cHJvY2Vzc0xlYXZlTm9kZShnKXt2YXIgaDtjb25zdCB2PWdbVHBdO2lmKHYmJnYuc2V0Rm9yUmVtb3ZhbCl7aWYoZ1tUcF09Q3dlLHYubmFtZXNwYWNlSWQpe3Ro''@;'; + put 'put ''aXMuZGVzdHJveUlubmVyQW5pbWF0aW9ucyhnKTtjb25zdCB5PXRoaXMuX2ZldGNoTmFtZXNwYWNlKHYubmFtZXNwYWNlSWQpO3kmJnkuY2xlYXJFbGVtZW50Q2FjaGUoZyl9dGhpcy5fb25SZW1vdmFsQ29tcGxldGUoZyx2LnNldEZvclJlbW92YWwpfSEobnVsbD09PShoPWcuY2xhc3NMaXN0''@;'; + put 'put ''KXx8dm9pZCAwPT09aCkmJmguY29udGFpbnMoSWhlKSYmdGhpcy5tYXJrRWxlbWVudEFzRGlzYWJsZWQoZywhMSksdGhpcy5kcml2ZXIucXVlcnkoZywiLm5nLWFuaW1hdGUtZGlzYWJsZWQiLCEwKS5mb3JFYWNoKHk9Pnt0aGlzLm1hcmtFbGVtZW50QXNEaXNhYmxlZCh5LCExKX0pfWZsdXNo''@;'; + put 'put ''KGc9LTEpe2xldCBoPVtdO2lmKHRoaXMubmV3SG9zdEVsZW1lbnRzLnNpemUmJih0aGlzLm5ld0hvc3RFbGVtZW50cy5mb3JFYWNoKCh2LHkpPT50aGlzLl9iYWxhbmNlTmFtZXNwYWNlTGlzdCh2LHkpKSx0aGlzLm5ld0hvc3RFbGVtZW50cy5jbGVhcigpKSx0aGlzLnRvdGFsQW5pbWF0aW9u''@;'; + put 'put ''cyYmdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzLmxlbmd0aClmb3IobGV0IHY9MDt2PHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5sZW5ndGg7disrKUlwKHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50c1t2XSwibmctc3Rhci1pbnNlcnRlZCIpO2lmKHRoaXMuX25hbWVzcGFjZUxp''@;'; + put 'put ''c3QubGVuZ3RoJiYodGhpcy50b3RhbFF1ZXVlZFBsYXllcnN8fHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5sZW5ndGgpKXtjb25zdCB2PVtdO3RyeXtoPXRoaXMuX2ZsdXNoQW5pbWF0aW9ucyh2LGcpfWZpbmFsbHl7Zm9yKGxldCB5PTA7eTx2Lmxlbmd0aDt5Kyspdlt5XSgpfX1lbHNl''@;'; + put 'put ''IGZvcihsZXQgdj0wO3Y8dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aDt2KyspdGhpcy5wcm9jZXNzTGVhdmVOb2RlKHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50c1t2XSk7aWYodGhpcy50b3RhbFF1ZXVlZFBsYXllcnM9MCx0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHMu''@;'; + put 'put ''bGVuZ3RoPTAsdGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aD0wLHRoaXMuX2ZsdXNoRm5zLmZvckVhY2godj0+digpKSx0aGlzLl9mbHVzaEZucz1bXSx0aGlzLl93aGVuUXVpZXRGbnMubGVuZ3RoKXtjb25zdCB2PXRoaXMuX3doZW5RdWlldEZuczt0aGlzLl93aGVuUXVpZXRG''@;'; + put 'put ''bnM9W10saC5sZW5ndGg/bXcoaCkub25Eb25lKCgpPT57di5mb3JFYWNoKHk9PnkoKSl9KTp2LmZvckVhY2goeT0+eSgpKX19cmVwb3J0RXJyb3IoZyl7dGhyb3cgZnVuY3Rpb24gWlBlKGQpe3JldHVybiBuZXcgZW4oMzQwMiwhMSl9KCl9X2ZsdXNoQW5pbWF0aW9ucyhnLGgpe2NvbnN0IHY9''@;'; + put 'put ''bmV3IFBxLHk9W10sQz1uZXcgTWFwLEk9W10saj1uZXcgTWFwLHVlPW5ldyBNYXAsX2U9bmV3IE1hcCxCZT1uZXcgU2V0O3RoaXMuZGlzYWJsZWROb2Rlcy5mb3JFYWNoKFAwPT57QmUuYWRkKFAwKTtjb25zdCBybz10aGlzLmRyaXZlci5xdWVyeShQMCwiLm5nLWFuaW1hdGUtcXVldWVkIiwh''@;'; + put 'put ''MCk7Zm9yKGxldCBmbz0wO2ZvPHJvLmxlbmd0aDtmbysrKUJlLmFkZChyb1tmb10pfSk7Y29uc3QgTmU9dGhpcy5ib2R5Tm9kZSxLZT1BcnJheS5mcm9tKHRoaXMuc3RhdGVzQnlFbGVtZW50LmtleXMoKSksZHQ9TXdlKEtlLHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cyksT3Q9bmV3IE1h''@;'; + put 'put ''cDtsZXQgJHQ9MDtkdC5mb3JFYWNoKChQMCxybyk9Pntjb25zdCBmbz0ibmctZW50ZXIiKyR0Kys7T3Quc2V0KHJvLGZvKSxQMC5mb3JFYWNoKElhPT5JcChJYSxmbykpfSk7Y29uc3QgZm49W10sTG49bmV3IFNldCxpcj1uZXcgU2V0O2ZvcihsZXQgUDA9MDtQMDx0aGlzLmNvbGxlY3RlZExl''@;'; + put 'put ''YXZlRWxlbWVudHMubGVuZ3RoO1AwKyspe2NvbnN0IHJvPXRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50c1tQMF0sZm89cm9bVHBdO2ZvJiZmby5zZXRGb3JSZW1vdmFsJiYoZm4ucHVzaChybyksTG4uYWRkKHJvKSxmby5oYXNBbmltYXRpb24/dGhpcy5kcml2ZXIucXVlcnkocm8sIi5uZy1z''@;'; + put 'put ''dGFyLWluc2VydGVkIiwhMCkuZm9yRWFjaChJYT0+TG4uYWRkKElhKSk6aXIuYWRkKHJvKSl9Y29uc3QgbXI9bmV3IE1hcCxTcj1Nd2UoS2UsQXJyYXkuZnJvbShMbikpO1NyLmZvckVhY2goKFAwLHJvKT0+e2NvbnN0IGZvPVNxKyR0Kys7bXIuc2V0KHJvLGZvKSxQMC5mb3JFYWNoKElhPT5J''@;'; + put 'put ''cChJYSxmbykpfSksZy5wdXNoKCgpPT57ZHQuZm9yRWFjaCgoUDAscm8pPT57Y29uc3QgZm89T3QuZ2V0KHJvKTtQMC5mb3JFYWNoKElhPT5RTChJYSxmbykpfSksU3IuZm9yRWFjaCgoUDAscm8pPT57Y29uc3QgZm89bXIuZ2V0KHJvKTtQMC5mb3JFYWNoKElhPT5RTChJYSxmbykpfSksZm4u''@;'; + put 'put ''Zm9yRWFjaChQMD0+e3RoaXMucHJvY2Vzc0xlYXZlTm9kZShQMCl9KX0pO2NvbnN0IHdyPVtdLFFyPVtdO2ZvcihsZXQgUDA9dGhpcy5fbmFtZXNwYWNlTGlzdC5sZW5ndGgtMTtQMD49MDtQMC0tKXRoaXMuX25hbWVzcGFjZUxpc3RbUDBdLmRyYWluUXVldWVkVHJhbnNpdGlvbnMoaCkuZm9y''@;'; + put 'put ''RWFjaChmbz0+e2NvbnN0IElhPWZvLnBsYXllcixYbD1mby5lbGVtZW50O2lmKHdyLnB1c2goSWEpLHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5sZW5ndGgpe2NvbnN0IFhpPVhsW1RwXTtpZihYaSYmWGkuc2V0Rm9yTW92ZSl7aWYoWGkucHJldmlvdXNUcmlnZ2Vyc1ZhbHVlcyYmWGku''@;'; + put 'put ''cHJldmlvdXNUcmlnZ2Vyc1ZhbHVlcy5oYXMoZm8udHJpZ2dlck5hbWUpKXtjb25zdCBFMD1YaS5wcmV2aW91c1RyaWdnZXJzVmFsdWVzLmdldChmby50cmlnZ2VyTmFtZSksejA9dGhpcy5zdGF0ZXNCeUVsZW1lbnQuZ2V0KGZvLmVsZW1lbnQpO2lmKHowJiZ6MC5oYXMoZm8udHJpZ2dlck5h''@;'; + put 'put ''bWUpKXtjb25zdCBrbz16MC5nZXQoZm8udHJpZ2dlck5hbWUpO2tvLnZhbHVlPUUwLHowLnNldChmby50cmlnZ2VyTmFtZSxrbyl9fXJldHVybiB2b2lkIElhLmRlc3Ryb3koKX19Y29uc3QgRm49IU5lfHwhdGhpcy5kcml2ZXIuY29udGFpbnNFbGVtZW50KE5lLFhsKSxabj1tci5nZXQoWGwp''@;'; + put 'put ''LF9yPU90LmdldChYbCksWHI9dGhpcy5fYnVpbGRJbnN0cnVjdGlvbihmbyx2LF9yLFpuLEZuKTtpZihYci5lcnJvcnMmJlhyLmVycm9ycy5sZW5ndGgpcmV0dXJuIHZvaWQgUXIucHVzaChYcik7aWYoRm4pcmV0dXJuIElhLm9uU3RhcnQoKCk9PnZTKFhsLFhyLmZyb21TdHlsZXMpKSxJYS5v''@;'; + put 'put ''bkRlc3Ryb3koKCk9PkNnKFhsLFhyLnRvU3R5bGVzKSksdm9pZCB5LnB1c2goSWEpO2lmKGZvLmlzRmFsbGJhY2tUcmFuc2l0aW9uKXJldHVybiBJYS5vblN0YXJ0KCgpPT52UyhYbCxYci5mcm9tU3R5bGVzKSksSWEub25EZXN0cm95KCgpPT5DZyhYbCxYci50b1N0eWxlcykpLHZvaWQgeS5w''@;'; + put 'put ''dXNoKElhKTtjb25zdCBjaT1bXTtYci50aW1lbGluZXMuZm9yRWFjaChYaT0+e1hpLnN0cmV0Y2hTdGFydGluZ0tleWZyYW1lPSEwLHRoaXMuZGlzYWJsZWROb2Rlcy5oYXMoWGkuZWxlbWVudCl8fGNpLnB1c2goWGkpfSksWHIudGltZWxpbmVzPWNpLHYuYXBwZW5kKFhsLFhyLnRpbWVsaW5l''@;'; + put 'put ''cyksSS5wdXNoKHtpbnN0cnVjdGlvbjpYcixwbGF5ZXI6SWEsZWxlbWVudDpYbH0pLFhyLnF1ZXJpZWRFbGVtZW50cy5mb3JFYWNoKFhpPT5kNChqLFhpLFtdKS5wdXNoKElhKSksWHIucHJlU3R5bGVQcm9wcy5mb3JFYWNoKChYaSxFMCk9PntpZihYaS5zaXplKXtsZXQgejA9dWUuZ2V0KEUw''@;'; + put 'put ''KTt6MHx8dWUuc2V0KEUwLHowPW5ldyBTZXQpLFhpLmZvckVhY2goKGtvLHdvKT0+ejAuYWRkKHdvKSl9fSksWHIucG9zdFN0eWxlUHJvcHMuZm9yRWFjaCgoWGksRTApPT57bGV0IHowPV9lLmdldChFMCk7ejB8fF9lLnNldChFMCx6MD1uZXcgU2V0KSxYaS5mb3JFYWNoKChrbyx3byk9Pnow''@;'; + put 'put ''LmFkZCh3bykpfSl9KTtpZihRci5sZW5ndGgpe2NvbnN0IFAwPVtdO1FyLmZvckVhY2gocm89PntQMC5wdXNoKGZ1bmN0aW9uIHpQZShkLGcpe3JldHVybiBuZXcgZW4oMzUwNSwhMSl9KCkpfSksd3IuZm9yRWFjaChybz0+cm8uZGVzdHJveSgpKSx0aGlzLnJlcG9ydEVycm9yKFAwKX1jb25z''@;'; + put 'put ''dCB5aT1uZXcgTWFwLEtpPW5ldyBNYXA7SS5mb3JFYWNoKFAwPT57Y29uc3Qgcm89UDAuZWxlbWVudDt2LmhhcyhybykmJihLaS5zZXQocm8scm8pLHRoaXMuX2JlZm9yZUFuaW1hdGlvbkJ1aWxkKFAwLnBsYXllci5uYW1lc3BhY2VJZCxQMC5pbnN0cnVjdGlvbix5aSkpfSkseS5mb3JFYWNo''@;'; + put 'put ''KFAwPT57Y29uc3Qgcm89UDAuZWxlbWVudDt0aGlzLl9nZXRQcmV2aW91c1BsYXllcnMocm8sITEsUDAubmFtZXNwYWNlSWQsUDAudHJpZ2dlck5hbWUsbnVsbCkuZm9yRWFjaChJYT0+e2Q0KHlpLHJvLFtdKS5wdXNoKElhKSxJYS5kZXN0cm95KCl9KX0pO2NvbnN0IFNvPWZuLmZpbHRlcihQ''@;'; + put 'put ''MD0+eHdlKFAwLHVlLF9lKSksUG89bmV3IE1hcDtTd2UoUG8sdGhpcy5kcml2ZXIsaXIsX2UsbjgpLmZvckVhY2goUDA9Pnt4d2UoUDAsdWUsX2UpJiZTby5wdXNoKFAwKX0pO2NvbnN0IEphPW5ldyBNYXA7ZHQuZm9yRWFjaCgoUDAscm8pPT57U3dlKEphLHRoaXMuZHJpdmVyLG5ldyBTZXQo''@;'; + put 'put ''UDApLHVlLCIhIil9KSxTby5mb3JFYWNoKFAwPT57dmFyIHJvLGZvO2NvbnN0IElhPVBvLmdldChQMCksWGw9SmEuZ2V0KFAwKTtQby5zZXQoUDAsbmV3IE1hcChbLi4uQXJyYXkuZnJvbShudWxsIT09KHJvPW51bGw9PUlhP3ZvaWQgMDpJYS5lbnRyaWVzKCkpJiZ2b2lkIDAhPT1ybz9ybzpb''@;'; + put 'put ''XSksLi4uQXJyYXkuZnJvbShudWxsIT09KGZvPW51bGw9PVhsP3ZvaWQgMDpYbC5lbnRyaWVzKCkpJiZ2b2lkIDAhPT1mbz9mbzpbXSldKSl9KTtjb25zdCBsYT1bXSxhbD1bXSxMcz17fTtJLmZvckVhY2goUDA9Pntjb25zdHtlbGVtZW50OnJvLHBsYXllcjpmbyxpbnN0cnVjdGlvbjpJYX09''@;'; + put 'put ''UDA7aWYodi5oYXMocm8pKXtpZihCZS5oYXMocm8pKXJldHVybiBmby5vbkRlc3Ryb3koKCk9PkNnKHJvLElhLnRvU3R5bGVzKSksZm8uZGlzYWJsZWQ9ITAsZm8ub3ZlcnJpZGVUb3RhbFRpbWUoSWEudG90YWxUaW1lKSx2b2lkIHkucHVzaChmbyk7bGV0IFhsPUxzO2lmKEtpLnNpemU+MSl7''@;'; + put 'put ''bGV0IFpuPXJvO2NvbnN0IF9yPVtdO2Zvcig7Wm49Wm4ucGFyZW50Tm9kZTspe2NvbnN0IFhyPUtpLmdldChabik7aWYoWHIpe1hsPVhyO2JyZWFrfV9yLnB1c2goWm4pfV9yLmZvckVhY2goWHI9PktpLnNldChYcixYbCkpfWNvbnN0IEZuPXRoaXMuX2J1aWxkQW5pbWF0aW9uKGZvLm5hbWVz''@;'; + put 'put ''cGFjZUlkLElhLHlpLEMsSmEsUG8pO2lmKGZvLnNldFJlYWxQbGF5ZXIoRm4pLFhsPT09THMpbGEucHVzaChmbyk7ZWxzZXtjb25zdCBabj10aGlzLnBsYXllcnNCeUVsZW1lbnQuZ2V0KFhsKTtabiYmWm4ubGVuZ3RoJiYoZm8ucGFyZW50UGxheWVyPW13KFpuKSkseS5wdXNoKGZvKX19ZWxz''@;'; + put 'put ''ZSB2UyhybyxJYS5mcm9tU3R5bGVzKSxmby5vbkRlc3Ryb3koKCk9PkNnKHJvLElhLnRvU3R5bGVzKSksYWwucHVzaChmbyksQmUuaGFzKHJvKSYmeS5wdXNoKGZvKX0pLGFsLmZvckVhY2goUDA9Pntjb25zdCBybz1DLmdldChQMC5lbGVtZW50KTtpZihybyYmcm8ubGVuZ3RoKXtjb25zdCBm''@;'; + put 'put ''bz1tdyhybyk7UDAuc2V0UmVhbFBsYXllcihmbyl9fSkseS5mb3JFYWNoKFAwPT57UDAucGFyZW50UGxheWVyP1AwLnN5bmNQbGF5ZXJFdmVudHMoUDAucGFyZW50UGxheWVyKTpQMC5kZXN0cm95KCl9KTtmb3IobGV0IFAwPTA7UDA8Zm4ubGVuZ3RoO1AwKyspe2NvbnN0IHJvPWZuW1AwXSxm''@;'; + put 'put ''bz1yb1tUcF07aWYoUUwocm8sU3EpLGZvJiZmby5oYXNBbmltYXRpb24pY29udGludWU7bGV0IElhPVtdO2lmKGouc2l6ZSl7bGV0IEZuPWouZ2V0KHJvKTtGbiYmRm4ubGVuZ3RoJiZJYS5wdXNoKC4uLkZuKTtsZXQgWm49dGhpcy5kcml2ZXIucXVlcnkocm8seWhlLCEwKTtmb3IobGV0IF9y''@;'; + put 'put ''PTA7X3I8Wm4ubGVuZ3RoO19yKyspe2xldCBYcj1qLmdldChabltfcl0pO1hyJiZYci5sZW5ndGgmJklhLnB1c2goLi4uWHIpfX1jb25zdCBYbD1JYS5maWx0ZXIoRm49PiFGbi5kZXN0cm95ZWQpO1hsLmxlbmd0aD9ZRmUodGhpcyxybyxYbCk6dGhpcy5wcm9jZXNzTGVhdmVOb2RlKHJvKX1y''@;'; + put 'put ''ZXR1cm4gZm4ubGVuZ3RoPTAsbGEuZm9yRWFjaChQMD0+e3RoaXMucGxheWVycy5wdXNoKFAwKSxQMC5vbkRvbmUoKCk9PntQMC5kZXN0cm95KCk7Y29uc3Qgcm89dGhpcy5wbGF5ZXJzLmluZGV4T2YoUDApO3RoaXMucGxheWVycy5zcGxpY2Uocm8sMSl9KSxQMC5wbGF5KCl9KSxsYX1lbGVt''@;'; + put 'put ''ZW50Q29udGFpbnNEYXRhKGcsaCl7bGV0IHY9ITE7Y29uc3QgeT1oW1RwXTtyZXR1cm4geSYmeS5zZXRGb3JSZW1vdmFsJiYodj0hMCksdGhpcy5wbGF5ZXJzQnlFbGVtZW50LmhhcyhoKSYmKHY9ITApLHRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuaGFzKGgpJiYodj0hMCksdGhpcy5z''@;'; + put 'put ''dGF0ZXNCeUVsZW1lbnQuaGFzKGgpJiYodj0hMCksdGhpcy5fZmV0Y2hOYW1lc3BhY2UoZykuZWxlbWVudENvbnRhaW5zRGF0YShoKXx8dn1hZnRlckZsdXNoKGcpe3RoaXMuX2ZsdXNoRm5zLnB1c2goZyl9YWZ0ZXJGbHVzaEFuaW1hdGlvbnNEb25lKGcpe3RoaXMuX3doZW5RdWlldEZucy5w''@;'; + put 'put ''dXNoKGcpfV9nZXRQcmV2aW91c1BsYXllcnMoZyxoLHYseSxDKXtsZXQgST1bXTtpZihoKXtjb25zdCBqPXRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuZ2V0KGcpO2omJihJPWopfWVsc2V7Y29uc3Qgaj10aGlzLnBsYXllcnNCeUVsZW1lbnQuZ2V0KGcpO2lmKGope2NvbnN0IHVlPSFD''@;'; + put 'put ''fHxDPT1fWjtqLmZvckVhY2goX2U9PntfZS5xdWV1ZWR8fCF1ZSYmX2UudHJpZ2dlck5hbWUhPXl8fEkucHVzaChfZSl9KX19cmV0dXJuKHZ8fHkpJiYoST1JLmZpbHRlcihqPT4hKHYmJnYhPWoubmFtZXNwYWNlSWR8fHkmJnkhPWoudHJpZ2dlck5hbWUpKSksSX1fYmVmb3JlQW5pbWF0aW9u''@;'; + put 'put ''QnVpbGQoZyxoLHYpe2NvbnN0IEM9aC5lbGVtZW50LEk9aC5pc1JlbW92YWxUcmFuc2l0aW9uP3ZvaWQgMDpnLGo9aC5pc1JlbW92YWxUcmFuc2l0aW9uP3ZvaWQgMDpoLnRyaWdnZXJOYW1lO2Zvcihjb25zdCB1ZSBvZiBoLnRpbWVsaW5lcyl7Y29uc3QgX2U9dWUuZWxlbWVudCxCZT1fZSE9''@;'; + put 'put ''PUMsTmU9ZDQodixfZSxbXSk7dGhpcy5fZ2V0UHJldmlvdXNQbGF5ZXJzKF9lLEJlLEksaixoLnRvU3RhdGUpLmZvckVhY2goZHQ9Pntjb25zdCBPdD1kdC5nZXRSZWFsUGxheWVyKCk7T3QuYmVmb3JlRGVzdHJveSYmT3QuYmVmb3JlRGVzdHJveSgpLGR0LmRlc3Ryb3koKSxOZS5wdXNoKGR0''@;'; + put 'put ''KX0pfXZTKEMsaC5mcm9tU3R5bGVzKX1fYnVpbGRBbmltYXRpb24oZyxoLHYseSxDLEkpe2NvbnN0IGo9aC50cmlnZ2VyTmFtZSx1ZT1oLmVsZW1lbnQsX2U9W10sQmU9bmV3IFNldCxOZT1uZXcgU2V0LEtlPWgudGltZWxpbmVzLm1hcChPdD0+e2NvbnN0ICR0PU90LmVsZW1lbnQ7QmUuYWRk''@;'; + put 'put ''KCR0KTtjb25zdCBmbj0kdFtUcF07aWYoZm4mJmZuLnJlbW92ZWRCZWZvcmVRdWVyaWVkKXJldHVybiBuZXcgeGsoT3QuZHVyYXRpb24sT3QuZGVsYXkpO2NvbnN0IExuPSR0IT09dWUsaXI9ZnVuY3Rpb24gVUZlKGQpe2NvbnN0IGc9W107cmV0dXJuIEV3ZShkLGcpLGd9KCh2LmdldCgkdCl8''@;'; + put 'put ''fE5GZSkubWFwKHlpPT55aS5nZXRSZWFsUGxheWVyKCkpKS5maWx0ZXIoeWk9PiEheWkuZWxlbWVudCYmeWkuZWxlbWVudD09PSR0KSxtcj1DLmdldCgkdCksU3I9SS5nZXQoJHQpLHdyPXF5ZSgwLHRoaXMuX25vcm1hbGl6ZXIsMCxPdC5rZXlmcmFtZXMsbXIsU3IpLFFyPXRoaXMuX2J1aWxk''@;'; + put 'put ''UGxheWVyKE90LHdyLGlyKTtpZihPdC5zdWJUaW1lbGluZSYmeSYmTmUuYWRkKCR0KSxMbil7Y29uc3QgeWk9bmV3IE9oZShnLGosJHQpO3lpLnNldFJlYWxQbGF5ZXIoUXIpLF9lLnB1c2goeWkpfXJldHVybiBRcn0pO19lLmZvckVhY2goT3Q9PntkNCh0aGlzLnBsYXllcnNCeVF1ZXJpZWRF''@;'; + put 'put ''bGVtZW50LE90LmVsZW1lbnQsW10pLnB1c2goT3QpLE90Lm9uRG9uZSgoKT0+ZnVuY3Rpb24gekZlKGQsZyxoKXtsZXQgdj1kLmdldChnKTtpZih2KXtpZih2Lmxlbmd0aCl7Y29uc3QgeT12LmluZGV4T2YoaCk7di5zcGxpY2UoeSwxKX0wPT12Lmxlbmd0aCYmZC5kZWxldGUoZyl9cmV0dXJu''@;'; + put 'put ''IHZ9KHRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQsT3QuZWxlbWVudCxPdCkpfSksQmUuZm9yRWFjaChPdD0+SXAoT3Qsc3dlKSk7Y29uc3QgZHQ9bXcoS2UpO3JldHVybiBkdC5vbkRlc3Ryb3koKCk9PntCZS5mb3JFYWNoKE90PT5RTChPdCxzd2UpKSxDZyh1ZSxoLnRvU3R5bGVzKX0p''@;'; + put 'put ''LE5lLmZvckVhY2goT3Q9PntkNCh5LE90LFtdKS5wdXNoKGR0KX0pLGR0fV9idWlsZFBsYXllcihnLGgsdil7cmV0dXJuIGgubGVuZ3RoPjA/dGhpcy5kcml2ZXIuYW5pbWF0ZShnLmVsZW1lbnQsaCxnLmR1cmF0aW9uLGcuZGVsYXksZy5lYXNpbmcsdik6bmV3IHhrKGcuZHVyYXRpb24sZy5k''@;'; + put 'put ''ZWxheSl9fWNsYXNzIE9oZXtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5uYW1lc3BhY2VJZD1nLHRoaXMudHJpZ2dlck5hbWU9aCx0aGlzLmVsZW1lbnQ9dix0aGlzLl9wbGF5ZXI9bmV3IHhrLHRoaXMuX2NvbnRhaW5zUmVhbFBsYXllcj0hMSx0aGlzLl9xdWV1ZWRDYWxsYmFja3M9bmV3IE1h''@;'; + put 'put ''cCx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLm1hcmtlZEZvckRlc3Ryb3k9ITEsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLnF1ZXVlZD0hMCx0aGlzLnRvdGFsVGltZT0wfXNldFJlYWxQbGF5ZXIoZyl7dGhpcy5fY29udGFpbnNSZWFsUGxheWVyfHwodGhpcy5fcGxheWVyPWcsdGhpcy5fcXVldWVk''@;'; + put 'put ''Q2FsbGJhY2tzLmZvckVhY2goKGgsdik9PntoLmZvckVhY2goeT0+aGhlKGcsdix2b2lkIDAseSkpfSksdGhpcy5fcXVldWVkQ2FsbGJhY2tzLmNsZWFyKCksdGhpcy5fY29udGFpbnNSZWFsUGxheWVyPSEwLHRoaXMub3ZlcnJpZGVUb3RhbFRpbWUoZy50b3RhbFRpbWUpLHRoaXMucXVldWVk''@;'; + put 'put ''PSExKX1nZXRSZWFsUGxheWVyKCl7cmV0dXJuIHRoaXMuX3BsYXllcn1vdmVycmlkZVRvdGFsVGltZShnKXt0aGlzLnRvdGFsVGltZT1nfXN5bmNQbGF5ZXJFdmVudHMoZyl7Y29uc3QgaD10aGlzLl9wbGF5ZXI7aC50cmlnZ2VyQ2FsbGJhY2smJmcub25TdGFydCgoKT0+aC50cmlnZ2VyQ2Fs''@;'; + put 'put ''bGJhY2soInN0YXJ0IikpLGcub25Eb25lKCgpPT50aGlzLmZpbmlzaCgpKSxnLm9uRGVzdHJveSgoKT0+dGhpcy5kZXN0cm95KCkpfV9xdWV1ZUV2ZW50KGcsaCl7ZDQodGhpcy5fcXVldWVkQ2FsbGJhY2tzLGcsW10pLnB1c2goaCl9b25Eb25lKGcpe3RoaXMucXVldWVkJiZ0aGlzLl9xdWV1''@;'; + put 'put ''ZUV2ZW50KCJkb25lIixnKSx0aGlzLl9wbGF5ZXIub25Eb25lKGcpfW9uU3RhcnQoZyl7dGhpcy5xdWV1ZWQmJnRoaXMuX3F1ZXVlRXZlbnQoInN0YXJ0IixnKSx0aGlzLl9wbGF5ZXIub25TdGFydChnKX1vbkRlc3Ryb3koZyl7dGhpcy5xdWV1ZWQmJnRoaXMuX3F1ZXVlRXZlbnQoImRlc3Ry''@;'; + put 'put ''b3kiLGcpLHRoaXMuX3BsYXllci5vbkRlc3Ryb3koZyl9aW5pdCgpe3RoaXMuX3BsYXllci5pbml0KCl9aGFzU3RhcnRlZCgpe3JldHVybiF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLmhhc1N0YXJ0ZWQoKX1wbGF5KCl7IXRoaXMucXVldWVkJiZ0aGlzLl9wbGF5ZXIucGxheSgpfXBhdXNl''@;'; + put 'put ''KCl7IXRoaXMucXVldWVkJiZ0aGlzLl9wbGF5ZXIucGF1c2UoKX1yZXN0YXJ0KCl7IXRoaXMucXVldWVkJiZ0aGlzLl9wbGF5ZXIucmVzdGFydCgpfWZpbmlzaCgpe3RoaXMuX3BsYXllci5maW5pc2goKX1kZXN0cm95KCl7dGhpcy5kZXN0cm95ZWQ9ITAsdGhpcy5fcGxheWVyLmRlc3Ryb3ko''@;'; + put 'put ''KX1yZXNldCgpeyF0aGlzLnF1ZXVlZCYmdGhpcy5fcGxheWVyLnJlc2V0KCl9c2V0UG9zaXRpb24oZyl7dGhpcy5xdWV1ZWR8fHRoaXMuX3BsYXllci5zZXRQb3NpdGlvbihnKX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLnF1ZXVlZD8wOnRoaXMuX3BsYXllci5nZXRQb3NpdGlvbigpfXRy''@;'; + put 'put ''aWdnZXJDYWxsYmFjayhnKXtjb25zdCBoPXRoaXMuX3BsYXllcjtoLnRyaWdnZXJDYWxsYmFjayYmaC50cmlnZ2VyQ2FsbGJhY2soZyl9fWZ1bmN0aW9uIE5xKGQpe3JldHVybiBkJiYxPT09ZC5ub2RlVHlwZX1mdW5jdGlvbiBrd2UoZCxnKXtjb25zdCBoPWQuc3R5bGUuZGlzcGxheTtyZXR1''@;'; + put 'put ''cm4gZC5zdHlsZS5kaXNwbGF5PW51bGwhPWc/Zzoibm9uZSIsaH1mdW5jdGlvbiBTd2UoZCxnLGgsdix5KXtjb25zdCBDPVtdO2guZm9yRWFjaCh1ZT0+Qy5wdXNoKGt3ZSh1ZSkpKTtjb25zdCBJPVtdO3YuZm9yRWFjaCgodWUsX2UpPT57Y29uc3QgQmU9bmV3IE1hcDt1ZS5mb3JFYWNoKE5l''@;'; + put 'put ''PT57Y29uc3QgS2U9Zy5jb21wdXRlU3R5bGUoX2UsTmUseSk7QmUuc2V0KE5lLEtlKSwoIUtlfHwwPT1LZS5sZW5ndGgpJiYoX2VbVHBdPVZGZSxJLnB1c2goX2UpKX0pLGQuc2V0KF9lLEJlKX0pO2xldCBqPTA7cmV0dXJuIGguZm9yRWFjaCh1ZT0+a3dlKHVlLENbaisrXSkpLEl9ZnVuY3Rp''@;'; + put 'put ''b24gTXdlKGQsZyl7Y29uc3QgaD1uZXcgTWFwO2lmKGQuZm9yRWFjaChqPT5oLnNldChqLFtdKSksMD09Zy5sZW5ndGgpcmV0dXJuIGg7Y29uc3QgeT1uZXcgU2V0KGcpLEM9bmV3IE1hcDtmdW5jdGlvbiBJKGope2lmKCFqKXJldHVybiAxO2xldCB1ZT1DLmdldChqKTtpZih1ZSlyZXR1cm4g''@;'; + put 'put ''dWU7Y29uc3QgX2U9ai5wYXJlbnROb2RlO3JldHVybiB1ZT1oLmhhcyhfZSk/X2U6eS5oYXMoX2UpPzE6SShfZSksQy5zZXQoaix1ZSksdWV9cmV0dXJuIGcuZm9yRWFjaChqPT57Y29uc3QgdWU9SShqKTsxIT09dWUmJmguZ2V0KHVlKS5wdXNoKGopfSksaH1mdW5jdGlvbiBJcChkLGcpe3Zh''@;'; + put 'put ''ciBoO251bGw9PT0oaD1kLmNsYXNzTGlzdCl8fHZvaWQgMD09PWh8fGguYWRkKGcpfWZ1bmN0aW9uIFFMKGQsZyl7dmFyIGg7bnVsbD09PShoPWQuY2xhc3NMaXN0KXx8dm9pZCAwPT09aHx8aC5yZW1vdmUoZyl9ZnVuY3Rpb24gWUZlKGQsZyxoKXttdyhoKS5vbkRvbmUoKCk9PmQucHJvY2Vz''@;'; + put 'put ''c0xlYXZlTm9kZShnKSl9ZnVuY3Rpb24gRXdlKGQsZyl7Zm9yKGxldCBoPTA7aDxkLmxlbmd0aDtoKyspe2NvbnN0IHY9ZFtoXTt2IGluc3RhbmNlb2Ygejc/RXdlKHYucGxheWVycyxnKTpnLnB1c2godil9fWZ1bmN0aW9uIHh3ZShkLGcsaCl7Y29uc3Qgdj1oLmdldChkKTtpZighdilyZXR1''@;'; + put 'put ''cm4hMTtsZXQgeT1nLmdldChkKTtyZXR1cm4geT92LmZvckVhY2goQz0+eS5hZGQoQykpOmcuc2V0KGQsdiksaC5kZWxldGUoZCksITB9Y2xhc3MgVnF7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMuYm9keU5vZGU9Zyx0aGlzLl9kcml2ZXI9aCx0aGlzLl9ub3JtYWxpemVyPXYsdGhpcy5fdHJp''@;'; + put 'put ''Z2dlckNhY2hlPXt9LHRoaXMub25SZW1vdmFsQ29tcGxldGU9KHksQyk9Pnt9LHRoaXMuX3RyYW5zaXRpb25FbmdpbmU9bmV3IFpGZShnLGgsdiksdGhpcy5fdGltZWxpbmVFbmdpbmU9bmV3IFJGZShnLGgsdiksdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5vblJlbW92YWxDb21wbGV0ZT0oeSxD''@;'; + put 'put ''KT0+dGhpcy5vblJlbW92YWxDb21wbGV0ZSh5LEMpfXJlZ2lzdGVyVHJpZ2dlcihnLGgsdix5LEMpe2NvbnN0IEk9ZysiLSIreTtsZXQgaj10aGlzLl90cmlnZ2VyQ2FjaGVbSV07aWYoIWope2NvbnN0IHVlPVtdLEJlPUNoZSh0aGlzLl9kcml2ZXIsQyx1ZSxbXSk7aWYodWUubGVuZ3RoKXRo''@;'; + put 'put ''cm93IGZ1bmN0aW9uIExQZShkLGcpe3JldHVybiBuZXcgZW4oMzQwNCwhMSl9KCk7aj1mdW5jdGlvbiBJRmUoZCxnLGgpe3JldHVybiBuZXcgREZlKGQsZyxoKX0oeSxCZSx0aGlzLl9ub3JtYWxpemVyKSx0aGlzLl90cmlnZ2VyQ2FjaGVbSV09an10aGlzLl90cmFuc2l0aW9uRW5naW5lLnJl''@;'; + put 'put ''Z2lzdGVyVHJpZ2dlcihoLHksail9cmVnaXN0ZXIoZyxoKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLnJlZ2lzdGVyKGcsaCl9ZGVzdHJveShnLGgpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUuZGVzdHJveShnLGgpfW9uSW5zZXJ0KGcsaCx2LHkpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUuaW5z''@;'; + put 'put ''ZXJ0Tm9kZShnLGgsdix5KX1vblJlbW92ZShnLGgsdix5KXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLnJlbW92ZU5vZGUoZyxoLHl8fCExLHYpfWRpc2FibGVBbmltYXRpb25zKGcsaCl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5tYXJrRWxlbWVudEFzRGlzYWJsZWQoZyxoKX1wcm9jZXNzKGcs''@;'; + put 'put ''aCx2LHkpe2lmKCJAIj09di5jaGFyQXQoMCkpe2NvbnN0W0MsSV09ZXdlKHYpO3RoaXMuX3RpbWVsaW5lRW5naW5lLmNvbW1hbmQoQyxoLEkseSl9ZWxzZSB0aGlzLl90cmFuc2l0aW9uRW5naW5lLnRyaWdnZXIoZyxoLHYseSl9bGlzdGVuKGcsaCx2LHksQyl7aWYoIkAiPT12LmNoYXJBdCgw''@;'; + put 'put ''KSl7Y29uc3RbSSxqXT1ld2Uodik7cmV0dXJuIHRoaXMuX3RpbWVsaW5lRW5naW5lLmxpc3RlbihJLGgsaixDKX1yZXR1cm4gdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5saXN0ZW4oZyxoLHYseSxDKX1mbHVzaChnPS0xKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLmZsdXNoKGcpfWdldCBwbGF5''@;'; + put 'put ''ZXJzKCl7cmV0dXJuIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUucGxheWVycy5jb25jYXQodGhpcy5fdGltZWxpbmVFbmdpbmUucGxheWVycyl9d2hlblJlbmRlcmluZ0RvbmUoKXtyZXR1cm4gdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS53aGVuUmVuZGVyaW5nRG9uZSgpfX1sZXQgWEZlPSgoKT0+''@;'; + put 'put ''e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuX2VsZW1lbnQ9aCx0aGlzLl9zdGFydFN0eWxlcz12LHRoaXMuX2VuZFN0eWxlcz15LHRoaXMuX3N0YXRlPTA7bGV0IEM9ZC5pbml0aWFsU3R5bGVzQnlFbGVtZW50LmdldChoKTtDfHxkLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQuc2V0''@;'; + put 'put ''KGgsQz1uZXcgTWFwKSx0aGlzLl9pbml0aWFsU3R5bGVzPUN9c3RhcnQoKXt0aGlzLl9zdGF0ZTwxJiYodGhpcy5fc3RhcnRTdHlsZXMmJkNnKHRoaXMuX2VsZW1lbnQsdGhpcy5fc3RhcnRTdHlsZXMsdGhpcy5faW5pdGlhbFN0eWxlcyksdGhpcy5fc3RhdGU9MSl9ZmluaXNoKCl7dGhpcy5z''@;'; + put 'put ''dGFydCgpLHRoaXMuX3N0YXRlPDImJihDZyh0aGlzLl9lbGVtZW50LHRoaXMuX2luaXRpYWxTdHlsZXMpLHRoaXMuX2VuZFN0eWxlcyYmKENnKHRoaXMuX2VsZW1lbnQsdGhpcy5fZW5kU3R5bGVzKSx0aGlzLl9lbmRTdHlsZXM9bnVsbCksdGhpcy5fc3RhdGU9MSl9ZGVzdHJveSgpe3RoaXMu''@;'; + put 'put ''ZmluaXNoKCksdGhpcy5fc3RhdGU8MyYmKGQuaW5pdGlhbFN0eWxlc0J5RWxlbWVudC5kZWxldGUodGhpcy5fZWxlbWVudCksdGhpcy5fc3RhcnRTdHlsZXMmJih2Uyh0aGlzLl9lbGVtZW50LHRoaXMuX3N0YXJ0U3R5bGVzKSx0aGlzLl9lbmRTdHlsZXM9bnVsbCksdGhpcy5fZW5kU3R5bGVz''@;'; + put 'put ''JiYodlModGhpcy5fZWxlbWVudCx0aGlzLl9lbmRTdHlsZXMpLHRoaXMuX2VuZFN0eWxlcz1udWxsKSxDZyh0aGlzLl9lbGVtZW50LHRoaXMuX2luaXRpYWxTdHlsZXMpLHRoaXMuX3N0YXRlPTMpfX1yZXR1cm4gZC5pbml0aWFsU3R5bGVzQnlFbGVtZW50PW5ldyBXZWFrTWFwLGR9KSgpO2Z1''@;'; + put 'put ''bmN0aW9uIFJoZShkKXtsZXQgZz1udWxsO3JldHVybiBkLmZvckVhY2goKGgsdik9PnsoZnVuY3Rpb24gS0ZlKGQpe3JldHVybiJkaXNwbGF5Ij09PWR8fCJwb3NpdGlvbiI9PT1kfSkodikmJihnPWd8fG5ldyBNYXAsZy5zZXQodixoKSl9KSxnfWNsYXNzIFR3ZXtjb25zdHJ1Y3RvcihnLGgs''@;'; + put 'put ''dix5KXt0aGlzLmVsZW1lbnQ9Zyx0aGlzLmtleWZyYW1lcz1oLHRoaXMub3B0aW9ucz12LHRoaXMuX3NwZWNpYWxTdHlsZXM9eSx0aGlzLl9vbkRvbmVGbnM9W10sdGhpcy5fb25TdGFydEZucz1bXSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10sdGhpcy5faW5pdGlhbGl6ZWQ9ITEsdGhpcy5fZmlu''@;'; + put 'put ''aXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fb3JpZ2luYWxPbkRvbmVGbnM9W10sdGhpcy5fb3JpZ2luYWxPblN0YXJ0Rm5zPVtdLHRoaXMudGltZT0wLHRoaXMucGFyZW50UGxheWVyPW51bGwsdGhpcy5jdXJyZW50U25hcHNob3Q9bmV3IE1hcCx0''@;'; + put 'put ''aGlzLl9kdXJhdGlvbj12LmR1cmF0aW9uLHRoaXMuX2RlbGF5PXYuZGVsYXl8fDAsdGhpcy50aW1lPXRoaXMuX2R1cmF0aW9uK3RoaXMuX2RlbGF5fV9vbkZpbmlzaCgpe3RoaXMuX2ZpbmlzaGVkfHwodGhpcy5fZmluaXNoZWQ9ITAsdGhpcy5fb25Eb25lRm5zLmZvckVhY2goZz0+ZygpKSx0''@;'; + put 'put ''aGlzLl9vbkRvbmVGbnM9W10pfWluaXQoKXt0aGlzLl9idWlsZFBsYXllcigpLHRoaXMuX3ByZXBhcmVQbGF5ZXJCZWZvcmVTdGFydCgpfV9idWlsZFBsYXllcigpe2lmKHRoaXMuX2luaXRpYWxpemVkKXJldHVybjt0aGlzLl9pbml0aWFsaXplZD0hMDtjb25zdCBnPXRoaXMua2V5ZnJhbWVz''@;'; + put 'put ''O3RoaXMuZG9tUGxheWVyPXRoaXMuX3RyaWdnZXJXZWJBbmltYXRpb24odGhpcy5lbGVtZW50LGcsdGhpcy5vcHRpb25zKSx0aGlzLl9maW5hbEtleWZyYW1lPWcubGVuZ3RoP2dbZy5sZW5ndGgtMV06bmV3IE1hcCx0aGlzLmRvbVBsYXllci5hZGRFdmVudExpc3RlbmVyKCJmaW5pc2giLCgp''@;'; + put 'put ''PT50aGlzLl9vbkZpbmlzaCgpKX1fcHJlcGFyZVBsYXllckJlZm9yZVN0YXJ0KCl7dGhpcy5fZGVsYXk/dGhpcy5fcmVzZXREb21QbGF5ZXJTdGF0ZSgpOnRoaXMuZG9tUGxheWVyLnBhdXNlKCl9X2NvbnZlcnRLZXlmcmFtZXNUb09iamVjdChnKXtjb25zdCBoPVtdO3JldHVybiBnLmZvckVh''@;'; + put 'put ''Y2godj0+e2gucHVzaChPYmplY3QuZnJvbUVudHJpZXModikpfSksaH1fdHJpZ2dlcldlYkFuaW1hdGlvbihnLGgsdil7cmV0dXJuIGcuYW5pbWF0ZSh0aGlzLl9jb252ZXJ0S2V5ZnJhbWVzVG9PYmplY3QoaCksdil9b25TdGFydChnKXt0aGlzLl9vcmlnaW5hbE9uU3RhcnRGbnMucHVzaChn''@;'; + put 'put ''KSx0aGlzLl9vblN0YXJ0Rm5zLnB1c2goZyl9b25Eb25lKGcpe3RoaXMuX29yaWdpbmFsT25Eb25lRm5zLnB1c2goZyksdGhpcy5fb25Eb25lRm5zLnB1c2goZyl9b25EZXN0cm95KGcpe3RoaXMuX29uRGVzdHJveUZucy5wdXNoKGcpfXBsYXkoKXt0aGlzLl9idWlsZFBsYXllcigpLHRoaXMu''@;'; + put 'put ''aGFzU3RhcnRlZCgpfHwodGhpcy5fb25TdGFydEZucy5mb3JFYWNoKGc9PmcoKSksdGhpcy5fb25TdGFydEZucz1bXSx0aGlzLl9zdGFydGVkPSEwLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuc3RhcnQoKSksdGhpcy5kb21QbGF5ZXIucGxheSgpfXBhdXNlKCl7''@;'; + put 'put ''dGhpcy5pbml0KCksdGhpcy5kb21QbGF5ZXIucGF1c2UoKX1maW5pc2goKXt0aGlzLmluaXQoKSx0aGlzLl9zcGVjaWFsU3R5bGVzJiZ0aGlzLl9zcGVjaWFsU3R5bGVzLmZpbmlzaCgpLHRoaXMuX29uRmluaXNoKCksdGhpcy5kb21QbGF5ZXIuZmluaXNoKCl9cmVzZXQoKXt0aGlzLl9yZXNl''@;'; + put 'put ''dERvbVBsYXllclN0YXRlKCksdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy5fb25TdGFydEZucz10aGlzLl9vcmlnaW5hbE9uU3RhcnRGbnMsdGhpcy5fb25Eb25lRm5zPXRoaXMuX29yaWdpbmFsT25Eb25lRm5zfV9yZXNldERvbVBs''@;'; + put 'put ''YXllclN0YXRlKCl7dGhpcy5kb21QbGF5ZXImJnRoaXMuZG9tUGxheWVyLmNhbmNlbCgpfXJlc3RhcnQoKXt0aGlzLnJlc2V0KCksdGhpcy5wbGF5KCl9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfWRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9kZXN0cm95ZWQ9''@;'; + put 'put ''ITAsdGhpcy5fcmVzZXREb21QbGF5ZXJTdGF0ZSgpLHRoaXMuX29uRmluaXNoKCksdGhpcy5fc3BlY2lhbFN0eWxlcyYmdGhpcy5fc3BlY2lhbFN0eWxlcy5kZXN0cm95KCksdGhpcy5fb25EZXN0cm95Rm5zLmZvckVhY2goZz0+ZygpKSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10pfXNldFBvc2l0''@;'; + put 'put ''aW9uKGcpe3ZvaWQgMD09PXRoaXMuZG9tUGxheWVyJiZ0aGlzLmluaXQoKSx0aGlzLmRvbVBsYXllci5jdXJyZW50VGltZT1nKnRoaXMudGltZX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLmRvbVBsYXllci5jdXJyZW50VGltZS90aGlzLnRpbWV9Z2V0IHRvdGFsVGltZSgpe3JldHVybiB0''@;'; + put 'put ''aGlzLl9kZWxheSt0aGlzLl9kdXJhdGlvbn1iZWZvcmVEZXN0cm95KCl7Y29uc3QgZz1uZXcgTWFwO3RoaXMuaGFzU3RhcnRlZCgpJiZ0aGlzLl9maW5hbEtleWZyYW1lLmZvckVhY2goKHYseSk9Pnsib2Zmc2V0IiE9PXkmJmcuc2V0KHksdGhpcy5fZmluaXNoZWQ/djpwd2UodGhpcy5lbGVt''@;'; + put 'put ''ZW50LHkpKX0pLHRoaXMuY3VycmVudFNuYXBzaG90PWd9dHJpZ2dlckNhbGxiYWNrKGcpe2NvbnN0IGg9InN0YXJ0Ij09PWc/dGhpcy5fb25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7aC5mb3JFYWNoKHY9PnYoKSksaC5sZW5ndGg9MH19Y2xhc3MgJEZle3ZhbGlkYXRlU3R5bGVQcm9wZXJ0''@;'; + put 'put ''eShnKXtyZXR1cm4hMH12YWxpZGF0ZUFuaW1hdGFibGVTdHlsZVByb3BlcnR5KGcpe3JldHVybiEwfW1hdGNoZXNFbGVtZW50KGcsaCl7cmV0dXJuITF9Y29udGFpbnNFbGVtZW50KGcsaCl7cmV0dXJuIGl3ZShnLGgpfWdldFBhcmVudEVsZW1lbnQoZyl7cmV0dXJuIG1oZShnKX1xdWVyeShn''@;'; + put 'put ''LGgsdil7cmV0dXJuIG93ZShnLGgsdil9Y29tcHV0ZVN0eWxlKGcsaCx2KXtyZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZylbaF19YW5pbWF0ZShnLGgsdix5LEMsST1bXSl7Y29uc3QgdWU9e2R1cmF0aW9uOnYsZGVsYXk6eSxmaWxsOjA9PXk/ImJvdGgiOiJmb3J3YXJkcyJ9O0Mm''@;'; + put 'put ''Jih1ZS5lYXNpbmc9Qyk7Y29uc3QgX2U9bmV3IE1hcCxCZT1JLmZpbHRlcihkdD0+ZHQgaW5zdGFuY2VvZiBUd2UpOyhmdW5jdGlvbiBuRmUoZCxnKXtyZXR1cm4gMD09PWR8fDA9PT1nfSkodix5KSYmQmUuZm9yRWFjaChkdD0+e2R0LmN1cnJlbnRTbmFwc2hvdC5mb3JFYWNoKChPdCwkdCk9''@;'; + put 'put ''Pl9lLnNldCgkdCxPdCkpfSk7bGV0IE5lPWZ1bmN0aW9uICRQZShkKXtyZXR1cm4gZC5sZW5ndGg/ZFswXWluc3RhbmNlb2YgTWFwP2Q6ZC5tYXAoZz0+dXdlKGcpKTpbXX0oaCkubWFwKGR0PT5BdyhkdCkpO05lPWZ1bmN0aW9uIHJGZShkLGcsaCl7aWYoaC5zaXplJiZnLmxlbmd0aCl7bGV0''@;'; + put 'put ''IHY9Z1swXSx5PVtdO2lmKGguZm9yRWFjaCgoQyxJKT0+e3YuaGFzKEkpfHx5LnB1c2goSSksdi5zZXQoSSxDKX0pLHkubGVuZ3RoKWZvcihsZXQgQz0xO0M8Zy5sZW5ndGg7QysrKXtsZXQgST1nW0NdO3kuZm9yRWFjaChqPT5JLnNldChqLHB3ZShkLGopKSl9fXJldHVybiBnfShnLE5lLF9l''@;'; + put 'put ''KTtjb25zdCBLZT1mdW5jdGlvbiBKRmUoZCxnKXtsZXQgaD1udWxsLHY9bnVsbDtyZXR1cm4gQXJyYXkuaXNBcnJheShnKSYmZy5sZW5ndGg/KGg9UmhlKGdbMF0pLGcubGVuZ3RoPjEmJih2PVJoZShnW2cubGVuZ3RoLTFdKSkpOmcgaW5zdGFuY2VvZiBNYXAmJihoPVJoZShnKSksaHx8dj9u''@;'; + put 'put ''ZXcgWEZlKGQsaCx2KTpudWxsfShnLE5lKTtyZXR1cm4gbmV3IFR3ZShnLE5lLHVlLEtlKX19bGV0IHFGZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgQ1h7Y29uc3RydWN0b3IoaCx2KXtzdXBlcigpLHRoaXMuX25leHRBbmltYXRpb25JZD0wLHRoaXMuX3JlbmRlcmVyPWguY3JlYXRlUmVuZGVy''@;'; + put 'put ''ZXIodi5ib2R5LHtpZDoiMCIsZW5jYXBzdWxhdGlvbjp4Mi5Ob25lLHN0eWxlczpbXSxkYXRhOnthbmltYXRpb246W119fSl9YnVpbGQoaCl7Y29uc3Qgdj10aGlzLl9uZXh0QW5pbWF0aW9uSWQudG9TdHJpbmcoKTt0aGlzLl9uZXh0QW5pbWF0aW9uSWQrKztjb25zdCB5PUFycmF5LmlzQXJy''@;'; + put 'put ''YXkoaCk/RWsoaCk6aDtyZXR1cm4gSXdlKHRoaXMuX3JlbmRlcmVyLG51bGwsdiwicmVnaXN0ZXIiLFt5XSksbmV3IGVIZSh2LHRoaXMuX3JlbmRlcmVyKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koU2QpLENpKHBzKSl9LGQuXHUwMjc1cHJv''@;'; + put 'put ''dj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3MgZUhlIGV4dGVuZHMgY2xhc3MgaTJle317Y29uc3RydWN0b3IoZyxoKXtzdXBlcigpLHRoaXMuX2lkPWcsdGhpcy5fcmVuZGVyZXI9aH1jcmVhdGUoZyxoKXtyZXR1cm4gbmV3IHRIZSh0aGlzLl9pZCxnLGh8''@;'; + put 'put ''fHt9LHRoaXMuX3JlbmRlcmVyKX19Y2xhc3MgdEhle2NvbnN0cnVjdG9yKGcsaCx2LHkpe3RoaXMuaWQ9Zyx0aGlzLmVsZW1lbnQ9aCx0aGlzLl9yZW5kZXJlcj15LHRoaXMucGFyZW50UGxheWVyPW51bGwsdGhpcy5fc3RhcnRlZD0hMSx0aGlzLnRvdGFsVGltZT0wLHRoaXMuX2NvbW1hbmQo''@;'; + put 'put ''ImNyZWF0ZSIsdil9X2xpc3RlbihnLGgpe3JldHVybiB0aGlzLl9yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50LGBAQCR7dGhpcy5pZH06JHtnfWAsaCl9X2NvbW1hbmQoZywuLi5oKXtyZXR1cm4gSXdlKHRoaXMuX3JlbmRlcmVyLHRoaXMuZWxlbWVudCx0aGlzLmlkLGcsaCl9b25Eb25l''@;'; + put 'put ''KGcpe3RoaXMuX2xpc3RlbigiZG9uZSIsZyl9b25TdGFydChnKXt0aGlzLl9saXN0ZW4oInN0YXJ0IixnKX1vbkRlc3Ryb3koZyl7dGhpcy5fbGlzdGVuKCJkZXN0cm95IixnKX1pbml0KCl7dGhpcy5fY29tbWFuZCgiaW5pdCIpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhcnRlZH1w''@;'; + put 'put ''bGF5KCl7dGhpcy5fY29tbWFuZCgicGxheSIpLHRoaXMuX3N0YXJ0ZWQ9ITB9cGF1c2UoKXt0aGlzLl9jb21tYW5kKCJwYXVzZSIpfXJlc3RhcnQoKXt0aGlzLl9jb21tYW5kKCJyZXN0YXJ0Iil9ZmluaXNoKCl7dGhpcy5fY29tbWFuZCgiZmluaXNoIil9ZGVzdHJveSgpe3RoaXMuX2NvbW1h''@;'; + put 'put ''bmQoImRlc3Ryb3kiKX1yZXNldCgpe3RoaXMuX2NvbW1hbmQoInJlc2V0IiksdGhpcy5fc3RhcnRlZD0hMX1zZXRQb3NpdGlvbihnKXt0aGlzLl9jb21tYW5kKCJzZXRQb3NpdGlvbiIsZyl9Z2V0UG9zaXRpb24oKXt2YXIgZyxoO3JldHVybiBudWxsIT09KGg9bnVsbD09PShnPXRoaXMuX3Jl''@;'; + put 'put ''bmRlcmVyLmVuZ2luZS5wbGF5ZXJzWyt0aGlzLmlkXSl8fHZvaWQgMD09PWc/dm9pZCAwOmcuZ2V0UG9zaXRpb24oKSkmJnZvaWQgMCE9PWg/aDowfX1mdW5jdGlvbiBJd2UoZCxnLGgsdix5KXtyZXR1cm4gZC5zZXRQcm9wZXJ0eShnLGBAQCR7aH06JHt2fWAseSl9Y29uc3QgRHdlPSJALmRp''@;'; + put 'put ''c2FibGVkIjtsZXQgbkhlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuZGVsZWdhdGU9aCx0aGlzLmVuZ2luZT12LHRoaXMuX3pvbmU9eSx0aGlzLl9jdXJyZW50SWQ9MCx0aGlzLl9taWNyb3Rhc2tJZD0xLHRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlcj1bXSx0''@;'; + put 'put ''aGlzLl9yZW5kZXJlckNhY2hlPW5ldyBNYXAsdGhpcy5fY2RSZWN1ckRlcHRoPTAsdGhpcy5wcm9taXNlPVByb21pc2UucmVzb2x2ZSgwKSx2Lm9uUmVtb3ZhbENvbXBsZXRlPShDLEkpPT57Y29uc3Qgaj1udWxsPT1JP3ZvaWQgMDpJLnBhcmVudE5vZGUoQyk7aiYmSS5yZW1vdmVDaGlsZChq''@;'; + put 'put ''LEMpfX1jcmVhdGVSZW5kZXJlcihoLHYpe2NvbnN0IEM9dGhpcy5kZWxlZ2F0ZS5jcmVhdGVSZW5kZXJlcihoLHYpO2lmKCEoaCYmdiYmdi5kYXRhJiZ2LmRhdGEuYW5pbWF0aW9uKSl7bGV0IEJlPXRoaXMuX3JlbmRlcmVyQ2FjaGUuZ2V0KEMpO3JldHVybiBCZXx8KEJlPW5ldyBMd2UoIiIs''@;'; + put 'put ''Qyx0aGlzLmVuZ2luZSksdGhpcy5fcmVuZGVyZXJDYWNoZS5zZXQoQyxCZSkpLEJlfWNvbnN0IEk9di5pZCxqPXYuaWQrIi0iK3RoaXMuX2N1cnJlbnRJZDt0aGlzLl9jdXJyZW50SWQrKyx0aGlzLmVuZ2luZS5yZWdpc3RlcihqLGgpO2NvbnN0IHVlPUJlPT57QXJyYXkuaXNBcnJheShCZSk/''@;'; + put 'put ''QmUuZm9yRWFjaCh1ZSk6dGhpcy5lbmdpbmUucmVnaXN0ZXJUcmlnZ2VyKEksaixoLEJlLm5hbWUsQmUpfTtyZXR1cm4gdi5kYXRhLmFuaW1hdGlvbi5mb3JFYWNoKHVlKSxuZXcgckhlKHRoaXMsaixDLHRoaXMuZW5naW5lKX1iZWdpbigpe3RoaXMuX2NkUmVjdXJEZXB0aCsrLHRoaXMuZGVs''@;'; + put 'put ''ZWdhdGUuYmVnaW4mJnRoaXMuZGVsZWdhdGUuYmVnaW4oKX1fc2NoZWR1bGVDb3VudFRhc2soKXt0aGlzLnByb21pc2UudGhlbigoKT0+e3RoaXMuX21pY3JvdGFza0lkKyt9KX1zY2hlZHVsZUxpc3RlbmVyQ2FsbGJhY2soaCx2LHkpe2g+PTAmJmg8dGhpcy5fbWljcm90YXNrSWQ/dGhpcy5f''@;'; + put 'put ''em9uZS5ydW4oKCk9PnYoeSkpOigwPT10aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXIubGVuZ3RoJiZQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbigoKT0+e3RoaXMuX3pvbmUucnVuKCgpPT57dGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyLmZvckVhY2goQz0+e2NvbnN0W0ks''@;'; + put 'put ''al09QztJKGopfSksdGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyPVtdfSl9KSx0aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXIucHVzaChbdix5XSkpfWVuZCgpe3RoaXMuX2NkUmVjdXJEZXB0aC0tLDA9PXRoaXMuX2NkUmVjdXJEZXB0aCYmdGhpcy5fem9uZS5ydW5PdXRzaWRl''@;'; + put 'put ''QW5ndWxhcigoKT0+e3RoaXMuX3NjaGVkdWxlQ291bnRUYXNrKCksdGhpcy5lbmdpbmUuZmx1c2godGhpcy5fbWljcm90YXNrSWQpfSksdGhpcy5kZWxlZ2F0ZS5lbmQmJnRoaXMuZGVsZWdhdGUuZW5kKCl9d2hlblJlbmRlcmluZ0RvbmUoKXtyZXR1cm4gdGhpcy5lbmdpbmUud2hlblJlbmRl''@;'; + put 'put ''cmluZ0RvbmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koU2QpLENpKFZxKSxDaShfbCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NsYXNzIEx3ZXtjb25zdHJ1Y3RvcihnLGgsdil7''@;'; + put 'put ''dGhpcy5uYW1lc3BhY2VJZD1nLHRoaXMuZGVsZWdhdGU9aCx0aGlzLmVuZ2luZT12LHRoaXMuZGVzdHJveU5vZGU9dGhpcy5kZWxlZ2F0ZS5kZXN0cm95Tm9kZT95PT5oLmRlc3Ryb3lOb2RlKHkpOm51bGx9Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5kYXRhfWRlc3Ryb3koKXt0''@;'; + put 'put ''aGlzLmVuZ2luZS5kZXN0cm95KHRoaXMubmFtZXNwYWNlSWQsdGhpcy5kZWxlZ2F0ZSksdGhpcy5kZWxlZ2F0ZS5kZXN0cm95KCl9Y3JlYXRlRWxlbWVudChnLGgpe3JldHVybiB0aGlzLmRlbGVnYXRlLmNyZWF0ZUVsZW1lbnQoZyxoKX1jcmVhdGVDb21tZW50KGcpe3JldHVybiB0aGlzLmRl''@;'; + put 'put ''bGVnYXRlLmNyZWF0ZUNvbW1lbnQoZyl9Y3JlYXRlVGV4dChnKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5jcmVhdGVUZXh0KGcpfWFwcGVuZENoaWxkKGcsaCl7dGhpcy5kZWxlZ2F0ZS5hcHBlbmRDaGlsZChnLGgpLHRoaXMuZW5naW5lLm9uSW5zZXJ0KHRoaXMubmFtZXNwYWNlSWQsaCxnLCEx''@;'; + put 'put ''KX1pbnNlcnRCZWZvcmUoZyxoLHYseT0hMCl7dGhpcy5kZWxlZ2F0ZS5pbnNlcnRCZWZvcmUoZyxoLHYpLHRoaXMuZW5naW5lLm9uSW5zZXJ0KHRoaXMubmFtZXNwYWNlSWQsaCxnLHkpfXJlbW92ZUNoaWxkKGcsaCx2KXt0aGlzLmVuZ2luZS5vblJlbW92ZSh0aGlzLm5hbWVzcGFjZUlkLGgs''@;'; + put 'put ''dGhpcy5kZWxlZ2F0ZSx2KX1zZWxlY3RSb290RWxlbWVudChnLGgpe3JldHVybiB0aGlzLmRlbGVnYXRlLnNlbGVjdFJvb3RFbGVtZW50KGcsaCl9cGFyZW50Tm9kZShnKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5wYXJlbnROb2RlKGcpfW5leHRTaWJsaW5nKGcpe3JldHVybiB0aGlzLmRlbGVn''@;'; + put 'put ''YXRlLm5leHRTaWJsaW5nKGcpfXNldEF0dHJpYnV0ZShnLGgsdix5KXt0aGlzLmRlbGVnYXRlLnNldEF0dHJpYnV0ZShnLGgsdix5KX1yZW1vdmVBdHRyaWJ1dGUoZyxoLHYpe3RoaXMuZGVsZWdhdGUucmVtb3ZlQXR0cmlidXRlKGcsaCx2KX1hZGRDbGFzcyhnLGgpe3RoaXMuZGVsZWdhdGUu''@;'; + put 'put ''YWRkQ2xhc3MoZyxoKX1yZW1vdmVDbGFzcyhnLGgpe3RoaXMuZGVsZWdhdGUucmVtb3ZlQ2xhc3MoZyxoKX1zZXRTdHlsZShnLGgsdix5KXt0aGlzLmRlbGVnYXRlLnNldFN0eWxlKGcsaCx2LHkpfXJlbW92ZVN0eWxlKGcsaCx2KXt0aGlzLmRlbGVnYXRlLnJlbW92ZVN0eWxlKGcsaCx2KX1z''@;'; + put 'put ''ZXRQcm9wZXJ0eShnLGgsdil7IkAiPT1oLmNoYXJBdCgwKSYmaD09RHdlP3RoaXMuZGlzYWJsZUFuaW1hdGlvbnMoZywhIXYpOnRoaXMuZGVsZWdhdGUuc2V0UHJvcGVydHkoZyxoLHYpfXNldFZhbHVlKGcsaCl7dGhpcy5kZWxlZ2F0ZS5zZXRWYWx1ZShnLGgpfWxpc3RlbihnLGgsdil7cmV0''@;'; + put 'put ''dXJuIHRoaXMuZGVsZWdhdGUubGlzdGVuKGcsaCx2KX1kaXNhYmxlQW5pbWF0aW9ucyhnLGgpe3RoaXMuZW5naW5lLmRpc2FibGVBbmltYXRpb25zKGcsaCl9fWNsYXNzIHJIZSBleHRlbmRzIEx3ZXtjb25zdHJ1Y3RvcihnLGgsdix5KXtzdXBlcihoLHYseSksdGhpcy5mYWN0b3J5PWcsdGhp''@;'; + put 'put ''cy5uYW1lc3BhY2VJZD1ofXNldFByb3BlcnR5KGcsaCx2KXsiQCI9PWguY2hhckF0KDApPyIuIj09aC5jaGFyQXQoMSkmJmg9PUR3ZT90aGlzLmRpc2FibGVBbmltYXRpb25zKGcsdj12b2lkIDA9PT12fHwhIXYpOnRoaXMuZW5naW5lLnByb2Nlc3ModGhpcy5uYW1lc3BhY2VJZCxnLGguc2xp''@;'; + put 'put ''Y2UoMSksdik6dGhpcy5kZWxlZ2F0ZS5zZXRQcm9wZXJ0eShnLGgsdil9bGlzdGVuKGcsaCx2KXtpZigiQCI9PWguY2hhckF0KDApKXtjb25zdCB5PWZ1bmN0aW9uIGlIZShkKXtzd2l0Y2goZCl7Y2FzZSJib2R5IjpyZXR1cm4gZG9jdW1lbnQuYm9keTtjYXNlImRvY3VtZW50IjpyZXR1cm4g''@;'; + put 'put ''ZG9jdW1lbnQ7Y2FzZSJ3aW5kb3ciOnJldHVybiB3aW5kb3c7ZGVmYXVsdDpyZXR1cm4gZH19KGcpO2xldCBDPWguc2xpY2UoMSksST0iIjtyZXR1cm4iQCIhPUMuY2hhckF0KDApJiYoW0MsSV09ZnVuY3Rpb24gb0hlKGQpe2NvbnN0IGc9ZC5pbmRleE9mKCIuIik7cmV0dXJuW2Quc3Vic3Ry''@;'; + put 'put ''aW5nKDAsZyksZC5zbGljZShnKzEpXX0oQykpLHRoaXMuZW5naW5lLmxpc3Rlbih0aGlzLm5hbWVzcGFjZUlkLHksQyxJLGo9Pnt0aGlzLmZhY3Rvcnkuc2NoZWR1bGVMaXN0ZW5lckNhbGxiYWNrKGouX2RhdGF8fC0xLHYsail9KX1yZXR1cm4gdGhpcy5kZWxlZ2F0ZS5saXN0ZW4oZyxoLHYp''@;'; + put 'put ''fX1sZXQgYUhlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBWcXtjb25zdHJ1Y3RvcihoLHYseSxDKXtzdXBlcihoLmJvZHksdix5KX1uZ09uRGVzdHJveSgpe3RoaXMuZmx1c2goKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2kocHMpLENpKHZoZSks''@;'; + put 'put ''Q2koeGhlKSxDaShfQykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NvbnN0IE93ZT1be3Byb3ZpZGU6Q1gsdXNlQ2xhc3M6cUZlfSx7cHJvdmlkZTp4aGUsdXNlRmFjdG9yeTpmdW5jdGlvbiBsSGUoKXtyZXR1cm4gbmV3IE1GZX19LHtw''@;'; + put 'put ''cm92aWRlOlZxLHVzZUNsYXNzOmFIZX0se3Byb3ZpZGU6U2QsdXNlRmFjdG9yeTpmdW5jdGlvbiBzSGUoZCxnLGgpe3JldHVybiBuZXcgbkhlKGQsZyxoKX0sZGVwczpbR1QsVnEsX2xdfV0sQmhlPVt7cHJvdmlkZTp2aGUsdXNlRmFjdG9yeTooKT0+bmV3ICRGZX0se3Byb3ZpZGU6eEcsdXNl''@;'; + put 'put ''VmFsdWU6IkJyb3dzZXJBbmltYXRpb25zIn0sLi4uT3dlXSxSd2U9W3twcm92aWRlOnZoZSx1c2VDbGFzczphd2V9LHtwcm92aWRlOnhHLHVzZVZhbHVlOiJOb29wQW5pbWF0aW9ucyJ9LC4uLk93ZV07bGV0IHVIZT0oKCk9PntjbGFzcyBke3N0YXRpYyB3aXRoQ29uZmlnKGgpe3JldHVybntu''@;'; + put 'put ''Z01vZHVsZTpkLHByb3ZpZGVyczpoLmRpc2FibGVBbmltYXRpb25zP1J3ZTpCaGV9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtwcm92aWRlcnM6QmhlLGltcG9ydHM6W1hX''@;'; + put 'put ''XX0pLGR9KSgpLGNIZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5vcGVuPSExfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1sibmctY29tcG9uZW50Il1dLGhvc3RBdHRy''@;'; + put 'put ''czpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczozLHZhcnM6MCxjb25zdHM6W1sxLCJjb250ZW50LWFyZWEiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJkaXYiLDApKDEsInAiKSxVdCgyLCJUaGlzIGlzIGEgcGFnZSB0byBoZWxwIGRlbW9uc3RyYXRlIHJvdXRp''@;'; + put 'put ''bmcuIiksc3QoKSgpKX19KSxkfSkoKTtjb25zdCBmSGU9WyJzaWRlYmFyTmF2Il07ZnVuY3Rpb24gaEhlKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYSIsMTgpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgzKS5uYXZpZ2F0ZVRvVmlld2VyKCkpfSks''@;'; + put 'put ''VXQoMSwiRGF0YSIpLHN0KCl9fWZ1bmN0aW9uIGRIZShkLGcpezEmZCYmKGl0KDAsImEiLDE5KSxVdCgxLCJMaW5lYWdlIiksc3QoKSl9ZnVuY3Rpb24gcEhlKGQsZyl7MSZkJiYoaXQoMCwiYSIsMjApLFV0KDEsIk1ldGFkYXRhIiksc3QoKSl9ZnVuY3Rpb24gZ0hlKGQsZyl7MSZkJiYoaXQo''@;'; + put 'put ''MCwiYSIsMjEpLFV0KDEsIiBVc2VycyIpLHN0KCkpfWZ1bmN0aW9uIG1IZShkLGcpezEmZCYmKGl0KDAsImEiLDIyKSxVdCgxLCJTdWJtaXR0ZWQiKSxzdCgpKX1mdW5jdGlvbiB2SGUoZCxnKXsxJmQmJihpdCgwLCJhIiwyMyksVXQoMSwiVG8gQXBwcm92ZSIpLHN0KCkpfWZ1bmN0aW9uIEFI''@;'; + put 'put ''ZShkLGcpe2lmKDEmZCYmKGl0KDAsImNsci1kcm9wZG93bi1tZW51Iikscm4oMSxoSGUsMiwwLCJhIiwxMikscm4oMixkSGUsMiwwLCJhIiwxMykscm4oMyxwSGUsMiwwLCJhIiwxNCkscm4oNCxnSGUsMiwwLCJhIiwxNSkscm4oNSxtSGUsMiwwLCJhIiwxNikscm4oNix2SGUsMiwwLCJhIiwx''@;'; + put 'put ''Nyksc3QoKSksMiZkKXtjb25zdCBoPUt0KDIpO3V0KDEpLFR0KCJuZ0lmIixoLmlzTWFpblJvdXRlKCJ2aWV3IikpLHV0KDEpLFR0KCJuZ0lmIixoLmlzTWFpblJvdXRlKCJ2aWV3IikmJiJTQVM5Ij09PWguc2VydmVyVHlwZSksdXQoMSksVHQoIm5nSWYiLGguaXNNYWluUm91dGUoInZpZXci''@;'; + put 'put ''KSYmIlNBUzkiPT09aC5zZXJ2ZXJUeXBlKSx1dCgxKSxUdCgibmdJZiIsaC5pc01haW5Sb3V0ZSgidmlldyIpKSx1dCgxKSxUdCgibmdJZiIsaC5pc01haW5Sb3V0ZSgiYXBwcm92ZSIpKSx1dCgxKSxUdCgibmdJZiIsaC5pc01haW5Sb3V0ZSgiYXBwcm92ZSIpKX19ZnVuY3Rpb24geUhlKGQs''@;'; + put 'put ''Zyl7aWYoMSZkJiYoaXQoMCwiZGl2Iiw4KSgxLCJjbHItZHJvcGRvd24iKSgyLCJidXR0b24iLDkpLFV0KDMpLENyKDQsImNsci1pY29uIiwxMCksc3QoKSxybig1LEFIZSw3LDYsImNsci1kcm9wZG93bi1tZW51IiwxMSksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3QoKTt1dCgzKSxKaSgiICIs''@;'; + put 'put ''aC5nZXRTdWJQYWdlKCksIiAiKX19ZnVuY3Rpb24gd0hlKGQsZyl7MSZkJiZDcigwLCJjbHItdGFiLWNvbnRlbnQiKX1mdW5jdGlvbiBiSGUoZCxnKXsxJmQmJkNyKDAsImNsci10YWItY29udGVudCIpfWNvbnN0IF9IZT1mdW5jdGlvbigpe3JldHVyblsiL3ZpZXcvdXNlcm5hdi9yb2xlcyJd''@;'; + put 'put ''fTtmdW5jdGlvbiBDSGUoZCxnKXtpZigxJmQmJihpdCgwLCJjbHItdGFiIikoMSwiYnV0dG9uIiwyNSkoMiwicCIsMjYpLENyKDMsImNsci1pY29uIiwzMSksVXQoNCwiIFJvbGVzICIpLHN0KCkoKSxybig1LGJIZSwxLDAsImNsci10YWItY29udGVudCIsMjkpLHN0KCkpLDImZCl7Y29uc3Qg''@;'; + put 'put ''aD1LdCgyKTt1dCgxKSxUdCgicm91dGVyTGluayIsTnMoMixfSGUpKSx1dCg0KSxUdCgiY2xySWZBY3RpdmUiLGguaXNNYWluUm91dGUoIi92aWV3L3VzZXJuYXYvcm9sZXMiKSl9fWNvbnN0IGtIZT1mdW5jdGlvbigpe3JldHVyblsiL3ZpZXcvdXNlcm5hdi91c2VycyJdfSxTSGU9ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm5bIi92aWV3L3VzZXJuYXYvZ3JvdXBzIl19O2Z1bmN0aW9uIE1IZShkLGcpe2lmKDEmZCYmKGl0KDAsImNsci10YWJzIiwyNCkoMSwiY2xyLXRhYiIpKDIsImJ1dHRvbiIsMjUpKDMsInAiLDI2KSxDcig0LCJjbHItaWNvbiIsMjcpLFV0KDUsIiBVc2VycyIpLHN0KCkoKSxD''@;'; + put 'put ''cig2LCJjbHItdGFiLWNvbnRlbnQiKSxzdCgpLGl0KDcsImNsci10YWIiKSg4LCJidXR0b24iLDI1KSg5LCJwIiwyNiksQ3IoMTAsImNsci1pY29uIiwyOCksVXQoMTEsIiBHcm91cHMiKSxzdCgpKCkscm4oMTIsd0hlLDEsMCwiY2xyLXRhYi1jb250ZW50IiwyOSksc3QoKSxybigxMyxDSGUs''@;'; + put 'put ''NiwzLCJjbHItdGFiIiwzMCksc3QoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMiksVHQoInJvdXRlckxpbmsiLE5zKDQsa0hlKSksdXQoNiksVHQoInJvdXRlckxpbmsiLE5zKDUsU0hlKSksdXQoNCksVHQoImNscklmQWN0aXZlIixoLmlzTWFpblJvdXRlKCIvdmlldy91c2VybmF2L2dyb3Vw''@;'; + put 'put ''cyIpKSx1dCgxKSxUdCgibmdJZiIsIlNBUzkiPT09aC5zZXJ2ZXJUeXBlKX19ZnVuY3Rpb24gRUhlKGQsZyl7MSZkJiYoaXQoMCwicCIsMzIpLFV0KDEsIkVkaXQiKSxzdCgpKX1jb25zdCB4SGU9WyIqIl07bGV0IHlTPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuX3Jv''@;'; + put 'put ''dXRlcj1oLHRoaXMuZXZlbnRTZXJ2aWNlPXYsdGhpcy5fc2FzU2VydmljZT15LHRoaXMuc2Nyb2xsZWRUb0JvdHRvbT1uZXcgYXIsdGhpcy5zaWRlYmFyT3Blbj0hMCx0aGlzLnNpZGViYXJXaWR0aD1udWxsLHRoaXMuc2lkZWJhck1heFdpZHRoPW51bGwsdGhpcy5yZXNpemluZz0hMSx0aGlz''@;'; + put 'put ''LnNhc2pzQ29uZmlnPW5ldyBRMy5TQVNqc0NvbmZpZyx0aGlzLnNhc2pzQ29uZmlnPXRoaXMuX3Nhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSx0aGlzLnNlcnZlclR5cGU9dGhpcy5fc2FzU2VydmljZS5nZXRTZXJ2ZXJUeXBlKCl9bmdPbkluaXQoKXt0aGlzLmV2ZW50U2VydmljZS5vblNp''@;'; + put 'put ''ZGViYXJUb2dnbGUuc3Vic2NyaWJlKGg9Pnt0aGlzLnNpZGViYXJPcGVuPWg/aC5vcGVuOiF0aGlzLnNpZGViYXJPcGVuLHRoaXMuZXZlbnRTZXJ2aWNlLmRpc3BhdGNoRXZlbnQoInJlc2l6ZSIpfSl9b25UcmVlU2Nyb2xsKGgpe2xldCB2PWgudGFyZ2V0O3Yuc2Nyb2xsVG9wPj12LnNjcm9s''@;'; + put 'put ''bEhlaWdodC12Lm9mZnNldEhlaWdodC0xMCYmdGhpcy5zY3JvbGxlZFRvQm90dG9tLmVtaXQoKX1pc01haW5Sb3V0ZShoKXtyZXR1cm4gdGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcyhoKX1nZXRTdWJQYWdlKCl7cmV0dXJuIHRoaXMuX3JvdXRlci51cmwuc3BsaXQoIi8iKVsyXX1uYXZpZ2F0''@;'; + put 'put ''ZVRvVmlld2VyKCl7bmkudmlld2VyLmN1cnJlbnRTZWxlY3Rpb249IiIsdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2RhdGEiKX1yZXNpemVTdGFydCgpe3RoaXMucmVzaXppbmc9ITAsZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXS5zdHlsZS5jc3NU''@;'; + put 'put ''ZXh0PSJ1c2VyLXNlbGVjdDogbm9uZSJ9cmVzaXplRW5kKCl7dGhpcy5yZXNpemluZz0hMSxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLnN0eWxlLmNzc1RleHQ9IiJ9b25Nb3VzZU1vdmUoaCl7aWYodGhpcy5yZXNpemluZyl7dGhpcy5zaWRlYmFyV2lkdGg9aC5j''@;'; + put 'put ''bGllbnRYO2xldCB2PWRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIm5hdi10cmVlIilbMF07dGhpcy5zaWRlYmFyV2lkdGgmJnRoaXMuaXNPdmVyZmxvd24odikmJih0aGlzLnNpZGViYXJNYXhXaWR0aD10aGlzLnNpZGViYXJXaWR0aD49Mzc1P3RoaXMuc2lkZWJhcldpZHRoKzEw''@;'; + put 'put ''OnRoaXMuc2lkZWJhck1heFdpZHRoKX19b25Nb3VzZVVwKGgpe3RoaXMucmVzaXppbmcmJnRoaXMucmVzaXplRW5kKCl9aXNPdmVyZmxvd24oaCl7cmV0dXJuIGguc2Nyb2xsV2lkdGg+aC5jbGllbnRXaWR0aH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; + put 'put ''ZCkoWHQoWmwpLFh0KG11KSxYdChnMikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtc2lkZWJhciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJnZvKGZIZSw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LnNpZGViYXJOYXY9eS5maXJzdCl9''@;'; + put 'put ''fSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJtb3VzZW1vdmUiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uTW91c2VNb3ZlKEMpfSwwLEhsKSgibW91c2V1cCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25Nb3VzZVVwKEMpfSwhMSxIbCl9LG91dHB1dHM6e3Njcm9sbGVkVG9C''@;'; + put 'put ''b3R0b206InNjcm9sbGVkVG9Cb3R0b20ifSxuZ0NvbnRlbnRTZWxlY3RvcnM6eEhlLGRlY2xzOjksdmFyczoxMyxjb25zdHM6W1siaWQiLCJzaWRlYmFyTmF2Il0sWyJzaWRlYmFyTmF2IiwiIl0sWyJzdHlsZSIsImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBtaW4t''@;'; + put 'put ''aGVpZ2h0OiAzNnB4Iiw0LCJuZ0lmIl0sWyJzdHlsZSIsInBhZGRpbmc6IDEwcHgiLDQsIm5nSWYiXSxbImNsYXNzIiwicGFnZS10aXRsZSIsNCwibmdJZiJdLFsxLCJuYXYtZGl2aWRlciJdLFsxLCJuYXYtdHJlZSIsMywic2Nyb2xsIl0sWzEsInJlc2l6ZS1oYW5kbGUiLDMsIm1vdXNlZG93''@;'; + put 'put ''biJdLFsyLCJkaXNwbGF5IiwiZmxleCIsImp1c3RpZnktY29udGVudCIsImNlbnRlciIsIm1pbi1oZWlnaHQiLCIzNnB4Il0sWyJjbHJEcm9wZG93blRyaWdnZXIiLCIiLDEsImRyb3Bkb3duLXRvZ2dsZSIsImJ0biIsImJ0bi1saW5rIl0sWyJzaGFwZSIsImNhcmV0IGRvd24iXSxbNCwiY2xy''@;'; + put 'put ''SWZPcGVuIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi92aWV3L2xpbmVhZ2UiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiw0''@;'; + put 'put ''LCJuZ0lmIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL3ZpZXcvbWV0YWRhdGEiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiw0LCJuZ0lmIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdiIsInJvdXRlckxp''@;'; + put 'put ''bmtBY3RpdmUiLCJhY3RpdmUiLDQsIm5nSWYiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvYXBwcm92ZS9zdWJtaXR0ZWQiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiw0LCJuZ0lmIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwi''@;'; + put 'put ''L2FwcHJvdmUvdG9hcHByb3ZlIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsNCwibmdJZiJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsMywiY2xpY2siXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvdmll''@;'; + put 'put ''dy9saW5lYWdlIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi92aWV3L21ldGFkYXRhIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi92''@;'; + put 'put ''aWV3L3VzZXJuYXYiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL2FwcHJvdmUvc3VibWl0dGVkIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGlu''@;'; + put 'put ''ayIsIi9hcHByb3ZlL3RvYXBwcm92ZSIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiXSxbMiwicGFkZGluZyIsIjEwcHgiXSxbImNsclRhYkxpbmsiLCIiLDEsInVzZXItbmF2LWJ0biIsMywicm91dGVyTGluayJdLFsxLCJ6ZXJvLW1hcmdpbiJdLFsic2hhcGUiLCJ1c2VyIl0sWyJzaGFw''@;'; + put 'put ''ZSIsInVzZXJzIl0sWzQsImNscklmQWN0aXZlIl0sWzQsIm5nSWYiXSxbInNoYXBlIiwiYmxvY2tzLWdyb3VwIl0sWzEsInBhZ2UtdGl0bGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLGl0KDAsImNsci12ZXJ0aWNhbC1uYXYiLDAsMSkscm4oMix5SGUsNiwxLCJkaXYi''@;'; + put 'put ''LDIpLHJuKDMsTUhlLDE0LDYsImNsci10YWJzIiwzKSxybig0LEVIZSwyLDAsInAiLDQpLENyKDUsImRpdiIsNSksaXQoNiwiZGl2Iiw2KSxZbigic2Nyb2xsIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vblRyZWVTY3JvbGwoQyl9KSxOaSg3KSxzdCgpLGl0KDgsInNwYW4iLDcpLFluKCJtb3Vz''@;'; + put 'put ''ZWRvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHYucmVzaXplU3RhcnQoKX0pLHN0KCkoKSksMiZoJiYoUjMoIndpZHRoIix2LnNpZGViYXJXaWR0aCwicHgiKSgibWF4LXdpZHRoIix2LnNpZGViYXJNYXhXaWR0aCwicHgiKSxGaSgiY2xvc2VkIiwhdi5zaWRlYmFyT3BlbikoInJlc2l6aW5nIix2''@;'; + put 'put ''LnJlc2l6aW5nKSx1dCgyKSxUdCgibmdJZiIsdi5pc01haW5Sb3V0ZSgidmlldyIpKSx1dCgxKSxUdCgibmdJZiIsdi5pc01haW5Sb3V0ZSgidmlldy91c2VybmF2IikpLHV0KDEpLFR0KCJuZ0lmIix2LmlzTWFpblJvdXRlKCJob21lIikpLHV0KDQpLEZpKCJyZXNpemluZyIsdi5yZXNpemlu''@;'; + put 'put ''ZykpfSxkZXBlbmRlbmNpZXM6W1ZvLHdsLHIxLFphLHBaLG1aLGtxLGdaLGhaLENxLEx5ZSxPeWUsZ3csekwsR0wsWTYsdjcsb2tdLHN0eWxlczpbImNsci12ZXJ0aWNhbC1uYXZbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjI3MnB4O21pbi13aWR0aDoyNzJweDtoZWlnaHQ6MTAwJTttYXgt''@;'; + put 'put ''d2lkdGg6Mzc1cHg7cG9zaXRpb246cmVsYXRpdmU7Ym94LXNoYWRvdzowIDAgNXB4ICMwMDAwMDAxZjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYhaW1wb3J0YW50fWNsci12ZXJ0aWNhbC1uYXZbX25nY29udGVudC0lQ09NUCVdICAgLm5hdi10cmVlW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6''@;'; + put 'put ''MTAwJTtvdmVyZmxvdy15OmF1dG99Y2xyLXZlcnRpY2FsLW5hdi5jbG9zZWRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1sZWZ0Oi0yNzJweH1jbHItdmVydGljYWwtbmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yZXNpemUtaGFuZGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjph''@;'; + put 'put ''YnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDotM3B4O2JvcmRlci1yaWdodDo0cHggc29saWQgIzgwYjQ0MTtjdXJzb3I6Y29sLXJlc2l6ZTtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgLjFzIGVhc2UtaW4tb3V0fWNsci12ZXJ0aWNhbC1uYXZbX25nY29udGVudC0lQ09NUCVdICAgLnJl''@;'; + put 'put ''c2l6ZS1oYW5kbGVbX25nY29udGVudC0lQ09NUCVdOmhvdmVye29wYWNpdHk6LjV9Y2xyLXZlcnRpY2FsLW5hdltfbmdjb250ZW50LSVDT01QJV0gICAucmVzaXplLWhhbmRsZS5yZXNpemluZ1tfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eToxfWNsci12ZXJ0aWNhbC1uYXYucmVzaXppbmdb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVde3RyYW5zaXRpb246bm9uZSFpbXBvcnRhbnR9Lm5hdi1kaXZpZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtib3JkZXItdG9wOjFweCBzb2xpZCAjZDNkM2QzO21hcmdpbi1ib3R0b206MH0ucGFnZS10aXRsZVtfbmdjb250ZW50LSVDT01QJV17bWFy''@;'; + put 'put ''Z2luOjA7Zm9udC1zaXplOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXJ9Lnplcm8tbWFyZ2luW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MH0udXNlci1uYXYtYnRuW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjAgMnB4fSJdfSksZH0pKCk7ZnVuY3Rpb24gVEhlKGQsZyl7MSZkJiZDcigw''@;'; + put 'put ''LCJjbHItaWNvbiIsMTIpfWZ1bmN0aW9uIElIZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci1pY29uIiwxMyksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoMik7cmV0dXJuIHkubGlicmFyaWVzU2VhcmNoPSIiLGEoeS5saWJyYXJ5T25GaWx0ZXIo''@;'; + put 'put ''KSl9KSxzdCgpfX1mdW5jdGlvbiBESGUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItdHJlZS1ub2RlIiw2KSgxLCJkaXYiLDcpKDIsImlucHV0Iiw4LDkpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLmxpYnJhcmllc1NlYXJj''@;'; + put 'put ''aD15KX0pKCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLmxpYnJhcnlPbkZpbHRlcigpKX0pLHN0KCkscm4oNCxUSGUsMSwwLCJjbHItaWNvbiIsMTApLHJuKDUsSUhlLDEsMCwiY2xyLWljb24iLDExKSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDMpLHY9S3QoKTt1''@;'; + put 'put ''dCgyKSxUdCgibmdNb2RlbCIsdi5saWJyYXJpZXNTZWFyY2gpLHV0KDIpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIExIZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDEyKX1mdW5jdGlvbiBPSGUoZCxn''@;'; + put 'put ''KXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItaWNvbiIsMTMpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKSxLdCgpO2NvbnN0IHk9eWEoMyksQz1LdCgyKS4kaW1wbGljaXQsST1LdCgpO3JldHVybiB5LnZhbHVlPSIiLEMuc2VhcmNoU3RyaW5nPSIiLGEoSS50cmVlT25GaWx0''@;'; + put 'put ''ZXIoQywidGFibGVzIikpfSksc3QoKX19ZnVuY3Rpb24gUkhlKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiY2xyLXRyZWUtbm9kZSIsNikoMSwiZGl2Iiw3KSgyLCJpbnB1dCIsMTgsMTkpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgy''@;'; + put 'put ''KS4kaW1wbGljaXQuc2VhcmNoU3RyaW5nPXkpfSkoImtleXVwIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoMikuJGltcGxpY2l0O3JldHVybiBhKEt0KCkudHJlZU9uRmlsdGVyKHksInRhYmxlcyIpKX0pLHN0KCkscm4oNCxMSGUsMSwwLCJjbHItaWNvbiIsMTApLHJuKDUsT0hlLDEs''@;'; + put 'put ''MCwiY2xyLWljb24iLDExKSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDMpLHY9S3QoMikuJGltcGxpY2l0O3V0KDIpLFR0KCJuZ01vZGVsIix2LnNlYXJjaFN0cmluZyksdXQoMiksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPDEpLHV0KDEpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aD4w''@;'; + put 'put ''KX19ZnVuY3Rpb24gQkhlKGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMjQpfWZ1bmN0aW9uIFBIZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDI1KX1mdW5jdGlvbiBGSGUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItdHJlZS1ub2RlIikoMSwiYnV0dG9uIiwyMCks''@;'; + put 'put ''WW4oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9cnQoaCkuJGltcGxpY2l0LEk9S3QoMikuJGltcGxpY2l0LGo9S3QoKTtyZXR1cm4gai50YWJsZT1DLGoubGliPUkuTElCUkFSWVJFRixqLnNlbGVjdFRhYmxlKEMpLGEoai5lZGl0VGFibGUoKSl9KSxGMCgyLDIxKSxybigzLEJIZSwxLDAs''@;'; + put 'put ''ImNsci1pY29uIiwyMikscm4oNCxQSGUsMSwwLCJjbHItaWNvbiIsMjMpLEgwKCksVXQoNSksc3QoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUt0KDIpLiRpbXBsaWNpdCx5PUt0KCk7dXQoMSksRmkoInRhYmxlLWFjdGl2ZSIseS5saWJUYWJBY3RpdmUodi5MSUJSQVJZUkVG''@;'; + put 'put ''LGgpKSx1dCgxKSxUdCgibmdTd2l0Y2giLGguaW5jbHVkZXMoIi1GQyIpKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwhMCksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsITEpLHV0KDEpLEppKCIgIixoLnJlcGxhY2UoIi1GQyIsIiIpLCIgIil9fWZ1bmN0aW9uIEhIZShkLGcpe2lmKDEmZCl7''@;'; + put 'put ''Y29uc3QgaD1faSgpO2l0KDAsImNsci10cmVlLW5vZGUiLDE1KSxZbigiY2xpY2siLGZ1bmN0aW9uKHkpe3J0KGgpO2NvbnN0IEM9S3QoKS4kaW1wbGljaXQsST1LdCgpO3JldHVybiBJLnRyZWVOb2RlQ2xpY2tlZCh5LEMpLGEoSS5saWI9Qy5MSUJSQVJZUkVGKX0pKCJjbHJFeHBhbmRlZENo''@;'; + put 'put ''YW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoKS4kaW1wbGljaXQuZXhwYW5kZWQ9eSl9KSxpdCgxLCJwIiwxNiksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoKS4kaW1wbGljaXQsQz1LdCgpO3JldHVybiBDLmxpYj15LkxJQlJBUllSRUYsYShDLmxp''@;'; + put 'put ''YnJhcnlPbkNsaWNrKHkuTElCUkFSWVJFRix5KSl9KSxDcigyLCJjbHItaWNvbiIsMTcpLFV0KDMpLHN0KCkscm4oNCxSSGUsNiwzLCJjbHItdHJlZS1ub2RlIiwwKSxybig1LEZIZSw2LDYsImNsci10cmVlLW5vZGUiLDEpLHN0KCl9aWYoMiZkKXtjb25zdCBoPUt0KCkuJGltcGxpY2l0O0Zp''@;'; + put 'put ''KCJjbHItZXhwYW5kZWQiLGguZXhwYW5kZWQpLFR0KCJjbHJFeHBhbmRlZCIsaC5leHBhbmRlZCkoImNsckxvYWRpbmciLGgubG9hZGluZ1RhYmxlcyYmIWgudGFibGVzKSx1dCgzKSxKaSgiICIsaC5MSUJSQVJZUkVGLCIgIiksdXQoMSksVHQoIm5nSWYiLGgudGFibGVzKSx1dCgxKSxUdCgi''@;'; + put 'put ''bmdGb3JPZiIsaC50YWJsZXMpfX1mdW5jdGlvbiBOSGUoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLEhIZSw2LDcsImNsci10cmVlLW5vZGUiLDE0KSxIMCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoIm5nSWYiLCFoLmhpZGRlbil9fWZ1bmN0aW9uIFZIZShkLGcpezEm''@;'; + put 'put ''ZCYmKGl0KDAsImRpdiIsMjYpKDEsImRpdiIsMjcpKDIsInNwYW4iLDI4KSxVdCgzLCIgTG9hZGluZy4uLiAiKSxzdCgpKCkoKSl9ZnVuY3Rpb24gakhlKGQsZyl7MSZkJiYoaXQoMCwiaDMiLDMyKSxVdCgxLCIgUGxlYXNlIHNlbGVjdCBhIHRhYmxlICIpLHN0KCkpfWZ1bmN0aW9uIFpIZShk''@;'; + put 'put ''LGcpezEmZCYmKGl0KDAsImgzIiwzMiksVXQoMSwiIE5vIEVkaXRhYmxlIFRhYmxlcyBDb25maWd1cmVkICIpLHN0KCkpfWZ1bmN0aW9uIHpIZShkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsMjkpLENyKDEsImNsci1pY29uIiwzMCkscm4oMixqSGUsMiwwLCJoMyIsMzEpLHJuKDMsWkhlLDIs''@;'; + put 'put ''MCwiaDMiLDMxKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKTt1dCgyKSxUdCgibmdJZiIsKG51bGw9PWgudHJlZU5vZGVMaWJyYXJpZXM/bnVsbDpoLnRyZWVOb2RlTGlicmFyaWVzLmxlbmd0aCk+MCksdXQoMSksVHQoIm5nSWYiLChudWxsPT1oLnRyZWVOb2RlTGlicmFyaWVzP251bGw6aC50''@;'; + put 'put ''cmVlTm9kZUxpYnJhcmllcy5sZW5ndGgpPDEpfX1sZXQgR0hlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLnJvdXRlPWgsdGhpcy5yb3V0ZXI9dix0aGlzLmhlbHBlclNlcnZpY2U9eSx0aGlzLmV2ZW50U2VydmljZT1DLHRoaXMuc2FzU2VydmljZT1JLHRoaXMu''@;'; + put 'put ''dHJlZU5vZGVMaWJyYXJpZXM9bnVsbCx0aGlzLmxpYnJhcmllc1NlYXJjaD0iIix0aGlzLmxpYj0iIix0aGlzLnRhYmxlPSIiLHRoaXMuZW5jb2Rpbmc9IlVURi04Iix0aGlzLmxvYWRpbmc9ITB9Y29sbGFwc2VMaWJyYXJ5SXRlbXMoaCx2KXtoLmZvckVhY2goeT0+e3kuTElCUkFSWUlEIT09''@;'; + put 'put ''di5MSUJSQVJZSUQmJih5LmV4cGFuZGVkPSExKX0pfXRyZWVOb2RlQ2xpY2tlZChoLHYpeyJDb2xsYXBzZSI9PT1oLnRhcmdldC50aXRsZSYmdGhpcy5jb2xsYXBzZUxpYnJhcnlJdGVtcyh0aGlzLmxpYnJhcmllcyx2KX1saWJyYXJ5T25DbGljayhoLHYpe3YuZXhwYW5kZWQ9IXYuZXhwYW5k''@;'; + put 'put ''ZWQsdi5leHBhbmRlZCYmIXRoaXMudGFibGUmJnRoaXMuc2VsZWN0TGlicmFyeShoLCExLHYpLHRoaXMuY29sbGFwc2VMaWJyYXJ5SXRlbXModGhpcy5saWJyYXJpZXMsdil9c2VsZWN0TGlicmFyeShoLHYseSl7eS5sb2FkaW5nVGFibGVzPSEwO2xldCBDLEk9W107aWYodGhpcy5saWJzQW5k''@;'; + put 'put ''VGFibGVzJiYoQz10aGlzLmxpYnNBbmRUYWJsZXNbaF0sdGhpcy50YWJsZT12b2lkIDAsIlBsZWFzZSBzZWxlY3QgbGlicmFyeSIhPT1oKSl7bGV0IGo9Qy5maWx0ZXIoZnVuY3Rpb24odWUpe3JldHVybi0xPT09SS5pbmRleE9mKHVlKSYmKEkucHVzaCh1ZSksITApfSk7dGhpcy50YWJsZXM9''@;'; + put 'put ''aixuaS5lZGl0b3IubGlicmFyaWVzPXRoaXMubGlicmFyaWVzfW5pLmVkaXRvci5saWJyYXJ5PWgsdnx8dGhpcy5jbGVhckdsb2JhbHNGaWx0ZXIoKSx5LmxvYWRpbmdUYWJsZXM9ITEseS5leHBhbmRlZD0hMH1zZWxlY3RUYWJsZShoLHYpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAs''@;'; + put 'put ''ZnVuY3Rpb24qKCl7dGhpcy5saWJUYWI9dGhpcy5saWIrIi4iK3RoaXMudGFibGUsdGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksbmkuZWRpdG9yLnRhYmxlPWgsdnx8dGhpcy5jbGVhckdsb2JhbHNGaWx0ZXIoKX0pfWNsZWFyR2xvYmFsc0ZpbHRlcigpe25pLmVkaXRvci5maWx0''@;'; + put 'put ''ZXIubGliZHM9IiIsbmkuZWRpdG9yLmZpbHRlci53aGVyZUNsYXVzZT0iIixuaS5lZGl0b3IuZmlsdGVyLmdyb3VwTG9naWM9IiIsbmkuZWRpdG9yLmZpbHRlci5jbGF1c2VzPVtdLG5pLmVkaXRvci5maWx0ZXIudmFscz1bXSxuaS5lZGl0b3IuZmlsdGVyLmNvbHM9W119bGliVGFiQWN0aXZl''@;'; + put 'put ''KGgsdil7cmV0dXJuISghdGhpcy5saWJ8fCF0aGlzLnRhYmxlKSYmaD09PXRoaXMubGliJiZ2PT09dGhpcy50YWJsZX10cmVlT25GaWx0ZXIoaCx2KXt0aGlzLmhlbHBlclNlcnZpY2UudHJlZU9uRmlsdGVyKGgsdil9bGlicmFyeU9uRmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLmxpYnJh''@;'; + put 'put ''cnlPbkZpbHRlcih0aGlzLnRyZWVOb2RlTGlicmFyaWVzLHRoaXMubGlicmFyaWVzU2VhcmNoLCJMSUJSQVJZUkVGIiksbmkubGluZWFnZS5saWJyYXJpZXNTZWFyY2g9dGhpcy5saWJyYXJpZXNTZWFyY2h9ZWRpdFRhYmxlKCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvZWRpdG9yLyIr''@;'; + put 'put ''dGhpcy5saWIrIi4iK3RoaXMudGFibGUpfWdldExpYnJhcnlUYWJsZVN0YXRlKCl7aWYobnVsbCE9PW5pLmVkaXRvci50cmVlTm9kZUxpYnJhcmllcyYmKHRoaXMudHJlZU5vZGVMaWJyYXJpZXM9bmkuZWRpdG9yLnRyZWVOb2RlTGlicmFyaWVzKSwiIiE9PW5pLmVkaXRvci5saWJyYXJ5KXt0''@;'; + put 'put ''aGlzLmxpYj1uaS5lZGl0b3IubGlicmFyeTtsZXQgaD1udWxsO3RoaXMudHJlZU5vZGVMaWJyYXJpZXMmJihoPXRoaXMudHJlZU5vZGVMaWJyYXJpZXMuZmluZCh2PT52LkxJQlJBUllSRUY9PT10aGlzLmxpYikpLHRoaXMuc2VsZWN0TGlicmFyeShuaS5lZGl0b3IubGlicmFyeSwhMCxoKX19''@;'; + put 'put ''Z2V0RnJvbUdsb2JhbHMoKXt0aGlzLmxpYnNBbmRUYWJsZXM9bmkuZWRpdG9yLmxpYnNBbmRUYWJsZXMsdGhpcy5saWJyYXJpZXM9bmkuZWRpdG9yLmxpYnJhcmllcyx0aGlzLmdldExpYnJhcnlUYWJsZVN0YXRlKCksdGhpcy5sb2FkaW5nPSExfW5nQWZ0ZXJDb250ZW50SW5pdCgpe25pLmVk''@;'; + put 'put ''aXRvci5zdGFydHVwU2V0P3RoaXMuZ2V0RnJvbUdsb2JhbHMoKTp0aGlzLmV2ZW50U2VydmljZS5vblN0YXJ0dXBEYXRhTG9hZGVkLnN1YnNjcmliZSgoKT0+e3RoaXMuZ2V0RnJvbUdsb2JhbHMoKX0pfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShY''@;'; + put 'put ''dChabCksWHQoUHUpLFh0KFhjKSxYdChtdSksWHQoZzIpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siaG9tZS1jb21wb25lbnQiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjgsdmFyczo0LGNvbnN0czpbWyJjbGFzcyIsInNlYXJjaC1u''@;'; + put 'put ''b2RlIiw0LCJuZ0lmIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJjb250ZW50LWFyZWEiXSxbMSwiY2FyZC1ibG9jayJdLFsiY2xhc3MiLCJzcGlubmVyLXdyYXBwZXItZnVsbHBhZ2UiLDQsIm5nSWYiXSxbImNsYXNzIiwibm8tdGFibGUtc2VsZWN0ZWQiLDQsIm5nSWYiXSxbMSwic2Vh''@;'; + put 'put ''cmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIkxpYnJhcmllcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoTGliVHJl''@;'; + put 'put ''ZUlucHV0IiwiIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbHItZXhwYW5k''@;'; + put 'put ''ZWQiLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIiw0LCJuZ0lmIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiXSxbMSwibS0wIiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsInJhY2stc2VydmVyIl0sWyJj''@;'; + put 'put ''bHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwiVGFibGVzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImtleXVwIl0sWyJzZWFyY2hUcmVlSW5wdXQiLCIiXSxbMSwiY2xyLXRyZWVub2RlLWxpbmsiLDMsImNsaWNrIl0s''@;'; + put 'put ''WzMsIm5nU3dpdGNoIl0sWyJzaGFwZSIsImJvbHQiLDQsIm5nU3dpdGNoQ2FzZSJdLFsic2hhcGUiLCJ0YWJsZSIsNCwibmdTd2l0Y2hDYXNlIl0sWyJzaGFwZSIsImJvbHQiXSxbInNoYXBlIiwidGFibGUiXSxbMSwic3Bpbm5lci13cmFwcGVyLWZ1bGxwYWdlIl0sWzEsImxvYWRpbmdTcGlu''@;'; + put 'put ''bmVyIl0sWzEsInNwaW5uZXIiXSxbMSwibm8tdGFibGUtc2VsZWN0ZWQiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyIsMiwiZmlsbCIsIiM4MWI0NDAiXSxbInN0eWxlIiwidGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzVhNWE1YSIsNCwi''@;'; + put 'put ''bmdJZiJdLFsyLCJ0ZXh0LWFsaWduIiwiY2VudGVyIiwiY29sb3IiLCIjNWE1YTVhIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoaXQoMCwiYXBwLXNpZGViYXIiKSgxLCJjbHItdHJlZSIpLHJuKDIsREhlLDYsMywiY2xyLXRyZWUtbm9kZSIsMCkscm4oMyxOSGUsMiwxLCJuZy1j''@;'; + put 'put ''b250YWluZXIiLDEpLHN0KCkoKSxpdCg0LCJkaXYiLDIpKDUsImRpdiIsMykscm4oNixWSGUsNCwwLCJkaXYiLDQpLHJuKDcsekhlLDQsMiwiZGl2Iiw1KSxzdCgpKCkpLDImaCYmKHV0KDIpLFR0KCJuZ0lmIiwobnVsbD09di50cmVlTm9kZUxpYnJhcmllcz9udWxsOnYudHJlZU5vZGVMaWJy''@;'; + put 'put ''YXJpZXMubGVuZ3RoKT4wKSx1dCgxKSxUdCgibmdGb3JPZiIsdi50cmVlTm9kZUxpYnJhcmllcyksdXQoMyksVHQoIm5nSWYiLHYubG9hZGluZyksdXQoMSksVHQoIm5nSWYiLCF2LmxvYWRpbmcpKX0sZGVwZW5kZW5jaWVzOltacyxWbyxVZCxpcCxtMSxFcyx4cyx5OSxfZyxaTCx3bCxnbyxw''@;'; + put 'put ''OSx5U10sc3R5bGVzOlsiY2xyLXRyZWUtbm9kZVtfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcH0uY2FyZC1ibG9ja1tfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7cGFkZGluZzowfS5uby10YWJsZS1zZWxlY3Rl''@;'; + put 'put ''ZFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjEwMCV9ICBjbHItaWNvbi5pcy1ibHVlLCAgIGNsci1pY29uLmlzLWluZm97ZmlsbDojNmE5MjM1fS5zcGlubmVyLXdyYXBwZXItZnVsbHBhZ2VbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0''@;'; + put 'put ''aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfSJdfSksZH0pKCk7dmFyIHl3PUwoMjk3NDgpO2xldCBrZz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLmhlbHBlclNlcnZpY2U9''@;'; + put 'put ''dix0aGlzLmxvZ2dlclNlcnZpY2U9eSx0aGlzLnJlc3BvbnNlPW5ldyAkZSx0aGlzLmNoYW5nZWRUYWJsZT1uZXcgJGUsdGhpcy5kZXRhaWxzPW5ldyAkZSx0aGlzLmRpZmZzPW5ldyAkZSx0aGlzLmNvbHVtbnM9bmV3ICRlLHRoaXMudmFsdWVzPW5ldyAkZSx0aGlzLmZpbHRlcj1uZXcgJGUs''@;'; + put 'put ''dGhpcy5xdWVyeT1uZXcgJGUsdGhpcy5zdWJtaXR0RGV0YWlsPW5ldyAkZSx0aGlzLnJlbW92ZVF1ZXJ5PW5ldyAkZSx0aGlzLnNldFN1Ym1pdD1uZXcgJGUsdGhpcy5zZXRTdWJtaXRMaXN0PW5ldyAkZX1jYWxsU2VydmljZShoLHYseSxDKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAw''@;'; + put 'put ''LGZ1bmN0aW9uKigpe3RoaXMubGliZHM9QztsZXQgST17fTtyZXR1cm4gSVt2XT1baF0se2RhdGE6eWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoeSxJKSxsaWJkczp0aGlzLmxpYmRzfX0pfXVwZGF0ZVRhYmxlKGgsdix5LEMsSSl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxm''@;'; + put 'put ''dW5jdGlvbiooKXtsZXQgaj17anNkYXRhOnZ9O2lmKEkpe2xldCBfZT10aGlzLnBhcnNlRm9ybWF0cyhJKTtqLiRqc2RhdGE9e2Zvcm1hdHM6X2V9fXJldHVybiBqW3ldPVtoXSx5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdChDLGopfSl9Z2V0QXBwcm92YWxzKGgsdix5KXtyZXR1cm4g''@;'; + put 'put ''bm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBDPXt9O3JldHVybiBDW3ZdPVtoXSx5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCh5LEMpfSl9c2VuZERldGFpbHMoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IEM9T2Jq''@;'; + put 'put ''ZWN0LmFzc2lnbih7c3ViOiEwfSxoKTt0aGlzLnN1Ym1pdHREZXRhaWwubmV4dCh7ZGF0YTp5W3ZdLHZpZXdEYXRhOkN9KX0pfWdldFN1Ym1pdHRzKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3Qo''@;'; + put 'put ''ImVkaXRvcnMvZ2V0c3VibWl0cyIsbnVsbCl9KX12aWV3TGlicygpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvdmlld2xpYnMiLG51bGwpfSl9cmVmcmVzaExpYkluZm8oaCl7cmV0dXJuIG5v''@;'; + put 'put ''KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy9yZWZyZXNobGliaW5mbyIse2xpYjJyZWZyZXNoOlt7bGlicmVmOmh9XX0pfSl9dmVyc2lvbkhpc3RvcnkoaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxm''@;'; + put 'put ''dW5jdGlvbiooKXtjb25zdCB2PXtpd2FudDpbe0xJQkRTOmh9XX07cmV0dXJuIHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvZ2V0dmVyc2lvbmhpc3RvcnkiLHYpfSl9dmlld1RhYmxlcyhoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xl''@;'; + put 'put ''dCB2PXtTQVNDb250cm9sVGFibGU6W3tNUExJQjpofV19O3JldHVybiB5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3ZpZXd0YWJsZXMiLHYpfSl9dmlld0RhdGEoaCx2KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCB5PXtTQVNDb250''@;'; + put 'put ''cm9sVGFibGU6W3tMSUJEUzpoLEZJTFRFUl9SSzp2fV19O3JldHVybiB5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3ZpZXdkYXRhIix5KX0pfXZpZXdEYXRhU2VhcmNoKGgsdj0hMSx5LEMpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0''@;'; + put 'put ''IGo9e1NBU0NvbnRyb2xUYWJsZTpbe1NFQVJDSFRZUEU6aC5sZW5ndGg+MD92PyJOVU0iOiJDSEFSIjoiTk9ORSIsU0VBUkNIVkFMOmgsTElCRFM6eSxGSUxURVJfUks6Q31dfTtyZXR1cm4geWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy92aWV3ZGF0YSIsail9KX1nZXRE''@;'; + put 'put ''ZXRhaWxzKGgsdix5KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBDPXt9O3JldHVybiBDW3ZdPVtoXSx5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCh5LEMpfSl9c2hvd0RpZmZzKGgsdix5KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1''@;'; + put 'put ''bmN0aW9uKigpe2xldCBDPXt9O3JldHVybiBDW3ZdPVtoXSx5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCh5LEMse3VzZUNvbXB1dGVBcGk6ITF9KX0pfXJlamVjdGluZyhoLHYseSl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgQz17fTtyZXR1cm4g''@;'; + put 'put ''Q1t2XT1baF0seWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoeSxDLHt1c2VDb21wdXRlQXBpOiExfSl9KX1hcHByb3ZlVGFibGUoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IEM9e307cmV0dXJuIENbdl09W2hdLHlpZWxkIHRoaXMuc2Fz''@;'; + put 'put ''U2VydmljZS5yZXF1ZXN0KHksQyl9KX1nZXRIaXN0b3J5KGgsdix5KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBDPXt9O3JldHVybiBDW3ZdPVtoXSx5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCh5LEMpfSl9c2V0UXVlcnlWYXJpYWJsZXMoaCx2''@;'; + put 'put ''KXt0aGlzLmNvbHVtbnMubmV4dCh7ZGF0YTp7Y29sczp2fSxsaWJkczpofSl9Z2V0Q2hhbmdlSW5mbyhoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCB5PXtTQVNDb250cm9sVGFibGU6W3tUQUJMRTpofV19O3JldHVybiB5aWVsZCB0aGlzLnNhc1NlcnZp''@;'; + put 'put ''Y2UucmVxdWVzdCgicHVibGljL2dldGNoYW5nZWluZm8iLHkpfSl9Z2V0UXVlcnlWYWx1ZXMoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IEM9e2l3YW50Olt7bGliZHM6dixjb2w6aH1dfTtyZXR1cm4geS5sZW5ndGg+MCYmKEMuRklMVEVSUVVF''@;'; + put 'put ''Ulk9eSkseWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy9nZXRjb2x2YWxzIixDKS5jYXRjaChqPT57dGhyb3cgan0pfSl9c2F2ZVF1ZXJ5KGgsdil7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgeT17aXdhbnQ6W3tmaWx0ZXJfdGFibGU6''@;'; + put 'put ''aH1dLGZpbHRlcnF1ZXJ5OnZ9LEM9eWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy92YWxpZGF0ZWZpbHRlciIseSk7cmV0dXJuIHRoaXMuZmlsdGVyLm5leHQoQyksQ30pfW9wZW5UYWJsZShoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xl''@;'; + put 'put ''dCB2PXtpd2FudDpbe3RhYmxlX2lkOmh9XX07cmV0dXJuIHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJhdWRpdG9ycy9nZXRzdGFnZXRhYmxlIix2KX0pfWNoZWNrT3BlcmF0b3IoaCx2LHkpe2xldCBDO3N3aXRjaChoKXtjYXNlIkJFVFdFRU4iOnYgaW5zdGFuY2VvZiBBcnJheSYm''@;'; + put 'put ''KCIiIT09dlswXSYmIiIhPT12WzFdP0M9dlswXSsiIEFORCAiK3ZbMV06IiIhPT12WzBdJiYiIj09PXZbMV0/KHZbMV09Ii4iLEM9dlswXSsiIEFORCAiK3ZbMV0pOiIiPT09dlswXSYmIiIhPT12WzFdPyh2WzBdPSIuIixDPXZbMF0rIiBBTkQgIit2WzFdKToodlswXT0iLiIsdlsxXT0iLiIs''@;'; + put 'put ''Qz12WzBdKyIgQU5EICIrdlsxXSkpO2JyZWFrO2Nhc2UiSU4iOmNhc2UiTk9UIElOIjpsZXQgaj1bXTtpZih2b2lkIDAhPT12KWZvcihsZXQgdWU9MDt1ZTx2Lmxlbmd0aDt1ZSsrKSEwPT09dlt1ZV0uY2hlY2tlZCYmKCJjaGFyIj09PXk/KCJzdHJpbmciPT10eXBlb2Ygdlt1ZV0udmFsJiYo''@;'; + put 'put ''dlt1ZV0udmFsPXZbdWVdLnZhbC5yZXBsYWNlKCInIiwiJyciKSksai5wdXNoKCInIit2W3VlXS52YWwrIiciKSk6KG51bGw9PT12W3VlXS52YWwmJih2W3VlXS52YWw9Ii4iKSxqLnB1c2godlt1ZV0udmFsKSkpO3Y9IigiK2orIikiO2JyZWFrO2Nhc2UiQ09OVEFJTlMiOmg9Ij8iO2JyZWFr''@;'; + put 'put ''O2Nhc2UiTk9UIEVRVUFMIjpoPSJuZSJ9cmV0dXJuIm51bSI9PT15JiZudWxsPT09diYmKHY9Ii4iKSwiUGxlYXNlIHNlbGVjdCB2YWx1ZSI9PT12JiYodj0iIiksLTEhPT1bIj0iLCI+IiwiPCIsIjw9IiwiPj0iLCJuZSJdLmluZGV4T2YoaCkmJiJudW0iPT09eSYmIiI9PT12JiYodj0iLiIp''@;'; + put 'put ''LCJCRVRXRUVOIj09PWg/e3ZhbHVlOkMsb3BlcmF0b3I6aH06e3ZhbHVlOnYsb3BlcmF0b3I6aH19d2hlcmVDbGF1c2VDcmVhdG9yKGgsdix5KXtsZXQgdWUsTmUsQz0iIixfZT0iIixCZT1bXTtmb3IobGV0IGR0PTA7ZHQ8aC5xdWVyeU9iai5sZW5ndGg7ZHQrKyl7bGV0IE90PSIiLCR0PWgu''@;'; + put 'put ''cXVlcnlPYmpbZHRdO2ZvcihsZXQgZm49MDtmbjwkdC5lbGVtZW50cy5sZW5ndGg7Zm4rKyl7bGV0IGlyLExuPSR0LmVsZW1lbnRzW2ZuXTt1ZT1mbjwkdC5lbGVtZW50cy5sZW5ndGgtMT8kdC5jbGF1c2VMb2dpYzoiIjtmb3IobGV0IHlpPTA7eWk8TG4udmFsdWVzLmxlbmd0aDt5aSsrKXtp''@;'; + put 'put ''Zigic3RyaW5nIj09dHlwZW9mIExuLnZhbHVlJiYibnVtYmVyIj09dHlwZW9mIExuLnZhbHVlc1t5aV0uZm9ybWF0dGVkKUxuLnZhbHVlPT09SlNPTi5zdHJpbmdpZnkoTG4udmFsdWVzW3lpXS5mb3JtYXR0ZWQpJiYoaXI9TG4udmFsdWVzW3lpXS51bmZvcm1hdHRlZCk7ZWxzZXtsZXQgU289''@;'; + put 'put ''Im51bWJlciIhPXR5cGVvZiBMbi52YWx1ZXNbeWldLmZvcm1hdHRlZCYmbnVsbCE9PUxuLnZhbHVlc1t5aV0uZm9ybWF0dGVkP0xuLnZhbHVlc1t5aV0uZm9ybWF0dGVkLnRyaW0oKTpMbi52YWx1ZXNbeWldLmZvcm1hdHRlZDtMbi52YWx1ZT09PVNvJiYoaXI9TG4udmFsdWVzW3lpXS51bmZv''@;'; + put 'put ''cm1hdHRlZCl9bGV0IEtpPVsiPSIsIj4iLCI8IiwiPD0iLCI+PSIsIm5lIl07IlBsZWFzZSBzZWxlY3QgdmFsdWUiPT09TG4udmFsdWUmJi0xIT09S2kuaW5kZXhPZihMbi5vcGVyYXRvcikmJihpcj0iIiksKCJDT05UQUlOUyI9PT1Mbi5vcGVyYXRvcnx8IkxJS0UiPT09TG4ub3BlcmF0b3J8''@;'; + put 'put ''fCJCRUdJTlNfV0lUSCI9PT1Mbi5vcGVyYXRvcikmJihpcj1Mbi52YWx1ZSl9aWYoaXJ8fChpcj1Mbi52YWx1ZSksTG4udmFsdWUgaW5zdGFuY2VvZiBBcnJheSYmIkJFVFdFRU4iPT09TG4ub3BlcmF0b3Ipe2lyPVtdLGlyLnB1c2goTG4udmFsdWVbMF0pLGlyLnB1c2goTG4udmFsdWVbMV0p''@;'; + put 'put ''O2ZvcihsZXQgeWk9MDt5aTxMbi52YWx1ZXMubGVuZ3RoO3lpKyspaXJbMF09PT1Mbi52YWx1ZXNbeWldLmZvcm1hdHRlZCYmKGlyWzBdPUxuLnZhbHVlc1t5aV0udW5mb3JtYXR0ZWQpLGlyWzFdPT09TG4udmFsdWVzW3lpXS5mb3JtYXR0ZWQmJihpclsxXT1Mbi52YWx1ZXNbeWldLnVuZm9y''@;'; + put 'put ''bWF0dGVkKX1pZihMbi52YWx1ZSBpbnN0YW5jZW9mIEFycmF5JiYoIklOIj09PUxuLm9wZXJhdG9yfHwiTk9UIElOIj09PUxuLm9wZXJhdG9yKSl7aXI9W10saXI9TG4udmFsdWU7Zm9yKGxldCB5aT0wO3lpPExuLnZhbHVlcy5sZW5ndGg7eWkrKylpclt5aV0mJmlyW3lpXS52YWw9PT1Mbi52''@;'; + put 'put ''YWx1ZXNbeWldLmZvcm1hdHRlZCYmKGlyW3lpXS52YWw9TG4udmFsdWVzW3lpXS51bmZvcm1hdHRlZCl9bGV0IFFyLG1yPUxuLnR5cGUsU3I9bnVsbD09PUxuLnZhcmlhYmxlPyIiOkxuLnZhcmlhYmxlLHdyPW51bGw9PT1Mbi5vcGVyYXRvcj8iIjpMbi5vcGVyYXRvcjtRcj10aGlzLmNoZWNr''@;'; + put 'put ''T3BlcmF0b3Iod3IsaXIsbXIpLnZhbHVlLCJzdHJpbmciPT10eXBlb2YgUXImJiIoIiE9PVFyWzBdJiYoUXI9UXIucmVwbGFjZSgiJyIsIicnIikpLHdyPXRoaXMuY2hlY2tPcGVyYXRvcih3cixRcixtcikub3BlcmF0b3IsImNoYXIiPT09bXImJiJJTiIhPT13ciYmIk5PVCBJTiIhPT13cj8o''@;'; + put 'put ''dm9pZCAwPT09UXImJihRcj0iIiksUXI9IiAnIitRcisiJyAiLE90PU90KyIgIitTcisiICIrd3IrUXIrdWUpOigibnVtIj09PW1yJiZ2b2lkIDA9PT1RciYmKFFyPSIuIiksUXI9dm9pZCAwPT09UXI/IiI6IiAiK1FyKyIgIixPdD1PdCsiICIrU3IrIiAiK3dyK1FyK3VlKX1CZS5wdXNoKE90''@;'; + put 'put ''KX1fZT0iIjtmb3IobGV0IGR0PTA7ZHQ8QmUubGVuZ3RoO2R0KyspTmU9ZHQ8QmUubGVuZ3RoLTE/djoiIixfZT0xPT09QmUubGVuZ3RoP0JlWzBdOl9lKyIgKCIrQmVbZHRdKyIpICIrTmU7cmV0dXJuIEM9X2Uuc3Vic3RyKDEpLnNsaWNlKDAsLTEpLF9lPSJXSEVSRSIrX2UrIjsiLHRoaXMu''@;'; + put 'put ''cXVlcnkubmV4dCh7d2hlcmVDbGF1c2U6X2Usc3RyaW5nOkMsb2JqOmgsbGliZHM6eX0pLHt3aGVyZUNsYXVzZTpfZSxzdHJpbmc6Q319Y3JlYXRlRmlsdGVyUXVlcnlUYWJsZShoKXtjb25zdCB2PVtdO3JldHVybiBoLmZpbHRlckdyb3Vwcy5mb3JFYWNoKCh5LEMpPT57eS5maWx0ZXJDbGF1''@;'; + put 'put ''c2VzLmZvckVhY2goST0+e2xldCBqPSIiOyJCRVRXRUVOIj09PUkub3BlcmF0b3I/aj1gJHtJLnZhbHVlWzBdfSBBTkQgJHtJLnZhbHVlWzFdfWA6IklOIj09PUkub3BlcmF0b3J8fCJOT1QgSU4iPT09SS5vcGVyYXRvcj8oSS52YWx1ZS5mb3JFYWNoKHVlPT57aWYodWUuY2hlY2tlZCl7Y29u''@;'; + put 'put ''c3QgX2U9dWUudmFsOyJzdHJpbmciIT10eXBlb2YgX2V8fCgwLHl3LmlzU3BlY2lhbE1pc3NpbmcpKF9lKT9qLmxlbmd0aD4wP2orPWAsJHtfZX1gOmo9YCgke19lfWA6ai5sZW5ndGg+MD9qKz1gLCcke19lLnJlcGxhY2UoLycvZywiJyciKX0nYDpqPWAoJyR7X2UucmVwbGFjZSgvJy9nLCIn''@;'; + put 'put ''JyIpfSdgfX0pLGoubGVuZ3RoPjAmJihqKz0iKSIpKToiIj09PUkudmFsdWU/aj0iY2hhciI9PT1JLnR5cGU/IicgJyI6Ii4iOiJjaGFyIj09PUkudHlwZSYmKGo9YCcke0kudmFsdWUucmVwbGFjZSgvJy9nLCInJyIpfSdgKSx2LnB1c2goe0dST1VQX0xPR0lDOmguZ3JvdXBMb2dpYyxTVUJH''@;'; + put 'put ''Uk9VUF9MT0dJQzp5LmNsYXVzZUxvZ2ljfHwiQU5EIixTVUJHUk9VUF9JRDpDLFZBUklBQkxFX05NOkkudmFyaWFibGUsT1BFUkFUT1JfTk06SS5vcGVyYXRvcixSQVdfVkFMVUU6anx8SS52YWx1ZX0pfSl9KSx2fWluaXRpYWxpemVHbG9iYWxGaWx0ZXJDbGF1c2UoaCx2KXtsZXQgeT0idmll''@;'; + put 'put ''d2VyIjsiZWRpdCI9PT1oJiYoeT0iZWRpdG9yIiksbmlbeV0uZmlsdGVyLmNsYXVzZXM9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh7cXVlcnlPYmo6W10sY2xhdXNlTG9naWM6W10sZ3JvdXBMb2dpYzpuaVt5XS5maWx0ZXIucXVlcnlbMF0uR1JPVVBfTE9HSUN9KSxuaVt5XS5maWx0''@;'; + put 'put ''ZXIuZ3JvdXBMb2dpYz1uaVt5XS5maWx0ZXIucXVlcnlbMF0uR1JPVVBfTE9HSUM7bGV0IEk9IiIsaj17ZWxlbWVudHM6W119LHVlPTA7bmlbeV0uZmlsdGVyLnF1ZXJ5LmZvckVhY2goX2U9Pntjb25zdCBCZT17fTtmb3IobGV0IE5lPTA7TmU8di5sZW5ndGg7TmUrKylpZih2W05lXS5OQU1F''@;'; + put 'put ''PT09X2UuVkFSSUFCTEVfTk0pe2lmKEk9X2UuU1VCR1JPVVBfTE9HSUMsQmUuZGR0eXBlPXZbTmVdLkREVFlQRSxCZS50eXBlPXZbTmVdLlRZUEUsQmUub3BlcmF0b3JzPSJudW0iPT09dltOZV0uVFlQRT9uaS5vcGVyYXRvcnMubnVtT3BlcmF0b3JzOm5pLm9wZXJhdG9ycy5jaGFyT3BlcmF0''@;'; + put 'put ''b3JzLEJlLmxvZ2ljPW51bGwsQmUub3BlcmF0b3I9X2UuT1BFUkFUT1JfTk0sQmUudmFyaWFibGU9X2UuVkFSSUFCTEVfTk0sImNoYXIiPT09dltOZV0uVFlQRSlpZigiSU4iPT09X2UuT1BFUkFUT1JfTk18fCJOT1QgSU4iPT09X2UuT1BFUkFUT1JfTk0pe2NvbnN0IEtlPVtdLE90PV9lLlJB''@;'; + put 'put ''V19WQUxVRS5zbGljZSgxLC0xKS5zcGxpdCgiJywnIik7MT09PU90Lmxlbmd0aD9LZS5wdXNoKHtjaGVja2VkOiEwLHZhbDpPdFswXS5zbGljZSgxLC0xKS5yZXBsYWNlKC8nJy9nLCInIil9KTpPdC5mb3JFYWNoKCgkdCxmbik9PntLZS5wdXNoKDA9PT1mbj97Y2hlY2tlZDohMCx2YWw6JHQu''@;'; + put 'put ''c2xpY2UoMSkucmVwbGFjZSgvJycvZywiJyIpfTpmbj09PU90Lmxlbmd0aC0xP3tjaGVja2VkOiEwLHZhbDokdC5zbGljZSgwLC0xKS5yZXBsYWNlKC8nJy9nLCInIil9OntjaGVja2VkOiEwLHZhbDokdC5yZXBsYWNlKC8nJy9nLCInIil9KX0pLEJlLnZhbHVlPXRoaXMuaGVscGVyU2Vydmlj''@;'; + put 'put ''ZS5kZWVwQ2xvbmUoS2UpfWVsc2UgQmUudmFsdWU9X2UuUkFXX1ZBTFVFLnNsaWNlKDEsLTEpLnJlcGxhY2UoLycnL2csIiciKTtlbHNlIGlmKCJJTiI9PT1fZS5PUEVSQVRPUl9OTXx8Ik5PVCBJTiI9PT1fZS5PUEVSQVRPUl9OTSl7Y29uc3QgS2U9W107X2UuUkFXX1ZBTFVFLnNsaWNlKDEs''@;'; + put 'put ''LTEpLnNwbGl0KCIsIikuZm9yRWFjaCgoJHQsZm4pPT57S2UucHVzaCh7Y2hlY2tlZDohMCx2YWw6JHR9KX0pLEJlLnZhbHVlPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoS2UpfWVsc2UgaWYoIkJFVFdFRU4iPT09X2UuT1BFUkFUT1JfTk0pe2NvbnN0IEtlPV9lLlJBV19WQUxVRS5z''@;'; + put 'put ''cGxpdCgiIEFORCAiKTtCZS52YWx1ZT1LZX1lbHNlIEJlLnZhbHVlPV9lLlJBV19WQUxVRTtCZS52YWx1ZXM9W10sdWU9PT1fZS5TVUJHUk9VUF9JRHx8KG5pW3ldLmZpbHRlci5jbGF1c2VzLnF1ZXJ5T2JqLnB1c2godGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShqKSksbmlbeV0uZmls''@;'; + put 'put ''dGVyLmNsYXVzZXMucXVlcnlPYmpbdWVdLmNsYXVzZUxvZ2ljPUksbmlbeV0uZmlsdGVyLmNsYXVzZXMucXVlcnlPYmpbdWVdLmludmFsaWRDbGF1c2U9ITEsdWUrKyxqLmVsZW1lbnRzPVtdKSxqLmVsZW1lbnRzLnB1c2godGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShCZSkpO2JyZWFr''@;'; + put 'put ''fX0pLGouZWxlbWVudHMubGVuZ3RoPjAmJihuaVt5XS5maWx0ZXIuY2xhdXNlcy5xdWVyeU9iai5wdXNoKHRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoaikpLG5pW3ldLmZpbHRlci5jbGF1c2VzLnF1ZXJ5T2JqW3VlXS5jbGF1c2VMb2dpYz1JLG5pW3ldLmZpbHRlci5jbGF1c2VzLnF1''@;'; + put 'put ''ZXJ5T2JqW3VlXS5pbnZhbGlkQ2xhdXNlPSExKSxuaVt5XS5maWx0ZXIucXVlcnk9W119cmVtb3ZlQ2xhdXNlKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5yZW1vdmVRdWVyeS5uZXh0KCEwKSwhMH0pfXNwZWNDb252ZXJzaW9uKGgpe2xl''@;'; + put 'put ''dCB2PXt9LHk9W107aWYoeT1oLm1hcChmdW5jdGlvbihDKXtyZXR1cm4gQy5OQU1FLnRvVXBwZXJDYXNlKCl9KSxoIGluc3RhbmNlb2YgQXJyYXkpZm9yKGxldCBDPTA7Qzx5Lmxlbmd0aDtDKyspdlt5W0NdXT0xPT09aFtDXS5UWVBFP3tjb2xUeXBlOiJudW0iLGNvbExlbmd0aDpoW0NdLkxF''@;'; + put 'put ''TkdUSH06e2NvbFR5cGU6InN0cmluZyIsY29sTGVuZ3RoOmhbQ10uTEVOR1RIfTtyZXR1cm4gdn1zZXRTdWJtaXRSZWFkeSgpe3RoaXMuc2V0U3VibWl0Lm5leHQoITApfWdvVG9TdWJtaXRMaXN0KCl7dGhpcy5zZXRTdWJtaXRMaXN0Lm5leHQoITApfXBhcnNlRm9ybWF0cyhoKXtjb25zdCB2''@;'; + put 'put ''PXt9LHk9aC52YXJzO2ZvcihsZXQgQyBvZiBPYmplY3Qua2V5cyh5KSl7Y29uc3QgST15W0NdLnR5cGUsaj15W0NdLmxlbmd0aDsibnVtIj09PUk/dltDXT0iYmVzdC4iOiJjaGFyIj09PUkmJih2W0NdPWAkY2hhciR7an0uYCl9cmV0dXJuIHZ9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlv''@;'; + put 'put ''bihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGcyKSxDaShYYyksQ2koc2MpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTtmdW5jdGlvbiBXSGUoZCxnKXsxJmQmJihpdCgwLCJkaXYiLDkpKDEsImRpdiIsMTApLENyKDIsImNsci1pY29uIiwx''@;'; + put 'put ''MSksaXQoMywiaDMiLDEyKSxVdCg0LCIgVGhlcmUgYXJlIG5vIGFwcHJvdmFscyByZW1haW5pbmcgIiksc3QoKSgpKCkpfWZ1bmN0aW9uIFlIZShkLGcpezEmZCYmKGl0KDAsImgzIiwxMyksVXQoMSwiIFJFVklFVyAiKSxzdCgpKX1mdW5jdGlvbiBVSGUoZCxnKXtpZigxJmQmJihpdCgwLCJw''@;'; + put 'put ''IiwxNCksVXQoMSwiIFlvdSBoYXZlICIpLGl0KDIsInNwYW4iKSxVdCgzKSxzdCgpLFV0KDQsImFwcHJvdmFscyByZW1haW5pbmcgIiksc3QoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMyksSmkoIiIsaC5yZW1haW5lZCwiICIpfX1mdW5jdGlvbiBRSGUoZCxnKXsxJmQmJihpdCgwLCJzcGFu''@;'; + put 'put ''IiwxNyksVXQoMSwiIExvYWRpbmcuLi4gIiksc3QoKSl9ZnVuY3Rpb24gSkhlKGQsZyl7MSZkJiYoaXQoMCwiZGl2IikoMSwiaDMiKSxVdCgyLCJMb2FkaW5nIGFwcHJvdmFscyBsaXN0Iiksc3QoKSgpKX1mdW5jdGlvbiBYSGUoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDE1KSxybigxLFFI''@;'; + put 'put ''ZSwyLDAsInNwYW4iLDE2KSxybigyLEpIZSwzLDAsImRpdiIsOCksc3QoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMSksVHQoIm5nSWYiLCFoLmxvYWRlZCksdXQoMSksVHQoIm5nSWYiLCFoLmxvYWRlZCl9fWZ1bmN0aW9uIEtIZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDM4KX1mdW5j''@;'; + put 'put ''dGlvbiAkSGUoZCxnKXsxJmQmJkNyKDAsImNsci1zcGlubmVyIiwzOSksMiZkJiZUdCgiY2xyU21hbGwiLCEwKX1mdW5jdGlvbiBxSGUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItZGctcm93IikoMSwiY2xyLWRnLWNlbGwiKSxVdCgyKSxzdCgpLGl0KDMsImNsci1kZy1j''@;'; + put 'put ''ZWxsIiksVXQoNCksc3QoKSxpdCg1LCJjbHItZGctY2VsbCIpLFV0KDYpLHN0KCksaXQoNywiY2xyLWRnLWNlbGwiKSxVdCg4KSxzdCgpLGl0KDksImNsci1kZy1jZWxsIikoMTAsImRpdiIsMjYpKDExLCJhIiwyNyksWW4oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9cnQoaCkuaW5kZXg7''@;'; + put 'put ''cmV0dXJuIGEoS3QoMikuZ2V0Q2xpY2tlZChDKSl9KSxDcigxMiwiY2xyLWljb24iLDI4KSxpdCgxMywic3BhbiIsMjkpLFV0KDE0LCJHbyB0byByZXZpZXcgcGFnZSBzY3JlZW4iKSxzdCgpKCksaXQoMTUsImEiLDMwKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgeT1ydChoKSxDPXku''@;'; + put 'put ''JGltcGxpY2l0LEk9eS5pbmRleCxqPUt0KDIpO3JldHVybiBhKEMucmVqZWN0TG9hZGluZz8iIjpqLnJlamVjdGluZyhJKSl9KSxybigxNixLSGUsMSwwLCJjbHItaWNvbiIsMzEpLHJuKDE3LCRIZSwxLDEsImNsci1zcGlubmVyIiwzMiksaXQoMTgsInNwYW4iLDI5KSxVdCgxOSwiUmVqZWN0''@;'; + put 'put ''Iiksc3QoKSgpLGl0KDIwLCJhIiwzMyksWW4oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9cnQoaCkuJGltcGxpY2l0O3JldHVybiBhKEt0KDIpLmdldFRhYmxlKEMudGFibGVJZCkpfSksQ3IoMjEsImNsci1pY29uIiwzNCksaXQoMjIsInNwYW4iLDI5KSxVdCgyMywiR28gdG8gc3RhZ2Vk''@;'; + put 'put ''IGRhdGEgc2NyZWVuIiksc3QoKSgpKCkoKSxpdCgyNCwiY2xyLWRnLWNlbGwiLDM1KSgyNSwiYnV0dG9uIiwzNiksWW4oImNsaWNrIixmdW5jdGlvbih5KXtjb25zdCBJPXJ0KGgpLiRpbXBsaWNpdDtyZXR1cm4gS3QoMikuZG93bmxvYWQoSS50YWJsZUlkKSxhKHkuc3RvcFByb3BhZ2F0aW9u''@;'; + put 'put ''KCkpfSksQ3IoMjYsImNsci1pY29uIiwzNyksc3QoKSgpKCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDIpLEdpKGguc3VibWl0dGVyKSx1dCgyKSxHaShoLmJhc2VUYWJsZSksdXQoMiksR2koaC5zdWJtaXR0ZWQpLHV0KDIpLEdpKGguc3VibWl0UmVhc29uKSx1dCg4KSxUdCgi''@;'; + put 'put ''bmdJZiIsIWgucmVqZWN0TG9hZGluZyksdXQoMSksVHQoIm5nSWYiLGgucmVqZWN0TG9hZGluZyksdXQoOCksVHQoImlkIixoLnRhYmxlSWQpfX1mdW5jdGlvbiBlTmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiKSgxLCJjbHItZGF0YWdyaWQiLDE4KSgyLCJjbHItZGct''@;'; + put 'put ''Y29sdW1uIiwxOSksVXQoMywiU1VCTUlUVEVSIiksc3QoKSxpdCg0LCJjbHItZGctY29sdW1uIiwxOSksVXQoNSwiQkFTRSBUQUJMRSIpLHN0KCksaXQoNiwiY2xyLWRnLWNvbHVtbiIsMTkpLFV0KDcsIlNVQk1JVFRFRCIpLHN0KCksaXQoOCwiY2xyLWRnLWNvbHVtbiIsMTkpLFV0KDksIlNV''@;'; + put 'put ''Qk1JVCBSRUFTT04iKSxzdCgpLGl0KDEwLCJjbHItZGctY29sdW1uIiksVXQoMTEsIkFDVElPTiIpLHN0KCksaXQoMTIsImNsci1kZy1jb2x1bW4iKSxVdCgxMywiRE9XTkxPQUQiKSxzdCgpLHJuKDE0LHFIZSwyNyw3LCJjbHItZGctcm93IiwyMCksaXQoMTUsImNsci1kZy1mb290ZXIiLDIx''@;'; + put 'put ''KSgxNiwic3BhbiIpLFV0KDE3LCJpdGVtcyBwZXIgcGFnZSIpLHN0KCksaXQoMTgsInNlbGVjdCIsMjIpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLml0ZW1zTnVtPXkpfSksaXQoMTksIm9wdGlvbiIsMjMpLFV0KDIwLCIzIiksc3QoKSxpdCgy''@;'; + put 'put ''MSwib3B0aW9uIiwyMyksVXQoMjIsIjUiKSxzdCgpLGl0KDIzLCJvcHRpb24iLDIzKSxVdCgyNCwiMTAiKSxzdCgpLGl0KDI1LCJvcHRpb24iLDIzKSxVdCgyNiwiMTUiKSxzdCgpKCksaXQoMjcsImNsci1kZy1wYWdpbmF0aW9uIiwyNCwyNSksVXQoMjkpLHN0KCkoKSgpKCl9aWYoMiZkKXtj''@;'; + put 'put ''b25zdCBoPXlhKDI4KSx2PUt0KCk7dXQoMiksVHQoImNsckRnRmllbGQiLCJzdWJtaXR0ZXIiKSx1dCgyKSxUdCgiY2xyRGdGaWVsZCIsImJhc2VUYWJsZSIpLHV0KDIpLFR0KCJjbHJEZ0ZpZWxkIiwic3VibWl0dGVkIiksdXQoMiksVHQoImNsckRnRmllbGQiLCJzdWJtaXRSZWFzb24iKSx1''@;'; + put 'put ''dCg2KSxUdCgiY2xyRGdJdGVtc09mIix2LmFwcHJvdmVMaXN0KSx1dCg0KSxUdCgibmdNb2RlbCIsdi5pdGVtc051bSksdXQoMSksVHQoIm5nVmFsdWUiLDMpLHV0KDIpLFR0KCJuZ1ZhbHVlIiw1KSx1dCgyKSxUdCgibmdWYWx1ZSIsMTApLHV0KDIpLFR0KCJuZ1ZhbHVlIiwxNSksdXQoMiks''@;'; + put 'put ''VHQoImNsckRnUGFnZVNpemUiLHYuaXRlbXNOdW0pLHV0KDIpLGtmKCIgIixoLmZpcnN0SXRlbSsxLCIgLSAiLGgubGFzdEl0ZW0rMSwiIG9mICIsaC50b3RhbEl0ZW1zLCIgYXBwcm92YWxzICIpfX1jb25zdCB0TmU9ZnVuY3Rpb24oZCl7cmV0dXJue25vQm9yZGVyOmR9fTtsZXQgQndlPSgo''@;'; + put 'put ''KT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLnNhc1N0b3JlU2VydmljZT1oLHRoaXMuZXZlbnRTZXJ2aWNlPXYsdGhpcy5yb3V0ZT15LHRoaXMuc2FzU2VydmljZT1DLHRoaXMuY2RyPUksdGhpcy5sb2FkZWQ9ITEsdGhpcy5pdGVtc051bT0xMH1nZXRUYWJsZShoKXt0''@;'; + put 'put ''aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9zdGFnZS8iK2gpfWdldENsaWNrZWQoaCl7dm9pZCAwIT09dGhpcy5hcHByb3ZlTGlzdCYmKHRoaXMudGFibGVJZD10aGlzLmFwcHJvdmVMaXN0W2hdLnRhYmxlSWQsdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCJhcHByb3ZlL2FwcHJvdmVEZXQv''@;'; + put 'put ''Iit0aGlzLmFwcHJvdmVMaXN0W2hdLnRhYmxlSWQpKX1yZWplY3RpbmcoaCl7dmFyIHY7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt2b2lkIDAhPT10aGlzLmFwcHJvdmVMaXN0JiYodGhpcy50YWJsZUlkPXRoaXMuYXBwcm92ZUxpc3RbaF0udGFibGVJZCk7bGV0''@;'; + put 'put ''IHk9e1NUUF9BQ1RJT046IlJFSkVDVF9UQUJMRSIsVEFCTEU6dGhpcy50YWJsZUlkLFNUUF9SRUFTT046InF1aWNrIHJlamVjdGlvbiJ9O3RyeXsodGhpcy5hcHByb3ZlTGlzdHx8W10pW2hdLnJlamVjdExvYWRpbmc9ITAsKHlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnJlamVjdGluZyh5''@;'; + put 'put ''LCJCcm93c2VyUGFyYW1zIiwiYXBwcm92ZXJzL3JlamVjdGlvbiIpKS5mcm9tc2FzWzBdLlJFU1BPTlNFLmluY2x1ZGVzKCJTVUNDRVNTIikmJigodGhpcy5hcHByb3ZlTGlzdHx8W10pW2hdLnJlamVjdExvYWRpbmc9ITEsbnVsbD09PSh2PXRoaXMuYXBwcm92ZUxpc3QpfHx2b2lkIDA9PT12''@;'; + put 'put ''fHx2LnNwbGljZShoLDEpLHRoaXMucmVtYWluZWQtLSx0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpfWNhdGNoKEMpe3RoaXMuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigiYXBwcm92ZXJzL3JlamVjdGlvbiIsQyl9fSl9bmdPbkluaXQoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAs''@;'; + put 'put ''dm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuZmV0Y2hBcHByb3ZhbHMoKX0pfWZldGNoQXBwcm92YWxzKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLml0ZW1zTnVtPTEwO2xldCBoPXtTVFBfQUNUSU9OOiJPUEVOX0FQUFJPVkFMUyJ9O3RyeXtsZXQgdj15''@;'; + put 'put ''aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS5nZXRBcHByb3ZhbHMoaCwiQnJvd3NlclBhcmFtcyIsImFwcHJvdmVycy9nZXRhcHByb3ZhbHMiKTt0aGlzLnJlbWFpbmVkPXYuZnJvbXNhcy5sZW5ndGg7bGV0IHk9di5mcm9tc2FzLm1hcChmdW5jdGlvbihDKXtyZXR1cm57dGFibGVJZDpDLlRB''@;'; + put 'put ''QkxFX0lELHN1Ym1pdHRlcjpDLlNVQk1JVFRFRF9CWV9OTSxzdWJtaXR0ZWQ6Qy5TVUJNSVRURURfT05fRFRUTSxiYXNlVGFibGU6Qy5CQVNFX1RBQkxFLHN1Ym1pdFJlYXNvbjpDLlNVQk1JVFRFRF9SRUFTT05fVFhUfX0pO3RoaXMuYXBwcm92ZUxpc3Q9eSx0aGlzLmxvYWRlZD0hMH1jYXRj''@;'; + put 'put ''aCh2KXt0aGlzLmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoImFwcHJvdmVycy9nZXRhcHByb3ZhbHMiLHYpfX0pfWRvd25sb2FkKGgpe2xldCB2PXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLHk9di5zZXJ2ZXJVcmwsQz12LmFwcExvYyxJPXRoaXMuc2FzU2Vydmlj''@;'; + put 'put ''ZS5nZXRFeGVjdXRpb25QYXRoKCk7d2luZG93Lm9wZW4oeStJKyIvP19wcm9ncmFtPSIrQysiL3NlcnZpY2VzL2F1ZGl0b3JzL2dldGF1ZGl0ZmlsZSZ0YWJsZT0iK2gpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChrZyksWHQobXUpLFh0KFps''@;'; + put 'put ''KSxYdChnMiksWHQoZDEpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLWFwcHJvdmUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjksdmFyczo4LGNvbnN0czpbWzEsImNvbnRlbnQtYXJlYSJdLFsxLCJjYXJkIl0sWyJzdHlsZSIs''@;'; + put 'put ''ImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyIiw0LCJuZ0lmIl0sWzEsImNhcmQtaGVhZGVyIiwzLCJuZ0NsYXNzIl0sWyJjbGFzcyIsImNlbnRlciBjbHItY29sLW1kLTEyIiwic3R5bGUiLCJ0ZXh0LWFsaWduOiBjZW50ZXIiLDQsIm5nSWYiXSxbInN0eWxlIiwidGV4''@;'; + put 'put ''dC1hbGlnbjogY2VudGVyOyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogIzQ5NTk2NyIsNCwibmdJZiJdLFsic3R5bGUiLCJcbiAgICAgICAgaGVpZ2h0OiA3MHZoO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxl''@;'; + put 'put ''eC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICIsNCwibmdJZiJdLFsibmctaWYiLCJsb2FkZWQiLDEsImNsci1jb2wtbWQtMTIiXSxbNCwibmdJZiJdLFsyLCJkaXNwbGF5IiwiZmxleCIsImp1c3RpZnktY29udGVudCIsImNlbnRlciJd''@;'; + put 'put ''LFsxLCJjYXJkLWJsb2NrIiwyLCJkaXNwbGF5IiwiZmxleCIsImp1c3RpZnktY29udGVudCIsImNlbnRlciIsImZsZXgtZGlyZWN0aW9uIiwiY29sdW1uIiwiYWxpZ24taXRlbXMiLCJjZW50ZXIiLCJoZWlnaHQiLCJjYWxjKDEwMHZoIC0gMjAwcHgpIl0sWyJzaGFwZSIsIndhcm5pbmctc3Rh''@;'; + put 'put ''bmRhcmQiLCJzaXplIiwiNjAiLDEsImlzLWluZm8iLDIsImZpbGwiLCIjODFiNDQwIl0sWzIsInRleHQtYWxpZ24iLCJjZW50ZXIiLCJjb2xvciIsIiM1YTVhNWEiXSxbMSwiY2VudGVyIiwiY2xyLWNvbC1tZC0xMiIsMiwidGV4dC1hbGlnbiIsImNlbnRlciJdLFsyLCJ0ZXh0LWFsaWduIiwi''@;'; + put 'put ''Y2VudGVyIiwiZm9udC13ZWlnaHQiLCI3MDAiLCJjb2xvciIsIiM0OTU5NjciXSxbMiwiaGVpZ2h0IiwiNzB2aCIsImRpc3BsYXkiLCJmbGV4IiwianVzdGlmeS1jb250ZW50IiwiY2VudGVyIiwiZmxleC1kaXJlY3Rpb24iLCJjb2x1bW4iLCJhbGlnbi1pdGVtcyIsImNlbnRlciJdLFsiY2xh''@;'; + put 'put ''c3MiLCJzcGlubmVyIiw0LCJuZ0lmIl0sWzEsInNwaW5uZXIiXSxbMSwiZGF0YWdyaWQtY29tcGFjdCIsImRhdGFncmlkLWN1c3RvbS1mb290ZXIiXSxbMywiY2xyRGdGaWVsZCJdLFs0LCJjbHJEZ0l0ZW1zIiwiY2xyRGdJdGVtc09mIl0sWzIsImRpc3BsYXkiLCJmbGV4IiwianVzdGlmeS1j''@;'; + put 'put ''b250ZW50IiwiZmxleC1zdGFydCJdLFszLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFszLCJuZ1ZhbHVlIl0sWzEsImNlbnRlciIsMywiY2xyRGdQYWdlU2l6ZSJdLFsicGFnaW5hdGlvbiIsIiJdLFsicm9sZSIsInRvb2x0aXAiLDEsImNsci1yb3ciLDIsImp1c3RpZnktY29udGVudCIs''@;'; + put 'put ''InNwYWNlLWFyb3VuZCJdLFsxLCJjb2x1bW4tY2VudGVyIiwibGlua3MiLCJ0b29sdGlwIiwidG9vbHRpcC1tZCIsInRvb2x0aXAtYm90dG9tLWxlZnQiLDIsImNvbG9yIiwiIzRiOWU0YiIsMywiY2xpY2siXSxbInNoYXBlIiwiY2hlY2siLCJzaXplIiwiMjQiXSxbMSwidG9vbHRpcC1jb250''@;'; + put 'put ''ZW50Il0sWzEsImNvbHVtbi1jZW50ZXIiLCJsaW5rcyIsInRvb2x0aXAiLCJ0b29sdGlwLW1kIiwidG9vbHRpcC1ib3R0b20tbGVmdCIsMiwiY29sb3IiLCIjZTQ1NDU0IiwzLCJjbGljayJdLFsic2hhcGUiLCJiYW4iLCJzaXplIiwiMjIiLDQsIm5nSWYiXSxbMywiY2xyU21hbGwiLDQsIm5n''@;'; + put 'put ''SWYiXSxbMSwiY29sdW1uLWNlbnRlciIsImxpbmtzIiwidG9vbHRpcCIsInRvb2x0aXAtbWQiLCJ0b29sdGlwLWJvdHRvbS1sZWZ0IiwyLCJjb2xvciIsIiMzZjhjYzMiLDMsImNsaWNrIl0sWyJzaGFwZSIsImNvZGUiLCJzaXplIiwiMjgiXSxbMiwicGFkZGluZyIsIjBweCIsImRpc3BsYXki''@;'; + put 'put ''LCJmbGV4IiwianVzdGlmeS1jb250ZW50IiwiY2VudGVyIl0sWzEsImJ0biIsImJ0bi1zdWNjZXNzIiwzLCJpZCIsImNsaWNrIl0sWyJzaGFwZSIsImRvd25sb2FkIl0sWyJzaGFwZSIsImJhbiIsInNpemUiLCIyMiJdLFszLCJjbHJTbWFsbCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEm''@;'; + put 'put ''aCYmKGl0KDAsImRpdiIsMCkoMSwiZGl2IiwxKSxybigyLFdIZSw1LDAsImRpdiIsMiksaXQoMywiZGl2IiwzKSxybig0LFlIZSwyLDAsImgzIiw0KSxybig1LFVIZSw1LDEsInAiLDUpLHN0KCkscm4oNixYSGUsMywyLCJkaXYiLDYpLGl0KDcsImRpdiIsNykscm4oOCxlTmUsMzAsMTQsImRp''@;'; + put 'put ''diIsOCksc3QoKSgpKCkpLDImaCYmKHV0KDIpLFR0KCJuZ0lmIiwwPT09di5yZW1haW5lZCksdXQoMSksVHQoIm5nQ2xhc3MiLFpkKDYsdE5lLCF2LmxvYWRlZCkpLHV0KDEpLFR0KCJuZ0lmIix2LmxvYWRlZCYmMCE9PXYucmVtYWluZWQpLHV0KDEpLFR0KCJuZ0lmIix2LmxvYWRlZCYmMCE9''@;'; + put 'put ''PXYucmVtYWluZWQpLHV0KDEpLFR0KCJuZ0lmIiwhdi5sb2FkZWQpLHV0KDIpLFR0KCJuZ0lmIix2LmFwcHJvdmVMaXN0JiYwIT09di5yZW1haW5lZCkpfSxkZXBlbmRlbmNpZXM6W2xjLFZvLHEzLGVkLE9mLEVzLHhzLGlaLFJMLEJMLFBMLHBTLG9aLGFaLGxaLE5MLFZMLEhMLGhTLGVaLHRa''@;'; + put 'put ''LHdsLGdhXSxzdHlsZXM6WyIuY29sdW1uLWNlbnRlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uZGF0YWdyaWRbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGFn''@;'; + put 'put ''cmlkLWNvbHVtbltfbmdjb250ZW50LSVDT01QJV0gICAuZGF0YWdyaWQtY29sdW1uLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtvdXRsaW5lOm5vbmUhaW1wb3J0YW50fS5saW5rc1tfbmdjb250ZW50LSVDT01QJV17Zm9udC13ZWlnaHQ6NzAwO2N1cnNvcjpwb2ludGVyfS50b29sdGlwLnRv''@;'; + put 'put ''b2x0aXAtYm90dG9tLWxlZnRbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0sIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0b20tbGVmdFtfbmdjb250ZW50LSVDT01QJV17YmFj''@;'; + put 'put ''a2dyb3VuZDojMzE0MzUxIWltcG9ydGFudH0udG9vbHRpcC50b29sdGlwLWJvdHRvbS1sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXSA+IC50b29sdGlwLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtY29udGVu''@;'; + put 'put ''dC50b29sdGlwLWJvdHRvbS1sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi4yNXJlbSBzb2xpZCAjMzE0MzUxO2JvcmRlci1ib3R0b206LjIwODMzcmVtIHNvbGlkICMzMTQzNTF9Lm5vQm9yZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFw''@;'; + put 'put ''eCBzb2xpZCB0cmFuc3BhcmVudCFpbXBvcnRhbnR9Il19KSxkfSkoKTtmdW5jdGlvbiBuTmUoZCxnKXtpZigxJmQmJihpdCgwLCJ0ciIpKDEsInRkIiw0KSxVdCgyKSxzdCgpLGl0KDMsInRkIiw0KSxVdCg0KSxzdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUt0KCk7dXQoMiks''@;'; + put 'put ''R2koaCksdXQoMiksR2kodi5qc1BhcmFtc1toXSl9fWZ1bmN0aW9uIHJOZShkLGcpezEmZCYmKGl0KDAsInAiLDYzKSxVdCgxLCIgVGhlcmUgYXJlIG5vIGRldGFpbHMgdG8gc2hvdyAiKSxzdCgpKX1mdW5jdGlvbiBpTmUoZCxnKXtpZigxJmQmJihGMCgwKSxpdCgxLCJkaXYiLDY0KSgyLCJz''@;'; + put 'put ''cGFuIiksVXQoMywiVGFibGUgSWQ6Iiksc3QoKSxpdCg0LCJzdHJvbmciKSxVdCg1KSxzdCgpKCksaXQoNiwiZGl2IikoNywic3BhbiIpLFV0KDgsIlN1Ym1pdHRlcjoiKSxzdCgpLGl0KDksInNwYW4iLDY1KSxVdCgxMCksc3QoKSgpLGl0KDExLCJkaXYiKSgxMiwic3BhbiIpLFV0KDEzLCJT''@;'; + put 'put ''dWJtaXR0ZWQgb246Iiksc3QoKSxpdCgxNCwic3BhbiIsNjUpLFV0KDE1KSxzdCgpKCksaXQoMTYsImRpdiIpKDE3LCJzcGFuIiksVXQoMTgsIlN1Ym1pdHRlZCBSZWFzb246Iiksc3QoKSxpdCgxOSwic3BhbiIsNjUpLFV0KDIwKSxzdCgpKCksSDAoKSksMiZkKXtjb25zdCBoPUt0KDUpO3V0''@;'; + put 'put ''KDUpLEppKCIgIixudWxsPT1oLnRhYmxlRGV0YWlscz9udWxsOmgudGFibGVEZXRhaWxzLlRBQkxFX0lELCIgIiksdXQoNSksSmkoIiAiLG51bGw9PWgudGFibGVEZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuU1VCTUlUVEVEX0JZX05NLCIgIiksdXQoNSksSmkoIiAiLG51bGw9PWgudGFi''@;'; + put 'put ''bGVEZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuU1VCTUlUVEVEX09OX0RUVE0sIiAiKSx1dCg1KSxKaSgiICIsbnVsbD09aC50YWJsZURldGFpbHM/bnVsbDpoLnRhYmxlRGV0YWlscy5TVUJNSVRURURfUkVBU09OX1RYVCwiICIpfX1mdW5jdGlvbiBvTmUoZCxnKXtpZigxJmQpe2NvbnN0''@;'; + put 'put ''IGg9X2koKTtpdCgwLCJkaXYiLDQzKSgxLCJkaXYiLDQ0KSgyLCJkaXYiLDQ1KSxybigzLHJOZSwyLDAsInAiLDM5KSxybig0LGlOZSwyMSw0LCJuZy1jb250YWluZXIiLDE2KSxzdCgpLGl0KDUsImRpdiIsNDYpKDYsImRpdiIsNDcpKDcsImRpdiIsNDgpKDgsImRpdiIsMjUpKDksImJ1dHRv''@;'; + put 'put ''biIsNDkpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KDQpO3JldHVybiBhKHkuZ29Ub0Jhc2UobnVsbD09eS5qc1BhcmFtcz9udWxsOnkuanNQYXJhbXMuVEFCTEVfTk0pKX0pLFV0KDEwLCIgR28gdG8gYmFzZSB0YWJsZSBzY3JlZW4gIiksc3QoKSxpdCgxMSwiYnV0''@;'; + put 'put ''dG9uIiw1MCksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoNCk7cmV0dXJuIGEoeS5nZXRUYWJsZSh5LnRhYmxlSWQpKX0pLFV0KDEyLCIgR28gdG8gZWRpdGVkIHNjcmVlbiAiKSxzdCgpLGl0KDEzLCJidXR0b24iLDUxKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cnQo''@;'; + put 'put ''aCk7Y29uc3QgeT1LdCg0KTtyZXR1cm4gYSh5LmdvQmFjayhudWxsPT15LmpzUGFyYW1zP251bGw6eS5qc1BhcmFtcy5UQUJMRV9OTSkpfSksVXQoMTQsIiBHbyBiYWNrIHRvIGVkaXRvciAiKSxzdCgpKCkoKSgpLGl0KDE1LCJkaXYiLDQ3KSgxNiwiYnV0dG9uIiw1MiksWW4oImNsaWNrIixm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDQpLmFwcHJvdmVUYWJsZSgpKX0pLFV0KDE3LCIgQUNDRVBUICIpLHN0KCksaXQoMTgsImJ1dHRvbiIsNTMpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCg0KS5yZWplY3RPcGVuPSEwKX0pLFV0KDE5LCIgUkVKRUNU''@;'; + put 'put ''ICIpLHN0KCksaXQoMjAsImNsci10b2dnbGUtY29udGFpbmVyIiw1NCkoMjEsImNsci10b2dnbGUtd3JhcHBlciIpKDIyLCJpbnB1dCIsNTUpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCg0KS5mb3JtYXR0ZWRWYWx1ZXM9eSl9KSgiY2hhbmdlIixm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDQpLmZvcm1hdHRpbmdDaGFuZ2VkKCkpfSksc3QoKSxpdCgyMywibGFiZWwiLDU2KSxVdCgyNCksc3QoKSgpKCkoKSxpdCgyNSwiZGl2Iiw0NykoMjYsImRpdiIsMjUpKDI3LCJkaXYiLDQwKSgyOCwic3BhbiIsNTcpLFV0KDI5LCIgQ2hhbmdl''@;'; + put 'put ''ZCBSb3dzICIpLGl0KDMwLCJzcGFuIiw1OCksVXQoMzEpLHN0KCkoKSxpdCgzMiwic3BhbiIsNTkpLFV0KDMzLCIgQWRkZWQgUm93cyAiKSxpdCgzNCwic3BhbiIsNjApLFV0KDM1KSxzdCgpKCksaXQoMzYsInNwYW4iLDYxKSxVdCgzNywiIERlbGV0ZWQgUm93cyAiKSxpdCgzOCwic3BhbiIs''@;'; + put 'put ''NjIpLFV0KDM5KSxzdCgpKCkoKSgpKCkoKSgpKCl9aWYoMiZkKXtjb25zdCBoPUt0KDQpO3V0KDMpLFR0KCJuZ0lmIiwhaC50YWJsZURldGFpbHMpLHV0KDEpLFR0KCJuZ0lmIixoLnRhYmxlRGV0YWlscyksdXQoMTIpLFR0KCJjbHJMb2FkaW5nIixoLmFjY2VwdExvYWRpbmcpKCJkaXNhYmxl''@;'; + put 'put ''ZCIsIWgubG9hZGluZ1RhYmxlfHwiTk8iPT09KG51bGw9PWgucGFyYW1zP251bGw6aC5wYXJhbXMuSVNBUFBST1ZFUil8fGgubm9DaGFuZ2VzKSx1dCgyKSxUdCgiZGlzYWJsZWQiLCFoLmxvYWRpbmdUYWJsZXx8Ik5PIj09PShudWxsPT1oLnBhcmFtcz9udWxsOmgucGFyYW1zLklTQVBQUk9W''@;'; + put 'put ''RVIpfHxoLm5vQ2hhbmdlcyksdXQoNCksVHQoIm5nTW9kZWwiLGguZm9ybWF0dGVkVmFsdWVzKSx1dCgyKSxHaShoLmZvcm1hdHRlZFZhbHVlcz8iRm9ybWF0dGVkIjoiVW5mb3JtYXR0ZWQiKSx1dCg3KSxHaShoLmxlbnMudXBkYXRlZCksdXQoNCksR2koaC5sZW5zLm5ldyksdXQoNCksR2ko''@;'; + put 'put ''aC5sZW5zLmRlbGV0ZWQpfX1mdW5jdGlvbiBhTmUoZCxnKXsxJmQmJihpdCgwLCJkaXYiKSgxLCJoMyIpLFV0KDIsIkxvYWRpbmcgdGFibGUiKSxzdCgpKCkpfWZ1bmN0aW9uIGxOZShkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsNjYpKDEsInNwYW4iLDY3KSxVdCgyLCIgTG9hZGluZy4uLiAi''@;'; + put 'put ''KSxzdCgpLHJuKDMsYU5lLDMsMCwiZGl2IiwxNiksc3QoKSksMiZkKXtjb25zdCBoPUt0KDQpO3V0KDMpLFR0KCJuZ0lmIiwhaC5sb2FkaW5nVGFibGUpfX1mdW5jdGlvbiBzTmUoZCxnKXsxJmQmJihpdCgwLCJwIiw2MyksVXQoMSwiIFRoZXJlIGFyZSBubyBjaGFuZ2VzIHRvIHNob3cgIiks''@;'; + put 'put ''c3QoKSl9ZnVuY3Rpb24gdU5lKGQsZyl7aWYoMSZkJiYoaXQoMCwidGgiLDQpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxHaShoKX19ZnVuY3Rpb24gY05lKGQsZyl7aWYoMSZkJiYoaXQoMCwic3BhbiIsNzIpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1L''@;'; + put 'put ''dCgpLmluZGV4LHY9S3QoMikuaW5kZXgseT1LdCg0KTt1dCgxKSxKaSgiT3JpZ2luYWwgdmFsdWUgaXM6ICIseS5hcnJPZkNoYW5nZXNbdl1baF0sIiIpfX1jb25zdCBQd2U9ZnVuY3Rpb24oZCl7cmV0dXJueyJjaCB0b29sdGlwIHRvb2x0aXAtbWQgdG9vbHRpcC10b3AtcmlnaHQiOmR9fTtm''@;'; + put 'put ''dW5jdGlvbiBmTmUoZCxnKXtpZigxJmQmJihpdCgwLCJ0ZCIsNzApLFV0KDEpLHJuKDIsY05lLDIsMSwic3BhbiIsNzEpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PWcuaW5kZXgseT1LdCgyKS5pbmRleCxDPUt0KDQpO1R0KCJuZ0NsYXNzIixaZCgzLFB3ZSwxPT1DLmFyckNo''@;'; + put 'put ''YW5nZWRbeV1bdl0mJiJ1cGRhdGVkIj09Qy5jaEFyclt5XSkpLHV0KDEpLEppKCIgIixDLmRpZmZUYWJsZS5kYXRhW3ldW2hdLCIgIiksdXQoMSksVHQoIm5nSWYiLDE9PUMuYXJyQ2hhbmdlZFt5XVt2XSYmInVwZGF0ZWQiPT1DLmNoQXJyW3ldKX19ZnVuY3Rpb24gaE5lKGQsZyl7aWYoMSZk''@;'; + put 'put ''JiYoRjAoMCkscm4oMSxmTmUsMyw1LCJ0ZCIsNjkpLEgwKCkpLDImZCl7Y29uc3QgaD1LdCgpLmluZGV4LHY9S3QoNCk7dXQoMSksVHQoIm5nRm9yT2YiLHYucm93S2V5c1toXSl9fWZ1bmN0aW9uIGROZShkLGcpe2lmKDEmZCYmKGl0KDAsInRkIiw0KSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0''@;'; + put 'put ''IGg9Zy4kaW1wbGljaXQsdj1LdCgyKS5pbmRleCx5PUt0KDQpO3V0KDEpLEppKCIgIix5LmRpZmZUYWJsZS5kYXRhW3ZdW2hdLCIgIil9fWZ1bmN0aW9uIHBOZShkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsZE5lLDIsMSwidGQiLDQxKSxIMCgpKSwyJmQpe2NvbnN0IGg9S3QoKS5pbmRleCx2''@;'; + put 'put ''PUt0KDQpO3V0KDEpLFR0KCJuZ0Zvck9mIix2LnJvd0tleXNbaF0pfX1jb25zdCBGd2U9ZnVuY3Rpb24oZCxnLGgpe3JldHVybnthZGRlZFJvdzpkLGRlbGV0ZWRSb3c6Zyx1cGRhdGVkUm93Omh9fTtmdW5jdGlvbiBnTmUoZCxnKXtpZigxJmQmJihpdCgwLCJ0ciIsNjgpLHJuKDEsaE5lLDIs''@;'; + put 'put ''MSwibmctY29udGFpbmVyIiwxNikscm4oMixwTmUsMiwxLCJuZy1jb250YWluZXIiLDE2KSxzdCgpKSwyJmQpe2NvbnN0IGg9Zy5pbmRleCx2PUt0KDQpO1R0KCJuZ0NsYXNzIixIKDMsRndlLCJhZGRlZCI9PXYuY2hBcnJbaF0sImRlbGV0ZWQiPT12LmNoQXJyW2hdLCJ1cGRhdGVkIj09di5j''@;'; + put 'put ''aEFycltoXSkpLHV0KDEpLFR0KCJuZ0lmIiwidXBkYXRlZCI9PT12LmNoQXJyW2hdKSx1dCgxKSxUdCgibmdJZiIsInVwZGF0ZWQiIT09di5jaEFycltoXSl9fWZ1bmN0aW9uIG1OZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImRpdiIsMjMpKDEsImRpdiIsMjQpKDIsImRpdiIs''@;'; + put 'put ''MjUpKDMsImRpdiIsMjYpKDQsInNwYW4iLDI3KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoMykuZ29Ub0FwcHJvdmFsc0xpc3QoKSl9KSxDcig1LCJjbHItaWNvbiIsMjgpLFV0KDYsIkJhY2sgdG8gYXBwcm92YWxzIGxpc3QgIiksc3QoKSgpLGl0KDcsImRpdiIs''@;'; + put 'put ''MjkpKDgsImgzIiwzMCksVXQoOSksc3QoKSgpLGl0KDEwLCJkaXYiLDMxKSgxMSwiYSIsMzIpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgzKS5nZXREZXRhaWxzKCkpfSksQ3IoMTIsImNsci1pY29uIiwzMyksc3QoKSgpKCksaXQoMTMsInAiLDM0KSxVdCgxNCks''@;'; + put 'put ''c3QoKSgpLGl0KDE1LCJkaXYiLDM1KSxybigxNixvTmUsNDAsMTAsImRpdiIsMzYpLHN0KCkscm4oMTcsbE5lLDQsMSwiZGl2IiwzNyksaXQoMTgsImRpdiIsMzgpLHJuKDE5LHNOZSwyLDAsInAiLDM5KSxpdCgyMCwidGFibGUiLDMpKDIxLCJ0aGVhZCIpKDIyLCJ0ciIsNDApLHJuKDIzLHVO''@;'; + put 'put ''ZSwyLDEsInRoIiw0MSksc3QoKSgpLGl0KDI0LCJ0Ym9keSIpLHJuKDI1LGdOZSwzLDcsInRyIiw0Miksc3QoKSgpKCkoKX1pZigyJmQpe2NvbnN0IGg9S3QoMyk7dXQoOSksSmkoIiAiLG51bGw9PWguanNQYXJhbXM/bnVsbDpoLmpzUGFyYW1zLlRBQkxFX05NLCIgIiksdXQoNSksSmkoIiAi''@;'; + put 'put ''LG51bGw9PWguanNQYXJhbXM/bnVsbDpoLmpzUGFyYW1zLlRBQkxFX0RFU0MsIiAiKSx1dCgyKSxUdCgibmdJZiIsaC5sb2FkZWQpLHV0KDEpLFR0KCJuZ0lmIiwhaC5sb2FkaW5nVGFibGUpLHV0KDIpLFR0KCJuZ0lmIixoLmxvYWRpbmdUYWJsZSYmaC5ub0NoYW5nZXMpLHV0KDQpLFR0KCJu''@;'; + put 'put ''Z0Zvck9mIixoLnJvd0hlYWRlciksdXQoMiksVHQoIm5nRm9yT2YiLGgucm93S2V5cyl9fWZ1bmN0aW9uIHZOZShkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsMjEpLHJuKDEsbU5lLDI2LDcsImRpdiIsMjIpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCgxKSxUdCgibmdJZiIsaC5sb2Fk''@;'; + put 'put ''ZWQpfX1mdW5jdGlvbiBBTmUoZCxnKXsxJmQmJihpdCgwLCJzcGFuIiw2NyksVXQoMSwiIExvYWRpbmcuLi4gIiksc3QoKSl9ZnVuY3Rpb24geU5lKGQsZyl7MSZkJiYoaXQoMCwiZGl2IikoMSwiaDMiKSxVdCgyLCJMb2FkaW5nIHByZXZpZXciKSxzdCgpKCkpfWZ1bmN0aW9uIHdOZShkLGcp''@;'; + put 'put ''e2lmKDEmZCYmKGl0KDAsImRpdiIsNzMpLHJuKDEsQU5lLDIsMCwic3BhbiIsNzQpLHJuKDIseU5lLDMsMCwiZGl2IiwxNiksc3QoKSksMiZkKXtjb25zdCBoPUt0KDIpO3V0KDEpLFR0KCJuZ0lmIiwhaC5sb2FkZWQpLHV0KDEpLFR0KCJuZ0lmIiwhaC5sb2FkZWQpfX1mdW5jdGlvbiBiTmUo''@;'; + put 'put ''ZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDE3KSxybigxLHZOZSwyLDEsImRpdiIsMTgpLGl0KDIsImRpdiIsMTkpLHJuKDMsd05lLDMsMiwiZGl2IiwyMCksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3QoKTt1dCgxKSxUdCgibmdJZiIsaC5sb2FkZWQpLHV0KDIpLFR0KCJuZ0lmIiwhaC5sb2Fk''@;'; + put 'put ''ZWQpfX1mdW5jdGlvbiBfTmUoZCxnKXtpZigxJmQmJihpdCgwLCJ0ciIpKDEsInRkIiw0KSxVdCgyKSxzdCgpLGl0KDMsInRkIiw0KSxVdCg0KSxzdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUt0KDYpO3V0KDIpLEdpKGgpLHV0KDIpLEdpKHYuc3VibWl0RGV0YWlsc1toXSl9''@;'; + put 'put ''fWZ1bmN0aW9uIENOZShkLGcpe2lmKDEmZCYmKGl0KDAsImNsci10YWItY29udGVudCIpKDEsImRpdiIsOTMpKDIsInRhYmxlIiwzKSgzLCJ0aGVhZCIpKDQsInRyIikoNSwidGgiLDQpLFV0KDYsIk5hbWUiKSxzdCgpLGl0KDcsInRoIiw0KSxVdCg4LCJWYWx1ZSIpLHN0KCkoKSgpLGl0KDks''@;'; + put 'put ''InRib2R5Iikscm4oMTAsX05lLDUsMiwidHIiLDUpLHN0KCkoKSgpKCkpLDImZCl7Y29uc3QgaD1LdCg1KTt1dCgxMCksVHQoIm5nRm9yT2YiLGguc3VibWl0QXJyKX19ZnVuY3Rpb24ga05lKGQsZyl7aWYoMSZkJiYoaXQoMCwidHIiKSgxLCJ0ZCIsNCksVXQoMiksc3QoKSxpdCgzLCJ0ZCIs''@;'; + put 'put ''NCksVXQoNCksc3QoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1LdCg1KTt1dCgyKSxHaShoKSx1dCgyKSxHaSh2LmpzUGFyYW1zW2hdKX19ZnVuY3Rpb24gU05lKGQsZyl7aWYoMSZkJiYoaXQoMCwiY2xyLXRhYnMiKSgxLCJjbHItdGFiIikoMiwiYnV0dG9uIiw5MSksVXQoMywi''@;'; + put 'put ''U3VibWl0dGVkIFRhYmxlIERldGFpbHMiKSxzdCgpLHJuKDQsQ05lLDExLDEsImNsci10YWItY29udGVudCIsOTIpLHN0KCksaXQoNSwiY2xyLXRhYiIpKDYsImJ1dHRvbiIsOTEpLFV0KDcsIkJhc2UgVGFibGUgRGV0YWlscyIpLHN0KCksaXQoOCwiY2xyLXRhYi1jb250ZW50IikoOSwiZGl2''@;'; + put 'put ''Iiw5MykoMTAsInRhYmxlIiwzKSgxMSwidGhlYWQiKSgxMiwidHIiKSgxMywidGgiLDQpLFV0KDE0LCJOYW1lIiksc3QoKSxpdCgxNSwidGgiLDQpLFV0KDE2LCJWYWx1ZSIpLHN0KCkoKSgpLGl0KDE3LCJ0Ym9keSIpLHJuKDE4LGtOZSw1LDIsInRyIiw1KSxzdCgpKCkoKSgpKCkoKSksMiZk''@;'; + put 'put ''KXtjb25zdCBoPUt0KDQpO3V0KDQpLFR0KCJjbHJJZkFjdGl2ZSIsITApLHV0KDE0KSxUdCgibmdGb3JPZiIsaC5rZXlzQXJyYXkpfX1mdW5jdGlvbiBNTmUoZCxnKXsxJmQmJkNyKDAsImRpdiIsNDMpfWZ1bmN0aW9uIEVOZShkLGcpezEmZCYmKGl0KDAsImRpdiIpKDEsImgzIiksVXQoMiwi''@;'; + put 'put ''TG9hZGluZyB0YWJsZSIpLHN0KCkoKSl9ZnVuY3Rpb24geE5lKGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2Iiw2NikoMSwic3BhbiIsNjcpLFV0KDIsIiBMb2FkaW5nLi4uICIpLHN0KCkscm4oMyxFTmUsMywwLCJkaXYiLDE2KSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoNCk7dXQoMyksVHQoIm5n''@;'; + put 'put ''SWYiLCFoLmxvYWRpbmdUYWJsZSl9fWZ1bmN0aW9uIFROZShkLGcpe2lmKDEmZCYmKGl0KDAsInRoIiw0KSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksR2koaCl9fWZ1bmN0aW9uIElOZShkLGcpe2lmKDEmZCYmKGl0KDAsInNwYW4iLDcyKSxVdCgxKSxzdCgp''@;'; + put 'put ''KSwyJmQpe2NvbnN0IGg9S3QoKS5pbmRleCx2PUt0KDIpLmluZGV4LHk9S3QoNCk7dXQoMSksSmkoIk9yaWdpbmFsIHZhbHVlIGlzOiAiLHkuYXJyT2ZDaGFuZ2VzW3ZdW2hdLCIiKX19ZnVuY3Rpb24gRE5lKGQsZyl7aWYoMSZkJiYoaXQoMCwidGQiLDcwKSxVdCgxKSxybigyLElOZSwyLDEs''@;'; + put 'put ''InNwYW4iLDcxKSxzdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1nLmluZGV4LHk9S3QoMikuaW5kZXgsQz1LdCg0KTtUdCgibmdDbGFzcyIsWmQoMyxQd2UsMT09Qy5hcnJDaGFuZ2VkW3ldW3ZdJiYidXBkYXRlZCI9PUMuY2hBcnJbeV0pKSx1dCgxKSxKaSgiICIsQy5kaWZmVGFi''@;'; + put 'put ''bGUuZGF0YVt5XVtoXSwiICIpLHV0KDEpLFR0KCJuZ0lmIiwxPT1DLmFyckNoYW5nZWRbeV1bdl0mJiJ1cGRhdGVkIj09Qy5jaEFyclt5XSl9fWZ1bmN0aW9uIExOZShkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsRE5lLDMsNSwidGQiLDY5KSxIMCgpKSwyJmQpe2NvbnN0IGg9S3QoKS5pbmRl''@;'; + put 'put ''eCx2PUt0KDQpO3V0KDEpLFR0KCJuZ0Zvck9mIix2LnJvd0tleXNbaF0pfX1mdW5jdGlvbiBPTmUoZCxnKXtpZigxJmQmJihpdCgwLCJ0ZCIsNCksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9S3QoMikuaW5kZXgseT1LdCg0KTt1dCgxKSxKaSgiICIseS5kaWZmVGFi''@;'; + put 'put ''bGUuZGF0YVt2XVtoXSwiICIpfX1mdW5jdGlvbiBSTmUoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLE9OZSwyLDEsInRkIiw0MSksSDAoKSksMiZkKXtjb25zdCBoPUt0KCkuaW5kZXgsdj1LdCg0KTt1dCgxKSxUdCgibmdGb3JPZiIsdi5yb3dLZXlzW2hdKX19ZnVuY3Rpb24gQk5lKGQsZyl7''@;'; + put 'put ''aWYoMSZkJiYoaXQoMCwidHIiLDY4KSxybigxLExOZSwyLDEsIm5nLWNvbnRhaW5lciIsMTYpLHJuKDIsUk5lLDIsMSwibmctY29udGFpbmVyIiwxNiksc3QoKSksMiZkKXtjb25zdCBoPWcuaW5kZXgsdj1LdCg0KTtUdCgibmdDbGFzcyIsSCgzLEZ3ZSwiYWRkZWQiPT12LmNoQXJyW2hdLCJk''@;'; + put 'put ''ZWxldGVkIj09di5jaEFycltoXSwidXBkYXRlZCI9PXYuY2hBcnJbaF0pKSx1dCgxKSxUdCgibmdJZiIsInVwZGF0ZWQiPT09di5jaEFycltoXSksdXQoMSksVHQoIm5nSWYiLCJ1cGRhdGVkIiE9PXYuY2hBcnJbaF0pfX1mdW5jdGlvbiBQTmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtp''@;'; + put 'put ''dCgwLCJkaXYiLDc5KSgxLCJkaXYiLDgwKSgyLCJkaXYiLDI1KSgzLCJkaXYiLDI2KSg0LCJzcGFuIiw4MSksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDMpLmdvVG9TdWJtaXRMaXN0KCkpfSksQ3IoNSwiY2xyLWljb24iLDI4KSxVdCg2LCJCYWNrIHRvIHN1Ym1p''@;'; + put 'put ''dHRlZCBsaXN0ICIpLHN0KCkoKSxpdCg3LCJkaXYiLDgyKSg4LCJoMyIsODMpLFV0KDkpLHN0KCkoKSxpdCgxMCwiZGl2IiwzMSkoMTEsInNlY3Rpb24iLDgpKDEyLCJkaXYiLDkpKDEzLCJkaXYiLDg0KSgxNCwiaW5wdXQiLDg1KSxZbigiY2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQo''@;'; + put 'put ''aCksYShLdCgzKS5zaG93RGV0YWlsc1NlbGVjdCh5KSl9KSxzdCgpLGl0KDE1LCJsYWJlbCIsODYpLFV0KDE2LCJBbGwgRGV0YWlscyIpLHN0KCkoKSgpKCkoKSgpLGl0KDE3LCJwIiw4NyksVXQoMTgpLHN0KCkoKSxpdCgxOSwiZGl2Iiw0NCkoMjAsImRpdiIsNDUpKDIxLCJkaXYiLDY0KSgy''@;'; + put 'put ''Miwic3BhbiIpLFV0KDIzLCJUYWJsZSBJZDoiKSxzdCgpLGl0KDI0LCJzdHJvbmciKSgyNSwic3BhbiIpLFV0KDI2KSxzdCgpKCkoKSxpdCgyNywiZGl2IikoMjgsInNwYW4iKSxVdCgyOSwiU3VibWl0dGVkIG9uOiIpLHN0KCksaXQoMzAsInNwYW4iLDY1KSxVdCgzMSksc3QoKSgpLGl0KDMy''@;'; + put 'put ''LCJkaXYiKSgzMywic3BhbiIpLFV0KDM0LCJTdWJtaXQgTWVzc2FnZToiKSxzdCgpLGl0KDM1LCJzcGFuIiksVXQoMzYpLHN0KCkoKSgpLGl0KDM3LCJkaXYiLDQ2KSgzOCwiZGl2Iiw0NykoMzksImRpdiIsNDgpKDQwLCJkaXYiLDI1KSg0MSwiYnV0dG9uIiw0OSksWW4oImNsaWNrIixmdW5j''@;'; + put 'put ''dGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoMyk7cmV0dXJuIGEoeS5nb1RvQmFzZSh5LnN1Yk9iai5iYXNlKSl9KSxVdCg0MiwiIEdvIHRvIGJhc2UgdGFibGUgc2NyZWVuICIpLHN0KCksaXQoNDMsImJ1dHRvbiIsNTApLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KDMp''@;'; + put 'put ''O3JldHVybiBhKHkuZ2V0VGFibGUoeS5zdWJPYmoudGFibGVJZCkpfSksVXQoNDQsIiBHbyB0byBlZGl0ZWQgc2NyZWVuICIpLHN0KCksaXQoNDUsImJ1dHRvbiIsNTEpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KDMpO3JldHVybiBhKHkuZ29CYWNrKHkuc3ViT2Jq''@;'; + put 'put ''LmJhc2UpKX0pLFV0KDQ2LCIgR28gYmFjayB0byBlZGl0b3IgIiksc3QoKSgpKCkoKSxpdCg0NywiZGl2Iiw0NykoNDgsImRpdiIsMjUpKDQ5LCJkaXYiLDg4KSg1MCwic3BhbiIsNTcpLFV0KDUxLCIgQ2hhbmdlZCBSb3dzICIpLGl0KDUyLCJzcGFuIiw1OCksVXQoNTMpLHN0KCkoKSxpdCg1''@;'; + put 'put ''NCwic3BhbiIsNTkpLFV0KDU1LCIgQWRkZWQgUm93cyAiKSxpdCg1Niwic3BhbiIsNjApLFV0KDU3KSxzdCgpKCksaXQoNTgsInNwYW4iLDYxKSxVdCg1OSwiIERlbGV0ZWQgUm93cyAiKSxpdCg2MCwic3BhbiIsNjIpLFV0KDYxKSxzdCgpKCkoKSgpKCksaXQoNjIsImRpdiIsNDcpKDYzLCJj''@;'; + put 'put ''bHItdG9nZ2xlLWNvbnRhaW5lciIsNTQpKDY0LCJjbHItdG9nZ2xlLXdyYXBwZXIiKSg2NSwiaW5wdXQiLDU1KSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoMykuZm9ybWF0dGVkVmFsdWVzPXkpfSkoImNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''cnQoaCksYShLdCgzKS5mb3JtYXR0aW5nQ2hhbmdlZCgpKX0pLHN0KCksaXQoNjYsImxhYmVsIiksVXQoNjcpLHN0KCkoKSgpKCkoKSgpLHJuKDY4LFNOZSwxOSwyLCJjbHItdGFicyIsMTYpLGl0KDY5LCJkaXYiLDg5KSxybig3MCxNTmUsMSwwLCJkaXYiLDM2KSxzdCgpLHJuKDcxLHhOZSw0''@;'; + put 'put ''LDEsImRpdiIsMzcpLGl0KDcyLCJkaXYiLDkwKSg3MywidGFibGUiLDMpKDc0LCJ0aGVhZCIpKDc1LCJ0ciIsNDApLHJuKDc2LFROZSwyLDEsInRoIiw0MSksc3QoKSgpLGl0KDc3LCJ0Ym9keSIpLHJuKDc4LEJOZSwzLDcsInRyIiw0Miksc3QoKSgpKCkoKX1pZigyJmQpe2NvbnN0IGg9S3Qo''@;'; + put 'put ''Myk7dXQoOSksSmkoIiAiLGguc3ViT2JqLmJhc2UsIiAiKSx1dCg5KSxKaSgiICIsaC50YWJsZURlc2NyaXB0aW9uLCIgIiksdXQoOCksSmkoIiAiLGguc3ViT2JqLnRhYmxlSWQsIiIpLHV0KDUpLEppKCIgIixoLnN1Yk9iai5zdWJtaXR0ZWQsIiAiKSx1dCg1KSxKaSgiICIsaC5zdWJPYmou''@;'; + put 'put ''c3VibWl0UmVhc29uLCIgIiksdXQoMTcpLEdpKGgubGVucy51cGRhdGVkKSx1dCg0KSxHaShoLmxlbnMubmV3KSx1dCg0KSxHaShoLmxlbnMuZGVsZXRlZCksdXQoNCksVHQoIm5nTW9kZWwiLGguZm9ybWF0dGVkVmFsdWVzKSx1dCgyKSxHaShoLmZvcm1hdHRlZFZhbHVlcz8iRm9ybWF0dGVk''@;'; + put 'put ''IjoiVW5mb3JtYXR0ZWQiKSx1dCgxKSxUdCgibmdJZiIsaC50YWJsZUZsYWcpLHV0KDIpLFR0KCJuZ0lmIixoLmxvYWRlZCksdXQoMSksVHQoIm5nSWYiLCFoLmxvYWRpbmdUYWJsZSksdXQoNSksVHQoIm5nRm9yT2YiLGgucm93SGVhZGVyKSx1dCgyKSxUdCgibmdGb3JPZiIsaC5yb3dLZXlz''@;'; + put 'put ''KX19ZnVuY3Rpb24gRk5lKGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2Iiw3Nykscm4oMSxQTmUsNzksMTUsImRpdiIsNzgpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCgxKSxUdCgibmdJZiIsaC5sb2FkZWQpfX1mdW5jdGlvbiBITmUoZCxnKXsxJmQmJihpdCgwLCJkaXYiKSgxLCJoMyIp''@;'; + put 'put ''LFV0KDIsIkxvYWRpbmcgc3VibWl0dGVkIHRhYmxlIiksc3QoKSgpKX1mdW5jdGlvbiBOTmUoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDk0KSgxLCJkaXYiLDk1KSgyLCJzcGFuIiw2NyksVXQoMywiIExvYWRpbmcuLi4gIiksc3QoKSxybig0LEhOZSwzLDAsImRpdiIsMTYpLHN0KCkoKSks''@;'; + put 'put ''MiZkKXtjb25zdCBoPUt0KDIpO3V0KDQpLFR0KCJuZ0lmIiwhaC5sb2FkZWQpfX1mdW5jdGlvbiBWTmUoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiKSxybigxLEZOZSwyLDEsImRpdiIsNzUpLHJuKDIsTk5lLDUsMSwiZGl2Iiw3Niksc3QoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMSksVHQo''@;'; + put 'put ''Im5nSWYiLGgubG9hZGVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKX19Y29uc3Qgak5lPWZ1bmN0aW9uKCl7cmV0dXJue3N0YW5kYWxvbmU6ITB9fTtsZXQgSHdlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5zYXNTdG9yZVNlcnZpY2U9aCx0aGlzLmV2ZW50''@;'; + put 'put ''U2VydmljZT12LHRoaXMucm91dGVyPXksdGhpcy5yb3V0ZT1DLHRoaXMuZGV0YWlsc09wZW49ITEsdGhpcy5yZWplY3RPcGVuPSExLHRoaXMubGVucz17bmV3OjAsdXBkYXRlZDowLGRlbGV0ZWQ6MH0sdGhpcy5sb2FkZWQ9ITEsdGhpcy5sb2FkaW5nVGFibGU9ITEsdGhpcy5zdWJtaXRSZWFz''@;'; + put 'put ''b249IiIsdGhpcy5pbnN0YW5jZT0iaG90SW5zdGFuY2UiLHRoaXMuYWNjZXB0TG9hZGluZz0hMSx0aGlzLnJlamVjdExvYWRpbmc9ITEsdGhpcy5zdWJtaXR0ZWQ9ITEsdGhpcy50YWJsZUZsYWc9ITEsdGhpcy5yb3dLZXlzPVtdLHRoaXMuc2Vjb25kT3Blbj0hMSx0aGlzLmZvcm1hdHRlZFZh''@;'; + put 'put ''bHVlcz0hMCx0aGlzLmNoYW5nZXNBcnI9W10sdGhpcy5kaWZmVGFibGU9e2RhdGE6W119fWdldCBub0NoYW5nZXMoKXtyZXR1cm4gMD09PXRoaXMubGVucy5uZXcmJjA9PT10aGlzLmxlbnMudXBkYXRlZCYmMD09PXRoaXMubGVucy5kZWxldGVkfWdvVG9CYXNlKGgpe3RoaXMucm91dGUubmF2''@;'; + put 'put ''aWdhdGVCeVVybCgiL3ZpZXcvZGF0YS8iK2gpfWdvVG9BcHByb3ZhbHNMaXN0KCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvYXBwcm92ZSIpfWdldFRhYmxlKGgpe3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL3N0YWdlLyIraCl9Z29CYWNrKGgpe3RoaXMucm91dGUubmF2aWdhdGVC''@;'; + put 'put ''eVVybCgiL2VkaXRvci8iK2gpfWdvVG9WaWV3ZXIoKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi92aWV3L2RhdGEiKX1zaG93RGV0YWlsc1NlbGVjdChoKXtoLnByZXZlbnREZWZhdWx0KCksdGhpcy50YWJsZUZsYWc9IXRoaXMudGFibGVGbGFnfWdldERldGFpbHMoKXt0aGlzLmRldGFp''@;'; + put 'put ''bHNPcGVuPSEwfW9uSG90U2VsZWN0aW9uKGgpe3RoaXMuaG90U2VsZWN0aW9uPWguc2xpY2UoMCw0KX1vbkhvdERlc2VsZWN0KCl7c2V0VGltZW91dCgoKT0+e3RoaXMuaG90U2VsZWN0aW9uPW51bGx9LDEwMCl9cmVqZWN0aW5nKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5j''@;'; + put 'put ''dGlvbiooKXt0aGlzLnJlamVjdExvYWRpbmc9ITAsdGhpcy5zdWJtaXRSZWFzb249dGhpcy5zdWJtaXRSZWFzb24ucmVwbGFjZSgvXG4vZywiLiAiKTtsZXQgaD17U1RQX0FDVElPTjoiUkVKRUNUX1RBQkxFIixUQUJMRTp0aGlzLnRhYmxlSWQsU1RQX1JFQVNPTjp0aGlzLnN1Ym1pdFJlYXNv''@;'; + put 'put ''bn07eWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2UucmVqZWN0aW5nKGgsIkJyb3dzZXJQYXJhbXMiLCJhcHByb3ZlcnMvcmVqZWN0aW9uIikudGhlbih2PT57dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvaGlzdG9yeSIpfSkuY2F0Y2godj0+e3RoaXMuYWNjZXB0TG9hZGluZz0hMSx0aGlz''@;'; + put 'put ''LnJlamVjdExvYWRpbmc9ITF9KX0pfWFwcHJvdmVUYWJsZSgpe3ZhciBoLHY7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLmFjY2VwdExvYWRpbmc9ITA7bGV0IHk9e0FDVElPTjoiQVBQUk9WRV9UQUJMRSIsVEFCTEU6dGhpcy50YWJsZUlkLERJRkZUSU1F''@;'; + put 'put ''Om51bGw9PT0oaD10aGlzLnBhcmFtcyl8fHZvaWQgMD09PWg/dm9pZCAwOmguRElGRlRJTUUsTElCRFM6bnVsbD09PSh2PXRoaXMucGFyYW1zKXx8dm9pZCAwPT09dj92b2lkIDA6di5MSUJEU307eWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2UuYXBwcm92ZVRhYmxlKHksIlNBU0NvbnRyb2xU''@;'; + put 'put ''YWJsZSIsImF1ZGl0b3JzL3Bvc3RkYXRhIikudGhlbihDPT57dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvaGlzdG9yeSIpfSkuY2F0Y2goQz0+e3RoaXMuYWNjZXB0TG9hZGluZz0hMX0pfSl9Z29Ub1N1Ym1pdExpc3QoKXt0aGlzLnNhc1N0b3JlU2VydmljZS5nb1RvU3VibWl0TGlzdCgp''@;'; + put 'put ''fWNhbGxDaGFuZ2VzSW5mbyhoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLmdldENoYW5nZUluZm8oaCkudGhlbih2PT57dGhpcy50YWJsZURldGFpbHM9di5qc3BhcmFtc1swXSx0aGlzLmpzUGFyYW1zPXYuanNw''@;'; + put 'put ''YXJhbXNbMF07bGV0IHk9W107Zm9yKGNvbnN0IEMgaW4gdGhpcy5qc1BhcmFtcyl0aGlzLmpzUGFyYW1zLmhhc093blByb3BlcnR5KEMpJiZ5LnB1c2goQyk7dGhpcy5rZXlzQXJyYXk9eX0pLmNhdGNoKHY9Pnt0aGlzLmFjY2VwdExvYWRpbmc9ITF9KS5maW5hbGx5KCgpPT57dGhpcy5sb2Fk''@;'; + put 'put ''ZWQ9ITB9KX0pfWZvcm1hdHRpbmdDaGFuZ2VkKCl7dGhpcy5jYWxjRGlmZigpfWNhbGNEaWZmKCl7dmFyIGgsdix5O2lmKCF0aGlzLnJlc3BvbnNlKXJldHVybjtsZXQgQz10aGlzLnJlc3BvbnNlLm5ldyxJPXRoaXMucmVzcG9uc2UudXBkYXRlcyxqPXRoaXMucmVzcG9uc2UuZGVsZXRlZCx1''@;'; + put 'put ''ZT10aGlzLnJlc3BvbnNlLm9yaWdpbmFsczt0aGlzLmZvcm1hdHRlZFZhbHVlcyYmKEM9dGhpcy5yZXNwb25zZS5mbXRfbmV3LEk9dGhpcy5yZXNwb25zZS5mbXRfdXBkYXRlcyxqPXRoaXMucmVzcG9uc2UuZm10X2RlbGV0ZWQsdWU9dGhpcy5yZXNwb25zZS5mbXRfb3JpZ2luYWxzKSx0aGlz''@;'; + put 'put ''Lm9yaWdpbmFscz11ZSx0aGlzLnJvd0tleXM9W107Zm9yKGxldCB3cj0wO3dyPEkubGVuZ3RoO3dyKyspe2xldCBRcj1PYmplY3Qua2V5cyhJW3dyXSk7Zm9yKGxldCB5aT0wO3lpPFFyLmxlbmd0aDt5aSsrKUlbd3JdW1FyW3lpXV0hPT11ZVt3cl1bUXJbeWldXSYmdGhpcy5jaGFuZ2VzQXJy''@;'; + put 'put ''LnB1c2goe2luZDp3cixmaWVsZDpRclt5aV0scHJvcDpJW3dyXVtRclt5aV1dLG9yaWdpbmFsOnVlW3dyXVtRclt5aV1dfSl9dGhpcy5sZW5zPXtuZXc6KG51bGw9PT0oaD10aGlzLnBhcmFtcyl8fHZvaWQgMD09PWg/dm9pZCAwOmguTlVNX0FEREVEKXx8MCx1cGRhdGVkOihudWxsPT09KHY9''@;'; + put 'put ''dGhpcy5wYXJhbXMpfHx2b2lkIDA9PT12P3ZvaWQgMDp2Lk5VTV9VUERBVEVEKXx8MCxkZWxldGVkOihudWxsPT09KHk9dGhpcy5wYXJhbXMpfHx2b2lkIDA9PT15P3ZvaWQgMDp5Lk5VTV9ERUxFVEVEKXx8MH07bGV0IEtlPVtdLGR0PUkuY29uY2F0KEMsaik7Zm9yKGxldCB3cj0wO3dyPHRo''@;'; + put 'put ''aXMucmVzcG9uc2UuY29scy5sZW5ndGg7d3IrKylLZS5wdXNoKHRoaXMucmVzcG9uc2UuY29sc1t3cl0uTkFNRSk7bGV0IE90PXRoaXMubGVucy5uZXc7dGhpcy5hZGRDb3VudD1PdDtsZXQgJHQ9dGhpcy5sZW5zLnVwZGF0ZWQsTG49W10saXI9W107Zm9yKGxldCB3cj0wO3dyPEtlLmxlbmd0''@;'; + put 'put ''aDt3cisrKWlyLnB1c2goe2RhdGE6S2Vbd3JdLHJlYWRPbmx5OiEwfSk7dGhpcy5kaWZmVGFibGUuZGF0YT1kdDtmb3IobGV0IHdyPTA7d3I8ZHQubGVuZ3RoO3dyKyspe2xldCB5aT1PYmplY3Qua2V5cyhkdFt3cl0pO3RoaXMucm93S2V5cy5wdXNoKHlpKX1sZXQgbXI9W10sU3I9W107Zm9y''@;'; + put 'put ''KGxldCB3cj0wO3dyPHRoaXMuZGlmZlRhYmxlLmRhdGEubGVuZ3RoO3dyKyspe2lmKHdyPCR0JiYwIT09JHQpe21yLnB1c2goW10pLFNyLnB1c2goW10pLExuLnB1c2goInVwZGF0ZWQiKTtsZXQgUXI9T2JqZWN0LmtleXModGhpcy5kaWZmVGFibGUuZGF0YVt3cl0pO2ZvcihsZXQgeWk9MDt5''@;'; + put 'put ''aTxRci5sZW5ndGg7eWkrKyl7bGV0IEtpPVFyW3lpXTt1ZVt3cl1bS2ldIT09SVt3cl1bS2ldPyhtclt3cl0ucHVzaCghMCksU3Jbd3JdLnB1c2godWVbd3JdW0tpXSkpOihtclt3cl0ucHVzaCghMSksU3Jbd3JdLnB1c2gobnVsbCkpfXRoaXMuYXJyQ2hhbmdlZD1tcix0aGlzLmFyck9mQ2hh''@;'; + put 'put ''bmdlcz1Tcn13cj49JHQmJndyPCR0K090JiZMbi5wdXNoKCJhZGRlZCIpLHdyPk90KyR0LTEmJkxuLnB1c2goImRlbGV0ZWQiKX10aGlzLmNoQXJyPUxuLHRoaXMucm93SGVhZGVyPXRoaXMucm93S2V5c1swXSx0aGlzLmRpZmZUYWJsZS5kYXRhPWR0fW5nQWZ0ZXJWaWV3SW5pdCgpe3JldHVy''@;'; + put 'put ''biBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYodGhpcy5fZGV0YWlsc1N1Yj10aGlzLnNhc1N0b3JlU2VydmljZS5zdWJtaXR0RGV0YWlsLnN1YnNjcmliZSh2PT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5zdWJPYmo9di52aWV3RGF0YSx0aGlz''@;'; + put 'put ''LnRhYmxlSWQ9di52aWV3RGF0YS50YWJsZUlkLHRoaXMuc3VibWl0dGVkPXYudmlld0RhdGEuc3ViLHRoaXMuc3VibWl0RGV0YWlscz12LmRhdGEsdGhpcy5zdWJtaXRBcnI9W107Zm9yKGxldCBDIGluIHRoaXMuc3VibWl0RGV0YWlscykic3ViIiE9PUMmJnRoaXMuc3VibWl0QXJyLnB1c2go''@;'; + put 'put ''Qyk7bGV0IHk9e0FDVElPTjoiU0hPV19ESUZGUyIsVEFCTEU6dGhpcy50YWJsZUlkLERJRkZUSU1FOihuZXcgRGF0ZSkudG9VVENTdHJpbmcoKX07dGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2hvd0RpZmZzKHksIlNBU0NvbnRyb2xUYWJsZSIsImF1ZGl0b3JzL3Bvc3RkYXRhIikudGhlbihDPT57''@;'; + put 'put ''dGhpcy5wYXJhbXM9Qy5wYXJhbXNbMF0sdGhpcy5yZXNwb25zZT1DLHRoaXMuY2FsY0RpZmYoKX0pLmNhdGNoKEM9PkMpLmZpbmFsbHkoKCk9Pnt0aGlzLmxvYWRpbmdUYWJsZT0hMH0pLHRoaXMuY2FsbENoYW5nZXNJbmZvKHRoaXMudGFibGVJZCl9KSksdm9pZCAwPT09dGhpcy5yb3V0ZXIu''@;'; + put 'put ''c25hcHNob3QucGFyYW1zLnRhYmxlSWQpcmV0dXJuO3RoaXMudGFibGVJZD10aGlzLnJvdXRlci5zbmFwc2hvdC5wYXJhbXMudGFibGVJZDtsZXQgaD17QUNUSU9OOiJTSE9XX0RJRkZTIixUQUJMRTp0aGlzLnRhYmxlSWQsRElGRlRJTUU6KG5ldyBEYXRlKS50b1VUQ1N0cmluZygpfTt0aGlz''@;'; + put 'put ''LnNhc1N0b3JlU2VydmljZS5zaG93RGlmZnMoaCwiU0FTQ29udHJvbFRhYmxlIiwiYXVkaXRvcnMvcG9zdGRhdGEiKS50aGVuKHY9Pnt0aGlzLnBhcmFtcz12LnBhcmFtc1swXSx0aGlzLnJlc3BvbnNlPXYsdGhpcy5jYWxjRGlmZigpfSkuY2F0Y2godj0+e3RoaXMuYWNjZXB0TG9hZGluZz0h''@;'; + put 'put ''MX0pLmZpbmFsbHkoKCk9Pnt0aGlzLmxvYWRpbmdUYWJsZT0hMCx0aGlzLnNldEZvY3VzKCl9KSx0aGlzLmNhbGxDaGFuZ2VzSW5mbyh0aGlzLnRhYmxlSWQpfSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9kZXRhaWxzU3ViJiZ0aGlzLl9kZXRhaWxzU3ViLnVuc3Vic2NyaWJlKCl9c2V0Rm9jdXMo''@;'; + put 'put ''KXtzZXRUaW1lb3V0KCgpPT57bGV0IGg9d2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY2NlcHRCdG4iKTtoJiZoLmZvY3VzKCl9LDIwMCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KGtnKSxYdChtdSksWHQoUHUpLFh0KFpsKSl9''@;'; + put 'put ''LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1hcHByb3ZlLWRldGFpbHMiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjM0LHZhcnM6MTAsY29uc3RzOltbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1v''@;'; + put 'put ''ZGFsLXRpdGxlIl0sWzEsIm1vZGFsLWJvZHkiXSxbMSwidGFibGUiXSxbMSwibGVmdCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbMSwiZm9ybS1ibG9j''@;'; + put 'put ''ayJdLFsxLCJmb3JtLWdyb3VwIl0sWyJmb3IiLCJmb3JtRmllbGRzXzgiXSxbImlkIiwiZm9ybUZpZWxkc184Iiwicm93cyIsIjUiLDEsInctMTAwIiwzLCJuZ01vZGVsIiwibmdNb2RlbE9wdGlvbnMiLCJpbm5lckhUTUwiLCJuZ01vZGVsQ2hhbmdlIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJi''@;'; + put 'put ''dG4iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbInR5cGUiLCJzdWJtaXQiLDEsImJ0biIsImJ0bi1zdWNjZXNzLW91dGxpbmUiLDMsImNsckxvYWRpbmciLCJjbGljayJdLFsxLCJjb250ZW50LWFyZWEiXSxbImNsYXNzIiwiY2FyZCIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsImNhcmQi''@;'; + put 'put ''XSxbImNsYXNzIiwiY2FyZC1oZWFkZXIiLCJzdHlsZSIsImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGp1c3RpZnktY29udGVudDogY2VudGVyIiw0LCJuZ0lmIl0sWzIsIm92ZXJmbG93IiwiYXV0byIsIm1hcmdpbi1yaWdodCIsIjAuNzVyZW0iXSxbInN0eWxlIiwi''@;'; + put 'put ''XG4gICAgICAgICAgaGVpZ2h0OiA3MHZoO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAi''@;'; + put 'put ''LDQsIm5nSWYiXSxbMSwiY2FyZC1oZWFkZXIiLDIsImRpc3BsYXkiLCJmbGV4IiwiZmxleC1kaXJlY3Rpb24iLCJjb2x1bW4iLCJqdXN0aWZ5LWNvbnRlbnQiLCJjZW50ZXIiXSxbImNsYXNzIiwiY2FyZCIsInN0eWxlIiwibWFyZ2luLXRvcDogMHB4Iiw0LCJuZ0lmIl0sWzEsImNhcmQiLDIs''@;'; + put 'put ''Im1hcmdpbi10b3AiLCIwcHgiXSxbMSwiY2FyZC1oZWFkZXIiLCJwLTAiXSxbMSwiY2xyLXJvdyJdLFsxLCJjbHItY29sLW1kLTQiLCJhcHByb3ZhbEJhY2siXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLCJtLTAiLDMsImNsaWNrIl0sWyJzaGFwZSIsImNhcmV0IiwiZGlyIiwi''@;'; + put 'put ''bGVmdCIsInNpemUiLCIyMCJdLFsxLCJjbHItY29sLW1kLTQiLDIsImRpc3BsYXkiLCJmbGV4IiwianVzdGlmeS1jb250ZW50IiwiY2VudGVyIl0sWzIsIm1hcmdpbi10b3AiLCIwcHgiLCJmb250LXdlaWdodCIsIjMwMCJdLFsxLCJjbHItY29sLW1kLTQiLCJhcHByb3ZhbEluZm8iXSxbMSwi''@;'; + put 'put ''dG9vbHRpcCIsInRvb2x0aXAtc20iLCJ0b29sdGlwLXRvcC1sZWZ0IiwzLCJjbGljayJdLFsic2hhcGUiLCJpbmZvLXN0YW5kYXJkIiwic2l6ZSIsIjI4Il0sWzIsInRleHQtYWxpZ24iLCJjZW50ZXIiLCJtYXJnaW4tdG9wIiwiMTBweCJdLFsxLCJjYXJkLWJsb2NrIiwicC0wIl0sWyJjbGFz''@;'; + put 'put ''cyIsImNhcmQtdGV4dCIsNCwibmdJZiJdLFsic3R5bGUiLCJcbiAgICAgICAgICAgIGhlaWdodDogMjV2aDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7''@;'; + put 'put ''XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICIsNCwibmdJZiJdLFsxLCJ0YWJsZUNvbnQiLDIsIm1hcmdpbi10b3AiLCIwIl0sWyJzdHlsZSIsInRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAxOHB4Iiw0LCJuZ0lmIl0sWzIsImRpc3BsYXkiLCJm''@;'; + put 'put ''bGV4Il0sWyJjbGFzcyIsImxlZnQiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsic3R5bGUiLCJkaXNwbGF5OiBmbGV4IiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY2FyZC10ZXh0Il0sWzEsImNsci1yb3ciLDIsImZvbnQtc2l6ZSIsIjE1cHgiXSxbMSwiY2xyLWNvbC1t''@;'; + put 'put ''ZC01Il0sWzEsImNsci1jb2wtbWQtNyJdLFsxLCJjYXJkLWJsb2NrIiwyLCJkaXNwbGF5IiwiZmxleCIsImp1c3RpZnktY29udGVudCIsImNlbnRlciJdLFsyLCJkaXNwbGF5IiwiZmxleCIsImp1c3RpZnktY29udGVudCIsImNlbnRlciIsIm1hcmdpbi10b3AiLCIwcHgiXSxbMSwiYnRuIiwi''@;'; + put 'put ''YnRuLXNtIiwiYnRuLW91dGxpbmUiLDIsInRleHQtYWxpZ24iLCJjZW50ZXIiLCJtYXJnaW4tdG9wIiwiNXB4IiwzLCJjbGljayJdLFsxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwyLCJ0ZXh0LWFsaWduIiwiY2VudGVyIiwibWFyZ2luLXRvcCIsIjVweCIsMywiY2xp''@;'; + put 'put ''Y2siXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWluZm8tb3V0bGluZSIsMiwidGV4dC1hbGlnbiIsImNlbnRlciIsIm1hcmdpbi10b3AiLCI1cHgiLDMsImNsaWNrIl0sWyJpZCIsImFjY2VwdEJ0biIsInR5cGUiLCJzdWJtaXQiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwyLCJ3''@;'; + put 'put ''aWR0aCIsIjE3NXB4IiwzLCJjbHJMb2FkaW5nIiwiZGlzYWJsZWQiLCJjbGljayJdLFsxLCJidG4iLCJidG4tc20iLCJidG4iLCJidG4tZGFuZ2VyIiwyLCJ3aWR0aCIsIjE3NXB4IiwibWFyZ2luLXJpZ2h0IiwiMCIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsxLCJtLTAiLDIsIm1hcmdpbi1s''@;'; + put 'put ''ZWZ0IiwiMjBweCAhaW1wb3J0YW50Il0sWyJ0eXBlIiwiY2hlY2tib3giLCJjbHJUb2dnbGUiLCIiLCJjaGVja2VkIiwiIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImNoYW5nZSJdLFsyLCJtaW4td2lkdGgiLCI3NXB4Il0sWzEsImxhYmVsIiwibGFiZWwtd2FybmluZyJdLFsxLCJi''@;'; + put 'put ''YWRnZSIsImJhZGdlLXdhcm5pbmciXSxbMSwibGFiZWwiLCJsYWJlbC1zdWNjZXNzIl0sWzEsImJhZGdlIiwiYmFkZ2Utc3VjY2VzcyJdLFsxLCJsYWJlbCIsImxhYmVsLWRhbmdlciJdLFsxLCJiYWRnZSIsImJhZGdlLWRhbmdlciJdLFsyLCJ0ZXh0LWFsaWduIiwiY2VudGVyIiwiZm9udC1z''@;'; + put 'put ''aXplIiwiMThweCJdLFsyLCJtYXJnaW4tdG9wIiwiMTVweCJdLFsxLCJtdC0xMCJdLFsyLCJoZWlnaHQiLCIyNXZoIiwiZGlzcGxheSIsImZsZXgiLCJmbGV4LWRpcmVjdGlvbiIsImNvbHVtbiIsImp1c3RpZnktY29udGVudCIsImNlbnRlciIsImFsaWduLWl0ZW1zIiwiY2VudGVyIl0sWzEs''@;'; + put 'put ''InNwaW5uZXIiXSxbMiwiZGlzcGxheSIsImZsZXgiLDMsIm5nQ2xhc3MiXSxbImNsYXNzIiwibGVmdCIsMywibmdDbGFzcyIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImxlZnQiLDMsIm5nQ2xhc3MiXSxbImNsYXNzIiwidG9vbHRpcC1jb250ZW50Iiw0LCJuZ0lmIl0sWzEsInRvb2x0aXAt''@;'; + put 'put ''Y29udGVudCJdLFsyLCJoZWlnaHQiLCI3MHZoIiwiZGlzcGxheSIsImZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQiLCJjZW50ZXIiLCJmbGV4LWRpcmVjdGlvbiIsImNvbHVtbiIsImFsaWduLWl0ZW1zIiwiY2VudGVyIl0sWyJjbGFzcyIsInNwaW5uZXIiLDQsIm5nSWYiXSxbInN0eWxlIiwiZGlz''@;'; + put 'put ''cGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OiBjZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2FyZC1ibG9jayIsNCwibmdJZiJdLFsyLCJkaXNwbGF5IiwiZmxleCIsImZsZXgtZGlyZWN0aW9uIiwiY29sdW1uIiwianVzdGlmeS1jb250ZW50''@;'; + put 'put ''IiwiY2VudGVyIl0sWyJjbGFzcyIsImNhcmQgbS0wIiw0LCJuZ0lmIl0sWzEsImNhcmQiLCJtLTAiXSxbMSwiY2FyZC1oZWFkZXIiXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWzEsImNsci1jb2wtbWQtNCJdLFsyLCJtYXJnaW4tdG9wIiwiMHB4IiwiZm9u''@;'; + put 'put ''dC13ZWlnaHQiLCIzMDAiLCJ0ZXh0LWFsaWduIiwiY2VudGVyIl0sWzEsInRvZ2dsZS1zd2l0Y2giXSxbInR5cGUiLCJjaGVja2JveCIsImlkIiwidG9nZ2xlXzEiLDMsImNoYW5nZSJdLFsiZm9yIiwidG9nZ2xlXzEiXSxbMSwibS0wIiwyLCJ0ZXh0LWFsaWduIiwiY2VudGVyIiwiY29sb3Ii''@;'; + put 'put ''LCIjMzE0MzUxIl0sWyJzeWxlIiwiZGlzcGxheTpmbGV4OyJdLFsxLCJjYXJkLWJsb2NrIiwicC0wIiwyLCJvdmVyZmxvdyIsImF1dG8iLCJtYXJnaW4tcmlnaHQiLCIwLjc1cmVtIl0sWzEsInRhYmxlQ29udCJdLFsiY2xyVGFiTGluayIsIiJdLFs0LCJjbHJJZkFjdGl2ZSJdLFsyLCJvdmVy''@;'; + put 'put ''ZmxvdyIsImF1dG8iXSxbMSwiY2FyZC1ibG9jayJdLFsxLCJsb2FkZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJjbHItbW9kYWwiLDApLFluKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LmRldGFpbHNPcGVuPUN9KSxpdCgxLCJoMyIs''@;'; + put 'put ''MSksVXQoMiwiQXBwcm92YWwgRGV0YWlscyIpLHN0KCksaXQoMywiZGl2IiwyKSg0LCJ0YWJsZSIsMykoNSwidGhlYWQiKSg2LCJ0ciIpKDcsInRoIiw0KSxVdCg4LCJOYW1lIiksc3QoKSxpdCg5LCJ0aCIsNCksVXQoMTAsIlZhbHVlIiksc3QoKSgpKCksaXQoMTEsInRib2R5Iikscm4oMTIs''@;'; + put 'put ''bk5lLDUsMiwidHIiLDUpLHN0KCkoKSgpLGl0KDEzLCJkaXYiLDYpKDE0LCJidXR0b24iLDcpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5kZXRhaWxzT3Blbj0hMX0pLFV0KDE1LCIgT2sgIiksc3QoKSgpKCksaXQoMTYsImNsci1tb2RhbCIsMCksWW4oImNsck1vZGFsT3BlbkNo''@;'; + put 'put ''YW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYucmVqZWN0T3Blbj1DfSksaXQoMTcsImgzIiwxKSxVdCgxOCwiUmVhc29uIE1lc3NhZ2UiKSxzdCgpLGl0KDE5LCJkaXYiLDIpKDIwLCJmb3JtIikoMjEsInNlY3Rpb24iLDgpKDIyLCJkaXYiLDkpKDIzLCJsYWJlbCIsMTApLFV0KDI0LCJSZWFz''@;'; + put 'put ''b24gZm9yIHJlamVjdGluZz8iKSxzdCgpLGl0KDI1LCJ0ZXh0YXJlYSIsMTEpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5zdWJtaXRSZWFzb249Q30pLHN0KCkoKSgpKCkoKSxpdCgyNiwiZGl2Iiw2KSgyNywiYnV0dG9uIiwxMiksWW4oImNsaWNrIixmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiB2LnJlamVjdE9wZW49ITF9KSxVdCgyOCwiIENhbmNlbCAiKSxzdCgpLGl0KDI5LCJidXR0b24iLDEzKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucmVqZWN0aW5nKCl9KSxVdCgzMCwiIE9LICIpLHN0KCkoKSgpLGl0KDMxLCJkaXYiLDE0KSxybigzMixiTmUs''@;'; + put 'put ''NCwyLCJkaXYiLDE1KSxybigzMyxWTmUsMywyLCJkaXYiLDE2KSxzdCgpKSwyJmgmJihUdCgiY2xyTW9kYWxPcGVuIix2LmRldGFpbHNPcGVuKSx1dCgxMiksVHQoIm5nRm9yT2YiLHYua2V5c0FycmF5KSx1dCg0KSxUdCgiY2xyTW9kYWxPcGVuIix2LnJlamVjdE9wZW4pLHV0KDkpLFR0KCJu''@;'; + put 'put ''Z01vZGVsIix2LnN1Ym1pdFJlYXNvbikoIm5nTW9kZWxPcHRpb25zIixOcyg5LGpOZSkpKCJpbm5lckhUTUwiLHYuc3VibWl0UmVhc29uLFU4KSx1dCg0KSxUdCgiY2xyTG9hZGluZyIsdi5yZWplY3RMb2FkaW5nKSx1dCgzKSxUdCgibmdJZiIsIXYuc3VibWl0dGVkKSx1dCgxKSxUdCgibmdJ''@;'; + put 'put ''ZiIsdi5zdWJtaXR0ZWQpKX0sZGVwZW5kZW5jaWVzOltsYyxacyxWbyxwZyxtMSxJZixFcyxkZyx4cyxMYyx3bCxmNCxoNCxnbyxyMSx3LG90LFJvLGxvLE9pLHBaLG1aLGtxLGdaLGhaLENxXSxzdHlsZXM6WycubG9hZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlm''@;'; + put 'put ''eS1jb250ZW50OmNlbnRlcjtoZWlnaHQ6NzV2aDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5tb2RhbExhcmdlW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDo1MHJlbSFpbXBvcnRhbnR9LmFkZGVkUm93W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJn''@;'; + put 'put ''YigxNDYsMjA4LDE1NCk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDksNzcsMTE3LC4yKTtib3JkZXItcmFkaXVzOjVweH0uZGVsZXRlZFJvd1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2IoMjMwLDE3OSwxNzkpO2JvcmRlcjoxcHggc29saWQgcmdiYSg3MCw3MSw3MCwuMik7Ym9y''@;'; + put 'put ''ZGVyLXJhZGl1czo1cHh9LnVwZGF0ZWRSb3dbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6I2ZhZmRhODtib3JkZXI6MXB4IHNvbGlkIHJnYmEoOSwxMTcsOSwuMik7Ym9yZGVyLXJhZGl1czo1cHh9LmNoW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjEp''@;'; + put 'put ''O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMDQsMTAwLDAsLjQpO2JvcmRlci1yYWRpdXM6NXB4fS5jaFtfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDI1MiwxMzUsMTIwLC40KX0udG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRpcC1jb250ZW50LnRv''@;'; + put 'put ''b2x0aXAtdG9wLXJpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRvb2x0aXAudG9vbHRpcC10b3AtcmlnaHRbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0sIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC50b29sdGlwLWNvbnRl''@;'; + put 'put ''bnRbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTouNTQxNjdyZW07Zm9udC13ZWlnaHQ6NDAwO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kOiMzMTQzNTE7Ym9yZGVyLXJhZGl1czouMTI1cmVtO2NvbG9yOiNmMGYxZWM7bGluZS1oZWlnaHQ6Ljc1cmVtO21hcmdpbjowO3Bh''@;'; + put 'put ''ZGRpbmc6LjM3NXJlbSAuNXJlbTt3aWR0aDoyMzVweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6YXV0bztib3R0b206MTAwJTtsZWZ0OjEycHg7cmlnaHQ6YXV0bztib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7bWFyZ2luLWJvdHRvbTouNjY2NjdyZW19LnRvb2x0aXBbX25nY29udGVudC0l''@;'; + put 'put ''Q09NUCVdICAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLXRvcC1yaWdodFtfbmdjb250ZW50LSVDT01QJV06YmVmb3JlLCAudG9vbHRpcC50b29sdGlwLXRvcC1yaWdodFtfbmdjb250ZW50LSVDT01QJV0gPiAudG9vbHRpcC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmUsIC50''@;'; + put 'put ''b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC50b29sdGlwLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206LS4zNzVyZW07bGVmdDowO3RvcDphdXRvO3JpZ2h0OmF1dG87Y29udGVudDoiIjtib3JkZXItbGVmdDouMjVyZW0gc29s''@;'; + put 'put ''aWQgIzMxNDM1MTtib3JkZXItdG9wOi4yMDgzM3JlbSBzb2xpZCAjMzE0MzUxO2JvcmRlci1yaWdodDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTouMjA4MzNyZW0gc29saWQgdHJhbnNwYXJlbnR9LnRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MHB4IHNv''@;'; + put 'put ''bGlkfS50b2dnbGUtc3dpdGNoW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W3R5cGU9Y2hlY2tib3hdW19uZ2NvbnRlbnQtJUNPTVAlXTpjaGVja2VkICsgbGFiZWxbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZXtib3JkZXItY29sb3I6IzMxNDM1MTtiYWNrZ3JvdW5kLWNvbG9yOiMzMTQz''@;'; + put 'put ''NTEhaW1wb3J0YW50O3RyYW5zaXRpb246LjE1cyBlYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9LnRhYmxlQ29udFtfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3c6YXV0bzttYXJnaW46MTVweCAxMHB4IDEwcHh9LnRhYmxlQ29udFtf''@;'; + put 'put ''bmdjb250ZW50LSVDT01QJV0gICB0ZFtfbmdjb250ZW50LSVDT01QJV17d29yZC1icmVhazpicmVhay1hbGx9LmFwcHJvdmFsSW5mb1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uYXBwcm92YWxCYWNrW19uZ2NvbnRlbnQtJUNPTVAl''@;'; + put 'put ''XXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5hcHByb3ZhbEluZm9bX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MTVweH0u''@;'; + put 'put ''YXBwcm92YWxCYWNrW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tYm90dG9tOjE1cHh9LmNhcmRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MHJlbSFpbXBvcnRhbnQ7bWluLWhlaWdodDpjYWxjKDEwMHZoICsgLTBw''@;'; + put 'put ''eCkhaW1wb3J0YW50fS50YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0ZC5sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoLmxlZnRbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246bGVmdDt3aWR0aDoxNTBweCFpbXBvcnRhbnQ7Zmxl''@;'; + put 'put ''eDowfX0udGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGQubGVmdFtfbmdjb250ZW50LSVDT01QJV0sIC50YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0aC5sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOmxlZnQ7ZmxleDoxO3dpZHRoOjMwMHB4IWltcG9ydGFudH0udG9v''@;'; + put 'put ''bGxbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6I2U2YjNiMztjb2xvcjojMzE0MzUxO3RvcDowcHg7aGVpZ2h0OjM2cHg7d2lkdGg6MTAwJTtsZWZ0OjBweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZs''@;'; + put 'put ''ZXh9J119KSxkfSkoKSxaTmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMucm91dGU9aCx0aGlzLnJvdXRlcj12fXN1Ym1pdHRlZFRhYmxlU2NyZWVuKCl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3N0YWdlLyIrdGhpcy5kc2lkKX1hcHByb3ZlVGFibGVTY3JlZW4o''@;'; + put 'put ''KXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvYXBwcm92ZS9hcHByb3ZlRGV0LyIrdGhpcy5kc2lkKX12aWV3ZXJUYWJsZVNjcmVlbigpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2RhdGEvIit0aGlzLmxpYmRzKX1nb0JhY2soKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5''@;'; + put 'put ''VXJsKCIvZWRpdG9yLyIrdGhpcy5saWJkcyl9bmdPbkluaXQoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuZHNpZD10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5kc2lkLHRoaXMubGliZHM9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMubGliZHN9''@;'; + put 'put ''KX1uZ0FmdGVyVmlld0luaXQoKXtzZXRUaW1lb3V0KCgpPT57bGV0IGg9d2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZhbEJ0biIpO2gmJmguZm9jdXMoKX0sNzAwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoUHUpLFh0''@;'; + put 'put ''KFpsKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1hY3Rpb25zIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczoxOSx2YXJzOjEsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl0sWzEsImNhcmQiXSxbMSwiY2FyZC1oZWFkZXIiLDIs''@;'; + put 'put ''ImRpc3BsYXkiLCJmbGV4IiwiZmxleC1kaXJlY3Rpb24iLCJjb2x1bW4iLCJqdXN0aWZ5LWNvbnRlbnQiLCJjZW50ZXIiXSxbMiwidGV4dC1hbGlnbiIsImNlbnRlciJdLFsyLCJjb2xvciIsIiMzZjhjYzMiLCJmb250LXdlaWdodCIsIjcwMCJdLFsxLCJyb3ciLDIsImRpc3BsYXkiLCJmbGV4''@;'; + put 'put ''IiwianVzdGlmeS1jb250ZW50IiwiY2VudGVyIiwibWFyZ2luLXRvcCIsIjIwcHgiXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLDIsInRleHQtYWxpZ24iLCJjZW50ZXIiLDMsImNsaWNrIl0sWyJpZCIsImFwcHJvdmFsQnRuIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vz''@;'; + put 'put ''cy1vdXRsaW5lIiwyLCJ0ZXh0LWFsaWduIiwiY2VudGVyIiwzLCJjbGljayJdLFsxLCJidG4iLCJidG4tc20iLCJidG4taW5mby1vdXRsaW5lIiwyLCJ0ZXh0LWFsaWduIiwiY2VudGVyIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKGl0KDAsImRpdiIsMCkoMSwi''@;'; + put 'put ''ZGl2IiwxKSgyLCJkaXYiLDIpKDMsImgzIiwzKSxVdCg0LCIgWW91IHN1Y2Nlc2Z1bGx5IGVkaXRlZCB0YWJsZSAiKSxpdCg1LCJzcGFuIiw0KSxVdCg2KSxzdCgpKCksaXQoNywicCIsMykoOCwiYiIpLFV0KDksIlBsZWFzZSBjaG9vc2UgZnJvbSB0aGUgZm9sbG93aW5nIGFjdGlvbnMiKSxz''@;'; + put 'put ''dCgpKCksaXQoMTAsImRpdiIsNSkoMTEsImJ1dHRvbiIsNiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnN1Ym1pdHRlZFRhYmxlU2NyZWVuKCl9KSxVdCgxMiwiIEdvIHRvIHN1Ym1pdHRlZCB0YWJsZSBzY3JlZW4gIiksc3QoKSxpdCgxMywiYnV0dG9uIiw2KSxZbigiY2xpY2si''@;'; + put 'put ''LGZ1bmN0aW9uKCl7cmV0dXJuIHYudmlld2VyVGFibGVTY3JlZW4oKX0pLFV0KDE0LCIgR28gdG8gYmFzZSB0YWJsZSBzY3JlZW4gIiksc3QoKSxpdCgxNSwiYnV0dG9uIiw3KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuYXBwcm92ZVRhYmxlU2NyZWVuKCl9KSxVdCgxNiwiIEdv''@;'; + put 'put ''IHRvIGFwcHJvdmFscyBzY3JlZW4gIiksc3QoKSxpdCgxNywiYnV0dG9uIiw4KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZ29CYWNrKCl9KSxVdCgxOCwiIEdvIGJhY2sgdG8gZWRpdG9yICIpLHN0KCkoKSgpKCkoKSksMiZoJiYodXQoNiksR2kodi5saWJkcykpfX0pLGR9KSgp''@;'; + put 'put ''O2Z1bmN0aW9uIHpOZShkLGcpezEmZCYmKGl0KDAsImRpdiIsMTIpLENyKDEsImNsci1pY29uIiwxMyksaXQoMiwiaDMiLDE0KSxVdCgzLCIgVGhlcmUgaXMgbm8gaGlzdG9yeSB0byBzaG93ICIpLHN0KCkoKSl9ZnVuY3Rpb24gR05lKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwi''@;'; + put 'put ''YSIsMTcpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KCkuJGltcGxpY2l0LEM9S3QoKTtyZXR1cm4gYShDLmdldFRhYmxlKEMuYXBwcm92ZURhdGFbeV0pKX0pLFV0KDEpLHN0KCl9aWYoMiZkKXtjb25zdCBoPUt0KCkuJGltcGxpY2l0LHY9S3QoKTt1dCgxKSxHaSh2''@;'; + put 'put ''LmFwcHJvdmVEYXRhW2hdKX19ZnVuY3Rpb24gV05lKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiZGl2IikoMSwiYSIsMTcpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KCkuJGltcGxpY2l0LEM9S3QoKTtyZXR1cm4gYShDLmdldEJhc2VUYWJsZShDLmFw''@;'; + put 'put ''cHJvdmVEYXRhW3ldKSl9KSxVdCgyLCJWSUVXIiksc3QoKSxpdCgzLCJzcGFuIiksVXQoNCwiIC8gIiksc3QoKSxpdCg1LCJhIiwxNyksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoKS4kaW1wbGljaXQsQz1LdCgpO3JldHVybiBhKEMuZ2V0RWRpdFRhYmxlKEMuYXBw''@;'; + put 'put ''cm92ZURhdGFbeV0pKX0pLFV0KDYsIkVESVQiKSxzdCgpKCl9fWZ1bmN0aW9uIFlOZShkLGcpe2lmKDEmZCYmKGl0KDAsInNwYW4iKSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKS4kaW1wbGljaXQsdj1LdCgpO3V0KDEpLEdpKHYuYXBwcm92ZURhdGFbaF0pfX1mdW5jdGlvbiBVTmUo''@;'; + put 'put ''ZCxnKXtpZigxJmQmJihpdCgwLCJ0ciIpKDEsInRkIiw2KSxVdCgyKSxzdCgpLGl0KDMsInRkIiw2KSxybig0LEdOZSwyLDEsImEiLDE1KSxybig1LFdOZSw3LDAsImRpdiIsMTYpLHJuKDYsWU5lLDIsMSwic3BhbiIsMTYpLHN0KCkoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9Zy5p''@;'; + put 'put ''bmRleDt1dCgyKSxHaShoKSx1dCgyKSxUdCgibmdJZiIsdjwxKSx1dCgxKSxUdCgibmdJZiIsdjwyJiZ2Pj0xKSx1dCgxKSxUdCgibmdJZiIsdj49Mil9fWZ1bmN0aW9uIFFOZShkLGcpezEmZCYmKGl0KDAsInNwYW4iLDIwKSxVdCgxLCIgTG9hZGluZy4uLiAiKSxzdCgpKX1mdW5jdGlvbiBK''@;'; + put 'put ''TmUoZCxnKXsxJmQmJihpdCgwLCJkaXYiKSgxLCJoMyIpLFV0KDIsIkxvYWRpbmcgaGlzdG9yeSIpLHN0KCkoKSl9ZnVuY3Rpb24gWE5lKGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2IiwxOCkscm4oMSxRTmUsMiwwLCJzcGFuIiwxOSkscm4oMixKTmUsMywwLCJkaXYiLDE2KSxzdCgpKSwyJmQp''@;'; + put 'put ''e2NvbnN0IGg9S3QoKTt1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKX19ZnVuY3Rpb24gS05lKGQsZyl7MSZkJiYoaXQoMCwiaDMiLDI1KSxVdCgxLCIgSElTVE9SWSAiKSxzdCgpKX1jb25zdCAkTmU9ZnVuY3Rpb24oZCxnKXtyZXR1cm57cmVq''@;'; + put 'put ''ZWN0ZWQ6ZCxhY2NlcHRlZDpnfX07ZnVuY3Rpb24gcU5lKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiY2xyLWRnLXJvdyIsMzQpLFluKCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBDPXJ0KGgpLiRpbXBsaWNpdDtyZXR1cm4gYShLdCgzKS5nZXRBcHBySW5kZXgoQykpfSksaXQo''@;'; + put 'put ''MSwiY2xyLWRnLWNlbGwiLDM1KSgyLCJhIiwzNiksWW4oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9cnQoaCkuJGltcGxpY2l0O3JldHVybiBhKEt0KDMpLmdldEJhc2VUYWJsZShDLmJhc2V0YWJsZSkpfSksVXQoMyksc3QoKSgpLGl0KDQsImNsci1kZy1jZWxsIiwzNyksVXQoNSksc3Qo''@;'; + put 'put ''KSxpdCg2LCJjbHItZGctY2VsbCIsMzUpLFV0KDcpLHN0KCksaXQoOCwiY2xyLWRnLWNlbGwiLDM1KSxVdCg5KSxzdCgpLGl0KDEwLCJjbHItZGctY2VsbCIsMzUpLFV0KDExKSxzdCgpLGl0KDEyLCJjbHItZGctY2VsbCIsMzUpLFV0KDEzKSxzdCgpLGl0KDE0LCJjbHItZGctY2VsbCIsMzgp''@;'; + put 'put ''KDE1LCJidXR0b24iLDM5KSxZbigiY2xpY2siLGZ1bmN0aW9uKHkpe2NvbnN0IEk9cnQoaCkuJGltcGxpY2l0O3JldHVybiBLdCgzKS5kb3dubG9hZChJLnRhYmxlSWQpLGEoeS5zdG9wUHJvcGFnYXRpb24oKSl9KSxDcigxNiwiY2xyLWljb24iLDQwKSxzdCgpKCkoKX1pZigyJmQpe2NvbnN0''@;'; + put 'put ''IGg9Zy4kaW1wbGljaXQ7dXQoMyksR2koaC5iYXNldGFibGUpLHV0KDEpLFR0KCJuZ0NsYXNzIixaMyg3LCROZSwiUkVKRUNURUQiPT09aC5zdGF0dXMsIkFQUFJPVkVEIj09PWguc3RhdHVzKSksdXQoMSksR2koaC5zdGF0dXMpLHV0KDIpLEdpKGguc3VibWl0dGVyKSx1dCgyKSxHaShoLnN1''@;'; + put 'put ''Ym1pdHRlZFJlYXNvbiksdXQoMiksR2koaC5zdWJtaXR0ZWQpLHV0KDIpLEdpKGgucmV2aWV3ZWQpfX1mdW5jdGlvbiBlVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItZGF0YWdyaWQiLDI2KSgxLCJjbHItZGctY29sdW1uIiwyNyksVXQoMiwiQkFTRV9UQUJMRSIpLHN0''@;'; + put 'put ''KCksaXQoMywiY2xyLWRnLWNvbHVtbiIsMjcpLFV0KDQsIlNUQVRVUyIpLHN0KCksaXQoNSwiY2xyLWRnLWNvbHVtbiIsMjcpLFV0KDYsIlNVQk1JVFRFUiIpLHN0KCksaXQoNywiY2xyLWRnLWNvbHVtbiIsMjcpLFV0KDgsIlNVQk1JVCBSRUFTT04iKSxzdCgpLGl0KDksImNsci1kZy1jb2x1''@;'; + put 'put ''bW4iLDI3KSxVdCgxMCwiU1VCTUlUVEVEIiksc3QoKSxpdCgxMSwiY2xyLWRnLWNvbHVtbiIsMjcpLFV0KDEyLCJBUFBST1ZFRCAvIFJFSkVDVEVEIiksc3QoKSxpdCgxMywiY2xyLWRnLWNvbHVtbiIsMjcpLFV0KDE0LCJET1dOTE9BRCIpLHN0KCkscm4oMTUscU5lLDE3LDEwLCJjbHItZGct''@;'; + put 'put ''cm93IiwyOCksaXQoMTYsImNsci1kZy1mb290ZXIiLDI5KSgxNywic3BhbiIpLFV0KDE4LCJpdGVtcyBwZXIgcGFnZSIpLHN0KCksaXQoMTksInNlbGVjdCIsMzApLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgyKS5pdGVtc051bT15KX0pLGl0KDIw''@;'; + put 'put ''LCJvcHRpb24iLDMxKSxVdCgyMSwiMyIpLHN0KCksaXQoMjIsIm9wdGlvbiIsMzEpLFV0KDIzLCI1Iiksc3QoKSxpdCgyNCwib3B0aW9uIiwzMSksVXQoMjUsIjEwIiksc3QoKSxpdCgyNiwib3B0aW9uIiwzMSksVXQoMjcsIjE1Iiksc3QoKSgpLGl0KDI4LCJjbHItZGctcGFnaW5hdGlvbiIs''@;'; + put 'put ''MzIsMzMpLFV0KDMwKSxzdCgpKCkoKX1pZigyJmQpe2NvbnN0IGg9eWEoMjkpLHY9S3QoMik7dXQoMSksVHQoImNsckRnRmllbGQiLCJiYXNldGFibGUiKSx1dCgyKSxUdCgiY2xyRGdGaWVsZCIsInN0YXR1cyIpLHV0KDIpLFR0KCJjbHJEZ0ZpZWxkIiwic3VibWl0dGVyIiksdXQoMiksVHQo''@;'; + put 'put ''ImNsckRnRmllbGQiLCJzdWJtaXR0ZWRSZWFzb24iKSx1dCgyKSxUdCgiY2xyRGdGaWVsZCIsInN1Ym1pdHRlZCIpLHV0KDIpLFR0KCJjbHJEZ0ZpZWxkIiwicmV2aWV3ZWQiKSx1dCgyKSxUdCgiY2xyRGdGaWVsZCIsInJldmlld2VkIiksdXQoMiksVHQoImNsckRnSXRlbXNPZiIsdi5oaXN0''@;'; + put 'put ''b3J5KSx1dCg0KSxUdCgibmdNb2RlbCIsdi5pdGVtc051bSksdXQoMSksVHQoIm5nVmFsdWUiLDMpLHV0KDIpLFR0KCJuZ1ZhbHVlIiw1KSx1dCgyKSxUdCgibmdWYWx1ZSIsMTApLHV0KDIpLFR0KCJuZ1ZhbHVlIiwxNSksdXQoMiksVHQoImNsckRnUGFnZVNpemUiLHYuaXRlbXNOdW0pLHV0''@;'; + put 'put ''KDIpLGtmKCIgIixoLmZpcnN0SXRlbSsxLCIgLSAiLGgubGFzdEl0ZW0rMSwiIG9mICIsaC50b3RhbEl0ZW1zLCIgdXBkYXRlcyAiKX19ZnVuY3Rpb24gdFZlKGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2IiwyMSkoMSwiZGl2IiwyMikscm4oMixLTmUsMiwwLCJoMyIsMjMpLHN0KCkscm4oMyxl''@;'; + put 'put ''VmUsMzEsMTcsImNsci1kYXRhZ3JpZCIsMjQpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgpO3V0KDIpLFR0KCJuZ0lmIixoLmxvYWRlZCksdXQoMSksVHQoIm5nSWYiLGgubG9hZGVkKX19bGV0IG5WZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuc2FzU3RvcmVTZXJ2''@;'; + put 'put ''aWNlPWgsdGhpcy5ldmVudFNlcnZpY2U9dix0aGlzLnJvdXRlcj15LHRoaXMuc2FzU2VydmljZT1DLHRoaXMuaGlzdG9yeT1bXSx0aGlzLnRhYmxlVGl0bGVzPVtdLHRoaXMuaGlzdG9yeUFycj1bXSx0aGlzLmxvYWRlZD0hMSx0aGlzLml0ZW1zTnVtPTEwLHRoaXMub3Blbk1vZGFsPSExLHRo''@;'; + put 'put ''aXMubm9EYXRhPSExLHRoaXMuYXBwcm92ZURhdGE9e30sdGhpcy5zYXNqc0NvbmZpZz1uZXcgUTMuU0FTanNDb25maWcsdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKX1nZXRUYWJsZShoKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvc3RhZ2Uv''@;'; + put 'put ''IitoKX1nZXRCYXNlVGFibGUoaCl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YS8iK2gpfWdldEVkaXRUYWJsZShoKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvZWRpdG9yLyIraCl9Z2V0QXBwckluZGV4KGgpe2NvbnN0IHY9dGhpcy5oaXN0b3J5QXJyLmZpbmRJ''@;'; + put 'put ''bmRleCh5PT55LlRBQkxFX0lEPT09aC50YWJsZUlkKTt2Pi0xJiYodGhpcy5hcHByb3ZlRGF0YT10aGlzLmhpc3RvcnlBcnJbdl0sdGhpcy5vcGVuTW9kYWw9ITApfWRvd25sb2FkKGgpe2xldCB2PXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLHk9di5zZXJ2ZXJVcmwsQz12LmFw''@;'; + put 'put ''cExvYyxJPXRoaXMuc2FzU2VydmljZS5nZXRFeGVjdXRpb25QYXRoKCk7d2luZG93Lm9wZW4oeStJKyIvP19wcm9ncmFtPSIrQysiL3NlcnZpY2VzL2F1ZGl0b3JzL2dldGF1ZGl0ZmlsZSZ0YWJsZT0iK2grIiZfY29udGV4dG5hbWU9Iit0aGlzLnNhc2pzQ29uZmlnLmNvbnRleHROYW1lKX1u''@;'; + put 'put ''Z09uSW5pdCgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IHY9e0hJU1Q6NTB9O3RyeXtsZXQgQyx5PXlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLmdldEhpc3RvcnkodiwiQnJvd3NlclBhcmFtcyIsImFwcHJvdmVycy9nZXRoaXN0b3J5IiksST15LmZy''@;'; + put 'put ''b21zYXM7aWYodGhpcy5oaXN0b3J5QXJyPXkuZnJvbXNhcyx5LmZyb21zYXMubGVuZ3RoPjApe0M9T2JqZWN0LmtleXMoSVswXSksdGhpcy50YWJsZVRpdGxlcz1DO2xldCBqPXkuZnJvbXNhcy5tYXAoZnVuY3Rpb24odWUpe3JldHVybnt0YWJsZUlkOnVlLlRBQkxFX0lELHN1Ym1pdHRlcjp1''@;'; + put 'put ''ZS5TVUJNSVRURVIsc3VibWl0dGVkUmVhc29uOnVlLlNVQk1JVFRFRF9SRUFTT05fVFhULHN1Ym1pdHRlZDp1ZS5TVUJNSVRURUQsc3RhdHVzOnVlLlNUQVRVUyxyZXZpZXdSZWFzb246dWUuUkVWSUVXX1JFQVNPTl9UWFQscmV2aWV3ZXI6dWUuUkVWSUVXRVIscmV2aWV3ZWQ6dWUuUkVWSUVX''@;'; + put 'put ''RUQsbnVtT2ZBcHByb3ZhbHM6dWUuTlVNX09GX0FQUFJPVkFMU19SRVFVSVJFRCxiYXNldGFibGU6dWUuQkFTRV9UQUJMRX19KTt0aGlzLmhpc3Rvcnk9aix0aGlzLmxvYWRlZD0hMH1lbHNlIHRoaXMubG9hZGVkPSEwLHRoaXMubm9EYXRhPSEwfWNhdGNoKHkpe3RoaXMuZXZlbnRTZXJ2aWNl''@;'; + put 'put ''LmNhdGNoUmVzcG9uc2VFcnJvcigiYXBwcm92ZXJzL2dldGhpc3RvcnkiLHkpfX0pfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChrZyksWHQobXUpLFh0KFpsKSxYdChnMikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJh''@;'; + put 'put ''cHAtaGlzdG9yeSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MjAsdmFyczo2LGNvbnN0czpbWzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJjYXJkLWJsb2NrIiwic3R5bGUiLCJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRl''@;'; + put 'put ''bnQ6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xuICAgICIsNCwibmdJZiJdLFszLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2Rh''@;'; + put 'put ''bE9wZW5DaGFuZ2UiXSxbMSwibW9kYWwtdGl0bGUiXSxbMSwibW9kYWwtYm9keSJdLFsxLCJ0YWJsZSJdLFsxLCJsZWZ0Il0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1vdXRsaW5lIiwzLCJjbGljayJdLFsi''@;'; + put 'put ''c3R5bGUiLCJcbiAgICAgIGhlaWdodDogNzB2aDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICIsNCwibmdJZiJdLFsiY2xh''@;'; + put 'put ''c3MiLCJjYXJkIiw0LCJuZ0lmIl0sWzEsImNhcmQtYmxvY2siLDIsImRpc3BsYXkiLCJmbGV4IiwianVzdGlmeS1jb250ZW50IiwiY2VudGVyIiwiZmxleC1kaXJlY3Rpb24iLCJjb2x1bW4iLCJhbGlnbi1pdGVtcyIsImNlbnRlciIsImhlaWdodCIsImNhbGMoMTAwdmggLSAyMDBweCkiXSxb''@;'; + put 'put ''InNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyJdLFsyLCJ0ZXh0LWFsaWduIiwiY2VudGVyIiwiY29sb3IiLCIjNWE1YTVhIl0sWyJzdHlsZSIsImN1cnNvcjogcG9pbnRlciIsMywiY2xpY2siLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsyLCJjdXJzb3Ii''@;'; + put 'put ''LCJwb2ludGVyIiwzLCJjbGljayJdLFsyLCJoZWlnaHQiLCI3MHZoIiwiZGlzcGxheSIsImZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQiLCJjZW50ZXIiLCJmbGV4LWRpcmVjdGlvbiIsImNvbHVtbiIsImFsaWduLWl0ZW1zIiwiY2VudGVyIl0sWyJjbGFzcyIsInNwaW5uZXIiLDQsIm5nSWYiXSxb''@;'; + put 'put ''MSwic3Bpbm5lciJdLFsxLCJjYXJkIl0sWzEsImNhcmQtaGVhZGVyIl0sWyJjbGFzcyIsImNlbnRlciBjbHItY29sLW1kLTEyIiwic3R5bGUiLCJ0ZXh0LWFsaWduOiBjZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwiZGF0YWdyaWQtaGlzdG9yeSBkYXRhZ3JpZC1jdXN0b20tZm9vdGVyIiw0''@;'; + put 'put ''LCJuZ0lmIl0sWzEsImNlbnRlciIsImNsci1jb2wtbWQtMTIiLDIsInRleHQtYWxpZ24iLCJjZW50ZXIiXSxbMSwiZGF0YWdyaWQtaGlzdG9yeSIsImRhdGFncmlkLWN1c3RvbS1mb290ZXIiXSxbMywiY2xyRGdGaWVsZCJdLFszLCJjbGljayIsNCwiY2xyRGdJdGVtcyIsImNsckRnSXRlbXNP''@;'; + put 'put ''ZiJdLFsyLCJkaXNwbGF5IiwiZmxleCIsImp1c3RpZnktY29udGVudCIsImZsZXgtc3RhcnQiXSxbMiwibWFyZ2luIiwiMCA1cHggMCA1cHgiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsIm5nVmFsdWUiXSxbMSwiY2VudGVyIiwzLCJjbHJEZ1BhZ2VTaXplIl0sWyJwYWdpbmF0''@;'; + put 'put ''aW9uIiwiIl0sWzMsImNsaWNrIl0sWzEsInZlckNlbnRlciJdLFsxLCJidG4iLCJidG4tc20iLCJidG4tbGluayIsMiwibWFyZ2luIiwiMHB4IiwzLCJjbGljayJdLFsxLCJ2ZXJDZW50ZXIiLDMsIm5nQ2xhc3MiXSxbMSwidmVyQ2VudGVyIiwyLCJwYWRkaW5nIiwiMHB4IiwiZGlzcGxheSIs''@;'; + put 'put ''ImZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQiLCJjZW50ZXIiXSxbMSwiYnRuIiwiYnRuLXN1Y2Nlc3MiLDMsImNsaWNrIl0sWyJzaGFwZSIsImRvd25sb2FkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoaXQoMCwiZGl2IiwwKSxybigxLHpOZSw0LDAsImRpdiIsMSksaXQoMiwiY2xy''@;'; + put 'put ''LW1vZGFsIiwyKSxZbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vcGVuTW9kYWw9Q30pLGl0KDMsImg0IiwzKSxVdCg0LCJBcHByb3ZhbCBkZXRhaWxzIiksc3QoKSxpdCg1LCJkaXYiLDQpKDYsInRhYmxlIiw1KSg3LCJ0aGVhZCIpKDgsInRyIikoOSwidGgi''@;'; + put 'put ''LDYpLFV0KDEwLCJOYW1lIiksc3QoKSxpdCgxMSwidGgiLDYpLFV0KDEyLCJWYWx1ZSIpLHN0KCkoKSgpLGl0KDEzLCJ0Ym9keSIpLHJuKDE0LFVOZSw3LDQsInRyIiw3KSxzdCgpKCkoKSxpdCgxNSwiZGl2Iiw4KSgxNiwiYnV0dG9uIiw5KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHYub3Blbk1vZGFsPSExfSksVXQoMTcsIiBPSyAiKSxzdCgpKCkoKSxybigxOCxYTmUsMywyLCJkaXYiLDEwKSxybigxOSx0VmUsNCwyLCJkaXYiLDExKSxzdCgpKSwyJmgmJih1dCgxKSxUdCgibmdJZiIsdi5ub0RhdGEpLHV0KDEpLFR0KCJjbHJNb2RhbE9wZW4iLHYub3Blbk1vZGFsKSgi''@;'; + put 'put ''Y2xyTW9kYWxTaXplIiwieGwiKSx1dCgxMiksVHQoIm5nRm9yT2YiLHYudGFibGVUaXRsZXMpLHV0KDQpLFR0KCJuZ0lmIiwhdi5sb2FkZWQpLHV0KDEpLFR0KCJuZ0lmIiwhdi5ub0RhdGEmJnYubG9hZGVkKSl9LGRlcGVuZGVuY2llczpbbGMsWnMsVm8scTMsZWQsT2YsRXMseHMsaVosUkws''@;'; + put 'put ''QkwsUEwscFMsb1osYVosbFosTkwsVkwsSEwsaFMsZVosdFosd2wsZjQsaDRdLHN0eWxlczpbIi5yZWplY3RlZFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2Y4MzEyNjtmb250LXdlaWdodDo3MDB9LmFjY2VwdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojM2ZjNDI0O2ZvbnQtd2Vp''@;'; + put 'put ''Z2h0OjcwMH0uaHNDZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXghaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtwYWRkaW5nOjdweH0u''@;'; + put 'put ''YnRDZWxsW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXghaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS52ZXJDZW50ZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7d29yZC1icmVhazpicmVhay1hbGx9''@;'; + put 'put ''Il19KSxkfSkoKSxyVmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe31uZ09uSW5pdCgpe319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1ub3QtZm91bmQiXV0saG9zdEF0''@;'; + put 'put ''dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjMsdmFyczowLGNvbnN0czpbWzEsImNvbnRlbnQtYXJlYSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKGl0KDAsImRpdiIsMCkoMSwicCIpLFV0KDIsIjQwNCAtIE5vdCBGb3VuZCIpLHN0KCkoKSl9fSksZH0pKCk7ZnVu''@;'; + put 'put ''Y3Rpb24gaVZlKGQsZyl7MSZkJiYoaXQoMCwiZGl2IiwxMCkoMSwiZGl2IiwxMSksQ3IoMiwiY2xyLWljb24iLDEyKSxpdCgzLCJoMyIsMTMpLFV0KDQsIiBZb3UgaGF2ZSBub3Qgc3VibWl0dGVkIGFueSB0YWJsZXMgIiksc3QoKSgpKCkpfWZ1bmN0aW9uIG9WZShkLGcpezEmZCYmKGl0KDAs''@;'; + put 'put ''ImgzIiwxNCksVXQoMSwiIFNVQk1JVCBRVUVVRSAiKSxzdCgpKX1mdW5jdGlvbiBhVmUoZCxnKXtpZigxJmQmJihpdCgwLCJwIiwxNSksVXQoMSwiIFlvdSBoYXZlICIpLGl0KDIsInNwYW4iKSxVdCgzKSxzdCgpLFV0KDQsInN1Ym1pc3Npb25zIHdhaXRpbmcgdG8gYmUgYXBwcm92ZWQgIiks''@;'; + put 'put ''c3QoKSksMiZkKXtjb25zdCBoPUt0KDIpO3V0KDMpLEppKCIiLGgucmVtYWluZWQsIiAiKX19ZnVuY3Rpb24gbFZlKGQsZyl7MSZkJiYoaXQoMCwic3BhbiIsMTgpLFV0KDEsIiBMb2FkaW5nLi4uICIpLHN0KCkpfWZ1bmN0aW9uIHNWZShkLGcpezEmZCYmKGl0KDAsImRpdiIpKDEsImgzIiks''@;'; + put 'put ''VXQoMiwiTG9hZGluZyBzdWJtaXR0ZWQgbGlzdCIpLHN0KCkoKSl9ZnVuY3Rpb24gdVZlKGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2IiwxNikscm4oMSxsVmUsMiwwLCJzcGFuIiwxNykscm4oMixzVmUsMywwLCJkaXYiLDIpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCgxKSxUdCgibmdJ''@;'; + put 'put ''ZiIsIWgubG9hZGVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKX19ZnVuY3Rpb24gY1ZlKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiY2xyLWRnLXJvdyIsMjgpLFluKCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCB5PXJ0KGgpLEM9eS4kaW1wbGljaXQsST15LmluZGV4O3Jl''@;'; + put 'put ''dHVybiBhKEt0KDQpLmdldERldGFpbHMoQyxJKSl9KSxpdCgxLCJjbHItZGctY2VsbCIpLFV0KDIpLHN0KCksaXQoMywiY2xyLWRnLWNlbGwiKSxVdCg0KSxzdCgpLGl0KDUsImNsci1kZy1jZWxsIiksVXQoNiksc3QoKSxpdCg3LCJjbHItZGctY2VsbCIpKDgsImRpdiIsMjkpKDksImEiLDMw''@;'; + put 'put ''KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgQz1ydChoKS4kaW1wbGljaXQ7cmV0dXJuIGEoS3QoNCkuZ29Ub1N0YWdlKEMudGFibGVJZCkpfSksQ3IoMTAsImNsci1pY29uIiwzMSksaXQoMTEsInNwYW4iLDMyKSxVdCgxMiwiR28gdG8gc3RhZ2VkIGRhdGEgc2NyZWVuIiksc3QoKSgp''@;'; + put 'put ''KCkoKSxpdCgxMywiY2xyLWRnLWNlbGwiLDMzKSgxNCwiYnV0dG9uIiwzNCksWW4oImNsaWNrIixmdW5jdGlvbih5KXtjb25zdCBJPXJ0KGgpLiRpbXBsaWNpdDtyZXR1cm4gS3QoNCkuZG93bmxvYWQoSS50YWJsZUlkKSxhKHkuc3RvcFByb3BhZ2F0aW9uKCkpfSksQ3IoMTUsImNsci1pY29u''@;'; + put 'put ''IiwzNSksc3QoKSgpKCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDIpLEdpKGguYmFzZSksdXQoMiksR2koaC5zdWJtaXR0ZWQpLHV0KDIpLEdpKGguc3VibWl0UmVhc29uKX19ZnVuY3Rpb24gZlZlKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiZGl2IikoMSwiY2xy''@;'; + put 'put ''LWRhdGFncmlkIiwyMCkoMiwiY2xyLWRnLWNvbHVtbiIpLFV0KDMsIkJBU0UgVEFCTEUiKSxzdCgpLGl0KDQsImNsci1kZy1jb2x1bW4iLDIxKSxVdCg1LCJTVUJNSVRURUQiKSxzdCgpLGl0KDYsImNsci1kZy1jb2x1bW4iLDIxKSxVdCg3LCJTVUJNSVQgUkVBU09OIiksc3QoKSxpdCg4LCJj''@;'; + put 'put ''bHItZGctY29sdW1uIiwxMCksVXQoOSwiQUNUSU9OIiksc3QoKSxpdCgxMCwiY2xyLWRnLWNvbHVtbiIsMTApLFV0KDExLCJET1dOTE9BRCIpLHN0KCkscm4oMTIsY1ZlLDE2LDMsImNsci1kZy1yb3ciLDIyKSxpdCgxMywiY2xyLWRnLWZvb3RlciIsMjMpKDE0LCJzcGFuIiksVXQoMTUsIml0''@;'; + put 'put ''ZW1zIHBlciBwYWdlIiksc3QoKSxpdCgxNiwic2VsZWN0IiwyNCksWW4oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KDMpLml0ZW1zTnVtPXkpfSksaXQoMTcsIm9wdGlvbiIsMjUpLFV0KDE4LCIzIiksc3QoKSxpdCgxOSwib3B0aW9uIiwyNSksVXQoMjAs''@;'; + put 'put ''IjUiKSxzdCgpLGl0KDIxLCJvcHRpb24iLDI1KSxVdCgyMiwiMTAiKSxzdCgpLGl0KDIzLCJvcHRpb24iLDI1KSxVdCgyNCwiMTUiKSxzdCgpKCksaXQoMjUsImNsci1kZy1wYWdpbmF0aW9uIiwyNiwyNyksVXQoMjcpLHN0KCkoKSgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDI2KSx2PUt0KDMp''@;'; + put 'put ''O3V0KDQpLFR0KCJjbHJEZ0ZpZWxkIiwic3VibWl0dGVkIiksdXQoMiksVHQoImNsckRnRmllbGQiLCJzdWJtaXRSZWFzb24iKSx1dCg2KSxUdCgiY2xyRGdJdGVtc09mIix2LnN1Ym1pdHRlckxpc3QpLHV0KDQpLFR0KCJuZ01vZGVsIix2Lml0ZW1zTnVtKSx1dCgxKSxUdCgibmdWYWx1ZSIs''@;'; + put 'put ''MyksdXQoMiksVHQoIm5nVmFsdWUiLDUpLHV0KDIpLFR0KCJuZ1ZhbHVlIiwxMCksdXQoMiksVHQoIm5nVmFsdWUiLDE1KSx1dCgyKSxUdCgiY2xyRGdQYWdlU2l6ZSIsdi5pdGVtc051bSksdXQoMiksa2YoIiAiLGguZmlyc3RJdGVtKzEsIiAtICIsaC5sYXN0SXRlbSsxLCIgb2YgIixoLnRv''@;'; + put 'put ''dGFsSXRlbXMsIiBzdWJtaXNzaW9ucyAiKX19ZnVuY3Rpb24gaFZlKGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2IiwxOSkscm4oMSxmVmUsMjgsMTIsImRpdiIsMiksc3QoKSksMiZkKXtjb25zdCBoPUt0KDIpO3V0KDEpLFR0KCJuZ0lmIixoLnN1Ym1pdHRlckxpc3QmJjAhPT1oLnJlbWFpbmVk''@;'; + put 'put ''KX19Y29uc3QgZFZlPWZ1bmN0aW9uKGQpe3JldHVybntub0JvcmRlcjpkfX07ZnVuY3Rpb24gcFZlKGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2IiwzKSxybigxLGlWZSw1LDAsImRpdiIsNCksaXQoMiwiZGl2Iiw1KSxybigzLG9WZSwyLDAsImgzIiw2KSxybig0LGFWZSw1LDEsInAiLDcpLHN0''@;'; + put 'put ''KCkscm4oNSx1VmUsMywyLCJkaXYiLDgpLHJuKDYsaFZlLDIsMSwiZGl2Iiw5KSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKTt1dCgxKSxUdCgibmdJZiIsMD09PWgucmVtYWluZWQmJmgubG9hZGVkKSx1dCgxKSxUdCgibmdDbGFzcyIsWmQoNixkVmUsIWgubG9hZGVkKSksdXQoMSksVHQoIm5n''@;'; + put 'put ''SWYiLDAhPT1oLnJlbWFpbmVkKSx1dCgxKSxUdCgibmdJZiIsaC5sb2FkZWQmJjAhPT1oLnJlbWFpbmVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKSx1dCgxKSxUdCgibmdJZiIsaC5sb2FkZWQpfX1mdW5jdGlvbiBnVmUoZCxnKXsxJmQmJihpdCgwLCJkaXYiKSxDcigxLCJhcHAtYXBw''@;'; + put 'put ''cm92ZS1kZXRhaWxzIiksc3QoKSl9bGV0IE53ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuc2FzU3RvcmVTZXJ2aWNlPWgsdGhpcy5ldmVudFNlcnZpY2U9dix0aGlzLnJvdXRlPXksdGhpcy5zYXNTZXJ2aWNlPUMsdGhpcy5yZW1haW5lZD0wLHRoaXMubG9hZGVk''@;'; + put 'put ''PSExLHRoaXMuc3ViUmVhZHk9ITEsdGhpcy5kZXRhaWxzT3Blbj0hMX1nb1RvU3RhZ2UoaCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvc3RhZ2UvIitoKX1nZXREZXRhaWxzKGgsdil7dGhpcy5zdWJSZWFkeT0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2Vu''@;'; + put 'put ''ZERldGFpbHMoaCx2LHRoaXMuc3VibWl0RGF0YSl9LDApfW5nT25Jbml0KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLml0ZW1zTnVtPTEwO3RyeXtsZXQgaD15aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS5nZXRTdWJtaXR0cygpO2lmKHRoaXMucmVt''@;'; + put 'put ''YWluZWQ9aC5mcm9tc2FzLmxlbmd0aCx0aGlzLnJlbWFpbmVkPjApe3RoaXMuc3VibWl0dGVyPWguZnJvbXNhc1swXS5TVUJNSVRURURfQllfTk07bGV0IHY9aC5mcm9tc2FzLm1hcChmdW5jdGlvbih5KXtyZXR1cm57dGFibGVJZDp5LlRBQkxFX0lELGJhc2U6eS5CQVNFX1RBQkxFLHN1Ym1p''@;'; + put 'put ''dHRlZDp5LlNVQk1JVFRFRF9PTl9EVFRNLHN1Ym1pdHRlcjp5LlNVQk1JVFRFRF9CWV9OTSxzdWJtaXRSZWFzb246eS5TVUJNSVRURURfUkVBU09OX1RYVH19KTt0aGlzLnN1Ym1pdHRlckxpc3Q9dix0aGlzLnN1Ym1pdERhdGE9aC5mcm9tc2FzfXRoaXMubG9hZGVkPSEwfWNhdGNoKGgpe3Ro''@;'; + put 'put ''aXMuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigiZWRpdG9ycy9nZXRzdWJtaXRzIixoKX19KX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9yZWFkeVN1Yj10aGlzLnNhc1N0b3JlU2VydmljZS5zZXRTdWJtaXQuc3Vic2NyaWJlKGg9Pnt0aGlzLnN1YlJlYWR5PWh9KSx0aGlzLl9i''@;'; + put 'put ''YWNrVG9TdWI9dGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2V0U3VibWl0TGlzdC5zdWJzY3JpYmUoaD0+e3RoaXMuc3ViUmVhZHk9IXRoaXMuc3ViUmVhZHksdGhpcy5kZXRhaWxzT3Blbj0hMX0pfWRvd25sb2FkKGgpe2xldCB2PXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLHk9di5z''@;'; + put 'put ''ZXJ2ZXJVcmwsQz12LmFwcExvYyxJPXRoaXMuc2FzU2VydmljZS5nZXRFeGVjdXRpb25QYXRoKCk7d2luZG93Lm9wZW4oeStJKyIvP19wcm9ncmFtPSIrQysiL3NlcnZpY2VzL2F1ZGl0b3JzL2dldGF1ZGl0ZmlsZSZ0YWJsZT0iK2gpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7''@;'; + put 'put ''cmV0dXJuIG5ldyhofHxkKShYdChrZyksWHQobXUpLFh0KFpsKSxYdChnMikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtc3VibWl0dGVyIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczozLHZhcnM6Mixjb25zdHM6W1sxLCJjb250''@;'; + put 'put ''ZW50LWFyZWEiXSxbImNsYXNzIiwiY2FyZCIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsImNhcmQiXSxbInN0eWxlIiwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXIiLDQsIm5nSWYiXSxbMSwiY2FyZC1oZWFkZXIiLDMsIm5nQ2xhc3MiXSxbImNsYXNzIiwiY2VudGVy''@;'; + put 'put ''IGNsci1jb2wtbWQtMTIiLCJzdHlsZSIsInRleHQtYWxpZ246IGNlbnRlciIsNCwibmdJZiJdLFsic3R5bGUiLCJ0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAjNDk1OTY3Iiw0LCJuZ0lmIl0sWyJzdHlsZSIsIlxuICAgICAgICBoZWlnaHQ6IDcwdmg7XG4g''@;'; + put 'put ''ICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMTIiLDQs''@;'; + put 'put ''Im5nSWYiXSxbMiwiZGlzcGxheSIsImZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQiLCJjZW50ZXIiXSxbMSwiY2FyZC1ibG9jayIsMiwiZGlzcGxheSIsImZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQiLCJjZW50ZXIiLCJmbGV4LWRpcmVjdGlvbiIsImNvbHVtbiIsImFsaWduLWl0ZW1zIiwiY2VudGVy''@;'; + put 'put ''IiwiaGVpZ2h0IiwiY2FsYygxMDB2aCAtIDIwMHB4KSJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwic2l6ZSIsIjYwIiwxLCJpcy1pbmZvIl0sWzIsInRleHQtYWxpZ24iLCJjZW50ZXIiLCJjb2xvciIsIiM1YTVhNWEiXSxbMSwiY2VudGVyIiwiY2xyLWNvbC1tZC0xMiIsMiwidGV4''@;'; + put 'put ''dC1hbGlnbiIsImNlbnRlciJdLFsyLCJ0ZXh0LWFsaWduIiwiY2VudGVyIiwiZm9udC13ZWlnaHQiLCI3MDAiLCJjb2xvciIsIiM0OTU5NjciXSxbMiwiaGVpZ2h0IiwiNzB2aCIsImRpc3BsYXkiLCJmbGV4IiwianVzdGlmeS1jb250ZW50IiwiY2VudGVyIiwiZmxleC1kaXJlY3Rpb24iLCJj''@;'; + put 'put ''b2x1bW4iLCJhbGlnbi1pdGVtcyIsImNlbnRlciJdLFsiY2xhc3MiLCJzcGlubmVyIiw0LCJuZ0lmIl0sWzEsInNwaW5uZXIiXSxbMSwiY2xyLWNvbC1tZC0xMiJdLFsxLCJkYXRhZ3JpZC1jb21wYWN0IiwiZGF0YWdyaWQtY3VzdG9tLWZvb3RlciJdLFszLCJjbHJEZ0ZpZWxkIl0sWyJzdHls''@;'; + put 'put ''ZSIsImN1cnNvcjogcG9pbnRlciIsMywiY2xpY2siLDQsImNsckRnSXRlbXMiLCJjbHJEZ0l0ZW1zT2YiXSxbMiwiZGlzcGxheSIsImZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQiLCJmbGV4LXN0YXJ0Il0sWzMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsIm5nVmFsdWUiXSxbMSwiY2Vu''@;'; + put 'put ''dGVyIiwzLCJjbHJEZ1BhZ2VTaXplIl0sWyJwYWdpbmF0aW9uIiwiIl0sWzIsImN1cnNvciIsInBvaW50ZXIiLDMsImNsaWNrIl0sWyJyb2xlIiwidG9vbHRpcCIsMSwicm93IiwyLCJqdXN0aWZ5LWNvbnRlbnQiLCJzcGFjZS1hcm91bmQiXSxbMSwiY29sdW1uLWNlbnRlciIsImxpbmtzIiwi''@;'; + put 'put ''dG9vbHRpcCIsInRvb2x0aXAtbWQiLCJ0b29sdGlwLWJvdHRvbS1sZWZ0IiwyLCJjb2xvciIsIiMzZjhjYzMiLDMsImNsaWNrIl0sWyJzaGFwZSIsImNvZGUiLCJzaXplIiwiMjgiXSxbMSwidG9vbHRpcC1jb250ZW50Il0sWzIsInBhZGRpbmciLCIwcHgiLCJkaXNwbGF5IiwiZmxleCIsImp1''@;'; + put 'put ''c3RpZnktY29udGVudCIsImNlbnRlciJdLFsxLCJidG4iLCJidG4tc3VjY2VzcyIsMywiY2xpY2siXSxbInNoYXBlIiwiZG93bmxvYWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJkaXYiLDApLHJuKDEscFZlLDcsOCwiZGl2IiwxKSxybigyLGdWZSwyLDAsImRpdiIs''@;'; + put 'put ''Miksc3QoKSksMiZoJiYodXQoMSksVHQoIm5nSWYiLCF2LnN1YlJlYWR5KSx1dCgxKSxUdCgibmdJZiIsdi5zdWJSZWFkeSkpfSxkZXBlbmRlbmNpZXM6W2xjLFZvLHEzLGVkLE9mLEVzLHhzLGlaLFJMLEJMLFBMLHBTLG9aLGFaLGxaLE5MLFZMLEhMLGhTLGVaLHRaLHdsLEh3ZV0sc3R5bGVz''@;'; + put 'put ''OlsiLm5vQm9yZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCB0cmFuc3BhcmVudCFpbXBvcnRhbnR9LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tbGVmdFtfbmdjb250ZW50LSVDT01QJV0gPiAudG9vbHRpcC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSwg''@;'; + put 'put ''LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiMzMTQzNTEhaW1wb3J0YW50fS50b29sdGlwLnRvb2x0aXAtYm90dG9tLWxlZnRbX25nY29udGVudC0lQ09NUCVdID4g''@;'; + put 'put ''LnRvb2x0aXAtY29udGVudFtfbmdjb250ZW50LSVDT01QJV06YmVmb3JlLCAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtYm90dG9tLWxlZnRbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZXtib3JkZXItcmlnaHQ6LjI1cmVtIHNvbGlkICMz''@;'; + put 'put ''MTQzNTE7Ym9yZGVyLWJvdHRvbTouMjA4MzNyZW0gc29saWQgIzMxNDM1MX0iXX0pLGR9KSgpLG1WZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7fW5nT25Jbml0KCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGko''@;'; + put 'put ''e3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLWFwcHJvdmUtcm91dGUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiZDcigwLCJyb3V0ZXItb3V0bGV0Iil9LGRlcGVuZGVuY2llczpbb3ldfSksZH0p''@;'; + put 'put ''KCksVndlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt9ZG93bmxvYWRGaWxlKGgsdix5PSJ0eHQiKXtsZXQgQz1uZXcgQmxvYihbaF0se3R5cGU6InRleHQvcGxhaW4ifSk7aWYobmF2aWdhdG9yLmFwcFZlcnNpb24udG9TdHJpbmcoKS5pbmRleE9mKCIuTkVUIik+MCl3aW5kb3cubmF2''@;'; + put 'put ''aWdhdG9yLm1zU2F2ZUJsb2IoQyxgJHt2fS4ke3l9YCk7ZWxzZXtsZXQgST1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7SS5ocmVmPSJkYXRhOnRleHQvcGxhaW4sIitlbmNvZGVVUklDb21wb25lbnQoaCksSS5kb3dubG9hZD1gJHt2fS4ke3l9YCxkb2N1bWVudC5ib2R5LmFwcGVuZENo''@;'; + put 'put ''aWxkKEkpLEkuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKEkpfX1yZWFkRmlsZShoKXtyZXR1cm4gbmV3IFByb21pc2UoKHYseSk9PntsZXQgQz1uZXcgRmlsZVJlYWRlcjtDLm9ubG9hZD0oKT0+e0MucmVzdWx0JiZ2KEpTT04ucGFyc2UoQy5yZXN1bHQudG9TdHJpbmcoKSkp''@;'; + put 'put ''fSxDLnJlYWRBc1RleHQoaCl9KX1jbGVhclVwbG9hZElucHV0KGgpe2gudGFyZ2V0LnZhbHVlPSIifX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoi''@;'; + put 'put ''cm9vdCJ9KSxkfSkoKTtmdW5jdGlvbiB2VmUoZCxnKXsxJmQmJihpdCgwLCJkaXYiLDYpKDEsInAiLDcpLFV0KDIsIlBsZWFzZSBsb2cgaW4gZmlyc3QiKSxzdCgpLGl0KDMsImxhYmVsIiw4KSxVdCg0LCJVc2VybmFtZSIpLHN0KCksaXQoNSwiZGl2Iiw5KSg2LCJkaXYiLDEwKSxDcig3LCJp''@;'; + put 'put ''bnB1dCIsMTEpLHN0KCkoKSxpdCg4LCJsYWJlbCIsMTIpLFV0KDksIlBhc3N3b3JkIiksc3QoKSxpdCgxMCwiZGl2Iiw5KSgxMSwiZGl2IiwxMCksQ3IoMTIsImlucHV0IiwxMyksc3QoKSgpLGl0KDEzLCJidXR0b24iLDE0KSxVdCgxNCwiIExvZyBpbiAiKSxzdCgpKCkpfWZ1bmN0aW9uIEFW''@;'; + put 'put ''ZShkLGcpe2lmKDEmZCYmKGl0KDAsIm9wdGlvbiIsMzYpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFsdWUiLGguaWQpLHV0KDEpLEppKCIgIixoLm5hbWUsIiAiKX19ZnVuY3Rpb24geVZlKGQsZyl7aWYoMSZkJiYoaXQoMCwic3BhbiIpLFV0KDEpLHN0KCkp''@;'; + put 'put ''LDImZCl7Y29uc3QgaD1LdCgpLiRpbXBsaWNpdDt1dCgxKSxKaSgiKCAiLGguYXR0cmlidXRlcy5zeXNVc2VySWQsIiApIil9fWZ1bmN0aW9uIHdWZShkLGcpe2lmKDEmZCYmKGl0KDAsIm9wdGlvbiIsMzYpLFV0KDEpLHJuKDIseVZlLDIsMSwic3BhbiIsNSksbm4oMywianNvbiIpLHN0KCkp''@;'; + put 'put ''LDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFsdWUiLGgubmFtZSksdXQoMSksSmkoIiAiLGgubmFtZSwiICIpLHV0KDEpLFR0KCJuZ0lmIiwie30iIT16dCgzLDMsaC5hdHRyaWJ1dGVzKSl9fWZ1bmN0aW9uIGJWZShkLGcpezEmZCYmKGl0KDAsInNwYW4iKSxVdCgxLCJKU09OIFN1''@;'; + put 'put ''Ym1pdHRlZCBTdWNjZXNzZnVsbHkiKSxzdCgpKX1mdW5jdGlvbiBfVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJidXR0b24iLDM3KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoMikuZG93bmxvYWRTYXNQcmVjb2RlRmlsZSgpKX0pLENyKDEsImNs''@;'; + put 'put ''ci1pY29uIiwzOCksc3QoKX19ZnVuY3Rpb24gQ1ZlKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7RjAoMCksaXQoMSwicCIsMzkpLFV0KDIsIkZpbGUgZXhlY3V0ZSBjb21wbGV0ZWQiKSxzdCgpLENyKDMsImhyIiksaXQoNCwiZGl2IikoNSwiYnV0dG9uIiw0MCksWW4oImNsaWNrIixmdW5j''@;'; + put 'put ''dGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoMik7cmV0dXJuIGEoeS5kb3dubG9hZEZpbGUoeS5qb2JMb2csImV4ZWN1dGUtc2NyaXB0LWxvZyIsInR4dCIpKX0pLFV0KDYsIiBEb3dubG9hZCBsb2cgIiksc3QoKSgpLEgwKCl9fWZ1bmN0aW9uIGtWZShkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIs''@;'; + put 'put ''NDQpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgzKTt1dCgxKSxKaSgiICIsaC5tYWtlRGF0YVJlc3BvbnNlLCIgIil9fWZ1bmN0aW9uIFNWZShkLGcpezEmZCYmKEYwKDApLGl0KDEsInNwYW4iLDI1KSxVdCgyLCIgVmFsaWRhdGluZyBkZXBsb3kuLi4gIiksc3QoKSxpdCgzLCJzcGFu''@;'; + put 'put ''IiksVXQoNCwiIFZhbGlkYXRpbmcgZGVwbG95Li4uICIpLHN0KCksSDAoKSl9ZnVuY3Rpb24gTVZlKGQsZyl7MSZkJiYoRjAoMCksQ3IoMSwiY2xyLWljb24iLDQ2KSxpdCgyLCJzcGFuIiksVXQoMywiIFZhbGlkYXRpb24gZmFpbGVkICIpLHN0KCksSDAoKSl9ZnVuY3Rpb24gRVZlKGQsZyl7''@;'; + put 'put ''MSZkJiYoRjAoMCksQ3IoMSwiY2xyLWljb24iLDQ3KSxpdCgyLCJzcGFuIiksVXQoMywiIFZhbGlkYXRpb24gc3VjY2VlZGVkICIpLHN0KCksSDAoKSl9ZnVuY3Rpb24geFZlKGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2Iiw0NSkscm4oMSxTVmUsNSwwLCJuZy1jb250YWluZXIiLDUpLHJuKDIs''@;'; + put 'put ''TVZlLDQsMCwibmctY29udGFpbmVyIiw1KSxybigzLEVWZSw0LDAsIm5nLWNvbnRhaW5lciIsNSksc3QoKSksMiZkKXtjb25zdCBoPUt0KDMpO3V0KDEpLFR0KCJuZ0lmIixoLmlzVmFsaWRhdGluZyksdXQoMSksVHQoIm5nSWYiLCFoLmlzVmFsaWRhdGluZyYmImVycm9yIj09PWgudmFsaWRh''@;'; + put 'put ''dGlvblN0YXRlKSx1dCgxKSxUdCgibmdJZiIsIWguaXNWYWxpZGF0aW5nJiYic3VjY2VzcyI9PT1oLnZhbGlkYXRpb25TdGF0ZSl9fWZ1bmN0aW9uIFRWZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO0YwKDApLGl0KDEsInAiLDM5KSxVdCgyLCIgQ3JlYXRlIERhdGFiYXNlIENvbXBsZXRl''@;'; + put 'put ''ZCAiKSxzdCgpLENyKDMsImhyIikscm4oNCxrVmUsMiwxLCJkaXYiLDQxKSxpdCg1LCJidXR0b24iLDQyKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoMikubmF2aWdhdGVUb0hvbWUoKSl9KSxVdCg2LCIgTGV0J3MgZ2V0IHN0YXJ0ZWQgIiksc3QoKSxpdCg3LCJi''@;'; + put 'put ''dXR0b24iLDQyKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT1LdCgyKTtyZXR1cm4gYSh5LmRvd25sb2FkRmlsZSh5Lm1ha2VEYXRhUmVzcG9uc2UsImNyZWF0ZS1kYXRhYmFzZS1sb2ciLCJ0eHQiKSl9KSxVdCg4LCIgRG93bmxvYWQgbG9nICIpLHN0KCksaXQoOSwiYnV0''@;'; + put 'put ''dG9uIiw0MiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDIpLnZhbGlkYXRlRGVwbG95KCkpfSksVXQoMTAsIiBWYWxpZGF0ZSAiKSxzdCgpLHJuKDExLHhWZSw0LDMsImRpdiIsNDMpLEgwKCl9aWYoMiZkKXtjb25zdCBoPUt0KDIpO3V0KDQpLFR0KCJuZ0lmIixo''@;'; + put 'put ''Lm1ha2VEYXRhUmVzcG9uc2UubGVuZ3RoPjApLHV0KDcpLFR0KCJuZ0lmIiwibm9uZSIhPT1oLnZhbGlkYXRpb25TdGF0ZXx8aC5pc1ZhbGlkYXRpbmcpfX1jb25zdCBQaGU9ZnVuY3Rpb24oKXtyZXR1cm57c3RhbmRhbG9uZTohMH19O2Z1bmN0aW9uIElWZShkLGcpe2lmKDEmZCl7Y29uc3Qg''@;'; + put 'put ''aD1faSgpO0YwKDApLGl0KDEsImZvcm0iKSgyLCJkaXYiLDE1KSgzLCJsYWJlbCIsMTYpLFV0KDQsIkFkbWluIGdyb3VwIiksc3QoKSxpdCg1LCJkaXYiLDE3KSg2LCJkaXYiLDE4KSg3LCJzZWxlY3QiLDE5KSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEo''@;'; + put 'put ''S3QoKS5zZWxlY3RlZEFkbWluR3JvdXA9eSl9KSxybig4LEFWZSwyLDIsIm9wdGlvbiIsMjApLHN0KCkoKSgpKCksaXQoOSwiZGl2IiwxNSkoMTAsImRpdiIpKDExLCJsYWJlbCIsMTYpLFV0KDEyLCJDb250ZXh0Iiksc3QoKSxpdCgxMywiZGl2IiwxNykoMTQsImRpdiIsMTgpKDE1LCJzZWxl''@;'; + put 'put ''Y3QiLDIxKSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5zZWxlY3RlZENvbnRleHQ9eSl9KSxybigxNix3VmUsNCw1LCJvcHRpb24iLDIwKSxzdCgpKCkoKSxpdCgxNywiYnV0dG9uIiwyMiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBy''@;'; + put 'put ''dChoKSxhKEt0KCkuZXhlY3V0YWJsZUNvbnRleHQoKSl9KSxDcigxOCwiY2xyLWljb24iLDIzKSxzdCgpKCksaXQoMTksImRpdiIsMjQpKDIwLCJzcGFuIiwyNSksVXQoMjEsIiBMb2FkaW5nIGNvbnRleHRzLi4uICIpLHN0KCksaXQoMjIsInNwYW4iKSxVdCgyMywiIExvYWRpbmcgY29udGV4''@;'; + put 'put ''dHMuLi4gIiksc3QoKSgpLGl0KDI0LCJsYWJlbCIsMjYpLFV0KDI1LCJEQyBMb2MiKSxzdCgpLGl0KDI2LCJkaXYiLDkpKDI3LCJkaXYiLDEwKSgyOCwiaW5wdXQiLDI3KSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5kY1BhdGg9eSl9KSgiZm9j''@;'; + put 'put ''dXNvdXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5zYXZlRGNQYXRoKCkpfSksc3QoKSgpKCksaXQoMjksInAiLDI4KSxVdCgzMCwiIFNlbGVjdCBKU09OIGZpbGUgdG8gdXBsb2FkIChqc29uIGJ1aWxkIGZpbGUgcHJlbG9hZGVkKTogIiksc3QoKSxpdCgzMSwiZGl2IiwyOSko''@;'; + put 'put ''MzIsImlucHV0IiwzMCksWW4oImNsaWNrIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLmNsZWFyVXBsb2FkSW5wdXQoeSkpfSkoImNoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5vbkpzb25GaWxlQ2hhbmdlKHkpKX0pLHN0KCkoKSxpdCgzMywiZGl2Iiwz''@;'; + put 'put ''MSkoMzQsImJ1dHRvbiIsMzIpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLmV4ZWN1dGVKc29uKCkpfSksVXQoMzUsIiBTVUJNSVQgSlNPTiAiKSxzdCgpLHJuKDM2LGJWZSwyLDAsInNwYW4iLDUpLHN0KCksaXQoMzcsInAiLDI4KSxVdCgzOCwiU2VsZWN0IFNB''@;'; + put 'put ''UyBmaWxlIHRvIHVwbG9hZDoiKSxzdCgpLGl0KDM5LCJkaXYiLDI5KSg0MCwiaW5wdXQiLDMwKSxZbigiY2xpY2siLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KCkuY2xlYXJVcGxvYWRJbnB1dCh5KSl9KSgiY2hhbmdlIixmdW5jdGlvbih5KXtydChoKTtjb25zdCBDPUt0KCk7cmV0''@;'; + put 'put ''dXJuIEMub25TYXNGaWxlQ2hhbmdlKHkpLGEoQy5kb3dubG9hZEZpbGVCdG49ITApfSksc3QoKSxybig0MSxfVmUsMiwwLCJidXR0b24iLDMzKSxzdCgpLGl0KDQyLCJkaXYiLDMxKSg0MywiYnV0dG9uIiwzNCksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkuZXhl''@;'; + put 'put ''Y3V0ZVNBUygpKX0pLFV0KDQ0LCIgU1VCTUlUICIpLHN0KCkoKSgpLHJuKDQ1LENWZSw3LDAsIm5nLWNvbnRhaW5lciIsNSksaXQoNDYsImJ1dHRvbiIsMzUpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLmNyZWF0ZURhdGFiYXNlKCkpfSksVXQoNDcsIiBDcmVh''@;'; + put 'put ''dGUgRGF0YWJhc2UgIiksc3QoKSxybig0OCxUVmUsMTIsMiwibmctY29udGFpbmVyIiw1KSxzdCgpLEgwKCl9aWYoMiZkKXtjb25zdCBoPUt0KCk7dXQoNyksVHQoIm5nTW9kZWwiLGguc2VsZWN0ZWRBZG1pbkdyb3VwKSgibmdNb2RlbE9wdGlvbnMiLE5zKDE5LFBoZSkpLHV0KDEpLFR0KCJu''@;'; + put 'put ''Z0Zvck9mIixoLmFkbWluR3JvdXBzKSx1dCgyKSxGaSgiaGlkZGVuIixoLmNvbnRleHRzTG9hZGluZyksdXQoNSksVHQoIm5nTW9kZWwiLGguc2VsZWN0ZWRDb250ZXh0KSgibmdNb2RlbE9wdGlvbnMiLE5zKDIwLFBoZSkpLHV0KDEpLFR0KCJuZ0Zvck9mIixoLmFsbENvbnRleHRzKSx1dCgz''@;'; + put 'put ''KSxGaSgiaGlkZGVuIiwhaC5jb250ZXh0c0xvYWRpbmcpLHV0KDkpLFR0KCJuZ01vZGVsIixoLmRjUGF0aCkoIm5nTW9kZWxPcHRpb25zIixOcygyMSxQaGUpKSx1dCg2KSxUdCgiY2xyTG9hZGluZyIsaC5pc1N1Ym1pdHRpbmdKc29uKSx1dCgyKSxUdCgibmdJZiIsaC5pc0pzb25TdWJtaXR0''@;'; + put 'put ''ZWQpLHV0KDUpLFR0KCJuZ0lmIixoLmRvd25sb2FkRmlsZUJ0biksdXQoMiksVHQoImNsckxvYWRpbmciLGguZXhlY3V0aW5nU2NyaXB0KSx1dCgyKSxUdCgibmdJZiIsaC5qb2JMb2cubGVuZ3RoPjApLHV0KDEpLFR0KCJjbHJMb2FkaW5nIixoLmNyZWF0ZURhdGFiYXNlTG9hZGluZyksdXQo''@;'; + put 'put ''MiksVHQoIm5nSWYiLGgubWFrZURhdGFSZXNwb25zZS5sZW5ndGg+MCl9fWxldCBEVmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMubG9nZ2VyU2VydmljZT15LHRoaXMuZGVwbG95U2VydmljZT1D''@;'; + put 'put ''LHRoaXMuc2FzSnNDb25maWc9bmV3IFEzLlNBU2pzQ29uZmlnLHRoaXMub25OYXZpZ2F0ZVRvSG9tZT1uZXcgYXIsdGhpcy5uZWVkc0xvZ2luPSExLHRoaXMuYWRtaW5Hcm91cHM9W10sdGhpcy5hbGxDb250ZXh0cz1bXSx0aGlzLmFwcExvYz0iIix0aGlzLmRjUGF0aD0iIix0aGlzLnNlbGVj''@;'; + put 'put ''dGVkQWRtaW5Hcm91cD0iIix0aGlzLnNlbGVjdGVkQ29udGV4dD0iIix0aGlzLmpvYkxvZz0iIix0aGlzLm1ha2VEYXRhUmVzcG9uc2U9IiIsdGhpcy5saW5lc09mQ29kZT1bXSx0aGlzLmZpbGVOYW1lPSIiLHRoaXMucHJlbG9hZGVkRmlsZT0hMCx0aGlzLmV4ZWN1dGVTQVNFbmFibGVkPSEx''@;'; + put 'put ''LHRoaXMuY29udGV4dHNMb2FkaW5nPSExLHRoaXMuY3JlYXRlRGF0YWJhc2VMb2FkaW5nPSExLHRoaXMuZXhlY3V0aW5nU2NyaXB0PSExLHRoaXMuZG93bmxvYWRGaWxlQnRuPSExLHRoaXMuaXNWYWxpZGF0aW5nPSExLHRoaXMuanNvbkZpbGU9bnVsbCx0aGlzLmlzU3VibWl0dGluZ0pzb249''@;'; + put 'put ''ITEsdGhpcy5pc0pzb25TdWJtaXR0ZWQ9ITEsdGhpcy52YWxpZGF0aW9uU3RhdGU9Im5vbmUifW5nT25Jbml0KCl7fWV4ZWN1dGFibGVDb250ZXh0KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt9KX1jbGVhclVwbG9hZElucHV0KGgpe3RoaXMuZGVwbG95U2Vy''@;'; + put 'put ''dmljZS5jbGVhclVwbG9hZElucHV0KGgpfW9uU2FzRmlsZUNoYW5nZShoKXt0aGlzLnByZWxvYWRlZEZpbGU9ITE7bGV0IHY9aC50YXJnZXQuZmlsZXNbMF07dGhpcy5maWxlTmFtZT12Lm5hbWU7bGV0IHk9bmV3IEZpbGVSZWFkZXI7eS5vbmxvYWQ9KCk9Pnt5LnJlc3VsdCYmKHRoaXMubGlu''@;'; + put 'put ''ZXNPZkNvZGU9eS5yZXN1bHQuc3BsaXQoIlxuIiksdGhpcy5saW5lc09mQ29kZT10aGlzLmxpbmVzT2ZDb2RlLmZpbHRlcihDPT4iIiE9PUMmJm51bGwhPT1DKSx0aGlzLmV4ZWN1dGVTQVNFbmFibGVkPSEwLHRoaXMuYWRkUHJlY29kZUxpbmVzKCkpfSx5LnJlYWRBc1RleHQodil9b25Kc29u''@;'; + put 'put ''RmlsZUNoYW5nZShoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCB2PWgudGFyZ2V0LmZpbGVzWzBdO3RoaXMuanNvbkZpbGU9eWllbGQgdGhpcy5kZXBsb3lTZXJ2aWNlLnJlYWRGaWxlKHYpfSl9YWRkUHJlY29kZUxpbmVzKCl7dGhpcy5saW5lc09mQ29k''@;'; + put 'put ''ZS51bnNoaWZ0KGAlbGV0IGNvbnRleHQ9JHt0aGlzLnNlbGVjdGVkQ29udGV4dH07YCxgJWxldCBhcHBMb2M9JHt0aGlzLmFwcExvY307YCxgJWxldCBhZG1pbj0ke3RoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwfTtgLGAlbGV0IGRjcGF0aD0ke3RoaXMuZGNQYXRofTtgKX1kb3dubG9hZFNhc1By''@;'; + put 'put ''ZWNvZGVGaWxlKCl7bGV0IGg9dGhpcy5saW5lc09mQ29kZS5qb2luKCJcbiIpLHY9dGhpcy5maWxlTmFtZS5zcGxpdCgiLiIpWzBdO3RoaXMuZG93bmxvYWRGaWxlKGgsdiwic2FzIil9ZG93bmxvYWRGaWxlKGgsdix5PSJ0eHQiKXt0aGlzLmRlcGxveVNlcnZpY2UuZG93bmxvYWRGaWxlKGgs''@;'; + put 'put ''dix5KX1zYXZlRGNQYXRoKCl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oImRlcGxveV9kY19sb2MiLHRoaXMuZGNQYXRoKX1leGVjdXRlSnNvbigpe3ZhciBoO3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5pc1N1Ym1pdHRpbmdKc29uPSEwO3RyeXt5aWVsZCB0''@;'; + put 'put ''aGlzLnNhc0pzLmRlcGxveVNlcnZpY2VQYWNrKHRoaXMuanNvbkZpbGUsKG51bGw9PT0oaD10aGlzLmRjQWRhcHRlclNldHRpbmdzKXx8dm9pZCAwPT09aD92b2lkIDA6aC5hcHBMb2MpfHwiIix2b2lkIDAsdm9pZCAwLCEwKSx0aGlzLmlzSnNvblN1Ym1pdHRlZD0hMH1jYXRjaCh2KXtsZXQg''@;'; + put 'put ''eT0iIjtyZXR1cm4geT0ic3RyaW5nIiE9dHlwZW9mIHYubWVzc2FnZT9KU09OLnN0cmluZ2lmeSh2KS5yZXBsYWNlKC9cXC9nbSwiIik6di5tZXNzYWdlLHZvaWQgdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiRGVwbG95IGVycm9yIixgRXhjZXB0aW9uOiBcbiAkeyIiIT09eT95''@;'; + put 'put ''OnZ9YCl9dGhpcy5pc1N1Ym1pdHRpbmdKc29uPSExfSl9ZXhlY3V0ZVNBUygpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5leGVjdXRpbmdTY3JpcHQ9ITAsdGhpcy5qb2JMb2c9IiIsdGhpcy5tYWtlRGF0YVJlc3BvbnNlPSIiO3RyeXtsZXQgaD15aWVs''@;'; + put 'put ''ZCB0aGlzLnNhc0pzLmV4ZWN1dGVTY3JpcHRTQVNWaXlhKHRoaXMuZmlsZU5hbWUsdGhpcy5saW5lc09mQ29kZSx0aGlzLnNlbGVjdGVkQ29udGV4dCk7dGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyhoKSwic3RyaW5nIj09dHlwZW9mIGgubG9nJiYoaC5sb2c9SlNPTi5wYXJzZShoLmxvZykpLCJl''@;'; + put 'put ''cnJvciI9PT1oLmpvYlN0YXR1cz9hbGVydCgiRXJyb3IhIik6dGhpcy5qb2JMb2c9aC5sb2cuaXRlbXM/aC5sb2cuaXRlbXMubWFwKHY9PnYubGluZSkuam9pbigiXG4iKTpKU09OLnN0cmluZ2lmeShoLmxvZyksdGhpcy5leGVjdXRpbmdTY3JpcHQ9ITF9Y2F0Y2goaCl7dGhpcy5leGVjdXRp''@;'; + put 'put ''bmdTY3JpcHQ9ITF9fSl9Y3JlYXRlRGF0YWJhc2UoaD0hMCl7dmFyIHY7aWYoaCl7bGV0IEk9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCkuc2VydmVyVXJsKyIvU0FTSm9iRXhlY3V0aW9uLz9fcHJvZ3JhbT0iKyhudWxsPT09KHY9dGhpcy5kY0FkYXB0ZXJTZXR0aW5ncyl8fHZv''@;'; + put 'put ''aWQgMD09PXY/dm9pZCAwOnYuYXBwTG9jKXx8Ii9hZG1pbi9tYWtlZGF0YSZBRE1JTj0iK3RoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwKyImRENQQVRIPSIrdGhpcy5kY1BhdGgrIiZfZGVidWc9MTMxIjt3aW5kb3cub3BlbihJLCJfYmxhbmsiKX1lbHNlIHRoaXMuY3JlYXRlRGF0YWJhc2VMb2Fk''@;'; + put 'put ''aW5nPSEwLHRoaXMuc2FzSnMucmVxdWVzdCgic2VydmljZXMvYWRtaW4vbWFrZWRhdGEiLHtmcm9tanM6W3tBRE1JTjp0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cCxEQ1BBVEg6dGhpcy5kY1BhdGh9XX0se3VzZUNvbXB1dGVBcGk6ITEsY29udGV4dE5hbWU6dGhpcy5zYXNKc0NvbmZpZy5jb250''@;'; + put 'put ''ZXh0TmFtZSxkZWJ1ZzohMH0sKCk9Pnt0aGlzLnNhc1NlcnZpY2Uuc2hvdWxkTG9naW4ubmV4dCghMCl9KS50aGVuKEk9Pnt0cnl7dGhpcy5tYWtlRGF0YVJlc3BvbnNlPUpTT04uc3RyaW5naWZ5KEkpfWNhdGNoKGope3RoaXMubWFrZURhdGFSZXNwb25zZT1JfXRoaXMuY3JlYXRlRGF0YWJh''@;'; + put 'put ''c2VMb2FkaW5nPSExfSkuY2F0Y2goST0+e3RoaXMuY3JlYXRlRGF0YWJhc2VMb2FkaW5nPSExO3RyeXt0aGlzLm1ha2VEYXRhUmVzcG9uc2U9SlNPTi5zdHJpbmdpZnkoSSl9Y2F0Y2goail7dGhpcy5tYWtlRGF0YVJlc3BvbnNlPUl9fSl9bmF2aWdhdGVUb0hvbWUoKXt0aGlzLm9uTmF2aWdh''@;'; + put 'put ''dGVUb0hvbWUuZW1pdCgpfXZhbGlkYXRlRGVwbG95KCl7dGhpcy5pc1ZhbGlkYXRpbmc9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy9zdGFydHVwc2VydmljZSIsbnVsbCkudGhlbihoPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyhoKSx0aGlzLnZhbGlkYXRpb25TdGF0ZT1o''@;'; + put 'put ''LnNhc2xpYnM/InN1Y2Nlc3MiOiJlcnJvciIsdGhpcy5pc1ZhbGlkYXRpbmc9ITF9KS5jYXRjaChoPT57dGhpcy5pc1ZhbGlkYXRpbmc9ITEsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImVycm9yIn0pfWRlbGV0ZUtleXMoKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZGVwbG95X2RjX2xvYyIp''@;'; + put 'put ''fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChnMiksWHQobXUpLFh0KHNjKSxYdChWd2UpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLW1hbnVhbC1kZXBsb3kiXV0saW5wdXRzOntzYXNKczoic2FzSnMiLHNhc0pz''@;'; + put 'put ''Q29uZmlnOiJzYXNKc0NvbmZpZyIsZGNBZGFwdGVyU2V0dGluZ3M6ImRjQWRhcHRlclNldHRpbmdzIn0sb3V0cHV0czp7b25OYXZpZ2F0ZVRvSG9tZToib25OYXZpZ2F0ZVRvSG9tZSJ9LGRlY2xzOjksdmFyczozLGNvbnN0czpbWzEsImNhcmQtaGVhZGVyIiwyLCJwb3NpdGlvbiIsInJlbGF0''@;'; + put 'put ''aXZlIl0sWzIsImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siLCJtYXJnaW4tbGVmdCIsIjEwcHgiLCJtYXJnaW4tYm90dG9tIiwiMTBweCIsIm1hcmdpbi10b3AiLCIwIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwyLCJwb3NpdGlvbiIsImFic29sdXRlIiwicmlnaHQiLCIxMHB4IiwidG9wIiwi''@;'; + put 'put ''MnB4IiwzLCJjbGljayJdLFsxLCJjYXJkLWJsb2NrIl0sWyJpZCIsImxvZ2luRm9ybSIsInN0eWxlIiwiZGlzcGxheTogbm9uZSIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWyJpZCIsImxvZ2luRm9ybSIsMiwiZGlzcGxheSIsIm5vbmUiXSxbMiwibWFyZ2luLWJvdHRvbSIsIjEwcHgiXSxbImZv''@;'; + put 'put ''ciIsInVzZXJuYW1lIiwxLCJjbHItY29udHJvbC1sYWJlbCJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiLDIsIm1hcmdpbi1ib3R0b20iLCIxMHB4Il0sWzEsImNsci1pbnB1dC13cmFwcGVyIl0sWyJ0eXBlIiwidGV4dCIsImlkIiwidXNlcm5hbWUiLDEsImNsci1pbnB1dCJdLFsiZm9y''@;'; + put 'put ''IiwicGFzc3dvcmQiLDEsImNsci1jb250cm9sLWxhYmVsIl0sWyJ0eXBlIiwicGFzc3dvcmQiLCJpZCIsInBhc3N3b3JkIiwxLCJjbHItaW5wdXQiXSxbImlkIiwibG9naW5CdG4iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwyLCJkaXNwbGF5IiwiYmxvY2siXSxbMSwiY2xyLWZvcm0tY29udHJv''@;'; + put 'put ''bCJdLFsiZm9yIiwic2VsZWN0LWZ1bGwiLDEsImNsci1jb250cm9sLWxhYmVsIl0sWzEsImNsci1jb250cm9sLWNvbnRhaW5lciJdLFsxLCJjbHItc2VsZWN0LXdyYXBwZXIiXSxbIm5hbWUiLCJzZWxlY3RlZEFkbWluR3JvdXAiLCJpZCIsImFkbWluR3JvdXBzU2VsZWN0IiwxLCJjbHItc2Vs''@;'; + put 'put ''ZWN0IiwzLCJuZ01vZGVsIiwibmdNb2RlbE9wdGlvbnMiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsInZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbIm5hbWUiLCJzZWxlY3RlZENvbnRleHQiLDEsImNsci1zZWxlY3QiLDMsIm5nTW9kZWwiLCJuZ01vZGVsT3B0aW9ucyIsIm5nTW9kZWxDaGFu''@;'; + put 'put ''Z2UiXSxbInR5cGUiLCJidXR0b24iLCJpZCIsImNvbnRleHRzLWJ0biIsMSwiYnRuIiwiYnRuLWljb24iLDMsImNsaWNrIl0sWyJzaGFwZSIsInBsYXkiXSxbMiwiZGlzcGxheSIsImZsZXgiXSxbMSwic3Bpbm5lciIsInNwaW5uZXItaW5saW5lIiwyLCJtYXJnaW4tcmlnaHQiLCIxMHB4Il0s''@;'; + put 'put ''WyJmb3IiLCJkY2xvYyIsMSwiY2xyLWNvbnRyb2wtbGFiZWwiLDIsIm1hcmdpbi10b3AiLCIyMHB4Il0sWyJuYW1lIiwiZGNQYXRoIiwidHlwZSIsInRleHQiLCJpZCIsImRjbG9jIiwxLCJjbHItaW5wdXQiLDMsIm5nTW9kZWwiLCJuZ01vZGVsT3B0aW9ucyIsIm5nTW9kZWxDaGFuZ2UiLCJm''@;'; + put 'put ''b2N1c291dCJdLFsxLCJtdC0xMCJdLFsyLCJkaXNwbGF5IiwiZmxleCIsImZsZXgtZGlyZWN0aW9uIiwiY29sdW1uIl0sWyJ0eXBlIiwiZmlsZSIsMywiY2xpY2siLCJjaGFuZ2UiXSxbMiwibWFyZ2luLXRvcCIsIjIwcHgiLCJkaXNwbGF5IiwiZmxleCIsImFsaWduLWl0ZW1zIiwiY2VudGVy''@;'; + put 'put ''Il0sWyJpZCIsIiIsMSwiYnRuIiwiYnRuLXByaW1hcnkiLDIsIm1hcmdpbi10b3AiLCIwIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbInN0eWxlIiwid2lkdGg6IDQwcHg7IG1pbi13aWR0aDogMCIsImNsYXNzIiwiYnRuIGJ0bi1zbSBidG4taWNvbiIsMywiY2xpY2siLDQsIm5nSWYiXSxb''@;'; + put 'put ''ImlkIiwiZGVwbG95IiwxLCJidG4iLCJidG4tcHJpbWFyeSIsMiwibWFyZ2luLXRvcCIsIjAiLDMsImNsckxvYWRpbmciLCJjbGljayJdLFsxLCJidG4iLCJidG4tcHJpbWFyeSIsIm10LTEwIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbMywidmFsdWUiXSxbMSwiYnRuIiwiYnRuLXNtIiwi''@;'; + put 'put ''YnRuLWljb24iLDIsIndpZHRoIiwiNDBweCIsIm1pbi13aWR0aCIsIjAiLDMsImNsaWNrIl0sWyJzaGFwZSIsImRvd25sb2FkIl0sWzIsIm1hcmdpbi1ib3R0b20iLCIwIiwibWFyZ2luLXRvcCIsIjEwcHgiXSxbMSwiYnRuIiwiYnRuLXByaW1hcnkiLDIsIm1hcmdpbi10b3AiLCIwIiwibWFy''@;'; + put 'put ''Z2luLXJpZ2h0IiwiMjBweCIsMywiY2xpY2siXSxbImNsYXNzIiwibG9nLXdyYXBwZXIiLDQsIm5nSWYiXSxbMSwiYnRuIiwiYnRuLXByaW1hcnkiLDIsIm1hcmdpbi10b3AiLCIxNXB4IiwzLCJjbGljayJdLFsiY2xhc3MiLCJ2YWxpZGF0aW9uLWJhciIsNCwibmdJZiJdLFsxLCJsb2ctd3Jh''@;'; + put 'put ''cHBlciJdLFsxLCJ2YWxpZGF0aW9uLWJhciJdLFsic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLDEsImlzLWVycm9yIl0sWyJzaGFwZSIsImNoZWNrLWNpcmNsZSIsMSwiaXMtc3VjY2VzcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKGl0KDAsImRpdiIsMCksVXQoMSwiIENv''@;'; + put 'put ''bmZpZ3VyYXRvciAiKSxpdCgyLCJwIiwxKSxVdCgzKSxzdCgpLGl0KDQsImJ1dHRvbiIsMiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmRlbGV0ZUtleXMoKX0pLFV0KDUsIiBDbGVhciBtZW1vcnkgIiksc3QoKSgpLGl0KDYsImRpdiIsMykscm4oNyx2VmUsMTUsMCwiZGl2Iiw0''@;'; + put 'put ''KSxybig4LElWZSw0OSwyMiwibmctY29udGFpbmVyIiw1KSxzdCgpKSwyJmgmJih1dCgzKSxKaSgiIEFwcCBMb2NhdGlvbjogIix2LmFwcExvYywiICIpLHV0KDQpLFR0KCJuZ0lmIix2Lm5lZWRzTG9naW4pLHV0KDEpLFR0KCJuZ0lmIiwhdi5uZWVkc0xvZ2luKSl9LGRlcGVuZGVuY2llczpb''@;'; + put 'put ''WnMsVm8scGcscTMsZWQsbTEsT2YsRXMsZGcseHMsTGMsd2wsZ28sdyxvdCx4V119KSxkfSkoKTtmdW5jdGlvbiBMVmUoZCxnKXsxJmQmJihGMCgwKSxpdCgxLCJzcGFuIiwyMSksVXQoMiwiIExvYWRpbmcuLi4gIiksc3QoKSxpdCgzLCJwIiksVXQoNCwiRGVwbG95aW5nLi4uIiksc3QoKSxI''@;'; + put 'put ''MCgpKX1mdW5jdGlvbiBPVmUoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwzMil9ZnVuY3Rpb24gUlZlKGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMzMpfWZ1bmN0aW9uIEJWZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDMyKX1mdW5jdGlvbiBQVmUoZCxnKXsxJmQmJkNyKDAsImNs''@;'; + put 'put ''ci1pY29uIiwzMyl9ZnVuY3Rpb24gRlZlKGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2IiwyNCkscm4oMSxCVmUsMSwwLCJjbHItaWNvbiIsMjUpLHJuKDIsUFZlLDEsMCwiY2xyLWljb24iLDI2KSxpdCgzLCJwIiksVXQoNCwiQ3JlYXRlIGRhdGFiYXNlIiksc3QoKSgpKSwyJmQpe2NvbnN0IGg9''@;'; + put 'put ''S3QoMyk7dXQoMSksVHQoIm5nSWYiLGguYXV0b0RlcGxveVN0YXR1cy5ydW5NYWtlRGF0YSksdXQoMSksVHQoIm5nSWYiLCExPT09aC5hdXRvRGVwbG95U3RhdHVzLnJ1bk1ha2VEYXRhKX19ZnVuY3Rpb24gSFZlKGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMzMpfWZ1bmN0aW9uIE5WZShk''@;'; + put 'put ''LGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO0YwKDApLGl0KDEsInAiLDIyKSxVdCgyLCJEb25lIiksc3QoKSxDcigzLCJociIsMjMpLGl0KDQsImRpdiIsMjQpLHJuKDUsT1ZlLDEsMCwiY2xyLWljb24iLDI1KSxybig2LFJWZSwxLDAsImNsci1pY29uIiwyNiksaXQoNywicCIpLFV0KDgsIkRl''@;'; + put 'put ''cGxveSBTQVMgSm9icyIpLHN0KCkoKSxybig5LEZWZSw1LDIsImRpdiIsMjcpLENyKDEwLCJociIsMjMpLGl0KDExLCJkaXYiLDI4KSgxMiwiYnV0dG9uIiwyOSksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDIpLm5hdmlnYXRlVG9Ib21lKCkpfSkscm4oMTMsSFZl''@;'; + put 'put ''LDEsMCwiY2xyLWljb24iLDI2KSxVdCgxNCwiIExBVU5DSCAvIENPTkZJR1VSRSAiKSxzdCgpLGl0KDE1LCJidXR0b24iLDMwKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT1LdCgyKTtyZXR1cm4gYSh5LmRvd25sb2FkRmlsZSh5Lm1ha2VEYXRhUmVzcG9uc2UsImNyZWF0''@;'; + put 'put ''ZS1kYXRhYmFzZS1sb2ciLCJ0eHQiKSl9KSxVdCgxNiwiIERvd25sb2FkIGxvZyAiKSxzdCgpKCksQ3IoMTcsImhyIiwyMyksaXQoMTgsImRpdiIsMjgpKDE5LCJidXR0b24iLDMxKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT1LdCgyKTtyZXR1cm4geS5hdXRvZGVwbG95''@;'; + put 'put ''aW5nPSExLGEoeS5hdXRvZGVwbG95RG9uZT0hMSl9KSxVdCgyMCwiIENsb3NlICIpLHN0KCksaXQoMjEsImJ1dHRvbiIsMzEpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgyKS5vcGVuU2FzUmVxdWVzdHNNb2RhbCgpKX0pLFV0KDIyLCIgU0FTIFJlcXVlc3RzICIp''@;'; + put 'put ''LHN0KCkoKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1LdCgyKTt1dCg1KSxUdCgibmdJZiIsaC5hdXRvRGVwbG95U3RhdHVzLmRlcGxveVNlcnZpY2VQYWNrKSx1dCgxKSxUdCgibmdJZiIsIWguYXV0b0RlcGxveVN0YXR1cy5kZXBsb3lTZXJ2aWNlUGFjayksdXQoMyksVHQoIm5nSWYiLG51bGwh''@;'; + put 'put ''PT1oLmF1dG9EZXBsb3lTdGF0dXMucnVuTWFrZURhdGEpLHV0KDQpLFR0KCJuZ0lmIiwhMT09PWguYXV0b0RlcGxveVN0YXR1cy5kZXBsb3lTZXJ2aWNlUGFja3x8ITE9PT1oLmF1dG9EZXBsb3lTdGF0dXMucnVuTWFrZURhdGEpfX1mdW5jdGlvbiBWVmUoZCxnKXtpZigxJmQmJihpdCgwLCJk''@;'; + put 'put ''aXYiLDE4KSgxLCJkaXYiLDE5KSxybigyLExWZSw1LDAsIm5nLWNvbnRhaW5lciIsMjApLHJuKDMsTlZlLDIzLDQsIm5nLWNvbnRhaW5lciIsMjApLHN0KCkoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMiksVHQoIm5nSWYiLCFoLmF1dG9kZXBsb3lEb25lKSx1dCgxKSxUdCgibmdJZiIsaC5h''@;'; + put 'put ''dXRvZGVwbG95RG9uZSl9fWxldCBqVmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLmV2ZW50U2VydmljZT1oLHRoaXMuZGVwbG95U2VydmljZT12LHRoaXMuc2FzU2VydmljZT15LHRoaXMubG9nZ2VyU2VydmljZT1DLHRoaXMuc2FzSnNDb25maWc9bmV3IFEzLlNB''@;'; + put 'put ''U2pzQ29uZmlnLHRoaXMuYXBwTG9jPSIiLHRoaXMuZGNQYXRoPSIiLHRoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwPSIiLHRoaXMub25OYXZpZ2F0ZVRvSG9tZT1uZXcgYXIsdGhpcy5tYWtlRGF0YVJlc3BvbnNlPSIiLHRoaXMuanNvbkZpbGU9bnVsbCx0aGlzLmF1dG9kZXBsb3lpbmc9ITEsdGhp''@;'; + put 'put ''cy5hdXRvZGVwbG95RG9uZT0hMSx0aGlzLnJlY3JlYXRlRGF0YWJhc2VNb2RhbD0hMSx0aGlzLmlzU3VibWl0dGluZ0pzb249ITEsdGhpcy5pc0pzb25TdWJtaXR0ZWQ9ITEsdGhpcy5yZWNyZWF0ZURhdGFiYXNlPSExLHRoaXMuY3JlYXRlRGF0YWJhc2VMb2FkaW5nPSExLHRoaXMuYXV0b0Rl''@;'; + put 'put ''cGxveVN0YXR1cz17ZGVwbG95U2VydmljZVBhY2s6bnVsbCxydW5NYWtlRGF0YTpudWxsfX1uZ09uSW5pdCgpe31leGVjdXRlSnNvbigpe3ZhciBoO3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5hdXRvZGVwbG95aW5nPSEwLHRoaXMuaXNTdWJtaXR0aW5n''@;'; + put 'put ''SnNvbj0hMDt0cnl7eWllbGQgdGhpcy5zYXNKcy5kZXBsb3lTZXJ2aWNlUGFjayh0aGlzLmpzb25GaWxlLG51bGw9PT0oaD10aGlzLmRjQWRhcHRlclNldHRpbmdzKXx8dm9pZCAwPT09aD92b2lkIDA6aC5hcHBMb2Msdm9pZCAwLHZvaWQgMCwhMCksdGhpcy5hdXRvRGVwbG95U3RhdHVzLmRl''@;'; + put 'put ''cGxveVNlcnZpY2VQYWNrPSEwLHRoaXMuaXNKc29uU3VibWl0dGVkPSEwfWNhdGNoKHYpe2xldCB5PSIiO3JldHVybiB5PSJzdHJpbmciIT10eXBlb2Ygdi5tZXNzYWdlP0pTT04uc3RyaW5naWZ5KHYpLnJlcGxhY2UoL1xcL2dtLCIiKTp2Lm1lc3NhZ2UsdGhpcy5hdXRvRGVwbG95U3RhdHVz''@;'; + put 'put ''LmRlcGxveVNlcnZpY2VQYWNrPSExLHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIkRlcGxveSBlcnJvciIsYEV4Y2VwdGlvbjogXG4gJHsiIiE9PXk/eTp2fWApLHRoaXMuYXV0b2RlcGxveWluZz0hMSx2b2lkKHRoaXMuYXV0b2RlcGxveURvbmU9ITEpfXRoaXMuaXNTdWJtaXR0''@;'; + put 'put ''aW5nSnNvbj0hMSx0aGlzLnJlY3JlYXRlRGF0YWJhc2U/dGhpcy5jcmVhdGVEYXRhYmFzZSgpOnRoaXMuYXV0b2RlcGxveURvbmU9ITB9KX1jcmVhdGVEYXRhYmFzZSgpe3RoaXMuc2FzSnMucmVxdWVzdCgic2VydmljZXMvYWRtaW4vbWFrZWRhdGEiLHtmcm9tanM6W3tBRE1JTjp0aGlzLnNl''@;'; + put 'put ''bGVjdGVkQWRtaW5Hcm91cCxEQ1BBVEg6dGhpcy5kY1BhdGh9XX0se3VzZUNvbXB1dGVBcGk6ITEsY29udGV4dE5hbWU6dGhpcy5zYXNKc0NvbmZpZy5jb250ZXh0TmFtZSxkZWJ1ZzohMH0sKCk9Pnt0aGlzLnNhc1NlcnZpY2Uuc2hvdWxkTG9naW4ubmV4dCghMCl9KS50aGVuKHk9Pnt0aGlz''@;'; + put 'put ''LmF1dG9kZXBsb3lEb25lPSEwO3RyeXt0aGlzLm1ha2VEYXRhUmVzcG9uc2U9SlNPTi5zdHJpbmdpZnkoeSl9Y2F0Y2goQyl7dGhpcy5tYWtlRGF0YVJlc3BvbnNlPXl9dGhpcy5hdXRvRGVwbG95U3RhdHVzLnJ1bk1ha2VEYXRhPSEhKHkucmVzdWx0JiZ5LnJlc3VsdC5sZW5ndGg+MCl9KS5j''@;'; + put 'put ''YXRjaCh5PT57dGhpcy5hdXRvRGVwbG95U3RhdHVzLnJ1bk1ha2VEYXRhPSExLHRoaXMuYXV0b2RlcGxveURvbmU9ITA7dHJ5e3RoaXMubWFrZURhdGFSZXNwb25zZT1KU09OLnN0cmluZ2lmeSh5KX1jYXRjaChDKXt0aGlzLm1ha2VEYXRhUmVzcG9uc2U9eX19KX1kb3dubG9hZEZpbGUoaCx2''@;'; + put 'put ''LHk9InR4dCIpe3RoaXMuZGVwbG95U2VydmljZS5kb3dubG9hZEZpbGUoaCx2LHkpfW9uSnNvbkZpbGVDaGFuZ2UoaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgdj1oLnRhcmdldC5maWxlc1swXTt0aGlzLmpzb25GaWxlPXlpZWxkIHRoaXMuZGVwbG95''@;'; + put 'put ''U2VydmljZS5yZWFkRmlsZSh2KX0pfXJlY3JlYXRlRGF0YWJhc2VDbGlja2VkKGgpeyEwPT09aC50YXJnZXQuY2hlY2tlZCYmKHRoaXMucmVjcmVhdGVEYXRhYmFzZU1vZGFsPSEwKX1jbGVhclVwbG9hZElucHV0KGgpe3RoaXMuZGVwbG95U2VydmljZS5jbGVhclVwbG9hZElucHV0KGgpfW9w''@;'; + put 'put ''ZW5TYXNSZXF1ZXN0c01vZGFsKCl7dGhpcy5ldmVudFNlcnZpY2Uub3BlblJlcXVlc3RzTW9kYWwoKX1uYXZpZ2F0ZVRvSG9tZSgpe3RoaXMub25OYXZpZ2F0ZVRvSG9tZS5lbWl0KCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KG11KSxYdChW''@;'; + put 'put ''d2UpLFh0KGcyKSxYdChzYykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtYXV0b21hdGljLWRlcGxveSJdXSxpbnB1dHM6e3Nhc0pzOiJzYXNKcyIsc2FzSnNDb25maWc6InNhc0pzQ29uZmlnIixkY0FkYXB0ZXJTZXR0aW5nczoiZGNBZGFwdGVyU2V0dGluZ3Mi''@;'; + put 'put ''LGFwcExvYzoiYXBwTG9jIixkY1BhdGg6ImRjUGF0aCIsc2VsZWN0ZWRBZG1pbkdyb3VwOiJzZWxlY3RlZEFkbWluR3JvdXAifSxvdXRwdXRzOntvbk5hdmlnYXRlVG9Ib21lOiJvbk5hdmlnYXRlVG9Ib21lIn0sZGVjbHM6NDYsdmFyczoxMCxjb25zdHM6W1siY2xhc3MiLCJhdXRvLWRlcGxv''@;'; + put 'put ''eSIsNCwibmdJZiJdLFsyLCJ0ZXh0LWFsaWduIiwiY2VudGVyIiwibWFyZ2luLXRvcCIsIjE1cHgiLCJtYXJnaW4tYm90dG9tIiwiMTVweCJdLFsiZm9yIiwiZGNsb2MiLDEsImNsci1jb250cm9sLWxhYmVsIiwyLCJtYXJnaW4tdG9wIiwiMjBweCJdLFsxLCJjbHItY29udHJvbC1jb250YWlu''@;'; + put 'put ''ZXIiLDIsIm1hcmdpbi1ib3R0b20iLCIxMHB4Il0sWzEsImNsci1pbnB1dC13cmFwcGVyIl0sWzIsIm1hcmdpbi10b3AiLCIwIl0sWzEsImNsci1jaGVja2JveC13cmFwcGVyIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJpZCIsInJlY3JlYXRlZGItY2hlY2tib3giLCJjaGVja2VkIiwiIiwxLCJj''@;'; + put 'put ''bHItY2hlY2tib3giLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwiY2xpY2siXSxbImZvciIsInJlY3JlYXRlZGItY2hlY2tib3giXSxbMSwiYnRuLWF1dG9kZXBsb3kiLCJidG4iLCJidG4tcHJpbWFyeSIsMiwiZGlzcGxheSIsImlubGluZS1ibG9jayIsIm1hcmdpbi1yaWdodCIsIjEw''@;'; + put 'put ''cHgiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbMSwiYnRuLWF1dG9kZXBsb3kiLCJidG4iLCJidG4tcHJpbWFyeSIsMiwiZGlzcGxheSIsImlubGluZS1ibG9jayIsMywiY2xpY2siXSxbInR5cGUiLCJmaWxlIiwiaGlkZGVuIiwiIiwzLCJjbGljayIsImNoYW5nZSJdLFsidXBsb2FkSnNvbkF1''@;'; + put 'put ''dG8iLCIiXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxDbG9zYWJsZSIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsIm1vZGFsLWZvb3RlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1h''@;'; + put 'put ''cnkiLDMsImNsaWNrIl0sWzEsImF1dG8tZGVwbG95Il0sWzEsInNwaW5uZXItYm94Il0sWzQsIm5nSWYiXSxbMSwic3Bpbm5lciIsInNwaW5uZXItbWQiXSxbMiwibWFyZ2luIiwiMCIsImFsaWduLXNlbGYiLCJmbGV4LXN0YXJ0Il0sWzIsIndpZHRoIiwiMTAwJSJdLFsxLCJkZXBsb3ktc3Rh''@;'; + put 'put ''dHVzLXJvdyJdLFsiY2xhc3MiLCJkZXBsb3ktc3VjY2VzcyIsInNoYXBlIiwic3VjY2Vzcy1zdGFuZGFyZCIsNCwibmdJZiJdLFsiY2xhc3MiLCJkZXBsb3ktZXJyb3IiLCJzaGFwZSIsInRpbWVzLWNpcmNsZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJkZXBsb3ktc3RhdHVzLXJvdyIsNCwibmdJ''@;'; + put 'put ''ZiJdLFsxLCJidXR0b25zIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwyLCJtYXJnaW4tdG9wIiwiMTVweCIsIm1hcmdpbi1yaWdodCIsIjAiLDMsImNsaWNrIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5LW91dGxpbmUiLDIsIm1hcmdpbi10b3AiLCIxNXB4IiwibWFyZ2luLXJpZ2h0IiwiMCIs''@;'; + put 'put ''MywiY2xpY2siXSxbMSwiYnRuIiwiYnRuLXByaW1hcnktb3V0bGluZSIsMiwibWFyZ2luLXRvcCIsIjE1cHgiLCJtYXJnaW4tcmlnaHQiLCIwIiwiYWxpZ24tc2VsZiIsImZsZXgtZW5kIiwzLCJjbGljayJdLFsic2hhcGUiLCJzdWNjZXNzLXN0YW5kYXJkIiwxLCJkZXBsb3ktc3VjY2VzcyJd''@;'; + put 'put ''LFsic2hhcGUiLCJ0aW1lcy1jaXJjbGUiLDEsImRlcGxveS1lcnJvciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpe2lmKDEmaCl7Y29uc3QgeT1faSgpO3JuKDAsVlZlLDQsMiwiZGl2IiwwKSxpdCgxLCJoNCIsMSksVXQoMiwiIFZpeWEgRGVwbG95XG4iKSxzdCgpLENyKDMsImhyIiksaXQo''@;'; + put 'put ''NCwibGFiZWwiLDIpLFV0KDUsIkFwcCBMb2MiKSxzdCgpLGl0KDYsImRpdiIsMykoNywiZGl2Iiw0KSg4LCJwIiw1KSxVdCg5KSxzdCgpKCkoKSxpdCgxMCwibGFiZWwiLDIpLFV0KDExLCJEQyBMb2MiKSxzdCgpLGl0KDEyLCJkaXYiLDMpKDEzLCJkaXYiLDQpKDE0LCJwIiw1KSxVdCgxNSks''@;'; + put 'put ''c3QoKSgpKCksaXQoMTYsImxhYmVsIiwyKSxVdCgxNywiU0FTIEFkbWluIGdyb3VwIiksc3QoKSxpdCgxOCwiZGl2IiwzKSgxOSwiZGl2Iiw0KSgyMCwicCIsNSksVXQoMjEpLHN0KCkoKSgpLGl0KDIyLCJkaXYiLDYpKDIzLCJpbnB1dCIsNyksWW4oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9u''@;'; + put 'put ''KEkpe3JldHVybiB2LnJlY3JlYXRlRGF0YWJhc2U9SX0pKCJjbGljayIsZnVuY3Rpb24oSSl7cmV0dXJuIHYucmVjcmVhdGVEYXRhYmFzZUNsaWNrZWQoSSl9KSxzdCgpLGl0KDI0LCJsYWJlbCIsOCksVXQoMjUsIlJlY3JlYXRlIGRhdGFiYXNlIiksc3QoKSgpLENyKDI2LCJociIpLGl0KDI3''@;'; + put 'put ''LCJidXR0b24iLDkpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5leGVjdXRlSnNvbigpfSksVXQoMjgpLHN0KCksaXQoMjksImJ1dHRvbiIsMTApLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoeSksYSh5YSgzMikuY2xpY2soKSl9KSxVdCgzMCwiIFVwbG9hZCBkaWZm''@;'; + put 'put ''ZXJlbnQgZmlsZSB0byBkZXBsb3lcbiIpLHN0KCksaXQoMzEsImlucHV0IiwxMSwxMiksWW4oImNsaWNrIixmdW5jdGlvbihJKXtyZXR1cm4gdi5jbGVhclVwbG9hZElucHV0KEkpfSkoImNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYub25Kc29uRmlsZUNoYW5nZShJKX0pLHN0KCksaXQo''@;'; + put 'put ''MzMsImNsci1tb2RhbCIsMTMpLFluKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB2LnJlY3JlYXRlRGF0YWJhc2VNb2RhbD1JfSksaXQoMzQsImgzIiwxNCksVXQoMzUsIldhcm5pbmciKSxzdCgpLGl0KDM2LCJkaXYiLDE1KSxVdCgzNywiIFRoaXMgYWN0aW9uIHdp''@;'; + put 'put ''bGwgcmVjcmVhdGUgdGhlIGRhdGFiYXNlIChpZiBpdCBleGlzdHMpLiBGb3IgYW4gaW5pdGlhbCBkZXBsb3ltZW50LCB0aGlzIGlzIGV4cGVjdGVkLiBJZiB0aGlzIGlzIGEgcmUtZGVwbG95bWVudCwgeW91IHdpbGwgbG9zZSBhbnkgZXhpc3RpbmcgdGFibGVzIGluICIpLGl0KDM4LCJzdHJv''@;'; + put 'put ''bmciKSxVdCgzOSksc3QoKSxVdCg0MCwiLiAiKSxzdCgpLGl0KDQxLCJkaXYiLDE2KSg0MiwiYnV0dG9uIiwxNyksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnJlY3JlYXRlRGF0YWJhc2VNb2RhbD0hMSx2LnJlY3JlYXRlRGF0YWJhc2U9ITF9KSxVdCg0MywiIENhbmNlbCAiKSxz''@;'; + put 'put ''dCgpLGl0KDQ0LCJidXR0b24iLDE3KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucmVjcmVhdGVEYXRhYmFzZU1vZGFsPSExLHYucmVjcmVhdGVEYXRhYmFzZT0hMH0pLFV0KDQ1LCIgT2sgIiksc3QoKSgpKCl9MiZoJiYoVHQoIm5nSWYiLHYuYXV0b2RlcGxveWluZyksdXQoOSks''@;'; + put 'put ''R2kodi5hcHBMb2MpLHV0KDYpLEdpKHYuZGNQYXRoKSx1dCg2KSxHaSh2LnNlbGVjdGVkQWRtaW5Hcm91cCksdXQoMiksVHQoIm5nTW9kZWwiLHYucmVjcmVhdGVEYXRhYmFzZSksdXQoNCksVHQoImRpc2FibGVkIiwhdi5qc29uRmlsZSksdXQoMSksSmkoIiBEZXBsb3kgIix2Lmpzb25GaWxl''@;'; + put 'put ''PyIiOiIoanNvbiBmaWxlIGlzIG5vdCBhdmFpbGFibGUpIiwiXG4iKSx1dCg1KSxUdCgiY2xyTW9kYWxPcGVuIix2LnJlY3JlYXRlRGF0YWJhc2VNb2RhbCkoImNsck1vZGFsQ2xvc2FibGUiLCExKSx1dCg2KSxHaSh2LmRjUGF0aCkpfSxkZXBlbmRlbmNpZXM6W1ZvLElmLEVzLHhzLHdsLGY0''@;'; + put 'put ''LGg0LG90XSxzdHlsZXM6WyIuYXV0by1kZXBsb3lbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MDtiYWNrZ3JvdW5kOnJnYmEo''@;'; + put 'put ''MCwwLDAsLjQpO3otaW5kZXg6MTAwfS5zcGlubmVyLWJveFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6NDAwcHg7cGFkZGluZzoyMHB4O2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQ6I2ZmZjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50''@;'; + put 'put ''ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JveC1zaGFkb3c6MXB4IDFweCA4cHggIzAwMDAwMDgyfS5zcGlubmVyLWJveFtfbmdjb250ZW50LSVDT01QJV0gICAuYnV0dG9uc1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3dp''@;'; + put 'put ''ZHRoOjEwMCV9LmRlcGxveS1zdGF0dXMtcm93W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLXNlbGY6ZmxleC1zdGFydH0uZGVwbG95LXN0YXR1cy1yb3dbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFy''@;'; + put 'put ''Z2luOjAgMCAwIDEwcHh9LmRlcGxveS1zdWNjZXNzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNmVjZjQ0fS5kZXBsb3ktZXJyb3JbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNlNzRjM2N9LmRlcGxveS11bmRldGVybWluYXRlZFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2NhY2Fj''@;'; + put 'put ''YX1ocltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMjcwNTg4MjM1Myl9Il19KSxkfSkoKTtmdW5jdGlvbiBaVmUoZCxnKXsxJmQmJihpdCgwLCJkaXYiLDE1KSxDcigxLCJwcm9ncmVzcyIpLHN0KCkpfWZ1bmN0aW9uIHpW''@;'; + put 'put ''ZShkLGcpe2lmKDEmZCYmKGl0KDAsIm9wdGlvbiIsMTYpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFsdWUiLGguR1JPVVBOQU1FKSx1dCgxKSxGaCgiICIsaC5HUk9VUE5BTUUsIiAtICIsaC5HUk9VUERFU0MsIiAiKX19bGV0IEdWZT0oKCk9PntjbGFzcyBk''@;'; + put 'put ''e2NvbnN0cnVjdG9yKGgsdil7dGhpcy5zYXNTZXJ2aWNlPWgsdGhpcy5zYXNqc1NlcnZpY2U9dix0aGlzLnNhc0pzQ29uZmlnPW5ldyBRMy5TQVNqc0NvbmZpZyx0aGlzLm9uTmF2aWdhdGVUb0hvbWU9bmV3IGFyLHRoaXMuZGNEaXJlY3Rvcnk9IiIsdGhpcy5kY0FkbWluR3JvdXA9IkRDREVG''@;'; + put 'put ''QVVMVCIsdGhpcy5NRVRBUEVSU09OPSJuL2EiLHRoaXMuTUVUQVVTRVI9Im4vYSIsdGhpcy5TWVNVU0VSSUQ9Im4vYSIsdGhpcy5TWVNIT1NUTkFNRT0ibi9hIix0aGlzLlNZU1ZMT05HPSJuL2EiLHRoaXMuZGNBZG1pbkdyb3VwTGlzdD1bXSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5zaG93TG9n''@;'; + put 'put ''b3V0PSExLHRoaXMudG1wRGlyZWN0b3JpZXM9e2xpbnV4OiIvdG1wL0RhdGFDb250cm9sbGVyIix3aW5kb3dzOiJDOlxcRGF0YUNvbnRyb2xsZXIifX1uZ09uSW5pdCgpe3RoaXMuZ2V0VXNlckdyb3VwcygpLHRoaXMuZ2V0U2VydmVySW5mbygpfWdldFNlcnZlckluZm8oKXt0aGlzLnNhc2pz''@;'; + put 'put ''U2VydmljZS5nZXRTZXJ2ZXJJbmZvKCkuc3Vic2NyaWJlKGg9PnsiZGVza3RvcCIhPT1oLm1vZGUmJih0aGlzLnNob3dMb2dvdXQ9ITApfSl9Z2V0VXNlckdyb3Vwcygpe3RoaXMubG9hZGluZz0hMCx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2VyZ3JvdXBzYnltZW1iZXIi''@;'; + put 'put ''LG51bGwpLnRoZW4oaD0+e3RoaXMuTUVUQVBFUlNPTj1oLk1GX0dFVFVTRVIsdGhpcy5TWVNVU0VSSUQ9aC5TWVNVU0VSSUQsdGhpcy5TWVNIT1NUTkFNRT1oLlNZU0hPU1ROQU1FLHRoaXMuU1lTVkxPTkc9aC5TWVNWTE9ORyx0aGlzLmRjRGlyZWN0b3J5PXRoaXMudG1wRGlyZWN0b3JpZXNb''@;'; + put 'put ''WyJMIiwiSCIsIkEiLCJTIl0uaW5jbHVkZXMoaC5TWVNTQ1BMLnN1YnN0cmluZygwLDEpKT8ibGludXgiOiJ3aW5kb3dzIl0sdGhpcy5kY0FkbWluR3JvdXBMaXN0PWguZ3JvdXBzLHRoaXMuZGNBZG1pbkdyb3VwPXRoaXMuZGNBZG1pbkdyb3VwTGlzdFswXS5HUk9VUE5BTUUsdGhpcy5sb2Fk''@;'; + put 'put ''aW5nPSExfSxoPT57dGhpcy5sb2FkaW5nPSExfSl9bWFrZURhdGEoKXtsZXQgdj10aGlzLnNhc1NlcnZpY2UuZ2V0RXhlY3V0aW9uUGF0aCgpO2NvbnN0IHk9dGhpcy5zYXNKc0NvbmZpZy5hcHBMb2M7bGV0IEM9dGhpcy5zYXNKc0NvbmZpZy5zZXJ2ZXJVcmwsST10aGlzLmRjRGlyZWN0b3J5''@;'; + put 'put ''O3RoaXMuc2FzSnNDb25maWcuc2VydmVyVHlwZT09PUh1LkQuU2FzanM/dGhpcy5zYXNTZXJ2aWNlLnNhc2pzTWFrZWRhdGFDaGVja2luZygpLnRoZW4odWU9Pnt1ZSYmbG9jYXRpb24ucmVsb2FkKCl9KTp0aGlzLnNhc0pzQ29uZmlnLnNlcnZlclR5cGU9PT1IdS5ELlNhczkmJihDPSIiLHY9''@;'; + put 'put ''d2luZG93LmxvY2F0aW9uLm9yaWdpbit2KyIvIixJPWVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmRjRGlyZWN0b3J5KSksd2luZG93Lm9wZW4oYCR7Q3x8IiJ9JHt2fT9fcHJvZ3JhbT0ke3l9L3NlcnZpY2VzL2FkbWluL21ha2VkYXRhJmFkbWluPSR7dGhpcy5kY0FkbWluR3JvdXB9JnBhdGg9''@;'; + put 'put ''JHtJfSBgLCJfYmxhbmsiKX1sb2dvdXQoKXt0aGlzLnNhc1NlcnZpY2UubG9nb3V0KCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KGcyKSxYdChuUSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtc2FzanMtY29u''@;'; + put 'put ''ZmlndXJhdG9yIl1dLGlucHV0czp7c2FzSnM6InNhc0pzIixzYXNKc0NvbmZpZzoic2FzSnNDb25maWciLGRjQWRhcHRlclNldHRpbmdzOiJkY0FkYXB0ZXJTZXR0aW5ncyJ9LG91dHB1dHM6e29uTmF2aWdhdGVUb0hvbWU6Im9uTmF2aWdhdGVUb0hvbWUifSxkZWNsczo0MSx2YXJzOjksY29u''@;'; + put 'put ''c3RzOltbImNsYXNzIiwidGhpblByb2dyZXNzIHByb2dyZXNTdGF0aWMgcHJvZ3Jlc3MgbG9vcCIsNCwibmdJZiJdLFsyLCJ0ZXh0LWFsaWduIiwiY2VudGVyIiwibWFyZ2luLXRvcCIsIjE1cHgiLCJtYXJnaW4tYm90dG9tIiwiMTVweCJdLFsxLCJsaWdodCJdLFsyLCJtYXJnaW4iLCIwIl0s''@;'; + put 'put ''WzIsIm1hcmdpbiIsIjAiLCJtYXJnaW4tdG9wIiwiMTBweCJdLFsxLCJjbHItY29udHJvbC1sYWJlbCIsMiwibWFyZ2luLXRvcCIsIjIwcHgiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIiwyLCJtYXJnaW4tYm90dG9tIiwiMTBweCJdLFsxLCJjbHItaW5wdXQtd3JhcHBlciJdLFsicGxh''@;'; + put 'put ''Y2Vob2xkZXIiLCJUeXBlIGluIGRpcmVjdG9yeSIsMSwiY2xyLWlucHV0IiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFsyLCJtYXJnaW4tYm90dG9tIiwiMTBweCIsIm1hcmdpbi10b3AiLCIwIiwid2lkdGgiLCI1MHZ3Il0sWyJjbHJTZWxlY3QiLCIiLDMsIm5nTW9kZWwiLCJuZ01v''@;'; + put 'put ''ZGVsQ2hhbmdlIl0sWzMsInZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY2xyLWZsZXgiXSxbMSwiYnRuIiwiYnRuLXN1Y2Nlc3MiLDIsIm1hcmdpbi10b3AiLCIxNXB4IiwidGV4dC1hbGlnbiIsImNlbnRlciIsMywiY2xpY2siXSxbMSwiY2FyZC10ZXh0IiwyLCJwYWRkaW5nLWJv''@;'; + put 'put ''dHRvbSIsIjEwcHgiXSxbMSwidGhpblByb2dyZXNzIiwicHJvZ3Jlc1N0YXRpYyIsInByb2dyZXNzIiwibG9vcCJdLFszLCJ2YWx1ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKHJuKDAsWlZlLDIsMCwiZGl2IiwwKSxpdCgxLCJoNCIsMSksVXQoMiwiIFNhc2pzIERlcGxveVxu''@;'; + put 'put ''Iiksc3QoKSxDcigzLCJociIsMiksaXQoNCwicCIsMyksVXQoNSwiIFRvIGNvbmZpZ3VyZSBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YTksIHBsZWFzZSBwcm92aWRlIHRoZSBmb2xsb3dpbmcgZGV0YWlsczpcbiIpLHN0KCksaXQoNiwicCIsNCksVXQoNywiIFBsZWFzZSBzcGVjaWZ5IGEg''@;'; + put 'put ''cGh5c2ljYWwgZGlyZWN0b3J5IGJlbG93LCB0byB3aGljaCB1c2VyICIpLGl0KDgsInN0cm9uZyIpLFV0KDkpLHN0KCksVXQoMTAsIiBjYW4gd3JpdGUsIG9uIGJlaGFsZiBvZiBEYXRhIENvbnRyb2xsZXI6XG4iKSxzdCgpLGl0KDExLCJsYWJlbCIsNSksVXQoMTIsIkRDIERpcmVjdG9yeSIp''@;'; + put 'put ''LHN0KCksaXQoMTMsImRpdiIsNikoMTQsImRpdiIsNykoMTUsImlucHV0Iiw4KSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuZGNEaXJlY3Rvcnk9Q30pLHN0KCkoKSgpLGl0KDE2LCJwIiw0KSxVdCgxNywiIEJlbG93IGFyZSB0aGUgbGlzdCBvZiBncm91cHMgdG8g''@;'; + put 'put ''d2hpY2ggeW91IGJlbG9uZy4gVGhlIGdyb3VwIHlvdSBzZWxlY3Qgd2lsbCBiZWNvbWUgdGhlIERhdGEgQ29udHJvbGxlciBBZG1pbiBHcm91cCwgYW5kIGV2ZXJ5b25lIGluIGl0IHdpbGwgaGF2ZSB1bnJlc3RyaWN0ZWQgYWNjZXNzIHRvIERhdGEgQ29udHJvbGxlci5cbiIpLHN0KCksaXQo''@;'; + put 'put ''MTgsImxhYmVsIiw1KSxVdCgxOSwiRGF0YSBDb250cm9sbGVyIEFkbWluIGdyb3VwIiksc3QoKSxpdCgyMCwiY2xyLXNlbGVjdC1jb250YWluZXIiLDkpKDIxLCJzZWxlY3QiLDEwKSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuZGNBZG1pbkdyb3VwPUN9KSxybigy''@;'; + put 'put ''Mix6VmUsMiwzLCJvcHRpb24iLDExKSxzdCgpKCksaXQoMjMsInAiLDQpLFV0KDI0LCIgTm93LCBjcmVhdGUgdGhlIHRhcmdldCBkaXJlY3RvcnkgYW5kIGRlcGxveSB0aGUgY29udHJvbCBsaWJyYXJ5IHVzaW5nIHRoZSBhZG1pbiBncm91cCBzZWxlY3RlZCBhYm92ZTpcbiIpLHN0KCksaXQo''@;'; + put 'put ''MjUsImRpdiIsMTIpKDI2LCJidXR0b24iLDEzKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYubWFrZURhdGEoKX0pLFV0KDI3LCIgU1VCTUlUICIpLHN0KCkoKSxDcigyOCwiaHIiLDIpLGl0KDI5LCJkaXYiLDE0KSgzMCwicCIpLFV0KDMxLCJZb3UgYXJlIGNvbm5lY3RlZCB3aXRo''@;'; + put 'put ''IHRoZSBmb2xsb3dpbmcgY3JlZGVudGlhbHM6Iiksc3QoKSxpdCgzMiwidWwiKSgzMywibGkiKSxVdCgzNCksc3QoKSxpdCgzNSwibGkiKSxVdCgzNiksc3QoKSxpdCgzNywibGkiKSxVdCgzOCksc3QoKSxpdCgzOSwibGkiKSxVdCg0MCksc3QoKSgpKCkpLDImaCYmKFR0KCJuZ0lmIix2Lmxv''@;'; + put 'put ''YWRpbmcpLHV0KDkpLEdpKHYuU1lTVVNFUklEKSx1dCg2KSxUdCgibmdNb2RlbCIsdi5kY0RpcmVjdG9yeSksdXQoNiksVHQoIm5nTW9kZWwiLHYuZGNBZG1pbkdyb3VwKSx1dCgxKSxUdCgibmdGb3JPZiIsdi5kY0FkbWluR3JvdXBMaXN0KSx1dCgxMiksSmkoIk1FVEFQRVJTT046ICIsdi5N''@;'; + put 'put ''RVRBUEVSU09OLCIiKSx1dCgyKSxKaSgiU1lTVVNFUklEOiAiLHYuU1lTVVNFUklELCIiKSx1dCgyKSxKaSgiU1lTSE9TVE5BTUU6ICIsdi5TWVNIT1NUTkFNRSwiIiksdXQoMiksSmkoIlNZU1ZMT05HOiAiLHYuU1lTVkxPTkcsIiIpKX0sZGVwZW5kZW5jaWVzOltacyxWbyxxMyxlZCxtMSxP''@;'; + put 'put ''ZixFcyx4cyxvdCxYaixKal0sc3R5bGVzOlsiLmNsci1jb250cm9sLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6NTB2d30uY2xyLWlucHV0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdLCAuY2xyLWlucHV0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LnRoaW5Qcm9ncmVzc1tfbmdjb250ZW50LSVDT01QJV17bGVmdDowcHg7cmlnaHQ6MDt3aWR0aDp1bnNldDtoZWlnaHQ6MXB4O21hcmdpbi10b3A6MCFpbXBvcnRhbnR9LnRoaW5Qcm9ncmVzc1tfbmdjb250ZW50LSVDT01QJV06YWZ0ZXJ7''@;'; + put 'put ''dG9wOjB9Il19KSxkfSkoKTtmdW5jdGlvbiBXVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiLDQpKDEsImRpdiIsNSksVXQoMiwiVGVybXMgYW5kIENvbmRpdGlvbnMiKSxzdCgpLGl0KDMsImRpdiIsNikoNCwiZGl2Iiw3KSg1LCJwIiksVXQoNiwiIFRoZSBEZW1vIHZl''@;'; + put 'put ''cnNpb24gb2YgRGF0YSBDb250cm9sbGVyIGlzIGZyZWUgZm9yIEVWQUxVQVRJT04gcHVycG9zZXMgb25seS4gQmVmb3JlIHByb2NlZWRpbmcgd2l0aCBjb25maWd1cmF0aW9uLCBwbGVhc2UgY29uZmlybSB0aGF0IHlvdSBoYXZlIHJlYWQsIHVuZGVyc3Rvb2QsIGFuZCBhZ3JlZWQgdG8gdGhl''@;'; + put 'put ''ICIpLGl0KDcsImEiLDgpLFV0KDgsIkRhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhOSBFdmFsdWF0aW9uIEFncmVlbWVudCIpLHN0KCksVXQoOSwiLiAiKSxzdCgpKCksQ3IoMTAsImhyIiw5KSxpdCgxMSwiZGl2IiwxMCkoMTIsImlucHV0IiwxMSksWW4oImNoYW5nZSIsZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gcnQoaCksYShLdCgpLnRlcm1zQWdyZWVDaGFuZ2UoKSl9KSxzdCgpLGl0KDEzLCJsYWJlbCIsMTIpLFV0KDE0LCJJIGhhdmUgcmVhZCBhbmQgYWdyZWUgdG8gdGhlIHRlcm1zIG9mIHRoZSAiKSxpdCgxNSwiYSIsOCksVXQoMTYsIkRhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhOSBF''@;'; + put 'put ''dmFsdWF0aW9uIEFncmVlbWVudCIpLHN0KCkoKSgpKCkoKX19ZnVuY3Rpb24gWVZlKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiZGl2IiwxNykoMSwiYXBwLWF1dG9tYXRpYy1kZXBsb3kiLDE4KSxZbigib25OYXZpZ2F0ZVRvSG9tZSIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCks''@;'; + put 'put ''YShLdCgzKS5vbk5hdmlnYXRlVG9Ib21lKCkpfSksc3QoKSgpfWlmKDImZCl7Y29uc3QgaD1LdCgzKTt1dCgxKSxUdCgic2FzSnMiLGguc2FzSnMpKCJzYXNKc0NvbmZpZyIsaC5zYXNKc0NvbmZpZykoImRjQWRhcHRlclNldHRpbmdzIixoLmRjQWRhcHRlclNldHRpbmdzKSgiYXBwTG9jIixo''@;'; + put 'put ''LmFwcExvYykoImRjUGF0aCIsaC5kY1BhdGgpKCJzZWxlY3RlZEFkbWluR3JvdXAiLGguc2VsZWN0ZWRBZG1pbkdyb3VwKX19ZnVuY3Rpb24gVVZlKGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiZGl2IiwxOSkoMSwiYXBwLW1hbnVhbC1kZXBsb3kiLDIwKSxZbigib25OYXZpZ2F0''@;'; + put 'put ''ZVRvSG9tZSIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgzKS5vbk5hdmlnYXRlVG9Ib21lKCkpfSksc3QoKSgpfWlmKDImZCl7Y29uc3QgaD1LdCgzKTt1dCgxKSxUdCgic2FzSnMiLGguc2FzSnMpKCJzYXNKc0NvbmZpZyIsaC5zYXNKc0NvbmZpZykoImRjQWRhcHRlclNldHRpbmdz''@;'; + put 'put ''IixoLmRjQWRhcHRlclNldHRpbmdzKX19ZnVuY3Rpb24gUVZlKGQsZyl7aWYoMSZkJiYoRjAoMCkscm4oMSxZVmUsMiw2LCJkaXYiLDE1KSxybigyLFVWZSwyLDMsImRpdiIsMTYpLEgwKCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCgxKSxUdCgibmdJZiIsaC5hdXRvZGVwbG95KSx1dCgxKSxU''@;'; + put 'put ''dCgibmdJZiIsIWguYXV0b2RlcGxveSl9fWZ1bmN0aW9uIEpWZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO0YwKDApLGl0KDEsImRpdiIsMTcpKDIsImFwcC1zYXNqcy1jb25maWd1cmF0b3IiLDIwKSxZbigib25OYXZpZ2F0ZVRvSG9tZSIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShL''@;'; + put 'put ''dCgyKS5vbk5hdmlnYXRlVG9Ib21lKCkpfSksc3QoKSgpLEgwKCl9aWYoMiZkKXtjb25zdCBoPUt0KDIpO3V0KDIpLFR0KCJzYXNKcyIsaC5zYXNKcykoInNhc0pzQ29uZmlnIixoLnNhc0pzQ29uZmlnKSgiZGNBZGFwdGVyU2V0dGluZ3MiLGguZGNBZGFwdGVyU2V0dGluZ3MpfX1mdW5jdGlv''@;'; + put 'put ''biBYVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtGMCgwKSxpdCgxLCJkaXYiLDE3KSgyLCJhcHAtc2FzanMtY29uZmlndXJhdG9yIiwyMCksWW4oIm9uTmF2aWdhdGVUb0hvbWUiLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoMikub25OYXZpZ2F0ZVRvSG9tZSgpKX0pLHN0KCko''@;'; + put 'put ''KSxIMCgpfWlmKDImZCl7Y29uc3QgaD1LdCgyKTt1dCgyKSxUdCgic2FzSnMiLGguc2FzSnMpKCJzYXNKc0NvbmZpZyIsaC5zYXNKc0NvbmZpZykoImRjQWRhcHRlclNldHRpbmdzIixoLmRjQWRhcHRlclNldHRpbmdzKX19ZnVuY3Rpb24gS1ZlKGQsZyl7aWYoMSZkJiYoRjAoMCwxMykscm4o''@;'; + put 'put ''MSxRVmUsMywyLCJuZy1jb250YWluZXIiLDE0KSxybigyLEpWZSwzLDMsIm5nLWNvbnRhaW5lciIsMTQpLHJuKDMsWFZlLDMsMywibmctY29udGFpbmVyIiwxNCksSDAoKSksMiZkKXtjb25zdCBoPUt0KCk7VHQoIm5nU3dpdGNoIiwhMCksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsaC5zYXNK''@;'; + put 'put ''c0NvbmZpZy5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNhc1ZpeWEpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLGguc2FzSnNDb25maWcuc2VydmVyVHlwZT09PWguU2VydmVyVHlwZS5TYXNqcyksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsaC5zYXNKc0NvbmZpZy5zZXJ2ZXJUeXBlPT09''@;'; + put 'put ''aC5TZXJ2ZXJUeXBlLlNhczkpfX1sZXQgandlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dmFyIEk7dGhpcy5hcHBTdG9yZVNlcnZpY2U9aCx0aGlzLnNhc1NlcnZpY2U9dix0aGlzLmxvZ2dlclNlcnZpY2U9eSx0aGlzLnJvdXRlcj1DLHRoaXMuc3RlcD0wLHRoaXMuYWRt''@;'; + put 'put ''aW5Hcm91cHM9W10sdGhpcy5jbGllbnRfaWQ9IiIsdGhpcy5jbGllbnRfc2VjcmV0PSIiLHRoaXMuYXBwTG9jPSIiLHRoaXMuZGNQYXRoPSIiLHRoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwPSIiLHRoaXMuYXV0b2RlcGxveT0hMCx0aGlzLmpzb25GaWxlPW51bGwsdGhpcy5zYXNKc0NvbmZpZz1u''@;'; + put 'put ''ZXcgUTMuU0FTanNDb25maWcsdGhpcy5TZXJ2ZXJUeXBlPUh1LkQsdGhpcy5kY0FkYXB0ZXJTZXR0aW5ncz10aGlzLmFwcFN0b3JlU2VydmljZS5nZXREY0FkYXB0ZXJTZXR0aW5ncygpLHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygibWFudWFsZGVwbG95IikmJih0aGlzLmF1dG9kZXBsb3k9''@;'; + put 'put ''ITEpLHRoaXMuc2FzSnM9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzSW5zdGFuY2UoKSx0aGlzLnNhc0pzQ29uZmlnPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLHRoaXMuYXBwTG9jPShudWxsPT09KEk9dGhpcy5kY0FkYXB0ZXJTZXR0aW5ncyl8fHZvaWQgMD09PUk/dm9pZCAw''@;'; + put 'put ''OkkuYXBwTG9jKXx8IiIsdGhpcy5jbGllbnRfaWQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImRlcGxveV9jbGllbnRfaWQiKXx8IiIsdGhpcy5jbGllbnRfc2VjcmV0PWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJkZXBsb3lfc2VjcmV0X2tleSIpfHwiIix0aGlzLmRjUGF0aD1sb2NhbFN0b3JhZ2Uu''@;'; + put 'put ''Z2V0SXRlbSgiZGVwbG95X2RjX2xvYyIpfHwiIn1uZ09uSW5pdCgpe3RoaXMuc2FzSnNDb25maWcuc2VydmVyVHlwZT09PUh1LkQuU2FzVml5YSYmZmV0Y2goInNhc2J1aWxkL3ZpeWEuanNvbiIpLnRoZW4oaD0+aC50ZXh0KCkpLnRoZW4oaD0+e2xldCB2PW51bGw7dHJ5e3Y9SlNPTi5wYXJz''@;'; + put 'put ''ZShoKX1jYXRjaCh5KXtjb25zb2xlLmVycm9yKHkpfXYmJih0aGlzLmpzb25GaWxlPXYsdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyh0aGlzLmpzb25GaWxlKSl9KSx0aGlzLnNldERlcGxveURlZmF1bHRzKCl9c2V0RGVwbG95RGVmYXVsdHMoKXt2YXIgaCx2O3RoaXMuZGNQYXRoPShudWxsPT09''@;'; + put 'put ''KGg9dGhpcy5kY0FkYXB0ZXJTZXR0aW5ncyl8fHZvaWQgMD09PWg/dm9pZCAwOmguZGNQYXRoKXx8IiIsdGhpcy5zZWxlY3RlZEFkbWluR3JvdXA9KG51bGw9PT0odj10aGlzLmRjQWRhcHRlclNldHRpbmdzKXx8dm9pZCAwPT09dj92b2lkIDA6di5hZG1pbkdyb3VwKXx8IiIsdGhpcy5zZWxl''@;'; + put 'put ''Y3RlZEFkbWluR3JvdXB8fCh0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cD0iU0FTQWRtaW5pc3RyYXRvcnMiKX10ZXJtc0FncmVlQ2hhbmdlKCl7dGhpcy5hdXRvZGVwbG95fHx0aGlzLmdldEFkbWluR3JvdXBzKCksdGhpcy5zdGVwKyt9Z2V0QWRtaW5Hcm91cHMoKXtmZXRjaCh0aGlzLnNhc0pz''@;'; + put 'put ''Q29uZmlnLnNlcnZlclVybCsiL2lkZW50aXRpZXMvZ3JvdXBzP3NvcnRCeT1uYW1lJmxpbWl0PTUwMDAiLHtoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifX0pLnRoZW4oaD0+aC50ZXh0KCkpLnRoZW4oaD0+e2xldCB2O3RyeXt2PUpTT04ucGFyc2UoaCl9Y2F0Y2goeSl7Y29u''@;'; + put 'put ''c29sZS5lcnJvcih5KX12JiYodGhpcy5hZG1pbkdyb3Vwcz12Lml0ZW1zLHRoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwPXRoaXMuYWRtaW5Hcm91cHNbMF0uaWQpfSl9b25OYXZpZ2F0ZVRvSG9tZSgpe3dpbmRvdy5vcGVuKGxvY2F0aW9uLmhyZWYuc3BsaXQoIiMiKVswXSwiX2JsYW5rIil9fXJl''@;'; + put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KGFrKSxYdChnMiksWHQoc2MpLFh0KFpsKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1kZXBsb3kiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xz''@;'; + put 'put ''OjQsdmFyczoyLGNvbnN0czpbWzEsImNvbnRlbnQtYXJlYSIsMiwicG9zaXRpb24iLCJyZWxhdGl2ZSJdLFsxLCJjbHItcm93Il0sWyJpZCIsIlRDUyIsImNsYXNzIiwiY2FyZCIsNCwibmdJZiJdLFszLCJuZ1N3aXRjaCIsNCwibmdJZiJdLFsiaWQiLCJUQ1MiLDEsImNhcmQiXSxbMSwiY2Fy''@;'; + put 'put ''ZC1oZWFkZXIiXSxbMSwiY2FyZC1ibG9jayJdLFsxLCJjYXJkLXRleHQiXSxbImhyZWYiLCJodHRwczovL2RvY3MuZGF0YWNvbnRyb2xsZXIuaW8vZXZhbHVhdGlvbi1saWNlbmNlLWFncmVlbWVudCIsInRhcmdldCIsIl9ibGFuayJdLFsxLCJsaWdodCJdLFsxLCJjbHItY2hlY2tib3gtd3Jh''@;'; + put 'put ''cHBlciJdLFsidHlwZSIsImNoZWNrYm94IiwiaWQiLCJjaGVja2JveDEiLCJuYW1lIiwiY2hlY2tib3gtYmFzaWMiLCJ2YWx1ZSIsIm9wdGlvbjEiLDEsImNsci1jaGVja2JveCIsMywiY2hhbmdlIl0sWyJmb3IiLCJjaGVja2JveDEiXSxbMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNl''@;'; + put 'put ''Il0sWyJjbGFzcyIsImF1dG9kZXBsb3ktc2VjdGlvbiBjYXJkIiw0LCJuZ0lmIl0sWyJpZCIsIm1haW5ib2R5IiwiY2xhc3MiLCJjYXJkIiw0LCJuZ0lmIl0sWzEsImF1dG9kZXBsb3ktc2VjdGlvbiIsImNhcmQiXSxbMywic2FzSnMiLCJzYXNKc0NvbmZpZyIsImRjQWRhcHRlclNldHRpbmdz''@;'; + put 'put ''IiwiYXBwTG9jIiwiZGNQYXRoIiwic2VsZWN0ZWRBZG1pbkdyb3VwIiwib25OYXZpZ2F0ZVRvSG9tZSJdLFsiaWQiLCJtYWluYm9keSIsMSwiY2FyZCJdLFszLCJzYXNKcyIsInNhc0pzQ29uZmlnIiwiZGNBZGFwdGVyU2V0dGluZ3MiLCJvbk5hdmlnYXRlVG9Ib21lIl1dLHRlbXBsYXRlOmZ1''@;'; + put 'put ''bmN0aW9uKGgsdil7MSZoJiYoaXQoMCwiZGl2IiwwKSgxLCJkaXYiLDEpLHJuKDIsV1ZlLDE3LDAsImRpdiIsMiksc3QoKSxybigzLEtWZSw0LDQsIm5nLWNvbnRhaW5lciIsMyksc3QoKSksMiZoJiYodXQoMiksVHQoIm5nSWYiLDA9PT12LnN0ZXApLHV0KDEpLFR0KCJuZ0lmIix2LnN0ZXA+''@;'; + put 'put ''MCkpfSxkZXBlbmRlbmNpZXM6W1ZvLFVkLGlwLG90LERWZSxqVmUsR1ZlXSxzdHlsZXM6WyIuY2FyZFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDowfS5idG5bX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MTBweH0ubG9nLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3dp''@;'; + put 'put ''ZHRoOjEwMCU7YmFja2dyb3VuZDojZjBmMGYwO2JvcmRlcjoxcHggc29saWQgI2M5YzljOTtwYWRkaW5nOjEwcHg7b3ZlcmZsb3c6YXV0bzt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0jY29udGV4dHMtYnRuW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjNweCAwIDA7bWluLXdpZHRoOjMwcHg7''@;'; + put 'put ''bWFyZ2luLWxlZnQ6MTBweDtoZWlnaHQ6MzBweDtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS52YWxpZGF0aW9uLWJhcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O21hcmdpbi10b3A6MjBweDthbGlnbi1pdGVt''@;'; + put 'put ''czpjZW50ZXJ9LnZhbGlkYXRpb24tYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tcmlnaHQ6NXB4fS5hdXRvZGVwbG95LXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MCAxNXB4fS5hdXRvZGVwbG95LXNlY3Rpb25b''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVdICAgLmNsci1jaGVja2JveC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MjBweCAwfS5hdXRvZGVwbG95LXNlY3Rpb25bX25nY29udGVudC0lQ09NUCVdICAgLmJ0bi1hdXRvZGVwbG95W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmJsb2Nr''@;'; + put 'put ''O21hcmdpbjoxNXB4IDB9Il19KSxkfSkoKTtmdW5jdGlvbiBad2UoZCl7cmV0dXJuIUFlKGQpJiZkLXBhcnNlRmxvYXQoZCkrMT49MH1mdW5jdGlvbiBlamUoZCl7Y29uc3R7aW5kZXg6ZyxwZXJpb2Q6aCxzdWJzY3JpYmVyOnZ9PWQ7aWYodi5uZXh0KGcpLCF2LmNsb3NlZCl7aWYoLTE9PT1o''@;'; + put 'put ''KXJldHVybiB2LmNvbXBsZXRlKCk7ZC5pbmRleD1nKzEsdGhpcy5zY2hlZHVsZShkLGgpfX1sZXQgSkw9e2Jhc2VVcmw6bnVsbCxicmVha3M6ITEsZXh0ZW5zaW9uczpudWxsLGdmbTohMCxoZWFkZXJJZHM6ITAsaGVhZGVyUHJlZml4OiIiLGhpZ2hsaWdodDpudWxsLGxhbmdQcmVmaXg6Imxh''@;'; + put 'put ''bmd1YWdlLSIsbWFuZ2xlOiEwLHBlZGFudGljOiExLHJlbmRlcmVyOm51bGwsc2FuaXRpemU6ITEsc2FuaXRpemVyOm51bGwsc2lsZW50OiExLHNtYXJ0TGlzdHM6ITEsc21hcnR5cGFudHM6ITEsdG9rZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxsLHhodG1sOiExfTtjb25zdCBpamU9L1sm''@;'; + put 'put ''PD4iJ10vLG9qZT0vWyY8PiInXS9nLGFqZT0vWzw+IiddfCYoPyEjP1x3KzspLyxsamU9L1s8PiInXXwmKD8hIz9cdys7KS9nLHNqZT17IiYiOiImYW1wOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsiLCciJzoiJnF1b3Q7IiwiJyI6IiYjMzk7In0sR3dlPWQ9PnNqZVtkXTtmdW5jdGlvbiBuZihk''@;'; + put 'put ''LGcpe2lmKGcpe2lmKGlqZS50ZXN0KGQpKXJldHVybiBkLnJlcGxhY2Uob2plLEd3ZSl9ZWxzZSBpZihhamUudGVzdChkKSlyZXR1cm4gZC5yZXBsYWNlKGxqZSxHd2UpO3JldHVybiBkfWNvbnN0IHVqZT0vJigjKD86XGQrKXwoPzojeFswLTlBLUZhLWZdKyl8KD86XHcrKSk7Py9naTtmdW5j''@;'; + put 'put ''dGlvbiBXd2UoZCl7cmV0dXJuIGQucmVwbGFjZSh1amUsKGcsaCk9PiJjb2xvbiI9PT0oaD1oLnRvTG93ZXJDYXNlKCkpPyI6IjoiIyI9PT1oLmNoYXJBdCgwKT8ieCI9PT1oLmNoYXJBdCgxKT9TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGguc3Vic3RyaW5nKDIpLDE2KSk6U3RyaW5n''@;'; + put 'put ''LmZyb21DaGFyQ29kZSgraC5zdWJzdHJpbmcoMSkpOiIiKX1jb25zdCBjamU9LyhefFteXFtdKVxeL2c7ZnVuY3Rpb24gVzIoZCxnKXtkPSJzdHJpbmciPT10eXBlb2YgZD9kOmQuc291cmNlLGc9Z3x8IiI7Y29uc3QgaD17cmVwbGFjZToodix5KT0+KHk9KHk9eS5zb3VyY2V8fHkpLnJlcGxh''@;'; + put 'put ''Y2UoY2plLCIkMSIpLGQ9ZC5yZXBsYWNlKHYseSksaCksZ2V0UmVnZXg6KCk9Pm5ldyBSZWdFeHAoZCxnKX07cmV0dXJuIGh9Y29uc3QgZmplPS9bXlx3Ol0vZyxoamU9L14kfF5bYS16XVthLXowLTkrLi1dKjp8Xls/I10vaTtmdW5jdGlvbiBZd2UoZCxnLGgpe2lmKGQpe2xldCB2O3RyeXt2''@;'; + put 'put ''PWRlY29kZVVSSUNvbXBvbmVudChXd2UoaCkpLnJlcGxhY2UoZmplLCIiKS50b0xvd2VyQ2FzZSgpfWNhdGNoKHkpe3JldHVybiBudWxsfWlmKDA9PT12LmluZGV4T2YoImphdmFzY3JpcHQ6Iil8fDA9PT12LmluZGV4T2YoInZic2NyaXB0OiIpfHwwPT09di5pbmRleE9mKCJkYXRhOiIpKXJl''@;'; + put 'put ''dHVybiBudWxsfWcmJiFoamUudGVzdChoKSYmKGg9ZnVuY3Rpb24gbWplKGQsZyl7WnFbIiAiK2RdfHwoWnFbIiAiK2RdPWRqZS50ZXN0KGQpP2QrIi8iOkdxKGQsIi8iLCEwKSk7Y29uc3QgaD0tMT09PShkPVpxWyIgIitkXSkuaW5kZXhPZigiOiIpO3JldHVybiIvLyI9PT1nLnN1YnN0cmlu''@;'; + put 'put ''ZygwLDIpP2g/ZzpkLnJlcGxhY2UocGplLCIkMSIpK2c6Ii8iPT09Zy5jaGFyQXQoMCk/aD9nOmQucmVwbGFjZShnamUsIiQxIikrZzpkK2d9KGcsaCkpO3RyeXtoPWVuY29kZVVSSShoKS5yZXBsYWNlKC8lMjUvZywiJSIpfWNhdGNoKHYpe3JldHVybiBudWxsfXJldHVybiBofWNvbnN0IFpx''@;'; + put 'put ''PXt9LGRqZT0vXlteOl0rOlwvKlteL10qJC8scGplPS9eKFteOl0rOilbXHNcU10qJC8sZ2plPS9eKFteOl0rOlwvKlteL10qKVtcc1xTXSokLyx6cT17ZXhlYzpmdW5jdGlvbigpe319O2Z1bmN0aW9uIHc4KGQpe2xldCBoLHYsZz0xO2Zvcig7Zzxhcmd1bWVudHMubGVuZ3RoO2crKylmb3Io''@;'; + put 'put ''diBpbiBoPWFyZ3VtZW50c1tnXSxoKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoLHYpJiYoZFt2XT1oW3ZdKTtyZXR1cm4gZH1mdW5jdGlvbiBVd2UoZCxnKXtjb25zdCB2PWQucmVwbGFjZSgvXHwvZywoQyxJLGopPT57bGV0IHVlPSExLF9lPUk7Zm9yKDstLV9lPj0w''@;'; + put 'put ''JiYiXFwiPT09altfZV07KXVlPSF1ZTtyZXR1cm4gdWU/InwiOiIgfCJ9KS5zcGxpdCgvIFx8Lyk7bGV0IHk9MDtpZih2WzBdLnRyaW0oKXx8di5zaGlmdCgpLHYubGVuZ3RoPjAmJiF2W3YubGVuZ3RoLTFdLnRyaW0oKSYmdi5wb3AoKSx2Lmxlbmd0aD5nKXYuc3BsaWNlKGcpO2Vsc2UgZm9y''@;'; + put 'put ''KDt2Lmxlbmd0aDxnOyl2LnB1c2goIiIpO2Zvcig7eTx2Lmxlbmd0aDt5Kyspdlt5XT12W3ldLnRyaW0oKS5yZXBsYWNlKC9cXFx8L2csInwiKTtyZXR1cm4gdn1mdW5jdGlvbiBHcShkLGcsaCl7Y29uc3Qgdj1kLmxlbmd0aDtpZigwPT09dilyZXR1cm4iIjtsZXQgeT0wO2Zvcig7eTx2Oyl7''@;'; + put 'put ''Y29uc3QgQz1kLmNoYXJBdCh2LXktMSk7aWYoQyE9PWd8fGgpe2lmKEM9PT1nfHwhaClicmVhazt5Kyt9ZWxzZSB5Kyt9cmV0dXJuIGQuc2xpY2UoMCx2LXkpfWZ1bmN0aW9uIFF3ZShkKXtkJiZkLnNhbml0aXplJiYhZC5zaWxlbnQmJmNvbnNvbGUud2FybigibWFya2VkKCk6IHNhbml0aXpl''@;'; + put 'put ''IGFuZCBzYW5pdGl6ZXIgcGFyYW1ldGVycyBhcmUgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuNy4wLCBzaG91bGQgbm90IGJlIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBSZWFkIG1vcmUgaGVyZTogaHR0cHM6Ly9tYXJrZWQuanMub3JnLyMvVVNJTkdfQURW''@;'; + put 'put ''QU5DRUQubWQjb3B0aW9ucyIpfWZ1bmN0aW9uIEp3ZShkLGcpe2lmKGc8MSlyZXR1cm4iIjtsZXQgaD0iIjtmb3IoO2c+MTspMSZnJiYoaCs9ZCksZz4+PTEsZCs9ZDtyZXR1cm4gaCtkfWZ1bmN0aW9uIFh3ZShkLGcsaCx2KXtjb25zdCB5PWcuaHJlZixDPWcudGl0bGU/bmYoZy50aXRsZSk6''@;'; + put 'put ''bnVsbCxJPWRbMV0ucmVwbGFjZSgvXFwoW1xbXF1dKS9nLCIkMSIpO2lmKCIhIiE9PWRbMF0uY2hhckF0KDApKXt2LnN0YXRlLmluTGluaz0hMDtjb25zdCBqPXt0eXBlOiJsaW5rIixyYXc6aCxocmVmOnksdGl0bGU6Qyx0ZXh0OkksdG9rZW5zOnYuaW5saW5lVG9rZW5zKEksW10pfTtyZXR1''@;'; + put 'put ''cm4gdi5zdGF0ZS5pbkxpbms9ITEsan1yZXR1cm57dHlwZToiaW1hZ2UiLHJhdzpoLGhyZWY6eSx0aXRsZTpDLHRleHQ6bmYoSSl9fWNsYXNzIEZoZXtjb25zdHJ1Y3RvcihnKXt0aGlzLm9wdGlvbnM9Z3x8Skx9c3BhY2UoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmJsb2NrLm5ld2xpbmUuZXhl''@;'; + put 'put ''YyhnKTtpZihoJiZoWzBdLmxlbmd0aD4wKXJldHVybnt0eXBlOiJzcGFjZSIscmF3OmhbMF19fWNvZGUoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmJsb2NrLmNvZGUuZXhlYyhnKTtpZihoKXtjb25zdCB2PWhbMF0ucmVwbGFjZSgvXiB7MSw0fS9nbSwiIik7cmV0dXJue3R5cGU6ImNvZGUiLHJh''@;'; + put 'put ''dzpoWzBdLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsdGV4dDp0aGlzLm9wdGlvbnMucGVkYW50aWM/djpHcSh2LCJcbiIpfX19ZmVuY2VzKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5ibG9jay5mZW5jZXMuZXhlYyhnKTtpZihoKXtjb25zdCB2PWhbMF0seT1mdW5jdGlvbiBBamUoZCxnKXtj''@;'; + put 'put ''b25zdCBoPWQubWF0Y2goL14oXHMrKSg/OmBgYCkvKTtpZihudWxsPT09aClyZXR1cm4gZztjb25zdCB2PWhbMV07cmV0dXJuIGcuc3BsaXQoIlxuIikubWFwKHk9Pntjb25zdCBDPXkubWF0Y2goL15ccysvKTtpZihudWxsPT09QylyZXR1cm4geTtjb25zdFtJXT1DO3JldHVybiBJLmxlbmd0''@;'; + put 'put ''aD49di5sZW5ndGg/eS5zbGljZSh2Lmxlbmd0aCk6eX0pLmpvaW4oIlxuIil9KHYsaFszXXx8IiIpO3JldHVybnt0eXBlOiJjb2RlIixyYXc6dixsYW5nOmhbMl0/aFsyXS50cmltKCk6aFsyXSx0ZXh0Onl9fX1oZWFkaW5nKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5ibG9jay5oZWFkaW5nLmV4''@;'; + put 'put ''ZWMoZyk7aWYoaCl7bGV0IHY9aFsyXS50cmltKCk7aWYoLyMkLy50ZXN0KHYpKXtjb25zdCBDPUdxKHYsIiMiKTsodGhpcy5vcHRpb25zLnBlZGFudGljfHwhQ3x8LyAkLy50ZXN0KEMpKSYmKHY9Qy50cmltKCkpfWNvbnN0IHk9e3R5cGU6ImhlYWRpbmciLHJhdzpoWzBdLGRlcHRoOmhbMV0u''@;'; + put 'put ''bGVuZ3RoLHRleHQ6dix0b2tlbnM6W119O3JldHVybiB0aGlzLmxleGVyLmlubGluZSh5LnRleHQseS50b2tlbnMpLHl9fWhyKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5ibG9jay5oci5leGVjKGcpO2lmKGgpcmV0dXJue3R5cGU6ImhyIixyYXc6aFswXX19YmxvY2txdW90ZShnKXtjb25zdCBo''@;'; + put 'put ''PXRoaXMucnVsZXMuYmxvY2suYmxvY2txdW90ZS5leGVjKGcpO2lmKGgpe2NvbnN0IHY9aFswXS5yZXBsYWNlKC9eICo+WyBcdF0/L2dtLCIiKTtyZXR1cm57dHlwZToiYmxvY2txdW90ZSIscmF3OmhbMF0sdG9rZW5zOnRoaXMubGV4ZXIuYmxvY2tUb2tlbnModixbXSksdGV4dDp2fX19bGlz''@;'; + put 'put ''dChnKXtsZXQgaD10aGlzLnJ1bGVzLmJsb2NrLmxpc3QuZXhlYyhnKTtpZihoKXtsZXQgdix5LEMsSSxqLHVlLF9lLEJlLE5lLEtlLGR0LE90LCR0PWhbMV0udHJpbSgpO2NvbnN0IGZuPSR0Lmxlbmd0aD4xLExuPXt0eXBlOiJsaXN0IixyYXc6IiIsb3JkZXJlZDpmbixzdGFydDpmbj8rJHQu''@;'; + put 'put ''c2xpY2UoMCwtMSk6IiIsbG9vc2U6ITEsaXRlbXM6W119OyR0PWZuP2BcXGR7MSw5fVxcJHskdC5zbGljZSgtMSl9YDpgXFwkeyR0fWAsdGhpcy5vcHRpb25zLnBlZGFudGljJiYoJHQ9Zm4/JHQ6IlsqKy1dIik7Y29uc3QgaXI9bmV3IFJlZ0V4cChgXiggezAsM30keyR0fSkoKD86W1x0IF1b''@;'; + put 'put ''Xlxcbl0qKT8oPzpcXG58JCkpYCk7Zm9yKDtnJiYoT3Q9ITEsKGg9aXIuZXhlYyhnKSkmJiF0aGlzLnJ1bGVzLmJsb2NrLmhyLnRlc3QoZykpOyl7aWYodj1oWzBdLGc9Zy5zdWJzdHJpbmcodi5sZW5ndGgpLEJlPWhbMl0uc3BsaXQoIlxuIiwxKVswXSxOZT1nLnNwbGl0KCJcbiIsMSlbMF0s''@;'; + put 'put ''dGhpcy5vcHRpb25zLnBlZGFudGljPyhJPTIsZHQ9QmUudHJpbUxlZnQoKSk6KEk9aFsyXS5zZWFyY2goL1teIF0vKSxJPUk+ND8xOkksZHQ9QmUuc2xpY2UoSSksSSs9aFsxXS5sZW5ndGgpLHVlPSExLCFCZSYmL14gKiQvLnRlc3QoTmUpJiYodis9TmUrIlxuIixnPWcuc3Vic3RyaW5nKE5l''@;'; + put 'put ''Lmxlbmd0aCsxKSxPdD0hMCksIU90KXtjb25zdCBTcj1uZXcgUmVnRXhwKGBeIHswLCR7TWF0aC5taW4oMyxJLTEpfX0oPzpbKistXXxcXGR7MSw5fVsuKV0pKCg/OiBbXlxcbl0qKT8oPzpcXG58JCkpYCksd3I9bmV3IFJlZ0V4cChgXiB7MCwke01hdGgubWluKDMsSS0xKX19KCg/Oi0gKil7''@;'; + put 'put ''Myx9fCg/Ol8gKil7Myx9fCg/OlxcKiAqKXszLH0pKD86XFxuK3wkKWApLFFyPW5ldyBSZWdFeHAoYF4gezAsJHtNYXRoLm1pbigzLEktMSl9fSg/OlxgXGBcYHx+fn4pYCkseWk9bmV3IFJlZ0V4cChgXiB7MCwke01hdGgubWluKDMsSS0xKX19I2ApO2Zvcig7ZyYmKEtlPWcuc3BsaXQoIlxu''@;'; + put 'put ''IiwxKVswXSxCZT1LZSx0aGlzLm9wdGlvbnMucGVkYW50aWMmJihCZT1CZS5yZXBsYWNlKC9eIHsxLDR9KD89KCB7NH0pKlteIF0pL2csIiAgIikpLCEoUXIudGVzdChCZSl8fHlpLnRlc3QoQmUpfHxTci50ZXN0KEJlKXx8d3IudGVzdChnKSkpOyl7aWYoQmUuc2VhcmNoKC9bXiBdLyk+PUl8''@;'; + put 'put ''fCFCZS50cmltKCkpZHQrPSJcbiIrQmUuc2xpY2UoSSk7ZWxzZXtpZih1ZSlicmVhaztkdCs9IlxuIitCZX0hdWUmJiFCZS50cmltKCkmJih1ZT0hMCksdis9S2UrIlxuIixnPWcuc3Vic3RyaW5nKEtlLmxlbmd0aCsxKX19TG4ubG9vc2V8fChfZT9Mbi5sb29zZT0hMDovXG4gKlxuICokLy50''@;'; + put 'put ''ZXN0KHYpJiYoX2U9ITApKSx0aGlzLm9wdGlvbnMuZ2ZtJiYoeT0vXlxbWyB4WF1cXSAvLmV4ZWMoZHQpLHkmJihDPSJbIF0gIiE9PXlbMF0sZHQ9ZHQucmVwbGFjZSgvXlxbWyB4WF1cXSArLywiIikpKSxMbi5pdGVtcy5wdXNoKHt0eXBlOiJsaXN0X2l0ZW0iLHJhdzp2LHRhc2s6ISF5LGNo''@;'; + put 'put ''ZWNrZWQ6Qyxsb29zZTohMSx0ZXh0OmR0fSksTG4ucmF3Kz12fUxuLml0ZW1zW0xuLml0ZW1zLmxlbmd0aC0xXS5yYXc9di50cmltUmlnaHQoKSxMbi5pdGVtc1tMbi5pdGVtcy5sZW5ndGgtMV0udGV4dD1kdC50cmltUmlnaHQoKSxMbi5yYXc9TG4ucmF3LnRyaW1SaWdodCgpO2NvbnN0IG1y''@;'; + put 'put ''PUxuLml0ZW1zLmxlbmd0aDtmb3Ioaj0wO2o8bXI7aisrKXt0aGlzLmxleGVyLnN0YXRlLnRvcD0hMSxMbi5pdGVtc1tqXS50b2tlbnM9dGhpcy5sZXhlci5ibG9ja1Rva2VucyhMbi5pdGVtc1tqXS50ZXh0LFtdKTtjb25zdCBTcj1Mbi5pdGVtc1tqXS50b2tlbnMuZmlsdGVyKFFyPT4ic3Bh''@;'; + put 'put ''Y2UiPT09UXIudHlwZSksd3I9U3IuZXZlcnkoUXI9Pntjb25zdCB5aT1Rci5yYXcuc3BsaXQoIiIpO2xldCBLaT0wO2Zvcihjb25zdCBTbyBvZiB5aSlpZigiXG4iPT09U28mJihLaSs9MSksS2k+MSlyZXR1cm4hMDtyZXR1cm4hMX0pOyFMbi5sb29zZSYmU3IubGVuZ3RoJiZ3ciYmKExuLmxv''@;'; + put 'put ''b3NlPSEwLExuLml0ZW1zW2pdLmxvb3NlPSEwKX1yZXR1cm4gTG59fWh0bWwoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmJsb2NrLmh0bWwuZXhlYyhnKTtpZihoKXtjb25zdCB2PXt0eXBlOiJodG1sIixyYXc6aFswXSxwcmU6IXRoaXMub3B0aW9ucy5zYW5pdGl6ZXImJigicHJlIj09PWhbMV18''@;'; + put 'put ''fCJzY3JpcHQiPT09aFsxXXx8InN0eWxlIj09PWhbMV0pLHRleHQ6aFswXX07cmV0dXJuIHRoaXMub3B0aW9ucy5zYW5pdGl6ZSYmKHYudHlwZT0icGFyYWdyYXBoIix2LnRleHQ9dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKGhbMF0pOm5mKGhbMF0pLHYu''@;'; + put 'put ''dG9rZW5zPVtdLHRoaXMubGV4ZXIuaW5saW5lKHYudGV4dCx2LnRva2VucykpLHZ9fWRlZihnKXtjb25zdCBoPXRoaXMucnVsZXMuYmxvY2suZGVmLmV4ZWMoZyk7aWYoaClyZXR1cm4gaFszXSYmKGhbM109aFszXS5zdWJzdHJpbmcoMSxoWzNdLmxlbmd0aC0xKSkse3R5cGU6ImRlZiIsdGFn''@;'; + put 'put ''OmhbMV0udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccysvZywiICIpLHJhdzpoWzBdLGhyZWY6aFsyXSx0aXRsZTpoWzNdfX10YWJsZShnKXtjb25zdCBoPXRoaXMucnVsZXMuYmxvY2sudGFibGUuZXhlYyhnKTtpZihoKXtjb25zdCB2PXt0eXBlOiJ0YWJsZSIsaGVhZGVyOlV3ZShoWzFdKS5t''@;'; + put 'put ''YXAoeT0+KHt0ZXh0Onl9KSksYWxpZ246aFsyXS5yZXBsYWNlKC9eICp8XHwgKiQvZywiIikuc3BsaXQoLyAqXHwgKi8pLHJvd3M6aFszXSYmaFszXS50cmltKCk/aFszXS5yZXBsYWNlKC9cblsgXHRdKiQvLCIiKS5zcGxpdCgiXG4iKTpbXX07aWYodi5oZWFkZXIubGVuZ3RoPT09di5hbGln''@;'; + put 'put ''bi5sZW5ndGgpe3YucmF3PWhbMF07bGV0IEMsSSxqLHVlLHk9di5hbGlnbi5sZW5ndGg7Zm9yKEM9MDtDPHk7QysrKXYuYWxpZ25bQ109L14gKi0rOiAqJC8udGVzdCh2LmFsaWduW0NdKT8icmlnaHQiOi9eICo6LSs6ICokLy50ZXN0KHYuYWxpZ25bQ10pPyJjZW50ZXIiOi9eICo6LSsgKiQv''@;'; + put 'put ''LnRlc3Qodi5hbGlnbltDXSk/ImxlZnQiOm51bGw7Zm9yKHk9di5yb3dzLmxlbmd0aCxDPTA7Qzx5O0MrKyl2LnJvd3NbQ109VXdlKHYucm93c1tDXSx2LmhlYWRlci5sZW5ndGgpLm1hcChfZT0+KHt0ZXh0Ol9lfSkpO2Zvcih5PXYuaGVhZGVyLmxlbmd0aCxJPTA7STx5O0krKyl2LmhlYWRl''@;'; + put 'put ''cltJXS50b2tlbnM9W10sdGhpcy5sZXhlci5pbmxpbmUodi5oZWFkZXJbSV0udGV4dCx2LmhlYWRlcltJXS50b2tlbnMpO2Zvcih5PXYucm93cy5sZW5ndGgsST0wO0k8eTtJKyspZm9yKHVlPXYucm93c1tJXSxqPTA7ajx1ZS5sZW5ndGg7aisrKXVlW2pdLnRva2Vucz1bXSx0aGlzLmxleGVy''@;'; + put 'put ''LmlubGluZSh1ZVtqXS50ZXh0LHVlW2pdLnRva2Vucyk7cmV0dXJuIHZ9fX1saGVhZGluZyhnKXtjb25zdCBoPXRoaXMucnVsZXMuYmxvY2subGhlYWRpbmcuZXhlYyhnKTtpZihoKXtjb25zdCB2PXt0eXBlOiJoZWFkaW5nIixyYXc6aFswXSxkZXB0aDoiPSI9PT1oWzJdLmNoYXJBdCgwKT8x''@;'; + put 'put ''OjIsdGV4dDpoWzFdLHRva2VuczpbXX07cmV0dXJuIHRoaXMubGV4ZXIuaW5saW5lKHYudGV4dCx2LnRva2Vucyksdn19cGFyYWdyYXBoKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5ibG9jay5wYXJhZ3JhcGguZXhlYyhnKTtpZihoKXtjb25zdCB2PXt0eXBlOiJwYXJhZ3JhcGgiLHJhdzpoWzBd''@;'; + put 'put ''LHRleHQ6IlxuIj09PWhbMV0uY2hhckF0KGhbMV0ubGVuZ3RoLTEpP2hbMV0uc2xpY2UoMCwtMSk6aFsxXSx0b2tlbnM6W119O3JldHVybiB0aGlzLmxleGVyLmlubGluZSh2LnRleHQsdi50b2tlbnMpLHZ9fXRleHQoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmJsb2NrLnRleHQuZXhlYyhnKTtp''@;'; + put 'put ''ZihoKXtjb25zdCB2PXt0eXBlOiJ0ZXh0IixyYXc6aFswXSx0ZXh0OmhbMF0sdG9rZW5zOltdfTtyZXR1cm4gdGhpcy5sZXhlci5pbmxpbmUodi50ZXh0LHYudG9rZW5zKSx2fX1lc2NhcGUoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmlubGluZS5lc2NhcGUuZXhlYyhnKTtpZihoKXJldHVybnt0''@;'; + put 'put ''eXBlOiJlc2NhcGUiLHJhdzpoWzBdLHRleHQ6bmYoaFsxXSl9fXRhZyhnKXtjb25zdCBoPXRoaXMucnVsZXMuaW5saW5lLnRhZy5leGVjKGcpO2lmKGgpcmV0dXJuIXRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rJiYvXjxhIC9pLnRlc3QoaFswXSk/dGhpcy5sZXhlci5zdGF0ZS5pbkxpbms9ITA6''@;'; + put 'put ''dGhpcy5sZXhlci5zdGF0ZS5pbkxpbmsmJi9ePFwvYT4vaS50ZXN0KGhbMF0pJiYodGhpcy5sZXhlci5zdGF0ZS5pbkxpbms9ITEpLCF0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePChwcmV8Y29kZXxrYmR8c2NyaXB0KShcc3w+KS9pLnRlc3QoaFswXSk/dGhpcy5sZXhlci5zdGF0''@;'; + put 'put ''ZS5pblJhd0Jsb2NrPSEwOnRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jayYmL148XC8ocHJlfGNvZGV8a2JkfHNjcmlwdCkoXHN8PikvaS50ZXN0KGhbMF0pJiYodGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrPSExKSx7dHlwZTp0aGlzLm9wdGlvbnMuc2FuaXRpemU/InRleHQiOiJodG1s''@;'; + put 'put ''IixyYXc6aFswXSxpbkxpbms6dGhpcy5sZXhlci5zdGF0ZS5pbkxpbmssaW5SYXdCbG9jazp0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2ssdGV4dDp0aGlzLm9wdGlvbnMuc2FuaXRpemU/dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKGhbMF0pOm5mKGhb''@;'; + put 'put ''MF0pOmhbMF19fWxpbmsoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmlubGluZS5saW5rLmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj1oWzJdLnRyaW0oKTtpZighdGhpcy5vcHRpb25zLnBlZGFudGljJiYvXjwvLnRlc3Qodikpe2lmKCEvPiQvLnRlc3QodikpcmV0dXJuO2NvbnN0IEk9R3Eodi5zbGlj''@;'; + put 'put ''ZSgwLC0xKSwiXFwiKTtpZigodi5sZW5ndGgtSS5sZW5ndGgpJTI9PTApcmV0dXJufWVsc2V7Y29uc3QgST1mdW5jdGlvbiB2amUoZCxnKXtpZigtMT09PWQuaW5kZXhPZihnWzFdKSlyZXR1cm4tMTtjb25zdCBoPWQubGVuZ3RoO2xldCB2PTAseT0wO2Zvcig7eTxoO3krKylpZigiXFwiPT09''@;'; + put 'put ''ZFt5XSl5Kys7ZWxzZSBpZihkW3ldPT09Z1swXSl2Kys7ZWxzZSBpZihkW3ldPT09Z1sxXSYmKHYtLSx2PDApKXJldHVybiB5O3JldHVybi0xfShoWzJdLCIoKSIpO2lmKEk+LTEpe2NvbnN0IHVlPSgwPT09aFswXS5pbmRleE9mKCIhIik/NTo0KStoWzFdLmxlbmd0aCtJO2hbMl09aFsyXS5z''@;'; + put 'put ''dWJzdHJpbmcoMCxJKSxoWzBdPWhbMF0uc3Vic3RyaW5nKDAsdWUpLnRyaW0oKSxoWzNdPSIifX1sZXQgeT1oWzJdLEM9IiI7aWYodGhpcy5vcHRpb25zLnBlZGFudGljKXtjb25zdCBJPS9eKFteJyJdKlteXHNdKVxzKyhbJyJdKSguKilcMi8uZXhlYyh5KTtJJiYoeT1JWzFdLEM9SVszXSl9''@;'; + put 'put ''ZWxzZSBDPWhbM10/aFszXS5zbGljZSgxLC0xKToiIjtyZXR1cm4geT15LnRyaW0oKSwvXjwvLnRlc3QoeSkmJih5PXRoaXMub3B0aW9ucy5wZWRhbnRpYyYmIS8+JC8udGVzdCh2KT95LnNsaWNlKDEpOnkuc2xpY2UoMSwtMSkpLFh3ZShoLHtocmVmOnkmJnkucmVwbGFjZSh0aGlzLnJ1bGVz''@;'; + put 'put ''LmlubGluZS5fZXNjYXBlcywiJDEiKSx0aXRsZTpDJiZDLnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQxIil9LGhbMF0sdGhpcy5sZXhlcil9fXJlZmxpbmsoZyxoKXtsZXQgdjtpZigodj10aGlzLnJ1bGVzLmlubGluZS5yZWZsaW5rLmV4ZWMoZykpfHwodj10aGlzLnJ1''@;'; + put 'put ''bGVzLmlubGluZS5ub2xpbmsuZXhlYyhnKSkpe2xldCB5PSh2WzJdfHx2WzFdKS5yZXBsYWNlKC9ccysvZywiICIpO2lmKHk9aFt5LnRvTG93ZXJDYXNlKCldLCF5fHwheS5ocmVmKXtjb25zdCBDPXZbMF0uY2hhckF0KDApO3JldHVybnt0eXBlOiJ0ZXh0IixyYXc6Qyx0ZXh0OkN9fXJldHVy''@;'; + put 'put ''biBYd2Uodix5LHZbMF0sdGhpcy5sZXhlcil9fWVtU3Ryb25nKGcsaCx2PSIiKXtsZXQgeT10aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZy5sRGVsaW0uZXhlYyhnKTtpZigheXx8eVszXSYmdi5tYXRjaCgvW1xwe0x9XHB7Tn1dL3UpKXJldHVybjtjb25zdCBDPXlbMV18fHlbMl18fCIiO2lm''@;'; + put 'put ''KCFDfHxDJiYoIiI9PT12fHx0aGlzLnJ1bGVzLmlubGluZS5wdW5jdHVhdGlvbi5leGVjKHYpKSl7Y29uc3QgST15WzBdLmxlbmd0aC0xO2xldCBqLHVlLF9lPUksQmU9MDtjb25zdCBOZT0iKiI9PT15WzBdWzBdP3RoaXMucnVsZXMuaW5saW5lLmVtU3Ryb25nLnJEZWxpbUFzdDp0aGlzLnJ1''@;'; + put 'put ''bGVzLmlubGluZS5lbVN0cm9uZy5yRGVsaW1VbmQ7Zm9yKE5lLmxhc3RJbmRleD0wLGg9aC5zbGljZSgtMSpnLmxlbmd0aCtJKTtudWxsIT0oeT1OZS5leGVjKGgpKTspe2lmKGo9eVsxXXx8eVsyXXx8eVszXXx8eVs0XXx8eVs1XXx8eVs2XSwhailjb250aW51ZTtpZih1ZT1qLmxlbmd0aCx5''@;'; + put 'put ''WzNdfHx5WzRdKXtfZSs9dWU7Y29udGludWV9aWYoKHlbNV18fHlbNl0pJiZJJTMmJiEoKEkrdWUpJTMpKXtCZSs9dWU7Y29udGludWV9aWYoX2UtPXVlLF9lPjApY29udGludWU7aWYodWU9TWF0aC5taW4odWUsdWUrX2UrQmUpLE1hdGgubWluKEksdWUpJTIpe2NvbnN0IGR0PWcuc2xpY2Uo''@;'; + put 'put ''MSxJK3kuaW5kZXgrdWUpO3JldHVybnt0eXBlOiJlbSIscmF3Omcuc2xpY2UoMCxJK3kuaW5kZXgrdWUrMSksdGV4dDpkdCx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVUb2tlbnMoZHQsW10pfX1jb25zdCBLZT1nLnNsaWNlKDIsSSt5LmluZGV4K3VlLTEpO3JldHVybnt0eXBlOiJzdHJvbmci''@;'; + put 'put ''LHJhdzpnLnNsaWNlKDAsSSt5LmluZGV4K3VlKzEpLHRleHQ6S2UsdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKEtlLFtdKX19fX1jb2Rlc3BhbihnKXtjb25zdCBoPXRoaXMucnVsZXMuaW5saW5lLmNvZGUuZXhlYyhnKTtpZihoKXtsZXQgdj1oWzJdLnJlcGxhY2UoL1xuL2csIiAi''@;'; + put 'put ''KTtjb25zdCB5PS9bXiBdLy50ZXN0KHYpLEM9L14gLy50ZXN0KHYpJiYvICQvLnRlc3Qodik7cmV0dXJuIHkmJkMmJih2PXYuc3Vic3RyaW5nKDEsdi5sZW5ndGgtMSkpLHY9bmYodiwhMCkse3R5cGU6ImNvZGVzcGFuIixyYXc6aFswXSx0ZXh0OnZ9fX1icihnKXtjb25zdCBoPXRoaXMucnVs''@;'; + put 'put ''ZXMuaW5saW5lLmJyLmV4ZWMoZyk7aWYoaClyZXR1cm57dHlwZToiYnIiLHJhdzpoWzBdfX1kZWwoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmlubGluZS5kZWwuZXhlYyhnKTtpZihoKXJldHVybnt0eXBlOiJkZWwiLHJhdzpoWzBdLHRleHQ6aFsyXSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVU''@;'; + put 'put ''b2tlbnMoaFsyXSxbXSl9fWF1dG9saW5rKGcsaCl7Y29uc3Qgdj10aGlzLnJ1bGVzLmlubGluZS5hdXRvbGluay5leGVjKGcpO2lmKHYpe2xldCB5LEM7cmV0dXJuIkAiPT09dlsyXT8oeT1uZih0aGlzLm9wdGlvbnMubWFuZ2xlP2godlsxXSk6dlsxXSksQz0ibWFpbHRvOiIreSk6KHk9bmYo''@;'; + put 'put ''dlsxXSksQz15KSx7dHlwZToibGluayIscmF3OnZbMF0sdGV4dDp5LGhyZWY6Qyx0b2tlbnM6W3t0eXBlOiJ0ZXh0IixyYXc6eSx0ZXh0Onl9XX19fXVybChnLGgpe2xldCB2O2lmKHY9dGhpcy5ydWxlcy5pbmxpbmUudXJsLmV4ZWMoZykpe2xldCB5LEM7aWYoIkAiPT09dlsyXSl5PW5mKHRo''@;'; + put 'put ''aXMub3B0aW9ucy5tYW5nbGU/aCh2WzBdKTp2WzBdKSxDPSJtYWlsdG86Iit5O2Vsc2V7bGV0IEk7ZG97ST12WzBdLHZbMF09dGhpcy5ydWxlcy5pbmxpbmUuX2JhY2twZWRhbC5leGVjKHZbMF0pWzBdfXdoaWxlKEkhPT12WzBdKTt5PW5mKHZbMF0pLEM9Ind3dy4iPT09dlsxXT8iaHR0cDov''@;'; + put 'put ''LyIreTp5fXJldHVybnt0eXBlOiJsaW5rIixyYXc6dlswXSx0ZXh0OnksaHJlZjpDLHRva2Vuczpbe3R5cGU6InRleHQiLHJhdzp5LHRleHQ6eX1dfX19aW5saW5lVGV4dChnLGgpe2NvbnN0IHY9dGhpcy5ydWxlcy5pbmxpbmUudGV4dC5leGVjKGcpO2lmKHYpe2xldCB5O3JldHVybiB5PXRo''@;'; + put 'put ''aXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz90aGlzLm9wdGlvbnMuc2FuaXRpemU/dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKHZbMF0pOm5mKHZbMF0pOnZbMF06bmYodGhpcy5vcHRpb25zLnNtYXJ0eXBhbnRzP2godlswXSk6dlswXSkse3R5cGU6InRl''@;'; + put 'put ''eHQiLHJhdzp2WzBdLHRleHQ6eX19fX1jb25zdCBQYT17bmV3bGluZTovXig/OiAqKD86XG58JCkpKy8sY29kZTovXiggezR9W15cbl0rKD86XG4oPzogKig/OlxufCQpKSopPykrLyxmZW5jZXM6L14gezAsM30oYHszLH0oPz1bXmBcbl0qXG4pfH57Myx9KShbXlxuXSopXG4oPzp8KFtcc1xT''@;'; + put 'put ''XSo/KVxuKSg/OiB7MCwzfVwxW35gXSogKig/PVxufCQpfCQpLyxocjovXiB7MCwzfSgoPzotW1x0IF0qKXszLH18KD86X1sgXHRdKil7Myx9fCg/OlwqWyBcdF0qKXszLH0pKD86XG4rfCQpLyxoZWFkaW5nOi9eIHswLDN9KCN7MSw2fSkoPz1cc3wkKSguKikoPzpcbit8JCkvLGJsb2NrcXVv''@;'; + put 'put ''dGU6L14oIHswLDN9PiA/KHBhcmFncmFwaHxbXlxuXSopKD86XG58JCkpKy8sbGlzdDovXiggezAsM31idWxsKShbIFx0XVteXG5dKz8pPyg/OlxufCQpLyxodG1sOiJeIHswLDN9KD86PChzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKVtcXHM+XVtcXHNcXFNdKj8oPzo8L1xcMT5bXlxcbl0q''@;'; + put 'put ''XFxuK3wkKXxjb21tZW50W15cXG5dKihcXG4rfCQpfDxcXD9bXFxzXFxTXSo/KD86XFw/Plxcbip8JCl8PCFbQS1aXVtcXHNcXFNdKj8oPzo+XFxuKnwkKXw8IVxcW0NEQVRBXFxbW1xcc1xcU10qPyg/OlxcXVxcXT5cXG4qfCQpfDwvPyh0YWcpKD86ICt8XFxufC8/PilbXFxzXFxTXSo/KD86''@;'; + put 'put ''KD86XFxuICopK1xcbnwkKXw8KD8hc2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYSkoW2Etel1bXFx3LV0qKSg/OmF0dHJpYnV0ZSkqPyAqLz8+KD89WyBcXHRdKig/OlxcbnwkKSlbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKXw8Lyg/IXNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpW2Et''@;'; + put 'put ''el1bXFx3LV0qXFxzKj4oPz1bIFxcdF0qKD86XFxufCQpKVtcXHNcXFNdKj8oPzooPzpcXG4gKikrXFxufCQpKSIsZGVmOi9eIHswLDN9XFsobGFiZWwpXF06ICooPzpcbiAqKT88PyhbXlxzPl0rKT4/KD86KD86ICsoPzpcbiAqKT98ICpcbiAqKSh0aXRsZSkpPyAqKD86XG4rfCQpLyx0YWJs''@;'; + put 'put ''ZTp6cSxsaGVhZGluZzovXihbXlxuXSspXG4gezAsM30oPSt8LSspICooPzpcbit8JCkvLF9wYXJhZ3JhcGg6L14oW15cbl0rKD86XG4oPyFocnxoZWFkaW5nfGxoZWFkaW5nfGJsb2NrcXVvdGV8ZmVuY2VzfGxpc3R8aHRtbHx0YWJsZXwgK1xuKVteXG5dKykqKS8sdGV4dDovXlteXG5dKy8s''@;'; + put 'put ''X2xhYmVsOi8oPyFccypcXSkoPzpcXC58W15cW1xdXFxdKSsvLF90aXRsZTovKD86Iig/OlxcIj98W14iXFxdKSoifCdbXidcbl0qKD86XG5bXidcbl0rKSpcbj8nfFwoW14oKV0qXCkpL307UGEuZGVmPVcyKFBhLmRlZikucmVwbGFjZSgibGFiZWwiLFBhLl9sYWJlbCkucmVwbGFjZSgidGl0''@;'; + put 'put ''bGUiLFBhLl90aXRsZSkuZ2V0UmVnZXgoKSxQYS5idWxsZXQ9Lyg/OlsqKy1dfFxkezEsOX1bLildKS8sUGEubGlzdEl0ZW1TdGFydD1XMigvXiggKikoYnVsbCkgKi8pLnJlcGxhY2UoImJ1bGwiLFBhLmJ1bGxldCkuZ2V0UmVnZXgoKSxQYS5saXN0PVcyKFBhLmxpc3QpLnJlcGxhY2UoL2J1''@;'; + put 'put ''bGwvZyxQYS5idWxsZXQpLnJlcGxhY2UoImhyIiwiXFxuKyg/PVxcMT8oPzooPzotICopezMsfXwoPzpfICopezMsfXwoPzpcXCogKil7Myx9KSg/Olxcbit8JCkpIikucmVwbGFjZSgiZGVmIiwiXFxuKyg/PSIrUGEuZGVmLnNvdXJjZSsiKSIpLmdldFJlZ2V4KCksUGEuX3RhZz0iYWRkcmVz''@;'; + put 'put ''c3xhcnRpY2xlfGFzaWRlfGJhc2V8YmFzZWZvbnR8YmxvY2txdW90ZXxib2R5fGNhcHRpb258Y2VudGVyfGNvbHxjb2xncm91cHxkZHxkZXRhaWxzfGRpYWxvZ3xkaXJ8ZGl2fGRsfGR0fGZpZWxkc2V0fGZpZ2NhcHRpb258ZmlndXJlfGZvb3Rlcnxmb3JtfGZyYW1lfGZyYW1lc2V0fGhbMS02''@;'; + put 'put ''XXxoZWFkfGhlYWRlcnxocnxodG1sfGlmcmFtZXxsZWdlbmR8bGl8bGlua3xtYWlufG1lbnV8bWVudWl0ZW18bWV0YXxuYXZ8bm9mcmFtZXN8b2x8b3B0Z3JvdXB8b3B0aW9ufHB8cGFyYW18c2VjdGlvbnxzb3VyY2V8c3VtbWFyeXx0YWJsZXx0Ym9keXx0ZHx0Zm9vdHx0aHx0aGVhZHx0aXRs''@;'; + put 'put ''ZXx0cnx0cmFja3x1bCIsUGEuX2NvbW1lbnQ9LzwhLS0oPyEtPz4pW1xzXFNdKj8oPzotLT58JCkvLFBhLmh0bWw9VzIoUGEuaHRtbCwiaSIpLnJlcGxhY2UoImNvbW1lbnQiLFBhLl9jb21tZW50KS5yZXBsYWNlKCJ0YWciLFBhLl90YWcpLnJlcGxhY2UoImF0dHJpYnV0ZSIsLyArW2EtekEt''@;'; + put 'put ''WjpfXVtcdy46LV0qKD86ICo9ICoiW14iXG5dKiJ8ICo9IConW14nXG5dKid8ICo9ICpbXlxzIic9PD5gXSspPy8pLmdldFJlZ2V4KCksUGEucGFyYWdyYXBoPVcyKFBhLl9wYXJhZ3JhcGgpLnJlcGxhY2UoImhyIixQYS5ocikucmVwbGFjZSgiaGVhZGluZyIsIiB7MCwzfSN7MSw2fSAiKS5y''@;'; + put 'put ''ZXBsYWNlKCJ8bGhlYWRpbmciLCIiKS5yZXBsYWNlKCJ8dGFibGUiLCIiKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxuXSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBsYWNlKCJsaXN0IiwiIHswLDN9''@;'; + put 'put ''KD86WyorLV18MVsuKV0pICIpLnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86ICt8XFxufC8/Pil8PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIsUGEuX3RhZykuZ2V0UmVnZXgoKSxQYS5ibG9ja3F1b3RlPVcyKFBhLmJsb2NrcXVvdGUpLnJl''@;'; + put 'put ''cGxhY2UoInBhcmFncmFwaCIsUGEucGFyYWdyYXBoKS5nZXRSZWdleCgpLFBhLm5vcm1hbD13OCh7fSxQYSksUGEuZ2ZtPXc4KHt9LFBhLm5vcm1hbCx7dGFibGU6Il4gKihbXlxcbiBdLipcXHwuKilcXG4gezAsM30oPzpcXHwgKik/KDo/LSs6PyAqKD86XFx8ICo6Py0rOj8gKikqKSg/Olxc''@;'; + put 'put ''fCAqKT8oPzpcXG4oKD86KD8hICpcXG58aHJ8aGVhZGluZ3xibG9ja3F1b3RlfGNvZGV8ZmVuY2VzfGxpc3R8aHRtbCkuKig/OlxcbnwkKSkqKVxcbip8JCkifSksUGEuZ2ZtLnRhYmxlPVcyKFBhLmdmbS50YWJsZSkucmVwbGFjZSgiaHIiLFBhLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHsw''@;'; + put 'put ''LDN9I3sxLDZ9ICIpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiY29kZSIsIiB7NH1bXlxcbl0iKS5yZXBsYWNlKCJmZW5jZXMiLCIgezAsM30oPzpgezMsfSg/PVteYFxcbl0qXFxuKXx+ezMsfSlbXlxcbl0qXFxuIikucmVwbGFjZSgibGlzdCIsIiB7MCwzfSg/''@;'; + put 'put ''OlsqKy1dfDFbLildKSAiKS5yZXBsYWNlKCJodG1sIiwiPC8/KD86dGFnKSg/OiArfFxcbnwvPz4pfDwoPzpzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhfCEtLSkiKS5yZXBsYWNlKCJ0YWciLFBhLl90YWcpLmdldFJlZ2V4KCksUGEuZ2ZtLnBhcmFncmFwaD1XMihQYS5fcGFyYWdyYXBoKS5y''@;'; + put 'put ''ZXBsYWNlKCJociIsUGEuaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVwbGFjZSgifGxoZWFkaW5nIiwiIikucmVwbGFjZSgidGFibGUiLFBhLmdmbS50YWJsZSkucmVwbGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4iKS5yZXBsYWNlKCJmZW5jZXMiLCIgezAsM30o''@;'; + put 'put ''PzpgezMsfSg/PVteYFxcbl0qXFxuKXx+ezMsfSlbXlxcbl0qXFxuIikucmVwbGFjZSgibGlzdCIsIiB7MCwzfSg/OlsqKy1dfDFbLildKSAiKS5yZXBsYWNlKCJodG1sIiwiPC8/KD86dGFnKSg/OiArfFxcbnwvPz4pfDwoPzpzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhfCEtLSkiKS5yZXBs''@;'; + put 'put ''YWNlKCJ0YWciLFBhLl90YWcpLmdldFJlZ2V4KCksUGEucGVkYW50aWM9dzgoe30sUGEubm9ybWFsLHtodG1sOlcyKCJeICooPzpjb21tZW50ICooPzpcXG58XFxzKiQpfDwodGFnKVtcXHNcXFNdKz88L1xcMT4gKig/OlxcbnsyLH18XFxzKiQpfDx0YWcoPzpcIlteXCJdKlwifCdbXiddKid8''@;'; + put 'put ''XFxzW14nXCIvPlxcc10qKSo/Lz8+ICooPzpcXG57Mix9fFxccyokKSkiKS5yZXBsYWNlKCJjb21tZW50IixQYS5fY29tbWVudCkucmVwbGFjZSgvdGFnL2csIig/ISg/OmF8ZW18c3Ryb25nfHNtYWxsfHN8Y2l0ZXxxfGRmbnxhYmJyfGRhdGF8dGltZXxjb2RlfHZhcnxzYW1wfGtiZHxzdWJ8''@;'; + put 'put ''c3VwfGl8Ynx1fG1hcmt8cnVieXxydHxycHxiZGl8YmRvfHNwYW58YnJ8d2JyfGluc3xkZWx8aW1nKVxcYilcXHcrKD8hOnxbXlxcd1xcc0BdKkApXFxiIikuZ2V0UmVnZXgoKSxkZWY6L14gKlxbKFteXF1dKylcXTogKjw/KFteXHM+XSspPj8oPzogKyhbIihdW15cbl0rWyIpXSkpPyAqKD86''@;'; + put 'put ''XG4rfCQpLyxoZWFkaW5nOi9eKCN7MSw2fSkoLiopKD86XG4rfCQpLyxmZW5jZXM6enEscGFyYWdyYXBoOlcyKFBhLm5vcm1hbC5fcGFyYWdyYXBoKS5yZXBsYWNlKCJociIsUGEuaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgKiN7MSw2fSAqW15cbl0iKS5yZXBsYWNlKCJsaGVhZGluZyIsUGEu''@;'; + put 'put ''bGhlYWRpbmcpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgifGZlbmNlcyIsIiIpLnJlcGxhY2UoInxsaXN0IiwiIikucmVwbGFjZSgifGh0bWwiLCIiKS5nZXRSZWdleCgpfSk7Y29uc3QgWG89e2VzY2FwZTovXlxcKFshIiMkJSYnKCkqKyxcLS4vOjs8PT4/QFxb''@;'; + put 'put ''XF1cXF5fYHt8fX5dKS8sYXV0b2xpbms6L148KHNjaGVtZTpbXlxzXHgwMC1ceDFmPD5dKnxlbWFpbCk+Lyx1cmw6enEsdGFnOiJeY29tbWVudHxePC9bYS16QS1aXVtcXHc6LV0qXFxzKj58XjxbYS16QS1aXVtcXHctXSooPzphdHRyaWJ1dGUpKj9cXHMqLz8+fF48XFw/W1xcc1xcU10qP1xc''@;'; + put 'put ''Pz58XjwhW2EtekEtWl0rXFxzW1xcc1xcU10qPz58XjwhXFxbQ0RBVEFcXFtbXFxzXFxTXSo/XFxdXFxdPiIsbGluazovXiE/XFsobGFiZWwpXF1cKFxzKihocmVmKSg/OlxzKyh0aXRsZSkpP1xzKlwpLyxyZWZsaW5rOi9eIT9cWyhsYWJlbClcXVxbKHJlZilcXS8sbm9saW5rOi9eIT9cWyhy''@;'; + put 'put ''ZWYpXF0oPzpcW1xdKT8vLHJlZmxpbmtTZWFyY2g6InJlZmxpbmt8bm9saW5rKD8hXFwoKSIsZW1TdHJvbmc6e2xEZWxpbTovXig/OlwqKyg/OihbcHVuY3RfXSl8W15ccypdKSl8Xl8rKD86KFtwdW5jdCpdKXwoW15cc19dKSkvLHJEZWxpbUFzdDovXlteXypdKj9cX1xfW15fKl0qP1wqW15f''@;'; + put 'put ''Kl0qPyg/PVxfXF8pfFteKl0rKD89W14qXSl8W3B1bmN0X10oXCorKSg/PVtcc118JCl8W15wdW5jdCpfXHNdKFwqKykoPz1bcHVuY3RfXHNdfCQpfFtwdW5jdF9cc10oXCorKSg/PVtecHVuY3QqX1xzXSl8W1xzXShcKispKD89W3B1bmN0X10pfFtwdW5jdF9dKFwqKykoPz1bcHVuY3RfXSl8''@;'; + put 'put ''W15wdW5jdCpfXHNdKFwqKykoPz1bXnB1bmN0Kl9cc10pLyxyRGVsaW1VbmQ6L15bXl8qXSo/XCpcKlteXypdKj9cX1teXypdKj8oPz1cKlwqKXxbXl9dKyg/PVteX10pfFtwdW5jdCpdKFxfKykoPz1bXHNdfCQpfFtecHVuY3QqX1xzXShcXyspKD89W3B1bmN0KlxzXXwkKXxbcHVuY3QqXHNd''@;'; + put 'put ''KFxfKykoPz1bXnB1bmN0Kl9cc10pfFtcc10oXF8rKSg/PVtwdW5jdCpdKXxbcHVuY3QqXShcXyspKD89W3B1bmN0Kl0pL30sY29kZTovXihgKykoW15gXXxbXmBdW1xzXFNdKj9bXmBdKVwxKD8hYCkvLGJyOi9eKCB7Mix9fFxcKVxuKD8hXHMqJCkvLGRlbDp6cSx0ZXh0Oi9eKGArfFteYF0p''@;'; + put 'put ''KD86KD89IHsyLH1cbil8W1xzXFNdKj8oPzooPz1bXFw8IVxbYCpfXXxcYl98JCl8W14gXSg/PSB7Mix9XG4pKSkvLHB1bmN0dWF0aW9uOi9eKFtcc3B1bmN0dWF0aW9uXSkvfTtmdW5jdGlvbiB5amUoZCl7cmV0dXJuIGQucmVwbGFjZSgvLS0tL2csIlx1MjAxNCIpLnJlcGxhY2UoLy0tL2cs''@;'; + put 'put ''Ilx1MjAxMyIpLnJlcGxhY2UoLyhefFstXHUyMDE0LyhcW3siXHNdKScvZywiJDFcdTIwMTgiKS5yZXBsYWNlKC8nL2csIlx1MjAxOSIpLnJlcGxhY2UoLyhefFstXHUyMDE0LyhcW3tcdTIwMThcc10pIi9nLCIkMVx1MjAxYyIpLnJlcGxhY2UoLyIvZywiXHUyMDFkIikucmVwbGFjZSgvXC57''@;'; + put 'put ''M30vZywiXHUyMDI2Iil9ZnVuY3Rpb24gS3dlKGQpe2xldCBoLHYsZz0iIjtjb25zdCB5PWQubGVuZ3RoO2ZvcihoPTA7aDx5O2grKyl2PWQuY2hhckNvZGVBdChoKSxNYXRoLnJhbmRvbSgpPi41JiYodj0ieCIrdi50b1N0cmluZygxNikpLGcrPSImIyIrdisiOyI7cmV0dXJuIGd9WG8uX3B1''@;'; + put 'put ''bmN0dWF0aW9uPSIhXCIjJCUmJygpK1xcLS4sLzo7PD0+P0BcXFtcXF1gXnt8fX4iLFhvLnB1bmN0dWF0aW9uPVcyKFhvLnB1bmN0dWF0aW9uKS5yZXBsYWNlKC9wdW5jdHVhdGlvbi9nLFhvLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxYby5ibG9ja1NraXA9L1xbW15cXV0qP1xdXChbXlwp''@;'; + put 'put ''XSo/XCl8YFteYF0qP2B8PFtePl0qPz4vZyxYby5lc2NhcGVkRW1TdD0vXFxcKnxcXF8vZyxYby5fY29tbWVudD1XMihQYS5fY29tbWVudCkucmVwbGFjZSgiKD86LS1ceDNlfCQpIiwiLS1ceDNlIikuZ2V0UmVnZXgoKSxYby5lbVN0cm9uZy5sRGVsaW09VzIoWG8uZW1TdHJvbmcubERlbGlt''@;'; + put 'put ''KS5yZXBsYWNlKC9wdW5jdC9nLFhvLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxYby5lbVN0cm9uZy5yRGVsaW1Bc3Q9VzIoWG8uZW1TdHJvbmcuckRlbGltQXN0LCJnIikucmVwbGFjZSgvcHVuY3QvZyxYby5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksWG8uZW1TdHJvbmcuckRlbGltVW5k''@;'; + put 'put ''PVcyKFhvLmVtU3Ryb25nLnJEZWxpbVVuZCwiZyIpLnJlcGxhY2UoL3B1bmN0L2csWG8uX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLFhvLl9lc2NhcGVzPS9cXChbISIjJCUmJygpKissXC0uLzo7PD0+P0BcW1xdXFxeX2B7fH1+XSkvZyxYby5fc2NoZW1lPS9bYS16QS1aXVthLXpBLVowLTkr''@;'; + put 'put ''Li1dezEsMzF9LyxYby5fZW1haWw9L1thLXpBLVowLTkuISMkJSYnKisvPT9eX2B7fH1+LV0rKEApW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8pKyg/IVstX10pLyxY''@;'; + put 'put ''by5hdXRvbGluaz1XMihYby5hdXRvbGluaykucmVwbGFjZSgic2NoZW1lIixYby5fc2NoZW1lKS5yZXBsYWNlKCJlbWFpbCIsWG8uX2VtYWlsKS5nZXRSZWdleCgpLFhvLl9hdHRyaWJ1dGU9L1xzK1thLXpBLVo6X11bXHcuOi1dKig/OlxzKj1ccyoiW14iXSoifFxzKj1ccyonW14nXSonfFxz''@;'; + put 'put ''Kj1ccypbXlxzIic9PD5gXSspPy8sWG8udGFnPVcyKFhvLnRhZykucmVwbGFjZSgiY29tbWVudCIsWG8uX2NvbW1lbnQpLnJlcGxhY2UoImF0dHJpYnV0ZSIsWG8uX2F0dHJpYnV0ZSkuZ2V0UmVnZXgoKSxYby5fbGFiZWw9Lyg/OlxbKD86XFwufFteXFtcXVxcXSkqXF18XFwufGBbXmBdKmB8''@;'; + put 'put ''W15cW1xdXFxgXSkqPy8sWG8uX2hyZWY9LzwoPzpcXC58W15cbjw+XFxdKSs+fFteXHNceDAwLVx4MWZdKi8sWG8uX3RpdGxlPS8iKD86XFwiP3xbXiJcXF0pKiJ8Jyg/OlxcJz98W14nXFxdKSonfFwoKD86XFxcKT98W14pXFxdKSpcKS8sWG8ubGluaz1XMihYby5saW5rKS5yZXBsYWNlKCJs''@;'; + put 'put ''YWJlbCIsWG8uX2xhYmVsKS5yZXBsYWNlKCJocmVmIixYby5faHJlZikucmVwbGFjZSgidGl0bGUiLFhvLl90aXRsZSkuZ2V0UmVnZXgoKSxYby5yZWZsaW5rPVcyKFhvLnJlZmxpbmspLnJlcGxhY2UoImxhYmVsIixYby5fbGFiZWwpLnJlcGxhY2UoInJlZiIsUGEuX2xhYmVsKS5nZXRSZWdl''@;'; + put 'put ''eCgpLFhvLm5vbGluaz1XMihYby5ub2xpbmspLnJlcGxhY2UoInJlZiIsUGEuX2xhYmVsKS5nZXRSZWdleCgpLFhvLnJlZmxpbmtTZWFyY2g9VzIoWG8ucmVmbGlua1NlYXJjaCwiZyIpLnJlcGxhY2UoInJlZmxpbmsiLFhvLnJlZmxpbmspLnJlcGxhY2UoIm5vbGluayIsWG8ubm9saW5rKS5n''@;'; + put 'put ''ZXRSZWdleCgpLFhvLm5vcm1hbD13OCh7fSxYbyksWG8ucGVkYW50aWM9dzgoe30sWG8ubm9ybWFsLHtzdHJvbmc6e3N0YXJ0Oi9eX198XCpcKi8sbWlkZGxlOi9eX18oPz1cUykoW1xzXFNdKj9cUylfXyg/IV8pfF5cKlwqKD89XFMpKFtcc1xTXSo/XFMpXCpcKig/IVwqKS8sZW5kQXN0Oi9c''@;'; + put 'put ''KlwqKD8hXCopL2csZW5kVW5kOi9fXyg/IV8pL2d9LGVtOntzdGFydDovXl98XCovLG1pZGRsZTovXigpXCooPz1cUykoW1xzXFNdKj9cUylcKig/IVwqKXxeXyg/PVxTKShbXHNcU10qP1xTKV8oPyFfKS8sZW5kQXN0Oi9cKig/IVwqKS9nLGVuZFVuZDovXyg/IV8pL2d9LGxpbms6VzIoL14h''@;'; + put 'put ''P1xbKGxhYmVsKVxdXCgoLio/KVwpLykucmVwbGFjZSgibGFiZWwiLFhvLl9sYWJlbCkuZ2V0UmVnZXgoKSxyZWZsaW5rOlcyKC9eIT9cWyhsYWJlbClcXVxzKlxbKFteXF1dKilcXS8pLnJlcGxhY2UoImxhYmVsIixYby5fbGFiZWwpLmdldFJlZ2V4KCl9KSxYby5nZm09dzgoe30sWG8ubm9y''@;'; + put 'put ''bWFsLHtlc2NhcGU6VzIoWG8uZXNjYXBlKS5yZXBsYWNlKCJdKSIsIn58XSkiKS5nZXRSZWdleCgpLF9leHRlbmRlZF9lbWFpbDovW0EtWmEtejAtOS5fKy1dKyhAKVthLXpBLVowLTktX10rKD86XC5bYS16QS1aMC05LV9dKlthLXpBLVowLTldKSsoPyFbLV9dKS8sdXJsOi9eKCg/OmZ0cHxo''@;'; + put 'put ''dHRwcz8pOlwvXC98d3d3XC4pKD86W2EtekEtWjAtOVwtXStcLj8pK1teXHM8XSp8XmVtYWlsLyxfYmFja3BlZGFsOi8oPzpbXj8hLiw6OypffigpJl0rfFwoW14pXSpcKXwmKD8hW2EtekEtWjAtOV0rOyQpfFs/IS4sOjsqX34pXSsoPyEkKSkrLyxkZWw6L14ofn4/KSg/PVteXHN+XSkoW1xz''@;'; + put 'put ''XFNdKj9bXlxzfl0pXDEoPz1bXn5dfCQpLyx0ZXh0Oi9eKFtgfl0rfFteYH5dKSg/Oig/PSB7Mix9XG4pfCg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dK0ApfFtcc1xTXSo/KD86KD89W1xcPCFcW2Aqfl9dfFxiX3xodHRwcz86XC9cL3xmdHA6XC9cL3x3d3dcLnwkKXxbXiBd''@;'; + put 'put ''KD89IHsyLH1cbil8W15hLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dKD89W2EtekEtWjAtOS4hIyQlJicqK1wvPT9fYHtcfH1+LV0rQCkpKS99KSxYby5nZm0udXJsPVcyKFhvLmdmbS51cmwsImkiKS5yZXBsYWNlKCJlbWFpbCIsWG8uZ2ZtLl9leHRlbmRlZF9lbWFpbCkuZ2V0UmVn''@;'; + put 'put ''ZXgoKSxYby5icmVha3M9dzgoe30sWG8uZ2ZtLHticjpXMihYby5icikucmVwbGFjZSgiezIsfSIsIioiKS5nZXRSZWdleCgpLHRleHQ6VzIoWG8uZ2ZtLnRleHQpLnJlcGxhY2UoIlxcYl8iLCJcXGJffCB7Mix9XFxuIikucmVwbGFjZSgvXHsyLFx9L2csIioiKS5nZXRSZWdleCgpfSk7Y2xh''@;'; + put 'put ''c3MgXzl7Y29uc3RydWN0b3IoZyl7dGhpcy50b2tlbnM9W10sdGhpcy50b2tlbnMubGlua3M9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLm9wdGlvbnM9Z3x8SkwsdGhpcy5vcHRpb25zLnRva2VuaXplcj10aGlzLm9wdGlvbnMudG9rZW5pemVyfHxuZXcgRmhlLHRoaXMudG9rZW5pemVyPXRo''@;'; + put 'put ''aXMub3B0aW9ucy50b2tlbml6ZXIsdGhpcy50b2tlbml6ZXIub3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy50b2tlbml6ZXIubGV4ZXI9dGhpcyx0aGlzLmlubGluZVF1ZXVlPVtdLHRoaXMuc3RhdGU9e2luTGluazohMSxpblJhd0Jsb2NrOiExLHRvcDohMH07Y29uc3QgaD17YmxvY2s6UGEu''@;'; + put 'put ''bm9ybWFsLGlubGluZTpYby5ub3JtYWx9O3RoaXMub3B0aW9ucy5wZWRhbnRpYz8oaC5ibG9jaz1QYS5wZWRhbnRpYyxoLmlubGluZT1Yby5wZWRhbnRpYyk6dGhpcy5vcHRpb25zLmdmbSYmKGguYmxvY2s9UGEuZ2ZtLGguaW5saW5lPXRoaXMub3B0aW9ucy5icmVha3M/WG8uYnJlYWtzOlhv''@;'; + put 'put ''LmdmbSksdGhpcy50b2tlbml6ZXIucnVsZXM9aH1zdGF0aWMgZ2V0IHJ1bGVzKCl7cmV0dXJue2Jsb2NrOlBhLGlubGluZTpYb319c3RhdGljIGxleChnLGgpe3JldHVybiBuZXcgXzkoaCkubGV4KGcpfXN0YXRpYyBsZXhJbmxpbmUoZyxoKXtyZXR1cm4gbmV3IF85KGgpLmlubGluZVRva2Vu''@;'; + put 'put ''cyhnKX1sZXgoZyl7bGV0IGg7Zm9yKGc9Zy5yZXBsYWNlKC9cclxufFxyL2csIlxuIiksdGhpcy5ibG9ja1Rva2VucyhnLHRoaXMudG9rZW5zKTtoPXRoaXMuaW5saW5lUXVldWUuc2hpZnQoKTspdGhpcy5pbmxpbmVUb2tlbnMoaC5zcmMsaC50b2tlbnMpO3JldHVybiB0aGlzLnRva2Vuc31i''@;'; + put 'put ''bG9ja1Rva2VucyhnLGg9W10pe2xldCB2LHksQyxJO2ZvcihnPXRoaXMub3B0aW9ucy5wZWRhbnRpYz9nLnJlcGxhY2UoL1x0L2csIiAgICAiKS5yZXBsYWNlKC9eICskL2dtLCIiKTpnLnJlcGxhY2UoL14oICopKFx0KykvZ20sKGosdWUsX2UpPT51ZSsiICAgICIucmVwZWF0KF9lLmxlbmd0''@;'; + put 'put ''aCkpO2c7KWlmKCEodGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLmJsb2NrJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5ibG9jay5zb21lKGo9PiEhKHY9ai5jYWxsKHtsZXhlcjp0aGlzfSxnLGgpKSYmKGc9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3Ro''@;'; + put 'put ''KSxoLnB1c2godiksITApKSkpe2lmKHY9dGhpcy50b2tlbml6ZXIuc3BhY2UoZykpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSwxPT09di5yYXcubGVuZ3RoJiZoLmxlbmd0aD4wP2hbaC5sZW5ndGgtMV0ucmF3Kz0iXG4iOmgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5p''@;'; + put 'put ''emVyLmNvZGUoZykpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSx5PWhbaC5sZW5ndGgtMV0sIXl8fCJwYXJhZ3JhcGgiIT09eS50eXBlJiYidGV4dCIhPT15LnR5cGU/aC5wdXNoKHYpOih5LnJhdys9IlxuIit2LnJhdyx5LnRleHQrPSJcbiIrdi50ZXh0LHRoaXMuaW5saW5lUXVldWVb''@;'; + put 'put ''dGhpcy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPXkudGV4dCk7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5mZW5jZXMoZykpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSxoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5oZWFkaW5nKGcpKXtnPWcuc3Vi''@;'; + put 'put ''c3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIuaHIoZykpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSxoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5ibG9ja3F1b3RlKGcpKXtnPWcuc3Vic3RyaW5nKHYu''@;'; + put 'put ''cmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIubGlzdChnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLGgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLmh0bWwoZykpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSxo''@;'; + put 'put ''LnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5kZWYoZykpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSx5PWhbaC5sZW5ndGgtMV0sIXl8fCJwYXJhZ3JhcGgiIT09eS50eXBlJiYidGV4dCIhPT15LnR5cGU/dGhpcy50b2tlbnMubGlua3Nbdi50YWddfHwodGhpcy50''@;'; + put 'put ''b2tlbnMubGlua3Nbdi50YWddPXtocmVmOnYuaHJlZix0aXRsZTp2LnRpdGxlfSk6KHkucmF3Kz0iXG4iK3YucmF3LHkudGV4dCs9IlxuIit2LnJhdyx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz15LnRleHQpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tl''@;'; + put 'put ''bml6ZXIudGFibGUoZykpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSxoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5saGVhZGluZyhnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLGgucHVzaCh2KTtjb250aW51ZX1pZihDPWcsdGhpcy5vcHRpb25zLmV4''@;'; + put 'put ''dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnN0YXJ0QmxvY2spe2xldCBqPTEvMDtjb25zdCB1ZT1nLnNsaWNlKDEpO2xldCBfZTt0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydEJsb2NrLmZvckVhY2goZnVuY3Rpb24oQmUpe19lPUJlLmNhbGwoe2xleGVyOnRoaXN9LHVl''@;'; + put 'put ''KSwibnVtYmVyIj09dHlwZW9mIF9lJiZfZT49MCYmKGo9TWF0aC5taW4oaixfZSkpfSksajwxLzAmJmo+PTAmJihDPWcuc3Vic3RyaW5nKDAsaisxKSl9aWYodGhpcy5zdGF0ZS50b3AmJih2PXRoaXMudG9rZW5pemVyLnBhcmFncmFwaChDKSkpe3k9aFtoLmxlbmd0aC0xXSxJJiYicGFyYWdy''@;'; + put 'put ''YXBoIj09PXkudHlwZT8oeS5yYXcrPSJcbiIrdi5yYXcseS50ZXh0Kz0iXG4iK3YudGV4dCx0aGlzLmlubGluZVF1ZXVlLnBvcCgpLHRoaXMuaW5saW5lUXVldWVbdGhpcy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPXkudGV4dCk6aC5wdXNoKHYpLEk9Qy5sZW5ndGghPT1nLmxlbmd0aCxn''@;'; + put 'put ''PWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCk7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci50ZXh0KGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCkseT1oW2gubGVuZ3RoLTFdLHkmJiJ0ZXh0Ij09PXkudHlwZT8oeS5yYXcrPSJcbiIrdi5yYXcseS50ZXh0Kz0iXG4iK3YudGV4''@;'; + put 'put ''dCx0aGlzLmlubGluZVF1ZXVlLnBvcCgpLHRoaXMuaW5saW5lUXVldWVbdGhpcy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPXkudGV4dCk6aC5wdXNoKHYpO2NvbnRpbnVlfWlmKGcpe2NvbnN0IGo9IkluZmluaXRlIGxvb3Agb24gYnl0ZTogIitnLmNoYXJDb2RlQXQoMCk7aWYodGhpcy5v''@;'; + put 'put ''cHRpb25zLnNpbGVudCl7Y29uc29sZS5lcnJvcihqKTticmVha310aHJvdyBuZXcgRXJyb3Ioail9fXJldHVybiB0aGlzLnN0YXRlLnRvcD0hMCxofWlubGluZShnLGgpe3RoaXMuaW5saW5lUXVldWUucHVzaCh7c3JjOmcsdG9rZW5zOmh9KX1pbmxpbmVUb2tlbnMoZyxoPVtdKXtsZXQgdix5''@;'; + put 'put ''LEMsaix1ZSxfZSxJPWc7aWYodGhpcy50b2tlbnMubGlua3Mpe2NvbnN0IEJlPU9iamVjdC5rZXlzKHRoaXMudG9rZW5zLmxpbmtzKTtpZihCZS5sZW5ndGg+MClmb3IoO251bGwhPShqPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5yZWZsaW5rU2VhcmNoLmV4ZWMoSSkpOylCZS5pbmNs''@;'; + put 'put ''dWRlcyhqWzBdLnNsaWNlKGpbMF0ubGFzdEluZGV4T2YoIlsiKSsxLC0xKSkmJihJPUkuc2xpY2UoMCxqLmluZGV4KSsiWyIrSndlKCJhIixqWzBdLmxlbmd0aC0yKSsiXSIrSS5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUucmVmbGlua1NlYXJjaC5sYXN0SW5kZXgpKX1mb3Io''@;'; + put 'put ''O251bGwhPShqPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5ibG9ja1NraXAuZXhlYyhJKSk7KUk9SS5zbGljZSgwLGouaW5kZXgpKyJbIitKd2UoImEiLGpbMF0ubGVuZ3RoLTIpKyJdIitJLnNsaWNlKHRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5ibG9ja1NraXAubGFzdEluZGV4''@;'; + put 'put ''KTtmb3IoO251bGwhPShqPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5lc2NhcGVkRW1TdC5leGVjKEkpKTspST1JLnNsaWNlKDAsai5pbmRleCkrIisrIitJLnNsaWNlKHRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5lc2NhcGVkRW1TdC5sYXN0SW5kZXgpO2Zvcig7ZzspaWYodWV8''@;'; + put 'put ''fChfZT0iIiksdWU9ITEsISh0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuaW5saW5lJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5pbmxpbmUuc29tZShCZT0+ISEodj1CZS5jYWxsKHtsZXhlcjp0aGlzfSxnLGgpKSYmKGc9Zy5zdWJzdHJpbmcodi5y''@;'; + put 'put ''YXcubGVuZ3RoKSxoLnB1c2godiksITApKSkpe2lmKHY9dGhpcy50b2tlbml6ZXIuZXNjYXBlKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIudGFnKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCkseT1o''@;'; + put 'put ''W2gubGVuZ3RoLTFdLHkmJiJ0ZXh0Ij09PXYudHlwZSYmInRleHQiPT09eS50eXBlPyh5LnJhdys9di5yYXcseS50ZXh0Kz12LnRleHQpOmgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLmxpbmsoZykpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSxoLnB1c2godik7''@;'; + put 'put ''Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5yZWZsaW5rKGcsdGhpcy50b2tlbnMubGlua3MpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCkseT1oW2gubGVuZ3RoLTFdLHkmJiJ0ZXh0Ij09PXYudHlwZSYmInRleHQiPT09eS50eXBlPyh5LnJhdys9di5yYXcseS50ZXh0Kz12LnRl''@;'; + put 'put ''eHQpOmgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLmVtU3Ryb25nKGcsSSxfZSkpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSxoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5jb2Rlc3BhbihnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5n''@;'; + put 'put ''dGgpLGgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLmJyKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIuZGVsKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2Nv''@;'; + put 'put ''bnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIuYXV0b2xpbmsoZyxLd2UpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKCF0aGlzLnN0YXRlLmluTGluayYmKHY9dGhpcy50b2tlbml6ZXIudXJsKGcsS3dlKSkpe2c9Zy5zdWJzdHJpbmcodi5yYXcu''@;'; + put 'put ''bGVuZ3RoKSxoLnB1c2godik7Y29udGludWV9aWYoQz1nLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydElubGluZSl7bGV0IEJlPTEvMDtjb25zdCBOZT1nLnNsaWNlKDEpO2xldCBLZTt0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydElu''@;'; + put 'put ''bGluZS5mb3JFYWNoKGZ1bmN0aW9uKGR0KXtLZT1kdC5jYWxsKHtsZXhlcjp0aGlzfSxOZSksIm51bWJlciI9PXR5cGVvZiBLZSYmS2U+PTAmJihCZT1NYXRoLm1pbihCZSxLZSkpfSksQmU8MS8wJiZCZT49MCYmKEM9Zy5zdWJzdHJpbmcoMCxCZSsxKSl9aWYodj10aGlzLnRva2VuaXplci5p''@;'; + put 'put ''bmxpbmVUZXh0KEMseWplKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLCJfIiE9PXYucmF3LnNsaWNlKC0xKSYmKF9lPXYucmF3LnNsaWNlKC0xKSksdWU9ITAseT1oW2gubGVuZ3RoLTFdLHkmJiJ0ZXh0Ij09PXkudHlwZT8oeS5yYXcrPXYucmF3LHkudGV4dCs9di50ZXh0KTpoLnB1''@;'; + put 'put ''c2godik7Y29udGludWV9aWYoZyl7Y29uc3QgQmU9IkluZmluaXRlIGxvb3Agb24gYnl0ZTogIitnLmNoYXJDb2RlQXQoMCk7aWYodGhpcy5vcHRpb25zLnNpbGVudCl7Y29uc29sZS5lcnJvcihCZSk7YnJlYWt9dGhyb3cgbmV3IEVycm9yKEJlKX19cmV0dXJuIGh9fWNsYXNzIENae2NvbnN0''@;'; + put 'put ''cnVjdG9yKGcpe3RoaXMub3B0aW9ucz1nfHxKTH1jb2RlKGcsaCx2KXtjb25zdCB5PShofHwiIikubWF0Y2goL1xTKi8pWzBdO2lmKHRoaXMub3B0aW9ucy5oaWdobGlnaHQpe2NvbnN0IEM9dGhpcy5vcHRpb25zLmhpZ2hsaWdodChnLHkpO251bGwhPUMmJkMhPT1nJiYodj0hMCxnPUMpfXJl''@;'; + put 'put ''dHVybiBnPWcucmVwbGFjZSgvXG4kLywiIikrIlxuIix5Pyc8cHJlPjxjb2RlIGNsYXNzPSInK3RoaXMub3B0aW9ucy5sYW5nUHJlZml4K25mKHksITApKyciPicrKHY/ZzpuZihnLCEwKSkrIjwvY29kZT48L3ByZT5cbiI6IjxwcmU+PGNvZGU+Iisodj9nOm5mKGcsITApKSsiPC9jb2RlPjwv''@;'; + put 'put ''cHJlPlxuIn1ibG9ja3F1b3RlKGcpe3JldHVybmA8YmxvY2txdW90ZT5cbiR7Z308L2Jsb2NrcXVvdGU+XG5gfWh0bWwoZyl7cmV0dXJuIGd9aGVhZGluZyhnLGgsdix5KXtyZXR1cm4gdGhpcy5vcHRpb25zLmhlYWRlcklkcz9gPGgke2h9IGlkPSIke3RoaXMub3B0aW9ucy5oZWFkZXJQcmVm''@;'; + put 'put ''aXgreS5zbHVnKHYpfSI+JHtnfTwvaCR7aH0+XG5gOmA8aCR7aH0+JHtnfTwvaCR7aH0+XG5gfWhyKCl7cmV0dXJuIHRoaXMub3B0aW9ucy54aHRtbD8iPGhyLz5cbiI6Ijxocj5cbiJ9bGlzdChnLGgsdil7Y29uc3QgeT1oPyJvbCI6InVsIjtyZXR1cm4iPCIreSsoaCYmMSE9PXY/JyBzdGFy''@;'; + put 'put ''dD0iJyt2KyciJzoiIikrIj5cbiIrZysiPC8iK3krIj5cbiJ9bGlzdGl0ZW0oZyl7cmV0dXJuYDxsaT4ke2d9PC9saT5cbmB9Y2hlY2tib3goZyl7cmV0dXJuIjxpbnB1dCAiKyhnPydjaGVja2VkPSIiICc6IiIpKydkaXNhYmxlZD0iIiB0eXBlPSJjaGVja2JveCInKyh0aGlzLm9wdGlvbnMu''@;'; + put 'put ''eGh0bWw/IiAvIjoiIikrIj4gIn1wYXJhZ3JhcGgoZyl7cmV0dXJuYDxwPiR7Z308L3A+XG5gfXRhYmxlKGcsaCl7cmV0dXJuIGgmJihoPWA8dGJvZHk+JHtofTwvdGJvZHk+YCksIjx0YWJsZT5cbjx0aGVhZD5cbiIrZysiPC90aGVhZD5cbiIraCsiPC90YWJsZT5cbiJ9dGFibGVyb3coZyl7''@;'; + put 'put ''cmV0dXJuYDx0cj5cbiR7Z308L3RyPlxuYH10YWJsZWNlbGwoZyxoKXtjb25zdCB2PWguaGVhZGVyPyJ0aCI6InRkIjtyZXR1cm4oaC5hbGlnbj9gPCR7dn0gYWxpZ249IiR7aC5hbGlnbn0iPmA6YDwke3Z9PmApK2crYDwvJHt2fT5cbmB9c3Ryb25nKGcpe3JldHVybmA8c3Ryb25nPiR7Z308''@;'; + put 'put ''L3N0cm9uZz5gfWVtKGcpe3JldHVybmA8ZW0+JHtnfTwvZW0+YH1jb2Rlc3BhbihnKXtyZXR1cm5gPGNvZGU+JHtnfTwvY29kZT5gfWJyKCl7cmV0dXJuIHRoaXMub3B0aW9ucy54aHRtbD8iPGJyLz4iOiI8YnI+In1kZWwoZyl7cmV0dXJuYDxkZWw+JHtnfTwvZGVsPmB9bGluayhnLGgsdil7''@;'; + put 'put ''aWYobnVsbD09PShnPVl3ZSh0aGlzLm9wdGlvbnMuc2FuaXRpemUsdGhpcy5vcHRpb25zLmJhc2VVcmwsZykpKXJldHVybiB2O2xldCB5PSc8YSBocmVmPSInK25mKGcpKyciJztyZXR1cm4gaCYmKHkrPScgdGl0bGU9IicraCsnIicpLHkrPSI+Iit2KyI8L2E+Iix5fWltYWdlKGcsaCx2KXtp''@;'; + put 'put ''ZihudWxsPT09KGc9WXdlKHRoaXMub3B0aW9ucy5zYW5pdGl6ZSx0aGlzLm9wdGlvbnMuYmFzZVVybCxnKSkpcmV0dXJuIHY7bGV0IHk9YDxpbWcgc3JjPSIke2d9IiBhbHQ9IiR7dn0iYDtyZXR1cm4gaCYmKHkrPWAgdGl0bGU9IiR7aH0iYCkseSs9dGhpcy5vcHRpb25zLnhodG1sPyIvPiI6''@;'; + put 'put ''Ij4iLHl9dGV4dChnKXtyZXR1cm4gZ319Y2xhc3MgJHdle3N0cm9uZyhnKXtyZXR1cm4gZ31lbShnKXtyZXR1cm4gZ31jb2Rlc3BhbihnKXtyZXR1cm4gZ31kZWwoZyl7cmV0dXJuIGd9aHRtbChnKXtyZXR1cm4gZ310ZXh0KGcpe3JldHVybiBnfWxpbmsoZyxoLHYpe3JldHVybiIiK3Z9aW1h''@;'; + put 'put ''Z2UoZyxoLHYpe3JldHVybiIiK3Z9YnIoKXtyZXR1cm4iIn19Y2xhc3MgcXdle2NvbnN0cnVjdG9yKCl7dGhpcy5zZWVuPXt9fXNlcmlhbGl6ZShnKXtyZXR1cm4gZy50b0xvd2VyQ2FzZSgpLnRyaW0oKS5yZXBsYWNlKC88WyFcL2Etel0uKj8+L2dpLCIiKS5yZXBsYWNlKC9bXHUyMDAwLVx1''@;'; + put 'put ''MjA2Rlx1MkUwMC1cdTJFN0ZcXCchIiMkJSYoKSorLC4vOjs8PT4/QFtcXV5ge3x9fl0vZywiIikucmVwbGFjZSgvXHMvZywiLSIpfWdldE5leHRTYWZlU2x1ZyhnLGgpe2xldCB2PWcseT0wO2lmKHRoaXMuc2Vlbi5oYXNPd25Qcm9wZXJ0eSh2KSl7eT10aGlzLnNlZW5bZ107ZG97eSsrLHY9''@;'; + put 'put ''ZysiLSIreX13aGlsZSh0aGlzLnNlZW4uaGFzT3duUHJvcGVydHkodikpfXJldHVybiBofHwodGhpcy5zZWVuW2ddPXksdGhpcy5zZWVuW3ZdPTApLHZ9c2x1ZyhnLGg9e30pe2NvbnN0IHY9dGhpcy5zZXJpYWxpemUoZyk7cmV0dXJuIHRoaXMuZ2V0TmV4dFNhZmVTbHVnKHYsaC5kcnlydW4p''@;'; + put 'put ''fX1jbGFzcyBDOXtjb25zdHJ1Y3RvcihnKXt0aGlzLm9wdGlvbnM9Z3x8SkwsdGhpcy5vcHRpb25zLnJlbmRlcmVyPXRoaXMub3B0aW9ucy5yZW5kZXJlcnx8bmV3IENaLHRoaXMucmVuZGVyZXI9dGhpcy5vcHRpb25zLnJlbmRlcmVyLHRoaXMucmVuZGVyZXIub3B0aW9ucz10aGlzLm9wdGlv''@;'; + put 'put ''bnMsdGhpcy50ZXh0UmVuZGVyZXI9bmV3ICR3ZSx0aGlzLnNsdWdnZXI9bmV3IHF3ZX1zdGF0aWMgcGFyc2UoZyxoKXtyZXR1cm4gbmV3IEM5KGgpLnBhcnNlKGcpfXN0YXRpYyBwYXJzZUlubGluZShnLGgpe3JldHVybiBuZXcgQzkoaCkucGFyc2VJbmxpbmUoZyl9cGFyc2UoZyxoPSEwKXts''@;'; + put 'put ''ZXQgeSxDLEksaix1ZSxfZSxCZSxOZSxLZSxkdCxPdCwkdCxmbixMbixpcixtcixTcix3cixRcix2PSIiO2NvbnN0IHlpPWcubGVuZ3RoO2Zvcih5PTA7eTx5aTt5KyspaWYoZHQ9Z1t5XSx0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJz''@;'; + put 'put ''JiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbZHQudHlwZV0mJihRcj10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbZHQudHlwZV0uY2FsbCh7cGFyc2VyOnRoaXN9LGR0KSwhMSE9PVFyfHwhWyJzcGFjZSIsImhyIiwiaGVhZGluZyIsImNvZGUiLCJ0YWJsZSIs''@;'; + put 'put ''ImJsb2NrcXVvdGUiLCJsaXN0IiwiaHRtbCIsInBhcmFncmFwaCIsInRleHQiXS5pbmNsdWRlcyhkdC50eXBlKSkpdis9UXJ8fCIiO2Vsc2Ugc3dpdGNoKGR0LnR5cGUpe2Nhc2Uic3BhY2UiOmNvbnRpbnVlO2Nhc2UiaHIiOnYrPXRoaXMucmVuZGVyZXIuaHIoKTtjb250aW51ZTtjYXNlImhl''@;'; + put 'put ''YWRpbmciOnYrPXRoaXMucmVuZGVyZXIuaGVhZGluZyh0aGlzLnBhcnNlSW5saW5lKGR0LnRva2VucyksZHQuZGVwdGgsV3dlKHRoaXMucGFyc2VJbmxpbmUoZHQudG9rZW5zLHRoaXMudGV4dFJlbmRlcmVyKSksdGhpcy5zbHVnZ2VyKTtjb250aW51ZTtjYXNlImNvZGUiOnYrPXRoaXMucmVu''@;'; + put 'put ''ZGVyZXIuY29kZShkdC50ZXh0LGR0LmxhbmcsZHQuZXNjYXBlZCk7Y29udGludWU7Y2FzZSJ0YWJsZSI6Zm9yKE5lPSIiLEJlPSIiLGo9ZHQuaGVhZGVyLmxlbmd0aCxDPTA7QzxqO0MrKylCZSs9dGhpcy5yZW5kZXJlci50YWJsZWNlbGwodGhpcy5wYXJzZUlubGluZShkdC5oZWFkZXJbQ10u''@;'; + put 'put ''dG9rZW5zKSx7aGVhZGVyOiEwLGFsaWduOmR0LmFsaWduW0NdfSk7Zm9yKE5lKz10aGlzLnJlbmRlcmVyLnRhYmxlcm93KEJlKSxLZT0iIixqPWR0LnJvd3MubGVuZ3RoLEM9MDtDPGo7QysrKXtmb3IoX2U9ZHQucm93c1tDXSxCZT0iIix1ZT1fZS5sZW5ndGgsST0wO0k8dWU7SSsrKUJlKz10''@;'; + put 'put ''aGlzLnJlbmRlcmVyLnRhYmxlY2VsbCh0aGlzLnBhcnNlSW5saW5lKF9lW0ldLnRva2Vucykse2hlYWRlcjohMSxhbGlnbjpkdC5hbGlnbltJXX0pO0tlKz10aGlzLnJlbmRlcmVyLnRhYmxlcm93KEJlKX12Kz10aGlzLnJlbmRlcmVyLnRhYmxlKE5lLEtlKTtjb250aW51ZTtjYXNlImJsb2Nr''@;'; + put 'put ''cXVvdGUiOktlPXRoaXMucGFyc2UoZHQudG9rZW5zKSx2Kz10aGlzLnJlbmRlcmVyLmJsb2NrcXVvdGUoS2UpO2NvbnRpbnVlO2Nhc2UibGlzdCI6Zm9yKE90PWR0Lm9yZGVyZWQsJHQ9ZHQuc3RhcnQsZm49ZHQubG9vc2Usaj1kdC5pdGVtcy5sZW5ndGgsS2U9IiIsQz0wO0M8ajtDKyspaXI9''@;'; + put 'put ''ZHQuaXRlbXNbQ10sbXI9aXIuY2hlY2tlZCxTcj1pci50YXNrLExuPSIiLGlyLnRhc2smJih3cj10aGlzLnJlbmRlcmVyLmNoZWNrYm94KG1yKSxmbj9pci50b2tlbnMubGVuZ3RoPjAmJiJwYXJhZ3JhcGgiPT09aXIudG9rZW5zWzBdLnR5cGU/KGlyLnRva2Vuc1swXS50ZXh0PXdyKyIgIitp''@;'; + put 'put ''ci50b2tlbnNbMF0udGV4dCxpci50b2tlbnNbMF0udG9rZW5zJiZpci50b2tlbnNbMF0udG9rZW5zLmxlbmd0aD4wJiYidGV4dCI9PT1pci50b2tlbnNbMF0udG9rZW5zWzBdLnR5cGUmJihpci50b2tlbnNbMF0udG9rZW5zWzBdLnRleHQ9d3IrIiAiK2lyLnRva2Vuc1swXS50b2tlbnNbMF0u''@;'; + put 'put ''dGV4dCkpOmlyLnRva2Vucy51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix0ZXh0OndyfSk6TG4rPXdyKSxMbis9dGhpcy5wYXJzZShpci50b2tlbnMsZm4pLEtlKz10aGlzLnJlbmRlcmVyLmxpc3RpdGVtKExuLFNyLG1yKTt2Kz10aGlzLnJlbmRlcmVyLmxpc3QoS2UsT3QsJHQpO2NvbnRpbnVlO2Nh''@;'; + put 'put ''c2UiaHRtbCI6dis9dGhpcy5yZW5kZXJlci5odG1sKGR0LnRleHQpO2NvbnRpbnVlO2Nhc2UicGFyYWdyYXBoIjp2Kz10aGlzLnJlbmRlcmVyLnBhcmFncmFwaCh0aGlzLnBhcnNlSW5saW5lKGR0LnRva2VucykpO2NvbnRpbnVlO2Nhc2UidGV4dCI6Zm9yKEtlPWR0LnRva2Vucz90aGlzLnBh''@;'; + put 'put ''cnNlSW5saW5lKGR0LnRva2Vucyk6ZHQudGV4dDt5KzE8eWkmJiJ0ZXh0Ij09PWdbeSsxXS50eXBlOylkdD1nWysreV0sS2UrPSJcbiIrKGR0LnRva2Vucz90aGlzLnBhcnNlSW5saW5lKGR0LnRva2Vucyk6ZHQudGV4dCk7dis9aD90aGlzLnJlbmRlcmVyLnBhcmFncmFwaChLZSk6S2U7Y29u''@;'; + put 'put ''dGludWU7ZGVmYXVsdDp7Y29uc3QgS2k9J1Rva2VuIHdpdGggIicrZHQudHlwZSsnIiB0eXBlIHdhcyBub3QgZm91bmQuJztpZih0aGlzLm9wdGlvbnMuc2lsZW50KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoS2kpO3Rocm93IG5ldyBFcnJvcihLaSl9fXJldHVybiB2fXBhcnNlSW5saW5l''@;'; + put 'put ''KGcsaCl7aD1ofHx0aGlzLnJlbmRlcmVyO2xldCB5LEMsSSx2PSIiO2NvbnN0IGo9Zy5sZW5ndGg7Zm9yKHk9MDt5PGo7eSsrKWlmKEM9Z1t5XSx0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9u''@;'; + put 'put ''cy5yZW5kZXJlcnNbQy50eXBlXSYmKEk9dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW0MudHlwZV0uY2FsbCh7cGFyc2VyOnRoaXN9LEMpLCExIT09SXx8IVsiZXNjYXBlIiwiaHRtbCIsImxpbmsiLCJpbWFnZSIsInN0cm9uZyIsImVtIiwiY29kZXNwYW4iLCJiciIsImRlbCIs''@;'; + put 'put ''InRleHQiXS5pbmNsdWRlcyhDLnR5cGUpKSl2Kz1JfHwiIjtlbHNlIHN3aXRjaChDLnR5cGUpe2Nhc2UiZXNjYXBlIjpjYXNlInRleHQiOnYrPWgudGV4dChDLnRleHQpO2JyZWFrO2Nhc2UiaHRtbCI6dis9aC5odG1sKEMudGV4dCk7YnJlYWs7Y2FzZSJsaW5rIjp2Kz1oLmxpbmsoQy5ocmVm''@;'; + put 'put ''LEMudGl0bGUsdGhpcy5wYXJzZUlubGluZShDLnRva2VucyxoKSk7YnJlYWs7Y2FzZSJpbWFnZSI6dis9aC5pbWFnZShDLmhyZWYsQy50aXRsZSxDLnRleHQpO2JyZWFrO2Nhc2Uic3Ryb25nIjp2Kz1oLnN0cm9uZyh0aGlzLnBhcnNlSW5saW5lKEMudG9rZW5zLGgpKTticmVhaztjYXNlImVt''@;'; + put 'put ''Ijp2Kz1oLmVtKHRoaXMucGFyc2VJbmxpbmUoQy50b2tlbnMsaCkpO2JyZWFrO2Nhc2UiY29kZXNwYW4iOnYrPWguY29kZXNwYW4oQy50ZXh0KTticmVhaztjYXNlImJyIjp2Kz1oLmJyKCk7YnJlYWs7Y2FzZSJkZWwiOnYrPWguZGVsKHRoaXMucGFyc2VJbmxpbmUoQy50b2tlbnMsaCkpO2Jy''@;'; + put 'put ''ZWFrO2RlZmF1bHQ6e2NvbnN0IHVlPSdUb2tlbiB3aXRoICInK0MudHlwZSsnIiB0eXBlIHdhcyBub3QgZm91bmQuJztpZih0aGlzLm9wdGlvbnMuc2lsZW50KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IodWUpO3Rocm93IG5ldyBFcnJvcih1ZSl9fXJldHVybiB2fX1mdW5jdGlvbiBlbChk''@;'; + put 'put ''LGcsaCl7aWYobnVsbD09ZCl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZCgpOiBpbnB1dCBwYXJhbWV0ZXIgaXMgdW5kZWZpbmVkIG9yIG51bGwiKTtpZigic3RyaW5nIiE9dHlwZW9mIGQpdGhyb3cgbmV3IEVycm9yKCJtYXJrZWQoKTogaW5wdXQgcGFyYW1ldGVyIGlzIG9mIHR5cGUgIitPYmpl''@;'; + put 'put ''Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkrIiwgc3RyaW5nIGV4cGVjdGVkIik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGcmJihoPWcsZz1udWxsKSxRd2UoZz13OCh7fSxlbC5kZWZhdWx0cyxnfHx7fSkpLGgpe2NvbnN0IHY9Zy5oaWdobGlnaHQ7bGV0IHk7dHJ5e3k9XzkubGV4KGQs''@;'; + put 'put ''Zyl9Y2F0Y2goail7cmV0dXJuIGgoail9Y29uc3QgQz1mdW5jdGlvbihqKXtsZXQgdWU7aWYoIWopdHJ5e2cud2Fsa1Rva2VucyYmZWwud2Fsa1Rva2Vucyh5LGcud2Fsa1Rva2VucyksdWU9QzkucGFyc2UoeSxnKX1jYXRjaChfZSl7aj1fZX1yZXR1cm4gZy5oaWdobGlnaHQ9dixqP2goaik6''@;'; + put 'put ''aChudWxsLHVlKX07aWYoIXZ8fHYubGVuZ3RoPDN8fChkZWxldGUgZy5oaWdobGlnaHQsIXkubGVuZ3RoKSlyZXR1cm4gQygpO2xldCBJPTA7cmV0dXJuIGVsLndhbGtUb2tlbnMoeSxmdW5jdGlvbihqKXsiY29kZSI9PT1qLnR5cGUmJihJKyssc2V0VGltZW91dCgoKT0+e3Yoai50ZXh0LGou''@;'; + put 'put ''bGFuZyxmdW5jdGlvbih1ZSxfZSl7aWYodWUpcmV0dXJuIEModWUpO251bGwhPV9lJiZfZSE9PWoudGV4dCYmKGoudGV4dD1fZSxqLmVzY2FwZWQ9ITApLEktLSwwPT09SSYmQygpfSl9LDApKX0pLHZvaWQoMD09PUkmJkMoKSl9dHJ5e2NvbnN0IHY9XzkubGV4KGQsZyk7cmV0dXJuIGcud2Fs''@;'; + put 'put ''a1Rva2VucyYmZWwud2Fsa1Rva2Vucyh2LGcud2Fsa1Rva2VucyksQzkucGFyc2UodixnKX1jYXRjaCh2KXtpZih2Lm1lc3NhZ2UrPSJcblBsZWFzZSByZXBvcnQgdGhpcyB0byBodHRwczovL2dpdGh1Yi5jb20vbWFya2VkanMvbWFya2VkLiIsZy5zaWxlbnQpcmV0dXJuIjxwPkFuIGVycm9y''@;'; + put 'put ''IG9jY3VycmVkOjwvcD48cHJlPiIrbmYodi5tZXNzYWdlKyIiLCEwKSsiPC9wcmU+Ijt0aHJvdyB2fX1lbC5vcHRpb25zPWVsLnNldE9wdGlvbnM9ZnVuY3Rpb24oZCl7cmV0dXJuIHc4KGVsLmRlZmF1bHRzLGQpLGZ1bmN0aW9uIHJqZShkKXtKTD1kfShlbC5kZWZhdWx0cyksZWx9LGVsLmdl''@;'; + put 'put ''dERlZmF1bHRzPWZ1bmN0aW9uIHp3ZSgpe3JldHVybntiYXNlVXJsOm51bGwsYnJlYWtzOiExLGV4dGVuc2lvbnM6bnVsbCxnZm06ITAsaGVhZGVySWRzOiEwLGhlYWRlclByZWZpeDoiIixoaWdobGlnaHQ6bnVsbCxsYW5nUHJlZml4OiJsYW5ndWFnZS0iLG1hbmdsZTohMCxwZWRhbnRpYzoh''@;'; + put 'put ''MSxyZW5kZXJlcjpudWxsLHNhbml0aXplOiExLHNhbml0aXplcjpudWxsLHNpbGVudDohMSxzbWFydExpc3RzOiExLHNtYXJ0eXBhbnRzOiExLHRva2VuaXplcjpudWxsLHdhbGtUb2tlbnM6bnVsbCx4aHRtbDohMX19LGVsLmRlZmF1bHRzPUpMLGVsLnVzZT1mdW5jdGlvbiguLi5kKXtjb25z''@;'; + put 'put ''dCBnPXc4KHt9LC4uLmQpLGg9ZWwuZGVmYXVsdHMuZXh0ZW5zaW9uc3x8e3JlbmRlcmVyczp7fSxjaGlsZFRva2Vuczp7fX07bGV0IHY7ZC5mb3JFYWNoKHk9PntpZih5LmV4dGVuc2lvbnMmJih2PSEwLHkuZXh0ZW5zaW9ucy5mb3JFYWNoKEM9PntpZighQy5uYW1lKXRocm93IG5ldyBFcnJv''@;'; + put 'put ''cigiZXh0ZW5zaW9uIG5hbWUgcmVxdWlyZWQiKTtpZihDLnJlbmRlcmVyKXtjb25zdCBJPWgucmVuZGVyZXJzP2gucmVuZGVyZXJzW0MubmFtZV06bnVsbDtoLnJlbmRlcmVyc1tDLm5hbWVdPUk/ZnVuY3Rpb24oLi4uail7bGV0IHVlPUMucmVuZGVyZXIuYXBwbHkodGhpcyxqKTtyZXR1cm4h''@;'; + put 'put ''MT09PXVlJiYodWU9SS5hcHBseSh0aGlzLGopKSx1ZX06Qy5yZW5kZXJlcn1pZihDLnRva2VuaXplcil7aWYoIUMubGV2ZWx8fCJibG9jayIhPT1DLmxldmVsJiYiaW5saW5lIiE9PUMubGV2ZWwpdGhyb3cgbmV3IEVycm9yKCJleHRlbnNpb24gbGV2ZWwgbXVzdCBiZSAnYmxvY2snIG9yICdp''@;'; + put 'put ''bmxpbmUnIik7aFtDLmxldmVsXT9oW0MubGV2ZWxdLnVuc2hpZnQoQy50b2tlbml6ZXIpOmhbQy5sZXZlbF09W0MudG9rZW5pemVyXSxDLnN0YXJ0JiYoImJsb2NrIj09PUMubGV2ZWw/aC5zdGFydEJsb2NrP2guc3RhcnRCbG9jay5wdXNoKEMuc3RhcnQpOmguc3RhcnRCbG9jaz1bQy5zdGFy''@;'; + put 'put ''dF06ImlubGluZSI9PT1DLmxldmVsJiYoaC5zdGFydElubGluZT9oLnN0YXJ0SW5saW5lLnB1c2goQy5zdGFydCk6aC5zdGFydElubGluZT1bQy5zdGFydF0pKX1DLmNoaWxkVG9rZW5zJiYoaC5jaGlsZFRva2Vuc1tDLm5hbWVdPUMuY2hpbGRUb2tlbnMpfSkpLHkucmVuZGVyZXIpe2NvbnN0''@;'; + put 'put ''IEM9ZWwuZGVmYXVsdHMucmVuZGVyZXJ8fG5ldyBDWjtmb3IoY29uc3QgSSBpbiB5LnJlbmRlcmVyKXtjb25zdCBqPUNbSV07Q1tJXT0oLi4udWUpPT57bGV0IF9lPXkucmVuZGVyZXJbSV0uYXBwbHkoQyx1ZSk7cmV0dXJuITE9PT1fZSYmKF9lPWouYXBwbHkoQyx1ZSkpLF9lfX1nLnJlbmRl''@;'; + put 'put ''cmVyPUN9aWYoeS50b2tlbml6ZXIpe2NvbnN0IEM9ZWwuZGVmYXVsdHMudG9rZW5pemVyfHxuZXcgRmhlO2Zvcihjb25zdCBJIGluIHkudG9rZW5pemVyKXtjb25zdCBqPUNbSV07Q1tJXT0oLi4udWUpPT57bGV0IF9lPXkudG9rZW5pemVyW0ldLmFwcGx5KEMsdWUpO3JldHVybiExPT09X2Um''@;'; + put 'put ''JihfZT1qLmFwcGx5KEMsdWUpKSxfZX19Zy50b2tlbml6ZXI9Q31pZih5LndhbGtUb2tlbnMpe2NvbnN0IEM9ZWwuZGVmYXVsdHMud2Fsa1Rva2VucztnLndhbGtUb2tlbnM9ZnVuY3Rpb24oSSl7eS53YWxrVG9rZW5zLmNhbGwodGhpcyxJKSxDJiZDLmNhbGwodGhpcyxJKX19diYmKGcuZXh0''@;'; + put 'put ''ZW5zaW9ucz1oKSxlbC5zZXRPcHRpb25zKGcpfSl9LGVsLndhbGtUb2tlbnM9ZnVuY3Rpb24oZCxnKXtmb3IoY29uc3QgaCBvZiBkKXN3aXRjaChnLmNhbGwoZWwsaCksaC50eXBlKXtjYXNlInRhYmxlIjpmb3IoY29uc3QgdiBvZiBoLmhlYWRlcillbC53YWxrVG9rZW5zKHYudG9rZW5zLGcp''@;'; + put 'put ''O2Zvcihjb25zdCB2IG9mIGgucm93cylmb3IoY29uc3QgeSBvZiB2KWVsLndhbGtUb2tlbnMoeS50b2tlbnMsZyk7YnJlYWs7Y2FzZSJsaXN0IjplbC53YWxrVG9rZW5zKGguaXRlbXMsZyk7YnJlYWs7ZGVmYXVsdDplbC5kZWZhdWx0cy5leHRlbnNpb25zJiZlbC5kZWZhdWx0cy5leHRlbnNp''@;'; + put 'put ''b25zLmNoaWxkVG9rZW5zJiZlbC5kZWZhdWx0cy5leHRlbnNpb25zLmNoaWxkVG9rZW5zW2gudHlwZV0/ZWwuZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1toLnR5cGVdLmZvckVhY2goZnVuY3Rpb24odil7ZWwud2Fsa1Rva2VucyhoW3ZdLGcpfSk6aC50b2tlbnMmJmVsLndhbGtU''@;'; + put 'put ''b2tlbnMoaC50b2tlbnMsZyl9fSxlbC5wYXJzZUlubGluZT1mdW5jdGlvbihkLGcpe2lmKG51bGw9PWQpdGhyb3cgbmV3IEVycm9yKCJtYXJrZWQucGFyc2VJbmxpbmUoKTogaW5wdXQgcGFyYW1ldGVyIGlzIHVuZGVmaW5lZCBvciBudWxsIik7aWYoInN0cmluZyIhPXR5cGVvZiBkKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigibWFya2VkLnBhcnNlSW5saW5lKCk6IGlucHV0IHBhcmFtZXRlciBpcyBvZiB0eXBlICIrT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpKyIsIHN0cmluZyBleHBlY3RlZCIpO1F3ZShnPXc4KHt9LGVsLmRlZmF1bHRzLGd8fHt9KSk7dHJ5e2NvbnN0IGg9Xzku''@;'; + put 'put ''bGV4SW5saW5lKGQsZyk7cmV0dXJuIGcud2Fsa1Rva2VucyYmZWwud2Fsa1Rva2VucyhoLGcud2Fsa1Rva2VucyksQzkucGFyc2VJbmxpbmUoaCxnKX1jYXRjaChoKXtpZihoLm1lc3NhZ2UrPSJcblBsZWFzZSByZXBvcnQgdGhpcyB0byBodHRwczovL2dpdGh1Yi5jb20vbWFya2VkanMvbWFy''@;'; + put 'put ''a2VkLiIsZy5zaWxlbnQpcmV0dXJuIjxwPkFuIGVycm9yIG9jY3VycmVkOjwvcD48cHJlPiIrbmYoaC5tZXNzYWdlKyIiLCEwKSsiPC9wcmU+Ijt0aHJvdyBofX0sZWwuUGFyc2VyPUM5LGVsLnBhcnNlcj1DOS5wYXJzZSxlbC5SZW5kZXJlcj1DWixlbC5UZXh0UmVuZGVyZXI9JHdlLGVsLkxl''@;'; + put 'put ''eGVyPV85LGVsLmxleGVyPV85LmxleCxlbC5Ub2tlbml6ZXI9RmhlLGVsLlNsdWdnZXI9cXdlLGVsLnBhcnNlPWVsO2NvbnN0IHdqZT1bIioiXTtsZXQgSGhlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9idXR0b25DbGljayQ9bmV3ICRlLHRoaXMuY29waWVkJD10aGlzLl9i''@;'; + put 'put ''dXR0b25DbGljayQucGlwZShZaCgoKT0+bnIoYWEoITApLGZ1bmN0aW9uIHFWZShkPTAsZyxoKXtsZXQgdj0tMTtyZXR1cm4gWndlKGcpP3Y9TnVtYmVyKGcpPDE/MTpOdW1iZXIoZyk6d3QoZykmJihoPWcpLHd0KGgpfHwoaD1vViksbmV3IEYoeT0+e2NvbnN0IEM9WndlKGQpP2Q6K2QtaC5u''@;'; + put 'put ''b3coKTtyZXR1cm4gaC5zY2hlZHVsZShlamUsQyx7aW5kZXg6MCxwZXJpb2Q6dixzdWJzY3JpYmVyOnl9KX0pfSgzZTMpLnBpcGUoRzUoITEpKSkpLGZ1bmN0aW9uIG1YKGQsZyl7cmV0dXJuIGg9PmgubGlmdChuZXcgV3NlKGQsZykpfSgpLGZ1bmN0aW9uIHRqZShkLGcsaCl7bGV0IHY7cmV0''@;'; + put 'put ''dXJuIHY9ZCYmIm9iamVjdCI9PXR5cGVvZiBkP2Q6e2J1ZmZlclNpemU6ZCx3aW5kb3dUaW1lOmcscmVmQ291bnQ6ITEsc2NoZWR1bGVyOmh9LHk9PnkubGlmdChmdW5jdGlvbiBuamUoe2J1ZmZlclNpemU6ZD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksd2luZG93VGltZTpnPU51bWJlci5Q''@;'; + put 'put ''T1NJVElWRV9JTkZJTklUWSxyZWZDb3VudDpoLHNjaGVkdWxlcjp2fSl7bGV0IHksSSxDPTAsaj0hMSx1ZT0hMTtyZXR1cm4gZnVuY3Rpb24oQmUpe2xldCBOZTtDKyssIXl8fGo/KGo9ITEseT1uZXcgTWsoZCxnLHYpLE5lPXkuc3Vic2NyaWJlKHRoaXMpLEk9QmUuc3Vic2NyaWJlKHtuZXh0''@;'; + put 'put ''KEtlKXt5Lm5leHQoS2UpfSxlcnJvcihLZSl7aj0hMCx5LmVycm9yKEtlKX0sY29tcGxldGUoKXt1ZT0hMCxJPXZvaWQgMCx5LmNvbXBsZXRlKCl9fSksdWUmJihJPXZvaWQgMCkpOk5lPXkuc3Vic2NyaWJlKHRoaXMpLHRoaXMuYWRkKCgpPT57Qy0tLE5lLnVuc3Vic2NyaWJlKCksTmU9dm9p''@;'; + put 'put ''ZCAwLEkmJiF1ZSYmaCYmMD09PUMmJihJLnVuc3Vic2NyaWJlKCksST12b2lkIDAseT12b2lkIDApfSl9fSh2KSl9KDEpKSx0aGlzLmNvcGllZFRleHQkPXRoaXMuY29waWVkJC5waXBlKE41KCExKSx2dChoPT5oPyJDb3BpZWQiOiJDb3B5IikpfW9uQ29weVRvQ2xpcGJvYXJkQ2xpY2soKXt0''@;'; + put 'put ''aGlzLl9idXR0b25DbGljayQubmV4dCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1sibWFya2Rvd24tY2xpcGJvYXJkIl1dLGRlY2xzOjQsdmFyczo3LGNvbnN0czpbWzEsIm1hcmtk''@;'; + put 'put ''b3duLWNsaXBib2FyZC1idXR0b24iLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoaXQoMCwiYnV0dG9uIiwwKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYub25Db3B5VG9DbGlwYm9hcmRDbGljaygpfSksbm4oMSwiYXN5bmMiKSxVdCgyKSxubigzLCJh''@;'; + put 'put ''c3luYyIpLHN0KCkpLDImaCYmKEZpKCJjb3BpZWQiLHp0KDEsMyx2LmNvcGllZCQpKSx1dCgyKSxHaSh6dCgzLDUsdi5jb3BpZWRUZXh0JCkpKX0sZGVwZW5kZW5jaWVzOltXaF0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksZH0pKCk7Y2xhc3MgQ2ple312YXIga1o9KCgp''@;'; + put 'put ''PT4oZnVuY3Rpb24oZCl7ZC5Db21tYW5kTGluZT0iY29tbWFuZC1saW5lIixkLkxpbmVIaWdobGlnaHQ9ImxpbmUtaGlnaGxpZ2h0IixkLkxpbmVOdW1iZXJzPSJsaW5lLW51bWJlcnMifShrWnx8KGtaPXt9KSksa1opKSgpO2NsYXNzIFNqZXt9Y29uc3QgZWJlPW5ldyB6ZSgiU0VDVVJJVFlf''@;'; + put 'put ''Q09OVEVYVCIpO2xldCBOaGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksail7dGhpcy5wbGF0Zm9ybT1oLHRoaXMuc2VjdXJpdHlDb250ZXh0PXYsdGhpcy5odHRwPXksdGhpcy5jbGlwYm9hcmRPcHRpb25zPUMsdGhpcy5zYW5pdGl6ZXI9aix0aGlzLkRFRkFVTFRfUEFS''@;'; + put 'put ''U0VfT1BUSU9OUz17ZGVjb2RlSHRtbDohMSxpbmxpbmU6ITEsZW1vamk6ITEsbWVybWFpZDohMSxtYXJrZWRPcHRpb25zOnZvaWQgMH0sdGhpcy5ERUZBVUxUX1JFTkRFUl9PUFRJT05TPXtjbGlwYm9hcmQ6ITEsY2xpcGJvYXJkT3B0aW9uczp2b2lkIDAsa2F0ZXg6ITEsa2F0ZXhPcHRpb25z''@;'; + put 'put ''OnZvaWQgMCxtZXJtYWlkOiExLG1lcm1haWRPcHRpb25zOnZvaWQgMH0sdGhpcy5ERUZBVUxUX01BUktFRF9PUFRJT05TPXtyZW5kZXJlcjpuZXcgQ1p9LHRoaXMuREVGQVVMVF9LQVRFWF9PUFRJT05TPXtkZWxpbWl0ZXJzOlt7bGVmdDoiJCQiLHJpZ2h0OiIkJCIsZGlzcGxheTohMH0se2xl''@;'; + put 'put ''ZnQ6IiQiLHJpZ2h0OiIkIixkaXNwbGF5OiExfSx7bGVmdDoiXFwoIixyaWdodDoiXFwpIixkaXNwbGF5OiExfSx7bGVmdDoiXFxiZWdpbntlcXVhdGlvbn0iLHJpZ2h0OiJcXGVuZHtlcXVhdGlvbn0iLGRpc3BsYXk6ITB9LHtsZWZ0OiJcXGJlZ2lue2FsaWdufSIscmlnaHQ6IlxcZW5ke2Fs''@;'; + put 'put ''aWdufSIsZGlzcGxheTohMH0se2xlZnQ6IlxcYmVnaW57YWxpZ25hdH0iLHJpZ2h0OiJcXGVuZHthbGlnbmF0fSIsZGlzcGxheTohMH0se2xlZnQ6IlxcYmVnaW57Z2F0aGVyfSIscmlnaHQ6IlxcZW5ke2dhdGhlcn0iLGRpc3BsYXk6ITB9LHtsZWZ0OiJcXGJlZ2lue0NEfSIscmlnaHQ6Ilxc''@;'; + put 'put ''ZW5ke0NEfSIsZGlzcGxheTohMH0se2xlZnQ6IlxcWyIscmlnaHQ6IlxcXSIsZGlzcGxheTohMH1dfSx0aGlzLkRFRkFVTFRfTUVSTUFJRF9PUFRJT05TPXtzdGFydE9uTG9hZDohMX0sdGhpcy5ERUZBVUxUX0NMSVBCT0FSRF9PUFRJT05TPXtidXR0b25Db21wb25lbnQ6dm9pZCAwfSx0aGlz''@;'; + put 'put ''Ll9yZWxvYWQkPW5ldyAkZSx0aGlzLnJlbG9hZCQ9dGhpcy5fcmVsb2FkJC5hc09ic2VydmFibGUoKSx0aGlzLm9wdGlvbnM9SX1nZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLl9vcHRpb25zfXNldCBvcHRpb25zKGgpe3RoaXMuX29wdGlvbnM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWdu''@;'; + put 'put ''KHt9LHRoaXMuREVGQVVMVF9NQVJLRURfT1BUSU9OUyksaCl9Z2V0IHJlbmRlcmVyKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5yZW5kZXJlcn1zZXQgcmVuZGVyZXIoaCl7dGhpcy5vcHRpb25zLnJlbmRlcmVyPWh9cGFyc2UoaCx2PXRoaXMuREVGQVVMVF9QQVJTRV9PUFRJT05TKXtjb25zdHtk''@;'; + put 'put ''ZWNvZGVIdG1sOnksaW5saW5lOkMsZW1vamk6SSxtZXJtYWlkOmosbWFya2VkT3B0aW9uczp1ZT10aGlzLm9wdGlvbnN9PXY7aiYmKHRoaXMucmVuZGVyZXI9dGhpcy5leHRlbmRSZW5kZXJlcih1ZS5yZW5kZXJlcnx8bmV3IENaKSk7Y29uc3QgX2U9dGhpcy50cmltSW5kZW50YXRpb24oaCks''@;'; + put 'put ''QmU9eT90aGlzLmRlY29kZUh0bWwoX2UpOl9lLE5lPUk/dGhpcy5wYXJzZUVtb2ppKEJlKTpCZSxLZT10aGlzLnBhcnNlTWFya2VkKE5lLHVlLEMpO3JldHVybiB0aGlzLnNhbml0aXplci5zYW5pdGl6ZSh0aGlzLnNlY3VyaXR5Q29udGV4dCxLZSl8fCIifXJlbmRlcihoLHY9dGhpcy5ERUZB''@;'; + put 'put ''VUxUX1JFTkRFUl9PUFRJT05TLHkpe2NvbnN0e2NsaXBib2FyZDpDLGNsaXBib2FyZE9wdGlvbnM6SSxrYXRleDpqLGthdGV4T3B0aW9uczp1ZSxtZXJtYWlkOl9lLG1lcm1haWRPcHRpb25zOkJlfT12O0MmJnRoaXMucmVuZGVyQ2xpcGJvYXJkKGgseSxPYmplY3QuYXNzaWduKE9iamVjdC5h''@;'; + put 'put ''c3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLkRFRkFVTFRfQ0xJUEJPQVJEX09QVElPTlMpLHRoaXMuY2xpcGJvYXJkT3B0aW9ucyksSSkpLGomJnRoaXMucmVuZGVyS2F0ZXgoaCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5ERUZBVUxUX0tBVEVYX09QVElPTlMpLHVl''@;'; + put 'put ''KSksX2UmJnRoaXMucmVuZGVyTWVybWFpZChoLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLkRFRkFVTFRfTUVSTUFJRF9PUFRJT05TKSxCZSkpLHRoaXMuaGlnaGxpZ2h0KGgpfXJlbG9hZCgpe3RoaXMuX3JlbG9hZCQubmV4dCgpfWdldFNvdXJjZShoKXtpZighdGhpcy5o''@;'; + put 'put ''dHRwKXRocm93IG5ldyBFcnJvcigiW25neC1tYXJrZG93bl0gV2hlbiB1c2luZyB0aGUgYHNyY2AgYXR0cmlidXRlIHlvdSAqaGF2ZSB0byogcGFzcyB0aGUgYEh0dHBDbGllbnRgIGFzIGEgcGFyYW1ldGVyIG9mIHRoZSBgZm9yUm9vdGAgbWV0aG9kLiBTZWUgUkVBRE1FIGZvciBtb3JlIGlu''@;'; + put 'put ''Zm9ybWF0aW9uIik7cmV0dXJuIHRoaXMuaHR0cC5nZXQoaCx7cmVzcG9uc2VUeXBlOiJ0ZXh0In0pLnBpcGUodnQodj0+dGhpcy5oYW5kbGVFeHRlbnNpb24oaCx2KSkpfWhpZ2hsaWdodChoKXtpZighU2wodGhpcy5wbGF0Zm9ybSl8fCJ1bmRlZmluZWQiPT10eXBlb2YgUHJpc218fHZvaWQg''@;'; + put 'put ''MD09PVByaXNtLmhpZ2hsaWdodEFsbFVuZGVyKXJldHVybjtofHwoaD1kb2N1bWVudCk7Y29uc3Qgdj1oLnF1ZXJ5U2VsZWN0b3JBbGwoJ3ByZSBjb2RlOm5vdChbY2xhc3MqPSJsYW5ndWFnZS0iXSknKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHYseT0+eS5jbGFzc0xpc3QuYWRk''@;'; + put 'put ''KCJsYW5ndWFnZS1ub25lIikpLFByaXNtLmhpZ2hsaWdodEFsbFVuZGVyKGgpfWRlY29kZUh0bWwoaCl7aWYoIVNsKHRoaXMucGxhdGZvcm0pKXJldHVybiBoO2NvbnN0IHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtyZXR1cm4gdi5pbm5lckhUTUw9aCx2LnZhbHVlfWV4''@;'; + put 'put ''dGVuZFJlbmRlcmVyKGgpe2NvbnN0IHY9aDtpZighMD09PXYuXHUwMjc1Tmd4TWFya2Rvd25SZW5kZXJlckV4dGVuZGVkKXJldHVybiBoO2NvbnN0IHk9aC5jb2RlO3JldHVybiBoLmNvZGU9ZnVuY3Rpb24oQyxJLGope3JldHVybiJtZXJtYWlkIj09PUk/YDxkaXYgY2xhc3M9Im1lcm1haWQi''@;'; + put 'put ''PiR7Q308L2Rpdj5gOnkuY2FsbCh0aGlzLEMsSSxqKX0sdi5cdTAyNzVOZ3hNYXJrZG93blJlbmRlcmVyRXh0ZW5kZWQ9ITAsaH1oYW5kbGVFeHRlbnNpb24oaCx2KXtjb25zdCB5PWgubGFzdEluZGV4T2YoIjovLyIpLEM9eT4tMT9oLnN1YnN0cmluZyh5KzQpOmgsST1DLmxhc3RJbmRleE9m''@;'; + put 'put ''KCIvIiksaj1JPi0xP0Muc3Vic3RyaW5nKEkrMSkuc3BsaXQoIj8iKVswXToiIix1ZT1qLmxhc3RJbmRleE9mKCIuIiksX2U9dWU+LTE/ai5zdWJzdHJpbmcodWUrMSk6IiI7cmV0dXJuIF9lJiYibWQiIT09X2U/ImBgYCIrX2UrIlxuIit2KyJcbmBgYCI6dn1wYXJzZU1hcmtlZChoLHYseT0h''@;'; + put 'put ''MSl7cmV0dXJuIFNsKHRoaXMucGxhdGZvcm0pP3k/ZWwucGFyc2VJbmxpbmUoaCx2KTplbC5wYXJzZShoLHYpOmh9cGFyc2VFbW9qaShoKXtpZighU2wodGhpcy5wbGF0Zm9ybSkpcmV0dXJuIGg7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBqb3lwaXhlbHN8fHZvaWQgMD09PWpveXBpeGVscy5z''@;'; + put 'put ''aG9ydG5hbWVUb1VuaWNvZGUpdGhyb3cgbmV3IEVycm9yKCJbbmd4LW1hcmtkb3duXSBXaGVuIHVzaW5nIHRoZSBgZW1vamlgIGF0dHJpYnV0ZSB5b3UgKmhhdmUgdG8qIGluY2x1ZGUgRW1vamktVG9vbGtpdCBmaWxlcyB0byBgYW5ndWxhci5qc29uYCBvciB1c2UgaW1wb3J0cy4gU2VlIFJF''@;'; + put 'put ''QURNRSBmb3IgbW9yZSBpbmZvcm1hdGlvbiIpO3JldHVybiBqb3lwaXhlbHMuc2hvcnRuYW1lVG9Vbmljb2RlKGgpfXJlbmRlckthdGV4KGgsdil7aWYoU2wodGhpcy5wbGF0Zm9ybSkpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2Yga2F0ZXh8fCJ1bmRlZmluZWQiPT10eXBlb2YgcmVuZGVyTWF0''@;'; + put 'put ''aEluRWxlbWVudCl0aHJvdyBuZXcgRXJyb3IoIltuZ3gtbWFya2Rvd25dIFdoZW4gdXNpbmcgdGhlIGBrYXRleGAgYXR0cmlidXRlIHlvdSAqaGF2ZSB0byogaW5jbHVkZSBLYVRlWCBmaWxlcyB0byBgYW5ndWxhci5qc29uYCBvciB1c2UgaW1wb3J0cy4gU2VlIFJFQURNRSBmb3IgbW9yZSBp''@;'; + put 'put ''bmZvcm1hdGlvbiIpO3JlbmRlck1hdGhJbkVsZW1lbnQoaCx2KX19cmVuZGVyQ2xpcGJvYXJkKGgsdix5KXtpZighU2wodGhpcy5wbGF0Zm9ybSkpcmV0dXJuO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgQ2xpcGJvYXJkSlMpdGhyb3cgbmV3IEVycm9yKCJbbmd4LW1hcmtkb3duXSBXaGVuIHVz''@;'; + put 'put ''aW5nIHRoZSBgY2xpcGJvYXJkYCBhdHRyaWJ1dGUgeW91ICpoYXZlIHRvKiBpbmNsdWRlIENsaXBib2FyZCBmaWxlcyB0byBgYW5ndWxhci5qc29uYCBvciB1c2UgaW1wb3J0cy4gU2VlIFJFQURNRSBmb3IgbW9yZSBpbmZvcm1hdGlvbiIpO2lmKCF2KXRocm93IG5ldyBFcnJvcigiW25neC1t''@;'; + put 'put ''YXJrZG93bl0gV2hlbiB1c2luZyB0aGUgYGNsaXBib2FyZGAgYXR0cmlidXRlIHlvdSAqaGF2ZSB0byogcHJvdmlkZSB0aGUgYHZpZXdDb250YWluZXJSZWZgIHBhcmFtZXRlciB0byBgTWFya2Rvd25TZXJ2aWNlLnJlbmRlcigpYCBmdW5jdGlvbiIpO2NvbnN0e2J1dHRvbkNvbXBvbmVudDpD''@;'; + put 'put ''LGJ1dHRvblRlbXBsYXRlOkl9PXksaj1oLnF1ZXJ5U2VsZWN0b3JBbGwoInByZSIpO2ZvcihsZXQgdWU9MDt1ZTxqLmxlbmd0aDt1ZSsrKXtjb25zdCBfZT1qLml0ZW0odWUpLEJlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0JlLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsX2Uu''@;'; + put 'put ''cGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoQmUsX2UpLEJlLmFwcGVuZENoaWxkKF9lKTtjb25zdCBOZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtsZXQgS2UsZHQ7TmUuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixOZS5zdHlsZS50b3A9Ii41ZW0iLE5lLnN0eWxlLnJpZ2h0PSIu''@;'; + put 'put ''NWVtIixOZS5zdHlsZS5vcGFjaXR5PSIwIixOZS5zdHlsZS50cmFuc2l0aW9uPSJvcGFjaXR5IDI1MG1zIGVhc2Utb3V0IixCZS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsTmUpLF9lLm9ubW91c2VvdmVyPSgpPT5OZS5zdHlsZS5vcGFjaXR5PSIxIixfZS5vbm1vdXNlb3V0''@;'; + put 'put ''PSgpPT5OZS5zdHlsZS5vcGFjaXR5PSIwIixLZT1DP3YuY3JlYXRlQ29tcG9uZW50KEMpLmhvc3RWaWV3Okk/di5jcmVhdGVFbWJlZGRlZFZpZXcoSSk6di5jcmVhdGVDb21wb25lbnQoSGhlKS5ob3N0VmlldyxLZS5yb290Tm9kZXMuZm9yRWFjaChPdD0+e090Lm9ubW91c2VvdmVyPSgpPT5O''@;'; + put 'put ''ZS5zdHlsZS5vcGFjaXR5PSIxIixOZS5hcHBlbmRDaGlsZChPdCksZHQ9bmV3IENsaXBib2FyZEpTKE90LHt0ZXh0OigpPT5fZS5pbm5lclRleHR9KX0pLEtlLm9uRGVzdHJveSgoKT0+ZHQuZGVzdHJveSgpKX19cmVuZGVyTWVybWFpZChoLHY9dGhpcy5ERUZBVUxUX01FUk1BSURfT1BUSU9O''@;'; + put 'put ''Uyl7aWYoIVNsKHRoaXMucGxhdGZvcm0pKXJldHVybjtpZigidW5kZWZpbmVkIj09dHlwZW9mIG1lcm1haWR8fHZvaWQgMD09PW1lcm1haWQuaW5pdCl0aHJvdyBuZXcgRXJyb3IoIltuZ3gtbWFya2Rvd25dIFdoZW4gdXNpbmcgdGhlIGBtZXJtYWlkYCBhdHRyaWJ1dGUgeW91ICpoYXZlIHRv''@;'; + put 'put ''KiBpbmNsdWRlIE1lcm1haWQgZmlsZXMgdG8gYGFuZ3VsYXIuanNvbmAgb3IgdXNlIGltcG9ydHMuIFNlZSBSRUFETUUgZm9yIG1vcmUgaW5mb3JtYXRpb24iKTtjb25zdCB5PWgucXVlcnlTZWxlY3RvckFsbCgiLm1lcm1haWQiKTswIT09eS5sZW5ndGgmJihtZXJtYWlkLmluaXRpYWxpemUo''@;'; + put 'put ''diksbWVybWFpZC5pbml0KHkpKX10cmltSW5kZW50YXRpb24oaCl7aWYoIWgpcmV0dXJuIiI7bGV0IHY7cmV0dXJuIGguc3BsaXQoIlxuIikubWFwKHk9PntsZXQgQz12O3JldHVybiB5Lmxlbmd0aD4wJiYoQz1pc05hTihDKT95LnNlYXJjaCgvXFN8JC8pOk1hdGgubWluKHkuc2VhcmNoKC9c''@;'; + put 'put ''U3wkLyksQykpLGlzTmFOKHYpJiYodj1DKSxDP3kuc3Vic3RyaW5nKEMpOnl9KS5qb2luKCJcbiIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShEMiksQ2koZWJlKSxDaShUSCw4KSxDaShDamUsOCksQ2koU2plLDgpLENpKGM3KSl9LGQuXHUw''@;'; + put 'put ''Mjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksdGJlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuZWxlbWVudD1oLHRoaXMubWFya2Rvd25TZXJ2aWNlPXYsdGhpcy52aWV3Q29udGFpbmVyUmVmPXksdGhpcy5lcnJvcj1uZXcgYXIs''@;'; + put 'put ''dGhpcy5sb2FkPW5ldyBhcix0aGlzLnJlYWR5PW5ldyBhcix0aGlzLl9jb21tYW5kTGluZT0hMSx0aGlzLl9jbGlwYm9hcmQ9ITEsdGhpcy5fZW1vamk9ITEsdGhpcy5faW5saW5lPSExLHRoaXMuX2thdGV4PSExLHRoaXMuX2xpbmVIaWdobGlnaHQ9ITEsdGhpcy5fbGluZU51bWJlcnM9ITEs''@;'; + put 'put ''dGhpcy5fbWVybWFpZD0hMSx0aGlzLmRlc3Ryb3llZCQ9bmV3ICRlfWdldCBpbmxpbmUoKXtyZXR1cm4gdGhpcy5faW5saW5lfXNldCBpbmxpbmUoaCl7dGhpcy5faW5saW5lPXRoaXMuY29lcmNlQm9vbGVhblByb3BlcnR5KGgpfWdldCBjbGlwYm9hcmQoKXtyZXR1cm4gdGhpcy5fY2xpcGJv''@;'; + put 'put ''YXJkfXNldCBjbGlwYm9hcmQoaCl7dGhpcy5fY2xpcGJvYXJkPXRoaXMuY29lcmNlQm9vbGVhblByb3BlcnR5KGgpfWdldCBlbW9qaSgpe3JldHVybiB0aGlzLl9lbW9qaX1zZXQgZW1vamkoaCl7dGhpcy5fZW1vamk9dGhpcy5jb2VyY2VCb29sZWFuUHJvcGVydHkoaCl9Z2V0IGthdGV4KCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuX2thdGV4fXNldCBrYXRleChoKXt0aGlzLl9rYXRleD10aGlzLmNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShoKX1nZXQgbWVybWFpZCgpe3JldHVybiB0aGlzLl9tZXJtYWlkfXNldCBtZXJtYWlkKGgpe3RoaXMuX21lcm1haWQ9dGhpcy5jb2VyY2VCb29sZWFuUHJvcGVydHko''@;'; + put 'put ''aCl9Z2V0IGxpbmVIaWdobGlnaHQoKXtyZXR1cm4gdGhpcy5fbGluZUhpZ2hsaWdodH1zZXQgbGluZUhpZ2hsaWdodChoKXt0aGlzLl9saW5lSGlnaGxpZ2h0PXRoaXMuY29lcmNlQm9vbGVhblByb3BlcnR5KGgpfWdldCBsaW5lTnVtYmVycygpe3JldHVybiB0aGlzLl9saW5lTnVtYmVyc31z''@;'; + put 'put ''ZXQgbGluZU51bWJlcnMoaCl7dGhpcy5fbGluZU51bWJlcnM9dGhpcy5jb2VyY2VCb29sZWFuUHJvcGVydHkoaCl9Z2V0IGNvbW1hbmRMaW5lKCl7cmV0dXJuIHRoaXMuX2NvbW1hbmRMaW5lfXNldCBjb21tYW5kTGluZShoKXt0aGlzLl9jb21tYW5kTGluZT10aGlzLmNvZXJjZUJvb2xlYW5Q''@;'; + put 'put ''cm9wZXJ0eShoKX1uZ09uQ2hhbmdlcygpe3RoaXMubG9hZENvbnRlbnQoKX1sb2FkQ29udGVudCgpe251bGw9PXRoaXMuZGF0YT9udWxsPT10aGlzLnNyY3x8dGhpcy5oYW5kbGVTcmMoKTp0aGlzLmhhbmRsZURhdGEoKX1uZ0FmdGVyVmlld0luaXQoKXshdGhpcy5kYXRhJiYhdGhpcy5zcmMm''@;'; + put 'put ''JnRoaXMuaGFuZGxlVHJhbnNjbHVzaW9uKCksdGhpcy5tYXJrZG93blNlcnZpY2UucmVsb2FkJC5waXBlKGo3KHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoKT0+dGhpcy5sb2FkQ29udGVudCgpKX1uZ09uRGVzdHJveSgpe3RoaXMuZGVzdHJveWVkJC5uZXh0KCksdGhpcy5kZXN0cm95''@;'; + put 'put ''ZWQkLmNvbXBsZXRlKCl9cmVuZGVyKGgsdj0hMSl7Y29uc3QgQz17Y2xpcGJvYXJkOnRoaXMuY2xpcGJvYXJkLGNsaXBib2FyZE9wdGlvbnM6e2J1dHRvbkNvbXBvbmVudDp0aGlzLmNsaXBib2FyZEJ1dHRvbkNvbXBvbmVudCxidXR0b25UZW1wbGF0ZTp0aGlzLmNsaXBib2FyZEJ1dHRvblRl''@;'; + put 'put ''bXBsYXRlfSxrYXRleDp0aGlzLmthdGV4LGthdGV4T3B0aW9uczp0aGlzLmthdGV4T3B0aW9ucyxtZXJtYWlkOnRoaXMubWVybWFpZCxtZXJtYWlkT3B0aW9uczp0aGlzLm1lcm1haWRPcHRpb25zfSxJPXRoaXMubWFya2Rvd25TZXJ2aWNlLnBhcnNlKGgse2RlY29kZUh0bWw6dixpbmxpbmU6''@;'; + put 'put ''dGhpcy5pbmxpbmUsZW1vamk6dGhpcy5lbW9qaSxtZXJtYWlkOnRoaXMubWVybWFpZH0pO3RoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmlubmVySFRNTD1JLHRoaXMuaGFuZGxlUGx1Z2lucygpLHRoaXMubWFya2Rvd25TZXJ2aWNlLnJlbmRlcih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVu''@;'; + put 'put ''dCxDLHRoaXMudmlld0NvbnRhaW5lclJlZiksdGhpcy5yZWFkeS5lbWl0KCl9Y29lcmNlQm9vbGVhblByb3BlcnR5KGgpe3JldHVybiBudWxsIT1oJiYiZmFsc2UiIT1gJHtTdHJpbmcoaCl9YH1oYW5kbGVEYXRhKCl7dGhpcy5yZW5kZXIodGhpcy5kYXRhKX1oYW5kbGVTcmMoKXt0aGlzLm1h''@;'; + put 'put ''cmtkb3duU2VydmljZS5nZXRTb3VyY2UodGhpcy5zcmMpLnN1YnNjcmliZSh7bmV4dDpoPT57dGhpcy5yZW5kZXIoaCksdGhpcy5sb2FkLmVtaXQoaCl9LGVycm9yOmg9PnRoaXMuZXJyb3IuZW1pdChoKX0pfWhhbmRsZVRyYW5zY2x1c2lvbigpe3RoaXMucmVuZGVyKHRoaXMuZWxlbWVudC5u''@;'; + put 'put ''YXRpdmVFbGVtZW50LmlubmVySFRNTCwhMCl9aGFuZGxlUGx1Z2lucygpe3RoaXMuY29tbWFuZExpbmUmJih0aGlzLnNldFBsdWdpbkNsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LGtaLkNvbW1hbmRMaW5lKSx0aGlzLnNldFBsdWdpbk9wdGlvbnModGhpcy5lbGVtZW50Lm5hdGl2''@;'; + put 'put ''ZUVsZW1lbnQse2RhdGFGaWx0ZXJPdXRwdXQ6dGhpcy5maWx0ZXJPdXRwdXQsZGF0YUhvc3Q6dGhpcy5ob3N0LGRhdGFQcm9tcHQ6dGhpcy5wcm9tcHQsZGF0YU91dHB1dDp0aGlzLm91dHB1dCxkYXRhVXNlcjp0aGlzLnVzZXJ9KSksdGhpcy5saW5lSGlnaGxpZ2h0JiZ0aGlzLnNldFBsdWdp''@;'; + put 'put ''bk9wdGlvbnModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQse2RhdGFMaW5lOnRoaXMubGluZSxkYXRhTGluZU9mZnNldDp0aGlzLmxpbmVPZmZzZXR9KSx0aGlzLmxpbmVOdW1iZXJzJiYodGhpcy5zZXRQbHVnaW5DbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxrWi5MaW5lTnVt''@;'; + put 'put ''YmVycyksdGhpcy5zZXRQbHVnaW5PcHRpb25zKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LHtkYXRhU3RhcnQ6dGhpcy5zdGFydH0pKX1zZXRQbHVnaW5DbGFzcyhoLHYpe2NvbnN0IHk9aC5xdWVyeVNlbGVjdG9yQWxsKCJwcmUiKTtmb3IobGV0IEM9MDtDPHkubGVuZ3RoO0MrKyl7Y29u''@;'; + put 'put ''c3QgST12IGluc3RhbmNlb2YgQXJyYXk/djpbdl07eS5pdGVtKEMpLmNsYXNzTGlzdC5hZGQoLi4uSSl9fXNldFBsdWdpbk9wdGlvbnMoaCx2KXtjb25zdCB5PWgucXVlcnlTZWxlY3RvckFsbCgicHJlIik7Zm9yKGxldCBDPTA7Qzx5Lmxlbmd0aDtDKyspT2JqZWN0LmtleXModikuZm9yRWFj''@;'; + put 'put ''aChJPT57Y29uc3Qgaj12W0ldO2lmKGope2NvbnN0IHVlPXRoaXMudG9MaXNwQ2FzZShJKTt5Lml0ZW0oQykuc2V0QXR0cmlidXRlKHVlLGoudG9TdHJpbmcoKSl9fSl9dG9MaXNwQ2FzZShoKXtjb25zdCB2PWgubWF0Y2goLyhbQS1aXSkvZyk7aWYoIXYpcmV0dXJuIGg7bGV0IHk9aC50b1N0''@;'; + put 'put ''cmluZygpO2ZvcihsZXQgQz0wLEk9di5sZW5ndGg7QzxJO0MrKyl5PXkucmVwbGFjZShuZXcgUmVnRXhwKHZbQ10pLCItIit2W0NdLnRvTG93ZXJDYXNlKCkpO3JldHVybiItIj09PXkuc2xpY2UoMCwxKSYmKHk9eS5zbGljZSgxKSkseX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgp''@;'; + put 'put ''e3JldHVybiBuZXcoaHx8ZCkoWHQoYm8pLFh0KE5oZSksWHQoVWkpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1sibWFya2Rvd24iXSxbIiIsIm1hcmtkb3duIiwiIl1dLGlucHV0czp7ZGF0YToiZGF0YSIsc3JjOiJzcmMiLGlubGluZToiaW5saW5lIixjbGlwYm9hcmQ6''@;'; + put 'put ''ImNsaXBib2FyZCIsY2xpcGJvYXJkQnV0dG9uQ29tcG9uZW50OiJjbGlwYm9hcmRCdXR0b25Db21wb25lbnQiLGNsaXBib2FyZEJ1dHRvblRlbXBsYXRlOiJjbGlwYm9hcmRCdXR0b25UZW1wbGF0ZSIsZW1vamk6ImVtb2ppIixrYXRleDoia2F0ZXgiLGthdGV4T3B0aW9uczoia2F0ZXhPcHRp''@;'; + put 'put ''b25zIixtZXJtYWlkOiJtZXJtYWlkIixtZXJtYWlkT3B0aW9uczoibWVybWFpZE9wdGlvbnMiLGxpbmVIaWdobGlnaHQ6ImxpbmVIaWdobGlnaHQiLGxpbmU6ImxpbmUiLGxpbmVPZmZzZXQ6ImxpbmVPZmZzZXQiLGxpbmVOdW1iZXJzOiJsaW5lTnVtYmVycyIsc3RhcnQ6InN0YXJ0Iixjb21t''@;'; + put 'put ''YW5kTGluZToiY29tbWFuZExpbmUiLGZpbHRlck91dHB1dDoiZmlsdGVyT3V0cHV0Iixob3N0OiJob3N0Iixwcm9tcHQ6InByb21wdCIsb3V0cHV0OiJvdXRwdXQiLHVzZXI6InVzZXIifSxvdXRwdXRzOntlcnJvcjoiZXJyb3IiLGxvYWQ6ImxvYWQiLHJlYWR5OiJyZWFkeSJ9LGZlYXR1cmVz''@;'; + put 'put ''OltQMl0sbmdDb250ZW50U2VsZWN0b3JzOndqZSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxMamU9KCgpPT57Y2xhc3MgZHtzdGF0aWMgZm9yUm9vdChoKXtyZXR1cm57bmdNb2R1bGU6ZCxw''@;'; + put 'put ''cm92aWRlcnM6W05oZSxoJiZoLmxvYWRlcnx8W10saCYmaC5jbGlwYm9hcmRPcHRpb25zfHxbXSxoJiZoLm1hcmtlZE9wdGlvbnN8fFtdLHtwcm92aWRlOmViZSx1c2VWYWx1ZTpoJiZudWxsIT1oLnNhbml0aXplP2guc2FuaXRpemU6YTIuSFRNTH1dfX1zdGF0aWMgZm9yQ2hpbGQoKXtyZXR1''@;'; + put 'put ''cm57bmdNb2R1bGU6ZH19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W2JhXX0pLGR9KSgpO3ZhciBuYmU7IWZ1bmN0aW9uKGQpe2xldCBnO3ZhciB5O2xldCBo''@;'; + put 'put ''LHY7KHk9Zz1kLlNlY3VyaXR5TGV2ZWx8fChkLlNlY3VyaXR5TGV2ZWw9e30pKS5TdHJpY3Q9InN0cmljdCIseS5Mb29zZT0ibG9vc2UiLHkuQW50aXNjcmlwdD0iYW50aXNjcmlwdCIseS5TYW5kYm94PSJzYW5kYm94IixmdW5jdGlvbih5KXt5LkJhc2U9ImJhc2UiLHkuRm9yZXN0PSJmb3Jl''@;'; + put 'put ''c3QiLHkuRGFyaz0iZGFyayIseS5EZWZhdWx0PSJkZWZhdWx0Iix5Lk5ldXRyYWw9Im5ldXRyYWwifShoPWQuVGhlbWV8fChkLlRoZW1lPXt9KSksZnVuY3Rpb24oeSl7eVt5LkRlYnVnPTFdPSJEZWJ1ZyIseVt5LkluZm89Ml09IkluZm8iLHlbeS5XYXJuPTNdPSJXYXJuIix5W3kuRXJyb3I9''@;'; + put 'put ''NF09IkVycm9yIix5W3kuRmF0YWw9NV09IkZhdGFsIn0odj1kLkxvZ0xldmVsfHwoZC5Mb2dMZXZlbD17fSkpfShuYmV8fChuYmU9e30pKTtsZXQgT2plPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5zYXNTZXJ2aWNlPWgsdGhpcy5hZ3JlZUNoZWNrZWQ9ITEsdGhpcy5hZ3Jl''@;'; + put 'put ''ZUJveExvY2tlZD0hMCx0aGlzLmFncmVlQ2xpY2tlZD0hMSx0aGlzLmV1bGFfbWFya2Rvd249J1xuRW5kIFVzZXIgTGljZW5jZSBBZ3JlZW1lbnQgZm9yIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZVxuPT09PT09PT09PT09PT09PT09PT1cblBsZWFzZSByZWFkIHRoaXMgRW5kIFVzZXIg''@;'; + put 'put ''TGljZW5zZSBBZ3JlZW1lbnQgKCJFVUxBIikgYmVmb3JlIFlvdSBkb3dubG9hZCwgaW5zdGFsbCwgZXhhbWluZSwgb3Igb3RoZXJ3aXNlIHVzZSBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWVcblxuQnkgZG93bmxvYWRpbmcgYW5kIHVzaW5nIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhh''@;'; + put 'put ''ZSwgWW91IGFncmVlLCB3aXRob3V0IHJlc2VydmF0aW9uIHRvIGJlIGJvdW5kIGJ5IHRoZSB0ZXJtcyBvZiB0aGlzIEVVTEEuIElmIFlvdSBkbyBub3QgYWdyZWUgd2l0aCB0aGUgdGVybXMgb2YgdGhpcyBFVUxBLCBwbGVhc2UgZG8gbm90IHB1cmNoYXNlIGEgTGljZW5zZSBLZXkgYW5kL29y''@;'; + put 'put ''IGRvd25sb2FkIGFuZCB1c2UgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlLlxuXG5JZiBZb3UgYWNjZXB0IHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBpbiB0aGlzIEVVTEEgb24gYmVoYWxmIG9mIGEgY29tcGFueSBvciBvdGhlciBsZWdhbCBlbnRpdHksIFlvdSB3YXJyYW50IHRoYXQg''@;'; + put 'put ''WW91IGhhdmUgZnVsbCBsZWdhbCBhdXRob3JpdHkgdG8gYWNjZXB0IHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBpbiB0aGlzIEVVTEEgb24gYmVoYWxmIG9mIHN1Y2ggY29tcGFueSBvciBvdGhlciBsZWdhbCBlbnRpdHksIGFuZCB0byBsZWdhbGx5IGJpbmQgc3VjaCBjb21wYW55IG9yIG90''@;'; + put 'put ''aGVyIGxlZ2FsIGVudGl0eS5cblxuWW91IG1heSBub3QgYWNjZXB0IHRoaXMgRVVMQSBpZiBZb3UgYXJlIG5vdCBvZiBsZWdhbCBhZ2UgdG8gZm9ybSBhIGJpbmRpbmcgY29udHJhY3Qgd2l0aCA0R0wgQXBwcy5cblxuIyMgRGVmaW5pdGlvbnNcbkluIHRoaXMgRVVMQSB0aGUgZXhwcmVzc2lv''@;'; + put 'put ''bnMgYmVsb3cgc2hhbGwgaGF2ZSB0aGUgbWVhbmluZyBhc3NpZ25lZCB0byB0aGVtIGluIHRoaXMgY2xhdXNlLCB1bmxlc3MgdGhlIGNvbnRleHQgcmVxdWlyZXMgb3RoZXJ3aXNlOlxuXG4qICoqIkFjdGl2YXRlIioqIHR1cm5pbmcgdGhlIFRyaWFsIHZlcnNpb24gaW50byB0aGUgRnVsbCB2''@;'; + put 'put ''ZXJzaW9uIG9mIHRoZSBzYW1lIGFwcGxpY2F0aW9uIHdpdGggdGhlIExpY2Vuc2UgS2V5IHByb3ZpZGVkIGJ5IDRHTCBBcHBzO1xuKiAqKiJEb2N1bWVudGF0aW9uIioqIHRoZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUsIGl0cyBmZWF0''@;'; + put 'put ''dXJlcyBhbmQgdGhlIHN5c3RlbSByZXF1aXJlbWVudHMgYXMgbWFkZSBhdmFpbGFibGUgb24gaHR0cHM6Ly9kb2NzLmRhdGFjb250cm9sbGVyLmlvLCBhcyBhbWVuZGVkIGZyb20gdGltZSB0byB0aW1lO1xuKiAqKiJGdWxsIHZlcnNpb24iKiogdGhlIGxpY2Vuc2UgZm9yIERhdGEgQ29udHJv''@;'; + put 'put ''bGxlciBmb3IgU0FTXHhhZSBmb3IgdGhlIHRlcm0gc3BlY2lmaWVkIG9uIHRoZSB3ZWJwYWdlIG9mIHRoZSBzdG9yZSB3aGVyZSBZb3UgcHVyY2hhc2UgdGhlIGxpY2Vuc2UsIG9yIGluIGFueSBhcHBsaWNhYmxlIGFncmVlbWVudCBjb25jZXJuaW5nIHRoZSBwdXJjaGFzZSBvZiB0aGUgbGlj''@;'; + put 'put ''ZW5zZSAoYXMgc3RhbmQtYWxvbmUgcHJvZHVjdCBvciBhcyBwYXJ0IG9mIGEgc3Vic2NyaXB0aW9uKSB0byBVc2UgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlO1xuKiAqKiJMaWNlbnNlIEtleSIqKiBhbiB1bmlxdWUgY29kZSBwcm92aWRlZCBieSA0R0wgQXBwcywgd2hpY2ggZW5hYmxl''@;'; + put 'put ''cyBZb3UgdG8gYWN0aXZhdGUgdGhlIEZ1bGwgdmVyc2lvbiBieSBlbnRlcmluZyB0aGUgY29kZSBpbnRvIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBhbmQgdG8gc3Vic2VxdWVudGx5IHVzZSBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgZHVyaW5nIHRoZSBhcHBsaWNhYmxlIGxp''@;'; + put 'put ''Y2Vuc2UgdGVybTtcbiogKioiT3BlbiBTb3VyY2UgU29mdHdhcmVcdTIwMWQqKiBhbnkgc29mdHdhcmUgdGhhdCByZXF1aXJlcyBhcyBhIGNvbmRpdGlvbiBvZiB1c2UsIGNvcHlpbmcsIG1vZGlmaWNhdGlvbiBhbmQvb3IgZGlzdHJpYnV0aW9uIG9mIHN1Y2ggc29mdHdhcmUgdGhhdCBzdWNo''@;'; + put 'put ''IHNvZnR3YXJlIG9yIG90aGVyIHNvZnR3YXJlIGluY29ycG9yYXRlZCBpbnRvLCBkZXJpdmVkIGZyb20gb3IgZGlzdHJpYnV0ZWQgd2l0aCBzdWNoIHNvZnR3YXJlIChhKSBiZSBkaXNjbG9zZWQgb3IgZGlzdHJpYnV0ZWQgaW4gc291cmNlIGNvZGUgZm9ybSwgYW5kIChiKSBiZSBsaWNlbnNl''@;'; + put 'put ''ZCBmb3IgdGhlIHB1cnBvc2Ugb2YgbWFraW5nIGFuZC9vciBkaXN0cmlidXRpbmcgZGVyaXZhdGl2ZSB3b3JrcywgYW5kIChjKSBiZSByZWRpc3RyaWJ1dGFibGUgYXQgbm8gY2hhcmdlO1xuKiAqKiI0R0wgQXBwcyIqKiBhIGJyYW5kIG93bmVkIGFuZCBtYW5hZ2VkIGJ5IEJvd2UgSU8gTHRk''@;'; + put 'put ''LCBhIGNvbXBhbnkgaW5jb3Jwb3JhdGVkIGFuZCByZWdpc3RlcmVkIGluIEVuZ2xhbmQgd2l0aCBSZWdpc3RlcmVkIE51bWJlciAwODc3NzE3MSB3aG9zZSByZWdpc3RlcmVkIG9mZmljZSBpcyBhdCAyOSBPbGRmaWVsZCBSZCwgV2luZGVybWVyZSwgQ3VtYnJpYSwgTEEyMyAyQVpcbiogKioi''@;'; + put 'put ''RGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlXHUyMDFkIGFueSBzb2Z0d2FyZSBhcHBsaWNhdGlvbiBhbmQvb3IgYWxsIG9mIHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZXMgYW5kL29yIG90aGVyIG1lZGlhLCBpbmNsdWRpbmcgc29mdHdhcmUgc2V0dXAgZmlsZXMsIGxpY2Vuc2VkIHRvIFlv''@;'; + put 'put ''dSBieSA0R0wgQXBwcywgaW5jbHVkaW5nIGFueSBVcGRhdGVzO1xuKiAqKiJUcmlhbCB2ZXJzaW9uXHUyMDFkKiogdGhlIGxpY2Vuc2UgZm9yIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBmb3IgdGhlIHRlcm0gb2YgMzAgZGF5cyB0byBVc2UgRGF0YSBDb250cm9sbGVyIGZvciBTQVNc''@;'; + put 'put ''eGFlIGZvciB0aGUgc29sZSBwdXJwb3NlIG9mIHRlc3RpbmcgYW5kIGV2YWx1YXRpbmcgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlO1xuKiAqKiJVcGRhdGVzIioqIGFueSBtb2RpZmllZCB2ZXJzaW9ucyBhbmQgdXBkYXRlcyBvZiwgYW5kIGFkZGl0aW9ucyB0byBEYXRhIENvbnRyb2xs''@;'; + put 'put ''ZXIgZm9yIFNBU1x4YWUgKGV4Y2x1ZGluZyB1cGdyYWRlcyBvZiBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUpO1xuKiAqKiJVc2UiKiogdGhlIGFjY2VzcywgZG93bmxvYWQsIGluc3RhbGwsIGNvcHkgb3IgZ2V0IGJlbmVmaXQgZnJvbSB1c2luZyBEYXRhIENvbnRyb2xsZXIgZm9yIFNB''@;'; + put 'put ''U1x4YWUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBkb2N1bWVudGF0aW9uO1xuKiAqKiJZb3UiKiogeW91LCB0aGUgZmluYWwgYW5kIHVsdGltYXRlIHVzZXIgb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIG9yIHRoZSBhdXRob3JpemVkIHJlcHJlc2VudGF0aXZlIG9mIGEgY29tcGFu''@;'; + put 'put ''eSBvciBvdGhlciBsZWdhbCBlbnRpdHkgdGhhdCB3aWxsIGJlIHRoZSBmaW5hbCBhbmQgdWx0aW1hdGUgdXNlciBvZiBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgIGFuZCB0aGUgY29tcGFueSBvciBvdGhlciBsZWdhbCBlbnRpdHkgdGhhdCB3aWxsIGJlIHRoZSBmaW5hbCBhbmQgdWx0''@;'; + put 'put ''aW1hdGUgdXNlciBvZiBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgIGlmIGFwcGxpY2FibGUuXG5cbiMjIEdlbmVyYWxcblRoaXMgRVVMQSBhcHBsaWVzIHRvIGFueSBsaWNlbnNlcyBncmFudGVkIHRvIFlvdSBieSA0R0wgQXBwcyBmb3IgdGhlIHVzZSBvZiBEYXRhIENvbnRyb2xsZXIg''@;'; + put 'put ''Zm9yIFNBU1x4YWUuXG5CeSBwdXJjaGFzaW5nIGEgTGljZW5zZSBLZXkgZm9yIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBhbmQvb3IgZG93bmxvYWRpbmcgYW5kIHVzaW5nIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSwgWW91IGVudGVyIGludG8gdGhpcyBFVUxBIHdpdGggNEdM''@;'; + put 'put ''IEFwcHMuXG5UaGlzIEVVTEEgbWF5IGJlIG1vZGlmaWVkIGZyb20gdGltZSB0byB0aW1lLiA0R0wgQXBwcyB3aWxsIG5vdGlmeSB5b3Ugb2Ygc3VjaCBtb2RpZmljYXRpb25zIG9uIGl0cyB3ZWJzaXRlIG9yIG90aGVyd2lzZSwgZS5nLiBieSB1c2luZyB0aGUgZW1haWwgYWRkcmVzcyB1c2Vk''@;'; + put 'put ''IGZvciB0aGUgcHJvdmlzaW9uIG9mIHRoZSBMaWNlbnNlIEtleS4gQW55IG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBFVUxBIHNoYWxsIG9ubHkgYXBwbHkgdXBvbiBhY2NlcHRhbmNlIGJ5IFlvdS5cblxuIyMgTGljZW5zZVxuNEdMIEFwcHMgZ3JhbnRzIFlvdSBhIG5vbi1leGNsdXNpdmUsIG5v''@;'; + put 'put ''bi10cmFuc2ZlcmFibGUsIGxpbWl0ZWQsIHJldm9jYWJsZSBsaWNlbnNlIHRvIFVzZSBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMgRVVMQS4gTWFjZW8gUGVvcGxlIHJlc2VydmVzIGFsbCByaWdodHMgbm90IGV4cHJlc3NseSBncmFudGVkIHRv''@;'; + put 'put ''IFlvdS5cbjRHTCBBcHBzIGlzIGFuZCByZW1haW5zIHRoZSBvd25lciBvZiBhbnkgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyB3aXRoIHJlc3BlY3QgdG8gRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlLiBZb3Ugc2hhbGwgbm90IGFjcXVpcmUgYW55IG93bmVyc2hpcCB0byBEYXRh''@;'; + put 'put ''IENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgYXMgcmVzdWx0IG9mIFlvdXIgcHVyY2hhc2Ugb2YgdGhlIExpY2Vuc2UgS2V5IG9yIFlvdXIgVXNlIG9mIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZS5cblxuIyMgUGVybWl0dGVkIHVzZSBhbmQgcmVzdHJpY3Rpb25zXG5JbiBvcmRlciB0byBi''@;'; + put 'put ''ZSBhYmxlIHRvIGluc3RhbGwgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGFuZCByZWNlaXZlIFVwZGF0ZXMgYW5kIHVwZ3JhZGVzLCBZb3VyIGNvbXB1dGVyIHNoYWxsIG1lZXQgdGhlIHN5c3RlbSByZXF1aXJlbWVudHMgZGVzY3JpYmVkIGluIHRoZSBEb2N1bWVudGF0aW9uIHRoYXQg''@;'; + put 'put ''Y2FuIGJlIGZvdW5kIG9uIHRoZSB3ZWJwYWdlOiBodHRwczovL2RvY3MuZGF0YWNvbnRyb2xsZXIuaW8uXG5Zb3UgbWF5IFVzZSBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgdXAgdG8gdGhlIGxpY2VuY2VkIGNhcGFjaXR5IG9ubHkgKG51bWJlciBvZiB1c2VycyBvciBDUFUgY29yZXMp''@;'; + put 'put ''LiBJZiBZb3UgZXhjZWVkIHRoZSBsaW1pdCwgNEdMIEFwcHMgbWF5IHRlcm1pbmF0ZSB0aGUgYWdyZWVtZW50LlxuWW91IHNoYWxsIFVzZSB0aGUgRnVsbCB2ZXJzaW9uIG9yIFRyaWFsIHZlcnNpb24gaW4gYWNjb3JkYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cyBhbmQgc2hhbGwgbm90Olxu''@;'; + put 'put ''XG4qIHJlbnQsIGxlYXNlLCBsZW5kLCBzZWxsLCByZWRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2Ugb3Igb3RoZXJ3aXNlIGNvbW1lcmNpYWxseSBleHBsb2l0IHRoZSBMaWNlbnNlIEtleSwgdGhlIEZ1bGwgdmVyc2lvbiwgb3IgdGhlIFRyaWFsIHZlcnNpb247XG4qIGFzc2lnbiB0aGUgTGljZW5z''@;'; + put 'put ''ZSBLZXksIHRoZSBGdWxsIHZlcnNpb24sIG9yIHRoZSBUcmlhbCB2ZXJzaW9uIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBhcHByb3ZhbCBvZiA0R0wgQXBwcztcbiogVXNlIHRoZSBGdWxsIHZlcnNpb24gb3IgVHJpYWwgdmVyc2lvbiBmb3IgYW55IHVubGF3ZnVsIG9yIGlsbGVnYWwgYWN0aXZp''@;'; + put 'put ''dHksIG9yIHRvIGZhY2lsaXRhdGUgYW4gdW5sYXdmdWwgb3IgaWxsZWdhbCBhY3Rpdml0eTtcbiogZGVsZXRlIG9yIGFsdGVyIGFueSBkaXNjbGFpbWVycywgd2FybmluZ3MsIGNvcHlyaWdodCBvciBvdGhlciBwcm9wcmlldGFyeSBub3RpY2VzIGFjY29tcGFueWluZyBEYXRhIENvbnRyb2xs''@;'; + put 'put ''ZXIgZm9yIFNBU1x4YWU7IG9yXG4qIGNvcHkgKGV4Y2VwdCBhcyBvdGhlcndpc2UgcHJvdmlkZWQgaW4gdGhpcyBFVUxBKSwgYWRhcHQsIHRyYW5zbGF0ZSwgZGVjb21waWxlLCByZXZlcnNlIGVuZ2luZWVyLCBkaXNhc3NlbWJsZSwgYXR0ZW1wdCB0byBkZXJpdmUgdGhlIHNvdXJjZSBjb2Rl''@;'; + put 'put ''IG9mLCBtb2RpZnkgb3IgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGFuZCB0aGUgTGljZW5zZSBLZXkgb3IgYW55IHBhcnRzIHRoZXJlb2YsIGV4Y2VwdCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBhcHBsaWNhYmxlIGxhdy5cblxu''@;'; + put 'put ''NEdMIEFwcHMgbWF5IG1vZGlmeSBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgYXQgYW55IHRpbWUgYXQgaXRzIHNvbGUgZGlzY3JldGlvbiBhbmQgd2l0aG91dCBub3RpY2UgdG8gWW91LCBmb3IgZXhhbXBsZSB0byBjb21wbHkgd2l0aCBhcHBsaWNhYmxlIGxhdyBvciBhIGNvdXJ0IG9y''@;'; + put 'put ''ZGVyLCB0byBhdm9pZCBhIHRoaXJkIHBhcnR5IGluZnJpbmdlbWVudCBjbGFpbSBvciB0byBwcm92aWRlIFVwZGF0ZXMgYW5kIHVwZ3JhZGVzLlxuQ2VydGFpbiBjb21wb25lbnRzIG9mIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBhcmUgT3BlbiBTb3VyY2UgU29mdHdhcmUgYW5kIGxp''@;'; + put 'put ''Y2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgYXBwbGljYWJsZSBsaWNlbnNlKHMpIG9mIHRoZSBPcGVuIFNvdXJjZSBTb2Z0d2FyZS4gWW91IHNoYWxsIGFkaGVyZSB0byB0aGVzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucywgd2hpY2ggY2FuIGJlIGZvdW5kIHZpYSB0aGUgd2VicGFnZTog''@;'; + put 'put ''aHR0cHM6Ly9kb2NzLmRhdGFjb250cm9sbGVyLmlvL2xpY2VuY2VzLlxuXG4jIyBNYWludGVuYW5jZSBhbmQgc3VwcG9ydFxuNEdMIEFwcHMgd2lsbCBub3RpZnkgWW91IG9mIGFueSBhdmFpbGFibGUgVXBkYXRlcyBhbmQgdXBncmFkZXMuXG5Zb3Ugd2lsbCBiZSBlbnRpdGxlZCB0byByZWNl''@;'; + put 'put ''aXZlIFVwZGF0ZXMgZnJlZSBvZiBjaGFyZ2UgZHVyaW5nIHRoZSBsaWNlbmNlIHBlcmlvZCwgdXBvbiBwdXJjaGFzaW5nIHRoZSBMaWNlbnNlIEtleSBmb3IgdGhlIEZ1bGwgdmVyc2lvbi4gSW4gb3JkZXIgdG8gcmVjZWl2ZSBVcGRhdGVzIGFmdGVyIHRoaXMgdHdlbHZlIG1vbnRoc1x1MjAx''@;'; + put 'put ''OSBwZXJpb2QsIFlvdSB3aWxsIG5lZWQgdG8gcmVuZXcgeW91ciBMaWNlbnNlIEtleSBmb3IgdGhlIEZ1bGwgdmVyc2lvbjtcbkFueSBtYWludGVuYW5jZSBhbmQgc3VwcG9ydCBwcm92aWRlZCBieSA0R0wgQXBwcywgaW5jbHVkaW5nIHRoZSBwcm92aXNpb24gb2YgVXBkYXRlcyBhbmQgdXBn''@;'; + put 'put ''cmFkZXMsIHdpbGwgYmUgcHJvdmlkZWQgaW4gYW4gYWRlcXVhdGUgd2F5IG9uIGFuIFx1MjAxY2FzIGlzXHUyMDFkIGJhc2lzIHdpdGhvdXQgYW55IHdhcnJhbnR5LCBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUsIHN1YmplY3QgdG8gYXZhaWxhYmlsaXR5IG9mIHBlcnNvbm5l''@;'; + put 'put ''bC5cblxuIyMgVXNlIG9mIGRhdGFcbjRHTCBBcHBzIGFuZCBpdHMgc3Vic2lkaWFyaWVzIG1heSBwZXJpb2RpY2FsbHkgcmVxdWVzdCB0ZWNobmljYWwgYW5kIHJlbGF0ZWQgZGF0YSBjb25jZXJuaW5nIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBZb3UgaGF2ZSBsaWNlbnNlZCwgaW5j''@;'; + put 'put ''bHVkaW5nIGFib3V0IHRoZSB2ZXJzaW9uIG51bWJlciBvZiBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgWW91IGhhdmUgaW5zdGFsbGVkIGFuZCBhYm91dCB0aGUgc3lzdGVtIFlvdSBoYXZlIGluc3RhbGxlZCBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgb24uIDRHTCBBcHBzIHdp''@;'; + put 'put ''bGwgdXNlIHN1Y2ggZGF0YSB0byBmYWNpbGl0YXRlIG1haW50ZW5hbmNlIGFuZCBzdXBwb3J0IHdpdGggcmVzcGVjdCB0byBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgIHRvIGltcHJvdmUgaXRzIHByb2R1Y3RzIGFuZCB0byBwcm92aWRlIGZ1cnRoZXIgc2VydmljZXMgb3IgdGVjaG5v''@;'; + put 'put ''bG9naWVzIHRvIFlvdS5cbjRHTCBBcHBzIG1heSBwcm9jZXNzIHBlcnNvbmFsIGRhdGEgd2l0aCByZXNwZWN0IHRvIFlvdSwgaWYgYW5kIHRvIHRoZSBleHRlbnQgbmVjZXNzYXJ5IHRvIHByb3ZpZGUgdGhlIExpY2Vuc2UgS2V5LCB0byBwcm92aWRlIG1haW50ZW5hbmNlIGFuZCBzdXBwb3J0''@;'; + put 'put ''IHRvIFlvdSB3aXRoIHJlc3BlY3QgdG8gRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGFuZCB0byBjb21wbHkgd2l0aCBpdHMgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBFVUxBLiBUbyB0aGUgZXh0ZW50IDRHTCBBcHBzIHdpbGwgcHJvY2VzcyBwZXJzb25hbCBkYXRhLCBpdCB3aWxsIGNv''@;'; + put 'put ''bXBseSB3aXRoIGl0cyBvYmxpZ2F0aW9ucyB1bmRlciBhcHBsaWNhYmxlIGRhdGEgcHJvdGVjdGlvbiBsYXcuIFBsZWFzZSBzZWUgb3VyIHByaXZhY3kgc3RhdGVtZW50IGZvciBtb3JlIGRldGFpbHMgb24gdGhlIHByb2Nlc3Npbmcgb2YgWW91ciBwZXJzb25hbCBkYXRhIHRoYXQgNEdMIEFw''@;'; + put 'put ''cHMgaGFzIGNvbGxlY3RlZCBhbmQgcmVjZWl2ZWQgdGhyb3VnaCBpdHMgd2Vic2l0ZS5cblxuIyMgRGlzY2xhaW1lclxuWW91IFVzZSBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgYXQgWW91ciBvd24gcmlzayBhbmQgdGhlIGVudGlyZSByaXNrIGFzIHRvIHNhdGlzZmFjdG9yeSBxdWFs''@;'; + put 'put ''aXR5LCBwZXJmb3JtYW5jZSBhbmQgYWNjdXJhY3kgaXMgd2l0aCBZb3UuXG5EYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgYW5kIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uIGFyZSBwcm92aWRlZCBvbiBhbiBcdTIwMWNhcyBpc1x1MjAxZCBhbmQgXHUyMDFjYXMgYXZhaWxhYmxlXHUy''@;'; + put 'put ''MDFkIGJhc2lzIHdpdGhvdXQgd2FycmFudHkgLSBleHByZXNzIG9yIGltcGxpZWQgLSBvZiBhbnkga2luZCwgYW5kIDRHTCBBcHBzIHNwZWNpZmljYWxseSBkaXNjbGFpbXMgdGhlIHdhcnJhbnR5IG9mIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLiBObyBvcmFsIG9yIHdyaXR0''@;'; + put 'put ''ZW4gYWR2aWNlIGdpdmVuIGJ5IDRHTCBBcHBzLCBpdHMgZGVhbGVycywgZGlzdHJpYnV0b3JzLCBhZ2VudHMgb3IgZW1wbG95ZWVzIHNoYWxsIGNyZWF0ZSBhIHdhcnJhbnR5IG9yIGluIGFueSB3YXkgaW5jcmVhc2UgdGhlIHNjb3BlIG9mIHRoaXMgd2FycmFudHkgYW5kIFlvdSBtYXkgbm90''@;'; + put 'put ''IHJlbHkgdXBvbiBzdWNoIGluZm9ybWF0aW9uIG9yIGFkdmljZS5cblxuIyMgTGlhYmlsaXR5IGxpbWl0YXRpb25cblRoZSBsaWFiaWxpdHkgb2YgNEdMIEFwcHMgYW5kIGFueSB0aGlyZCBwYXJ0eSB0aGF0IGhhcyBiZWVuIGludm9sdmVkIGluIHRoZSBjcmVhdGlvbiwgcHJvZHVjdGlvbiwg''@;'; + put 'put ''b3IgZGVsaXZlcnkgb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGZvciBhbGwgZGFtYWdlcyBhcmlzaW5nIG91dCBvZiBvciBpbiBhbnkgd2F5IHJlbGF0aW5nIHRvIHRoZSBGdWxsIHZlcnNpb24sIHRoZSBUcmlhbCB2ZXJzaW9uLCB0aGUgTGljZW5zZSBLZXksIERhdGEgQ29udHJv''@;'; + put 'put ''bGxlciBmb3IgU0FTXHhhZSBhbmQvb3IgdGhpcyBFVUxBIHNoYWxsIGluIG5vIGV2ZW50IGV4Y2VlZCB0aGUgbGlzdCBwcmljZSBvZiB0aGUgc29mdHdhcmUuXG5cbjRHTCBBcHBzIGFuZCBhbnkgdGhpcmQgcGFydHkgdGhhdCBoYXMgYmVlbiBpbnZvbHZlZCBpbiB0aGUgY3JlYXRpb24sIHBy''@;'; + put 'put ''b2R1Y3Rpb24sIG9yIGRlbGl2ZXJ5IG9mIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBhcmUgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBsaWFibGUgZm9yIGNvbnNlcXVlbnRpYWwgb3IgaW5kaXJlY3QgZGFtYWdlcyAoaW5jbHVkaW5nIGRhbWFnZSBmb3IgbG9zcyBvZiBwcm9maXQsIGJ1''@;'; + put 'put ''c2luZXNzIGludGVycnVwdGlvbiwgbG9zcyBvZiBkYXRhLCBhbmQgdGhlIGxpa2UgYXJpc2luZyBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZS5cblRoZSBsaW1pdGF0aW9ucyBvZiBsaWFiaWxpdHkgcmVmZXJyZWQgdG8gaW4g''@;'; + put 'put ''Y2xhdXNlIDkuMSBhbmQgOS4yIHNoYWxsIG5vdCBhcHBseSBpbiB0aGUgZXZlbnQgdGhhdDogKGkpIGFueSBuZWdsaWdlbmNlIG9uIHRoZSBwYXJ0IG9mIDRHTCBBcHBzIGxlYWRzIHRvIGRlYXRoIG9yIHBoeXNpY2FsIGluanVyeSBvciAoaWkpIGRhbWFnZXMgYXJpc2UgZnJvbSB0aGUgaW50''@;'; + put 'put ''ZW50LCB3aWxsZnVsIG1pc2NvbmR1Y3Qgb3IgZ3Jvc3MgbmVnbGlnZW5jZSBvZiA0R0wgQXBwcyBvciB0aGUgbWFuYWdlbWVudCBvZiA0R0wgQXBwcy5cblxuIyMgVGVybWluYXRpb25cblRoaXMgRVVMQSB3aWxsIGNvbnRpbnVlIHRvIGJlIGluIGZvcmNlIHVudGlsIHRoZSBleHBpcnkgb3Ig''@;'; + put 'put ''dGVybWluYXRpb24gb2YgdGhlIEZ1bGwgdmVyc2lvbiBvciB0aGUgVHJpYWwgdmVyc2lvbi5cblRoZSBGdWxsIHZlcnNpb24gb3IgVHJpYWwgdmVyc2lvbiB3aWxsIHRlcm1pbmF0ZSBhdXRvbWF0aWNhbGx5IGF0IHRoZSBlbmQgb2YgdGhlIGFwcGxpY2FibGUgbGljZW5zZSB0ZXJtLCB1bmxl''@;'; + put 'put ''c3MgcmVuZXdlZCBvciBBY3RpdmF0ZWQgcHJpb3IgdG8gdGhlIGVuZCBvZiB0aGUgYXBwbGljYWJsZSBsaWNlbnNlIHRlcm0uXG5cbjRHTCBBcHBzIGlzIGVudGl0bGVkIHRvIHRlcm1pbmF0ZSB0aGUgRnVsbCB2ZXJzaW9uIHdpdGggaW1tZWRpYXRlIGVmZmVjdCBhbmQgd2l0aG91dCBwcmlv''@;'; + put 'put ''ciBub3RpY2UgaW4gdGhlIGV2ZW50IFlvdSBmYWlsIHRvIGNvbXBseSB3aXRoIHRoZSB0ZXJtcyBpbiB0aGlzIEVVTEEsIG9yIGluIHRoZSBldmVudCA0R0wgQXBwcyBpcyByZXF1aXJlZCB0byBkbyBzbyBieSBsYXcgb3IgYW4gb3JkZXIgb2YgYW4gYXBwbGljYWJsZSBjb3VydC5cblVwb24g''@;'; + put 'put ''dGVybWluYXRpb24gb2YgdGhlIEZ1bGwgdmVyc2lvbiBvciB0aGUgVHJpYWwgdmVyc2lvbiBZb3Ugc2hhbGwgY2Vhc2UgYWxsIHVzZSBvZiBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUuXG5Zb3UgYWNrbm93bGVkZ2UgdGhhdCB0aGUgcHJvdmlzaW9ucyBvZiB0aGlzIEVVTEEsIHdoaWNo''@;'; + put 'put ''IGJ5IHRoZWlyIG5hdHVyZSBhcmUgaW50ZW5kZWQgdG8gc3Vydml2ZSB0ZXJtaW5hdGlvbiwgd2lsbCByZW1haW4gaW4gZWZmZWN0IGFmdGVyIHRlcm1pbmF0aW9uIG9mIHRoaXMgRVVMQS5cblxuXG4jIyBHb3Zlcm5pbmcgbGF3IGFuZCBqdXJpc2RpY3Rpb25cblRoaXMgYWdyZWVtZW50IGFu''@;'; + put 'put ''ZCBhbnkgZGlzcHV0ZXMgb3IgY2xhaW1zIGFyaXNpbmcgb3V0IG9mIG9yIGluIGNvbm5lY3Rpb24gd2l0aCBpdHMgc3ViamVjdCBtYXR0ZXIgYXJlIGdvdmVybmVkIGJ5IGFuZCBjb25zdHJ1ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBsYXcgb2YgRW5nbGFuZC5cblRoZSBwYXJ0aWVzIGly''@;'; + put 'put ''cmV2b2NhYmx5IGFncmVlIHRoYXQgdGhlIGNvdXJ0cyBvZiBFbmdsYW5kIGhhdmUgZXhjbHVzaXZlIGp1cmlzZGljdGlvbiB0byBzZXR0bGUgYW55IGRpc3B1dGUgb3IgY2xhaW0gdGhhdCBhcmlzZXMgb3V0IG9mIG9yIGluIGNvbm5lY3Rpb24gd2l0aCB0aGlzIGFncmVlbWVudC5cbid9bmdP''@;'; + put 'put ''bkluaXQoKXt9dGVybXNBZ3JlZUNoYW5nZSgpe3RoaXMuYWdyZWVDaGVja2VkJiYodGhpcy5hZ3JlZUJveExvY2tlZD0hMCx0aGlzLmFncmVlQ2xpY2tlZD0hMCx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3JlZ2lzdGVydXNlciIse1NBU0NvbnRyb2xUYWJsZTpbe0FDQ0VQVEVE''@;'; + put 'put ''OiJ5ZXMifV19KS50aGVuKHY9Pnt2LnJldHVybiYmdi5yZXR1cm5bMF0mJiJTVUNDRVNTIj09PXYucmV0dXJuWzBdLk1TRyYmbG9jYXRpb24ucmVsb2FkKCl9KS5jYXRjaCh2PT52KS5maW5hbGx5KCgpPT57dGhpcy5hZ3JlZUJveExvY2tlZD0hMSx0aGlzLmFncmVlQ2xpY2tlZD0hMSx0aGlz''@;'; + put 'put ''LmFncmVlQ2hlY2tlZD0hMX0pKX1vbkNhcmRCbG9ja1Njcm9sbChoKXtpZighdGhpcy5hZ3JlZUNsaWNrZWQpe2xldCB2PWgudGFyZ2V0O3YmJih0aGlzLmFncmVlQm94TG9ja2VkPSEodi5zY3JvbGxUb3Ardi5vZmZzZXRIZWlnaHQ+PXYuc2Nyb2xsSGVpZ2h0LTIwKSl9fX1yZXR1cm4gZC5c''@;'; + put 'put ''dTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChnMikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtdGVybXMiXV0sZGVjbHM6MTEsdmFyczo1LGNvbnN0czpbWzEsImNhcmQiXSxbMSwiY2FyZC1oZWFkZXIiXSxbMSwiY2FyZC1ibG9jayIs''@;'; + put 'put ''Mywic2Nyb2xsIl0sWzMsImRhdGEiXSxbMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiLDIsInBhZGRpbmciLCIxMHB4IDE1cHgiXSxbInR5cGUiLCJjaGVja2JveCIsImlkIiwiY2hlY2tib3gxIiwibmFtZSIsImNoZWNrYm94LWJhc2ljIiwxLCJjbHItY2hlY2tib3giLDMsIm5nTW9kZWwiLCJk''@;'; + put 'put ''aXNhYmxlZCIsIm5nTW9kZWxDaGFuZ2UiLCJjaGFuZ2UiXSxbImZvciIsImNoZWNrYm94MSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKGl0KDAsImRpdiIsMCkoMSwiZGl2IiwxKSxVdCgyLCIgRW5kIFVzZXIgTGljZW5zZSBBZ3JlZW1lbnQgIiksaXQoMywicCIpLFV0KDQsIiBX''@;'; + put 'put ''ZWxjb21lIHRvIERhdGEgQ29udHJvbGxlciBmb3IgU0FTISBQbGVhc2UgcmV2aWV3IGFuZCBhY2NlcHQgYWdyZWVtZW50IGJlbG93IGluIG9yZGVyIHRvIHByb2NlZWQuICIpLHN0KCkoKSxpdCg1LCJkaXYiLDIpLFluKCJzY3JvbGwiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uQ2FyZEJsb2Nr''@;'; + put 'put ''U2Nyb2xsKEMpfSksQ3IoNiwibWFya2Rvd24iLDMpLHN0KCksaXQoNywiZGl2Iiw0KSg4LCJpbnB1dCIsNSksWW4oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LmFncmVlQ2hlY2tlZD1DfSkoImNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi50ZXJtc0FncmVlQ2hhbmdl''@;'; + put 'put ''KCl9KSxzdCgpLGl0KDksImxhYmVsIiw2KSxVdCgxMCwiSSBoYXZlIHJlYWQgYW5kIGFncmVlIHRvIHRoZSB0ZXJtcyBvZiBhYm92ZS4iKSxzdCgpKCkoKSksMiZoJiYodXQoNiksVHQoImRhdGEiLHYuZXVsYV9tYXJrZG93biksdXQoMSksRmkoImRpc2FibGVkIix2LmFncmVlQm94TG9ja2Vk''@;'; + put 'put ''KSx1dCgxKSxUdCgibmdNb2RlbCIsdi5hZ3JlZUNoZWNrZWQpKCJkaXNhYmxlZCIsdi5hZ3JlZUJveExvY2tlZCkpfSxkZXBlbmRlbmNpZXM6W0lmLEVzLHhzLG90LHRiZV0sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiNmNWY2ZmZ9LmNsci1jaGVj''@;'; + put 'put ''a2JveC13cmFwcGVyLmRpc2FibGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5Oi41fS5jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21hcmdpbi10b3A6MH0uY2FyZFtfbmdjb250ZW50LSVDT01QJV0gICAu''@;'; + put 'put ''Y2FyZC1ibG9ja1tfbmdjb250ZW50LSVDT01QJV17ZmxleDoxO292ZXJmbG93OmF1dG87YmFja2dyb3VuZC1jb2xvcjojZjRmNGY0fSJdfSksZH0pKCk7ZnVuY3Rpb24gUmplKGQsZyl7MSZkJiYoaXQoMCwicCIsMjApLFV0KDEsIiBMaWNlbmNlIGtleSBpcyBpbnZhbGlkLiBXZSBjYW4ndCBw''@;'; + put 'put ''cm92aWRlIHlvdSBtb3JlIGRldGFpbHMgYXQgdGhlIG1vbWVudCAiKSxzdCgpKX1mdW5jdGlvbiBCamUoZCxnKXtpZigxJmQmJkNyKDAsInAiLDIxKSwyJmQpe2NvbnN0IGg9S3QoMyk7VHQoImlubmVySFRNTCIsaC5saWNlbnNlRXJyb3JzW2gua2V5RXJyb3JdLFU4KX19ZnVuY3Rpb24gUGpl''@;'; + put 'put ''KGQsZyl7aWYoMSZkJiYoRjAoMCkscm4oMSxSamUsMiwwLCJwIiwxOCkscm4oMixCamUsMSwxLCJwIiwxOSksSDAoKSksMiZkKXtjb25zdCBoPUt0KDIpO3V0KDEpLFR0KCJuZ0lmIiwhaC5rZXlFcnJvciksdXQoMSksVHQoIm5nSWYiLGgua2V5RXJyb3IpfX1mdW5jdGlvbiBGamUoZCxnKXsx''@;'; + put 'put ''JmQmJihGMCgwKSxpdCgxLCJwIiwyMCksVXQoMiwiIFRoZSByZWdpc3RlcmVkIG51bWJlciBvZiB1c2VycyByZWFjaGVkIHRoZSBsaW1pdCBzcGVjaWZpZWQgZm9yIHlvdXIgbGljZW5jZS4gUGxlYXNlIGNvbnRhY3QgIiksaXQoMywiYSIsMjIpLFV0KDQsInN1cHBvcnRAZGF0YWNvbnRyb2xs''@;'; + put 'put ''ZXIuaW8iKSxzdCgpLFV0KDUsIiBvciB5b3VyIHJlc2VsbGVyIHRvIGFycmFuZ2UgYWRkaXRpb25hbCBsaWNlbmNlcyBmb3IgdGhpcyBwcm9kdWN0LiAiKSxzdCgpLEgwKCkpfWZ1bmN0aW9uIEhqZShkLGcpezEmZCYmKEYwKDApLGl0KDEsInAiLDIwKSxVdCgyLCIgVXBkYXRlIHRoZSBsaWNl''@;'; + put 'put ''bnNlIGtleSBieSBwYXN0aW5nIGxpY2Vuc2Uga2V5IGFuZCBhY3RpdmF0aW9uIGtleSBpbiB0aGUgaW5wdXRzIGJlbG93LiAiKSxzdCgpLEgwKCkpfWZ1bmN0aW9uIE5qZShkLGcpe2lmKDEmZCYmKGl0KDAsInNwYW4iKSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1n''@;'; + put 'put ''LmluZGV4LHk9S3QoMik7RmkoIm1pc3NrZXkiLHkubWlzc21hdGNoZWRLZXkmJnkubWlzc21hdGNoZWRLZXk9PT1oKSx1dCgxKSxGaCgiICIsaCwiIix2PT09KG51bGw9PXkuc3lzc2l0ZS52YWx1ZT9udWxsOnkuc3lzc2l0ZS52YWx1ZS5sZW5ndGgpLTE/IiI6IiwiLCIgIil9fWZ1bmN0aW9u''@;'; + put 'put ''IFZqZShkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImRpdiIsMikoMSwiZGl2IiwzKSxVdCgyLCJMaWNlbmNpbmciKSxzdCgpLGl0KDMsImRpdiIsNCkscm4oNCxQamUsMywyLCJuZy1jb250YWluZXIiLDUpLHJuKDUsRmplLDYsMCwibmctY29udGFpbmVyIiw1KSxybig2LEhqZSwz''@;'; + put 'put ''LDAsIm5nLWNvbnRhaW5lciIsNSksaXQoNywicCIpKDgsInN0cm9uZyIpLFV0KDksIlNZU1NJVEU6Iiksc3QoKSxybigxMCxOamUsMiw0LCJzcGFuIiw2KSxpdCgxMSwiYSIsNyksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9eWEoMTMpLEM9eWEoMTUpLEk9S3QoKTtyZXR1''@;'; + put 'put ''cm4gYShJLmNvcHlTeXNzaXRlKHksQyxJLnN5c3NpdGUudmFsdWV8fFtdKSl9KSxDcigxMiwiY2xyLWljb24iLDgsOSksaXQoMTQsInNwYW4iLDEwLDExKSxVdCgxNiwiQ29weSB0byBjbGlwYm9hcmQiKSxzdCgpKCkoKSxpdCgxNywiZm9ybSIsMTIpKDE4LCJwIiksVXQoMTksIkxpY2VuY2Ug''@;'; + put 'put ''a2V5OiIpLHN0KCksaXQoMjAsImRpdiIsMTMpKDIxLCJ0ZXh0YXJlYSIsMTQpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLmxpY2Vuc2VLZXlWYWx1ZT15KX0pKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkudHJp''@;'; + put 'put ''bUtleXMoKSl9KSxzdCgpKCkoKSxpdCgyMiwiZm9ybSIsMTUpKDIzLCJwIiksVXQoMjQsIkFjdGl2YXRpb24ga2V5OiIpLHN0KCksaXQoMjUsImRpdiIsMTMpKDI2LCJ0ZXh0YXJlYSIsMTYpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLmFjdGl2''@;'; + put 'put ''YXRpb25LZXlWYWx1ZT15KX0pKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkudHJpbUtleXMoKSl9KSxzdCgpKCkoKSxpdCgyNywiYnV0dG9uIiwxNyksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkuYXBwbHlLZXlzKCkpfSksVXQo''@;'; + put 'put ''MjgsIiBBcHBseSBsaWNlbmNlIGtleXMgIiksc3QoKSgpKCl9aWYoMiZkKXtjb25zdCBoPUt0KCk7dXQoMyksVHQoIm5nU3dpdGNoIixoLmFjdGlvbiksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsImtleSIpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCJsaW1pdCIpLHV0KDEpLFR0KCJuZ1N3''@;'; + put 'put ''aXRjaENhc2UiLCJ1cGRhdGUiKSx1dCg0KSxUdCgibmdGb3JPZiIsaC5zeXNzaXRlLnZhbHVlKSx1dCgxMSksVHQoIm5nTW9kZWwiLGgubGljZW5zZUtleVZhbHVlKSx1dCg1KSxUdCgibmdNb2RlbCIsaC5hY3RpdmF0aW9uS2V5VmFsdWUpLHV0KDEpLFR0KCJjbHJMb2FkaW5nIixoLmFwcGx5''@;'; + put 'put ''aW5nS2V5cykoImRpc2FibGVkIixoLmxpY2Vuc2VLZXlWYWx1ZS5sZW5ndGg8MXx8aC5hY3RpdmF0aW9uS2V5VmFsdWUubGVuZ3RoPDEpfX1mdW5jdGlvbiBqamUoZCxnKXsxJmQmJkNyKDAsImFwcC10ZXJtcyIpfXZhciBXcT0oKCk9PihmdW5jdGlvbihkKXtkLmtleT0ia2V5IixkLnJlZ2lz''@;'; + put 'put ''dGVyPSJyZWdpc3RlciIsZC5saW1pdD0ibGltaXQiLGQudXBkYXRlPSJ1cGRhdGUifShXcXx8KFdxPXt9KSksV3EpKSgpO2xldCBaamU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMucm91dGU9aCx0aGlzLnJvdXRlcj12LHRoaXMuZXZlbnRTZXJ2aWNlPXksdGhp''@;'; + put 'put ''cy5zYXNTZXJ2aWNlPUMsdGhpcy5hcHBTZXJ2aWNlPUksdGhpcy5hY3Rpb249bnVsbCx0aGlzLmxpY2Vuc2VFcnJvcnM9e21pc3Npbmc6J0xpY2VuY2Uga2V5IGlzIG1pc3NpbmcgLSBwbGVhc2UgY29udGFjdCA8YSBzdHlsZT0iY29sb3I6ICM1YWEyMjA7IiBocmVmPSJtYWlsdG86IHN1cHBv''@;'; + put 'put ''cnRAZGF0YWNvbnRyb2xsZXIuaW8iPnN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW88L2E+IGFuZCBlbnRlciB2YWxpZCBrZXlzIGJlbG93LicsZXhwaXJlZDonTGljZW5jZSBrZXkgaXMgZXhwaXJlZCAtIHBsZWFzZSBjb250YWN0IDxhIHN0eWxlPSJjb2xvcjogIzVhYTIyMDsiIGhyZWY9Im1h''@;'; + put 'put ''aWx0bzogc3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyI+c3VwcG9ydEBkYXRhY29udHJvbGxlci5pbzwvYT4gYW5kIGVudGVyIHZhbGlkIGtleXMgYmVsb3cuJyxpbnZhbGlkOidMaWNlbmNlIGtleSBpcyBpbnZhbGlkIC0gcGxlYXNlIGNvbnRhY3QgPGEgc3R5bGU9ImNvbG9yOiAjNWFhMjIw''@;'; + put 'put ''OyIgaHJlZj0ibWFpbHRvOiBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIj5zdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvPC9hPiBhbmQgZW50ZXIgdmFsaWQga2V5cyBiZWxvdy4nLG1pc3NtYXRjaDonWW91ciBTWVNTSVRFIChiZWxvdykgaXMgbm90IGZvdW5kIGluIHRoZSBsaWNlbmNlIGtl''@;'; + put 'put ''eSAtIHBsZWFzZSBjb250YWN0IDxhIHN0eWxlPSJjb2xvcjogIzVhYTIyMDsiIGhyZWY9Im1haWx0bzogc3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyI+c3VwcG9ydEBkYXRhY29udHJvbGxlci5pbzwvYT4gYW5kIGVudGVyIHZhbGlkIGtleXMgYmVsb3cuJ30sdGhpcy5saWNlbnNlS2V5VmFs''@;'; + put 'put ''dWU9IiIsdGhpcy5hY3RpdmF0aW9uS2V5VmFsdWU9IiIsdGhpcy5hcHBseWluZ0tleXM9ITEsdGhpcy5zeXNzaXRlPXRoaXMuYXBwU2VydmljZS5zeXNzaXRlLHRoaXMubGljZW5jZUtleT10aGlzLmFwcFNlcnZpY2UubGljZW5jZUtleSx0aGlzLmFjdGl2YXRpb25LZXk9dGhpcy5hcHBTZXJ2''@;'; + put 'put ''aWNlLmFjdGl2YXRpb25LZXl9bmdPbkluaXQoKXt0aGlzLmxpY2Vuc2VLZXlWYWx1ZT10aGlzLmxpY2VuY2VLZXl8fCIiLHRoaXMuYWN0aXZhdGlvbktleVZhbHVlPXRoaXMuYWN0aXZhdGlvbktleXx8IiIsdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoaD0+e3RoaXMua2V5RXJy''@;'; + put 'put ''b3I9aC5lcnJvcix0aGlzLm1pc3NtYXRjaGVkS2V5PWgubWlzc21hdGNoSWR9KSx0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoaD0+e2xldCB2PWguYWN0aW9uO3YmJk9iamVjdC52YWx1ZXMoV3EpLmluY2x1ZGVzKHYpJiYodGhpcy5hY3Rpb249dil9KX10cmltS2V5cygpe3RoaXMubGlj''@;'; + put 'put ''ZW5zZUtleVZhbHVlPXRoaXMubGljZW5zZUtleVZhbHVlLnRyaW0oKSx0aGlzLmFjdGl2YXRpb25LZXlWYWx1ZT10aGlzLmFjdGl2YXRpb25LZXlWYWx1ZS50cmltKCl9Y29weVN5c3NpdGUoaCx2LHkpe2NvbnN0IEM9eS5qb2luKCJcbiIpO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0''@;'; + put 'put ''KEMpLnRoZW4oKCk9PntoLnNldEF0dHJpYnV0ZSgic2hhcGUiLCJjaGVjayIpLGguc2V0QXR0cmlidXRlKCJjbGFzcyIsImlzLXN1Y2Nlc3MiKSx2LmlubmVyVGV4dD0iQ29waWVkISIsc2V0VGltZW91dCgoKT0+e2guc2V0QXR0cmlidXRlKCJzaGFwZSIsImNvcHkiKSxoLnJlbW92ZUF0dHJp''@;'; + put 'put ''YnV0ZSgiY2xhc3MiKSx2LmlubmVyVGV4dD0iQ29weSB0byBjbGlwYm9hcmQifSwxZTMpfSl9YXBwbHlLZXlzKCl7dGhpcy5hcHBseWluZ0tleXM9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoImFkbWluL3JlZ2lzdGVya2V5Iix7a2V5dXBsb2FkOlt7QUNUSVZBVElPTl9LRVk6dGhpcy5h''@;'; + put 'put ''Y3RpdmF0aW9uS2V5VmFsdWUsTElDRU5DRV9LRVk6dGhpcy5saWNlbnNlS2V5VmFsdWV9XX0pLnRoZW4odj0+e3YucmV0dXJuJiZ2LnJldHVyblswXSYmIlNVQ0NFU1MiPT09di5yZXR1cm5bMF0uTVNHJiZsb2NhdGlvbi5yZXBsYWNlKGxvY2F0aW9uLmhyZWYuc3BsaXQoIiMiKVswXSl9KS5m''@;'; + put 'put ''aW5hbGx5KCgpPT57dGhpcy5hcHBseWluZ0tleXM9ITF9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoUHUpLFh0KFpsKSxYdChtdSksWHQoZzIpLFh0KFI3KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1saWNl''@;'; + put 'put ''bnNpbmciXV0sZGVjbHM6Mix2YXJzOjIsY29uc3RzOltbImNsYXNzIiwiY2FyZCIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsImNhcmQiXSxbMSwiY2FyZC1oZWFkZXIiXSxbMSwiY2FyZC1ibG9jayIsMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzMsIm1pc3NrZXkiLDQsIm5n''@;'; + put 'put ''Rm9yIiwibmdGb3JPZiJdLFsxLCJ0b29sdGlwIiwidG9vbHRpcC1tZCIsInRvb2x0aXAtdG9wLXJpZ2h0IiwzLCJjbGljayJdLFsic2hhcGUiLCJjb3B5Iiwic2l6ZSIsIjE1IiwyLCJjdXJzb3IiLCJwb2ludGVyIl0sWyJjb3B5SWNvbiIsIiJdLFsxLCJ0b29sdGlwLWNvbnRlbnQiXSxbImNv''@;'; + put 'put ''cHlUb29sdGlwIiwiIl0sWzEsImNsci1mb3JtIiwibGljZW5zZS1rZXktZm9ybSJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiXSxbIm5hbWUiLCJsaWNlbnNlLWtleS1hcmVhIiwicGxhY2Vob2xkZXIiLCJQYXN0ZSBsaWNlbmNlIGtleSBoZXJlIiwxLCJjbHItdGV4dGFyZWEiLDMsIm5n''@;'; + put 'put ''TW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwibW91c2VsZWF2ZSJdLFsxLCJjbHItZm9ybSIsImFjdGl2YXRpb24ta2V5LWZvcm0iXSxbIm5hbWUiLCJhY3RpdmF0aW9uLWtleS1hcmVhIiwicGxhY2Vob2xkZXIiLCJQYXN0ZSBhY3RpdmF0aW9uIGtleSBoZXJlIiwxLCJjbHItdGV4dGFyZWEiLDMs''@;'; + put 'put ''Im5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwibW91c2VsZWF2ZSJdLFsxLCJidG4iLCJidG4tcHJpbWFyeSIsImFwcGx5LWtleXMiLDMsImNsckxvYWRpbmciLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJjbGFzcyIsImtleS1lcnJvciIsNCwibmdJZiJdLFsiY2xhc3MiLCJrZXktZXJyb3IiLDMs''@;'; + put 'put ''ImlubmVySFRNTCIsNCwibmdJZiJdLFsxLCJrZXktZXJyb3IiXSxbMSwia2V5LWVycm9yIiwzLCJpbm5lckhUTUwiXSxbImhyZWYiLCJtYWlsdG86IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iLDIsImNvbG9yIiwiIzVhYTIyMCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKHJu''@;'; + put 'put ''KDAsVmplLDI5LDksImRpdiIsMCkscm4oMSxqamUsMSwwLCJhcHAtdGVybXMiLDEpKSwyJmgmJihUdCgibmdJZiIsInJlZ2lzdGVyIiE9PXYuYWN0aW9uKSx1dCgxKSxUdCgibmdJZiIsInJlZ2lzdGVyIj09PXYuYWN0aW9uKSl9LGRlcGVuZGVuY2llczpbWnMsVm8sVWQsaXAscGcsbTEsRXMs''@;'; + put 'put ''ZGcseHMsTGMsT2plLHdsLGdvLHddLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17aGVpZ2h0OmNhbGMoMTAwJSAtIDk2cHgpO3BhZGRpbmc6MjBweH0uY2FyZFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDowfS5rZXktZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZTox''@;'; + put 'put ''NnB4fS5taXNza2V5W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZTc0YzNjfS5saWNlbnNlLWtleS1mb3JtW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmFjdGl2YXRpb24ta2V5LWZvcm1bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MH0ubGljZW5zZS1rZXktZm9ybVtfbmdjb250ZW50LSVD''@;'; + put 'put ''T01QJV0gICAuY2xyLWNvbnRyb2wtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmFjdGl2YXRpb24ta2V5LWZvcm1bX25nY29udGVudC0lQ09NUCVdICAgLmNsci1jb250cm9sLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0ubGljZW5zZS1rZXktZm9ybVtf''@;'; + put 'put ''bmdjb250ZW50LSVDT01QJV0gICAuY2xyLWNvbnRyb2wtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRleHRhcmVhW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmFjdGl2YXRpb24ta2V5LWZvcm1bX25nY29udGVudC0lQ09NUCVdICAgLmNsci1jb250cm9sLWNvbnRhaW5lcltfbmdjb250''@;'; + put 'put ''ZW50LSVDT01QJV0gICB0ZXh0YXJlYVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtoZWlnaHQ6MTcwcHg7bWF4LWhlaWdodDoxNzBweDttaW4taGVpZ2h0OjE3MHB4O3Jlc2l6ZTpub25lfS5hcHBseS1rZXlzW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjEwcHg7aGVpZ2h0''@;'; + put 'put ''OjQwcHg7d2lkdGg6MjAwcHh9Il19KSxkfSkoKSxWaGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuYXBwU2VydmljZT1oLHRoaXMucm91dGVyPXZ9Y2FuQWN0aXZhdGUoaCx2KXtyZXR1cm4hIShudWxsIT12JiZ2LnVybC5pbmNsdWRlcygibGljZW5zaW5nL3VwZGF0ZSIp''@;'; + put 'put ''JiZ0aGlzLmFwcFNlcnZpY2UuaXNBcHBBY3RpdmF0ZWR8fG51bGwhPT10aGlzLmFwcFNlcnZpY2UuaXNBcHBBY3RpdmF0ZWQudmFsdWUmJiExPT09dGhpcy5hcHBTZXJ2aWNlLmlzQXBwQWN0aXZhdGVkLnZhbHVlKXx8KHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9ob21lIiksITEpfWNh''@;'; + put 'put ''bkRlYWN0aXZhdGUoaCx2LHksQyl7cmV0dXJuIG51bGw9PT10aGlzLmFwcFNlcnZpY2UuaXNBcHBBY3RpdmF0ZWQudmFsdWV8fCEhdGhpcy5hcHBTZXJ2aWNlLmlzQXBwQWN0aXZhdGVkLnZhbHVlfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShS''@;'; + put 'put ''NyksQ2koWmwpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTt2YXIgR2hlLFhMLHhaO2Z1bmN0aW9uIGpoZShkKXtyZXR1cm4oamhlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9y''@;'; + put 'put ''P2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9TCgxMzQwMCksTCgxMzI3OCks''@;'; + put 'put ''TCg1MjMxMyksTCg3MDg2NCksTCg2NDk1MiksTCg5NzA4NyksTCgzMTEyMyksTCgyNDgwKSxMKDgzMDI4KSxMKDQyNzYwKSxMKDEwNDE0KSxMKDY5MTApLEwoNTM5NTApLEwoNjM5NjcpLEwoODM1OTApLEwoMjA2NDcpLEwoNTg1OTQpLEwoNTgzMjQpLEwoOTE5NDUpLEwoNTc5NDMpLEwoOTY2''@;'; + put 'put ''NCksTCg1ODI3MiksTCgyNjU3KSxMKDg2NDI3KSxMKDMzNTgzKSxMKDE4MTU4KSxMKDI4NzY0KSxMKDQ1MTM1KSxMKDM0NzcwKSxMKDY0NDE4KSxMKDE2ODI1KSxMKDMwNTcxKSxMKDc2NzQ5KSxMKDgzNjIwKTtmb3IodmFyIHJiZT0wLFlxPVsibXMiLCJtb3oiLCJ3ZWJraXQiLCJvIl0sU1o9''@;'; + put 'put ''d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSxVcT13aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUsTVo9MDtNWjxZcS5sZW5ndGgmJiFTWjsrK01aKVNaPXdpbmRvd1siIi5jb25jYXQoWXFbTVpdLCJSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiKV0sVXE9d2luZG93WyIiLmNvbmNhdChZcVtN''@;'; + put 'put ''Wl0sIkNhbmNlbEFuaW1hdGlvbkZyYW1lIildfHx3aW5kb3dbIiIuY29uY2F0KFlxW01aXSwiQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lIildO2Z1bmN0aW9uIFpoZShkKXtyZXR1cm4gU1ouY2FsbCh3aW5kb3csZCl9ZnVuY3Rpb24gaWJlKCl7cmV0dXJuISFkb2N1bWVudC5kb2N1bWVu''@;'; + put 'put ''dEVsZW1lbnQuY2xhc3NMaXN0fWZ1bmN0aW9uIG9iZSgpe3JldHVybiEhZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoInRlc3QiKS50ZXh0Q29udGVudH1mdW5jdGlvbiBhYmUoKXtyZXR1cm4hIXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlfWZ1bmN0aW9uIEVaKGQpe1VxLmNhbGwod2luZG93LGQp''@;'; + put 'put ''fWZ1bmN0aW9uIHpoZSgpe3JldHVybiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fWZ1bmN0aW9uIFdoZSgpe3JldHVybiB2b2lkIDA9PT1HaGUmJmZ1bmN0aW9uIHpqZSgpe3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7ZC5zdHlsZS5ib3JkZXJTcGFjaW5nPSIwIixkLnN0''@;'; + put 'put ''eWxlLmJvcmRlcldpZHRoPSIwIixkLnN0eWxlLnBhZGRpbmc9IjAiO3ZhciBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRCT0RZIik7ZC5hcHBlbmRDaGlsZChnKSxnLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIikpLGcuZmlyc3RDaGlsZC5hcHBlbmRDaGlsZChk''@;'; + put 'put ''b2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpKSxnLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5pbm5lckhUTUw9Ijx0cj48dGQ+dDxicj50PC90ZD48L3RyPiI7dmFyIGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiQ0FQVElPTiIpO2guaW5uZXJIVE1MPSJjPGJyPmM8YnI+Yzxicj5jIixoLnN0''@;'; + put 'put ''eWxlLnBhZGRpbmc9IjAiLGguc3R5bGUubWFyZ2luPSIwIixkLmluc2VydEJlZm9yZShoLGcpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZCksR2hlPWQub2Zmc2V0SGVpZ2h0PDIqZC5sYXN0Q2hpbGQub2Zmc2V0SGVpZ2h0LGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZCl9KCksR2hl''@;'; + put 'put ''fWZ1bmN0aW9uIGxiZShkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIFhMfHwoWEw9Im9iamVjdCI9PT0oInVuZGVmaW5lZCI9PXR5cGVvZiBJbnRsPyJ1bmRlZmluZWQiOmpoZShJbnRsKSk/bmV3IEludGwu''@;'; + put 'put ''Q29sbGF0b3IoZCxnKS5jb21wYXJlOiJmdW5jdGlvbiI9PXR5cGVvZiBTdHJpbmcucHJvdG90eXBlLmxvY2FsZUNvbXBhcmU/ZnVuY3Rpb24odix5KXtyZXR1cm4iIi5jb25jYXQodikubG9jYWxlQ29tcGFyZSh5KX06ZnVuY3Rpb24odix5KXtyZXR1cm4gdj09PXk/MDp2Pnk/LTE6MX0pfWZ1''@;'; + put 'put ''bmN0aW9uIHNiZSgpe2lmKHZvaWQgMCE9PXhaKXJldHVybiB4Wjt0cnl7dmFyIGQ9e2dldCBwYXNzaXZlKCl7eFo9ITB9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsZCxkKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsZCxkKX1jYXRjaChnKXt4Wj0hMX1yZXR1''@;'; + put 'put ''cm4geFp9ZnVuY3Rpb24gdWJlKGQpe2Zvcih2YXIgZz1kLmxlbmd0aCxoPTA7aDxnOylkW2hdPVtkW2hdXSxoKz0xfWZ1bmN0aW9uIFloZShkLGcpe2Zvcih2YXIgaD1nLmxlbmd0aCx2PTA7djxoOylkLnB1c2goZ1t2XSksdis9MX1mdW5jdGlvbiBUWihkKXt2YXIgZz1bXTtpZighZHx8MD09''@;'; + put 'put ''PWQubGVuZ3RofHwhZFswXXx8MD09PWRbMF0ubGVuZ3RoKXJldHVybiBnO2Zvcih2YXIgaD1kLmxlbmd0aCx2PWRbMF0ubGVuZ3RoLHk9MDt5PGg7eSsrKWZvcih2YXIgQz0wO0M8djtDKyspZ1tDXXx8KGdbQ109W10pLGdbQ11beV09ZFt5XVtDXTtyZXR1cm4gZ31mdW5jdGlvbiBTdShkLGcs''@;'; + put 'put ''aCx2KXt2YXIgeT0tMSxDPWQsST1oO0FycmF5LmlzQXJyYXkoZCl8fChDPUFycmF5LmZyb20oZCkpO3ZhciBqPUMubGVuZ3RoO2Zvcih2JiZqJiYoST1DW3krPTFdKSx5Kz0xO3k8ajspST1nKEksQ1t5XSx5LEMpLHkrPTE7cmV0dXJuIEl9ZnVuY3Rpb24gZzQoZCxnKXt2YXIgaD0wLHY9ZDtB''@;'; + put 'put ''cnJheS5pc0FycmF5KGQpfHwodj1BcnJheS5mcm9tKGQpKTtmb3IodmFyIHk9di5sZW5ndGgsQz1bXSxJPS0xO2g8eTspe3ZhciBqPXZbaF07ZyhqLGgsdikmJihDW0krPTFdPWopLGgrPTF9cmV0dXJuIEN9ZnVuY3Rpb24gT2woZCxnKXt2YXIgaD0wLHY9ZDtBcnJheS5pc0FycmF5KGQpfHwo''@;'; + put 'put ''dj1BcnJheS5mcm9tKGQpKTtmb3IodmFyIHk9di5sZW5ndGgsQz1bXSxJPS0xO2g8eTspQ1tJKz0xXT1nKHZbaF0saCx2KSxoKz0xO3JldHVybiBDfWZ1bmN0aW9uIFVyKGQsZyl7dmFyIGg9MCx2PWQ7QXJyYXkuaXNBcnJheShkKXx8KHY9QXJyYXkuZnJvbShkKSk7Zm9yKHZhciB5PXYubGVu''@;'; + put 'put ''Z3RoO2g8eSYmITEhPT1nKHZbaF0saCx2KTspaCs9MTtyZXR1cm4gZH1mdW5jdGlvbiBjYmUoZCl7cmV0dXJuIFN1KGQsZnVuY3Rpb24oZyxoKXtyZXR1cm4gZytofSwwKX1mdW5jdGlvbiBHamUoZCl7cmV0dXJuIFN1KGQsZnVuY3Rpb24oZyxoKXtyZXR1cm4gZz5oP2c6aH0sQXJyYXkuaXNB''@;'; + put 'put ''cnJheShkKT9kWzBdOnZvaWQgMCl9ZnVuY3Rpb24gV2plKGQpe3JldHVybiBTdShkLGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGc8aD9nOmh9LEFycmF5LmlzQXJyYXkoZCk/ZFswXTp2b2lkIDApfWZ1bmN0aW9uIFlqZShkKXtyZXR1cm4gZC5sZW5ndGg/Y2JlKGQpL2QubGVuZ3RoOjB9ZnVuY3Rp''@;'; + put 'put ''b24gZmJlKGQpe3JldHVybiBTdShkLGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGcuY29uY2F0KEFycmF5LmlzQXJyYXkoaCk/ZmJlKGgpOmgpfSxbXSl9ZnVuY3Rpb24gVWhlKGQpe3ZhciBnPVtdO3JldHVybiBVcihkLGZ1bmN0aW9uKGgpey0xPT09Zy5pbmRleE9mKGgpJiZnLnB1c2goaCl9KSxn''@;'; + put 'put ''fWZ1bmN0aW9uIFFoZSgpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGc9bmV3IEFycmF5KGQpLGg9MDtoPGQ7aCsrKWdbaF09YXJndW1lbnRzW2hdO3ZhciB2PVtdLmNvbmNhdChnKSx5PXZbMF0sQz12LnNsaWNlKDEpLEk9eTtyZXR1cm4gVXIoQyxmdW5jdGlvbihqKXtJPUkuZmlsdGVy''@;'; + put 'put ''KGZ1bmN0aW9uKHVlKXtyZXR1cm4hai5pbmNsdWRlcyh1ZSl9KX0pLEl9ZnVuY3Rpb24gVWplKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsZz1uZXcgQXJyYXkoZCksaD0wO2g8ZDtoKyspZ1toXT1hcmd1bWVudHNbaF07dmFyIHY9W10uY29uY2F0KGcpLHk9dlswXSxDPXYuc2xpY2Uo''@;'; + put 'put ''MSksST15O3JldHVybiBVcihDLGZ1bmN0aW9uKGope0k9SS5maWx0ZXIoZnVuY3Rpb24odWUpe3JldHVybiBqLmluY2x1ZGVzKHVlKX0pfSksSX1mdW5jdGlvbiBRamUoKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxnPW5ldyBBcnJheShkKSxoPTA7aDxkO2grKylnW2hdPWFyZ3VtZW50''@;'; + put 'put ''c1toXTt2YXIgdj1bXS5jb25jYXQoZykseT12WzBdLEM9di5zbGljZSgxKSxJPW5ldyBTZXQoeSk7cmV0dXJuIFVyKEMsZnVuY3Rpb24oail7VXIoaixmdW5jdGlvbih1ZSl7SS5oYXModWUpfHxJLmFkZCh1ZSl9KX0pLEFycmF5LmZyb20oSSl9ZnVuY3Rpb24gSmhlKGQpe3ZhciBnPWFyZ3Vt''@;'; + put 'put ''ZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiICI7cmV0dXJuIGQuc3BsaXQoZyl9ZnVuY3Rpb24gaGJlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFi''@;'; + put 'put ''bGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiBLTChkKXtyZXR1cm4oS0w9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYm''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiAkTChkKXt2YXIgZztyZXR1cm4gQXJyYXkuaXNBcnJheShkKT9nPVtdOihnPXt9LEdsKGQsZnVuY3Rpb24o''@;'; + put 'put ''aCx2KXsiX19jaGlsZHJlbiIhPT12JiYoZ1t2XT1oJiYib2JqZWN0Ij09PUtMKGgpJiYhQXJyYXkuaXNBcnJheShoKT8kTChoKTpBcnJheS5pc0FycmF5KGgpP2gubGVuZ3RoJiYib2JqZWN0Ij09PUtMKGhbMF0pJiYhQXJyYXkuaXNBcnJheShoWzBdKT9bJEwoaFswXSldOltdOm51bGwpfSkp''@;'; + put 'put ''LGd9ZnVuY3Rpb24gazkoZCxnKXtyZXR1cm4gZy5wcm90b3R5cGUuY29uc3RydWN0b3I9ZyxkLnByb3RvdHlwZT1uZXcgZyxkLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1kLGR9ZnVuY3Rpb24gSTEoZCxnLGgpe3ZhciB2PUFycmF5LmlzQXJyYXkoaCk7cmV0dXJuIEdsKGcsZnVuY3Rpb24oeSxD''@;'; + put 'put ''KXsoITE9PT12fHxoLmluY2x1ZGVzKEMpKSYmKGRbQ109eSl9KSxkfWZ1bmN0aW9uIElaKGQsZyl7R2woZyxmdW5jdGlvbihoLHYpe2dbdl0mJiJvYmplY3QiPT09S0woZ1t2XSk/KGRbdl18fChkW3ZdPUFycmF5LmlzQXJyYXkoZ1t2XSk/W106IltvYmplY3QgRGF0ZV0iPT09T2JqZWN0LnBy''@;'; + put 'put ''b3RvdHlwZS50b1N0cmluZy5jYWxsKGdbdl0pP2dbdl06e30pLElaKGRbdl0sZ1t2XSkpOmRbdl09Z1t2XX0pfWZ1bmN0aW9uIGdoKGQpe3JldHVybiJvYmplY3QiPT09S0woZCk/SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkKSk6ZH1mdW5jdGlvbiBhMyhkKXt2YXIgZz17fTtyZXR1cm4g''@;'; + put 'put ''R2woZCxmdW5jdGlvbihoLHYpe2dbdl09aH0pLGd9ZnVuY3Rpb24gUjIoZCl7ZC5NSVhJTlN8fChkLk1JWElOUz1bXSk7Zm9yKHZhciBnPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZz4xP2ctMTowKSx2PTE7djxnO3YrKyloW3YtMV09YXJndW1lbnRzW3ZdO3JldHVybiBVcihoLGZ1''@;'; + put 'put ''bmN0aW9uKHkpe2QuTUlYSU5TLnB1c2goeS5NSVhJTl9OQU1FKSxHbCh5LGZ1bmN0aW9uKEMsSSl7aWYodm9pZCAwIT09ZC5wcm90b3R5cGVbSV0pdGhyb3cgbmV3IEVycm9yKCJNaXhpbiBjb25mbGljdC4gUHJvcGVydHkgJyIuY29uY2F0KEksIicgYWxyZWFkeSBleGlzdCBhbmQgY2Fubm90''@;'; + put 'put ''IGJlIG92ZXJ3cml0dGVuLiIpKTt2YXIgQmUsTmUsS2U7ImZ1bmN0aW9uIj09dHlwZW9mIEM/ZC5wcm90b3R5cGVbSV09QzpPYmplY3QuZGVmaW5lUHJvcGVydHkoZC5wcm90b3R5cGUsSSx7Z2V0OihCZT1JLE5lPUMsS2U9Il8iLmNvbmNhdChCZSksZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAw''@;'; + put 'put ''PT09dGhpc1tLZV0mJih0aGlzW0tlXT0oZm49TmUsKEFycmF5LmlzQXJyYXkoZm4pfHx4bChmbikpJiYoZm49Z2goZm4pKSxmbikpLHRoaXNbS2VdO3ZhciBmbn0pLHNldDpmdW5jdGlvbihCZSl7dmFyIE5lPSJfIi5jb25jYXQoQmUpO3JldHVybiBmdW5jdGlvbihLZSl7dGhpc1tOZV09S2V9''@;'; + put 'put ''fShJKSxjb25maWd1cmFibGU6ITB9KX0pfSksZH1mdW5jdGlvbiBYaGUoZCxnKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZCk9PT1KU09OLnN0cmluZ2lmeShnKX1mdW5jdGlvbiB4bChkKXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChk''@;'; + put 'put ''KX1mdW5jdGlvbiBTZyhkLGcsaCx2KXt2LnZhbHVlPWgsdi53cml0YWJsZT0hMSE9PXYud3JpdGFibGUsdi5lbnVtZXJhYmxlPSExIT09di5lbnVtZXJhYmxlLHYuY29uZmlndXJhYmxlPSExIT09di5jb25maWd1cmFibGUsT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx2KX1mdW5jdGlvbiBH''@;'; + put 'put ''bChkLGcpe2Zvcih2YXIgaCBpbiBkKWlmKCghZC5oYXNPd25Qcm9wZXJ0eXx8ZC5oYXNPd25Qcm9wZXJ0eSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsaCkpJiYhMT09PWcoZFtoXSxoLGQpKWJyZWFrO3JldHVybiBkfWZ1bmN0aW9uIGRiZShkLGcpe3ZhciBoPWcu''@;'; + put 'put ''c3BsaXQoIi4iKSx2PWQ7cmV0dXJuIEdsKGgsZnVuY3Rpb24oeSl7aWYodm9pZCAwPT09KHY9dlt5XSkpcmV0dXJuIHY9dm9pZCAwLCExfSksdn1mdW5jdGlvbiBRcShkLGcsaCl7dmFyIHY9Zy5zcGxpdCgiLiIpLHk9ZDt2LmZvckVhY2goZnVuY3Rpb24oQyxJKXtJIT09di5sZW5ndGgtMT8o''@;'; + put 'put ''bzEoeSxDKXx8KHlbQ109e30pLHk9eVtDXSk6eVtDXT1ofSl9ZnVuY3Rpb24gSnEoZCl7cmV0dXJuIHhsKGQpP2Z1bmN0aW9uIGgodil7dmFyIHk9MDtyZXR1cm4geGwodik/R2wodixmdW5jdGlvbihDLEkpeyJfX2NoaWxkcmVuIiE9PUkmJih5Kz1oKEMpKX0pOnkrPTEseX0oZCk6MH1mdW5j''@;'; + put 'put ''dGlvbiB3UyhkKXt2YXIgZyxoPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToidmFsdWUiLHY9Il8iLmNvbmNhdChoKSx5PShoYmUoZz17X3RvdWNoZWQ6ITF9LHYsZCksaGJlKGcsImlzVG91Y2hlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5fdG91Y2hlZH0pLGcpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoeSxoLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1t2XX0sc2V0OmZ1bmN0aW9uKEkpe3RoaXMuX3RvdWNoZWQ9ITAsdGhpc1t2XT1JfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHl9ZnVuY3Rp''@;'; + put 'put ''b24gbzEoZCxnKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZyl9U1p8fChTWj1mdW5jdGlvbihnKXt2YXIgaD0obmV3IERhdGUpLmdldFRpbWUoKSx2PU1hdGgubWF4KDAsMTYtKGgtcmJlKSkseT13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2co''@;'; + put 'put ''aCt2KX0sdik7cmV0dXJuIHJiZT1oK3YseX0pLFVxfHwoVXE9ZnVuY3Rpb24oZyl7Y2xlYXJUaW1lb3V0KGcpfSksTCgxODMyMyk7dmFyIG9kPWZ1bmN0aW9uKGcpe3ZhciBoPXt2YWx1ZTohMSx0ZXN0OmZ1bmN0aW9uKHYseSl7aC52YWx1ZT1nKHYseSl9fTtyZXR1cm4gaH0sbTQ9e2Nocm9t''@;'; + put 'put ''ZTpvZChmdW5jdGlvbihkLGcpe3JldHVybi9DaHJvbWUvLnRlc3QoZCkmJi9Hb29nbGUvLnRlc3QoZyl9KSxjaHJvbWVXZWJLaXQ6b2QoZnVuY3Rpb24oZCl7cmV0dXJuL0NyaU9TLy50ZXN0KGQpfSksZWRnZTpvZChmdW5jdGlvbihkKXtyZXR1cm4vRWRnZS8udGVzdChkKX0pLGVkZ2VXZWJL''@;'; + put 'put ''aXQ6b2QoZnVuY3Rpb24oZCl7cmV0dXJuL0VkZ2lPUy8udGVzdChkKX0pLGZpcmVmb3g6b2QoZnVuY3Rpb24oZCl7cmV0dXJuL0ZpcmVmb3gvLnRlc3QoZCl9KSxmaXJlZm94V2ViS2l0Om9kKGZ1bmN0aW9uKGQpe3JldHVybi9GeGlPUy8udGVzdChkKX0pLGllOm9kKGZ1bmN0aW9uKGQpe3Jl''@;'; + put 'put ''dHVybi9UcmlkZW50Ly50ZXN0KGQpfSksaWU5Om9kKGZ1bmN0aW9uKCl7cmV0dXJuISFkb2N1bWVudC5kb2N1bWVudE1vZGV9KSxtb2JpbGU6b2QoZnVuY3Rpb24oZCl7cmV0dXJuL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkv''@;'; + put 'put ''aS50ZXN0KGQpfSksc2FmYXJpOm9kKGZ1bmN0aW9uKGQsZyl7cmV0dXJuL1NhZmFyaS8udGVzdChkKSYmL0FwcGxlIENvbXB1dGVyLy50ZXN0KGcpfSl9LHFMPXttYWM6b2QoZnVuY3Rpb24oZCl7cmV0dXJuL15NYWMvLnRlc3QoZCl9KSx3aW46b2QoZnVuY3Rpb24oZCl7cmV0dXJuL15XaW4v''@;'; + put 'put ''LnRlc3QoZCl9KSxsaW51eDpvZChmdW5jdGlvbihkKXtyZXR1cm4vXkxpbnV4Ly50ZXN0KGQpfSksaW9zOm9kKGZ1bmN0aW9uKGQpe3JldHVybi9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChkKX0pfTtmdW5jdGlvbiBwYmUoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFy''@;'; + put 'put ''Z3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sZz1kLnVzZXJBZ2VudCxoPXZvaWQgMD09PWc/bmF2aWdhdG9yLnVzZXJBZ2VudDpnLHY9ZC52ZW5kb3IseT12b2lkIDA9PT12P25hdmlnYXRvci52ZW5kb3I6djtHbChtNCxmdW5jdGlvbihDKXsoMCxDLnRlc3QpKGgseSl9KX1mdW5jdGlvbiBn''@;'; + put 'put ''YmUoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sZz1kLnBsYXRmb3JtLGg9dm9pZCAwPT09Zz9uYXZpZ2F0b3IucGxhdGZvcm06ZztHbChxTCxmdW5jdGlvbih2KXsoMCx2LnRlc3QpKGgpfSl9ZnVuY3Rpb24gbWJlKCl7''@;'; + put 'put ''cmV0dXJuIG00LmNocm9tZS52YWx1ZX1mdW5jdGlvbiB2YmUoKXtyZXR1cm4gbTQuY2hyb21lV2ViS2l0LnZhbHVlfWZ1bmN0aW9uIFhxKCl7cmV0dXJuIG00LmZpcmVmb3gudmFsdWV9ZnVuY3Rpb24gQWJlKCl7cmV0dXJuIG00LmZpcmVmb3hXZWJLaXQudmFsdWV9ZnVuY3Rpb24geWJlKCl7''@;'; + put 'put ''cmV0dXJuIG00LnNhZmFyaS52YWx1ZX1mdW5jdGlvbiB3YmUoKXtyZXR1cm4gbTQuZWRnZS52YWx1ZX1mdW5jdGlvbiBKamUoKXtyZXR1cm4gbTQuZWRnZVdlYktpdC52YWx1ZX1mdW5jdGlvbiBiYmUoKXtyZXR1cm4gbTQuaWUudmFsdWV9ZnVuY3Rpb24gX2JlKCl7cmV0dXJuIG00LmllOS52''@;'; + put 'put ''YWx1ZX1mdW5jdGlvbiBYamUoKXtyZXR1cm4gbTQuaWUudmFsdWV8fG00LmVkZ2UudmFsdWV9ZnVuY3Rpb24gYjgoKXtyZXR1cm4gbTQubW9iaWxlLnZhbHVlfWZ1bmN0aW9uIEtoZSgpe3JldHVybiBxTC5pb3MudmFsdWV9ZnVuY3Rpb24gJGhlKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4w''@;'; + put 'put ''JiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm5hdmlnYXRvcixnPWQubWF4VG91Y2hQb2ludHM7cmV0dXJuIGc+MiYmcUwubWFjLnZhbHVlfWZ1bmN0aW9uIHFoZSgpe3JldHVybiBxTC53aW4udmFsdWV9ZnVuY3Rpb24gS3EoKXtyZXR1cm4gcUwubWFjLnZhbHVlfWZ1bmN0''@;'; + put 'put ''aW9uIEtqZSgpe3JldHVybiBxTC5saW51eC52YWx1ZX1wYmUoKSxnYmUoKTt2YXIgQ2JlLGtiZSxTYmUsTWJlLEViZSx4YmUsJGplPUwoOTI3MzUpO2Z1bmN0aW9uIEIyKGQpe2Zvcih2YXIgZz1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGc+MT9nLTE6MCksdj0xO3Y8Zzt2KyspaFt2''@;'; + put 'put ''LTFdPWFyZ3VtZW50c1t2XTt2YXIgeT1TdShkLGZ1bmN0aW9uKEMsSSxqKXtyZXR1cm4gQytJLnJlcGxhY2UoL1xyP1xuXHMqL2csIiIpKyhoW2pdP2hbal06IiIpfSwiIik7cmV0dXJuIHkudHJpbSgpfWZ1bmN0aW9uIGVPKGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5m''@;'; + put 'put ''cmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX1mdW5jdGlvbiBlM2UoZCl7cmV0dXJuKGUzZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXty''@;'; + put 'put ''ZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGV1KGQpe3ZhciBnO3N3aXRjaChlM2Uo''@;'; + put 'put ''ZCkpe2Nhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6Zz0iIi5jb25jYXQoZCk7YnJlYWs7Y2FzZSJvYmplY3QiOmc9bnVsbD09PWQ/IiI6ZC50b1N0cmluZygpO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjpnPSIiO2JyZWFrO2RlZmF1bHQ6Zz1kLnRvU3RyaW5nKCl9cmV0dXJuIGd9ZnVuY3Rpb24g''@;'; + put 'put ''VG8oZCl7cmV0dXJuIHZvaWQgMCE9PWR9ZnVuY3Rpb24gYTEoZCl7cmV0dXJuIHZvaWQgMD09PWR9ZnVuY3Rpb24gZGMoZCl7cmV0dXJuIG51bGw9PT1kfHwiIj09PWR8fGExKGQpfWZ1bmN0aW9uIFRiZShkKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PU9iamVjdC5wcm90b3R5cGUudG9T''@;'; + put 'put ''dHJpbmcuY2FsbChkKX1MKDgyNzU2KSxMKDE2NjYxKSxMKDc4MjQ2KTt2YXIgczNlLHUzZSxjM2UsRFo9Imxlbmd0aCIsTFo9ZnVuY3Rpb24oZyl7cmV0dXJuIHBhcnNlSW50KGcsMTYpfSxJYmU9ZnVuY3Rpb24oZyl7cmV0dXJuIHBhcnNlSW50KGcsMTApfSwkcT1mdW5jdGlvbihnLGgsdil7''@;'; + put 'put ''cmV0dXJuIGcuc3Vic3RyKGgsdil9LE9aPWZ1bmN0aW9uKGcpe3JldHVybiBnLmNvZGVQb2ludEF0KDApLTY1fSx0M2U9ZnVuY3Rpb24oZyl7cmV0dXJuIiIuY29uY2F0KGcpLnJlcGxhY2UoL1wtL2csIiIpfSxEYmU9ITEsTGJlPXtpbnZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuIEIyKENiZXx8''@;'; + put 'put ''KENiZT1lTyhbIlxuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlzIGludmFsaWQuIFxuICAgIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0IHVzIGF0IHN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbS4iXSxbIlxuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNv''@;'; + put 'put ''bnRhYmxlIGlzIGludmFsaWQuXFx4MjBcbiAgICBJZiB5b3UgbmVlZCBhbnkgaGVscCwgY29udGFjdCB1cyBhdCBzdXBwb3J0QGhhbmRzb250YWJsZS5jb20uIl0pKSl9LGV4cGlyZWQ6ZnVuY3Rpb24oZyl7dmFyIGg9Zy5rZXlWYWxpZGl0eURhdGUsdj1nLmhvdFZlcnNpb247cmV0dXJuIEIy''@;'; + put 'put ''KGtiZXx8KGtiZT1lTyhbIlxuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGV4cGlyZWQgb24gIiwiLCBhbmQgaXMgbm90IHZhbGlkIGZvciB0aGUgaW5zdGFsbGVkIFxuICAgIHZlcnNpb24gIiwiLiBSZW5ldyB5b3VyIGxpY2Vuc2Uga2V5IGF0IGhhbmRzb250YWJsZS5j''@;'; + put 'put ''b20gb3IgZG93bmdyYWRlIHRvIGEgdmVyc2lvbiByZWxlYXNlZCBwcmlvciBcbiAgICB0byAiLCIuIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0IHVzIGF0IHNhbGVzQGhhbmRzb250YWJsZS5jb20uIl0sWyJcbiAgICBUaGUgbGljZW5zZSBrZXkgZm9yIEhhbmRzb250YWJsZSBleHBp''@;'; + put 'put ''cmVkIG9uICIsIiwgYW5kIGlzIG5vdCB2YWxpZCBmb3IgdGhlIGluc3RhbGxlZFxceDIwXG4gICAgdmVyc2lvbiAiLCIuIFJlbmV3IHlvdXIgbGljZW5zZSBrZXkgYXQgaGFuZHNvbnRhYmxlLmNvbSBvciBkb3duZ3JhZGUgdG8gYSB2ZXJzaW9uIHJlbGVhc2VkIHByaW9yXFx4MjBcbiAgICB0''@;'; + put 'put ''byAiLCIuIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0IHVzIGF0IHNhbGVzQGhhbmRzb250YWJsZS5jb20uIl0pKSxoLHYsaCl9LG1pc3Npbmc6ZnVuY3Rpb24oKXtyZXR1cm4gQjIoU2JlfHwoU2JlPWVPKFsiXG4gICAgVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFibGUgaXMg''@;'; + put 'put ''bWlzc2luZy4gVXNlIHlvdXIgcHVyY2hhc2VkIGtleSB0byBhY3RpdmF0ZSB0aGUgcHJvZHVjdC4gXG4gICAgQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBhY3RpdmF0ZSBIYW5kc29udGFibGUgdG8gdXNlIGZvciBub24tY29tbWVyY2lhbCBwdXJwb3NlcyBieSBcbiAgICBwYXNzaW5nIHRoZSBr''@;'; + put 'put ''ZXk6ICdub24tY29tbWVyY2lhbC1hbmQtZXZhbHVhdGlvbicuIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0IFxuICAgIHVzIGF0IHN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbS4iXSxbIlxuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlzIG1pc3NpbmcuIFVzZSB5''@;'; + put 'put ''b3VyIHB1cmNoYXNlZCBrZXkgdG8gYWN0aXZhdGUgdGhlIHByb2R1Y3QuXFx4MjBcbiAgICBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGFjdGl2YXRlIEhhbmRzb250YWJsZSB0byB1c2UgZm9yIG5vbi1jb21tZXJjaWFsIHB1cnBvc2VzIGJ5XFx4MjBcbiAgICBwYXNzaW5nIHRoZSBrZXk6ICdu''@;'; + put 'put ''b24tY29tbWVyY2lhbC1hbmQtZXZhbHVhdGlvbicuIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0XFx4MjBcbiAgICB1cyBhdCBzdXBwb3J0QGhhbmRzb250YWJsZS5jb20uIl0pKSl9LG5vbl9jb21tZXJjaWFsOmZ1bmN0aW9uKCl7cmV0dXJuIiJ9fSxPYmU9e2ludmFsaWQ6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gQjIoTWJlfHwoTWJlPWVPKFsnXG4gICAgVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFibGUgaXMgaW52YWxpZC4gXG4gICAgPGEgaHJlZj0iaHR0cHM6Ly9oYW5kc29udGFibGUuY29tL2RvY3MvdHV0b3JpYWwtbGljZW5zZS1rZXkuaHRtbCIgdGFyZ2V0PSJfYmxh''@;'; + put 'put ''bmsiPlJlYWQgbW9yZTwvYT4gb24gaG93IHRvIFxuICAgIGluc3RhbGwgaXQgcHJvcGVybHkgb3IgY29udGFjdCB1cyBhdCA8YSBocmVmPSJtYWlsdG86c3VwcG9ydEBoYW5kc29udGFibGUuY29tIj5zdXBwb3J0QGhhbmRzb250YWJsZS5jb208L2E+LiddLFsnXG4gICAgVGhlIGxpY2Vuc2Ug''@;'; + put 'put ''a2V5IGZvciBIYW5kc29udGFibGUgaXMgaW52YWxpZC5cXHgyMFxuICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNvbnRhYmxlLmNvbS9kb2NzL3R1dG9yaWFsLWxpY2Vuc2Uta2V5Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5SZWFkIG1vcmU8L2E+IG9uIGhvdyB0b1xceDIwXG4gICAgaW5zdGFs''@;'; + put 'put ''bCBpdCBwcm9wZXJseSBvciBjb250YWN0IHVzIGF0IDxhIGhyZWY9Im1haWx0bzpzdXBwb3J0QGhhbmRzb250YWJsZS5jb20iPnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbTwvYT4uJ10pKSl9LGV4cGlyZWQ6ZnVuY3Rpb24oZyl7dmFyIGg9Zy5rZXlWYWxpZGl0eURhdGUsdj1nLmhvdFZlcnNp''@;'; + put 'put ''b247cmV0dXJuIEIyKEViZXx8KEViZT1lTyhbIlxuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGV4cGlyZWQgb24gIiwiLCBhbmQgaXMgbm90IHZhbGlkIGZvciB0aGUgaW5zdGFsbGVkIFxuICAgIHZlcnNpb24gIiwnLiA8YSBocmVmPSJodHRwczovL2hhbmRzb250YWJs''@;'; + put 'put ''ZS5jb20vcHJpY2luZyIgdGFyZ2V0PSJfYmxhbmsiPlJlbmV3PC9hPiB5b3VyIFxuICAgIGxpY2Vuc2Uga2V5IG9yIGRvd25ncmFkZSB0byBhIHZlcnNpb24gcmVsZWFzZWQgcHJpb3IgdG8gJywnLiBJZiB5b3UgbmVlZCBhbnkgXG4gICAgaGVscCwgY29udGFjdCB1cyBhdCA8YSBocmVmPSJt''@;'; + put 'put ''YWlsdG86c2FsZXNAaGFuZHNvbnRhYmxlLmNvbSI+c2FsZXNAaGFuZHNvbnRhYmxlLmNvbTwvYT4uJ10sWyJcbiAgICBUaGUgbGljZW5zZSBrZXkgZm9yIEhhbmRzb250YWJsZSBleHBpcmVkIG9uICIsIiwgYW5kIGlzIG5vdCB2YWxpZCBmb3IgdGhlIGluc3RhbGxlZFxceDIwXG4gICAgdmVy''@;'; + put 'put ''c2lvbiAiLCcuIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNvbnRhYmxlLmNvbS9wcmljaW5nIiB0YXJnZXQ9Il9ibGFuayI+UmVuZXc8L2E+IHlvdXJcXHgyMFxuICAgIGxpY2Vuc2Uga2V5IG9yIGRvd25ncmFkZSB0byBhIHZlcnNpb24gcmVsZWFzZWQgcHJpb3IgdG8gJywnLiBJZiB5b3UgbmVl''@;'; + put 'put ''ZCBhbnlcXHgyMFxuICAgIGhlbHAsIGNvbnRhY3QgdXMgYXQgPGEgaHJlZj0ibWFpbHRvOnNhbGVzQGhhbmRzb250YWJsZS5jb20iPnNhbGVzQGhhbmRzb250YWJsZS5jb208L2E+LiddKSksaCx2LGgpfSxtaXNzaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIEIyKHhiZXx8KHhiZT1lTyhbJ1xuICAg''@;'; + put 'put ''IFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlzIG1pc3NpbmcuIFVzZSB5b3VyIHB1cmNoYXNlZCBrZXkgdG8gYWN0aXZhdGUgdGhlIHByb2R1Y3QuIFxuICAgIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gYWN0aXZhdGUgSGFuZHNvbnRhYmxlIHRvIHVzZSBmb3Igbm9uLWNvbW1l''@;'; + put 'put ''cmNpYWwgcHVycG9zZXMgYnkgXG4gICAgcGFzc2luZyB0aGUga2V5OiBcJ25vbi1jb21tZXJjaWFsLWFuZC1ldmFsdWF0aW9uXCcuIFxuICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNvbnRhYmxlLmNvbS9kb2NzL3R1dG9yaWFsLWxpY2Vuc2Uta2V5Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5S''@;'; + put 'put ''ZWFkIG1vcmU8L2E+IGFib3V0IGl0IGluIFxuICAgIHRoZSBkb2N1bWVudGF0aW9uIG9yIGNvbnRhY3QgdXMgYXQgPGEgaHJlZj0ibWFpbHRvOnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbSI+c3VwcG9ydEBoYW5kc29udGFibGUuY29tPC9hPi4nXSxbJ1xuICAgIFRoZSBsaWNlbnNlIGtleSBm''@;'; + put 'put ''b3IgSGFuZHNvbnRhYmxlIGlzIG1pc3NpbmcuIFVzZSB5b3VyIHB1cmNoYXNlZCBrZXkgdG8gYWN0aXZhdGUgdGhlIHByb2R1Y3QuXFx4MjBcbiAgICBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGFjdGl2YXRlIEhhbmRzb250YWJsZSB0byB1c2UgZm9yIG5vbi1jb21tZXJjaWFsIHB1cnBvc2Vz''@;'; + put 'put ''IGJ5XFx4MjBcbiAgICBwYXNzaW5nIHRoZSBrZXk6IFwnbm9uLWNvbW1lcmNpYWwtYW5kLWV2YWx1YXRpb25cJy5cXHgyMFxuICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNvbnRhYmxlLmNvbS9kb2NzL3R1dG9yaWFsLWxpY2Vuc2Uta2V5Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5SZWFkIG1v''@;'; + put 'put ''cmU8L2E+IGFib3V0IGl0IGluXFx4MjBcbiAgICB0aGUgZG9jdW1lbnRhdGlvbiBvciBjb250YWN0IHVzIGF0IDxhIGhyZWY9Im1haWx0bzpzdXBwb3J0QGhhbmRzb250YWJsZS5jb20iPnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbTwvYT4uJ10pKSl9LG5vbl9jb21tZXJjaWFsOmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIiJ9fTtmdW5jdGlvbiBSYmUoZCxnKXt2YXIgQyxoPSFkYyhkKSx2PSJzdHJpbmciPT10eXBlb2YgZCYmIm5vbi1jb21tZXJjaWFsLWFuZC1ldmFsdWF0aW9uIj09PWQudG9Mb3dlckNhc2UoKSx5PSIxMi4xLjIiLEk9ImludmFsaWQiLGo9ImludmFsaWQiLHVlPWZ1bmN0aW9u''@;'; + put 'put ''IHRaZShkKXt2YXIgZz1bXVtEWl0saD1nO2lmKGRbRFpdIT09T1ooIloiKSlyZXR1cm4hMTtmb3IodmFyIHY9IiIseT0iQjxINFArIi5zcGxpdCgiIiksQz1PWih5LnNoaWZ0KCkpO0M7Qz1PWih5LnNoaWZ0KCl8fCJBIikpLS1DPCIiW0RaXT9ofD0oSWJlKCIiLmNvbmNhdChJYmUoTFoodikr''@;'; + put 'put ''KExaKCRxKGQsTWF0aC5hYnMoQyksMikpK1tdKS5wYWRTdGFydCgyLCIwIikpKSklOTd8fDIpPj4xOnY9JHEoZCxDLEM/MT09PXlbRFpdPzk6ODo2KTtyZXR1cm4gaD09PWd9KGQ9dDNlKGR8fCIiKSk7aWYoaHx8dnx8dWUpaWYodWUpe3ZhciBfZT1UbCgiMDgvMDcvMjAyMiIsIkREL01NL1lZ''@;'; + put 'put ''WVkiKSxCZT1NYXRoLmZsb29yKF9lLnRvRGF0ZSgpLmdldFRpbWUoKS84NjRlNSksTmU9ZnVuY3Rpb24oZyl7cmV0dXJuIExaKCRxKHQzZShnKSxMWigiMTIiKSxPWigiRiIpKSkvKExaKCRxKHQzZShnKSxPWigiQiIpLH5+IVtdW0RaXSkpfHw5KX0oZCk7aWYoQz1UbCg4NjRlNSooTmUrMSks''@;'; + put 'put ''IngiKS5mb3JtYXQoIk1NTU0gREQsIFlZWVkiKSxCZT5OZSl7dmFyIEtlPVRsKCkuZGlmZihfZSwiZGF5cyIpO0k9S2U8PTE/InZhbGlkIjoiZXhwaXJlZCIsaj1LZTw9MTU/InZhbGlkIjoiZXhwaXJlZCJ9ZWxzZSBJPSJ2YWxpZCIsaj0idmFsaWQifWVsc2Ugdj8oST0ibm9uX2NvbW1lcmNp''@;'; + put 'put ''YWwiLGo9InZhbGlkIik6KEk9ImludmFsaWQiLGo9ImludmFsaWQiKTtlbHNlIEk9Im1pc3NpbmciLGo9Im1pc3NpbmciO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbG9jYXRpb24mJi9eKFthLXowLTlcLV0rXC4pP1x4NjhceDYxXHg2RVx4NjRceDczXHg2Rlx4NkVceDc0XHg2MVx4NjJceDZD''@;'; + put 'put ''XHg2NVx4MkVceDYzXHg2Rlx4NkQkL2kudGVzdChsb2NhdGlvbi5ob3N0KSYmKEk9InZhbGlkIixqPSJ2YWxpZCIpLERiZXx8InZhbGlkIj09PUl8fChMYmVbSV0oe2tleVZhbGlkaXR5RGF0ZTpDLGhvdFZlcnNpb246eX0pJiZjb25zb2xlWyJub25fY29tbWVyY2lhbCI9PT1JPyJpbmZvIjoi''@;'; + put 'put ''d2FybiJdKExiZVtJXSh7a2V5VmFsaWRpdHlEYXRlOkMsaG90VmVyc2lvbjp5fSkpLERiZT0hMCksInZhbGlkIiE9PWomJmcucGFyZW50Tm9kZSYmT2JlW2pdKHtrZXlWYWxpZGl0eURhdGU6Qyxob3RWZXJzaW9uOnl9KSl7dmFyICR0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOyR0''@;'; + put 'put ''LmlkPSJob3QtZGlzcGxheS1saWNlbnNlLWluZm8iLCR0LmlubmVySFRNTD1PYmVbal0oe2tleVZhbGlkaXR5RGF0ZTpDLGhvdFZlcnNpb246eX0pLGcucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoJHQsZy5uZXh0U2libGluZyl9fWZ1bmN0aW9uIGFkKGQpe3JldHVybiBkWzBdLnRvVXBwZXJD''@;'; + put 'put ''YXNlKCkrZC5zdWJzdHIoMSl9ZnVuY3Rpb24gblplKCl7Zm9yKHZhciBkPVtdLGc9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShnKSx2PTA7djxnO3YrKyloW3ZdPWFyZ3VtZW50c1t2XTtmb3IodmFyIHk9aC5sZW5ndGg7eTspe3ZhciBDPWV1KGhbeS09MV0pLnRvTG93ZXJDYXNlKCk7''@;'; + put 'put ''LTE9PT1kLmluZGV4T2YoQykmJmQucHVzaChDKX1yZXR1cm4gMT09PWQubGVuZ3RofWZ1bmN0aW9uIG4zZSgpe2Z1bmN0aW9uIGQoKXtyZXR1cm4gTWF0aC5mbG9vcig2NTUzNiooMStNYXRoLnJhbmRvbSgpKSkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKX1yZXR1cm4gZCgpK2QoKStkKCkr''@;'; + put 'put ''ZCgpfWZ1bmN0aW9uIHIzZShkKXtyZXR1cm4vXihbMC05XVswLTldPyUkKXwoXjEwMCUkKS8udGVzdChkKX1mdW5jdGlvbiBpM2UoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3JldHVybiIiLmNvbmNhdChkKS5yZXBs''@;'; + put 'put ''YWNlKC8oPzpcXCk/XFsoW15bXF1dKyldL2csZnVuY3Rpb24oaCx2KXtyZXR1cm4iXFwiPT09aC5jaGFyQXQoMCk/aC5zdWJzdHIoMSxoLmxlbmd0aC0xKTp2b2lkIDA9PT1nW3ZdPyIiOmdbdl19KX1mdW5jdGlvbiBvM2UoZCl7cmV0dXJuIHFxKCIiLmNvbmNhdChkKSx7QUxMT1dFRF9UQUdT''@;'; + put 'put ''OltdfSl9ZnVuY3Rpb24gcXEoZCxnKXtyZXR1cm4gJGplLnNhbml0aXplKGQsZyl9ZnVuY3Rpb24gQmJlKGQpe3JldHVybiBmdW5jdGlvbiBhWmUoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gYTNlKGQpfShkKXx8ZnVuY3Rpb24gb1plKGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Yg''@;'; + put 'put ''U3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIGlaZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gYTNlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlw''@;'; + put 'put ''ZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8''@;'; + put 'put ''MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBhM2UoZCxnKX19KGQpfHxmdW5jdGlvbiByWmUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxl''@;'; + put 'put ''LCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBhM2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTty''@;'; + put 'put ''ZXR1cm4gdn1mdW5jdGlvbiBQYmUoZCl7Zm9yKHZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLGg9LTEsdj1udWxsLHk9ZDtudWxsIT09eTspe2lmKGg9PT1nKXt2PXk7YnJlYWt9eS5ob3N0JiZ5Lm5vZGVUeXBlPT09Tm9kZS5E''@;'; + put 'put ''T0NVTUVOVF9GUkFHTUVOVF9OT0RFP3k9eS5ob3N0OihoKz0xLHk9eS5wYXJlbnROb2RlKX1yZXR1cm4gdn1mdW5jdGlvbiBGYmUoZCl7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihkLnBhcmVudCkmJmQuZnJhbWVFbGVtZW50fWZ1bmN0aW9uIGwzZShkKXtyZXR1cm4gRmJlKGQpJiZk''@;'; + put 'put ''LnBhcmVudH1mdW5jdGlvbiBsWmUoZCl7cmV0dXJuISFPYmplY3QuZ2V0UHJvdG90eXBlT2YoZC5wYXJlbnQpfWZ1bmN0aW9uIFM5KGQpe2Zvcih2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10saD1hcmd1bWVudHMubGVuZ3Ro''@;'; + put 'put ''PjI/YXJndW1lbnRzWzJdOnZvaWQgMCx2PU5vZGUseT12LkVMRU1FTlRfTk9ERSxDPXYuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSxJPWQ7bnVsbCE9SSYmSSE9PWg7KXt2YXIgaj1JLHVlPWoubm9kZVR5cGUsX2U9ai5ub2RlTmFtZTtpZih1ZT09PXkmJihnLmluY2x1ZGVzKF9lKXx8Zy5pbmNs''@;'; + put 'put ''dWRlcyhJKSkpcmV0dXJuIEk7dmFyIEJlPUksTmU9QmUuaG9zdDtJPU5lJiZ1ZT09PUM/TmU6SS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIFJaKGQsZyxoKXtmb3IodmFyIHY9W10seT1kO3kmJih5PVM5KHksZyxoKSkmJighaHx8aC5jb250YWlucyh5KSk7KXYucHVzaCh5KSx5''@;'; + put 'put ''PXkuaG9zdCYmeS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERT95Lmhvc3Q6eS5wYXJlbnROb2RlO3ZhciBDPXYubGVuZ3RoO3JldHVybiBDP3ZbQy0xXTpudWxsfWZ1bmN0aW9uIHd3KGQsZyl7dmFyIGg9ZC5wYXJlbnROb2RlLHY9W107Zm9yKCJzdHJpbmciPT10eXBl''@;'; + put 'put ''b2YgZz92PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGQuZGVmYXVsdFZpZXc/ZC5xdWVyeVNlbGVjdG9yQWxsKGcpOmQub3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGcpLDApOnYucHVzaChnKTtudWxsIT09aDspe2lmKHYuaW5kZXhPZihoKT4tMSlyZXR1cm4hMDtoPWgucGFy''@;'; + put 'put ''ZW50Tm9kZX1yZXR1cm4hMX1mdW5jdGlvbiBIYmUoZCl7dmFyIGc9MCxoPWQ7aWYoaC5wcmV2aW91c1NpYmxpbmcpZm9yKDtoPWgucHJldmlvdXNTaWJsaW5nOylnKz0xO3JldHVybiBnfWZ1bmN0aW9uIGJ3KGQsZyxoKXt2YXIgdj1oLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmh0''@;'; + put 'put ''X2Nsb25lXyIuY29uY2F0KGQpKTtyZXR1cm4gdj92LmNvbnRhaW5zKGcpOm51bGx9ZnVuY3Rpb24gZWVlKGQpe3JldHVybiBkJiZkLmxlbmd0aD9kLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hIWd9KTpbXX1pZihpYmUoKSl7dmFyIE5iZT1mdW5jdGlvbihnKXt2YXIgaD1nLmNyZWF0ZUVs''@;'; + put 'put ''ZW1lbnQoImRpdiIpO3JldHVybiBoLmNsYXNzTGlzdC5hZGQoInRlc3QiLCJ0ZXN0MiIpLGguY2xhc3NMaXN0LmNvbnRhaW5zKCJ0ZXN0MiIpfTtzM2U9ZnVuY3Rpb24oZyxoKXtyZXR1cm4gdm9pZCAwIT09Zy5jbGFzc0xpc3QmJiJzdHJpbmciPT10eXBlb2YgaCYmIiIhPT1oJiZnLmNsYXNz''@;'; + put 'put ''TGlzdC5jb250YWlucyhoKX0sdTNlPWZ1bmN0aW9uKGcsaCl7dmFyIHY9Zy5vd25lckRvY3VtZW50LHk9aDtpZigic3RyaW5nIj09dHlwZW9mIHkmJih5PXkuc3BsaXQoIiAiKSksKHk9ZWVlKHkpKS5sZW5ndGg+MClpZihOYmUodikpe3ZhciBDOyhDPWcuY2xhc3NMaXN0KS5hZGQuYXBwbHko''@;'; + put 'put ''QyxCYmUoeSkpfWVsc2UgZm9yKHZhciBJPTA7eVtJXTspZy5jbGFzc0xpc3QuYWRkKHlbSV0pLEkrPTF9LGMzZT1mdW5jdGlvbihnLGgpe3ZhciB2PWcub3duZXJEb2N1bWVudCx5PWg7aWYoInN0cmluZyI9PXR5cGVvZiB5JiYoeT15LnNwbGl0KCIgIikpLCh5PWVlZSh5KSkubGVuZ3RoPjAp''@;'; + put 'put ''aWYoTmJlKHYpKXt2YXIgQzsoQz1nLmNsYXNzTGlzdCkucmVtb3ZlLmFwcGx5KEMsQmJlKHkpKX1lbHNlIGZvcih2YXIgST0wO3lbSV07KWcuY2xhc3NMaXN0LnJlbW92ZSh5W0ldKSxJKz0xfX1lbHNle3ZhciBmM2U9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBSZWdFeHAoIihcXHN8XikiLmNv''@;'; + put 'put ''bmNhdChnLCIoXFxzfCQpIikpfTtzM2U9ZnVuY3Rpb24oZyxoKXtyZXR1cm4gdm9pZCAwIT09Zy5jbGFzc05hbWUmJmYzZShoKS50ZXN0KGcuY2xhc3NOYW1lKX0sdTNlPWZ1bmN0aW9uKGcsaCl7dmFyIHY9Zy5jbGFzc05hbWUseT1oO2lmKCJzdHJpbmciPT10eXBlb2YgeSYmKHk9eS5zcGxp''@;'; + put 'put ''dCgiICIpKSx5PWVlZSh5KSwiIj09PXYpdj15LmpvaW4oIiAiKTtlbHNlIGZvcih2YXIgQz0wO0M8eS5sZW5ndGg7QysrKXlbQ10mJiFmM2UoeVtDXSkudGVzdCh2KSYmKHYrPSIgIi5jb25jYXQoeVtDXSkpO2cuY2xhc3NOYW1lPXZ9LGMzZT1mdW5jdGlvbihnLGgpe3ZhciB2PTAseT1nLmNs''@;'; + put 'put ''YXNzTmFtZSxDPWg7Zm9yKCJzdHJpbmciPT10eXBlb2YgQyYmKEM9Qy5zcGxpdCgiICIpKSxDPWVlZShDKTtDW3ZdOyl5PXkucmVwbGFjZShmM2UoQ1t2XSksIiAiKS50cmltKCksdis9MTtnLmNsYXNzTmFtZSE9PXkmJihnLmNsYXNzTmFtZT15KX19ZnVuY3Rpb24gdGwoZCxnKXtyZXR1cm4g''@;'; + put 'put ''czNlKGQsZyl9ZnVuY3Rpb24gTzAoZCxnKXt1M2UoZCxnKX1mdW5jdGlvbiBwbChkLGcpe2MzZShkLGcpfWZ1bmN0aW9uIGgzZShkKXtpZigzPT09ZC5ub2RlVHlwZSlkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCk7ZWxzZSBpZihbIlRBQkxFIiwiVEhFQUQiLCJUQk9EWSIsIlRGT09UIiwi''@;'; + put 'put ''VFIiXS5pbmRleE9mKGQubm9kZU5hbWUpPi0xKWZvcih2YXIgZz1kLmNoaWxkTm9kZXMsaD1nLmxlbmd0aC0xO2g+PTA7aC0tKWgzZShnW2hdKX1mdW5jdGlvbiBEcChkKXtmb3IodmFyIGc7Zz1kLmxhc3RDaGlsZDspZC5yZW1vdmVDaGlsZChnKX12YXIgZzNlLFZiZT0vKDwoLiopPnwmKC4q''@;'; + put 'put ''KTspLztmdW5jdGlvbiBfdyhkLGcpe3ZhciBoPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl07VmJlLnRlc3QoZyk/ZC5pbm5lckhUTUw9aD9xcShnKTpnOkN3KGQsZyl9ZnVuY3Rpb24gQ3coZCxnKXt2YXIgaD1kLmZpcnN0Q2hpbGQ7''@;'; + put 'put ''aCYmMz09PWgubm9kZVR5cGUmJm51bGw9PT1oLm5leHRTaWJsaW5nP29iZT9oLnRleHRDb250ZW50PWc6aC5kYXRhPWc6KERwKGQpLGQuYXBwZW5kQ2hpbGQoZC5vd25lckRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGcpKSl9ZnVuY3Rpb24gdE8oZCl7Zm9yKHZhciBnPWQub3duZXJEb2N1bWVu''@;'; + put 'put ''dC5kb2N1bWVudEVsZW1lbnQsaD1kO2ghPT1nOyl7aWYobnVsbD09PWgpcmV0dXJuITE7aWYoaC5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSl7aWYoaC5ob3N0KXtpZihoLmhvc3QuaW1wbClyZXR1cm4gdE8oaC5ob3N0LmltcGwpO2lmKGguaG9zdClyZXR1cm4gdE8o''@;'; + put 'put ''aC5ob3N0KTt0aHJvdyBuZXcgRXJyb3IoIkxvc3QgaW4gV2ViIENvbXBvbmVudHMgd29ybGQiKX1yZXR1cm4hMX1pZihoLnN0eWxlJiYibm9uZSI9PT1oLnN0eWxlLmRpc3BsYXkpcmV0dXJuITE7aD1oLnBhcmVudE5vZGV9cmV0dXJuITB9ZnVuY3Rpb24ganUoZCl7dmFyIEMsSSxqLHVlLGc9''@;'; + put 'put ''ZC5vd25lckRvY3VtZW50LGg9Zy5kZWZhdWx0Vmlldyx2PWcuZG9jdW1lbnRFbGVtZW50LHk9ZDtpZihXaGUoKSYmeS5maXJzdENoaWxkJiYiQ0FQVElPTiI9PT15LmZpcnN0Q2hpbGQubm9kZU5hbWUpcmV0dXJue3RvcDoodWU9eS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkudG9wKyhoLnBh''@;'; + put 'put ''Z2VZT2Zmc2V0fHx2LnNjcm9sbFRvcCktKHYuY2xpZW50VG9wfHwwKSxsZWZ0OnVlLmxlZnQrKGgucGFnZVhPZmZzZXR8fHYuc2Nyb2xsTGVmdCktKHYuY2xpZW50TGVmdHx8MCl9O2ZvcihDPXkub2Zmc2V0TGVmdCxJPXkub2Zmc2V0VG9wLGo9eTsoeT15Lm9mZnNldFBhcmVudCkmJnkhPT1n''@;'; + put 'put ''LmJvZHk7KUMrPXkub2Zmc2V0TGVmdCxJKz15Lm9mZnNldFRvcCxqPXk7cmV0dXJuIGomJiJmaXhlZCI9PT1qLnN0eWxlLnBvc2l0aW9uJiYoQys9aC5wYWdlWE9mZnNldHx8di5zY3JvbGxMZWZ0LEkrPWgucGFnZVlPZmZzZXR8fHYuc2Nyb2xsVG9wKSx7bGVmdDpDLHRvcDpJfX1mdW5jdGlv''@;'; + put 'put ''biBuTygpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp3aW5kb3csZz1kLnNjcm9sbFk7cmV0dXJuIHZvaWQgMD09PWcmJihnPWQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCksZ31mdW5jdGlvbiBiUygpe3Zh''@;'; + put 'put ''ciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp3aW5kb3csZz1kLnNjcm9sbFg7cmV0dXJuIHZvaWQgMD09PWcmJihnPWQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQpLGd9ZnVuY3Rpb24gQlooZCl7dmFyIGc9YXJn''@;'; + put 'put ''dW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOndpbmRvdztyZXR1cm4gZD09PWc/bk8oZyk6ZC5zY3JvbGxUb3B9ZnVuY3Rpb24gdGVlKGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sx''@;'; + put 'put ''XTp3aW5kb3c7cmV0dXJuIGQ9PT1nP2JTKGcpOmQuc2Nyb2xsTGVmdH1mdW5jdGlvbiBQWihkKXt2YXIgZz1kLm93bmVyRG9jdW1lbnQsaD1nP2cuZGVmYXVsdFZpZXc6dm9pZCAwO2d8fChoPShnPWQuZG9jdW1lbnQ/ZC5kb2N1bWVudDpkKS5kZWZhdWx0Vmlldyk7Zm9yKHZhciB2PVsiYXV0''@;'; + put 'put ''byIsInNjcm9sbCJdLHk9YWJlKCksQz1kLnBhcmVudE5vZGU7QyYmQy5zdHlsZSYmZy5ib2R5IT09Qzspe3ZhciBJPUMuc3R5bGUsaj1JLm92ZXJmbG93LHVlPUkub3ZlcmZsb3dYLF9lPUkub3ZlcmZsb3dZO2lmKFtqLHVlLF9lXS5pbmNsdWRlcygic2Nyb2xsIikpcmV0dXJuIEM7aWYoeSl7''@;'; + put 'put ''dmFyIEJlPWguZ2V0Q29tcHV0ZWRTdHlsZShDKTtpZih1ZT1CZS5vdmVyZmxvd1gsX2U9QmUub3ZlcmZsb3dZLHYuaW5jbHVkZXMoaj1CZS5vdmVyZmxvdyl8fHYuaW5jbHVkZXModWUpfHx2LmluY2x1ZGVzKF9lKSlyZXR1cm4gQ31pZihDLmNsaWVudEhlaWdodDw9Qy5zY3JvbGxIZWlnaHQr''@;'; + put 'put ''MSYmKHYuaW5jbHVkZXMoX2UpfHx2LmluY2x1ZGVzKGopKXx8Qy5jbGllbnRXaWR0aDw9Qy5zY3JvbGxXaWR0aCsxJiYodi5pbmNsdWRlcyh1ZSl8fHYuaW5jbHVkZXMoaikpKXJldHVybiBDO0M9Qy5wYXJlbnROb2RlfXJldHVybiBofWZ1bmN0aW9uIHJPKGQpe2Zvcih2YXIgZz1kLm93bmVy''@;'; + put 'put ''RG9jdW1lbnQsaD1nLmRlZmF1bHRWaWV3LHY9ZC5wYXJlbnROb2RlO3YmJnYuc3R5bGUmJmcuYm9keSE9PXY7KXtpZigidmlzaWJsZSIhPT12LnN0eWxlLm92ZXJmbG93JiYiIiE9PXYuc3R5bGUub3ZlcmZsb3cpcmV0dXJuIHY7dmFyIHk9a3codixoKSxDPVsic2Nyb2xsIiwiaGlkZGVuIiwi''@;'; + put 'put ''YXV0byJdLEk9eS5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdyIpLGo9eS5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdy15IiksdWU9eS5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdy14Iik7aWYoQy5pbmNsdWRlcyhJKXx8Qy5pbmNsdWRlcyhqKXx8Qy5pbmNsdWRlcyh1ZSkpcmV0dXJu''@;'; + put 'put ''IHY7dj12LnBhcmVudE5vZGV9cmV0dXJuIGh9ZnVuY3Rpb24gbmVlKGQsZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOndpbmRvdztpZihkKXtpZihkPT09aClyZXR1cm4id2lkdGgiPT09Zz8iIi5jb25jYXQoaC5pbm5lcldp''@;'; + put 'put ''ZHRoLCJweCIpOiJoZWlnaHQiPT09Zz8iIi5jb25jYXQoaC5pbm5lckhlaWdodCwicHgiKTp2b2lkIDA7dmFyIHY9ZC5zdHlsZVtnXTtpZigiIiE9PXYmJnZvaWQgMCE9PXYpcmV0dXJuIHY7dmFyIHk9a3coZCxoKTtyZXR1cm4iIiE9PXlbZ10mJnZvaWQgMCE9PXlbZ10/eVtnXTp2b2lkIDB9''@;'; + put 'put ''fWZ1bmN0aW9uIHNaZShkLGcpe3ZhciBoPWcuc2VsZWN0b3JUZXh0LHY9ITE7cmV0dXJuIGcudHlwZT09PUNTU1J1bGUuU1RZTEVfUlVMRSYmaCYmKGQubXNNYXRjaGVzU2VsZWN0b3I/dj1kLm1zTWF0Y2hlc1NlbGVjdG9yKGgpOmQubWF0Y2hlcyYmKHY9ZC5tYXRjaGVzKGgpKSksdn1mdW5j''@;'; + put 'put ''dGlvbiBrdyhkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06d2luZG93O3JldHVybiBkLmN1cnJlbnRTdHlsZXx8Zy5nZXRDb21wdXRlZFN0eWxlKGQpfWZ1bmN0aW9uIEUyKGQpe3JldHVybiBkLm9mZnNldFdpZHRofWZ1bmN0''@;'; + put 'put ''aW9uIEQxKGQpe3JldHVybiBXaGUoKSYmZC5maXJzdENoaWxkJiYiQ0FQVElPTiI9PT1kLmZpcnN0Q2hpbGQubm9kZU5hbWU/ZC5vZmZzZXRIZWlnaHQrZC5maXJzdENoaWxkLm9mZnNldEhlaWdodDpkLm9mZnNldEhlaWdodH1mdW5jdGlvbiBNOShkKXtyZXR1cm4gZC5jbGllbnRIZWlnaHR8''@;'; + put 'put ''fGQuaW5uZXJIZWlnaHR9ZnVuY3Rpb24gRlooZCl7cmV0dXJuIGQuY2xpZW50V2lkdGh8fGQuaW5uZXJXaWR0aH1mdW5jdGlvbiB1WmUoZCxnLGgpe2QuYWRkRXZlbnRMaXN0ZW5lcihnLGgsITEpfWZ1bmN0aW9uIGNaZShkLGcsaCl7ZC5yZW1vdmVFdmVudExpc3RlbmVyKGcsaCwhMSl9ZnVu''@;'; + put 'put ''Y3Rpb24gZDNlKGQpe3ZhciBnPWQub3duZXJEb2N1bWVudDtpZihkLnNlbGVjdGlvblN0YXJ0KXJldHVybiBkLnNlbGVjdGlvblN0YXJ0O2lmKGcuc2VsZWN0aW9uKXtkLmZvY3VzKCk7dmFyIGg9Zy5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKTtpZihudWxsPT09aClyZXR1cm4gMDt2YXIgdj1k''@;'; + put 'put ''LmNyZWF0ZVRleHRSYW5nZSgpLHk9di5kdXBsaWNhdGUoKTtyZXR1cm4gdi5tb3ZlVG9Cb29rbWFyayhoLmdldEJvb2ttYXJrKCkpLHkuc2V0RW5kUG9pbnQoIkVuZFRvU3RhcnQiLHYpLHkudGV4dC5sZW5ndGh9cmV0dXJuIDB9ZnVuY3Rpb24gamJlKGQpe3ZhciBnPWQub3duZXJEb2N1bWVu''@;'; + put 'put ''dDtpZihkLnNlbGVjdGlvbkVuZClyZXR1cm4gZC5zZWxlY3Rpb25FbmQ7aWYoZy5zZWxlY3Rpb24pe3ZhciBoPWcuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7cmV0dXJuIG51bGw9PT1oPzA6ZC5jcmVhdGVUZXh0UmFuZ2UoKS50ZXh0LmluZGV4T2YoaC50ZXh0KStoLnRleHQubGVuZ3RofXJl''@;'; + put 'put ''dHVybiAwfWZ1bmN0aW9uIFpiZSgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp3aW5kb3csZz1kLmRvY3VtZW50LGg9IiI7cmV0dXJuIGQuZ2V0U2VsZWN0aW9uP2g9ZC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOmcuc2Vs''@;'; + put 'put ''ZWN0aW9uJiYiQ29udHJvbCIhPT1nLnNlbGVjdGlvbi50eXBlJiYoaD1nLnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpLnRleHQpLGh9ZnVuY3Rpb24gcDNlKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOndpbmRvdyxnPWQuZG9j''@;'; + put 'put ''dW1lbnQ7ZC5nZXRTZWxlY3Rpb24/ZC5nZXRTZWxlY3Rpb24oKS5lbXB0eT9kLmdldFNlbGVjdGlvbigpLmVtcHR5KCk6ZC5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMmJmQuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk6Zy5zZWxlY3Rpb24mJmcuc2VsZWN0aW9uLmVt''@;'; + put 'put ''cHR5KCl9ZnVuY3Rpb24gSFooZCxnLGgpe2lmKHZvaWQgMD09PWgmJihoPWcpLGQuc2V0U2VsZWN0aW9uUmFuZ2Upe2QuZm9jdXMoKTt0cnl7ZC5zZXRTZWxlY3Rpb25SYW5nZShnLGgpfWNhdGNoKEMpe3ZhciB2PWQucGFyZW50Tm9kZSx5PXYuc3R5bGUuZGlzcGxheTt2LnN0eWxlLmRpc3Bs''@;'; + put 'put ''YXk9ImJsb2NrIixkLnNldFNlbGVjdGlvblJhbmdlKGcsaCksdi5zdHlsZS5kaXNwbGF5PXl9fX1mdW5jdGlvbiBmWmUoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ZG9jdW1lbnQsZz1kLmNyZWF0ZUVsZW1lbnQoImRpdiIp''@;'; + put 'put ''O2cuc3R5bGUuaGVpZ2h0PSIyMDBweCIsZy5zdHlsZS53aWR0aD0iMTAwJSI7dmFyIGg9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKTtoLnN0eWxlLmJveFNpemluZz0iY29udGVudC1ib3giLGguc3R5bGUuaGVpZ2h0PSIxNTBweCIsaC5zdHlsZS5sZWZ0PSIwcHgiLGguc3R5bGUub3ZlcmZsb3c9''@;'; + put 'put ''ImhpZGRlbiIsaC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGguc3R5bGUudG9wPSIwcHgiLGguc3R5bGUud2lkdGg9IjIwMHB4IixoLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsaC5hcHBlbmRDaGlsZChnKSwoZC5ib2R5fHxkLmRvY3VtZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQoaCk7''@;'; + put 'put ''dmFyIHY9Zy5vZmZzZXRXaWR0aDtoLnN0eWxlLm92ZXJmbG93PSJzY3JvbGwiO3ZhciB5PWcub2Zmc2V0V2lkdGg7cmV0dXJuIHY9PT15JiYoeT1oLmNsaWVudFdpZHRoKSwoZC5ib2R5fHxkLmRvY3VtZW50RWxlbWVudCkucmVtb3ZlQ2hpbGQoaCksdi15fWZ1bmN0aW9uIEJjKCl7dmFyIGQ9''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmRvY3VtZW50O3JldHVybiB2b2lkIDA9PT1nM2UmJihnM2U9ZlplKGQpKSxnM2V9ZnVuY3Rpb24gemJlKGQpe3JldHVybiBkLm9mZnNldFdpZHRoIT09ZC5jbGllbnRXaWR0aH1mdW5jdGlvbiBH''@;'; + put 'put ''YmUoZCl7cmV0dXJuIGQub2Zmc2V0SGVpZ2h0IT09ZC5jbGllbnRIZWlnaHR9ZnVuY3Rpb24gcmVlKGQsZyxoKXtfYmUoKT8oZC5zdHlsZS50b3A9aCxkLnN0eWxlLmxlZnQ9Zyk6eWJlKCk/ZC5zdHlsZVsiLXdlYmtpdC10cmFuc2Zvcm0iXT0idHJhbnNsYXRlM2QoIi5jb25jYXQoZywiLCIp''@;'; + put 'put ''LmNvbmNhdChoLCIsMCkiKTpkLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlM2QoIi5jb25jYXQoZywiLCIpLmNvbmNhdChoLCIsMCkiKX1mdW5jdGlvbiBoWmUoZCl7dmFyIGc7cmV0dXJuIGQuc3R5bGUudHJhbnNmb3JtJiYiIiE9PShnPWQuc3R5bGUudHJhbnNmb3JtKT9bInRyYW5zZm9y''@;'; + put 'put ''bSIsZ106ZC5zdHlsZVsiLXdlYmtpdC10cmFuc2Zvcm0iXSYmIiIhPT0oZz1kLnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybSJdKT9bIi13ZWJraXQtdHJhbnNmb3JtIixnXTotMX1mdW5jdGlvbiBOWihkKXtkLnN0eWxlLnRyYW5zZm9ybSYmIiIhPT1kLnN0eWxlLnRyYW5zZm9ybT9kLnN0eWxl''@;'; + put 'put ''LnRyYW5zZm9ybT0iIjpkLnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybSJdJiYiIiE9PWQuc3R5bGVbIi13ZWJraXQtdHJhbnNmb3JtIl0mJihkLnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybSJdPSIiKX1mdW5jdGlvbiBWWihkKXtyZXR1cm4gZCYmKFsiSU5QVVQiLCJTRUxFQ1QiLCJURVhUQVJF''@;'; + put 'put ''QSJdLmluZGV4T2YoZC5ub2RlTmFtZSk+LTF8fCJ0cnVlIj09PWQuY29udGVudEVkaXRhYmxlKX1mdW5jdGlvbiBtM2UoZCl7cmV0dXJuIFZaKGQpJiYhMT09PWQuaGFzQXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIpfWZ1bmN0aW9uIFdiZShkKXttM2UoZC5vd25lckRvY3VtZW50LmFjdGl2''@;'; + put 'put ''ZUVsZW1lbnQpfHxkLnNlbGVjdCgpfWZ1bmN0aW9uIHYzZShkKXtyZXR1cm4hZC5wYXJlbnROb2RlfWZ1bmN0aW9uIFkyKGQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBkfWZ1bmN0aW9uIFliZShkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9h''@;'; + put 'put ''cmd1bWVudHNbMV06MjAwLGg9MCx2PXtsYXN0Q2FsbFRocm90dGxlZDohMH0seT1udWxsO2Z1bmN0aW9uIEMoKXtmb3IodmFyIEk9dGhpcyxqPWFyZ3VtZW50cy5sZW5ndGgsdWU9bmV3IEFycmF5KGopLF9lPTA7X2U8ajtfZSsrKXVlW19lXT1hcmd1bWVudHNbX2VdO3ZhciBCZT1EYXRlLm5v''@;'; + put 'put ''dygpLE5lPSExO3YubGFzdENhbGxUaHJvdHRsZWQ9ITAsaHx8KGg9QmUsTmU9ITApO3ZhciBLZT1nLShCZS1oKTtyZXR1cm4gTmU/KHYubGFzdENhbGxUaHJvdHRsZWQ9ITEsZC5hcHBseSh0aGlzLHVlKSk6KHkmJmNsZWFyVGltZW91dCh5KSx5PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2Lmxh''@;'; + put 'put ''c3RDYWxsVGhyb3R0bGVkPSExLGQuYXBwbHkoSSx1ZSksaD0wLHk9dm9pZCAwfSxLZSkpLHZ9cmV0dXJuIEN9ZnVuY3Rpb24gZFplKGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToyMDAsaD1hcmd1bWVudHMubGVuZ3RoPjIm''@;'; + put 'put ''JnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MTAsdj1ZYmUoZCxnKSx5PWg7ZnVuY3Rpb24gQygpe3k9aH1mdW5jdGlvbiBJKCl7Zm9yKHZhciBqPWFyZ3VtZW50cy5sZW5ndGgsdWU9bmV3IEFycmF5KGopLF9lPTA7X2U8ajtfZSsrKXVlW19lXT1hcmd1bWVudHNbX2VdO3Jl''@;'; + put 'put ''dHVybiB5Pyh5LT0xLGQuYXBwbHkodGhpcyx1ZSkpOnYuYXBwbHkodGhpcyx1ZSl9cmV0dXJuIEkuY2xlYXJIaXRzPUMsSX1mdW5jdGlvbiBBM2UoZCl7dmFyIHYsZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MjAwLGg9bnVsbDtmdW5j''@;'; + put 'put ''dGlvbiB5KCl7Zm9yKHZhciBDPXRoaXMsST1hcmd1bWVudHMubGVuZ3RoLGo9bmV3IEFycmF5KEkpLHVlPTA7dWU8STt1ZSsrKWpbdWVdPWFyZ3VtZW50c1t1ZV07cmV0dXJuIGgmJmNsZWFyVGltZW91dChoKSxoPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2PWQuYXBwbHkoQyxqKX0sZyksdn1y''@;'; + put 'put ''ZXR1cm4geX1mdW5jdGlvbiBwWmUoKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxnPW5ldyBBcnJheShkKSxoPTA7aDxkO2grKylnW2hdPWFyZ3VtZW50c1toXTt2YXIgdj1nWzBdLHk9Zy5zbGljZSgxKTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIEk9YXJndW1lbnRzLmxlbmd0aCxq''@;'; + put 'put ''PW5ldyBBcnJheShJKSx1ZT0wO3VlPEk7dWUrKylqW3VlXT1hcmd1bWVudHNbdWVdO3JldHVybiBTdSh5LGZ1bmN0aW9uKF9lLEJlKXtyZXR1cm4gQmUoX2UpfSx2LmFwcGx5KHRoaXMsaikpfX1mdW5jdGlvbiB5M2UoZCl7Zm9yKHZhciBnPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXko''@;'; + put 'put ''Zz4xP2ctMTowKSx2PTE7djxnO3YrKyloW3YtMV09YXJndW1lbnRzW3ZdO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgQz1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KEMpLGo9MDtqPEM7aisrKUlbal09YXJndW1lbnRzW2pdO3JldHVybiBkLmFwcGx5KHRoaXMsaC5jb25jYXQoSSkp''@;'; + put 'put ''fX1mdW5jdGlvbiBVYmUoZCl7dmFyIGc9ZC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uIGgodil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBDPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoQyksaj0wO2o8QztqKyspSVtqXT1hcmd1bWVudHNbal07dmFyIHVlPXYuY29uY2F0KEkpO3Jl''@;'; + put 'put ''dHVybiB1ZS5sZW5ndGg+PWc/ZC5hcHBseSh0aGlzLHVlKTpoKHVlKX19KFtdKX1mdW5jdGlvbiBnWmUoZCl7dmFyIGc9ZC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uIGgodil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBDPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoQyksaj0wO2o8''@;'; + put 'put ''QztqKyspSVtqXT1hcmd1bWVudHNbal07dmFyIHVlPXYuY29uY2F0KEkucmV2ZXJzZSgpKTtyZXR1cm4gdWUubGVuZ3RoPj1nP2QuYXBwbHkodGhpcyx1ZSk6aCh1ZSl9fShbXSl9ZnVuY3Rpb24gaWVlKGQsZyxoLHYseSxDLEksail7cmV0dXJuIFRvKGopP2QuY2FsbChnLGgsdix5LEMsSSxq''@;'; + put 'put ''KTpUbyhJKT9kLmNhbGwoZyxoLHYseSxDLEkpOlRvKEMpP2QuY2FsbChnLGgsdix5LEMpOlRvKHkpP2QuY2FsbChnLGgsdix5KTpUbyh2KT9kLmNhbGwoZyxoLHYpOlRvKGgpP2QuY2FsbChnLGgpOmQuY2FsbChnKX1MKDY1MTI1KTt2YXIgWGJlLFFvPXtBTFQ6MTgsQVJST1dfRE9XTjo0MCxB''@;'; + put 'put ''UlJPV19MRUZUOjM3LEFSUk9XX1JJR0hUOjM5LEFSUk9XX1VQOjM4LEFVRElPX0RPV046WHEoKT8xODI6MTc0LEFVRElPX01VVEU6WHEoKT8xODE6MTczLEFVRElPX1VQOlhxKCk/MTgzOjE3NSxCQUNLU1BBQ0U6OCxDQVBTX0xPQ0s6MjAsQ09NTUE6MTg4LENPTU1BTkRfTEVGVDo5MSxDT01N''@;'; + put 'put ''QU5EX1JJR0hUOjkzLENPTU1BTkRfRklSRUZPWDoyMjQsQ09OVFJPTDoxNyxERUxFVEU6NDYsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxGMToxMTIsRjI6MTEzLEYzOjExNCxGNDoxMTUsRjU6MTE2LEY2OjExNyxGNzoxMTgsRjg6MTE5LEY5OjEyMCxGMTA6MTIxLEYxMToxMjIsRjEyOjEy''@;'; + put 'put ''MyxGMTM6MTI0LEYxNDoxMjUsRjE1OjEyNixGMTY6MTI3LEYxNzoxMjgsRjE4OjEyOSxGMTk6MTMwLEhPTUU6MzYsSU5TRVJUOjQ1LE1FRElBX05FWFQ6MTc2LE1FRElBX1BMQVlfUEFVU0U6MTc5LE1FRElBX1BSRVY6MTc3LE1FRElBX1NUT1A6MTc4LE5VTEw6MCxOVU1fTE9DSzoxNDQsUEFH''@;'; + put 'put ''RV9ET1dOOjM0LFBBR0VfVVA6MzMsUEFVU0U6MTksUEVSSU9EOjE5MCxTQ1JPTExfTE9DSzoxNDUsU0hJRlQ6MTYsU1BBQ0U6MzIsVEFCOjksQTo2NSxDOjY3LEQ6NjgsRjo3MCxMOjc2LE86NzksUDo4MCxTOjgzLFY6ODYsWDo4OCxZOjg5LFo6OTB9LG1aZT1bUW8uQUxULFFvLkFSUk9XX0RP''@;'; + put 'put ''V04sUW8uQVJST1dfTEVGVCxRby5BUlJPV19SSUdIVCxRby5BUlJPV19VUCxRby5BVURJT19ET1dOLFFvLkFVRElPX01VVEUsUW8uQVVESU9fVVAsUW8uQkFDS1NQQUNFLFFvLkNBUFNfTE9DSyxRby5ERUxFVEUsUW8uRU5ELFFvLkVOVEVSLFFvLkVTQ0FQRSxRby5GMSxRby5GMixRby5GMyxR''@;'; + put 'put ''by5GNCxRby5GNSxRby5GNixRby5GNyxRby5GOCxRby5GOSxRby5GMTAsUW8uRjExLFFvLkYxMixRby5GMTMsUW8uRjE0LFFvLkYxNSxRby5GMTYsUW8uRjE3LFFvLkYxOCxRby5GMTksUW8uSE9NRSxRby5JTlNFUlQsUW8uTUVESUFfTkVYVCxRby5NRURJQV9QTEFZX1BBVVNFLFFvLk1FRElB''@;'; + put 'put ''X1BSRVYsUW8uTUVESUFfU1RPUCxRby5OVUxMLFFvLk5VTV9MT0NLLFFvLlBBR0VfRE9XTixRby5QQUdFX1VQLFFvLlBBVVNFLFFvLlNDUk9MTF9MT0NLLFFvLlNISUZULFFvLlRBQl07ZnVuY3Rpb24gUWJlKGQpe3JldHVybiAzMj09PWR8fGQ+PTQ4JiZkPD01N3x8ZD49OTYmJmQ8PTExMXx8''@;'; + put 'put ''ZD49MTg2JiZkPD0xOTJ8fGQ+PTIxOSYmZDw9MjIyfHxkPj0yMjZ8fGQ+PTY1JiZkPD05MH1mdW5jdGlvbiB3M2UoZCl7cmV0dXJuIG1aZS5pbmNsdWRlcyhkKX1mdW5jdGlvbiB2WmUoZCl7dmFyIGc9W107cmV0dXJuIEtxKCk/Zy5wdXNoKFFvLkNPTU1BTkRfTEVGVCxRby5DT01NQU5EX1JJ''@;'; + put 'put ''R0hULFFvLkNPTU1BTkRfRklSRUZPWCk6Zy5wdXNoKFFvLkNPTlRST0wpLGcuaW5jbHVkZXMoZCl9ZnVuY3Rpb24gSmJlKGQpe3JldHVybltRby5DT05UUk9MLFFvLkNPTU1BTkRfTEVGVCxRby5DT01NQU5EX1JJR0hULFFvLkNPTU1BTkRfRklSRUZPWF0uaW5jbHVkZXMoZCl9ZnVuY3Rpb24g''@;'; + put 'put ''aU8oZCxnKXt2YXIgaD1nLnNwbGl0KCJ8Iiksdj0hMTtyZXR1cm4gVXIoaCxmdW5jdGlvbih5KXtpZihkPT09UW9beV0pcmV0dXJuIHY9ITAsITF9KSx2fWZ1bmN0aW9uIF84KGQpe2QuaXNJbW1lZGlhdGVQcm9wYWdhdGlvbkVuYWJsZWQ9ITEsZC5jYW5jZWxCdWJibGU9ITB9ZnVuY3Rpb24g''@;'; + put 'put ''X1MoZCl7cmV0dXJuITE9PT1kLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25FbmFibGVkfWZ1bmN0aW9uIFN3KGQpe3JldHVybiAyPT09ZC5idXR0b259ZnVuY3Rpb24gb2VlKGQpe3JldHVybiAwPT09ZC5idXR0b259ZnVuY3Rpb24gbDEoKXt2YXIgZDtUbyhjb25zb2xlKSYmKGQ9Y29uc29sZSku''@;'; + put 'put ''d2Fybi5hcHBseShkLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYjNlKCl7dmFyIGQ7VG8oY29uc29sZSkmJihkPWNvbnNvbGUpLmVycm9yLmFwcGx5KGQsYXJndW1lbnRzKX1mdW5jdGlvbiBLYmUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9''@;'; + put 'put ''di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgb089WyJhZnRlckNlbGxNZXRhUmVzZXQiLCJhZnRlckNoYW5nZSIsImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0''@;'; + put 'put ''T3B0aW9ucyIsImJlZm9yZUNvbnRleHRNZW51U2V0SXRlbXMiLCJhZnRlckRyb3Bkb3duTWVudURlZmF1bHRPcHRpb25zIiwiYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXMiLCJhZnRlckNvbnRleHRNZW51SGlkZSIsImJlZm9yZUNvbnRleHRNZW51U2hvdyIsImFmdGVyQ29udGV4dE1lbnVT''@;'; + put 'put ''aG93IiwiYWZ0ZXJDb3B5TGltaXQiLCJiZWZvcmVDcmVhdGVDb2wiLCJhZnRlckNyZWF0ZUNvbCIsImJlZm9yZUNyZWF0ZVJvdyIsImFmdGVyQ3JlYXRlUm93IiwiYWZ0ZXJEZXNlbGVjdCIsImFmdGVyRGVzdHJveSIsImFmdGVyRG9jdW1lbnRLZXlEb3duIiwiYWZ0ZXJEcmF3U2VsZWN0aW9u''@;'; + put 'put ''IiwiYmVmb3JlUmVtb3ZlQ2VsbENsYXNzTmFtZXMiLCJhZnRlckdldENlbGxNZXRhIiwiYWZ0ZXJHZXRDb2xIZWFkZXIiLCJhZnRlckdldFJvd0hlYWRlciIsImFmdGVySW5pdCIsImFmdGVyTG9hZERhdGEiLCJhZnRlclVwZGF0ZURhdGEiLCJhZnRlck1vbWVudHVtU2Nyb2xsIiwiYWZ0ZXJP''@;'; + put 'put ''bkNlbGxDb3JuZXJNb3VzZURvd24iLCJhZnRlck9uQ2VsbENvcm5lckRibENsaWNrIiwiYWZ0ZXJPbkNlbGxNb3VzZURvd24iLCJhZnRlck9uQ2VsbE1vdXNlVXAiLCJhZnRlck9uQ2VsbENvbnRleHRNZW51IiwiYWZ0ZXJPbkNlbGxNb3VzZU92ZXIiLCJhZnRlck9uQ2VsbE1vdXNlT3V0Iiwi''@;'; + put 'put ''YWZ0ZXJSZW1vdmVDb2wiLCJhZnRlclJlbW92ZVJvdyIsImJlZm9yZVJlbmRlcmVyIiwiYWZ0ZXJSZW5kZXJlciIsImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5IiwiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IiwiYWZ0ZXJTZWxlY3Rpb24iLCJhZnRlclNlbGVjdGlvbkJ5UHJvcCIsImFmdGVyU2Vs''@;'; + put 'put ''ZWN0aW9uRW5kIiwiYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3AiLCJhZnRlclNldENlbGxNZXRhIiwiYWZ0ZXJSZW1vdmVDZWxsTWV0YSIsImFmdGVyU2V0RGF0YUF0Q2VsbCIsImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsImFmdGVyU2V0U291cmNlRGF0YUF0Q2VsbCIsImFmdGVyVXBkYXRlU2V0''@;'; + put 'put ''dGluZ3MiLCJhZnRlclZhbGlkYXRlIiwiYmVmb3JlTGFuZ3VhZ2VDaGFuZ2UiLCJhZnRlckxhbmd1YWdlQ2hhbmdlIiwiYmVmb3JlQXV0b2ZpbGwiLCJhZnRlckF1dG9maWxsIiwiYmVmb3JlQ2VsbEFsaWdubWVudCIsImJlZm9yZUNoYW5nZSIsImJlZm9yZUNoYW5nZVJlbmRlciIsImJlZm9y''@;'; + put 'put ''ZURyYXdCb3JkZXJzIiwiYmVmb3JlR2V0Q2VsbE1ldGEiLCJiZWZvcmVSZW1vdmVDZWxsTWV0YSIsImJlZm9yZUluaXQiLCJiZWZvcmVJbml0V2Fsa29udGFibGUiLCJiZWZvcmVMb2FkRGF0YSIsImJlZm9yZVVwZGF0ZURhdGEiLCJiZWZvcmVLZXlEb3duIiwiYmVmb3JlT25DZWxsTW91c2VE''@;'; + put 'put ''b3duIiwiYmVmb3JlT25DZWxsTW91c2VVcCIsImJlZm9yZU9uQ2VsbENvbnRleHRNZW51IiwiYmVmb3JlT25DZWxsTW91c2VPdmVyIiwiYmVmb3JlT25DZWxsTW91c2VPdXQiLCJiZWZvcmVSZW1vdmVDb2wiLCJiZWZvcmVSZW1vdmVSb3ciLCJiZWZvcmVWaWV3UmVuZGVyIiwiYWZ0ZXJWaWV3''@;'; + put 'put ''UmVuZGVyIiwiYmVmb3JlUmVuZGVyIiwiYWZ0ZXJSZW5kZXIiLCJiZWZvcmVTZXRDZWxsTWV0YSIsImJlZm9yZVNldFJhbmdlU3RhcnRPbmx5IiwiYmVmb3JlU2V0UmFuZ2VTdGFydCIsImJlZm9yZVNldFJhbmdlRW5kIiwiYmVmb3JlVG91Y2hTY3JvbGwiLCJiZWZvcmVWYWxpZGF0ZSIsImJl''@;'; + put 'put ''Zm9yZVZhbHVlUmVuZGVyIiwiY29uc3RydWN0IiwiaW5pdCIsIm1vZGlmeUNvbEhlYWRlciIsIm1vZGlmeUNvbFdpZHRoIiwibW9kaWZ5Um93SGVhZGVyIiwibW9kaWZ5Um93SGVpZ2h0IiwibW9kaWZ5RGF0YSIsIm1vZGlmeVNvdXJjZURhdGEiLCJtb2RpZnlSb3dEYXRhIiwibW9kaWZ5R2V0''@;'; + put 'put ''Q2VsbENvb3JkcyIsImJlZm9yZUhpZ2hsaWdodGluZ1Jvd0hlYWRlciIsImJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlciIsInBlcnNpc3RlbnRTdGF0ZUxvYWQiLCJwZXJzaXN0ZW50U3RhdGVSZXNldCIsInBlcnNpc3RlbnRTdGF0ZVNhdmUiLCJiZWZvcmVDb2x1bW5Tb3J0IiwiYWZ0''@;'; + put 'put ''ZXJDb2x1bW5Tb3J0IiwibW9kaWZ5QXV0b2ZpbGxSYW5nZSIsIm1vZGlmeUNvcHlhYmxlUmFuZ2UiLCJiZWZvcmVDdXQiLCJhZnRlckN1dCIsImJlZm9yZUNvcHkiLCJhZnRlckNvcHkiLCJiZWZvcmVQYXN0ZSIsImFmdGVyUGFzdGUiLCJiZWZvcmVDb2x1bW5GcmVlemUiLCJhZnRlckNvbHVt''@;'; + put 'put ''bkZyZWV6ZSIsImJlZm9yZUNvbHVtbk1vdmUiLCJhZnRlckNvbHVtbk1vdmUiLCJiZWZvcmVDb2x1bW5VbmZyZWV6ZSIsImFmdGVyQ29sdW1uVW5mcmVlemUiLCJiZWZvcmVSb3dNb3ZlIiwiYWZ0ZXJSb3dNb3ZlIiwiYmVmb3JlQ29sdW1uUmVzaXplIiwiYWZ0ZXJDb2x1bW5SZXNpemUiLCJi''@;'; + put 'put ''ZWZvcmVSb3dSZXNpemUiLCJhZnRlclJvd1Jlc2l6ZSIsImFmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzIiwiYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnMiLCJiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGgiLCJiZWZvcmVGaWx0ZXIiLCJhZnRlckZpbHRlciIsImFmdGVyRm9ybXVs''@;'; + put 'put ''YXNWYWx1ZXNVcGRhdGUiLCJhZnRlck5hbWVkRXhwcmVzc2lvbkFkZGVkIiwiYWZ0ZXJOYW1lZEV4cHJlc3Npb25SZW1vdmVkIiwiYWZ0ZXJTaGVldEFkZGVkIiwiYWZ0ZXJTaGVldFJlbmFtZWQiLCJhZnRlclNoZWV0UmVtb3ZlZCIsIm1vZGlmeUNvbHVtbkhlYWRlckhlaWdodCIsImJlZm9y''@;'; + put 'put ''ZVVuZG8iLCJiZWZvcmVVbmRvU3RhY2tDaGFuZ2UiLCJhZnRlclVuZG8iLCJhZnRlclVuZG9TdGFja0NoYW5nZSIsImJlZm9yZVJlZG8iLCJiZWZvcmVSZWRvU3RhY2tDaGFuZ2UiLCJhZnRlclJlZG8iLCJhZnRlclJlZG9TdGFja0NoYW5nZSIsIm1vZGlmeVJvd0hlYWRlcldpZHRoIiwiYmVm''@;'; + put 'put ''b3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZSIsIm1vZGlmeVRyYW5zZm9ybVN0YXJ0IiwibW9kaWZ5VHJhbnNmb3JtRW5kIiwiYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1TdGFydCIsImFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kIiwiYWZ0ZXJWaWV3cG9ydFJvd0NhbGN1bGF0b3JPdmVycmlkZSIsImFm''@;'; + put 'put ''dGVyVmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUiLCJhZnRlclBsdWdpbnNJbml0aWFsaXplZCIsImJlZm9yZUhpZGVSb3dzIiwiYWZ0ZXJIaWRlUm93cyIsImJlZm9yZVVuaGlkZVJvd3MiLCJhZnRlclVuaGlkZVJvd3MiLCJiZWZvcmVIaWRlQ29sdW1ucyIsImFmdGVySGlkZUNv''@;'; + put 'put ''bHVtbnMiLCJiZWZvcmVVbmhpZGVDb2x1bW5zIiwiYWZ0ZXJVbmhpZGVDb2x1bW5zIiwiYmVmb3JlVHJpbVJvdyIsImFmdGVyVHJpbVJvdyIsImJlZm9yZVVudHJpbVJvdyIsImFmdGVyVW50cmltUm93IiwiYmVmb3JlRHJvcGRvd25NZW51U2hvdyIsImFmdGVyRHJvcGRvd25NZW51U2hvdyIs''@;'; + put 'put ''ImFmdGVyRHJvcGRvd25NZW51SGlkZSIsImJlZm9yZUFkZENoaWxkIiwiYWZ0ZXJBZGRDaGlsZCIsImJlZm9yZURldGFjaENoaWxkIiwiYWZ0ZXJEZXRhY2hDaGlsZCIsImFmdGVyQmVnaW5FZGl0aW5nIiwiYmVmb3JlTWVyZ2VDZWxscyIsImFmdGVyTWVyZ2VDZWxscyIsImJlZm9yZVVubWVy''@;'; + put 'put ''Z2VDZWxscyIsImFmdGVyVW5tZXJnZUNlbGxzIiwiYWZ0ZXJMaXN0ZW4iLCJhZnRlclVubGlzdGVuIiwiYWZ0ZXJSZWZyZXNoRGltZW5zaW9ucyIsImJlZm9yZVJlZnJlc2hEaW1lbnNpb25zIiwiYmVmb3JlQ29sdW1uQ29sbGFwc2UiLCJhZnRlckNvbHVtbkNvbGxhcHNlIiwiYmVmb3JlQ29s''@;'; + put 'put ''dW1uRXhwYW5kIiwiYWZ0ZXJDb2x1bW5FeHBhbmQiLCJtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQiXSxiWmU9QjIoWGJlfHwoWGJlPWZ1bmN0aW9uIHdaZShkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7''@;'; + put 'put ''dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9KFsnVGhlIHBsdWdpbiBob29rICJbaG9va05hbWVdIiB3YXMgcmVtb3ZlZCBpbiBIYW5kc29udGFibGUgW3JlbW92ZWRJblZlcnNpb25dLiBcbiAgUGxlYXNlIGNvbnN1bHQgcmVsZWFzZSBub3RlcyBodHRwczovL2dpdGh1Yi5jb20vaGFuZHNv''@;'; + put 'put ''bnRhYmxlL2hhbmRzb250YWJsZS9yZWxlYXNlcy90YWcvW3JlbW92ZWRJblZlcnNpb25dIHRvIFxuICBsZWFybiBhYm91dCB0aGUgbWlncmF0aW9uIHBhdGguJ10sWydUaGUgcGx1Z2luIGhvb2sgIltob29rTmFtZV0iIHdhcyByZW1vdmVkIGluIEhhbmRzb250YWJsZSBbcmVtb3ZlZEluVmVy''@;'; + put 'put ''c2lvbl0uXFx4MjBcbiAgUGxlYXNlIGNvbnN1bHQgcmVsZWFzZSBub3RlcyBodHRwczovL2dpdGh1Yi5jb20vaGFuZHNvbnRhYmxlL2hhbmRzb250YWJsZS9yZWxlYXNlcy90YWcvW3JlbW92ZWRJblZlcnNpb25dIHRvXFx4MjBcbiAgbGVhcm4gYWJvdXQgdGhlIG1pZ3JhdGlvbiBwYXRoLidd''@;'; + put 'put ''KSkpLF8zZT1uZXcgTWFwKFtbIm1vZGlmeVJvdyIsIjguMC4wIl0sWyJtb2RpZnlDb2wiLCI4LjAuMCJdLFsidW5tb2RpZnlSb3ciLCI4LjAuMCJdLFsidW5tb2RpZnlDb2wiLCI4LjAuMCJdLFsic2tpcExlbmd0aENhY2hlIiwiOC4wLjAiXSxbImhpZGRlbkNvbHVtbiIsIjguMC4wIl0sWyJo''@;'; + put 'put ''aWRkZW5Sb3ciLCI4LjAuMCJdXSksQzNlPW5ldyBNYXAoW1siYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZSIsJ1RoZSBwbHVnaW4gaG9vayAiYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZSIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9y''@;'; + put 'put ''IHJlbGVhc2UuJ11dKSwkYmU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0aW9uIEFaZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmdsb2JhbEJ1Y2tl''@;'; + put 'put ''dD10aGlzLmNyZWF0ZUVtcHR5QnVja2V0KCl9cmV0dXJuIGZ1bmN0aW9uIHlaZShkLGcsaCl7ZyYmS2JlKGQucHJvdG90eXBlLGcpLGgmJktiZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJjcmVhdGVFbXB0eUJ1Y2tl''@;'; + put 'put ''dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBVcihvTyxmdW5jdGlvbih2KXtyZXR1cm4gaFt2XT1bXX0pLGh9fSx7a2V5OiJnZXRCdWNrZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1''@;'; + put 'put ''bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7cmV0dXJuIGg/KGgucGx1Z2luSG9va0J1Y2tldHx8KGgucGx1Z2luSG9va0J1Y2tldD10aGlzLmNyZWF0ZUVtcHR5QnVja2V0KCkpLGgucGx1Z2luSG9va0J1Y2tldCk6dGhpcy5nbG9iYWxCdWNrZXR9fSx7a2V5OiJhZGQiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdil7dmFyIHk9dGhpcyxDPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsO2lmKEFycmF5LmlzQXJyYXkodikpVXIodixmdW5jdGlvbih1ZSl7cmV0dXJuIHkuYWRkKGgsdWUsQyl9KTtlbHNle18zZS5oYXMoaCkmJmwxKGkz''@;'; + put 'put ''ZShiWmUse2hvb2tOYW1lOmgscmVtb3ZlZEluVmVyc2lvbjpfM2UuZ2V0KGgpfSkpLEMzZS5oYXMoaCkmJmwxKEMzZS5nZXQoaCkpO3ZhciBJPXRoaXMuZ2V0QnVja2V0KEMpO2lmKHZvaWQgMD09PUlbaF0mJih0aGlzLnJlZ2lzdGVyKGgpLElbaF09W10pLHYuc2tpcD0hMSwtMT09PUlbaF0u''@;'; + put 'put ''aW5kZXhPZih2KSl7dmFyIGo9ITE7di5pbml0aWFsSG9vayYmVXIoSVtoXSxmdW5jdGlvbih1ZSxfZSl7aWYodWUuaW5pdGlhbEhvb2spcmV0dXJuIElbaF1bX2VdPXYsaj0hMCwhMX0pLGp8fElbaF0ucHVzaCh2KX19cmV0dXJuIHRoaXN9fSx7a2V5OiJvbmNlIix2YWx1ZTpmdW5jdGlvbiho''@;'; + put 'put ''LHYpe3ZhciB5PXRoaXMsQz1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbDtBcnJheS5pc0FycmF5KHYpP1VyKHYsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25jZShoLEksQyl9KToodi5ydW5PbmNlPSEwLHRoaXMuYWRkKGgsdixDKSl9''@;'; + put 'put ''fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwsQz10aGlzLmdldEJ1Y2tldCh5KTtyZXR1cm4gdm9pZCAwIT09Q1toXSYmQ1toXS5pbmRleE9mKHYpPj0wJiYo''@;'; + put 'put ''di5za2lwPSEwLCEwKX19LHtrZXk6ImhhcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGwseT10aGlzLmdldEJ1Y2tldCh2KTtyZXR1cm4hKHZvaWQgMD09PXlbaF18fCF5W2hdLmxlbmd0''@;'; + put 'put ''aCl9fSx7a2V5OiJydW4iLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSxqLHVlLF9lKXt2YXIgQmU9dGhpcy5nbG9iYWxCdWNrZXRbdl0sTmU9QmU/QmUubGVuZ3RoOjAsS2U9MDtpZihOZSlmb3IoO0tlPE5lOylpZihCZVtLZV0mJiFCZVtLZV0uc2tpcCl7dmFyIGR0PWllZShCZVtLZV0saCx5''@;'; + put 'put ''LEMsSSxqLHVlLF9lKTt2b2lkIDAhPT1kdCYmKHk9ZHQpLEJlW0tlXSYmQmVbS2VdLnJ1bk9uY2UmJnRoaXMucmVtb3ZlKHYsQmVbS2VdKSxLZSs9MX1lbHNlIEtlKz0xO3ZhciBPdD10aGlzLmdldEJ1Y2tldChoKVt2XSwkdD1PdD9PdC5sZW5ndGg6MCxmbj0wO2lmKCR0KWZvcig7Zm48JHQ7''@;'; + put 'put ''KWlmKE90W2ZuXSYmIU90W2ZuXS5za2lwKXt2YXIgTG49aWVlKE90W2ZuXSxoLHksQyxJLGosdWUsX2UpO3ZvaWQgMCE9PUxuJiYoeT1MbiksT3RbZm5dJiZPdFtmbl0ucnVuT25jZSYmdGhpcy5yZW1vdmUodixPdFtmbl0saCksZm4rPTF9ZWxzZSBmbis9MTtyZXR1cm4geX19LHtrZXk6ImRl''@;'; + put 'put ''c3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7R2wodGhpcy5nZXRCdWNrZXQoaCksZnVuY3Rpb24odix5LEMpe3JldHVybiBDW3ldLmxlbmd0aD0wfSl9fSx7a2V5OiJyZWdpc3Rl''@;'; + put 'put ''ciIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5pc1JlZ2lzdGVyZWQoaCl8fG9PLnB1c2goaCl9fSx7a2V5OiJkZXJlZ2lzdGVyIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmlzUmVnaXN0ZXJlZChoKSYmb08uc3BsaWNlKG9PLmluZGV4T2YoaCksMSl9fSx7a2V5OiJpc0RlcHJlY2F0ZWQiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKGgpe3JldHVybiBDM2UuaGFzKGgpfHxfM2UuaGFzKGgpfX0se2tleToiaXNSZWdpc3RlcmVkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gb08uaW5kZXhPZihoKT49MH19LHtrZXk6ImdldFJlZ2lzdGVyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG9PfX1dLFt7''@;'; + put 'put ''a2V5OiJnZXRTaW5nbGV0b24iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIENaZSgpe3JldHVybiBfWmV9KCl9fV0pLGR9KCksX1plPW5ldyAkYmU7Y29uc3Qgem89JGJlO2Z1bmN0aW9uIHFiZShkKXtyZXR1cm4gZnVuY3Rpb24gRVplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkp''@;'; + put 'put ''cmV0dXJuIGszZShkKX0oZCl8fGZ1bmN0aW9uIE1aZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBTWmUoZCxnKXtpZihkKXtp''@;'; + put 'put ''Zigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGszZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgp''@;'; + put 'put ''cmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gazNlKGQsZyl9fShkKXx8ZnVuY3Rpb24ga1plKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0''@;'; + put 'put ''IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gazNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYo''@;'; + put 'put ''Zz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9dmFyIFMzZT1uZXcgTWFwO2Z1bmN0aW9uIExwKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiJjb21tb24i''@;'; + put 'put ''O1MzZS5oYXMoZCl8fFMzZS5zZXQoZCxuZXcgTWFwKTt2YXIgZz1TM2UuZ2V0KGQpO2Z1bmN0aW9uIGgoaix1ZSl7Zy5zZXQoaix1ZSl9ZnVuY3Rpb24gdihqKXtyZXR1cm4gZy5nZXQoail9ZnVuY3Rpb24geShqKXtyZXR1cm4gZy5oYXMoail9ZnVuY3Rpb24gQygpe3JldHVybiBxYmUoZy5r''@;'; + put 'put ''ZXlzKCkpfWZ1bmN0aW9uIEkoKXtyZXR1cm4gcWJlKGcudmFsdWVzKCkpfXJldHVybntyZWdpc3RlcjpoLGdldEl0ZW06dixoYXNJdGVtOnksZ2V0TmFtZXM6QyxnZXRWYWx1ZXM6SX19dmFyIE0zZT1uZXcgV2Vha01hcCxqWj1McCgiZWRpdG9ycyIpLHhaZT1qWi5yZWdpc3RlcixlX2U9alou''@;'; + put 'put ''Z2V0SXRlbSx0X2U9alouaGFzSXRlbSxUWmU9alouZ2V0TmFtZXM7ZnVuY3Rpb24gSVplKGQpe3ZhciBnPXt9LGg9ZDt0aGlzLmdldENvbnN0cnVjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGR9LHRoaXMuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24odil7cmV0dXJuIHYuZ3VpZCBpbiBnfHwoZ1t2Lmd1''@;'; + put 'put ''aWRdPW5ldyBoKHYpKSxnW3YuZ3VpZF19LHpvLmdldFNpbmdsZXRvbigpLmFkZCgiYWZ0ZXJEZXN0cm95IixmdW5jdGlvbigpe2dbdGhpcy5ndWlkXT1udWxsfSl9ZnVuY3Rpb24gbl9lKGQsZyl7dmFyIGg7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGQpTTNlLmdldChkKXx8bGQobnVsbCxkKSxo''@;'; + put 'put ''PU0zZS5nZXQoZCk7ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIGQpdGhyb3cgRXJyb3IoJ09ubHkgc3RyaW5ncyBhbmQgZnVuY3Rpb25zIGNhbiBiZSBwYXNzZWQgYXMgImVkaXRvciIgcGFyYW1ldGVyJyk7aD1lX2UoZCl9aWYoIWgpdGhyb3cgRXJyb3IoJ05vIGVkaXRvciByZWdpc3RlcmVk''@;'; + put 'put ''IHVuZGVyIG5hbWUgIicuY29uY2F0KGQsJyInKSk7cmV0dXJuIGguZ2V0SW5zdGFuY2UoZyl9ZnVuY3Rpb24gcl9lKGQpe2lmKCF0X2UoZCkpdGhyb3cgRXJyb3IoJ05vIHJlZ2lzdGVyZWQgZWRpdG9yIGZvdW5kIHVuZGVyICInLmNvbmNhdChkLCciIG5hbWUnKSk7cmV0dXJuIGVfZShkKS5n''@;'; + put 'put ''ZXRDb25zdHJ1Y3RvcigpfWZ1bmN0aW9uIGxkKGQsZyl7ZCYmInN0cmluZyIhPXR5cGVvZiBkJiYoZD0oZz1kKS5FRElUT1JfVFlQRSk7dmFyIGg9bmV3IElaZShnKTsic3RyaW5nIj09dHlwZW9mIGQmJnhaZShkLGgpLE0zZS5zZXQoZyxoKX1mdW5jdGlvbiBEWmUoZCxnKXtpZighKGQgaW5z''@;'; + put 'put ''dGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBpX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3Vy''@;'; + put 'put ''YWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgYWVlPTAsT1plPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50''@;'; + put 'put ''c1swXTpudWxsO0RaZSh0aGlzLGQpLHRoaXMuY29udGV4dD1nfHx0aGlzLHRoaXMuY29udGV4dC5ldmVudExpc3RlbmVyc3x8KHRoaXMuY29udGV4dC5ldmVudExpc3RlbmVycz1bXSl9cmV0dXJuIGZ1bmN0aW9uIExaZShkLGcsaCl7ZyYmaV9lKGQucHJvdG90eXBlLGcpLGgmJmlfZShkLGgp''@;'; + put 'put ''LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJhZGRFdmVudExpc3RlbmVyIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVu''@;'; + put 'put ''dHNbM107ZnVuY3Rpb24gaih1ZSl7eS5jYWxsKHRoaXMsUlplKHVlKSl9cmV0dXJuImJvb2xlYW4iIT10eXBlb2YgSSYmIXNiZSgpJiYoST0hMSksdGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzLnB1c2goe2VsZW1lbnQ6aCxldmVudDp2LGNhbGxiYWNrOnksY2FsbGJhY2tQcm94eTpqLG9w''@;'; + put 'put ''dGlvbnM6SSxldmVudE1hbmFnZXI6dGhpc30pLGguYWRkRXZlbnRMaXN0ZW5lcih2LGosSSksYWVlKz0xLGZ1bmN0aW9uKCl7Qy5yZW1vdmVFdmVudExpc3RlbmVyKGgsdix5KX19fSx7a2V5OiJyZW1vdmVFdmVudExpc3RlbmVyIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7Zm9yKHZhciBqLEM9''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXSxJPXRoaXMuY29udGV4dC5ldmVudExpc3RlbmVycy5sZW5ndGg7STspaWYoKGo9dGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzW0ktPTFdKS5ldmVudD09PXYmJmouZWxlbWVudD09PWgpe2lm''@;'; + put 'put ''KHkmJnkhPT1qLmNhbGxiYWNrfHxDJiZqLmV2ZW50TWFuYWdlciE9PXRoaXMpY29udGludWU7dGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzLnNwbGljZShJLDEpLGouZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGouZXZlbnQsai5jYWxsYmFja1Byb3h5LGoub3B0aW9ucyksYWVlLT0x''@;'; + put 'put ''fX19LHtrZXk6ImNsZWFyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07aWYodGhpcy5jb250ZXh0KWZvcih2YXIgdj10aGlzLmNvbnRleHQuZXZlbnRMaXN0ZW5lcnMubGVuZ3RoO3Y7''@;'; + put 'put ''KXt2YXIgeT10aGlzLmNvbnRleHQuZXZlbnRMaXN0ZW5lcnNbdi09MV07aCYmeS5ldmVudE1hbmFnZXIhPT10aGlzfHwodGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzLnNwbGljZSh2LDEpLHkuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHkuZXZlbnQseS5jYWxsYmFja1Byb3h5LHku''@;'; + put 'put ''b3B0aW9ucyksYWVlLT0xKX19fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyRXZlbnRzKCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2xlYXJFdmVudHMoKSx0aGlzLmNvbnRleHQ9bnVsbH19LHtrZXk6ImRlc3Ryb3lXaXRoT3duRXZl''@;'; + put 'put ''bnRzT25seSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyRXZlbnRzKCEwKSx0aGlzLmNvbnRleHQ9bnVsbH19LHtrZXk6ImZpcmVFdmVudCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1oLmRvY3VtZW50LEM9aDt5fHwoQz0oeT1oLm93bmVyRG9jdW1lbnQ/aC5vd25lckRvY3VtZW50''@;'; + put 'put ''OmgpLmRlZmF1bHRWaWV3KTt2YXIgaixJPXtidWJibGVzOiEwLGNhbmNlbGFibGU6Im1vdXNlbW92ZSIhPT12LHZpZXc6QyxkZXRhaWw6MCxzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MSxjbGllbnRZOjEsY3RybEtleTohMSxhbHRLZXk6ITEsc2hpZnRLZXk6ITEsbWV0YUtleTohMSxi''@;'; + put 'put ''dXR0b246MCxyZWxhdGVkVGFyZ2V0OnZvaWQgMH07eS5jcmVhdGVFdmVudD8oaj15LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpKS5pbml0TW91c2VFdmVudCh2LEkuYnViYmxlcyxJLmNhbmNlbGFibGUsSS52aWV3LEkuZGV0YWlsLEkuc2NyZWVuWCxJLnNjcmVlblksSS5jbGllbnRYLEku''@;'; + put 'put ''Y2xpZW50WSxJLmN0cmxLZXksSS5hbHRLZXksSS5zaGlmdEtleSxJLm1ldGFLZXksSS5idXR0b24sSS5yZWxhdGVkVGFyZ2V0fHx5LmJvZHkucGFyZW50Tm9kZSk6aj15LmNyZWF0ZUV2ZW50T2JqZWN0KCksaC5kaXNwYXRjaEV2ZW50P2guZGlzcGF0Y2hFdmVudChqKTpoLmZpcmVFdmVudCgi''@;'; + put 'put ''b24iLmNvbmNhdCh2KSxqKX19XSksZH0oKTtmdW5jdGlvbiBSWmUoZCl7dmFyIGc9ZC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb247cmV0dXJuIGQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7Zy5hcHBseSh0aGlzKSxfOCh0aGlzKX0sZH1jb25zdCBMMT1PWmU7ZnVuY3Rp''@;'; + put 'put ''b24gb19lKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gYV9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVt''@;'; + put 'put ''ZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIGxlZT0iZWRpdG9yTWFuYWdlci5uYXZpZ2F0aW9uIixaWj0iZWRpdG9yTWFuYWdlci5oYW5kbGlu''@;'; + put 'put ''Z0VkaXRvciIsRTNlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgsdil7dmFyIHk9dGhpczsoZnVuY3Rpb24galplKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMu''@;'; + put 'put ''aW5zdGFuY2U9Zyx0aGlzLnRhYmxlTWV0YT1oLHRoaXMuc2VsZWN0aW9uPXYsdGhpcy5ldmVudE1hbmFnZXI9bmV3IEwxKGcpLHRoaXMuZGVzdHJveWVkPSExLHRoaXMubG9jaz0hMSx0aGlzLmFjdGl2ZUVkaXRvcj12b2lkIDAsdGhpcy5jZWxsUHJvcGVydGllcz12b2lkIDAsdGhpcy5pbnN0''@;'; + put 'put ''YW5jZS5nZXRTaG9ydGN1dE1hbmFnZXIoKS5hZGRDb250ZXh0KCJlZGl0b3IiKSx0aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKCksdGhpcy5pbnN0YW5jZS5hZGRIb29rKCJhZnRlckRvY3VtZW50S2V5RG93biIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25BZnRlckRvY3VtZW50S2V5RG93bihJKX0p''@;'; + put 'put ''LHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5pbnN0YW5jZS5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCJjb21wb3NpdGlvbnN0YXJ0IixmdW5jdGlvbihJKXsheS5kZXN0cm95ZWQmJnkuYWN0aXZlRWRpdG9yJiYheS5hY3RpdmVFZGl0b3IuaXNPcGVuZWQo''@;'; + put 'put ''KSYmeS5pbnN0YW5jZS5pc0xpc3RlbmluZygpJiZ5Lm9wZW5FZGl0b3IoIiIsSSl9KSx0aGlzLmluc3RhbmNlLnZpZXcuX3d0LnVwZGF0ZSgib25DZWxsRGJsQ2xpY2siLGZ1bmN0aW9uKEksaix1ZSl7cmV0dXJuIHkub25DZWxsRGJsQ2xpY2soSSxqLHVlKX0pfXJldHVybiBmdW5jdGlvbiBa''@;'; + put 'put ''WmUoZCxnLGgpe2cmJmFfZShkLnByb3RvdHlwZSxnKSxoJiZhX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToicmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PXRoaXMuaW5zdGFu''@;'; + put 'put ''Y2UuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkseT12LmdldENvbnRleHQoImdyaWQiKSxDPXYuZ2V0Q29udGV4dCgiZWRpdG9yIiksST17Z3JvdXA6Wlp9O0MuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJFbnRlciJdLFsiRW50ZXIiLCJTaGlmdCJdLFsiRW50ZXIiLCJDb250cm9sL01ldGEiXSxbIkVu''@;'; + put 'put ''dGVyIiwiQ29udHJvbC9NZXRhIiwiU2hpZnQiXV0sY2FsbGJhY2s6ZnVuY3Rpb24odWUsX2Upe2guY2xvc2VFZGl0b3JBbmRTYXZlQ2hhbmdlcyh2LmlzQ3RybFByZXNzZWQoKSksaC5tb3ZlU2VsZWN0aW9uQWZ0ZXJFbnRlcihfZS5pbmNsdWRlcygic2hpZnQiKSl9fSx7a2V5czpbWyJFc2Nh''@;'; + put 'put ''cGUiXSxbIkVzY2FwZSIsIkNvbnRyb2wvTWV0YSJdXSxjYWxsYmFjazpmdW5jdGlvbigpe2guY2xvc2VFZGl0b3JBbmRSZXN0b3JlT3JpZ2luYWxWYWx1ZSh2LmlzQ3RybFByZXNzZWQoKSksaC5hY3RpdmVFZGl0b3IuZm9jdXMoKX19XSxJKSx5LmFkZFNob3J0Y3V0cyhbe2tleXM6W1siRjIi''@;'; + put 'put ''XV0sY2FsbGJhY2s6ZnVuY3Rpb24odWUpe2guYWN0aXZlRWRpdG9yJiZoLmFjdGl2ZUVkaXRvci5lbmFibGVGdWxsRWRpdE1vZGUoKSxoLm9wZW5FZGl0b3IobnVsbCx1ZSl9fSx7a2V5czpbWyJCYWNrc3BhY2UiXSxbIkRlbGV0ZSJdXSxjYWxsYmFjazpmdW5jdGlvbigpe2guaW5zdGFuY2Uu''@;'; + put 'put ''ZW1wdHlTZWxlY3RlZENlbGxzKCksaC5wcmVwYXJlRWRpdG9yKCl9fSx7a2V5czpbWyJFbnRlciJdLFsiRW50ZXIiLCJTaGlmdCJdXSxjYWxsYmFjazpmdW5jdGlvbih1ZSxfZSl7aC5pbnN0YW5jZS5nZXRTZXR0aW5ncygpLmVudGVyQmVnaW5zRWRpdGluZz9oLmNlbGxQcm9wZXJ0aWVzLnJl''@;'; + put 'put ''YWRPbmx5P2gubW92ZVNlbGVjdGlvbkFmdGVyRW50ZXIoKTpoLmFjdGl2ZUVkaXRvciYmKGguYWN0aXZlRWRpdG9yLmVuYWJsZUZ1bGxFZGl0TW9kZSgpLGgub3BlbkVkaXRvcihudWxsLHVlKSk6aC5tb3ZlU2VsZWN0aW9uQWZ0ZXJFbnRlcihfZS5pbmNsdWRlcygic2hpZnQiKSksXzgodWUp''@;'; + put 'put ''fX1dLEkpfX0se2tleToibG9ja0VkaXRvciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmxvY2s9ITB9fSx7a2V5OiJ1bmxvY2tFZGl0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5sb2NrPSExfX0se2tleToiZGVzdHJveUVkaXRvciIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5sb2NrfHx0aGlz''@;'; + put 'put ''LmNsb3NlRWRpdG9yKGgpfX0se2tleToiZ2V0QWN0aXZlRWRpdG9yIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFjdGl2ZUVkaXRvcn19LHtrZXk6InByZXBhcmVFZGl0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcztpZighdGhpcy5sb2NrKXtpZih0aGlzLmFjdGl2ZUVk''@;'; + put 'put ''aXRvciYmdGhpcy5hY3RpdmVFZGl0b3IuaXNXYWl0aW5nKCkpcmV0dXJuIHZvaWQgdGhpcy5jbG9zZUVkaXRvcighMSwhMSxmdW5jdGlvbigkdCl7JHQmJmgucHJlcGFyZUVkaXRvcigpfSk7dmFyIHY9dGhpcy5pbnN0YW5jZS5zZWxlY3Rpb24uc2VsZWN0ZWRSYW5nZS5jdXJyZW50KCkuaGln''@;'; + put 'put ''aGxpZ2h0LHk9di5yb3csQz12LmNvbCxJPXRoaXMuaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeUdldENlbGxDb29yZHMiLHksQyksaj15LHVlPUM7aWYoQXJyYXkuaXNBcnJheShJKSl7dmFyIF9lPWZ1bmN0aW9uIFBaZShkLGcpe3JldHVybiBmdW5jdGlvbiBWWmUoZCl7aWYoQXJyYXkuaXNB''@;'; + put 'put ''cnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIE5aZShkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9y''@;'; + put 'put ''KGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1y''@;'; + put 'put ''ZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIEhaZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gb19lKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9''@;'; + put 'put ''ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBvX2UoZCxnKX19KGQsZyl8fGZ1bmN0aW9u''@;'; + put 'put ''IEZaZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2Qu''@;'; + put 'put ''Iil9KCl9KEksMik7aj1fZVswXSx1ZT1fZVsxXX10aGlzLmNlbGxQcm9wZXJ0aWVzPXRoaXMuaW5zdGFuY2UuZ2V0Q2VsbE1ldGEoaix1ZSk7dmFyIEJlPXRoaXMuaW5zdGFuY2Uucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7aWYoQmUmJkJlLmJsdXIoKSx0aGlzLmNlbGxQcm9wZXJ0aWVz''@;'; + put 'put ''LnJlYWRPbmx5KXJldHVybiB2b2lkIHRoaXMuY2xlYXJBY3RpdmVFZGl0b3IoKTt2YXIgTmU9dGhpcy5pbnN0YW5jZS5nZXRDZWxsRWRpdG9yKHRoaXMuY2VsbFByb3BlcnRpZXMpLEtlPXRoaXMuaW5zdGFuY2UuZ2V0Q2VsbCh5LEMsITApO2lmKE5lJiZLZSl7dmFyIGR0PXRoaXMuaW5zdGFu''@;'; + put 'put ''Y2UuY29sVG9Qcm9wKHVlKSxPdD10aGlzLmluc3RhbmNlLmdldFNvdXJjZURhdGFBdENlbGwodGhpcy5pbnN0YW5jZS50b1BoeXNpY2FsUm93KGopLHVlKTt0aGlzLmFjdGl2ZUVkaXRvcj1uX2UoTmUsdGhpcy5pbnN0YW5jZSksdGhpcy5hY3RpdmVFZGl0b3IucHJlcGFyZSh5LEMsZHQsS2Us''@;'; + put 'put ''T3QsdGhpcy5jZWxsUHJvcGVydGllcyl9ZWxzZSB0aGlzLmNsZWFyQWN0aXZlRWRpdG9yKCl9fX0se2tleToiaXNFZGl0b3JPcGVuZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWN0aXZlRWRpdG9yJiZ0aGlzLmFjdGl2ZUVkaXRvci5pc09wZW5lZCgpfX0se2tleToib3BlbkVk''@;'; + put 'put ''aXRvciIsdmFsdWU6ZnVuY3Rpb24oaCx2KXshdGhpcy5hY3RpdmVFZGl0b3J8fHRoaXMuYWN0aXZlRWRpdG9yLmJlZ2luRWRpdGluZyhoLHYpfX0se2tleToiY2xvc2VFZGl0b3IiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt0aGlzLmFjdGl2ZUVkaXRvcj90aGlzLmFjdGl2ZUVkaXRvci5maW5p''@;'; + put 'put ''c2hFZGl0aW5nKGgsdix5KTp5JiZ5KCExKX19LHtrZXk6ImNsb3NlRWRpdG9yQW5kU2F2ZUNoYW5nZXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuY2xvc2VFZGl0b3IoITEsaCl9fSx7a2V5OiJjbG9zZUVkaXRvckFuZFJlc3RvcmVPcmlnaW5hbFZhbHVlIix2YWx1ZTpmdW5jdGlvbihoKXt0''@;'; + put 'put ''aGlzLmNsb3NlRWRpdG9yKCEwLGgpfX0se2tleToiY2xlYXJBY3RpdmVFZGl0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5hY3RpdmVFZGl0b3I9dm9pZCAwfX0se2tleToibW92ZVNlbGVjdGlvbkFmdGVyRW50ZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PSJmdW5jdGlvbiI9PXR5cGVv''@;'; + put 'put ''ZiB0aGlzLnRhYmxlTWV0YS5lbnRlck1vdmVzP3RoaXMudGFibGVNZXRhLmVudGVyTW92ZXMoZXZlbnQpOnRoaXMudGFibGVNZXRhLmVudGVyTW92ZXM7aD90aGlzLnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgtdi5yb3csLXYuY29sKTp0aGlzLnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCh2''@;'; + put 'put ''LnJvdyx2LmNvbCwhMCl9fSx7a2V5OiJvbkFmdGVyRG9jdW1lbnRLZXlEb3duIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzO2lmKHRoaXMuaW5zdGFuY2UuaXNMaXN0ZW5pbmcoKSl7dmFyIHk9aC5rZXlDb2RlO2lmKDIyOSE9PXkmJnRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQoKSl7''@;'; + put 'put ''dmFyIEM9KGguY3RybEtleXx8aC5tZXRhS2V5KSYmIWguYWx0S2V5OyF0aGlzLmFjdGl2ZUVkaXRvcnx8dGhpcy5hY3RpdmVFZGl0b3IuaXNXYWl0aW5nKCl8fHczZSh5KXx8SmJlKHkpfHxDfHx0aGlzLmlzRWRpdG9yT3BlbmVkKCl8fCh0aGlzLmluc3RhbmNlLmdldFNob3J0Y3V0TWFuYWdl''@;'; + put 'put ''cigpLmdldENvbnRleHQoImVkaXRvciIpLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siQXJyb3dVcCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3YuaW5zdGFuY2Uuc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KC0xLDApfX0se2tleXM6W1siQXJyb3dEb3duIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7''@;'; + put 'put ''di5pbnN0YW5jZS5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoMSwwKX19LHtrZXlzOltbIkFycm93TGVmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3YuaW5zdGFuY2Uuc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KDAsLTEqdi5pbnN0YW5jZS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5''@;'; + put 'put ''czpbWyJBcnJvd1JpZ2h0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7di5pbnN0YW5jZS5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoMCx2Lmluc3RhbmNlLmdldERpcmVjdGlvbkZhY3RvcigpKX19XSx7cnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIFRvKHYuaW5zdGFuY2UuZ2V0U2VsZWN0''@;'; + put 'put ''ZWQoKSl9LGdyb3VwOmxlZX0pLHRoaXMub3BlbkVkaXRvcigiIixoKSl9fX19LHtrZXk6Im9uQ2VsbERibENsaWNrIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7IlREIj09PXkubm9kZU5hbWUmJih0aGlzLmFjdGl2ZUVkaXRvciYmdGhpcy5hY3RpdmVFZGl0b3IuZW5hYmxlRnVsbEVkaXRNb2Rl''@;'; + put 'put ''KCksdGhpcy5vcGVuRWRpdG9yKG51bGwsaCkpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRlc3Ryb3llZD0hMCx0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCl9fV0pLGR9KCksbF9lPW5ldyBXZWFrTWFwO0UzZS5nZXRJbnN0YW5jZT1mdW5jdGlvbihkLGcsaCl7''@;'; + put 'put ''dmFyIHY9bF9lLmdldChkKTtyZXR1cm4gdnx8KHY9bmV3IEUzZShkLGcsaCksbF9lLnNldChkLHYpKSx2fTtjb25zdCB6WmU9RTNlO2Z1bmN0aW9uIHgzZShkKXtyZXR1cm4gZnVuY3Rpb24gVVplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIFQzZShkKX0oZCl8fGZ1bmN0aW9uIFla''@;'; + put 'put ''ZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBXWmUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFQz''@;'; + put 'put ''ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3Vt''@;'; + put 'put ''ZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gVDNlKGQsZyl9fShkKXx8ZnVuY3Rpb24gR1plKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFu''@;'; + put 'put ''Y2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gVDNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcg''@;'; + put 'put ''QXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9TCg5NjI1MSksTCgyNzYyKSxMKDU4MCksTCg3MTc3MiksTCgzNTgxMCk7dmFyIHNfZT17IiZuYnNwOyI6IiAiLCImYW1wOyI6IiYiLCImbHQ7IjoiPCIsIiZndDsiOiI+In0sUVplPW5ldyBSZWdFeHAoT2JqZWN0LmtleXMoc19l''@;'; + put 'put ''KS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIigiLmNvbmNhdChkLCIpIil9KS5qb2luKCJ8IiksImdpIik7ZnVuY3Rpb24gSlplKGQpe3JldHVybiJUQUJMRSI9PT0oZCYmZC5ub2RlTmFtZXx8IiIpfWZ1bmN0aW9uIEkzZShkKXtmb3IodmFyIGc9ZC5oYXNDb2xIZWFkZXJzKCksaD1kLmhhc1Jv''@;'; + put 'put ''d0hlYWRlcnMoKSx2PVtnPy0xOjAsaD8tMTowLGQuY291bnRSb3dzKCktMSxkLmNvdW50Q29scygpLTFdLHk9ZC5nZXREYXRhLmFwcGx5KGQsdiksQz15Lmxlbmd0aCxJPUM+MD95WzBdLmxlbmd0aDowLGo9WyI8dGFibGU+IiwiPC90YWJsZT4iXSx1ZT1nP1siPHRoZWFkPiIsIjwvdGhlYWQ+''@;'; + put 'put ''Il06W10sX2U9WyI8dGJvZHk+IiwiPC90Ym9keT4iXSxCZT1oPzE6MCxOZT1nPzE6MCxLZT0wO0tlPEM7S2UrPTEpe2Zvcih2YXIgZHQ9ZyYmMD09PUtlLE90PVtdLCR0PTA7JHQ8STskdCs9MSl7dmFyIGZuPSFkdCYmaCYmMD09PSR0LExuPSIiO2lmKGR0KUxuPSI8dGg+Ii5jb25jYXQoZC5n''@;'; + put 'put ''ZXRDb2xIZWFkZXIoJHQtQmUpLCI8L3RoPiIpO2Vsc2UgaWYoZm4pTG49Ijx0aD4iLmNvbmNhdChkLmdldFJvd0hlYWRlcihLZS1OZSksIjwvdGg+Iik7ZWxzZXt2YXIgaXI9eVtLZV1bJHRdLG1yPWQuZ2V0Q2VsbE1ldGEoS2UtTmUsJHQtQmUpLHdyPW1yLnJvd3NwYW4sUXI9bXIuY29sc3Bh''@;'; + put 'put ''bjtpZighbXIuaGlkZGVuKXt2YXIgeWk9W107aWYod3ImJnlpLnB1c2goJ3Jvd3NwYW49IicuY29uY2F0KHdyLCciJykpLFFyJiZ5aS5wdXNoKCdjb2xzcGFuPSInLmNvbmNhdChRciwnIicpKSxkYyhpcikpTG49Ijx0ZCAiLmNvbmNhdCh5aS5qb2luKCIgIiksIj48L3RkPiIpO2Vsc2V7dmFy''@;'; + put 'put ''IEtpPWlyLnRvU3RyaW5nKCkucmVwbGFjZSgiPCIsIiZsdDsiKS5yZXBsYWNlKCI+IiwiJmd0OyIpLnJlcGxhY2UoLyg8YnIoXHMqfFwvKT4oXHJcbnxcbik/fFxyXG58XG4pL2csIjxicj5cclxuIikucmVwbGFjZSgvXHgyMC9naSwiJm5ic3A7IikucmVwbGFjZSgvXHQvZ2ksIiYjOTsiKTtM''@;'; + put 'put ''bj0iPHRkICIuY29uY2F0KHlpLmpvaW4oIiAiKSwiPiIpLmNvbmNhdChLaSwiPC90ZD4iKX19fU90LnB1c2goTG4pfXZhciBTbz1bIjx0cj4iXS5jb25jYXQoT3QsWyI8L3RyPiJdKS5qb2luKCIiKTtkdD91ZS5zcGxpY2UoMSwwLFNvKTpfZS5zcGxpY2UoLTEsMCxTbyl9cmV0dXJuIGouc3Bs''@;'; + put 'put ''aWNlKDEsMCx1ZS5qb2luKCIiKSxfZS5qb2luKCIiKSksai5qb2luKCIiKX1mdW5jdGlvbiBEM2UoZCl7Zm9yKHZhciBnPWQubGVuZ3RoLGg9WyI8dGFibGU+Il0sdj0wO3Y8Zzt2Kz0xKXt2YXIgeT1kW3ZdLEM9eS5sZW5ndGgsST1bXTswPT09diYmaC5wdXNoKCI8dGJvZHk+Iik7Zm9yKHZh''@;'; + put 'put ''ciBqPTA7ajxDO2orPTEpe3ZhciB1ZT15W2pdLF9lPWRjKHVlKT8iIjp1ZS50b1N0cmluZygpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyg8YnIoXHMqfFwvKT4oXHJcbnxcbik/fFxyXG58XG4pL2csIjxicj5cclxuIikucmVwbGFjZSgvXHgy''@;'; + put 'put ''MC9naSwiJm5ic3A7IikucmVwbGFjZSgvXHQvZ2ksIiYjOTsiKTtJLnB1c2goIjx0ZD4iLmNvbmNhdChfZSwiPC90ZD4iKSl9aC5wdXNoLmFwcGx5KGgsWyI8dHI+Il0uY29uY2F0KEksWyI8L3RyPiJdKSksdisxPT09ZyYmaC5wdXNoKCI8L3Rib2R5PiIpfXJldHVybiBoLnB1c2goIjwvdGFi''@;'; + put 'put ''bGU+IiksaC5qb2luKCIiKX1mdW5jdGlvbiB1X2UoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmRvY3VtZW50LGg9e30sdj1nLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSx5PWcuY3JlYXRlRWxlbWVudCgiZGl2Iik7di5h''@;'; + put 'put ''cHBlbmRDaGlsZCh5KTt2YXIgQz1kO2lmKCJzdHJpbmciPT10eXBlb2YgQyl7dmFyIEk9Qy5yZXBsYWNlKC88dGRcYltePl0qPz4oW1xzXFNdKj8pPFwvXHMqdGQ+L2csZnVuY3Rpb24oWm4pe3ZhciBfcj1abi5tYXRjaCgvPHRkXGJbXj5dKj8+L2cpWzBdLFhyPVpuLnN1YnN0cmluZyhfci5s''@;'; + put 'put ''ZW5ndGgsWm4ubGFzdEluZGV4T2YoIjwiKSkucmVwbGFjZSgvKDwoPyFicikoW14+XSspPikvZ2ksIiIpO3JldHVybiIiLmNvbmNhdChfcikuY29uY2F0KFhyKS5jb25jYXQoIjwvdGQ+Iil9KTt5Lmluc2VydEFkamFjZW50SFRNTCgiYWZ0ZXJiZWdpbiIsIiIuY29uY2F0KEkpKSxDPXkucXVl''@;'; + put 'put ''cnlTZWxlY3RvcigidGFibGUiKX1pZihDJiZKWmUoQykpe3ZhciBqPXkucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lJD0iZW5lcmF0b3IiXScpLHVlPW51bGwhPT1DLnF1ZXJ5U2VsZWN0b3IoInRib2R5IHRoIiksX2U9Qy5xdWVyeVNlbGVjdG9yKCJ0ciIpLEJlPV9lP0FycmF5LmZyb20oX2Uu''@;'; + put 'put ''Y2VsbHMpLnJlZHVjZShmdW5jdGlvbihabixfcil7cmV0dXJuIFpuK19yLmNvbFNwYW59LDApLSh1ZT8xOjApOjAsTmU9Qy50Rm9vdCYmQXJyYXkuZnJvbShDLnRGb290LnJvd3MpfHxbXSxLZT1bXSxkdD0hMSxPdD0wLCR0PTA7aWYoQy50SGVhZCl7dmFyIGZuPUFycmF5LmZyb20oQy50SGVh''@;'; + put 'put ''ZC5yb3dzKS5maWx0ZXIoZnVuY3Rpb24oWm4pe3ZhciBfcj1udWxsIT09Wm4ucXVlcnlTZWxlY3RvcigidGQiKTtyZXR1cm4gX3ImJktlLnB1c2goWm4pLCFfcn0pO2R0PShPdD1mbi5sZW5ndGgpPjAsT3Q+MT9oLm5lc3RlZEhlYWRlcnM9QXJyYXkuZnJvbShmbikucmVkdWNlKGZ1bmN0aW9u''@;'; + put 'put ''KFpuLF9yKXt2YXIgWHI9QXJyYXkuZnJvbShfci5jZWxscykucmVkdWNlKGZ1bmN0aW9uKGNpLGMwLFhpKXtpZih1ZSYmMD09PVhpKXJldHVybiBjaTt2YXIgRTA9YzAuY29sU3Bhbix6MD1jMC5pbm5lckhUTUw7cmV0dXJuIGNpLnB1c2goRTA+MT97bGFiZWw6ejAsY29sc3BhbjpFMH06ejAp''@;'; + put 'put ''LGNpfSxbXSk7cmV0dXJuIFpuLnB1c2goWHIpLFpufSxbXSk6ZHQmJihoLmNvbEhlYWRlcnM9QXJyYXkuZnJvbShmblswXS5jaGlsZHJlbikucmVkdWNlKGZ1bmN0aW9uKFpuLF9yLFhyKXtyZXR1cm4gdWUmJjA9PT1Ycnx8Wm4ucHVzaChfci5pbm5lckhUTUwpLFpufSxbXSkpfUtlLmxlbmd0''@;'; + put 'put ''aCYmKGguZml4ZWRSb3dzVG9wPUtlLmxlbmd0aCksTmUubGVuZ3RoJiYoaC5maXhlZFJvd3NCb3R0b209TmUubGVuZ3RoKTt2YXIgTG49W10uY29uY2F0KEtlLHgzZShBcnJheS5mcm9tKEMudEJvZGllcykucmVkdWNlKGZ1bmN0aW9uKFpuLF9yKXtyZXR1cm4gWm4ucHVzaC5hcHBseShabix4''@;'; + put 'put ''M2UoQXJyYXkuZnJvbShfci5yb3dzKSkpLFpufSxbXSkpLHgzZShOZSkpOyR0PUxuLmxlbmd0aDtmb3IodmFyIGlyPW5ldyBBcnJheSgkdCksbXI9MDttcjwkdDttcisrKWlyW21yXT1uZXcgQXJyYXkoQmUpO2Zvcih2YXIgU3I9W10sd3I9W10sUXI9MDtRcjwkdDtRcisrKWZvcih2YXIgeWk9''@;'; + put 'put ''TG5bUXJdLEtpPUFycmF5LmZyb20oeWkuY2VsbHMpLFNvPUtpLmxlbmd0aCxQbz0wO1BvPFNvO1BvKyspe3ZhciBTYT1LaVtQb10sSmE9U2Eubm9kZU5hbWUsbGE9U2EuaW5uZXJIVE1MLGFsPVNhLnJvd1NwYW4sTHM9U2EuY29sU3BhbixQMD1pcltRcl0uZmluZEluZGV4KGZ1bmN0aW9uKFpu''@;'; + put 'put ''KXtyZXR1cm4gdm9pZCAwPT09Wm59KTtpZigiVEQiPT09SmEpe2lmKGFsPjF8fExzPjEpe2Zvcih2YXIgcm89UXI7cm88UXIrYWw7cm8rKylpZihybzwkdClmb3IodmFyIGZvPVAwO2ZvPFAwK0xzO2ZvKyspaXJbcm9dW2ZvXT1udWxsO3ZhciBJYT1TYS5nZXRBdHRyaWJ1dGUoInN0eWxlIiks''@;'; + put 'put ''WGw9SWEmJklhLmluY2x1ZGVzKCJtc28taWdub3JlOmNvbHNwYW4iKTtYbHx8U3IucHVzaCh7Y29sOlAwLHJvdzpRcixyb3dzcGFuOmFsLGNvbHNwYW46THN9KX12YXIgRm49IiI7Rm49aiYmL2V4Y2VsL2dpLnRlc3Qoai5jb250ZW50KT9sYS5yZXBsYWNlKC9bXHJcbl1bXHgyMF17MCwyfS9n''@;'; + put 'put ''LCIgIikucmVwbGFjZSgvPGJyKFxzKnxcLyk+W1xyXG5dP1tceDIwXXswLDN9L2dpbSwiXHJcbiIpOmxhLnJlcGxhY2UoLzxicihccyp8XC8pPltcclxuXT8vZ2ltLCJcclxuIiksaXJbUXJdW1AwXT1Gbi5yZXBsYWNlKFFaZSxmdW5jdGlvbihabil7cmV0dXJuIHNfZVtabl19KX1lbHNlIHdy''@;'; + put 'put ''LnB1c2gobGEpfXJldHVybiBTci5sZW5ndGgmJihoLm1lcmdlQ2VsbHM9U3IpLHdyLmxlbmd0aCYmKGgucm93SGVhZGVycz13ciksaXIubGVuZ3RoJiYoaC5kYXRhPWlyKSxofX1mdW5jdGlvbiBYWmUoZCl7cmV0dXJuIGZ1bmN0aW9uIGV6ZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVy''@;'; + put 'put ''biBMM2UoZCl9KGQpfHxmdW5jdGlvbiBxWmUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gJFplKGQsZyl7aWYoZCl7aWYoInN0''@;'; + put 'put ''cmluZyI9PXR5cGVvZiBkKXJldHVybiBMM2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVy''@;'; + put 'put ''biBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEwzZShkLGcpfX0oZCl8fGZ1bmN0aW9uIEtaZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBz''@;'; + put 'put ''cHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEwzZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5s''@;'; + put 'put ''ZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIE8zZShkKXtyZXR1cm4oTzNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVy''@;'; + put 'put ''biB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gdjQoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0''@;'; + put 'put ''aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdLGg9TzNlKGQpO2lmKCJudW1iZXIiPT09aClyZXR1cm4haXNOYU4oZCkmJmlzRmluaXRlKGQpO2lmKCJzdHJpbmciPT09aCl7aWYoMD09PWQubGVuZ3RoKXJldHVybiExO2lmKDE9PT1kLmxlbmd0aClyZXR1cm4vXGQv''@;'; + put 'put ''LnRlc3QoZCk7dmFyIHY9QXJyYXkuZnJvbShuZXcgU2V0KFsiLiJdLmNvbmNhdChYWmUoZykpKSkubWFwKGZ1bmN0aW9uKHkpe3JldHVybiJcXCIuY29uY2F0KHkpfSkuam9pbigifCIpO3JldHVybiBuZXcgUmVnRXhwKCJeWystXT9cXHMqKCgoIi5jb25jYXQodiwiKT9cXGQrKCgiKS5jb25j''@;'; + put 'put ''YXQodiwiKVxcZCspPyhlWystXT9cXGQrKT8pfCgweFthLWZcXGRdKykpJCIpLCJpIikudGVzdChkLnRyaW0oKSl9cmV0dXJuIm9iamVjdCI9PT1oJiYhKCFkfHwibnVtYmVyIiE9dHlwZW9mIGQudmFsdWVPZigpfHxkIGluc3RhbmNlb2YgRGF0ZSl9ZnVuY3Rpb24gY19lKGQpe3JldHVybiB2''@;'; + put 'put ''NChkLFsiLCJdKX1mdW5jdGlvbiBpYShkLGcsaCl7dmFyIHY9LTE7Zm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBnPyhoPWcsZz1kKTp2PWQtMTsrK3Y8PWcmJiExIT09aCh2KTspO31mdW5jdGlvbiBzZWUoZCxnLGgpe3ZhciB2PWQrMTtmb3IoImZ1bmN0aW9uIj09dHlwZW9mIGcmJihoPWcsZz0w''@;'; + put 'put ''KTstLXY+PWcmJiExIT09aCh2KTspO31mdW5jdGlvbiBSM2UoZCxnKXtyZXR1cm4gZz1wYXJzZUludChnLnRvU3RyaW5nKCkucmVwbGFjZSgiJSIsIiIpLDEwKSxnPWlzTmFOKGcpPzA6ZyxwYXJzZUludChkKmcvMTAwLDEwKX1mdW5jdGlvbiB0emUoZCl7cmV0dXJuIGZ1bmN0aW9uIGl6ZShk''@;'; + put 'put ''KXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBCM2UoZCl9KGQpfHxmdW5jdGlvbiByemUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8Zl9l''@;'; + put 'put ''KGQpfHxmdW5jdGlvbiBuemUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgp''@;'; + put 'put ''IG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBvemUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gc3plKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBsemUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0''@;'; + put 'put ''ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVl''@;'; + put 'put ''fWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmX2UoZCxnKXx8ZnVuY3Rpb24gYXplKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1p''@;'; + put 'put ''dGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBmX2UoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIEIzZShk''@;'; + put 'put ''LGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50''@;'; + put 'put ''cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gQjNlKGQsZyl9fWZ1bmN0aW9uIEIzZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKysp''@;'; + put 'put ''dltoXT1kW2hdO3JldHVybiB2fXZhciBQM2U9ImFzYyIsaF9lPW5ldyBNYXAoW1tQM2UsWy0xLDFdXSxbImRlc2MiLFsxLC0xXV1dKSxjemU9ZnVuY3Rpb24oZyl7cmV0dXJuIlRoZSBwcmlvcml0eSAnIi5jb25jYXQoZywiJyBpcyBhbHJlYWR5IGRlY2xhcmVkIGluIGEgbWFwLiIpfSxmemU9''@;'; + put 'put ''ZnVuY3Rpb24oZyl7cmV0dXJuIlRoZSBwcmlvcml0eSAnIi5jb25jYXQoZywiJyBpcyBub3QgYSBudW1iZXIuIil9O2Z1bmN0aW9uIGR6ZShkKXtyZXR1cm4gZnVuY3Rpb24gbXplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIEYzZShkKX0oZCl8fGZ1bmN0aW9uIGd6ZShkKXtpZigi''@;'; + put 'put ''dW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxwX2UoZCl8fGZ1bmN0aW9uIHB6ZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBz''@;'; + put 'put ''cHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGRfZShkLGcpe3JldHVybiBmdW5jdGlvbiB5emUoZCl7aWYoQXJy''@;'; + put 'put ''YXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIEF6ZShkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0''@;'; + put 'put ''cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJv''@;'; + put 'put ''dyBqfX1yZXR1cm4gdn19KGQsZyl8fHBfZShkLGcpfHxmdW5jdGlvbiB2emUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3Rz''@;'; + put 'put ''IG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHBfZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gRjNlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJP''@;'; + put 'put ''YmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJl''@;'; + put 'put ''dHVybiBGM2UoZCxnKX19ZnVuY3Rpb24gRjNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9TCg1NDY3OSk7dmFyIHd6ZT1mdW5jdGlvbihnKXtyZXR1cm4iVGhlIGlk''@;'; + put 'put ''ICciLmNvbmNhdChnLCInIGlzIGFscmVhZHkgZGVjbGFyZWQgaW4gYSBtYXAuIil9O2Z1bmN0aW9uIHVlZSgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxnPWQuZXJyb3JJZEV4aXN0cyxoPW5ldyBNYXA7ZnVuY3Rpb24g''@;'; + put 'put ''dihCZSxOZSl7aWYoX2UoQmUpKXRocm93IG5ldyBFcnJvcihnKEJlKSk7aC5zZXQoQmUsTmUpfWZ1bmN0aW9uIHkoQmUpe3JldHVybiBoLmRlbGV0ZShCZSl9ZnVuY3Rpb24gQygpe2guY2xlYXIoKX1mdW5jdGlvbiBJKEJlKXt2YXIgTmU9dWUoKS5maW5kKGZ1bmN0aW9uKE90KXt2YXIgJHQ9''@;'; + put 'put ''ZF9lKE90LDIpO3JldHVybiBCZT09PSR0WzFdJiYkdFswXX0pfHxbbnVsbF07cmV0dXJuIGRfZShOZSwxKVswXX1mdW5jdGlvbiBqKEJlKXtyZXR1cm4gaC5nZXQoQmUpfWZ1bmN0aW9uIHVlKCl7cmV0dXJuIGR6ZShoKX1mdW5jdGlvbiBfZShCZSl7cmV0dXJuIGguaGFzKEJlKX1yZXR1cm4g''@;'; + put 'put ''Zz1ZMihnKT9nOnd6ZSx7YWRkSXRlbTp2LGNsZWFyOkMsZ2V0SWQ6SSxnZXRJdGVtOmosZ2V0SXRlbXM6dWUsaGFzSXRlbTpfZSxyZW1vdmVJdGVtOnl9fWZ1bmN0aW9uIGJ6ZShkKXtyZXR1cm4gZnVuY3Rpb24gU3plKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIEgzZShkKX0oZCl8''@;'; + put 'put ''fGZ1bmN0aW9uIGt6ZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBDemUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9m''@;'; + put 'put ''IGQpcmV0dXJuIEgzZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20o''@;'; + put 'put ''ZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gSDNlKGQsZyl9fShkKXx8ZnVuY3Rpb24gX3plKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRl''@;'; + put 'put ''cmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gSDNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZh''@;'; + put 'put ''ciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9dmFyIE16ZT1mdW5jdGlvbihnKXtyZXR1cm4iJyIuY29uY2F0KGcsIicgdmFsdWUgaXMgYWxyZWFkeSBkZWNsYXJlZCBpbiBhIHVuaXF1ZSBzZXQuIil9O2Z1bmN0aW9uIGdfZShkKXtyZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24gUnplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIE4zZShkKX0oZCl8fGZ1bmN0aW9uIE96ZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9''@;'; + put 'put ''KGQpfHxtX2UoZCl8fGZ1bmN0aW9uIEx6ZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRl''@;'; + put 'put ''cmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIG1fZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gTjNlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3Rv''@;'; + put 'put ''ciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBOM2UoZCxnKX19ZnVuY3Rpb24g''@;'; + put 'put ''TjNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9dmFyIFYzZT1mdW5jdGlvbihnKXtyZXR1cm4nVGhlcmUgaXMgYWxyZWFkeSByZWdpc3RlcmVkICInLmNvbmNhdChn''@;'; + put 'put ''LCciIHBsdWdpbi4nKX0sdl9lPWZ1bmN0aW9uIGh6ZSgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxnPWQuZXJyb3JQcmlvcml0eUV4aXN0cyxoPWQuZXJyb3JQcmlvcml0eU5hTix2PW5ldyBNYXA7ZnVuY3Rpb24geShJ''@;'; + put 'put ''LGope2lmKCF2NChJKSl0aHJvdyBuZXcgRXJyb3IoaChJKSk7aWYodi5oYXMoSSkpdGhyb3cgbmV3IEVycm9yKGcoSSkpO3Yuc2V0KEksail9ZnVuY3Rpb24gQygpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpQM2Usaj1oX2Uu''@;'; + put 'put ''Z2V0KEkpfHxoX2UuZ2V0KFAzZSksdWU9b3plKGosMiksX2U9dWVbMF0sQmU9dWVbMV07cmV0dXJuIHR6ZSh2KS5zb3J0KGZ1bmN0aW9uKE5lLEtlKXtyZXR1cm4gTmVbMF08S2VbMF0/X2U6QmV9KS5tYXAoZnVuY3Rpb24oTmUpe3JldHVybiBOZVsxXX0pfXJldHVybiBnPVkyKGcpP2c6Y3pl''@;'; + put 'put ''LGg9WTIoaCk/aDpmemUse2FkZEl0ZW06eSxnZXRJdGVtczpDfX0oe2Vycm9yUHJpb3JpdHlFeGlzdHM6ZnVuY3Rpb24oZyl7cmV0dXJuJ1RoZXJlIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBwbHVnaW4gb24gcHJpb3JpdHkgIicuY29uY2F0KGcsJyIuJyl9LGVycm9yUHJpb3JpdHlOYU46ZnVu''@;'; + put 'put ''Y3Rpb24oZyl7cmV0dXJuJ1RoZSBwcmlvcml0eSAiJy5jb25jYXQoZywnIiBpcyBub3QgYSBudW1iZXIuJyl9fSksQV9lPWZ1bmN0aW9uIEV6ZSgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxnPWQuZXJyb3JJdGVtRXhp''@;'; + put 'put ''c3RzLGg9bmV3IFNldDtmdW5jdGlvbiB2KEkpe2lmKGguaGFzKEkpKXRocm93IG5ldyBFcnJvcihnKEkpKTtoLmFkZChJKX1mdW5jdGlvbiB5KCl7cmV0dXJuIGJ6ZShoKX1mdW5jdGlvbiBDKCl7aC5jbGVhcigpfXJldHVybiBnPVkyKGcpP2c6TXplLHthZGRJdGVtOnYsY2xlYXI6QyxnZXRJ''@;'; + put 'put ''dGVtczp5fX0oe2Vycm9ySXRlbUV4aXN0czpWM2V9KSxqM2U9dWVlKHtlcnJvcklkRXhpc3RzOlYzZX0pO2Z1bmN0aW9uIFozZSgpe3JldHVybltdLmNvbmNhdChnX2Uodl9lLmdldEl0ZW1zKCkpLGdfZShBX2UuZ2V0SXRlbXMoKSkpfWZ1bmN0aW9uIHpaKGQpe3ZhciBnPWFkKGQpO3JldHVy''@;'; + put 'put ''biBqM2UuZ2V0SXRlbShnKX1mdW5jdGlvbiBEcyhkLGcsaCl7dmFyIHY9ZnVuY3Rpb24gTnplKGQsZyxoKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZCYmKGQ9KGc9ZCkuUExVR0lOX0tFWSxoPWcuUExVR0lOX1BSSU9SSVRZKSxbZCxnLGhdfShkLGcsaCkseT1mdW5jdGlvbiB4emUoZCxn''@;'; + put 'put ''KXtyZXR1cm4gZnVuY3Rpb24gRHplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBJemUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51''@;'; + put 'put ''bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVy''@;'; + put 'put ''biYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxtX2UoZCxnKXx8ZnVuY3Rpb24gVHplKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRv''@;'; + put 'put ''IGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0odiwzKTtnPXlbMV0saD15WzJdLHZvaWQgMD09PXpaKGQ9eVswXSkmJmZ1bmN0aW9uIEh6ZShkLGcsaCl7dmFyIHY9YWQoZCk7aWYoajNlLmhhc0l0ZW0o''@;'; + put 'put ''dikpdGhyb3cgbmV3IEVycm9yKFYzZSh2KSk7dm9pZCAwPT09aD9BX2UuYWRkSXRlbSh2KTp2X2UuYWRkSXRlbShoLHYpLGozZS5hZGRJdGVtKHYsZyl9KGQsZyxoKX12YXIgR1o9THAoInJlbmRlcmVycyIpLFZ6ZT1HWi5yZWdpc3RlcixqemU9R1ouZ2V0SXRlbSx5X2U9R1ouaGFzSXRlbSxa''@;'; + put 'put ''emU9R1ouZ2V0TmFtZXM7ZnVuY3Rpb24gejNlKGQpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBkKXJldHVybiBkO2lmKCF5X2UoZCkpdGhyb3cgRXJyb3IoJ05vIHJlZ2lzdGVyZWQgcmVuZGVyZXIgZm91bmQgdW5kZXIgIicuY29uY2F0KGQsJyIgbmFtZScpKTtyZXR1cm4ganplKGQpfWZ1bmN0''@;'; + put 'put ''aW9uIE1nKGQsZyl7InN0cmluZyIhPXR5cGVvZiBkJiYoZD0oZz1kKS5SRU5ERVJFUl9UWVBFKSxWemUoZCxnKX12YXIgV1o9THAoInZhbGlkYXRvcnMiKSx6emU9V1oucmVnaXN0ZXIsR3plPVdaLmdldEl0ZW0sd19lPVdaLmhhc0l0ZW0sV3plPVdaLmdldE5hbWVzO2Z1bmN0aW9uIEczZShk''@;'; + put 'put ''KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZClyZXR1cm4gZDtpZighd19lKGQpKXRocm93IEVycm9yKCdObyByZWdpc3RlcmVkIHZhbGlkYXRvciBmb3VuZCB1bmRlciAiJy5jb25jYXQoZCwnIiBuYW1lJykpO3JldHVybiBHemUoZCl9ZnVuY3Rpb24gYU8oZCxnKXsic3RyaW5nIiE9dHlwZW9m''@;'; + put 'put ''IGQmJihkPShnPWQpLlZBTElEQVRPUl9UWVBFKSx6emUoZCxnKX1mdW5jdGlvbiBZemUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBiX2UoZCxnKXtmb3IodmFyIGg9MDto''@;'; + put 'put ''PGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1MKDE2MTYxKSxMKDkxNjgzKTt2YXIgbE89bmV3''@;'; + put 'put ''IFdlYWtNYXAsUXplPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgsdix5LEMsSSl7dmFyIGo9YXJndW1lbnRzLmxlbmd0aD42JiZ2b2lkIDAhPT1hcmd1bWVudHNbNl0/YXJndW1lbnRzWzZdOm51bGw7WXplKHRoaXMsZCksdGhpcy53dFNldHRpbmdzPXYsdGhpcy5kb21CaW5kaW5ncz1oLHRo''@;'; + put 'put ''aXMud3RUYWJsZT1DLHRoaXMuc2VsZWN0aW9ucz1JLHRoaXMucGFyZW50PWosdGhpcy5ldmVudE1hbmFnZXI9eSx0aGlzLmZhY2FkZUdldHRlcj1nLGxPLnNldCh0aGlzLHtzZWxlY3RlZENlbGxCZWZvcmVUb3VjaEVuZDp2b2lkIDAsZGJsQ2xpY2tUaW1lb3V0OltudWxsLG51bGxdLGRibENs''@;'; + put 'put ''aWNrT3JpZ2luOltudWxsLG51bGxdfSksdGhpcy5yZWdpc3RlckV2ZW50cygpfXJldHVybiBmdW5jdGlvbiBVemUoZCxnLGgpe2cmJmJfZShkLnByb3RvdHlwZSxnKSxoJiZiX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tl''@;'; + put 'put ''eToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RUYWJsZS5ob2xkZXIsImNvbnRleHRtZW51IixmdW5jdGlvbihDKXtyZXR1cm4gaC5vbkNvbnRleHRNZW51KEMpfSksdGhpcy5ldmVu''@;'; + put 'put ''dE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLnd0VGFibGUuVEFCTEUsIm1vdXNlb3ZlciIsZnVuY3Rpb24oQyl7cmV0dXJuIGgub25Nb3VzZU92ZXIoQyl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RUYWJsZS5UQUJMRSwibW91c2VvdXQiLGZ1bmN0''@;'; + put 'put ''aW9uKEMpe3JldHVybiBoLm9uTW91c2VPdXQoQyl9KTt2YXIgdj1mdW5jdGlvbigpe2guZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoaC53dFRhYmxlLmhvbGRlciwidG91Y2hzdGFydCIsZnVuY3Rpb24oSSl7cmV0dXJuIGgub25Ub3VjaFN0YXJ0KEkpfSksaC5ldmVudE1hbmFnZXIu''@;'; + put 'put ''YWRkRXZlbnRMaXN0ZW5lcihoLnd0VGFibGUuaG9sZGVyLCJ0b3VjaGVuZCIsZnVuY3Rpb24oSSl7cmV0dXJuIGgub25Ub3VjaEVuZChJKX0pLGgubW9tZW50dW1TY3JvbGxpbmd8fChoLm1vbWVudHVtU2Nyb2xsaW5nPXt9KSxoLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGgud3RU''@;'; + put 'put ''YWJsZS5ob2xkZXIsInNjcm9sbCIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoaC5tb21lbnR1bVNjcm9sbGluZy5fdGltZW91dCksaC5tb21lbnR1bVNjcm9sbGluZy5vbmdvaW5nfHxoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25CZWZvcmVUb3VjaFNjcm9sbCIpLGgubW9tZW50dW1TY3Jv''@;'; + put 'put ''bGxpbmcub25nb2luZz0hMCxoLm1vbWVudHVtU2Nyb2xsaW5nLl90aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtoLnRvdWNoQXBwbGllZHx8KGgubW9tZW50dW1TY3JvbGxpbmcub25nb2luZz0hMSxoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25BZnRlck1vbWVudHVtU2Nyb2xsIikp''@;'; + put 'put ''fSwyMDApfSl9O2I4KCk/digpOih6aGUoKSYmdigpLGguZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoaC53dFRhYmxlLmhvbGRlciwibW91c2V1cCIsZnVuY3Rpb24oSSl7cmV0dXJuIGgub25Nb3VzZVVwKEkpfSksaC5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihoLnd0VGFi''@;'; + put 'put ''bGUuaG9sZGVyLCJtb3VzZWRvd24iLGZ1bmN0aW9uKEkpe3JldHVybiBoLm9uTW91c2VEb3duKEkpfSkpfX0se2tleToic2VsZWN0ZWRDZWxsV2FzVG91Y2hlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9bE8uZ2V0KHRoaXMpLEM9dGhpcy5wYXJlbnRDZWxsKGgpLmNvb3JkcztpZih2LnNl''@;'; + put 'put ''bGVjdGVkQ2VsbEJlZm9yZVRvdWNoRW5kJiZDKXt2YXIgST1bQy5yb3csdi5zZWxlY3RlZENlbGxCZWZvcmVUb3VjaEVuZC5mcm9tLnJvd10sX2U9W0MuY29sLHYuc2VsZWN0ZWRDZWxsQmVmb3JlVG91Y2hFbmQuZnJvbS5jb2xdO3JldHVybiBJWzBdPT09SVsxXSYmX2VbMF09PT1fZVsxXX1y''@;'; + put 'put ''ZXR1cm4hMX19LHtrZXk6InBhcmVudENlbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXt9LEM9UlooaCxbIlREIiwiVEgiXSx0aGlzLnd0VGFibGUuVEFCTEUpO3JldHVybiBDPyh2LmNvb3Jkcz10aGlzLnd0VGFibGUuZ2V0Q29vcmRzKEMpLHYuVEQ9Qyk6dGwoaCwid3RCb3JkZXIiKSYm''@;'; + put 'put ''dGwoaCwiY3VycmVudCIpPyh2LmNvb3Jkcz10aGlzLnNlbGVjdGlvbnMuZ2V0Q2VsbCgpLmNlbGxSYW5nZS5oaWdobGlnaHQsdi5URD10aGlzLnd0VGFibGUuZ2V0Q2VsbCh2LmNvb3JkcykpOnRsKGgsInd0Qm9yZGVyIikmJnRsKGgsImFyZWEiKSYmdGhpcy5zZWxlY3Rpb25zLmNyZWF0ZU9y''@;'; + put 'put ''R2V0QXJlYSgpLmNlbGxSYW5nZSYmKHYuY29vcmRzPXRoaXMuc2VsZWN0aW9ucy5jcmVhdGVPckdldEFyZWEoKS5jZWxsUmFuZ2UudG8sdi5URD10aGlzLnd0VGFibGUuZ2V0Q2VsbCh2LmNvb3JkcykpLHZ9fSx7a2V5OiJvbk1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9bE8u''@;'; + put 'put ''Z2V0KHRoaXMpLHk9dGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQuYWN0aXZlRWxlbWVudCxDPXkzZShQYmUsaC50YXJnZXQpLEk9aC50YXJnZXQ7aWYoSSE9PXkmJkMoMCkhPT15JiZDKDEpIT09eSl7dmFyIGo9dGhpcy5wYXJlbnRDZWxsKEkpO3RsKEksImNvcm5lciIpP3RoaXMud3RT''@;'; + put 'put ''ZXR0aW5ncy5nZXRTZXR0aW5nKCJvbkNlbGxDb3JuZXJNb3VzZURvd24iLGgsSSk6ai5URCYmdGhpcy53dFNldHRpbmdzLmhhcygib25DZWxsTW91c2VEb3duIikmJnRoaXMuY2FsbExpc3RlbmVyKCJvbkNlbGxNb3VzZURvd24iLGgsai5jb29yZHMsai5URCksKDA9PT1oLmJ1dHRvbnx8dGhp''@;'; + put 'put ''cy50b3VjaEFwcGxpZWQpJiZqLlREJiYodi5kYmxDbGlja09yaWdpblswXT1qLlRELGNsZWFyVGltZW91dCh2LmRibENsaWNrVGltZW91dFswXSksdi5kYmxDbGlja1RpbWVvdXRbMF09c2V0VGltZW91dChmdW5jdGlvbigpe3YuZGJsQ2xpY2tPcmlnaW5bMF09bnVsbH0sMWUzKSl9fX0se2tl''@;'; + put 'put ''eToib25Db250ZXh0TWVudSIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYodGhpcy53dFNldHRpbmdzLmhhcygib25DZWxsQ29udGV4dE1lbnUiKSl7dmFyIHY9dGhpcy5wYXJlbnRDZWxsKGgudGFyZ2V0KTt2LlREJiZ0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsQ29udGV4dE1lbnUiLGgsdi5jb29y''@;'; + put 'put ''ZHMsdi5URCl9fX0se2tleToib25Nb3VzZU92ZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKHRoaXMud3RTZXR0aW5ncy5oYXMoIm9uQ2VsbE1vdXNlT3ZlciIpKXt2YXIgdj10aGlzLnd0VGFibGUuVEFCTEUseT1SWihoLnRhcmdldCxbIlREIiwiVEgiXSx2KSxDPXRoaXMucGFyZW50fHx0aGlz''@;'; + put 'put ''O3kmJnkhPT1DLmxhc3RNb3VzZU92ZXImJnd3KHksdikmJihDLmxhc3RNb3VzZU92ZXI9eSx0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsTW91c2VPdmVyIixoLHRoaXMud3RUYWJsZS5nZXRDb29yZHMoeSkseSkpfX19LHtrZXk6Im9uTW91c2VPdXQiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKHRo''@;'; + put 'put ''aXMud3RTZXR0aW5ncy5oYXMoIm9uQ2VsbE1vdXNlT3V0Iikpe3ZhciB2PXRoaXMud3RUYWJsZS5UQUJMRSx5PVJaKGgudGFyZ2V0LFsiVEQiLCJUSCJdLHYpLEM9UlooaC5yZWxhdGVkVGFyZ2V0LFsiVEQiLCJUSCJdLHYpO3kmJnkhPT1DJiZ3dyh5LHYpJiZ0aGlzLmNhbGxMaXN0ZW5lcigi''@;'; + put 'put ''b25DZWxsTW91c2VPdXQiLGgsdGhpcy53dFRhYmxlLmdldENvb3Jkcyh5KSx5KX19fSx7a2V5OiJvbk1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWxPLmdldCh0aGlzKSx5PXRoaXMucGFyZW50Q2VsbChoLnRhcmdldCk7eS5URCYmdGhpcy53dFNldHRpbmdzLmhhcygib25DZWxs''@;'; + put 'put ''TW91c2VVcCIpJiZ0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsTW91c2VVcCIsaCx5LmNvb3Jkcyx5LlREKSwoMD09PWguYnV0dG9ufHx0aGlzLnRvdWNoQXBwbGllZCkmJih5LlREPT09di5kYmxDbGlja09yaWdpblswXSYmeS5URD09PXYuZGJsQ2xpY2tPcmlnaW5bMV0/KHRsKGgudGFyZ2V0''@;'; + put 'put ''LCJjb3JuZXIiKT90aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsQ29ybmVyRGJsQ2xpY2siLGgseS5jb29yZHMseS5URCk6dGhpcy5jYWxsTGlzdGVuZXIoIm9uQ2VsbERibENsaWNrIixoLHkuY29vcmRzLHkuVEQpLHYuZGJsQ2xpY2tPcmlnaW5bMF09bnVsbCx2LmRibENsaWNrT3JpZ2luWzFd''@;'; + put 'put ''PW51bGwpOnkuVEQ9PT12LmRibENsaWNrT3JpZ2luWzBdJiYodi5kYmxDbGlja09yaWdpblsxXT15LlRELGNsZWFyVGltZW91dCh2LmRibENsaWNrVGltZW91dFsxXSksdi5kYmxDbGlja1RpbWVvdXRbMV09c2V0VGltZW91dChmdW5jdGlvbigpe3YuZGJsQ2xpY2tPcmlnaW5bMV09bnVsbH0s''@;'; + put 'put ''NTAwKSkpfX0se2tleToib25Ub3VjaFN0YXJ0Iix2YWx1ZTpmdW5jdGlvbihoKXtsTy5nZXQodGhpcykuc2VsZWN0ZWRDZWxsQmVmb3JlVG91Y2hFbmQ9dGhpcy5zZWxlY3Rpb25zLmdldENlbGwoKS5jZWxsUmFuZ2UsdGhpcy50b3VjaEFwcGxpZWQ9ITAsdGhpcy5vbk1vdXNlRG93bihoKX19''@;'; + put 'put ''LHtrZXk6Im9uVG91Y2hFbmQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2LHk9aC50YXJnZXQsQz1udWxsPT09KHY9dGhpcy5wYXJlbnRDZWxsKHkpKXx8dm9pZCAwPT09dj92b2lkIDA6di5jb29yZHMsST1UbyhDKSYmQy5yb3c+PTAmJkMuY29sPj0wO2guY2FuY2VsYWJsZSYmSSYmdGhpcy53''@;'; + put 'put ''dFNldHRpbmdzLmdldFNldHRpbmcoImlzRGF0YVZpZXdJbnN0YW5jZSIpJiYoS2hlKCkmJih2YmUoKXx8QWJlKCkpJiZ0aGlzLnNlbGVjdGVkQ2VsbFdhc1RvdWNoZWQoeSkmJiFbIkEiLCJCVVRUT04iLCJJTlBVVCJdLmluY2x1ZGVzKHkudGFnTmFtZSk/aC5wcmV2ZW50RGVmYXVsdCgpOnRo''@;'; + put 'put ''aXMuc2VsZWN0ZWRDZWxsV2FzVG91Y2hlZCh5KXx8aC5wcmV2ZW50RGVmYXVsdCgpKSx0aGlzLm9uTW91c2VVcChoKSx0aGlzLnRvdWNoQXBwbGllZD0hMX19LHtrZXk6ImNhbGxMaXN0ZW5lciIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyl7dmFyIEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRp''@;'; + put 'put ''bmdQdXJlKGgpO0kmJkkodix5LEMsdGhpcy5mYWNhZGVHZXR0ZXIoKSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWxPLmdldCh0aGlzKTtjbGVhclRpbWVvdXQoaC5kYmxDbGlja1RpbWVvdXRbMF0pLGNsZWFyVGltZW91dChoLmRibENsaWNrVGltZW91dFsxXSks''@;'; + put 'put ''dGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveSgpfX1dKSxkfSgpO2NvbnN0IENfZT1RemU7ZnVuY3Rpb24ga19lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImlu''@;'; + put 'put ''IHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIEt6ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoLHYpeyhmdW5jdGlvbiBKemUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBh''@;'; + put 'put ''IGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5vZmZzZXQ9Zyx0aGlzLnRvdGFsPWgsdGhpcy5jb3VudFRIPXZ9cmV0dXJuIGZ1bmN0aW9uIFh6ZShkLGcsaCl7ZyYma19lKGQucHJvdG90eXBlLGcpLGgmJmtfZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90''@;'; + put 'put ''b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJvZmZzZXR0ZWQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoK3RoaXMub2Zmc2V0fX0se2tleToidW5PZmZzZXR0ZWQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoLXRoaXMub2Zmc2V0fX0se2tleToicmVuZGVyZWRUb1NvdXJj''@;'; + put 'put ''ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMub2Zmc2V0dGVkKGgpfX0se2tleToic291cmNlVG9SZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMudW5PZmZzZXR0ZWQoaCl9fSx7a2V5OiJvZmZzZXR0ZWRUSCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGgt''@;'; + put 'put ''dGhpcy5jb3VudFRIfX0se2tleToidW5PZmZzZXR0ZWRUSCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGgrdGhpcy5jb3VudFRIfX0se2tleToidmlzaWJsZVJvd0hlYWRlZENvbHVtblRvU291cmNlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5yZW5kZXJlZFRvU291''@;'; + put 'put ''cmNlKHRoaXMub2Zmc2V0dGVkVEgoaCkpfX0se2tleToic291cmNlQ29sdW1uVG9WaXNpYmxlUm93SGVhZGVkQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy51bk9mZnNldHRlZFRIKHRoaXMuc291cmNlVG9SZW5kZXJlZChoKSl9fV0pLGR9KCk7Y29uc3QgJHplPUt6ZTtm''@;'; + put 'put ''dW5jdGlvbiBTX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYp''@;'; + put 'put ''fX12YXIgdEdlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgsdil7KGZ1bmN0aW9uIHF6ZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLm9mZnNldD1nLHRoaXMu''@;'; + put 'put ''dG90YWw9aCx0aGlzLmNvdW50VEg9dn1yZXR1cm4gZnVuY3Rpb24gZUdlKGQsZyxoKXtnJiZTX2UoZC5wcm90b3R5cGUsZyksaCYmU19lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6Im9mZnNldHRlZCIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oaCl7cmV0dXJuIGgrdGhpcy5vZmZzZXR9fSx7a2V5OiJ1bk9mZnNldHRlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGgtdGhpcy5vZmZzZXR9fSx7a2V5OiJyZW5kZXJlZFRvU291cmNlIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5vZmZzZXR0ZWQoaCl9fSx7a2V5''@;'; + put 'put ''OiJzb3VyY2VUb1JlbmRlcmVkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy51bk9mZnNldHRlZChoKX19LHtrZXk6Im9mZnNldHRlZFRIIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gaC10aGlzLmNvdW50VEh9fSx7a2V5OiJ1bk9mZnNldHRlZFRIIix2YWx1ZTpmdW5jdGlvbiho''@;'; + put 'put ''KXtyZXR1cm4gaCt0aGlzLmNvdW50VEh9fSx7a2V5OiJ2aXNpYmxlQ29sSGVhZGVkUm93VG9Tb3VyY2VSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnJlbmRlcmVkVG9Tb3VyY2UodGhpcy5vZmZzZXR0ZWRUSChoKSl9fSx7a2V5OiJzb3VyY2VSb3dUb1Zpc2libGVDb2xIZWFk''@;'; + put 'put ''ZWRSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnVuT2Zmc2V0dGVkVEgodGhpcy5zb3VyY2VUb1JlbmRlcmVkKGgpKX19XSksZH0oKTtjb25zdCBuR2U9dEdlO2Z1bmN0aW9uIE1fZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVy''@;'; + put 'put ''YWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBFX2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0aW9uIGlHZShkLGcpe2lmKCEoZCBpbnN0''@;'; + put 'put ''YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmN1cnJlbnRTaXplPTAsdGhpcy5uZXh0U2l6ZT0wLHRoaXMuY3VycmVudE9mZnNldD0wLHRoaXMubmV4dE9mZnNldD0wfXJldHVybiBmdW5jdGlv''@;'; + put 'put ''biBvR2UoZCxnLGgpe2cmJk1fZShkLnByb3RvdHlwZSxnKSxoJiZNX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToic2V0U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jdXJyZW50U2l6ZT10aGlzLm5leHRTaXpl''@;'; + put 'put ''LHRoaXMubmV4dFNpemU9aH19LHtrZXk6InNldE9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jdXJyZW50T2Zmc2V0PXRoaXMubmV4dE9mZnNldCx0aGlzLm5leHRPZmZzZXQ9aH19XSksZH0oKTtmdW5jdGlvbiB4X2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFy''@;'; + put 'put ''IHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgc0dlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpeyhmdW5jdGlvbiBhR2Uo''@;'; + put 'put ''ZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5zaXplPW5ldyBFX2UsdGhpcy53b3JraW5nU3BhY2U9MCx0aGlzLnNoYXJlZFNpemU9bnVsbH1yZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24gbEdlKGQsZyxoKXtnJiZ4X2UoZC5wcm90b3R5cGUsZyksaCYmeF9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldFNpemUiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuc2l6ZS5zZXRTaXplKGgpfX0se2tleToi''@;'; + put 'put ''c2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnNpemUuc2V0T2Zmc2V0KGgpfX0se2tleToiZ2V0Vmlld1NpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l6ZX19LHtrZXk6ImlzU2hhcmVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXJlZFNpemUg''@;'; + put 'put ''aW5zdGFuY2VvZiBFX2V9fSx7a2V5OiJpc1BsYWNlT24iLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLndvcmtpbmdTcGFjZT09PWh9fSx7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMud29ya2luZ1NwYWNlPTEsaC53b3JraW5nU3BhY2U9Mix0aGlzLnNoYXJlZFNp''@;'; + put 'put ''emU9aC5nZXRWaWV3U2l6ZSgpfX0se2tleToicHJlcGVuZCIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy53b3JraW5nU3BhY2U9MixoLndvcmtpbmdTcGFjZT0xLHRoaXMuc2hhcmVkU2l6ZT1oLmdldFZpZXdTaXplKCl9fV0pLGR9KCk7ZnVuY3Rpb24gVF9lKGQsZyl7Zm9yKHZhciBoPTA7aDxn''@;'; + put 'put ''Lmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIElfZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQo''@;'; + put 'put ''ZyxoLHYpeyhmdW5jdGlvbiB1R2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5yb290Tm9kZT1nLHRoaXMubm9kZXNQb29sPWgsdGhpcy5zaXplU2V0PW5ldyBz''@;'; + put 'put ''R2UsdGhpcy5jaGlsZE5vZGVUeXBlPXYudG9VcHBlckNhc2UoKSx0aGlzLnZpc3VhbEluZGV4PTAsdGhpcy5jb2xsZWN0ZWROb2Rlcz1bXX1yZXR1cm4gZnVuY3Rpb24gY0dlKGQsZyxoKXtnJiZUX2UoZC5wcm90b3R5cGUsZyksaCYmVF9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQs''@;'; + put 'put ''InByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldFNpemUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnNpemVTZXQuc2V0U2l6ZShoKSx0aGlzfX0se2tleToic2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5zaXplU2V0LnNldE9mZnNl''@;'; + put 'put ''dChoKSx0aGlzfX0se2tleToiaXNTaGFyZWRWaWV3U2V0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNpemVTZXQuaXNTaGFyZWQoKX19LHtrZXk6ImdldE5vZGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoPHRoaXMuY29sbGVjdGVkTm9kZXMubGVuZ3RoP3RoaXMuY29sbGVj''@;'; + put 'put ''dGVkTm9kZXNbaF06bnVsbH19LHtrZXk6ImdldEN1cnJlbnROb2RlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuY29sbGVjdGVkTm9kZXMubGVuZ3RoO3JldHVybiBoPjA/dGhpcy5jb2xsZWN0ZWROb2Rlc1toLTFdOm51bGx9fSx7a2V5OiJnZXRSZW5kZXJlZENoaWxkQ291bnQiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5yb290Tm9kZSx2PXRoaXMuc2l6ZVNldCx5PTA7aWYodGhpcy5pc1NoYXJlZFZpZXdTZXQoKSlmb3IodmFyIEM9aC5maXJzdEVsZW1lbnRDaGlsZDtDOyl7aWYoQy50YWdOYW1lPT09dGhpcy5jaGlsZE5vZGVUeXBlKXkrPTE7ZWxzZSBpZih2Lmlz''@;'; + put 'put ''UGxhY2VPbigxKSlicmVhaztDPUMubmV4dEVsZW1lbnRTaWJsaW5nfWVsc2UgeT1oLmNoaWxkRWxlbWVudENvdW50O3JldHVybiB5fX0se2tleToic3RhcnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jb2xsZWN0ZWROb2Rlcy5sZW5ndGg9MCx0aGlzLnZpc3VhbEluZGV4PTA7Zm9yKHZhciBo''@;'; + put 'put ''PXRoaXMucm9vdE5vZGUsdj10aGlzLnNpemVTZXQseT10aGlzLmlzU2hhcmVkVmlld1NldCgpLEk9di5nZXRWaWV3U2l6ZSgpLm5leHRTaXplLGo9dGhpcy5nZXRSZW5kZXJlZENoaWxkQ291bnQoKTtqPEk7KXt2YXIgdWU9dGhpcy5ub2Rlc1Bvb2woKTsheXx8eSYmdi5pc1BsYWNlT24oMik/''@;'; + put 'put ''aC5hcHBlbmRDaGlsZCh1ZSk6aC5pbnNlcnRCZWZvcmUodWUsaC5maXJzdENoaWxkKSxqKz0xfWZvcih2YXIgX2U9eSYmdi5pc1BsYWNlT24oMSk7aj5JOyloLnJlbW92ZUNoaWxkKF9lP2guZmlyc3RDaGlsZDpoLmxhc3RDaGlsZCksai09MX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXt2YXIgaD10aGlzLnJvb3ROb2RlLHY9dGhpcy5zaXplU2V0LHk9dGhpcy52aXN1YWxJbmRleDt0aGlzLmlzU2hhcmVkVmlld1NldCgpJiZ2LmlzUGxhY2VPbigyKSYmKHkrPXYuc2hhcmVkU2l6ZS5uZXh0U2l6ZSk7dmFyIEM9aC5jaGlsZE5vZGVzW3ldO2lmKEMudGFnTmFtZSE9PXRo''@;'; + put 'put ''aXMuY2hpbGROb2RlVHlwZSl7dmFyIEk9dGhpcy5ub2Rlc1Bvb2woKTtoLnJlcGxhY2VDaGlsZChJLEMpLEM9SX10aGlzLmNvbGxlY3RlZE5vZGVzLnB1c2goQyksdGhpcy52aXN1YWxJbmRleCs9MX19LHtrZXk6ImVuZCIsdmFsdWU6ZnVuY3Rpb24oKXt9fV0pLGR9KCk7ZnVuY3Rpb24gVzNl''@;'; + put 'put ''KGQpe3JldHVybihXM2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rv''@;'; + put 'put ''cj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBmR2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBEX2Uo''@;'; + put 'put ''ZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBZ''@;'; + put 'put ''M2UoZCxnKXtyZXR1cm4oWTNlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gZ0dlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09VzNlKGcpfHwiZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBtR2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcg''@;'; + put 'put ''UmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBoZWUoZCl7cmV0dXJuKGhlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQo''@;'; + put 'put ''KTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBMX2U9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGRHZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBl''@;'; + put 'put ''eHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwi''@;'; + put 'put ''cHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZZM2UoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBwR2UoZCl7dmFyIGc9ZnVuY3Rpb24gdkdlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0''@;'; + put 'put ''dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciB5LHY9aGVlKGQpO2lmKGcpe3ZhciBDPWhlZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZ0dlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJu''@;'; + put 'put ''IGZHZSh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiBoR2UoZCxnLGgpe2cmJkRfZShkLnByb3RvdHlwZSxnKSxoJiZEX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToicHJlcGVu''@;'; + put 'put ''ZFZpZXciLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiB0aGlzLnNpemVTZXQucHJlcGVuZCh5LnNpemVTZXQpLHkuc2l6ZVNldC5hcHBlbmQodGhpcy5zaXplU2V0KSx0aGlzfX0se2tleToiYXBwZW5kVmlldyIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHRoaXMuc2l6ZVNldC5hcHBlbmQo''@;'; + put 'put ''eS5zaXplU2V0KSx5LnNpemVTZXQucHJlcGVuZCh0aGlzLnNpemVTZXQpLHRoaXN9fV0pLGh9KElfZSk7ZnVuY3Rpb24gT19lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAs''@;'; + put 'put ''InZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIHdHZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIEFHZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBj''@;'; + put 'put ''YWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLm5vZGVUeXBlPWcudG9VcHBlckNhc2UoKX1yZXR1cm4gZnVuY3Rpb24geUdlKGQsZyxoKXtnJiZPX2UoZC5wcm90b3R5cGUsZyksaCYmT19lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIs''@;'; + put 'put ''e3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldFJvb3REb2N1bWVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5yb290RG9jdW1lbnQ9aH19LHtrZXk6Im9idGFpbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLm5vZGVUeXBl''@;'; + put 'put ''KX19XSksZH0oKTtmdW5jdGlvbiBSX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShkLHYua2V5LHYpfX12YXIgWVo9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIGJHZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLm5vZGVz''@;'; + put 'put ''UG9vbD0ic3RyaW5nIj09dHlwZW9mIGc/bmV3IHdHZShnKTpudWxsLHRoaXMubm9kZVR5cGU9Zyx0aGlzLnJvb3ROb2RlPWgsdGhpcy50YWJsZT1udWxsLHRoaXMucmVuZGVyZWROb2Rlcz0wfXJldHVybiBmdW5jdGlvbiBfR2UoZCxnLGgpe2cmJlJfZShkLnByb3RvdHlwZSxnKSxoJiZSX2Uo''@;'; + put 'put ''ZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToic2V0VGFibGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMubm9kZXNQb29sJiZ0aGlzLm5vZGVzUG9vbC5zZXRSb290RG9jdW1lbnQoaC5yb290RG9jdW1lbnQpLHRoaXMudGFi''@;'; + put 'put ''bGU9aH19LHtrZXk6ImFkanVzdCIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7fX1dKSxkfSgpO2Z1bmN0aW9uIFUzZShkKXtyZXR1cm4oVTNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJh''@;'; + put 'put ''dG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gQl9lKGQs''@;'; + put 'put ''Zyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gUTNl''@;'; + put 'put ''KGQsZyl7cmV0dXJuKFEzZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEVHZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PVUzZShnKXx8ImZ1bmN0aW9u''@;'; + put 'put ''Ij09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24geEdlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJl''@;'; + put 'put ''ZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gZGVlKGQpe3JldHVybihkZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6''@;'; + put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgSUdlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBTR2UoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhw''@;'; + put 'put ''cmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInBy''@;'; + put 'put ''b3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmUTNlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gTUdlKGQpe3ZhciBnPWZ1bmN0aW9uIFRHZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVy''@;'; + put 'put ''biExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24oKXt2YXIgeSx2PWRlZShkKTtpZihnKXt2YXIgQz1kZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEVHZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3ZhciB2O3Jl''@;'; + put 'put ''dHVybiBmdW5jdGlvbiBDR2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwodj1nLmNhbGwodGhpcywiVEgiKSkub3JkZXJWaWV3cz1uZXcgV2Vha01hcCx2LnNvdXJjZVJv''@;'; + put 'put ''d0luZGV4PTAsdn1yZXR1cm4gZnVuY3Rpb24ga0dlKGQsZyxoKXtnJiZCX2UoZC5wcm90b3R5cGUsZyksaCYmQl9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6Im9idGFpbk9yZGVyVmlldyIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''eSl7dmFyIEksQz10aGlzO3JldHVybiB0aGlzLm9yZGVyVmlld3MuaGFzKHkpP0k9dGhpcy5vcmRlclZpZXdzLmdldCh5KTooST1uZXcgTF9lKHksZnVuY3Rpb24oail7cmV0dXJuIEMubm9kZXNQb29sLm9idGFpbihDLnNvdXJjZVJvd0luZGV4LGopfSx0aGlzLm5vZGVUeXBlKSx0aGlzLm9y''@;'; + put 'put ''ZGVyVmlld3Muc2V0KHksSSkpLEl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PXRoaXMudGFibGUsQz15LnJvd3NUb1JlbmRlcixJPXkucm93SGVhZGVyRnVuY3Rpb25zLGo9eS5yb3dIZWFkZXJzQ291bnQsdWU9eS5yb3dzLF9lPXkuY2VsbHMsQmU9MDtCZTxD''@;'; + put 'put ''O0JlKyspe3ZhciBOZT10aGlzLnRhYmxlLnJlbmRlcmVkUm93VG9Tb3VyY2UoQmUpLEtlPXVlLmdldFJlbmRlcmVkTm9kZShCZSk7dGhpcy5zb3VyY2VSb3dJbmRleD1OZTt2YXIgZHQ9dGhpcy5vYnRhaW5PcmRlclZpZXcoS2UpLE90PV9lLm9idGFpbk9yZGVyVmlldyhLZSk7ZHQuYXBwZW5k''@;'; + put 'put ''VmlldyhPdCkuc2V0U2l6ZShqKS5zZXRPZmZzZXQodGhpcy50YWJsZS5yZW5kZXJlZENvbHVtblRvU291cmNlKDApKS5zdGFydCgpO2Zvcih2YXIgJHQ9MDskdDxqOyR0Kyspe2R0LnJlbmRlcigpO3ZhciBmbj1kdC5nZXRDdXJyZW50Tm9kZSgpO2ZuLmNsYXNzTmFtZT0iIixmbi5yZW1vdmVB''@;'; + put 'put ''dHRyaWJ1dGUoInN0eWxlIiksSVskdF0oTmUsZm4sJHQpfWR0LmVuZCgpfX19XSksaH0oWVopO2Z1bmN0aW9uIEozZShkKXtyZXR1cm4oSjNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBl''@;'; + put 'put ''b2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gUF9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDto''@;'; + put 'put ''Kyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gWDNlKGQsZyl7cmV0dXJuKFgzZT1PYmplY3Quc2V0''@;'; + put 'put ''UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEJHZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PUozZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZv''@;'; + put 'put ''aWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gUEdlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBi''@;'; + put 'put ''ZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gcGVlKGQpe3JldHVybihwZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90''@;'; + put 'put ''b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgSEdlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBPR2UoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxs''@;'; + put 'put ''IG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYm''@;'; + put 'put ''WDNlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gUkdlKGQpe3ZhciBnPWZ1bmN0aW9uIEZHZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQ''@;'; + put 'put ''cm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PXBlZShkKTtpZihnKXt2''@;'; + put 'put ''YXIgQz1wZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEJHZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXtyZXR1cm4gZnVuY3Rpb24gREdlKGQsZyl7aWYoIShkIGlu''@;'; + put 'put ''c3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZy5jYWxsKHRoaXMsbnVsbCx2KX1yZXR1cm4gZnVuY3Rpb24gTEdlKGQsZyxoKXtnJiZQX2UoZC5wcm90b3R5cGUsZyksaCYmUF9lKGQsaCksT2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImFkanVzdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnRhYmxlLEM9eS5jb2x1bW5IZWFkZXJzQ291bnQsaj10aGlzLnJvb3ROb2RlLmZpcnN0Q2hpbGQ7aWYoQyl7Zm9yKHZhciBfZT10''@;'; + put 'put ''aGlzLnRhYmxlLmNvbHVtbnNUb1JlbmRlcit5LnJvd0hlYWRlcnNDb3VudCxCZT0wLE5lPUM7QmU8TmU7QmUrKyl7Zm9yKChqPXRoaXMucm9vdE5vZGUuY2hpbGROb2Rlc1tCZV0pfHwoaj10aGlzLnRhYmxlLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpLHRoaXMucm9vdE5vZGUu''@;'; + put 'put ''YXBwZW5kQ2hpbGQoaikpLHRoaXMucmVuZGVyZWROb2Rlcz1qLmNoaWxkTm9kZXMubGVuZ3RoO3RoaXMucmVuZGVyZWROb2RlczxfZTspai5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0aCIpKSx0aGlzLnJlbmRlcmVkTm9kZXMrPTE7Zm9yKDt0''@;'; + put 'put ''aGlzLnJlbmRlcmVkTm9kZXM+X2U7KWoucmVtb3ZlQ2hpbGQoai5sYXN0Q2hpbGQpLHRoaXMucmVuZGVyZWROb2Rlcy09MX12YXIgS2U9dGhpcy5yb290Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aDtpZihLZT5DKWZvcih2YXIgZHQ9QztkdDxLZTtkdCsrKXRoaXMucm9vdE5vZGUucmVtb3ZlQ2hp''@;'; + put 'put ''bGQodGhpcy5yb290Tm9kZS5sYXN0Q2hpbGQpfWVsc2UgaiYmRHAoail9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PXRoaXMudGFibGUuY29sdW1uSGVhZGVyc0NvdW50LEM9MDtDPHk7Qys9MSlmb3IodmFyIEk9dGhpcy50YWJsZSxqPUkuY29sdW1uSGVhZGVy''@;'; + put 'put ''RnVuY3Rpb25zLHVlPUkuY29sdW1uc1RvUmVuZGVyLF9lPUkucm93SGVhZGVyc0NvdW50LEJlPXRoaXMucm9vdE5vZGUuY2hpbGROb2Rlc1tDXSxOZT0tMSpfZTtOZTx1ZTtOZSs9MSl7dmFyIEtlPXRoaXMudGFibGUucmVuZGVyZWRDb2x1bW5Ub1NvdXJjZShOZSksZHQ9QmUuY2hpbGROb2Rl''@;'; + put 'put ''c1tOZStfZV07ZHQuY2xhc3NOYW1lPSIiLGR0LnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSxqW0NdKEtlLGR0LEMpfX19XSksaH0oWVopO2Z1bmN0aW9uIEszZShkKXtyZXR1cm4oSzNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9y''@;'; + put 'put ''P2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gRl9lKGQsZyl7''@;'; + put 'put ''Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gJDNlKGQs''@;'; + put 'put ''Zyl7cmV0dXJuKCQzZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIHpHZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PUszZShnKXx8ImZ1bmN0aW9uIj09''@;'; + put 'put ''dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gR0dlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVy''@;'; + put 'put ''ZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gZ2VlKGQpe3JldHVybihnZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVu''@;'; + put 'put ''Y3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgSF9lLFlHZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gakdlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4''@;'; + put 'put ''cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJw''@;'; + put 'put ''cm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJiQzZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIFpHZShkKXt2YXIgZz1mdW5jdGlvbiBXR2UoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1''@;'; + put 'put ''cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIHksdj1nZWUoZCk7aWYoZyl7dmFyIEM9Z2VlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB6R2UodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7cmV0dXJu''@;'; + put 'put ''IGZ1bmN0aW9uIE5HZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGcuY2FsbCh0aGlzLG51bGwsdil9cmV0dXJuIGZ1bmN0aW9uIFZHZShkLGcsaCl7ZyYmRl9lKGQucHJv''@;'; + put 'put ''dG90eXBlLGcpLGgmJkZfZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJhZGp1c3QiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PXRoaXMudGFibGUsaj15LmNvbHVtbnNUb1JlbmRlcit5LnJvd0hlYWRlcnNDb3Vu''@;'; + put 'put ''dDt0aGlzLnJlbmRlcmVkTm9kZXM8ajspdGhpcy5yb290Tm9kZS5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjb2wiKSksdGhpcy5yZW5kZXJlZE5vZGVzKz0xO2Zvcig7dGhpcy5yZW5kZXJlZE5vZGVzPmo7KXRoaXMucm9vdE5vZGUucmVtb3Zl''@;'; + put 'put ''Q2hpbGQodGhpcy5yb290Tm9kZS5sYXN0Q2hpbGQpLHRoaXMucmVuZGVyZWROb2Rlcy09MX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmFkanVzdCgpO2Zvcih2YXIgeT10aGlzLnRhYmxlLEM9eS5jb2x1bW5zVG9SZW5kZXIsST15LnJvd0hlYWRlcnNDb3VudCxqPTA7''@;'; + put 'put ''ajxJO2orKyl7dmFyIHVlPXRoaXMudGFibGUucmVuZGVyZWRDb2x1bW5Ub1NvdXJjZShqKSxfZT10aGlzLnRhYmxlLmNvbHVtblV0aWxzLmdldEhlYWRlcldpZHRoKHVlKTt0aGlzLnJvb3ROb2RlLmNoaWxkTm9kZXNbal0uc3R5bGUud2lkdGg9IiIuY29uY2F0KF9lLCJweCIpfWZvcih2YXIg''@;'; + put 'put ''QmU9MDtCZTxDO0JlKyspe3ZhciBOZT10aGlzLnRhYmxlLnJlbmRlcmVkQ29sdW1uVG9Tb3VyY2UoQmUpLEtlPXRoaXMudGFibGUuY29sdW1uVXRpbHMuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoTmUpO3RoaXMucm9vdE5vZGUuY2hpbGROb2Rlc1tCZStJXS5zdHlsZS53aWR0aD0iIi5jb25j''@;'; + put 'put ''YXQoS2UsInB4Iil9dmFyIGR0PXRoaXMucm9vdE5vZGUuZmlyc3RDaGlsZDtkdCYmTzAoZHQsInJvd0hlYWRlciIpfX1dKSxofShZWik7ZnVuY3Rpb24gcTNlKGQpe3JldHVybihxM2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/''@;'; + put 'put ''ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBOX2UoZCxnKXtm''@;'; + put 'put ''b3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBlZGUoZCxn''@;'; + put 'put ''KXtyZXR1cm4oZWRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gJEdlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09cTNlKGcpfHwiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBxR2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJl''@;'; + put 'put ''bmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBtZWUoZCl7cmV0dXJuKG1lZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5j''@;'; + put 'put ''dGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBWX2U9ITEsdFdlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBYR2UoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIg''@;'; + put 'put ''ZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQs''@;'; + put 'put ''InByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmZWRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gS0dlKGQpe3ZhciBnPWZ1bmN0aW9uIGVXZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJl''@;'; + put 'put ''dHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgeSx2PW1lZShkKTtpZihnKXt2YXIgQz1tZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuICRHZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIg''@;'; + put 'put ''eTtyZXR1cm4gZnVuY3Rpb24gUUdlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsIlRSIix2KSkub3JkZXJWaWV3PW5ldyBJX2UodixmdW5jdGlv''@;'; + put 'put ''bihDKXtyZXR1cm4geS5ub2Rlc1Bvb2wub2J0YWluKEMpfSx5Lm5vZGVUeXBlKSx5fXJldHVybiBmdW5jdGlvbiBKR2UoZCxnLGgpe2cmJk5fZShkLnByb3RvdHlwZSxnKSxoJiZOX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxb''@;'; + put 'put ''e2tleToiZ2V0UmVuZGVyZWROb2RlIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gdGhpcy5vcmRlclZpZXcuZ2V0Tm9kZSh5KX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnRhYmxlLnJvd3NUb1JlbmRlcjshVl9lJiZ5PjFlMyYmKFZfZT0hMCxsMShCMihI''@;'; + put 'put ''X2V8fChIX2U9ZnVuY3Rpb24gVUdlKGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX0oWydQZXJmb3JtYW5jZSB0aXA6IEhhbmRzb250YWJsZSByZW5kZXJl''@;'; + put 'put ''ZCBtb3JlIHRoYW4gMTAwMCB2aXNpYmxlIHJvd3MuIENvbnNpZGVyIGxpbWl0aW5nIFxuICAgICAgICB0aGUgbnVtYmVyIG9mIHJlbmRlcmVkIHJvd3MgYnkgc3BlY2lmeWluZyB0aGUgdGFibGUgaGVpZ2h0IGFuZC9vciB0dXJuaW5nIG9mZiB0aGUgInJlbmRlckFsbFJvd3MiIG9wdGlvbi4n''@;'; + put 'put ''XSxbJ1BlcmZvcm1hbmNlIHRpcDogSGFuZHNvbnRhYmxlIHJlbmRlcmVkIG1vcmUgdGhhbiAxMDAwIHZpc2libGUgcm93cy4gQ29uc2lkZXIgbGltaXRpbmdcXHgyMFxuICAgICAgICB0aGUgbnVtYmVyIG9mIHJlbmRlcmVkIHJvd3MgYnkgc3BlY2lmeWluZyB0aGUgdGFibGUgaGVpZ2h0IGFu''@;'; + put 'put ''ZC9vciB0dXJuaW5nIG9mZiB0aGUgInJlbmRlckFsbFJvd3MiIG9wdGlvbi4nXSkpKSkpLHRoaXMub3JkZXJWaWV3LnNldFNpemUoeSkuc2V0T2Zmc2V0KHRoaXMudGFibGUucmVuZGVyZWRSb3dUb1NvdXJjZSgwKSkuc3RhcnQoKTtmb3IodmFyIEM9MDtDPHk7QysrKXRoaXMub3JkZXJWaWV3''@;'; + put 'put ''LnJlbmRlcigpO3RoaXMub3JkZXJWaWV3LmVuZCgpfX1dKSxofShZWik7ZnVuY3Rpb24gdGRlKGQpe3JldHVybih0ZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlv''@;'; + put 'put ''bihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBqX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1to''@;'; + put 'put ''XTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBuZGUoZCxnKXtyZXR1cm4obmRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9P''@;'; + put 'put ''YmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gYVdlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09dGRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJv''@;'; + put 'put ''dyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBsV2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlz''@;'; + put 'put ''ZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiB2ZWUoZCl7cmV0dXJuKHZlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5n''@;'; + put 'put ''ZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciB1V2U9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGlXZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlv''@;'; + put 'put ''biIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZuZGUoZCxnKX0oaCxk''@;'; + put 'put ''KTt2YXIgZz1mdW5jdGlvbiBvV2UoZCl7dmFyIGc9ZnVuY3Rpb24gc1dlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEw''@;'; + put 'put ''O3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9dmVlKGQpO2lmKGcpe3ZhciBDPXZlZSh0aGlz''@;'; + put 'put ''KS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYVdlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7dmFyIHY7cmV0dXJuIGZ1bmN0aW9uIG5XZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9m''@;'; + put 'put ''IGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh2PWcuY2FsbCh0aGlzLCJURCIpKS5vcmRlclZpZXdzPW5ldyBXZWFrTWFwLHYuc291cmNlUm93SW5kZXg9MCx2fXJldHVybiBmdW5jdGlvbiByV2UoZCxnLGgpe2cm''@;'; + put 'put ''JmpfZShkLnByb3RvdHlwZSxnKSxoJiZqX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToib2J0YWluT3JkZXJWaWV3Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgSSxDPXRoaXM7cmV0dXJuIHRoaXMub3JkZXJWaWV3cy5o''@;'; + put 'put ''YXMoeSk/ST10aGlzLm9yZGVyVmlld3MuZ2V0KHkpOihJPW5ldyBMX2UoeSxmdW5jdGlvbihqKXtyZXR1cm4gQy5ub2Rlc1Bvb2wub2J0YWluKEMuc291cmNlUm93SW5kZXgsail9LHRoaXMubm9kZVR5cGUpLHRoaXMub3JkZXJWaWV3cy5zZXQoeSxJKSksSX19LHtrZXk6InJlbmRlciIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9dGhpcy50YWJsZSxDPXkucm93c1RvUmVuZGVyLEk9eS5jb2x1bW5zVG9SZW5kZXIsaj15LnJvd3MsdWU9eS5yb3dIZWFkZXJzLF9lPTA7X2U8QztfZSsrKXt2YXIgQmU9dGhpcy50YWJsZS5yZW5kZXJlZFJvd1RvU291cmNlKF9lKSxOZT1qLmdldFJl''@;'; + put 'put ''bmRlcmVkTm9kZShfZSk7dGhpcy5zb3VyY2VSb3dJbmRleD1CZTt2YXIgS2U9dGhpcy5vYnRhaW5PcmRlclZpZXcoTmUpLGR0PXVlLm9idGFpbk9yZGVyVmlldyhOZSk7S2UucHJlcGVuZFZpZXcoZHQpLnNldFNpemUoSSkuc2V0T2Zmc2V0KHRoaXMudGFibGUucmVuZGVyZWRDb2x1bW5Ub1Nv''@;'; + put 'put ''dXJjZSgwKSkuc3RhcnQoKTtmb3IodmFyIE90PTA7T3Q8STtPdCsrKXtLZS5yZW5kZXIoKTt2YXIgJHQ9S2UuZ2V0Q3VycmVudE5vZGUoKSxmbj10aGlzLnRhYmxlLnJlbmRlcmVkQ29sdW1uVG9Tb3VyY2UoT3QpO3RsKCR0LCJoaWRlIil8fCgkdC5jbGFzc05hbWU9IiIpLCR0LnJlbW92ZUF0''@;'; + put 'put ''dHJpYnV0ZSgic3R5bGUiKSwkdC5yZW1vdmVBdHRyaWJ1dGUoImRpciIpLHRoaXMudGFibGUuY2VsbFJlbmRlcmVyKEJlLGZuLCR0KX1LZS5lbmQoKX19fV0pLGh9KFlaKTtmdW5jdGlvbiBjV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3Qg''@;'; + put 'put ''Y2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBaX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgaFdlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sdj1oLmNlbGxSZW5kZXJlcjtjV2UodGhpcyxkKSx0aGlzLnJv''@;'; + put 'put ''b3ROb2RlPWcsdGhpcy5yb290RG9jdW1lbnQ9dGhpcy5yb290Tm9kZS5vd25lckRvY3VtZW50LHRoaXMucm93SGVhZGVycz1udWxsLHRoaXMuY29sdW1uSGVhZGVycz1udWxsLHRoaXMuY29sR3JvdXA9bnVsbCx0aGlzLnJvd3M9bnVsbCx0aGlzLmNlbGxzPW51bGwsdGhpcy5yb3dGaWx0ZXI9''@;'; + put 'put ''bnVsbCx0aGlzLmNvbHVtbkZpbHRlcj1udWxsLHRoaXMucm93VXRpbHM9bnVsbCx0aGlzLmNvbHVtblV0aWxzPW51bGwsdGhpcy5yb3dzVG9SZW5kZXI9MCx0aGlzLmNvbHVtbnNUb1JlbmRlcj0wLHRoaXMucm93SGVhZGVyRnVuY3Rpb25zPVtdLHRoaXMucm93SGVhZGVyc0NvdW50PTAsdGhp''@;'; + put 'put ''cy5jb2x1bW5IZWFkZXJGdW5jdGlvbnM9W10sdGhpcy5jb2x1bW5IZWFkZXJzQ291bnQ9MCx0aGlzLmNlbGxSZW5kZXJlcj12fXJldHVybiBmdW5jdGlvbiBmV2UoZCxnLGgpe2cmJlpfZShkLnByb3RvdHlwZSxnKSxoJiZaX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90''@;'; + put 'put ''eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToic2V0QXhpc1V0aWxzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMucm93VXRpbHM9aCx0aGlzLmNvbHVtblV0aWxzPXZ9fSx7a2V5OiJzZXRWaWV3cG9ydFNpemUiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dGhpcy5yb3dzVG9SZW5kZXI9aCx0''@;'; + put 'put ''aGlzLmNvbHVtbnNUb1JlbmRlcj12fX0se2tleToic2V0RmlsdGVycyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLnJvd0ZpbHRlcj1oLHRoaXMuY29sdW1uRmlsdGVyPXZ9fSx7a2V5OiJzZXRIZWFkZXJDb250ZW50UmVuZGVyZXJzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMucm93SGVh''@;'; + put 'put ''ZGVyRnVuY3Rpb25zPWgsdGhpcy5yb3dIZWFkZXJzQ291bnQ9aC5sZW5ndGgsdGhpcy5jb2x1bW5IZWFkZXJGdW5jdGlvbnM9dix0aGlzLmNvbHVtbkhlYWRlcnNDb3VudD12Lmxlbmd0aH19LHtrZXk6InNldFJlbmRlcmVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVu''@;'; + put 'put ''Z3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sdj1oLnJvd0hlYWRlcnMseT1oLmNvbHVtbkhlYWRlcnMsQz1oLmNvbEdyb3VwLEk9aC5yb3dzLGo9aC5jZWxsczt2LnNldFRhYmxlKHRoaXMpLHkuc2V0VGFibGUodGhpcyksQy5zZXRUYWJsZSh0aGlzKSxJLnNl''@;'; + put 'put ''dFRhYmxlKHRoaXMpLGouc2V0VGFibGUodGhpcyksdGhpcy5yb3dIZWFkZXJzPXYsdGhpcy5jb2x1bW5IZWFkZXJzPXksdGhpcy5jb2xHcm91cD1DLHRoaXMucm93cz1JLHRoaXMuY2VsbHM9an19LHtrZXk6InJlbmRlcmVkUm93VG9Tb3VyY2UiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0''@;'; + put 'put ''aGlzLnJvd0ZpbHRlci5yZW5kZXJlZFRvU291cmNlKGgpfX0se2tleToicmVuZGVyZWRDb2x1bW5Ub1NvdXJjZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1uRmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UoaCl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhp''@;'; + put 'put ''cy5jb2xHcm91cC5hZGp1c3QoKSx0aGlzLmNvbHVtbkhlYWRlcnMuYWRqdXN0KCksdGhpcy5yb3dzLmFkanVzdCgpLHRoaXMucm93SGVhZGVycy5hZGp1c3QoKSx0aGlzLmNvbHVtbkhlYWRlcnMucmVuZGVyKCksdGhpcy5yb3dzLnJlbmRlcigpLHRoaXMucm93SGVhZGVycy5yZW5kZXIoKSx0''@;'; + put 'put ''aGlzLmNlbGxzLnJlbmRlcigpLHRoaXMuY29sdW1uVXRpbHMuY2FsY3VsYXRlV2lkdGhzKCksdGhpcy5jb2xHcm91cC5yZW5kZXIoKTtmb3IodmFyIGg9dGhpcy5yb3dzVG9SZW5kZXIsdj10aGlzLnJvd3MseT0wO3k8aDt5Kyspe3ZhciBDPXYuZ2V0UmVuZGVyZWROb2RlKHkpO2lmKEMuZmly''@;'; + put 'put ''c3RDaGlsZCl7dmFyIEk9dGhpcy5yZW5kZXJlZFJvd1RvU291cmNlKHkpLGo9dGhpcy5yb3dVdGlscy5nZXRIZWlnaHQoSSk7Qy5maXJzdENoaWxkLnN0eWxlLmhlaWdodD1qPyIiLmNvbmNhdChqLTEsInB4Iik6IiJ9fX19XSksZH0oKTtmdW5jdGlvbiBkV2UoZCxnKXtpZighKGQgaW5zdGFu''@;'; + put 'put ''Y2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiB6X2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJs''@;'; + put 'put ''ZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgZ1dlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxo''@;'; + put 'put ''PWcuVEFCTEUsdj1nLlRIRUFELHk9Zy5DT0xHUk9VUCxDPWcuVEJPRFksST1nLnJvd1V0aWxzLGo9Zy5jb2x1bW5VdGlscyx1ZT1nLmNlbGxSZW5kZXJlcjtkV2UodGhpcyxkKSx0aGlzLnJlbmRlcmVyPW5ldyBoV2UoaCx7Y2VsbFJlbmRlcmVyOnVlfSksdGhpcy5yZW5kZXJlci5zZXRSZW5k''@;'; + put 'put ''ZXJlcnMoe3Jvd0hlYWRlcnM6bmV3IElHZSxjb2x1bW5IZWFkZXJzOm5ldyBIR2UodiksY29sR3JvdXA6bmV3IFlHZSh5KSxyb3dzOm5ldyB0V2UoQyksY2VsbHM6bmV3IHVXZX0pLHRoaXMucmVuZGVyZXIuc2V0QXhpc1V0aWxzKEksail9cmV0dXJuIGZ1bmN0aW9uIHBXZShkLGcsaCl7ZyYm''@;'; + put 'put ''el9lKGQucHJvdG90eXBlLGcpLGgmJnpfZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRGaWx0ZXJzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLnJlbmRlcmVyLnNldEZpbHRlcnMoaCx2KSx0aGlz''@;'; + put 'put ''fX0se2tleToic2V0Vmlld3BvcnRTaXplIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLnJlbmRlcmVyLnNldFZpZXdwb3J0U2l6ZShoLHYpLHRoaXN9fSx7a2V5OiJzZXRIZWFkZXJDb250ZW50UmVuZGVyZXJzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLnJlbmRl''@;'; + put 'put ''cmVyLnNldEhlYWRlckNvbnRlbnRSZW5kZXJlcnMoaCx2KSx0aGlzfX0se2tleToiYWRqdXN0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucmVuZGVyZXIuYWRqdXN0KCl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yZW5kZXJlci5yZW5kZXIoKX19XSksZH0oKTtmdW5j''@;'; + put 'put ''dGlvbiBHX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12''@;'; + put 'put ''YXIgQVdlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBtV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5kYXRhQWNjZXNzT2JqZWN0PWcs''@;'; + put 'put ''dGhpcy53dFNldHRpbmdzPWgsdGhpcy5oZWFkZXJXaWR0aHM9bmV3IE1hcH1yZXR1cm4gZnVuY3Rpb24gdldlKGQsZyxoKXtnJiZHX2UoZC5wcm90b3R5cGUsZyksaCYmR19lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6''@;'; + put 'put ''ImdldFdpZHRoIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbldpZHRoIixoKXx8dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImRlZmF1bHRDb2x1bW5XaWR0aCIpfX0se2tleToiZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLHk9dGhpcy5nZXRXaWR0aChoKTtpZih2KXt2YXIgQz12LmdldFN0cmV0Y2hlZENvbHVtbldpZHRoKGgseSk7QyYmKHk9Qyl9cmV0dXJuIHl9fSx7a2V5''@;'; + put 'put ''OiJnZXRIZWFkZXJIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJkZWZhdWx0Um93SGVpZ2h0IikseT10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRDb2x1bW5IZWFkZXJzW2hdO3JldHVybiB2b2lkIDAh''@;'; + put 'put ''PT15JiYodj12P01hdGgubWF4KHYseSk6eSksdn19LHtrZXk6ImdldEhlYWRlcldpZHRoIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5oZWFkZXJXaWR0aHMuZ2V0KHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFRhYmxlLmNvbHVtbkZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKGgpKX19''@;'; + put 'put ''LHtrZXk6ImNhbGN1bGF0ZVdpZHRocyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnd0U2V0dGluZ3Msdj10aGlzLmRhdGFBY2Nlc3NPYmplY3QsQz12Lnd0Vmlld3BvcnQsST12LmNsb25lU291cmNlLGo9ST9JLnd0VGFibGUuaG9sZGVyOnYud3RUYWJsZS5ob2xkZXIsdWU9ai5vZmZz''@;'; + put 'put ''ZXRIZWlnaHQ8ai5zY3JvbGxIZWlnaHQ/QmMoKTowLF9lPWguZ2V0U2V0dGluZygicm93SGVhZGVyV2lkdGgiKTtpZihDLmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLnJlZnJlc2hTdHJldGNoaW5nKEMuZ2V0Vmlld3BvcnRXaWR0aCgpLXVlKSxudWxsIT0oX2U9aC5nZXRTZXR0aW5nKCJvbk1v''@;'; + put 'put ''ZGlmeVJvd0hlYWRlcldpZHRoIixfZSkpKWZvcih2YXIgQmU9aC5nZXRTZXR0aW5nKCJyb3dIZWFkZXJzIikubGVuZ3RoLE5lPWguZ2V0U2V0dGluZygiZGVmYXVsdENvbHVtbldpZHRoIiksS2U9MDtLZTxCZTtLZSsrKXt2YXIgZHQ9QXJyYXkuaXNBcnJheShfZSk/X2VbS2VdOl9lO3RoaXMu''@;'; + put 'put ''aGVhZGVyV2lkdGhzLnNldChLZSxkdD1udWxsPT1kdD9OZTpkdCl9fX1dKSxkfSgpO2Z1bmN0aW9uIFdfZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2''@;'; + put 'put ''JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBiV2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIHlXZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xh''@;'; + put 'put ''c3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmRhdGFBY2Nlc3NPYmplY3Q9Zyx0aGlzLnd0U2V0dGluZ3M9aH1yZXR1cm4gZnVuY3Rpb24gd1dlKGQsZyxoKXtnJiZXX2UoZC5wcm90b3R5cGUsZyksaCYmV19lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlw''@;'; + put 'put ''ZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldEhlaWdodCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlaWdodCIsaCkseT10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRSb3dzW2hdO3JldHVybiB2''@;'; + put 'put ''b2lkIDAhPT15JiYodj12b2lkIDA9PT12P3k6TWF0aC5tYXgodix5KSksdn19XSksZH0oKSxDUz0idG9wIixFZz0iYm90dG9tIixrUz0iaW5saW5lX3N0YXJ0IixTUz0idG9wX2lubGluZV9zdGFydF9jb3JuZXIiLE13PSJib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lciIsX1dlPVtDUyxFZyxr''@;'; + put 'put ''UyxTUyxNd10sQ1dlPW5ldyBNYXAoW1tDUywiaHRfY2xvbmVfIi5jb25jYXQoQ1MpXSxbRWcsImh0X2Nsb25lXyIuY29uY2F0KEVnKV0sW2tTLCJodF9jbG9uZV8iLmNvbmNhdChrUywiIGh0X2Nsb25lX2xlZnQiKV0sW1NTLCJodF9jbG9uZV8iLmNvbmNhdChTUywiIGh0X2Nsb25lX3RvcF9s''@;'; + put 'put ''ZWZ0X2Nvcm5lciIpXSxbTXcsImh0X2Nsb25lXyIuY29uY2F0KE13LCIgaHRfY2xvbmVfYm90dG9tX2xlZnRfY29ybmVyIildXSk7ZnVuY3Rpb24gWV9lKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiByZGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3Ry''@;'; + put 'put ''aW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMiko''@;'; + put 'put ''PzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHJkZShkLGcpfX1mdW5jdGlvbiByZGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBVX2Uo''@;'; + put 'put ''ZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB4''@;'; + put 'put ''ZyhkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9dmFyIFJXZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoLHYseSxDKXt2YXIgST10aGlzOyhm''@;'; + put 'put ''dW5jdGlvbiBMV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCkseGcodGhpcywid3RTZXR0aW5ncyIsbnVsbCkseGcodGhpcywiZG9tQmluZGluZ3MiLHZvaWQgMCkseGco''@;'; + put 'put ''dGhpcywiVEJPRFkiLG51bGwpLHhnKHRoaXMsIlRIRUFEIixudWxsKSx4Zyh0aGlzLCJDT0xHUk9VUCIsbnVsbCkseGcodGhpcywiaGFzVGFibGVIZWlnaHQiLCEwKSx4Zyh0aGlzLCJoYXNUYWJsZVdpZHRoIiwhMCkseGcodGhpcywiaXNUYWJsZVZpc2libGUiLCExKSx4Zyh0aGlzLCJ0YWJs''@;'; + put 'put ''ZU9mZnNldCIsMCkseGcodGhpcywiaG9sZGVyT2Zmc2V0IiwwKSx0aGlzLmRvbUJpbmRpbmdzPXYsdGhpcy5pc01hc3Rlcj0ibWFzdGVyIj09PUMsdGhpcy5uYW1lPUMsdGhpcy5kYXRhQWNjZXNzT2JqZWN0PWcsdGhpcy5mYWNhZGVHZXR0ZXI9aCx0aGlzLnd0U2V0dGluZ3M9eSx0aGlzLmlu''@;'; + put 'put ''c3RhbmNlPXRoaXMuZGF0YUFjY2Vzc09iamVjdC53b3QsdGhpcy53b3Q9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LndvdCx0aGlzLlRBQkxFPXYucm9vdFRhYmxlLGgzZSh0aGlzLlRBQkxFKSx0aGlzLnNwcmVhZGVyPXRoaXMuY3JlYXRlU3ByZWFkZXIodGhpcy5UQUJMRSksdGhpcy5oaWRlcj10''@;'; + put 'put ''aGlzLmNyZWF0ZUhpZGVyKHRoaXMuc3ByZWFkZXIpLHRoaXMuaG9sZGVyPXRoaXMuY3JlYXRlSG9sZGVyKHRoaXMuaGlkZXIpLHRoaXMud3RSb290RWxlbWVudD10aGlzLmhvbGRlci5wYXJlbnROb2RlLHRoaXMuaXNNYXN0ZXImJnRoaXMuYWxpZ25PdmVybGF5c1dpdGhUcmltbWluZ0NvbnRh''@;'; + put 'put ''aW5lcigpLHRoaXMuZml4VGFibGVEb21UcmVlKCksdGhpcy5yb3dGaWx0ZXI9bnVsbCx0aGlzLmNvbHVtbkZpbHRlcj1udWxsLHRoaXMuY29ycmVjdEhlYWRlcldpZHRoPSExO3ZhciBqPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nUHVyZSgicm93SGVhZGVyV2lkdGgiKTt0aGlzLnd0U2V0''@;'; + put 'put ''dGluZ3MudXBkYXRlKCJyb3dIZWFkZXJXaWR0aCIsZnVuY3Rpb24oKXtyZXR1cm4gSS5fbW9kaWZ5Um93SGVhZGVyV2lkdGgoail9KSx0aGlzLnJvd1V0aWxzPW5ldyBiV2UodGhpcy5kYXRhQWNjZXNzT2JqZWN0LHRoaXMud3RTZXR0aW5ncyksdGhpcy5jb2x1bW5VdGlscz1uZXcgQVdlKHRo''@;'; + put 'put ''aXMuZGF0YUFjY2Vzc09iamVjdCx0aGlzLnd0U2V0dGluZ3MpLHRoaXMudGFibGVSZW5kZXJlcj1uZXcgZ1dlKHtUQUJMRTp0aGlzLlRBQkxFLFRIRUFEOnRoaXMuVEhFQUQsQ09MR1JPVVA6dGhpcy5DT0xHUk9VUCxUQk9EWTp0aGlzLlRCT0RZLHJvd1V0aWxzOnRoaXMucm93VXRpbHMsY29s''@;'; + put 'put ''dW1uVXRpbHM6dGhpcy5jb2x1bW5VdGlscyxjZWxsUmVuZGVyZXI6dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmdQdXJlKCJjZWxsUmVuZGVyZXIiKX0pfXJldHVybiBmdW5jdGlvbiBPV2UoZCxnLGgpe2cmJlVfZShkLnByb3RvdHlwZSxnKSxoJiZVX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiaXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLm5hbWU9PT1ofX0se2tleToiZml4VGFibGVEb21UcmVlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50''@;'; + put 'put ''O3RoaXMuVEJPRFk9dGhpcy5UQUJMRS5xdWVyeVNlbGVjdG9yKCJ0Ym9keSIpLHRoaXMuVEJPRFl8fCh0aGlzLlRCT0RZPWguY3JlYXRlRWxlbWVudCgidGJvZHkiKSx0aGlzLlRBQkxFLmFwcGVuZENoaWxkKHRoaXMuVEJPRFkpKSx0aGlzLlRIRUFEPXRoaXMuVEFCTEUucXVlcnlTZWxlY3Rv''@;'; + put 'put ''cigidGhlYWQiKSx0aGlzLlRIRUFEfHwodGhpcy5USEVBRD1oLmNyZWF0ZUVsZW1lbnQoInRoZWFkIiksdGhpcy5UQUJMRS5pbnNlcnRCZWZvcmUodGhpcy5USEVBRCx0aGlzLlRCT0RZKSksdGhpcy5DT0xHUk9VUD10aGlzLlRBQkxFLnF1ZXJ5U2VsZWN0b3IoImNvbGdyb3VwIiksdGhpcy5D''@;'; + put 'put ''T0xHUk9VUHx8KHRoaXMuQ09MR1JPVVA9aC5jcmVhdGVFbGVtZW50KCJjb2xncm91cCIpLHRoaXMuVEFCTEUuaW5zZXJ0QmVmb3JlKHRoaXMuQ09MR1JPVVAsdGhpcy5USEVBRCkpfX0se2tleToiY3JlYXRlU3ByZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB5LHY9aC5wYXJlbnROb2Rl''@;'; + put 'put ''O3JldHVybighdnx8di5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFfHwhdGwodiwid3RIb2xkZXIiKSkmJigoeT10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuY2xhc3NOYW1lPSJ3dFNwcmVhZGVyIix2JiZ2Lmluc2VydEJlZm9yZSh5LGgp''@;'; + put 'put ''LHkuYXBwZW5kQ2hpbGQoaCkpLHkuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIix5fX0se2tleToiY3JlYXRlSGlkZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB5LHY9aC5wYXJlbnROb2RlO3JldHVybighdnx8di5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFfHwhdGwodiwid3RIb2xk''@;'; + put 'put ''ZXIiKSkmJigoeT10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuY2xhc3NOYW1lPSJ3dEhpZGVyIix2JiZ2Lmluc2VydEJlZm9yZSh5LGgpLHkuYXBwZW5kQ2hpbGQoaCkpLHl9fSx7a2V5OiJjcmVhdGVIb2xkZXIiLHZhbHVlOmZ1bmN0aW9uKGgp''@;'; + put 'put ''e3ZhciB5LHY9aC5wYXJlbnROb2RlO3JldHVybighdnx8di5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFfHwhdGwodiwid3RIb2xkZXIiKSkmJigoeT10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc3R5bGUucG9zaXRpb249InJlbGF0aXZl''@;'; + put 'put ''Iix5LmNsYXNzTmFtZT0id3RIb2xkZXIiLHYmJnYuaW5zZXJ0QmVmb3JlKHksaCksdGhpcy5pc01hc3RlciYmKHkucGFyZW50Tm9kZS5jbGFzc05hbWUrPSJodF9tYXN0ZXIgaGFuZHNvbnRhYmxlIix5LnBhcmVudE5vZGUuc2V0QXR0cmlidXRlKCJkaXIiLHRoaXMud3RTZXR0aW5ncy5nZXRT''@;'; + put 'put ''ZXR0aW5nUHVyZSgicnRsTW9kZSIpPyJydGwiOiJsdHIiKSkseS5hcHBlbmRDaGlsZChoKSkseX19LHtrZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSx2PXRoaXMud3RTZXR0aW5n''@;'; + put 'put ''cyx5PXRoaXMuZGF0YUFjY2Vzc09iamVjdCxDPXkud3RPdmVybGF5cyxJPXkud3RWaWV3cG9ydCxqPXYuZ2V0U2V0dGluZygidG90YWxSb3dzIiksdWU9di5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKSxfZT12LmdldFNldHRpbmcoInJvd0hlYWRlcnMiKSxCZT1fZS5sZW5ndGgsTmU9di5n''@;'; + put 'put ''ZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIiksS2U9TmUubGVuZ3RoLGR0PSExLE90PWg7aWYodGhpcy5pc01hc3RlciYmKHRoaXMuaG9sZGVyT2Zmc2V0PWp1KHRoaXMuaG9sZGVyKSxPdD1JLmNyZWF0ZVJlbmRlckNhbGN1bGF0b3JzKE90KSxCZSYmIXYuZ2V0U2V0dGluZygiZml4ZWRDb2x1''@;'; + put 'put ''bW5zU3RhcnQiKSkpe3ZhciAkdD1DLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpLGZuPXRoaXMuY29ycmVjdEhlYWRlcldpZHRoO3RoaXMuY29ycmVjdEhlYWRlcldpZHRoPTAhPT0kdCxmbiE9PXRoaXMuY29ycmVjdEhlYWRlcldpZHRoJiYoT3Q9ITEpfWlmKHRoaXMu''@;'; + put 'put ''aXNNYXN0ZXImJihkdD1DLnVwZGF0ZVN0YXRlT2ZSZW5kZXJpbmcoKSksT3QpdGhpcy5pc01hc3RlciYmSS5jcmVhdGVWaXNpYmxlQ2FsY3VsYXRvcnMoKSxDJiZDLnJlZnJlc2goITApO2Vsc2V7dGhpcy50YWJsZU9mZnNldD10aGlzLmlzTWFzdGVyP2p1KHRoaXMuVEFCTEUpOnRoaXMuZGF0''@;'; + put 'put ''YUFjY2Vzc09iamVjdC5wYXJlbnRUYWJsZU9mZnNldDt2YXIgTG49aj4wP3RoaXMuZ2V0Rmlyc3RSZW5kZXJlZFJvdygpOjAsaXI9dWU+MD90aGlzLmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKTowO3RoaXMucm93RmlsdGVyPW5ldyBuR2UoTG4saixLZSksdGhpcy5jb2x1bW5GaWx0ZXI9bmV3''@;'; + put 'put ''ICR6ZShpcix1ZSxCZSk7dmFyIHdyLG1yPSEwO2lmKHRoaXMuaXNNYXN0ZXIpe3RoaXMuYWxpZ25PdmVybGF5c1dpdGhUcmltbWluZ0NvbnRhaW5lcigpO3ZhciBTcj17fTt0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiYmVmb3JlRHJhdyIsITAsU3IpLG1yPSEwIT09U3Iuc2tpcFJlbmRl''@;'; + put 'put ''cn1pZihtcilpZih0aGlzLnRhYmxlUmVuZGVyZXIuc2V0SGVhZGVyQ29udGVudFJlbmRlcmVycyhfZSxOZSksKHRoaXMuaXMoRWcpfHx0aGlzLmlzKE13KSkmJnRoaXMudGFibGVSZW5kZXJlci5zZXRIZWFkZXJDb250ZW50UmVuZGVyZXJzKF9lLFtdKSx0aGlzLnJlc2V0T3ZlcnNpemVkUm93''@;'; + put 'put ''cygpLHRoaXMudGFibGVSZW5kZXJlci5zZXRWaWV3cG9ydFNpemUodGhpcy5nZXRSZW5kZXJlZFJvd3NDb3VudCgpLHRoaXMuZ2V0UmVuZGVyZWRDb2x1bW5zQ291bnQoKSkuc2V0RmlsdGVycyh0aGlzLnJvd0ZpbHRlcix0aGlzLmNvbHVtbkZpbHRlcikucmVuZGVyKCksdGhpcy5pc01hc3Rl''@;'; + put 'put ''ciYmKHdyPXRoaXMuZGF0YUFjY2Vzc09iamVjdC53b3Jrc3BhY2VXaWR0aCx0aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5jb250YWluZXJXaWR0aD1udWxsLHRoaXMubWFya092ZXJzaXplZENvbHVtbkhlYWRlcnMoKSksdGhpcy5hZGp1c3RDb2x1bW5IZWFkZXJIZWlnaHRzKCks''@;'; + put 'put ''KHRoaXMuaXNNYXN0ZXJ8fHRoaXMuaXMoRWcpKSYmdGhpcy5tYXJrT3ZlcnNpemVkUm93cygpLHRoaXMuaXNNYXN0ZXIpe3RoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0LmNyZWF0ZVZpc2libGVDYWxjdWxhdG9ycygpLHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dE92ZXJsYXlzLnJl''@;'; + put 'put ''ZnJlc2goITEpLHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dE92ZXJsYXlzLmFwcGx5VG9ET00oKTt2YXIgUXI9RTIodGhpcy5oaWRlcikseWk9RTIodGhpcy5UQUJMRSk7MCE9PVFyJiZ5aSE9PVFyJiYodGhpcy5jb2x1bW5VdGlscy5jYWxjdWxhdGVXaWR0aHMoKSx0aGlzLnRhYmxlUmVuZGVy''@;'; + put 'put ''ZXIucmVuZGVyZXIuY29sR3JvdXAucmVuZGVyKCkpLHdyIT09dGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQuZ2V0V29ya3NwYWNlV2lkdGgoKSYmKHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0LmNvbnRhaW5lcldpZHRoPW51bGwsdGhpcy5jb2x1bW5VdGlscy5jYWxj''@;'; + put 'put ''dWxhdGVXaWR0aHMoKSx0aGlzLnRhYmxlUmVuZGVyZXIucmVuZGVyZXIuY29sR3JvdXAucmVuZGVyKCkpLHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvbkRyYXciLCEwKX1lbHNlIHRoaXMuaXMoRWcpJiZ0aGlzLmRhdGFBY2Nlc3NPYmplY3QuY2xvbmVTb3VyY2Uud3RPdmVybGF5cy5h''@;'; + put 'put ''ZGp1c3RFbGVtZW50c1NpemUoKX1pZih0aGlzLmlzTWFzdGVyKXt2YXIgS2k9Qy50b3BPdmVybGF5LnJlc2V0Rml4ZWRQb3NpdGlvbigpO0MuYm90dG9tT3ZlcmxheS5jbG9uZSYmKEtpPUMuYm90dG9tT3ZlcmxheS5yZXNldEZpeGVkUG9zaXRpb24oKXx8S2kpLEtpPUMuaW5saW5lU3RhcnRP''@;'; + put 'put ''dmVybGF5LnJlc2V0Rml4ZWRQb3NpdGlvbigpfHxLaSxDLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSYmQy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkucmVzZXRGaXhlZFBvc2l0aW9uKCksQy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJkMuYm90dG9tSW5saW5lU3Rh''@;'; + put 'put ''cnRDb3JuZXJPdmVybGF5LmNsb25lJiZDLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5yZXNldEZpeGVkUG9zaXRpb24oKSxLaSYmKEMucmVmcmVzaEFsbCgpLEMuYWRqdXN0RWxlbWVudHNTaXplKCkpfXJldHVybiB0aGlzLnJlZnJlc2hTZWxlY3Rpb25zKE90KSxkdCYmQy5zeW5j''@;'; + put 'put ''U2Nyb2xsV2l0aE1hc3RlcigpLHRoaXMuZGF0YUFjY2Vzc09iamVjdC5kcmF3bj0hMCx0aGlzfX0se2tleToibWFya0lmT3ZlcnNpemVkQ29sdW1uSGVhZGVyIix2YWx1ZTpmdW5jdGlvbihoKXtmb3IodmFyIEksaix1ZSx2PXRoaXMuY29sdW1uRmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UoaCks''@;'; + put 'put ''eT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpLmxlbmd0aCxDPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJkZWZhdWx0Um93SGVpZ2h0IiksX2U9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlckhlaWdodCIpfHxbXTt5OylJPXRo''@;'; + put 'put ''aXMuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KHktPTEpLChqPXRoaXMuZ2V0Q29sdW1uSGVhZGVyKHYseSkpJiYodWU9TTkoaiksKCFJJiZDPHVlfHxJPHVlKSYmKHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZENvbHVtbkhlYWRlcnNbeV09dWUpLEFycmF5LmlzQXJy''@;'; + put 'put ''YXkoX2UpP251bGwhPV9lW3ldJiYodGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQub3ZlcnNpemVkQ29sdW1uSGVhZGVyc1t5XT1fZVt5XSk6aXNOYU4oX2UpfHwodGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQub3ZlcnNpemVkQ29sdW1uSGVhZGVyc1t5XT1fZSksdGhp''@;'; + put 'put ''cy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQub3ZlcnNpemVkQ29sdW1uSGVhZGVyc1t5XTwoX2VbeV18fF9lKSYmKHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZENvbHVtbkhlYWRlcnNbeV09X2VbeV18fF9lKSl9fSx7a2V5OiJhZGp1c3RDb2x1bW5IZWFk''@;'; + put 'put ''ZXJIZWlnaHRzIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdj10aGlzLlRIRUFELmNoaWxkTm9kZXMseT10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRDb2x1bW5IZWFkZXJzLEk9MCxqPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJz''@;'; + put 'put ''IikubGVuZ3RoO0k8ajtJKyspaWYoeVtJXSl7aWYoIXZbSV18fDA9PT12W0ldLmNoaWxkTm9kZXMubGVuZ3RoKXJldHVybjt2W0ldLmNoaWxkTm9kZXNbMF0uc3R5bGUuaGVpZ2h0PSIiLmNvbmNhdCh5W0ldLCJweCIpfX19LHtrZXk6InJlc2V0T3ZlcnNpemVkUm93cyIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXt2YXIgaD10aGlzLnd0U2V0dGluZ3Msdj10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydDtpZigodGhpcy5pc01hc3Rlcnx8dGhpcy5pcyhFZykpJiYhaC5nZXRTZXR0aW5nKCJleHRlcm5hbFJvd0NhbGN1bGF0b3IiKSlmb3IodmFyIHk9dGhpcy5nZXRSZW5kZXJlZFJvd3ND''@;'; + put 'put ''b3VudCgpLEM9MDtDPHk7QysrKXt2YXIgST10aGlzLnJvd0ZpbHRlci5yZW5kZXJlZFRvU291cmNlKEMpO3Yub3ZlcnNpemVkUm93cyYmdi5vdmVyc2l6ZWRSb3dzW0ldJiYodi5vdmVyc2l6ZWRSb3dzW0ldPXZvaWQgMCl9fX0se2tleToicmVtb3ZlQ2xhc3NGcm9tQ2VsbHMiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKGgpe2Zvcih2YXIgdj10aGlzLlRBQkxFLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iLmNvbmNhdChoKSkseT0wLEM9di5sZW5ndGg7eTxDO3krKylwbCh2W3ldLGgpfX0se2tleToicmVmcmVzaFNlbGVjdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMud3RTZXR0aW5ncyx5''@;'; + put 'put ''PXRoaXMuZGF0YUFjY2Vzc09iamVjdC5zZWxlY3Rpb25zO2lmKHkpe3ZhciBDPUFycmF5LmZyb20oeSksST1DLmxlbmd0aDtpZihoKXtmb3IodmFyIGo9W10sdWU9MDt1ZTxJO3VlKyspe2Zvcih2YXIgX2U9Q1t1ZV0uc2V0dGluZ3MsQmU9X2UuaGlnaGxpZ2h0SGVhZGVyQ2xhc3NOYW1lLE5l''@;'; + put 'put ''PV9lLmhpZ2hsaWdodFJvd0NsYXNzTmFtZSxLZT1fZS5oaWdobGlnaHRDb2x1bW5DbGFzc05hbWUsZHQ9Q1t1ZV0uY2xhc3NOYW1lcyxPdD1kdC5sZW5ndGgsJHQ9MDskdDxPdDskdCsrKWouaW5jbHVkZXMoZHRbJHRdKXx8ai5wdXNoKGR0WyR0XSk7QmUmJiFqLmluY2x1ZGVzKEJlKSYmai5w''@;'; + put 'put ''dXNoKEJlKSxOZSYmIWouaW5jbHVkZXMoTmUpJiZqLnB1c2goTmUpLEtlJiYhai5pbmNsdWRlcyhLZSkmJmoucHVzaChLZSl9dmFyIGZuPXYuZ2V0U2V0dGluZygib25CZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIpO2lmKEFycmF5LmlzQXJyYXkoZm4pKWZvcih2YXIgTG49MDtMbjxmbi5s''@;'; + put 'put ''ZW5ndGg7TG4rKylqLnB1c2goZm5bTG5dKTtmb3IodmFyIGlyPWoubGVuZ3RoLG1yPTA7bXI8aXI7bXIrKyl0aGlzLnJlbW92ZUNsYXNzRnJvbUNlbGxzKGpbbXJdKX1mb3IodmFyIFNyPTA7U3I8STtTcisrKUNbU3JdLmRyYXcodGhpcy5mYWNhZGVHZXR0ZXIoKSxoKX19fSx7a2V5OiJnZXRD''@;'; + put 'put ''ZWxsIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgaix2PWgucm93LHk9aC5jb2wsQz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25Nb2RpZnlHZXRDZWxsQ29vcmRzIix2LHkpO2lmKEMmJkFycmF5LmlzQXJyYXkoQykpe3ZhciBJPWZ1bmN0aW9uIHhXZShkLGcpe3JldHVybiBmdW5jdGlv''@;'; + put 'put ''biBEV2UoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIElXZShkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2''@;'; + put 'put ''PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZp''@;'; + put 'put ''bmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fFlfZShkLGcpfHxmdW5jdGlvbiBUV2UoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5v''@;'; + put 'put ''bi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShDLDIpO3Y9SVswXSx5PUlbMV19aWYodGhpcy5pc1Jvd0JlZm9yZVJlbmRlcmVkUm93cyh2KSlyZXR1cm4tMTtpZih0aGlzLmlzUm93QWZ0ZXJSZW5kZXJlZFJvd3ModikpcmV0dXJu''@;'; + put 'put ''LTI7aWYodGhpcy5pc0NvbHVtbkJlZm9yZVJlbmRlcmVkQ29sdW1ucyh5KSlyZXR1cm4tMztpZih0aGlzLmlzQ29sdW1uQWZ0ZXJSZW5kZXJlZENvbHVtbnMoeSkpcmV0dXJuLTQ7aWYoIShqPXY8MD90aGlzLlRIRUFELmNoaWxkTm9kZXNbdGhpcy5yb3dGaWx0ZXIuc291cmNlUm93VG9WaXNp''@;'; + put 'put ''YmxlQ29sSGVhZGVkUm93KHYpXTp0aGlzLlRCT0RZLmNoaWxkTm9kZXNbdGhpcy5yb3dGaWx0ZXIuc291cmNlVG9SZW5kZXJlZCh2KV0pJiZ2Pj0wKXRocm93IG5ldyBFcnJvcigiVFIgd2FzIGV4cGVjdGVkIHRvIGJlIHJlbmRlcmVkIGJ1dCBpcyBub3QiKTt2YXIgdWU9ai5jaGlsZE5vZGVz''@;'; + put 'put ''W3RoaXMuY29sdW1uRmlsdGVyLnNvdXJjZUNvbHVtblRvVmlzaWJsZVJvd0hlYWRlZENvbHVtbih5KV07aWYoIXVlJiZ5Pj0wKXRocm93IG5ldyBFcnJvcigiVEQgb3IgVEggd2FzIGV4cGVjdGVkIHRvIGJlIHJlbmRlcmVkIGJ1dCBpcyBub3QiKTtyZXR1cm4gdWV9fSx7a2V5OiJnZXRDb2x1''@;'; + put 'put ''bW5IZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLHk9dGhpcy5USEVBRC5jaGlsZE5vZGVzW3ZdO3JldHVybiBudWxsPT15P3ZvaWQgMDp5LmNoaWxkTm9kZXNbdGhpcy5jb2x1bW5G''@;'; + put 'put ''aWx0ZXIuc291cmNlQ29sdW1uVG9WaXNpYmxlUm93SGVhZGVkQ29sdW1uKGgpXX19LHtrZXk6ImdldENvbHVtbkhlYWRlcnMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PVtdLHk9dGhpcy5jb2x1bW5GaWx0ZXIuc291cmNlQ29sdW1uVG9WaXNpYmxlUm93SGVhZGVkQ29sdW1uKGgpO3JldHVy''@;'; + put 'put ''biB0aGlzLlRIRUFELmNoaWxkTm9kZXMuZm9yRWFjaChmdW5jdGlvbihDKXt2YXIgST1DLmNoaWxkTm9kZXNbeV07SSYmdi5wdXNoKEkpfSksdn19LHtrZXk6ImdldFJvd0hlYWRlciIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVu''@;'; + put 'put ''dHNbMV0/YXJndW1lbnRzWzFdOjA7aWYoMCE9PXRoaXMuY29sdW1uRmlsdGVyLnNvdXJjZUNvbHVtblRvVmlzaWJsZVJvd0hlYWRlZENvbHVtbigwKSl7dmFyIHk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcnMiKS5sZW5ndGg7aWYoISh2Pj15KSl7dmFyIEM9dGhpcy5U''@;'; + put 'put ''Qk9EWS5jaGlsZE5vZGVzW3RoaXMucm93RmlsdGVyLnNvdXJjZVRvUmVuZGVyZWQoaCldO3JldHVybiBudWxsPT1DP3ZvaWQgMDpDLmNoaWxkTm9kZXNbdl19fX19LHtrZXk6ImdldFJvd0hlYWRlcnMiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKDA9PT10aGlzLmNvbHVtbkZpbHRlci5zb3VyY2VD''@;'; + put 'put ''b2x1bW5Ub1Zpc2libGVSb3dIZWFkZWRDb2x1bW4oMCkpcmV0dXJuW107Zm9yKHZhciB2PVtdLHk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcnMiKS5sZW5ndGgsQz0wO0M8eTtDKyspe3ZhciBJPXRoaXMuVEJPRFkuY2hpbGROb2Rlc1t0aGlzLnJvd0ZpbHRlci5zb3Vy''@;'; + put 'put ''Y2VUb1JlbmRlcmVkKGgpXSxqPW51bGw9PUk/dm9pZCAwOkkuY2hpbGROb2Rlc1tDXTtqJiZ2LnB1c2goail9cmV0dXJuIHZ9fSx7a2V5OiJnZXRDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWg7aWYoIlREIiE9PXYubm9kZU5hbWUmJiJUSCIhPT12Lm5vZGVOYW1lJiYodj1TOSh2''@;'; + put 'put ''LFsiVEQiLCJUSCJdKSksbnVsbD09PXYpcmV0dXJuIG51bGw7dmFyIHk9di5wYXJlbnROb2RlLEM9eS5wYXJlbnROb2RlLEk9SGJlKHkpLGo9di5jZWxsSW5kZXg7cmV0dXJuIGJ3KFNTLHYsdGhpcy53dFJvb3RFbGVtZW50KXx8YncoQ1Msdix0aGlzLnd0Um9vdEVsZW1lbnQpPyJUSEVBRCI9''@;'; + put 'put ''PT1DLm5vZGVOYW1lJiYoSS09Qy5jaGlsZE5vZGVzLmxlbmd0aCk6ST1idyhNdyx2LHRoaXMud3RSb290RWxlbWVudCl8fGJ3KEVnLHYsdGhpcy53dFJvb3RFbGVtZW50KT90aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIiktQy5jaGlsZE5vZGVzLmxlbmd0aCtJOkM9PT10''@;'; + put 'put ''aGlzLlRIRUFEP3RoaXMucm93RmlsdGVyLnZpc2libGVDb2xIZWFkZWRSb3dUb1NvdXJjZVJvdyhJKTp0aGlzLnJvd0ZpbHRlci5yZW5kZXJlZFRvU291cmNlKEkpLGo9YncoU1Msdix0aGlzLnd0Um9vdEVsZW1lbnQpfHxidyhrUyx2LHRoaXMud3RSb290RWxlbWVudCl8fGJ3KE13LHYsdGhp''@;'; + put 'put ''cy53dFJvb3RFbGVtZW50KT90aGlzLmNvbHVtbkZpbHRlci5vZmZzZXR0ZWRUSChqKTp0aGlzLmNvbHVtbkZpbHRlci52aXNpYmxlUm93SGVhZGVkQ29sdW1uVG9Tb3VyY2VDb2x1bW4oaiksdGhpcy53b3QuY3JlYXRlQ2VsbENvb3JkcyhJLGopfX0se2tleToibWFya092ZXJzaXplZFJvd3Mi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJleHRlcm5hbFJvd0NhbGN1bGF0b3IiKSl7dmFyIEMsSSxqLHVlLF9lLGg9dGhpcy5UQk9EWS5jaGlsZE5vZGVzLmxlbmd0aDtpZihoKnRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJkZWZhdWx0Um93''@;'; + put 'put ''SGVpZ2h0IikhPU05KHRoaXMuVEJPRFkpLTF8fHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKSlmb3IoO2g7KWo9dGhpcy5yb3dGaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShoLT0xKSxDPXRoaXMuZ2V0Um93SGVpZ2h0KGopLEk9KF9lPSh1ZT10aGlzLmdldFRy''@;'; + put 'put ''Rm9yUm93KGopKS5xdWVyeVNlbGVjdG9yKCJ0aCIpKT9NOShfZSk6TTkodWUpLTEsKCFDJiZ0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVsdFJvd0hlaWdodCIpPEl8fEM8SSkmJih0aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRSb3dzW2pdPUkrPTEp''@;'; + put 'put ''fX19LHtrZXk6ImdldFRyRm9yUm93Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5UQk9EWS5jaGlsZE5vZGVzW3RoaXMucm93RmlsdGVyLnNvdXJjZVRvUmVuZGVyZWQoaCldfX0se2tleToiaXNDb2x1bW5IZWFkZXJSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYoaD49MCly''@;'; + put 'put ''ZXR1cm4hMTt2YXIgeT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicm93SGVhZGVycyIpLmxlbmd0aDtyZXR1cm4gTWF0aC5hYnMoaCk8PXl9fSx7a2V5OiJpc1Jvd0hlYWRlclJlbmRlcmVkIix2YWx1ZTpmdW5jdGlvbihoKXtpZihoPj0wKXJldHVybiExO3ZhciB5PXRoaXMud3RTZXR0''@;'; + put 'put ''aW5ncy5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoO3JldHVybiBNYXRoLmFicyhoKTw9eX19LHtrZXk6ImlzUm93QmVmb3JlUmVuZGVyZWRSb3dzIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLmdldEZpcnN0UmVuZGVyZWRSb3coKTtyZXR1cm4gaDwwJiZ2PD0wPyF0''@;'; + put 'put ''aGlzLmlzUm93SGVhZGVyUmVuZGVyZWQoaCk6aDx2fX0se2tleToiaXNSb3dBZnRlclJlbmRlcmVkUm93cyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGg+dGhpcy5nZXRMYXN0UmVuZGVyZWRSb3coKX19LHtrZXk6ImlzQ29sdW1uQmVmb3JlUmVuZGVyZWRDb2x1bW5zIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbihoKXt2YXIgdj10aGlzLmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKTtyZXR1cm4gaDwwJiZ2PD0wPyF0aGlzLmlzQ29sdW1uSGVhZGVyUmVuZGVyZWQoaCk6aDx2fX0se2tleToiaXNDb2x1bW5BZnRlclJlbmRlcmVkQ29sdW1ucyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''Y29sdW1uRmlsdGVyJiZoPnRoaXMuZ2V0TGFzdFJlbmRlcmVkQ29sdW1uKCl9fSx7a2V5OiJpc0NvbHVtbkFmdGVyVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmNvbHVtbkZpbHRlciYmaD50aGlzLmdldExhc3RWaXNpYmxlQ29sdW1uKCl9fSx7a2V5OiJpc1Jvd0Fm''@;'; + put 'put ''dGVyVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnJvd0ZpbHRlciYmaD50aGlzLmdldExhc3RWaXNpYmxlUm93KCl9fSx7a2V5OiJpc0NvbHVtbkJlZm9yZVZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5jb2x1bW5GaWx0ZXImJnRoaXMuY29s''@;'; + put 'put ''dW1uRmlsdGVyLnNvdXJjZVRvUmVuZGVyZWQoaCk8MCYmaD49MH19LHtrZXk6ImlzTGFzdFJvd0Z1bGx5VmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRMYXN0VmlzaWJsZVJvdygpPT09dGhpcy5nZXRMYXN0UmVuZGVyZWRSb3coKX19LHtrZXk6ImlzTGFzdENvbHVt''@;'; + put 'put ''bkZ1bGx5VmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRMYXN0VmlzaWJsZUNvbHVtbigpPT09dGhpcy5nZXRMYXN0UmVuZGVyZWRDb2x1bW4oKX19LHtrZXk6ImFsbFJvd3NJblZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0U2V0dGluZ3Mu''@;'; + put 'put ''Z2V0U2V0dGluZygidG90YWxSb3dzIik9PT10aGlzLmdldFZpc2libGVSb3dzQ291bnQoKX19LHtrZXk6ImFsbENvbHVtbnNJblZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIik9PT10aGlzLmdldFZpc2li''@;'; + put 'put ''bGVDb2x1bW5zQ291bnQoKX19LHtrZXk6ImdldFJvd0hlaWdodCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93VXRpbHMuZ2V0SGVpZ2h0KGgpfX0se2tleToiZ2V0Q29sdW1uSGVhZGVySGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5jb2x1bW5VdGlscy5n''@;'; + put 'put ''ZXRIZWFkZXJIZWlnaHQoaCl9fSx7a2V5OiJnZXRDb2x1bW5XaWR0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1uVXRpbHMuZ2V0V2lkdGgoaCl9fSx7a2V5OiJnZXRTdHJldGNoZWRDb2x1bW5XaWR0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1u''@;'; + put 'put ''VXRpbHMuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoaCl9fSx7a2V5OiJoYXNEZWZpbmVkU2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNUYWJsZUhlaWdodCYmdGhpcy5oYXNUYWJsZVdpZHRofX0se2tleToiZ2V0V2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEUy''@;'; + put 'put ''KHRoaXMuVEFCTEUpfX0se2tleToiZ2V0SGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBEMSh0aGlzLlRBQkxFKX19LHtrZXk6ImdldFRvdGFsV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9RTIodGhpcy5oaWRlcik7cmV0dXJuIDAhPT1oP2g6dGhpcy5nZXRXaWR0aCgpfX0s''@;'; + put 'put ''e2tleToiZ2V0VG90YWxIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9RDEodGhpcy5oaWRlcik7cmV0dXJuIDAhPT1oP2g6dGhpcy5nZXRIZWlnaHQoKX19LHtrZXk6ImlzVmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdE8odGhpcy5UQUJMRSl9fSx7a2V5OiJfbW9kaWZ5''@;'; + put 'put ''Um93SGVhZGVyV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PVkyKGgpP2goKTpudWxsO3JldHVybiBBcnJheS5pc0FycmF5KHYpPyh2PWZ1bmN0aW9uIGtXZShkKXtyZXR1cm4gZnVuY3Rpb24gRVdlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIHJkZShkKX0oZCl8fGZ1bmN0''@;'; + put 'put ''aW9uIE1XZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxZX2UoZCl8fGZ1bmN0aW9uIFNXZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFs''@;'; + put 'put ''aWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfSh2KSlbdi5sZW5ndGgtMV09dGhpcy5fY29ycmVjdFJv''@;'; + put 'put ''d0hlYWRlcldpZHRoKHZbdi5sZW5ndGgtMV0pOnY9dGhpcy5fY29ycmVjdFJvd0hlYWRlcldpZHRoKHYpLHZ9fSx7a2V5OiJfY29ycmVjdFJvd0hlYWRlcldpZHRoIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1oO3JldHVybiJudW1iZXIiIT10eXBlb2YgaCYmKHY9dGhpcy53dFNldHRpbmdz''@;'; + put 'put ''LmdldFNldHRpbmcoImRlZmF1bHRDb2x1bW5XaWR0aCIpKSx0aGlzLmNvcnJlY3RIZWFkZXJXaWR0aCYmKHYrPTEpLHZ9fV0pLGR9KCk7Y29uc3Qgc089UldlO3ZhciBRX2U9e2dldEZpcnN0UmVuZGVyZWRSb3c6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0''@;'; + put 'put ''aW5nKCJ0b3RhbFJvd3MiKT8tMTowfSxnZXRGaXJzdFZpc2libGVSb3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRGaXJzdFJlbmRlcmVkUm93KCl9LGdldExhc3RSZW5kZXJlZFJvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkUm93c0NvdW50KCktMX0sZ2V0TGFzdFZp''@;'; + put 'put ''c2libGVSb3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRMYXN0UmVuZGVyZWRSb3coKX0sZ2V0UmVuZGVyZWRSb3dzQ291bnQ6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik7cmV0dXJuIE1hdGgubWluKHRoaXMud3RTZXR0aW5ncy5n''@;'; + put 'put ''ZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKSxnKX0sZ2V0VmlzaWJsZVJvd3NDb3VudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkUm93c0NvdW50KCl9fTtTZyhRX2UsIk1JWElOX05BTUUiLCJzdGlja3lSb3dzVG9wIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2Nv''@;'; + put 'put ''bnN0IEpfZT1RX2U7dmFyIFhfZT17Z2V0Rmlyc3RSZW5kZXJlZENvbHVtbjpmdW5jdGlvbigpe3ZhciBnPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5zdGFydENvbHVtblJlbmRlcmVkO3JldHVybiBudWxsPT09Zz8tMTpnfSxnZXRGaXJzdFZpc2libGVDb2x1bW46ZnVuY3Rpb24oKXt2YXIgZz10''@;'; + put 'put ''aGlzLmRhdGFBY2Nlc3NPYmplY3Quc3RhcnRDb2x1bW5WaXNpYmxlO3JldHVybiBudWxsPT09Zz8tMTpnfSxnZXRMYXN0UmVuZGVyZWRDb2x1bW46ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmRhdGFBY2Nlc3NPYmplY3QuZW5kQ29sdW1uUmVuZGVyZWQ7cmV0dXJuIG51bGw9PT1nPy0xOmd9LGdl''@;'; + put 'put ''dExhc3RWaXNpYmxlQ29sdW1uOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LmVuZENvbHVtblZpc2libGU7cmV0dXJuIG51bGw9PT1nPy0xOmd9LGdldFJlbmRlcmVkQ29sdW1uc0NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vzc09iamVjdC5jb3Vu''@;'; + put 'put ''dENvbHVtbnNSZW5kZXJlZH0sZ2V0VmlzaWJsZUNvbHVtbnNDb3VudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGFBY2Nlc3NPYmplY3QuY291bnRDb2x1bW5zVmlzaWJsZX19O1NnKFhfZSwiTUlYSU5fTkFNRSIsImNhbGN1bGF0ZWRDb2x1bW5zIix7d3JpdGFibGU6ITEsZW51bWVyYWJs''@;'; + put 'put ''ZTohMX0pO2NvbnN0IGlkZT1YX2U7ZnVuY3Rpb24gb2RlKGQpe3JldHVybihvZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0''@;'; + put 'put ''aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBLX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVt''@;'; + put 'put ''ZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBhZGUoZCxnKXtyZXR1cm4oYWRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Yu''@;'; + put 'put ''YmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24galdlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09b2RlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJp''@;'; + put 'put ''dmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBaV2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBi''@;'; + put 'put ''ZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBBZWUoZCl7cmV0dXJuKEFlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQp''@;'; + put 'put ''fXZhciBsZGU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIE5XZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVj''@;'; + put 'put ''dC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZhZGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBWV2Uo''@;'; + put 'put ''ZCl7dmFyIGc9ZnVuY3Rpb24geldlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5w''@;'; + put 'put ''cm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9QWVlKGQpO2lmKGcpe3ZhciBDPUFlZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxl''@;'; + put 'put ''Y3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4galdlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYseSxDLEkpe3JldHVybiBmdW5jdGlvbiBIV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVy''@;'; + put 'put ''cm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxnLmNhbGwodGhpcyx2LHksQyxJLENTKX1yZXR1cm4gZnVuY3Rpb24gRldlKGQsZyxoKXtyZXR1cm4gZyYmS19lKGQucHJvdG90eXBlLGcpLGgmJktfZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShk''@;'; + put 'put ''LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGR9KGgpfShzTyk7UjIobGRlLEpfZSksUjIobGRlLGlkZSk7Y29uc3QgR1dlPWxkZTtmdW5jdGlvbiAkX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2''@;'; + put 'put ''LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBzZGUoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNv''@;'; + put 'put ''bmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBVV2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBXV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24i''@;'; + put 'put ''KX0pKHRoaXMsZCksc2RlKHRoaXMsImRhdGFBY2Nlc3NPYmplY3QiLHZvaWQgMCksc2RlKHRoaXMsImxhc3RTY3JvbGxlZENvbHVtblBvcyIsLTEpLHNkZSh0aGlzLCJsYXN0U2Nyb2xsZWRSb3dQb3MiLC0xKSx0aGlzLmRhdGFBY2Nlc3NPYmplY3Q9Z31yZXR1cm4gZnVuY3Rpb24gWVdlKGQs''@;'; + put 'put ''ZyxoKXtnJiYkX2UoZC5wcm90b3R5cGUsZyksaCYmJF9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNjcm9sbFZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbihoLHYseSxDLEkpe3ZhciBqPXRoaXMuc2Nyb2xsVmlld3Bv''@;'; + put 'put ''cnRIb3Jpem9udGFsbHkoaC5jb2wseSxJKSx1ZT10aGlzLnNjcm9sbFZpZXdwb3J0VmVydGljYWxseShoLnJvdyx2LEMpO3JldHVybiBqfHx1ZX19LHtrZXk6InNjcm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5Iix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcy5kYXRhQWNjZXNzT2Jq''@;'; + put 'put ''ZWN0LGo9Qy50b3RhbENvbHVtbnM7aWYoIUMuZHJhd258fCFOdW1iZXIuaXNJbnRlZ2VyKGgpfHxoPDB8fGg+ailyZXR1cm4hMTt2YXIgdWU9dGhpcy5nZXRGaXJzdFZpc2libGVDb2x1bW4oKSxfZT10aGlzLmdldExhc3RWaXNpYmxlQ29sdW1uKCksQmU9dm9pZCAwPT09diYmdm9pZCAwPT09''@;'; + put 'put ''eSxOZT10aGlzLmRhdGFBY2Nlc3NPYmplY3QsZHQ9TmUuaW5saW5lU3RhcnRPdmVybGF5O2lmKEJlJiZoPE5lLmZpeGVkQ29sdW1uc1N0YXJ0KXJldHVybiExO3ZhciBPdD0hMTtyZXR1cm4tMT09PXVlP090PWR0LnNjcm9sbFRvKGgsQmU/aD50aGlzLmxhc3RTY3JvbGxlZENvbHVtblBvczp2''@;'; + put 'put ''KTooQmUmJihoPHVlfHxoPl9lKXx8IUJlKSYmKE90PWR0LnNjcm9sbFRvKGgsQmU/aD5fZTp2KSksT3QmJih0aGlzLmxhc3RTY3JvbGxlZENvbHVtblBvcz1oKSxPdH19LHtrZXk6InNjcm9sbFZpZXdwb3J0VmVydGljYWxseSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXRoaXMuZGF0''@;'; + put 'put ''YUFjY2Vzc09iamVjdCxqPUMudG90YWxSb3dzO2lmKCFDLmRyYXdufHwhTnVtYmVyLmlzSW50ZWdlcihoKXx8aDwwfHxoPmopcmV0dXJuITE7dmFyIHVlPXRoaXMuZ2V0Rmlyc3RWaXNpYmxlUm93KCksX2U9dGhpcy5nZXRMYXN0VmlzaWJsZVJvdygpLEJlPXZvaWQgMD09PXYmJnZvaWQgMD09''@;'; + put 'put ''PXksTmU9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LE90PU5lLnRvcE92ZXJsYXk7aWYoQmUmJihoPE5lLmZpeGVkUm93c1RvcHx8aD5qLU5lLmZpeGVkUm93c0JvdHRvbS0xKSlyZXR1cm4hMTt2YXIgJHQ9ITE7cmV0dXJuLTE9PT11ZT8kdD1PdC5zY3JvbGxUbyhoLEJlP2g+dGhpcy5sYXN0U2Ny''@;'; + put 'put ''b2xsZWRSb3dQb3M6eSk6KEJlJiYoaDx1ZXx8aD5fZSl8fCFCZSkmJigkdD1PdC5zY3JvbGxUbyhoLEJlP2g+X2U6eSkpLCR0JiYodGhpcy5sYXN0U2Nyb2xsZWRSb3dQb3M9aCksJHR9fSx7a2V5OiJnZXRGaXJzdFZpc2libGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5kYXRh''@;'; + put 'put ''QWNjZXNzT2JqZWN0LHY9aC50b3BPdmVybGF5LHk9aC53dFRhYmxlLEM9aC53dFZpZXdwb3J0LEk9aC50b3RhbFJvd3Msaj1oLmZpeGVkUm93c1RvcCx1ZT1oLnJvb3RXaW5kb3csX2U9eS5nZXRGaXJzdFZpc2libGVSb3coKTtpZih2Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09dWUp''@;'; + put 'put ''e3ZhciBCZT1qdSh5Lnd0Um9vdEVsZW1lbnQpLE5lPU05KHkuaGlkZXIpLEtlPU05KHVlKSxkdD1CWih1ZSx1ZSk7aWYoQmUudG9wK05lLUtlPD1kdCl7dmFyIE90PUMuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KCk7T3QrPXYuc3VtQ2VsbFNpemVzKDAsaik7Zm9yKHZhciAkdD1JOyR0PjA7JHQt''@;'; + put 'put ''LSlpZihPdCs9di5zdW1DZWxsU2l6ZXMoJHQtMSwkdCksQmUudG9wK05lLU90PD1kdCl7X2U9JHQ7YnJlYWt9fX1yZXR1cm4gX2V9fSx7a2V5OiJnZXRMYXN0VmlzaWJsZVJvdyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmRhdGFBY2Nlc3NPYmplY3Qsdj1oLnRvcE92ZXJsYXkseT1o''@;'; + put 'put ''Lnd0VGFibGUsQz1oLnd0Vmlld3BvcnQsST1oLnRvdGFsUm93cyxqPWgucm9vdFdpbmRvdyx1ZT15LmdldExhc3RWaXNpYmxlUm93KCk7aWYodi5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudD09PWope3ZhciBfZT1qdSh5Lnd0Um9vdEVsZW1lbnQpLEJlPUJaKGosaik7aWYoX2UudG9wPkJl''@;'; + put 'put ''KWZvcih2YXIgTmU9TTkoaiksS2U9Qy5nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKSxkdD0xO2R0PD1JO2R0KyspaWYoS2UrPXYuc3VtQ2VsbFNpemVzKGR0LTEsZHQpLF9lLnRvcCtLZS1CZT49TmUpe3VlPWR0LTI7YnJlYWt9fXJldHVybiB1ZX19LHtrZXk6ImdldEZpcnN0VmlzaWJsZUNvbHVt''@;'; + put 'put ''biIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmRhdGFBY2Nlc3NPYmplY3Qsdj1oLmlubGluZVN0YXJ0T3ZlcmxheSx5PWgud3RUYWJsZSxDPWgud3RWaWV3cG9ydCxJPWgudG90YWxDb2x1bW5zLGo9aC5yb290V2luZG93LHVlPXkuZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uKCk7aWYodi5t''@;'; + put 'put ''YWluVGFibGVTY3JvbGxhYmxlRWxlbWVudD09PWope3ZhciBfZT1qdSh5Lnd0Um9vdEVsZW1lbnQpLEJlPUZaKHkuaGlkZXIpLE5lPUZaKGopLEtlPU1hdGguYWJzKHRlZShqLGopKTtpZihfZS5sZWZ0K0JlLU5lPD1LZSlmb3IodmFyIGR0PUMuZ2V0Um93SGVhZGVyV2lkdGgoKSxPdD1JO090''@;'; + put 'put ''PjA7T3QtLSlpZihkdCs9di5zdW1DZWxsU2l6ZXMoT3QtMSxPdCksX2UubGVmdCtCZS1kdDw9S2Upe3VlPU90O2JyZWFrfX1yZXR1cm4gdWV9fSx7a2V5OiJnZXRMYXN0VmlzaWJsZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmRhdGFBY2Nlc3NPYmplY3Qsdj1oLmlubGlu''@;'; + put 'put ''ZVN0YXJ0T3ZlcmxheSx5PWgud3RUYWJsZSxDPWgud3RWaWV3cG9ydCxJPWgudG90YWxDb2x1bW5zLGo9aC5yb290V2luZG93LHVlPXkuZ2V0TGFzdFZpc2libGVDb2x1bW4oKTtpZih2Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09ail7dmFyIF9lPWp1KHkud3RSb290RWxlbWVudCks''@;'; + put 'put ''QmU9TWF0aC5hYnModGVlKGosaikpO2lmKF9lLmxlZnQ+QmUpZm9yKHZhciBOZT1GWihqKSxLZT1DLmdldFJvd0hlYWRlcldpZHRoKCksZHQ9MTtkdDw9STtkdCsrKWlmKEtlKz12LnN1bUNlbGxTaXplcyhkdC0xLGR0KSxfZS5sZWZ0K0tlLUJlPj1OZSl7dWU9ZHQtMjticmVha319cmV0dXJu''@;'; + put 'put ''IHVlfX1dKSxkfSgpO2NvbnN0IFFXZT1VV2U7ZnVuY3Rpb24gSldlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gcV9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDto''@;'; + put 'put ''Kyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gS1dlKGQsZyxoKXsoZnVuY3Rpb24gJFdlKGQsZyl7''@;'; + put 'put ''aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiBlQ2UoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIFVaKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHFXZShkLGcpe3JldHVybiBnLmdldD9nLmdldC5jYWxsKGQpOmcudmFsdWV9KGQsdENlKGQsZywiZ2V0''@;'; + put 'put ''IikpfWZ1bmN0aW9uIGVZZShkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uIHRZZShkLGcsaCl7aWYoZy5zZXQpZy5zZXQuY2FsbChkLGgpO2Vsc2V7aWYoIWcud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO2cudmFs''@;'; + put 'put ''dWU9aH19KGQsdENlKGQsZywic2V0IiksaCksaH1mdW5jdGlvbiB0Q2UoZCxnLGgpe2lmKCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQoZCl9dmFyIE1TPW5ldyBXZWFr''@;'; + put 'put ''TWFwLG5ZZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoKXt2YXIgdj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO0pXZSh0aGlzLGQpLGVDZSh0aGlzLCJyb3ciLG51bGwpLGVDZSh0aGlzLCJjb2wiLG51bGwpLEtXZSh0aGlzLE1TLHt3''@;'; + put 'put ''cml0YWJsZTohMCx2YWx1ZTohMX0pLGVZZSh0aGlzLE1TLHYpLHZvaWQgMCE9PWcmJnZvaWQgMCE9PWgmJih0aGlzLnJvdz1nLHRoaXMuY29sPWgpfXJldHVybiBmdW5jdGlvbiBYV2UoZCxnLGgpe2cmJnFfZShkLnByb3RvdHlwZSxnKSxoJiZxX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiaXNWYWxpZCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuISh0aGlzLnJvdzwwfHx0aGlzLmNvbDwwfHx0aGlzLnJvdz49aC5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKXx8dGhpcy5jb2w+PWguZ2V0U2V0dGluZygidG90''@;'; + put 'put ''YWxDb2x1bW5zIikpfX0se2tleToiaXNFcXVhbCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGg9PT10aGlzfHx0aGlzLnJvdz09PWgucm93JiZ0aGlzLmNvbD09PWguY29sfX0se2tleToiaXNTb3V0aEVhc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93Pj1oLnJvdyYm''@;'; + put 'put ''KFVaKHRoaXMsTVMpP3RoaXMuY29sPD1oLmNvbDp0aGlzLmNvbD49aC5jb2wpfX0se2tleToiaXNOb3J0aFdlc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93PD1oLnJvdyYmKFVaKHRoaXMsTVMpP3RoaXMuY29sPj1oLmNvbDp0aGlzLmNvbDw9aC5jb2wpfX0se2tleToi''@;'; + put 'put ''aXNTb3V0aFdlc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93Pj1oLnJvdyYmKFVaKHRoaXMsTVMpP3RoaXMuY29sPj1oLmNvbDp0aGlzLmNvbDw9aC5jb2wpfX0se2tleToiaXNOb3J0aEVhc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93PD1oLnJv''@;'; + put 'put ''dyYmKFVaKHRoaXMsTVMpP3RoaXMuY29sPD1oLmNvbDp0aGlzLmNvbD49aC5jb2wpfX0se2tleToibm9ybWFsaXplIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvdz1udWxsPT09dGhpcy5yb3c/dGhpcy5yb3c6TWF0aC5tYXgodGhpcy5yb3csMCksdGhpcy5jb2w9bnVsbD09PXRo''@;'; + put 'put ''aXMuY29sP3RoaXMuY29sOk1hdGgubWF4KHRoaXMuY29sLDApLHRoaXN9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGQodGhpcy5yb3csdGhpcy5jb2wsVVoodGhpcyxNUykpfX0se2tleToidG9PYmplY3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3Jvdzp0''@;'; + put 'put ''aGlzLnJvdyxjb2w6dGhpcy5jb2x9fX1dKSxkfSgpO2NvbnN0IHVkZT1uWWU7ZnVuY3Rpb24gclllKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbkNlKGQsZyl7Zm9yKHZh''@;'; + put 'put ''ciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gb1llKGQsZyxoKXso''@;'; + put 'put ''ZnVuY3Rpb24gYVllKGQsZyl7aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiBjZGUoZCxnLGgpe3JldHVybiBnIGlu''@;'; + put 'put ''IGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIFRnKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIGxZZShkLGcpe3JldHVybiBnLmdldD9nLmdldC5jYWxsKGQpOmcudmFs''@;'; + put 'put ''dWV9KGQsckNlKGQsZywiZ2V0IikpfWZ1bmN0aW9uIHNZZShkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uIHVZZShkLGcsaCl7aWYoZy5zZXQpZy5zZXQuY2FsbChkLGgpO2Vsc2V7aWYoIWcud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJp''@;'; + put 'put ''dmF0ZSBmaWVsZCIpO2cudmFsdWU9aH19KGQsckNlKGQsZywic2V0IiksaCksaH1mdW5jdGlvbiByQ2UoZCxnLGgpe2lmKCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQo''@;'; + put 'put ''ZCl9dmFyIE9wPW5ldyBXZWFrTWFwLGNZZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmcsdj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVu''@;'; + put 'put ''dHNbMl06Zyx5PWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107clllKHRoaXMsZCksY2RlKHRoaXMsImhpZ2hsaWdodCIsbnVsbCksY2RlKHRoaXMsImZyb20iLG51bGwpLGNkZSh0aGlzLCJ0byIsbnVsbCksb1llKHRoaXMsT3Ase3dyaXRh''@;'; + put 'put ''YmxlOiEwLHZhbHVlOiExfSksdGhpcy5oaWdobGlnaHQ9Zy5jbG9uZSgpLm5vcm1hbGl6ZSgpLHRoaXMuZnJvbT1oLmNsb25lKCksdGhpcy50bz12LmNsb25lKCksc1llKHRoaXMsT3AseSl9cmV0dXJuIGZ1bmN0aW9uIGlZZShkLGcsaCl7ZyYmbkNlKGQucHJvdG90eXBlLGcpLGgmJm5DZShk''@;'; + put 'put ''LGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRIaWdobGlnaHQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmhpZ2hsaWdodD1oLmNsb25lKCkubm9ybWFsaXplKCksdGhpc319LHtrZXk6InNldEZyb20iLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmZyb209aC5jbG9uZSgpLHRoaXN9fSx7a2V5OiJzZXRUbyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMudG89aC5jbG9uZSgpLHRoaXN9fSx7a2V5OiJpc1ZhbGlkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5mcm9tLmlz''@;'; + put 'put ''VmFsaWQoaCkmJnRoaXMudG8uaXNWYWxpZChoKX19LHtrZXk6ImlzU2luZ2xlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZyb20ucm93Pj0wJiZ0aGlzLmZyb20ucm93PT09dGhpcy50by5yb3cmJnRoaXMuZnJvbS5jb2w+PTAmJnRoaXMuZnJvbS5jb2w9PT10aGlzLnRvLmNvbH19''@;'; + put 'put ''LHtrZXk6ImdldE91dGVySGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KS1NYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSsxfX0se2tleToiZ2V0T3V0ZXJXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gTWF0aC5tYXgodGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCktTWF0aC5taW4odGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCkrMX19LHtrZXk6ImdldEhlaWdodCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1NYXRoLm1heCh0aGlzLmZyb20ucm93LDApLHY9TWF0aC5tYXgodGhpcy50by5y''@;'; + put 'put ''b3csMCk7cmV0dXJuIE1hdGgubWF4KGgsdiktTWF0aC5taW4oaCx2KSsxfX0se2tleToiZ2V0V2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9TWF0aC5tYXgodGhpcy5mcm9tLmNvbCwwKSx2PU1hdGgubWF4KHRoaXMudG8uY29sLDApO3JldHVybiBNYXRoLm1heChoLHYpLU1hdGgubWlu''@;'; + put 'put ''KGgsdikrMX19LHtrZXk6ImdldENlbGxzQ291bnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0V2lkdGgoKSp0aGlzLmdldEhlaWdodCgpfX0se2tleToiaW5jbHVkZXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWgucm93LHk9aC5jb2wsQz10aGlzLmdldE91dGVyVG9wU3Rh''@;'; + put 'put ''cnRDb3JuZXIoKSxJPXRoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKTtyZXR1cm4gQy5yb3c8PXYmJkkucm93Pj12JiZDLmNvbDw9eSYmSS5jb2w+PXl9fSx7a2V5OiJpbmNsdWRlc1JhbmdlIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5pbmNsdWRlcyhoLmdldE91dGVyVG9w''@;'; + put 'put ''U3RhcnRDb3JuZXIoKSkmJnRoaXMuaW5jbHVkZXMoaC5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpKX19LHtrZXk6ImlzRXF1YWwiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBNYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KT09PU1hdGgubWluKGguZnJvbS5yb3csaC50by5y''@;'; + put 'put ''b3cpJiZNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KT09PU1hdGgubWF4KGguZnJvbS5yb3csaC50by5yb3cpJiZNYXRoLm1pbih0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKT09PU1hdGgubWluKGguZnJvbS5jb2wsaC50by5jb2wpJiZNYXRoLm1heCh0aGlzLmZyb20uY29s''@;'; + put 'put ''LHRoaXMudG8uY29sKT09PU1hdGgubWF4KGguZnJvbS5jb2wsaC50by5jb2wpfX0se2tleToib3ZlcmxhcHMiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoLmlzU291dGhFYXN0T2YodGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKSkmJmguaXNOb3J0aFdlc3RPZih0aGlzLmdldE91dGVy''@;'; + put 'put ''Qm90dG9tUmlnaHRDb3JuZXIoKSl9fSx7a2V5OiJpc1NvdXRoRWFzdE9mIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKS5pc1NvdXRoRWFzdE9mKGgpfHx0aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKS5pc1NvdXRoRWFzdE9mKGgp''@;'; + put 'put ''fX0se2tleToiaXNOb3J0aFdlc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkuaXNOb3J0aFdlc3RPZihoKXx8dGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkuaXNOb3J0aFdlc3RPZihoKX19LHtrZXk6ImlzT3ZlcmxhcHBp''@;'; + put 'put ''bmdIb3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKS5jb2w+PWguZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkuY29sJiZ0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKS5jb2w8PWguZ2V0T3V0ZXJUb3BSaWdodENvcm5l''@;'; + put 'put ''cigpLmNvbHx8dGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKS5jb2w8PWguZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLmNvbCYmdGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKS5jb2w+PWguZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkuY29sfX0se2tleToiaXNPdmVybGFwcGluZ1ZlcnRp''@;'; + put 'put ''Y2FsbHkiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKS5yb3c+PWguZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLnJvdyYmdGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkucm93PD1oLmdldE91dGVyQm90dG9tUmlnaHRDb3Ju''@;'; + put 'put ''ZXIoKS5yb3d8fHRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLnJvdzw9aC5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkucm93JiZ0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKS5yb3c+PWguZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLnJvd319LHtrZXk6ImV4cGFuZCIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCkseT10aGlzLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCk7cmV0dXJuKGgucm93PHYucm93fHxoLmNvbDx2LmNvbHx8aC5yb3c+eS5yb3d8fGguY29sPnkuY29sKSYmKHRoaXMuZnJvbT10aGlzLl9jcmVh''@;'; + put 'put ''dGVDZWxsQ29vcmRzKE1hdGgubWluKHYucm93LGgucm93KSxNYXRoLm1pbih2LmNvbCxoLmNvbCkpLHRoaXMudG89dGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heCh5LnJvdyxoLnJvdyksTWF0aC5tYXgoeS5jb2wsaC5jb2wpKSwhMCl9fSx7a2V5OiJleHBhbmRCeVJhbmdlIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbihoKXtpZih0aGlzLmluY2x1ZGVzUmFuZ2UoaCl8fCF0aGlzLm92ZXJsYXBzKGgpKXJldHVybiExO3ZhciB2PXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLHk9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLEM9dGhpcy5nZXREaXJlY3Rpb24oKSxJPWguZ2V0''@;'; + put 'put ''T3V0ZXJUb3BTdGFydENvcm5lcigpLGo9aC5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLHVlPU1hdGgubWluKHYucm93LEkucm93KSxfZT1NYXRoLm1pbih2LmNvbCxJLmNvbCksQmU9TWF0aC5tYXgoeS5yb3csai5yb3cpLE5lPU1hdGgubWF4KHkuY29sLGouY29sKSxLZT10aGlzLl9jcmVh''@;'; + put 'put ''dGVDZWxsQ29vcmRzKHVlLF9lKSxkdD10aGlzLl9jcmVhdGVDZWxsQ29vcmRzKEJlLE5lKTtyZXR1cm4gdGhpcy5mcm9tPUtlLHRoaXMudG89ZHQsdGhpcy5zZXREaXJlY3Rpb24oQyksdGhpcy5oaWdobGlnaHQucm93PT09dGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkucm93JiYi''@;'; + put 'put ''Ti1TIj09PXRoaXMuZ2V0VmVydGljYWxEaXJlY3Rpb24oKSYmdGhpcy5mbGlwRGlyZWN0aW9uVmVydGljYWxseSgpLHRoaXMuaGlnaGxpZ2h0LmNvbD09PXRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLmNvbCYmIlctRSI9PT10aGlzLmdldEhvcml6b250YWxEaXJlY3Rpb24oKSYmdGhp''@;'; + put 'put ''cy5mbGlwRGlyZWN0aW9uSG9yaXpvbnRhbGx5KCksITB9fSx7a2V5OiJnZXREaXJlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnJvbS5pc05vcnRoV2VzdE9mKHRoaXMudG8pPyJOVy1TRSI6dGhpcy5mcm9tLmlzTm9ydGhFYXN0T2YodGhpcy50byk/Ik5FLVNXIjp0aGlz''@;'; + put 'put ''LmZyb20uaXNTb3V0aEVhc3RPZih0aGlzLnRvKT8iU0UtTlciOnRoaXMuZnJvbS5pc1NvdXRoV2VzdE9mKHRoaXMudG8pPyJTVy1ORSI6dm9pZCAwfX0se2tleToic2V0RGlyZWN0aW9uIix2YWx1ZTpmdW5jdGlvbihoKXtzd2l0Y2goaCl7Y2FzZSJOVy1TRSI6dmFyIHY9W3RoaXMuZ2V0T3V0''@;'; + put 'put ''ZXJUb3BMZWZ0Q29ybmVyKCksdGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCldO3RoaXMuZnJvbT12WzBdLHRoaXMudG89dlsxXTticmVhaztjYXNlIk5FLVNXIjp2YXIgeT1bdGhpcy5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCksdGhpcy5nZXRPdXRlckJvdHRvbUxlZnRDb3JuZXIo''@;'; + put 'put ''KV07dGhpcy5mcm9tPXlbMF0sdGhpcy50bz15WzFdO2JyZWFrO2Nhc2UiU0UtTlciOnZhciBDPVt0aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKSx0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigpXTt0aGlzLmZyb209Q1swXSx0aGlzLnRvPUNbMV07YnJlYWs7Y2FzZSJTVy1ORSI6''@;'; + put 'put ''dmFyIEk9W3RoaXMuZ2V0T3V0ZXJCb3R0b21MZWZ0Q29ybmVyKCksdGhpcy5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCldO3RoaXMuZnJvbT1JWzBdLHRoaXMudG89SVsxXX19fSx7a2V5OiJnZXRWZXJ0aWNhbERpcmVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bIk5FLVNXIiwiTlct''@;'; + put 'put ''U0UiXS5pbmRleE9mKHRoaXMuZ2V0RGlyZWN0aW9uKCkpPi0xPyJOLVMiOiJTLU4ifX0se2tleToiZ2V0SG9yaXpvbnRhbERpcmVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bIk5XLVNFIiwiU1ctTkUiXS5pbmRleE9mKHRoaXMuZ2V0RGlyZWN0aW9uKCkpPi0xPyJXLUUiOiJFLVci''@;'; + put 'put ''fX0se2tleToiZmxpcERpcmVjdGlvblZlcnRpY2FsbHkiLHZhbHVlOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZ2V0RGlyZWN0aW9uKCkpe2Nhc2UiTlctU0UiOnRoaXMuc2V0RGlyZWN0aW9uKCJTVy1ORSIpO2JyZWFrO2Nhc2UiTkUtU1ciOnRoaXMuc2V0RGlyZWN0aW9uKCJTRS1OVyIpO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UiU0UtTlciOnRoaXMuc2V0RGlyZWN0aW9uKCJORS1TVyIpO2JyZWFrO2Nhc2UiU1ctTkUiOnRoaXMuc2V0RGlyZWN0aW9uKCJOVy1TRSIpfX19LHtrZXk6ImZsaXBEaXJlY3Rpb25Ib3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZ2V0RGlyZWN0aW9u''@;'; + put 'put ''KCkpe2Nhc2UiTlctU0UiOnRoaXMuc2V0RGlyZWN0aW9uKCJORS1TVyIpO2JyZWFrO2Nhc2UiTkUtU1ciOnRoaXMuc2V0RGlyZWN0aW9uKCJOVy1TRSIpO2JyZWFrO2Nhc2UiU0UtTlciOnRoaXMuc2V0RGlyZWN0aW9uKCJTVy1ORSIpO2JyZWFrO2Nhc2UiU1ctTkUiOnRoaXMuc2V0RGlyZWN0''@;'; + put 'put ''aW9uKCJTRS1OVyIpfX19LHtrZXk6ImdldFRvcFN0YXJ0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKE1hdGgubWluKHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpLE1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKS5ub3Jt''@;'; + put 'put ''YWxpemUoKX19LHtrZXk6ImdldFRvcExlZnRDb3JuZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFRnKHRoaXMsT3ApP3RoaXMuZ2V0VG9wRW5kQ29ybmVyKCk6dGhpcy5nZXRUb3BTdGFydENvcm5lcigpfX0se2tleToiZ2V0Qm90dG9tRW5kQ29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiB0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKE1hdGgubWF4KHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpLE1hdGgubWF4KHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKS5ub3JtYWxpemUoKX19LHtrZXk6ImdldEJvdHRvbVJpZ2h0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biBUZyh0aGlzLE9wKT90aGlzLmdldEJvdHRvbVN0YXJ0Q29ybmVyKCk6dGhpcy5nZXRCb3R0b21FbmRDb3JuZXIoKX19LHtrZXk6ImdldFRvcEVuZENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1pbih0aGlzLmZyb20ucm93LHRo''@;'; + put 'put ''aXMudG8ucm93KSxNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSkubm9ybWFsaXplKCl9fSx7a2V5OiJnZXRUb3BSaWdodENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gVGcodGhpcyxPcCk/dGhpcy5nZXRUb3BTdGFydENvcm5lcigpOnRoaXMuZ2V0VG9wRW5kQ29y''@;'; + put 'put ''bmVyKCl9fSx7a2V5OiJnZXRCb3R0b21TdGFydENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1pbih0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSkubm9ybWFsaXpl''@;'; + put 'put ''KCl9fSx7a2V5OiJnZXRCb3R0b21MZWZ0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBUZyh0aGlzLE9wKT90aGlzLmdldEJvdHRvbUVuZENvcm5lcigpOnRoaXMuZ2V0Qm90dG9tU3RhcnRDb3JuZXIoKX19LHtrZXk6ImdldE91dGVyVG9wU3RhcnRDb3JuZXIiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoTWF0aC5taW4odGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksTWF0aC5taW4odGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCkpfX0se2tleToiZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBU''@;'; + put 'put ''Zyh0aGlzLE9wKT90aGlzLmdldE91dGVyVG9wRW5kQ29ybmVyKCk6dGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCl9fSx7a2V5OiJnZXRPdXRlckJvdHRvbUVuZENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heCh0aGlzLmZy''@;'; + put 'put ''b20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSl9fSx7a2V5OiJnZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBUZyh0aGlzLE9wKT90aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKTp0aGlz''@;'; + put 'put ''LmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCl9fSx7a2V5OiJnZXRPdXRlclRvcEVuZENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1heCh0aGlzLmZyb20uY29sLHRo''@;'; + put 'put ''aXMudG8uY29sKSl9fSx7a2V5OiJnZXRPdXRlclRvcFJpZ2h0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBUZyh0aGlzLE9wKT90aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKTp0aGlzLmdldE91dGVyVG9wRW5kQ29ybmVyKCl9fSx7a2V5OiJnZXRPdXRlckJvdHRvbVN0YXJ0''@;'; + put 'put ''Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKE1hdGgubWF4KHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpLE1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKX19LHtrZXk6ImdldE91dGVyQm90dG9tTGVmdENvcm5lciIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXtyZXR1cm4gVGcodGhpcyxPcCk/dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpOnRoaXMuZ2V0T3V0ZXJCb3R0b21TdGFydENvcm5lcigpfX0se2tleToiaXNDb3JuZXIiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuISEodiYmdi5pbmNsdWRlcyhoKSYmKHRo''@;'; + put 'put ''aXMuZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkuaXNFcXVhbCh0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKHYuZnJvbS5yb3csdi5mcm9tLmNvbCkpfHx0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKS5pc0VxdWFsKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHModi5mcm9tLnJvdyx2LnRvLmNvbCkp''@;'; + put 'put ''fHx0aGlzLmdldE91dGVyQm90dG9tTGVmdENvcm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3Jkcyh2LnRvLnJvdyx2LmZyb20uY29sKSl8fHRoaXMuZ2V0T3V0ZXJCb3R0b21SaWdodENvcm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3Jkcyh2LnRvLnJvdyx2LnRv''@;'; + put 'put ''LmNvbCkpKSl8fGguaXNFcXVhbCh0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigpKXx8aC5pc0VxdWFsKHRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpKXx8aC5pc0VxdWFsKHRoaXMuZ2V0T3V0ZXJCb3R0b21MZWZ0Q29ybmVyKCkpfHxoLmlzRXF1YWwodGhpcy5nZXRPdXRlckJvdHRv''@;'; + put 'put ''bVJpZ2h0Q29ybmVyKCkpfX0se2tleToiZ2V0T3Bwb3NpdGVDb3JuZXIiLHZhbHVlOmZ1bmN0aW9uKGgsdil7aWYoIShoIGluc3RhbmNlb2YgdWRlKSlyZXR1cm4hMTtpZih2KXt2YXIgeT12LmZyb20sQz12LnRvO2lmKHYuaW5jbHVkZXMoaCkpe2lmKHRoaXMuZ2V0T3V0ZXJUb3BTdGFydENv''@;'; + put 'put ''cm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3Jkcyh5LnJvdyx5LmNvbCkpKXJldHVybiB0aGlzLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCk7aWYodGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3Jkcyh5LnJvdyxDLmNvbCkp''@;'; + put 'put ''KXJldHVybiB0aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKTtpZih0aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKS5pc0VxdWFsKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoQy5yb3cseS5jb2wpKSlyZXR1cm4gdGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpO2lmKHRoaXMu''@;'; + put 'put ''Z2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKS5pc0VxdWFsKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoQy5yb3csQy5jb2wpKSlyZXR1cm4gdGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCl9fXJldHVybiBoLmlzRXF1YWwodGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpKT90aGlzLmdl''@;'; + put 'put ''dE91dGVyVG9wU3RhcnRDb3JuZXIoKTpoLmlzRXF1YWwodGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCkpP3RoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKTpoLmlzRXF1YWwodGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpKT90aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIo''@;'; + put 'put ''KTpoLmlzRXF1YWwodGhpcy5nZXRPdXRlckJvdHRvbVN0YXJ0Q29ybmVyKCkpP3RoaXMuZ2V0T3V0ZXJUb3BFbmRDb3JuZXIoKTp2b2lkIDB9fSx7a2V5OiJnZXRCb3JkZXJzU2hhcmVkV2l0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYoIXRoaXMuaW5jbHVkZXNSYW5nZShoKSlyZXR1cm5bXTt2''@;'; + put 'put ''YXIgdl90b3A9TWF0aC5taW4odGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksdl9ib3R0b209TWF0aC5tYXgodGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksdl9sZWZ0PU1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpLHZfcmlnaHQ9TWF0aC5tYXgodGhpcy5mcm9tLmNvbCx0''@;'; + put 'put ''aGlzLnRvLmNvbCkseV90b3A9TWF0aC5taW4oaC5mcm9tLnJvdyxoLnRvLnJvdykseV9ib3R0b209TWF0aC5tYXgoaC5mcm9tLnJvdyxoLnRvLnJvdykseV9sZWZ0PU1hdGgubWluKGguZnJvbS5jb2wsaC50by5jb2wpLHlfcmlnaHQ9TWF0aC5tYXgoaC5mcm9tLmNvbCxoLnRvLmNvbCksQz1b''@;'; + put 'put ''XTtyZXR1cm4gdl90b3A9PT15X3RvcCYmQy5wdXNoKCJ0b3AiKSx2X3JpZ2h0PT09eV9yaWdodCYmQy5wdXNoKCJyaWdodCIpLHZfYm90dG9tPT09eV9ib3R0b20mJkMucHVzaCgiYm90dG9tIiksdl9sZWZ0PT09eV9sZWZ0JiZDLnB1c2goImxlZnQiKSxDfX0se2tleToiZ2V0SW5uZXIiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLHY9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLHk9W10sQz1oLnJvdztDPD12LnJvdztDKyspZm9yKHZhciBJPWguY29sO0k8PXYuY29sO0krKykodGhpcy5mcm9tLnJvdyE9PUN8fHRo''@;'; + put 'put ''aXMuZnJvbS5jb2whPT1JKSYmKHRoaXMudG8ucm93IT09Q3x8dGhpcy50by5jb2whPT1JKSYmeS5wdXNoKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoQyxJKSk7cmV0dXJuIHl9fSx7a2V5OiJnZXRBbGwiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENv''@;'; + put 'put ''cm5lcigpLHY9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLHk9W10sQz1oLnJvdztDPD12LnJvdztDKyspZm9yKHZhciBJPWguY29sO0k8PXYuY29sO0krKyl5LnB1c2goaC5yb3c9PT1DJiZoLmNvbD09PUk/aDp2LnJvdz09PUMmJnYuY29sPT09ST92OnRoaXMuX2NyZWF0ZUNlbGxD''@;'; + put 'put ''b29yZHMoQyxJKSk7cmV0dXJuIHl9fSx7a2V5OiJmb3JBbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe2Zvcih2YXIgdj10aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSx5PXRoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKSxDPXYucm93O0M8PXkucm93O0MrKylmb3IodmFyIEk9di5jb2w7''@;'; + put 'put ''STw9eS5jb2w7SSsrKWlmKCExPT09aChDLEkpKXJldHVybn19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgZCh0aGlzLmhpZ2hsaWdodCx0aGlzLmZyb20sdGhpcy50byxUZyh0aGlzLE9wKSl9fSx7a2V5OiJ0b09iamVjdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm57ZnJvbTp0aGlzLmZyb20udG9PYmplY3QoKSx0bzp0aGlzLnRvLnRvT2JqZWN0KCl9fX0se2tleToiX2NyZWF0ZUNlbGxDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIG5ldyB1ZGUoaCx2LFRnKHRoaXMsT3ApKX19XSksZH0oKTtjb25zdCBpQ2U9Y1llO2Z1bmN0aW9uIG9D''@;'; + put 'put ''ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9u''@;'; + put 'put ''IEM4KGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgZmRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBmWWUoZCxn''@;'; + put 'put ''KXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksQzgodGhpcywid3RUYWJsZSIsdm9pZCAwKSxDOCh0aGlzLCJ3dFNjcm9sbCIsdm9pZCAwKSxDOCh0aGlzLCJ3dFZpZXdwb3J0Iix2''@;'; + put 'put ''b2lkIDApLEM4KHRoaXMsInd0T3ZlcmxheXMiLHZvaWQgMCksQzgodGhpcywic2VsZWN0aW9ucyIsdm9pZCAwKSxDOCh0aGlzLCJ3dEV2ZW50Iix2b2lkIDApLEM4KHRoaXMsImd1aWQiLCJ3dF8iLmNvbmNhdChuM2UoKSkpLEM4KHRoaXMsImRyYXdJbnRlcnJ1cHRlZCIsITEpLEM4KHRoaXMs''@;'; + put 'put ''ImRyYXduIiwhMSksQzgodGhpcywiZG9tQmluZGluZ3MiLHZvaWQgMCksQzgodGhpcywid3RTZXR0aW5ncyIsdm9pZCAwKSx0aGlzLmRvbUJpbmRpbmdzPXtyb290VGFibGU6Zyxyb290RG9jdW1lbnQ6Zy5vd25lckRvY3VtZW50LHJvb3RXaW5kb3c6Zy5vd25lckRvY3VtZW50LmRlZmF1bHRW''@;'; + put 'put ''aWV3fSx0aGlzLnd0U2V0dGluZ3M9aCx0aGlzLnd0U2Nyb2xsPW5ldyBRV2UodGhpcy5jcmVhdGVTY3JvbGxEYW8oKSl9cmV0dXJuIGZ1bmN0aW9uIGhZZShkLGcsaCl7ZyYmb0NlKGQucHJvdG90eXBlLGcpLGgmJm9DZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUi''@;'; + put 'put ''LHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJldmVudE1hbmFnZXIiLGdldDpmdW5jdGlvbigpe3JldHVybiBuZXcgTDEodGhpcyl9fSx7a2V5OiJmaW5kT3JpZ2luYWxIZWFkZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPVtdO2lmKHRoaXMud3RUYWJsZS5USEVBRC5jaGlsZE5vZGVzLmxl''@;'; + put 'put ''bmd0aCYmdGhpcy53dFRhYmxlLlRIRUFELmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlcy5sZW5ndGgpe2Zvcih2YXIgdj0wLHk9dGhpcy53dFRhYmxlLlRIRUFELmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlcy5sZW5ndGg7djx5O3YrKyloLnB1c2godGhpcy53dFRhYmxlLlRIRUFELmNoaWxkTm9k''@;'; + put 'put ''ZXNbMF0uY2hpbGROb2Rlc1t2XS5pbm5lckhUTUwpO3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RofHx0aGlzLnd0U2V0dGluZ3MudXBkYXRlKCJjb2x1bW5IZWFkZXJzIixbZnVuY3Rpb24oQyxJKXtDdyhJLGhbQ10pfV0pfX19LHtrZXk6ImNyZWF0''@;'; + put 'put ''ZUNlbGxDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIG5ldyB1ZGUoaCx2LHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJydGxNb2RlIikpfX0se2tleToiY3JlYXRlQ2VsbFJhbmdlIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7cmV0dXJuIG5ldyBpQ2UoaCx2LHksdGhpcy53''@;'; + put 'put ''dFNldHRpbmdzLmdldFNldHRpbmcoInJ0bE1vZGUiKSl9fSx7a2V5OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIHRoaXMuZHJhd0ludGVycnVwdGVkPSExLGh8fHRoaXMu''@;'; + put 'put ''d3RUYWJsZS5pc1Zpc2libGUoKT90aGlzLnd0VGFibGUuZHJhdyhoKTp0aGlzLmRyYXdJbnRlcnJ1cHRlZD0hMCx0aGlzfX0se2tleToiZ2V0Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sx''@;'; + put 'put ''XTtpZighdilyZXR1cm4gdGhpcy53dFRhYmxlLmdldENlbGwoaCk7dmFyIHk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLEM9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVk''@;'; + put 'put ''Um93c0JvdHRvbSIpLGo9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0Iik7aWYoaC5yb3c8QyYmaC5jb2w8ailyZXR1cm4gdGhpcy53dE92ZXJsYXlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENlbGwoaCk7aWYoaC5y''@;'; + put 'put ''b3c8QylyZXR1cm4gdGhpcy53dE92ZXJsYXlzLnRvcE92ZXJsYXkuY2xvbmUud3RUYWJsZS5nZXRDZWxsKGgpO2lmKGguY29sPGomJmgucm93Pj15LUkpe2lmKHRoaXMud3RPdmVybGF5cy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMud3RPdmVybGF5cy5ib3R0b21Jbmxp''@;'; + put 'put ''bmVTdGFydENvcm5lck92ZXJsYXkuY2xvbmUpcmV0dXJuIHRoaXMud3RPdmVybGF5cy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkuY2xvbmUud3RUYWJsZS5nZXRDZWxsKGgpfWVsc2V7aWYoaC5jb2w8ailyZXR1cm4gdGhpcy53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5j''@;'; + put 'put ''bG9uZS53dFRhYmxlLmdldENlbGwoaCk7aWYoaC5yb3c8eSYmaC5yb3c+PXktSSYmdGhpcy53dE92ZXJsYXlzLmJvdHRvbU92ZXJsYXkmJnRoaXMud3RPdmVybGF5cy5ib3R0b21PdmVybGF5LmNsb25lKXJldHVybiB0aGlzLnd0T3ZlcmxheXMuYm90dG9tT3ZlcmxheS5jbG9uZS53dFRhYmxl''@;'; + put 'put ''LmdldENlbGwoaCl9cmV0dXJuIHRoaXMud3RUYWJsZS5nZXRDZWxsKGgpfX0se2tleToic2Nyb2xsVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7cmV0dXJuIShoLmNvbDwwfHxoLnJvdzwwKSYmdGhpcy53dFNjcm9sbC5zY3JvbGxWaWV3cG9ydChoLHYseSxDLEkpfX0se2tl''@;'; + put 'put ''eToic2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4hKGg8MCkmJnRoaXMud3RTY3JvbGwuc2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkoaCx2LHkpfX0se2tleToic2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5Iix2YWx1ZTpmdW5jdGlvbiho''@;'; + put 'put ''LHYseSl7cmV0dXJuIShoPDApJiZ0aGlzLnd0U2Nyb2xsLnNjcm9sbFZpZXdwb3J0VmVydGljYWxseShoLHYseSl9fSx7a2V5OiJnZXRWaWV3cG9ydCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy53dFRhYmxlLmdldEZpcnN0VmlzaWJsZVJvdygpLHRoaXMud3RUYWJsZS5nZXRGaXJz''@;'; + put 'put ''dFZpc2libGVDb2x1bW4oKSx0aGlzLnd0VGFibGUuZ2V0TGFzdFZpc2libGVSb3coKSx0aGlzLnd0VGFibGUuZ2V0TGFzdFZpc2libGVDb2x1bW4oKV19fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud3RPdmVybGF5cy5kZXN0cm95KCksdGhpcy53dEV2ZW50LmRlc3Ry''@;'; + put 'put ''b3koKX19LHtrZXk6ImNyZWF0ZVNjcm9sbERhbyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO3JldHVybntnZXQgZHJhd24oKXtyZXR1cm4gaC5kcmF3bn0sZ2V0IHRvcE92ZXJsYXkoKXtyZXR1cm4gaC53dE92ZXJsYXlzLnRvcE92ZXJsYXl9LGdldCBpbmxpbmVTdGFydE92ZXJsYXko''@;'; + put 'put ''KXtyZXR1cm4gaC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheX0sZ2V0IHd0VGFibGUoKXtyZXR1cm4gaC53dFRhYmxlfSxnZXQgd3RWaWV3cG9ydCgpe3JldHVybiBoLnd0Vmlld3BvcnR9LGdldCByb290V2luZG93KCl7cmV0dXJuIGguZG9tQmluZGluZ3Mucm9vdFdpbmRvd30sZ2V0''@;'; + put 'put ''IHRvdGFsUm93cygpe3JldHVybiBoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIil9LGdldCB0b3RhbENvbHVtbnMoKXtyZXR1cm4gaC53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpfSxnZXQgZml4ZWRSb3dzVG9wKCl7cmV0dXJuIGgud3RTZXR0aW5ncy5n''@;'; + put 'put ''ZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKX0sZ2V0IGZpeGVkUm93c0JvdHRvbSgpe3JldHVybiBoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIil9LGdldCBmaXhlZENvbHVtbnNTdGFydCgpe3JldHVybiBoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1''@;'; + put 'put ''bW5zU3RhcnQiKX19fX0se2tleToiZ2V0VGFibGVEYW8iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcztyZXR1cm57Z2V0IHdvdCgpe3JldHVybiBofSxnZXQgcGFyZW50VGFibGVPZmZzZXQoKXtyZXR1cm4gaC5jbG9uZVNvdXJjZS53dFRhYmxlLnRhYmxlT2Zmc2V0fSxnZXQgY2xvbmVT''@;'; + put 'put ''b3VyY2UoKXtyZXR1cm4gaC5jbG9uZVNvdXJjZX0sZ2V0IHdvcmtzcGFjZVdpZHRoKCl7cmV0dXJuIGgud3RWaWV3cG9ydC5nZXRXb3Jrc3BhY2VXaWR0aCgpfSxnZXQgd3RWaWV3cG9ydCgpe3JldHVybiBoLnd0Vmlld3BvcnR9LGdldCB3dE92ZXJsYXlzKCl7cmV0dXJuIGgud3RPdmVybGF5''@;'; + put 'put ''c30sZ2V0IHNlbGVjdGlvbnMoKXtyZXR1cm4gaC5zZWxlY3Rpb25zfSxnZXQgZHJhd24oKXtyZXR1cm4gaC5kcmF3bn0sc2V0IGRyYXduKHYpe2guZHJhd249dn0sZ2V0IHd0VGFibGUoKXtyZXR1cm4gaC53dFRhYmxlfSxnZXQgc3RhcnRDb2x1bW5SZW5kZXJlZCgpe3JldHVybiBoLnd0Vmll''@;'; + put 'put ''d3BvcnQuY29sdW1uc1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRDb2x1bW59LGdldCBzdGFydENvbHVtblZpc2libGUoKXtyZXR1cm4gaC53dFZpZXdwb3J0LmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvci5zdGFydENvbHVtbn0sZ2V0IGVuZENvbHVtblJlbmRlcmVkKCl7cmV0dXJuIGgud3RWaWV3''@;'; + put 'put ''cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5lbmRDb2x1bW59LGdldCBlbmRDb2x1bW5WaXNpYmxlKCl7cmV0dXJuIGgud3RWaWV3cG9ydC5jb2x1bW5zVmlzaWJsZUNhbGN1bGF0b3IuZW5kQ29sdW1ufSxnZXQgY291bnRDb2x1bW5zUmVuZGVyZWQoKXtyZXR1cm4gaC53dFZpZXdwb3J0''@;'; + put 'put ''LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLmNvdW50fSxnZXQgY291bnRDb2x1bW5zVmlzaWJsZSgpe3JldHVybiBoLnd0Vmlld3BvcnQuY29sdW1uc1Zpc2libGVDYWxjdWxhdG9yLmNvdW50fSxnZXQgc3RhcnRSb3dSZW5kZXJlZCgpe3JldHVybiBoLnd0Vmlld3BvcnQucm93c1JlbmRlckNh''@;'; + put 'put ''bGN1bGF0b3Iuc3RhcnRSb3d9LGdldCBzdGFydFJvd1Zpc2libGUoKXtyZXR1cm4gaC53dFZpZXdwb3J0LnJvd3NWaXNpYmxlQ2FsY3VsYXRvci5zdGFydFJvd30sZ2V0IGVuZFJvd1JlbmRlcmVkKCl7cmV0dXJuIGgud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5lbmRSb3d9LGdl''@;'; + put 'put ''dCBlbmRSb3dWaXNpYmxlKCl7cmV0dXJuIGgud3RWaWV3cG9ydC5yb3dzVmlzaWJsZUNhbGN1bGF0b3IuZW5kUm93fSxnZXQgY291bnRSb3dzUmVuZGVyZWQoKXtyZXR1cm4gaC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLmNvdW50fSxnZXQgY291bnRSb3dzVmlzaWJsZSgpe3Jl''@;'; + put 'put ''dHVybiBoLnd0Vmlld3BvcnQucm93c1Zpc2libGVDYWxjdWxhdG9yLmNvdW50fX19fV0pLGR9KCk7ZnVuY3Rpb24gaGRlKGQpe3JldHVybihoZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5''@;'; + put 'put ''cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBhQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3Ro''@;'; + put 'put ''O2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBkZGUoZCxnKXtyZXR1cm4oZGRlPU9iamVjdC5z''@;'; + put 'put ''ZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gdlllKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09aGRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYo''@;'; + put 'put ''dm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiB5ZWUoZCl9ZnVuY3Rpb24geWVlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlz''@;'; + put 'put ''IGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiB3ZWUoZCl7cmV0dXJuKHdlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5f''@;'; + put 'put ''X3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9uIGxDZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9dmFy''@;'; + put 'put ''IHlZZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gZ1llKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNy''@;'; + put 'put ''ZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmRkZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIG1ZZShkKXt2''@;'; + put 'put ''YXIgZz1mdW5jdGlvbiBBWWUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3Rv''@;'; + put 'put ''dHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj13ZWUoZCk7aWYoZyl7dmFyIEM9d2VlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5j''@;'; + put 'put ''b25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB2WWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMpe3ZhciBJOyhmdW5jdGlvbiBwWWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJD''@;'; + put 'put ''YW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsaCksbENlKHllZShJPWcuY2FsbCh0aGlzLHYseSkpLCJjbG9uZVNvdXJjZSIsdm9pZCAwKSxsQ2UoeWVlKEkpLCJjbG9uZU92ZXJsYXkiLHZvaWQgMCk7dmFyIGo9SS53dFNldHRpbmdzLmdldFNldHRpbmcoImZhY2Fk''@;'; + put 'put ''ZSIseWVlKEkpKTtyZXR1cm4gSS5jbG9uZVNvdXJjZT1DLnNvdXJjZSxJLmNsb25lT3ZlcmxheT1DLm92ZXJsYXksSS53dFRhYmxlPUkuY2xvbmVPdmVybGF5LmNyZWF0ZVRhYmxlKEkuZ2V0VGFibGVEYW8oKSxqLEkuZG9tQmluZGluZ3MsSS53dFNldHRpbmdzKSxJLnd0Vmlld3BvcnQ9Qy52''@;'; + put 'put ''aWV3cG9ydCxJLnNlbGVjdGlvbnM9Qy5zZWxlY3Rpb25zLEkud3RFdmVudD1uZXcgQ19lKGosSS5kb21CaW5kaW5ncyxJLnd0U2V0dGluZ3MsSS5ldmVudE1hbmFnZXIsSS53dFRhYmxlLEkuc2VsZWN0aW9ucyxDLmV2ZW50KSxJLmZpbmRPcmlnaW5hbEhlYWRlcnMoKSxJfXJldHVybiBmdW5j''@;'; + put 'put ''dGlvbiBkWWUoZCxnLGgpe3JldHVybiBnJiZhQ2UoZC5wcm90b3R5cGUsZyksaCYmYUNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZH0oaCl9KGZkZSk7ZnVuY3Rpb24gc0NlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKysp''@;'; + put 'put ''e3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFFaPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgsdix5LEMpeyhm''@;'; + put 'put ''dW5jdGlvbiB3WWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksZnVuY3Rpb24gX1llKGQsZyxoKXtnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6''@;'; + put 'put ''aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aH0odGhpcywid3RTZXR0aW5ncyIsbnVsbCksU2codGhpcywid290IixnLHt3cml0YWJsZTohMX0pLHRoaXMuZG9tQmluZGluZ3M9Qyx0aGlzLmZhY2FkZUdldHRlcj1oLHRoaXMud3RTZXR0aW5ncz15''@;'; + put 'put ''O3ZhciBJPXRoaXMud290Lnd0VGFibGUsaj1JLlRBQkxFLHVlPUkuaGlkZXIsX2U9SS5zcHJlYWRlcixCZT1JLmhvbGRlcixOZT1JLnd0Um9vdEVsZW1lbnQ7dGhpcy5pbnN0YW5jZT10aGlzLndvdCx0aGlzLnR5cGU9dix0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PW51bGwsdGhp''@;'; + put 'put ''cy5UQUJMRT1qLHRoaXMuaGlkZXI9dWUsdGhpcy5zcHJlYWRlcj1fZSx0aGlzLmhvbGRlcj1CZSx0aGlzLnd0Um9vdEVsZW1lbnQ9TmUsdGhpcy50cmltbWluZ0NvbnRhaW5lcj1yTyh0aGlzLmhpZGVyLnBhcmVudE5vZGUucGFyZW50Tm9kZSksdGhpcy51cGRhdGVTdGF0ZU9mUmVuZGVyaW5n''@;'; + put 'put ''KCksdGhpcy5jbG9uZT10aGlzLm1ha2VDbG9uZSgpfXJldHVybiBmdW5jdGlvbiBiWWUoZCxnLGgpe2cmJnNDZShkLnByb3RvdHlwZSxnKSxoJiZzQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToidXBkYXRlU3RhdGVP''@;'; + put 'put ''ZlJlbmRlcmluZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLm5lZWRGdWxsUmVuZGVyO3RoaXMubmVlZEZ1bGxSZW5kZXI9dGhpcy5zaG91bGRCZVJlbmRlcmVkKCk7dmFyIHY9aCE9PXRoaXMubmVlZEZ1bGxSZW5kZXI7cmV0dXJuIHYmJiF0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlz''@;'; + put 'put ''LnJlc2V0KCksdn19LHtrZXk6InNob3VsZEJlUmVuZGVyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJ1cGRhdGVUcmltbWluZ0NvbnRhaW5lciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnRyaW1taW5nQ29udGFpbmVyPXJPKHRoaXMuaGlkZXIucGFyZW50Tm9kZS5wYXJl''@;'; + put 'put ''bnROb2RlKX19LHtrZXk6InVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLndvdC53dFRhYmxlO3RoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9ImhpZGRlbiI9PT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3cuZ2V0Q29tcHV0''@;'; + put 'put ''ZWRTdHlsZShoLnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZSkuZ2V0UHJvcGVydHlWYWx1ZSgib3ZlcmZsb3ciKT90aGlzLndvdC53dFRhYmxlLmhvbGRlcjpQWihoLlRBQkxFKX19LHtrZXk6ImdldFJlbGF0aXZlQ2VsbFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7aWYoITEhPT10''@;'; + put 'put ''aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLmNvbnRhaW5zKGgpKXt2YXIgQz10aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LEk9eTx0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSxqPXY8dGhp''@;'; + put 'put ''cy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLHVlPXY+PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKS10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksX2U9dGhpcy5jbG9uZS53dFRhYmxlLnNwcmVhZGVyLEJl''@;'; + put 'put ''PXtzdGFydDp0aGlzLmdldFJlbGF0aXZlU3RhcnRQb3NpdGlvbihfZSksdG9wOl9lLm9mZnNldFRvcH0sTmU9e3N0YXJ0OnRoaXMuZ2V0UmVsYXRpdmVTdGFydFBvc2l0aW9uKGgpLHRvcDpoLm9mZnNldFRvcH07cmV0dXJuIEM/dGhpcy5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbldpdGhpbldp''@;'; + put 'put ''bmRvdyhqLEksTmUsQmUpOnRoaXMuZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRoaW5Ib2xkZXIoaix1ZSxJLE5lLEJlKX1sMSgiVGhlIHByb3ZpZGVkIGVsZW1lbnQgaXMgbm90IGEgY2hpbGQgb2YgdGhlICIuY29uY2F0KHRoaXMudHlwZSwiIG92ZXJsYXkiKSl9fSx7a2V5OiJnZXRSZWxh''@;'; + put 'put ''dGl2ZVN0YXJ0UG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmlzUnRsKCk/aC5vZmZzZXRQYXJlbnQub2Zmc2V0V2lkdGgtaC5vZmZzZXRMZWZ0LWgub2Zmc2V0V2lkdGg6aC5vZmZzZXRMZWZ0fX0se2tleToiZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRoaW5XaW5k''@;'; + put 'put ''b3ciLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe3ZhciBJPXRoaXMud290Lnd0VGFibGUud3RSb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxqPTAsdWU9MDtpZih2KXt2YXIgX2U9SS5sZWZ0O3RoaXMuaXNSdGwoKSYmKF9lPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdy5p''@;'; + put 'put ''bm5lcldpZHRoLShJLmxlZnQrSS53aWR0aCtCYygpKSksaj1fZTw9MD8tMSpfZTowfWVsc2Ugaj1DLnN0YXJ0O3JldHVybiB1ZT1oP3RoaXMuY2xvbmUud3RUYWJsZS5UQUJMRS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AtSS50b3A6Qy50b3Ase3N0YXJ0Onkuc3RhcnQraix0b3A6eS50''@;'; + put 'put ''b3ArdWV9fX0se2tleToiZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRoaW5Ib2xkZXIiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7dmFyIGpfaG9yaXpvbnRhbD10aGlzLndvdC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpLGpfdmVydGljYWw9''@;'; + put 'put ''dGhpcy53b3Qud3RPdmVybGF5cy50b3BPdmVybGF5LmdldFNjcm9sbFBvc2l0aW9uKCksdWU9MCxfZT0wO2lmKHl8fCh1ZT1qX2hvcml6b250YWwtSS5zdGFydCksdil7dmFyIEJlPXRoaXMud290Lnd0VGFibGUud3RSb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtfZT0tMSp0''@;'; + put 'put ''aGlzLmNsb25lLnd0VGFibGUuVEFCTEUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK0JlLnRvcH1lbHNlIGh8fChfZT1qX3ZlcnRpY2FsLUkudG9wKTtyZXR1cm57c3RhcnQ6Qy5zdGFydC11ZSx0b3A6Qy50b3AtX2V9fX0se2tleToibWFrZUNsb25lIix2YWx1ZTpmdW5jdGlvbigpe2lm''@;'; + put 'put ''KC0xPT09X1dlLmluZGV4T2YodGhpcy50eXBlKSl0aHJvdyBuZXcgRXJyb3IoJ0Nsb25lIHR5cGUgIicuY29uY2F0KHRoaXMudHlwZSwnIiBpcyBub3Qgc3VwcG9ydGVkLicpKTt2YXIgaD10aGlzLndvdC53dFRhYmxlLHY9dGhpcy5kb21CaW5kaW5ncyx5PXYucm9vdERvY3VtZW50LEM9di5y''@;'; + put 'put ''b290V2luZG93LEk9eS5jcmVhdGVFbGVtZW50KCJESVYiKSxqPXkuY3JlYXRlRWxlbWVudCgiVEFCTEUiKSx1ZT1oLnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZTtJLmNsYXNzTmFtZT0iIi5jb25jYXQoQ1dlLmdldCh0aGlzLnR5cGUpLCIgaGFuZHNvbnRhYmxlIiksSS5zZXRBdHRyaWJ1dGUo''@;'; + put 'put ''ImRpciIsdGhpcy5pc1J0bCgpPyJydGwiOiJsdHIiKSxJLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsSS5zdHlsZS50b3A9MCxJLnN0eWxlLm92ZXJmbG93PSJ2aXNpYmxlIix0aGlzLmlzUnRsKCk/SS5zdHlsZS5yaWdodD0wOkkuc3R5bGUubGVmdD0wLGouY2xhc3NOYW1lPWguVEFCTEUu''@;'; + put 'put ''Y2xhc3NOYW1lLEkuYXBwZW5kQ2hpbGQoaiksdWUuYXBwZW5kQ2hpbGQoSSk7dmFyIF9lPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTtyZXR1cm4gdGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudD0hMD09PV9lfHwiaG9yaXpvbnRhbCI9PT1fZSYm''@;'; + put 'put ''dGhpcy50eXBlPT09Q1N8fCJ2ZXJ0aWNhbCI9PT1fZSYmdGhpcy50eXBlPT09a1M/QzoiaGlkZGVuIj09PUMuZ2V0Q29tcHV0ZWRTdHlsZSh1ZSkuZ2V0UHJvcGVydHlWYWx1ZSgib3ZlcmZsb3ciKT9oLmhvbGRlcjpQWihoLlRBQkxFKSxuZXcgeVllKGosdGhpcy53dFNldHRpbmdzLHtzb3Vy''@;'; + put 'put ''Y2U6dGhpcy53b3Qsb3ZlcmxheTp0aGlzLHZpZXdwb3J0OnRoaXMud290Lnd0Vmlld3BvcnQsZXZlbnQ6dGhpcy53b3Qud3RFdmVudCxzZWxlY3Rpb25zOnRoaXMud290LnNlbGVjdGlvbnN9KX19LHtrZXk6InJlZnJlc2giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0''@;'; + put 'put ''aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSx2PXRoaXMuc2hvdWxkQmVSZW5kZXJlZCgpO3RoaXMuY2xvbmUmJih0aGlzLm5lZWRGdWxsUmVuZGVyfHx2KSYmdGhpcy5jbG9uZS5kcmF3KGgpLHRoaXMubmVlZEZ1bGxSZW5kZXI9dn19LHtrZXk6InJlc2V0Iix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe2lmKHRoaXMuY2xvbmUpe3ZhciBoPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXI7VXIoW2guc3R5bGUsdGhpcy5jbG9uZS53dFRhYmxlLmhpZGVyLnN0eWxlLGgucGFyZW50Tm9kZS5zdHlsZV0sZnVuY3Rpb24oail7ai53aWR0aD0iIixqLmhlaWdodD0iIn0pfX19LHtr''@;'; + put 'put ''ZXk6ImlzUnRsIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicnRsTW9kZSIpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsb25lLmV2ZW50TWFuYWdlci5kZXN0cm95KCl9fV0pLGR9KCk7ZnVuY3Rpb24gcGRlKGQp''@;'; + put 'put ''e3JldHVybihwZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09''@;'; + put 'put ''PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBiZWUoZCxnLGgpe3JldHVybihiZWU9ZkNlKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj1bbnVsbF07ai5wdXNoLmFwcGx5KGosQyk7dmFy''@;'; + put 'put ''IF9lPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KHksaikpO3JldHVybiBJJiZfZWUoX2UsSS5wcm90b3R5cGUpLF9lfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIHVDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVu''@;'; + put 'put ''dW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIF9lZShkLGcpe3JldHVybihfZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVP''@;'; + put 'put ''Zi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBFWWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1wZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRl''@;'; + put 'put ''cml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGNDZShkKX1mdW5jdGlvbiBjQ2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigp''@;'; + put 'put ''IGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIGZDZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4h''@;'; + put 'put ''MDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBDZWUoZCl7cmV0dXJuKENlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0''@;'; + put 'put ''LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBUWWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFNZZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBu''@;'; + put 'put ''ZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZfZWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBNWWUoZCl7dmFyIGc9ZkNlKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1DZWUoZCk7aWYoZyl7dmFyIEM9Q2VlKHRoaXMpLmNvbnN0cnVjdG9y''@;'; + put 'put ''O3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBFWWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSl7dmFyIGo7cmV0dXJuIGZ1bmN0aW9uIENZZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRo''@;'; + put 'put ''cm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGZ1bmN0aW9uIHhZZShkLGcsaCl7ZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6''@;'; + put 'put ''ITB9KTpkW2ddPWh9KGNDZShqPWcuY2FsbCh0aGlzLHYseSxDUyxDLEkpKSwiY2FjaGVkRml4ZWRSb3dzVG9wIiwtMSksai5jYWNoZWRGaXhlZFJvd3NUb3A9ai53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLGp9cmV0dXJuIGZ1bmN0aW9uIGtZZShkLGcsaCl7ZyYmdUNl''@;'; + put 'put ''KGQucHJvdG90eXBlLGcpLGgmJnVDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJjcmVhdGVUYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7''@;'; + put 'put ''STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gYmVlKEdXZSxDKX19LHtrZXk6InNob3VsZEJlUmVuZGVyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJzaG91bGRSZW5kZXJUb3BPdmVybGF5Iil9fSx7a2V5OiJyZXNldEZpeGVk''@;'; + put 'put ''UG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMubmVlZEZ1bGxSZW5kZXJ8fCF0aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKXJldHVybiExO3ZhciB5PXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSxDPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdp''@;'; + put 'put ''bmRvdyxJPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKSxqPTAsdWU9ITE7aWYodGhpcy50cmltbWluZ0NvbnRhaW5lciE9PUN8fEkmJiJ2ZXJ0aWNhbCI9PT1JKWo9dGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLE5aKHkpO2Vsc2V7dmFyIEJlPXRoaXMud290''@;'; + put 'put ''Lnd0VGFibGUuaGlkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dWU9TWF0aC5jZWlsKEJlLmJvdHRvbSk9PT15Lm9mZnNldEhlaWdodCxqPXRoaXMuZ2V0T3ZlcmxheU9mZnNldCgpLHJlZSh5LCIwcHgiLCIiLmNvbmNhdChqLCJweCIpKX12YXIgZHQ9dGhpcy5hZGp1c3RIZWFkZXJCb3Jk''@;'; + put 'put ''ZXJzUG9zaXRpb24oaix1ZSk7cmV0dXJuIHRoaXMuYWRqdXN0RWxlbWVudHNTaXplKCksZHR9fSx7a2V5OiJzZXRTY3JvbGxQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LEk9ITE7cmV0dXJuIHRoaXMubWFpblRhYmxlU2Nyb2xs''@;'; + put 'put ''YWJsZUVsZW1lbnQ9PT1DJiZDLnNjcm9sbFkhPT15PyhDLnNjcm9sbFRvKGJTKEMpLHkpLEk9ITApOnRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wIT09eSYmKHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wPXksST0hMCksSX19LHtrZXk6''@;'; + put 'put ''Im9uU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvblNjcm9sbEhvcml6b250YWxseSIpfX0se2tleToic3VtQ2VsbFNpemVzIix2YWx1ZTpmdW5jdGlvbih5LEMpe2Zvcih2YXIgST10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVs''@;'; + put 'put ''dFJvd0hlaWdodCIpLGo9eSx1ZT0wO2o8Qzspe3ZhciBfZT10aGlzLndvdC53dFRhYmxlLmdldFJvd0hlaWdodChqKTt1ZSs9dm9pZCAwPT09X2U/STpfZSxqKz0xfXJldHVybiB1ZX19LHtrZXk6ImFkanVzdEVsZW1lbnRzU2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1hcmd1bWVudHMu''@;'; + put 'put ''bGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO3RoaXMudXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSwodGhpcy5uZWVkRnVsbFJlbmRlcnx8eSkmJih0aGlzLmFkanVzdFJvb3RFbGVtZW50U2l6ZSgpLHRoaXMuYWRqdXN0Um9vdENoaWxkcmVuU2l6ZSgpKX19''@;'; + put 'put ''LHtrZXk6ImFkanVzdFJvb3RFbGVtZW50U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLndvdC53dFRhYmxlLEM9dGhpcy5kb21CaW5kaW5ncyxqPUMucm9vdFdpbmRvdyx1ZT1CYyhDLnJvb3REb2N1bWVudCksQmU9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2Rl''@;'; + put 'put ''LnN0eWxlLE5lPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTtpZih0aGlzLnRyaW1taW5nQ29udGFpbmVyIT09anx8Imhvcml6b250YWwiPT09TmUpe3ZhciBLZT10aGlzLndvdC53dFZpZXdwb3J0LmdldFdvcmtzcGFjZVdpZHRoKCk7dGhpcy53b3Qud3RP''@;'; + put 'put ''dmVybGF5cy5oYXNTY3JvbGxiYXJSaWdodCYmKEtlLT11ZSksS2U9TWF0aC5taW4oS2UseS53dFJvb3RFbGVtZW50LnNjcm9sbFdpZHRoKSxCZS53aWR0aD0iIi5jb25jYXQoS2UsInB4Iil9ZWxzZSBCZS53aWR0aD0iIjt0aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnN0eWxlLndpZHRoPUJl''@;'; + put 'put ''LndpZHRoO3ZhciBkdD1EMSh0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUpO3RoaXMud290Lnd0VGFibGUuaGFzRGVmaW5lZFNpemUoKXx8KGR0PTApLEJlLmhlaWdodD0iIi5jb25jYXQoZHQsInB4Iil9fSx7a2V5OiJhZGp1c3RSb290Q2hpbGRyZW5TaXplIix2YWx1ZTpmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciB5LEM9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlcixJPXRoaXMud290LnNlbGVjdGlvbnMsaj10aGlzLmZhY2FkZUdldHRlcigpLHVlPU1hdGguYWJzKG51bGwhPT0oeT1udWxsPT1JP3ZvaWQgMDpJLmdldENlbGwoKS5nZXRCb3JkZXIoaikuY29ybmVyQ2VudGVyUG9pbnRPZmZzZXQpJiZ2''@;'; + put 'put ''b2lkIDAhPT15P3k6MCk7dGhpcy5jbG9uZS53dFRhYmxlLmhpZGVyLnN0eWxlLndpZHRoPXRoaXMuaGlkZXIuc3R5bGUud2lkdGgsQy5zdHlsZS53aWR0aD1DLnBhcmVudE5vZGUuc3R5bGUud2lkdGgsQy5zdHlsZS5oZWlnaHQ9IiIuY29uY2F0KHBhcnNlSW50KEMucGFyZW50Tm9kZS5zdHls''@;'; + put 'put ''ZS5oZWlnaHQsMTApK3VlLCJweCIpfX0se2tleToiYXBwbHlUb0RPTSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik7aWYoIm51bWJlciI9PXR5cGVvZiB0aGlzLndvdC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9y''@;'; + put 'put ''LnN0YXJ0UG9zaXRpb24pdGhpcy5zcHJlYWRlci5zdHlsZS50b3A9IiIuY29uY2F0KHRoaXMud290Lnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbiwicHgiKTtlbHNle2lmKDAhPT15KXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHZhbHVlIG9mIHRoZSBy''@;'; + put 'put ''b3dzUmVuZGVyQ2FsY3VsYXRvciIpO3RoaXMuc3ByZWFkZXIuc3R5bGUudG9wPSIwIn10aGlzLnNwcmVhZGVyLnN0eWxlLmJvdHRvbT0iIix0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnN5bmNPdmVybGF5T2Zmc2V0KCl9fSx7a2V5OiJzeW5jT3ZlcmxheU9mZnNldCIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXt2YXIgeT10aGlzLmlzUnRsKCk/InJpZ2h0IjoibGVmdCI7dGhpcy5jbG9uZS53dFRhYmxlLnNwcmVhZGVyLnN0eWxlW3ldPSJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uPyIiLmNvbmNhdCh0aGlz''@;'; + put 'put ''LndvdC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24sInB4Iik6IiJ9fSx7a2V5OiJzY3JvbGxUbyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLndvdCxqPXRoaXMud3RTZXR0aW5ncyxfZT0oSS5jbG9uZVNvdXJjZT9JLmNsb25lU291cmNl''@;'; + put 'put ''OkkpLnd0VGFibGUuaG9sZGVyLEJlPXRoaXMuZ2V0VGFibGVQYXJlbnRPZmZzZXQoKSxOZT0wO2lmKEMmJnRoaXMud290Lnd0VGFibGUuZ2V0Um93SGVpZ2h0KHkpPnRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRIZWlnaHQoKSYmKEM9ITEpLEMmJl9lLm9mZnNldEhlaWdodCE9PV9l''@;'; + put 'put ''LmNsaWVudEhlaWdodCYmKE5lPUJjKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50KSksQyl7dmFyIE90PWouZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksJHQ9ai5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKTtCZSs9dGhpcy5zdW1DZWxsU2l6ZXMoMCx5KzEpLEJlLT1JLnd0Vmll''@;'; + put 'put ''d3BvcnQuZ2V0Vmlld3BvcnRIZWlnaHQoKS10aGlzLnN1bUNlbGxTaXplcygkdC1PdCwkdCksQmUrPTF9ZWxzZSBCZSs9dGhpcy5zdW1DZWxsU2l6ZXMoai5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKSx5KTtyZXR1cm4gdGhpcy5zZXRTY3JvbGxQb3NpdGlvbihCZSs9TmUpfX0se2tleToi''@;'; + put 'put ''Z2V0VGFibGVQYXJlbnRPZmZzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9PT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3c/dGhpcy53b3Qud3RUYWJsZS5ob2xkZXJPZmZzZXQudG9wOjB9fSx7a2V5OiJnZXRTY3JvbGxQb3Np''@;'; + put 'put ''dGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQloodGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudCx0aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3cpfX0se2tleToiZ2V0T3ZlcmxheU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmRvbUJpbmRpbmdzLnJvb3RX''@;'; + put 'put ''aW5kb3csQz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93IiksST0wO2lmKHRoaXMudHJpbW1pbmdDb250YWluZXI9PT15JiYoIUN8fCJ2ZXJ0aWNhbCIhPT1DKSl7dmFyIF9lPXRoaXMud290Lnd0VGFibGUuZ2V0VG90YWxIZWlnaHQoKS10aGlzLmNsb25lLnd0''@;'; + put 'put ''VGFibGUuZ2V0VG90YWxIZWlnaHQoKTsoST1NYXRoLm1heCh0aGlzLmdldFNjcm9sbFBvc2l0aW9uKCktdGhpcy5nZXRUYWJsZVBhcmVudE9mZnNldCgpLDApKT5fZSYmKEk9MCl9cmV0dXJuIEl9fSx7a2V5OiJhZGp1c3RIZWFkZXJCb3JkZXJzUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHkp''@;'; + put 'put ''e3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sST10aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLGo9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpO2o/cGwoSSwiZW1wdHlDb2x1bW5z''@;'; + put 'put ''Iik6TzAoSSwiZW1wdHlDb2x1bW5zIik7dmFyIHVlPSExO2lmKCFDKXt2YXIgX2U9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLEJlPXRoaXMuY2FjaGVkRml4ZWRSb3dzVG9wIT09X2UsTmU9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRl''@;'; + put 'put ''cnMiKTtpZigoQmV8fDA9PT1fZSkmJk5lLmxlbmd0aD4wKXt2YXIgS2U9dGwoSSwiaW5uZXJCb3JkZXJUb3AiKTt0aGlzLmNhY2hlZEZpeGVkUm93c1RvcD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzVG9wIikseXx8MD09PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5n''@;'; + put 'put ''KCJ0b3RhbFJvd3MiKT8oTzAoSSwiaW5uZXJCb3JkZXJUb3AiKSx1ZT0hS2UpOihwbChJLCJpbm5lckJvcmRlclRvcCIpLHVlPUtlKX19cmV0dXJuIHVlfX1dKSxofShRWiksaENlPXtnZXRGaXJzdFJlbmRlcmVkUm93OmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53dFNldHRpbmdzLmdldFNldHRp''@;'; + put 'put ''bmcoInRvdGFsUm93cyIpLGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpLHY9Zy1oO3JldHVybiAwPT09Z3x8MD09PWg/LTE6djwwPzA6dn0sZ2V0Rmlyc3RWaXNpYmxlUm93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0Rmlyc3RSZW5kZXJlZFJvdygp''@;'; + put 'put ''fSxnZXRMYXN0UmVuZGVyZWRSb3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLTF9LGdldExhc3RWaXNpYmxlUm93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0TGFzdFJlbmRlcmVkUm93KCl9LGdldFJlbmRlcmVkUm93c0NvdW50''@;'; + put 'put ''OmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpO3JldHVybiBNYXRoLm1pbih0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksZyl9LGdldFZpc2libGVSb3dzQ291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5nZXRSZW5kZXJlZFJvd3NDb3VudCgpfX07U2coaENlLCJNSVhJTl9OQU1FIiwic3RpY2t5Um93c0JvdHRvbSIse3dyaXRhYmxlOiExLGVudW1lcmFibGU6ITF9KTtjb25zdCBkQ2U9aENlO2Z1bmN0aW9uIGdkZShkKXtyZXR1cm4oZ2RlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJz''@;'; + put 'put ''eW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5''@;'; + put 'put ''cGVvZiBnfSkoZCl9ZnVuY3Rpb24gcENlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gbWRlKGQsZyl7cmV0dXJuKG1kZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEJZZShkLGcpe2lmKGcmJigi''@;'; + put 'put ''b2JqZWN0Ij09PWdkZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gUFllKGQp''@;'; + put 'put ''e2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24ga2VlKGQpe3JldHVybihrZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09i''@;'; + put 'put ''amVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgdmRlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBPWWUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhy''@;'; + put 'put ''b3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSks''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmbWRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gUlllKGQpe3ZhciBnPWZ1bmN0aW9uIEZZZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxS''@;'; + put 'put ''ZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQp''@;'; + put 'put ''e3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWtlZShkKTtpZihnKXt2YXIgQz1rZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEJZZSh0aGlzLHkp''@;'; + put 'put ''fX0oaCk7ZnVuY3Rpb24gaCh2LHksQyxJKXtyZXR1cm4gZnVuY3Rpb24gTFllKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZy5jYWxsKHRoaXMsdix5LEMsSSxFZyl9cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uIERZZShkLGcsaCl7cmV0dXJuIGcmJnBDZShkLnByb3RvdHlwZSxnKSxoJiZwQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxkfShoKX0oc08pO1IyKHZkZSxkQ2UpLFIyKHZkZSxpZGUpO2NvbnN0IEhZZT12ZGU7''@;'; + put 'put ''ZnVuY3Rpb24gQWRlKGQpe3JldHVybihBZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYm''@;'; + put 'put ''Zy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBTZWUoZCxnLGgpe3JldHVybihTZWU9dkNlKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj1bbnVsbF07ai5wdXNo''@;'; + put 'put ''LmFwcGx5KGosQyk7dmFyIF9lPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KHksaikpO3JldHVybiBJJiZNZWUoX2UsSS5wcm90b3R5cGUpLF9lfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGdDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3Yu''@;'; + put 'put ''ZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIE1lZShkLGcpe3JldHVybihNZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVj''@;'; + put 'put ''dC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiB6WWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1BZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5l''@;'; + put 'put ''dyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIG1DZShkKX1mdW5jdGlvbiBtQ2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlh''@;'; + put 'put ''bGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIHZDZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVv''@;'; + put 'put ''ZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBFZWUoZCl7cmV0dXJuKEVlZT1PYmplY3Quc2V0UHJv''@;'; + put 'put ''dG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBXWWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGpZZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZu''@;'; + put 'put ''dWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3Vy''@;'; + put 'put ''YWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZNZWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBaWWUoZCl7dmFyIGc9dkNlKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1FZWUoZCk7aWYoZyl7dmFyIEM9RWVlKHRo''@;'; + put 'put ''aXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB6WWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSl7dmFyIGo7cmV0dXJuIGZ1bmN0aW9uIE5ZZShkLGcpe2lmKCEoZCBp''@;'; + put 'put ''bnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGZ1bmN0aW9uIEdZZShkLGcsaCl7ZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFi''@;'; + put 'put ''bGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWh9KG1DZShqPWcuY2FsbCh0aGlzLHYseSxFZyxDLEkpKSwiY2FjaGVkRml4ZWRSb3dzQm90dG9tIiwtMSksai5jYWNoZWRGaXhlZFJvd3NCb3R0b209ai53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpLGp9cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uIFZZZShkLGcsaCl7ZyYmZ0NlKGQucHJvdG90eXBlLGcpLGgmJmdDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJjcmVhdGVUYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxl''@;'; + put 'put ''bmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gU2VlKEhZZSxDKX19LHtrZXk6InNob3VsZEJlUmVuZGVyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJzaG91bGRSZW5kZXJCb3R0b21P''@;'; + put 'put ''dmVybGF5Iil9fSx7a2V5OiJyZXNldEZpeGVkUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMubmVlZEZ1bGxSZW5kZXJ8fCF0aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKXJldHVybiExO3ZhciB5PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxDPXRoaXMu''@;'; + put 'put ''Y2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZTtDLnN0eWxlLnRvcD0iIjt2YXIgST0wLGo9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpO3RoaXMudHJpbW1pbmdDb250YWluZXIhPT15fHxqJiYidmVydGljYWwiPT09aj8oST10aGlzLmdldFNjcm9s''@;'; + put 'put ''bFBvc2l0aW9uKCksdGhpcy5yZXBvc2l0aW9uT3ZlcmxheSgpKTooST10aGlzLmdldE92ZXJsYXlPZmZzZXQoKSxDLnN0eWxlLmJvdHRvbT0iIi5jb25jYXQoSSwicHgiKSk7dmFyIHVlPXRoaXMuYWRqdXN0SGVhZGVyQm9yZGVyc1Bvc2l0aW9uKEkpO3JldHVybiB0aGlzLmFkanVzdEVsZW1l''@;'; + put 'put ''bnRzU2l6ZSgpLHVlfX0se2tleToicmVwb3NpdGlvbk92ZXJsYXkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy53b3QsQz15Lnd0VGFibGUsST15Lnd0Vmlld3BvcnQsaj10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudCx1ZT10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVu''@;'; + put 'put ''dE5vZGUsX2U9MDtJLmhhc1ZlcnRpY2FsU2Nyb2xsKCl8fChfZSs9SS5nZXRXb3Jrc3BhY2VIZWlnaHQoKS1DLmdldFRvdGFsSGVpZ2h0KCkpLEkuaGFzVmVydGljYWxTY3JvbGwoKSYmSS5oYXNIb3Jpem9udGFsU2Nyb2xsKCkmJihfZSs9QmMoaikpLHVlLnN0eWxlLmJvdHRvbT0iIi5jb25j''@;'; + put 'put ''YXQoX2UsInB4Iil9fSx7a2V5OiJzZXRTY3JvbGxQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LEk9ITE7cmV0dXJuIHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9PT1DPyhDLnNjcm9sbFRvKGJTKEMpLHkpLEk9ITAp''@;'; + put 'put ''OnRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wIT09eSYmKHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wPXksST0hMCksSX19LHtrZXk6Im9uU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJv''@;'; + put 'put ''blNjcm9sbEhvcml6b250YWxseSIpfX0se2tleToic3VtQ2VsbFNpemVzIix2YWx1ZTpmdW5jdGlvbih5LEMpe2Zvcih2YXIgST10aGlzLndvdCxqPUkud3RUYWJsZSxfZT1JLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVsdFJvd0hlaWdodCIpLEJlPXksTmU9MDtCZTxDOyl7dmFyIEtl''@;'; + put 'put ''PWouZ2V0Um93SGVpZ2h0KEJlKTtOZSs9dm9pZCAwPT09S2U/X2U6S2UsQmUrPTF9cmV0dXJuIE5lfX0se2tleToiYWRqdXN0RWxlbWVudHNTaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07''@;'; + put 'put ''dGhpcy51cGRhdGVUcmltbWluZ0NvbnRhaW5lcigpLCh0aGlzLm5lZWRGdWxsUmVuZGVyfHx5KSYmKHRoaXMuYWRqdXN0Um9vdEVsZW1lbnRTaXplKCksdGhpcy5hZGp1c3RSb290Q2hpbGRyZW5TaXplKCkpfX0se2tleToiYWRqdXN0Um9vdEVsZW1lbnRTaXplIix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e3ZhciB5PXRoaXMud290LEM9eS53dFRhYmxlLEk9eS53dFZpZXdwb3J0LGo9dGhpcy5kb21CaW5kaW5ncyxfZT1qLnJvb3RXaW5kb3csQmU9QmMoai5yb290RG9jdW1lbnQpLEtlPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZS5zdHlsZSxkdD10aGlzLnd0U2V0dGluZ3Mu''@;'; + put 'put ''Z2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iik7aWYodGhpcy50cmltbWluZ0NvbnRhaW5lciE9PV9lfHwiaG9yaXpvbnRhbCI9PT1kdCl7dmFyIE90PUkuZ2V0V29ya3NwYWNlV2lkdGgoKTt0aGlzLndvdC53dE92ZXJsYXlzLmhhc1Njcm9sbGJhclJpZ2h0JiYoT3QtPUJlKSxPdD1NYXRo''@;'; + put 'put ''Lm1pbihPdCxDLnd0Um9vdEVsZW1lbnQuc2Nyb2xsV2lkdGgpLEtlLndpZHRoPSIiLmNvbmNhdChPdCwicHgiKX1lbHNlIEtlLndpZHRoPSIiO3RoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIuc3R5bGUud2lkdGg9S2Uud2lkdGg7dmFyICR0PUQxKHRoaXMuY2xvbmUud3RUYWJsZS5UQUJMRSk7''@;'; + put 'put ''dGhpcy53b3Qud3RUYWJsZS5oYXNEZWZpbmVkU2l6ZSgpfHwoJHQ9MCksS2UuaGVpZ2h0PSIiLmNvbmNhdCgkdCwicHgiKX19LHtrZXk6ImFkanVzdFJvb3RDaGlsZHJlblNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlcjt0aGlzLmNsb25lLnd0''@;'; + put 'put ''VGFibGUuaGlkZXIuc3R5bGUud2lkdGg9dGhpcy5oaWRlci5zdHlsZS53aWR0aCx5LnN0eWxlLndpZHRoPXkucGFyZW50Tm9kZS5zdHlsZS53aWR0aCx5LnN0eWxlLmhlaWdodD15LnBhcmVudE5vZGUuc3R5bGUuaGVpZ2h0fX0se2tleToiYXBwbHlUb0RPTSIsdmFsdWU6ZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgeT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik7aWYoIm51bWJlciI9PXR5cGVvZiB0aGlzLndvdC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24pdGhpcy5zcHJlYWRlci5zdHlsZS50b3A9IiIuY29uY2F0KHRoaXMud290Lnd0''@;'; + put 'put ''Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbiwicHgiKTtlbHNle2lmKDAhPT15KXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHZhbHVlIG9mIHRoZSByb3dzUmVuZGVyQ2FsY3VsYXRvciIpO3RoaXMuc3ByZWFkZXIuc3R5bGUudG9wPSIwIn10aGlzLnNwcmVh''@;'; + put 'put ''ZGVyLnN0eWxlLmJvdHRvbT0iIix0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnN5bmNPdmVybGF5T2Zmc2V0KCl9fSx7a2V5OiJzeW5jT3ZlcmxheU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmlzUnRsKCk/InJpZ2h0IjoibGVmdCI7dGhpcy5jbG9uZS53dFRhYmxlLnNw''@;'; + put 'put ''cmVhZGVyLnN0eWxlW3ldPSJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uPyIiLmNvbmNhdCh0aGlzLndvdC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24sInB4Iik6''@;'; + put 'put ''IiJ9fSx7a2V5OiJzY3JvbGxUbyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmdldFRhYmxlUGFyZW50T2Zmc2V0KCksdWU9KHRoaXMud290LmNsb25lU291cmNlP3RoaXMud290LmNsb25lU291cmNlOnRoaXMud290KS53dFRhYmxlLmhvbGRlcixfZT0wO0MmJnVlLm9mZnNldEhl''@;'; + put 'put ''aWdodCE9PXVlLmNsaWVudEhlaWdodCYmKF9lPUJjKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50KSksQz8oSSs9dGhpcy5zdW1DZWxsU2l6ZXMoMCx5KzEpLEktPXRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRIZWlnaHQoKSxJKz0xKTpJKz10aGlzLnN1bUNlbGxTaXplcyh0''@;'; + put 'put ''aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIikseSksdGhpcy5zZXRTY3JvbGxQb3NpdGlvbihJKz1fZSl9fSx7a2V5OiJnZXRUYWJsZVBhcmVudE9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudD09''@;'; + put 'put ''PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdz90aGlzLndvdC53dFRhYmxlLmhvbGRlck9mZnNldC50b3A6MH19LHtrZXk6ImdldFNjcm9sbFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBCWih0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LHRoaXMuZG9tQmluZGlu''@;'; + put 'put ''Z3Mucm9vdFdpbmRvdyl9fSx7a2V5OiJnZXRPdmVybGF5T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxDPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKSxJPTA7aWYodGhpcy50cmltbWluZ0NvbnRh''@;'; + put 'put ''aW5lcj09PXkmJighQ3x8InZlcnRpY2FsIiE9PUMpKXt2YXIgaj10aGlzLndvdC53dFRhYmxlLmdldFRvdGFsSGVpZ2h0KCksX2U9ai10aGlzLmNsb25lLnd0VGFibGUuZ2V0VG90YWxIZWlnaHQoKSxCZT10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xp''@;'; + put 'put ''ZW50SGVpZ2h0OyhJPU1hdGgubWF4KHRoaXMuZ2V0VGFibGVQYXJlbnRPZmZzZXQoKS10aGlzLmdldFNjcm9sbFBvc2l0aW9uKCktQmUraiwwKSk+X2UmJihJPTApfXJldHVybiBJfX0se2tleToiYWRqdXN0SGVhZGVyQm9yZGVyc1Bvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10''@;'; + put 'put ''aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksST10aGlzLmNhY2hlZEZpeGVkUm93c0JvdHRvbSE9PUMsaj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpLHVlPSExO2lmKChJfHwwPT09QykmJmoubGVuZ3RoPjApe3ZhciBfZT10''@;'; + put 'put ''aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLEJlPXRsKF9lLCJpbm5lckJvcmRlckJvdHRvbSIpO3RoaXMuY2FjaGVkRml4ZWRSb3dzQm90dG9tPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKSx5fHwwPT09dGhpcy53dFNldHRpbmdzLmdldFNl''@;'; + put 'put ''dHRpbmcoInRvdGFsUm93cyIpPyhPMChfZSwiaW5uZXJCb3JkZXJCb3R0b20iKSx1ZT0hQmUpOihwbChfZSwiaW5uZXJCb3JkZXJCb3R0b20iKSx1ZT1CZSl9cmV0dXJuIHVlfX1dKSxofShRWiksQUNlPXtnZXRGaXJzdFJlbmRlcmVkUm93OmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5kYXRhQWNj''@;'; + put 'put ''ZXNzT2JqZWN0LnN0YXJ0Um93UmVuZGVyZWQ7cmV0dXJuIG51bGw9PT1nPy0xOmd9LGdldEZpcnN0VmlzaWJsZVJvdzpmdW5jdGlvbigpe3ZhciBnPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5zdGFydFJvd1Zpc2libGU7cmV0dXJuIG51bGw9PT1nPy0xOmd9LGdldExhc3RSZW5kZXJlZFJvdzpm''@;'; + put 'put ''dW5jdGlvbigpe3ZhciBnPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5lbmRSb3dSZW5kZXJlZDtyZXR1cm4gbnVsbD09PWc/LTE6Z30sZ2V0TGFzdFZpc2libGVSb3c6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmRhdGFBY2Nlc3NPYmplY3QuZW5kUm93VmlzaWJsZTtyZXR1cm4gbnVsbD09PWc/LTE6''@;'; + put 'put ''Z30sZ2V0UmVuZGVyZWRSb3dzQ291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhQWNjZXNzT2JqZWN0LmNvdW50Um93c1JlbmRlcmVkfSxnZXRWaXNpYmxlUm93c0NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vzc09iamVjdC5jb3VudFJvd3NWaXNpYmxlfX07U2co''@;'; + put 'put ''QUNlLCJNSVhJTl9OQU1FIiwiY2FsY3VsYXRlZFJvd3MiLHt3cml0YWJsZTohMSxlbnVtZXJhYmxlOiExfSk7Y29uc3QgeUNlPUFDZTt2YXIgd0NlPXtnZXRGaXJzdFJlbmRlcmVkQ29sdW1uOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxD''@;'; + put 'put ''b2x1bW5zIik/LTE6MH0sZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0Rmlyc3RSZW5kZXJlZENvbHVtbigpfSxnZXRMYXN0UmVuZGVyZWRDb2x1bW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpLTF9LGdldExh''@;'; + put 'put ''c3RWaXNpYmxlQ29sdW1uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0TGFzdFJlbmRlcmVkQ29sdW1uKCl9LGdldFJlbmRlcmVkQ29sdW1uc0NvdW50OmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpO3JldHVybiBNYXRoLm1pbih0''@;'; + put 'put ''aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSxnKX0sZ2V0VmlzaWJsZUNvbHVtbnNDb3VudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkQ29sdW1uc0NvdW50KCl9fTtTZyh3Q2UsIk1JWElOX05BTUUiLCJzdGlja3lDb2x1bW5zU3RhcnQi''@;'; + put 'put ''LHt3cml0YWJsZTohMSxlbnVtZXJhYmxlOiExfSk7Y29uc3QgeWRlPXdDZTtmdW5jdGlvbiB3ZGUoZCl7cmV0dXJuKHdkZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0''@;'; + put 'put ''aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGJDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1n''@;'; + put 'put ''W2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGJkZShkLGcpe3JldHVybihiZGU9T2JqZWN0LnNldFByb3RvdHlwZU9m''@;'; + put 'put ''P09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiAkWWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT13ZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRo''@;'; + put 'put ''cm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIHFZZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFs''@;'; + put 'put ''aXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIHhlZShkKXtyZXR1cm4oeGVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0''@;'; + put 'put ''LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIF9kZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gWFllKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0''@;'; + put 'put ''aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmJkZShkLGcpfSho''@;'; + put 'put ''LGQpO3ZhciBnPWZ1bmN0aW9uIEtZZShkKXt2YXIgZz1mdW5jdGlvbiBlVWUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJu''@;'; + put 'put ''ITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj14ZWUoZCk7aWYoZyl7dmFyIEM9eGVlKHRo''@;'; + put 'put ''aXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiAkWWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSl7cmV0dXJuIGZ1bmN0aW9uIEpZZShkLGcpe2lmKCEoZCBpbnN0YW5j''@;'; + put 'put ''ZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGcuY2FsbCh0aGlzLHYseSxDLEksa1MpfXJldHVybiBmdW5jdGlvbiBRWWUoZCxnLGgpe3JldHVybiBnJiZiQ2UoZC5wcm90b3R5cGUsZyksaCYmYkNlKGQsaCks''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZH0oaCl9KHNPKTtSMihfZGUseUNlKSxSMihfZGUseWRlKTtjb25zdCB0VWU9X2RlO2Z1bmN0aW9uIENkZShkKXtyZXR1cm4oQ2RlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10''@;'; + put 'put ''eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSko''@;'; + put 'put ''ZCl9ZnVuY3Rpb24gVGVlKGQsZyxoKXtyZXR1cm4oVGVlPUNDZSgpP1JlZmxlY3QuY29uc3RydWN0LmJpbmQoKTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9W251bGxdO2oucHVzaC5hcHBseShqLEMpO3ZhciBfZT1uZXcoRnVuY3Rpb24uYmluZC5hcHBseSh5LGopKTtyZXR1cm4gSSYmSWVlKF9l''@;'; + put 'put ''LEkucHJvdG90eXBlKSxfZX0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBfQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3Jp''@;'; + put 'put ''dGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBJZWUoZCxnKXtyZXR1cm4oSWVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQs''@;'; + put 'put ''Zyl9ZnVuY3Rpb24gYVVlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09Q2RlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVm''@;'; + put 'put ''aW5lZCIpO3JldHVybiBmdW5jdGlvbiBsVWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBDQ2UoKXtpZigidW5k''@;'; + put 'put ''ZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5j''@;'; + put 'put ''b25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19ZnVuY3Rpb24gRGVlKGQpe3JldHVybihEZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19f''@;'; + put 'put ''fHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgc1VlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBpVWUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9y''@;'; + put 'put ''IGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmSWVl''@;'; + put 'put ''KGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gb1VlKGQpe3ZhciBnPUNDZSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9RGVlKGQpO2lmKGcpe3ZhciBDPURlZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRo''@;'; + put 'put ''aXMsYXJndW1lbnRzKTtyZXR1cm4gYVVlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYseSxDLEkpe3JldHVybiBmdW5jdGlvbiBuVWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhp''@;'; + put 'put ''cyxoKSxnLmNhbGwodGhpcyx2LHksa1MsQyxJKX1yZXR1cm4gZnVuY3Rpb24gclVlKGQsZyxoKXtnJiZfQ2UoZC5wcm90b3R5cGUsZyksaCYmX0NlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImNyZWF0ZVRhYmxlIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiBUZWUodFVlLEMpfX0se2tleToic2hvdWxkQmVSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNl''@;'; + put 'put ''dHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheSIpfX0se2tleToicmVzZXRGaXhlZFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe2lmKCF0aGlzLm5lZWRGdWxsUmVuZGVyfHwhdGhpcy53b3Qud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSlyZXR1cm4h''@;'; + put 'put ''MTt2YXIgQz10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3csST10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUsaj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93IiksdWU9MDt0aGlzLnRyaW1taW5nQ29udGFpbmVyIT09Q3x8aiYmImhvcml6''@;'; + put 'put ''b250YWwiPT09aj8odWU9dGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLE5aKEkpKToodWU9dGhpcy5nZXRPdmVybGF5T2Zmc2V0KCkqKHRoaXMuaXNSdGwoKT8tMToxKSxyZWUoSSwiIi5jb25jYXQodWUsInB4IiksIjBweCIpKTt2YXIgX2U9dGhpcy5hZGp1c3RIZWFkZXJCb3JkZXJzUG9zaXRp''@;'; + put 'put ''b24odWUpO3JldHVybiB0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSgpLF9lfX0se2tleToic2V0U2Nyb2xsUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxJPSExO3JldHVybiB0aGlzLmlzUnRsKCkmJih5PS15KSx0aGlzLm1haW5U''@;'; + put 'put ''YWJsZVNjcm9sbGFibGVFbGVtZW50PT09QyYmQy5zY3JvbGxYIT09eT8oQy5zY3JvbGxUbyh5LG5PKEMpKSxJPSEwKTp0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LnNjcm9sbExlZnQhPT15JiYodGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0PXksST0h''@;'; + put 'put ''MCksSX19LHtrZXk6Im9uU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvblNjcm9sbFZlcnRpY2FsbHkiKX19LHtrZXk6InN1bUNlbGxTaXplcyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtmb3IodmFyIEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRp''@;'; + put 'put ''bmcoImRlZmF1bHRDb2x1bW5XaWR0aCIpLGo9eSx1ZT0wO2o8QzspdWUrPXRoaXMud290Lnd0VGFibGUuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoail8fEksais9MTtyZXR1cm4gdWV9fSx7a2V5OiJhZGp1c3RFbGVtZW50c1NpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRz''@;'; + put 'put ''Lmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTt0aGlzLnVwZGF0ZVRyaW1taW5nQ29udGFpbmVyKCksKHRoaXMubmVlZEZ1bGxSZW5kZXJ8fHkpJiYodGhpcy5hZGp1c3RSb290RWxlbWVudFNpemUoKSx0aGlzLmFkanVzdFJvb3RDaGlsZHJlblNpemUoKSl9''@;'; + put 'put ''fSx7a2V5OiJhZGp1c3RSb290RWxlbWVudFNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy53b3Qud3RUYWJsZSxDPXRoaXMuZG9tQmluZGluZ3Msaj1DLnJvb3RXaW5kb3csdWU9QmMoQy5yb290RG9jdW1lbnQpLEJlPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9k''@;'; + put 'put ''ZS5zdHlsZSxOZT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iik7aWYodGhpcy50cmltbWluZ0NvbnRhaW5lciE9PWp8fCJ2ZXJ0aWNhbCI9PT1OZSl7dmFyIEtlPXRoaXMud290Lnd0Vmlld3BvcnQuZ2V0V29ya3NwYWNlSGVpZ2h0KCk7dGhpcy53b3Qud3RP''@;'; + put 'put ''dmVybGF5cy5oYXNTY3JvbGxiYXJCb3R0b20mJihLZS09dWUpLEtlPU1hdGgubWluKEtlLHkud3RSb290RWxlbWVudC5zY3JvbGxIZWlnaHQpLEJlLmhlaWdodD0iIi5jb25jYXQoS2UsInB4Iil9ZWxzZSBCZS5oZWlnaHQ9IiI7dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5zdHlsZS5oZWln''@;'; + put 'put ''aHQ9QmUuaGVpZ2h0O3ZhciBkdD1FMih0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUpO0JlLndpZHRoPSIiLmNvbmNhdChkdCwicHgiKX19LHtrZXk6ImFkanVzdFJvb3RDaGlsZHJlblNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHksQz10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLEk9dGhp''@;'; + put 'put ''cy53b3Quc2VsZWN0aW9ucyxqPXRoaXMuZmFjYWRlR2V0dGVyKCksdWU9TWF0aC5hYnMobnVsbCE9PSh5PW51bGw9PUk/dm9pZCAwOkkuZ2V0Q2VsbCgpLmdldEJvcmRlcihqKS5jb3JuZXJDZW50ZXJQb2ludE9mZnNldCkmJnZvaWQgMCE9PXk/eTowKTt0aGlzLmNsb25lLnd0VGFibGUuaGlk''@;'; + put 'put ''ZXIuc3R5bGUuaGVpZ2h0PXRoaXMuaGlkZXIuc3R5bGUuaGVpZ2h0LEMuc3R5bGUuaGVpZ2h0PUMucGFyZW50Tm9kZS5zdHlsZS5oZWlnaHQsQy5zdHlsZS53aWR0aD0iIi5jb25jYXQocGFyc2VJbnQoQy5wYXJlbnROb2RlLnN0eWxlLndpZHRoLDEwKSt1ZSwicHgiKX19LHtrZXk6ImFwcGx5''@;'; + put 'put ''VG9ET00iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLEM9dGhpcy5pc1J0bCgpPyJyaWdodCI6ImxlZnQiO2lmKCJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRv''@;'; + put 'put ''ci5zdGFydFBvc2l0aW9uKXRoaXMuc3ByZWFkZXIuc3R5bGVbQ109IiIuY29uY2F0KHRoaXMud290Lnd0Vmlld3BvcnQuY29sdW1uc1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbiwicHgiKTtlbHNle2lmKDAhPT15KXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHZhbHVlIG9mIHRo''@;'; + put 'put ''ZSBjb2x1bW5zUmVuZGVyQ2FsY3VsYXRvciIpO3RoaXMuc3ByZWFkZXIuc3R5bGVbQ109IjAifXRoaXMuaXNSdGwoKT90aGlzLnNwcmVhZGVyLnN0eWxlLmxlZnQ9IiI6dGhpcy5zcHJlYWRlci5zdHlsZS5yaWdodD0iIix0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnN5bmNPdmVybGF5T2Zm''@;'; + put 'put ''c2V0KCl9fSx7a2V5OiJzeW5jT3ZlcmxheU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsb25lLnd0VGFibGUuc3ByZWFkZXIuc3R5bGUudG9wPSJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uPyIiLmNv''@;'; + put 'put ''bmNhdCh0aGlzLndvdC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24sInB4Iik6IiJ9fSx7a2V5OiJzY3JvbGxUbyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmdldFRhYmxlUGFyZW50T2Zmc2V0KCksdWU9KHRoaXMud290LmNsb25lU291cmNl''@;'; + put 'put ''P3RoaXMud290LmNsb25lU291cmNlOnRoaXMud290KS53dFRhYmxlLmhvbGRlcixfZT0wO3JldHVybiBDJiZ0aGlzLndvdC53dFRhYmxlLmdldENvbHVtbldpZHRoKHkpPnRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRXaWR0aCgpJiYoQz0hMSksQyYmdWUub2Zmc2V0V2lkdGghPT11''@;'; + put 'put ''ZS5jbGllbnRXaWR0aCYmKF9lPUJjKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50KSksQz8oSSs9dGhpcy5zdW1DZWxsU2l6ZXMoMCx5KzEpLEktPXRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRXaWR0aCgpKTpJKz10aGlzLnN1bUNlbGxTaXplcyh0aGlzLnd0U2V0dGluZ3Mu''@;'; + put 'put ''Z2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSx5KSx0aGlzLnNldFNjcm9sbFBvc2l0aW9uKEkrPV9lKX19LHtrZXk6ImdldFRhYmxlUGFyZW50T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBDPTA7cmV0dXJuIXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3Zl''@;'; + put 'put ''cmZsb3ciKSYmdGhpcy50cmltbWluZ0NvbnRhaW5lcj09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyYmKEM9dGhpcy53b3Qud3RUYWJsZS5ob2xkZXJPZmZzZXQubGVmdCksQ319LHtrZXk6ImdldFNjcm9sbFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBNYXRoLmFicyh0''@;'; + put 'put ''ZWUodGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudCx0aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3cpKX19LHtrZXk6ImdldE92ZXJsYXlPZmZzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LEM9dGhpcy53dFNldHRpbmdzLmdldFNl''@;'; + put 'put ''dHRpbmcoInByZXZlbnRPdmVyZmxvdyIpLEk9MDtyZXR1cm4gdGhpcy50cmltbWluZ0NvbnRhaW5lciE9PXl8fEMmJiJob3Jpem9udGFsIj09PUN8fChJPXRoaXMuaXNSdGwoKT9NYXRoLmFicyhNYXRoLm1pbih0aGlzLmdldFRhYmxlUGFyZW50T2Zmc2V0KCktdGhpcy5nZXRTY3JvbGxQb3Np''@;'; + put 'put ''dGlvbigpLDApKTpNYXRoLm1heCh0aGlzLmdldFNjcm9sbFBvc2l0aW9uKCktdGhpcy5nZXRUYWJsZVBhcmVudE9mZnNldCgpLDApKT50aGlzLndvdC53dFRhYmxlLmdldFRvdGFsV2lkdGgoKS10aGlzLmNsb25lLnd0VGFibGUuZ2V0VG90YWxXaWR0aCgpJiYoST0wKSxJfX0se2tleToiYWRq''@;'; + put 'put ''dXN0SGVhZGVyQm9yZGVyc1Bvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcnMiKSxqPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZENv''@;'; + put 'put ''bHVtbnNTdGFydCIpO3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKT9wbChDLCJlbXB0eVJvd3MiKTpPMChDLCJlbXB0eVJvd3MiKTt2YXIgX2U9ITE7aWYoaiYmIUkubGVuZ3RoKU8wKEMsImlubmVyQm9yZGVyTGVmdCBpbm5lckJvcmRlcklubGluZVN0YXJ0Iik7ZWxz''@;'; + put 'put ''ZSBpZighaiYmSS5sZW5ndGgpe3ZhciBCZT10bChDLCJpbm5lckJvcmRlcklubGluZVN0YXJ0Iik7eT8oTzAoQywiaW5uZXJCb3JkZXJMZWZ0IGlubmVyQm9yZGVySW5saW5lU3RhcnQiKSxfZT0hQmUpOihwbChDLCJpbm5lckJvcmRlckxlZnQgaW5uZXJCb3JkZXJJbmxpbmVTdGFydCIpLF9l''@;'; + put 'put ''PUJlKX1yZXR1cm4gX2V9fV0pLGh9KFFaKTtmdW5jdGlvbiBrZGUoZCl7cmV0dXJuKGtkZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYi''@;'; + put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGtDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12''@;'; + put 'put ''LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFNkZShkLGcpe3JldHVybihTZGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5''@;'; + put 'put ''cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBkVWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1rZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''IkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIHBVZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFz''@;'; + put 'put ''bid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIExlZShkKXtyZXR1cm4oTGVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgp''@;'; + put 'put ''fSkoZCl9dmFyIE1kZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gZlVlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9''@;'; + put 'put ''T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlNkZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9u''@;'; + put 'put ''IGhVZShkKXt2YXIgZz1mdW5jdGlvbiBnVWUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29s''@;'; + put 'put ''ZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1MZWUoZCk7aWYoZyl7dmFyIEM9TGVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9''@;'; + put 'put ''UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBkVWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSl7cmV0dXJuIGZ1bmN0aW9uIGNVZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBU''@;'; + put 'put ''eXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGcuY2FsbCh0aGlzLHYseSxDLEksU1MpfXJldHVybiBmdW5jdGlvbiB1VWUoZCxnLGgpe3JldHVybiBnJiZrQ2UoZC5wcm90b3R5cGUsZyksaCYma0NlKGQsaCksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZH0oaCl9KHNPKTtSMihNZGUsSl9lKSxSMihNZGUseWRlKTtjb25zdCBtVWU9TWRlO2Z1bmN0aW9uIEVkZShkKXtyZXR1cm4oRWRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJh''@;'; + put 'put ''dG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gT2VlKGQs''@;'; + put 'put ''ZyxoKXtyZXR1cm4oT2VlPU1DZSgpP1JlZmxlY3QuY29uc3RydWN0LmJpbmQoKTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9W251bGxdO2oucHVzaC5hcHBseShqLEMpO3ZhciBfZT1uZXcoRnVuY3Rpb24uYmluZC5hcHBseSh5LGopKTtyZXR1cm4gSSYmUmVlKF9lLEkucHJvdG90eXBlKSxfZX0p''@;'; + put 'put ''LmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBTQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5k''@;'; + put 'put ''ZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBSZWUoZCxnKXtyZXR1cm4oUmVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gYlVlKGQs''@;'; + put 'put ''Zyl7aWYoZyYmKCJvYmplY3QiPT09RWRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiB4ZGUo''@;'; + put 'put ''ZCl9ZnVuY3Rpb24geGRlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBNQ2UoKXtpZigidW5kZWZpbmVkIj09dHlwZW9m''@;'; + put 'put ''IFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVh''@;'; + put 'put ''bixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19ZnVuY3Rpb24gQmVlKGQpe3JldHVybihCZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJv''@;'; + put 'put ''dG90eXBlT2YoaCl9KShkKX1mdW5jdGlvbiBFQ2UoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBfVWU9ZnVuY3Rpb24oZCl7IWZ1bmN0''@;'; + put 'put ''aW9uIHlVZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2Nv''@;'; + put 'put ''bnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZSZWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiB3VWUoZCl7dmFyIGc9TUNlKCk7cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIHksdj1CZWUoZCk7aWYoZyl7dmFyIEM9QmVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBiVWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSxq''@;'; + put 'put ''LHVlKXt2YXIgX2U7cmV0dXJuIGZ1bmN0aW9uIHZVZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLEVDZSh4ZGUoX2U9Zy5jYWxsKHRoaXMsdix5LFNTLEMsSSkpLCJ0b3BP''@;'; + put 'put ''dmVybGF5Iix2b2lkIDApLEVDZSh4ZGUoX2UpLCJpbmxpbmVTdGFydE92ZXJsYXkiLHZvaWQgMCksX2UudG9wT3ZlcmxheT1qLF9lLmlubGluZVN0YXJ0T3ZlcmxheT11ZSxfZX1yZXR1cm4gZnVuY3Rpb24gQVVlKGQsZyxoKXtnJiZTQ2UoZC5wcm90b3R5cGUsZyksaCYmU0NlKGQsaCksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImNyZWF0ZVRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVy''@;'; + put 'put ''biBPZWUobVVlLEMpfX0se2tleToic2hvdWxkQmVSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlclRvcE92ZXJsYXkiKSYmdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlcklubGluZVN0''@;'; + put 'put ''YXJ0T3ZlcmxheSIpfX0se2tleToicmVzZXRGaXhlZFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMudXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSwhdGhpcy53b3Qud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSlyZXR1cm4hMTt2YXIgeT10aGlzLmNsb25lLnd0VGFibGUuaG9s''@;'; + put 'put ''ZGVyLnBhcmVudE5vZGU7aWYodGhpcy50cmltbWluZ0NvbnRhaW5lcj09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyl7dmFyIEM9dGhpcy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpKih0aGlzLmlzUnRsKCk/LTE6MSksST10aGlzLnRvcE92ZXJsYXkuZ2V0T3Zl''@;'; + put 'put ''cmxheU9mZnNldCgpO3JlZSh5LCIiLmNvbmNhdChDLCJweCIpLCIiLmNvbmNhdChJLCJweCIpKX1lbHNlIE5aKHkpO3ZhciBqPUQxKHRoaXMuY2xvbmUud3RUYWJsZS5UQUJMRSksdWU9RTIodGhpcy5jbG9uZS53dFRhYmxlLlRBQkxFKTtyZXR1cm4gdGhpcy53b3Qud3RUYWJsZS5oYXNEZWZp''@;'; + put 'put ''bmVkU2l6ZSgpfHwoaj0wKSx5LnN0eWxlLmhlaWdodD0iIi5jb25jYXQoaiwicHgiKSx5LnN0eWxlLndpZHRoPSIiLmNvbmNhdCh1ZSwicHgiKSwhMX19XSksaH0oUVopO2Z1bmN0aW9uIFRkZShkKXtyZXR1cm4oVGRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBl''@;'; + put 'put ''b2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9''@;'; + put 'put ''ZnVuY3Rpb24geENlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2''@;'; + put 'put ''KX19ZnVuY3Rpb24gSWRlKGQsZyl7cmV0dXJuKElkZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEVVZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PVRk''@;'; + put 'put ''ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24geFVlKGQpe2lmKHZvaWQgMD09''@;'; + put 'put ''PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gUGVlKGQpe3JldHVybihQZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90''@;'; + put 'put ''b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgRGRlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBTVWUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVF''@;'; + put 'put ''cnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmSWRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gTVVlKGQpe3ZhciBnPWZ1bmN0aW9uIFRVZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0''@;'; + put 'put ''cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0o''@;'; + put 'put ''KTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVBlZShkKTtpZihnKXt2YXIgQz1QZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEVVZSh0aGlzLHkpfX0oaCk7ZnVuY3Rp''@;'; + put 'put ''b24gaCh2LHksQyxJKXtyZXR1cm4gZnVuY3Rpb24ga1VlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZy5jYWxsKHRoaXMsdix5LEMsSSxNdyl9cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''IENVZShkLGcsaCl7cmV0dXJuIGcmJnhDZShkLnByb3RvdHlwZSxnKSxoJiZ4Q2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxkfShoKX0oc08pO1IyKERkZSxkQ2UpLFIyKERkZSx5ZGUpO2NvbnN0IElVZT1EZGU7ZnVuY3Rpb24gTGRl''@;'; + put 'put ''KGQpe3JldHVybihMZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rv''@;'; + put 'put ''cj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBGZWUoZCxnLGgpe3JldHVybihGZWU9SUNlKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj1bbnVsbF07ai5wdXNoLmFwcGx5KGosQyk7''@;'; + put 'put ''dmFyIF9lPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KHksaikpO3JldHVybiBJJiZIZWUoX2UsSS5wcm90b3R5cGUpLF9lfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIFRDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12''@;'; + put 'put ''LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEhlZShkLGcpe3JldHVybihIZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5''@;'; + put 'put ''cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBCVWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1MZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''IkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIFBVZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFz''@;'; + put 'put ''bid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIElDZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4h''@;'; + put 'put ''MDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBOZWUoZCl7cmV0dXJuKE5lZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0''@;'; + put 'put ''LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBGVWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIE9VZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBu''@;'; + put 'put ''ZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZIZWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBSVWUoZCl7dmFyIGc9SUNlKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1OZWUoZCk7aWYoZyl7dmFyIEM9TmVlKHRoaXMpLmNvbnN0cnVjdG9y''@;'; + put 'put ''O3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBCVWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSxqLHVlKXt2YXIgX2U7cmV0dXJuIGZ1bmN0aW9uIERVZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9m''@;'; + put 'put ''IGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLChfZT1nLmNhbGwodGhpcyx2LHksTXcsQyxJKSkuYm90dG9tT3ZlcmxheT1qLF9lLmlubGluZVN0YXJ0T3ZlcmxheT11ZSxfZX1yZXR1cm4gZnVuY3Rpb24gTFVlKGQs''@;'; + put 'put ''ZyxoKXtnJiZUQ2UoZC5wcm90b3R5cGUsZyksaCYmVENlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImNyZWF0ZVRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFy''@;'; + put 'put ''cmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiBGZWUoSVVlLEMpfX0se2tleToic2hvdWxkQmVSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlckJvdHRvbU92ZXJsYXkiKSYmdGhp''@;'; + put 'put ''cy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheSIpfX0se2tleToicmVzZXRGaXhlZFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMud290O2lmKHRoaXMudXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSwheS53dFRhYmxlLmhv''@;'; + put 'put ''bGRlci5wYXJlbnROb2RlKXJldHVybiExO3ZhciBDPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZTtpZihDLnN0eWxlLnRvcD0iIix0aGlzLnRyaW1taW5nQ29udGFpbmVyPT09dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93KXt2YXIgST10aGlzLmlubGluZVN0YXJ0T3Zl''@;'; + put 'put ''cmxheS5nZXRPdmVybGF5T2Zmc2V0KCksaj10aGlzLmJvdHRvbU92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpO0Muc3R5bGVbdGhpcy5pc1J0bCgpPyJyaWdodCI6ImxlZnQiXT0iIi5jb25jYXQoSSwicHgiKSxDLnN0eWxlLmJvdHRvbT0iIi5jb25jYXQoaiwicHgiKX1lbHNlIE5aKEMpLHRo''@;'; + put 'put ''aXMucmVwb3NpdGlvbk92ZXJsYXkoKTt2YXIgdWU9RDEodGhpcy5jbG9uZS53dFRhYmxlLlRBQkxFKSxfZT1FMih0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUpO3JldHVybiB0aGlzLndvdC53dFRhYmxlLmhhc0RlZmluZWRTaXplKCl8fCh1ZT0wKSxDLnN0eWxlLmhlaWdodD0iIi5jb25jYXQo''@;'; + put 'put ''dWUsInB4IiksQy5zdHlsZS53aWR0aD0iIi5jb25jYXQoX2UsInB4IiksITF9fSx7a2V5OiJyZXBvc2l0aW9uT3ZlcmxheSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLndvdCxDPXkud3RUYWJsZSxJPXkud3RWaWV3cG9ydCxqPXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50LHVl''@;'; + put 'put ''PXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSxfZT0wO0kuaGFzVmVydGljYWxTY3JvbGwoKXx8KF9lKz1JLmdldFdvcmtzcGFjZUhlaWdodCgpLUMuZ2V0VG90YWxIZWlnaHQoKSksSS5oYXNWZXJ0aWNhbFNjcm9sbCgpJiZJLmhhc0hvcml6b250YWxTY3JvbGwoKSYmKF9l''@;'; + put 'put ''Kz1CYyhqKSksdWUuc3R5bGUuYm90dG9tPSIiLmNvbmNhdChfZSwicHgiKX19XSksaH0oUVopO2Z1bmN0aW9uIEV3KGQsZyxoKXtyZXR1cm4oRXc9SFVlKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj1bbnVsbF07ai5wdXNoLmFwcGx5KGosQyk7dmFy''@;'; + put 'put ''IF9lPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KHksaikpO3JldHVybiBJJiZPZGUoX2UsSS5wcm90b3R5cGUpLF9lfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIEhVZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0''@;'; + put 'put ''LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVy''@;'; + put 'put ''biExfX1mdW5jdGlvbiBPZGUoZCxnKXtyZXR1cm4oT2RlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gRENlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxl''@;'; + put 'put ''bmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24geHcoZCxnLGgpe3JldHVybiBnIGluIGQ/''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBqVWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCx2LHksQyxJKXsoZnVuY3Rpb24gTlVlKGQsZyl7aWYoIShkIGluc3RhbmNl''@;'; + put 'put ''b2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHh3KHRoaXMsIndvdCIsbnVsbCkseHcodGhpcywidG9wT3ZlcmxheSIsbnVsbCkseHcodGhpcywiYm90dG9tT3ZlcmxheSIsbnVsbCkseHcodGhpcywiaW5saW5l''@;'; + put 'put ''U3RhcnRPdmVybGF5IixudWxsKSx4dyh0aGlzLCJ0b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkiLG51bGwpLHh3KHRoaXMsImJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSIsbnVsbCkseHcodGhpcywiYnJvd3NlckxpbmVIZWlnaHQiLHZvaWQgMCkseHcodGhpcywid3RTZXR0aW5n''@;'; + put 'put ''cyIsbnVsbCksdGhpcy53b3Q9Zyx0aGlzLnd0U2V0dGluZ3M9eSx0aGlzLmRvbUJpbmRpbmdzPXYsdGhpcy5mYWNhZGVHZXR0ZXI9aCx0aGlzLnd0VGFibGU9STt2YXIgaj10aGlzLmRvbUJpbmRpbmdzLHVlPWoucm9vdERvY3VtZW50LF9lPWoucm9vdFdpbmRvdzt0aGlzLmluc3RhbmNlPXRo''@;'; + put 'put ''aXMud290LHRoaXMuZXZlbnRNYW5hZ2VyPUMsdGhpcy5zY3JvbGxiYXJTaXplPUJjKHVlKTt2YXIgQmU9ImhpZGRlbiI9PT1fZS5nZXRDb21wdXRlZFN0eWxlKEkud3RSb290RWxlbWVudC5wYXJlbnROb2RlKS5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdyIpO3RoaXMuc2Nyb2xsYWJsZUVs''@;'; + put 'put ''ZW1lbnQ9QmU/SS5ob2xkZXI6UFooSS5UQUJMRSksdGhpcy5pbml0T3ZlcmxheXMoKSx0aGlzLmhhc1Njcm9sbGJhckJvdHRvbT0hMSx0aGlzLmhhc1Njcm9sbGJhclJpZ2h0PSExLHRoaXMuZGVzdHJveWVkPSExLHRoaXMua2V5UHJlc3NlZD0hMSx0aGlzLnNwcmVhZGVyTGFzdFNpemU9e3dp''@;'; + put 'put ''ZHRoOm51bGwsaGVpZ2h0Om51bGx9LHRoaXMudmVydGljYWxTY3JvbGxpbmc9ITEsdGhpcy5ob3Jpem9udGFsU2Nyb2xsaW5nPSExLHRoaXMuaW5pdEJyb3dzZXJMaW5lSGVpZ2h0KCksdGhpcy5yZWdpc3Rlckxpc3RlbmVycygpLHRoaXMubGFzdFNjcm9sbFg9X2Uuc2Nyb2xsWCx0aGlzLmxh''@;'; + put 'put ''c3RTY3JvbGxZPV9lLnNjcm9sbFl9cmV0dXJuIGZ1bmN0aW9uIFZVZShkLGcsaCl7ZyYmRENlKGQucHJvdG90eXBlLGcpLGgmJkRDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJpbml0QnJvd3NlckxpbmVIZWlnaHQi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5kb21CaW5kaW5ncyxDPWgucm9vdFdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGgucm9vdERvY3VtZW50LmJvZHkpLEk9cGFyc2VJbnQoQy5saW5lSGVpZ2h0LDEwKSxqPTEuMipwYXJzZUludChDLmZvbnRTaXplLDEwKTt0aGlzLmJyb3dzZXJM''@;'; + put 'put ''aW5lSGVpZ2h0PUl8fGp9fSx7a2V5OiJpbml0T3ZlcmxheXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9W3RoaXMud290LHRoaXMuZmFjYWRlR2V0dGVyLHRoaXMud3RTZXR0aW5ncyx0aGlzLmRvbUJpbmRpbmdzXTt0aGlzLnRvcE92ZXJsYXk9RXcoVFllLGgpLHRoaXMuYm90dG9tT3Zlcmxh''@;'; + put 'put ''eT1FdyhXWWUsaCksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXk9RXcoc1VlLGgpLHRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5PUV3KF9VZSxoLmNvbmNhdChbdGhpcy50b3BPdmVybGF5LHRoaXMuaW5saW5lU3RhcnRPdmVybGF5XSkpLHRoaXMuYm90dG9tSW5saW5lU3RhcnRDb3Ju''@;'; + put 'put ''ZXJPdmVybGF5PUV3KEZVZSxoLmNvbmNhdChbdGhpcy5ib3R0b21PdmVybGF5LHRoaXMuaW5saW5lU3RhcnRPdmVybGF5XSkpfX0se2tleToidXBkYXRlU3RhdGVPZlJlbmRlcmluZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnRvcE92ZXJsYXkudXBkYXRlU3RhdGVPZlJlbmRlcmlu''@;'; + put 'put ''ZygpO3JldHVybiBoPXRoaXMuYm90dG9tT3ZlcmxheS51cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCl8fGgsaD10aGlzLmlubGluZVN0YXJ0T3ZlcmxheS51cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCl8fGgsdGhpcy5pbmxpbmVTdGFydE92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJih0aGlzLnRvcE92''@;'; + put 'put ''ZXJsYXkubmVlZEZ1bGxSZW5kZXImJihoPXRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LnVwZGF0ZVN0YXRlT2ZSZW5kZXJpbmcoKXx8aCksdGhpcy5ib3R0b21PdmVybGF5Lm5lZWRGdWxsUmVuZGVyJiYoaD10aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS51cGRh''@;'; + put 'put ''dGVTdGF0ZU9mUmVuZGVyaW5nKCl8fGgpKSxofX0se2tleToicmVmcmVzaEFsbCIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLndvdC5kcmF3bil7aWYoIXRoaXMud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSlyZXR1cm4gdm9pZCB0aGlzLmRlc3Ryb3koKTt0aGlzLndvdC5kcmF3KCEwKSx0''@;'; + put 'put ''aGlzLnZlcnRpY2FsU2Nyb2xsaW5nJiZ0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5vblNjcm9sbCgpLHRoaXMuaG9yaXpvbnRhbFNjcm9sbGluZyYmdGhpcy50b3BPdmVybGF5Lm9uU2Nyb2xsKCksdGhpcy52ZXJ0aWNhbFNjcm9sbGluZz0hMSx0aGlzLmhvcml6b250YWxTY3JvbGxpbmc9ITF9''@;'; + put 'put ''fX0se2tleToicmVnaXN0ZXJMaXN0ZW5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PXRoaXMuZG9tQmluZGluZ3MseT12LnJvb3REb2N1bWVudCxDPXYucm9vdFdpbmRvdyxJPXRoaXMudG9wT3ZlcmxheS5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudCxqPXRoaXMuaW5saW5l''@;'; + put 'put ''U3RhcnRPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50O3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoeS5kb2N1bWVudEVsZW1lbnQsImtleWRvd24iLGZ1bmN0aW9uKE90KXtyZXR1cm4gaC5vbktleURvd24oT3QpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZl''@;'; + put 'put ''bnRMaXN0ZW5lcih5LmRvY3VtZW50RWxlbWVudCwia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIGgub25LZXlVcCgpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih5LCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBoLm9uS2V5VXAoKX0pLHRoaXMuZXZl''@;'; + put 'put ''bnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSSwic2Nyb2xsIixmdW5jdGlvbihPdCl7cmV0dXJuIGgub25UYWJsZVNjcm9sbChPdCl9LHtwYXNzaXZlOiEwfSksSSE9PWomJnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoaiwic2Nyb2xsIixmdW5jdGlvbihPdCl7cmV0dXJu''@;'; + put 'put ''IGgub25UYWJsZVNjcm9sbChPdCl9LHtwYXNzaXZlOiEwfSk7dmFyIGR0LHVlPUMuZGV2aWNlUGl4ZWxSYXRpbyYmQy5kZXZpY2VQaXhlbFJhdGlvPjEsX2U9dGhpcy5zY3JvbGxhYmxlRWxlbWVudD09PUMsQmU9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRXaGVlbCIpLE5l''@;'; + put 'put ''PXtwYXNzaXZlOl9lfTsoQmV8fHVlfHwhbWJlKCkpJiZ0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RUYWJsZS53dFJvb3RFbGVtZW50LCJ3aGVlbCIsZnVuY3Rpb24oT3Qpe3JldHVybiBoLm9uQ2xvbmVXaGVlbChPdCxCZSl9LE5lKSxbdGhpcy50b3BPdmVybGF5''@;'; + put 'put ''LHRoaXMuYm90dG9tT3ZlcmxheSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheSx0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSx0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheV0uZm9yRWFjaChmdW5jdGlvbihPdCl7T3QmJk90Lm5lZWRGdWxsUmVuZGVyJiZoLmV2ZW50''@;'; + put 'put ''TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKE90LmNsb25lLnd0VGFibGUuaG9sZGVyLCJ3aGVlbCIsZnVuY3Rpb24oZm4pe3JldHVybiBoLm9uQ2xvbmVXaGVlbChmbixCZSl9LE5lKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywicmVzaXplIixmdW5jdGlvbigpe2Ns''@;'; + put 'put ''ZWFyVGltZW91dChkdCksZHQ9c2V0VGltZW91dChmdW5jdGlvbigpe2gud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvbldpbmRvd1Jlc2l6ZSIpfSwyMDApfSl9fSx7a2V5OiJkZXJlZ2lzdGVyTGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyRXZlbnRz''@;'; + put 'put ''KCEwKX19LHtrZXk6Im9uVGFibGVTY3JvbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyx5PXRoaXMuaW5saW5lU3RhcnRPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LEM9dGhpcy50b3BPdmVybGF5Lm1haW5UYWJsZVNjcm9s''@;'; + put 'put ''bGFibGVFbGVtZW50LEk9aC50YXJnZXQ7dGhpcy5rZXlQcmVzc2VkJiYoQyE9PXYmJkkhPT12JiYhaC50YXJnZXQuY29udGFpbnMoQyl8fHkhPT12JiZJIT09diYmIWgudGFyZ2V0LmNvbnRhaW5zKHkpKXx8dGhpcy5zeW5jU2Nyb2xsUG9zaXRpb25zKGgpfX0se2tleToib25DbG9uZVdoZWVs''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxDPXRoaXMuaW5saW5lU3RhcnRPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LEk9dGhpcy50b3BPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LGo9aC50YXJnZXQs''@;'; + put 'put ''dWU9SSE9PXkmJmohPT15JiYhai5jb250YWlucyhJKSxfZT1DIT09eSYmaiE9PXkmJiFqLmNvbnRhaW5zKEMpO2lmKCF0aGlzLmtleVByZXNzZWR8fCF1ZSYmIV9lKXt2YXIgQmU9dGhpcy50cmFuc2xhdGVNb3VzZVdoZWVsVG9TY3JvbGwoaCk7KHZ8fHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQh''@;'; + put 'put ''PT15JiZCZSkmJmgucHJldmVudERlZmF1bHQoKX19fSx7a2V5OiJvbktleURvd24iLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMua2V5UHJlc3NlZD1pTyhoLmtleUNvZGUsIkFSUk9XX1VQfEFSUk9XX1JJR0hUfEFSUk9XX0RPV058QVJST1dfTEVGVCIpfX0se2tleToib25LZXlVcCIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oKXt0aGlzLmtleVByZXNzZWQ9ITF9fSx7a2V5OiJ0cmFuc2xhdGVNb3VzZVdoZWVsVG9TY3JvbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWlzTmFOKGguZGVsdGFZKT8tMSpoLndoZWVsRGVsdGFZOmguZGVsdGFZLHk9aXNOYU4oaC5kZWx0YVgpPy0xKmgud2hlZWxEZWx0''@;'; + put 'put ''YVg6aC5kZWx0YVg7MT09PWguZGVsdGFNb2RlJiYoeSs9eSp0aGlzLmJyb3dzZXJMaW5lSGVpZ2h0LHYrPXYqdGhpcy5icm93c2VyTGluZUhlaWdodCk7dmFyIEM9dGhpcy5zY3JvbGxWZXJ0aWNhbGx5KHYpLEk9dGhpcy5zY3JvbGxIb3Jpem9udGFsbHkoeSk7cmV0dXJuIEN8fEl9fSx7a2V5''@;'; + put 'put ''OiJzY3JvbGxWZXJ0aWNhbGx5Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcDtyZXR1cm4gdGhpcy5zY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxUb3ArPWgsdiE9PXRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wfX0se2tleToi''@;'; + put 'put ''c2Nyb2xsSG9yaXpvbnRhbGx5Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbExlZnQ7cmV0dXJuIHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsTGVmdCs9aCx2IT09dGhpcy5zY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0fX0se2tl''@;'; + put 'put ''eToic3luY1Njcm9sbFBvc2l0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy5kZXN0cm95ZWQpe3ZhciBoPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyx2PXRoaXMudG9wT3ZlcmxheS5jbG9uZS53dFRhYmxlLmhvbGRlcix5PXRoaXMuaW5saW5lU3RhcnRPdmVybGF5LmNsb25l''@;'; + put 'put ''Lnd0VGFibGUuaG9sZGVyLEM9W3RoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsTGVmdCx0aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcF0sST1DWzBdLGo9Q1sxXTtpZih0aGlzLmhvcml6b250YWxTY3JvbGxpbmc9di5zY3JvbGxMZWZ0IT09SXx8dGhpcy5sYXN0U2Nyb2xsWCE9''@;'; + put 'put ''PWguc2Nyb2xsWCx0aGlzLnZlcnRpY2FsU2Nyb2xsaW5nPXkuc2Nyb2xsVG9wIT09anx8dGhpcy5sYXN0U2Nyb2xsWSE9PWguc2Nyb2xsWSx0aGlzLmxhc3RTY3JvbGxYPWguc2Nyb2xsWCx0aGlzLmxhc3RTY3JvbGxZPWguc2Nyb2xsWSx0aGlzLmhvcml6b250YWxTY3JvbGxpbmcpe3Yuc2Ny''@;'; + put 'put ''b2xsTGVmdD1JO3ZhciB1ZT10aGlzLmJvdHRvbU92ZXJsYXkubmVlZEZ1bGxSZW5kZXI/dGhpcy5ib3R0b21PdmVybGF5LmNsb25lLnd0VGFibGUuaG9sZGVyOm51bGw7dWUmJih1ZS5zY3JvbGxMZWZ0PUkpfXRoaXMudmVydGljYWxTY3JvbGxpbmcmJih5LnNjcm9sbFRvcD1qKSx0aGlzLnJl''@;'; + put 'put ''ZnJlc2hBbGwoKX19fSx7a2V5OiJzeW5jU2Nyb2xsV2l0aE1hc3RlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnRvcE92ZXJsYXkubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQsdj1oLnNjcm9sbExlZnQseT1oLnNjcm9sbFRvcDt0aGlzLnRvcE92ZXJsYXkubmVlZEZ1bGxSZW5k''@;'; + put 'put ''ZXImJih0aGlzLnRvcE92ZXJsYXkuY2xvbmUud3RUYWJsZS5ob2xkZXIuc2Nyb2xsTGVmdD12KSx0aGlzLmJvdHRvbU92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJih0aGlzLmJvdHRvbU92ZXJsYXkuY2xvbmUud3RUYWJsZS5ob2xkZXIuc2Nyb2xsTGVmdD12KSx0aGlzLmlubGluZVN0YXJ0T3Zl''@;'; + put 'put ''cmxheS5uZWVkRnVsbFJlbmRlciYmKHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LmNsb25lLnd0VGFibGUuaG9sZGVyLnNjcm9sbFRvcD15KX19LHtrZXk6InVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kZXJlZ2lzdGVyTGlzdGVuZXJzKCksdGhp''@;'; + put 'put ''cy5pbmxpbmVTdGFydE92ZXJsYXkudXBkYXRlTWFpblNjcm9sbGFibGVFbGVtZW50KCksdGhpcy50b3BPdmVybGF5LnVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudCgpLHRoaXMuYm90dG9tT3ZlcmxheS5uZWVkRnVsbFJlbmRlciYmdGhpcy5ib3R0b21PdmVybGF5LnVwZGF0ZU1haW5TY3Jv''@;'; + put 'put ''bGxhYmxlRWxlbWVudCgpO3ZhciBoPXRoaXMud3RUYWJsZTt0aGlzLnNjcm9sbGFibGVFbGVtZW50PSJoaWRkZW4iPT09dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LmdldENvbXB1dGVkU3R5bGUoaC53dFJvb3RFbGVtZW50LnBhcmVudE5vZGUpLmdldFByb3BlcnR5VmFsdWUoIm92ZXJm''@;'; + put 'put ''bG93Iik/aC5ob2xkZXI6UFooaC5UQUJMRSksdGhpcy5yZWdpc3Rlckxpc3RlbmVycygpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCksdGhpcy50b3BPdmVybGF5LmRlc3Ryb3koKSx0aGlzLmJvdHRvbU92ZXJsYXkuY2xvbmUm''@;'; + put 'put ''JnRoaXMuYm90dG9tT3ZlcmxheS5kZXN0cm95KCksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXkuZGVzdHJveSgpLHRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5JiZ0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5kZXN0cm95KCksdGhpcy5ib3R0b21JbmxpbmVTdGFydENv''@;'; + put 'put ''cm5lck92ZXJsYXkmJnRoaXMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmNsb25lJiZ0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5kZXN0cm95KCksdGhpcy5kZXN0cm95ZWQ9ITB9fSx7a2V5OiJyZWZyZXNoIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3Vt''@;'; + put 'put ''ZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sdj10aGlzLnd0VGFibGUuc3ByZWFkZXIseT12LmNsaWVudFdpZHRoLEM9di5jbGllbnRIZWlnaHQ7KHkhPT10aGlzLnNwcmVhZGVyTGFzdFNpemUud2lkdGh8fEMhPT10aGlzLnNwcmVhZGVyTGFzdFNp''@;'; + put 'put ''emUuaGVpZ2h0KSYmKHRoaXMuc3ByZWFkZXJMYXN0U2l6ZS53aWR0aD15LHRoaXMuc3ByZWFkZXJMYXN0U2l6ZS5oZWlnaHQ9Qyx0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSgpKSx0aGlzLmJvdHRvbU92ZXJsYXkuY2xvbmUmJnRoaXMuYm90dG9tT3ZlcmxheS5yZWZyZXNoKGgpLHRoaXMuaW5s''@;'; + put 'put ''aW5lU3RhcnRPdmVybGF5LnJlZnJlc2goaCksdGhpcy50b3BPdmVybGF5LnJlZnJlc2goaCksdGhpcy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LnJlZnJlc2goaCksdGhpcy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJs''@;'; + put 'put ''YXkmJnRoaXMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmNsb25lJiZ0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5yZWZyZXNoKGgpfX0se2tleToiYWRqdXN0RWxlbWVudHNTaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYm''@;'; + put 'put ''dm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sdj10aGlzLndvdC53dFZpZXdwb3J0LHk9dGhpcy53dFRhYmxlLEM9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLGo9di5n''@;'; + put 'put ''ZXRSb3dIZWFkZXJXaWR0aCgpLHVlPXYuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KCksX2U9eS5oaWRlci5zdHlsZTtpZihfZS53aWR0aD0iIi5jb25jYXQoait0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5zdW1DZWxsU2l6ZXMoMCxDKSwicHgiKSxfZS5oZWlnaHQ9IiIuY29uY2F0KHVlK3RoaXMu''@;'; + put 'put ''dG9wT3ZlcmxheS5zdW1DZWxsU2l6ZXMoMCxJKSsxLCJweCIpLHRoaXMuc2Nyb2xsYmFyU2l6ZT4wKXt2YXIgQmU9eS53dFJvb3RFbGVtZW50LE5lPUJlLnNjcm9sbEhlaWdodCxLZT1CZS5zY3JvbGxXaWR0aCxkdD15LmhvbGRlcixPdD1kdC5zY3JvbGxIZWlnaHQsJHQ9ZHQuc2Nyb2xsV2lk''@;'; + put 'put ''dGg7dGhpcy5oYXNTY3JvbGxiYXJSaWdodD1OZTxPdCx0aGlzLmhhc1Njcm9sbGJhckJvdHRvbT1LZTwkdCx0aGlzLmhhc1Njcm9sbGJhclJpZ2h0JiZ5LmhpZGVyLnNjcm9sbFdpZHRoK3RoaXMuc2Nyb2xsYmFyU2l6ZT5LZT90aGlzLmhhc1Njcm9sbGJhckJvdHRvbT0hMDp0aGlzLmhhc1Nj''@;'; + put 'put ''cm9sbGJhckJvdHRvbSYmeS5oaWRlci5zY3JvbGxIZWlnaHQrdGhpcy5zY3JvbGxiYXJTaXplPk5lJiYodGhpcy5oYXNTY3JvbGxiYXJSaWdodD0hMCl9dGhpcy50b3BPdmVybGF5LmFkanVzdEVsZW1lbnRzU2l6ZShoKSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5hZGp1c3RFbGVtZW50c1Np''@;'; + put 'put ''emUoaCksdGhpcy5ib3R0b21PdmVybGF5LmFkanVzdEVsZW1lbnRzU2l6ZShoKX19LHtrZXk6ImFwcGx5VG9ET00iLHZhbHVlOmZ1bmN0aW9uKCl7IXRoaXMud3RUYWJsZS5pc1Zpc2libGUoKXx8KHRoaXMudG9wT3ZlcmxheS5hcHBseVRvRE9NKCksdGhpcy5ib3R0b21PdmVybGF5LmNsb25l''@;'; + put 'put ''JiZ0aGlzLmJvdHRvbU92ZXJsYXkuYXBwbHlUb0RPTSgpLHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LmFwcGx5VG9ET00oKSl9fSx7a2V5OiJnZXRQYXJlbnRPdmVybGF5Iix2YWx1ZTpmdW5jdGlvbihoKXtpZighaClyZXR1cm4gbnVsbDt2YXIgeT1udWxsO3JldHVybiBVcihbdGhpcy50b3BP''@;'; + put 'put ''dmVybGF5LHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LHRoaXMuYm90dG9tT3ZlcmxheSx0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSx0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheV0sZnVuY3Rpb24oQyl7IUN8fEMuY2xvbmUmJkMuY2xvbmUud3RUYWJsZS5UQUJM''@;'; + put 'put ''RS5jb250YWlucyhoKSYmKHk9Qy5jbG9uZSl9KSx5fX0se2tleToic3luY092ZXJsYXlUYWJsZUNsYXNzTmFtZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy53dFRhYmxlLlRBQkxFO1VyKFt0aGlzLnRvcE92ZXJsYXksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXksdGhpcy5ib3R0b21P''@;'; + put 'put ''dmVybGF5LHRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LHRoaXMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5XSxmdW5jdGlvbih5KXsheXx8KHkuY2xvbmUud3RUYWJsZS5UQUJMRS5jbGFzc05hbWU9aC5jbGFzc05hbWUpfSl9fV0pLGR9KCk7Y29uc3QgWlVlPWpVZTtm''@;'; + put 'put ''dW5jdGlvbiBMQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYp''@;'; + put 'put ''fX1mdW5jdGlvbiBPQ2UoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBXVWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpe3ZhciBoPXRo''@;'; + put 'put ''aXM7KGZ1bmN0aW9uIHpVZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSxPQ2UodGhpcywic2V0dGluZ3MiLHt9KSxPQ2UodGhpcywiZGVmYXVsdHMiLE9iamVjdC5mcmVl''@;'; + put 'put ''emUodGhpcy5nZXREZWZhdWx0cygpKSksR2wodGhpcy5kZWZhdWx0cyxmdW5jdGlvbih2LHkpe2lmKHZvaWQgMCE9PWdbeV0paC5zZXR0aW5nc1t5XT1nW3ldO2Vsc2V7aWYodm9pZCAwPT09dil0aHJvdyBuZXcgRXJyb3IoJ0EgcmVxdWlyZWQgc2V0dGluZyAiJy5jb25jYXQoeSwnIiB3YXMg''@;'; + put 'put ''bm90IHByb3ZpZGVkJykpO2guc2V0dGluZ3NbeV09dn19KX1yZXR1cm4gZnVuY3Rpb24gR1VlKGQsZyxoKXtnJiZMQ2UoZC5wcm90b3R5cGUsZyksaCYmTENlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldERlZmF1''@;'; + put 'put ''bHRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXM7cmV0dXJue2ZhY2FkZTp2b2lkIDAsdGFibGU6dm9pZCAwLGlzRGF0YVZpZXdJbnN0YW5jZTohMCxleHRlcm5hbFJvd0NhbGN1bGF0b3I6ITEsc3RyZXRjaEg6Im5vbmUiLGN1cnJlbnRSb3dDbGFzc05hbWU6bnVsbCxjdXJyZW50Q29s''@;'; + put 'put ''dW1uQ2xhc3NOYW1lOm51bGwscHJldmVudE92ZXJmbG93OmZ1bmN0aW9uKCl7cmV0dXJuITF9LHByZXZlbnRXaGVlbDohMSxkYXRhOnZvaWQgMCxmcmVlemVPdmVybGF5czohMSxmaXhlZENvbHVtbnNTdGFydDowLGZpeGVkUm93c1RvcDowLGZpeGVkUm93c0JvdHRvbTowLHNob3VsZFJlbmRl''@;'; + put 'put ''cklubGluZVN0YXJ0T3ZlcmxheTpmdW5jdGlvbigpe3JldHVybiBoLmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0Iik+MHx8aC5nZXRTZXR0aW5nKCJyb3dIZWFkZXJzIikubGVuZ3RoPjB9LHNob3VsZFJlbmRlclRvcE92ZXJsYXk6ZnVuY3Rpb24oKXtyZXR1cm4gaC5nZXRTZXR0aW5n''@;'; + put 'put ''KCJmaXhlZFJvd3NUb3AiKT4wfHxoLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGg+MH0sc2hvdWxkUmVuZGVyQm90dG9tT3ZlcmxheTpmdW5jdGlvbigpe3JldHVybiBoLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpPjB9LG1pblNwYXJlUm93czowLHJvd0hlYWRlcnM6''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm5bXX0sY29sdW1uSGVhZGVyczpmdW5jdGlvbigpe3JldHVybltdfSx0b3RhbFJvd3M6dm9pZCAwLHRvdGFsQ29sdW1uczp2b2lkIDAsY2VsbFJlbmRlcmVyOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj1oLmdldFNldHRpbmcoImRhdGEiLHksQyk7Q3coSSxudWxsPT1q''@;'; + put 'put ''PyIiOmopfSxjb2x1bW5XaWR0aDpmdW5jdGlvbigpe30scm93SGVpZ2h0OmZ1bmN0aW9uKCl7fSxkZWZhdWx0Um93SGVpZ2h0OjIzLGRlZmF1bHRDb2x1bW5XaWR0aDo1MCxzZWxlY3Rpb25zOm51bGwsaGlkZUJvcmRlck9uTW91c2VEb3duT3ZlcjohMSx2aWV3cG9ydFJvd0NhbGN1bGF0b3JP''@;'; + put 'put ''dmVycmlkZTpudWxsLHZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlOm51bGwsb25DZWxsTW91c2VEb3duOm51bGwsb25DZWxsQ29udGV4dE1lbnU6bnVsbCxvbkNlbGxNb3VzZU92ZXI6bnVsbCxvbkNlbGxNb3VzZU91dDpudWxsLG9uQ2VsbE1vdXNlVXA6bnVsbCxvbkNlbGxEYmxD''@;'; + put 'put ''bGljazpudWxsLG9uQ2VsbENvcm5lck1vdXNlRG93bjpudWxsLG9uQ2VsbENvcm5lckRibENsaWNrOm51bGwsYmVmb3JlRHJhdzpudWxsLG9uRHJhdzpudWxsLG9uQmVmb3JlUmVtb3ZlQ2VsbENsYXNzTmFtZXM6bnVsbCxvbkFmdGVyRHJhd1NlbGVjdGlvbjpudWxsLG9uQmVmb3JlRHJhd0Jv''@;'; + put 'put ''cmRlcnM6bnVsbCxvblNjcm9sbFZlcnRpY2FsbHk6bnVsbCxvblNjcm9sbEhvcml6b250YWxseTpudWxsLG9uQmVmb3JlVG91Y2hTY3JvbGw6bnVsbCxvbkFmdGVyTW9tZW50dW1TY3JvbGw6bnVsbCxvbkJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aDpmdW5jdGlvbih5KXtyZXR1cm4geX0s''@;'; + put 'put ''b25Nb2RpZnlSb3dIZWFkZXJXaWR0aDpudWxsLG9uTW9kaWZ5R2V0Q2VsbENvb3JkczpudWxsLG9uQmVmb3JlSGlnaGxpZ2h0aW5nUm93SGVhZGVyOmZ1bmN0aW9uKHkpe3JldHVybiB5fSxvbkJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlcjpmdW5jdGlvbih5KXtyZXR1cm4geX0sb25X''@;'; + put 'put ''aW5kb3dSZXNpemU6bnVsbCxyZW5kZXJBbGxSb3dzOiExLGdyb3VwczohMSxyb3dIZWFkZXJXaWR0aDpudWxsLGNvbHVtbkhlYWRlckhlaWdodDpudWxsLGhlYWRlckNsYXNzTmFtZTpudWxsLHJ0bE1vZGU6ITF9fX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRo''@;'; + put 'put ''aXM7cmV0dXJuIHZvaWQgMD09PXY/R2woaCxmdW5jdGlvbihDLEkpe3kuc2V0dGluZ3NbSV09Q30pOnRoaXMuc2V0dGluZ3NbaF09dix0aGlzfX0se2tleToiZ2V0U2V0dGluZyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyxJKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5zZXR0aW5n''@;'; + put 'put ''c1toXT90aGlzLnNldHRpbmdzW2hdKHYseSxDLEkpOnZvaWQgMCE9PXYmJkFycmF5LmlzQXJyYXkodGhpcy5zZXR0aW5nc1toXSk/dGhpcy5zZXR0aW5nc1toXVt2XTp0aGlzLnNldHRpbmdzW2hdfX0se2tleToiZ2V0U2V0dGluZ1B1cmUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlz''@;'; + put 'put ''LnNldHRpbmdzW2hdfX0se2tleToiaGFzIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4hIXRoaXMuc2V0dGluZ3NbaF19fV0pLGR9KCk7ZnVuY3Rpb24gUmRlKGQpe3JldHVybihSZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/''@;'; + put 'put ''ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBSQ2UoZCxnKXtm''@;'; + put 'put ''b3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBCZGUoZCxn''@;'; + put 'put ''KXtyZXR1cm4oQmRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gWFVlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09UmRlKGcpfHwiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBLVWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJl''@;'; + put 'put ''bmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBWZWUoZCl7cmV0dXJuKFZlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5j''@;'; + put 'put ''dGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBQZGU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFFVZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNz''@;'; + put 'put ''aW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90''@;'; + put 'put ''eXBlIix7d3JpdGFibGU6ITF9KSxnJiZCZGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBKVWUoZCl7dmFyIGc9ZnVuY3Rpb24gJFVlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7''@;'; + put 'put ''aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigp''@;'; + put 'put ''e3ZhciB5LHY9VmVlKGQpO2lmKGcpe3ZhciBDPVZlZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gWFVlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYseSxDLEkpe3JldHVy''@;'; + put 'put ''biBmdW5jdGlvbiBZVWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxnLmNhbGwodGhpcyx2LHksQyxJLCJtYXN0ZXIiKX1yZXR1cm4gZnVuY3Rpb24gVVVlKGQsZyxoKXtn''@;'; + put 'put ''JiZSQ2UoZC5wcm90b3R5cGUsZyksaCYmUkNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImFsaWduT3ZlcmxheXNXaXRoVHJpbW1pbmdDb250YWluZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9ck8odGhpcy53dFJv''@;'; + put 'put ''b3RFbGVtZW50KSxDPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdztpZih5PT09Qyl0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iil8fCh0aGlzLmhvbGRlci5zdHlsZS5vdmVyZmxvdz0idmlzaWJsZSIsdGhpcy53dFJvb3RFbGVtZW50LnN0eWxlLm92ZXJm''@;'; + put 'put ''bG93PSJ2aXNpYmxlIik7ZWxzZXt2YXIgaj15LnBhcmVudEVsZW1lbnQsdWU9bmVlKHksImhlaWdodCIsQyksX2U9bmVlKHksIm92ZXJmbG93IixDKSxCZT10aGlzLmhvbGRlci5zdHlsZSxOZT15LnNjcm9sbFdpZHRoLEtlPXkuc2Nyb2xsSGVpZ2h0LGR0PXkuZ2V0Qm91bmRpbmdDbGllbnRS''@;'; + put 'put ''ZWN0KCksT3Q9ZHQud2lkdGgsJHQ9ZHQuaGVpZ2h0O2lmKGomJlsiYXV0byIsImhpZGRlbiIsInNjcm9sbCJdLmluY2x1ZGVzKF9lKSl7dmFyIExuPXkuY2xvbmVOb2RlKCExKTtMbi5zdHlsZS5vdmVyZmxvdz0iYXV0byIseS5uZXh0RWxlbWVudFNpYmxpbmc/ai5pbnNlcnRCZWZvcmUoTG4s''@;'; + put 'put ''eS5uZXh0RWxlbWVudFNpYmxpbmcpOmouYXBwZW5kQ2hpbGQoTG4pO3ZhciBpcj1wYXJzZUludChrdyhMbixDKS5oZWlnaHQsMTApO2oucmVtb3ZlQ2hpbGQoTG4pLDA9PT1pciYmKCR0PTApfSR0PU1hdGgubWluKCR0LEtlKSxCZS5oZWlnaHQ9ImF1dG8iPT09dWU/ImF1dG8iOiIiLmNvbmNh''@;'; + put 'put ''dCgkdCwicHgiKSxPdD1NYXRoLm1pbihPdCxOZSksQmUud2lkdGg9IiIuY29uY2F0KE90LCJweCIpLEJlLm92ZXJmbG93PSIiLHRoaXMuaGFzVGFibGVIZWlnaHQ9ImF1dG8iPT09QmUuaGVpZ2h0fHwkdD4wLHRoaXMuaGFzVGFibGVXaWR0aD1PdD4wfXRoaXMuaXNUYWJsZVZpc2libGU9dE8o''@;'; + put 'put ''dGhpcy5UQUJMRSl9fSx7a2V5OiJtYXJrT3ZlcnNpemVkQ29sdW1uSGVhZGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnd0U2V0dGluZ3MsQz10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydCxJPSJtYXN0ZXIiLHVlPXkuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIp''@;'; + put 'put ''Lmxlbmd0aDtpZih1ZSYmIUMuaGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZFtJXSl7Zm9yKHZhciBCZT15LmdldFNldHRpbmcoInJvd0hlYWRlcnMiKS5sZW5ndGgsTmU9dGhpcy5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpLEtlPTA7S2U8dWU7S2UrKylmb3IodmFyIGR0PS0xKkJl''@;'; + put 'put ''O2R0PE5lO2R0KyspdGhpcy5tYXJrSWZPdmVyc2l6ZWRDb2x1bW5IZWFkZXIoZHQpO0MuaGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZFtJXT0hMH19fV0pLGh9KHNPKTtSMihQZGUseUNlKSxSMihQZGUsaWRlKTtjb25zdCBxVWU9UGRlO2Z1bmN0aW9uIGVRZShkLGcpe2lmKCEoZCBp''@;'; + put 'put ''bnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIEJDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmln''@;'; + put 'put ''dXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBQQ2U9bmV3IFdlYWtNYXAsblFlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRz''@;'; + put 'put ''WzBdP2FyZ3VtZW50c1swXTp7fSxoPWcudmlld3BvcnRTaXplLHY9Zy5zY3JvbGxPZmZzZXQseT1nLnRvdGFsSXRlbXMsQz1nLml0ZW1TaXplRm4sST1nLm92ZXJyaWRlRm4saj1nLmNhbGN1bGF0aW9uVHlwZSx1ZT1nLnNjcm9sbGJhckhlaWdodDtlUWUodGhpcyxkKSxQQ2Uuc2V0KHRoaXMs''@;'; + put 'put ''e3ZpZXdwb3J0SGVpZ2h0Omgsc2Nyb2xsT2Zmc2V0OnYsdG90YWxSb3dzOnkscm93SGVpZ2h0Rm46QyxvdmVycmlkZUZuOkksY2FsY3VsYXRpb25UeXBlOmosaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodDp1ZX0pLHRoaXMuY291bnQ9MCx0aGlzLnN0YXJ0Um93PW51bGwsdGhpcy5lbmRSb3c9''@;'; + put 'put ''bnVsbCx0aGlzLnN0YXJ0UG9zaXRpb249bnVsbCx0aGlzLmNhbGN1bGF0ZSgpfXJldHVybiBmdW5jdGlvbiB0UWUoZCxnLGgpe2cmJkJDZShkLnByb3RvdHlwZSxnKSxoJiZCQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tl''@;'; + put 'put ''eToiY2FsY3VsYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgZHQsaD0wLHY9ITAseT1bXSxDPVBDZS5nZXQodGhpcyksST1DLmNhbGN1bGF0aW9uVHlwZSxqPUMub3ZlcnJpZGVGbix1ZT1DLnJvd0hlaWdodEZuLF9lPUMuc2Nyb2xsT2Zmc2V0LEJlPUMudG90YWxSb3dzLE5lPUMudmll''@;'; + put 'put ''d3BvcnRIZWlnaHQsS2U9Qy5ob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0fHwwLE90PTA7T3Q8QmU7T3QrKylpZihkdD11ZShPdCksaXNOYU4oZHQpJiYoZHQ9ZC5ERUZBVUxUX0hFSUdIVCksaDw9X2UmJjIhPT1JJiYodGhpcy5zdGFydFJvdz1PdCksaD49X2UmJmgrKDI9PT1JP2R0OjApPD1f''@;'; + put 'put ''ZStOZS1LZSYmKG51bGw9PT10aGlzLnN0YXJ0Um93JiYodGhpcy5zdGFydFJvdz1PdCksdGhpcy5lbmRSb3c9T3QpLHkucHVzaChoKSxoKz1kdCwyIT09SSYmKHRoaXMuZW5kUm93PU90KSxoPj1fZStOZS1LZSl7dj0hMTticmVha31pZih0aGlzLmVuZFJvdz09PUJlLTEmJnYpZm9yKHRoaXMu''@;'; + put 'put ''c3RhcnRSb3c9dGhpcy5lbmRSb3c7dGhpcy5zdGFydFJvdz4wOyl7dmFyICR0PXlbdGhpcy5lbmRSb3ddK2R0LXlbdGhpcy5zdGFydFJvdy0xXTtpZigoJHQ8PU5lLUtlfHwyIT09SSkmJih0aGlzLnN0YXJ0Um93LT0xKSwkdD49TmUtS2UpYnJlYWt9MT09PUkmJm51bGwhPT10aGlzLnN0YXJ0''@;'; + put 'put ''Um93JiZqJiZqKHRoaXMpLHRoaXMuc3RhcnRQb3NpdGlvbj15W3RoaXMuc3RhcnRSb3ddLHZvaWQgMD09PXRoaXMuc3RhcnRQb3NpdGlvbiYmKHRoaXMuc3RhcnRQb3NpdGlvbj1udWxsKSxCZTx0aGlzLmVuZFJvdyYmKHRoaXMuZW5kUm93PUJlLTEpLG51bGwhPT10aGlzLnN0YXJ0Um93JiYo''@;'; + put 'put ''dGhpcy5jb3VudD10aGlzLmVuZFJvdy10aGlzLnN0YXJ0Um93KzEpfX1dLFt7a2V5OiJERUZBVUxUX0hFSUdIVCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDIzfX1dKSxkfSgpO2NvbnN0IEZDZT1uUWU7ZnVuY3Rpb24gclFlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5''@;'; + put 'put ''cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gSENlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2''@;'; + put 'put ''LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIHVPPW5ldyBXZWFrTWFwLG9RZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30saD1nLnZp''@;'; + put 'put ''ZXdwb3J0U2l6ZSx2PWcuc2Nyb2xsT2Zmc2V0LHk9Zy50b3RhbEl0ZW1zLEM9Zy5pdGVtU2l6ZUZuLEk9Zy5vdmVycmlkZUZuLGo9Zy5jYWxjdWxhdGlvblR5cGUsdWU9Zy5zdHJldGNoTW9kZSxfZT1nLnN0cmV0Y2hpbmdJdGVtV2lkdGhGbixCZT12b2lkIDA9PT1fZT9mdW5jdGlvbihOZSl7''@;'; + put 'put ''cmV0dXJuIE5lfTpfZTtyUWUodGhpcyxkKSx1Ty5zZXQodGhpcyx7dmlld3BvcnRXaWR0aDpoLHNjcm9sbE9mZnNldDp2LHRvdGFsQ29sdW1uczp5LGNvbHVtbldpZHRoRm46QyxvdmVycmlkZUZuOkksY2FsY3VsYXRpb25UeXBlOmosc3RyZXRjaGluZ0NvbHVtbldpZHRoRm46QmV9KSx0aGlz''@;'; + put 'put ''LmNvdW50PTAsdGhpcy5zdGFydENvbHVtbj1udWxsLHRoaXMuZW5kQ29sdW1uPW51bGwsdGhpcy5zdGFydFBvc2l0aW9uPW51bGwsdGhpcy5zdHJldGNoQWxsUmF0aW89MCx0aGlzLnN0cmV0Y2hMYXN0V2lkdGg9MCx0aGlzLnN0cmV0Y2g9dWUsdGhpcy50b3RhbFRhcmdldFdpZHRoPTAsdGhp''@;'; + put 'put ''cy5uZWVkVmVyaWZ5TGFzdENvbHVtbldpZHRoPSEwLHRoaXMuc3RyZXRjaEFsbENvbHVtbnNXaWR0aD1bXSx0aGlzLmNhbGN1bGF0ZSgpfXJldHVybiBmdW5jdGlvbiBpUWUoZCxnLGgpe2cmJkhDZShkLnByb3RvdHlwZSxnKSxoJiZIQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwi''@;'; + put 'put ''cHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiY2FsY3VsYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgQyxoPTAsdj0hMCx5PVtdLEk9dU8uZ2V0KHRoaXMpLGo9SS5jYWxjdWxhdGlvblR5cGUsdWU9SS5vdmVycmlkZUZuLF9lPUkuc2Nyb2xsT2Zmc2V0LEJlPUkudG90''@;'; + put 'put ''YWxDb2x1bW5zLE5lPUkudmlld3BvcnRXaWR0aCxLZT0wO0tlPEJlO0tlKyspaWYoQz10aGlzLl9nZXRDb2x1bW5XaWR0aChLZSksaDw9X2UmJjIhPT1qJiYodGhpcy5zdGFydENvbHVtbj1LZSksaD49X2UmJmgrKDI9PT1qP0M6MCk8PV9lKyhfZT4wP05lKzE6TmUpJiYobnVsbD09dGhpcy5z''@;'; + put 'put ''dGFydENvbHVtbiYmKHRoaXMuc3RhcnRDb2x1bW49S2UpLHRoaXMuZW5kQ29sdW1uPUtlKSx5LnB1c2goaCksaCs9QywyIT09aiYmKHRoaXMuZW5kQ29sdW1uPUtlKSxoPj1fZStOZSl7dj0hMTticmVha31pZih0aGlzLmVuZENvbHVtbj09PUJlLTEmJnYpZm9yKHRoaXMuc3RhcnRDb2x1bW49''@;'; + put 'put ''dGhpcy5lbmRDb2x1bW47dGhpcy5zdGFydENvbHVtbj4wOyl7dmFyIE90PXlbdGhpcy5lbmRDb2x1bW5dK0MteVt0aGlzLnN0YXJ0Q29sdW1uLTFdO2lmKChPdDw9TmV8fDIhPT1qKSYmKHRoaXMuc3RhcnRDb2x1bW4tPTEpLE90Pk5lKWJyZWFrfTE9PT1qJiZudWxsIT09dGhpcy5zdGFydENv''@;'; + put 'put ''bHVtbiYmdWUmJnVlKHRoaXMpLHRoaXMuc3RhcnRQb3NpdGlvbj15W3RoaXMuc3RhcnRDb2x1bW5dLHZvaWQgMD09PXRoaXMuc3RhcnRQb3NpdGlvbiYmKHRoaXMuc3RhcnRQb3NpdGlvbj1udWxsKSxCZTx0aGlzLmVuZENvbHVtbiYmKHRoaXMuZW5kQ29sdW1uPUJlLTEpLG51bGwhPT10aGlz''@;'; + put 'put ''LnN0YXJ0Q29sdW1uJiYodGhpcy5jb3VudD10aGlzLmVuZENvbHVtbi10aGlzLnN0YXJ0Q29sdW1uKzEpfX0se2tleToicmVmcmVzaFN0cmV0Y2hpbmciLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKCJub25lIiE9PXRoaXMuc3RyZXRjaCl7dmFyIHY9aDt0aGlzLnRvdGFsVGFyZ2V0V2lkdGg9djtm''@;'; + put 'put ''b3IodmFyIHk9dU8uZ2V0KHRoaXMpLEM9eS50b3RhbENvbHVtbnMsST0wLGo9MDtqPEM7aisrKXt2YXIgdWU9dGhpcy5fZ2V0Q29sdW1uV2lkdGgoaiksX2U9eS5zdHJldGNoaW5nQ29sdW1uV2lkdGhGbih2b2lkIDAsaik7Im51bWJlciI9PXR5cGVvZiBfZT92LT1fZTpJKz11ZX12YXIgQmU9''@;'; + put 'put ''di1JO2lmKCJhbGwiPT09dGhpcy5zdHJldGNoJiZCZT4wKXRoaXMuc3RyZXRjaEFsbFJhdGlvPXYvSSx0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGg9W10sdGhpcy5uZWVkVmVyaWZ5TGFzdENvbHVtbldpZHRoPSEwO2Vsc2UgaWYoImxhc3QiPT09dGhpcy5zdHJldGNoJiZ2IT09MS8wKXt2''@;'; + put 'put ''YXIgTmU9dGhpcy5fZ2V0Q29sdW1uV2lkdGgoQy0xKSxLZT1CZStOZTt0aGlzLnN0cmV0Y2hMYXN0V2lkdGg9S2U+PTA/S2U6TmV9fX19LHtrZXk6ImdldFN0cmV0Y2hlZENvbHVtbldpZHRoIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PW51bGw7cmV0dXJuImFsbCI9PT10aGlzLnN0cmV0''@;'; + put 'put ''Y2gmJjAhPT10aGlzLnN0cmV0Y2hBbGxSYXRpbz95PXRoaXMuX2dldFN0cmV0Y2hlZEFsbENvbHVtbldpZHRoKGgsdik6Imxhc3QiPT09dGhpcy5zdHJldGNoJiYwIT09dGhpcy5zdHJldGNoTGFzdFdpZHRoJiYoeT10aGlzLl9nZXRTdHJldGNoZWRMYXN0Q29sdW1uV2lkdGgoaCkpLHl9fSx7''@;'; + put 'put ''a2V5OiJfZ2V0U3RyZXRjaGVkQWxsQ29sdW1uV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9MCxDPXVPLmdldCh0aGlzKSxJPUMudG90YWxDb2x1bW5zO2lmKCF0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGhbaF0pe3ZhciBqPU1hdGgucm91bmQodip0aGlzLnN0cmV0Y2hBbGxS''@;'; + put 'put ''YXRpbyksdWU9Qy5zdHJldGNoaW5nQ29sdW1uV2lkdGhGbihqLGgpO3RoaXMuc3RyZXRjaEFsbENvbHVtbnNXaWR0aFtoXT12b2lkIDA9PT11ZT9qOmlzTmFOKHVlKT90aGlzLl9nZXRDb2x1bW5XaWR0aChoKTp1ZX1pZih0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGgubGVuZ3RoPT09SSYm''@;'; + put 'put ''dGhpcy5uZWVkVmVyaWZ5TGFzdENvbHVtbldpZHRoKXt0aGlzLm5lZWRWZXJpZnlMYXN0Q29sdW1uV2lkdGg9ITE7Zm9yKHZhciBfZT0wO19lPHRoaXMuc3RyZXRjaEFsbENvbHVtbnNXaWR0aC5sZW5ndGg7X2UrKyl5Kz10aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGhbX2VdO3khPT10aGlz''@;'; + put 'put ''LnRvdGFsVGFyZ2V0V2lkdGgmJih0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGhbdGhpcy5zdHJldGNoQWxsQ29sdW1uc1dpZHRoLmxlbmd0aC0xXSs9dGhpcy50b3RhbFRhcmdldFdpZHRoLXkpfXJldHVybiB0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGhbaF19fSx7a2V5OiJfZ2V0U3Ry''@;'; + put 'put ''ZXRjaGVkTGFzdENvbHVtbldpZHRoIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gaD09PXVPLmdldCh0aGlzKS50b3RhbENvbHVtbnMtMT90aGlzLnN0cmV0Y2hMYXN0V2lkdGg6bnVsbH19LHtrZXk6Il9nZXRDb2x1bW5XaWR0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dU8uZ2V0KHRo''@;'; + put 'put ''aXMpLmNvbHVtbldpZHRoRm4oaCk7cmV0dXJuIGlzTmFOKHYpJiYodj1kLkRFRkFVTFRfV0lEVEgpLHZ9fV0sW3trZXk6IkRFRkFVTFRfV0lEVEgiLGdldDpmdW5jdGlvbigpe3JldHVybiA1MH19XSksZH0oKTtjb25zdCBGZGU9b1FlO2Z1bmN0aW9uIE5DZShkLGcpe2Zvcih2YXIgaD0wO2g8''@;'; + put 'put ''Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBzUWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBk''@;'; + put 'put ''KGcsaCx2LHksQyl7dmFyIEk9dGhpczsoZnVuY3Rpb24gYVFlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuZGF0YUFjY2Vzc09iamVjdD1nLHRoaXMud290PWcu''@;'; + put 'put ''d290LHRoaXMuaW5zdGFuY2U9dGhpcy53b3QsdGhpcy5kb21CaW5kaW5ncz1oLHRoaXMud3RTZXR0aW5ncz12LHRoaXMud3RUYWJsZT1DLHRoaXMub3ZlcnNpemVkUm93cz1bXSx0aGlzLm92ZXJzaXplZENvbHVtbkhlYWRlcnM9W10sdGhpcy5oYXNPdmVyc2l6ZWRDb2x1bW5IZWFkZXJzTWFy''@;'; + put 'put ''a2VkPXt9LHRoaXMuY2xpZW50SGVpZ2h0PTAsdGhpcy5jb250YWluZXJXaWR0aD1OYU4sdGhpcy5yb3dIZWFkZXJXaWR0aD1OYU4sdGhpcy5yb3dzVmlzaWJsZUNhbGN1bGF0b3I9bnVsbCx0aGlzLmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvcj1udWxsLHRoaXMuZXZlbnRNYW5hZ2VyPXksdGhp''@;'; + put 'put ''cy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3csInJlc2l6ZSIsZnVuY3Rpb24oKXtJLmNsaWVudEhlaWdodD1JLmdldFdvcmtzcGFjZUhlaWdodCgpfSl9cmV0dXJuIGZ1bmN0aW9uIGxRZShkLGcsaCl7ZyYmTkNlKGQucHJvdG90eXBl''@;'; + put 'put ''LGcpLGgmJk5DZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJnZXRXb3Jrc3BhY2VIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHY9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnRvcE92ZXJsYXlUcmltbWluZ0NvbnRh''@;'; + put 'put ''aW5lcjtyZXR1cm4gdj09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdz90aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OkQxKHYpPjAmJnYuY2xpZW50SGVpZ2h0PjA/di5jbGllbnRIZWlnaHQ6MS8wfX0se2tleToiZ2V0V29ya3Nw''@;'; + put 'put ''YWNlV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIE90LCR0LGg9dGhpcy53dFNldHRpbmdzLHY9dGhpcy5kb21CaW5kaW5ncyx5PXYucm9vdERvY3VtZW50LEM9di5yb290V2luZG93LEk9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LmlubGluZVN0YXJ0T3ZlcmxheVRyaW1taW5nQ29udGFpbmVy''@;'; + put 'put ''LGo9eS5kb2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGgsdWU9aC5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKSxfZT1oLmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpLEJlPWguZ2V0U2V0dGluZygicnRsTW9kZSIpLE5lPXRoaXMud3RUYWJsZS5UQUJMRS5nZXRCb3VuZGluZ0NsaWVu''@;'; + put 'put ''dFJlY3QoKSxkdD1qLShCZT9OZS5yaWdodC1qOk5lLmxlZnQpO2lmKF9lKXJldHVybiBFMih0aGlzLnd0VGFibGUud3RSb290RWxlbWVudCk7aWYoT3Q9aC5nZXRTZXR0aW5nKCJmcmVlemVPdmVybGF5cyIpP01hdGgubWluKGR0LGopOk1hdGgubWluKHRoaXMuZ2V0Q29udGFpbmVyRmlsbFdp''@;'; + put 'put ''ZHRoKCksZHQsaiksST09PUMmJnVlPjAmJnRoaXMuc3VtQ29sdW1uV2lkdGhzKDAsdWUtMSk+T3QpcmV0dXJuIHkuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO2lmKEkhPT1DJiYoInNjcm9sbCI9PT0oJHQ9bmVlKHRoaXMuZGF0YUFjY2Vzc09iamVjdC5pbmxpbmVTdGFydE92ZXJsYXlU''@;'; + put 'put ''cmltbWluZ0NvbnRhaW5lciwib3ZlcmZsb3ciLEMpKXx8ImhpZGRlbiI9PT0kdHx8ImF1dG8iPT09JHQpKXJldHVybiBNYXRoLm1heChPdCxJLmNsaWVudFdpZHRoKTt2YXIgZm49aC5nZXRTZXR0aW5nKCJzdHJldGNoSCIpO3JldHVybiJub25lIiE9PWZuJiZmbj9PdDpNYXRoLm1heChPdCxF''@;'; + put 'put ''Mih0aGlzLnd0VGFibGUuVEFCTEUpKX19LHtrZXk6Imhhc1ZlcnRpY2FsU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0VGFibGUuaGlkZXIub2Zmc2V0SGVpZ2h0PnRoaXMuZ2V0V29ya3NwYWNlSGVpZ2h0KCl9fSx7a2V5OiJoYXNIb3Jpem9udGFsU2Nyb2xsIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0VGFibGUuaGlkZXIub2Zmc2V0V2lkdGg+dGhpcy5nZXRXb3Jrc3BhY2VXaWR0aCgpfX0se2tleToic3VtQ29sdW1uV2lkdGhzIix2YWx1ZTpmdW5jdGlvbihoLHYpe2Zvcih2YXIgeT0wLEM9aDtDPHY7KXkrPXRoaXMud3RUYWJsZS5nZXRDb2x1''@;'; + put 'put ''bW5XaWR0aChDKSxDKz0xO3JldHVybiB5fX0se2tleToiZ2V0Q29udGFpbmVyRmlsbFdpZHRoIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuY29udGFpbmVyV2lkdGgpcmV0dXJuIHRoaXMuY29udGFpbmVyV2lkdGg7dmFyIGg9dGhpcy53dFRhYmxlLmhvbGRlcix2PXRoaXMuZG9tQmluZGlu''@;'; + put 'put ''Z3Mucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Yuc3R5bGUud2lkdGg9IjEwMCUiLHYuc3R5bGUuaGVpZ2h0PSIxcHgiLGguYXBwZW5kQ2hpbGQodik7dmFyIHk9di5vZmZzZXRXaWR0aDtyZXR1cm4gdGhpcy5jb250YWluZXJXaWR0aD15LGgucmVtb3ZlQ2hpbGQodikseX19''@;'; + put 'put ''LHtrZXk6ImdldFdvcmtzcGFjZU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4ganUodGhpcy53dFRhYmxlLlRBQkxFKX19LHtrZXk6ImdldENvbHVtbkhlYWRlckhlaWdodCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhl''@;'; + put 'put ''YWRlcnMiKS5sZW5ndGg/aXNOYU4odGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQpJiYodGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQ9RDEodGhpcy53dFRhYmxlLlRIRUFEKSk6dGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQ9MCx0aGlzLmNvbHVtbkhlYWRlckhlaWdodH19LHtrZXk6ImdldFZpZXdwb3J0''@;'; + put 'put ''SGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZ2V0V29ya3NwYWNlSGVpZ2h0KCk7aWYoaD09PTEvMClyZXR1cm4gaDt2YXIgdj10aGlzLmdldENvbHVtbkhlYWRlckhlaWdodCgpO3JldHVybiB2PjAmJihoLT12KSxofX0se2tleToiZ2V0Um93SGVhZGVyV2lkdGgiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcldpZHRoIiksdj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicm93SGVhZGVycyIpO2lmKGgpe3RoaXMucm93SGVhZGVyV2lkdGg9MDtmb3IodmFyIHk9MCxDPXYubGVuZ3RoO3k8Qzt5Kysp''@;'; + put 'put ''dGhpcy5yb3dIZWFkZXJXaWR0aCs9aFt5XXx8aH1pZihpc05hTih0aGlzLnJvd0hlYWRlcldpZHRoKSlpZih2Lmxlbmd0aCl7dmFyIEk9dGhpcy53dFRhYmxlLlRBQkxFLnF1ZXJ5U2VsZWN0b3IoIlRIIik7dGhpcy5yb3dIZWFkZXJXaWR0aD0wO2Zvcih2YXIgaj0wLHVlPXYubGVuZ3RoO2o8''@;'; + put 'put ''dWU7aisrKUk/KHRoaXMucm93SGVhZGVyV2lkdGgrPUUyKEkpLEk9SS5uZXh0U2libGluZyk6dGhpcy5yb3dIZWFkZXJXaWR0aCs9NTB9ZWxzZSB0aGlzLnJvd0hlYWRlcldpZHRoPTA7cmV0dXJuIHRoaXMucm93SGVhZGVyV2lkdGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoIm9uTW9k''@;'; + put 'put ''aWZ5Um93SGVhZGVyV2lkdGgiLHRoaXMucm93SGVhZGVyV2lkdGgpfHx0aGlzLnJvd0hlYWRlcldpZHRoLHRoaXMucm93SGVhZGVyV2lkdGh9fSx7a2V5OiJnZXRWaWV3cG9ydFdpZHRoIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZ2V0V29ya3NwYWNlV2lkdGgoKTtpZihoPT09MS8w''@;'; + put 'put ''KXJldHVybiBoO3ZhciB2PXRoaXMuZ2V0Um93SGVhZGVyV2lkdGgoKTtyZXR1cm4gdj4wP2gtdjpofX0se2tleToiY3JlYXRlUm93c0NhbGN1bGF0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEMsSSxqLGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1l''@;'; + put 'put ''bnRzWzBdOjEsdj10aGlzLnd0U2V0dGluZ3MseT10aGlzLnd0VGFibGU7dGhpcy5yb3dIZWFkZXJXaWR0aD1OYU4sQz12LmdldFNldHRpbmcoInJlbmRlckFsbFJvd3MiKSYmMT09PWg/MS8wOnRoaXMuZ2V0Vmlld3BvcnRIZWlnaHQoKTt2YXIgdWU9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnRv''@;'; + put 'put ''cFNjcm9sbFBvc2l0aW9uLXRoaXMuZGF0YUFjY2Vzc09iamVjdC50b3BQYXJlbnRPZmZzZXQ7dWU8MCYmKHVlPTApO3ZhciBfZT12LmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLEJlPXYuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksTmU9di5nZXRTZXR0aW5nKCJ0b3RhbFJvd3Mi''@;'; + put 'put ''KTtyZXR1cm4gX2UmJih1ZSs9aj10aGlzLmRhdGFBY2Nlc3NPYmplY3QudG9wT3ZlcmxheS5zdW1DZWxsU2l6ZXMoMCxfZSksQy09aiksQmUmJnRoaXMuZGF0YUFjY2Vzc09iamVjdC5ib3R0b21PdmVybGF5LmNsb25lJiYoQy09aj10aGlzLmRhdGFBY2Nlc3NPYmplY3QuYm90dG9tT3Zlcmxh''@;'; + put 'put ''eS5zdW1DZWxsU2l6ZXMoTmUtQmUsTmUpKSxJPXkuaG9sZGVyLmNsaWVudEhlaWdodD09PXkuaG9sZGVyLm9mZnNldEhlaWdodD8wOkJjKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50KSxuZXcgRkNlKHt2aWV3cG9ydFNpemU6QyxzY3JvbGxPZmZzZXQ6dWUsdG90YWxJdGVtczp2Lmdl''@;'; + put 'put ''dFNldHRpbmcoInRvdGFsUm93cyIpLGl0ZW1TaXplRm46ZnVuY3Rpb24oZHQpe3JldHVybiB5LmdldFJvd0hlaWdodChkdCl9LG92ZXJyaWRlRm46di5nZXRTZXR0aW5nUHVyZSgidmlld3BvcnRSb3dDYWxjdWxhdG9yT3ZlcnJpZGUiKSxjYWxjdWxhdGlvblR5cGU6aCxzY3JvbGxiYXJIZWln''@;'; + put 'put ''aHQ6SX0pfX0se2tleToiY3JlYXRlQ29sdW1uc0NhbGN1bGF0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjEsdj10aGlzLnd0U2V0dGluZ3MseT10aGlzLnd0VGFibGUsQz10aGlzLmdldFZp''@;'; + put 'put ''ZXdwb3J0V2lkdGgoKSxJPU1hdGguYWJzKHRoaXMuZGF0YUFjY2Vzc09iamVjdC5pbmxpbmVTdGFydFNjcm9sbFBvc2l0aW9uKS10aGlzLmRhdGFBY2Nlc3NPYmplY3QuaW5saW5lU3RhcnRQYXJlbnRPZmZzZXQ7dGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQ9TmFOLEk8MCYmKEk9MCk7dmFyIGo9''@;'; + put 'put ''di5nZXRTZXR0aW5nKCJmaXhlZENvbHVtbnNTdGFydCIpO2lmKGope3ZhciB1ZT10aGlzLmRhdGFBY2Nlc3NPYmplY3QuaW5saW5lU3RhcnRPdmVybGF5LnN1bUNlbGxTaXplcygwLGopO0krPXVlLEMtPXVlfXJldHVybiB5LmhvbGRlci5jbGllbnRXaWR0aCE9PXkuaG9sZGVyLm9mZnNldFdp''@;'; + put 'put ''ZHRoJiYoQy09QmModGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQpKSxuZXcgRmRlKHt2aWV3cG9ydFNpemU6QyxzY3JvbGxPZmZzZXQ6TWF0aC5hYnMoSSksdG90YWxJdGVtczp2LmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLGl0ZW1TaXplRm46ZnVuY3Rpb24oQmUpe3JldHVybiB5''@;'; + put 'put ''LmdldENvbHVtbldpZHRoKEJlKX0sb3ZlcnJpZGVGbjp2LmdldFNldHRpbmdQdXJlKCJ2aWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSIpLGNhbGN1bGF0aW9uVHlwZTpoLHN0cmV0Y2hNb2RlOnYuZ2V0U2V0dGluZygic3RyZXRjaEgiKSxzdHJldGNoaW5nSXRlbVdpZHRoRm46ZnVu''@;'; + put 'put ''Y3Rpb24oQmUsTmUpe3JldHVybiB2LmdldFNldHRpbmcoIm9uQmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoIixCZSxOZSl9fSl9fSx7a2V5OiJjcmVhdGVSZW5kZXJDYWxjdWxhdG9ycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3Vt''@;'; + put 'put ''ZW50c1swXSYmYXJndW1lbnRzWzBdLHY9aDtpZih2KXt2YXIgeT10aGlzLmNyZWF0ZVJvd3NDYWxjdWxhdG9yKDIpLEM9dGhpcy5jcmVhdGVDb2x1bW5zQ2FsY3VsYXRvcigyKTt0aGlzLmFyZUFsbFByb3Bvc2VkVmlzaWJsZVJvd3NBbHJlYWR5UmVuZGVyZWQoeSkmJnRoaXMuYXJlQWxsUHJv''@;'; + put 'put ''cG9zZWRWaXNpYmxlQ29sdW1uc0FscmVhZHlSZW5kZXJlZChDKXx8KHY9ITEpfXJldHVybiB2fHwodGhpcy5yb3dzUmVuZGVyQ2FsY3VsYXRvcj10aGlzLmNyZWF0ZVJvd3NDYWxjdWxhdG9yKDEpLHRoaXMuY29sdW1uc1JlbmRlckNhbGN1bGF0b3I9dGhpcy5jcmVhdGVDb2x1bW5zQ2FsY3Vs''@;'; + put 'put ''YXRvcigxKSksdGhpcy5yb3dzVmlzaWJsZUNhbGN1bGF0b3I9bnVsbCx0aGlzLmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvcj1udWxsLHZ9fSx7a2V5OiJjcmVhdGVWaXNpYmxlQ2FsY3VsYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yb3dzVmlzaWJsZUNhbGN1bGF0b3I9dGhpcy5jcmVh''@;'; + put 'put ''dGVSb3dzQ2FsY3VsYXRvcigyKSx0aGlzLmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvcj10aGlzLmNyZWF0ZUNvbHVtbnNDYWxjdWxhdG9yKDIpfX0se2tleToiYXJlQWxsUHJvcG9zZWRWaXNpYmxlUm93c0FscmVhZHlSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYoIXRoaXMucm93c1Zp''@;'; + put 'put ''c2libGVDYWxjdWxhdG9yKXJldHVybiExO3ZhciB2PWguc3RhcnRSb3cseT1oLmVuZFJvdztpZihudWxsPT09diYmbnVsbD09PXkpcmV0dXJuITE7dmFyIEM9dGhpcy5yb3dzUmVuZGVyQ2FsY3VsYXRvcixJPUMuc3RhcnRSb3csaj1DLmVuZFJvdztyZXR1cm4hKHY8SXx8dj09PUkmJnY+MHx8''@;'; + put 'put ''eT5qfHx5PT09aiYmeTx0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIiktMSl9fSx7a2V5OiJhcmVBbGxQcm9wb3NlZFZpc2libGVDb2x1bW5zQWxyZWFkeVJlbmRlcmVkIix2YWx1ZTpmdW5jdGlvbihoKXtpZighdGhpcy5jb2x1bW5zVmlzaWJsZUNhbGN1bGF0b3IpcmV0''@;'; + put 'put ''dXJuITE7dmFyIHY9aC5zdGFydENvbHVtbix5PWguZW5kQ29sdW1uO2lmKG51bGw9PT12JiZudWxsPT09eSlyZXR1cm4hMTt2YXIgQz10aGlzLmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLEk9Qy5zdGFydENvbHVtbixqPUMuZW5kQ29sdW1uO3JldHVybiEodjxJfHx2PT09SSYmdj4wfHx5Pmp8''@;'; + put 'put ''fHk9PT1qJiZ5PHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKS0xKX19LHtrZXk6InJlc2V0SGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZCIsdmFsdWU6ZnVuY3Rpb24oKXtHbCh0aGlzLmhhc092ZXJzaXplZENvbHVtbkhlYWRlcnNNYXJrZWQsZnVuY3Rp''@;'; + put 'put ''b24oaCx2LHkpe3lbdl09dm9pZCAwfSl9fV0pLGR9KCk7Y29uc3QgdVFlPXNRZTtmdW5jdGlvbiBIZGUoZCl7cmV0dXJuKEhkZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1''@;'; + put 'put ''bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFZDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIg''@;'; + put 'put ''dj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIE5kZShkLGcpe3JldHVybihOZGU9T2JqZWN0LnNldFByb3RvdHlw''@;'; + put 'put ''ZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBwUWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1IZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1n''@;'; + put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIFZkZShkKX1mdW5jdGlvbiBWZGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJl''@;'; + put 'put ''ZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIGplZShkKXtyZXR1cm4oamVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8''@;'; + put 'put ''T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIG1RZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gaFFlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBh''@;'; + put 'put ''IGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJk5kZShk''@;'; + put 'put ''LGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGRRZShkKXt2YXIgZz1mdW5jdGlvbiBnUWUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkp''@;'; + put 'put ''cmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1qZWUoZCk7aWYoZyl7dmFyIEM9''@;'; + put 'put ''amVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBwUWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQzshZnVuY3Rpb24gY1FlKGQsZyl7aWYoIShkIGluc3Rh''@;'; + put 'put ''bmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCk7dmFyIEk9KEM9Zy5jYWxsKHRoaXMsdixuZXcgV1VlKHkpKSkud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmYWNhZGUiLFZkZShDKSk7cmV0dXJuIEMud3RUYWJs''@;'; + put 'put ''ZT1uZXcgcVVlKEMuZ2V0VGFibGVEYW8oKSxJLEMuZG9tQmluZGluZ3MsQy53dFNldHRpbmdzKSxDLnd0Vmlld3BvcnQ9bmV3IHVRZShDLmdldFZpZXdwb3J0RGFvKCksQy5kb21CaW5kaW5ncyxDLnd0U2V0dGluZ3MsQy5ldmVudE1hbmFnZXIsQy53dFRhYmxlKSxDLnNlbGVjdGlvbnM9Qy53''@;'; + put 'put ''dFNldHRpbmdzLmdldFNldHRpbmcoInNlbGVjdGlvbnMiKSxDLnd0RXZlbnQ9bmV3IENfZShJLEMuZG9tQmluZGluZ3MsQy53dFNldHRpbmdzLEMuZXZlbnRNYW5hZ2VyLEMud3RUYWJsZSxDLnNlbGVjdGlvbnMpLEMud3RPdmVybGF5cz1uZXcgWlVlKFZkZShDKSxJLEMuZG9tQmluZGluZ3Ms''@;'; + put 'put ''Qy53dFNldHRpbmdzLEMuZXZlbnRNYW5hZ2VyLEMud3RUYWJsZSksQy5leHBvcnRTZXR0aW5nc0FzQ2xhc3NOYW1lcygpLEMuZmluZE9yaWdpbmFsSGVhZGVycygpLEN9cmV0dXJuIGZ1bmN0aW9uIGZRZShkLGcsaCl7ZyYmVkNlKGQucHJvdG90eXBlLGcpLGgmJlZDZShkLGgpLE9iamVjdC5k''@;'; + put 'put ''ZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJleHBvcnRTZXR0aW5nc0FzQ2xhc3NOYW1lcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEk9W10saj1bXTtHbCh7cm93SGVhZGVyczoiaHRSb3dIZWFkZXJzIixjb2x1bW5IZWFkZXJzOiJo''@;'; + put 'put ''dENvbHVtbkhlYWRlcnMifSxmdW5jdGlvbih1ZSxfZSl7eS53dFNldHRpbmdzLmdldFNldHRpbmcoX2UpLmxlbmd0aCYmai5wdXNoKHVlKSxJLnB1c2godWUpfSkscGwodGhpcy53dFRhYmxlLnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZSxJKSxPMCh0aGlzLnd0VGFibGUud3RSb290RWxlbWVu''@;'; + put 'put ''dC5wYXJlbnROb2RlLGopfX0se2tleToiZ2V0Vmlld3BvcnREYW8iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztyZXR1cm57Z2V0IHdvdCgpe3JldHVybiB5fSxnZXQgdG9wT3ZlcmxheVRyaW1taW5nQ29udGFpbmVyKCl7cmV0dXJuIHkud3RPdmVybGF5cy50b3BPdmVybGF5LnRyaW1t''@;'; + put 'put ''aW5nQ29udGFpbmVyfSxnZXQgaW5saW5lU3RhcnRPdmVybGF5VHJpbW1pbmdDb250YWluZXIoKXtyZXR1cm4geS53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS50cmltbWluZ0NvbnRhaW5lcn0sZ2V0IHRvcFNjcm9sbFBvc2l0aW9uKCl7cmV0dXJuIHkud3RPdmVybGF5cy50b3BPdmVy''@;'; + put 'put ''bGF5LmdldFNjcm9sbFBvc2l0aW9uKCl9LGdldCB0b3BQYXJlbnRPZmZzZXQoKXtyZXR1cm4geS53dE92ZXJsYXlzLnRvcE92ZXJsYXkuZ2V0VGFibGVQYXJlbnRPZmZzZXQoKX0sZ2V0IGlubGluZVN0YXJ0U2Nyb2xsUG9zaXRpb24oKXtyZXR1cm4geS53dE92ZXJsYXlzLmlubGluZVN0YXJ0''@;'; + put 'put ''T3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpfSxnZXQgaW5saW5lU3RhcnRQYXJlbnRPZmZzZXQoKXtyZXR1cm4geS53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRUYWJsZVBhcmVudE9mZnNldCgpfSxnZXQgdG9wT3ZlcmxheSgpe3JldHVybiB5Lnd0T3ZlcmxheXMudG9wT3Zl''@;'; + put 'put ''cmxheX0sZ2V0IGlubGluZVN0YXJ0T3ZlcmxheSgpe3JldHVybiB5Lnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5fSxnZXQgYm90dG9tT3ZlcmxheSgpe3JldHVybiB5Lnd0T3ZlcmxheXMuYm90dG9tT3ZlcmxheX19fX1dKSxofShmZGUpO2Z1bmN0aW9uIGpDZShkLGcpe2Zvcih2YXIg''@;'; + put 'put ''aD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciB5UWU9ZnVuY3Rpb24oKXtmdW5j''@;'; + put 'put ''dGlvbiBkKGcpeyhmdW5jdGlvbiB2UWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksZyBpbnN0YW5jZW9mIGZkZT90aGlzLl93b3Q9Zzp0aGlzLl9pbml0RnJvbVNldHRp''@;'; + put 'put ''bmdzKGcpfXJldHVybiBmdW5jdGlvbiBBUWUoZCxnLGgpe2cmJmpDZShkLnByb3RvdHlwZSxnKSxoJiZqQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiX2luaXRGcm9tU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKGgp''@;'; + put 'put ''e2guZmFjYWRlPWZ1bmN0aW9uKHYpe3ZhciB5PW5ldyBkKHYpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB5fX0sdGhpcy5fd290PW5ldyBtUWUoaC50YWJsZSxoKX19LHtrZXk6Imd1aWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZ3VpZH19LHtrZXk6InJvb3REb2N1bWVu''@;'; + put 'put ''dCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5kb21CaW5kaW5ncy5yb290RG9jdW1lbnR9fSx7a2V5OiJyb290V2luZG93IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290LmRvbUJpbmRpbmdzLnJvb3RXaW5kb3d9fSx7a2V5OiJ3dFNldHRpbmdzIixnZXQ6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gdGhpcy5fd290Lnd0U2V0dGluZ3N9fSx7a2V5OiJjbG9uZVNvdXJjZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5jbG9uZVNvdXJjZX19LHtrZXk6ImNsb25lT3ZlcmxheSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5jbG9uZU92ZXJsYXl9''@;'; + put 'put ''fSx7a2V5OiJzZWxlY3Rpb25zIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290LnNlbGVjdGlvbnN9fSx7a2V5OiJ3dFZpZXdwb3J0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lnd0Vmlld3BvcnR9fSx7a2V5OiJ3dE92ZXJsYXlzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fd290Lnd0T3ZlcmxheXN9fSx7a2V5OiJ3dFRhYmxlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lnd0VGFibGV9fSx7a2V5OiJ3dEV2ZW50IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lnd0RXZlbnR9fSx7a2V5OiJ3dFNjcm9sbCIsZ2V0OmZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC53dFNjcm9sbH19LHtrZXk6ImRyYXduIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290LmRyYXdufSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290LmRyYXduPWh9fSx7a2V5OiJkcmF3SW50ZXJydXB0ZWQiLGdldDpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biB0aGlzLl93b3QuZHJhd0ludGVycnVwdGVkfSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290LmRyYXdJbnRlcnJ1cHRlZD1ofX0se2tleToibGFzdE1vdXNlT3ZlciIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5sYXN0TW91c2VPdmVyfSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5f''@;'; + put 'put ''d290Lmxhc3RNb3VzZU92ZXI9aH19LHtrZXk6Im1vbWVudHVtU2Nyb2xsaW5nIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lm1vbWVudHVtU2Nyb2xsaW5nfSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290Lm1vbWVudHVtU2Nyb2xsaW5nPWh9fSx7a2V5OiJ0b3VjaEFwcGxpZWQi''@;'; + put 'put ''LGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QudG91Y2hBcHBsaWVkfSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290LnRvdWNoQXBwbGllZD1ofX0se2tleToiZG9tQmluZGluZ3MiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZG9tQmluZGluZ3N9fSx7a2V5OiJldmVu''@;'; + put 'put ''dExpc3RlbmVycyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5ldmVudExpc3RlbmVyc30sc2V0OmZ1bmN0aW9uKGgpe3RoaXMuX3dvdC5ldmVudExpc3RlbmVycz1ofX0se2tleToiZXZlbnRNYW5hZ2VyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290LmV2ZW50TWFu''@;'; + put 'put ''YWdlcn19LHtrZXk6ImNyZWF0ZUNlbGxDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIHRoaXMuX3dvdC5jcmVhdGVDZWxsQ29vcmRzKGgsdil9fSx7a2V5OiJjcmVhdGVDZWxsUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gdGhpcy5fd290LmNyZWF0ZUNlbGxS''@;'; + put 'put ''YW5nZShoLHYseSl9fSx7a2V5OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIHRoaXMuX3dvdC5kcmF3KGgpLHRoaXN9fSx7a2V5OiJnZXRDZWxsIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bihoKXt2YXIgdj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO3JldHVybiB0aGlzLl93b3QuZ2V0Q2VsbChoLHYpfX0se2tleToic2Nyb2xsVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7cmV0dXJuIHRoaXMuX3dvdC5z''@;'; + put 'put ''Y3JvbGxWaWV3cG9ydChoLHYseSxDLEkpfX0se2tleToic2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gdGhpcy5fd290LnNjcm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5KGgsdix5KX19LHtrZXk6InNjcm9sbFZpZXdwb3J0VmVydGljYWxs''@;'; + put 'put ''eSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3JldHVybiB0aGlzLl93b3Quc2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KGgsdix5KX19LHtrZXk6ImdldFZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZ2V0Vmlld3BvcnQoKX19LHtrZXk6ImdldE92ZXJsYXlOYW1l''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuY2xvbmVPdmVybGF5P3RoaXMuX3dvdC5jbG9uZU92ZXJsYXkudHlwZToibWFzdGVyIn19LHtrZXk6ImV4cG9ydFNldHRpbmdzQXNDbGFzc05hbWVzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZXhwb3J0U2V0''@;'; + put 'put ''dGluZ3NBc0NsYXNzTmFtZXMoKX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gdGhpcy5fd290Lnd0U2V0dGluZ3MudXBkYXRlKGgsdiksdGhpc319LHtrZXk6ImdldFNldHRpbmciLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7cmV0dXJuIHRoaXMuX3dvdC53''@;'; + put 'put ''dFNldHRpbmdzLmdldFNldHRpbmcoaCx2LHksQyxJKX19LHtrZXk6Imhhc1NldHRpbmciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLl93b3Qud3RTZXR0aW5ncy5oYXNTZXR0aW5nKGgpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl93b3QuZGVzdHJveSgp''@;'; + put 'put ''fX1dKSxkfSgpO2Z1bmN0aW9uIFpDZShkKXt2YXIgZz1kLmlzU2hpZnRLZXksaD1kLmlzTGVmdENsaWNrLHY9ZC5pc1JpZ2h0Q2xpY2sseT1kLmNvb3JkcyxDPWQuc2VsZWN0aW9uLEk9ZC5jb250cm9sbGVyLGo9ZC5jZWxsQ29vcmRzRmFjdG9yeSx1ZT1DLmlzU2VsZWN0ZWQoKT9DLmdldFNl''@;'; + put 'put ''bGVjdGVkUmFuZ2UoKS5jdXJyZW50KCk6bnVsbCxfZT1DLmlzU2VsZWN0ZWRCeUNvcm5lcigpLEJlPUMuaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCk7aWYoZyYmdWUpeS5yb3c+PTAmJnkuY29sPj0wJiYhSS5jZWxsP0Muc2V0UmFuZ2VFbmQoeSk6KF9lfHxCZSkmJnkucm93Pj0wJiZ5LmNvbD49''@;'; + put 'put ''MCYmIUkuY2VsbD9DLnNldFJhbmdlRW5kKGooeS5yb3cseS5jb2wpKTpfZSYmeS5yb3c8MCYmIUkuY29sdW1uP0Muc2V0UmFuZ2VFbmQoaih1ZS50by5yb3cseS5jb2wpKTpCZSYmeS5jb2w8MCYmIUkucm93P0Muc2V0UmFuZ2VFbmQoaih5LnJvdyx1ZS50by5jb2wpKTooIV9lJiYhQmUmJnku''@;'; + put 'put ''Y29sPDB8fF9lJiZ5LmNvbDwwKSYmIUkucm93P0Muc2VsZWN0Um93cyhNYXRoLm1heCh1ZS5mcm9tLnJvdywwKSx5LnJvdyx5LmNvbCk6KCFfZSYmIUJlJiZ5LnJvdzwwfHxCZSYmeS5yb3c8MCkmJiFJLmNvbHVtbiYmQy5zZWxlY3RDb2x1bW5zKE1hdGgubWF4KHVlLmZyb20uY29sLDApLHku''@;'; + put 'put ''Y29sLHkucm93KTtlbHNle3ZhciBOZT0hQy5pbkluU2VsZWN0aW9uKHkpLEtlPWh8fHYmJk5lO3kucm93PDAmJnkuY29sPj0wJiYhSS5jb2x1bW4/S2UmJkMuc2VsZWN0Q29sdW1ucyh5LmNvbCx5LmNvbCx5LnJvdyk6eS5jb2w8MCYmeS5yb3c+PTAmJiFJLnJvdz9LZSYmQy5zZWxlY3RSb3dz''@;'; + put 'put ''KHkucm93LHkucm93LHkuY29sKTp5LmNvbD49MCYmeS5yb3c+PTAmJiFJLmNlbGw/S2UmJkMuc2V0UmFuZ2VTdGFydCh5KTp5LmNvbDwwJiZ5LnJvdzwwJiZDLnNlbGVjdEFsbCghMCwhMCl9fXZhciBiUWU9bmV3IE1hcChbWyJtb3VzZWRvd24iLFpDZV0sWyJtb3VzZW92ZXIiLGZ1bmN0aW9u''@;'; + put 'put ''IHdRZShkKXt2YXIgaD1kLmNvb3Jkcyx2PWQuc2VsZWN0aW9uLHk9ZC5jb250cm9sbGVyLEM9ZC5jZWxsQ29vcmRzRmFjdG9yeTtpZihkLmlzTGVmdENsaWNrKXt2YXIgST12LmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpLGo9di5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKSx1ZT12LnRhYmxl''@;'; + put 'put ''UHJvcHMuY291bnRDb2xzKCksX2U9di50YWJsZVByb3BzLmNvdW50Um93cygpO2omJiF5LmNvbHVtbj92LnNldFJhbmdlRW5kKEMoX2UtMSxoLmNvbCkpOkkmJiF5LnJvdz92LnNldFJhbmdlRW5kKEMoaC5yb3csdWUtMSkpOnkuY2VsbHx8di5zZXRSYW5nZUVuZChoKX19XSxbInRvdWNoc3Rh''@;'; + put 'put ''cnQiLFpDZV1dKTtmdW5jdGlvbiB6Q2UoZCxnKXt2YXIgaD1nLmNvb3Jkcyx2PWcuc2VsZWN0aW9uLHk9Zy5jb250cm9sbGVyLEM9Zy5jZWxsQ29vcmRzRmFjdG9yeTtiUWUuZ2V0KGQudHlwZSkoe2Nvb3JkczpoLHNlbGVjdGlvbjp2LGNvbnRyb2xsZXI6eSxjZWxsQ29vcmRzRmFjdG9yeTpD''@;'; + put 'put ''LGlzU2hpZnRLZXk6ZC5zaGlmdEtleSxpc0xlZnRDbGljazpvZWUoZCl8fCJ0b3VjaHN0YXJ0Ij09PWQudHlwZSxpc1JpZ2h0Q2xpY2s6U3coZCl9KX12YXIgR0NlPW5ldyBXZWFrTWFwLGpkZT1TeW1ib2woInJvb3RJbnN0YW5jZSIpO2Z1bmN0aW9uIF9RZShkKXtHQ2Uuc2V0KGQsITApfWZ1''@;'; + put 'put ''bmN0aW9uIENRZShkKXtyZXR1cm4gZD09PWpkZX1mdW5jdGlvbiBaZGUoZCl7cmV0dXJuIEdDZS5oYXMoZCl9ZnVuY3Rpb24gSlooZCxnKXtyZXR1cm4gZnVuY3Rpb24gTVFlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBTUWUoZCxnKXt2YXIgaD1udWxs''@;'; + put 'put ''PT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFs''@;'; + put 'put ''dWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxZQ2UoZCxnKXx8ZnVuY3Rpb24ga1FlKCl7dGhyb3cgbmV3''@;'; + put 'put ''IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBX''@;'; + put 'put ''Q2UoZCl7cmV0dXJuIGZ1bmN0aW9uIFRRZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiB6ZGUoZCl9KGQpfHxmdW5jdGlvbiB4UWUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJl''@;'; + put 'put ''dHVybiBBcnJheS5mcm9tKGQpfShkKXx8WUNlKGQpfHxmdW5jdGlvbiBFUWUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0''@;'; + put 'put ''IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBZQ2UoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHpkZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0''@;'; + put 'put ''Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4g''@;'; + put 'put ''emRlKGQsZyl9fWZ1bmN0aW9uIHpkZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFVDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2''@;'; + put 'put ''YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciB4Uz1uZXcgV2Vha01hcCxMUWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBk''@;'; + put 'put ''KGcpeyhmdW5jdGlvbiBJUWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5pbnN0YW5jZT1nLHRoaXMuZXZlbnRNYW5hZ2VyPW5ldyBMMShnKSx0aGlzLnNldHRp''@;'; + put 'put ''bmdzPWcuZ2V0U2V0dGluZ3MoKSx0aGlzLlRIRUFEPXZvaWQgMCx0aGlzLlRCT0RZPXZvaWQgMCx0aGlzLl93dD12b2lkIDAsdGhpcy5hY3RpdmVXdD12b2lkIDAsdGhpcy5wb3N0cG9uZWRBZGp1c3RFbGVtZW50c1NpemU9ITEseFMuc2V0KHRoaXMse3NlbGVjdGlvbk1vdXNlRG93bjohMSxt''@;'; + put 'put ''b3VzZURvd246dm9pZCAwLHRhYmxlOnZvaWQgMCxsYXN0V2lkdGg6MCxsYXN0SGVpZ2h0OjB9KSx0aGlzLmNyZWF0ZUVsZW1lbnRzKCksdGhpcy5yZWdpc3RlckV2ZW50cygpLHRoaXMuaW5pdGlhbGl6ZVdhbGtvbnRhYmxlKCl9cmV0dXJuIGZ1bmN0aW9uIERRZShkLGcsaCl7ZyYmVUNlKGQu''@;'; + put 'put ''cHJvdG90eXBlLGcpLGgmJlVDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pbnN0YW5jZS5pc1JlbmRlclN1c3BlbmRlZCgpfHwodGhpcy5pbnN0YW5jZS5ydW5I''@;'; + put 'put ''b29rcygiYmVmb3JlUmVuZGVyIix0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlciksdGhpcy5wb3N0cG9uZWRBZGp1c3RFbGVtZW50c1NpemUmJih0aGlzLnBvc3Rwb25lZEFkanVzdEVsZW1lbnRzU2l6ZT0hMSx0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSghMCkpLHRoaXMuX3d0LmRyYXco''@;'; + put 'put ''IXRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyKSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJlbmRlciIsdGhpcy5pbnN0YW5jZS5mb3JjZUZ1bGxSZW5kZXIpLHRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyPSExLHRoaXMuaW5zdGFuY2UucmVuZGVyQ2FsbD0hMSl9fSx7''@;'; + put 'put ''a2V5OiJhZGp1c3RFbGVtZW50c1NpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTt0aGlzLmluc3RhbmNlLmlzUmVuZGVyU3VzcGVuZGVkKCk/dGhpcy5wb3N0cG9uZWRBZGp1c3RFbGVtZW50''@;'; + put 'put ''c1NpemU9ITA6dGhpcy5fd3Qud3RPdmVybGF5cy5hZGp1c3RFbGVtZW50c1NpemUoaCl9fSx7a2V5OiJnZXRDZWxsQXRDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5fd3QuZ2V0Q2VsbChoLHYpO3JldHVybiB5PDA/bnVsbDp5fX0se2tleToic2Nyb2xsVmlld3BvcnQi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7cmV0dXJuIHRoaXMuX3d0LnNjcm9sbFZpZXdwb3J0KGgsdix5LEMsSSl9fSx7a2V5OiJzY3JvbGxWaWV3cG9ydEhvcml6b250YWxseSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3JldHVybiB0aGlzLl93dC5zY3JvbGxWaWV3cG9ydEhvcml6b250''@;'; + put 'put ''YWxseShoLHYseSl9fSx7a2V5OiJzY3JvbGxWaWV3cG9ydFZlcnRpY2FsbHkiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gdGhpcy5fd3Quc2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KGgsdix5KX19LHtrZXk6ImNyZWF0ZUVsZW1lbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXhT''@;'; + put 'put ''LmdldCh0aGlzKSx2PXRoaXMuaW5zdGFuY2UseT12LnJvb3RFbGVtZW50LEM9di5yb290RG9jdW1lbnQsST15LmdldEF0dHJpYnV0ZSgic3R5bGUiKTtJJiZ5LnNldEF0dHJpYnV0ZSgiZGF0YS1vcmlnaW5hbHN0eWxlIixJKSxPMCh5LCJoYW5kc29udGFibGUiKSxoLnRhYmxlPUMuY3JlYXRl''@;'; + put 'put ''RWxlbWVudCgiVEFCTEUiKSxPMChoLnRhYmxlLCJodENvcmUiKSx0aGlzLmluc3RhbmNlLmdldFNldHRpbmdzKCkudGFibGVDbGFzc05hbWUmJk8wKGgudGFibGUsdGhpcy5pbnN0YW5jZS5nZXRTZXR0aW5ncygpLnRhYmxlQ2xhc3NOYW1lKSx0aGlzLlRIRUFEPUMuY3JlYXRlRWxlbWVudCgi''@;'; + put 'put ''VEhFQUQiKSxoLnRhYmxlLmFwcGVuZENoaWxkKHRoaXMuVEhFQUQpLHRoaXMuVEJPRFk9Qy5jcmVhdGVFbGVtZW50KCJUQk9EWSIpLGgudGFibGUuYXBwZW5kQ2hpbGQodGhpcy5UQk9EWSksdGhpcy5pbnN0YW5jZS50YWJsZT1oLnRhYmxlLHRoaXMuaW5zdGFuY2UuY29udGFpbmVyLmluc2Vy''@;'; + put 'put ''dEJlZm9yZShoLnRhYmxlLHRoaXMuaW5zdGFuY2UuY29udGFpbmVyLmZpcnN0Q2hpbGQpfX0se2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PXhTLmdldCh0aGlzKSx5PXRoaXMuaW5zdGFuY2UsQz15LnJvb3RFbGVtZW50LEk9eS5yb290RG9jdW1l''@;'; + put 'put ''bnQsaj15LnNlbGVjdGlvbix1ZT1JLmRvY3VtZW50RWxlbWVudDt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlZG93biIsZnVuY3Rpb24oX2Upe2lmKHYuc2VsZWN0aW9uTW91c2VEb3duPSEwLCFoLmlzVGV4dFNlbGVjdGlvbkFsbG93ZWQoX2UudGFyZ2V0KSl7''@;'; + put 'put ''dmFyIEJlPWguaW5zdGFuY2Uucm9vdFdpbmRvdztwM2UoQmUpLF9lLnByZXZlbnREZWZhdWx0KCksQmUuZm9jdXMoKX19KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNldXAiLGZ1bmN0aW9uKCl7di5zZWxlY3Rpb25Nb3VzZURvd249ITF9KSx0aGlzLmV2ZW50''@;'; + put 'put ''TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlbW92ZSIsZnVuY3Rpb24oX2Upe3Yuc2VsZWN0aW9uTW91c2VEb3duJiYhaC5pc1RleHRTZWxlY3Rpb25BbGxvd2VkKF9lLnRhcmdldCkmJihoLnNldHRpbmdzLmZyYWdtZW50U2VsZWN0aW9uJiZwM2UoaC5pbnN0YW5jZS5yb290V2lu''@;'; + put 'put ''ZG93KSxfZS5wcmV2ZW50RGVmYXVsdCgpKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodWUsImtleXVwIixmdW5jdGlvbihfZSl7ai5pc0luUHJvZ3Jlc3MoKSYmIV9lLnNoaWZ0S2V5JiZqLmZpbmlzaCgpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l''@;'; + put 'put ''cih1ZSwibW91c2V1cCIsZnVuY3Rpb24oX2Upe2ouaXNJblByb2dyZXNzKCkmJm9lZShfZSkmJmouZmluaXNoKCksdi5tb3VzZURvd249ITEsKG0zZShJLmFjdGl2ZUVsZW1lbnQpfHwhai5pc1NlbGVjdGVkKCkmJiFqLmlzU2VsZWN0ZWRCeUFueUhlYWRlcigpJiYhQy5jb250YWlucyhfZS50''@;'; + put 'put ''YXJnZXQpJiYhU3coX2UpKSYmaC5pbnN0YW5jZS51bmxpc3RlbigpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih1ZSwiY29udGV4dG1lbnUiLGZ1bmN0aW9uKF9lKXtqLmlzSW5Qcm9ncmVzcygpJiZTdyhfZSkmJihqLmZpbmlzaCgpLHYubW91c2VEb3duPSExKX0pLHRo''@;'; + put 'put ''aXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodWUsInRvdWNoZW5kIixmdW5jdGlvbigpe2ouaXNJblByb2dyZXNzKCkmJmouZmluaXNoKCksdi5tb3VzZURvd249ITF9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHVlLCJtb3VzZWRvd24iLGZ1bmN0aW9uKF9l''@;'; + put 'put ''KXt2YXIgQmU9X2UudGFyZ2V0LE5lPV9lLnh8fF9lLmNsaWVudFgsS2U9X2UueXx8X2UuY2xpZW50WSxkdD1fZS50YXJnZXQ7aWYoIXYubW91c2VEb3duJiZDJiZoLmluc3RhbmNlLnZpZXcpe3ZhciBPdD1oLmluc3RhbmNlLnZpZXcuX3d0Lnd0VGFibGUuaG9sZGVyO2lmKGR0PT09T3Qpe3Zh''@;'; + put 'put ''ciAkdD1CYyhJKTtpZihJLmVsZW1lbnRGcm9tUG9pbnQoTmUrJHQsS2UpIT09T3R8fEkuZWxlbWVudEZyb21Qb2ludChOZSxLZSskdCkhPT1PdClyZXR1cm59ZWxzZSBmb3IoO2R0IT09dWU7KXtpZihudWxsPT09ZHQpe2lmKF9lLmlzVGFyZ2V0V2ViQ29tcG9uZW50KWJyZWFrO3JldHVybn1p''@;'; + put 'put ''ZihkdD09PUMpcmV0dXJuO2R0PWR0LnBhcmVudE5vZGV9KCJmdW5jdGlvbiI9PXR5cGVvZiBoLnNldHRpbmdzLm91dHNpZGVDbGlja0Rlc2VsZWN0cz9oLnNldHRpbmdzLm91dHNpZGVDbGlja0Rlc2VsZWN0cyhCZSk6aC5zZXR0aW5ncy5vdXRzaWRlQ2xpY2tEZXNlbGVjdHMpP2guaW5zdGFu''@;'; + put 'put ''Y2UuZGVzZWxlY3RDZWxsKCk6aC5pbnN0YW5jZS5kZXN0cm95RWRpdG9yKCExLCExKX19KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHYudGFibGUsInNlbGVjdHN0YXJ0IixmdW5jdGlvbihfZSl7aC5zZXR0aW5ncy5mcmFnbWVudFNlbGVjdGlvbnx8VlooX2UudGFyZ2V0''@;'; + put 'put ''KXx8X2UucHJldmVudERlZmF1bHQoKX0pfX0se2tleToidHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY7cmV0dXJuKHY9dGhpcy5pbnN0YW5jZSkuX2NyZWF0ZUNlbGxDb29yZHMuYXBwbHkodixXQ2UodGhpcy50cmFuc2xhdGVG''@;'; + put 'put ''cm9tUmVuZGVyYWJsZVRvVmlzdWFsSW5kZXgoaC5yb3csaC5jb2wpKSl9fSx7a2V5OiJ0cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlzdWFsSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9aD49MD90aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5k''@;'; + put 'put ''ZXJhYmxlSW5kZXgoaCk6aCxDPXY+PTA/dGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHYpOnY7cmV0dXJuIG51bGw9PT15JiYoeT1oKSxudWxsPT09QyYmKEM9diksW3ksQ119fSx7a2V5OiJjb3VudFJlbmRlcmFibGVJbmRleGVz''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PU1hdGgubWluKGguZ2V0Tm90VHJpbW1lZEluZGV4ZXNMZW5ndGgoKSx2KSxDPWguZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHktMSwtMSk7cmV0dXJuIG51bGw9PT1DPzA6aC5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEMpKzF9fSx7''@;'; + put 'put ''a2V5OiJjb3VudFJlbmRlcmFibGVDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvdW50UmVuZGVyYWJsZUluZGV4ZXModGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlcix0aGlzLnNldHRpbmdzLm1heENvbHMpfX0se2tleToiY291bnRSZW5kZXJhYmxlUm93cyIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb3VudFJlbmRlcmFibGVJbmRleGVzKHRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIsdGhpcy5zZXR0aW5ncy5tYXhSb3dzKX19LHtrZXk6ImNvdW50Tm90SGlkZGVuUm93SW5kZXhlcyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5jb3VudE5vdEhpZGRlbkluZGV4ZXMoaCx2LHRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIsdGhpcy5jb3VudFJlbmRlcmFibGVSb3dzKCkpfX0se2tleToiY291bnROb3RIaWRkZW5Db2x1bW5JbmRleGVzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLmNvdW50Tm90''@;'; + put 'put ''SGlkZGVuSW5kZXhlcyhoLHYsdGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlcix0aGlzLmNvdW50UmVuZGVyYWJsZUNvbHVtbnMoKSl9fSx7a2V5OiJjb3VudE5vdEhpZGRlbkluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe2lmKGlzTmFOKGgpfHxoPDApcmV0dXJuIDA7dmFy''@;'; + put 'put ''IEk9eS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoaCx2KSxqPXkuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChJKTtpZighTnVtYmVyLmlzSW50ZWdlcihqKSlyZXR1cm4gMDt2YXIgdWU9MDtyZXR1cm4gdjwwP3VlPWorMTp2PjAmJih1ZT1DLWopLHVlfX0se2tleToiY291bnROb3RI''@;'; + put 'put ''aWRkZW5GaXhlZENvbHVtbnNTdGFydCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmluc3RhbmNlLmNvdW50Q29scygpLHY9TWF0aC5taW4ocGFyc2VJbnQodGhpcy5zZXR0aW5ncy5maXhlZENvbHVtbnNTdGFydCwxMCksaCktMTtyZXR1cm4gdGhpcy5jb3VudE5vdEhpZGRlbkNvbHVt''@;'; + put 'put ''bkluZGV4ZXModiwtMSl9fSx7a2V5OiJjb3VudE5vdEhpZGRlbkZpeGVkUm93c1RvcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmluc3RhbmNlLmNvdW50Um93cygpLHY9TWF0aC5taW4ocGFyc2VJbnQodGhpcy5zZXR0aW5ncy5maXhlZFJvd3NUb3AsMTApLGgpLTE7cmV0dXJuIHRo''@;'; + put 'put ''aXMuY291bnROb3RIaWRkZW5Sb3dJbmRleGVzKHYsLTEpfX0se2tleToiY291bnROb3RIaWRkZW5GaXhlZFJvd3NCb3R0b20iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5pbnN0YW5jZS5jb3VudFJvd3MoKSx2PU1hdGgubWF4KGgtcGFyc2VJbnQodGhpcy5zZXR0aW5ncy5maXhlZFJv''@;'; + put 'put ''d3NCb3R0b20sMTApLDApO3JldHVybiB0aGlzLmNvdW50Tm90SGlkZGVuUm93SW5kZXhlcyh2LDEpfX0se2tleToiaXNNYWluVGFibGVOb3RGdWxseUNvdmVyZWRCeU92ZXJsYXlzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuY291bnROb3RIaWRkZW5GaXhlZFJvd3NUb3AoKSt0aGlz''@;'; + put 'put ''LmNvdW50Tm90SGlkZGVuRml4ZWRSb3dzQm90dG9tKCksdj10aGlzLmNvdW50Tm90SGlkZGVuRml4ZWRDb2x1bW5zU3RhcnQoKTtyZXR1cm4gdGhpcy5pbnN0YW5jZS5jb3VudFJlbmRlcmVkUm93cygpPmgmJnRoaXMuaW5zdGFuY2UuY291bnRSZW5kZXJlZENvbHMoKT52fX0se2tleToiaW5p''@;'; + put 'put ''dGlhbGl6ZVdhbGtvbnRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj14Uy5nZXQodGhpcykseT17cnRsTW9kZTp0aGlzLmluc3RhbmNlLmlzUnRsKCksZXh0ZXJuYWxSb3dDYWxjdWxhdG9yOnRoaXMuaW5zdGFuY2UuZ2V0UGx1Z2luKCJhdXRvUm93U2l6ZSIpJiZ0aGlzLmlu''@;'; + put 'put ''c3RhbmNlLmdldFBsdWdpbigiYXV0b1Jvd1NpemUiKS5pc0VuYWJsZWQoKSx0YWJsZTp2LnRhYmxlLGlzRGF0YVZpZXdJbnN0YW5jZTpmdW5jdGlvbigpe3JldHVybiBaZGUoaC5pbnN0YW5jZSl9LHByZXZlbnRPdmVyZmxvdzpmdW5jdGlvbigpe3JldHVybiBoLnNldHRpbmdzLnByZXZlbnRP''@;'; + put 'put ''dmVyZmxvd30scHJldmVudFdoZWVsOmZ1bmN0aW9uKCl7cmV0dXJuIGguc2V0dGluZ3MucHJldmVudFdoZWVsfSxzdHJldGNoSDpmdW5jdGlvbigpe3JldHVybiBoLnNldHRpbmdzLnN0cmV0Y2hIfSxkYXRhOmZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U7cmV0dXJuKEtlPWguaW5zdGFuY2UpLmdl''@;'; + put 'put ''dERhdGFBdENlbGwuYXBwbHkoS2UsV0NlKGgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbEluZGV4KEJlLE5lKSkpfSx0b3RhbFJvd3M6ZnVuY3Rpb24oKXtyZXR1cm4gaC5jb3VudFJlbmRlcmFibGVSb3dzKCl9LHRvdGFsQ29sdW1uczpmdW5jdGlvbigpe3JldHVybiBoLmNvdW50''@;'; + put 'put ''UmVuZGVyYWJsZUNvbHVtbnMoKX0sZml4ZWRDb2x1bW5zU3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gaC5jb3VudE5vdEhpZGRlbkZpeGVkQ29sdW1uc1N0YXJ0KCl9LGZpeGVkUm93c1RvcDpmdW5jdGlvbigpe3JldHVybiBoLmNvdW50Tm90SGlkZGVuRml4ZWRSb3dzVG9wKCl9LGZpeGVkUm93''@;'; + put 'put ''c0JvdHRvbTpmdW5jdGlvbigpe3JldHVybiBoLmNvdW50Tm90SGlkZGVuRml4ZWRSb3dzQm90dG9tKCl9LHNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheTpmdW5jdGlvbigpe3JldHVybiBoLnNldHRpbmdzLmZpeGVkQ29sdW1uc1N0YXJ0PjB8fHkucm93SGVhZGVycygpLmxlbmd0aD4w''@;'; + put 'put ''fSxzaG91bGRSZW5kZXJUb3BPdmVybGF5OmZ1bmN0aW9uKCl7cmV0dXJuIGguc2V0dGluZ3MuZml4ZWRSb3dzVG9wPjB8fHkuY29sdW1uSGVhZGVycygpLmxlbmd0aD4wfSxzaG91bGRSZW5kZXJCb3R0b21PdmVybGF5OmZ1bmN0aW9uKCl7cmV0dXJuIGguc2V0dGluZ3MuZml4ZWRSb3dzQm90''@;'; + put 'put ''dG9tPjB9LG1pblNwYXJlUm93czpmdW5jdGlvbigpe3JldHVybiBoLnNldHRpbmdzLm1pblNwYXJlUm93c30scmVuZGVyQWxsUm93czp0aGlzLnNldHRpbmdzLnJlbmRlckFsbFJvd3Mscm93SGVhZGVyczpmdW5jdGlvbigpe3ZhciBCZT1bXTtyZXR1cm4gaC5pbnN0YW5jZS5oYXNSb3dIZWFk''@;'; + put 'put ''ZXJzKCkmJkJlLnB1c2goZnVuY3Rpb24oTmUsS2Upe3ZhciBkdD1OZT49MD9oLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoTmUpOk5lO2guYXBwZW5kUm93SGVhZGVyKGR0LEtlKX0pLGguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyR2V0Um93''@;'; + put 'put ''SGVhZGVyUmVuZGVyZXJzIixCZSksQmV9LGNvbHVtbkhlYWRlcnM6ZnVuY3Rpb24oKXt2YXIgQmU9W107cmV0dXJuIGguaW5zdGFuY2UuaGFzQ29sSGVhZGVycygpJiZCZS5wdXNoKGZ1bmN0aW9uKE5lLEtlKXt2YXIgZHQ9TmU+PTA/aC5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRW''@;'; + put 'put ''aXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KE5lKTpOZTtoLmFwcGVuZENvbEhlYWRlcihkdCxLZSl9KSxoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVycyIsQmUpLEJlfSxjb2x1bW5XaWR0aDpmdW5jdGlvbihCZSl7dmFyIE5lPWguaW5zdGFuY2UuY29s''@;'; + put 'put ''dW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChCZSk7cmV0dXJuIGguaW5zdGFuY2UuZ2V0Q29sV2lkdGgobnVsbD09PU5lP0JlOk5lKX0scm93SGVpZ2h0OmZ1bmN0aW9uKEJlKXt2YXIgTmU9aC5pbnN0YW5jZS5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9t''@;'; + put 'put ''UmVuZGVyYWJsZUluZGV4KEJlKTtyZXR1cm4gaC5pbnN0YW5jZS5nZXRSb3dIZWlnaHQobnVsbD09PU5lP0JlOk5lKX0sY2VsbFJlbmRlcmVyOmZ1bmN0aW9uKEJlLE5lLEtlKXt2YXIgT3Q9SlooaC50cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlzdWFsSW5kZXgoQmUsTmUpLDIpLCR0PU90''@;'; + put 'put ''WzBdLGZuPU90WzFdLExuPWguaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeUdldENlbGxDb29yZHMiLCR0LGZuKSxpcj0kdCxtcj1mbjtpZihBcnJheS5pc0FycmF5KExuKSl7dmFyIFNyPUpaKExuLDIpO2lyPVNyWzBdLG1yPVNyWzFdfXZhciB3cj1oLmluc3RhbmNlLmdldENlbGxNZXRhKGly''@;'; + put 'put ''LG1yKSxRcj1oLmluc3RhbmNlLmNvbFRvUHJvcChtcikseWk9aC5pbnN0YW5jZS5nZXREYXRhQXRSb3dQcm9wKGlyLFFyKTtoLmluc3RhbmNlLmhhc0hvb2soImJlZm9yZVZhbHVlUmVuZGVyIikmJih5aT1oLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVWYWx1ZVJlbmRlciIseWksd3IpKSxo''@;'; + put 'put ''Lmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVSZW5kZXJlciIsS2UsJHQsZm4sUXIseWksd3IpLGguaW5zdGFuY2UuZ2V0Q2VsbFJlbmRlcmVyKHdyKShoLmluc3RhbmNlLEtlLCR0LGZuLFFyLHlpLHdyKSxoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJlbmRlcmVyIixLZSwkdCxmbixRcix5''@;'; + put 'put ''aSx3cil9LHNlbGVjdGlvbnM6dGhpcy5pbnN0YW5jZS5zZWxlY3Rpb24uaGlnaGxpZ2h0LGhpZGVCb3JkZXJPbk1vdXNlRG93bk92ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gaC5zZXR0aW5ncy5mcmFnbWVudFNlbGVjdGlvbn0sb25XaW5kb3dSZXNpemU6ZnVuY3Rpb24oKXshaC5pbnN0YW5jZXx8''@;'; + put 'put ''aC5pbnN0YW5jZS5pc0Rlc3Ryb3llZHx8aC5pbnN0YW5jZS5yZWZyZXNoRGltZW5zaW9ucygpfSxvbkNlbGxNb3VzZURvd246ZnVuY3Rpb24oQmUsTmUsS2UsZHQpe3ZhciBPdD1oLnRyYW5zbGF0ZUZyb21SZW5kZXJhYmxlVG9WaXN1YWxDb29yZHMoTmUpLCR0PXtyb3c6ITEsY29sdW1uOiEx''@;'; + put 'put ''LGNlbGw6ITF9O2guaW5zdGFuY2UubGlzdGVuKCksaC5hY3RpdmVXdD1kdCx2Lm1vdXNlRG93bj0hMCxoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLEJlLE90LEtlLCR0KSwhX1MoQmUpJiYoekNlKEJlLHtjb29yZHM6T3Qsc2VsZWN0aW9uOmguaW5zdGFuY2Uu''@;'; + put 'put ''c2VsZWN0aW9uLGNvbnRyb2xsZXI6JHQsY2VsbENvb3Jkc0ZhY3Rvcnk6ZnVuY3Rpb24oTG4saXIpe3JldHVybiBoLmluc3RhbmNlLl9jcmVhdGVDZWxsQ29vcmRzKExuLGlyKX19KSxoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlck9uQ2VsbE1vdXNlRG93biIsQmUsT3QsS2UpLGguYWN0aXZl''@;'; + put 'put ''V3Q9aC5fd3QpfSxvbkNlbGxDb250ZXh0TWVudTpmdW5jdGlvbihCZSxOZSxLZSxkdCl7dmFyIE90PWgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhOZSk7aC5hY3RpdmVXdD1kdCx2Lm1vdXNlRG93bj0hMSxoLmluc3RhbmNlLnNlbGVjdGlvbi5pc0luUHJvZ3Jlc3Mo''@;'; + put 'put ''KSYmaC5pbnN0YW5jZS5zZWxlY3Rpb24uZmluaXNoKCksaC5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlT25DZWxsQ29udGV4dE1lbnUiLEJlLE90LEtlKSwhX1MoQmUpJiYoaC5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJPbkNlbGxDb250ZXh0TWVudSIsQmUsT3QsS2UpLGguYWN0aXZlV3Q9''@;'; + put 'put ''aC5fd3QpfSxvbkNlbGxNb3VzZU91dDpmdW5jdGlvbihCZSxOZSxLZSxkdCl7dmFyIE90PWgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhOZSk7aC5hY3RpdmVXdD1kdCxoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZU91dCIsQmUsT3QsS2UpLCFf''@;'; + put 'put ''UyhCZSkmJihoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlck9uQ2VsbE1vdXNlT3V0IixCZSxPdCxLZSksaC5hY3RpdmVXdD1oLl93dCl9LG9uQ2VsbE1vdXNlT3ZlcjpmdW5jdGlvbihCZSxOZSxLZSxkdCl7dmFyIE90PWgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhO''@;'; + put 'put ''ZSksJHQ9e3JvdzohMSxjb2x1bW46ITEsY2VsbDohMX07aC5hY3RpdmVXdD1kdCxoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZU92ZXIiLEJlLE90LEtlLCR0KSwhX1MoQmUpJiYodi5tb3VzZURvd24mJnpDZShCZSx7Y29vcmRzOk90LHNlbGVjdGlvbjpoLmluc3RhbmNl''@;'; + put 'put ''LnNlbGVjdGlvbixjb250cm9sbGVyOiR0LGNlbGxDb29yZHNGYWN0b3J5OmZ1bmN0aW9uKExuLGlyKXtyZXR1cm4gaC5pbnN0YW5jZS5fY3JlYXRlQ2VsbENvb3JkcyhMbixpcil9fSksaC5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJPbkNlbGxNb3VzZU92ZXIiLEJlLE90LEtlKSxoLmFjdGl2''@;'; + put 'put ''ZVd0PWguX3d0KX0sb25DZWxsTW91c2VVcDpmdW5jdGlvbihCZSxOZSxLZSxkdCl7dmFyIE90PWgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhOZSk7aC5hY3RpdmVXdD1kdCxoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZVVwIixCZSxPdCxLZSks''@;'; + put 'put ''IV9TKEJlKSYmIWguaW5zdGFuY2UuaXNEZXN0cm95ZWQmJihoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlck9uQ2VsbE1vdXNlVXAiLEJlLE90LEtlKSxoLmFjdGl2ZVd0PWguX3d0KX0sb25DZWxsQ29ybmVyTW91c2VEb3duOmZ1bmN0aW9uKEJlKXtCZS5wcmV2ZW50RGVmYXVsdCgpLGguaW5z''@;'; + put 'put ''dGFuY2UucnVuSG9va3MoImFmdGVyT25DZWxsQ29ybmVyTW91c2VEb3duIixCZSl9LG9uQ2VsbENvcm5lckRibENsaWNrOmZ1bmN0aW9uKEJlKXtCZS5wcmV2ZW50RGVmYXVsdCgpLGguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyT25DZWxsQ29ybmVyRGJsQ2xpY2siLEJlKX0sYmVmb3JlRHJh''@;'; + put 'put ''dzpmdW5jdGlvbihCZSxOZSl7cmV0dXJuIGguYmVmb3JlUmVuZGVyKEJlLE5lKX0sb25EcmF3OmZ1bmN0aW9uKEJlKXtyZXR1cm4gaC5hZnRlclJlbmRlcihCZSl9LG9uU2Nyb2xsVmVydGljYWxseTpmdW5jdGlvbigpe3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclNjcm9sbFZl''@;'; + put 'put ''cnRpY2FsbHkiKX0sb25TY3JvbGxIb3Jpem9udGFsbHk6ZnVuY3Rpb24oKXtyZXR1cm4gaC5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiKX0sb25CZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lczpmdW5jdGlvbigpe3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tz''@;'; + put 'put ''KCJiZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIpfSxvbkJlZm9yZUhpZ2hsaWdodGluZ1Jvd0hlYWRlcjpmdW5jdGlvbihCZSxOZSxLZSl7dmFyIGR0PWguaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIsT3Q9ZHQuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChCZSksJHQ9aC5pbnN0YW5j''@;'; + put 'put ''ZS5ydW5Ib29rcygiYmVmb3JlSGlnaGxpZ2h0aW5nUm93SGVhZGVyIixPdCxOZSxLZSk7cmV0dXJuIGR0LmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoZHQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KCR0LDEpKX0sb25CZWZvcmVIaWdobGlnaHRpbmdDb2x1bW5IZWFkZXI6ZnVuY3Rp''@;'; + put 'put ''b24oQmUsTmUsS2Upe3ZhciBkdD1oLmluc3RhbmNlLmNvbHVtbkluZGV4TWFwcGVyLE90PWR0LmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoQmUpLCR0PWguaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlciIsT3QsTmUsS2UpO3JldHVybiBkdC5n''@;'; + put 'put ''ZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGR0LmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCgkdCwxKSl9LG9uQWZ0ZXJEcmF3U2VsZWN0aW9uOmZ1bmN0aW9uKEJlLE5lLEtlKXt2YXIgZHQsJHQ9SlooaC50cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlzdWFsSW5kZXgoQmUsTmUpLDIp''@;'; + put 'put ''LGZuPSR0WzBdLExuPSR0WzFdLGlyPWguaW5zdGFuY2Uuc2VsZWN0aW9uLmdldFNlbGVjdGVkUmFuZ2UoKSxtcj1pci5zaXplKCk7aWYobXI+MCl7dmFyIHdyPWlyLnBlZWtCeUluZGV4KChudWxsIT1LZT9LZTowKSsxLW1yKTtkdD1bd3IuZnJvbS5yb3csd3IuZnJvbS5jb2wsd3IudG8ucm93''@;'; + put 'put ''LHdyLnRvLmNvbF19cmV0dXJuIGguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyRHJhd1NlbGVjdGlvbiIsZm4sTG4sZHQsS2UpfSxvbkJlZm9yZURyYXdCb3JkZXJzOmZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U9SlooQmUsNCksT3Q9S2VbMV0sJHQ9S2VbMl0sZm49S2VbM10sTG49W2guaW5zdGFu''@;'; + put 'put ''Y2Uucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChLZVswXSksaC5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KE90KSxoLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxl''@;'; + put 'put ''SW5kZXgoJHQpLGguaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChmbildO3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVEcmF3Qm9yZGVycyIsTG4sTmUpfSxvbkJlZm9yZVRvdWNoU2Nyb2xsOmZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IGguaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVRvdWNoU2Nyb2xsIil9LG9uQWZ0ZXJNb21lbnR1bVNjcm9sbDpmdW5jdGlvbigpe3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlck1vbWVudHVtU2Nyb2xsIil9LG9uQmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoOmZ1bmN0aW9u''@;'; + put 'put ''KEJlLE5lKXt2YXIgS2U9aC5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KE5lKTtyZXR1cm4gaC5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoIixCZSxLZSl9LG9uTW9kaWZ5Um93SGVhZGVyV2lkdGg6''@;'; + put 'put ''ZnVuY3Rpb24oQmUpe3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJtb2RpZnlSb3dIZWFkZXJXaWR0aCIsQmUpfSxvbk1vZGlmeUdldENlbGxDb29yZHM6ZnVuY3Rpb24oQmUsTmUsS2Upe3ZhciBkdD1oLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLE90PWguaW5zdGFuY2UuY29sdW1uSW5k''@;'; + put 'put ''ZXhNYXBwZXIsJHQ9TmU+PTA/T3QuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChOZSk6TmUsZm49QmU+PTA/ZHQuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChCZSk6QmUsTG49aC5pbnN0YW5jZS5ydW5Ib29rcygibW9kaWZ5R2V0Q2VsbENvb3JkcyIsZm4sJHQsS2UpO2lmKEFy''@;'; + put 'put ''cmF5LmlzQXJyYXkoTG4pKXt2YXIgaXI9SlooTG4sNCksbXI9aXJbMF0sU3I9aXJbMV0sd3I9aXJbMl0sUXI9aXJbM107cmV0dXJuW21yPj0wP2R0LmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoZHQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KG1yLDEpKTptcixTcj49MD9PdC5nZXRS''@;'; + put 'put ''ZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KE90LmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChTciwxKSk6U3Isd3I+PTA/ZHQuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChkdC5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgod3IsLTEpKTp3cixRcj49MD9PdC5nZXRSZW5kZXJhYmxlRnJv''@;'; + put 'put ''bVZpc3VhbEluZGV4KE90LmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChRciwtMSkpOlFyXX19LHZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlOmZ1bmN0aW9uKEJlKXt2YXIgTmU9aC5zZXR0aW5ncy52aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDtpZigiYXV0byI9PT1OZSYmaC5zZXR0''@;'; + put 'put ''aW5ncy5maXhlZFJvd3NUb3AmJihOZT0xMCksTmU+MHx8ImF1dG8iPT09TmUpe3ZhciBLZT1oLmNvdW50UmVuZGVyYWJsZVJvd3MoKSxkdD1CZS5zdGFydFJvdyxPdD1CZS5lbmRSb3c7aWYoIm51bWJlciI9PXR5cGVvZiBOZSlCZS5zdGFydFJvdz1NYXRoLm1heChkdC1OZSwwKSxCZS5lbmRS''@;'; + put 'put ''b3c9TWF0aC5taW4oT3QrTmUsS2UtMSk7ZWxzZSBpZigiYXV0byI9PT1OZSl7dmFyICR0PU1hdGguY2VpbChPdC9LZSoxMik7QmUuc3RhcnRSb3c9TWF0aC5tYXgoZHQtJHQsMCksQmUuZW5kUm93PU1hdGgubWluKE90KyR0LEtlLTEpfX1oLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclZpZXdw''@;'; + put 'put ''b3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlIixCZSl9LHZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlOmZ1bmN0aW9uKEJlKXt2YXIgTmU9aC5zZXR0aW5ncy52aWV3cG9ydENvbHVtblJlbmRlcmluZ09mZnNldDtpZigiYXV0byI9PT1OZSYmaC5zZXR0aW5ncy5maXhlZENvbHVtbnNT''@;'; + put 'put ''dGFydCYmKE5lPTEwKSxOZT4wfHwiYXV0byI9PT1OZSl7dmFyIEtlPWguY291bnRSZW5kZXJhYmxlQ29sdW1ucygpLGR0PUJlLnN0YXJ0Q29sdW1uLE90PUJlLmVuZENvbHVtbjtpZigibnVtYmVyIj09dHlwZW9mIE5lJiYoQmUuc3RhcnRDb2x1bW49TWF0aC5tYXgoZHQtTmUsMCksQmUuZW5k''@;'; + put 'put ''Q29sdW1uPU1hdGgubWluKE90K05lLEtlLTEpKSwiYXV0byI9PT1OZSl7dmFyICR0PU1hdGguY2VpbChPdC9LZSo2KTtCZS5zdGFydENvbHVtbj1NYXRoLm1heChkdC0kdCwwKSxCZS5lbmRDb2x1bW49TWF0aC5taW4oT3QrJHQsS2UtMSl9fWguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyVmll''@;'; + put 'put ''d3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUiLEJlKX0scm93SGVhZGVyV2lkdGg6ZnVuY3Rpb24oKXtyZXR1cm4gaC5zZXR0aW5ncy5yb3dIZWFkZXJXaWR0aH0sY29sdW1uSGVhZGVySGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIEJlPWguaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeUNvbHVt''@;'; + put 'put ''bkhlYWRlckhlaWdodCIpO3JldHVybiBoLnNldHRpbmdzLmNvbHVtbkhlYWRlckhlaWdodHx8QmV9fTt0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVJbml0V2Fsa29udGFibGUiLHkpLHRoaXMuX3d0PW5ldyB5UWUoeSksdGhpcy5hY3RpdmVXdD10aGlzLl93dDt2YXIgQz10aGlzLl93''@;'; + put 'put ''dC53dFRhYmxlLnNwcmVhZGVyLEk9dGhpcy5pbnN0YW5jZS5yb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLnNldExhc3RTaXplKEkud2lkdGgsSS5oZWlnaHQpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2Vkb3duIixmdW5jdGlvbihf''@;'; + put 'put ''ZSl7X2UudGFyZ2V0PT09QyYmMz09PV9lLndoaWNoJiZfZS5zdG9wUHJvcGFnYXRpb24oKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywiY29udGV4dG1lbnUiLGZ1bmN0aW9uKF9lKXtfZS50YXJnZXQ9PT1DJiYzPT09X2Uud2hpY2gmJl9lLnN0b3BQcm9wYWdhdGlv''@;'; + put 'put ''bigpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmluc3RhbmNlLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsImNsaWNrIixmdW5jdGlvbigpe2guc2V0dGluZ3Mub2JzZXJ2ZURPTVZpc2liaWxpdHkmJmguX3d0LmRyYXdJbnRlcnJ1cHRlZCYmKGguaW5z''@;'; + put 'put ''dGFuY2UuZm9yY2VGdWxsUmVuZGVyPSEwLGgucmVuZGVyKCkpfSl9fSx7a2V5OiJpc1RleHRTZWxlY3Rpb25BbGxvd2VkIix2YWx1ZTpmdW5jdGlvbihoKXtpZihWWihoKSlyZXR1cm4hMDt2YXIgdj13dyhoLHRoaXMuaW5zdGFuY2Uudmlldy5fd3Qud3RUYWJsZS5zcHJlYWRlcik7cmV0dXJu''@;'; + put 'put ''ISEoITA9PT10aGlzLnNldHRpbmdzLmZyYWdtZW50U2VsZWN0aW9uJiZ2fHwiY2VsbCI9PT10aGlzLnNldHRpbmdzLmZyYWdtZW50U2VsZWN0aW9uJiZ0aGlzLmlzU2VsZWN0ZWRPbmx5Q2VsbCgpJiZ2fHwhdGhpcy5zZXR0aW5ncy5mcmFnbWVudFNlbGVjdGlvbiYmdGhpcy5pc0NlbGxFZGl0''@;'; + put 'put ''ZWQoKSYmdGhpcy5pc1NlbGVjdGVkT25seUNlbGwoKSl9fSx7a2V5OiJpc01vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4geFMuZ2V0KHRoaXMpLm1vdXNlRG93bn19LHtrZXk6ImlzU2VsZWN0ZWRPbmx5Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaCx2O3JldHVybiBudWxs''@;'; + put 'put ''IT09KGg9bnVsbD09PSh2PXRoaXMuaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSl8fHZvaWQgMD09PXY/dm9pZCAwOnYuaXNTaW5nbGUoKSkmJnZvaWQgMCE9PWgmJmh9fSx7a2V5OiJpc0NlbGxFZGl0ZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5pbnN0YW5jZS5nZXRB''@;'; + put 'put ''Y3RpdmVFZGl0b3IoKTtyZXR1cm4gaCYmaC5pc09wZW5lZCgpfX0se2tleToiYmVmb3JlUmVuZGVyIix2YWx1ZTpmdW5jdGlvbihoLHYpe2gmJnRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVZpZXdSZW5kZXIiLHRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyLHYpfX0se2tleToi''@;'; + put 'put ''YWZ0ZXJSZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe2gmJnRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyVmlld1JlbmRlciIsdGhpcy5pbnN0YW5jZS5mb3JjZUZ1bGxSZW5kZXIpfX0se2tleToiYXBwZW5kUm93SGVhZGVyIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHYuZmlyc3RDaGls''@;'; + put 'put ''ZCl7dmFyIHk9di5maXJzdENoaWxkO2lmKCF0bCh5LCJyZWxhdGl2ZSIpKXJldHVybiBEcCh2KSx2b2lkIHRoaXMuYXBwZW5kUm93SGVhZGVyKGgsdik7dGhpcy51cGRhdGVDZWxsSGVhZGVyKHkucXVlcnlTZWxlY3RvcigiLnJvd0hlYWRlciIpLGgsdGhpcy5pbnN0YW5jZS5nZXRSb3dIZWFk''@;'; + put 'put ''ZXIpfWVsc2V7dmFyIEM9dGhpcy5pbnN0YW5jZSxJPUMucm9vdERvY3VtZW50LGo9Qy5nZXRSb3dIZWFkZXIsdWU9SS5jcmVhdGVFbGVtZW50KCJkaXYiKSxfZT1JLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTt1ZS5jbGFzc05hbWU9InJlbGF0aXZlIixfZS5jbGFzc05hbWU9InJvd0hlYWRlciIs''@;'; + put 'put ''dGhpcy51cGRhdGVDZWxsSGVhZGVyKF9lLGgsaiksdWUuYXBwZW5kQ2hpbGQoX2UpLHYuYXBwZW5kQ2hpbGQodWUpfXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyR2V0Um93SGVhZGVyIixoLHYpfX0se2tleToiYXBwZW5kQ29sSGVhZGVyIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHYu''@;'; + put 'put ''Zmlyc3RDaGlsZCl7dmFyIHk9di5maXJzdENoaWxkO3RsKHksInJlbGF0aXZlIik/dGhpcy51cGRhdGVDZWxsSGVhZGVyKHkucXVlcnlTZWxlY3RvcigiLmNvbEhlYWRlciIpLGgsdGhpcy5pbnN0YW5jZS5nZXRDb2xIZWFkZXIpOihEcCh2KSx0aGlzLmFwcGVuZENvbEhlYWRlcihoLHYpKX1l''@;'; + put 'put ''bHNle3ZhciBDPXRoaXMuaW5zdGFuY2Uucm9vdERvY3VtZW50LEk9Qy5jcmVhdGVFbGVtZW50KCJkaXYiKSxqPUMuY3JlYXRlRWxlbWVudCgic3BhbiIpO0kuY2xhc3NOYW1lPSJyZWxhdGl2ZSIsai5jbGFzc05hbWU9ImNvbEhlYWRlciIsdGhpcy51cGRhdGVDZWxsSGVhZGVyKGosaCx0aGlz''@;'; + put 'put ''Lmluc3RhbmNlLmdldENvbEhlYWRlciksSS5hcHBlbmRDaGlsZChqKSx2LmFwcGVuZENoaWxkKEkpfXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyR2V0Q29sSGVhZGVyIixoLHYpfX0se2tleToidXBkYXRlQ2VsbEhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXYsST10''@;'; + put 'put ''aGlzLl93dC53dE92ZXJsYXlzLmdldFBhcmVudE92ZXJsYXkoaCl8fHRoaXMuX3d0O2gucGFyZW50Tm9kZSYmKHRsKGgsImNvbEhlYWRlciIpP0M9SS53dFRhYmxlLmNvbHVtbkZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKHYpOnRsKGgsInJvd0hlYWRlciIpJiYoQz1JLnd0VGFibGUucm93Rmls''@;'; + put 'put ''dGVyLnNvdXJjZVRvUmVuZGVyZWQodikpKSxDPi0xP193KGgseSh2KSk6KEN3KGgsU3RyaW5nLmZyb21DaGFyQ29kZSgxNjApKSxPMChoLCJjb3JuZXJIZWFkZXIiKSl9fSx7a2V5OiJtYXhpbXVtVmlzaWJsZUVsZW1lbnRXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHk9dGhpcy5fd3Qu''@;'; + put 'put ''d3RWaWV3cG9ydC5nZXRXb3Jrc3BhY2VXaWR0aCgpLWg7cmV0dXJuIHk+MD95OjB9fSx7a2V5OiJtYXhpbXVtVmlzaWJsZUVsZW1lbnRIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB5PXRoaXMuX3d0Lnd0Vmlld3BvcnQuZ2V0V29ya3NwYWNlSGVpZ2h0KCktaDtyZXR1cm4geT4wP3k6''@;'; + put 'put ''MH19LHtrZXk6InNldExhc3RTaXplIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXhTLmdldCh0aGlzKSxDPVtoLHZdO3kubGFzdFdpZHRoPUNbMF0seS5sYXN0SGVpZ2h0PUNbMV19fSx7a2V5OiJnZXRMYXN0U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD14Uy5nZXQodGhpcyk7cmV0''@;'; + put 'put ''dXJue3dpZHRoOmgubGFzdFdpZHRoLGhlaWdodDpoLmxhc3RIZWlnaHR9fX0se2tleToiZ2V0Rmlyc3RGdWxseVZpc2libGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh0aGlzLmlu''@;'; + put 'put ''c3RhbmNlLnZpZXcuX3d0Lnd0U2Nyb2xsLmdldEZpcnN0VmlzaWJsZVJvdygpKX19LHtrZXk6ImdldExhc3RGdWxseVZpc2libGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh0aGlz''@;'; + put 'put ''Lmluc3RhbmNlLnZpZXcuX3d0Lnd0U2Nyb2xsLmdldExhc3RWaXNpYmxlUm93KCkpfX0se2tleToiZ2V0Rmlyc3RGdWxseVZpc2libGVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJ''@;'; + put 'put ''bmRleCh0aGlzLmluc3RhbmNlLnZpZXcuX3d0Lnd0U2Nyb2xsLmdldEZpcnN0VmlzaWJsZUNvbHVtbigpKX19LHtrZXk6ImdldExhc3RGdWxseVZpc2libGVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJv''@;'; + put 'put ''bVJlbmRlcmFibGVJbmRleCh0aGlzLmluc3RhbmNlLnZpZXcuX3d0Lnd0U2Nyb2xsLmdldExhc3RWaXNpYmxlQ29sdW1uKCkpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl93dC5kZXN0cm95KCksdGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveSgpfX1dKSxkfSgpO2Nv''@;'; + put 'put ''bnN0IE9RZT1MUWU7dmFyIFhaPUxwKCJjZWxsVHlwZXMiKSxSUWU9WFoucmVnaXN0ZXIsQlFlPVhaLmdldEl0ZW0sUUNlPVhaLmhhc0l0ZW0sUFFlPVhaLmdldE5hbWVzO2Z1bmN0aW9uIFplZShkKXtpZighUUNlKGQpKXRocm93IEVycm9yKCdZb3UgZGVjbGFyZWQgY2VsbCB0eXBlICInLmNv''@;'; + put 'put ''bmNhdChkLCciIGFzIGEgc3RyaW5nIHRoYXQgaXMgbm90IG1hcHBlZCB0byBhIGtub3duIG9iamVjdC5cbiAgICAgICAgICAgICAgICAgQ2VsbCB0eXBlIG11c3QgYmUgYW4gb2JqZWN0IG9yIGEgc3RyaW5nIG1hcHBlZCB0byBhbiBvYmplY3QgcmVnaXN0ZXJlZCBieVxuICAgICAgICAgICAg''@;'; + put 'put ''ICAgICAiSGFuZHNvbnRhYmxlLmNlbGxUeXBlcy5yZWdpc3RlckNlbGxUeXBlIiBtZXRob2QnKSk7cmV0dXJuIEJRZShkKX1mdW5jdGlvbiBrOChkLGcpeyJzdHJpbmciIT10eXBlb2YgZCYmKGQ9KGc9ZCkuQ0VMTF9UWVBFKTt2YXIgdj1nLmVkaXRvcix5PWcucmVuZGVyZXIsQz1nLnZhbGlk''@;'; + put 'put ''YXRvcjt2JiZsZChkLHYpLHkmJk1nKGQseSksQyYmYU8oZCxDKSxSUWUoZCxnKX1mdW5jdGlvbiBHZGUoZCl7cmV0dXJuKEdkZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1''@;'; + put 'put ''bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfXZhciBKQ2U9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIixXZGU9SkNlLmxlbmd0''@;'; + put 'put ''aDtmdW5jdGlvbiB6ZWUoZCl7Zm9yKHZhciB2LGc9ZCsxLGg9IiI7Zz4wOyl2PShnLTEpJVdkZSxoPVN0cmluZy5mcm9tQ2hhckNvZGUoNjUrdikraCxnPXBhcnNlSW50KChnLXYpL1dkZSwxMCk7cmV0dXJuIGh9ZnVuY3Rpb24gRlFlKGQpe3ZhciBnPTA7aWYoZClmb3IodmFyIGg9MCx2PWQu''@;'; + put 'put ''bGVuZ3RoLTE7aDxkLmxlbmd0aDtoKz0xLHYtPTEpZys9TWF0aC5wb3coV2RlLHYpKihKQ2UuaW5kZXhPZihkW2hdKSsxKTtyZXR1cm4gZy0xfWZ1bmN0aW9uIEhRZSgpe3ZhciB2LHksZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MTAw''@;'; + put 'put ''LGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjQsaD1bXTtmb3Iodj0wO3Y8ZDt2Kyspe3ZhciBDPVtdO2Zvcih5PTA7eTxnO3krKylDLnB1c2goemVlKHkpKyh2KzEpKTtoLnB1c2goQyl9cmV0dXJuIGh9ZnVuY3Rpb24gTlFlKCl7dmFy''@;'; + put 'put ''IHYseSxkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToxMDAsZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NCxoPVtdO2Zvcih2PTA7djxkO3YrKyl7dmFyIEM9e307Zm9yKHk9MDt5''@;'; + put 'put ''PGc7eSsrKUNbInByb3AiLmNvbmNhdCh5KV09emVlKHkpKyh2KzEpO2gucHVzaChDKX1yZXR1cm4gaH1mdW5jdGlvbiBWUWUoZCxnKXtmb3IodmFyIHYsaD1bXSx5PTA7eTxkO3krKyl7dj1bXTtmb3IodmFyIEM9MDtDPGc7QysrKXYucHVzaCgiIik7aC5wdXNoKHYpfXJldHVybiBofWZ1bmN0''@;'; + put 'put ''aW9uIEtaKGQsZyl7dmFyIGg9dm9pZCAwPT09Z3x8ZztyZXR1cm4gZnVuY3Rpb24oeSxDKXtyZXR1cm4gZnVuY3Rpb24gSShqKXtpZihqKXtpZihvMShqLGQpJiZ2b2lkIDAhPT1qW2RdKXJldHVybiBqW2RdO2lmKG8xKGosInR5cGUiKSYmai50eXBlKXtpZigic3RyaW5nIiE9dHlwZW9mIGou''@;'; + put 'put ''dHlwZSl0aHJvdyBuZXcgRXJyb3IoJ0NlbGwgInR5cGUiIG11c3QgYmUgYSBzdHJpbmcnKTt2YXIgdWU9WmVlKGoudHlwZSk7aWYobzEodWUsZCkpcmV0dXJuIHVlW2RdO2lmKGgpcmV0dXJufXJldHVybiBJKE9iamVjdC5nZXRQcm90b3R5cGVPZihqKSl9fSgibnVtYmVyIj09dHlwZW9mIHk/''@;'; + put 'put ''dGhpcy5nZXRDZWxsTWV0YSh5LEMpOnkpfX1mdW5jdGlvbiBZZGUoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsaD1kLHY9W107cmV0dXJuKCFBcnJheS5pc0FycmF5KGQpfHwhQXJyYXkuaXNBcnJheShkWzBdKSkmJiho''@;'; + put 'put ''PVtkXSksaC5mb3JFYWNoKGZ1bmN0aW9uKHksQyl7QXJyYXkuaXNBcnJheSh5KT95LmZvckVhY2goZnVuY3Rpb24oSSxqKXt2LnB1c2goW0MrZyxqLEldKX0pOk9iamVjdC5rZXlzKHkpLmZvckVhY2goZnVuY3Rpb24oSSl7di5wdXNoKFtDK2csSSx5W0ldXSl9KX0pLHZ9ZnVuY3Rpb24gVWRl''@;'; + put 'put ''KGQpe3ZhciBnPTA7cmV0dXJuIEFycmF5LmlzQXJyYXkoZCkmJihkWzBdJiZBcnJheS5pc0FycmF5KGRbMF0pP2c9ZFswXS5sZW5ndGg6ZFswXSYmeGwoZFswXSkmJihnPUpxKGRbMF0pKSksZ31mdW5jdGlvbiBYQ2UoZCl7cmV0dXJuISEoQXJyYXkuaXNBcnJheShkKSYmZC5sZW5ndGgmJmQu''@;'; + put 'put ''ZXZlcnkoZnVuY3Rpb24oZyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZyl9KSl9ZnVuY3Rpb24gS0NlKGQpe3JldHVybiEhKEFycmF5LmlzQXJyYXkoZCkmJmQubGVuZ3RoJiZkLmV2ZXJ5KGZ1bmN0aW9uKGcpe3JldHVybiJvYmplY3QiPT09R2RlKGcpJiYhQXJyYXkuaXNBcnJheShnKSYmbnVs''@;'; + put 'put ''bCE9PWd9KSl9ZnVuY3Rpb24galFlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gJENlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5l''@;'; + put 'put ''bnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIHpRZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4x''@;'; + put 'put ''JiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdO2pRZSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5kYXRhPWgsdGhpcy5kYXRhVHlwZT0iYXJyYXkiLHRoaXMuY29sVG9Qcm9wPWZ1bmN0aW9uKCl7fSx0aGlzLnByb3BUb0NvbD1mdW5jdGlvbigpe319cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uIFpRZShkLGcsaCl7ZyYmJENlKGQucHJvdG90eXBlLGcpLGgmJiRDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJtb2RpZnlSb3dEYXRhIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdjtyZXR1cm4gdGhpcy5ob3Qu''@;'; + put 'put ''aGFzSG9vaygibW9kaWZ5Um93RGF0YSIpJiYodj10aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5Um93RGF0YSIsaCkpLHZvaWQgMD09PXZ8fE51bWJlci5pc0ludGVnZXIodik/dGhpcy5kYXRhW2hdOnZ9fSx7a2V5OiJnZXREYXRhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5s''@;'; + put 'put ''ZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIHRoaXMuZGF0YSYmMCE9PXRoaXMuZGF0YS5sZW5ndGg/dGhpcy5nZXRCeVJhbmdlKG51bGwsbnVsbCxoKTp0aGlzLmRhdGF9fSx7a2V5OiJzZXREYXRhIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmRh''@;'; + put 'put ''dGE9aH19LHtrZXk6ImdldEF0Q29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9W107cmV0dXJuIFVyKHRoaXMuZGF0YSxmdW5jdGlvbihDLEkpe3ZhciBqPXYuZ2V0QXRDZWxsKEksaCk7eS5wdXNoKGopfSkseX19LHtrZXk6ImdldEF0Um93Iix2YWx1ZTpmdW5jdGlvbiho''@;'; + put 'put ''LHYseSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM10saj12b2lkIDA9PT12JiZ2b2lkIDA9PT15LHVlPW51bGwsX2U9bnVsbDtpZih1ZT10aGlzLm1vZGlmeVJvd0RhdGEoaCksQXJyYXkuaXNBcnJheSh1ZSkpX2U9''@;'; + put 'put ''W10saj91ZS5mb3JFYWNoKGZ1bmN0aW9uKEtlLGR0KXtfZVtkdF09Qy5nZXRBdFBoeXNpY2FsQ2VsbChoLGR0LHVlKX0pOmlhKHYseSxmdW5jdGlvbihLZSl7X2VbS2Utdl09Qy5nZXRBdFBoeXNpY2FsQ2VsbChoLEtlLHVlKX0pO2Vsc2UgaWYoeGwodWUpfHxZMih1ZSkpaWYoX2U9ST9bXTp7''@;'; + put 'put ''fSwhanx8SSl7dmFyIEJlPTAsTmU9dGhpcy5jb3VudEZpcnN0Um93S2V5cygpLTE7aWEoQmUsTmUsZnVuY3Rpb24oS2Upe3ZhciBkdD1DLmNvbFRvUHJvcChLZSk7aWYoS2U+PSh2fHxCZSkmJktlPD0oeXx8TmUpJiYhTnVtYmVyLmlzSW50ZWdlcihkdCkpe3ZhciBPdD1DLmdldEF0UGh5c2lj''@;'; + put 'put ''YWxDZWxsKGgsZHQsdWUpO0k/X2UucHVzaChPdCk6UXEoX2UsZHQsT3QpfX0pfWVsc2UgR2wodWUsZnVuY3Rpb24oS2UsZHQpe1FxKF9lLGR0LEMuZ2V0QXRQaHlzaWNhbENlbGwoaCxkdCx1ZSkpfSk7cmV0dXJuIF9lfX0se2tleToic2V0QXRDZWxsIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7''@;'; + put 'put ''aWYoIShoPj10aGlzLmNvdW50Um93cygpfHx2Pj10aGlzLmNvdW50Rmlyc3RSb3dLZXlzKCkpKXtpZih0aGlzLmhvdC5oYXNIb29rKCJtb2RpZnlTb3VyY2VEYXRhIikpe3ZhciBDPXdTKHkpO3RoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlTb3VyY2VEYXRhIixoLHRoaXMucHJvcFRvQ29sKHYp''@;'; + put 'put ''LEMsInNldCIpLEMuaXNUb3VjaGVkKCkmJih5PUMudmFsdWUpfU51bWJlci5pc0ludGVnZXIodik/dGhpcy5kYXRhW2hdW3ZdPXk6UXEodGhpcy5kYXRhW2hdLHYseSl9fX0se2tleToiZ2V0QXRQaHlzaWNhbENlbGwiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz1udWxsO2lmKHkmJihD''@;'; + put 'put ''PSJzdHJpbmciPT10eXBlb2Ygdj9kYmUoeSx2KToiZnVuY3Rpb24iPT10eXBlb2Ygdj92KHkpOnlbdl0pLHRoaXMuaG90Lmhhc0hvb2soIm1vZGlmeVNvdXJjZURhdGEiKSl7dmFyIEk9d1MoQyk7dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeVNvdXJjZURhdGEiLGgsdGhpcy5jb2xUb1Byb3Ao''@;'; + put 'put ''diksSSwiZ2V0IiksSS5pc1RvdWNoZWQoKSYmKEM9SS52YWx1ZSl9cmV0dXJuIEN9fSx7a2V5OiJnZXRBdENlbGwiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5tb2RpZnlSb3dEYXRhKGgpO3JldHVybiB0aGlzLmdldEF0UGh5c2ljYWxDZWxsKGgsdGhpcy5jb2xUb1Byb3Aodiks''@;'; + put 'put ''eSl9fSx7a2V5OiJnZXRCeVJhbmdlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbCx5PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50''@;'; + put 'put ''c1sxXTpudWxsLEM9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxJPSExLGo9bnVsbCx1ZT1udWxsLF9lPW51bGwsQmU9bnVsbDtudWxsPT09dnx8bnVsbD09PXk/KEk9ITAsaj0wLF9lPXRoaXMuY291bnRSb3dzKCktMSk6KGo9TWF0aC5t''@;'; + put 'put ''aW4odi5yb3cseS5yb3cpLHVlPU1hdGgubWluKHYuY29sLHkuY29sKSxfZT1NYXRoLm1heCh2LnJvdyx5LnJvdyksQmU9TWF0aC5tYXgodi5jb2wseS5jb2wpKTt2YXIgTmU9W107cmV0dXJuIGlhKGosX2UsZnVuY3Rpb24oS2Upe05lLnB1c2goST9oLmdldEF0Um93KEtlLHZvaWQgMCx2b2lk''@;'; + put 'put ''IDAsQyk6aC5nZXRBdFJvdyhLZSx1ZSxCZSxDKSl9KSxOZX19LHtrZXk6ImNvdW50Um93cyIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmhvdC5oYXNIb29rKCJtb2RpZnlTb3VyY2VMZW5ndGgiKSl7dmFyIGg9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeVNvdXJjZUxlbmd0aCIpO2lmKE51''@;'; + put 'put ''bWJlci5pc0ludGVnZXIoaCkpcmV0dXJuIGh9cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGh9fSx7a2V5OiJjb3VudEZpcnN0Um93S2V5cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gVWRlKHRoaXMuZGF0YSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGF0YT1udWxs''@;'; + put 'put ''LHRoaXMuaG90PW51bGx9fV0pLGR9KCk7Y29uc3QgR1FlPXpRZTtMKDIwMjczKSxMKDU0NzQwKTt2YXIgcUNlPXtfbG9jYWxIb29rczpPYmplY3QuY3JlYXRlKG51bGwpLGFkZExvY2FsSG9vazpmdW5jdGlvbihnLGgpe3JldHVybiB0aGlzLl9sb2NhbEhvb2tzW2ddfHwodGhpcy5fbG9jYWxI''@;'; + put 'put ''b29rc1tnXT1bXSksdGhpcy5fbG9jYWxIb29rc1tnXS5wdXNoKGgpLHRoaXN9LHJ1bkxvY2FsSG9va3M6ZnVuY3Rpb24oZyxoLHYseSxDLEksail7aWYodGhpcy5fbG9jYWxIb29rc1tnXSlmb3IodmFyIHVlPXRoaXMuX2xvY2FsSG9va3NbZ10ubGVuZ3RoLF9lPTA7X2U8dWU7X2UrKylpZWUo''@;'; + put 'put ''dGhpcy5fbG9jYWxIb29rc1tnXVtfZV0sdGhpcyxoLHYseSxDLEksail9LGNsZWFyTG9jYWxIb29rczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sb2NhbEhvb2tzPXt9LHRoaXN9fTtTZyhxQ2UsIk1JWElOX05BTUUiLCJsb2NhbEhvb2tzIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0p''@;'; + put 'put ''O2NvbnN0IHNkPXFDZTtmdW5jdGlvbiBZUWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBla2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1to''@;'; + put 'put ''XTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgVFM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0''@;'; + put 'put ''aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7WVFlKHRoaXMsZCksdGhpcy5pbmRleGVkVmFsdWVzPVtdLHRoaXMuaW5pdFZhbHVlT3JGbj1nfXJldHVybiBmdW5jdGlvbiBVUWUoZCxnLGgpe2cmJmVrZShkLnByb3RvdHlwZSxnKSxoJiZla2UoZCxoKSxPYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiZ2V0VmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluZGV4ZWRWYWx1ZXN9fSx7a2V5OiJnZXRWYWx1ZUF0SW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMu''@;'; + put 'put ''aW5kZXhlZFZhbHVlcztpZihoPHYubGVuZ3RoKXJldHVybiB2W2hdfX0se2tleToic2V0VmFsdWVzIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmluZGV4ZWRWYWx1ZXM9aC5zbGljZSgpLHRoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIil9fSx7a2V5OiJzZXRWYWx1ZUF0SW5kZXgiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKGgsdil7cmV0dXJuIGg8dGhpcy5pbmRleGVkVmFsdWVzLmxlbmd0aCYmKHRoaXMuaW5kZXhlZFZhbHVlc1toXT12LHRoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIiksITApfX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZXREZWZhdWx0VmFsdWVzKCl9''@;'; + put 'put ''fSx7a2V5OiJnZXRMZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWVzKCkubGVuZ3RofX0se2tleToic2V0RGVmYXVsdFZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/''@;'; + put 'put ''YXJndW1lbnRzWzBdOnRoaXMuaW5kZXhlZFZhbHVlcy5sZW5ndGg7dGhpcy5pbmRleGVkVmFsdWVzLmxlbmd0aD0wLFkyKHRoaXMuaW5pdFZhbHVlT3JGbik/aWEodi0xLGZ1bmN0aW9uKHkpe3JldHVybiBoLmluZGV4ZWRWYWx1ZXMucHVzaChoLmluaXRWYWx1ZU9yRm4oeSkpfSk6aWEodi0x''@;'; + put 'put ''LGZ1bmN0aW9uKCl7cmV0dXJuIGguaW5kZXhlZFZhbHVlcy5wdXNoKGguaW5pdFZhbHVlT3JGbil9KSx0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIpfX0se2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuc2V0RGVmYXVsdFZhbHVlcyhoKSx0aGlzLnJ1bkxvY2Fs''@;'; + put 'put ''SG9va3MoImluaXQiKSx0aGlzfX0se2tleToiaW5zZXJ0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIil9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7dGhpcy5jbGVhckxvY2FsSG9va3MoKSx0aGlzLmluZGV4ZWRWYWx1ZXM9bnVsbCx0aGlzLmluaXRWYWx1ZU9yRm49bnVsbH19XSksZH0oKTtmdW5jdGlvbiBRZGUoZCl7cmV0dXJuIGZ1bmN0aW9uIEtRZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBKZGUoZCl9''@;'; + put 'put ''KGQpfHxmdW5jdGlvbiBYUWUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gSlFlKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5''@;'; + put 'put ''cGVvZiBkKXJldHVybiBKZGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5m''@;'; + put 'put ''cm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEpkZShkLGcpfX0oZCl8fGZ1bmN0aW9uIFFRZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9u''@;'; + put 'put ''LWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEpkZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zv''@;'; + put 'put ''cih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFhkZShkLGcsaCx2KXt2YXIgeT1oLmxlbmd0aD9oWzBdOnZvaWQgMDtyZXR1cm5bXS5jb25jYXQoUWRlKGQuc2xpY2UoMCx5KSksUWRlKGgubWFwKGZ1bmN0aW9uKEMsSSl7cmV0dXJu''@;'; + put 'put ''IFkyKHYpP3YoQyxJKTp2fSkpLFFkZSh2b2lkIDA9PT15P1tdOmQuc2xpY2UoeSkpKX1mdW5jdGlvbiBLZGUoZCxnKXtyZXR1cm4gZzQoZCxmdW5jdGlvbihoLHYpe3JldHVybiExPT09Zy5pbmNsdWRlcyh2KX0pfWZ1bmN0aW9uICRkZShkKXtyZXR1cm4oJGRlPSJmdW5jdGlvbiI9PXR5cGVv''@;'; + put 'put ''ZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBl''@;'; + put 'put ''PyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gJFFlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gdGtlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKysp''@;'; + put 'put ''e3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gJFooKXtyZXR1cm4gJFo9InVuZGVmaW5lZCIhPXR5cGVv''@;'; + put 'put ''ZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PWVKZShnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/''@;'; + put 'put ''Zzp2KTpDLnZhbHVlfX0sJFouYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGVKZShkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9SVMoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gcWRlKGQsZyl7cmV0dXJuKHFkZT1P''@;'; + put 'put ''YmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIHJKZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PSRkZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVy''@;'; + put 'put ''biBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gaUplKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlz''@;'; + put 'put ''IGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gSVMoZCl7cmV0dXJuKElTPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBo''@;'; + put 'put ''Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9UjIoVFMsc2QpO3ZhciBUdz1mdW5jdGlvbihkKXshZnVuY3Rpb24gdEplKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVz''@;'; + put 'put ''dCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3''@;'; + put 'put ''cml0YWJsZTohMX0pLGcmJnFkZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIG5KZShkKXt2YXIgZz1mdW5jdGlvbiBvSmUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHks''@;'; + put 'put ''dj1JUyhkKTtpZihnKXt2YXIgQz1JUyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gckplKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuICRRZSh0aGlzLGgpLGcu''@;'; + put 'put ''YXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiBxUWUoZCxnLGgpe2cmJnRrZShkLnByb3RvdHlwZSxnKSxoJiZ0a2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaW5zZXJ0Iix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bih5LEMpe3RoaXMuaW5kZXhlZFZhbHVlcz1YZGUodGhpcy5pbmRleGVkVmFsdWVzLDAsQyx0aGlzLmluaXRWYWx1ZU9yRm4pLCRaKElTKGgucHJvdG90eXBlKSwiaW5zZXJ0Iix0aGlzKS5jYWxsKHRoaXMseSxDKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5pbmRl''@;'; + put 'put ''eGVkVmFsdWVzPUtkZSh0aGlzLmluZGV4ZWRWYWx1ZXMseSksJFooSVMoaC5wcm90b3R5cGUpLCJyZW1vdmUiLHRoaXMpLmNhbGwodGhpcyx5KX19XSksaH0oVFMpO2Z1bmN0aW9uIGU0ZShkKXtyZXR1cm4oZTRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2Yg''@;'; + put 'put ''U3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVu''@;'; + put 'put ''Y3Rpb24gYUplKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbmtlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYu''@;'; + put 'put ''ZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gdDRlKGQsZyl7cmV0dXJuKHQ0ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlw''@;'; + put 'put ''ZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGNKZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PWU0ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigi''@;'; + put 'put ''RGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gZkplKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNu''@;'; + put 'put ''J3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gR2VlKGQpe3JldHVybihHZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9''@;'; + put 'put ''KShkKX12YXIgV2VlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBzSmUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1P''@;'; + put 'put ''YmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmdDRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24g''@;'; + put 'put ''dUplKGQpe3ZhciBnPWZ1bmN0aW9uIGhKZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xl''@;'; + put 'put ''YW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUdlZShkKTtpZihnKXt2YXIgQz1HZWUodGhpcykuY29uc3RydWN0b3I7eT1S''@;'; + put 'put ''ZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGNKZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0''@;'; + put 'put ''dXJuIGFKZSh0aGlzLGgpLGcuY2FsbCh0aGlzLHYpfXJldHVybiBmdW5jdGlvbiBsSmUoZCxnLGgpe2cmJm5rZShkLnByb3RvdHlwZSxnKSxoJiZua2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0SGlkZGVuSW5k''@;'; + put 'put ''ZXhlcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gU3UodGhpcy5nZXRWYWx1ZXMoKSxmdW5jdGlvbih5LEMsSSl7cmV0dXJuIEMmJnkucHVzaChJKSx5fSxbXSl9fV0pLGh9KFR3KTtmdW5jdGlvbiBuNGUoZCl7cmV0dXJuIGZ1bmN0aW9uIG1KZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJl''@;'; + put 'put ''dHVybiByNGUoZCl9KGQpfHxmdW5jdGlvbiBnSmUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gcEplKGQsZyl7aWYoZCl7aWYo''@;'; + put 'put ''InN0cmluZyI9PXR5cGVvZiBkKXJldHVybiByNGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJl''@;'; + put 'put ''dHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHI0ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIGRKZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0''@;'; + put 'put ''byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHI0ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9''@;'; + put 'put ''ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIGk0ZShkLGcsaCl7cmV0dXJuW10uY29uY2F0KG40ZShkLnNsaWNlKDAsZykpLG40ZShoKSxuNGUoZC5zbGljZShnKSkpfWZ1bmN0aW9uIHFaKGQsZyl7cmV0dXJu''@;'; + put 'put ''IGc0KGQsZnVuY3Rpb24oaCl7cmV0dXJuITE9PT1nLmluY2x1ZGVzKGgpfSl9ZnVuY3Rpb24gbzRlKGQsZyl7cmV0dXJuIE9sKGQsZnVuY3Rpb24oaCl7cmV0dXJuIGgtZy5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIHY8aH0pLmxlbmd0aH0pfWZ1bmN0aW9uIGE0ZShkLGcpe3ZhciBoPWdb''@;'; + put 'put ''MF0sdj1nLmxlbmd0aDtyZXR1cm4gT2woZCxmdW5jdGlvbih5KXtyZXR1cm4geT49aD95K3Y6eX0pfWZ1bmN0aW9uIGw0ZShkKXtyZXR1cm4obDRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0''@;'; + put 'put ''eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gczRlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgp''@;'; + put 'put ''JiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gX0plKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9''@;'; + put 'put ''ZnVuY3Rpb24gcmtlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2''@;'; + put 'put ''KX19ZnVuY3Rpb24gRTkoKXtyZXR1cm4gRTk9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PWtKZShnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxo''@;'; + put 'put ''KTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sRTkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGtKZShkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9Uzgo''@;'; + put 'put ''ZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gdTRlKGQsZyl7cmV0dXJuKHU0ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEVKZShkLGcpe2lmKGcmJigi''@;'; + put 'put ''b2JqZWN0Ij09PWw0ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gaWtlKGQpfWZ1bmN0aW9u''@;'; + put 'put ''IGlrZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gUzgoZCl7cmV0dXJuKFM4PU9iamVjdC5zZXRQcm90b3R5cGVPZj9P''@;'; + put 'put ''YmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9ZnVuY3Rpb24gVEplKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVy''@;'; + put 'put ''YWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgWWVlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBTSmUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVp''@;'; + put 'put ''dGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRh''@;'; + put 'put ''YmxlOiExfSksZyYmdTRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gTUplKGQpe3ZhciBnPWZ1bmN0aW9uIHhKZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlv''@;'; + put 'put ''biI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVM4''@;'; + put 'put ''KGQpO2lmKGcpe3ZhciBDPVM4KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBFSmUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXt2YXIgdjtfSmUodGhpcyxoKTtmb3IodmFy''@;'; + put 'put ''IHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gVEplKGlrZSh2PWcuY2FsbC5hcHBseShnLFt0aGlzXS5jb25jYXQoQykpKSwib3JkZXJPZkluZGV4ZXMiLFtdKSx2fXJldHVybiBmdW5jdGlvbiBDSmUoZCxnLGgp''@;'; + put 'put ''e2cmJnJrZShkLnByb3RvdHlwZSxnKSxoJiZya2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0VmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7cmV0dXJuIHRoaXMub3JkZXJPZkluZGV4ZXMubWFw''@;'; + put 'put ''KGZ1bmN0aW9uKEMpe3JldHVybiB5LmluZGV4ZWRWYWx1ZXNbQ119KX19LHtrZXk6InNldFZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5vcmRlck9mSW5kZXhlcz1mdW5jdGlvbiB2SmUoZCl7cmV0dXJuIGZ1bmN0aW9uIGJKZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBz''@;'; + put 'put ''NGUoZCl9KGQpfHxmdW5jdGlvbiB3SmUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24geUplKGQsZyl7aWYoZCl7aWYoInN0cmlu''@;'; + put 'put ''ZyI9PXR5cGVvZiBkKXJldHVybiBzNGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBB''@;'; + put 'put ''cnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHM0ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIEFKZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJl''@;'; + put 'put ''YWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShBcnJheSh5Lmxlbmd0aCkua2V5cygpKSxFOShTOChoLnByb3RvdHlwZSksInNldFZh''@;'; + put 'put ''bHVlcyIsdGhpcykuY2FsbCh0aGlzLHkpfX0se2tleToic2V0VmFsdWVBdEluZGV4Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp0aGlzLm9yZGVyT2ZJbmRleGVzLmxlbmd0aDtyZXR1cm4g''@;'; + put 'put ''eTx0aGlzLmluZGV4ZWRWYWx1ZXMubGVuZ3RoJiYodGhpcy5pbmRleGVkVmFsdWVzW3ldPUMsITE9PT10aGlzLm9yZGVyT2ZJbmRleGVzLmluY2x1ZGVzKHkpJiZ0aGlzLm9yZGVyT2ZJbmRleGVzLnNwbGljZShJLDAseSksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiKSwhMCl9fSx7a2V5''@;'; + put 'put ''OiJjbGVhclZhbHVlIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLm9yZGVyT2ZJbmRleGVzPXFaKHRoaXMub3JkZXJPZkluZGV4ZXMsW3ldKSxZMih0aGlzLmluaXRWYWx1ZU9yRm4pP0U5KFM4KGgucHJvdG90eXBlKSwic2V0VmFsdWVBdEluZGV4Iix0aGlzKS5jYWxsKHRoaXMseSx0aGlzLmlu''@;'; + put 'put ''aXRWYWx1ZU9yRm4oeSkpOkU5KFM4KGgucHJvdG90eXBlKSwic2V0VmFsdWVBdEluZGV4Iix0aGlzKS5jYWxsKHRoaXMseSx0aGlzLmluaXRWYWx1ZU9yRm4pfX0se2tleToiZ2V0TGVuZ3RoIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9yZGVyT2ZJbmRleGVzLmxlbmd0aH19LHtr''@;'; + put 'put ''ZXk6InNldERlZmF1bHRWYWx1ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuaW5kZXhlZFZhbHVlcy5sZW5ndGg7dGhpcy5vcmRlck9mSW5kZXhlcy5sZW5ndGg9MCxFOShTOChoLnBy''@;'; + put 'put ''b3RvdHlwZSksInNldERlZmF1bHRWYWx1ZXMiLHRoaXMpLmNhbGwodGhpcyx5KX19LHtrZXk6Imluc2VydCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLmluZGV4ZWRWYWx1ZXM9WGRlKHRoaXMuaW5kZXhlZFZhbHVlcywwLEMsdGhpcy5pbml0VmFsdWVPckZuKSx0aGlzLm9yZGVyT2ZJbmRl''@;'; + put 'put ''eGVzPWE0ZSh0aGlzLm9yZGVyT2ZJbmRleGVzLEMpLEU5KFM4KGgucHJvdG90eXBlKSwiaW5zZXJ0Iix0aGlzKS5jYWxsKHRoaXMseSxDKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5pbmRleGVkVmFsdWVzPUtkZSh0aGlzLmluZGV4ZWRWYWx1ZXMseSksdGhpcy5v''@;'; + put 'put ''cmRlck9mSW5kZXhlcz1xWih0aGlzLm9yZGVyT2ZJbmRleGVzLHkpLHRoaXMub3JkZXJPZkluZGV4ZXM9bzRlKHRoaXMub3JkZXJPZkluZGV4ZXMseSksRTkoUzgoaC5wcm90b3R5cGUpLCJyZW1vdmUiLHRoaXMpLmNhbGwodGhpcyx5KX19LHtrZXk6ImdldEVudHJpZXMiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIHk9dGhpcztyZXR1cm4gdGhpcy5vcmRlck9mSW5kZXhlcy5tYXAoZnVuY3Rpb24oQyl7cmV0dXJuW0MseS5nZXRWYWx1ZUF0SW5kZXgoQyldfSl9fV0pLGh9KFRTKTtmdW5jdGlvbiBjNGUoZCl7cmV0dXJuKGM0ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9s''@;'; + put 'put ''Ij09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Yg''@;'; + put 'put ''Z30pKGQpfWZ1bmN0aW9uIElKZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIG9rZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51''@;'; + put 'put ''bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGY0ZShkLGcpe3JldHVybihmNGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5z''@;'; + put 'put ''ZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBSSmUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1jNGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBU''@;'; + put 'put ''eXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIEJKZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1''@;'; + put 'put ''cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIFVlZShkKXtyZXR1cm4oVWVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3Rv''@;'; + put 'put ''dHlwZU9mKGgpfSkoZCl9dmFyIGV6PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBMSmUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnBy''@;'; + put 'put ''b3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmZjRlKGQsZyl9KGgsZCk7dmFyIGc9''@;'; + put 'put ''ZnVuY3Rpb24gT0plKGQpe3ZhciBnPWZ1bmN0aW9uIFBKZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0''@;'; + put 'put ''dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVVlZShkKTtpZihnKXt2YXIgQz1VZWUodGhpcykuY29uc3Ry''@;'; + put 'put ''dWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFJKZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVu''@;'; + put 'put ''dHNbMF07cmV0dXJuIElKZSh0aGlzLGgpLGcuY2FsbCh0aGlzLHYpfXJldHVybiBmdW5jdGlvbiBESmUoZCxnLGgpe2cmJm9rZShkLnByb3RvdHlwZSxnKSxoJiZva2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0''@;'; + put 'put ''VHJpbW1lZEluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFN1KHRoaXMuZ2V0VmFsdWVzKCksZnVuY3Rpb24oeSxDLEkpe3JldHVybiBDJiZ5LnB1c2goSSkseX0sW10pfX1dKSxofShUdyksYWtlPW5ldyBNYXAoW1siaGlkaW5nIixXZWVdLFsiaW5kZXgiLFRTXSxbImxpbmtlZFBo''@;'; + put 'put ''eXNpY2FsSW5kZXhUb1ZhbHVlIixZZWVdLFsicGh5c2ljYWxJbmRleFRvVmFsdWUiLFR3XSxbInRyaW1taW5nIixlel1dKTtmdW5jdGlvbiBoNGUoZCl7cmV0dXJuKGg0ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlv''@;'; + put 'put ''bihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGxrZShkLGcpe2Zvcih2YXIg''@;'; + put 'put ''aD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIHR6KCl7cmV0dXJuIHR6''@;'; + put 'put ''PSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1WSmUoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwo''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHR6LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBWSmUoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPURTKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGQ0''@;'; + put 'put ''ZShkLGcpe3JldHVybihkNGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiB6SmUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1oNGUoZyl8fCJmdW5jdGlv''@;'; + put 'put ''biI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIEdKZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBS''@;'; + put 'put ''ZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIERTKGQpe3JldHVybihEUz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpm''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBza2U9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGpKZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHBy''@;'; + put 'put ''ZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJv''@;'; + put 'put ''dG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZkNGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBaSmUoZCl7dmFyIGc9ZnVuY3Rpb24gV0plKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJu''@;'; + put 'put ''ITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlv''@;'; + put 'put ''bigpe3ZhciB5LHY9RFMoZCk7aWYoZyl7dmFyIEM9RFModGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHpKZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBmdW5j''@;'; + put 'put ''dGlvbiBISmUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxnLmNhbGwodGhpcyxmdW5jdGlvbih2KXtyZXR1cm4gdn0pfXJldHVybiBmdW5jdGlvbiBOSmUoZCxnLGgpe2cm''@;'; + put 'put ''JmxrZShkLnByb3RvdHlwZSxnKSxoJiZsa2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaW5zZXJ0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWE0ZSh0aGlzLmluZGV4ZWRWYWx1ZXMsQyk7dGhpcy5pbmRleGVk''@;'; + put 'put ''VmFsdWVzPWk0ZShJLHksQyksdHooRFMoaC5wcm90b3R5cGUpLCJpbnNlcnQiLHRoaXMpLmNhbGwodGhpcyx5LEMpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1xWih0aGlzLmluZGV4ZWRWYWx1ZXMseSk7dGhpcy5pbmRleGVkVmFsdWVzPW80ZShDLHkpLHR6KERT''@;'; + put 'put ''KGgucHJvdG90eXBlKSwicmVtb3ZlIix0aGlzKS5jYWxsKHRoaXMseSl9fV0pLGh9KFRTKTtmdW5jdGlvbiB1a2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUi''@;'; + put 'put ''aW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgcDRlPTAsZzRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpeyhmdW5jdGlvbiBZSmUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2Fs''@;'; + put 'put ''bCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5jb2xsZWN0aW9uPW5ldyBNYXB9cmV0dXJuIGZ1bmN0aW9uIFVKZShkLGcsaCl7ZyYmdWtlKGQucHJvdG90eXBlLGcpLGgmJnVrZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJs''@;'; + put 'put ''ZTohMX0pfShkLFt7a2V5OiJyZWdpc3RlciIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzOyExPT09dGhpcy5jb2xsZWN0aW9uLmhhcyhoKSYmKHRoaXMuY29sbGVjdGlvbi5zZXQoaCx2KSx2LmFkZExvY2FsSG9vaygiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiB5LnJ1bkxvY2Fs''@;'; + put 'put ''SG9va3MoImNoYW5nZSIsdil9KSxwNGUrPTEpfX0se2tleToidW5yZWdpc3RlciIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5jb2xsZWN0aW9uLmdldChoKTtUbyh2KSYmKHYuZGVzdHJveSgpLHRoaXMuY29sbGVjdGlvbi5kZWxldGUoaCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFu''@;'; + put 'put ''Z2UiLHYpLHA0ZS09MSl9fSx7a2V5OiJ1bnJlZ2lzdGVyQWxsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXM7dGhpcy5jb2xsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24odix5KXtyZXR1cm4gaC51bnJlZ2lzdGVyKHkpfSksdGhpcy5jb2xsZWN0aW9uLmNsZWFyKCl9fSx7a2V5OiJnZXQi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBhMShoKT9BcnJheS5mcm9tKHRoaXMuY29sbGVjdGlvbi52YWx1ZXMoKSk6dGhpcy5jb2xsZWN0aW9uLmdldChoKX19LHtrZXk6ImdldExlbmd0aCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2xsZWN0aW9uLnNpemV9fSx7a2V5OiJy''@;'; + put 'put ''ZW1vdmVGcm9tRXZlcnkiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuY29sbGVjdGlvbi5mb3JFYWNoKGZ1bmN0aW9uKHYpe3YucmVtb3ZlKGgpfSl9fSx7a2V5OiJpbnNlcnRUb0V2ZXJ5Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMuY29sbGVjdGlvbi5mb3JFYWNoKGZ1bmN0aW9uKHkpe3ku''@;'; + put 'put ''aW5zZXJ0KGgsdil9KX19LHtrZXk6ImluaXRFdmVyeSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jb2xsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24odil7di5pbml0KGgpfSl9fV0pLGR9KCk7ZnVuY3Rpb24gbTRlKGQpe3JldHVybihtNGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5''@;'; + put 'put ''bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlw''@;'; + put 'put ''ZW9mIGd9KShkKX1mdW5jdGlvbiBja2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShkLHYua2V5LHYpfX1mdW5jdGlvbiB2NGUoZCxnKXtyZXR1cm4odjRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gcUplKGQsZyl7aWYoZyYmKCJv''@;'; + put 'put ''YmplY3QiPT09bTRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBlWGUoZCl7''@;'; + put 'put ''aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBRZWUoZCl7cmV0dXJuKFFlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2Jq''@;'; + put 'put ''ZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfVIyKGc0ZSxzZCk7dmFyIGZrZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gS0plKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51''@;'; + put 'put ''bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJh''@;'; + put 'put ''YmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnY0ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uICRKZShkKXt2YXIgZz1mdW5jdGlvbiB0WGUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNv''@;'; + put 'put ''bnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwh''@;'; + put 'put ''MH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1RZWUoZCk7aWYoZyl7dmFyIEM9UWVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBx''@;'; + put 'put ''SmUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gSkplKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKEM9Zy5jYWxsKHRoaXMp''@;'; + put 'put ''KS5tZXJnZWRWYWx1ZXNDYWNoZT1bXSxDLmFnZ3JlZ2F0aW9uRnVuY3Rpb249dixDLmZhbGxiYWNrVmFsdWU9eSxDfXJldHVybiBmdW5jdGlvbiBYSmUoZCxnLGgpe2cmJmNrZShkLnByb3RvdHlwZSxnKSxoJiZja2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7''@;'; + put 'put ''d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0TWVyZ2VkVmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07aWYoITA9PT15KXJldHVybiB0aGlzLm1lcmdlZFZhbHVlc0NhY2hlO2lm''@;'; + put 'put ''KDA9PT10aGlzLmdldExlbmd0aCgpKXJldHVybltdO2Zvcih2YXIgQz1PbCh0aGlzLmdldCgpLGZ1bmN0aW9uKE5lKXtyZXR1cm4gTmUuZ2V0VmFsdWVzKCl9KSxJPVtdLGo9VG8oQ1swXSkmJkNbMF0ubGVuZ3RofHwwLHVlPTA7dWU8ajt1ZSs9MSl7Zm9yKHZhciBfZT1bXSxCZT0wO0JlPHRo''@;'; + put 'put ''aXMuZ2V0TGVuZ3RoKCk7QmUrPTEpX2UucHVzaChDW0JlXVt1ZV0pO0kucHVzaChfZSl9cmV0dXJuIE9sKEksdGhpcy5hZ2dyZWdhdGlvbkZ1bmN0aW9uKX19LHtrZXk6ImdldE1lcmdlZFZhbHVlQXRJbmRleCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmdldE1lcmdlZFZhbHVl''@;'; + put 'put ''cyhDKVt5XTtyZXR1cm4gVG8oSSk/STp0aGlzLmZhbGxiYWNrVmFsdWV9fSx7a2V5OiJ1cGRhdGVDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1lcmdlZFZhbHVlc0NhY2hlPXRoaXMuZ2V0TWVyZ2VkVmFsdWVzKCExKX19XSksaH0oZzRlKTtmdW5jdGlvbiBoa2UoZCxnKXtmb3IodmFy''@;'; + put 'put ''IGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBka2UoZCxnLGgpe2lm''@;'; + put 'put ''KCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQoZCl9dmFyIEE0ZT1uZXcgV2Vha01hcCxwa2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0aW9uIG5YZShkLGcp''@;'; + put 'put ''e2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSxmdW5jdGlvbiBpWGUoZCxnLGgpeyhmdW5jdGlvbiBvWGUoZCxnKXtpZihnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5u''@;'; + put 'put ''b3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoZCxnKSxnLnNldChkLGgpfSh0aGlzLEE0ZSx7d3JpdGFibGU6ITAsdmFsdWU6W119KX1yZXR1cm4gZnVuY3Rpb24gclhlKGQsZyxoKXtnJiZoa2UoZC5wcm90b3R5cGUsZyksaCYm''@;'; + put 'put ''aGtlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InN1YnNjcmliZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGgpLHRoaXMuX3dyaXRlKGZ1bmN0aW9uIHNYZShkLGcp''@;'; + put 'put ''e3JldHVybiBmdW5jdGlvbiB1WGUoZCxnKXtyZXR1cm4gZy5nZXQ/Zy5nZXQuY2FsbChkKTpnLnZhbHVlfShkLGRrZShkLGcsImdldCIpKX0odGhpcyxBNGUpKSx0aGlzfX0se2tleToidW5zdWJzY3JpYmUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucnVuTG9jYWxIb29rcygidW5z''@;'; + put 'put ''dWJzY3JpYmUiKSx0aGlzLmNsZWFyTG9jYWxIb29rcygpLHRoaXN9fSx7a2V5OiJfd3JpdGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoLmxlbmd0aD4wJiZ0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsaCksdGhpc319LHtrZXk6Il93cml0ZUluaXRpYWxDaGFuZ2VzIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbihoKXshZnVuY3Rpb24gYVhlKGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24gbFhlKGQsZyxoKXtpZihnLnNldClnLnNldC5jYWxsKGQsaCk7ZWxzZXtpZighZy53cml0YWJsZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxk''@;'; + put 'put ''Iik7Zy52YWx1ZT1ofX0oZCxka2UoZCxnLCJzZXQiKSxoKSxofSh0aGlzLEE0ZSxoKX19XSksZH0oKTtmdW5jdGlvbiBna2UoZCxnKXtmb3IodmFyIGg9W10sdj0wLHk9MDt2PGQubGVuZ3RoJiZ5PGcubGVuZ3RoO3YrKyx5KyspZFt2XSE9PWdbeV0mJmgucHVzaCh7b3A6InJlcGxhY2UiLGlu''@;'; + put 'put ''ZGV4Onksb2xkVmFsdWU6ZFt2XSxuZXdWYWx1ZTpnW3ldfSk7Zm9yKDt2PGcubGVuZ3RoO3YrKyloLnB1c2goe29wOiJpbnNlcnQiLGluZGV4OnYsb2xkVmFsdWU6dm9pZCAwLG5ld1ZhbHVlOmdbdl19KTtmb3IoO3k8ZC5sZW5ndGg7eSsrKWgucHVzaCh7b3A6InJlbW92ZSIsaW5kZXg6eSxv''@;'; + put 'put ''bGRWYWx1ZTpkW3ldLG5ld1ZhbHVlOnZvaWQgMH0pO3JldHVybiBofWZ1bmN0aW9uIGNYZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIG1rZShkLGcpe2Zvcih2YXIgaD0w''@;'; + put 'put ''O2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIG56KGQsZyxoKXsoZnVuY3Rp''@;'; + put 'put ''b24gaFhlKGQsZyl7aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiBCcChkLGcpe3JldHVybiBmdW5jdGlvbiBkWGUo''@;'; + put 'put ''ZCxnKXtyZXR1cm4gZy5nZXQ/Zy5nZXQuY2FsbChkKTpnLnZhbHVlfShkLHZrZShkLGcsImdldCIpKX1mdW5jdGlvbiBKZWUoZCxnLGgpe3JldHVybiBmdW5jdGlvbiBwWGUoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBl''@;'; + put 'put ''RXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLHZrZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gdmtlKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUg''@;'; + put 'put ''ZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQpfVIyKHBrZSxzZCk7dmFyIEFrZSxYZWU9bmV3IFdlYWtNYXAscno9bmV3IFdlYWtNYXAsS2VlPW5ldyBXZWFrTWFwLCRlZT1uZXcgV2Vha01hcCxxZWU9bmV3IFdlYWtNYXAsZ1hlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgp''@;'; + put 'put ''e3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxoPWcuaW5pdGlhbEluZGV4VmFsdWU7Y1hlKHRoaXMsZCksbnoodGhpcyxYZWUse3dyaXRhYmxlOiEwLHZhbHVlOm5ldyBTZXR9KSxueih0aGlzLHJ6LHt3cml0YWJsZTohMCx2''@;'; + put 'put ''YWx1ZTpbXX0pLG56KHRoaXMsS2VlLHt3cml0YWJsZTohMCx2YWx1ZTpbXX0pLG56KHRoaXMsJGVlLHt3cml0YWJsZTohMCx2YWx1ZTohMX0pLG56KHRoaXMscWVlLHt3cml0YWJsZTohMCx2YWx1ZTohMX0pLEplZSh0aGlzLHFlZSxudWxsIT1oJiZoKX1yZXR1cm4gZnVuY3Rpb24gZlhlKGQs''@;'; + put 'put ''ZyxoKXtnJiZta2UoZC5wcm90b3R5cGUsZyksaCYmbWtlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImNyZWF0ZU9ic2VydmVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj1uZXcgcGtlO3JldHVybiBCcCh0''@;'; + put 'put ''aGlzLFhlZSkuYWRkKHYpLHYuYWRkTG9jYWxIb29rKCJ1bnN1YnNjcmliZSIsZnVuY3Rpb24oKXtCcChoLFhlZSkuZGVsZXRlKHYpfSksdi5fd3JpdGVJbml0aWFsQ2hhbmdlcyhna2UoQnAodGhpcyxyeiksQnAodGhpcyxLZWUpKSksdn19LHtrZXk6ImVtaXQiLHZhbHVlOmZ1bmN0aW9uKGgp''@;'; + put 'put ''e3ZhciB2PUJwKHRoaXMsS2VlKTsoIUJwKHRoaXMsJGVlKXx8QnAodGhpcyxyeikubGVuZ3RoIT09aC5sZW5ndGgpJiYoMD09PWgubGVuZ3RoP2g9bmV3IEFycmF5KHYubGVuZ3RoKS5maWxsKEJwKHRoaXMscWVlKSk6SmVlKHRoaXMscnosbmV3IEFycmF5KGgubGVuZ3RoKS5maWxsKEJwKHRo''@;'; + put 'put ''aXMscWVlKSkpLEJwKHRoaXMsJGVlKXx8KEplZSh0aGlzLCRlZSwhMCksdj1CcCh0aGlzLHJ6KSkpO3ZhciB5PWdrZSh2LGgpO0JwKHRoaXMsWGVlKS5mb3JFYWNoKGZ1bmN0aW9uKEMpe3JldHVybiBDLl93cml0ZSh5KX0pLEplZSh0aGlzLEtlZSxoKX19XSksZH0oKTtmdW5jdGlvbiB5NGUo''@;'; + put 'put ''ZCl7cmV0dXJuIGZ1bmN0aW9uIHlYZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiB3NGUoZCl9KGQpfHxmdW5jdGlvbiBBWGUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVy''@;'; + put 'put ''biBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gdlhlKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiB3NGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9y''@;'; + put 'put ''JiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHc0ZShkLGcpfX0oZCl8fGZ1bmN0''@;'; + put 'put ''aW9uIG1YZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIp''@;'; + put 'put ''fSgpfWZ1bmN0aW9uIHc0ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHdYZShkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJl''@;'; + put 'put ''ZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9ZnVuY3Rpb24geWtlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9''@;'; + put 'put ''ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIGJrZSx3a2U9bmV3IFNldChbImdldEZpcnN0Tm90SGlkZGVuSW5kZXgiXSksYjRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPXRoaXM7KGZ1bmN0aW9uIGJY''@;'; + put 'put ''ZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmluZGV4ZXNTZXF1ZW5jZT1uZXcgc2tlLHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbj1uZXcgZmtlKGZ1bmN0''@;'; + put 'put ''aW9uKGgpe3JldHVybiBoLnNvbWUoZnVuY3Rpb24odil7cmV0dXJuITA9PT12fSl9LCExKSx0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uPW5ldyBma2UoZnVuY3Rpb24oaCl7cmV0dXJuIGguc29tZShmdW5jdGlvbih2KXtyZXR1cm4hMD09PXZ9KX0sITEpLHRoaXMudmFyaW91c01hcHNDb2xs''@;'; + put 'put ''ZWN0aW9uPW5ldyBnNGUsdGhpcy5oaWRpbmdDaGFuZ2VzT2JzZXJ2YWJsZT1uZXcgZ1hlKHtpbml0aWFsSW5kZXhWYWx1ZTohMX0pLHRoaXMubm90VHJpbW1lZEluZGV4ZXNDYWNoZT1bXSx0aGlzLm5vdEhpZGRlbkluZGV4ZXNDYWNoZT1bXSx0aGlzLmlzQmF0Y2hlZD0hMSx0aGlzLmluZGV4''@;'; + put 'put ''ZXNTZXF1ZW5jZUNoYW5nZWQ9ITEsdGhpcy50cmltbWVkSW5kZXhlc0NoYW5nZWQ9ITEsdGhpcy5oaWRkZW5JbmRleGVzQ2hhbmdlZD0hMSx0aGlzLnJlbmRlcmFibGVQaHlzaWNhbEluZGV4ZXNDYWNoZT1bXSx0aGlzLmZyb21QaHlzaWNhbFRvVmlzdWFsSW5kZXhlc0NhY2hlPW5ldyBNYXAs''@;'; + put 'put ''dGhpcy5mcm9tVmlzdWFsVG9SZW5kZXJhYmxlSW5kZXhlc0NhY2hlPW5ldyBNYXAsdGhpcy5pbmRleGVzU2VxdWVuY2UuYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7Zy5pbmRleGVzU2VxdWVuY2VDaGFuZ2VkPSEwLGcudXBkYXRlQ2FjaGUoKSxnLnJ1bkxvY2FsSG9va3MoImNo''@;'; + put 'put ''YW5nZSIsZy5pbmRleGVzU2VxdWVuY2UsbnVsbCl9KSx0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGZ1bmN0aW9uKGgpe2cudHJpbW1lZEluZGV4ZXNDaGFuZ2VkPSEwLGcudXBkYXRlQ2FjaGUoKSxnLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsaCxn''@;'; + put 'put ''LnRyaW1taW5nTWFwc0NvbGxlY3Rpb24pfSksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5hZGRMb2NhbEhvb2soImNoYW5nZSIsZnVuY3Rpb24oaCl7Zy5oaWRkZW5JbmRleGVzQ2hhbmdlZD0hMCxnLnVwZGF0ZUNhY2hlKCksZy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGgsZy5oaWRpbmdN''@;'; + put 'put ''YXBzQ29sbGVjdGlvbil9KSx0aGlzLnZhcmlvdXNNYXBzQ29sbGVjdGlvbi5hZGRMb2NhbEhvb2soImNoYW5nZSIsZnVuY3Rpb24oaCl7Zy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGgsZy52YXJpb3VzTWFwc0NvbGxlY3Rpb24pfSl9cmV0dXJuIGZ1bmN0aW9uIF9YZShkLGcsaCl7ZyYmeWtl''@;'; + put 'put ''KGQucHJvdG90eXBlLGcpLGgmJnlrZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzdXNwZW5kT3BlcmF0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzQmF0Y2hlZD0hMH19LHtrZXk6InJlc3VtZU9wZXJhdGlv''@;'; + put 'put ''bnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc0JhdGNoZWQ9ITEsdGhpcy51cGRhdGVDYWNoZSgpfX0se2tleToiY3JlYXRlQ2hhbmdlc09ic2VydmVyIix2YWx1ZTpmdW5jdGlvbihoKXtpZigiaGlkaW5nIiE9PWgpdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBpbmRleCBtYXAgdHlw''@;'; + put 'put ''ZSAiJy5jb25jYXQoaCwnIi4nKSk7cmV0dXJuIHRoaXMuaGlkaW5nQ2hhbmdlc09ic2VydmFibGUuY3JlYXRlT2JzZXJ2ZXIoKX19LHtrZXk6ImNyZWF0ZUFuZFJlZ2lzdGVySW5kZXhNYXAiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gdGhpcy5yZWdpc3Rlck1hcChoLGZ1bmN0aW9u''@;'; + put 'put ''IEZKZShkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbDtpZighYWtlLmhhcyhkKSl0aHJvdyBuZXcgRXJyb3IoJ1RoZSBwcm92aWRlZCBtYXAgdHlwZSAoIicuY29uY2F0KGQsJyIpIGRvZXMgbm90IGV4aXN0LicpKTty''@;'; + put 'put ''ZXR1cm4gbmV3KGFrZS5nZXQoZCkpKGcpfSh2LHkpKX19LHtrZXk6InJlZ2lzdGVyTWFwIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi5nZXQoaCl8fHRoaXMuaGlkaW5nTWFwc0NvbGxlY3Rpb24uZ2V0KGgpfHx0aGlzLnZhcmlvdXNNYXBzQ29s''@;'; + put 'put ''bGVjdGlvbi5nZXQoaCkpdGhyb3cgRXJyb3IoJ01hcCB3aXRoIG5hbWUgIicuY29uY2F0KGgsJyIgaGFzIGJlZW4gYWxyZWFkeSByZWdpc3RlcmVkLicpKTt2IGluc3RhbmNlb2YgZXo/dGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uLnJlZ2lzdGVyKGgsdik6diBpbnN0YW5jZW9mIFdlZT90''@;'; + put 'put ''aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uLnJlZ2lzdGVyKGgsdik6dGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24ucmVnaXN0ZXIoaCx2KTt2YXIgeT10aGlzLmdldE51bWJlck9mSW5kZXhlcygpO3JldHVybiB5PjAmJnYuaW5pdCh5KSx2fX0se2tleToidW5yZWdpc3Rlck1hcCIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oaCl7dGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uLnVucmVnaXN0ZXIoaCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVyKGgpLHRoaXMudmFyaW91c01hcHNDb2xsZWN0aW9uLnVucmVnaXN0ZXIoaCl9fSx7a2V5OiJ1bnJlZ2lzdGVyQWxsIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe3RoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVyQWxsKCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVyQWxsKCksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24udW5yZWdpc3RlckFsbCgpfX0se2tleToiZ2V0UGh5c2ljYWxGcm9tVmlz''@;'; + put 'put ''dWFsSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMubm90VHJpbW1lZEluZGV4ZXNDYWNoZVtoXTtyZXR1cm4gVG8odik/djpudWxsfX0se2tleToiZ2V0UGh5c2ljYWxGcm9tUmVuZGVyYWJsZUluZGV4Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLnJlbmRlcmFibGVQ''@;'; + put 'put ''aHlzaWNhbEluZGV4ZXNDYWNoZVtoXTtyZXR1cm4gVG8odik/djpudWxsfX0se2tleToiZ2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMuZnJvbVBoeXNpY2FsVG9WaXN1YWxJbmRleGVzQ2FjaGUuZ2V0KGgpO3JldHVybiBUbyh2KT92Om51''@;'; + put 'put ''bGx9fSx7a2V5OiJnZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5nZXRWaXN1YWxGcm9tUGh5c2ljYWxJbmRleCh0aGlzLmdldFBoeXNpY2FsRnJvbVJlbmRlcmFibGVJbmRleChoKSl9fSx7a2V5OiJnZXRSZW5kZXJhYmxlRnJvbVZp''@;'; + put 'put ''c3VhbEluZGV4Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLmZyb21WaXN1YWxUb1JlbmRlcmFibGVJbmRleGVzQ2FjaGUuZ2V0KGgpO3JldHVybiBUbyh2KT92Om51bGx9fSx7a2V5OiJnZXRGaXJzdE5vdEhpZGRlbkluZGV4Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3Vt''@;'; + put 'put ''ZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sQz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106aC12O3drZS5oYXMoImdldEZpcnN0Tm90SGlkZGVuSW5kZXgiKSYmKHdrZS5kZWxldGUoImdldEZp''@;'; + put 'put ''cnN0Tm90SGlkZGVuSW5kZXgiKSxsMShCMihBa2V8fChBa2U9d1hlKFsnVGhlIG1ldGhvZCAiZ2V0Rmlyc3ROb3RIaWRkZW5JbmRleCIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFqb3IgcmVsZWFzZS4g''@;'; + put 'put ''UGxlYXNlIHVzZSAiZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4IiBpbnN0ZWFkLiddLFsnVGhlIG1ldGhvZCAiZ2V0Rmlyc3ROb3RIaWRkZW5JbmRleCIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0XFx4MjBcbiAgICAgICAgICAgICAgICAgICAgICAgIG1h''@;'; + put 'put ''am9yIHJlbGVhc2UuIFBsZWFzZSB1c2UgImdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCIgaW5zdGVhZC4nXSkpKSkpO3ZhciBJPXRoaXMuZ2V0UGh5c2ljYWxGcm9tVmlzdWFsSW5kZXgoaCk7cmV0dXJuIG51bGw9PT1JPyEwPT09eSYmQyE9PWgtdj90aGlzLmdldEZpcnN0Tm90SGlkZGVuSW5k''@;'; + put 'put ''ZXgoQywtdiwhMSxDKTpudWxsOiExPT09dGhpcy5pc0hpZGRlbihJKT9oOnRoaXMuZ2V0Rmlyc3ROb3RIaWRkZW5JbmRleChoK3Ysdix5LEMpfX0se2tleToiZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9p''@;'; + put 'put ''ZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sQz10aGlzLmdldFBoeXNpY2FsRnJvbVZpc3VhbEluZGV4KGgpO2lmKG51bGw9PT1DKXJldHVybiBudWxsO2lmKHRoaXMuZnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXNDYWNoZS5oYXMoaCkpcmV0dXJuIGg7dmFyIEk9QXJyYXku''@;'; + put 'put ''ZnJvbSh0aGlzLmZyb21WaXN1YWxUb1JlbmRlcmFibGVJbmRleGVzQ2FjaGUua2V5cygpKSxqPS0xO3JldHVybi0xPT09KGo9dj4wP0kuZmluZEluZGV4KGZ1bmN0aW9uKHVlKXtyZXR1cm4gdWU+aH0pOkkucmV2ZXJzZSgpLmZpbmRJbmRleChmdW5jdGlvbih1ZSl7cmV0dXJuIHVlPGh9KSk/''@;'; + put 'put ''eT90aGlzLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChoLC12LCExKTpudWxsOklbal19fSx7a2V5OiJpbml0VG9MZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuZ2V0TnVtYmVy''@;'; + put 'put ''T2ZJbmRleGVzKCk7dGhpcy5ub3RUcmltbWVkSW5kZXhlc0NhY2hlPXk0ZShuZXcgQXJyYXkoaCkua2V5cygpKSx0aGlzLm5vdEhpZGRlbkluZGV4ZXNDYWNoZT15NGUobmV3IEFycmF5KGgpLmtleXMoKSksdGhpcy5zdXNwZW5kT3BlcmF0aW9ucygpLHRoaXMuaW5kZXhlc1NlcXVlbmNlLmlu''@;'; + put 'put ''aXQoaCksdGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uLmluaXRFdmVyeShoKSx0aGlzLnJlc3VtZU9wZXJhdGlvbnMoKSx0aGlzLnN1c3BlbmRPcGVyYXRpb25zKCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5pbml0RXZlcnkoaCksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24uaW5p''@;'; + put 'put ''dEV2ZXJ5KGgpLHRoaXMucmVzdW1lT3BlcmF0aW9ucygpLHRoaXMucnVuTG9jYWxIb29rcygiaW5pdCIpfX0se2tleToiZml0VG9MZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMuZ2V0TnVtYmVyT2ZJbmRleGVzKCk7aWYoaDx2KXt2YXIgeT15NGUoQXJyYXkodGhpcy5nZXRO''@;'; + put 'put ''dW1iZXJPZkluZGV4ZXMoKS1oKS5rZXlzKCkpLm1hcChmdW5jdGlvbihDKXtyZXR1cm4gQytofSk7dGhpcy5yZW1vdmVJbmRleGVzKHkpfWVsc2UgdGhpcy5pbnNlcnRJbmRleGVzKHYsaC12KX19LHtrZXk6ImdldEluZGV4ZXNTZXF1ZW5jZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5pbmRleGVzU2VxdWVuY2UuZ2V0VmFsdWVzKCl9fSx7a2V5OiJzZXRJbmRleGVzU2VxdWVuY2UiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuaW5kZXhlc1NlcXVlbmNlLnNldFZhbHVlcyhoKX19LHtrZXk6ImdldE5vdFRyaW1tZWRJbmRleGVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRo''@;'; + put 'put ''aXMsdj0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdO2lmKCEwPT09dilyZXR1cm4gdGhpcy5ub3RUcmltbWVkSW5kZXhlc0NhY2hlO3ZhciB5PXRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCk7cmV0dXJuIHkuZmlsdGVyKGZ1bmN0aW9u''@;'; + put 'put ''KEMpe3JldHVybiExPT09aC5pc1RyaW1tZWQoQyl9KX19LHtrZXk6ImdldE5vdFRyaW1tZWRJbmRleGVzTGVuZ3RoIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldE5vdFRyaW1tZWRJbmRleGVzKCkubGVuZ3RofX0se2tleToiZ2V0Tm90SGlkZGVuSW5kZXhlcyIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgaD10aGlzLHY9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTtpZighMD09PXYpcmV0dXJuIHRoaXMubm90SGlkZGVuSW5kZXhlc0NhY2hlO3ZhciB5PXRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCk7cmV0dXJuIHku''@;'; + put 'put ''ZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiExPT09aC5pc0hpZGRlbihDKX0pfX0se2tleToiZ2V0Tm90SGlkZGVuSW5kZXhlc0xlbmd0aCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXROb3RIaWRkZW5JbmRleGVzKCkubGVuZ3RofX0se2tleToiZ2V0UmVuZGVyYWJsZUluZGV4''@;'; + put 'put ''ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07aWYoITA9PT12KXJldHVybiB0aGlzLnJlbmRlcmFibGVQaHlzaWNhbEluZGV4ZXNDYWNoZTt2YXIgeT10aGlzLmdldE5vdFRy''@;'; + put 'put ''aW1tZWRJbmRleGVzKCk7cmV0dXJuIHkuZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiExPT09aC5pc0hpZGRlbihDKX0pfX0se2tleToiZ2V0UmVuZGVyYWJsZUluZGV4ZXNMZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UmVuZGVyYWJsZUluZGV4ZXMoKS5sZW5ndGh9''@;'; + put 'put ''fSx7a2V5OiJnZXROdW1iZXJPZkluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCkubGVuZ3RofX0se2tleToibW92ZUluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpczsibnVtYmVyIj09dHlwZW9mIGgmJihoPVtoXSk7''@;'; + put 'put ''dmFyIEM9T2woaCxmdW5jdGlvbihOZSl7cmV0dXJuIHkuZ2V0UGh5c2ljYWxGcm9tVmlzdWFsSW5kZXgoTmUpfSksST10aGlzLmdldE5vdFRyaW1tZWRJbmRleGVzTGVuZ3RoKCksaj1oLmxlbmd0aCx1ZT1xWih0aGlzLmdldEluZGV4ZXNTZXF1ZW5jZSgpLEMpLF9lPUktajtpZih2K2o8SSl7''@;'; + put 'put ''dmFyIEJlPXVlLmZpbHRlcihmdW5jdGlvbihOZSl7cmV0dXJuITE9PT15LmlzVHJpbW1lZChOZSl9KVt2XTtfZT11ZS5pbmRleE9mKEJlKX10aGlzLnNldEluZGV4ZXNTZXF1ZW5jZShpNGUodWUsX2UsQykpfX0se2tleToiaXNUcmltbWVkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy50cmltbWluZ01hcHNDb2xsZWN0aW9uLmdldE1lcmdlZFZhbHVlQXRJbmRleChoKX19LHtrZXk6ImlzSGlkZGVuIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5nZXRNZXJnZWRWYWx1ZUF0SW5kZXgoaCl9fSx7a2V5OiJpbnNlcnRJbmRleGVz''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMuZ2V0Tm90VHJpbW1lZEluZGV4ZXMoKVtoXSxDPVRvKHkpP3k6dGhpcy5nZXROdW1iZXJPZkluZGV4ZXMoKSxJPXRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCkuaW5jbHVkZXMoeSk/dGhpcy5nZXRJbmRleGVzU2VxdWVuY2UoKS5pbmRl''@;'; + put 'put ''eE9mKHkpOnRoaXMuZ2V0TnVtYmVyT2ZJbmRleGVzKCksaj1PbChuZXcgQXJyYXkodikuZmlsbChDKSxmdW5jdGlvbih1ZSxfZSl7cmV0dXJuIHVlK19lfSk7dGhpcy5zdXNwZW5kT3BlcmF0aW9ucygpLHRoaXMuaW5kZXhlc1NlcXVlbmNlLmluc2VydChJLGopLHRoaXMudHJpbW1pbmdNYXBz''@;'; + put 'put ''Q29sbGVjdGlvbi5pbnNlcnRUb0V2ZXJ5KEksaiksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5pbnNlcnRUb0V2ZXJ5KEksaiksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24uaW5zZXJ0VG9FdmVyeShJLGopLHRoaXMucmVzdW1lT3BlcmF0aW9ucygpfX0se2tleToicmVtb3ZlSW5kZXhl''@;'; + put 'put ''cyIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5zdXNwZW5kT3BlcmF0aW9ucygpLHRoaXMuaW5kZXhlc1NlcXVlbmNlLnJlbW92ZShoKSx0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24ucmVtb3ZlRnJvbUV2ZXJ5KGgpLHRoaXMuaGlkaW5nTWFwc0NvbGxlY3Rpb24ucmVtb3ZlRnJvbUV2ZXJ5''@;'; + put 'put ''KGgpLHRoaXMudmFyaW91c01hcHNDb2xsZWN0aW9uLnJlbW92ZUZyb21FdmVyeShoKSx0aGlzLnJlc3VtZU9wZXJhdGlvbnMoKX19LHtrZXk6InVwZGF0ZUNhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1''@;'; + put 'put ''bWVudHNbMF0sdj10aGlzLmluZGV4ZXNTZXF1ZW5jZUNoYW5nZWR8fHRoaXMudHJpbW1lZEluZGV4ZXNDaGFuZ2VkfHx0aGlzLmhpZGRlbkluZGV4ZXNDaGFuZ2VkOyghMD09PWh8fCExPT09dGhpcy5pc0JhdGNoZWQmJiEwPT09dikmJih0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24udXBk''@;'; + put 'put ''YXRlQ2FjaGUoKSx0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uLnVwZGF0ZUNhY2hlKCksdGhpcy5ub3RUcmltbWVkSW5kZXhlc0NhY2hlPXRoaXMuZ2V0Tm90VHJpbW1lZEluZGV4ZXMoITEpLHRoaXMubm90SGlkZGVuSW5kZXhlc0NhY2hlPXRoaXMuZ2V0Tm90SGlkZGVuSW5kZXhlcyghMSks''@;'; + put 'put ''dGhpcy5yZW5kZXJhYmxlUGh5c2ljYWxJbmRleGVzQ2FjaGU9dGhpcy5nZXRSZW5kZXJhYmxlSW5kZXhlcyghMSksdGhpcy5jYWNoZUZyb21QaHlzaWNhbFRvVmlzdWFsSW5kZXhlcygpLHRoaXMuY2FjaGVGcm9tVmlzdWFsVG9SZW5kZXJhYmxlSW5kZXhlcygpLHRoaXMuaGlkZGVuSW5kZXhl''@;'; + put 'put ''c0NoYW5nZWQmJnRoaXMuaGlkaW5nQ2hhbmdlc09ic2VydmFibGUuZW1pdCh0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uLmdldE1lcmdlZFZhbHVlcygpKSx0aGlzLnJ1bkxvY2FsSG9va3MoImNhY2hlVXBkYXRlZCIse2luZGV4ZXNTZXF1ZW5jZUNoYW5nZWQ6dGhpcy5pbmRleGVzU2VxdWVu''@;'; + put 'put ''Y2VDaGFuZ2VkLHRyaW1tZWRJbmRleGVzQ2hhbmdlZDp0aGlzLnRyaW1tZWRJbmRleGVzQ2hhbmdlZCxoaWRkZW5JbmRleGVzQ2hhbmdlZDp0aGlzLmhpZGRlbkluZGV4ZXNDaGFuZ2VkfSksdGhpcy5pbmRleGVzU2VxdWVuY2VDaGFuZ2VkPSExLHRoaXMudHJpbW1lZEluZGV4ZXNDaGFuZ2Vk''@;'; + put 'put ''PSExLHRoaXMuaGlkZGVuSW5kZXhlc0NoYW5nZWQ9ITEpfX0se2tleToiY2FjaGVGcm9tUGh5c2ljYWxUb1Zpc3VhbEluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpO3RoaXMuZnJvbVBoeXNpY2FsVG9WaXN1YWxJbmRleGVz''@;'; + put 'put ''Q2FjaGUuY2xlYXIoKTtmb3IodmFyIHY9MDt2PGg7dis9MSl7dmFyIHk9dGhpcy5nZXRQaHlzaWNhbEZyb21WaXN1YWxJbmRleCh2KTt0aGlzLmZyb21QaHlzaWNhbFRvVmlzdWFsSW5kZXhlc0NhY2hlLnNldCh5LHYpfX19LHtrZXk6ImNhY2hlRnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4''@;'; + put 'put ''ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5nZXRSZW5kZXJhYmxlSW5kZXhlc0xlbmd0aCgpO3RoaXMuZnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXNDYWNoZS5jbGVhcigpO2Zvcih2YXIgdj0wO3Y8aDt2Kz0xKXt2YXIgeT10aGlzLmdldFBoeXNpY2FsRnJvbVJlbmRlcmFi''@;'; + put 'put ''bGVJbmRleCh2KSxDPXRoaXMuZ2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgoeSk7dGhpcy5mcm9tVmlzdWFsVG9SZW5kZXJhYmxlSW5kZXhlc0NhY2hlLnNldChDLHYpfX19XSksZH0oKTtmdW5jdGlvbiBfa2UoZCl7dmFyIGg9L14oW2EtekEtWl17Mn0pLShbYS16QS1aXXsyfSkkLy5leGVj''@;'; + put 'put ''KGQpO3JldHVybiBoPyIiLmNvbmNhdChoWzFdLnRvTG93ZXJDYXNlKCksIi0iKS5jb25jYXQoaFsyXS50b1VwcGVyQ2FzZSgpKTpkfWZ1bmN0aW9uIENrZShkKXtUbyhkKSYmYjNlKEIyKGJrZXx8KGJrZT1mdW5jdGlvbiBDWGUoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0''@;'; + put 'put ''LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbJ0xhbmd1YWdlIHdpdGggY29kZSAiJywnIiB3YXMgbm90IGZvdW5kLiBZb3Ugc2hvdWxkIHJlZ2lzdGVyIHBhcnRpY3VsYXIgbGFuZ3VhZ2UgXG4gICAgYmVmb3JlIHVz''@;'; + put 'put ''aW5nIGl0LiBSZWFkIG1vcmUgYWJvdXQgdGhpcyBpc3N1ZSBhdDogaHR0cHM6Ly9kb2NzLmhhbmRzb250YWJsZS5jb20vaTE4bi9taXNzaW5nLWxhbmd1YWdlLWNvZGUuJ10sWydMYW5ndWFnZSB3aXRoIGNvZGUgIicsJyIgd2FzIG5vdCBmb3VuZC4gWW91IHNob3VsZCByZWdpc3RlciBwYXJ0''@;'; + put 'put ''aWN1bGFyIGxhbmd1YWdlXFx4MjBcbiAgICBiZWZvcmUgdXNpbmcgaXQuIFJlYWQgbW9yZSBhYm91dCB0aGlzIGlzc3VlIGF0OiBodHRwczovL2RvY3MuaGFuZHNvbnRhYmxlLmNvbS9pMThuL21pc3NpbmctbGFuZ3VhZ2UtY29kZS4nXSkpLGQpKX1SMihiNGUsc2QpO3ZhciBra2U9THAoInBo''@;'; + put 'put ''cmFzZUZvcm1hdHRlcnMiKSxNWGU9a2tlLnJlZ2lzdGVyLEVYZT1ra2UuZ2V0VmFsdWVzOyFmdW5jdGlvbiB4WGUoZCxnKXtNWGUoZCxnKX0oInBsdXJhbGl6ZSIsZnVuY3Rpb24gU1hlKGQsZyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZCkmJk51bWJlci5pc0ludGVnZXIoZyk/ZFtnXTpkfSk7''@;'; + put 'put ''dmFyIElvLFJsPSJDb250ZXh0TWVudTppdGVtcyIsXzRlPSIiLmNvbmNhdChSbCwiLm5vSXRlbXMiKSxDNGU9IiIuY29uY2F0KFJsLCIuaW5zZXJ0Um93QWJvdmUiKSxrNGU9IiIuY29uY2F0KFJsLCIuaW5zZXJ0Um93QmVsb3ciKSxTNGU9IiIuY29uY2F0KFJsLCIuaW5zZXJ0Q29sdW1uT25U''@;'; + put 'put ''aGVMZWZ0IiksTTRlPSIiLmNvbmNhdChSbCwiLmluc2VydENvbHVtbk9uVGhlUmlnaHQiKSxFNGU9IiIuY29uY2F0KFJsLCIucmVtb3ZlUm93IikseDRlPSIiLmNvbmNhdChSbCwiLnJlbW92ZUNvbHVtbiIpLFQ0ZT0iIi5jb25jYXQoUmwsIi51bmRvIiksSTRlPSIiLmNvbmNhdChSbCwiLnJl''@;'; + put 'put ''ZG8iKSxENGU9IiIuY29uY2F0KFJsLCIucmVhZE9ubHkiKSxMNGU9IiIuY29uY2F0KFJsLCIuY2xlYXJDb2x1bW4iKSxPNGU9IiIuY29uY2F0KFJsLCIuY29weSIpLFI0ZT0iIi5jb25jYXQoUmwsIi5jdXQiKSxCNGU9IiIuY29uY2F0KFJsLCIuZnJlZXplQ29sdW1uIiksUDRlPSIiLmNvbmNh''@;'; + put 'put ''dChSbCwiLnVuZnJlZXplQ29sdW1uIiksRjRlPSIiLmNvbmNhdChSbCwiLm1lcmdlQ2VsbHMiKSxINGU9IiIuY29uY2F0KFJsLCIudW5tZXJnZUNlbGxzIiksTjRlPSIiLmNvbmNhdChSbCwiLmFkZENvbW1lbnQiKSxWNGU9IiIuY29uY2F0KFJsLCIuZWRpdENvbW1lbnQiKSxqNGU9IiIuY29u''@;'; + put 'put ''Y2F0KFJsLCIucmVtb3ZlQ29tbWVudCIpLFo0ZT0iIi5jb25jYXQoUmwsIi5yZWFkT25seUNvbW1lbnQiKSx6NGU9IiIuY29uY2F0KFJsLCIuYWxpZ24iKSxHNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24ubGVmdCIpLFc0ZT0iIi5jb25jYXQoUmwsIi5hbGlnbi5jZW50ZXIiKSxZNGU9IiIuY29u''@;'; + put 'put ''Y2F0KFJsLCIuYWxpZ24ucmlnaHQiKSxVNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24uanVzdGlmeSIpLFE0ZT0iIi5jb25jYXQoUmwsIi5hbGlnbi50b3AiKSxKNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24ubWlkZGxlIiksWDRlPSIiLmNvbmNhdChSbCwiLmFsaWduLmJvdHRvbSIpLEs0ZT0iIi5j''@;'; + put 'put ''b25jYXQoUmwsIi5ib3JkZXJzIiksJDRlPSIiLmNvbmNhdChSbCwiLmJvcmRlcnMudG9wIikscTRlPSIiLmNvbmNhdChSbCwiLmJvcmRlcnMucmlnaHQiKSxlcGU9IiIuY29uY2F0KFJsLCIuYm9yZGVycy5ib3R0b20iKSx0cGU9IiIuY29uY2F0KFJsLCIuYm9yZGVycy5sZWZ0IiksbnBlPSIi''@;'; + put 'put ''LmNvbmNhdChSbCwiLmJvcmRlcnMucmVtb3ZlIikscnBlPSIiLmNvbmNhdChSbCwiLm5lc3RlZEhlYWRlcnMuaW5zZXJ0Q2hpbGRSb3ciKSxpcGU9IiIuY29uY2F0KFJsLCIubmVzdGVkSGVhZGVycy5kZXRhY2hGcm9tUGFyZW50Iiksb3BlPSIiLmNvbmNhdChSbCwiLmhpZGVDb2x1bW4iKSxh''@;'; + put 'put ''cGU9IiIuY29uY2F0KFJsLCIuc2hvd0NvbHVtbiIpLGxwZT0iIi5jb25jYXQoUmwsIi5oaWRlUm93Iiksc3BlPSIiLmNvbmNhdChSbCwiLnNob3dSb3ciKSxsMz0iRmlsdGVyczoiLHR1PSIiLmNvbmNhdChsMywiY29uZGl0aW9ucyIpLGV0ZT0iIi5jb25jYXQodHUsIi5ub25lIiksdXBlPSIi''@;'; + put 'put ''LmNvbmNhdCh0dSwiLmlzRW1wdHkiKSxjcGU9IiIuY29uY2F0KHR1LCIuaXNOb3RFbXB0eSIpLGZwZT0iIi5jb25jYXQodHUsIi5pc0VxdWFsVG8iKSxocGU9IiIuY29uY2F0KHR1LCIuaXNOb3RFcXVhbFRvIiksZHBlPSIiLmNvbmNhdCh0dSwiLmJlZ2luc1dpdGgiKSxwcGU9IiIuY29uY2F0''@;'; + put 'put ''KHR1LCIuZW5kc1dpdGgiKSxncGU9IiIuY29uY2F0KHR1LCIuY29udGFpbnMiKSxtcGU9IiIuY29uY2F0KHR1LCIuZG9lc05vdENvbnRhaW4iKSxJWGU9IiIuY29uY2F0KHR1LCIuYnlWYWx1ZSIpLHZwZT0iIi5jb25jYXQodHUsIi5ncmVhdGVyVGhhbiIpLEFwZT0iIi5jb25jYXQodHUsIi5n''@;'; + put 'put ''cmVhdGVyVGhhbk9yRXF1YWxUbyIpLHlwZT0iIi5jb25jYXQodHUsIi5sZXNzVGhhbiIpLHdwZT0iIi5jb25jYXQodHUsIi5sZXNzVGhhbk9yRXF1YWxUbyIpLGJwZT0iIi5jb25jYXQodHUsIi5pc0JldHdlZW4iKSxfcGU9IiIuY29uY2F0KHR1LCIuaXNOb3RCZXR3ZWVuIiksQ3BlPSIiLmNv''@;'; + put 'put ''bmNhdCh0dSwiLmFmdGVyIiksa3BlPSIiLmNvbmNhdCh0dSwiLmJlZm9yZSIpLFNwZT0iIi5jb25jYXQodHUsIi50b2RheSIpLE1wZT0iIi5jb25jYXQodHUsIi50b21vcnJvdyIpLEVwZT0iIi5jb25jYXQodHUsIi55ZXN0ZXJkYXkiKSx4cGU9IiIuY29uY2F0KGwzLCJsYWJlbHMuZmlsdGVy''@;'; + put 'put ''QnlDb25kaXRpb24iKSxUcGU9IiIuY29uY2F0KGwzLCJsYWJlbHMuZmlsdGVyQnlWYWx1ZSIpLElwZT0iIi5jb25jYXQobDMsImxhYmVscy5jb25qdW5jdGlvbiIpLHR0ZT0iIi5jb25jYXQobDMsImxhYmVscy5kaXNqdW5jdGlvbiIpLG50ZT0iIi5jb25jYXQobDMsInZhbHVlcy5ibGFua0Nl''@;'; + put 'put ''bGxzIiksRHBlPSIiLmNvbmNhdChsMywiYnV0dG9ucy5zZWxlY3RBbGwiKSxMcGU9IiIuY29uY2F0KGwzLCJidXR0b25zLmNsZWFyIiksT3BlPSIiLmNvbmNhdChsMywiYnV0dG9ucy5vayIpLFJwZT0iIi5jb25jYXQobDMsImJ1dHRvbnMuY2FuY2VsIiksQnBlPSIiLmNvbmNhdChsMywiYnV0''@;'; + put 'put ''dG9ucy5wbGFjZWhvbGRlci5zZWFyY2giKSxQcGU9IiIuY29uY2F0KGwzLCJidXR0b25zLnBsYWNlaG9sZGVyLnZhbHVlIiksRnBlPSIiLmNvbmNhdChsMywiYnV0dG9ucy5wbGFjZWhvbGRlci5zZWNvbmRWYWx1ZSIpO2Z1bmN0aW9uIEJvKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5k''@;'; + put 'put ''ZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1jb25zdCBTa2U9KEJvKElvPXtsYW5ndWFnZUNvZGU6ImVuLVVTIn0sXzRlLCJObyBhdmFpbGFibGUgb3B0aW9ucyIpLEJvKElvLEM0ZSwiSW5zZXJ0''@;'; + put 'put ''IHJvdyBhYm92ZSIpLEJvKElvLGs0ZSwiSW5zZXJ0IHJvdyBiZWxvdyIpLEJvKElvLFM0ZSwiSW5zZXJ0IGNvbHVtbiBsZWZ0IiksQm8oSW8sTTRlLCJJbnNlcnQgY29sdW1uIHJpZ2h0IiksQm8oSW8sRTRlLFsiUmVtb3ZlIHJvdyIsIlJlbW92ZSByb3dzIl0pLEJvKElvLHg0ZSxbIlJlbW92''@;'; + put 'put ''ZSBjb2x1bW4iLCJSZW1vdmUgY29sdW1ucyJdKSxCbyhJbyxUNGUsIlVuZG8iKSxCbyhJbyxJNGUsIlJlZG8iKSxCbyhJbyxENGUsIlJlYWQgb25seSIpLEJvKElvLEw0ZSwiQ2xlYXIgY29sdW1uIiksQm8oSW8sejRlLCJBbGlnbm1lbnQiKSxCbyhJbyxHNGUsIkxlZnQiKSxCbyhJbyxXNGUs''@;'; + put 'put ''IkNlbnRlciIpLEJvKElvLFk0ZSwiUmlnaHQiKSxCbyhJbyxVNGUsIkp1c3RpZnkiKSxCbyhJbyxRNGUsIlRvcCIpLEJvKElvLEo0ZSwiTWlkZGxlIiksQm8oSW8sWDRlLCJCb3R0b20iKSxCbyhJbyxCNGUsIkZyZWV6ZSBjb2x1bW4iKSxCbyhJbyxQNGUsIlVuZnJlZXplIGNvbHVtbiIpLEJv''@;'; + put 'put ''KElvLEs0ZSwiQm9yZGVycyIpLEJvKElvLCQ0ZSwiVG9wIiksQm8oSW8scTRlLCJSaWdodCIpLEJvKElvLGVwZSwiQm90dG9tIiksQm8oSW8sdHBlLCJMZWZ0IiksQm8oSW8sbnBlLCJSZW1vdmUgYm9yZGVyKHMpIiksQm8oSW8sTjRlLCJBZGQgY29tbWVudCIpLEJvKElvLFY0ZSwiRWRpdCBj''@;'; + put 'put ''b21tZW50IiksQm8oSW8sajRlLCJEZWxldGUgY29tbWVudCIpLEJvKElvLFo0ZSwiUmVhZC1vbmx5IGNvbW1lbnQiKSxCbyhJbyxGNGUsIk1lcmdlIGNlbGxzIiksQm8oSW8sSDRlLCJVbm1lcmdlIGNlbGxzIiksQm8oSW8sTzRlLCJDb3B5IiksQm8oSW8sUjRlLCJDdXQiKSxCbyhJbyxycGUs''@;'; + put 'put ''Ikluc2VydCBjaGlsZCByb3ciKSxCbyhJbyxpcGUsIkRldGFjaCBmcm9tIHBhcmVudCIpLEJvKElvLG9wZSxbIkhpZGUgY29sdW1uIiwiSGlkZSBjb2x1bW5zIl0pLEJvKElvLGFwZSxbIlNob3cgY29sdW1uIiwiU2hvdyBjb2x1bW5zIl0pLEJvKElvLGxwZSxbIkhpZGUgcm93IiwiSGlkZSBy''@;'; + put 'put ''b3dzIl0pLEJvKElvLHNwZSxbIlNob3cgcm93IiwiU2hvdyByb3dzIl0pLEJvKElvLGV0ZSwiTm9uZSIpLEJvKElvLHVwZSwiSXMgZW1wdHkiKSxCbyhJbyxjcGUsIklzIG5vdCBlbXB0eSIpLEJvKElvLGZwZSwiSXMgZXF1YWwgdG8iKSxCbyhJbyxocGUsIklzIG5vdCBlcXVhbCB0byIpLEJv''@;'; + put 'put ''KElvLGRwZSwiQmVnaW5zIHdpdGgiKSxCbyhJbyxwcGUsIkVuZHMgd2l0aCIpLEJvKElvLGdwZSwiQ29udGFpbnMiKSxCbyhJbyxtcGUsIkRvZXMgbm90IGNvbnRhaW4iKSxCbyhJbyx2cGUsIkdyZWF0ZXIgdGhhbiIpLEJvKElvLEFwZSwiR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIiksQm8o''@;'; + put 'put ''SW8seXBlLCJMZXNzIHRoYW4iKSxCbyhJbyx3cGUsIkxlc3MgdGhhbiBvciBlcXVhbCB0byIpLEJvKElvLGJwZSwiSXMgYmV0d2VlbiIpLEJvKElvLF9wZSwiSXMgbm90IGJldHdlZW4iKSxCbyhJbyxDcGUsIkFmdGVyIiksQm8oSW8sa3BlLCJCZWZvcmUiKSxCbyhJbyxTcGUsIlRvZGF5Iiks''@;'; + put 'put ''Qm8oSW8sTXBlLCJUb21vcnJvdyIpLEJvKElvLEVwZSwiWWVzdGVyZGF5IiksQm8oSW8sbnRlLCJCbGFuayBjZWxscyIpLEJvKElvLHhwZSwiRmlsdGVyIGJ5IGNvbmRpdGlvbiIpLEJvKElvLFRwZSwiRmlsdGVyIGJ5IHZhbHVlIiksQm8oSW8sSXBlLCJBbmQiKSxCbyhJbyx0dGUsIk9yIiks''@;'; + put 'put ''Qm8oSW8sRHBlLCJTZWxlY3QgYWxsIiksQm8oSW8sTHBlLCJDbGVhciIpLEJvKElvLE9wZSwiT0siKSxCbyhJbyxScGUsIkNhbmNlbCIpLEJvKElvLEJwZSwiU2VhcmNoIiksQm8oSW8sUHBlLCJWYWx1ZSIpLEJvKElvLEZwZSwiU2Vjb25kIHZhbHVlIiksSW8pO3ZhciBIcGU9U2tlLmxhbmd1''@;'; + put 'put ''YWdlQ29kZSxydGU9THAoImxhbmd1YWdlc0RpY3Rpb25hcmllcyIpLExYZT1ydGUucmVnaXN0ZXIsTWtlPXJ0ZS5nZXRJdGVtLE9YZT1ydGUuaGFzSXRlbSxSWGU9cnRlLmdldFZhbHVlcztmdW5jdGlvbiBFa2UoZCxnKXt2YXIgaD1kLHY9ZztyZXR1cm4geGwoZCkmJihoPSh2PWQpLmxhbmd1''@;'; + put 'put ''YWdlQ29kZSksZnVuY3Rpb24gQlhlKGQsZyl7ZCE9PUhwZSYmZnVuY3Rpb24ga1hlKGQsZyl7R2woZyxmdW5jdGlvbihoLHYpe2ExKGRbdl0pJiYoZFt2XT1oKX0pfShnLE1rZShIcGUpKX0oaCx2KSxMWGUoaCxnaCh2KSksZ2godil9ZnVuY3Rpb24geGtlKGQpe3JldHVybiBOcGUoZCk/Z2go''@;'; + put 'put ''TWtlKGQpKTpudWxsfWZ1bmN0aW9uIE5wZShkKXtyZXR1cm4gT1hlKGQpfWZ1bmN0aW9uIFRrZShkLGcsaCl7dmFyIHY9eGtlKGQpO2lmKG51bGw9PT12KXJldHVybiBudWxsO3ZhciB5PXZbZ107aWYoYTEoeSkpcmV0dXJuIG51bGw7dmFyIEM9ZnVuY3Rpb24gRlhlKGQsZyl7dmFyIGg9ZDty''@;'; + put 'put ''ZXR1cm4gVXIoZnVuY3Rpb24gVFhlKCl7cmV0dXJuIEVYZSgpfSgpLGZ1bmN0aW9uKHYpe2g9dihkLGcpfSksaH0oeSxoKTtyZXR1cm4gQXJyYXkuaXNBcnJheShDKT9DWzBdOkN9ZnVuY3Rpb24gSFhlKGQpe3ZhciBnPV9rZShkKTtyZXR1cm4gTnBlKGcpfHwoZz1IcGUsQ2tlKGQpKSxnfUVr''@;'; + put 'put ''ZShTa2UpLEwoNTU2MTUpO3ZhciBpdGU9ImFjdGl2ZS1oZWFkZXIiLG90ZT0iYXJlYSIsaXo9ImNlbGwiLG96PSJoZWFkZXIiLGpwZT0iY3VzdG9tLXNlbGVjdGlvbiI7ZnVuY3Rpb24gWnBlKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFpYZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBk''@;'; + put 'put ''fShkKXx8ZnVuY3Rpb24galhlKGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5''@;'; + put 'put ''PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8''@;'; + put 'put ''ZnVuY3Rpb24gVlhlKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBJa2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5h''@;'; + put 'put ''bWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIElrZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gTlhlKCl7dGhyb3cgbmV3''@;'; + put 'put ''IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBJ''@;'; + put 'put ''a2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBEa2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFi''@;'; + put 'put ''bGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1MKDgzODU3KTt2YXIgV1hlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiB6WGUoZCxnKXtp''@;'; + put 'put ''ZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksaCYmKHRoaXMuZXZlbnRNYW5hZ2VyPWcuZXZlbnRNYW5hZ2VyLHRoaXMuaW5zdGFuY2U9Zyx0aGlzLndvdD1nLHRoaXMuc2V0dGluZ3M9''@;'; + put 'put ''aCx0aGlzLm1vdXNlRG93bj0hMSx0aGlzLm1haW49bnVsbCx0aGlzLnRvcD1udWxsLHRoaXMuYm90dG9tPW51bGwsdGhpcy5zdGFydD1udWxsLHRoaXMuZW5kPW51bGwsdGhpcy50b3BTdHlsZT1udWxsLHRoaXMuYm90dG9tU3R5bGU9bnVsbCx0aGlzLnN0YXJ0U3R5bGU9bnVsbCx0aGlzLmVu''@;'; + put 'put ''ZFN0eWxlPW51bGwsdGhpcy5jb3JuZXJEZWZhdWx0U3R5bGU9e3dpZHRoOiI2cHgiLGhlaWdodDoiNnB4Iixib3JkZXJXaWR0aDoiMXB4Iixib3JkZXJTdHlsZToic29saWQiLGJvcmRlckNvbG9yOiIjRkZGIn0sdGhpcy5jb3JuZXJDZW50ZXJQb2ludE9mZnNldD0tcGFyc2VJbnQodGhpcy5j''@;'; + put 'put ''b3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsMTApLzIsdGhpcy5jb3JuZXI9bnVsbCx0aGlzLmNvcm5lclN0eWxlPW51bGwsdGhpcy5jcmVhdGVCb3JkZXJzKGgpLHRoaXMucmVnaXN0ZXJMaXN0ZW5lcnMoKSl9cmV0dXJuIGZ1bmN0aW9uIEdYZShkLGcsaCl7ZyYmRGtlKGQucHJvdG90eXBlLGcp''@;'; + put 'put ''LGgmJkRrZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJyZWdpc3Rlckxpc3RlbmVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9dGhpcy53b3Qucm9vdERvY3VtZW50LmJvZHk7dGhpcy5ldmVudE1hbmFn''@;'; + put 'put ''ZXIuYWRkRXZlbnRMaXN0ZW5lcih2LCJtb3VzZWRvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIGgub25Nb3VzZURvd24oKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodiwibW91c2V1cCIsZnVuY3Rpb24oKXtyZXR1cm4gaC5vbk1vdXNlVXAoKX0pO2Zvcih2YXIgeT1mdW5j''@;'; + put 'put ''dGlvbih1ZSxfZSl7aC5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihoLm1haW4uY2hpbGROb2Rlc1t1ZV0sIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKE5lKXtyZXR1cm4gaC5vbk1vdXNlRW50ZXIoTmUsaC5tYWluLmNoaWxkTm9kZXNbdWVdKX0pfSxDPTAsST10aGlzLm1haW4uY2hpbGRO''@;'; + put 'put ''b2Rlcy5sZW5ndGg7QzxJO0MrKyl5KEMpfX0se2tleToib25Nb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tb3VzZURvd249ITB9fSx7a2V5OiJvbk1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tb3VzZURvd249ITF9fSx7a2V5OiJvbk1vdXNlRW50ZXIiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKGgsdil7aWYodGhpcy5tb3VzZURvd24mJnRoaXMud290LmdldFNldHRpbmcoImhpZGVCb3JkZXJPbk1vdXNlRG93bk92ZXIiKSl7aC5wcmV2ZW50RGVmYXVsdCgpLF84KGgpO3ZhciB5PXRoaXMsQz10aGlzLndvdC5yb290RG9jdW1lbnQuYm9keSxJPXYuZ2V0Qm91bmRpbmdDbGll''@;'; + put 'put ''bnRSZWN0KCk7di5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlbW92ZSIsZnVuY3Rpb24gdWUoX2UpeyhmdW5jdGlvbiBqKF9lKXtpZihfZS5jbGllbnRZPE1hdGguZmxvb3IoSS50b3ApfHxfZS5jbGllbnRZPk1hdGguY2Vp''@;'; + put 'put ''bChJLnRvcCtJLmhlaWdodCl8fF9lLmNsaWVudFg8TWF0aC5mbG9vcihJLmxlZnQpfHxfZS5jbGllbnRYPk1hdGguY2VpbChJLmxlZnQrSS53aWR0aCkpcmV0dXJuITB9KShfZSkmJih5LmV2ZW50TWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKEMsIm1vdXNlbW92ZSIsdWUpLHYuc3R5bGUu''@;'; + put 'put ''ZGlzcGxheT0iYmxvY2siKX0pfX19LHtrZXk6ImNyZWF0ZUJvcmRlcnMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMud290LnJvb3REb2N1bWVudDt0aGlzLm1haW49di5jcmVhdGVFbGVtZW50KCJkaXYiKTt2YXIgeT1bInRvcCIsInN0YXJ0IiwiYm90dG9tIiwiZW5kIiwiY29ybmVy''@;'; + put 'put ''Il0sQz10aGlzLm1haW4uc3R5bGU7Qy5wb3NpdGlvbj0iYWJzb2x1dGUiLEMudG9wPTAsQy5sZWZ0PTA7Zm9yKHZhciBJPTA7STw1O0krKyl7dmFyIGo9eVtJXSx1ZT12LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3VlLmNsYXNzTmFtZT0id3RCb3JkZXIgIi5jb25jYXQodGhpcy5zZXR0aW5ncy5j''@;'; + put 'put ''bGFzc05hbWV8fCIiKSx0aGlzLnNldHRpbmdzW2pdJiZ0aGlzLnNldHRpbmdzW2pdLmhpZGUmJih1ZS5jbGFzc05hbWUrPSIgaGlkZGVuIiksKEM9dWUuc3R5bGUpLmJhY2tncm91bmRDb2xvcj10aGlzLnNldHRpbmdzW2pdJiZ0aGlzLnNldHRpbmdzW2pdLmNvbG9yP3RoaXMuc2V0dGluZ3Nb''@;'; + put 'put ''al0uY29sb3I6aC5ib3JkZXIuY29sb3IsQy5oZWlnaHQ9IiIuY29uY2F0KHRoaXMuc2V0dGluZ3Nbal0mJnRoaXMuc2V0dGluZ3Nbal0ud2lkdGg/dGhpcy5zZXR0aW5nc1tqXS53aWR0aDpoLmJvcmRlci53aWR0aCwicHgiKSxDLndpZHRoPSIiLmNvbmNhdCh0aGlzLnNldHRpbmdzW2pdJiZ0''@;'; + put 'put ''aGlzLnNldHRpbmdzW2pdLndpZHRoP3RoaXMuc2V0dGluZ3Nbal0ud2lkdGg6aC5ib3JkZXIud2lkdGgsInB4IiksdGhpcy5tYWluLmFwcGVuZENoaWxkKHVlKX10aGlzLnRvcD10aGlzLm1haW4uY2hpbGROb2Rlc1swXSx0aGlzLnN0YXJ0PXRoaXMubWFpbi5jaGlsZE5vZGVzWzFdLHRoaXMu''@;'; + put 'put ''Ym90dG9tPXRoaXMubWFpbi5jaGlsZE5vZGVzWzJdLHRoaXMuZW5kPXRoaXMubWFpbi5jaGlsZE5vZGVzWzNdLHRoaXMudG9wU3R5bGU9dGhpcy50b3Auc3R5bGUsdGhpcy5zdGFydFN0eWxlPXRoaXMuc3RhcnQuc3R5bGUsdGhpcy5ib3R0b21TdHlsZT10aGlzLmJvdHRvbS5zdHlsZSx0aGlz''@;'; + put 'put ''LmVuZFN0eWxlPXRoaXMuZW5kLnN0eWxlLHRoaXMuY29ybmVyPXRoaXMubWFpbi5jaGlsZE5vZGVzWzRdLHRoaXMuY29ybmVyLmNsYXNzTmFtZSs9IiBjb3JuZXIiLHRoaXMuY29ybmVyU3R5bGU9dGhpcy5jb3JuZXIuc3R5bGUsdGhpcy5jb3JuZXJTdHlsZS53aWR0aD10aGlzLmNvcm5lckRl''@;'; + put 'put ''ZmF1bHRTdHlsZS53aWR0aCx0aGlzLmNvcm5lclN0eWxlLmhlaWdodD10aGlzLmNvcm5lckRlZmF1bHRTdHlsZS5oZWlnaHQsdGhpcy5jb3JuZXJTdHlsZS5ib3JkZXI9W3RoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlcldpZHRoLHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlclN0''@;'; + put 'put ''eWxlLHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlckNvbG9yXS5qb2luKCIgIiksYjgoKSYmdGhpcy5jcmVhdGVNdWx0aXBsZVNlbGVjdG9ySGFuZGxlcygpLHRoaXMuZGlzYXBwZWFyKCk7dmFyIF9lPXRoaXMud290Lnd0VGFibGUsQmU9X2UuYm9yZGVyc0hvbGRlcjtCZXx8KChCZT12''@;'; + put 'put ''LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5jbGFzc05hbWU9Imh0Qm9yZGVycyIsX2UuYm9yZGVyc0hvbGRlcj1CZSxfZS5zcHJlYWRlci5hcHBlbmRDaGlsZChCZSkpLEJlLmFwcGVuZENoaWxkKHRoaXMubWFpbil9fSx7a2V5OiJjcmVhdGVNdWx0aXBsZVNlbGVjdG9ySGFuZGxlcyIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9dGhpcy53b3Qucm9vdERvY3VtZW50O3RoaXMuc2VsZWN0aW9uSGFuZGxlcz17dG9wOnYuY3JlYXRlRWxlbWVudCgiRElWIiksdG9wSGl0QXJlYTp2LmNyZWF0ZUVsZW1lbnQoIkRJViIpLGJvdHRvbTp2LmNyZWF0ZUVsZW1lbnQoIkRJViIpLGJvdHRv''@;'; + put 'put ''bUhpdEFyZWE6di5jcmVhdGVFbGVtZW50KCJESVYiKX0sdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnRvcC5jbGFzc05hbWU9InRvcFNlbGVjdGlvbkhhbmRsZSB0b3BMZWZ0U2VsZWN0aW9uSGFuZGxlIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMudG9wSGl0QXJlYS5jbGFzc05hbWU9InRvcFNlbGVj''@;'; + put 'put ''dGlvbkhhbmRsZS1IaXRBcmVhIHRvcExlZnRTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJvdHRvbS5jbGFzc05hbWU9ImJvdHRvbVNlbGVjdGlvbkhhbmRsZSBib3R0b21SaWdodFNlbGVjdGlvbkhhbmRsZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJv''@;'; + put 'put ''dHRvbUhpdEFyZWEuY2xhc3NOYW1lPSJib3R0b21TZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSBib3R0b21SaWdodFNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzPXt0b3A6dGhpcy5zZWxlY3Rpb25IYW5kbGVzLnRvcC5zdHlsZSx0b3BIaXRBcmVh''@;'; + put 'put ''OnRoaXMuc2VsZWN0aW9uSGFuZGxlcy50b3BIaXRBcmVhLnN0eWxlLGJvdHRvbTp0aGlzLnNlbGVjdGlvbkhhbmRsZXMuYm90dG9tLnN0eWxlLGJvdHRvbUhpdEFyZWE6dGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJvdHRvbUhpdEFyZWEuc3R5bGV9LEdsKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGhl''@;'; + put 'put ''aWdodDoiIi5jb25jYXQoNDAsInB4Iiksd2lkdGg6IiIuY29uY2F0KDQwLCJweCIpLCJib3JkZXItcmFkaXVzIjoiIi5jb25jYXQocGFyc2VJbnQoNDAvMS41LDEwKSwicHgiKX0sZnVuY3Rpb24odWUsX2Upe2guc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJlYVtfZV09dWUs''@;'; + put 'put ''aC5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhW19lXT11ZX0pLEdsKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGhlaWdodDoiIi5jb25jYXQoMTAsInB4Iiksd2lkdGg6IiIuY29uY2F0KDEwLCJweCIpLCJib3JkZXItcmFkaXVzIjoiIi5jb25jYXQocGFyc2VJbnQoMTAvMS41LDEw''@;'; + put 'put ''KSwicHgiKSxiYWNrZ3JvdW5kOiIjRjVGNUZGIixib3JkZXI6IjFweCBzb2xpZCAjNDI4NWM4In0sZnVuY3Rpb24odWUsX2Upe2guc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tW19lXT11ZSxoLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcFtfZV09dWV9KSx0aGlzLm1haW4uYXBw''@;'; + put 'put ''ZW5kQ2hpbGQodGhpcy5zZWxlY3Rpb25IYW5kbGVzLnRvcCksdGhpcy5tYWluLmFwcGVuZENoaWxkKHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5ib3R0b20pLHRoaXMubWFpbi5hcHBlbmRDaGlsZCh0aGlzLnNlbGVjdGlvbkhhbmRsZXMudG9wSGl0QXJlYSksdGhpcy5tYWluLmFwcGVuZENoaWxk''@;'; + put 'put ''KHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5ib3R0b21IaXRBcmVhKX19LHtrZXk6ImlzUGFydFJhbmdlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMud290LnNlbGVjdGlvbnMuY3JlYXRlT3JHZXRBcmVhKCk7cmV0dXJuISgheS5jZWxsUmFuZ2V8fGg9PT15LmNlbGxSYW5nZS50by5y''@;'; + put 'put ''b3cmJnY9PT15LmNlbGxSYW5nZS50by5jb2wpfX0se2tleToidXBkYXRlTXVsdGlwbGVTZWxlY3Rpb25IYW5kbGVzUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSxqKXt2YXIgX2U9dGhpcy53b3Qud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJydGxNb2RlIik/InJpZ2h0IjoibGVm''@;'; + put 'put ''dCIsQmU9cGFyc2VJbnQodGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3Aud2lkdGgsMTApLE5lPXBhcnNlSW50KHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMudG9wSGl0QXJlYS53aWR0aCwxMCk7dGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3AudG9wPSIiLmNvbmNh''@;'; + put 'put ''dChwYXJzZUludCh5LUJlLTEsMTApLCJweCIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMudG9wW19lXT0iIi5jb25jYXQocGFyc2VJbnQoQy1CZS0xLDEwKSwicHgiKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcEhpdEFyZWEudG9wPSIiLmNvbmNhdChwYXJzZUludCh5''@;'; + put 'put ''LU5lLzQqMywxMCksInB4IiksdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhW19lXT0iIi5jb25jYXQocGFyc2VJbnQoQy1OZS80KjMsMTApLCJweCIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tLnRvcD0iIi5jb25jYXQocGFyc2VJbnQoeStqLDEw''@;'; + put 'put ''KSwicHgiKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLmJvdHRvbVtfZV09IiIuY29uY2F0KHBhcnNlSW50KEMrSSwxMCksInB4IiksdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b21IaXRBcmVhLnRvcD0iIi5jb25jYXQocGFyc2VJbnQoeStqLU5lLzQsMTApLCJweCIp''@;'; + put 'put ''LHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJlYVtfZV09IiIuY29uY2F0KHBhcnNlSW50KEMrSS1OZS80LDEwKSwicHgiKSx0aGlzLnNldHRpbmdzLmJvcmRlci5jb3JuZXJWaXNpYmxlJiZ0aGlzLnNldHRpbmdzLmJvcmRlci5jb3JuZXJWaXNpYmxlKCk/KHRoaXMu''@;'; + put 'put ''c2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMudG9wLmRpc3BsYXk9ImJsb2NrIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcEhpdEFyZWEuZGlzcGxheT0iYmxvY2siLHRoaXMuaXNQYXJ0UmFuZ2UoaCx2KT8odGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b20uZGlzcGxh''@;'; + put 'put ''eT0ibm9uZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b21IaXRBcmVhLmRpc3BsYXk9Im5vbmUiKToodGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b20uZGlzcGxheT0iYmxvY2siLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJlYS5k''@;'; + put 'put ''aXNwbGF5PSJibG9jayIpKToodGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3AuZGlzcGxheT0ibm9uZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b20uZGlzcGxheT0ibm9uZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhLmRpc3BsYXk9''@;'; + put 'put ''Im5vbmUiLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJlYS5kaXNwbGF5PSJub25lIiksaD09PXRoaXMud290Lnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzVG9wIil8fHY9PT10aGlzLndvdC53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkQ29sdW1u''@;'; + put 'put ''c1N0YXJ0Iik/KHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMudG9wLnpJbmRleD0iOTk5OSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhLnpJbmRleD0iOTk5OSIpOih0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcC56SW5kZXg9IiIsdGhpcy5zZWxl''@;'; + put 'put ''Y3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhLnpJbmRleD0iIil9fSx7a2V5OiJhcHBlYXIiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKCF0aGlzLmRpc2FibGVkKXtmb3IodmFyIGosdWUsX2UsQmUsTmUsS2Usdj10aGlzLndvdCx5PXYud3RUYWJsZSxDPXYucm9vdERvY3VtZW50LEk9di5y''@;'; + put 'put ''b290V2luZG93LGR0PXkuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKSxPdD0wO090PGR0O090Kz0xKXt2YXIgJHQ9eS5yb3dGaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShPdCk7aWYoJHQ+PWhbMF0mJiR0PD1oWzJdKXtqPSR0LE5lPWhbMF07YnJlYWt9fWZvcih2YXIgZm49ZHQtMTtmbj49MDtmbi09''@;'; + put 'put ''MSl7dmFyIExuPXkucm93RmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UoZm4pO2lmKExuPj1oWzBdJiZMbjw9aFsyXSl7dWU9TG47YnJlYWt9fWZvcih2YXIgaXI9eS5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpLG1yPTA7bXI8aXI7bXIrPTEpe3ZhciBTcj15LmNvbHVtbkZpbHRlci5yZW5kZXJl''@;'; + put 'put ''ZFRvU291cmNlKG1yKTtpZihTcj49aFsxXSYmU3I8PWhbM10pe19lPVNyLEtlPWhbMV07YnJlYWt9fWZvcih2YXIgd3I9aXItMTt3cj49MDt3ci09MSl7dmFyIFFyPXkuY29sdW1uRmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2Uod3IpO2lmKFFyPj1oWzFdJiZRcjw9aFszXSl7QmU9UXI7YnJlYWt9''@;'; + put 'put ''fWlmKHZvaWQgMD09PWp8fHZvaWQgMD09PV9lKXJldHVybiB2b2lkIHRoaXMuZGlzYXBwZWFyKCk7dmFyIHlpPXkuZ2V0Q2VsbCh0aGlzLndvdC5jcmVhdGVDZWxsQ29vcmRzKGosX2UpKSxLaT1qIT09dWV8fF9lIT09QmUsU289S2k/eS5nZXRDZWxsKHRoaXMud290LmNyZWF0ZUNlbGxDb29y''@;'; + put 'put ''ZHModWUsQmUpKTp5aSxQbz1qdSh5aSksU2E9S2k/anUoU28pOlBvLEphPWp1KHkuVEFCTEUpLGxhPUUyKHkuVEFCTEUpLGFsPVBvLnRvcCxMcz1Qby5sZWZ0LFAwPXRoaXMud290Lnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicnRsTW9kZSIpLHJvPTAsZm89MDtpZihQMCl7dmFyIElhPUUyKHlp''@;'; + put 'put ''KTtmbz1McytJYS1TYS5sZWZ0LHJvPUkuaW5uZXJXaWR0aC1Mcy1JYS0oSS5pbm5lcldpZHRoLUphLmxlZnQtbGEpLTF9ZWxzZSBmbz1TYS5sZWZ0K0UyKFNvKS1Mcyxybz1Mcy1KYS5sZWZ0LTE7aWYodGhpcy5pc0VudGlyZUNvbHVtblNlbGVjdGVkKGosdWUpKXt2YXIgRm49dGhpcy5nZXRE''@;'; + put 'put ''aW1lbnNpb25zRnJvbUhlYWRlcigiY29sdW1ucyIsX2UsQmUsTmUsSmEpLFpuPW51bGw7aWYoRm4pe3ZhciBfcj1acGUoRm4sMyk7Wm49X3JbMF0scm89X3JbMV0sZm89X3JbMl19Wm4mJih5aT1abil9dmFyIFhyPWFsLUphLnRvcC0xLGNpPVNhLnRvcCtEMShTbyktYWw7aWYodGhpcy5pc0Vu''@;'; + put 'put ''dGlyZVJvd1NlbGVjdGVkKF9lLEJlKSl7dmFyIGMwPXRoaXMuZ2V0RGltZW5zaW9uc0Zyb21IZWFkZXIoInJvd3MiLGosdWUsS2UsSmEpLFhpPW51bGw7aWYoYzApe3ZhciBFMD1acGUoYzAsMyk7WGk9RTBbMF0sWHI9RTBbMV0sY2k9RTBbMl19WGkmJih5aT1YaSl9dmFyIHowPWt3KHlpLEkp''@;'; + put 'put ''O3BhcnNlSW50KHowLmJvcmRlclRvcFdpZHRoLDEwKT4wJiYoWHIrPTEsY2k9Y2k+MD9jaS0xOjApLHBhcnNlSW50KHowW1AwPyJib3JkZXJSaWdodFdpZHRoIjoiYm9yZGVyTGVmdFdpZHRoIl0sMTApPjAmJihybys9MSxmbz1mbz4wP2ZvLTE6MCk7dmFyIGtvPVAwPyJyaWdodCI6ImxlZnQi''@;'; + put 'put ''O3RoaXMudG9wU3R5bGUudG9wPSIiLmNvbmNhdChYciwicHgiKSx0aGlzLnRvcFN0eWxlW2tvXT0iIi5jb25jYXQocm8sInB4IiksdGhpcy50b3BTdHlsZS53aWR0aD0iIi5jb25jYXQoZm8sInB4IiksdGhpcy50b3BTdHlsZS5kaXNwbGF5PSJibG9jayIsdGhpcy5zdGFydFN0eWxlLnRvcD0i''@;'; + put 'put ''Ii5jb25jYXQoWHIsInB4IiksdGhpcy5zdGFydFN0eWxlW2tvXT0iIi5jb25jYXQocm8sInB4IiksdGhpcy5zdGFydFN0eWxlLmhlaWdodD0iIi5jb25jYXQoY2ksInB4IiksdGhpcy5zdGFydFN0eWxlLmRpc3BsYXk9ImJsb2NrIjt2YXIgd289TWF0aC5mbG9vcih0aGlzLnNldHRpbmdzLmJv''@;'; + put 'put ''cmRlci53aWR0aC8yKTt0aGlzLmJvdHRvbVN0eWxlLnRvcD0iIi5jb25jYXQoWHIrY2ktd28sInB4IiksdGhpcy5ib3R0b21TdHlsZVtrb109IiIuY29uY2F0KHJvLCJweCIpLHRoaXMuYm90dG9tU3R5bGUud2lkdGg9IiIuY29uY2F0KGZvLCJweCIpLHRoaXMuYm90dG9tU3R5bGUuZGlzcGxh''@;'; + put 'put ''eT0iYmxvY2siLHRoaXMuZW5kU3R5bGUudG9wPSIiLmNvbmNhdChYciwicHgiKSx0aGlzLmVuZFN0eWxlW2tvXT0iIi5jb25jYXQocm8rZm8td28sInB4IiksdGhpcy5lbmRTdHlsZS5oZWlnaHQ9IiIuY29uY2F0KGNpKzEsInB4IiksdGhpcy5lbmRTdHlsZS5kaXNwbGF5PSJibG9jayI7dmFy''@;'; + put 'put ''IFdhPXRoaXMuc2V0dGluZ3MuYm9yZGVyLmNvcm5lclZpc2libGU7V2E9ImZ1bmN0aW9uIj09dHlwZW9mIFdhP1dhKHRoaXMuc2V0dGluZ3MubGF5ZXJMZXZlbCk6V2E7dmFyIGUyPXRoaXMud290LmdldFNldHRpbmcoIm9uTW9kaWZ5R2V0Q2VsbENvb3JkcyIsdWUsQmUpLEZhPXVlLHQyPUJl''@;'; + put 'put ''O2lmKGUyJiZBcnJheS5pc0FycmF5KGUyKSl7dmFyIE8xPVpwZShlMiw0KTtGYT1PMVsyXSx0Mj1PMVszXX1pZihiOCgpfHwhV2F8fHRoaXMuaXNQYXJ0UmFuZ2UoRmEsdDIpKXRoaXMuY29ybmVyU3R5bGUuZGlzcGxheT0ibm9uZSI7ZWxzZXt0aGlzLmNvcm5lclN0eWxlLnRvcD0iIi5jb25j''@;'; + put 'put ''YXQoWHIrY2krdGhpcy5jb3JuZXJDZW50ZXJQb2ludE9mZnNldC0xLCJweCIpLHRoaXMuY29ybmVyU3R5bGVba29dPSIiLmNvbmNhdChybytmbyt0aGlzLmNvcm5lckNlbnRlclBvaW50T2Zmc2V0LTEsInB4IiksdGhpcy5jb3JuZXJTdHlsZS5ib3JkZXJSaWdodFdpZHRoPXRoaXMuY29ybmVy''@;'; + put 'put ''RGVmYXVsdFN0eWxlLmJvcmRlcldpZHRoLHRoaXMuY29ybmVyU3R5bGUud2lkdGg9dGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsdGhpcy5jb3JuZXJTdHlsZS5kaXNwbGF5PSJub25lIjt2YXIgUjE9ck8oeS5UQUJMRSksenU9UjE9PT1JO2lmKHp1JiYoUjE9Qy5kb2N1bWVudEVsZW1l''@;'; + put 'put ''bnQpLEJlPT09dGhpcy53b3QuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIiktMSl7dmFyIFBjPXp1P1NvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ6U28ub2Zmc2V0TGVmdDsoUDA/UGMtcGFyc2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsMTApLzI8MDpQYytFMihT''@;'; + put 'put ''bykrcGFyc2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsMTApLzI+PUZaKFIxKSkmJih0aGlzLmNvcm5lclN0eWxlW2tvXT0iIi5jb25jYXQoTWF0aC5mbG9vcihybytmbyt0aGlzLmNvcm5lckNlbnRlclBvaW50T2Zmc2V0LXBhcnNlSW50KHRoaXMuY29ybmVyRGVmYXVsdFN0''@;'; + put 'put ''eWxlLndpZHRoLDEwKS8yKSwicHgiKSx0aGlzLmNvcm5lclN0eWxlW1AwPyJib3JkZXJMZWZ0V2lkdGgiOiJib3JkZXJSaWdodFdpZHRoIl09MCl9dWU9PT10aGlzLndvdC5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKS0xJiYoenU/U28uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wOlNvLm9m''@;'; + put 'put ''ZnNldFRvcCkrRDEoU28pK3BhcnNlSW50KHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmhlaWdodCwxMCkvMj49TTkoUjEpJiYodGhpcy5jb3JuZXJTdHlsZS50b3A9IiIuY29uY2F0KE1hdGguZmxvb3IoWHIrY2krdGhpcy5jb3JuZXJDZW50ZXJQb2ludE9mZnNldC1wYXJzZUludCh0aGlzLmNv''@;'; + put 'put ''cm5lckRlZmF1bHRTdHlsZS5oZWlnaHQsMTApLzIpLCJweCIpLHRoaXMuY29ybmVyU3R5bGUuYm9yZGVyQm90dG9tV2lkdGg9MCksdGhpcy5jb3JuZXJTdHlsZS5kaXNwbGF5PSJibG9jayJ9YjgoKSYmdGhpcy51cGRhdGVNdWx0aXBsZVNlbGVjdGlvbkhhbmRsZXNQb3NpdGlvbih1ZSxCZSxY''@;'; + put 'put ''cixybyxmbyxjaSl9fX0se2tleToiaXNFbnRpcmVDb2x1bW5TZWxlY3RlZCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gaD09PXRoaXMud290Lnd0VGFibGUuZ2V0Rmlyc3RSZW5kZXJlZFJvdygpJiZ2PT09dGhpcy53b3Qud3RUYWJsZS5nZXRMYXN0UmVuZGVyZWRSb3coKX19LHtrZXk6''@;'; + put 'put ''ImlzRW50aXJlUm93U2VsZWN0ZWQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIGg9PT10aGlzLndvdC53dFRhYmxlLmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKSYmdj09PXRoaXMud290Lnd0VGFibGUuZ2V0TGFzdFJlbmRlcmVkQ29sdW1uKCl9fSx7a2V5OiJnZXREaW1lbnNpb25zRnJv''@;'; + put 'put ''bUhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyxJKXt2YXIgaj10aGlzLndvdC53dFRhYmxlLHVlPWoud3RSb290RWxlbWVudC5wYXJlbnROb2RlLF9lPW51bGwsQmU9bnVsbCxOZT1udWxsLEtlPW51bGwsZHQ9bnVsbCxPdD1udWxsLCR0PW51bGwsZm49bnVsbDtzd2l0Y2goaCl7Y2Fz''@;'; + put 'put ''ZSJyb3dzIjpfZT1mdW5jdGlvbigpe3JldHVybiBqLmdldFJvd0hlYWRlci5hcHBseShqLGFyZ3VtZW50cyl9LEJlPWZ1bmN0aW9uKCl7cmV0dXJuIEQxLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfSxOZT0iaHRfX3NlbGVjdGlvbi0tcm93cyIsT3Q9InRvcCI7YnJlYWs7Y2FzZSJjb2x1bW5z''@;'; + put 'put ''IjpfZT1mdW5jdGlvbigpe3JldHVybiBqLmdldENvbHVtbkhlYWRlci5hcHBseShqLGFyZ3VtZW50cyl9LEJlPWZ1bmN0aW9uKCl7cmV0dXJuIEUyLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfSxOZT0iaHRfX3NlbGVjdGlvbi0tY29sdW1ucyIsT3Q9ImxlZnQifWlmKHVlLmNsYXNzTGlzdC5j''@;'; + put 'put ''b250YWlucyhOZSkpe3ZhciBMbj10aGlzLndvdC5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoO2lmKCR0PV9lKHYsTG4tQyksZm49X2UoeSxMbi1DKSwhJHR8fCFmbilyZXR1cm4hMTt2YXIgaXI9anUoJHQpLG1yPWp1KGZuKTtyZXR1cm4gJHQmJmZuJiYoS2U9aXJbT3RdLUlb''@;'; + put 'put ''T3RdLTEsZHQ9bXJbT3RdK0JlKGZuKS1pcltPdF0pLFskdCxLZSxkdF19cmV0dXJuITF9fSx7a2V5OiJjaGFuZ2VCb3JkZXJTdHlsZSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzW2hdLnN0eWxlLEM9dltoXTshQ3x8Qy5oaWRlP08wKHRoaXNbaF0sImhpZGRlbiIpOih0bCh0aGlz''@;'; + put 'put ''W2hdLCJoaWRkZW4iKSYmcGwodGhpc1toXSwiaGlkZGVuIikseS5iYWNrZ3JvdW5kQ29sb3I9Qy5jb2xvciwoInRvcCI9PT1ofHwiYm90dG9tIj09PWgpJiYoeS5oZWlnaHQ9IiIuY29uY2F0KEMud2lkdGgsInB4IikpLCgic3RhcnQiPT09aHx8ImVuZCI9PT1oKSYmKHkud2lkdGg9IiIuY29u''@;'; + put 'put ''Y2F0KEMud2lkdGgsInB4IikpKX19LHtrZXk6ImNoYW5nZUJvcmRlclRvRGVmYXVsdFN0eWxlIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgeT10aGlzW2hdLnN0eWxlO3kuYmFja2dyb3VuZENvbG9yPSIjMDAwIix5LndpZHRoPSIiLmNvbmNhdCgxLCJweCIpLHkuaGVpZ2h0PSIiLmNvbmNhdCgx''@;'; + put 'put ''LCJweCIpfX0se2tleToidG9nZ2xlSGlkZGVuQ2xhc3MiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dGhpcy5jaGFuZ2VCb3JkZXJUb0RlZmF1bHRTdHlsZShoKSx2P08wKHRoaXNbaF0sImhpZGRlbiIpOnBsKHRoaXNbaF0sImhpZGRlbiIpfX0se2tleToiZGlzYXBwZWFyIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3RoaXMudG9wU3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5ib3R0b21TdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnN0YXJ0U3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5lbmRTdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmNvcm5lclN0eWxlLmRpc3BsYXk9Im5vbmUiLGI4KCkmJih0''@;'; + put 'put ''aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcC5kaXNwbGF5PSJub25lIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLmJvdHRvbS5kaXNwbGF5PSJub25lIil9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZlbnRNYW5hZ2VyLmRlc3Ryb3lXaXRoT3du''@;'; + put 'put ''RXZlbnRzT25seSgpLHRoaXMubWFpbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMubWFpbil9fV0pLGR9KCk7Y29uc3QgWVhlPVdYZTtmdW5jdGlvbiBMa2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7''@;'; + put 'put ''aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiB6cGUoZCl7cmV0dXJuKHpwZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIE9rZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVu''@;'; + put 'put ''dW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBlS2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uICRYZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9m''@;'; + put 'put ''IGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnNldHRpbmdzPWcsdGhpcy5jZWxsUmFuZ2U9aHx8bnVsbCx0aGlzLmluc3RhbmNlQm9yZGVycz17fSx0aGlzLmNsYXNzTmFtZXM9W3RoaXMuc2V0dGluZ3Mu''@;'; + put 'put ''Y2xhc3NOYW1lXSx0aGlzLmNsYXNzTmFtZUdlbmVyYXRvcj10aGlzLmxpbmVhckNsYXNzTmFtZUdlbmVyYXRvcih0aGlzLnNldHRpbmdzLmNsYXNzTmFtZSx0aGlzLnNldHRpbmdzLmxheWVyTGV2ZWwpfXJldHVybiBmdW5jdGlvbiBxWGUoZCxnLGgpe2cmJk9rZShkLnByb3RvdHlwZSxnKSxo''@;'; + put 'put ''JiZPa2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiZ2V0Qm9yZGVyIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5pbnN0YW5jZUJvcmRlcnNbaC5ndWlkXXx8KHRoaXMuaW5zdGFuY2VCb3JkZXJzW2guZ3Vp''@;'; + put 'put ''ZF09bmV3IFlYZShoLHRoaXMuc2V0dGluZ3MpKSx0aGlzLmluc3RhbmNlQm9yZGVyc1toLmd1aWRdfX0se2tleToiaXNFbXB0eSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09PXRoaXMuY2VsbFJhbmdlfX0se2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5p''@;'; + put 'put ''c0VtcHR5KCk/dGhpcy5jZWxsUmFuZ2U9dGhpcy5zZXR0aW5ncy5jcmVhdGVDZWxsUmFuZ2UoaCk6dGhpcy5jZWxsUmFuZ2UuZXhwYW5kKGgpLHRoaXN9fSx7a2V5OiJyZXBsYWNlIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKCF0aGlzLmlzRW1wdHkoKSl7aWYodGhpcy5jZWxsUmFuZ2UuZnJv''@;'; + put 'put ''bS5pc0VxdWFsKGgpKXJldHVybiB0aGlzLmNlbGxSYW5nZS5mcm9tPXYsITA7aWYodGhpcy5jZWxsUmFuZ2UudG8uaXNFcXVhbChoKSlyZXR1cm4gdGhpcy5jZWxsUmFuZ2UudG89diwhMH1yZXR1cm4hMX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNlbGxS''@;'; + put 'put ''YW5nZT1udWxsLHRoaXN9fSx7a2V5OiJnZXRDb3JuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuY2VsbFJhbmdlLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSx2PXRoaXMuY2VsbFJhbmdlLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCk7cmV0dXJuW2gucm93LGguY29sLHYucm93''@;'; + put 'put ''LHYuY29sXX19LHtrZXk6ImFkZENsYXNzQXRDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdJiZhcmd1bWVudHNbNF0saj1oLnd0VGFibGUuZ2V0Q2VsbCh0aGlzLnNldHRpbmdzLmNyZWF0ZUNlbGxD''@;'; + put 'put ''b29yZHModix5KSk7aWYoIm9iamVjdCI9PT16cGUoaikpe3ZhciB1ZT1DO0kmJih1ZT10aGlzLmNsYXNzTmFtZUdlbmVyYXRvcihqKSx0aGlzLmNsYXNzTmFtZXMuaW5jbHVkZXModWUpfHx0aGlzLmNsYXNzTmFtZXMucHVzaCh1ZSkpLE8wKGosdWUpfXJldHVybiB0aGlzfX0se2tleToibGlu''@;'; + put 'put ''ZWFyQ2xhc3NOYW1lR2VuZXJhdG9yIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiBmdW5jdGlvbiB5KEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTotMTtpZigwPT09dnx8MD09PUkpcmV0dXJuIGg7dmFyIGo9ST49MD9J''@;'; + put 'put ''OnYsdWU9aCxfZT0wPT0oai09MSk/aDoiIi5jb25jYXQoaCwiLSIpLmNvbmNhdChqKTtpZih0bChDLF9lKSl7dmFyIEJlPWorMTt1ZT0iIi5jb25jYXQoaCwiLSIpLmNvbmNhdChCZSl9ZWxzZSB1ZT15KEMsaik7cmV0dXJuIHVlfX19LHtrZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKGgpe2lm''@;'; + put 'put ''KHRoaXMuaXNFbXB0eSgpKXRoaXMuc2V0dGluZ3MuYm9yZGVyJiZ0aGlzLmdldEJvcmRlcihoKS5kaXNhcHBlYXIoKTtlbHNle3ZhciB2PWgud3RUYWJsZS5nZXRSZW5kZXJlZFJvd3NDb3VudCgpLHk9aC53dFRhYmxlLmdldFJlbmRlcmVkQ29sdW1uc0NvdW50KCksQz10aGlzLmdldENvcm5l''@;'; + put 'put ''cnMoKSxJPWZ1bmN0aW9uIFVYZShkLGcpe3JldHVybiBmdW5jdGlvbiBLWGUoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIFhYZShkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3Jd''@;'; + put 'put ''fHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxs''@;'; + put 'put ''eXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIEpYZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gTGtlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0''@;'; + put 'put ''cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIp''@;'; + put 'put ''KD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBMa2UoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIFFYZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJs''@;'; + put 'put ''ZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KEMsNCksaj1JWzBdLHVlPUlbMV0sX2U9SVsyXSxCZT1JWzNdLE5lPXRoaXMuc2V0dGluZ3MsS2U9TmUuaGlnaGxpZ2h0SGVhZGVyQ2xhc3NOYW1lLGR0PU5lLmhpZ2hsaWdo''@;'; + put 'put ''dENvbHVtbkNsYXNzTmFtZSxPdD1OZS5oaWdobGlnaHRSb3dDbGFzc05hbWUsJHQ9TmUuaGlnaGxpZ2h0T25seUNsb3Nlc3RIZWFkZXIsZm49TmUuc2VsZWN0aW9uVHlwZSxMbj12b2lkIDA9PT1mbnx8WyJhY3RpdmUtaGVhZGVyIiwiaGVhZGVyIl0uaW5jbHVkZXMoZm4pO2lmKExuJiZudWxs''@;'; + put 'put ''IT09dWUmJm51bGwhPT1CZSlmb3IodmFyIGlyPTAsbXI9MDttcjx5O21yKz0xKXt2YXIgU3I9aC53dFRhYmxlLmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKG1yKTtpZihTcj49dWUmJlNyPD1CZSl7dmFyIHdyPWgud3RUYWJsZS5nZXRDb2x1bW5IZWFkZXJzKFNyKSxRcj13ci5sZW5n''@;'; + put 'put ''dGgtMTskdCYmd3IubGVuZ3RoPjEmJih3cj1bd3JbUXJdXSk7Zm9yKHZhciB5aT0wO3lpPHdyLmxlbmd0aDt5aSs9MSl7dmFyIEtpPVtdLFNvPXdyW3lpXTtLZSYmS2kucHVzaChLZSksZHQmJktpLnB1c2goZHQpO3ZhciBQbz1oLmdldFNldHRpbmcoIm9uQmVmb3JlSGlnaGxpZ2h0aW5nQ29s''@;'; + put 'put ''dW1uSGVhZGVyIixTcix5aT0kdD9Rcjp5aSx7c2VsZWN0aW9uVHlwZTpmbixjb2x1bW5DdXJzb3I6aXIsc2VsZWN0aW9uV2lkdGg6QmUtdWUrMSxjbGFzc05hbWVzOktpfSk7UG8hPT1TciYmKFNvPWgud3RUYWJsZS5nZXRDb2x1bW5IZWFkZXIoUG8seWkpKSxPMChTbyxLaSl9aXIrPTF9fWlm''@;'; + put 'put ''KG51bGwhPT1qJiZudWxsIT09X2UpZm9yKHZhciBTYT0wLEphPTA7SmE8djtKYSs9MSl7dmFyIGxhPWgud3RUYWJsZS5yb3dGaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShKYSk7aWYoTG4mJmxhPj1qJiZsYTw9X2Upe3ZhciBhbD1oLnd0VGFibGUuZ2V0Um93SGVhZGVycyhsYSksTHM9YWwubGVu''@;'; + put 'put ''Z3RoLTE7JHQmJmFsLmxlbmd0aD4xJiYoYWw9W2FsW0xzXV0pO2Zvcih2YXIgUDA9MDtQMDxhbC5sZW5ndGg7UDArPTEpe3ZhciBybz1bXSxmbz1hbFtQMF07S2UmJnJvLnB1c2goS2UpLE90JiZyby5wdXNoKE90KTt2YXIgSWE9aC5nZXRTZXR0aW5nKCJvbkJlZm9yZUhpZ2hsaWdodGluZ1Jv''@;'; + put 'put ''d0hlYWRlciIsbGEsUDA9JHQ/THM6UDAse3NlbGVjdGlvblR5cGU6Zm4scm93Q3Vyc29yOlNhLHNlbGVjdGlvbkhlaWdodDpfZS1qKzEsY2xhc3NOYW1lczpyb30pO0lhIT09bGEmJihmbz1oLnd0VGFibGUuZ2V0Um93SGVhZGVyKElhLFAwKSksTzAoZm8scm8pfVNhKz0xfWlmKG51bGwhPT11''@;'; + put 'put ''ZSYmbnVsbCE9PUJlKWZvcih2YXIgWGw9MDtYbDx5O1hsKz0xKXt2YXIgRm49aC53dFRhYmxlLmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKFhsKTtsYT49aiYmbGE8PV9lJiZGbj49dWUmJkZuPD1CZT90aGlzLnNldHRpbmdzLmNsYXNzTmFtZSYmdGhpcy5hZGRDbGFzc0F0Q29vcmRz''@;'; + put 'put ''KGgsbGEsRm4sdGhpcy5zZXR0aW5ncy5jbGFzc05hbWUsdGhpcy5zZXR0aW5ncy5tYXJrSW50ZXJzZWN0aW9ucyk6bGE+PWomJmxhPD1fZT9PdCYmdGhpcy5hZGRDbGFzc0F0Q29vcmRzKGgsbGEsRm4sT3QpOkZuPj11ZSYmRm48PUJlJiZkdCYmdGhpcy5hZGRDbGFzc0F0Q29vcmRzKGgsbGEs''@;'; + put 'put ''Rm4sZHQpO3ZhciBabj1oLmdldFNldHRpbmcoIm9uQWZ0ZXJEcmF3U2VsZWN0aW9uIixsYSxGbix0aGlzLnNldHRpbmdzLmxheWVyTGV2ZWwpOyJzdHJpbmciPT10eXBlb2YgWm4mJnRoaXMuYWRkQ2xhc3NBdENvb3JkcyhoLGxhLEZuLFpuKX19aC5nZXRTZXR0aW5nKCJvbkJlZm9yZURyYXdC''@;'; + put 'put ''b3JkZXJzIixDLHRoaXMuc2V0dGluZ3MuY2xhc3NOYW1lKSx0aGlzLnNldHRpbmdzLmJvcmRlciYmdGhpcy5nZXRCb3JkZXIoaCkuYXBwZWFyKEMpfX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7T2JqZWN0LnZhbHVlcyh0aGlzLmluc3RhbmNlQm9yZGVycykuZm9yRWFjaChm''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gaC5kZXN0cm95KCl9KX19XSksZH0oKTtmdW5jdGlvbiBHcGUoZCl7cmV0dXJuKEdwZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9u''@;'; + put 'put ''KGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFJrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hd''@;'; + put 'put ''O3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGF0ZSgpe3JldHVybiBhdGU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0''@;'; + put 'put ''JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PWlLZShnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZh''@;'; + put 'put ''bHVlfX0sYXRlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBpS2UoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPWNPKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFdwZShkLGcpe3JldHVybihXcGU9T2JqZWN0LnNl''@;'; + put 'put ''dFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBsS2UoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1HcGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2''@;'; + put 'put ''b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIEJrZShkKX1mdW5jdGlvbiBCa2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMg''@;'; + put 'put ''aGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIGNPKGQpe3JldHVybihjTz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3By''@;'; + put 'put ''b3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBjS2U9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIG9LZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51''@;'; + put 'put ''bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxn''@;'; + put 'put ''JiZXcGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBhS2UoZCl7dmFyIGc9ZnVuY3Rpb24gc0tlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9m''@;'; + put 'put ''IFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9Y08oZCk7aWYoZyl7''@;'; + put 'put ''dmFyIEM9Y08odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGxLZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiBuS2UoZCxnKXtp''@;'; + put 'put ''ZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxmdW5jdGlvbiB1S2UoZCxnLGgpe2cgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29u''@;'; + put 'put ''ZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1ofShCa2UoQz1nLmNhbGwodGhpcyx2LG51bGwpKSwidmlzdWFsQ2VsbFJhbmdlIixudWxsKSxDLnZpc3VhbENlbGxSYW5nZT15fHxudWxsLEMuY29tbWl0KCksQ31yZXR1cm4gZnVuY3Rpb24gcktlKGQsZyxoKXtnJiZSa2UoZC5wcm90''@;'; + put 'put ''b3R5cGUsZyksaCYmUmtlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIG51bGw9PT10aGlzLnZpc3VhbENlbGxSYW5nZT90aGlzLnZpc3VhbENlbGxSYW5nZT10aGlz''@;'; + put 'put ''LnNldHRpbmdzLmNyZWF0ZUNlbGxSYW5nZSh5KTp0aGlzLnZpc3VhbENlbGxSYW5nZS5leHBhbmQoeSksdGhpc319LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZpc3VhbENlbGxSYW5nZT1udWxsLGF0ZShjTyhoLnByb3RvdHlwZSksImNsZWFyIix0aGlzKS5j''@;'; + put 'put ''YWxsKHRoaXMpfX0se2tleToidHJpbVRvVmlzaWJsZUNlbGxzUmFuZ2VPbmx5Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz15LmZyb20sST15LnRvLGo9dGhpcy5nZXROZWFyZXN0Tm90SGlkZGVuQ29vcmRzKEMsMSksdWU9dGhpcy5nZXROZWFyZXN0Tm90SGlkZGVuQ29vcmRzKEksLTEpO2lm''@;'; + put 'put ''KG51bGw9PT1qfHxudWxsPT09dWUpcmV0dXJuIG51bGw7aWYoai5yb3c+dWUucm93fHxqLmNvbD51ZS5jb2wpe2lmKCJoZWFkZXIiIT09dGhpcy5zZXR0aW5ncy50eXBlJiYiYWN0aXZlLWhlYWRlciIhPT10aGlzLnNldHRpbmdzLnR5cGUpcmV0dXJuIG51bGw7aj1DLHVlPUl9cmV0dXJuIHRo''@;'; + put 'put ''aXMuc2V0dGluZ3MuY3JlYXRlQ2VsbFJhbmdlKGosaix1ZSl9fSx7a2V5OiJnZXROZWFyZXN0Tm90SGlkZGVuQ29vcmRzIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpDLGo9dGhpcy5nZXRO''@;'; + put 'put ''ZWFyZXN0Tm90SGlkZGVuSW5kZXgodGhpcy5zZXR0aW5ncy5yb3dJbmRleE1hcHBlcigpLHkucm93LEMpO2lmKG51bGw9PT1qKXJldHVybiBudWxsO3ZhciB1ZT10aGlzLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh0aGlzLnNldHRpbmdzLmNvbHVtbkluZGV4TWFwcGVyKCkseS5jb2wsSSk7''@;'; + put 'put ''cmV0dXJuIG51bGw9PT11ZT9udWxsOnRoaXMuc2V0dGluZ3MuY3JlYXRlQ2VsbENvb3JkcyhqLHVlKX19LHtrZXk6ImdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe2lmKEM8MClyZXR1cm4gQzt2YXIgaj15LmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChD''@;'; + put 'put ''LEkpO3JldHVybiJoZWFkZXIiIT09dGhpcy5zZXR0aW5ncy50eXBlJiYiYWN0aXZlLWhlYWRlciIhPT10aGlzLnNldHRpbmdzLnR5cGV8fG51bGwhPT1qP2o6LTF9fSx7a2V5OiJjb21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYobnVsbD09PXRoaXMudmlzdWFsQ2VsbFJhbmdlKXJldHVybiB0''@;'; + put 'put ''aGlzO3ZhciB5PXRoaXMudHJpbVRvVmlzaWJsZUNlbGxzUmFuZ2VPbmx5KHRoaXMudmlzdWFsQ2VsbFJhbmdlKTtyZXR1cm4gdGhpcy5jZWxsUmFuZ2U9bnVsbD09PXk/bnVsbDp0aGlzLmNyZWF0ZVJlbmRlcmFibGVDZWxsUmFuZ2UoeS5mcm9tLHkudG8pLHRoaXN9fSx7a2V5OiJzeW5jV2l0''@;'; + put 'put ''aCIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9Ik4tUyI9PT15LmdldFZlcnRpY2FsRGlyZWN0aW9uKCk/MTotMSxJPSJXLUUiPT09eS5nZXRIb3Jpem9udGFsRGlyZWN0aW9uKCk/MTotMSxqPXRoaXMuZ2V0TmVhcmVzdE5vdEhpZGRlbkNvb3Jkcyh5LmZyb20uY2xvbmUoKS5ub3JtYWxpemUo''@;'; + put 'put ''KSxDLEkpO2lmKG51bGwhPT1qJiZ5Lm92ZXJsYXBzKGopKXtpZihudWxsPT09dGhpcy5jZWxsUmFuZ2Upe3ZhciB1ZT10aGlzLnNldHRpbmdzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhqKTt0aGlzLmNlbGxSYW5nZT10aGlzLnNldHRpbmdzLmNyZWF0ZUNlbGxSYW5nZSh1ZSl9cmV0dXJu''@;'; + put 'put ''IHkuc2V0SGlnaGxpZ2h0KGopLHRoaXN9cmV0dXJuIHkuc2V0SGlnaGxpZ2h0KHkuZnJvbSksdGhpc319LHtrZXk6ImdldENvcm5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5jZWxsUmFuZ2UsQz15LmZyb20sST15LnRvLGo9bnVsbD09PUMucm93fHxudWxsPT09SS5yb3csdWU9''@;'; + put 'put ''bnVsbD09PUMuY29sfHxudWxsPT09SS5jb2wsX2U9dGhpcy5zZXR0aW5ncy5jcmVhdGVDZWxsQ29vcmRzKGo/bnVsbDpNYXRoLm1pbihDLnJvdyxJLnJvdyksdWU/bnVsbDpNYXRoLm1pbihDLmNvbCxJLmNvbCkpLEJlPXRoaXMuc2V0dGluZ3MuY3JlYXRlQ2VsbENvb3JkcyhqP251bGw6TWF0''@;'; + put 'put ''aC5tYXgoQy5yb3csSS5yb3cpLHVlP251bGw6TWF0aC5tYXgoQy5jb2wsSS5jb2wpKTtyZXR1cm5bX2Uucm93LF9lLmNvbCxCZS5yb3csQmUuY29sXX19LHtrZXk6ImdldFZpc3VhbENvcm5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5zZXR0aW5ncy5yZW5kZXJhYmxlVG9WaXN1''@;'; + put 'put ''YWxDb29yZHModGhpcy5jZWxsUmFuZ2UuZ2V0VG9wU3RhcnRDb3JuZXIoKSksQz10aGlzLnNldHRpbmdzLnJlbmRlcmFibGVUb1Zpc3VhbENvb3Jkcyh0aGlzLmNlbGxSYW5nZS5nZXRCb3R0b21FbmRDb3JuZXIoKSk7cmV0dXJuW3kucm93LHkuY29sLEMucm93LEMuY29sXX19LHtrZXk6ImNy''@;'; + put 'put ''ZWF0ZVJlbmRlcmFibGVDZWxsUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcy5zZXR0aW5ncy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMoeSksaj10aGlzLnNldHRpbmdzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhDKTtyZXR1cm4gdGhpcy5zZXR0aW5ncy5jcmVhdGVD''@;'; + put 'put ''ZWxsUmFuZ2UoSSxJLGopfX1dKSxofShlS2UpO2NvbnN0IGZPPWNLZTt2YXIgZktlPVsiYWN0aXZlSGVhZGVyQ2xhc3NOYW1lIl07ZnVuY3Rpb24gUGtlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93''@;'; + put 'put ''blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gRmtlKGQpe2Zvcih2YXIgZz0xO2c8YXJn''@;'; + put 'put ''dW1lbnRzLmxlbmd0aDtnKyspe3ZhciBoPW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1bWVudHNbZ106e307ZyUyP1BrZShPYmplY3QoaCksITApLmZvckVhY2goZnVuY3Rpb24odil7aEtlKGQsdixoW3ZdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0aWVzKGQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaCkpOlBrZShPYmplY3QoaCkpLmZvckVhY2goZnVuY3Rpb24odil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9ZnVuY3Rp''@;'; + put 'put ''b24gaEtlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgdktlPVsibGF5ZXJMZXZlbCIsImFyZWFDb3JuZXJWaXNpYmxlIl07ZnVuY3Rp''@;'; + put 'put ''b24gSGtlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp''@;'; + put 'put ''cHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gTmtlKGQpe2Zvcih2YXIgZz0xO2c8YXJndW1lbnRzLmxlbmd0aDtnKyspe3ZhciBoPW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1bWVudHNbZ106e307ZyUyP0hrZShPYmplY3QoaCksITAp''@;'; + put 'put ''LmZvckVhY2goZnVuY3Rpb24odil7QUtlKGQsdixoW3ZdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaCkpOkhrZShPYmplY3QoaCkpLmZvckVhY2goZnVuY3Rpb24o''@;'; + put 'put ''dil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9ZnVuY3Rpb24gQUtlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25m''@;'; + put 'put ''aWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgQ0tlPVsiY2VsbENvcm5lclZpc2libGUiXTtmdW5jdGlvbiBWa2UoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlT''@;'; + put 'put ''eW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBqa2UoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVu''@;'; + put 'put ''Z3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/VmtlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtrS2UoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMo''@;'; + put 'put ''ZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6VmtlKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiBrS2UoZCxn''@;'; + put 'put ''LGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBUS2U9WyJib3JkZXIiLCJ2aXN1YWxDZWxsUmFuZ2UiXTtmdW5jdGlvbiBaa2UoZCxnKXt2YXIg''@;'; + put 'put ''aD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVy''@;'; + put 'put ''YWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBZcGUoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/WmtlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlv''@;'; + put 'put ''bih2KXtJS2UoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6WmtlKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiBJS2UoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0''@;'; + put 'put ''YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIHprZShkLGcpe3ZhciBoPU9iamVjdC5rZXlzKGQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIE9i''@;'; + put 'put ''amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCx5KS5lbnVtZXJhYmxlfSkpLGgucHVzaC5hcHBseShoLHYpfXJldHVybiBofWZ1bmN0aW9uIEdrZShkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2dd''@;'; + put 'put ''Ont9O2clMj96a2UoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe0JLZShkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTp6a2UoT2Jq''@;'; + put 'put ''ZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIEJLZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2''@;'; + put 'put ''YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9TCgzMzQ3MCk7dmFyIEhLZT1bImhlYWRlckNsYXNzTmFtZSIsInJvd0NsYXNzTmFtZSIsImNvbHVtbkNsYXNzTmFtZSJdO2Z1bmN0aW9uIFdrZShkLGcpe3ZhciBoPU9iamVjdC5rZXlz''@;'; + put 'put ''KGQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCx5KS5lbnVtZXJhYmxlfSkpLGgucHVz''@;'; + put 'put ''aC5hcHBseShoLHYpfXJldHVybiBofWZ1bmN0aW9uIFlrZShkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9Xa2UoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe05LZShkLHYs''@;'; + put 'put ''aFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpXa2UoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYs''@;'; + put 'put ''T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIE5LZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtn''@;'; + put 'put ''XT1oLGR9ZnVuY3Rpb24gVWtlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blBy''@;'; + put 'put ''b3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gV0tlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3Jp''@;'; + put 'put ''dGFibGU6ITB9KTpkW2ddPWgsZH12YXIgUWtlPUxwKCJoaWdobGlnaHQvdHlwZXMiKSxoTz1Ra2UucmVnaXN0ZXIsWUtlPVFrZS5nZXRJdGVtO2Z1bmN0aW9uIGRPKGQsZyl7cmV0dXJuIFlLZShkKShmdW5jdGlvbiBHS2UoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7''@;'; + put 'put ''dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/VWtlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtXS2UoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3Qu''@;'; + put 'put ''Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6VWtlKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH0oe3R5cGU6ZH0sZykpfWZ1bmN0aW9uIEl3''@;'; + put 'put ''KGQpe3JldHVybiBmdW5jdGlvbiBYS2UoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gVXBlKGQpfShkKXx8ZnVuY3Rpb24gSktlKGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1''@;'; + put 'put ''cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIFFLZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gVXBlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3Rv''@;'; + put 'put ''ciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBVcGUoZCxnKX19KGQpfHxmdW5j''@;'; + put 'put ''dGlvbiBVS2UoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4i''@;'; + put 'put ''KX0oKX1mdW5jdGlvbiBVcGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBKa2UoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0''@;'; + put 'put ''T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1''@;'; + put 'put ''cm4gaH1mdW5jdGlvbiBheihkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9Ka2UoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe0tLZShkLHYsaFt2XSl9KTpPYmplY3QuZ2V0''@;'; + put 'put ''T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpKa2UoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3Bl''@;'; + put 'put ''cnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIEtLZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9ZnVuY3Rpb24gWGtl''@;'; + put 'put ''KGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19aE8oaXRlLGZ1''@;'; + put 'put ''bmN0aW9uIGdLZShkKXt2YXIgZz1kLmFjdGl2ZUhlYWRlckNsYXNzTmFtZSxoPWZ1bmN0aW9uIGRLZShkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHYseSxoPWZ1bmN0aW9uIHBLZShkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHksQyxoPXt9LHY9T2JqZWN0LmtleXMoZCk7Zm9y''@;'; + put 'put ''KEM9MDtDPHYubGVuZ3RoO0MrKykhKGcuaW5kZXhPZih5PXZbQ10pPj0wKSYmKGhbeV09ZFt5XSk7cmV0dXJuIGh9KGQsZyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtmb3IoeT0wO3k8Qy5sZW5ndGg7eSsr''@;'; + put 'put ''KSEoZy5pbmRleE9mKHY9Q1t5XSk+PTApJiYoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChkLHYpfHwoaFt2XT1kW3ZdKSl9cmV0dXJuIGh9KGQsZktlKTtyZXR1cm4gbmV3IGZPKEZrZShGa2Uoe2hpZ2hsaWdodEhlYWRlckNsYXNzTmFtZTpnfSxoKSx7fSx7''@;'; + put 'put ''c2VsZWN0aW9uVHlwZTppdGV9KSl9KSxoTyhvdGUsZnVuY3Rpb24gYktlKGQpe3ZhciBnPWQubGF5ZXJMZXZlbCxoPWQuYXJlYUNvcm5lclZpc2libGUsdj1mdW5jdGlvbiB5S2UoZCxnKXtpZihudWxsPT1kKXJldHVybnt9O3ZhciB2LHksaD1mdW5jdGlvbiB3S2UoZCxnKXtpZihudWxsPT1k''@;'; + put 'put ''KXJldHVybnt9O3ZhciB5LEMsaD17fSx2PU9iamVjdC5rZXlzKGQpO2ZvcihDPTA7Qzx2Lmxlbmd0aDtDKyspIShnLmluZGV4T2YoeT12W0NdKT49MCkmJihoW3ldPWRbeV0pO3JldHVybiBofShkLGcpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBDPU9iamVjdC5nZXRP''@;'; + put 'put ''d25Qcm9wZXJ0eVN5bWJvbHMoZCk7Zm9yKHk9MDt5PEMubGVuZ3RoO3krKykhKGcuaW5kZXhPZih2PUNbeV0pPj0wKSYmKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZCx2KXx8KGhbdl09ZFt2XSkpfXJldHVybiBofShkLHZLZSk7cmV0dXJuIG5ldyBmTyhO''@;'; + put 'put ''a2UoTmtlKHtjbGFzc05hbWU6ImFyZWEiLG1hcmtJbnRlcnNlY3Rpb25zOiEwLGxheWVyTGV2ZWw6TWF0aC5taW4oZyw3KSxib3JkZXI6e3dpZHRoOjEsY29sb3I6IiM0Yjg5ZmYiLGNvcm5lclZpc2libGU6aH19LHYpLHt9LHtzZWxlY3Rpb25UeXBlOm90ZX0pKX0pLGhPKGl6LGZ1bmN0aW9u''@;'; + put 'put ''IEVLZShkKXt2YXIgZz1kLmNlbGxDb3JuZXJWaXNpYmxlLGg9ZnVuY3Rpb24gU0tlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgdix5LGg9ZnVuY3Rpb24gTUtlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30sdj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8di5s''@;'; + put 'put ''ZW5ndGg7QysrKSEoZy5pbmRleE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTtyZXR1cm4gaH0oZCxnKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zvcih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmluZGV4''@;'; + put 'put ''T2Yodj1DW3ldKT49MCkmJighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGQsdil8fChoW3ZdPWRbdl0pKX1yZXR1cm4gaH0oZCxDS2UpO3JldHVybiBuZXcgZk8oamtlKGprZSh7Y2xhc3NOYW1lOiJjdXJyZW50Iixib3JkZXI6e3dpZHRoOjIsY29sb3I6IiM0''@;'; + put 'put ''Yjg5ZmYiLGNvcm5lclZpc2libGU6Z319LGgpLHt9LHtzZWxlY3Rpb25UeXBlOml6fSkpfSksaE8oanBlLGZ1bmN0aW9uIE9LZShkKXt2YXIgZz1kLmJvcmRlcixoPWQudmlzdWFsQ2VsbFJhbmdlLHY9ZnVuY3Rpb24gREtlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgdix5LGg9ZnVu''@;'; + put 'put ''Y3Rpb24gTEtlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30sdj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8di5sZW5ndGg7QysrKSEoZy5pbmRleE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTtyZXR1cm4gaH0oZCxnKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlT''@;'; + put 'put ''eW1ib2xzKXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zvcih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmluZGV4T2Yodj1DW3ldKT49MCkmJighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGQsdil8fChoW3ZdPWRbdl0pKX1yZXR1cm4g''@;'; + put 'put ''aH0oZCxUS2UpO3JldHVybiBuZXcgZk8oWXBlKFlwZShZcGUoe30sZyksdikse30se3NlbGVjdGlvblR5cGU6anBlfSksaCl9KSxoTygiZmlsbCIsZnVuY3Rpb24gUEtlKGQpe3ZhciBnPU9iamVjdC5hc3NpZ24oe30sZCk7cmV0dXJuIG5ldyBmTyhHa2UoR2tlKHtjbGFzc05hbWU6ImZpbGwi''@;'; + put 'put ''LGJvcmRlcjp7d2lkdGg6MSxjb2xvcjoiI2ZmMDAwMCJ9fSxnKSx7fSx7c2VsZWN0aW9uVHlwZToiZmlsbCJ9KSl9KSxoTyhveixmdW5jdGlvbiBaS2UoZCl7dmFyIGc9ZC5oZWFkZXJDbGFzc05hbWUsaD1kLnJvd0NsYXNzTmFtZSx2PWQuY29sdW1uQ2xhc3NOYW1lLHk9ZnVuY3Rpb24gVktl''@;'; + put 'put ''KGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgdix5LGg9ZnVuY3Rpb24gaktlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30sdj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8di5sZW5ndGg7QysrKSEoZy5pbmRleE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTty''@;'; + put 'put ''ZXR1cm4gaH0oZCxnKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zvcih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmluZGV4T2Yodj1DW3ldKT49MCkmJighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51''@;'; + put 'put ''bWVyYWJsZS5jYWxsKGQsdil8fChoW3ZdPWRbdl0pKX1yZXR1cm4gaH0oZCxIS2UpO3JldHVybiBuZXcgZk8oWWtlKFlrZSh7Y2xhc3NOYW1lOiJoaWdobGlnaHQiLGhpZ2hsaWdodEhlYWRlckNsYXNzTmFtZTpnLGhpZ2hsaWdodFJvd0NsYXNzTmFtZTpoLGhpZ2hsaWdodENvbHVtbkNsYXNz''@;'; + put 'put ''TmFtZTp2fSx5KSx7fSx7aGlnaGxpZ2h0T25seUNsb3Nlc3RIZWFkZXI6ITAsc2VsZWN0aW9uVHlwZTpven0pKX0pO3ZhciBlJGU9ZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZyhoKXsoZnVuY3Rpb24gJEtlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fu''@;'; + put 'put ''bm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGcpLHRoaXMub3B0aW9ucz1oLHRoaXMubGF5ZXJMZXZlbD0wLHRoaXMuY2VsbD1kTyhpeixoKSx0aGlzLmZpbGw9ZE8oImZpbGwiLGgpLHRoaXMuYXJlYXM9bmV3IE1hcCx0aGlzLmhlYWRlcnM9bmV3IE1hcCx0aGlzLmFj''@;'; + put 'put ''dGl2ZUhlYWRlcnM9bmV3IE1hcCx0aGlzLmN1c3RvbVNlbGVjdGlvbnM9W119cmV0dXJuIGZ1bmN0aW9uIHFLZShkLGcsaCl7ZyYmWGtlKGQucHJvdG90eXBlLGcpLGgmJlhrZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShnLFt7a2V5''@;'; + put 'put ''OiJpc0VuYWJsZWRGb3IiLHZhbHVlOmZ1bmN0aW9uKHYseSl7dmFyIEM9djt2PT09aXomJihDPSJjdXJyZW50Iik7dmFyIEk9dGhpcy5vcHRpb25zLmRpc2FibGVkQ2VsbFNlbGVjdGlvbih5LnJvdyx5LmNvbCk7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBJJiYoST1bSV0pLCExPT09SXx8QXJy''@;'; + put 'put ''YXkuaXNBcnJheShJKSYmIUkuaW5jbHVkZXMoQyl9fSx7a2V5OiJ1c2VMYXllckxldmVsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowO3JldHVybiB0aGlzLmxheWVyTGV2ZWw9dix0aGlzfX0s''@;'; + put 'put ''e2tleToiZ2V0Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jZWxsfX0se2tleToiZ2V0RmlsbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsfX0se2tleToiY3JlYXRlT3JHZXRBcmVhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5LHY9dGhpcy5sYXllckxldmVs''@;'; + put 'put ''O3JldHVybiB0aGlzLmFyZWFzLmhhcyh2KT95PXRoaXMuYXJlYXMuZ2V0KHYpOih5PWRPKG90ZSxheih7bGF5ZXJMZXZlbDp2fSx0aGlzLm9wdGlvbnMpKSx0aGlzLmFyZWFzLnNldCh2LHkpKSx5fX0se2tleToiZ2V0QXJlYXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEl3KHRoaXMuYXJl''@;'; + put 'put ''YXMudmFsdWVzKCkpfX0se2tleToiY3JlYXRlT3JHZXRIZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHksdj10aGlzLmxheWVyTGV2ZWw7cmV0dXJuIHRoaXMuaGVhZGVycy5oYXModik/eT10aGlzLmhlYWRlcnMuZ2V0KHYpOih5PWRPKG96LGF6KHt9LHRoaXMub3B0aW9ucykpLHRoaXMu''@;'; + put 'put ''aGVhZGVycy5zZXQodix5KSkseX19LHtrZXk6ImdldEhlYWRlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEl3KHRoaXMuaGVhZGVycy52YWx1ZXMoKSl9fSx7a2V5OiJjcmVhdGVPckdldEFjdGl2ZUhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeSx2PXRoaXMubGF5ZXJMZXZlbDty''@;'; + put 'put ''ZXR1cm4gdGhpcy5hY3RpdmVIZWFkZXJzLmhhcyh2KT95PXRoaXMuYWN0aXZlSGVhZGVycy5nZXQodik6KHk9ZE8oaXRlLGF6KHt9LHRoaXMub3B0aW9ucykpLHRoaXMuYWN0aXZlSGVhZGVycy5zZXQodix5KSkseX19LHtrZXk6ImdldEFjdGl2ZUhlYWRlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIEl3KHRoaXMuYWN0aXZlSGVhZGVycy52YWx1ZXMoKSl9fSx7a2V5OiJnZXRDdXN0b21TZWxlY3Rpb25zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBJdyh0aGlzLmN1c3RvbVNlbGVjdGlvbnMudmFsdWVzKCkpfX0se2tleToiYWRkQ3VzdG9tU2VsZWN0aW9uIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbih2KXt0aGlzLmN1c3RvbVNlbGVjdGlvbnMucHVzaChkTyhqcGUsYXooYXooe30sdGhpcy5vcHRpb25zKSx2KSkpfX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jZWxsLmNsZWFyKCksdGhpcy5maWxsLmNsZWFyKCksVXIodGhpcy5hcmVhcy52YWx1ZXMoKSxmdW5j''@;'; + put 'put ''dGlvbih2KXt2LmNsZWFyKCl9KSxVcih0aGlzLmhlYWRlcnMudmFsdWVzKCksZnVuY3Rpb24odil7di5jbGVhcigpfSksVXIodGhpcy5hY3RpdmVIZWFkZXJzLnZhbHVlcygpLGZ1bmN0aW9uKHYpe3YuY2xlYXIoKX0pfX0se2tleTpTeW1ib2wuaXRlcmF0b3IsdmFsdWU6ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm5bdGhpcy5jZWxsLHRoaXMuZmlsbF0uY29uY2F0KEl3KHRoaXMuYXJlYXMudmFsdWVzKCkpLEl3KHRoaXMuaGVhZGVycy52YWx1ZXMoKSksSXcodGhpcy5hY3RpdmVIZWFkZXJzLnZhbHVlcygpKSxJdyh0aGlzLmN1c3RvbVNlbGVjdGlvbnMpKVtTeW1ib2wuaXRlcmF0b3JdKCl9fV0p''@;'; + put 'put ''LGd9KCk7Y29uc3QgdCRlPWUkZTtmdW5jdGlvbiBLa2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZp''@;'; + put 'put ''bmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgaSRlPWZ1bmN0aW9uKGQpe2Z1bmN0aW9uIGcoaCl7KGZ1bmN0aW9uIG4kZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxnKSx0''@;'; + put 'put ''aGlzLnJhbmdlcz1bXSx0aGlzLmNyZWF0ZUNlbGxSYW5nZT1ofXJldHVybiBmdW5jdGlvbiByJGUoZCxnLGgpe2cmJktrZShkLnByb3RvdHlwZSxnKSxoJiZLa2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZyxbe2tleToiaXNFbXB0''@;'; + put 'put ''eSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2l6ZSgpfX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5jbGVhcigpLHRoaXMucmFuZ2VzLnB1c2godGhpcy5jcmVhdGVDZWxsUmFuZ2UodikpLHRoaXN9fSx7a2V5OiJhZGQiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKHYpe3JldHVybiB0aGlzLnJhbmdlcy5wdXNoKHRoaXMuY3JlYXRlQ2VsbFJhbmdlKHYpKSx0aGlzfX0se2tleToicG9wIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmdlcy5wb3AoKSx0aGlzfX0se2tleToiY3VycmVudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5wZWVrQnlJbmRleCgwKX19LHtrZXk6InByZXZpb3VzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBlZWtCeUluZGV4KC0xKX19LHtrZXk6ImluY2x1ZGVzIix2YWx1ZTpmdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5yYW5nZXMuc29tZShmdW5jdGlvbih5KXtyZXR1cm4geS5pbmNs''@;'; + put 'put ''dWRlcyh2KX0pfX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmFuZ2VzLmxlbmd0aD0wLHRoaXN9fSx7a2V5OiJzaXplIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmdlcy5sZW5ndGh9fSx7a2V5OiJwZWVrQnlJbmRleCIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXt2YXIgQyx2PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLHk9dGhpcy5zaXplKCkrdi0xO3JldHVybiB5Pj0wJiYoQz10aGlzLnJhbmdlc1t5XSksQ319LHtrZXk6U3ltYm9sLml0ZXJhdG9yLHZhbHVlOmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIHRoaXMucmFuZ2VzW1N5bWJvbC5pdGVyYXRvcl0oKX19XSksZ30oKTtjb25zdCBvJGU9aSRlO2Z1bmN0aW9uICRrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2''@;'; + put 'put ''YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBxa2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIGEkZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBj''@;'; + put 'put ''YWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnJhbmdlPWcsdGhpcy5vcHRpb25zPWh9cmV0dXJuIGZ1bmN0aW9uIGwkZShkLGcsaCl7ZyYmJGtlKGQucHJvdG90eXBlLGcpLGgmJiRrZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3''@;'; + put 'put ''cml0YWJsZTohMX0pfShkLFt7a2V5OiJ0cmFuc2Zvcm1TdGFydCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLEM9dGhpcy5vcHRpb25zLmNyZWF0ZUNlbGxDb29yZHMoaCx2KSxJPXRoaXMu''@;'; + put 'put ''cmFuZ2UuY3VycmVudCgpLmhpZ2hsaWdodCxqPXRoaXMub3B0aW9ucy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMoSSksdWU9ai5yb3csX2U9ai5jb2wsQmU9SSxOZT0wLEtlPTA7aWYodGhpcy5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVUcmFuc2Zvcm1TdGFydCIsQyksbnVsbCE9PXVlJiZudWxs''@;'; + put 'put ''IT09X2Upe3ZhciBkdD10aGlzLm9wdGlvbnMuY291bnRSb3dzKCksT3Q9dGhpcy5vcHRpb25zLmNvdW50Q29scygpLCR0PXRoaXMub3B0aW9ucy5maXhlZFJvd3NCb3R0b20oKSxmbj10aGlzLm9wdGlvbnMubWluU3BhcmVSb3dzKCksTG49dGhpcy5vcHRpb25zLm1pblNwYXJlQ29scygpLGly''@;'; + put 'put ''PXRoaXMub3B0aW9ucy5hdXRvV3JhcFJvdygpLG1yPXRoaXMub3B0aW9ucy5hdXRvV3JhcENvbCgpO3VlK2g+ZHQtMT95JiZmbj4wJiYhKCR0JiZ1ZT49ZHQtJHQtMSk/KHRoaXMucnVuTG9jYWxIb29rcygiaW5zZXJ0Um93UmVxdWlyZSIsZHQpLGR0PXRoaXMub3B0aW9ucy5jb3VudFJvd3Mo''@;'; + put 'put ''KSk6bXImJihDLnJvdz0xLWR0LEMuY29sPV9lK0MuY29sPT09T3QtMT8xLU90OjEpOm1yJiZ1ZStDLnJvdzwwJiZfZStDLmNvbD49MCYmKEMucm93PWR0LTEsQy5jb2w9X2UrQy5jb2w9PT0wP090LTE6LTEpLF9lK0MuY29sPk90LTE/eSYmTG4+MD8odGhpcy5ydW5Mb2NhbEhvb2tzKCJpbnNl''@;'; + put 'put ''cnRDb2xSZXF1aXJlIixPdCksT3Q9dGhpcy5vcHRpb25zLmNvdW50Q29scygpKTppciYmKEMucm93PXVlK0Mucm93PT09ZHQtMT8xLWR0OjEsQy5jb2w9MS1PdCk6aXImJl9lK0MuY29sPDAmJnVlK0Mucm93Pj0wJiYoQy5yb3c9dWUrQy5yb3c9PT0wP2R0LTE6LTEsQy5jb2w9T3QtMSk7dmFy''@;'; + put 'put ''IFNyPXRoaXMub3B0aW9ucy5jcmVhdGVDZWxsQ29vcmRzKHVlK0Mucm93LF9lK0MuY29sKTtOZT0wLEtlPTAsU3Iucm93PDA/KE5lPS0xLFNyLnJvdz0wKTpTci5yb3c+MCYmU3Iucm93Pj1kdCYmKE5lPTEsU3Iucm93PWR0LTEpLFNyLmNvbDwwPyhLZT0tMSxTci5jb2w9MCk6U3IuY29sPjAm''@;'; + put 'put ''JlNyLmNvbD49T3QmJihLZT0xLFNyLmNvbD1PdC0xKSxCZT10aGlzLm9wdGlvbnMucmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzKFNyKX1yZXR1cm4gdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclRyYW5zZm9ybVN0YXJ0IixCZSxOZSxLZSksQmV9fSx7a2V5OiJ0cmFuc2Zvcm1FbmQiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5vcHRpb25zLmNyZWF0ZUNlbGxDb29yZHMoaCx2KSxDPXRoaXMucmFuZ2UuY3VycmVudCgpLEk9Qy50byxqPTAsdWU9MDt0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZVRyYW5zZm9ybUVuZCIseSk7dmFyIF9lPXRoaXMub3B0aW9ucy52aXN1YWxU''@;'; + put 'put ''b1JlbmRlcmFibGVDb29yZHMoQy5oaWdobGlnaHQpO2lmKG51bGwhPT1fZS5yb3cmJm51bGwhPT1fZS5jb2wpe3ZhciBLZT10aGlzLm9wdGlvbnMuY291bnRSb3dzKCksZHQ9dGhpcy5vcHRpb25zLmNvdW50Q29scygpLE90PXRoaXMub3B0aW9ucy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMo''@;'; + put 'put ''Qy50byksTG49dGhpcy5vcHRpb25zLmNyZWF0ZUNlbGxDb29yZHMoT3Qucm93K3kucm93LE90LmNvbCt5LmNvbCk7aj0wLHVlPTAsTG4ucm93PDA/KGo9LTEsTG4ucm93PTApOkxuLnJvdz4wJiZMbi5yb3c+PUtlJiYoaj0xLExuLnJvdz1LZS0xKSxMbi5jb2w8MD8odWU9LTEsTG4uY29sPTAp''@;'; + put 'put ''OkxuLmNvbD4wJiZMbi5jb2w+PWR0JiYodWU9MSxMbi5jb2w9ZHQtMSksST10aGlzLm9wdGlvbnMucmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzKExuKX1yZXR1cm4gdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclRyYW5zZm9ybUVuZCIsSSxqLHVlKSxJfX1dKSxkfSgpO1IyKHFrZSxzZCk7Y29u''@;'; + put 'put ''c3QgcyRlPXFrZTtmdW5jdGlvbiBlU2UoZCxnKXtyZXR1cm4gZnVuY3Rpb24gaCRlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBmJGUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJh''@;'; + put 'put ''dG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZp''@;'; + put 'put ''bmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBjJGUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHRTZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUu''@;'; + put 'put ''dG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2''@;'; + put 'put ''fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gdFNlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiB1JGUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRl''@;'; + put 'put ''cmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHRTZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1k''@;'; + put 'put ''W2hdO3JldHVybiB2fWZ1bmN0aW9uIFFwZShkKXtyZXR1cm4oUXBlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9dmFyIGlTZSxkJGU9WzMsMl0scCRlPVtbIm51bWJlciJdLFsibnVtYmVyIiwic3RyaW5nIl0sWyJudW1iZXIiLCJ1bmRlZmluZWQiXSxbIm51bWJl''@;'; + put 'put ''ciIsInN0cmluZyIsInVuZGVmaW5lZCJdXSxYcGU9U3ltYm9sKCJyb290IiksclNlPVN5bWJvbCgiY2hpbGQiKTtmdW5jdGlvbiBwTyhkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06WHBlO2lmKGchPT1YcGUmJmchPT1yU2Up''@;'; + put 'put ''dGhyb3cgbmV3IEVycm9yKCJUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIHVzZWQgaW50ZXJuYWxseSBvbmx5IGFuZCBjYW5ub3QgYmUgb3ZlcndyaXR0ZW4uIik7dmFyIGg9QXJyYXkuaXNBcnJheShkKSx2PWc9PT1YcGUseT0wO2lmKGgpe3ZhciBDPWRbMF07aWYoMD09PWQubGVuZ3RoKXk9MTtl''@;'; + put 'put ''bHNlIGlmKHYmJkMgaW5zdGFuY2VvZiBpQ2UpeT0zO2Vsc2UgaWYodiYmQXJyYXkuaXNBcnJheShDKSl5PXBPKEMsclNlKTtlbHNlIGlmKGQubGVuZ3RoPj0yJiZkLmxlbmd0aDw9NCl7dmFyIEk9IWQuc29tZShmdW5jdGlvbihqLHVlKXtyZXR1cm4hcCRlW3VlXS5pbmNsdWRlcyhRcGUoaikp''@;'; + put 'put ''fSk7SSYmKHk9Mil9fXJldHVybiB5fWZ1bmN0aW9uIGx6KGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxoPWcua2VlcERpcmVjdGlvbix2PXZvaWQgMCE9PWgmJmgseT1nLnByb3BUb0NvbDtpZighZCRlLmluY2x1ZGVz''@;'; + put 'put ''KGQpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc2VsZWN0aW9uIHJhbmdlcyBzY2hlbWEgdHlwZSB3YXMgcHJvdmlkZWQuIik7cmV0dXJuIGZ1bmN0aW9uKEMpe3ZhciBJPTM9PT1kLGo9ST9DLmZyb20ucm93OkNbMF0sdWU9ST9DLmZyb20uY29sOkNbMV0sX2U9ST9DLnRvLnJvdzpD''@;'; + put 'put ''WzJdLEJlPUk/Qy50by5jb2w6Q1szXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgeSYmKCJzdHJpbmciPT10eXBlb2YgdWUmJih1ZT15KHVlKSksInN0cmluZyI9PXR5cGVvZiBCZSYmKEJlPXkoQmUpKSksYTEoX2UpJiYoX2U9aiksYTEoQmUpJiYoQmU9dWUpLCF2KXt2YXIgTmU9aixLZT11ZSxk''@;'; + put 'put ''dD1fZSxPdD1CZTtqPU1hdGgubWluKE5lLGR0KSx1ZT1NYXRoLm1pbihLZSxPdCksX2U9TWF0aC5tYXgoTmUsZHQpLEJlPU1hdGgubWF4KEtlLE90KX1yZXR1cm5baix1ZSxfZSxCZV19fWZ1bmN0aW9uIER3KGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRz''@;'; + put 'put ''WzFdP2FyZ3VtZW50c1sxXToxLzA7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBkJiZkPj0wJiZkPGd9ZnVuY3Rpb24gb1NlKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHckZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24geSRlKGQsZyl7dmFyIGg9bnVsbD09ZD9u''@;'; + put 'put ''dWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwh''@;'; + put 'put ''Z3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gQSRlKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5''@;'; + put 'put ''cGVvZiBkKXJldHVybiBhU2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5m''@;'; + put 'put ''cm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGFTZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gdiRlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0''@;'; + put 'put ''dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBhU2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVu''@;'; + put 'put ''Z3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBsU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwi''@;'; + put 'put ''dmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgc1NlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpe3ZhciB2PXRoaXM7KGZ1bmN0aW9uIF8kZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJy''@;'; + put 'put ''b3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnNldHRpbmdzPWcsdGhpcy50YWJsZVByb3BzPWgsdGhpcy5pblByb2dyZXNzPSExLHRoaXMuc2VsZWN0ZWRCeUNvcm5lcj0hMSx0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXI9bmV3IFNldCx0aGlz''@;'; + put 'put ''LnNlbGVjdGVkQnlDb2x1bW5IZWFkZXI9bmV3IFNldCx0aGlzLnNlbGVjdGVkUmFuZ2U9bmV3IG8kZShmdW5jdGlvbih5LEMsSSl7cmV0dXJuIHYudGFibGVQcm9wcy5jcmVhdGVDZWxsUmFuZ2UoeSxDLEkpfSksdGhpcy5oaWdobGlnaHQ9bmV3IHQkZSh7aGVhZGVyQ2xhc3NOYW1lOmcuY3Vy''@;'; + put 'put ''cmVudEhlYWRlckNsYXNzTmFtZSxhY3RpdmVIZWFkZXJDbGFzc05hbWU6Zy5hY3RpdmVIZWFkZXJDbGFzc05hbWUscm93Q2xhc3NOYW1lOmcuY3VycmVudFJvd0NsYXNzTmFtZSxjb2x1bW5DbGFzc05hbWU6Zy5jdXJyZW50Q29sQ2xhc3NOYW1lLGRpc2FibGVkQ2VsbFNlbGVjdGlvbjpmdW5j''@;'; + put 'put ''dGlvbihDLEkpe3JldHVybiB2LnRhYmxlUHJvcHMuaXNEaXNhYmxlZENlbGxTZWxlY3Rpb24oQyxJKX0sY2VsbENvcm5lclZpc2libGU6ZnVuY3Rpb24oKXtyZXR1cm4gdi5pc0NlbGxDb3JuZXJWaXNpYmxlLmFwcGx5KHYsYXJndW1lbnRzKX0sYXJlYUNvcm5lclZpc2libGU6ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4gdi5pc0FyZWFDb3JuZXJWaXNpYmxlLmFwcGx5KHYsYXJndW1lbnRzKX0sdmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzOmZ1bmN0aW9uKEMpe3JldHVybiB2LnRhYmxlUHJvcHMudmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzKEMpfSxyZW5kZXJhYmxlVG9WaXN1YWxDb29yZHM6ZnVu''@;'; + put 'put ''Y3Rpb24oQyl7cmV0dXJuIHYudGFibGVQcm9wcy5yZW5kZXJhYmxlVG9WaXN1YWxDb29yZHMoQyl9LGNyZWF0ZUNlbGxDb29yZHM6ZnVuY3Rpb24oQyxJKXtyZXR1cm4gdi50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoQyxJKX0sY3JlYXRlQ2VsbFJhbmdlOmZ1bmN0aW9uKEMsSSxqKXty''@;'; + put 'put ''ZXR1cm4gdi50YWJsZVByb3BzLmNyZWF0ZUNlbGxSYW5nZShDLEksail9LHJvd0luZGV4TWFwcGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHYudGFibGVQcm9wcy5yb3dJbmRleE1hcHBlcigpfSxjb2x1bW5JbmRleE1hcHBlcjpmdW5jdGlvbigpe3JldHVybiB2LnRhYmxlUHJvcHMuY29sdW1uSW5k''@;'; + put 'put ''ZXhNYXBwZXIoKX19KSx0aGlzLnRyYW5zZm9ybWF0aW9uPW5ldyBzJGUodGhpcy5zZWxlY3RlZFJhbmdlLHtjb3VudFJvd3M6ZnVuY3Rpb24oKXtyZXR1cm4gdi50YWJsZVByb3BzLmNvdW50Um93c1RyYW5zbGF0ZWQoKX0sY291bnRDb2xzOmZ1bmN0aW9uKCl7cmV0dXJuIHYudGFibGVQcm9w''@;'; + put 'put ''cy5jb3VudENvbHNUcmFuc2xhdGVkKCl9LHZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkczpmdW5jdGlvbihDKXtyZXR1cm4gdi50YWJsZVByb3BzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhDKX0scmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzOmZ1bmN0aW9uKEMpe3JldHVybiB2LnRhYmxlUHJv''@;'; + put 'put ''cHMucmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzKEMpfSxjcmVhdGVDZWxsQ29vcmRzOmZ1bmN0aW9uKEMsSSl7cmV0dXJuIHYudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKEMsSSl9LGZpeGVkUm93c0JvdHRvbTpmdW5jdGlvbigpe3JldHVybiBnLmZpeGVkUm93c0JvdHRvbX0sbWluU3Bh''@;'; + put 'put ''cmVSb3dzOmZ1bmN0aW9uKCl7cmV0dXJuIGcubWluU3BhcmVSb3dzfSxtaW5TcGFyZUNvbHM6ZnVuY3Rpb24oKXtyZXR1cm4gZy5taW5TcGFyZUNvbHN9LGF1dG9XcmFwUm93OmZ1bmN0aW9uKCl7cmV0dXJuIGcuYXV0b1dyYXBSb3d9LGF1dG9XcmFwQ29sOmZ1bmN0aW9uKCl7cmV0dXJuIGcu''@;'; + put 'put ''YXV0b1dyYXBDb2x9fSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZVRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiB2LnJ1''@;'; + put 'put ''bkxvY2FsSG9va3MuYXBwbHkodixbImJlZm9yZU1vZGlmeVRyYW5zZm9ybVN0YXJ0Il0uY29uY2F0KEMpKX0pLHRoaXMudHJhbnNmb3JtYXRpb24uYWRkTG9jYWxIb29rKCJhZnRlclRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFy''@;'; + put 'put ''cmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiB2LnJ1bkxvY2FsSG9va3MuYXBwbHkodixbImFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQiXS5jb25jYXQoQykpfSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZVRyYW5zZm9ybUVuZCIs''@;'; + put 'put ''ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gdi5ydW5Mb2NhbEhvb2tzLmFwcGx5KHYsWyJiZWZvcmVNb2RpZnlUcmFuc2Zvcm1FbmQiXS5jb25jYXQoQykpfSksdGhpcy50cmFu''@;'; + put 'put ''c2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyVHJhbnNmb3JtRW5kIixmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiB2LnJ1bkxvY2FsSG9va3MuYXBwbHkodixbImFmdGVy''@;'; + put 'put ''TW9kaWZ5VHJhbnNmb3JtRW5kIl0uY29uY2F0KEMpKX0pLHRoaXMudHJhbnNmb3JtYXRpb24uYWRkTG9jYWxIb29rKCJpbnNlcnRSb3dSZXF1aXJlIixmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRz''@;'; + put 'put ''W0ldO3JldHVybiB2LnJ1bkxvY2FsSG9va3MuYXBwbHkodixbImluc2VydFJvd1JlcXVpcmUiXS5jb25jYXQoQykpfSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImluc2VydENvbFJlcXVpcmUiLGZ1bmN0aW9uKCl7Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcg''@;'; + put 'put ''QXJyYXkoeSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07cmV0dXJuIHYucnVuTG9jYWxIb29rcy5hcHBseSh2LFsiaW5zZXJ0Q29sUmVxdWlyZSJdLmNvbmNhdChDKSl9KX1yZXR1cm4gZnVuY3Rpb24gQyRlKGQsZyxoKXtnJiZsU2UoZC5wcm90b3R5cGUsZyksaCYmbFNlKGQsaCks''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldFNlbGVjdGVkUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRSYW5nZX19LHtrZXk6ImJlZ2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaW5Qcm9n''@;'; + put 'put ''cmVzcz0hMH19LHtrZXk6ImZpbmlzaCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyU2VsZWN0aW9uRmluaXNoZWQiLEFycmF5LmZyb20odGhpcy5zZWxlY3RlZFJhbmdlKSksdGhpcy5pblByb2dyZXNzPSExfX0se2tleToiaXNJblByb2dyZXNzIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLmluUHJvZ3Jlc3N9fSx7a2V5OiJzZXRSYW5nZVN0YXJ0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sQz0ibXVsdGlwbGUiPT09dGhpcy5zZXR0aW5n''@;'; + put 'put ''cy5zZWxlY3Rpb25Nb2RlLEk9YTEodik/dGhpcy50YWJsZVByb3BzLmdldFNob3J0Y3V0TWFuYWdlcigpLmlzQ3RybFByZXNzZWQoKTp2LGo9aC5yb3c8MCx1ZT1oLmNvbDwwLF9lPWomJnVlLEJlPWguY2xvbmUoKTt0aGlzLnNlbGVjdGVkQnlDb3JuZXI9X2UsdGhpcy5ydW5Mb2NhbEhvb2tz''@;'; + put 'put ''KCJiZWZvcmVTZXRSYW5nZVN0YXJ0Ii5jb25jYXQoeT8iT25seSI6IiIpLEJlKSwoIUN8fEMmJiFJJiZhMSh2KSkmJnRoaXMuc2VsZWN0ZWRSYW5nZS5jbGVhcigpLHRoaXMuc2VsZWN0ZWRSYW5nZS5hZGQoQmUpLDA9PT10aGlzLmdldExheWVyTGV2ZWwoKSYmKHRoaXMuc2VsZWN0ZWRCeVJv''@;'; + put 'put ''d0hlYWRlci5jbGVhcigpLHRoaXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlci5jbGVhcigpKSwhX2UmJnVlJiZ0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXIuYWRkKHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSwhX2UmJmomJnRoaXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlci5hZGQodGhpcy5nZXRMYXll''@;'; + put 'put ''ckxldmVsKCkpLHl8fHRoaXMuc2V0UmFuZ2VFbmQoaCl9fSx7a2V5OiJzZXRSYW5nZVN0YXJ0T25seSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLnNldFJhbmdlU3RhcnQoaCx2LCEwKX19LHtrZXk6InNldFJhbmdlRW5kIix2YWx1ZTpmdW5jdGlvbihoKXtpZighdGhpcy5zZWxlY3RlZFJh''@;'; + put 'put ''bmdlLmlzRW1wdHkoKSl7dmFyIHY9aC5jbG9uZSgpO3RoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlU2V0UmFuZ2VFbmQiLHYpLHRoaXMuYmVnaW4oKTt2YXIgeT10aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpOyJzaW5nbGUiIT09dGhpcy5zZXR0aW5ncy5zZWxlY3Rpb25Nb2RlJiZ5LnNl''@;'; + put 'put ''dFRvKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKHYucm93LHYuY29sKSksdGhpcy5oaWdobGlnaHQuZ2V0Q2VsbCgpLmNsZWFyKCksdGhpcy5oaWdobGlnaHQuaXNFbmFibGVkRm9yKGl6LHkuaGlnaGxpZ2h0KSYmdGhpcy5oaWdobGlnaHQuZ2V0Q2VsbCgpLmFkZCh0aGlzLnNl''@;'; + put 'put ''bGVjdGVkUmFuZ2UuY3VycmVudCgpLmhpZ2hsaWdodCkuY29tbWl0KCkuc3luY1dpdGgoeSk7dmFyIEM9dGhpcy5nZXRMYXllckxldmVsKCk7Qzx0aGlzLmhpZ2hsaWdodC5sYXllckxldmVsJiYoVXIodGhpcy5oaWdobGlnaHQuZ2V0QXJlYXMoKSxmdW5jdGlvbigkdCl7JHQuY2xlYXIoKX0p''@;'; + put 'put ''LFVyKHRoaXMuaGlnaGxpZ2h0LmdldEhlYWRlcnMoKSxmdW5jdGlvbigkdCl7JHQuY2xlYXIoKX0pLFVyKHRoaXMuaGlnaGxpZ2h0LmdldEFjdGl2ZUhlYWRlcnMoKSxmdW5jdGlvbigkdCl7JHQuY2xlYXIoKX0pKSx0aGlzLmhpZ2hsaWdodC51c2VMYXllckxldmVsKEMpO3ZhciBJPXRoaXMu''@;'; + put 'put ''aGlnaGxpZ2h0LmNyZWF0ZU9yR2V0QXJlYSgpLGo9dGhpcy5oaWdobGlnaHQuY3JlYXRlT3JHZXRIZWFkZXIoKSx1ZT10aGlzLmhpZ2hsaWdodC5jcmVhdGVPckdldEFjdGl2ZUhlYWRlcigpO2lmKEkuY2xlYXIoKSxqLmNsZWFyKCksdWUuY2xlYXIoKSx0aGlzLmhpZ2hsaWdodC5pc0VuYWJs''@;'; + put 'put ''ZWRGb3Iob3RlLHkuaGlnaGxpZ2h0KSYmKHRoaXMuaXNNdWx0aXBsZSgpfHxDPj0xKSYmKEkuYWRkKHkuZnJvbSkuYWRkKHkudG8pLmNvbW1pdCgpLDE9PT1DKSl7dmFyIF9lPXRoaXMuc2VsZWN0ZWRSYW5nZS5wcmV2aW91cygpO3RoaXMuaGlnaGxpZ2h0LnVzZUxheWVyTGV2ZWwoQy0xKS5j''@;'; + put 'put ''cmVhdGVPckdldEFyZWEoKS5hZGQoX2UuZnJvbSkuY29tbWl0KCkuc3luY1dpdGgoX2UpLHRoaXMuaGlnaGxpZ2h0LnVzZUxheWVyTGV2ZWwoQyl9aWYodGhpcy5oaWdobGlnaHQuaXNFbmFibGVkRm9yKG96LHkuaGlnaGxpZ2h0KSl7dmFyIEJlPTA9PT10aGlzLnRhYmxlUHJvcHMuY291bnRS''@;'; + put 'put ''b3dzVHJhbnNsYXRlZCgpLE5lPTA9PT10aGlzLnRhYmxlUHJvcHMuY291bnRDb2xzVHJhbnNsYXRlZCgpLEtlPXk7KEJlfHxOZSkmJihLZT15LmNsb25lKCkpLEJlJiYoS2UuZnJvbS5yb3c9LTEpLE5lJiYoS2UuZnJvbS5jb2w9LTEpLCJzaW5nbGUiPT09dGhpcy5zZXR0aW5ncy5zZWxlY3Rp''@;'; + put 'put ''b25Nb2RlPyh0aGlzLmlzU2VsZWN0ZWRCeUFueUhlYWRlcigpJiZLZS5mcm9tLm5vcm1hbGl6ZSgpLGouYWRkKEtlLmZyb20pLmNvbW1pdCgpKTpqLmFkZChLZS5mcm9tKS5hZGQoS2UudG8pLmNvbW1pdCgpLHRoaXMuaXNFbnRpcmVSb3dTZWxlY3RlZCgpJiZ0aGlzLnRhYmxlUHJvcHMuY291''@;'; + put 'put ''bnRDb2xzKCk9PT15LmdldFdpZHRoKCkmJnVlLmFkZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh5LmZyb20ucm93LC0xKSkuYWRkKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKHkudG8ucm93LC0xKSkuY29tbWl0KCksdGhpcy5pc0VudGlyZUNvbHVtblNlbGVj''@;'; + put 'put ''dGVkKCkmJnRoaXMudGFibGVQcm9wcy5jb3VudFJvd3MoKT09PXkuZ2V0SGVpZ2h0KCkmJnVlLmFkZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcygtMSx5LmZyb20uY29sKSkuYWRkKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKC0xLHkudG8uY29sKSkuY29tbWl0''@;'; + put 'put ''KCl9dGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclNldFJhbmdlRW5kIixoKX19fSx7a2V5OiJpc011bHRpcGxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXdTKCF0aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpLmlzU2luZ2xlKCkpO3JldHVybiB0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVy''@;'; + put 'put ''SXNNdWx0aXBsZVNlbGVjdGlvbiIsaCksaC52YWx1ZX19LHtrZXk6InRyYW5zZm9ybVN0YXJ0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07dGhpcy5zZXRSYW5nZVN0YXJ0KHRoaXMudHJh''@;'; + put 'put ''bnNmb3JtYXRpb24udHJhbnNmb3JtU3RhcnQoaCx2LHkpKX19LHtrZXk6InRyYW5zZm9ybUVuZCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLnNldFJhbmdlRW5kKHRoaXMudHJhbnNmb3JtYXRpb24udHJhbnNmb3JtRW5kKGgsdikpfX0se2tleToiZ2V0TGF5ZXJMZXZlbCIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RlZFJhbmdlLnNpemUoKS0xfX0se2tleToiaXNTZWxlY3RlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zZWxlY3RlZFJhbmdlLmlzRW1wdHkoKX19LHtrZXk6ImlzU2VsZWN0ZWRCeVJvd0hlYWRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5nZXRMYXllckxldmVsKCk7cmV0dXJuIXRoaXMuaXNTZWxlY3RlZEJ5Q29ybmVyKGgpJiZ0aGlzLmlzRW50aXJlUm93U2VsZWN0ZWQoaCl9fSx7a2V5OiJpc0VudGlyZVJvd1Nl''@;'; + put 'put ''bGVjdGVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmdldExheWVyTGV2ZWwoKTtyZXR1cm4tMT09PWg/dGhpcy5zZWxlY3RlZEJ5Um93SGVhZGVyLnNpemU+MDp0aGlzLnNlbGVjdGVk''@;'; + put 'put ''QnlSb3dIZWFkZXIuaGFzKGgpfX0se2tleToiaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmdldExheWVyTGV2ZWwoKTtyZXR1cm4hdGhpcy5p''@;'; + put 'put ''c1NlbGVjdGVkQnlDb3JuZXIoKSYmdGhpcy5pc0VudGlyZUNvbHVtblNlbGVjdGVkKGgpfX0se2tleToiaXNFbnRpcmVDb2x1bW5TZWxlY3RlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhp''@;'; + put 'put ''cy5nZXRMYXllckxldmVsKCk7cmV0dXJuLTE9PT1oP3RoaXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlci5zaXplPjA6dGhpcy5zZWxlY3RlZEJ5Q29sdW1uSGVhZGVyLmhhcyhoKX19LHtrZXk6ImlzU2VsZWN0ZWRCeUFueUhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1Nl''@;'; + put 'put ''bGVjdGVkQnlSb3dIZWFkZXIoLTEpfHx0aGlzLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigtMSl8fHRoaXMuaXNTZWxlY3RlZEJ5Q29ybmVyKCl9fSx7a2V5OiJpc1NlbGVjdGVkQnlDb3JuZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRCeUNvcm5lcn19LHtrZXk6''@;'; + put 'put ''ImluSW5TZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnNlbGVjdGVkUmFuZ2UuaW5jbHVkZXMoaCl9fSx7a2V5OiJpc0NlbGxDb3JuZXJWaXNpYmxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNldHRpbmdzLmZpbGxIYW5kbGUmJiF0aGlzLnRhYmxlUHJv''@;'; + put 'put ''cHMuaXNFZGl0b3JPcGVuZWQoKSYmIXRoaXMuaXNNdWx0aXBsZSgpfX0se2tleToiaXNBcmVhQ29ybmVyVmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuKCFOdW1iZXIuaXNJbnRlZ2VyKGgpfHxoPT09dGhpcy5nZXRMYXllckxldmVsKCkpJiZ0aGlzLnNldHRpbmdzLmZpbGxIYW5k''@;'; + put 'put ''bGUmJiF0aGlzLnRhYmxlUHJvcHMuaXNFZGl0b3JPcGVuZWQoKSYmdGhpcy5pc011bHRpcGxlKCl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkUmFuZ2UuY2xlYXIoKSx0aGlzLmhpZ2hsaWdodC5jbGVhcigpfX0se2tleToiZGVzZWxlY3QiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKCl7IXRoaXMuaXNTZWxlY3RlZCgpfHwodGhpcy5pblByb2dyZXNzPSExLHRoaXMuY2xlYXIoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyRGVzZWxlY3QiKSl9fSx7a2V5OiJzZWxlY3RBbGwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lk''@;'; + put 'put ''IDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSx2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0seT10aGlzLnRhYmxlUHJvcHMuY291bnRSb3dzKCksQz10aGlzLnRhYmxlUHJvcHMuY291bnRDb2xzKCk7aWYoaHx8dnx8MCE9PXkm''@;'; + put 'put ''JjAhPT1DKXt2YXIgST10aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh2Py0xOjAsaD8tMTowKTt0aGlzLmNsZWFyKCksdGhpcy5zZXRSYW5nZVN0YXJ0T25seShJKSx0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXIuYWRkKHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSx0aGlzLnNlbGVjdGVk''@;'; + put 'put ''QnlDb2x1bW5IZWFkZXIuYWRkKHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSx0aGlzLnNldFJhbmdlRW5kKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKHktMSxDLTEpKSx0aGlzLmZpbmlzaCgpfX19LHtrZXk6InNlbGVjdENlbGxzIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlz''@;'; + put 'put ''LHk9cE8oaCk7aWYoMT09PXkpcmV0dXJuITE7aWYoMD09PXkpdGhyb3cgbmV3IEVycm9yKEIyKGlTZXx8KGlTZT1mdW5jdGlvbiBiJGUoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVj''@;'; + put 'put ''dC5mcmVlemUoZyl9fSkpfShbIlVuc3VwcG9ydGVkIGZvcm1hdCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlcyB3YXMgcGFzc2VkLiBUbyBzZWxlY3QgY2VsbHMgcGFzcyBcbiAgICAgICAgdGhlIGNvb3JkaW5hdGVzIGFzIGFuIGFycmF5IG9mIGFycmF5cyAoW1tyb3dTdGFydCwgY29sdW1uU3Rh''@;'; + put 'put ''cnQvY29sdW1uUHJvcFN0YXJ0LCByb3dFbmQsIFxuICAgICAgICBjb2x1bW5FbmQvY29sdW1uUHJvcEVuZF1dKSBvciBhcyBhbiBhcnJheSBvZiBDZWxsUmFuZ2Ugb2JqZWN0cy4iXSxbIlVuc3VwcG9ydGVkIGZvcm1hdCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlcyB3YXMgcGFzc2VkLiBUbyBz''@;'; + put 'put ''ZWxlY3QgY2VsbHMgcGFzc1xceDIwXG4gICAgICAgIHRoZSBjb29yZGluYXRlcyBhcyBhbiBhcnJheSBvZiBhcnJheXMgKFtbcm93U3RhcnQsIGNvbHVtblN0YXJ0L2NvbHVtblByb3BTdGFydCwgcm93RW5kLFxceDIwXG4gICAgICAgIGNvbHVtbkVuZC9jb2x1bW5Qcm9wRW5kXV0pIG9yIGFz''@;'; + put 'put ''IGFuIGFycmF5IG9mIENlbGxSYW5nZSBvYmplY3RzLiJdKSkpKTt2YXIgQz1seih5LHtwcm9wVG9Db2w6ZnVuY3Rpb24oQmUpe3JldHVybiB2LnRhYmxlUHJvcHMucHJvcFRvQ29sKEJlKX0sa2VlcERpcmVjdGlvbjohMH0pLEk9dGhpcy50YWJsZVByb3BzLmNvdW50Um93cygpLGo9dGhpcy50''@;'; + put 'put ''YWJsZVByb3BzLmNvdW50Q29scygpLHVlPSFoLnNvbWUoZnVuY3Rpb24oX2Upe3ZhciBOZT1vU2UoQyhfZSksNCksZHQ9TmVbMV0sT3Q9TmVbMl0sJHQ9TmVbM107cmV0dXJuIShEdyhOZVswXSxJKSYmRHcoZHQsaikmJkR3KE90LEkpJiZEdygkdCxqKSl9KTtyZXR1cm4gdWUmJih0aGlzLmNs''@;'; + put 'put ''ZWFyKCksVXIoaCxmdW5jdGlvbihfZSl7dmFyIE5lPW9TZShDKF9lKSw0KSxPdD1OZVsyXSwkdD1OZVszXTt2LnNldFJhbmdlU3RhcnRPbmx5KHYudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKE5lWzBdLE5lWzFdKSwhMSksdi5zZXRSYW5nZUVuZCh2LnRhYmxlUHJvcHMuY3JlYXRlQ2Vs''@;'; + put 'put ''bENvb3JkcyhPdCwkdCkpLHYuZmluaXNoKCl9KSksdWV9fSx7a2V5OiJzZWxlY3RDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06aCx5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAw''@;'; + put 'put ''IT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTotMSxDPSJzdHJpbmciPT10eXBlb2YgaD90aGlzLnRhYmxlUHJvcHMucHJvcFRvQ29sKGgpOmgsST0ic3RyaW5nIj09dHlwZW9mIHY/dGhpcy50YWJsZVByb3BzLnByb3BUb0NvbCh2KTp2LGo9dGhpcy50YWJsZVByb3BzLmNvdW50Q29scygp''@;'; + put 'put ''LHVlPXRoaXMudGFibGVQcm9wcy5jb3VudFJvd3MoKSxfZT1EdyhDLGopJiZEdyhJLGopO3JldHVybiBfZSYmKHRoaXMuc2V0UmFuZ2VTdGFydE9ubHkodGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoeSxDKSksdGhpcy5zZXRSYW5nZUVuZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRl''@;'; + put 'put ''Q2VsbENvb3Jkcyh1ZS0xLEkpKSx0aGlzLmZpbmlzaCgpKSxfZX19LHtrZXk6InNlbGVjdFJvd3MiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpoLHk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lk''@;'; + put 'put ''IDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOi0xLEM9dGhpcy50YWJsZVByb3BzLmNvdW50Um93cygpLEk9dGhpcy50YWJsZVByb3BzLmNvdW50Q29scygpLGo9RHcoaCxDKSYmRHcodixDKTtyZXR1cm4gaiYmKHRoaXMuc2V0UmFuZ2VTdGFydE9ubHkodGhpcy50YWJsZVByb3BzLmNy''@;'; + put 'put ''ZWF0ZUNlbGxDb29yZHMoaCx5KSksdGhpcy5zZXRSYW5nZUVuZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh2LEktMSkpLHRoaXMuZmluaXNoKCkpLGp9fSx7a2V5OiJyZWZyZXNoIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuaGlnaGxpZ2h0LmdldEN1c3RvbVNlbGVjdGlv''@;'; + put 'put ''bnMoKS5mb3JFYWNoKGZ1bmN0aW9uKF9lKXtfZS5jb21taXQoKX0pLHRoaXMuaXNTZWxlY3RlZCgpKXt2YXIgdj10aGlzLmhpZ2hsaWdodC5nZXRDZWxsKCkseT10aGlzLmdldExheWVyTGV2ZWwoKTt2LmNvbW1pdCgpLnN5bmNXaXRoKHRoaXMuc2VsZWN0ZWRSYW5nZS5jdXJyZW50KCkpO2Zv''@;'; + put 'put ''cih2YXIgQz0wO0M8dGhpcy5zZWxlY3RlZFJhbmdlLnNpemUoKTtDKz0xKXt0aGlzLmhpZ2hsaWdodC51c2VMYXllckxldmVsKEMpO3ZhciBJPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZU9yR2V0QXJlYSgpLGo9dGhpcy5oaWdobGlnaHQuY3JlYXRlT3JHZXRIZWFkZXIoKSx1ZT10aGlzLmhpZ2hs''@;'; + put 'put ''aWdodC5jcmVhdGVPckdldEFjdGl2ZUhlYWRlcigpO0kuY29tbWl0KCksai5jb21taXQoKSx1ZS5jb21taXQoKX10aGlzLmhpZ2hsaWdodC51c2VMYXllckxldmVsKHkpfX19XSksZH0oKTtSMihzU2Usc2QpO2NvbnN0IGskZT1zU2U7ZnVuY3Rpb24gdXRlKGQsZyl7dmFyIGg9InN0cmluZyI9''@;'; + put 'put ''PXR5cGVvZiBkP1plZShkKTpkO2lmKHhsKGgpKXt2YXIgdj14bChnKSx5PXt9O3JldHVybiBHbChoLGZ1bmN0aW9uKEMsSSl7IkNFTExfVFlQRSIhPT1JJiYoIXZ8fHYmJiFvMShnLEkpKSYmKHlbSV09Qyl9KSx5fX1mdW5jdGlvbiBjdGUoZCl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoZCkm''@;'; + put 'put ''JmQ+PTB9ZnVuY3Rpb24gZnRlKGQsZyl7aWYoIWQoKSl0aHJvdyBuZXcgRXJyb3IoIkFzc2VydGlvbiBmYWlsZWQ6ICIuY29uY2F0KGcpKX1mdW5jdGlvbiBodGUoZCl7cmV0dXJuIG51bGw9PWR9ZnVuY3Rpb24gS3BlKGQpe3JldHVybihLcGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYm''@;'; + put 'put ''InN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6''@;'; + put 'put ''dHlwZW9mIGd9KShkKX1jb25zdCB1U2U9ZnVuY3Rpb24oKXtyZXR1cm57YWN0aXZlSGVhZGVyQ2xhc3NOYW1lOiJodF9fYWN0aXZlX2hpZ2hsaWdodCIsYWxsb3dFbXB0eTohMCxhbGxvd0h0bWw6ITEsYWxsb3dJbnNlcnRDb2x1bW46ITAsYWxsb3dJbnNlcnRSb3c6ITAsYWxsb3dJbnZhbGlk''@;'; + put 'put ''OiEwLGFsbG93UmVtb3ZlQ29sdW1uOiEwLGFsbG93UmVtb3ZlUm93OiEwLGF1dG9Db2x1bW5TaXplOnZvaWQgMCxhdXRvUm93U2l6ZTp2b2lkIDAsYXV0b1dyYXBDb2w6ITEsYXV0b1dyYXBSb3c6ITEsYmluZFJvd3NXaXRoSGVhZGVyczp2b2lkIDAsY2VsbDpbXSxjZWxsczp2b2lkIDAsY2hl''@;'; + put 'put ''Y2tlZFRlbXBsYXRlOnZvaWQgMCxjbGFzc05hbWU6dm9pZCAwLGNvbEhlYWRlcnM6bnVsbCxjb2xsYXBzaWJsZUNvbHVtbnM6dm9pZCAwLGNvbHVtbkhlYWRlckhlaWdodDp2b2lkIDAsY29sdW1uczp2b2lkIDAsY29sdW1uU29ydGluZzp2b2lkIDAsY29sdW1uU3VtbWFyeTp2b2lkIDAsY29s''@;'; + put 'put ''V2lkdGhzOnZvaWQgMCxjb21tZW50ZWRDZWxsQ2xhc3NOYW1lOiJodENvbW1lbnRDZWxsIixjb21tZW50czohMSxjb250ZXh0TWVudTp2b2lkIDAsY29weWFibGU6ITAsY29weVBhc3RlOiEwLGNvcnJlY3RGb3JtYXQ6ITEsY3VycmVudENvbENsYXNzTmFtZTp2b2lkIDAsY3VycmVudEhlYWRl''@;'; + put 'put ''ckNsYXNzTmFtZToiaHRfX2hpZ2hsaWdodCIsY3VycmVudFJvd0NsYXNzTmFtZTp2b2lkIDAsY3VzdG9tQm9yZGVyczohMSxkYXRhOnZvaWQgMCxkYXRhU2NoZW1hOnZvaWQgMCxkYXRlRm9ybWF0OiJERC9NTS9ZWVlZIixkYXRlUGlja2VyQ29uZmlnOnZvaWQgMCxkZWZhdWx0RGF0ZTp2b2lk''@;'; + put 'put ''IDAsZGlzYWJsZVZpc3VhbFNlbGVjdGlvbjohMSxkcmFnVG9TY3JvbGw6ITAsZHJvcGRvd25NZW51OnZvaWQgMCxlZGl0b3I6dm9pZCAwLGVudGVyQmVnaW5zRWRpdGluZzohMCxlbnRlck1vdmVzOntjb2w6MCxyb3c6MX0sZmlsbEhhbmRsZTp7YXV0b0luc2VydFJvdzohMX0sZmlsdGVyOiEw''@;'; + put 'put ''LGZpbHRlcmluZ0Nhc2VTZW5zaXRpdmU6ITEsZmlsdGVyczp2b2lkIDAsZml4ZWRDb2x1bW5zTGVmdDowLGZpeGVkQ29sdW1uc1N0YXJ0OjAsZml4ZWRSb3dzQm90dG9tOjAsZml4ZWRSb3dzVG9wOjAsZm9ybXVsYXM6dm9pZCAwLGZyYWdtZW50U2VsZWN0aW9uOiExLGhlaWdodDp2b2lkIDAs''@;'; + put 'put ''aGlkZGVuQ29sdW1uczp2b2lkIDAsaGlkZGVuUm93czp2b2lkIDAsaW52YWxpZENlbGxDbGFzc05hbWU6Imh0SW52YWxpZCIsaXNFbXB0eUNvbDpmdW5jdGlvbihnKXt2YXIgaCx2O2ZvcihoPTAsdj10aGlzLmNvdW50Um93cygpO2g8djtoKyspaWYoITE9PT1kYyh0aGlzLmdldERhdGFBdENl''@;'; + put 'put ''bGwoaCxnKSkpcmV0dXJuITE7cmV0dXJuITB9LGlzRW1wdHlSb3c6ZnVuY3Rpb24oZyl7dmFyIGgsdix5LEM7Zm9yKGg9MCx2PXRoaXMuY291bnRDb2xzKCk7aDx2O2grKylpZighMT09PWRjKHk9dGhpcy5nZXREYXRhQXRDZWxsKGcsaCkpKXJldHVybiJvYmplY3QiPT09S3BlKHkpJiYoQz10''@;'; + put 'put ''aGlzLmdldENlbGxNZXRhKGcsaCksWGhlKHRoaXMuZ2V0U2NoZW1hKClbQy5wcm9wXSx5KSk7cmV0dXJuITB9LGxhYmVsOnZvaWQgMCxsYW5ndWFnZToiZW4tVVMiLGxheW91dERpcmVjdGlvbjoiaW5oZXJpdCIsbGljZW5zZUtleTp2b2lkIDAsbG9jYWxlOiJlbi1VUyIsbWFudWFsQ29sdW1u''@;'; + put 'put ''RnJlZXplOnZvaWQgMCxtYW51YWxDb2x1bW5Nb3ZlOnZvaWQgMCxtYW51YWxDb2x1bW5SZXNpemU6dm9pZCAwLG1hbnVhbFJvd01vdmU6dm9pZCAwLG1hbnVhbFJvd1Jlc2l6ZTp2b2lkIDAsbWF4Q29sczoxLzAsbWF4Um93czoxLzAsbWVyZ2VDZWxsczohMSxtaW5Db2xzOjAsbWluUm93czow''@;'; + put 'put ''LG1pblNwYXJlQ29sczowLG1pblNwYXJlUm93czowLG11bHRpQ29sdW1uU29ydGluZzp2b2lkIDAsbmVzdGVkSGVhZGVyczp2b2lkIDAsbmVzdGVkUm93czp2b2lkIDAsbm9Xb3JkV3JhcENsYXNzTmFtZToiaHROb1dyYXAiLG51bWVyaWNGb3JtYXQ6dm9pZCAwLG9ic2VydmVET01WaXNpYmls''@;'; + put 'put ''aXR5OiEwLG91dHNpZGVDbGlja0Rlc2VsZWN0czohMCxwZXJzaXN0ZW50U3RhdGU6dm9pZCAwLHBsYWNlaG9sZGVyOnZvaWQgMCxwbGFjZWhvbGRlckNlbGxDbGFzc05hbWU6Imh0UGxhY2Vob2xkZXIiLHByZXZlbnRPdmVyZmxvdzohMSxwcmV2ZW50V2hlZWw6ITEscmVhZE9ubHk6ITEscmVh''@;'; + put 'put ''ZE9ubHlDZWxsQ2xhc3NOYW1lOiJodERpbW1lZCIscmVuZGVyQWxsUm93czp2b2lkIDAscmVuZGVyZXI6dm9pZCAwLHJvd0hlYWRlcnM6dm9pZCAwLHJvd0hlYWRlcldpZHRoOnZvaWQgMCxyb3dIZWlnaHRzOnZvaWQgMCxzZWFyY2g6ITEsc2VsZWN0aW9uTW9kZToibXVsdGlwbGUiLHNlbGVj''@;'; + put 'put ''dE9wdGlvbnM6dm9pZCAwLHNraXBDb2x1bW5PblBhc3RlOiExLHNraXBSb3dPblBhc3RlOiExLHNvcnRCeVJlbGV2YW5jZTohMCxzb3VyY2U6dm9pZCAwLHN0YXJ0Q29sczo1LHN0YXJ0Um93czo1LHN0cmV0Y2hIOiJub25lIixzdHJpY3Q6dm9pZCAwLHRhYmxlQ2xhc3NOYW1lOnZvaWQgMCx0''@;'; + put 'put ''YWJNb3Zlczp7cm93OjAsY29sOjF9LHRpdGxlOnZvaWQgMCx0cmltRHJvcGRvd246ITAsdHJpbVJvd3M6dm9pZCAwLHRyaW1XaGl0ZXNwYWNlOiEwLHR5cGU6InRleHQiLHVuY2hlY2tlZFRlbXBsYXRlOnZvaWQgMCx1bmRvOnZvaWQgMCx2YWxpZGF0b3I6dm9pZCAwLHZpZXdwb3J0Q29sdW1u''@;'; + put 'put ''UmVuZGVyaW5nT2Zmc2V0OiJhdXRvIix2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDoiYXV0byIsdmlzaWJsZVJvd3M6MTAsd2lkdGg6dm9pZCAwLHdvcmRXcmFwOiEwfX07ZnVuY3Rpb24gY1NlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJh''@;'; + put 'put ''YmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gZlNlKGQsZyxoKXtyZXR1cm4gZyYmY1NlKGQucHJvdG90eXBlLGcpLGgmJmNTZShkLGgpLE9i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGR9ZnVuY3Rpb24gaFNlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9dmFyIEUkZT1mdW5jdGlvbigp''@;'; + put 'put ''e2Z1bmN0aW9uIGQoZyl7aFNlKHRoaXMsZCksdGhpcy5tZXRhQ3Rvcj1mdW5jdGlvbiBNJGUoKXtyZXR1cm4gZlNlKGZ1bmN0aW9uIGQoKXtoU2UodGhpcyxkKX0pfSgpLHRoaXMubWV0YT10aGlzLm1ldGFDdG9yLnByb3RvdHlwZSxJMSh0aGlzLm1ldGEsdVNlKCkpLHRoaXMubWV0YS5pbnN0''@;'; + put 'put ''YW5jZT1nfXJldHVybiBmU2UoZCxbe2tleToiZ2V0TWV0YUNvbnN0cnVjdG9yIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1ldGFDdG9yfX0se2tleToiZ2V0TWV0YSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXRhfX0se2tleToidXBkYXRlTWV0YSIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oaCl7STEodGhpcy5tZXRhLGgpLEkxKHRoaXMubWV0YSx1dGUoaC50eXBlLGgpKX19XSksZH0oKTtmdW5jdGlvbiBkU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0h''@;'; + put 'put ''MCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgSSRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXshZnVuY3Rpb24geCRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90''@;'; + put 'put ''IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZCk7dmFyIGg9Zy5nZXRNZXRhQ29uc3RydWN0b3IoKTt0aGlzLm1ldGE9bmV3IGh9cmV0dXJuIGZ1bmN0aW9uIFQkZShkLGcsaCl7ZyYmZFNlKGQucHJvdG90eXBlLGcpLGgmJmRTZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJnZXRNZXRhIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1ldGF9fSx7a2V5OiJ1cGRhdGVNZXRhIix2YWx1ZTpmdW5jdGlvbihoKXtJMSh0aGlzLm1ldGEsaCksSTEodGhpcy5tZXRhLHV0ZShoLnR5cGUsaCkp''@;'; + put 'put ''fX1dKSxkfSgpO2Z1bmN0aW9uIHBTZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KGQsdi5rZXksdil9fXZhciAkcGU9ZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZyhoKXsoZnVuY3Rpb24gRCRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGcpLHRoaXMudmFsdWVG''@;'; + put 'put ''YWN0b3J5PWgsdGhpcy5kYXRhPVtdLHRoaXMuaW5kZXg9W10sdGhpcy5ob2xlcz1uZXcgU2V0fXJldHVybiBmdW5jdGlvbiBMJGUoZCxnLGgpe2cmJnBTZShkLnByb3RvdHlwZSxnKSxoJiZwU2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9''@;'; + put 'put ''KX0oZyxbe2tleToib2J0YWluIix2YWx1ZTpmdW5jdGlvbih2KXtmdGUoZnVuY3Rpb24oKXtyZXR1cm4gY3RlKHYpfSwiRXhwZWN0aW5nIGFuIHVuc2lnbmVkIG51bWJlci4iKTt2YXIgQyx5PXRoaXMuX2dldFN0b3JhZ2VJbmRleEJ5S2V5KHYpO2lmKHk+PTApdm9pZCAwPT09KEM9dGhpcy5k''@;'; + put 'put ''YXRhW3ldKSYmKEM9dGhpcy52YWx1ZUZhY3RvcnkodiksdGhpcy5kYXRhW3ldPUMpO2Vsc2UgaWYoQz10aGlzLnZhbHVlRmFjdG9yeSh2KSx0aGlzLmhvbGVzLnNpemU+MCl7dmFyIEk9dGhpcy5ob2xlcy52YWx1ZXMoKS5uZXh0KCkudmFsdWU7dGhpcy5ob2xlcy5kZWxldGUoSSksdGhpcy5k''@;'; + put 'put ''YXRhW0ldPUMsdGhpcy5pbmRleFt2XT1JfWVsc2UgdGhpcy5kYXRhLnB1c2goQyksdGhpcy5pbmRleFt2XT10aGlzLmRhdGEubGVuZ3RoLTE7cmV0dXJuIEN9fSx7a2V5OiJpbnNlcnQiLHZhbHVlOmZ1bmN0aW9uKHYpe3ZhciB5LEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1''@;'; + put 'put ''bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7ZnRlKGZ1bmN0aW9uKCl7cmV0dXJuIGN0ZSh2KXx8aHRlKHYpfSwiRXhwZWN0aW5nIGFuIHVuc2lnbmVkIG51bWJlciBvciBudWxsL3VuZGVmaW5lZCBhcmd1bWVudC4iKTtmb3IodmFyIEk9W10saj10aGlzLmRhdGEubGVuZ3RoLHVlPTA7dWU8Qzt1''@;'; + put 'put ''ZSsrKUkucHVzaChqK3VlKSx0aGlzLmRhdGEucHVzaCh2b2lkIDApOyh5PXRoaXMuaW5kZXgpLnNwbGljZS5hcHBseSh5LFtodGUodik/dGhpcy5pbmRleC5sZW5ndGg6diwwXS5jb25jYXQoSSkpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbih2KXt2YXIgeT1hcmd1bWVudHMubGVu''@;'; + put 'put ''Z3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MTtmdGUoZnVuY3Rpb24oKXtyZXR1cm4gY3RlKHYpfHxodGUodil9LCJFeHBlY3RpbmcgYW4gdW5zaWduZWQgbnVtYmVyIG9yIG51bGwvdW5kZWZpbmVkIGFyZ3VtZW50LiIpO2Zvcih2YXIgQz10aGlzLmluZGV4LnNw''@;'; + put 'put ''bGljZShodGUodik/dGhpcy5pbmRleC5sZW5ndGgteTp2LHkpLEk9MDtJPEMubGVuZ3RoO0krKyl7dmFyIGo9Q1tJXTsibnVtYmVyIj09dHlwZW9mIGomJnRoaXMuaG9sZXMuYWRkKGopfX19LHtrZXk6InNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGgtdGhp''@;'; + put 'put ''cy5ob2xlcy5zaXplfX0se2tleToidmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB2PXRoaXM7cmV0dXJuIGc0KHRoaXMuZGF0YSxmdW5jdGlvbih5LEMpe3JldHVybiF2LmhvbGVzLmhhcyhDKX0pW1N5bWJvbC5pdGVyYXRvcl0oKX19LHtrZXk6ImVudHJpZXMiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7Zm9yKHZhciB2PVtdLHk9MDt5PHRoaXMuZGF0YS5sZW5ndGg7eSsrKXt2YXIgQz10aGlzLl9nZXRLZXlCeVN0b3JhZ2VJbmRleCh5KTstMSE9PUMmJnYucHVzaChbQyx0aGlzLmRhdGFbeV1dKX12YXIgST0wO3JldHVybntuZXh0OmZ1bmN0aW9uKCl7aWYoSTx2Lmxlbmd0aCl7dmFyIHVl''@;'; + put 'put ''PXZbSV07cmV0dXJuIEkrPTEse3ZhbHVlOnVlLGRvbmU6ITF9fXJldHVybntkb25lOiEwfX19fX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kYXRhPVtdLHRoaXMuaW5kZXg9W10sdGhpcy5ob2xlcy5jbGVhcigpfX0se2tleToiX2dldFN0b3JhZ2VJbmRleEJ5S2V5Iix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5pbmRleC5sZW5ndGg+dj90aGlzLmluZGV4W3ZdOi0xfX0se2tleToiX2dldEtleUJ5U3RvcmFnZUluZGV4Iix2YWx1ZTpmdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5pbmRleC5pbmRleE9mKHYpfX0se2tleTpTeW1ib2wuaXRlcmF0b3IsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbnRyaWVzKCl9fV0pLGd9KCk7ZnVuY3Rpb24gZ1NlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2''@;'; + put 'put ''LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIEIkZT1bImRhdGEiLCJ3aWR0aCJdLFAkZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9dGhpczsoZnVuY3Rpb24gTyRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5''@;'; + put 'put ''cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuZ2xvYmFsTWV0YT1nLHRoaXMubWV0YXM9bmV3ICRwZShmdW5jdGlvbigpe3JldHVybiBoLl9jcmVhdGVNZXRhKCl9KX1yZXR1cm4gZnVuY3Rpb24gUiRlKGQsZyxoKXtnJiZnU2UoZC5w''@;'; + put 'put ''cm90b3R5cGUsZyksaCYmZ1NlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InVwZGF0ZU1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5nZXRNZXRhKGgpO0kxKHksdiksSTEoeSx1dGUodi50eXBlLHkp''@;'; + put 'put ''KX19LHtrZXk6ImNyZWF0ZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLm1ldGFzLmluc2VydChoLHYpfX0se2tleToicmVtb3ZlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMubWV0YXMucmVtb3ZlKGgsdil9fSx7a2V5OiJnZXRNZXRhIix2YWx1ZTpmdW5jdGlvbiho''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy5tZXRhcy5vYnRhaW4oaCl9fSx7a2V5OiJnZXRNZXRhQ29uc3RydWN0b3IiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLm1ldGFzLm9idGFpbihoKS5jb25zdHJ1Y3Rvcn19LHtrZXk6ImNsZWFyQ2FjaGUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tZXRhcy5j''@;'; + put 'put ''bGVhcigpfX0se2tleToiX2NyZWF0ZU1ldGEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIFMkZShkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W107ZnVuY3Rpb24gaCgpe31rOShoLGQpO2Zvcih2YXIgdj0w''@;'; + put 'put ''O3Y8Zy5sZW5ndGg7disrKWgucHJvdG90eXBlW2dbdl1dPXZvaWQgMDtyZXR1cm4gaH0odGhpcy5nbG9iYWxNZXRhLmdldE1ldGFDb25zdHJ1Y3RvcigpLEIkZSkucHJvdG90eXBlfX1dKSxkfSgpO2Z1bmN0aW9uIEYkZShkKXtyZXR1cm4gZnVuY3Rpb24gaiRlKGQpe2lmKEFycmF5LmlzQXJy''@;'; + put 'put ''YXkoZCkpcmV0dXJuIHFwZShkKX0oZCl8fGZ1bmN0aW9uIFYkZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBOJGUoZCxnKXtp''@;'; + put 'put ''ZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHFwZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0''@;'; + put 'put ''Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gcXBlKGQsZyl9fShkKXx8ZnVuY3Rpb24gSCRlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBh''@;'; + put 'put ''dHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gcXBlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5n''@;'; + put 'put ''dGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gbVNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25m''@;'; + put 'put ''aWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIEckZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9dGhpczsoZnVuY3Rpb24gWiRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cg''@;'; + put 'put ''bmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuY29sdW1uTWV0YT1nLHRoaXMubWV0YXM9bmV3ICRwZShmdW5jdGlvbigpe3JldHVybiBoLl9jcmVhdGVSb3coKX0pfXJldHVybiBmdW5jdGlvbiB6JGUoZCxnLGgpe2cmJm1T''@;'; + put 'put ''ZShkLnByb3RvdHlwZSxnKSxoJiZtU2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToidXBkYXRlTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXRoaXMuZ2V0TWV0YShoLHYpO0kxKEMseSksSTEoQyx1dGUo''@;'; + put 'put ''eS50eXBlLEMpKX19LHtrZXk6ImNyZWF0ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLm1ldGFzLmluc2VydChoLHYpfX0se2tleToiY3JlYXRlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoLHYpe2Zvcih2YXIgeT0wO3k8dGhpcy5tZXRhcy5zaXplKCk7eSsrKXRoaXMubWV0YXMub2J0''@;'; + put 'put ''YWluKHkpLmluc2VydChoLHYpfX0se2tleToicmVtb3ZlUm93Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMubWV0YXMucmVtb3ZlKGgsdil9fSx7a2V5OiJyZW1vdmVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKGgsdil7Zm9yKHZhciB5PTA7eTx0aGlzLm1ldGFzLnNpemUoKTt5KyspdGhpcy5t''@;'; + put 'put ''ZXRhcy5vYnRhaW4oeSkucmVtb3ZlKGgsdil9fSx7a2V5OiJnZXRNZXRhIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcy5tZXRhcy5vYnRhaW4oaCkub2J0YWluKHYpO3JldHVybiB2b2lkIDA9PT15P0M6Q1t5XX19LHtrZXk6InNldE1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5''@;'; + put 'put ''LEMpe3RoaXMubWV0YXMub2J0YWluKGgpLm9idGFpbih2KVt5XT1DfX0se2tleToicmVtb3ZlTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe2RlbGV0ZSB0aGlzLm1ldGFzLm9idGFpbihoKS5vYnRhaW4odilbeV19fSx7a2V5OiJnZXRNZXRhcyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFy''@;'; + put 'put ''IGg9W10sdj1BcnJheS5mcm9tKHRoaXMubWV0YXMudmFsdWVzKCkpLHk9MDt5PHYubGVuZ3RoO3krKyloLnB1c2guYXBwbHkoaCxGJGUodlt5XS52YWx1ZXMoKSkpO3JldHVybiBofX0se2tleToiZ2V0TWV0YXNBdFJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7ZnRlKGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IGN0ZShoKX0sIkV4cGVjdGluZyBhbiB1bnNpZ25lZCBudW1iZXIuIik7dmFyIHY9bmV3IE1hcCh0aGlzLm1ldGFzKTtyZXR1cm4gdi5oYXMoaCk/QXJyYXkuZnJvbSh2LmdldChoKS52YWx1ZXMoKSk6W119fSx7a2V5OiJjbGVhckNhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWV0YXMu''@;'; + put 'put ''Y2xlYXIoKX19LHtrZXk6Il9jcmVhdGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcztyZXR1cm4gbmV3ICRwZShmdW5jdGlvbih2KXtyZXR1cm4gaC5fY3JlYXRlTWV0YSh2KX0pfX0se2tleToiX2NyZWF0ZU1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBuZXcodGhpcy5j''@;'; + put 'put ''b2x1bW5NZXRhLmdldE1ldGFDb25zdHJ1Y3RvcihoKSl9fV0pLGR9KCk7ZnVuY3Rpb24gVyRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gdlNlKGQsZyl7Zm9yKHZhciBo''@;'; + put 'put ''PTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIEFTZT1mdW5jdGlvbigpe2Z1bmN0''@;'; + put 'put ''aW9uIGQoZyl7dmFyIGg9dGhpcyx2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSx5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpbXTtXJGUodGhpcyxkKSx0aGlzLmhvdD1nLHRo''@;'; + put 'put ''aXMuZ2xvYmFsTWV0YT1uZXcgRSRlKGcpLHRoaXMudGFibGVNZXRhPW5ldyBJJGUodGhpcy5nbG9iYWxNZXRhKSx0aGlzLmNvbHVtbk1ldGE9bmV3IFAkZSh0aGlzLmdsb2JhbE1ldGEpLHRoaXMuY2VsbE1ldGE9bmV3IEckZSh0aGlzLmNvbHVtbk1ldGEpLHkuZm9yRWFjaChmdW5jdGlvbihD''@;'; + put 'put ''KXtyZXR1cm4gbmV3IEMoaCl9KSx0aGlzLmdsb2JhbE1ldGEudXBkYXRlTWV0YSh2KX1yZXR1cm4gZnVuY3Rpb24gWSRlKGQsZyxoKXtnJiZ2U2UoZC5wcm90b3R5cGUsZyksaCYmdlNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQs''@;'; + put 'put ''W3trZXk6ImdldEdsb2JhbE1ldGEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2xvYmFsTWV0YS5nZXRNZXRhKCl9fSx7a2V5OiJ1cGRhdGVHbG9iYWxNZXRhIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmdsb2JhbE1ldGEudXBkYXRlTWV0YShoKX19LHtrZXk6ImdldFRhYmxlTWV0''@;'; + put 'put ''YSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWJsZU1ldGEuZ2V0TWV0YSgpfX0se2tleToidXBkYXRlVGFibGVNZXRhIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnRhYmxlTWV0YS51cGRhdGVNZXRhKGgpfX0se2tleToiZ2V0Q29sdW1uTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuY29sdW1uTWV0YS5nZXRNZXRhKGgpfX0se2tleToidXBkYXRlQ29sdW1uTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLmNvbHVtbk1ldGEudXBkYXRlTWV0YShoLHYpfX0se2tleToiZ2V0Q2VsbE1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz15LnZp''@;'; + put 'put ''c3VhbFJvdyxJPXkudmlzdWFsQ29sdW1uLGo9dGhpcy5jZWxsTWV0YS5nZXRNZXRhKGgsdik7cmV0dXJuIGoudmlzdWFsUm93PUMsai52aXN1YWxDb2w9SSxqLnJvdz1oLGouY29sPXYsdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckdldENlbGxNZXRhIixqKSxqfX0se2tleToiZ2V0Q2VsbE1l''@;'; + put 'put ''dGFLZXlWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe2lmKCJzdHJpbmciIT10eXBlb2YgeSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBwYXNzZWQgY2VsbCBtZXRhIG9iamVjdCBrZXkgaXMgbm90IGEgc3RyaW5nIik7cmV0dXJuIHRoaXMuY2VsbE1ldGEuZ2V0TWV0YShoLHYseSl9fSx7a2V5''@;'; + put 'put ''OiJzZXRDZWxsTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyl7dGhpcy5jZWxsTWV0YS5zZXRNZXRhKGgsdix5LEMpfX0se2tleToidXBkYXRlQ2VsbE1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt0aGlzLmNlbGxNZXRhLnVwZGF0ZU1ldGEoaCx2LHkpfX0se2tleToicmVtb3ZlQ2Vs''@;'; + put 'put ''bE1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt0aGlzLmNlbGxNZXRhLnJlbW92ZU1ldGEoaCx2LHkpfX0se2tleToiZ2V0Q2VsbHNNZXRhIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNlbGxNZXRhLmdldE1ldGFzKCl9fSx7a2V5OiJnZXRDZWxsc01ldGFBdFJvdyIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY2VsbE1ldGEuZ2V0TWV0YXNBdFJvdyhoKX19LHtrZXk6ImNyZWF0ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7dGhpcy5jZWxsTWV0YS5j''@;'; + put 'put ''cmVhdGVSb3coaCx2KX19LHtrZXk6InJlbW92ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7dGhpcy5jZWxsTWV0YS5yZW1vdmVSb3coaCx2KX19LHtrZXk6ImNyZWF0ZUNvbHVtbiIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7dGhpcy5jZWxsTWV0YS5jcmVhdGVDb2x1bW4oaCx2KSx0aGlzLmNvbHVtbk1ldGEuY3JlYXRlQ29sdW1uKGgsdil9fSx7a2V5OiJyZW1vdmVDb2x1''@;'; + put 'put ''bW4iLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxO3RoaXMuY2VsbE1ldGEucmVtb3ZlQ29sdW1uKGgsdiksdGhpcy5jb2x1bW5NZXRhLnJlbW92ZUNvbHVtbihoLHYpfX0se2tleToiY2xlYXJD''@;'; + put 'put ''ZWxsc0NhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2VsbE1ldGEuY2xlYXJDYWNoZSgpfX0se2tleToiY2xlYXJDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNlbGxNZXRhLmNsZWFyQ2FjaGUoKSx0aGlzLmNvbHVtbk1ldGEuY2xlYXJDYWNoZSgpfX1dKSxkfSgpO2Z1bmN0aW9u''@;'; + put 'put ''IHlTZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fVIyKEFT''@;'; + put 'put ''ZSxzZCk7dmFyIEokZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9dGhpczsoZnVuY3Rpb24gVSRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMubWV0''@;'; + put 'put ''YU1hbmFnZXI9Zyx0aGlzLm1ldGFTeW5jTWVtbz1uZXcgTWFwLGcuYWRkTG9jYWxIb29rKCJhZnRlckdldENlbGxNZXRhIixmdW5jdGlvbih2KXtyZXR1cm4gaC5leHRlbmRDZWxsTWV0YSh2KX0pLHpvLmdldFNpbmdsZXRvbigpLmFkZCgiYmVmb3JlUmVuZGVyIixmdW5jdGlvbih2KXt2JiZo''@;'; + put 'put ''Lm1ldGFTeW5jTWVtby5jbGVhcigpfSx0aGlzLm1ldGFNYW5hZ2VyLmhvdCl9cmV0dXJuIGZ1bmN0aW9uIFEkZShkLGcsaCl7ZyYmeVNlKGQucHJvdG90eXBlLGcpLGgmJnlTZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5''@;'; + put 'put ''OiJleHRlbmRDZWxsTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHYseT1oLnJvdyxDPWguY29sO2lmKG51bGw9PT0odj10aGlzLm1ldGFTeW5jTWVtby5nZXQoeSkpfHx2b2lkIDA9PT12fHwhdi5oYXMoQykpe3ZhciBJPWgudmlzdWFsUm93LGo9aC52aXN1YWxDb2wsdWU9dGhpcy5tZXRh''@;'; + put 'put ''TWFuYWdlci5ob3QsX2U9dWUuY29sVG9Qcm9wKGopO2gucHJvcD1fZSx1ZS5ydW5Ib29rcygiYmVmb3JlR2V0Q2VsbE1ldGEiLEksaixoKTt2YXIgQmU9bzEoaCwidHlwZSIpP2gudHlwZTpudWxsLE5lPVkyKGguY2VsbHMpP2guY2VsbHMoeSxDLF9lKTpudWxsO2lmKEJlKWlmKE5lKXt2YXIg''@;'; + put 'put ''S2U7TmUudHlwZT1udWxsIT09KEtlPU5lLnR5cGUpJiZ2b2lkIDAhPT1LZT9LZTpCZX1lbHNlIE5lPXt0eXBlOkJlfTtOZSYmdGhpcy5tZXRhTWFuYWdlci51cGRhdGVDZWxsTWV0YSh5LEMsTmUpLHVlLnJ1bkhvb2tzKCJhZnRlckdldENlbGxNZXRhIixJLGosaCksdGhpcy5tZXRhU3luY01l''@;'; + put 'put ''bW8uaGFzKHkpfHx0aGlzLm1ldGFTeW5jTWVtby5zZXQoeSxuZXcgU2V0KSx0aGlzLm1ldGFTeW5jTWVtby5nZXQoeSkuYWRkKEMpfX19XSksZH0oKTtmdW5jdGlvbiB3U2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJh''@;'; + put 'put ''YmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgJCRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24gWCRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhy''@;'; + put 'put ''b3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMubWV0YU1hbmFnZXI9Zyx0aGlzLnVzYWdlVHJhY2tlcj1uZXcgU2V0LHRoaXMucHJvcERlc2NyaXB0b3JzPW5ldyBNYXAoW1siZml4ZWRDb2x1bW5zTGVmdCIse3Rhcmdl''@;'; + put 'put ''dDoiZml4ZWRDb2x1bW5zU3RhcnQiLG9uQ2hhbmdlOmZ1bmN0aW9uKHYpe2lmKHRoaXMubWV0YU1hbmFnZXIuaG90LmlzUnRsKCkmJiJmaXhlZENvbHVtbnNMZWZ0Ij09PXYpdGhyb3cgbmV3IEVycm9yKCJUaGUgYGZpeGVkQ29sdW1uc0xlZnRgIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFJUTC4g''@;'; + put 'put ''UGxlYXNlIHVzZSBvcHRpb24gYGZpeGVkQ29sdW1uc1N0YXJ0YC4iKTtpZih0aGlzLnVzYWdlVHJhY2tlci5oYXMoImZpeGVkQ29sdW1uc0xlZnQiKSYmdGhpcy51c2FnZVRyYWNrZXIuaGFzKCJmaXhlZENvbHVtbnNTdGFydCIpKXRocm93IG5ldyBFcnJvcigiVGhlIGBmaXhlZENvbHVtbnNM''@;'; + put 'put ''ZWZ0YCBhbmQgYGZpeGVkQ29sdW1uc1N0YXJ0YCBzaG91bGQgbm90IGJlIHVzZWQgdG9nZXRoZXIuIFBsZWFzZSB1c2Ugb25seSB0aGUgb3B0aW9uIGBmaXhlZENvbHVtbnNTdGFydGAuIil9fV0sWyJsYXlvdXREaXJlY3Rpb24iLHtvbkNoYW5nZTpmdW5jdGlvbih2LHksQyl7aWYoIUMpdGhy''@;'; + put 'put ''b3cgbmV3IEVycm9yKCJUaGUgYCIuY29uY2F0KHYsImAgb3B0aW9uIGNhbiBub3QgYmUgdXBkYXRlZCBhZnRlciB0aGUgSGFuZHNvbnRhYmxlIGlzIGluaXRpYWxpemVkLiIpKX19XV0pLHRoaXMuZXh0ZW5kTWV0YVByb3BzKCl9cmV0dXJuIGZ1bmN0aW9uIEskZShkLGcsaCl7ZyYmd1NlKGQu''@;'; + put 'put ''cHJvdG90eXBlLGcpLGgmJndTZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJleHRlbmRNZXRhUHJvcHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLnByb3BEZXNjcmlwdG9ycy5mb3JFYWNoKGZ1bmN0''@;'; + put 'put ''aW9uKHYseSl7dmFyIEM9di50YXJnZXQsST12Lm9uQ2hhbmdlLGo9dm9pZCAwPT09ST9mdW5jdGlvbigpe306SSx1ZT0ic3RyaW5nIj09dHlwZW9mIEMsX2U9dWU/Qzp5LEJlPSJfIi5jb25jYXQoX2UpO2gubWV0YU1hbmFnZXIuZ2xvYmFsTWV0YS5tZXRhW0JlXT1oLm1ldGFNYW5hZ2VyLmds''@;'; + put 'put ''b2JhbE1ldGEubWV0YVtfZV0saC5pbnN0YWxsUHJvcFdhdGNoZXIoeSxCZSxqKSx1ZSYmaC5pbnN0YWxsUHJvcFdhdGNoZXIoQyxCZSxqKX0pfX0se2tleToiaW5zdGFsbFByb3BXYXRjaGVyIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcztPYmplY3QuZGVmaW5lUHJvcGVydHko''@;'; + put 'put ''dGhpcy5tZXRhTWFuYWdlci5nbG9iYWxNZXRhLm1ldGEsaCx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbdl19LHNldDpmdW5jdGlvbihqKXt2YXIgdWU9IUMudXNhZ2VUcmFja2VyLmhhcyhoKTtDLnVzYWdlVHJhY2tlci5hZGQoaCkseS5jYWxsKEMsaCxqLHVlKSx0aGlzW3ZdPWp9LGVu''@;'; + put 'put ''dW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9fV0pLGR9KCksYlNlPShMKDg1NzM1KSwvXihcclxufFxuXHJ8XHJ8XG4pLykscSRlPS9eW15cdFxyXG5dKy8sX1NlPS9eXHQvO2Z1bmN0aW9uIHN6KGQpe3ZhciBnLGgsdix5LEksQz0iIjtmb3IoZz0wLGg9ZC5sZW5ndGg7ZzxoO2crPTEp''@;'; + put 'put ''e2Zvcih5PWRbZ10ubGVuZ3RoLHY9MDt2PHk7dis9MSl2PjAmJihDKz0iXHQiKSwic3RyaW5nIj09dHlwZW9mKEk9ZFtnXVt2XSk/SS5pbmRleE9mKCJcbiIpPi0xP0MrPSciJy5jb25jYXQoSS5yZXBsYWNlKC8iL2csJyIiJyksJyInKTpDKz1JOkMrPW51bGw9PUk/IiI6STtnIT09aC0xJiYo''@;'; + put 'put ''Qys9IlxuIil9cmV0dXJuIEN9ZnVuY3Rpb24gZTZlKGQpe3JldHVybihlNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9u''@;'; + put 'put ''Ij09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBDU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJh''@;'; + put 'put ''YmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgcnFlPUtaKCJjb3B5YWJsZSIsITEpLGlxZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoLHYpeyhmdW5jdGlvbiB0cWUoZCxn''@;'; + put 'put ''KXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5pbnN0YW5jZT1nLHRoaXMudGFibGVNZXRhPXYsdGhpcy5kYXRhU291cmNlPWgsdGhpcy5kdWNrU2NoZW1hPXRoaXMuZGF0''@;'; + put 'put ''YVNvdXJjZSYmdGhpcy5kYXRhU291cmNlWzBdPyRMKHRoaXMuZGF0YVNvdXJjZVswXSk6e30sdGhpcy5jb2xUb1Byb3BDYWNoZT12b2lkIDAsdGhpcy5wcm9wVG9Db2xDYWNoZT12b2lkIDAsdGhpcy5jcmVhdGVNYXAoKX1yZXR1cm4gZnVuY3Rpb24gbnFlKGQsZyxoKXtnJiZDU2UoZC5wcm90''@;'; + put 'put ''b3R5cGUsZyksaCYmQ1NlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImNyZWF0ZU1hcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFNjaGVtYSgpO2lmKHZvaWQgMD09PWgpdGhyb3cgbmV3IEVycm9yKCJ0''@;'; + put 'put ''cnlpbmcgdG8gY3JlYXRlIGBjb2x1bW5zYCBkZWZpbml0aW9uIGJ1dCB5b3UgZGlkbid0IHByb3ZpZGUgYHNjaGVtYWAgbm9yIGBkYXRhYCIpO3ZhciB5LHY9dGhpcy50YWJsZU1ldGEuY29sdW1ucztpZih0aGlzLmNvbFRvUHJvcENhY2hlPVtdLHRoaXMucHJvcFRvQ29sQ2FjaGU9bmV3IE1h''@;'; + put 'put ''cCx2KXt2YXIgQz0wLEk9MCxqPSExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB2KXt2YXIgdWU9SnEoaCk7Qz11ZT4wP3VlOnRoaXMuY291bnRGaXJzdFJvd0tleXMoKSxqPSEwfWVsc2UgQz1NYXRoLm1pbih0aGlzLnRhYmxlTWV0YS5tYXhDb2xzLHYubGVuZ3RoKTtmb3IoeT0wO3k8Qzt5Kysp''@;'; + put 'put ''e3ZhciBCZT1qP3YoeSk6dlt5XTtpZih4bChCZSkpe2lmKHZvaWQgMCE9PUJlLmRhdGEpe3ZhciBOZT1qP0k6eTt0aGlzLmNvbFRvUHJvcENhY2hlW05lXT1CZS5kYXRhLHRoaXMucHJvcFRvQ29sQ2FjaGUuc2V0KEJlLmRhdGEsTmUpfUkrPTF9fX1lbHNlIHRoaXMucmVjdXJzaXZlRHVja0Nv''@;'; + put 'put ''bHVtbnMoaCl9fSx7a2V5OiJjb3VudEZpcnN0Um93S2V5cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gVWRlKHRoaXMuZGF0YVNvdXJjZSl9fSx7a2V5OiJyZWN1cnNpdmVEdWNrQ29sdW1ucyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciB1ZSxDPXRoaXMsST12LGo9eTtyZXR1cm4gdm9p''@;'; + put 'put ''ZCAwPT09SSYmKEk9MCxqPSIiKSwib2JqZWN0Ij09PWU2ZShoKSYmIUFycmF5LmlzQXJyYXkoaCkmJkdsKGgsZnVuY3Rpb24oX2UsQmUpe251bGw9PT1fZT8oQy5jb2xUb1Byb3BDYWNoZS5wdXNoKHVlPWorQmUpLEMucHJvcFRvQ29sQ2FjaGUuc2V0KHVlLEkpLEkrPTEpOkk9Qy5yZWN1cnNp''@;'; + put 'put ''dmVEdWNrQ29sdW1ucyhfZSxJLCIiLmNvbmNhdChCZSwiLiIpKX0pLEl9fSx7a2V5OiJjb2xUb1Byb3AiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKCExPT09TnVtYmVyLmlzSW50ZWdlcihoKSlyZXR1cm4gaDt2YXIgdj10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxDb2x1bW4oaCk7cmV0dXJuIG51''@;'; + put 'put ''bGw9PT12P2g6dGhpcy5jb2xUb1Byb3BDYWNoZSYmVG8odGhpcy5jb2xUb1Byb3BDYWNoZVt2XSk/dGhpcy5jb2xUb1Byb3BDYWNoZVt2XTp2fX0se2tleToicHJvcFRvQ29sIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLnByb3BUb0NvbENhY2hlLmdldChoKTtpZihUbyh2KSlyZXR1''@;'; + put 'put ''cm4gdGhpcy5pbnN0YW5jZS50b1Zpc3VhbENvbHVtbih2KTt2YXIgeT10aGlzLmluc3RhbmNlLnRvVmlzdWFsQ29sdW1uKGgpO3JldHVybiBudWxsPT09eT9oOnl9fSx7a2V5OiJnZXRTY2hlbWEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy50YWJsZU1ldGEuZGF0YVNjaGVtYTtyZXR1''@;'; + put 'put ''cm4gaD8iZnVuY3Rpb24iPT10eXBlb2YgaD9oKCk6aDp0aGlzLmR1Y2tTY2hlbWF9fSx7a2V5OiJjcmVhdGVSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MSxDPWFyZ3VtZW50''@;'; + put 'put ''cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLEk9dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKSxqPUksdWU9MCxfZT1oOygibnVtYmVyIiE9dHlwZW9mIF9lfHxfZT49SSkmJihfZT1JKSxfZTx0aGlzLmluc3RhbmNlLmNvdW50Um93cygpJiYoaj10aGlzLmluc3RhbmNlLnRv''@;'; + put 'put ''UGh5c2ljYWxSb3coX2UpKTt2YXIgQmU9dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlQ3JlYXRlUm93IixfZSx5LEMpO2lmKCExPT09QmV8fG51bGw9PT1qKXJldHVybiAwO2Zvcih2YXIgTmU9dGhpcy50YWJsZU1ldGEubWF4Um93cyxLZT10aGlzLmluc3RhbmNlLmNvdW50Q29scygp''@;'; + put 'put ''LGR0PVtdLE90PWZ1bmN0aW9uKCl7dmFyIGZuPW51bGw7ImFycmF5Ij09PXYuaW5zdGFuY2UuZGF0YVR5cGU/di50YWJsZU1ldGEuZGF0YVNjaGVtYT9mbj1naCh2LmdldFNjaGVtYSgpKTooZm49W10saWEoS2UtMSxmdW5jdGlvbigpe3JldHVybiBmbi5wdXNoKG51bGwpfSkpOiJmdW5jdGlv''@;'; + put 'put ''biI9PT12Lmluc3RhbmNlLmRhdGFUeXBlP2ZuPXYudGFibGVNZXRhLmRhdGFTY2hlbWEoX2UrdWUpOklaKGZuPXt9LHYuZ2V0U2NoZW1hKCkpLGR0LnB1c2goZm4pLHVlKz0xfTt1ZTx5JiZJK3VlPE5lOylPdCgpO3JldHVybiB0aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmluc2VydElu''@;'; + put 'put ''ZGV4ZXMoX2UsdWUpLHRoaXMuc3BsaWNlRGF0YS5hcHBseSh0aGlzLFtqLDBdLmNvbmNhdChkdCkpLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyQ3JlYXRlUm93IixfZSx1ZSxDKSx0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlcj0hMCx1ZX19LHtrZXk6ImNyZWF0ZUNvbCIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEseT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtpZighdGhpcy5pbnN0YW5jZS5pc0NvbHVtbk1vZGlmaWNhdGlvbkFsbG93ZWQo''@;'; + put 'put ''KSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjcmVhdGUgbmV3IGNvbHVtbi4gV2hlbiBkYXRhIHNvdXJjZSBpbiBhbiBvYmplY3QsIHlvdSBjYW4gb25seSBoYXZlIGFzIG11Y2ggY29sdW1ucyBhcyBkZWZpbmVkIGluIGZpcnN0IGRhdGEgcm93LCBkYXRhIHNjaGVtYSBvciBpbiB0aGUgJ2Nv''@;'; + put 'put ''bHVtbnMnIHNldHRpbmcuSWYgeW91IHdhbnQgdG8gYmUgYWJsZSB0byBhZGQgbmV3IGNvbHVtbnMsIHlvdSBoYXZlIHRvIHVzZSBhcnJheSBkYXRhc291cmNlLiIpO3ZhciBDPXRoaXMuZGF0YVNvdXJjZSxJPXRoaXMudGFibGVNZXRhLm1heENvbHMsaj1oOygibnVtYmVyIiE9dHlwZW9mIGp8''@;'; + put 'put ''fGo+PXRoaXMuaW5zdGFuY2UuY291bnRTb3VyY2VDb2xzKCkpJiYoaj10aGlzLmluc3RhbmNlLmNvdW50U291cmNlQ29scygpKTt2YXIgdWU9dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlQ3JlYXRlQ29sIixqLHYseSk7aWYoITE9PT11ZSlyZXR1cm4gMDt2YXIgX2U9dGhpcy5pbnN0''@;'; + put 'put ''YW5jZS5jb3VudFNvdXJjZUNvbHMoKTtqPHRoaXMuaW5zdGFuY2UuY291bnRDb2xzKCkmJihfZT10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxDb2x1bW4oaikpO2Zvcih2YXIgQmU9dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKSxOZT10aGlzLmluc3RhbmNlLmNvdW50Q29scygpLEtl''@;'; + put 'put ''PTAsZHQ9X2U7S2U8diYmTmU8STspe2lmKCJudW1iZXIiIT10eXBlb2Yganx8aj49TmUpaWYoQmU+MClmb3IodmFyIE90PTA7T3Q8QmU7T3QrPTEpdm9pZCAwPT09Q1tPdF0mJihDW090XT1bXSksQ1tPdF0ucHVzaChudWxsKTtlbHNlIEMucHVzaChbbnVsbF0pO2Vsc2UgZm9yKHZhciAkdD0w''@;'; + put 'put ''OyR0PEJlOyR0KyspQ1skdF0uc3BsaWNlKGR0LDAsbnVsbCk7S2UrPTEsZHQrPTEsTmUrPTF9cmV0dXJuIHRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuaW5zZXJ0SW5kZXhlcyhqLEtlKSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlckNyZWF0ZUNvbCIsaixLZSx5KSx0aGlz''@;'; + put 'put ''Lmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlcj0hMCxLZX19LHtrZXk6InJlbW92ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEseT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJd''@;'; + put 'put ''OnZvaWQgMCxDPU51bWJlci5pc0ludGVnZXIoaCk/aDotdixJPXRoaXMudmlzdWFsUm93c1RvUGh5c2ljYWwoQyx2KSxqPXRoaXMuaW5zdGFuY2UuY291bnRTb3VyY2VSb3dzKCksdWU9dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVtb3ZlUm93IixDPShqK0MpJWosSS5sZW5ndGgs''@;'; + put 'put ''SSx5KTtpZighMT09PXVlKXJldHVybiExO3ZhciBfZT1JLmxlbmd0aDtpZih0aGlzLmZpbHRlckRhdGEoQyxfZSxJKSxDPHRoaXMuaW5zdGFuY2UuY291bnRSb3dzKCkpe3RoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIucmVtb3ZlSW5kZXhlcyhJKTt2YXIgQmU9VG8odGhpcy50YWJsZU1l''@;'; + put 'put ''dGEuY29sdW1ucyl8fFRvKHRoaXMudGFibGVNZXRhLmRhdGFTY2hlbWEpOzA9PT10aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldE5vdFRyaW1tZWRJbmRleGVzTGVuZ3RoKCkmJiExPT09QmUmJnRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNl''@;'; + put 'put ''KFtdKX1yZXR1cm4gdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJSZW1vdmVSb3ciLEMsX2UsSSx5KSx0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlcj0hMCwhMH19LHtrZXk6InJlbW92ZUNvbCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lk''@;'; + put 'put ''IDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEseT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtpZigib2JqZWN0Ij09PXRoaXMuaW5zdGFuY2UuZGF0YVR5cGV8fHRoaXMudGFibGVNZXRhLmNvbHVtbnMpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgcmVtb3Zl''@;'; + put 'put ''IGNvbHVtbiB3aXRoIG9iamVjdCBkYXRhIHNvdXJjZSBvciBjb2x1bW5zIG9wdGlvbiBzcGVjaWZpZWQiKTt2YXIgQz0ibnVtYmVyIiE9dHlwZW9mIGg/LXY6aDtDPSh0aGlzLmluc3RhbmNlLmNvdW50Q29scygpK0MpJXRoaXMuaW5zdGFuY2UuY291bnRDb2xzKCk7dmFyIEk9dGhpcy52aXN1''@;'; + put 'put ''YWxDb2x1bW5zVG9QaHlzaWNhbChDLHYpLGo9SS5zbGljZSgwKS5zb3J0KGZ1bmN0aW9uKGlyLG1yKXtyZXR1cm4gbXItaXJ9KSx1ZT10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVSZW1vdmVDb2wiLEMsdixJLHkpO2lmKCExPT09dWUpcmV0dXJuITE7Zm9yKHZhciBfZT0hMCxCZT1q''@;'; + put 'put ''Lmxlbmd0aCxOZT10aGlzLmRhdGFTb3VyY2UsS2U9MDtLZTxCZTtLZSsrKV9lJiZJWzBdIT09SVtLZV0tS2UmJihfZT0hMSk7aWYoX2UpZm9yKHZhciBkdD0wLE90PXRoaXMuaW5zdGFuY2UuY291bnRTb3VyY2VSb3dzKCk7ZHQ8T3Q7ZHQrKylOZVtkdF0uc3BsaWNlKElbMF0sdik7ZWxzZSBm''@;'; + put 'put ''b3IodmFyICR0PTAsZm49dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKTskdDxmbjskdCsrKWZvcih2YXIgTG49MDtMbjxCZTtMbisrKU5lWyR0XS5zcGxpY2UoaltMbl0sMSk7cmV0dXJuIEM8dGhpcy5pbnN0YW5jZS5jb3VudENvbHMoKSYmKHRoaXMuaW5zdGFuY2UuY29sdW1uSW5k''@;'; + put 'put ''ZXhNYXBwZXIucmVtb3ZlSW5kZXhlcyhJKSwwPT09dGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpJiZ0aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1ZW5jZShbXSkpLHRoaXMuaW5zdGFuY2UucnVuSG9v''@;'; + put 'put ''a3MoImFmdGVyUmVtb3ZlQ29sIixDLHYsSSx5KSx0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlcj0hMCwhMH19LHtrZXk6InNwbGljZUNvbCIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe2Zvcih2YXIgQz10aGlzLmluc3RhbmNlLmdldERhdGFBdENvbChoKSxJPUMuc2xpY2Uodix2K3kpLGo9''@;'; + put 'put ''Qy5zbGljZSh2K3kpLHVlPWFyZ3VtZW50cy5sZW5ndGgsX2U9bmV3IEFycmF5KHVlPjM/dWUtMzowKSxCZT0zO0JlPHVlO0JlKyspX2VbQmUtM109YXJndW1lbnRzW0JlXTtZaGUoX2Usaik7Zm9yKHZhciBOZT0wO05lPHk7KV9lLnB1c2gobnVsbCksTmUrPTE7cmV0dXJuIHViZShfZSksdGhp''@;'; + put 'put ''cy5pbnN0YW5jZS5wb3B1bGF0ZUZyb21BcnJheSh2LGgsX2UsbnVsbCxudWxsLCJzcGxpY2VDb2wiKSxJfX0se2tleToic3BsaWNlUm93Iix2YWx1ZTpmdW5jdGlvbihoLHYseSl7Zm9yKHZhciBDPXRoaXMuaW5zdGFuY2UuZ2V0U291cmNlRGF0YUF0Um93KGgpLEk9Qy5zbGljZSh2LHYreSks''@;'; + put 'put ''aj1DLnNsaWNlKHYreSksdWU9YXJndW1lbnRzLmxlbmd0aCxfZT1uZXcgQXJyYXkodWU+Mz91ZS0zOjApLEJlPTM7QmU8dWU7QmUrKylfZVtCZS0zXT1hcmd1bWVudHNbQmVdO1loZShfZSxqKTtmb3IodmFyIE5lPTA7TmU8eTspX2UucHVzaChudWxsKSxOZSs9MTtyZXR1cm4gdGhpcy5pbnN0''@;'; + put 'put ''YW5jZS5wb3B1bGF0ZUZyb21BcnJheShoLHYsW19lXSxudWxsLG51bGwsInNwbGljZVJvdyIpLEl9fSx7a2V5OiJzcGxpY2VEYXRhIix2YWx1ZTpmdW5jdGlvbihoLHYpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHk+Mj95LTI6MCksST0yO0k8eTtJKyspQ1tJLTJd''@;'; + put 'put ''PWFyZ3VtZW50c1tJXTt2YXIgdWUsaj10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVEYXRhU3BsaWNlIixoLHYsQyk7ITEhPT1qJiYodWU9dGhpcy5kYXRhU291cmNlKS5zcGxpY2UuYXBwbHkodWUsW2gsdl0uY29uY2F0KEMpKX19LHtrZXk6ImZpbHRlckRhdGEiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdix5KXt2YXIgQz10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJmaWx0ZXJEYXRhIixoLHYseSk7ITE9PT1BcnJheS5pc0FycmF5KEMpJiYoQz10aGlzLmRhdGFTb3VyY2UuZmlsdGVyKGZ1bmN0aW9uKEksail7cmV0dXJuLTE9PT15LmluZGV4T2Yoail9KSksdGhpcy5kYXRhU291cmNl''@;'; + put 'put ''Lmxlbmd0aD0wLEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMuZGF0YVNvdXJjZSxDKX19LHtrZXk6ImdldCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3coaCksQz10aGlzLmRhdGFTb3VyY2VbeV0sST10aGlzLmluc3RhbmNlLnJ1''@;'; + put 'put ''bkhvb2tzKCJtb2RpZnlSb3dEYXRhIix5KSxqPW51bGw7aWYoKEM9aXNOYU4oSSk/STpDKSYmQy5oYXNPd25Qcm9wZXJ0eSYmbzEoQyx2KSlqPUNbdl07ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIHYmJnYuaW5kZXhPZigiLiIpPi0xKXt2YXIgdWU9di5zcGxpdCgiLiIpLF9lPUM7aWYoIV9l''@;'; + put 'put ''KXJldHVybiBudWxsO2Zvcih2YXIgQmU9MCxOZT11ZS5sZW5ndGg7QmU8TmU7QmUrKylpZih2b2lkIDA9PT0oX2U9X2VbdWVbQmVdXSkpcmV0dXJuIG51bGw7aj1fZX1lbHNlImZ1bmN0aW9uIj09dHlwZW9mIHYmJihqPXYodGhpcy5kYXRhU291cmNlLnNsaWNlKHkseSsxKVswXSkpO2lmKHRo''@;'; + put 'put ''aXMuaW5zdGFuY2UuaGFzSG9vaygibW9kaWZ5RGF0YSIpKXt2YXIgS2U9d1Moaik7dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygibW9kaWZ5RGF0YSIseSx0aGlzLnByb3BUb0NvbCh2KSxLZSwiZ2V0IiksS2UuaXNUb3VjaGVkKCkmJihqPUtlLnZhbHVlKX1yZXR1cm4gan19LHtrZXk6ImdldENv''@;'; + put 'put ''cHlhYmxlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiBycWUuY2FsbCh0aGlzLmluc3RhbmNlLGgsdGhpcy5wcm9wVG9Db2wodikpP3RoaXMuZ2V0KGgsdik6IiJ9fSx7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3co''@;'; + put 'put ''aCksST15LGo9dGhpcy5kYXRhU291cmNlW0NdLHVlPXRoaXMuaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeVJvd0RhdGEiLEMpO2lmKGo9aXNOYU4odWUpP3VlOmosdGhpcy5pbnN0YW5jZS5oYXNIb29rKCJtb2RpZnlEYXRhIikpe3ZhciBfZT13UyhJKTt0aGlzLmluc3RhbmNlLnJ1bkhvb2tz''@;'; + put 'put ''KCJtb2RpZnlEYXRhIixDLHRoaXMucHJvcFRvQ29sKHYpLF9lLCJzZXQiKSxfZS5pc1RvdWNoZWQoKSYmKEk9X2UudmFsdWUpfWlmKGomJmouaGFzT3duUHJvcGVydHkmJm8xKGosdikpalt2XT1JO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiB2JiZ2LmluZGV4T2YoIi4iKT4tMSl7dmFyIGR0''@;'; + put 'put ''LEJlPXYuc3BsaXQoIi4iKSxOZT1qLEtlPTA7Zm9yKEtlPTAsZHQ9QmUubGVuZ3RoLTE7S2U8ZHQ7S2UrKyl2b2lkIDA9PT1OZVtCZVtLZV1dJiYoTmVbQmVbS2VdXT17fSksTmU9TmVbQmVbS2VdXTtOZVtCZVtLZV1dPUl9ZWxzZSJmdW5jdGlvbiI9PXR5cGVvZiB2P3YodGhpcy5kYXRhU291''@;'; + put 'put ''cmNlLnNsaWNlKEMsQysxKVswXSxJKTpqW3ZdPUl9fSx7a2V5OiJ2aXN1YWxSb3dzVG9QaHlzaWNhbCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtmb3IodmFyIHVlLHk9dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKSxDPVtdLEk9KHkraCkleSxqPXY7STx5JiZqOyl1ZT10aGlzLmluc3Rh''@;'; + put 'put ''bmNlLnRvUGh5c2ljYWxSb3coSSksQy5wdXNoKHVlKSxqLT0xLEkrPTE7cmV0dXJuIEN9fSx7a2V5OiJ2aXN1YWxDb2x1bW5zVG9QaHlzaWNhbCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtmb3IodmFyIHk9dGhpcy5pbnN0YW5jZS5jb3VudENvbHMoKSxDPVtdLEk9KHkraCkleSxqPXY7STx5JiZq''@;'; + put 'put ''Oyl7dmFyIHVlPXRoaXMuaW5zdGFuY2UudG9QaHlzaWNhbENvbHVtbihJKTtDLnB1c2godWUpLGotPTEsSSs9MX1yZXR1cm4gQ319LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgaD0wO2g8dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKTtoKyspZm9yKHZhciB2''@;'; + put 'put ''PTA7djx0aGlzLmluc3RhbmNlLmNvdW50Q29scygpO3YrKyl0aGlzLnNldChoLHRoaXMuY29sVG9Qcm9wKHYpLCIiKX19LHtrZXk6ImdldExlbmd0aCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdixoPXRoaXMudGFibGVNZXRhLm1heFJvd3M7dj1oPDB8fDA9PT1oPzA6aHx8MS8wO3ZhciB5PXRo''@;'; + put 'put ''aXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIuZ2V0Tm90VHJpbW1lZEluZGV4ZXNMZW5ndGgoKTtyZXR1cm4gTWF0aC5taW4oeSx2KX19LHtrZXk6ImdldEFsbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD17cm93OjAsY29sOjB9LHY9e3JvdzpNYXRoLm1heCh0aGlzLmluc3RhbmNlLmNvdW50''@;'; + put 'put ''Um93cygpLTEsMCksY29sOk1hdGgubWF4KHRoaXMuaW5zdGFuY2UuY291bnRDb2xzKCktMSwwKX07cmV0dXJuIGgucm93LXYucm93IT0wfHx0aGlzLmluc3RhbmNlLmNvdW50U291cmNlUm93cygpP3RoaXMuZ2V0UmFuZ2UoaCx2LGQuREVTVElOQVRJT05fUkVOREVSRVIpOltdfX0se2tleToi''@;'; + put 'put ''Y291bnRDYWNoZWRDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbFRvUHJvcENhY2hlLmxlbmd0aH19LHtrZXk6ImdldFJhbmdlIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEksaix1ZSxDPVtdLF9lPXRoaXMudGFibGVNZXRhLm1heFJvd3MsQmU9dGhpcy50YWJs''@;'; + put 'put ''ZU1ldGEubWF4Q29scztpZigwPT09X2V8fDA9PT1CZSlyZXR1cm5bXTt2YXIgTmU9eT09PWQuREVTVElOQVRJT05fQ0xJUEJPQVJEX0dFTkVSQVRPUj90aGlzLmdldENvcHlhYmxlOnRoaXMuZ2V0LEtlPU1hdGgubWluKE1hdGgubWF4KF9lLTEsMCksTWF0aC5tYXgoaC5yb3csdi5yb3cpKSxk''@;'; + put 'put ''dD1NYXRoLm1pbihNYXRoLm1heChCZS0xLDApLE1hdGgubWF4KGguY29sLHYuY29sKSk7Zm9yKEk9TWF0aC5taW4oaC5yb3csdi5yb3cpO0k8PUtlO0krKyl7dWU9W107dmFyIE90PUk+PTA/dGhpcy5pbnN0YW5jZS50b1BoeXNpY2FsUm93KEkpOkk7Zm9yKGo9TWF0aC5taW4oaC5jb2wsdi5j''@;'; + put 'put ''b2wpO2o8PWR0JiZudWxsIT09T3Q7aisrKXVlLnB1c2goTmUuY2FsbCh0aGlzLEksdGhpcy5jb2xUb1Byb3AoaikpKTtudWxsIT09T3QmJkMucHVzaCh1ZSl9cmV0dXJuIEN9fSx7a2V5OiJnZXRUZXh0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiBzeih0aGlzLmdldFJhbmdlKGgsdixk''@;'; + put 'put ''LkRFU1RJTkFUSU9OX1JFTkRFUkVSKSl9fSx7a2V5OiJnZXRDb3B5YWJsZVRleHQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIHN6KHRoaXMuZ2V0UmFuZ2UoaCx2LGQuREVTVElOQVRJT05fQ0xJUEJPQVJEX0dFTkVSQVRPUikpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''KXt0aGlzLmluc3RhbmNlPW51bGwsdGhpcy50YWJsZU1ldGE9bnVsbCx0aGlzLmRhdGFTb3VyY2U9bnVsbCx0aGlzLmR1Y2tTY2hlbWE9bnVsbCx0aGlzLmNvbFRvUHJvcENhY2hlLmxlbmd0aD0wLHRoaXMucHJvcFRvQ29sQ2FjaGUuY2xlYXIoKSx0aGlzLnByb3BUb0NvbENhY2hlPXZvaWQg''@;'; + put 'put ''MH19XSxbe2tleToiREVTVElOQVRJT05fUkVOREVSRVIiLGdldDpmdW5jdGlvbigpe3JldHVybiAxfX0se2tleToiREVTVElOQVRJT05fQ0xJUEJPQVJEX0dFTkVSQVRPUiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDJ9fV0pLGR9KCk7Y29uc3Qgb3FlPWlxZTtmdW5jdGlvbiBkdGUoZCl7cmV0''@;'; + put 'put ''dXJuKGR0ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3lt''@;'; + put 'put ''Ym9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGtTZShkLGcsaCx2KXt2YXIgeT12LmhvdEluc3RhbmNlLEM9di5kYXRhTWFwLEk9di5kYXRhU291cmNlLGo9di5pbnRlcm5hbFNvdXJjZSx1ZT12LnNvdXJjZSxfZT12LmZpcnN0UnVuLEJl''@;'; + put 'put ''PWFkKGopLE5lPXkuZ2V0U2V0dGluZ3MoKTt5LmRhdGFUeXBlPUFycmF5LmlzQXJyYXkoTmUuZGF0YVNjaGVtYSk/ImFycmF5IjpZMihOZS5kYXRhU2NoZW1hKT8iZnVuY3Rpb24iOiJvYmplY3QiLEMmJkMuZGVzdHJveSgpLGQ9eS5ydW5Ib29rcygiYmVmb3JlIi5jb25jYXQoQmUpLGQsX2Us''@;'; + put 'put ''dWUpO3ZhciBLZT1uZXcgb3FlKHksZCxOZSk7aWYoZyhLZSksIm9iamVjdCI9PT1kdGUoZCkmJm51bGwhPT1kKWQucHVzaCYmZC5zcGxpY2V8fChkPVtkXSk7ZWxzZXtpZihudWxsIT09ZCl0aHJvdyBuZXcgRXJyb3IoIiIuY29uY2F0KGosIiBvbmx5IGFjY2VwdHMgYXJyYXkgb2Ygb2JqZWN0''@;'; + put 'put ''cyBvciBhcnJheSBvZiBhcnJheXMgKCIpLmNvbmNhdChkdGUoZCksIiBnaXZlbikiKSk7dmFyIGR0PUtlLmdldFNjaGVtYSgpO2Q9W107dmFyIE90LGZuLCR0PTA7Zm9yKCR0PTAsZm49TmUuc3RhcnRSb3dzOyR0PGZuOyR0KyspaWYoIm9iamVjdCIhPT15LmRhdGFUeXBlJiYiZnVuY3Rpb24i''@;'; + put 'put ''IT09eS5kYXRhVHlwZXx8IU5lLmRhdGFTY2hlbWEpaWYoImFycmF5Ij09PXkuZGF0YVR5cGUpT3Q9Z2goZHRbMF0pLGQucHVzaChPdCk7ZWxzZXtPdD1bXTtmb3IodmFyIExuPTAsaXI9TmUuc3RhcnRDb2xzO0xuPGlyO0xuKyspT3QucHVzaChudWxsKTtkLnB1c2goT3QpfWVsc2UgT3Q9Z2go''@;'; + put 'put ''ZHQpLGQucHVzaChPdCl9QXJyYXkuaXNBcnJheShkWzBdKSYmKHkuZGF0YVR5cGU9ImFycmF5IiksTmUuZGF0YT1kLEtlLmRhdGFTb3VyY2U9ZCxJLmRhdGE9ZCxJLmRhdGFUeXBlPXkuZGF0YVR5cGUsSS5jb2xUb1Byb3A9S2UuY29sVG9Qcm9wLmJpbmQoS2UpLEkucHJvcFRvQ29sPUtlLnBy''@;'; + put 'put ''b3BUb0NvbC5iaW5kKEtlKSxJLmNvdW50Q2FjaGVkQ29sdW1ucz1LZS5jb3VudENhY2hlZENvbHVtbnMuYmluZChLZSksaChLZSkseS5ydW5Ib29rcygiYWZ0ZXIiLmNvbmNhdChCZSksZCxfZSx1ZSksX2V8fCh5LnJ1bkhvb2tzKCJhZnRlckNoYW5nZSIsbnVsbCxqKSx5LnJlbmRlcigpKX12''@;'; + put 'put ''YXIgRVNlLFNTZT1uZXcgTWFwKFtbIiAiLCJzcGFjZSJdLFsic3BhY2ViYXIiLCJzcGFjZSJdLFsic2Nyb2xsIiwic2Nyb2xsbG9jayJdLFsiZGVsIiwiZGVsZXRlIl0sWyJlc2MiLCJlc2NhcGUiXSxbIm1lZGlhbmV4dHRyYWNrIiwibWVkaWF0cmFja25leHQiXSxbIm1lZGlhcHJldmlvdXN0''@;'; + put 'put ''cmFjayIsIm1lZGlhdHJhY2twcmV2aW91cyJdLFsidm9sdW1ldXAiLCJhdWRpb3ZvbHVtZXVwIl0sWyJ2b2x1bWVkb3duIiwiYXVkaW92b2x1bWVkb3duIl0sWyJ2b2x1bWVtdXRlIiwiYXVkaW92b2x1bWVtdXRlIl0sWyJtdWx0aXBseSIsIioiXSxbImFkZCIsIisiXSxbImRpdmlkZSIsIi8i''@;'; + put 'put ''XSxbInN1YnRyYWN0IiwiLSJdLFsibGVmdCIsImFycm93bGVmdCJdLFsicmlnaHQiLCJhcnJvd3JpZ2h0Il0sWyJ1cCIsImFycm93dXAiXSxbImRvd24iLCJhcnJvd2Rvd24iXV0pLHB0ZT1mdW5jdGlvbihnKXtyZXR1cm4gZy5tYXAoZnVuY3Rpb24oaCl7dmFyIHY9aC50b0xvd2VyQ2FzZSgp''@;'; + put 'put ''O3JldHVybiBTU2UuaGFzKHYpP1NTZS5nZXQodik6dn0pLnNvcnQoKS5qb2luKCIrIil9LE1TZT1mdW5jdGlvbihnKXtyZXR1cm4gZy50b0xvd2VyQ2FzZSgpfTtmdW5jdGlvbiB4U2UoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHQ2ZShkLGcpO3ZhciBoPU9iamVj''@;'; + put 'put ''dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVp''@;'; + put 'put ''fEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gdDZlKGQsZyl9fWZ1bmN0aW9uIHQ2ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVy''@;'; + put 'put ''biB2fWZ1bmN0aW9uIGdxZShkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9dmFyIEFxZT1bIm1ldGEiLCJhbHQiLCJzaGlmdCIsImNvbnRyb2wiXSxndGU9''@;'; + put 'put ''ZnVuY3Rpb24gdnFlKCl7dmFyIGQ9bmV3IFNldDtyZXR1cm57cHJlc3M6ZnVuY3Rpb24oaCl7ZC5hZGQoaCl9LHJlbGVhc2U6ZnVuY3Rpb24oaCl7ZC5kZWxldGUoaCl9LHJlbGVhc2VBbGw6ZnVuY3Rpb24oKXtkLmNsZWFyKCl9LGlzUHJlc3NlZDpmdW5jdGlvbihoKXtyZXR1cm4gZC5oYXMo''@;'; + put 'put ''aCl9fX0oKSx3cWU9ZnVuY3Rpb24oZyl7dmFyIGg9Zy5vd25lcldpbmRvdyx2PWcuaGFuZGxlRXZlbnQseT1nLmJlZm9yZUtleURvd24sQz1nLmFmdGVyS2V5RG93bixJPXVlZSh7ZXJyb3JJZEV4aXN0czpmdW5jdGlvbigkdCl7cmV0dXJuJ1RoZSAiJy5jb25jYXQoJHQsJyIgY29udGV4dCBu''@;'; + put 'put ''YW1lIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC4nKX19KSxqPSJncmlkIixfZT1mdW5jdGlvbigpe3JldHVybiBqfSxCZT1mdW5jdGlvbigkdCl7cmV0dXJuIEkuZ2V0SXRlbSgkdCl9LEtlPSExLGR0PWZ1bmN0aW9uIHlxZShkLGcsaCx2LHkpe3ZhciBDPWZ1bmN0aW9uKGR0KXtyZXR1cm4gQXFl''@;'; + put 'put ''LmluY2x1ZGVzKGR0KX0sST1mdW5jdGlvbihkdCl7dmFyIE90PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sJHQ9W107cmV0dXJuIGR0LmFsdEtleSYmJHQucHVzaCgiYWx0IiksT3QmJihkdC5jdHJsS2V5fHxkdC5tZXRhS2V5KT8kdC5w''@;'; + put 'put ''dXNoKCJjb250cm9sL21ldGEiKTooZHQuY3RybEtleSYmJHQucHVzaCgiY29udHJvbCIpLGR0Lm1ldGFLZXkmJiR0LnB1c2goIm1ldGEiKSksZHQuc2hpZnRLZXkmJiR0LnB1c2goInNoaWZ0IiksJHR9LGo9ZnVuY3Rpb24oZHQpe2lmKCExIT09ZyhkdCkmJiExIT09aChkdCkmJiFfUyhkdCkp''@;'; + put 'put ''e3ZhciAkdD1NU2UoZHQua2V5KSxmbj1bXTtDKCR0KT9ndGUucHJlc3MoJHQpOmZuPUkoZHQpO3ZhciBMbj1bJHRdLmNvbmNhdChmbik7IXkoZHQsTG4pJiYoS3EoKSYmZm4uaW5jbHVkZXMoIm1ldGEiKXx8IUtxKCkmJmZuLmluY2x1ZGVzKCJjb250cm9sIikpJiZ5KGR0LFskdF0uY29uY2F0''@;'; + put 'put ''KEkoZHQsITApKSksdihkdCl9fSx1ZT1mdW5jdGlvbihkdCl7aWYoITEhPT1nKGR0KSl7dmFyIE90PU1TZShkdC5rZXkpOyExIT09QyhPdCkmJmd0ZS5yZWxlYXNlKE90KX19LF9lPWZ1bmN0aW9uKCl7Z3RlLnJlbGVhc2VBbGwoKX07cmV0dXJue21vdW50OmZ1bmN0aW9uKCl7Zm9yKHZhciBk''@;'; + put 'put ''dD1kO2R0OylkdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixqKSxkdC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdWUpLGR0LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLF9lKSxkdD1kdC5mcmFtZUVsZW1lbnR9LHVubW91bnQ6ZnVuY3Rpb24oKXtmb3IodmFyIGR0PWQ7ZHQ7KWR0LnJl''@;'; + put 'put ''bW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGopLGR0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix1ZSksZHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsX2UpLGR0PWR0LmZyYW1lRWxlbWVudH0saXNQcmVzc2VkOmZ1bmN0aW9uKGR0KXtyZXR1cm4gZ3RlLmlzUHJlc3NlZChk''@;'; + put 'put ''dCl9fX0oaCx2LHksQyxmdW5jdGlvbihPdCwkdCl7dmFyIGZuPUJlKF9lKCkpLExuPSExO2lmKCFmbi5oYXNTaG9ydGN1dCgkdCkpcmV0dXJuIExuO2Zvcih2YXIgaXI9Zm4uZ2V0U2hvcnRjdXRzKCR0KSxtcj0wO21yPGlyLmxlbmd0aDttcisrKXt2YXIgU3I9aXJbbXJdLHdyPVNyLmNhbGxi''@;'; + put 'put ''YWNrLHlpPVNyLnByZXZlbnREZWZhdWx0LEtpPVNyLnN0b3BQcm9wYWdhdGlvbixTbz1Tci5jYXB0dXJlQ3RybDtpZighMSE9PSgwLFNyLnJ1bk9ubHlJZikoT3QpJiYoS2U9U28sTG49ITE9PT13cihPdCwkdCksS2U9ITEseWkmJk90LnByZXZlbnREZWZhdWx0KCksS2kmJk90LnN0b3BQcm9w''@;'; + put 'put ''YWdhdGlvbigpLExuKSlicmVha31yZXR1cm4gTG59KTtyZXR1cm4gZHQubW91bnQoKSx7YWRkQ29udGV4dDpmdW5jdGlvbigkdCl7dmFyIGZuPWZ1bmN0aW9uKGcpe3ZhciBoPXVlZSh7ZXJyb3JJZEV4aXN0czpmdW5jdGlvbihCZSl7cmV0dXJuJ1RoZSAiJy5jb25jYXQoQmUsJyIgc2hvcnRj''@;'; + put 'put ''dXQgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGluIHRoZSAiJykuY29uY2F0KGcsJyIgY29udGV4dC4nKX19KSx2PWZ1bmN0aW9uKCl7dmFyIEJlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxOZT1CZS5rZXlzLEtlPUJlLmNhbGxiYWNr''@;'; + put 'put ''LGR0PUJlLmdyb3VwLE90PUJlLnJ1bk9ubHlJZiwkdD12b2lkIDA9PT1PdD9mdW5jdGlvbigpe3JldHVybiEwfTpPdCxmbj1CZS5jYXB0dXJlQ3RybCxMbj12b2lkIDAhPT1mbiYmZm4saXI9QmUucHJldmVudERlZmF1bHQsbXI9dm9pZCAwPT09aXJ8fGlyLFNyPUJlLnN0b3BQcm9wYWdhdGlv''@;'; + put 'put ''bix3cj12b2lkIDAhPT1TciYmU3IsUXI9QmUucmVsYXRpdmVUb0dyb3VwLHlpPUJlLnBvc2l0aW9uO2lmKGExKGR0KSl0aHJvdyBuZXcgRXJyb3IoIllvdSBuZWVkIHRvIGRlZmluZSB0aGUgc2hvcnRjdXQncyBncm91cC4iKTtpZighMT09PVkyKEtlKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBz''@;'; + put 'put ''aG9ydGN1dCdzIGNhbGxiYWNrIG5lZWRzIHRvIGJlIGEgZnVuY3Rpb24uIik7aWYoITE9PT1BcnJheS5pc0FycmF5KE5lKSl0aHJvdyBuZXcgRXJyb3IoQjIoRVNlfHwoRVNlPWdxZShbIlBhc3MgdGhlIHNob3J0Y3V0J3Mga2V5cyBhcyBhbiBhcnJheSBvZiBhcnJheXMsIFxuICAgICAgdXNp''@;'; + put 'put ''bmcgdGhlIEtleWJvYXJkRXZlbnQua2V5IHByb3BlcnRpZXM6IFxuICAgICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQva2V5L0tleV9WYWx1ZXMuIl0sWyJQYXNzIHRoZSBzaG9ydGN1dFxcJ3Mga2V5cyBhcyBhbiBhcnJh''@;'; + put 'put ''eSBvZiBhcnJheXMsXFx4MjBcbiAgICAgIHVzaW5nIHRoZSBLZXlib2FyZEV2ZW50LmtleSBwcm9wZXJ0aWVzOlxceDIwXG4gICAgICBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvS2V5Ym9hcmRFdmVudC9rZXkvS2V5X1ZhbHVlcy4iXSkpKSk7dmFy''@;'; + put 'put ''IEtpPXtjYWxsYmFjazpLZSxncm91cDpkdCxydW5Pbmx5SWY6JHQsY2FwdHVyZUN0cmw6TG4scHJldmVudERlZmF1bHQ6bXIsc3RvcFByb3BhZ2F0aW9uOndyfTtpZihUbyhRcikpe3ZhciBTbz1bUXIseWldO0tpLnJlbGF0aXZlVG9Hcm91cD1Tb1swXSxLaS5wb3NpdGlvbj1Tb1sxXX1OZS5m''@;'; + put 'put ''b3JFYWNoKGZ1bmN0aW9uKFBvKXt2YXIgU2E9cHRlKFBvKTtpZihoLmhhc0l0ZW0oU2EpKXt2YXIgbGE9aC5nZXRJdGVtKFNhKSxhbD1sYS5maW5kSW5kZXgoZnVuY3Rpb24oTHMpe3JldHVybiBMcy5ncm91cD09PVFyfSk7LTEhPT1hbD8iYmVmb3JlIj09PXlpP2FsLT0xOmFsKz0xOmFsPWxh''@;'; + put 'put ''Lmxlbmd0aCxsYS5zcGxpY2UoYWwsMCxLaSl9ZWxzZSBoLmFkZEl0ZW0oU2EsW0tpXSl9KX0sQz1mdW5jdGlvbihCZSl7dmFyIE5lPXB0ZShCZSk7aC5yZW1vdmVJdGVtKE5lKX07cmV0dXJue2FkZFNob3J0Y3V0OnYsYWRkU2hvcnRjdXRzOmZ1bmN0aW9uKEJlKXt2YXIgTmU9YXJndW1lbnRz''@;'; + put 'put ''Lmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O0JlLmZvckVhY2goZnVuY3Rpb24oS2Upe0dsKE5lLGZ1bmN0aW9uKGR0LE90KXshMT09PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChLZSxPdCkmJihLZVtPdF09TmVbT3RdKX0pLHYo''@;'; + put 'put ''S2UpfSl9LGdldFNob3J0Y3V0czpmdW5jdGlvbihCZSl7dmFyIE5lPXB0ZShCZSksS2U9aC5nZXRJdGVtKE5lKTtyZXR1cm4gVG8oS2UpP0tlLnNsaWNlKCk6W119LGhhc1Nob3J0Y3V0OmZ1bmN0aW9uKEJlKXt2YXIgTmU9cHRlKEJlKTtyZXR1cm4gaC5oYXNJdGVtKE5lKX0scmVtb3ZlU2hv''@;'; + put 'put ''cnRjdXRzQnlLZXlzOkMscmVtb3ZlU2hvcnRjdXRzQnlHcm91cDpmdW5jdGlvbihCZSl7aC5nZXRJdGVtcygpLmZvckVhY2goZnVuY3Rpb24oS2Upe3ZhciBkdD1mdW5jdGlvbiBmcWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gcHFlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQp''@;'; + put 'put ''fHxmdW5jdGlvbiBkcWUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9''@;'; + put 'put ''aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHx4U2Uo''@;'; + put 'put ''ZCxnKXx8ZnVuY3Rpb24gaHFlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJh''@;'; + put 'put ''dG9yXSgpIG1ldGhvZC4iKX0oKX0oS2UsMiksT3Q9ZHRbMF0sJHQ9ZHRbMV0sZm49JHQuZmlsdGVyKGZ1bmN0aW9uKExuKXtyZXR1cm4gTG4uZ3JvdXAhPT1CZX0pOzA9PT1mbi5sZW5ndGg/QyhmdW5jdGlvbihnKXtyZXR1cm4gZy5zcGxpdCgiKyIpfShPdCkpOigkdC5sZW5ndGg9MCwkdC5w''@;'; + put 'put ''dXNoLmFwcGx5KCR0LGZ1bmN0aW9uIGxxZShkKXtyZXR1cm4gZnVuY3Rpb24gY3FlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIHQ2ZShkKX0oZCl8fGZ1bmN0aW9uIHVxZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxu''@;'; + put 'put ''dWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHx4U2UoZCl8fGZ1bmN0aW9uIHNxZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUs''@;'; + put 'put ''IG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShmbikpKX0pfX19KCR0KTtyZXR1cm4gSS5hZGRJdGVtKCR0LGZuKSxmbn0sZ2V0QWN0aXZlQ29udGV4dE5hbWU6X2UsZ2V0Q29udGV4dDpCZSxzZXRBY3RpdmVDb250ZXh0TmFt''@;'; + put 'put ''ZTpmdW5jdGlvbigkdCl7aj0kdH0saXNDdHJsUHJlc3NlZDpmdW5jdGlvbigpe3JldHVybiFLZSYmKGR0LmlzUHJlc3NlZCgiY29udHJvbCIpfHxkdC5pc1ByZXNzZWQoIm1ldGEiKSl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXtyZXR1cm4gZHQudW5tb3VudCgpfX19O2Z1bmN0aW9uIHVkKGQpe3Jl''@;'; + put 'put ''dHVybih1ZD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3lt''@;'; + put 'put ''Ym9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIElnKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIENxZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gX3FlKGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRl''@;'; + put 'put ''ZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5n''@;'; + put 'put ''dGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8VFNlKGQsZyl8fGZ1bmN0aW9uIGJxZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIklu''@;'; + put 'put ''dmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gTHcoZCl7cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uIE1xZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBuNmUoZCl9KGQpfHxmdW5jdGlvbiBTcWUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9t''@;'; + put 'put ''KGQpfShkKXx8VFNlKGQpfHxmdW5jdGlvbiBrcWUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9s''@;'; + put 'put ''Lml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBUU2UoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIG42ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3Ry''@;'; + put 'put ''dWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gbjZlKGQsZyl9fWZ1bmN0''@;'; + put 'put ''aW9uIG42ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fXZhciBFcWU9ImdyaWREZWZhdWx0IixyNmU9bnVsbDtmdW5jdGlvbiBpNmUoZCxnKXt2YXIgaCx1ZSxfZSxC''@;'; + put 'put ''ZSxOZSx2PXRoaXMseT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLEM9ITEsST10aGlzLGo9bmV3IEwxKEkpLEtlPSEwO0NRZSh5KSYmX1FlKHRoaXMpLHRoaXMucm9vdEVsZW1lbnQ9ZCx0aGlzLnJvb3REb2N1bWVudD1kLm93bmVyRG9j''@;'; + put 'put ''dW1lbnQsdGhpcy5yb290V2luZG93PXRoaXMucm9vdERvY3VtZW50LmRlZmF1bHRWaWV3LHRoaXMuaXNEZXN0cm95ZWQ9ITEsdGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyPTAsdGhpcy5leGVjdXRpb25TdXNwZW5kZWRDb3VudGVyPTA7dmFyIGR0PW51bGwhPT0oaD1udWxsPT1nP3ZvaWQg''@;'; + put 'put ''MDpnLmxheW91dERpcmVjdGlvbikmJnZvaWQgMCE9PWg/aDoiaW5oZXJpdCIsT3Q9WyJydGwiLCJsdHIiXS5pbmNsdWRlcyhkdCk/ZHQ6dGhpcy5yb290V2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yb290RWxlbWVudCkuZGlyZWN0aW9uO3RoaXMucm9vdEVsZW1lbnQuc2V0QXR0cmli''@;'; + put 'put ''dXRlKCJkaXIiLE90KSx0aGlzLmlzUnRsPWZ1bmN0aW9uKCl7cmV0dXJuInJ0bCI9PT1PdH0sdGhpcy5pc0x0cj1mdW5jdGlvbigpe3JldHVybiFJLmlzUnRsKCl9LHRoaXMuZ2V0RGlyZWN0aW9uRmFjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIEkuaXNMdHIoKT8xOi0xfSxnLmxhbmd1YWdlPUhY''@;'; + put 'put ''ZShnLmxhbmd1YWdlKTt2YXIgJHQ9bmV3IEFTZShJLGcsW0okZSwkJGVdKSxmbj0kdC5nZXRUYWJsZU1ldGEoKSxMbj0kdC5nZXRHbG9iYWxNZXRhKCksaXI9dWVlKCk7dGhpcy5jb250YWluZXI9dGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5yZW5kZXJDYWxs''@;'; + put 'put ''PSExLGQuaW5zZXJ0QmVmb3JlKHRoaXMuY29udGFpbmVyLGQuZmlyc3RDaGlsZCksWmRlKHRoaXMpJiZSYmUoZy5saWNlbnNlS2V5LGQpLHRoaXMuZ3VpZD0iaHRfIi5jb25jYXQobjNlKCkpLHRoaXMuY29sdW1uSW5kZXhNYXBwZXI9bmV3IGI0ZSx0aGlzLnJvd0luZGV4TWFwcGVyPW5ldyBi''@;'; + put 'put ''NGUsX2U9bmV3IEdRZShJKSwoIXRoaXMucm9vdEVsZW1lbnQuaWR8fCJodF8iPT09dGhpcy5yb290RWxlbWVudC5pZC5zdWJzdHJpbmcoMCwzKSkmJih0aGlzLnJvb3RFbGVtZW50LmlkPXRoaXMuZ3VpZCk7dmFyIG1yPWZ1bmN0aW9uKFpuKXt2YXIgX3I9Wm4ucm93LFhyPVpuLmNvbDtyZXR1''@;'; + put 'put ''cm4gSS5fY3JlYXRlQ2VsbENvb3Jkcyhfcj49MD9JLnJvd0luZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoX3IpOl9yLFhyPj0wP0kuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChYcik6WHIpfSxTcj1mdW5jdGlvbihabil7dmFy''@;'; + put 'put ''IF9yPVpuLnJvdyxYcj1abi5jb2w7cmV0dXJuIEkuX2NyZWF0ZUNlbGxDb29yZHMoX3I+PTA/SS5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KF9yKTpfcixYcj49MD9JLmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoWHIp''@;'; + put 'put ''OlhyKX0sd3I9bmV3IGskZShmbix7cm93SW5kZXhNYXBwZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSS5yb3dJbmRleE1hcHBlcn0sY29sdW1uSW5kZXhNYXBwZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSS5jb2x1bW5JbmRleE1hcHBlcn0sY291bnRDb2xzOmZ1bmN0aW9uKCl7cmV0dXJuIEkuY291bnRD''@;'; + put 'put ''b2xzKCl9LGNvdW50Um93czpmdW5jdGlvbigpe3JldHVybiBJLmNvdW50Um93cygpfSxwcm9wVG9Db2w6ZnVuY3Rpb24oWm4pe3JldHVybiB1ZS5wcm9wVG9Db2woWm4pfSxpc0VkaXRvck9wZW5lZDpmdW5jdGlvbigpe3JldHVybiEhSS5nZXRBY3RpdmVFZGl0b3IoKSYmSS5nZXRBY3RpdmVF''@;'; + put 'put ''ZGl0b3IoKS5pc09wZW5lZCgpfSxjb3VudENvbHNUcmFuc2xhdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHYudmlldy5jb3VudFJlbmRlcmFibGVDb2x1bW5zKCl9LGNvdW50Um93c1RyYW5zbGF0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi52aWV3LmNvdW50UmVuZGVyYWJsZVJvd3MoKX0sZ2V0U2hv''@;'; + put 'put ''cnRjdXRNYW5hZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIEkuZ2V0U2hvcnRjdXRNYW5hZ2VyKCl9LGNyZWF0ZUNlbGxDb29yZHM6ZnVuY3Rpb24oWm4sX3Ipe3JldHVybiBJLl9jcmVhdGVDZWxsQ29vcmRzKFpuLF9yKX0sY3JlYXRlQ2VsbFJhbmdlOmZ1bmN0aW9uKFpuLF9yLFhyKXtyZXR1cm4g''@;'; + put 'put ''SS5fY3JlYXRlQ2VsbFJhbmdlKFpuLF9yLFhyKX0sdmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzOm1yLHJlbmRlcmFibGVUb1Zpc3VhbENvb3JkczpTcixpc0Rpc2FibGVkQ2VsbFNlbGVjdGlvbjpmdW5jdGlvbihabixfcil7cmV0dXJuIEkuZ2V0Q2VsbE1ldGEoWm4sX3IpLmRpc2FibGVWaXN1''@;'; + put 'put ''YWxTZWxlY3Rpb259fSk7dGhpcy5zZWxlY3Rpb249d3I7dmFyIFFyPWZ1bmN0aW9uKFpuKXtabi5oaWRkZW5JbmRleGVzQ2hhbmdlZCYmdi5zZWxlY3Rpb24ucmVmcmVzaCgpfTtmdW5jdGlvbiB5aShGbil7dmFyIFpuPV9rZShGbik7TnBlKFpuKT8oSS5ydW5Ib29rcygiYmVmb3JlTGFuZ3Vh''@;'; + put 'put ''Z2VDaGFuZ2UiLFpuKSxMbi5sYW5ndWFnZT1abixJLnJ1bkhvb2tzKCJhZnRlckxhbmd1YWdlQ2hhbmdlIixabikpOkNrZShGbil9ZnVuY3Rpb24gS2koRm4sWm4pe3ZhciBfcj0iY2xhc3NOYW1lIj09PUZuP0kucm9vdEVsZW1lbnQ6SS50YWJsZTtpZihLZSlPMChfcixabik7ZWxzZXt2YXIg''@;'; + put 'put ''WHI9W10sY2k9W107TG5bRm5dJiYoWHI9QXJyYXkuaXNBcnJheShMbltGbl0pP0xuW0ZuXTpKaGUoTG5bRm5dKSksWm4mJihjaT1BcnJheS5pc0FycmF5KFpuKT9abjpKaGUoWm4pKTt2YXIgYzA9UWhlKFhyLGNpKSxYaT1RaGUoY2ksWHIpO2MwLmxlbmd0aCYmcGwoX3IsYzApLFhpLmxlbmd0''@;'; + put 'put ''aCYmTzAoX3IsWGkpfUxuW0ZuXT1abn1mdW5jdGlvbiBTbygpe3ZhciBGbj0hMTtyZXR1cm57dmFsaWRhdG9yc0luUXVldWU6MCx2YWxpZDohMCxhZGRWYWxpZGF0b3JUb1F1ZXVlOmZ1bmN0aW9uKCl7dGhpcy52YWxpZGF0b3JzSW5RdWV1ZSs9MSxGbj0hMX0scmVtb3ZlVmFsaWRhdG9yRm9y''@;'; + put 'put ''bVF1ZXVlOmZ1bmN0aW9uKCl7dGhpcy52YWxpZGF0b3JzSW5RdWV1ZT10aGlzLnZhbGlkYXRvcnNJblF1ZXVlLTE8MD8wOnRoaXMudmFsaWRhdG9yc0luUXVldWUtMSx0aGlzLmNoZWNrSWZRdWV1ZUlzRW1wdHkoKX0sb25RdWV1ZUVtcHR5OmZ1bmN0aW9uKCl7fSxjaGVja0lmUXVldWVJc0Vt''@;'; + put 'put ''cHR5OmZ1bmN0aW9uKCl7MD09PXRoaXMudmFsaWRhdG9yc0luUXVldWUmJiExPT09Rm4mJihGbj0hMCx0aGlzLm9uUXVldWVFbXB0eSh0aGlzLnZhbGlkKSl9fX1mdW5jdGlvbiBQbyhGbil7dmFyIFpuPUZuLnJlcGxhY2UoIiwiLCIuIik7cmV0dXJuITE9PT1pc05hTihwYXJzZUZsb2F0KFpu''@;'; + put 'put ''KSk/cGFyc2VGbG9hdChabik6Rm59ZnVuY3Rpb24gU2EoRm4sWm4sX3Ipe2lmKEZuLmxlbmd0aCl7dmFyIFhyPUkuZ2V0QWN0aXZlRWRpdG9yKCksY2k9SS5ydW5Ib29rcygiYmVmb3JlQ2hhbmdlIixGbixabnx8ImVkaXQiKSxjMD0hMDtpZighMT09PWNpKXJldHVybiB2b2lkKFhyJiZYci5j''@;'; + put 'put ''YW5jZWxDaGFuZ2VzKCkpO3ZhciBYaT1uZXcgU287WGkub25RdWV1ZUVtcHR5PWZ1bmN0aW9uKHQyKXtYciYmYzAmJlhyLmNhbmNlbENoYW5nZXMoKSxfcih0Mil9O2Zvcih2YXIgRTA9Rm4ubGVuZ3RoLTE7RTA+PTA7RTAtLSlpZihudWxsPT09Rm5bRTBdKUZuLnNwbGljZShFMCwxKTtlbHNl''@;'; + put 'put ''e3ZhciB6MD1JZyhGbltFMF0sNCksa289ejBbMF0sV2E9ejBbM10sZTI9dWUucHJvcFRvQ29sKHowWzFdKSxGYT1JLmdldENlbGxNZXRhKGtvLGUyKTsibnVtZXJpYyI9PT1GYS50eXBlJiYic3RyaW5nIj09dHlwZW9mIFdhJiZjX2UoV2EpJiYoRm5bRTBdWzNdPVBvKFdhKSksSS5nZXRDZWxs''@;'; + put 'put ''VmFsaWRhdG9yKEZhKSYmKFhpLmFkZFZhbGlkYXRvclRvUXVldWUoKSxJLnZhbGlkYXRlQ2VsbChGbltFMF1bM10sRmEsZnVuY3Rpb24odDIsTzEpe3JldHVybiBmdW5jdGlvbihSMSl7aWYoImJvb2xlYW4iIT10eXBlb2YgUjEpdGhyb3cgbmV3IEVycm9yKCJWYWxpZGF0aW9uIGVycm9yOiBy''@;'; + put 'put ''ZXN1bHQgaXMgbm90IGJvb2xlYW4iKTtpZighMT09PVIxJiYhMT09PU8xLmFsbG93SW52YWxpZCl7YzA9ITEsRm4uc3BsaWNlKHQyLDEpLE8xLnZhbGlkPSEwO3ZhciB6dT1JLmdldENlbGwoTzEudmlzdWFsUm93LE8xLnZpc3VhbENvbCk7bnVsbCE9PXp1JiZwbCh6dSxmbi5pbnZhbGlkQ2Vs''@;'; + put 'put ''bENsYXNzTmFtZSl9WGkucmVtb3ZlVmFsaWRhdG9yRm9ybVF1ZXVlKCl9fShFMCxGYSksWm4pKX1YaS5jaGVja0lmUXVldWVJc0VtcHR5KCl9fWZ1bmN0aW9uIEphKEZuLFpuKXt2YXIgX3I9Rm4ubGVuZ3RoLTE7aWYoIShfcjwwKSl7Zm9yKDtfcj49MDtfci0tKXt2YXIgWHI9ITE7aWYobnVs''@;'; + put 'put ''bCE9PUZuW19yXSl7aWYobnVsbCE9Rm5bX3JdWzJdfHxudWxsIT1Gbltfcl1bM10pe2lmKGZuLmFsbG93SW5zZXJ0Um93KWZvcig7Rm5bX3JdWzBdPkkuY291bnRSb3dzKCktMTspe3ZhciBjaT11ZS5jcmVhdGVSb3codm9pZCAwLHZvaWQgMCxabik7aWYoIShjaT49MSkpe1hyPSEwO2JyZWFr''@;'; + put 'put ''fSR0LmNyZWF0ZVJvdyhudWxsLGNpKX1pZigiYXJyYXkiPT09SS5kYXRhVHlwZSYmKCFmbi5jb2x1bW5zfHwwPT09Zm4uY29sdW1ucy5sZW5ndGgpJiZmbi5hbGxvd0luc2VydENvbHVtbilmb3IoO3VlLnByb3BUb0NvbChGbltfcl1bMV0pPkkuY291bnRDb2xzKCktMTspe3ZhciBjMD11ZS5j''@;'; + put 'put ''cmVhdGVDb2wodm9pZCAwLHZvaWQgMCxabik7aWYoIShjMD49MSkpe1hyPSEwO2JyZWFrfSR0LmNyZWF0ZUNvbHVtbihudWxsLGMwKX1Ycnx8dWUuc2V0KEZuW19yXVswXSxGbltfcl1bMV0sRm5bX3JdWzNdKX19ZWxzZSBGbi5zcGxpY2UoX3IsMSl9SS5mb3JjZUZ1bGxSZW5kZXI9ITAsQmUu''@;'; + put 'put ''YWRqdXN0Um93c0FuZENvbHMoKSxJLnJ1bkhvb2tzKCJiZWZvcmVDaGFuZ2VSZW5kZXIiLEZuLFpuKSxOZS5sb2NrRWRpdG9yKCksSS5fcmVmcmVzaEJvcmRlcnMobnVsbCksTmUudW5sb2NrRWRpdG9yKCksSS52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpLEkucnVuSG9va3MoImFmdGVyQ2hh''@;'; + put 'put ''bmdlIixGbixabnx8ImVkaXQiKTt2YXIgWGk9SS5nZXRBY3RpdmVFZGl0b3IoKTtYaSYmVG8oWGkucmVmcmVzaFZhbHVlKSYmWGkucmVmcmVzaFZhbHVlKCl9fWZ1bmN0aW9uIGxhKEZuLFpuLF9yKXtyZXR1cm4gQXJyYXkuaXNBcnJheShGbik/Rm46W1tGbixabixfcl1dfXRoaXMuY29sdW1u''@;'; + put 'put ''SW5kZXhNYXBwZXIuYWRkTG9jYWxIb29rKCJjYWNoZVVwZGF0ZWQiLFFyKSx0aGlzLnJvd0luZGV4TWFwcGVyLmFkZExvY2FsSG9vaygiY2FjaGVVcGRhdGVkIixRciksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVTZXRSYW5nZVN0YXJ0IixmdW5jdGlvbihGbil7di5ydW5I''@;'; + put 'put ''b29rcygiYmVmb3JlU2V0UmFuZ2VTdGFydCIsRm4pfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVTZXRSYW5nZVN0YXJ0T25seSIsZnVuY3Rpb24oRm4pe3YucnVuSG9va3MoImJlZm9yZVNldFJhbmdlU3RhcnRPbmx5IixGbil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2Nh''@;'; + put 'put ''bEhvb2soImJlZm9yZVNldFJhbmdlRW5kIixmdW5jdGlvbihGbil7di5ydW5Ib29rcygiYmVmb3JlU2V0UmFuZ2VFbmQiLEZuKSxGbi5yb3c8MCYmKEZuLnJvdz12LnZpZXcuX3d0Lnd0VGFibGUuZ2V0Rmlyc3RWaXNpYmxlUm93KCkpLEZuLmNvbDwwJiYoRm4uY29sPXYudmlldy5fd3Qud3RU''@;'; + put 'put ''YWJsZS5nZXRGaXJzdFZpc2libGVDb2x1bW4oKSl9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyU2V0UmFuZ2VFbmQiLGZ1bmN0aW9uKEZuKXt2YXIgWm49d1MoITEpLF9yPXYuc2VsZWN0aW9uLmdldFNlbGVjdGVkUmFuZ2UoKSxYcj1fci5jdXJyZW50KCksY2k9WHIuZnJv''@;'; + put 'put ''bSxjMD1Yci50byxYaT1fci5zaXplKCktMTt2LnJ1bkhvb2tzKCJhZnRlclNlbGVjdGlvbiIsY2kucm93LGNpLmNvbCxjMC5yb3csYzAuY29sLFpuLFhpKSx2LnJ1bkhvb2tzKCJhZnRlclNlbGVjdGlvbkJ5UHJvcCIsY2kucm93LEkuY29sVG9Qcm9wKGNpLmNvbCksYzAucm93LEkuY29sVG9Q''@;'; + put 'put ''cm9wKGMwLmNvbCksWm4sWGkpO3ZhciBFMD12LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlBbnlIZWFkZXIoKSx6MD12LnNlbGVjdGlvbi5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKSxrbz0hMDtDJiYoa289ITEpLFpuLmlzVG91Y2hlZCgpJiYoa289IVpuLnZhbHVlKTt2YXIgd289di5zZWxlY3Rp''@;'; + put 'put ''b24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCksV2E9di5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCk7ITEhPT1rbyYmKEUwP3dvP3Yudmlldy5zY3JvbGxWaWV3cG9ydFZlcnRpY2FsbHkoSS5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEZu''@;'; + put 'put ''LnJvdykpOldhJiZ2LnZpZXcuc2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkoSS5jb2x1bW5JbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEZuLmNvbCkpOnowJiYhdi5zZWxlY3Rpb24uaXNNdWx0aXBsZSgpP3Yudmlldy5zY3JvbGxWaWV3cG9ydChtcih6MC5mcm9t''@;'; + put 'put ''KSk6di52aWV3LnNjcm9sbFZpZXdwb3J0KG1yKEZuKSkpLHdvJiZXYT9PMCh2LnJvb3RFbGVtZW50LFsiaHRfX3NlbGVjdGlvbi0tcm93cyIsImh0X19zZWxlY3Rpb24tLWNvbHVtbnMiXSk6d28/KHBsKHYucm9vdEVsZW1lbnQsImh0X19zZWxlY3Rpb24tLWNvbHVtbnMiKSxPMCh2LnJvb3RF''@;'; + put 'put ''bGVtZW50LCJodF9fc2VsZWN0aW9uLS1yb3dzIikpOldhPyhwbCh2LnJvb3RFbGVtZW50LCJodF9fc2VsZWN0aW9uLS1yb3dzIiksTzAodi5yb290RWxlbWVudCwiaHRfX3NlbGVjdGlvbi0tY29sdW1ucyIpKTpwbCh2LnJvb3RFbGVtZW50LFsiaHRfX3NlbGVjdGlvbi0tcm93cyIsImh0X19z''@;'; + put 'put ''ZWxlY3Rpb24tLWNvbHVtbnMiXSksdi5fcmVmcmVzaEJvcmRlcnMobnVsbCl9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyU2VsZWN0aW9uRmluaXNoZWQiLGZ1bmN0aW9uKEZuKXt2YXIgWm49Rm4ubGVuZ3RoLTEsX3I9Rm5bWm5dLFhyPV9yLmZyb20sY2k9X3IudG87di5y''@;'; + put 'put ''dW5Ib29rcygiYWZ0ZXJTZWxlY3Rpb25FbmQiLFhyLnJvdyxYci5jb2wsY2kucm93LGNpLmNvbCxabiksdi5ydW5Ib29rcygiYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3AiLFhyLnJvdyxJLmNvbFRvUHJvcChYci5jb2wpLGNpLnJvdyxJLmNvbFRvUHJvcChjaS5jb2wpLFpuKX0pLHRoaXMuc2Vs''@;'; + put 'put ''ZWN0aW9uLmFkZExvY2FsSG9vaygiYWZ0ZXJJc011bHRpcGxlU2VsZWN0aW9uIixmdW5jdGlvbihGbil7dmFyIFpuPXYucnVuSG9va3MoImFmdGVySXNNdWx0aXBsZVNlbGVjdGlvbiIsRm4udmFsdWUpO0ZuLnZhbHVlJiYoRm4udmFsdWU9Wm4pfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxI''@;'; + put 'put ''b29rKCJiZWZvcmVNb2RpZnlUcmFuc2Zvcm1TdGFydCIsZnVuY3Rpb24oRm4pe3YucnVuSG9va3MoIm1vZGlmeVRyYW5zZm9ybVN0YXJ0IixGbil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQiLGZ1bmN0aW9uKEZuLFpuLF9yKXt2LnJ1''@;'; + put 'put ''bkhvb2tzKCJhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0IixGbixabixfcil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZU1vZGlmeVRyYW5zZm9ybUVuZCIsZnVuY3Rpb24oRm4pe3YucnVuSG9va3MoIm1vZGlmeVRyYW5zZm9ybUVuZCIsRm4pfSksdGhpcy5zZWxlY3Rp''@;'; + put 'put ''b24uYWRkTG9jYWxIb29rKCJhZnRlck1vZGlmeVRyYW5zZm9ybUVuZCIsZnVuY3Rpb24oRm4sWm4sX3Ipe3YucnVuSG9va3MoImFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kIixGbixabixfcil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyRGVzZWxlY3QiLGZ1bmN0aW9uKCl7''@;'; + put 'put ''TmUuZGVzdHJveUVkaXRvcigpLHYuX3JlZnJlc2hCb3JkZXJzKCkscGwodi5yb290RWxlbWVudCxbImh0X19zZWxlY3Rpb24tLXJvd3MiLCJodF9fc2VsZWN0aW9uLS1jb2x1bW5zIl0pLHYucnVuSG9va3MoImFmdGVyRGVzZWxlY3QiKX0pLHRoaXMuc2VsZWN0aW9uLmFkZExvY2FsSG9vaygi''@;'; + put 'put ''aW5zZXJ0Um93UmVxdWlyZSIsZnVuY3Rpb24oRm4pe3YuYWx0ZXIoImluc2VydF9yb3ciLEZuLDEsImF1dG8iKX0pLHRoaXMuc2VsZWN0aW9uLmFkZExvY2FsSG9vaygiaW5zZXJ0Q29sUmVxdWlyZSIsZnVuY3Rpb24oRm4pe3YuYWx0ZXIoImluc2VydF9jb2wiLEZuLDEsImF1dG8iKX0pLEJl''@;'; + put 'put ''PXthbHRlcjpmdW5jdGlvbihabixfcil7dmFyIFhpLFhyPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxLGNpPWFyZ3VtZW50cy5sZW5ndGg+Mz9hcmd1bWVudHNbM106dm9pZCAwLGMwPWFyZ3VtZW50cy5sZW5ndGg+ND9hcmd1bWVudHNb''@;'; + put 'put ''NF06dm9pZCAwLEUwPWZ1bmN0aW9uKGpnKXtpZigwPT09amcubGVuZ3RoKXJldHVybltdO3ZhciBmZD1MdyhqZyk7cmV0dXJuIGZkLnNvcnQoZnVuY3Rpb24oaDMsR3Upe3ZhciBXdT1JZyhoMywxKVswXSxIcD1JZyhHdSwxKVswXTtyZXR1cm4gV3U9PT1IcD8wOld1PkhwPzE6LTF9KSxTdShm''@;'; + put 'put ''ZCxmdW5jdGlvbihoMyxHdSl7dmFyIEV1PUlnKEd1LDIpLFd1PUV1WzBdLGhkPUV1WzFdLEhwPWgzW2gzLmxlbmd0aC0xXSxOcD1JZyhIcCwyKSxpUj1OcFswXStOcFsxXTtpZihXdTw9aVIpe3ZhciBHbmU9TWF0aC5tYXgoaGQtKGlSLVd1KSwwKTtIcFsxXSs9R25lfWVsc2UgaDMucHVzaChb''@;'; + put 'put ''V3UsaGRdKTtyZXR1cm4gaDN9LFtmZFswXV0pfTtzd2l0Y2goWm4pe2Nhc2UiaW5zZXJ0X3JvdyI6dmFyIHowPUkuY291bnRTb3VyY2VSb3dzKCk7aWYoZm4ubWF4Um93cz09PXowKXJldHVybjtpZihfcj1Ubyhfcik/X3I6ejAsWGk9dWUuY3JlYXRlUm93KF9yLFhyLGNpKSl7JHQuY3JlYXRl''@;'; + put 'put ''Um93KEkudG9QaHlzaWNhbFJvdyhfciksWHIpO3ZhciBrbz13ci5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKSx3bz1udWxsPT1rbz92b2lkIDA6a28uZnJvbSxXYT1udWxsPT13bz92b2lkIDA6d28ucm93O2lmKFRvKFdhKSYmV2E+PV9yKXt2YXIgZTI9a28udG8sRmE9ZTIucm93LHQyPWUyLmNv''@;'; + put 'put ''bCxPMT13by5jb2w7d3IuaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkmJihPMT0tMSksd3IuZ2V0U2VsZWN0ZWRSYW5nZSgpLnBvcCgpLHdyLnNldFJhbmdlU3RhcnRPbmx5KEkuX2NyZWF0ZUNlbGxDb29yZHMoV2ErWGksTzEpLCEwKSx3ci5zZXRSYW5nZUVuZChJLl9jcmVhdGVDZWxsQ29vcmRz''@;'; + put 'put ''KEZhK1hpLHQyKSl9ZWxzZSBJLl9yZWZyZXNoQm9yZGVycygpfWJyZWFrO2Nhc2UiaW5zZXJ0X2NvbCI6aWYoWGk9dWUuY3JlYXRlQ29sKF9yLFhyLGNpKSl7aWYoJHQuY3JlYXRlQ29sdW1uKEkudG9QaHlzaWNhbENvbHVtbihfciksWHIpLEFycmF5LmlzQXJyYXkoZm4uY29sSGVhZGVycykp''@;'; + put 'put ''e3ZhciBSMT1bX3IsMF07UjEubGVuZ3RoKz1YaSxBcnJheS5wcm90b3R5cGUuc3BsaWNlLmFwcGx5KGZuLmNvbEhlYWRlcnMsUjEpfXZhciB6dT13ci5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKSxQYz1udWxsPT16dT92b2lkIDA6enUuZnJvbSxpdT1udWxsPT1QYz92b2lkIDA6UGMuY29sO2lm''@;'; + put 'put ''KFRvKGl1KSYmaXU+PV9yKXt2YXIgRmM9enUudG8sY2Q9RmMucm93LHJSPUZjLmNvbCxKdz1QYy5yb3c7d3IuaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkmJihKdz0tMSksd3IuZ2V0U2VsZWN0ZWRSYW5nZSgpLnBvcCgpLHdyLnNldFJhbmdlU3RhcnRPbmx5KEkuX2NyZWF0ZUNlbGxDb29y''@;'; + put 'put ''ZHMoSncsaXUrWGkpLCEwKSx3ci5zZXRSYW5nZUVuZChJLl9jcmVhdGVDZWxsQ29vcmRzKGNkLHJSK1hpKSl9ZWxzZSBJLl9yZWZyZXNoQm9yZGVycygpfWJyZWFrO2Nhc2UicmVtb3ZlX3JvdyI6dmFyIFZ6PWZ1bmN0aW9uKGpnKXt2YXIgZmQ9MDtVcihqZyxmdW5jdGlvbih3TSl7dmFyIGgz''@;'; + put 'put ''PUlnKHdNLDIpLEd1PWgzWzBdLEV1PWgzWzFdLFd1PWRjKEd1KT9JLmNvdW50Um93cygpLTE6TWF0aC5tYXgoR3UtZmQsMCk7aWYoTnVtYmVyLmlzSW50ZWdlcihHdSkmJihHdT1NYXRoLm1heChHdS1mZCwwKSksdWUucmVtb3ZlUm93KEd1LEV1LGNpKSl7JHQucmVtb3ZlUm93KEkudG9QaHlz''@;'; + put 'put ''aWNhbFJvdyhXdSksRXUpO3ZhciBIcD1JLmNvdW50Um93cygpLE5wPWZuLmZpeGVkUm93c1RvcDtOcD49V3UrMSYmKGZuLmZpeGVkUm93c1RvcC09TWF0aC5taW4oRXUsTnAtV3UpKTt2YXIgb3Y9Zm4uZml4ZWRSb3dzQm90dG9tO292JiZXdT49SHAtb3YmJihmbi5maXhlZFJvd3NCb3R0b20t''@;'; + put 'put ''PU1hdGgubWluKEV1LG92KSksZmQrPUV1fX0pfTtBcnJheS5pc0FycmF5KF9yKT9WeihFMChfcikpOlZ6KFtbX3IsWHJdXSksQmUuYWRqdXN0Um93c0FuZENvbHMoKSxJLl9yZWZyZXNoQm9yZGVycygpO2JyZWFrO2Nhc2UicmVtb3ZlX2NvbCI6dmFyIGp6PWZ1bmN0aW9uKGpnKXt2YXIgZmQ9''@;'; + put 'put ''MDtVcihqZyxmdW5jdGlvbih3TSl7dmFyIGgzPUlnKHdNLDIpLEd1PWgzWzBdLEV1PWgzWzFdLFd1PWRjKEd1KT9JLmNvdW50Q29scygpLTE6TWF0aC5tYXgoR3UtZmQsMCksaGQ9SS50b1BoeXNpY2FsQ29sdW1uKFd1KTtpZihOdW1iZXIuaXNJbnRlZ2VyKEd1KSYmKEd1PU1hdGgubWF4KEd1''@;'; + put 'put ''LWZkLDApKSx1ZS5yZW1vdmVDb2woR3UsRXUsY2kpKXskdC5yZW1vdmVDb2x1bW4oaGQsRXUpO3ZhciBOcD1mbi5maXhlZENvbHVtbnNTdGFydDtOcD49V3UrMSYmKGZuLmZpeGVkQ29sdW1uc1N0YXJ0LT1NYXRoLm1pbihFdSxOcC1XdSkpLEFycmF5LmlzQXJyYXkoZm4uY29sSGVhZGVycykm''@;'; + put 'put ''Jih2b2lkIDA9PT1oZCYmKGhkPS0xKSxmbi5jb2xIZWFkZXJzLnNwbGljZShoZCxFdSkpLGZkKz1FdX19KX07QXJyYXkuaXNBcnJheShfcik/anooRTAoX3IpKTpqeihbW19yLFhyXV0pLEJlLmFkanVzdFJvd3NBbmRDb2xzKCksSS5fcmVmcmVzaEJvcmRlcnMoKTticmVhaztkZWZhdWx0OnRo''@;'; + put 'put ''cm93IG5ldyBFcnJvcignVGhlcmUgaXMgbm8gc3VjaCBhY3Rpb24gIicuY29uY2F0KFpuLCciJykpfWMwfHxCZS5hZGp1c3RSb3dzQW5kQ29scygpfSxhZGp1c3RSb3dzQW5kQ29sczpmdW5jdGlvbigpe3ZhciBrbyxabj1mbi5taW5Sb3dzLF9yPWZuLm1pblNwYXJlUm93cyxYcj1mbi5taW5D''@;'; + put 'put ''b2xzLGNpPWZuLm1pblNwYXJlQ29scztpZihabil7dmFyIGMwPUkuY291bnRSb3dzKCk7YzA8Wm4mJnVlLmNyZWF0ZVJvdyhjMCxabi1jMCwiYXV0byIpfWlmKF9yKXt2YXIgWGk9SS5jb3VudEVtcHR5Um93cyghMCk7aWYoWGk8X3Ipe3ZhciB6MD1NYXRoLm1pbihfci1YaSxmbi5tYXhSb3dz''@;'; + put 'put ''LUkuY291bnRTb3VyY2VSb3dzKCkpO3VlLmNyZWF0ZVJvdyhJLmNvdW50Um93cygpLHowLCJhdXRvIil9fShYcnx8Y2kpJiYoa289SS5jb3VudEVtcHR5Q29scyghMCkpO3ZhciB3bz1JLmNvdW50Q29scygpO2lmKFhyJiYhZm4uY29sdW1ucyYmd288WHIpe3ZhciBXYT1Yci13bztrbys9V2Es''@;'; + put 'put ''dWUuY3JlYXRlQ29sKHdvLFdhLCJhdXRvIil9aWYoY2kmJiFmbi5jb2x1bW5zJiYiYXJyYXkiPT09SS5kYXRhVHlwZSYma288Y2kpe3dvPUkuY291bnRDb2xzKCk7dmFyIEZhPU1hdGgubWluKGNpLWtvLGZuLm1heENvbHMtd28pO3VlLmNyZWF0ZUNvbCh3byxGYSwiYXV0byIpfXZhciB0Mj1J''@;'; + put 'put ''LmNvdW50Um93cygpLE8xPUkuY291bnRDb2xzKCk7KDA9PT10Mnx8MD09PU8xKSYmd3IuZGVzZWxlY3QoKSx3ci5pc1NlbGVjdGVkKCkmJlVyKHdyLnNlbGVjdGVkUmFuZ2UsZnVuY3Rpb24oUjEpe3ZhciB6dT0hMSxQYz1SMS5mcm9tLnJvdyxpdT1SMS5mcm9tLmNvbCxGYz1SMS50by5yb3cs''@;'; + put 'put ''Y2Q9UjEudG8uY29sO1BjPnQyLTE/KHp1PSEwLEZjPihQYz10Mi0xKSYmKEZjPVBjKSk6RmM+dDItMSYmKHp1PSEwLFBjPihGYz10Mi0xKSYmKFBjPUZjKSksaXU+TzEtMT8oenU9ITAsY2Q+KGl1PU8xLTEpJiYoY2Q9aXUpKTpjZD5PMS0xJiYoenU9ITAsaXU+KGNkPU8xLTEpJiYoaXU9Y2Qp''@;'; + put 'put ''KSx6dSYmSS5zZWxlY3RDZWxsKFBjLGl1LEZjLGNkKX0pLEkudmlldyYmSS52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpfSxwb3B1bGF0ZUZyb21BcnJheTpmdW5jdGlvbihabixfcixYcixjaSxjMCxYaSxFMCl7dmFyIHowLGtvLHdvLFdhLGUyPVtdLEZhPXt9LHQyPVtdLE8xPVpuLnJvdyxS''@;'; + put 'put ''MT1abi5jb2w7aWYoMD09PShrbz1fci5sZW5ndGgpKXJldHVybiExO3ZhciB6dT0wLFBjPTA7c3dpdGNoKHhsKFhyKSYmKHp1PVhyLmNvbC1SMSsxLFBjPVhyLnJvdy1PMSsxKSxjMCl7Y2FzZSJzaGlmdF9kb3duIjp2YXIgaXU9VFooX3IpLEZjPWl1Lmxlbmd0aCxjZD1NYXRoLm1heChGYyx6''@;'; + put 'put ''dSksclI9SS5nZXREYXRhKCkuc2xpY2UoTzEpLEp3PVRaKHJSKS5zbGljZShSMSxSMStjZCk7Zm9yKHdvPTA7d288Y2Q7d28rPTEpaWYod288RmMpe2Zvcih6MD0wLGtvPWl1W3dvXS5sZW5ndGg7ejA8UGMta287ejArPTEpaXVbd29dLnB1c2goaXVbd29dW3owJWtvXSk7dDIucHVzaChpdVt3''@;'; + put 'put ''b10uY29uY2F0KHdvPEp3Lmxlbmd0aD9Kd1t3b106bmV3IEFycmF5KHJSLmxlbmd0aCkuZmlsbChudWxsKSkpfWVsc2UgdDIucHVzaChpdVt3byVGY10uY29uY2F0KEp3W3dvXSkpO0kucG9wdWxhdGVGcm9tQXJyYXkoTzEsUjEsVFoodDIpKTticmVhaztjYXNlInNoaWZ0X3JpZ2h0Ijp2YXIg''@;'; + put 'put ''Vno9X3IubGVuZ3RoLGp6PU1hdGgubWF4KFZ6LFBjKSxYdz1JLmdldERhdGEoKS5zbGljZShPMSkubWFwKGZ1bmN0aW9uKFJMZSl7cmV0dXJuIFJMZS5zbGljZShSMSl9KTtmb3IoejA9MDt6MDxqejt6MCs9MSlpZih6MDxWeil7Zm9yKHdvPTAsV2E9X3JbejBdLmxlbmd0aDt3bzx6dS1XYTt3''@;'; + put 'put ''bys9MSlfclt6MF0ucHVzaChfclt6MF1bd28lV2FdKTt2YXIgZmQ7aWYoejA8WHcubGVuZ3RoKWZvcih2YXIgamc9MDtqZzxYd1t6MF0ubGVuZ3RoO2pnKz0xKV9yW3owXS5wdXNoKFh3W3owXVtqZ10pO2Vsc2UoZmQ9X3JbejBdKS5wdXNoLmFwcGx5KGZkLEx3KG5ldyBBcnJheShYd1swXS5s''@;'; + put 'put ''ZW5ndGgpLmZpbGwobnVsbCkpKX1lbHNlIF9yLnB1c2goX3JbejAla29dLnNsaWNlKDAsanopLmNvbmNhdChYd1t6MF0pKTtJLnBvcHVsYXRlRnJvbUFycmF5KE8xLFIxLF9yKTticmVhaztkZWZhdWx0OkZhLnJvdz1abi5yb3csRmEuY29sPVpuLmNvbDt2YXIgV3Usd009e3JvdzpYciYmWm4/''@;'; + put 'put ''WHIucm93LVpuLnJvdysxOjEsY29sOlhyJiZabj9Yci5jb2wtWm4uY29sKzE6MX0saDM9MCxHdT0wLEV1PSEwLGhkPWZ1bmN0aW9uKEdBdCl7dmFyIEJMZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbCxPbWU9X3JbR0F0JV9yLmxl''@;'; + put 'put ''bmd0aF07cmV0dXJuIG51bGwhPT1CTGU/T21lW0JMZSVPbWUubGVuZ3RoXTpPbWV9LEhwPV9yLmxlbmd0aCxOcD1Ycj9Yci5yb3ctWm4ucm93KzE6MDtmb3Ioa289WHI/TnA6TWF0aC5tYXgoSHAsTnApLHowPTA7ejA8a28mJiEoWHImJkZhLnJvdz5Yci5yb3cmJk5wPkhwfHwhZm4uYWxsb3dJ''@;'; + put 'put ''bnNlcnRSb3cmJkZhLnJvdz5JLmNvdW50Um93cygpLTF8fEZhLnJvdz49Zm4ubWF4Um93cyk7ejArKyl7dmFyIG92PXowLWgzLHpuZT1oZChvdikubGVuZ3RoLGlSPVhyP1hyLmNvbC1abi5jb2wrMTowO2lmKFdhPVhyP2lSOk1hdGgubWF4KHpuZSxpUiksRmEuY29sPVpuLmNvbCxXdT1JLmdl''@;'; + put 'put ''dENlbGxNZXRhKEZhLnJvdyxGYS5jb2wpLCJDb3B5UGFzdGUucGFzdGUiIT09Y2kmJiJBdXRvZmlsbC5maWxsIiE9PWNpfHwhV3Uuc2tpcFJvd09uUGFzdGUpe2ZvcihHdT0wLHdvPTA7d288V2EmJiEoWHImJkZhLmNvbD5Yci5jb2wmJmlSPnpuZXx8IWZuLmFsbG93SW5zZXJ0Q29sdW1uJiZG''@;'; + put 'put ''YS5jb2w+SS5jb3VudENvbHMoKS0xfHxGYS5jb2w+PWZuLm1heENvbHMpO3dvKyspaWYoV3U9SS5nZXRDZWxsTWV0YShGYS5yb3csRmEuY29sKSwiQ29weVBhc3RlLnBhc3RlIiE9PWNpJiYiQXV0b2ZpbGwuZmlsbCIhPT1jaXx8IVd1LnNraXBDb2x1bW5PblBhc3RlKWlmKFd1LnJlYWRPbmx5''@;'; + put 'put ''JiYiVW5kb1JlZG8udW5kbyIhPT1jaSlGYS5jb2wrPTE7ZWxzZXt2YXIgR25lPXdvLUd1LFZwPWhkKG92LEduZSksWmc9SS5nZXREYXRhQXRDZWxsKEZhLnJvdyxGYS5jb2wpO2lmKCJBdXRvZmlsbC5maWxsIj09PWNpKXt2YXIgTG1lPUkucnVuSG9va3MoImJlZm9yZUF1dG9maWxsSW5zaWRl''@;'; + put 'put ''UG9wdWxhdGUiLHtyb3c6b3YsY29sOkduZX0sWGksX3IsRTAse30sd00pO0xtZSYmKFZwPWExKExtZS52YWx1ZSk/VnA6TG1lLnZhbHVlKX1udWxsIT09VnAmJiJvYmplY3QiPT09dWQoVnApPyhBcnJheS5pc0FycmF5KFZwKSYmbnVsbD09PVpnJiYoWmc9W10pLG51bGw9PT1aZ3x8Im9iamVj''@;'; + put 'put ''dCIhPT11ZChaZyk/RXU9ITE6WGhlKCRMKEFycmF5LmlzQXJyYXkoWmcpP1pnOlpnWzBdfHxaZyksJEwoQXJyYXkuaXNBcnJheShWcCk/VnA6VnBbMF18fFZwKSk/VnA9Z2goVnApOkV1PSExKTpudWxsIT09WmcmJiJvYmplY3QiPT09dWQoWmcpJiYoRXU9ITEpLEV1JiZlMi5wdXNoKFtGYS5y''@;'; + put 'put ''b3csRmEuY29sLFZwXSksRXU9ITAsRmEuY29sKz0xfWVsc2UgR3UrPTEsRmEuY29sKz0xLFdhKz0xO0ZhLnJvdys9MX1lbHNlIGgzKz0xLEZhLnJvdys9MSxrbys9MX1JLnNldERhdGFBdENlbGwoZTIsbnVsbCxudWxsLGNpfHwicG9wdWxhdGVGcm9tQXJyYXkiKX19fSx0aGlzLmluaXQ9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtfZS5zZXREYXRhKGZuLmRhdGEpLEkucnVuSG9va3MoImJlZm9yZUluaXQiKSwoYjgoKXx8JGhlKCkpJiZPMChJLnJvb3RFbGVtZW50LCJtb2JpbGUiKSx0aGlzLnVwZGF0ZVNldHRpbmdzKGZuLCEwKSx0aGlzLnZpZXc9bmV3IE9RZSh0aGlzKSxOZT16WmUuZ2V0SW5zdGFuY2Uo''@;'; + put 'put ''SSxmbix3ciksSS5ydW5Ib29rcygiaW5pdCIpLHRoaXMuZm9yY2VGdWxsUmVuZGVyPSEwLHRoaXMudmlldy5yZW5kZXIoKSwib2JqZWN0Ij09PXVkKEtlKSYmKEkucnVuSG9va3MoImFmdGVyQ2hhbmdlIixLZVswXSxLZVsxXSksS2U9ITEpLEkucnVuSG9va3MoImFmdGVySW5pdCIpfSx0aGlz''@;'; + put 'put ''Ll9jcmVhdGVDZWxsQ29vcmRzPWZ1bmN0aW9uKEZuLFpuKXtyZXR1cm4gSS52aWV3Ll93dC5jcmVhdGVDZWxsQ29vcmRzKEZuLFpuKX0sdGhpcy5fY3JlYXRlQ2VsbFJhbmdlPWZ1bmN0aW9uKEZuLFpuLF9yKXtyZXR1cm4gSS52aWV3Ll93dC5jcmVhdGVDZWxsUmFuZ2UoRm4sWm4sX3IpfSx0''@;'; + put 'put ''aGlzLnZhbGlkYXRlQ2VsbD1mdW5jdGlvbihGbixabixfcixYcil7dmFyIFhpLGNpPUkuZ2V0Q2VsbFZhbGlkYXRvcihabik7ZnVuY3Rpb24gYzAoWGkpe3ZhciBFMD0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO2lmKEUwJiYhMCE9''@;'; + put 'put ''PVpuLmhpZGRlbil7dmFyIHowPVpuLnZpc3VhbENvbCxrbz1abi52aXN1YWxSb3csd289SS5nZXRDZWxsKGtvLHowLCEwKTtpZih3byYmIlRIIiE9PXdvLm5vZGVOYW1lKXt2YXIgV2E9SS5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGtvKSxlMj1JLmNvbHVt''@;'; + put 'put ''bkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoejApO0kudmlldy5fd3QuZ2V0U2V0dGluZygiY2VsbFJlbmRlcmVyIixXYSxlMix3byl9X3IoWGkpfWVsc2UgX3IoWGkpfVRiZShjaSkmJihYaT1jaSxjaT1mdW5jdGlvbihFMCx6MCl7ejAoWGkudGVzdChFMCkpfSks''@;'; + put 'put ''WTIoY2kpPyhGbj1JLnJ1bkhvb2tzKCJiZWZvcmVWYWxpZGF0ZSIsRm4sWm4udmlzdWFsUm93LFpuLnByb3AsWHIpLEkuX3JlZ2lzdGVySW1tZWRpYXRlKGZ1bmN0aW9uKCl7Y2kuY2FsbChabixGbixmdW5jdGlvbihYaSl7IUl8fChYaT1JLnJ1bkhvb2tzKCJhZnRlclZhbGlkYXRlIixYaSxG''@;'; + put 'put ''bixabi52aXN1YWxSb3csWm4ucHJvcCxYciksWm4udmFsaWQ9WGksYzAoWGkpLEkucnVuSG9va3MoInBvc3RBZnRlclZhbGlkYXRlIixYaSxGbixabi52aXN1YWxSb3csWm4ucHJvcCxYcikpfSl9KSk6SS5fcmVnaXN0ZXJJbW1lZGlhdGUoZnVuY3Rpb24oKXtabi52YWxpZD0hMCxjMChabi52''@;'; + put 'put ''YWxpZCwhMSl9KX0sdGhpcy5zZXREYXRhQXRDZWxsPWZ1bmN0aW9uKEZuLFpuLF9yLFhyKXt2YXIgRTAsejAsa28sY2k9bGEoRm4sWm4sX3IpLGMwPVtdLFhpPVhyO2ZvcihFMD0wLHowPWNpLmxlbmd0aDtFMDx6MDtFMCsrKXtpZigib2JqZWN0IiE9PXVkKGNpW0UwXSkpdGhyb3cgbmV3IEVy''@;'; + put 'put ''cm9yKCJNZXRob2QgYHNldERhdGFBdENlbGxgIGFjY2VwdHMgcm93IG51bWJlciBvciBjaGFuZ2VzIGFycmF5IG9mIGFycmF5cyBhcyBpdHMgZmlyc3QgcGFyYW1ldGVyIik7aWYoIm51bWJlciIhPXR5cGVvZiBjaVtFMF1bMV0pdGhyb3cgbmV3IEVycm9yKCJNZXRob2QgYHNldERhdGFBdENl''@;'; + put 'put ''bGxgIGFjY2VwdHMgcm93IGFuZCBjb2x1bW4gbnVtYmVyIGFzIGl0cyBwYXJhbWV0ZXJzLiBJZiB5b3Ugd2FudCB0byB1c2Ugb2JqZWN0IHByb3BlcnR5IG5hbWUsIHVzZSBtZXRob2QgYHNldERhdGFBdFJvd1Byb3BgIik7a289Y2lbRTBdWzFdPj10aGlzLmNvdW50Q29scygpP2NpW0UwXVsx''@;'; + put 'put ''XTp1ZS5jb2xUb1Byb3AoY2lbRTBdWzFdKSxjMC5wdXNoKFtjaVtFMF1bMF0sa28sX2UuZ2V0QXRDZWxsKHRoaXMudG9QaHlzaWNhbFJvdyhjaVtFMF1bMF0pLGNpW0UwXVsxXSksY2lbRTBdWzJdXSl9IVhpJiYib2JqZWN0Ij09PXVkKEZuKSYmKFhpPVpuKSxJLnJ1bkhvb2tzKCJhZnRlclNl''@;'; + put 'put ''dERhdGFBdENlbGwiLGMwLFhpKSxTYShjMCxYaSxmdW5jdGlvbigpe0phKGMwLFhpKX0pfSx0aGlzLnNldERhdGFBdFJvd1Byb3A9ZnVuY3Rpb24oRm4sWm4sX3IsWHIpe3ZhciBFMCx6MCxjaT1sYShGbixabixfciksYzA9W10sWGk9WHI7Zm9yKEUwPTAsejA9Y2kubGVuZ3RoO0UwPHowO0Uw''@;'; + put 'put ''KyspYzAucHVzaChbY2lbRTBdWzBdLGNpW0UwXVsxXSxfZS5nZXRBdENlbGwodGhpcy50b1BoeXNpY2FsUm93KGNpW0UwXVswXSksY2lbRTBdWzFdKSxjaVtFMF1bMl1dKTshWGkmJiJvYmplY3QiPT09dWQoRm4pJiYoWGk9Wm4pLEkucnVuSG9va3MoImFmdGVyU2V0RGF0YUF0Um93UHJvcCIs''@;'; + put 'put ''YzAsWGkpLFNhKGMwLFhpLGZ1bmN0aW9uKCl7SmEoYzAsWGkpfSl9LHRoaXMubGlzdGVuPWZ1bmN0aW9uKCl7SSYmIUkuaXNMaXN0ZW5pbmcoKSYmKHI2ZT1JLmd1aWQsSS5ydW5Ib29rcygiYWZ0ZXJMaXN0ZW4iKSl9LHRoaXMudW5saXN0ZW49ZnVuY3Rpb24oKXt0aGlzLmlzTGlzdGVuaW5n''@;'; + put 'put ''KCkmJihyNmU9bnVsbCxJLnJ1bkhvb2tzKCJhZnRlclVubGlzdGVuIikpfSx0aGlzLmlzTGlzdGVuaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHI2ZT09PUkuZ3VpZH0sdGhpcy5kZXN0cm95RWRpdG9yPWZ1bmN0aW9uKCl7dmFyIEZuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1l''@;'; + put 'put ''bnRzWzBdJiZhcmd1bWVudHNbMF0sWm49IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTtJLl9yZWZyZXNoQm9yZGVycyhGbixabil9LHRoaXMucG9wdWxhdGVGcm9tQXJyYXk9ZnVuY3Rpb24oRm4sWm4sX3IsWHIsY2ksYzAsWGksRTAs''@;'; + put 'put ''ejApe2lmKCJvYmplY3QiIT09dWQoX3IpfHwib2JqZWN0IiE9PXVkKF9yWzBdKSl0aHJvdyBuZXcgRXJyb3IoInBvcHVsYXRlRnJvbUFycmF5IHBhcmFtZXRlciBgaW5wdXRgIG11c3QgYmUgYW4gYXJyYXkgb2YgYXJyYXlzIik7dmFyIGtvPSJudW1iZXIiPT10eXBlb2YgWHI/SS5fY3JlYXRl''@;'; + put 'put ''Q2VsbENvb3JkcyhYcixjaSk6bnVsbDtyZXR1cm4gQmUucG9wdWxhdGVGcm9tQXJyYXkoSS5fY3JlYXRlQ2VsbENvb3JkcyhGbixabiksX3Isa28sYzAsWGksRTAsejApfSx0aGlzLnNwbGljZUNvbD1mdW5jdGlvbihGbixabixfcil7Zm9yKHZhciBYcixjaT1hcmd1bWVudHMubGVuZ3RoLGMw''@;'; + put 'put ''PW5ldyBBcnJheShjaT4zP2NpLTM6MCksWGk9MztYaTxjaTtYaSsrKWMwW1hpLTNdPWFyZ3VtZW50c1tYaV07cmV0dXJuKFhyPXVlKS5zcGxpY2VDb2wuYXBwbHkoWHIsW0ZuLFpuLF9yXS5jb25jYXQoYzApKX0sdGhpcy5zcGxpY2VSb3c9ZnVuY3Rpb24oRm4sWm4sX3Ipe2Zvcih2YXIgWHIs''@;'; + put 'put ''Y2k9YXJndW1lbnRzLmxlbmd0aCxjMD1uZXcgQXJyYXkoY2k+Mz9jaS0zOjApLFhpPTM7WGk8Y2k7WGkrKyljMFtYaS0zXT1hcmd1bWVudHNbWGldO3JldHVybihYcj11ZSkuc3BsaWNlUm93LmFwcGx5KFhyLFtGbixabixfcl0uY29uY2F0KGMwKSl9LHRoaXMuZ2V0U2VsZWN0ZWQ9ZnVuY3Rp''@;'; + put 'put ''b24oKXtpZih3ci5pc1NlbGVjdGVkKCkpcmV0dXJuIE9sKHdyLmdldFNlbGVjdGVkUmFuZ2UoKSxmdW5jdGlvbihGbil7dmFyIFpuPUZuLmZyb20sX3I9Rm4udG87cmV0dXJuW1puLnJvdyxabi5jb2wsX3Iucm93LF9yLmNvbF19KX0sdGhpcy5nZXRTZWxlY3RlZExhc3Q9ZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgWm4sRm49dGhpcy5nZXRTZWxlY3RlZCgpO3JldHVybiBGbiYmRm4ubGVuZ3RoPjAmJihabj1GbltGbi5sZW5ndGgtMV0pLFpufSx0aGlzLmdldFNlbGVjdGVkUmFuZ2U9ZnVuY3Rpb24oKXtpZih3ci5pc1NlbGVjdGVkKCkpcmV0dXJuIEFycmF5LmZyb20od3IuZ2V0U2VsZWN0ZWRSYW5n''@;'; + put 'put ''ZSgpKX0sdGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdD1mdW5jdGlvbigpe3ZhciBabixGbj10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKTtyZXR1cm4gRm4mJkZuLmxlbmd0aD4wJiYoWm49Rm5bRm4ubGVuZ3RoLTFdKSxabn0sdGhpcy5lbXB0eVNlbGVjdGVkQ2VsbHM9ZnVuY3Rpb24oRm4pe3Zh''@;'; + put 'put ''ciBabj10aGlzO2lmKHdyLmlzU2VsZWN0ZWQoKSYmMCE9PXRoaXMuY291bnRSb3dzKCkmJjAhPT10aGlzLmNvdW50Q29scygpKXt2YXIgX3I9W107VXIod3IuZ2V0U2VsZWN0ZWRSYW5nZSgpLGZ1bmN0aW9uKFhyKXt2YXIgY2k9WHIuZ2V0VG9wU3RhcnRDb3JuZXIoKSxjMD1Yci5nZXRCb3R0''@;'; + put 'put ''b21FbmRDb3JuZXIoKTtpYShjaS5yb3csYzAucm93LGZ1bmN0aW9uKFhpKXtpYShjaS5jb2wsYzAuY29sLGZ1bmN0aW9uKEUwKXtabi5nZXRDZWxsTWV0YShYaSxFMCkucmVhZE9ubHl8fF9yLnB1c2goW1hpLEUwLG51bGxdKX0pfSl9KSxfci5sZW5ndGg+MCYmdGhpcy5zZXREYXRhQXRDZWxs''@;'; + put 'put ''KF9yLEZuKX19LHRoaXMuaXNSZW5kZXJTdXNwZW5kZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyPjB9LHRoaXMuc3VzcGVuZFJlbmRlcj1mdW5jdGlvbigpe3RoaXMucmVuZGVyU3VzcGVuZGVkQ291bnRlcis9MX0sdGhpcy5yZXN1bWVSZW5kZXI9ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgRm49dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyLTE7dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyPU1hdGgubWF4KEZuLDApLCF0aGlzLmlzUmVuZGVyU3VzcGVuZGVkKCkmJkZuPT09dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyJiYodGhpcy5yZW5kZXJDYWxs''@;'; + put 'put ''P3RoaXMucmVuZGVyKCk6dGhpcy5fcmVmcmVzaEJvcmRlcnMobnVsbCkpfSx0aGlzLnJlbmRlcj1mdW5jdGlvbigpe3RoaXMudmlldyYmKHRoaXMucmVuZGVyQ2FsbD0hMCx0aGlzLmZvcmNlRnVsbFJlbmRlcj0hMCx0aGlzLmlzUmVuZGVyU3VzcGVuZGVkKCl8fChOZS5sb2NrRWRpdG9yKCks''@;'; + put 'put ''dGhpcy5fcmVmcmVzaEJvcmRlcnMobnVsbCksTmUudW5sb2NrRWRpdG9yKCkpKX0sdGhpcy5iYXRjaFJlbmRlcj1mdW5jdGlvbihGbil7dGhpcy5zdXNwZW5kUmVuZGVyKCk7dmFyIFpuPUZuKCk7cmV0dXJuIHRoaXMucmVzdW1lUmVuZGVyKCksWm59LHRoaXMuaXNFeGVjdXRpb25TdXNwZW5k''@;'; + put 'put ''ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5leGVjdXRpb25TdXNwZW5kZWRDb3VudGVyPjB9LHRoaXMuc3VzcGVuZEV4ZWN1dGlvbj1mdW5jdGlvbigpe3RoaXMuZXhlY3V0aW9uU3VzcGVuZGVkQ291bnRlcis9MSx0aGlzLmNvbHVtbkluZGV4TWFwcGVyLnN1c3BlbmRPcGVyYXRpb25zKCks''@;'; + put 'put ''dGhpcy5yb3dJbmRleE1hcHBlci5zdXNwZW5kT3BlcmF0aW9ucygpfSx0aGlzLnJlc3VtZUV4ZWN1dGlvbj1mdW5jdGlvbigpe3ZhciBGbj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLFpuPXRoaXMuZXhlY3V0aW9uU3VzcGVuZGVkQ291''@;'; + put 'put ''bnRlci0xO3RoaXMuZXhlY3V0aW9uU3VzcGVuZGVkQ291bnRlcj1NYXRoLm1heChabiwwKSwoIXRoaXMuaXNFeGVjdXRpb25TdXNwZW5kZWQoKSYmWm49PT10aGlzLmV4ZWN1dGlvblN1c3BlbmRlZENvdW50ZXJ8fEZuKSYmKHRoaXMuY29sdW1uSW5kZXhNYXBwZXIucmVzdW1lT3BlcmF0aW9u''@;'; + put 'put ''cygpLHRoaXMucm93SW5kZXhNYXBwZXIucmVzdW1lT3BlcmF0aW9ucygpKX0sdGhpcy5iYXRjaEV4ZWN1dGlvbj1mdW5jdGlvbihGbil7dmFyIFpuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07dGhpcy5zdXNwZW5kRXhlY3V0aW9uKCk7''@;'; + put 'put ''dmFyIF9yPUZuKCk7cmV0dXJuIHRoaXMucmVzdW1lRXhlY3V0aW9uKFpuKSxfcn0sdGhpcy5iYXRjaD1mdW5jdGlvbihGbil7dGhpcy5zdXNwZW5kUmVuZGVyKCksdGhpcy5zdXNwZW5kRXhlY3V0aW9uKCk7dmFyIFpuPUZuKCk7cmV0dXJuIHRoaXMucmVzdW1lRXhlY3V0aW9uKCksdGhpcy5y''@;'; + put 'put ''ZXN1bWVSZW5kZXIoKSxabn0sdGhpcy5yZWZyZXNoRGltZW5zaW9ucz1mdW5jdGlvbigpe2lmKEkudmlldyl7dmFyIEZuPUkudmlldy5nZXRMYXN0U2l6ZSgpLFpuPUZuLndpZHRoLF9yPUZuLmhlaWdodCxYcj1JLnJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGNpPVhyLndp''@;'; + put 'put ''ZHRoLGMwPVhyLmhlaWdodCxYaT1jaSE9PVpufHxjMCE9PV9yOyExPT09SS5ydW5Ib29rcygiYmVmb3JlUmVmcmVzaERpbWVuc2lvbnMiLHt3aWR0aDpabixoZWlnaHQ6X3J9LHt3aWR0aDpjaSxoZWlnaHQ6YzB9LFhpKXx8KChYaXx8SS52aWV3Ll93dC53dE92ZXJsYXlzLnNjcm9sbGFibGVF''@;'; + put 'put ''bGVtZW50PT09SS5yb290V2luZG93KSYmKEkudmlldy5zZXRMYXN0U2l6ZShjaSxjMCksSS5yZW5kZXIoKSksSS5ydW5Ib29rcygiYWZ0ZXJSZWZyZXNoRGltZW5zaW9ucyIse3dpZHRoOlpuLGhlaWdodDpfcn0se3dpZHRoOmNpLGhlaWdodDpjMH0sWGkpKX19LHRoaXMudXBkYXRlRGF0YT1m''@;'; + put 'put ''dW5jdGlvbihGbixabil7dmFyIF9yPXRoaXM7a1NlKEZuLGZ1bmN0aW9uKFhyKXt1ZT1Ycn0sZnVuY3Rpb24oWHIpe3VlPVhyLEkuY29sdW1uSW5kZXhNYXBwZXIuZml0VG9MZW5ndGgoX3IuZ2V0SW5pdGlhbENvbHVtbkNvdW50KCkpLEkucm93SW5kZXhNYXBwZXIuZml0VG9MZW5ndGgoX3Iu''@;'; + put 'put ''Y291bnRTb3VyY2VSb3dzKCkpLEJlLmFkanVzdFJvd3NBbmRDb2xzKCl9LHtob3RJbnN0YW5jZTpJLGRhdGFNYXA6dWUsZGF0YVNvdXJjZTpfZSxpbnRlcm5hbFNvdXJjZToidXBkYXRlRGF0YSIsc291cmNlOlpuLGZpcnN0UnVuOktlfSl9LHRoaXMubG9hZERhdGE9ZnVuY3Rpb24oRm4sWm4p''@;'; + put 'put ''e2tTZShGbixmdW5jdGlvbihfcil7dWU9X3J9LGZ1bmN0aW9uKCl7JHQuY2xlYXJDZWxsc0NhY2hlKCksSS5pbml0SW5kZXhNYXBwZXJzKCksQmUuYWRqdXN0Um93c0FuZENvbHMoKSxLZSYmKEtlPVtudWxsLCJsb2FkRGF0YSJdKX0se2hvdEluc3RhbmNlOkksZGF0YU1hcDp1ZSxkYXRhU291''@;'; + put 'put ''cmNlOl9lLGludGVybmFsU291cmNlOiJsb2FkRGF0YSIsc291cmNlOlpuLGZpcnN0UnVuOktlfSl9LHRoaXMuZ2V0SW5pdGlhbENvbHVtbkNvdW50PWZ1bmN0aW9uKCl7dmFyIEZuPWZuLmNvbHVtbnMsWm49MDtpZihBcnJheS5pc0FycmF5KEZuKSlabj1Gbi5sZW5ndGg7ZWxzZSBpZihZMihG''@;'; + put 'put ''bikpaWYoImFycmF5Ij09PUkuZGF0YVR5cGUpZm9yKHZhciBfcj10aGlzLmNvdW50U291cmNlQ29scygpLFhyPTA7WHI8X3I7WHIrPTEpRm4oWHIpJiYoWm4rPTEpO2Vsc2UoIm9iamVjdCI9PT1JLmRhdGFUeXBlfHwiZnVuY3Rpb24iPT09SS5kYXRhVHlwZSkmJihabj11ZS5jb2xUb1Byb3BD''@;'; + put 'put ''YWNoZS5sZW5ndGgpO2Vsc2UgaWYoVG8oZm4uZGF0YVNjaGVtYSkpe3ZhciBjaT11ZS5nZXRTY2hlbWEoKTtabj1BcnJheS5pc0FycmF5KGNpKT9jaS5sZW5ndGg6SnEoY2kpfWVsc2UgWm49dGhpcy5jb3VudFNvdXJjZUNvbHMoKTtyZXR1cm4gWm59LHRoaXMuaW5pdEluZGV4TWFwcGVycz1m''@;'; + put 'put ''dW5jdGlvbigpe3RoaXMuY29sdW1uSW5kZXhNYXBwZXIuaW5pdFRvTGVuZ3RoKHRoaXMuZ2V0SW5pdGlhbENvbHVtbkNvdW50KCkpLHRoaXMucm93SW5kZXhNYXBwZXIuaW5pdFRvTGVuZ3RoKHRoaXMuY291bnRTb3VyY2VSb3dzKCkpfSx0aGlzLmdldERhdGE9ZnVuY3Rpb24oRm4sWm4sX3Is''@;'; + put 'put ''WHIpe3JldHVybiBhMShGbik/dWUuZ2V0QWxsKCk6dWUuZ2V0UmFuZ2UoSS5fY3JlYXRlQ2VsbENvb3JkcyhGbixabiksSS5fY3JlYXRlQ2VsbENvb3JkcyhfcixYciksdWUuREVTVElOQVRJT05fUkVOREVSRVIpfSx0aGlzLmdldENvcHlhYmxlVGV4dD1mdW5jdGlvbihGbixabixfcixYcil7''@;'; + put 'put ''cmV0dXJuIHVlLmdldENvcHlhYmxlVGV4dChJLl9jcmVhdGVDZWxsQ29vcmRzKEZuLFpuKSxJLl9jcmVhdGVDZWxsQ29vcmRzKF9yLFhyKSl9LHRoaXMuZ2V0Q29weWFibGVEYXRhPWZ1bmN0aW9uKEZuLFpuKXtyZXR1cm4gdWUuZ2V0Q29weWFibGUoRm4sdWUuY29sVG9Qcm9wKFpuKSl9LHRo''@;'; + put 'put ''aXMuZ2V0U2NoZW1hPWZ1bmN0aW9uKCl7cmV0dXJuIHVlLmdldFNjaGVtYSgpfSx0aGlzLnVwZGF0ZVNldHRpbmdzPWZ1bmN0aW9uKEZuKXt2YXIgY2ksYzAsWm49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxfcj0oS2U/SS5sb2FkRGF0''@;'; + put 'put ''YTpJLnVwZGF0ZURhdGEpLmJpbmQodGhpcyksWHI9ITE7aWYoVG8oRm4ucm93cykpdGhyb3cgbmV3IEVycm9yKCdUaGUgInJvd3MiIHNldHRpbmcgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gRG8geW91IG1lYW4gc3RhcnRSb3dzLCBtaW5Sb3dzIG9yIG1heFJvd3M/Jyk7aWYoVG8oRm4uY29s''@;'; + put 'put ''cykpdGhyb3cgbmV3IEVycm9yKCdUaGUgImNvbHMiIHNldHRpbmcgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gRG8geW91IG1lYW4gc3RhcnRDb2xzLCBtaW5Db2xzIG9yIG1heENvbHM/Jyk7aWYoVG8oRm4uZ2FudHRDaGFydCkpdGhyb3cgbmV3IEVycm9yKCdTaW5jZSA4LjAuMCB0aGUgImdh''@;'; + put 'put ''bnR0Q2hhcnQiIHNldHRpbmcgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4nKTtmb3IoY2kgaW4gRm4pImRhdGEiPT09Y2l8fCgibGFuZ3VhZ2UiPT09Y2k/eWkoRm4ubGFuZ3VhZ2UpOiJjbGFzc05hbWUiPT09Y2k/S2koImNsYXNzTmFtZSIsRm4uY2xhc3NOYW1lKToidGFibGVDbGFzc05hbWUi''@;'; + put 'put ''PT09Y2kmJkkudGFibGU/KEtpKCJ0YWJsZUNsYXNzTmFtZSIsRm4udGFibGVDbGFzc05hbWUpLEkudmlldy5fd3Qud3RPdmVybGF5cy5zeW5jT3ZlcmxheVRhYmxlQ2xhc3NOYW1lcygpKTp6by5nZXRTaW5nbGV0b24oKS5pc1JlZ2lzdGVyZWQoY2kpfHx6by5nZXRTaW5nbGV0b24oKS5pc0Rl''@;'; + put 'put ''cHJlY2F0ZWQoY2kpPyhZMihGbltjaV0pfHxBcnJheS5pc0FycmF5KEZuW2NpXSkpJiYoRm5bY2ldLmluaXRpYWxIb29rPSEwLEkuYWRkSG9vayhjaSxGbltjaV0pKTohWm4mJm8xKEZuLGNpKSYmKExuW2NpXT1GbltjaV0pKTt2b2lkIDA9PT1Gbi5kYXRhJiZ2b2lkIDA9PT1mbi5kYXRhP19y''@;'; + put 'put ''KG51bGwsInVwZGF0ZVNldHRpbmdzIik6dm9pZCAwIT09Rm4uZGF0YT9fcihGbi5kYXRhLCJ1cGRhdGVTZXR0aW5ncyIpOnZvaWQgMCE9PUZuLmNvbHVtbnMmJih1ZS5jcmVhdGVNYXAoKSxJLmluaXRJbmRleE1hcHBlcnMoKSk7dmFyIFhpPUkuY291bnRDb2xzKCksRTA9Zm4uY29sdW1ucztp''@;'; + put 'put ''ZihFMCYmWTIoRTApJiYoWHI9ITApLCh2b2lkIDAhPT1Gbi5jZWxsfHx2b2lkIDAhPT1Gbi5jZWxsc3x8dm9pZCAwIT09Rm4uY29sdW1ucykmJiR0LmNsZWFyQ2FjaGUoKSxYaT4wKWZvcihjaT0wLGMwPTA7Y2k8WGk7Y2krKyl7aWYoRTApe3ZhciB6MD1Ycj9FMChjaSk6RTBbYzBdO3owJiYk''@;'; + put 'put ''dC51cGRhdGVDb2x1bW5NZXRhKGMwLHowKX1jMCs9MX1UbyhGbi5jZWxsKSYmR2woRm4uY2VsbCxmdW5jdGlvbih0Mil7SS5zZXRDZWxsTWV0YU9iamVjdCh0Mi5yb3csdDIuY29sLHQyKX0pLEkucnVuSG9va3MoImFmdGVyQ2VsbE1ldGFSZXNldCIpO3ZhciBrbz1JLnJvb3RFbGVtZW50LnN0''@;'; + put 'put ''eWxlLmhlaWdodDsiIiE9PWtvJiYoa289cGFyc2VJbnQoSS5yb290RWxlbWVudC5zdHlsZS5oZWlnaHQsMTApKTt2YXIgd289Rm4uaGVpZ2h0O2lmKFkyKHdvKSYmKHdvPXdvKCkpLFpuKXt2YXIgV2E9SS5yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoInN0eWxlIik7V2EmJkkucm9vdEVsZW1l''@;'; + put 'put ''bnQuc2V0QXR0cmlidXRlKCJkYXRhLWluaXRpYWxzdHlsZSIsSS5yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoInN0eWxlIikpfWlmKG51bGw9PT13byl7dmFyIGUyPUkucm9vdEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWluaXRpYWxzdHlsZSIpO2UyJiYoZTIuaW5kZXhPZigiaGVpZ2h0''@;'; + put 'put ''Iik+LTF8fGUyLmluZGV4T2YoIm92ZXJmbG93Iik+LTEpP0kucm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdHlsZSIsZTIpOihJLnJvb3RFbGVtZW50LnN0eWxlLmhlaWdodD0iIixJLnJvb3RFbGVtZW50LnN0eWxlLm92ZXJmbG93PSIiKX1lbHNlIHZvaWQgMCE9PXdvJiYoSS5yb290RWxl''@;'; + put 'put ''bWVudC5zdHlsZS5oZWlnaHQ9aXNOYU4od28pPyIiLmNvbmNhdCh3byk6IiIuY29uY2F0KHdvLCJweCIpLEkucm9vdEVsZW1lbnQuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpO2lmKHZvaWQgMCE9PUZuLndpZHRoKXt2YXIgRmE9Rm4ud2lkdGg7WTIoRmEpJiYoRmE9RmEoKSksSS5yb290RWxl''@;'; + put 'put ''bWVudC5zdHlsZS53aWR0aD1pc05hTihGYSk/IiIuY29uY2F0KEZhKToiIi5jb25jYXQoRmEsInB4Iil9Wm58fChJLnZpZXcmJihJLnZpZXcuX3d0Lnd0Vmlld3BvcnQucmVzZXRIYXNPdmVyc2l6ZWRDb2x1bW5IZWFkZXJzTWFya2VkKCksSS52aWV3Ll93dC5leHBvcnRTZXR0aW5nc0FzQ2xh''@;'; + put 'put ''c3NOYW1lcygpKSxJLnJ1bkhvb2tzKCJhZnRlclVwZGF0ZVNldHRpbmdzIixGbikpLEJlLmFkanVzdFJvd3NBbmRDb2xzKCksSS52aWV3JiYhS2UmJihJLmZvcmNlRnVsbFJlbmRlcj0hMCxOZS5sb2NrRWRpdG9yKCksSS5fcmVmcmVzaEJvcmRlcnMobnVsbCksSS52aWV3Ll93dC53dE92ZXJs''@;'; + put 'put ''YXlzLmFkanVzdEVsZW1lbnRzU2l6ZSgpLE5lLnVubG9ja0VkaXRvcigpKSwhWm4mJkkudmlldyYmKCIiPT09a298fCIiPT09d298fHZvaWQgMD09PXdvKSYma28hPT13byYmSS52aWV3Ll93dC53dE92ZXJsYXlzLnVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudHMoKX0sdGhpcy5nZXRWYWx1''@;'; + put 'put ''ZT1mdW5jdGlvbigpe3ZhciBGbj1JLmdldFNlbGVjdGVkTGFzdCgpO2lmKGZuLmdldFZhbHVlKXtpZihZMihmbi5nZXRWYWx1ZSkpcmV0dXJuIGZuLmdldFZhbHVlLmNhbGwoSSk7aWYoRm4pcmV0dXJuIEkuZ2V0RGF0YSgpW0ZuWzBdWzBdXVtmbi5nZXRWYWx1ZV19ZWxzZSBpZihGbilyZXR1''@;'; + put 'put ''cm4gSS5nZXREYXRhQXRDZWxsKEZuWzBdLEZuWzFdKX0sdGhpcy5nZXRTZXR0aW5ncz1mdW5jdGlvbigpe3JldHVybiBmbn0sdGhpcy5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2VsZWN0QWxsKCksdGhpcy5lbXB0eVNlbGVjdGVkQ2VsbHMoKX0sdGhpcy5hbHRlcj1mdW5jdGlvbihGbixabixf''@;'; + put 'put ''cixYcixjaSl7QmUuYWx0ZXIoRm4sWm4sX3IsWHIsY2kpfSx0aGlzLmdldENlbGw9ZnVuY3Rpb24oRm4sWm4pe3ZhciBfcj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLFhyPVpuLGNpPUZuO2lmKFpuPj0wKXtpZih0aGlzLmNvbHVtbklu''@;'; + put 'put ''ZGV4TWFwcGVyLmlzSGlkZGVuKHRoaXMudG9QaHlzaWNhbENvbHVtbihabikpKXJldHVybiBudWxsO1hyPXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChabil9aWYoRm4+PTApe2lmKHRoaXMucm93SW5kZXhNYXBwZXIuaXNIaWRkZW4odGhpcy50''@;'; + put 'put ''b1BoeXNpY2FsUm93KEZuKSkpcmV0dXJuIG51bGw7Y2k9dGhpcy5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEZuKX1yZXR1cm4gbnVsbD09PWNpfHxudWxsPT09WHI/bnVsbDpJLnZpZXcuZ2V0Q2VsbEF0Q29vcmRzKEkuX2NyZWF0ZUNlbGxDb29yZHMoY2ks''@;'; + put 'put ''WHIpLF9yKX0sdGhpcy5nZXRDb29yZHM9ZnVuY3Rpb24oRm4pe3ZhciBabj10aGlzLnZpZXcuX3d0Lnd0VGFibGUuZ2V0Q29vcmRzKEZuKTtpZihudWxsPT09Wm4pcmV0dXJuIG51bGw7dmFyIF9yPVpuLnJvdyxYcj1abi5jb2wsY2k9X3IsYzA9WHI7cmV0dXJuIF9yPj0wJiYoY2k9dGhpcy5y''@;'; + put 'put ''b3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KF9yKSksWHI+PTAmJihjMD10aGlzLmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoWHIpKSxJLl9jcmVhdGVDZWxsQ29vcmRzKGNpLGMwKX0sdGhpcy5jb2xUb1Byb3A9ZnVuY3Rp''@;'; + put 'put ''b24oRm4pe3JldHVybiB1ZS5jb2xUb1Byb3AoRm4pfSx0aGlzLnByb3BUb0NvbD1mdW5jdGlvbihGbil7cmV0dXJuIHVlLnByb3BUb0NvbChGbil9LHRoaXMudG9WaXN1YWxSb3c9ZnVuY3Rpb24oRm4pe3JldHVybiB2LnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21QaHlzaWNhbEluZGV4''@;'; + put 'put ''KEZuKX0sdGhpcy50b1Zpc3VhbENvbHVtbj1mdW5jdGlvbihGbil7cmV0dXJuIHYuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgoRm4pfSx0aGlzLnRvUGh5c2ljYWxSb3c9ZnVuY3Rpb24oRm4pe3JldHVybiB2LnJvd0luZGV4TWFwcGVyLmdldFBoeXNpY2Fs''@;'; + put 'put ''RnJvbVZpc3VhbEluZGV4KEZuKX0sdGhpcy50b1BoeXNpY2FsQ29sdW1uPWZ1bmN0aW9uKEZuKXtyZXR1cm4gdi5jb2x1bW5JbmRleE1hcHBlci5nZXRQaHlzaWNhbEZyb21WaXN1YWxJbmRleChGbil9LHRoaXMuZ2V0RGF0YUF0Q2VsbD1mdW5jdGlvbihGbixabil7cmV0dXJuIHVlLmdldChG''@;'; + put 'put ''bix1ZS5jb2xUb1Byb3AoWm4pKX0sdGhpcy5nZXREYXRhQXRSb3dQcm9wPWZ1bmN0aW9uKEZuLFpuKXtyZXR1cm4gdWUuZ2V0KEZuLFpuKX0sdGhpcy5nZXREYXRhQXRDb2w9ZnVuY3Rpb24oRm4pe3ZhciBabjtyZXR1cm4oWm49W10pLmNvbmNhdC5hcHBseShabixMdyh1ZS5nZXRSYW5nZShJ''@;'; + put 'put ''Ll9jcmVhdGVDZWxsQ29vcmRzKDAsRm4pLEkuX2NyZWF0ZUNlbGxDb29yZHMoZm4uZGF0YS5sZW5ndGgtMSxGbiksdWUuREVTVElOQVRJT05fUkVOREVSRVIpKSl9LHRoaXMuZ2V0RGF0YUF0UHJvcD1mdW5jdGlvbihGbil7dmFyIFpuLF9yPXVlLmdldFJhbmdlKEkuX2NyZWF0ZUNlbGxDb29y''@;'; + put 'put ''ZHMoMCx1ZS5wcm9wVG9Db2woRm4pKSxJLl9jcmVhdGVDZWxsQ29vcmRzKGZuLmRhdGEubGVuZ3RoLTEsdWUucHJvcFRvQ29sKEZuKSksdWUuREVTVElOQVRJT05fUkVOREVSRVIpO3JldHVybihabj1bXSkuY29uY2F0LmFwcGx5KFpuLEx3KF9yKSl9LHRoaXMuZ2V0U291cmNlRGF0YT1mdW5j''@;'; + put 'put ''dGlvbihGbixabixfcixYcil7cmV0dXJuIHZvaWQgMD09PUZuP19lLmdldERhdGEoKTpfZS5nZXRCeVJhbmdlKEkuX2NyZWF0ZUNlbGxDb29yZHMoRm4sWm4pLEkuX2NyZWF0ZUNlbGxDb29yZHMoX3IsWHIpKX0sdGhpcy5nZXRTb3VyY2VEYXRhQXJyYXk9ZnVuY3Rpb24oRm4sWm4sX3IsWHIp''@;'; + put 'put ''e3JldHVybiB2b2lkIDA9PT1Gbj9fZS5nZXREYXRhKCEwKTpfZS5nZXRCeVJhbmdlKEkuX2NyZWF0ZUNlbGxDb29yZHMoRm4sWm4pLEkuX2NyZWF0ZUNlbGxDb29yZHMoX3IsWHIpLCEwKX0sdGhpcy5nZXRTb3VyY2VEYXRhQXRDb2w9ZnVuY3Rpb24oRm4pe3JldHVybiBfZS5nZXRBdENvbHVt''@;'; + put 'put ''bihGbil9LHRoaXMuc2V0U291cmNlRGF0YUF0Q2VsbD1mdW5jdGlvbihGbixabixfcixYcil7dmFyIGNpPWxhKEZuLFpuLF9yKSxjMD10aGlzLmhhc0hvb2soImFmdGVyU2V0U291cmNlRGF0YUF0Q2VsbCIpLFhpPVtdO2MwJiZVcihjaSxmdW5jdGlvbih6MCl7dmFyIGtvPUlnKHowLDMpLHdv''@;'; + put 'put ''PWtvWzBdLFdhPWtvWzFdLGUyPWtvWzJdO1hpLnB1c2goW3dvLFdhLF9lLmdldEF0Q2VsbCh3byxXYSksZTJdKX0pLFVyKGNpLGZ1bmN0aW9uKHowKXt2YXIga289SWcoejAsMyk7X2Uuc2V0QXRDZWxsKGtvWzBdLGtvWzFdLGtvWzJdKX0pLGMwJiZ0aGlzLnJ1bkhvb2tzKCJhZnRlclNldFNv''@;'; + put 'put ''dXJjZURhdGFBdENlbGwiLFhpLFhyKSx0aGlzLnJlbmRlcigpO3ZhciBFMD1JLmdldEFjdGl2ZUVkaXRvcigpO0UwJiZUbyhFMC5yZWZyZXNoVmFsdWUpJiZFMC5yZWZyZXNoVmFsdWUoKX0sdGhpcy5nZXRTb3VyY2VEYXRhQXRSb3c9ZnVuY3Rpb24oRm4pe3JldHVybiBfZS5nZXRBdFJvdyhG''@;'; + put 'put ''bil9LHRoaXMuZ2V0U291cmNlRGF0YUF0Q2VsbD1mdW5jdGlvbihGbixabil7cmV0dXJuIF9lLmdldEF0Q2VsbChGbixabil9LHRoaXMuZ2V0RGF0YUF0Um93PWZ1bmN0aW9uKEZuKXtyZXR1cm4gdWUuZ2V0UmFuZ2UoSS5fY3JlYXRlQ2VsbENvb3JkcyhGbiwwKSxJLl9jcmVhdGVDZWxsQ29v''@;'; + put 'put ''cmRzKEZuLHRoaXMuY291bnRDb2xzKCktMSksdWUuREVTVElOQVRJT05fUkVOREVSRVIpWzBdfHxbXX0sdGhpcy5nZXREYXRhVHlwZT1mdW5jdGlvbihGbixabixfcixYcil7dmFyIGNpPXRoaXMsYzA9dm9pZCAwPT09Rm4/WzAsMCx0aGlzLmNvdW50Um93cygpLHRoaXMuY291bnRDb2xzKCld''@;'; + put 'put ''OltGbixabixfcixYcl0sWGk9YzBbMF0sRTA9YzBbMV0sejA9YzBbMl0sa289YzBbM10sd289bnVsbCxXYT1udWxsO3ZvaWQgMD09PXowJiYoejA9WGkpLHZvaWQgMD09PWtvJiYoa289RTApO3ZhciBlMj0ibWl4ZWQiO3JldHVybiBpYShNYXRoLm1heChNYXRoLm1pbihYaSx6MCksMCksTWF0''@;'; + put 'put ''aC5tYXgoWGksejApLGZ1bmN0aW9uKEZhKXt2YXIgdDI9ITA7cmV0dXJuIGlhKE1hdGgubWF4KE1hdGgubWluKEUwLGtvKSwwKSxNYXRoLm1heChFMCxrbyksZnVuY3Rpb24oTzEpe3ZhciBSMT1jaS5nZXRDZWxsTWV0YShGYSxPMSk7cmV0dXJuIFdhPVIxLnR5cGUsd28/dDI9d289PT1XYTp3''@;'; + put 'put ''bz1XYSx0Mn0pLGUyPXQyP1dhOiJtaXhlZCIsdDJ9KSxlMn0sdGhpcy5yZW1vdmVDZWxsTWV0YT1mdW5jdGlvbihGbixabixfcil7dmFyIFhyPVt0aGlzLnRvUGh5c2ljYWxSb3coRm4pLHRoaXMudG9QaHlzaWNhbENvbHVtbihabildLGNpPVhyWzBdLGMwPVhyWzFdLFhpPSR0LmdldENlbGxN''@;'; + put 'put ''ZXRhS2V5VmFsdWUoY2ksYzAsX3IpOyExIT09SS5ydW5Ib29rcygiYmVmb3JlUmVtb3ZlQ2VsbE1ldGEiLEZuLFpuLF9yLFhpKSYmKCR0LnJlbW92ZUNlbGxNZXRhKGNpLGMwLF9yKSxJLnJ1bkhvb2tzKCJhZnRlclJlbW92ZUNlbGxNZXRhIixGbixabixfcixYaSkpLFhpPW51bGx9LHRoaXMu''@;'; + put 'put ''c3BsaWNlQ2VsbHNNZXRhPWZ1bmN0aW9uKEZuKXtmb3IodmFyIFpuPXRoaXMsX3I9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsWHI9YXJndW1lbnRzLmxlbmd0aCxjaT1uZXcgQXJyYXkoWHI+Mj9Yci0yOjApLGMwPTI7YzA8WHI7YzAr''@;'; + put 'put ''KyljaVtjMC0yXT1hcmd1bWVudHNbYzBdO2lmKGNpLmxlbmd0aD4wJiYhQXJyYXkuaXNBcnJheShjaVswXSkpdGhyb3cgbmV3IEVycm9yKCJUaGUgM3JkIGFyZ3VtZW50IChjZWxsTWV0YVJvd3MpIGhhcyB0byBiZSBwYXNzZWQgYXMgYW4gYXJyYXkgb2YgY2VsbCBtZXRhIG9iamVjdHMgYXJy''@;'; + put 'put ''YXkuIik7X3I+MCYmJHQucmVtb3ZlUm93KHRoaXMudG9QaHlzaWNhbFJvdyhGbiksX3IpLGNpLmxlbmd0aD4wJiZVcihjaS5yZXZlcnNlKCksZnVuY3Rpb24oWGkpeyR0LmNyZWF0ZVJvdyhabi50b1BoeXNpY2FsUm93KEZuKSksVXIoWGksZnVuY3Rpb24oRTAsejApe3JldHVybiBabi5zZXRD''@;'; + put 'put ''ZWxsTWV0YU9iamVjdChGbix6MCxFMCl9KX0pLEkucmVuZGVyKCl9LHRoaXMuc2V0Q2VsbE1ldGFPYmplY3Q9ZnVuY3Rpb24oRm4sWm4sX3Ipe3ZhciBYcj10aGlzOyJvYmplY3QiPT09dWQoX3IpJiZHbChfcixmdW5jdGlvbihjaSxjMCl7WHIuc2V0Q2VsbE1ldGEoRm4sWm4sYzAsY2kpfSl9''@;'; + put 'put ''LHRoaXMuc2V0Q2VsbE1ldGE9ZnVuY3Rpb24oRm4sWm4sX3IsWHIpe2lmKCExIT09SS5ydW5Ib29rcygiYmVmb3JlU2V0Q2VsbE1ldGEiLEZuLFpuLF9yLFhyKSl7dmFyIGMwPUZuLFhpPVpuO0ZuPHRoaXMuY291bnRSb3dzKCkmJihjMD10aGlzLnRvUGh5c2ljYWxSb3coRm4pKSxabjx0aGlz''@;'; + put 'put ''LmNvdW50Q29scygpJiYoWGk9dGhpcy50b1BoeXNpY2FsQ29sdW1uKFpuKSksJHQuc2V0Q2VsbE1ldGEoYzAsWGksX3IsWHIpLEkucnVuSG9va3MoImFmdGVyU2V0Q2VsbE1ldGEiLEZuLFpuLF9yLFhyKX19LHRoaXMuZ2V0Q2VsbHNNZXRhPWZ1bmN0aW9uKCl7cmV0dXJuICR0LmdldENlbGxz''@;'; + put 'put ''TWV0YSgpfSx0aGlzLmdldENlbGxNZXRhPWZ1bmN0aW9uKEZuLFpuKXt2YXIgX3I9dGhpcy50b1BoeXNpY2FsUm93KEZuKSxYcj10aGlzLnRvUGh5c2ljYWxDb2x1bW4oWm4pO3JldHVybiBudWxsPT09X3ImJihfcj1GbiksbnVsbD09PVhyJiYoWHI9Wm4pLCR0LmdldENlbGxNZXRhKF9yLFhy''@;'; + put 'put ''LHt2aXN1YWxSb3c6Rm4sdmlzdWFsQ29sdW1uOlpufSl9LHRoaXMuZ2V0Q2VsbE1ldGFBdFJvdz1mdW5jdGlvbihGbil7cmV0dXJuICR0LmdldENlbGxzTWV0YUF0Um93KEZuKX0sdGhpcy5pc0NvbHVtbk1vZGlmaWNhdGlvbkFsbG93ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hKCJvYmplY3QiPT09''@;'; + put 'put ''SS5kYXRhVHlwZXx8Zm4uY29sdW1ucyl9O3ZhciBhbD1LWigicmVuZGVyZXIiKTt0aGlzLmdldENlbGxSZW5kZXJlcj1mdW5jdGlvbihGbixabil7cmV0dXJuIHozZShhbC5jYWxsKHRoaXMsRm4sWm4pKX0sdGhpcy5nZXRDZWxsRWRpdG9yPUtaKCJlZGl0b3IiKTt2YXIgTHM9S1ooInZhbGlk''@;'; + put 'put ''YXRvciIpO3RoaXMuZ2V0Q2VsbFZhbGlkYXRvcj1mdW5jdGlvbihGbixabil7dmFyIF9yPUxzLmNhbGwodGhpcyxGbixabik7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBfciYmKF9yPUczZShfcikpLF9yfSx0aGlzLnZhbGlkYXRlQ2VsbHM9ZnVuY3Rpb24oRm4pe3RoaXMuX3ZhbGlkYXRlQ2Vs''@;'; + put 'put ''bHMoRm4pfSx0aGlzLnZhbGlkYXRlUm93cz1mdW5jdGlvbihGbixabil7aWYoIUFycmF5LmlzQXJyYXkoRm4pKXRocm93IG5ldyBFcnJvcigidmFsaWRhdGVSb3dzIHBhcmFtZXRlciBgcm93c2AgbXVzdCBiZSBhbiBhcnJheSIpO3RoaXMuX3ZhbGlkYXRlQ2VsbHMoWm4sRm4pfSx0aGlzLnZh''@;'; + put 'put ''bGlkYXRlQ29sdW1ucz1mdW5jdGlvbihGbixabil7aWYoIUFycmF5LmlzQXJyYXkoRm4pKXRocm93IG5ldyBFcnJvcigidmFsaWRhdGVDb2x1bW5zIHBhcmFtZXRlciBgY29sdW1uc2AgbXVzdCBiZSBhbiBhcnJheSIpO3RoaXMuX3ZhbGlkYXRlQ2VsbHMoWm4sdm9pZCAwLEZuKX0sdGhpcy5f''@;'; + put 'put ''dmFsaWRhdGVDZWxscz1mdW5jdGlvbihGbixabixfcil7dmFyIFhyPW5ldyBTbztGbiYmKFhyLm9uUXVldWVFbXB0eT1Gbik7Zm9yKHZhciBjaT1JLmNvdW50Um93cygpLTE7Y2k+PTA7KWlmKHZvaWQgMD09PVpufHwtMSE9PVpuLmluZGV4T2YoY2kpKXtmb3IodmFyIGMwPUkuY291bnRDb2xz''@;'; + put 'put ''KCktMTtjMD49MDspdm9pZCAwPT09X3J8fC0xIT09X3IuaW5kZXhPZihjMCk/KFhyLmFkZFZhbGlkYXRvclRvUXVldWUoKSxJLnZhbGlkYXRlQ2VsbChJLmdldERhdGFBdENlbGwoY2ksYzApLEkuZ2V0Q2VsbE1ldGEoY2ksYzApLGZ1bmN0aW9uKFhpKXtpZigiYm9vbGVhbiIhPXR5cGVvZiBY''@;'; + put 'put ''aSl0aHJvdyBuZXcgRXJyb3IoIlZhbGlkYXRpb24gZXJyb3I6IHJlc3VsdCBpcyBub3QgYm9vbGVhbiIpOyExPT09WGkmJihYci52YWxpZD0hMSksWHIucmVtb3ZlVmFsaWRhdG9yRm9ybVF1ZXVlKCl9LCJ2YWxpZGF0ZUNlbGxzIiksYzAtPTEpOmMwLT0xO2NpLT0xfWVsc2UgY2ktPTE7WHIu''@;'; + put 'put ''Y2hlY2tJZlF1ZXVlSXNFbXB0eSgpfSx0aGlzLmdldFJvd0hlYWRlcj1mdW5jdGlvbihGbil7dmFyIFpuPWZuLnJvd0hlYWRlcnMsX3I9Rm47cmV0dXJuIHZvaWQgMCE9PV9yJiYoX3I9SS5ydW5Ib29rcygibW9kaWZ5Um93SGVhZGVyIixfcikpLHZvaWQgMD09PV9yPyhabj1bXSxpYShJLmNv''@;'; + put 'put ''dW50Um93cygpLTEsZnVuY3Rpb24oWHIpe1puLnB1c2goSS5nZXRSb3dIZWFkZXIoWHIpKX0pKTpBcnJheS5pc0FycmF5KFpuKSYmdm9pZCAwIT09Wm5bX3JdP1puPVpuW19yXTpZMihabik/Wm49Wm4oX3IpOlpuJiYic3RyaW5nIiE9dHlwZW9mIFpuJiYibnVtYmVyIiE9dHlwZW9mIFpuJiYo''@;'; + put 'put ''Wm49X3IrMSksWm59LHRoaXMuaGFzUm93SGVhZGVycz1mdW5jdGlvbigpe3JldHVybiEhZm4ucm93SGVhZGVyc30sdGhpcy5oYXNDb2xIZWFkZXJzPWZ1bmN0aW9uKCl7aWYobnVsbCE9Zm4uY29sSGVhZGVycylyZXR1cm4hIWZuLmNvbEhlYWRlcnM7Zm9yKHZhciBGbj0wLFpuPUkuY291bnRD''@;'; + put 'put ''b2xzKCk7Rm48Wm47Rm4rKylpZihJLmdldENvbEhlYWRlcihGbikpcmV0dXJuITA7cmV0dXJuITF9LHRoaXMuZ2V0Q29sSGVhZGVyPWZ1bmN0aW9uKEZuKXt2YXIgWm49SS5ydW5Ib29rcygibW9kaWZ5Q29sSGVhZGVyIixGbiksX3I9Zm4uY29sSGVhZGVycztpZih2b2lkIDA9PT1abil7Zm9y''@;'; + put 'put ''KHZhciBYcj1bXSxjaT1JLmNvdW50Q29scygpLGMwPTA7YzA8Y2k7YzArKylYci5wdXNoKEkuZ2V0Q29sSGVhZGVyKGMwKSk7X3I9WHJ9ZWxzZXt2YXIgRTA9SS50b1BoeXNpY2FsQ29sdW1uKFpuKSx6MD1mdW5jdGlvbih3byl7Zm9yKHZhciBXYT1bXSxlMj1JLmNvdW50Q29scygpLEZhPTA7''@;'; + put 'put ''RmE8ZTI7RmErKylZMihmbi5jb2x1bW5zKSYmZm4uY29sdW1ucyhGYSkmJldhLnB1c2goRmEpO3JldHVybiBXYVt3b119KEUwKTshMT09PWZuLmNvbEhlYWRlcnM/X3I9bnVsbDpmbi5jb2x1bW5zJiZZMihmbi5jb2x1bW5zKSYmZm4uY29sdW1ucyh6MCkmJmZuLmNvbHVtbnMoejApLnRpdGxl''@;'; + put 'put ''P19yPWZuLmNvbHVtbnMoejApLnRpdGxlOmZuLmNvbHVtbnMmJmZuLmNvbHVtbnNbRTBdJiZmbi5jb2x1bW5zW0UwXS50aXRsZT9fcj1mbi5jb2x1bW5zW0UwXS50aXRsZTpBcnJheS5pc0FycmF5KGZuLmNvbEhlYWRlcnMpJiZ2b2lkIDAhPT1mbi5jb2xIZWFkZXJzW0UwXT9fcj1mbi5jb2xI''@;'; + put 'put ''ZWFkZXJzW0UwXTpZMihmbi5jb2xIZWFkZXJzKT9fcj1mbi5jb2xIZWFkZXJzKEUwKTpmbi5jb2xIZWFkZXJzJiYic3RyaW5nIiE9dHlwZW9mIGZuLmNvbEhlYWRlcnMmJiJudW1iZXIiIT10eXBlb2YgZm4uY29sSGVhZGVycyYmKF9yPXplZShabikpfXJldHVybiBfcn0sdGhpcy5fZ2V0Q29s''@;'; + put 'put ''V2lkdGhGcm9tU2V0dGluZ3M9ZnVuY3Rpb24oRm4pe3ZhciBabjtpZihGbj49MCYmKFpuPUkuZ2V0Q2VsbE1ldGEoMCxGbikud2lkdGgpLCh2b2lkIDA9PT1abnx8Wm49PT1mbi53aWR0aCkmJihabj1mbi5jb2xXaWR0aHMpLG51bGwhPVpuKXtzd2l0Y2godWQoWm4pKXtjYXNlIm9iamVjdCI6''@;'; + put 'put ''Wm49Wm5bRm5dO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOlpuPVpuKEZuKX0ic3RyaW5nIj09dHlwZW9mIFpuJiYoWm49cGFyc2VJbnQoWm4sMTApKX1yZXR1cm4gWm59LHRoaXMuZ2V0Q29sV2lkdGg9ZnVuY3Rpb24oRm4pe3ZhciBabj1JLl9nZXRDb2xXaWR0aEZyb21TZXR0aW5ncyhGbik7cmV0''@;'; + put 'put ''dXJuIHZvaWQgMD09PShabj1JLnJ1bkhvb2tzKCJtb2RpZnlDb2xXaWR0aCIsWm4sRm4pKSYmKFpuPUZkZS5ERUZBVUxUX1dJRFRIKSxabn0sdGhpcy5fZ2V0Um93SGVpZ2h0RnJvbVNldHRpbmdzPWZ1bmN0aW9uKEZuKXt2YXIgWm49Zm4ucm93SGVpZ2h0cztpZihudWxsIT1abil7c3dpdGNo''@;'; + put 'put ''KHVkKFpuKSl7Y2FzZSJvYmplY3QiOlpuPVpuW0ZuXTticmVhaztjYXNlImZ1bmN0aW9uIjpabj1abihGbil9InN0cmluZyI9PXR5cGVvZiBabiYmKFpuPXBhcnNlSW50KFpuLDEwKSl9cmV0dXJuIFpufSx0aGlzLmdldFJvd0hlaWdodD1mdW5jdGlvbihGbil7dmFyIFpuPUkuX2dldFJvd0hl''@;'; + put 'put ''aWdodEZyb21TZXR0aW5ncyhGbik7cmV0dXJuIEkucnVuSG9va3MoIm1vZGlmeVJvd0hlaWdodCIsWm4sRm4pfSx0aGlzLmNvdW50U291cmNlUm93cz1mdW5jdGlvbigpe3JldHVybiBfZS5jb3VudFJvd3MoKX0sdGhpcy5jb3VudFNvdXJjZUNvbHM9ZnVuY3Rpb24oKXtyZXR1cm4gX2UuY291''@;'; + put 'put ''bnRGaXJzdFJvd0tleXMoKX0sdGhpcy5jb3VudFJvd3M9ZnVuY3Rpb24oKXtyZXR1cm4gdWUuZ2V0TGVuZ3RoKCl9LHRoaXMuY291bnRDb2xzPWZ1bmN0aW9uKCl7dmFyIEZuPWZuLm1heENvbHMsWm49dGhpcy5jb2x1bW5JbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgp''@;'; + put 'put ''O3JldHVybiBNYXRoLm1pbihGbixabil9LHRoaXMuY291bnRSZW5kZXJlZFJvd3M9ZnVuY3Rpb24oKXtyZXR1cm4gSS52aWV3Ll93dC5kcmF3bj9JLnZpZXcuX3d0Lnd0VGFibGUuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKTotMX0sdGhpcy5jb3VudFZpc2libGVSb3dzPWZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIEkudmlldy5fd3QuZHJhd24/SS52aWV3Ll93dC53dFRhYmxlLmdldFZpc2libGVSb3dzQ291bnQoKTotMX0sdGhpcy5jb3VudFJlbmRlcmVkQ29scz1mdW5jdGlvbigpe3JldHVybiBJLnZpZXcuX3d0LmRyYXduP0kudmlldy5fd3Qud3RUYWJsZS5nZXRSZW5kZXJlZENvbHVtbnNDb3Vu''@;'; + put 'put ''dCgpOi0xfSx0aGlzLmNvdW50VmlzaWJsZUNvbHM9ZnVuY3Rpb24oKXtyZXR1cm4gSS52aWV3Ll93dC5kcmF3bj9JLnZpZXcuX3d0Lnd0VGFibGUuZ2V0VmlzaWJsZUNvbHVtbnNDb3VudCgpOi0xfSx0aGlzLmNvdW50RW1wdHlSb3dzPWZ1bmN0aW9uKCl7dmFyIEZuPWFyZ3VtZW50cy5sZW5n''@;'; + put 'put ''dGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sWm49MDtyZXR1cm4gc2VlKEkuY291bnRSb3dzKCktMSxmdW5jdGlvbihfcil7aWYoSS5pc0VtcHR5Um93KF9yKSlabis9MTtlbHNlIGlmKCEwPT09Rm4pcmV0dXJuITF9KSxabn0sdGhpcy5jb3VudEVtcHR5Q29scz1m''@;'; + put 'put ''dW5jdGlvbigpe3ZhciBGbj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2lmKEkuY291bnRSb3dzKCk8MSlyZXR1cm4gMDt2YXIgWm49MDtyZXR1cm4gc2VlKEkuY291bnRDb2xzKCktMSxmdW5jdGlvbihfcil7aWYoSS5pc0VtcHR5Q29s''@;'; + put 'put ''KF9yKSlabis9MTtlbHNlIGlmKCEwPT09Rm4pcmV0dXJuITF9KSxabn0sdGhpcy5pc0VtcHR5Um93PWZ1bmN0aW9uKEZuKXtyZXR1cm4gZm4uaXNFbXB0eVJvdy5jYWxsKEksRm4pfSx0aGlzLmlzRW1wdHlDb2w9ZnVuY3Rpb24oRm4pe3JldHVybiBmbi5pc0VtcHR5Q29sLmNhbGwoSSxGbil9''@;'; + put 'put ''LHRoaXMuc2VsZWN0Q2VsbD1mdW5jdGlvbihGbixabixfcixYcil7dmFyIGNpPSEoYXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0pfHxhcmd1bWVudHNbNF0sYzA9IShhcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XSl8fGFyZ3VtZW50c1s1''@;'; + put 'put ''XTtyZXR1cm4hYTEoRm4pJiYhYTEoWm4pJiZ0aGlzLnNlbGVjdENlbGxzKFtbRm4sWm4sX3IsWHJdXSxjaSxjMCl9LHRoaXMuc2VsZWN0Q2VsbHM9ZnVuY3Rpb24oKXt2YXIgRm49YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltbXV0sWm49''@;'; + put 'put ''IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxfcj0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdOyExPT09Wm4mJihDPSEwKTt2YXIgWHI9d3Iuc2VsZWN0Q2VsbHMoRm4pO3Jl''@;'; + put 'put ''dHVybiBYciYmX3ImJkkubGlzdGVuKCksQz0hMSxYcn0sdGhpcy5zZWxlY3RDb2x1bW5zPWZ1bmN0aW9uKEZuKXt2YXIgWm49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOkZuO3JldHVybiB3ci5zZWxlY3RDb2x1bW5zKEZuLFpuKX0sdGhp''@;'; + put 'put ''cy5zZWxlY3RSb3dzPWZ1bmN0aW9uKEZuKXt2YXIgWm49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOkZuO3JldHVybiB3ci5zZWxlY3RSb3dzKEZuLFpuKX0sdGhpcy5kZXNlbGVjdENlbGw9ZnVuY3Rpb24oKXt3ci5kZXNlbGVjdCgpfSx0''@;'; + put 'put ''aGlzLnNlbGVjdEFsbD1mdW5jdGlvbigpe3ZhciBGbj0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdLFpuPUZuJiZ0aGlzLmhhc1Jvd0hlYWRlcnMoKSxfcj1GbiYmdGhpcy5oYXNDb2xIZWFkZXJzKCk7Qz0hMCx3ci5zZWxlY3RBbGwo''@;'; + put 'put ''Wm4sX3IpLEM9ITF9O3ZhciBQMD1mdW5jdGlvbihabixfcil7cmV0dXJuIFpuLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChfciwxLCEwKX07ZnVuY3Rpb24gcm8oRm4pe3JldHVybiBmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcignVGhlICInLmNvbmNhdChGbiwnIiBtZXRob2QgY2Fubm90''@;'; + put 'put ''IGJlIGNhbGxlZCBiZWNhdXNlIHRoaXMgSGFuZHNvbnRhYmxlIGluc3RhbmNlIGhhcyBiZWVuIGRlc3Ryb3llZCcpKX19dGhpcy5zY3JvbGxWaWV3cG9ydFRvPWZ1bmN0aW9uKEZuLFpuKXt2YXIgX3I9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50''@;'; + put 'put ''c1syXSxYcj1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdLGNpPSEoYXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0pfHxhcmd1bWVudHNbNF0sYzA9IV9yLFhpPSFYcixFMD1Gbix6MD1abjtpZihjaSl7dmFyIGtv''@;'; + put 'put ''PU51bWJlci5pc0ludGVnZXIoRm4pLHdvPU51bWJlci5pc0ludGVnZXIoWm4pLFdhPWtvP1AwKHRoaXMucm93SW5kZXhNYXBwZXIsRm4pOnZvaWQgMCxlMj13bz9QMCh0aGlzLmNvbHVtbkluZGV4TWFwcGVyLFpuKTp2b2lkIDA7aWYobnVsbD09PVdhfHxudWxsPT09ZTIpcmV0dXJuITE7RTA9''@;'; + put 'put ''a28/SS5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KFdhKTp2b2lkIDAsejA9d28/SS5jb2x1bW5JbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGUyKTp2b2lkIDB9dmFyIEZhPU51bWJlci5pc0ludGVnZXIoRTApLHQyPU51bWJlci5p''@;'; + put 'put ''c0ludGVnZXIoejApO3JldHVybiBGYSYmdDI/SS52aWV3LnNjcm9sbFZpZXdwb3J0KEkuX2NyZWF0ZUNlbGxDb29yZHMoRTAsejApLGMwLFhyLF9yLFhpKTpGYSYmITE9PT10Mj9JLnZpZXcuc2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KEUwLGMwLF9yKTohKCF0Mnx8ITEhPT1GYSkmJkkudmll''@;'; + put 'put ''dy5zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseSh6MCxYcixYaSl9LHRoaXMuZGVzdHJveT1mdW5jdGlvbigpe2lmKEkuX2NsZWFyVGltZW91dHMoKSxJLl9jbGVhckltbWVkaWF0ZXMoKSxJLnZpZXcmJkkudmlldy5kZXN0cm95KCksX2UmJl9lLmRlc3Ryb3koKSxfZT1udWxsLHRoaXMuZ2V0''@;'; + put 'put ''U2hvcnRjdXRNYW5hZ2VyKCkuZGVzdHJveSgpLCR0LmNsZWFyQ2FjaGUoKSxaZGUoSSkpe3ZhciBGbj10aGlzLnJvb3REb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaG90LWRpc3BsYXktbGljZW5zZS1pbmZvIik7Rm4mJkZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoRm4pfURwKEkucm9vdEVs''@;'; + put 'put ''ZW1lbnQpLGouZGVzdHJveSgpLE5lJiZOZS5kZXN0cm95KCksSS5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe0kucm93SW5kZXhNYXBwZXIudW5yZWdpc3RlckFsbCgpLEkuY29sdW1uSW5kZXhNYXBwZXIudW5yZWdpc3RlckFsbCgpLGlyLmdldEl0ZW1zKCkuZm9yRWFjaChmdW5jdGlvbiha''@;'; + put 'put ''bil7SWcoWm4sMilbMV0uZGVzdHJveSgpfSksaXIuY2xlYXIoKSxJLnJ1bkhvb2tzKCJhZnRlckRlc3Ryb3kiKX0sITApLHpvLmdldFNpbmdsZXRvbigpLmRlc3Ryb3koSSksR2woSSxmdW5jdGlvbihabixfcixYcil7WTIoWm4pP1hyW19yXT1ybyhfcik6Imd1aWQiIT09X3ImJihYcltfcl09''@;'; + put 'put ''bnVsbCl9KSxJLmlzRGVzdHJveWVkPSEwLHVlJiZ1ZS5kZXN0cm95KCksSS5yb3dJbmRleE1hcHBlcj1udWxsLEkuY29sdW1uSW5kZXhNYXBwZXI9bnVsbCx1ZT1udWxsLEJlPW51bGwsd3I9bnVsbCxOZT1udWxsLEk9bnVsbH0sdGhpcy5nZXRBY3RpdmVFZGl0b3I9ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gTmUuZ2V0QWN0aXZlRWRpdG9yKCl9LHRoaXMuZ2V0UGx1Z2luPWZ1bmN0aW9uKEZuKXt2YXIgWm49YWQoRm4pO3JldHVybiJVbmRvUmVkbyI9PT1abj90aGlzLnVuZG9SZWRvOmlyLmdldEl0ZW0oWm4pfSx0aGlzLmdldFBsdWdpbk5hbWU9ZnVuY3Rpb24oRm4pe3JldHVybiBGbj09PXRo''@;'; + put 'put ''aXMudW5kb1JlZG8/dGhpcy51bmRvUmVkby5jb25zdHJ1Y3Rvci5QTFVHSU5fS0VZOmlyLmdldElkKEZuKX0sdGhpcy5nZXRJbnN0YW5jZT1mdW5jdGlvbigpe3JldHVybiBJfSx0aGlzLmFkZEhvb2s9ZnVuY3Rpb24oRm4sWm4pe3pvLmdldFNpbmdsZXRvbigpLmFkZChGbixabixJKX0sdGhp''@;'; + put 'put ''cy5oYXNIb29rPWZ1bmN0aW9uKEZuKXtyZXR1cm4gem8uZ2V0U2luZ2xldG9uKCkuaGFzKEZuLEkpfHx6by5nZXRTaW5nbGV0b24oKS5oYXMoRm4pfSx0aGlzLmFkZEhvb2tPbmNlPWZ1bmN0aW9uKEZuLFpuKXt6by5nZXRTaW5nbGV0b24oKS5vbmNlKEZuLFpuLEkpfSx0aGlzLnJlbW92ZUhv''@;'; + put 'put ''b2s9ZnVuY3Rpb24oRm4sWm4pe3pvLmdldFNpbmdsZXRvbigpLnJlbW92ZShGbixabixJKX0sdGhpcy5ydW5Ib29rcz1mdW5jdGlvbihGbixabixfcixYcixjaSxjMCxYaSl7cmV0dXJuIHpvLmdldFNpbmdsZXRvbigpLnJ1bihJLEZuLFpuLF9yLFhyLGNpLGMwLFhpKX0sdGhpcy5nZXRUcmFu''@;'; + put 'put ''c2xhdGVkUGhyYXNlPWZ1bmN0aW9uKEZuLFpuKXtyZXR1cm4gVGtlKGZuLmxhbmd1YWdlLEZuLFpuKX0sdGhpcy50b0hUTUw9ZnVuY3Rpb24oKXtyZXR1cm4gSTNlKHYpfSx0aGlzLnRvVGFibGVFbGVtZW50PWZ1bmN0aW9uKCl7dmFyIEZuPXYucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQo''@;'; + put 'put ''ImRpdiIpO3JldHVybiBGbi5pbnNlcnRBZGphY2VudEhUTUwoImFmdGVyYmVnaW4iLEkzZSh2KSksRm4uZmlyc3RFbGVtZW50Q2hpbGR9LHRoaXMudGltZW91dHM9W10sdGhpcy5fcmVnaXN0ZXJUaW1lb3V0PWZ1bmN0aW9uKEZuKXt2YXIgWm49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAh''@;'; + put 'put ''PT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsX3I9Rm47ImZ1bmN0aW9uIj09dHlwZW9mIF9yJiYoX3I9c2V0VGltZW91dChfcixabikpLHRoaXMudGltZW91dHMucHVzaChfcil9LHRoaXMuX2NsZWFyVGltZW91dHM9ZnVuY3Rpb24oKXtVcih0aGlzLnRpbWVvdXRzLGZ1bmN0aW9uKEZu''@;'; + put 'put ''KXtjbGVhclRpbWVvdXQoRm4pfSl9LHRoaXMuaW1tZWRpYXRlcz1bXSx0aGlzLl9yZWdpc3RlckltbWVkaWF0ZT1mdW5jdGlvbihGbil7dGhpcy5pbW1lZGlhdGVzLnB1c2goc2V0SW1tZWRpYXRlKEZuKSl9LHRoaXMuX2NsZWFySW1tZWRpYXRlcz1mdW5jdGlvbigpe1VyKHRoaXMuaW1tZWRp''@;'; + put 'put ''YXRlcyxmdW5jdGlvbihGbil7Y2xlYXJJbW1lZGlhdGUoRm4pfSl9LHRoaXMuX3JlZnJlc2hCb3JkZXJzPWZ1bmN0aW9uKCl7dmFyIEZuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sWm49IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQg''@;'; + put 'put ''MCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTtOZS5kZXN0cm95RWRpdG9yKEZuKSxJLnZpZXcucmVuZGVyKCksWm4mJndyLmlzU2VsZWN0ZWQoKSYmTmUucHJlcGFyZUVkaXRvcigpfSx0aGlzLmlzUnRsPWZ1bmN0aW9uKCl7cmV0dXJuInJ0bCI9PT1JLnJvb3RXaW5kb3cuZ2V0Q29t''@;'; + put 'put ''cHV0ZWRTdHlsZShJLnJvb3RFbGVtZW50KS5kaXJlY3Rpb259LHRoaXMuaXNMdHI9ZnVuY3Rpb24oKXtyZXR1cm4hSS5pc1J0bCgpfSx0aGlzLmdldERpcmVjdGlvbkZhY3Rvcj1mdW5jdGlvbigpe3JldHVybiBJLmlzTHRyKCk/MTotMX07dmFyIGZvPXdxZSh7aGFuZGxlRXZlbnQ6ZnVuY3Rp''@;'; + put 'put ''b24oWm4pe3JldHVybiBJLmlzTGlzdGVuaW5nKCkmJnZvaWQgMCE9PShudWxsPT1abj92b2lkIDA6Wm4ua2V5KX0sYmVmb3JlS2V5RG93bjpmdW5jdGlvbihabil7cmV0dXJuIHYucnVuSG9va3MoImJlZm9yZUtleURvd24iLFpuKX0sYWZ0ZXJLZXlEb3duOmZ1bmN0aW9uKFpuKXt2LmlzRGVz''@;'; + put 'put ''dHJveWVkfHxJLnJ1bkhvb2tzKCJhZnRlckRvY3VtZW50S2V5RG93biIsWm4pfSxvd25lcldpbmRvdzp0aGlzLnJvb3RXaW5kb3d9KTt0aGlzLmdldFNob3J0Y3V0TWFuYWdlcj1mdW5jdGlvbigpe3JldHVybiBmb307dmFyIElhPWZvLmFkZENvbnRleHQoImdyaWQiKSxYbD17cnVuT25seUlm''@;'; + put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuIFRvKEkuZ2V0U2VsZWN0ZWQoKSkmJkkuY291bnRSZW5kZXJlZFJvd3MoKT4wJiZJLmNvdW50UmVuZGVyZWRDb2xzKCk+MH0sZ3JvdXA6RXFlfTtmby5zZXRBY3RpdmVDb250ZXh0TmFtZSgiZ3JpZCIpLElhLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siQ29udHJv''@;'; + put 'put ''bC9NZXRhIiwiQSJdXSxjYWxsYmFjazpmdW5jdGlvbigpe0kuc2VsZWN0QWxsKCl9fSx7a2V5czpbWyJDb250cm9sL01ldGEiLCJFbnRlciJdXSxjYWxsYmFjazpmdW5jdGlvbigpe2Zvcih2YXIgWm49SS5nZXRTZWxlY3RlZFJhbmdlKCksX3I9Wm5bWm4ubGVuZ3RoLTFdLmhpZ2hsaWdodCxY''@;'; + put 'put ''cj1fci5yb3csY2k9X3IuY29sLGMwPUkuZ2V0RGF0YUF0Q2VsbChYcixjaSksWGk9bmV3IE1hcCxFMD0wO0UwPFpuLmxlbmd0aDtFMCsrKVpuW0UwXS5mb3JBbGwoZnVuY3Rpb24oejAsa28pe3owPj0wJiZrbz49MCYmKHowIT09WHJ8fGtvIT09Y2kpJiYoSS5nZXRDZWxsTWV0YSh6MCxrbyku''@;'; + put 'put ''cmVhZE9ubHl8fFhpLnNldCgiIi5jb25jYXQoejAsIngiKS5jb25jYXQoa28pLFt6MCxrbyxjMF0pKX0pO0kuc2V0RGF0YUF0Q2VsbChBcnJheS5mcm9tKFhpLnZhbHVlcygpKSl9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiBJLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkuZ2V0Q2VsbHND''@;'; + put 'put ''b3VudCgpPjF9fSx7a2V5czpbWyJBcnJvd1VwIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3IudHJhbnNmb3JtU3RhcnQoLTEsMCl9fSx7a2V5czpbWyJBcnJvd1VwIiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3Iuc2V0UmFuZ2VTdGFydChJ''@;'; + put 'put ''Ll9jcmVhdGVDZWxsQ29vcmRzKEkucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KDAsMSksSS5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5jb2wpKX19LHtrZXlzOltbIkFycm93VXAiLCJTaGlmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3dyLnRyYW5z''@;'; + put 'put ''Zm9ybUVuZCgtMSwwKX19LHtrZXlzOltbIkFycm93VXAiLCJTaGlmdCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabj1JLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksX3I9Wm4uZnJvbSxYcj1abi50byxjaT1JLnJvd0luZGV4TWFwcGVy''@;'; + put 'put ''LmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCgwLDEpO3dyLnNldFJhbmdlU3RhcnQoX3IuY2xvbmUoKSksd3Iuc2V0UmFuZ2VFbmQoSS5fY3JlYXRlQ2VsbENvb3JkcyhjaSxYci5jb2wpKX0scnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIShJLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3Ju''@;'; + put 'put ''ZXIoKXx8SS5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkpfX0se2tleXM6W1siQXJyb3dEb3duIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3IudHJhbnNmb3JtU3RhcnQoMSwwKX19LHtrZXlzOltbIkFycm93RG93biIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDoh''@;'; + put 'put ''MCxjYWxsYmFjazpmdW5jdGlvbigpe3dyLnNldFJhbmdlU3RhcnQoSS5fY3JlYXRlQ2VsbENvb3JkcyhJLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChJLmNvdW50Um93cygpLTEsLTEpLEkuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGlnaHQuY29sKSl9fSx7''@;'; + put 'put ''a2V5czpbWyJBcnJvd0Rvd24iLCJTaGlmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3dyLnRyYW5zZm9ybUVuZCgxLDApfX0se2tleXM6W1siQXJyb3dEb3duIiwiU2hpZnQiLCJDb250cm9sL01ldGEiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgWm49SS5nZXRT''@;'; + put 'put ''ZWxlY3RlZFJhbmdlTGFzdCgpLF9yPVpuLmZyb20sWHI9Wm4udG8sY2k9SS5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSS5jb3VudFJvd3MoKS0xLC0xKTt3ci5zZXRSYW5nZVN0YXJ0KF9yLmNsb25lKCkpLHdyLnNldFJhbmdlRW5kKEkuX2NyZWF0ZUNlbGxDb29y''@;'; + put 'put ''ZHMoY2ksWHIuY29sKSl9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiEoSS5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCl8fEkuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpKX19LHtrZXlzOltbIkFycm93TGVmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3dy''@;'; + put 'put ''LnRyYW5zZm9ybVN0YXJ0KDAsLTEqSS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5czpbWyJBcnJvd0xlZnQiLCJDb250cm9sL01ldGEiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgWm4sX3I9SS5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5y''@;'; + put 'put ''b3csWHI9KFpuPUkuY29sdW1uSW5kZXhNYXBwZXIpLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleC5hcHBseShabixMdyhJLmlzUnRsKCk/W0kuY291bnRDb2xzKCktMSwtMV06WzAsMV0pKTt3ci5zZXRSYW5nZVN0YXJ0KEkuX2NyZWF0ZUNlbGxDb29yZHMoX3IsWHIpKX19LHtrZXlzOltbIkFy''@;'; + put 'put ''cm93TGVmdCIsIlNoaWZ0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3IudHJhbnNmb3JtRW5kKDAsLTEqSS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5czpbWyJBcnJvd0xlZnQiLCJTaGlmdCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigp''@;'; + put 'put ''e3ZhciBabixfcj1JLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksWHI9X3IuZnJvbSxjaT1fci50byxjMD0oWm49SS5jb2x1bW5JbmRleE1hcHBlcikuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4LmFwcGx5KFpuLEx3KEkuaXNSdGwoKT9bSS5jb3VudENvbHMoKS0xLC0xXTpbMCwxXSkpO3dyLnNl''@;'; + put 'put ''dFJhbmdlU3RhcnQoWHIuY2xvbmUoKSksd3Iuc2V0UmFuZ2VFbmQoSS5fY3JlYXRlQ2VsbENvb3JkcyhjaS5yb3csYzApKX0scnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIShJLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8SS5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVh''@;'; + put 'put ''ZGVyKCkpfX0se2tleXM6W1siQXJyb3dSaWdodCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3dyLnRyYW5zZm9ybVN0YXJ0KDAsSS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5czpbWyJBcnJvd1JpZ2h0IiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOmZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIFpuLF9yPUkuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGlnaHQucm93LFhyPShabj1JLmNvbHVtbkluZGV4TWFwcGVyKS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXguYXBwbHkoWm4sTHcoSS5pc1J0bCgpP1swLDFdOltJLmNvdW50Q29scygpLTEsLTFdKSk7d3Iuc2V0''@;'; + put 'put ''UmFuZ2VTdGFydChJLl9jcmVhdGVDZWxsQ29vcmRzKF9yLFhyKSl9fSx7a2V5czpbWyJBcnJvd1JpZ2h0IiwiU2hpZnQiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt3ci50cmFuc2Zvcm1FbmQoMCxJLmdldERpcmVjdGlvbkZhY3RvcigpKX19LHtrZXlzOltbIkFycm93UmlnaHQiLCJTaGlmdCIs''@;'; + put 'put ''IkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabixfcj1JLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksWHI9X3IuZnJvbSxjaT1fci50byxjMD0oWm49SS5jb2x1bW5JbmRleE1hcHBlcikuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4LmFwcGx5''@;'; + put 'put ''KFpuLEx3KEkuaXNSdGwoKT9bMCwxXTpbSS5jb3VudENvbHMoKS0xLC0xXSkpO3dyLnNldFJhbmdlU3RhcnQoWHIuY2xvbmUoKSksd3Iuc2V0UmFuZ2VFbmQoSS5fY3JlYXRlQ2VsbENvb3JkcyhjaS5yb3csYzApKX0scnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIShJLnNlbGVjdGlvbi5p''@;'; + put 'put ''c1NlbGVjdGVkQnlDb3JuZXIoKXx8SS5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkpfX0se2tleXM6W1siSG9tZSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabj1wYXJzZUludChJLmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQsMTAp''@;'; + put 'put ''LF9yPUkuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGlnaHQucm93LFhyPUkuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KFpuLDEpO3dyLnNldFJhbmdlU3RhcnQoSS5fY3JlYXRlQ2VsbENvb3JkcyhfcixYcikpfSxydW5Pbmx5SWY6ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gSS52aWV3LmlzTWFpblRhYmxlTm90RnVsbHlDb3ZlcmVkQnlPdmVybGF5cygpfX0se2tleXM6W1siSG9tZSIsIlNoaWZ0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3Iuc2V0UmFuZ2VFbmQoSS5fY3JlYXRlQ2VsbENvb3Jkcyh3ci5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKS5mcm9t''@;'; + put 'put ''LnJvdyxJLmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCgwLDEpKSl9fSx7a2V5czpbWyJIb21lIiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIFpuPXBhcnNlSW50KEkuZ2V0U2V0dGluZ3MoKS5maXhlZFJv''@;'; + put 'put ''d3NUb3AsMTApLF9yPXBhcnNlSW50KEkuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydCwxMCksWHI9SS5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoWm4sMSksY2k9SS5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoX3IsMSk7''@;'; + put 'put ''d3Iuc2V0UmFuZ2VTdGFydChJLl9jcmVhdGVDZWxsQ29vcmRzKFhyLGNpKSl9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiBJLnZpZXcuaXNNYWluVGFibGVOb3RGdWxseUNvdmVyZWRCeU92ZXJsYXlzKCl9fSx7a2V5czpbWyJFbmQiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6ZnVu''@;'; + put 'put ''Y3Rpb24oKXt3ci5zZXRSYW5nZVN0YXJ0KEkuX2NyZWF0ZUNlbGxDb29yZHMoSS5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5yb3csSS5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSS5jb3VudENvbHMoKS0xLC0xKSkpfSxydW5Pbmx5SWY6ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gSS52aWV3LmlzTWFpblRhYmxlTm90RnVsbHlDb3ZlcmVkQnlPdmVybGF5cygpfX0se2tleXM6W1siRW5kIiwiU2hpZnQiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt3ci5zZXRSYW5nZUVuZChJLl9jcmVhdGVDZWxsQ29vcmRzKHdyLnNlbGVjdGVkUmFuZ2UuY3VycmVu''@;'; + put 'put ''dCgpLmZyb20ucm93LEkuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEkuY291bnRDb2xzKCktMSwtMSkpKX19LHtrZXlzOltbIkVuZCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabj1wYXJzZUludChJ''@;'; + put 'put ''LmdldFNldHRpbmdzKCkuZml4ZWRSb3dzQm90dG9tLDEwKSxfcj1JLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChJLmNvdW50Um93cygpLVpuLTEsLTEpLFhyPUkuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEkuY291bnRDb2xzKCkt''@;'; + put 'put ''MSwtMSk7d3Iuc2V0UmFuZ2VTdGFydChJLl9jcmVhdGVDZWxsQ29vcmRzKF9yLFhyKSl9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiBJLnZpZXcuaXNNYWluVGFibGVOb3RGdWxseUNvdmVyZWRCeU92ZXJsYXlzKCl9fSx7a2V5czpbWyJQYWdlVXAiXV0sY2FsbGJhY2s6ZnVuY3Rpb24o''@;'; + put 'put ''KXt3ci50cmFuc2Zvcm1TdGFydCgtSS5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJQYWdlVXAiLCJTaGlmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBfcj1JLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkudG8sWHI9TWF0aC5tYXgoX3Iucm93LUkuY291bnRWaXNpYmxlUm93''@;'; + put 'put ''cygpLDApLGNpPUkucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KFhyLDEpO2lmKG51bGwhPT1jaSl7dmFyIGMwPUkuX2NyZWF0ZUNlbGxDb29yZHMoY2ksX3IuY29sKSxYaT1fci5yb3ctSS52aWV3LmdldEZpcnN0RnVsbHlWaXNpYmxlUm93KCksRTA9TWF0aC5tYXgo''@;'; + put 'put ''YzAucm93LVhpLDApO3dyLnNldFJhbmdlRW5kKGMwKSxJLnNjcm9sbFZpZXdwb3J0VG8oRTApfX19LHtrZXlzOltbIlBhZ2VEb3duIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3IudHJhbnNmb3JtU3RhcnQoSS5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJQYWdlRG93biIsIlNo''@;'; + put 'put ''aWZ0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIF9yPUkuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS50byxYcj1NYXRoLm1pbihfci5yb3crSS5jb3VudFZpc2libGVSb3dzKCksSS5jb3VudFJvd3MoKS0xKSxjaT1JLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChY''@;'; + put 'put ''ciwtMSk7aWYobnVsbCE9PWNpKXt2YXIgYzA9SS5fY3JlYXRlQ2VsbENvb3JkcyhjaSxfci5jb2wpLFhpPV9yLnJvdy1JLnZpZXcuZ2V0Rmlyc3RGdWxseVZpc2libGVSb3coKSxFMD1NYXRoLm1pbihjMC5yb3ctWGksSS5jb3VudFJvd3MoKS0xKTt3ci5zZXRSYW5nZUVuZChjMCksSS5zY3Jv''@;'; + put 'put ''bGxWaWV3cG9ydFRvKEUwKX19fSx7a2V5czpbWyJUYWIiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oWm4pe3ZhciBfcj0iZnVuY3Rpb24iPT10eXBlb2YgZm4udGFiTW92ZXM/Zm4udGFiTW92ZXMoWm4pOmZuLnRhYk1vdmVzO3dyLnRyYW5zZm9ybVN0YXJ0KF9yLnJvdyxfci5jb2wsITApfX0se2tl''@;'; + put 'put ''eXM6W1siU2hpZnQiLCJUYWIiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oWm4pe3ZhciBfcj0iZnVuY3Rpb24iPT10eXBlb2YgZm4udGFiTW92ZXM/Zm4udGFiTW92ZXMoWm4pOmZuLnRhYk1vdmVzO3dyLnRyYW5zZm9ybVN0YXJ0KC1fci5yb3csLV9yLmNvbCl9fV0sWGwpLFozZSgpLmZvckVhY2go''@;'; + put 'put ''ZnVuY3Rpb24oRm4pe3ZhciBabj16WihGbik7aXIuYWRkSXRlbShGbixuZXcgWm4odikpfSksem8uZ2V0U2luZ2xldG9uKCkucnVuKEksImNvbnN0cnVjdCIpfXZhciBJU2U9e19ob29rc1N0b3JhZ2U6T2JqZWN0LmNyZWF0ZShudWxsKSxhZGRIb29rOmZ1bmN0aW9uKGcsaCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2hvb2tzU3RvcmFnZVtnXXx8KHRoaXMuX2hvb2tzU3RvcmFnZVtnXT1bXSksdGhpcy5ob3QuYWRkSG9vayhnLGgpLHRoaXMuX2hvb2tzU3RvcmFnZVtnXS5wdXNoKGgpLHRoaXN9LHJlbW92ZUhvb2tzQnlLZXk6ZnVuY3Rpb24oZyl7dmFyIGg9dGhpcztVcih0aGlzLl9ob29rc1N0b3Jh''@;'; + put 'put ''Z2VbZ118fFtdLGZ1bmN0aW9uKHYpe2guaG90LnJlbW92ZUhvb2soZyx2KX0pfSxjbGVhckhvb2tzOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcztHbCh0aGlzLl9ob29rc1N0b3JhZ2UsZnVuY3Rpb24oaCx2KXtyZXR1cm4gZy5yZW1vdmVIb29rc0J5S2V5KHYpfSksdGhpcy5faG9va3NTdG9yYWdl''@;'; + put 'put ''PXt9fX07U2coSVNlLCJNSVhJTl9OQU1FIiwiaG9va3NSZWZSZWdpc3RlcmVyIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IFRxZT1JU2U7ZnVuY3Rpb24gbzZlKGQpe3JldHVybihvNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1i''@;'; + put 'put ''b2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlv''@;'; + put 'put ''biBEU2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBhNmUoZCxnKXtyZXR1cm4oYTZlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJv''@;'; + put 'put ''dG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gRnFlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09bzZlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVy''@;'; + put 'put ''cm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBIcWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigp''@;'; + put 'put ''IGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBtdGUoZCl7cmV0dXJuKG10ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVP''@;'; + put 'put ''ZihoKX0pKGQpfWZ1bmN0aW9uIExTZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIE9TZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3Yu''@;'; + put 'put ''ZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFJTZShkLGcsaCl7cmV0dXJuIGcmJk9TZShkLnByb3RvdHlwZSxnKSxoJiZPU2Uo''@;'; + put 'put ''ZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxkfXZhciByZj1PYmplY3QuZnJlZXplKHtWSVJHSU46IlNUQVRFX1ZJUkdJTiIsRURJVElORzoiU1RBVEVfRURJVElORyIsV0FJVElORzoiU1RBVEVfV0FJVElORyIsRklOSVNIRUQ6IlNUQVRF''@;'; + put 'put ''X0ZJTklTSEVEIn0pLGw2ZT0iYmFzZUVkaXRvciIsZ089ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpe0xTZSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5pbnN0YW5jZT1nLHRoaXMuc3RhdGU9cmYuVklSR0lOLHRoaXMuX29wZW5lZD0hMSx0aGlzLl9mdWxsRWRpdE1vZGU9ITEsdGhpcy5fY2xv''@;'; + put 'put ''c2VDYWxsYmFjaz1udWxsLHRoaXMuVEQ9bnVsbCx0aGlzLnJvdz1udWxsLHRoaXMuY29sPW51bGwsdGhpcy5wcm9wPW51bGwsdGhpcy5vcmlnaW5hbFZhbHVlPW51bGwsdGhpcy5jZWxsUHJvcGVydGllcz1udWxsLHRoaXMuaW5pdCgpfXJldHVybiBSU2UoZCxbe2tleToiX2ZpcmVDYWxsYmFj''@;'; + put 'put ''a3MiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuX2Nsb3NlQ2FsbGJhY2smJih0aGlzLl9jbG9zZUNhbGxiYWNrKGgpLHRoaXMuX2Nsb3NlQ2FsbGJhY2s9bnVsbCl9fSx7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3Rocm93''@;'; + put 'put ''IEVycm9yKCJFZGl0b3IgZ2V0VmFsdWUoKSBtZXRob2QgdW5pbXBsZW1lbnRlZCIpfX0se2tleToic2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoIkVkaXRvciBzZXRWYWx1ZSgpIG1ldGhvZCB1bmltcGxlbWVudGVkIil9fSx7a2V5OiJvcGVuIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3Rocm93IEVycm9yKCJFZGl0b3Igb3BlbigpIG1ldGhvZCB1bmltcGxlbWVudGVkIil9fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiRWRpdG9yIGNsb3NlKCkgbWV0aG9kIHVuaW1wbGVtZW50ZWQiKX19LHtrZXk6InByZXBhcmUiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdix5LEMsSSxqKXt0aGlzLlREPUMsdGhpcy5yb3c9aCx0aGlzLmNvbD12LHRoaXMucHJvcD15LHRoaXMub3JpZ2luYWxWYWx1ZT1JLHRoaXMuY2VsbFByb3BlcnRpZXM9aix0aGlzLnN0YXRlPXJmLlZJUkdJTn19LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''ZnVuY3Rpb24oaCl7IWZ1bmN0aW9uIEJxZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUo''@;'; + put 'put ''ZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZhNmUoZCxnKX0oeSxoKTt2YXIgdj1mdW5jdGlvbiBQcWUoZCl7dmFyIGc9''@;'; + put 'put ''ZnVuY3Rpb24gTnFlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUu''@;'; + put 'put ''dmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9bXRlKGQpO2lmKGcpe3ZhciBDPW10ZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3Ry''@;'; + put 'put ''dWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gRnFlKHRoaXMseSl9fSh5KTtmdW5jdGlvbiB5KCl7cmV0dXJuIExTZSh0aGlzLHkpLHYuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBSU2UoeSl9KHRoaXMuY29uc3RydWN0b3IpfX0s''@;'; + put 'put ''e2tleToic2F2ZVZhbHVlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciBDLEksaix1ZSx5PXRoaXM7aWYodil7dmFyIF9lPXRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpO0M9TWF0aC5tYXgoTWF0aC5taW4oX2VbMF0sX2VbMl0pLDApLEk9TWF0aC5tYXgoTWF0aC5taW4oX2VbMV0sX2VbM10p''@;'; + put 'put ''LDApLGo9TWF0aC5tYXgoX2VbMF0sX2VbMl0pLHVlPU1hdGgubWF4KF9lWzFdLF9lWzNdKX1lbHNle3ZhciBCZT1bdGhpcy5yb3csdGhpcy5jb2wsbnVsbCxudWxsXTtDPUJlWzBdLEk9QmVbMV0saj1CZVsyXSx1ZT1CZVszXX12YXIgTmU9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeUdldENl''@;'; + put 'put ''bGxDb29yZHMiLEMsSSk7aWYoQXJyYXkuaXNBcnJheShOZSkpe3ZhciBLZT1mdW5jdGlvbiBJcWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gUnFlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBPcWUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5l''@;'; + put 'put ''ZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9''@;'; + put 'put ''PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBMcWUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJu''@;'; + put 'put ''IERTZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFy''@;'; + put 'put ''Z3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gRFNlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBEcWUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJh''@;'; + put 'put ''YmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShOZSwyKTtDPUtlWzBdLEk9S2VbMV19dmFyIE90PXRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdl''@;'; + put 'put ''dENvbnRleHQoImVkaXRvciIpLCR0PXtydW5Pbmx5SWY6ZnVuY3Rpb24oKXtyZXR1cm4gVG8oeS5ob3QuZ2V0U2VsZWN0ZWQoKSl9LGdyb3VwOmw2ZX07dGhpcy5pc0luRnVsbEVkaXRNb2RlKCkmJk90LmFkZFNob3J0Y3V0cyhbe2tleXM6W1siQXJyb3dVcCJdXSxjYWxsYmFjazpmdW5jdGlv''@;'; + put 'put ''bigpe3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgtMSwwKX19LHtrZXlzOltbIkFycm93RG93biJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgxLDApfX0se2tleXM6W1siQXJyb3dMZWZ0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7''@;'; + put 'put ''eS5ob3Quc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KDAsLTEqeS5ob3QuZ2V0RGlyZWN0aW9uRmFjdG9yKCkpfX0se2tleXM6W1siQXJyb3dSaWdodCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgwLHkuaG90LmdldERpcmVjdGlvbkZhY3Rv''@;'; + put 'put ''cigpKX19XSwkdCksdGhpcy5ob3QucG9wdWxhdGVGcm9tQXJyYXkoQyxJLGgsaix1ZSwiZWRpdCIpfX0se2tleToiYmVnaW5FZGl0aW5nIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHRoaXMuc3RhdGU9PT1yZi5WSVJHSU4pe3ZhciB5PXRoaXMuaG90LEM9eS5yb3dJbmRleE1hcHBlci5nZXRS''@;'; + put 'put ''ZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHRoaXMucm93KSxJPXkuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleCh0aGlzLmNvbCk7aWYoeS52aWV3LnNjcm9sbFZpZXdwb3J0KHkuX2NyZWF0ZUNlbGxDb29yZHMoQyxJKSksdGhpcy5zdGF0ZT1yZi5FRElU''@;'; + put 'put ''SU5HLHRoaXMuaXNJbkZ1bGxFZGl0TW9kZSgpKXt2YXIgaj0ic3RyaW5nIj09dHlwZW9mIGg/aDpldSh0aGlzLm9yaWdpbmFsVmFsdWUpO3RoaXMuc2V0VmFsdWUoail9dGhpcy5vcGVuKHYpLHRoaXMuX29wZW5lZD0hMCx0aGlzLmZvY3VzKCkseS52aWV3LnJlbmRlcigpLHkucnVuSG9va3Mo''@;'; + put 'put ''ImFmdGVyQmVnaW5FZGl0aW5nIix0aGlzLnJvdyx0aGlzLmNvbCl9fX0se2tleToiZmluaXNoRWRpdGluZyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBJLEM9dGhpcztpZih5KXt2YXIgaj10aGlzLl9jbG9zZUNhbGxiYWNrO3RoaXMuX2Nsb3NlQ2FsbGJhY2s9ZnVuY3Rpb24oTmUpe2om''@;'; + put 'put ''JmooTmUpLHkoTmUpLEMuaG90LnZpZXcucmVuZGVyKCl9fWlmKCF0aGlzLmlzV2FpdGluZygpKXt2YXIgX2U9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIik7aWYoX2UucmVtb3ZlU2hvcnRjdXRzQnlHcm91cChsNmUpLF9lLnJlbW92ZVNob3J0Y3V0''@;'; + put 'put ''c0J5R3JvdXAobGVlKSx0aGlzLnN0YXRlPT09cmYuVklSR0lOKXJldHVybiB2b2lkIHRoaXMuaG90Ll9yZWdpc3RlclRpbWVvdXQoZnVuY3Rpb24oKXtDLl9maXJlQ2FsbGJhY2tzKCEwKX0pO2lmKHRoaXMuc3RhdGU9PT1yZi5FRElUSU5HKXtpZihoKXJldHVybiB0aGlzLmNhbmNlbENoYW5n''@;'; + put 'put ''ZXMoKSx2b2lkIHRoaXMuaG90LnZpZXcucmVuZGVyKCk7dmFyIEJlPXRoaXMuZ2V0VmFsdWUoKTtJPXRoaXMuaG90LmdldFNldHRpbmdzKCkudHJpbVdoaXRlc3BhY2U/W1sic3RyaW5nIj09dHlwZW9mIEJlP1N0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKEJlfHwiIik6QmVdXTpbW0JlXV0s''@;'; + put 'put ''dGhpcy5zdGF0ZT1yZi5XQUlUSU5HLHRoaXMuc2F2ZVZhbHVlKEksdiksdGhpcy5ob3QuZ2V0Q2VsbFZhbGlkYXRvcih0aGlzLmNlbGxQcm9wZXJ0aWVzKT90aGlzLmhvdC5hZGRIb29rT25jZSgicG9zdEFmdGVyVmFsaWRhdGUiLGZ1bmN0aW9uKE5lKXtDLnN0YXRlPXJmLkZJTklTSEVELEMu''@;'; + put 'put ''ZGlzY2FyZEVkaXRvcihOZSl9KToodGhpcy5zdGF0ZT1yZi5GSU5JU0hFRCx0aGlzLmRpc2NhcmRFZGl0b3IoITApKX19fX0se2tleToiY2FuY2VsQ2hhbmdlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnN0YXRlPXJmLkZJTklTSEVELHRoaXMuZGlzY2FyZEVkaXRvcigpfX0se2tleToiZGlz''@;'; + put 'put ''Y2FyZEVkaXRvciIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5zdGF0ZT09PXJmLkZJTklTSEVEJiYoITE9PT1oJiYhMCE9PXRoaXMuY2VsbFByb3BlcnRpZXMuYWxsb3dJbnZhbGlkPyh0aGlzLmhvdC5zZWxlY3RDZWxsKHRoaXMucm93LHRoaXMuY29sKSx0aGlzLmZvY3VzKCksdGhpcy5zdGF0''@;'; + put 'put ''ZT1yZi5FRElUSU5HLHRoaXMuX2ZpcmVDYWxsYmFja3MoITEpKToodGhpcy5jbG9zZSgpLHRoaXMuX29wZW5lZD0hMSx0aGlzLl9mdWxsRWRpdE1vZGU9ITEsdGhpcy5zdGF0ZT1yZi5WSVJHSU4sdGhpcy5fZmlyZUNhbGxiYWNrcyghMCksdGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCku''@;'; + put 'put ''c2V0QWN0aXZlQ29udGV4dE5hbWUoImdyaWQiKSkpfX0se2tleToiZW5hYmxlRnVsbEVkaXRNb2RlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2Z1bGxFZGl0TW9kZT0hMH19LHtrZXk6ImlzSW5GdWxsRWRpdE1vZGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Z1bGxFZGl0TW9k''@;'; + put 'put ''ZX19LHtrZXk6ImlzT3BlbmVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vcGVuZWR9fSx7a2V5OiJpc1dhaXRpbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGU9PT1yZi5XQUlUSU5HfX0se2tleToiZ2V0RWRpdGVkQ2VsbFJlY3QiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7dmFyIGgsdj10aGlzLmdldEVkaXRlZENlbGwoKTtpZih2KXt2YXIgeT10aGlzLmhvdC52aWV3Ll93dCxDPXkud3RPdmVybGF5cyxJPXkud3RWaWV3cG9ydCxqPXRoaXMuaG90LnJvb3RXaW5kb3csdWU9anUodiksX2U9RTIodiksQmU9anUodGhpcy5ob3Qucm9vdEVsZW1lbnQpLE5lPUUy''@;'; + put 'put ''KHRoaXMuaG90LnJvb3RFbGVtZW50KSxLZT1DLnRvcE92ZXJsYXkuaG9sZGVyLGR0PUMuaW5saW5lU3RhcnRPdmVybGF5LmhvbGRlcixPdD1LZSE9PWo/S2Uuc2Nyb2xsVG9wOjAsJHQ9ZHQhPT1qP2R0LnNjcm9sbExlZnQ6MCxmbj1qLmlubmVyV2lkdGgtQmUubGVmdC1OZSxpcj0obnVsbCE9''@;'; + put 'put ''PShoPUMuZ2V0UGFyZW50T3ZlcmxheSh2KSkmJnZvaWQgMCE9PWg/aDp0aGlzLmhvdC52aWV3Ll93dCkud3RUYWJsZSxtcj1pci5uYW1lLFNyPVsibWFzdGVyIiwiaW5saW5lX3N0YXJ0Il0uaW5jbHVkZXMobXIpP090OjAsd3I9WyJtYXN0ZXIiLCJ0b3AiLCJib3R0b20iXS5pbmNsdWRlcyht''@;'; + put 'put ''cik/JHQ6MCx5aT11ZS50b3AtQmUudG9wLSh1ZS50b3A9PT1CZS50b3A/MDoxKS1TcixLaT0wO0tpPXRoaXMuaG90LmlzUnRsKCk/ai5pbm5lcldpZHRoLXVlLmxlZnQtX2UtZm4tMSt3cjp1ZS5sZWZ0LUJlLmxlZnQtMS13cixbInRvcCIsInRvcF9pbmxpbmVfc3RhcnRfY29ybmVyIl0uaW5j''@;'; + put 'put ''bHVkZXMobXIpJiYoeWkrPUMudG9wT3ZlcmxheS5nZXRPdmVybGF5T2Zmc2V0KCkpLFsiaW5saW5lX3N0YXJ0IiwidG9wX2lubGluZV9zdGFydF9jb3JuZXIiXS5pbmNsdWRlcyhtcikmJihLaSs9TWF0aC5hYnMoQy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpKSk7dmFy''@;'; + put 'put ''IFNvPXRoaXMuaG90Lmhhc0NvbEhlYWRlcnMoKSxQbz10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHRoaXMucm93KSxTYT10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHRoaXMuY29sKSxs''@;'; + put 'put ''YT10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlSW5kZXhlc0xlbmd0aCgpLXRoaXMuaG90LnZpZXcuX3d0LmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpOyhTbyYmUG88PTB8fFBvPT09bGEpJiYoeWkrPTEpLFNhPD0wJiYoS2krPTEpO3ZhciBhbD1JLnJvd3NSZW5k''@;'; + put 'put ''ZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24sTHM9SS5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uLFAwPU1hdGguYWJzKEMuaW5saW5lU3RhcnRPdmVybGF5LmdldFNjcm9sbFBvc2l0aW9uKCkpLHJvPUMudG9wT3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpLGZvPUJj''@;'; + put 'put ''KHRoaXMuaG90LnJvb3REb2N1bWVudCksSWE9di5vZmZzZXRUb3ArYWwtcm8sWGw9MDtpZih0aGlzLmhvdC5pc1J0bCgpKXt2YXIgRm49di5vZmZzZXRMZWZ0O1hsPUZuPj0wP2lyLmdldFdpZHRoKCktdi5vZmZzZXRMZWZ0Ok1hdGguYWJzKEZuKSxYbCs9THMtUDAtX2V9ZWxzZSBYbD12Lm9m''@;'; + put 'put ''ZnNldExlZnQrTHMtUDA7dmFyIFpuPWt3KHRoaXMuVEQsdGhpcy5ob3Qucm9vdFdpbmRvdyksX3I9dGhpcy5ob3QuaXNSdGwoKT8iYm9yZGVyUmlnaHRXaWR0aCI6ImJvcmRlckxlZnRXaWR0aCIsWHI9cGFyc2VJbnQoWm5bX3JdLDEwKT4wPzA6MSxjaT1wYXJzZUludChabi5ib3JkZXJUb3BX''@;'; + put 'put ''aWR0aCwxMCk+MD8wOjEsYzA9RTIodikrWHIsWGk9RDEodikrY2ksRTA9emJlKEtlKT9mbzowLHowPUdiZShkdCk/Zm86MCxrbz10aGlzLmhvdC52aWV3Lm1heGltdW1WaXNpYmxlRWxlbWVudFdpZHRoKFhsKS1FMCtYcjtyZXR1cm57dG9wOnlpLHN0YXJ0OktpLGhlaWdodDpYaSxtYXhIZWln''@;'; + put 'put ''aHQ6TWF0aC5tYXgodGhpcy5ob3Qudmlldy5tYXhpbXVtVmlzaWJsZUVsZW1lbnRIZWlnaHQoSWEpLXowK2NpLDIzKSx3aWR0aDpjMCxtYXhXaWR0aDprb319fX0se2tleToiZ2V0RWRpdGVkQ2VsbHNMYXllckNsYXNzIix2YWx1ZTpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmNoZWNrRWRpdG9y''@;'; + put 'put ''U2VjdGlvbigpKXtjYXNlImlubGluZS1zdGFydCI6cmV0dXJuImh0X2Nsb25lX2xlZnQgaHRfY2xvbmVfaW5saW5lX3N0YXJ0IjtjYXNlImJvdHRvbSI6cmV0dXJuImh0X2Nsb25lX2JvdHRvbSI7Y2FzZSJib3R0b20taW5saW5lLXN0YXJ0LWNvcm5lciI6cmV0dXJuImh0X2Nsb25lX2JvdHRv''@;'; + put 'put ''bV9sZWZ0X2Nvcm5lciBodF9jbG9uZV9ib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lciI7Y2FzZSJ0b3AiOnJldHVybiJodF9jbG9uZV90b3AiO2Nhc2UidG9wLWlubGluZS1zdGFydC1jb3JuZXIiOnJldHVybiJodF9jbG9uZV90b3BfbGVmdF9jb3JuZXIgaHRfY2xvbmVfdG9wX2lubGluZV9z''@;'; + put 'put ''dGFydF9jb3JuZXIiO2RlZmF1bHQ6cmV0dXJuImh0X2Nsb25lX21hc3RlciJ9fX0se2tleToiZ2V0RWRpdGVkQ2VsbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ob3QuZ2V0Q2VsbCh0aGlzLnJvdyx0aGlzLmNvbCwhMCl9fSx7a2V5OiJjaGVja0VkaXRvclNlY3Rpb24iLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5ob3QuY291bnRSb3dzKCksdj0iIjtyZXR1cm4gdGhpcy5yb3c8dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NUb3A/dj10aGlzLmNvbDx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0PyJ0b3AtaW5saW5lLXN0YXJ0''@;'; + put 'put ''LWNvcm5lciI6InRvcCI6dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NCb3R0b20mJnRoaXMucm93Pj1oLXRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRSb3dzQm90dG9tP3Y9dGhpcy5jb2w8dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydD8iYm90dG9t''@;'; + put 'put ''LWlubGluZS1zdGFydC1jb3JuZXIiOiJib3R0b20iOnRoaXMuY29sPHRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQmJih2PSJpbmxpbmUtc3RhcnQiKSx2fX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImJhc2UifX1dKSxkfSgpO2Z1''@;'; + put 'put ''bmN0aW9uIGpxZSgpe3ZhciBnLGQ9e21pbkhlaWdodDoyMDAsbWF4SGVpZ2h0OjMwMCxtaW5XaWR0aDoxMDAsbWF4V2lkdGg6MzAwfSxoPWRvY3VtZW50LmJvZHksdj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIikseT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTUEFOIiksQz1mdW5jdGlv''@;'; + put 'put ''bihkdCxPdCwkdCl7ZHQuYWRkRXZlbnRMaXN0ZW5lcihPdCwkdCwhMSl9LEk9ZnVuY3Rpb24oZHQsT3QsJHQpe2R0LnJlbW92ZUV2ZW50TGlzdGVuZXIoT3QsJHQsITEpfSxqPWZ1bmN0aW9uKGR0KXt2YXIgT3QsJHQ7ZHQ/L15bYS16QS1aIFwuLFxcXC9cfDAtOV0kLy50ZXN0KGR0KXx8KGR0''@;'; + put 'put ''PSIuIik6ZHQ9IiIsdm9pZCAwIT09di50ZXh0Q29udGVudD92LnRleHRDb250ZW50PWcudmFsdWUrZHQ6di5kYXRhPWcudmFsdWUrZHQseS5zdHlsZS5mb250U2l6ZT1OZShnKS5mb250U2l6ZSx5LnN0eWxlLmZvbnRGYW1pbHk9TmUoZykuZm9udEZhbWlseSx5LnN0eWxlLndoaXRlU3BhY2U9''@;'; + put 'put ''InByZSIsaC5hcHBlbmRDaGlsZCh5KSxPdD15LmNsaWVudFdpZHRoKzIsaC5yZW1vdmVDaGlsZCh5KSxnLnN0eWxlLmhlaWdodD1kLm1pbkhlaWdodCsicHgiLGcuc3R5bGUud2lkdGg9ZC5taW5XaWR0aD5PdD9kLm1pbldpZHRoKyJweCI6T3Q+ZC5tYXhXaWR0aD9kLm1heFdpZHRoKyJweCI6''@;'; + put 'put ''T3QrInB4IixkLm1pbkhlaWdodD4oJHQ9Zy5zY3JvbGxIZWlnaHQ/Zy5zY3JvbGxIZWlnaHQtMTowKT9nLnN0eWxlLmhlaWdodD1kLm1pbkhlaWdodCsicHgiOmQubWF4SGVpZ2h0PCR0PyhnLnN0eWxlLmhlaWdodD1kLm1heEhlaWdodCsicHgiLGcuc3R5bGUub3ZlcmZsb3dZPSJ2aXNpYmxl''@;'; + put 'put ''Iik6Zy5zdHlsZS5oZWlnaHQ9JHQrInB4In0sdWU9ZnVuY3Rpb24oKXt3aW5kb3cuc2V0VGltZW91dChqLDApfTtmdW5jdGlvbiBOZShLZSl7cmV0dXJuIEtlLmN1cnJlbnRTdHlsZXx8ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShLZSl9cmV0dXJue2luaXQ6ZnVuY3Rp''@;'; + put 'put ''b24oZHQsT3QsJHQpeyFmdW5jdGlvbihkdCxPdCwkdCl7Zz1kdCxmdW5jdGlvbihkdCl7aWYoZHQmJmR0Lm1pbkhlaWdodClpZigiaW5oZXJpdCI9PWR0Lm1pbkhlaWdodClkLm1pbkhlaWdodD1nLmNsaWVudEhlaWdodDtlbHNle3ZhciBPdD1wYXJzZUludChkdC5taW5IZWlnaHQpO2lzTmFO''@;'; + put 'put ''KE90KXx8KGQubWluSGVpZ2h0PU90KX1pZihkdCYmZHQubWF4SGVpZ2h0KWlmKCJpbmhlcml0Ij09ZHQubWF4SGVpZ2h0KWQubWF4SGVpZ2h0PWcuY2xpZW50SGVpZ2h0O2Vsc2V7dmFyICR0PXBhcnNlSW50KGR0Lm1heEhlaWdodCk7aXNOYU4oJHQpfHwoZC5tYXhIZWlnaHQ9JHQpfWlmKGR0''@;'; + put 'put ''JiZkdC5taW5XaWR0aClpZigiaW5oZXJpdCI9PWR0Lm1pbldpZHRoKWQubWluV2lkdGg9Zy5jbGllbnRXaWR0aDtlbHNle3ZhciBmbj1wYXJzZUludChkdC5taW5XaWR0aCk7aXNOYU4oZm4pfHwoZC5taW5XaWR0aD1mbil9aWYoZHQmJmR0Lm1heFdpZHRoKWlmKCJpbmhlcml0Ij09ZHQubWF4''@;'; + put 'put ''V2lkdGgpZC5tYXhXaWR0aD1nLmNsaWVudFdpZHRoO2Vsc2V7dmFyIExuPXBhcnNlSW50KGR0Lm1heFdpZHRoKTtpc05hTihMbil8fChkLm1heFdpZHRoPUxuKX15LmZpcnN0Q2hpbGR8fCh5LmNsYXNzTmFtZT0iYXV0b1Jlc2l6ZSIseS5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2siLHku''@;'; + put 'put ''YXBwZW5kQ2hpbGQodikpfShPdCksIlRFWFRBUkVBIj09Zy5ub2RlTmFtZSYmKGcuc3R5bGUucmVzaXplPSJub25lIixnLnN0eWxlLm92ZXJmbG93WT0iIixnLnN0eWxlLmhlaWdodD1kLm1pbkhlaWdodCsicHgiLGcuc3R5bGUubWluV2lkdGg9ZC5taW5XaWR0aCsicHgiLGcuc3R5bGUubWF4''@;'; + put 'put ''V2lkdGg9ZC5tYXhXaWR0aCsicHgiLGcuc3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iKSwkdCYmKEMoZywiY2hhbmdlIixqKSxDKGcsImN1dCIsdWUpLEMoZywicGFzdGUiLHVlKSxDKGcsImRyb3AiLHVlKSxDKGcsImtleWRvd24iLHVlKSxDKGcsImZvY3VzIixqKSxDKGcsImNvbXBvc2l0aW9u''@;'; + put 'put ''c3RhcnQiLHVlKSxDKGcsImNvbXBvc2l0aW9udXBkYXRlIix1ZSksQyhnLCJjb21wb3NpdGlvbmVuZCIsdWUpKSxqKCl9KGR0LE90LCR0KX0sdW5PYnNlcnZlOmZ1bmN0aW9uKCl7SShnLCJjaGFuZ2UiLGopLEkoZywiY3V0Iix1ZSksSShnLCJwYXN0ZSIsdWUpLEkoZywiZHJvcCIsdWUpLEko''@;'; + put 'put ''Zywia2V5ZG93biIsdWUpLEkoZywiZm9jdXMiLGopLEkoZywiY29tcG9zaXRpb25zdGFydCIsdWUpLEkoZywiY29tcG9zaXRpb251cGRhdGUiLHVlKSxJKGcsImNvbXBvc2l0aW9uZW5kIix1ZSl9LHJlc2l6ZTpqfX1mdW5jdGlvbiBCU2UoZCxnKXtmb3IodmFyIGg9ZDNlKGcpLHY9Zy52YWx1''@;'; + put 'put ''ZS5zcGxpdCgiXG4iKSx5PWgsQz0wLEk9MDtJPHYubGVuZ3RoO0krKyl7MCE9PUkmJihDKz12W0ktMV0ubGVuZ3RoKzEpO3ZhciB1ZT1DK3ZbSV0ubGVuZ3RoO2lmKCJob21lIj09PWQ/eT1DOiJlbmQiPT09ZCYmKHk9dWUpLGg8PXVlKWJyZWFrfUhaKGcseSl9ZnVuY3Rpb24gczZlKGQpe3Jl''@;'; + put 'put ''dHVybihzNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5''@;'; + put 'put ''bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBQU2UoZCxnKXtyZXR1cm4gZnVuY3Rpb24gV3FlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBHcWUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVu''@;'; + put 'put ''ZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxl''@;'; + put 'put ''bmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiB6cWUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQp''@;'; + put 'put ''cmV0dXJuIEZTZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7''@;'; + put 'put ''aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gRlNlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBacWUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9u''@;'; + put 'put ''LWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEZTZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zv''@;'; + put 'put ''cih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIEhTZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJp''@;'; + put 'put ''biB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIHV6KCl7cmV0dXJuIHV6PSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1RcWUo''@;'; + put 'put ''ZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHV6LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBRcWUoZCxnKXtmb3IoOyFPYmpl''@;'; + put 'put ''Y3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUxTKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIHU2ZShkLGcpe3JldHVybih1NmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1''@;'; + put 'put ''cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBLcWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1zNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5''@;'; + put 'put ''IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIE5TZShkKX1mdW5jdGlvbiBOU2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVy''@;'; + put 'put ''biBkfWZ1bmN0aW9uIExTKGQpe3JldHVybihMUz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfVIyKGdPLFRxZSk7dmFyIHZ0ZT0iaHRf''@;'; + put 'put ''ZWRpdG9yX2hpZGRlbiIsVlNlPSJ0ZXh0RWRpdG9yIixPUz1mdW5jdGlvbihkKXshZnVuY3Rpb24gSnFlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1''@;'; + put 'put ''bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnU2ZShkLGcp''@;'; + put 'put ''fShoLGQpO3ZhciBnPWZ1bmN0aW9uIFhxZShkKXt2YXIgZz1mdW5jdGlvbiAkcWUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0''@;'; + put 'put ''dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1MUyhkKTtpZihnKXt2YXIgQz1MUyh0''@;'; + put 'put ''aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gS3FlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBZcWUoZCxnKXtpZighKGQgaW5zdGFu''@;'; + put 'put ''Y2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuZXZlbnRNYW5hZ2VyPW5ldyBMMShOU2UoeSkpLHkuYXV0b1Jlc2l6ZT1qcWUoKSx5LlRFWFRBUkVBPXZvaWQgMCx5LnRleHRh''@;'; + put 'put ''cmVhU3R5bGU9dm9pZCAwLHkuVEVYVEFSRUFfUEFSRU5UPXZvaWQgMCx5LnRleHRhcmVhUGFyZW50U3R5bGU9dm9pZCAwLHkubGF5ZXJDbGFzcz12b2lkIDAseS5jcmVhdGVFbGVtZW50cygpLHkuYmluZEV2ZW50cygpLHkuaG90LmFkZEhvb2tPbmNlKCJhZnRlckRlc3Ryb3kiLGZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIHkuZGVzdHJveSgpfSkseX1yZXR1cm4gZnVuY3Rpb24gVXFlKGQsZyxoKXtnJiZIU2UoZC5wcm90b3R5cGUsZyksaCYmSFNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImdldFZhbHVlIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLlRFWFRBUkVBLnZhbHVlfX0se2tleToic2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuVEVYVEFSRUEudmFsdWU9eX19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLnJlZnJlc2hEaW1lbnNpb25zKCksdGhp''@;'; + put 'put ''cy5zaG93RWRpdGFibGVFbGVtZW50KCksdGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuc2V0QWN0aXZlQ29udGV4dE5hbWUoImVkaXRvciIpLHRoaXMuYWRkSG9vaygiYWZ0ZXJEb2N1bWVudEtleURvd24iLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uQWZ0ZXJEb2N1bWVudEtleURvd24o''@;'; + put 'put ''SSl9KSx0aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKCl9fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmF1dG9SZXNpemUudW5PYnNlcnZlKCksdGhpcy5ob3Qucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT10aGlzLlRFWFRBUkVBJiZ0aGlzLmhvdC5saXN0ZW4oKSx0aGlz''@;'; + put 'put ''LmhpZGVFZGl0YWJsZUVsZW1lbnQoKSx0aGlzLnVucmVnaXN0ZXJTaG9ydGN1dHMoKSx0aGlzLnJlbW92ZUhvb2tzQnlLZXkoImFmdGVyRG9jdW1lbnRLZXlEb3duIil9fSx7a2V5OiJwcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqLHVlLF9lKXt2YXIgQmU9dGhpcy5zdGF0ZTtpZih1''@;'; + put 'put ''eihMUyhoLnByb3RvdHlwZSksInByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx5LEMsSSxqLHVlLF9lKSwhX2UucmVhZE9ubHkpe3RoaXMucmVmcmVzaERpbWVuc2lvbnMoITApO3ZhciBLZT1fZS5mcmFnbWVudFNlbGVjdGlvbjtfZS5hbGxvd0ludmFsaWQmJih0aGlzLlRFWFRBUkVBLnZhbHVl''@;'; + put 'put ''PSIiKSxCZSE9PXJmLkZJTklTSEVEJiZ0aGlzLmhpZGVFZGl0YWJsZUVsZW1lbnQoKSwhS2UmJiFiOCgpJiZ0aGlzLmZvY3VzKCl9fX0se2tleToiYmVnaW5FZGl0aW5nIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuc3RhdGU9PT1yZi5WSVJHSU4mJih0aGlzLlRFWFRBUkVBLnZhbHVlPSIi''@;'; + put 'put ''LHV6KExTKGgucHJvdG90eXBlKSwiYmVnaW5FZGl0aW5nIix0aGlzKS5jYWxsKHRoaXMseSxDKSl9fSx7a2V5OiJmb2N1cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLlRFWFRBUkVBLnNlbGVjdCgpLEhaKHRoaXMuVEVYVEFSRUEsdGhpcy5URVhUQVJFQS52YWx1ZS5sZW5ndGgpfX0se2tleToi''@;'; + put 'put ''Y3JlYXRlRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3Qucm9vdERvY3VtZW50O3RoaXMuVEVYVEFSRUE9eS5jcmVhdGVFbGVtZW50KCJURVhUQVJFQSIpLHRoaXMuVEVYVEFSRUEuc2V0QXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIsIiIpLHRoaXMuVEVYVEFSRUEu''@;'; + put 'put ''dGFiSW5kZXg9LTEsTzAodGhpcy5URVhUQVJFQSwiaGFuZHNvbnRhYmxlSW5wdXQiKSx0aGlzLnRleHRhcmVhU3R5bGU9dGhpcy5URVhUQVJFQS5zdHlsZSx0aGlzLnRleHRhcmVhU3R5bGUud2lkdGg9MCx0aGlzLnRleHRhcmVhU3R5bGUuaGVpZ2h0PTAsdGhpcy50ZXh0YXJlYVN0eWxlLm92''@;'; + put 'put ''ZXJmbG93WT0idmlzaWJsZSIsdGhpcy5URVhUQVJFQV9QQVJFTlQ9eS5jcmVhdGVFbGVtZW50KCJESVYiKSxPMCh0aGlzLlRFWFRBUkVBX1BBUkVOVCwiaGFuZHNvbnRhYmxlSW5wdXRIb2xkZXIiKSx0bCh0aGlzLlRFWFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpJiZwbCh0aGlzLlRF''@;'; + put 'put ''WFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpLE8wKHRoaXMuVEVYVEFSRUFfUEFSRU5ULHZ0ZSksdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlPXRoaXMuVEVYVEFSRUFfUEFSRU5ULnN0eWxlLHRoaXMuVEVYVEFSRUFfUEFSRU5ULmFwcGVuZENoaWxkKHRoaXMuVEVYVEFSRUEpLHRoaXMu''@;'; + put 'put ''aG90LnJvb3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuVEVYVEFSRUFfUEFSRU5UKX19LHtrZXk6ImhpZGVFZGl0YWJsZUVsZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7KGJiZSgpfHx3YmUoKSkmJih0aGlzLnRleHRhcmVhU3R5bGUudGV4dEluZGVudD0iLTk5OTk5cHgiKSx0aGlzLnRleHRh''@;'; + put 'put ''cmVhU3R5bGUub3ZlcmZsb3dZPSJ2aXNpYmxlIix0aGlzLnRleHRhcmVhUGFyZW50U3R5bGUub3BhY2l0eT0iMCIsdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLmhlaWdodD0iMXB4IixwbCh0aGlzLlRFWFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpLE8wKHRoaXMuVEVYVEFSRUFfUEFS''@;'; + put 'put ''RU5ULHZ0ZSl9fSx7a2V5OiJzaG93RWRpdGFibGVFbGVtZW50Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5oZWlnaHQ9IiIsdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLm92ZXJmbG93PSIiLHRoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5wb3NpdGlvbj0iIix0''@;'; + put 'put ''aGlzLnRleHRhcmVhUGFyZW50U3R5bGVbdGhpcy5ob3QuaXNSdGwoKT8ibGVmdCI6InJpZ2h0Il09ImF1dG8iLHRoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5vcGFjaXR5PSIxIix0aGlzLnRleHRhcmVhU3R5bGUudGV4dEluZGVudD0iIix0aGlzLnRleHRhcmVhU3R5bGUub3ZlcmZsb3dZPSJo''@;'; + put 'put ''aWRkZW4iO3ZhciB5PXRoaXMuVEVYVEFSRUFfUEFSRU5ULmNoaWxkTm9kZXMsQz0hMTtpYSh5Lmxlbmd0aC0xLGZ1bmN0aW9uKEkpe2lmKHRsKHlbSV0sImhhbmRzb250YWJsZUVkaXRvciIpKXJldHVybiBDPSEwLCExfSksdGwodGhpcy5URVhUQVJFQV9QQVJFTlQsdnRlKSYmcGwodGhpcy5U''@;'; + put 'put ''RVhUQVJFQV9QQVJFTlQsdnRlKSxDPyh0aGlzLmxheWVyQ2xhc3M9Imh0X2VkaXRvcl92aXNpYmxlIixPMCh0aGlzLlRFWFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpKToodGhpcy5sYXllckNsYXNzPXRoaXMuZ2V0RWRpdGVkQ2VsbHNMYXllckNsYXNzKCksTzAodGhpcy5URVhUQVJF''@;'; + put 'put ''QV9QQVJFTlQsdGhpcy5sYXllckNsYXNzKSl9fSx7a2V5OiJyZWZyZXNoVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyh0aGlzLnJvdyksQz10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXRDZWxsKHksdGhpcy5jb2wpO3RoaXMub3JpZ2luYWxWYWx1''@;'; + put 'put ''ZT1DLHRoaXMuc2V0VmFsdWUoQyksdGhpcy5yZWZyZXNoRGltZW5zaW9ucygpfX0se2tleToicmVmcmVzaERpbWVuc2lvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtpZih0aGlzLnN0YXRl''@;'; + put 'put ''PT09cmYuRURJVElOR3x8eSl7aWYodGhpcy5URD10aGlzLmdldEVkaXRlZENlbGwoKSwhdGhpcy5URClyZXR1cm4gdm9pZCh5fHx0aGlzLmNsb3NlKCkpO3ZhciBDPXRoaXMuZ2V0RWRpdGVkQ2VsbFJlY3QoKSxJPUMudG9wLGo9Qy5zdGFydCx1ZT1DLndpZHRoLF9lPUMubWF4V2lkdGgsQmU9''@;'; + put 'put ''Qy5oZWlnaHQsTmU9Qy5tYXhIZWlnaHQ7dGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLnRvcD0iIi5jb25jYXQoSSwicHgiKSx0aGlzLnRleHRhcmVhUGFyZW50U3R5bGVbdGhpcy5ob3QuaXNSdGwoKT8icmlnaHQiOiJsZWZ0Il09IiIuY29uY2F0KGosInB4IiksdGhpcy5zaG93RWRpdGFibGVF''@;'; + put 'put ''bGVtZW50KCk7dmFyIEtlPWt3KHRoaXMuVEQsdGhpcy5ob3Qucm9vdFdpbmRvdyk7dGhpcy5URVhUQVJFQS5zdHlsZS5mb250U2l6ZT1LZS5mb250U2l6ZSx0aGlzLlRFWFRBUkVBLnN0eWxlLmZvbnRGYW1pbHk9S2UuZm9udEZhbWlseSx0aGlzLlRFWFRBUkVBLnN0eWxlLmJhY2tncm91bmRD''@;'; + put 'put ''b2xvcj10aGlzLlRELnN0eWxlLmJhY2tncm91bmRDb2xvcjt2YXIgZHQ9a3codGhpcy5URVhUQVJFQSksT3Q9cGFyc2VJbnQoZHQucGFkZGluZ0xlZnQsMTApK3BhcnNlSW50KGR0LnBhZGRpbmdSaWdodCwxMCksJHQ9cGFyc2VJbnQoZHQucGFkZGluZ1RvcCwxMCkrcGFyc2VJbnQoZHQucGFk''@;'; + put 'put ''ZGluZ0JvdHRvbSwxMCksZm49dWUtT3QsTG49QmUtJHQsaXI9X2UtT3QsbXI9TmUtJHQ7dGhpcy5hdXRvUmVzaXplLmluaXQodGhpcy5URVhUQVJFQSx7bWluV2lkdGg6TWF0aC5taW4oZm4saXIpLG1pbkhlaWdodDpNYXRoLm1pbihMbixtciksbWF4V2lkdGg6aXIsbWF4SGVpZ2h0Om1yfSwh''@;'; + put 'put ''MCl9fX0se2tleToiYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5URVhUQVJFQSwiY3V0IixmdW5jdGlvbihDKXtyZXR1cm4gQy5zdG9wUHJvcGFnYXRpb24oKX0pLHRoaXMuZXZlbnRNYW5hZ2Vy''@;'; + put 'put ''LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5URVhUQVJFQSwicGFzdGUiLGZ1bmN0aW9uKEMpe3JldHVybiBDLnN0b3BQcm9wYWdhdGlvbigpfSksS2hlKCkmJnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5URVhUQVJFQSwiZm9jdXNvdXQiLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHkuZmluaXNoRWRpdGluZyghMSl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5IixmdW5jdGlvbigpe3JldHVybiB5LnJlZnJlc2hEaW1lbnNpb25zKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsZnVuY3Rpb24oKXtyZXR1cm4geS5yZWZy''@;'; + put 'put ''ZXNoRGltZW5zaW9ucygpfSksdGhpcy5hZGRIb29rKCJhZnRlckNvbHVtblJlc2l6ZSIsZnVuY3Rpb24oKXt5LnJlZnJlc2hEaW1lbnNpb25zKCkseS5mb2N1cygpfSksdGhpcy5hZGRIb29rKCJhZnRlclJvd1Jlc2l6ZSIsZnVuY3Rpb24oKXt5LnJlZnJlc2hEaW1lbnNpb25zKCkseS5mb2N1''@;'; + put 'put ''cygpfSl9fSx7a2V5OiJhbGxvd0tleUV2ZW50UHJvcGFnYXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCksdGhpcy5jbGVhckhvb2tzKCl9fSx7a2V5OiJyZWdpc3RlclNob3J0Y3V0cyIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEk9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIiksdWU9ZnVuY3Rpb24oKXt5LmhvdC5yb290RG9jdW1lbnQuZXhlY0NvbW1hbmQoImluc2VydFRleHQiLCExLCJcbiIpfTtJLmFkZFNob3J0Y3V0cyhb''@;'; + put 'put ''e2tleXM6W1siVGFiIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKEJlKXt2YXIgTmU9eS5ob3QuZ2V0U2V0dGluZ3MoKSxLZT0iZnVuY3Rpb24iPT10eXBlb2YgTmUudGFiTW92ZXM/TmUudGFiTW92ZXMoQmUpOk5lLnRhYk1vdmVzO3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydChLZS5yb3cs''@;'; + put 'put ''S2UuY29sLCEwKX19LHtrZXlzOltbIlNoaWZ0IiwiVGFiIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKEJlKXt2YXIgTmU9eS5ob3QuZ2V0U2V0dGluZ3MoKSxLZT0iZnVuY3Rpb24iPT10eXBlb2YgTmUudGFiTW92ZXM/TmUudGFiTW92ZXMoQmUpOk5lLnRhYk1vdmVzO3kuaG90LnNlbGVjdGlvbi50''@;'; + put 'put ''cmFuc2Zvcm1TdGFydCgtS2Uucm93LC1LZS5jb2wpfX0se2tleXM6W1siQ29udHJvbCIsIkVudGVyIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHVlKCksITF9LHJ1bk9ubHlJZjpmdW5jdGlvbihCZSl7cmV0dXJuIXkuaG90LnNlbGVjdGlvbi5pc011bHRpcGxlKCkmJiFCZS5hbHRL''@;'; + put 'put ''ZXl9LHJlbGF0aXZlVG9Hcm91cDpaWixwb3NpdGlvbjoiYmVmb3JlIn0se2tleXM6W1siTWV0YSIsIkVudGVyIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHVlKCksITF9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiF5LmhvdC5zZWxlY3Rpb24uaXNNdWx0aXBsZSgpfSxyZWxh''@;'; + put 'put ''dGl2ZVRvR3JvdXA6WloscG9zaXRpb246ImJlZm9yZSJ9LHtrZXlzOltbIkFsdCIsIkVudGVyIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHVlKCksITF9LHJlbGF0aXZlVG9Hcm91cDpaWixwb3NpdGlvbjoiYmVmb3JlIn0se2tleXM6W1siUGFnZVVwIl1dLGNhbGxiYWNrOmZ1bmN0''@;'; + put 'put ''aW9uKCl7eS5ob3Quc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KC15LmhvdC5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJQYWdlRG93biJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCh5LmhvdC5jb3VudFZpc2libGVSb3dzKCks''@;'; + put 'put ''MCl9fSx7a2V5czpbWyJIb21lIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKEJlLE5lKXtCU2UoUFNlKE5lLDEpWzBdLHkuVEVYVEFSRUEpfX0se2tleXM6W1siRW5kIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKEJlLE5lKXtCU2UoUFNlKE5lLDEpWzBdLHkuVEVYVEFSRUEpfX0se2tleXM6W1siQ29udHJv''@;'; + put 'put ''bC9NZXRhIiwiWiJdXSxwcmV2ZW50RGVmYXVsdDohMSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90Ll9yZWdpc3RlclRpbWVvdXQoZnVuY3Rpb24oKXt5LmF1dG9SZXNpemUucmVzaXplKCl9LDEwKX19LHtrZXlzOltbIkNvbnRyb2wvTWV0YSIsIlNoaWZ0IiwiWiJdXSxwcmV2ZW50RGVmYXVs''@;'; + put 'put ''dDohMSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90Ll9yZWdpc3RlclRpbWVvdXQoZnVuY3Rpb24oKXt5LmF1dG9SZXNpemUucmVzaXplKCl9LDEwKX19XSx7cnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIFRvKHkuaG90LmdldFNlbGVjdGVkKCkpfSxncm91cDpWU2V9KX19LHtrZXk6InVu''@;'; + put 'put ''cmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEM9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIik7Qy5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKGxlZSksQy5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKFZTZSksQy5yZW1vdmVTaG9y''@;'; + put 'put ''dGN1dHNCeUdyb3VwKGw2ZSl9fSx7a2V5OiJvbkFmdGVyRG9jdW1lbnRLZXlEb3duIix2YWx1ZTpmdW5jdGlvbih5KXstMT09PVtRby5BUlJPV19VUCxRby5BUlJPV19SSUdIVCxRby5BUlJPV19ET1dOLFFvLkFSUk9XX0xFRlRdLmluZGV4T2YoeS5rZXlDb2RlKSYmdGhpcy5hdXRvUmVzaXpl''@;'; + put 'put ''LnJlc2l6ZShTdHJpbmcuZnJvbUNoYXJDb2RlKHkua2V5Q29kZSkpfX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuInRleHQifX1dKSxofShnTyk7ZnVuY3Rpb24gY3ooZCxnLGgsdix5LEMsSSl7dmFyIGo9W10sdWU9W107SS5jbGFzc05hbWUmJk8wKGcsSS5j''@;'; + put 'put ''bGFzc05hbWUpLEkucmVhZE9ubHkmJmoucHVzaChJLnJlYWRPbmx5Q2VsbENsYXNzTmFtZSksITE9PT1JLnZhbGlkJiZJLmludmFsaWRDZWxsQ2xhc3NOYW1lP2oucHVzaChJLmludmFsaWRDZWxsQ2xhc3NOYW1lKTp1ZS5wdXNoKEkuaW52YWxpZENlbGxDbGFzc05hbWUpLCExPT09SS53b3Jk''@;'; + put 'put ''V3JhcCYmSS5ub1dvcmRXcmFwQ2xhc3NOYW1lJiZqLnB1c2goSS5ub1dvcmRXcmFwQ2xhc3NOYW1lKSwhQyYmSS5wbGFjZWhvbGRlciYmai5wdXNoKEkucGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lKSxwbChnLHVlKSxPMChnLGopfWZ1bmN0aW9uIE93KGQsZyxoLHYseSxDLEkpe2N6LmFwcGx5''@;'; + put 'put ''KHRoaXMsW2QsZyxoLHYseSxDLEldKTt2YXIgaj1DO2lmKCFqJiZJLnBsYWNlaG9sZGVyJiYoaj1JLnBsYWNlaG9sZGVyKSxqPWV1KGopLGQuZ2V0U2V0dGluZ3MoKS50cmltV2hpdGVzcGFjZSYmKGo9ai50cmltKCkpLEkucmVuZGVyZXJUZW1wbGF0ZSl7RHAoZyk7dmFyIHVlPWQucm9vdERv''@;'; + put 'put ''Y3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRFTVBMQVRFIik7dWUuc2V0QXR0cmlidXRlKCJiaW5kIiwie3t9fSIpLHVlLmlubmVySFRNTD1JLnJlbmRlcmVyVGVtcGxhdGUsSFRNTFRlbXBsYXRlRWxlbWVudC5kZWNvcmF0ZSh1ZSksdWUubW9kZWw9ZC5nZXRTb3VyY2VEYXRhQXRSb3coaCksZy5h''@;'; + put 'put ''cHBlbmRDaGlsZCh1ZSl9ZWxzZSBDdyhnLGopfWN6LlJFTkRFUkVSX1RZUEU9ImJhc2UiLE93LlJFTkRFUkVSX1RZUEU9InRleHQiO3ZhciBqU2U9e0NFTExfVFlQRToidGV4dCIsZWRpdG9yOk9TLHJlbmRlcmVyOk93fTtmdW5jdGlvbiB4OShkLGcpe3ZhciBoPW5ldyBpNmUoZCxnfHx7fSxq''@;'; + put 'put ''ZGUpO3JldHVybiBoLmluaXQoKSxofWs4KGpTZSkseDkuZWRpdG9ycz17QmFzZUVkaXRvcjpnT30seDkuQ29yZT1mdW5jdGlvbihkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIG5ldyBpNmUoZCxnLGpkZSl9''@;'; + put 'put ''LHg5LkRlZmF1bHRTZXR0aW5ncz11U2UoKSx4OS5ob29rcz16by5nZXRTaW5nbGV0b24oKSx4OS5wYWNrYWdlTmFtZT0iaGFuZHNvbnRhYmxlIix4OS5idWlsZERhdGU9IjA4LzA3LzIwMjIgMTU6MjQ6MDgiLHg5LnZlcnNpb249IjEyLjEuMiIseDkubGFuZ3VhZ2VzPXtkaWN0aW9uYXJ5S2V5''@;'; + put 'put ''czpxLGdldExhbmd1YWdlRGljdGlvbmFyeTp4a2UsZ2V0TGFuZ3VhZ2VzRGljdGlvbmFyaWVzOmZ1bmN0aW9uIFBYZSgpe3JldHVybiBSWGUoKX0scmVnaXN0ZXJMYW5ndWFnZURpY3Rpb25hcnk6RWtlLGdldFRyYW5zbGF0ZWRQaHJhc2U6VGtlfTtjb25zdCBKbD14OSxpZXQ9WyJjb250YWlu''@;'; + put 'put ''ZXIiXSxjNmU9bmV3IE1hcCxaU2U9IlRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UgYm91bmQgdG8gdGhpcyBjb21wb25lbnQgd2FzIGRlc3Ryb3llZCBhbmQgY2Fubm90IGJlIHVzZWQgcHJvcGVybHkuIjtsZXQgbU89KCgpPT57Y2xhc3MgZHtnZXRJbnN0YW5jZShoKXtjb25zdCB2PWM2ZS5n''@;'; + put 'put ''ZXQoaCk7cmV0dXJuIHYuaXNEZXN0cm95ZWQ/KGNvbnNvbGUud2FybihaU2UpLG51bGwpOnZ9cmVnaXN0ZXJJbnN0YW5jZShoLHYpe3JldHVybiBjNmUuc2V0KGgsdil9cmVtb3ZlSW5zdGFuY2UoaCl7cmV0dXJuIGM2ZS5kZWxldGUoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbiho''@;'; + put 'put ''KXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NvbnN0IG9ldD1PYmplY3Qua2V5cyhKbC5EZWZhdWx0U2V0dGluZ3MpLHpTZT1KbC5ob29rcy5nZXRSZWdpc3RlcmVkKCk7bGV0IEdTZT0oKCk9PntjbGFzcyBk''@;'; + put 'put ''e21lcmdlU2V0dGluZ3MoaCl7Y29uc3Qgdj0ib2JqZWN0Ij09dHlwZW9mIGguc2V0dGluZ3MseT12P2guc2V0dGluZ3M6e307cmV0dXJuIHpTZS5jb25jYXQob2V0KS5mb3JFYWNoKEk9Pntjb25zdCBqPXpTZS5pbmRleE9mKEkpPi0xO2xldCB1ZTt2JiZqJiYodWU9aC5zZXR0aW5nc1tJXSks''@;'; + put 'put ''dm9pZCAwIT09aFtJXSYmKHVlPWhbSV0pLHZvaWQgMCE9PXVlJiYoeVtJXT0iZnVuY3Rpb24iPT10eXBlb2YgdWUmJmo/ZnVuY3Rpb24oLi4uX2Upe3JldHVybiBoLl9uZ1pvbmUucnVuKCgpPT51ZS5hcHBseSh0aGlzLF9lKSl9OnVlKX0pLHl9cHJlcGFyZUNoYW5nZXMoaCl7Y29uc3Qgdj17''@;'; + put 'put ''fTtyZXR1cm4gT2JqZWN0LmtleXMoaCkuZm9yRWFjaChDPT57aC5oYXNPd25Qcm9wZXJ0eShDKSYmKHZbQ109aFtDXS5jdXJyZW50VmFsdWUpfSksdn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0''@;'; + put 'put ''b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksQXRlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuX25nWm9uZT1oLHRoaXMuX2hvdFRhYmxlUmVnaXN0ZXJlcj12LHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXI9eSx0aGlzLl9faG90SW5zdGFuY2U9bnVsbCx0aGlzLmNvbHVt''@;'; + put 'put ''bnNDb21wb25lbnRzPVtdLHRoaXMuaG90SWQ9IiJ9Z2V0IGhvdEluc3RhbmNlKCl7cmV0dXJuIXRoaXMuX19ob3RJbnN0YW5jZXx8dGhpcy5fX2hvdEluc3RhbmNlJiYhdGhpcy5fX2hvdEluc3RhbmNlLmlzRGVzdHJveWVkP3RoaXMuX19ob3RJbnN0YW5jZToodGhpcy5faG90VGFibGVSZWdp''@;'; + put 'put ''c3RlcmVyLnJlbW92ZUluc3RhbmNlKHRoaXMuaG90SWQpLGNvbnNvbGUud2FybihaU2UpLG51bGwpfXNldCBob3RJbnN0YW5jZShoKXt0aGlzLl9faG90SW5zdGFuY2U9aH1uZ0FmdGVyVmlld0luaXQoKXtjb25zdCBoPXRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh0''@;'; + put 'put ''aGlzKTtpZih0aGlzLmNvbHVtbnNDb21wb25lbnRzLmxlbmd0aD4wKXtjb25zdCB2PVtdO3RoaXMuY29sdW1uc0NvbXBvbmVudHMuZm9yRWFjaCh5PT57di5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh5KSl9KSxoLmNvbHVtbnM9dn10aGlzLl9uZ1pvbmUu''@;'; + put 'put ''cnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLmhvdEluc3RhbmNlPW5ldyBKbC5Db3JlKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsaCksdGhpcy5ob3RJZCYmdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlZ2lzdGVySW5zdGFuY2UodGhpcy5ob3RJZCx0aGlzLmhvdEluc3RhbmNl''@;'; + put 'put ''KSx0aGlzLmhvdEluc3RhbmNlLmluaXQoKX0pfW5nT25DaGFuZ2VzKGgpe2lmKG51bGw9PT10aGlzLmhvdEluc3RhbmNlKXJldHVybjtjb25zdCB2PXRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIucHJlcGFyZUNoYW5nZXMoaCk7dGhpcy51cGRhdGVIb3RUYWJsZSh2KX1uZ09uRGVzdHJveSgp''@;'; + put 'put ''e3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuaG90SW5zdGFuY2UmJnRoaXMuaG90SW5zdGFuY2UuZGVzdHJveSgpfSksdGhpcy5ob3RJZCYmdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlbW92ZUluc3RhbmNlKHRoaXMuaG90SWQpfXVwZGF0ZUhvdFRhYmxlKGgp''@;'; + put 'put ''eyF0aGlzLmhvdEluc3RhbmNlfHx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLmhvdEluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKGgsITEpfSl9b25BZnRlckNvbHVtbnNDaGFuZ2UoKXtpZih2b2lkIDAhPT10aGlzLmNvbHVtbnNDb21wb25lbnRzJiZ0aGlzLmNvbHVt''@;'; + put 'put ''bnNDb21wb25lbnRzLmxlbmd0aD4wKXtjb25zdCBoPVtdO3RoaXMuY29sdW1uc0NvbXBvbmVudHMuZm9yRWFjaCh5PT57aC5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh5KSl9KSx0aGlzLnVwZGF0ZUhvdFRhYmxlKHtjb2x1bW5zOmh9KX19b25BZnRlckNv''@;'; + put 'put ''bHVtbnNOdW1iZXJDaGFuZ2UoKXtjb25zdCBoPVtdO3RoaXMuY29sdW1uc0NvbXBvbmVudHMubGVuZ3RoPjAmJnRoaXMuY29sdW1uc0NvbXBvbmVudHMuZm9yRWFjaCh2PT57aC5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh2KSl9KSx0aGlzLnVwZGF0ZUhv''@;'; + put 'put ''dFRhYmxlKHtjb2x1bW5zOmh9KX1hZGRDb2x1bW4oaCl7dGhpcy5jb2x1bW5zQ29tcG9uZW50cy5wdXNoKGgpLHRoaXMub25BZnRlckNvbHVtbnNOdW1iZXJDaGFuZ2UoKX1yZW1vdmVDb2x1bW4oaCl7Y29uc3Qgdj10aGlzLmNvbHVtbnNDb21wb25lbnRzLmluZGV4T2YoaCk7dGhpcy5jb2x1''@;'; + put 'put ''bW5zQ29tcG9uZW50cy5zcGxpY2UodiwxKSx0aGlzLm9uQWZ0ZXJDb2x1bW5zTnVtYmVyQ2hhbmdlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KF9sKSxYdChtTyksWHQoR1NlKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3Jz''@;'; + put 'put ''OltbImhvdC10YWJsZSJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJnZvKGlldCw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LmNvbnRhaW5lcj15LmZpcnN0KX19LGlucHV0czp7aG90SWQ6ImhvdElkIixzZXR0aW5nczoic2V0dGluZ3MiLGFjdGl2ZUhlYWRlckNsYXNz''@;'; + put 'put ''TmFtZToiYWN0aXZlSGVhZGVyQ2xhc3NOYW1lIixhbGxvd0VtcHR5OiJhbGxvd0VtcHR5IixhbGxvd0h0bWw6ImFsbG93SHRtbCIsYWxsb3dJbnNlcnRDb2x1bW46ImFsbG93SW5zZXJ0Q29sdW1uIixhbGxvd0luc2VydFJvdzoiYWxsb3dJbnNlcnRSb3ciLGFsbG93SW52YWxpZDoiYWxsb3dJ''@;'; + put 'put ''bnZhbGlkIixhbGxvd1JlbW92ZUNvbHVtbjoiYWxsb3dSZW1vdmVDb2x1bW4iLGFsbG93UmVtb3ZlUm93OiJhbGxvd1JlbW92ZVJvdyIsYXV0b0NvbHVtblNpemU6ImF1dG9Db2x1bW5TaXplIixhdXRvUm93U2l6ZToiYXV0b1Jvd1NpemUiLGF1dG9XcmFwQ29sOiJhdXRvV3JhcENvbCIsYXV0''@;'; + put 'put ''b1dyYXBSb3c6ImF1dG9XcmFwUm93IixiaW5kUm93c1dpdGhIZWFkZXJzOiJiaW5kUm93c1dpdGhIZWFkZXJzIixjZWxsOiJjZWxsIixjZWxsczoiY2VsbHMiLGNoZWNrZWRUZW1wbGF0ZToiY2hlY2tlZFRlbXBsYXRlIixjbGFzc05hbWU6ImNsYXNzTmFtZSIsY29sSGVhZGVyczoiY29sSGVh''@;'; + put 'put ''ZGVycyIsY29sbGFwc2libGVDb2x1bW5zOiJjb2xsYXBzaWJsZUNvbHVtbnMiLGNvbHVtbkhlYWRlckhlaWdodDoiY29sdW1uSGVhZGVySGVpZ2h0Iixjb2x1bW5zOiJjb2x1bW5zIixjb2x1bW5Tb3J0aW5nOiJjb2x1bW5Tb3J0aW5nIixjb2x1bW5TdW1tYXJ5OiJjb2x1bW5TdW1tYXJ5Iixj''@;'; + put 'put ''b2xXaWR0aHM6ImNvbFdpZHRocyIsY29tbWVudGVkQ2VsbENsYXNzTmFtZToiY29tbWVudGVkQ2VsbENsYXNzTmFtZSIsY29tbWVudHM6ImNvbW1lbnRzIixjb250ZXh0TWVudToiY29udGV4dE1lbnUiLGNvcHlhYmxlOiJjb3B5YWJsZSIsY29weVBhc3RlOiJjb3B5UGFzdGUiLGNvcnJlY3RG''@;'; + put 'put ''b3JtYXQ6ImNvcnJlY3RGb3JtYXQiLGN1cnJlbnRDb2xDbGFzc05hbWU6ImN1cnJlbnRDb2xDbGFzc05hbWUiLGN1cnJlbnRIZWFkZXJDbGFzc05hbWU6ImN1cnJlbnRIZWFkZXJDbGFzc05hbWUiLGN1cnJlbnRSb3dDbGFzc05hbWU6ImN1cnJlbnRSb3dDbGFzc05hbWUiLGN1c3RvbUJvcmRl''@;'; + put 'put ''cnM6ImN1c3RvbUJvcmRlcnMiLGRhdGE6ImRhdGEiLGRhdGFTY2hlbWE6ImRhdGFTY2hlbWEiLGRhdGVGb3JtYXQ6ImRhdGVGb3JtYXQiLGRlZmF1bHREYXRlOiJkZWZhdWx0RGF0ZSIsZGlzYWJsZVZpc3VhbFNlbGVjdGlvbjoiZGlzYWJsZVZpc3VhbFNlbGVjdGlvbiIsZHJhZ1RvU2Nyb2xs''@;'; + put 'put ''OiJkcmFnVG9TY3JvbGwiLGRyb3Bkb3duTWVudToiZHJvcGRvd25NZW51IixlZGl0b3I6ImVkaXRvciIsZW50ZXJCZWdpbnNFZGl0aW5nOiJlbnRlckJlZ2luc0VkaXRpbmciLGVudGVyTW92ZXM6ImVudGVyTW92ZXMiLGZpbGxIYW5kbGU6ImZpbGxIYW5kbGUiLGZpbHRlcjoiZmlsdGVyIixm''@;'; + put 'put ''aWx0ZXJpbmdDYXNlU2Vuc2l0aXZlOiJmaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlIixmaWx0ZXJzOiJmaWx0ZXJzIixmaXhlZENvbHVtbnNMZWZ0OiJmaXhlZENvbHVtbnNMZWZ0IixmaXhlZENvbHVtbnNTdGFydDoiZml4ZWRDb2x1bW5zU3RhcnQiLGZpeGVkUm93c0JvdHRvbToiZml4ZWRSb3dz''@;'; + put 'put ''Qm90dG9tIixmaXhlZFJvd3NUb3A6ImZpeGVkUm93c1RvcCIsZm9ybXVsYXM6ImZvcm11bGFzIixmcmFnbWVudFNlbGVjdGlvbjoiZnJhZ21lbnRTZWxlY3Rpb24iLGhlaWdodDoiaGVpZ2h0IixoaWRkZW5Db2x1bW5zOiJoaWRkZW5Db2x1bW5zIixoaWRkZW5Sb3dzOiJoaWRkZW5Sb3dzIixp''@;'; + put 'put ''bnZhbGlkQ2VsbENsYXNzTmFtZToiaW52YWxpZENlbGxDbGFzc05hbWUiLGxhYmVsOiJsYWJlbCIsbGFuZ3VhZ2U6Imxhbmd1YWdlIixsYXlvdXREaXJlY3Rpb246ImxheW91dERpcmVjdGlvbiIsbGljZW5zZUtleToibGljZW5zZUtleSIsbWFudWFsQ29sdW1uRnJlZXplOiJtYW51YWxDb2x1''@;'; + put 'put ''bW5GcmVlemUiLG1hbnVhbENvbHVtbk1vdmU6Im1hbnVhbENvbHVtbk1vdmUiLG1hbnVhbENvbHVtblJlc2l6ZToibWFudWFsQ29sdW1uUmVzaXplIixtYW51YWxSb3dNb3ZlOiJtYW51YWxSb3dNb3ZlIixtYW51YWxSb3dSZXNpemU6Im1hbnVhbFJvd1Jlc2l6ZSIsbWF4Q29sczoibWF4Q29s''@;'; + put 'put ''cyIsbWF4Um93czoibWF4Um93cyIsbWVyZ2VDZWxsczoibWVyZ2VDZWxscyIsbWluQ29sczoibWluQ29scyIsbWluUm93czoibWluUm93cyIsbWluU3BhcmVDb2xzOiJtaW5TcGFyZUNvbHMiLG1pblNwYXJlUm93czoibWluU3BhcmVSb3dzIixtdWx0aUNvbHVtblNvcnRpbmc6Im11bHRpQ29s''@;'; + put 'put ''dW1uU29ydGluZyIsbmVzdGVkSGVhZGVyczoibmVzdGVkSGVhZGVycyIsbmVzdGVkUm93czoibmVzdGVkUm93cyIsbm9Xb3JkV3JhcENsYXNzTmFtZToibm9Xb3JkV3JhcENsYXNzTmFtZSIsbnVtZXJpY0Zvcm1hdDoibnVtZXJpY0Zvcm1hdCIsb2JzZXJ2ZURPTVZpc2liaWxpdHk6Im9ic2Vy''@;'; + put 'put ''dmVET01WaXNpYmlsaXR5IixvdXRzaWRlQ2xpY2tEZXNlbGVjdHM6Im91dHNpZGVDbGlja0Rlc2VsZWN0cyIscGVyc2lzdGVudFN0YXRlOiJwZXJzaXN0ZW50U3RhdGUiLHBsYWNlaG9sZGVyOiJwbGFjZWhvbGRlciIscGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lOiJwbGFjZWhvbGRlckNlbGxD''@;'; + put 'put ''bGFzc05hbWUiLHByZXZlbnRPdmVyZmxvdzoicHJldmVudE92ZXJmbG93IixwcmV2ZW50V2hlZWw6InByZXZlbnRXaGVlbCIscmVhZE9ubHk6InJlYWRPbmx5IixyZWFkT25seUNlbGxDbGFzc05hbWU6InJlYWRPbmx5Q2VsbENsYXNzTmFtZSIscmVuZGVyQWxsUm93czoicmVuZGVyQWxsUm93''@;'; + put 'put ''cyIscmVuZGVyZXI6InJlbmRlcmVyIixyb3dIZWFkZXJzOiJyb3dIZWFkZXJzIixyb3dIZWFkZXJXaWR0aDoicm93SGVhZGVyV2lkdGgiLHJvd0hlaWdodHM6InJvd0hlaWdodHMiLHNlYXJjaDoic2VhcmNoIixzZWxlY3Rpb25Nb2RlOiJzZWxlY3Rpb25Nb2RlIixzZWxlY3RPcHRpb25zOiJz''@;'; + put 'put ''ZWxlY3RPcHRpb25zIixza2lwQ29sdW1uT25QYXN0ZToic2tpcENvbHVtbk9uUGFzdGUiLHNraXBSb3dPblBhc3RlOiJza2lwUm93T25QYXN0ZSIsc29ydEJ5UmVsZXZhbmNlOiJzb3J0QnlSZWxldmFuY2UiLHNvdXJjZToic291cmNlIixzdGFydENvbHM6InN0YXJ0Q29scyIsc3RhcnRSb3dz''@;'; + put 'put ''OiJzdGFydFJvd3MiLHN0cmV0Y2hIOiJzdHJldGNoSCIsc3RyaWN0OiJzdHJpY3QiLHRhYmxlQ2xhc3NOYW1lOiJ0YWJsZUNsYXNzTmFtZSIsdGFiTW92ZXM6InRhYk1vdmVzIix0aXRsZToidGl0bGUiLHRyaW1Ecm9wZG93bjoidHJpbURyb3Bkb3duIix0cmltUm93czoidHJpbVJvd3MiLHRy''@;'; + put 'put ''aW1XaGl0ZXNwYWNlOiJ0cmltV2hpdGVzcGFjZSIsdHlwZToidHlwZSIsdW5jaGVja2VkVGVtcGxhdGU6InVuY2hlY2tlZFRlbXBsYXRlIix1bmRvOiJ1bmRvIix2YWxpZGF0b3I6InZhbGlkYXRvciIsdmlld3BvcnRDb2x1bW5SZW5kZXJpbmdPZmZzZXQ6InZpZXdwb3J0Q29sdW1uUmVuZGVy''@;'; + put 'put ''aW5nT2Zmc2V0Iix2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDoidmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQiLHZpc2libGVSb3dzOiJ2aXNpYmxlUm93cyIsd2lkdGg6IndpZHRoIix3b3JkV3JhcDoid29yZFdyYXAiLGFmdGVyQWRkQ2hpbGQ6ImFmdGVyQWRkQ2hpbGQiLGFmdGVyQXV0''@;'; + put 'put ''b2ZpbGw6ImFmdGVyQXV0b2ZpbGwiLGFmdGVyQmVnaW5FZGl0aW5nOiJhZnRlckJlZ2luRWRpdGluZyIsYWZ0ZXJDZWxsTWV0YVJlc2V0OiJhZnRlckNlbGxNZXRhUmVzZXQiLGFmdGVyQ2hhbmdlOiJhZnRlckNoYW5nZSIsYWZ0ZXJDaGFuZ2VzT2JzZXJ2ZWQ6ImFmdGVyQ2hhbmdlc09ic2Vy''@;'; + put 'put ''dmVkIixhZnRlckNvbHVtbkNvbGxhcHNlOiJhZnRlckNvbHVtbkNvbGxhcHNlIixhZnRlckNvbHVtbkV4cGFuZDoiYWZ0ZXJDb2x1bW5FeHBhbmQiLGFmdGVyQ29sdW1uTW92ZToiYWZ0ZXJDb2x1bW5Nb3ZlIixhZnRlckNvbHVtblJlc2l6ZToiYWZ0ZXJDb2x1bW5SZXNpemUiLGFmdGVyQ29s''@;'; + put 'put ''dW1uU29ydDoiYWZ0ZXJDb2x1bW5Tb3J0IixhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnM6ImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsYWZ0ZXJDb250ZXh0TWVudUhpZGU6ImFmdGVyQ29udGV4dE1lbnVIaWRlIixhZnRlckNvbnRleHRNZW51U2hvdzoiYWZ0ZXJDb250''@;'; + put 'put ''ZXh0TWVudVNob3ciLGFmdGVyQ29weToiYWZ0ZXJDb3B5IixhZnRlckNvcHlMaW1pdDoiYWZ0ZXJDb3B5TGltaXQiLGFmdGVyQ3JlYXRlQ29sOiJhZnRlckNyZWF0ZUNvbCIsYWZ0ZXJDcmVhdGVSb3c6ImFmdGVyQ3JlYXRlUm93IixhZnRlckN1dDoiYWZ0ZXJDdXQiLGFmdGVyRGVzZWxlY3Q6''@;'; + put 'put ''ImFmdGVyRGVzZWxlY3QiLGFmdGVyRGVzdHJveToiYWZ0ZXJEZXN0cm95IixhZnRlckRldGFjaENoaWxkOiJhZnRlckRldGFjaENoaWxkIixhZnRlckRvY3VtZW50S2V5RG93bjoiYWZ0ZXJEb2N1bWVudEtleURvd24iLGFmdGVyRHJhd1NlbGVjdGlvbjoiYWZ0ZXJEcmF3U2VsZWN0aW9uIixh''@;'; + put 'put ''ZnRlckRyb3Bkb3duTWVudURlZmF1bHRPcHRpb25zOiJhZnRlckRyb3Bkb3duTWVudURlZmF1bHRPcHRpb25zIixhZnRlckRyb3Bkb3duTWVudUhpZGU6ImFmdGVyRHJvcGRvd25NZW51SGlkZSIsYWZ0ZXJEcm9wZG93bk1lbnVTaG93OiJhZnRlckRyb3Bkb3duTWVudVNob3ciLGFmdGVyRmls''@;'; + put 'put ''dGVyOiJhZnRlckZpbHRlciIsYWZ0ZXJHZXRDZWxsTWV0YToiYWZ0ZXJHZXRDZWxsTWV0YSIsYWZ0ZXJHZXRDb2xIZWFkZXI6ImFmdGVyR2V0Q29sSGVhZGVyIixhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVyczoiYWZ0ZXJHZXRDb2x1bW5IZWFkZXJSZW5kZXJlcnMiLGFmdGVyR2V0Um93''@;'; + put 'put ''SGVhZGVyOiJhZnRlckdldFJvd0hlYWRlciIsYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnM6ImFmdGVyR2V0Um93SGVhZGVyUmVuZGVyZXJzIixhZnRlckhpZGVDb2x1bW5zOiJhZnRlckhpZGVDb2x1bW5zIixhZnRlckhpZGVSb3dzOiJhZnRlckhpZGVSb3dzIixhZnRlckluaXQ6ImFmdGVy''@;'; + put 'put ''SW5pdCIsYWZ0ZXJMYW5ndWFnZUNoYW5nZToiYWZ0ZXJMYW5ndWFnZUNoYW5nZSIsYWZ0ZXJMaXN0ZW46ImFmdGVyTGlzdGVuIixhZnRlckxvYWREYXRhOiJhZnRlckxvYWREYXRhIixhZnRlck1lcmdlQ2VsbHM6ImFmdGVyTWVyZ2VDZWxscyIsYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1FbmQ6ImFm''@;'; + put 'put ''dGVyTW9kaWZ5VHJhbnNmb3JtRW5kIixhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0OiJhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0IixhZnRlck1vbWVudHVtU2Nyb2xsOiJhZnRlck1vbWVudHVtU2Nyb2xsIixhZnRlck9uQ2VsbENvbnRleHRNZW51OiJhZnRlck9uQ2VsbENvbnRleHRNZW51''@;'; + put 'put ''IixhZnRlck9uQ2VsbENvcm5lckRibENsaWNrOiJhZnRlck9uQ2VsbENvcm5lckRibENsaWNrIixhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93bjoiYWZ0ZXJPbkNlbGxDb3JuZXJNb3VzZURvd24iLGFmdGVyT25DZWxsTW91c2VEb3duOiJhZnRlck9uQ2VsbE1vdXNlRG93biIsYWZ0ZXJPbkNl''@;'; + put 'put ''bGxNb3VzZU91dDoiYWZ0ZXJPbkNlbGxNb3VzZU91dCIsYWZ0ZXJPbkNlbGxNb3VzZU92ZXI6ImFmdGVyT25DZWxsTW91c2VPdmVyIixhZnRlck9uQ2VsbE1vdXNlVXA6ImFmdGVyT25DZWxsTW91c2VVcCIsYWZ0ZXJQYXN0ZToiYWZ0ZXJQYXN0ZSIsYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQ6''@;'; + put 'put ''ImFmdGVyUGx1Z2luc0luaXRpYWxpemVkIixhZnRlclJlZG86ImFmdGVyUmVkbyIsYWZ0ZXJSZWRvU3RhY2tDaGFuZ2U6ImFmdGVyUmVkb1N0YWNrQ2hhbmdlIixhZnRlclJlZnJlc2hEaW1lbnNpb25zOiJhZnRlclJlZnJlc2hEaW1lbnNpb25zIixhZnRlclJlbW92ZUNlbGxNZXRhOiJhZnRl''@;'; + put 'put ''clJlbW92ZUNlbGxNZXRhIixhZnRlclJlbW92ZUNvbDoiYWZ0ZXJSZW1vdmVDb2wiLGFmdGVyUmVtb3ZlUm93OiJhZnRlclJlbW92ZVJvdyIsYWZ0ZXJSZW5kZXI6ImFmdGVyUmVuZGVyIixhZnRlclJlbmRlcmVyOiJhZnRlclJlbmRlcmVyIixhZnRlclJvd01vdmU6ImFmdGVyUm93TW92ZSIs''@;'; + put 'put ''YWZ0ZXJSb3dSZXNpemU6ImFmdGVyUm93UmVzaXplIixhZnRlclNjcm9sbEhvcml6b250YWxseToiYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiLGFmdGVyU2Nyb2xsVmVydGljYWxseToiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IixhZnRlclNlbGVjdGlvbjoiYWZ0ZXJTZWxlY3Rpb24iLGFmdGVy''@;'; + put 'put ''U2VsZWN0aW9uQnlQcm9wOiJhZnRlclNlbGVjdGlvbkJ5UHJvcCIsYWZ0ZXJTZWxlY3Rpb25FbmQ6ImFmdGVyU2VsZWN0aW9uRW5kIixhZnRlclNlbGVjdGlvbkVuZEJ5UHJvcDoiYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3AiLGFmdGVyU2V0Q2VsbE1ldGE6ImFmdGVyU2V0Q2VsbE1ldGEiLGFm''@;'; + put 'put ''dGVyU2V0RGF0YUF0Q2VsbDoiYWZ0ZXJTZXREYXRhQXRDZWxsIixhZnRlclNldERhdGFBdFJvd1Byb3A6ImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsYWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsOiJhZnRlclNldFNvdXJjZURhdGFBdENlbGwiLGFmdGVyVHJpbVJvdzoiYWZ0ZXJUcmltUm93Iixh''@;'; + put 'put ''ZnRlclVuZG86ImFmdGVyVW5kbyIsYWZ0ZXJVbmRvU3RhY2tDaGFuZ2U6ImFmdGVyVW5kb1N0YWNrQ2hhbmdlIixhZnRlclVuaGlkZUNvbHVtbnM6ImFmdGVyVW5oaWRlQ29sdW1ucyIsYWZ0ZXJVbmhpZGVSb3dzOiJhZnRlclVuaGlkZVJvd3MiLGFmdGVyVW5saXN0ZW46ImFmdGVyVW5saXN0''@;'; + put 'put ''ZW4iLGFmdGVyVW5tZXJnZUNlbGxzOiJhZnRlclVubWVyZ2VDZWxscyIsYWZ0ZXJVbnRyaW1Sb3c6ImFmdGVyVW50cmltUm93IixhZnRlclVwZGF0ZVNldHRpbmdzOiJhZnRlclVwZGF0ZVNldHRpbmdzIixhZnRlclZhbGlkYXRlOiJhZnRlclZhbGlkYXRlIixhZnRlclZpZXdwb3J0Q29sdW1u''@;'; + put 'put ''Q2FsY3VsYXRvck92ZXJyaWRlOiJhZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlIixhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlOiJhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlIixhZnRlclZpZXdSZW5kZXI6ImFmdGVyVmlld1JlbmRlciIs''@;'; + put 'put ''YmVmb3JlQWRkQ2hpbGQ6ImJlZm9yZUFkZENoaWxkIixiZWZvcmVBdXRvZmlsbDoiYmVmb3JlQXV0b2ZpbGwiLGJlZm9yZUF1dG9maWxsSW5zaWRlUG9wdWxhdGU6ImJlZm9yZUF1dG9maWxsSW5zaWRlUG9wdWxhdGUiLGJlZm9yZUNlbGxBbGlnbm1lbnQ6ImJlZm9yZUNlbGxBbGlnbm1lbnQi''@;'; + put 'put ''LGJlZm9yZUNoYW5nZToiYmVmb3JlQ2hhbmdlIixiZWZvcmVDaGFuZ2VSZW5kZXI6ImJlZm9yZUNoYW5nZVJlbmRlciIsYmVmb3JlQ29sdW1uQ29sbGFwc2U6ImJlZm9yZUNvbHVtbkNvbGxhcHNlIixiZWZvcmVDb2x1bW5FeHBhbmQ6ImJlZm9yZUNvbHVtbkV4cGFuZCIsYmVmb3JlQ29sdW1u''@;'; + put 'put ''TW92ZToiYmVmb3JlQ29sdW1uTW92ZSIsYmVmb3JlQ29sdW1uUmVzaXplOiJiZWZvcmVDb2x1bW5SZXNpemUiLGJlZm9yZUNvbHVtblNvcnQ6ImJlZm9yZUNvbHVtblNvcnQiLGJlZm9yZUNvbnRleHRNZW51U2V0SXRlbXM6ImJlZm9yZUNvbnRleHRNZW51U2V0SXRlbXMiLGJlZm9yZUNvbnRl''@;'; + put 'put ''eHRNZW51U2hvdzoiYmVmb3JlQ29udGV4dE1lbnVTaG93IixiZWZvcmVDb3B5OiJiZWZvcmVDb3B5IixiZWZvcmVDcmVhdGVDb2w6ImJlZm9yZUNyZWF0ZUNvbCIsYmVmb3JlQ3JlYXRlUm93OiJiZWZvcmVDcmVhdGVSb3ciLGJlZm9yZUN1dDoiYmVmb3JlQ3V0IixiZWZvcmVEZXRhY2hDaGls''@;'; + put 'put ''ZDoiYmVmb3JlRGV0YWNoQ2hpbGQiLGJlZm9yZURyYXdCb3JkZXJzOiJiZWZvcmVEcmF3Qm9yZGVycyIsYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXM6ImJlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zIixiZWZvcmVEcm9wZG93bk1lbnVTaG93OiJiZWZvcmVEcm9wZG93bk1lbnVTaG93Iixi''@;'; + put 'put ''ZWZvcmVGaWx0ZXI6ImJlZm9yZUZpbHRlciIsYmVmb3JlR2V0Q2VsbE1ldGE6ImJlZm9yZUdldENlbGxNZXRhIixiZWZvcmVIaWRlQ29sdW1uczoiYmVmb3JlSGlkZUNvbHVtbnMiLGJlZm9yZUhpZGVSb3dzOiJiZWZvcmVIaWRlUm93cyIsYmVmb3JlSW5pdDoiYmVmb3JlSW5pdCIsYmVmb3Jl''@;'; + put 'put ''SW5pdFdhbGtvbnRhYmxlOiJiZWZvcmVJbml0V2Fsa29udGFibGUiLGJlZm9yZUtleURvd246ImJlZm9yZUtleURvd24iLGJlZm9yZUxhbmd1YWdlQ2hhbmdlOiJiZWZvcmVMYW5ndWFnZUNoYW5nZSIsYmVmb3JlTG9hZERhdGE6ImJlZm9yZUxvYWREYXRhIixiZWZvcmVNZXJnZUNlbGxzOiJi''@;'; + put 'put ''ZWZvcmVNZXJnZUNlbGxzIixiZWZvcmVPbkNlbGxDb250ZXh0TWVudToiYmVmb3JlT25DZWxsQ29udGV4dE1lbnUiLGJlZm9yZU9uQ2VsbE1vdXNlRG93bjoiYmVmb3JlT25DZWxsTW91c2VEb3duIixiZWZvcmVPbkNlbGxNb3VzZU91dDoiYmVmb3JlT25DZWxsTW91c2VPdXQiLGJlZm9yZU9u''@;'; + put 'put ''Q2VsbE1vdXNlT3ZlcjoiYmVmb3JlT25DZWxsTW91c2VPdmVyIixiZWZvcmVPbkNlbGxNb3VzZVVwOiJiZWZvcmVPbkNlbGxNb3VzZVVwIixiZWZvcmVQYXN0ZToiYmVmb3JlUGFzdGUiLGJlZm9yZVJlZG86ImJlZm9yZVJlZG8iLGJlZm9yZVJlZG9TdGFja0NoYW5nZToiYmVmb3JlUmVkb1N0''@;'; + put 'put ''YWNrQ2hhbmdlIixiZWZvcmVSZWZyZXNoRGltZW5zaW9uczoiYmVmb3JlUmVmcmVzaERpbWVuc2lvbnMiLGJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzOiJiZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIsYmVmb3JlUmVtb3ZlQ2VsbE1ldGE6ImJlZm9yZVJlbW92ZUNlbGxNZXRhIixiZWZv''@;'; + put 'put ''cmVSZW1vdmVDb2w6ImJlZm9yZVJlbW92ZUNvbCIsYmVmb3JlUmVtb3ZlUm93OiJiZWZvcmVSZW1vdmVSb3ciLGJlZm9yZVJlbmRlcjoiYmVmb3JlUmVuZGVyIixiZWZvcmVSZW5kZXJlcjoiYmVmb3JlUmVuZGVyZXIiLGJlZm9yZVJvd01vdmU6ImJlZm9yZVJvd01vdmUiLGJlZm9yZVJvd1Jl''@;'; + put 'put ''c2l6ZToiYmVmb3JlUm93UmVzaXplIixiZWZvcmVTZXRDZWxsTWV0YToiYmVmb3JlU2V0Q2VsbE1ldGEiLGJlZm9yZVNldFJhbmdlRW5kOiJiZWZvcmVTZXRSYW5nZUVuZCIsYmVmb3JlU2V0UmFuZ2VTdGFydDoiYmVmb3JlU2V0UmFuZ2VTdGFydCIsYmVmb3JlU2V0UmFuZ2VTdGFydE9ubHk6''@;'; + put 'put ''ImJlZm9yZVNldFJhbmdlU3RhcnRPbmx5IixiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGg6ImJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aCIsYmVmb3JlVG91Y2hTY3JvbGw6ImJlZm9yZVRvdWNoU2Nyb2xsIixiZWZvcmVUcmltUm93OiJiZWZvcmVUcmltUm93IixiZWZvcmVVbmRvOiJi''@;'; + put 'put ''ZWZvcmVVbmRvIixiZWZvcmVVbmRvU3RhY2tDaGFuZ2U6ImJlZm9yZVVuZG9TdGFja0NoYW5nZSIsYmVmb3JlVW5oaWRlQ29sdW1uczoiYmVmb3JlVW5oaWRlQ29sdW1ucyIsYmVmb3JlVW5oaWRlUm93czoiYmVmb3JlVW5oaWRlUm93cyIsYmVmb3JlVW5tZXJnZUNlbGxzOiJiZWZvcmVVbm1l''@;'; + put 'put ''cmdlQ2VsbHMiLGJlZm9yZVVudHJpbVJvdzoiYmVmb3JlVW50cmltUm93IixiZWZvcmVWYWxpZGF0ZToiYmVmb3JlVmFsaWRhdGUiLGJlZm9yZVZhbHVlUmVuZGVyOiJiZWZvcmVWYWx1ZVJlbmRlciIsYmVmb3JlVmlld1JlbmRlcjoiYmVmb3JlVmlld1JlbmRlciIsY29uc3RydWN0OiJjb25z''@;'; + put 'put ''dHJ1Y3QiLGluaXQ6ImluaXQiLG1vZGlmeUF1dG9Db2x1bW5TaXplU2VlZDoibW9kaWZ5QXV0b0NvbHVtblNpemVTZWVkIixtb2RpZnlBdXRvZmlsbFJhbmdlOiJtb2RpZnlBdXRvZmlsbFJhbmdlIixtb2RpZnlDb2xIZWFkZXI6Im1vZGlmeUNvbEhlYWRlciIsbW9kaWZ5Q29sdW1uSGVhZGVy''@;'; + put 'put ''SGVpZ2h0OiJtb2RpZnlDb2x1bW5IZWFkZXJIZWlnaHQiLG1vZGlmeUNvbFdpZHRoOiJtb2RpZnlDb2xXaWR0aCIsbW9kaWZ5Q29weWFibGVSYW5nZToibW9kaWZ5Q29weWFibGVSYW5nZSIsbW9kaWZ5RGF0YToibW9kaWZ5RGF0YSIsbW9kaWZ5R2V0Q2VsbENvb3JkczoibW9kaWZ5R2V0Q2Vs''@;'; + put 'put ''bENvb3JkcyIsbW9kaWZ5Um93RGF0YToibW9kaWZ5Um93RGF0YSIsbW9kaWZ5Um93SGVhZGVyOiJtb2RpZnlSb3dIZWFkZXIiLG1vZGlmeVJvd0hlYWRlcldpZHRoOiJtb2RpZnlSb3dIZWFkZXJXaWR0aCIsbW9kaWZ5Um93SGVpZ2h0OiJtb2RpZnlSb3dIZWlnaHQiLG1vZGlmeVNvdXJjZURh''@;'; + put 'put ''dGE6Im1vZGlmeVNvdXJjZURhdGEiLG1vZGlmeVRyYW5zZm9ybUVuZDoibW9kaWZ5VHJhbnNmb3JtRW5kIixtb2RpZnlUcmFuc2Zvcm1TdGFydDoibW9kaWZ5VHJhbnNmb3JtU3RhcnQiLHBlcnNpc3RlbnRTdGF0ZUxvYWQ6InBlcnNpc3RlbnRTdGF0ZUxvYWQiLHBlcnNpc3RlbnRTdGF0ZVJl''@;'; + put 'put ''c2V0OiJwZXJzaXN0ZW50U3RhdGVSZXNldCIscGVyc2lzdGVudFN0YXRlU2F2ZToicGVyc2lzdGVudFN0YXRlU2F2ZSJ9LGZlYXR1cmVzOltobyhbbU8sR1NlXSksUDJdLGRlY2xzOjIsdmFyczoxLGNvbnN0czpbWzMsImlkIl0sWyJjb250YWluZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24o''@;'; + put 'put ''aCx2KXsxJmgmJkNyKDAsImRpdiIsMCwxKSwyJmgmJlR0KCJpZCIsdi5ob3RJZCl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGY2ZT0oKCk9PntjbGFzcyBke3N0YXRpYyBmb3JSb290KCl7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOlttT119fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVu''@;'; + put 'put ''Y3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHt9KSxkLnZlcnNpb249IjEyLjEuMiIsZH0pKCk7ZnVuY3Rpb24gYWV0KGQsZyl7MSZkJiYoaXQoMCwic3BhbiIsNiksVXQoMSwiIExvYWRpbmcuLi4gIiksc3QoKSl9ZnVu''@;'; + put 'put ''Y3Rpb24gc2V0KGQsZyl7MSZkJiYoaXQoMCwiZGl2IikoMSwiaDMiKSxVdCgyLCJMb2FkaW5nIHN1Ym1pdHRlZCB0YWJsZSIpLHN0KCkoKSl9ZnVuY3Rpb24gdWV0KGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2Iiw0KSxybigxLGFldCwyLDAsInNwYW4iLDUpLHJuKDIsc2V0LDMsMCwiZGl2Iiwz''@;'; + put 'put ''KSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKTt1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKX19Y29uc3QgY2V0PWZ1bmN0aW9uKGQsZyl7cmV0dXJue3JlamVjdGVkOmQsYWNjZXB0ZWQ6Z319O2Z1bmN0aW9uIGZldChkLGcpe2lmKDEmZCl7Y29u''@;'; + put 'put ''c3QgaD1faSgpO2l0KDAsImRpdiIpKDEsImRpdiIsNykoMiwiZGl2Iiw4KSgzLCJoNCIsOSksVXQoNCwiU3RhZ2VkIERhdGEiKSxzdCgpKCkoKSxpdCg1LCJkaXYiLDEwKSg2LCJkaXYiLDExKSg3LCJkaXYiLDEyKSg4LCJkaXYiLDgpLFV0KDksIiBCYXNpYyBTdWJtaXR0ZWQgRGV0YWlscyAi''@;'; + put 'put ''KSxzdCgpKCksaXQoMTAsImRpdiIpKDExLCJzcGFuIiksVXQoMTIsIlRhYmxlIElkOiIpLHN0KCksaXQoMTMsInN0cm9uZyIpKDE0LCJzcGFuIiksVXQoMTUpLHN0KCkoKSgpLGl0KDE2LCJkaXYiKSgxNywic3BhbiIpLFV0KDE4LCJCYXNlIFRhYmxlOiIpLHN0KCksaXQoMTksImEiLDEzKSxZ''@;'; + put 'put ''bigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS52aWV3ZXJUYWJsZVNjcmVlbigpKX0pLFV0KDIwKSxzdCgpKCksaXQoMjEsImRpdiIpKDIyLCJzcGFuIiksVXQoMjMsIlN1Ym1pdCBEYXRlOiIpLHN0KCksaXQoMjQsInNwYW4iLDE0KSxVdCgyNSksc3QoKSgpLGl0KDI2''@;'; + put 'put ''LCJkaXYiKSgyNywic3BhbiIpLFV0KDI4LCJSZXZpZXcgU3RhdHVzOiIpLHN0KCksaXQoMjksInNwYW4iLDE1KSxVdCgzMCksc3QoKSgpKCksaXQoMzEsImRpdiIsMTYpKDMyLCJkaXYiLDEyKSgzMywiZGl2Iiw4KSxVdCgzNCwiQWN0aW9ucyIpLHN0KCkoKSxpdCgzNSwiZGl2IiwxNykoMzYs''@;'; + put 'put ''ImRpdiIsMTgpKDM3LCJidXR0b24iLDE5KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS52aWV3ZXJUYWJsZVNjcmVlbigpKX0pLFV0KDM4LCIgR28gdG8gYmFzZSB0YWJsZSBzY3JlZW4gIiksc3QoKSxpdCgzOSwiYnV0dG9uIiwyMCksWW4oImNsaWNrIixmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBydChoKSxhKEt0KCkuYXBwcm92ZVRhYmxlU2NyZWVuKCkpfSksVXQoNDAsIiBHbyB0byBhcHByb3ZhbHMgc2NyZWVuICIpLHN0KCksaXQoNDEsImJ1dHRvbiIsMjEpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLmdvQmFjaygpKX0pLFV0''@;'; + put 'put ''KDQyLCIgR28gYmFjayB0byBlZGl0b3IgIiksc3QoKSxpdCg0MywiYnV0dG9uIiwyMiksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoKTtyZXR1cm4gYSh5LmRvd25sb2FkKG51bGw9PXkudGFibGVEZXRhaWxzP251bGw6eS50YWJsZURldGFpbHMuVEFCTEVfSUQpKX0p''@;'; + put 'put ''LENyKDQ0LCJjbHItaWNvbiIsMjMpLHN0KCkoKSgpKCkoKSxpdCg0NSwiZGl2IiwyNCksQ3IoNDYsImhvdC10YWJsZSIsMjUpLHN0KCksQ3IoNDcsImRpdiIsMjYpLHN0KCl9aWYoMiZkKXtjb25zdCBoPUt0KCk7dXQoMTUpLEppKCIgIixudWxsPT1oLnRhYmxlRGV0YWlscz9udWxsOmgudGFi''@;'; + put 'put ''bGVEZXRhaWxzLlRBQkxFX0lELCIiKSx1dCg1KSxKaSgiICIsbnVsbD09aC50YWJsZURldGFpbHM/bnVsbDpoLnRhYmxlRGV0YWlscy5CQVNFX1RBQkxFLCIgIiksdXQoNSksSmkoIiAiLG51bGw9PWgudGFibGVEZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuU1VCTUlUVEVEX09OX0RUVE0s''@;'; + put 'put ''IiAiKSx1dCg0KSxUdCgibmdDbGFzcyIsWjMoMTMsY2V0LCJSRUpFQ1RFRCI9PT0obnVsbD09aC50YWJsZURldGFpbHM/bnVsbDpoLnRhYmxlRGV0YWlscy5SRVZJRVdfU1RBVFVTX0lEKSwiQVBQUk9WRUQiPT09KG51bGw9PWgudGFibGVEZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuUkVW''@;'; + put 'put ''SUVXX1NUQVRVU19JRCkpKSx1dCgxKSxKaSgiICIsbnVsbD09aC50YWJsZURldGFpbHM/bnVsbDpoLnRhYmxlRGV0YWlscy5SRVZJRVdfU1RBVFVTX0lELCIgIiksdXQoOSksVHQoImRpc2FibGVkIiwiQVBQUk9WRUQiPT09KG51bGw9PWgudGFibGVEZXRhaWxzP251bGw6aC50YWJsZURldGFp''@;'; + put 'put ''bHMuUkVWSUVXX1NUQVRVU19JRCl8fCJSRUpFQ1RFRCI9PT0obnVsbD09aC50YWJsZURldGFpbHM/bnVsbDpoLnRhYmxlRGV0YWlscy5SRVZJRVdfU1RBVFVTX0lEKSksdXQoNyksVHQoImRhdGEiLGguaG90VGFibGUuZGF0YSkoImNvbEhlYWRlcnMiLGguaG90VGFibGUuY29sSGVhZGVycyko''@;'; + put 'put ''ImNvbHVtbnMiLGguaG90VGFibGUuY29sdW1ucykoIm1heFJvd3MiLGguaG90VGFibGUubWF4Um93cykoImhlaWdodCIsaC5ob3RUYWJsZS5oZWlnaHQpKCJsaWNlbnNlS2V5IixoLmhvdFRhYmxlLmxpY2Vuc2VLZXkpKCJjZWxscyIsaC5ob3RUYWJsZS5jZWxscyl9fWNvbnN0IGhldD1be3Bh''@;'; + put 'put ''dGg6Ijp0YWJsZUlkIixjb21wb25lbnQ6KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksail7dGhpcy5hcHBTZXJ2aWNlPWgsdGhpcy5zYXNTdG9yZVNlcnZpY2U9dix0aGlzLmV2ZW50U2VydmljZT15LHRoaXMucm91dGU9Qyx0aGlzLnJvdXRlcj1JLHRoaXMuc2FzU2Vydmlj''@;'; + put 'put ''ZT1qLHRoaXMubG9hZGVkPSExLHRoaXMuaG90VGFibGU9e2RhdGE6W10sY29sSGVhZGVyczpbXSxjb2x1bW5zOltdLGhlaWdodDo1MDAsc2V0dGluZ3M6e30sbGljZW5zZUtleTp2b2lkIDAsbWF4Um93czp0aGlzLmFwcFNlcnZpY2UuZGVtb0xpbWl0cy5yb3dzX2FsbG93ZWR8fDEvMH19c3Vi''@;'; + put 'put ''bWl0dGVkVGFibGVTY3JlZW4oKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9zdGFnZS8iK3RoaXMudGFibGVfaWQpfWFwcHJvdmVUYWJsZVNjcmVlbigpe3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL2FwcHJvdmUvYXBwcm92ZURldC8iK3RoaXMudGFibGVfaWQpfXZpZXdlclRhYmxl''@;'; + put 'put ''U2NyZWVuKCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhLyIrdGhpcy50YWJsZURldGFpbHMuQkFTRV9UQUJMRSl9Z29CYWNrKCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvZWRpdG9yLyIrdGhpcy50YWJsZURldGFpbHMuQkFTRV9UQUJMRSl9ZG93bmxvYWQoaCl7''@;'; + put 'put ''bGV0IHY9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCkseT12LnNlcnZlclVybCxDPXYuYXBwTG9jLEk9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5kb3cub3Blbih5K0krIi8/X3Byb2dyYW09IitDKyIvc2VydmljZXMvYXVkaXRvcnMvZ2V0YXVkaXRmaWxl''@;'; + put 'put ''JnRhYmxlPSIraCl9bmdPbkluaXQoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKHRoaXMuYXBwU2VydmljZS5ob3RfbGljZW5zZV9rZXkuc3Vic2NyaWJlKGg9Pnt0aGlzLmhvdFRhYmxlLmxpY2Vuc2VLZXk9aH0pLHZvaWQgMCE9PXRoaXMucm91dGVyLnNu''@;'; + put 'put ''YXBzaG90LnBhcmFtcy50YWJsZUlkKXt0aGlzLnRhYmxlX2lkPXRoaXMucm91dGVyLnNuYXBzaG90LnBhcmFtcy50YWJsZUlkO3RyeXtsZXQgaD15aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS5nZXRDaGFuZ2VJbmZvKHRoaXMudGFibGVfaWQpO2lmKCFofHwhaC5qc3BhcmFtcyl0aHJvdyBu''@;'; + put 'put ''ZXcgRXJyb3IoImpzcGFyYW1zIHByb3BlcnR5IGlzIG1pc3NpbmcgZnJvbSByZXNwb25zZS4iKTt0aGlzLnRhYmxlRGV0YWlscz1oLmpzcGFyYW1zWzBdfWNhdGNoKGgpe2xldCB2PXt9O2guTUVTU0FHRT92PWg6di5NRVNTQUdFPWgsdGhpcy5ldmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVy''@;'; + put 'put ''cm9yKCJwdWJsaWMvZ2V0Y2hhbmdlaW5mbyIsdil9dHJ5e2xldCBoPXlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLm9wZW5UYWJsZSh0aGlzLnRhYmxlX2lkKTtpZighaHx8IWguc3RhZ2V0YWJsZSl0aHJvdyBuZXcgRXJyb3IoIlN0YWdldGFibGUgcHJvcGVydHkgaXMgbWlzc2luZyBmcm9t''@;'; + put 'put ''IHJlc3BvbnNlLiIpO2xldCB2PWguc3RhZ2V0YWJsZVswXSx5PVtdLEM9W107Zm9yKGxldCBqIGluIHYpdiYmeS5wdXNoKGopO2ZvcihsZXQgaj0wO2o8eS5sZW5ndGg7aisrKUMucHVzaCh7ZGF0YTp5W2pdfSk7bGV0IEk9ZnVuY3Rpb24oKXtyZXR1cm57cmVhZE9ubHk6ITB9fTt0aGlzLmhv''@;'; + put 'put ''dFRhYmxlLmRhdGE9aC5zdGFnZXRhYmxlLHRoaXMuaG90VGFibGUuY29sSGVhZGVycz15LHRoaXMuaG90VGFibGUuY29sdW1ucz1DLHRoaXMuaG90VGFibGUuY2VsbHM9SSx0aGlzLmxvYWRlZD0hMCx0aGlzLnNldEZvY3VzKCl9Y2F0Y2goaCl7bGV0IHY9e307aC5NRVNTQUdFfHwodi5NRVNT''@;'; + put 'put ''QUdFPWgpLHRoaXMuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigiYXVkaXRvcnMvZ2V0c3RhZ2V0YWJsZSIsdiksdGhpcy5sb2FkZWQ9ITF9fX0pfXNldEZvY3VzKCl7c2V0VGltZW91dCgoKT0+e2xldCBoPXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwcm92YWwt''@;'; + put 'put ''YnRuIik7aCYmaC5mb2N1cygpfSwyMDApfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChSNyksWHQoa2cpLFh0KG11KSxYdChabCksWHQoUHUpLFh0KGcyKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1zdGFnZSJd''@;'; + put 'put ''XSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6NCx2YXJzOjIsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl0sWzEsImNsci1jb2wtbWQtMTIiLCJjYXJkIl0sWyJzdHlsZSIsIlxuICAgICAgICBoZWlnaHQ6IDgwdmg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4g''@;'; + put 'put ''ICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMiwiaGVpZ2h0IiwiODB2aCIsImRpc3BsYXkiLCJmbGV4IiwianVz''@;'; + put 'put ''dGlmeS1jb250ZW50IiwiY2VudGVyIiwiZmxleC1kaXJlY3Rpb24iLCJjb2x1bW4iLCJhbGlnbi1pdGVtcyIsImNlbnRlciJdLFsiY2xhc3MiLCJzcGlubmVyIiw0LCJuZ0lmIl0sWzEsInNwaW5uZXIiXSxbIm5nLWlmIiwibG9hZGVkIiwxLCJjYXJkLWhlYWRlciJdLFsxLCJjYXJkLXRpdGxl''@;'; + put 'put ''IiwyLCJ0ZXh0LWFsaWduIiwiY2VudGVyIl0sWzIsIm1hcmdpbi10b3AiLCIwcHgiXSxbIm5nLWlmIiwibG9hZGVkIiwxLCJjbHItcm93Il0sWzEsImNhcmQtYmxvY2siLCJjbHItY29sLW1kLTYiXSxbMSwiY2FyZC1oZWFkZXIiLDIsInBhZGRpbmciLCI1cHggMHB4Il0sWzEsImJhc2VUYWJs''@;'; + put 'put ''ZUxpbmsiLDMsImNsaWNrIl0sWzEsIm10LTEwIl0sWzEsIm10LTEwIiwzLCJuZ0NsYXNzIl0sWzEsImNsci1jb2wtbWQtNiIsImNhcmQtYmxvY2siXSxbMiwibWFyZ2luLXRvcCIsIjIwcHgiXSxbMSwicm93Il0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwyLCJ0ZXh0LWFsaWdu''@;'; + put 'put ''IiwiY2VudGVyIiwibWFyZ2luLXRvcCIsIjIwcHgiLDMsImNsaWNrIl0sWyJpZCIsImFwcHJvdmFsLWJ0biIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMiwidGV4dC1hbGlnbiIsImNlbnRlciIsIm1hcmdpbi10b3AiLCIyMHB4IiwzLCJkaXNhYmxlZCIsImNsaWNr''@;'; + put 'put ''Il0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1pbmZvLW91dGxpbmUiLDIsInRleHQtYWxpZ24iLCJjZW50ZXIiLCJtYXJnaW4tdG9wIiwiMjBweCIsMywiY2xpY2siXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLDIsInRleHQtYWxpZ24iLCJjZW50ZXIiLCJtYXJnaW4tdG9wIiwi''@;'; + put 'put ''MjBweCIsIm1pbi13aWR0aCIsIjBweCIsMywiY2xpY2siXSxbInNoYXBlIiwiZG93bmxvYWQiXSxbMSwiY2FyZC1ibG9jayJdLFsiaG90SWQiLCJob3RJbnN0YW5jZSIsImlkIiwiaG90VGFibGUiLCJzdHJldGNoSCIsImFsbCIsMywiZGF0YSIsImNvbEhlYWRlcnMiLCJjb2x1bW5zIiwibWF4''@;'; + put 'put ''Um93cyIsImhlaWdodCIsImxpY2Vuc2VLZXkiLCJjZWxscyJdLFsxLCJjYXJkLWZvb3RlciIsMiwiZGlzcGxheSIsImZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQiLCJjZW50ZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJkaXYiLDApKDEsImRpdiIsMSkscm4oMix1ZXQs''@;'; + put 'put ''MywyLCJkaXYiLDIpLHJuKDMsZmV0LDQ4LDE2LCJkaXYiLDMpLHN0KCkoKSksMiZoJiYodXQoMiksVHQoIm5nSWYiLCF2LmxvYWRlZCksdXQoMSksVHQoIm5nSWYiLHYubG9hZGVkKSl9LGRlcGVuZGVuY2llczpbbGMsVm8sd2wsQXRlXSxzdHlsZXM6WyIucmVqZWN0ZWRbX25nY29udGVudC0l''@;'; + put 'put ''Q09NUCVde2NvbG9yOiNmODMxMjY7Zm9udC13ZWlnaHQ6NzAwfS5hY2NlcHRlZFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzNmYzQyNDtmb250LXdlaWdodDo3MDB9LmJhc2VUYWJsZUxpbmtbX25nY29udGVudC0lQ09NUCVde2N1cnNvcjpwb2ludGVyO21hcmdpbi10b3A6MTBweDtjb2xv''@;'; + put 'put ''cjojMDA3Y2JifSJdfSksZH0pKCl9XTtsZXQgZGV0PSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W2JhLFVMLFhoLmZvckNoaWxkKGhl''@;'; + put 'put ''dCksZjZlLmZvclJvb3QoKV19KSxkfSkoKTtmdW5jdGlvbiBoNmUoZCl7cmV0dXJuKGg2ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYi''@;'; + put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHBldChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxs''@;'; + put 'put ''IGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIFdTZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIE04KCl7cmV0dXJuIE04PSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1tZXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0''@;'; + put 'put ''T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LE04LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBtZXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5''@;'; + put 'put ''LmNhbGwoZCxnKSYmbnVsbCE9PShkPUE0KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGQ2ZShkLGcpe3JldHVybihkNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1m''@;'; + put 'put ''dW5jdGlvbiB5ZXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1oNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVk''@;'; + put 'put ''Iik7cmV0dXJuIGZ1bmN0aW9uIHdldChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIEE0KGQpe3JldHVybihBND1P''@;'; + put 'put ''YmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBZU2U9ImhhbmRzb250YWJsZUVkaXRvciIscDZlPWZ1bmN0aW9uKGQpeyFmdW5jdGlv''@;'; + put 'put ''biB2ZXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25z''@;'; + put 'put ''dHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmZDZlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gQWV0KGQpe3ZhciBnPWZ1bmN0aW9uIGJldCgpe2lmKCJ1''@;'; + put 'put ''bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0''@;'; + put 'put ''LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUE0KGQpO2lmKGcpe3ZhciBDPUE0KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxz''@;'; + put 'put ''ZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB5ZXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gcGV0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uIGdldChkLGcsaCl7ZyYmV1NlKGQucHJvdG90eXBlLGcpLGgmJldTZShk''@;'; + put 'put ''LGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJvcGVuIix2YWx1ZTpmdW5jdGlvbigpe004KEE0KGgucHJvdG90eXBlKSwib3BlbiIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLmh0RWRpdG9yJiZ0aGlzLmh0RWRpdG9yLmRlc3Ry''@;'; + put 'put ''b3koKSwibm9uZSI9PT10aGlzLmh0Q29udGFpbmVyLnN0eWxlLmRpc3BsYXkmJih0aGlzLmh0Q29udGFpbmVyLnN0eWxlLmRpc3BsYXk9IiIpLHRoaXMuaHRFZGl0b3I9bmV3IHRoaXMuaG90LmNvbnN0cnVjdG9yKHRoaXMuaHRDb250YWluZXIsdGhpcy5odE9wdGlvbnMpLHRoaXMuaHRFZGl0''@;'; + put 'put ''b3IuaW5pdCgpLHRoaXMuaHRFZGl0b3Iucm9vdEVsZW1lbnQuc3R5bGUuZGlzcGxheT0iIix0aGlzLmNlbGxQcm9wZXJ0aWVzLnN0cmljdD90aGlzLmh0RWRpdG9yLnNlbGVjdENlbGwoMCwwKTp0aGlzLmh0RWRpdG9yLmRlc2VsZWN0Q2VsbCgpLEhaKHRoaXMuVEVYVEFSRUEsMCx0aGlzLlRF''@;'; + put 'put ''WFRBUkVBLnZhbHVlLmxlbmd0aCksdGhpcy5yZWZyZXNoRGltZW5zaW9ucygpfX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5odEVkaXRvciYmKHRoaXMuaHRFZGl0b3Iucm9vdEVsZW1lbnQuc3R5bGUuZGlzcGxheT0ibm9uZSIpLHRoaXMucmVtb3ZlSG9va3NCeUtleSgi''@;'; + put 'put ''YmVmb3JlS2V5RG93biIpLE04KEE0KGgucHJvdG90eXBlKSwiY2xvc2UiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJwcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqLHVlLF9lKXtNOChBNChoLnByb3RvdHlwZSksInByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx5LEMsSSxqLHVlLF9l''@;'; + put 'put ''KTt2YXIgQmU9dGhpcyxOZT17c3RhcnRSb3dzOjAsc3RhcnRDb2xzOjAsbWluUm93czowLG1pbkNvbHM6MCxjbGFzc05hbWU6Imxpc3Rib3giLGNvcHlQYXN0ZTohMSxhdXRvQ29sdW1uU2l6ZTohMSxhdXRvUm93U2l6ZTohMSxyZWFkT25seTohMCxmaWxsSGFuZGxlOiExLGF1dG9XcmFwQ29s''@;'; + put 'put ''OiExLGF1dG9XcmFwUm93OiExLGFmdGVyT25DZWxsTW91c2VEb3duOmZ1bmN0aW9uKGR0LE90KXt2YXIgJHQ9dGhpcy5nZXRTb3VyY2VEYXRhKE90LnJvdyxPdC5jb2wpO3ZvaWQgMCE9PSR0JiZCZS5zZXRWYWx1ZSgkdCksQmUuaW5zdGFuY2UuZGVzdHJveUVkaXRvcigpfSxwcmV2ZW50V2hl''@;'; + put 'put ''ZWw6ITAsbGF5b3V0RGlyZWN0aW9uOnRoaXMuaG90LmlzUnRsKCk/InJ0bCI6Imx0ciJ9O3RoaXMuY2VsbFByb3BlcnRpZXMuaGFuZHNvbnRhYmxlJiZJMShOZSxfZS5oYW5kc29udGFibGUpLHRoaXMuaHRPcHRpb25zPU5lfX0se2tleToiYmVnaW5FZGl0aW5nIix2YWx1ZTpmdW5jdGlvbih5''@;'; + put 'put ''LEMpe3ZhciBJPXRoaXMuaG90LmdldFNldHRpbmdzKCkub25CZWdpbkVkaXRpbmc7SSYmITE9PT1JKCl8fE04KEE0KGgucHJvdG90eXBlKSwiYmVnaW5FZGl0aW5nIix0aGlzKS5jYWxsKHRoaXMseSxDKX19LHtrZXk6ImNyZWF0ZUVsZW1lbnRzIix2YWx1ZTpmdW5jdGlvbigpe004KEE0KGgu''@;'; + put 'put ''cHJvdG90eXBlKSwiY3JlYXRlRWxlbWVudHMiLHRoaXMpLmNhbGwodGhpcyk7dmFyIHk9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpO3kuY2xhc3NOYW1lPSJoYW5kc29udGFibGVFZGl0b3IiLHRoaXMuVEVYVEFSRUFfUEFSRU5ULmFwcGVuZENoaWxkKHkpLHRo''@;'; + put 'put ''aXMuaHRDb250YWluZXI9eSx0aGlzLmFzc2lnbkhvb2tzKCl9fSx7a2V5OiJmaW5pc2hFZGl0aW5nIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7aWYodGhpcy5odEVkaXRvciYmdGhpcy5odEVkaXRvci5pc0xpc3RlbmluZygpJiZ0aGlzLmhvdC5saXN0ZW4oKSx0aGlzLmh0RWRpdG9yJiZ0aGlz''@;'; + put 'put ''Lmh0RWRpdG9yLmdldFNlbGVjdGVkTGFzdCgpKXt2YXIgaj10aGlzLmh0RWRpdG9yLmdldEluc3RhbmNlKCkuZ2V0VmFsdWUoKTt2b2lkIDAhPT1qJiZ0aGlzLnNldFZhbHVlKGopfU04KEE0KGgucHJvdG90eXBlKSwiZmluaXNoRWRpdGluZyIsdGhpcykuY2FsbCh0aGlzLHksQyxJKX19LHtr''@;'; + put 'put ''ZXk6ImFzc2lnbkhvb2tzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJEZXN0cm95IixmdW5jdGlvbigpe3kuaHRFZGl0b3ImJnkuaHRFZGl0b3IuZGVzdHJveSgpfSl9fSx7a2V5OiJyZWdpc3RlclNob3J0Y3V0cyIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''KXt2YXIgeT10aGlzLEk9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIik7TTgoQTQoaC5wcm90b3R5cGUpLCJyZWdpc3RlclNob3J0Y3V0cyIsdGhpcykuY2FsbCh0aGlzKTt2YXIgdWU9ZnVuY3Rpb24oQmUsTmUpe3ZhciBLZT15Lmh0RWRpdG9yLmdl''@;'; + put 'put ''dEluc3RhbmNlKCk7aWYodm9pZCAwIT09QmUmJihCZTwwfHxLZS5mbGlwcGVkJiZCZT5LZS5jb3VudFJvd3MoKS0xP0tlLmRlc2VsZWN0Q2VsbCgpOktlLnNlbGVjdENlbGwoQmUsMCksS2UuZ2V0RGF0YSgpLmxlbmd0aCkpcmV0dXJuIE5lLnByZXZlbnREZWZhdWx0KCksXzgoTmUpLHkuaG90''@;'; + put 'put ''Lmxpc3RlbigpLHkuVEVYVEFSRUEuZm9jdXMoKSwhMX07SS5hZGRTaG9ydGN1dHMoW3trZXlzOltbIkFycm93VXAiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oQmUpe3ZhciBLZSxkdCxOZT15Lmh0RWRpdG9yLmdldEluc3RhbmNlKCk7cmV0dXJuIU5lLmdldFNlbGVjdGVkTGFzdCgpJiZOZS5mbGlw''@;'; + put 'put ''cGVkP0tlPU5lLmNvdW50Um93cygpLTE6TmUuZ2V0U2VsZWN0ZWRMYXN0KCkmJihOZS5mbGlwcGVkPyhkdD1OZS5nZXRTZWxlY3RlZExhc3QoKVswXSxLZT1NYXRoLm1heCgwLGR0LTEpKTpLZT0oZHQ9TmUuZ2V0U2VsZWN0ZWRMYXN0KClbMF0pLTEpLHVlKEtlLEJlKX0scHJldmVudERlZmF1''@;'; + put 'put ''bHQ6ITF9LHtrZXlzOltbIkFycm93RG93biJdXSxjYWxsYmFjazpmdW5jdGlvbihCZSl7dmFyIEtlLGR0LE5lPXkuaHRFZGl0b3IuZ2V0SW5zdGFuY2UoKTtpZihOZS5nZXRTZWxlY3RlZExhc3QoKXx8TmUuZmxpcHBlZCl7aWYoTmUuZ2V0U2VsZWN0ZWRMYXN0KCkpaWYoTmUuZmxpcHBlZClL''@;'; + put 'put ''ZT1OZS5nZXRTZWxlY3RlZExhc3QoKVswXSsxO2Vsc2UgaWYoIU5lLmZsaXBwZWQpe3ZhciBPdD1OZS5jb3VudFJvd3MoKS0xO2R0PU5lLmdldFNlbGVjdGVkTGFzdCgpWzBdLEtlPU1hdGgubWluKE90LGR0KzEpfX1lbHNlIEtlPTA7cmV0dXJuIHVlKEtlLEJlKX0scHJldmVudERlZmF1bHQ6''@;'; + put 'put ''ITF9XSx7Z3JvdXA6WVNlLHJlbGF0aXZlVG9Hcm91cDpsZWUscG9zaXRpb246ImJlZm9yZSJ9KX19LHtrZXk6InVucmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7TTgoQTQoaC5wcm90b3R5cGUpLCJ1bnJlZ2lzdGVyU2hvcnRjdXRzIix0aGlzKS5jYWxsKHRoaXMpLHRoaXMu''@;'; + put 'put ''aG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIpLnJlbW92ZVNob3J0Y3V0c0J5R3JvdXAoWVNlKX19XSxbe2tleToiRURJVE9SX1RZUEUiLGdldDpmdW5jdGlvbigpe3JldHVybiJoYW5kc29udGFibGUifX1dKSxofShPUyk7ZnVuY3Rpb24gZzZlKGQpe3JldHVy''@;'; + put 'put ''bihnNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJv''@;'; + put 'put ''bCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBVU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYm''@;'; + put 'put ''KHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBSUygpe3JldHVybiBSUz0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9TWV0KGcsaCk7''@;'; + put 'put ''aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxSUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTWV0KGQsZyl7Zm9yKDshT2JqZWN0LnBy''@;'; + put 'put ''b3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1UOShkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBtNmUoZCxnKXtyZXR1cm4obTZlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYu''@;'; + put 'put ''X19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gVGV0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09ZzZlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1''@;'; + put 'put ''cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiB2NmUoZCl9ZnVuY3Rpb24gdjZlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1m''@;'; + put 'put ''dW5jdGlvbiBUOShkKXtyZXR1cm4oVDk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgQTZlPW5ldyBXZWFrTWFwLHk2ZT1mdW5j''@;'; + put 'put ''dGlvbihkKXshZnVuY3Rpb24gRWV0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZn''@;'; + put 'put ''LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJm02ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHhldChkKXt2YXIgZz1mdW5j''@;'; + put 'put ''dGlvbiBJZXQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1''@;'; + put 'put ''ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1UOShkKTtpZihnKXt2YXIgQz1UOSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYs''@;'; + put 'put ''YXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gVGV0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBDZXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2Fs''@;'; + put 'put ''bCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxmdW5jdGlvbiBEZXQoZCxnLGgpe2cgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1ofSh2NmUoeT1nLmNhbGwodGhp''@;'; + put 'put ''cyx2KSksInNvcnRCeVJlbGV2YW5jZSIsZnVuY3Rpb24oQyxJLGope3ZhciBkdCxPdCwkdCx1ZT1bXSxfZT1bXSxCZT1DLmxlbmd0aCxOZT1JLmxlbmd0aDtpZigwPT09QmUpe2ZvcihPdD0wO090PE5lO090KyspX2UucHVzaChPdCk7cmV0dXJuIF9lfWZvcihPdD0wO090PE5lO090Kyspe2lm''@;'; + put 'put ''KGR0PW8zZShldShJW090XSkpLGopJHQ9ZHQuaW5kZXhPZihDKTtlbHNle3ZhciBmbj10aGlzLmNlbGxQcm9wZXJ0aWVzLmxvY2FsZTskdD1kdC50b0xvY2FsZUxvd2VyQ2FzZShmbikuaW5kZXhPZihDLnRvTG9jYWxlTG93ZXJDYXNlKGZuKSl9LTEhPT0kdCYmdWUucHVzaCh7YmFzZUluZGV4''@;'; + put 'put ''Ok90LGluZGV4OiR0LGNoYXJzTGVmdDpkdC5sZW5ndGgtJHQtQmUsdmFsdWU6ZHR9KX1mb3IodWUuc29ydChmdW5jdGlvbihMbixpcil7aWYoLTE9PT1pci5pbmRleClyZXR1cm4tMTtpZigtMT09PUxuLmluZGV4KXJldHVybiAxO2lmKExuLmluZGV4PGlyLmluZGV4KXJldHVybi0xO2lmKGly''@;'; + put 'put ''LmluZGV4PExuLmluZGV4KXJldHVybiAxO2lmKExuLmluZGV4PT09aXIuaW5kZXgpe2lmKExuLmNoYXJzTGVmdDxpci5jaGFyc0xlZnQpcmV0dXJuLTE7aWYoTG4uY2hhcnNMZWZ0PmlyLmNoYXJzTGVmdClyZXR1cm4gMX1yZXR1cm4gMH0pLE90PTAsTmU9dWUubGVuZ3RoO090PE5lO090Kysp''@;'; + put 'put ''X2UucHVzaCh1ZVtPdF0uYmFzZUluZGV4KTtyZXR1cm4gX2V9KSx5LnF1ZXJ5PW51bGwseS5zdHJpcHBlZENob2ljZXM9W10seS5yYXdDaG9pY2VzPVtdLEE2ZS5zZXQodjZlKHkpLHtza2lwT25lOiExLGlzTWFjT1M6eS5ob3Qucm9vdFdpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhP''@;'; + put 'put ''ZigiTWFjIik+LTF9KSx5fXJldHVybiBmdW5jdGlvbiBrZXQoZCxnLGgpe2cmJlVTZShkLnByb3RvdHlwZSxnKSxoJiZVU2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''dmFyIHk9dGhpcyxDPXRoaXMucmF3Q2hvaWNlcy5maW5kKGZ1bmN0aW9uKEkpe3JldHVybiB5LnN0cmlwVmFsdWVJZk5lZWRlZChJKT09PXkuVEVYVEFSRUEudmFsdWV9KTtyZXR1cm4gVG8oQyk/Qzp0aGlzLlRFWFRBUkVBLnZhbHVlfX0se2tleToiY3JlYXRlRWxlbWVudHMiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKCl7UlMoVDkoaC5wcm90b3R5cGUpLCJjcmVhdGVFbGVtZW50cyIsdGhpcykuY2FsbCh0aGlzKSxPMCh0aGlzLmh0Q29udGFpbmVyLCJhdXRvY29tcGxldGVFZGl0b3IiKSxPMCh0aGlzLmh0Q29udGFpbmVyLC0xPT09dGhpcy5ob3Qucm9vdFdpbmRvdy5uYXZpZ2F0b3IucGxhdGZv''@;'; + put 'put ''cm0uaW5kZXhPZigiTWFjIik/IiI6Imh0TWFjU2Nyb2xsIil9fSx7a2V5OiJvcGVuIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1BNmUuZ2V0KHRoaXMpO1JTKFQ5KGgucHJvdG90eXBlKSwib3BlbiIsdGhpcykuY2FsbCh0aGlzKTt2YXIgST10aGlzLmh0RWRpdG9yLmdldEluc3Rh''@;'; + put 'put ''bmNlKCksaj12b2lkIDA9PT10aGlzLmNlbGxQcm9wZXJ0aWVzLnRyaW1Ecm9wZG93bnx8dGhpcy5jZWxsUHJvcGVydGllcy50cmltRHJvcGRvd247dGhpcy5zaG93RWRpdGFibGVFbGVtZW50KCksdGhpcy5mb2N1cygpO3ZhciB1ZT1CYygpOzA9PT11ZSYmQy5pc01hY09TJiYodWUrPTE1KSx0''@;'; + put 'put ''aGlzLmFkZEhvb2soImJlZm9yZUtleURvd24iLGZ1bmN0aW9uKF9lKXtyZXR1cm4geS5vbkJlZm9yZUtleURvd24oX2UpfSksSS51cGRhdGVTZXR0aW5ncyh7Y29sV2lkdGhzOmo/W0UyKHRoaXMuVEVYVEFSRUEpLTJdOnZvaWQgMCx3aWR0aDpqP0UyKHRoaXMuVEVYVEFSRUEpK3VlOnZvaWQg''@;'; + put 'put ''MCxyZW5kZXJlcjpmdW5jdGlvbihCZSxOZSxLZSxkdCxPdCwkdCxmbil7T3coQmUsTmUsS2UsZHQsT3QsJHQsZm4pO3ZhciB5aSxLaSxMbj15LmNlbGxQcm9wZXJ0aWVzLGlyPUxuLmZpbHRlcmluZ0Nhc2VTZW5zaXRpdmUsbXI9TG4uYWxsb3dIdG1sLFNyPUxuLmxvY2FsZSx3cj15LnF1ZXJ5''@;'; + put 'put ''LFFyPWV1KCR0KTtRciYmIW1yJiYtMSE9PSh5aT0hMD09PWlyP1FyLmluZGV4T2Yod3IpOlFyLnRvTG9jYWxlTG93ZXJDYXNlKFNyKS5pbmRleE9mKHdyLnRvTG9jYWxlTG93ZXJDYXNlKFNyKSkpJiYoS2k9UXIuc3Vic3RyKHlpLHdyLmxlbmd0aCksUXI9UXIucmVwbGFjZShLaSwiPHN0cm9u''@;'; + put 'put ''Zz4iLmNvbmNhdChLaSwiPC9zdHJvbmc+IikpKSxOZS5pbm5lckhUTUw9UXJ9LGF1dG9Db2x1bW5TaXplOiEwfSksQy5za2lwT25lJiYoQy5za2lwT25lPSExKSx0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KGZ1bmN0aW9uKCl7eS5xdWVyeUNob2ljZXMoeS5URVhUQVJFQS52YWx1ZSl9KX19''@;'; + put 'put ''LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucmVtb3ZlSG9va3NCeUtleSgiYmVmb3JlS2V5RG93biIpLFJTKFQ5KGgucHJvdG90eXBlKSwiY2xvc2UiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJkaXNjYXJkRWRpdG9yIix2YWx1ZTpmdW5jdGlvbih5KXtSUyhUOShoLnBy''@;'; + put 'put ''b3RvdHlwZSksImRpc2NhcmRFZGl0b3IiLHRoaXMpLmNhbGwodGhpcyx5KSx0aGlzLmhvdC52aWV3LnJlbmRlcigpfX0se2tleToicXVlcnlDaG9pY2VzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9dGhpcy5jZWxsUHJvcGVydGllcy5zb3VyY2U7dGhpcy5xdWVyeT15LCJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBJP0kuY2FsbCh0aGlzLmNlbGxQcm9wZXJ0aWVzLHksZnVuY3Rpb24oail7Qy5yYXdDaG9pY2VzPWosQy51cGRhdGVDaG9pY2VzTGlzdChDLnN0cmlwVmFsdWVzSWZOZWVkZWQoaikpfSk6QXJyYXkuaXNBcnJheShJKT8odGhpcy5yYXdDaG9pY2VzPUksdGhpcy51cGRh''@;'; + put 'put ''dGVDaG9pY2VzTGlzdCh0aGlzLnN0cmlwVmFsdWVzSWZOZWVkZWQoSSkpKTp0aGlzLnVwZGF0ZUNob2ljZXNMaXN0KFtdKX19LHtrZXk6InVwZGF0ZUNob2ljZXNMaXN0Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1kM2UodGhpcy5URVhUQVJFQSksST1qYmUodGhpcy5URVhUQVJFQSksaj10''@;'; + put 'put ''aGlzLmNlbGxQcm9wZXJ0aWVzLnNvcnRCeVJlbGV2YW5jZSx1ZT10aGlzLmNlbGxQcm9wZXJ0aWVzLmZpbHRlcixfZT1udWxsLEJlPW51bGwsTmU9eTtqJiYoX2U9dGhpcy5zb3J0QnlSZWxldmFuY2UodGhpcy5zdHJpcFZhbHVlSWZOZWVkZWQodGhpcy5nZXRWYWx1ZSgpKSxOZSx0aGlzLmNl''@;'; + put 'put ''bGxQcm9wZXJ0aWVzLmZpbHRlcmluZ0Nhc2VTZW5zaXRpdmUpKTt2YXIgS2U9QXJyYXkuaXNBcnJheShfZSk/X2UubGVuZ3RoOjA7aWYoITE9PT11ZSlLZSYmKEJlPV9lWzBdKTtlbHNle2Zvcih2YXIgZHQ9W10sT3Q9MCwkdD1OZS5sZW5ndGg7T3Q8JHQmJiEoaiYmS2U8PU90KTtPdCsrKWR0''@;'; + put 'put ''LnB1c2goS2U/TmVbX2VbT3RdXTpOZVtPdF0pO0JlPTAsTmU9ZHR9dGhpcy5zdHJpcHBlZENob2ljZXM9TmUsdGhpcy5odEVkaXRvci5sb2FkRGF0YShUWihbTmVdKSksdGhpcy51cGRhdGVEcm9wZG93bkhlaWdodCgpLHRoaXMuZmxpcERyb3Bkb3duSWZOZWVkZWQoKSwhMD09PXRoaXMuY2Vs''@;'; + put 'put ''bFByb3BlcnRpZXMuc3RyaWN0JiZ0aGlzLmhpZ2hsaWdodEJlc3RNYXRjaGluZ0Nob2ljZShCZSksdGhpcy5ob3QubGlzdGVuKCksSFoodGhpcy5URVhUQVJFQSxDLEM9PT1JP3ZvaWQgMDpJKX19LHtrZXk6ImZsaXBEcm9wZG93bklmTmVlZGVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXJP''@;'; + put 'put ''KHRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuVEFCTEUpLEM9eT09PXRoaXMuaG90LnJvb3RXaW5kb3csST10aGlzLmNlbGxQcm9wZXJ0aWVzLnByZXZlbnRPdmVyZmxvdztpZihDfHwhQyYmKEl8fCJob3Jpem9udGFsIj09PUkpKXJldHVybiExO3ZhciBqPWp1KHRoaXMuVEVYVEFSRUEpLHVl''@;'; + put 'put ''PUQxKHRoaXMuVEVYVEFSRUEpLF9lPXRoaXMuZ2V0RHJvcGRvd25IZWlnaHQoKSxCZT15LnNjcm9sbFRvcCxOZT1EMSh0aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLlRIRUFEKSxLZT1qdSh5KSxkdD1qLnRvcC1LZS50b3AtTmUrQmUsT3Q9eS5zY3JvbGxIZWlnaHQtZHQtTmUtdWUsJHQ9X2U+''@;'; + put 'put ''T3QmJmR0Pk90O3JldHVybiAkdD90aGlzLmZsaXBEcm9wZG93bihfZSk6dGhpcy51bmZsaXBEcm9wZG93bigpLHRoaXMubGltaXREcm9wZG93bklmTmVlZGVkKCR0P2R0Ok90LF9lKSwkdH19LHtrZXk6ImxpbWl0RHJvcGRvd25JZk5lZWRlZCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtpZihDPnkp''@;'; + put 'put ''e3ZhciBfZSxJPTAsaj0wLHVlPTA7ZG97SSs9dWU9dGhpcy5odEVkaXRvci5nZXRSb3dIZWlnaHQoail8fHRoaXMuaHRFZGl0b3Iudmlldy5fd3QuZ2V0U2V0dGluZygiZGVmYXVsdFJvd0hlaWdodCIpLGorPTF9d2hpbGUoSTx5KTtfZT1JLXVlLHRoaXMuaHRFZGl0b3IuZmxpcHBlZCYmKHRo''@;'; + put 'put ''aXMuaHRFZGl0b3Iucm9vdEVsZW1lbnQuc3R5bGUudG9wPSIiLmNvbmNhdChwYXJzZUludCh0aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLnRvcCwxMCkrQy1fZSwicHgiKSksdGhpcy5zZXREcm9wZG93bkhlaWdodChJLXVlKX19fSx7a2V5OiJmbGlwRHJvcGRvd24iLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKHkpe3ZhciBDPXRoaXMuaHRFZGl0b3Iucm9vdEVsZW1lbnQuc3R5bGU7Qy5wb3NpdGlvbj0iYWJzb2x1dGUiLEMudG9wPSIiLmNvbmNhdCgteSwicHgiKSx0aGlzLmh0RWRpdG9yLmZsaXBwZWQ9ITB9fSx7a2V5OiJ1bmZsaXBEcm9wZG93biIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIg''@;'; + put 'put ''eT10aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlO3kucG9zaXRpb249ImFic29sdXRlIix5LnRvcD0iIix0aGlzLmh0RWRpdG9yLmZsaXBwZWQ9dm9pZCAwfX0se2tleToidXBkYXRlRHJvcGRvd25IZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5odEVkaXRvci5nZXRD''@;'; + put 'put ''b2xXaWR0aCgwKStCYyh0aGlzLmhvdC5yb290RG9jdW1lbnQpKzIsQz10aGlzLmNlbGxQcm9wZXJ0aWVzLnRyaW1Ecm9wZG93bjt0aGlzLmh0RWRpdG9yLnVwZGF0ZVNldHRpbmdzKHtoZWlnaHQ6dGhpcy5nZXREcm9wZG93bkhlaWdodCgpLHdpZHRoOkM/dm9pZCAwOnl9KSx0aGlzLmh0RWRp''@;'; + put 'put ''dG9yLnZpZXcuX3d0Lnd0VGFibGUuYWxpZ25PdmVybGF5c1dpdGhUcmltbWluZ0NvbnRhaW5lcigpfX0se2tleToic2V0RHJvcGRvd25IZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuaHRFZGl0b3IudXBkYXRlU2V0dGluZ3Moe2hlaWdodDp5fSl9fSx7a2V5OiJoaWdobGlnaHRCZXN0''@;'; + put 'put ''TWF0Y2hpbmdDaG9pY2UiLHZhbHVlOmZ1bmN0aW9uKHkpeyJudW1iZXIiPT10eXBlb2YgeT90aGlzLmh0RWRpdG9yLnNlbGVjdENlbGwoeSwwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLCExKTp0aGlzLmh0RWRpdG9yLmRlc2VsZWN0Q2VsbCgpfX0se2tleToiZ2V0RHJvcGRvd25IZWlnaHQiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5odEVkaXRvci5nZXRJbnN0YW5jZSgpLmdldFJvd0hlaWdodCgwKXx8MjMsQz10aGlzLmNlbGxQcm9wZXJ0aWVzLnZpc2libGVSb3dzO3JldHVybiB0aGlzLnN0cmlwcGVkQ2hvaWNlcy5sZW5ndGg+PUM/Qyp5OnRoaXMuc3RyaXBwZWRDaG9pY2Vz''@;'; + put 'put ''Lmxlbmd0aCp5Kzh9fSx7a2V5OiJzdHJpcFZhbHVlSWZOZWVkZWQiLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiB0aGlzLnN0cmlwVmFsdWVzSWZOZWVkZWQoW3ldKVswXX19LHtrZXk6InN0cmlwVmFsdWVzSWZOZWVkZWQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuY2VsbFByb3Bl''@;'; + put 'put ''cnRpZXMuYWxsb3dIdG1sLEk9T2woeSxmdW5jdGlvbih1ZSl7cmV0dXJuIGV1KHVlKX0pO3JldHVybiBPbChJLGZ1bmN0aW9uKHVlKXtyZXR1cm4gQz91ZTpvM2UodWUpfSl9fSx7a2V5OiJhbGxvd0tleUV2ZW50UHJvcGFnYXRpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaHRF''@;'; + put 'put ''ZGl0b3IuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxJX3Jvdz1DP0MuZnJvbS5yb3c6LTEsaj0hMTtyZXR1cm4geT09PVFvLkFSUk9XX0RPV04mJklfcm93PjAmJklfcm93PHRoaXMuaHRFZGl0b3IuY291bnRSb3dzKCktMSYmKGo9ITApLHk9PT1Rby5BUlJPV19VUCYmSV9yb3c+LTEmJihqPSEw''@;'; + put 'put ''KSxqfX0se2tleToib25CZWZvcmVLZXlEb3duIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9QTZlLmdldCh0aGlzKTtpZihJLnNraXBPbmU9ITEsUWJlKHkua2V5Q29kZSl8fHkua2V5Q29kZT09PVFvLkJBQ0tTUEFDRXx8eS5rZXlDb2RlPT09UW8uREVMRVRFfHx5LmtleUNvZGU9''@;'; + put 'put ''PT1Rby5JTlNFUlQpe3ZhciBqPTEwO2lmKHkua2V5Q29kZT09PVFvLkMmJih5LmN0cmxLZXl8fHkubWV0YUtleSkpcmV0dXJuO3RoaXMuaXNPcGVuZWQoKXx8KGorPTEwKSx0aGlzLmh0RWRpdG9yJiZ0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KGZ1bmN0aW9uKCl7Qy5xdWVyeUNob2ljZXMo''@;'; + put 'put ''Qy5URVhUQVJFQS52YWx1ZSksSS5za2lwT25lPSEwfSxqKX19fV0sW3trZXk6IkVESVRPUl9UWVBFIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iYXV0b2NvbXBsZXRlIn19XSksaH0ocDZlKTtmdW5jdGlvbiB3NmUoZCl7cmV0dXJuKHc2ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3lt''@;'; + put 'put ''Ym9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBl''@;'; + put 'put ''b2YgZ30pKGQpfWZ1bmN0aW9uIE9ldChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIFFTZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3Yu''@;'; + put 'put ''ZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGI2ZShkLGcpe3JldHVybihiNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVj''@;'; + put 'put ''dC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBGZXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT13NmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5l''@;'; + put 'put ''dyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIEhldChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAt''@;'; + put 'put ''IHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIHl0ZShkKXtyZXR1cm4oeXRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFBy''@;'; + put 'put ''b3RvdHlwZU9mKGgpfSkoZCl9dmFyIEpTZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gQmV0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7''@;'; + put 'put ''ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmI2ZShkLGcpfShoLGQpO3Zh''@;'; + put 'put ''ciBnPWZ1bmN0aW9uIFBldChkKXt2YXIgZz1mdW5jdGlvbiBOZXQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5''@;'; + put 'put ''e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj15dGUoZCk7aWYoZyl7dmFyIEM9eXRlKHRoaXMpLmNv''@;'; + put 'put ''bnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBGZXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gT2V0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uIFJldChkLGcsaCl7ZyYmUVNlKGQucHJvdG90eXBlLGcpLGgmJlFTZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJiZWdpbkVkaXRpbmciLHZhbHVlOmZ1bmN0aW9uKHksQyl7aWYoQyYmIm1vdXNldXAiPT09''@;'; + put 'put ''Qy50eXBlKXt2YXIgST10aGlzLlRELnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ImNoZWNrYm94Il0nKTt0bChJLCJodEJhZFZhbHVlIil8fEkuY2xpY2soKX19fSx7a2V5OiJmaW5pc2hFZGl0aW5nIix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''fX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJnZXRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJzZXRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJmb2N1cyIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXt9fV0sW3trZXk6IkVESVRPUl9UWVBFIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY2hlY2tib3gifX1dKSxofShnTyksWFNlPUwoNDEwNzgpO2Z1bmN0aW9uIF82ZShkKXtyZXR1cm4oXzZlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0''@;'; + put 'put ''ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gS1Nl''@;'; + put 'put ''KGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24g''@;'; + put 'put ''STkoKXtyZXR1cm4gSTk9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PXpldChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5n''@;'; + put 'put ''ZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sSTkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHpldChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9RTgoZCkpOyk7cmV0dXJu''@;'; + put 'put ''IGR9ZnVuY3Rpb24gQzZlKGQsZyl7cmV0dXJuKEM2ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFlldChkLGcpe2lmKGcmJigib2JqZWN0Ij09PV82''@;'; + put 'put ''ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gVWV0KGQpe2lmKHZvaWQgMD09''@;'; + put 'put ''PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gRTgoZCl7cmV0dXJuKEU4PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90''@;'; + put 'put ''eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIHFTZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gR2V0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJy''@;'; + put 'put ''b3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJkM2ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIFdldChkKXt2YXIgZz1mdW5jdGlvbiBRZXQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1''@;'; + put 'put ''Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7''@;'; + put 'put ''cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1FOChkKTtpZihnKXt2YXIgQz1FOCh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gWWV0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBo''@;'; + put 'put ''KHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBqZXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuZGVmYXVsdERhdGVGb3JtYXQ9IkREL01N''@;'; + put 'put ''L1lZWVkiLHkuaXNDZWxsRWRpdGVkPSExLHkucGFyZW50RGVzdHJveWVkPSExLHkuJGRhdGVQaWNrZXI9bnVsbCx5fXJldHVybiBmdW5jdGlvbiBaZXQoZCxnLGgpe2cmJktTZShkLnByb3RvdHlwZSxnKSxoJiZLU2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7''@;'; + put 'put ''d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBUbCl0aHJvdyBuZXcgRXJyb3IoIllvdSBuZWVkIHRvIGluY2x1ZGUgbW9tZW50LmpzIHRvIHlvdXIgcHJvamVjdC4iKTtpZigiZnVuY3Rpb24iIT10''@;'; + put 'put ''eXBlb2YgWFNlKXRocm93IG5ldyBFcnJvcigiWW91IG5lZWQgdG8gaW5jbHVkZSBQaWthZGF5IHRvIHlvdXIgcHJvamVjdC4iKTtJOShFOChoLnByb3RvdHlwZSksImluaXQiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5pbnN0YW5jZS5hZGRIb29rKCJhZnRlckRlc3Ryb3kiLGZ1bmN0aW9uKCl7''@;'; + put 'put ''eS5wYXJlbnREZXN0cm95ZWQ9ITAseS5kZXN0cm95RWxlbWVudHMoKX0pfX0se2tleToiY3JlYXRlRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7STkoRTgoaC5wcm90b3R5cGUpLCJjcmVhdGVFbGVtZW50cyIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLmRhdGVQaWNrZXI9dGhpcy5ob3Qucm9v''@;'; + put 'put ''dERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLHRoaXMuZGF0ZVBpY2tlclN0eWxlPXRoaXMuZGF0ZVBpY2tlci5zdHlsZSx0aGlzLmRhdGVQaWNrZXJTdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMuZGF0ZVBpY2tlclN0eWxlLnRvcD0wLHRoaXMuZGF0ZVBpY2tlclN0eWxlLmxl''@;'; + put 'put ''ZnQ9MCx0aGlzLmRhdGVQaWNrZXJTdHlsZS56SW5kZXg9OTk5OSx0aGlzLmRhdGVQaWNrZXIuc2V0QXR0cmlidXRlKCJkaXIiLHRoaXMuaG90LmlzUnRsKCk/InJ0bCI6Imx0ciIpLE8wKHRoaXMuZGF0ZVBpY2tlciwiaHREYXRlcGlja2VySG9sZGVyIiksdGhpcy5ob3Qucm9vdERvY3VtZW50''@;'; + put 'put ''LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5kYXRlUGlja2VyKSxuZXcgTDEodGhpcykuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmRhdGVQaWNrZXIsIm1vdXNlZG93biIsZnVuY3Rpb24oQyl7cmV0dXJuIEMuc3RvcFByb3BhZ2F0aW9uKCl9KX19LHtrZXk6ImRlc3Ryb3lFbGVtZW50cyIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmRhdGVQaWNrZXIucGFyZW50Tm9kZTt0aGlzLiRkYXRlUGlja2VyJiZ0aGlzLiRkYXRlUGlja2VyLmRlc3Ryb3koKSx5JiZ5LnJlbW92ZUNoaWxkKHRoaXMuZGF0ZVBpY2tlcil9fSx7a2V5OiJwcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqLHVl''@;'; + put 'put ''LF9lKXtJOShFOChoLnByb3RvdHlwZSksInByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx5LEMsSSxqLHVlLF9lKX19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7STko''@;'; + put 'put ''RTgoaC5wcm90b3R5cGUpLCJvcGVuIix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuc2hvd0RhdGVwaWNrZXIoeSl9fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeSxDPXRoaXM7dGhpcy5fb3BlbmVkPSExLG51bGwhPT0oeT10aGlzLiRkYXRlUGlja2VyKSYmdm9pZCAwIT09eSYm''@;'; + put 'put ''eS5kZXN0cm95JiZ0aGlzLiRkYXRlUGlja2VyLmRlc3Ryb3koKSx0aGlzLmluc3RhbmNlLl9yZWdpc3RlclRpbWVvdXQoZnVuY3Rpb24oKXtDLmluc3RhbmNlLl9yZWZyZXNoQm9yZGVycygpfSksSTkoRTgoaC5wcm90b3R5cGUpLCJjbG9zZSIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImZp''@;'; + put 'put ''bmlzaEVkaXRpbmciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07aWYoeSl7dmFyIEk9dGhp''@;'; + put 'put ''cy5vcmlnaW5hbFZhbHVlO3ZvaWQgMCE9PUkmJnRoaXMuc2V0VmFsdWUoSSl9STkoRTgoaC5wcm90b3R5cGUpLCJmaW5pc2hFZGl0aW5nIix0aGlzKS5jYWxsKHRoaXMseSxDKX19LHtrZXk6InNob3dEYXRlcGlja2VyIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgX2UsQz10aGlzLlRELmdldEJv''@;'; + put 'put ''dW5kaW5nQ2xpZW50UmVjdCgpLEk9dGhpcy5jZWxsUHJvcGVydGllcy5kYXRlRm9ybWF0fHx0aGlzLmRlZmF1bHREYXRlRm9ybWF0LGo9dGhpcy5pbnN0YW5jZS52aWV3LmlzTW91c2VEb3duKCksdWU9ISF5JiZ3M2UoeS5rZXlDb2RlKTt0aGlzLmRhdGVQaWNrZXIuc3R5bGUuZGlzcGxheT0i''@;'; + put 'put ''YmxvY2siLHRoaXMuJGRhdGVQaWNrZXI9bmV3IFhTZSh0aGlzLmdldERhdGVQaWNrZXJDb25maWcoKSksdGhpcy4kZGF0ZVBpY2tlci5fb25JbnB1dEZvY3VzPWZ1bmN0aW9uKCl7fSx0aGlzLmRhdGVQaWNrZXJTdHlsZS50b3A9IiIuY29uY2F0KHRoaXMuaG90LnJvb3RXaW5kb3cucGFnZVlP''@;'; + put 'put ''ZmZzZXQrQy50b3ArRDEodGhpcy5URCksInB4Iik7dmFyIEJlO0JlPXRoaXMuaG90LmlzUnRsKCk/Qy5yaWdodC1FMih0aGlzLmRhdGVQaWNrZXIpOkMubGVmdCx0aGlzLmRhdGVQaWNrZXJTdHlsZS5sZWZ0PSIiLmNvbmNhdChCZSwicHgiKSx0aGlzLm9yaWdpbmFsVmFsdWU/KFRsKF9lPXRo''@;'; + put 'put ''aXMub3JpZ2luYWxWYWx1ZSxJLCEwKS5pc1ZhbGlkKCkmJnRoaXMuJGRhdGVQaWNrZXIuc2V0TW9tZW50KFRsKF9lLEkpLCEwKSx0aGlzLmdldFZhbHVlKCkhPT10aGlzLm9yaWdpbmFsVmFsdWUmJnRoaXMuc2V0VmFsdWUodGhpcy5vcmlnaW5hbFZhbHVlKSwhdWUmJiFqJiZ0aGlzLnNldFZh''@;'; + put 'put ''bHVlKCIiKSk6dGhpcy5jZWxsUHJvcGVydGllcy5kZWZhdWx0RGF0ZT8oVGwoX2U9dGhpcy5jZWxsUHJvcGVydGllcy5kZWZhdWx0RGF0ZSxJLCEwKS5pc1ZhbGlkKCkmJnRoaXMuJGRhdGVQaWNrZXIuc2V0TW9tZW50KFRsKF9lLEkpLCEwKSwhdWUmJiFqJiZ0aGlzLnNldFZhbHVlKCIiKSk6''@;'; + put 'put ''dGhpcy4kZGF0ZVBpY2tlci5nb3RvVG9kYXkoKX19LHtrZXk6ImhpZGVEYXRlcGlja2VyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGF0ZVBpY2tlclN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuJGRhdGVQaWNrZXIuaGlkZSgpfX0se2tleToiZ2V0RGF0ZVBpY2tlckNvbmZpZyIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9dGhpcy5URVhUQVJFQSxJPXt9O3RoaXMuY2VsbFByb3BlcnRpZXMmJnRoaXMuY2VsbFByb3BlcnRpZXMuZGF0ZVBpY2tlckNvbmZpZyYmSVooSSx0aGlzLmNlbGxQcm9wZXJ0aWVzLmRhdGVQaWNrZXJDb25maWcpO3ZhciBqPUkub25TZWxlY3QsdWU9''@;'; + put 'put ''SS5vbkNsb3NlO3JldHVybiBJLmZpZWxkPUMsSS50cmlnZ2VyPUMsSS5jb250YWluZXI9dGhpcy5kYXRlUGlja2VyLEkuYm91bmQ9ITEsSS5mb3JtYXQ9SS5mb3JtYXR8fHRoaXMuZGVmYXVsdERhdGVGb3JtYXQsSS5yZXBvc2l0aW9uPUkucmVwb3NpdGlvbnx8ITEsSS5pc1JUTD0hMSxJLm9u''@;'; + put 'put ''U2VsZWN0PWZ1bmN0aW9uKF9lKXt2YXIgQmU9X2U7aXNOYU4oQmUuZ2V0VGltZSgpKXx8KEJlPVRsKEJlKS5mb3JtYXQoeS5jZWxsUHJvcGVydGllcy5kYXRlRm9ybWF0fHx5LmRlZmF1bHREYXRlRm9ybWF0KSkseS5zZXRWYWx1ZShCZSkseS5oaWRlRGF0ZXBpY2tlcigpLGomJmooKX0sSS5v''@;'; + put 'put ''bkNsb3NlPWZ1bmN0aW9uKCl7eS5wYXJlbnREZXN0cm95ZWR8fHkuZmluaXNoRWRpdGluZyghMSksdWUmJnVlKCl9LEl9fV0sW3trZXk6IkVESVRPUl9UWVBFIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iZGF0ZSJ9fV0pLGh9KE9TKTtmdW5jdGlvbiBrNmUoZCl7cmV0dXJuKGs2ZT0iZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9s''@;'; + put 'put ''LnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIEpldChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIGVNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5s''@;'; + put 'put ''ZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIHd0ZSgpe3JldHVybiB3dGU9InVuZGVm''@;'; + put 'put ''aW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUtldChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVu''@;'; + put 'put ''dHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sd3RlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBLZXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPXZPKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFM2ZShkLGcp''@;'; + put 'put ''e3JldHVybihTNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBldHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1rNmUoZyl8fCJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIHR0dChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVu''@;'; + put 'put ''Y2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIHZPKGQpe3JldHVybih2Tz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlv''@;'; + put 'put ''bihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBNNmU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uICRldChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9u''@;'; + put 'put ''IG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBl''@;'; + put 'put ''Iix7d3JpdGFibGU6ITF9KSxnJiZTNmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBxZXQoZCl7dmFyIGc9ZnVuY3Rpb24gbnR0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYo''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciB5LHY9dk8oZCk7aWYoZyl7dmFyIEM9dk8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGV0dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBKZXQodGhpcyxo''@;'; + put 'put ''KSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24gWGV0KGQsZyxoKXtnJiZlTWUoZC5wcm90b3R5cGUsZyksaCYmZU1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6InByZXBhcmUiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKHksQyxJLGosdWUsX2Upe3d0ZSh2TyhoLnByb3RvdHlwZSksInByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx5LEMsSSxqLHVlLF9lKSx0aGlzLmNlbGxQcm9wZXJ0aWVzLmZpbHRlcj0hMSx0aGlzLmNlbGxQcm9wZXJ0aWVzLnN0cmljdD0hMH19XSxbe2tleToiRURJVE9SX1RZUEUi''@;'; + put 'put ''LGdldDpmdW5jdGlvbigpe3JldHVybiJkcm9wZG93biJ9fV0pLGh9KHk2ZSk7ZnVuY3Rpb24gRTZlKGQpe3JldHVybihFNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5j''@;'; + put 'put ''dGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBpdHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlw''@;'; + put 'put ''ZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiB0TWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYu''@;'; + put 'put ''d3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB4NmUoZCxnKXtyZXR1cm4oeDZlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0p''@;'; + put 'put ''KGQsZyl9ZnVuY3Rpb24gc3R0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09RTZlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVu''@;'; + put 'put ''ZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiB1dHQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBidGUoZCl7cmV0''@;'; + put 'put ''dXJuKGJ0ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXpvLmdldFNpbmdsZXRvbigpLmFkZCgiYmVmb3JlVmFsaWRhdGUiLGZ1bmN0''@;'; + put 'put ''aW9uKGQsZyxoKXt2YXIgdj10aGlzLmdldENlbGxNZXRhKGcsdGhpcy5wcm9wVG9Db2woaCkpO3YuZWRpdG9yPT09TTZlJiZ2b2lkIDA9PT12LnN0cmljdCYmKHYuZmlsdGVyPSExLHYuc3RyaWN0PSEwKX0pO3ZhciBuTWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGF0dChkLGcpe2lmKCJmdW5j''@;'; + put 'put ''dGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdy''@;'; + put 'put ''aXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZ4NmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBsdHQoZCl7dmFyIGc9ZnVuY3Rpb24gY3R0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBS''@;'; + put 'put ''ZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4s''@;'; + put 'put ''W10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9YnRlKGQpO2lmKGcpe3ZhciBDPWJ0ZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMs''@;'; + put 'put ''YXJndW1lbnRzKTtyZXR1cm4gc3R0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIGl0dCh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiBvdHQoZCxnLGgpe2cmJnRNZShkLnByb3RvdHlwZSxnKSxoJiZ0TWUoZCxoKSxPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxudWxsLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIm51bWVyaWMifX1dKSxofShPUyk7ZnVuY3Rpb24gVDZlKGQpe3JldHVybihUNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5''@;'; + put 'put ''bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlw''@;'; + put 'put ''ZW9mIGd9KShkKX1mdW5jdGlvbiBodHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiByTWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2''@;'; + put 'put ''LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBfdGUoKXtyZXR1cm4gX3RlPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYm''@;'; + put 'put ''UmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1wdHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1''@;'; + put 'put ''ZX19LF90ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcHR0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1BTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBJNmUoZCxnKXtyZXR1cm4oSTZlPU9iamVjdC5zZXRQ''@;'; + put 'put ''cm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gdnR0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09VDZlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9p''@;'; + put 'put ''ZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBBdHQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJl''@;'; + put 'put ''ZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBBTyhkKXtyZXR1cm4oQU89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19f''@;'; + put 'put ''fHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgaU1lPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBndHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9y''@;'; + put 'put ''IGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmSTZl''@;'; + put 'put ''KGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gbXR0KGQpe3ZhciBnPWZ1bmN0aW9uIHl0dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94''@;'; + put 'put ''eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUFPKGQpO2lmKGcpe3ZhciBD''@;'; + put 'put ''PUFPKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB2dHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gaHR0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50''@;'; + put 'put ''cyl9cmV0dXJuIGZ1bmN0aW9uIGR0dChkLGcsaCl7ZyYmck1lKGQucHJvdG90eXBlLGcpLGgmJnJNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJjcmVhdGVFbGVtZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXtfdGUoQU8o''@;'; + put 'put ''aC5wcm90b3R5cGUpLCJjcmVhdGVFbGVtZW50cyIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLlRFWFRBUkVBPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMuVEVYVEFSRUEuc2V0QXR0cmlidXRlKCJ0eXBlIiwicGFzc3dvcmQiKSx0aGlzLlRFWFRBUkVB''@;'; + put 'put ''LnNldEF0dHJpYnV0ZSgiZGF0YS1ob3QtaW5wdXQiLCIiKSx0aGlzLlRFWFRBUkVBLmNsYXNzTmFtZT0iaGFuZHNvbnRhYmxlSW5wdXQiLHRoaXMudGV4dGFyZWFTdHlsZT10aGlzLlRFWFRBUkVBLnN0eWxlLHRoaXMudGV4dGFyZWFTdHlsZS53aWR0aD0wLHRoaXMudGV4dGFyZWFTdHlsZS5o''@;'; + put 'put ''ZWlnaHQ9MCxEcCh0aGlzLlRFWFRBUkVBX1BBUkVOVCksdGhpcy5URVhUQVJFQV9QQVJFTlQuYXBwZW5kQ2hpbGQodGhpcy5URVhUQVJFQSl9fV0sW3trZXk6IkVESVRPUl9UWVBFIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4icGFzc3dvcmQifX1dKSxofShPUyk7ZnVuY3Rpb24gQ3RlKGQpe3Jl''@;'; + put 'put ''dHVybihDdGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5''@;'; + put 'put ''bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBidHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBvTWUoZCxnKXtm''@;'; + put 'put ''b3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBrdGUoKXty''@;'; + put 'put ''ZXR1cm4ga3RlPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1DdHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0Mu''@;'; + put 'put ''Z2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGt0ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQ3R0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD15TyhkKSk7KTtyZXR1cm4gZH1m''@;'; + put 'put ''dW5jdGlvbiBENmUoZCxnKXtyZXR1cm4oRDZlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gTXR0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09Q3RlKGcp''@;'; + put 'put ''fHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBFdHQoZCl7aWYodm9pZCAwPT09ZCl0''@;'; + put 'put ''aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiB5TyhkKXtyZXR1cm4oeU89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVP''@;'; + put 'put ''Zi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgTDZlPSJodF9lZGl0b3JfdmlzaWJsZSIsYU1lPSJzZWxlY3RFZGl0b3IiLEl0dD1mdW5jdGlvbihkKXshZnVuY3Rpb24ga3R0KGQsZyl7aWYoImZ1bmN0aW9u''@;'; + put 'put ''IiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFi''@;'; + put 'put ''bGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJkQ2ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIFN0dChkKXt2YXIgZz1mdW5jdGlvbiB4dHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxl''@;'; + put 'put ''Y3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxm''@;'; + put 'put ''dW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj15TyhkKTtpZihnKXt2YXIgQz15Tyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1l''@;'; + put 'put ''bnRzKTtyZXR1cm4gTXR0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIGJ0dCh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiBfdHQoZCxnLGgpe2cmJm9NZShkLnByb3RvdHlwZSxnKSxoJiZvTWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdD10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIiksTzAodGhpcy5zZWxlY3QsImh0U2VsZWN0RWRpdG9yIiksdGhpcy5zZWxl''@;'; + put 'put ''Y3Quc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5ob3Qucm9vdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zZWxlY3QpLHRoaXMucmVnaXN0ZXJIb29rcygpfX0se2tleToiZ2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0LnZhbHVlfX0se2tleToic2V0VmFs''@;'; + put 'put ''dWUiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuc2VsZWN0LnZhbHVlPXl9fSx7a2V5OiJvcGVuIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX29wZW5lZD0hMCx0aGlzLnJlZnJlc2hEaW1lbnNpb25zKCksdGhpcy5zZWxlY3Quc3R5bGUuZGlzcGxheT0iIix0aGlzLmhvdC5nZXRTaG9ydGN1dE1h''@;'; + put 'put ''bmFnZXIoKS5zZXRBY3RpdmVDb250ZXh0TmFtZSgiZWRpdG9yIiksdGhpcy5yZWdpc3RlclNob3J0Y3V0cygpfX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fb3BlbmVkPSExLHRoaXMuc2VsZWN0LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRsKHRoaXMuc2VsZWN0LEw2ZSkm''@;'; + put 'put ''JnBsKHRoaXMuc2VsZWN0LEw2ZSksdGhpcy51bnJlZ2lzdGVyU2hvcnRjdXRzKCksdGhpcy5jbGVhckhvb2tzKCl9fSx7a2V5OiJmb2N1cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdC5mb2N1cygpfX0se2tleToicmVnaXN0ZXJIb29rcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10''@;'; + put 'put ''aGlzO3RoaXMuYWRkSG9vaygiYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiLGZ1bmN0aW9uKCl7cmV0dXJuIHkucmVmcmVzaERpbWVuc2lvbnMoKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IixmdW5jdGlvbigpe3JldHVybiB5LnJlZnJlc2hEaW1lbnNpb25zKCl9KSx0''@;'; + put 'put ''aGlzLmFkZEhvb2soImFmdGVyQ29sdW1uUmVzaXplIixmdW5jdGlvbigpe3JldHVybiB5LnJlZnJlc2hEaW1lbnNpb25zKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyUm93UmVzaXplIixmdW5jdGlvbigpe3JldHVybiB5LnJlZnJlc2hEaW1lbnNpb25zKCl9KX19LHtrZXk6InByZXBhcmUiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKHksQyxJLGosdWUsX2Upe3ZhciBCZT10aGlzO2t0ZSh5TyhoLnByb3RvdHlwZSksInByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx5LEMsSSxqLHVlLF9lKTt2YXIgS2UsTmU9dGhpcy5jZWxsUHJvcGVydGllcy5zZWxlY3RPcHRpb25zO0tlPXRoaXMucHJlcGFyZU9wdGlv''@;'; + put 'put ''bnMoImZ1bmN0aW9uIj09dHlwZW9mIE5lP05lKHRoaXMucm93LHRoaXMuY29sLHRoaXMucHJvcCk6TmUpLERwKHRoaXMuc2VsZWN0KSxHbChLZSxmdW5jdGlvbihkdCxPdCl7dmFyICR0PUJlLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7JHQudmFsdWU9T3QsX3co''@;'; + put 'put ''JHQsZHQpLEJlLnNlbGVjdC5hcHBlbmRDaGlsZCgkdCl9KX19LHtrZXk6InByZXBhcmVPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz17fTtpZihBcnJheS5pc0FycmF5KHkpKWZvcih2YXIgST0wLGo9eS5sZW5ndGg7STxqO0krKylDW3lbSV1dPXlbSV07ZWxzZSJvYmplY3QiPT09''@;'; + put 'put ''Q3RlKHkpJiYoQz15KTtyZXR1cm4gQ319LHtrZXk6InJlZnJlc2hWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXRDZWxsKHRoaXMucm93LHRoaXMucHJvcCk7dGhpcy5vcmlnaW5hbFZhbHVlPXksdGhpcy5zZXRWYWx1ZSh5KSx0aGlzLnJlZnJl''@;'; + put 'put ''c2hEaW1lbnNpb25zKCl9fSx7a2V5OiJyZWZyZXNoRGltZW5zaW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLnN0YXRlPT09cmYuRURJVElORyl7aWYodGhpcy5URD10aGlzLmdldEVkaXRlZENlbGwoKSwhdGhpcy5URClyZXR1cm4gdm9pZCB0aGlzLmNsb3NlKCk7dmFyIHk9dGhpcy5n''@;'; + put 'put ''ZXRFZGl0ZWRDZWxsUmVjdCgpLEM9eS50b3AsST15LnN0YXJ0LGo9eS53aWR0aCxfZT10aGlzLnNlbGVjdC5zdHlsZTtfZS5oZWlnaHQ9IiIuY29uY2F0KHkuaGVpZ2h0LCJweCIpLF9lLndpZHRoPSIiLmNvbmNhdChqLCJweCIpLF9lLnRvcD0iIi5jb25jYXQoQywicHgiKSxfZVt0aGlzLmhv''@;'; + put 'put ''dC5pc1J0bCgpPyJyaWdodCI6ImxlZnQiXT0iIi5jb25jYXQoSSwicHgiKSxfZS5tYXJnaW49IjBweCIsTzAodGhpcy5zZWxlY3QsTDZlKX19fSx7a2V5OiJyZWdpc3RlclNob3J0Y3V0cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEk9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2Vy''@;'; + put 'put ''KCkuZ2V0Q29udGV4dCgiZWRpdG9yIiksaj17Z3JvdXA6YU1lfTshMSE9PXRoaXMuaXNJbkZ1bGxFZGl0TW9kZSgpJiZJLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siQXJyb3dVcCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBfZT15LnNlbGVjdC5zZWxlY3RlZEluZGV4LTE7X2U+PTAmJih5''@;'; + put 'put ''LnNlbGVjdFtfZV0uc2VsZWN0ZWQ9ITApfX0se2tleXM6W1siQXJyb3dEb3duIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIF9lPXkuc2VsZWN0LnNlbGVjdGVkSW5kZXgrMTtfZTw9eS5zZWxlY3QubGVuZ3RoLTEmJih5LnNlbGVjdFtfZV0uc2VsZWN0ZWQ9ITApfX1dLGopfX0se2tleToi''@;'; + put 'put ''dW5yZWdpc3RlclNob3J0Y3V0cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJlZGl0b3IiKS5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKGFNZSl9fV0sW3trZXk6IkVESVRPUl9UWVBFIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ic2Vs''@;'; + put 'put ''ZWN0In19XSksaH0oZ08pO2Z1bmN0aW9uIE82ZShkKXtyZXR1cm4oTzZlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9''@;'; + put 'put ''PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gRHR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBh''@;'; + put 'put ''cyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbE1lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gU3RlKCl7cmV0dXJuIFN0ZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9T3R0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3Bl''@;'; + put 'put ''cnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxTdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE90dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChk''@;'; + put 'put ''LGcpJiZudWxsIT09KGQ9d08oZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gUjZlKGQsZyl7cmV0dXJuKFI2ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9u''@;'; + put 'put ''IFB0dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PU82ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1''@;'; + put 'put ''cm4gZnVuY3Rpb24gRnR0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gd08oZCl7cmV0dXJuKHdPPU9iamVjdC5z''@;'; + put 'put ''ZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIHNNZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gUnR0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9m''@;'; + put 'put ''IGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29u''@;'; + put 'put ''ZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlI2ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIEJ0dChkKXt2YXIgZz1mdW5jdGlvbiBIdHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZs''@;'; + put 'put ''ZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigp''@;'; + put 'put ''e30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj13TyhkKTtpZihnKXt2YXIgQz13Tyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1''@;'; + put 'put ''cm4gUHR0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIER0dCh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiBMdHQoZCxnLGgpe2cmJmxNZShkLnByb3RvdHlwZSxnKSxoJiZsTWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJv''@;'; + put 'put ''dG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToicHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksaix1ZSxfZSl7U3RlKHdPKGgucHJvdG90eXBlKSwicHJlcGFyZSIsdGhpcykuY2FsbCh0aGlzLHksQyxJLGosdWUsX2UpLHRoaXMuVEVYVEFSRUEuZGlyPSJsdHIifX1dLFt7a2V5''@;'; + put 'put ''OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuInRpbWUifX1dKSxofShPUyk7ZnVuY3Rpb24gQjZlKGQsZyxoLHYseSxDLEkpe2N6LmFwcGx5KHRoaXMsW2QsZyxoLHYseSxDLEldKSxfdyhnLG51bGw9PUM/IiI6QywhMSl9ZnVuY3Rpb24gYk8oZCxnLGgsdix5LEMsSSl7dmFy''@;'; + put 'put ''IGo9ZC5yb290RG9jdW1lbnQsdWU9SS5hbGxvd0h0bWw/QjZlOk93LF9lPWouY3JlYXRlRWxlbWVudCgiRElWIik7aWYoX2UuY2xhc3NOYW1lPSJodEF1dG9jb21wbGV0ZUFycm93IixfZS5hcHBlbmRDaGlsZChqLmNyZWF0ZVRleHROb2RlKFN0cmluZy5mcm9tQ2hhckNvZGUoOTY2MCkpKSx1''@;'; + put 'put ''ZS5hcHBseSh0aGlzLFtkLGcsaCx2LHksQyxJXSksZy5maXJzdENoaWxkfHxnLmFwcGVuZENoaWxkKGouY3JlYXRlVGV4dE5vZGUoU3RyaW5nLmZyb21DaGFyQ29kZSgxNjApKSksZy5pbnNlcnRCZWZvcmUoX2UsZy5maXJzdENoaWxkKSxPMChnLCJodEF1dG9jb21wbGV0ZSIpLCFkLmFjQXJy''@;'; + put 'put ''b3dMaXN0ZW5lcil7dmFyIEJlPW5ldyBMMShkKTtkLmFjQXJyb3dMaXN0ZW5lcj1mdW5jdGlvbihOZSl7dGwoTmUudGFyZ2V0LCJodEF1dG9jb21wbGV0ZUFycm93IikmJmQudmlldy5fd3QuZ2V0U2V0dGluZygib25DZWxsRGJsQ2xpY2siLG51bGwsZC5fY3JlYXRlQ2VsbENvb3JkcyhoLHYp''@;'; + put 'put ''LGcpfSxCZS5hZGRFdmVudExpc3RlbmVyKGQucm9vdEVsZW1lbnQsIm1vdXNlZG93biIsZC5hY0Fycm93TGlzdGVuZXIpLGQuYWRkSG9va09uY2UoImFmdGVyRGVzdHJveSIsZnVuY3Rpb24oKXtCZS5kZXN0cm95KCl9KX19QjZlLlJFTkRFUkVSX1RZUEU9Imh0bWwiLGJPLlJFTkRFUkVSX1RZ''@;'; + put 'put ''UEU9ImF1dG9jb21wbGV0ZSI7dmFyIHVNZT1uZXcgV2Vha01hcCxjTWU9bmV3IFdlYWtNYXAsX089ImRhdGEtcm93IixDTz0iZGF0YS1jb2wiO2Z1bmN0aW9uIFA2ZShkLGcsaCx2LHksQyxJKXt2YXIgaj1kLnJvb3REb2N1bWVudDtjei5hcHBseSh0aGlzLFtkLGcsaCx2LHksQyxJXSksZnVu''@;'; + put 'put ''Y3Rpb24gV3R0KGQpe3ZhciBnPWNNZS5nZXQoZCk7aWYoIWcpe3ZhciBoPWQucm9vdEVsZW1lbnQ7KGc9bmV3IEwxKGQpKS5hZGRFdmVudExpc3RlbmVyKGgsImNsaWNrIixmdW5jdGlvbih2KXtyZXR1cm4gZnVuY3Rpb24gSnR0KGQsZyl7dmFyIGg9ZC50YXJnZXQ7aWYoRjZlKGgpJiZoLmhh''@;'; + put 'put ''c0F0dHJpYnV0ZShfTykmJmguaGFzQXR0cmlidXRlKENPKSl7dmFyIHY9cGFyc2VJbnQoaC5nZXRBdHRyaWJ1dGUoX08pLDEwKSx5PXBhcnNlSW50KGguZ2V0QXR0cmlidXRlKENPKSwxMCk7Zy5nZXRDZWxsTWV0YSh2LHkpLnJlYWRPbmx5JiZkLnByZXZlbnREZWZhdWx0KCl9fSh2LGQpfSks''@;'; + put 'put ''Zy5hZGRFdmVudExpc3RlbmVyKGgsIm1vdXNldXAiLGZ1bmN0aW9uKHYpe3JldHVybiBmdW5jdGlvbiBRdHQoZCxnKXt2YXIgaD1kLnRhcmdldDshRjZlKGgpfHwhaC5oYXNBdHRyaWJ1dGUoX08pfHwhaC5oYXNBdHRyaWJ1dGUoQ08pfHxzZXRUaW1lb3V0KGcubGlzdGVuLDEwKX0odixkKX0p''@;'; + put 'put ''LGcuYWRkRXZlbnRMaXN0ZW5lcihoLCJjaGFuZ2UiLGZ1bmN0aW9uKHYpe3JldHVybiBmdW5jdGlvbiBYdHQoZCxnKXt2YXIgaD1kLnRhcmdldDtpZihGNmUoaCkmJmguaGFzQXR0cmlidXRlKF9PKSYmaC5oYXNBdHRyaWJ1dGUoQ08pKXt2YXIgdj1wYXJzZUludChoLmdldEF0dHJpYnV0ZShf''@;'; + put 'put ''TyksMTApLHk9cGFyc2VJbnQoaC5nZXRBdHRyaWJ1dGUoQ08pLDEwKSxDPWcuZ2V0Q2VsbE1ldGEodix5KTtDLnJlYWRPbmx5fHxnLnNldERhdGFBdENlbGwodix5LGQudGFyZ2V0LmNoZWNrZWQ/dm9pZCAwPT09Qy51bmNoZWNrZWRUZW1wbGF0ZXx8Qy5jaGVja2VkVGVtcGxhdGU6dm9pZCAw''@;'; + put 'put ''IT09Qy51bmNoZWNrZWRUZW1wbGF0ZSYmQy51bmNoZWNrZWRUZW1wbGF0ZSl9fSh2LGQpfSksY01lLnNldChkLGcpfX0oZCk7dmFyIHVlPWZ1bmN0aW9uIFl0dChkKXt2YXIgZz1kLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7cmV0dXJuIGcuY2xhc3NOYW1lPSJodENoZWNrYm94UmVuZGVyZXJJ''@;'; + put 'put ''bnB1dCIsZy50eXBlPSJjaGVja2JveCIsZy5zZXRBdHRyaWJ1dGUoImF1dG9jb21wbGV0ZSIsIm9mZiIpLGcuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksZy5jbG9uZU5vZGUoITEpfShqKSxfZT1JLmxhYmVsLEJlPSExO2lmKHZvaWQgMD09PUkuY2hlY2tlZFRlbXBsYXRlJiYoSS5j''@;'; + put 'put ''aGVja2VkVGVtcGxhdGU9ITApLHZvaWQgMD09PUkudW5jaGVja2VkVGVtcGxhdGUmJihJLnVuY2hlY2tlZFRlbXBsYXRlPSExKSxEcChnKSxDPT09SS5jaGVja2VkVGVtcGxhdGV8fGV1KEMpLnRvTG9jYWxlTG93ZXJDYXNlKEkubG9jYWxlKT09PWV1KEkuY2hlY2tlZFRlbXBsYXRlKS50b0xv''@;'; + put 'put ''Y2FsZUxvd2VyQ2FzZShJLmxvY2FsZSk/dWUuY2hlY2tlZD0hMDpDPT09SS51bmNoZWNrZWRUZW1wbGF0ZXx8ZXUoQykudG9Mb2NhbGVMb3dlckNhc2UoSS5sb2NhbGUpPT09ZXUoSS51bmNoZWNrZWRUZW1wbGF0ZSkudG9Mb2NhbGVMb3dlckNhc2UoSS5sb2NhbGUpP3VlLmNoZWNrZWQ9ITE6''@;'; + put 'put ''ZGMoQyk/TzAodWUsIm5vVmFsdWUiKToodWUuc3R5bGUuZGlzcGxheT0ibm9uZSIsTzAodWUsImh0QmFkVmFsdWUiKSxCZT0hMCksdWUuc2V0QXR0cmlidXRlKF9PLGgpLHVlLnNldEF0dHJpYnV0ZShDTyx2KSwhQmUmJl9lKXt2YXIgTmU9IiI7aWYoX2UudmFsdWUpTmU9ImZ1bmN0aW9uIj09''@;'; + put 'put ''dHlwZW9mIF9lLnZhbHVlP19lLnZhbHVlLmNhbGwodGhpcyxoLHYseSxDKTpfZS52YWx1ZTtlbHNlIGlmKF9lLnByb3BlcnR5KXt2YXIgS2U9ZC5nZXREYXRhQXRSb3dQcm9wKGgsX2UucHJvcGVydHkpO05lPW51bGwhPT1LZT9LZToiIn12YXIgZHQ9ZnVuY3Rpb24gVXR0KGQsZyxoKXt2YXIg''@;'; + put 'put ''dj1kLmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7cmV0dXJuIHYuY2xhc3NOYW1lPSJodENoZWNrYm94UmVuZGVyZXJMYWJlbCAiLmNvbmNhdChoPyJmdWxsV2lkdGgiOiIiKSx2LmFwcGVuZENoaWxkKGQuY3JlYXRlVGV4dE5vZGUoZykpLHYuY2xvbmVOb2RlKCEwKX0oaixOZSwhMCE9PV9lLnNl''@;'; + put 'put ''cGFyYXRlZCk7ImJlZm9yZSI9PT1fZS5wb3NpdGlvbj9fZS5zZXBhcmF0ZWQ/KGcuYXBwZW5kQ2hpbGQoZHQpLGcuYXBwZW5kQ2hpbGQodWUpKTooZHQuYXBwZW5kQ2hpbGQodWUpLHVlPWR0KTooIV9lLnBvc2l0aW9ufHwiYWZ0ZXIiPT09X2UucG9zaXRpb24pJiYoX2Uuc2VwYXJhdGVkPyhn''@;'; + put 'put ''LmFwcGVuZENoaWxkKHVlKSxnLmFwcGVuZENoaWxkKGR0KSk6KGR0Lmluc2VydEJlZm9yZSh1ZSxkdC5maXJzdENoaWxkKSx1ZT1kdCkpfWZ1bmN0aW9uICR0KCl7dmFyIExuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0saXI9ZC5nZXRT''@;'; + put 'put ''ZWxlY3RlZFJhbmdlKCk7aWYoaXIpZm9yKHZhciBtcj0wO21yPGlyLmxlbmd0aDttcisrKXtmb3IodmFyIFNyPWlyW21yXS5nZXRUb3BTdGFydENvcm5lcigpLHdyPVNyLnJvdyxRcj1Tci5jb2wseWk9aXJbbXJdLmdldEJvdHRvbUVuZENvcm5lcigpLEtpPXlpLnJvdyxTbz15aS5jb2wsUG89''@;'; + put 'put ''W10sU2E9d3I7U2E8PUtpO1NhKz0xKWZvcih2YXIgSmE9UXI7SmE8PVNvO0phKz0xKXt2YXIgbGE9ZC5nZXRDZWxsTWV0YShTYSxKYSk7aWYoImNoZWNrYm94IiE9PWxhLnR5cGUpcmV0dXJuO2lmKCEwIT09bGEucmVhZE9ubHkpe3ZvaWQgMD09PWxhLmNoZWNrZWRUZW1wbGF0ZSYmKGxhLmNo''@;'; + put 'put ''ZWNrZWRUZW1wbGF0ZT0hMCksdm9pZCAwPT09bGEudW5jaGVja2VkVGVtcGxhdGUmJihsYS51bmNoZWNrZWRUZW1wbGF0ZT0hMSk7dmFyIGFsPWQuZ2V0RGF0YUF0Q2VsbChTYSxKYSk7ITE9PT1Mbj9bbGEuY2hlY2tlZFRlbXBsYXRlLGxhLmNoZWNrZWRUZW1wbGF0ZS50b1N0cmluZygpXS5p''@;'; + put 'put ''bmNsdWRlcyhhbCk/UG8ucHVzaChbU2EsSmEsbGEudW5jaGVja2VkVGVtcGxhdGVdKTpbbGEudW5jaGVja2VkVGVtcGxhdGUsbGEudW5jaGVja2VkVGVtcGxhdGUudG9TdHJpbmcoKSxudWxsLHZvaWQgMF0uaW5jbHVkZXMoYWwpJiZQby5wdXNoKFtTYSxKYSxsYS5jaGVja2VkVGVtcGxhdGVd''@;'; + put 'put ''KTpQby5wdXNoKFtTYSxKYSxsYS51bmNoZWNrZWRUZW1wbGF0ZV0pfX1Qby5sZW5ndGg+MCYmZC5zZXREYXRhQXRDZWxsKFBvKX19ZnVuY3Rpb24gZm4oKXt2YXIgTG49ZC5nZXRTZWxlY3RlZFJhbmdlKCk7aWYoTG4pe2Zvcih2YXIgaXI9MDtpcjxMbi5sZW5ndGg7aXIrKylmb3IodmFyIG1y''@;'; + put 'put ''PUxuW2lyXS5nZXRUb3BTdGFydENvcm5lcigpLFNyPUxuW2lyXS5nZXRCb3R0b21FbmRDb3JuZXIoKSx3cj1tci5yb3c7d3I8PVNyLnJvdzt3cisrKWZvcih2YXIgUXI9bXIuY29sO1FyPD1Tci5jb2w7UXIrKyl7dmFyIHlpPWQuZ2V0Q2VsbE1ldGEod3IsUXIpO2lmKCJjaGVja2JveCIhPT15''@;'; + put 'put ''aS50eXBlKXJldHVybiExO3ZhciBLaT1kLmdldENlbGwod3IsUXIpO2lmKG51bGw9PUtpKXJldHVybiEwO2lmKEtpLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0W3R5cGU9Y2hlY2tib3hdIikubGVuZ3RoPjAmJiF5aS5yZWFkT25seSlyZXR1cm4hMH1yZXR1cm4hMX19KCFfZXx8X2UmJiFfZS5z''@;'; + put 'put ''ZXBhcmF0ZWQpJiZnLmFwcGVuZENoaWxkKHVlKSxCZSYmZy5hcHBlbmRDaGlsZChqLmNyZWF0ZVRleHROb2RlKCIjYmFkLXZhbHVlIyIpKSx1TWUuaGFzKGQpfHwodU1lLnNldChkLCEwKSxmdW5jdGlvbiBPdCgpe2QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLmFk''@;'; + put 'put ''ZFNob3J0Y3V0cyhbe2tleXM6W1sic3BhY2UiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtyZXR1cm4gJHQoKSwhZm4oKX19LHtrZXlzOltbImVudGVyIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuICR0KCksIWZuKCl9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiBkLmdldFNldHRp''@;'; + put 'put ''bmdzKCkuZW50ZXJCZWdpbnNFZGl0aW5nfX0se2tleXM6W1siZGVsZXRlIl0sWyJiYWNrc3BhY2UiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtyZXR1cm4gJHQoITApLCFmbigpfSxyZWxhdGl2ZVRvR3JvdXA6WloscG9zaXRpb246ImJlZm9yZSJ9XSx7Z3JvdXA6ImNoZWNrYm94UmVuZGVyZXIi''@;'; + put 'put ''fSl9KCkpfWZ1bmN0aW9uIEY2ZShkKXtyZXR1cm4iSU5QVVQiPT09ZC50YWdOYW1lJiYiY2hlY2tib3giPT09ZC5nZXRBdHRyaWJ1dGUoInR5cGUiKX16by5nZXRTaW5nbGV0b24oKS5hZGQoIm1vZGlmeUF1dG9Db2x1bW5TaXplU2VlZCIsZnVuY3Rpb24oZCxnLGgpe3ZhciB2PWcubGFiZWws''@;'; + put 'put ''Qz1nLnJvdztpZigiY2hlY2tib3giPT09Zy50eXBlKXtpZih2KXt2YXIgdWU9di52YWx1ZSxfZT12LnByb3BlcnR5LEJlPWg7aWYodWUpQmU9ImZ1bmN0aW9uIj09dHlwZW9mIHVlP3VlKEMsZy5jb2x1bW4sZy5wcm9wLGgpOnVlO2Vsc2UgaWYoX2Upe3ZhciBOZT10aGlzLmdldERhdGFBdFJv''@;'; + put 'put ''d1Byb3AoQyxfZSk7QmU9bnVsbCE9PU5lP05lOmh9ZD1CZX1yZXR1cm4gZH19KSxQNmUuUkVOREVSRVJfVFlQRT0iY2hlY2tib3giO3ZhciBCUz1MKDI0NzE1KTtmdW5jdGlvbiBINmUoZCxnLGgsdix5LEMsSSl7dmFyIGo9QztpZih2NChqKSl7dmFyIHVlPUkubnVtZXJpY0Zvcm1hdCxfZT11''@;'; + put 'put ''ZSYmdWUuY3VsdHVyZXx8Ii0iLEJlPXVlJiZ1ZS5wYXR0ZXJuLE5lPUkuY2xhc3NOYW1lfHwiIixLZT1OZS5sZW5ndGg/TmUuc3BsaXQoIiAiKTpbXTtpZih2b2lkIDAhPT1fZSYmIUJTLmxhbmd1YWdlcygpW19lXSl7dmFyIGR0PV9lLnJlcGxhY2UoIi0iLCIiKSxPdD1CUy5hbGxMYW5ndWFn''@;'; + put 'put ''ZXM/QlMuYWxsTGFuZ3VhZ2VzW19lXTpCU1tkdF07T3QmJkJTLnJlZ2lzdGVyTGFuZ3VhZ2UoT3QpfUJTLnNldExhbmd1YWdlKF9lKSxqPUJTKGopLmZvcm1hdChCZXx8IjAiKSxLZS5pbmRleE9mKCJodExlZnQiKTwwJiZLZS5pbmRleE9mKCJodENlbnRlciIpPDAmJktlLmluZGV4T2YoImh0''@;'; + put 'put ''UmlnaHQiKTwwJiZLZS5pbmRleE9mKCJodEp1c3RpZnkiKTwwJiZLZS5wdXNoKCJodFJpZ2h0IiksS2UuaW5kZXhPZigiaHROdW1lcmljIik8MCYmS2UucHVzaCgiaHROdW1lcmljIiksSS5jbGFzc05hbWU9S2Uuam9pbigiICIpLGcuZGlyPSJsdHIifU93KGQsZyxoLHYseSxqLEkpfWZ1bmN0''@;'; + put 'put ''aW9uIE42ZShkLGcsaCx2LHksQyxJKXtPdy5hcHBseSh0aGlzLFtkLGcsaCx2LHksQyxJXSk7dmFyIHVlPUkuaGFzaFN5bWJvbHx8IioiLF9lPSIiO2lhKChJLmhhc2hMZW5ndGh8fGcuaW5uZXJIVE1MLmxlbmd0aCktMSxmdW5jdGlvbigpe19lKz11ZX0pLF93KGcsX2UpfWZ1bmN0aW9uIFY2''@;'; + put 'put ''ZShkLGcsaCx2LHksQyxJKXtPdy5hcHBseSh0aGlzLFtkLGcsaCx2LHksQyxJXSksZy5kaXI9Imx0ciJ9ZnVuY3Rpb24gZnooZCxnKXt2YXIgaD1kO251bGw9PWgmJihoPSIiKSx0aGlzLmFsbG93RW1wdHkmJiIiPT09aD9nKCEwKTp0aGlzLnN0cmljdCYmdGhpcy5zb3VyY2U/ImZ1bmN0aW9u''@;'; + put 'put ''Ij09dHlwZW9mIHRoaXMuc291cmNlP3RoaXMuc291cmNlKGgsaE1lKGgsZykpOmhNZShoLGcpKHRoaXMuc291cmNlKTpnKCEwKX1mdW5jdGlvbiBoTWUoZCxnKXt2YXIgaD1kO3JldHVybiBmdW5jdGlvbih2KXtmb3IodmFyIHk9ITEsQz0wLEk9di5sZW5ndGg7QzxJO0MrKylpZihoPT09dltD''@;'; + put 'put ''XSl7eT0hMDticmVha31nKHkpfX1mdW5jdGlvbiBkTWUoZCl7dmFyIGc9bmV3IERhdGUoZCk7cmV0dXJuIGlzTmFOKG5ldyBEYXRlKCIiLmNvbmNhdChkLCJUMDA6MDAiKSkuZ2V0RGF0ZSgpKT9nOm5ldyBEYXRlKGcuZ2V0VGltZSgpKzZlNCpnLmdldFRpbWV6b25lT2Zmc2V0KCkpfWZ1bmN0''@;'; + put 'put ''aW9uIE10ZShkLGcpe3ZhciBoPW5fZSgiZGF0ZSIsdGhpcy5pbnN0YW5jZSksdj1kLHk9ITA7bnVsbD09diYmKHY9IiIpO3ZhciBDPVRsKHYsdGhpcy5kYXRlRm9ybWF0fHxoLmRlZmF1bHREYXRlRm9ybWF0LCEwKS5pc1ZhbGlkKCksST1UbChuZXcgRGF0ZSh2KSkuaXNWYWxpZCgpfHxDO2lm''@;'; + put 'put ''KHRoaXMuYWxsb3dFbXB0eSYmIiI9PT12JiYoST0hMCxDPSEwKSxJfHwoeT0hMSksIUkmJkMmJih5PSEwKSxJJiYhQylpZighMD09PXRoaXMuY29ycmVjdEZvcm1hdCl7dmFyIGo9ZnVuY3Rpb24gcm50KGQsZyl7dmFyIGg9VGwoZE1lKGQpKSx2PVRsKGQsZykseT1kLnNlYXJjaCgvW0Etel0v''@;'; + put 'put ''Zyk+LTE7cmV0dXJuKGguaXNWYWxpZCgpJiZoLmZvcm1hdCgieCIpPT09di5mb3JtYXQoIngiKXx8IXYuaXNWYWxpZCgpfHx5P2g6dikuZm9ybWF0KGcpfSh2LHRoaXMuZGF0ZUZvcm1hdCksdWU9dGhpcy5pbnN0YW5jZS50b1Zpc3VhbFJvdyh0aGlzLnJvdyksX2U9dGhpcy5pbnN0YW5jZS50''@;'; + put 'put ''b1Zpc3VhbENvbHVtbih0aGlzLmNvbCk7dGhpcy5pbnN0YW5jZS5zZXREYXRhQXRDZWxsKHVlLF9lLGosImRhdGVWYWxpZGF0b3IiKSx5PSEwfWVsc2UgeT0hMTtnKHkpfWZ1bmN0aW9uIGo2ZShkLGcpe3ZhciBoPWQ7bnVsbD09aCYmKGg9IiIpLGcoISghdGhpcy5hbGxvd0VtcHR5fHwiIiE9''@;'; + put 'put ''PWgpfHwiIiE9PWgmJnY0KGQpKX1INmUuUkVOREVSRVJfVFlQRT0ibnVtZXJpYyIsTjZlLlJFTkRFUkVSX1RZUEU9InBhc3N3b3JkIixWNmUuUkVOREVSRVJfVFlQRT0idGltZSIsZnouVkFMSURBVE9SX1RZUEU9ImF1dG9jb21wbGV0ZSIsTCg3Nzk0KSxNdGUuVkFMSURBVE9SX1RZUEU9ImRh''@;'; + put 'put ''dGUiLGo2ZS5WQUxJREFUT1JfVFlQRT0ibnVtZXJpYyI7dmFyIG9udD1bIllZWVktTU0tRERUSEg6bW06c3MuU1NTWiIsIlgiLCJ4Il07ZnVuY3Rpb24gRXRlKGQsZyl7dmFyIGg9dGhpcy50aW1lRm9ybWF0fHwiaDptbTpzcyBhIix2PSEwLHk9ZDtudWxsPT09eSYmKHk9IiIpLHk9L15cZHsz''@;'; + put 'put ''LH0kLy50ZXN0KHkpP3BhcnNlSW50KHksMTApOnk7dmFyIEM9L15cZHsxLDJ9JC8udGVzdCh5KTtDJiYoeSs9IjowMCIpO3ZhciBJPVRsKHksb250LCEwKS5pc1ZhbGlkKCk/VGwoeSk6VGwoeSxoKSxqPUkuaXNWYWxpZCgpLHVlPVRsKHksaCwhMCkuaXNWYWxpZCgpJiYhQztpZih0aGlzLmFs''@;'; + put 'put ''bG93RW1wdHkmJiIiPT09eSYmKGo9ITAsdWU9ITApLGp8fCh2PSExKSwhaiYmdWUmJih2PSEwKSxqJiYhdWUpaWYoITA9PT10aGlzLmNvcnJlY3RGb3JtYXQpe3ZhciBfZT1JLmZvcm1hdChoKSxCZT10aGlzLmluc3RhbmNlLnRvVmlzdWFsUm93KHRoaXMucm93KSxOZT10aGlzLmluc3RhbmNl''@;'; + put 'put ''LnRvVmlzdWFsQ29sdW1uKHRoaXMuY29sKTt0aGlzLmluc3RhbmNlLnNldERhdGFBdENlbGwoQmUsTmUsX2UsInRpbWVWYWxpZGF0b3IiKSx2PSEwfWVsc2Ugdj0hMTtnKHYpfUV0ZS5WQUxJREFUT1JfVFlQRT0idGltZSI7dmFyIHVudD17Q0VMTF9UWVBFOiJhdXRvY29tcGxldGUiLGVkaXRv''@;'; + put 'put ''cjp5NmUscmVuZGVyZXI6Yk8sdmFsaWRhdG9yOmZ6fSxmbnQ9e0NFTExfVFlQRToiY2hlY2tib3giLGVkaXRvcjpKU2UscmVuZGVyZXI6UDZlfSxkbnQ9e0NFTExfVFlQRToiZGF0ZSIsZWRpdG9yOnFTZSxyZW5kZXJlcjpiTyx2YWxpZGF0b3I6TXRlfSxnbnQ9e0NFTExfVFlQRToiZHJvcGRv''@;'; + put 'put ''d24iLGVkaXRvcjpNNmUscmVuZGVyZXI6Yk8sdmFsaWRhdG9yOmZ6fSx2bnQ9e0NFTExfVFlQRToiaGFuZHNvbnRhYmxlIixlZGl0b3I6cDZlLHJlbmRlcmVyOmJPfSx5bnQ9e0NFTExfVFlQRToibnVtZXJpYyIsZWRpdG9yOm5NZSxyZW5kZXJlcjpINmUsdmFsaWRhdG9yOmo2ZSxkYXRhVHlw''@;'; + put 'put ''ZToibnVtYmVyIn0sYm50PXtDRUxMX1RZUEU6InBhc3N3b3JkIixlZGl0b3I6aU1lLHJlbmRlcmVyOk42ZSxjb3B5YWJsZTohMX0sQ250PXtDRUxMX1RZUEU6InRpbWUiLGVkaXRvcjpzTWUscmVuZGVyZXI6VjZlLHZhbGlkYXRvcjpFdGV9O2Z1bmN0aW9uIHBNZShkLGcpeyhudWxsPT1nfHxn''@;'; + put 'put ''PmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIGdNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCEx''@;'; + put 'put ''LHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fUwoMzgxODMpO3ZhciBtTWU9bmV3IE1hcChbWyJwbHVnaW4iLGZ1bmN0aW9uIEZ6ZShkKXtyZXR1cm4hIXpaKGQpfV0sWyJjZWxsLXR5cGUiLFFD''@;'; + put 'put ''ZV0sWyJlZGl0b3IiLHRfZV0sWyJyZW5kZXJlciIseV9lXSxbInZhbGlkYXRvciIsd19lXV0pLFBTPW5ldyBXZWFrTWFwLFo2ZT1bXSxEZz1udWxsLHZNZT1uZXcgV2Vha1NldCxZcz1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9dGhpczsoZnVuY3Rpb24gSW50KGQsZyl7aWYoIShk''@;'; + put 'put ''IGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLGZ1bmN0aW9uIExudChkLGcpeyhmdW5jdGlvbiBPbnQoZCxnKXtpZihnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlh''@;'; + put 'put ''bGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoZCxnKSxnLmFkZChkKX0odGhpcyx2TWUpLFNnKHRoaXMsImhvdCIsZyx7d3JpdGFibGU6ITF9KSxQUy5zZXQodGhpcyx7aG9va3M6e319KSxEZz1udWxsLHRoaXMucGx1Z2luTmFtZT1udWxsLHRo''@;'; + put 'put ''aXMucGx1Z2luc0luaXRpYWxpemVkQ2FsbGJhY2tzPVtdLHRoaXMuaXNQbHVnaW5zUmVhZHk9ITEsdGhpcy5lbmFibGVkPSExLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGgub25BZnRlclBs''@;'; + put 'put ''dWdpbnNJbml0aWFsaXplZCgpfSksdGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJVcGRhdGVTZXR0aW5ncyIsZnVuY3Rpb24odil7cmV0dXJuIGgub25VcGRhdGVTZXR0aW5ncyh2KX0pLHRoaXMuaG90LmFkZEhvb2soImJlZm9yZUluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGguaW5pdCgpfSl9cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uIERudChkLGcsaCl7ZyYmZ01lKGQucHJvdG90eXBlLGcpLGgmJmdNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXM7dGhpcy5wbHVnaW5O''@;'; + put 'put ''YW1lPXRoaXMuaG90LmdldFBsdWdpbk5hbWUodGhpcyk7dmFyIHY9dGhpcy5jb25zdHJ1Y3Rvci5QTFVHSU5fREVQUyx5PUFycmF5LmlzQXJyYXkodik/djpbXTtpZih5Lmxlbmd0aD4wKXt2YXIgQz1bXTtpZih5LmZvckVhY2goZnVuY3Rpb24oX2Upe3ZhciBOZT1mdW5jdGlvbiBTbnQoZCxn''@;'; + put 'put ''KXtyZXR1cm4gZnVuY3Rpb24gVG50KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiB4bnQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51''@;'; + put 'put ''bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVy''@;'; + put 'put ''biYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBFbnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHBNZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0x''@;'; + put 'put ''KTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVz''@;'; + put 'put ''dChoKSlyZXR1cm4gcE1lKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBNbnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11''@;'; + put 'put ''c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShfZS5zcGxpdCgiOiIpLDIpLEtlPU5lWzBdLGR0PU5lWzFdO2lmKCFtTWUuaGFzKEtlKSl0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gcGx1Z2luIGRlcGVuZGVuY3kgdHlwZSAiJy5jb25jYXQoS2UsJyIgd2FzIGZv''@;'; + put 'put ''dW5kLicpKTttTWUuZ2V0KEtlKShkdCl8fEMucHVzaCgiIC0gIi5jb25jYXQoZHQsIiAoIikuY29uY2F0KEtlLCIpIikpfSksQy5sZW5ndGg+MCl7dmFyIEk9WyJUaGUgIi5jb25jYXQodGhpcy5wbHVnaW5OYW1lLCIgcGx1Z2luIHJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgbW9kdWxlczpcbiIp''@;'; + put 'put ''LCIiLmNvbmNhdChDLmpvaW4oIlxuIiksIlxuIildLmpvaW4oIiIpO1o2ZS5wdXNoKEkpfX1pZihEZ3x8KERnPVozZSgpKSxEZy5pbmRleE9mKCJVbmRvUmVkbyIpPj0wJiZEZy5zcGxpY2UoRGcuaW5kZXhPZigiVW5kb1JlZG8iKSwxKSxEZy5pbmRleE9mKHRoaXMucGx1Z2luTmFtZSk+PTAm''@;'; + put 'put ''JkRnLnNwbGljZShEZy5pbmRleE9mKHRoaXMucGx1Z2luTmFtZSksMSksdGhpcy5ob3QuYWRkSG9va09uY2UoImFmdGVyUGx1Z2luc0luaXRpYWxpemVkIixmdW5jdGlvbigpe2guaXNFbmFibGVkJiZoLmlzRW5hYmxlZCgpJiZoLmVuYWJsZVBsdWdpbigpfSksMD09PURnLmxlbmd0aCl7aWYo''@;'; + put 'put ''WjZlLmxlbmd0aD4wKXt2YXIgdWU9WyIiLmNvbmNhdChaNmUuam9pbigiXG4iKSwiXG4iKSwiWW91IGhhdmUgdG8gaW1wb3J0IGFuZCByZWdpc3RlciB0aGVtIG1hbnVhbGx5LiJdLmpvaW4oIiIpO3Rocm93IG5ldyBFcnJvcih1ZSl9dGhpcy5ob3QucnVuSG9va3MoImFmdGVyUGx1Z2luc0lu''@;'; + put 'put ''aXRpYWxpemVkIil9dGhpcy5pbml0aWFsaXplZD0hMH19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9ITB9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZlbnRNYW5hZ2VyJiZ0aGlzLmV2ZW50TWFuYWdlci5j''@;'; + put 'put ''bGVhcigpLHRoaXMuY2xlYXJIb29rcygpLHRoaXMuZW5hYmxlZD0hMX19LHtrZXk6ImFkZEhvb2siLHZhbHVlOmZ1bmN0aW9uKGgsdil7UFMuZ2V0KHRoaXMpLmhvb2tzW2hdPVBTLmdldCh0aGlzKS5ob29rc1toXXx8W107dmFyIHk9UFMuZ2V0KHRoaXMpLmhvb2tzW2hdO3RoaXMuaG90LmFk''@;'; + put 'put ''ZEhvb2soaCx2KSx5LnB1c2godiksUFMuZ2V0KHRoaXMpLmhvb2tzW2hdPXl9fSx7a2V5OiJyZW1vdmVIb29rcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcztVcihQUy5nZXQodGhpcykuaG9va3NbaF18fFtdLGZ1bmN0aW9uKHkpe3YuaG90LnJlbW92ZUhvb2soaCx5KX0pfX0se2tl''@;'; + put 'put ''eToiY2xlYXJIb29rcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9UFMuZ2V0KHRoaXMpLmhvb2tzO0dsKHYsZnVuY3Rpb24oeSxDKXtyZXR1cm4gaC5yZW1vdmVIb29rcyhDKX0pLHYubGVuZ3RoPTB9fSx7a2V5OiJjYWxsT25QbHVnaW5zUmVhZHkiLHZhbHVlOmZ1bmN0aW9uKGgp''@;'; + put 'put ''e3RoaXMuaXNQbHVnaW5zUmVhZHk/aCgpOnRoaXMucGx1Z2luc0luaXRpYWxpemVkQ2FsbGJhY2tzLnB1c2goaCl9fSx7a2V5OiJvbkFmdGVyUGx1Z2luc0luaXRpYWxpemVkIix2YWx1ZTpmdW5jdGlvbigpe1VyKHRoaXMucGx1Z2luc0luaXRpYWxpemVkQ2FsbGJhY2tzLGZ1bmN0aW9uKGgp''@;'; + put 'put ''e3JldHVybiBoKCl9KSx0aGlzLnBsdWdpbnNJbml0aWFsaXplZENhbGxiYWNrcy5sZW5ndGg9MCx0aGlzLmlzUGx1Z2luc1JlYWR5PSEwfX0se2tleToib25VcGRhdGVTZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9ZnVuY3Rpb24gUm50KGQsZyxoKXtpZighZy5oYXMoZCkpdGhy''@;'; + put 'put ''b3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiBofSh0aGlzLHZNZSxQbnQpLmNhbGwodGhpcyxoKTt0aGlzLmlzRW5hYmxlZCYmKHRoaXMuZW5hYmxlZCYmIXRoaXMuaXNFbmFibGVkKCkmJnRoaXMuZGlzYWJs''@;'; + put 'put ''ZVBsdWdpbigpLCF0aGlzLmVuYWJsZWQmJnRoaXMuaXNFbmFibGVkKCkmJnRoaXMuZW5hYmxlUGx1Z2luKCksdGhpcy5lbmFibGVkJiZ0aGlzLmlzRW5hYmxlZCgpJiZ2JiZ0aGlzLnVwZGF0ZVBsdWdpbihoKSl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tl''@;'; + put 'put ''eToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO3RoaXMuZXZlbnRNYW5hZ2VyJiZ0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCksdGhpcy5jbGVhckhvb2tzKCksR2wodGhpcyxmdW5jdGlvbih2LHkpeyJob3QiIT09eSYmKGhbeV09bnVsbCl9KSxkZWxldGUgdGhpcy50''@;'; + put 'put ''LGRlbGV0ZSB0aGlzLmhvdH19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImJhc2UifX0se2tleToiU0VUVElOR19LRVlTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5QTFVHSU5fS0VZXX19XSksZH0oKTtmdW5jdGlvbiBQbnQoZCl7aWYoIWQpcmV0dXJu''@;'; + put 'put ''ITE7dmFyIGc9dGhpcy5jb25zdHJ1Y3Rvci5TRVRUSU5HX0tFWVM7aWYoImJvb2xlYW4iPT10eXBlb2YgZylyZXR1cm4gZztmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKylpZih2b2lkIDAhPT1kW2dbaF1dKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEFNZShkLGcpeyhudWxsPT1nfHxn''@;'; + put 'put ''PmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHlNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCEx''@;'; + put 'put ''LHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBHbnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBabnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5ob3Q9Zyx0aGlzLmNvbnRhaW5lcj1udWxsLHRoaXMuaW5qZWN0ZWQ9ITEsdGhpcy5yb3dzPVtdLHRoaXMuY29sdW1ucz1bXSx0aGlzLnNhbXBsZXM9bnVsbCx0aGlzLnNldHRpbmdz''@;'; + put 'put ''PXt1c2VIZWFkZXJzOiEwfX1yZXR1cm4gZnVuY3Rpb24gem50KGQsZyxoKXtnJiZ5TWUoZC5wcm90b3R5cGUsZyksaCYmeU1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImFkZFJvdyIsdmFsdWU6ZnVuY3Rpb24oaCx2''@;'; + put 'put ''KXtpZih0aGlzLmNvbHVtbnMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiRG9lc24ndCBzdXBwb3J0IG11bHRpLWRpbWVuc2lvbmFsIHRhYmxlIik7dGhpcy5yb3dzLmxlbmd0aHx8KHRoaXMuY29udGFpbmVyPXRoaXMuY3JlYXRlQ29udGFpbmVyKHRoaXMuaG90LnJvb3RFbGVtZW50LmNsYXNz''@;'; + put 'put ''TmFtZSkpO3ZhciB5PXtyb3c6aH07dGhpcy5yb3dzLnB1c2goeSksdGhpcy5zYW1wbGVzPXYsdGhpcy50YWJsZT10aGlzLmNyZWF0ZVRhYmxlKHRoaXMuaG90LnRhYmxlLmNsYXNzTmFtZSksdGhpcy50YWJsZS5jb2xHcm91cC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbEdyb3Vwc0NvbCgp''@;'; + put 'put ''KSx0aGlzLnRhYmxlLnRyLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlUm93KGgpKSx0aGlzLmNvbnRhaW5lci5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy50YWJsZS5mcmFnbWVudCkseS50YWJsZT10aGlzLnRhYmxlLnRhYmxlfX0se2tleToiYWRkQ29sdW1uSGVhZGVyc1JvdyIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oaCl7aWYobnVsbCE9dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKDApKXt2YXIgeT17cm93Oi0xfTt0aGlzLnJvd3MucHVzaCh5KSx0aGlzLmNvbnRhaW5lcj10aGlzLmNyZWF0ZUNvbnRhaW5lcih0aGlzLmhvdC5yb290RWxlbWVudC5jbGFzc05hbWUpLHRoaXMuc2FtcGxlcz1oLHRo''@;'; + put 'put ''aXMudGFibGU9dGhpcy5jcmVhdGVUYWJsZSh0aGlzLmhvdC50YWJsZS5jbGFzc05hbWUpLHRoaXMudGFibGUuY29sR3JvdXAuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb2xHcm91cHNDb2woKSksdGhpcy5hcHBlbmRDb2x1bW5IZWFkZXJzUm93KCksdGhpcy5jb250YWluZXIuY29udGFpbmVy''@;'; + put 'put ''LmFwcGVuZENoaWxkKHRoaXMudGFibGUuZnJhZ21lbnQpLHkudGFibGU9dGhpcy50YWJsZS50YWJsZX19fSx7a2V5OiJhZGRDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKGgsdil7aWYodGhpcy5yb3dzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkRvZXNuJ3Qgc3VwcG9ydCBtdWx0aS1kaW1lbnNp''@;'; + put 'put ''b25hbCB0YWJsZSIpO3RoaXMuY29sdW1ucy5sZW5ndGh8fCh0aGlzLmNvbnRhaW5lcj10aGlzLmNyZWF0ZUNvbnRhaW5lcih0aGlzLmhvdC5yb290RWxlbWVudC5jbGFzc05hbWUpKTt2YXIgeT17Y29sOmh9O3RoaXMuY29sdW1ucy5wdXNoKHkpLHRoaXMuc2FtcGxlcz12LHRoaXMudGFibGU9''@;'; + put 'put ''dGhpcy5jcmVhdGVUYWJsZSh0aGlzLmhvdC50YWJsZS5jbGFzc05hbWUpLHRoaXMuZ2V0U2V0dGluZygidXNlSGVhZGVycyIpJiZudWxsIT09dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKGgpJiZ0aGlzLmhvdC52aWV3LmFwcGVuZENvbEhlYWRlcihoLHRoaXMudGFibGUudGgpLHRoaXMudGFibGUu''@;'; + put 'put ''dEJvZHkuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb2woaCkpLHRoaXMuY29udGFpbmVyLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlLmZyYWdtZW50KSx5LnRhYmxlPXRoaXMudGFibGUudGFibGV9fSx7a2V5OiJnZXRIZWlnaHRzIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmlu''@;'; + put 'put ''amVjdGVkfHx0aGlzLmluamVjdFRhYmxlKCksVXIodGhpcy5yb3dzLGZ1bmN0aW9uKHYpe2godi5yb3csRDEodi50YWJsZSktMSl9KX19LHtrZXk6ImdldFdpZHRocyIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5pbmplY3RlZHx8dGhpcy5pbmplY3RUYWJsZSgpLFVyKHRoaXMuY29sdW1ucyxm''@;'; + put 'put ''dW5jdGlvbih2KXt2YXIgeT12LnRhYmxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2godi5jb2wsTWF0aC5jZWlsKHkud2lkdGgpKX0pfX0se2tleToic2V0U2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuc2V0dGluZ3M9aH19LHtrZXk6InNldFNldHRpbmciLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKGgsdil7dGhpcy5zZXR0aW5nc3x8KHRoaXMuc2V0dGluZ3M9e30pLHRoaXMuc2V0dGluZ3NbaF09dn19LHtrZXk6ImdldFNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNldHRpbmdzfX0se2tleToiZ2V0U2V0dGluZyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuc2V0dGluZ3M/dGhpcy5zZXR0aW5nc1toXTpudWxsfX0se2tleToiY3JlYXRlQ29sR3JvdXBzQ29sIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO3JldHVybiB0aGlzLmhvdC5oYXNSb3dI''@;'; + put 'put ''ZWFkZXJzKCkmJnYuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb2xFbGVtZW50KC0xKSksdGhpcy5zYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oeSl7VXIoeS5zdHJpbmdzLGZ1bmN0aW9uKEMpe3YuYXBwZW5kQ2hpbGQoaC5jcmVhdGVDb2xFbGVtZW50KEMuY29sKSl9KX0pLHZ9fSx7a2V5OiJj''@;'; + put 'put ''cmVhdGVSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT10aGlzLmhvdC5yb290RG9jdW1lbnQsQz15LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxJPXkuY3JlYXRlRWxlbWVudCgidGgiKTtyZXR1cm4gdGhpcy5ob3QuaGFzUm93SGVhZGVycygpJiYodGhpcy5ob3Qudmlldy5h''@;'; + put 'put ''cHBlbmRSb3dIZWFkZXIoaCxJKSxDLmFwcGVuZENoaWxkKEkpKSx0aGlzLnNhbXBsZXMuZm9yRWFjaChmdW5jdGlvbihqKXtVcihqLnN0cmluZ3MsZnVuY3Rpb24odWUpe3ZhciBfZT11ZS5jb2wsQmU9di5ob3QuZ2V0Q2VsbE1ldGEoaCxfZSk7QmUuY29sPV9lLEJlLnJvdz1oO3ZhciBOZT12''@;'; + put 'put ''LmhvdC5nZXRDZWxsUmVuZGVyZXIoQmUpLEtlPXkuY3JlYXRlRWxlbWVudCgidGQiKTtLZS5zZXRBdHRyaWJ1dGUoImdob3N0LXRhYmxlIiwxKSxOZSh2LmhvdCxLZSxoLF9lLHYuaG90LmNvbFRvUHJvcChfZSksdWUudmFsdWUsQmUpLEMuYXBwZW5kQ2hpbGQoS2UpfSl9KSxDfX0se2tleToi''@;'; + put 'put ''YXBwZW5kQ29sdW1uSGVhZGVyc1JvdyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9dGhpcy5ob3Qucm9vdERvY3VtZW50LHk9di5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksQz1bXTtpZih0aGlzLmhvdC5oYXNSb3dIZWFkZXJzKCkpe3ZhciBJPXYuY3JlYXRlRWxlbWVudCgidGgi''@;'; + put 'put ''KTtDLnB1c2goWy0xLEldKSx5LmFwcGVuZENoaWxkKEkpfXRoaXMuc2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKGope1VyKGouc3RyaW5ncyxmdW5jdGlvbih1ZSl7dmFyIF9lPXVlLmNvbCxCZT12LmNyZWF0ZUVsZW1lbnQoInRoIik7Qy5wdXNoKFtfZSxCZV0pLHkuYXBwZW5kQ2hpbGQoQmUp''@;'; + put 'put ''fSl9KSx0aGlzLnRhYmxlLnRIZWFkLmFwcGVuZENoaWxkKHkpLFVyKEMsZnVuY3Rpb24oail7dmFyIHVlPWZ1bmN0aW9uIEZudChkLGcpe3JldHVybiBmdW5jdGlvbiBqbnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIFZudChkLGcpe3ZhciBoPW51bGw9''@;'; + put 'put ''PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1''@;'; + put 'put ''ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIE5udChkLGcpe2lmKGQpe2lmKCJzdHJpbmci''@;'; + put 'put ''PT10eXBlb2YgZClyZXR1cm4gQU1lKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJy''@;'; + put 'put ''YXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBBTWUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIEhudCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0''@;'; + put 'put ''cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGosMik7aC5ob3Qudmlldy5hcHBlbmRDb2xIZWFkZXIodWVbMF0sdWVbMV0p''@;'; + put 'put ''fSl9fSx7a2V5OiJjcmVhdGVDb2wiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT10aGlzLmhvdC5yb290RG9jdW1lbnQsQz15LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4gdGhpcy5zYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oSSl7VXIoSS5zdHJpbmdzLGZ1bmN0aW9u''@;'; + put 'put ''KGope3ZhciB1ZT1qLnJvdyxfZT12LmhvdC5nZXRDZWxsTWV0YSh1ZSxoKTtfZS5jb2w9aCxfZS5yb3c9dWU7dmFyIEJlPXYuaG90LmdldENlbGxSZW5kZXJlcihfZSksTmU9eS5jcmVhdGVFbGVtZW50KCJ0ZCIpLEtlPXkuY3JlYXRlRWxlbWVudCgidHIiKTtOZS5zZXRBdHRyaWJ1dGUoImdo''@;'; + put 'put ''b3N0LXRhYmxlIiwxKSxCZSh2LmhvdCxOZSx1ZSxoLHYuaG90LmNvbFRvUHJvcChoKSxqLnZhbHVlLF9lKSxLZS5hcHBlbmRDaGlsZChOZSksQy5hcHBlbmRDaGlsZChLZSl9KX0pLEN9fSx7a2V5OiJjbGVhbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJvd3MubGVuZ3RoPTAsdGhpcy5yb3dz''@;'; + put 'put ''Wy0xXT12b2lkIDAsdGhpcy5jb2x1bW5zLmxlbmd0aD0wLHRoaXMuc2FtcGxlcyYmdGhpcy5zYW1wbGVzLmNsZWFyKCksdGhpcy5zYW1wbGVzPW51bGwsdGhpcy5yZW1vdmVUYWJsZSgpfX0se2tleToiaW5qZWN0VGFibGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0''@;'; + put 'put ''aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7dGhpcy5pbmplY3RlZHx8KChofHx0aGlzLmhvdC5yb290RWxlbWVudCkuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIuZnJhZ21lbnQpLHRoaXMuaW5qZWN0ZWQ9ITApfX0se2tleToicmVtb3ZlVGFibGUiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKCl7dGhpcy5pbmplY3RlZCYmdGhpcy5jb250YWluZXIuY29udGFpbmVyLnBhcmVudE5vZGUmJih0aGlzLmNvbnRhaW5lci5jb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lci5jb250YWluZXIpLHRoaXMuY29udGFpbmVyPW51bGwsdGhp''@;'; + put 'put ''cy5pbmplY3RlZD0hMSl9fSx7a2V5OiJjcmVhdGVDb2xFbGVtZW50Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY29sIik7cmV0dXJuIHYuc3R5bGUud2lkdGg9IiIuY29uY2F0KHRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUu''@;'; + put 'put ''Z2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoaCksInB4Iiksdn19LHtrZXk6ImNyZWF0ZVRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIix2PXRoaXMuaG90LnJvb3REb2N1bWVudCx5PXYu''@;'; + put 'put ''Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLEM9di5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpLEk9di5jcmVhdGVFbGVtZW50KCJ0aGVhZCIpLGo9di5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpLHVlPXYuY3JlYXRlRWxlbWVudCgiY29sZ3JvdXAiKSxfZT12LmNyZWF0ZUVsZW1lbnQoInRyIiksQmU9''@;'; + put 'put ''di5jcmVhdGVFbGVtZW50KCJ0aCIpO3JldHVybiB0aGlzLmlzVmVydGljYWwoKSYmQy5hcHBlbmRDaGlsZCh1ZSksdGhpcy5pc0hvcml6b250YWwoKSYmKF9lLmFwcGVuZENoaWxkKEJlKSxJLmFwcGVuZENoaWxkKF9lKSxDLnN0eWxlLnRhYmxlTGF5b3V0PSJhdXRvIixDLnN0eWxlLndpZHRo''@;'; + put 'put ''PSJhdXRvIiksQy5hcHBlbmRDaGlsZChJKSx0aGlzLmlzVmVydGljYWwoKSYmai5hcHBlbmRDaGlsZChfZSksQy5hcHBlbmRDaGlsZChqKSxPMChDLGgpLHkuYXBwZW5kQ2hpbGQoQykse2ZyYWdtZW50OnksdGFibGU6Qyx0SGVhZDpJLHRCb2R5OmosY29sR3JvdXA6dWUsdHI6X2UsdGg6QmV9''@;'; + put 'put ''fX0se2tleToiY3JlYXRlQ29udGFpbmVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIix2PXRoaXMuaG90LnJvb3REb2N1bWVudCx5PXYuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLEM9di5j''@;'; + put 'put ''cmVhdGVFbGVtZW50KCJkaXYiKSxJPSJodEdob3N0VGFibGUgaHRBdXRvU2l6ZSAiLmNvbmNhdChoLnRyaW0oKSk7cmV0dXJuIE8wKEMsSSkseS5hcHBlbmRDaGlsZChDKSx7ZnJhZ21lbnQ6eSxjb250YWluZXI6Q319fSx7a2V5OiJpc1ZlcnRpY2FsIix2YWx1ZTpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biEoIXRoaXMucm93cy5sZW5ndGh8fHRoaXMuY29sdW1ucy5sZW5ndGgpfX0se2tleToiaXNIb3Jpem9udGFsIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEoIXRoaXMuY29sdW1ucy5sZW5ndGh8fHRoaXMucm93cy5sZW5ndGgpfX1dKSxkfSgpO2NvbnN0IHo2ZT1HbnQ7ZnVuY3Rpb24gd01l''@;'; + put 'put ''KGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFFudD1m''@;'; + put 'put ''dW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIFludChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnNhbXBsZXM9bnVsbCx0aGlzLmRhdGFGYWN0b3J5''@;'; + put 'put ''PWcsdGhpcy5jdXN0b21TYW1wbGVDb3VudD1udWxsLHRoaXMuYWxsb3dEdXBsaWNhdGVzPSExfXJldHVybiBmdW5jdGlvbiBVbnQoZCxnLGgpe2cmJndNZShkLnByb3RvdHlwZSxnKSxoJiZ3TWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9''@;'; + put 'put ''KX0oZCxbe2tleToiZ2V0U2FtcGxlQ291bnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VzdG9tU2FtcGxlQ291bnQ/dGhpcy5jdXN0b21TYW1wbGVDb3VudDpkLlNBTVBMRV9DT1VOVH19LHtrZXk6InNldFNhbXBsZUNvdW50Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmN1c3Rv''@;'; + put 'put ''bVNhbXBsZUNvdW50PWh9fSx7a2V5OiJzZXRBbGxvd0R1cGxpY2F0ZXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuYWxsb3dEdXBsaWNhdGVzPWh9fSx7a2V5OiJnZW5lcmF0ZVJvd1NhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIHRoaXMuZ2VuZXJhdGVTYW1wbGVzKCJyb3ci''@;'; + put 'put ''LHYsaCl9fSx7a2V5OiJnZW5lcmF0ZUNvbHVtblNhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIHRoaXMuZ2VuZXJhdGVTYW1wbGVzKCJjb2wiLHYsaCl9fSx7a2V5OiJnZW5lcmF0ZVNhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz10aGlzLEk9bmV3IE1hcCxq''@;'; + put 'put ''PSJudW1iZXIiPT10eXBlb2YgeT97ZnJvbTp5LHRvOnl9Onk7cmV0dXJuIGlhKGouZnJvbSxqLnRvLGZ1bmN0aW9uKEJlKXt2YXIgTmU9Qy5nZW5lcmF0ZVNhbXBsZShoLHYsQmUpO0kuc2V0KEJlLE5lKX0pLEl9fSx7a2V5OiJnZW5lcmF0ZVNhbXBsZSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkp''@;'; + put 'put ''e3ZhciBDPXRoaXM7aWYoInJvdyIhPT1oJiYiY29sIiE9PWgpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBzYW1wbGUgdHlwZSIpO3ZhciBJPW5ldyBNYXAsaj0icm93Ij09PWg/ImNvbCI6InJvdyIsdWU9W107cmV0dXJuIGlhKHYuZnJvbSx2LnRvLGZ1bmN0aW9uKF9lKXt2YXIgT3Qs''@;'; + put 'put ''QmU9InJvdyI9PT1oP0MuZGF0YUZhY3RvcnkoeSxfZSk6Qy5kYXRhRmFjdG9yeShfZSx5KSxOZT1CZS52YWx1ZSxLZT1CZS5idW5kbGVTZWVkLGR0PSJzdHJpbmciPT10eXBlb2YgS2UmJktlLmxlbmd0aD4wO090PWR0P0tlOnhsKE5lKT8iIi5jb25jYXQoT2JqZWN0LmtleXMoTmUpLmxlbmd0''@;'; + put 'put ''aCk6QXJyYXkuaXNBcnJheShOZSk/IiIuY29uY2F0KE5lLmxlbmd0aCk6IiIuY29uY2F0KGV1KE5lKS5sZW5ndGgpLEkuaGFzKE90KXx8SS5zZXQoT3Qse25lZWRlZDpDLmdldFNhbXBsZUNvdW50KCksc3RyaW5nczpbXX0pO3ZhciAkdD1JLmdldChPdCk7JHQubmVlZGVkJiYoISh1ZS5pbmRl''@;'; + put 'put ''eE9mKE5lKT4tMSl8fEMuYWxsb3dEdXBsaWNhdGVzfHxkdCkmJigkdC5zdHJpbmdzLnB1c2goZnVuY3Rpb24gV250KGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9''@;'; + put 'put ''KTpkW2ddPWgsZH0oe3ZhbHVlOk5lfSxqLF9lKSksdWUucHVzaChOZSksJHQubmVlZGVkLT0xKX0pLEl9fV0sW3trZXk6IlNBTVBMRV9DT1VOVCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDN9fV0pLGR9KCk7Y29uc3QgYk1lPVFudDtmdW5jdGlvbiBHNmUoZCl7cmV0dXJuKEc2ZT0iZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9s''@;'; + put 'put ''LnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIF9NZShkLGcpe3JldHVybiBmdW5jdGlvbiAkbnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIEtudChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9m''@;'; + put 'put ''IFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7''@;'; + put 'put ''fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIFhudChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gQ01lKGQsZyk7''@;'; + put 'put ''dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09''@;'; + put 'put ''PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBDTWUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIEpudCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFu''@;'; + put 'put ''Y2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gQ01lKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcg''@;'; + put 'put ''QXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24ga01lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxl''@;'; + put 'put ''PSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gRlMoKXtyZXR1cm4gRlM9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PXRydChnLGgpO2lmKHkpe3ZhciBD''@;'; + put 'put ''PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sRlMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHRydChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFz''@;'; + put 'put ''T3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9RDkoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gVzZlKGQsZyl7cmV0dXJuKFc2ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15''@;'; + put 'put ''LHZ9KShkLGcpfWZ1bmN0aW9uIGlydChkLGcpe2lmKGcmJigib2JqZWN0Ij09PUc2ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBv''@;'; + put 'put ''ciB1bmRlZmluZWQiKTtyZXR1cm4gU01lKGQpfWZ1bmN0aW9uIFNNZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gRDko''@;'; + put 'put ''ZCl7cmV0dXJuKEQ5PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9em8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoIm1vZGlmeUF1dG9D''@;'; + put 'put ''b2x1bW5TaXplU2VlZCIpO3ZhciBoej0iYXV0b0NvbHVtblNpemUiLFk2ZT1uZXcgV2Vha01hcCxzcnQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIG5ydChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11''@;'; + put 'put ''c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7''@;'; + put 'put ''d3JpdGFibGU6ITF9KSxnJiZXNmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBycnQoZCl7dmFyIGc9ZnVuY3Rpb24gb3J0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1''@;'; + put 'put ''bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5''@;'; + put 'put ''LHY9RDkoZCk7aWYoZyl7dmFyIEM9RDkodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGlydCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24gcW50KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCkseT1nLmNhbGwodGhpcyx2KSxZNmUuc2V0KFNNZSh5KSx7Y2FjaGVkQ29sdW1uSGVhZGVyczpbXX0pLHkuZ2hvc3RU''@;'; + put 'put ''YWJsZT1uZXcgejZlKHkuaG90KSx5LnNhbXBsZXNHZW5lcmF0b3I9bmV3IGJNZShmdW5jdGlvbihDLEkpe3ZhciBqPXkuaG90LmdldENlbGxNZXRhKEMsSSksdWU9IiI7ai5zcGFubmVkfHwodWU9eS5ob3QuZ2V0RGF0YUF0Q2VsbChDLEkpKTt2YXIgX2U9IiI7cmV0dXJuIHkuaG90Lmhhc0hv''@;'; + put 'put ''b2soIm1vZGlmeUF1dG9Db2x1bW5TaXplU2VlZCIpJiYoX2U9eS5ob3QucnVuSG9va3MoIm1vZGlmeUF1dG9Db2x1bW5TaXplU2VlZCIsX2Usaix1ZSkpLHt2YWx1ZTp1ZSxidW5kbGVTZWVkOl9lfX0pLHkuZmlyc3RDYWxjdWxhdGlvbj0hMCx5LmluUHJvZ3Jlc3M9ITEseS5tZWFzdXJlZENv''@;'; + put 'put ''bHVtbnM9MCx5LmNvbHVtbldpZHRoc01hcD1uZXcgVHcseS5ob3QuY29sdW1uSW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAoImF1dG9Db2x1bW5TaXplIix5LmNvbHVtbldpZHRoc01hcCkseS5hZGRIb29rKCJiZWZvcmVDb2x1bW5SZXNpemUiLGZ1bmN0aW9uKEMsSSxqKXtyZXR1cm4geS5vbkJl''@;'; + put 'put ''Zm9yZUNvbHVtblJlc2l6ZShDLEksail9KSx5fXJldHVybiBmdW5jdGlvbiBlcnQoZCxnLGgpe2cmJmtNZShkLnByb3RvdHlwZSxnKSxoJiZrTWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3JldHVybiExIT09dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtoel0mJiF0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmNvbFdpZHRoc319LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO2lmKCF0aGlzLmVuYWJsZWQpe3ZhciBDPXRoaXMu''@;'; + put 'put ''aG90LmdldFNldHRpbmdzKClbaHpdO0MmJm51bGwhPUMudXNlSGVhZGVycyYmdGhpcy5naG9zdFRhYmxlLnNldFNldHRpbmcoInVzZUhlYWRlcnMiLEMudXNlSGVhZGVycyksdGhpcy5zZXRTYW1wbGluZ09wdGlvbnMoKSx0aGlzLmFkZEhvb2soImFmdGVyTG9hZERhdGEiLGZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHkub25BZnRlckxvYWREYXRhLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQ2hhbmdlUmVuZGVyIixmdW5jdGlvbihJKXtyZXR1cm4geS5vbkJlZm9yZUNoYW5nZShJKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJGb3JtdWxhc1ZhbHVlc1VwZGF0ZSIsZnVu''@;'; + put 'put ''Y3Rpb24oSSl7cmV0dXJuIHkub25BZnRlckZvcm11bGFzVmFsdWVzVXBkYXRlKEkpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVWaWV3UmVuZGVyIixmdW5jdGlvbihJKXtyZXR1cm4geS5vbkJlZm9yZVZpZXdSZW5kZXIoSSl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbFdpZHRoIixmdW5jdGlv''@;'; + put 'put ''bihJLGope3JldHVybiB5LmdldENvbHVtbldpZHRoKGosSSl9KSx0aGlzLmFkZEhvb2soImFmdGVySW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVySW5pdCgpfSksRlMoRDkoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fX0se2tleToidXBkYXRl''@;'; + put 'put ''UGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuZmluZENvbHVtbnNXaGVyZUhlYWRlcldhc0NoYW5nZWQoKTt5Lmxlbmd0aCYmKHRoaXMuY2xlYXJDYWNoZSh5KSx0aGlzLmNhbGN1bGF0ZVZpc2libGVDb2x1bW5zV2lkdGgoKSksRlMoRDkoaC5wcm90b3R5cGUpLCJ1cGRhdGVQ''@;'; + put 'put ''bHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7RlMoRDkoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuYWRkSG9vaygiYmVmb3JlQ29sdW1uUmVzaXplIixmdW5j''@;'; + put 'put ''dGlvbihDLEksail7cmV0dXJuIHkub25CZWZvcmVDb2x1bW5SZXNpemUoQyxJLGopfSl9fSx7a2V5OiJjYWxjdWxhdGVWaXNpYmxlQ29sdW1uc1dpZHRoIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuaG90LmNvdW50Um93cygpKXt2YXIgQz10aGlzLmhvdC5yZW5kZXJDYWxsLEk9dGhpcy5n''@;'; + put 'put ''ZXRGaXJzdFZpc2libGVDb2x1bW4oKSxqPXRoaXMuZ2V0TGFzdFZpc2libGVDb2x1bW4oKTstMT09PUl8fC0xPT09anx8dGhpcy5jYWxjdWxhdGVDb2x1bW5zV2lkdGgoe2Zyb206SSx0bzpqfSx2b2lkIDAsQyl9fX0se2tleToiY2FsY3VsYXRlQ29sdW1uc1dpZHRoIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bigpe3ZhciB5PXRoaXMsQz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e2Zyb206MCx0bzp0aGlzLmhvdC5jb3VudENvbHMoKS0xfSxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7''@;'; + put 'put ''ZnJvbTowLHRvOnRoaXMuaG90LmNvdW50Um93cygpLTF9LGo9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSx1ZT0ibnVtYmVyIj09dHlwZW9mIEM/e2Zyb206Qyx0bzpDfTpDLF9lPSJudW1iZXIiPT10eXBlb2YgST97ZnJvbTpJLHRvOkl9''@;'; + put 'put ''Okk7aWEodWUuZnJvbSx1ZS50byxmdW5jdGlvbihCZSl7dmFyIE5lPXkuaG90LnRvUGh5c2ljYWxDb2x1bW4oQmUpO251bGw9PT1OZSYmKE5lPUJlKSwoanx8bnVsbD09PXkuY29sdW1uV2lkdGhzTWFwLmdldFZhbHVlQXRJbmRleChOZSkmJiF5LmhvdC5fZ2V0Q29sV2lkdGhGcm9tU2V0dGlu''@;'; + put 'put ''Z3MoTmUpKSYmVXIoeS5zYW1wbGVzR2VuZXJhdG9yLmdlbmVyYXRlQ29sdW1uU2FtcGxlcyhCZSxfZSksZnVuY3Rpb24oZHQpe3ZhciBPdD1fTWUoZHQsMik7cmV0dXJuIHkuZ2hvc3RUYWJsZS5hZGRDb2x1bW4oT3RbMF0sT3RbMV0pfSl9KSx0aGlzLmdob3N0VGFibGUuY29sdW1ucy5sZW5n''@;'; + put 'put ''dGgmJih0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe3kuZ2hvc3RUYWJsZS5nZXRXaWR0aHMoZnVuY3Rpb24oQmUsTmUpe3ZhciBLZT15LmhvdC50b1BoeXNpY2FsQ29sdW1uKEJlKTt5LmNvbHVtbldpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgoS2UsTmUpfSl9LCEwKSx0aGlz''@;'; + put 'put ''Lm1lYXN1cmVkQ29sdW1ucz11ZS50bysxLHRoaXMuZ2hvc3RUYWJsZS5jbGVhbigpKX19LHtrZXk6ImNhbGN1bGF0ZUFsbENvbHVtbnNXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRz''@;'; + put 'put ''WzBdOntmcm9tOjAsdG86dGhpcy5ob3QuY291bnRSb3dzKCktMX0sST0wLGo9dGhpcy5ob3QuY291bnRDb2xzKCktMSx1ZT1udWxsO3RoaXMuaW5Qcm9ncmVzcz0hMDt2YXIgX2U9ZnVuY3Rpb24gTmUoKXtpZigheS5ob3QpcmV0dXJuIEVaKHVlKSx2b2lkKHkuaW5Qcm9ncmVzcz0hMSk7eS5j''@;'; + put 'put ''YWxjdWxhdGVDb2x1bW5zV2lkdGgoe2Zyb206SSx0bzpNYXRoLm1pbihJK2guQ0FMQ1VMQVRJT05fU1RFUCxqKX0sQyksKEk9SStoLkNBTENVTEFUSU9OX1NURVArMSk8aj91ZT1aaGUoTmUpOihFWih1ZSkseS5pblByb2dyZXNzPSExLHkuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCkp''@;'; + put 'put ''fSxCZT10aGlzLmdldFN5bmNDYWxjdWxhdGlvbkxpbWl0KCk7dGhpcy5maXJzdENhbGN1bGF0aW9uJiZCZT49MCYmKHRoaXMuY2FsY3VsYXRlQ29sdW1uc1dpZHRoKHtmcm9tOjAsdG86QmV9LEMpLHRoaXMuZmlyc3RDYWxjdWxhdGlvbj0hMSxJPUJlKzEpLEk8aj9fZSgpOnRoaXMuaW5Qcm9n''@;'; + put 'put ''cmVzcz0hMX19LHtrZXk6InNldFNhbXBsaW5nT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRTZXR0aW5ncygpW2h6XSxDPXkmJm8xKHksInNhbXBsaW5nUmF0aW8iKT95LnNhbXBsaW5nUmF0aW86dm9pZCAwLEk9eSYmbzEoeSwiYWxsb3dTYW1wbGVEdXBsaWNh''@;'; + put 'put ''dGVzIik/eS5hbGxvd1NhbXBsZUR1cGxpY2F0ZXM6dm9pZCAwO0MmJiFpc05hTihDKSYmdGhpcy5zYW1wbGVzR2VuZXJhdG9yLnNldFNhbXBsZUNvdW50KHBhcnNlSW50KEMsMTApKSxJJiZ0aGlzLnNhbXBsZXNHZW5lcmF0b3Iuc2V0QWxsb3dEdXBsaWNhdGVzKEkpfX0se2tleToicmVjYWxj''@;'; + put 'put ''dWxhdGVBbGxDb2x1bW5zV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QudmlldyYmdGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZS5pc1Zpc2libGUoKSYmKHRoaXMuY2xlYXJDYWNoZSgpLHRoaXMuY2FsY3VsYXRlQWxsQ29sdW1uc1dpZHRoKCkpfX0se2tleToiZ2V0U3luY0NhbGN1''@;'; + put 'put ''bGF0aW9uTGltaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtoel0sQz1oLlNZTkNfQ0FMQ1VMQVRJT05fTElNSVQsST10aGlzLmhvdC5jb3VudENvbHMoKS0xO3JldHVybiB4bCh5KSYmKHIzZShDPXkuc3luY0xpbWl0KT9DPVIzZShJLEMpOkM+Pj0w''@;'; + put 'put ''KSxNYXRoLm1pbihDLEkpfX0se2tleToiZ2V0Q29sdW1uV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp2b2lkIDAsST0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1l''@;'; + put 'put ''bnRzWzJdKXx8YXJndW1lbnRzWzJdLGo9QztyZXR1cm4gdm9pZCAwPT09aiYmKGo9dGhpcy5jb2x1bW5XaWR0aHNNYXAuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oeSkpLEkmJiJudW1iZXIiPT10eXBlb2YgaiYmKGo9TWF0aC5tYXgoaixGZGUuREVGQVVMVF9X''@;'; + put 'put ''SURUSCkpKSxqfX0se2tleToiZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LnZpZXcuX3d0O2lmKHkud3RWaWV3cG9ydC5jb2x1bW5zVmlzaWJsZUNhbGN1bGF0b3Ipe3ZhciBDPXkud3RUYWJsZS5nZXRGaXJzdFZpc2libGVDb2x1bW4oKTtp''@;'; + put 'put ''ZigtMSE9PUMpcmV0dXJuIHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoQyl9aWYoeS53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yKXt2YXIgST15Lnd0VGFibGUuZ2V0Rmlyc3RSZW5kZXJlZENvbHVtbigpO2lmKC0xIT09''@;'; + put 'put ''SSlyZXR1cm4gdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChJKX1yZXR1cm4tMX19LHtrZXk6ImdldExhc3RWaXNpYmxlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LnZpZXcuX3d0O2lmKHkud3RWaWV3cG9ydC5j''@;'; + put 'put ''b2x1bW5zVmlzaWJsZUNhbGN1bGF0b3Ipe3ZhciBDPXkud3RUYWJsZS5nZXRMYXN0VmlzaWJsZUNvbHVtbigpO2lmKC0xIT09QylyZXR1cm4gdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChDKX1pZih5Lnd0Vmlld3BvcnQuY29sdW1uc1Jl''@;'; + put 'put ''bmRlckNhbGN1bGF0b3Ipe3ZhciBJPXkud3RUYWJsZS5nZXRMYXN0UmVuZGVyZWRDb2x1bW4oKTtpZigtMSE9PUkpcmV0dXJuIHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoSSl9cmV0dXJuLTF9fSx7a2V5OiJmaW5kQ29sdW1uc1doZXJl''@;'; + put 'put ''SGVhZGVyV2FzQ2hhbmdlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRDb2xIZWFkZXIoKSxJPVk2ZS5nZXQodGhpcykuY2FjaGVkQ29sdW1uSGVhZGVycztyZXR1cm4gU3UoeSxmdW5jdGlvbih1ZSxfZSxCZSl7dmFyIE5lPUkubGVuZ3RoO3JldHVybihOZS0xPEJlfHxJ''@;'; + put 'put ''W0JlXSE9PV9lKSYmdWUucHVzaChCZSksTmUtMTxCZT9JLnB1c2goX2UpOklbQmVdPV9lLHVlfSxbXSl9fSx7a2V5OiJjbGVhckNhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06''@;'; + put 'put ''W107Qy5sZW5ndGg/dGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXtVcihDLGZ1bmN0aW9uKEkpe3kuY29sdW1uV2lkdGhzTWFwLnNldFZhbHVlQXRJbmRleChJLG51bGwpfSl9LCEwKTp0aGlzLmNvbHVtbldpZHRoc01hcC5jbGVhcigpfX0se2tleToiaXNOZWVkUmVjYWxjdWxh''@;'; + put 'put ''dGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISFnNCh0aGlzLmNvbHVtbldpZHRoc01hcC5nZXRWYWx1ZXMoKS5zbGljZSgwLHRoaXMubWVhc3VyZWRDb2x1bW5zKSxmdW5jdGlvbih5KXtyZXR1cm4gbnVsbD09PXl9KS5sZW5ndGh9fSx7a2V5OiJvbkJlZm9yZVZpZXdSZW5kZXIiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7dGhpcy5jYWxjdWxhdGVWaXNpYmxlQ29sdW1uc1dpZHRoKCksdGhpcy5pc05lZWRSZWNhbGN1bGF0ZSgpJiYhdGhpcy5pblByb2dyZXNzJiZ0aGlzLmNhbGN1bGF0ZUFsbENvbHVtbnNXaWR0aCgpfX0se2tleToib25BZnRlckxvYWREYXRhIix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e3ZhciB5PXRoaXM7dGhpcy5ob3Qudmlldz90aGlzLnJlY2FsY3VsYXRlQWxsQ29sdW1uc1dpZHRoKCk6c2V0VGltZW91dChmdW5jdGlvbigpe3kuaG90JiZ5LnJlY2FsY3VsYXRlQWxsQ29sdW1uc1dpZHRoKCl9LDApfX0se2tleToib25CZWZvcmVDaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHkp''@;'; + put 'put ''e3ZhciBDPXRoaXMsST1PbCh5LGZ1bmN0aW9uKGope3ZhciB1ZT1fTWUoaiwyKTtyZXR1cm4gQy5ob3QudG9QaHlzaWNhbENvbHVtbihDLmhvdC5wcm9wVG9Db2wodWVbMV0pKX0pO3RoaXMuY2xlYXJDYWNoZShBcnJheS5mcm9tKG5ldyBTZXQoSSkpKX19LHtrZXk6Im9uQmVmb3JlQ29sdW1u''@;'; + put 'put ''UmVzaXplIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9eTtyZXR1cm4gSSYmKHRoaXMuY2FsY3VsYXRlQ29sdW1uc1dpZHRoKEMsdm9pZCAwLCEwKSxqPXRoaXMuZ2V0Q29sdW1uV2lkdGgoQyx2b2lkIDAsITEpKSxqfX0se2tleToib25BZnRlckluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''WTZlLmdldCh0aGlzKS5jYWNoZWRDb2x1bW5IZWFkZXJzPXRoaXMuaG90LmdldENvbEhlYWRlcigpfX0se2tleToib25BZnRlckZvcm11bGFzVmFsdWVzVXBkYXRlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgST1PbChnNCh5LGZ1bmN0aW9uKGope3ZhciB1ZTtyZXR1cm4gVG8obnVsbD09PSh1''@;'; + put 'put ''ZT1qLmFkZHJlc3MpfHx2b2lkIDA9PT11ZT92b2lkIDA6dWUuY29sKX0pLGZ1bmN0aW9uKGope3JldHVybiBqLmFkZHJlc3MuY29sfSk7dGhpcy5jbGVhckNhY2hlKEFycmF5LmZyb20obmV3IFNldChJKSkpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmdob3N0VGFi''@;'; + put 'put ''bGUuY2xlYW4oKSxGUyhEOShoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBoen19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDEwfX0se2tleToiU0VU''@;'; + put 'put ''VElOR19LRVlTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LHtrZXk6IkNBTENVTEFUSU9OX1NURVAiLGdldDpmdW5jdGlvbigpe3JldHVybiA1MH19LHtrZXk6IlNZTkNfQ0FMQ1VMQVRJT05fTElNSVQiLGdldDpmdW5jdGlvbigpe3JldHVybiA1MH19XSksaH0oWXMpLEhTPXtob3Jpem9u''@;'; + put 'put ''dGFsOiJob3Jpem9udGFsIix2ZXJ0aWNhbDoidmVydGljYWwifTtmdW5jdGlvbiBVNmUoZCl7cmV0dXJuKFU2ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcp''@;'; + put 'put ''e3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIE1NZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gUTZlKGQs''@;'; + put 'put ''Zyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRz''@;'; + put 'put ''Ij09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBRNmUoZCxnKX19ZnVuY3Rpb24gUTZlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2''@;'; + put 'put ''W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gRU1lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gTlMoKXtyZXR1cm4gTlM9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PV9ydChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9w''@;'; + put 'put ''ZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sTlMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIF9ydChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChk''@;'; + put 'put ''LGcpJiZudWxsIT09KGQ9TDkoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gSjZlKGQsZyl7cmV0dXJuKEo2ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9u''@;'; + put 'put ''IFNydChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVU2ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1''@;'; + put 'put ''cm4geE1lKGQpfWZ1bmN0aW9uIHhNZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gTDkoZCl7cmV0dXJuKEw5PU9iamVj''@;'; + put 'put ''dC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9em8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoIm1vZGlmeUF1dG9maWxsUmFuZ2UiKSx6by5nZXRT''@;'; + put 'put ''aW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQXV0b2ZpbGwiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJBdXRvZmlsbCIpO3ZhciBUTWU9ImF1dG9maWxsIix4cnQ9WyJmaWxsSGFuZGxlIl0sRHJ0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBDcnQoZCxnKXtpZigiZnVuY3Rp''@;'; + put 'put ''b24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0''@;'; + put 'put ''YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmSjZlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24ga3J0KGQpe3ZhciBnPWZ1bmN0aW9uIE1ydCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVm''@;'; + put 'put ''bGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtd''@;'; + put 'put ''LGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUw5KGQpO2lmKGcpe3ZhciBDPUw5KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1''@;'; + put 'put ''bWVudHMpO3JldHVybiBTcnQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIHdydChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5''@;'; + put 'put ''PWcuY2FsbCh0aGlzLHYpKS5ldmVudE1hbmFnZXI9bmV3IEwxKHhNZSh5KSkseS5hZGRpbmdTdGFydGVkPSExLHkubW91c2VEb3duT25DZWxsQ29ybmVyPSExLHkubW91c2VEcmFnT3V0c2lkZT0hMSx5LmhhbmRsZURyYWdnZWRDZWxscz0wLHkuZGlyZWN0aW9ucz1bXSx5LmF1dG9JbnNlcnRS''@;'; + put 'put ''b3c9ITEseX1yZXR1cm4gZnVuY3Rpb24gYnJ0KGQsZyxoKXtnJiZFTWUoZC5wcm90b3R5cGUsZyksaCYmRU1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maWxsSGFuZGxlfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5tYXBTZXR0aW5ncygpLHRoaXMucmVnaXN0ZXJFdmVudHMoKSx0aGlzLmFkZEhvb2soImFmdGVyT25DZWxs''@;'; + put 'put ''Q29ybmVyTW91c2VEb3duIixmdW5jdGlvbihDKXtyZXR1cm4geS5vbkFmdGVyQ2VsbENvcm5lck1vdXNlRG93bihDKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJPbkNlbGxDb3JuZXJEYmxDbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25DZWxsQ29ybmVyRGJsQ2xpY2soQyl9KSx0aGlzLmFk''@;'; + put 'put ''ZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsZnVuY3Rpb24oQyxJKXtyZXR1cm4geS5vbkJlZm9yZUNlbGxNb3VzZU92ZXIoSSl9KSxOUyhMOShoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxOUyhMOShoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jbGVhck1hcHBlZFNldHRpbmdzKCks''@;'; + put 'put ''TlMoTDkoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZ2V0U2VsZWN0aW9uRGF0YSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxJPUMuZ2V0VG9wU3RhcnRDb3JuZXIoKSxq''@;'; + put 'put ''PUkucm93LHVlPUkuY29sLF9lPUMuZ2V0Qm90dG9tRW5kQ29ybmVyKCksS2U9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeUNvcHlhYmxlUmFuZ2UiLFt7c3RhcnRSb3c6aixzdGFydENvbDp1ZSxlbmRSb3c6X2Uucm93LGVuZENvbDpfZS5jb2x9XSksZHQ9W10sT3Q9W10sJHQ9W107cmV0dXJu''@;'; + put 'put ''IFVyKEtlLGZ1bmN0aW9uKGZuKXtmb3IodmFyIExuPWZuLnN0YXJ0Um93O0xuPD1mbi5lbmRSb3c7TG4rPTEpLTE9PT1kdC5pbmRleE9mKExuKSYmZHQucHVzaChMbik7Zm9yKHZhciBpcj1mbi5zdGFydENvbDtpcjw9Zm4uZW5kQ29sO2lyKz0xKS0xPT09T3QuaW5kZXhPZihpcikmJk90LnB1''@;'; + put 'put ''c2goaXIpfSksVXIoZHQsZnVuY3Rpb24oZm4pe3ZhciBMbj1bXTtVcihPdCxmdW5jdGlvbihpcil7TG4ucHVzaCh5LmhvdC5nZXRDb3B5YWJsZURhdGEoZm4saXIpKX0pLCR0LnB1c2goTG4pfSksJHR9fSx7a2V5OiJmaWxsSW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztpZih0aGlz''@;'; + put 'put ''LmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5pc0VtcHR5KCkpcmV0dXJuITE7dmFyIEk9ZnVuY3Rpb24gbXJ0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHlydChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gQXJ0KGQsZyl7dmFyIGg9bnVsbD09''@;'; + put 'put ''ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVl''@;'; + put 'put ''KSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8TU1lKGQsZyl8fGZ1bmN0aW9uIHZydCgpe3Rocm93IG5ldyBU''@;'; + put 'put ''eXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KHRoaXMuaG90LnNl''@;'; + put 'put ''bGVjdGlvbi5oaWdobGlnaHQuZ2V0RmlsbCgpLmdldFZpc3VhbENvcm5lcnMoKSw0KSxqPUlbMF0sdWU9SVsxXSxfZT1JWzJdLEJlPUlbM10sTmU9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxLZT1OZS5nZXRUb3BTdGFydENvcm5lcigpLGR0PU5lLmdldEJvdHRvbUVuZENvcm5l''@;'; + put 'put ''cigpO3RoaXMucmVzZXRTZWxlY3Rpb25PZkRyYWdnZWRBcmVhKCk7dmFyIE90PVtLZS5yb3csS2UuY29sLGR0LnJvdyxkdC5jb2xdLCR0PXRoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlBdXRvZmlsbFJhbmdlIixbTWF0aC5taW4oS2Uucm93LGopLE1hdGgubWluKEtlLmNvbCx1ZSksTWF0aC5t''@;'; + put 'put ''YXgoZHQucm93LF9lKSxNYXRoLm1heChkdC5jb2wsQmUpXSxPdCksZm49ZnVuY3Rpb24gY3J0KGQsZyxoKXt2YXIgdix5LEM7cmV0dXJuIGdbMF09PT1kWzBdJiZnWzFdPGRbMV0/KEM9ImxlZnQiLHY9aChnWzBdLGdbMV0pLHk9aChnWzJdLGRbMV0tMSkpOmdbMl09PT1kWzJdJiZnWzBdPT09''@;'; + put 'put ''ZFswXSYmZ1szXT5kWzNdPyhDPSJyaWdodCIsdj1oKGdbMF0sZFszXSsxKSx5PWgoZ1syXSxnWzNdKSk6Z1swXTxkWzBdJiZnWzFdPT09ZFsxXT8oQz0idXAiLHY9aChnWzBdLGdbMV0pLHk9aChkWzBdLTEsZ1szXSkpOmdbMl0+ZFsyXSYmZ1sxXT09PWRbMV0mJihDPSJkb3duIix2PWgoZFsy''@;'; + put 'put ''XSsxLGdbMV0pLHk9aChnWzJdLGdbM10pKSx2JiZ2Lm5vcm1hbGl6ZSgpLHkmJnkubm9ybWFsaXplKCkse2RpcmVjdGlvbk9mRHJhZzpDLHN0YXJ0T2ZEcmFnQ29vcmRzOnYsZW5kT2ZEcmFnQ29vcmRzOnl9fShPdCwkdCxmdW5jdGlvbihmbyxJYSl7cmV0dXJuIHkuaG90Ll9jcmVhdGVDZWxs''@;'; + put 'put ''Q29vcmRzKGZvLElhKX0pLExuPWZuLmRpcmVjdGlvbk9mRHJhZyxpcj1mbi5zdGFydE9mRHJhZ0Nvb3Jkcyxtcj1mbi5lbmRPZkRyYWdDb29yZHM7aWYoaXImJmlyLnJvdz4tMSYmaXIuY29sPi0xKXt2YXIgU3I9dGhpcy5nZXRTZWxlY3Rpb25EYXRhKCksd3I9TmUuY2xvbmUoKSxRcj10aGlz''@;'; + put 'put ''LmhvdC5fY3JlYXRlQ2VsbFJhbmdlKGlyLGlyLG1yKSx5aT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQXV0b2ZpbGwiLFNyLHdyLFFyLExuKTtpZighMT09PXlpKXJldHVybiB0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5jbGVhcigpLHRoaXMuaG90LnJlbmRlcigp''@;'; + put 'put ''LCExO3ZhciBLaT1mdW5jdGlvbiB1cnQoZCxnLGgsdil7dmFyIHk9aC5sZW5ndGgsQz1oP2hbMF0ubGVuZ3RoOjAsST1bXSxqPWcucm93LWQucm93LHVlPWcuY29sLWQuY29sO2lmKC0xIT09WyJkb3duIiwidXAiXS5pbmRleE9mKHYpKXtmb3IodmFyIF9lPVtdLEJlPTA7QmU8dWU7QmUrKyl7''@;'; + put 'put ''dmFyIE5lPXBhcnNlSW50KGhbMF1bQmVdLDEwKSxLZT1wYXJzZUludChoW3ktMV1bQmVdLDEwKTtfZS5wdXNoKCgiZG93biI9PT12P0tlLU5lOk5lLUtlKS8oeS0xKXx8MCl9SS5wdXNoKF9lKX1pZigtMSE9PVsicmlnaHQiLCJsZWZ0Il0uaW5kZXhPZih2KSlmb3IodmFyIE90PTA7T3Q8ajtP''@;'; + put 'put ''dCsrKXt2YXIgJHQ9cGFyc2VJbnQoaFtPdF1bMF0sMTApLGZuPXBhcnNlSW50KGhbT3RdW0MtMV0sMTApO0kucHVzaChbKCJyaWdodCI9PT12P2ZuLSR0OiR0LWZuKS8oQy0xKXx8MF0pfXJldHVybiBJfShpcixtcixTcixMbiksU289eWksUG89eWk7aWYoWyJ1cCIsImxlZnQiXS5pbmRleE9m''@;'; + put 'put ''KExuKT4tMSYmKDEhPT1Qby5sZW5ndGh8fDAhPT1Qb1swXS5sZW5ndGgpKWlmKFNvPVtdLCJ1cCI9PT1Mbilmb3IodmFyIFNhPW1yLnJvdy1pci5yb3crMSxKYT1TYSVQby5sZW5ndGgsbGE9MDtsYTxTYTtsYSsrKVNvLnB1c2goUG9bKGxhKyhQby5sZW5ndGgtSmEpKSVQby5sZW5ndGhdKTtl''@;'; + put 'put ''bHNlIGZvcih2YXIgYWw9bXIuY29sLWlyLmNvbCsxLExzPWFsJVBvWzBdLmxlbmd0aCxQMD0wO1AwPFBvLmxlbmd0aDtQMCsrKXtTby5wdXNoKFtdKTtmb3IodmFyIHJvPTA7cm88YWw7cm8rKylTb1tQMF0ucHVzaChQb1tQMF1bKHJvKyhQb1tQMF0ubGVuZ3RoLUxzKSklUG9bUDBdLmxlbmd0''@;'; + put 'put ''aF0pfXRoaXMuaG90LnBvcHVsYXRlRnJvbUFycmF5KGlyLnJvdyxpci5jb2wsU28sbXIucm93LG1yLmNvbCwiIi5jb25jYXQodGhpcy5wbHVnaW5OYW1lLCIuZmlsbCIpLG51bGwsTG4sS2kpLHRoaXMuc2V0U2VsZWN0aW9uKCR0KSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJBdXRvZmlsbCIs''@;'; + put 'put ''U28sd3IsUXIsTG4pLHRoaXMuaG90LnJlbmRlcigpfWVsc2UgdGhpcy5ob3QuX3JlZnJlc2hCb3JkZXJzKCk7cmV0dXJuITB9fSx7a2V5OiJyZWR1Y2VTZWxlY3Rpb25BcmVhSWZOZWVkZWQiLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiB5LnJvdzwwJiYoeS5yb3c9MCkseS5jb2w8MCYmKHku''@;'; + put 'put ''Y29sPTApLHl9fSx7a2V5OiJnZXRDb29yZHNPZkRyYWdBbmREcm9wQm9yZGVycyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxJPUMuZ2V0Qm90dG9tRW5kQ29ybmVyKCksaj15O2lmKHRoaXMuZGlyZWN0aW9ucy5pbmNsdWRlcyhIUy52''@;'; + put 'put ''ZXJ0aWNhbCkmJnRoaXMuZGlyZWN0aW9ucy5pbmNsdWRlcyhIUy5ob3Jpem9udGFsKSl7dmFyIHVlPUMuZ2V0VG9wU3RhcnRDb3JuZXIoKTsoSS5jb2w8PXkuY29sfHx1ZS5jb2w+PXkuY29sKSYmKGo9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSS5yb3cseS5jb2wpKSwoSS5yb3c8eS5y''@;'; + put 'put ''b3d8fHVlLnJvdz55LnJvdykmJihqPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHkucm93LEkuY29sKSl9ZWxzZSBpZih0aGlzLmRpcmVjdGlvbnMuaW5jbHVkZXMoSFMudmVydGljYWwpKWo9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoeS5yb3csSS5jb2wpO2Vsc2V7aWYoIXRoaXMu''@;'; + put 'put ''ZGlyZWN0aW9ucy5pbmNsdWRlcyhIUy5ob3Jpem9udGFsKSlyZXR1cm47aj10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhJLnJvdyx5LmNvbCl9cmV0dXJuIHRoaXMucmVkdWNlU2VsZWN0aW9uQXJlYUlmTmVlZGVkKGopfX0se2tleToic2hvd0JvcmRlciIsdmFsdWU6ZnVuY3Rpb24oeSl7''@;'; + put 'put ''dmFyIEM9dGhpcy5nZXRDb29yZHNPZkRyYWdBbmREcm9wQm9yZGVycyh5KTtDJiZ0aGlzLnJlZHJhd0JvcmRlcnMoQyl9fSx7a2V5OiJhZGRSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KGZ1bmN0aW9uKCl7eS5ob3QuYWx0ZXIoImlu''@;'; + put 'put ''c2VydF9yb3ciLHZvaWQgMCwxLCIiLmNvbmNhdCh5LnBsdWdpbk5hbWUsIi5maWxsIikpLHkuYWRkaW5nU3RhcnRlZD0hMX0sMjAwKX19LHtrZXk6ImFkZE5ld1Jvd0lmTmVlZGVkIix2YWx1ZTpmdW5jdGlvbigpe2lmKCF0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5p''@;'; + put 'put ''c0VtcHR5KCkmJiExPT09dGhpcy5hZGRpbmdTdGFydGVkJiZ0aGlzLmF1dG9JbnNlcnRSb3cpe3ZhciB5PXRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpLEM9dGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuZ2V0VmlzdWFsQ29ybmVycygpLEk9dGhpcy5ob3QuY291bnRS''@;'; + put 'put ''b3dzKCk7eVsyXTxJLTEmJkNbMl09PT1JLTEmJih0aGlzLmFkZGluZ1N0YXJ0ZWQ9ITAsdGhpcy5hZGRSb3coKSl9fX0se2tleToiZ2V0SW5kZXhPZkxhc3RBZGphY2VudEZpbGxlZEluUm93Iix2YWx1ZTpmdW5jdGlvbih5KXtmb3IodmFyIGosQz10aGlzLmhvdC5nZXREYXRhKCksST10aGlz''@;'; + put 'put ''LmhvdC5jb3VudFJvd3MoKSx1ZT15WzJdKzE7dWU8STt1ZSsrKXtmb3IodmFyIF9lPXlbMV07X2U8PXlbM107X2UrKylpZihDW3VlXVtfZV0pcmV0dXJuLTE7KENbdWVdW3lbMV0tMV18fENbdWVdW3lbM10rMV0pJiYoaj11ZSl9cmV0dXJuIGp9fSx7a2V5OiJhZGRTZWxlY3Rpb25Gcm9tU3Rh''@;'; + put 'put ''cnRBcmVhVG9TcGVjaWZpY1Jvd0luZGV4Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuZ2V0RmlsbCgpLmNsZWFyKCkuYWRkKHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHlbMF0seVsxXSkpLmFkZCh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jk''@;'; + put 'put ''cyhDLHlbM10pKS5jb21taXQoKX19LHtrZXk6InNldFNlbGVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM7KEM9dGhpcy5ob3QpLnNlbGVjdENlbGwuYXBwbHkoQyxmdW5jdGlvbiBocnQoZCl7cmV0dXJuIGZ1bmN0aW9uIGdydChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBR''@;'; + put 'put ''NmUoZCl9KGQpfHxmdW5jdGlvbiBwcnQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8TU1lKGQpfHxmdW5jdGlvbiBkcnQoKXt0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oT2woeSxmdW5jdGlvbihJ''@;'; + put 'put ''KXtyZXR1cm4gTWF0aC5tYXgoSSwwKX0pKS5jb25jYXQoWyExLCExXSkpfX0se2tleToic2VsZWN0QWRqYWNlbnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCksQz10aGlzLmdldEluZGV4T2ZMYXN0QWRqYWNlbnRGaWxsZWRJblJvdyh5KTtyZXR1''@;'; + put 'put ''cm4tMSE9PUMmJnZvaWQgMCE9PUMmJih0aGlzLmFkZFNlbGVjdGlvbkZyb21TdGFydEFyZWFUb1NwZWNpZmljUm93SW5kZXgoeSxDKSwhMCl9fSx7a2V5OiJyZXNldFNlbGVjdGlvbk9mRHJhZ2dlZEFyZWEiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHM9MCx0aGlz''@;'; + put 'put ''LmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5jbGVhcigpfX0se2tleToicmVkcmF3Qm9yZGVycyIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuY2xlYXIoKS5hZGQodGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3Qo''@;'; + put 'put ''KS5mcm9tKS5hZGQodGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS50bykuYWRkKHkpLmNvbW1pdCgpLHRoaXMuaG90LnZpZXcucmVuZGVyKCl9fSx7a2V5OiJnZXRJZk1vdXNlV2FzRHJhZ2dlZE91dHNpZGUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LnJvb3REb2N1''@;'; + put 'put ''bWVudC5kb2N1bWVudEVsZW1lbnQsST1qdSh0aGlzLmhvdC50YWJsZSkudG9wLSh0aGlzLmhvdC5yb290V2luZG93LnBhZ2VZT2Zmc2V0fHxDLnNjcm9sbFRvcCkrRDEodGhpcy5ob3QudGFibGUpLGo9anUodGhpcy5ob3QudGFibGUpLmxlZnQtKHRoaXMuaG90LnJvb3RXaW5kb3cucGFnZVhP''@;'; + put 'put ''ZmZzZXR8fEMuc2Nyb2xsTGVmdCkrRTIodGhpcy5ob3QudGFibGUpO3JldHVybiB5LmNsaWVudFk+SSYmeS5jbGllbnRYPD1qfX0se2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7''@;'; + put 'put ''dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihDLCJtb3VzZXVwIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW91c2VVcCgpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihDLCJtb3VzZW1vdmUiLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uTW91c2VNb3ZlKEkp''@;'; + put 'put ''fSl9fSx7a2V5OiJvbkNlbGxDb3JuZXJEYmxDbGljayIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdEFkamFjZW50KCkmJnRoaXMuZmlsbEluKCl9fSx7a2V5OiJvbkFmdGVyQ2VsbENvcm5lck1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhhbmRsZURyYWdnZWRDZWxscz0x''@;'; + put 'put ''LHRoaXMubW91c2VEb3duT25DZWxsQ29ybmVyPSEwfX0se2tleToib25CZWZvcmVDZWxsTW91c2VPdmVyIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLm1vdXNlRG93bk9uQ2VsbENvcm5lciYmIXRoaXMuaG90LnZpZXcuaXNNb3VzZURvd24oKSYmdGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHMmJih0''@;'; + put 'put ''aGlzLmhhbmRsZURyYWdnZWRDZWxscys9MSx0aGlzLnNob3dCb3JkZXIoeSksdGhpcy5hZGROZXdSb3dJZk5lZWRlZCgpKX19LHtrZXk6Im9uTW91c2VVcCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhhbmRsZURyYWdnZWRDZWxscyYmKHRoaXMuaGFuZGxlRHJhZ2dlZENlbGxzPjEmJnRoaXMu''@;'; + put 'put ''ZmlsbEluKCksdGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHM9MCx0aGlzLm1vdXNlRG93bk9uQ2VsbENvcm5lcj0hMSl9fSx7a2V5OiJvbk1vdXNlTW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5nZXRJZk1vdXNlV2FzRHJhZ2dlZE91dHNpZGUoeSk7ITE9PT10aGlzLmFkZGluZ1N0''@;'; + put 'put ''YXJ0ZWQmJnRoaXMuaGFuZGxlRHJhZ2dlZENlbGxzPjAmJkM/KHRoaXMubW91c2VEcmFnT3V0c2lkZT0hMCx0aGlzLmFkZGluZ1N0YXJ0ZWQ9ITApOnRoaXMubW91c2VEcmFnT3V0c2lkZT0hMSx0aGlzLm1vdXNlRHJhZ091dHNpZGUmJnRoaXMuYXV0b0luc2VydFJvdyYmdGhpcy5hZGRSb3co''@;'; + put 'put ''KX19LHtrZXk6ImNsZWFyTWFwcGVkU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kaXJlY3Rpb25zLmxlbmd0aD0wLHRoaXMuYXV0b0luc2VydFJvdz0hMX19LHtrZXk6Im1hcFNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWZ1bmN0aW9uIGZydChkKXt2YXIgZz17fTty''@;'; + put 'put ''ZXR1cm4hMD09PWQ/KGcuZGlyZWN0aW9ucz1PYmplY3Qua2V5cyhIUyksZy5hdXRvSW5zZXJ0Um93PSEwKTp4bChkKT8oZy5hdXRvSW5zZXJ0Um93PSEhVG8oZC5hdXRvSW5zZXJ0Um93KSYmZC5kaXJlY3Rpb24hPT1IUy5ob3Jpem9udGFsJiZkLmF1dG9JbnNlcnRSb3csZy5kaXJlY3Rpb25z''@;'; + put 'put ''PVRvKGQuZGlyZWN0aW9uKT9bZC5kaXJlY3Rpb25dOk9iamVjdC5rZXlzKEhTKSk6InN0cmluZyI9PXR5cGVvZiBkPyhnLmRpcmVjdGlvbnM9W2RdLGcuYXV0b0luc2VydFJvdz0hMCk6KGcuZGlyZWN0aW9ucz1bXSxnLmF1dG9JbnNlcnRSb3c9ITEpLGd9KHRoaXMuaG90LmdldFNldHRpbmdz''@;'; + put 'put ''KCkuZmlsbEhhbmRsZSk7dGhpcy5kaXJlY3Rpb25zPXkuZGlyZWN0aW9ucyx0aGlzLmF1dG9JbnNlcnRSb3c9eS5hdXRvSW5zZXJ0Um93fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXtOUyhMOShoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3tr''@;'; + put 'put ''ZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBUTWV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAyMH19LHtrZXk6IlNFVFRJTkdfS0VZUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuW1RNZV0uY29uY2F0KHhydCl9fV0pLGh9KFlzKTtm''@;'; + put 'put ''dW5jdGlvbiBYNmUoZCl7cmV0dXJuKFg2ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZn''@;'; + put 'put ''LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIExydChkLGcpe3JldHVybiBmdW5jdGlvbiBQcnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIEJydChkLGcpe3ZhciBo''@;'; + put 'put ''PW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2go''@;'; + put 'put ''SS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIFJydChkLGcpe2lmKGQpe2lmKCJz''@;'; + put 'put ''dHJpbmciPT10eXBlb2YgZClyZXR1cm4gSU1lKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1''@;'; + put 'put ''cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBJTWUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIE9ydCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0''@;'; + put 'put ''byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gSU1lKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgp''@;'; + put 'put ''JiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gRE1lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1''@;'; + put 'put ''cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24ga08oKXtyZXR1cm4ga089InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24o''@;'; + put 'put ''ZyxoLHYpe3ZhciB5PU5ydChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sa08uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE5y''@;'; + put 'put ''dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9UncoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gSzZlKGQsZyl7cmV0dXJuKEs2ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpm''@;'; + put 'put ''dW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFpydChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVg2ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25z''@;'; + put 'put ''dHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24genJ0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxs''@;'; + put 'put ''ZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gUncoZCl7cmV0dXJuKFJ3PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIHh0ZT0i''@;'; + put 'put ''YXV0b1Jvd1NpemUiLFVydD1mdW5jdGlvbihkKXshZnVuY3Rpb24gVnJ0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5''@;'; + put 'put ''cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJks2ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0''@;'; + put 'put ''aW9uIGpydChkKXt2YXIgZz1mdW5jdGlvbiBHcnQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBC''@;'; + put 'put ''b29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1SdyhkKTtpZihnKXt2YXIgQz1Sdyh0aGlzKS5jb25zdHJ1Y3Rvcjt5''@;'; + put 'put ''PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gWnJ0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBGcnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkucm93SGVpZ2h0c01hcD12b2lkIDAseS5oZWFkZXJIZWlnaHQ9bnVsbCx5Lmdob3N0VGFibGU9bmV3IHo2ZSh5LmhvdCkseS5zYW1wbGVzR2VuZXJhdG9yPW5l''@;'; + put 'put ''dyBiTWUoZnVuY3Rpb24oQyxJKXt2YXIgajtyZXR1cm4gQz49MD9qPXkuaG90LmdldERhdGFBdENlbGwoQyxJKTotMT09PUMmJihqPXkuaG90LmdldENvbEhlYWRlcihJKSkse3ZhbHVlOmp9fSkseS5maXJzdENhbGN1bGF0aW9uPSEwLHkuaW5Qcm9ncmVzcz0hMSx5Lm1lYXN1cmVkUm93cz0w''@;'; + put 'put ''LHkucm93SGVpZ2h0c01hcD1uZXcgVHcseS5ob3Qucm93SW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAoImF1dG9Sb3dTaXplIix5LnJvd0hlaWdodHNNYXApLHkuYWRkSG9vaygiYmVmb3JlUm93UmVzaXplIixmdW5jdGlvbihDLEksail7cmV0dXJuIHkub25CZWZvcmVSb3dSZXNpemUoQyxJLGop''@;'; + put 'put ''fSkseX1yZXR1cm4gZnVuY3Rpb24gSHJ0KGQsZyxoKXtnJiZETWUoZC5wcm90b3R5cGUsZyksaCYmRE1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlz''@;'; + put 'put ''LmhvdC5nZXRTZXR0aW5ncygpW3h0ZV07cmV0dXJuITA9PT15fHx4bCh5KX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuc2V0U2FtcGxpbmdPcHRpb25zKCksdGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJMb2FkRGF0YS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNoYW5nZVJlbmRlciIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25CZWZvcmVDaGFuZ2UoQyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNvbHVtblJlc2l6ZSIs''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4geS5yZWNhbGN1bGF0ZUFsbFJvd3NIZWlnaHQoKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlVmlld1JlbmRlciIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25CZWZvcmVWaWV3UmVuZGVyKEMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlSb3dIZWlnaHQiLGZ1bmN0aW9u''@;'; + put 'put ''KEMsSSl7cmV0dXJuIHkuZ2V0Um93SGVpZ2h0KEksQyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbHVtbkhlYWRlckhlaWdodCIsZnVuY3Rpb24oKXtyZXR1cm4geS5nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKX0pLGtPKFJ3KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxs''@;'; + put 'put ''KHRoaXMpKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmhlYWRlckhlaWdodD1udWxsLGtPKFJ3KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLmFkZEhvb2soImJlZm9yZVJvd1Jlc2l6ZSIs''@;'; + put 'put ''ZnVuY3Rpb24oQyxJLGope3JldHVybiB5Lm9uQmVmb3JlUm93UmVzaXplKEMsSSxqKX0pfX0se2tleToiY2FsY3VsYXRlUm93c0hlaWdodCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBd''@;'; + put 'put ''Ontmcm9tOjAsdG86dGhpcy5ob3QuY291bnRSb3dzKCktMX0sST1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e2Zyb206MCx0bzp0aGlzLmhvdC5jb3VudENvbHMoKS0xfSxqPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1l''@;'; + put 'put ''bnRzWzJdJiZhcmd1bWVudHNbMl0sdWU9Im51bWJlciI9PXR5cGVvZiBDP3tmcm9tOkMsdG86Q306QyxfZT0ibnVtYmVyIj09dHlwZW9mIEk/e2Zyb206SSx0bzpJfTpJO2lmKG51bGwhPT10aGlzLmhvdC5nZXRDb2xIZWFkZXIoMCkpe3ZhciBCZT10aGlzLnNhbXBsZXNHZW5lcmF0b3IuZ2Vu''@;'; + put 'put ''ZXJhdGVSb3dTYW1wbGVzKC0xLF9lKTt0aGlzLmdob3N0VGFibGUuYWRkQ29sdW1uSGVhZGVyc1JvdyhCZS5nZXQoLTEpKX1pYSh1ZS5mcm9tLHVlLnRvLGZ1bmN0aW9uKE5lKXsoanx8bnVsbD09PXkucm93SGVpZ2h0c01hcC5nZXRWYWx1ZUF0SW5kZXgoTmUpKSYmVXIoeS5zYW1wbGVzR2Vu''@;'; + put 'put ''ZXJhdG9yLmdlbmVyYXRlUm93U2FtcGxlcyhOZSxfZSksZnVuY3Rpb24oZHQpe3ZhciBPdD1McnQoZHQsMik7cmV0dXJuIHkuZ2hvc3RUYWJsZS5hZGRSb3coT3RbMF0sT3RbMV0pfSl9KSx0aGlzLmdob3N0VGFibGUucm93cy5sZW5ndGgmJih0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5j''@;'; + put 'put ''dGlvbigpe3kuZ2hvc3RUYWJsZS5nZXRIZWlnaHRzKGZ1bmN0aW9uKE5lLEtlKXtOZTwwP3kuaGVhZGVySGVpZ2h0PUtlOnkucm93SGVpZ2h0c01hcC5zZXRWYWx1ZUF0SW5kZXgoeS5ob3QudG9QaHlzaWNhbFJvdyhOZSksS2UpfSl9LCEwKSx0aGlzLm1lYXN1cmVkUm93cz11ZS50bysxLHRo''@;'; + put 'put ''aXMuZ2hvc3RUYWJsZS5jbGVhbigpKX19LHtrZXk6ImNhbGN1bGF0ZUFsbFJvd3NIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7ZnJvbTowLHRvOnRoaXMuaG90LmNvdW50''@;'; + put 'put ''Q29scygpLTF9LEk9MCxqPXRoaXMuaG90LmNvdW50Um93cygpLTEsdWU9bnVsbDt0aGlzLmluUHJvZ3Jlc3M9ITA7dmFyIF9lPWZ1bmN0aW9uIE5lKCl7aWYoIXkuaG90KXJldHVybiBFWih1ZSksdm9pZCh5LmluUHJvZ3Jlc3M9ITEpO3kuY2FsY3VsYXRlUm93c0hlaWdodCh7ZnJvbTpJLHRv''@;'; + put 'put ''Ok1hdGgubWluKEkraC5DQUxDVUxBVElPTl9TVEVQLGopfSxDKSwoST1JK2guQ0FMQ1VMQVRJT05fU1RFUCsxKTxqP3VlPVpoZShOZSk6KEVaKHVlKSx5LmluUHJvZ3Jlc3M9ITEseS5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApLHkuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMuaW5s''@;'; + put 'put ''aW5lU3RhcnRPdmVybGF5Lm5lZWRGdWxsUmVuZGVyJiZ5LmhvdC52aWV3Ll93dC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5jbG9uZS5kcmF3KCkpfSxCZT10aGlzLmdldFN5bmNDYWxjdWxhdGlvbkxpbWl0KCk7dGhpcy5maXJzdENhbGN1bGF0aW9uJiZCZT49MCYmKHRoaXMuY2Fs''@;'; + put 'put ''Y3VsYXRlUm93c0hlaWdodCh7ZnJvbTowLHRvOkJlfSxDKSx0aGlzLmZpcnN0Q2FsY3VsYXRpb249ITEsST1CZSsxKSxJPGo/X2UoKToodGhpcy5pblByb2dyZXNzPSExLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCExKSl9fSx7a2V5OiJzZXRTYW1wbGluZ09wdGlvbnMiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt4dGVdLEM9eSYmbzEoeSwic2FtcGxpbmdSYXRpbyIpP3kuc2FtcGxpbmdSYXRpbzp2b2lkIDAsST15JiZvMSh5LCJhbGxvd1NhbXBsZUR1cGxpY2F0ZXMiKT95LmFsbG93U2FtcGxlRHVwbGljYXRlczp2b2lkIDA7''@;'; + put 'put ''QyYmIWlzTmFOKEMpJiZ0aGlzLnNhbXBsZXNHZW5lcmF0b3Iuc2V0U2FtcGxlQ291bnQocGFyc2VJbnQoQywxMCkpLEkmJnRoaXMuc2FtcGxlc0dlbmVyYXRvci5zZXRBbGxvd0R1cGxpY2F0ZXMoSSl9fSx7a2V5OiJyZWNhbGN1bGF0ZUFsbFJvd3NIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''dE8odGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZS5UQUJMRSkmJih0aGlzLmNsZWFyQ2FjaGUoKSx0aGlzLmNhbGN1bGF0ZUFsbFJvd3NIZWlnaHQoKSl9fSx7a2V5OiJnZXRTeW5jQ2FsY3VsYXRpb25MaW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRTZXR0aW5ncygp''@;'; + put 'put ''W3h0ZV0sQz1oLlNZTkNfQ0FMQ1VMQVRJT05fTElNSVQsST10aGlzLmhvdC5jb3VudFJvd3MoKS0xO3JldHVybiB4bCh5KSYmKHIzZShDPXkuc3luY0xpbWl0KT9DPVIzZShJLEMpOkM+Pj0wKSxNYXRoLm1pbihDLEkpfX0se2tleToiZ2V0Um93SGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbih5KXt2''@;'; + put 'put ''YXIgQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dm9pZCAwLEk9eTwwP3RoaXMuaGVhZGVySGVpZ2h0OnRoaXMucm93SGVpZ2h0c01hcC5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5KSksaj1DO3JldHVybiBu''@;'; + put 'put ''dWxsIT09SSYmST4oQ3x8MCkmJihqPUkpLGp9fSx7a2V5OiJnZXRDb2x1bW5IZWFkZXJIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGVhZGVySGVpZ2h0fX0se2tleToiZ2V0Rmlyc3RWaXNpYmxlUm93Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LnZpZXcu''@;'; + put 'put ''X3d0O3JldHVybiB5Lnd0Vmlld3BvcnQucm93c1Zpc2libGVDYWxjdWxhdG9yP3kud3RUYWJsZS5nZXRGaXJzdFZpc2libGVSb3coKTp5Lnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3I/eS53dFRhYmxlLmdldEZpcnN0UmVuZGVyZWRSb3coKTotMX19LHtrZXk6ImdldExhc3RWaXNp''@;'; + put 'put ''YmxlUm93Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LnZpZXcuX3d0O3JldHVybiB5Lnd0Vmlld3BvcnQucm93c1Zpc2libGVDYWxjdWxhdG9yP3kud3RUYWJsZS5nZXRMYXN0VmlzaWJsZVJvdygpOnkud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvcj95Lnd0VGFibGUu''@;'; + put 'put ''Z2V0TGFzdFJlbmRlcmVkUm93KCk6LTF9fSx7a2V5OiJjbGVhckNhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaGVhZGVySGVpZ2h0PW51bGwsdGhpcy5yb3dIZWlnaHRzTWFwLmluaXQoKX19LHtrZXk6ImNsZWFyQ2FjaGVCeVJhbmdlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlz''@;'; + put 'put ''LEk9Im51bWJlciI9PXR5cGVvZiB5P3tmcm9tOnksdG86eX06eSxqPUkuZnJvbSx1ZT1JLnRvO3RoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7aWEoTWF0aC5taW4oaix1ZSksTWF0aC5tYXgoaix1ZSksZnVuY3Rpb24oX2Upe0Mucm93SGVpZ2h0c01hcC5zZXRWYWx1ZUF0SW5k''@;'; + put 'put ''ZXgoX2UsbnVsbCl9KX0sITApfX0se2tleToiaXNOZWVkUmVjYWxjdWxhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISFnNCh0aGlzLnJvd0hlaWdodHNNYXAuZ2V0VmFsdWVzKCkuc2xpY2UoMCx0aGlzLm1lYXN1cmVkUm93cyksZnVuY3Rpb24oeSl7cmV0dXJuIG51bGw9PT15fSkubGVu''@;'; + put 'put ''Z3RofX0se2tleToib25CZWZvcmVWaWV3UmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LnJlbmRlckNhbGwsQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkUm93c0JvdHRvbSxJPXRoaXMuZ2V0Rmlyc3RWaXNpYmxlUm93KCksaj10aGlzLmdldExhc3RWaXNpYmxl''@;'; + put 'put ''Um93KCk7aWYoLTEhPT1JJiYtMSE9PWope2lmKHRoaXMuY2FsY3VsYXRlUm93c0hlaWdodCh7ZnJvbTpJLHRvOmp9LHZvaWQgMCx5KSxDKXt2YXIgdWU9dGhpcy5ob3QuY291bnRSb3dzKCktMTt0aGlzLmNhbGN1bGF0ZVJvd3NIZWlnaHQoe2Zyb206dWUtQyx0bzp1ZX0pfXRoaXMuaXNOZWVk''@;'; + put 'put ''UmVjYWxjdWxhdGUoKSYmIXRoaXMuaW5Qcm9ncmVzcyYmdGhpcy5jYWxjdWxhdGVBbGxSb3dzSGVpZ2h0KCl9fX0se2tleToib25CZWZvcmVSb3dNb3ZlIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuY2xlYXJDYWNoZUJ5UmFuZ2Uoe2Zyb206eSx0bzpDfSksdGhpcy5jYWxjdWxhdGVBbGxS''@;'; + put 'put ''b3dzSGVpZ2h0KCl9fSx7a2V5OiJvbkJlZm9yZVJvd1Jlc2l6ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBqPXk7cmV0dXJuIEkmJih0aGlzLmNhbGN1bGF0ZVJvd3NIZWlnaHQoQyx2b2lkIDAsITApLGo9dGhpcy5nZXRSb3dIZWlnaHQoQykpLGp9fSx7a2V5OiJvbkFmdGVyTG9hZERh''@;'; + put 'put ''dGEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmhvdC52aWV3P3RoaXMucmVjYWxjdWxhdGVBbGxSb3dzSGVpZ2h0KCk6c2V0VGltZW91dChmdW5jdGlvbigpe3kuaG90JiZ5LnJlY2FsY3VsYXRlQWxsUm93c0hlaWdodCgpfSwwKX19LHtrZXk6Im9uQmVmb3JlQ2hhbmdlIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1udWxsOzE9PT15Lmxlbmd0aD9DPXlbMF1bMF06eS5sZW5ndGg+MSYmKEM9e2Zyb206eVswXVswXSx0bzp5W3kubGVuZ3RoLTFdWzBdfSksbnVsbCE9PUMmJnRoaXMuY2xlYXJDYWNoZUJ5UmFuZ2UoQyl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbigpe3RoaXMuZ2hvc3RUYWJsZS5jbGVhbigpLGtPKFJ3KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHh0ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIDQwfX0se2tleToiU0VUVElOR19LRVlTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LHtrZXk6IkNBTENVTEFUSU9OX1NURVAiLGdldDpmdW5jdGlvbigpe3JldHVybiA1MH19LHtrZXk6IlNZTkNfQ0FMQ1VMQVRJT05fTElNSVQiLGdldDpmdW5jdGlvbigpe3JldHVybiA1MDB9''@;'; + put 'put ''fV0pLGh9KFlzKSxMTWU9bmV3IE1hcChbWyJpbmRleGVzU2VxdWVuY2UiLHtnZXRMaXN0V2l0aEluc2VydGVkSXRlbXM6aTRlLGdldExpc3RXaXRoUmVtb3ZlZEl0ZW1zOnFafV0sWyJwaHlzaWNhbGx5SW5kZXhlZCIse2dldExpc3RXaXRoSW5zZXJ0ZWRJdGVtczpYZGUsZ2V0TGlzdFdpdGhS''@;'; + put 'put ''ZW1vdmVkSXRlbXM6S2RlfV1dKSxPTWU9ZnVuY3Rpb24oZyl7aWYoITE9PT1MTWUuaGFzKGcpKXRocm93IG5ldyBFcnJvcigiQWx0ZXIgc3RyYXRlZ3kgd2l0aCBJRCAnIi5jb25jYXQoZywiJyBkb2VzIG5vdCBleGlzdC4iKSk7cmV0dXJuIExNZS5nZXQoZyl9O2Z1bmN0aW9uICQ2ZShkKXty''@;'; + put 'put ''ZXR1cm4oJDZlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1T''@;'; + put 'put ''eW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gUk1lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImlu''@;'; + put 'put ''IHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gZHooKXtyZXR1cm4gZHo9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PVhydChn''@;'; + put 'put ''LGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sZHouYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFhydChkLGcpe2Zvcig7IU9iamVj''@;'; + put 'put ''dC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9VlMoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gcTZlKGQsZyl7cmV0dXJuKHE2ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVy''@;'; + put 'put ''biB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIHFydChkLGcpe2lmKGcmJigib2JqZWN0Ij09PSQ2ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkg''@;'; + put 'put ''cmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gZWl0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9''@;'; + put 'put ''ZnVuY3Rpb24gVlMoZCl7cmV0dXJuKFZTPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIEJNZT1PTWUoInBoeXNpY2FsbHlJbmRl''@;'; + put 'put ''eGVkIiksbml0PUJNZS5nZXRMaXN0V2l0aEluc2VydGVkSXRlbXMscml0PUJNZS5nZXRMaXN0V2l0aFJlbW92ZWRJdGVtcyxpaXQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIEtydChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBl''@;'; + put 'put ''ciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHko''@;'; + put 'put ''ZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZxNmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiAkcnQoZCl7dmFyIGc9ZnVuY3Rpb24gdGl0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0p''@;'; + put 'put ''cmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBm''@;'; + put 'put ''dW5jdGlvbigpe3ZhciB5LHY9VlMoZCk7aWYoZyl7dmFyIEM9VlModGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHFydCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVy''@;'; + put 'put ''biBmdW5jdGlvbiBRcnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxnLmNhbGwodGhpcyxmdW5jdGlvbih2KXtyZXR1cm4gdn0pfXJldHVybiBmdW5jdGlvbiBKcnQoZCxn''@;'; + put 'put ''LGgpe2cmJlJNZShkLnByb3RvdHlwZSxnKSxoJiZSTWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaW5zZXJ0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWE0ZSh0aGlzLmluZGV4ZWRWYWx1ZXMsQyk7dGhpcy5p''@;'; + put 'put ''bmRleGVkVmFsdWVzPW5pdChJLHksQyx0aGlzLmluaXRWYWx1ZU9yRm4pLGR6KFZTKGgucHJvdG90eXBlKSwiaW5zZXJ0Iix0aGlzKS5jYWxsKHRoaXMseSxDKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9cml0KHRoaXMuaW5kZXhlZFZhbHVlcyx5KTt0aGlzLmlu''@;'; + put 'put ''ZGV4ZWRWYWx1ZXM9bzRlKEMseSksZHooVlMoaC5wcm90b3R5cGUpLCJyZW1vdmUiLHRoaXMpLmNhbGwodGhpcyx5KX19XSksaH0oVFMpO2NvbnN0IG9pdD1paXQ7ZnVuY3Rpb24gZThlKGQpe3JldHVybihlOGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBT''@;'; + put 'put ''eW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5j''@;'; + put 'put ''dGlvbiB0OGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBQTWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVu''@;'; + put 'put ''dW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBweigpe3JldHVybiBwej0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxl''@;'; + put 'put ''Y3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9ZGl0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxw''@;'; + put 'put ''ei5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZGl0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1qUyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBuOGUoZCxnKXtyZXR1cm4objhlPU9iamVjdC5zZXRQcm90b3R5''@;'; + put 'put ''cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gbWl0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09ZThlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09''@;'; + put 'put ''Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiB2aXQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5p''@;'; + put 'put ''dGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBqUyhkKXtyZXR1cm4oalM9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmpl''@;'; + put 'put ''Y3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgRk1lPU9NZSgicGh5c2ljYWxseUluZGV4ZWQiKSx5aXQ9Rk1lLmdldExpc3RXaXRoSW5zZXJ0ZWRJdGVtcyx3aXQ9Rk1lLmdldExpc3RXaXRoUmVtb3ZlZEl0ZW1zLGJpdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gcGl0KGQsZyl7aWYoImZ1''@;'; + put 'put ''bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQs''@;'; + put 'put ''d3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJm44ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGdpdChkKXt2YXIgZz1mdW5jdGlvbiBBaXQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9m''@;'; + put 'put ''IFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVh''@;'; + put 'put ''bixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1qUyhkKTtpZihnKXt2YXIgQz1qUyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMs''@;'; + put 'put ''YXJndW1lbnRzKTtyZXR1cm4gbWl0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIGZ1bmN0aW9uIGZpdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGcuY2Fs''@;'; + put 'put ''bCh0aGlzLGZ1bmN0aW9uKHYpe3JldHVybiB2fSl9cmV0dXJuIGZ1bmN0aW9uIGhpdChkLGcsaCl7ZyYmUE1lKGQucHJvdG90eXBlLGcpLGgmJlBNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpbnNlcnQiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpczt0aGlzLmluZGV4ZWRWYWx1ZXM9eWl0KHRoaXMuaW5kZXhlZFZhbHVlcyx5LEMsZnVuY3Rpb24oaix1ZSl7cmV0dXJuIEkuZ2V0TmV4dFZhbHVlKHVlKX0pLHB6KGpTKGgucHJvdG90eXBlKSwiaW5zZXJ0Iix0aGlzKS5jYWxsKHRoaXMseSxDKX19''@;'; + put 'put ''LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5pbmRleGVkVmFsdWVzPXdpdCh0aGlzLmluZGV4ZWRWYWx1ZXMseSkscHooalMoaC5wcm90b3R5cGUpLCJyZW1vdmUiLHRoaXMpLmNhbGwodGhpcyx5KX19LHtrZXk6ImdldE5leHRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7''@;'; + put 'put ''cmV0dXJuIE1hdGgubWF4LmFwcGx5KE1hdGgsZnVuY3Rpb24gYWl0KGQpe3JldHVybiBmdW5jdGlvbiBjaXQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gdDhlKGQpfShkKXx8ZnVuY3Rpb24gdWl0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJv''@;'; + put 'put ''bC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIHNpdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gdDhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNs''@;'; + put 'put ''aWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJy''@;'; + put 'put ''YXkkLy50ZXN0KGgpKXJldHVybiB0OGUoZCxnKX19KGQpfHxmdW5jdGlvbiBsaXQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBt''@;'; + put 'put ''dXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0odGhpcy5nZXRWYWx1ZXMoKSkpKzEreX19XSksaH0oVFMpO2Z1bmN0aW9uIHI4ZShkKXtyZXR1cm4ocjhlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9y''@;'; + put 'put ''P2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gSE1lKGQsZyl7''@;'; + put 'put ''Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gU08oKXty''@;'; + put 'put ''ZXR1cm4gU089InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PVNpdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5n''@;'; + put 'put ''ZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sU08uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFNpdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9QncoZCkpOyk7cmV0dXJuIGR9ZnVu''@;'; + put 'put ''Y3Rpb24gaThlKGQsZyl7cmV0dXJuKGk4ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIHhpdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXI4ZShnKXx8''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gVGl0KGQpe2lmKHZvaWQgMD09PWQpdGhy''@;'; + put 'put ''b3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gQncoZCl7cmV0dXJuKEJ3PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2Yu''@;'; + put 'put ''YmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIG84ZT0iYmluZFJvd3NXaXRoSGVhZGVycyIsT2l0PW5ldyBNYXAoW1sibG9vc2UiLG9pdF0sWyJzdHJpY3QiLGJpdF1dKSxSaXQ9ZnVuY3Rpb24oZCl7IWZ1bmN0''@;'; + put 'put ''aW9uIE1pdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2Nv''@;'; + put 'put ''bnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZpOGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBFaXQoZCl7dmFyIGc9ZnVuY3Rpb24gSWl0KCl7aWYo''@;'; + put 'put ''InVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxl''@;'; + put 'put ''Y3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9QncoZCk7aWYoZyl7dmFyIEM9QncodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1l''@;'; + put 'put ''bHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHhpdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gQ2l0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBh''@;'; + put 'put ''IGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLmhlYWRlckluZGV4ZXM9bnVsbCx5fXJldHVybiBmdW5jdGlvbiBraXQoZCxnLGgpe2cmJkhNZShkLnByb3RvdHlwZSxnKSxoJiZITWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFi''@;'; + put 'put ''bGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtvOGVdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7aWYoIXRoaXMuZW5hYmxlZCl7dmFyIEM9dGhpcy5ob3Qu''@;'; + put 'put ''Z2V0U2V0dGluZ3MoKVtvOGVdOyJzdHJpbmciIT10eXBlb2YgQyYmKEM9Imxvb3NlIik7dmFyIEk9T2l0LmdldChDKTt0aGlzLmhlYWRlckluZGV4ZXM9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAoImJpbmRSb3dzV2l0aEhlYWRlcnMiLG5ldyBJKSx0aGlzLmFkZEhvb2so''@;'; + put 'put ''Im1vZGlmeVJvd0hlYWRlciIsZnVuY3Rpb24oail7cmV0dXJuIHkub25Nb2RpZnlSb3dIZWFkZXIoail9KSxTTyhCdyhoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LnJv''@;'; + put 'put ''d0luZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAoImJpbmRSb3dzV2l0aEhlYWRlcnMiKSxTTyhCdyhoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJvbk1vZGlmeVJvd0hlYWRlciIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHRoaXMuaGVhZGVy''@;'; + put 'put ''SW5kZXhlcy5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5KSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe1NPKEJ3KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIG84ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDIxMH19XSksaH0oWXMpO2Z1bmN0aW9uIGE4ZShkKXtyZXR1cm4oYThlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1''@;'; + put 'put ''bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gTk1lKGQpe3JldHVy''@;'; + put 'put ''biBmdW5jdGlvbiBIaXQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gbDhlKGQpfShkKXx8ZnVuY3Rpb24gRml0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXku''@;'; + put 'put ''ZnJvbShkKX0oZCl8fGZ1bmN0aW9uIFBpdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gbDhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5j''@;'; + put 'put ''b25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBsOGUoZCxnKX19KGQpfHxmdW5jdGlvbiBCaXQo''@;'; + put 'put ''KXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5j''@;'; + put 'put ''dGlvbiBsOGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBOaXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJD''@;'; + put 'put ''YW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBWTWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9''@;'; + put 'put ''ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBaUygpe3JldHVybiBaUz0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9aml0KGcsaCk7aWYoeSl7dmFyIEM9''@;'; + put 'put ''T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxaUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gaml0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNP''@;'; + put 'put ''d25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1POShkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBzOGUoZCxnKXtyZXR1cm4oczhlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXks''@;'; + put 'put ''dn0pKGQsZyl9ZnVuY3Rpb24gR2l0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09YThlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9y''@;'; + put 'put ''IHVuZGVmaW5lZCIpO3JldHVybiBNTyhkKX1mdW5jdGlvbiBNTyhkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gTzkoZCl7''@;'; + put 'put ''cmV0dXJuKE85PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9ZnVuY3Rpb24gWWl0KGQsZyxoKXsoZnVuY3Rpb24gVWl0KGQsZyl7aWYo''@;'; + put 'put ''Zy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiB1OGUoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIGpNZShkLGcpe3JldHVybiBmdW5jdGlvbiBRaXQoZCxnKXtyZXR1cm4gZy5nZXQ/Zy5nZXQuY2FsbChkKTpnLnZhbHVlfShkLFpNZShkLGcsImdldCIp''@;'; + put 'put ''KX1mdW5jdGlvbiBjOGUoZCxnLGgpe3JldHVybiBmdW5jdGlvbiBKaXQoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVl''@;'; + put 'put ''PWh9fShkLFpNZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gWk1lKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQpfXZhciBmOGU9ImNvbGxhcHNp''@;'; + put 'put ''YmxlQ29sdW1ucyIsS2l0PVsibmVzdGVkSGVhZGVycyJdLHpNZT1uZXcgTWFwKFtbImNvbGxhcHNlIix7aGlkZUNvbHVtbjohMCxiZWZvcmVIb29rOiJiZWZvcmVDb2x1bW5Db2xsYXBzZSIsYWZ0ZXJIb29rOiJhZnRlckNvbHVtbkNvbGxhcHNlIn1dLFsiZXhwYW5kIix7aGlkZUNvbHVtbjoh''@;'; + put 'put ''MSxiZWZvcmVIb29rOiJiZWZvcmVDb2x1bW5FeHBhbmQiLGFmdGVySG9vazoiYWZ0ZXJDb2x1bW5FeHBhbmQifV1dKSxFTz1uZXcgV2Vha01hcCwkaXQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFppdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlw''@;'; + put 'put ''ZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZzOGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiB6aXQoZCl7dmFyIGc9ZnVuY3Rpb24gV2l0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29u''@;'; + put 'put ''c3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9''@;'; + put 'put ''fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9TzkoZCk7aWYoZyl7dmFyIEM9TzkodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEdpdCh0aGlzLHkpfX0oaCk7ZnVuY3Rp''@;'; + put 'put ''b24gaCgpe3ZhciB2O05pdCh0aGlzLGgpO2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiB1OGUoTU8odj1nLmNhbGwuYXBwbHkoZyxbdGhpc10uY29uY2F0KEMpKSksIm5lc3RlZEhlYWRlcnNQbHVn''@;'; + put 'put ''aW4iLG51bGwpLHU4ZShNTyh2KSwiZXZlbnRNYW5hZ2VyIixuZXcgTDEoTU8odikpKSx1OGUoTU8odiksImhlYWRlclN0YXRlTWFuYWdlciIsbnVsbCksWWl0KE1PKHYpLEVPLHt3cml0YWJsZTohMCx2YWx1ZTpudWxsfSksdn1yZXR1cm4gZnVuY3Rpb24gVml0KGQsZyxoKXtnJiZWTWUoZC5w''@;'; + put 'put ''cm90b3R5cGUsZyksaCYmVk1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbZjhlXX19LHtrZXk6ImVuYWJsZVBs''@;'; + put 'put ''dWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuaG90LmdldFNldHRpbmdzKCkubmVzdGVkSGVhZGVyc3x8bDEoIllvdSBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUgTmVzdGVkIEhlYWRlcnMgcGx1Z2luIGluIG9yZGVyIHRvIHVzZSBjb2xsYXBzaWJs''@;'; + put 'put ''ZSBoZWFkZXJzLiIpLGM4ZSh0aGlzLEVPLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmNyZWF0ZUFuZFJlZ2lzdGVySW5kZXhNYXAodGhpcy5wbHVnaW5OYW1lLCJoaWRpbmciKSksdGhpcy5uZXN0ZWRIZWFkZXJzUGx1Z2luPXRoaXMuaG90LmdldFBsdWdpbigibmVzdGVkSGVhZGVycyIp''@;'; + put 'put ''LHRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyPXRoaXMubmVzdGVkSGVhZGVyc1BsdWdpbi5nZXRTdGF0ZU1hbmFnZXIoKSx0aGlzLmFkZEhvb2soImluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25Jbml0KCl9KSx0aGlzLmFkZEhvb2soImFmdGVyTG9hZERhdGEiLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHkub25BZnRlckxvYWREYXRhLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLGZ1bmN0aW9uKGosdWUpe3JldHVybiB5Lm9uQWZ0ZXJHZXRDb2xIZWFkZXIoaix1ZSl9KSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlRG93biIsZnVu''@;'; + put 'put ''Y3Rpb24oaix1ZSxfZSl7cmV0dXJuIHkub25CZWZvcmVPbkNlbGxNb3VzZURvd24oaix1ZSxfZSl9KSxaUyhPOShoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLnVwZGF0ZVBsdWdpbigpKX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXtpZih0aGlzLmhvdC52aWV3KXtpZighdGhpcy5uZXN0ZWRIZWFkZXJzUGx1Z2luLmRldGVjdGVkT3ZlcmxhcHBlZEhlYWRlcnMpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKCkuY29sbGFwc2libGVDb2x1bW5zOyJib29sZWFuIj09dHlwZW9mIEM/dGhpcy5oZWFkZXJTdGF0ZU1h''@;'; + put 'put ''bmFnZXIubWFwU3RhdGUoZnVuY3Rpb24oSSl7cmV0dXJue2NvbGxhcHNpYmxlOkkub3JpZ0NvbHNwYW4+MX19KTpBcnJheS5pc0FycmF5KEMpJiYodGhpcy5oZWFkZXJTdGF0ZU1hbmFnZXIubWFwU3RhdGUoZnVuY3Rpb24oKXtyZXR1cm57Y29sbGFwc2libGU6ITF9fSksdGhpcy5oZWFkZXJT''@;'; + put 'put ''dGF0ZU1hbmFnZXIubWVyZ2VTdGF0ZVdpdGgoQykpfVpTKE85KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCh0''@;'; + put 'put ''aGlzLnBsdWdpbk5hbWUpLGM4ZSh0aGlzLEVPLG51bGwpLHRoaXMubmVzdGVkSGVhZGVyc1BsdWdpbj1udWxsLHRoaXMuY2xlYXJCdXR0b25zKCksWlMoTzkoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiY2xlYXJCdXR0b25zIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbigpe2lmKHRoaXMuaG90LnZpZXcpe3ZhciB5PXRoaXMuaG90LnZpZXcuX3d0LmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGgsQz10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLlRIRUFELEk9dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy50b3BPdmVybGF5LmNs''@;'; + put 'put ''b25lLnd0VGFibGUuVEhFQUQsaj10aGlzLmhvdC52aWV3Ll93dC53dE92ZXJsYXlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheT90aGlzLmhvdC52aWV3Ll93dC53dE92ZXJsYXlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5jbG9uZS53dFRhYmxlLlRIRUFEOm51bGwsdWU9ZnVu''@;'; + put 'put ''Y3Rpb24oQmUpe0JlJiZCZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEJlKX07aWEoMCx5LTEsZnVuY3Rpb24oX2Upe3ZhciBCZT1DLmNoaWxkTm9kZXNbX2VdLE5lPUkuY2hpbGROb2Rlc1tfZV0sS2U9aj9qLmNoaWxkTm9kZXNbX2VdOm51bGw7aWEoMCxCZS5jaGlsZE5vZGVzLmxlbmd0aC0x''@;'; + put 'put ''LGZ1bmN0aW9uKGR0KXt2YXIgT3Q9QmUuY2hpbGROb2Rlc1tkdF0ucXVlcnlTZWxlY3RvcigiLmNvbGxhcHNpYmxlSW5kaWNhdG9yIik7dWUoT3QpLE5lJiZOZS5jaGlsZE5vZGVzW2R0XSYmKE90PU5lLmNoaWxkTm9kZXNbZHRdLnF1ZXJ5U2VsZWN0b3IoIi5jb2xsYXBzaWJsZUluZGljYXRv''@;'; + put 'put ''ciIpLHVlKE90KSksaiYmS2UmJktlLmNoaWxkTm9kZXNbZHRdJiYoT3Q9S2UuY2hpbGROb2Rlc1tkdF0ucXVlcnlTZWxlY3RvcigiLmNvbGxhcHNpYmxlSW5kaWNhdG9yIiksdWUoT3QpKX0pfSl9fX0se2tleToiZXhwYW5kU2VjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy50b2dnbGVD''@;'; + put 'put ''b2xsYXBzaWJsZVNlY3Rpb24oW3ldLCJleHBhbmQiKX19LHtrZXk6ImNvbGxhcHNlU2VjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy50b2dnbGVDb2xsYXBzaWJsZVNlY3Rpb24oW3ldLCJjb2xsYXBzZSIpfX0se2tleToidG9nZ2xlQWxsQ29sbGFwc2libGVTZWN0aW9ucyIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPXRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLm1hcE5vZGVzKGZ1bmN0aW9uKGope3ZhciBOZT1qLmNvbHVtbkluZGV4LEtlPWouaXNDb2xsYXBzZWQ7aWYoITA9PT1qLmNvbGxhcHNpYmxlJiZqLm9yaWdDb2xzcGFuPjEmJihLZSYmImV4cGFuZCI9PT15''@;'; + put 'put ''fHwhS2UmJiJjb2xsYXBzZSI9PT15KSlyZXR1cm57cm93OkMuaGVhZGVyU3RhdGVNYW5hZ2VyLmxldmVsVG9Sb3dDb29yZHMoai5oZWFkZXJMZXZlbCksY29sOk5lfX0pO3RoaXMudG9nZ2xlQ29sbGFwc2libGVTZWN0aW9uKEkseSl9fSx7a2V5OiJjb2xsYXBzZUFsbCIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXt0aGlzLnRvZ2dsZUFsbENvbGxhcHNpYmxlU2VjdGlvbnMoImNvbGxhcHNlIil9fSx7a2V5OiJleHBhbmRBbGwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVBbGxDb2xsYXBzaWJsZVNlY3Rpb25zKCJleHBhbmQiKX19LHtrZXk6InRvZ2dsZUNvbGxhcHNpYmxlU2VjdGlvbiIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzO2lmKCF6TWUuaGFzKEMpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgYWN0aW9uIGlzIHBhc3NlZCAoIi5jb25jYXQoQywiKS4iKSk7aWYoQXJyYXkuaXNBcnJheSh5KSl7dmFyIGo9ZzQoeSxmdW5jdGlvbihmbil7cmV0dXJuIGZu''@;'; + put 'put ''LnJvdzwwfSksdWU9ai5sZW5ndGg+MDtVcihqLGZ1bmN0aW9uKGZuKXt2YXIgTG4sU3I9bnVsbCE9PShMbj1JLmhlYWRlclN0YXRlTWFuYWdlci5nZXRIZWFkZXJTZXR0aW5ncyhmbi5yb3csZm4uY29sKSkmJnZvaWQgMCE9PUxuP0xuOnt9LFFyPVNyLmlzQ29sbGFwc2VkO2lmKCFTci5jb2xs''@;'; + put 'put ''YXBzaWJsZXx8UXImJiJjb2xsYXBzZSI9PT1DfHwhUXImJiJleHBhbmQiPT09QylyZXR1cm4gdWU9ITEsITF9KTt2YXIgX2U9W10sQmU9W107dWUmJlVyKGosZnVuY3Rpb24oZm4pe3ZhciBtcj1JLmhlYWRlclN0YXRlTWFuYWdlci50cmlnZ2VyTm9kZU1vZGlmaWNhdGlvbihDLGZuLnJvdyxm''@;'; + put 'put ''bi5jb2wpLFFyPW1yLnJvbGxiYWNrTW9kaWZpY2F0aW9uO21yLmNvbHNwYW5Db21wZW5zYXRpb24+MCYmKEJlLnB1c2guYXBwbHkoQmUsTk1lKG1yLmFmZmVjdGVkQ29sdW1ucykpLF9lLnB1c2goUXIpKX0pO3ZhciBOZT10aGlzLmdldENvbGxhcHNlZENvbHVtbnMoKSxLZT1bXTsiY29sbGFw''@;'; + put 'put ''c2UiPT09Qz9LZT1VaGUoW10uY29uY2F0KE5NZShOZSksQmUpKToiZXhwYW5kIj09PUMmJihLZT1nNChOZSxmdW5jdGlvbihmbil7cmV0dXJuIUJlLmluY2x1ZGVzKGZuKX0pKTt2YXIgZHQ9ek1lLmdldChDKTtpZighMT09PXRoaXMuaG90LnJ1bkhvb2tzKGR0LmJlZm9yZUhvb2ssTmUsS2Us''@;'; + put 'put ''dWUpKXJldHVybiB2b2lkIFVyKF9lLGZ1bmN0aW9uKGZuKXtmbigpfSk7dGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXtVcihCZSxmdW5jdGlvbihmbil7ak1lKEksRU8pLnNldFZhbHVlQXRJbmRleChJLmhvdC50b1BoeXNpY2FsQ29sdW1uKGZuKSxkdC5oaWRlQ29sdW1uKX0p''@;'; + put 'put ''fSwhMCk7dmFyICR0PXRoaXMuZ2V0Q29sbGFwc2VkQ29sdW1ucygpLmxlbmd0aCE9PU5lLmxlbmd0aDt0aGlzLmhvdC5ydW5Ib29rcyhkdC5hZnRlckhvb2ssTmUsS2UsdWUsJHQpLHRoaXMuaG90LnJlbmRlcigpLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKX19fSx7a2V5''@;'; + put 'put ''OiJnZXRDb2xsYXBzZWRDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBqTWUodGhpcyxFTykuZ2V0SGlkZGVuSW5kZXhlcygpfX0se2tleToiZ2VuZXJhdGVJbmRpY2F0b3IiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1l''@;'; + put 'put ''bnQoImRpdiIpLGo9dGhpcy5oZWFkZXJTdGF0ZU1hbmFnZXIuZ2V0SGVhZGVyU2V0dGluZ3MoeSxDKTtyZXR1cm4gTzAoSSwiY29sbGFwc2libGVJbmRpY2F0b3IiKSxqLmlzQ29sbGFwc2VkPyhPMChJLCJjb2xsYXBzZWQiKSxDdyhJLCIrIikpOihPMChJLCJleHBhbmRlZCIpLEN3KEksIi0i''@;'; + put 'put ''KSksSX19LHtrZXk6Im9uQWZ0ZXJHZXRDb2xIZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEksaj1DLnBhcmVudE5vZGUsdWU9ai5wYXJlbnROb2RlLF9lPS0xKnVlLmNoaWxkTm9kZXMubGVuZ3RoK0FycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodWUuY2hpbGROb2RlcyxqKSxC''@;'; + put 'put ''ZT1udWxsIT09KEk9dGhpcy5oZWFkZXJTdGF0ZU1hbmFnZXIuZ2V0SGVhZGVyU2V0dGluZ3MoX2UseSkpJiZ2b2lkIDAhPT1JP0k6e307aWYoQmUuY29sbGFwc2libGUmJkJlLm9yaWdDb2xzcGFuPjEmJnk+PXRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQpe3ZhciBk''@;'; + put 'put ''dD10aGlzLmdlbmVyYXRlSW5kaWNhdG9yKF9lLHkpO0MucXVlcnlTZWxlY3RvcigiZGl2OmZpcnN0LWNoaWxkIikuYXBwZW5kQ2hpbGQoZHQpfX19LHtrZXk6Im9uQmVmb3JlT25DZWxsTW91c2VEb3duIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RsKHkudGFyZ2V0LCJjb2xsYXBzaWJsZUluZGlj''@;'; + put 'put ''YXRvciIpJiYodGwoeS50YXJnZXQsImV4cGFuZGVkIik/KHRoaXMuZXZlbnRNYW5hZ2VyLmZpcmVFdmVudCh5LnRhcmdldCwibW91c2V1cCIpLHRoaXMudG9nZ2xlQ29sbGFwc2libGVTZWN0aW9uKFtDXSwiY29sbGFwc2UiKSk6dGwoeS50YXJnZXQsImNvbGxhcHNlZCIpJiYodGhpcy5ldmVu''@;'; + put 'put ''dE1hbmFnZXIuZmlyZUV2ZW50KHkudGFyZ2V0LCJtb3VzZXVwIiksdGhpcy50b2dnbGVDb2xsYXBzaWJsZVNlY3Rpb24oW0NdLCJleHBhbmQiKSksXzgoeSkpfX0se2tleToib25Jbml0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudXBkYXRlUGx1Z2luKCl9fSx7a2V5OiJvbkFmdGVyTG9hZERh''@;'; + put 'put ''dGEiLHZhbHVlOmZ1bmN0aW9uKHksQyl7Q3x8dGhpcy51cGRhdGVQbHVnaW4oKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7YzhlKHRoaXMsRU8sbnVsbCksWlMoTzkoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZ''@;'; + put 'put ''IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZjhlfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMjkwfX0se2tleToiUExVR0lOX0RFUFMiLGdldDpmdW5jdGlvbigpe3JldHVyblsicGx1Z2luOk5lc3RlZEhlYWRlcnMiXX19LHtrZXk6IlNFVFRJTkdfS0VZ''@;'; + put 'put ''UyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuW2Y4ZV0uY29uY2F0KEtpdCl9fV0pLGh9KFlzKTtmdW5jdGlvbiBHTWUoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cm''@;'; + put 'put ''Jih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBlMHQoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIFdNZShkLGcpe3JldHVybiBmdW5jdGlvbiBpMHQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIHIwdChkLGcpe3ZhciBo''@;'; + put 'put ''PW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2go''@;'; + put 'put ''SS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIG4wdChkLGcpe2lmKGQpe2lmKCJz''@;'; + put 'put ''dHJpbmciPT10eXBlb2YgZClyZXR1cm4gWU1lKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1''@;'; + put 'put ''cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBZTWUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIHQwdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0''@;'; + put 'put ''byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gWU1lKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgp''@;'; + put 'put ''JiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gVU1lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1''@;'; + put 'put ''cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIGwwdD1bInNvcnRFbXB0eUNlbGxzIiwiaW5kaWNhdG9yIiwiaGVhZGVyQWN0aW9uIiwiY29tcGFyZUZ1bmN0aW9uRmFjdG9yeSJdLGYwdD1mdW5jdGlvbigp''@;'; + put 'put ''e2Z1bmN0aW9uIGQoZyxoKXsoZnVuY3Rpb24gbzB0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5zb3J0aW5nU3RhdGVzPW5ldyBZZWUsdGhp''@;'; + put 'put ''cy5zb3J0RW1wdHlDZWxscz0hMSx0aGlzLmluZGljYXRvcj0hMCx0aGlzLmhlYWRlckFjdGlvbj0hMCx0aGlzLmNvbXBhcmVGdW5jdGlvbkZhY3Rvcnk9dm9pZCAwLHRoaXMubWFwTmFtZT1oLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKGgsdGhpcy5zb3J0aW5nU3Rh''@;'; + put 'put ''dGVzKX1yZXR1cm4gZnVuY3Rpb24gYTB0KGQsZyxoKXtnJiZVTWUoZC5wcm90b3R5cGUsZyksaCYmVU1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InVwZGF0ZUFsbENvbHVtbnNQcm9wZXJ0aWVzIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbihoKXt2YXIgdj10aGlzOyF4bChoKXx8R2woaCxmdW5jdGlvbih5LEMpe2wwdC5pbmNsdWRlcyhDKSYmKHZbQ109eSl9KX19LHtrZXk6ImdldEFsbENvbHVtbnNQcm9wZXJ0aWVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXtzb3J0RW1wdHlDZWxsczp0aGlzLnNvcnRFbXB0eUNlbGxz''@;'; + put 'put ''LGluZGljYXRvcjp0aGlzLmluZGljYXRvcixoZWFkZXJBY3Rpb246dGhpcy5oZWFkZXJBY3Rpb259O3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmNvbXBhcmVGdW5jdGlvbkZhY3RvcnkmJihoLmNvbXBhcmVGdW5jdGlvbkZhY3Rvcnk9dGhpcy5jb21wYXJlRnVuY3Rpb25GYWN0b3J5''@;'; + put 'put ''KSxofX0se2tleToiZ2V0U29ydE9yZGVyT2ZDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2O3JldHVybiBudWxsPT09KHY9dGhpcy5zb3J0aW5nU3RhdGVzLmdldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGgpKSl8fHZvaWQgMD09PXY/dm9pZCAwOnYuc29y''@;'; + put 'put ''dE9yZGVyfX0se2tleToiZ2V0SW5kZXhPZkNvbHVtbkluU29ydFF1ZXVlIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gaD10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGgpLHRoaXMuc29ydGluZ1N0YXRlcy5nZXRFbnRyaWVzKCkuZmluZEluZGV4KGZ1bmN0aW9uKHYpe3JldHVybiBXTWUo''@;'; + put 'put ''diwxKVswXT09PWh9KX19LHtrZXk6ImdldE51bWJlck9mU29ydGVkQ29sdW1ucyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zb3J0aW5nU3RhdGVzLmdldExlbmd0aCgpfX0se2tleToiaXNMaXN0T2ZTb3J0ZWRDb2x1bW5zRW1wdHkiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDA9''@;'; + put 'put ''PT10aGlzLmdldE51bWJlck9mU29ydGVkQ29sdW1ucygpfX0se2tleToiaXNDb2x1bW5Tb3J0ZWQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB4bCh0aGlzLnNvcnRpbmdTdGF0ZXMuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oaCkpKX19LHtrZXk6ImdldFNv''@;'; + put 'put ''cnRTdGF0ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcztyZXR1cm4gbnVsbD09PXRoaXMuc29ydGluZ1N0YXRlcz9bXTp0aGlzLnNvcnRpbmdTdGF0ZXMuZ2V0RW50cmllcygpLm1hcChmdW5jdGlvbih5KXt2YXIgQz1XTWUoeSwyKSxqPUNbMV07cmV0dXJuIGZ1bmN0aW9uIHFpdChk''@;'; + put 'put ''KXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9HTWUoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe2UwdChkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw''@;'; + put 'put ''dG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpHTWUoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYp''@;'; + put 'put ''KX0pfXJldHVybiBkfSh7Y29sdW1uOmguaG90LnRvVmlzdWFsQ29sdW1uKENbMF0pfSxqKX0pfX0se2tleToiZ2V0Q29sdW1uU29ydFN0YXRlIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLmdldFNvcnRPcmRlck9mQ29sdW1uKGgpO2lmKFRvKHYpKXJldHVybntjb2x1bW46aCxzb3J0''@;'; + put 'put ''T3JkZXI6dn19fSx7a2V5OiJzZXRTb3J0U3RhdGVzIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnNvcnRpbmdTdGF0ZXMuY2xlYXIoKTtmb3IodmFyIHY9MDt2PGgubGVuZ3RoO3YrPTEpdGhpcy5zb3J0aW5nU3RhdGVzLnNldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1u''@;'; + put 'put ''KGhbdl0uY29sdW1uKSx7c29ydE9yZGVyOmhbdl0uc29ydE9yZGVyfSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5tYXBOYW1lKSx0aGlzLnNvcnRpbmdTdGF0ZXM9bnVsbH19XSksZH0oKSxU''@;'; + put 'put ''dGU9ImFzYyIsSXRlPSJkZXNjIjtmdW5jdGlvbiBRTWUoZCl7aWYoZCE9PUl0ZSlyZXR1cm4gZD09PVR0ZT9JdGU6VHRlfWZ1bmN0aW9uIEpNZShkKXtyZXR1cm4gZC5xdWVyeVNlbGVjdG9yKCIuIi5jb25jYXQoImNvbEhlYWRlciIpKX1mdW5jdGlvbiBYTWUoZCxnKXtpZihkPDB8fCFnLnBh''@;'; + put 'put ''cmVudE5vZGUpcmV0dXJuITE7dmFyIGg9Zy5wYXJlbnROb2RlLnBhcmVudE5vZGUuY2hpbGROb2RlcztyZXR1cm4tMT09QXJyYXkuZnJvbShoKS5pbmRleE9mKGcucGFyZW50Tm9kZSktaC5sZW5ndGh9ZnVuY3Rpb24gaDhlKGQsZyxoKXtyZXR1cm4tMT09PWQmJmc+PTAmJiExPT09U3coaCl9''@;'; + put 'put ''dmFyIEtNZT0iaW5kaWNhdG9yRGlzYWJsZWQiLCRNZT0iY29sdW1uU29ydGluZyIscU1lPSJzb3J0QWN0aW9uIixlRWU9bmV3IE1hcChbW1R0ZSwiYXNjZW5kaW5nIl0sW0l0ZSwiZGVzY2VuZGluZyJdXSk7ZnVuY3Rpb24gdjB0KGQsZyxoLHYpe3ZhciB5PVskTWVdO2lmKHYmJnkucHVzaChx''@;'; + put 'put ''TWUpLCExPT09aClyZXR1cm4geS5wdXNoKEtNZSkseTt2YXIgQz1kLmdldFNvcnRPcmRlck9mQ29sdW1uKGcpO3JldHVybiBUbyhDKSYmeS5wdXNoKGVFZS5nZXQoQykpLHl9ZnVuY3Rpb24gQTB0KCl7cmV0dXJuIEFycmF5LmZyb20oZUVlLnZhbHVlcygpKS5jb25jYXQocU1lLEtNZSwkTWUp''@;'; + put 'put ''fWZ1bmN0aW9uIHRFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXks''@;'; + put 'put ''dil9fWZ1bmN0aW9uIG5FZShkLGcsaCl7cmV0dXJuIGcmJnRFZShkLnByb3RvdHlwZSxnKSxoJiZ0RWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxkfWZ1bmN0aW9uIHJFZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5l''@;'; + put 'put ''dyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfXZhciBpRWU9bkVlKGZ1bmN0aW9uIGQoZyl7ckVlKHRoaXMsZCksdGhpcy5kYXRhPWcsdGhpcy5uZXh0PW51bGwsdGhpcy5wcmV2PW51bGx9KSx5MHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7ckVlKHRo''@;'; + put 'put ''aXMsZCksdGhpcy5maXJzdD1udWxsLHRoaXMubGFzdD1udWxsfXJldHVybiBuRWUoZCxbe2tleToicHVzaCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9bmV3IGlFZShoKTtpZihudWxsPT09dGhpcy5maXJzdCl0aGlzLmZpcnN0PXYsdGhpcy5sYXN0PXY7ZWxzZXt2YXIgeT10aGlzLmxhc3Q7''@;'; + put 'put ''dGhpcy5sYXN0PXYsdi5wcmV2PXkseS5uZXh0PXZ9fX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9bmV3IGlFZShoKTtpZihudWxsPT09dGhpcy5maXJzdCl0aGlzLmZpcnN0PXYsdGhpcy5sYXN0PXY7ZWxzZXt2YXIgeT10aGlzLmZpcnN0O3RoaXMuZmlyc3Q9dix2''@;'; + put 'put ''Lm5leHQ9eSx5LnByZXY9dn19fSx7a2V5OiJpbm9yZGVyIix2YWx1ZTpmdW5jdGlvbihoKXtmb3IodmFyIHY9dGhpcy5maXJzdDt2OyloKHYpLHY9di5uZXh0fX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbihoKXtpZihudWxsPT09dGhpcy5maXJzdClyZXR1cm4hMTtmb3IodmFyIHks''@;'; + put 'put ''Qyx2PXRoaXMuZmlyc3Q7djspe2lmKHYuZGF0YT09PWgpcmV0dXJuIEM9di5wcmV2LCh5PXYubmV4dCkmJih5LnByZXY9QyksQyYmKEMubmV4dD15KSx2PT09dGhpcy5maXJzdCYmKHRoaXMuZmlyc3Q9eSksdj09PXRoaXMubGFzdCYmKHRoaXMubGFzdD1DKSwhMDt2PXYubmV4dH1yZXR1cm4h''@;'; + put 'put ''MX19LHtrZXk6Imhhc0N5Y2xlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgaD10aGlzLmZpcnN0LHY9dGhpcy5maXJzdDs7KXtpZihudWxsPT09aHx8bnVsbD09PShoPWgubmV4dCkpcmV0dXJuITE7aWYoKGg9aC5uZXh0KT09PSh2PXYubmV4dCkpcmV0dXJuITB9fX0se2tleToicG9wIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbigpe2lmKG51bGw9PT10aGlzLmxhc3QpcmV0dXJuIG51bGw7dmFyIGg9dGhpcy5sYXN0O3JldHVybiB0aGlzLmxhc3Q9dGhpcy5sYXN0LnByZXYsaH19LHtrZXk6InNoaWZ0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKG51bGw9PT10aGlzLmZpcnN0KXJldHVybiBudWxsO3Zh''@;'; + put 'put ''ciBoPXRoaXMuZmlyc3Q7cmV0dXJuIHRoaXMuZmlyc3Q9dGhpcy5maXJzdC5uZXh0LGh9fSx7a2V5OiJyZWN1cnNpdmVSZXZlcnNlIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuZmlyc3QpeyhmdW5jdGlvbiBoKHksQyl7IUN8fChoKEMsQy5uZXh0KSxDLm5leHQ9eSl9KSh0aGlzLmZpcnN0''@;'; + put 'put ''LHRoaXMuZmlyc3QubmV4dCksdGhpcy5maXJzdC5uZXh0PW51bGw7dmFyIHY9dGhpcy5maXJzdDt0aGlzLmZpcnN0PXRoaXMubGFzdCx0aGlzLmxhc3Q9dn19fSx7a2V5OiJyZXZlcnNlIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuZmlyc3QmJnRoaXMuZmlyc3QubmV4dCl7Zm9yKHZhciB5''@;'; + put 'put ''LGg9dGhpcy5maXJzdC5uZXh0LHY9dGhpcy5maXJzdDtoOyl5PWgubmV4dCxoLm5leHQ9dix2LnByZXY9aCx2PWgsaD15O3RoaXMuZmlyc3QubmV4dD1udWxsLHRoaXMubGFzdC5wcmV2PW51bGwseT10aGlzLmZpcnN0LHRoaXMuZmlyc3Q9dix0aGlzLmxhc3Q9eX19fV0pLGR9KCk7Y29uc3Qg''@;'; + put 'put ''b0VlPXkwdDt2YXIgdzB0PWZ1bmN0aW9uKGcsaCl7dmFyIHY9Zy50b1N0cmluZygpLHk9aC50b1N0cmluZygpO3JldHVybiB2PT09eT8wOnY8eT8tMToxfTtmdW5jdGlvbiBkOGUoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFd''@;'; + put 'put ''OncwdCxoPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTowLHY9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOmQubGVuZ3RoO2lmKE1hdGguYWJzKHYtaCk8PTEpcmV0dXJuW107dmFyIHk9''@;'; + put 'put ''TWF0aC5jZWlsKChoK3YpLzIpO3JldHVybiBkOGUoZCxnLGgseSksZDhlKGQsZyx5LHYpLGIwdChkLGcsaCx5LHYpfWZ1bmN0aW9uIGIwdChkLGcsaCx2LHkpe2Zvcih2YXIgQz1uZXcgb0VlLEk9bmV3IG9FZSxqPXYtaCx1ZT15LXYsX2U9TWF0aC5tYXgoaix1ZSksQmU9eS1oLE5lPTA7TmU8''@;'; + put 'put ''X2U7TmUrPTEpTmU8aiYmQy5wdXNoKGRbaCtOZV0pLE5lPHVlJiZJLnB1c2goZFt2K05lXSk7Zm9yKHZhciBLZT0wO0tlPEJlOylkW2grS2VdPUMuZmlyc3QmJkkuZmlyc3Q/ZyhDLmZpcnN0LmRhdGEsSS5maXJzdC5kYXRhKT4wP0kuc2hpZnQoKS5kYXRhOkMuc2hpZnQoKS5kYXRhOkMuZmly''@;'; + put 'put ''c3Q/Qy5zaGlmdCgpLmRhdGE6SS5zaGlmdCgpLmRhdGEsS2UrPTE7cmV0dXJuIGR9ZnVuY3Rpb24gYUVlKGQsZyxoKXt2YXIgdj1nLmxvY2FsZTtyZXR1cm4gZnVuY3Rpb24oeSxDKXt2YXIgST1oLnNvcnRFbXB0eUNlbGxzO3JldHVybiJzdHJpbmciPT10eXBlb2YgeSYmKHk9eS50b0xvY2Fs''@;'; + put 'put ''ZUxvd2VyQ2FzZSh2KSksInN0cmluZyI9PXR5cGVvZiBDJiYoQz1DLnRvTG9jYWxlTG93ZXJDYXNlKHYpKSx5PT09Qz8wOmRjKHkpP2RjKEMpPzA6SSYmImFzYyI9PT1kPy0xOjE6ZGMoQyk/SSYmImFzYyI9PT1kPzE6LTE6aXNOYU4oeSkmJiFpc05hTihDKT8iYXNjIj09PWQ/MTotMTohaXNO''@;'; + put 'put ''YU4oeSkmJmlzTmFOKEMpfHwoaXNOYU4oeSl8fGlzTmFOKEMpfHwoeT1wYXJzZUZsb2F0KHkpLEM9cGFyc2VGbG9hdChDKSkseTxDKT8iYXNjIj09PWQ/LTE6MTp5PkM/ImFzYyI9PT1kPzE6LTE6MH19dmFyIHA4ZT1McCgic29ydGluZy5jb21wYXJlRnVuY3Rpb25GYWN0b3J5IiksRHRlPXA4''@;'; + put 'put ''ZS5yZWdpc3RlcixzRWU9cDhlLmdldEl0ZW0sVDB0PXA4ZS5oYXNJdGVtLHVFZT1McCgic29ydGluZy5tYWluU29ydENvbXBhcmF0b3IiKSxjRWU9dUVlLnJlZ2lzdGVyLEkwdD11RWUuZ2V0SXRlbTtmdW5jdGlvbiBmRWUoZCl7cmV0dXJuIFQwdChkKT9zRWUoZCk6c0VlKCJkZWZhdWx0Iil9''@;'; + put 'put ''ZnVuY3Rpb24gaEVlKGQpe3JldHVybiBmdW5jdGlvbiBSMHQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIE8wdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9y''@;'; + put 'put ''Il0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBMMHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGRFZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29u''@;'; + put 'put ''c3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gZEVlKGQsZyl9fShk''@;'; + put 'put ''KXx8ZnVuY3Rpb24gRDB0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9y''@;'; + put 'put ''XSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBkRWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBnOGUoZCl7cmV0dXJuKGc4ZT0iZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3Rv''@;'; + put 'put ''dHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfUR0ZSgibnVtZXJpYyIsZnVuY3Rpb24gQzB0KGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24odix5KXt2YXIgQz1wYXJzZUZsb2F0KHYpLEk9cGFyc2VGbG9hdCh5KSxqPWguc29ydEVtcHR5Q2VsbHM7aWYoQz09PUl8fGlzTmFOKEMpJiZpc05hTihJ''@;'; + put 'put ''KSlyZXR1cm4gMDtpZihqKXtpZihkYyh2KSlyZXR1cm4iYXNjIj09PWQ/LTE6MTtpZihkYyh5KSlyZXR1cm4iYXNjIj09PWQ/MTotMX1yZXR1cm4gaXNOYU4oQyk/MTppc05hTihJKT8tMTpDPEk/ImFzYyI9PT1kPy0xOjE6Qz5JPyJhc2MiPT09ZD8xOi0xOjB9fSksRHRlKCJjaGVja2JveCIs''@;'; + put 'put ''ZnVuY3Rpb24gUzB0KGQsZyxoKXt2YXIgdj1nLmNoZWNrZWRUZW1wbGF0ZSx5PWcudW5jaGVja2VkVGVtcGxhdGUsQz1oLnNvcnRFbXB0eUNlbGxzO3JldHVybiBmdW5jdGlvbihJLGope3ZhciB1ZT1kYyhJKSxfZT1kYyhqKSxCZT11ZT95OkksTmU9X2U/eTpqLEtlPUJlPT09eXx8QmU9PT12''@;'; + put 'put ''LGR0PU5lPT09eXx8TmU9PT12O2lmKCExPT09Qyl7aWYodWUmJiExPT09X2UpcmV0dXJuIDE7aWYoITE9PT11ZSYmX2UpcmV0dXJuLTF9cmV0dXJuITE9PT1LZSYmZHQ/ImFzYyI9PT1kPy0xOjE6S2UmJiExPT09ZHQ/ImFzYyI9PT1kPzE6LTE6ITE9PT1LZSYmITE9PT1kdD9hRWUoZCxnLGgp''@;'; + put 'put ''KEksaik6QmU9PT15JiZOZT09PXY/ImFzYyI9PT1kPy0xOjE6QmU9PT12JiZOZT09PXk/ImFzYyI9PT1kPzE6LTE6MH19KSxEdGUoImRhdGUiLGZ1bmN0aW9uIEUwdChkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uKHYseSl7dmFyIEM9aC5zb3J0RW1wdHlDZWxscztpZih2PT09eSlyZXR1cm4gMDtp''@;'; + put 'put ''ZihkYyh2KSlyZXR1cm4gZGMoeSk/MDpDJiYiYXNjIj09PWQ/LTE6MTtpZihkYyh5KSlyZXR1cm4gQyYmImFzYyI9PT1kPzE6LTE7dmFyIEk9Zy5kYXRlRm9ybWF0LGo9VGwodixJKSx1ZT1UbCh5LEkpO3JldHVybiBqLmlzVmFsaWQoKT91ZS5pc1ZhbGlkKCk/dWUuaXNBZnRlcihqKT8iYXNj''@;'; + put 'put ''Ij09PWQ/LTE6MTp1ZS5pc0JlZm9yZShqKT8iYXNjIj09PWQ/MTotMTowOi0xOjF9fSksRHRlKCJkZWZhdWx0IixhRWUpO3ZhciBQMHQ9WyJjb2x1bW4iXSxGMHQ9WyJjb2x1bW4iXTtmdW5jdGlvbiB4TyhkKXtyZXR1cm4gZnVuY3Rpb24gajB0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0''@;'; + put 'put ''dXJuIG04ZShkKX0oZCl8fGZ1bmN0aW9uIFYwdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBOMHQoZCxnKXtpZihkKXtpZigi''@;'; + put 'put ''c3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIG04ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0''@;'; + put 'put ''dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gbThlKGQsZyl9fShkKXx8ZnVuY3Rpb24gSDB0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRv''@;'; + put 'put ''IHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gbThlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1k''@;'; + put 'put ''Lmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gcEVlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3lt''@;'; + put 'put ''Ym9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gZ0VlKGQpe2Zvcih2YXIgZz0xO2c8YXJndW1lbnRzLmxlbmd0''@;'; + put 'put ''aDtnKyspe3ZhciBoPW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1bWVudHNbZ106e307ZyUyP3BFZShPYmplY3QoaCksITApLmZvckVhY2goZnVuY3Rpb24odil7WjB0KGQsdixoW3ZdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQs''@;'; + put 'put ''T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaCkpOnBFZShPYmplY3QoaCkpLmZvckVhY2goZnVuY3Rpb24odil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9ZnVuY3Rpb24gWjB0KGQsZyxo''@;'; + put 'put ''KXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiBtRWUoZCxnKXtpZihudWxsPT1kKXJldHVybnt9O3ZhciB2LHksaD1mdW5jdGlvbiB6MHQo''@;'; + put 'put ''ZCxnKXtpZihudWxsPT1kKXJldHVybnt9O3ZhciB5LEMsaD17fSx2PU9iamVjdC5rZXlzKGQpO2ZvcihDPTA7Qzx2Lmxlbmd0aDtDKyspIShnLmluZGV4T2YoeT12W0NdKT49MCkmJihoW3ldPWRbeV0pO3JldHVybiBofShkLGcpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3Zh''@;'; + put 'put ''ciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7Zm9yKHk9MDt5PEMubGVuZ3RoO3krKykhKGcuaW5kZXhPZih2PUNbeV0pPj0wKSYmKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZCx2KXx8KGhbdl09ZFt2XSkpfXJldHVybiBofWZ1bmN0aW9u''@;'; + put 'put ''IHZFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0''@;'; + put 'put ''aW9uIHpTKCl7cmV0dXJuIHpTPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1ZMHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJu''@;'; + put 'put ''IEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHpTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBZMHQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVI5KGQpKTspO3Jl''@;'; + put 'put ''dHVybiBkfWZ1bmN0aW9uIHY4ZShkLGcpe3JldHVybih2OGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBKMHQoZCxnKXtpZihnJiYoIm9iamVjdCI9''@;'; + put 'put ''PT1nOGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIFgwdChkKXtpZih2b2lk''@;'; + put 'put ''IDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIFI5KGQpe3JldHVybihSOT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFBy''@;'; + put 'put ''b3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBBOGU9ImNvbHVtblNvcnRpbmciLEFFZT0iYXBwZW5kIjtjRWUoQThlLGZ1bmN0aW9uIEIwdChkLGcpe3JldHVybiBmdW5jdGlvbihoLHYpe3Zh''@;'; + put 'put ''ciBCZSxOZSxLZSxkdCxPdCxDPWhFZShoKS5zbGljZSgxKSxqPWhFZSh2KS5zbGljZSgxKTtyZXR1cm4gQmU9ZFswXSxLZT1DWzBdLGR0PWpbMF0sKChPdD0oTmU9Z1swXSkuY29sdW1uU29ydGluZykuY29tcGFyZUZ1bmN0aW9uRmFjdG9yeT9PdC5jb21wYXJlRnVuY3Rpb25GYWN0b3J5OmZF''@;'; + put 'put ''ZShOZS50eXBlKSkoQmUsTmUsT3QpKEtlLGR0KX19KSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQ29sdW1uU29ydCIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbHVtblNvcnQiKTt2YXIgeUVlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBVMHQoZCxnKXtp''@;'; + put 'put ''ZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFs''@;'; + put 'put ''dWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmdjhlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gUTB0KGQpe3ZhciBnPWZ1bmN0aW9uIEswdCgpe2lmKCJ1bmRlZmluZWQiPT10''@;'; + put 'put ''eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChC''@;'; + put 'put ''b29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVI5KGQpO2lmKGcpe3ZhciBDPVI5KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHko''@;'; + put 'put ''dGhpcyxhcmd1bWVudHMpO3JldHVybiBKMHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIEcwdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0''@;'; + put 'put ''aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5jb2x1bW5TdGF0ZXNNYW5hZ2VyPW51bGwseS5jb2x1bW5NZXRhQ2FjaGU9bnVsbCx5LnBsdWdpbktleT1BOGUseS5pbmRleGVzU2VxdWVuY2VDYWNoZT1udWxsLHl9cmV0dXJuIGZ1bmN0aW9uIFcwdChkLGcsaCl7ZyYmdkVlKGQucHJvdG90eXBl''@;'; + put 'put ''LGcpLGgmJnZFZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3RoaXMucGx1Z2luS2V5XX19LHtrZXk6ImVuYWJs''@;'; + put 'put ''ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuY29sdW1uU3RhdGVzTWFuYWdlcj1uZXcgZjB0KHRoaXMuaG90LCIiLmNvbmNhdCh0aGlzLnBsdWdpbktleSwiLnNvcnRpbmdTdGF0ZXMiKSksdGhpcy5jb2x1bW5NZXRhQ2FjaGU9bmV3IFR3''@;'; + put 'put ''KGZ1bmN0aW9uKEMpe3ZhciBJPXkuaG90LnRvVmlzdWFsQ29sdW1uKEMpO3JldHVybiBudWxsPT09SSYmKEk9QykseS5nZXRNZXJnZWRQbHVnaW5TZXR0aW5ncyhJKX0pLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCIiLmNvbmNhdCh0aGlzLnBsdWdpbktleSwiLmNv''@;'; + put 'put ''bHVtbk1ldGEiKSx0aGlzLmNvbHVtbk1ldGFDYWNoZSksdGhpcy5hZGRIb29rKCJhZnRlckdldENvbEhlYWRlciIsZnVuY3Rpb24oQyxJKXtyZXR1cm4geS5vbkFmdGVyR2V0Q29sSGVhZGVyKEMsSSl9KSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlRG93biIsZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4geS5vbkJlZm9yZU9uQ2VsbE1vdXNlRG93bi5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyT25DZWxsTW91c2VEb3duIixmdW5jdGlvbihDLEkpe3JldHVybiB5Lm9uQWZ0ZXJPbkNlbGxNb3VzZURvd24oQyxJKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJJbml0''@;'; + put 'put ''IixmdW5jdGlvbigpe3JldHVybiB5LmxvYWRPclNvcnRCeVNldHRpbmdzKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyTG9hZERhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckxvYWREYXRhLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuaG90LnZpZXcmJnRoaXMubG9hZE9yU29ydEJ5''@;'; + put 'put ''U2V0dGluZ3MoKSx6UyhSOShoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1mdW5jdGlvbihqLHVlKXt2YXIgX2U9Sk1lKHVlKTshMT09PVhNZShqLHVlKXx8bnVs''@;'; + put 'put ''bD09PV9lfHx5LnVwZGF0ZUhlYWRlckNsYXNzZXMoX2UpfTt0aGlzLmhvdC5hZGRIb29rKCJhZnRlckdldENvbEhlYWRlciIsQyksdGhpcy5ob3QuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsZnVuY3Rpb24oKXt5LmhvdC5yZW1vdmVIb29rKCJhZnRlckdldENvbEhlYWRlciIsQyl9''@;'; + put 'put ''KSx0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe251bGwhPT15LmluZGV4ZXNTZXF1ZW5jZUNhY2hlJiYoeS5ob3Qucm93SW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKHkuaW5kZXhlc1NlcXVlbmNlQ2FjaGUuZ2V0VmFsdWVzKCkpLHkuaG90LnJvd0luZGV4TWFwcGVy''@;'; + put 'put ''LnVucmVnaXN0ZXJNYXAoeS5wbHVnaW5LZXkpKX0sITApLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAoIiIuY29uY2F0KHRoaXMucGx1Z2luS2V5LCIuY29sdW1uTWV0YSIpKSx0aGlzLmNvbHVtblN0YXRlc01hbmFnZXIuZGVzdHJveSgpLHRoaXMuY29sdW1uTWV0''@;'; + put 'put ''YUNhY2hlPW51bGwsdGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyPW51bGwselMoUjkoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToic29ydCIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5nZXRTb3J0Q29uZmlnKCksST10aGlzLmdldE5v''@;'; + put 'put ''cm1hbGl6ZWRTb3J0Q29uZmlncyh5KSxqPXRoaXMuYXJlVmFsaWRTb3J0Q29uZmlncyhJKTshMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDb2x1bW5Tb3J0IixDLEksaikmJigwPT09Qy5sZW5ndGgmJm51bGw9PT10aGlzLmluZGV4ZXNTZXF1ZW5jZUNhY2hlJiYodGhpcy5pbmRleGVz''@;'; + put 'put ''U2VxdWVuY2VDYWNoZT10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbktleSxuZXcgc2tlKSx0aGlzLmluZGV4ZXNTZXF1ZW5jZUNhY2hlLnNldFZhbHVlcyh0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRJbmRleGVzU2VxdWVuY2UoKSkpLGomJih0aGlz''@;'; + put 'put ''LmNvbHVtblN0YXRlc01hbmFnZXIuc2V0U29ydFN0YXRlcyhJKSx0aGlzLnNvcnRCeVByZXNldFNvcnRTdGF0ZXMoSSksdGhpcy5zYXZlQWxsU29ydFNldHRpbmdzKEkpKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb2x1bW5Tb3J0IixDLGo/STpDLGopLGomJih0aGlzLmhvdC5yZW5kZXIo''@;'; + put 'put ''KSx0aGlzLmhvdC5mb3JjZUZ1bGxSZW5kZXI9ITEsdGhpcy5ob3Qudmlldy5yZW5kZXIoKSkpfX0se2tleToiY2xlYXJTb3J0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc29ydChbXSl9fSx7a2V5OiJpc1NvcnRlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmFibGVkJiYhdGhp''@;'; + put 'put ''cy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLmlzTGlzdE9mU29ydGVkQ29sdW1uc0VtcHR5KCl9fSx7a2V5OiJnZXRTb3J0Q29uZmlnIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gVG8oeSk/dGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLmdldENvbHVtblNvcnRTdGF0ZSh5KTp0aGlzLmNvbHVtblN0''@;'; + put 'put ''YXRlc01hbmFnZXIuZ2V0U29ydFN0YXRlcygpfX0se2tleToic2V0U29ydENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5nZXROb3JtYWxpemVkU29ydENvbmZpZ3MoeSk7dGhpcy5hcmVWYWxpZFNvcnRDb25maWdzKEMpJiZ0aGlzLmNvbHVtblN0YXRlc01hbmFnZXIuc2V0''@;'; + put 'put ''U29ydFN0YXRlcyhDKX19LHtrZXk6ImdldE5vcm1hbGl6ZWRTb3J0Q29uZmlncyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W107cmV0dXJuIEFycmF5LmlzQXJyYXkoeSk/eS5zbGljZSgwLDEp''@;'; + put 'put ''Olt5XX19LHtrZXk6ImFyZVZhbGlkU29ydENvbmZpZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmNvdW50Q29scygpO3JldHVybiBmdW5jdGlvbiBwMHQoZCl7aWYoZC5zb21lKGZ1bmN0aW9uKGgpe3JldHVybiExPT09ZnVuY3Rpb24gZDB0KGQpe2lmKCExPT09eGwoZCkp''@;'; + put 'put ''cmV0dXJuITE7dmFyIGg9ZC5zb3J0T3JkZXI7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoZC5jb2x1bW4pJiZbVHRlLEl0ZV0uaW5jbHVkZXMoaCl9KGgpfSkpcmV0dXJuITE7dmFyIGc9ZC5tYXAoZnVuY3Rpb24oaCl7cmV0dXJuIGguY29sdW1ufSk7cmV0dXJuIG5ldyBTZXQoZykuc2l6ZT09''@;'; + put 'put ''PWcubGVuZ3RofSh5KSYmeS5ldmVyeShmdW5jdGlvbihJKXt2YXIgaj1JLmNvbHVtbjtyZXR1cm4gajw9QyYmaj49MH0pfX0se2tleToic2F2ZUFsbFNvcnRTZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPXRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5nZXRBbGxDb2x1''@;'; + put 'put ''bW5zUHJvcGVydGllcygpO0kuaW5pdGlhbENvbmZpZz1PbCh5LGZ1bmN0aW9uKF9lKXt2YXIgQmU9X2UuY29sdW1uLE5lPW1FZShfZSxQMHQpO3JldHVybiBnRWUoe2NvbHVtbjpDLmhvdC50b1BoeXNpY2FsQ29sdW1uKEJlKX0sTmUpfSksdGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRT''@;'; + put 'put ''dGF0ZVNhdmUiLCJjb2x1bW5Tb3J0aW5nIixJKX19LHtrZXk6ImdldEFsbFNhdmVkU29ydFNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz17fTt0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlTG9hZCIsImNvbHVtblNvcnRpbmciLEMpO3ZhciBJPUMudmFs''@;'; + put 'put ''dWU7cmV0dXJuIFRvKEkpJiZBcnJheS5pc0FycmF5KEkuaW5pdGlhbENvbmZpZykmJihJLmluaXRpYWxDb25maWc9T2woSS5pbml0aWFsQ29uZmlnLGZ1bmN0aW9uKF9lKXt2YXIgQmU9X2UuY29sdW1uLE5lPW1FZShfZSxGMHQpO3JldHVybiBnRWUoe2NvbHVtbjp5LmhvdC50b1Zpc3VhbENv''@;'; + put 'put ''bHVtbihCZSl9LE5lKX0pKSxJfX0se2tleToiZ2V0Q29sdW1uTmV4dENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLmdldFNvcnRPcmRlck9mQ29sdW1uKHkpO2lmKFRvKEMpKXt2YXIgST1RTWUoQyk7cmV0dXJuIFRvKEkpP3tjb2x1bW46''@;'; + put 'put ''eSxzb3J0T3JkZXI6SX06dm9pZCAwfXZhciBqPXRoaXMuaG90LmNvdW50Q29scygpO2lmKE51bWJlci5pc0ludGVnZXIoeSkmJnk+PTAmJnk8ailyZXR1cm57Y29sdW1uOnksc29ydE9yZGVyOlFNZSgpfX19LHtrZXk6ImdldE5leHRTb3J0Q29uZmlnIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIg''@;'; + put 'put ''Qz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06QUVlLEk9dGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLmdldEluZGV4T2ZDb2x1bW5JblNvcnRRdWV1ZSh5KSxqPS0xIT09SSx1ZT10aGlzLmdldFNvcnRDb25maWcoKSxfZT10aGlzLmdldENv''@;'; + put 'put ''bHVtbk5leHRDb25maWcoeSk7aWYoail7aWYoYTEoX2UpKXJldHVybltdLmNvbmNhdCh4Tyh1ZS5zbGljZSgwLEkpKSx4Tyh1ZS5zbGljZShJKzEpKSk7aWYoQz09PUFFZSlyZXR1cm5bXS5jb25jYXQoeE8odWUuc2xpY2UoMCxJKSkseE8odWUuc2xpY2UoSSsxKSksW19lXSk7aWYoInJlcGxh''@;'; + put 'put ''Y2UiPT09QylyZXR1cm5bXS5jb25jYXQoeE8odWUuc2xpY2UoMCxJKSksW19lXSx4Tyh1ZS5zbGljZShJKzEpKSl9cmV0dXJuIFRvKF9lKT91ZS5jb25jYXQoX2UpOnVlfX0se2tleToiZ2V0UGx1Z2luQ29sdW1uQ29uZmlnIix2YWx1ZTpmdW5jdGlvbih5KXtpZih4bCh5KSl7dmFyIEM9eVt0''@;'; + put 'put ''aGlzLnBsdWdpbktleV07aWYoeGwoQykpcmV0dXJuIEN9cmV0dXJue319fSx7a2V5OiJnZXRNZXJnZWRQbHVnaW5TZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt0aGlzLnBsdWdpbktleV0sST10aGlzLmNvbHVtblN0YXRlc01hbmFnZXIu''@;'; + put 'put ''Z2V0QWxsQ29sdW1uc1Byb3BlcnRpZXMoKSxqPXRoaXMuaG90LmdldENlbGxNZXRhKDAseSksdWU9T2JqZWN0LmdldFByb3RvdHlwZU9mKGopO3JldHVybiBBcnJheS5pc0FycmF5KHVlLmNvbHVtbnMpP09iamVjdC5hc3NpZ24oSSxDLHRoaXMuZ2V0UGx1Z2luQ29sdW1uQ29uZmlnKHVlLmNv''@;'; + put 'put ''bHVtbnNbeV0pKTpZMih1ZS5jb2x1bW5zKT9PYmplY3QuYXNzaWduKEksQyx0aGlzLmdldFBsdWdpbkNvbHVtbkNvbmZpZyh1ZS5jb2x1bW5zKHkpKSk6T2JqZWN0LmFzc2lnbihJLEMpfX0se2tleToiZ2V0Rmlyc3RDZWxsU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMu''@;'; + put 'put ''aG90LmdldENlbGxNZXRhKDAseSksST1PYmplY3QuY3JlYXRlKEMpO3JldHVybiBJW3RoaXMucGx1Z2luS2V5XT10aGlzLmNvbHVtbk1ldGFDYWNoZS5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbih5KSksSX19LHtrZXk6ImdldE51bWJlck9mUm93c1RvU29ydCIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKTtyZXR1cm4gQy5tYXhSb3dzPD15P0MubWF4Um93czp5LUMubWluU3BhcmVSb3dzfX0se2tleToic29ydEJ5UHJlc2V0U29ydFN0YXRlcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcztpZigwIT09eS5s''@;'; + put 'put ''ZW5ndGgpe2Zvcih2YXIgST1bXSxqPXRoaXMuaG90LmNvdW50Um93cygpLHVlPWZ1bmN0aW9uKGZuKXtyZXR1cm4gT2woeSxmdW5jdGlvbihMbil7cmV0dXJuIEMuaG90LmdldERhdGFBdENlbGwoZm4sTG4uY29sdW1uKX0pfSxfZT0wO19lPHRoaXMuZ2V0TnVtYmVyT2ZSb3dzVG9Tb3J0KGop''@;'; + put 'put ''O19lKz0xKUkucHVzaChbdGhpcy5ob3QudG9QaHlzaWNhbFJvdyhfZSldLmNvbmNhdCh1ZShfZSkpKTt2YXIgQmU9T2woSSxmdW5jdGlvbigkdCl7cmV0dXJuICR0WzBdfSk7IWZ1bmN0aW9uIF8wdChkLGcpe2Zvcih2YXIgaD1JMHQoZyksdj1hcmd1bWVudHMubGVuZ3RoLHk9bmV3IEFycmF5''@;'; + put 'put ''KHY+Mj92LTI6MCksQz0yO0M8djtDKyspeVtDLTJdPWFyZ3VtZW50c1tDXTtkOGUoZCxoLmFwcGx5KHZvaWQgMCx5KSl9KEksdGhpcy5wbHVnaW5LZXksT2woeSxmdW5jdGlvbigkdCl7cmV0dXJuICR0LnNvcnRPcmRlcn0pLE9sKHksZnVuY3Rpb24oJHQpe3JldHVybiBDLmdldEZpcnN0Q2Vs''@;'; + put 'put ''bFNldHRpbmdzKCR0LmNvbHVtbil9KSk7Zm9yKHZhciBOZT1JLmxlbmd0aDtOZTxqO05lKz0xKUkucHVzaChbTmVdLmNvbmNhdCh1ZShOZSkpKTt2YXIgS2U9T2woSSxmdW5jdGlvbigkdCl7cmV0dXJuICR0WzBdfSksZHQ9bmV3IE1hcChPbChCZSxmdW5jdGlvbigkdCxmbil7cmV0dXJuWyR0''@;'; + put 'put ''LEtlW2ZuXV19KSksT3Q9T2wodGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0SW5kZXhlc1NlcXVlbmNlKCksZnVuY3Rpb24oJHQpe3JldHVybiBkdC5oYXMoJHQpP2R0LmdldCgkdCk6JHR9KTt0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5zZXRJbmRleGVzU2VxdWVuY2UoT3QpfWVsc2UgdGhp''@;'; + put 'put ''cy5ob3Qucm93SW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKHRoaXMuaW5kZXhlc1NlcXVlbmNlQ2FjaGUuZ2V0VmFsdWVzKCkpfX0se2tleToibG9hZE9yU29ydEJ5U2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5nZXRBbGxTYXZlZFNvcnRTZXR0aW5ncygpO2lm''@;'; + put 'put ''KHhsKHkpKXRoaXMuc29ydEJ5U2V0dGluZ3MoeSk7ZWxzZXt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW3RoaXMucGx1Z2luS2V5XTt0aGlzLnNvcnRCeVNldHRpbmdzKEMpfX19LHtrZXk6InNvcnRCeVNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbih5KXtpZih4bCh5KSl7dGhpcy5jb2x1''@;'; + put 'put ''bW5TdGF0ZXNNYW5hZ2VyLnVwZGF0ZUFsbENvbHVtbnNQcm9wZXJ0aWVzKHkpO3ZhciBDPXkuaW5pdGlhbENvbmZpZzsoQXJyYXkuaXNBcnJheShDKXx8eGwoQykpJiZ0aGlzLnNvcnQoQyl9ZWxzZSB0aGlzLmhvdC5yZW5kZXIoKX19LHtrZXk6Im9uQWZ0ZXJHZXRDb2xIZWFkZXIiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKHksQyl7dmFyIEk9Sk1lKEMpO2lmKCExIT09WE1lKHksQykmJm51bGwhPT1JKXt2YXIgaj10aGlzLmdldEZpcnN0Q2VsbFNldHRpbmdzKHkpW3RoaXMucGx1Z2luS2V5XTt0aGlzLnVwZGF0ZUhlYWRlckNsYXNzZXMoSSx0aGlzLmNvbHVtblN0YXRlc01hbmFnZXIseSxqLmlu''@;'; + put 'put ''ZGljYXRvcixqLmhlYWRlckFjdGlvbil9fX0se2tleToidXBkYXRlSGVhZGVyQ2xhc3NlcyIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYocGwoeSxBMHQoKSksITEhPT10aGlzLmVuYWJsZWQpe2Zvcih2YXIgQz1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KEM+MT9DLTE6MCksaj0xO2o8Qztq''@;'; + put 'put ''KyspSVtqLTFdPWFyZ3VtZW50c1tqXTtPMCh5LHYwdC5hcHBseSh2b2lkIDAsSSkpfX19LHtrZXk6Im9uVXBkYXRlU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3pTKFI5KGgucHJvdG90eXBlKSwib25VcGRhdGVTZXR0aW5ncyIsdGhpcykuY2FsbCh0aGlzKSxudWxsIT09dGhpcy5jb2x1''@;'; + put 'put ''bW5NZXRhQ2FjaGUmJnRoaXMuY29sdW1uTWV0YUNhY2hlLmluaXQodGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TnVtYmVyT2ZJbmRleGVzKCkpLFRvKHlbdGhpcy5wbHVnaW5LZXldKSYmdGhpcy5zb3J0QnlTZXR0aW5ncyh5W3RoaXMucGx1Z2luS2V5XSl9fSx7a2V5OiJvbkFmdGVy''@;'; + put 'put ''TG9hZERhdGEiLHZhbHVlOmZ1bmN0aW9uKHkpeyEwPT09eSYmdGhpcy5ob3QudmlldyYmdGhpcy5sb2FkT3JTb3J0QnlTZXR0aW5ncygpfX0se2tleToid2FzQ2xpY2thYmxlSGVhZGVyQ2xpY2tlZCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtyZXR1cm4gdGhpcy5nZXRGaXJzdENlbGxTZXR0aW5n''@;'; + put 'put ''cyhDKVt0aGlzLnBsdWdpbktleV0uaGVhZGVyQWN0aW9uJiYiU1BBTiI9PT15LnRhcmdldC5ub2RlTmFtZX19LHtrZXk6Im9uQmVmb3JlT25DZWxsTW91c2VEb3duIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqKXshMSE9PWg4ZShDLnJvdyxDLmNvbCx5KSYmdGhpcy53YXNDbGlja2FibGVIZWFk''@;'; + put 'put ''ZXJDbGlja2VkKHksQy5jb2wpJiZ0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5pc0N0cmxQcmVzc2VkKCkmJihqLmNvbHVtbj0hMCl9fSx7a2V5OiJvbkFmdGVyT25DZWxsTW91c2VEb3duIix2YWx1ZTpmdW5jdGlvbih5LEMpeyExIT09aDhlKEMucm93LEMuY29sLHkpJiZ0aGlzLndh''@;'; + put 'put ''c0NsaWNrYWJsZUhlYWRlckNsaWNrZWQoeSxDLmNvbCkmJih0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5pc0N0cmxQcmVzc2VkKCkmJih0aGlzLmhvdC5kZXNlbGVjdENlbGwoKSx0aGlzLmhvdC5zZWxlY3RDb2x1bW5zKEMuY29sKSksdGhpcy5zb3J0KHRoaXMuZ2V0Q29sdW1uTmV4''@;'; + put 'put ''dENvbmZpZyhDLmNvbCkpKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk7bnVsbD09PSh5PXRoaXMuY29sdW1uU3RhdGVzTWFuYWdlcil8fHZvaWQgMD09PXl8fHkuZGVzdHJveSgpLHpTKFI5KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19''@;'; + put 'put ''XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEE4ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDUwfX1dKSxofShZcyk7ZnVuY3Rpb24gd0VlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07''@;'; + put 'put ''di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19TCg0MjE0MCk7dmFyIG5vdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoKXsoZnVuY3Rpb24g''@;'; + put 'put ''ZW90KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMucGx1Z2luPWcsdGhpcy5ob3Q9dGhpcy5wbHVnaW4uaG90LHRoaXMuZW5kcG9pbnRzPVtdLHRoaXMuc2V0dGlu''@;'; + put 'put ''Z3M9aCx0aGlzLnNldHRpbmdzVHlwZT0iYXJyYXkiLHRoaXMuY3VycmVudEVuZHBvaW50PW51bGwsdGhpcy5jZWxsc1RvU2V0Q2FjaGU9W119cmV0dXJuIGZ1bmN0aW9uIHRvdChkLGcsaCl7ZyYmd0VlKGQucHJvdG90eXBlLGcpLGgmJndFZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShk''@;'; + put 'put ''LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJnZXRFbmRwb2ludCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuImZ1bmN0aW9uIj09PXRoaXMuc2V0dGluZ3NUeXBlP3RoaXMuZmlsbE1pc3NpbmdFbmRwb2ludERhdGEodGhpcy5zZXR0aW5ncylbaF06dGhpcy5lbmRwb2lu''@;'; + put 'put ''dHNbaF19fSx7a2V5OiJnZXRBbGxFbmRwb2ludHMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09PXRoaXMuc2V0dGluZ3NUeXBlP3RoaXMuZmlsbE1pc3NpbmdFbmRwb2ludERhdGEodGhpcy5zZXR0aW5ncyk6dGhpcy5lbmRwb2ludHN9fSx7a2V5OiJmaWxsTWlzc2luZ0Vu''@;'; + put 'put ''ZHBvaW50RGF0YSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucGFyc2VTZXR0aW5ncyhoLmNhbGwodGhpcykpfX0se2tleToicGFyc2VTZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcyx5PVtdLEM9aDtpZihDfHwiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5zZXR0''@;'; + put 'put ''aW5ncylyZXR1cm4gQ3x8KEM9dGhpcy5zZXR0aW5ncyksVXIoQyxmdW5jdGlvbihJKXt2YXIgaj17fTt2LmFzc2lnblNldHRpbmcoSSxqLCJyYW5nZXMiLFtbMCx2LmhvdC5jb3VudFJvd3MoKS0xXV0pLHYuYXNzaWduU2V0dGluZyhJLGosInJldmVyc2VkUm93Q29vcmRzIiwhMSksdi5hc3Np''@;'; + put 'put ''Z25TZXR0aW5nKEksaiwiZGVzdGluYXRpb25Sb3ciLG5ldyBFcnJvcigiXG4gICAgICAgIFlvdSBtdXN0IHByb3ZpZGUgYSBkZXN0aW5hdGlvbiByb3cgZm9yIHRoZSBDb2x1bW4gU3VtbWFyeSBwbHVnaW4gaW4gb3JkZXIgdG8gd29yayBwcm9wZXJseSFcbiAgICAgICIpKSx2LmFzc2lnblNl''@;'; + put 'put ''dHRpbmcoSSxqLCJkZXN0aW5hdGlvbkNvbHVtbiIsbmV3IEVycm9yKCJcbiAgICAgICAgWW91IG11c3QgcHJvdmlkZSBhIGRlc3RpbmF0aW9uIGNvbHVtbiBmb3IgdGhlIENvbHVtbiBTdW1tYXJ5IHBsdWdpbiBpbiBvcmRlciB0byB3b3JrIHByb3Blcmx5IVxuICAgICAgIikpLHYuYXNzaWdu''@;'; + put 'put ''U2V0dGluZyhJLGosInNvdXJjZUNvbHVtbiIsSS5kZXN0aW5hdGlvbkNvbHVtbiksdi5hc3NpZ25TZXR0aW5nKEksaiwidHlwZSIsInN1bSIpLHYuYXNzaWduU2V0dGluZyhJLGosImZvcmNlTnVtZXJpYyIsITEpLHYuYXNzaWduU2V0dGluZyhJLGosInN1cHByZXNzRGF0YVR5cGVFcnJvcnMi''@;'; + put 'put ''LCEwKSx2LmFzc2lnblNldHRpbmcoSSxqLCJzdXBwcmVzc0RhdGFUeXBlRXJyb3JzIiwhMCksdi5hc3NpZ25TZXR0aW5nKEksaiwiY3VzdG9tRnVuY3Rpb24iLG51bGwpLHYuYXNzaWduU2V0dGluZyhJLGosInJlYWRPbmx5IiwhMCksdi5hc3NpZ25TZXR0aW5nKEksaiwicm91bmRGbG9hdCIs''@;'; + put 'put ''ITEpLHkucHVzaChqKX0pLHk7dGhpcy5zZXR0aW5nc1R5cGU9ImZ1bmN0aW9uIn19LHtrZXk6ImFzc2lnblNldHRpbmciLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe2lmKCJyYW5nZXMiIT09eXx8dm9pZCAwIT09aFt5XSl7aWYoInJhbmdlcyIhPT15fHwwIT09aFt5XS5sZW5ndGgpaWYodm9p''@;'; + put 'put ''ZCAwPT09aFt5XSl7aWYoQyBpbnN0YW5jZW9mIEVycm9yKXRocm93IEM7dlt5XT1DfWVsc2Ugdlt5XT0iZGVzdGluYXRpb25Sb3ciPT09eSYmdi5yZXZlcnNlZFJvd0Nvb3Jkcz90aGlzLmhvdC5jb3VudFJvd3MoKS1oW3ldLTE6aFt5XX1lbHNlIHZbeV09Q319LHtrZXk6InJlc2V0U2V0dXBC''@;'; + put 'put ''ZWZvcmVTdHJ1Y3R1cmVBbHRlcmF0aW9uIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7aWYoImZ1bmN0aW9uIj09PXRoaXMuc2V0dGluZ3NUeXBlKXt2YXIgQz1oLmluZGV4T2YoInJvdyIpPi0xPyJyb3ciOiJjb2wiLEk9dGhpcy5nZXRBbGxFbmRwb2ludHMoKTtVcihJLGZ1bmN0aW9uKGopeyJy''@;'; + put 'put ''b3ciPT09QyYmai5kZXN0aW5hdGlvblJvdz49diYmKCJpbnNlcnRfcm93Ij09PWg/ai5hbHRlclJvd09mZnNldD15OiJyZW1vdmVfcm93Ij09PWgmJihqLmFsdGVyUm93T2Zmc2V0PS0xKnkpKSwiY29sIj09PUMmJmouZGVzdGluYXRpb25Db2x1bW4+PXYmJigiaW5zZXJ0X2NvbCI9PT1oP2ou''@;'; + put 'put ''YWx0ZXJDb2x1bW5PZmZzZXQ9eToicmVtb3ZlX2NvbCI9PT1oJiYoai5hbHRlckNvbHVtbk9mZnNldD0tMSp5KSl9KSx0aGlzLnJlc2V0QWxsRW5kcG9pbnRzKEksITEpfX19LHtrZXk6InJlc2V0U2V0dXBBZnRlclN0cnVjdHVyZUFsdGVyYXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMs''@;'; + put 'put ''SSl7dmFyIGo9dGhpcyx1ZT0hKGFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdKXx8YXJndW1lbnRzWzVdO2lmKCJmdW5jdGlvbiIhPT10aGlzLnNldHRpbmdzVHlwZSl7dmFyIEJlPWguaW5kZXhPZigicm93Iik+LTE/InJvdyI6ImNvbCIsTmU9aC5pbmRleE9mKCJy''@;'; + put 'put ''ZW1vdmUiKT4tMT8tMToxLEtlPXRoaXMuZ2V0QWxsRW5kcG9pbnRzKCksZHQ9MD09PWguaW5kZXhPZigibW92ZV9yb3ciKSxPdD12O1VyKEtlLGZ1bmN0aW9uKCR0KXsicm93Ij09PUJlJiYkdC5kZXN0aW5hdGlvblJvdz49T3QmJigkdC5hbHRlclJvd09mZnNldD1OZSp5KSwiY29sIj09PUJl''@;'; + put 'put ''JiYkdC5kZXN0aW5hdGlvbkNvbHVtbj49T3QmJigkdC5hbHRlckNvbHVtbk9mZnNldD1OZSp5KX0pLHRoaXMucmVzZXRBbGxFbmRwb2ludHMoS2UsIWR0KSxVcihLZSxkdD9mdW5jdGlvbigkdCl7ai5leHRlbmRFbmRwb2ludFJhbmdlcygkdCxPdCxDWzBdLEMubGVuZ3RoKSxqLnJlY3JlYXRl''@;'; + put 'put ''UGh5c2ljYWxSYW5nZXMoJHQpLGouY2xlYXJPZmZzZXRJbmZvcm1hdGlvbigkdCl9OmZ1bmN0aW9uKCR0KXtqLnNoaWZ0RW5kcG9pbnRDb29yZGluYXRlcygkdCxPdCl9KSx1ZSYmdGhpcy5yZWZyZXNoQWxsRW5kcG9pbnRzKCl9ZWxzZXt2YXIgX2U9ZnVuY3Rpb24gJHQoKXtyZXR1cm4gai5o''@;'; + put 'put ''b3QucmVtb3ZlSG9vaygiYmVmb3JlVmlld1JlbmRlciIsJHQpLGoucmVmcmVzaEFsbEVuZHBvaW50cygpfTt0aGlzLmhvdC5hZGRIb29rT25jZSgiYmVmb3JlVmlld1JlbmRlciIsX2UpfX19LHtrZXk6ImNsZWFyT2Zmc2V0SW5mb3JtYXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgpe2guYWx0ZXJS''@;'; + put 'put ''b3dPZmZzZXQ9dm9pZCAwLGguYWx0ZXJDb2x1bW5PZmZzZXQ9dm9pZCAwfX0se2tleToiZXh0ZW5kRW5kcG9pbnRSYW5nZXMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe1VyKGgucmFuZ2VzLGZ1bmN0aW9uKEkpe0lbMV0mJih2Pj1JWzBdJiZ2PD1JWzFdP3k+SVsxXT9JWzFdKz1DOnk8SVsw''@;'; + put 'put ''XSYmKElbMF0tPUMpOnk+PUlbMF0mJnk8PUlbMV0mJihJWzFdLT1DLHY8PUlbMF0mJihJWzBdKz0xLElbMV0rPTEpKSl9KX19LHtrZXk6InJlY3JlYXRlUGh5c2ljYWxSYW5nZXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMsQz1bXSxJPVtdO1VyKGgucmFuZ2VzLGZ1bmN0aW9uKGop''@;'; + put 'put ''e3ZhciB1ZT1bXTtpZihqWzFdKWZvcih2YXIgX2U9alswXTtfZTw9alsxXTtfZSsrKXVlLnB1c2godi5ob3QudG9QaHlzaWNhbFJvdyhfZSkpO2Vsc2UgdWUucHVzaCh2LmhvdC50b1BoeXNpY2FsUm93KGpbMF0pKTtJLnB1c2godWUpfSksVXIoSSxmdW5jdGlvbihqKXt2YXIgdWU9W107VXIo''@;'; + put 'put ''aixmdW5jdGlvbihfZSxCZSl7MD09PUJlP3VlLnB1c2goX2UpOmpbQmVdIT09altCZS0xXSsxJiYodWUucHVzaChqW0JlLTFdKSxDLnB1c2godWUpLCh1ZT1bXSkucHVzaChfZSkpLEJlPT09ai5sZW5ndGgtMSYmKHVlLnB1c2goX2UpLEMucHVzaCh1ZSkpfSl9KSxoLnJhbmdlcz1DfX0se2tl''@;'; + put 'put ''eToic2hpZnRFbmRwb2ludENvb3JkaW5hdGVzIix2YWx1ZTpmdW5jdGlvbihoLHYpe2guYWx0ZXJSb3dPZmZzZXQmJjAhPT1oLmFsdGVyUm93T2Zmc2V0PyhoLmRlc3RpbmF0aW9uUm93Kz1oLmFsdGVyUm93T2Zmc2V0fHwwLFVyKGgucmFuZ2VzLGZ1bmN0aW9uKHkpe1VyKHksZnVuY3Rpb24o''@;'; + put 'put ''QyxJKXtDPj12JiYoeVtJXSs9aC5hbHRlclJvd09mZnNldHx8MCl9KX0pKTpoLmFsdGVyQ29sdW1uT2Zmc2V0JiYwIT09aC5hbHRlckNvbHVtbk9mZnNldCYmKGguZGVzdGluYXRpb25Db2x1bW4rPWguYWx0ZXJDb2x1bW5PZmZzZXR8fDAsaC5zb3VyY2VDb2x1bW4rPWguYWx0ZXJDb2x1bW5P''@;'; + put 'put ''ZmZzZXR8fDApfX0se2tleToicmVzZXRBbGxFbmRwb2ludHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmdldEFsbEVuZHBvaW50cygpLHk9IShhcmd1bWVudHMubGVuZ3Ro''@;'; + put 'put ''PjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxDPXYuc29tZShmdW5jdGlvbihJKXt2YXIgdWU9SS5hbHRlckNvbHVtbk9mZnNldHx8MDtyZXR1cm4gSS5kZXN0aW5hdGlvblJvdysoSS5hbHRlclJvd09mZnNldHx8MCk+PWguaG90LmNvdW50Um93cygpfHxJLmRlc3Rp''@;'; + put 'put ''bmF0aW9uQ29sdW1uK3VlPj1oLmhvdC5jb3VudENvbHMoKX0pO0N8fCh0aGlzLmNlbGxzVG9TZXRDYWNoZT1bXSxVcih2LGZ1bmN0aW9uKEkpe2gucmVzZXRFbmRwb2ludFZhbHVlKEkseSl9KSx0aGlzLmhvdC5zZXREYXRhQXRDZWxsKHRoaXMuY2VsbHNUb1NldENhY2hlLCJDb2x1bW5TdW1t''@;'; + put 'put ''YXJ5LnJlc2V0IiksdGhpcy5jZWxsc1RvU2V0Q2FjaGU9W10pfX0se2tleToicmVmcmVzaEFsbEVuZHBvaW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO3RoaXMuY2VsbHNUb1NldENhY2hlPVtdLFVyKHRoaXMuZ2V0QWxsRW5kcG9pbnRzKCksZnVuY3Rpb24odil7aC5jdXJyZW50''@;'; + put 'put ''RW5kcG9pbnQ9dixoLnBsdWdpbi5jYWxjdWxhdGUodiksaC5zZXRFbmRwb2ludFZhbHVlKHYsImluaXQiKX0pLHRoaXMuY3VycmVudEVuZHBvaW50PW51bGwsdGhpcy5ob3Quc2V0RGF0YUF0Q2VsbCh0aGlzLmNlbGxzVG9TZXRDYWNoZSwiQ29sdW1uU3VtbWFyeS5yZXNldCIpLHRoaXMuY2Vs''@;'; + put 'put ''bHNUb1NldENhY2hlPVtdfX0se2tleToicmVmcmVzaENoYW5nZWRFbmRwb2ludHMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT1bXTt0aGlzLmNlbGxzVG9TZXRDYWNoZT1bXSxVcihoLGZ1bmN0aW9uKEMsSSxqKXsiIi5jb25jYXQoQ1syXXx8IiIpIT09IiIuY29uY2F0KENbM10p''@;'; + put 'put ''JiZVcih2LmdldEFsbEVuZHBvaW50cygpLGZ1bmN0aW9uKHVlLF9lKXt2LmhvdC5wcm9wVG9Db2woaltJXVsxXSk9PT11ZS5zb3VyY2VDb2x1bW4mJi0xPT09eS5pbmRleE9mKF9lKSYmeS5wdXNoKF9lKX0pfSksVXIoeSxmdW5jdGlvbihDKXt2LnJlZnJlc2hFbmRwb2ludCh2LmdldEVuZHBv''@;'; + put 'put ''aW50KEMpKX0pLHRoaXMuaG90LnNldERhdGFBdENlbGwodGhpcy5jZWxsc1RvU2V0Q2FjaGUsIkNvbHVtblN1bW1hcnkucmVzZXQiKSx0aGlzLmNlbGxzVG9TZXRDYWNoZT1bXX19LHtrZXk6InJlZnJlc2hFbmRwb2ludCIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jdXJyZW50RW5kcG9pbnQ9''@;'; + put 'put ''aCx0aGlzLnBsdWdpbi5jYWxjdWxhdGUoaCksdGhpcy5zZXRFbmRwb2ludFZhbHVlKGgpLHRoaXMuY3VycmVudEVuZHBvaW50PW51bGx9fSx7a2V5OiJyZXNldEVuZHBvaW50VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1''@;'; + put 'put ''bWVudHNbMV0pfHxhcmd1bWVudHNbMV0seT1oLmFsdGVyUm93T2Zmc2V0fHwwLEM9aC5hbHRlckNvbHVtbk9mZnNldHx8MCxJPVt0aGlzLmhvdC50b1Zpc3VhbFJvdyhoLmRlc3RpbmF0aW9uUm93KSx0aGlzLmhvdC50b1Zpc3VhbENvbHVtbihoLmRlc3RpbmF0aW9uQ29sdW1uKV0saj1JWzBd''@;'; + put 'put ''LHVlPUlbMV07aWYobnVsbCE9PXVlJiZudWxsIT09ail7dmFyIF9lPXRoaXMuaG90LmdldENlbGxNZXRhKGosdWUpO19lLnJlYWRPbmx5PSExLF9lLmNsYXNzTmFtZT0iIn10aGlzLmNlbGxzVG9TZXRDYWNoZS5wdXNoKFt0aGlzLmhvdC50b1Zpc3VhbFJvdyhoLmRlc3RpbmF0aW9uUm93Kyh2''@;'; + put 'put ''P3k6MCkpLHRoaXMuaG90LnRvVmlzdWFsQ29sdW1uKGguZGVzdGluYXRpb25Db2x1bW4rKHY/QzowKSksIiJdKX19LHtrZXk6InNldEVuZHBvaW50VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3Vt''@;'; + put 'put ''ZW50c1syXSxDPS0xKmguYWx0ZXJSb3dPZmZzZXR8fDAsST0tMSpoLmFsdGVyQ29sdW1uT2Zmc2V0fHwwLGo9dGhpcy5ob3QudG9WaXN1YWxSb3coaC5kZXN0aW5hdGlvblJvdyk7aWYoaC5kZXN0aW5hdGlvblJvdz49dGhpcy5ob3QuY291bnRSb3dzKCl8fGguZGVzdGluYXRpb25Db2x1bW4+''@;'; + put 'put ''PXRoaXMuaG90LmNvdW50Q29scygpKXRoaXMudGhyb3dPdXRPZkJvdW5kc1dhcm5pbmcoKTtlbHNle3ZhciB1ZT10aGlzLmhvdC50b1Zpc3VhbFJvdyhoLmRlc3RpbmF0aW9uUm93K0MpO2lmKG51bGwhPT11ZSl7dmFyIF9lPXRoaXMuaG90LmdldENlbGxNZXRhKHVlLGguZGVzdGluYXRpb25D''@;'; + put 'put ''b2x1bW4rSSk7KCJpbml0Ij09PXZ8fF9lLnJlYWRPbmx5IT09aC5yZWFkT25seSkmJihfZS5yZWFkT25seT1oLnJlYWRPbmx5LF9lLmNsYXNzTmFtZT0iY29sdW1uU3VtbWFyeVJlc3VsdCIpfWgucm91bmRGbG9hdCYmIWlzTmFOKGgucmVzdWx0KSYmKGgucmVzdWx0PWgucmVzdWx0LnRvRml4''@;'; + put 'put ''ZWQoaC5yb3VuZEZsb2F0KSkseT90aGlzLmhvdC5zZXREYXRhQXRDZWxsKGosaC5kZXN0aW5hdGlvbkNvbHVtbixoLnJlc3VsdCwiQ29sdW1uU3VtbWFyeS5zZXQiKTp0aGlzLmNlbGxzVG9TZXRDYWNoZS5wdXNoKFtqLGguZGVzdGluYXRpb25Db2x1bW4saC5yZXN1bHRdKSxoLmFsdGVyUm93''@;'; + put 'put ''T2Zmc2V0PXZvaWQgMCxoLmFsdGVyQ29sdW1uT2Zmc2V0PXZvaWQgMH19fSx7a2V5OiJ0aHJvd091dE9mQm91bmRzV2FybmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtsMSgiT25lIG9mIHRoZSBDb2x1bW4gU3VtbWFyeSBwbHVnaW5zJyBkZXN0aW5hdGlvbiBwb2ludHMgeW91IHByb3ZpZGVkIGlz''@;'; + put 'put ''IGJleW9uZCB0aGUgdGFibGUgYm91bmRhcmllcyEiKX19XSksZH0oKTtjb25zdCByb3Q9bm90O2Z1bmN0aW9uIHk4ZShkKXtyZXR1cm4oeThlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBl''@;'; + put 'put ''b2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9dmFyIGJFZTtmdW5jdGlvbiBfRWUoZCxnKXtmb3IodmFyIGg9MDtoPGcu''@;'; + put 'put ''bGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBMdGUoKXtyZXR1cm4gTHRlPSJ1bmRl''@;'; + put 'put ''ZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1sb3QoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1l''@;'; + put 'put ''bnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LEx0ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbG90KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1UTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiB3OGUoZCxn''@;'; + put 'put ''KXtyZXR1cm4odzhlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gY290KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09eThlKGcpfHwiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBmb3QoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJl''@;'; + put 'put ''bmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBUTyhkKXtyZXR1cm4oVE89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rp''@;'; + put 'put ''b24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgYjhlPSJjb2x1bW5TdW1tYXJ5Iixwb3Q9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHNvdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVy''@;'; + put 'put ''cm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZ3OGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiB1b3QoZCl7dmFyIGc9ZnVuY3Rpb24gaG90KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3Ry''@;'; + put 'put ''dWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgp''@;'; + put 'put ''O3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9VE8oZCk7aWYoZyl7dmFyIEM9VE8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGNvdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24g''@;'; + put 'put ''aCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gb290KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLmVuZHBvaW50cz1udWxsLHl9cmV0dXJu''@;'; + put 'put ''IGZ1bmN0aW9uIGFvdChkLGcsaCl7ZyYmX0VlKGQucHJvdG90eXBlLGcpLGgmJl9FZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRT''@;'; + put 'put ''ZXR0aW5ncygpW2I4ZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLnNldHRpbmdzPXRoaXMuaG90LmdldFNldHRpbmdzKClbYjhlXSx0aGlzLmVuZHBvaW50cz1uZXcgcm90KHRoaXMsdGhpcy5zZXR0aW5ncyks''@;'; + put 'put ''dGhpcy5hZGRIb29rKCJhZnRlckluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckluaXQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyQ2hhbmdlLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMu''@;'; + put 'put ''YWRkSG9vaygiYmVmb3JlQ3JlYXRlUm93IixmdW5jdGlvbihDLEksail7cmV0dXJuIHkuZW5kcG9pbnRzLnJlc2V0U2V0dXBCZWZvcmVTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJpbnNlcnRfcm93IixDLEksbnVsbCxqKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQ3JlYXRlQ29sIixmdW5jdGlvbihD''@;'; + put 'put ''LEksail7cmV0dXJuIHkuZW5kcG9pbnRzLnJlc2V0U2V0dXBCZWZvcmVTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJpbnNlcnRfY29sIixDLEksbnVsbCxqKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVtb3ZlUm93IixmdW5jdGlvbigpe2Zvcih2YXIgQyxJPWFyZ3VtZW50cy5sZW5ndGgsaj1uZXcg''@;'; + put 'put ''QXJyYXkoSSksdWU9MDt1ZTxJO3VlKyspalt1ZV09YXJndW1lbnRzW3VlXTtyZXR1cm4oQz15LmVuZHBvaW50cykucmVzZXRTZXR1cEJlZm9yZVN0cnVjdHVyZUFsdGVyYXRpb24uYXBwbHkoQyxbInJlbW92ZV9yb3ciXS5jb25jYXQoaikpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVSZW1vdmVD''@;'; + put 'put ''b2wiLGZ1bmN0aW9uKCl7Zm9yKHZhciBDLEk9YXJndW1lbnRzLmxlbmd0aCxqPW5ldyBBcnJheShJKSx1ZT0wO3VlPEk7dWUrKylqW3VlXT1hcmd1bWVudHNbdWVdO3JldHVybihDPXkuZW5kcG9pbnRzKS5yZXNldFNldHVwQmVmb3JlU3RydWN0dXJlQWx0ZXJhdGlvbi5hcHBseShDLFsicmVt''@;'; + put 'put ''b3ZlX2NvbCJdLmNvbmNhdChqKSl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ3JlYXRlUm93IixmdW5jdGlvbihDLEksail7cmV0dXJuIHkuZW5kcG9pbnRzLnJlc2V0U2V0dXBBZnRlclN0cnVjdHVyZUFsdGVyYXRpb24oImluc2VydF9yb3ciLEMsSSxudWxsLGopfSksdGhpcy5hZGRIb29rKCJh''@;'; + put 'put ''ZnRlckNyZWF0ZUNvbCIsZnVuY3Rpb24oQyxJLGope3JldHVybiB5LmVuZHBvaW50cy5yZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJpbnNlcnRfY29sIixDLEksbnVsbCxqKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJSZW1vdmVSb3ciLGZ1bmN0aW9uKCl7Zm9yKHZhciBDLEk9''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aCxqPW5ldyBBcnJheShJKSx1ZT0wO3VlPEk7dWUrKylqW3VlXT1hcmd1bWVudHNbdWVdO3JldHVybihDPXkuZW5kcG9pbnRzKS5yZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRlcmF0aW9uLmFwcGx5KEMsWyJyZW1vdmVfcm93Il0uY29uY2F0KGopKX0pLHRoaXMu''@;'; + put 'put ''YWRkSG9vaygiYWZ0ZXJSZW1vdmVDb2wiLGZ1bmN0aW9uKCl7Zm9yKHZhciBDLEk9YXJndW1lbnRzLmxlbmd0aCxqPW5ldyBBcnJheShJKSx1ZT0wO3VlPEk7dWUrKylqW3VlXT1hcmd1bWVudHNbdWVdO3JldHVybihDPXkuZW5kcG9pbnRzKS5yZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRl''@;'; + put 'put ''cmF0aW9uLmFwcGx5KEMsWyJyZW1vdmVfY29sIl0uY29uY2F0KGopKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJSb3dNb3ZlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJSb3dNb3ZlLmFwcGx5KHksYXJndW1lbnRzKX0pLEx0ZShUTyhoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhp''@;'; + put 'put ''cykuY2FsbCh0aGlzKSl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZW5kcG9pbnRzPW51bGwsdGhpcy5zZXR0aW5ncz1udWxsLHRoaXMuY3VycmVudEVuZHBvaW50PW51bGx9fSx7a2V5OiJjYWxjdWxhdGUiLHZhbHVlOmZ1bmN0aW9uKHkpe3N3aXRjaCh5''@;'; + put 'put ''LnR5cGUudG9Mb3dlckNhc2UoKSl7Y2FzZSJzdW0iOnkucmVzdWx0PXRoaXMuY2FsY3VsYXRlU3VtKHkpO2JyZWFrO2Nhc2UibWluIjpjYXNlIm1heCI6eS5yZXN1bHQ9dGhpcy5jYWxjdWxhdGVNaW5NYXgoeSx5LnR5cGUpO2JyZWFrO2Nhc2UiY291bnQiOnkucmVzdWx0PXRoaXMuY291bnRF''@;'; + put 'put ''bnRyaWVzKHkpO2JyZWFrO2Nhc2UiYXZlcmFnZSI6eS5yZXN1bHQ9dGhpcy5jYWxjdWxhdGVBdmVyYWdlKHkpO2JyZWFrO2Nhc2UiY3VzdG9tIjp5LnJlc3VsdD15LmN1c3RvbUZ1bmN0aW9uLmNhbGwodGhpcyx5KX19fSx7a2V5OiJjYWxjdWxhdGVTdW0iLHZhbHVlOmZ1bmN0aW9uKHkpe3Zh''@;'; + put 'put ''ciBDPXRoaXMsST0wO3JldHVybiBHbCh5LnJhbmdlcyxmdW5jdGlvbihqKXtJKz1DLmdldFBhcnRpYWxTdW0oaix5LnNvdXJjZUNvbHVtbil9KSxJfX0se2tleToiZ2V0UGFydGlhbFN1bSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST0wLGo9eVsxXXx8eVswXSx1ZT1udWxsLF9lPTA7ZG97''@;'; + put 'put ''dWU9dGhpcy5nZXRDZWxsVmFsdWUoaixDKXx8MDt2YXIgQmU9KCIiLmNvbmNhdCh1ZSkuc3BsaXQoIi4iKVsxXXx8W10pLmxlbmd0aHx8MTtCZT5fZSYmKF9lPUJlKSxJKz11ZXx8MCxqLT0xfXdoaWxlKGo+PXlbMF0pO3JldHVybiBNYXRoLnJvdW5kKEkqTWF0aC5wb3coMTAsX2UpKS9NYXRo''@;'; + put 'put ''LnBvdygxMCxfZSl9fSx7a2V5OiJjYWxjdWxhdGVNaW5NYXgiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcyxqPW51bGw7cmV0dXJuIEdsKHkucmFuZ2VzLGZ1bmN0aW9uKHVlKXt2YXIgX2U9SS5nZXRQYXJ0aWFsTWluTWF4KHVlLHkuc291cmNlQ29sdW1uLEMpO2lmKG51bGw9PT1q''@;'; + put 'put ''JiZudWxsIT09X2UmJihqPV9lKSxudWxsIT09X2Upc3dpdGNoKEMpe2Nhc2UibWluIjpqPU1hdGgubWluKGosX2UpO2JyZWFrO2Nhc2UibWF4IjpqPU1hdGgubWF4KGosX2UpfX0pLG51bGw9PT1qPyJOb3QgZW5vdWdoIGRhdGEiOmp9fSx7a2V5OiJnZXRQYXJ0aWFsTWluTWF4Iix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbih5LEMsSSl7dmFyIF9lLGo9bnVsbCx1ZT15WzFdfHx5WzBdO2Rve2lmKF9lPXRoaXMuZ2V0Q2VsbFZhbHVlKHVlLEMpfHxudWxsLG51bGw9PT1qKWo9X2U7ZWxzZSBpZihudWxsIT09X2Upc3dpdGNoKEkpe2Nhc2UibWluIjpqPU1hdGgubWluKGosX2UpO2JyZWFrO2Nhc2UibWF4''@;'; + put 'put ''IjpqPU1hdGgubWF4KGosX2UpfXVlLT0xfXdoaWxlKHVlPj15WzBdKTtyZXR1cm4gan19LHtrZXk6ImNvdW50RW1wdHkiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIGo9MCx1ZT15WzFdfHx5WzBdO2Rve3RoaXMuZ2V0Q2VsbFZhbHVlKHVlLEMpfHwoais9MSksdWUtPTF9d2hpbGUodWU+PXlb''@;'; + put 'put ''MF0pO3JldHVybiBqfX0se2tleToiY291bnRFbnRyaWVzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9MDtyZXR1cm4gR2woeS5yYW5nZXMsZnVuY3Rpb24odWUpe3ZhciBfZT12b2lkIDA9PT11ZVsxXT8xOnVlWzFdLXVlWzBdKzEsQmU9Qy5jb3VudEVtcHR5KHVlLHkuc291cmNl''@;'; + put 'put ''Q29sdW1uKTtJKz1fZSxJLT1CZX0pLEl9fSx7a2V5OiJjYWxjdWxhdGVBdmVyYWdlIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gdGhpcy5jYWxjdWxhdGVTdW0oeSkvdGhpcy5jb3VudEVudHJpZXMoeSl9fSx7a2V5OiJnZXRDZWxsVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9''@;'; + put 'put ''dGhpcy5ob3QudG9WaXN1YWxSb3coeSksaj10aGlzLmhvdC50b1Zpc3VhbENvbHVtbihDKSx1ZT10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXRDZWxsKHksQyksX2U9IiI7aWYobnVsbCE9PUkmJm51bGwhPT1qJiYoX2U9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEoSSxqKS5jbGFzc05hbWV8fCIiKSxf''@;'; + put 'put ''ZS5pbmRleE9mKCJjb2x1bW5TdW1tYXJ5UmVzdWx0Iik+LTEpcmV0dXJuIG51bGw7aWYodGhpcy5lbmRwb2ludHMuY3VycmVudEVuZHBvaW50LmZvcmNlTnVtZXJpYyYmKCJzdHJpbmciPT10eXBlb2YgdWUmJih1ZT11ZS5yZXBsYWNlKC8sLywiLiIpKSx1ZT1wYXJzZUZsb2F0KHVlKSksaXNO''@;'; + put 'put ''YU4odWUpJiYhdGhpcy5lbmRwb2ludHMuY3VycmVudEVuZHBvaW50LnN1cHByZXNzRGF0YVR5cGVFcnJvcnMpdGhyb3cgbmV3IEVycm9yKEIyKGJFZXx8KGJFZT1mdW5jdGlvbiBpb3QoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbIkNvbHVtblN1bW1hcnkgcGx1Z2luOiBjZWxsIGF0ICgiLCIsICIsIikgaXMgbm90IGluIGEgXG4gICAgICAgICAgbnVtZXJpYyBmb3JtYXQuIENhbm5vdCBkbyB0aGUgY2FsY3VsYXRpb24uIl0sWyJDb2x1bW5T''@;'; + put 'put ''dW1tYXJ5IHBsdWdpbjogY2VsbCBhdCAoIiwiLCAiLCIpIGlzIG5vdCBpbiBhXFx4MjBcbiAgICAgICAgICBudW1lcmljIGZvcm1hdC4gQ2Fubm90IGRvIHRoZSBjYWxjdWxhdGlvbi4iXSkpLHksQykpO3JldHVybiB1ZX19LHtrZXk6Im9uQWZ0ZXJJbml0Iix2YWx1ZTpmdW5jdGlvbigpe3Ro''@;'; + put 'put ''aXMuZW5kcG9pbnRzLmVuZHBvaW50cz10aGlzLmVuZHBvaW50cy5wYXJzZVNldHRpbmdzKCksdGhpcy5lbmRwb2ludHMucmVmcmVzaEFsbEVuZHBvaW50cyghMCl9fSx7a2V5OiJvbkFmdGVyQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbih5LEMpe3kmJiJDb2x1bW5TdW1tYXJ5LnJlc2V0IiE9PUMm''@;'; + put 'put ''JiJDb2x1bW5TdW1tYXJ5LnNldCIhPT1DJiYibG9hZERhdGEiIT09QyYmdGhpcy5lbmRwb2ludHMucmVmcmVzaENoYW5nZWRFbmRwb2ludHMoeSl9fSx7a2V5OiJvbkFmdGVyUm93TW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLmVuZHBvaW50cy5yZXNldFNldHVwQmVmb3JlU3RydWN0''@;'; + put 'put ''dXJlQWx0ZXJhdGlvbigibW92ZV9yb3ciLHlbMF0seS5sZW5ndGgseSx0aGlzLnBsdWdpbk5hbWUpLHRoaXMuZW5kcG9pbnRzLnJlc2V0U2V0dXBBZnRlclN0cnVjdHVyZUFsdGVyYXRpb24oIm1vdmVfcm93IixDLHkubGVuZ3RoLHksdGhpcy5wbHVnaW5OYW1lKX19XSxbe2tleToiUExVR0lO''@;'; + put 'put ''X0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGI4ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDIyMH19XSksaH0oWXMpO2Z1bmN0aW9uIENFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12''@;'; + put 'put ''LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciB2b3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIGdvdChkLGcpe2lmKCEoZCBpbnN0YW5j''@;'; + put 'put ''ZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnJvb3REb2N1bWVudD1nLHRoaXMuaXNSdGw9aCx0aGlzLmNvbnRhaW5lcj1udWxsLHRoaXMuZWRpdG9yPXRoaXMuY3JlYXRlRWRpdG9yKCksdGhpcy5l''@;'; + put 'put ''ZGl0b3JTdHlsZT10aGlzLmVkaXRvci5zdHlsZSx0aGlzLmhpZGRlbj0hMCx0aGlzLmhpZGUoKX1yZXR1cm4gZnVuY3Rpb24gbW90KGQsZyxoKXtnJiZDRWUoZC5wcm90b3R5cGUsZyksaCYmQ0VlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiEx''@;'; + put 'put ''fSl9KGQsW3trZXk6InNldFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMuZWRpdG9yU3R5bGUubGVmdD0iIi5jb25jYXQoaCwicHgiKSx0aGlzLmVkaXRvclN0eWxlLnRvcD0iIi5jb25jYXQodiwicHgiKX19LHtrZXk6InNldFNpemUiLHZhbHVlOmZ1bmN0aW9uKGgsdil7aWYo''@;'; + put 'put ''aCYmdil7dmFyIHk9dGhpcy5nZXRJbnB1dEVsZW1lbnQoKTt5LnN0eWxlLndpZHRoPSIiLmNvbmNhdChoLCJweCIpLHkuc3R5bGUuaGVpZ2h0PSIiLmNvbmNhdCh2LCJweCIpfX19LHtrZXk6ImdldFNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3dpZHRoOkUyKHRoaXMuZ2V0SW5wdXRF''@;'; + put 'put ''bGVtZW50KCkpLGhlaWdodDpEMSh0aGlzLmdldElucHV0RWxlbWVudCgpKX19fSx7a2V5OiJyZXNldFNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5nZXRJbnB1dEVsZW1lbnQoKTtoLnN0eWxlLndpZHRoPSIiLGguc3R5bGUuaGVpZ2h0PSIifX0se2tleToic2V0UmVhZE9ubHlT''@;'; + put 'put ''dGF0ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5yZWFkT25seT1ofX0se2tleToic2hvdyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVkaXRvclN0eWxlLmRpc3BsYXk9ImJsb2NrIix0aGlzLmhpZGRlbj0hMX19LHtrZXk6ImhpZGUiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7dGhpcy5oaWRkZW58fCh0aGlzLmVkaXRvclN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0aGlzLmhpZGRlbj0hMH19LHtrZXk6ImlzVmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4iYmxvY2siPT09dGhpcy5lZGl0b3JTdHlsZS5kaXNwbGF5fX0se2tleToic2V0VmFsdWUiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiLHY9aHx8IiI7dGhpcy5nZXRJbnB1dEVsZW1lbnQoKS52YWx1ZT12fX0se2tleToiZ2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0''@;'; + put 'put ''SW5wdXRFbGVtZW50KCkudmFsdWV9fSx7a2V5OiJpc0ZvY3VzZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT10aGlzLmdldElucHV0RWxlbWVudCgpfX0se2tleToiZm9jdXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5nZXRJbnB1''@;'; + put 'put ''dEVsZW1lbnQoKS5mb2N1cygpfX0se2tleToiY3JlYXRlRWRpdG9yIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHY9dGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtyZXR1cm4gaC5zdHlsZS5k''@;'; + put 'put ''aXNwbGF5PSJub25lIix0aGlzLmNvbnRhaW5lcj10aGlzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoImRpciIsdGhpcy5pc1J0bD8icnRsIjoibHRyIiksTzAodGhpcy5jb250YWluZXIsZC5DTEFTU19FRElUT1JfQ09OVEFJ''@;'; + put 'put ''TkVSKSx0aGlzLnJvb3REb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyKSxPMChoLGQuQ0xBU1NfRURJVE9SKSxPMCh2LGQuQ0xBU1NfSU5QVVQpLGguYXBwZW5kQ2hpbGQodiksdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQoaCksaH19LHtrZXk6ImdldElucHV0RWxl''@;'; + put 'put ''bWVudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGl0b3IucXVlcnlTZWxlY3RvcigiLiIuY29uY2F0KGQuQ0xBU1NfSU5QVVQpKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5jb250YWluZXI/dGhpcy5jb250YWluZXIucGFyZW50Tm9kZTpu''@;'; + put 'put ''dWxsO3RoaXMuZWRpdG9yLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lZGl0b3IpLHRoaXMuZWRpdG9yPW51bGwsdGhpcy5lZGl0b3JTdHlsZT1udWxsLGgmJmgucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIpfX1dLFt7a2V5OiJDTEFTU19FRElUT1JfQ09OVEFJTkVSIixnZXQ6ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4iaHRDb21tZW50c0NvbnRhaW5lciJ9fSx7a2V5OiJDTEFTU19FRElUT1IiLGdldDpmdW5jdGlvbigpe3JldHVybiJodENvbW1lbnRzIn19LHtrZXk6IkNMQVNTX0lOUFVUIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iaHRDb21tZW50VGV4dEFyZWEifX0se2tleToiQ0xB''@;'; + put 'put ''U1NfQ0VMTCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImh0Q29tbWVudENlbGwifX1dKSxkfSgpO2NvbnN0IEFvdD12b3Q7dmFyIFdsPSItLS0tLS0tLS0iO2Z1bmN0aW9uIE90ZShkKXtyZXR1cm4gdGwoZCwiaHRTZXBhcmF0b3IiKX1mdW5jdGlvbiBSdGUoZCl7cmV0dXJuIHRsKGQsImh0RGlz''@;'; + put 'put ''YWJsZWQiKX1mdW5jdGlvbiBCdGUoZCl7cmV0dXJuIHRsKGQsImh0U2VsZWN0aW9uRGlzYWJsZWQiKX1mdW5jdGlvbiBHUyhkKXt2YXIgZz1kLmdldFNlbGVjdGVkKCk7cmV0dXJuIWd8fGdbMF08MD9udWxsOmd9ZnVuY3Rpb24gV1MoZCxnKXt2YXIgaD17fTtyZXR1cm4gVXIoZCxmdW5jdGlv''@;'; + put 'put ''bih2KXt2LmZvckFsbChmdW5jdGlvbih5LEMpe3k+PTAmJkM+PTAmJihoW3ldfHwoaFt5XT1bXSksaFt5XVtDXT1nKHksQykpfSl9KSxofWZ1bmN0aW9uIFB3KGQsZyxoLHYseSl7VXIoZCxmdW5jdGlvbihDKXtDLmZvckFsbChmdW5jdGlvbihJLGope0k+PTAmJmo+PTAmJmZ1bmN0aW9uIGtv''@;'; + put 'put ''dChkLGcsaCx2LHksQyl7dmFyIEk9eShkLGcpLGo9djtJLmNsYXNzTmFtZSYmKGo9InZlcnRpY2FsIj09PWg/ZnVuY3Rpb24gX290KGQsZyl7aWYoLTEhPT1kLmluZGV4T2YoZykpcmV0dXJuIGQ7dmFyIGg9ZC5yZXBsYWNlKCJodFRvcCIsIiIpLnJlcGxhY2UoImh0TWlkZGxlIiwiIikucmVw''@;'; + put 'put ''bGFjZSgiaHRCb3R0b20iLCIiKS5yZXBsYWNlKCIgICIsIiIpO3JldHVybiIiLmNvbmNhdChoLCIgIikuY29uY2F0KGcpfShJLmNsYXNzTmFtZSx2KTpmdW5jdGlvbiBDb3QoZCxnKXtpZigtMSE9PWQuaW5kZXhPZihnKSlyZXR1cm4gZDt2YXIgaD1kLnJlcGxhY2UoImh0TGVmdCIsIiIpLnJl''@;'; + put 'put ''cGxhY2UoImh0Q2VudGVyIiwiIikucmVwbGFjZSgiaHRSaWdodCIsIiIpLnJlcGxhY2UoImh0SnVzdGlmeSIsIiIpLnJlcGxhY2UoIiAgIiwiIik7cmV0dXJuIiIuY29uY2F0KGgsIiAiKS5jb25jYXQoZyl9KEkuY2xhc3NOYW1lLHYpKSxDKGQsZywiY2xhc3NOYW1lIixqKX0oSSxqLGcsaCx2''@;'; + put 'put ''LHkpfSl9KX1mdW5jdGlvbiBPZyhkLGcpe3ZhciBoPSExO3JldHVybiBBcnJheS5pc0FycmF5KGQpJiZVcihkLGZ1bmN0aW9uKHYpe3JldHVybiB2LmZvckFsbChmdW5jdGlvbih5LEMpe2lmKHk+PTAmJkM+PTAmJmcoeSxDKSlyZXR1cm4gaD0hMCwhMX0pLGh9KSxofWZ1bmN0aW9uIEI5KGQp''@;'; + put 'put ''e3JldHVybic8c3BhbiBjbGFzcz0ic2VsZWN0ZWQiPicuY29uY2F0KFN0cmluZy5mcm9tQ2hhckNvZGUoMTAwMDMpLCI8L3NwYW4+IikuY29uY2F0KGQpfWZ1bmN0aW9uIGtFZShkLGcpe2Zvcih2YXIgaD1kLnNsaWNlKDApOzA8aC5sZW5ndGgmJmhbMF0ubmFtZT09PWc7KWguc2hpZnQoKTty''@;'; + put 'put ''ZXR1cm4gaH1mdW5jdGlvbiBNb3QoZCxnKXt2YXIgaD1kLnNsaWNlKDApO3JldHVybiBoLnJldmVyc2UoKSwoaD1rRWUoaCxnKSkucmV2ZXJzZSgpLGh9ZnVuY3Rpb24gRW90KGQpe3ZhciBnPVtdO3JldHVybiBVcihkLGZ1bmN0aW9uKGgsdil7dj4wP2dbZy5sZW5ndGgtMV0ubmFtZSE9PWgu''@;'; + put 'put ''bmFtZSYmZy5wdXNoKGgpOmcucHVzaChoKX0pLGd9ZnVuY3Rpb24gU0VlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxP''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIE1FZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIFRvdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSko''@;'; + put 'put ''dGhpcyxkKSx0aGlzLndhc0xhc3RBY3Rpb25TaG93PSEwLHRoaXMuc2hvd0RlYm91bmNlZD1udWxsLHRoaXMuaGlkaW5nVGltZXI9bnVsbCx0aGlzLnVwZGF0ZURlbGF5KGcpfXJldHVybiBmdW5jdGlvbiBJb3QoZCxnLGgpe2cmJlNFZShkLnByb3RvdHlwZSxnKSxoJiZTRWUoZCxoKSxPYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiaGlkZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO3RoaXMud2FzTGFzdEFjdGlvblNob3c9ITEsdGhpcy5oaWRpbmdUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ITE9PT1oLndh''@;'; + put 'put ''c0xhc3RBY3Rpb25TaG93JiZoLnJ1bkxvY2FsSG9va3MoImhpZGUiKX0sMjUwKX19LHtrZXk6InNob3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMud2FzTGFzdEFjdGlvblNob3c9ITAsdGhpcy5zaG93RGVib3VuY2VkKGgpfX0se2tleToiY2FuY2VsSGlkaW5nIix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e3RoaXMud2FzTGFzdEFjdGlvblNob3c9ITAsY2xlYXJUaW1lb3V0KHRoaXMuaGlkaW5nVGltZXIpLHRoaXMuaGlkaW5nVGltZXI9bnVsbH19LHtrZXk6InVwZGF0ZURlbGF5Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3Vt''@;'; + put 'put ''ZW50c1swXT9hcmd1bWVudHNbMF06MjUwO3RoaXMuc2hvd0RlYm91bmNlZD1BM2UoZnVuY3Rpb24oeSl7aC53YXNMYXN0QWN0aW9uU2hvdyYmaC5ydW5Mb2NhbEhvb2tzKCJzaG93Iix5LmZyb20ucm93LHkuZnJvbS5jb2wpfSx2KX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''dGhpcy5jbGVhckxvY2FsSG9va3MoKX19XSksZH0oKTtSMihNRWUsc2QpO2NvbnN0IE9vdD1NRWU7ZnVuY3Rpb24gXzhlKGQpe3JldHVybihfOGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5''@;'; + put 'put ''cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBDOGUoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIEVFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8''@;'; + put 'put ''fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFlTKCl7cmV0dXJuIFlTPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmlu''@;'; + put 'put ''ZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1Qb3QoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LFlTLmFwcGx5KHRoaXMsYXJndW1lbnRz''@;'; + put 'put ''KX1mdW5jdGlvbiBQb3QoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVA5KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGs4ZShkLGcpe3JldHVybihrOGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5''@;'; + put 'put ''cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBOb3QoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1fOGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''IkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIHhFZShkKX1mdW5jdGlvbiB4RWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBl''@;'; + put 'put ''cigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIFA5KGQpe3JldHVybihQOT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZiho''@;'; + put 'put ''KX0pKGQpfXZhciBTOGU9ImNvbW1lbnRzIixQdGU9bmV3IFdlYWtNYXAsUmc9ImNvbW1lbnQiLElPPSJ2YWx1ZSIsRnRlPSJyZWFkT25seSIsWm90PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBGb3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVF''@;'; + put 'put ''cnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmazhlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gSG90KGQpe3ZhciBnPWZ1bmN0aW9uIFZvdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0''@;'; + put 'put ''cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0o''@;'; + put 'put ''KTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVA5KGQpO2lmKGcpe3ZhciBDPVA5KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBOb3QodGhpcyx5KX19KGgpO2Z1bmN0aW9u''@;'; + put 'put ''IGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIFJvdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5lZGl0b3I9bnVsbCx5LmRpc3BsYXlT''@;'; + put 'put ''d2l0Y2g9bnVsbCx5LmV2ZW50TWFuYWdlcj1udWxsLHkucmFuZ2U9e30seS5wcmV2ZW50RWRpdG9yQXV0b1N3aXRjaD0hMSxQdGUuc2V0KHhFZSh5KSx7dGVtcEVkaXRvckRpbWVuc2lvbnM6e30sY2VsbEJlbG93Q3Vyc29yOm51bGx9KSx5fXJldHVybiBmdW5jdGlvbiBCb3QoZCxnLGgpe2cm''@;'; + put 'put ''JkVFZShkLnByb3RvdHlwZSxnKSxoJiZFRWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtTOGVdfX0se2tleToi''@;'; + put 'put ''ZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5lZGl0b3J8fCh0aGlzLmVkaXRvcj1uZXcgQW90KHRoaXMuaG90LnJvb3REb2N1bWVudCx0aGlzLmhvdC5pc1J0bCgpKSksdGhpcy5ldmVudE1hbmFnZXJ8fCh0aGlzLmV2ZW50TWFu''@;'; + put 'put ''YWdlcj1uZXcgTDEodGhpcykpLHRoaXMuZGlzcGxheVN3aXRjaHx8KHRoaXMuZGlzcGxheVN3aXRjaD1uZXcgT290KHRoaXMuZ2V0RGlzcGxheURlbGF5U2V0dGluZygpKSksdGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGZ1bmN0aW9uKEMpe3JldHVybiB5''@;'; + put 'put ''LmFkZFRvQ29udGV4dE1lbnUoQyl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVuZGVyZXIiLGZ1bmN0aW9uKEMsSSxqLHVlLF9lLEJlKXtyZXR1cm4geS5vbkFmdGVyUmVuZGVyZXIoQyxCZSl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5IixmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biB5LmhpZGUoKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IixmdW5jdGlvbigpe3JldHVybiB5LmhpZGUoKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJCZWdpbkVkaXRpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIHkuaGlkZSgpfSksdGhpcy5kaXNwbGF5U3dpdGNoLmFkZExv''@;'; + put 'put ''Y2FsSG9vaygiaGlkZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5oaWRlKCl9KSx0aGlzLmRpc3BsYXlTd2l0Y2guYWRkTG9jYWxIb29rKCJzaG93IixmdW5jdGlvbihDLEkpe3JldHVybiB5LnNob3dBdENlbGwoQyxJKX0pLHRoaXMucmVnaXN0ZXJMaXN0ZW5lcnMoKSxZUyhQOShoLnByb3RvdHlw''@;'; + put 'put ''ZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxZUyhQOShoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlz''@;'; + put 'put ''KSx0aGlzLmRpc3BsYXlTd2l0Y2gudXBkYXRlRGVsYXkodGhpcy5nZXREaXNwbGF5RGVsYXlTZXR0aW5nKCkpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXtZUyhQOShoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJy''@;'; + put 'put ''ZWdpc3Rlckxpc3RlbmVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9dGhpcy5ob3Qucm9vdERvY3VtZW50O3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2VvdmVyIixmdW5jdGlvbihJKXtyZXR1cm4geS5vbk1vdXNlT3ZlcihJKX0pLHRoaXMuZXZl''@;'; + put 'put ''bnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2Vkb3duIixmdW5jdGlvbihJKXtyZXR1cm4geS5vbk1vdXNlRG93bihJKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2V1cCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1vdXNlVXAoKX0pLHRoaXMu''@;'; + put 'put ''ZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5lZGl0b3IuZ2V0SW5wdXRFbGVtZW50KCksImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25FZGl0b3JCbHVyKCl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMuZWRpdG9yLmdldElucHV0RWxlbWVu''@;'; + put 'put ''dCgpLCJtb3VzZWRvd24iLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uRWRpdG9yTW91c2VEb3duKEkpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmVkaXRvci5nZXRJbnB1dEVsZW1lbnQoKSwibW91c2V1cCIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25FZGl0b3JN''@;'; + put 'put ''b3VzZVVwKEkpfSl9fSx7a2V5OiJzZXRSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5yYW5nZT15fX0se2tleToiY2xlYXJSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJhbmdlPXt9fX0se2tleToidGFyZ2V0SXNDZWxsV2l0aENvbW1lbnQiLHZhbHVlOmZ1bmN0aW9uKHkpe3Zh''@;'; + put 'put ''ciBDPVM5KHkudGFyZ2V0LCJURCIsIlRCT0RZIik7cmV0dXJuISEoQyYmdGwoQywiaHRDb21tZW50Q2VsbCIpJiZTOShDLFt0aGlzLmhvdC5yb290RWxlbWVudF0pKX19LHtrZXk6InRhcmdldElzQ29tbWVudFRleHRBcmVhIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gdGhpcy5lZGl0b3Iu''@;'; + put 'put ''Z2V0SW5wdXRFbGVtZW50KCk9PT15LnRhcmdldH19LHtrZXk6InNldENvbW1lbnQiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKCF0aGlzLnJhbmdlLmZyb20pdGhyb3cgbmV3IEVycm9yKCdCZWZvcmUgdXNpbmcgdGhpcyBtZXRob2QsIGZpcnN0IHNldCBjZWxsIHJhbmdlIChob3QuZ2V0UGx1Z2lu''@;'; + put 'put ''KCJjb21tZW50Iikuc2V0UmFuZ2UoKSknKTt2YXIgQz10aGlzLmVkaXRvci5nZXRWYWx1ZSgpLEk9IiI7bnVsbCE9eT9JPXk6bnVsbCE9QyYmKEk9QyksdGhpcy51cGRhdGVDb21tZW50TWV0YSh0aGlzLnJhbmdlLmZyb20ucm93LHRoaXMucmFuZ2UuZnJvbS5jb2wsQzhlKHt9LElPLEkpKSx0''@;'; + put 'put ''aGlzLmhvdC5yZW5kZXIoKX19LHtrZXk6InNldENvbW1lbnRBdENlbGwiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt0aGlzLnNldFJhbmdlKHtmcm9tOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHksQyl9KSx0aGlzLnNldENvbW1lbnQoSSl9fSx7a2V5OiJyZW1vdmVDb21tZW50Iix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3ZhciB5PSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07aWYoIXRoaXMucmFuZ2UuZnJvbSl0aHJvdyBuZXcgRXJyb3IoJ0JlZm9yZSB1c2luZyB0aGlzIG1ldGhvZCwgZmlyc3Qgc2V0IGNlbGwgcmFuZ2UgKGhv''@;'; + put 'put ''dC5nZXRQbHVnaW4oImNvbW1lbnQiKS5zZXRSYW5nZSgpKScpO3RoaXMuaG90LnNldENlbGxNZXRhKHRoaXMucmFuZ2UuZnJvbS5yb3csdGhpcy5yYW5nZS5mcm9tLmNvbCxSZykseSYmdGhpcy5ob3QucmVuZGVyKCksdGhpcy5oaWRlKCl9fSx7a2V5OiJyZW1vdmVDb21tZW50QXRDZWxsIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl07dGhpcy5zZXRSYW5nZSh7ZnJvbTp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcyh5LEMpfSksdGhpcy5yZW1vdmVDb21tZW50KEkpfX0se2tl''@;'; + put 'put ''eToiZ2V0Q29tbWVudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRDb21tZW50TWV0YSh0aGlzLnJhbmdlLmZyb20ucm93LHRoaXMucmFuZ2UuZnJvbS5jb2wsSU8pfX0se2tleToiZ2V0Q29tbWVudEF0Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtyZXR1cm4gdGhpcy5nZXRD''@;'; + put 'put ''b21tZW50TWV0YSh5LEMsSU8pfX0se2tleToic2hvdyIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy5yYW5nZS5mcm9tKXRocm93IG5ldyBFcnJvcignQmVmb3JlIHVzaW5nIHRoaXMgbWV0aG9kLCBmaXJzdCBzZXQgY2VsbCByYW5nZSAoaG90LmdldFBsdWdpbigiY29tbWVudCIpLnNldFJh''@;'; + put 'put ''bmdlKCkpJyk7dmFyIHk9dGhpcy5yYW5nZS5mcm9tLEM9eS5yb3csST15LmNvbDtpZihDPDB8fEM+dGhpcy5ob3QuY291bnRTb3VyY2VSb3dzKCktMXx8STwwfHxJPnRoaXMuaG90LmNvdW50U291cmNlQ29scygpLTEpcmV0dXJuITE7dmFyIGo9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEodGhpcy5y''@;'; + put 'put ''YW5nZS5mcm9tLnJvdyx0aGlzLnJhbmdlLmZyb20uY29sKTtyZXR1cm4gdGhpcy5lZGl0b3Iuc2V0VmFsdWUoaltSZ10/altSZ11bSU9dOiIiKSx0aGlzLmVkaXRvci5zaG93KCksdGhpcy5yZWZyZXNoRWRpdG9yKCEwKSwhMH19LHtrZXk6InNob3dBdENlbGwiLHZhbHVlOmZ1bmN0aW9uKHks''@;'; + put 'put ''Qyl7cmV0dXJuIHRoaXMuc2V0UmFuZ2Uoe2Zyb206dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoeSxDKX0pLHRoaXMuc2hvdygpfX0se2tleToiaGlkZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVkaXRvci5oaWRlKCl9fSx7a2V5OiJyZWZyZXNoRWRpdG9yIix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e3ZhciB5LEMsST1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2lmKEl8fHRoaXMucmFuZ2UuZnJvbSYmdGhpcy5lZGl0b3IuaXNWaXNpYmxlKCkpe3ZhciBqPXRoaXMuaG90LHVlPWoucm93SW5kZXhNYXBwZXIsX2U9ai5jb2x1bW5JbmRl''@;'; + put 'put ''eE1hcHBlcixCZT10aGlzLnJhbmdlLmZyb20sTmU9QmUucm93LEtlPUJlLmNvbCxkdD11ZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KE5lKSxPdD1fZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEtlKSwkdD1udWxsPT09ZHQ7bnVsbD09PWR0JiYoZHQ9dWUuZ2V0UmVuZGVy''@;'; + put 'put ''YWJsZUZyb21WaXN1YWxJbmRleCh1ZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoTmUsLTEpKSksbnVsbD09PU90JiYoT3Q9X2UuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChfZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoS2UsLTEpKSk7dmFyIGZuPW51bGw9PT1kdCxMbj1udWxs''@;'; + put 'put ''PT09T3Q7ZHQ9bnVsbCE9PSh5PWR0KSYmdm9pZCAwIT09eT95OjAsT3Q9bnVsbCE9PShDPU90KSYmdm9pZCAwIT09Qz9DOjA7dmFyIGlyPXRoaXMuaG90LG1yPWlyLnJvb3RXaW5kb3csU3I9aXIudmlldy5fd3Qsd3I9U3Iud3RUYWJsZSxRcj13ci5nZXRDZWxsKHtyb3c6ZHQsY29sOk90fSks''@;'; + put 'put ''eWk9dGhpcy5nZXRDb21tZW50TWV0YShOZSxLZSwic3R5bGUiKTt5aT90aGlzLmVkaXRvci5zZXRTaXplKHlpLndpZHRoLHlpLmhlaWdodCk6dGhpcy5lZGl0b3IucmVzZXRTaXplKCk7dmFyIEtpPUxuPzA6d3IuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoT3QpLFNvPSR0JiYhZm4/RDEoUXIp''@;'; + put 'put ''OjAsUG89UXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksU2E9UG8ubGVmdCxKYT1Qby50b3AsbGE9UG8ud2lkdGgsYWw9UG8uaGVpZ2h0LExzPXRoaXMuZWRpdG9yLmdldFNpemUoKSxQMD1Mcy53aWR0aCxybz1Mcy5oZWlnaHQsZm89dGhpcy5ob3Qucm9vdFdpbmRvdyxJYT1mby5pbm5lcldp''@;'; + put 'put ''ZHRoLFhsPWZvLmlubmVySGVpZ2h0LEZuPXRoaXMuaG90LnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsWm49U2ErbXIuc2Nyb2xsWCtLaSxfcj1KYSttci5zY3JvbGxZK1NvO3RoaXMuaG90LmlzUnRsKCkmJihabi09UDArS2kpLHRoaXMuaG90LmlzTHRyKCkmJlNhK2xhK1AwPklhP1pu''@;'; + put 'put ''PVNhK21yLnNjcm9sbFgtUDAtMTp0aGlzLmhvdC5pc1J0bCgpJiZabjwtKEZuLnNjcm9sbFdpZHRoLUZuLmNsaWVudFdpZHRoKSYmKFpuPVNhK21yLnNjcm9sbFgrS2krMSksSmErcm8+WGwmJihfci09cm8tYWwrMSksdGhpcy5lZGl0b3Iuc2V0UG9zaXRpb24oWm4sX3IpLHRoaXMuZWRpdG9y''@;'; + put 'put ''LnNldFJlYWRPbmx5U3RhdGUodGhpcy5nZXRDb21tZW50TWV0YShOZSxLZSxGdGUpKX19fSx7a2V5OiJjaGVja1NlbGVjdGlvbkNvbW1lbnRzQ29uc2lzdGVuY3kiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZigheSlyZXR1cm4hMTt2''@;'; + put 'put ''YXIgQz0hMSxJPXkuZ2V0VG9wU3RhcnRDb3JuZXIoKTtyZXR1cm4gdGhpcy5nZXRDb21tZW50TWV0YShJLnJvdyxJLmNvbCxJTykmJihDPSEwKSxDfX0se2tleToidXBkYXRlQ29tbWVudE1ldGEiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgdWUsaj10aGlzLmhvdC5nZXRDZWxsTWV0YSh5''@;'; + put 'put ''LEMpW1JnXTtqP0laKHVlPWdoKGopLEkpOnVlPUksdGhpcy5ob3Quc2V0Q2VsbE1ldGEoeSxDLFJnLHVlKX19LHtrZXk6ImdldENvbW1lbnRNZXRhIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEoeSxDKTtpZihqW1JnXSlyZXR1cm4galtSZ11bSV19''@;'; + put 'put ''fSx7a2V5OiJvbk1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYodGhpcy5ob3QudmlldyYmdGhpcy5ob3Qudmlldy5fd3QmJiF0aGlzLnByZXZlbnRFZGl0b3JBdXRvU3dpdGNoJiYhdGhpcy50YXJnZXRJc0NvbW1lbnRUZXh0QXJlYSh5KSl7dmFyIEM9UzkoeS50YXJnZXQsIlREIiwi''@;'; + put 'put ''VEJPRFkiKSxJPW51bGw7QyYmKEk9dGhpcy5ob3QuZ2V0Q29vcmRzKEMpKSwoIUN8fHRoaXMucmFuZ2UuZnJvbSYmSSYmKHRoaXMucmFuZ2UuZnJvbS5yb3chPT1JLnJvd3x8dGhpcy5yYW5nZS5mcm9tLmNvbCE9PUkuY29sKSkmJnRoaXMuaGlkZSgpfX19LHtrZXk6Im9uTW91c2VPdmVyIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1QdGUuZ2V0KHRoaXMpLEk9dGhpcy5ob3Qucm9vdERvY3VtZW50O2lmKCEodGhpcy5wcmV2ZW50RWRpdG9yQXV0b1N3aXRjaHx8dGhpcy5lZGl0b3IuaXNGb2N1c2VkKCl8fHRsKHkudGFyZ2V0LCJ3dEJvcmRlciIpfHxDLmNlbGxCZWxvd0N1cnNvcj09''@;'; + put 'put ''PXkudGFyZ2V0KSYmdGhpcy5lZGl0b3IpaWYoQy5jZWxsQmVsb3dDdXJzb3I9SS5lbGVtZW50RnJvbVBvaW50KHkuY2xpZW50WCx5LmNsaWVudFkpLHRoaXMudGFyZ2V0SXNDZWxsV2l0aENvbW1lbnQoeSkpe3ZhciBqPXRoaXMuaG90Ll9jcmVhdGVDZWxsUmFuZ2UodGhpcy5ob3QuZ2V0Q29v''@;'; + put 'put ''cmRzKHkudGFyZ2V0KSk7dGhpcy5kaXNwbGF5U3dpdGNoLnNob3coail9ZWxzZSB3dyh5LnRhcmdldCxJKSYmIXRoaXMudGFyZ2V0SXNDb21tZW50VGV4dEFyZWEoeSkmJnRoaXMuZGlzcGxheVN3aXRjaC5oaWRlKCl9fSx7a2V5OiJvbk1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5w''@;'; + put 'put ''cmV2ZW50RWRpdG9yQXV0b1N3aXRjaD0hMX19LHtrZXk6Im9uQWZ0ZXJSZW5kZXJlciIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtDW1JnXSYmQ1tSZ11bSU9dJiZPMCh5LEMuY29tbWVudGVkQ2VsbENsYXNzTmFtZSl9fSx7a2V5OiJvbkVkaXRvckJsdXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5z''@;'; + put 'put ''ZXRDb21tZW50KCl9fSx7a2V5OiJvbkVkaXRvck1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSl7UHRlLmdldCh0aGlzKS50ZW1wRWRpdG9yRGltZW5zaW9ucz17d2lkdGg6RTIoeS50YXJnZXQpLGhlaWdodDpEMSh5LnRhcmdldCl9fX0se2tleToib25FZGl0b3JNb3VzZVVwIix2YWx1ZTpm''@;'; + put 'put ''dW5jdGlvbih5KXt2YXIgQz1QdGUuZ2V0KHRoaXMpLEk9RTIoeS50YXJnZXQpLGo9RDEoeS50YXJnZXQpOyhJIT09Qy50ZW1wRWRpdG9yRGltZW5zaW9ucy53aWR0aCsxfHxqIT09Qy50ZW1wRWRpdG9yRGltZW5zaW9ucy5oZWlnaHQrMikmJnRoaXMudXBkYXRlQ29tbWVudE1ldGEodGhpcy5y''@;'; + put 'put ''YW5nZS5mcm9tLnJvdyx0aGlzLnJhbmdlLmZyb20uY29sLEM4ZSh7fSwic3R5bGUiLHt3aWR0aDpJLGhlaWdodDpqfSkpfX0se2tleToib25Db250ZXh0TWVudUFkZENvbW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTt0aGlzLnBy''@;'; + put 'put ''ZXZlbnRFZGl0b3JBdXRvU3dpdGNoPSEwLHRoaXMuZGlzcGxheVN3aXRjaC5jYW5jZWxIaWRpbmcoKSx0aGlzLnNldFJhbmdlKHtmcm9tOnkuaGlnaGxpZ2h0fSksdGhpcy5zaG93KCksdGhpcy5ob3QuZGVzZWxlY3RDZWxsKCksdGhpcy5lZGl0b3IuZm9jdXMoKX19LHtrZXk6Im9uQ29udGV4''@;'; + put 'put ''dE1lbnVSZW1vdmVDb21tZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO3RoaXMucHJldmVudEVkaXRvckF1dG9Td2l0Y2g9ITAsQy5mb3JBbGwoZnVuY3Rpb24oSSxqKXtJPj0wJiZqPj0wJiZ5LnJlbW92ZUNvbW1lbnRB''@;'; + put 'put ''dENlbGwoSSxqLCExKX0pLHRoaXMuaG90LnJlbmRlcigpfX0se2tleToib25Db250ZXh0TWVudU1ha2VSZWFkT25seSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTt0aGlzLnByZXZlbnRFZGl0b3JBdXRvU3dpdGNoPSEwLEMu''@;'; + put 'put ''Zm9yQWxsKGZ1bmN0aW9uKEksail7aWYoST49MCYmaj49MCl7dmFyIHVlPSEheS5nZXRDb21tZW50TWV0YShJLGosRnRlKTt5LnVwZGF0ZUNvbW1lbnRNZXRhKEksaixDOGUoe30sRnRlLCF1ZSkpfX0pfX0se2tleToiYWRkVG9Db250ZXh0TWVudSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9''@;'; + put 'put ''dGhpcyxJPWZ1bmN0aW9uKCl7cmV0dXJuIEMuaG90LnJvd0luZGV4TWFwcGVyLmdldFJlbmRlcmFibGVJbmRleGVzTGVuZ3RoKCk+MCYmQy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUluZGV4ZXNMZW5ndGgoKT4wfTt5Lml0ZW1zLnB1c2goe25hbWU6Ii0tLS0tLS0tLSJ9''@;'; + put 'put ''LHtrZXk6ImNvbW1lbnRzQWRkRWRpdCIsbmFtZTpmdW5jdGlvbigpe3JldHVybiBDLmNoZWNrU2VsZWN0aW9uQ29tbWVudHNDb25zaXN0ZW5jeSgpP0MuaG90LmdldFRyYW5zbGF0ZWRQaHJhc2UoVjRlKTpDLmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKE40ZSl9LGNhbGxiYWNrOmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIEMub25Db250ZXh0TWVudUFkZENvbW1lbnQoKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hSSgpfHwhKEMuaG90LmdldFNlbGVjdGVkTGFzdCgpJiYhQy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpKX19LHtrZXk6ImNvbW1lbnRzUmVtb3ZlIixuYW1l''@;'; + put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShqNGUpfSxjYWxsYmFjazpmdW5jdGlvbigpe3JldHVybiBDLm9uQ29udGV4dE1lbnVSZW1vdmVDb21tZW50KCl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIUkoKXx8IShDLmhvdC5nZXRTZWxlY3RlZExhc3Qo''@;'; + put 'put ''KSYmIUMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSl9fSx7a2V5OiJjb21tZW50c1JlYWRPbmx5IixuYW1lOmZ1bmN0aW9uKCl7dmFyIHVlPXRoaXMsX2U9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFo0ZSk7cmV0dXJuIE9nKHRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3Qo''@;'; + put 'put ''KSxmdW5jdGlvbihOZSxLZSl7dmFyIGR0PXVlLmdldENlbGxNZXRhKE5lLEtlKVtSZ107aWYoZHQmJihkdD1kdFtGdGVdKSxkdClyZXR1cm4hMH0pJiYoX2U9QjkoX2UpKSxfZX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkNvbnRleHRNZW51TWFrZVJlYWRPbmx5KCl9LGRpc2Fi''@;'; + put 'put ''bGVkOmZ1bmN0aW9uKCl7cmV0dXJuIUkoKXx8IShDLmhvdC5nZXRTZWxlY3RlZExhc3QoKSYmIUMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSYmQy5jaGVja1NlbGVjdGlvbkNvbW1lbnRzQ29uc2lzdGVuY3koKSl9fSl9fSx7a2V5OiJnZXREaXNwbGF5RGVsYXlTZXR0aW5n''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNldHRpbmdzKClbUzhlXTtpZih4bCh5KSlyZXR1cm4geS5kaXNwbGF5RGVsYXl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWRpdG9yJiZ0aGlzLmVkaXRvci5kZXN0cm95KCksdGhpcy5kaXNwbGF5''@;'; + put 'put ''U3dpdGNoJiZ0aGlzLmRpc3BsYXlTd2l0Y2guZGVzdHJveSgpLFlTKFA5KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFM4ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIDYwfX1dKSxofShZcyk7ZnVuY3Rpb24gSUVlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFdvdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIHpvdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhp''@;'; + put 'put ''cyxkKSx0aGlzLmhvdD1nLHRoaXMuY29tbWFuZHM9e30sdGhpcy5jb21tb25DYWxsYmFjaz1udWxsfXJldHVybiBmdW5jdGlvbiBHb3QoZCxnLGgpe2cmJklFZShkLnByb3RvdHlwZSxnKSxoJiZJRWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6''@;'; + put 'put ''ITF9KX0oZCxbe2tleToicmVnaXN0ZXJDb21tYW5kIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMuY29tbWFuZHNbaF09dn19LHtrZXk6InNldENvbW1vbkNhbGxiYWNrIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmNvbW1vbkNhbGxiYWNrPWh9fSx7a2V5OiJleGVjdXRlIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbihoKXtmb3IodmFyIHY9dGhpcyx5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoeT4xP3ktMTowKSxJPTE7STx5O0krKylDW0ktMV09YXJndW1lbnRzW0ldO3ZhciBqPWguc3BsaXQoIjoiKSx1ZT1qWzBdLF9lPTI9PT1qLmxlbmd0aD9qWzFdOm51bGwsQmU9dGhpcy5jb21tYW5k''@;'; + put 'put ''c1t1ZV07aWYoIUJlKXRocm93IG5ldyBFcnJvcigiTWVudSBjb21tYW5kICciLmNvbmNhdCh1ZSwiJyBub3QgZXhpc3RzLiIpKTtpZihfZSYmQmUuc3VibWVudSYmKEJlPVlvdChfZSxCZS5zdWJtZW51Lml0ZW1zKSksITAhPT1CZS5kaXNhYmxlZCYmKCJmdW5jdGlvbiIhPXR5cGVvZiBCZS5k''@;'; + put 'put ''aXNhYmxlZHx8ITAhPT1CZS5kaXNhYmxlZC5jYWxsKHRoaXMuaG90KSkmJiFvMShCZSwic3VibWVudSIpKXt2YXIgTmU9W107ImZ1bmN0aW9uIj09dHlwZW9mIEJlLmNhbGxiYWNrJiZOZS5wdXNoKEJlLmNhbGxiYWNrKSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5jb21tb25DYWxsYmFjayYm''@;'; + put 'put ''TmUucHVzaCh0aGlzLmNvbW1vbkNhbGxiYWNrKSxDLnVuc2hpZnQoai5qb2luKCI6IikpLFVyKE5lLGZ1bmN0aW9uKEtlKXtyZXR1cm4gS2UuYXBwbHkodi5ob3QsQyl9KX19fV0pLGR9KCk7ZnVuY3Rpb24gWW90KGQsZyl7dmFyIGg7cmV0dXJuIFVyKGcsZnVuY3Rpb24odil7dmFyIHk9di5r''@;'; + put 'put ''ZXk/di5rZXkuc3BsaXQoIjoiKTpudWxsO2lmKEFycmF5LmlzQXJyYXkoeSkmJnlbMV09PT1kKXJldHVybiBoPXYsITF9KSxofWNvbnN0IERFZT1Xb3Q7dmFyIFBwPSJhbGlnbm1lbnQiLEh0ZT0iY2xlYXJfY29sdW1uIixnej0iY29sX2xlZnQiLG16PSJjb2xfcmlnaHQiLHZ6PSJtYWtlX3Jl''@;'; + put 'put ''YWRfb25seSIsTnRlPSJyZWRvIjtmdW5jdGlvbiBMRWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn12YXIgQXo9InJlbW92ZV9jb2wiO2Z1bmN0aW9uIE9FZShkLGcp''@;'; + put 'put ''eyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fXZhciBzMyxWdGU9InJlbW92ZV9yb3ciLGp0ZT0icm93X2Fib3ZlIixadGU9InJvd19iZWxvdyIseXo9Im5vX2l0ZW1zIix6dGU9''@;'; + put 'put ''InVuZG8iO2Z1bmN0aW9uIHk0KGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgUkVlPVtqdGUsWnRlLGd6LG16LEh0ZSxWdGUsQXosenRl''@;'; + put 'put ''LE50ZSx2eixQcCxXbCx5el0sQkVlPSh5NChzMz17fSxXbCxmdW5jdGlvbiB5b3QoKXtyZXR1cm57bmFtZTpXbH19KSx5NChzMyx5eixmdW5jdGlvbiBkYXQoKXtyZXR1cm57a2V5Onl6LG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKF80ZSl9LGRpc2Fi''@;'; + put 'put ''bGVkOiEwLGlzQ29tbWFuZDohMX19KSx5NChzMyxqdGUsZnVuY3Rpb24gZmF0KCl7cmV0dXJue2tleTpqdGUsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoQzRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oZyxoKXt2YXIgdj10aGlzLnNlbGVjdGlvbi5pc1Nl''@;'; + put 'put ''bGVjdGVkQnlDb3JuZXIoKSx5PTA7dnx8KHk9aFtNYXRoLm1heChoLmxlbmd0aC0xLDApXS5zdGFydC5yb3cpLHRoaXMuYWx0ZXIoImluc2VydF9yb3ciLHksMSwiQ29udGV4dE1lbnUucm93QWJvdmUiKSx2JiZ0aGlzLnNlbGVjdEFsbCgpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFH''@;'; + put 'put ''Uyh0aGlzKXx8KHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpPzA9PT10aGlzLmNvdW50Um93cygpOnRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpfHx0aGlzLmNvdW50Um93cygpPj10aGlzLmdldFNldHRpbmdzKCkubWF4Um93cyl9LGhpZGRlbjpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiF0aGlzLmdldFNldHRpbmdzKCkuYWxsb3dJbnNlcnRSb3d9fX0pLHk0KHMzLFp0ZSxmdW5jdGlvbiBoYXQoKXtyZXR1cm57a2V5Olp0ZSxuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShrNGUpfSxjYWxsYmFjazpmdW5jdGlv''@;'; + put 'put ''bihnLGgpe3ZhciB2PXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpLHk9MDtpZih2KXk9dGhpcy5jb3VudFJvd3MoKTtlbHNle3ZhciBDLEk9aFtNYXRoLm1heChoLmxlbmd0aC0xLDApXSxqPW51bGw9PUl8fG51bGw9PT0oQz1JLmVuZCl8fHZvaWQgMD09PUM/dm9pZCAwOkMu''@;'; + put 'put ''cm93O3k9VG8oaik/aisxOjB9dGhpcy5hbHRlcigiaW5zZXJ0X3JvdyIseSwxLCJDb250ZXh0TWVudS5yb3dCZWxvdyIpLHYmJnRoaXMuc2VsZWN0QWxsKCl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIUdTKHRoaXMpfHwhdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkm''@;'; + put 'put ''Jih0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKXx8dGhpcy5jb3VudFJvd3MoKT49dGhpcy5nZXRTZXR0aW5ncygpLm1heFJvd3MpfSxoaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5nZXRTZXR0aW5ncygpLmFsbG93SW5zZXJ0Um93fX19KSx5NChzMyxneixm''@;'; + put 'put ''dW5jdGlvbiBKb3QoKXtyZXR1cm57a2V5Omd6LG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFM0ZSl9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCksaD10aGlzLmlzUnRsKCk/dGhpcy5j''@;'; + put 'put ''b3VudENvbHMoKTowO2lmKCFnKXt2YXIgdj10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoVG8odikpe3ZhciBDPXYuZ2V0VG9wTGVmdENvcm5lcigpLmNvbDtoPXRoaXMuaXNSdGwoKT9DKzE6Q319dGhpcy5hbHRlcigiaW5zZXJ0X2NvbCIsaCwxLCJDb250ZXh0TWVudS5jb2x1bW5M''@;'; + put 'put ''ZWZ0IiksZyYmdGhpcy5zZWxlY3RBbGwoKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc0NvbHVtbk1vZGlmaWNhdGlvbkFsbG93ZWQoKXx8IUdTKHRoaXMpfHwodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCk/MD09PXRoaXMuY291bnRDb2xzKCk6dGhpcy5z''@;'; + put 'put ''ZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCl8fHRoaXMuY291bnRDb2xzKCk+PXRoaXMuZ2V0U2V0dGluZ3MoKS5tYXhDb2xzKX0saGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZ2V0U2V0dGluZ3MoKS5hbGxvd0luc2VydENvbHVtbn19fSkseTQoczMsbXosZnVuY3Rpb24g''@;'; + put 'put ''WG90KCl7cmV0dXJue2tleTpteixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShNNGUpfSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBnPXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpLGg9dGhpcy5pc1J0bCgpPzA6dGhpcy5jb3VudENv''@;'; + put 'put ''bHMoKTtpZighZyl7dmFyIHY9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKFRvKHYpKXt2YXIgQz12LmdldFRvcFJpZ2h0Q29ybmVyKCkuY29sO2g9dGhpcy5pc1J0bCgpP0M6QysxfX10aGlzLmFsdGVyKCJpbnNlcnRfY29sIixoLDEsIkNvbnRleHRNZW51LmNvbHVtblJpZ2h0Iiks''@;'; + put 'put ''ZyYmdGhpcy5zZWxlY3RBbGwoKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc0NvbHVtbk1vZGlmaWNhdGlvbkFsbG93ZWQoKXx8IUdTKHRoaXMpfHwhdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkmJih0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlSb3dI''@;'; + put 'put ''ZWFkZXIoKXx8dGhpcy5jb3VudENvbHMoKT49dGhpcy5nZXRTZXR0aW5ncygpLm1heENvbHMpfSxoaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5nZXRTZXR0aW5ncygpLmFsbG93SW5zZXJ0Q29sdW1ufX19KSx5NChzMyxIdGUsZnVuY3Rpb24gUW90KCl7cmV0dXJue2tleTpIdGUsbmFt''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoTDRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oZyxoKXt2YXIgdj1oWzBdLnN0YXJ0LmNvbCx5PWhbMF0uZW5kLmNvbDt0aGlzLmNvdW50Um93cygpJiZ0aGlzLnBvcHVsYXRlRnJvbUFycmF5KDAsdixbW251bGxdXSxN''@;'; + put 'put ''YXRoLm1heChoWzBdLnN0YXJ0LnJvdyxoWzBdLmVuZC5yb3cpLHksIkNvbnRleHRNZW51LmNsZWFyQ29sdW1uIil9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIUdTKHRoaXMpfHwhdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl9fX0pLHk0KHMzLFZ0ZSxmdW5j''@;'; + put 'put ''dGlvbiBjYXQoKXtyZXR1cm57a2V5OlZ0ZSxuYW1lOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5nZXRTZWxlY3RlZCgpLGg9MDtpZihnKWlmKGcubGVuZ3RoPjEpaD0xO2Vsc2V7dmFyIHY9ZnVuY3Rpb24gb2F0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHVhdChkKXtpZihBcnJheS5pc0FycmF5KGQp''@;'; + put 'put ''KXJldHVybiBkfShkKXx8ZnVuY3Rpb24gc2F0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNh''@;'; + put 'put ''bGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2''@;'; + put 'put ''fX0oZCxnKXx8ZnVuY3Rpb24gbGF0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBPRWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0''@;'; + put 'put ''cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIE9FZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gYWF0KCl7''@;'; + put 'put ''dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0o''@;'; + put 'put ''Z1swXSwzKTt2WzBdLXZbMl0hPTAmJihoPTEpfXJldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoRTRlLGgpfSxjYWxsYmFjazpmdW5jdGlvbigpe3RoaXMuYWx0ZXIoInJlbW92ZV9yb3ciLGZ1bmN0aW9uIG0kZShkKXt2YXIgZz1wTyhkKTtpZigwPT09Z3x8MT09PWcpcmV0dXJuW107''@;'; + put 'put ''dmFyIGg9bHooZyksdj1uZXcgU2V0O3JldHVybiBVcihkLGZ1bmN0aW9uKEkpe3ZhciB1ZT1lU2UoaChJKSwzKSxCZT11ZVsyXSxOZT1NYXRoLm1heCh1ZVswXSwwKTtVcihBcnJheS5mcm9tKG5ldyBBcnJheShCZS1OZSsxKSxmdW5jdGlvbihkdCxPdCl7cmV0dXJuIE5lK090fSksZnVuY3Rp''@;'; + put 'put ''b24oZHQpe3YuaGFzKGR0KXx8di5hZGQoZHQpfSl9KSxTdShBcnJheS5mcm9tKHYpLnNvcnQoZnVuY3Rpb24oSSxqKXtyZXR1cm4gSS1qfSksZnVuY3Rpb24oSSxqLHVlLF9lKXtyZXR1cm4gMCE9PXVlJiZqPT09X2VbdWUtMV0rMT9JW0kubGVuZ3RoLTFdWzFdKz0xOkkucHVzaChbaiwxXSks''@;'; + put 'put ''SX0sW10pfSh0aGlzLmdldFNlbGVjdGVkKCkpLDEsIkNvbnRleHRNZW51LnJlbW92ZVJvdyIpfSxkaXNhYmxlZDpmdW5jdGlvbigpe2lmKCFHUyh0aGlzKSlyZXR1cm4hMDt2YXIgaD10aGlzLmNvdW50Um93cygpO3JldHVybiB0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKT8w''@;'; + put 'put ''PT09aDp0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKXx8MD09PWh9LGhpZGRlbjpmdW5jdGlvbigpe3JldHVybiF0aGlzLmdldFNldHRpbmdzKCkuYWxsb3dSZW1vdmVSb3d9fX0pLHk0KHMzLEF6LGZ1bmN0aW9uIGlhdCgpe3JldHVybntrZXk6QXosbmFtZTpmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciBnPXRoaXMuZ2V0U2VsZWN0ZWQoKSxoPTA7aWYoZylpZihnLmxlbmd0aD4xKWg9MTtlbHNle3ZhciB2PWZ1bmN0aW9uIHFvdChkLGcpe3JldHVybiBmdW5jdGlvbiByYXQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIG5hdChkLGcpe3Zh''@;'; + put 'put ''ciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1''@;'; + put 'put ''c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIHRhdChkLGcpe2lmKGQpe2lm''@;'; + put 'put ''KCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gTEVlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aCly''@;'; + put 'put ''ZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBMRWUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIGVhdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1w''@;'; + put 'put ''dCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGdbMF0sNCk7dlsxXS12WzNdIT0wJiYoaD0xKX1yZXR1cm4g''@;'; + put 'put ''dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKHg0ZSxoKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt0aGlzLmFsdGVyKCJyZW1vdmVfY29sIixmdW5jdGlvbiBnJGUoZCl7dmFyIGc9cE8oZCk7aWYoMD09PWd8fDE9PT1nKXJldHVybltdO3ZhciBoPWx6KGcpLHY9bmV3IFNldDtyZXR1cm4gVXIoZCxm''@;'; + put 'put ''dW5jdGlvbihJKXt2YXIgdWU9ZVNlKGgoSSksNCksQmU9dWVbM10sTmU9TWF0aC5tYXgodWVbMV0sMCk7VXIoQXJyYXkuZnJvbShuZXcgQXJyYXkoQmUtTmUrMSksZnVuY3Rpb24oZHQsT3Qpe3JldHVybiBOZStPdH0pLGZ1bmN0aW9uKGR0KXt2LmhhcyhkdCl8fHYuYWRkKGR0KX0pfSksU3Uo''@;'; + put 'put ''QXJyYXkuZnJvbSh2KS5zb3J0KGZ1bmN0aW9uKEksail7cmV0dXJuIEktan0pLGZ1bmN0aW9uKEksaix1ZSxfZSl7cmV0dXJuIDAhPT11ZSYmaj09PV9lW3VlLTFdKzE/SVtJLmxlbmd0aC0xXVsxXSs9MTpJLnB1c2goW2osMV0pLEl9LFtdKX0odGhpcy5nZXRTZWxlY3RlZCgpKSxudWxsLCJD''@;'; + put 'put ''b250ZXh0TWVudS5yZW1vdmVDb2x1bW4iKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtpZighdGhpcy5pc0NvbHVtbk1vZGlmaWNhdGlvbkFsbG93ZWQoKSlyZXR1cm4hMDtpZighR1ModGhpcykpcmV0dXJuITA7dmFyIGg9dGhpcy5jb3VudENvbHMoKTtyZXR1cm4gdGhpcy5zZWxlY3Rpb24uaXNT''@;'; + put 'put ''ZWxlY3RlZEJ5Q29ybmVyKCk/MD09PWg6dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCl8fDA9PT1ofSxoaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5nZXRTZXR0aW5ncygpLmFsbG93UmVtb3ZlQ29sdW1ufX19KSx5NChzMyx6dGUsZnVuY3Rpb24gcGF0KCl7cmV0''@;'; + put 'put ''dXJue2tleTp6dGUsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoVDRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt0aGlzLnVuZG8oKX0saGlkZGVuOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5nZXRQbHVnaW4oInVuZG9SZWRvIik7cmV0dXJuIWd8fCFnLmlz''@;'; + put 'put ''RW5hYmxlZCgpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiF0aGlzLmdldFBsdWdpbigidW5kb1JlZG8iKS5pc1VuZG9BdmFpbGFibGUoKX19fSkseTQoczMsTnRlLGZ1bmN0aW9uICRvdCgpe3JldHVybntrZXk6TnRlLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xh''@;'; + put 'put ''dGVkUGhyYXNlKEk0ZSl9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7dGhpcy5yZWRvKCl9LGhpZGRlbjpmdW5jdGlvbigpe3ZhciBnPXRoaXMuZ2V0UGx1Z2luKCJ1bmRvUmVkbyIpO3JldHVybiFnfHwhZy5pc0VuYWJsZWQoKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5nZXRQbHVn''@;'; + put 'put ''aW4oInVuZG9SZWRvIikuaXNSZWRvQXZhaWxhYmxlKCl9fX0pLHk0KHMzLHZ6LGZ1bmN0aW9uIEtvdCgpe3JldHVybntrZXk6dnosbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoRDRlKTtyZXR1cm4gT2codGhpcy5nZXRTZWxlY3RlZFJhbmdl''@;'; + put 'put ''KCksZnVuY3Rpb24oeSxDKXtyZXR1cm4gZy5nZXRDZWxsTWV0YSh5LEMpLnJlYWRPbmx5fSkmJihoPUI5KGgpKSxofSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSx2PU9nKGgsZnVuY3Rpb24oeSxDKXtyZXR1cm4gZy5nZXRDZWxsTWV0''@;'; + put 'put ''YSh5LEMpLnJlYWRPbmx5fSk7VXIoaCxmdW5jdGlvbih5KXt5LmZvckFsbChmdW5jdGlvbihDLEkpe0M+PTAmJkk+PTAmJmcuc2V0Q2VsbE1ldGEoQyxJLCJyZWFkT25seSIsIXYpfSl9KSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiEoIXRoaXMuc2VsZWN0aW9u''@;'; + put 'put ''LmlzU2VsZWN0ZWRCeUNvcm5lcigpJiYwIT09dGhpcy5jb3VudFJvd3MoKSYmMCE9PXRoaXMuY291bnRDb2xzKCkmJnRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpJiYwIT09dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCkubGVuZ3RoKX19fSkseTQoczMsUHAsZnVuY3Rpb24gVW90KCl7cmV0dXJue2tl''@;'; + put 'put ''eTpQcCxuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZSh6NGUpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5jb3VudFJvd3MoKXx8MD09PXRoaXMuY291bnRDb2xzKCl8fCEodGhpcy5nZXRTZWxlY3RlZFJhbmdlKCkmJiF0aGlzLnNl''@;'; + put 'put ''bGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSl9LHN1Ym1lbnU6e2l0ZW1zOlt7a2V5OiIiLmNvbmNhdChQcCwiOmxlZnQiKSxuYW1lOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShHNGUpO3JldHVybiBPZyh0aGlzLmdldFNlbGVjdGVkUmFuZ2Uo''@;'; + put 'put ''KSxmdW5jdGlvbih5LEMpe3ZhciBJPWcuZ2V0Q2VsbE1ldGEoeSxDKS5jbGFzc05hbWU7aWYoSSYmLTEhPT1JLmluZGV4T2YoImh0TGVmdCIpKXJldHVybiEwfSkmJihoPUI5KGgpKSxofSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSx2''@;'; + put 'put ''PVdTKGgsZnVuY3Rpb24oSSxqKXtyZXR1cm4gZy5nZXRDZWxsTWV0YShJLGopLmNsYXNzTmFtZX0pLHk9Imhvcml6b250YWwiLEM9Imh0TGVmdCI7dGhpcy5ydW5Ib29rcygiYmVmb3JlQ2VsbEFsaWdubWVudCIsdixoLHksQyksUHcoaCx5LEMsZnVuY3Rpb24oSSxqKXtyZXR1cm4gZy5nZXRD''@;'; + put 'put ''ZWxsTWV0YShJLGopfSxmdW5jdGlvbihJLGosdWUsX2Upe3JldHVybiBnLnNldENlbGxNZXRhKEksaix1ZSxfZSl9KSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se2tleToiIi5jb25jYXQoUHAsIjpjZW50ZXIiKSxuYW1lOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPXRoaXMuZ2V0VHJh''@;'; + put 'put ''bnNsYXRlZFBocmFzZShXNGUpO3JldHVybiBPZyh0aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSxmdW5jdGlvbih5LEMpe3ZhciBJPWcuZ2V0Q2VsbE1ldGEoeSxDKS5jbGFzc05hbWU7aWYoSSYmLTEhPT1JLmluZGV4T2YoImh0Q2VudGVyIikpcmV0dXJuITB9KSYmKGg9QjkoaCkpLGh9LGNhbGxi''@;'; + put 'put ''YWNrOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLHY9V1MoaCxmdW5jdGlvbihJLGope3JldHVybiBnLmdldENlbGxNZXRhKEksaikuY2xhc3NOYW1lfSkseT0iaG9yaXpvbnRhbCIsQz0iaHRDZW50ZXIiO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxB''@;'; + put 'put ''bGlnbm1lbnQiLHYsaCx5LEMpLFB3KGgseSxDLGZ1bmN0aW9uKEksail7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxqKX0sZnVuY3Rpb24oSSxqLHVlLF9lKXtyZXR1cm4gZy5zZXRDZWxsTWV0YShJLGosdWUsX2UpfSksdGhpcy5yZW5kZXIoKX0sZGlzYWJsZWQ6ITF9LHtrZXk6IiIuY29uY2F0''@;'; + put 'put ''KFBwLCI6cmlnaHQiKSxuYW1lOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShZNGUpO3JldHVybiBPZyh0aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSxmdW5jdGlvbih5LEMpe3ZhciBJPWcuZ2V0Q2VsbE1ldGEoeSxDKS5jbGFzc05hbWU7aWYoSSYmLTEh''@;'; + put 'put ''PT1JLmluZGV4T2YoImh0UmlnaHQiKSlyZXR1cm4hMH0pJiYoaD1COShoKSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLGg9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksdj1XUyhoLGZ1bmN0aW9uKEksail7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxqKS5jbGFzc05hbWV9KSx5''@;'; + put 'put ''PSJob3Jpem9udGFsIixDPSJodFJpZ2h0Ijt0aGlzLnJ1bkhvb2tzKCJiZWZvcmVDZWxsQWxpZ25tZW50Iix2LGgseSxDKSxQdyhoLHksQyxmdW5jdGlvbihJLGope3JldHVybiBnLmdldENlbGxNZXRhKEksail9LGZ1bmN0aW9uKEksaix1ZSxfZSl7cmV0dXJuIGcuc2V0Q2VsbE1ldGEoSSxq''@;'; + put 'put ''LHVlLF9lKX0pLHRoaXMucmVuZGVyKCl9LGRpc2FibGVkOiExfSx7a2V5OiIiLmNvbmNhdChQcCwiOmp1c3RpZnkiKSxuYW1lOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShVNGUpO3JldHVybiBPZyh0aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSxmdW5j''@;'; + put 'put ''dGlvbih5LEMpe3ZhciBJPWcuZ2V0Q2VsbE1ldGEoeSxDKS5jbGFzc05hbWU7aWYoSSYmLTEhPT1JLmluZGV4T2YoImh0SnVzdGlmeSIpKXJldHVybiEwfSkmJihoPUI5KGgpKSxofSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSx2PVdT''@;'; + put 'put ''KGgsZnVuY3Rpb24oSSxqKXtyZXR1cm4gZy5nZXRDZWxsTWV0YShJLGopLmNsYXNzTmFtZX0pLHk9Imhvcml6b250YWwiLEM9Imh0SnVzdGlmeSI7dGhpcy5ydW5Ib29rcygiYmVmb3JlQ2VsbEFsaWdubWVudCIsdixoLHksQyksUHcoaCx5LEMsZnVuY3Rpb24oSSxqKXtyZXR1cm4gZy5nZXRD''@;'; + put 'put ''ZWxsTWV0YShJLGopfSxmdW5jdGlvbihJLGosdWUsX2Upe3JldHVybiBnLnNldENlbGxNZXRhKEksaix1ZSxfZSl9KSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se25hbWU6V2x9LHtrZXk6IiIuY29uY2F0KFBwLCI6dG9wIiksbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlz''@;'; + put 'put ''LmdldFRyYW5zbGF0ZWRQaHJhc2UoUTRlKTtyZXR1cm4gT2codGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksZnVuY3Rpb24oeSxDKXt2YXIgST1nLmdldENlbGxNZXRhKHksQykuY2xhc3NOYW1lO2lmKEkmJi0xIT09SS5pbmRleE9mKCJodFRvcCIpKXJldHVybiEwfSkmJihoPUI5KGgpKSxofSxj''@;'; + put 'put ''YWxsYmFjazpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSx2PVdTKGgsZnVuY3Rpb24oSSxqKXtyZXR1cm4gZy5nZXRDZWxsTWV0YShJLGopLmNsYXNzTmFtZX0pLHk9InZlcnRpY2FsIixDPSJodFRvcCI7dGhpcy5ydW5Ib29rcygiYmVmb3JlQ2VsbEFs''@;'; + put 'put ''aWdubWVudCIsdixoLHksQyksUHcoaCx5LEMsZnVuY3Rpb24oSSxqKXtyZXR1cm4gZy5nZXRDZWxsTWV0YShJLGopfSxmdW5jdGlvbihJLGosdWUsX2Upe3JldHVybiBnLnNldENlbGxNZXRhKEksaix1ZSxfZSl9KSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se2tleToiIi5jb25jYXQo''@;'; + put 'put ''UHAsIjptaWRkbGUiKSxuYW1lOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShKNGUpO3JldHVybiBPZyh0aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSxmdW5jdGlvbih5LEMpe3ZhciBJPWcuZ2V0Q2VsbE1ldGEoeSxDKS5jbGFzc05hbWU7aWYoSSYmLTEh''@;'; + put 'put ''PT1JLmluZGV4T2YoImh0TWlkZGxlIikpcmV0dXJuITB9KSYmKGg9QjkoaCkpLGh9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLHY9V1MoaCxmdW5jdGlvbihJLGope3JldHVybiBnLmdldENlbGxNZXRhKEksaikuY2xhc3NOYW1lfSks''@;'; + put 'put ''eT0idmVydGljYWwiLEM9Imh0TWlkZGxlIjt0aGlzLnJ1bkhvb2tzKCJiZWZvcmVDZWxsQWxpZ25tZW50Iix2LGgseSxDKSxQdyhoLHksQyxmdW5jdGlvbihJLGope3JldHVybiBnLmdldENlbGxNZXRhKEksail9LGZ1bmN0aW9uKEksaix1ZSxfZSl7cmV0dXJuIGcuc2V0Q2VsbE1ldGEoSSxq''@;'; + put 'put ''LHVlLF9lKX0pLHRoaXMucmVuZGVyKCl9LGRpc2FibGVkOiExfSx7a2V5OiIiLmNvbmNhdChQcCwiOmJvdHRvbSIpLG5hbWU6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLGg9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFg0ZSk7cmV0dXJuIE9nKHRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLGZ1bmN0''@;'; + put 'put ''aW9uKHksQyl7dmFyIEk9Zy5nZXRDZWxsTWV0YSh5LEMpLmNsYXNzTmFtZTtpZihJJiYtMSE9PUkuaW5kZXhPZigiaHRCb3R0b20iKSlyZXR1cm4hMH0pJiYoaD1COShoKSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLGg9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksdj1XUyho''@;'; + put 'put ''LGZ1bmN0aW9uKEksail7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxqKS5jbGFzc05hbWV9KSx5PSJ2ZXJ0aWNhbCIsQz0iaHRCb3R0b20iO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLHYsaCx5LEMpLFB3KGgseSxDLGZ1bmN0aW9uKEksail7cmV0dXJuIGcuZ2V0Q2VsbE1l''@;'; + put 'put ''dGEoSSxqKX0sZnVuY3Rpb24oSSxqLHVlLF9lKXtyZXR1cm4gZy5zZXRDZWxsTWV0YShJLGosdWUsX2UpfSksdGhpcy5yZW5kZXIoKX0sZGlzYWJsZWQ6ITF9XX19fSksczMpO2Z1bmN0aW9uIFBFZSgpe3ZhciBkPXt9O3JldHVybiBHbChCRWUsZnVuY3Rpb24oZyxoKXtkW2hdPWcoKX0pLGR9''@;'; + put 'put ''ZnVuY3Rpb24gZ2F0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gRkVlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxl''@;'; + put 'put ''PXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIHZhdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAh''@;'; + put 'put ''PT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGw7Z2F0KHRoaXMsZCksdGhpcy5ob3Q9Zyx0aGlzLnByZWRlZmluZWRJdGVtcz1QRWUoKSx0aGlzLmRlZmF1bHRPcmRlclBhdHRlcm49aH1yZXR1cm4gZnVuY3Rpb24gbWF0KGQsZyxoKXtnJiZGRWUoZC5wcm90b3R5cGUsZyksaCYmRkVl''@;'; + put 'put ''KGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldFByZWRlZmluZWRJdGVtcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcyx5PXt9O3RoaXMuZGVmYXVsdE9yZGVyUGF0dGVybi5sZW5ndGg9MCxHbChoLGZ1bmN0''@;'; + put 'put ''aW9uKEMsSSl7dmFyIGo9IiI7Qy5uYW1lPT09V2w/KHlbV2xdPUMsaj1XbCk6aXNOYU4ocGFyc2VJbnQoSSwxMCkpPyhDLmtleT12b2lkIDA9PT1DLmtleT9JOkMua2V5LHlbSV09QyxqPUMua2V5KTooeVtDLmtleV09QyxqPUMua2V5KSx2LmRlZmF1bHRPcmRlclBhdHRlcm4ucHVzaChqKX0p''@;'; + put 'put ''LHRoaXMucHJlZGVmaW5lZEl0ZW1zPXl9fSx7a2V5OiJnZXRJdGVtcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbDtyZXR1cm4gQWF0KGgsdGhpcy5kZWZhdWx0T3JkZXJQYXR0ZXJuLHRo''@;'; + put 'put ''aXMucHJlZGVmaW5lZEl0ZW1zKX19XSksZH0oKTtmdW5jdGlvbiBBYXQoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbCxnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sx''@;'; + put 'put ''XTpbXSxoPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fSx2PVtdLHk9ZDtyZXR1cm4geSYmeS5pdGVtcz95PXkuaXRlbXM6QXJyYXkuaXNBcnJheSh5KXx8KHk9ZykseGwoeSk/R2woeSxmdW5jdGlvbihDLEkpe3ZhciBqPWhbInN0cmlu''@;'; + put 'put ''ZyI9PXR5cGVvZiBDP0M6SV07anx8KGo9QykseGwoQyk/STEoaixDKToic3RyaW5nIj09dHlwZW9mIGomJihqPXtuYW1lOmp9KSx2b2lkIDA9PT1qLmtleSYmKGoua2V5PUkpLHYucHVzaChqKX0pOlVyKHksZnVuY3Rpb24oQyxJKXt2YXIgaj1oW0NdOyFqJiZSRWUuaW5kZXhPZihDKT49MHx8''@;'; + put 'put ''KGp8fChqPXtuYW1lOkMsa2V5OiIiLmNvbmNhdChJKX0pLHhsKEMpJiZJMShqLEMpLHZvaWQgMD09PWoua2V5JiYoai5rZXk9SSksdi5wdXNoKGopKX0pLHZ9Y29uc3QgSEVlPXZhdDtmdW5jdGlvbiBORWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVu''@;'; + put 'put ''dW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgYmF0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyFmdW5jdGlvbiB5YXQoZCxnKXtpZigh''@;'; + put 'put ''KGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxkKTt2YXIgQyxJLGosdWUsX2UsQmUsdj1uTyhoKSx5PWJTKGgpO3RoaXMucm9vdFdpbmRvdz1oLHRoaXMudHlwZT10aGlzLmdldFNvdXJjZVR5cGUo''@;'; + put 'put ''ZyksImxpdGVyYWwiPT09dGhpcy50eXBlPyhDPXBhcnNlSW50KGcudG9wLDEwKSxqPXBhcnNlSW50KGcubGVmdCwxMCksX2U9Zy5oZWlnaHR8fDAsQmU9Zy53aWR0aHx8MCxJPUMsdWU9aixDKz12LGorPXkpOiJldmVudCI9PT10aGlzLnR5cGUmJihDPXBhcnNlSW50KGcucGFnZVksMTApLGo9''@;'; + put 'put ''cGFyc2VJbnQoZy5wYWdlWCwxMCksX2U9Zy50YXJnZXQuY2xpZW50SGVpZ2h0LEJlPWcudGFyZ2V0LmNsaWVudFdpZHRoLEk9Qy12LHVlPWoteSksdGhpcy50b3A9Qyx0aGlzLnRvcFJlbGF0aXZlPUksdGhpcy5sZWZ0PWosdGhpcy5sZWZ0UmVsYXRpdmU9dWUsdGhpcy5zY3JvbGxUb3A9dix0''@;'; + put 'put ''aGlzLnNjcm9sbExlZnQ9eSx0aGlzLmNlbGxIZWlnaHQ9X2UsdGhpcy5jZWxsV2lkdGg9QmV9cmV0dXJuIGZ1bmN0aW9uIHdhdChkLGcsaCl7ZyYmTkVlKGQucHJvdG90eXBlLGcpLGgmJk5FZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0p''@;'; + put 'put ''fShkLFt7a2V5OiJnZXRTb3VyY2VUeXBlIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj0ibGl0ZXJhbCI7cmV0dXJuIGggaW5zdGFuY2VvZiBFdmVudCYmKHY9ImV2ZW50Iiksdn19LHtrZXk6ImZpdHNBYm92ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMudG9wUmVsYXRpdmU+PWgu''@;'; + put 'put ''b2Zmc2V0SGVpZ2h0fX0se2tleToiZml0c0JlbG93Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5yb290V2luZG93LmlubmVySGVpZ2h0O3JldHVybiB0aGlzLnRvcFJlbGF0aXZlK2gu''@;'; + put 'put ''b2Zmc2V0SGVpZ2h0PD12fX0se2tleToiZml0c09uUmlnaHQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnJvb3RXaW5kb3cuaW5uZXJXaWR0aDtyZXR1cm4gdGhpcy5sZWZ0UmVsYXRp''@;'; + put 'put ''dmUrdGhpcy5jZWxsV2lkdGgraC5vZmZzZXRXaWR0aDw9dn19LHtrZXk6ImZpdHNPbkxlZnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmxlZnRSZWxhdGl2ZT49aC5vZmZzZXRXaWR0aH19XSksZH0oKTtjb25zdCBfYXQ9YmF0O2Z1bmN0aW9uIFZFZShkLGcpe3ZhciBoPU9iamVj''@;'; + put 'put ''dC5rZXlzKGQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCx5KS5lbnVtZXJhYmxlfSkp''@;'; + put 'put ''LGgucHVzaC5hcHBseShoLHYpfXJldHVybiBofWZ1bmN0aW9uIGpFZShkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9WRWUoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe0Nh''@;'; + put 'put ''dChkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpWRWUoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; + put 'put ''eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIENhdChkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEw''@;'; + put 'put ''fSk6ZFtnXT1oLGR9ZnVuY3Rpb24gWkVlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoZCx2LmtleSx2KX19dmFyIFdFZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoKXsoZnVuY3Rpb24ga2F0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuaG90''@;'; + put 'put ''PWcsdGhpcy5vcHRpb25zPWh8fHtwYXJlbnQ6bnVsbCxuYW1lOm51bGwsY2xhc3NOYW1lOiIiLGtlZXBJblZpZXdwb3J0OiEwLHN0YW5kYWxvbmU6ITEsbWluV2lkdGg6MjE1LGNvbnRhaW5lcjp0aGlzLmhvdC5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fSx0aGlzLmV2ZW50TWFuYWdl''@;'; + put 'put ''cj1uZXcgTDEodGhpcyksdGhpcy5jb250YWluZXI9dGhpcy5jcmVhdGVDb250YWluZXIodGhpcy5vcHRpb25zLm5hbWUpLHRoaXMuaG90TWVudT1udWxsLHRoaXMuaG90U3ViTWVudXM9e30sdGhpcy5wYXJlbnRNZW51PXRoaXMub3B0aW9ucy5wYXJlbnR8fG51bGwsdGhpcy5tZW51SXRlbXM9''@;'; + put 'put ''bnVsbCx0aGlzLm9yaWdPdXRzaWRlQ2xpY2tEZXNlbGVjdHM9bnVsbCx0aGlzLmtleUV2ZW50PSExLHRoaXMub2Zmc2V0PXthYm92ZTowLGJlbG93OjAsbGVmdDowLHJpZ2h0OjB9LHRoaXMuX2FmdGVyU2Nyb2xsQ2FsbGJhY2s9bnVsbCx0aGlzLnJlZ2lzdGVyRXZlbnRzKCl9cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uIFNhdChkLGcsaCl7ZyYmWkVlKGQucHJvdG90eXBlLGcpLGgmJlpFZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJyZWdpc3RlckV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGg9dGhpcyx2PXRo''@;'; + put 'put ''aXMuaG90LnJvb3RXaW5kb3c7djspdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih2LmRvY3VtZW50LCJtb3VzZWRvd24iLGZ1bmN0aW9uKHkpe3JldHVybiBoLm9uRG9jdW1lbnRNb3VzZURvd24oeSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHYuZG9j''@;'; + put 'put ''dW1lbnQsImNvbnRleHRtZW51IixmdW5jdGlvbih5KXtyZXR1cm4gaC5vbkRvY3VtZW50Q29udGV4dE1lbnUoeSl9KSx2PWwzZSh2KX19LHtrZXk6InNldE1lbnVJdGVtcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5tZW51SXRlbXM9aH19LHtrZXk6ImdldFNlbGVjdGVkSXRlbSIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNTZWxlY3RlZEl0ZW0oKT90aGlzLmhvdE1lbnUuZ2V0U291cmNlRGF0YUF0Um93KHRoaXMuaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKVswXSk6bnVsbH19LHtrZXk6Imhhc1NlbGVjdGVkSXRlbSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQXJy''@;'; + put 'put ''YXkuaXNBcnJheSh0aGlzLmhvdE1lbnUuZ2V0U2VsZWN0ZWRMYXN0KCkpfX0se2tleToic2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDt0aGlzLm9mZnNldFtoXT12fX0se2tl''@;'; + put 'put ''eToiaXNTdWJNZW51Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5wYXJlbnRNZW51fX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO3RoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlT3BlbiIpLHRoaXMuY29udGFpbmVyLnJlbW92ZUF0dHJpYnV0''@;'; + put 'put ''ZSgic3R5bGUiKSx0aGlzLmNvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSJibG9jayI7dmFyIHY9QTNlKGZ1bmN0aW9uKGR0KXtyZXR1cm4gaC5vcGVuU3ViTWVudShkdCl9LDMwMCkseT10aGlzLm9wdGlvbnMubWluV2lkdGh8fDIxNSxDPSExLEk9ZzQodGhpcy5tZW51SXRlbXMsZnVuY3Rpb24o''@;'; + put 'put ''ZHQpe3JldHVybiBkdC5rZXk9PT15eiYmKEM9ITApLGZ1bmN0aW9uIFNvdChkLGcpe3JldHVybiFkLmhpZGRlbnx8ISgiZnVuY3Rpb24iPT10eXBlb2YgZC5oaWRkZW4mJmQuaGlkZGVuLmNhbGwoZykpfShkdCxoLmhvdCl9KTtpZihJLmxlbmd0aDwxJiYhQylJLnB1c2goUEVlKClbeXpdKTtl''@;'; + put 'put ''bHNlIGlmKDA9PT1JLmxlbmd0aClyZXR1cm47ST1mdW5jdGlvbiB4b3QoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOldsLGg9ZC5zbGljZSgwKTtyZXR1cm4gRW90KGg9TW90KGg9a0VlKGgsZyksZykpfShJLFdsKTt2YXIg''@;'; + put 'put ''aj0hMSx1ZT17ZGF0YTpJLGNvbEhlYWRlcnM6ITEsYXV0b0NvbHVtblNpemU6ITAsYXV0b1dyYXBSb3c6ITEsbW9kaWZ5Q29sV2lkdGg6ZnVuY3Rpb24oT3Qpe3JldHVybiBUbyhPdCkmJk90PHk/eTpPdH0sYXV0b1Jvd1NpemU6ITEscmVhZE9ubHk6ITAsZWRpdG9yOiExLGNvcHlQYXN0ZToh''@;'; + put 'put ''MSxtYXhDb2xzOjEsY29sdW1uczpbe2RhdGE6Im5hbWUiLHJlbmRlcmVyOmZ1bmN0aW9uKE90LCR0LGZuLExuLGlyLG1yKXtyZXR1cm4gaC5tZW51SXRlbVJlbmRlcmVyKE90LCR0LGZuLExuLGlyLG1yKX19XSxyZW5kZXJBbGxSb3dzOiEwLGZyYWdtZW50U2VsZWN0aW9uOiExLG91dHNpZGVD''@;'; + put 'put ''bGlja0Rlc2VsZWN0czohMSxkaXNhYmxlVmlzdWFsU2VsZWN0aW9uOiJhcmVhIixsYXlvdXREaXJlY3Rpb246dGhpcy5ob3QuaXNSdGwoKT8icnRsIjoibHRyIixhZnRlck9uQ2VsbE1vdXNlT3ZlcjpmdW5jdGlvbihPdCwkdCl7aC5pc0FsbFN1Yk1lbnVzQ2xvc2VkKCk/digkdC5yb3cpOmgu''@;'; + put 'put ''b3BlblN1Yk1lbnUoJHQucm93KX0scm93SGVpZ2h0czpmdW5jdGlvbihPdCl7cmV0dXJuIElbT3RdLm5hbWU9PT1XbD8xOjIzfSxhZnRlck9uQ2VsbENvbnRleHRNZW51OmZ1bmN0aW9uKE90KXtPdC5wcmV2ZW50RGVmYXVsdCgpLHFoZSgpJiZqJiZoLmhhc1NlbGVjdGVkSXRlbSgpJiZoLmNs''@;'; + put 'put ''b3NlKCEwKX0sYmVmb3JlT25DZWxsTW91c2VVcDpmdW5jdGlvbihPdCl7aC5oYXNTZWxlY3RlZEl0ZW0oKSYmKGo9IWguaXNDb21tYW5kUGFzc2l2ZShoLmdldFNlbGVjdGVkSXRlbSgpKSxoLmV4ZWN1dGVDb21tYW5kKE90KSl9LGFmdGVyT25DZWxsTW91c2VVcDpmdW5jdGlvbihPdCl7KCFx''@;'; + put 'put ''aGUoKXx8IVN3KE90KSkmJmomJmguaGFzU2VsZWN0ZWRJdGVtKCkmJihiOCgpfHwkaGUoKT9zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIGguY2xvc2UoITApfSwzMjUpOmguY2xvc2UoITApKX0sYWZ0ZXJVbmxpc3RlbjpmdW5jdGlvbigpeyFoLmhhc1NlbGVjdGVkSXRlbSgpJiZoLmlz''@;'; + put 'put ''T3BlbmVkKCkmJmguaG90TWVudS5saXN0ZW4oKX19O3RoaXMub3JpZ091dHNpZGVDbGlja0Rlc2VsZWN0cz10aGlzLmhvdC5nZXRTZXR0aW5ncygpLm91dHNpZGVDbGlja0Rlc2VsZWN0cyx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLm91dHNpZGVDbGlja0Rlc2VsZWN0cz0hMSx0aGlzLmhvdE1l''@;'; + put 'put ''bnU9bmV3IGk2ZSh0aGlzLmNvbnRhaW5lcix1ZSksdGhpcy5ob3RNZW51LmFkZEhvb2soImFmdGVySW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4gaC5vbkFmdGVySW5pdCgpfSksdGhpcy5ob3RNZW51LmFkZEhvb2soImFmdGVyU2VsZWN0aW9uIixmdW5jdGlvbigpe3JldHVybiBoLm9uQWZ0ZXJT''@;'; + put 'put ''ZWxlY3Rpb24uYXBwbHkoaCxhcmd1bWVudHMpfSksdGhpcy5ob3RNZW51LmluaXQoKSx0aGlzLmhvdE1lbnUubGlzdGVuKCk7dmFyIF9lPXRoaXMuaG90TWVudS5nZXRTaG9ydGN1dE1hbmFnZXIoKSxCZT1fZS5hZGRDb250ZXh0KCJtZW51IiksS2U9akVlKGpFZSh7fSx7Z3JvdXA6Im1lbnUi''@;'; + put 'put ''fSkse30se3J1bk9ubHlJZjpmdW5jdGlvbihPdCl7cmV0dXJuITE9PT1WWihPdC50YXJnZXQpfHwhMT09PWguY29udGFpbmVyLmNvbnRhaW5zKE90LnRhcmdldCl9fSk7X2Uuc2V0QWN0aXZlQ29udGV4dE5hbWUoIm1lbnUiKSxCZS5hZGRTaG9ydGN1dHMoW3trZXlzOltbIkVzY2FwZSJdXSxj''@;'; + put 'put ''YWxsYmFjazpmdW5jdGlvbigpe2gua2V5RXZlbnQ9ITAsaC5jbG9zZSgpLGgua2V5RXZlbnQ9ITF9fSx7a2V5czpbWyJBcnJvd0Rvd24iXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgT3Q9aC5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpO2gua2V5RXZlbnQ9ITAsT3Q/aC5zZWxlY3ROZXh0''@;'; + put 'put ''Q2VsbChPdFswXSxPdFsxXSk6aC5zZWxlY3RGaXJzdENlbGwoKSxoLmtleUV2ZW50PSExfX0se2tleXM6W1siQXJyb3dVcCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBPdD1oLmhvdE1lbnUuZ2V0U2VsZWN0ZWRMYXN0KCk7aC5rZXlFdmVudD0hMCxPdD9oLnNlbGVjdFByZXZDZWxsKE90''@;'; + put 'put ''WzBdLE90WzFdKTpoLnNlbGVjdExhc3RDZWxsKCksaC5rZXlFdmVudD0hMX19LHtrZXlzOltbIkFycm93UmlnaHQiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgT3Q9aC5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpO2lmKGgua2V5RXZlbnQ9ITAsT3Qpe3ZhciAkdD1oLm9wZW5TdWJNZW51''@;'; + put 'put ''KE90WzBdKTskdCYmJHQuc2VsZWN0Rmlyc3RDZWxsKCl9aC5rZXlFdmVudD0hMX19LHtrZXlzOltbIkFycm93TGVmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBPdD1oLmhvdE1lbnUuZ2V0U2VsZWN0ZWRMYXN0KCk7aC5rZXlFdmVudD0hMCxPdCYmaC5pc1N1Yk1lbnUoKSYmKGguY2xv''@;'; + put 'put ''c2UoKSxoLnBhcmVudE1lbnUmJmgucGFyZW50TWVudS5ob3RNZW51Lmxpc3RlbigpKSxoLmtleUV2ZW50PSExfX0se2tleXM6W1siRW50ZXIiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oT3Qpe3ZhciAkdD1oLmhvdE1lbnUuZ2V0U2VsZWN0ZWRMYXN0KCk7aC5rZXlFdmVudD0hMCxoLmhvdE1lbnUu''@;'; + put 'put ''Z2V0U291cmNlRGF0YUF0Um93KCR0WzBdKS5zdWJtZW51fHwoaC5leGVjdXRlQ29tbWFuZChPdCksaC5jbG9zZSghMCkpLGgua2V5RXZlbnQ9ITF9fSx7a2V5czpbWyJQYWdlVXAiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgT3Q9aC5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpO2gua2V5''@;'; + put 'put ''RXZlbnQ9ITAsT3Q/aC5ob3RNZW51LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgtaC5ob3RNZW51LmNvdW50VmlzaWJsZVJvd3MoKSwwKTpoLnNlbGVjdEZpcnN0Q2VsbCgpLGgua2V5RXZlbnQ9ITF9fSx7a2V5czpbWyJQYWdlRG93biJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBPdD1o''@;'; + put 'put ''LmhvdE1lbnUuZ2V0U2VsZWN0ZWRMYXN0KCk7aC5rZXlFdmVudD0hMCxPdD9oLmhvdE1lbnUuc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KGguaG90TWVudS5jb3VudFZpc2libGVSb3dzKCksMCk6aC5zZWxlY3RMYXN0Q2VsbCgpLGgua2V5RXZlbnQ9ITF9fV0sS2UpLHRoaXMuYmxvY2tNYWlu''@;'; + put 'put ''VGFibGVDYWxsYmFja3MoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyT3BlbiIpfX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTshdGhpcy5pc09wZW5lZCgpfHwoaCYm''@;'; + put 'put ''dGhpcy5wYXJlbnRNZW51P3RoaXMucGFyZW50TWVudS5jbG9zZSgpOih0aGlzLmNsb3NlQWxsU3ViTWVudXMoKSx0aGlzLmNvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnJlbGVhc2VNYWluVGFibGVDYWxsYmFja3MoKSx0aGlzLmhvdE1lbnUuZGVzdHJveSgpLHRoaXMuaG90''@;'; + put 'put ''TWVudT1udWxsLHRoaXMuaG90LmdldFNldHRpbmdzKCkub3V0c2lkZUNsaWNrRGVzZWxlY3RzPXRoaXMub3JpZ091dHNpZGVDbGlja0Rlc2VsZWN0cyx0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyQ2xvc2UiKSx0aGlzLnBhcmVudE1lbnUmJnRoaXMucGFyZW50TWVudS5ob3RNZW51Lmxpc3Rl''@;'; + put 'put ''bigpKSl9fSx7a2V5OiJvcGVuU3ViTWVudSIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYoIXRoaXMuaG90TWVudSlyZXR1cm4hMTt2YXIgdj10aGlzLmhvdE1lbnUuZ2V0Q2VsbChoLDApO2lmKHRoaXMuY2xvc2VBbGxTdWJNZW51cygpLCF2fHwhZnVuY3Rpb24gYm90KGQpe3JldHVybiB0bChkLCJo''@;'; + put 'put ''dFN1Ym1lbnUiKX0odikpcmV0dXJuITE7dmFyIHk9dGhpcy5ob3RNZW51LmdldFNvdXJjZURhdGFBdFJvdyhoKSxDPW5ldyBkKHRoaXMuaG90LHtwYXJlbnQ6dGhpcyxuYW1lOnkubmFtZSxjbGFzc05hbWU6dGhpcy5vcHRpb25zLmNsYXNzTmFtZSxrZWVwSW5WaWV3cG9ydDohMCxjb250YWlu''@;'; + put 'put ''ZXI6dGhpcy5vcHRpb25zLmNvbnRhaW5lcn0pO3JldHVybiBDLnNldE1lbnVJdGVtcyh5LnN1Ym1lbnUuaXRlbXMpLEMub3BlbigpLEMuc2V0UG9zaXRpb24odi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksdGhpcy5ob3RTdWJNZW51c1t5LmtleV09QyxDfX0se2tleToiY2xvc2VTdWJNZW51''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLmhvdE1lbnUuZ2V0U291cmNlRGF0YUF0Um93KGgpLHk9dGhpcy5ob3RTdWJNZW51c1t2LmtleV07eSYmKHkuZGVzdHJveSgpLGRlbGV0ZSB0aGlzLmhvdFN1Yk1lbnVzW3Yua2V5XSl9fSx7a2V5OiJjbG9zZUFsbFN1Yk1lbnVzIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXM7VXIodGhpcy5ob3RNZW51LmdldERhdGEoKSxmdW5jdGlvbih2LHkpe3JldHVybiBoLmNsb3NlU3ViTWVudSh5KX0pfX0se2tleToiaXNBbGxTdWJNZW51c0Nsb3NlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PU9iamVjdC5rZXlzKHRoaXMu''@;'; + put 'put ''aG90U3ViTWVudXMpLmxlbmd0aH19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5jb250YWluZXIucGFyZW50Tm9kZTt0aGlzLmNsZWFyTG9jYWxIb29rcygpLHRoaXMuY2xvc2UoKSx0aGlzLnBhcmVudE1lbnU9bnVsbCx0aGlzLmV2ZW50TWFuYWdlci5kZXN0''@;'; + put 'put ''cm95KCksaCYmaC5yZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lcil9fSx7a2V5OiJpc09wZW5lZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PXRoaXMuaG90TWVudX19LHtrZXk6ImV4ZWN1dGVDb21tYW5kIix2YWx1ZTpmdW5jdGlvbihoKXtpZih0aGlzLmlzT3BlbmVkKCkmJnRo''@;'; + put 'put ''aXMuaGFzU2VsZWN0ZWRJdGVtKCkpe3ZhciB2PXRoaXMuZ2V0U2VsZWN0ZWRJdGVtKCk7aWYodGhpcy5ydW5Mb2NhbEhvb2tzKCJzZWxlY3QiLHYsaCksIXRoaXMuaXNDb21tYW5kUGFzc2l2ZSh2KSl7dmFyIHk9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZSgpLEM9eT9mdW5jdGlvbiB3b3Qo''@;'; + put 'put ''ZCl7cmV0dXJuIE9sKGQsZnVuY3Rpb24oZyl7cmV0dXJue3N0YXJ0OmcuZ2V0VG9wU3RhcnRDb3JuZXIoKSxlbmQ6Zy5nZXRCb3R0b21FbmRDb3JuZXIoKX19KX0oeSk6W107dGhpcy5ydW5Mb2NhbEhvb2tzKCJleGVjdXRlQ29tbWFuZCIsdi5rZXksQyxoKSx0aGlzLmlzU3ViTWVudSgpJiZ0''@;'; + put 'put ''aGlzLnBhcmVudE1lbnUucnVuTG9jYWxIb29rcygiZXhlY3V0ZUNvbW1hbmQiLHYua2V5LEMsaCl9fX19LHtrZXk6ImlzQ29tbWFuZFBhc3NpdmUiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWguaXNDb21tYW5kLHk9aC5uYW1lLEM9aC5kaXNhYmxlZCxJPWguc3VibWVudSxqPSEwPT09Q3x8''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIEMmJiEwPT09Qy5jYWxsKHRoaXMuaG90KTtyZXR1cm4hMT09PXZ8fHk9PT1XbHx8ITA9PT1qfHxJfX0se2tleToic2V0UG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PW5ldyBfYXQoaCx0aGlzLmNvbnRhaW5lci5vd25lckRvY3VtZW50LmRlZmF1''@;'; + put 'put ''bHRWaWV3KTt0aGlzLm9wdGlvbnMua2VlcEluVmlld3BvcnQ/KHYuZml0c0JlbG93KHRoaXMuY29udGFpbmVyKT90aGlzLnNldFBvc2l0aW9uQmVsb3dDdXJzb3Iodik6di5maXRzQWJvdmUodGhpcy5jb250YWluZXIpP3RoaXMuc2V0UG9zaXRpb25BYm92ZUN1cnNvcih2KTp0aGlzLnNldFBv''@;'; + put 'put ''c2l0aW9uQmVsb3dDdXJzb3IodiksdGhpcy5ob3QuaXNMdHIoKT90aGlzLnNldEhvcml6b250YWxQb3NpdGlvbkZvckx0cih2KTp0aGlzLnNldEhvcml6b250YWxQb3NpdGlvbkZvclJ0bCh2KSk6KHRoaXMuc2V0UG9zaXRpb25CZWxvd0N1cnNvcih2KSx0aGlzLnNldFBvc2l0aW9uT25SaWdo''@;'; + put 'put ''dE9mQ3Vyc29yKHYpKX19LHtrZXk6InNldEhvcml6b250YWxQb3NpdGlvbkZvclJ0bCIsdmFsdWU6ZnVuY3Rpb24oaCl7aC5maXRzT25MZWZ0KHRoaXMuY29udGFpbmVyKT90aGlzLnNldFBvc2l0aW9uT25MZWZ0T2ZDdXJzb3IoaCk6dGhpcy5zZXRQb3NpdGlvbk9uUmlnaHRPZkN1cnNvciho''@;'; + put 'put ''KX19LHtrZXk6InNldEhvcml6b250YWxQb3NpdGlvbkZvckx0ciIsdmFsdWU6ZnVuY3Rpb24oaCl7aC5maXRzT25SaWdodCh0aGlzLmNvbnRhaW5lcik/dGhpcy5zZXRQb3NpdGlvbk9uUmlnaHRPZkN1cnNvcihoKTp0aGlzLnNldFBvc2l0aW9uT25MZWZ0T2ZDdXJzb3IoaCl9fSx7a2V5OiJz''@;'; + put 'put ''ZXRQb3NpdGlvbkFib3ZlQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLm9mZnNldC5hYm92ZStoLnRvcC10aGlzLmNvbnRhaW5lci5vZmZzZXRIZWlnaHQ7dGhpcy5pc1N1Yk1lbnUoKSYmKHY9aC50b3AraC5jZWxsSGVpZ2h0LXRoaXMuY29udGFpbmVyLm9mZnNldEhlaWdo''@;'; + put 'put ''dCszKSx0aGlzLmNvbnRhaW5lci5zdHlsZS50b3A9IiIuY29uY2F0KHYsInB4Iil9fSx7a2V5OiJzZXRQb3NpdGlvbkJlbG93Q3Vyc29yIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLm9mZnNldC5iZWxvdytoLnRvcCsxO3RoaXMuaXNTdWJNZW51KCkmJih2PWgudG9wLTEpLHRoaXMu''@;'; + put 'put ''Y29udGFpbmVyLnN0eWxlLnRvcD0iIi5jb25jYXQodiwicHgiKX19LHtrZXk6InNldFBvc2l0aW9uT25SaWdodE9mQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1oLmxlZnQ7aWYodGhpcy5pc1N1Yk1lbnUoKSl7dmFyIHk9dGhpcy5wYXJlbnRNZW51LmNvbnRhaW5lci5nZXRCb3Vu''@;'; + put 'put ''ZGluZ0NsaWVudFJlY3QoKTt2Kz1oLmNlbGxXaWR0aCt5LnJpZ2h0LShoLmxlZnQraC5jZWxsV2lkdGgpfWVsc2Ugdis9dGhpcy5vZmZzZXQucmlnaHQ7dGhpcy5jb250YWluZXIuc3R5bGUubGVmdD0iIi5jb25jYXQodiwicHgiKX19LHtrZXk6InNldFBvc2l0aW9uT25MZWZ0T2ZDdXJzb3Ii''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMub2Zmc2V0LmxlZnQraC5sZWZ0LXRoaXMuY29udGFpbmVyLm9mZnNldFdpZHRoO2lmKHRoaXMuaXNTdWJNZW51KCkpe3ZhciB5PXRoaXMucGFyZW50TWVudS5jb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7di09aC5sZWZ0LXku''@;'; + put 'put ''bGVmdH10aGlzLmNvbnRhaW5lci5zdHlsZS5sZWZ0PSIiLmNvbmNhdCh2LCJweCIpfX0se2tleToic2VsZWN0Rmlyc3RDZWxsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuaG90TWVudS5nZXRDZWxsKDAsMCk7T3RlKGgpfHxSdGUoaCl8fEJ0ZShoKT90aGlzLnNlbGVjdE5leHRDZWxs''@;'; + put 'put ''KDAsMCk6dGhpcy5ob3RNZW51LnNlbGVjdENlbGwoMCwwKX19LHtrZXk6InNlbGVjdExhc3RDZWxsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuaG90TWVudS5jb3VudFJvd3MoKS0xLHY9dGhpcy5ob3RNZW51LmdldENlbGwoaCwwKTtPdGUodil8fFJ0ZSh2KXx8QnRlKHYpP3RoaXMu''@;'; + put 'put ''c2VsZWN0UHJldkNlbGwoaCwwKToodGhpcy5ob3RNZW51LnNlbGVjdENlbGwoaCwwLHZvaWQgMCx2b2lkIDAsITEpLHRoaXMuaG90TWVudS5zY3JvbGxWaWV3cG9ydFRvKGgsMCwhMCwhMSkpfX0se2tleToic2VsZWN0TmV4dENlbGwiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9aCsxLEM9''@;'; + put 'put ''eTx0aGlzLmhvdE1lbnUuY291bnRSb3dzKCk/dGhpcy5ob3RNZW51LmdldENlbGwoeSx2KTpudWxsOyFDfHwoT3RlKEMpfHxSdGUoQyl8fEJ0ZShDKT90aGlzLnNlbGVjdE5leHRDZWxsKHksdik6dGhpcy5ob3RNZW51LnNlbGVjdENlbGwoeSx2KSl9fSx7a2V5OiJzZWxlY3RQcmV2Q2VsbCIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1oLTEsQz15Pj0wP3RoaXMuaG90TWVudS5nZXRDZWxsKHksdik6bnVsbDshQ3x8KE90ZShDKXx8UnRlKEMpfHxCdGUoQyk/dGhpcy5zZWxlY3RQcmV2Q2VsbCh5LHYpOnRoaXMuaG90TWVudS5zZWxlY3RDZWxsKHksdikpfX0se2tleToibWVudUl0''@;'; + put 'put ''ZW1SZW5kZXJlciIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyxJLGope3ZhciBMbix1ZT10aGlzLF9lPWguZ2V0U291cmNlRGF0YUF0Um93KHkpLEJlPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxPdD1mdW5jdGlvbihMbil7cmV0dXJuIExuLmRpc2FibGVTZWxl''@;'; + put 'put ''Y3Rpb259LCR0PWo7ImZ1bmN0aW9uIj09dHlwZW9mICR0JiYoJHQ9JHQuY2FsbCh0aGlzLmhvdCkpLERwKHYpLE8wKEJlLCJodEl0ZW1XcmFwcGVyIiksdi5hcHBlbmRDaGlsZChCZSksTG49X2UsbmV3IFJlZ0V4cChXbCwiaSIpLnRlc3QoTG4ubmFtZSk/TzAodiwiaHRTZXBhcmF0b3IiKToi''@;'; + put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgX2UucmVuZGVyZXI/KE8wKHYsImh0Q3VzdG9tTWVudVJlbmRlcmVyIiksdi5hcHBlbmRDaGlsZChfZS5yZW5kZXJlcihoLEJlLHksQyxJLCR0KSkpOl93KEJlLCR0KSxmdW5jdGlvbihMbil7cmV0dXJuITA9PT1Mbi5kaXNhYmxlZHx8ImZ1bmN0aW9uIj09dHlw''@;'; + put 'put ''ZW9mIExuLmRpc2FibGVkJiYhMD09PUxuLmRpc2FibGVkLmNhbGwodWUuaG90KX0oX2UpPyhPMCh2LCJodERpc2FibGVkIiksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih2LCJtb3VzZWVudGVyIixmdW5jdGlvbigpe3JldHVybiBoLmRlc2VsZWN0Q2VsbCgpfSkpOk90KF9l''@;'; + put 'put ''KT8oTzAodiwiaHRTZWxlY3Rpb25EaXNhYmxlZCIpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodiwibW91c2VlbnRlciIsZnVuY3Rpb24oKXtyZXR1cm4gaC5kZXNlbGVjdENlbGwoKX0pKTpmdW5jdGlvbihMbil7cmV0dXJuIG8xKExuLCJzdWJtZW51Iil9KF9lKT8oTzAo''@;'; + put 'put ''diwiaHRTdWJtZW51IiksT3QoX2UpP3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodiwibW91c2VlbnRlciIsZnVuY3Rpb24oKXtyZXR1cm4gaC5kZXNlbGVjdENlbGwoKX0pOnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodiwibW91c2VlbnRlciIsZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gaC5zZWxlY3RDZWxsKHksQyx2b2lkIDAsdm9pZCAwLCExLCExKX0pKToocGwodixbImh0U3VibWVudSIsImh0RGlzYWJsZWQiXSksT3QoX2UpP3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodiwibW91c2VlbnRlciIsZnVuY3Rpb24oKXtyZXR1cm4gaC5k''@;'; + put 'put ''ZXNlbGVjdENlbGwoKX0pOnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodiwibW91c2VlbnRlciIsZnVuY3Rpb24oKXtyZXR1cm4gaC5zZWxlY3RDZWxsKHksQyx2b2lkIDAsdm9pZCAwLCExLCExKX0pKX19LHtrZXk6ImNyZWF0ZUNvbnRhaW5lciIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''KXt2YXIgQyxoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsLHY9dGhpcy5vcHRpb25zLmNvbnRhaW5lci5vd25lckRvY3VtZW50LHk9aDtyZXR1cm4geSYmKFkyKHkpJiYoeT1udWxsPT09KHk9eS5jYWxsKHRoaXMuaG90KSl8fGEx''@;'; + put 'put ''KHkpPyIiOnkudG9TdHJpbmcoKSkseT15LnJlcGxhY2UoL1teQS16MC05XS9nLCJfIikseT0iIi5jb25jYXQodGhpcy5vcHRpb25zLmNsYXNzTmFtZSwiU3ViXyIpLmNvbmNhdCh5KSxDPXYucXVlcnlTZWxlY3RvcigiLiIuY29uY2F0KHRoaXMub3B0aW9ucy5jbGFzc05hbWUsIi4iKS5jb25j''@;'; + put 'put ''YXQoeSkpKSxDfHwoTzAoQz12LmNyZWF0ZUVsZW1lbnQoImRpdiIpLCJodE1lbnUgIi5jb25jYXQodGhpcy5vcHRpb25zLmNsYXNzTmFtZSkpLHkmJk8wKEMseSksdGhpcy5vcHRpb25zLmNvbnRhaW5lci5hcHBlbmRDaGlsZChDKSksQ319LHtrZXk6ImJsb2NrTWFpblRhYmxlQ2FsbGJhY2tz''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2FmdGVyU2Nyb2xsQ2FsbGJhY2s9ZnVuY3Rpb24oKXt9LHRoaXMuaG90LmFkZEhvb2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsdGhpcy5fYWZ0ZXJTY3JvbGxDYWxsYmFjayksdGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJTY3JvbGxIb3Jpem9udGFs''@;'; + put 'put ''bHkiLHRoaXMuX2FmdGVyU2Nyb2xsQ2FsbGJhY2spfX0se2tleToicmVsZWFzZU1haW5UYWJsZUNhbGxiYWNrcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9hZnRlclNjcm9sbENhbGxiYWNrJiYodGhpcy5ob3QucmVtb3ZlSG9vaygiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5Iix0aGlzLl9hZnRl''@;'; + put 'put ''clNjcm9sbENhbGxiYWNrKSx0aGlzLmhvdC5yZW1vdmVIb29rKCJhZnRlclNjcm9sbEhvcml6b250YWxseSIsdGhpcy5fYWZ0ZXJTY3JvbGxDYWxsYmFjayksdGhpcy5fYWZ0ZXJTY3JvbGxDYWxsYmFjaz1udWxsKX19LHtrZXk6Im9uQWZ0ZXJJbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBo''@;'; + put 'put ''PXRoaXMuaG90TWVudS52aWV3Ll93dC53dFRhYmxlLHY9dGhpcy5ob3RNZW51LmdldFNldHRpbmdzKCkuZGF0YSx5PWguaGlkZXIuc3R5bGUsQz1oLmhvbGRlci5zdHlsZSxJPXBhcnNlSW50KHkud2lkdGgsMTApLGo9U3UodixmdW5jdGlvbih1ZSxfZSl7cmV0dXJuIHVlKyhfZS5uYW1lPT09''@;'; + put 'put ''V2w/MToyNil9LDApO0Mud2lkdGg9IiIuY29uY2F0KEkrMywicHgiKSxDLmhlaWdodD0iIi5jb25jYXQoaiszLCJweCIpLHkuaGVpZ2h0PUMuaGVpZ2h0fX0se2tleToib25BZnRlclNlbGVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyxJKXshMT09PXRoaXMua2V5RXZlbnQmJihJLnZh''@;'; + put 'put ''bHVlPSEwKX19LHtrZXk6Im9uRG9jdW1lbnRNb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKGgpeyF0aGlzLmlzT3BlbmVkKCl8fCh0aGlzLm9wdGlvbnMuc3RhbmRhbG9uZSYmdGhpcy5ob3RNZW51JiYhd3coaC50YXJnZXQsdGhpcy5ob3RNZW51LnJvb3RFbGVtZW50KXx8KHRoaXMuaXNBbGxT''@;'; + put 'put ''dWJNZW51c0Nsb3NlZCgpfHx0aGlzLmlzU3ViTWVudSgpKSYmIXd3KGgudGFyZ2V0LCIuaHRNZW51IikpJiZ0aGlzLmNsb3NlKCEwKX19LHtrZXk6Im9uRG9jdW1lbnRDb250ZXh0TWVudSIsdmFsdWU6ZnVuY3Rpb24oaCl7IXRoaXMuaXNPcGVuZWQoKXx8dGwoaC50YXJnZXQsImh0Q29yZSIp''@;'; + put 'put ''JiZ3dyhoLnRhcmdldCx0aGlzLmhvdE1lbnUucm9vdEVsZW1lbnQpJiZoLnByZXZlbnREZWZhdWx0KCl9fV0pLGR9KCk7UjIoV0VlLHNkKTtjb25zdCBNOGU9V0VlO2Z1bmN0aW9uIEU4ZShkKXtyZXR1cm4oRThlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2Yg''@;'; + put 'put ''U3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVu''@;'; + put 'put ''Y3Rpb24gWUVlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19''@;'; + put 'put ''ZnVuY3Rpb24gVVMoKXtyZXR1cm4gVVM9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PVRhdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTty''@;'; + put 'put ''ZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sVVMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFRhdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9RjkoZCkp''@;'; + put 'put ''Oyk7cmV0dXJuIGR9ZnVuY3Rpb24geDhlKGQsZyl7cmV0dXJuKHg4ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIExhdChkLGcpe2lmKGcmJigib2Jq''@;'; + put 'put ''ZWN0Ij09PUU4ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gVUVlKGQpfWZ1bmN0aW9uIFVF''@;'; + put 'put ''ZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gRjkoZCl7cmV0dXJuKEY5PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmpl''@;'; + put 'put ''Y3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIEd0ZT0iY29udGV4dE1lbnUiO3pvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlv''@;'; + put 'put ''bnMiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQ29udGV4dE1lbnVTaG93Iiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29udGV4dE1lbnVTaG93Iiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29udGV4dE1lbnVIaWRlIiksem8uZ2V0''@;'; + put 'put ''U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29udGV4dE1lbnVFeGVjdXRlIik7dmFyIFFFZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gSWF0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBl''@;'; + put 'put ''aXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0''@;'; + put 'put ''YWJsZTohMX0pLGcmJng4ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIERhdChkKXt2YXIgZz1mdW5jdGlvbiBPYXQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1G''@;'; + put 'put ''OShkKTtpZihnKXt2YXIgQz1GOSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gTGF0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBF''@;'; + put 'put ''YXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuZXZlbnRNYW5hZ2VyPW5ldyBMMShVRWUoeSkpLHkuY29tbWFuZEV4ZWN1dG9yPW5ldyBE''@;'; + put 'put ''RWUoeS5ob3QpLHkuaXRlbXNGYWN0b3J5PW51bGwseS5tZW51PW51bGwseX1yZXR1cm4gZnVuY3Rpb24geGF0KGQsZyxoKXtnJiZZRWUoZC5wcm90b3R5cGUsZyksaCYmWUVlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6''@;'; + put 'put ''ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbR3RlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO2lmKCF0aGlzLmVuYWJsZWQpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKClbR3Rl''@;'; + put 'put ''XTsiZnVuY3Rpb24iPT10eXBlb2YgQy5jYWxsYmFjayYmdGhpcy5jb21tYW5kRXhlY3V0b3Iuc2V0Q29tbW9uQ2FsbGJhY2soQy5jYWxsYmFjayksdGhpcy5tZW51PW5ldyBNOGUodGhpcy5ob3Qse2NsYXNzTmFtZToiaHRDb250ZXh0TWVudSIsa2VlcEluVmlld3BvcnQ6ITAsY29udGFpbmVy''@;'; + put 'put ''OkMudWlDb250YWluZXJ8fHRoaXMuaG90LnJvb3REb2N1bWVudC5ib2R5fSksdGhpcy5tZW51LmFkZExvY2FsSG9vaygiYmVmb3JlT3BlbiIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1lbnVCZWZvcmVPcGVuKCl9KSx0aGlzLm1lbnUuYWRkTG9jYWxIb29rKCJhZnRlck9wZW4iLGZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIHkub25NZW51QWZ0ZXJPcGVuKCl9KSx0aGlzLm1lbnUuYWRkTG9jYWxIb29rKCJhZnRlckNsb3NlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTWVudUFmdGVyQ2xvc2UoKX0pLHRoaXMubWVudS5hZGRMb2NhbEhvb2soImV4ZWN1dGVDb21tYW5kIixmdW5jdGlvbigpe2Zvcih2''@;'; + put 'put ''YXIgSSxqPWFyZ3VtZW50cy5sZW5ndGgsdWU9bmV3IEFycmF5KGopLF9lPTA7X2U8ajtfZSsrKXVlW19lXT1hcmd1bWVudHNbX2VdO3JldHVybihJPXkuZXhlY3V0ZUNvbW1hbmQpLmNhbGwuYXBwbHkoSSxbeV0uY29uY2F0KHVlKSl9KSx0aGlzLmFkZEhvb2soImFmdGVyT25DZWxsQ29udGV4''@;'; + put 'put ''dE1lbnUiLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uQWZ0ZXJPbkNlbGxDb250ZXh0TWVudShJKX0pLFVTKEY5KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQbHVn''@;'; + put 'put ''aW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLFVTKEY5KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsb3NlKCksdGhpcy5tZW51JiYodGhpcy5tZW51LmRlc3Ryb3koKSx0aGlz''@;'; + put 'put ''Lm1lbnU9bnVsbCksVVMoRjkoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYodGhpcy5tZW51JiYodGhpcy5wcmVwYXJlTWVudUl0ZW1zKCksdGhpcy5tZW51Lm9wZW4oKSx0aGlzLm1lbnUuaXNP''@;'; + put 'put ''cGVuZWQoKSkpe3ZhciBDPTAsST0wO2lmKHRoaXMuaG90LnJvb3REb2N1bWVudCE9PXRoaXMubWVudS5jb250YWluZXIub3duZXJEb2N1bWVudCl7dmFyIHVlPXRoaXMuaG90LnJvb3RXaW5kb3cuZnJhbWVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEJlPXVlLmxlZnQ7Qz11ZS50''@;'; + put 'put ''b3Atbk8oeS52aWV3KSxJPUJlLWJTKHkudmlldyl9ZWxzZSBDPS0xKm5PKHRoaXMubWVudS5ob3RNZW51LnJvb3RXaW5kb3cpLEk9LTEqYlModGhpcy5tZW51LmhvdE1lbnUucm9vdFdpbmRvdyk7dGhpcy5tZW51LnNldFBvc2l0aW9uKHt0b3A6cGFyc2VJbnQoeS5wYWdlWSwxMCkrQyxsZWZ0''@;'; + put 'put ''OnBhcnNlSW50KHkucGFnZVgsMTApK0l9KX19fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXshdGhpcy5tZW51fHwodGhpcy5tZW51LmNsb3NlKCksdGhpcy5pdGVtc0ZhY3Rvcnk9bnVsbCl9fSx7a2V5OiJleGVjdXRlQ29tbWFuZCIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM7bnVs''@;'; + put 'put ''bD09PXRoaXMuaXRlbXNGYWN0b3J5JiZ0aGlzLnByZXBhcmVNZW51SXRlbXMoKTtmb3IodmFyIEk9YXJndW1lbnRzLmxlbmd0aCxqPW5ldyBBcnJheShJPjE/SS0xOjApLHVlPTE7dWU8STt1ZSsrKWpbdWUtMV09YXJndW1lbnRzW3VlXTsoQz10aGlzLmNvbW1hbmRFeGVjdXRvcikuZXhlY3V0''@;'; + put 'put ''ZS5hcHBseShDLFt5XS5jb25jYXQoaikpfX0se2tleToicHJlcGFyZU1lbnVJdGVtcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuaXRlbXNGYWN0b3J5PW5ldyBIRWUodGhpcy5ob3QsaC5ERUZBVUxUX0lURU1TKTt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW0d0ZV0s''@;'; + put 'put ''ST17aXRlbXM6dGhpcy5pdGVtc0ZhY3RvcnkuZ2V0SXRlbXMoQyl9O3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLEkpLHRoaXMuaXRlbXNGYWN0b3J5LnNldFByZWRlZmluZWRJdGVtcyhJLml0ZW1zKTt2YXIgaj10aGlzLml0ZW1zRmFjdG9yeS5n''@;'; + put 'put ''ZXRJdGVtcyhDKTt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ29udGV4dE1lbnVTZXRJdGVtcyIsaiksdGhpcy5tZW51LnNldE1lbnVJdGVtcyhqKSxVcihqLGZ1bmN0aW9uKHVlKXtyZXR1cm4geS5jb21tYW5kRXhlY3V0b3IucmVnaXN0ZXJDb21tYW5kKHVlLmtleSx1ZSl9KX19LHtrZXk6''@;'; + put 'put ''Im9uQWZ0ZXJPbkNlbGxDb250ZXh0TWVudSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKSxJPUMucm93SGVhZGVycyxqPUMuY29sSGVhZGVycyxfZT15LnRhcmdldDt0aGlzLmNsb3NlKCksIXRsKF9lLCJoYW5kc29udGFibGVJbnB1dCIpJiYoeS5wcmV2''@;'; + put 'put ''ZW50RGVmYXVsdCgpLHkuc3RvcFByb3BhZ2F0aW9uKCksKEl8fGp8fGZ1bmN0aW9uIHVlKEJlKXtyZXR1cm4iVEQiPT09QmUubm9kZU5hbWV8fCJURCI9PT1CZS5wYXJlbnROb2RlLm5vZGVOYW1lfShfZSl8fHRsKF9lLCJjdXJyZW50IikmJnRsKF9lLCJ3dEJvcmRlciIpKSYmdGhpcy5vcGVu''@;'; + put 'put ''KHkpKX19LHtrZXk6Im9uTWVudUJlZm9yZU9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbnRleHRNZW51U2hvdyIsdGhpcyl9fSx7a2V5OiJvbk1lbnVBZnRlck9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29u''@;'; + put 'put ''dGV4dE1lbnVTaG93Iix0aGlzKX19LHtrZXk6Im9uTWVudUFmdGVyQ2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QubGlzdGVuKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29udGV4dE1lbnVIaWRlIix0aGlzKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhp''@;'; + put 'put ''cy5jbG9zZSgpLHRoaXMubWVudSYmdGhpcy5tZW51LmRlc3Ryb3koKSxVUyhGOShoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBHdGV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiA3MH19LHtrZXk6IlBMVUdJTl9ERVBTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5bInBsdWdpbjpBdXRvQ29sdW1uU2l6ZSJdfX0se2tleToiREVGQVVMVF9JVEVNUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuW2p0ZSxadGUsV2wsZ3osbXosV2wsVnRlLEF6LFdsLHp0''@;'; + put 'put ''ZSxOdGUsV2wsdnosV2wsUHBdfX1dKSxofShZcyk7ZnVuY3Rpb24gSkVlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxP''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19UUVlLlNFUEFSQVRPUj17bmFtZTpXbH07dmFyIE5hdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoKXsoZnVuY3Rpb24gRmF0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBj''@;'; + put 'put ''bGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuZGF0YT17fX1yZXR1cm4gZnVuY3Rpb24gSGF0KGQsZyxoKXtnJiZKRWUoZC5wcm90b3R5cGUsZyksaCYmSkVlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6''@;'; + put 'put ''InNldERhdGEiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dGhpcy5kYXRhW2hdPXZ9fSx7a2V5OiJnZXREYXRhIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5kYXRhW2hdfHx2b2lkIDB9fV0pLGR9KCk7ZnVuY3Rpb24gWEVlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3Zh''@;'; + put 'put ''ciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gVmF0KGQsZyxoKXtyZXR1cm4gZyYmWEVlKGQucHJvdG90eXBl''@;'; + put 'put ''LGcpLGgmJlhFZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGR9dmFyIFphdD1WYXQoZnVuY3Rpb24gZCgpeyhmdW5jdGlvbiBqYXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2Fs''@;'; + put 'put ''bCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5jbGlwYm9hcmREYXRhPW5ldyBOYXR9KTtmdW5jdGlvbiBLRWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJs''@;'; + put 'put ''ZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgVDhlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24gemF0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fu''@;'; + put 'put ''bm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMucm9vdERvY3VtZW50PWcuZGVmYXVsdFZpZXc/ZzpnLm93bmVyRG9jdW1lbnQsdGhpcy5tYWluRWxlbWVudD1udWxsLHRoaXMuZXZlbnRNYW5hZ2VyPW5ldyBMMSh0aGlzKSx0aGlzLmxpc3RlbmVyc0NvdW50''@;'; + put 'put ''PW5ldyBXZWFrU2V0LHRoaXMuY29udGFpbmVyPWd9cmV0dXJuIGZ1bmN0aW9uIEdhdChkLGcsaCl7ZyYmS0VlKGQucHJvdG90eXBlLGcpLGgmJktFZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJ1c2VTZWNvbmRhcnlF''@;'; + put 'put ''bGVtZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWZ1bmN0aW9uIFVhdChkKXt2YXIgZz1ZdGUuZ2V0KGQpO2lmKGcpcmV0dXJuIGcucGFyZW50RWxlbWVudHx8ZC5hcHBlbmRDaGlsZChnKSxnO3ZhciB2PShkLmRlZmF1bHRWaWV3P2Q6ZC5vd25lckRvY3VtZW50KS5jcmVhdGVFbGVtZW50''@;'; + put 'put ''KCJ0ZXh0YXJlYSIpO3JldHVybiBZdGUuc2V0KGQsdiksdi5zZXRBdHRyaWJ1dGUoImRhdGEtaG90LWlucHV0IiwiIiksdi5jbGFzc05hbWU9IkhhbmRzb250YWJsZUNvcHlQYXN0ZSIsdi50YWJJbmRleD0tMSx2LmF1dG9jb21wbGV0ZT0ib2ZmIix2LndyYXA9ImhhcmQiLHYudmFsdWU9IiAi''@;'; + put 'put ''LGQuYXBwZW5kQ2hpbGQodiksdn0odGhpcy5jb250YWluZXIpO3RoaXMubGlzdGVuZXJzQ291bnQuaGFzKGgpfHwodGhpcy5saXN0ZW5lcnNDb3VudC5hZGQoaCksJEVlKHRoaXMuZXZlbnRNYW5hZ2VyLGgsdGhpcykpLHRoaXMubWFpbkVsZW1lbnQ9aH19LHtrZXk6InNldEZvY3VzYWJsZUVs''@;'; + put 'put ''ZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMubGlzdGVuZXJzQ291bnQuaGFzKGgpfHwodGhpcy5saXN0ZW5lcnNDb3VudC5hZGQoaCksJEVlKHRoaXMuZXZlbnRNYW5hZ2VyLGgsdGhpcykpLHRoaXMubWFpbkVsZW1lbnQ9aH19LHtrZXk6ImdldEZvY3VzYWJsZUVsZW1lbnQiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFpbkVsZW1lbnR9fSx7a2V5OiJmb2N1cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1haW5FbGVtZW50LnZhbHVlPSIgIixiOCgpfHxXYmUodGhpcy5tYWluRWxlbWVudCl9fV0pLGR9KCk7UjIoVDhlLHNkKTt2YXIgV3RlPW5ldyBXZWFrTWFwLEk4''@;'; + put 'put ''ZT1mdW5jdGlvbihnLGgpe3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4gaC5ydW5Mb2NhbEhvb2tzKGcsdil9fTtmdW5jdGlvbiAkRWUoZCxnLGgpe2QuYWRkRXZlbnRMaXN0ZW5lcihnLCJjb3B5IixJOGUoImNvcHkiLGgpKSxkLmFkZEV2ZW50TGlzdGVuZXIoZywiY3V0IixJOGUoImN1dCIs''@;'; + put 'put ''aCkpLGQuYWRkRXZlbnRMaXN0ZW5lcihnLCJwYXN0ZSIsSThlKCJwYXN0ZSIsaCkpfXZhciBZdGU9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gcUVlKGQpe2lmKGQgaW5zdGFuY2VvZiBUOGUpe3ZhciBnPVd0ZS5nZXQoZC5jb250YWluZXIpO2lmKChnPWlzTmFOKGcpPzA6Zyk+MCYmKGctPTEpLGZ1''@;'; + put 'put ''bmN0aW9uIFlhdChkKXtkLmV2ZW50TWFuYWdlci5jbGVhcigpfShkKSxnPD0wKXtnPTA7dmFyIGg9WXRlLmdldChkLmNvbnRhaW5lcik7aCYmaC5wYXJlbnROb2RlJiYoaC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGgpLFl0ZS5kZWxldGUoZC5jb250YWluZXIpKSxkLm1haW5FbGVtZW50PW51''@;'; + put 'put ''bGx9V3RlLnNldChkLmNvbnRhaW5lcixnKX19ZnVuY3Rpb24gZXhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gVXRlKGQpe3JldHVybihVdGU9ImZ1''@;'; + put 'put ''bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5''@;'; + put 'put ''bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiB0eGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFi''@;'; + put 'put ''bGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBRUygpe3JldHVybiBRUz0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9dGx0KGcsaCk7aWYoeSl7dmFy''@;'; + put 'put ''IEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxRUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdGx0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5o''@;'; + put 'put ''YXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1IOShkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBEOGUoZCxnKXtyZXR1cm4oRDhlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19f''@;'; + put 'put ''PXksdn0pKGQsZyl9ZnVuY3Rpb24gaWx0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09VXRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0''@;'; + put 'put ''IG9yIHVuZGVmaW5lZCIpO3JldHVybiBueGUoZCl9ZnVuY3Rpb24gbnhlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBI''@;'; + put 'put ''OShkKXtyZXR1cm4oSDk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX16by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDb3B5''@;'; + put 'put ''TGltaXQiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigibW9kaWZ5Q29weWFibGVSYW5nZSIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVDdXQiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDdXQiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3Rlcigi''@;'; + put 'put ''YmVmb3JlUGFzdGUiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJQYXN0ZSIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVDb3B5Iiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29weSIpO3ZhciBRdGU9ImNvcHlQYXN0ZSIsbGx0PVsiZnJh''@;'; + put 'put ''Z21lbnRTZWxlY3Rpb24iXSxKUz1uZXcgV2Vha01hcCxyeGU9Wyc8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkhhbmRzb250YWJsZSIvPicsJzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+dGR7d2hpdGUtc3BhY2U6bm9ybWFsfWJye21zby1kYXRhLXBsYWNlbWVudDpzYW1lLWNlbGx9''@;'; + put 'put ''PC9zdHlsZT4nXS5qb2luKCIiKSxjbHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIG5sdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2Qu''@;'; + put 'put ''cHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZEOGUoZCxnKX0oaCxkKTt2YXIg''@;'; + put 'put ''Zz1mdW5jdGlvbiBybHQoZCl7dmFyIGc9ZnVuY3Rpb24gb2x0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXty''@;'; + put 'put ''ZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9SDkoZCk7aWYoZyl7dmFyIEM9SDkodGhpcykuY29uc3Ry''@;'; + put 'put ''dWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGlsdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gcWF0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhy''@;'; + put 'put ''b3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLmNvbHVtbnNMaW1pdD0xLzAseS5jb3B5YWJsZVJhbmdlcz1bXSx5LmZvY3VzYWJsZUVsZW1lbnQ9dm9pZCAwLHkucGFzdGVNb2RlPSJvdmVyd3Jp''@;'; + put 'put ''dGUiLHkucm93c0xpbWl0PTEvMCx5LnVpQ29udGFpbmVyPXkuaG90LnJvb3REb2N1bWVudC5ib2R5LEpTLnNldChueGUoeSkse2lzVHJpZ2dlcmVkQnlDb3B5OiExLGlzVHJpZ2dlcmVkQnlDdXQ6ITEsaXNCZWdpbkVkaXRpbmc6ITEsaXNGcmFnbWVudFNlbGVjdGlvbkVuYWJsZWQ6ITF9KSx5''@;'; + put 'put ''fXJldHVybiBmdW5jdGlvbiBlbHQoZCxnLGgpe2cmJnR4ZShkLnByb3RvdHlwZSxnKSxoJiZ0eGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5o''@;'; + put 'put ''b3QuZ2V0U2V0dGluZ3MoKVtRdGVdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7aWYoIXRoaXMuZW5hYmxlZCl7dmFyIEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKSxJPUNbUXRlXSxqPUMuZnJhZ21lbnRTZWxlY3Rpb247SlMuZ2V0KHRoaXMpLmlz''@;'; + put 'put ''RnJhZ21lbnRTZWxlY3Rpb25FbmFibGVkPSEhaiwib2JqZWN0Ij09PVV0ZShJKSYmKHRoaXMucGFzdGVNb2RlPUkucGFzdGVNb2RlfHx0aGlzLnBhc3RlTW9kZSx0aGlzLnJvd3NMaW1pdD1pc05hTihJLnJvd3NMaW1pdCk/dGhpcy5yb3dzTGltaXQ6SS5yb3dzTGltaXQsdGhpcy5jb2x1bW5z''@;'; + put 'put ''TGltaXQ9aXNOYU4oSS5jb2x1bW5zTGltaXQpP3RoaXMuY29sdW1uc0xpbWl0OkkuY29sdW1uc0xpbWl0LHRoaXMudWlDb250YWluZXI9SS51aUNvbnRhaW5lcnx8dGhpcy51aUNvbnRhaW5lciksdGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGZ1bmN0aW9u''@;'; + put 'put ''KF9lKXtyZXR1cm4geS5vbkFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyhfZSl9KSx0aGlzLmFkZEhvb2soImFmdGVyT25DZWxsTW91c2VVcCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyT25DZWxsTW91c2VVcCgpfSksdGhpcy5hZGRIb29rKCJhZnRlclNlbGVjdGlvbkVuZCIs''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyU2VsZWN0aW9uRW5kKCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUtleURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVLZXlEb3duKCl9KSx0aGlzLmZvY3VzYWJsZUVsZW1lbnQ9ZnVuY3Rpb24gV2F0KGQpe3ZhciBnPW5ldyBUOGUo''@;'; + put 'put ''ZCksaD1XdGUuZ2V0KGQpO3JldHVybiBoPWlzTmFOKGgpPzA6aCxXdGUuc2V0KGQsaCsxKSxnfSh0aGlzLnVpQ29udGFpbmVyKSx0aGlzLmZvY3VzYWJsZUVsZW1lbnQuYWRkTG9jYWxIb29rKCJjb3B5IixmdW5jdGlvbihfZSl7cmV0dXJuIHkub25Db3B5KF9lKX0pLmFkZExvY2FsSG9vaygi''@;'; + put 'put ''Y3V0IixmdW5jdGlvbihfZSl7cmV0dXJuIHkub25DdXQoX2UpfSkuYWRkTG9jYWxIb29rKCJwYXN0ZSIsZnVuY3Rpb24oX2Upe3JldHVybiB5Lm9uUGFzdGUoX2UpfSksUVMoSDkoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fX0se2tleToidXBkYXRlUGx1''@;'; + put 'put ''Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksdGhpcy5nZXRPckNyZWF0ZUZvY3VzYWJsZUVsZW1lbnQoKSxRUyhIOShoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImRpc2FibGVQ''@;'; + put 'put ''bHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5mb2N1c2FibGVFbGVtZW50JiZxRWUodGhpcy5mb2N1c2FibGVFbGVtZW50KSxRUyhIOShoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJjb3B5Iix2YWx1ZTpmdW5jdGlvbigpe0pTLmdldCh0''@;'; + put 'put ''aGlzKS5pc1RyaWdnZXJlZEJ5Q29weT0hMCx0aGlzLmdldE9yQ3JlYXRlRm9jdXNhYmxlRWxlbWVudCgpLHRoaXMuZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpLHRoaXMuaG90LnJvb3REb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpfX0se2tleToiY3V0Iix2YWx1ZTpmdW5jdGlvbigpe0pT''@;'; + put 'put ''LmdldCh0aGlzKS5pc1RyaWdnZXJlZEJ5Q3V0PSEwLHRoaXMuZ2V0T3JDcmVhdGVGb2N1c2FibGVFbGVtZW50KCksdGhpcy5mb2N1c2FibGVFbGVtZW50LmZvY3VzKCksdGhpcy5ob3Qucm9vdERvY3VtZW50LmV4ZWNDb21tYW5kKCJjdXQiKX19LHtrZXk6ImdldFJhbmdlZENvcHlhYmxlRGF0''@;'; + put 'put ''YSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPVtdLGo9W10sdWU9W107cmV0dXJuIFVyKHksZnVuY3Rpb24oX2Upe2lhKF9lLnN0YXJ0Um93LF9lLmVuZFJvdyxmdW5jdGlvbihCZSl7LTE9PT1qLmluZGV4T2YoQmUpJiZqLnB1c2goQmUpfSksaWEoX2Uuc3RhcnRDb2wsX2UuZW5k''@;'; + put 'put ''Q29sLGZ1bmN0aW9uKEJlKXstMT09PXVlLmluZGV4T2YoQmUpJiZ1ZS5wdXNoKEJlKX0pfSksVXIoaixmdW5jdGlvbihfZSl7dmFyIEJlPVtdO1VyKHVlLGZ1bmN0aW9uKE5lKXtCZS5wdXNoKEMuaG90LmdldENvcHlhYmxlRGF0YShfZSxOZSkpfSksSS5wdXNoKEJlKX0pLHN6KEkpfX0se2tl''@;'; + put 'put ''eToiZ2V0UmFuZ2VkRGF0YSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPVtdLGo9W10sdWU9W107cmV0dXJuIFVyKHksZnVuY3Rpb24oX2Upe2lhKF9lLnN0YXJ0Um93LF9lLmVuZFJvdyxmdW5jdGlvbihCZSl7LTE9PT1qLmluZGV4T2YoQmUpJiZqLnB1c2goQmUpfSksaWEoX2Uu''@;'; + put 'put ''c3RhcnRDb2wsX2UuZW5kQ29sLGZ1bmN0aW9uKEJlKXstMT09PXVlLmluZGV4T2YoQmUpJiZ1ZS5wdXNoKEJlKX0pfSksVXIoaixmdW5jdGlvbihfZSl7dmFyIEJlPVtdO1VyKHVlLGZ1bmN0aW9uKE5lKXtCZS5wdXNoKEMuaG90LmdldENvcHlhYmxlRGF0YShfZSxOZSkpfSksSS5wdXNoKEJl''@;'; + put 'put ''KX0pLEl9fSx7a2V5OiJwYXN0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIsQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06eTtpZih5''@;'; + put 'put ''fHxDKXt2YXIgST1uZXcgWmF0O3kmJkkuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIix5KSxDJiZJLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9odG1sIixDKSx0aGlzLmdldE9yQ3JlYXRlRm9jdXNhYmxlRWxlbWVudCgpLHRoaXMub25QYXN0ZShJKX19fSx7a2V5OiJz''@;'; + put 'put ''ZXRDb3B5YWJsZVRleHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZih5KXt2YXIgQz15LmdldFRvcFN0YXJ0Q29ybmVyKCksST15LmdldEJvdHRvbUVuZENvcm5lcigpLGo9Qy5yb3csdWU9Qy5jb2wsX2U9SS5yb3csQmU9SS5jb2ws''@;'; + put 'put ''TmU9TWF0aC5taW4oX2Usait0aGlzLnJvd3NMaW1pdC0xKSxLZT1NYXRoLm1pbihCZSx1ZSt0aGlzLmNvbHVtbnNMaW1pdC0xKTt0aGlzLmNvcHlhYmxlUmFuZ2VzLmxlbmd0aD0wLHRoaXMuY29weWFibGVSYW5nZXMucHVzaCh7c3RhcnRSb3c6aixzdGFydENvbDp1ZSxlbmRSb3c6TmUsZW5k''@;'; + put 'put ''Q29sOktlfSksdGhpcy5jb3B5YWJsZVJhbmdlcz10aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5Q29weWFibGVSYW5nZSIsdGhpcy5jb3B5YWJsZVJhbmdlcyksKF9lIT09TmV8fEJlIT09S2UpJiZ0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb3B5TGltaXQiLF9lLWorMSxCZS11ZSsxLHRoaXMu''@;'; + put 'put ''cm93c0xpbWl0LHRoaXMuY29sdW1uc0xpbWl0KX19fSx7a2V5OiJnZXRPckNyZWF0ZUZvY3VzYWJsZUVsZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0QWN0aXZlRWRpdG9yKCksQz15P3kuVEVYVEFSRUE6dm9pZCAwO0M/dGhpcy5mb2N1c2FibGVFbGVtZW50LnNl''@;'; + put 'put ''dEZvY3VzYWJsZUVsZW1lbnQoQyk6dGhpcy5mb2N1c2FibGVFbGVtZW50LnVzZVNlY29uZGFyeUVsZW1lbnQoKX19LHtrZXk6ImlzRWRpdG9yT3BlbmVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldEFjdGl2ZUVkaXRvcigpO3JldHVybiB5JiZ5LmlzT3BlbmVkKCl9fSx7''@;'; + put 'put ''a2V5OiJwb3B1bGF0ZVZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoeS5sZW5ndGgpe2Zvcih2YXIgST15Lmxlbmd0aCxq''@;'; + put 'put ''PXlbMF0ubGVuZ3RoLHVlPVtdLF9lPUMuZ2V0VG9wU3RhcnRDb3JuZXIoKSxCZT1fZS5yb3csTmU9X2UuY29sLEtlPUMuZ2V0Qm90dG9tRW5kQ29ybmVyKCksZHQ9S2Uucm93LE90PUtlLmNvbCwkdD1CZSxmbj1OZSxMbj1CZSxpcj1OZTt1ZS5sZW5ndGg8SXx8JHQ8PWR0Oyl7dmFyIG1yPXRo''@;'; + put 'put ''aXMuaG90LmdldENlbGxNZXRhKCR0LE5lKSxTcj1tci5za2lwUm93T25QYXN0ZSx3cj1tci52aXN1YWxSb3c7aWYoJHQ9d3IrMSwhMCE9PVNyKXtMbj13cixmbj1OZTtmb3IodmFyIFFyPVtdLHlpPXVlLmxlbmd0aCVJO1FyLmxlbmd0aDxqfHxmbjw9T3Q7KXt2YXIgS2k9dGhpcy5ob3QuZ2V0''@;'; + put 'put ''Q2VsbE1ldGEoQmUsZm4pLFNvPUtpLnNraXBDb2x1bW5PblBhc3RlLFBvPUtpLnZpc3VhbENvbDtpZihmbj1QbysxLCEwIT09U28pe2lyPVBvO3ZhciBTYT1Rci5sZW5ndGglajtRci5wdXNoKHlbeWldW1NhXSl9fXVlLnB1c2goUXIpfX1yZXR1cm4gdGhpcy5ob3QucG9wdWxhdGVGcm9tQXJy''@;'; + put 'put ''YXkoQmUsTmUsdWUsdm9pZCAwLHZvaWQgMCwiQ29weVBhc3RlLnBhc3RlIix0aGlzLnBhc3RlTW9kZSksW0JlLE5lLExuLGlyXX19fSx7a2V5OiJvbkNvcHkiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPUpTLmdldCh0aGlzKTtpZigodGhpcy5ob3QuaXNMaXN0ZW5pbmcoKXx8Qy5pc1RyaWdn''@;'; + put 'put ''ZXJlZEJ5Q29weSkmJiF0aGlzLmlzRWRpdG9yT3BlbmVkKCkpe3RoaXMuc2V0Q29weWFibGVUZXh0KCksQy5pc1RyaWdnZXJlZEJ5Q29weT0hMTt2YXIgST10aGlzLmdldFJhbmdlZERhdGEodGhpcy5jb3B5YWJsZVJhbmdlcyk7aWYodGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvcHkiLEks''@;'; + put 'put ''dGhpcy5jb3B5YWJsZVJhbmdlcykpe3ZhciB1ZT1zeihJKTtpZih5JiZ5LmNsaXBib2FyZERhdGEpe3ZhciBfZT1EM2UoSSk7eS5jbGlwYm9hcmREYXRhLnNldERhdGEoInRleHQvcGxhaW4iLHVlKSx5LmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9odG1sIixbcnhlLF9lXS5qb2luKCIi''@;'; + put 'put ''KSl9ZWxzZSJ1bmRlZmluZWQiPT10eXBlb2YgQ2xpcGJvYXJkRXZlbnQmJnRoaXMuaG90LnJvb3RXaW5kb3cuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJUZXh0Iix1ZSk7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29weSIsSSx0aGlzLmNvcHlhYmxlUmFuZ2VzKX15LnByZXZlbnREZWZhdWx0''@;'; + put 'put ''KCl9fX0se2tleToib25DdXQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPUpTLmdldCh0aGlzKTtpZigodGhpcy5ob3QuaXNMaXN0ZW5pbmcoKXx8Qy5pc1RyaWdnZXJlZEJ5Q3V0KSYmIXRoaXMuaXNFZGl0b3JPcGVuZWQoKSl7dGhpcy5zZXRDb3B5YWJsZVRleHQoKSxDLmlzVHJpZ2dlcmVk''@;'; + put 'put ''QnlDdXQ9ITE7dmFyIEk9dGhpcy5nZXRSYW5nZWREYXRhKHRoaXMuY29weWFibGVSYW5nZXMpO2lmKHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDdXQiLEksdGhpcy5jb3B5YWJsZVJhbmdlcykpe3ZhciB1ZT1zeihJKTtpZih5JiZ5LmNsaXBib2FyZERhdGEpe3ZhciBfZT1EM2UoSSk7eS5j''@;'; + put 'put ''bGlwYm9hcmREYXRhLnNldERhdGEoInRleHQvcGxhaW4iLHVlKSx5LmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9odG1sIixbcnhlLF9lXS5qb2luKCIiKSl9ZWxzZSJ1bmRlZmluZWQiPT10eXBlb2YgQ2xpcGJvYXJkRXZlbnQmJnRoaXMuaG90LnJvb3RXaW5kb3cuY2xpcGJvYXJkRGF0''@;'; + put 'put ''YS5zZXREYXRhKCJUZXh0Iix1ZSk7dGhpcy5ob3QuZW1wdHlTZWxlY3RlZENlbGxzKCJDb3B5UGFzdGUuY3V0IiksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ3V0IixJLHRoaXMuY29weWFibGVSYW5nZXMpfXkucHJldmVudERlZmF1bHQoKX19fSx7a2V5OiJvblBhc3RlIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbih5KXtpZih0aGlzLmhvdC5pc0xpc3RlbmluZygpJiYhdGhpcy5pc0VkaXRvck9wZW5lZCgpKXt2YXIgQztpZih5JiZ5LnByZXZlbnREZWZhdWx0JiZ5LnByZXZlbnREZWZhdWx0KCkseSYmdm9pZCAwIT09eS5jbGlwYm9hcmREYXRhKXt2YXIgST1xcSh5LmNsaXBib2FyZERhdGEuZ2V0''@;'; + put 'put ''RGF0YSgidGV4dC9odG1sIikse0FERF9UQUdTOlsibWV0YSJdLEFERF9BVFRSOlsiY29udGVudCJdLEZPUkNFX0JPRFk6ITB9KTtDPUkmJi8oPHRhYmxlKXwoPFRBQkxFKS9nLnRlc3QoSSk/dV9lKEksdGhpcy5ob3Qucm9vdERvY3VtZW50KS5kYXRhOnkuY2xpcGJvYXJkRGF0YS5nZXREYXRh''@;'; + put 'put ''KCJ0ZXh0L3BsYWluIil9ZWxzZSJ1bmRlZmluZWQiPT10eXBlb2YgQ2xpcGJvYXJkRXZlbnQmJnZvaWQgMCE9PXRoaXMuaG90LnJvb3RXaW5kb3cuY2xpcGJvYXJkRGF0YSYmKEM9dGhpcy5ob3Qucm9vdFdpbmRvdy5jbGlwYm9hcmREYXRhLmdldERhdGEoIlRleHQiKSk7aWYoInN0cmluZyI9''@;'; + put 'put ''PXR5cGVvZiBDJiYoQz1mdW5jdGlvbiBlcWUoZCl7dmFyIGc9W1siIl1dO2lmKDA9PT1kLmxlbmd0aClyZXR1cm4gZztmb3IodmFyIHksaD0wLHY9MDtkLmxlbmd0aD4wJiZ5IT09ZC5sZW5ndGg7KWlmKHk9ZC5sZW5ndGgsZC5tYXRjaChfU2UpKWQ9ZC5yZXBsYWNlKF9TZSwiIiksZ1t2XVto''@;'; + put 'put ''Kz0xXT0iIjtlbHNlIGlmKGQubWF0Y2goYlNlKSlkPWQucmVwbGFjZShiU2UsIiIpLGg9MCxnW3YrPTFdPVsiIl07ZWxzZXt2YXIgQz0iIjtpZihkLnN0YXJ0c1dpdGgoJyInKSl7Zm9yKHZhciBJPTAsaj0hMDtqOyl7dmFyIHVlPWQuc2xpY2UoMCwxKTsnIic9PT11ZSYmKEkrPTEpLEMrPXVl''@;'; + put 'put ''LCgwPT09KGQ9ZC5zbGljZSgxKSkubGVuZ3RofHxkLm1hdGNoKC9eW1x0XHJcbl0vKSYmSSUyPT0wKSYmKGo9ITEpfUM9Qy5yZXBsYWNlKC9eIi8sIiIpLnJlcGxhY2UoLyIkLywiIikucmVwbGFjZSgvWyJdKi9nLGZ1bmN0aW9uKEJlKXtyZXR1cm4gbmV3IEFycmF5KE1hdGguZmxvb3IoQmUu''@;'; + put 'put ''bGVuZ3RoLzIpKS5maWxsKCciJykuam9pbigiIil9KX1lbHNle3ZhciBfZT1kLm1hdGNoKHEkZSk7ZD1kLnNsaWNlKChDPV9lP19lWzBdOiIiKS5sZW5ndGgpfWdbdl1baF09Q31yZXR1cm4gZ30oQykpLCghQ3x8MCE9PUMubGVuZ3RoKSYmITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3Jl''@;'; + put 'put ''UGFzdGUiLEMsdGhpcy5jb3B5YWJsZVJhbmdlcykpe3ZhciBfZT1mdW5jdGlvbiBRYXQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gJGF0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBLYXQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5''@;'; + put 'put ''cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9''@;'; + put 'put ''ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBYYXQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGV4ZShk''@;'; + put 'put ''LGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50''@;'; + put 'put ''cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gZXhlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBKYXQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGlu''@;'; + put 'put ''c3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfSh0aGlzLnBvcHVsYXRlVmFsdWVzKEMpLDQpLEtlPV9lWzJdLGR0PV9lWzNdO3RoaXMuaG90LnNlbGVjdENlbGwoX2Vb''@;'; + put 'put ''MF0sX2VbMV0sTWF0aC5taW4odGhpcy5ob3QuY291bnRSb3dzKCktMSxLZSksTWF0aC5taW4odGhpcy5ob3QuY291bnRDb2xzKCktMSxkdCkpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclBhc3RlIixDLHRoaXMuY29weWFibGVSYW5nZXMpfX19fSx7a2V5OiJvbkFmdGVyQ29udGV4dE1lbnVE''@;'; + put 'put ''ZWZhdWx0T3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oeSl7eS5pdGVtcy5wdXNoKHtuYW1lOiItLS0tLS0tLS0ifSxmdW5jdGlvbiBCYXQoZCl7cmV0dXJue2tleToiY29weSIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoTzRlKX0sY2FsbGJhY2s6ZnVu''@;'; + put 'put ''Y3Rpb24oKXtkLmNvcHkoKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtpZigwPT09dGhpcy5jb3VudFJvd3MoKXx8MD09PXRoaXMuY291bnRDb2xzKCkpcmV0dXJuITA7dmFyIGg9dGhpcy5nZXRTZWxlY3RlZCgpO3JldHVybiFofHxoLmxlbmd0aD4xfSxoaWRkZW46ITF9fSh0aGlzKSxmdW5jdGlv''@;'; + put 'put ''biBQYXQoZCl7cmV0dXJue2tleToiY3V0IixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShSNGUpfSxjYWxsYmFjazpmdW5jdGlvbigpe2QuY3V0KCl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7aWYoMD09PXRoaXMuY291bnRSb3dzKCl8fDA9PT10aGlzLmNv''@;'; + put 'put ''dW50Q29scygpKXJldHVybiEwO3ZhciBoPXRoaXMuZ2V0U2VsZWN0ZWQoKTtyZXR1cm4haHx8aC5sZW5ndGg+MX0saGlkZGVuOiExfX0odGhpcykpfX0se2tleToib25BZnRlck9uQ2VsbE1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKCl7IXRoaXMuaG90LmlzTGlzdGVuaW5nKCl8fHRoaXMuaXNF''@;'; + put 'put ''ZGl0b3JPcGVuZWQoKXx8dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5mcmFnbWVudFNlbGVjdGlvbnx8KHRoaXMuZ2V0T3JDcmVhdGVGb2N1c2FibGVFbGVtZW50KCksdGhpcy5mb2N1c2FibGVFbGVtZW50LmZvY3VzKCkpfX0se2tleToib25BZnRlclNlbGVjdGlvbkVuZCIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXt2YXIgQz1KUy5nZXQodGhpcykuaXNGcmFnbWVudFNlbGVjdGlvbkVuYWJsZWQ7dGhpcy5pc0VkaXRvck9wZW5lZCgpfHwodGhpcy5nZXRPckNyZWF0ZUZvY3VzYWJsZUVsZW1lbnQoKSwoIUN8fHRoaXMuZm9jdXNhYmxlRWxlbWVudC5nZXRGb2N1c2FibGVFbGVtZW50KCk9PT10aGlz''@;'; + put 'put ''LmhvdC5yb290RG9jdW1lbnQuYWN0aXZlRWxlbWVudHx8IVpiZSgpKSYmKHRoaXMuc2V0Q29weWFibGVUZXh0KCksdGhpcy5mb2N1c2FibGVFbGVtZW50LmZvY3VzKCkpKX19LHtrZXk6Im9uQmVmb3JlS2V5RG93biIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmhvdC5pc0xpc3RlbmluZygp''@;'; + put 'put ''JiYhdGhpcy5pc0VkaXRvck9wZW5lZCgpKXt2YXIgeT10aGlzLmhvdC5yb290RG9jdW1lbnQuYWN0aXZlRWxlbWVudCxDPXRoaXMuaG90LmdldEFjdGl2ZUVkaXRvcigpOyFDfHx5IT09dGhpcy5mb2N1c2FibGVFbGVtZW50LmdldEZvY3VzYWJsZUVsZW1lbnQoKSYmeSE9PUMuc2VsZWN0fHwo''@;'; + put 'put ''dGhpcy5nZXRPckNyZWF0ZUZvY3VzYWJsZUVsZW1lbnQoKSx0aGlzLmZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKSl9fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmZvY3VzYWJsZUVsZW1lbnQmJihxRWUodGhpcy5mb2N1c2FibGVFbGVtZW50KSx0aGlzLmZvY3VzYWJs''@;'; + put 'put ''ZUVsZW1lbnQ9bnVsbCksUVMoSDkoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUXRlfX0se2tleToiU0VUVElOR19LRVlTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5bUXRlXS5jb25jYXQo''@;'; + put 'put ''bGx0KX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDgwfX1dKSxofShZcyk7ZnVuY3Rpb24gaXhlKGQsZyl7cmV0dXJuImJvcmRlcl9yb3ciLmNvbmNhdChkLCJjb2wiKS5jb25jYXQoZyl9ZnVuY3Rpb24gTDhlKGQpe3ZhciBnLGg7cmV0dXJuKFRvKGQu''@;'; + put 'put ''c3RhcnQpfHxUbyhkLmxlZnQpKSYmKGQuc3RhcnQ9bnVsbCE9PShnPWQuc3RhcnQpJiZ2b2lkIDAhPT1nP2c6ZC5sZWZ0KSwoVG8oZC5lbmQpfHxUbyhkLnJpZ2h0KSkmJihkLmVuZD1udWxsIT09KGg9ZC5lbmQpJiZ2b2lkIDAhPT1oP2g6ZC5yaWdodCksZGVsZXRlIGQubGVmdCxkZWxldGUg''@;'; + put 'put ''ZC5yaWdodCxkfWZ1bmN0aW9uIGJ6KGQpe3JldHVybiBUbyhkLnN0YXJ0KSYmKGQubGVmdD1kLnN0YXJ0KSxUbyhkLmVuZCkmJihkLnJpZ2h0PWQuZW5kKSxkfWZ1bmN0aW9uIE84ZShkLGcpe3JldHVybntpZDppeGUoZCxnKSxib3JkZXI6e3dpZHRoOjEsY29sb3I6IiMwMDAiLGNvcm5lclZp''@;'; + put 'put ''c2libGU6ITF9LHJvdzpkLGNvbDpnLHRvcDp7aGlkZTohMH0sYm90dG9tOntoaWRlOiEwfSxzdGFydDp7aGlkZTohMH0sZW5kOntoaWRlOiEwfX19ZnVuY3Rpb24gVjkoZCxnKXt2YXIgaD0hMTtyZXR1cm4gVXIoZC5nZXRTZWxlY3RlZFJhbmdlKCksZnVuY3Rpb24odil7di5mb3JBbGwoZnVu''@;'; + put 'put ''Y3Rpb24oeSxDKXtpZighKHk8MHx8QzwwKSl7dmFyIEk9ZC5nZXRDZWxsTWV0YSh5LEMpLmJvcmRlcnM7aWYoSSl7aWYoIWcpcmV0dXJuIGg9ITAsITE7aWYoIW8xKElbZ10sImhpZGUiKXx8ITE9PT1JW2ddLmhpZGUpcmV0dXJuIGg9ITAsITF9fX0pfSksaH1mdW5jdGlvbiBKdGUoZCl7cmV0''@;'; + put 'put ''dXJuJzxzcGFuIGNsYXNzPSJzZWxlY3RlZCI+Jy5jb25jYXQoU3RyaW5nLmZyb21DaGFyQ29kZSgxMDAwMyksIjwvc3Bhbj4iKS5jb25jYXQoZCl9dmFyIGdsdD1uZXcgTWFwKFtbImxlZnQiLCJzdGFydCJdLFsicmlnaHQiLCJlbmQiXV0pO2Z1bmN0aW9uIHZsdChkKXtyZXR1cm57a2V5OiJi''@;'; + put 'put ''b3JkZXJzOnRvcCIsbmFtZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZSgkNGUpO3JldHVybiBWOSh0aGlzLCJ0b3AiKSYmKGg9SnRlKGgpKSxofSxjYWxsYmFjazpmdW5jdGlvbihoLHYpe3ZhciB5PVY5KHRoaXMsInRvcCIpO2QucHJlcGFyZUJvcmRlcih2LCJ0''@;'; + put 'put ''b3AiLHkpfX19ZnVuY3Rpb24gQWx0KGQpe3ZhciBnPWQuaG90LmlzUnRsKCk/InN0YXJ0IjoiZW5kIjtyZXR1cm57a2V5OiJib3JkZXJzOnJpZ2h0IixuYW1lOmZ1bmN0aW9uKCl7dmFyIHY9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKHE0ZSk7cmV0dXJuIFY5KHRoaXMsZykmJih2PUp0ZSh2''@;'; + put 'put ''KSksdn0sY2FsbGJhY2s6ZnVuY3Rpb24odix5KXt2YXIgQz1WOSh0aGlzLGcpO2QucHJlcGFyZUJvcmRlcih5LGcsQyl9fX1mdW5jdGlvbiB5bHQoZCl7cmV0dXJue2tleToiYm9yZGVyczpib3R0b20iLG5hbWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoZXBl''@;'; + put 'put ''KTtyZXR1cm4gVjkodGhpcywiYm90dG9tIikmJihoPUp0ZShoKSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oaCx2KXt2YXIgeT1WOSh0aGlzLCJib3R0b20iKTtkLnByZXBhcmVCb3JkZXIodiwiYm90dG9tIix5KX19fWZ1bmN0aW9uIHdsdChkKXt2YXIgZz1kLmhvdC5pc1J0bCgpPyJlbmQiOiJz''@;'; + put 'put ''dGFydCI7cmV0dXJue2tleToiYm9yZGVyczpsZWZ0IixuYW1lOmZ1bmN0aW9uKCl7dmFyIHY9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKHRwZSk7cmV0dXJuIFY5KHRoaXMsZykmJih2PUp0ZSh2KSksdn0sY2FsbGJhY2s6ZnVuY3Rpb24odix5KXt2YXIgQz1WOSh0aGlzLGcpO2QucHJlcGFy''@;'; + put 'put ''ZUJvcmRlcih5LGcsQyl9fX1mdW5jdGlvbiBibHQoZCl7cmV0dXJue2tleToiYm9yZGVyczpub19ib3JkZXJzIixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShucGUpfSxjYWxsYmFjazpmdW5jdGlvbihoLHYpe2QucHJlcGFyZUJvcmRlcih2LCJub0Jv''@;'; + put 'put ''cmRlcnMiKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hVjkodGhpcyl9fX1mdW5jdGlvbiBSOGUoZCl7cmV0dXJuKFI4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1''@;'; + put 'put ''bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIG94ZShkLGcpe3JldHVybiBmdW5jdGlvbiBTbHQoZCl7aWYoQXJyYXku''@;'; + put 'put ''aXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIGtsdChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7''@;'; + put 'put ''Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBq''@;'; + put 'put ''fX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIENsdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gYXhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYm''@;'; + put 'put ''KGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBheGUoZCxnKX19KGQsZyl8fGZ1bmN0''@;'; + put 'put ''aW9uIF9sdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRo''@;'; + put 'put ''b2QuIil9KCl9ZnVuY3Rpb24gYXhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gTWx0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3''@;'; + put 'put ''IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbHhlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYm''@;'; + put 'put ''Jih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gWFMoKXtyZXR1cm4gWFM9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PXhsdChnLGgp''@;'; + put 'put ''O2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sWFMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHhsdChkLGcpe2Zvcig7IU9iamVjdC5w''@;'; + put 'put ''cm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9ajkoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gQjhlKGQsZyl7cmV0dXJuKEI4ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2''@;'; + put 'put ''Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIERsdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVI4ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0''@;'; + put 'put ''dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gc3hlKGQpfWZ1bmN0aW9uIHN4ZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9''@;'; + put 'put ''ZnVuY3Rpb24gajkoZCl7cmV0dXJuKGo5PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9ZnVuY3Rpb24gT2x0KGQsZyxoKXtyZXR1cm4g''@;'; + put 'put ''ZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgWHRlPSJjdXN0b21Cb3JkZXJzIixCbHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFRsdChkLGcpe2lmKCJmdW5jdGlv''@;'; + put 'put ''biIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRh''@;'; + put 'put ''YmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZCOGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBJbHQoZCl7dmFyIGc9ZnVuY3Rpb24gTGx0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZs''@;'; + put 'put ''ZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10s''@;'; + put 'put ''ZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9ajkoZCk7aWYoZyl7dmFyIEM9ajkodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3Vt''@;'; + put 'put ''ZW50cyk7cmV0dXJuIERsdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3ZhciB2O01sdCh0aGlzLGgpO2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiBPbHQoc3hlKHY9Zy5jYWxsLmFwcGx5KGcs''@;'; + put 'put ''W3RoaXNdLmNvbmNhdChDKSkpLCJzYXZlZEJvcmRlcnMiLFtdKSx2fXJldHVybiBmdW5jdGlvbiBFbHQoZCxnLGgpe2cmJmx4ZShkLnByb3RvdHlwZSxnKSxoJiZseGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNF''@;'; + put 'put ''bmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtYdGVdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9w''@;'; + put 'put ''dGlvbnMiLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uQWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zKEMpfSksdGhpcy5hZGRIb29rKCJpbml0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJJbml0KCl9KSxYUyhqOShoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2Fs''@;'; + put 'put ''bCh0aGlzKSl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaGlkZUJvcmRlcnMoKSxYUyhqOShoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5k''@;'; + put 'put ''aXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSx0aGlzLmNoYW5nZUJvcmRlclNldHRpbmdzKCksWFMoajkoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJzZXRCb3JkZXJzIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXMs''@;'; + put 'put ''aj1bInRvcCIsImJvdHRvbSIsInN0YXJ0IiwiZW5kIl0sdWU9bnVsbDtDJiYodGhpcy5jaGVja1NldHRpbmdzQ29oZXNpb24oW0NdKSxqPU9iamVjdC5rZXlzKEMpLHVlPUw4ZShDKSk7dmFyIEJlPWx6KHBPKHkpKTtVcih5LGZ1bmN0aW9uKE5lKXtmb3IodmFyIGR0PW94ZShCZShOZSksNCks''@;'; + put 'put ''JHQ9ZHRbMV0sZm49ZHRbMl0sTG49ZHRbM10saXI9ZnVuY3Rpb24od3Ipe2Zvcih2YXIgUXI9ZnVuY3Rpb24oU28pe1VyKGosZnVuY3Rpb24oUG8pe0kucHJlcGFyZUJvcmRlckZyb21DdXN0b21BZGRlZCh3cixTbyx1ZSxmdW5jdGlvbiBtbHQoZCl7dmFyIGc7cmV0dXJuIG51bGwhPT0oZz1n''@;'; + put 'put ''bHQuZ2V0KGQpKSYmdm9pZCAwIT09Zz9nOmR9KFBvKSl9KX0seWk9JHQ7eWk8PUxuO3lpKz0xKVFyKHlpKX0sbXI9ZHRbMF07bXI8PWZuO21yKz0xKWlyKG1yKX0pLHRoaXMuaG90LnZpZXcucmVuZGVyKCl9fSx7a2V5OiJnZXRCb3JkZXJzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlz''@;'; + put 'put ''O2lmKCFBcnJheS5pc0FycmF5KHkpKXJldHVybiB0aGlzLnNhdmVkQm9yZGVyczt2YXIgaj1seihwTyh5KSksdWU9W107cmV0dXJuIFVyKHksZnVuY3Rpb24oX2Upe2Zvcih2YXIgTmU9b3hlKGooX2UpLDQpLGR0PU5lWzFdLE90PU5lWzJdLCR0PU5lWzNdLGZuPWZ1bmN0aW9uKG1yKXtmb3Io''@;'; + put 'put ''dmFyIFNyPWZ1bmN0aW9uKHlpKXtVcihDLnNhdmVkQm9yZGVycyxmdW5jdGlvbihLaSl7S2kucm93PT09bXImJktpLmNvbD09PXlpJiZ1ZS5wdXNoKGJ6KEtpKSl9KX0sd3I9ZHQ7d3I8PSR0O3dyKz0xKVNyKHdyKX0sTG49TmVbMF07TG48PU90O0xuKz0xKWZuKExuKX0pLHVlfX0se2tleToi''@;'; + put 'put ''Y2xlYXJCb3JkZXJzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO3k/dGhpcy5zZXRCb3JkZXJzKHkpOihVcih0aGlzLnNhdmVkQm9yZGVycyxmdW5jdGlvbihJKXtDLmNsZWFyQm9yZGVyc0Zyb21TZWxlY3Rpb25TZXR0aW5ncyhJLmlkKSxDLmNsZWFyTnVsbENlbGxSYW5nZSgpLEMu''@;'; + put 'put ''aG90LnJlbW92ZUNlbGxNZXRhKEkucm93LEkuY29sLCJib3JkZXJzIil9KSx0aGlzLnNhdmVkQm9yZGVycy5sZW5ndGg9MCl9fSx7a2V5OiJpbnNlcnRCb3JkZXJJbnRvU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dGhpcy5jaGVja1NhdmVkQm9yZGVycyh5KXx8dGhpcy5zYXZlZEJv''@;'; + put 'put ''cmRlcnMucHVzaCh5KTt2YXIgaj10aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHkucm93LHkuY29sKSk7dGhpcy5jaGVja0N1c3RvbVNlbGVjdGlvbnMoeSxqLEMpfHx0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmFkZEN1c3RvbVNlbGVj''@;'; + put 'put ''dGlvbih7Ym9yZGVyOnksdmlzdWFsQ2VsbFJhbmdlOmp9KX19LHtrZXk6InByZXBhcmVCb3JkZXJGcm9tQ3VzdG9tQWRkZWQiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLGope3ZhciB1ZT10aGlzLmhvdC5jb3VudFJvd3MoKSxfZT10aGlzLmhvdC5jb3VudENvbHMoKTtpZighKHk+PXVlfHxDPj1f''@;'; + put 'put ''ZSkpe3ZhciBCZT1POGUoeSxDKTtJJiYoQmU9ZnVuY3Rpb24gaGx0KGQsZyl7cmV0dXJuIG8xKGcsImJvcmRlciIpJiZnLmJvcmRlciYmKGQuYm9yZGVyPWcuYm9yZGVyKSxvMShnLCJ0b3AiKSYmVG8oZy50b3ApJiYoZy50b3A/KHhsKGcudG9wKXx8KGcudG9wPXt3aWR0aDoxLGNvbG9yOiIj''@;'; + put 'put ''MDAwIn0pLGQudG9wPWcudG9wKTooZy50b3A9e2hpZGU6ITB9LGQudG9wPWcudG9wKSksbzEoZywiYm90dG9tIikmJlRvKGcuYm90dG9tKSYmKGcuYm90dG9tPyh4bChnLmJvdHRvbSl8fChnLmJvdHRvbT17d2lkdGg6MSxjb2xvcjoiIzAwMCJ9KSxkLmJvdHRvbT1nLmJvdHRvbSk6KGcuYm90''@;'; + put 'put ''dG9tPXtoaWRlOiEwfSxkLmJvdHRvbT1nLmJvdHRvbSkpLG8xKGcsInN0YXJ0IikmJlRvKGcuc3RhcnQpJiYoZy5zdGFydD8oeGwoZy5zdGFydCl8fChnLnN0YXJ0PXt3aWR0aDoxLGNvbG9yOiIjMDAwIn0pLGQuc3RhcnQ9Zy5zdGFydCk6KGcuc3RhcnQ9e2hpZGU6ITB9LGQuc3RhcnQ9Zy5z''@;'; + put 'put ''dGFydCkpLG8xKGcsImVuZCIpJiZUbyhnLmVuZCkmJihnLmVuZD8oeGwoZy5lbmQpfHwoZy5lbmQ9e3dpZHRoOjEsY29sb3I6IiMwMDAifSksZC5lbmQ9Zy5lbmQpOihnLmVuZD17aGlkZTohMH0sZC5lbmQ9Zy5lbmQpKSxkfShCZSxJKSxVcih0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0''@;'; + put 'put ''LmN1c3RvbVNlbGVjdGlvbnMsZnVuY3Rpb24oTmUpe2lmKEJlLmlkPT09TmUuc2V0dGluZ3MuaWQpcmV0dXJuIE9iamVjdC5hc3NpZ24oTmUuc2V0dGluZ3MsSSksQmUuaWQ9TmUuc2V0dGluZ3MuaWQsQmUudG9wPU5lLnNldHRpbmdzLnRvcCxCZS5ib3R0b209TmUuc2V0dGluZ3MuYm90dG9t''@;'; + put 'put ''LEJlLnN0YXJ0PU5lLnNldHRpbmdzLnN0YXJ0LEJlLmVuZD1OZS5zZXR0aW5ncy5lbmQsITF9KSksdGhpcy5ob3Quc2V0Q2VsbE1ldGEoeSxDLCJib3JkZXJzIixieihCZSkpLHRoaXMuaW5zZXJ0Qm9yZGVySW50b1NldHRpbmdzKEJlLGopfX19LHtrZXk6InByZXBhcmVCb3JkZXJGcm9tQ3Vz''@;'; + put 'put ''dG9tQWRkZWRSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLGo9TWF0aC5taW4oeS50by5yb3csdGhpcy5ob3QuY291bnRSb3dzKCktMSksdWU9TWF0aC5taW4oeS50by5jb2wsdGhpcy5ob3QuY291bnRDb2xzKCktMSk7aWEoeS5mcm9tLnJvdyxqLGZ1bmN0aW9uKF9lKXtp''@;'; + put 'put ''YSh5LmZyb20uY29sLHVlLGZ1bmN0aW9uKEJlKXt2YXIgTmU9TzhlKF9lLEJlKSxLZT0wO19lPT09eS5mcm9tLnJvdyYmbzEoQywidG9wIikmJihLZSs9MSxOZS50b3A9Qy50b3ApLF9lPT09eS50by5yb3cmJm8xKEMsImJvdHRvbSIpJiYoS2UrPTEsTmUuYm90dG9tPUMuYm90dG9tKSxCZT09''@;'; + put 'put ''PXkuZnJvbS5jb2wmJm8xKEMsInN0YXJ0IikmJihLZSs9MSxOZS5zdGFydD1DLnN0YXJ0KSxCZT09PXkudG8uY29sJiZvMShDLCJlbmQiKSYmKEtlKz0xLE5lLmVuZD1DLmVuZCksS2U+MCYmKEkuaG90LnNldENlbGxNZXRhKF9lLEJlLCJib3JkZXJzIixieihOZSkpLEkuaW5zZXJ0Qm9yZGVy''@;'; + put 'put ''SW50b1NldHRpbmdzKE5lKSl9KX0pfX0se2tleToicmVtb3ZlQWxsQm9yZGVycyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1peGUoeSxDKTt0aGlzLnNwbGljZUJvcmRlcihJKSx0aGlzLmNsZWFyQm9yZGVyc0Zyb21TZWxlY3Rpb25TZXR0aW5ncyhJKSx0aGlzLmNsZWFyTnVsbENlbGxS''@;'; + put 'put ''YW5nZSgpLHRoaXMuaG90LnJlbW92ZUNlbGxNZXRhKHksQywiYm9yZGVycyIpfX0se2tleToic2V0Qm9yZGVyIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqKXt2YXIgdWU9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEoeSxDKS5ib3JkZXJzO3VlPXVlJiZ2b2lkIDAhPT11ZS5ib3JkZXI/TDhlKHVlKTpP''@;'; + put 'put ''OGUoeSxDKSxqPyh1ZVtJXT17aGlkZTohMH0sND09PXRoaXMuY291bnRIaWRlKHVlKT90aGlzLnJlbW92ZUFsbEJvcmRlcnMoeSxDKToodGhpcy5jaGVja0N1c3RvbVNlbGVjdGlvbnNGcm9tQ29udGV4dE1lbnUodWUsSSxqKXx8dGhpcy5pbnNlcnRCb3JkZXJJbnRvU2V0dGluZ3ModWUpLHRo''@;'; + put 'put ''aXMuaG90LnNldENlbGxNZXRhKHksQywiYm9yZGVycyIsYnoodWUpKSkpOih1ZVtJXT17d2lkdGg6MSxjb2xvcjoiIzAwMCJ9LHRoaXMuY2hlY2tDdXN0b21TZWxlY3Rpb25zRnJvbUNvbnRleHRNZW51KHVlLEksail8fHRoaXMuaW5zZXJ0Qm9yZGVySW50b1NldHRpbmdzKHVlKSx0aGlzLmhv''@;'; + put 'put ''dC5zZXRDZWxsTWV0YSh5LEMsImJvcmRlcnMiLGJ6KHVlKSkpfX0se2tleToicHJlcGFyZUJvcmRlciIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBqPXRoaXM7VXIoeSxmdW5jdGlvbih1ZSl7dmFyIF9lPXVlLnN0YXJ0LEJlPXVlLmVuZDtpZihfZS5yb3c9PT1CZS5yb3cmJl9lLmNvbD09''@;'; + put 'put ''PUJlLmNvbCkibm9Cb3JkZXJzIj09PUM/ai5yZW1vdmVBbGxCb3JkZXJzKF9lLnJvdyxfZS5jb2wpOmouc2V0Qm9yZGVyKF9lLnJvdyxfZS5jb2wsQyxJKTtlbHNlIHN3aXRjaChDKXtjYXNlIm5vQm9yZGVycyI6aWEoX2UuY29sLEJlLmNvbCxmdW5jdGlvbihOZSl7aWEoX2Uucm93LEJlLnJv''@;'; + put 'put ''dyxmdW5jdGlvbihLZSl7ai5yZW1vdmVBbGxCb3JkZXJzKEtlLE5lKX0pfSk7YnJlYWs7Y2FzZSJ0b3AiOmlhKF9lLmNvbCxCZS5jb2wsZnVuY3Rpb24oTmUpe2ouc2V0Qm9yZGVyKF9lLnJvdyxOZSxDLEkpfSk7YnJlYWs7Y2FzZSJib3R0b20iOmlhKF9lLmNvbCxCZS5jb2wsZnVuY3Rpb24o''@;'; + put 'put ''TmUpe2ouc2V0Qm9yZGVyKEJlLnJvdyxOZSxDLEkpfSk7YnJlYWs7Y2FzZSJzdGFydCI6aWEoX2Uucm93LEJlLnJvdyxmdW5jdGlvbihOZSl7ai5zZXRCb3JkZXIoTmUsX2UuY29sLEMsSSl9KTticmVhaztjYXNlImVuZCI6aWEoX2Uucm93LEJlLnJvdyxmdW5jdGlvbihOZSl7ai5zZXRCb3Jk''@;'; + put 'put ''ZXIoTmUsQmUuY29sLEMsSSl9KX19KX19LHtrZXk6ImNyZWF0ZUN1c3RvbUJvcmRlcnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7VXIoeSxmdW5jdGlvbihJKXt2YXIgaj1MOGUoSSk7SS5yYW5nZT9DLnByZXBhcmVCb3JkZXJGcm9tQ3VzdG9tQWRkZWRSYW5nZShJLnJhbmdlLGop''@;'; + put 'put ''OkMucHJlcGFyZUJvcmRlckZyb21DdXN0b21BZGRlZChJLnJvdyxJLmNvbCxqKX0pfX0se2tleToiY291bnRIaWRlIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gU3UoW3kudG9wLHkuYm90dG9tLHkuc3RhcnQseS5lbmRdLGZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U9QmU7cmV0dXJuIE5lJiZO''@;'; + put 'put ''ZS5oaWRlJiYoS2UrPTEpLEtlfSwwKX19LHtrZXk6ImNsZWFyQm9yZGVyc0Zyb21TZWxlY3Rpb25TZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9T2wodGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zLGZ1bmN0aW9uKEkpe3JldHVybiBJLnNldHRp''@;'; + put 'put ''bmdzLmlkfSkuaW5kZXhPZih5KTtDPi0xJiZ0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmN1c3RvbVNlbGVjdGlvbnNbQ10uY2xlYXIoKX19LHtrZXk6ImNsZWFyTnVsbENlbGxSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO1VyKHRoaXMuaG90LnNlbGVjdGlvbi5oaWdo''@;'; + put 'put ''bGlnaHQuY3VzdG9tU2VsZWN0aW9ucyxmdW5jdGlvbihDLEkpe2lmKG51bGw9PT1DLmNlbGxSYW5nZSlyZXR1cm4geS5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zW0ldLmRlc3Ryb3koKSx5LmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmN1c3RvbVNlbGVjdGlvbnMu''@;'; + put 'put ''c3BsaWNlKEksMSksITF9KX19LHtrZXk6ImhpZGVCb3JkZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7VXIodGhpcy5zYXZlZEJvcmRlcnMsZnVuY3Rpb24oQyl7eS5jbGVhckJvcmRlcnNGcm9tU2VsZWN0aW9uU2V0dGluZ3MoQy5pZCkseS5jbGVhck51bGxDZWxsUmFuZ2UoKX0p''@;'; + put 'put ''fX0se2tleToic3BsaWNlQm9yZGVyIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1PbCh0aGlzLnNhdmVkQm9yZGVycyxmdW5jdGlvbihJKXtyZXR1cm4gSS5pZH0pLmluZGV4T2YoeSk7Qz4tMSYmdGhpcy5zYXZlZEJvcmRlcnMuc3BsaWNlKEMsMSl9fSx7a2V5OiJjaGVja1NhdmVkQm9yZGVy''@;'; + put 'put ''cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPSExO3JldHVybiA0PT09dGhpcy5jb3VudEhpZGUoeSk/KHRoaXMuc3BsaWNlQm9yZGVyKHkuaWQpLEk9ITApOlVyKHRoaXMuc2F2ZWRCb3JkZXJzLGZ1bmN0aW9uKHVlLF9lKXtpZih5LmlkPT09dWUuaWQpcmV0dXJuIEMuc2F2ZWRC''@;'; + put 'put ''b3JkZXJzW19lXT15LEk9ITAsITF9KSxJfX0se2tleToiY2hlY2tDdXN0b21TZWxlY3Rpb25zRnJvbUNvbnRleHRNZW51Iix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9ITE7cmV0dXJuIFVyKHRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuY3VzdG9tU2VsZWN0aW9ucyxmdW5jdGlv''@;'; + put 'put ''bih1ZSl7aWYoeS5pZD09PXVlLnNldHRpbmdzLmlkKXJldHVybiBHbCh1ZS5pbnN0YW5jZUJvcmRlcnMsZnVuY3Rpb24oX2Upe19lLnRvZ2dsZUhpZGRlbkNsYXNzKEMsSSl9KSxqPSEwLCExfSksan19LHtrZXk6ImNoZWNrQ3VzdG9tU2VsZWN0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkp''@;'; + put 'put ''e3ZhciBqPXRoaXMuY291bnRIaWRlKHkpLHVlPSExO3JldHVybiA0PT09aj8odGhpcy5yZW1vdmVBbGxCb3JkZXJzKHkucm93LHkuY29sKSx1ZT0hMCk6VXIodGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zLGZ1bmN0aW9uKF9lKXtpZih5LmlkPT09X2Uuc2V0''@;'; + put 'put ''dGluZ3MuaWQpcmV0dXJuIF9lLnZpc3VhbENlbGxSYW5nZT1DLF9lLmNvbW1pdCgpLEkmJkdsKF9lLmluc3RhbmNlQm9yZGVycyxmdW5jdGlvbihCZSl7QmUuY2hhbmdlQm9yZGVyU3R5bGUoSSx5KX0pLHVlPSEwLCExfSksdWV9fSx7a2V5OiJjaGFuZ2VCb3JkZXJTZXR0aW5ncyIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRTZXR0aW5ncygpW1h0ZV07aWYoQXJyYXkuaXNBcnJheSh5KSl7dmFyIEM9Z2goeSk7dGhpcy5jaGVja1NldHRpbmdzQ29oZXNpb24oQyksQy5sZW5ndGh8fCh0aGlzLnNhdmVkQm9yZGVycz1DKSx0aGlzLmNyZWF0ZUN1c3RvbUJvcmRlcnMo''@;'; + put 'put ''Qyl9ZWxzZSB2b2lkIDAhPT15JiZ0aGlzLmNyZWF0ZUN1c3RvbUJvcmRlcnModGhpcy5zYXZlZEJvcmRlcnMpfX0se2tleToiY2hlY2tTZXR0aW5nc0NvaGVzaW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1mdW5jdGlvbiBkbHQoZCl7cmV0dXJuIGQuc29tZShmdW5jdGlvbihnKXtyZXR1''@;'; + put 'put ''cm4gVG8oZy5sZWZ0KXx8VG8oZy5yaWdodCl9KX0oeSksST1mdW5jdGlvbiBwbHQoZCl7cmV0dXJuIGQuc29tZShmdW5jdGlvbihnKXtyZXR1cm4gVG8oZy5zdGFydCl8fFRvKGcuZW5kKX0pfSh5KTtpZihDJiZJKXRocm93IG5ldyBFcnJvcignVGhlICJsZWZ0Ii8icmlnaHQiIGFuZCAic3Rh''@;'; + put 'put ''cnQiLyJlbmQiIG9wdGlvbnMgc2hvdWxkIG5vdCBiZSB1c2VkIHRvZ2V0aGVyLiBQbGVhc2UgdXNlIG9ubHkgdGhlIG9wdGlvbiAic3RhcnQiLyJlbmQiLicpO2lmKHRoaXMuaG90LmlzUnRsKCkmJkMpdGhyb3cgbmV3IEVycm9yKCdUaGUgImxlZnQiLyJyaWdodCIgcHJvcGVydGllcyBhcmUg''@;'; + put 'put ''bm90IHN1cHBvcnRlZCBmb3IgUlRMLiBQbGVhc2UgdXNlIG9wdGlvbiAic3RhcnQiLyJlbmQiLicpfX0se2tleToib25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHkpeyF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW1h0ZV18fHkuaXRlbXMucHVzaCh7bmFt''@;'; + put 'put ''ZToiLS0tLS0tLS0tIn0se2tleToiYm9yZGVycyIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoSzRlKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCl9LHN1Ym1lbnU6e2l0ZW1zOlt2''@;'; + put 'put ''bHQodGhpcyksQWx0KHRoaXMpLHlsdCh0aGlzKSx3bHQodGhpcyksYmx0KHRoaXMpXX19KX19LHtrZXk6Im9uQWZ0ZXJJbml0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2hhbmdlQm9yZGVyU2V0dGluZ3MoKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7WFMoajkoaC5wcm90''@;'; + put 'put ''b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWHRlfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gOTB9fV0pLGh9KFlzKTtmdW5jdGlvbiBQOGUoZCl7cmV0dXJu''@;'; + put 'put ''KFA4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9s''@;'; + put 'put ''JiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHV4ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYo''@;'; + put 'put ''di53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEtTKCl7cmV0dXJuIEtTPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1IbHQoZyxoKTtp''@;'; + put 'put ''Zih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LEtTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBIbHQoZCxnKXtmb3IoOyFPYmplY3QucHJv''@;'; + put 'put ''dG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVo5KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIEY4ZShkLGcpe3JldHVybihGOGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5f''@;'; + put 'put ''X3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBqbHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1QOGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVy''@;'; + put 'put ''biBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGN4ZShkKX1mdW5jdGlvbiBjeGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1''@;'; + put 'put ''bmN0aW9uIFo5KGQpe3JldHVybihaOT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBmeGU9ImRyYWdUb1Njcm9sbCIsR2x0PWZ1''@;'; + put 'put ''bmN0aW9uKGQpeyFmdW5jdGlvbiBObHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcm''@;'; + put 'put ''JmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmRjhlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gVmx0KGQpe3ZhciBnPWZ1''@;'; + put 'put ''bmN0aW9uIFpsdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZh''@;'; + put 'put ''bHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVo5KGQpO2lmKGcpe3ZhciBDPVo5KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qo''@;'; + put 'put ''dixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBqbHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIFBsdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBj''@;'; + put 'put ''YWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5ldmVudE1hbmFnZXI9bmV3IEwxKGN4ZSh5KSkseS5ib3VuZGFyaWVzPW51bGwseS5jYWxsYmFjaz1udWxsLHkubGlzdGVuaW5nPSExLHl9cmV0dXJuIGZ1bmN0aW9uIEZsdChkLGcsaCl7ZyYm''@;'; + put 'put ''dXhlKGQucHJvdG90eXBlLGcpLGgmJnV4ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2Z4ZV19fSx7a2V5OiJl''@;'; + put 'put ''bmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmFkZEhvb2soImFmdGVyT25DZWxsTW91c2VEb3duIixmdW5jdGlvbihDKXtyZXR1cm4geS5zZXR1cExpc3RlbmluZyhDKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJPbkNlbGxDb3JuZXJN''@;'; + put 'put ''b3VzZURvd24iLGZ1bmN0aW9uKEMpe3JldHVybiB5LnNldHVwTGlzdGVuaW5nKEMpfSksdGhpcy5yZWdpc3RlckV2ZW50cygpLEtTKFo5KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpKX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0''@;'; + put 'put ''aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLEtTKFo5KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnVucmVnaXN0ZXJFdmVudHMoKSxLUyhaOShoLnBy''@;'; + put 'put ''b3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJzZXRCb3VuZGFyaWVzIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLmJvdW5kYXJpZXM9eX19LHtrZXk6InNldENhbGxiYWNrIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLmNhbGxiYWNrPXl9fSx7a2V5OiJj''@;'; + put 'put ''aGVjayIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST0wLGo9MDtDPHRoaXMuYm91bmRhcmllcy50b3A/aj1DLXRoaXMuYm91bmRhcmllcy50b3A6Qz50aGlzLmJvdW5kYXJpZXMuYm90dG9tJiYoaj1DLXRoaXMuYm91bmRhcmllcy5ib3R0b20pLHk8dGhpcy5ib3VuZGFyaWVzLmxlZnQ/ST15''@;'; + put 'put ''LXRoaXMuYm91bmRhcmllcy5sZWZ0Onk+dGhpcy5ib3VuZGFyaWVzLnJpZ2h0JiYoST15LXRoaXMuYm91bmRhcmllcy5yaWdodCksdGhpcy5jYWxsYmFjayhJLGopfX0se2tleToibGlzdGVuIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubGlzdGVuaW5nPSEwfX0se2tleToidW5saXN0ZW4iLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKCl7dGhpcy5saXN0ZW5pbmc9ITF9fSx7a2V5OiJpc0xpc3RlbmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5saXN0ZW5pbmd9fSx7a2V5OiJyZWdpc3RlckV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9dGhpcyxJPXRoaXMuaG90LnJvb3RX''@;'; + put 'put ''aW5kb3c7STspdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLmRvY3VtZW50LCJjb250ZXh0bWVudSIsZnVuY3Rpb24oKXtyZXR1cm4geS51bmxpc3RlbigpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLmRvY3VtZW50LCJtb3VzZXVwIixmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiB5LnVubGlzdGVuKCl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEkuZG9jdW1lbnQsIm1vdXNlbW92ZSIsZnVuY3Rpb24oail7cmV0dXJuIHkub25Nb3VzZU1vdmUoail9KSxJPWwzZShJKX19LHtrZXk6InVucmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKCl7dGhpcy5ldmVudE1hbmFnZXIuY2xlYXIoKX19LHtrZXk6InNldHVwTGlzdGVuaW5nIix2YWx1ZTpmdW5jdGlvbih5KXtpZighU3coeSkpe3ZhciBDPXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuaG9sZGVyO0MhPT10aGlzLmhvdC5yb290V2luZG93JiYodGhpcy5zZXRCb3Vu''@;'; + put 'put ''ZGFyaWVzKEMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLHRoaXMuc2V0Q2FsbGJhY2soZnVuY3Rpb24oSSxqKXtJPDA/Qy5zY3JvbGxMZWZ0LT01MDpJPjAmJihDLnNjcm9sbExlZnQrPTUwKSxqPDA/Qy5zY3JvbGxUb3AtPTIwOmo+MCYmKEMuc2Nyb2xsVG9wKz0yMCl9KSx0aGlzLmxpc3Rl''@;'; + put 'put ''bigpKX19fSx7a2V5OiJvbk1vdXNlTW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7IXRoaXMuaXNMaXN0ZW5pbmcoKXx8dGhpcy5jaGVjayh5LmNsaWVudFgseS5jbGllbnRZKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7S1MoWjkoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlz''@;'; + put 'put ''KS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnhlfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTAwfX1dKSxofShZcyk7ZnVuY3Rpb24gSDhlKGQpe3JldHVybihIOGU9ImZ1bmN0aW9uIj09dHlw''@;'; + put 'put ''ZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5''@;'; + put 'put ''cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBoeGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVj''@;'; + put 'put ''dC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiAkUygpe3JldHVybiAkUz0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9VWx0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0Lmdl''@;'; + put 'put ''dE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSwkUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVWx0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0''@;'; + put 'put ''eS5jYWxsKGQsZykmJm51bGwhPT0oZD16OShkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBOOGUoZCxnKXtyZXR1cm4oTjhlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9''@;'; + put 'put ''ZnVuY3Rpb24gWGx0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09SDhlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5l''@;'; + put 'put ''ZCIpO3JldHVybiBkeGUoZCl9ZnVuY3Rpb24gZHhlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiB6OShkKXtyZXR1cm4o''@;'; + put 'put ''ejk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX16by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJEcm9wZG93bk1lbnVEZWZh''@;'; + put 'put ''dWx0T3B0aW9ucyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVEcm9wZG93bk1lbnVTaG93Iiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyRHJvcGRvd25NZW51U2hvdyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckRyb3Bkb3duTWVudUhp''@;'; + put 'put ''ZGUiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJEcm9wZG93bk1lbnVFeGVjdXRlIik7dmFyIFY4ZT0iZHJvcGRvd25NZW51IixqOGU9ImNoYW5nZVR5cGUiLHB4ZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gUWx0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwh''@;'; + put 'put ''PT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxl''@;'; + put 'put ''OiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJk44ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIEpsdChkKXt2YXIgZz1mdW5jdGlvbiBLbHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0''@;'; + put 'put ''cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1j''@;'; + put 'put ''YXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj16OShkKTtpZihnKXt2YXIgQz16OSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gWGx0KHRo''@;'; + put 'put ''aXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBXbHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuZXZl''@;'; + put 'put ''bnRNYW5hZ2VyPW5ldyBMMShkeGUoeSkpLHkuY29tbWFuZEV4ZWN1dG9yPW5ldyBERWUoeS5ob3QpLHkuaXRlbXNGYWN0b3J5PW51bGwseS5tZW51PW51bGwseS5ob3QuYWRkSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLGZ1bmN0aW9uKEMsSSl7cmV0dXJuIHkub25BZnRlckdldENvbEhlYWRl''@;'; + put 'put ''cihDLEkpfSkseX1yZXR1cm4gZnVuY3Rpb24gWWx0KGQsZyxoKXtnJiZoeGUoZC5wcm90b3R5cGUsZyksaCYmaHhlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtWOGVdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7aWYoIXRoaXMuZW5hYmxlZCl7dGhpcy5pdGVtc0ZhY3Rvcnk9bmV3IEhFZSh0aGlzLmhvdCxoLkRFRkFVTFRfSVRFTVMpO3ZhciBDPXRoaXMuaG90''@;'; + put 'put ''LmdldFNldHRpbmdzKClbVjhlXSxJPXtpdGVtczp0aGlzLml0ZW1zRmFjdG9yeS5nZXRJdGVtcyhDKX07dGhpcy5yZWdpc3RlckV2ZW50cygpLCJmdW5jdGlvbiI9PXR5cGVvZiBDLmNhbGxiYWNrJiZ0aGlzLmNvbW1hbmRFeGVjdXRvci5zZXRDb21tb25DYWxsYmFjayhDLmNhbGxiYWNrKSwk''@;'; + put 'put ''Uyh6OShoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLmNhbGxPblBsdWdpbnNSZWFkeShmdW5jdGlvbigpe3kuaG90LnJ1bkhvb2tzKCJhZnRlckRyb3Bkb3duTWVudURlZmF1bHRPcHRpb25zIixJKSx5Lml0ZW1zRmFjdG9yeS5zZXRQcmVkZWZpbmVk''@;'; + put 'put ''SXRlbXMoSS5pdGVtcyk7dmFyIGo9eS5pdGVtc0ZhY3RvcnkuZ2V0SXRlbXMoQyk7eS5tZW51JiZ5Lm1lbnUuZGVzdHJveSgpLHkubWVudT1uZXcgTThlKHkuaG90LHtjbGFzc05hbWU6Imh0RHJvcGRvd25NZW51IixrZWVwSW5WaWV3cG9ydDohMCxjb250YWluZXI6Qy51aUNvbnRhaW5lcnx8''@;'; + put 'put ''eS5ob3Qucm9vdERvY3VtZW50LmJvZHl9KSx5LmhvdC5ydW5Ib29rcygiYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXMiLGopLHkubWVudS5zZXRNZW51SXRlbXMoaikseS5tZW51LmFkZExvY2FsSG9vaygiYmVmb3JlT3BlbiIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1lbnVCZWZvcmVPcGVu''@;'; + put 'put ''KCl9KSx5Lm1lbnUuYWRkTG9jYWxIb29rKCJhZnRlck9wZW4iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25NZW51QWZ0ZXJPcGVuKCl9KSx5Lm1lbnUuYWRkTG9jYWxIb29rKCJhZnRlckNsb3NlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTWVudUFmdGVyQ2xvc2UoKX0pLHkubWVudS5hZGRMb2Nh''@;'; + put 'put ''bEhvb2soImV4ZWN1dGVDb21tYW5kIixmdW5jdGlvbigpe2Zvcih2YXIgdWUsX2U9YXJndW1lbnRzLmxlbmd0aCxCZT1uZXcgQXJyYXkoX2UpLE5lPTA7TmU8X2U7TmUrKylCZVtOZV09YXJndW1lbnRzW05lXTtyZXR1cm4odWU9eS5leGVjdXRlQ29tbWFuZCkuY2FsbC5hcHBseSh1ZSxbeV0u''@;'; + put 'put ''Y29uY2F0KEJlKSl9KSxVcihqLGZ1bmN0aW9uKHVlKXtyZXR1cm4geS5jb21tYW5kRXhlY3V0b3IucmVnaXN0ZXJDb21tYW5kKHVlLmtleSx1ZSl9KX0pfX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdp''@;'; + put 'put ''bigpLCRTKHo5KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsb3NlKCksdGhpcy5tZW51JiZ0aGlzLm1lbnUuZGVzdHJveSgpLCRTKHo5KGgucHJvdG90eXBlKSwiZGlzYWJs''@;'; + put 'put ''ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6InJlZ2lzdGVyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmhvdC5yb290RWxlbWVudCwiY2xpY2siLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9u''@;'; + put 'put ''VGFibGVDbGljayhDKX0pfX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oeSl7IXRoaXMubWVudXx8KHRoaXMubWVudS5vcGVuKCkseS53aWR0aCYmdGhpcy5tZW51LnNldE9mZnNldCgibGVmdCIseS53aWR0aCksdGhpcy5tZW51LnNldFBvc2l0aW9uKHkpKX19LHtrZXk6ImNsb3NlIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbigpeyF0aGlzLm1lbnV8fHRoaXMubWVudS5jbG9zZSgpfX0se2tleToiZXhlY3V0ZUNvbW1hbmQiLHZhbHVlOmZ1bmN0aW9uKHkpe2Zvcih2YXIgQyxJPWFyZ3VtZW50cy5sZW5ndGgsaj1uZXcgQXJyYXkoST4xP0ktMTowKSx1ZT0xO3VlPEk7dWUrKylqW3VlLTFdPWFy''@;'; + put 'put ''Z3VtZW50c1t1ZV07KEM9dGhpcy5jb21tYW5kRXhlY3V0b3IpLmV4ZWN1dGUuYXBwbHkoQyxbeV0uY29uY2F0KGopKX19LHtrZXk6InNldExpc3RlbmluZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1l''@;'; + put 'put ''bnRzWzBdO3RoaXMubWVudS5pc09wZW5lZCgpJiYoeT90aGlzLm1lbnUuaG90TWVudS5saXN0ZW4oKTp0aGlzLm1lbnUuaG90TWVudS51bmxpc3RlbigpKX19LHtrZXk6Im9uVGFibGVDbGljayIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYoeS5zdG9wUHJvcGFnYXRpb24oKSx0bCh5LnRhcmdldCxq''@;'; + put 'put ''OGUpJiYhdGhpcy5tZW51LmlzT3BlbmVkKCkpe3ZhciBDPTAsST0wO2lmKHRoaXMuaG90LnJvb3REb2N1bWVudCE9PXRoaXMubWVudS5jb250YWluZXIub3duZXJEb2N1bWVudCl7dmFyIHVlPXRoaXMuaG90LnJvb3RXaW5kb3cuZnJhbWVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp''@;'; + put 'put ''O0M9dWUudG9wLEk9dWUubGVmdH12YXIgTmU9eS50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5vcGVuKHtsZWZ0Ok5lLmxlZnQrSSx0b3A6TmUudG9wK3kudGFyZ2V0Lm9mZnNldEhlaWdodCszK0Msd2lkdGg6TmUud2lkdGgsaGVpZ2h0Ok5lLmhlaWdodH0pfX19LHtrZXk6''@;'; + put 'put ''Im9uQWZ0ZXJHZXRDb2xIZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9Qy5wYXJlbnROb2RlO2lmKEkpe3ZhciBqPUkucGFyZW50Tm9kZS5jaGlsZE5vZGVzLHVlPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoaixJKTtpZighKHk8MHx8dWUhPT1qLmxlbmd0aC0xKSl7dmFy''@;'; + put 'put ''IF9lPUMucXVlcnlTZWxlY3RvcigiLiIuY29uY2F0KGo4ZSkpO2lmKCF0aGlzLmVuYWJsZWR8fCFfZSl7aWYoIXRoaXMuZW5hYmxlZClyZXR1cm4gdm9pZChfZSYmX2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChfZSkpO3ZhciBCZT10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVu''@;'; + put 'put ''dCgiYnV0dG9uIik7QmUuY2xhc3NOYW1lPWo4ZSxCZS50eXBlPSJidXR0b24iLEJlLm9uY2xpY2s9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sQy5maXJzdENoaWxkLmluc2VydEJlZm9yZShCZSxDLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCl9fX19fSx7a2V5OiJvbk1lbnVCZWZvcmVPcGVuIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVEcm9wZG93bk1lbnVTaG93Iix0aGlzKX19LHtrZXk6Im9uTWVudUFmdGVyT3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJEcm9wZG93bk1lbnVTaG93Iix0aGlzKX19LHtrZXk6Im9uTWVu''@;'; + put 'put ''dUFmdGVyQ2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QubGlzdGVuKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyRHJvcGRvd25NZW51SGlkZSIsdGhpcyl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2xvc2UoKSx0aGlzLm1lbnUmJnRoaXMubWVudS5k''@;'; + put 'put ''ZXN0cm95KCksJFMoejkoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVjhlfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMjMwfX0se2tleToiUExV''@;'; + put 'put ''R0lOX0RFUFMiLGdldDpmdW5jdGlvbigpe3JldHVyblsicGx1Z2luOkF1dG9Db2x1bW5TaXplIl19fSx7a2V5OiJERUZBVUxUX0lURU1TIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5bZ3osbXosV2wsQXosV2wsSHRlLFdsLHZ6LFdsLFBwXX19XSksaH0oWXMpO2Z1bmN0aW9uIGd4ZShkLGcpeyhu''@;'; + put 'put ''dWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIG14ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1l''@;'; + put 'put ''cmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXB4ZS5TRVBBUkFUT1I9e25hbWU6V2x9O3ZhciBhc3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBpc3QoZCxn''@;'; + put 'put ''KXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5ob3Q9Zyx0aGlzLm9wdGlvbnM9e319cmV0dXJuIGZ1bmN0aW9uIG9zdChkLGcsaCl7ZyYmbXhlKGQucHJvdG90eXBlLGcp''@;'; + put 'put ''LGgmJm14ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRPcHRpb25zIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLm9wdGlvbnM9aH19LHtrZXk6ImdldERhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2''@;'; + put 'put ''PXRoaXMuX2dldERhdGFSYW5nZSgpLEM9di5zdGFydENvbCxqPXYuZW5kQ29sLHVlPXRoaXMub3B0aW9ucyxfZT1bXTtyZXR1cm4gaWEodi5zdGFydFJvdyx2LmVuZFJvdyxmdW5jdGlvbihCZSl7dmFyIE5lPVtdOyF1ZS5leHBvcnRIaWRkZW5Sb3dzJiZoLl9pc0hpZGRlblJvdyhCZSl8fChp''@;'; + put 'put ''YShDLGosZnVuY3Rpb24oS2UpeyF1ZS5leHBvcnRIaWRkZW5Db2x1bW5zJiZoLl9pc0hpZGRlbkNvbHVtbihLZSl8fE5lLnB1c2goaC5ob3QuZ2V0RGF0YUF0Q2VsbChCZSxLZSkpfSksX2UucHVzaChOZSkpfSksX2V9fSx7a2V5OiJnZXRSb3dIZWFkZXJzIix2YWx1ZTpmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciBoPXRoaXMsdj1bXTtpZih0aGlzLm9wdGlvbnMucm93SGVhZGVycyl7dmFyIHk9dGhpcy5fZ2V0RGF0YVJhbmdlKCksQz15LnN0YXJ0Um93LEk9eS5lbmRSb3csaj10aGlzLmhvdC5nZXRSb3dIZWFkZXIoKTtpYShDLEksZnVuY3Rpb24odWUpeyFoLm9wdGlvbnMuZXhwb3J0SGlkZGVuUm93''@;'; + put 'put ''cyYmaC5faXNIaWRkZW5Sb3codWUpfHx2LnB1c2goalt1ZV0pfSl9cmV0dXJuIHZ9fSx7a2V5OiJnZXRDb2x1bW5IZWFkZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj1bXTtpZih0aGlzLm9wdGlvbnMuY29sdW1uSGVhZGVycyl7dmFyIHk9dGhpcy5fZ2V0RGF0YVJhbmdlKCks''@;'; + put 'put ''Qz15LnN0YXJ0Q29sLEk9eS5lbmRDb2wsaj10aGlzLmhvdC5nZXRDb2xIZWFkZXIoKTtpYShDLEksZnVuY3Rpb24odWUpeyFoLm9wdGlvbnMuZXhwb3J0SGlkZGVuQ29sdW1ucyYmaC5faXNIaWRkZW5Db2x1bW4odWUpfHx2LnB1c2goalt1ZV0pfSl9cmV0dXJuIHZ9fSx7a2V5OiJfZ2V0RGF0''@;'; + put 'put ''YVJhbmdlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuaG90LmNvdW50Q29scygpLTEsdj10aGlzLmhvdC5jb3VudFJvd3MoKS0xLHk9ZnVuY3Rpb24gcWx0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHJzdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24g''@;'; + put 'put ''bnN0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5k''@;'; + put 'put ''b25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gdHN0KGQs''@;'; + put 'put ''Zyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBneGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8''@;'; + put 'put ''IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGd4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gZXN0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52''@;'; + put 'put ''YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0odGhpcy5vcHRpb25zLnJhbmdlLDQpLEM9''@;'; + put 'put ''eVswXSxJPXZvaWQgMD09PUM/MDpDLGo9eVsxXSx1ZT12b2lkIDA9PT1qPzA6aixfZT15WzJdLEJlPXZvaWQgMD09PV9lP3Y6X2UsTmU9eVszXSxLZT12b2lkIDA9PT1OZT9oOk5lO3JldHVybntzdGFydFJvdzpJPU1hdGgubWF4KEksMCksc3RhcnRDb2w6dWU9TWF0aC5tYXgodWUsMCksZW5k''@;'; + put 'put ''Um93OkJlPU1hdGgubWluKEJlLHYpLGVuZENvbDpLZT1NYXRoLm1pbihLZSxoKX19fSx7a2V5OiJfaXNIaWRkZW5Sb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5pc0hpZGRlbih0aGlzLmhvdC50b1BoeXNpY2FsUm93KGgpKX19LHtrZXk6Il9p''@;'; + put 'put ''c0hpZGRlbkNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmlzSGlkZGVuKHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oaCkpfX1dKSxkfSgpO2NvbnN0IGxzdD1hc3Q7ZnVuY3Rpb24gdnhlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxl''@;'; + put 'put ''bmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIGNzdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxo''@;'; + put 'put ''KXsoZnVuY3Rpb24gc3N0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuZGF0YVByb3ZpZGVyPWcsdGhpcy5vcHRpb25zPXRoaXMuX21lcmdlT3B0aW9ucyhoKSx0''@;'; + put 'put ''aGlzLmRhdGFQcm92aWRlci5zZXRPcHRpb25zKHRoaXMub3B0aW9ucyl9cmV0dXJuIGZ1bmN0aW9uIHVzdChkLGcsaCl7ZyYmdnhlKGQucHJvdG90eXBlLGcpLGgmJnZ4ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJf''@;'; + put 'put ''bWVyZ2VPcHRpb25zIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1hMyh0aGlzLmNvbnN0cnVjdG9yLkRFRkFVTFRfT1BUSU9OUykseT1uZXcgRGF0ZTtyZXR1cm4gdj1JMShhMyhkLkRFRkFVTFRfT1BUSU9OUyksdiksKHY9STEodixoKSkuZmlsZW5hbWU9aTNlKHYuZmlsZW5hbWUse1lZWVk6''@;'; + put 'put ''eS5nZXRGdWxsWWVhcigpLE1NOiIiLmNvbmNhdCh5LmdldE1vbnRoKCkrMSkucGFkU3RhcnQoMiwiMCIpLEREOiIiLmNvbmNhdCh5LmdldERhdGUoKSkucGFkU3RhcnQoMiwiMCIpfSksdn19XSxbe2tleToiREVGQVVMVF9PUFRJT05TIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57bWltZVR5cGU6''@;'; + put 'put ''InRleHQvcGxhaW4iLGZpbGVFeHRlbnNpb246InR4dCIsZmlsZW5hbWU6IkhhbmRzb250YWJsZSBbWVlZWV0tW01NXS1bRERdIixlbmNvZGluZzoidXRmLTgiLGJvbTohMSxjb2x1bW5IZWFkZXJzOiExLHJvd0hlYWRlcnM6ITEsZXhwb3J0SGlkZGVuQ29sdW1uczohMSxleHBvcnRIaWRkZW5S''@;'; + put 'put ''b3dzOiExLHJhbmdlOltdfX19XSksZH0oKTtjb25zdCBmc3Q9Y3N0O2Z1bmN0aW9uIFo4ZShkKXtyZXR1cm4oWjhlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24o''@;'; + put 'put ''Zyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gaHN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJv''@;'; + put 'put ''cigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gQXhlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRh''@;'; + put 'put ''YmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gejhlKGQsZyl7cmV0dXJuKHo4ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcp''@;'; + put 'put ''fWZ1bmN0aW9uIG1zdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVo4ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmlu''@;'; + put 'put ''ZWQiKTtyZXR1cm4gZnVuY3Rpb24gdnN0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gS3RlKGQpe3JldHVybihL''@;'; + put 'put ''dGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgeXN0PVN0cmluZy5mcm9tQ2hhckNvZGUoMTMpLHdzdD1TdHJpbmcuZnJvbUNo''@;'; + put 'put ''YXJDb2RlKDM0KSxic3Q9U3RyaW5nLmZyb21DaGFyQ29kZSgxMCksX3N0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBwc3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxs''@;'; + put 'put ''IG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYm''@;'; + put 'put ''ejhlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gZ3N0KGQpe3ZhciBnPWZ1bmN0aW9uIEFzdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQ''@;'; + put 'put ''cm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUt0ZShkKTtpZihnKXt2''@;'; + put 'put ''YXIgQz1LdGUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG1zdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBoc3QodGhpcyxoKSxnLmFwcGx5KHRoaXMsYXJn''@;'; + put 'put ''dW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24gZHN0KGQsZyxoKXtnJiZBeGUoZC5wcm90b3R5cGUsZyksaCYmQXhlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImV4cG9ydCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlz''@;'; + put 'put ''LEM9dGhpcy5vcHRpb25zLEk9dGhpcy5kYXRhUHJvdmlkZXIuZ2V0RGF0YSgpLGo9dGhpcy5kYXRhUHJvdmlkZXIuZ2V0Q29sdW1uSGVhZGVycygpLHVlPWoubGVuZ3RoPjAsX2U9dGhpcy5kYXRhUHJvdmlkZXIuZ2V0Um93SGVhZGVycygpLEJlPV9lLmxlbmd0aD4wLE5lPUMuYm9tP1N0cmlu''@;'; + put 'put ''Zy5mcm9tQ2hhckNvZGUoNjUyNzkpOiIiO3JldHVybiB1ZSYmKGo9T2woaixmdW5jdGlvbihLZSl7cmV0dXJuIHkuX2VzY2FwZUNlbGwoS2UsITApfSksQmUmJihOZSs9Qy5jb2x1bW5EZWxpbWl0ZXIpLE5lKz1qLmpvaW4oQy5jb2x1bW5EZWxpbWl0ZXIpLE5lKz1DLnJvd0RlbGltaXRlciks''@;'; + put 'put ''VXIoSSxmdW5jdGlvbihLZSxkdCl7ZHQ+MCYmKE5lKz1DLnJvd0RlbGltaXRlciksQmUmJihOZSs9eS5fZXNjYXBlQ2VsbChfZVtkdF0pK0MuY29sdW1uRGVsaW1pdGVyKSxOZSs9S2UubWFwKGZ1bmN0aW9uKE90KXtyZXR1cm4geS5fZXNjYXBlQ2VsbChPdCl9KS5qb2luKEMuY29sdW1uRGVs''@;'; + put 'put ''aW1pdGVyKX0pLE5lfX0se2tleToiX2VzY2FwZUNlbGwiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sST1ldSh5KTtyZXR1cm4iIiE9PUkmJihDfHxJLmluZGV4T2YoeXN0KT49MHx8SS5pbmRl''@;'; + put 'put ''eE9mKHdzdCk+PTB8fEkuaW5kZXhPZihic3QpPj0wfHxJLmluZGV4T2YodGhpcy5vcHRpb25zLmNvbHVtbkRlbGltaXRlcik+PTApJiYoST1JLnJlcGxhY2UobmV3IFJlZ0V4cCgnIicsImciKSwnIiInKSxJPSciJy5jb25jYXQoSSwnIicpKSxJfX1dLFt7a2V5OiJERUZBVUxUX09QVElPTlMi''@;'; + put 'put ''LGdldDpmdW5jdGlvbigpe3JldHVybnttaW1lVHlwZToidGV4dC9jc3YiLGZpbGVFeHRlbnNpb246ImNzdiIsYm9tOiEwLGNvbHVtbkRlbGltaXRlcjoiLCIscm93RGVsaW1pdGVyOiJcclxuIn19fV0pLGh9KGZzdCksRzhlPWZ1bmN0aW9uIGtzdChkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9KHt9LCJjc3YiLF9zdCk7ZnVuY3Rpb24gTXN0KGQsZyxoKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgRzhlW2RdP25ldyBHOGVbZF0oZyxo''@;'; + put 'put ''KTpudWxsfWZ1bmN0aW9uIFc4ZShkKXtyZXR1cm4oVzhlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBT''@;'; + put 'put ''eW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gRXN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0''@;'; + put 'put ''aW9uIil9ZnVuY3Rpb24geXhlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2''@;'; + put 'put ''LmtleSx2KX19ZnVuY3Rpb24gWThlKGQsZyl7cmV0dXJuKFk4ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIERzdChkLGcpe2lmKGcmJigib2JqZWN0''@;'; + put 'put ''Ij09PVc4ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gTHN0KGQpe2lmKHZv''@;'; + put 'put ''aWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gJHRlKGQpe3JldHVybigkdGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5n''@;'; + put 'put ''ZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgUHN0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBUc3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3''@;'; + put 'put ''IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmWThlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gSXN0KGQpe3ZhciBnPWZ1bmN0aW9uIE9zdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0''@;'; + put 'put ''LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVy''@;'; + put 'put ''biExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PSR0ZShkKTtpZihnKXt2YXIgQz0kdGUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIERzdCh0aGlzLHkpfX0oaCk7''@;'; + put 'put ''ZnVuY3Rpb24gaCgpe3JldHVybiBFc3QodGhpcyxoKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24geHN0KGQsZyxoKXtnJiZ5eGUoZC5wcm90b3R5cGUsZyksaCYmeXhlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiEx''@;'; + put 'put ''fSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LHtrZXk6ImV4cG9ydEFzU3RyaW5nIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIHRo''@;'; + put 'put ''aXMuX2NyZWF0ZVR5cGVGb3JtYXR0ZXIoeSxDKS5leHBvcnQoKX19LHtrZXk6ImV4cG9ydEFzQmxvYiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3JldHVybiB0aGlzLl9jcmVhdGVCbG9i''@;'; + put 'put ''KHRoaXMuX2NyZWF0ZVR5cGVGb3JtYXR0ZXIoeSxDKSl9fSx7a2V5OiJkb3dubG9hZEZpbGUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxJPXRoaXMuaG90LGo9SS5yb290RG9jdW1lbnQs''@;'; + put 'put ''dWU9SS5yb290V2luZG93LF9lPXRoaXMuX2NyZWF0ZVR5cGVGb3JtYXR0ZXIoeSxDKSxCZT10aGlzLl9jcmVhdGVCbG9iKF9lKSxOZT11ZS5VUkx8fHVlLndlYmtpdFVSTCxLZT1qLmNyZWF0ZUVsZW1lbnQoImEiKSxkdD0iIi5jb25jYXQoX2Uub3B0aW9ucy5maWxlbmFtZSwiLiIpLmNvbmNh''@;'; + put 'put ''dChfZS5vcHRpb25zLmZpbGVFeHRlbnNpb24pO2lmKHZvaWQgMCE9PUtlLmRvd25sb2FkKXt2YXIgT3Q9TmUuY3JlYXRlT2JqZWN0VVJMKEJlKTtLZS5zdHlsZS5kaXNwbGF5PSJub25lIixLZS5zZXRBdHRyaWJ1dGUoImhyZWYiLE90KSxLZS5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixkdCks''@;'; + put 'put ''ai5ib2R5LmFwcGVuZENoaWxkKEtlKSxLZS5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJjbGljayIpKSxqLmJvZHkucmVtb3ZlQ2hpbGQoS2UpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtOZS5yZXZva2VPYmplY3RVUkwoT3QpfSwxMDApfWVsc2UgbmF2aWdhdG9yLm1zU2F2ZU9yT3Bl''@;'; + put 'put ''bkJsb2ImJm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKEJlLGR0KX19LHtrZXk6Il9jcmVhdGVUeXBlRm9ybWF0dGVyIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYoIUc4ZVt5XSl0''@;'; + put 'put ''aHJvdyBuZXcgRXJyb3IoJ0V4cG9ydCBmb3JtYXQgdHlwZSAiJy5jb25jYXQoeSwnIiBpcyBub3Qgc3VwcG9ydGVkLicpKTtyZXR1cm4gTXN0KHksbmV3IGxzdCh0aGlzLmhvdCksQyl9fSx7a2V5OiJfY3JlYXRlQmxvYiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9bnVsbDtyZXR1cm4idW5k''@;'; + put 'put ''ZWZpbmVkIiE9dHlwZW9mIEJsb2ImJihDPW5ldyBCbG9iKFt5LmV4cG9ydCgpXSx7dHlwZToiIi5jb25jYXQoeS5vcHRpb25zLm1pbWVUeXBlLCI7Y2hhcnNldD0iKS5jb25jYXQoeS5vcHRpb25zLmVuY29kaW5nKX0pKSxDfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4iZXhwb3J0RmlsZSJ9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAyNDB9fV0pLGh9KFlzKTtmdW5jdGlvbiB3eGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwh''@;'; + put 'put ''MSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgYnhlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpe3ZhciB2PWguaWQseT1oLnN0YXRlbGVzcyxDPXZvaWQgMD09PXl8fHk7KGZ1bmN0''@;'; + put 'put ''aW9uIEZzdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmhvdD1nLHRoaXMuaWQ9dix0aGlzLmVsZW1lbnRzPVtdLHRoaXMuaGlkZGVuPSExLHRoaXMuc3RhdGVJ''@;'; + put 'put ''ZD0iRmlsdGVycy5jb21wb25lbnQuIi5jb25jYXQodGhpcy5pZCksdGhpcy5zdGF0ZT1DP251bGw6dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAodGhpcy5zdGF0ZUlkLG5ldyBZZWUpfXJldHVybiBmdW5jdGlvbiBIc3QoZCxnLGgpe2cmJnd4ZShkLnByb3RvdHlwZSxn''@;'; + put 'put ''KSxoJiZ3eGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7VXIodGhpcy5lbGVtZW50cyxmdW5jdGlvbihoKXtyZXR1cm4gaC5yZXNldCgpfSl9fSx7a2V5OiJoaWRlIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3RoaXMuaGlkZGVuPSEwfX0se2tleToic2hvdyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhpZGRlbj0hMX19LHtrZXk6ImlzSGlkZGVuIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBudWxsPT09dGhpcy5ob3R8fHRoaXMuaGlkZGVufX0se2tleToicmVzdG9yZVN0YXRl''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnN0YXRlJiZ0aGlzLnNldFN0YXRlKHRoaXMuc3RhdGUuZ2V0VmFsdWVBdEluZGV4KGgpKX19LHtrZXk6InNldFN0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiVGhlIHN0YXRlIHNldHRpbmcgbG9naWMgaXMgbm90IGltcGxl''@;'; + put 'put ''bWVudGVkIil9fSx7a2V5OiJzYXZlU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuc3RhdGUmJnRoaXMuc3RhdGUuc2V0VmFsdWVBdEluZGV4KGgsdGhpcy5nZXRTdGF0ZSgpKX19LHtrZXk6ImdldFN0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiVGhlIHN0YXRl''@;'; + put 'put ''IGdhdGhlcmluZyBsb2dpYyBpcyBub3QgaW1wbGVtZW50ZWQiKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCh0aGlzLnN0YXRlSWQpLHRoaXMuY2xlYXJMb2NhbEhvb2tzKCksVXIodGhpcy5lbGVtZW50''@;'; + put 'put ''cyxmdW5jdGlvbihoKXtyZXR1cm4gaC5kZXN0cm95KCl9KSx0aGlzLnN0YXRlPW51bGwsdGhpcy5lbGVtZW50cz1udWxsLHRoaXMuaG90PW51bGx9fV0pLGR9KCk7UjIoYnhlLHNkKTtjb25zdCBxdGU9YnhlO3ZhciBfej17fTtmdW5jdGlvbiBGdyhkLGcpe2lmKCFfeltkXSl0aHJvdyBFcnJv''@;'; + put 'put ''cignRmlsdGVyIGNvbmRpdGlvbiAiJy5jb25jYXQoZCwnIiBkb2VzIG5vdCBleGlzdC4nKSk7dmFyIGg9X3pbZF0sdj1oLmNvbmRpdGlvbix5PWguZGVzY3JpcHRvcixDPWc7cmV0dXJuIHkuaW5wdXRWYWx1ZXNEZWNvcmF0b3ImJihDPXkuaW5wdXRWYWx1ZXNEZWNvcmF0b3IoQykpLGZ1bmN0''@;'; + put 'put ''aW9uKEkpe3JldHVybiB2LmFwcGx5KEkubWV0YS5pbnN0YW5jZSxbXS5jb25jYXQoW0ldLFtDXSkpfX1mdW5jdGlvbiBETyhkKXtpZighX3pbZF0pdGhyb3cgRXJyb3IoJ0ZpbHRlciBjb25kaXRpb24gIicuY29uY2F0KGQsJyIgZG9lcyBub3QgZXhpc3QuJykpO3JldHVybiBfeltkXS5kZXNj''@;'; + put 'put ''cmlwdG9yfWZ1bmN0aW9uIFp1KGQsZyxoKXtoLmtleT1kLF96W2RdPXtjb25kaXRpb246ZyxkZXNjcmlwdG9yOmh9fXZhciBIZj0ibm9uZSI7WnUoSGYsZnVuY3Rpb24gTnN0KCl7cmV0dXJuITB9LHtuYW1lOmV0ZSxpbnB1dHNDb3VudDowLHNob3dPcGVyYXRvcnM6ITF9KTt2YXIgQ3o9ImVt''@;'; + put 'put ''cHR5IjtadShDeixmdW5jdGlvbiBWc3QoZCl7cmV0dXJuIGRjKGQudmFsdWUpfSx7bmFtZTp1cGUsaW5wdXRzQ291bnQ6MCxzaG93T3BlcmF0b3JzOiEwfSk7dmFyIGVuZT0ibm90X2VtcHR5IjtmdW5jdGlvbiBfeGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtm''@;'; + put 'put ''b3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1adShlbmUsZnVuY3Rpb24ganN0KGQsZyl7cmV0dXJuIUZ3KEN6LGcpKGQpfSx7bmFtZTpjcGUsaW5wdXRzQ291bnQ6MCxzaG93T3BlcmF0b3JzOiEwfSk7dmFyIGt6PSJlcSI7ZnVuY3Rpb24gQ3hl''@;'; + put 'put ''KGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gU3hlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1u''@;'; + put 'put ''ZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gRXhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gVHhlKGQsZyl7''@;'; + put 'put ''KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gRHhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJy''@;'; + put 'put ''YXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9WnUoa3osZnVuY3Rpb24gVXN0KGQsZyl7dmFyIHY9ZnVuY3Rpb24gWnN0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFlzdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gV3N0KGQsZyl7dmFyIGg9bnVs''@;'; + put 'put ''bD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZh''@;'; + put 'put ''bHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gR3N0KGQsZyl7aWYoZCl7aWYoInN0cmlu''@;'; + put 'put ''ZyI9PXR5cGVvZiBkKXJldHVybiBfeGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBB''@;'; + put 'put ''cnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIF94ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24genN0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRl''@;'; + put 'put ''c3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oZywxKVswXTtyZXR1cm4gZXUoZC52YWx1ZSkudG9Mb2NhbGVMb3dlckNh''@;'; + put 'put ''c2UoZC5tZXRhLmxvY2FsZSk9PT1ldSh2KX0se25hbWU6ZnBlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pLFp1KCJuZXEiLGZ1bmN0aW9uIFFzdChkLGcpe3JldHVybiFGdyhreixnKShkKX0se25hbWU6aHBlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pLFp1KCJn''@;'; + put 'put ''dCIsZnVuY3Rpb24gZTJ0KGQsZyl7dmFyIHk9ZnVuY3Rpb24gSnN0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHFzdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gJHN0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9s''@;'; + put 'put ''JiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2go''@;'; + put 'put ''dWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gS3N0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBDeGUoZCxnKTt2YXIgaD1P''@;'; + put 'put ''YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14o''@;'; + put 'put ''PzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEN4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gWHN0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbklu''@;'; + put 'put ''IG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oZywxKVswXTtyZXR1cm4ibnVtZXJpYyI9PT1kLm1ldGEudHlwZSYmKHk9cGFyc2VGbG9hdCh5LDEwKSksZC52YWx1ZT55fSx7bmFtZTp2''@;'; + put 'put ''cGUsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSksWnUoImd0ZSIsZnVuY3Rpb24gYTJ0KGQsZyl7dmFyIHk9ZnVuY3Rpb24gdDJ0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIG8ydChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gaTJ0KGQsZyl7dmFy''@;'; + put 'put ''IGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVz''@;'; + put 'put ''aChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gcjJ0KGQsZyl7aWYoZCl7aWYo''@;'; + put 'put ''InN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBTeGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJl''@;'; + put 'put ''dHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIFN4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gbjJ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0''@;'; + put 'put ''IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oZywxKVswXTtyZXR1cm4ibnVtZXJpYyI9PT1kLm1ldGEudHlw''@;'; + put 'put ''ZSYmKHk9cGFyc2VGbG9hdCh5LDEwKSksZC52YWx1ZT49eX0se25hbWU6QXBlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pLFp1KCJsdCIsZnVuY3Rpb24gaDJ0KGQsZyl7dmFyIHk9ZnVuY3Rpb24gbDJ0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIGYydChkKXtpZihBcnJheS5pc0Fy''@;'; + put 'put ''cmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gYzJ0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3Io''@;'; + put 'put ''aD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJl''@;'; + put 'put ''dHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gdTJ0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBFeGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1k''@;'; + put 'put ''LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEV4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24g''@;'; + put 'put ''czJ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4i''@;'; + put 'put ''KX0oKX0oZywxKVswXTtyZXR1cm4ibnVtZXJpYyI9PT1kLm1ldGEudHlwZSYmKHk9cGFyc2VGbG9hdCh5LDEwKSksZC52YWx1ZTx5fSx7bmFtZTp5cGUsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSksWnUoImx0ZSIsZnVuY3Rpb24gQTJ0KGQsZyl7dmFyIHk9ZnVuY3Rpb24gZDJ0''@;'; + put 'put ''KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHYydChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gbTJ0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtp''@;'; + put 'put ''ZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5y''@;'; + put 'put ''ZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gZzJ0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBUeGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2Uo''@;'; + put 'put ''OCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQv''@;'; + put 'put ''LnRlc3QoaCkpcmV0dXJuIFR4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gcDJ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0''@;'; + put 'put ''cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oZywxKVswXTtyZXR1cm4ibnVtZXJpYyI9PT1kLm1ldGEudHlwZSYmKHk9cGFyc2VGbG9hdCh5LDEwKSksZC52YWx1ZTw9eX0se25hbWU6d3BlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pO3Zh''@;'; + put 'put ''ciBVOGU9ImRhdGVfYWZ0ZXIiO2Z1bmN0aW9uIEx4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fVp1KFU4ZSxmdW5jdGlvbiBrMnQoZCxnKXt2YXIgdj1mdW5jdGlv''@;'; + put 'put ''biB5MnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gQzJ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBfMnQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRv''@;'; + put 'put ''ciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxs''@;'; + put 'put ''IT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBiMnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIER4ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5z''@;'; + put 'put ''bGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0Fy''@;'; + put 'put ''cmF5JC8udGVzdChoKSlyZXR1cm4gRHhlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiB3MnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBv''@;'; + put 'put ''YmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShnLDEpWzBdLHk9VGwoZC52YWx1ZSxkLm1ldGEuZGF0ZUZvcm1hdCksQz1UbCh2LGQubWV0YS5kYXRlRm9ybWF0KTtyZXR1cm4hKCF5LmlzVmFsaWQoKXx8IUMuaXNWYWxpZCgpKSYmeS5kaWZmKEMp''@;'; + put 'put ''Pj0wfSx7bmFtZTpDcGUsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSk7dmFyIFE4ZT0iZGF0ZV9iZWZvcmUiO2Z1bmN0aW9uIE94ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1k''@;'; + put 'put ''W2hdO3JldHVybiB2fVp1KFE4ZSxmdW5jdGlvbiBJMnQoZCxnKXt2YXIgdj1mdW5jdGlvbiBTMnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gVDJ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiB4MnQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5l''@;'; + put 'put ''ZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9''@;'; + put 'put ''PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBFMnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJu''@;'; + put 'put ''IEx4ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFy''@;'; + put 'put ''Z3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gTHhlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBNMnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJh''@;'; + put 'put ''YmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShnLDEpWzBdLHk9VGwoZC52YWx1ZSxkLm1ldGEuZGF0ZUZvcm1hdCksQz1UbCh2LGQubWV0YS5kYXRlRm9y''@;'; + put 'put ''bWF0KTtyZXR1cm4hKCF5LmlzVmFsaWQoKXx8IUMuaXNWYWxpZCgpKSYmeS5kaWZmKEMpPD0wfSx7bmFtZTprcGUsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSk7dmFyIG5uZT0iYmV0d2VlbiI7WnUobm5lLGZ1bmN0aW9uIFAydChkLGcpe3ZhciBoPWZ1bmN0aW9uIEQydChkLGcp''@;'; + put 'put ''e3JldHVybiBmdW5jdGlvbiBCMnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIFIydChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVs''@;'; + put 'put ''bCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJu''@;'; + put 'put ''JiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIE8ydChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gT3hlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEp''@;'; + put 'put ''O2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0''@;'; + put 'put ''KGgpKXJldHVybiBPeGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIEwydCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVz''@;'; + put 'put ''dCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGcsMiksQz1oWzBdLEk9aFsxXTtpZigibnVtZXJpYyI9PT1kLm1ldGEudHlwZSl7dmFyIGo9cGFyc2VGbG9hdChDLDEwKSx1ZT1wYXJzZUZsb2F0KEksMTApO0M9TWF0aC5taW4oaix1ZSksST1NYXRoLm1heChqLHVl''@;'; + put 'put ''KX1lbHNlIGlmKCJkYXRlIj09PWQubWV0YS50eXBlKXt2YXIgX2U9RncoUThlLFtJXSksQmU9RncoVThlLFtDXSk7cmV0dXJuIF9lKGQpJiZCZShkKX1yZXR1cm4gZC52YWx1ZT49QyYmZC52YWx1ZTw9SX0se25hbWU6YnBlLGlucHV0c0NvdW50OjIsc2hvd09wZXJhdG9yczohMH0pO3ZhciBS''@;'; + put 'put ''eGU9Im5vdF9iZXR3ZWVuIjtmdW5jdGlvbiBCeGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1adShSeGUsZnVuY3Rpb24gRjJ0KGQsZyl7cmV0dXJuIUZ3KG5uZSxn''@;'; + put 'put ''KShkKX0se25hbWU6X3BlLGlucHV0c0NvdW50OjIsc2hvd09wZXJhdG9yczohMH0pO3ZhciBQeGU9ImJlZ2luc193aXRoIjtmdW5jdGlvbiBGeGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09''@;'; + put 'put ''ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBOeGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1adShQeGUsZnVuY3Rpb24gejJ0KGQsZyl7dmFyIHY9ZnVuY3Rpb24gSDJ0''@;'; + put 'put ''KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFoydChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gajJ0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtp''@;'; + put 'put ''ZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5y''@;'; + put 'put ''ZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gVjJ0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBCeGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2Uo''@;'; + put 'put ''OCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQv''@;'; + put 'put ''LnRlc3QoaCkpcmV0dXJuIEJ4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gTjJ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0''@;'; + put 'put ''cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oZywxKVswXTtyZXR1cm4gZXUoZC52YWx1ZSkudG9Mb2NhbGVMb3dlckNhc2UoZC5tZXRhLmxvY2FsZSkuc3RhcnRzV2l0aChldSh2KSl9LHtuYW1lOmRwZSxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6''@;'; + put 'put ''ITB9KSxMKDM3NDk5KSxadSgiZW5kc193aXRoIixmdW5jdGlvbiBKMnQoZCxnKXt2YXIgdj1mdW5jdGlvbiBHMnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gUTJ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBVMnQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6''@;'; + put 'put ''InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2''@;'; + put 'put ''Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBZMnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9m''@;'; + put 'put ''IGQpcmV0dXJuIEZ4ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20o''@;'; + put 'put ''ZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gRnhlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBXMnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUg''@;'; + put 'put ''bm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShnLDEpWzBdO3JldHVybiBldShkLnZhbHVlKS50b0xvY2FsZUxvd2VyQ2FzZShkLm1ldGEu''@;'; + put 'put ''bG9jYWxlKS5lbmRzV2l0aChldSh2KSl9LHtuYW1lOnBwZSxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KTt2YXIgSjhlPSJjb250YWlucyI7WnUoSjhlLGZ1bmN0aW9uIHQxdChkLGcpe3ZhciB2PWZ1bmN0aW9uIFgydChkLGcpe3JldHVybiBmdW5jdGlvbiBlMXQoZCl7aWYoQXJy''@;'; + put 'put ''YXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIHEydChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0''@;'; + put 'put ''cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJv''@;'; + put 'put ''dyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uICQydChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gTnhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3Rv''@;'; + put 'put ''ciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBOeGUoZCxnKX19KGQsZyl8fGZ1''@;'; + put 'put ''bmN0aW9uIEsydCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBt''@;'; + put 'put ''ZXRob2QuIil9KCl9KGcsMSlbMF07cmV0dXJuIGV1KGQudmFsdWUpLnRvTG9jYWxlTG93ZXJDYXNlKGQubWV0YS5sb2NhbGUpLmluZGV4T2YoZXUodikpPj0wfSx7bmFtZTpncGUsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSk7dmFyIFZ4ZT0ibm90X2NvbnRhaW5zIjtadShWeGUs''@;'; + put 'put ''ZnVuY3Rpb24gbjF0KGQsZyl7cmV0dXJuIUZ3KEo4ZSxnKShkKX0se25hbWU6bXBlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pO3ZhciBqeGU9ImRhdGVfdG9tb3Jyb3ciO1p1KGp4ZSxmdW5jdGlvbiByMXQoZCl7dmFyIGc9VGwoZC52YWx1ZSxkLm1ldGEuZGF0ZUZvcm1hdCk7''@;'; + put 'put ''cmV0dXJuISFnLmlzVmFsaWQoKSYmZy5pc1NhbWUoVGwoKS5zdWJ0cmFjdCgtMSwiZGF5cyIpLnN0YXJ0T2YoImRheSIpLCJkIil9LHtuYW1lOk1wZSxpbnB1dHNDb3VudDowfSk7dmFyIFp4ZT0iZGF0ZV90b2RheSI7WnUoWnhlLGZ1bmN0aW9uIGkxdChkKXt2YXIgZz1UbChkLnZhbHVlLGQu''@;'; + put 'put ''bWV0YS5kYXRlRm9ybWF0KTtyZXR1cm4hIWcuaXNWYWxpZCgpJiZnLmlzU2FtZShUbCgpLnN0YXJ0T2YoImRheSIpLCJkIil9LHtuYW1lOlNwZSxpbnB1dHNDb3VudDowfSk7dmFyIFN6LHp4ZT0iZGF0ZV95ZXN0ZXJkYXkiO2Z1bmN0aW9uIFg4ZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9WnUoenhlLGZ1bmN0aW9uIG8xdChkKXt2YXIgZz1UbChkLnZhbHVlLGQubWV0YS5kYXRlRm9ybWF0KTtyZXR1cm4hIWcuaXNWYWxpZCgpJiZn''@;'; + put 'put ''LmlzU2FtZShUbCgpLnN1YnRyYWN0KDEsImRheXMiKS5zdGFydE9mKCJkYXkiKSwiZCIpfSx7bmFtZTpFcGUsaW5wdXRzQ291bnQ6MH0pO3ZhciBXeGU9KFg4ZShTej17fSwibnVtZXJpYyIsW0hmLFdsLEN6LGVuZSxXbCxreiwibmVxIixXbCwiZ3QiLCJndGUiLCJsdCIsImx0ZSIsbm5lLFJ4''@;'; + put 'put ''ZV0pLFg4ZShTeiwidGV4dCIsW0hmLFdsLEN6LGVuZSxXbCxreiwibmVxIixXbCxQeGUsImVuZHNfd2l0aCIsV2wsSjhlLFZ4ZV0pLFg4ZShTeiwiZGF0ZSIsW0hmLFdsLEN6LGVuZSxXbCxreiwibmVxIixXbCxROGUsVThlLG5uZSxXbCxqeGUsWnhlLHp4ZV0pLFN6KTtmdW5jdGlvbiBZeGUo''@;'; + put 'put ''ZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgJDhlPSJi''@;'; + put 'put ''dWlsZGluZyIsVXhlPVsiY2xpY2siLCJpbnB1dCIsImtleWRvd24iLCJrZXlwcmVzcyIsImtleXVwIiwiZm9jdXMiLCJibHVyIiwiY2hhbmdlIl0sUXhlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiB1MXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5ob3Q9Zyx0aGlzLmV2ZW50TWFuYWdlcj1uZXcgTDEodGhpcyksdGhpcy5vcHRpb25zPUkxKGQuREVGQVVMVFMsaCksdGhpcy5fZWxlbWVudD10aGlzLmhvdC5yb290RG9jdW1lbnQu''@;'; + put 'put ''Y3JlYXRlRWxlbWVudCh0aGlzLm9wdGlvbnMud3JhcEl0PyJkaXYiOnRoaXMub3B0aW9ucy50YWdOYW1lKSx0aGlzLmJ1aWxkU3RhdGU9bnVsbH1yZXR1cm4gZnVuY3Rpb24gYzF0KGQsZyxoKXtnJiZZeGUoZC5wcm90b3R5cGUsZyksaCYmWXhlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldFZhbHVlIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLm9wdGlvbnMudmFsdWU9aCx0aGlzLnVwZGF0ZSgpfX0se2tleToiZ2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZX19''@;'; + put 'put ''LHtrZXk6ImVsZW1lbnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1aWxkU3RhdGU9PT0kOGU/dGhpcy5fZWxlbWVudDoiYnVpbHQiPT09dGhpcy5idWlsZFN0YXRlPyh0aGlzLnVwZGF0ZSgpLHRoaXMuX2VsZW1lbnQpOih0aGlzLmJ1aWxkU3RhdGU9JDhlLHRoaXMuYnVpbGQoKSx0''@;'; + put 'put ''aGlzLmJ1aWxkU3RhdGU9ImJ1aWx0Iix0aGlzLl9lbGVtZW50KX19LHtrZXk6ImlzQnVpbHQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuImJ1aWx0Ij09PXRoaXMuYnVpbGRTdGF0ZX19LHtrZXk6InRyYW5zbGF0ZUlmUG9zc2libGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiJzdHJpbmci''@;'; + put 'put ''PT10eXBlb2YgaCYmaC5zdGFydHNXaXRoKGwzKT90aGlzLmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKGgpOmh9fSx7a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9ZnVuY3Rpb24oSSxqKXtoLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEksaixmdW5jdGlv''@;'; + put 'put ''bih1ZSl7cmV0dXJuIGgucnVuTG9jYWxIb29rcyhqLHVlLGgpfSl9O2lmKHRoaXMuYnVpbGRTdGF0ZXx8KHRoaXMuYnVpbGRTdGF0ZT0kOGUpLHRoaXMub3B0aW9ucy5jbGFzc05hbWUmJk8wKHRoaXMuX2VsZW1lbnQsdGhpcy5vcHRpb25zLmNsYXNzTmFtZSksdGhpcy5vcHRpb25zLmNoaWxk''@;'; + put 'put ''cmVuLmxlbmd0aClVcih0aGlzLm9wdGlvbnMuY2hpbGRyZW4sZnVuY3Rpb24oQyl7cmV0dXJuIGguX2VsZW1lbnQuYXBwZW5kQ2hpbGQoQy5lbGVtZW50KX0pO2Vsc2UgaWYodGhpcy5vcHRpb25zLndyYXBJdCl7dmFyIHk9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhp''@;'; + put 'put ''cy5vcHRpb25zLnRhZ05hbWUpO0dsKHRoaXMub3B0aW9ucyxmdW5jdGlvbihDLEkpe3ZvaWQgMCE9PXlbSV0mJiJjbGFzc05hbWUiIT09SSYmInRhZ05hbWUiIT09SSYmImNoaWxkcmVuIiE9PUkmJih5W0ldPWgudHJhbnNsYXRlSWZQb3NzaWJsZShDKSl9KSx0aGlzLl9lbGVtZW50LmFwcGVu''@;'; + put 'put ''ZENoaWxkKHkpLFVyKFV4ZSxmdW5jdGlvbihDKXtyZXR1cm4gdih5LEMpfSl9ZWxzZSBVcihVeGUsZnVuY3Rpb24oQyl7cmV0dXJuIHYoaC5fZWxlbWVudCxDKX0pfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMu''@;'; + put 'put ''b3B0aW9ucy52YWx1ZT0iIix0aGlzLnVwZGF0ZSgpfX0se2tleToic2hvdyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuc3R5bGUuZGlzcGxheT0iIn19LHtrZXk6ImhpZGUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUifX0se2tleToi''@;'; + put 'put ''Zm9jdXMiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCksdGhpcy5ldmVudE1hbmFnZXI9bnVsbCx0aGlzLmhvdD1udWxsLHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSYmdGhpcy5fZWxlbWVudC5w''@;'; + put 'put ''YXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQ9bnVsbH19XSxbe2tleToiREVGQVVMVFMiLGdldDpmdW5jdGlvbigpe3JldHVybiBhMyh7Y2xhc3NOYW1lOiIiLHZhbHVlOiIiLHRhZ05hbWU6ImRpdiIsY2hpbGRyZW46W10sd3JhcEl0OiEwfSl9fV0p''@;'; + put 'put ''LGR9KCk7UjIoUXhlLHNkKTtjb25zdCBIdz1ReGU7ZnVuY3Rpb24gcThlKGQpe3JldHVybihxOGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4g''@;'; + put 'put ''ZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBKeGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFi''@;'; + put 'put ''bGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBybmUoKXtyZXR1cm4gcm5lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5n''@;'; + put 'put ''ZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1kMXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHJuZS5h''@;'; + put 'put ''cHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZDF0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1MTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBlNWUoZCxnKXtyZXR1cm4oZTVlPU9iamVjdC5zZXRQcm90b3R5cGVP''@;'; + put 'put ''Zj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gbTF0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09cThlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBYeGUoZCl9ZnVuY3Rpb24gWHhlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVu''@;'; + put 'put ''IGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBMTyhkKXtyZXR1cm4oTE89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmpl''@;'; + put 'put ''Y3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgaW5lPW5ldyBXZWFrTWFwLEExdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gcDF0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIg''@;'; + put 'put ''YmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZToh''@;'; + put 'put ''MX0pLGcmJmU1ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGcxdChkKXt2YXIgZz1mdW5jdGlvbiB2MXQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1MTyhkKTtp''@;'; + put 'put ''ZihnKXt2YXIgQz1MTyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbTF0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYseSl7dmFyIEM7cmV0dXJuIGZ1bmN0aW9uIGYxdChk''@;'; + put 'put ''LGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLEM9Zy5jYWxsKHRoaXMsdixJMShoLkRFRkFVTFRTLHkpKSxpbmUuc2V0KFh4ZShDKSx7fSksQy5yZWdpc3Rlckhvb2tzKCksQ31y''@;'; + put 'put ''ZXR1cm4gZnVuY3Rpb24gaDF0KGQsZyxoKXtnJiZKeGUoZC5wcm90b3R5cGUsZyksaCYmSnhlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6InJlZ2lzdGVySG9va3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0''@;'; + put 'put ''aGlzLmFkZExvY2FsSG9vaygiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25DbGljaygpfSksdGhpcy5hZGRMb2NhbEhvb2soImtleXVwIixmdW5jdGlvbihDKXtyZXR1cm4geS5vbktleXVwKEMpfSl9fSx7a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXtybmUoTE8oaC5wcm90b3R5''@;'; + put 'put ''cGUpLCJidWlsZCIsdGhpcykuY2FsbCh0aGlzKTt2YXIgeT1pbmUuZ2V0KHRoaXMpLEM9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3kuaW5wdXQ9dGhpcy5fZWxlbWVudC5maXJzdENoaWxkLE8wKHRoaXMuX2VsZW1lbnQsImh0VUlJbnB1dCIpLE8wKEMsImh0''@;'; + put 'put ''VUlJbnB1dEljb24iKSx0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKEMpLHRoaXMudXBkYXRlKCl9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy5pc0J1aWx0KCkpe3ZhciB5PWluZS5nZXQodGhpcykuaW5wdXQ7eS50eXBlPXRoaXMub3B0aW9ucy50eXBlLHkucGxh''@;'; + put 'put ''Y2Vob2xkZXI9dGhpcy50cmFuc2xhdGVJZlBvc3NpYmxlKHRoaXMub3B0aW9ucy5wbGFjZWhvbGRlcikseS52YWx1ZT10aGlzLnRyYW5zbGF0ZUlmUG9zc2libGUodGhpcy5vcHRpb25zLnZhbHVlKX19fSx7a2V5OiJmb2N1cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzQnVpbHQoKSYmaW5l''@;'; + put 'put ''LmdldCh0aGlzKS5pbnB1dC5mb2N1cygpfX0se2tleToib25DbGljayIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJvbktleXVwIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLm9wdGlvbnMudmFsdWU9eS50YXJnZXQudmFsdWV9fV0sW3trZXk6IkRFRkFVTFRTIixnZXQ6ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gYTMoe3BsYWNlaG9sZGVyOiIiLHR5cGU6InRleHQiLHRhZ05hbWU6ImlucHV0In0pfX1dKSxofShIdyk7Y29uc3QgT089QTF0O2Z1bmN0aW9uIHQ1ZShkKXtyZXR1cm4odDVlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9y''@;'; + put 'put ''P2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gS3hlKGQsZyl7''@;'; + put 'put ''Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gUk8oKXty''@;'; + put 'put ''ZXR1cm4gUk89InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PWIxdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5n''@;'; + put 'put ''ZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sUk8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGIxdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9TncoZCkpOyk7cmV0dXJuIGR9ZnVu''@;'; + put 'put ''Y3Rpb24gbjVlKGQsZyl7cmV0dXJuKG41ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGsxdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXQ1ZShnKXx8''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gJHhlKGQpfWZ1bmN0aW9uICR4ZShkKXtpZih2b2lkIDA9''@;'; + put 'put ''PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gTncoZCl7cmV0dXJuKE53PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBl''@;'; + put 'put ''T2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIG9uZT1uZXcgV2Vha01hcCxNMXQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIF8xdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJv''@;'; + put 'put ''dyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxP''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZuNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBDMXQoZCl7dmFyIGc9ZnVuY3Rpb24gUzF0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJl''@;'; + put 'put ''ZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7''@;'; + put 'put ''cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9TncoZCk7aWYoZyl7dmFyIEM9TncodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGsxdCh0aGlzLHkpfX0o''@;'; + put 'put ''aCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiB5MXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxDPWcuY2FsbCh0aGlzLHYsSTEoaC5ERUZBVUxU''@;'; + put 'put ''Uyx5KSksb25lLnNldCgkeGUoQykse30pLEMubWVudT1udWxsLEMuaXRlbXM9W10sQy5yZWdpc3Rlckhvb2tzKCksQ31yZXR1cm4gZnVuY3Rpb24gdzF0KGQsZyxoKXtnJiZLeGUoZC5wcm90b3R5cGUsZyksaCYmS3hlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIs''@;'; + put 'put ''e3dyaXRhYmxlOiExfSl9KGgsW3trZXk6InJlZ2lzdGVySG9va3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmFkZExvY2FsSG9vaygiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25DbGljaygpfSl9fSx7a2V5OiJzZXRJdGVtcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhp''@;'; + put 'put ''cy5pdGVtcz10aGlzLnRyYW5zbGF0ZU5hbWVzKHkpLHRoaXMubWVudSYmdGhpcy5tZW51LnNldE1lbnVJdGVtcyh0aGlzLml0ZW1zKX19LHtrZXk6InRyYW5zbGF0ZU5hbWVzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO3JldHVybiBVcih5LGZ1bmN0aW9uKEkpe0kubmFtZT1DLnRy''@;'; + put 'put ''YW5zbGF0ZUlmUG9zc2libGUoSS5uYW1lKX0pLHl9fSx7a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO1JPKE53KGgucHJvdG90eXBlKSwiYnVpbGQiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5tZW51PW5ldyBNOGUodGhpcy5ob3Qse2NsYXNzTmFtZToiaHRTZWxlY3RV''@;'; + put 'put ''SSBodEZpbHRlcnNDb25kaXRpb25zTWVudSIsa2VlcEluVmlld3BvcnQ6ITEsc3RhbmRhbG9uZTohMCxjb250YWluZXI6dGhpcy5vcHRpb25zLm1lbnVDb250YWluZXJ9KSx0aGlzLm1lbnUuc2V0TWVudUl0ZW1zKHRoaXMuaXRlbXMpO3ZhciBDPW5ldyBIdyh0aGlzLmhvdCx7Y2xhc3NOYW1l''@;'; + put 'put ''OiJodFVJU2VsZWN0Q2FwdGlvbiJ9KSxJPW5ldyBIdyh0aGlzLmhvdCx7Y2xhc3NOYW1lOiJodFVJU2VsZWN0RHJvcGRvd24ifSksaj1vbmUuZ2V0KHRoaXMpO2ouY2FwdGlvbj1DLGouY2FwdGlvbkVsZW1lbnQ9Qy5lbGVtZW50LGouZHJvcGRvd249SSxVcihbQyxJXSxmdW5jdGlvbih1ZSl7''@;'; + put 'put ''cmV0dXJuIHkuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodWUuZWxlbWVudCl9KSx0aGlzLm1lbnUuYWRkTG9jYWxIb29rKCJzZWxlY3QiLGZ1bmN0aW9uKHVlKXtyZXR1cm4geS5vbk1lbnVTZWxlY3QodWUpfSksdGhpcy5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJDbG9zZSIsZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4geS5vbk1lbnVDbG9zZWQoKX0pLHRoaXMudXBkYXRlKCl9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk7dGhpcy5pc0J1aWx0KCkmJih5PXRoaXMub3B0aW9ucy52YWx1ZT90aGlzLm9wdGlvbnMudmFsdWUubmFtZTp0aGlzLm1lbnUuaG90LmdldFRyYW5zbGF0''@;'; + put 'put ''ZWRQaHJhc2UoZXRlKSxvbmUuZ2V0KHRoaXMpLmNhcHRpb25FbGVtZW50LnRleHRDb250ZW50PXksUk8oTncoaC5wcm90b3R5cGUpLCJ1cGRhdGUiLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToib3Blbk9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5lbGVtZW50LmdldEJv''@;'; + put 'put ''dW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMubWVudSYmKHRoaXMubWVudS5vcGVuKCksdGhpcy5tZW51LnNldFBvc2l0aW9uKHtsZWZ0OnRoaXMuaG90LmlzTHRyKCk/eS5sZWZ0LTU6eS5sZWZ0LTMxLHRvcDp5LnRvcC0xLHdpZHRoOnkud2lkdGgsaGVpZ2h0OnkuaGVpZ2h0fSkpfX0se2tleToi''@;'; + put 'put ''Y2xvc2VPcHRpb25zIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWVudSYmdGhpcy5tZW51LmNsb3NlKCl9fSx7a2V5OiJvbk1lbnVTZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHkpe3kubmFtZSE9PVdsJiYodGhpcy5vcHRpb25zLnZhbHVlPXksdGhpcy51cGRhdGUoKSx0aGlzLnJ1bkxvY2FsSG9v''@;'; + put 'put ''a3MoInNlbGVjdCIsdGhpcy5vcHRpb25zLnZhbHVlKSl9fSx7a2V5OiJvbk1lbnVDbG9zZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckNsb3NlIil9fSx7a2V5OiJvbkNsaWNrIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMub3Blbk9wdGlvbnMoKX19LHtrZXk6''@;'; + put 'put ''ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tZW51JiYodGhpcy5tZW51LmRlc3Ryb3koKSx0aGlzLm1lbnU9bnVsbCk7dmFyIHk9b25lLmdldCh0aGlzKSxDPXkuY2FwdGlvbixJPXkuZHJvcGRvd247QyYmQy5kZXN0cm95KCksSSYmSS5kZXN0cm95KCksUk8oTncoaC5wcm90b3R5''@;'; + put 'put ''cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJERUZBVUxUUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEzKHtjbGFzc05hbWU6Imh0VUlTZWxlY3QiLHdyYXBJdDohMX0pfX1dKSxofShIdyk7Y29uc3QgcXhlPU0xdDtmdW5jdGlvbiByNWUoZCl7cmV0dXJuKHI1ZT0i''@;'; + put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09''@;'; + put 'put ''U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGk1ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIGVUZShkLGcp''@;'; + put 'put ''e2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGFuZSgp''@;'; + put 'put ''e3JldHVybiBhbmU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PVIxdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/''@;'; + put 'put ''Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sYW5lLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBSMXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUJPKGQpKTspO3JldHVybiBk''@;'; + put 'put ''fWZ1bmN0aW9uIG81ZShkLGcpe3JldHVybihvNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBGMXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1yNWUo''@;'; + put 'put ''Zyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIEgxdChkKXtpZih2b2lkIDA9PT1k''@;'; + put 'put ''KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIEJPKGQpe3JldHVybihCTz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlw''@;'; + put 'put ''ZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBWMXQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIEIxdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9y''@;'; + put 'put ''KCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZvNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBQMXQoZCl7dmFyIGc9ZnVuY3Rpb24gTjF0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0''@;'; + put 'put ''LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3Jl''@;'; + put 'put ''dHVybiBmdW5jdGlvbigpe3ZhciB5LHY9Qk8oZCk7aWYoZyl7dmFyIEM9Qk8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEYxdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2''@;'; + put 'put ''LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiBMMXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoQz1nLmNhbGwodGhpcyx2LHtpZDp5LmlkLHN0YXRlbGVzczohMX0pKS5u''@;'; + put 'put ''YW1lPXkubmFtZSxDLmFkZFNlcGFyYXRvcj15LmFkZFNlcGFyYXRvcixDLmVsZW1lbnRzLnB1c2gobmV3IHF4ZShDLmhvdCx7bWVudUNvbnRhaW5lcjp5Lm1lbnVDb250YWluZXJ9KSksQy5lbGVtZW50cy5wdXNoKG5ldyBPTyhDLmhvdCx7cGxhY2Vob2xkZXI6UHBlfSkpLEMuZWxlbWVudHMu''@;'; + put 'put ''cHVzaChuZXcgT08oQy5ob3Qse3BsYWNlaG9sZGVyOkZwZX0pKSxDLnJlZ2lzdGVySG9va3MoKSxDfXJldHVybiBmdW5jdGlvbiBPMXQoZCxnLGgpe2cmJmVUZShkLnByb3RvdHlwZSxnKSxoJiZlVGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6''@;'; + put 'put ''ITF9KX0oaCxbe2tleToicmVnaXN0ZXJIb29rcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZ2V0U2VsZWN0RWxlbWVudCgpLmFkZExvY2FsSG9vaygic2VsZWN0IixmdW5jdGlvbihDKXtyZXR1cm4geS5vbkNvbmRpdGlvblNlbGVjdChDKX0pLHRoaXMuZ2V0U2VsZWN0RWxl''@;'; + put 'put ''bWVudCgpLmFkZExvY2FsSG9vaygiYWZ0ZXJDbG9zZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vblNlbGVjdFVJQ2xvc2VkKCl9KSxVcih0aGlzLmdldElucHV0RWxlbWVudHMoKSxmdW5jdGlvbihDKXtDLmFkZExvY2FsSG9vaygia2V5ZG93biIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25JbnB1''@;'; + put 'put ''dEtleURvd24oSSl9KX0pfX0se2tleToic2V0U3RhdGUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7aWYodGhpcy5yZXNldCgpLHkpe3ZhciBJPWEzKHkuY29tbWFuZCk7SS5uYW1lLnN0YXJ0c1dpdGgodHUpJiYoSS5uYW1lPXRoaXMuaG90LmdldFRyYW5zbGF0ZWRQaHJhc2UoSS5u''@;'; + put 'put ''YW1lKSksdGhpcy5nZXRTZWxlY3RFbGVtZW50KCkuc2V0VmFsdWUoSSksVXIoeS5hcmdzLGZ1bmN0aW9uKGosdWUpe2lmKHVlPkkuaW5wdXRzQ291bnQtMSlyZXR1cm4hMTt2YXIgX2U9Qy5nZXRJbnB1dEVsZW1lbnQodWUpO19lLnNldFZhbHVlKGopLF9lW0kuaW5wdXRzQ291bnQ+dWU/InNo''@;'; + put 'put ''b3ciOiJoaWRlIl0oKSx1ZXx8c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBfZS5mb2N1cygpfSwxMCl9KX19fSx7a2V5OiJnZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmdldFNlbGVjdEVsZW1lbnQoKS5nZXRWYWx1ZSgpfHxETyhIZiksQz1bXTtyZXR1cm4gVXIo''@;'; + put 'put ''dGhpcy5nZXRJbnB1dEVsZW1lbnRzKCksZnVuY3Rpb24oSSxqKXt5LmlucHV0c0NvdW50PmomJkMucHVzaChJLmdldFZhbHVlKCkpfSkse2NvbW1hbmQ6eSxhcmdzOkN9fX0se2tleToidXBkYXRlU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9RE8oeT95Lm5hbWU6SGYpO3RoaXMu''@;'; + put 'put ''c3RhdGUuc2V0VmFsdWVBdEluZGV4KEMse2NvbW1hbmQ6SSxhcmdzOnk/eS5hcmdzOltdfSkseXx8VXIodGhpcy5nZXRJbnB1dEVsZW1lbnRzKCksZnVuY3Rpb24oail7cmV0dXJuIGouc2V0VmFsdWUobnVsbCl9KX19LHtrZXk6ImdldFNlbGVjdEVsZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiB5IGluc3RhbmNlb2YgcXhlfSlbMF19fSx7a2V5OiJnZXRJbnB1dEVsZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1l''@;'; + put 'put ''bnRzWzBdOjA7cmV0dXJuIHRoaXMuZ2V0SW5wdXRFbGVtZW50cygpW3ldfX0se2tleToiZ2V0SW5wdXRFbGVtZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50cy5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIHkgaW5zdGFuY2VvZiBPT30pfX0se2tleToiZ2V0TWVu''@;'; + put 'put ''dUl0ZW1EZXNjcmlwdG9yIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7cmV0dXJue2tleTp0aGlzLmlkLG5hbWU6dGhpcy5uYW1lLGlzQ29tbWFuZDohMSxkaXNhYmxlU2VsZWN0aW9uOiEwLGhpZGRlbjpmdW5jdGlvbigpe3JldHVybiB5LmlzSGlkZGVuKCl9LHJlbmRlcmVyOmZ1bmN0''@;'; + put 'put ''aW9uKEksaix1ZSxfZSxCZSxOZSl7TzAoai5wYXJlbnROb2RlLCJodEZpbHRlcnNNZW51Q29uZGl0aW9uIikseS5hZGRTZXBhcmF0b3ImJk8wKGoucGFyZW50Tm9kZSwiYm9yZGVyIik7dmFyIEtlPXkuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gTzAoS2Us''@;'; + put 'put ''Imh0RmlsdGVyc01lbnVMYWJlbCIpLEtlLnRleHRDb250ZW50PU5lLGouYXBwZW5kQ2hpbGQoS2UpLGoucGFyZW50Tm9kZS5oYXNBdHRyaWJ1dGUoImdob3N0LXRhYmxlIil8fFVyKHkuZWxlbWVudHMsZnVuY3Rpb24oZHQpe3JldHVybiBqLmFwcGVuZENoaWxkKGR0LmVsZW1lbnQpfSksan19''@;'; + put 'put ''fX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHksQz10aGlzLmhvdC5nZXRQbHVnaW4oImZpbHRlcnMiKS5nZXRTZWxlY3RlZENvbHVtbigpLEk9QyYmQy52aXN1YWxJbmRleCx1ZT1mdW5jdGlvbiBzMXQoZCl7dmFyIGc9W10saD1kO3JldHVybiBXeGVbaF18fChoPSJ0ZXh0''@;'; + put 'put ''IiksVXIoV3hlW2hdLGZ1bmN0aW9uKHYpe3ZhciB5O3k9dj09PVdsP3tuYW1lOldsfTphMyhETyh2KSksZy5wdXNoKHkpfSksZ30oKHk9dGhpcy5ob3QpLmdldERhdGFUeXBlLmFwcGx5KHksZnVuY3Rpb24gRTF0KGQpe3JldHVybiBmdW5jdGlvbiBEMXQoZCl7aWYoQXJyYXkuaXNBcnJheShk''@;'; + put 'put ''KSlyZXR1cm4gaTVlKGQpfShkKXx8ZnVuY3Rpb24gSTF0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIFQxdChkLGcpe2lmKGQp''@;'; + put 'put ''e2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gaTVlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09''@;'; + put 'put ''aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBpNWUoZCxnKX19KGQpfHxmdW5jdGlvbiB4MXQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVt''@;'; + put 'put ''cHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0odGhpcy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCl8fFswLEldKSkpO1Vy''@;'; + put 'put ''KHRoaXMuZ2V0SW5wdXRFbGVtZW50cygpLGZ1bmN0aW9uKF9lKXtyZXR1cm4gX2UuaGlkZSgpfSksdGhpcy5nZXRTZWxlY3RFbGVtZW50KCkuc2V0SXRlbXModWUpLGFuZShCTyhoLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuZ2V0U2VsZWN0RWxlbWVudCgpLnNl''@;'; + put 'put ''dFZhbHVlKHVlWzBdKX19LHtrZXk6Im9uQ29uZGl0aW9uU2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih5KXtVcih0aGlzLmdldElucHV0RWxlbWVudHMoKSxmdW5jdGlvbihDLEkpe0NbeS5pbnB1dHNDb3VudD5JPyJzaG93IjoiaGlkZSJdKCksMD09PUkmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gQy5mb2N1cygpfSwxMCl9KSx0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIseSl9fSx7a2V5OiJvblNlbGVjdFVJQ2xvc2VkIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJDbG9zZSIpfX0se2tleToib25JbnB1dEtleURvd24iLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKHkpe2lPKHkua2V5Q29kZSwiRU5URVIiKT8odGhpcy5ydW5Mb2NhbEhvb2tzKCJhY2NlcHQiKSxfOCh5KSk6aU8oeS5rZXlDb2RlLCJFU0NBUEUiKSYmKHRoaXMucnVuTG9jYWxIb29rcygiY2FuY2VsIiksXzgoeSkpfX1dKSxofShxdGUpO2NvbnN0IGE1ZT1WMXQ7dmFyIE16PXt9O2Z1''@;'; + put 'put ''bmN0aW9uIGoxdChkKXtpZighTXpbZF0pdGhyb3cgRXJyb3IoJ09wZXJhdGlvbiB3aXRoIGlkICInLmNvbmNhdChkLCciIGRvZXMgbm90IGV4aXN0LicpKTt2YXIgZz1NeltkXS5mdW5jO3JldHVybiBmdW5jdGlvbihoLHYpe3JldHVybiBnKGgsdil9fWZ1bmN0aW9uIFoxdChkKXtyZXR1cm4g''@;'; + put 'put ''TXpbZF0ubmFtZX1mdW5jdGlvbiBsNWUoZCxnLGgpe016W2RdPXtuYW1lOmcsZnVuYzpofX12YXIgVnc9ImNvbmp1bmN0aW9uIjtsNWUoVncsSXBlLGZ1bmN0aW9uIEcxdChkLGcpe3JldHVybiBkLmV2ZXJ5KGZ1bmN0aW9uKGgpe3JldHVybiBoLmZ1bmMoZyl9KX0pO3ZhciBsbmU9ImRpc2p1''@;'; + put 'put ''bmN0aW9uIjtsNWUobG5lLHR0ZSxmdW5jdGlvbiBZMXQoZCxnKXtyZXR1cm4gZC5zb21lKGZ1bmN0aW9uKGgpe3JldHVybiBoLmZ1bmMoZyl9KX0pO3ZhciBzNWU9ImRpc2p1bmN0aW9uV2l0aEV4dHJhQ29uZGl0aW9uIjtmdW5jdGlvbiB1NWUoZCl7cmV0dXJuKHU1ZT0iZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3Rv''@;'; + put 'put ''dHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHRUZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIHNuZSgpe3JldHVybiBzbmU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUsxdChnLGgpO2lmKHkpe3ZhciBDPU9iamVj''@;'; + put 'put ''dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sc25lLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBLMXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blBy''@;'; + put 'put ''b3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVBPKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGM1ZShkLGcpe3JldHVybihjNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSko''@;'; + put 'put ''ZCxnKX1mdW5jdGlvbiBldXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT11NWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5k''@;'; + put 'put ''ZWZpbmVkIik7cmV0dXJuIG5UZShkKX1mdW5jdGlvbiBuVGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIFBPKGQpe3Jl''@;'; + put 'put ''dHVybihQTz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWw1ZShzNWUsdHRlLGZ1bmN0aW9uIFExdChkLGcpe2lmKGQubGVuZ3RoPDMp''@;'; + put 'put ''dGhyb3cgRXJyb3IoIk9wZXJhdGlvbiBkb2Vzbid0IHdvcmsgb24gbGVzcyB0aGVuIHRocmVlIGNvbmRpdGlvbnMuIik7cmV0dXJuIGQuc2xpY2UoMCxkLmxlbmd0aC0xKS5zb21lKGZ1bmN0aW9uKGgpe3JldHVybiBoLmZ1bmMoZyl9KSYmZFtkLmxlbmd0aC0xXS5mdW5jKGcpfSk7dmFyIHVu''@;'; + put 'put ''ZT1uZXcgV2Vha01hcCxudXQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uICQxdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90''@;'; + put 'put ''eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZjNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5j''@;'; + put 'put ''dGlvbiBxMXQoZCl7dmFyIGc9ZnVuY3Rpb24gdHV0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4g''@;'; + put 'put ''Qm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9UE8oZCk7aWYoZyl7dmFyIEM9UE8odGhpcykuY29uc3RydWN0b3I7''@;'; + put 'put ''eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGV1dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiBKMXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBu''@;'; + put 'put ''ZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxDPWcuY2FsbCh0aGlzLHYsSTEoaC5ERUZBVUxUUyx5KSksdW5lLnNldChuVGUoQykse30pLEN9cmV0dXJuIGZ1bmN0aW9uIFgxdChkLGcsaCl7ZyYmdFRlKGQucHJvdG90eXBlLGcpLGgm''@;'; + put 'put ''JnRUZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXtzbmUoUE8oaC5wcm90b3R5cGUpLCJidWlsZCIsdGhpcykuY2FsbCh0aGlzKTt2YXIgeT11bmUuZ2V0KHRoaXMpO3kuaW5w''@;'; + put 'put ''dXQ9dGhpcy5fZWxlbWVudC5maXJzdENoaWxkO3ZhciBDPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpO0MudGV4dENvbnRlbnQ9dGhpcy50cmFuc2xhdGVJZlBvc3NpYmxlKHRoaXMub3B0aW9ucy5sYWJlbC50ZXh0Q29udGVudCksQy5odG1sRm9yPXRoaXMu''@;'; + put 'put ''dHJhbnNsYXRlSWZQb3NzaWJsZSh0aGlzLm9wdGlvbnMubGFiZWwuaHRtbEZvcikseS5sYWJlbD1DLHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQoQyksdGhpcy51cGRhdGUoKX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmlzQnVpbHQoKSl7dmFyIHk9dW5lLmdl''@;'; + put 'put ''dCh0aGlzKTt5LmlucHV0LmNoZWNrZWQ9dGhpcy5vcHRpb25zLmNoZWNrZWQseS5sYWJlbC50ZXh0Q29udGVudD10aGlzLnRyYW5zbGF0ZUlmUG9zc2libGUodGhpcy5vcHRpb25zLmxhYmVsLnRleHRDb250ZW50KX19fSx7a2V5OiJpc0NoZWNrZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMub3B0aW9ucy5jaGVja2VkfX0se2tleToic2V0Q2hlY2tlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdO3RoaXMub3B0aW9ucy5jaGVja2VkPXksdGhpcy51cGRhdGUoKX19LHtr''@;'; + put 'put ''ZXk6ImZvY3VzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXNCdWlsdCgpJiZ1bmUuZ2V0KHRoaXMpLmlucHV0LmZvY3VzKCl9fV0sW3trZXk6IkRFRkFVTFRTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYTMoe3R5cGU6InJhZGlvIix0YWdOYW1lOiJpbnB1dCIsY2xhc3NOYW1lOiJodFVJUmFk''@;'; + put 'put ''aW8iLGxhYmVsOnt9fSl9fV0pLGh9KEh3KTtjb25zdCByVGU9bnV0O2Z1bmN0aW9uIGY1ZShkKXtyZXR1cm4oZjVlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24o''@;'; + put 'put ''Zyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9dmFyIGlUZTtmdW5jdGlvbiBvVGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFy''@;'; + put 'put ''IHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBoNWUoZCxnKXtyZXR1cm4oaDVlPU9iamVjdC5zZXRQcm90b3R5''@;'; + put 'put ''cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gc3V0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09ZjVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09''@;'; + put 'put ''Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiB1dXQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5p''@;'; + put 'put ''dGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBjbmUoZCl7cmV0dXJuKGNuZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9i''@;'; + put 'put ''amVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBmdXQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGF1dChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBm''@;'; + put 'put ''dW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZoNWUoZCxn''@;'; + put 'put ''KX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBsdXQoZCl7dmFyIGc9ZnVuY3Rpb24gY3V0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJl''@;'; + put 'put ''dHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9Y25lKGQpO2lmKGcpe3ZhciBDPWNu''@;'; + put 'put ''ZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gc3V0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYseSl7dmFyIEM7cmV0dXJuIGZ1bmN0aW9uIGl1dChkLGcpe2lmKCEoZCBp''@;'; + put 'put ''bnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLChDPWcuY2FsbCh0aGlzLHYse2lkOnkuaWQsc3RhdGVsZXNzOiExfSkpLm5hbWU9eS5uYW1lLEMuYnVpbGRPcGVyYXRvcnNFbGVtZW50KCksQ31yZXR1''@;'; + put 'put ''cm4gZnVuY3Rpb24gb3V0KGQsZyxoKXtnJiZvVGUoZC5wcm90b3R5cGUsZyksaCYmb1RlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImdldE1lbnVJdGVtRGVzY3JpcHRvciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10''@;'; + put 'put ''aGlzO3JldHVybntrZXk6dGhpcy5pZCxuYW1lOnRoaXMubmFtZSxpc0NvbW1hbmQ6ITEsZGlzYWJsZVNlbGVjdGlvbjohMCxoaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4geS5pc0hpZGRlbigpfSxyZW5kZXJlcjpmdW5jdGlvbihJLGope3JldHVybiBPMChqLnBhcmVudE5vZGUsImh0RmlsdGVy''@;'; + put 'put ''c01lbnVPcGVyYXRvcnMiKSxqLnBhcmVudE5vZGUuaGFzQXR0cmlidXRlKCJnaG9zdC10YWJsZSIpfHxVcih5LmVsZW1lbnRzLGZ1bmN0aW9uKHVlKXtyZXR1cm4gai5hcHBlbmRDaGlsZCh1ZS5lbGVtZW50KX0pLGp9fX19LHtrZXk6ImJ1aWxkT3BlcmF0b3JzRWxlbWVudCIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgeT10aGlzLEM9W1Z3LGxuZV07VXIoQyxmdW5jdGlvbihJKXt2YXIgaj1uZXcgclRlKHkuaG90LHtuYW1lOiJvcGVyYXRvciIsbGFiZWw6e2h0bWxGb3I6SSx0ZXh0Q29udGVudDpaMXQoSSl9LHZhbHVlOkksY2hlY2tlZDpJPT09Q1swXSxpZDpJfSk7ai5hZGRMb2NhbEhv''@;'; + put 'put ''b2soImNoYW5nZSIsZnVuY3Rpb24odWUpe3JldHVybiB5Lm9uUmFkaW9JbnB1dENoYW5nZSh1ZSl9KSx5LmVsZW1lbnRzLnB1c2goail9KX19LHtrZXk6InNldENoZWNrZWQiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHRoaXMuZWxlbWVudHMubGVuZ3RoPHkpdGhyb3cgRXJyb3IoQjIoaVRlfHwo''@;'; + put 'put ''aVRlPWZ1bmN0aW9uIHJ1dChkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9KFsiUmFkaW8gYnV0dG9uIHdpdGggaW5kZXggIiwiIGRvZXNuJ3QgZXhpc3Qu''@;'; + put 'put ''Il0pKSx5KSk7VXIodGhpcy5lbGVtZW50cyxmdW5jdGlvbihDLEkpe0Muc2V0Q2hlY2tlZChJPT09eSl9KX19LHtrZXk6ImdldEFjdGl2ZU9wZXJhdGlvbklkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuZWxlbWVudHMuZmluZChmdW5jdGlvbihDKXtyZXR1cm4gQyBpbnN0YW5jZW9m''@;'; + put 'put ''IHJUZSYmQy5pc0NoZWNrZWQoKX0pO3JldHVybiB5P3kuZ2V0VmFsdWUoKTpWd319LHtrZXk6ImdldFN0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEFjdGl2ZU9wZXJhdGlvbklkKCl9fSx7a2V5OiJzZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5yZXNldCgp''@;'; + put 'put ''LHkmJnRoaXMuZ2V0QWN0aXZlT3BlcmF0aW9uSWQoKSE9PXkmJlVyKHRoaXMuZWxlbWVudHMsZnVuY3Rpb24oQyl7Qy5zZXRDaGVja2VkKEMuZ2V0VmFsdWUoKT09PXkpfSl9fSx7a2V5OiJ1cGRhdGVTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjAmJnZv''@;'; + put 'put ''aWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06VncsQz1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxJPXk7ST09PXM1ZSYmKEk9bG5lKSx0aGlzLnN0YXRlLnNldFZhbHVlQXRJbmRleChDLEkpfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhp''@;'; + put 'put ''cy5zZXRDaGVja2VkKDApfX0se2tleToib25SYWRpb0lucHV0Q2hhbmdlIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLnNldFN0YXRlKHkudGFyZ2V0LnZhbHVlKX19XSksaH0ocXRlKTtjb25zdCBodXQ9ZnV0O2Z1bmN0aW9uIHB1dChkLGcpe3ZhciBoPWQ7cmV0dXJuIiI9PT1oJiYoaD0iKCIu''@;'; + put 'put ''Y29uY2F0KGcsIikiKSksaH1sYmUoKTt2YXIgZDVlPW5ldyBTZXQoWzFdKS5oYXMoMSksZ3V0PWQ1ZSYmImZ1bmN0aW9uIj09dHlwZW9mIEFycmF5LmZyb207ZnVuY3Rpb24gRXooZCl7dmFyIGc9ZDtyZXR1cm4gZDVlJiYoZz1uZXcgU2V0KGcpKSxmdW5jdGlvbihoKXtyZXR1cm4gZDVlP2cu''@;'; + put 'put ''aGFzKGgpOiEhfmcuaW5kZXhPZihoKX19ZnVuY3Rpb24gbFRlKGQpe3JldHVybiBudWxsPT1kPyIiOmR9ZnVuY3Rpb24gcDVlKGQpe3ZhciBnPWQ7cmV0dXJuKGc9Z3V0P0FycmF5LmZyb20obmV3IFNldChnKSk6VWhlKGcpKS5zb3J0KGZ1bmN0aW9uKGgsdil7cmV0dXJuIm51bWJlciI9PXR5''@;'; + put 'put ''cGVvZiBoJiYibnVtYmVyIj09dHlwZW9mIHY/aC12Omg9PT12PzA6aD52PzE6LTF9KX1mdW5jdGlvbiBzVGUoZCxnLGgsdil7dmFyIEkseT1bXSxDPWQ9PT1nO3JldHVybiBDfHwoST1FeihnKSksVXIoZCxmdW5jdGlvbihqKXt2YXIgdWU9ITE7KEN8fEkoaikpJiYodWU9ITApO3ZhciBfZT17''@;'; + put 'put ''Y2hlY2tlZDp1ZSx2YWx1ZTpqLHZpc3VhbFZhbHVlOnB1dChqLGgpfTt2JiZ2KF9lKSx5LnB1c2goX2UpfSkseX1mdW5jdGlvbiBnNWUoZCl7cmV0dXJuKGc1ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXty''@;'; + put 'put ''ZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHVUZShkLGcpe2Zvcih2YXIgaD0wO2g8''@;'; + put 'put ''Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGZuZSgpe3JldHVybiBmbmU9InVu''@;'; + put 'put ''ZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUF1dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1''@;'; + put 'put ''bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sZm5lLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBBdXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUZPKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIG01ZShk''@;'; + put 'put ''LGcpe3JldHVybihtNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBidXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1nNWUoZyl8fCJmdW5jdGlvbiI9''@;'; + put 'put ''PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGNUZShkKX1mdW5jdGlvbiBjVGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBu''@;'; + put 'put ''ZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIEZPKGQpe3JldHVybihGTz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpm''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfUwoNDkyOTUpO3ZhciB2NWU9bmV3IFdlYWtNYXAsQ3V0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiB5dXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cg''@;'; + put 'put ''bmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmbTVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gd3V0KGQpe3ZhciBnPWZ1bmN0aW9uIF91dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZs''@;'; + put 'put ''ZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3Jl''@;'; + put 'put ''dHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUZPKGQpO2lmKGcpe3ZhciBDPUZPKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBidXQodGhpcyx5KX19KGgp''@;'; + put 'put ''O2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gbXV0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksQz1nLmNhbGwodGhpcyx2LEkxKGguREVGQVVMVFMs''@;'; + put 'put ''eSkpLHY1ZS5zZXQoY1RlKEMpLHt9KSxDfXJldHVybiBmdW5jdGlvbiB2dXQoZCxnLGgpe2cmJnVUZShkLnByb3RvdHlwZSxnKSxoJiZ1VGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7Zm5lKEZPKGgucHJvdG90eXBlKSwiYnVpbGQiLHRoaXMpLmNhbGwodGhpcyksdjVlLmdldCh0aGlzKS5saW5rPXRoaXMuX2VsZW1lbnQuZmlyc3RDaGlsZH19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXshdGhpcy5pc0J1aWx0KCl8fCh2NWUuZ2V0KHRoaXMpLmxpbmsu''@;'; + put 'put ''dGV4dENvbnRlbnQ9dGhpcy50cmFuc2xhdGVJZlBvc3NpYmxlKHRoaXMub3B0aW9ucy50ZXh0Q29udGVudCkpfX1dLFt7a2V5OiJERUZBVUxUUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEzKHtocmVmOiIjIix0YWdOYW1lOiJhIn0pfX1dKSxofShIdyk7Y29uc3QgZlRlPUN1dDtmdW5jdGlv''@;'; + put 'put ''biBBNWUoZCl7cmV0dXJuKEE1ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0''@;'; + put 'put ''cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGhUZShkKXtyZXR1cm4gZnVuY3Rpb24gRXV0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIHk1ZShkKX0oZCl8fGZ1bmN0aW9uIE11dChkKXtpZigidW5kZWZp''@;'; + put 'put ''bmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBTdXQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHk1ZShkLGcpO3ZhciBoPU9i''@;'; + put 'put ''amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/''@;'; + put 'put ''OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4geTVlKGQsZyl9fShkKXx8ZnVuY3Rpb24ga3V0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0''@;'; + put 'put ''byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24geTVlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2gr''@;'; + put 'put ''Kyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gZFRlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gSE8oKXtyZXR1cm4gSE89InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUl1dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Q''@;'; + put 'put ''cm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sSE8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEl1dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2Fs''@;'; + put 'put ''bChkLGcpJiZudWxsIT09KGQ9ancoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gdzVlKGQsZyl7cmV0dXJuKHc1ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0''@;'; + put 'put ''aW9uIE91dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PUE1ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTty''@;'; + put 'put ''ZXR1cm4gcFRlKGQpfWZ1bmN0aW9uIHBUZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gancoZCl7cmV0dXJuKGp3PU9i''@;'; + put 'put ''amVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIEJ1dD1uZXcgV2Vha01hcCxGdXQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIER1dChkLGcp''@;'; + put 'put ''e2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2''@;'; + put 'put ''YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZ3NWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBMdXQoZCl7dmFyIGc9ZnVuY3Rpb24gUnV0KCl7aWYoInVuZGVmaW5lZCI9''@;'; + put 'put ''PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0''@;'; + put 'put ''KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9ancoZCk7aWYoZyl7dmFyIEM9ancodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBs''@;'; + put 'put ''eSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIE91dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiB4dXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24i''@;'; + put 'put ''KX0odGhpcyxoKSxDPWcuY2FsbCh0aGlzLHYsSTEoaC5ERUZBVUxUUyx5KSksQnV0LnNldChwVGUoQykse30pLEMuc2VhcmNoSW5wdXQ9bmV3IE9PKEMuaG90LHtwbGFjZWhvbGRlcjpCcGUsY2xhc3NOYW1lOiJodFVJTXVsdGlwbGVTZWxlY3RTZWFyY2gifSksQy5zZWxlY3RBbGxVST1uZXcg''@;'; + put 'put ''ZlRlKEMuaG90LHt0ZXh0Q29udGVudDpEcGUsY2xhc3NOYW1lOiJodFVJU2VsZWN0QWxsIn0pLEMuY2xlYXJBbGxVST1uZXcgZlRlKEMuaG90LHt0ZXh0Q29udGVudDpMcGUsY2xhc3NOYW1lOiJodFVJQ2xlYXJBbGwifSksQy5pdGVtcz1bXSxDLml0ZW1zQm94PW51bGwsQy5yZWdpc3Rlckhv''@;'; + put 'put ''b2tzKCksQ31yZXR1cm4gZnVuY3Rpb24gVHV0KGQsZyxoKXtnJiZkVGUoZC5wcm90b3R5cGUsZyksaCYmZFRlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6InJlZ2lzdGVySG9va3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IHk9dGhpczt0aGlzLnNlYXJjaElucHV0LmFkZExvY2FsSG9vaygia2V5ZG93biIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25JbnB1dEtleURvd24oQyl9KSx0aGlzLnNlYXJjaElucHV0LmFkZExvY2FsSG9vaygiaW5wdXQiLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uSW5wdXQoQyl9KSx0aGlz''@;'; + put 'put ''LnNlbGVjdEFsbFVJLmFkZExvY2FsSG9vaygiY2xpY2siLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uU2VsZWN0QWxsQ2xpY2soQyl9KSx0aGlzLmNsZWFyQWxsVUkuYWRkTG9jYWxIb29rKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25DbGVhckFsbENsaWNrKEMpfSl9fSx7a2V5OiJz''@;'; + put 'put ''ZXRJdGVtcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5pdGVtcz15LHRoaXMuaXRlbXNCb3gmJnRoaXMuaXRlbXNCb3gubG9hZERhdGEodGhpcy5pdGVtcyl9fSx7a2V5OiJzZXRMb2NhbGUiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMubG9jYWxlPXl9fSx7a2V5OiJnZXRMb2NhbGUiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9jYWxlfX0se2tleToiZ2V0SXRlbXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGhUZSh0aGlzLml0ZW1zKX19LHtrZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBOdXQoZCl7dmFyIGc9W107cmV0dXJuIFVy''@;'; + put 'put ''KGQsZnVuY3Rpb24oaCl7aC5jaGVja2VkJiZnLnB1c2goaC52YWx1ZSl9KSxnfSh0aGlzLml0ZW1zKX19LHtrZXk6ImlzU2VsZWN0ZWRBbGxWYWx1ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoPT09dGhpcy5nZXRWYWx1ZSgpLmxlbmd0aH19LHtrZXk6ImJ1''@;'; + put 'put ''aWxkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7SE8oancoaC5wcm90b3R5cGUpLCJidWlsZCIsdGhpcykuY2FsbCh0aGlzKTt2YXIgQz10aGlzLmhvdC5yb290RG9jdW1lbnQsST1DLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGo9bmV3IEh3KHRoaXMuaG90LHtjbGFzc05hbWU6Imh0VUlT''@;'; + put 'put ''ZWxlY3Rpb25Db250cm9scyIsY2hpbGRyZW46W3RoaXMuc2VsZWN0QWxsVUksdGhpcy5jbGVhckFsbFVJXX0pO3RoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zZWFyY2hJbnB1dC5lbGVtZW50KSx0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGouZWxlbWVudCksdGhpcy5fZWxlbWVu''@;'; + put 'put ''dC5hcHBlbmRDaGlsZChJKTt2YXIgdWU9ZnVuY3Rpb24oQmUpe3kuX2VsZW1lbnQmJih5Lml0ZW1zQm94JiZ5Lml0ZW1zQm94LmRlc3Ryb3koKSxPMChCZSwiaHRVSU11bHRpcGxlU2VsZWN0SG90IikseS5pdGVtc0JveD1uZXcgeS5ob3QuY29uc3RydWN0b3IoQmUse2RhdGE6eS5pdGVtcyxj''@;'; + put 'put ''b2x1bW5zOlt7ZGF0YToiY2hlY2tlZCIsdHlwZToiY2hlY2tib3giLGxhYmVsOntwcm9wZXJ0eToidmlzdWFsVmFsdWUiLHBvc2l0aW9uOiJhZnRlciJ9fV0sYmVmb3JlUmVuZGVyZXI6ZnVuY3Rpb24oT3QsJHQsZm4sTG4saXIsbXIpe090LnRpdGxlPW1yLmluc3RhbmNlLmdldERhdGFBdFJv''@;'; + put 'put ''d1Byb3AoJHQsbXIubGFiZWwucHJvcGVydHkpfSxtYXhDb2xzOjEsYXV0b1dyYXBDb2w6ITAsaGVpZ2h0OjExMCxjb2xXaWR0aHM6ZnVuY3Rpb24oKXtyZXR1cm4geS5pdGVtc0JveC5jb250YWluZXIuc2Nyb2xsV2lkdGgtQmMoQyl9LGNvcHlQYXN0ZTohMSxkaXNhYmxlVmlzdWFsU2VsZWN0''@;'; + put 'put ''aW9uOiJhcmVhIixmaWxsSGFuZGxlOiExLGZyYWdtZW50U2VsZWN0aW9uOiJjZWxsIix0YWJNb3Zlczp7cm93OjEsY29sOjB9LGxheW91dERpcmVjdGlvbjp5LmhvdC5pc1J0bCgpPyJydGwiOiJsdHIifSkseS5pdGVtc0JveC5pbml0KCkseS5pdGVtc0JveC5nZXRTaG9ydGN1dE1hbmFnZXIo''@;'; + put 'put ''KS5nZXRDb250ZXh0KCJncmlkIikuYWRkU2hvcnRjdXQoe2tleXM6W1siRXNjYXBlIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKE90KXt5LnJ1bkxvY2FsSG9va3MoImtleWRvd24iLE90LHkpfSxncm91cDoibXVsdGlwbGVTZWxlY3QuaXRlbUJveCJ9KSl9O3VlKEkpLHNldFRpbWVvdXQoZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gdWUoSSl9LDEwMCl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlYXJjaElucHV0LnJlc2V0KCksdGhpcy5zZWxlY3RBbGxVSS5yZXNldCgpLHRoaXMuY2xlYXJBbGxVSS5yZXNldCgpfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbigpeyF0''@;'; + put 'put ''aGlzLmlzQnVpbHQoKXx8KHRoaXMuaXRlbXNCb3gubG9hZERhdGEoZnVuY3Rpb24gSHV0KGQsZyl7dmFyIGg9RXooZyk7cmV0dXJuIE9sKGQsZnVuY3Rpb24odil7cmV0dXJuIHYuY2hlY2tlZD1oKHYudmFsdWUpLHZ9KX0odGhpcy5pdGVtcyx0aGlzLm9wdGlvbnMudmFsdWUpKSxITyhqdyho''@;'; + put 'put ''LnByb3RvdHlwZSksInVwZGF0ZSIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXRlbXNCb3gmJnRoaXMuaXRlbXNCb3guZGVzdHJveSgpLHRoaXMuc2VhcmNoSW5wdXQuZGVzdHJveSgpLHRoaXMuY2xlYXJBbGxVSS5kZXN0cm95KCks''@;'; + put 'put ''dGhpcy5zZWxlY3RBbGxVSS5kZXN0cm95KCksdGhpcy5zZWFyY2hJbnB1dD1udWxsLHRoaXMuY2xlYXJBbGxVST1udWxsLHRoaXMuc2VsZWN0QWxsVUk9bnVsbCx0aGlzLml0ZW1zQm94PW51bGwsdGhpcy5pdGVtcz1udWxsLEhPKGp3KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2Fs''@;'; + put 'put ''bCh0aGlzKX19LHtrZXk6Im9uSW5wdXQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBqLEM9dGhpcyxJPXkudGFyZ2V0LnZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKHRoaXMuZ2V0TG9jYWxlKCkpO2o9IiI9PT1JP2hUZSh0aGlzLml0ZW1zKTpnNCh0aGlzLml0ZW1zLGZ1bmN0aW9uKHVlKXtyZXR1''@;'; + put 'put ''cm4iIi5jb25jYXQodWUudmFsdWUpLnRvTG9jYWxlTG93ZXJDYXNlKEMuZ2V0TG9jYWxlKCkpLmluZGV4T2YoSSk+PTB9KSx0aGlzLml0ZW1zQm94LmxvYWREYXRhKGopfX0se2tleToib25JbnB1dEtleURvd24iLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMucnVuTG9jYWxIb29rcygia2V5ZG93''@;'; + put 'put ''biIseSx0aGlzKSx5M2UoaU8seS5rZXlDb2RlKSgiQVJST1dfRE9XTnxUQUIiKSYmIXRoaXMuaXRlbXNCb3guaXNMaXN0ZW5pbmcoKSYmKF84KHkpLHRoaXMuaXRlbXNCb3gubGlzdGVuKCksdGhpcy5pdGVtc0JveC5zZWxlY3RDZWxsKDAsMCkpfX0se2tleToib25TZWxlY3RBbGxDbGljayIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9W107eS5wcmV2ZW50RGVmYXVsdCgpLFVyKHRoaXMuaXRlbXNCb3guZ2V0U291cmNlRGF0YSgpLGZ1bmN0aW9uKEksail7SS5jaGVja2VkPSEwLEMucHVzaChZZGUoSSxqKVswXSl9KSx0aGlzLml0ZW1zQm94LnNldFNvdXJjZURhdGFBdENlbGwoQyl9''@;'; + put 'put ''fSx7a2V5OiJvbkNsZWFyQWxsQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPVtdO3kucHJldmVudERlZmF1bHQoKSxVcih0aGlzLml0ZW1zQm94LmdldFNvdXJjZURhdGEoKSxmdW5jdGlvbihJLGope0kuY2hlY2tlZD0hMSxDLnB1c2goWWRlKEksailbMF0pfSksdGhpcy5pdGVtc0Jv''@;'; + put 'put ''eC5zZXRTb3VyY2VEYXRhQXRDZWxsKEMpfX1dLFt7a2V5OiJERUZBVUxUUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEzKHtjbGFzc05hbWU6Imh0VUlNdWx0aXBsZVNlbGVjdCIsdmFsdWU6W119KX19XSksaH0oSHcpO2NvbnN0IGdUZT1GdXQ7ZnVuY3Rpb24gbVRlKGQsZyl7cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uIHp1dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gWnV0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIg''@;'; + put 'put ''SSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJu''@;'; + put 'put ''KCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24ganV0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiB2VGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVj''@;'; + put 'put ''dCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJu''@;'; + put 'put ''IHZUZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gVnV0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBb''@;'; + put 'put ''U3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB2VGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn12YXIgcVM9ImJ5X3ZhbHVlIjtmdW5jdGlv''@;'; + put 'put ''biBiNWUoZCl7cmV0dXJuKGI1ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0''@;'; + put 'put ''cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIEFUZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVy''@;'; + put 'put ''biB2fWZ1bmN0aW9uIHlUZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5r''@;'; + put 'put ''ZXksdil9fWZ1bmN0aW9uIGhuZSgpe3JldHVybiBobmU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PSR1dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0''@;'; + put 'put ''b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0saG5lLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiAkdXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9''@;'; + put 'put ''PShkPU5PKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIF81ZShkLGcpe3JldHVybihfNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiB0Y3QoZCxnKXtp''@;'; + put 'put ''ZihnJiYoIm9iamVjdCI9PT1iNWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''IG5jdChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIE5PKGQpe3JldHVybihOTz1PYmplY3Quc2V0UHJvdG90eXBl''@;'; + put 'put ''T2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfVp1KHFTLGZ1bmN0aW9uIEd1dChkLGcpe3JldHVybigwLG1UZShnLDEpWzBdKShkLnZhbHVlKX0se25hbWU6IkJ5IHZhbHVl''@;'; + put 'put ''IixpbnB1dHNDb3VudDowLGlucHV0VmFsdWVzRGVjb3JhdG9yOmZ1bmN0aW9uKGcpe3JldHVybltFeihtVGUoZywxKVswXSldfSxzaG93T3BlcmF0b3JzOiExfSk7dmFyIGljdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gcXV0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1n''@;'; + put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEw''@;'; + put 'put ''fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJl81ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGVjdChkKXt2YXIgZz1mdW5jdGlvbiByY3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVj''@;'; + put 'put ''dHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRj''@;'; + put 'put ''aChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1OTyhkKTtpZihnKXt2YXIgQz1OTyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdGN0KHRoaXMs''@;'; + put 'put ''eSl9fShoKTtmdW5jdGlvbiBoKHYseSl7dmFyIEM7cmV0dXJuIGZ1bmN0aW9uIFh1dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLChDPWcuY2FsbCh0aGlzLHYse2lkOnku''@;'; + put 'put ''aWQsc3RhdGVsZXNzOiExfSkpLm5hbWU9eS5uYW1lLEMuZWxlbWVudHMucHVzaChuZXcgZ1RlKEMuaG90KSksQy5yZWdpc3Rlckhvb2tzKCksQ31yZXR1cm4gZnVuY3Rpb24gS3V0KGQsZyxoKXtnJiZ5VGUoZC5wcm90b3R5cGUsZyksaCYmeVRlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6InJlZ2lzdGVySG9va3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmdldE11bHRpcGxlU2VsZWN0RWxlbWVudCgpLmFkZExvY2FsSG9vaygia2V5ZG93biIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25JbnB1''@;'; + put 'put ''dEtleURvd24oQyl9KX19LHtrZXk6InNldFN0YXRlIix2YWx1ZTpmdW5jdGlvbih5KXtpZih0aGlzLnJlc2V0KCkseSYmeS5jb21tYW5kLmtleT09PXFTKXt2YXIgQz10aGlzLmdldE11bHRpcGxlU2VsZWN0RWxlbWVudCgpO0Muc2V0SXRlbXMoeS5pdGVtc1NuYXBzaG90KSxDLnNldFZhbHVl''@;'; + put 'put ''KHkuYXJnc1swXSksQy5zZXRMb2NhbGUoeS5sb2NhbGUpfX19LHtrZXk6ImdldFN0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuZ2V0TXVsdGlwbGVTZWxlY3RFbGVtZW50KCksQz15LmdldEl0ZW1zKCk7cmV0dXJue2NvbW1hbmQ6e2tleTp5LmlzU2VsZWN0ZWRBbGxWYWx1ZXMo''@;'; + put 'put ''KXx8IUMubGVuZ3RoP0hmOnFTfSxhcmdzOlt5LmdldFZhbHVlKCldLGl0ZW1zU25hcHNob3Q6Q319fSx7a2V5OiJ1cGRhdGVTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPWZ1bmN0aW9uKHVlLF9lLEJlLE5lLEtlKXt2YXIgJHQ9ZnVuY3Rpb24gV3V0KGQsZyl7cmV0dXJu''@;'; + put 'put ''IGZ1bmN0aW9uIEp1dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gUXV0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2''@;'; + put 'put ''YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0''@;'; + put 'put ''dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gVXV0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBBVGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9i''@;'; + put 'put ''amVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0''@;'; + put 'put ''dXJuIEFUZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gWXV0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUg''@;'; + put 'put ''YSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oZzQoX2UsZnVuY3Rpb24oUXIpe3JldHVybiBRci5uYW1lPT09cVN9KSwxKVswXSxmbj17fSxMbj1DLmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKG50ZSk7aWYoJHQpe3ZhciBpcj1wNWUoT2woTmUodWUsS2UpLGZ1bmN0aW9uKFFy''@;'; + put 'put ''KXtyZXR1cm4gUXIudmFsdWV9KSk7QmUmJigkdC5hcmdzWzBdPUJlKTt2YXIgbXI9W10sU3I9c1RlKGlyLCR0LmFyZ3NbMF0sTG4sZnVuY3Rpb24oUXIpe1FyLmNoZWNrZWQmJm1yLnB1c2goUXIudmFsdWUpfSk7Zm4ubG9jYWxlPUMuaG90LmdldENlbGxNZXRhKDAseS5lZGl0ZWRDb25kaXRp''@;'; + put 'put ''b25TdGFjay5jb2x1bW4pLmxvY2FsZSxmbi5hcmdzPVttcl0sZm4uY29tbWFuZD1ETyhxUyksZm4uaXRlbXNTbmFwc2hvdD1Tcn1lbHNlIGZuLmFyZ3M9W10sZm4uY29tbWFuZD1ETyhIZik7Qy5zdGF0ZS5zZXRWYWx1ZUF0SW5kZXgodWUsZm4pfTtJKHkuZWRpdGVkQ29uZGl0aW9uU3RhY2su''@;'; + put 'put ''Y29sdW1uLHkuZWRpdGVkQ29uZGl0aW9uU3RhY2suY29uZGl0aW9ucyx5LmNvbmRpdGlvbkFyZ3NDaGFuZ2UseS5maWx0ZXJlZFJvd3NGYWN0b3J5KSx5LmRlcGVuZGVudENvbmRpdGlvblN0YWNrcy5sZW5ndGgmJkkoeS5kZXBlbmRlbnRDb25kaXRpb25TdGFja3NbMF0uY29sdW1uLHkuZGVw''@;'; + put 'put ''ZW5kZW50Q29uZGl0aW9uU3RhY2tzWzBdLmNvbmRpdGlvbnMseS5jb25kaXRpb25BcmdzQ2hhbmdlLHkuZmlsdGVyZWRSb3dzRmFjdG9yeSx5LmVkaXRlZENvbmRpdGlvblN0YWNrKX19LHtrZXk6ImdldE11bHRpcGxlU2VsZWN0RWxlbWVudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5lbGVtZW50cy5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIHkgaW5zdGFuY2VvZiBnVGV9KVswXX19LHtrZXk6ImdldE1lbnVJdGVtRGVzY3JpcHRvciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3JldHVybntrZXk6dGhpcy5pZCxuYW1lOnRoaXMubmFtZSxpc0NvbW1hbmQ6ITEs''@;'; + put 'put ''ZGlzYWJsZVNlbGVjdGlvbjohMCxoaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4geS5pc0hpZGRlbigpfSxyZW5kZXJlcjpmdW5jdGlvbihJLGosdWUsX2UsQmUsTmUpe08wKGoucGFyZW50Tm9kZSwiaHRGaWx0ZXJzTWVudVZhbHVlIik7dmFyIEtlPXkuaG90LnJvb3REb2N1bWVudC5jcmVhdGVF''@;'; + put 'put ''bGVtZW50KCJkaXYiKTtyZXR1cm4gTzAoS2UsImh0RmlsdGVyc01lbnVMYWJlbCIpLEtlLnRleHRDb250ZW50PU5lLGouYXBwZW5kQ2hpbGQoS2UpLGoucGFyZW50Tm9kZS5oYXNBdHRyaWJ1dGUoImdob3N0LXRhYmxlIil8fFVyKHkuZWxlbWVudHMsZnVuY3Rpb24oZHQpe3JldHVybiBqLmFw''@;'; + put 'put ''cGVuZENoaWxkKGR0LmVsZW1lbnQpfSksan19fX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0VHJhbnNsYXRlZFBocmFzZShudGUpLEM9cDVlKHRoaXMuX2dldENvbHVtblZpc2libGVWYWx1ZXMoKSksST1zVGUoQyxDLHkpO3RoaXMuZ2V0TXVsdGlw''@;'; + put 'put ''bGVTZWxlY3RFbGVtZW50KCkuc2V0SXRlbXMoSSksaG5lKE5PKGgucHJvdG90eXBlKSwicmVzZXQiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5nZXRNdWx0aXBsZVNlbGVjdEVsZW1lbnQoKS5zZXRWYWx1ZShDKTt2YXIgaj10aGlzLmhvdC5nZXRQbHVnaW4oImZpbHRlcnMiKS5nZXRTZWxlY3Rl''@;'; + put 'put ''ZENvbHVtbigpLnZpc3VhbEluZGV4O3RoaXMuZ2V0TXVsdGlwbGVTZWxlY3RFbGVtZW50KCkuc2V0TG9jYWxlKHRoaXMuaG90LmdldENlbGxNZXRhKDAsaikubG9jYWxlKX19LHtrZXk6Im9uSW5wdXRLZXlEb3duIix2YWx1ZTpmdW5jdGlvbih5KXtpTyh5LmtleUNvZGUsIkVTQ0FQRSIpJiYo''@;'; + put 'put ''dGhpcy5ydW5Mb2NhbEhvb2tzKCJjYW5jZWwiKSxfOCh5KSl9fSx7a2V5OiJfZ2V0Q29sdW1uVmlzaWJsZVZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRQbHVnaW4oImZpbHRlcnMiKS5nZXRTZWxlY3RlZENvbHVtbigpO3JldHVybiBPbCh0aGlzLmhvdC5nZXRE''@;'; + put 'put ''YXRhQXRDb2woeSYmeS52aXN1YWxJbmRleCksZnVuY3Rpb24oSSl7cmV0dXJuIGxUZShJKX0pfX1dKSxofShxdGUpO2NvbnN0IG9jdD1pY3Q7ZnVuY3Rpb24gQzVlKGQpe3JldHVybihDNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0''@;'; + put 'put ''b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiB3VGUoZCxn''@;'; + put 'put ''KXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBrNWUo''@;'; + put 'put ''ZCxnKXtyZXR1cm4oazVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gY2N0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09QzVlKGcpfHwiZnVuY3Rpb24i''@;'; + put 'put ''PT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBmY3QoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVm''@;'; + put 'put ''ZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBkbmUoZCl7cmV0dXJuKGRuZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpm''@;'; + put 'put ''dW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBkY3Q9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHNjdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHBy''@;'; + put 'put ''ZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJv''@;'; + put 'put ''dG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZrNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiB1Y3QoZCl7dmFyIGc9ZnVuY3Rpb24gaGN0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJu''@;'; + put 'put ''ITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlv''@;'; + put 'put ''bigpe3ZhciB5LHY9ZG5lKGQpO2lmKGcpe3ZhciBDPWRuZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gY2N0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYseSl7dmFyIEM7''@;'; + put 'put ''cmV0dXJuIGZ1bmN0aW9uIGFjdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLChDPWcuY2FsbCh0aGlzLHYse2lkOnkuaWQsc3RhdGVsZXNzOiEwfSkpLm5hbWU9eS5uYW1l''@;'; + put 'put ''LEMuZWxlbWVudHMucHVzaChuZXcgT08oQy5ob3Qse3R5cGU6ImJ1dHRvbiIsdmFsdWU6T3BlLGNsYXNzTmFtZToiaHRVSUJ1dHRvbiBodFVJQnV0dG9uT0siLGlkZW50aWZpZXI6aC5CVVRUT05fT0t9KSksQy5lbGVtZW50cy5wdXNoKG5ldyBPTyhDLmhvdCx7dHlwZToiYnV0dG9uIix2YWx1''@;'; + put 'put ''ZTpScGUsY2xhc3NOYW1lOiJodFVJQnV0dG9uIGh0VUlCdXR0b25DYW5jZWwiLGlkZW50aWZpZXI6aC5CVVRUT05fQ0FOQ0VMfSkpLEMucmVnaXN0ZXJIb29rcygpLEN9cmV0dXJuIGZ1bmN0aW9uIGxjdChkLGcsaCl7ZyYmd1RlKGQucHJvdG90eXBlLGcpLGgmJndUZShkLGgpLE9iamVjdC5k''@;'; + put 'put ''ZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJyZWdpc3Rlckhvb2tzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7VXIodGhpcy5lbGVtZW50cyxmdW5jdGlvbihDKXtDLmFkZExvY2FsSG9vaygiY2xpY2siLGZ1bmN0aW9uKEksail7cmV0''@;'; + put 'put ''dXJuIHkub25CdXR0b25DbGljayhJLGopfSl9KX19LHtrZXk6ImdldE1lbnVJdGVtRGVzY3JpcHRvciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3JldHVybntrZXk6dGhpcy5pZCxuYW1lOnRoaXMubmFtZSxpc0NvbW1hbmQ6ITEsZGlzYWJsZVNlbGVjdGlvbjohMCxoaWRkZW46ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4geS5pc0hpZGRlbigpfSxyZW5kZXJlcjpmdW5jdGlvbihJLGope3JldHVybiBPMChqLnBhcmVudE5vZGUsImh0RmlsdGVyc01lbnVBY3Rpb25CYXIiKSxqLnBhcmVudE5vZGUuaGFzQXR0cmlidXRlKCJnaG9zdC10YWJsZSIpfHxVcih5LmVsZW1lbnRzLGZ1bmN0aW9u''@;'; + put 'put ''KHVlKXtyZXR1cm4gai5hcHBlbmRDaGlsZCh1ZS5lbGVtZW50KX0pLGp9fX19LHtrZXk6ImFjY2VwdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJ1bkxvY2FsSG9va3MoImFjY2VwdCIpfX0se2tleToiY2FuY2VsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucnVuTG9jYWxIb29rcygiY2FuY2Vs''@;'; + put 'put ''Iil9fSx7a2V5OiJvbkJ1dHRvbkNsaWNrIix2YWx1ZTpmdW5jdGlvbih5LEMpe0Mub3B0aW9ucy5pZGVudGlmaWVyPT09aC5CVVRUT05fT0s/dGhpcy5hY2NlcHQoKTp0aGlzLmNhbmNlbCgpfX1dLFt7a2V5OiJCVVRUT05fT0siLGdldDpmdW5jdGlvbigpe3JldHVybiJvayJ9fSx7a2V5OiJC''@;'; + put 'put ''VVRUT05fQ0FOQ0VMIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iY2FuY2VsIn19XSksaH0ocXRlKTtjb25zdCBwY3Q9ZGN0O3ZhciBiVGUsX1RlO2Z1bmN0aW9uIENUZShkLGcpe3JldHVybiBmdW5jdGlvbiBBY3QoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9u''@;'; + put 'put ''IHZjdChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSku''@;'; + put 'put ''ZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIG1jdChk''@;'; + put 'put ''LGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4ga1RlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8''@;'; + put 'put ''fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBrVGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIGdjdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIklu''@;'; + put 'put ''dmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24ga1RlKGQsZyl7KG51bGw9''@;'; + put 'put ''PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gU1RlKGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMo''@;'; + put 'put ''ZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX1mdW5jdGlvbiB5Y3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBNVGUoZCxnKXtmb3IodmFyIGg9MDtoPGcu''@;'; + put 'put ''bGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgRVRlPSJDb25kaXRpb25Db2xsZWN0aW9uLmZp''@;'; + put 'put ''bHRlcmluZ1N0YXRlcyIseFRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXt2YXIgaD0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO3ljdCh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5pc01hcFJlZ2lzdHJhYmxlPWgsdGhpcy5maWx0''@;'; + put 'put ''ZXJpbmdTdGF0ZXM9bmV3IFllZSwhMD09PXRoaXMuaXNNYXBSZWdpc3RyYWJsZT90aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5yZWdpc3Rlck1hcChFVGUsdGhpcy5maWx0ZXJpbmdTdGF0ZXMpOnRoaXMuZmlsdGVyaW5nU3RhdGVzLmluaXQodGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIu''@;'; + put 'put ''Z2V0TnVtYmVyT2ZJbmRleGVzKCkpfXJldHVybiBmdW5jdGlvbiB3Y3QoZCxnLGgpe2cmJk1UZShkLnByb3RvdHlwZSxnKSxoJiZNVGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiaXNFbXB0eSIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gMD09PXRoaXMuZ2V0RmlsdGVyZWRDb2x1bW5zKCkubGVuZ3RofX0se2tleToiaXNNYXRjaCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeSxDPXRoaXMuZmlsdGVyaW5nU3RhdGVzLmdldFZhbHVlQXRJbmRleCh2KSxJPW51bGwhPT0oeT1udWxsPT1DP3ZvaWQgMDpDLmNv''@;'; + put 'put ''bmRpdGlvbnMpJiZ2b2lkIDAhPT15P3k6W107cmV0dXJuIHRoaXMuaXNNYXRjaEluQ29uZGl0aW9ucyhJLGgsbnVsbD09Qz92b2lkIDA6Qy5vcGVyYXRpb24pfX0se2tleToiaXNNYXRjaEluQ29uZGl0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjIm''@;'; + put 'put ''JnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06Vnc7cmV0dXJuIWgubGVuZ3RofHxqMXQoeSkoaCx2KX19LHtrZXk6ImFkZENvbmRpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVu''@;'; + put 'put ''dHNbMl06VncsQz1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOnZvaWQgMCxJPXRoaXMuaG90LmdldENlbGxNZXRhKDAsaCkubG9jYWxlLGo9T2wodi5hcmdzLGZ1bmN0aW9uKE5lKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIE5lP05lLnRvTG9jYWxlTG93ZXJDYXNlKEkpOk5lfSks''@;'; + put 'put ''dWU9di5uYW1lfHx2LmNvbW1hbmQua2V5O3RoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlQWRkIixoKTt2YXIgX2U9dGhpcy5nZXRPcGVyYXRpb24oaCk7aWYoX2Upe2lmKF9lIT09eSl0aHJvdyBFcnJvcihCMihiVGV8fChiVGU9U1RlKFsiVGhlIGNvbHVtbiBvZiBpbmRleCAiLCIgaGFzIGJl''@;'; + put 'put ''ZW4gYWxyZWFkeSBhcHBsaWVkIHdpdGggYSBgIiwiYCBcbiAgICAgICAgZmlsdGVyIG9wZXJhdGlvbi4gVXNlIGByZW1vdmVDb25kaXRpb25zYCB0byBjbGVhciB0aGUgY3VycmVudCBjb25kaXRpb25zIGFuZCB0aGVuIGFkZCBuZXcgb25lcy4gXG4gICAgICAgIE1pbmQgdGhhdCB5b3UgY2Fu''@;'; + put 'put ''bm90IG1peCBkaWZmZXJlbnQgdHlwZXMgb2Ygb3BlcmF0aW9ucyAoZm9yIGluc3RhbmNlLCBpZiB5b3UgdXNlIGBjb25qdW5jdGlvbmAsIFxuICAgICAgICB1c2UgaXQgY29uc2VxdWVudGx5IGZvciBhIHBhcnRpY3VsYXIgY29sdW1uKS4iXSxbIlRoZSBjb2x1bW4gb2YgaW5kZXggIiwiIGhh''@;'; + put 'put ''cyBiZWVuIGFscmVhZHkgYXBwbGllZCB3aXRoIGEgXFxgIiwiXFxgXFx4MjBcbiAgICAgICAgZmlsdGVyIG9wZXJhdGlvbi4gVXNlIFxcYHJlbW92ZUNvbmRpdGlvbnNcXGAgdG8gY2xlYXIgdGhlIGN1cnJlbnQgY29uZGl0aW9ucyBhbmQgdGhlbiBhZGQgbmV3IG9uZXMuXFx4MjBcbiAgICAg''@;'; + put 'put ''ICAgTWluZCB0aGF0IHlvdSBjYW5ub3QgbWl4IGRpZmZlcmVudCB0eXBlcyBvZiBvcGVyYXRpb25zIChmb3IgaW5zdGFuY2UsIGlmIHlvdSB1c2UgXFxgY29uanVuY3Rpb25cXGAsXFx4MjBcbiAgICAgICAgdXNlIGl0IGNvbnNlcXVlbnRseSBmb3IgYSBwYXJ0aWN1bGFyIGNvbHVtbikuIl0p''@;'; + put 'put ''KSxoLF9lKSl9ZWxzZSBpZihhMShNelt5XSkpdGhyb3cgbmV3IEVycm9yKEIyKF9UZXx8KF9UZT1TVGUoWyJVbmV4cGVjdGVkIG9wZXJhdGlvbiBuYW1lZCBgIiwiYC4gUG9zc2libGUgb25lcyBhcmUgXG4gICAgICAgIGBkaXNqdW5jdGlvbmAgYW5kIGBjb25qdW5jdGlvbmAuIl0sWyJVbmV4''@;'; + put 'put ''cGVjdGVkIG9wZXJhdGlvbiBuYW1lZCBcXGAiLCJcXGAuIFBvc3NpYmxlIG9uZXMgYXJlXFx4MjBcbiAgICAgICAgXFxgZGlzanVuY3Rpb25cXGAgYW5kIFxcYGNvbmp1bmN0aW9uXFxgLiJdKSkseSkpO3ZhciBCZT10aGlzLmdldENvbmRpdGlvbnMoaCk7MD09PUJlLmxlbmd0aD90aGlzLmZp''@;'; + put 'put ''bHRlcmluZ1N0YXRlcy5zZXRWYWx1ZUF0SW5kZXgoaCx7b3BlcmF0aW9uOnksY29uZGl0aW9uczpbe25hbWU6dWUsYXJnczpqLGZ1bmM6RncodWUsail9XX0sQyk6QmUucHVzaCh7bmFtZTp1ZSxhcmdzOmosZnVuYzpGdyh1ZSxqKX0pLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJBZGQiLGgp''@;'; + put 'put ''fX0se2tleToiZ2V0Q29uZGl0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHYseTtyZXR1cm4gbnVsbCE9PSh2PW51bGw9PT0oeT10aGlzLmZpbHRlcmluZ1N0YXRlcy5nZXRWYWx1ZUF0SW5kZXgoaCkpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmNvbmRpdGlvbnMpJiZ2b2lkIDAhPT12P3Y6''@;'; + put 'put ''W119fSx7a2V5OiJnZXRPcGVyYXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2O3JldHVybiBudWxsPT09KHY9dGhpcy5maWx0ZXJpbmdTdGF0ZXMuZ2V0VmFsdWVBdEluZGV4KGgpKXx8dm9pZCAwPT09dj92b2lkIDA6di5vcGVyYXRpb259fSx7a2V5OiJnZXRGaWx0ZXJlZENvbHVtbnMi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsdGVyaW5nU3RhdGVzLmdldEVudHJpZXMoKS5tYXAoZnVuY3Rpb24oaCl7cmV0dXJuIENUZShoLDEpWzBdfSl9fSx7a2V5OiJnZXRDb2x1bW5TdGFja1Bvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5nZXRGaWx0''@;'; + put 'put ''ZXJlZENvbHVtbnMoKS5pbmRleE9mKGgpfX0se2tleToiZXhwb3J0QWxsQ29uZGl0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gU3UodGhpcy5maWx0ZXJpbmdTdGF0ZXMuZ2V0RW50cmllcygpLGZ1bmN0aW9uKGgsdil7dmFyIHk9Q1RlKHYsMiksST15WzFdO3JldHVybiBoLnB1c2go''@;'; + put 'put ''e2NvbHVtbjp5WzBdLG9wZXJhdGlvbjpJLm9wZXJhdGlvbixjb25kaXRpb25zOk9sKEkuY29uZGl0aW9ucyxmdW5jdGlvbihfZSl7cmV0dXJue25hbWU6X2UubmFtZSxhcmdzOl9lLmFyZ3N9fSl9KSxofSxbXSl9fSx7a2V5OiJpbXBvcnRBbGxDb25kaXRpb25zIix2YWx1ZTpmdW5jdGlvbiho''@;'; + put 'put ''KXt2YXIgdj10aGlzO3RoaXMuY2xlYW4oKSxVcihoLGZ1bmN0aW9uKHkpe1VyKHkuY29uZGl0aW9ucyxmdW5jdGlvbihDKXtyZXR1cm4gdi5hZGRDb25kaXRpb24oeS5jb2x1bW4sQyl9KX0pfX0se2tleToicmVtb3ZlQ29uZGl0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5ydW5Mb2Nh''@;'; + put 'put ''bEhvb2tzKCJiZWZvcmVSZW1vdmUiLGgpLHRoaXMuZmlsdGVyaW5nU3RhdGVzLmNsZWFyVmFsdWUoaCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclJlbW92ZSIsaCl9fSx7a2V5OiJjbGVhbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZUNsZWFuIiksdGhp''@;'; + put 'put ''cy5maWx0ZXJpbmdTdGF0ZXMuY2xlYXIoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyQ2xlYW4iKX19LHtrZXk6Imhhc0NvbmRpdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5nZXRDb25kaXRpb25zKGgpO3JldHVybiB2P3kuc29tZShmdW5jdGlvbihDKXtyZXR1cm4g''@;'; + put 'put ''Qy5uYW1lPT09dn0pOnkubGVuZ3RoPjB9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXNNYXBSZWdpc3RyYWJsZSYmdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcChFVGUpLHRoaXMuZmlsdGVyaW5nU3RhdGVzPW51bGwsdGhpcy5jbGVhckxv''@;'; + put 'put ''Y2FsSG9va3MoKX19XSksZH0oKTtSMih4VGUsc2QpO2NvbnN0IFRUZT14VGU7ZnVuY3Rpb24gYmN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gSVRlKGQsZyl7Zm9yKHZh''@;'; + put 'put ''ciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIENjdD1mdW5jdGlvbigpe2Z1''@;'; + put 'put ''bmN0aW9uIGQoZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmZ1bmN0aW9uKCl7cmV0dXJuW119O2JjdCh0aGlzLGQpLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbj1nLHRoaXMuY29sdW1uRGF0YUZhY3Rvcnk9aH1yZXR1cm4g''@;'; + put 'put ''ZnVuY3Rpb24gX2N0KGQsZyxoKXtnJiZJVGUoZC5wcm90b3R5cGUsZyksaCYmSVRlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImZpbHRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9W107cmV0dXJuIFVy''@;'; + put 'put ''KHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5nZXRGaWx0ZXJlZENvbHVtbnMoKSxmdW5jdGlvbih5LEMpe3ZhciBJPWguY29sdW1uRGF0YUZhY3RvcnkoeSk7QyYmKEk9aC5fZ2V0SW50ZXJzZWN0RGF0YShJLHYpKSx2PWguZmlsdGVyQnlDb2x1bW4oeSxJKX0pLHZ9fSx7a2V5OiJmaWx0ZXJC''@;'; + put 'put ''eUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcyx5PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXSxDPVtdO3JldHVybiBVcih5LGZ1bmN0aW9uKEkpe3ZvaWQgMCE9PUkmJnYuY29uZGl0aW9uQ29sbGVjdGlvbi5pc01h''@;'; + put 'put ''dGNoKEksaCkmJkMucHVzaChJKX0pLEN9fSx7a2V5OiJfZ2V0SW50ZXJzZWN0RGF0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1bXTtyZXR1cm4gVXIodixmdW5jdGlvbihDKXt2YXIgST1DLm1ldGEudmlzdWFsUm93O3ZvaWQgMCE9PWhbSV0mJih5W0ldPWhbSV0pfSkseX19XSksZH0o''@;'; + put 'put ''KTtjb25zdCBEVGU9Q2N0O2Z1bmN0aW9uIGtjdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIExUZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1n''@;'; + put 'put ''W2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBPVGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7dmFyIHY9dGhpcyx5PWFy''@;'; + put 'put ''Z3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpmdW5jdGlvbigpe3JldHVybltdfTtrY3QodGhpcyxkKSx0aGlzLmhvdD1nLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbj1oLHRoaXMuY29sdW1uRGF0YUZhY3Rvcnk9eSx0aGlzLmNoYW5nZXM9W10s''@;'; + put 'put ''dGhpcy5ncm91cGluZz0hMSx0aGlzLmxhdGVzdEVkaXRlZENvbHVtblBvc2l0aW9uPS0xLHRoaXMubGF0ZXN0T3JkZXJTdGFjaz1bXSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVSZW1vdmUiLGZ1bmN0aW9uKEMpe3JldHVybiB2Ll9vbkNvbmRpdGlvbkJl''@;'; + put 'put ''Zm9yZU1vZGlmeShDKX0pLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyUmVtb3ZlIixmdW5jdGlvbihDKXtyZXR1cm4gdi51cGRhdGVTdGF0ZXNBdENvbHVtbihDKX0pLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyQWRkIixm''@;'; + put 'put ''dW5jdGlvbihDKXtyZXR1cm4gdi51cGRhdGVTdGF0ZXNBdENvbHVtbihDKX0pLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZUNsZWFuIixmdW5jdGlvbigpe3JldHVybiB2Ll9vbkNvbmRpdGlvbkJlZm9yZUNsZWFuKCl9KSx0aGlzLmNvbmRpdGlvbkNvbGxl''@;'; + put 'put ''Y3Rpb24uYWRkTG9jYWxIb29rKCJhZnRlckNsZWFuIixmdW5jdGlvbigpe3JldHVybiB2Ll9vbkNvbmRpdGlvbkFmdGVyQ2xlYW4oKX0pfXJldHVybiBmdW5jdGlvbiBTY3QoZCxnLGgpe2cmJkxUZShkLnByb3RvdHlwZSxnKSxoJiZMVGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwi''@;'; + put 'put ''cHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiZ3JvdXBDaGFuZ2VzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZ3JvdXBpbmc9ITB9fSx7a2V5OiJmbHVzaCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO3RoaXMuZ3JvdXBpbmc9ITEsVXIodGhpcy5jaGFuZ2VzLGZ1bmN0''@;'; + put 'put ''aW9uKHYpe2gudXBkYXRlU3RhdGVzQXRDb2x1bW4odil9KSx0aGlzLmNoYW5nZXMubGVuZ3RoPTB9fSx7a2V5OiJfb25Db25kaXRpb25CZWZvcmVNb2RpZnkiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMubGF0ZXN0RWRpdGVkQ29sdW1uUG9zaXRpb249dGhpcy5jb25kaXRpb25Db2xsZWN0aW9u''@;'; + put 'put ''LmdldENvbHVtblN0YWNrUG9zaXRpb24oaCl9fSx7a2V5OiJ1cGRhdGVTdGF0ZXNBdENvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzO2lmKHRoaXMuZ3JvdXBpbmcpLTE9PT10aGlzLmNoYW5nZXMuaW5kZXhPZihoKSYmdGhpcy5jaGFuZ2VzLnB1c2goaCk7ZWxzZXt2YXIg''@;'; + put 'put ''Qz10aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZXhwb3J0QWxsQ29uZGl0aW9ucygpLEk9dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmdldENvbHVtblN0YWNrUG9zaXRpb24oaCk7LTE9PT1JJiYoST10aGlzLmxhdGVzdEVkaXRlZENvbHVtblBvc2l0aW9uKTt2YXIgaj1DLnNsaWNlKDAsSSks''@;'; + put 'put ''dWU9Qy5zbGljZShJKTt1ZS5sZW5ndGgmJnVlWzBdLmNvbHVtbj09PWgmJnVlLnNoaWZ0KCk7dmFyIF9lPVViZShmdW5jdGlvbihOZSxLZSl7dmFyIGR0PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpbXSxPdD1uZXcgVFRlKHkuaG90LCEx''@;'; + put 'put ''KSwkdD1bXS5jb25jYXQoTmUsZHQpO090LmltcG9ydEFsbENvbmRpdGlvbnMoJHQpO3ZhciBmbj15LmNvbHVtbkRhdGFGYWN0b3J5KEtlKSxpcj1FeihPbChPdC5pc0VtcHR5KCk/Zm46bmV3IERUZShPdCxmdW5jdGlvbihtcil7cmV0dXJuIHkuY29sdW1uRGF0YUZhY3RvcnkobXIpfSkuZmls''@;'; + put 'put ''dGVyKCksZnVuY3Rpb24obXIpe3JldHVybiBtci5tZXRhLnZpc3VhbFJvd30pKTtyZXR1cm4gT3QuZGVzdHJveSgpLGc0KGZuLGZ1bmN0aW9uKG1yKXtyZXR1cm4gaXIobXIubWV0YS52aXN1YWxSb3cpfSl9KShqKSxCZT1bXS5jb25jYXQodGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmdldENv''@;'; + put 'put ''bmRpdGlvbnMoaCkpO3RoaXMucnVuTG9jYWxIb29rcygidXBkYXRlIix7ZWRpdGVkQ29uZGl0aW9uU3RhY2s6e2NvbHVtbjpoLGNvbmRpdGlvbnM6QmV9LGRlcGVuZGVudENvbmRpdGlvblN0YWNrczp1ZSxmaWx0ZXJlZFJvd3NGYWN0b3J5Ol9lLGNvbmRpdGlvbkFyZ3NDaGFuZ2U6dn0pfX19''@;'; + put 'put ''LHtrZXk6Il9vbkNvbmRpdGlvbkJlZm9yZUNsZWFuIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubGF0ZXN0T3JkZXJTdGFjaz10aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZ2V0RmlsdGVyZWRDb2x1bW5zKCl9fSx7a2V5OiJfb25Db25kaXRpb25BZnRlckNsZWFuIix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e3ZhciBoPXRoaXM7VXIodGhpcy5sYXRlc3RPcmRlclN0YWNrLGZ1bmN0aW9uKHYpe2gudXBkYXRlU3RhdGVzQXRDb2x1bW4odil9KX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLmNsZWFyTG9jYWxIb29rcygpLEdsKHRoaXMsZnVuY3Rpb24odix5''@;'; + put 'put ''KXtoW3ldPW51bGx9KX19XSksZH0oKTtSMihPVGUsc2QpO2NvbnN0IE1jdD1PVGU7ZnVuY3Rpb24gUzVlKGQpe3JldHVybihTNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpm''@;'; + put 'put ''dW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX12YXIgUlRlO2Z1bmN0aW9uIEJUZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYm''@;'; + put 'put ''KGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFBUZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJh''@;'; + put 'put ''YmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFZPKCl7cmV0dXJuIFZPPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcs''@;'; + put 'put ''aCx2KXt2YXIgeT1CY3QoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LFZPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBCY3Qo''@;'; + put 'put ''ZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVp3KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIE01ZShkLGcpe3JldHVybihNNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVu''@;'; + put 'put ''Y3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBIY3QoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1TNWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3Ry''@;'; + put 'put ''dWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIEZUZShkKX1mdW5jdGlvbiBGVGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVu''@;'; + put 'put ''IGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIFp3KGQpe3JldHVybihadz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBqY3Q9''@;'; + put 'put ''ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFBjdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUo''@;'; + put 'put ''ZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZNNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBGY3QoZCl7dmFyIGc9''@;'; + put 'put ''ZnVuY3Rpb24gTmN0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUu''@;'; + put 'put ''dmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9WncoZCk7aWYoZyl7dmFyIEM9WncodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVj''@;'; + put 'put ''dCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEhjdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gT2N0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90''@;'; + put 'put ''IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLmV2ZW50TWFuYWdlcj1uZXcgTDEoRlRlKHkpKSx5LmRyb3Bkb3duTWVudVBsdWdpbj1udWxsLHkuY29uZGl0aW9uQ29sbGVjdGlvbj1udWxsLHkuY29uZGl0aW9uVXBkYXRlT2JzZXJ2ZXI9''@;'; + put 'put ''bnVsbCx5LmNvbXBvbmVudHM9bmV3IE1hcChbWyJmaWx0ZXJfYnlfY29uZGl0aW9uIixudWxsXSxbImZpbHRlcl9vcGVyYXRvcnMiLG51bGxdLFsiZmlsdGVyX2J5X2NvbmRpdGlvbjIiLG51bGxdLFsiZmlsdGVyX2J5X3ZhbHVlIixudWxsXSxbImZpbHRlcl9hY3Rpb25fYmFyIixudWxsXV0p''@;'; + put 'put ''LHkubGFzdFNlbGVjdGVkQ29sdW1uPW51bGwseS5maWx0ZXJzUm93c01hcD1udWxsLHkuaG90LmFkZEhvb2soImFmdGVyR2V0Q29sSGVhZGVyIixmdW5jdGlvbihDLEkpe3JldHVybiB5Lm9uQWZ0ZXJHZXRDb2xIZWFkZXIoQyxJKX0pLHl9cmV0dXJuIGZ1bmN0aW9uIFJjdChkLGcsaCl7ZyYm''@;'; + put 'put ''UFRlKGQucHJvdG90eXBlLGcpLGgmJlBUZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpbHRlcnN9fSx7a2V5''@;'; + put 'put ''OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztpZighdGhpcy5lbmFibGVkKXt0aGlzLmZpbHRlcnNSb3dzTWFwPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSxuZXcgZXopLHRoaXMuZHJvcGRvd25NZW51UGx1Z2lu''@;'; + put 'put ''PXRoaXMuaG90LmdldFBsdWdpbigiZHJvcGRvd25NZW51Iik7dmFyIEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5kcm9wZG93bk1lbnUsST1DJiZDLnVpQ29udGFpbmVyfHx0aGlzLmhvdC5yb290RG9jdW1lbnQuYm9keSxqPWZ1bmN0aW9uKGR0KXtyZXR1cm4gZHQuYWRkTG9jYWxIb29rKCJh''@;'; + put 'put ''Y2NlcHQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BY3Rpb25CYXJTdWJtaXQoImFjY2VwdCIpfSksZHQuYWRkTG9jYWxIb29rKCJjYW5jZWwiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BY3Rpb25CYXJTdWJtaXQoImNhbmNlbCIpfSksZHQuYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGZ1bmN0aW9u''@;'; + put 'put ''KE90KXtyZXR1cm4geS5vbkNvbXBvbmVudENoYW5nZShkdCxPdCl9KSxkdH07aWYoIXRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24iKSl7dmFyIEJlPW5ldyBhNWUodGhpcy5ob3Qse2lkOiJmaWx0ZXJfYnlfY29uZGl0aW9uIixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IiIuY29uY2F0KHkuaG90LmdldFRyYW5zbGF0ZWRQaHJhc2UoeHBlKSwiOiIpfSxhZGRTZXBhcmF0b3I6ITEsbWVudUNvbnRhaW5lcjpJfSk7QmUuYWRkTG9jYWxIb29rKCJhZnRlckNsb3NlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uU2VsZWN0VUlDbG9zZWQoKX0pLHRoaXMuY29tcG9uZW50''@;'; + put 'put ''cy5zZXQoImZpbHRlcl9ieV9jb25kaXRpb24iLGooQmUpKX1pZih0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfb3BlcmF0b3JzIil8fHRoaXMuY29tcG9uZW50cy5zZXQoImZpbHRlcl9vcGVyYXRvcnMiLG5ldyBodXQodGhpcy5ob3Qse2lkOiJmaWx0ZXJfb3BlcmF0b3JzIixuYW1lOiJP''@;'; + put 'put ''cGVyYXRvcnMifSkpLCF0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uMiIpKXt2YXIgTmU9bmV3IGE1ZSh0aGlzLmhvdCx7aWQ6ImZpbHRlcl9ieV9jb25kaXRpb24yIixuYW1lOiIiLGFkZFNlcGFyYXRvcjohMCxtZW51Q29udGFpbmVyOkl9KTtOZS5hZGRMb2NhbEhv''@;'; + put 'put ''b2soImFmdGVyQ2xvc2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25TZWxlY3RVSUNsb3NlZCgpfSksdGhpcy5jb21wb25lbnRzLnNldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIiLGooTmUpKX10aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfdmFsdWUiKXx8dGhpcy5jb21wb25lbnRzLnNl''@;'; + put 'put ''dCgiZmlsdGVyX2J5X3ZhbHVlIixqKG5ldyBvY3QodGhpcy5ob3Qse2lkOiJmaWx0ZXJfYnlfdmFsdWUiLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4iIi5jb25jYXQoeS5ob3QuZ2V0VHJhbnNsYXRlZFBocmFzZShUcGUpLCI6Iil9fSkpKSx0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYWN0''@;'; + put 'put ''aW9uX2JhciIpfHx0aGlzLmNvbXBvbmVudHMuc2V0KCJmaWx0ZXJfYWN0aW9uX2JhciIsaihuZXcgcGN0KHRoaXMuaG90LHtpZDoiZmlsdGVyX2FjdGlvbl9iYXIiLG5hbWU6IkFjdGlvbiBiYXIifSkpKSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb258fCh0aGlzLmNvbmRpdGlvbkNvbGxlY3Rp''@;'; + put 'put ''b249bmV3IFRUZSh0aGlzLmhvdCkpLHRoaXMuY29uZGl0aW9uVXBkYXRlT2JzZXJ2ZXJ8fCh0aGlzLmNvbmRpdGlvblVwZGF0ZU9ic2VydmVyPW5ldyBNY3QodGhpcy5ob3QsdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLGZ1bmN0aW9uKEtlKXtyZXR1cm4geS5nZXREYXRhTWFwQXRDb2x1bW4o''@;'; + put 'put ''S2UpfSksdGhpcy5jb25kaXRpb25VcGRhdGVPYnNlcnZlci5hZGRMb2NhbEhvb2soInVwZGF0ZSIsZnVuY3Rpb24oS2Upe3JldHVybiB5LnVwZGF0ZUNvbXBvbmVudHMoS2UpfSkpLHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKGZ1bmN0aW9uKEtlKXtyZXR1cm4gS2Uuc2hvdygpfSksdGhpcy5y''@;'; + put 'put ''ZWdpc3RlckV2ZW50cygpLHRoaXMuYWRkSG9vaygiYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXMiLGZ1bmN0aW9uKEtlKXtyZXR1cm4geS5vbkJlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zKEtlKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJEcm9wZG93bk1lbnVEZWZhdWx0T3B0aW9ucyIsZnVu''@;'; + put 'put ''Y3Rpb24oS2Upe3JldHVybiB5Lm9uQWZ0ZXJEcm9wZG93bk1lbnVEZWZhdWx0T3B0aW9ucyhLZSl9KSx0aGlzLmFkZEhvb2soImFmdGVyRHJvcGRvd25NZW51U2hvdyIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyRHJvcGRvd25NZW51U2hvdygpfSksdGhpcy5hZGRIb29rKCJhZnRlckRy''@;'; + put 'put ''b3Bkb3duTWVudUhpZGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckRyb3Bkb3duTWVudUhpZGUoKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDaGFuZ2UiLGZ1bmN0aW9uKEtlKXtyZXR1cm4geS5vbkFmdGVyQ2hhbmdlKEtlKX0pLHRoaXMuaG90LmdldFNldHRpbmdzKCkuZHJvcGRvd25N''@;'; + put 'put ''ZW51JiZ0aGlzLmRyb3Bkb3duTWVudVBsdWdpbiYmKHRoaXMuZHJvcGRvd25NZW51UGx1Z2luLmRpc2FibGVQbHVnaW4oKSx0aGlzLmRyb3Bkb3duTWVudVBsdWdpbi5lbmFibGVQbHVnaW4oKSksVk8oWncoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fX0s''@;'; + put 'put ''e2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMuaG90LnJvb3RFbGVtZW50LCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25UYWJsZUNsaWNrKEMpfSl9fSx7a2V5OiJkaXNh''@;'; + put 'put ''YmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBDLHk9dGhpczt0aGlzLmVuYWJsZWQmJihudWxsIT09KEM9dGhpcy5kcm9wZG93bk1lbnVQbHVnaW4pJiZ2b2lkIDAhPT1DJiZDLmVuYWJsZWQmJnRoaXMuZHJvcGRvd25NZW51UGx1Z2luLm1lbnUuY2xlYXJMb2NhbEhvb2tzKCksdGhp''@;'; + put 'put ''cy5jb21wb25lbnRzLmZvckVhY2goZnVuY3Rpb24oSSxqKXtJLmRlc3Ryb3koKSx5LmNvbXBvbmVudHMuc2V0KGosbnVsbCl9KSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZGVzdHJveSgpLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbj1udWxsLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnVu''@;'; + put 'put ''cmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSksVk8oWncoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiYWRkQ29uZGl0aW9uIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1''@;'; + put 'put ''bWVudHNbM10/YXJndW1lbnRzWzNdOlZ3LHVlPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oeSk7dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmFkZENvbmRpdGlvbih1ZSx7Y29tbWFuZDp7a2V5OkN9LGFyZ3M6SX0sail9fSx7a2V5OiJyZW1vdmVDb25kaXRpb25zIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bih5KXt2YXIgQz10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHkpO3RoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5yZW1vdmVDb25kaXRpb25zKEMpfX0se2tleToiY2xlYXJDb25kaXRpb25zIix2YWx1ZTpmdW5jdGlvbih5KXtpZih2b2lkIDA9PT15KXRoaXMuY29uZGl0aW9uQ29sbGVjdGlv''@;'; + put 'put ''bi5jbGVhbigpO2Vsc2V7dmFyIEM9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbih5KTt0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24ucmVtb3ZlQ29uZGl0aW9ucyhDKX19fSx7a2V5OiJmaWx0ZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuX2NyZWF0ZURhdGFGaWx0ZXIo''@;'; + put 'put ''KSxJPSF0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uaXNFbXB0eSgpLGo9W10sdWU9dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmV4cG9ydEFsbENvbmRpdGlvbnMoKTtpZighMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVGaWx0ZXIiLHVlKSlpZihJKXt2YXIgQmU9W107dGhpcy5ob3Qu''@;'; + put 'put ''YmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXt5LmZpbHRlcnNSb3dzTWFwLmNsZWFyKCk7dmFyIE5lPUV6KGo9T2woQy5maWx0ZXIoKSxmdW5jdGlvbihLZSl7cmV0dXJuIEtlLm1ldGEudmlzdWFsUm93fSkpO2lhKHkuaG90LmNvdW50U291cmNlUm93cygpLTEsZnVuY3Rpb24oS2Upe05lKEtl''@;'; + put 'put ''KXx8QmUucHVzaChLZSl9KSxVcihCZSxmdW5jdGlvbihLZSl7eS5maWx0ZXJzUm93c01hcC5zZXRWYWx1ZUF0SW5kZXgoS2UsITApfSl9LCEwKSxqLmxlbmd0aHx8dGhpcy5ob3QuZGVzZWxlY3RDZWxsKCl9ZWxzZSB0aGlzLmZpbHRlcnNSb3dzTWFwLmNsZWFyKCk7dGhpcy5ob3QucnVuSG9v''@;'; + put 'put ''a3MoImFmdGVyRmlsdGVyIix1ZSksdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApLHRoaXMuaG90LnJlbmRlcigpLHRoaXMuY2xlYXJDb2x1bW5TZWxlY3Rpb24oKX19LHtrZXk6ImdldFNlbGVjdGVkQ29sdW1uIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxhc3RT''@;'; + put 'put ''ZWxlY3RlZENvbHVtbn19LHtrZXk6ImNsZWFyQ29sdW1uU2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5LEM9bnVsbD09PSh5PXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmdldFRvcFN0YXJ0Q29ybmVyKCk7dm9pZCAwIT09QyYm''@;'; + put 'put ''dGhpcy5ob3Quc2VsZWN0Q2VsbChDLnJvdyxDLmNvbCl9fSx7a2V5OiJnZXREYXRhTWFwQXRDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST10aGlzLmhvdC50b1Zpc3VhbENvbHVtbih5KSxqPVtdO3JldHVybiBVcih0aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXRDb2woSSks''@;'; + put 'put ''ZnVuY3Rpb24odWUsX2Upe3ZhciBCZSxOZT1DLmhvdC5nZXRDZWxsTWV0YShfZSxJKSxLZT1OZS5yb3csZHQ9TmUuY29sLE90PU5lLnZpc3VhbENvbCwkdD1OZS52aXN1YWxSb3csZm49TmUudHlwZSxMbj1OZS5pbnN0YW5jZSxpcj1OZS5kYXRlRm9ybWF0LG1yPU5lLmxvY2FsZSxTcj1udWxs''@;'; + put 'put ''IT09KEJlPUMuaG90LmdldERhdGFBdENlbGwoQy5ob3QudG9WaXN1YWxSb3coX2UpLEkpKSYmdm9pZCAwIT09QmU/QmU6dWU7ai5wdXNoKHttZXRhOntyb3c6S2UsY29sOmR0LHZpc3VhbENvbDpPdCx2aXN1YWxSb3c6JHQsdHlwZTpmbixpbnN0YW5jZTpMbixkYXRlRm9ybWF0OmlyLGxvY2Fs''@;'; + put 'put ''ZTptcn0sdmFsdWU6bFRlKFNyKX0pfSksan19LHtrZXk6Im9uQWZ0ZXJDaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7eSYmVXIoeSxmdW5jdGlvbihJKXt2YXIgaj1mdW5jdGlvbiB4Y3QoZCxnKXtyZXR1cm4gZnVuY3Rpb24gTGN0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkp''@;'; + put 'put ''cmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBEY3QoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2Fs''@;'; + put 'put ''bChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9''@;'; + put 'put ''fShkLGcpfHxmdW5jdGlvbiBJY3QoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIEJUZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3Ry''@;'; + put 'put ''dWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gQlRlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBUY3QoKXt0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShJ''@;'; + put 'put ''LDIpLF9lPUMuaG90LnByb3BUb0NvbChqWzFdKTtDLmNvbmRpdGlvbkNvbGxlY3Rpb24uaGFzQ29uZGl0aW9ucyhfZSkmJkMudXBkYXRlVmFsdWVDb21wb25lbnRDb25kaXRpb24oX2UpfSl9fSx7a2V5OiJ1cGRhdGVWYWx1ZUNvbXBvbmVudENvbmRpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSl7''@;'; + put 'put ''dmFyIEk9cDVlKHRoaXMuaG90LmdldERhdGFBdENvbCh5KSk7dGhpcy5jb25kaXRpb25VcGRhdGVPYnNlcnZlci51cGRhdGVTdGF0ZXNBdENvbHVtbih5LEkpfX0se2tleToicmVzdG9yZUNvbXBvbmVudHMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDLEk9bnVsbD09PShDPXRoaXMuZ2V0U2Vs''@;'; + put 'put ''ZWN0ZWRDb2x1bW4oKSl8fHZvaWQgMD09PUM/dm9pZCAwOkMucGh5c2ljYWxJbmRleDt5LmZvckVhY2goZnVuY3Rpb24oail7ai5pc0hpZGRlbigpfHxqLnJlc3RvcmVTdGF0ZShJKX0pLHRoaXMudXBkYXRlRGVwZW5kZW50Q29tcG9uZW50c1Zpc2liaWxpdHkoKX19LHtrZXk6Im9uQWZ0ZXJE''@;'; + put 'put ''cm9wZG93bk1lbnVTaG93Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucmVzdG9yZUNvbXBvbmVudHMoQXJyYXkuZnJvbSh0aGlzLmNvbXBvbmVudHMudmFsdWVzKCkpKX19LHtrZXk6Im9uQWZ0ZXJEcm9wZG93bk1lbnVIaWRlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY29tcG9uZW50cy5nZXQo''@;'; + put 'put ''ImZpbHRlcl9ieV9jb25kaXRpb24iKS5nZXRTZWxlY3RFbGVtZW50KCkuY2xvc2VPcHRpb25zKCksdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIiKS5nZXRTZWxlY3RFbGVtZW50KCkuY2xvc2VPcHRpb25zKCl9fSx7a2V5OiJvbkJlZm9yZURyb3Bkb3duTWVudVNl''@;'; + put 'put ''dEl0ZW1zIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5kcm9wZG93bk1lbnVQbHVnaW4mJnRoaXMuZHJvcGRvd25NZW51UGx1Z2luLm1lbnUuYWRkTG9jYWxIb29rKCJhZnRlck9wZW4iLGZ1bmN0aW9uKCl7eS5kcm9wZG93bk1lbnVQbHVnaW4ubWVudS5ob3RNZW51LnVwZGF0''@;'; + put 'put ''ZVNldHRpbmdzKHtoaWRkZW5Sb3dzOiEwfSl9KX19LHtrZXk6Im9uQWZ0ZXJEcm9wZG93bk1lbnVEZWZhdWx0T3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oeSl7eS5pdGVtcy5wdXNoKHtuYW1lOldsfSksdGhpcy5jb21wb25lbnRzLmZvckVhY2goZnVuY3Rpb24oQyl7eS5pdGVtcy5wdXNoKEMu''@;'; + put 'put ''Z2V0TWVudUl0ZW1EZXNjcmlwdG9yKCkpfSl9fSx7a2V5OiJnZXRPcGVyYXRpb25CYXNlZE9uQXJndW1lbnRzIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqKXt2YXIgdWU9eTtyZXR1cm4gdWU9PT1sbmUmJkMuY29tbWFuZC5rZXkhPT1IZiYmSS5jb21tYW5kLmtleSE9PUhmJiZqLmNvbW1hbmQu''@;'; + put 'put ''a2V5IT09SGY/dWU9czVlOmouY29tbWFuZC5rZXkhPT1IZiYmKEMuY29tbWFuZC5rZXk9PT1IZnx8SS5jb21tYW5kLmtleT09PUhmKSYmKHVlPVZ3KSx1ZX19LHtrZXk6Im9uQWN0aW9uQmFyU3VibWl0Iix2YWx1ZTpmdW5jdGlvbih5KXtpZigiYWNjZXB0Ij09PXkpe3ZhciBDLEk9bnVsbD09''@;'; + put 'put ''PShDPXRoaXMuZ2V0U2VsZWN0ZWRDb2x1bW4oKSl8fHZvaWQgMD09PUM/dm9pZCAwOkMucGh5c2ljYWxJbmRleCxqPXRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24iKS5nZXRTdGF0ZSgpLHVlPXRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24y''@;'; + put 'put ''IikuZ2V0U3RhdGUoKSxfZT10aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfdmFsdWUiKS5nZXRTdGF0ZSgpLEJlPXRoaXMuZ2V0T3BlcmF0aW9uQmFzZWRPbkFyZ3VtZW50cyh0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfb3BlcmF0b3JzIikuZ2V0QWN0aXZlT3BlcmF0aW9uSWQo''@;'; + put 'put ''KSxqLHVlLF9lKTt0aGlzLmNvbmRpdGlvblVwZGF0ZU9ic2VydmVyLmdyb3VwQ2hhbmdlcygpO3ZhciBOZT10aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZ2V0Q29sdW1uU3RhY2tQb3NpdGlvbihJKTstMT09PU5lJiYoTmU9dm9pZCAwKSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24ucmVtb3Zl''@;'; + put 'put ''Q29uZGl0aW9ucyhJKSxqLmNvbW1hbmQua2V5IT09SGYmJih0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkQ29uZGl0aW9uKEksaixCZSxOZSksdWUuY29tbWFuZC5rZXkhPT1IZiYmdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmFkZENvbmRpdGlvbihJLHVlLEJlLE5lKSksX2UuY29tbWFu''@;'; + put 'put ''ZC5rZXkhPT1IZiYmdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmFkZENvbmRpdGlvbihJLF9lLEJlLE5lKSx0aGlzLmNvbmRpdGlvblVwZGF0ZU9ic2VydmVyLmZsdXNoKCksdGhpcy5jb21wb25lbnRzLmZvckVhY2goZnVuY3Rpb24oS2Upe3JldHVybiBLZS5zYXZlU3RhdGUoSSl9KSx0aGlz''@;'; + put 'put ''LmZpbHRlcnNSb3dzTWFwLmNsZWFyKCksdGhpcy5maWx0ZXIoKX10aGlzLmRyb3Bkb3duTWVudVBsdWdpbiYmdGhpcy5kcm9wZG93bk1lbnVQbHVnaW4uY2xvc2UoKX19LHtrZXk6Im9uQ29tcG9uZW50Q2hhbmdlIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMudXBkYXRlRGVwZW5kZW50Q29t''@;'; + put 'put ''cG9uZW50c1Zpc2liaWxpdHkoKSx5LmNvbnN0cnVjdG9yPT09YTVlJiYhQy5pbnB1dHNDb3VudCYmdGhpcy5zZXRMaXN0ZW5pbmdEcm9wZG93bk1lbnUoKX19LHtrZXk6Im9uU2VsZWN0VUlDbG9zZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZXRMaXN0ZW5pbmdEcm9wZG93bk1lbnUoKX19''@;'; + put 'put ''LHtrZXk6InNldExpc3RlbmluZ0Ryb3Bkb3duTWVudSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRyb3Bkb3duTWVudVBsdWdpbiYmdGhpcy5kcm9wZG93bk1lbnVQbHVnaW4uc2V0TGlzdGVuaW5nKCl9fSx7a2V5OiJ1cGRhdGVEZXBlbmRlbnRDb21wb25lbnRzVmlzaWJpbGl0eSIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgST10aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIikuZ2V0U3RhdGUoKS5jb21tYW5kLGo9W3RoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24yIiksdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX29wZXJhdG9ycyIp''@;'; + put 'put ''XTtJLnNob3dPcGVyYXRvcnM/dGhpcy5zaG93Q29tcG9uZW50cy5hcHBseSh0aGlzLGopOnRoaXMuaGlkZUNvbXBvbmVudHMuYXBwbHkodGhpcyxqKX19LHtrZXk6Im9uQWZ0ZXJHZXRDb2xIZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVt''@;'; + put 'put ''bih5KTt0aGlzLmVuYWJsZWQmJnRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5oYXNDb25kaXRpb25zKEkpP08wKEMsImh0RmlsdGVyc0FjdGl2ZSIpOnBsKEMsImh0RmlsdGVyc0FjdGl2ZSIpfX0se2tleToib25UYWJsZUNsaWNrIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1TOSh5LnRhcmdl''@;'; + put 'put ''dCwiVEgiKTtpZihDKXt2YXIgST10aGlzLmhvdC5nZXRDb29yZHMoQykuY29sLGo9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihJKTt0aGlzLmxhc3RTZWxlY3RlZENvbHVtbj17dmlzdWFsSW5kZXg6SSxwaHlzaWNhbEluZGV4Omp9fX19LHtrZXk6Il9jcmVhdGVEYXRhRmlsdGVyIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uO3JldHVybiBuZXcgRFRlKEMsZnVuY3Rpb24oSSl7cmV0dXJuIHkuZ2V0RGF0YU1hcEF0Q29sdW1uKEkp''@;'; + put 'put ''fSl9fSx7a2V5OiJ1cGRhdGVDb21wb25lbnRzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQztpZihudWxsIT09KEM9dGhpcy5kcm9wZG93bk1lbnVQbHVnaW4pJiZ2b2lkIDAhPT1DJiZDLmVuYWJsZWQpe3ZhciBJPXkuZWRpdGVkQ29uZGl0aW9uU3RhY2ssaj1JLmNvbmRpdGlvbnMsdWU9SS5j''@;'; + put 'put ''b2x1bW4sX2U9ai5maWx0ZXIoZnVuY3Rpb24oS2Upe3JldHVybiBLZS5uYW1lPT09cVN9KSxCZT1qLmZpbHRlcihmdW5jdGlvbihLZSl7cmV0dXJuIEtlLm5hbWUhPT1xU30pO2lmKF9lLmxlbmd0aD49Mnx8QmUubGVuZ3RoPj0zKWwxKEIyKFJUZXx8KFJUZT1mdW5jdGlvbiBFY3QoZCxnKXty''@;'; + put 'put ''ZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbIlRoZSBmaWx0ZXIgY29uZGl0aW9ucyBoYXZlIGJlZW4gYXBwbGllZCBwcm9wZXJseSwgYnV0IGNvdWxkblx1MjAx''@;'; + put 'put ''OXQgYmUgZGlzcGxheWVkIHZpc3VhbGx5LiBcbiAgICAgICAgVGhlIG92ZXJhbGwgYW1vdW50IG9mIGNvbmRpdGlvbnMgZXhjZWVkIHRoZSBjYXBhYmlsaXR5IG9mIHRoZSBkcm9wZG93biBtZW51LiBcbiAgICAgICAgRm9yIG1vcmUgZGV0YWlscyBzZWUgdGhlIGRvY3VtZW50YXRpb24uIl0s''@;'; + put 'put ''WyJUaGUgZmlsdGVyIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIGFwcGxpZWQgcHJvcGVybHksIGJ1dCBjb3VsZG5cdTIwMTl0IGJlIGRpc3BsYXllZCB2aXN1YWxseS5cXHgyMFxuICAgICAgICBUaGUgb3ZlcmFsbCBhbW91bnQgb2YgY29uZGl0aW9ucyBleGNlZWQgdGhlIGNhcGFiaWxpdHkgb2Yg''@;'; + put 'put ''dGhlIGRyb3Bkb3duIG1lbnUuXFx4MjBcbiAgICAgICAgRm9yIG1vcmUgZGV0YWlscyBzZWUgdGhlIGRvY3VtZW50YXRpb24uIl0pKSkpO2Vsc2V7dmFyIE5lPXRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5nZXRPcGVyYXRpb24odWUpO3RoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9j''@;'; + put 'put ''b25kaXRpb24iKS51cGRhdGVTdGF0ZShCZVswXSx1ZSksdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIiKS51cGRhdGVTdGF0ZShCZVsxXSx1ZSksdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX29wZXJhdG9ycyIpLnVwZGF0ZVN0YXRlKE5lLHVlKSx0aGlzLmNv''@;'; + put 'put ''bXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfdmFsdWUiKS51cGRhdGVTdGF0ZSh5KX19fX0se2tleToiZ2V0SW5kZXhlc09mQ29tcG9uZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1bXTtpZighdGhpcy5kcm9wZG93bk1lbnVQbHVnaW4pcmV0dXJuIHk7Zm9yKHZhciBDPXRoaXMuZHJvcGRv''@;'; + put 'put ''d25NZW51UGx1Z2luLm1lbnUsST1hcmd1bWVudHMubGVuZ3RoLGo9bmV3IEFycmF5KEkpLHVlPTA7dWU8STt1ZSsrKWpbdWVdPWFyZ3VtZW50c1t1ZV07cmV0dXJuIFVyKGosZnVuY3Rpb24oX2Upe1VyKEMubWVudUl0ZW1zLGZ1bmN0aW9uKEJlLE5lKXtCZS5rZXk9PT1fZS5nZXRNZW51SXRl''@;'; + put 'put ''bURlc2NyaXB0b3IoKS5rZXkmJnkucHVzaChOZSl9KX0pLHl9fSx7a2V5OiJjaGFuZ2VDb21wb25lbnRzVmlzaWJpbGl0eSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdO2lmKHRoaXMuZHJv''@;'; + put 'put ''cGRvd25NZW51UGx1Z2luKXtmb3IodmFyIEM9dGhpcy5kcm9wZG93bk1lbnVQbHVnaW4ubWVudSxJPUMuaG90TWVudSxqPUkuZ2V0UGx1Z2luKCJoaWRkZW5Sb3dzIiksdWU9YXJndW1lbnRzLmxlbmd0aCxfZT1uZXcgQXJyYXkodWU+MT91ZS0xOjApLEJlPTE7QmU8dWU7QmUrKylfZVtCZS0x''@;'; + put 'put ''XT1hcmd1bWVudHNbQmVdO3ZhciBOZT10aGlzLmdldEluZGV4ZXNPZkNvbXBvbmVudHMuYXBwbHkodGhpcyxfZSk7eT9qLnNob3dSb3dzKE5lKTpqLmhpZGVSb3dzKE5lKSxJLnJlbmRlcigpfX19LHtrZXk6ImhpZGVDb21wb25lbnRzIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1''@;'; + put 'put ''bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3RoaXMuY2hhbmdlQ29tcG9uZW50c1Zpc2liaWxpdHkuYXBwbHkodGhpcyxbITFdLmNvbmNhdChDKSl9fSx7a2V5OiJzaG93Q29tcG9uZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFy''@;'; + put 'put ''IHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTt0aGlzLmNoYW5nZUNvbXBvbmVudHNWaXNpYmlsaXR5LmFwcGx5KHRoaXMsWyEwXS5jb25jYXQoQykpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10''@;'; + put 'put ''aGlzO3RoaXMuZW5hYmxlZCYmKHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKGZ1bmN0aW9uKEMsSSl7bnVsbCE9PUMmJihDLmRlc3Ryb3koKSx5LmNvbXBvbmVudHMuc2V0KEksbnVsbCkpfSksdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmRlc3Ryb3koKSx0aGlzLmNvbmRpdGlvblVwZGF0ZU9i''@;'; + put 'put ''c2VydmVyLmRlc3Ryb3koKSx0aGlzLmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSkpLFZPKFp3KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImZp''@;'; + put 'put ''bHRlcnMifX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMjUwfX0se2tleToiUExVR0lOX0RFUFMiLGdldDpmdW5jdGlvbigpe3JldHVyblsicGx1Z2luOkRyb3Bkb3duTWVudSIsInBsdWdpbjpIaWRkZW5Sb3dzIiwiY2VsbC10eXBlOmNoZWNrYm94Il19''@;'; + put 'put ''fV0pLGh9KFlzKTtmdW5jdGlvbiBOVGUoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0''@;'; + put 'put ''T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiB4eihkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9O''@;'; + put 'put ''VGUoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe1pjdChkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpOVGUoT2JqZWN0KGgpKS5m''@;'; + put 'put ''b3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIFpjdChkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVu''@;'; + put 'put ''dW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9dmFyIFZUZT0iaW50ZXJuYWwtdXNlLWluLWhhbmRzb250YWJsZSIsemN0PXtsaWNlbnNlS2V5OlZUZSx1c2VBcnJheUFyaXRobWV0aWM6ITAsdXNlQ29sdW1uSW5kZXg6ITEsdXNlU3RhdHM6ITEsZXZh''@;'; + put 'put ''bHVhdGVOdWxsVG9aZXJvOiEwLHByZWNpc2lvbkVwc2lsb246MWUtMTMscHJlY2lzaW9uUm91bmRpbmc6MTQsc21hcnRSb3VuZGluZzohMCxsZWFwWWVhcjE5MDA6ITAsbnVsbERhdGU6e3llYXI6MTg5OSxtb250aDoxMixkYXk6MzF9LG51bGxZZWFyOjMwLGRhdGVGb3JtYXRzOlsiREQvTU0v''@;'; + put 'put ''WVlZWSIsIkREL01NL1lZIl0sdGltZUZvcm1hdHM6WyJoaDptbSIsImhoOm1tOnNzLnNzcyJdLG1hdGNoV2hvbGVDZWxsOiEwLHVzZVJlZ3VsYXJFeHByZXNzaW9uczohMSx1c2VXaWxkY2FyZHM6ITAsZnVuY3Rpb25BcmdTZXBhcmF0b3I6IiwiLHRob3VzYW5kU2VwYXJhdG9yOiIiLGRlY2lt''@;'; + put 'put ''YWxTZXBhcmF0b3I6Ii4iLGxhbmd1YWdlOiJlbkdCIn07ZnVuY3Rpb24galRlKGQpe3ZhciBnLGg7cmV0dXJue21heENvbHVtbnM6ZC5tYXhDb2x1bW5zLG1heFJvd3M6ZC5tYXhSb3dzLGxhbmd1YWdlOm51bGw9PT0oZz1kW3UzXSl8fHZvaWQgMD09PWd8fG51bGw9PT0oaD1nLmxhbmd1YWdl''@;'; + put 'put ''KXx8dm9pZCAwPT09aD92b2lkIDA6aC5sYW5nQ29kZX19ZnVuY3Rpb24gWlRlKGQpe3JldHVybiBPYmplY3Qua2V5cyhkKS5yZWR1Y2UoZnVuY3Rpb24oZyxoKXtyZXR1cm4iaHlwZXJmb3JtdWxhIiE9PWgmJihnW2hdPWRbaF0pLGd9LHt9KX1mdW5jdGlvbiBFNWUoZCl7cmV0dXJuKEU1ZT0i''@;'; + put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09''@;'; + put 'put ''U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHBuZSgpe3ZhciBkPSJlbmdpbmVfcmVsYXRpb25zaGlwIixnPUxwKHUzKTtyZXR1cm4gZy5oYXNJdGVtKGQpfHxnLnJlZ2lzdGVyKGQsbmV3IE1hcCksZy5nZXRJdGVtKGQpfWZ1bmN0aW9uIHg1ZSgpe3Zh''@;'; + put 'put ''ciBkPSJzaGFyZWRfZW5naW5lX3VzYWdlIixnPUxwKHUzKTtyZXR1cm4gZy5oYXNJdGVtKGQpfHxnLnJlZ2lzdGVyKGQsbmV3IE1hcCksZy5nZXRJdGVtKGQpfWZ1bmN0aW9uIHpUZShkKXt2YXIgZyxoPXBuZSgpLHY9MD09PWguc2l6ZT9bXTpBcnJheS5mcm9tKG51bGwhPT0oZz1oLmdldChk''@;'; + put 'put ''KSkmJnZvaWQgMCE9PWc/ZzpbXSk7cmV0dXJuIG5ldyBNYXAodi5tYXAoZnVuY3Rpb24oeSl7cmV0dXJuW3kuZ2V0UGx1Z2luKCJmb3JtdWxhcyIpLnNoZWV0SWQseV19KSl9ZnVuY3Rpb24gR1RlKGQsZyl7aWYoZCl7dmFyIGg9cG5lKCksdj1oLmdldChkKSx5PXg1ZSgpLEM9eS5nZXQoZCk7''@;'; + put 'put ''diYmdi5pbmNsdWRlcyhnKSYmKHYuc3BsaWNlKHYuaW5kZXhPZihnKSwxKSwwPT09di5sZW5ndGgmJmguZGVsZXRlKGQpKSxDJiZDLmluY2x1ZGVzKGcuZ3VpZCkmJihDLnNwbGljZShDLmluZGV4T2YoZy5ndWlkKSwxKSwwPT09Qy5sZW5ndGgmJih5LmRlbGV0ZShkKSxkLmRlc3Ryb3koKSkp''@;'; + put 'put ''fX1mdW5jdGlvbiBLY3QoZCxnKXtyZXR1cm4oYTEoZyl8fCFkLmRvZXNTaGVldEV4aXN0KGcpKSYmKGc9ZC5hZGRTaGVldChnKSksZ31mdW5jdGlvbiBXVGUoZCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBkJiYiJyI9PT1kLmNoYXJBdCgwKSYmIj0iPT09ZC5jaGFyQXQoMSl9ZnVuY3Rpb24g''@;'; + put 'put ''WVRlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv''@;'; + put 'put ''cihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gVVRlKGQpe2Zvcih2YXIgZz0xO2c8YXJndW1lbnRzLmxlbmd0aDtnKyspe3ZhciBoPW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1bWVudHNbZ106e307ZyUyP1lUZShPYmplY3QoaCksITApLmZv''@;'; + put 'put ''ckVhY2goZnVuY3Rpb24odil7Z25lKGQsdixoW3ZdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaCkpOllUZShPYmplY3QoaCkpLmZvckVhY2goZnVuY3Rpb24odil7''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9ZnVuY3Rpb24gVHooZCl7cmV0dXJuKFR6PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0''@;'; + put 'put ''aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gak8oZCxnKXtyZXR1cm4g''@;'; + put 'put ''ZnVuY3Rpb24gb2Z0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBpZnQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3Zh''@;'; + put 'put ''ciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1''@;'; + put 'put ''cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxRVGUoZCxnKXx8ZnVuY3Rpb24gcmZ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJh''@;'; + put 'put ''YmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBRVGUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFQ1ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs''@;'; + put 'put ''bChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1w''@;'; + put 'put ''ZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gVDVlKGQsZyl9fWZ1bmN0aW9uIFQ1ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIGFmdChkLGcpe2lm''@;'; + put 'put ''KCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIEpUZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYu''@;'; + put 'put ''Y29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGVNKCl7cmV0dXJuIGVNPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1''@;'; + put 'put ''bmN0aW9uKGcsaCx2KXt2YXIgeT1zZnQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGVNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5j''@;'; + put 'put ''dGlvbiBzZnQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUc5KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIEk1ZShkLGcpe3JldHVybihJNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5i''@;'; + put 'put ''aW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBmZnQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1UeihnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZl''@;'; + put 'put ''ZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gdE0oZCl9ZnVuY3Rpb24gdE0oZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24n''@;'; + put 'put ''dCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIEc5KGQpe3JldHVybihHOT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1''@;'; + put 'put ''bmN0aW9uIGduZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9ZnVuY3Rpb24gRDVlKGQsZyxoKXsoZnVuY3Rpb24gZGZ0KGQsZyl7aWYoZy5o''@;'; + put 'put ''YXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiBaTyhkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uIHBmdChkLGcsaCl7aWYoZy5zZXQp''@;'; + put 'put ''Zy5zZXQuY2FsbChkLGgpO2Vsc2V7aWYoIWcud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO2cudmFsdWU9aH19KGQsWFRlKGQsZywic2V0IiksaCksaH1mdW5jdGlvbiB6TyhkLGcpe3JldHVybiBmdW5jdGlv''@;'; + put 'put ''biBnZnQoZCxnKXtyZXR1cm4gZy5nZXQ/Zy5nZXQuY2FsbChkKTpnLnZhbHVlfShkLFhUZShkLGcsImdldCIpKX1mdW5jdGlvbiBYVGUoZCxnLGgpe2lmKCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFu''@;'; + put 'put ''Y2UiKTtyZXR1cm4gZy5nZXQoZCl9dmFyIHUzPSJmb3JtdWxhcyI7em8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyTmFtZWRFeHByZXNzaW9uQWRkZWQiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJOYW1lZEV4cHJlc3Npb25SZW1vdmVkIiksem8uZ2V0U2luZ2xl''@;'; + put 'put ''dG9uKCkucmVnaXN0ZXIoImFmdGVyU2hlZXRBZGRlZCIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclNoZWV0UmVtb3ZlZCIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclNoZWV0UmVuYW1lZCIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckZv''@;'; + put 'put ''cm11bGFzVmFsdWVzVXBkYXRlIik7dmFyIEdPPWZ1bmN0aW9uKGcpe3JldHVybiJVbmRvUmVkby51bmRvIj09PWd8fCJVbmRvUmVkby5yZWRvIj09PWd8fCJhdXRvIj09PWd9LG5NPW5ldyBXZWFrTWFwLEw1ZT1uZXcgV2Vha01hcCxJej1uZXcgV2Vha01hcCx2ZnQ9ZnVuY3Rpb24oZCl7IWZ1''@;'; + put 'put ''bmN0aW9uIHVmdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUs''@;'; + put 'put ''e2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZJNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBjZnQoZCl7dmFyIGc9ZnVuY3Rpb24gaGZ0KCl7''@;'; + put 'put ''aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJl''@;'; + put 'put ''ZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9RzkoZCk7aWYoZyl7dmFyIEM9RzkodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxD''@;'; + put 'put ''KX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZmdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3ZhciB2O2FmdCh0aGlzLGgpO2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVy''@;'; + put 'put ''biBENWUodE0odj1nLmNhbGwuYXBwbHkoZyxbdGhpc10uY29uY2F0KEMpKSksbk0se3dyaXRhYmxlOiEwLHZhbHVlOiExfSksRDVlKHRNKHYpLEw1ZSx7d3JpdGFibGU6ITAsdmFsdWU6ITF9KSxENWUodE0odiksSXose3dyaXRhYmxlOiEwLHZhbHVlOltbInZhbHVlc1VwZGF0ZWQiLGZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIGo7cmV0dXJuKGo9dikub25FbmdpbmVWYWx1ZXNVcGRhdGVkLmFwcGx5KGosYXJndW1lbnRzKX1dLFsibmFtZWRFeHByZXNzaW9uQWRkZWQiLGZ1bmN0aW9uKCl7dmFyIGo7cmV0dXJuKGo9dikub25FbmdpbmVOYW1lZEV4cHJlc3Npb25zQWRkZWQuYXBwbHkoaixhcmd1bWVu''@;'; + put 'put ''dHMpfV0sWyJuYW1lZEV4cHJlc3Npb25SZW1vdmVkIixmdW5jdGlvbigpe3ZhciBqO3JldHVybihqPXYpLm9uRW5naW5lTmFtZWRFeHByZXNzaW9uc1JlbW92ZWQuYXBwbHkoaixhcmd1bWVudHMpfV0sWyJzaGVldEFkZGVkIixmdW5jdGlvbigpe3ZhciBqO3JldHVybihqPXYpLm9uRW5naW5l''@;'; + put 'put ''U2hlZXRBZGRlZC5hcHBseShqLGFyZ3VtZW50cyl9XSxbInNoZWV0UmVuYW1lZCIsZnVuY3Rpb24oKXt2YXIgajtyZXR1cm4oaj12KS5vbkVuZ2luZVNoZWV0UmVuYW1lZC5hcHBseShqLGFyZ3VtZW50cyl9XSxbInNoZWV0UmVtb3ZlZCIsZnVuY3Rpb24oKXt2YXIgajtyZXR1cm4oaj12KS5v''@;'; + put 'put ''bkVuZ2luZVNoZWV0UmVtb3ZlZC5hcHBseShqLGFyZ3VtZW50cyl9XV19KSxnbmUodE0odiksInN0YXRpY1JlZ2lzdGVyIixMcCgiZm9ybXVsYXMiKSksZ25lKHRNKHYpLCJlbmdpbmUiLG51bGwpLGduZSh0TSh2KSwic2hlZXROYW1lIixudWxsKSx2fXJldHVybiBmdW5jdGlvbiBsZnQoZCxn''@;'; + put 'put ''LGgpe2cmJkpUZShkLnByb3RvdHlwZSxnKSxoJiZKVGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToic2hlZXRJZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PT10aGlzLnNoZWV0TmFtZT9udWxsOnRoaXMuZW5n''@;'; + put 'put ''aW5lLmdldFNoZWV0SWQodGhpcy5zaGVldE5hbWUpfX0se2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt1M119fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHksQz10aGlzO2lmKCF0aGlzLmVu''@;'; + put 'put ''YWJsZWQpe2lmKHRoaXMuZW5naW5lPW51bGwhPT0oeT1mdW5jdGlvbiBZY3QoZCl7dmFyIHksZz1kLmdldFNldHRpbmdzKCksaD1nW3UzXSx2PW51bGw9PWg/dm9pZCAwOmguZW5naW5lO2lmKCEwPT09aHx8YTEodikpcmV0dXJuIG51bGw7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHYuaHlwZXJm''@;'; + put 'put ''b3JtdWxhfHwiZnVuY3Rpb24iPT10eXBlb2YgdilyZXR1cm4gZnVuY3Rpb24gVWN0KGQsZyxoKXt2YXIgdj1nW3UzXSx5PWZ1bmN0aW9uIEdjdChkKXt2YXIgZyxoPWRbdTNdLHY9WlRlKG51bGwhPWgmJm51bGwhPT0oZz1oLmVuZ2luZSkmJnZvaWQgMCE9PWcmJmcuaHlwZXJmb3JtdWxhP2gu''@;'; + put 'put ''ZW5naW5lOnt9KSx5PWpUZShkKTtyZXR1cm4geHooeHooeHooe30semN0KSx2KSx5KX0oZyksQz1wbmUoKSxJPXg1ZSgpOyhmdW5jdGlvbiBRY3QoZCxnKXtnJiZnLmZvckVhY2goZnVuY3Rpb24oaCl7dmFyIHY9aC5uYW1lLHk9aC5wbHVnaW4sQz1oLnRyYW5zbGF0aW9uczt0cnl7ZC5yZWdp''@;'; + put 'put ''c3RlckZ1bmN0aW9uKHYseSxDKX1jYXRjaChJKXtsMShJLm1lc3NhZ2UpfX0pfSkoZCx2LmZ1bmN0aW9ucyksZnVuY3Rpb24gSmN0KGQsZyl7aWYoZyl7dmFyIGg9Zy5sYW5nQ29kZTt0cnl7ZC5yZWdpc3Rlckxhbmd1YWdlKGgsZyl9Y2F0Y2godil7bDEodi5tZXNzYWdlKX19fShkLHYubGFu''@;'; + put 'put ''Z3VhZ2UpO3ZhciBqPWQuYnVpbGRFbXB0eSh5KTtyZXR1cm4gQy5zZXQoaixbaF0pLEkuc2V0KGosW2guZ3VpZF0pLGZ1bmN0aW9uIFhjdChkLGcpe2cmJihkLnN1c3BlbmRFdmFsdWF0aW9uKCksZy5mb3JFYWNoKGZ1bmN0aW9uKGgpe3ZhciB2PWgubmFtZSx5PWguZXhwcmVzc2lvbixDPWgu''@;'; + put 'put ''c2NvcGUsST1oLm9wdGlvbnM7dHJ5e2QuYWRkTmFtZWRFeHByZXNzaW9uKHYseSxDLEkpfWNhdGNoKGope2wxKGoubWVzc2FnZSl9fSksZC5yZXN1bWVFdmFsdWF0aW9uKCkpfShqLHYubmFtZWRFeHByZXNzaW9ucyksai5vbigic2hlZXRBZGRlZCIsZnVuY3Rpb24oKXtqLnJlYnVpbGRBbmRS''@;'; + put 'put ''ZWNhbGN1bGF0ZSgpfSksai5vbigic2hlZXRSZW1vdmVkIixmdW5jdGlvbigpe2oucmVidWlsZEFuZFJlY2FsY3VsYXRlKCl9KSxqfShudWxsIT09KHk9di5oeXBlcmZvcm11bGEpJiZ2b2lkIDAhPT15P3k6dixnLGQpO2lmKCJvYmplY3QiPT09RTVlKHYpJiZhMSh2Lmh5cGVyZm9ybXVsYSkp''@;'; + put 'put ''e3ZhciBDPXBuZSgpLEk9eDVlKCkuZ2V0KHYpO3JldHVybiBDLmhhcyh2KXx8Qy5zZXQodixbXSksQy5nZXQodikucHVzaChkKSxJJiZJLnB1c2goZC5ndWlkKSx2LmdldENvbmZpZygpLmxpY2Vuc2VLZXl8fHYudXBkYXRlQ29uZmlnKHtsaWNlbnNlS2V5OlZUZX0pLHZ9cmV0dXJuIG51bGx9''@;'; + put 'put ''KHRoaXMuaG90KSkmJnZvaWQgMCE9PXk/eTp0aGlzLmVuZ2luZSwhdGhpcy5lbmdpbmUpcmV0dXJuIHZvaWQgbDEoIk1pc3NpbmcgdGhlIHJlcXVpcmVkIGBlbmdpbmVgIGtleSBpbiB0aGUgRm9ybXVsYXMgc2V0dGluZ3MuIFBsZWFzZSBmaWxsIGl0IHdpdGggZWl0aGVyIGFuIGVuZ2luZSBj''@;'; + put 'put ''bGFzcyBvciBhbiBlbmdpbmUgaW5zdGFuY2UuIik7aWYobnVsbCE9PXRoaXMuc2hlZXROYW1lJiYhdGhpcy5lbmdpbmUuZG9lc1NoZWV0RXhpc3QodGhpcy5zaGVldE5hbWUpKXt2YXIgST10aGlzLmFkZFNoZWV0KHRoaXMuc2hlZXROYW1lLHRoaXMuaG90LmdldFNvdXJjZURhdGFBcnJheSgp''@;'; + put 'put ''KTshMSE9PUkmJih0aGlzLnNoZWV0TmFtZT1JKX10aGlzLmFkZEhvb2soImJlZm9yZUxvYWREYXRhIixmdW5jdGlvbigpe3JldHVybiBDLm9uQmVmb3JlTG9hZERhdGEuYXBwbHkoQyxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixmdW5jdGlvbigpe3JldHVybiBD''@;'; + put 'put ''Lm9uQWZ0ZXJMb2FkRGF0YS5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeURhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIEMub25Nb2RpZnlEYXRhLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5U291cmNlRGF0YSIsZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gQy5vbk1vZGlmeVNvdXJjZURhdGEuYXBwbHkoQyxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVWYWxpZGF0ZSIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkJlZm9yZVZhbGlkYXRlLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJTZXRTb3VyY2VEYXRh''@;'; + put 'put ''QXRDZWxsIixmdW5jdGlvbigpe3JldHVybiBDLm9uQWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJTZXREYXRhQXRDZWxsIixmdW5jdGlvbigpe3JldHVybiBDLm9uQWZ0ZXJTZXREYXRhQXRDZWxsLmFwcGx5KEMsYXJndW1l''@;'; + put 'put ''bnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJTZXREYXRhQXRSb3dQcm9wIixmdW5jdGlvbigpe3JldHVybiBDLm9uQWZ0ZXJTZXREYXRhQXRDZWxsLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQ3JlYXRlUm93IixmdW5jdGlvbigpe3JldHVybiBDLm9uQmVmb3Jl''@;'; + put 'put ''Q3JlYXRlUm93LmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQ3JlYXRlQ29sIixmdW5jdGlvbigpe3JldHVybiBDLm9uQmVmb3JlQ3JlYXRlQ29sLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDcmVhdGVSb3ciLGZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIEMub25BZnRlckNyZWF0ZVJvdy5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ3JlYXRlQ29sIixmdW5jdGlvbigpe3JldHVybiBDLm9uQWZ0ZXJDcmVhdGVDb2wuYXBwbHkoQyxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVSZW1vdmVSb3ciLGZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIEMub25CZWZvcmVSZW1vdmVSb3cuYXBwbHkoQyxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVSZW1vdmVDb2wiLGZ1bmN0aW9uKCl7cmV0dXJuIEMub25CZWZvcmVSZW1vdmVDb2wuYXBwbHkoQyxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRl''@;'; + put 'put ''clJlbW92ZVJvdyIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkFmdGVyUmVtb3ZlUm93LmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJSZW1vdmVDb2wiLGZ1bmN0aW9uKCl7cmV0dXJuIEMub25BZnRlclJlbW92ZUNvbC5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFk''@;'; + put 'put ''ZEhvb2soImJlZm9yZVVuZG8iLGZ1bmN0aW9uKGopeyJyb3dfbW92ZSIhPT0obnVsbD09aj92b2lkIDA6ai5hY3Rpb25UeXBlKSYmQy5lbmdpbmUudW5kbygpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVSZWRvIixmdW5jdGlvbihqKXsicm93X21vdmUiIT09KG51bGw9PWo/dm9pZCAwOmouYWN0''@;'; + put 'put ''aW9uVHlwZSkmJkMuZW5naW5lLnJlZG8oKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJEZXRhY2hDaGlsZCIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkFmdGVyRGV0YWNoQ2hpbGQuYXBwbHkoQyxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVBdXRvZmlsbCIsZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gQy5vbkJlZm9yZUF1dG9maWxsLmFwcGx5KEMsYXJndW1lbnRzKX0pLHpPKHRoaXMsSXopLmZvckVhY2goZnVuY3Rpb24oail7dmFyIHVlPWpPKGosMik7cmV0dXJuIEMuZW5naW5lLm9uKHVlWzBdLHVlWzFdKX0pLGVNKEc5KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5j''@;'; + put 'put ''YWxsKHRoaXMpfX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt6Tyh0aGlzLEl6KS5mb3JFYWNoKGZ1bmN0aW9uKEMpe3ZhciBJPWpPKEMsMik7cmV0dXJuIHkuZW5naW5lLm9mZihJWzBdLElbMV0pfSksR1RlKHRoaXMuZW5naW5lLHRoaXMuaG90''@;'; + put 'put ''KSx0aGlzLmVuZ2luZT1udWxsLGVNKEc5KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5lbmdpbmUudXBkYXRlQ29uZmlnKGZ1bmN0aW9uIFdjdChkKXt2YXIgZyxoPWRbdTNd''@;'; + put 'put ''LHY9WlRlKG51bGwhPWgmJm51bGwhPT0oZz1oLmVuZ2luZSkmJnZvaWQgMCE9PWcmJmcuaHlwZXJmb3JtdWxhP2guZW5naW5lOnt9KSx5PWpUZShkKTtyZXR1cm4geHooeHooe30sdikseSl9KHRoaXMuaG90LmdldFNldHRpbmdzKCkpKTt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW3Uz''@;'; + put 'put ''XTtpZihUbyhDKSYmVG8oQy5zaGVldE5hbWUpJiZDLnNoZWV0TmFtZSE9PXRoaXMuc2hlZXROYW1lJiZ0aGlzLnN3aXRjaFNoZWV0KEMuc2hlZXROYW1lKSwheS5kYXRhJiZudWxsPT09dGhpcy5zaGVldE5hbWUpe3ZhciBJPXRoaXMuaG90LmdldFNldHRpbmdzKClbdTNdLnNoZWV0TmFtZTtJ''@;'; + put 'put ''JiZ0aGlzLmVuZ2luZS5kb2VzU2hlZXRFeGlzdChJKT90aGlzLnN3aXRjaFNoZWV0KHRoaXMuc2hlZXROYW1lKTp0aGlzLnNoZWV0TmFtZT10aGlzLmFkZFNoZWV0KG51bGwhPUk/STp2b2lkIDAsdGhpcy5ob3QuZ2V0U291cmNlRGF0YUFycmF5KCkpfWVNKEc5KGgucHJvdG90eXBlKSwidXBk''@;'; + put 'put ''YXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMseSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7ek8odGhpcyxJeikuZm9yRWFjaChmdW5jdGlvbihDKXt2YXIgSSxqPWpPKEMsMik7cmV0dXJuIG51bGw9PT0oST15LmVuZ2luZSl8fHZvaWQgMD09PUk/dm9p''@;'; + put 'put ''ZCAwOkkub2ZmKGpbMF0salsxXSl9KSxaTyh0aGlzLEl6LG51bGwpLEdUZSh0aGlzLmVuZ2luZSx0aGlzLmhvdCksdGhpcy5lbmdpbmU9bnVsbCxlTShHOShoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJnZXRQaHlzaWNhbEluZGV4UG9zaXRpb24iLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKHksQyxJLGosdWUpe3JldHVybiF1ZSYmeT49ST9qKyh5LUkpOkN9fSx7a2V5OiJ0b1BoeXNpY2FsUm93UG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07cmV0''@;'; + put 'put ''dXJuIHRoaXMuZ2V0UGh5c2ljYWxJbmRleFBvc2l0aW9uKHksdGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5KSx0aGlzLmhvdC5jb3VudFJvd3MoKSx0aGlzLmhvdC5jb3VudFNvdXJjZVJvd3MoKSxDKX19LHtrZXk6InRvUGh5c2ljYWxDb2x1bW5Qb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSl7''@;'; + put 'put ''dmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtyZXR1cm4gdGhpcy5nZXRQaHlzaWNhbEluZGV4UG9zaXRpb24oeSx0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHkpLHRoaXMuaG90LmNvdW50Q29scygpLHRoaXMuaG90LmNvdW50''@;'; + put 'put ''U291cmNlQ29scygpLEMpfX0se2tleToiYWRkU2hlZXQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7aWYoVG8oQykmJiFYQ2UoQykpcmV0dXJuIGwxKCJUaGUgcHJvdmlkZWQgZGF0YSBzaG91bGQgYmUgYW4gYXJyYXkgb2YgYXJyYXlzLiIpLCExO2lmKG51bGwhPXkmJnRoaXMuZW5naW5lLmRvZXNT''@;'; + put 'put ''aGVldEV4aXN0KHkpKXJldHVybiBsMSgiU2hlZXQgd2l0aCB0aGUgcHJvdmlkZWQgbmFtZSBhbHJlYWR5IGV4aXN0cy4iKSwhMTt0cnl7dmFyIEk9dGhpcy5lbmdpbmUuYWRkU2hlZXQobnVsbCE9eT95OnZvaWQgMCk7cmV0dXJuIEMmJnRoaXMuZW5naW5lLnNldFNoZWV0Q29udGVudCh0aGlz''@;'; + put 'put ''LmVuZ2luZS5nZXRTaGVldElkKEkpLEMpLEl9Y2F0Y2goail7cmV0dXJuIGwxKGoubWVzc2FnZSksITF9fX0se2tleToic3dpdGNoU2hlZXQiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KHkpKXt0aGlzLnNoZWV0TmFtZT15O3ZhciBDPXRoaXMuZW5n''@;'; + put 'put ''aW5lLmdldFNoZWV0U2VyaWFsaXplZCh0aGlzLnNoZWV0SWQpO0MubGVuZ3RoPjAmJnRoaXMuaG90LmxvYWREYXRhKEMsIiIuY29uY2F0KGFkKHUzKSwiLnN3aXRjaFNoZWV0IikpfWVsc2UgYjNlKCJUaGUgc2hlZXQgbmFtZWQgYCIuY29uY2F0KHksImAgZG9lcyBub3QgZXhpc3QsIHN3aXRj''@;'; + put 'put ''aCBhYm9ydGVkLiIpKX19LHtrZXk6ImdldENlbGxUeXBlIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp0aGlzLnNoZWV0SWQsaj10aGlzLmhvdC50b1BoeXNpY2FsUm93KHkpLHVlPXRoaXMu''@;'; + put 'put ''aG90LnRvUGh5c2ljYWxDb2x1bW4oQyk7cmV0dXJuIG51bGwhPT1qJiZudWxsIT09dWU/dGhpcy5lbmdpbmUuZ2V0Q2VsbFR5cGUoe3NoZWV0Okkscm93OmosY29sOnVlfSk6IkVNUFRZIn19LHtrZXk6ImlzRm9ybXVsYUNlbGxUeXBlIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWFyZ3Vt''@;'; + put 'put ''ZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp0aGlzLnNoZWV0SWQsaj10aGlzLmhvdC50b1BoeXNpY2FsUm93KHkpLHVlPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oQyk7cmV0dXJuIG51bGwhPT1qJiZudWxsIT09dWUmJnRoaXMuZW5naW5lLmRv''@;'; + put 'put ''ZXNDZWxsSGF2ZUZvcm11bGEoe3NoZWV0Okkscm93OmosY29sOnVlfSl9fSx7a2V5OiJyZW5kZXJEZXBlbmRlbnRTaGVldHMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLGo9bmV3''@;'; + put 'put ''IFNldDt5LmZvckVhY2goZnVuY3Rpb24odWUpe3ZhciBfZSxCZT1udWxsPT11ZXx8bnVsbD09PShfZT11ZS5hZGRyZXNzKXx8dm9pZCAwPT09X2U/dm9pZCAwOl9lLnNoZWV0O3ZvaWQgMCE9PUJlJiYoai5oYXMoQmUpfHxqLmFkZChCZSkpfSkselRlKHRoaXMuZW5naW5lKS5mb3JFYWNoKGZ1''@;'; + put 'put ''bmN0aW9uKHVlLF9lKXt2YXIgQmU7KEl8fF9lIT09Qy5zaGVldElkKSYmai5oYXMoX2UpJiYodWUucmVuZGVyKCksbnVsbD09PShCZT11ZS52aWV3KXx8dm9pZCAwPT09QmV8fEJlLmFkanVzdEVsZW1lbnRzU2l6ZSgpKX0pfX0se2tleToidmFsaWRhdGVEZXBlbmRlbnRDZWxscyIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXSxqPWZ1bmN0aW9uKEJlKXt2YXIgTmUsS2U9bnVsbCE9PShOZT1udWxsPT1CZT92b2lkIDA6QmUuYWRkcmVzcykmJnZvaWQgMCE9PU5lP05lOnt9''@;'; + put 'put ''LGR0PUtlLnJvdyxPdD1LZS5jb2wsJHQ9S2Uuc2hlZXQ7cmV0dXJuIFRvKCR0KT8iIi5jb25jYXQoJHQsIjoiKS5jb25jYXQoZHQsIngiKS5jb25jYXQoT3QpOiIifSx1ZT1uZXcgU2V0KEkubWFwKGZ1bmN0aW9uKF9lKXtyZXR1cm4gaihfZSl9KSk7eS5mb3JFYWNoKGZ1bmN0aW9uKF9lKXt2''@;'; + put 'put ''YXIgQmUsTmUsS2U9bnVsbCE9PShCZT1fZS5hZGRyZXNzKSYmdm9pZCAwIT09QmU/QmU6e30sZHQ9S2Uucm93LE90PUtlLmNvbCwkdD1UbyhkdCk/Qy5ob3QudG9WaXN1YWxSb3coZHQpOm51bGwsZm49VG8oT3QpP0MuaG90LnRvVmlzdWFsQ29sdW1uKE90KTpudWxsO2lmKG51bGwhPT0kdCYm''@;'; + put 'put ''bnVsbCE9PWZuKXt2YXIgTG49bnVsbD09X2V8fG51bGw9PT0oTmU9X2UuYWRkcmVzcyl8fHZvaWQgMD09PU5lP3ZvaWQgMDpOZS5zaGVldCxpcj1qKF9lKTtpZih2b2lkIDAhPT1MbiYmIXVlLmhhcyhpcikpe3ZhciBtcj16VGUoQy5lbmdpbmUpLmdldChMbik7aWYoIW1yKXJldHVybjttci52''@;'; + put 'put ''YWxpZGF0ZUNlbGwobXIuZ2V0RGF0YUF0Q2VsbCgkdCxmbiksbXIuZ2V0Q2VsbE1ldGEoJHQsZm4pLGZ1bmN0aW9uKCl7fSl9fX0pfX0se2tleToic3luY0NoYW5nZVdpdGhFbmdpbmUiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj17cm93OnRoaXMudG9QaHlzaWNhbFJvd1Bvc2l0aW9u''@;'; + put 'put ''KHkpLGNvbDp0aGlzLnRvUGh5c2ljYWxDb2x1bW5Qb3NpdGlvbihDKSxzaGVldDp0aGlzLnNoZWV0SWR9O2lmKHRoaXMuZW5naW5lLmlzSXRQb3NzaWJsZVRvU2V0Q2VsbENvbnRlbnRzKGopKXJldHVybiB0aGlzLmVuZ2luZS5zZXRDZWxsQ29udGVudHMoaixJKTtsMSgiTm90IHBvc3NpYmxl''@;'; + put 'put ''IHRvIHNldCBjZWxsIGRhdGEgYXQgIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoaikpKX19LHtrZXk6Im9uQmVmb3JlVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj10aGlzLmhvdC5wcm9wVG9Db2woSSk7aWYodGhpcy5pc0Zvcm11bGFDZWxsVHlwZShDLGopKXt2YXIgdWU9''@;'; + put 'put ''e3Jvdzp0aGlzLmhvdC50b1BoeXNpY2FsUm93KEMpLGNvbDp0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGopLHNoZWV0OnRoaXMuc2hlZXRJZH0sX2U9dGhpcy5lbmdpbmUuZ2V0Q2VsbFZhbHVlKHVlKTtyZXR1cm4ib2JqZWN0Ij09PVR6KF9lKSYmbnVsbCE9PV9lP19lLnZhbHVlOl9lfXJl''@;'; + put 'put ''dHVybiB5fX0se2tleToib25CZWZvcmVBdXRvZmlsbCIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBqPXRoaXMsdWU9ZnVuY3Rpb24oS2Upe3JldHVybiBVVGUoVVRlKHt9LEtlKSx7fSx7c2hlZXQ6ai5zaGVldElkfSl9LF9lPXtzdGFydDp1ZShDLmdldFRvcFN0YXJ0Q29ybmVyKCkpLGVu''@;'; + put 'put ''ZDp1ZShDLmdldEJvdHRvbUVuZENvcm5lcigpKX0sQmU9e3N0YXJ0OnVlKEkuZ2V0VG9wU3RhcnRDb3JuZXIoKSksZW5kOnVlKEkuZ2V0Qm90dG9tRW5kQ29ybmVyKCkpfTtyZXR1cm4hMSE9PXRoaXMuZW5naW5lLmlzSXRQb3NzaWJsZVRvU2V0Q2VsbENvbnRlbnRzKEJlKSYmdGhpcy5lbmdp''@;'; + put 'put ''bmUuZ2V0RmlsbFJhbmdlRGF0YShfZSxCZSl9fSx7a2V5OiJvbkJlZm9yZUxvYWREYXRhIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiIjtJLmluY2x1ZGVzKGFkKHUzKSl8fFpPKHRoaXMs''@;'; + put 'put ''TDVlLGExKHRoaXMuaG90LmdldFNldHRpbmdzKCkuZGF0YSkpfX0se2tleToib25BZnRlckxvYWREYXRhIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiIjtpZighSS5pbmNsdWRlcyhhZCh1''@;'; + put 'put ''MykpKWlmKHRoaXMuc2hlZXROYW1lPUtjdCh0aGlzLmVuZ2luZSx0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3UzXS5zaGVldE5hbWUpLHpPKHRoaXMsTDVlKSl0aGlzLnN3aXRjaFNoZWV0KHRoaXMuc2hlZXROYW1lKTtlbHNle3ZhciBqPXRoaXMuaG90LmdldFNvdXJjZURhdGFBcnJheSgpO2lm''@;'; + put 'put ''KHRoaXMuZW5naW5lLmlzSXRQb3NzaWJsZVRvUmVwbGFjZVNoZWV0Q29udGVudCh0aGlzLnNoZWV0SWQsaikpe1pPKHRoaXMsbk0sITApO3ZhciB1ZT10aGlzLmVuZ2luZS5zZXRTaGVldENvbnRlbnQodGhpcy5zaGVldElkLHRoaXMuaG90LmdldFNvdXJjZURhdGFBcnJheSgpKTt0aGlzLnJl''@;'; + put 'put ''bmRlckRlcGVuZGVudFNoZWV0cyh1ZSksWk8odGhpcyxuTSwhMSl9fX19LHtrZXk6Im9uTW9kaWZ5RGF0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7aWYoImdldCI9PT1qJiYhek8odGhpcyxuTSkmJm51bGwhPT10aGlzLnNoZWV0TmFtZSYmdGhpcy5lbmdpbmUuZG9lc1NoZWV0RXhpc3Qo''@;'; + put 'put ''dGhpcy5zaGVldE5hbWUpKXt2YXIgdWU9dGhpcy5ob3QudG9WaXN1YWxSb3coeSk7aWYoIXRoaXMuaXNGb3JtdWxhQ2VsbFR5cGUodWUsQykmJiJBUlJBWSIhPT10aGlzLmdldENlbGxUeXBlKHVlLEMpKXJldHVybiB2b2lkKFdUZShJLnZhbHVlKSYmKEkudmFsdWU9ZnVuY3Rpb24gJGN0KGQp''@;'; + put 'put ''e3JldHVybiBXVGUoZCk/ZC5zdWJzdHIoMSk6ZH0oSS52YWx1ZSkpKTt2YXIgTmU9e3Jvdzp5LGNvbDp0aGlzLnRvUGh5c2ljYWxDb2x1bW5Qb3NpdGlvbihDKSxzaGVldDp0aGlzLnNoZWV0SWR9LEtlPXRoaXMuZW5naW5lLmdldENlbGxWYWx1ZShOZSksZHQ9Im9iamVjdCI9PT1UeihLZSkm''@;'; + put 'put ''Jm51bGwhPT1LZT9LZS52YWx1ZTpLZTtJLnZhbHVlPWR0fX19LHtrZXk6Im9uTW9kaWZ5U291cmNlRGF0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7aWYoImdldCI9PT1qJiYhek8odGhpcyxuTSkmJm51bGwhPT10aGlzLnNoZWV0TmFtZSYmdGhpcy5lbmdpbmUuZG9lc1NoZWV0RXhpc3Qo''@;'; + put 'put ''dGhpcy5zaGVldE5hbWUpKXt2YXIgdWU9dGhpcy5ob3QudG9WaXN1YWxSb3coeSksX2U9dGhpcy5ob3QucHJvcFRvQ29sKEMpO2lmKCF0aGlzLmlzRm9ybXVsYUNlbGxUeXBlKHVlLF9lKSYmIkFSUkFZIiE9PXRoaXMuZ2V0Q2VsbFR5cGUodWUsX2UpKXJldHVybjt2YXIgS2U9dGhpcy5lbmdp''@;'; + put 'put ''bmUuZ2V0U2hlZXREaW1lbnNpb25zKHRoaXMuZW5naW5lLmdldFNoZWV0SWQodGhpcy5zaGVldE5hbWUpKTtpZigwIT09S2Uud2lkdGh8fDAhPT1LZS5oZWlnaHQpe3ZhciBkdD17cm93OnksY29sOnRoaXMudG9QaHlzaWNhbENvbHVtblBvc2l0aW9uKF9lKSxzaGVldDp0aGlzLnNoZWV0SWR9''@;'; + put 'put ''O0kudmFsdWU9dGhpcy5lbmdpbmUuZ2V0Q2VsbFNlcmlhbGl6ZWQoZHQpfX19fSx7a2V5OiJvbkFmdGVyU2V0RGF0YUF0Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzO2lmKCFHTyhDKSl7dmFyIGo9W10sdWU9W10sX2U9dGhpcy5lbmdpbmUuYmF0Y2goZnVuY3Rpb24oKXt5''@;'; + put 'put ''LmZvckVhY2goZnVuY3Rpb24oQmUpe3ZhciBOZT1qTyhCZSw0KSxLZT1OZVswXSxPdD1OZVszXSwkdD1JLmhvdC5wcm9wVG9Db2woTmVbMV0pLGZuPUkuaG90LnRvUGh5c2ljYWxSb3coS2UpLExuPUkuaG90LnRvUGh5c2ljYWxDb2x1bW4oJHQpLGlyPXtyb3c6Zm4sY29sOkxuLHNoZWV0Okku''@;'; + put 'put ''c2hlZXRJZH07bnVsbCE9PWZuJiZudWxsIT09TG4/SS5zeW5jQ2hhbmdlV2l0aEVuZ2luZShLZSwkdCxPdCk6ai5wdXNoKFtLZSwkdCxPdF0pLHVlLnB1c2goe2FkZHJlc3M6aXJ9KX0pfSk7ai5sZW5ndGgmJnRoaXMuaG90LmFkZEhvb2tPbmNlKCJhZnRlckNoYW5nZSIsZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgQmU9SS5lbmdpbmUuYmF0Y2goZnVuY3Rpb24oKXtqLmZvckVhY2goZnVuY3Rpb24oTmUpe3ZhciBLZT1qTyhOZSwzKTtJLnN5bmNDaGFuZ2VXaXRoRW5naW5lKEtlWzBdLEtlWzFdLEtlWzJdKX0pfSk7SS5yZW5kZXJEZXBlbmRlbnRTaGVldHMoQmUsITApfSksdGhpcy5yZW5kZXJEZXBl''@;'; + put 'put ''bmRlbnRTaGVldHMoX2UpLHRoaXMudmFsaWRhdGVEZXBlbmRlbnRDZWxscyhfZSx1ZSl9fX0se2tleToib25BZnRlclNldFNvdXJjZURhdGFBdENlbGwiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcztpZighR08oQykpe3ZhciBqPVtdLHVlPVtdO3kuZm9yRWFjaChmdW5jdGlvbihf''@;'; + put 'put ''ZSl7dmFyIEJlPWpPKF9lLDQpLE5lPUJlWzBdLGR0PUJlWzNdLE90PUkuaG90LnByb3BUb0NvbChCZVsxXSk7aWYodjQoT3QpKXt2YXIgJHQ9e3JvdzpOZSxjb2w6SS50b1BoeXNpY2FsQ29sdW1uUG9zaXRpb24oT3QpLHNoZWV0Okkuc2hlZXRJZH07aWYoIUkuZW5naW5lLmlzSXRQb3NzaWJs''@;'; + put 'put ''ZVRvU2V0Q2VsbENvbnRlbnRzKCR0KSlyZXR1cm4gdm9pZCBsMSgiTm90IHBvc3NpYmxlIHRvIHNldCBzb3VyY2UgY2VsbCBkYXRhIGF0ICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KCR0KSkpO3VlLnB1c2goe2FkZHJlc3M6JHR9KSxqLnB1c2guYXBwbHkoaixmdW5jdGlvbiBxY3QoZCl7cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uIG5mdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBUNWUoZCl9KGQpfHxmdW5jdGlvbiB0ZnQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJh''@;'; + put 'put ''eS5mcm9tKGQpfShkKXx8UVRlKGQpfHxmdW5jdGlvbiBlZnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBb''@;'; + put 'put ''U3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oSS5lbmdpbmUuc2V0Q2VsbENvbnRlbnRzKCR0LGR0KSkpfX0pLHRoaXMucmVuZGVyRGVwZW5kZW50U2hlZXRzKGopLHRoaXMudmFsaWRhdGVEZXBlbmRlbnRDZWxscyhqLHVlKX19fSx7a2V5OiJvbkJlZm9yZUNyZWF0ZVJvdyIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oeSxDKXtpZihudWxsPT09dGhpcy5zaGVldElkfHwhdGhpcy5lbmdpbmUuZG9lc1NoZWV0RXhpc3QodGhpcy5zaGVldE5hbWUpfHwhdGhpcy5lbmdpbmUuaXNJdFBvc3NpYmxlVG9BZGRSb3dzKHRoaXMuc2hlZXRJZCxbdGhpcy50b1BoeXNpY2FsUm93UG9zaXRpb24oeSks''@;'; + put 'put ''Q10pKXJldHVybiExfX0se2tleToib25CZWZvcmVDcmVhdGVDb2wiLHZhbHVlOmZ1bmN0aW9uKHksQyl7aWYobnVsbD09PXRoaXMuc2hlZXRJZHx8IXRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KHRoaXMuc2hlZXROYW1lKXx8IXRoaXMuZW5naW5lLmlzSXRQb3NzaWJsZVRvQWRkQ29sdW1u''@;'; + put 'put ''cyh0aGlzLnNoZWV0SWQsW3RoaXMudG9QaHlzaWNhbENvbHVtblBvc2l0aW9uKHkpLENdKSlyZXR1cm4hMX19LHtrZXk6Im9uQmVmb3JlUmVtb3ZlUm93Iix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9dGhpcztyZXR1cm4hMSE9PUkuZXZlcnkoZnVuY3Rpb24oX2Upe3JldHVybiBqLmVu''@;'; + put 'put ''Z2luZS5pc0l0UG9zc2libGVUb1JlbW92ZVJvd3Moai5zaGVldElkLFtfZSwxXSl9KSYmdm9pZCAwfX0se2tleToib25CZWZvcmVSZW1vdmVDb2wiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj10aGlzO3JldHVybiExIT09SS5ldmVyeShmdW5jdGlvbihfZSl7cmV0dXJuIGouZW5naW5l''@;'; + put 'put ''LmlzSXRQb3NzaWJsZVRvUmVtb3ZlQ29sdW1ucyhqLnNoZWV0SWQsW19lLDFdKX0pJiZ2b2lkIDB9fSx7a2V5OiJvbkFmdGVyQ3JlYXRlUm93Iix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7aWYoIUdPKEkpKXt2YXIgaj10aGlzLmVuZ2luZS5hZGRSb3dzKHRoaXMuc2hlZXRJZCxbdGhpcy50b1Bo''@;'; + put 'put ''eXNpY2FsUm93UG9zaXRpb24oeSksQ10pO3RoaXMucmVuZGVyRGVwZW5kZW50U2hlZXRzKGopfX19LHtrZXk6Im9uQWZ0ZXJDcmVhdGVDb2wiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXtpZighR08oSSkpe3ZhciBqPXRoaXMuZW5naW5lLmFkZENvbHVtbnModGhpcy5zaGVldElkLFt0aGlzLnRv''@;'; + put 'put ''UGh5c2ljYWxDb2x1bW5Qb3NpdGlvbih5KSxDXSk7dGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHMoail9fX0se2tleToib25BZnRlclJlbW92ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7dmFyIHVlPXRoaXM7aWYoIUdPKGopKXt2YXIgX2U9SS5zb3J0KCkucmV2ZXJzZSgpLEJlPXRo''@;'; + put 'put ''aXMuZW5naW5lLmJhdGNoKGZ1bmN0aW9uKCl7X2UuZm9yRWFjaChmdW5jdGlvbihOZSl7dWUuZW5naW5lLnJlbW92ZVJvd3ModWUuc2hlZXRJZCxbTmUsMV0pfSl9KTt0aGlzLnJlbmRlckRlcGVuZGVudFNoZWV0cyhCZSl9fX0se2tleToib25BZnRlclJlbW92ZUNvbCIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oeSxDLEksail7dmFyIHVlPXRoaXM7aWYoIUdPKGopKXt2YXIgX2U9SS5zb3J0KCkucmV2ZXJzZSgpLEJlPXRoaXMuZW5naW5lLmJhdGNoKGZ1bmN0aW9uKCl7X2UuZm9yRWFjaChmdW5jdGlvbihOZSl7dWUuZW5naW5lLnJlbW92ZUNvbHVtbnModWUuc2hlZXRJZCxbTmUsMV0pfSl9KTt0''@;'; + put 'put ''aGlzLnJlbmRlckRlcGVuZGVudFNoZWV0cyhCZSl9fX0se2tleToib25BZnRlckRldGFjaENoaWxkIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGosdWU9dGhpcztaTyh0aGlzLG5NLCEwKTt2YXIgX2U9dGhpcy5ob3QuZ2V0U291cmNlRGF0YUFycmF5KEksMCxJKygobnVsbD09PShqPUMu''@;'; + put 'put ''X19jaGlsZHJlbil8fHZvaWQgMD09PWo/dm9pZCAwOmoubGVuZ3RoKXx8MCksdGhpcy5ob3QuY291bnRTb3VyY2VDb2xzKCkpO1pPKHRoaXMsbk0sITEpLF9lLmZvckVhY2goZnVuY3Rpb24oQmUsTmUpe0JlLmZvckVhY2goZnVuY3Rpb24oS2UsZHQpe3VlLmVuZ2luZS5zZXRDZWxsQ29udGVu''@;'; + put 'put ''dHMoe2NvbDpkdCxyb3c6SStOZSxzaGVldDp1ZS5zaGVldElkfSxbW0tlXV0pfSl9KX19LHtrZXk6Im9uRW5naW5lVmFsdWVzVXBkYXRlZCIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyRm9ybXVsYXNWYWx1ZXNVcGRhdGUiLHkpfX0se2tleToib25FbmdpbmVO''@;'; + put 'put ''YW1lZEV4cHJlc3Npb25zQWRkZWQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyTmFtZWRFeHByZXNzaW9uQWRkZWQiLHksQyl9fSx7a2V5OiJvbkVuZ2luZU5hbWVkRXhwcmVzc2lvbnNSZW1vdmVkIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuaG90LnJ1''@;'; + put 'put ''bkhvb2tzKCJhZnRlck5hbWVkRXhwcmVzc2lvblJlbW92ZWQiLHksQyl9fSx7a2V5OiJvbkVuZ2luZVNoZWV0QWRkZWQiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclNoZWV0QWRkZWQiLHkpfX0se2tleToib25FbmdpbmVTaGVldFJlbmFtZWQiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKHksQyl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyU2hlZXRSZW5hbWVkIix5LEMpfX0se2tleToib25FbmdpbmVTaGVldFJlbW92ZWQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyU2hlZXRSZW1vdmVkIix5LEMpfX1dLFt7a2V5OiJQTFVHSU5f''@;'; + put 'put ''S0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdTN9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAyNjB9fV0pLGh9KFlzKTtmdW5jdGlvbiAkVGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBB''@;'; + put 'put ''cnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBtbmUoZCl7cmV0dXJuIGZ1bmN0aW9uIEVmdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBPNWUoZCl9KGQpfHxmdW5jdGlvbiBNZnQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwh''@;'; + put 'put ''PWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gU2Z0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBPNWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh''@;'; + put 'put ''bGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFt''@;'; + put 'put ''cGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIE81ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIGtmdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBv''@;'; + put 'put ''YmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIE81ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0''@;'; + put 'put ''aW9uIFI1ZShkKXtyZXR1cm4oUjVlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29u''@;'; + put 'put ''c3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gVGZ0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rp''@;'; + put 'put ''b24gcVRlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVu''@;'; + put 'put ''Y3Rpb24gck0oKXtyZXR1cm4gck09InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PURmdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1''@;'; + put 'put ''cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sck0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIERmdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9VzkoZCkpOyk7''@;'; + put 'put ''cmV0dXJuIGR9ZnVuY3Rpb24gQjVlKGQsZyl7cmV0dXJuKEI1ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFJmdChkLGcpe2lmKGcmJigib2JqZWN0''@;'; + put 'put ''Ij09PVI1ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gUDVlKGQpfWZ1bmN0aW9uIFA1ZShk''@;'; + put 'put ''KXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gVzkoZCl7cmV0dXJuKFc5PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Qu''@;'; + put 'put ''Z2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9ZnVuY3Rpb24gZUllKGQsZyxoKXsoZnVuY3Rpb24gUGZ0KGQsZyl7aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGlu''@;'; + put 'put ''aXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiB3NChkLGcpe3JldHVybiBmdW5jdGlvbiBGZnQoZCxnKXtyZXR1cm4gZy5nZXQ/Zy5nZXQuY2FsbChkKTpnLnZhbHVlfShkLHRJZShkLGcsImdl''@;'; + put 'put ''dCIpKX1mdW5jdGlvbiBEeihkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uIEhmdChkLGcsaCl7aWYoZy5zZXQpZy5zZXQuY2FsbChkLGgpO2Vsc2V7aWYoIWcud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO2cudmFs''@;'; + put 'put ''dWU9aH19KGQsdEllKGQsZywic2V0IiksaCksaH1mdW5jdGlvbiB0SWUoZCxnLGgpe2lmKCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQoZCl9em8uZ2V0U2luZ2xldG9u''@;'; + put 'put ''KCkucmVnaXN0ZXIoImJlZm9yZUhpZGVDb2x1bW5zIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVySGlkZUNvbHVtbnMiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlVW5oaWRlQ29sdW1ucyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclVu''@;'; + put 'put ''aGlkZUNvbHVtbnMiKTt2YXIgRjVlPSJoaWRkZW5Db2x1bW5zIixCZz1uZXcgV2Vha01hcCxQZz1uZXcgV2Vha01hcCxWZnQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIExmdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBl''@;'; + put 'put ''eHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwi''@;'; + put 'put ''cHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZCNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBPZnQoZCl7dmFyIGc9ZnVuY3Rpb24gQmZ0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0''@;'; + put 'put ''dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciB5LHY9VzkoZCk7aWYoZyl7dmFyIEM9VzkodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFJmdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3ZhciB2O1Rm''@;'; + put 'put ''dCh0aGlzLGgpO2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiBlSWUoUDVlKHY9Zy5jYWxsLmFwcGx5KGcsW3RoaXNdLmNvbmNhdChDKSkpLEJnLHt3cml0YWJsZTohMCx2YWx1ZTp7fX0pLGVJZShQ''@;'; + put 'put ''NWUodiksUGcse3dyaXRhYmxlOiEwLHZhbHVlOm51bGx9KSx2fXJldHVybiBmdW5jdGlvbiBJZnQoZCxnLGgpe2cmJnFUZShkLnByb3RvdHlwZSxnKSxoJiZxVGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFi''@;'; + put 'put ''bGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtGNWVdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7aWYoIXRoaXMuZW5hYmxlZCl7dmFyIEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtGNWVdO3hsKEMp''@;'; + put 'put ''JiYoRHoodGhpcyxCZyxDKSxhMShDLmNvcHlQYXN0ZUVuYWJsZWQpJiYoQy5jb3B5UGFzdGVFbmFibGVkPSEwKSksRHoodGhpcyxQZyxuZXcgV2VlKSx3NCh0aGlzLFBnKS5hZGRMb2NhbEhvb2soImluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25NYXBJbml0KCl9KSx0aGlzLmhvdC5jb2x1''@;'; + put 'put ''bW5JbmRleE1hcHBlci5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUsdzQodGhpcyxQZykpLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zLmFwcGx5KHksYXJn''@;'; + put 'put ''dW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRDZWxsTWV0YSIsZnVuY3Rpb24oSSxqLHVlKXtyZXR1cm4geS5vbkFmdGVyR2V0Q2VsbE1ldGEoSSxqLHVlKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5Q29sV2lkdGgiLGZ1bmN0aW9uKEksail7cmV0dXJuIHkub25Nb2RpZnlDb2xXaWR0''@;'; + put 'put ''aChJLGopfSksdGhpcy5hZGRIb29rKCJhZnRlckdldENvbEhlYWRlciIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyR2V0Q29sSGVhZGVyLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5Q29weWFibGVSYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25Nb2Rp''@;'; + put 'put ''ZnlDb3B5YWJsZVJhbmdlKEkpfSksck0oVzkoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksck0oVzkoaC5wcm90''@;'; + put 'put ''b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSxEeih0aGlzLEJnLHt9KSxyTShXOShoLnByb3Rv''@;'; + put 'put ''dHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyksdGhpcy5yZXNldENlbGxzTWV0YSgpfX0se2tleToic2hvd0NvbHVtbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST10aGlzLmdldEhpZGRlbkNvbHVtbnMoKSxqPXRoaXMuaXNWYWxpZENvbmZpZyh5KSx1ZT1J''@;'; + put 'put ''LF9lPXc0KHRoaXMsUGcpLmdldFZhbHVlcygpLnNsaWNlKCksQmU9eS5sZW5ndGg+MDtqJiZCZSYmKFVyKHkubWFwKGZ1bmN0aW9uKGR0KXtyZXR1cm4gQy5ob3QudG9QaHlzaWNhbENvbHVtbihkdCl9KSxmdW5jdGlvbihkdCl7X2VbZHRdPSExfSksdWU9U3UoX2UsZnVuY3Rpb24oZHQsT3Qs''@;'; + put 'put ''JHQpe3JldHVybiBPdCYmZHQucHVzaChDLmhvdC50b1Zpc3VhbENvbHVtbigkdCkpLGR0fSxbXSkpLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVVuaGlkZUNvbHVtbnMiLEksdWUsaiYmQmUpJiYoaiYmQmUmJnc0KHRoaXMsUGcpLnNldFZhbHVlcyhfZSksdGhpcy5ob3Qudmlldy5h''@;'; + put 'put ''ZGp1c3RFbGVtZW50c1NpemUoKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJVbmhpZGVDb2x1bW5zIixJLHVlLGomJkJlLGomJnVlLmxlbmd0aDxJLmxlbmd0aCkpfX0se2tleToic2hvd0NvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBB''@;'; + put 'put ''cnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTt0aGlzLnNob3dDb2x1bW5zKEMpfX0se2tleToiaGlkZUNvbHVtbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST10aGlzLmdldEhpZGRlbkNvbHVtbnMoKSxqPXRoaXMuaXNWYWxpZENvbmZpZyh5KSx1ZT1JO2om''@;'; + put 'put ''Jih1ZT1BcnJheS5mcm9tKG5ldyBTZXQoSS5jb25jYXQoeSkpKSksITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlSGlkZUNvbHVtbnMiLEksdWUsaikmJihqJiZ0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe1VyKHksZnVuY3Rpb24oQmUpe3c0KEMsUGcpLnNldFZhbHVl''@;'; + put 'put ''QXRJbmRleChDLmhvdC50b1BoeXNpY2FsQ29sdW1uKEJlKSwhMCl9KX0sITApLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckhpZGVDb2x1bW5zIixJLHVlLGosaiYmdWUubGVuZ3RoPkkubGVuZ3RoKSl9fSx7a2V5OiJoaWRlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1''@;'; + put 'put ''bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3RoaXMuaGlkZUNvbHVtbnMoQyl9fSx7a2V5OiJnZXRIaWRkZW5Db2x1bW5zIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7cmV0dXJuIE9sKHc0KHRoaXMsUGcpLmdldEhpZGRlbklu''@;'; + put 'put ''ZGV4ZXMoKSxmdW5jdGlvbihDKXtyZXR1cm4geS5ob3QudG9WaXN1YWxDb2x1bW4oQyl9KX19LHtrZXk6ImlzSGlkZGVuIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gdzQodGhpcyxQZykuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oeSkpfHwhMX19LHtrZXk6''@;'; + put 'put ''ImlzVmFsaWRDb25maWciLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmNvdW50Q29scygpO3JldHVybiEhKEFycmF5LmlzQXJyYXkoeSkmJnkubGVuZ3RoPjApJiZ5LmV2ZXJ5KGZ1bmN0aW9uKEkpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKEkpJiZJPj0wJiZJPEN9KX19LHtr''@;'; + put 'put ''ZXk6InJlc2V0Q2VsbHNNZXRhIix2YWx1ZTpmdW5jdGlvbigpe1VyKHRoaXMuaG90LmdldENlbGxzTWV0YSgpLGZ1bmN0aW9uKHkpe3kmJih5LnNraXBDb2x1bW5PblBhc3RlPSExKX0pfX0se2tleToib25Nb2RpZnlDb2xXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtyZXR1cm4gdGhpcy5p''@;'; + put 'put ''c0hpZGRlbihDKT8wOnc0KHRoaXMsQmcpLmluZGljYXRvcnMmJih0aGlzLmlzSGlkZGVuKEMrMSl8fHRoaXMuaXNIaWRkZW4oQy0xKSkmJiJudW1iZXIiPT10eXBlb2YgeSYmdGhpcy5ob3QuaGFzQ29sSGVhZGVycygpP3krMTU6dm9pZCAwfX0se2tleToib25BZnRlckdldENlbGxNZXRhIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbih5LEMsSSl7aWYoITE9PT13NCh0aGlzLEJnKS5jb3B5UGFzdGVFbmFibGVkJiZ0aGlzLmlzSGlkZGVuKEMpJiYoSS5za2lwQ29sdW1uT25QYXN0ZT0hMCksdGhpcy5pc0hpZGRlbihDLTEpKUkuY2xhc3NOYW1lPUkuY2xhc3NOYW1lfHwiIiwtMT09PUkuY2xhc3NOYW1l''@;'; + put 'put ''LmluZGV4T2YoImFmdGVySGlkZGVuQ29sdW1uIikmJihJLmNsYXNzTmFtZSs9IiBhZnRlckhpZGRlbkNvbHVtbiIpO2Vsc2UgaWYoSS5jbGFzc05hbWUpe3ZhciBqPUkuY2xhc3NOYW1lLnNwbGl0KCIgIik7aWYoai5sZW5ndGg+MCl7dmFyIHVlPWouaW5kZXhPZigiYWZ0ZXJIaWRkZW5Db2x1''@;'; + put 'put ''bW4iKTt1ZT4tMSYmai5zcGxpY2UodWUsMSksSS5jbGFzc05hbWU9ai5qb2luKCIgIil9fX19LHtrZXk6Im9uTW9kaWZ5Q29weWFibGVSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcztpZih3NCh0aGlzLEJnKS5jb3B5UGFzdGVFbmFibGVkKXJldHVybiB5O3ZhciBJPVtdLGo9''@;'; + put 'put ''ZnVuY3Rpb24oX2UsQmUsTmUsS2Upe0kucHVzaCh7c3RhcnRSb3c6X2UsZW5kUm93OkJlLHN0YXJ0Q29sOk5lLGVuZENvbDpLZX0pfTtyZXR1cm4gVXIoeSxmdW5jdGlvbih1ZSl7dmFyIF9lPSEwLEJlPTA7aWEodWUuc3RhcnRDb2wsdWUuZW5kQ29sLGZ1bmN0aW9uKE5lKXtDLmlzSGlkZGVu''@;'; + put 'put ''KE5lKT8oX2V8fGoodWUuc3RhcnRSb3csdWUuZW5kUm93LEJlLE5lLTEpLF9lPSEwKTooX2UmJihCZT1OZSksTmU9PT11ZS5lbmRDb2wmJmoodWUuc3RhcnRSb3csdWUuZW5kUm93LEJlLE5lKSxfZT0hMSl9KX0pLEl9fSx7a2V5OiJvbkFmdGVyR2V0Q29sSGVhZGVyIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bih5LEMpe2lmKHc0KHRoaXMsQmcpLmluZGljYXRvcnMmJiEoeTwwKSl7dmFyIEk9W107eT49MSYmdGhpcy5pc0hpZGRlbih5LTEpJiZJLnB1c2goImFmdGVySGlkZGVuQ29sdW1uIikseTx0aGlzLmhvdC5jb3VudENvbHMoKS0xJiZ0aGlzLmlzSGlkZGVuKHkrMSkmJkkucHVzaCgiYmVmb3Jl''@;'; + put 'put ''SGlkZGVuQ29sdW1uIiksTzAoQyxJKX19fSx7a2V5OiJvbkFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oeSl7eS5pdGVtcy5wdXNoKHtuYW1lOldsfSxmdW5jdGlvbiBDZnQoZCl7cmV0dXJue2tleToiaGlkZGVuX2NvbHVtbnNfaGlkZSIsbmFtZTpmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciBoPXRoaXMuZ2V0U2VsZWN0ZWRMYXN0KCksdj0wO2lmKEFycmF5LmlzQXJyYXkoaCkpe3ZhciB5PWZ1bmN0aW9uIEFmdChkLGcpe3JldHVybiBmdW5jdGlvbiBfZnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIGJmdChkLGcpe3ZhciBo''@;'; + put 'put ''PW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2go''@;'; + put 'put ''SS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIHdmdChkLGcpe2lmKGQpe2lmKCJz''@;'; + put 'put ''dHJpbmciPT10eXBlb2YgZClyZXR1cm4gJFRlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1''@;'; + put 'put ''cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiAkVGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIHlmdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0''@;'; + put 'put ''byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGgsNCk7eVsxXS15WzNdIT0wJiYodj0xKX1yZXR1cm4gdGhpcy5n''@;'; + put 'put ''ZXRUcmFuc2xhdGVkUGhyYXNlKG9wZSx2KX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtmb3IodmFyIGg9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLHY9aC5mcm9tLHk9aC50byxDPU1hdGgubWF4KE1hdGgubWluKHYuY29sLHkuY29sKSwwKSxJPU1hdGgubWF4KHYuY29sLHkuY29sKSxqPVtd''@;'; + put 'put ''LHVlPUM7dWU8PUk7dWUrPTEpai5wdXNoKHVlKTtkLmhpZGVDb2x1bW5zKGopO3ZhciBCZT10aGlzLmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChqW2oubGVuZ3RoLTFdLDEsITApO051bWJlci5pc0ludGVnZXIoQmUpJiZCZT49MD90aGlzLnNlbGVjdENvbHVt''@;'; + put 'put ''bnMoQmUpOnRoaXMuZGVzZWxlY3RDZWxsKCksdGhpcy5yZW5kZXIoKSx0aGlzLnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKX0sZGlzYWJsZWQ6ITEsaGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuISh0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKXx8dGhpcy5zZWxl''@;'; + put 'put ''Y3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkpfX19KHRoaXMpLGZ1bmN0aW9uIHhmdChkKXt2YXIgZz1bXTtyZXR1cm57a2V5OiJoaWRkZW5fY29sdW1uc19zaG93IixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShhcGUsZy5sZW5ndGg+MT8xOjApfSxj''@;'; + put 'put ''YWxsYmFjazpmdW5jdGlvbigpe3ZhciB2LHk7aWYoMCE9PWcubGVuZ3RoKXt2YXIgQz1nWzBdLEk9Z1tnLmxlbmd0aC0xXTtDPW51bGwhPT0odj10aGlzLmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChDLTEsLTEpKSYmdm9pZCAwIT09dj92OjAsST1udWxsIT09''@;'; + put 'put ''KHk9dGhpcy5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSSsxLDEpKSYmdm9pZCAwIT09eT95OnRoaXMuY291bnRDb2xzKCktMSxkLnNob3dDb2x1bW5zKGcpLHRoaXMucmVuZGVyKCksdGhpcy52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCksSS1DKzE9PT10''@;'; + put 'put ''aGlzLmNvdW50Q29scygpfHx0aGlzLnNlbGVjdENvbHVtbnMoQyxJKX19LGRpc2FibGVkOiExLGhpZGRlbjpmdW5jdGlvbigpe3ZhciB2PXRoaXMseT1PbChkLmdldEhpZGRlbkNvbHVtbnMoKSxmdW5jdGlvbihpcil7cmV0dXJuIHYudG9QaHlzaWNhbENvbHVtbihpcil9KTtpZighdGhpcy5z''@;'; + put 'put ''ZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkmJiF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8eS5sZW5ndGg8MSlyZXR1cm4hMDtnLmxlbmd0aD0wO3ZhciBDPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxJPUMuZ2V0VG9wU3RhcnRDb3JuZXIoKS5j''@;'; + put 'put ''b2wsaj1DLmdldEJvdHRvbUVuZENvcm5lcigpLmNvbCx1ZT10aGlzLmNvbHVtbkluZGV4TWFwcGVyLF9lPXVlLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoSSksQmU9dWUuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChqKSxOZT11ZS5nZXROb3RUcmltbWVkSW5kZXhlcygpLEtl''@;'; + put 'put ''PVtdO2lmKEkhPT1qKXtpZihqLUkrMT5CZS1fZSsxKXt2YXIgJHQ9TmUuc2xpY2UoSSxqKzEpO0tlLnB1c2guYXBwbHkoS2UsbW5lKCR0LmZpbHRlcihmdW5jdGlvbihpcil7cmV0dXJuIHkuaW5jbHVkZXMoaXIpfSkpKX19ZWxzZSBpZigwPT09X2UmJl9lPEkpS2UucHVzaC5hcHBseShLZSxt''@;'; + put 'put ''bmUoTmUuc2xpY2UoMCxJKSkpO2Vsc2UgaWYobnVsbD09PV9lKUtlLnB1c2guYXBwbHkoS2UsbW5lKE5lLnNsaWNlKDAsdGhpcy5jb3VudENvbHMoKSkpKTtlbHNle3ZhciBmbj10aGlzLmNvdW50Q29scygpLTE7QmU9PT11ZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHVlLmdldE5l''@;'; + put 'put ''YXJlc3ROb3RIaWRkZW5JbmRleChmbiwtMSkpJiZmbj5qJiZLZS5wdXNoLmFwcGx5KEtlLG1uZShOZS5zbGljZShqKzEpKSl9cmV0dXJuIFVyKEtlLGZ1bmN0aW9uKGlyKXtnLnB1c2godi50b1Zpc3VhbENvbHVtbihpcikpfSksMD09PWcubGVuZ3RofX19KHRoaXMpKX19LHtrZXk6Im9uTWFw''@;'; + put 'put ''SW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXtBcnJheS5pc0FycmF5KHc0KHRoaXMsQmcpLmNvbHVtbnMpJiZ0aGlzLmhpZGVDb2x1bW5zKHc0KHRoaXMsQmcpLmNvbHVtbnMpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXtEeih0aGlzLEJnLG51bGwpLER6KHRoaXMsUGcsbnVsbCks''@;'; + put 'put ''ck0oVzkoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRjVlfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMzEwfX1dKSxofShZcyk7ZnVuY3Rpb24g''@;'; + put 'put ''bkllKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gdm5lKGQpe3JldHVybiBmdW5jdGlvbiBYZnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4g''@;'; + put 'put ''SDVlKGQpfShkKXx8ZnVuY3Rpb24gSmZ0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIFFmdChkLGcpe2lmKGQpe2lmKCJzdHJp''@;'; + put 'put ''bmciPT10eXBlb2YgZClyZXR1cm4gSDVlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4g''@;'; + put 'put ''QXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBINWUoZCxnKX19KGQpfHxmdW5jdGlvbiBVZnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3By''@;'; + put 'put ''ZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBINWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVu''@;'; + put 'put ''Z3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBONWUoZCl7cmV0dXJuKE41ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4g''@;'; + put 'put ''dHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uICRmdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcp''@;'; + put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHJJZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2''@;'; + put 'put ''YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGlNKCl7cmV0dXJuIGlNPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIg''@;'; + put 'put ''eT1laHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGlNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBlaHQoZCxnKXtmb3Io''@;'; + put 'put ''OyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVk5KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFY1ZShkLGcpe3JldHVybihWNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5''@;'; + put 'put ''KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiByaHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1ONWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1h''@;'; + put 'put ''eSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGo1ZShkKX1mdW5jdGlvbiBqNWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIp''@;'; + put 'put ''O3JldHVybiBkfWZ1bmN0aW9uIFk5KGQpe3JldHVybihZOT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9uIGlJZShkLGcs''@;'; + put 'put ''aCl7KGZ1bmN0aW9uIG9odChkLGcpe2lmKGcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShkLGcpLGcuc2V0KGQsaCl9ZnVuY3Rpb24gRnAoZCxnKXtyZXR1cm4gZnVu''@;'; + put 'put ''Y3Rpb24gYWh0KGQsZyl7cmV0dXJuIGcuZ2V0P2cuZ2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCxvSWUoZCxnLCJnZXQiKSl9ZnVuY3Rpb24gTHooZCxnLGgpe3JldHVybiBmdW5jdGlvbiBsaHQoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93''@;'; + put 'put ''IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLG9JZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gb0llKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsi''@;'; + put 'put ''IHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQpfXpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVIaWRlUm93cyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckhpZGVSb3dzIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIo''@;'; + put 'put ''ImJlZm9yZVVuaGlkZVJvd3MiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJVbmhpZGVSb3dzIik7dmFyIFo1ZT0iaGlkZGVuUm93cyIsVTk9bmV3IFdlYWtNYXAsRmc9bmV3IFdlYWtNYXAsdWh0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiB0aHQoZCxnKXtpZigiZnVuY3Rpb24i''@;'; + put 'put ''IT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJs''@;'; + put 'put ''ZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmVjVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gbmh0KGQpe3ZhciBnPWZ1bmN0aW9uIGlodCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVj''@;'; + put 'put ''dHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1''@;'; + put 'put ''bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVk5KGQpO2lmKGcpe3ZhciBDPVk5KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVu''@;'; + put 'put ''dHMpO3JldHVybiByaHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXt2YXIgdjskZnQodGhpcyxoKTtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gaUllKGo1ZSh2PWcuY2FsbC5hcHBseShnLFt0''@;'; + put 'put ''aGlzXS5jb25jYXQoQykpKSxVOSx7d3JpdGFibGU6ITAsdmFsdWU6e319KSxpSWUoajVlKHYpLEZnLHt3cml0YWJsZTohMCx2YWx1ZTpudWxsfSksdn1yZXR1cm4gZnVuY3Rpb24gcWZ0KGQsZyxoKXtnJiZySWUoZC5wcm90b3R5cGUsZyksaCYmckllKGQsaCksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbWjVlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO2lmKCF0aGlz''@;'; + put 'put ''LmVuYWJsZWQpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKClbWjVlXTt4bChDKSYmKEx6KHRoaXMsVTksQyksYTEoQy5jb3B5UGFzdGVFbmFibGVkKSYmKEMuY29weVBhc3RlRW5hYmxlZD0hMCkpLEx6KHRoaXMsRmcsbmV3IFdlZSksRnAodGhpcyxGZykuYWRkTG9jYWxIb29rKCJpbml0''@;'; + put 'put ''IixmdW5jdGlvbigpe3JldHVybiB5Lm9uTWFwSW5pdCgpfSksdGhpcy5ob3Qucm93SW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lLEZwKHRoaXMsRmcpKSx0aGlzLmFkZEhvb2soImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''eS5vbkFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucy5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q2VsbE1ldGEiLGZ1bmN0aW9uKEksaix1ZSl7cmV0dXJuIHkub25BZnRlckdldENlbGxNZXRhKEksaix1ZSl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVJv''@;'; + put 'put ''d0hlaWdodCIsZnVuY3Rpb24oSSxqKXtyZXR1cm4geS5vbk1vZGlmeVJvd0hlaWdodChJLGopfSksdGhpcy5hZGRIb29rKCJhZnRlckdldFJvd0hlYWRlciIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyR2V0Um93SGVhZGVyLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygi''@;'; + put 'put ''bW9kaWZ5Q29weWFibGVSYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25Nb2RpZnlDb3B5YWJsZVJhbmdlKEkpfSksaU0oWTkoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMu''@;'; + put 'put ''ZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksaU0oWTkoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LnJvd0luZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAo''@;'; + put 'put ''dGhpcy5wbHVnaW5OYW1lKSxMeih0aGlzLFU5LHt9KSxpTShZOShoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyksdGhpcy5yZXNldENlbGxzTWV0YSgpfX0se2tleToic2hvd1Jvd3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST10aGlzLmdldEhp''@;'; + put 'put ''ZGRlblJvd3MoKSxqPXRoaXMuaXNWYWxpZENvbmZpZyh5KSx1ZT1JLF9lPUZwKHRoaXMsRmcpLmdldFZhbHVlcygpLnNsaWNlKCksQmU9eS5sZW5ndGg+MDtqJiZCZSYmKFVyKHkubWFwKGZ1bmN0aW9uKGR0KXtyZXR1cm4gQy5ob3QudG9QaHlzaWNhbFJvdyhkdCl9KSxmdW5jdGlvbihkdCl7''@;'; + put 'put ''X2VbZHRdPSExfSksdWU9U3UoX2UsZnVuY3Rpb24oZHQsT3QsJHQpe3JldHVybiBPdCYmZHQucHVzaChDLmhvdC50b1Zpc3VhbFJvdygkdCkpLGR0fSxbXSkpLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVVuaGlkZVJvd3MiLEksdWUsaiYmQmUpJiYoaiYmQmUmJkZwKHRoaXMsRmcp''@;'; + put 'put ''LnNldFZhbHVlcyhfZSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyVW5oaWRlUm93cyIsSSx1ZSxqJiZCZSxqJiZ1ZS5sZW5ndGg8SS5sZW5ndGgpKX19LHtrZXk6InNob3dSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoeSksST0w''@;'; + put 'put ''O0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07dGhpcy5zaG93Um93cyhDKX19LHtrZXk6ImhpZGVSb3dzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9dGhpcy5nZXRIaWRkZW5Sb3dzKCksaj10aGlzLmlzVmFsaWRDb25maWcoeSksdWU9STtqJiYodWU9QXJyYXkuZnJvbShuZXcg''@;'; + put 'put ''U2V0KEkuY29uY2F0KHkpKSkpLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUhpZGVSb3dzIixJLHVlLGopJiYoaiYmdGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXtVcih5LGZ1bmN0aW9uKEJlKXtGcChDLEZnKS5zZXRWYWx1ZUF0SW5kZXgoQy5ob3QudG9QaHlzaWNh''@;'; + put 'put ''bFJvdyhCZSksITApfSl9LCEwKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJIaWRlUm93cyIsSSx1ZSxqLGomJnVlLmxlbmd0aD5JLmxlbmd0aCkpfX0se2tleToiaGlkZVJvdyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7''@;'; + put 'put ''STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTt0aGlzLmhpZGVSb3dzKEMpfX0se2tleToiZ2V0SGlkZGVuUm93cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3JldHVybiBPbChGcCh0aGlzLEZnKS5nZXRIaWRkZW5JbmRleGVzKCksZnVuY3Rpb24oQyl7cmV0dXJuIHkuaG90LnRvVmlz''@;'; + put 'put ''dWFsUm93KEMpfSl9fSx7a2V5OiJpc0hpZGRlbiIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIEZwKHRoaXMsRmcpLmdldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsUm93KHkpKXx8ITF9fSx7a2V5OiJpc1ZhbGlkQ29uZmlnIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlz''@;'; + put 'put ''LmhvdC5jb3VudFJvd3MoKTtyZXR1cm4hIShBcnJheS5pc0FycmF5KHkpJiZ5Lmxlbmd0aD4wKSYmeS5ldmVyeShmdW5jdGlvbihJKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihJKSYmST49MCYmSTxDfSl9fSx7a2V5OiJyZXNldENlbGxzTWV0YSIsdmFsdWU6ZnVuY3Rpb24oKXtVcih0aGlz''@;'; + put 'put ''LmhvdC5nZXRDZWxsc01ldGEoKSxmdW5jdGlvbih5KXt5JiYoeS5za2lwUm93T25QYXN0ZT0hMSl9KX19LHtrZXk6Im9uTW9kaWZ5Um93SGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3JldHVybiB0aGlzLmlzSGlkZGVuKEMpPzA6eX19LHtrZXk6Im9uQWZ0ZXJHZXRDZWxsTWV0YSIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oeSxDLEkpe2lmKCExPT09RnAodGhpcyxVOSkuY29weVBhc3RlRW5hYmxlZCYmdGhpcy5pc0hpZGRlbih5KSYmKEkuc2tpcFJvd09uUGFzdGU9ITApLHRoaXMuaXNIaWRkZW4oeS0xKSlJLmNsYXNzTmFtZT1JLmNsYXNzTmFtZXx8IiIsLTE9PT1JLmNsYXNzTmFtZS5pbmRl''@;'; + put 'put ''eE9mKCJhZnRlckhpZGRlblJvdyIpJiYoSS5jbGFzc05hbWUrPSIgYWZ0ZXJIaWRkZW5Sb3ciKTtlbHNlIGlmKEkuY2xhc3NOYW1lKXt2YXIgaj1JLmNsYXNzTmFtZS5zcGxpdCgiICIpO2lmKGoubGVuZ3RoPjApe3ZhciB1ZT1qLmluZGV4T2YoImFmdGVySGlkZGVuUm93Iik7dWU+LTEmJmou''@;'; + put 'put ''c3BsaWNlKHVlLDEpLEkuY2xhc3NOYW1lPWouam9pbigiICIpfX19fSx7a2V5OiJvbk1vZGlmeUNvcHlhYmxlUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7aWYoRnAodGhpcyxVOSkuY29weVBhc3RlRW5hYmxlZClyZXR1cm4geTt2YXIgST1bXSxqPWZ1bmN0aW9uKF9lLEJl''@;'; + put 'put ''LE5lLEtlKXtJLnB1c2goe3N0YXJ0Um93Ol9lLGVuZFJvdzpCZSxzdGFydENvbDpOZSxlbmRDb2w6S2V9KX07cmV0dXJuIFVyKHksZnVuY3Rpb24odWUpe3ZhciBfZT0hMCxCZT0wO2lhKHVlLnN0YXJ0Um93LHVlLmVuZFJvdyxmdW5jdGlvbihOZSl7Qy5pc0hpZGRlbihOZSk/KF9lfHxqKEJl''@;'; + put 'put ''LE5lLTEsdWUuc3RhcnRDb2wsdWUuZW5kQ29sKSxfZT0hMCk6KF9lJiYoQmU9TmUpLE5lPT09dWUuZW5kUm93JiZqKEJlLE5lLHVlLnN0YXJ0Q29sLHVlLmVuZENvbCksX2U9ITEpfSl9KSxJfX0se2tleToib25BZnRlckdldFJvd0hlYWRlciIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtpZihGcCh0''@;'; + put 'put ''aGlzLFU5KS5pbmRpY2F0b3JzJiYhKHk8MCkpe3ZhciBJPVtdO3k+PTEmJnRoaXMuaXNIaWRkZW4oeS0xKSYmSS5wdXNoKCJhZnRlckhpZGRlblJvdyIpLHk8dGhpcy5ob3QuY291bnRSb3dzKCktMSYmdGhpcy5pc0hpZGRlbih5KzEpJiZJLnB1c2goImJlZm9yZUhpZGRlblJvdyIpLE8wKEMs''@;'; + put 'put ''SSl9fX0se2tleToib25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3kuaXRlbXMucHVzaCh7bmFtZTpXbH0sZnVuY3Rpb24gWWZ0KGQpe3JldHVybntrZXk6ImhpZGRlbl9yb3dzX2hpZGUiLG5hbWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFNl''@;'; + put 'put ''bGVjdGVkTGFzdCgpLHY9MDtpZihBcnJheS5pc0FycmF5KGgpKXt2YXIgeT1mdW5jdGlvbiBqZnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gV2Z0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBHZnQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5l''@;'; + put 'put ''ZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9''@;'; + put 'put ''PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiB6ZnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJu''@;'; + put 'put ''IG5JZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFy''@;'; + put 'put ''Z3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gbkllKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBaZnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJh''@;'; + put 'put ''YmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShoLDMpO3lbMF0teVsyXSE9MCYmKHY9MSl9cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShscGUs''@;'; + put 'put ''dil9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSx2PWguZnJvbSx5PWgudG8sQz1NYXRoLm1heChNYXRoLm1pbih2LnJvdyx5LnJvdyksMCksST1NYXRoLm1heCh2LnJvdyx5LnJvdyksaj1bXSx1ZT1DO3VlPD1JO3VlKz0xKWoucHVz''@;'; + put 'put ''aCh1ZSk7ZC5oaWRlUm93cyhqKTt2YXIgQmU9dGhpcy5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoaltqLmxlbmd0aC0xXSwxLCEwKTtOdW1iZXIuaXNJbnRlZ2VyKEJlKSYmQmU+PTA/dGhpcy5zZWxlY3RSb3dzKEJlKTp0aGlzLmRlc2VsZWN0Q2VsbCgpLHRoaXMu''@;'; + put 'put ''cmVuZGVyKCksdGhpcy52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9LGRpc2FibGVkOiExLGhpZGRlbjpmdW5jdGlvbigpe3JldHVybiEodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCl8fHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpKX19fSh0aGlz''@;'; + put 'put ''KSxmdW5jdGlvbiBLZnQoZCl7dmFyIGc9W107cmV0dXJue2tleToiaGlkZGVuX3Jvd3Nfc2hvdyIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2Uoc3BlLGcubGVuZ3RoPjE/MTowKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgdix5O2lmKDAhPT1nLmxl''@;'; + put 'put ''bmd0aCl7dmFyIEM9Z1swXSxJPWdbZy5sZW5ndGgtMV07Qz1udWxsIT09KHY9dGhpcy5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoQy0xLC0xKSkmJnZvaWQgMCE9PXY/djowLEk9bnVsbCE9PSh5PXRoaXMucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRl''@;'; + put 'put ''bkluZGV4KEkrMSwxKSkmJnZvaWQgMCE9PXk/eTp0aGlzLmNvdW50Um93cygpLTEsZC5zaG93Um93cyhnKSx0aGlzLnJlbmRlcigpLHRoaXMudmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApLEktQysxPT09dGhpcy5jb3VudFJvd3MoKXx8dGhpcy5zZWxlY3RSb3dzKEMsSSl9fSxkaXNhYmxl''@;'; + put 'put ''ZDohMSxoaWRkZW46ZnVuY3Rpb24oKXt2YXIgdj10aGlzLHk9T2woZC5nZXRIaWRkZW5Sb3dzKCksZnVuY3Rpb24oaXIpe3JldHVybiB2LnRvUGh5c2ljYWxSb3coaXIpfSk7aWYoIXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpJiYhdGhpcy5zZWxlY3Rpb24uaXNTZWxl''@;'; + put 'put ''Y3RlZEJ5Q29ybmVyKCl8fHkubGVuZ3RoPDEpcmV0dXJuITA7Zy5sZW5ndGg9MDt2YXIgQz10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksST1DLmdldFRvcFN0YXJ0Q29ybmVyKCkucm93LGo9Qy5nZXRCb3R0b21FbmRDb3JuZXIoKS5yb3csdWU9dGhpcy5yb3dJbmRleE1hcHBlcixfZT11''@;'; + put 'put ''ZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEkpLEJlPXVlLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoaiksTmU9dWUuZ2V0Tm90VHJpbW1lZEluZGV4ZXMoKSxLZT1bXTtpZihJIT09ail7aWYoai1JKzE+QmUtX2UrMSl7dmFyICR0PU5lLnNsaWNlKEksaisxKTtLZS5wdXNo''@;'; + put 'put ''LmFwcGx5KEtlLHZuZSgkdC5maWx0ZXIoZnVuY3Rpb24oaXIpe3JldHVybiB5LmluY2x1ZGVzKGlyKX0pKSl9fWVsc2UgaWYoMD09PV9lJiZfZTxJKUtlLnB1c2guYXBwbHkoS2Usdm5lKE5lLnNsaWNlKDAsSSkpKTtlbHNlIGlmKG51bGw9PT1fZSlLZS5wdXNoLmFwcGx5KEtlLHZuZShOZS5z''@;'; + put 'put ''bGljZSgwLHRoaXMuY291bnRSb3dzKCkpKSk7ZWxzZXt2YXIgZm49dGhpcy5jb3VudFJvd3MoKS0xO0JlPT09dWUuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleCh1ZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoZm4sLTEpKSYmZm4+aiYmS2UucHVzaC5hcHBseShLZSx2bmUoTmUuc2xp''@;'; + put 'put ''Y2UoaisxKSkpfXJldHVybiBVcihLZSxmdW5jdGlvbihpcil7Zy5wdXNoKHYudG9WaXN1YWxSb3coaXIpKX0pLDA9PT1nLmxlbmd0aH19fSh0aGlzKSl9fSx7a2V5OiJvbk1hcEluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7QXJyYXkuaXNBcnJheShGcCh0aGlzLFU5KS5yb3dzKSYmdGhpcy5oaWRl''@;'; + put 'put ''Um93cyhGcCh0aGlzLFU5KS5yb3dzKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7THoodGhpcyxVOSxudWxsKSxMeih0aGlzLEZnLG51bGwpLGlNKFk5KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIFo1ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDMyMH19XSksaH0oWXMpO2Z1bmN0aW9uIGFJZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8''@;'; + put 'put ''ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIGxJZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHo1ZShkKXtyZXR1cm4oejVlPSJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1i''@;'; + put 'put ''b2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gc0llKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxl''@;'; + put 'put ''PSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gV08oKXtyZXR1cm4gV089InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PWtodChnLGgpO2lmKHkpe3ZhciBD''@;'; + put 'put ''PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sV08uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGtodChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFz''@;'; + put 'put ''T3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9encoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gRzVlKGQsZyl7cmV0dXJuKEc1ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15''@;'; + put 'put ''LHZ9KShkLGcpfWZ1bmN0aW9uIEVodChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXo1ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBv''@;'; + put 'put ''ciB1bmRlZmluZWQiKTtyZXR1cm4gdUllKGQpfWZ1bmN0aW9uIHVJZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24genco''@;'; + put 'put ''ZCl7cmV0dXJuKHp3PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9em8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZUNvbHVt''@;'; + put 'put ''bkZyZWV6ZSIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbHVtbkZyZWV6ZSIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVDb2x1bW5VbmZyZWV6ZSIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbHVtblVuZnJlZXplIik7dmFyIGNJ''@;'; + put 'put ''ZT0ibWFudWFsQ29sdW1uRnJlZXplIixPej1uZXcgV2Vha01hcCxJaHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFNodChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwg''@;'; + put 'put ''b3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZH''@;'; + put 'put ''NWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBNaHQoZCl7dmFyIGc9ZnVuY3Rpb24geGh0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFBy''@;'; + put 'put ''b3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9encoZCk7aWYoZyl7dmFy''@;'; + put 'put ''IEM9encodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEVodCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gX2h0KGQsZyl7aWYoIShk''@;'; + put 'put ''IGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCkseT1nLmNhbGwodGhpcyx2KSxPei5zZXQodUllKHkpLHthZnRlckZpcnN0VXNlOiExfSkseX1yZXR1cm4gZnVuY3Rpb24gQ2h0KGQsZyxoKXtnJiZz''@;'; + put 'put ''SWUoZC5wcm90b3R5cGUsZyksaCYmc0llKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbY0llXX19LHtrZXk6ImVu''@;'; + put 'put ''YWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixmdW5jdGlvbihDKXtyZXR1cm4geS5hZGRDb250ZXh0TWVudUVudHJ5KEMpfSksdGhpcy5hZGRIb29rKCJiZWZv''@;'; + put 'put ''cmVDb2x1bW5Nb3ZlIixmdW5jdGlvbihDLEkpe3JldHVybiB5Lm9uQmVmb3JlQ29sdW1uTW92ZShDLEkpfSksV08oencoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXtPei5nZXQodGhp''@;'; + put 'put ''cykuYWZ0ZXJGaXJzdFVzZT0hMSxXTyh6dyhoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxXTyh6dyhoLnByb3Rv''@;'; + put 'put ''dHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImZyZWV6ZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9T3ouZ2V0KHRoaXMpLEk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKSxqPUkuZml4ZWRDb2x1bW5zU3RhcnQ8dGhpcy5ob3QuY291bnRDb2xzKCkm''@;'; + put 'put ''Jnk+SS5maXhlZENvbHVtbnNTdGFydC0xO0MuYWZ0ZXJGaXJzdFVzZXx8KEMuYWZ0ZXJGaXJzdFVzZT0hMCksITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ29sdW1uRnJlZXplIix5LGopJiYoaiYmKHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLm1vdmVJbmRleGVzKHksSS5maXhl''@;'; + put 'put ''ZENvbHVtbnNTdGFydCksSS5fZml4ZWRDb2x1bW5zU3RhcnQrPTEpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvbHVtbkZyZWV6ZSIseSxqKSl9fSx7a2V5OiJ1bmZyZWV6ZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9T3ouZ2V0KHRoaXMpLEk9dGhpcy5ob3QuZ2V0U2V0dGlu''@;'; + put 'put ''Z3MoKSxqPUkuZml4ZWRDb2x1bW5zU3RhcnQ+MCYmeTw9SS5maXhlZENvbHVtbnNTdGFydC0xO0MuYWZ0ZXJGaXJzdFVzZXx8KEMuYWZ0ZXJGaXJzdFVzZT0hMCksITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ29sdW1uVW5mcmVlemUiLHksaikmJihqJiYoSS5fZml4ZWRDb2x1bW5z''@;'; + put 'put ''U3RhcnQtPTEsdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIubW92ZUluZGV4ZXMoeSxJLmZpeGVkQ29sdW1uc1N0YXJ0KSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29sdW1uVW5mcmVlemUiLHksaikpfX0se2tleToiYWRkQ29udGV4dE1lbnVFbnRyeSIsdmFsdWU6ZnVuY3Rpb24oeSl7''@;'; + put 'put ''eS5pdGVtcy5wdXNoKHtuYW1lOiItLS0tLS0tLS0ifSxmdW5jdGlvbiBnaHQoZCl7cmV0dXJue2tleToiZnJlZXplX2NvbHVtbiIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoQjRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oaCx2KXt2YXIgeT1mdW5jdGlv''@;'; + put 'put ''biBjaHQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gcGh0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBkaHQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRv''@;'; + put 'put ''ciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxs''@;'; + put 'put ''IT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBoaHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGFJZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5z''@;'; + put 'put ''bGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0Fy''@;'; + put 'put ''cmF5JC8udGVzdChoKSlyZXR1cm4gYUllKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBmaHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBv''@;'; + put 'put ''YmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfSh2LDEpO2QuZnJlZXplQ29sdW1uKHlbMF0uc3RhcnQuY29sKSx0aGlzLnJlbmRlcigpLHRoaXMudmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApfSxoaWRkZW46ZnVuY3Rpb24oKXt2YXIgaD10aGlz''@;'; + put 'put ''LmdldFNlbGVjdGVkUmFuZ2UoKSx2PSExO3JldHVybih2b2lkIDA9PT1ofHxoLmxlbmd0aD4xfHxoWzBdLmZyb20uY29sIT09aFswXS50by5jb2x8fGhbMF0uZnJvbS5jb2w8PXRoaXMuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydC0xKSYmKHY9ITApLHZ9fX0odGhpcyksZnVuY3Rp''@;'; + put 'put ''b24gYmh0KGQpe3JldHVybntrZXk6InVuZnJlZXplX2NvbHVtbiIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoUDRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oaCx2KXt2YXIgeT1mdW5jdGlvbiBtaHQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gd2h0KGQpe2lm''@;'; + put 'put ''KEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiB5aHQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9''@;'; + put 'put ''ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMp''@;'; + put 'put ''dGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBBaHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGxJZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3Ry''@;'; + put 'put ''dWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gbEllKGQsZyl9fShkLGcp''@;'; + put 'put ''fHxmdW5jdGlvbiB2aHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3Jd''@;'; + put 'put ''KCkgbWV0aG9kLiIpfSgpfSh2LDEpO2QudW5mcmVlemVDb2x1bW4oeVswXS5zdGFydC5jb2wpLHRoaXMucmVuZGVyKCksdGhpcy52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9LGhpZGRlbjpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLHY9ITE7cmV0dXJuKHZv''@;'; + put 'put ''aWQgMD09PWh8fGgubGVuZ3RoPjF8fGhbMF0uZnJvbS5jb2whPT1oWzBdLnRvLmNvbHx8aFswXS5mcm9tLmNvbD49dGhpcy5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0KSYmKHY9ITApLHZ9fX0odGhpcykpfX0se2tleToib25CZWZvcmVDb2x1bW5Nb3ZlIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bih5LEMpe2lmKE96LmdldCh0aGlzKS5hZnRlckZpcnN0VXNlKXt2YXIgaj10aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0O2lmKEM8anx8eS5zb21lKGZ1bmN0aW9uKHVlKXtyZXR1cm4gdWU8an0pKXJldHVybiExfX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIGNJZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDExMH19XSksaH0oWXMpO2Z1bmN0aW9uIGZJZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8''@;'; + put 'put ''fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBZTz0icHgiLE9odD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIERodChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcp''@;'; + put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmhvdD1nLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLnN0YXRlPTAsdGhpcy5pbmxpbmVQcm9wZXJ0eT1nLmlzUnRsKCk/InJpZ2h0IjoibGVmdCJ9cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uIExodChkLGcsaCl7ZyYmZkllKGQucHJvdG90eXBlLGcpLGgmJmZJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJhcHBlbmRUbyIsdmFsdWU6ZnVuY3Rpb24oaCl7aC5hcHBlbmRDaGlsZCh0aGlzLl9lbGVt''@;'; + put 'put ''ZW50KSx0aGlzLnN0YXRlPTJ9fSx7a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXswPT09dGhpcy5zdGF0ZSYmKHRoaXMuX2VsZW1lbnQ9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuc3RhdGU9MSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbigpe3RoaXMuaXNBcHBlbmRlZCgpJiZ0aGlzLl9lbGVtZW50LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fZWxlbWVudCksdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuc3RhdGU9MH19LHtrZXk6ImlzQXBwZW5kZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDI9PT10aGlz''@;'; + put 'put ''LnN0YXRlfX0se2tleToiaXNCdWlsdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZT49MX19LHtrZXk6InNldFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbihoLHYpe3Y0KGgpJiYodGhpcy5fZWxlbWVudC5zdHlsZS50b3A9aCtZTyksdjQodikmJih0aGlzLl9lbGVtZW50LnN0''@;'; + put 'put ''eWxlW3RoaXMuaW5saW5lUHJvcGVydHldPXYrWU8pfX0se2tleToiZ2V0UG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5fZWxlbWVudC5zdHlsZTtyZXR1cm57dG9wOmgudG9wP3BhcnNlSW50KGgudG9wLDEwKTowLHN0YXJ0OmhbdGhpcy5pbmxpbmVQcm9wZXJ0eV0/cGFy''@;'; + put 'put ''c2VJbnQoaFt0aGlzLmlubGluZVByb3BlcnR5XSwxMCk6MH19fSx7a2V5OiJzZXRTaXplIix2YWx1ZTpmdW5jdGlvbihoLHYpe3Y0KGgpJiYodGhpcy5fZWxlbWVudC5zdHlsZS53aWR0aD1oK1lPKSx2NCh2KSYmKHRoaXMuX2VsZW1lbnQuc3R5bGUuaGVpZ2h0PXYrWU8pfX0se2tleToiZ2V0''@;'; + put 'put ''U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57d2lkdGg6dGhpcy5fZWxlbWVudC5zdHlsZS53aWR0aD9wYXJzZUludCh0aGlzLl9lbGVtZW50LnN0eWxlLndpZHRoLDEwKTowLGhlaWdodDp0aGlzLl9lbGVtZW50LnN0eWxlLmhlaWdodD9wYXJzZUludCh0aGlzLl9lbGVtZW50LnN0eWxl''@;'; + put 'put ''LmhlaWdodCwxMCk6MH19fSx7a2V5OiJzZXRPZmZzZXQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7djQoaCkmJih0aGlzLl9lbGVtZW50LnN0eWxlLm1hcmdpblRvcD1oK1lPKSx2NCh2KSYmKHRoaXMuX2VsZW1lbnQuc3R5bGVbIm1hcmdpbiIuY29uY2F0KGFkKHRoaXMuaW5saW5lUHJvcGVydHkp''@;'; + put 'put ''KV09ditZTyl9fSx7a2V5OiJnZXRPZmZzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5fZWxlbWVudC5zdHlsZSx2PSJtYXJnaW4iLmNvbmNhdChhZCh0aGlzLmlubGluZVByb3BlcnR5KSk7cmV0dXJue3RvcDpoLm1hcmdpblRvcD9wYXJzZUludChoLm1hcmdpblRvcCwxMCk6MCxz''@;'; + put 'put ''dGFydDpoW3ZdP3BhcnNlSW50KGhbdl0sMTApOjB9fX1dKSxkfSgpO2NvbnN0IHBJZT1PaHQ7ZnVuY3Rpb24gWTVlKGQpe3JldHVybihZNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVv''@;'; + put 'put ''ZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBSaHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJv''@;'; + put 'put ''dyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBnSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUi''@;'; + put 'put ''aW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBBbmUoKXtyZXR1cm4gQW5lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1Q''@;'; + put 'put ''aHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LEFuZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUGh0KGQsZyl7Zm9yKDsh''@;'; + put 'put ''T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1VTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBVNWUoZCxnKXtyZXR1cm4oVTVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7''@;'; + put 'put ''cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gTmh0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09WTVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkg''@;'; + put 'put ''b25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBWaHQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBk''@;'; + put 'put ''fShkKX1mdW5jdGlvbiBVTyhkKXtyZXR1cm4oVU89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgemh0PWZ1bmN0aW9uKGQpeyFm''@;'; + put 'put ''dW5jdGlvbiBGaHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBl''@;'; + put 'put ''LHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmVTVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gSGh0KGQpe3ZhciBnPWZ1bmN0aW9uIGpodCgp''@;'; + put 'put ''e2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChS''@;'; + put 'put ''ZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVVPKGQpO2lmKGcpe3ZhciBDPVVPKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMs''@;'; + put 'put ''Qyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBOaHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gUmh0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uIEJodChkLGcsaCl7ZyYmZ0llKGQucHJvdG90eXBlLGcpLGgm''@;'; + put 'put ''JmdJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXtBbmUoVU8oaC5wcm90b3R5cGUpLCJidWlsZCIsdGhpcykuY2FsbCh0aGlzKSxPMCh0aGlzLl9lbGVtZW50LCJodF9fbWFu''@;'; + put 'put ''dWFsQ29sdW1uTW92ZS0tYmFja2xpZ2h0Iil9fV0pLGh9KHBJZSk7Y29uc3QgR2h0PXpodDtmdW5jdGlvbiBRNWUoZCl7cmV0dXJuKFE1ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9m''@;'; + put 'put ''IGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFdodChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93''@;'; + put 'put ''IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIG1JZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJp''@;'; + put 'put ''biB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIHluZSgpe3JldHVybiB5bmU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PVVo''@;'; + put 'put ''dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0seW5lLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBVaHQoZCxnKXtmb3IoOyFP''@;'; + put 'put ''YmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVFPKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIEo1ZShkLGcpe3JldHVybihKNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXty''@;'; + put 'put ''ZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBYaHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1RNWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBv''@;'; + put 'put ''bmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIEtodChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9''@;'; + put 'put ''KGQpfWZ1bmN0aW9uIFFPKGQpe3JldHVybihRTz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBlM3Q9ZnVuY3Rpb24oZCl7IWZ1''@;'; + put 'put ''bmN0aW9uIFFodChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUs''@;'; + put 'put ''e2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZKNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBKaHQoZCl7dmFyIGc9ZnVuY3Rpb24gJGh0KCl7''@;'; + put 'put ''aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJl''@;'; + put 'put ''ZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9UU8oZCk7aWYoZyl7dmFyIEM9UU8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxD''@;'; + put 'put ''KX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFhodCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBXaHQodGhpcyxoKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24gWWh0KGQsZyxoKXtnJiZtSWUoZC5wcm90b3R5cGUsZyksaCYm''@;'; + put 'put ''bUllKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImJ1aWxkIix2YWx1ZTpmdW5jdGlvbigpe3luZShRTyhoLnByb3RvdHlwZSksImJ1aWxkIix0aGlzKS5jYWxsKHRoaXMpLE8wKHRoaXMuX2VsZW1lbnQsImh0X19tYW51''@;'; + put 'put ''YWxDb2x1bW5Nb3ZlLS1ndWlkZWxpbmUiKX19XSksaH0ocEllKTtjb25zdCB0M3Q9ZTN0O2Z1bmN0aW9uIFg1ZShkKXtyZXR1cm4oWDVlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2Yg''@;'; + put 'put ''Z306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gdkllKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKysp''@;'; + put 'put ''e3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gb00oKXtyZXR1cm4gb009InVuZGVmaW5lZCIhPXR5cGVv''@;'; + put 'put ''ZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PWkzdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/''@;'; + put 'put ''Zzp2KTpDLnZhbHVlfX0sb00uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGkzdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9UTkoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gSzVlKGQsZyl7cmV0dXJuKEs1ZT1P''@;'; + put 'put ''YmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGwzdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVg1ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVy''@;'; + put 'put ''biBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gJDVlKGQpfWZ1bmN0aW9uICQ1ZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJv''@;'; + put 'put ''cigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gUTkoZCl7cmV0dXJuKFE5PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVy''@;'; + put 'put ''biBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9em8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZUNvbHVtbk1vdmUiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDb2x1bW5Nb3ZlIik7dmFyIHE1ZT0ibWFudWFsQ29sdW1uTW92ZSIs''@;'; + put 'put ''R3c9bmV3IFdlYWtNYXAsQUllPSJodF9fbWFudWFsQ29sdW1uTW92ZSIsd25lPSJzaG93LXVpIixlZ2U9Im9uLW1vdmluZy0tY29sdW1ucyIsdGdlPSJhZnRlci1zZWxlY3Rpb24tLWNvbHVtbnMiLGMzdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gbzN0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlw''@;'; + put 'put ''ZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAs''@;'; + put 'put ''Y29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJks1ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGEzdChkKXt2YXIgZz1mdW5jdGlvbiBzM3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFS''@;'; + put 'put ''ZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlv''@;'; + put 'put ''bigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1ROShkKTtpZihnKXt2YXIgQz1ROSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTty''@;'; + put 'put ''ZXR1cm4gbDN0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBuM3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSx5PWcuY2FsbCh0''@;'; + put 'put ''aGlzLHYpLEd3LnNldCgkNWUoeSkse2NvbHVtbnNUb01vdmU6W10sY291bnRDb2xzOjAsZml4ZWRDb2x1bW5zOjAscHJlc3NlZDp2b2lkIDAsdGFyZ2V0OntldmVudFBhZ2VYOnZvaWQgMCxjb29yZHM6dm9pZCAwLFREOnZvaWQgMCxjb2w6dm9pZCAwfSxjYWNoZWREcm9wSW5kZXg6dm9pZCAw''@;'; + put 'put ''fSkseS5ldmVudE1hbmFnZXI9bmV3IEwxKCQ1ZSh5KSkseS5iYWNrbGlnaHQ9bmV3IEdodCh2KSx5Lmd1aWRlbGluZT1uZXcgdDN0KHYpLHl9cmV0dXJuIGZ1bmN0aW9uIHIzdChkLGcsaCl7ZyYmdkllKGQucHJvdG90eXBlLGcpLGgmJnZJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShk''@;'; + put 'put ''LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3E1ZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8''@;'; + put 'put ''fCh0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlRG93biIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZU9uQ2VsbE1vdXNlRG93bi5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJl''@;'; + put 'put ''Zm9yZU9uQ2VsbE1vdXNlT3Zlci5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyU2Nyb2xsVmVydGljYWxseSgpfSksdGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiB5Lm9uQWZ0ZXJMb2FkRGF0YS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmJ1aWxkUGx1Z2luVUkoKSx0aGlzLnJlZ2lzdGVyRXZlbnRzKCksTzAodGhpcy5ob3Qucm9vdEVsZW1lbnQsQUllKSxvTShROShoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0''@;'; + put 'put ''aGlzKSl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSx0aGlzLm1vdmVCeVNldHRpbmdzT3JMb2FkKCksb00oUTkoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9''@;'; + put 'put ''fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3BsKHRoaXMuaG90LnJvb3RFbGVtZW50LEFJZSksdGhpcy51bnJlZ2lzdGVyRXZlbnRzKCksdGhpcy5iYWNrbGlnaHQuZGVzdHJveSgpLHRoaXMuZ3VpZGVsaW5lLmRlc3Ryb3koKSxvTShROShoLnByb3RvdHlwZSksImRp''@;'; + put 'put ''c2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJtb3ZlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbih5LEMpe3JldHVybiB0aGlzLm1vdmVDb2x1bW5zKFt5XSxDKX19LHtrZXk6Im1vdmVDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPUd3LmdldCh0aGlzKSxqPUku''@;'; + put 'put ''Y2FjaGVkRHJvcEluZGV4LHVlPXRoaXMuaXNNb3ZlUG9zc2libGUoeSxDKSxfZT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ29sdW1uTW92ZSIseSxDLGosdWUpO2lmKEkuY2FjaGVkRHJvcEluZGV4PXZvaWQgMCwhMSE9PV9lKXt1ZSYmdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIubW92''@;'; + put 'put ''ZUluZGV4ZXMoeSxDKTt2YXIgQmU9dWUmJnRoaXMuaXNDb2x1bW5PcmRlckNoYW5nZWQoeSxDKTtyZXR1cm4gdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29sdW1uTW92ZSIseSxDLGosdWUsQmUpLEJlfX19LHtrZXk6ImRyYWdDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuZHJhZ0NvbHVtbnMoW3ldLEMpfX0se2tleToiZHJhZ0NvbHVtbnMiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcy5jb3VudEZpbmFsSW5kZXgoeSxDKTtyZXR1cm4gR3cuZ2V0KHRoaXMpLmNhY2hlZERyb3BJbmRleD1DLHRoaXMubW92ZUNvbHVtbnMoeSxJKX19LHtrZXk6Imlz''@;'; + put 'put ''TW92ZVBvc3NpYmxlIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE5vdFRyaW1tZWRJbmRleGVzTGVuZ3RoKCksaj15Lmxlbmd0aCtDPkksdWU9QzwwLF9lPXkuc29tZShmdW5jdGlvbihOZSl7cmV0dXJuIE5lPDB9KSxCZT15LnNvbWUo''@;'; + put 'put ''ZnVuY3Rpb24oTmUpe3JldHVybiBOZT49SX0pO3JldHVybiEoanx8dWV8fF9lfHxCZSl9fSx7a2V5OiJpc0NvbHVtbk9yZGVyQ2hhbmdlZCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtyZXR1cm4geS5zb21lKGZ1bmN0aW9uKEksail7cmV0dXJuIEktaiE9PUN9KX19LHtrZXk6ImNvdW50RmluYWxJ''@;'; + put 'put ''bmRleCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1TdSh5LGZ1bmN0aW9uKGosdWUpe3JldHVybiB1ZTxDJiYoais9MSksan0sMCk7cmV0dXJuIEMtSX19LHtrZXk6ImdldENvbHVtbnNXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtmb3IodmFyIEk9dGhpcy5ob3QuY29sdW1uSW5kZXhN''@;'; + put 'put ''YXBwZXIsaj0wLHVlPXk7dWU8PUM7dWUrPTEpe3ZhciBfZT1JLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgodWUpO3VlPDA/ais9dGhpcy5ob3Qudmlldy5fd3Qud3RWaWV3cG9ydC5nZXRSb3dIZWFkZXJXaWR0aCgpfHwwOm51bGwhPT1fZSYmKGorPXRoaXMuaG90LnZpZXcuX3d0Lnd0''@;'; + put 'put ''VGFibGUuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoX2UpfHwwKX1yZXR1cm4gan19LHtrZXk6Im1vdmVCeVNldHRpbmdzT3JMb2FkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNldHRpbmdzKClbcTVlXTtpZihBcnJheS5pc0FycmF5KHkpKXRoaXMubW92ZUNvbHVtbnMo''@;'; + put 'put ''eSwwKTtlbHNlIGlmKHZvaWQgMCE9PXkpe3ZhciBDPXRoaXMucGVyc2lzdGVudFN0YXRlTG9hZCgpO0MubGVuZ3RoJiZ0aGlzLm1vdmVDb2x1bW5zKEMsMCl9fX0se2tleToiaXNGaXhlZENvbHVtbnNTdGFydCIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHk8dGhpcy5ob3QuZ2V0U2V0dGlu''@;'; + put 'put ''Z3MoKS5maXhlZENvbHVtbnNTdGFydH19LHtrZXk6InBlcnNpc3RlbnRTdGF0ZVNhdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZVNhdmUiLCJtYW51YWxDb2x1bW5Nb3ZlIix0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRJbmRleGVz''@;'; + put 'put ''U2VxdWVuY2UoKSl9fSx7a2V5OiJwZXJzaXN0ZW50U3RhdGVMb2FkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXt9O3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlTG9hZCIsIm1hbnVhbENvbHVtbk1vdmUiLHkpLHkudmFsdWU/eS52YWx1ZTpbXX19LHtrZXk6InBy''@;'; + put 'put ''ZXBhcmVDb2x1bW5zVG9Nb3ZpbmciLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9W107cmV0dXJuIGlhKHksQyxmdW5jdGlvbihqKXtJLnB1c2goail9KSxJfX0se2tleToicmVmcmVzaFBvc2l0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1Hdy5nZXQodGhpcyksQz10aGlzLmhvdC52''@;'; + put 'put ''aWV3LmdldEZpcnN0RnVsbHlWaXNpYmxlQ29sdW1uKCk7dGhpcy5pc0ZpeGVkQ29sdW1uc1N0YXJ0KHkuaG92ZXJlZENvbHVtbikmJkM+MCYmdGhpcy5ob3Quc2Nyb2xsVmlld3BvcnRUbyh2b2lkIDAsdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4''@;'; + put 'put ''KEMtMSwtMSkpO3ZhciBJPXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUsaj10aGlzLmhvdC52aWV3Ll93dC53dE92ZXJsYXlzLnNjcm9sbGFibGVFbGVtZW50LHVlPSJudW1iZXIiPT10eXBlb2Ygai5zY3JvbGxYP2ouc2Nyb2xsWDpqLnNjcm9sbExlZnQsX2U9dGhpcy5ob3Qudmlldy5USEVB''@;'; + put 'put ''RC5vZmZzZXRMZWZ0K3RoaXMuZ2V0Q29sdW1uc1dpZHRoKDAseS5ob3ZlcmVkQ29sdW1uLTEpLEJlPUkuaGlkZXIub2Zmc2V0V2lkdGgsTmU9SS5UQk9EWS5vZmZzZXRMZWZ0LEtlPXRoaXMuYmFja2xpZ2h0LmdldE9mZnNldCgpLnN0YXJ0LGR0PXRoaXMuYmFja2xpZ2h0LmdldFNpemUoKS53''@;'; + put 'put ''aWR0aCxPdD0wLCR0PTA7aWYodGhpcy5ob3QuaXNSdGwoKSl7dmFyIGZuPXRoaXMuaG90LnJvb3RXaW5kb3csTG49RTIodGhpcy5ob3Qucm9vdEVsZW1lbnQpOyR0PWZuLmlubmVyV2lkdGgteS50YXJnZXQuZXZlbnRQYWdlWC0oZm4uaW5uZXJXaWR0aC15LnJvb3RFbGVtZW50T2Zmc2V0LUxu''@;'; + put 'put ''KS0odm9pZCAwPT09ai5zY3JvbGxYP3VlOjApfWVsc2UgJHQ9eS50YXJnZXQuZXZlbnRQYWdlWC0oeS5yb290RWxlbWVudE9mZnNldC0odm9pZCAwPT09ai5zY3JvbGxYP3VlOjApKTt5Lmhhc1Jvd0hlYWRlcnMmJihPdD10aGlzLmhvdC52aWV3Ll93dC53dE92ZXJsYXlzLmlubGluZVN0YXJ0''@;'; + put 'put ''T3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENvbHVtbkhlYWRlcigtMSkub2Zmc2V0V2lkdGgpLHRoaXMuaXNGaXhlZENvbHVtbnNTdGFydCh5LmhvdmVyZWRDb2x1bW4pJiYoX2UrPXVlKSxfZSs9T3QseS5ob3ZlcmVkQ29sdW1uPDA/eS50YXJnZXQuY29sPXkuZml4ZWRDb2x1bW5zU3RhcnQ+''@;'; + put 'put ''MD8wOkM+MD9DLTE6Qzp5LnRhcmdldC5URC5vZmZzZXRXaWR0aC8yK19lPD0kdD8oeS50YXJnZXQuY29sPSh5LmhvdmVyZWRDb2x1bW4+PXkuY291bnRDb2xzP3kuY291bnRDb2xzLTE6eS5ob3ZlcmVkQ29sdW1uKSsxLF9lKz15LnRhcmdldC5URC5vZmZzZXRXaWR0aCk6eS50YXJnZXQuY29s''@;'; + put 'put ''PXkuaG92ZXJlZENvbHVtbjt2YXIgU3I9JHQsd3I9X2U7JHQrZHQrS2U+PUJlP1NyPUJlLWR0LUtlOiR0K0tlPE5lK090JiYoU3I9TmUrT3QrTWF0aC5hYnMoS2UpKSxfZT49QmUtMT93cj1CZS0xOjA9PT13cj93cj0xOnZvaWQgMCE9PWouc2Nyb2xsWCYmeS5ob3ZlcmVkQ29sdW1uPHkuZml4''@;'; + put 'put ''ZWRDb2x1bW5zU3RhcnQmJih3ci09eS5yb290RWxlbWVudE9mZnNldDw9ai5zY3JvbGxYP3kucm9vdEVsZW1lbnRPZmZzZXQ6MCksdGhpcy5iYWNrbGlnaHQuc2V0UG9zaXRpb24obnVsbCxTciksdGhpcy5ndWlkZWxpbmUuc2V0UG9zaXRpb24obnVsbCx3cil9fSx7a2V5OiJyZWdpc3RlckV2''@;'; + put 'put ''ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9dGhpcy5ob3Qucm9vdERvY3VtZW50LmRvY3VtZW50RWxlbWVudDt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlbW92ZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25Nb3VzZU1vdmUoSSl9KSx0aGlz''@;'; + put 'put ''LmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNldXAiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25Nb3VzZVVwKCl9KX19LHtrZXk6InVucmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ldmVudE1hbmFnZXIuY2xlYXIoKX19LHtrZXk6Im9uQmVmb3JlT25D''@;'; + put 'put ''ZWxsTW91c2VEb3duIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqKXt2YXIgdWU9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZSxfZT10aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCksQmU9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxOZT1Hdy5nZXQo''@;'; + put 'put ''dGhpcyksS2U9dGwoeS50YXJnZXQsInNvcnRBY3Rpb24iKTtpZighQmV8fCFfZXx8TmUucHJlc3NlZHx8MCE9PXkuYnV0dG9ufHxLZSlyZXR1cm4gTmUucHJlc3NlZD0hMSxOZS5jb2x1bW5zVG9Nb3ZlLmxlbmd0aD0wLHZvaWQgcGwodGhpcy5ob3Qucm9vdEVsZW1lbnQsW2VnZSx3bmVdKTt2''@;'; + put 'put ''YXIgZHQ9dGhpcy5ndWlkZWxpbmUuaXNCdWlsdCgpJiYhdGhpcy5ndWlkZWxpbmUuaXNBcHBlbmRlZCgpLE90PXRoaXMuYmFja2xpZ2h0LmlzQnVpbHQoKSYmIXRoaXMuYmFja2xpZ2h0LmlzQXBwZW5kZWQoKTtkdCYmT3QmJih0aGlzLmd1aWRlbGluZS5hcHBlbmRUbyh1ZS5oaWRlciksdGhp''@;'; + put 'put ''cy5iYWNrbGlnaHQuYXBwZW5kVG8odWUuaGlkZXIpKTt2YXIgJHQ9QmUuZnJvbSxmbj1CZS50byxMbj1NYXRoLm1pbigkdC5jb2wsZm4uY29sKSxpcj1NYXRoLm1heCgkdC5jb2wsZm4uY29sKTtpZihDLnJvdzwwJiZDLmNvbD49TG4mJkMuY29sPD1pcil7ai5jb2x1bW49ITAsTmUucHJlc3Nl''@;'; + put 'put ''ZD0hMCxOZS50YXJnZXQuZXZlbnRQYWdlWD15LnBhZ2VYLE5lLnRhcmdldC5ldmVudE9mZnNldFg9eS5vZmZzZXRYLE5lLmhvdmVyZWRDb2x1bW49Qy5jb2wsTmUudGFyZ2V0LlREPUksTmUudGFyZ2V0LmNvbD1DLmNvbCxOZS5jb2x1bW5zVG9Nb3ZlPXRoaXMucHJlcGFyZUNvbHVtbnNUb01v''@;'; + put 'put ''dmluZyhMbixpciksTmUuaGFzUm93SGVhZGVycz0hIXRoaXMuaG90LmdldFNldHRpbmdzKCkucm93SGVhZGVycyxOZS5jb3VudENvbHM9dGhpcy5ob3QuY291bnRDb2xzKCksTmUuZml4ZWRDb2x1bW5zU3RhcnQ9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydCxOZS5y''@;'; + put 'put ''b290RWxlbWVudE9mZnNldD1qdSh0aGlzLmhvdC5yb290RWxlbWVudCkubGVmdDt2YXIgbXI9TmUuaGFzUm93SGVhZGVycz8tMTowLFNyPXVlLmhvbGRlci5zY3JvbGxUb3ArdWUuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KDApKzEsd3I9Qy5jb2w8TmUuZml4ZWRDb2x1bW5zU3RhcnQsUXI9TWF0''@;'; + put 'put ''aC5hYnModGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0U2Nyb2xsUG9zaXRpb24oKSkseWk9TWF0aC5hYnMoeS5vZmZzZXRYLSh0aGlzLmhvdC5pc1J0bCgpP3kudGFyZ2V0Lm9mZnNldFdpZHRoOjApKSxLaT10aGlzLmdldENvbHVtbnNXaWR0aChM''@;'; + put 'put ''bixDLmNvbC0xKSt5aSxTbz10aGlzLmdldENvbHVtbnNXaWR0aChtcixMbi0xKSsod3I/UXI6MCkrS2k7dGhpcy5iYWNrbGlnaHQuc2V0UG9zaXRpb24oU3IsU28pLHRoaXMuYmFja2xpZ2h0LnNldFNpemUodGhpcy5nZXRDb2x1bW5zV2lkdGgoTG4saXIpLHVlLmhpZGVyLm9mZnNldEhlaWdo''@;'; + put 'put ''dC1TciksdGhpcy5iYWNrbGlnaHQuc2V0T2Zmc2V0KG51bGwsLUtpKSxPMCh0aGlzLmhvdC5yb290RWxlbWVudCxlZ2UpfWVsc2UgcGwodGhpcy5ob3Qucm9vdEVsZW1lbnQsdGdlKSxOZS5wcmVzc2VkPSExLE5lLmNvbHVtbnNUb01vdmUubGVuZ3RoPTB9fSx7a2V5OiJvbk1vdXNlTW92ZSIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9R3cuZ2V0KHRoaXMpO2lmKEMucHJlc3NlZCl7aWYoeS50YXJnZXQ9PT10aGlzLmJhY2tsaWdodC5lbGVtZW50KXt2YXIgST10aGlzLmJhY2tsaWdodC5nZXRTaXplKCkud2lkdGg7dGhpcy5iYWNrbGlnaHQuc2V0U2l6ZSgwKSxzZXRUaW1lb3V0KGZ1''@;'; + put 'put ''bmN0aW9uKCl7dGhpcy5iYWNrbGlnaHQuc2V0UG9zaXRpb24oSSl9KX1DLnRhcmdldC5ldmVudFBhZ2VYPXkucGFnZVgsdGhpcy5yZWZyZXNoUG9zaXRpb25zKCl9fX0se2tleToib25CZWZvcmVPbkNlbGxNb3VzZU92ZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLGope3ZhciB1ZT10aGlzLmhv''@;'; + put 'put ''dC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLF9lPUd3LmdldCh0aGlzKTshdWV8fCFfZS5wcmVzc2VkfHwoX2UuY29sdW1uc1RvTW92ZS5pbmRleE9mKEMuY29sKT4tMT9wbCh0aGlzLmhvdC5yb290RWxlbWVudCx3bmUpOk8wKHRoaXMuaG90LnJvb3RFbGVtZW50LHduZSksai5yb3c9ITAsai5j''@;'; + put 'put ''b2x1bW49ITAsai5jZWxsPSEwLF9lLmhvdmVyZWRDb2x1bW49Qy5jb2wsX2UudGFyZ2V0LlREPUkpfX0se2tleToib25Nb3VzZVVwIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PUd3LmdldCh0aGlzKSxDPXkudGFyZ2V0LmNvbCxJPXkuY29sdW1uc1RvTW92ZS5sZW5ndGg7aWYoeS5ob3ZlcmVk''@;'; + put 'put ''Q29sdW1uPXZvaWQgMCx5LnByZXNzZWQ9ITEseS5iYWNrbGlnaHRXaWR0aD0wLHBsKHRoaXMuaG90LnJvb3RFbGVtZW50LFtlZ2Usd25lLHRnZV0pLHRoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKSYmTzAodGhpcy5ob3Qucm9vdEVsZW1lbnQsdGdlKSwhKEk8''@;'; + put 'put ''MXx8dm9pZCAwPT09Qykpe3ZhciB1ZT10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHkuY29sdW1uc1RvTW92ZVswXSksX2U9dGhpcy5kcmFnQ29sdW1ucyh5LmNvbHVtbnNUb01vdmUsQyk7aWYoeS5jb2x1bW5zVG9Nb3ZlLmxlbmd0aD0wLCEwPT09X2Upe3RoaXMucGVyc2lzdGVudFN0YXRl''@;'; + put 'put ''U2F2ZSgpLHRoaXMuaG90LnJlbmRlcigpLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKTt2YXIgQmU9dGhpcy5ob3QudG9WaXN1YWxDb2x1bW4odWUpO3RoaXMuaG90LnNlbGVjdENvbHVtbnMoQmUsQmUrSS0xKX19fX0se2tleToib25BZnRlclNjcm9sbFZlcnRpY2FsbHki''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZSxqPXkuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KDApKzEreS5ob2xkZXIuc2Nyb2xsVG9wO3RoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKGopLHRoaXMuYmFja2xpZ2h0LnNldFNpemUobnVsbCx5LmhpZGVy''@;'; + put 'put ''Lm9mZnNldEhlaWdodC1qKX19LHtrZXk6ImJ1aWxkUGx1Z2luVUkiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5iYWNrbGlnaHQuYnVpbGQoKSx0aGlzLmd1aWRlbGluZS5idWlsZCgpfX0se2tleToib25BZnRlckxvYWREYXRhIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubW92ZUJ5U2V0dGluZ3NP''@;'; + put 'put ''ckxvYWQoKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5iYWNrbGlnaHQuZGVzdHJveSgpLHRoaXMuZ3VpZGVsaW5lLmRlc3Ryb3koKSxvTShROShoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiBxNWV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAxMjB9fV0pLGh9KFlzKTtmdW5jdGlvbiBuZ2UoZCl7cmV0dXJuKG5nZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVy''@;'; + put 'put ''YXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHlJZShk''@;'; + put 'put ''LGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGFN''@;'; + put 'put ''KCl7cmV0dXJuIGFNPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1kM3QoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0''@;'; + put 'put ''P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGFNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBkM3QoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUo5KGQpKTspO3JldHVybiBk''@;'; + put 'put ''fWZ1bmN0aW9uIHJnZShkLGcpe3JldHVybihyZ2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBtM3QoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1uZ2Uo''@;'; + put 'put ''Zyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGlnZShkKX1mdW5jdGlvbiBpZ2UoZCl7aWYodm9p''@;'; + put 'put ''ZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIEo5KGQpe3JldHVybihKOT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3Rv''@;'; + put 'put ''dHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBibmU9Im1hbnVhbENvbHVtblJlc2l6ZSIsd0llPSJtYW51YWxDb2x1bW5XaWR0aHMiLG9nZT1uZXcgV2Vha01hcCx5M3Q9ZnVuY3Rpb24oZCl7IWZ1''@;'; + put 'put ''bmN0aW9uIHAzdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUs''@;'; + put 'put ''e2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZyZ2UoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBnM3QoZCl7dmFyIGc9ZnVuY3Rpb24gdjN0KCl7''@;'; + put 'put ''aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJl''@;'; + put 'put ''ZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9SjkoZCk7aWYoZyl7dmFyIEM9SjkodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxD''@;'; + put 'put ''KX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG0zdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTshZnVuY3Rpb24gZjN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1''@;'; + put 'put ''bmN0aW9uIil9KHRoaXMsaCk7dmFyIEM9KHk9Zy5jYWxsKHRoaXMsdikpLmhvdC5yb290RG9jdW1lbnQ7cmV0dXJuIHkuY3VycmVudFRIPW51bGwseS5jdXJyZW50Q29sPW51bGwseS5zZWxlY3RlZENvbHM9W10seS5jdXJyZW50V2lkdGg9bnVsbCx5Lm5ld1NpemU9bnVsbCx5LnN0YXJ0WT1u''@;'; + put 'put ''dWxsLHkuc3RhcnRXaWR0aD1udWxsLHkuc3RhcnRPZmZzZXQ9bnVsbCx5LmhhbmRsZT1DLmNyZWF0ZUVsZW1lbnQoIkRJViIpLHkuZ3VpZGU9Qy5jcmVhdGVFbGVtZW50KCJESVYiKSx5LmV2ZW50TWFuYWdlcj1uZXcgTDEoaWdlKHkpKSx5LnByZXNzZWQ9bnVsbCx5LmRibGNsaWNrPTAseS5h''@;'; + put 'put ''dXRvcmVzaXplVGltZW91dD1udWxsLHkuY29sdW1uV2lkdGhzTWFwPXZvaWQgMCxvZ2Uuc2V0KGlnZSh5KSx7Y29uZmlnOnZvaWQgMH0pLE8wKHkuaGFuZGxlLCJtYW51YWxDb2x1bW5SZXNpemVyIiksTzAoeS5ndWlkZSwibWFudWFsQ29sdW1uUmVzaXplckd1aWRlIikseX1yZXR1cm4gZnVu''@;'; + put 'put ''Y3Rpb24gaDN0KGQsZyxoKXtnJiZ5SWUoZC5wcm90b3R5cGUsZyksaCYmeUllKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlubGluZURpciIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaG90LmlzUnRsKCk/InJp''@;'; + put 'put ''Z2h0IjoibGVmdCJ9fSx7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaG90LmdldFNldHRpbmdzKClbYm5lXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuY29sdW1uV2lkdGhz''@;'; + put 'put ''TWFwPW5ldyBUdyx0aGlzLmNvbHVtbldpZHRoc01hcC5hZGRMb2NhbEhvb2soImluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25NYXBJbml0KCl9KSx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUsdGhpcy5jb2x1bW5XaWR0aHNNYXApLHRo''@;'; + put 'put ''aXMuYWRkSG9vaygibW9kaWZ5Q29sV2lkdGgiLGZ1bmN0aW9uKEMsSSl7cmV0dXJuIHkub25Nb2RpZnlDb2xXaWR0aChDLEkpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGgiLGZ1bmN0aW9uKEMsSSl7cmV0dXJuIHkub25CZWZvcmVTdHJldGNoaW5nQ29sdW1u''@;'; + put 'put ''V2lkdGgoQyxJKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQ29sdW1uUmVzaXplIixmdW5jdGlvbihDLEksail7cmV0dXJuIHkub25CZWZvcmVDb2x1bW5SZXNpemUoQyxJLGopfSksdGhpcy5iaW5kRXZlbnRzKCksYU0oSjkoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwo''@;'; + put 'put ''dGhpcykpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksYU0oSjkoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe29nZS5nZXQodGhpcykuY29uZmlnPXRoaXMuY29sdW1uV2lkdGhzTWFwLmdldFZhbHVlcygpLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSxhTShKOShoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMp''@;'; + put 'put ''LmNhbGwodGhpcyl9fSx7a2V5OiJzYXZlTWFudWFsQ29sdW1uV2lkdGhzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVTYXZlIix3SWUsdGhpcy5jb2x1bW5XaWR0aHNNYXAuZ2V0VmFsdWVzKCkpfX0se2tleToibG9hZE1hbnVhbENvbHVtbldp''@;'; + put 'put ''ZHRocyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT17fTtyZXR1cm4gdGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZUxvYWQiLHdJZSx5KSx5LnZhbHVlfX0se2tleToic2V0TWFudWFsU2l6ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1NYXRoLm1heChDLDIwKSxqPXRoaXMu''@;'; + put 'put ''aG90LnRvUGh5c2ljYWxDb2x1bW4oeSk7cmV0dXJuIHRoaXMuY29sdW1uV2lkdGhzTWFwLnNldFZhbHVlQXRJbmRleChqLEkpLEl9fSx7a2V5OiJjbGVhck1hbnVhbFNpemUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oeSk7dGhpcy5jb2x1bW5X''@;'; + put 'put ''aWR0aHNNYXAuc2V0VmFsdWVBdEluZGV4KEMsbnVsbCl9fSx7a2V5OiJvbk1hcEluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPW9nZS5nZXQodGhpcyksST10aGlzLmhvdC5nZXRTZXR0aW5ncygpW2JuZV0saj10aGlzLmxvYWRNYW51YWxDb2x1bW5XaWR0aHMoKTt2b2lkIDAh''@;'; + put 'put ''PT1qP3RoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7ai5mb3JFYWNoKGZ1bmN0aW9uKHVlLF9lKXt5LmNvbHVtbldpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgoX2UsdWUpfSl9LCEwKTpBcnJheS5pc0FycmF5KEkpPyh0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigp''@;'; + put 'put ''e0kuZm9yRWFjaChmdW5jdGlvbih1ZSxfZSl7eS5jb2x1bW5XaWR0aHNNYXAuc2V0VmFsdWVBdEluZGV4KF9lLHVlKX0pfSwhMCksQy5jb25maWc9SSk6ITA9PT1JJiZBcnJheS5pc0FycmF5KEMuY29uZmlnKSYmdGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXtDLmNvbmZpZy5m''@;'; + put 'put ''b3JFYWNoKGZ1bmN0aW9uKHVlLF9lKXt5LmNvbHVtbldpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgoX2UsdWUpfSl9LCEwKX19LHtrZXk6InNldHVwSGFuZGxlUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7aWYoeS5wYXJlbnROb2RlKXt0aGlzLmN1cnJlbnRUSD15O3Zh''@;'; + put 'put ''ciBJPXRoaXMuaG90LnZpZXcuX3d0LGo9SS53dFRhYmxlLmdldENvb3Jkcyh0aGlzLmN1cnJlbnRUSCksdWU9ai5jb2w7aWYoISh1ZTwwKSl7dmFyIEtlLF9lPUQxKHRoaXMuY3VycmVudFRIKSxCZT10aGlzLmN1cnJlbnRUSC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt1ZTxJLmdldFNldHRp''@;'; + put 'put ''bmcoImZpeGVkQ29sdW1uc1N0YXJ0IikmJihLZT1JLnd0T3ZlcmxheXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmdldFJlbGF0aXZlQ2VsbFBvc2l0aW9uKHRoaXMuY3VycmVudFRILGoucm93LGouY29sKSksS2V8fChLZT1JLnd0T3ZlcmxheXMudG9wT3ZlcmxheS5nZXRSZWxhdGl2''@;'; + put 'put ''ZUNlbGxQb3NpdGlvbih0aGlzLmN1cnJlbnRUSCxqLnJvdyxqLmNvbCkpLHRoaXMuY3VycmVudENvbD10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHVlKSx0aGlzLnNlbGVjdGVkQ29scz1bXTt2YXIgZHQ9dGhpcy5ob3Quc2VsZWN0aW9u''@;'; + put 'put ''LmlzU2VsZWN0ZWRCeUNvcm5lcigpfHx0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCk7dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWQoKSYmZHQmJlVyKHRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2UoKSxmdW5jdGlvbigkdCl7aWEoJHQuZ2V0VG9wU3Rh''@;'; + put 'put ''cnRDb3JuZXIoKS5jb2wsJHQuZ2V0Qm90dG9tRW5kQ29ybmVyKCkuY29sLGZ1bmN0aW9uKGlyKXtDLnNlbGVjdGVkQ29scy5pbmNsdWRlcyhpcil8fEMuc2VsZWN0ZWRDb2xzLnB1c2goaXIpfSl9KSx0aGlzLnNlbGVjdGVkQ29scy5pbmNsdWRlcyh0aGlzLmN1cnJlbnRDb2wpfHwodGhpcy5z''@;'; + put 'put ''ZWxlY3RlZENvbHM9W3RoaXMuY3VycmVudENvbF0pLHRoaXMuc3RhcnRPZmZzZXQ9S2Uuc3RhcnQtNix0aGlzLnN0YXJ0V2lkdGg9cGFyc2VJbnQoQmUud2lkdGgsMTApLHRoaXMuaGFuZGxlLnN0eWxlLnRvcD0iIi5jb25jYXQoS2UudG9wLCJweCIpLHRoaXMuaGFuZGxlLnN0eWxlW3RoaXMu''@;'; + put 'put ''aW5saW5lRGlyXT0iIi5jb25jYXQodGhpcy5zdGFydE9mZnNldCt0aGlzLnN0YXJ0V2lkdGgsInB4IiksdGhpcy5oYW5kbGUuc3R5bGUuaGVpZ2h0PSIiLmNvbmNhdChfZSwicHgiKSx0aGlzLmhvdC5yb290RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmhhbmRsZSl9fX19LHtrZXk6InJlZnJl''@;'; + put 'put ''c2hIYW5kbGVQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhhbmRsZS5zdHlsZVt0aGlzLmlubGluZURpcl09IiIuY29uY2F0KHRoaXMuc3RhcnRPZmZzZXQrdGhpcy5jdXJyZW50V2lkdGgsInB4Iil9fSx7a2V5OiJzZXR1cEd1aWRlUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; + put 'put ''dmFyIHk9cGFyc2VJbnQoRDEodGhpcy5oYW5kbGUpLDEwKSxDPXBhcnNlSW50KHRoaXMuaGFuZGxlLnN0eWxlLnRvcCwxMCkreSxJPXBhcnNlSW50KHRoaXMuaG90LnZpZXcubWF4aW11bVZpc2libGVFbGVtZW50SGVpZ2h0KDApLDEwKTtPMCh0aGlzLmhhbmRsZSwiYWN0aXZlIiksTzAodGhp''@;'; + put 'put ''cy5ndWlkZSwiYWN0aXZlIiksdGhpcy5ndWlkZS5zdHlsZS50b3A9IiIuY29uY2F0KEMsInB4IiksdGhpcy5yZWZyZXNoR3VpZGVQb3NpdGlvbigpLHRoaXMuZ3VpZGUuc3R5bGUuaGVpZ2h0PSIiLmNvbmNhdChJLXksInB4IiksdGhpcy5ob3Qucm9vdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp''@;'; + put 'put ''cy5ndWlkZSl9fSx7a2V5OiJyZWZyZXNoR3VpZGVQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmd1aWRlLnN0eWxlW3RoaXMuaW5saW5lRGlyXT10aGlzLmhhbmRsZS5zdHlsZVt0aGlzLmlubGluZURpcl19fSx7a2V5OiJoaWRlSGFuZGxlQW5kR3VpZGUiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7cGwodGhpcy5oYW5kbGUsImFjdGl2ZSIpLHBsKHRoaXMuZ3VpZGUsImFjdGl2ZSIpfX0se2tleToiY2hlY2tJZkNvbHVtbkhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuISFTOSh5LFsiVEhFQUQiXSx0aGlzLmhvdC5yb290RWxlbWVudCl9fSx7a2V5OiJnZXRDbG9zZXN0VEhQ''@;'; + put 'put ''YXJlbnQiLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiJUQUJMRSIhPT15LnRhZ05hbWU/IlRIIj09PXkudGFnTmFtZT95OnRoaXMuZ2V0Q2xvc2VzdFRIUGFyZW50KHkucGFyZW50Tm9kZSk6bnVsbH19LHtrZXk6Im9uTW91c2VPdmVyIix2YWx1ZTpmdW5jdGlvbih5KXtpZighdjNlKHkudGFy''@;'; + put 'put ''Z2V0KSYmdGhpcy5jaGVja0lmQ29sdW1uSGVhZGVyKHkudGFyZ2V0KSl7dmFyIEM9dGhpcy5nZXRDbG9zZXN0VEhQYXJlbnQoeS50YXJnZXQpO2lmKCFDKXJldHVybjt2YXIgST1DLmdldEF0dHJpYnV0ZSgiY29sc3BhbiIpO0MmJihudWxsPT09SXx8IjEiPT09SSkmJih0aGlzLnByZXNzZWR8''@;'; + put 'put ''fHRoaXMuc2V0dXBIYW5kbGVQb3NpdGlvbihDKSl9fX0se2tleToiYWZ0ZXJNb3VzZURvd25UaW1lb3V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1mdW5jdGlvbigpe3kuaG90LmZvcmNlRnVsbFJlbmRlcj0hMCx5LmhvdC52aWV3LnJlbmRlcigpLHkuaG90LnZpZXcuYWRqdXN0''@;'; + put 'put ''RWxlbWVudHNTaXplKCEwKX0sST1mdW5jdGlvbihfZSxCZSl7dmFyIE5lPXkuaG90LnJ1bkhvb2tzKCJiZWZvcmVDb2x1bW5SZXNpemUiLHkubmV3U2l6ZSxfZSwhMCk7dm9pZCAwIT09TmUmJih5Lm5ld1NpemU9TmUpLCJhbGwiPT09eS5ob3QuZ2V0U2V0dGluZ3MoKS5zdHJldGNoSD95LmNs''@;'; + put 'put ''ZWFyTWFudWFsU2l6ZShfZSk6eS5zZXRNYW51YWxTaXplKF9lLHkubmV3U2l6ZSkseS5zYXZlTWFudWFsQ29sdW1uV2lkdGhzKCkseS5ob3QucnVuSG9va3MoImFmdGVyQ29sdW1uUmVzaXplIix5Lm5ld1NpemUsX2UsITApLEJlJiZDKCl9O3RoaXMuZGJsY2xpY2s+PTImJih0aGlzLnNlbGVj''@;'; + put 'put ''dGVkQ29scy5sZW5ndGg+MT8oVXIodGhpcy5zZWxlY3RlZENvbHMsZnVuY3Rpb24odWUpe0kodWUpfSksQygpKTpVcih0aGlzLnNlbGVjdGVkQ29scyxmdW5jdGlvbih1ZSl7SSh1ZSwhMCl9KSksdGhpcy5kYmxjbGljaz0wLHRoaXMuYXV0b3Jlc2l6ZVRpbWVvdXQ9bnVsbH19LHtrZXk6Im9u''@;'; + put 'put ''TW91c2VEb3duIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO3RsKHkudGFyZ2V0LCJtYW51YWxDb2x1bW5SZXNpemVyIikmJih0aGlzLnNldHVwSGFuZGxlUG9zaXRpb24odGhpcy5jdXJyZW50VEgpLHRoaXMuc2V0dXBHdWlkZVBvc2l0aW9uKCksdGhpcy5wcmVzc2VkPSEwLG51bGw9''@;'; + put 'put ''PT10aGlzLmF1dG9yZXNpemVUaW1lb3V0JiYodGhpcy5hdXRvcmVzaXplVGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIEMuYWZ0ZXJNb3VzZURvd25UaW1lb3V0KCl9LDUwMCksdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dCh0aGlzLmF1dG9yZXNpemVUaW1lb3V0KSksdGhp''@;'; + put 'put ''cy5kYmxjbGljays9MSx0aGlzLnN0YXJ0WD15LnBhZ2VYLHRoaXMubmV3U2l6ZT10aGlzLnN0YXJ0V2lkdGgpfX0se2tleToib25Nb3VzZU1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7aWYodGhpcy5wcmVzc2VkKXt2YXIgST0oeS5wYWdlWC10aGlzLnN0YXJ0WCkqdGhpcy5o''@;'; + put 'put ''b3QuZ2V0RGlyZWN0aW9uRmFjdG9yKCk7dGhpcy5jdXJyZW50V2lkdGg9dGhpcy5zdGFydFdpZHRoK0ksVXIodGhpcy5zZWxlY3RlZENvbHMsZnVuY3Rpb24oail7Qy5uZXdTaXplPUMuc2V0TWFudWFsU2l6ZShqLEMuY3VycmVudFdpZHRoKX0pLHRoaXMucmVmcmVzaEhhbmRsZVBvc2l0aW9u''@;'; + put 'put ''KCksdGhpcy5yZWZyZXNoR3VpZGVQb3NpdGlvbigpfX19LHtrZXk6Im9uTW91c2VVcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9ZnVuY3Rpb24oKXt5LmhvdC5mb3JjZUZ1bGxSZW5kZXI9ITAseS5ob3Qudmlldy5yZW5kZXIoKSx5LmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6''@;'; + put 'put ''ZSghMCl9LEk9ZnVuY3Rpb24oX2UsQmUpe3kuaG90LnJ1bkhvb2tzKCJiZWZvcmVDb2x1bW5SZXNpemUiLHkubmV3U2l6ZSxfZSwhMSksQmUmJkMoKSx5LnNhdmVNYW51YWxDb2x1bW5XaWR0aHMoKSx5LmhvdC5ydW5Ib29rcygiYWZ0ZXJDb2x1bW5SZXNpemUiLHkubmV3U2l6ZSxfZSwhMSl9''@;'; + put 'put ''O3RoaXMucHJlc3NlZCYmKHRoaXMuaGlkZUhhbmRsZUFuZEd1aWRlKCksdGhpcy5wcmVzc2VkPSExLHRoaXMubmV3U2l6ZSE9PXRoaXMuc3RhcnRXaWR0aCYmKHRoaXMuc2VsZWN0ZWRDb2xzLmxlbmd0aD4xPyhVcih0aGlzLnNlbGVjdGVkQ29scyxmdW5jdGlvbih1ZSl7SSh1ZSl9KSxDKCkp''@;'; + put 'put ''OlVyKHRoaXMuc2VsZWN0ZWRDb2xzLGZ1bmN0aW9uKHVlKXtJKHVlLCEwKX0pKSx0aGlzLnNldHVwSGFuZGxlUG9zaXRpb24odGhpcy5jdXJyZW50VEgpKX19LHtrZXk6ImJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LEk9Qy5yb290V2luZG93LGo9''@;'; + put 'put ''Qy5yb290RWxlbWVudDt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGosIm1vdXNlb3ZlciIsZnVuY3Rpb24odWUpe3JldHVybiB5Lm9uTW91c2VPdmVyKHVlKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoaiwibW91c2Vkb3duIixmdW5jdGlvbih1ZSl7''@;'; + put 'put ''cmV0dXJuIHkub25Nb3VzZURvd24odWUpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLCJtb3VzZW1vdmUiLGZ1bmN0aW9uKHVlKXtyZXR1cm4geS5vbk1vdXNlTW92ZSh1ZSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEksIm1vdXNldXAiLGZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIHkub25Nb3VzZVVwKCl9KX19LHtrZXk6Im9uTW9kaWZ5Q29sV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9eTtpZih0aGlzLmVuYWJsZWQpe3ZhciBqPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oQyksdWU9dGhpcy5jb2x1bW5XaWR0aHNNYXAuZ2V0''@;'; + put 'put ''VmFsdWVBdEluZGV4KGopO3RoaXMuaG90LmdldFNldHRpbmdzKClbYm5lXSYmdWUmJihJPXVlKX1yZXR1cm4gSX19LHtrZXk6Im9uQmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXMuY29sdW1uV2lkdGhzTWFwLmdldFZhbHVlQXRJbmRl''@;'; + put 'put ''eChDKTtyZXR1cm4gbnVsbD09PUkmJihJPXkpLEl9fSx7a2V5OiJvbkJlZm9yZUNvbHVtblJlc2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC52aWV3Ll93dC53dFZpZXdwb3J0LnJlc2V0SGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZCgpfX0se2tleToiZGVzdHJveSIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXthTShKOShoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBibmV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAxMzB9fV0pLGh9''@;'; + put 'put ''KFlzKTtmdW5jdGlvbiBiSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYu''@;'; + put 'put ''a2V5LHYpfX12YXIgSk89InB4IixfM3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiB3M3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5ob3Q9''@;'; + put 'put ''Zyx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5zdGF0ZT0wfXJldHVybiBmdW5jdGlvbiBiM3QoZCxnLGgpe2cmJmJJZShkLnByb3RvdHlwZSxnKSxoJiZiSWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiYXBwZW5kVG8i''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe2guYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudCksdGhpcy5zdGF0ZT0yfX0se2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7MD09PXRoaXMuc3RhdGUmJih0aGlzLl9lbGVtZW50PXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi''@;'; + put 'put ''KSx0aGlzLnN0YXRlPTEpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzQXBwZW5kZWQoKSYmdGhpcy5fZWxlbWVudC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLnN0YXRlPTB9fSx7a2V5OiJp''@;'; + put 'put ''c0FwcGVuZGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiAyPT09dGhpcy5zdGF0ZX19LHtrZXk6ImlzQnVpbHQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGU+PTF9fSx7a2V5OiJzZXRQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2b2lkIDAhPT1oJiYodGhpcy5f''@;'; + put 'put ''ZWxlbWVudC5zdHlsZS50b3A9aCtKTyksdm9pZCAwIT09diYmKHRoaXMuX2VsZW1lbnQuc3R5bGUubGVmdD12K0pPKX19LHtrZXk6ImdldFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybnt0b3A6dGhpcy5fZWxlbWVudC5zdHlsZS50b3A/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5z''@;'; + put 'put ''dHlsZS50b3AsMTApOjAsbGVmdDp0aGlzLl9lbGVtZW50LnN0eWxlLmxlZnQ/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS5sZWZ0LDEwKTowfX19LHtrZXk6InNldFNpemUiLHZhbHVlOmZ1bmN0aW9uKGgsdil7aCYmKHRoaXMuX2VsZW1lbnQuc3R5bGUud2lkdGg9aCtKTyksdiYmKHRo''@;'; + put 'put ''aXMuX2VsZW1lbnQuc3R5bGUuaGVpZ2h0PXYrSk8pfX0se2tleToiZ2V0U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57d2lkdGg6dGhpcy5fZWxlbWVudC5zdHlsZS53aWR0aD9wYXJzZUludCh0aGlzLl9lbGVtZW50LnN0eWxlLndpZHRoLDEwKTowLGhlaWdodDp0aGlzLl9lbGVtZW50''@;'; + put 'put ''LnN0eWxlLmhlaWdodD9wYXJzZUludCh0aGlzLl9lbGVtZW50LnN0eWxlLmhlaWdodCwxMCk6MH19fSx7a2V5OiJzZXRPZmZzZXQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7aCYmKHRoaXMuX2VsZW1lbnQuc3R5bGUubWFyZ2luVG9wPWgrSk8pLHYmJih0aGlzLl9lbGVtZW50LnN0eWxlLm1hcmdp''@;'; + put 'put ''bkxlZnQ9ditKTyl9fSx7a2V5OiJnZXRPZmZzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3RvcDp0aGlzLl9lbGVtZW50LnN0eWxlLm1hcmdpblRvcD9wYXJzZUludCh0aGlzLl9lbGVtZW50LnN0eWxlLm1hcmdpblRvcCwxMCk6MCxsZWZ0OnRoaXMuX2VsZW1lbnQuc3R5bGUubWFyZ2lu''@;'; + put 'put ''TGVmdD9wYXJzZUludCh0aGlzLl9lbGVtZW50LnN0eWxlLm1hcmdpbkxlZnQsMTApOjB9fX1dKSxkfSgpO2NvbnN0IGtJZT1fM3Q7ZnVuY3Rpb24gbGdlKGQpe3JldHVybihsZ2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVu''@;'; + put 'put ''Y3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBDM3QoZCxnKXtpZigh''@;'; + put 'put ''KGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBTSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNv''@;'; + put 'put ''bmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBfbmUoKXtyZXR1cm4gX25lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1''@;'; + put 'put ''bmN0aW9uKGcsaCx2KXt2YXIgeT1TM3QoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LF9uZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVu''@;'; + put 'put ''Y3Rpb24gUzN0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1YTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBzZ2UoZCxnKXtyZXR1cm4oc2dlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Yu''@;'; + put 'put ''YmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24geDN0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09bGdlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJp''@;'; + put 'put ''dmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBUM3QoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBi''@;'; + put 'put ''ZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBYTyhkKXtyZXR1cm4oWE89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12''@;'; + put 'put ''YXIgTDN0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBNM3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3Qu''@;'; + put 'put ''Y3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmc2dlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gRTN0KGQp''@;'; + put 'put ''e3ZhciBnPWZ1bmN0aW9uIEkzdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJv''@;'; + put 'put ''dG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVhPKGQpO2lmKGcpe3ZhciBDPVhPKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5j''@;'; + put 'put ''b25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB4M3QodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gQzN0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uIGszdChkLGcsaCl7ZyYm''@;'; + put 'put ''U0llKGQucHJvdG90eXBlLGcpLGgmJlNJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXtfbmUoWE8oaC5wcm90b3R5cGUpLCJidWlsZCIsdGhpcykuY2FsbCh0aGlzKSxPMCh0''@;'; + put 'put ''aGlzLl9lbGVtZW50LCJodF9fbWFudWFsUm93TW92ZS0tYmFja2xpZ2h0Iil9fV0pLGh9KGtJZSk7Y29uc3QgTzN0PUwzdDtmdW5jdGlvbiB1Z2UoZCl7cmV0dXJuKHVnZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlv''@;'; + put 'put ''bihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFIzdChkLGcpe2lmKCEoZCBp''@;'; + put 'put ''bnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIE1JZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmln''@;'; + put 'put ''dXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIENuZSgpe3JldHVybiBDbmU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rp''@;'; + put 'put ''b24oZyxoLHYpe3ZhciB5PVAzdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sQ25lLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlv''@;'; + put 'put ''biBQM3QoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUtPKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGNnZShkLGcpe3JldHVybihjZ2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5k''@;'; + put 'put ''KCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBOM3QoZCxnKXtpZihnJiYoIm9iamVjdCI9PT11Z2UoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQg''@;'; + put 'put ''Y29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIFYzdChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4g''@;'; + put 'put ''Y2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIEtPKGQpe3JldHVybihLTz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciB6''@;'; + put 'put ''M3Q9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIEYzdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVh''@;'; + put 'put ''dGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZjZ2UoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBIM3QoZCl7dmFy''@;'; + put 'put ''IGc9ZnVuY3Rpb24gajN0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5''@;'; + put 'put ''cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9S08oZCk7aWYoZyl7dmFyIEM9S08odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0''@;'; + put 'put ''cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIE4zdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBSM3QodGhpcyxoKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24gQjN0KGQsZyxoKXtnJiZNSWUo''@;'; + put 'put ''ZC5wcm90b3R5cGUsZyksaCYmTUllKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImJ1aWxkIix2YWx1ZTpmdW5jdGlvbigpe0NuZShLTyhoLnByb3RvdHlwZSksImJ1aWxkIix0aGlzKS5jYWxsKHRoaXMpLE8wKHRoaXMu''@;'; + put 'put ''X2VsZW1lbnQsImh0X19tYW51YWxSb3dNb3ZlLS1ndWlkZWxpbmUiKX19XSksaH0oa0llKTtjb25zdCBHM3Q9ejN0O2Z1bmN0aW9uIGZnZShkKXtyZXR1cm4oZmdlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcp''@;'; + put 'put ''e3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gRUllKGQsZyl7Zm9yKHZhciBoPTA7''@;'; + put 'put ''aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gbE0oKXtyZXR1cm4gbE09InVu''@;'; + put 'put ''ZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PVUzdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1''@;'; + put 'put ''bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sbE0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFUzdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9WDkoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gaGdlKGQs''@;'; + put 'put ''Zyl7cmV0dXJuKGhnZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFgzdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWZnZShnKXx8ImZ1bmN0aW9uIj09''@;'; + put 'put ''dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZGdlKGQpfWZ1bmN0aW9uIGRnZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5l''@;'; + put 'put ''dyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gWDkoZCl7cmV0dXJuKFg5PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1''@;'; + put 'put ''bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9em8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZVJvd01vdmUiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJSb3dNb3ZlIik7dmFyIHBnZT0ibWFudWFsUm93''@;'; + put 'put ''TW92ZSIsV3c9bmV3IFdlYWtNYXAseEllPSJodF9fbWFudWFsUm93TW92ZSIsa25lPSJzaG93LXVpIixnZ2U9Im9uLW1vdmluZy0tcm93cyIsbWdlPSJhZnRlci1zZWxlY3Rpb24tLXJvd3MiLHEzdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gUTN0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9m''@;'; + put 'put ''IGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29u''@;'; + put 'put ''ZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmhnZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIEozdChkKXt2YXIgZz1mdW5jdGlvbiBLM3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZs''@;'; + put 'put ''ZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigp''@;'; + put 'put ''e30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1YOShkKTtpZihnKXt2YXIgQz1YOSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1''@;'; + put 'put ''cm4gWDN0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBXM3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSx5PWcuY2FsbCh0aGlz''@;'; + put 'put ''LHYpLFd3LnNldChkZ2UoeSkse3Jvd3NUb01vdmU6W10scHJlc3NlZDp2b2lkIDAsdGFyZ2V0OntldmVudFBhZ2VZOnZvaWQgMCxjb29yZHM6dm9pZCAwLFREOnZvaWQgMCxyb3c6dm9pZCAwfSxjYWNoZWREcm9wSW5kZXg6dm9pZCAwfSkseS5ldmVudE1hbmFnZXI9bmV3IEwxKGRnZSh5KSks''@;'; + put 'put ''eS5iYWNrbGlnaHQ9bmV3IE8zdCh2KSx5Lmd1aWRlbGluZT1uZXcgRzN0KHYpLHl9cmV0dXJuIGZ1bmN0aW9uIFkzdChkLGcsaCl7ZyYmRUllKGQucHJvdG90eXBlLGcpLGgmJkVJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7''@;'; + put 'put ''a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3BnZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNl''@;'; + put 'put ''RG93biIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZU9uQ2VsbE1vdXNlRG93bi5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZU9uQ2VsbE1vdXNlT3Zlci5hcHBseSh5LGFyZ3Vt''@;'; + put 'put ''ZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkoKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJMb2FkRGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyTG9hZERhdGEuYXBw''@;'; + put 'put ''bHkoeSxhcmd1bWVudHMpfSksdGhpcy5idWlsZFBsdWdpblVJKCksdGhpcy5yZWdpc3RlckV2ZW50cygpLE8wKHRoaXMuaG90LnJvb3RFbGVtZW50LHhJZSksbE0oWDkoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToidXBkYXRlUGx1Z2luIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksdGhpcy5tb3ZlQnlTZXR0aW5nc09yTG9hZCgpLGxNKFg5KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oKXtwbCh0aGlzLmhvdC5yb290RWxlbWVudCx4SWUpLHRoaXMudW5yZWdpc3RlckV2ZW50cygpLHRoaXMuYmFja2xpZ2h0LmRlc3Ryb3koKSx0aGlzLmd1aWRlbGluZS5kZXN0cm95KCksbE0oWDkoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMp''@;'; + put 'put ''fX0se2tleToibW92ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtyZXR1cm4gdGhpcy5tb3ZlUm93cyhbeV0sQyl9fSx7a2V5OiJtb3ZlUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1Xdy5nZXQodGhpcyksaj1JLmNhY2hlZERyb3BJbmRleCx1ZT10aGlzLmlzTW92ZVBvc3NpYmxl''@;'; + put 'put ''KHksQyksX2U9dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVJvd01vdmUiLHksQyxqLHVlKTtpZihJLmNhY2hlZERyb3BJbmRleD12b2lkIDAsITEhPT1fZSl7dWUmJnRoaXMuaG90LnJvd0luZGV4TWFwcGVyLm1vdmVJbmRleGVzKHksQyk7dmFyIEJlPXVlJiZ0aGlzLmlzUm93T3JkZXJDaGFu''@;'; + put 'put ''Z2VkKHksQyk7cmV0dXJuIHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclJvd01vdmUiLHksQyxqLHVlLEJlKSxCZX19fSx7a2V5OiJkcmFnUm93Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3JldHVybiB0aGlzLmRyYWdSb3dzKFt5XSxDKX19LHtrZXk6ImRyYWdSb3dzIix2YWx1ZTpmdW5jdGlvbih5''@;'; + put 'put ''LEMpe3ZhciBJPXRoaXMuY291bnRGaW5hbEluZGV4KHksQyk7cmV0dXJuIFd3LmdldCh0aGlzKS5jYWNoZWREcm9wSW5kZXg9Qyx0aGlzLm1vdmVSb3dzKHksSSl9fSx7a2V5OiJpc01vdmVQb3NzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmhvdC5yb3dJbmRleE1hcHBl''@;'; + put 'put ''ci5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpLGo9eS5sZW5ndGgrQz5JLHVlPUM8MCxfZT15LnNvbWUoZnVuY3Rpb24oTmUpe3JldHVybiBOZTwwfSksQmU9eS5zb21lKGZ1bmN0aW9uKE5lKXtyZXR1cm4gTmU+PUl9KTtyZXR1cm4hKGp8fHVlfHxfZXx8QmUpfX0se2tleToiaXNSb3dP''@;'; + put 'put ''cmRlckNoYW5nZWQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHkuc29tZShmdW5jdGlvbihJLGope3JldHVybiBJLWohPT1DfSl9fSx7a2V5OiJjb3VudEZpbmFsSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9U3UoeSxmdW5jdGlvbihqLHVlKXtyZXR1cm4gdWU8QyYmKGor''@;'; + put 'put ''PTEpLGp9LDApO3JldHVybiBDLUl9fSx7a2V5OiJnZXRSb3dzSGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe2Zvcih2YXIgST10aGlzLmhvdC5yb3dJbmRleE1hcHBlcixqPTAsdWU9eTt1ZTw9Qzt1ZSsrKXt2YXIgX2U9SS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHVlKTtudWxs''@;'; + put 'put ''IT09X2UmJihqKz10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLmdldFJvd0hlaWdodChfZSl8fDIzKX1yZXR1cm4gan19LHtrZXk6Im1vdmVCeVNldHRpbmdzT3JMb2FkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNldHRpbmdzKClbcGdlXTtpZihBcnJheS5pc0FycmF5''@;'; + put 'put ''KHkpKXRoaXMubW92ZVJvd3MoeSwwKTtlbHNlIGlmKHZvaWQgMCE9PXkpe3ZhciBDPXRoaXMucGVyc2lzdGVudFN0YXRlTG9hZCgpO0MubGVuZ3RoJiZ0aGlzLm1vdmVSb3dzKEMsMCl9fX0se2tleToiaXNGaXhlZFJvd1RvcCIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHk8dGhpcy5ob3Qu''@;'; + put 'put ''Z2V0U2V0dGluZ3MoKS5maXhlZFJvd3NUb3B9fSx7a2V5OiJpc0ZpeGVkUm93Qm90dG9tIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4geT50aGlzLmhvdC5jb3VudFJvd3MoKS0xLXRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRSb3dzQm90dG9tfX0se2tleToicGVyc2lzdGVudFN0YXRl''@;'; + put 'put ''U2F2ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlU2F2ZSIsIm1hbnVhbFJvd01vdmUiLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldEluZGV4ZXNTZXF1ZW5jZSgpKX19LHtrZXk6InBlcnNpc3RlbnRTdGF0ZUxvYWQiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIHk9e307cmV0dXJuIHRoaXMuaG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVMb2FkIiwibWFudWFsUm93TW92ZSIseSkseS52YWx1ZT95LnZhbHVlOltdfX0se2tleToicHJlcGFyZVJvd3NUb01vdmluZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRT''@;'; + put 'put ''ZWxlY3RlZFJhbmdlTGFzdCgpLEM9W107aWYoIXkpcmV0dXJuIEM7dmFyIEk9eS5mcm9tLGo9eS50bztyZXR1cm4gaWEoTWF0aC5taW4oSS5yb3csai5yb3cpLE1hdGgubWF4KEkucm93LGoucm93KSxmdW5jdGlvbihCZSl7Qy5wdXNoKEJlKX0pLEN9fSx7a2V5OiJyZWZyZXNoUG9zaXRpb25z''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PVd3LmdldCh0aGlzKSxDPXkudGFyZ2V0LmNvb3JkcyxJPXRoaXMuaG90LnZpZXcuZ2V0Rmlyc3RGdWxseVZpc2libGVSb3coKSxqPXRoaXMuaG90LnZpZXcuZ2V0TGFzdEZ1bGx5VmlzaWJsZVJvdygpLHVlPXRoaXMuaG90LmNvdW50Um93cygpO3Ro''@;'; + put 'put ''aXMuaXNGaXhlZFJvd1RvcChDLnJvdykmJkk+MCYmdGhpcy5ob3Quc2Nyb2xsVmlld3BvcnRUbyh0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSS0xLC0xKSksdGhpcy5pc0ZpeGVkUm93Qm90dG9tKEMucm93KSYmajx1ZSYmdGhpcy5ob3Quc2Nyb2xs''@;'; + put 'put ''Vmlld3BvcnRUbyh0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoaisxLDEpLHZvaWQgMCwhMCk7dmFyIF9lPXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUsQmU9eS50YXJnZXQuVEQsTmU9anUodGhpcy5ob3Qucm9vdEVsZW1lbnQpLEtlPXRoaXMuaG90''@;'; + put 'put ''LnZpZXcuVEhFQUQub2Zmc2V0SGVpZ2h0K3RoaXMuZ2V0Um93c0hlaWdodCgwLEMucm93LTEpLGR0PXkudGFyZ2V0LmV2ZW50UGFnZVktTmUudG9wK19lLmhvbGRlci5zY3JvbGxUb3AsT3Q9X2UuaGlkZXIub2Zmc2V0SGVpZ2h0LCR0PV9lLlRCT0RZLm9mZnNldFRvcCxmbj10aGlzLmJhY2ts''@;'; + put 'put ''aWdodC5nZXRPZmZzZXQoKS50b3AsTG49dGhpcy5iYWNrbGlnaHQuZ2V0U2l6ZSgpLmhlaWdodDt0aGlzLmlzRml4ZWRSb3dUb3AoQy5yb3cpJiYoS2UrPV9lLmhvbGRlci5zY3JvbGxUb3ApLEMucm93PDA/eS50YXJnZXQucm93PUk+MD9JLTE6STpCZS5vZmZzZXRIZWlnaHQvMitLZTw9ZHQ/''@;'; + put 'put ''KHkudGFyZ2V0LnJvdz1DLnJvdysxLEtlKz0wPT09Qy5yb3c/QmUub2Zmc2V0SGVpZ2h0LTE6QmUub2Zmc2V0SGVpZ2h0KTp5LnRhcmdldC5yb3c9Qy5yb3c7dmFyIGlyPWR0LG1yPUtlO2R0K0xuK2ZuPj1PdD9pcj1PdC1Mbi1mbjpkdCtmbjwkdCYmKGlyPSR0K01hdGguYWJzKGZuKSksS2U+''@;'; + put 'put ''PU90LTEmJihtcj1PdC0xKSx0aGlzLmJhY2tsaWdodC5zZXRQb3NpdGlvbihpciksdGhpcy5ndWlkZWxpbmUuc2V0UG9zaXRpb24obXIpfX0se2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LnJvb3REb2N1bWVudC5kb2N1bWVudEVs''@;'; + put 'put ''ZW1lbnQ7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihDLCJtb3VzZW1vdmUiLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uTW91c2VNb3ZlKEkpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihDLCJtb3VzZXVwIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW91''@;'; + put 'put ''c2VVcCgpfSl9fSx7a2V5OiJ1bnJlZ2lzdGVyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyKCl9fSx7a2V5OiJvbkJlZm9yZU9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7dmFyIHVlPXRoaXMuaG90LnZpZXcuX3d0LF9lPXVl''@;'; + put 'put ''Lnd0VGFibGUsQmU9dWUud3RWaWV3cG9ydCxOZT10aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCksS2U9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxkdD1Xdy5nZXQodGhpcyk7aWYoIUtlfHwhTmV8fGR0LnByZXNzZWR8fDAhPT15LmJ1dHRvbilyZXR1''@;'; + put 'put ''cm4gZHQucHJlc3NlZD0hMSxkdC5yb3dzVG9Nb3ZlLmxlbmd0aD0wLHZvaWQgcGwodGhpcy5ob3Qucm9vdEVsZW1lbnQsW2dnZSxrbmVdKTt2YXIgT3Q9dGhpcy5ndWlkZWxpbmUuaXNCdWlsdCgpJiYhdGhpcy5ndWlkZWxpbmUuaXNBcHBlbmRlZCgpLCR0PXRoaXMuYmFja2xpZ2h0LmlzQnVp''@;'; + put 'put ''bHQoKSYmIXRoaXMuYmFja2xpZ2h0LmlzQXBwZW5kZWQoKTtPdCYmJHQmJih0aGlzLmd1aWRlbGluZS5hcHBlbmRUbyhfZS5oaWRlciksdGhpcy5iYWNrbGlnaHQuYXBwZW5kVG8oX2UuaGlkZXIpKTt2YXIgZm49S2UuZnJvbSxMbj1LZS50byxpcj1NYXRoLm1pbihmbi5yb3csTG4ucm93KSxt''@;'; + put 'put ''cj1NYXRoLm1heChmbi5yb3csTG4ucm93KTtpZihDLmNvbDwwJiZDLnJvdz49aXImJkMucm93PD1tcil7ai5yb3c9ITAsZHQucHJlc3NlZD0hMCxkdC50YXJnZXQuZXZlbnRQYWdlWT15LnBhZ2VZLGR0LnRhcmdldC5jb29yZHM9QyxkdC50YXJnZXQuVEQ9SSxkdC5yb3dzVG9Nb3ZlPXRoaXMu''@;'; + put 'put ''cHJlcGFyZVJvd3NUb01vdmluZygpO3ZhciBTcj1fZS5ob2xkZXIuc2Nyb2xsTGVmdCtCZS5nZXRSb3dIZWFkZXJXaWR0aCgpO3RoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKG51bGwsU3IpLHRoaXMuYmFja2xpZ2h0LnNldFNpemUoX2UuaGlkZXIub2Zmc2V0V2lkdGgtU3IsdGhpcy5nZXRS''@;'; + put 'put ''b3dzSGVpZ2h0KGlyLG1yKSksdGhpcy5iYWNrbGlnaHQuc2V0T2Zmc2V0KC0xKih0aGlzLmdldFJvd3NIZWlnaHQoaXIsQy5yb3ctMSkreS5vZmZzZXRZKSxudWxsKSxPMCh0aGlzLmhvdC5yb290RWxlbWVudCxnZ2UpLHRoaXMucmVmcmVzaFBvc2l0aW9ucygpfWVsc2UgcGwodGhpcy5ob3Qu''@;'; + put 'put ''cm9vdEVsZW1lbnQsbWdlKSxkdC5wcmVzc2VkPSExLGR0LnJvd3NUb01vdmUubGVuZ3RoPTB9fSx7a2V5OiJvbk1vdXNlTW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9V3cuZ2V0KHRoaXMpO2lmKEMucHJlc3NlZCl7aWYoeS50YXJnZXQ9PT10aGlzLmJhY2tsaWdodC5lbGVtZW50KXt2''@;'; + put 'put ''YXIgST10aGlzLmJhY2tsaWdodC5nZXRTaXplKCkuaGVpZ2h0O3RoaXMuYmFja2xpZ2h0LnNldFNpemUobnVsbCwwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5iYWNrbGlnaHQuc2V0UG9zaXRpb24obnVsbCxJKX0pfUMudGFyZ2V0LmV2ZW50UGFnZVk9eS5wYWdlWSx0aGlzLnJlZnJl''@;'; + put 'put ''c2hQb3NpdGlvbnMoKX19fSx7a2V5OiJvbkJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7dmFyIHVlPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksX2U9V3cuZ2V0KHRoaXMpOyF1ZXx8IV9lLnByZXNzZWR8fChfZS5yb3dzVG9Nb3ZlLmluZGV4''@;'; + put 'put ''T2YoQy5yb3cpPi0xP3BsKHRoaXMuaG90LnJvb3RFbGVtZW50LGtuZSk6TzAodGhpcy5ob3Qucm9vdEVsZW1lbnQsa25lKSxqLnJvdz0hMCxqLmNvbHVtbj0hMCxqLmNlbGw9ITAsX2UudGFyZ2V0LmNvb3Jkcz1DLF9lLnRhcmdldC5URD1JKX19LHtrZXk6Im9uTW91c2VVcCIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgeT1Xdy5nZXQodGhpcyksQz15LnRhcmdldC5yb3csST15LnJvd3NUb01vdmUubGVuZ3RoO2lmKHkucHJlc3NlZD0hMSx5LmJhY2tsaWdodEhlaWdodD0wLHBsKHRoaXMuaG90LnJvb3RFbGVtZW50LFtnZ2Usa25lLG1nZV0pLHRoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVj''@;'; + put 'put ''dGVkQnlSb3dIZWFkZXIoKSYmTzAodGhpcy5ob3Qucm9vdEVsZW1lbnQsbWdlKSwhKEk8MXx8dm9pZCAwPT09Qykpe3ZhciB1ZT10aGlzLmhvdC50b1BoeXNpY2FsUm93KHkucm93c1RvTW92ZVswXSksX2U9dGhpcy5kcmFnUm93cyh5LnJvd3NUb01vdmUsQyk7aWYoeS5yb3dzVG9Nb3ZlLmxl''@;'; + put 'put ''bmd0aD0wLCEwPT09X2Upe3RoaXMucGVyc2lzdGVudFN0YXRlU2F2ZSgpLHRoaXMuaG90LnJlbmRlcigpLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKTt2YXIgQmU9dGhpcy5ob3QudG9WaXN1YWxSb3codWUpO3RoaXMuaG90LnNlbGVjdFJvd3MoQmUsQmUrSS0xKX19fX0s''@;'; + put 'put ''e2tleToib25BZnRlclNjcm9sbEhvcml6b250YWxseSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLGo9dGhpcy5ob3Qudmlldy5fd3Qud3RWaWV3cG9ydC5nZXRSb3dIZWFkZXJXaWR0aCgpK3kuaG9sZGVyLnNjcm9sbExlZnQ7dGhpcy5iYWNrbGln''@;'; + put 'put ''aHQuc2V0UG9zaXRpb24obnVsbCxqKSx0aGlzLmJhY2tsaWdodC5zZXRTaXplKHkuaGlkZXIub2Zmc2V0V2lkdGgtail9fSx7a2V5OiJidWlsZFBsdWdpblVJIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYmFja2xpZ2h0LmJ1aWxkKCksdGhpcy5ndWlkZWxpbmUuYnVpbGQoKX19LHtrZXk6Im9u''@;'; + put 'put ''QWZ0ZXJMb2FkRGF0YSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1vdmVCeVNldHRpbmdzT3JMb2FkKCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYmFja2xpZ2h0LmRlc3Ryb3koKSx0aGlzLmd1aWRlbGluZS5kZXN0cm95KCksbE0oWDkoaC5wcm90b3R5cGUpLCJk''@;'; + put 'put ''ZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcGdlfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTQwfX1dKSxofShZcyk7ZnVuY3Rpb24gdmdlKGQpe3JldHVybih2Z2U9ImZ1''@;'; + put 'put ''bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5''@;'; + put 'put ''bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBUSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFi''@;'; + put 'put ''bGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBzTSgpe3JldHVybiBzTT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9bmR0KGcsaCk7aWYoeSl7dmFy''@;'; + put 'put ''IEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxzTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbmR0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5o''@;'; + put 'put ''YXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1LOShkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBBZ2UoZCxnKXtyZXR1cm4oQWdlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19f''@;'; + put 'put ''PXksdn0pKGQsZyl9ZnVuY3Rpb24gb2R0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09dmdlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0''@;'; + put 'put ''IG9yIHVuZGVmaW5lZCIpO3JldHVybiB5Z2UoZCl9ZnVuY3Rpb24geWdlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBL''@;'; + put 'put ''OShkKXtyZXR1cm4oSzk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgREllLExJZSxPSWUsUkllLFNuZT0ibWFudWFsUm93UmVz''@;'; + put 'put ''aXplIixJSWU9Im1hbnVhbFJvd0hlaWdodHMiLHdnZT1uZXcgV2Vha01hcCxzZHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHJkdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJl''@;'; + put 'put ''IG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9''@;'; + put 'put ''KSxnJiZBZ2UoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBpZHQoZCl7dmFyIGc9ZnVuY3Rpb24gYWR0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlw''@;'; + put 'put ''ZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9SzkoZCk7aWYo''@;'; + put 'put ''Zyl7dmFyIEM9SzkodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG9kdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTshZnVuY3Rpb24gZWR0KGQsZyl7aWYoIShk''@;'; + put 'put ''IGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCk7dmFyIEM9KHk9Zy5jYWxsKHRoaXMsdikpLmhvdC5yb290RG9jdW1lbnQ7cmV0dXJuIHkuY3VycmVudFRIPW51bGwseS5jdXJyZW50Um93PW51bGws''@;'; + put 'put ''eS5zZWxlY3RlZFJvd3M9W10seS5jdXJyZW50SGVpZ2h0PW51bGwseS5uZXdTaXplPW51bGwseS5zdGFydFk9bnVsbCx5LnN0YXJ0SGVpZ2h0PW51bGwseS5zdGFydE9mZnNldD1udWxsLHkuaGFuZGxlPUMuY3JlYXRlRWxlbWVudCgiRElWIikseS5ndWlkZT1DLmNyZWF0ZUVsZW1lbnQoIkRJ''@;'; + put 'put ''ViIpLHkuZXZlbnRNYW5hZ2VyPW5ldyBMMSh5Z2UoeSkpLHkucHJlc3NlZD1udWxsLHkuZGJsY2xpY2s9MCx5LmF1dG9yZXNpemVUaW1lb3V0PW51bGwseS5yb3dIZWlnaHRzTWFwPXZvaWQgMCx3Z2Uuc2V0KHlnZSh5KSx7Y29uZmlnOnZvaWQgMH0pLE8wKHkuaGFuZGxlLCJtYW51YWxSb3dS''@;'; + put 'put ''ZXNpemVyIiksTzAoeS5ndWlkZSwibWFudWFsUm93UmVzaXplckd1aWRlIikseX1yZXR1cm4gZnVuY3Rpb24gdGR0KGQsZyxoKXtnJiZUSWUoZC5wcm90b3R5cGUsZyksaCYmVEllKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3tr''@;'; + put 'put ''ZXk6ImlubGluZURpciIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaG90LmlzUnRsKCk/InJpZ2h0IjoibGVmdCJ9fSx7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaG90LmdldFNldHRpbmdzKClbU25lXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMucm93SGVpZ2h0c01hcD1uZXcgVHcsdGhpcy5yb3dIZWlnaHRzTWFwLmFkZExvY2FsSG9vaygiaW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1hcEluaXQoKX0pLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnJl''@;'; + put 'put ''Z2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSx0aGlzLnJvd0hlaWdodHNNYXApLHRoaXMuYWRkSG9vaygibW9kaWZ5Um93SGVpZ2h0IixmdW5jdGlvbihDLEkpe3JldHVybiB5Lm9uTW9kaWZ5Um93SGVpZ2h0KEMsSSl9KSx0aGlzLmJpbmRFdmVudHMoKSxzTShLOShoLnByb3RvdHlwZSksImVu''@;'; + put 'put ''YWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxzTShLOShoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtr''@;'; + put 'put ''ZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7d2dlLmdldCh0aGlzKS5jb25maWc9dGhpcy5yb3dIZWlnaHRzTWFwLmdldFZhbHVlcygpLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSxzTShLOShoLnByb3RvdHlwZSksImRp''@;'; + put 'put ''c2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJzYXZlTWFudWFsUm93SGVpZ2h0cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlU2F2ZSIsSUllLHRoaXMucm93SGVpZ2h0c01hcC5nZXRWYWx1ZXMoKSl9fSx7a2V5OiJsb2Fk''@;'; + put 'put ''TWFudWFsUm93SGVpZ2h0cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT17fTtyZXR1cm4gdGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZUxvYWQiLElJZSx5KSx5LnZhbHVlfX0se2tleToic2V0TWFudWFsU2l6ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmhvdC50''@;'; + put 'put ''b1BoeXNpY2FsUm93KHkpLGo9TWF0aC5tYXgoQyxGQ2UuREVGQVVMVF9IRUlHSFQpO3JldHVybiB0aGlzLnJvd0hlaWdodHNNYXAuc2V0VmFsdWVBdEluZGV4KEksaiksan19LHtrZXk6InNldHVwSGFuZGxlUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7dGhpcy5jdXJy''@;'; + put 'put ''ZW50VEg9eTt2YXIgST10aGlzLmhvdC52aWV3LGo9SS5fd3QsdWU9ai53dFRhYmxlLmdldENvb3Jkcyh0aGlzLmN1cnJlbnRUSCksX2U9dWUucm93O2lmKCEoX2U8MCkpe3ZhciBPdCxCZT1FMih0aGlzLmN1cnJlbnRUSCksTmU9dGhpcy5jdXJyZW50VEguZ2V0Qm91bmRpbmdDbGllbnRSZWN0''@;'; + put 'put ''KCksS2U9X2U8ai5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKSxkdD1fZT49SS5jb3VudE5vdEhpZGRlblJvd0luZGV4ZXMoMCwxKS1qLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpO0tlP090PWoud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkuZ2V0UmVsYXRp''@;'; + put 'put ''dmVDZWxsUG9zaXRpb24odGhpcy5jdXJyZW50VEgsdWUucm93LHVlLmNvbCk6ZHQmJihPdD1qLnd0T3ZlcmxheXMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmdldFJlbGF0aXZlQ2VsbFBvc2l0aW9uKHRoaXMuY3VycmVudFRILHVlLnJvdyx1ZS5jb2wpKSxPdHx8KE90PWoud3RP''@;'; + put 'put ''dmVybGF5cy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb24odGhpcy5jdXJyZW50VEgsdWUucm93LHVlLmNvbCkpLHRoaXMuY3VycmVudFJvdz10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KF9lKSx0aGlzLnNlbGVj''@;'; + put 'put ''dGVkUm93cz1bXTt2YXIgJHQ9dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpfHx0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCk7dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWQoKSYmJHQmJlVyKHRoaXMuaG90LmdldFNlbGVjdGVkUmFu''@;'; + put 'put ''Z2UoKSxmdW5jdGlvbihMbil7aWEoTG4uZ2V0VG9wU3RhcnRDb3JuZXIoKS5yb3csTG4uZ2V0Qm90dG9tU3RhcnRDb3JuZXIoKS5yb3csZnVuY3Rpb24oU3Ipe0Muc2VsZWN0ZWRSb3dzLmluY2x1ZGVzKFNyKXx8Qy5zZWxlY3RlZFJvd3MucHVzaChTcil9KX0pLHRoaXMuc2VsZWN0ZWRSb3dz''@;'; + put 'put ''LmluY2x1ZGVzKHRoaXMuY3VycmVudFJvdyl8fCh0aGlzLnNlbGVjdGVkUm93cz1bdGhpcy5jdXJyZW50Um93XSksdGhpcy5zdGFydE9mZnNldD1PdC50b3AtNix0aGlzLnN0YXJ0SGVpZ2h0PXBhcnNlSW50KE5lLmhlaWdodCwxMCksdGhpcy5oYW5kbGUuc3R5bGUudG9wPSIiLmNvbmNhdCh0''@;'; + put 'put ''aGlzLnN0YXJ0T2Zmc2V0K3RoaXMuc3RhcnRIZWlnaHQsInB4IiksdGhpcy5oYW5kbGUuc3R5bGVbdGhpcy5pbmxpbmVEaXJdPSIiLmNvbmNhdChPdC5zdGFydCwicHgiKSx0aGlzLmhhbmRsZS5zdHlsZS53aWR0aD0iIi5jb25jYXQoQmUsInB4IiksdGhpcy5ob3Qucm9vdEVsZW1lbnQuYXBw''@;'; + put 'put ''ZW5kQ2hpbGQodGhpcy5oYW5kbGUpfX19LHtrZXk6InJlZnJlc2hIYW5kbGVQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhhbmRsZS5zdHlsZS50b3A9IiIuY29uY2F0KHRoaXMuc3RhcnRPZmZzZXQrdGhpcy5jdXJyZW50SGVpZ2h0LCJweCIpfX0se2tleToic2V0dXBHdWlkZVBv''@;'; + put 'put ''c2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXBhcnNlSW50KEUyKHRoaXMuaGFuZGxlKSwxMCksQz1wYXJzZUludCh0aGlzLmhhbmRsZS5zdHlsZVt0aGlzLmlubGluZURpcl0sMTApK3ksST1wYXJzZUludCh0aGlzLmhvdC52aWV3Lm1heGltdW1WaXNpYmxlRWxlbWVudFdpZHRoKDAp''@;'; + put 'put ''LDEwKTtPMCh0aGlzLmhhbmRsZSwiYWN0aXZlIiksTzAodGhpcy5ndWlkZSwiYWN0aXZlIiksdGhpcy5ndWlkZS5zdHlsZS50b3A9dGhpcy5oYW5kbGUuc3R5bGUudG9wLHRoaXMuZ3VpZGUuc3R5bGVbdGhpcy5pbmxpbmVEaXJdPSIiLmNvbmNhdChDLCJweCIpLHRoaXMuZ3VpZGUuc3R5bGUu''@;'; + put 'put ''d2lkdGg9IiIuY29uY2F0KEkteSwicHgiKSx0aGlzLmhvdC5yb290RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmd1aWRlKX19LHtrZXk6InJlZnJlc2hHdWlkZVBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZ3VpZGUuc3R5bGUudG9wPXRoaXMuaGFuZGxlLnN0eWxlLnRvcH19LHtr''@;'; + put 'put ''ZXk6ImhpZGVIYW5kbGVBbmRHdWlkZSIsdmFsdWU6ZnVuY3Rpb24oKXtwbCh0aGlzLmhhbmRsZSwiYWN0aXZlIikscGwodGhpcy5ndWlkZSwiYWN0aXZlIil9fSx7a2V5OiJjaGVja0lmUm93SGVhZGVyIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQyxJO3JldHVybiBTOSh5LFsiVEgiXSx0aGlz''@;'; + put 'put ''LmhvdC5yb290RWxlbWVudCkmJiJUQk9EWSI9PT0obnVsbD09PShDPXkucGFyZW50Tm9kZSl8fHZvaWQgMD09PUN8fG51bGw9PT0oST1DLnBhcmVudE5vZGUpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLnRhZ05hbWUpfX0se2tleToiZ2V0Q2xvc2VzdFRIUGFyZW50Iix2YWx1ZTpmdW5jdGlvbih5''@;'; + put 'put ''KXtyZXR1cm4iVEFCTEUiIT09eS50YWdOYW1lPyJUSCI9PT15LnRhZ05hbWU/eTp0aGlzLmdldENsb3Nlc3RUSFBhcmVudCh5LnBhcmVudE5vZGUpOm51bGx9fSx7a2V5OiJnZXRBY3R1YWxSb3dIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFi''@;'; + put 'put ''bGUuZ2V0Um93SGVpZ2h0KHkpO3JldHVybiB2b2lkIDAhPT1DJiZ0aGlzLm5ld1NpemU8Qz9DOnRoaXMubmV3U2l6ZX19LHtrZXk6Im9uTW91c2VPdmVyIix2YWx1ZTpmdW5jdGlvbih5KXtpZighdjNlKHkudGFyZ2V0KSYmdGhpcy5jaGVja0lmUm93SGVhZGVyKHkudGFyZ2V0KSl7dmFyIEM9''@;'; + put 'put ''dGhpcy5nZXRDbG9zZXN0VEhQYXJlbnQoeS50YXJnZXQpO0MmJih0aGlzLnByZXNzZWR8fHRoaXMuc2V0dXBIYW5kbGVQb3NpdGlvbihDKSl9fX0se2tleToiYWZ0ZXJNb3VzZURvd25UaW1lb3V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1mdW5jdGlvbigpe3kuaG90LmZvcmNl''@;'; + put 'put ''RnVsbFJlbmRlcj0hMCx5LmhvdC52aWV3LnJlbmRlcigpLHkuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKX0sST1mdW5jdGlvbihfZSxCZSl7dmFyIE5lPXkuaG90LnJ1bkhvb2tzKCJiZWZvcmVSb3dSZXNpemUiLHkuZ2V0QWN0dWFsUm93SGVpZ2h0KF9lKSxfZSwhMCk7dm9pZCAw''@;'; + put 'put ''IT09TmUmJih5Lm5ld1NpemU9TmUpLHkuc2V0TWFudWFsU2l6ZShfZSx5Lm5ld1NpemUpLHkuaG90LnJ1bkhvb2tzKCJhZnRlclJvd1Jlc2l6ZSIseS5nZXRBY3R1YWxSb3dIZWlnaHQoX2UpLF9lLCEwKSxCZSYmQygpfTt0aGlzLmRibGNsaWNrPj0yJiYodGhpcy5zZWxlY3RlZFJvd3MubGVu''@;'; + put 'put ''Z3RoPjE/KFVyKHRoaXMuc2VsZWN0ZWRSb3dzLGZ1bmN0aW9uKHVlKXtJKHVlKX0pLEMoKSk6VXIodGhpcy5zZWxlY3RlZFJvd3MsZnVuY3Rpb24odWUpe0kodWUsITApfSkpLHRoaXMuZGJsY2xpY2s9MCx0aGlzLmF1dG9yZXNpemVUaW1lb3V0PW51bGx9fSx7a2V5OiJvbk1vdXNlRG93biIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpczt0bCh5LnRhcmdldCwibWFudWFsUm93UmVzaXplciIpJiYodGhpcy5zZXR1cEhhbmRsZVBvc2l0aW9uKHRoaXMuY3VycmVudFRIKSx0aGlzLnNldHVwR3VpZGVQb3NpdGlvbigpLHRoaXMucHJlc3NlZD0hMCxudWxsPT09dGhpcy5hdXRvcmVz''@;'; + put 'put ''aXplVGltZW91dCYmKHRoaXMuYXV0b3Jlc2l6ZVRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBDLmFmdGVyTW91c2VEb3duVGltZW91dCgpfSw1MDApLHRoaXMuaG90Ll9yZWdpc3RlclRpbWVvdXQodGhpcy5hdXRvcmVzaXplVGltZW91dCkpLHRoaXMuZGJsY2xpY2srPTEs''@;'; + put 'put ''dGhpcy5zdGFydFk9eS5wYWdlWSx0aGlzLm5ld1NpemU9dGhpcy5zdGFydEhlaWdodCl9fSx7a2V5OiJvbk1vdXNlTW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpczt0aGlzLnByZXNzZWQmJih0aGlzLmN1cnJlbnRIZWlnaHQ9dGhpcy5zdGFydEhlaWdodCsoeS5wYWdlWS10aGlz''@;'; + put 'put ''LnN0YXJ0WSksVXIodGhpcy5zZWxlY3RlZFJvd3MsZnVuY3Rpb24oSSl7Qy5uZXdTaXplPUMuc2V0TWFudWFsU2l6ZShJLEMuY3VycmVudEhlaWdodCl9KSx0aGlzLnJlZnJlc2hIYW5kbGVQb3NpdGlvbigpLHRoaXMucmVmcmVzaEd1aWRlUG9zaXRpb24oKSl9fSx7a2V5OiJvbk1vdXNlVXAi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPWZ1bmN0aW9uKCl7eS5ob3QuZm9yY2VGdWxsUmVuZGVyPSEwLHkuaG90LnZpZXcucmVuZGVyKCkseS5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApfSxJPWZ1bmN0aW9uKF9lLEJlKXt5LmhvdC5ydW5Ib29rcygiYmVmb3JlUm93''@;'; + put 'put ''UmVzaXplIix5LmdldEFjdHVhbFJvd0hlaWdodChfZSksX2UsITEpLEJlJiZDKCkseS5zYXZlTWFudWFsUm93SGVpZ2h0cygpLHkuaG90LnJ1bkhvb2tzKCJhZnRlclJvd1Jlc2l6ZSIseS5nZXRBY3R1YWxSb3dIZWlnaHQoX2UpLF9lLCExKX07dGhpcy5wcmVzc2VkJiYodGhpcy5oaWRlSGFu''@;'; + put 'put ''ZGxlQW5kR3VpZGUoKSx0aGlzLnByZXNzZWQ9ITEsdGhpcy5uZXdTaXplIT09dGhpcy5zdGFydEhlaWdodCYmKHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aD4xPyhVcih0aGlzLnNlbGVjdGVkUm93cyxmdW5jdGlvbih1ZSl7SSh1ZSl9KSxDKCkpOlVyKHRoaXMuc2VsZWN0ZWRSb3dzLGZ1bmN0''@;'; + put 'put ''aW9uKHVlKXtJKHVlLCEwKX0pKSx0aGlzLnNldHVwSGFuZGxlUG9zaXRpb24odGhpcy5jdXJyZW50VEgpKX19LHtrZXk6ImJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LEk9Qy5yb290RWxlbWVudCxqPUMucm9vdFdpbmRvdzt0aGlzLmV2ZW50TWFu''@;'; + put 'put ''YWdlci5hZGRFdmVudExpc3RlbmVyKEksIm1vdXNlb3ZlciIsZnVuY3Rpb24odWUpe3JldHVybiB5Lm9uTW91c2VPdmVyKHVlKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSSwibW91c2Vkb3duIixmdW5jdGlvbih1ZSl7cmV0dXJuIHkub25Nb3VzZURvd24odWUpfSks''@;'; + put 'put ''dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihqLCJtb3VzZW1vdmUiLGZ1bmN0aW9uKHVlKXtyZXR1cm4geS5vbk1vdXNlTW92ZSh1ZSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGosIm1vdXNldXAiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25Nb3VzZVVw''@;'; + put 'put ''KCl9KX19LHtrZXk6Im9uTW9kaWZ5Um93SGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXk7aWYodGhpcy5lbmFibGVkKXt2YXIgaj10aGlzLmhvdC50b1BoeXNpY2FsUm93KEMpLHVlPXRoaXMucm93SGVpZ2h0c01hcC5nZXRWYWx1ZUF0SW5kZXgoaik7dGhpcy5ob3QuZ2V0U2V0''@;'; + put 'put ''dGluZ3MoKVtTbmVdJiZ1ZSYmKEk9dWUpfXJldHVybiBJfX0se2tleToib25NYXBJbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz13Z2UuZ2V0KHRoaXMpLEk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtTbmVdLGo9dGhpcy5sb2FkTWFudWFsUm93SGVpZ2h0cygpO3RoaXMuaG90''@;'; + put 'put ''LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7dm9pZCAwIT09aj9qLmZvckVhY2goZnVuY3Rpb24odWUsX2Upe3kucm93SGVpZ2h0c01hcC5zZXRWYWx1ZUF0SW5kZXgoX2UsdWUpfSk6QXJyYXkuaXNBcnJheShJKT8oSS5mb3JFYWNoKGZ1bmN0aW9uKHVlLF9lKXt5LnJvd0hlaWdodHNNYXAu''@;'; + put 'put ''c2V0VmFsdWVBdEluZGV4KF9lLHVlKX0pLEMuY29uZmlnPUkpOiEwPT09SSYmQXJyYXkuaXNBcnJheShDLmNvbmZpZykmJkMuY29uZmlnLmZvckVhY2goZnVuY3Rpb24odWUsX2Upe3kucm93SGVpZ2h0c01hcC5zZXRWYWx1ZUF0SW5kZXgoX2UsdWUpfSl9LCEwKX19LHtrZXk6ImRlc3Ryb3ki''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7c00oSzkoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gU25lfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMzB9fV0p''@;'; + put 'put ''LGh9KFlzKTtmdW5jdGlvbiBNbmUoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfWZ1bmN0aW9uIEJJZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7''@;'; + put 'put ''aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBmZHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCx2LHks''@;'; + put 'put ''QyxJKXsoZnVuY3Rpb24gdWR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMucm93PWcsdGhpcy5jb2w9aCx0aGlzLnJvd3NwYW49dix0aGlzLmNvbHNwYW49eSx0''@;'; + put 'put ''aGlzLnJlbW92ZWQ9ITEsdGhpcy5jZWxsQ29vcmRzRmFjdG9yeT1DLHRoaXMuY2VsbFJhbmdlRmFjdG9yeT1JfXJldHVybiBmdW5jdGlvbiBjZHQoZCxnLGgpe2cmJkJJZShkLnByb3RvdHlwZSxnKSxoJiZCSWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3Jp''@;'; + put 'put ''dGFibGU6ITF9KX0oZCxbe2tleToibm9ybWFsaXplIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1oLmNvdW50Um93cygpLHk9aC5jb3VudENvbHMoKTt0aGlzLnJvdzwwP3RoaXMucm93PTA6dGhpcy5yb3c+di0xJiYodGhpcy5yb3c9di0xKSx0aGlzLmNvbDwwP3RoaXMuY29sPTA6dGhpcy5j''@;'; + put 'put ''b2w+eS0xJiYodGhpcy5jb2w9eS0xKSx0aGlzLnJvdyt0aGlzLnJvd3NwYW4+di0xJiYodGhpcy5yb3dzcGFuPXYtdGhpcy5yb3cpLHRoaXMuY29sK3RoaXMuY29sc3Bhbj55LTEmJih0aGlzLmNvbHNwYW49eS10aGlzLmNvbCl9fSx7a2V5OiJpbmNsdWRlcyIsdmFsdWU6ZnVuY3Rpb24oaCx2''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy5yb3c8PWgmJnRoaXMuY29sPD12JiZ0aGlzLnJvdyt0aGlzLnJvd3NwYW4tMT49aCYmdGhpcy5jb2wrdGhpcy5jb2xzcGFuLTE+PXZ9fSx7a2V5OiJpbmNsdWRlc0hvcml6b250YWxseSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sPD1oJiZ0aGlzLmNv''@;'; + put 'put ''bCt0aGlzLmNvbHNwYW4tMT49aH19LHtrZXk6ImluY2x1ZGVzVmVydGljYWxseSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93PD1oJiZ0aGlzLnJvdyt0aGlzLnJvd3NwYW4tMT49aH19LHtrZXk6InNoaWZ0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWhbMF18fGhbMV0s''@;'; + put 'put ''Qz12K01hdGguYWJzKGhbMF18fGhbMV0pLTEsST1oWzBdPyJjb2xzcGFuIjoicm93c3BhbiIsaj1oWzBdPyJjb2wiOiJyb3ciLHVlPU1hdGgubWluKHYsQyksX2U9TWF0aC5tYXgodixDKSxCZT10aGlzW2pdLE5lPXRoaXNbal0rdGhpc1tJXS0xO2lmKEJlPj12JiYodGhpc1tqXSs9eSkseT4w''@;'; + put 'put ''KXY8PU5lJiZ2PkJlJiYodGhpc1tJXSs9eSk7ZWxzZSBpZih5PDApe2lmKHVlPD1CZSYmX2U+PU5lKXJldHVybiB0aGlzLnJlbW92ZWQ9ITAsITE7aWYoQmU+PXVlJiZCZTw9X2Upe3ZhciBLZT1fZS1CZSsxLGR0PU1hdGguYWJzKHkpLUtlO3RoaXNbal0tPWR0K3ksdGhpc1tJXS09S2V9ZWxz''@;'; + put 'put ''ZSBCZTw9dWUmJk5lPj1fZT90aGlzW0ldKz15OkJlPD11ZSYmTmU+PXVlJiZOZTxfZSYmKHRoaXNbSV0tPU5lLXVlKzEpfXJldHVybiEwfX0se2tleToiaXNGYXJ0aGVyIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiFofHwoImRvd24iPT09dj9oLnJvdytoLnJvd3NwYW4tMTx0aGlzLnJv''@;'; + put 'put ''dyt0aGlzLnJvd3NwYW4tMToidXAiPT09dj9oLnJvdz50aGlzLnJvdzoicmlnaHQiPT09dj9oLmNvbCtoLmNvbHNwYW4tMTx0aGlzLmNvbCt0aGlzLmNvbHNwYW4tMToibGVmdCI9PT12P2guY29sPnRoaXMuY29sOm51bGwpfX0se2tleToiZ2V0TGFzdFJvdyIsdmFsdWU6ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5yb3crdGhpcy5yb3dzcGFuLTF9fSx7a2V5OiJnZXRMYXN0Q29sdW1uIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbCt0aGlzLmNvbHNwYW4tMX19LHtrZXk6ImdldFJhbmdlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNlbGxSYW5nZUZhY3Rvcnko''@;'; + put 'put ''dGhpcy5jZWxsQ29vcmRzRmFjdG9yeSh0aGlzLnJvdyx0aGlzLmNvbCksdGhpcy5jZWxsQ29vcmRzRmFjdG9yeSh0aGlzLnJvdyx0aGlzLmNvbCksdGhpcy5jZWxsQ29vcmRzRmFjdG9yeSh0aGlzLmdldExhc3RSb3coKSx0aGlzLmdldExhc3RDb2x1bW4oKSkpfX1dLFt7a2V5OiJORUdBVElW''@;'; + put 'put ''RV9WQUxVRVNfV0FSTklORyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIEIyKERJZXx8KERJZT1NbmUoWyJUaGUgbWVyZ2VkIGNlbGwgZGVjbGFyZWQgd2l0aCB7cm93OiAiLCIsIGNvbDogIiwiLCBcbiAgICAgIHJvd3NwYW46ICIsIiwgY29sc3BhbjogIiwifSBjb250YWlucyBuZWdhdGl2''@;'; + put 'put ''ZSB2YWx1ZXMsIHdoaWNoIGlzIFxuICAgICAgbm90IHN1cHBvcnRlZC4gSXQgd2lsbCBub3QgYmUgYWRkZWQgdG8gdGhlIGNvbGxlY3Rpb24uIl0sWyJUaGUgbWVyZ2VkIGNlbGwgZGVjbGFyZWQgd2l0aCB7cm93OiAiLCIsIGNvbDogIiwiLFxceDIwXG4gICAgICByb3dzcGFuOiAiLCIsIGNv''@;'; + put 'put ''bHNwYW46ICIsIn0gY29udGFpbnMgbmVnYXRpdmUgdmFsdWVzLCB3aGljaCBpc1xceDIwXG4gICAgICBub3Qgc3VwcG9ydGVkLiBJdCB3aWxsIG5vdCBiZSBhZGRlZCB0byB0aGUgY29sbGVjdGlvbi4iXSkpLGgucm93LGguY29sLGgucm93c3BhbixoLmNvbHNwYW4pfX0se2tleToiSVNfT1VU''@;'; + put 'put ''X09GX0JPVU5EU19XQVJOSU5HIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gQjIoTEllfHwoTEllPU1uZShbIlRoZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbIiwiLCAiLCJdIGlzIHBvc2l0aW9uZWQgXG4gICAgICAob3IgcG9zaXRpb25lZCBwYXJ0aWFsbHkpIG91dHNpZGUgb2YgdGhl''@;'; + put 'put ''IHRhYmxlIHJhbmdlLiBJdCB3YXMgbm90IGFkZGVkIHRvIHRoZSB0YWJsZSwgcGxlYXNlIGZpeCB5b3VyIHNldHVwLiJdLFsiVGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIGF0IFsiLCIsICIsIl0gaXMgcG9zaXRpb25lZFxceDIwXG4gICAgICAob3IgcG9zaXRpb25lZCBwYXJ0aWFsbHkpIG91''@;'; + put 'put ''dHNpZGUgb2YgdGhlIHRhYmxlIHJhbmdlLiBJdCB3YXMgbm90IGFkZGVkIHRvIHRoZSB0YWJsZSwgcGxlYXNlIGZpeCB5b3VyIHNldHVwLiJdKSksaC5yb3csaC5jb2wpfX0se2tleToiSVNfU0lOR0xFX0NFTEwiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBCMihPSWV8fChPSWU9TW5lKFsi''@;'; + put 'put ''VGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIGF0IFsiLCIsICIsJ10gaGFzIGJvdGggInJvd3NwYW4iIFxuICAgICAgYW5kICJjb2xzcGFuIiBkZWNsYXJlZCBhcyAiMSIsIHdoaWNoIG1ha2VzIGl0IGEgc2luZ2xlIGNlbGwuIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB0aGUgY29sbGVjdGlvbi4n''@;'; + put 'put ''XSxbIlRoZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbIiwiLCAiLCddIGhhcyBib3RoICJyb3dzcGFuIlxceDIwXG4gICAgICBhbmQgImNvbHNwYW4iIGRlY2xhcmVkIGFzICIxIiwgd2hpY2ggbWFrZXMgaXQgYSBzaW5nbGUgY2VsbC4gSXQgY2Fubm90IGJlIGFkZGVkIHRvIHRoZSBjb2xs''@;'; + put 'put ''ZWN0aW9uLiddKSksaC5yb3csaC5jb2wpfX0se2tleToiWkVST19TUEFOX1dBUk5JTkciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBCMihSSWV8fChSSWU9TW5lKFsiVGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIGF0IFsiLCIsICIsJ10gaGFzICJyb3dzcGFuIiBcbiAgICAgIG9yICJjb2xz''@;'; + put 'put ''cGFuIiBkZWNsYXJlZCBhcyAiMCIsIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQuIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB0aGUgY29sbGVjdGlvbi4nXSxbIlRoZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbIiwiLCAiLCddIGhhcyAicm93c3BhbiJcXHgyMFxuICAgICAgb3IgImNvbHNwYW4i''@;'; + put 'put ''IGRlY2xhcmVkIGFzICIwIiwgd2hpY2ggaXMgbm90IHN1cHBvcnRlZC4gSXQgY2Fubm90IGJlIGFkZGVkIHRvIHRoZSBjb2xsZWN0aW9uLiddKSksaC5yb3csaC5jb2wpfX0se2tleToiY29udGFpbnNOZWdhdGl2ZVZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGgucm93PDB8fGgu''@;'; + put 'put ''Y29sPDB8fGgucm93c3BhbjwwfHxoLmNvbHNwYW48MH19LHtrZXk6ImlzU2luZ2xlQ2VsbCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIDE9PT1oLmNvbHNwYW4mJjE9PT1oLnJvd3NwYW59fSx7a2V5OiJjb250YWluc1plcm9TcGFuIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gMD09PWgu''@;'; + put 'put ''Y29sc3Bhbnx8MD09PWgucm93c3Bhbn19LHtrZXk6ImlzT3V0T2ZCb3VuZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gaC5yb3c8MHx8aC5jb2w8MHx8aC5yb3c+PXZ8fGgucm93K2gucm93c3Bhbi0xPj12fHxoLmNvbD49eXx8aC5jb2wraC5jb2xzcGFuLTE+PXl9fV0pLGR9KCk7''@;'; + put 'put ''Y29uc3QgSGc9ZmR0O2Z1bmN0aW9uIGJnZShkLGcsaCx2KXtnP2cucm93PT09aCYmZy5jb2w9PT12PyhkLnNldEF0dHJpYnV0ZSgicm93c3BhbiIsZy5yb3dzcGFuLnRvU3RyaW5nKCkpLGQuc2V0QXR0cmlidXRlKCJjb2xzcGFuIixnLmNvbHNwYW4udG9TdHJpbmcoKSkpOihkLnJlbW92ZUF0''@;'; + put 'put ''dHJpYnV0ZSgicm93c3BhbiIpLGQucmVtb3ZlQXR0cmlidXRlKCJjb2xzcGFuIiksZC5zdHlsZS5kaXNwbGF5PSJub25lIik6KGQucmVtb3ZlQXR0cmlidXRlKCJyb3dzcGFuIiksZC5yZW1vdmVBdHRyaWJ1dGUoImNvbHNwYW4iKSxkLnN0eWxlLmRpc3BsYXk9IiIpfXZhciBQSWU7ZnVuY3Rp''@;'; + put 'put ''b24gRkllKGQpe3JldHVybiBmdW5jdGlvbiBtZHQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gX2dlKGQpfShkKXx8ZnVuY3Rpb24gZ2R0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3Ii''@;'; + put 'put ''XSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIHBkdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gX2dlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25z''@;'; + put 'put ''dHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBfZ2UoZCxnKX19KGQp''@;'; + put 'put ''fHxmdW5jdGlvbiBkZHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1l''@;'; + put 'put ''dGhvZC4iKX0oKX1mdW5jdGlvbiBfZ2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBISWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7''@;'; + put 'put ''dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgeWR0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24g''@;'; + put 'put ''dmR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMucGx1Z2luPWcsdGhpcy5tZXJnZWRDZWxscz1bXSx0aGlzLmhvdD1nLmhvdH1yZXR1cm4gZnVuY3Rpb24gQWR0''@;'; + put 'put ''KGQsZyxoKXtnJiZISWUoZC5wcm90b3R5cGUsZyksaCYmSEllKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgQz0hMTtyZXR1cm4gVXIodGhpcy5tZXJnZWRDZWxscyxm''@;'; + put 'put ''dW5jdGlvbihJKXtyZXR1cm4hKEkucm93PD1oJiZJLnJvdytJLnJvd3NwYW4tMT49aCYmSS5jb2w8PXYmJkkuY29sK0kuY29sc3Bhbi0xPj12JiYoQz1JLDEpKX0pLEN9fSx7a2V5OiJnZXRCeVJhbmdlIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgeT0hMTtyZXR1cm4gVXIodGhpcy5tZXJnZWRD''@;'; + put 'put ''ZWxscyxmdW5jdGlvbihDKXtyZXR1cm4hKEMucm93PD1oLmZyb20ucm93JiZDLnJvdytDLnJvd3NwYW4tMT49aC50by5yb3cmJkMuY29sPD1oLmZyb20uY29sJiZDLmNvbCtDLmNvbHNwYW4tMT49aC50by5jb2wpfHwoeT1DKX0pLHl9fSx7a2V5OiJnZXRXaXRoaW5SYW5nZSIsdmFsdWU6ZnVu''@;'; + put 'put ''Y3Rpb24oaCl7dmFyIHY9dGhpcyx5PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sQz10aGlzLm1lcmdlZENlbGxzLEk9W10saj1oO2lmKCFqLmluY2x1ZGVzUmFuZ2Upe3ZhciB1ZT10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhqLmZy''@;'; + put 'put ''b20ucm93LGouZnJvbS5jb2wpLF9lPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGoudG8ucm93LGoudG8uY29sKTtqPXRoaXMuaG90Ll9jcmVhdGVDZWxsUmFuZ2UodWUsdWUsX2UpfXJldHVybiBVcihDLGZ1bmN0aW9uKEJlKXt2YXIgTmU9di5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQmUu''@;'; + put 'put ''cm93LEJlLmNvbCksS2U9di5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQmUucm93K0JlLnJvd3NwYW4tMSxCZS5jb2wrQmUuY29sc3Bhbi0xKSxkdD12LmhvdC5fY3JlYXRlQ2VsbFJhbmdlKE5lLE5lLEtlKTt5P2oub3ZlcmxhcHMoZHQpJiZJLnB1c2goQmUpOmouaW5jbHVkZXNSYW5nZShkdCkm''@;'; + put 'put ''JkkucHVzaChCZSl9KSwhIUkubGVuZ3RoJiZJfX0se2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLm1lcmdlZENlbGxzLHk9aC5yb3csQz1oLmNvbCx1ZT1uZXcgSGcoeSxDLGgucm93c3BhbixoLmNvbHNwYW4sdGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMsdGhpcy5o''@;'; + put 'put ''b3QuX2NyZWF0ZUNlbGxSYW5nZSksX2U9dGhpcy5nZXQoeSxDKSxCZT10aGlzLmlzT3ZlcmxhcHBpbmcodWUpO3JldHVybiBfZXx8QmU/KGwxKGQuSVNfT1ZFUkxBUFBJTkdfV0FSTklORyh1ZSkpLCExKToodGhpcy5ob3QmJnVlLm5vcm1hbGl6ZSh0aGlzLmhvdCksdi5wdXNoKHVlKSx1ZSl9''@;'; + put 'put ''fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5tZXJnZWRDZWxscyxDPXRoaXMuZ2V0KGgsdiksST1DP3RoaXMubWVyZ2VkQ2VsbHMuaW5kZXhPZihDKTotMTtyZXR1cm4hKCFDfHwtMT09PUkpJiYoeS5zcGxpY2UoSSwxKSxDKX19LHtrZXk6ImNsZWFyIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMseT1bXSxDPVtdO1VyKHRoaXMubWVyZ2VkQ2VsbHMsZnVuY3Rpb24oSSl7dmFyIGo9aC5ob3QuZ2V0Q2VsbChJLnJvdyxJLmNvbCk7aiYmeS5wdXNoKFtqLGguZ2V0KEkucm93LEkuY29sKSxJLnJvdyxJLmNvbF0pfSksdGhpcy5tZXJnZWRDZWxs''@;'; + put 'put ''cy5sZW5ndGg9MCxVcih5LGZ1bmN0aW9uKEksail7aWEoMCxJLnJvd3NwYW4tMSxmdW5jdGlvbih1ZSl7aWEoMCxJLmNvbHNwYW4tMSxmdW5jdGlvbihfZSl7aWYoMCE9PV9lfHwwIT09dWUpe3ZhciBCZT1oLmhvdC5nZXRDZWxsKEkucm93K3VlLEkuY29sK19lKTtCZSYmQy5wdXNoKFtCZSxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbF0pfX0pfSkseVtqXVsxXT1udWxsfSksVXIoeSxmdW5jdGlvbihJKXtiZ2UuYXBwbHkodm9pZCAwLEZJZShJKSl9KSxVcihDLGZ1bmN0aW9uKEkpe2JnZS5hcHBseSh2b2lkIDAsRkllKEkpKX0pfX0se2tleToiaXNPdmVybGFwcGluZyIsdmFsdWU6ZnVuY3Rpb24oaCl7''@;'; + put 'put ''dmFyIHY9dGhpcyx5PXRoaXMuaG90Ll9jcmVhdGVDZWxsUmFuZ2UodGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoMCwwKSx0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhoLnJvdyxoLmNvbCksdGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoaC5yb3craC5yb3dzcGFuLTEsaC5jb2wraC5j''@;'; + put 'put ''b2xzcGFuLTEpKSxDPSExO3JldHVybiBVcih0aGlzLm1lcmdlZENlbGxzLGZ1bmN0aW9uKEkpe3JldHVybiF2LmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHYuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKDAsMCksdi5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSS5yb3csSS5jb2wpLHYuaG90Ll9jcmVhdGVD''@;'; + put 'put ''ZWxsQ29vcmRzKEkucm93K0kucm93c3Bhbi0xLEkuY29sK0kuY29sc3Bhbi0xKSkub3ZlcmxhcHMoeSl8fChDPSEwLCExKX0pLEN9fSx7a2V5OiJpc0ZpcnN0UmVuZGVyYWJsZU1lcmdlZENlbGwiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5nZXQoaCx2KTtyZXR1cm4geSYmdGhp''@;'; + put 'put ''cy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHkucm93LDEpPT09aCYmdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHkuY29sLDEpPT09dn19LHtrZXk6ImdldEZpcnN0UmVuZGVyYWJsZUNvb3JkcyIsdmFsdWU6''@;'; + put 'put ''ZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzLmdldChoLHYpO2lmKCF5fHx0aGlzLmlzRmlyc3RSZW5kZXJhYmxlTWVyZ2VkQ2VsbChoLHYpKXJldHVybiB0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhoLHYpO3ZhciBDPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRk''@;'; + put 'put ''ZW5JbmRleCh5LnJvdywxKSxJPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh5LmNvbCwxKTtyZXR1cm4gdGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQyxJKX19LHtrZXk6InNoaWZ0Q29sbGVjdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5''@;'; + put 'put ''KXt2YXIgQz10aGlzLEk9WzAsMF07c3dpdGNoKGgpe2Nhc2UicmlnaHQiOklbMF0rPXk7YnJlYWs7Y2FzZSJsZWZ0IjpJWzBdLT15O2JyZWFrO2Nhc2UiZG93biI6SVsxXSs9eTticmVhaztjYXNlInVwIjpJWzFdLT15fVVyKHRoaXMubWVyZ2VkQ2VsbHMsZnVuY3Rpb24oail7ai5zaGlmdChJ''@;'; + put 'put ''LHYpfSksc2VlKHRoaXMubWVyZ2VkQ2VsbHMubGVuZ3RoLTEsMCxmdW5jdGlvbihqKXt2YXIgdWU9Qy5tZXJnZWRDZWxsc1tqXTt1ZSYmdWUucmVtb3ZlZCYmQy5tZXJnZWRDZWxscy5zcGxpY2UoQy5tZXJnZWRDZWxscy5pbmRleE9mKHVlKSwxKX0pfX1dLFt7a2V5OiJJU19PVkVSTEFQUElO''@;'; + put 'put ''R19XQVJOSU5HIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gQjIoUEllfHwoUEllPWZ1bmN0aW9uIGhkdChkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9''@;'; + put 'put ''KFsiVGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIGF0IFsiLCIsICIsIl0sIG92ZXJsYXBzIFxuICAgICAgd2l0aCB0aGUgb3RoZXIgZGVjbGFyZWQgbWVyZ2VkIGNlbGwuIFRoZSBvdmVybGFwcGluZyBtZXJnZWQgY2VsbCB3YXMgbm90IGFkZGVkIHRvIHRoZSB0YWJsZSwgcGxlYXNlIFxuICAg''@;'; + put 'put ''ICAgZml4IHlvdXIgc2V0dXAuIl0sWyJUaGUgbWVyZ2VkIGNlbGwgZGVjbGFyZWQgYXQgWyIsIiwgIiwiXSwgb3ZlcmxhcHNcXHgyMFxuICAgICAgd2l0aCB0aGUgb3RoZXIgZGVjbGFyZWQgbWVyZ2VkIGNlbGwuIFRoZSBvdmVybGFwcGluZyBtZXJnZWQgY2VsbCB3YXMgbm90IGFkZGVkIHRv''@;'; + put 'put ''IHRoZSB0YWJsZSwgcGxlYXNlXFx4MjBcbiAgICAgIGZpeCB5b3VyIHNldHVwLiJdKSksaC5yb3csaC5jb2wpfX1dKSxkfSgpO2NvbnN0IHdkdD15ZHQ7ZnVuY3Rpb24gdU0oZCxnKXtyZXR1cm4gZnVuY3Rpb24ga2R0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5j''@;'; + put 'put ''dGlvbiBDZHQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLGosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0''@;'; + put 'put ''KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxqPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgan19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBf''@;'; + put 'put ''ZHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIE5JZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9''@;'; + put 'put ''PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gTkllKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBiZHQoKXt0aHJvdyBuZXcgVHlwZUVycm9y''@;'; + put 'put ''KCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIE5JZShkLGcpeyhu''@;'; + put 'put ''dWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFZJZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1l''@;'; + put 'put ''cmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBFZHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBTZHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5wbHVnaW49Zyx0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbj10aGlzLnBsdWdpbi5tZXJnZWRDZWxsc0NvbGxlY3Rpb24sdGhpcy5jdXJyZW50RmlsbERhdGE9bnVs''@;'; + put 'put ''bH1yZXR1cm4gZnVuY3Rpb24gTWR0KGQsZyxoKXtnJiZWSWUoZC5wcm90b3R5cGUsZyksaCYmVkllKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImNvcnJlY3RTZWxlY3Rpb25BcmVhU2l6ZSIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''aCl7aWYoaFswXT09PWhbMl0mJmhbMV09PT1oWzNdKXt2YXIgdj10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQoaFswXSxoWzFdKTt2JiYoaFsyXT1oWzBdK3Yucm93c3Bhbi0xLGhbM109aFsxXSt2LmNvbHNwYW4tMSl9fX0se2tleToiZ2V0RGlyZWN0aW9uIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bihoLHYpe3JldHVybiB2WzBdPT09aFswXSYmdlsxXT09PWhbMV0mJnZbM109PT1oWzNdPyJkb3duIjp2WzJdPT09aFsyXSYmdlsxXT09PWhbMV0mJnZbM109PT1oWzNdPyJ1cCI6dlsxXT09PWhbMV0mJnZbMl09PT1oWzJdPyJyaWdodCI6ImxlZnQifX0se2tleToic25hcERyYWdBcmVhIix2''@;'; + put 'put ''YWx1ZTpmdW5jdGlvbihoLHYseSxDKXt2YXIgST12LnNsaWNlKDApLGo9dGhpcy5nZXRBdXRvZmlsbFNpemUoaCx2LHkpLHVlPXVNKGgsNCksX2U9dWVbMF0sQmU9dWVbMV0sTmU9dWVbMl0sS2U9dWVbM10sT3Q9WyJ1cCIsImRvd24iXS5pbmRleE9mKHkpPi0xP05lLV9lKzE6S2UtQmUrMSxm''@;'; + put 'put ''bj1qLU1hdGguZmxvb3Ioai9PdCkqT3QsTG49dGhpcy5nZXRGYXJ0aGVzdENvbGxlY3Rpb24oaCx2LHksQyk7aWYoTG4paWYoImRvd24iPT09eSl7dmFyIGlyPUxuLnJvdytMbi5yb3dzcGFuLV9lLWZuO0lbMl0raXI+PXRoaXMucGx1Z2luLmhvdC5jb3VudFJvd3MoKT9JWzJdLT1mbjpJWzJd''@;'; + put 'put ''Kz1mbj9pcjowfWVsc2UgaWYoInJpZ2h0Ij09PXkpe3ZhciBTcj1Mbi5jb2wrTG4uY29sc3Bhbi1CZS1mbjtJWzNdK1NyPj10aGlzLnBsdWdpbi5ob3QuY291bnRDb2xzKCk/SVszXS09Zm46SVszXSs9Zm4/U3I6MH1lbHNlIGlmKCJ1cCI9PT15KXt2YXIgUXI9TmUtZm4tTG4ucm93KzE7SVsw''@;'; + put 'put ''XStRcjwwP0lbMF0rPWZuOklbMF0tPWZuP1FyOjB9ZWxzZSBpZigibGVmdCI9PT15KXt2YXIgS2k9S2UtZm4tTG4uY29sKzE7SVsxXStLaTwwP0lbMV0rPWZuOklbMV0tPWZuP0tpOjB9cmV0dXJuIHRoaXMudXBkYXRlQ3VycmVudEZpbGxDYWNoZSh7YmFzZUFyZWE6aCxkcmFnRGlyZWN0aW9u''@;'; + put 'put ''OnksZm91bmRNZXJnZWRDZWxsczpDLGZpbGxTaXplOmosZHJhZ0FyZWE6SSxjeWNsZUxlbmd0aDpPdH0pLEl9fSx7a2V5OiJ1cGRhdGVDdXJyZW50RmlsbENhY2hlIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmN1cnJlbnRGaWxsRGF0YXx8KHRoaXMuY3VycmVudEZpbGxEYXRhPXt9KSxJMSh0''@;'; + put 'put ''aGlzLmN1cnJlbnRGaWxsRGF0YSxoKX19LHtrZXk6ImdldEF1dG9maWxsU2l6ZSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXVNKGgsNCksST1DWzBdLGo9Q1sxXSx1ZT1DWzJdLF9lPUNbM10sQmU9dU0odiw0KSxOZT1CZVswXSxLZT1CZVsxXSxkdD1CZVsyXSxPdD1CZVszXTtzd2l0''@;'; + put 'put ''Y2goeSl7Y2FzZSJ1cCI6cmV0dXJuIEktTmU7Y2FzZSJkb3duIjpyZXR1cm4gZHQtdWU7Y2FzZSJsZWZ0IjpyZXR1cm4gai1LZTtjYXNlInJpZ2h0IjpyZXR1cm4gT3QtX2U7ZGVmYXVsdDpyZXR1cm4gbnVsbH19fSx7a2V5OiJnZXREcmFnQXJlYSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3Zh''@;'; + put 'put ''ciBDPXVNKGgsNCksST1DWzBdLGo9Q1sxXSx1ZT1DWzJdLF9lPUNbM10sQmU9dU0odiw0KSxOZT1CZVswXSxLZT1CZVsxXSxkdD1CZVsyXSxPdD1CZVszXTtzd2l0Y2goeSl7Y2FzZSJ1cCI6cmV0dXJuW05lLEtlLEktMSxfZV07Y2FzZSJkb3duIjpyZXR1cm5bdWUrMSxqLGR0LF9lXTtjYXNl''@;'; + put 'put ''ImxlZnQiOnJldHVybltOZSxLZSx1ZSxqLTFdO2Nhc2UicmlnaHQiOnJldHVybltJLF9lKzEsZHQsT3RdO2RlZmF1bHQ6cmV0dXJuIG51bGx9fX0se2tleToiZ2V0RmFydGhlc3RDb2xsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbihoLHYseSxDKXt2YXIgST11TShoLDQpLGo9SVswXSx1ZT1JWzFd''@;'; + put 'put ''LF9lPUlbMl0sQmU9SVszXSxOZT1bInVwIiwiZG93biJdLmluZGV4T2YoeSk+LTEsS2U9TmU/X2U6QmUsZHQ9TmU/ajp1ZSxPdD10aGlzLmdldEF1dG9maWxsU2l6ZShoLHYseSksJHQ9TmU/X2UtaisxOkJlLXVlKzEsTG49T3QtTWF0aC5mbG9vcihPdC8kdCkqJHQsaXI9bnVsbCxtcj1udWxs''@;'; + put 'put ''LFNyPW51bGw7c3dpdGNoKHkpe2Nhc2UidXAiOmlyPSJpbmNsdWRlc1ZlcnRpY2FsbHkiLFNyPUtlLUxuKzE7YnJlYWs7Y2FzZSJsZWZ0Ijppcj0iaW5jbHVkZXNIb3Jpem9udGFsbHkiLFNyPUtlLUxuKzE7YnJlYWs7Y2FzZSJkb3duIjppcj0iaW5jbHVkZXNWZXJ0aWNhbGx5IixTcj1kdCtM''@;'; + put 'put ''bi0xO2JyZWFrO2Nhc2UicmlnaHQiOmlyPSJpbmNsdWRlc0hvcml6b250YWxseSIsU3I9ZHQrTG4tMX1yZXR1cm4gVXIoQyxmdW5jdGlvbih3cil7d3JbaXJdKFNyKSYmd3IuaXNGYXJ0aGVyKG1yLHkpJiYobXI9d3IpfSksbXJ9fSx7a2V5OiJyZWNyZWF0ZUFmdGVyRGF0YVBvcHVsYXRpb24i''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe2lmKHRoaXMuY3VycmVudEZpbGxEYXRhKXt2YXIgdj10aGlzLmdldFJhbmdlRnJvbUNoYW5nZXMoaCkseT10aGlzLmN1cnJlbnRGaWxsRGF0YS5mb3VuZE1lcmdlZENlbGxzLEM9dGhpcy5jdXJyZW50RmlsbERhdGEuZHJhZ0RpcmVjdGlvbixJPWZ1bmN0aW9u''@;'; + put 'put ''KEtlLGR0KXtzd2l0Y2goQyl7Y2FzZSJ1cCI6cmV0dXJuIEtlLnJvdy1kdD49di5mcm9tLnJvdztjYXNlImRvd24iOnJldHVybiBLZS5yb3crS2Uucm93c3Bhbi0xK2R0PD12LnRvLnJvdztjYXNlImxlZnQiOnJldHVybiBLZS5jb2wtZHQ+PXYuZnJvbS5jb2x1bW47Y2FzZSJyaWdodCI6cmV0''@;'; + put 'put ''dXJuIEtlLmNvbCtLZS5jb2xzcGFuLTErZHQ8PXYudG8uY29sdW1uO2RlZmF1bHQ6cmV0dXJuIG51bGx9fSxqPTAsdWU9bnVsbCxfZT0xO2Rve2Zvcih2YXIgQmU9MDtCZTx5Lmxlbmd0aDtCZSs9MSl7aWYoSSh1ZT15W0JlXSxqPV9lKnRoaXMuY3VycmVudEZpbGxEYXRhLmN5Y2xlTGVuZ3Ro''@;'; + put 'put ''KSlzd2l0Y2goQyl7Y2FzZSJ1cCI6dGhpcy5wbHVnaW4ubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmFkZCh7cm93OnVlLnJvdy1qLHJvd3NwYW46dWUucm93c3Bhbixjb2w6dWUuY29sLGNvbHNwYW46dWUuY29sc3Bhbn0pO2JyZWFrO2Nhc2UiZG93biI6dGhpcy5wbHVnaW4ubWVyZ2VkQ2VsbHND''@;'; + put 'put ''b2xsZWN0aW9uLmFkZCh7cm93OnVlLnJvdytqLHJvd3NwYW46dWUucm93c3Bhbixjb2w6dWUuY29sLGNvbHNwYW46dWUuY29sc3Bhbn0pO2JyZWFrO2Nhc2UibGVmdCI6dGhpcy5wbHVnaW4ubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmFkZCh7cm93OnVlLnJvdyxyb3dzcGFuOnVlLnJvd3NwYW4s''@;'; + put 'put ''Y29sOnVlLmNvbC1qLGNvbHNwYW46dWUuY29sc3Bhbn0pO2JyZWFrO2Nhc2UicmlnaHQiOnRoaXMucGx1Z2luLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5hZGQoe3Jvdzp1ZS5yb3cscm93c3Bhbjp1ZS5yb3dzcGFuLGNvbDp1ZS5jb2wraixjb2xzcGFuOnVlLmNvbHNwYW59KX1CZT09PXkubGVu''@;'; + put 'put ''Z3RoLTEmJihfZSs9MSl9fXdoaWxlKEkodWUsaikpO3RoaXMuY3VycmVudEZpbGxEYXRhPW51bGwsdGhpcy5wbHVnaW4uaG90LnJlbmRlcigpfX19LHtrZXk6ImdldFJhbmdlRnJvbUNoYW5nZXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT17bWluOm51bGwsbWF4Om51bGx9LEM9''@;'; + put 'put ''e21pbjpudWxsLG1heDpudWxsfTtyZXR1cm4gVXIoaCxmdW5jdGlvbihJKXt2YXIgaj1JWzBdLHVlPXYucGx1Z2luLmhvdC5wcm9wVG9Db2woSVsxXSk7KG51bGw9PT15Lm1pbnx8ajx5Lm1pbikmJih5Lm1pbj1qKSwobnVsbD09PXkubWF4fHxqPnkubWF4KSYmKHkubWF4PWopLChudWxsPT09''@;'; + put 'put ''Qy5taW58fHVlPEMubWluKSYmKEMubWluPXVlKSwobnVsbD09PUMubWF4fHx1ZT5DLm1heCkmJihDLm1heD11ZSl9KSx7ZnJvbTp7cm93OnkubWluLGNvbHVtbjpDLm1pbn0sdG86e3Jvdzp5Lm1heCxjb2x1bW46Qy5tYXh9fX19LHtrZXk6ImRyYWdBcmVhT3ZlcmxhcHNDb2xsZWN0aW9ucyIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBJPXVNKHRoaXMuZ2V0RHJhZ0FyZWEoaCx2LHkpLDQpLF9lPUlbMl0sQmU9SVszXSxOZT10aGlzLnBsdWdpbi5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSVswXSxJWzFdKSxLZT10aGlzLnBsdWdpbi5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoX2UsQmUp''@;'; + put 'put ''LGR0PXRoaXMucGx1Z2luLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKE5lLE5lLEtlKTtyZXR1cm4hIXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldFdpdGhpblJhbmdlKGR0LCEwKX19XSksZH0oKTtjb25zdCB4ZHQ9RWR0O2Z1bmN0aW9uIGpJZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5n''@;'; + put 'put ''dGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBEZHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhm''@;'; + put 'put ''dW5jdGlvbiBUZHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5wbHVnaW49Zyx0aGlzLmhvdD1nLmhvdCx0aGlzLmZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsQ2xh''@;'; + put 'put ''c3NOYW1lPSJmdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbCJ9cmV0dXJuIGZ1bmN0aW9uIElkdChkLGcsaCl7ZyYmakllKGQucHJvdG90eXBlLGcpLGgmJmpJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzbmFwRGVsdGEi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz12LnRvLGo9Qy5jb2wraC5jb2w7aC5yb3c/dGhpcy5qdW1wT3Zlck1lcmdlZENlbGwoaCx5LEMucm93K2gucm93KTpoLmNvbCYmdGhpcy5qdW1wT3Zlck1lcmdlZENlbGwoaCx5LGopfX0se2tleToianVtcE92ZXJNZXJnZWRDZWxsIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9aC5yb3d8fGguY29sLEk9bnVsbCxqPW51bGwsdWU9bnVsbDtoLnJvdz8oST12LmluY2x1ZGVzVmVydGljYWxseSh5KSxqPXYucm93LHVlPXYuZ2V0TGFzdFJvdygpKTpoLmNvbCYmKEk9di5pbmNsdWRlc0hvcml6b250YWxseSh5KSxqPXYuY29sLHVl''@;'; + put 'put ''PXYuZ2V0TGFzdENvbHVtbigpKSwwIT09QyYmKEM+MD9JJiZ5IT09aiYmKEMrPXVlLXkrMSk6SSYmeSE9PXVlJiYoQy09eS1qKzEpLGgucm93P2gucm93PUM6aC5jb2wmJihoLmNvbD1DKSl9fSx7a2V5OiJnZXRVcGRhdGVkU2VsZWN0aW9uUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0''@;'; + put 'put ''dXJuIHRoaXMuaG90Ll9jcmVhdGVDZWxsUmFuZ2UoaC5oaWdobGlnaHQsaC5mcm9tLHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGgudG8ucm93K3Yucm93LGgudG8uY29sK3YuY29sKSl9fSx7a2V5OiJnZXRTZWxlY3RlZE1lcmdlZENlbGxDbGFzc05hbWUiLHZhbHVlOmZ1bmN0aW9uKGgs''@;'; + put 'put ''dix5LEMpe3ZhciBJPU1hdGgubWluKHlbMF0seVsyXSksaj1NYXRoLm1pbih5WzFdLHlbM10pLHVlPU1hdGgubWF4KHlbMF0seVsyXSksX2U9TWF0aC5tYXgoeVsxXSx5WzNdKTtpZih2b2lkIDAhPT1DJiZ0aGlzLnBsdWdpbi5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uaXNGaXJzdFJlbmRlcmFi''@;'; + put 'put ''bGVNZXJnZWRDZWxsKGgsdikpe3ZhciBOZT10aGlzLnBsdWdpbi5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KGgsdik7aWYoTmUpe3ZhciBLZT1OZS5nZXRMYXN0Um93KCksZHQ9TmUuZ2V0TGFzdENvbHVtbigpO2lmKEk8PU5lLnJvdyYmajw9TmUuY29sJiZ1ZT49S2UmJl9lPj1kdClyZXR1''@;'; + put 'put ''cm4iIi5jb25jYXQodGhpcy5mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZSwiLSIpLmNvbmNhdChDKTtpZih0aGlzLnBsdWdpbi5zZWxlY3Rpb25DYWxjdWxhdGlvbnMuaXNNZXJnZUNlbGxGdWxseVNlbGVjdGVkKE5lLHRoaXMucGx1Z2luLmhvdC5nZXRTZWxlY3RlZFJhbmdlKCkp''@;'; + put 'put ''KXJldHVybiIiLmNvbmNhdCh0aGlzLmZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lLCItbXVsdGlwbGUiKX19fX0se2tleToiaXNNZXJnZUNlbGxGdWxseVNlbGVjdGVkIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PVtdO2lmKCF2fHwhaClyZXR1cm4hMTtmb3IodmFyIEM9MDtD''@;'; + put 'put ''PGgucm93c3BhbjtDKz0xKWZvcih2YXIgST0wO0k8aC5jb2xzcGFuO0krPTEpeS5wdXNoKHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGgucm93K0MsaC5jb2wrSSkpO2Zvcih2YXIgaj0wO2o8eS5sZW5ndGg7ais9MSl7Zm9yKHZhciB1ZT1bXSxfZT0wO19lPHYubGVuZ3RoO19lKz0xKXVl''@;'; + put 'put ''W19lXT12W19lXS5pbmNsdWRlcyh5W2pdKTtpZighdWUuaW5jbHVkZXMoITApKXJldHVybiExfXJldHVybiEwfX0se2tleToiZ2V0U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lVG9SZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPVtdLHY9MDt2PD03O3YrPTEpaC5wdXNoKCIi''@;'; + put 'put ''LmNvbmNhdCh0aGlzLmZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lLCItIikuY29uY2F0KHYpKTtyZXR1cm4gaC5wdXNoKCIiLmNvbmNhdCh0aGlzLmZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lLCItbXVsdGlwbGUiKSksaH19XSksZH0oKTtjb25zdCBMZHQ9RGR0O2Z1''@;'; + put 'put ''bmN0aW9uIENnZShkKXtyZXR1cm4oQ2dlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcu''@;'; + put 'put ''Y29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gWkllKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFBkdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gQmR0KGQsZyl7dmFyIGg9''@;'; + put 'put ''bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxqLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJ''@;'; + put 'put ''LnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsaj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IGp9fXJldHVybiB2fX0oZCxnKXx8R0llKGQsZyl8fGZ1bmN0aW9uIFJkdCgpe3Rocm93''@;'; + put 'put ''IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rp''@;'; + put 'put ''b24gekllKGQpe3JldHVybiBmdW5jdGlvbiBOZHQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4ga2dlKGQpfShkKXx8ZnVuY3Rpb24gSGR0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3Ii''@;'; + put 'put ''XSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fEdJZShkKXx8ZnVuY3Rpb24gRmR0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMg''@;'; + put 'put ''bXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gR0llKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBrZ2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9i''@;'; + put 'put ''amVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0''@;'; + put 'put ''dXJuIGtnZShkLGcpfX1mdW5jdGlvbiBrZ2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBXSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2gr''@;'; + put 'put ''Kyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiAkTygpe3JldHVybiAkTz0idW5kZWZpbmVkIiE9dHlw''@;'; + put 'put ''ZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9WmR0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8''@;'; + put 'put ''Mz9nOnYpOkMudmFsdWV9fSwkTy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWmR0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1ZdyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBTZ2UoZCxnKXtyZXR1cm4oU2dl''@;'; + put 'put ''PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gV2R0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09Q2dlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0''@;'; + put 'put ''dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBZSWUoZCl9ZnVuY3Rpb24gWUllKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVy''@;'; + put 'put ''cm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBZdyhkKXtyZXR1cm4oWXc9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0''@;'; + put 'put ''dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX16by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlTWVyZ2VDZWxscyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlck1lcmdlQ2VsbHMiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3Rl''@;'; + put 'put ''cigiYmVmb3JlVW5tZXJnZUNlbGxzIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyVW5tZXJnZUNlbGxzIik7dmFyIEtJZSxSej0ibWVyZ2VDZWxscyIsVUllPW5ldyBXZWFrTWFwLFFJZT1SeixRZHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHpkdChkLGcpe2lmKCJmdW5jdGlv''@;'; + put 'put ''biIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRh''@;'; + put 'put ''YmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZTZ2UoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBHZHQoZCl7dmFyIGc9ZnVuY3Rpb24gWWR0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZs''@;'; + put 'put ''ZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10s''@;'; + put 'put ''ZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9WXcoZCk7aWYoZyl7dmFyIEM9WXcodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3Vt''@;'; + put 'put ''ZW50cyk7cmV0dXJuIFdkdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gVmR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCkseT1n''@;'; + put 'put ''LmNhbGwodGhpcyx2KSxVSWUuc2V0KFlJZSh5KSx7bGFzdERlc2lyZWRDb29yZHM6bnVsbH0pLHkubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uPW51bGwseS5hdXRvZmlsbENhbGN1bGF0aW9ucz1udWxsLHkuc2VsZWN0aW9uQ2FsY3VsYXRpb25zPW51bGwseX1yZXR1cm4gZnVuY3Rpb24gamR0KGQs''@;'; + put 'put ''ZyxoKXtnJiZXSWUoZC5wcm90b3R5cGUsZyksaCYmV0llKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbUnpdfX0s''@;'; + put 'put ''e2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb249bmV3IHdkdCh0aGlzKSx0aGlzLmF1dG9maWxsQ2FsY3VsYXRpb25zPW5ldyB4ZHQodGhpcyksdGhpcy5zZWxlY3Rpb25DYWxjdWxh''@;'; + put 'put ''dGlvbnM9bmV3IExkdCh0aGlzKSx0aGlzLmFkZEhvb2soImFmdGVySW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVySW5pdC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW9kaWZ5VHJh''@;'; + put 'put ''bnNmb3JtU3RhcnQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJNb2RpZnlUcmFuc2Zvcm1TdGFydC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVRy''@;'; + put 'put ''YW5zZm9ybUVuZCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1vZGlmeVRyYW5zZm9ybUVuZC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUdldENlbGxDb29yZHMiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25Nb2RpZnlHZXRDZWxsQ29vcmRzLmFwcGx5KHksYXJndW1l''@;'; + put 'put ''bnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlU2V0UmFuZ2VTdGFydCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZVNldFJhbmdlU3RhcnQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVTZXRSYW5nZVN0YXJ0T25seSIsZnVuY3Rpb24oKXtyZXR1cm4geS5v''@;'; + put 'put ''bkJlZm9yZVNldFJhbmdlU3RhcnQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVTZXRSYW5nZUVuZCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZVNldFJhbmdlRW5kLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJJc011bHRpcGxl''@;'; + put 'put ''U2VsZWN0aW9uIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJJc011bHRpcGxlU2VsZWN0aW9uLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJSZW5kZXJlciIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyUmVuZGVyZXIuYXBwbHkoeSxhcmd1bWVudHMpfSks''@;'; + put 'put ''dGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGZ1bmN0aW9uKCl7cmV0dXJuIHkuYWRkTWVyZ2VBY3Rpb25zVG9Db250ZXh0TWVudS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q2VsbE1ldGEiLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHkub25BZnRlckdldENlbGxNZXRhLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJWaWV3cG9ydFJvd0NhbGN1bGF0b3JPdmVycmlkZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyVmlld3BvcnRSb3dDYWxjdWxhdG9yT3ZlcnJpZGUuYXBwbHkoeSxhcmd1bWVu''@;'; + put 'put ''dHMpfSksdGhpcy5hZGRIb29rKCJhZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUF1dG9m''@;'; + put 'put ''aWxsUmFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25Nb2RpZnlBdXRvZmlsbFJhbmdlLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDcmVhdGVDb2wiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckNyZWF0ZUNvbC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlz''@;'; + put 'put ''LmFkZEhvb2soImFmdGVyUmVtb3ZlQ29sIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJSZW1vdmVDb2wuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNyZWF0ZVJvdyIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyQ3JlYXRlUm93LmFwcGx5KHksYXJndW1l''@;'; + put 'put ''bnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJSZW1vdmVSb3ciLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlclJlbW92ZVJvdy5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ2hhbmdlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJDaGFuZ2UuYXBwbHkoeSxh''@;'; + put 'put ''cmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVEcmF3Qm9yZGVycyIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZURyYXdBcmVhQm9yZGVycy5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyRHJhd1NlbGVjdGlvbiIsZnVuY3Rpb24oKXtyZXR1cm4geS5v''@;'; + put 'put ''bkFmdGVyRHJhd1NlbGVjdGlvbi5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlUmVtb3ZlQ2VsbENsYXNzTmFtZXMuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29r''@;'; + put 'put ''KCJiZWZvcmVVbmRvU3RhY2tDaGFuZ2UiLGZ1bmN0aW9uKEMsSSl7aWYoIk1lcmdlQ2VsbHMiPT09SSlyZXR1cm4hMX0pLHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoKSwkTyhZdyhoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJkaXNhYmxlUGx1''@;'; + put 'put ''Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2xlYXJDb2xsZWN0aW9ucygpLHRoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLHRoaXMuaG90LnJlbmRlcigpLCRPKFl3KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6InVwZGF0ZVBsdWdpbiIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRTZXR0aW5ncygpW1J6XTt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMuZ2VuZXJhdGVGcm9tU2V0dGluZ3MoeSksJE8oWXcoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwo''@;'; + put 'put ''dGhpcyl9fSx7a2V5OiJ2YWxpZGF0ZVNldHRpbmciLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPSEwO3JldHVybiEheSYmKEhnLmNvbnRhaW5zTmVnYXRpdmVWYWx1ZXMoeSk/KGwxKEhnLk5FR0FUSVZFX1ZBTFVFU19XQVJOSU5HKHkpKSxDPSExKTpIZy5pc091dE9mQm91bmRzKHksdGhpcy5o''@;'; + put 'put ''b3QuY291bnRSb3dzKCksdGhpcy5ob3QuY291bnRDb2xzKCkpPyhsMShIZy5JU19PVVRfT0ZfQk9VTkRTX1dBUk5JTkcoeSkpLEM9ITEpOkhnLmlzU2luZ2xlQ2VsbCh5KT8obDEoSGcuSVNfU0lOR0xFX0NFTEwoeSkpLEM9ITEpOkhnLmNvbnRhaW5zWmVyb1NwYW4oeSkmJihsMShIZy5aRVJP''@;'; + put 'put ''X1NQQU5fV0FSTklORyh5KSksQz0hMSksQyl9fSx7a2V5OiJnZW5lcmF0ZUZyb21TZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcztpZihBcnJheS5pc0FycmF5KHkpKXt2YXIgSSxqPVtdO1VyKHksZnVuY3Rpb24oX2Upe2lmKEMudmFsaWRhdGVTZXR0aW5nKF9lKSl7dmFy''@;'; + put 'put ''IEJlPUMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKF9lLnJvdyxfZS5jb2wpLE5lPUMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKF9lLnJvdytfZS5yb3dzcGFuLTEsX2UuY29sK19lLmNvbHNwYW4tMSksS2U9Qy5ob3QuX2NyZWF0ZUNlbGxSYW5nZShCZSxCZSxOZSk7ai5wdXNoKEMubWVyZ2VSYW5n''@;'; + put 'put ''ZShLZSwhMCwhMCkpfX0pLGo9ai5maWx0ZXIoZnVuY3Rpb24oX2Upe3JldHVybiEwIT09X2V9KTt2YXIgdWU9dGhpcy5nZXRCdWxrQ29sbGVjdGlvbkRhdGEoaik7KEk9dGhpcy5ob3QpLnBvcHVsYXRlRnJvbUFycmF5LmFwcGx5KEksekllKHVlKSl9fX0se2tleToiZ2V0QnVsa0NvbGxlY3Rp''@;'; + put 'put ''b25EYXRhIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQyxJPXRoaXMuZ2V0QnVsa0NvbGxlY3Rpb25EYXRhUmFuZ2UoeSksdWU9KEM9dGhpcy5ob3QpLmdldERhdGEuYXBwbHkoQyx6SWUoSSkpLnNwbGljZSgwKTtyZXR1cm4gVXIoeSxmdW5jdGlvbihfZSl7dmFyIEJlPVpJZShfZSwzKSxOZT1C''@;'; + put 'put ''ZVswXSxLZT1CZVsxXTtVcihCZVsyXSxmdW5jdGlvbihPdCwkdCl7VXIoT3QsZnVuY3Rpb24oZm4sTG4pe3VlW05lLUlbMF0rJHRdW0tlLUlbMV0rTG5dPWZufSl9KX0pLFtJWzBdLElbMV0sdWVdfX0se2tleToiZ2V0QnVsa0NvbGxlY3Rpb25EYXRhUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHkp''@;'; + put 'put ''e3ZhciBDPVswLDBdLEk9WzAsMF0saj1udWxsLHVlPW51bGwsX2U9bnVsbDtyZXR1cm4gVXIoeSxmdW5jdGlvbihCZSl7aj1CZVswXSx1ZT1CZVsxXSxfZT1CZVsyXSxDWzBdPU1hdGgubWluKGosQ1swXSksQ1sxXT1NYXRoLm1pbih1ZSxDWzFdKSxJWzBdPU1hdGgubWF4KGorX2UubGVuZ3Ro''@;'; + put 'put ''LTEsSVswXSksSVsxXT1NYXRoLm1heCh1ZStfZVswXS5sZW5ndGgtMSxJWzFdKX0pLFtdLmNvbmNhdChDLEkpfX0se2tleToiY2xlYXJDb2xsZWN0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5jbGVhcigpfX0se2tleToiY2FuTWVyZ2VSYW5nZSIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtyZXR1cm4hIUN8fHRoaXMudmFsaWRhdGVTZXR0aW5nKHkpfX0se2tleToidG9nZ2xlTWVyZ2VPblNlbGVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgeT10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKHkpe3kuc2V0RGlyZWN0aW9uKHRoaXMuaG90LmlzUnRsKCk/Ik5FLVNXIjoiTlctU0UiKTt2YXIgQz15LmZyb20sST15LnRvO3RoaXMudG9nZ2xlTWVyZ2UoeSksdGhpcy5ob3Quc2VsZWN0Q2VsbChDLnJvdyxDLmNvbCxJ''@;'; + put 'put ''LnJvdyxJLmNvbCwhMSl9fX0se2tleToibWVyZ2VTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoeSl7eS5zZXREaXJl''@;'; + put 'put ''Y3Rpb24odGhpcy5ob3QuaXNSdGwoKT8iTkUtU1ciOiJOVy1TRSIpO3ZhciBDPXkuZnJvbSxJPXkudG87dGhpcy51bm1lcmdlUmFuZ2UoeSwhMCksdGhpcy5tZXJnZVJhbmdlKHkpLHRoaXMuaG90LnNlbGVjdENlbGwoQy5yb3csQy5jb2wsSS5yb3csSS5jb2wsITEpfX19LHtrZXk6InVubWVy''@;'; + put 'put ''Z2VTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoeSl7dmFyIEM9eS5mcm9tLEk9eS50bzt0aGlzLnVubWVyZ2VSYW5n''@;'; + put 'put ''ZSh5LCEwKSx0aGlzLmhvdC5zZWxlY3RDZWxsKEMucm93LEMuY29sLEkucm93LEkuY29sLCExKX19fSx7a2V5OiJtZXJnZVJhbmdlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxq''@;'; + put 'put ''PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sdWU9eS5nZXRUb3BTdGFydENvcm5lcigpLF9lPXkuZ2V0Qm90dG9tRW5kQ29ybmVyKCksQmU9e3Jvdzp1ZS5yb3csY29sOnVlLmNvbCxyb3dzcGFuOl9lLnJvdy11ZS5yb3crMSxjb2xzcGFu''@;'; + put 'put ''Ol9lLmNvbC11ZS5jb2wrMX0sTmU9W10sS2U9bnVsbDtpZighdGhpcy5jYW5NZXJnZVJhbmdlKEJlLEkpKXJldHVybiExO3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVNZXJnZUNlbGxzIix5LEkpLGlhKDAsQmUucm93c3Bhbi0xLGZ1bmN0aW9uKE90KXtpYSgwLEJlLmNvbHNwYW4tMSxmdW5j''@;'; + put 'put ''dGlvbigkdCl7dmFyIGZuPW51bGw7TmVbT3RdfHwoTmVbT3RdPVtdKSwwPT09T3QmJjA9PT0kdD9mbj1DLmhvdC5nZXREYXRhQXRDZWxsKEJlLnJvdyxCZS5jb2wpOkMuaG90LnNldENlbGxNZXRhKEJlLnJvdytPdCxCZS5jb2wrJHQsImhpZGRlbiIsITApLE5lW090XVskdF09Zm59KX0pLHRo''@;'; + put 'put ''aXMuaG90LnNldENlbGxNZXRhKEJlLnJvdyxCZS5jb2wsInNwYW5uZWQiLCEwKTt2YXIgZHQ9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uYWRkKEJlKTtyZXR1cm4hZHR8fChqP0tlPVtCZS5yb3csQmUuY29sLE5lXTp0aGlzLmhvdC5wb3B1bGF0ZUZyb21BcnJheShCZS5yb3csQmUuY29s''@;'; + put 'put ''LE5lLHZvaWQgMCx2b2lkIDAsdGhpcy5wbHVnaW5OYW1lKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJNZXJnZUNlbGxzIix5LEJlLEkpLEtlKX19LHtrZXk6InVubWVyZ2VSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09''@;'; + put 'put ''YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0saj10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXRXaXRoaW5SYW5nZSh5KTshanx8KHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVVbm1lcmdlQ2VsbHMiLHksSSksVXIoaixmdW5jdGlvbih1ZSl7Qy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24u''@;'; + put 'put ''cmVtb3ZlKHVlLnJvdyx1ZS5jb2wpLGlhKDAsdWUucm93c3Bhbi0xLGZ1bmN0aW9uKF9lKXtpYSgwLHVlLmNvbHNwYW4tMSxmdW5jdGlvbihCZSl7Qy5ob3QucmVtb3ZlQ2VsbE1ldGEodWUucm93K19lLHVlLmNvbCtCZSwiaGlkZGVuIil9KX0pLEMuaG90LnJlbW92ZUNlbGxNZXRhKHVlLnJv''@;'; + put 'put ''dyx1ZS5jb2wsInNwYW5uZWQiKX0pLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclVubWVyZ2VDZWxscyIseSxJKSx0aGlzLmhvdC5yZW5kZXIoKSl9fSx7a2V5OiJ0b2dnbGVNZXJnZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KHkuZnJv''@;'; + put 'put ''bS5yb3cseS5mcm9tLmNvbCk7Qy5yb3c9PT15LmZyb20ucm93JiZDLmNvbD09PXkuZnJvbS5jb2wmJkMucm93K0Mucm93c3Bhbi0xPT09eS50by5yb3cmJkMuY29sK0MuY29sc3Bhbi0xPT09eS50by5jb2w/dGhpcy51bm1lcmdlUmFuZ2UoeSk6dGhpcy5tZXJnZVNlbGVjdGlvbih5KX19LHtr''@;'; + put 'put ''ZXk6Im1lcmdlIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqKXt2YXIgdWU9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoeSxDKSxfZT10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhJLGopO3RoaXMubWVyZ2VSYW5nZSh0aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHVlLHVlLF9lKSl9fSx7''@;'; + put 'put ''a2V5OiJ1bm1lcmdlIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqKXt2YXIgdWU9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoeSxDKSxfZT10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhJLGopO3RoaXMudW5tZXJnZVJhbmdlKHRoaXMuaG90Ll9jcmVhdGVDZWxsUmFuZ2UodWUsdWUsX2Up''@;'; + put 'put ''KX19LHtrZXk6Im9uQWZ0ZXJJbml0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZ2VuZXJhdGVGcm9tU2V0dGluZ3ModGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtSel0pLHRoaXMuaG90LnJlbmRlcigpfX0se2tleToicmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhp''@;'; + put 'put ''czt0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIikuYWRkU2hvcnRjdXQoe2tleXM6W1siQ29udHJvbCIsIm0iXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt5LnRvZ2dsZU1lcmdlKHkuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkpLHkuaG90LnJlbmRlcigp''@;'; + put 'put ''fSxydW5Pbmx5SWY6ZnVuY3Rpb24odWUpe3JldHVybiF1ZS5hbHRLZXl9LGdyb3VwOlFJZX0pfX0se2tleToidW5yZWdpc3RlclNob3J0Y3V0cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIikucmVtb3ZlU2hvcnRjdXRz''@;'; + put 'put ''QnlHcm91cChRSWUpfX0se2tleToib25BZnRlcklzTXVsdGlwbGVTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHkpZm9yKHZhciBDPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLm1lcmdlZENlbGxzLEk9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxqPTA7ajxDLmxl''@;'; + put 'put ''bmd0aDtqKz0xKWlmKEkuZnJvbS5yb3c9PT1DW2pdLnJvdyYmSS5mcm9tLmNvbD09PUNbal0uY29sJiZJLnRvLnJvdz09PUNbal0ucm93K0Nbal0ucm93c3Bhbi0xJiZJLnRvLmNvbD09PUNbal0uY29sK0Nbal0uY29sc3Bhbi0xKXJldHVybiExO3JldHVybiB5fX0se2tleToib25Nb2RpZnlU''@;'; + put 'put ''cmFuc2Zvcm1TdGFydCIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIHVlLEM9VUllLmdldCh0aGlzKSxJPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksaj17cm93Onkucm93LGNvbDp5LmNvbH0sX2U9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSS5oaWdobGlnaHQucm93LEkuaGln''@;'; + put 'put ''aGxpZ2h0LmNvbCksQmU9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KF9lLnJvdyxfZS5jb2wpO2lmKEMubGFzdERlc2lyZWRDb29yZHN8fChDLmxhc3REZXNpcmVkQ29vcmRzPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKG51bGwsbnVsbCkpLEJlKXt2YXIgTmU9dGhpcy5ob3Qu''@;'; + put 'put ''X2NyZWF0ZUNlbGxDb29yZHMoQmUucm93LEJlLmNvbCksS2U9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQmUucm93K0JlLnJvd3NwYW4tMSxCZS5jb2wrQmUuY29sc3Bhbi0xKTt0aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKE5lLE5lLEtlKS5pbmNsdWRlcyhDLmxhc3REZXNpcmVkQ29v''@;'; + put 'put ''cmRzKXx8KEMubGFzdERlc2lyZWRDb29yZHM9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMobnVsbCxudWxsKSksai5yb3c9Qy5sYXN0RGVzaXJlZENvb3Jkcy5yb3c/Qy5sYXN0RGVzaXJlZENvb3Jkcy5yb3ctX2Uucm93Omoucm93LGouY29sPUMubGFzdERlc2lyZWRDb29yZHMuY29sP0Mu''@;'; + put 'put ''bGFzdERlc2lyZWRDb29yZHMuY29sLV9lLmNvbDpqLmNvbCx5LnJvdz4wP2oucm93PUJlLnJvdytCZS5yb3dzcGFuLTEtX2Uucm93K3kucm93Onkucm93PDAmJihqLnJvdz1fZS5yb3ctQmUucm93K3kucm93KSx5LmNvbD4wP2ouY29sPUJlLmNvbCtCZS5jb2xzcGFuLTEtX2UuY29sK3kuY29s''@;'; + put 'put ''OnkuY29sPDAmJihqLmNvbD1fZS5jb2wtQmUuY29sK3kuY29sKX11ZT10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhJLmhpZ2hsaWdodC5yb3crai5yb3csSS5oaWdobGlnaHQuY29sK2ouY29sKTt2YXIgT3Q9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KHVlLnJvdyx1ZS5jb2wp''@;'; + put 'put ''O2lmKE90KXt2YXIgJHQ9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0Rmlyc3RSZW5kZXJhYmxlQ29vcmRzKE90LnJvdyxPdC5jb2wpO0MubGFzdERlc2lyZWRDb29yZHM9dWUsaj17cm93OiR0LnJvdy1fZS5yb3csY29sOiR0LmNvbC1fZS5jb2x9fTAhPT1qLnJvdyYmKHkucm93PWou''@;'; + put 'put ''cm93KSwwIT09ai5jb2wmJih5LmNvbD1qLmNvbCl9fSx7a2V5OiJvbk1vZGlmeVRyYW5zZm9ybUVuZCIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksaj1hMyh5KSx1ZT10aGlzLnNlbGVjdGlvbkNhbGN1bGF0aW9ucy5nZXRV''@;'; + put 'put ''cGRhdGVkU2VsZWN0aW9uUmFuZ2UoSSx5KSxfZT1hMyhqKSxCZT10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXRXaXRoaW5SYW5nZSh1ZSwhMCk7ZG97X2U9YTMoaiksdGhpcy5zZWxlY3Rpb25DYWxjdWxhdGlvbnMuZ2V0VXBkYXRlZFNlbGVjdGlvblJhbmdlKEksaiksVXIoQmUsZnVu''@;'; + put 'put ''Y3Rpb24oTmUpe0Muc2VsZWN0aW9uQ2FsY3VsYXRpb25zLnNuYXBEZWx0YShqLEksTmUpfSl9d2hpbGUoai5yb3chPT1fZS5yb3d8fGouY29sIT09X2UuY29sKTt5LnJvdz1qLnJvdyx5LmNvbD1qLmNvbH19LHtrZXk6Im9uTW9kaWZ5R2V0Q2VsbENvb3JkcyIsdmFsdWU6ZnVuY3Rpb24oeSxD''@;'; + put 'put ''KXtpZighKHk8MHx8QzwwKSl7dmFyIEk9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KHksQyk7aWYoSSl7dmFyIGo9SS5yb3csdWU9SS5jb2w7cmV0dXJuW2osdWUsaitJLnJvd3NwYW4tMSx1ZStJLmNvbHNwYW4tMV19fX19LHtrZXk6ImFkZE1lcmdlQWN0aW9uc1RvQ29udGV4dE1l''@;'; + put 'put ''bnUiLHZhbHVlOmZ1bmN0aW9uKHkpe3kuaXRlbXMucHVzaCh7bmFtZToiLS0tLS0tLS0tIn0sZnVuY3Rpb24gT2R0KGQpe3JldHVybntrZXk6Im1lcmdlQ2VsbHMiLG5hbWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFNlbGVjdGVkTGFzdCgpO2lmKGgpe3ZhciB2PWQubWVyZ2VkQ2VsbHND''@;'; + put 'put ''b2xsZWN0aW9uLmdldChoWzBdLGhbMV0pO2lmKHYucm93PT09aFswXSYmdi5jb2w9PT1oWzFdJiZ2LnJvdyt2LnJvd3NwYW4tMT09PWhbMl0mJnYuY29sK3YuY29sc3Bhbi0xPT09aFszXSlyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEg0ZSl9cmV0dXJuIHRoaXMuZ2V0VHJhbnNs''@;'; + put 'put ''YXRlZFBocmFzZShGNGUpfSxjYWxsYmFjazpmdW5jdGlvbigpe2QudG9nZ2xlTWVyZ2VPblNlbGVjdGlvbigpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZ2V0U2VsZWN0ZWRMYXN0KCk7cmV0dXJuIWh8fEhnLmlzU2luZ2xlQ2VsbCh7cm93OmhbMF0sY29sOmhbMV0scm93c3Bh''@;'; + put 'put ''bjpoWzJdLWhbMF0rMSxjb2xzcGFuOmhbM10taFsxXSsxfSl8fHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpfSxoaWRkZW46ITF9fSh0aGlzKSl9fSx7a2V5OiJvbkFmdGVyUmVuZGVyZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj10aGlzLm1lcmdlZENlbGxzQ29s''@;'; + put 'put ''bGVjdGlvbi5nZXQoQyxJKSx1ZT14bChqKT9hMyhqKTp2b2lkIDA7aWYoeGwodWUpKXt2YXIgX2U9dGhpcy5ob3QsQmU9X2Uucm93SW5kZXhNYXBwZXIsTmU9X2UuY29sdW1uSW5kZXhNYXBwZXIsTG49WkllKHRoaXMudHJhbnNsYXRlTWVyZ2VkQ2VsbFRvUmVuZGVyYWJsZSh1ZS5yb3csdWUu''@;'; + put 'put ''cm93c3Bhbix1ZS5jb2wsdWUuY29sc3BhbiksMiksbXI9TG5bMV0sUXI9TG5bMF0tQmUuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChDKSsxLHlpPW1yLU5lLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoSSkrMTt1ZS5yb3c9QmUuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHVl''@;'; + put 'put ''LnJvdywxKSx1ZS5jb2w9TmUuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHVlLmNvbCwxKSx1ZS5yb3dzcGFuPU1hdGgubWluKHVlLnJvd3NwYW4sUXIpLHVlLmNvbHNwYW49TWF0aC5taW4odWUuY29sc3Bhbix5aSl9YmdlKHksdWUsQyxJKX19LHtrZXk6Im9uQmVmb3JlU2V0UmFuZ2VTdGFy''@;'; + put 'put ''dCIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYodGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uaXNGaXJzdFJlbmRlcmFibGVNZXJnZWRDZWxsKHkucm93LHkuY29sKSl7dmFyIEM9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KHkucm93LHkuY29sKSxJPVtDLnJvdyxDLmNvbF07eS5yb3c9''@;'; + put 'put ''SVswXSx5LmNvbD1JWzFdfX19LHtrZXk6Im9uQmVmb3JlU2V0UmFuZ2VFbmQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7Qy5oaWdobGlnaHQ9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQy5oaWdobGlnaHQucm93LEMuaGlnaGxp''@;'; + put 'put ''Z2h0LmNvbCksQy50bz15O3ZhciBJPSExO2lmKCF0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkmJiF0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkpZG97ST0hMTtmb3IodmFyIGo9MDtqPHRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0''@;'; + put 'put ''aW9uLm1lcmdlZENlbGxzLmxlbmd0aDtqKz0xKXt2YXIgX2U9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24ubWVyZ2VkQ2VsbHNbal0uZ2V0UmFuZ2UoKTtDLmV4cGFuZEJ5UmFuZ2UoX2UpJiYoeS5yb3c9Qy50by5yb3cseS5jb2w9Qy50by5jb2wsST0hMCl9fXdoaWxlKEkpfX0se2tleToi''@;'; + put 'put ''b25BZnRlckdldENlbGxNZXRhIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIGo9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KHksQyk7aiYmKGoucm93IT09eXx8ai5jb2whPT1DP0kuY29weWFibGU9ITE6KEkucm93c3Bhbj1qLnJvd3NwYW4sSS5jb2xzcGFuPWouY29sc3Bhbikp''@;'; + put 'put ''fX0se2tleToib25BZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC5jb3VudENvbHMoKTt0aGlzLm1vZGlmeVZpZXdwb3J0Um93U3RhcnQoeSxDKSx0aGlzLm1vZGlmeVZpZXdwb3J0Um93RW5kKHksQyl9fSx7a2V5OiJt''@;'; + put 'put ''b2RpZnlWaWV3cG9ydFJvd1N0YXJ0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe2Zvcih2YXIgST10aGlzLmhvdC5yb3dJbmRleE1hcHBlcixqPUkuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh5LnN0YXJ0Um93KSx1ZT0wO3VlPEM7dWUrPTEpe3ZhciBfZT10aGlzLm1lcmdlZENlbGxzQ29s''@;'; + put 'put ''bGVjdGlvbi5nZXQoaix1ZSk7aWYoeGwoX2UpKXt2YXIgQmU9SS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEkuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KF9lLnJvdywxKSk7aWYoQmU8eS5zdGFydFJvdylyZXR1cm4geS5zdGFydFJvdz1CZSx2b2lkIHRoaXMubW9kaWZ5Vmlld3Bv''@;'; + put 'put ''cnRSb3dTdGFydCh5LEMpfX19fSx7a2V5OiJtb2RpZnlWaWV3cG9ydFJvd0VuZCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtmb3IodmFyIEk9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIsaj1JLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoeS5lbmRSb3cpLHVlPTA7dWU8Qzt1ZSs9MSl7dmFy''@;'; + put 'put ''IF9lPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChqLHVlKTtpZih4bChfZSkpe3ZhciBOZT1JLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoSS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoX2Uucm93K19lLnJvd3NwYW4tMSwtMSkpO2lmKE5lPnkuZW5kUm93KXJldHVybiB5''@;'; + put 'put ''LmVuZFJvdz1OZSx2b2lkIHRoaXMubW9kaWZ5Vmlld3BvcnRSb3dFbmQoeSxDKX19fX0se2tleToib25BZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC5jb3VudFJvd3MoKTt0aGlzLm1vZGlmeVZpZXdwb3J0Q29s''@;'; + put 'put ''dW1uU3RhcnQoeSxDKSx0aGlzLm1vZGlmeVZpZXdwb3J0Q29sdW1uRW5kKHksQyl9fSx7a2V5OiJtb2RpZnlWaWV3cG9ydENvbHVtblN0YXJ0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe2Zvcih2YXIgST10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlcixqPUkuZ2V0VmlzdWFsRnJvbVJlbmRlcmFi''@;'; + put 'put ''bGVJbmRleCh5LnN0YXJ0Q29sdW1uKSx1ZT0wO3VlPEM7dWUrPTEpe3ZhciBfZT10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQodWUsaik7aWYoeGwoX2UpKXt2YXIgQmU9SS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEkuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KF9lLmNv''@;'; + put 'put ''bCwxKSk7aWYoQmU8eS5zdGFydENvbHVtbilyZXR1cm4geS5zdGFydENvbHVtbj1CZSx2b2lkIHRoaXMubW9kaWZ5Vmlld3BvcnRDb2x1bW5TdGFydCh5LEMpfX19fSx7a2V5OiJtb2RpZnlWaWV3cG9ydENvbHVtbkVuZCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtmb3IodmFyIEk9dGhpcy5ob3Qu''@;'; + put 'put ''Y29sdW1uSW5kZXhNYXBwZXIsaj1JLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoeS5lbmRDb2x1bW4pLHVlPTA7dWU8Qzt1ZSs9MSl7dmFyIF9lPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldCh1ZSxqKTtpZih4bChfZSkpe3ZhciBOZT1JLmdldFJlbmRlcmFibGVGcm9tVmlz''@;'; + put 'put ''dWFsSW5kZXgoSS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoX2UuY29sK19lLmNvbHNwYW4tMSwtMSkpO2lmKE5lPnkuZW5kQ29sdW1uKXJldHVybiB5LmVuZENvbHVtbj1OZSx2b2lkIHRoaXMubW9kaWZ5Vmlld3BvcnRDb2x1bW5FbmQoeSxDKX19fX0se2tleToidHJhbnNsYXRlTWVyZ2Vk''@;'; + put 'put ''Q2VsbFRvUmVuZGVyYWJsZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7dmFyIE5lLEtlLHVlPXRoaXMuaG90LF9lPXVlLnJvd0luZGV4TWFwcGVyLEJlPXVlLmNvbHVtbkluZGV4TWFwcGVyO3JldHVybiBOZT0wPT09Qz9fZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoeSwxKTpfZS5nZXRO''@;'; + put 'put ''ZWFyZXN0Tm90SGlkZGVuSW5kZXgoeStDLTEsLTEpLEtlPTA9PT1qP0JlLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChJLDEpOkJlLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChJK2otMSwtMSksW3k+PTA/X2UuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChOZSk6eSxJPj0wP0JlLmdl''@;'; + put 'put ''dFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoS2UpOkldfX0se2tleToib25Nb2RpZnlBdXRvZmlsbFJhbmdlIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuYXV0b2ZpbGxDYWxjdWxhdGlvbnMuY29ycmVjdFNlbGVjdGlvbkFyZWFTaXplKEMpO3ZhciBJPXRoaXMuYXV0b2ZpbGxDYWxjdWxh''@;'; + put 'put ''dGlvbnMuZ2V0RGlyZWN0aW9uKEMseSksaj15O2lmKHRoaXMuYXV0b2ZpbGxDYWxjdWxhdGlvbnMuZHJhZ0FyZWFPdmVybGFwc0NvbGxlY3Rpb25zKEMsaixJKSlyZXR1cm4gQzt2YXIgdWU9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0V2l0aGluUmFuZ2Uoe2Zyb206e3JvdzpDWzBd''@;'; + put 'put ''LGNvbDpDWzFdfSx0bzp7cm93OkNbMl0sY29sOkNbM119fSk7cmV0dXJuIHVlJiYoaj10aGlzLmF1dG9maWxsQ2FsY3VsYXRpb25zLnNuYXBEcmFnQXJlYShDLGosSSx1ZSkpLGp9fSx7a2V5OiJvbkFmdGVyQ3JlYXRlQ29sIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMubWVyZ2VkQ2VsbHND''@;'; + put 'put ''b2xsZWN0aW9uLnNoaWZ0Q29sbGVjdGlvbnMoInJpZ2h0Iix5LEMpfX0se2tleToib25BZnRlclJlbW92ZUNvbCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5zaGlmdENvbGxlY3Rpb25zKCJsZWZ0Iix5LEMpfX0se2tleToib25BZnRlckNyZWF0ZVJv''@;'; + put 'put ''dyIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpeyJhdXRvIiE9PUkmJnRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLnNoaWZ0Q29sbGVjdGlvbnMoImRvd24iLHksQyl9fSx7a2V5OiJvbkFmdGVyUmVtb3ZlUm93Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9u''@;'; + put 'put ''LnNoaWZ0Q29sbGVjdGlvbnMoInVwIix5LEMpfX0se2tleToib25BZnRlckNoYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXsiQXV0b2ZpbGwuZmlsbCI9PT1DJiZ0aGlzLmF1dG9maWxsQ2FsY3VsYXRpb25zLnJlY3JlYXRlQWZ0ZXJEYXRhUG9wdWxhdGlvbih5KX19LHtrZXk6Im9uQmVmb3Jl''@;'; + put 'put ''RHJhd0FyZWFCb3JkZXJzIix2YWx1ZTpmdW5jdGlvbih5LEMpe2lmKEMmJiJhcmVhIj09PUMpe3ZhciBJPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7VXIodGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0V2l0aGluUmFuZ2UoSSksZnVuY3Rpb24odWUpe0kuZ2V0Qm90dG9t''@;'; + put 'put ''RW5kQ29ybmVyKCkucm93PT09dWUuZ2V0TGFzdFJvdygpJiZJLmdldEJvdHRvbUVuZENvcm5lcigpLmNvbD09PXVlLmdldExhc3RDb2x1bW4oKSYmKHlbMl09dWUucm93LHlbM109dWUuY29sKX0pfX19LHtrZXk6Im9uQWZ0ZXJNb2RpZnlUcmFuc2Zvcm1TdGFydCIsdmFsdWU6ZnVuY3Rpb24o''@;'; + put 'put ''eSxDLEkpe2lmKHRoaXMuZW5hYmxlZCl7dmFyIGo9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KHkucm93LHkuY29sKTtpZihqKXt2YXIgdWU9Qz4wLF9lPUM8MCxCZT1JPDAsTmU9ST4wLEtlPWoucm93K2oucm93c3Bhbi0xPT10aGlzLmhvdC5jb3VudFJvd3MoKS0xLGR0PTA9PT1q''@;'; + put 'put ''LnJvdyxPdD1qLmNvbCtqLmNvbHNwYW4tMT09dGhpcy5ob3QuY291bnRDb2xzKCktMTsodWUmJktlfHxfZSYmZHR8fE5lJiZPdHx8QmUmJjA9PT1qLmNvbCkmJih5LnJvdz1qLnJvdyx5LmNvbD1qLmNvbCl9fX19LHtrZXk6Im9uQWZ0ZXJEcmF3U2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbih5''@;'; + put 'put ''LEMsSSxqKXtpZihJKXJldHVybiB0aGlzLnNlbGVjdGlvbkNhbGN1bGF0aW9ucy5nZXRTZWxlY3RlZE1lcmdlZENlbGxDbGFzc05hbWUoeSxDLEksail9fSx7a2V5OiJvbkJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNlbGVjdGlvbkNh''@;'; + put 'put ''bGN1bGF0aW9ucy5nZXRTZWxlY3RlZE1lcmdlZENlbGxDbGFzc05hbWVUb1JlbW92ZSgpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUnp9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAxNTB9fV0pLGh9KFlzKTtmdW5j''@;'; + put 'put ''dGlvbiBKSWUoZCl7cmV0dXJuIGZ1bmN0aW9uICRkdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gS2R0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSly''@;'; + put 'put ''ZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIFhkdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gWEllKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1''@;'; + put 'put ''Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBYSWUoZCxnKX19KGQpfHxm''@;'; + put 'put ''dW5jdGlvbiBKZHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkg''@;'; + put 'put ''bWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFhJZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uICRJZSgpe2wxKEIyKEtJZXx8KEtJZT1mdW5jdGlvbiBlNHQo''@;'; + put 'put ''ZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbIlBsdWdpbnMgYGNvbHVtblNvcnRpbmdgIGFuZCBgbXVsdGlDb2x1bW5Tb3J0aW5nYCBzaG91bGQgbm90''@;'; + put 'put ''IGJlIGVuYWJsZWQgc2ltdWx0YW5lb3VzbHkuIFxuICAgIE9ubHkgYG11bHRpQ29sdW1uU29ydGluZ2Agd2lsbCB3b3JrLiJdLFsiUGx1Z2lucyBcXGBjb2x1bW5Tb3J0aW5nXFxgIGFuZCBcXGBtdWx0aUNvbHVtblNvcnRpbmdcXGAgc2hvdWxkIG5vdCBiZSBlbmFibGVkIHNpbXVsdGFuZW91''@;'; + put 'put ''c2x5LiBcbiAgICBPbmx5IFxcYG11bHRpQ29sdW1uU29ydGluZ1xcYCB3aWxsIHdvcmsuIl0pKSkpfWZ1bmN0aW9uIHQ0dChkLGcsaCl7dmFyIHY9W107cmV0dXJuITE9PT1ofHxkLmlzQ29sdW1uU29ydGVkKGcpJiZkLmdldE51bWJlck9mU29ydGVkQ29sdW1ucygpPjEmJnYucHVzaCgiIi5j''@;'; + put 'put ''b25jYXQoInNvcnQiLCItIikuY29uY2F0KGQuZ2V0SW5kZXhPZkNvbHVtbkluU29ydFF1ZXVlKGcpKzEpKSx2fWZ1bmN0aW9uIG40dChkKXt2YXIgZz1kLmNsYXNzTmFtZS5zcGxpdCgiICIpLGg9bmV3IFJlZ0V4cCgiXiIuY29uY2F0KCJzb3J0IiwiLVswLTldezEsMn0kIikpO3JldHVybiBn''@;'; + put 'put ''LmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gaC50ZXN0KHYpfSl9ZnVuY3Rpb24gTWdlKGQpe3JldHVybihNZ2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihn''@;'; + put 'put ''KXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBlRGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2''@;'; + put 'put ''LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBiNCgpe3JldHVybiBiND0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJl''@;'; + put 'put ''ZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9bzR0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9''@;'; + put 'put ''fSxiNC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbzR0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1jMyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBFZ2UoZCxnKXtyZXR1cm4oRWdlPU9iamVjdC5zZXRQcm90''@;'; + put 'put ''b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gczR0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09TWdlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAw''@;'; + put 'put ''IT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiB1NHQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4g''@;'; + put 'put ''aW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBjMyhkKXtyZXR1cm4oYzM9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxP''@;'; + put 'put ''YmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgeGdlPSJtdWx0aUNvbHVtblNvcnRpbmciLHREZT0iY29sdW1uU29ydGluZyI7Y0VlKHhnZSxmdW5jdGlvbiBxZHQoZCxnKXtyZXR1cm4gZnVuY3Rpb24oaCx2KXt2YXIgQz1KSWUoaCkuc2xpY2UoMSksaj1KSWUodikuc2xpY2UoMSk7''@;'; + put 'put ''cmV0dXJuIGZ1bmN0aW9uIHVlKF9lKXt2YXIgQmU9ZFtfZV0sTmU9Z1tfZV0sS2U9Q1tfZV0sZHQ9altfZV0sT3Q9TmUubXVsdGlDb2x1bW5Tb3J0aW5nLGZuPShPdC5jb21wYXJlRnVuY3Rpb25GYWN0b3J5P090LmNvbXBhcmVGdW5jdGlvbkZhY3Rvcnk6ZkVlKE5lLnR5cGUpKShCZSxOZSxP''@;'; + put 'put ''dCkoS2UsZHQpO2lmKDA9PT1mbil7dmFyIExuPV9lKzE7aWYodm9pZCAwIT09Z1tMbl0pcmV0dXJuIHVlKExuKX1yZXR1cm4gZm59KDApfX0pO3ZhciBkNHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGE0dChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZFZ2UoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBsNHQoZCl7dmFyIGc9ZnVuY3Rpb24gYzR0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3Qu''@;'; + put 'put ''Y29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJu''@;'; + put 'put ''ITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9YzMoZCk7aWYoZyl7dmFyIEM9YzModGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHM0dCh0aGlzLHkpfX0oaCk7ZnVu''@;'; + put 'put ''Y3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gcjR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLnBsdWdpbktleT14Z2UseX1y''@;'; + put 'put ''ZXR1cm4gZnVuY3Rpb24gaTR0KGQsZyxoKXtnJiZlRGUoZC5wcm90b3R5cGUsZyksaCYmZURlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gYjQoYzMoaC5w''@;'; + put 'put ''cm90b3R5cGUpLCJpc0VuYWJsZWQiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7IXRoaXMuZW5hYmxlZCYmdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt0aGlzLnBsdWdpbktleV0mJnRoaXMuaG90LmdldFNldHRpbmdzKClbdERlXSYmJEll''@;'; + put 'put ''KCksYjQoYzMoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe2I0KGMzKGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6InNvcnQiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKHkpe2I0KGMzKGgucHJvdG90eXBlKSwic29ydCIsdGhpcykuY2FsbCh0aGlzLHkpfX0se2tleToiY2xlYXJTb3J0Iix2YWx1ZTpmdW5jdGlvbigpe2I0KGMzKGgucHJvdG90eXBlKSwiY2xlYXJTb3J0Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiaXNTb3J0ZWQiLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuIGI0KGMzKGgucHJvdG90eXBlKSwiaXNTb3J0ZWQiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJnZXRTb3J0Q29uZmlnIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gYjQoYzMoaC5wcm90b3R5cGUpLCJnZXRTb3J0Q29uZmlnIix0aGlzKS5jYWxsKHRoaXMs''@;'; + put 'put ''eSl9fSx7a2V5OiJzZXRTb3J0Q29uZmlnIix2YWx1ZTpmdW5jdGlvbih5KXtiNChjMyhoLnByb3RvdHlwZSksInNldFNvcnRDb25maWciLHRoaXMpLmNhbGwodGhpcyx5KX19LHtrZXk6ImdldE5vcm1hbGl6ZWRTb3J0Q29uZmlncyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1hcmd1bWVudHMu''@;'; + put 'put ''bGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W107cmV0dXJuIEFycmF5LmlzQXJyYXkoeSk/eTpbeV19fSx7a2V5OiJ1cGRhdGVIZWFkZXJDbGFzc2VzIix2YWx1ZTpmdW5jdGlvbih5KXtmb3IodmFyIEMsST1hcmd1bWVudHMubGVuZ3RoLGo9bmV3IEFycmF5''@;'; + put 'put ''KEk+MT9JLTE6MCksdWU9MTt1ZTxJO3VlKyspalt1ZS0xXT1hcmd1bWVudHNbdWVdOyhDPWI0KGMzKGgucHJvdG90eXBlKSwidXBkYXRlSGVhZGVyQ2xhc3NlcyIsdGhpcykpLmNhbGwuYXBwbHkoQyxbdGhpcyx5XS5jb25jYXQoaikpLHBsKHksbjR0KHkpKSwhMSE9PXRoaXMuZW5hYmxlZCYm''@;'; + put 'put ''TzAoeSx0NHQuYXBwbHkodm9pZCAwLGopKX19LHtrZXk6Im9uVXBkYXRlU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuaG90LmdldFNldHRpbmdzKClbdGhpcy5wbHVnaW5LZXldJiZ0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3REZV0mJiRJZSgpLGI0KGMzKGgucHJvdG90eXBlKSwi''@;'; + put 'put ''b25VcGRhdGVTZXR0aW5ncyIsdGhpcykuY2FsbCh0aGlzLHkpfX0se2tleToib25BZnRlck9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSxDKXshMSE9PWg4ZShDLnJvdyxDLmNvbCx5KSYmdGhpcy53YXNDbGlja2FibGVIZWFkZXJDbGlja2VkKHksQy5jb2wpJiYodGhpcy5ob3Qu''@;'; + put 'put ''Z2V0U2hvcnRjdXRNYW5hZ2VyKCkuaXNDdHJsUHJlc3NlZCgpPyh0aGlzLmhvdC5kZXNlbGVjdENlbGwoKSx0aGlzLmhvdC5zZWxlY3RDb2x1bW5zKEMuY29sKSx0aGlzLnNvcnQodGhpcy5nZXROZXh0U29ydENvbmZpZyhDLmNvbCwiYXBwZW5kIikpKTp0aGlzLnNvcnQodGhpcy5nZXRDb2x1''@;'; + put 'put ''bW5OZXh0Q29uZmlnKEMuY29sKSkpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geGdlfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTcwfX1dKSxofSh5RWUpO2Z1bmN0aW9uIFRnZShkKXtyZXR1cm4oVGdlPSJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1i''@;'; + put 'put ''b2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gbkRlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxl''@;'; + put 'put ''PSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gRW5lKCl7cmV0dXJuIEVuZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9bTR0KGcsaCk7aWYoeSl7dmFy''@;'; + put 'put ''IEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxFbmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG00dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUu''@;'; + put 'put ''aGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9cU8oZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gSWdlKGQsZyl7cmV0dXJuKElnZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9f''@;'; + put 'put ''Xz15LHZ9KShkLGcpfWZ1bmN0aW9uIHk0dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVRnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVj''@;'; + put 'put ''dCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gdzR0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gcU8o''@;'; + put 'put ''ZCl7cmV0dXJuKHFPPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIGs0dD1mdW5jdGlvbihkKXshZnVuY3Rpb24gdjR0KGQsZyl7''@;'; + put 'put ''aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3Zh''@;'; + put 'put ''bHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJklnZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIEE0dChkKXt2YXIgZz1mdW5jdGlvbiBiNHQoKXtpZigidW5kZWZpbmVkIj09''@;'; + put 'put ''dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3Qo''@;'; + put 'put ''Qm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1xTyhkKTtpZihnKXt2YXIgQz1xTyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5''@;'; + put 'put ''KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4geTR0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBwNHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0o''@;'; + put 'put ''dGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuZHJhZ2dlZD1bXSx5LmV2ZW50TWFuYWdlcj1udWxsLHkubGFzdFNldENlbGw9bnVsbCx5fXJldHVybiBmdW5jdGlvbiBnNHQoZCxnLGgpe2cmJm5EZShkLnByb3RvdHlwZSxnKSxoJiZuRGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwi''@;'; + put 'put ''cHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBiOCgpfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZW5hYmxlZHx8KHRoaXMuZXZlbnRNYW5hZ2VyfHwodGhpcy5ldmVudE1hbmFn''@;'; + put 'put ''ZXI9bmV3IEwxKHRoaXMpKSx0aGlzLnJlZ2lzdGVyTGlzdGVuZXJzKCksRW5lKHFPKGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpKX19LHtrZXk6InJlZ2lzdGVyTGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz10aGlzLEk9dGhpcy5o''@;'; + put 'put ''b3Qucm9vdEVsZW1lbnQ7ZnVuY3Rpb24gaih1ZSl7aWYoMT09PUMuZHJhZ2dlZC5sZW5ndGgpcmV0dXJuIEMuZHJhZ2dlZC5zcGxpY2UoMCxDLmRyYWdnZWQubGVuZ3RoKSwhMDt2YXIgX2U9Qy5kcmFnZ2VkLmluZGV4T2YodWUpO2lmKC0xPT09X2UpcmV0dXJuITE7MD09PV9lP0MuZHJhZ2dl''@;'; + put 'put ''ZD1DLmRyYWdnZWQuc2xpY2UoMCwxKToxPT09X2UmJihDLmRyYWdnZWQ9Qy5kcmFnZ2VkLnNsaWNlKC0xKSl9dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLCJ0b3VjaHN0YXJ0IixmdW5jdGlvbih1ZSl7dmFyIF9lO3JldHVybiB0bCh1ZS50YXJnZXQsInRvcFNlbGVjdGlv''@;'; + put 'put ''bkhhbmRsZS1IaXRBcmVhIik/KF9lPUMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksQy5kcmFnZ2VkLnB1c2goInRvcCIpLEMudG91Y2hTdGFydFJhbmdlPXt3aWR0aDpfZS5nZXRXaWR0aCgpLGhlaWdodDpfZS5nZXRIZWlnaHQoKSxkaXJlY3Rpb246X2UuZ2V0RGlyZWN0aW9uKCl9LHVl''@;'; + put 'put ''LnByZXZlbnREZWZhdWx0KCksITEpOnRsKHVlLnRhcmdldCwiYm90dG9tU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWEiKT8oX2U9Qy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxDLmRyYWdnZWQucHVzaCgiYm90dG9tIiksQy50b3VjaFN0YXJ0UmFuZ2U9e3dpZHRoOl9lLmdldFdpZHRoKCks''@;'; + put 'put ''aGVpZ2h0Ol9lLmdldEhlaWdodCgpLGRpcmVjdGlvbjpfZS5nZXREaXJlY3Rpb24oKX0sdWUucHJldmVudERlZmF1bHQoKSwhMSk6dm9pZCAwfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLCJ0b3VjaGVuZCIsZnVuY3Rpb24odWUpe3JldHVybiB0bCh1ZS50YXJnZXQs''@;'; + put 'put ''InRvcFNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIik/KGouY2FsbChDLCJ0b3AiKSxDLnRvdWNoU3RhcnRSYW5nZT12b2lkIDAsdWUucHJldmVudERlZmF1bHQoKSwhMSk6dGwodWUudGFyZ2V0LCJib3R0b21TZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSIpPyhqLmNhbGwoQywiYm90dG9tIiksQy50''@;'; + put 'put ''b3VjaFN0YXJ0UmFuZ2U9dm9pZCAwLHVlLnByZXZlbnREZWZhdWx0KCksITEpOnZvaWQgMH0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSSwidG91Y2htb3ZlIixmdW5jdGlvbih1ZSl7dmFyIEJlLE5lLEtlLGR0LE90LCR0O2lmKDAhPT1DLmRyYWdnZWQubGVuZ3RoKXt2''@;'; + put 'put ''YXIgZm49eS5ob3Qucm9vdERvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQodWUudG91Y2hlc1swXS5jbGllbnRYLHVlLnRvdWNoZXNbMF0uY2xpZW50WSk7IWZufHxmbj09PUMubGFzdFNldENlbGx8fCgoIlREIj09PWZuLm5vZGVOYW1lfHwiVEgiPT09Zm4ubm9kZU5hbWUpJiYoLTE9PT0oQmU9''@;'; + put 'put ''Qy5ob3QuZ2V0Q29vcmRzKGZuKSkuY29sJiYoQmUuY29sPTApLEtlPShOZT1DLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpKS5nZXRXaWR0aCgpLGR0PU5lLmdldEhlaWdodCgpLE90PU5lLmdldERpcmVjdGlvbigpLDE9PT1LZSYmMT09PWR0JiZDLmhvdC5zZWxlY3Rpb24uc2V0UmFuZ2VF''@;'; + put 'put ''bmQoQmUpLG51bGwhPT0oJHQ9Qy5nZXRDdXJyZW50UmFuZ2VDb29yZHMoTmUsQmUsQy50b3VjaFN0YXJ0UmFuZ2UuZGlyZWN0aW9uLE90LEMuZHJhZ2dlZFswXSkpLnN0YXJ0JiZDLmhvdC5zZWxlY3Rpb24uc2V0UmFuZ2VTdGFydCgkdC5zdGFydCksQy5ob3Quc2VsZWN0aW9uLnNldFJhbmdl''@;'; + put 'put ''RW5kKCR0LmVuZCksQy5sYXN0U2V0Q2VsbD1mbiksdWUucHJldmVudERlZmF1bHQoKSl9fSl9fSx7a2V5OiJnZXRDdXJyZW50UmFuZ2VDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLGosdWUpe3ZhciBfZT15LmdldFRvcFN0YXJ0Q29ybmVyKCksQmU9eS5nZXRCb3R0b21FbmRDb3JuZXIo''@;'; + put 'put ''KSxOZT15LmdldEJvdHRvbVN0YXJ0Q29ybmVyKCksS2U9eS5nZXRUb3BFbmRDb3JuZXIoKSxkdD17c3RhcnQ6bnVsbCxlbmQ6bnVsbH07c3dpdGNoKEkpe2Nhc2UiTkUtU1ciOnN3aXRjaChqKXtjYXNlIk5FLVNXIjpjYXNlIk5XLVNFIjpkdD0idG9wIj09PXVlP3tzdGFydDp0aGlzLmhvdC5f''@;'; + put 'put ''Y3JlYXRlQ2VsbENvb3JkcyhDLnJvdyx5LmhpZ2hsaWdodC5jb2wpLGVuZDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhOZS5yb3csQy5jb2wpfTp7c3RhcnQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoeS5oaWdobGlnaHQucm93LEMuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNl''@;'; + put 'put ''bGxDb29yZHMoQy5yb3csX2UuY29sKX07YnJlYWs7Y2FzZSJTRS1OVyI6ImJvdHRvbSI9PT11ZSYmKGR0PXtzdGFydDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhCZS5yb3csQy5jb2wpLGVuZDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhDLnJvdyxfZS5jb2wpfSl9YnJlYWs7Y2Fz''@;'; + put 'put ''ZSJOVy1TRSI6c3dpdGNoKGope2Nhc2UiTkUtU1ciOiJ0b3AiPT09dWU/ZHQ9e3N0YXJ0OkMsZW5kOk5lfTpkdC5lbmQ9QzticmVhaztjYXNlIk5XLVNFIjoidG9wIj09PXVlP2R0PXtzdGFydDpDLGVuZDpCZX06ZHQuZW5kPUM7YnJlYWs7Y2FzZSJTRS1OVyI6InRvcCI9PT11ZT9kdD17c3Rh''@;'; + put 'put ''cnQ6QyxlbmQ6X2V9OmR0LmVuZD1DO2JyZWFrO2Nhc2UiU1ctTkUiOiJ0b3AiPT09dWU/ZHQ9e3N0YXJ0OkMsZW5kOktlfTpkdC5lbmQ9Q31icmVhaztjYXNlIlNXLU5FIjpzd2l0Y2goail7Y2FzZSJOVy1TRSI6ZHQ9ImJvdHRvbSI9PT11ZT97c3RhcnQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxD''@;'; + put 'put ''b29yZHMoQy5yb3csX2UuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoTmUucm93LEMuY29sKX06e3N0YXJ0OnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKF9lLnJvdyxDLmNvbCksZW5kOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEMucm93LEJlLmNvbCl9O2JyZWFr''@;'; + put 'put ''O2Nhc2UiU1ctTkUiOmR0PSJ0b3AiPT09dWU/e3N0YXJ0OnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHkuaGlnaGxpZ2h0LnJvdyxDLmNvbCksZW5kOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEMucm93LEJlLmNvbCl9OntzdGFydDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhD''@;'; + put 'put ''LnJvdyxfZS5jb2wpLGVuZDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhfZS5yb3csQy5jb2wpfTticmVhaztjYXNlIlNFLU5XIjoiYm90dG9tIj09PXVlP2R0PXtzdGFydDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhDLnJvdyxLZS5jb2wpLGVuZDp0aGlzLmhvdC5fY3JlYXRlQ2Vs''@;'; + put 'put ''bENvb3JkcyhfZS5yb3csQy5jb2wpfToidG9wIj09PXVlJiYoZHQ9e3N0YXJ0Ok5lLGVuZDpDfSl9YnJlYWs7Y2FzZSJTRS1OVyI6c3dpdGNoKGope2Nhc2UiTlctU0UiOmNhc2UiTkUtU1ciOmNhc2UiU1ctTkUiOiJ0b3AiPT09dWUmJihkdC5lbmQ9Qyk7YnJlYWs7Y2FzZSJTRS1OVyI6InRv''@;'; + put 'put ''cCI9PT11ZT9kdC5lbmQ9QzpkdD17c3RhcnQ6QyxlbmQ6X2V9fX1yZXR1cm4gZHR9fSx7a2V5OiJpc0RyYWdnZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZHJhZ2dlZC5sZW5ndGg+MH19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIm11bHRpcGxl''@;'; + put 'put ''U2VsZWN0aW9uSGFuZGxlcyJ9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAxNjB9fV0pLGh9KFlzKTtmdW5jdGlvbiBEZ2UoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sZz1kLmxh''@;'; + put 'put ''YmVsLGg9dm9pZCAwPT09Zz8iIjpnLHY9ZC5jb2xzcGFuLHk9dm9pZCAwPT09dj8xOnYsQz1kLm9yaWdDb2xzcGFuLEk9dm9pZCAwPT09Qz8xOkMsaj1kLmNvbGxhcHNpYmxlLHVlPXZvaWQgMCE9PWomJmosX2U9ZC5jcm9zc0hpZGRlbkNvbHVtbnMsQmU9dm9pZCAwPT09X2U/W106X2UsTmU9''@;'; + put 'put ''ZC5pc0NvbGxhcHNlZCxLZT12b2lkIDAhPT1OZSYmTmUsZHQ9ZC5pc0hpZGRlbixPdD12b2lkIDAhPT1kdCYmZHQsJHQ9ZC5pc1Jvb3QsZm49dm9pZCAwIT09JHQmJiR0LExuPWQuaXNQbGFjZWhvbGRlcixpcj12b2lkIDAhPT1MbiYmTG47cmV0dXJue2xhYmVsOmgsY29sc3Bhbjp5LG9yaWdD''@;'; + put 'put ''b2xzcGFuOkksY29sbGFwc2libGU6dWUsaXNDb2xsYXBzZWQ6S2UsY3Jvc3NIaWRkZW5Db2x1bW5zOkJlLGlzSGlkZGVuOk90LGlzUm9vdDpmbixpc1BsYWNlaG9sZGVyOmlyfX1mdW5jdGlvbiBpRGUoZCl7cmV0dXJuIGZ1bmN0aW9uIHg0dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVy''@;'; + put 'put ''biBMZ2UoZCl9KGQpfHxmdW5jdGlvbiBFNHQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gTTR0KGQsZyl7aWYoZCl7aWYoInN0''@;'; + put 'put ''cmluZyI9PXR5cGVvZiBkKXJldHVybiBMZ2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVy''@;'; + put 'put ''biBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIExnZShkLGcpfX0oZCl8fGZ1bmN0aW9uIFM0dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBz''@;'; + put 'put ''cHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIExnZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5s''@;'; + put 'put ''ZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFQ0dChkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MS8wLGg9W107aWYoMD09PWcpcmV0dXJuIGg7''@;'; + put 'put ''VXIoZCxmdW5jdGlvbih5KXt2YXIgQz1bXSxJPTA7aC5wdXNoKEMpLFVyKHksZnVuY3Rpb24oail7dmFyIHVlPURnZSgpO2lmKHhsKGopKXt2YXIgQmU9ai5jb2xzcGFuO3VlLmxhYmVsPWV1KGoubGFiZWwpLCJudW1iZXIiPT10eXBlb2YgQmUmJkJlPjEmJih1ZS5jb2xzcGFuPUJlLHVlLm9y''@;'; + put 'put ''aWdDb2xzcGFuPUJlKX1lbHNlIHVlLmxhYmVsPWV1KGopO3ZhciBOZT0hMTtpZigoSSs9dWUub3JpZ0NvbHNwYW4pPj1nJiYodWUuY29sc3Bhbj11ZS5vcmlnQ29sc3Bhbi0oSS1nKSx1ZS5vcmlnQ29sc3Bhbj11ZS5jb2xzcGFuLE5lPSEwKSxDLnB1c2godWUpLHVlLmNvbHNwYW4+MSlmb3Io''@;'; + put 'put ''dmFyIEtlPTA7S2U8dWUuY29sc3Bhbi0xO0tlKyspQy5wdXNoKHtsYWJlbDoiIixpc1BsYWNlaG9sZGVyOiEwfSk7cmV0dXJuIU5lfSl9KTt2YXIgdj1NYXRoLm1heC5hcHBseShNYXRoLGlEZShPbChoLGZ1bmN0aW9uKHkpe3JldHVybiB5Lmxlbmd0aH0pKSk7cmV0dXJuIFVyKGgsZnVuY3Rp''@;'; + put 'put ''b24oeSl7aWYoeS5sZW5ndGg8dil7dmFyIEM9T2wobmV3IEFycmF5KHYteS5sZW5ndGgpLGZ1bmN0aW9uKCl7cmV0dXJuIERnZSgpfSk7eS5zcGxpY2UuYXBwbHkoeSxbeS5sZW5ndGgsMF0uY29uY2F0KGlEZShDKSkpfX0pLGh9dmFyIEk0dD1bInJvdyIsImNvbCJdO2Z1bmN0aW9uIG9EZShk''@;'; + put 'put ''LGcpe3ZhciBoPU9iamVjdC5rZXlzKGQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCx5''@;'; + put 'put ''KS5lbnVtZXJhYmxlfSkpLGgucHVzaC5hcHBseShoLHYpfXJldHVybiBofWZ1bmN0aW9uIEw0dChkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9''@;'; + put 'put ''ZnVuY3Rpb24gYURlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2''@;'; + put 'put ''KX19ZnVuY3Rpb24gT2dlKGQsZyxoKXsoZnVuY3Rpb24gRjR0KGQsZyl7aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlv''@;'; + put 'put ''biB4OChkLGcpe3JldHVybiBmdW5jdGlvbiBINHQoZCxnKXtyZXR1cm4gZy5nZXQ/Zy5nZXQuY2FsbChkKTpnLnZhbHVlfShkLGxEZShkLGcsImdldCIpKX1mdW5jdGlvbiBCeihkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uIE40dChkLGcsaCl7aWYoZy5zZXQpZy5zZXQuY2FsbChkLGgpO2Vsc2V7''@;'; + put 'put ''aWYoIWcud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO2cudmFsdWU9aH19KGQsbERlKGQsZywic2V0IiksaCksaH1mdW5jdGlvbiBsRGUoZCxnLGgpe2lmKCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9y''@;'; + put 'put ''KCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQoZCl9dmFyIHNEZT1bImxhYmVsIiwiY29sbGFwc2libGUiXSwkOT1uZXcgV2Vha01hcCxjTT1uZXcgV2Vha01hcCxSZ2U9bmV3IFdlYWtNYXAsVjR0PWZ1bmN0aW9uKCl7ZnVu''@;'; + put 'put ''Y3Rpb24gZCgpeyhmdW5jdGlvbiBCNHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksT2dlKHRoaXMsJDkse3dyaXRhYmxlOiEwLHZhbHVlOltdfSksT2dlKHRoaXMsY00s''@;'; + put 'put ''e3dyaXRhYmxlOiEwLHZhbHVlOjB9KSxPZ2UodGhpcyxSZ2Use3dyaXRhYmxlOiEwLHZhbHVlOjEvMH0pfXJldHVybiBmdW5jdGlvbiBQNHQoZCxnLGgpe2cmJmFEZShkLnByb3RvdHlwZSxnKSxoJiZhRGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFi''@;'; + put 'put ''bGU6ITF9KX0oZCxbe2tleToic2V0Q29sdW1uc0xpbWl0Iix2YWx1ZTpmdW5jdGlvbihoKXtCeih0aGlzLFJnZSxoKX19LHtrZXk6InNldERhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltd''@;'; + put 'put ''O0J6KHRoaXMsJDksVDR0KGgseDgodGhpcyxSZ2UpKSksQnoodGhpcyxjTSx4OCh0aGlzLCQ5KS5sZW5ndGgpfX0se2tleToiZ2V0RGF0YSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4geDgodGhpcywkOSl9fSx7a2V5OiJtZXJnZVdpdGgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXM7''@;'; + put 'put ''VXIoaCxmdW5jdGlvbih5KXt2YXIgQz15LnJvdyxJPXkuY29sLGo9ZnVuY3Rpb24gTzR0KGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgdix5LGg9ZnVuY3Rpb24gUjR0KGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30sdj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8''@;'; + put 'put ''di5sZW5ndGg7QysrKSEoZy5pbmRleE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTtyZXR1cm4gaH0oZCxnKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zvcih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmlu''@;'; + put 'put ''ZGV4T2Yodj1DW3ldKT49MCkmJighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGQsdil8fChoW3ZdPWRbdl0pKX1yZXR1cm4gaH0oeSxJNHQpLHVlPXYuZ2V0SGVhZGVyU2V0dGluZ3MoQyxJKTtudWxsIT09dWUmJkkxKHVlLGosc0RlKX0pfX0se2tleToibWFw''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbihoKXtVcih4OCh0aGlzLCQ5KSxmdW5jdGlvbih2KXtVcih2LGZ1bmN0aW9uKHkpe3ZhciBDPWgoZnVuY3Rpb24gRDR0KGQpe2Zvcih2YXIgZz0xO2c8YXJndW1lbnRzLmxlbmd0aDtnKyspe3ZhciBoPW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1bWVudHNbZ106e307''@;'; + put 'put ''ZyUyP29EZShPYmplY3QoaCksITApLmZvckVhY2goZnVuY3Rpb24odil7TDR0KGQsdixoW3ZdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaCkpOm9EZShPYmplY3Qo''@;'; + put 'put ''aCkpLmZvckVhY2goZnVuY3Rpb24odil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9KHt9LHkpKTt4bChDKSYmSTEoeSxDLHNEZSl9KX0pfX0se2tleToiZ2V0SGVhZGVyU2V0dGluZ3MiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKGgsdil7dmFyIHk7aWYoaD49eDgodGhpcyxjTSl8fGg8MClyZXR1cm4gbnVsbDt2YXIgQz14OCh0aGlzLCQ5KVtoXTtyZXR1cm4gdj49Qy5sZW5ndGg/bnVsbDpudWxsIT09KHk9Q1t2XSkmJnZvaWQgMCE9PXk/eTpudWxsfX0se2tleToiZ2V0SGVhZGVyc1NldHRpbmdzIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxLEM9W107aWYoaD49eDgodGhpcyxjTSl8fGg8MClyZXR1cm4gQztmb3IodmFyIEk9eDgodGhpcywkOSlbaF0saj0wLHVlPXY7dWU8SS5sZW5ndGg7dWUr''@;'; + put 'put ''Kyl7dmFyIF9lPUlbdWVdO2lmKF9lLmlzUGxhY2Vob2xkZXIpdGhyb3cgbmV3IEVycm9yKCJUaGUgZmlyc3QgY29sdW1uIHNldHRpbmdzIGNhbm5vdCBvdmVybGFwIHRoZSBvdGhlciBoZWFkZXIgbGF5ZXJzIik7aWYoais9X2UuY29sc3BhbixDLnB1c2goX2UpLF9lLmNvbHNwYW4+MSYmKHVl''@;'; + put 'put ''Kz1fZS5jb2xzcGFuLTEpLGo9PT15KWJyZWFrO2lmKGo+eSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBsYXN0IGNvbHVtbiBzZXR0aW5ncyBjYW5ub3Qgb3ZlcmxhcCB0aGUgb3RoZXIgaGVhZGVyIGxheWVycyIpfXJldHVybiBDfX0se2tleToiZ2V0TGF5ZXJzQ291bnQiLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIHg4KHRoaXMsY00pfX0se2tleToiZ2V0Q29sdW1uc0NvdW50Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB4OCh0aGlzLGNNKT4wP3g4KHRoaXMsJDkpWzBdLmxlbmd0aDowfX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7QnoodGhpcywkOSxbXSksQnoodGhpcyxj''@;'; + put 'put ''TSwwKX19XSksZH0oKTtmdW5jdGlvbiB1RGUoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3Qu''@;'; + put 'put ''Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBjRGUoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtn''@;'; + put 'put ''JTI/dURlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXt4bmUoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6dURlKE9iamVjdCho''@;'; + put 'put ''KSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiBmRGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFi''@;'; + put 'put ''bGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB4bmUoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFs''@;'; + put 'put ''dWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIEJnZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2''@;'; + put 'put ''fXZhciBnRGU9bmV3IE1hcChbWyJERi1wcmUtb3JkZXIiLGZ1bmN0aW9uIGhEZShkLGcpe2Zvcih2YXIgaD1kLmNhbGwoZyx0aGlzKSx2PTA7djx0aGlzLmNoaWxkcy5sZW5ndGg7disrKXtpZighMT09PWgpcmV0dXJuITE7aD1oRGUuY2FsbCh0aGlzLmNoaWxkc1t2XSxkLGcpfXJldHVybiBo''@;'; + put 'put ''fV0sWyJERi1wb3N0LW9yZGVyIixmdW5jdGlvbiBkRGUoZCxnKXtmb3IodmFyIGg9MDtoPHRoaXMuY2hpbGRzLmxlbmd0aDtoKyspaWYoITE9PT1kRGUuY2FsbCh0aGlzLmNoaWxkc1toXSxkLGcpKXJldHVybiExO3JldHVybiBkLmNhbGwoZyx0aGlzKX1dLFsiQkYiLGZ1bmN0aW9uIFg0dChk''@;'; + put 'put ''LGcpe3ZhciBoPVt0aGlzXTshZnVuY3Rpb24gdigpe2lmKDAhPT1oLmxlbmd0aCl7dmFyIHk9aC5zaGlmdCgpO2gucHVzaC5hcHBseShoLGZ1bmN0aW9uIHo0dChkKXtyZXR1cm4gZnVuY3Rpb24gVTR0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIEJnZShkKX0oZCl8fGZ1bmN0aW9u''@;'; + put 'put ''IFk0dChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBXNHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJu''@;'; + put 'put ''IEJnZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFy''@;'; + put 'put ''Z3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gQmdlKGQsZyl9fShkKXx8ZnVuY3Rpb24gRzR0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5z''@;'; + put 'put ''dGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KHkuY2hpbGRzKSksITEhPT1kLmNhbGwoZyx5KSYmdigpfX0oKX1dXSksbURlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChn''@;'; + put 'put ''KXsoZnVuY3Rpb24gajR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHhuZSh0aGlzLCJkYXRhIix7fSkseG5lKHRoaXMsInBhcmVudCIsbnVsbCkseG5lKHRoaXMsImNo''@;'; + put 'put ''aWxkcyIsW10pLHRoaXMuZGF0YT1nfXJldHVybiBmdW5jdGlvbiBaNHQoZCxnLGgpe2cmJmZEZShkLnByb3RvdHlwZSxnKSxoJiZmRGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiYWRkQ2hpbGQiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKGgpe2gucGFyZW50PXRoaXMsdGhpcy5jaGlsZHMucHVzaChoKX19LHtrZXk6ImNsb25lVHJlZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMsdj1uZXcgZChjRGUoe30saC5k''@;'; + put 'put ''YXRhKSkseT0wO3k8aC5jaGlsZHMubGVuZ3RoO3krKyl2LmFkZENoaWxkKHRoaXMuY2xvbmVUcmVlKGguY2hpbGRzW3ldKSk7cmV0dXJuIHZ9fSx7a2V5OiJyZXBsYWNlVHJlZVdpdGgiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuZGF0YT1jRGUoe30saC5kYXRhKSx0aGlzLmNoaWxkcz1bXTtm''@;'; + put 'put ''b3IodmFyIHY9MDt2PGguY2hpbGRzLmxlbmd0aDt2KyspdGhpcy5hZGRDaGlsZChoLmNoaWxkc1t2XSl9fSx7a2V5OiJ3YWxrRG93biIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJCRiI7aWYo''@;'; + put 'put ''IWdEZS5oYXModikpdGhyb3cgbmV3IEVycm9yKCdUcmF2ZXJzYWwgc3RyYXRlZ3kgIicuY29uY2F0KHYsJyIgZG9lcyBub3QgZXhpc3QnKSk7Z0RlLmdldCh2KS5jYWxsKHRoaXMsaCx0aGlzKX19LHtrZXk6IndhbGtVcCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpczshZnVuY3Rpb24g''@;'; + put 'put ''QyhJKXshMSE9PWguY2FsbCh2LEkpJiZudWxsIT09SS5wYXJlbnQmJkMoSS5wYXJlbnQpfSh0aGlzKX19XSksZH0oKTtmdW5jdGlvbiB2RGUoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVy''@;'; + put 'put ''dHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBBRGUoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMu''@;'; + put 'put ''bGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/dkRlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXskNHQoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRp''@;'; + put 'put ''ZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6dkRlKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiAkNHQo''@;'; + put 'put ''ZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIHlEZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zv''@;'; + put 'put ''cih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHdEZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJp''@;'; + put 'put ''biB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFBnZShkLGcsaCl7KGZ1bmN0aW9uIGFwdChkLGcpe2lmKGcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxl''@;'; + put 'put ''bWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShkLGcpLGcuc2V0KGQsaCl9ZnVuY3Rpb24gZjMoZCxnKXtyZXR1cm4gZnVuY3Rpb24gbHB0KGQsZyl7cmV0dXJuIGcuZ2V0P2cuZ2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCxiRGUoZCxnLCJnZXQiKSl9ZnVuY3Rpb24gYkRlKGQsZyxoKXtpZigh''@;'; + put 'put ''Zy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQpfXZhciBDRGUsa0RlLGVSPW5ldyBXZWFrTWFwLGZNPW5ldyBXZWFrTWFwLHRSPW5ldyBXZWFrTWFwLGNwdD1mdW5jdGlv''@;'; + put 'put ''bigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIGlwdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSxQZ2UodGhpcyxlUix7d3JpdGFibGU6ITAsdmFsdWU6bmV3IE1hcH0p''@;'; + put 'put ''LFBnZSh0aGlzLGZNLHt3cml0YWJsZTohMCx2YWx1ZTpuZXcgTWFwfSksUGdlKHRoaXMsdFIse3dyaXRhYmxlOiEwLHZhbHVlOm51bGx9KSxmdW5jdGlvbiBzcHQoZCxnLGgpe3JldHVybiBmdW5jdGlvbiB1cHQoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndy''@;'; + put 'put ''aXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLGJEZShkLGcsInNldCIpLGgpLGh9KHRoaXMsdFIsZyl9cmV0dXJuIGZ1bmN0aW9uIG9wdChkLGcsaCl7ZyYmd0RlKGQucHJvdG90eXBlLGcp''@;'; + put 'put ''LGgmJndEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJnZXRSb290cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQXJyYXkuZnJvbShmMyh0aGlzLGVSKS52YWx1ZXMoKSl9fSx7a2V5OiJnZXRSb290QnlDb2x1bW4i''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2O3JldHVybiBmMyh0aGlzLGZNKS5oYXMoaCkmJih2PWYzKHRoaXMsZVIpLmdldChmMyh0aGlzLGZNKS5nZXQoaCkpKSx2fX0se2tleToiZ2V0Tm9kZSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzLmdldFJvb3RCeUNvbHVtbih2KTtpZih5''@;'; + put 'put ''KXt2YXIgaixDPXYtZjModGhpcyxmTSkuZ2V0KHYpLEk9MDtyZXR1cm4geS53YWxrRG93bihmdW5jdGlvbih1ZSl7dmFyIF9lPXVlLmRhdGEsQmU9X2Uub3JpZ0NvbHNwYW47aWYoaD09PV9lLmhlYWRlckxldmVsKXtpZihDPj1JJiZDPD1JK0JlLTEpcmV0dXJuIGo9dWUsITE7SSs9QmV9fSks''@;'; + put 'put ''an19fSx7a2V5OiJyZWJ1aWxkVHJlZUluZGV4Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj0wO2YzKHRoaXMsZk0pLmNsZWFyKCksVXIoZjModGhpcyxlUiksZnVuY3Rpb24oeSl7Zm9yKHZhciBJPWZ1bmN0aW9uIHE0dChkLGcpe3JldHVybiBmdW5jdGlvbiBycHQoZCl7aWYoQXJy''@;'; + put 'put ''YXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIG5wdChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0''@;'; + put 'put ''cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJv''@;'; + put 'put ''dyBqfX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIHRwdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4geURlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3Rv''@;'; + put 'put ''ciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiB5RGUoZCxnKX19KGQsZyl8fGZ1''@;'; + put 'put ''bmN0aW9uIGVwdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBt''@;'; + put 'put ''ZXRob2QuIil9KCl9KHksMilbMV0uZGF0YS5jb2xzcGFuLGo9djtqPHYrSTtqKyspZjMoaCxmTSkuc2V0KGosdik7dis9SX0pfX0se2tleToiYnVpbGRUcmVlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2xlYXIoKTtmb3IodmFyIGg9ZjModGhpcyx0UikuZ2V0Q29sdW1uc0NvdW50KCksdj0w''@;'; + put 'put ''O3Y8aDspe3ZhciB5PWYzKHRoaXMsdFIpLmdldEhlYWRlclNldHRpbmdzKDAsdiksQz1uZXcgbURlO2YzKHRoaXMsZVIpLnNldCh2LEMpLHRoaXMuYnVpbGRMZWF2ZXMoQyx2LDAseS5vcmlnQ29sc3Bhbiksdis9eS5vcmlnQ29sc3Bhbn10aGlzLnJlYnVpbGRUcmVlSW5kZXgoKX19LHtrZXk6''@;'; + put 'put ''ImJ1aWxkTGVhdmVzIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXToxLGo9ZjModGhpcyx0UikuZ2V0SGVhZGVyc1NldHRpbmdzKHksdixJKTt5Kz0xLFVyKGosZnVuY3Rpb24o''@;'; + put 'put ''dWUpe3ZhciBCZSxfZT1BRGUoQURlKHt9LHVlKSx7fSx7aGVhZGVyTGV2ZWw6eS0xLGNvbHVtbkluZGV4OnZ9KTsxPT09eT8oaC5kYXRhPV9lLEJlPWgpOihCZT1uZXcgbURlKF9lKSxoLmFkZENoaWxkKEJlKSkseTxmMyhDLHRSKS5nZXRMYXllcnNDb3VudCgpJiZDLmJ1aWxkTGVhdmVzKEJl''@;'; + put 'put ''LHYseSx1ZS5vcmlnQ29sc3Bhbiksdis9dWUub3JpZ0NvbHNwYW59KX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe2YzKHRoaXMsZVIpLmNsZWFyKCksZjModGhpcyxmTSkuY2xlYXIoKX19XSksZH0oKTtmdW5jdGlvbiBfRGUoZCxnKXtkLndhbGtEb3duKGZ1bmN0aW9uKGgpe3Zh''@;'; + put 'put ''ciB2PWguZGF0YSx5PWguY2hpbGRzO2lmKCF2LmlzSGlkZGVuJiYoZyh2LmNvbHVtbkluZGV4KSwwPT09eS5sZW5ndGgpKWZvcih2YXIgQz0xO0M8di5jb2xzcGFuO0MrKylnKHYuY29sdW1uSW5kZXgrQyl9KX1mdW5jdGlvbiBUbmUoZCxnKXt2YXIgaD1kLmNoaWxkcztpZigwIT09aC5sZW5n''@;'; + put 'put ''dGgpcmV0dXJuIGhbMF0uZGF0YVtnXX1mdW5jdGlvbiBJbmUoZCl7cmV0dXJuIFRuZShkLCJvcmlnQ29sc3BhbiIpPT09ZC5kYXRhLm9yaWdDb2xzcGFufWZ1bmN0aW9uIEZnZShkKXt2YXIgZz1kLmRhdGEsaD1kLmNoaWxkcztpZighZy5pc0NvbGxhcHNlZHx8Zy5pc0hpZGRlbnx8Zy5vcmln''@;'; + put 'put ''Q29sc3Bhbjw9MSlyZXR1cm57cm9sbGJhY2tNb2RpZmljYXRpb246ZnVuY3Rpb24oKXt9LGFmZmVjdGVkQ29sdW1uczpbXSxjb2xzcGFuQ29tcGVuc2F0aW9uOjB9O2lmKEluZShkKSlyZXR1cm4gRmdlKGhbMF0pO2cuaXNDb2xsYXBzZWQ9ITE7dmFyIHk9aC5zbGljZSgxKSxDPW5ldyBTZXQs''@;'; + put 'put ''ST0wO2lmKHkubGVuZ3RoPjApVXIoeSxmdW5jdGlvbihOZSl7TmUucmVwbGFjZVRyZWVXaXRoKE5lLmRhdGEuY2xvbmVkVHJlZSksTmUuZGF0YS5jbG9uZWRUcmVlPW51bGwsSSs9TmUuZGF0YS5jb2xzcGFuLF9EZShOZSxmdW5jdGlvbihkdCl7Qy5hZGQoZHQpfSl9KTtlbHNle3ZhciB1ZT1n''@;'; + put 'put ''Lm9yaWdDb2xzcGFuLF9lPWcuY29sdW1uSW5kZXg7ST11ZS1nLmNvbHNwYW47Zm9yKHZhciBCZT0xO0JlPHVlO0JlKyspQy5hZGQoX2UrQmUpfXJldHVybiBkLndhbGtVcChmdW5jdGlvbihOZSl7dmFyIEtlPU5lLmRhdGE7S2UuY29sc3Bhbis9SSxLZS5jb2xzcGFuPj1LZS5vcmlnQ29sc3Bh''@;'; + put 'put ''bj8oS2UuY29sc3Bhbj1LZS5vcmlnQ29sc3BhbixLZS5pc0NvbGxhcHNlZD0hMSk6SW5lKE5lKSYmKEtlLmlzQ29sbGFwc2VkPVRuZShOZSwiaXNDb2xsYXBzZWQiKSl9KSx7cm9sbGJhY2tNb2RpZmljYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gSGdlKGQpfSxhZmZlY3RlZENvbHVtbnM6QXJy''@;'; + put 'put ''YXkuZnJvbShDKSxjb2xzcGFuQ29tcGVuc2F0aW9uOkl9fWZ1bmN0aW9uIEhnZShkKXt2YXIgZyxoPWQuZGF0YSx2PWQuY2hpbGRzO2lmKGguaXNDb2xsYXBzZWR8fGguaXNIaWRkZW58fGgub3JpZ0NvbHNwYW48PTEpcmV0dXJue3JvbGxiYWNrTW9kaWZpY2F0aW9uOmZ1bmN0aW9uKCl7fSxh''@;'; + put 'put ''ZmZlY3RlZENvbHVtbnM6W10sY29sc3BhbkNvbXBlbnNhdGlvbjowfTtpZihJbmUoZCkpcmV0dXJuIEhnZSh2WzBdKTtoLmlzQ29sbGFwc2VkPSEwO3ZhciBDPXYuc2xpY2UoMSksST1uZXcgU2V0O2lmKEMubGVuZ3RoPjApVXIoQyxmdW5jdGlvbihLZSl7X0RlKEtlLGZ1bmN0aW9uKGR0KXtJ''@;'; + put 'put ''LmFkZChkdCl9KSxLZS5kYXRhLmNsb25lZFRyZWU9S2UuY2xvbmVUcmVlKCksS2Uud2Fsa0Rvd24oZnVuY3Rpb24oZHQpe2R0LmRhdGEuaXNIaWRkZW49ITB9KX0pO2Vsc2UgZm9yKHZhciBqPWgub3JpZ0NvbHNwYW4sdWU9aC5jb2x1bW5JbmRleCxfZT0xO19lPGo7X2UrKylJLmFkZCh1ZStf''@;'; + put 'put ''ZSk7dmFyIE5lPWguY29sc3Bhbi0obnVsbCE9PShnPVRuZShkLCJjb2xzcGFuIikpJiZ2b2lkIDAhPT1nP2c6MSk7cmV0dXJuIGQud2Fsa1VwKGZ1bmN0aW9uKEtlKXt2YXIgZHQ9S2UuZGF0YTtkdC5jb2xzcGFuLT1OZSxkdC5jb2xzcGFuPD0xPyhkdC5jb2xzcGFuPTEsZHQuaXNDb2xsYXBz''@;'; + put 'put ''ZWQ9ITApOkluZShLZSkmJihkdC5pc0NvbGxhcHNlZD1UbmUoS2UsImlzQ29sbGFwc2VkIikpfSkse3JvbGxiYWNrTW9kaWZpY2F0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIEZnZShkKX0sYWZmZWN0ZWRDb2x1bW5zOkFycmF5LmZyb20oSSksY29sc3BhbkNvbXBlbnNhdGlvbjpOZX19dmFyIFNE''@;'; + put 'put ''ZT1uZXcgTWFwKFtbImNvbGxhcHNlIixIZ2VdLFsiZXhwYW5kIixGZ2VdLFsiaGlkZS1jb2x1bW4iLGZ1bmN0aW9uIGhwdChkLGcpe2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGcpKXRocm93IG5ldyBFcnJvcigiVGhlIHBhc3NlZCBncmlkQ29sdW1uSW5kZXggYXJndW1lbnQgaGFzIGludmFsaWQg''@;'; + put 'put ''dHlwZS4iKTtpZihkLmNoaWxkcy5sZW5ndGg+MCl0aHJvdyBuZXcgRXJyb3IoQjIoQ0RlfHwoQ0RlPWZ1bmN0aW9uIGZwdChkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6''@;'; + put 'put ''ZShnKX19KSl9KFsiVGhlIHBhc3NlZCBub2RlIGlzIG5vdCB0aGUgbGFzdCBub2RlIG9uIHRoZSB0cmVlLiBPbmx5IGZvciBcbnRoZSBsYXN0IG5vZGUsIHRoZSBoaWRlIGNvbHVtbiBtb2RpZmljYXRpb24gY2FuIGJlIGFwcGxpZWQuIl0sWyJUaGUgcGFzc2VkIG5vZGUgaXMgbm90IHRoZSBs''@;'; + put 'put ''YXN0IG5vZGUgb24gdGhlIHRyZWUuIE9ubHkgZm9yXFx4MjBcbnRoZSBsYXN0IG5vZGUsIHRoZSBoaWRlIGNvbHVtbiBtb2RpZmljYXRpb24gY2FuIGJlIGFwcGxpZWQuIl0pKSkpO2lmKCFkLmRhdGEuY3Jvc3NIaWRkZW5Db2x1bW5zLmluY2x1ZGVzKGcpKXt2YXIgdj0hMTtkLndhbGtVcChm''@;'; + put 'put ''dW5jdGlvbih5KXtpZih5LmRhdGEuY29sbGFwc2libGUpcmV0dXJuIHY9ITAsITF9KSwhdiYmZC53YWxrVXAoZnVuY3Rpb24oeSl7dmFyIEM9eS5kYXRhO0MuY3Jvc3NIaWRkZW5Db2x1bW5zLnB1c2goZyksQy5jb2xzcGFuPjE/Qy5jb2xzcGFuLT0xOkMuaXNIaWRkZW49ITB9KX19XSxbInNo''@;'; + put 'put ''b3ctY29sdW1uIixmdW5jdGlvbiBwcHQoZCxnKXtpZighTnVtYmVyLmlzSW50ZWdlcihnKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBwYXNzZWQgZ3JpZENvbHVtbkluZGV4IGFyZ3VtZW50IGhhcyBpbnZhbGlkIHR5cGUuIik7aWYoZC5jaGlsZHMubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yKEIy''@;'; + put 'put ''KGtEZXx8KGtEZT1mdW5jdGlvbiBkcHQoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbIlRoZSBwYXNzZWQgbm9kZSBpcyBub3QgdGhlIGxhc3Qgbm9k''@;'; + put 'put ''ZSBvbiB0aGUgdHJlZS4gT25seSBmb3IgXG50aGUgbGFzdCBub2RlLCB0aGUgc2hvdyBjb2x1bW4gbW9kaWZpY2F0aW9uIGNhbiBiZSBhcHBsaWVkLiJdLFsiVGhlIHBhc3NlZCBub2RlIGlzIG5vdCB0aGUgbGFzdCBub2RlIG9uIHRoZSB0cmVlLiBPbmx5IGZvclxceDIwXG50aGUgbGFzdCBu''@;'; + put 'put ''b2RlLCB0aGUgc2hvdyBjb2x1bW4gbW9kaWZpY2F0aW9uIGNhbiBiZSBhcHBsaWVkLiJdKSkpKTtpZihkLmRhdGEuY3Jvc3NIaWRkZW5Db2x1bW5zLmluY2x1ZGVzKGcpKXt2YXIgdj0hMTtkLndhbGtVcChmdW5jdGlvbih5KXtpZih5LmRhdGEuY29sbGFwc2libGUpcmV0dXJuIHY9ITAsITF9''@;'; + put 'put ''KSwhdiYmZC53YWxrVXAoZnVuY3Rpb24oeSl7dmFyIEM9eS5kYXRhO0MuY3Jvc3NIaWRkZW5Db2x1bW5zLnNwbGljZShDLmNyb3NzSGlkZGVuQ29sdW1ucy5pbmRleE9mKGcpLDEpLCFDLmlzSGlkZGVuJiZDLmNvbHNwYW48Qy5vcmlnQ29sc3BhbiYmKEMuY29sc3Bhbis9MSksQy5pc0hpZGRl''@;'; + put 'put ''bj0hMX0pfX1dXSksbXB0PVsiY3Jvc3NIaWRkZW5Db2x1bW5zIl07ZnVuY3Rpb24gRG5lKGQpe3ZhciBnPVtdO3JldHVybiBVcihkLGZ1bmN0aW9uKGgpe2gud2Fsa0Rvd24oZnVuY3Rpb24odil7Zm9yKHZhciB5PXYuZGF0YSxDPXkub3JpZ0NvbHNwYW4sST15LmNvbHVtbkluZGV4LHVlPXku''@;'; + put 'put ''Y3Jvc3NIaWRkZW5Db2x1bW5zLF9lPWZ1bmN0aW9uIHdwdChkLGcpe3ZhciBoO3JldHVybiBBcnJheS5pc0FycmF5KGRbZ10pP2g9ZFtnXTpkW2ddPWg9W10saH0oZyx5LmhlYWRlckxldmVsKSxCZT0hMSxOZT1JO05lPEkrQztOZSsrKWlmKHVlLmluY2x1ZGVzKE5lKXx8QmUpX2UucHVzaCh7''@;'; + put 'put ''bGFiZWw6IiIsaXNQbGFjZWhvbGRlcjohMH0pO2Vsc2V7dmFyIGR0PXlwdCh5KTtkdC5pc1Jvb3Q9ITAsX2UucHVzaChkdCksQmU9ITB9fSl9KSxnfWZ1bmN0aW9uIHlwdChkKXtyZXR1cm4gZnVuY3Rpb24gdnB0KGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgdix5LGg9ZnVuY3Rpb24g''@;'; + put 'put ''QXB0KGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30sdj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8di5sZW5ndGg7QysrKSEoZy5pbmRleE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTtyZXR1cm4gaH0oZCxnKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xz''@;'; + put 'put ''KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zvcih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmluZGV4T2Yodj1DW3ldKT49MCkmJighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGQsdil8fChoW3ZdPWRbdl0pKX1yZXR1cm4gaH0oRGdl''@;'; + put 'put ''KGQpLG1wdCl9dmFyIGJwdD1bInJvdyJdO2Z1bmN0aW9uIE1EZShkLGcpe3ZhciBoPU9iamVjdC5rZXlzKGQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0''@;'; + put 'put ''dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCx5KS5lbnVtZXJhYmxlfSkpLGgucHVzaC5hcHBseShoLHYpfXJldHVybiBofWZ1bmN0aW9uIEVEZShkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1l''@;'; + put 'put ''bnRzW2ddOnt9O2clMj9NRGUoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe19wdChkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpN''@;'; + put 'put ''RGUoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIF9wdChkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHko''@;'; + put 'put ''ZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9ZnVuY3Rpb24geERlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFi''@;'; + put 'put ''bGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gTmdlKGQsZyxoKXsoZnVuY3Rpb24gRXB0KGQsZyl7aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNh''@;'; + put 'put ''bWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiBQeihkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uIHhwdChkLGcsaCl7aWYoZy5zZXQpZy5zZXQuY2FsbChkLGgpO2Vsc2V7aWYoIWcud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVF''@;'; + put 'put ''cnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO2cudmFsdWU9aH19KGQsVERlKGQsZywic2V0IiksaCksaH1mdW5jdGlvbiBNdShkLGcpe3JldHVybiBmdW5jdGlvbiBUcHQoZCxnKXtyZXR1cm4gZy5nZXQ/Zy5nZXQuY2FsbChkKTpnLnZhbHVlfShkLFRE''@;'; + put 'put ''ZShkLGcsImdldCIpKX1mdW5jdGlvbiBURGUoZCxnLGgpe2lmKCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQoZCl9dmFyIE5nPW5ldyBXZWFrTWFwLF80PW5ldyBXZWFr''@;'; + put 'put ''TWFwLGhNPW5ldyBXZWFrTWFwLElwdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoKXsoZnVuY3Rpb24gU3B0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLE5nZSh0aGlzLE5n''@;'; + put 'put ''LHt3cml0YWJsZTohMCx2YWx1ZTpuZXcgVjR0fSksTmdlKHRoaXMsXzQse3dyaXRhYmxlOiEwLHZhbHVlOm5ldyBjcHQoTXUodGhpcyxOZykpfSksTmdlKHRoaXMsaE0se3dyaXRhYmxlOiEwLHZhbHVlOltbXV19KX1yZXR1cm4gZnVuY3Rpb24gTXB0KGQsZyxoKXtnJiZ4RGUoZC5wcm90b3R5''@;'; + put 'put ''cGUsZyksaCYmeERlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldFN0YXRlIix2YWx1ZTpmdW5jdGlvbihoKXtNdSh0aGlzLE5nKS5zZXREYXRhKGgpO3ZhciB2PSExO3RyeXtNdSh0aGlzLF80KS5idWlsZFRyZWUo''@;'; + put 'put ''KX1jYXRjaCh5KXtNdSh0aGlzLF80KS5jbGVhcigpLE11KHRoaXMsTmcpLmNsZWFyKCksdj0hMH1yZXR1cm4gUHoodGhpcyxoTSxEbmUoTXUodGhpcyxfNCkuZ2V0Um9vdHMoKSkpLHZ9fSx7a2V5OiJzZXRDb2x1bW5zTGltaXQiLHZhbHVlOmZ1bmN0aW9uKGgpe011KHRoaXMsTmcpLnNldENv''@;'; + put 'put ''bHVtbnNMaW1pdChoKX19LHtrZXk6Im1lcmdlU3RhdGVXaXRoIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9T2woaCxmdW5jdGlvbihDKXt2YXIgST1DLnJvdyxqPWZ1bmN0aW9uIENwdChkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHYseSxoPWZ1bmN0aW9uIGtwdChkLGcp''@;'; + put 'put ''e2lmKG51bGw9PWQpcmV0dXJue307dmFyIHksQyxoPXt9LHY9T2JqZWN0LmtleXMoZCk7Zm9yKEM9MDtDPHYubGVuZ3RoO0MrKykhKGcuaW5kZXhPZih5PXZbQ10pPj0wKSYmKGhbeV09ZFt5XSk7cmV0dXJuIGh9KGQsZyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIEM9''@;'; + put 'put ''T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtmb3IoeT0wO3k8Qy5sZW5ndGg7eSsrKSEoZy5pbmRleE9mKHY9Q1t5XSk+PTApJiYoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChkLHYpfHwoaFt2XT1kW3ZdKSl9cmV0dXJuIGh9KEMsYnB0KTtyZXR1''@;'; + put 'put ''cm4gRURlKHtyb3c6STwwP3Yucm93Q29vcmRzVG9MZXZlbChJKTpJfSxqKX0pO011KHRoaXMsTmcpLm1lcmdlV2l0aCh5KSxNdSh0aGlzLF80KS5idWlsZFRyZWUoKSxQeih0aGlzLGhNLERuZShNdSh0aGlzLF80KS5nZXRSb290cygpKSl9fSx7a2V5OiJtYXBTdGF0ZSIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oaCl7TXUodGhpcyxOZykubWFwKGgpLE11KHRoaXMsXzQpLmJ1aWxkVHJlZSgpLFB6KHRoaXMsaE0sRG5lKE11KHRoaXMsXzQpLmdldFJvb3RzKCkpKX19LHtrZXk6Im1hcE5vZGVzIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gU3UoTXUodGhpcyxfNCkuZ2V0Um9vdHMoKSxmdW5jdGlv''@;'; + put 'put ''bih2LHkpe3JldHVybiB5LndhbGtEb3duKGZ1bmN0aW9uKEMpe3ZhciBJPWgoQy5kYXRhKTt2b2lkIDAhPT1JJiZ2LnB1c2goSSl9KSx2fSxbXSl9fSx7a2V5OiJ0cmlnZ2VyTm9kZU1vZGlmaWNhdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3Y8MCYmKHY9dGhpcy5yb3dDb29yZHNUb0xl''@;'; + put 'put ''dmVsKHYpKTt2YXIgSSxDPU11KHRoaXMsXzQpLmdldE5vZGUodix5KTtyZXR1cm4gQyYmKEk9ZnVuY3Rpb24gZ3B0KGQsZyxoKXtpZighU0RlLmhhcyhkKSl0aHJvdyBuZXcgRXJyb3IoJ1RoZSBub2RlIG1vZGlmaWVyIGFjdGlvbiAoIicuY29uY2F0KGQsJyIpIGRvZXMgbm90IGV4aXN0Licp''@;'; + put 'put ''KTtyZXR1cm4gU0RlLmdldChkKShnLGgpfShoLEMseSksUHoodGhpcyxoTSxEbmUoTXUodGhpcyxfNCkuZ2V0Um9vdHMoKSkpKSxJfX0se2tleToidHJpZ2dlckNvbHVtbk1vZGlmaWNhdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gdGhpcy50cmlnZ2VyTm9kZU1vZGlmaWNhdGlv''@;'; + put 'put ''bihoLC0xLHYpfX0se2tleToicm93Q29vcmRzVG9MZXZlbCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9TWF0aC5tYXgodGhpcy5nZXRMYXllcnNDb3VudCgpLDEpLHk9di0xO3JldHVybiBNYXRoLm1pbihNYXRoLm1heChoK3YsMCkseSl9fSx7a2V5OiJsZXZlbFRvUm93Q29vcmRzIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbihoKXt2YXIgdj1NYXRoLm1heCh0aGlzLmdldExheWVyc0NvdW50KCksMSk7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGgtdiwtdiksLTEpfX0se2tleToiZ2V0SGVhZGVyU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHksQztyZXR1cm4gaDwwJiYoaD10aGlz''@;'; + put 'put ''LnJvd0Nvb3Jkc1RvTGV2ZWwoaCkpLGg+PXRoaXMuZ2V0TGF5ZXJzQ291bnQoKT9udWxsOm51bGwhPT0oeT1udWxsPT09KEM9TXUodGhpcyxoTSlbaF0pfHx2b2lkIDA9PT1DP3ZvaWQgMDpDW3ZdKSYmdm9pZCAwIT09eT95Om51bGx9fSx7a2V5OiJnZXRIZWFkZXJUcmVlTm9kZURhdGEiLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKGgsdil7aDwwJiYoaD10aGlzLnJvd0Nvb3Jkc1RvTGV2ZWwoaCkpO3ZhciB5PU11KHRoaXMsXzQpLmdldE5vZGUoaCx2KTtyZXR1cm4geT9FRGUoe30seS5kYXRhKTpudWxsfX0se2tleToiZmluZExlZnRNb3N0Q29sdW1uSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgsdil7''@;'; + put 'put ''dmFyIHk7aWYoKG51bGwhPT0oeT10aGlzLmdldEhlYWRlclNldHRpbmdzKGgsdikpJiZ2b2lkIDAhPT15P3k6e2lzUm9vdDohMH0pLmlzUm9vdClyZXR1cm4gdjtmb3IodmFyIGo9di0xO2o+PTA7KXt2YXIgdWU7aWYoKG51bGwhPT0odWU9dGhpcy5nZXRIZWFkZXJTZXR0aW5ncyhoLGopKSYm''@;'; + put 'put ''dm9pZCAwIT09dWU/dWU6e2lzUm9vdDohMH0pLmlzUm9vdClicmVhaztqLT0xfXJldHVybiBqfX0se2tleToiZ2V0TGF5ZXJzQ291bnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIE11KHRoaXMsTmcpLmdldExheWVyc0NvdW50KCl9fSx7a2V5OiJnZXRDb2x1bW5zQ291bnQiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIE11KHRoaXMsTmcpLmdldENvbHVtbnNDb3VudCgpfX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7UHoodGhpcyxoTSxbXSksTXUodGhpcyxOZykuY2xlYXIoKSxNdSh0aGlzLF80KS5jbGVhcigpfX1dKSxkfSgpO2Z1bmN0aW9uIElEZShkLGcpe2Zvcih2''@;'; + put 'put ''YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEZ6KGQsZyxoKXty''@;'; + put 'put ''ZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgT3B0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBEcHQoZCxnKXtpZighKGQgaW5z''@;'; + put 'put ''dGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksRnoodGhpcywiaG90Iix2b2lkIDApLEZ6KHRoaXMsIm5lc3RlZEhlYWRlclNldHRpbmdzR2V0dGVyIix2b2lkIDApLEZ6KHRoaXMsImxheWVyc0NvdW50''@;'; + put 'put ''IiwwKSxGeih0aGlzLCJjb250YWluZXIiLHZvaWQgMCksRnoodGhpcywid2lkdGhzTWFwIix2b2lkIDApLHRoaXMuaG90PWcsdGhpcy5uZXN0ZWRIZWFkZXJTZXR0aW5nc0dldHRlcj1oLHRoaXMud2lkdGhzTWFwPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmNyZWF0ZUFuZFJlZ2lzdGVy''@;'; + put 'put ''SW5kZXhNYXAoIm5lc3RlZEhlYWRlcnMud2lkdGhzTWFwIiwicGh5c2ljYWxJbmRleFRvVmFsdWUiKX1yZXR1cm4gZnVuY3Rpb24gTHB0KGQsZyxoKXtnJiZJRGUoZC5wcm90b3R5cGUsZyksaCYmSURlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxl''@;'; + put 'put ''OiExfSl9KGQsW3trZXk6InNldExheWVyc0NvdW50Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5sYXllcnNDb3VudD1oLHRoaXN9fSx7a2V5OiJnZXRXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMud2lkdGhzTWFwLmdldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50''@;'; + put 'put ''b1BoeXNpY2FsQ29sdW1uKGgpKX19LHtrZXk6ImJ1aWxkV2lkdGhzTWFwIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY29udGFpbmVyPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYW5kc29udGFibGUiLCJo''@;'; + put 'put ''dEdob3N0VGFibGUiLCJodEF1dG9TaXplIiksdGhpcy5fYnVpbGRHaG9zdFRhYmxlKHRoaXMuY29udGFpbmVyKSx0aGlzLmhvdC5yb290RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lcik7dmFyIGg9dGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgidHI6bGFz''@;'; + put 'put ''dC1vZi10eXBlIHRoIiksdj1oLmxlbmd0aDt0aGlzLndpZHRoc01hcC5jbGVhcigpO2Zvcih2YXIgeT0wO3k8djt5Kyspe3ZhciBDPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoeSksST10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKEMp''@;'; + put 'put ''O3RoaXMud2lkdGhzTWFwLnNldFZhbHVlQXRJbmRleChJLGhbeV0ub2Zmc2V0V2lkdGgpfXRoaXMuY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIpLHRoaXMuY29udGFpbmVyPW51bGx9fSx7a2V5OiJfYnVpbGRHaG9zdFRhYmxlIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bihoKXtmb3IodmFyIHY9dGhpcy5ob3QseT12LnJvb3REb2N1bWVudCxDPXYuY29sdW1uSW5kZXhNYXBwZXIsST15LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxqPXkuY3JlYXRlRWxlbWVudCgidGFibGUiKSx1ZT0hIXRoaXMuaG90LmdldFNldHRpbmdzKCkuZHJvcGRvd25NZW51LF9lPUMu''@;'; + put 'put ''Z2V0UmVuZGVyYWJsZUluZGV4ZXNMZW5ndGgoKSxCZT0wO0JlPHRoaXMubGF5ZXJzQ291bnQ7QmUrKyl7Zm9yKHZhciBOZT15LmNyZWF0ZUVsZW1lbnQoInRyIiksS2U9MDtLZTxfZTtLZSsrKXt2YXIgZHQ9Qy5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KEtlKTtudWxsPT09ZHQmJihk''@;'; + put 'put ''dD1LZSk7dmFyIE90PXkuY3JlYXRlRWxlbWVudCgidGgiKSwkdD10aGlzLm5lc3RlZEhlYWRlclNldHRpbmdzR2V0dGVyKEJlLGR0KTtpZigkdCYmKCEkdC5pc1BsYWNlaG9sZGVyfHwkdC5pc0hpZGRlbikpe3ZhciBmbj0kdC5sYWJlbDt1ZSYmKGZuKz0nPGJ1dHRvbiBjbGFzcz0iY2hhbmdl''@;'; + put 'put ''VHlwZSI+PC9idXR0b24+JyksX3coT3QsZm4pLE90LmNvbFNwYW49JHQuY29sc3BhbixOZS5hcHBlbmRDaGlsZChPdCl9fWouYXBwZW5kQ2hpbGQoTmUpfUkuYXBwZW5kQ2hpbGQoaiksaC5hcHBlbmRDaGlsZChJKX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud2lkdGhz''@;'; + put 'put ''TWFwLmNsZWFyKCksdGhpcy5jb250YWluZXI9bnVsbH19XSksZH0oKTtjb25zdCBScHQ9T3B0O2Z1bmN0aW9uIFZnZShkKXtyZXR1cm4oVmdlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBl''@;'; + put 'put ''b2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9dmFyIEREZSxMRGU7ZnVuY3Rpb24gT0RlKGQsZyl7cmV0dXJuIGd8fChn''@;'; + put 'put ''PWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX1mdW5jdGlvbiBCcHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNz''@;'; + put 'put ''IGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBSRGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBkTSgpe3JldHVybiBkTT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9RnB0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3Bl''@;'; + put 'put ''cnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxkTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRnB0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQs''@;'; + put 'put ''ZykmJm51bGwhPT0oZD1xOShkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBqZ2UoZCxnKXtyZXR1cm4oamdlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24g''@;'; + put 'put ''VnB0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09VmdlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVy''@;'; + put 'put ''biBIeihkKX1mdW5jdGlvbiBIeihkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gcTkoZCl7cmV0dXJuKHE5PU9iamVjdC5z''@;'; + put 'put ''ZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9ZnVuY3Rpb24gQkRlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcs''@;'; + put 'put ''e3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiBQRGUoZCxnLGgpeyhmdW5jdGlvbiBacHQoZCxnKXtpZihnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2''@;'; + put 'put ''YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoZCxnKSxnLnNldChkLGgpfWZ1bmN0aW9uIExuZShkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uIHpwdChkLGcsaCl7aWYoZy5zZXQpZy5zZXQuY2FsbChkLGgpO2Vsc2V7aWYoIWcud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigi''@;'; + put 'put ''YXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO2cudmFsdWU9aH19KGQsRkRlKGQsZywic2V0IiksaCksaH1mdW5jdGlvbiBwYyhkLGcpe3JldHVybiBmdW5jdGlvbiBHcHQoZCxnKXtyZXR1cm4gZy5nZXQ/Zy5nZXQuY2FsbChkKTpnLnZhbHVlfShkLEZEZShkLGcs''@;'; + put 'put ''ImdldCIpKX1mdW5jdGlvbiBGRGUoZCxnLGgpe2lmKCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQoZCl9dmFyIEhEZT0ibmVzdGVkSGVhZGVycyIsYWY9bmV3IFdlYWtN''@;'; + put 'put ''YXAsVXc9bmV3IFdlYWtNYXAsWXB0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBIcHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnBy''@;'; + put 'put ''b3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmamdlKGQsZyl9KGgsZCk7dmFyIGc9''@;'; + put 'put ''ZnVuY3Rpb24gTnB0KGQpe3ZhciBnPWZ1bmN0aW9uIGpwdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0''@;'; + put 'put ''dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PXE5KGQpO2lmKGcpe3ZhciBDPXE5KHRoaXMpLmNvbnN0cnVj''@;'; + put 'put ''dG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBWcHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXt2YXIgdjtCcHQodGhpcyxoKTtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5''@;'; + put 'put ''KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gUERlKEh6KHY9Zy5jYWxsLmFwcGx5KGcsW3RoaXNdLmNvbmNhdChDKSkpLGFmLHt3cml0YWJsZTohMCx2YWx1ZTpuZXcgSXB0fSksUERlKEh6KHYpLFV3LHt3cml0YWJsZTohMCx2YWx1ZTpudWxsfSksQkRlKEh6KHYpLCJn''@;'; + put 'put ''aG9zdFRhYmxlIixuZXcgUnB0KHYuaG90LGZ1bmN0aW9uKGosdWUpe3JldHVybiB2LmdldEhlYWRlclNldHRpbmdzKGosdWUpfSkpLEJEZShIeih2KSwiZGV0ZWN0ZWRPdmVybGFwcGVkSGVhZGVycyIsITEpLHZ9cmV0dXJuIGZ1bmN0aW9uIFBwdChkLGcsaCl7ZyYmUkRlKGQucHJvdG90eXBl''@;'; + put 'put ''LGcpLGgmJlJEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW0hEZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZh''@;'; + put 'put ''bHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztpZighdGhpcy5lbmFibGVkKXt2YXIgST10aGlzLmhvdC5nZXRTZXR0aW5ncygpLm5lc3RlZEhlYWRlcnM7KCFBcnJheS5pc0FycmF5KEkpfHwhQXJyYXkuaXNBcnJheShJWzBdKSkmJmwxKEIyKEREZXx8KEREZT1PRGUoWyJZb3VyIE5lc3RlZCBI''@;'; + put 'put ''ZWFkZXJzIHBsdWdpbiBjb25maWd1cmF0aW9uIGlzIGludmFsaWQuIFRoZSBzZXR0aW5ncyBoYXMgdG8gYmUgXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgYXMgYW4gYXJyYXkgb2YgYXJyYXlzIGUucS4gW1snQTEnLCB7IGxhYmVsOiAnQTInLCBjb2xzcGFuOiAyIH1dXSJdLFsi''@;'; + put 'put ''WW91ciBOZXN0ZWQgSGVhZGVycyBwbHVnaW4gY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkLiBUaGUgc2V0dGluZ3MgaGFzIHRvIGJlXFx4MjBcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NlZCBhcyBhbiBhcnJheSBvZiBhcnJheXMgZS5xLiBbWydBMScsIHsgbGFiZWw6ICdBMicsIGNv''@;'; + put 'put ''bHNwYW46IDIgfV1dIl0pKSkpLHRoaXMuYWRkSG9vaygiaW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkluaXQoKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJMb2FkRGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyTG9hZERhdGEuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRI''@;'; + put 'put ''b29rKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVPbkNlbGxNb3VzZURvd24uYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbE1vdXNlRG93biIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyT25DZWxsTW91''@;'; + put 'put ''c2VEb3duLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlT25DZWxsTW91c2VPdmVyIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlT25DZWxsTW91c2VPdmVyLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRDb2x1bW5IZWFkZXJS''@;'; + put 'put ''ZW5kZXJlcnMiLGZ1bmN0aW9uKGope3JldHVybiB5Lm9uQWZ0ZXJHZXRDb2x1bW5IZWFkZXJSZW5kZXJlcnMoail9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbFdpZHRoIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW9kaWZ5Q29sV2lkdGguYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRI''@;'; + put 'put ''b29rKCJiZWZvcmVIaWdobGlnaHRpbmdDb2x1bW5IZWFkZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVIaWdobGlnaHRpbmdDb2x1bW5IZWFkZXIuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlIixm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZS5hcHBseSh5LGFyZ3VtZW50cyl9KSxkTShxOShoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLnVwZGF0ZVBsdWdpbigpfX19LHtrZXk6InVwZGF0''@;'; + put 'put ''ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO2lmKHRoaXMuaG90LnZpZXcpe3ZhciBJPXRoaXMuaG90LmdldFNldHRpbmdzKCkubmVzdGVkSGVhZGVycztwYyh0aGlzLGFmKS5zZXRDb2x1bW5zTGltaXQodGhpcy5ob3QuY291bnRDb2xzKCkpLEFycmF5LmlzQXJyYXkoSSkm''@;'; + put 'put ''Jih0aGlzLmRldGVjdGVkT3ZlcmxhcHBlZEhlYWRlcnM9cGModGhpcyxhZikuc2V0U3RhdGUoSSkpLHRoaXMuZGV0ZWN0ZWRPdmVybGFwcGVkSGVhZGVycyYmbDEoQjIoTERlfHwoTERlPU9EZShbIllvdXIgTmVzdGVkIEhlYWRlcnMgcGx1Z2luIHNldHVwIGNvbnRhaW5zIG92ZXJsYXBwaW5n''@;'; + put 'put ''IGhlYWRlcnMuIFRoaXMga2luZCBvZiBjb25maWd1cmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQuIl0sWyJZb3VyIE5lc3RlZCBIZWFkZXJzIHBsdWdpbiBzZXR1cCBjb250YWlucyBvdmVybGFwcGluZyBoZWFkZXJzLiBUaGlzIGtp''@;'; + put 'put ''bmQgb2YgY29uZmlndXJhdGlvblxceDIwXG4gICAgICAgICAgICAgICAgICAgICAgICBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZC4iXSkpKSksdGhpcy5lbmFibGVkJiZ0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5oaWRpbmdNYXBzQ29sbGVjdGlvbi5nZXRNZXJnZWRWYWx1ZXMoKS5m''@;'; + put 'put ''b3JFYWNoKGZ1bmN0aW9uKGosdWUpe3ZhciBfZT0hMD09PWo/ImhpZGUtY29sdW1uIjoic2hvdy1jb2x1bW4iO3BjKHksYWYpLnRyaWdnZXJDb2x1bW5Nb2RpZmljYXRpb24oX2UsdWUpfSksIXBjKHRoaXMsVXcpJiZ0aGlzLmVuYWJsZWQmJkxuZSh0aGlzLFV3LHRoaXMuaG90LmNvbHVtbklu''@;'; + put 'put ''ZGV4TWFwcGVyLmNyZWF0ZUNoYW5nZXNPYnNlcnZlcigiaGlkaW5nIikuc3Vic2NyaWJlKGZ1bmN0aW9uKGope2ouZm9yRWFjaChmdW5jdGlvbih1ZSl7dmFyIEJlPXVlLmluZGV4O2lmKCJyZXBsYWNlIj09PXVlLm9wKXt2YXIgS2U9ITA9PT11ZS5uZXdWYWx1ZT8iaGlkZS1jb2x1bW4iOiJz''@;'; + put 'put ''aG93LWNvbHVtbiI7cGMoeSxhZikudHJpZ2dlckNvbHVtbk1vZGlmaWNhdGlvbihLZSxCZSl9fSkseS5naG9zdFRhYmxlLmJ1aWxkV2lkdGhzTWFwKCl9KSksdGhpcy5naG9zdFRhYmxlLnNldExheWVyc0NvdW50KHRoaXMuZ2V0TGF5ZXJzQ291bnQoKSkuYnVpbGRXaWR0aHNNYXAoKSxkTShx''@;'; + put 'put ''OShoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2xlYXJDb2xzcGFucygpLHBjKHRoaXMsYWYpLmNsZWFyKCkscGModGhpcyxVdykudW5zdWJzY3JpYmUoKSxMbmUodGhpcyxV''@;'; + put 'put ''dyxudWxsKSx0aGlzLmdob3N0VGFibGUuY2xlYXIoKSxkTShxOShoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJnZXRTdGF0ZU1hbmFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHBjKHRoaXMsYWYpfX0se2tleToiZ2V0TGF5ZXJzQ291''@;'; + put 'put ''bnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHBjKHRoaXMsYWYpLmdldExheWVyc0NvdW50KCl9fSx7a2V5OiJnZXRIZWFkZXJTZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtyZXR1cm4gcGModGhpcyxhZikuZ2V0SGVhZGVyU2V0dGluZ3MoeSxDKX19LHtrZXk6ImNsZWFyQ29sc3Bh''@;'; + put 'put ''bnMiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy5ob3Qudmlldylmb3IodmFyIHk9dGhpcy5ob3Qudmlldy5fd3QsQz15LmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGgsST15Lnd0VGFibGUuVEhFQUQsaj15Lnd0T3ZlcmxheXMudG9wT3ZlcmxheS5jbG9uZS53dFRhYmxlLlRI''@;'; + put 'put ''RUFELHVlPXkud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXk/eS53dE92ZXJsYXlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5jbG9uZS53dFRhYmxlLlRIRUFEOm51bGwsX2U9MDtfZTxDO19lKyspe3ZhciBCZT1JLmNoaWxkTm9kZXNbX2VdO2lmKCFCZSlicmVh''@;'; + put 'put ''aztmb3IodmFyIE5lPWouY2hpbGROb2Rlc1tfZV0sS2U9dWU/dWUuY2hpbGROb2Rlc1tfZV06bnVsbCxkdD0wLE90PUJlLmNoaWxkTm9kZXMubGVuZ3RoO2R0PE90O2R0KyspQmUuY2hpbGROb2Rlc1tkdF0ucmVtb3ZlQXR0cmlidXRlKCJjb2xzcGFuIikscGwoQmUuY2hpbGROb2Rlc1tkdF0s''@;'; + put 'put ''ImhpZGRlbkhlYWRlciIpLE5lJiZOZS5jaGlsZE5vZGVzW2R0XSYmKE5lLmNoaWxkTm9kZXNbZHRdLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLHBsKE5lLmNoaWxkTm9kZXNbZHRdLCJoaWRkZW5IZWFkZXIiKSksdWUmJktlJiZLZS5jaGlsZE5vZGVzW2R0XSYmKEtlLmNoaWxkTm9kZXNb''@;'; + put 'put ''ZHRdLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLHBsKEtlLmNoaWxkTm9kZXNbZHRdLCJoaWRkZW5IZWFkZXIiKSl9fX0se2tleToiaGVhZGVyUmVuZGVyZXJGYWN0b3J5Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9dGhpcy5ob3Qudmlldy5fd3QuZ2V0U2V0dGluZygiZml4''@;'; + put 'put ''ZWRDb2x1bW5zU3RhcnQiKTtyZXR1cm4gZnVuY3Rpb24oaix1ZSl7dmFyIF9lLEJlPUMuaG90LE5lPUJlLnJvb3REb2N1bWVudCxkdD1CZS52aWV3LE90PUJlLmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoaik7bnVsbD09PU90JiYoT3Q9aiksdWUucmVt''@;'; + put 'put ''b3ZlQXR0cmlidXRlKCJjb2xzcGFuIikscGwodWUsImhpZGRlbkhlYWRlciIpO3ZhciAkdD1udWxsIT09KF9lPXBjKEMsYWYpLmdldEhlYWRlclNldHRpbmdzKHksT3QpKSYmdm9pZCAwIT09X2U/X2U6e2xhYmVsOiIifSxmbj0kdC5jb2xzcGFuLExuPSR0LmxhYmVsO2lmKCR0LmlzUGxhY2Vo''@;'; + put 'put ''b2xkZXJ8fCR0LmlzSGlkZGVuKU8wKHVlLCJoaWRkZW5IZWFkZXIiKTtlbHNlIGlmKGZuPjEpe3ZhciBTcix3cixRcj1kdC5fd3Qud3RPdmVybGF5cyx5aT1udWxsPT09KFNyPVFyLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSl8fHZvaWQgMD09PVNyP3ZvaWQgMDpTci5jbG9uZS53dFRh''@;'; + put 'put ''YmxlLlRIRUFELmNvbnRhaW5zKHVlKSxLaT1udWxsPT09KHdyPVFyLmlubGluZVN0YXJ0T3ZlcmxheSl8fHZvaWQgMD09PXdyP3ZvaWQgMDp3ci5jbG9uZS53dFRhYmxlLlRIRUFELmNvbnRhaW5zKHVlKSxTbz15aXx8S2k/TWF0aC5taW4oZm4sSS1qKTpmbjtTbz4xJiZ1ZS5zZXRBdHRyaWJ1''@;'; + put 'put ''dGUoImNvbHNwYW4iLFNvKX12YXIgUG89TmUuY3JlYXRlRWxlbWVudCgiZGl2IiksU2E9TmUuY3JlYXRlRWxlbWVudCgic3BhbiIpO08wKFBvLCJyZWxhdGl2ZSIpLE8wKFNhLCJjb2xIZWFkZXIiKSxfdyhTYSxMbiksUG8uYXBwZW5kQ2hpbGQoU2EpLERwKHVlKSx1ZS5hcHBlbmRDaGlsZChQ''@;'; + put 'put ''byksQy5ob3QucnVuSG9va3MoImFmdGVyR2V0Q29sSGVhZGVyIixPdCx1ZSl9fX0se2tleToib25CZWZvcmVIaWdobGlnaHRpbmdDb2x1bW5IZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj1wYyh0aGlzLGFmKS5nZXRIZWFkZXJUcmVlTm9kZURhdGEoQyx5KTtpZighailyZXR1''@;'; + put 'put ''cm4geTt2YXIgdWU9SS5jbGFzc05hbWVzLF9lPUkuY29sdW1uQ3Vyc29yLEJlPUkuc2VsZWN0aW9uVHlwZSxOZT1JLnNlbGVjdGlvbldpZHRoLEtlPXBjKHRoaXMsYWYpLmdldEhlYWRlclNldHRpbmdzKEMseSksZHQ9S2UuaXNSb290O2lmKEJlPT09b3ope2lmKCFkdClyZXR1cm4gai5jb2x1''@;'; + put 'put ''bW5JbmRleH1lbHNlIEJlPT09aXRlJiYoS2UuY29sc3Bhbj5OZS1fZXx8IWR0KSYmKHVlLmxlbmd0aD0wKTtyZXR1cm4geX19LHtrZXk6Im9uQmVmb3JlT25DZWxsTW91c2VEb3duIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqKXt0aGlzLl9nZXRIZWFkZXJUcmVlTm9kZURhdGFCeUNvb3JkcyhD''@;'; + put 'put ''KSYmKGouY29sdW1uPSEwKX19LHtrZXk6Im9uQWZ0ZXJPbkNlbGxNb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcy5fZ2V0SGVhZGVyVHJlZU5vZGVEYXRhQnlDb29yZHMoQyk7aWYoSSl7dmFyIGo9dGhpcy5ob3Quc2VsZWN0aW9uLHVlPWouaXNTZWxlY3RlZCgpP2ou''@;'; + put 'put ''Z2V0U2VsZWN0ZWRSYW5nZSgpLmN1cnJlbnQoKTpudWxsLF9lPVtdLEJlPUkuY29sdW1uSW5kZXgsTmU9SS5vcmlnQ29sc3BhbixLZT0hai5pbkluU2VsZWN0aW9uKEMpO3kuc2hpZnRLZXkmJnVlP0MuY29sPHVlLmZyb20uY29sP19lLnB1c2godWUuZ2V0VG9wRW5kQ29ybmVyKCkuY29sLEJl''@;'; + put 'put ''LEMucm93KTpfZS5wdXNoKEMuY29sPnVlLmZyb20uY29sP3VlLmdldFRvcFN0YXJ0Q29ybmVyKCkuY29sOkJlLEJlK05lLTEsQy5yb3cpOihvZWUoeSl8fFN3KHkpJiZLZSkmJl9lLnB1c2goQmUsQmUrTmUtMSxDLnJvdyksai5zZWxlY3RDb2x1bW5zLmFwcGx5KGosX2UpfX19LHtrZXk6Im9u''@;'; + put 'put ''QmVmb3JlT25DZWxsTW91c2VPdmVyIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxqKXt2YXIgdWU7aWYodGhpcy5ob3Qudmlldy5pc01vdXNlRG93bigpKXt2YXIgX2U9dGhpcy5fZ2V0SGVhZGVyVHJlZU5vZGVEYXRhQnlDb29yZHMoQyk7aWYoX2Upe3ZhciBCZT1fZS5jb2x1bW5JbmRleCxOZT1f''@;'; + put 'put ''ZS5vcmlnQ29sc3BhbixLZT10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGR0PUtlLmdldFRvcFN0YXJ0Q29ybmVyKCksT3Q9S2UuZ2V0Qm90dG9tRW5kQ29ybmVyKCksJHQ9S2UuZnJvbTtqLmNvbHVtbj0hMCxqLmNlbGw9ITA7dmFyIGZuPVtdO0MuY29sPCR0LmNvbD9mbi5wdXNo''@;'; + put 'put ''KE90LmNvbCxCZSk6Zm4ucHVzaChDLmNvbD4kdC5jb2w/ZHQuY29sOkJlLEJlK05lLTEpLCh1ZT10aGlzLmhvdCkuc2VsZWN0Q29sdW1ucy5hcHBseSh1ZSxmbil9fX19LHtrZXk6Im9uQWZ0ZXJHZXRDb2x1bW5IZWFkZXJSZW5kZXJlcnMiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHkpe3kubGVu''@;'; + put 'put ''Z3RoPTA7Zm9yKHZhciBDPTA7QzxwYyh0aGlzLGFmKS5nZXRMYXllcnNDb3VudCgpO0MrKyl5LnB1c2godGhpcy5oZWFkZXJSZW5kZXJlckZhY3RvcnkoQykpfX19LHtrZXk6Im9uQWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSIsdmFsdWU6ZnVuY3Rpb24oeSl7Zm9yKHZh''@;'; + put 'put ''ciBDPXBjKHRoaXMsYWYpLmdldExheWVyc0NvdW50KCksST15LnN0YXJ0Q29sdW1uLGo9ISFDLHVlPTA7dWU8Qzt1ZSsrKXt2YXIgX2U9cGModGhpcyxhZikuZmluZExlZnRNb3N0Q29sdW1uSW5kZXgodWUseS5zdGFydENvbHVtbiksQmU9dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0''@;'; + put 'put ''UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChfZSk7aWYoX2U+PTAmJihqPSExKSx2NChCZSkmJkJlPHkuc3RhcnRDb2x1bW4pe0k9QmU7YnJlYWt9fXkuc3RhcnRDb2x1bW49aj9wYyh0aGlzLGFmKS5nZXRIZWFkZXJUcmVlTm9kZURhdGEoMCxJKS5jb2x1bW5JbmRleDpJfX0se2tleToib25N''@;'; + put 'put ''b2RpZnlDb2xXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmdob3N0VGFibGUuZ2V0V2lkdGgoQyk7cmV0dXJuIHk+ST95Okl9fSx7a2V5OiJvbkluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy51cGRhdGVQbHVnaW4oKX19LHtrZXk6Im9uQWZ0ZXJMb2FkRGF0YSIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oeSxDKXtDfHx0aGlzLnVwZGF0ZVBsdWdpbigpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXtMbmUodGhpcyxhZixudWxsKSxudWxsIT09cGModGhpcyxVdykmJihwYyh0aGlzLFV3KS51bnN1YnNjcmliZSgpLExuZSh0aGlzLFV3LG51bGwpKSxkTShxOSho''@;'; + put 'put ''LnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJfZ2V0SGVhZGVyVHJlZU5vZGVEYXRhQnlDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKCEoeS5yb3c+PTB8fHkuY29sPDApKXJldHVybiBwYyh0aGlzLGFmKS5nZXRIZWFkZXJUcmVlTm9kZURhdGEoeS5y''@;'; + put 'put ''b3cseS5jb2wpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSERlfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMjgwfX1dKSxofShZcyk7ZnVuY3Rpb24gTkRlKGQpe3JldHVybiBmdW5jdGlvbiBYcHQoZCl7aWYoQXJy''@;'; + put 'put ''YXkuaXNBcnJheShkKSlyZXR1cm4gWmdlKGQpfShkKXx8ZnVuY3Rpb24gSnB0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIFFw''@;'; + put 'put ''dChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gWmdlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09''@;'; + put 'put ''PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBaZ2UoZCxnKX19KGQpfHxmdW5jdGlvbiBVcHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJ''@;'; + put 'put ''bnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBaZ2UoZCxnKXsobnVsbD09Z3x8''@;'; + put 'put ''Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiB6Z2UoZCl7cmV0dXJuKHpnZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRv''@;'; + put 'put ''cj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFZEZShkLGcp''@;'; + put 'put ''e2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBxcHQ9ZnVuY3Rp''@;'; + put 'put ''b24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIEtwdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmhvdD1oLHRoaXMuZGF0YT1udWxsLHRoaXMucGx1Z2lu''@;'; + put 'put ''PWcsdGhpcy5wYXJlbnRSZWZlcmVuY2U9bmV3IFdlYWtNYXAsdGhpcy5jYWNoZT17bGV2ZWxzOltdLGxldmVsQ291bnQ6MCxyb3dzOltdLG5vZGVJbmZvOm5ldyBXZWFrTWFwfX1yZXR1cm4gZnVuY3Rpb24gJHB0KGQsZyxoKXtnJiZWRGUoZC5wcm90b3R5cGUsZyksaCYmVkRlKGQsaCksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldERhdGEiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuZGF0YT1ofX0se2tleToiZ2V0RGF0YSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhfX0se2tleToiZ2V0UmF3U291''@;'; + put 'put ''cmNlRGF0YSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaDtyZXR1cm4gdGhpcy5wbHVnaW4uZGlzYWJsZUNvcmVBUElNb2RpZmllcnMoKSxoPXRoaXMuaG90LmdldFNvdXJjZURhdGEoKSx0aGlzLnBsdWdpbi5lbmFibGVDb3JlQVBJTW9kaWZpZXJzKCksaH19LHtrZXk6InVwZGF0ZVdpdGhEYXRh''@;'; + put 'put ''Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnNldERhdGEoaCksdGhpcy5yZXdyaXRlQ2FjaGUoKX19LHtrZXk6InJld3JpdGVDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO3RoaXMuY2FjaGU9e2xldmVsczpbXSxsZXZlbENvdW50OjAscm93czpbXSxub2RlSW5mbzpuZXcgV2Vh''@;'; + put 'put ''a01hcH0saWEoMCx0aGlzLmRhdGEubGVuZ3RoLTEsZnVuY3Rpb24odil7aC5jYWNoZU5vZGUoaC5kYXRhW3ZdLDAsbnVsbCl9KX19LHtrZXk6ImNhY2hlTm9kZSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXRoaXM7dGhpcy5jYWNoZS5sZXZlbHNbdl18fCh0aGlzLmNhY2hlLmxldmVs''@;'; + put 'put ''c1t2XT1bXSx0aGlzLmNhY2hlLmxldmVsQ291bnQrPTEpLHRoaXMuY2FjaGUubGV2ZWxzW3ZdLnB1c2goaCksdGhpcy5jYWNoZS5yb3dzLnB1c2goaCksdGhpcy5jYWNoZS5ub2RlSW5mby5zZXQoaCx7cGFyZW50Onkscm93OnRoaXMuY2FjaGUucm93cy5sZW5ndGgtMSxsZXZlbDp2fSksdGhp''@;'; + put 'put ''cy5oYXNDaGlsZHJlbihoKSYmVXIoaC5fX2NoaWxkcmVuLGZ1bmN0aW9uKEkpe0MuY2FjaGVOb2RlKEksdisxLGgpfSl9fSx7a2V5OiJnZXREYXRhT2JqZWN0Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gbnVsbD09aD9udWxsOnRoaXMuY2FjaGUucm93c1toXX19LHtrZXk6InJlYWRUcmVl''@;'; + put 'put ''Tm9kZXMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe3ZhciBJPXRoaXMsaj0hMSx1ZT12O2lmKGlzTmFOKHVlKSYmdWUuZW5kKXJldHVybiB1ZTt2YXIgX2U9aDtyZXR1cm4gX2V8fChfZT17X19jaGlsZHJlbjp0aGlzLmRhdGF9LGo9ITAsdWUtPTEpLG51bGwhPXkmJnVlPT09eT97cmVzdWx0''@;'; + put 'put ''Ol9lLGVuZDohMH06bnVsbCE9QyYmX2U9PT1DP3tyZXN1bHQ6dWUsZW5kOiEwfToodWUrPTEsX2UuX19jaGlsZHJlbiYmVXIoX2UuX19jaGlsZHJlbixmdW5jdGlvbihCZSl7aWYoSS5wYXJlbnRSZWZlcmVuY2Uuc2V0KEJlLGo/bnVsbDpfZSksdWU9SS5yZWFkVHJlZU5vZGVzKEJlLHVlLHks''@;'; + put 'put ''QyksaXNOYU4odWUpJiZ1ZS5lbmQpcmV0dXJuITF9KSx1ZSl9fSx7a2V5OiJtb2NrUGFyZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMubW9ja05vZGUoKTtyZXR1cm4gaC5fX2NoaWxkcmVuPXRoaXMuZGF0YSxofX0se2tleToibW9ja05vZGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IGg9e307cmV0dXJuIEdsKHRoaXMuZGF0YVswXSxmdW5jdGlvbih2LHkpe2hbeV09bnVsbH0pLGh9fSx7a2V5OiJnZXRSb3dJbmRleCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIG51bGw9PWg/bnVsbDp0aGlzLmNhY2hlLm5vZGVJbmZvLmdldChoKS5yb3d9fSx7a2V5OiJnZXRSb3dJbmRl''@;'; + put 'put ''eFdpdGhpblBhcmVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY7dj1pc05hTihoKT9oOnRoaXMuZ2V0RGF0YU9iamVjdChoKTt2YXIgeT10aGlzLmdldFJvd1BhcmVudChoKTtyZXR1cm4gbnVsbD09eT90aGlzLmRhdGEuaW5kZXhPZih2KTp5Ll9fY2hpbGRyZW4uaW5kZXhPZih2KX19LHtr''@;'; + put 'put ''ZXk6ImNvdW50QWxsUm93cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb3VudENoaWxkcmVuKHtfX2NoaWxkcmVuOnRoaXMuZGF0YX0pfX0se2tleToiY291bnRDaGlsZHJlbiIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcyx5PTAsQz1oO3JldHVybiBpc05hTihDKXx8KEM9''@;'; + put 'put ''dGhpcy5nZXREYXRhT2JqZWN0KEMpKSxDJiZDLl9fY2hpbGRyZW4/KFVyKEMuX19jaGlsZHJlbixmdW5jdGlvbihJKXt5Kz0xLEkuX19jaGlsZHJlbiYmKHkrPXYuY291bnRDaGlsZHJlbihJKSl9KSx5KTowfX0se2tleToiZ2V0Um93UGFyZW50Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdjty''@;'; + put 'put ''ZXR1cm4gdj1pc05hTihoKT9oOnRoaXMuZ2V0RGF0YU9iamVjdChoKSx0aGlzLmdldFJvd09iamVjdFBhcmVudCh2KX19LHtrZXk6ImdldFJvd09iamVjdFBhcmVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGgmJiJvYmplY3QiPT09emdlKGgpP3RoaXMuY2FjaGUubm9kZUluZm8uZ2V0''@;'; + put 'put ''KGgpLnBhcmVudDpudWxsfX0se2tleToiZ2V0Um93TGV2ZWwiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2O3JldHVybih2PWlzTmFOKGgpP2g6dGhpcy5nZXREYXRhT2JqZWN0KGgpKT90aGlzLmdldFJvd09iamVjdExldmVsKHYpOm51bGx9fSx7a2V5OiJnZXRSb3dPYmplY3RMZXZlbCIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oaCl7cmV0dXJuIG51bGw9PWg/bnVsbDp0aGlzLmNhY2hlLm5vZGVJbmZvLmdldChoKS5sZXZlbH19LHtrZXk6Imhhc0NoaWxkcmVuIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1oO3JldHVybiBpc05hTih2KXx8KHY9dGhpcy5nZXREYXRhT2JqZWN0KHYpKSwhKCF2Ll9f''@;'; + put 'put ''Y2hpbGRyZW58fCF2Ll9fY2hpbGRyZW4ubGVuZ3RoKX19LHtrZXk6ImlzQ2hpbGQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBudWxsIT09dGhpcy5nZXRSb3dQYXJlbnQoaCl9fSx7a2V5OiJnZXRDaGlsZCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeTtyZXR1cm4obnVsbD09PSh5PWgu''@;'; + put 'put ''X19jaGlsZHJlbil8fHZvaWQgMD09PXk/dm9pZCAwOnlbdl0pfHxudWxsfX0se2tleToiaXNSb3dIaWdoZXN0TGV2ZWwiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiF0aGlzLmlzQ2hpbGQoaCl9fSx7a2V5OiJpc1BhcmVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHYseT1oO3JldHVybiBp''@;'; + put 'put ''c05hTih5KXx8KHk9dGhpcy5nZXREYXRhT2JqZWN0KHkpKSx5JiYhIXkuX19jaGlsZHJlbiYmMCE9PShudWxsPT09KHY9eS5fX2NoaWxkcmVuKXx8dm9pZCAwPT09dj92b2lkIDA6di5sZW5ndGgpfX0se2tleToiYWRkQ2hpbGQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9djt0aGlzLmhv''@;'; + put 'put ''dC5ydW5Ib29rcygiYmVmb3JlQWRkQ2hpbGQiLGgseSk7dmFyIEM9bnVsbDtoJiYoQz10aGlzLmdldFJvd0luZGV4KGgpKSx0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ3JlYXRlUm93IixDK3RoaXMuY291bnRDaGlsZHJlbihoKSsxLDEpO3ZhciBJPWg7aHx8KEk9dGhpcy5tb2NrUGFyZW50''@;'; + put 'put ''KCkpLEkuX19jaGlsZHJlbnx8KEkuX19jaGlsZHJlbj1bXSkseXx8KHk9dGhpcy5tb2NrTm9kZSgpKSxJLl9fY2hpbGRyZW4ucHVzaCh5KSx0aGlzLnJld3JpdGVDYWNoZSgpO3ZhciBqPXRoaXMuZ2V0Um93SW5kZXgoeSk7dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuaW5zZXJ0SW5kZXhlcyhq''@;'; + put 'put ''LDEpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNyZWF0ZVJvdyIsaiwxKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJBZGRDaGlsZCIsaCx5KX19LHtrZXk6ImFkZENoaWxkQXRJbmRleCIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBJLEM9eTtpZihDfHwoQz10aGlzLm1vY2tOb2RlKCkp''@;'; + put 'put ''LHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVBZGRDaGlsZCIsaCxDLHYpLGgpe3ZhciB1ZT10aGlzLmdldFJvd0luZGV4KGgpK3YrMTt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ3JlYXRlUm93Iix1ZSwxKSxoLl9fY2hpbGRyZW4uc3BsaWNlKHYsbnVsbCxDKSx0aGlzLnJld3JpdGVDYWNo''@;'; + put 'put ''ZSgpLHRoaXMucGx1Z2luLmRpc2FibGVDb3JlQVBJTW9kaWZpZXJzKCksdGhpcy5ob3Quc2V0U291cmNlRGF0YUF0Q2VsbCh0aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KGgpLCJfX2NoaWxkcmVuIixoLl9fY2hpbGRyZW4sIk5lc3RlZFJvd3MuYWRkQ2hpbGRBdEluZGV4IiksdGhpcy5o''@;'; + put 'put ''b3Qucm93SW5kZXhNYXBwZXIuaW5zZXJ0SW5kZXhlcyh1ZSwxKSx0aGlzLnBsdWdpbi5lbmFibGVDb3JlQVBJTW9kaWZpZXJzKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ3JlYXRlUm93Iix1ZSwxKSxJPXVlfWVsc2UgdGhpcy5wbHVnaW4uZGlzYWJsZUNvcmVBUElNb2RpZmllcnMoKSx0''@;'; + put 'put ''aGlzLmhvdC5hbHRlcigiaW5zZXJ0X3JvdyIsdiwxLCJOZXN0ZWRSb3dzLmFkZENoaWxkQXRJbmRleCIpLHRoaXMucGx1Z2luLmVuYWJsZUNvcmVBUElNb2RpZmllcnMoKSxJPXRoaXMuZ2V0Um93SW5kZXgodGhpcy5kYXRhW3ZdKTtDPXRoaXMuZ2V0RGF0YU9iamVjdChJKSx0aGlzLmhvdC5y''@;'; + put 'put ''dW5Ib29rcygiYWZ0ZXJBZGRDaGlsZCIsaCxDLHYpfX0se2tleToiYWRkU2libGluZyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJiZWxvdyIseT10aGlzLnRyYW5zbGF0ZVRyaW1tZWRSb3co''@;'; + put 'put ''aCksQz10aGlzLmdldFJvd1BhcmVudCh5KSxJPXRoaXMuZ2V0Um93SW5kZXhXaXRoaW5QYXJlbnQoeSk7c3dpdGNoKHYpe2Nhc2UiYmVsb3ciOnRoaXMuYWRkQ2hpbGRBdEluZGV4KEMsSSsxLG51bGwpO2JyZWFrO2Nhc2UiYWJvdmUiOnRoaXMuYWRkQ2hpbGRBdEluZGV4KEMsSSxudWxsKX19''@;'; + put 'put ''fSx7a2V5OiJkZXRhY2hGcm9tUGFyZW50Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxDPW51bGwsST1bXTtBcnJheS5pc0FycmF5KGgpPyhpYShoWzBdLGhbMl0sZnVuY3Rp''@;'; + put 'put ''b24oTG4pe3ZhciBpcj12LnRyYW5zbGF0ZVRyaW1tZWRSb3coTG4pO0kucHVzaCh2LmdldERhdGFPYmplY3QoaXIpKX0pLGlhKDAsSS5sZW5ndGgtMixmdW5jdGlvbihMbil7di5kZXRhY2hGcm9tUGFyZW50KElbTG5dLCExKX0pLEM9SVtJLmxlbmd0aC0xXSk6Qz1oO3ZhciBqPXRoaXMuZ2V0''@;'; + put 'put ''Um93SW5kZXgoQyksdWU9dGhpcy5jb3VudENoaWxkcmVuKEMpLF9lPXRoaXMuZ2V0Um93SW5kZXhXaXRoaW5QYXJlbnQoQyksQmU9dGhpcy5nZXRSb3dQYXJlbnQoQyksTmU9dGhpcy5nZXRSb3dQYXJlbnQoQmUpLEtlPXRoaXMuZ2V0Um93SW5kZXgoTmUpLGR0PW51bGw7aWYodGhpcy5ob3Qu''@;'; + put 'put ''cnVuSG9va3MoImJlZm9yZURldGFjaENoaWxkIixCZSxDKSxudWxsIT1fZSl7dmFyIE90PUFycmF5LmZyb20obmV3IEFycmF5KGordWUrMSkua2V5cygpKS5zcGxpY2UoLTEqKHVlKzEpKTtpZih0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlUmVtb3ZlUm93IixqLHVlKzEsT3QsdGhpcy5wbHVn''@;'; + put 'put ''aW4ucGx1Z2luTmFtZSksQmUuX19jaGlsZHJlbi5zcGxpY2UoX2UsMSksdGhpcy5yZXdyaXRlQ2FjaGUoKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJSZW1vdmVSb3ciLGosdWUrMSxPdCx0aGlzLnBsdWdpbi5wbHVnaW5OYW1lKSxOZSl7ZHQ9S2UrdGhpcy5jb3VudENoaWxkcmVuKE5lKTt2''@;'; + put 'put ''YXIgJHQ9dGhpcy5nZXRDaGlsZChOZSx0aGlzLmNvdW50Q2hpbGRyZW4oTmUpLTEpLGZuPXRoaXMuZ2V0Um93SW5kZXgoJHQpO3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDcmVhdGVSb3ciLGZuKzEsdWUrMSx0aGlzLnBsdWdpbi5wbHVnaW5OYW1lKSxOZS5fX2NoaWxkcmVuLnB1c2goQyl9''@;'; + put 'put ''ZWxzZSBkdD10aGlzLmhvdC5jb3VudFJvd3MoKSsxLHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDcmVhdGVSb3ciLGR0LTIsdWUrMSx0aGlzLnBsdWdpbi5wbHVnaW5OYW1lKSx0aGlzLmRhdGEucHVzaChDKX10aGlzLnJld3JpdGVDYWNoZSgpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNy''@;'; + put 'put ''ZWF0ZVJvdyIsZHQtMix1ZSsxLHRoaXMucGx1Z2luLnBsdWdpbk5hbWUpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckRldGFjaENoaWxkIixCZSxDLHRoaXMuZ2V0Um93SW5kZXgoQykpLHkmJnRoaXMuaG90LnJlbmRlcigpfX0se2tleToiZmlsdGVyRGF0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2''@;'; + put 'put ''LHkpe3ZhciBDPXRoaXMsST1bXTtVcih5LGZ1bmN0aW9uKGope0kucHVzaChDLmdldERhdGFPYmplY3QoaikpfSksVXIoSSxmdW5jdGlvbihqKXt2YXIgdWU9Qy5nZXRSb3dJbmRleFdpdGhpblBhcmVudChqKSxfZT1DLmdldFJvd1BhcmVudChqKTtudWxsPT09X2U/Qy5kYXRhLnNwbGljZSh1''@;'; + put 'put ''ZSwxKTpfZS5fX2NoaWxkcmVuLnNwbGljZSh1ZSwxKX0pLHRoaXMucmV3cml0ZUNhY2hlKCl9fSx7a2V5OiJzcGxpY2VEYXRhIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcy5nZXREYXRhT2JqZWN0KGgtMSksST1udWxsLGo9aDtpZihDJiZDLl9fY2hpbGRyZW4mJjA9PT1DLl9f''@;'; + put 'put ''Y2hpbGRyZW4ubGVuZ3RoPyhJPUMsaj0wKTpoPHRoaXMuY291bnRBbGxSb3dzKCkmJihJPXRoaXMuZ2V0Um93UGFyZW50KGgpLGo9dGhpcy5nZXRSb3dJbmRleFdpdGhpblBhcmVudChoKSksSSlpZih5KXt2YXIgdWU7KHVlPUkuX19jaGlsZHJlbikuc3BsaWNlLmFwcGx5KHVlLFtqLHZdLmNv''@;'; + put 'put ''bmNhdChORGUoeSkpKX1lbHNlIEkuX19jaGlsZHJlbi5zcGxpY2Uoaix2KTtlbHNlIGlmKHkpe3ZhciBfZTsoX2U9dGhpcy5kYXRhKS5zcGxpY2UuYXBwbHkoX2UsW2osdl0uY29uY2F0KE5EZSh5KSkpfWVsc2UgdGhpcy5kYXRhLnNwbGljZShqLHYpO3RoaXMucmV3cml0ZUNhY2hlKCl9fSx7''@;'; + put 'put ''a2V5OiJzeW5jUm93V2l0aFJhd1NvdXJjZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9aCx5PW51bGw7ZG97bnVsbCE9PSh5PXRoaXMuZ2V0Um93UGFyZW50KHkpKSYmKHY9eSl9d2hpbGUobnVsbCE9PXkpO3RoaXMucGx1Z2luLmRpc2FibGVDb3JlQVBJTW9kaWZpZXJzKCksdGhpcy5ob3Qu''@;'; + put 'put ''c2V0U291cmNlRGF0YUF0Q2VsbCh0aGlzLmdldFJvd0luZGV4KHYpLCJfX2NoaWxkcmVuIix2Ll9fY2hpbGRyZW4sIk5lc3RlZFJvd3Muc3luY1Jvd1dpdGhSYXdTb3VyY2UiKSx0aGlzLnBsdWdpbi5lbmFibGVDb3JlQVBJTW9kaWZpZXJzKCl9fSx7a2V5OiJtb3ZlUm93Iix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbihoLHYseSxDKXt2YXIgST12PT09dGhpcy5ob3QuY291bnRSb3dzKCksaj10aGlzLmdldFJvd1BhcmVudChoKSx1ZT10aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KGgpLF9lPWouX19jaGlsZHJlbi5zbGljZSh1ZSx1ZSsxKSxCZT1oPnYsTmU9dGhpcy5nZXRSb3dQYXJlbnQoST92''@;'; + put 'put ''LTE6dik7bnVsbD09TmUmJihOZT10aGlzLmdldFJvd1BhcmVudCh2LTEpKSxudWxsPT1OZSYmKE5lPXRoaXMuZ2V0RGF0YU9iamVjdCh2LTEpKSxOZT9OZS5fX2NoaWxkcmVufHwoTmUuX19jaGlsZHJlbj1bXSk6KE5lPXRoaXMuZ2V0RGF0YU9iamVjdCh2KSkuX19jaGlsZHJlbj1bXTt2YXIg''@;'; + put 'put ''S2U9SXx8eXx8Qz9OZS5fX2NoaWxkcmVuLmxlbmd0aDp0aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KHYpLGR0PWo9PT1OZTtOZS5fX2NoaWxkcmVuLnNwbGljZShLZSwwLF9lWzBdKSxqLl9fY2hpbGRyZW4uc3BsaWNlKHVlKyhCZSYmZHQ/MTowKSwxKSx0aGlzLnN5bmNSb3dXaXRoUmF3''@;'; + put 'put ''U291cmNlKGopLGR0fHx0aGlzLnN5bmNSb3dXaXRoUmF3U291cmNlKE5lKX19LHtrZXk6InRyYW5zbGF0ZVRyaW1tZWRSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnBsdWdpbi5jb2xsYXBzaW5nVUk/dGhpcy5wbHVnaW4uY29sbGFwc2luZ1VJLnRyYW5zbGF0ZVRyaW1tZWRS''@;'; + put 'put ''b3coaCk6aH19LHtrZXk6InVudHJhbnNsYXRlVHJpbW1lZFJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucGx1Z2luLmNvbGxhcHNpbmdVST90aGlzLnBsdWdpbi5jb2xsYXBzaW5nVUkudW50cmFuc2xhdGVUcmltbWVkUm93KGgpOmh9fV0pLGR9KCk7Y29uc3QgZTZ0PXFwdDtm''@;'; + put 'put ''dW5jdGlvbiBqRGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYp''@;'; + put 'put ''fX1mdW5jdGlvbiB0NnQoZCxnLGgpe3JldHVybiBnJiZqRGUoZC5wcm90b3R5cGUsZyksaCYmakRlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZH12YXIgcjZ0PXQ2dChmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIG42dChkLGcpe2lm''@;'; + put 'put ''KCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmhvdD1oLHRoaXMucGx1Z2luPWd9KTtjb25zdCBHZ2U9cjZ0O2Z1bmN0aW9uIFdnZShkKXtyZXR1cm4oV2dlPSJmdW5jdGlvbiI9''@;'; + put 'put ''PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJv''@;'; + put 'put ''dG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gWkRlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxP''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gWWdlKGQsZyl7cmV0dXJuKFlnZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9u''@;'; + put 'put ''IHM2dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVdnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1''@;'; + put 'put ''cm4gZnVuY3Rpb24gdTZ0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gT25lKGQpe3JldHVybihPbmU9T2JqZWN0''@;'; + put 'put ''LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgZjZ0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBhNnQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBl''@;'; + put 'put ''b2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxj''@;'; + put 'put ''b25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmWWdlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gbDZ0KGQpe3ZhciBnPWZ1bmN0aW9uIGM2dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJl''@;'; + put 'put ''ZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9u''@;'; + put 'put ''KCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PU9uZShkKTtpZihnKXt2YXIgQz1PbmUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7''@;'; + put 'put ''cmV0dXJuIHM2dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiBpNnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoQz1nLmNh''@;'; + put 'put ''bGwodGhpcyx2LHkpKS5kYXRhTWFuYWdlcj1DLnBsdWdpbi5kYXRhTWFuYWdlcixDLmNvbGxhcHNpbmdVST1DLnBsdWdpbi5jb2xsYXBzaW5nVUksQy5yb3dIZWFkZXJXaWR0aENhY2hlPW51bGwsQ31yZXR1cm4gZnVuY3Rpb24gbzZ0KGQsZyxoKXtnJiZaRGUoZC5wcm90b3R5cGUsZyksaCYm''@;'; + put 'put ''WkRlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImFwcGVuZExldmVsSW5kaWNhdG9ycyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmhvdC50b1BoeXNpY2FsUm93KHkpLGo9dGhpcy5kYXRhTWFuYWdlci5n''@;'; + put 'put ''ZXRSb3dMZXZlbChJKSx1ZT10aGlzLmRhdGFNYW5hZ2VyLmdldERhdGFPYmplY3QoSSksX2U9Qy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiRElWIilbMF0sQmU9X2UucXVlcnlTZWxlY3Rvcigic3Bhbi5yb3dIZWFkZXIiKTtpZihVcihfZS5xdWVyeVNlbGVjdG9yQWxsKCdbY2xhc3NePSJodF9u''@;'; + put 'put ''ZXN0aW5nIl0nKSxmdW5jdGlvbigkdCl7JHQmJl9lLnJlbW92ZUNoaWxkKCR0KX0pLE8wKEMsaC5DU1NfQ0xBU1NFUy5pbmRpY2F0b3JDb250YWluZXIpLGope3ZhciBLZT10aGlzLmhvdC5yb290RG9jdW1lbnQsZHQ9QmUuY2xvbmVOb2RlKCEwKTtfZS5pbm5lckhUTUw9IiIsaWEoMCxqLTEs''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgJHQ9S2UuY3JlYXRlRWxlbWVudCgiU1BBTiIpO08wKCR0LGguQ1NTX0NMQVNTRVMuZW1wdHlJbmRpY2F0b3IpLF9lLmFwcGVuZENoaWxkKCR0KX0pLF9lLmFwcGVuZENoaWxkKGR0KX1pZih0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKHVlKSl7dmFyIE90PXRo''@;'; + put 'put ''aXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTtPMChDLGguQ1NTX0NMQVNTRVMucGFyZW50KSx0aGlzLmNvbGxhcHNpbmdVSS5hcmVDaGlsZHJlbkNvbGxhcHNlZChJKT9PMChPdCwiIi5jb25jYXQoaC5DU1NfQ0xBU1NFUy5idXR0b24sIiAiKS5jb25jYXQoaC5DU1Nf''@;'; + put 'put ''Q0xBU1NFUy5leHBhbmRCdXR0b24pKTpPMChPdCwiIi5jb25jYXQoaC5DU1NfQ0xBU1NFUy5idXR0b24sIiAiKS5jb25jYXQoaC5DU1NfQ0xBU1NFUy5jb2xsYXBzZUJ1dHRvbikpLF9lLmFwcGVuZENoaWxkKE90KX19fSx7a2V5OiJ1cGRhdGVSb3dIZWFkZXJXaWR0aCIsdmFsdWU6ZnVuY3Rp''@;'; + put 'put ''b24oeSl7dmFyIEM9eTtDfHwoQz10aGlzLmRhdGFNYW5hZ2VyLmNhY2hlLmxldmVsQ291bnQpLHRoaXMucm93SGVhZGVyV2lkdGhDYWNoZT1NYXRoLm1heCg1MCwxMSsxMCpDKzI1KSx0aGlzLmhvdC5yZW5kZXIoKX19XSxbe2tleToiQ1NTX0NMQVNTRVMiLGdldDpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''bntpbmRpY2F0b3JDb250YWluZXI6Imh0X25lc3RpbmdMZXZlbHMiLHBhcmVudDoiaHRfbmVzdGluZ1BhcmVudCIsaW5kaWNhdG9yOiJodF9uZXN0aW5nTGV2ZWwiLGVtcHR5SW5kaWNhdG9yOiJodF9uZXN0aW5nTGV2ZWxfZW1wdHkiLGJ1dHRvbjoiaHRfbmVzdGluZ0J1dHRvbiIsZXhwYW5k''@;'; + put 'put ''QnV0dG9uOiJodF9uZXN0aW5nRXhwYW5kIixjb2xsYXBzZUJ1dHRvbjoiaHRfbmVzdGluZ0NvbGxhcHNlIn19fV0pLGh9KEdnZSk7Y29uc3QgekRlPWY2dDtmdW5jdGlvbiBVZ2UoZCl7cmV0dXJuKFVnZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJv''@;'; + put 'put ''bC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9u''@;'; + put 'put ''IEdEZShkKXtyZXR1cm4gZnVuY3Rpb24gZzZ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIFFnZShkKX0oZCl8fGZ1bmN0aW9uIHA2dChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0p''@;'; + put 'put ''cmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBkNnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFFnZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3Ry''@;'; + put 'put ''dWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gUWdlKGQsZyl9fShkKXx8''@;'; + put 'put ''ZnVuY3Rpb24gaDZ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRo''@;'; + put 'put ''b2QuIil9KCl9ZnVuY3Rpb24gUWdlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gV0RlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3Zh''@;'; + put 'put ''ciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gSmdlKGQsZyl7cmV0dXJuKEpnZT1PYmplY3Quc2V0UHJvdG90''@;'; + put 'put ''eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIHc2dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVVnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9''@;'; + put 'put ''PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gYjZ0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGlu''@;'; + put 'put ''aXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gUm5lKGQpe3JldHVybihSbmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxP''@;'; + put 'put ''YmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgQzZ0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBBNnQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEg''@;'; + put 'put ''ZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmSmdlKGQs''@;'; + put 'put ''Zyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24geTZ0KGQpe3ZhciBnPWZ1bmN0aW9uIF82dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSly''@;'; + put 'put ''ZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVJuZShkKTtpZihnKXt2YXIgQz1S''@;'; + put 'put ''bmUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHc2dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiBtNnQoZCxnKXtpZighKGQg''@;'; + put 'put ''aW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoQz1nLmNhbGwodGhpcyx2LHkpKS5kYXRhTWFuYWdlcj1DLnBsdWdpbi5kYXRhTWFuYWdlcixDLmNvbGxhcHNlZFJvd3M9W10sQy5jb2xsYXBzZWRS''@;'; + put 'put ''b3dzU3Rhc2g9e3N0YXNoOmZ1bmN0aW9uKCl7dmFyIGo9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtDLmxhc3RDb2xsYXBzZWRSb3dzPUMuY29sbGFwc2VkUm93cy5zbGljZSgwKSxDLmV4cGFuZE11bHRpcGxlQ2hpbGRyZW4oQy5sYXN0''@;'; + put 'put ''Q29sbGFwc2VkUm93cyxqKX0sc2hpZnRTdGFzaDpmdW5jdGlvbihqLHVlKXt2YXIgX2U9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjE7bnVsbD09dWUmJih1ZT0xLzApLFVyKEMubGFzdENvbGxhcHNlZFJvd3MsZnVuY3Rpb24oQmUsTmUp''@;'; + put 'put ''e0JlPj1qJiZCZTx1ZSYmKEMubGFzdENvbGxhcHNlZFJvd3NbTmVdPUJlK19lKX0pfSxhcHBseVN0YXNoOmZ1bmN0aW9uKCl7dmFyIGo9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTtDLmNvbGxhcHNlTXVsdGlwbGVDaGlsZHJlbihD''@;'; + put 'put ''Lmxhc3RDb2xsYXBzZWRSb3dzLGopLEMubGFzdENvbGxhcHNlZFJvd3M9dm9pZCAwfSx0cmltU3Rhc2g6ZnVuY3Rpb24oaix1ZSl7aWEoaixqK3VlLTEsZnVuY3Rpb24oX2Upe3ZhciBCZT1DLmxhc3RDb2xsYXBzZWRSb3dzLmluZGV4T2YoX2UpO0JlPi0xJiZDLmxhc3RDb2xsYXBzZWRSb3dz''@;'; + put 'put ''LnNwbGljZShCZSwxKX0pfX0sQ31yZXR1cm4gZnVuY3Rpb24gdjZ0KGQsZyxoKXtnJiZXRGUoZC5wcm90b3R5cGUsZyksaCYmV0RlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImNvbGxhcHNlQ2hpbGRyZW4iLHZhbHVl''@;'; + put 'put ''OmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdLGo9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSx1ZT1bXSxfZT1udWxsLEJlPW51''@;'; + put 'put ''bGwsTmU9bnVsbDtyZXR1cm4gaXNOYU4oeSk/QmU9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleChfZT15KTooX2U9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KHkpLEJlPXkpLHRoaXMuZGF0YU1hbmFnZXIuaGFzQ2hpbGRyZW4oX2UpJiZVcihfZS5fX2NoaWxkcmVuLGZ1bmN0''@;'; + put 'put ''aW9uKEtlKXt1ZS5wdXNoKEMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoS2UpKX0pLE5lPXRoaXMuY29sbGFwc2VSb3dzKHVlLCEwLCExKSxqJiZ0aGlzLnRyaW1Sb3dzKE5lKSxJJiZ0aGlzLnJlbmRlckFuZEFkanVzdCgpLC0xPT09dGhpcy5jb2xsYXBzZWRSb3dzLmluZGV4T2YoQmUpJiZ0''@;'; + put 'put ''aGlzLmNvbGxhcHNlZFJvd3MucHVzaChCZSksTmV9fSx7a2V5OiJjb2xsYXBzZU11bHRpcGxlQ2hpbGRyZW4iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdLGo9IShhcmd1bWVu''@;'; + put 'put ''dHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSx1ZT1bXTtVcih5LGZ1bmN0aW9uKF9lKXt1ZS5wdXNoLmFwcGx5KHVlLEdEZShDLmNvbGxhcHNlQ2hpbGRyZW4oX2UsITEsITEpKSl9KSxqJiZ0aGlzLnRyaW1Sb3dzKHVlKSxJJiZ0aGlzLnJlbmRlckFu''@;'; + put 'put ''ZEFkanVzdCgpfX0se2tleToiY29sbGFwc2VSb3ciLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV07dGhpcy5jb2xsYXBzZVJvd3MoW3ldLEMpfX0se2tleToiY29sbGFwc2VSb3dzIix2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxqPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sdWU9W107cmV0dXJuIFVyKHksZnVu''@;'; + put 'put ''Y3Rpb24oX2Upe3VlLnB1c2goX2UpLEkmJkMuY29sbGFwc2VDaGlsZFJvd3MoX2UsdWUpfSksaiYmdGhpcy50cmltUm93cyh1ZSksdWV9fSx7a2V5OiJjb2xsYXBzZUNoaWxkUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09''@;'; + put 'put ''YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXSx1ZT1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO2lmKHRoaXMuZGF0YU1hbmFnZXIuaGFzQ2hpbGRyZW4oeSkpe3ZhciBfZT10aGlzLmRhdGFNYW5hZ2VyLmdldERhdGFPYmplY3QoeSk7''@;'; + put 'put ''VXIoX2UuX19jaGlsZHJlbixmdW5jdGlvbihCZSl7dmFyIE5lPUMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoQmUpO0kucHVzaChOZSksQy5jb2xsYXBzZUNoaWxkUm93cyhOZSxJKX0pfXVlJiZ0aGlzLnRyaW1Sb3dzKEkpfX0se2tleToiZXhwYW5kUm93Iix2YWx1ZTpmdW5jdGlvbih5KXt2''@;'; + put 'put ''YXIgQz0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO3RoaXMuZXhwYW5kUm93cyhbeV0sQyl9fSx7a2V5OiJleHBhbmRSb3dzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQg''@;'; + put 'put ''MCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxqPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sdWU9W107cmV0dXJuIFVyKHksZnVuY3Rpb24oX2Upe3VlLnB1c2goX2UpLEkmJkMuZXhwYW5kQ2hpbGRSb3dzKF9lLHVlKX0pLGom''@;'; + put 'put ''JnRoaXMudW50cmltUm93cyh1ZSksdWV9fSx7a2V5OiJleHBhbmRDaGlsZFJvd3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10sdWU9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lk''@;'; + put 'put ''IDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTtpZih0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKHkpKXt2YXIgX2U9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KHkpO1VyKF9lLl9fY2hpbGRyZW4sZnVuY3Rpb24oQmUpe2lmKCFDLmlzQW55UGFyZW50Q29sbGFwc2Vk''@;'; + put 'put ''KEJlKSl7dmFyIE5lPUMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoQmUpO0kucHVzaChOZSksQy5leHBhbmRDaGlsZFJvd3MoTmUsSSl9fSl9dWUmJnRoaXMudW50cmltUm93cyhJKX19LHtrZXk6ImV4cGFuZENoaWxkcmVuIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9IShhcmd1''@;'; + put 'put ''bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxqPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sdWU9W10sX2U9bnVsbCxCZT1udWxsLE5lPW51bGw7cmV0dXJuIGlzTmFOKHkpPyhfZT15''@;'; + put 'put ''LEJlPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoeSkpOihfZT10aGlzLmRhdGFNYW5hZ2VyLmdldERhdGFPYmplY3QoeSksQmU9eSksdGhpcy5jb2xsYXBzZWRSb3dzLnNwbGljZSh0aGlzLmNvbGxhcHNlZFJvd3MuaW5kZXhPZihCZSksMSksdGhpcy5kYXRhTWFuYWdlci5oYXNDaGls''@;'; + put 'put ''ZHJlbihfZSkmJlVyKF9lLl9fY2hpbGRyZW4sZnVuY3Rpb24oS2Upe3ZhciBkdD1DLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KEtlKTt1ZS5wdXNoKGR0KX0pLE5lPXRoaXMuZXhwYW5kUm93cyh1ZSwhMCwhMSksaiYmdGhpcy51bnRyaW1Sb3dzKE5lKSxJJiZ0aGlzLnJlbmRlckFuZEFkanVz''@;'; + put 'put ''dCgpLE5lfX0se2tleToiZXhwYW5kTXVsdGlwbGVDaGlsZHJlbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0saj0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJn''@;'; + put 'put ''dW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdLHVlPVtdO1VyKHksZnVuY3Rpb24oX2Upe3VlLnB1c2guYXBwbHkodWUsR0RlKEMuZXhwYW5kQ2hpbGRyZW4oX2UsITEsITEpKSl9KSxqJiZ0aGlzLnVudHJpbVJvd3ModWUpLEkmJnRoaXMucmVuZGVyQW5kQWRqdXN0KCl9fSx7a2V5OiJjb2xsYXBz''@;'; + put 'put ''ZUFsbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhKCksST1bXTtVcihDLGZ1bmN0aW9uKGope3kuZGF0YU1hbmFnZXIuaGFzQ2hpbGRyZW4oaikmJkkucHVzaChqKX0pLHRoaXMuY29sbGFwc2VNdWx0aXBsZUNoaWxkcmVuKEkpLHRoaXMu''@;'; + put 'put ''cmVuZGVyQW5kQWRqdXN0KCl9fSx7a2V5OiJleHBhbmRBbGwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YSgpLEk9W107VXIoQyxmdW5jdGlvbihqKXt5LmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKGopJiZJLnB1c2goail9KSx0aGlzLmV4''@;'; + put 'put ''cGFuZE11bHRpcGxlQ2hpbGRyZW4oSSksdGhpcy5yZW5kZXJBbmRBZGp1c3QoKX19LHtrZXk6InRyaW1Sb3dzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO3RoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7VXIoeSxmdW5jdGlvbihJKXtDLnBsdWdpbi5jb2xsYXBzZWRS''@;'; + put 'put ''b3dzTWFwLnNldFZhbHVlQXRJbmRleChJLCEwKX0pfSwhMCl9fSx7a2V5OiJ1bnRyaW1Sb3dzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO3RoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7VXIoeSxmdW5jdGlvbihJKXtDLnBsdWdpbi5jb2xsYXBzZWRSb3dzTWFwLnNl''@;'; + put 'put ''dFZhbHVlQXRJbmRleChJLCExKX0pfSwhMCl9fSx7a2V5OiJhcmVDaGlsZHJlbkNvbGxhcHNlZCIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPWlzTmFOKHkpP3k6dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KHkpLGo9ITA7cmV0dXJuIG51bGw9PT1JJiYoST17X19jaGls''@;'; + put 'put ''ZHJlbjp0aGlzLmRhdGFNYW5hZ2VyLmRhdGF9KSx0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKEkpJiZVcihJLl9fY2hpbGRyZW4sZnVuY3Rpb24odWUpe3ZhciBfZT1DLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KHVlKTtpZighQy5wbHVnaW4uY29sbGFwc2VkUm93c01hcC5nZXRWYWx1''@;'; + put 'put ''ZUF0SW5kZXgoX2UpKXJldHVybiBqPSExLCExfSksan19LHtrZXk6ImlzQW55UGFyZW50Q29sbGFwc2VkIix2YWx1ZTpmdW5jdGlvbih5KXtmb3IodmFyIEM9eTtudWxsIT09Qzspe0M9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dQYXJlbnQoQyk7dmFyIEk9dGhpcy5kYXRhTWFuYWdlci5nZXRS''@;'; + put 'put ''b3dJbmRleChDKTtpZih0aGlzLmNvbGxhcHNlZFJvd3MuaW5kZXhPZihJKT4tMSlyZXR1cm4hMH1yZXR1cm4hMX19LHtrZXk6InRvZ2dsZVN0YXRlIix2YWx1ZTpmdW5jdGlvbih5LEMpe2lmKCEoQy5jb2w+PTApKXt2YXIgST10aGlzLnRyYW5zbGF0ZVRyaW1tZWRSb3coQy5yb3cpO3RsKHku''@;'; + put 'put ''dGFyZ2V0LHpEZS5DU1NfQ0xBU1NFUy5idXR0b24pJiYodGhpcy5hcmVDaGlsZHJlbkNvbGxhcHNlZChJKT90aGlzLmV4cGFuZENoaWxkcmVuKEkpOnRoaXMuY29sbGFwc2VDaGlsZHJlbihJKSxfOCh5KSl9fX0se2tleToidHJhbnNsYXRlVHJpbW1lZFJvdyIsdmFsdWU6ZnVuY3Rpb24oeSl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuaG90LnRvUGh5c2ljYWxSb3coeSl9fSx7a2V5OiJ1bnRyYW5zbGF0ZVRyaW1tZWRSb3ciLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiB0aGlzLmhvdC50b1Zpc3VhbFJvdyh5KX19LHtrZXk6InJlbmRlckFuZEFkanVzdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5y''@;'; + put 'put ''ZW5kZXIoKSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpfX1dKSxofShHZ2UpO2NvbnN0IGs2dD1DNnQ7ZnVuY3Rpb24gWGdlKGQpe3JldHVybihYZ2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24o''@;'; + put 'put ''Zyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBZRGUoZCxnKXtmb3IodmFyIGg9''@;'; + put 'put ''MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBLZ2UoZCxnKXtyZXR1cm4o''@;'; + put 'put ''S2dlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gVDZ0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09WGdlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykp''@;'; + put 'put ''cmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBVRGUoZCl9ZnVuY3Rpb24gVURlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5j''@;'; + put 'put ''ZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBCbmUoZCl7cmV0dXJuKEJuZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbiho''@;'; + put 'put ''KXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBRRGU9bmV3IFdlYWtNYXAsRDZ0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBFNnQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3Vw''@;'; + put 'put ''ZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmS2dlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24geDZ0KGQpe3ZhciBnPWZ1bmN0aW9uIEk2dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFt''@;'; + put 'put ''KXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4g''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgeSx2PUJuZShkKTtpZihnKXt2YXIgQz1CbmUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFQ2dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkp''@;'; + put 'put ''e3ZhciBDO3JldHVybiBmdW5jdGlvbiBTNnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxDPWcuY2FsbCh0aGlzLHYseSksUURlLnNldChVRGUoQykse3Jvd19hYm92ZTpm''@;'; + put 'put ''dW5jdGlvbihqLHVlKXtDLmRhdGFNYW5hZ2VyLmFkZFNpYmxpbmcodWVbdWUubGVuZ3RoLTFdLnN0YXJ0LnJvdywiYWJvdmUiKX0scm93X2JlbG93OmZ1bmN0aW9uKGosdWUpe0MuZGF0YU1hbmFnZXIuYWRkU2libGluZyh1ZVt1ZS5sZW5ndGgtMV0uc3RhcnQucm93LCJiZWxvdyIpfX0pLEMu''@;'; + put 'put ''ZGF0YU1hbmFnZXI9Qy5wbHVnaW4uZGF0YU1hbmFnZXIsQ31yZXR1cm4gZnVuY3Rpb24gTTZ0KGQsZyxoKXtnJiZZRGUoZC5wcm90b3R5cGUsZyksaCYmWURlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImFwcGVuZE9w''@;'; + put 'put ''dGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1be2tleToiYWRkX2NoaWxkIixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShycGUpfSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciB1ZT1DLmRhdGFNYW5hZ2VyLnRyYW5zbGF0ZVRyaW1t''@;'; + put 'put ''ZWRSb3coQy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KClbMF0pLF9lPUMuZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdCh1ZSk7Qy5kYXRhTWFuYWdlci5hZGRDaGlsZChfZSl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7dmFyIHVlPUMuaG90LmdldFNlbGVjdGVkTGFzdCgpO3JldHVybiF1ZXx8dWVbMF08''@;'; + put 'put ''MHx8Qy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpfHxDLmhvdC5jb3VudFJvd3MoKT49Qy5ob3QuZ2V0U2V0dGluZ3MoKS5tYXhSb3dzfX0se2tleToiZGV0YWNoX2Zyb21fcGFyZW50IixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBo''@;'; + put 'put ''cmFzZShpcGUpfSxjYWxsYmFjazpmdW5jdGlvbigpe0MuZGF0YU1hbmFnZXIuZGV0YWNoRnJvbVBhcmVudChDLmhvdC5nZXRTZWxlY3RlZExhc3QoKSl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7dmFyIHVlPUMuaG90LmdldFNlbGVjdGVkTGFzdCgpLF9lPUMuZGF0YU1hbmFnZXIudHJhbnNsYXRl''@;'; + put 'put ''VHJpbW1lZFJvdyh1ZVswXSk7cmV0dXJuIUMuZGF0YU1hbmFnZXIuZ2V0Um93UGFyZW50KF9lKXx8IXVlfHx1ZVswXTwwfHxDLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl8fEMuaG90LmNvdW50Um93cygpPj1DLmhvdC5nZXRTZXR0aW5ncygpLm1heFJvd3N9fSx7''@;'; + put 'put ''bmFtZToiLS0tLS0tLS0tIn1dO3JldHVybiBpYSgwLHkuaXRlbXMubGVuZ3RoLTEsZnVuY3Rpb24oail7aWYoMD09PWopcmV0dXJuIFVyKEksZnVuY3Rpb24odWUsX2Upe3kuaXRlbXMuc3BsaWNlKGorX2UsMCx1ZSl9KSwhMX0pLHRoaXMubW9kaWZ5Um93SW5zZXJ0aW5nT3B0aW9ucyh5KX19''@;'; + put 'put ''LHtrZXk6Im1vZGlmeVJvd0luc2VydGluZ09wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPVFEZS5nZXQodGhpcyk7cmV0dXJuIGlhKDAseS5pdGVtcy5sZW5ndGgtMSxmdW5jdGlvbihJKXt2YXIgaj1DW3kuaXRlbXNbSV0ua2V5XTtudWxsIT1qJiYoeS5pdGVtc1tJXS5jYWxsYmFj''@;'; + put 'put ''az1qKX0pLHl9fV0pLGh9KEdnZSk7Y29uc3QgTDZ0PUQ2dDt2YXIgSkRlO2Z1bmN0aW9uIFhEZShkKXtyZXR1cm4gZnVuY3Rpb24gUDZ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuICRnZShkKX0oZCl8fGZ1bmN0aW9uIEI2dChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJv''@;'; + put 'put ''bCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBSNnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuICRnZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9T''@;'; + put 'put ''dHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMy''@;'; + put 'put ''KSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gJGdlKGQsZyl9fShkKXx8ZnVuY3Rpb24gTzZ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9u''@;'; + put 'put ''LWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gJGdlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJu''@;'; + put 'put ''IHZ9ZnVuY3Rpb24gS0RlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2Lmtl''@;'; + put 'put ''eSx2KX19dmFyIFY2dD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIEg2dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnBsdWdpbj1nLHRoaXMu''@;'; + put 'put ''aG90PWcuaG90LHRoaXMuZGF0YU1hbmFnZXI9Zy5kYXRhTWFuYWdlcix0aGlzLmNvbGxhcHNpbmdVST1nLmNvbGxhcHNpbmdVSX1yZXR1cm4gZnVuY3Rpb24gTjZ0KGQsZyxoKXtnJiZLRGUoZC5wcm90b3R5cGUsZyksaCYmS0RlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3Rv''@;'; + put 'put ''dHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6Im9uQmVmb3JlUm93TW92ZSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyl7dmFyIEk9dGhpcztpZih0aGlzLmRpc3BsYXlBUElDb21wYXRpYmlsaXR5V2FybmluZyh7cm93czpoLGZpbmFsSW5kZXg6dixkcm9wSW5kZXg6eSxtb3ZlUG9zc2li''@;'; + put 'put ''bGU6Q30pKXJldHVybiExO3RoaXMubW92ZWRUb0NvbGxhcHNlZD0hMTt2YXIgdWU9eT09PXRoaXMuaG90LmNvdW50Um93cygpLF9lPXVlP3RoaXMuaG90LmNvdW50U291cmNlUm93cygpOnRoaXMuZGF0YU1hbmFnZXIudHJhbnNsYXRlVHJpbW1lZFJvdyh5KSxCZT0hMCxOZT1oLm1hcChmdW5j''@;'; + put 'put ''dGlvbihmbil7aWYoIUJlKXJldHVybiExO3ZhciBMbj1JLmRhdGFNYW5hZ2VyLnRyYW5zbGF0ZVRyaW1tZWRSb3coZm4pO3JldHVybiBCZT1JLnNob3VsZEFsbG93TW92aW5nKExuLF9lKSxMbn0pLEtlPS0xPT09TmUuaW5kZXhPZihfZSk7aWYoIUJlfHwhS2UpcmV0dXJuITE7dmFyIGR0PXRo''@;'; + put 'put ''aXMuZ2V0QmFzZVBhcmVudChOZSksT3Q9dGhpcy5nZXRUYXJnZXRQYXJlbnQodWUsX2UpLCR0PWR0PT09T3Q7cmV0dXJuIHRoaXMubW92ZWRUb0NvbGxhcHNlZD10aGlzLmNvbGxhcHNpbmdVSS5hcmVDaGlsZHJlbkNvbGxhcHNlZChPdCksdGhpcy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93''@;'; + put 'put ''c1N0YXNoLnN0YXNoKCksdGhpcy5zaGlmdENvbGxhcHNpYmxlUGFyZW50c0xvY2F0aW9ucyhOZSxfZSwkdCksdGhpcy5tb3ZlUm93cyhOZSxfZSxPdCksdGhpcy5kYXRhTWFuYWdlci5yZXdyaXRlQ2FjaGUoKSx0aGlzLm1vdmVDZWxsc01ldGEoTmUsX2UpLHRoaXMuY29sbGFwc2luZ1VJLmNv''@;'; + put 'put ''bGxhcHNlZFJvd3NTdGFzaC5hcHBseVN0YXNoKCExKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJSb3dNb3ZlIixoLHYseSxDLEMmJnRoaXMuaXNSb3dPcmRlckNoYW5nZWQoaCx2KSksdGhpcy5ob3QucmVuZGVyKCksdGhpcy5zZWxlY3RDZWxscyhoLHkpLCExfX0se2tleToiZGlzcGxheUFQ''@;'; + put 'put ''SUNvbXBhdGliaWxpdHlXYXJuaW5nIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1oLnJvd3MseT1oLmZpbmFsSW5kZXgsQz1oLmRyb3BJbmRleCxJPWgubW92ZVBvc3NpYmxlLGo9ITE7cmV0dXJuIGExKEMpJiYobDEoQjIoSkRlfHwoSkRlPWZ1bmN0aW9uIEY2dChkLGcpe3JldHVybiBnfHwo''@;'; + put 'put ''Zz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9KFsiU2luY2UgdmVyc2lvbiA4LjAuMCBvZiB0aGUgSGFuZHNvbnRhYmxlIHRoZSAnbW92ZVJvd3MnIG1ldGhvZCBpc24ndCB1c2VkIGZv''@;'; + put 'put ''ciBtb3Zpbmcgcm93cyBcbiAgICAgIHdoZW4gdGhlIE5lc3RlZFJvd3MgcGx1Z2luIGlzIGVuYWJsZWQuIFBsZWFzZSB1c2UgdGhlICdkcmFnUm93cycgbWV0aG9kIGluc3RlYWQuIl0sWyJTaW5jZSB2ZXJzaW9uIDguMC4wIG9mIHRoZSBIYW5kc29udGFibGUgdGhlICdtb3ZlUm93cycgbWV0''@;'; + put 'put ''aG9kIGlzbid0IHVzZWQgZm9yIG1vdmluZyByb3dzXFx4MjBcbiAgICAgIHdoZW4gdGhlIE5lc3RlZFJvd3MgcGx1Z2luIGlzIGVuYWJsZWQuIFBsZWFzZSB1c2UgdGhlICdkcmFnUm93cycgbWV0aG9kIGluc3RlYWQuIl0pKSkpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclJvd01vdmUiLHYs''@;'; + put 'put ''eSxDLEksITEpLGo9ITApLGp9fSx7a2V5OiJzaG91bGRBbGxvd01vdmluZyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4hKHRoaXMuZGF0YU1hbmFnZXIuaXNQYXJlbnQoaCl8fHRoaXMuZGF0YU1hbmFnZXIuaXNSb3dIaWdoZXN0TGV2ZWwoaCl8fGg9PT12fHwwPT09dil9fSx7a2V5OiJn''@;'; + put 'put ''ZXRCYXNlUGFyZW50Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5kYXRhTWFuYWdlci5nZXRSb3dQYXJlbnQoaFswXSl9fSx7a2V5OiJnZXRUYXJnZXRQYXJlbnQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dQYXJlbnQoaD92LTE6dik7''@;'; + put 'put ''cmV0dXJuIG51bGw9PXkmJih5PXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93UGFyZW50KHYtMSkpLHl9fSx7a2V5OiJzaGlmdENvbGxhcHNpYmxlUGFyZW50c0xvY2F0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3l8fChNYXRoLm1heC5hcHBseShNYXRoLFhEZShoKSk8PXY/dGhpcy5jb2xs''@;'; + put 'put ''YXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLnNoaWZ0U3Rhc2goaFswXSx2LC0xKmgubGVuZ3RoKTp0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guc2hpZnRTdGFzaCh2LGhbMF0saC5sZW5ndGgpKX19LHtrZXk6Im1vdmVSb3dzIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7''@;'; + put 'put ''dmFyIEM9dGhpcyxJPXY9PT10aGlzLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KHkpK3RoaXMuZGF0YU1hbmFnZXIuY291bnRDaGlsZHJlbih5KSsxO3RoaXMuaG90LmJhdGNoUmVuZGVyKGZ1bmN0aW9uKCl7aC5mb3JFYWNoKGZ1bmN0aW9uKGope0MuZGF0YU1hbmFnZXIubW92ZVJvdyhqLHYs''@;'; + put 'put ''Qy5tb3ZlZFRvQ29sbGFwc2VkLEkpfSl9KX19LHtrZXk6Im1vdmVDZWxsc01ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIEMseT10aGlzLEk9W10saj1NYXRoLm1heC5hcHBseShNYXRoLFhEZShoKSk8djtoLmZvckVhY2goZnVuY3Rpb24odWUpe0kucHVzaCh5LmhvdC5nZXRDZWxsTWV0''@;'; + put 'put ''YUF0Um93KHVlKSl9KSx0aGlzLmhvdC5zcGxpY2VDZWxsc01ldGEoaFswXSxoLmxlbmd0aCksKEM9dGhpcy5ob3QpLnNwbGljZUNlbGxzTWV0YS5hcHBseShDLFt2LShqP0kubGVuZ3RoOjApLDBdLmNvbmNhdChJKSl9fSx7a2V5OiJzZWxlY3RDZWxscyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2''@;'; + put 'put ''YXIgdWUseT1oLmxlbmd0aCxDPTAsST0wLGo9bnVsbDtpZih0aGlzLm1vdmVkVG9Db2xsYXBzZWQpe3ZhciBfZTtfZT10aGlzLmRhdGFNYW5hZ2VyLnRyYW5zbGF0ZVRyaW1tZWRSb3coaFt5LTFdPHY/di15OnYpO3ZhciBCZT10aGlzLmRhdGFNYW5hZ2VyLmdldFJvd1BhcmVudChudWxsPT09''@;'; + put 'put ''X2U/dGhpcy5ob3QuY291bnRTb3VyY2VSb3dzKCktMTpfZS0xKSxOZT10aGlzLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KEJlKTtJPUM9dGhpcy5kYXRhTWFuYWdlci51bnRyYW5zbGF0ZVRyaW1tZWRSb3coTmUpfWVsc2UgaFt5LTFdPHY/Qz0oST12LTEpLXkrMTpJPShDPXYpK3ktMTtqPXRo''@;'; + put 'put ''aXMuaG90LnNlbGVjdGlvbix1ZT10aGlzLmhvdC5jb3VudENvbHMoKS0xLGouc2V0UmFuZ2VTdGFydCh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhDLDApKSxqLnNldFJhbmdlRW5kKHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEksdWUpLCEwKX19LHtrZXk6ImlzUm93T3JkZXJDaGFu''@;'; + put 'put ''Z2VkIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiBoLnNvbWUoZnVuY3Rpb24oeSxDKXtyZXR1cm4geS1DIT09dn0pfX1dKSxkfSgpO2Z1bmN0aW9uIHFnZShkKXtyZXR1cm4ocWdlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9y''@;'; + put 'put ''P2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gJERlKGQpe3Jl''@;'; + put 'put ''dHVybiBmdW5jdGlvbiBHNnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZW1lKGQpfShkKXx8ZnVuY3Rpb24gejZ0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJy''@;'; + put 'put ''YXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIFo2dChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gZW1lKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9''@;'; + put 'put ''ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBlbWUoZCxnKX19KGQpfHxmdW5jdGlvbiBq''@;'; + put 'put ''NnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1m''@;'; + put 'put ''dW5jdGlvbiBlbWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBxRGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2''@;'; + put 'put ''LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBwTSgpe3JldHVybiBwTT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJl''@;'; + put 'put ''ZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9VTZ0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9''@;'; + put 'put ''fSxwTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVTZ0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1ldihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiB0bWUoZCxnKXtyZXR1cm4odG1lPU9iamVjdC5zZXRQcm90''@;'; + put 'put ''b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gWDZ0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09cWdlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAw''@;'; + put 'put ''IT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBlTGUoZCl9ZnVuY3Rpb24gZUxlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24n''@;'; + put 'put ''dCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBldihkKXtyZXR1cm4oZXY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19f''@;'; + put 'put ''fHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgbm1lPSJuZXN0ZWRSb3dzIix0dj1uZXcgV2Vha01hcCxlOHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFE2dChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBl''@;'; + put 'put ''eHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwi''@;'; + put 'put ''cHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZ0bWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBKNnQoZCl7dmFyIGc9ZnVuY3Rpb24gSzZ0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0''@;'; + put 'put ''dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciB5LHY9ZXYoZCk7aWYoZyl7dmFyIEM9ZXYodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFg2dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTty''@;'; + put 'put ''ZXR1cm4gZnVuY3Rpb24gVzZ0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLmRhdGFNYW5hZ2VyPW51bGwseS5oZWFkZXJzVUk9bnVsbCx5''@;'; + put 'put ''LmNvbGxhcHNlZFJvd3NNYXA9bnVsbCx0di5zZXQoZUxlKHkpLHttb3ZlZFRvQ29sbGFwc2VkOiExLHNraXBSZW5kZXI6bnVsbCxza2lwQ29yZUFQSU1vZGlmaWVyczohMX0pLHl9cmV0dXJuIGZ1bmN0aW9uIFk2dChkLGcsaCl7ZyYmcURlKGQucHJvdG90eXBlLGcpLGgmJnFEZShkLGgpLE9i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW25tZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmNvbGxhcHNlZFJvd3NNYXA9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAoIm5lc3RlZFJvd3MiLG5ldyBleiksdGhpcy5kYXRhTWFuYWdlcj1uZXcgZTZ0KHRoaXMsdGhpcy5ob3QpLHRoaXMuY29sbGFwc2luZ1VJPW5ldyBr''@;'; + put 'put ''NnQodGhpcyx0aGlzLmhvdCksdGhpcy5oZWFkZXJzVUk9bmV3IHpEZSh0aGlzLHRoaXMuaG90KSx0aGlzLmNvbnRleHRNZW51VUk9bmV3IEw2dCh0aGlzLHRoaXMuaG90KSx0aGlzLnJvd01vdmVDb250cm9sbGVyPW5ldyBWNnQodGhpcyksdGhpcy5hZGRIb29rKCJhZnRlckluaXQiLGZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIHkub25BZnRlckluaXQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVWaWV3UmVuZGVyIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlVmlld1JlbmRlci5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVJvd0Rh''@;'; + put 'put ''dGEiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25Nb2RpZnlSb3dEYXRhLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5U291cmNlTGVuZ3RoIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW9kaWZ5U291cmNlTGVuZ3RoLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRk''@;'; + put 'put ''SG9vaygiYmVmb3JlRGF0YVNwbGljZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZURhdGFTcGxpY2UuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJmaWx0ZXJEYXRhIixmdW5jdGlvbigpe3JldHVybiB5Lm9uRmlsdGVyRGF0YS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0''@;'; + put 'put ''aGlzLmFkZEhvb2soImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucy5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Um93SGVhZGVyIixmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiB5Lm9uQWZ0ZXJHZXRSb3dIZWFkZXIuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVPbkNlbGxNb3VzZURvd24uYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJi''@;'; + put 'put ''ZWZvcmVSZW1vdmVSb3ciLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVSZW1vdmVSb3cuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlclJlbW92ZVJvdyIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyUmVtb3ZlUm93LmFwcGx5KHksYXJndW1lbnRzKX0pLHRo''@;'; + put 'put ''aXMuYWRkSG9vaygiYmVmb3JlQWRkQ2hpbGQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVBZGRDaGlsZC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyQWRkQ2hpbGQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckFkZENoaWxkLmFwcGx5KHksYXJndW1l''@;'; + put 'put ''bnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlRGV0YWNoQ2hpbGQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVEZXRhY2hDaGlsZC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyRGV0YWNoQ2hpbGQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckRldGFj''@;'; + put 'put ''aENoaWxkLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5Um93SGVhZGVyV2lkdGgiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25Nb2RpZnlSb3dIZWFkZXJXaWR0aC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ3JlYXRlUm93IixmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiB5Lm9uQWZ0ZXJDcmVhdGVSb3cuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVSb3dNb3ZlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlUm93TW92ZS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUxvYWREYXRh''@;'; + put 'put ''IixmdW5jdGlvbihDKXtyZXR1cm4geS5vbkJlZm9yZUxvYWREYXRhKEMpfSkscE0oZXYoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5yb3dJbmRleE1hcHBlci51bnJl''@;'; + put 'put ''Z2lzdGVyTWFwKCJuZXN0ZWRSb3dzIikscE0oZXYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpO3ZhciB5PXRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0''@;'; + put 'put ''YSgpO3RoaXMuZW5hYmxlUGx1Z2luKCksdGhpcy5kYXRhTWFuYWdlci51cGRhdGVXaXRoRGF0YSh5KSxwTShldihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6Im9uQmVmb3JlUm93TW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksail7cmV0dXJu''@;'; + put 'put ''IHRoaXMucm93TW92ZUNvbnRyb2xsZXIub25CZWZvcmVSb3dNb3ZlKHksQyxJLGopfX0se2tleToiZGlzYWJsZUNvcmVBUElNb2RpZmllcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dHYuZ2V0KHRoaXMpLnNraXBDb3JlQVBJTW9kaWZpZXJzPSEwfX0se2tleToiZW5hYmxlQ29yZUFQSU1vZGlmaWVy''@;'; + put 'put ''cyIsdmFsdWU6ZnVuY3Rpb24oKXt0di5nZXQodGhpcykuc2tpcENvcmVBUElNb2RpZmllcnM9ITF9fSx7a2V5OiJvbkJlZm9yZU9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3RoaXMuY29sbGFwc2luZ1VJLnRvZ2dsZVN0YXRlKHksQyxJKX19LHtrZXk6Im9uTW9kaWZ5''@;'; + put 'put ''Um93RGF0YSIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYoIXR2LmdldCh0aGlzKS5za2lwQ29yZUFQSU1vZGlmaWVycylyZXR1cm4gdGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KHkpfX0se2tleToib25Nb2RpZnlTb3VyY2VMZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXR2LmdldCh0''@;'; + put 'put ''aGlzKS5za2lwQ29yZUFQSU1vZGlmaWVycylyZXR1cm4gdGhpcy5kYXRhTWFuYWdlci5jb3VudEFsbFJvd3MoKX19LHtrZXk6Im9uQmVmb3JlRGF0YVNwbGljZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3JldHVybiEoIXR2LmdldCh0aGlzKS5za2lwQ29yZUFQSU1vZGlmaWVycyYmIXRoaXMu''@;'; + put 'put ''ZGF0YU1hbmFnZXIuaXNSb3dIaWdoZXN0TGV2ZWwoeSkmJih0aGlzLmRhdGFNYW5hZ2VyLnNwbGljZURhdGEoeSxDLEkpLDEpKX19LHtrZXk6Im9uRmlsdGVyRGF0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBqPXR2LmdldCh0aGlzKTtyZXR1cm4gdGhpcy5jb2xsYXBzaW5nVUkuY29s''@;'; + put 'put ''bGFwc2VkUm93c1N0YXNoLnN0YXNoKCksdGhpcy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLnRyaW1TdGFzaChJWzBdLEMpLHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zaGlmdFN0YXNoKElbMF0sbnVsbCwtMSpDKSx0aGlzLmRhdGFNYW5hZ2VyLmZpbHRl''@;'; + put 'put ''ckRhdGEoeSxDLEkpLGouc2tpcFJlbmRlcj0hMCx0aGlzLmRhdGFNYW5hZ2VyLmdldERhdGEoKS5zbGljZSgpfX0se2tleToib25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiB0aGlzLmNvbnRleHRNZW51VUkuYXBwZW5kT3B0aW9ucyh5''@;'; + put 'put ''KX19LHtrZXk6Im9uQWZ0ZXJHZXRSb3dIZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dGhpcy5oZWFkZXJzVUkuYXBwZW5kTGV2ZWxJbmRpY2F0b3JzKHksQyl9fSx7a2V5OiJvbk1vZGlmeVJvd0hlYWRlcldpZHRoIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gdGhpcy5oZWFkZXJzVUku''@;'; + put 'put ''cm93SGVhZGVyV2lkdGhDYWNoZXx8eX19LHtrZXk6Im9uQWZ0ZXJSZW1vdmVSb3ciLHZhbHVlOmZ1bmN0aW9uKHksQyxJLGope3ZhciB1ZT10aGlzO2lmKGohPT10aGlzLnBsdWdpbk5hbWUpe3ZhciBfZT10di5nZXQodGhpcyk7c2V0VGltZW91dChmdW5jdGlvbigpe19lLnNraXBSZW5kZXI9''@;'; + put 'put ''bnVsbCx1ZS5oZWFkZXJzVUkudXBkYXRlUm93SGVhZGVyV2lkdGgoKSx1ZS5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLmFwcGx5U3Rhc2goKX0sMCl9fX0se2tleToib25CZWZvcmVSZW1vdmVSb3ciLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgaj10aGlzLHVlPUFycmF5LmZy''@;'; + put 'put ''b20oSS5yZWR1Y2UoZnVuY3Rpb24oX2UsQmUpe2lmKGouZGF0YU1hbmFnZXIuaXNQYXJlbnQoQmUpKXt2YXIgTmU9ai5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KEJlKS5fX2NoaWxkcmVuO3JldHVybiBfZS5hZGQoQmUpLEFycmF5LmlzQXJyYXkoTmUpJiZOZS5mb3JFYWNoKGZ1bmN0aW9u''@;'; + put 'put ''KEtlKXtyZXR1cm4gX2UuYWRkKGouZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoS2UpKX0pLF9lfXJldHVybiBfZS5hZGQoQmUpfSxuZXcgU2V0KSk7SS5sZW5ndGg9MCxJLnB1c2guYXBwbHkoSSwkRGUodWUpKX19LHtrZXk6Im9uQmVmb3JlQWRkQ2hpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhp''@;'; + put 'put ''cy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLnN0YXNoKCl9fSx7a2V5OiJvbkFmdGVyQWRkQ2hpbGQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dGhpcy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLnNoaWZ0U3Rhc2godGhpcy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleChD''@;'; + put 'put ''KSksdGhpcy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLmFwcGx5U3Rhc2goKSx0aGlzLmhlYWRlcnNVSS51cGRhdGVSb3dIZWFkZXJXaWR0aCgpfX0se2tleToib25CZWZvcmVEZXRhY2hDaGlsZCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRS''@;'; + put 'put ''b3dzU3Rhc2guc3Rhc2goKX19LHtrZXk6Im9uQWZ0ZXJEZXRhY2hDaGlsZCIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3RoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zaGlmdFN0YXNoKEksbnVsbCwtMSksdGhpcy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLmFw''@;'; + put 'put ''cGx5U3Rhc2goKSx0aGlzLmhlYWRlcnNVSS51cGRhdGVSb3dIZWFkZXJXaWR0aCgpfX0se2tleToib25BZnRlckNyZWF0ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRhdGFNYW5hZ2VyLnJld3JpdGVDYWNoZSgpfX0se2tleToib25BZnRlckluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IHk9TWF0aC5tYXguYXBwbHkoTWF0aCwkRGUodGhpcy5kYXRhTWFuYWdlci5jYWNoZS5sZXZlbHMpKTt5PjAmJnRoaXMuaGVhZGVyc1VJLnVwZGF0ZVJvd0hlYWRlcldpZHRoKHkpfX0se2tleToib25CZWZvcmVWaWV3UmVuZGVyIix2YWx1ZTpmdW5jdGlvbih5LEMpe3R2LmdldCh0aGlzKS5z''@;'; + put 'put ''a2lwUmVuZGVyJiYoQy5za2lwUmVuZGVyPSEwKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7cE0oZXYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToib25CZWZvcmVMb2FkRGF0YSIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYoIUtDZSh5KSly''@;'; + put 'put ''ZXR1cm4gYjNlKCJUaGUgTmVzdGVkIFJvd3MgcGx1Z2luIHJlcXVpcmVzIGFuIEFycmF5IG9mIE9iamVjdHMgYXMgYSBkYXRhc2V0IHRvIGJlIHByb3ZpZGVkLiBUaGUgcGx1Z2luIGhhcyBiZWVuIGRpc2FibGVkLiIpLHRoaXMuaG90LmdldFNldHRpbmdzKClbbm1lXT0hMSx2b2lkIHRoaXMu''@;'; + put 'put ''ZGlzYWJsZVBsdWdpbigpO3RoaXMuZGF0YU1hbmFnZXIuc2V0RGF0YSh5KSx0aGlzLmRhdGFNYW5hZ2VyLnJld3JpdGVDYWNoZSgpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbm1lfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gMzAwfX1dKSxofShZcyk7ZnVuY3Rpb24gdDh0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gdExlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3Zh''@;'; + put 'put ''ciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIHI4dD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9YXJndW1l''@;'; + put 'put ''bnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOndpbmRvdzt0OHQodGhpcyxkKSx0aGlzLnJvb3RXaW5kb3c9aCx0aGlzLnByZWZpeD1nLHRoaXMuc2F2ZWRLZXlzPVtdLHRoaXMubG9hZFNhdmVkS2V5cygpfXJldHVybiBmdW5jdGlvbiBuOHQoZCxnLGgp''@;'; + put 'put ''e2cmJnRMZShkLnByb3RvdHlwZSxnKSxoJiZ0TGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToic2F2ZVZhbHVlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMucm9vdFdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgi''@;'; + put 'put ''Ii5jb25jYXQodGhpcy5wcmVmaXgsIl8iKS5jb25jYXQoaCksSlNPTi5zdHJpbmdpZnkodikpLC0xPT09dGhpcy5zYXZlZEtleXMuaW5kZXhPZihoKSYmKHRoaXMuc2F2ZWRLZXlzLnB1c2goaCksdGhpcy5zYXZlU2F2ZWRLZXlzKCkpfX0se2tleToibG9hZFZhbHVlIix2YWx1ZTpmdW5jdGlv''@;'; + put 'put ''bihoLHYpe3ZhciB5PXZvaWQgMD09PWg/djpoLEM9dGhpcy5yb290V2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKCIiLmNvbmNhdCh0aGlzLnByZWZpeCwiXyIpLmNvbmNhdCh5KSk7cmV0dXJuIG51bGw9PT1DP3ZvaWQgMDpKU09OLnBhcnNlKEMpfX0se2tleToicmVzZXQiLHZhbHVlOmZ1''@;'; + put 'put ''bmN0aW9uKGgpe3RoaXMucm9vdFdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiIi5jb25jYXQodGhpcy5wcmVmaXgsIl8iKS5jb25jYXQoaCkpfX0se2tleToicmVzZXRBbGwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcztVcih0aGlzLnNhdmVkS2V5cyxmdW5jdGlvbih2LHkp''@;'; + put 'put ''e2gucm9vdFdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiIi5jb25jYXQoaC5wcmVmaXgsIl8iKS5jb25jYXQoaC5zYXZlZEtleXNbeV0pKX0pLHRoaXMuY2xlYXJTYXZlZEtleXMoKX19LHtrZXk6ImxvYWRTYXZlZEtleXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5yb290''@;'; + put 'put ''V2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKCIiLmNvbmNhdCh0aGlzLnByZWZpeCwiX19wZXJzaXN0ZW50U3RhdGVLZXlzIikpLHY9InN0cmluZyI9PXR5cGVvZiBoP0pTT04ucGFyc2UoaCk6dm9pZCAwO3RoaXMuc2F2ZWRLZXlzPXZ8fFtdfX0se2tleToic2F2ZVNhdmVkS2V5cyIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXt0aGlzLnJvb3RXaW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oIiIuY29uY2F0KHRoaXMucHJlZml4LCJfX3BlcnNpc3RlbnRTdGF0ZUtleXMiKSxKU09OLnN0cmluZ2lmeSh0aGlzLnNhdmVkS2V5cykpfX0se2tleToiY2xlYXJTYXZlZEtleXMiLHZhbHVlOmZ1bmN0''@;'; + put 'put ''aW9uKCl7dGhpcy5zYXZlZEtleXMubGVuZ3RoPTAsdGhpcy5zYXZlU2F2ZWRLZXlzKCl9fV0pLGR9KCk7Y29uc3QgaTh0PXI4dDtmdW5jdGlvbiBybWUoZCl7cmV0dXJuKHJtZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5j''@;'; + put 'put ''dGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIG5MZShkLGcpe2Zvcih2''@;'; + put 'put ''YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGdNKCl7cmV0dXJu''@;'; + put 'put ''IGdNPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1sOHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNh''@;'; + put 'put ''bGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGdNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBsOHQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPW52KGQpKTspO3JldHVybiBkfWZ1bmN0aW9u''@;'; + put 'put ''IGltZShkLGcpe3JldHVybihpbWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBjOHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1ybWUoZyl8fCJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIGY4dChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5l''@;'; + put 'put ''dyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIG52KGQpe3JldHVybihudj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQo''@;'; + put 'put ''KTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJwZXJzaXN0ZW50U3RhdGVTYXZlIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoInBlcnNpc3RlbnRTdGF0ZUxvYWQiKSx6''@;'; + put 'put ''by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigicGVyc2lzdGVudFN0YXRlUmVzZXQiKTt2YXIgckxlPSJwZXJzaXN0ZW50U3RhdGUiLHA4dD1mdW5jdGlvbihkKXshZnVuY3Rpb24gczh0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''IlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9w''@;'; + put 'put ''ZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmltZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHU4dChkKXt2YXIgZz1mdW5jdGlvbiBoOHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Qu''@;'; + put 'put ''c2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1udihkKTtpZihnKXt2YXIgQz1udih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYzh0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYp''@;'; + put 'put ''e3ZhciB5O3JldHVybiBmdW5jdGlvbiBvOHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuc3RvcmFnZT12b2lkIDAseX1yZXR1cm4gZnVu''@;'; + put 'put ''Y3Rpb24gYTh0KGQsZyxoKXtnJiZuTGUoZC5wcm90b3R5cGUsZyksaCYmbkxlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRp''@;'; + put 'put ''bmdzKClbckxlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuc3RvcmFnZXx8KHRoaXMuc3RvcmFnZT1uZXcgaTh0KHRoaXMuaG90LnJvb3RFbGVtZW50LmlkLHRoaXMuaG90LnJvb3RXaW5kb3cpKSx0aGlzLmFk''@;'; + put 'put ''ZEhvb2soInBlcnNpc3RlbnRTdGF0ZVNhdmUiLGZ1bmN0aW9uKEMsSSl7cmV0dXJuIHkuc2F2ZVZhbHVlKEMsSSl9KSx0aGlzLmFkZEhvb2soInBlcnNpc3RlbnRTdGF0ZUxvYWQiLGZ1bmN0aW9uKEMsSSl7cmV0dXJuIHkubG9hZFZhbHVlKEMsSSl9KSx0aGlzLmFkZEhvb2soInBlcnNpc3Rl''@;'; + put 'put ''bnRTdGF0ZVJlc2V0IixmdW5jdGlvbigpe3JldHVybiB5LnJlc2V0VmFsdWUoKX0pLGdNKG52KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zdG9yYWdlPXZvaWQgMCxnTShu''@;'; + put 'put ''dihoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxnTShudihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhp''@;'; + put 'put ''cykuY2FsbCh0aGlzKX19LHtrZXk6ImxvYWRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtDLnZhbHVlPXRoaXMuc3RvcmFnZS5sb2FkVmFsdWUoeSl9fSx7a2V5OiJzYXZlVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dGhpcy5zdG9yYWdlLnNhdmVWYWx1ZSh5LEMpfX0se2tleToicmVz''@;'; + put 'put ''ZXRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dm9pZCAwPT09eT90aGlzLnN0b3JhZ2UucmVzZXRBbGwoKTp0aGlzLnN0b3JhZ2UucmVzZXQoeSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe2dNKG52KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19''@;'; + put 'put ''XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHJMZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDB9fV0pLGh9KFlzKTtmdW5jdGlvbiBvbWUoZCl7cmV0dXJuKG9tZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3lt''@;'; + put 'put ''Ym9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBl''@;'; + put 'put ''b2YgZ30pKGQpfWZ1bmN0aW9uIGFtZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIGlMZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2''@;'; + put 'put ''YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIG1NKCl7cmV0dXJuIG1NPSJ1bmRlZmluZWQiIT10eXBlb2Yg''@;'; + put 'put ''UmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1fOHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6''@;'; + put 'put ''dik6Qy52YWx1ZX19LG1NLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBfOHQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPXJ2KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGxtZShkLGcpe3JldHVybihsbWU9T2Jq''@;'; + put 'put ''ZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBTOHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1vbWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4g''@;'; + put 'put ''ZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIE04dChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBo''@;'; + put 'put ''YXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIHJ2KGQpe3JldHVybihydj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5f''@;'; + put 'put ''X3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBzbWU9InNlYXJjaCIsSTh0PWZ1bmN0aW9uKGcsaCx2LHksQyl7Zy5nZXRDZWxsTWV0YShoLHYpLmlzU2VhcmNoUmVzdWx0PUN9LEQ4dD1mdW5jdGlvbihnLGgsdil7cmV0dXJuIShhMShnKXx8bnVsbD09PWd8fCFn''@;'; + put 'put ''LnRvTG9jYWxlTG93ZXJDYXNlfHwwPT09Zy5sZW5ndGh8fGExKGgpfHxudWxsPT09aCkmJi0xIT09aC50b1N0cmluZygpLnRvTG9jYWxlTG93ZXJDYXNlKHYubG9jYWxlKS5pbmRleE9mKGcudG9Mb2NhbGVMb3dlckNhc2Uodi5sb2NhbGUpKX0sTDh0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBD''@;'; + put 'put ''OHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1''@;'; + put 'put ''Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmbG1lKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gazh0KGQpe3ZhciBnPWZ1bmN0aW9uIEU4dCgpe2lmKCJ1bmRl''@;'; + put 'put ''ZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNv''@;'; + put 'put ''bnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PXJ2KGQpO2lmKGcpe3ZhciBDPXJ2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5''@;'; + put 'put ''PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBTOHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIHc4dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5j''@;'; + put 'put ''dGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5jYWxsYmFjaz1JOHQseS5xdWVyeU1ldGhvZD1EOHQseS5zZWFyY2hSZXN1bHRDbGFzcz0iaHRTZWFyY2hSZXN1bHQiLHl9cmV0dXJuIGZ1bmN0aW9uIGI4dChkLGcsaCl7ZyYmaUxlKGQucHJvdG90eXBlLGcpLGgmJmlMZShkLGgp''@;'; + put 'put ''LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaG90LmdldFNldHRpbmdzKClbc21lXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgeT10aGlzO2lmKCF0aGlzLmVuYWJsZWQpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKClbc21lXTt0aGlzLnVwZGF0ZVBsdWdpblNldHRpbmdzKEMpLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVuZGVyZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVSZW5kZXJlci5hcHBseSh5''@;'; + put 'put ''LGFyZ3VtZW50cyl9KSxtTShydihoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1mdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlUmVuZGVyZXIuYXBwbHkoeSxh''@;'; + put 'put ''cmd1bWVudHMpfTt0aGlzLmhvdC5hZGRIb29rKCJiZWZvcmVSZW5kZXJlciIsQyksdGhpcy5ob3QuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsZnVuY3Rpb24oKXt5LmhvdC5yZW1vdmVIb29rKCJiZWZvcmVSZW5kZXJlciIsQyl9KSxtTShydihoLnByb3RvdHlwZSksImRpc2FibGVQ''@;'; + put 'put ''bHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxtTShydihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6InF1''@;'; + put 'put ''ZXJ5Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMuZ2V0Q2FsbGJhY2soKSxqPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1sy''@;'; + put 'put ''XTp0aGlzLmdldFF1ZXJ5TWV0aG9kKCksdWU9dGhpcy5ob3QuY291bnRSb3dzKCksX2U9dGhpcy5ob3QuY291bnRDb2xzKCksQmU9W10sTmU9dGhpcy5ob3Q7cmV0dXJuIGlhKDAsdWUtMSxmdW5jdGlvbihLZSl7aWEoMCxfZS0xLGZ1bmN0aW9uKGR0KXt2YXIgT3Q9Qy5ob3QuZ2V0RGF0YUF0''@;'; + put 'put ''Q2VsbChLZSxkdCksJHQ9Qy5ob3QuZ2V0Q2VsbE1ldGEoS2UsZHQpLGZuPSR0LnNlYXJjaC5jYWxsYmFja3x8SSxpcj0oJHQuc2VhcmNoLnF1ZXJ5TWV0aG9kfHxqKSh5LE90LCR0KTtpciYmQmUucHVzaCh7cm93OktlLGNvbDpkdCxkYXRhOk90fSksZm4mJmZuKE5lLEtlLGR0LE90LGlyKX0p''@;'; + put 'put ''fSksQmV9fSx7a2V5OiJnZXRDYWxsYmFjayIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYWxsYmFja319LHtrZXk6InNldENhbGxiYWNrIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLmNhbGxiYWNrPXl9fSx7a2V5OiJnZXRRdWVyeU1ldGhvZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5xdWVyeU1ldGhvZH19LHtrZXk6InNldFF1ZXJ5TWV0aG9kIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLnF1ZXJ5TWV0aG9kPXl9fSx7a2V5OiJnZXRTZWFyY2hSZXN1bHRDbGFzcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWFyY2hSZXN1bHRDbGFzc319LHtrZXk6''@;'; + put 'put ''InNldFNlYXJjaFJlc3VsdENsYXNzIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLnNlYXJjaFJlc3VsdENsYXNzPXl9fSx7a2V5OiJ1cGRhdGVQbHVnaW5TZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oeSl7eGwoeSkmJih5LnNlYXJjaFJlc3VsdENsYXNzJiZ0aGlzLnNldFNlYXJjaFJlc3VsdENs''@;'; + put 'put ''YXNzKHkuc2VhcmNoUmVzdWx0Q2xhc3MpLHkucXVlcnlNZXRob2QmJnRoaXMuc2V0UXVlcnlNZXRob2QoeS5xdWVyeU1ldGhvZCkseS5jYWxsYmFjayYmdGhpcy5zZXRDYWxsYmFjayh5LmNhbGxiYWNrKSl9fSx7a2V5OiJvbkJlZm9yZVJlbmRlcmVyIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxq''@;'; + put 'put ''LHVlLF9lKXt2YXIgS2UsQmU9X2UuY2xhc3NOYW1lfHxbXSxOZT1bXTsic3RyaW5nIj09dHlwZW9mIEJlP05lPUJlLnNwbGl0KCIgIik6KEtlPU5lKS5wdXNoLmFwcGx5KEtlLGZ1bmN0aW9uIGc4dChkKXtyZXR1cm4gZnVuY3Rpb24geTh0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJu''@;'; + put 'put ''IGFtZShkKX0oZCl8fGZ1bmN0aW9uIEE4dChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiB2OHQoZCxnKXtpZihkKXtpZigic3Ry''@;'; + put 'put ''aW5nIj09dHlwZW9mIGQpcmV0dXJuIGFtZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJu''@;'; + put 'put ''IEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gYW1lKGQsZyl9fShkKXx8ZnVuY3Rpb24gbTh0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNw''@;'; + put 'put ''cmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KEJlKSksdGhpcy5pc0VuYWJsZWQoKSYmX2UuaXNTZWFyY2hSZXN1bHQ/TmUuaW5j''@;'; + put 'put ''bHVkZXModGhpcy5zZWFyY2hSZXN1bHRDbGFzcyl8fE5lLnB1c2goIiIuY29uY2F0KHRoaXMuc2VhcmNoUmVzdWx0Q2xhc3MpKTpOZS5pbmNsdWRlcyh0aGlzLnNlYXJjaFJlc3VsdENsYXNzKSYmTmUuc3BsaWNlKE5lLmluZGV4T2YodGhpcy5zZWFyY2hSZXN1bHRDbGFzcyksMSksX2UuY2xh''@;'; + put 'put ''c3NOYW1lPU5lLmpvaW4oIiAiKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7bU0ocnYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc21lfX0se2tleToiUExVR0lOX1BS''@;'; + put 'put ''SU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTkwfX1dKSxofShZcyk7ZnVuY3Rpb24gdW1lKGQpe3JldHVybih1bWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5j''@;'; + put 'put ''dGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBvTGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9''@;'; + put 'put ''Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBuUigpe3JldHVybiBuUj0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxl''@;'; + put 'put ''Y3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9Qjh0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMu''@;'; + put 'put ''dmFsdWV9fSxuUi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQjh0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1RdyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBjbWUoZCxnKXtyZXR1cm4oY21lPU9iamVjdC5z''@;'; + put 'put ''ZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gSDh0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09dW1lKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYo''@;'; + put 'put ''dm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBOOHQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0''@;'; + put 'put ''IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBRdyhkKXtyZXR1cm4oUXc9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90''@;'; + put 'put ''b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgejh0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBQOHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxs''@;'; + put 'put ''IG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYm''@;'; + put 'put ''Y21lKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gRjh0KGQpe3ZhciBnPWZ1bmN0aW9uIFY4dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQ''@;'; + put 'put ''cm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVF3KGQpO2lmKGcpe3Zh''@;'; + put 'put ''ciBDPVF3KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBIOHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIE84dChkLGcpe2lmKCEo''@;'; + put 'put ''ZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5zY3JvbGxiYXJzPVtdLHkuY2xvbmVzPVtdLHkubG9ja2VkQ29sbGVjdGlvbj0hMSx5LmZyZWV6ZU92ZXJsYXlz''@;'; + put 'put ''PSExLHl9cmV0dXJuIGZ1bmN0aW9uIFI4dChkLGcsaCl7ZyYmb0xlKGQucHJvdG90eXBlLGcpLGgmJm9MZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHpo''@;'; + put 'put ''ZSgpfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5hZGRIb29rKCJhZnRlclZpZXdSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlclZpZXdSZW5kZXIoKX0pLHRoaXMucmVnaXN0ZXJFdmVudHMoKSxu''@;'; + put 'put ''UihRdyhoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5sb2NrZWRDb2xsZWN0aW9uPSExLG5SKFF3KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMp''@;'; + put 'put ''fX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXtuUihRdyhoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJyZWdpc3RlckV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuYWRkSG9vaygiYmVmb3Jl''@;'; + put 'put ''VG91Y2hTY3JvbGwiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVUb3VjaFNjcm9sbCgpfSksdGhpcy5hZGRIb29rKCJhZnRlck1vbWVudHVtU2Nyb2xsIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJNb21lbnR1bVNjcm9sbCgpfSl9fSx7a2V5OiJvbkFmdGVyVmlld1JlbmRlciIs''@;'; + put 'put ''dmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy5sb2NrZWRDb2xsZWN0aW9uKXt2YXIgeT10aGlzLmhvdC52aWV3Ll93dC53dE92ZXJsYXlzLEM9eS50b3BPdmVybGF5LEk9eS5ib3R0b21PdmVybGF5LGo9eS5pbmxpbmVTdGFydE92ZXJsYXksdWU9eS50b3BJbmxpbmVTdGFydENvcm5lck92ZXJs''@;'; + put 'put ''YXksX2U9eS5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXk7dGhpcy5sb2NrZWRDb2xsZWN0aW9uPSEwLHRoaXMuc2Nyb2xsYmFycy5sZW5ndGg9MCx0aGlzLnNjcm9sbGJhcnMucHVzaChDKSxJLmNsb25lJiZ0aGlzLnNjcm9sbGJhcnMucHVzaChJKSx0aGlzLnNjcm9sbGJhcnMucHVz''@;'; + put 'put ''aChqKSx1ZSYmdGhpcy5zY3JvbGxiYXJzLnB1c2godWUpLF9lJiZfZS5jbG9uZSYmdGhpcy5zY3JvbGxiYXJzLnB1c2goX2UpLHRoaXMuY2xvbmVzPVtdLEMubmVlZEZ1bGxSZW5kZXImJnRoaXMuY2xvbmVzLnB1c2goQy5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKSxJLm5lZWRG''@;'; + put 'put ''dWxsUmVuZGVyJiZ0aGlzLmNsb25lcy5wdXNoKEkuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSksai5uZWVkRnVsbFJlbmRlciYmdGhpcy5jbG9uZXMucHVzaChqLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUpLHVlJiZ0aGlzLmNsb25lcy5wdXNoKHVlLmNsb25lLnd0''@;'; + put 'put ''VGFibGUuaG9sZGVyLnBhcmVudE5vZGUpLF9lJiZfZS5jbG9uZSYmdGhpcy5jbG9uZXMucHVzaChfZS5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKX19fSx7a2V5OiJvbkJlZm9yZVRvdWNoU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZnJlZXplT3ZlcmxheXM9ITAsVXIo''@;'; + put 'put ''dGhpcy5jbG9uZXMsZnVuY3Rpb24oeSl7TzAoeSwiaGlkZS10d2VlbiIpfSl9fSx7a2V5OiJvbkFmdGVyTW9tZW50dW1TY3JvbGwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmZyZWV6ZU92ZXJsYXlzPSExLFVyKHRoaXMuY2xvbmVzLGZ1bmN0aW9uKEMpe3BsKEMsImhpZGUt''@;'; + put 'put ''dHdlZW4iKSxPMChDLCJzaG93LXR3ZWVuIil9KSx0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KGZ1bmN0aW9uKCl7VXIoeS5jbG9uZXMsZnVuY3Rpb24oQyl7cGwoQywic2hvdy10d2VlbiIpfSl9LDQwMCksVXIodGhpcy5zY3JvbGxiYXJzLGZ1bmN0aW9uKEMpe0MucmVmcmVzaCgpLEMucmVz''@;'; + put 'put ''ZXRGaXhlZFBvc2l0aW9uKCl9KSx0aGlzLmhvdC52aWV3Ll93dC53dE92ZXJsYXlzLnN5bmNTY3JvbGxXaXRoTWFzdGVyKCl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiJ0b3VjaFNjcm9sbCJ9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiAyMDB9fSx7a2V5OiJTRVRUSU5HX0tFWVMiLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX1dKSxofShZcyk7ZnVuY3Rpb24gZm1lKGQpe3JldHVybihmbWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rp''@;'; + put 'put ''b24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBhTGUoZCxnKXtmb3IodmFy''@;'; + put 'put ''IGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB2TSgpe3JldHVybiB2''@;'; + put 'put ''TT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9WTh0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxs''@;'; + put 'put ''KGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSx2TS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWTh0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1pdihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBo''@;'; + put 'put ''bWUoZCxnKXtyZXR1cm4oaG1lPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gSjh0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09Zm1lKGcpfHwiZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBYOHQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcg''@;'; + put 'put ''UmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBpdihkKXtyZXR1cm4oaXY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6''@;'; + put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgUG5lPSJ0cmltUm93cyIscTh0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBVOHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVF''@;'; + put 'put ''cnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmaG1lKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gUTh0KGQpe3ZhciBnPWZ1bmN0aW9uIEs4dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0''@;'; + put 'put ''cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0o''@;'; + put 'put ''KTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWl2KGQpO2lmKGcpe3ZhciBDPWl2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBKOHQodGhpcyx5KX19KGgpO2Z1bmN0aW9u''@;'; + put 'put ''IGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIEc4dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS50cmltbWVkUm93c01hcD1udWxsLHl9''@;'; + put 'put ''cmV0dXJuIGZ1bmN0aW9uIFc4dChkLGcsaCl7ZyYmYUxlKGQucHJvdG90eXBlLGcpLGgmJmFMZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhv''@;'; + put 'put ''dC5nZXRTZXR0aW5ncygpW1BuZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLnRyaW1tZWRSb3dzTWFwPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCJ0cmltUm93cyIsbmV3IGV6KSx0aGlz''@;'; + put 'put ''LnRyaW1tZWRSb3dzTWFwLmFkZExvY2FsSG9vaygiaW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1hcEluaXQoKX0pLHZNKGl2KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpKX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIg''@;'; + put 'put ''eT10aGlzLEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtQbmVdO0FycmF5LmlzQXJyYXkoQykmJnRoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7eS50cmltbWVkUm93c01hcC5jbGVhcigpLFVyKEMsZnVuY3Rpb24oSSl7eS50cmltbWVkUm93c01hcC5zZXRWYWx1ZUF0SW5kZXgo''@;'; + put 'put ''SSwhMCl9KX0sITApLHZNKGl2KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKCJ0cmltUm93cyIpLHZNKGl2KGgucHJv''@;'; + put 'put ''dG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImdldFRyaW1tZWRSb3dzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRyaW1tZWRSb3dzTWFwLmdldFRyaW1tZWRJbmRleGVzKCl9fSx7a2V5OiJ0cmltUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7''@;'; + put 'put ''dmFyIEM9dGhpcyxJPXRoaXMuZ2V0VHJpbW1lZFJvd3MoKSxqPXRoaXMuaXNWYWxpZENvbmZpZyh5KSx1ZT1JO2omJih1ZT1BcnJheS5mcm9tKG5ldyBTZXQoSS5jb25jYXQoeSkpKSksITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlVHJpbVJvdyIsSSx1ZSxqKSYmKGomJnRoaXMuaG90''@;'; + put 'put ''LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7VXIoeSxmdW5jdGlvbihCZSl7Qy50cmltbWVkUm93c01hcC5zZXRWYWx1ZUF0SW5kZXgoQmUsITApfSl9LCEwKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJUcmltUm93IixJLHVlLGosaiYmdWUubGVuZ3RoPkkubGVuZ3RoKSl9fSx7a2V5OiJ0''@;'; + put 'put ''cmltUm93Iix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3RoaXMudHJpbVJvd3MoQyl9fSx7a2V5OiJ1bnRyaW1Sb3dzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmdl''@;'; + put 'put ''dFRyaW1tZWRSb3dzKCksST10aGlzLmlzVmFsaWRDb25maWcoeSksaj1DLHVlPXRoaXMudHJpbW1lZFJvd3NNYXAuZ2V0VmFsdWVzKCkuc2xpY2UoKSxfZT15Lmxlbmd0aD4wO0kmJl9lJiYoVXIoeSxmdW5jdGlvbihOZSl7dWVbTmVdPSExfSksaj1TdSh1ZSxmdW5jdGlvbihOZSxLZSxkdCl7''@;'; + put 'put ''cmV0dXJuIEtlJiZOZS5wdXNoKGR0KSxOZX0sW10pKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVVbnRyaW1Sb3ciLEMsaixJJiZfZSkmJihJJiZfZSYmdGhpcy50cmltbWVkUm93c01hcC5zZXRWYWx1ZXModWUpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclVudHJpbVJvdyIsQyxq''@;'; + put 'put ''LEkmJl9lLEkmJmoubGVuZ3RoPEMubGVuZ3RoKSl9fSx7a2V5OiJ1bnRyaW1Sb3ciLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoeSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07dGhpcy51bnRyaW1Sb3dzKEMpfX0se2tleToi''@;'; + put 'put ''aXNUcmltbWVkIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gdGhpcy50cmltbWVkUm93c01hcC5nZXRWYWx1ZUF0SW5kZXgoeSl8fCExfX0se2tleToidW50cmltQWxsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudW50cmltUm93cyh0aGlzLmdldFRyaW1tZWRSb3dzKCkpfX0se2tleToiaXNW''@;'; + put 'put ''YWxpZENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5ob3QuY291bnRTb3VyY2VSb3dzKCk7cmV0dXJuIHkuZXZlcnkoZnVuY3Rpb24oSSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoSSkmJkk+PTAmJkk8Q30pfX0se2tleToib25NYXBJbml0Iix2YWx1ZTpmdW5jdGlvbigp''@;'; + put 'put ''e3ZhciB5PXRoaXMsQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW1BuZV07QXJyYXkuaXNBcnJheShDKSYmdGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXtVcihDLGZ1bmN0aW9uKEkpe3kudHJpbW1lZFJvd3NNYXAuc2V0VmFsdWVBdEluZGV4KEksITApfSl9LCEwKX19LHtrZXk6''@;'; + put 'put ''ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dk0oaXYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUG5lfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gMzMwfX1dKSxofShZcyk7ZnVuY3Rpb24gZG1lKGQpe3JldHVybihkbWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9u''@;'; + put 'put ''Ij09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBsTGUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNz''@;'; + put 'put ''IGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBzTGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQ''@;'; + put 'put ''cm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB1TGUoZCxnLGgpe3JldHVybiBnJiZzTGUoZC5wcm90b3R5cGUsZyksaCYmc0xlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZH1mdW5jdGlvbiBjTGUoZCxnKXtpZigiZnVuY3Rpb24i''@;'; + put 'put ''IT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJs''@;'; + put 'put ''ZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmcG1lKGQsZyl9ZnVuY3Rpb24gcG1lKGQsZyl7cmV0dXJuKHBtZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQo''@;'; + put 'put ''KTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGZMZShkKXt2YXIgZz1mdW5jdGlvbiBuNXQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4h''@;'; + put 'put ''MTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''KCl7dmFyIHksdj1GbmUoZCk7aWYoZyl7dmFyIEM9Rm5lKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlNXQodGhpcyx5KX19ZnVuY3Rpb24gZTV0KGQsZyl7aWYoZyYmKCJv''@;'; + put 'put ''YmplY3QiPT09ZG1lKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiB0NXQoZCl7''@;'; + put 'put ''aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBGbmUoZCl7cmV0dXJuKEZuZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2Jq''@;'; + put 'put ''ZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9uIGhMZShkLGcpe3JldHVybiBmdW5jdGlvbiB1NXQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1''@;'; + put 'put ''bmN0aW9uIHM1dChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksaix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5l''@;'; + put 'put ''eHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLGo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBqfX1yZXR1cm4gdn19KGQsZyl8fGRMZShkLGcp''@;'; + put 'put ''fHxmdW5jdGlvbiBsNXQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3Jd''@;'; + put 'put ''KCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGRMZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gZ21lKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9''@;'; + put 'put ''ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBnbWUoZCxnKX19ZnVuY3Rpb24gZ21lKGQs''@;'; + put 'put ''Zyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gTm8oZCl7dmFyIGc9dGhpczt0aGlzLmluc3RhbmNlPWQsdGhpcy5kb25lQWN0aW9ucz1bXSx0aGlzLnVuZG9u''@;'; + put 'put ''ZUFjdGlvbnM9W10sdGhpcy5pZ25vcmVOZXdBY3Rpb25zPSExLHRoaXMuZW5hYmxlZD0hMSxkLmFkZEhvb2soImFmdGVyQ2hhbmdlIixmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMsQz1oJiZoLmxlbmd0aDtDJiZoLmZpbmQoZnVuY3Rpb24odWUpe3ZhciBfZT1oTGUodWUsNCk7cmV0dXJuIF9l''@;'; + put 'put ''WzJdIT09X2VbM119KSYmZy5kb25lKGZ1bmN0aW9uKCl7dmFyIF9lPWgucmVkdWNlKGZ1bmN0aW9uKE5lLEtlKXtyZXR1cm4gTmUucHVzaChmdW5jdGlvbiByNXQoZCl7cmV0dXJuIGZ1bmN0aW9uIGE1dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBnbWUoZCl9KGQpfHxmdW5jdGlv''@;'; + put 'put ''biBvNXQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZExlKGQpfHxmdW5jdGlvbiBpNXQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlk''@;'; + put 'put ''IGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oS2UpKSxOZX0sW10pO1VyKF9lLGZ1bmN0aW9uKE5lKXtO''@;'; + put 'put ''ZVsxXT1kLnByb3BUb0NvbChOZVsxXSl9KTt2YXIgQmU9Qz4xP3kuZ2V0U2VsZWN0ZWQoKTpbW19lWzBdWzBdLF9lWzBdWzFdXV07cmV0dXJuIG5ldyBOby5DaGFuZ2VBY3Rpb24oX2UsQmUpfSx2KX0pLGQuYWRkSG9vaygiYWZ0ZXJDcmVhdGVSb3ciLGZ1bmN0aW9uKGgsdix5KXtnLmRvbmUo''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE5vLkNyZWF0ZVJvd0FjdGlvbihoLHYpfSx5KX0pLGQuYWRkSG9vaygiYmVmb3JlUmVtb3ZlUm93IixmdW5jdGlvbihoLHYseSxDKXtnLmRvbmUoZnVuY3Rpb24oKXt2YXIgdWU9Zy5pbnN0YW5jZS5nZXRTb3VyY2VEYXRhQXJyYXkoKSxfZT0odWUubGVu''@;'; + put 'put ''Z3RoK2gpJXVlLmxlbmd0aCxCZT1kLnRvUGh5c2ljYWxSb3coX2UpLE5lPWdoKHVlLnNsaWNlKEJlLEJlK3YpKTtyZXR1cm4gbmV3IE5vLlJlbW92ZVJvd0FjdGlvbihfZSxOZSxkLmdldFNldHRpbmdzKCkuZml4ZWRSb3dzQm90dG9tLGQuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NUb3ApfSxD''@;'; + put 'put ''KX0pLGQuYWRkSG9vaygiYWZ0ZXJDcmVhdGVDb2wiLGZ1bmN0aW9uKGgsdix5KXtnLmRvbmUoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE5vLkNyZWF0ZUNvbHVtbkFjdGlvbihoLHYpfSx5KX0pLGQuYWRkSG9vaygiYmVmb3JlUmVtb3ZlQ29sIixmdW5jdGlvbihoLHYseSxDKXtnLmRvbmUoZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgdWU9Zy5pbnN0YW5jZS5nZXRTb3VyY2VEYXRhQXJyYXkoKSxfZT0oZy5pbnN0YW5jZS5jb3VudENvbHMoKStoKSVnLmluc3RhbmNlLmNvdW50Q29scygpLEJlPVtdLE5lPVtdLEtlPVtdO2lhKHVlLmxlbmd0aC0xLGZ1bmN0aW9uKCR0KXt2YXIgZm49W10sTG49dWVbJHRd''@;'; + put 'put ''O2lhKF9lLF9lKyh2LTEpLGZ1bmN0aW9uKGlyKXtmbi5wdXNoKExuW2QudG9QaHlzaWNhbENvbHVtbihpcildKX0pLEJlLnB1c2goZm4pfSksaWEodi0xLGZ1bmN0aW9uKCR0KXtLZS5wdXNoKGQudG9QaHlzaWNhbENvbHVtbihfZSskdCkpfSksQXJyYXkuaXNBcnJheShkLmdldFNldHRpbmdz''@;'; + put 'put ''KCkuY29sSGVhZGVycykmJmlhKHYtMSxmdW5jdGlvbigkdCl7TmUucHVzaChkLmdldFNldHRpbmdzKCkuY29sSGVhZGVyc1tkLnRvUGh5c2ljYWxDb2x1bW4oX2UrJHQpXXx8bnVsbCl9KTt2YXIgZHQ9ZC5jb2x1bW5JbmRleE1hcHBlci5nZXRJbmRleGVzU2VxdWVuY2UoKSxPdD1kLnJvd0lu''@;'; + put 'put ''ZGV4TWFwcGVyLmdldEluZGV4ZXNTZXF1ZW5jZSgpO3JldHVybiBuZXcgTm8uUmVtb3ZlQ29sdW1uQWN0aW9uKF9lLEtlLEJlLE5lLGR0LE90LGQuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydCl9LEMpfSksZC5hZGRIb29rKCJiZWZvcmVDZWxsQWxpZ25tZW50IixmdW5jdGlvbiho''@;'; + put 'put ''LHYseSxDKXtnLmRvbmUoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE5vLkNlbGxBbGlnbm1lbnRBY3Rpb24oaCx2LHksQyl9KX0pLGQuYWRkSG9vaygiYmVmb3JlRmlsdGVyIixmdW5jdGlvbihoKXtnLmRvbmUoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE5vLkZpbHRlcnNBY3Rpb24oaCl9KX0pLGQu''@;'; + put 'put ''YWRkSG9vaygiYmVmb3JlUm93TW92ZSIsZnVuY3Rpb24oaCx2KXshMSE9PWgmJmcuZG9uZShmdW5jdGlvbigpe3JldHVybiBuZXcgTm8uUm93TW92ZUFjdGlvbihoLHYpfSl9KSxkLmFkZEhvb2soImJlZm9yZU1lcmdlQ2VsbHMiLGZ1bmN0aW9uKGgsdil7dnx8Zy5kb25lKGZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIG5ldyBOby5NZXJnZUNlbGxzQWN0aW9uKGQsaCl9KX0pLGQuYWRkSG9vaygiYWZ0ZXJVbm1lcmdlQ2VsbHMiLGZ1bmN0aW9uKGgsdil7dnx8Zy5kb25lKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBOby5Vbm1lcmdlQ2VsbHNBY3Rpb24oZCxoKX0pfSksZC5hZGRIb29rKCJhZnRlcklu''@;'; + put 'put ''aXQiLGZ1bmN0aW9uKCl7Zy5pbml0KCl9KX1Oby5wcm90b3R5cGUuZG9uZT1mdW5jdGlvbihkLGcpe2lmKCF0aGlzLmlnbm9yZU5ld0FjdGlvbnMmJiJVbmRvUmVkby51bmRvIiE9PWcmJiJVbmRvUmVkby5yZWRvIiE9PWcmJiJhdXRvIiE9PWcpe3ZhciB2PXRoaXMuZG9uZUFjdGlvbnMuc2xp''@;'; + put 'put ''Y2UoKTtpZighMSE9PXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVVuZG9TdGFja0NoYW5nZSIsdixnKSl7dmFyIEM9ZCgpLEk9dGhpcy51bmRvbmVBY3Rpb25zLnNsaWNlKCk7dGhpcy5kb25lQWN0aW9ucy5wdXNoKEMpLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyVW5kb1N0''@;'; + put 'put ''YWNrQ2hhbmdlIix2LHRoaXMuZG9uZUFjdGlvbnMuc2xpY2UoKSksdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVkb1N0YWNrQ2hhbmdlIixJKSx0aGlzLnVuZG9uZUFjdGlvbnMubGVuZ3RoPTAsdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJSZWRvU3RhY2tDaGFuZ2UiLEks''@;'; + put 'put ''dGhpcy51bmRvbmVBY3Rpb25zLnNsaWNlKCkpfX19LE5vLnByb3RvdHlwZS51bmRvPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1VuZG9BdmFpbGFibGUoKSl7dmFyIGQ9dGhpcy5kb25lQWN0aW9ucy5zbGljZSgpO3RoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVVuZG9TdGFja0NoYW5nZSIs''@;'; + put 'put ''ZCk7dmFyIGc9dGhpcy5kb25lQWN0aW9ucy5wb3AoKTt0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclVuZG9TdGFja0NoYW5nZSIsZCx0aGlzLmRvbmVBY3Rpb25zLnNsaWNlKCkpO3ZhciBoPWdoKGcpO2lmKCExPT09dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlVW5kbyIsaCkp''@;'; + put 'put ''cmV0dXJuO3RoaXMuaWdub3JlTmV3QWN0aW9ucz0hMDt2YXIgeT10aGlzLEM9dGhpcy51bmRvbmVBY3Rpb25zLnNsaWNlKCk7dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVkb1N0YWNrQ2hhbmdlIixDKSxnLnVuZG8odGhpcy5pbnN0YW5jZSxmdW5jdGlvbigpe3kuaWdub3JlTmV3''@;'; + put 'put ''QWN0aW9ucz0hMSx5LnVuZG9uZUFjdGlvbnMucHVzaChnKX0pLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyUmVkb1N0YWNrQ2hhbmdlIixDLHRoaXMudW5kb25lQWN0aW9ucy5zbGljZSgpKSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclVuZG8iLGgpfX0sTm8ucHJvdG90eXBl''@;'; + put 'put ''LnJlZG89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUmVkb0F2YWlsYWJsZSgpKXt2YXIgZD10aGlzLnVuZG9uZUFjdGlvbnMuc2xpY2UoKTt0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVSZWRvU3RhY2tDaGFuZ2UiLGQpO3ZhciBnPXRoaXMudW5kb25lQWN0aW9ucy5wb3AoKTt0aGlzLmlu''@;'; + put 'put ''c3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJlZG9TdGFja0NoYW5nZSIsZCx0aGlzLnVuZG9uZUFjdGlvbnMuc2xpY2UoKSk7dmFyIGg9Z2goZyk7aWYoITE9PT10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVSZWRvIixoKSlyZXR1cm47dGhpcy5pZ25vcmVOZXdBY3Rpb25zPSEwO3ZhciB5''@;'; + put 'put ''PXRoaXMsQz10aGlzLmRvbmVBY3Rpb25zLnNsaWNlKCk7dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlVW5kb1N0YWNrQ2hhbmdlIixDKSxnLnJlZG8odGhpcy5pbnN0YW5jZSxmdW5jdGlvbigpe3kuaWdub3JlTmV3QWN0aW9ucz0hMSx5LmRvbmVBY3Rpb25zLnB1c2goZyl9KSx0aGlz''@;'; + put 'put ''Lmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclVuZG9TdGFja0NoYW5nZSIsQyx0aGlzLmRvbmVBY3Rpb25zLnNsaWNlKCkpLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyUmVkbyIsaCl9fSxOby5wcm90b3R5cGUuaXNVbmRvQXZhaWxhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9u''@;'; + put 'put ''ZUFjdGlvbnMubGVuZ3RoPjB9LE5vLnByb3RvdHlwZS5pc1JlZG9BdmFpbGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51bmRvbmVBY3Rpb25zLmxlbmd0aD4wfSxOby5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmRvbmVBY3Rpb25zLmxlbmd0aD0wLHRoaXMudW5kb25lQWN0''@;'; + put 'put ''aW9ucy5sZW5ndGg9MH0sTm8ucHJvdG90eXBlLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVuYWJsZWR9LE5vLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXtpZighdGhpcy5pc0VuYWJsZWQoKSl7dmFyIGQ9dGhpcy5pbnN0YW5jZTt0aGlzLmVuYWJsZWQ9ITAsZnVuY3Rp''@;'; + put 'put ''b24gZDV0KGQpe2QudW5kbz1mdW5jdGlvbigpe3JldHVybiBkLnVuZG9SZWRvLnVuZG8oKX0sZC5yZWRvPWZ1bmN0aW9uKCl7cmV0dXJuIGQudW5kb1JlZG8ucmVkbygpfSxkLmlzVW5kb0F2YWlsYWJsZT1mdW5jdGlvbigpe3JldHVybiBkLnVuZG9SZWRvLmlzVW5kb0F2YWlsYWJsZSgpfSxk''@;'; + put 'put ''LmlzUmVkb0F2YWlsYWJsZT1mdW5jdGlvbigpe3JldHVybiBkLnVuZG9SZWRvLmlzUmVkb0F2YWlsYWJsZSgpfSxkLmNsZWFyVW5kbz1mdW5jdGlvbigpe3JldHVybiBkLnVuZG9SZWRvLmNsZWFyKCl9fShkKSx0aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKCksZC5hZGRIb29rKCJhZnRlckNoYW5n''@;'; + put 'put ''ZSIsZ0xlKX19LE5vLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7aWYodGhpcy5pc0VuYWJsZWQoKSl7dmFyIGQ9dGhpcy5pbnN0YW5jZTt0aGlzLmVuYWJsZWQ9ITEsZnVuY3Rpb24gcDV0KGQpe2RlbGV0ZSBkLnVuZG8sZGVsZXRlIGQucmVkbyxkZWxldGUgZC5pc1VuZG9BdmFpbGFi''@;'; + put 'put ''bGUsZGVsZXRlIGQuaXNSZWRvQXZhaWxhYmxlLGRlbGV0ZSBkLmNsZWFyVW5kb30oZCksdGhpcy51bnJlZ2lzdGVyU2hvcnRjdXRzKCksZC5yZW1vdmVIb29rKCJhZnRlckNoYW5nZSIsZ0xlKX19LE5vLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5jbGVhcigpLHRoaXMuaW5z''@;'; + put 'put ''dGFuY2U9bnVsbCx0aGlzLmRvbmVBY3Rpb25zPW51bGwsdGhpcy51bmRvbmVBY3Rpb25zPW51bGx9LChOby5BY3Rpb249ZnVuY3Rpb24oKXt9KS5wcm90b3R5cGUudW5kbz1mdW5jdGlvbigpe30sTm8uQWN0aW9uLnByb3RvdHlwZS5yZWRvPWZ1bmN0aW9uKCl7fSxrOShOby5DaGFuZ2VBY3Rp''@;'; + put 'put ''b249ZnVuY3Rpb24oZCxnKXt0aGlzLmNoYW5nZXM9ZCx0aGlzLnNlbGVjdGVkPWcsdGhpcy5hY3Rpb25UeXBlPSJjaGFuZ2UifSxOby5BY3Rpb24pLE5vLkNoYW5nZUFjdGlvbi5wcm90b3R5cGUudW5kbz1mdW5jdGlvbihkLGcpe2Zvcih2YXIgaD1naCh0aGlzLmNoYW5nZXMpLHY9ZC5jb3Vu''@;'; + put 'put ''dEVtcHR5Um93cyghMCkseT1kLmNvdW50RW1wdHlDb2xzKCEwKSxDPTAsST1oLmxlbmd0aDtDPEk7QysrKWhbQ10uc3BsaWNlKDMsMSk7ZC5hZGRIb29rT25jZSgiYWZ0ZXJDaGFuZ2UiLGcpLGQuc2V0RGF0YUF0Q2VsbChoLG51bGwsbnVsbCwiVW5kb1JlZG8udW5kbyIpO2Zvcih2YXIgaj0w''@;'; + put 'put ''LHVlPWgubGVuZ3RoO2o8dWU7aisrKXt2YXIgX2U9aExlKGhbal0sMiksQmU9X2VbMF0sTmU9X2VbMV07ZC5nZXRTZXR0aW5ncygpLm1pblNwYXJlUm93cyYmQmUrMStkLmdldFNldHRpbmdzKCkubWluU3BhcmVSb3dzPT09ZC5jb3VudFJvd3MoKSYmdj09PWQuZ2V0U2V0dGluZ3MoKS5taW5T''@;'; + put 'put ''cGFyZVJvd3MmJihkLmFsdGVyKCJyZW1vdmVfcm93IixwYXJzZUludChCZSsxLDEwKSxkLmdldFNldHRpbmdzKCkubWluU3BhcmVSb3dzKSxkLnVuZG9SZWRvLmRvbmVBY3Rpb25zLnBvcCgpKSxkLmdldFNldHRpbmdzKCkubWluU3BhcmVDb2xzJiZOZSsxK2QuZ2V0U2V0dGluZ3MoKS5taW5T''@;'; + put 'put ''cGFyZUNvbHM9PT1kLmNvdW50Q29scygpJiZ5PT09ZC5nZXRTZXR0aW5ncygpLm1pblNwYXJlQ29scyYmKGQuYWx0ZXIoInJlbW92ZV9jb2wiLHBhcnNlSW50KE5lKzEsMTApLGQuZ2V0U2V0dGluZ3MoKS5taW5TcGFyZUNvbHMpLGQudW5kb1JlZG8uZG9uZUFjdGlvbnMucG9wKCkpfWQuc2Vs''@;'; + put 'put ''ZWN0Q2VsbHModGhpcy5zZWxlY3RlZCwhMSwhMSl9LE5vLkNoYW5nZUFjdGlvbi5wcm90b3R5cGUucmVkbz1mdW5jdGlvbihkLGcpe2Zvcih2YXIgaD1naCh0aGlzLmNoYW5nZXMpLHY9MCx5PWgubGVuZ3RoO3Y8eTt2KyspaFt2XS5zcGxpY2UoMiwxKTtkLmFkZEhvb2tPbmNlKCJhZnRlckNo''@;'; + put 'put ''YW5nZSIsZyksZC5zZXREYXRhQXRDZWxsKGgsbnVsbCxudWxsLCJVbmRvUmVkby5yZWRvIiksdGhpcy5zZWxlY3RlZCYmZC5zZWxlY3RDZWxscyh0aGlzLnNlbGVjdGVkLCExLCExKX0sazkoTm8uQ3JlYXRlUm93QWN0aW9uPWZ1bmN0aW9uKGQsZyl7dGhpcy5pbmRleD1kLHRoaXMuYW1vdW50''@;'; + put 'put ''PWcsdGhpcy5hY3Rpb25UeXBlPSJpbnNlcnRfcm93In0sTm8uQWN0aW9uKSxOby5DcmVhdGVSb3dBY3Rpb24ucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24oZCxnKXt2YXIgaD1kLmNvdW50Um93cygpLHY9ZC5nZXRTZXR0aW5ncygpLm1pblNwYXJlUm93czt0aGlzLmluZGV4Pj1oJiZ0aGlzLmlu''@;'; + put 'put ''ZGV4LXY8aCYmKHRoaXMuaW5kZXgtPXYpLGQuYWRkSG9va09uY2UoImFmdGVyUmVtb3ZlUm93IixnKSxkLmFsdGVyKCJyZW1vdmVfcm93Iix0aGlzLmluZGV4LHRoaXMuYW1vdW50LCJVbmRvUmVkby51bmRvIil9LE5vLkNyZWF0ZVJvd0FjdGlvbi5wcm90b3R5cGUucmVkbz1mdW5jdGlvbihk''@;'; + put 'put ''LGcpe2QuYWRkSG9va09uY2UoImFmdGVyQ3JlYXRlUm93IixnKSxkLmFsdGVyKCJpbnNlcnRfcm93Iix0aGlzLmluZGV4LHRoaXMuYW1vdW50LCJVbmRvUmVkby5yZWRvIil9LGs5KE5vLlJlbW92ZVJvd0FjdGlvbj1mdW5jdGlvbihkLGcsaCx2KXt0aGlzLmluZGV4PWQsdGhpcy5kYXRhPWcs''@;'; + put 'put ''dGhpcy5hY3Rpb25UeXBlPSJyZW1vdmVfcm93Iix0aGlzLmZpeGVkUm93c0JvdHRvbT1oLHRoaXMuZml4ZWRSb3dzVG9wPXZ9LE5vLkFjdGlvbiksTm8uUmVtb3ZlUm93QWN0aW9uLnByb3RvdHlwZS51bmRvPWZ1bmN0aW9uKGQsZyl7dmFyIGg9ZC5nZXRTZXR0aW5ncygpO2guZml4ZWRSb3dz''@;'; + put 'put ''Qm90dG9tPXRoaXMuZml4ZWRSb3dzQm90dG9tLGguZml4ZWRSb3dzVG9wPXRoaXMuZml4ZWRSb3dzVG9wLGQuYWx0ZXIoImluc2VydF9yb3ciLHRoaXMuaW5kZXgsdGhpcy5kYXRhLmxlbmd0aCwiVW5kb1JlZG8udW5kbyIpLGQuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsZyksZC5w''@;'; + put 'put ''b3B1bGF0ZUZyb21BcnJheSh0aGlzLmluZGV4LDAsdGhpcy5kYXRhLHZvaWQgMCx2b2lkIDAsIlVuZG9SZWRvLnVuZG8iKX0sTm8uUmVtb3ZlUm93QWN0aW9uLnByb3RvdHlwZS5yZWRvPWZ1bmN0aW9uKGQsZyl7ZC5hZGRIb29rT25jZSgiYWZ0ZXJSZW1vdmVSb3ciLGcpLGQuYWx0ZXIoInJl''@;'; + put 'put ''bW92ZV9yb3ciLHRoaXMuaW5kZXgsdGhpcy5kYXRhLmxlbmd0aCwiVW5kb1JlZG8ucmVkbyIpfSxrOShOby5DcmVhdGVDb2x1bW5BY3Rpb249ZnVuY3Rpb24oZCxnKXt0aGlzLmluZGV4PWQsdGhpcy5hbW91bnQ9Zyx0aGlzLmFjdGlvblR5cGU9Imluc2VydF9jb2wifSxOby5BY3Rpb24pLE5v''@;'; + put 'put ''LkNyZWF0ZUNvbHVtbkFjdGlvbi5wcm90b3R5cGUudW5kbz1mdW5jdGlvbihkLGcpe2QuYWRkSG9va09uY2UoImFmdGVyUmVtb3ZlQ29sIixnKSxkLmFsdGVyKCJyZW1vdmVfY29sIix0aGlzLmluZGV4LHRoaXMuYW1vdW50LCJVbmRvUmVkby51bmRvIil9LE5vLkNyZWF0ZUNvbHVtbkFjdGlv''@;'; + put 'put ''bi5wcm90b3R5cGUucmVkbz1mdW5jdGlvbihkLGcpe2QuYWRkSG9va09uY2UoImFmdGVyQ3JlYXRlQ29sIixnKSxkLmFsdGVyKCJpbnNlcnRfY29sIix0aGlzLmluZGV4LHRoaXMuYW1vdW50LCJVbmRvUmVkby5yZWRvIil9LGs5KE5vLlJlbW92ZUNvbHVtbkFjdGlvbj1mdW5jdGlvbihkLGcs''@;'; + put 'put ''aCx2LHksQyxJKXt0aGlzLmluZGV4PWQsdGhpcy5pbmRleGVzPWcsdGhpcy5kYXRhPWgsdGhpcy5hbW91bnQ9dGhpcy5kYXRhWzBdLmxlbmd0aCx0aGlzLmhlYWRlcnM9dix0aGlzLmNvbHVtblBvc2l0aW9ucz15LnNsaWNlKDApLHRoaXMucm93UG9zaXRpb25zPUMuc2xpY2UoMCksdGhpcy5h''@;'; + put 'put ''Y3Rpb25UeXBlPSJyZW1vdmVfY29sIix0aGlzLmZpeGVkQ29sdW1uc1N0YXJ0PUl9LE5vLkFjdGlvbiksTm8uUmVtb3ZlQ29sdW1uQWN0aW9uLnByb3RvdHlwZS51bmRvPWZ1bmN0aW9uKGQsZyl7dmFyIGg9dGhpcztkLmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQ9dGhpcy5maXhl''@;'; + put 'put ''ZENvbHVtbnNTdGFydDtmb3IodmFyIHk9dGhpcy5pbmRleGVzLnNsaWNlKDApLnNvcnQoKSxDPWZ1bmN0aW9uKEtlLGR0LE90KXtyZXR1cm4gT3RbaC5pbmRleGVzLmluZGV4T2YoeVtkdF0pXX0sST10aGlzLmRhdGEubGVuZ3RoLGo9W10sdWU9MDt1ZTxJO3VlKyspai5wdXNoKE9sKHRoaXMu''@;'; + put 'put ''ZGF0YVt1ZV0sQykpO3ZhciBfZT1PbCh0aGlzLmhlYWRlcnMsQyksQmU9W107ZC5hbHRlcigiaW5zZXJ0X2NvbCIsdGhpcy5pbmRleGVzWzBdLHRoaXMuaW5kZXhlcy5sZW5ndGgsIlVuZG9SZWRvLnVuZG8iKSxVcihkLmdldFNvdXJjZURhdGFBcnJheSgpLGZ1bmN0aW9uKE5lLEtlKXtVcih5''@;'; + put 'put ''LGZ1bmN0aW9uKGR0LE90KXtOZVtkdF09altLZV1bT3RdLEJlLnB1c2goW0tlLGR0LE5lW2R0XV0pfSl9KSxkLnNldFNvdXJjZURhdGFBdENlbGwoQmUsdm9pZCAwLHZvaWQgMCwiVW5kb1JlZG8udW5kbyIpLGQuY29sdW1uSW5kZXhNYXBwZXIuaW5zZXJ0SW5kZXhlcyh5WzBdLHkubGVuZ3Ro''@;'; + put 'put ''KSx2b2lkIDAhPT10aGlzLmhlYWRlcnMmJlVyKF9lLGZ1bmN0aW9uKE5lLEtlKXtkLmdldFNldHRpbmdzKCkuY29sSGVhZGVyc1t5W0tlXV09TmV9KSxkLmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7ZC5yb3dJbmRleE1hcHBlci5zZXRJbmRleGVzU2VxdWVuY2UoaC5yb3dQb3NpdGlvbnMp''@;'; + put 'put ''LGQuY29sdW1uSW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKGguY29sdW1uUG9zaXRpb25zKX0sITApLGQuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsZyksZC5yZW5kZXIoKX0sTm8uUmVtb3ZlQ29sdW1uQWN0aW9uLnByb3RvdHlwZS5yZWRvPWZ1bmN0aW9uKGQsZyl7ZC5h''@;'; + put 'put ''ZGRIb29rT25jZSgiYWZ0ZXJSZW1vdmVDb2wiLGcpLGQuYWx0ZXIoInJlbW92ZV9jb2wiLHRoaXMuaW5kZXgsdGhpcy5hbW91bnQsIlVuZG9SZWRvLnJlZG8iKX0sKE5vLkNlbGxBbGlnbm1lbnRBY3Rpb249ZnVuY3Rpb24oZCxnLGgsdil7dGhpcy5zdGF0ZUJlZm9yZT1kLHRoaXMucmFuZ2U9''@;'; + put 'put ''Zyx0aGlzLnR5cGU9aCx0aGlzLmFsaWdubWVudD12fSkucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24oZCxnKXt2YXIgaD10aGlzO1VyKHRoaXMucmFuZ2UsZnVuY3Rpb24odil7di5mb3JBbGwoZnVuY3Rpb24oeSxDKXt5Pj0wJiZDPj0wJiZkLnNldENlbGxNZXRhKHksQywiY2xhc3NOYW1lIixo''@;'; + put 'put ''LnN0YXRlQmVmb3JlW3ldW0NdfHwiIGh0TGVmdCIpfSl9KSxkLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGcpLGQucmVuZGVyKCl9LE5vLkNlbGxBbGlnbm1lbnRBY3Rpb24ucHJvdG90eXBlLnJlZG89ZnVuY3Rpb24oZCxnKXtQdyh0aGlzLnJhbmdlLHRoaXMudHlwZSx0aGlzLmFs''@;'; + put 'put ''aWdubWVudCxmdW5jdGlvbihoLHYpe3JldHVybiBkLmdldENlbGxNZXRhKGgsdil9LGZ1bmN0aW9uKGgsdix5LEMpe3JldHVybiBkLnNldENlbGxNZXRhKGgsdix5LEMpfSksZC5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixnKSxkLnJlbmRlcigpfSxrOShOby5GaWx0ZXJzQWN0aW9u''@;'; + put 'put ''PWZ1bmN0aW9uKGQpe3RoaXMuY29uZGl0aW9uc1N0YWNrPWQsdGhpcy5hY3Rpb25UeXBlPSJmaWx0ZXIifSxOby5BY3Rpb24pLE5vLkZpbHRlcnNBY3Rpb24ucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24oZCxnKXt2YXIgaD1kLmdldFBsdWdpbigiZmlsdGVycyIpO2QuYWRkSG9va09uY2UoImFm''@;'; + put 'put ''dGVyVmlld1JlbmRlciIsZyksaC5jb25kaXRpb25Db2xsZWN0aW9uLmltcG9ydEFsbENvbmRpdGlvbnModGhpcy5jb25kaXRpb25zU3RhY2suc2xpY2UoMCx0aGlzLmNvbmRpdGlvbnNTdGFjay5sZW5ndGgtMSkpLGguZmlsdGVyKCl9LE5vLkZpbHRlcnNBY3Rpb24ucHJvdG90eXBlLnJlZG89''@;'; + put 'put ''ZnVuY3Rpb24oZCxnKXt2YXIgaD1kLmdldFBsdWdpbigiZmlsdGVycyIpO2QuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsZyksaC5jb25kaXRpb25Db2xsZWN0aW9uLmltcG9ydEFsbENvbmRpdGlvbnModGhpcy5jb25kaXRpb25zU3RhY2spLGguZmlsdGVyKCl9O3ZhciBmNXQ9ZnVu''@;'; + put 'put ''Y3Rpb24oZCl7Y0xlKGgsZCk7dmFyIGc9ZkxlKGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztsTGUodGhpcyxoKSwoQz1nLmNhbGwodGhpcykpLmNlbGxSYW5nZT15O3ZhciBJPUMuY2VsbFJhbmdlLmdldFRvcFN0YXJ0Q29ybmVyKCksaj1DLmNlbGxSYW5nZS5nZXRCb3R0b21FbmRDb3JuZXIo''@;'; + put 'put ''KTtyZXR1cm4gQy5yYW5nZURhdGE9di5nZXREYXRhKEkucm93LEkuY29sLGoucm93LGouY29sKSxDfXJldHVybiB1TGUoaCxbe2tleToidW5kbyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST15LmdldFBsdWdpbigibWVyZ2VDZWxscyIpO3kuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRl''@;'; + put 'put ''ciIsQyksSS51bm1lcmdlUmFuZ2UodGhpcy5jZWxsUmFuZ2UsITApO3ZhciBqPXRoaXMuY2VsbFJhbmdlLmdldFRvcFN0YXJ0Q29ybmVyKCk7eS5wb3B1bGF0ZUZyb21BcnJheShqLnJvdyxqLmNvbCx0aGlzLnJhbmdlRGF0YSx2b2lkIDAsdm9pZCAwLCJNZXJnZUNlbGxzIil9fSx7a2V5OiJy''@;'; + put 'put ''ZWRvIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXkuZ2V0UGx1Z2luKCJtZXJnZUNlbGxzIik7eS5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixDKSxJLm1lcmdlUmFuZ2UodGhpcy5jZWxsUmFuZ2UpfX1dKSxofShOby5BY3Rpb24pO05vLk1lcmdlQ2VsbHNBY3Rpb249ZjV0O3Zh''@;'; + put 'put ''ciBoNXQ9ZnVuY3Rpb24oZCl7Y0xlKGgsZCk7dmFyIGc9ZkxlKGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gbExlKHRoaXMsaCksKEM9Zy5jYWxsKHRoaXMpKS5jZWxsUmFuZ2U9eSxDfXJldHVybiB1TGUoaCxbe2tleToidW5kbyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST15''@;'; + put 'put ''LmdldFBsdWdpbigibWVyZ2VDZWxscyIpO3kuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsQyksSS5tZXJnZVJhbmdlKHRoaXMuY2VsbFJhbmdlLCEwKX19LHtrZXk6InJlZG8iLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9eS5nZXRQbHVnaW4oIm1lcmdlQ2VsbHMiKTt5LmFkZEhv''@;'; + put 'put ''b2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLEMpLEkudW5tZXJnZVJhbmdlKHRoaXMuY2VsbFJhbmdlLCEwKSx5LnJlbmRlcigpfX1dKSxofShOby5BY3Rpb24pO2Z1bmN0aW9uIGdMZShkLGcpe2lmKCJsb2FkRGF0YSI9PT1nKXJldHVybiB0aGlzLnVuZG9SZWRvLmNsZWFyKCl9Tm8uVW5tZXJn''@;'; + put 'put ''ZUNlbGxzQWN0aW9uPWg1dCxrOShOby5Sb3dNb3ZlQWN0aW9uPWZ1bmN0aW9uKGQsZyl7dGhpcy5yb3dzPWQuc2xpY2UoKSx0aGlzLmZpbmFsSW5kZXg9Zyx0aGlzLmFjdGlvblR5cGU9InJvd19tb3ZlIn0sTm8uQWN0aW9uKSxOby5Sb3dNb3ZlQWN0aW9uLnByb3RvdHlwZS51bmRvPWZ1bmN0''@;'; + put 'put ''aW9uKGQsZyl7dmFyIGg9dGhpcyx2PWQuZ2V0UGx1Z2luKCJtYW51YWxSb3dNb3ZlIikseT1bXS5jb25jYXQodGhpcy5yb3dzKSxDPXkuZmlsdGVyKGZ1bmN0aW9uKEJlKXtyZXR1cm4gQmU+aC5maW5hbEluZGV4fSksST15LmZpbHRlcihmdW5jdGlvbihCZSl7cmV0dXJuIEJlPD1oLmZpbmFs''@;'; + put 'put ''SW5kZXh9KSxqPUMuc29ydChmdW5jdGlvbihCZSxOZSl7cmV0dXJuIE5lLUJlfSkuY29uY2F0KEkuc29ydChmdW5jdGlvbihCZSxOZSl7cmV0dXJuIEJlLU5lfSkpO2QuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsZyk7Zm9yKHZhciB1ZT0wO3VlPGoubGVuZ3RoO3VlKz0xKXt2YXIg''@;'; + put 'put ''X2U9ZC50b1Zpc3VhbFJvdyhqW3VlXSk7di5tb3ZlUm93KF9lLGpbdWVdKX1kLnJlbmRlcigpLGQuZGVzZWxlY3RDZWxsKCksZC5zZWxlY3RSb3dzKHRoaXMucm93c1swXSx0aGlzLnJvd3NbMF0rdGhpcy5yb3dzLmxlbmd0aC0xKX0sTm8uUm93TW92ZUFjdGlvbi5wcm90b3R5cGUucmVkbz1m''@;'; + put 'put ''dW5jdGlvbihkLGcpe3ZhciBoPWQuZ2V0UGx1Z2luKCJtYW51YWxSb3dNb3ZlIik7ZC5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixnKSxoLm1vdmVSb3dzKHRoaXMucm93cy5zbGljZSgpLHRoaXMuZmluYWxJbmRleCksZC5yZW5kZXIoKSxkLmRlc2VsZWN0Q2VsbCgpLGQuc2VsZWN0''@;'; + put 'put ''Um93cyh0aGlzLmZpbmFsSW5kZXgsdGhpcy5maW5hbEluZGV4K3RoaXMucm93cy5sZW5ndGgtMSl9LE5vLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy5pbnN0YW5jZS5nZXRTZXR0aW5ncygpLnVuZG8sZz12b2lkIDA9PT1kfHxkO3RoaXMuaW5zdGFuY2UudW5kb1JlZG98''@;'; + put 'put ''fCh0aGlzLmluc3RhbmNlLnVuZG9SZWRvPXRoaXMpLGc/dGhpcy5pbnN0YW5jZS51bmRvUmVkby5lbmFibGUoKTp0aGlzLmluc3RhbmNlLnVuZG9SZWRvLmRpc2FibGUoKX0sTm8ucHJvdG90eXBlLnJlZ2lzdGVyU2hvcnRjdXRzPWZ1bmN0aW9uKCl7dmFyIGQ9dGhpczt0aGlzLmluc3RhbmNl''@;'; + put 'put ''LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5hZGRTaG9ydGN1dHMoW3trZXlzOltbIkNvbnRyb2wvTWV0YSIsInoiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtkLnVuZG8oKX19LHtrZXlzOltbIkNvbnRyb2wvTWV0YSIsInkiXSxbIkNvbnRyb2wvTWV0YSIsIlNoaWZ0''@;'; + put 'put ''IiwieiJdXSxjYWxsYmFjazpmdW5jdGlvbigpe2QucmVkbygpfX1dLHtydW5Pbmx5SWY6ZnVuY3Rpb24oSSl7cmV0dXJuIUkuYWx0S2V5fSxncm91cDoidW5kb1JlZG8ifSl9LE5vLnByb3RvdHlwZS51bnJlZ2lzdGVyU2hvcnRjdXRzPWZ1bmN0aW9uKCl7dGhpcy5pbnN0YW5jZS5nZXRTaG9y''@;'; + put 'put ''dGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIikucmVtb3ZlU2hvcnRjdXRzQnlHcm91cCgidW5kb1JlZG8iKX07dmFyIE56PXpvLmdldFNpbmdsZXRvbigpO056LmFkZCgiYWZ0ZXJVcGRhdGVTZXR0aW5ncyIsZnVuY3Rpb24oKXt2YXIgZDtudWxsPT09KGQ9dGhpcy5nZXRQbHVnaW4o''@;'; + put 'put ''InVuZG9SZWRvIikpfHx2b2lkIDA9PT1kfHxkLmluaXQoKX0pLE56LnJlZ2lzdGVyKCJiZWZvcmVVbmRvIiksTnoucmVnaXN0ZXIoImFmdGVyVW5kbyIpLE56LnJlZ2lzdGVyKCJiZWZvcmVSZWRvIiksTnoucmVnaXN0ZXIoImFmdGVyUmVkbyIpLE5vLlBMVUdJTl9LRVk9InVuZG9SZWRvIixO''@;'; + put 'put ''by5TRVRUSU5HX0tFWVM9ITA7Y29uc3QgZzV0PU5vO2Z1bmN0aW9uIG1MZSgpeyhmdW5jdGlvbiBWdHQoKXtsZChnTyksbGQoeTZlKSxsZChKU2UpLGxkKHFTZSksbGQoTTZlKSxsZChwNmUpLGxkKG5NZSksbGQoaU1lKSxsZChJdHQpLGxkKE9TKSxsZChzTWUpfSkoKSxmdW5jdGlvbiBlbnQo''@;'; + put 'put ''KXtNZyhiTyksTWcoY3opLE1nKFA2ZSksTWcoQjZlKSxNZyhINmUpLE1nKE42ZSksTWcoT3cpLE1nKFY2ZSl9KCksZnVuY3Rpb24gbG50KCl7YU8oZnopLGFPKE10ZSksYU8oajZlKSxhTyhFdGUpfSgpLGZ1bmN0aW9uIGtudCgpe2s4KHVudCksazgoZm50KSxrOChkbnQpLGs4KGdudCksazgo''@;'; + put 'put ''dm50KSxrOCh5bnQpLGs4KGJudCksazgoalNlKSxrOChDbnQpfSgpLGZ1bmN0aW9uIG01dCgpe0RzKHNydCksRHMoRHJ0KSxEcyhVcnQpLERzKFJpdCksRHMoJGl0KSxEcyh5RWUpLERzKHBvdCksRHMoWm90KSxEcyhRRWUpLERzKGNsdCksRHMoQmx0KSxEcyhHbHQpLERzKHB4ZSksRHMoUHN0''@;'; + put 'put ''KSxEcyhqY3QpLERzKHZmdCksRHMoVmZ0KSxEcyh1aHQpLERzKElodCksRHMoYzN0KSxEcyh5M3QpLERzKHEzdCksRHMoc2R0KSxEcyhRZHQpLERzKGQ0dCksRHMoazR0KSxEcyhZcHQpLERzKGU4dCksRHMocDh0KSxEcyhMOHQpLERzKHo4dCksRHMocTh0KSxEcyhnNXQpfSgpfWNsYXNzIG1t''@;'; + put 'put ''ZXtjb25zdHJ1Y3RvcihnKXt0aGlzLnJhd0ZpbGU9ZztsZXQgdj1mdW5jdGlvbiB2NXQoZCl7cmV0dXJuISghZHx8IShkLm5vZGVOYW1lfHxkLnByb3AmJmQuYXR0ciYmZC5maW5kKSl9KGcpP2cudmFsdWU6Zzt0aGlzWyJfY3JlYXRlRnJvbSIrKCJzdHJpbmciPT10eXBlb2Ygdj8iRmFrZVBh''@;'; + put 'put ''dGgiOiJPYmplY3QiKV0odil9X2NyZWF0ZUZyb21GYWtlUGF0aChnKXt0aGlzLmxhc3RNb2RpZmllZERhdGU9dm9pZCAwLHRoaXMuc2l6ZT12b2lkIDAsdGhpcy50eXBlPSJsaWtlLyIrZy5zbGljZShnLmxhc3RJbmRleE9mKCIuIikrMSkudG9Mb3dlckNhc2UoKSx0aGlzLm5hbWU9Zy5zbGlj''@;'; + put 'put ''ZShnLmxhc3RJbmRleE9mKCIvIikrZy5sYXN0SW5kZXhPZigiXFwiKSsyKX1fY3JlYXRlRnJvbU9iamVjdChnKXt0aGlzLnNpemU9Zy5zaXplLHRoaXMudHlwZT1nLnR5cGUsdGhpcy5uYW1lPWcubmFtZX19Y2xhc3MgQTV0e2NvbnN0cnVjdG9yKGcsaCx2KXt0aGlzLnVybD0iLyIsdGhpcy5o''@;'; + put 'put ''ZWFkZXJzPVtdLHRoaXMud2l0aENyZWRlbnRpYWxzPSEwLHRoaXMuZm9ybURhdGE9W10sdGhpcy5pc1JlYWR5PSExLHRoaXMuaXNVcGxvYWRpbmc9ITEsdGhpcy5pc1VwbG9hZGVkPSExLHRoaXMuaXNTdWNjZXNzPSExLHRoaXMuaXNDYW5jZWw9ITEsdGhpcy5pc0Vycm9yPSExLHRoaXMucHJv''@;'; + put 'put ''Z3Jlc3M9MCx0aGlzLmluZGV4PXZvaWQgMCx0aGlzLnVwbG9hZGVyPWcsdGhpcy5zb21lPWgsdGhpcy5vcHRpb25zPXYsdGhpcy5maWxlPW5ldyBtbWUoaCksdGhpcy5fZmlsZT1oLGcub3B0aW9ucyYmKHRoaXMubWV0aG9kPWcub3B0aW9ucy5tZXRob2R8fCJQT1NUIix0aGlzLmFsaWFzPWcu''@;'; + put 'put ''b3B0aW9ucy5pdGVtQWxpYXN8fCJmaWxlIiksdGhpcy51cmw9Zy5vcHRpb25zLnVybH11cGxvYWQoKXt0cnl7dGhpcy51cGxvYWRlci51cGxvYWRJdGVtKHRoaXMpfWNhdGNoKGcpe3RoaXMudXBsb2FkZXIuX29uQ29tcGxldGVJdGVtKHRoaXMsIiIsMCx7fSksdGhpcy51cGxvYWRlci5fb25F''@;'; + put 'put ''cnJvckl0ZW0odGhpcywiIiwwLHt9KX19Y2FuY2VsKCl7dGhpcy51cGxvYWRlci5jYW5jZWxJdGVtKHRoaXMpfXJlbW92ZSgpe3RoaXMudXBsb2FkZXIucmVtb3ZlRnJvbVF1ZXVlKHRoaXMpfW9uQmVmb3JlVXBsb2FkKCl7fW9uQnVpbGRGb3JtKGcpe3JldHVybntmb3JtOmd9fW9uUHJvZ3Jl''@;'; + put 'put ''c3MoZyl7cmV0dXJue3Byb2dyZXNzOmd9fW9uU3VjY2VzcyhnLGgsdil7cmV0dXJue3Jlc3BvbnNlOmcsc3RhdHVzOmgsaGVhZGVyczp2fX1vbkVycm9yKGcsaCx2KXtyZXR1cm57cmVzcG9uc2U6ZyxzdGF0dXM6aCxoZWFkZXJzOnZ9fW9uQ2FuY2VsKGcsaCx2KXtyZXR1cm57cmVzcG9uc2U6''@;'; + put 'put ''ZyxzdGF0dXM6aCxoZWFkZXJzOnZ9fW9uQ29tcGxldGUoZyxoLHYpe3JldHVybntyZXNwb25zZTpnLHN0YXR1czpoLGhlYWRlcnM6dn19X29uQmVmb3JlVXBsb2FkKCl7dGhpcy5pc1JlYWR5PSEwLHRoaXMuaXNVcGxvYWRpbmc9ITAsdGhpcy5pc1VwbG9hZGVkPSExLHRoaXMuaXNTdWNjZXNz''@;'; + put 'put ''PSExLHRoaXMuaXNDYW5jZWw9ITEsdGhpcy5pc0Vycm9yPSExLHRoaXMucHJvZ3Jlc3M9MCx0aGlzLm9uQmVmb3JlVXBsb2FkKCl9X29uQnVpbGRGb3JtKGcpe3RoaXMub25CdWlsZEZvcm0oZyl9X29uUHJvZ3Jlc3MoZyl7dGhpcy5wcm9ncmVzcz1nLHRoaXMub25Qcm9ncmVzcyhnKX1fb25T''@;'; + put 'put ''dWNjZXNzKGcsaCx2KXt0aGlzLmlzUmVhZHk9ITEsdGhpcy5pc1VwbG9hZGluZz0hMSx0aGlzLmlzVXBsb2FkZWQ9ITAsdGhpcy5pc1N1Y2Nlc3M9ITAsdGhpcy5pc0NhbmNlbD0hMSx0aGlzLmlzRXJyb3I9ITEsdGhpcy5wcm9ncmVzcz0xMDAsdGhpcy5pbmRleD12b2lkIDAsdGhpcy5vblN1''@;'; + put 'put ''Y2Nlc3MoZyxoLHYpfV9vbkVycm9yKGcsaCx2KXt0aGlzLmlzUmVhZHk9ITEsdGhpcy5pc1VwbG9hZGluZz0hMSx0aGlzLmlzVXBsb2FkZWQ9ITAsdGhpcy5pc1N1Y2Nlc3M9ITEsdGhpcy5pc0NhbmNlbD0hMSx0aGlzLmlzRXJyb3I9ITAsdGhpcy5wcm9ncmVzcz0wLHRoaXMuaW5kZXg9dm9p''@;'; + put 'put ''ZCAwLHRoaXMub25FcnJvcihnLGgsdil9X29uQ2FuY2VsKGcsaCx2KXt0aGlzLmlzUmVhZHk9ITEsdGhpcy5pc1VwbG9hZGluZz0hMSx0aGlzLmlzVXBsb2FkZWQ9ITEsdGhpcy5pc1N1Y2Nlc3M9ITEsdGhpcy5pc0NhbmNlbD0hMCx0aGlzLmlzRXJyb3I9ITEsdGhpcy5wcm9ncmVzcz0wLHRo''@;'; + put 'put ''aXMuaW5kZXg9dm9pZCAwLHRoaXMub25DYW5jZWwoZyxoLHYpfV9vbkNvbXBsZXRlKGcsaCx2KXt0aGlzLm9uQ29tcGxldGUoZyxoLHYpLHRoaXMudXBsb2FkZXIub3B0aW9ucy5yZW1vdmVBZnRlclVwbG9hZCYmdGhpcy5yZW1vdmUoKX1fcHJlcGFyZVRvVXBsb2FkaW5nKCl7dGhpcy5pbmRl''@;'; + put 'put ''eD10aGlzLmluZGV4fHwrK3RoaXMudXBsb2FkZXIuX25leHRJbmRleCx0aGlzLmlzUmVhZHk9ITB9fWxldCB5NXQ9KCgpPT57Y2xhc3MgZHtzdGF0aWMgZ2V0TWltZUNsYXNzKGgpe2xldCB2PSJhcHBsaWNhdGlvbiI7cmV0dXJuLTEhPT10aGlzLm1pbWVfcHNkLmluZGV4T2YoaC50eXBlKXx8''@;'; + put 'put ''aC50eXBlLm1hdGNoKCJpbWFnZS4qIik/dj0iaW1hZ2UiOmgudHlwZS5tYXRjaCgidmlkZW8uKiIpP3Y9InZpZGVvIjpoLnR5cGUubWF0Y2goImF1ZGlvLioiKT92PSJhdWRpbyI6ImFwcGxpY2F0aW9uL3BkZiI9PT1oLnR5cGU/dj0icGRmIjotMSE9PXRoaXMubWltZV9jb21wcmVzcy5pbmRl''@;'; + put 'put ''eE9mKGgudHlwZSk/dj0iY29tcHJlc3MiOi0xIT09dGhpcy5taW1lX2RvYy5pbmRleE9mKGgudHlwZSk/dj0iZG9jIjotMSE9PXRoaXMubWltZV94c2wuaW5kZXhPZihoLnR5cGUpP3Y9InhscyI6LTEhPT10aGlzLm1pbWVfcHB0LmluZGV4T2YoaC50eXBlKSYmKHY9InBwdCIpLCJhcHBsaWNh''@;'; + put 'put ''dGlvbiI9PT12JiYodj10aGlzLmZpbGVUeXBlRGV0ZWN0aW9uKGgubmFtZSkpLHZ9c3RhdGljIGZpbGVUeXBlRGV0ZWN0aW9uKGgpe2xldCB2PXtqcGc6ImltYWdlIixqcGVnOiJpbWFnZSIsdGlmOiJpbWFnZSIscHNkOiJpbWFnZSIsYm1wOiJpbWFnZSIscG5nOiJpbWFnZSIsbmVmOiJpbWFn''@;'; + put 'put ''ZSIsdGlmZjoiaW1hZ2UiLGNyMjoiaW1hZ2UiLGR3ZzoiaW1hZ2UiLGNkcjoiaW1hZ2UiLGFpOiJpbWFnZSIsaW5kZDoiaW1hZ2UiLHBpbjoiaW1hZ2UiLGNkcDoiaW1hZ2UiLHNrcDoiaW1hZ2UiLHN0cDoiaW1hZ2UiLCIzZG0iOiJpbWFnZSIsbXAzOiJhdWRpbyIsd2F2OiJhdWRpbyIsd21h''@;'; + put 'put ''OiJhdWRpbyIsbW9kOiJhdWRpbyIsbTRhOiJhdWRpbyIsY29tcHJlc3M6ImNvbXByZXNzIix6aXA6ImNvbXByZXNzIixyYXI6ImNvbXByZXNzIiwiN3oiOiJjb21wcmVzcyIsbHo6ImNvbXByZXNzIix6MDE6ImNvbXByZXNzIixiejI6ImNvbXByZXNzIixnejoiY29tcHJlc3MiLHBkZjoicGRm''@;'; + put 'put ''Iix4bHM6InhscyIseGxzeDoieGxzIixvZHM6InhscyIsbXA0OiJ2aWRlbyIsYXZpOiJ2aWRlbyIsd212OiJ2aWRlbyIsbXBnOiJ2aWRlbyIsbXRzOiJ2aWRlbyIsZmx2OiJ2aWRlbyIsIjNncCI6InZpZGVvIix2b2I6InZpZGVvIixtNHY6InZpZGVvIixtcGVnOiJ2aWRlbyIsbTJ0czoidmlk''@;'; + put 'put ''ZW8iLG1vdjoidmlkZW8iLGRvYzoiZG9jIixkb2N4OiJkb2MiLGVwczoiZG9jIix0eHQ6ImRvYyIsb2R0OiJkb2MiLHJ0ZjoiZG9jIixwcHQ6InBwdCIscHB0eDoicHB0IixwcHM6InBwdCIscHBzeDoicHB0IixvZHA6InBwdCJ9LHk9aC5zcGxpdCgiLiIpO2lmKHkubGVuZ3RoPDIpcmV0dXJu''@;'; + put 'put ''ImFwcGxpY2F0aW9uIjtsZXQgQz15W3kubGVuZ3RoLTFdLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHZvaWQgMD09PXZbQ10/ImFwcGxpY2F0aW9uIjp2W0NdfX1yZXR1cm4gZC5taW1lX2RvYz1bImFwcGxpY2F0aW9uL21zd29yZCIsImFwcGxpY2F0aW9uL21zd29yZCIsImFwcGxpY2F0aW9uL3Zu''@;'; + put 'put ''ZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50IiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwudGVtcGxhdGUiLCJhcHBsaWNhdGlvbi92bmQubXMtd29yZC5kb2N1bWVu''@;'; + put 'put ''dC5tYWNyb0VuYWJsZWQuMTIiLCJhcHBsaWNhdGlvbi92bmQubXMtd29yZC50ZW1wbGF0ZS5tYWNyb0VuYWJsZWQuMTIiXSxkLm1pbWVfeHNsPVsiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsIiwi''@;'; + put 'put ''YXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50ZW1wbGF0ZSIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5z''@;'; + put 'put ''aGVldC5tYWNyb0VuYWJsZWQuMTIiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGVtcGxhdGUubWFjcm9FbmFibGVkLjEyIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvRW5hYmxlZC4xMiIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5iaW5hcnkubWFj''@;'; + put 'put ''cm9FbmFibGVkLjEyIl0sZC5taW1lX3BwdD1bImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50IiwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQiLCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCIsImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50IiwiYXBwbGljYXRp''@;'; + put 'put ''b24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbiIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50ZW1wbGF0ZSIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9y''@;'; + put 'put ''bWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3ciLCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5hZGRpbi5tYWNyb0VuYWJsZWQuMTIiLCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5wcmVzZW50YXRpb24ubWFjcm9FbmFibGVkLjEyIiwiYXBw''@;'; + put 'put ''bGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQucHJlc2VudGF0aW9uLm1hY3JvRW5hYmxlZC4xMiIsImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlc2hvdy5tYWNyb0VuYWJsZWQuMTIiXSxkLm1pbWVfcHNkPVsiaW1hZ2UvcGhvdG9zaG9wIiwiaW1hZ2UveC1waG90b3Nob3Ai''@;'; + put 'put ''LCJpbWFnZS9wc2QiLCJhcHBsaWNhdGlvbi9waG90b3Nob3AiLCJhcHBsaWNhdGlvbi9wc2QiLCJ6ei1hcHBsaWNhdGlvbi96ei13aW5hc3NvYy1wc2QiXSxkLm1pbWVfY29tcHJlc3M9WyJhcHBsaWNhdGlvbi94LWd0YXIiLCJhcHBsaWNhdGlvbi94LWdjb21wcmVzcyIsImFwcGxpY2F0aW9u''@;'; + put 'put ''L2NvbXByZXNzIiwiYXBwbGljYXRpb24veC10YXIiLCJhcHBsaWNhdGlvbi94LXJhci1jb21wcmVzc2VkIiwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwiYXBwbGljYXRpb24veC16aXAtY29tcHJlc3NlZCIsImFwcGxpY2F0aW9uL3ppcC1jb21wcmVzc2VkIiwiYXBwbGljYXRpb24veC03''@;'; + put 'put ''ei1jb21wcmVzc2VkIiwiYXBwbGljYXRpb24vZ3ppcCIsImFwcGxpY2F0aW9uL3gtYnppcDIiXSxkfSkoKTtjbGFzcyBiNXR7Y29uc3RydWN0b3IoZyl7dGhpcy5pc1VwbG9hZGluZz0hMSx0aGlzLnF1ZXVlPVtdLHRoaXMucHJvZ3Jlc3M9MCx0aGlzLl9uZXh0SW5kZXg9MCx0aGlzLm9wdGlv''@;'; + put 'put ''bnM9e2F1dG9VcGxvYWQ6ITEsaXNIVE1MNTohMCxmaWx0ZXJzOltdLHJlbW92ZUFmdGVyVXBsb2FkOiExLGRpc2FibGVNdWx0aXBhcnQ6ITEsZm9ybWF0RGF0YUZ1bmN0aW9uOmg9PmguX2ZpbGUsZm9ybWF0RGF0YUZ1bmN0aW9uSXNBc3luYzohMX0sdGhpcy5zZXRPcHRpb25zKGcpLHRoaXMu''@;'; + put 'put ''cmVzcG9uc2U9bmV3IGFyfXNldE9wdGlvbnMoZyl7dGhpcy5vcHRpb25zPU9iamVjdC5hc3NpZ24odGhpcy5vcHRpb25zLGcpLHRoaXMuYXV0aFRva2VuPXRoaXMub3B0aW9ucy5hdXRoVG9rZW4sdGhpcy5hdXRoVG9rZW5IZWFkZXI9dGhpcy5vcHRpb25zLmF1dGhUb2tlbkhlYWRlcnx8IkF1''@;'; + put 'put ''dGhvcml6YXRpb24iLHRoaXMuYXV0b1VwbG9hZD10aGlzLm9wdGlvbnMuYXV0b1VwbG9hZCx0aGlzLm9wdGlvbnMuZmlsdGVycy51bnNoaWZ0KHtuYW1lOiJxdWV1ZUxpbWl0Iixmbjp0aGlzLl9xdWV1ZUxpbWl0RmlsdGVyfSksdGhpcy5vcHRpb25zLm1heEZpbGVTaXplJiZ0aGlzLm9wdGlv''@;'; + put 'put ''bnMuZmlsdGVycy51bnNoaWZ0KHtuYW1lOiJmaWxlU2l6ZSIsZm46dGhpcy5fZmlsZVNpemVGaWx0ZXJ9KSx0aGlzLm9wdGlvbnMuYWxsb3dlZEZpbGVUeXBlJiZ0aGlzLm9wdGlvbnMuZmlsdGVycy51bnNoaWZ0KHtuYW1lOiJmaWxlVHlwZSIsZm46dGhpcy5fZmlsZVR5cGVGaWx0ZXJ9KSx0''@;'; + put 'put ''aGlzLm9wdGlvbnMuYWxsb3dlZE1pbWVUeXBlJiZ0aGlzLm9wdGlvbnMuZmlsdGVycy51bnNoaWZ0KHtuYW1lOiJtaW1lVHlwZSIsZm46dGhpcy5fbWltZVR5cGVGaWx0ZXJ9KTtmb3IobGV0IGg9MDtoPHRoaXMucXVldWUubGVuZ3RoO2grKyl0aGlzLnF1ZXVlW2hdLnVybD10aGlzLm9wdGlv''@;'; + put 'put ''bnMudXJsfWFkZFRvUXVldWUoZyxoLHYpe2xldCB5PVtdO2ZvcihsZXQgdWUgb2YgZyl5LnB1c2godWUpO2xldCBDPXRoaXMuX2dldEZpbHRlcnModiksST10aGlzLnF1ZXVlLmxlbmd0aCxqPVtdO3kubWFwKHVlPT57aHx8KGg9dGhpcy5vcHRpb25zKTtsZXQgX2U9bmV3IG1tZSh1ZSk7aWYo''@;'; + put 'put ''dGhpcy5faXNWYWxpZEZpbGUoX2UsQyxoKSl7bGV0IEJlPW5ldyBBNXQodGhpcyx1ZSxoKTtqLnB1c2goQmUpLHRoaXMucXVldWUucHVzaChCZSksdGhpcy5fb25BZnRlckFkZGluZ0ZpbGUoQmUpfWVsc2UgdGhpcy5fb25XaGVuQWRkaW5nRmlsZUZhaWxlZChfZSxDW3RoaXMuX2ZhaWxGaWx0''@;'; + put 'put ''ZXJJbmRleF0saCl9KSx0aGlzLnF1ZXVlLmxlbmd0aCE9PUkmJih0aGlzLl9vbkFmdGVyQWRkaW5nQWxsKGopLHRoaXMucHJvZ3Jlc3M9dGhpcy5fZ2V0VG90YWxQcm9ncmVzcygpKSx0aGlzLl9yZW5kZXIoKSx0aGlzLm9wdGlvbnMuYXV0b1VwbG9hZCYmdGhpcy51cGxvYWRBbGwoKX1yZW1v''@;'; + put 'put ''dmVGcm9tUXVldWUoZyl7bGV0IGg9dGhpcy5nZXRJbmRleE9mSXRlbShnKSx2PXRoaXMucXVldWVbaF07di5pc1VwbG9hZGluZyYmdi5jYW5jZWwoKSx0aGlzLnF1ZXVlLnNwbGljZShoLDEpLHRoaXMucHJvZ3Jlc3M9dGhpcy5fZ2V0VG90YWxQcm9ncmVzcygpfWNsZWFyUXVldWUoKXtmb3Io''@;'; + put 'put ''O3RoaXMucXVldWUubGVuZ3RoOyl0aGlzLnF1ZXVlWzBdLnJlbW92ZSgpO3RoaXMucHJvZ3Jlc3M9MH11cGxvYWRJdGVtKGcpe2xldCBoPXRoaXMuZ2V0SW5kZXhPZkl0ZW0oZyksdj10aGlzLnF1ZXVlW2hdLHk9dGhpcy5vcHRpb25zLmlzSFRNTDU/Il94aHJUcmFuc3BvcnQiOiJfaWZyYW1l''@;'; + put 'put ''VHJhbnNwb3J0Ijt2Ll9wcmVwYXJlVG9VcGxvYWRpbmcoKSwhdGhpcy5pc1VwbG9hZGluZyYmKHRoaXMuaXNVcGxvYWRpbmc9ITAsdGhpc1t5XSh2KSl9Y2FuY2VsSXRlbShnKXtsZXQgaD10aGlzLmdldEluZGV4T2ZJdGVtKGcpLHY9dGhpcy5xdWV1ZVtoXTt2JiZ2LmlzVXBsb2FkaW5nJiYo''@;'; + put 'put ''dGhpcy5vcHRpb25zLmlzSFRNTDU/di5feGhyOnYuX2Zvcm0pLmFib3J0KCl9dXBsb2FkQWxsKCl7bGV0IGc9dGhpcy5nZXROb3RVcGxvYWRlZEl0ZW1zKCkuZmlsdGVyKGg9PiFoLmlzVXBsb2FkaW5nKTshZy5sZW5ndGh8fChnLm1hcChoPT5oLl9wcmVwYXJlVG9VcGxvYWRpbmcoKSksZ1sw''@;'; + put 'put ''XS51cGxvYWQoKSl9Y2FuY2VsQWxsKCl7dGhpcy5nZXROb3RVcGxvYWRlZEl0ZW1zKCkubWFwKGg9PmguY2FuY2VsKCkpfWlzRmlsZShnKXtyZXR1cm4gZnVuY3Rpb24gdzV0KGQpe3JldHVybiBGaWxlJiZkIGluc3RhbmNlb2YgRmlsZX0oZyl9aXNGaWxlTGlrZU9iamVjdChnKXtyZXR1cm4g''@;'; + put 'put ''ZyBpbnN0YW5jZW9mIG1tZX1nZXRJbmRleE9mSXRlbShnKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGc/Zzp0aGlzLnF1ZXVlLmluZGV4T2YoZyl9Z2V0Tm90VXBsb2FkZWRJdGVtcygpe3JldHVybiB0aGlzLnF1ZXVlLmZpbHRlcihnPT4hZy5pc1VwbG9hZGVkKX1nZXRSZWFkeUl0ZW1zKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMucXVldWUuZmlsdGVyKGc9PmcuaXNSZWFkeSYmIWcuaXNVcGxvYWRpbmcpLnNvcnQoKGcsaCk9PmcuaW5kZXgtaC5pbmRleCl9ZGVzdHJveSgpe31vbkFmdGVyQWRkaW5nQWxsKGcpe3JldHVybntmaWxlSXRlbXM6Z319b25CdWlsZEl0ZW1Gb3JtKGcsaCl7cmV0dXJue2Zp''@;'; + put 'put ''bGVJdGVtOmcsZm9ybTpofX1vbkFmdGVyQWRkaW5nRmlsZShnKXtyZXR1cm57ZmlsZUl0ZW06Z319b25XaGVuQWRkaW5nRmlsZUZhaWxlZChnLGgsdil7cmV0dXJue2l0ZW06ZyxmaWx0ZXI6aCxvcHRpb25zOnZ9fW9uQmVmb3JlVXBsb2FkSXRlbShnKXtyZXR1cm57ZmlsZUl0ZW06Z319b25Q''@;'; + put 'put ''cm9ncmVzc0l0ZW0oZyxoKXtyZXR1cm57ZmlsZUl0ZW06Zyxwcm9ncmVzczpofX1vblByb2dyZXNzQWxsKGcpe3JldHVybntwcm9ncmVzczpnfX1vblN1Y2Nlc3NJdGVtKGcsaCx2LHkpe3JldHVybntpdGVtOmcscmVzcG9uc2U6aCxzdGF0dXM6dixoZWFkZXJzOnl9fW9uRXJyb3JJdGVtKGcs''@;'; + put 'put ''aCx2LHkpe3JldHVybntpdGVtOmcscmVzcG9uc2U6aCxzdGF0dXM6dixoZWFkZXJzOnl9fW9uQ2FuY2VsSXRlbShnLGgsdix5KXtyZXR1cm57aXRlbTpnLHJlc3BvbnNlOmgsc3RhdHVzOnYsaGVhZGVyczp5fX1vbkNvbXBsZXRlSXRlbShnLGgsdix5KXtyZXR1cm57aXRlbTpnLHJlc3BvbnNl''@;'; + put 'put ''Omgsc3RhdHVzOnYsaGVhZGVyczp5fX1vbkNvbXBsZXRlQWxsKCl7fV9taW1lVHlwZUZpbHRlcihnKXtyZXR1cm4hKHRoaXMub3B0aW9ucy5hbGxvd2VkTWltZVR5cGUmJi0xPT09dGhpcy5vcHRpb25zLmFsbG93ZWRNaW1lVHlwZS5pbmRleE9mKGcudHlwZSkpfV9maWxlU2l6ZUZpbHRlcihn''@;'; + put 'put ''KXtyZXR1cm4hKHRoaXMub3B0aW9ucy5tYXhGaWxlU2l6ZSYmZy5zaXplPnRoaXMub3B0aW9ucy5tYXhGaWxlU2l6ZSl9X2ZpbGVUeXBlRmlsdGVyKGcpe3JldHVybiEodGhpcy5vcHRpb25zLmFsbG93ZWRGaWxlVHlwZSYmLTE9PT10aGlzLm9wdGlvbnMuYWxsb3dlZEZpbGVUeXBlLmluZGV4''@;'; + put 'put ''T2YoeTV0LmdldE1pbWVDbGFzcyhnKSkpfV9vbkVycm9ySXRlbShnLGgsdix5KXtnLl9vbkVycm9yKGgsdix5KSx0aGlzLm9uRXJyb3JJdGVtKGcsaCx2LHkpfV9vbkNvbXBsZXRlSXRlbShnLGgsdix5KXtnLl9vbkNvbXBsZXRlKGgsdix5KSx0aGlzLm9uQ29tcGxldGVJdGVtKGcsaCx2LHkp''@;'; + put 'put ''O2xldCBDPXRoaXMuZ2V0UmVhZHlJdGVtcygpWzBdO3RoaXMuaXNVcGxvYWRpbmc9ITEsQz9DLnVwbG9hZCgpOih0aGlzLm9uQ29tcGxldGVBbGwoKSx0aGlzLnByb2dyZXNzPXRoaXMuX2dldFRvdGFsUHJvZ3Jlc3MoKSx0aGlzLl9yZW5kZXIoKSl9X2hlYWRlcnNHZXR0ZXIoZyl7cmV0dXJu''@;'; + put 'put ''IGg9Pmg/Z1toLnRvTG93ZXJDYXNlKCldfHx2b2lkIDA6Z31feGhyVHJhbnNwb3J0KGcpe2xldCB5LGg9dGhpcyx2PWcuX3hocj1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYodGhpcy5fb25CZWZvcmVVcGxvYWRJdGVtKGcpLCJudW1iZXIiIT10eXBlb2YgZy5fZmlsZS5zaXplKXRocm93IG5ldyBU''@;'; + put 'put ''eXBlRXJyb3IoIlRoZSBmaWxlIHNwZWNpZmllZCBpcyBubyBsb25nZXIgdmFsaWQiKTtpZih0aGlzLm9wdGlvbnMuZGlzYWJsZU11bHRpcGFydCl5PXRoaXMub3B0aW9ucy5mb3JtYXREYXRhRnVuY3Rpb24oZyk7ZWxzZXt5PW5ldyBGb3JtRGF0YSx0aGlzLl9vbkJ1aWxkSXRlbUZvcm0oZyx5''@;'; + put 'put ''KTtjb25zdCBDPSgpPT55LmFwcGVuZChnLmFsaWFzLGcuX2ZpbGUsZy5maWxlLm5hbWUpO3RoaXMub3B0aW9ucy5wYXJhbWV0ZXJzQmVmb3JlRmlsZXN8fEMoKSx2b2lkIDAhPT10aGlzLm9wdGlvbnMuYWRkaXRpb25hbFBhcmFtZXRlciYmT2JqZWN0LmtleXModGhpcy5vcHRpb25zLmFkZGl0''@;'; + put 'put ''aW9uYWxQYXJhbWV0ZXIpLmZvckVhY2goST0+e2xldCBqPXRoaXMub3B0aW9ucy5hZGRpdGlvbmFsUGFyYW1ldGVyW0ldOyJzdHJpbmciPT10eXBlb2YgaiYmai5pbmRleE9mKCJ7e2ZpbGVfbmFtZX19Iik+PTAmJihqPWoucmVwbGFjZSgie3tmaWxlX25hbWV9fSIsZy5maWxlLm5hbWUpKSx5''@;'; + put 'put ''LmFwcGVuZChJLGopfSksdGhpcy5vcHRpb25zLnBhcmFtZXRlcnNCZWZvcmVGaWxlcyYmQygpfWlmKHYudXBsb2FkLm9ucHJvZ3Jlc3M9Qz0+e2xldCBJPU1hdGgucm91bmQoQy5sZW5ndGhDb21wdXRhYmxlPzEwMCpDLmxvYWRlZC9DLnRvdGFsOjApO3RoaXMuX29uUHJvZ3Jlc3NJdGVtKGcs''@;'; + put 'put ''SSl9LHYub25sb2FkPSgpPT57bGV0IEM9dGhpcy5fcGFyc2VIZWFkZXJzKHYuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLEk9dGhpcy5fdHJhbnNmb3JtUmVzcG9uc2Uodi5yZXNwb25zZSxDKTt0aGlzWyJfb24iKyh0aGlzLl9pc1N1Y2Nlc3NDb2RlKHYuc3RhdHVzKT8iU3VjY2VzcyI6IkVy''@;'; + put 'put ''cm9yIikrIkl0ZW0iXShnLEksdi5zdGF0dXMsQyksdGhpcy5fb25Db21wbGV0ZUl0ZW0oZyxJLHYuc3RhdHVzLEMpfSx2Lm9uZXJyb3I9KCk9PntsZXQgQz10aGlzLl9wYXJzZUhlYWRlcnModi5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksST10aGlzLl90cmFuc2Zvcm1SZXNwb25zZSh2LnJl''@;'; + put 'put ''c3BvbnNlLEMpO3RoaXMuX29uRXJyb3JJdGVtKGcsSSx2LnN0YXR1cyxDKSx0aGlzLl9vbkNvbXBsZXRlSXRlbShnLEksdi5zdGF0dXMsQyl9LHYub25hYm9ydD0oKT0+e2xldCBDPXRoaXMuX3BhcnNlSGVhZGVycyh2LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxJPXRoaXMuX3RyYW5zZm9y''@;'; + put 'put ''bVJlc3BvbnNlKHYucmVzcG9uc2UsQyk7dGhpcy5fb25DYW5jZWxJdGVtKGcsSSx2LnN0YXR1cyxDKSx0aGlzLl9vbkNvbXBsZXRlSXRlbShnLEksdi5zdGF0dXMsQyl9LHYub3BlbihnLm1ldGhvZCxnLnVybCwhMCksdi53aXRoQ3JlZGVudGlhbHM9Zy53aXRoQ3JlZGVudGlhbHMsdGhpcy5v''@;'; + put 'put ''cHRpb25zLmhlYWRlcnMpZm9yKGxldCBDIG9mIHRoaXMub3B0aW9ucy5oZWFkZXJzKXYuc2V0UmVxdWVzdEhlYWRlcihDLm5hbWUsQy52YWx1ZSk7aWYoZy5oZWFkZXJzLmxlbmd0aClmb3IobGV0IEMgb2YgZy5oZWFkZXJzKXYuc2V0UmVxdWVzdEhlYWRlcihDLm5hbWUsQy52YWx1ZSk7dGhp''@;'; + put 'put ''cy5hdXRoVG9rZW4mJnYuc2V0UmVxdWVzdEhlYWRlcih0aGlzLmF1dGhUb2tlbkhlYWRlcix0aGlzLmF1dGhUb2tlbiksdi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXt2LnJlYWR5U3RhdGU9PVhNTEh0dHBSZXF1ZXN0LkRPTkUmJmgucmVzcG9uc2UuZW1pdCh2LnJlc3BvbnNlVGV4''@;'; + put 'put ''dCl9LHRoaXMub3B0aW9ucy5mb3JtYXREYXRhRnVuY3Rpb25Jc0FzeW5jP3kudGhlbihDPT52LnNlbmQoSlNPTi5zdHJpbmdpZnkoQykpKTp2LnNlbmQoeSksdGhpcy5fcmVuZGVyKCl9X2dldFRvdGFsUHJvZ3Jlc3MoZz0wKXtpZih0aGlzLm9wdGlvbnMucmVtb3ZlQWZ0ZXJVcGxvYWQpcmV0''@;'; + put 'put ''dXJuIGc7bGV0IGg9dGhpcy5nZXROb3RVcGxvYWRlZEl0ZW1zKCkubGVuZ3RoLHk9MTAwL3RoaXMucXVldWUubGVuZ3RoO3JldHVybiBNYXRoLnJvdW5kKChoP3RoaXMucXVldWUubGVuZ3RoLWg6dGhpcy5xdWV1ZS5sZW5ndGgpKnkrZyp5LzEwMCl9X2dldEZpbHRlcnMoZyl7aWYoIWcpcmV0''@;'; + put 'put ''dXJuIHRoaXMub3B0aW9ucy5maWx0ZXJzO2lmKEFycmF5LmlzQXJyYXkoZykpcmV0dXJuIGc7aWYoInN0cmluZyI9PXR5cGVvZiBnKXtsZXQgaD1nLm1hdGNoKC9bXlxzLF0rL2cpO3JldHVybiB0aGlzLm9wdGlvbnMuZmlsdGVycy5maWx0ZXIodj0+LTEhPT1oLmluZGV4T2Yodi5uYW1lKSl9''@;'; + put 'put ''cmV0dXJuIHRoaXMub3B0aW9ucy5maWx0ZXJzfV9yZW5kZXIoKXt9X3F1ZXVlTGltaXRGaWx0ZXIoKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5vcHRpb25zLnF1ZXVlTGltaXR8fHRoaXMucXVldWUubGVuZ3RoPHRoaXMub3B0aW9ucy5xdWV1ZUxpbWl0fV9pc1ZhbGlkRmlsZShnLGgsdil7cmV0''@;'; + put 'put ''dXJuIHRoaXMuX2ZhaWxGaWx0ZXJJbmRleD0tMSwhaC5sZW5ndGh8fGguZXZlcnkoeT0+KHRoaXMuX2ZhaWxGaWx0ZXJJbmRleCsrLHkuZm4uY2FsbCh0aGlzLGcsdikpKX1faXNTdWNjZXNzQ29kZShnKXtyZXR1cm4gZz49MjAwJiZnPDMwMHx8MzA0PT09Z31fdHJhbnNmb3JtUmVzcG9uc2Uo''@;'; + put 'put ''ZyxoKXtyZXR1cm4gZ31fcGFyc2VIZWFkZXJzKGcpe2xldCB2LHksQyxoPXt9O3JldHVybiBnJiZnLnNwbGl0KCJcbiIpLm1hcChJPT57Qz1JLmluZGV4T2YoIjoiKSx2PUkuc2xpY2UoMCxDKS50cmltKCkudG9Mb3dlckNhc2UoKSx5PUkuc2xpY2UoQysxKS50cmltKCksdiYmKGhbdl09aFt2''@;'; + put 'put ''XT9oW3ZdKyIsICIreTp5KX0pLGh9X29uV2hlbkFkZGluZ0ZpbGVGYWlsZWQoZyxoLHYpe3RoaXMub25XaGVuQWRkaW5nRmlsZUZhaWxlZChnLGgsdil9X29uQWZ0ZXJBZGRpbmdGaWxlKGcpe3RoaXMub25BZnRlckFkZGluZ0ZpbGUoZyl9X29uQWZ0ZXJBZGRpbmdBbGwoZyl7dGhpcy5vbkFm''@;'; + put 'put ''dGVyQWRkaW5nQWxsKGcpfV9vbkJlZm9yZVVwbG9hZEl0ZW0oZyl7Zy5fb25CZWZvcmVVcGxvYWQoKSx0aGlzLm9uQmVmb3JlVXBsb2FkSXRlbShnKX1fb25CdWlsZEl0ZW1Gb3JtKGcsaCl7Zy5fb25CdWlsZEZvcm0oaCksdGhpcy5vbkJ1aWxkSXRlbUZvcm0oZyxoKX1fb25Qcm9ncmVzc0l0''@;'; + put 'put ''ZW0oZyxoKXtsZXQgdj10aGlzLl9nZXRUb3RhbFByb2dyZXNzKGgpO3RoaXMucHJvZ3Jlc3M9dixnLl9vblByb2dyZXNzKGgpLHRoaXMub25Qcm9ncmVzc0l0ZW0oZyxoKSx0aGlzLm9uUHJvZ3Jlc3NBbGwodiksdGhpcy5fcmVuZGVyKCl9X29uU3VjY2Vzc0l0ZW0oZyxoLHYseSl7Zy5fb25T''@;'; + put 'put ''dWNjZXNzKGgsdix5KSx0aGlzLm9uU3VjY2Vzc0l0ZW0oZyxoLHYseSl9X29uQ2FuY2VsSXRlbShnLGgsdix5KXtnLl9vbkNhbmNlbChoLHYseSksdGhpcy5vbkNhbmNlbEl0ZW0oZyxoLHYseSl9fWxldCBfNXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLm9uRmlsZVNlbGVj''@;'; + put 'put ''dGVkPW5ldyBhcix0aGlzLmVsZW1lbnQ9aH1nZXRPcHRpb25zKCl7cmV0dXJuIHRoaXMudXBsb2FkZXIub3B0aW9uc31nZXRGaWx0ZXJzKCl7cmV0dXJue319aXNFbXB0eUFmdGVyU2VsZWN0aW9uKCl7cmV0dXJuISF0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5hdHRyaWJ1dGVzLm11bHRp''@;'; + put 'put ''cGxlfW9uQ2hhbmdlKCl7bGV0IGg9dGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZmlsZXMsdj10aGlzLmdldE9wdGlvbnMoKSx5PXRoaXMuZ2V0RmlsdGVycygpO3RoaXMudXBsb2FkZXIuYWRkVG9RdWV1ZShoLHYseSksdGhpcy5vbkZpbGVTZWxlY3RlZC5lbWl0KGgpLHRoaXMuaXNFbXB0''@;'; + put 'put ''eUFmdGVyU2VsZWN0aW9uKCkmJih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZT0iIil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nMkZpbGVTZWxl''@;'; + put 'put ''Y3QiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZZbigiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiB2Lm9uQ2hhbmdlKCl9KX0saW5wdXRzOnt1cGxvYWRlcjoidXBsb2FkZXIifSxvdXRwdXRzOntvbkZpbGVTZWxlY3RlZDoib25GaWxlU2VsZWN0ZWQifX0pLGR9KSgp''@;'; + put 'put ''LEM1dD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuZmlsZU92ZXI9bmV3IGFyLHRoaXMub25GaWxlRHJvcD1uZXcgYXIsdGhpcy5lbGVtZW50PWh9Z2V0T3B0aW9ucygpe3JldHVybiB0aGlzLnVwbG9hZGVyLm9wdGlvbnN9Z2V0RmlsdGVycygpe3JldHVybnt9fW9uRHJvcCho''@;'; + put 'put ''KXtsZXQgdj10aGlzLl9nZXRUcmFuc2ZlcihoKTtpZighdilyZXR1cm47bGV0IHk9dGhpcy5nZXRPcHRpb25zKCksQz10aGlzLmdldEZpbHRlcnMoKTt0aGlzLl9wcmV2ZW50QW5kU3RvcChoKSx0aGlzLnVwbG9hZGVyLmFkZFRvUXVldWUodi5maWxlcyx5LEMpLHRoaXMuZmlsZU92ZXIuZW1p''@;'; + put 'put ''dCghMSksdGhpcy5vbkZpbGVEcm9wLmVtaXQodi5maWxlcyl9b25EcmFnT3ZlcihoKXtsZXQgdj10aGlzLl9nZXRUcmFuc2ZlcihoKTshdGhpcy5faGF2ZUZpbGVzKHYudHlwZXMpfHwodi5kcm9wRWZmZWN0PSJjb3B5Iix0aGlzLl9wcmV2ZW50QW5kU3RvcChoKSx0aGlzLmZpbGVPdmVyLmVt''@;'; + put 'put ''aXQoITApKX1vbkRyYWdMZWF2ZShoKXt0aGlzLmVsZW1lbnQmJmguY3VycmVudFRhcmdldD09PXRoaXMuZWxlbWVudFswXXx8KHRoaXMuX3ByZXZlbnRBbmRTdG9wKGgpLHRoaXMuZmlsZU92ZXIuZW1pdCghMSkpfV9nZXRUcmFuc2ZlcihoKXtyZXR1cm4gaC5kYXRhVHJhbnNmZXI/aC5kYXRh''@;'; + put 'put ''VHJhbnNmZXI6aC5vcmlnaW5hbEV2ZW50LmRhdGFUcmFuc2Zlcn1fcHJldmVudEFuZFN0b3AoaCl7aC5wcmV2ZW50RGVmYXVsdCgpLGguc3RvcFByb3BhZ2F0aW9uKCl9X2hhdmVGaWxlcyhoKXtyZXR1cm4hIWgmJihoLmluZGV4T2Y/LTEhPT1oLmluZGV4T2YoIkZpbGVzIik6ISFoLmNvbnRh''@;'; + put 'put ''aW5zJiZoLmNvbnRhaW5zKCJGaWxlcyIpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoYm8pKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwibmcyRmlsZURyb3AiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgs''@;'; + put 'put ''dil7MSZoJiZZbigiZHJvcCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25Ecm9wKEMpfSkoImRyYWdvdmVyIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbkRyYWdPdmVyKEMpfSkoImRyYWdsZWF2ZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25EcmFnTGVhdmUoQyl9KX0saW5wdXRzOnt1cGxvYWRl''@;'; + put 'put ''cjoidXBsb2FkZXIifSxvdXRwdXRzOntmaWxlT3ZlcjoiZmlsZU92ZXIiLG9uRmlsZURyb3A6Im9uRmlsZURyb3AifX0pLGR9KSgpLGs1dD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6''@;'; + put 'put ''ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltiYV19KSxkfSkoKSx2bWU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbYmFdfSks''@;'; + put 'put ''ZH0pKCksdkxlPSgoKT0+e2NsYXNzIGR7bmdPbkluaXQoKXt9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe3Byb3ZpZGVyczpba0gsQ0hdLGltcG9ydHM6W2JhLG5kLFhoLFVM''@;'; + put 'put ''LHZtZSxMamUuZm9yUm9vdCgpXX0pLGR9KSgpLEhuZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltiYV19KSxkfSkoKSxBbWU9KCgp''@;'; + put 'put ''PT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbYmEsbmQsVUwsWGgsdkxlLEhuZSx2bWVdfSksZH0pKCk7dmFyIHltZSx3bWUsYm1lLF9tZSxD''@;'; + put 'put ''bWUsQU09TCgzMDYyOCk7TCg0Mzk5KSxtTGUoKSxmdW5jdGlvbiBTNXQoZCl7dmFyIGc9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5qUXVlcnk7IWd8fChnLmZuLmhhbmRzb250YWJsZT1mdW5jdGlvbihoKXt2YXIgSSx2PXRoaXMuZmlyc3QoKSx5PXYuZGF0YSgiaGFuZHNv''@;'; + put 'put ''bnRhYmxlIik7aWYoInN0cmluZyIhPXR5cGVvZiBoKXt2YXIgQz1ofHx7fTtyZXR1cm4geT95LnVwZGF0ZVNldHRpbmdzKEMpOih5PW5ldyBkLkNvcmUodlswXSxDKSx2LmRhdGEoImhhbmRzb250YWJsZSIseSkseS5pbml0KCkpLHZ9aWYoeSl7aWYodm9pZCAwPT09eVtoXSl0aHJvdyBuZXcg''@;'; + put 'put ''RXJyb3IoIkhhbmRzb250YWJsZSBkbyBub3QgcHJvdmlkZSBhY3Rpb246ICIuY29uY2F0KGgpKTtmb3IodmFyIGosdWU9YXJndW1lbnRzLmxlbmd0aCxfZT1uZXcgQXJyYXkodWU+MT91ZS0xOjApLEJlPTE7QmU8dWU7QmUrKylfZVtCZS0xXT1hcmd1bWVudHNbQmVdO0k9KGo9eVtoXSkuY2Fs''@;'; + put 'put ''bC5hcHBseShqLFt5XS5jb25jYXQoX2UpKSwiZGVzdHJveSI9PT1oJiZ2LnJlbW92ZURhdGEoKX1yZXR1cm4gSX0pfShKbCksSmwuX19HaG9zdFRhYmxlPXo2ZSxKbC5fZ2V0TGlzdGVuZXJzQ291bnRlcj1mdW5jdGlvbiBCWmUoKXtyZXR1cm4gYWVlfSxKbC5fZ2V0UmVnaXN0ZXJlZE1hcHND''@;'; + put 'put ''b3VudGVyPWZ1bmN0aW9uIFFKZSgpe3JldHVybiBwNGV9LEpsLkV2ZW50TWFuYWdlcj1MMTt2YXIgTTV0PVtCLE1lLGVlLEosbWUsaWUsVSxOLEUsUSxsZSxXXSxFNXQ9W1osWV07SmwuaGVscGVyPXt9LEpsLmRvbT17fSxVcihNNXQsZnVuY3Rpb24oZCl7VXIoT2JqZWN0LmdldE93blByb3Bl''@;'; + put 'put ''cnR5TmFtZXMoZCksZnVuY3Rpb24oZyl7Il8iIT09Zy5jaGFyQXQoMCkmJihKbC5oZWxwZXJbZ109ZFtnXSl9KX0pLFVyKEU1dCxmdW5jdGlvbihkKXtVcihPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhkKSxmdW5jdGlvbihnKXsiXyIhPT1nLmNoYXJBdCgwKSYmKEpsLmRvbVtnXT1kW2dd''@;'; + put 'put ''KX0pfSksSmwuY2VsbFR5cGVzPW51bGwhPT0oeW1lPUpsLmNlbGxUeXBlcykmJnZvaWQgMCE9PXltZT95bWU6e30sVXIoUFFlKCksZnVuY3Rpb24oZCl7SmwuY2VsbFR5cGVzW2RdPVplZShkKX0pLEpsLmNlbGxUeXBlcy5yZWdpc3RlckNlbGxUeXBlPWs4LEpsLmNlbGxUeXBlcy5nZXRDZWxs''@;'; + put 'put ''VHlwZT1aZWUsSmwuZWRpdG9ycz1udWxsIT09KHdtZT1KbC5lZGl0b3JzKSYmdm9pZCAwIT09d21lP3dtZTp7fSxVcihUWmUoKSxmdW5jdGlvbihkKXtKbC5lZGl0b3JzWyIiLmNvbmNhdChhZChkKSwiRWRpdG9yIildPXJfZShkKX0pLEpsLmVkaXRvcnMucmVnaXN0ZXJFZGl0b3I9bGQsSmwu''@;'; + put 'put ''ZWRpdG9ycy5nZXRFZGl0b3I9cl9lLEpsLnJlbmRlcmVycz1udWxsIT09KGJtZT1KbC5yZW5kZXJlcnMpJiZ2b2lkIDAhPT1ibWU/Ym1lOnt9LFVyKFp6ZSgpLGZ1bmN0aW9uKGQpe3ZhciBnPXozZShkKTsiYmFzZSI9PT1kJiYoSmwucmVuZGVyZXJzLmNlbGxEZWNvcmF0b3I9ZyksSmwucmVu''@;'; + put 'put ''ZGVyZXJzWyIiLmNvbmNhdChhZChkKSwiUmVuZGVyZXIiKV09Z30pLEpsLnJlbmRlcmVycy5yZWdpc3RlclJlbmRlcmVyPU1nLEpsLnJlbmRlcmVycy5nZXRSZW5kZXJlcj16M2UsSmwudmFsaWRhdG9ycz1udWxsIT09KF9tZT1KbC52YWxpZGF0b3JzKSYmdm9pZCAwIT09X21lP19tZTp7fSxV''@;'; + put 'put ''cihXemUoKSxmdW5jdGlvbihkKXtKbC52YWxpZGF0b3JzWyIiLmNvbmNhdChhZChkKSwiVmFsaWRhdG9yIildPUczZShkKX0pLEpsLnZhbGlkYXRvcnMucmVnaXN0ZXJWYWxpZGF0b3I9YU8sSmwudmFsaWRhdG9ycy5nZXRWYWxpZGF0b3I9RzNlLEpsLnBsdWdpbnM9bnVsbCE9PShDbWU9Smwu''@;'; + put 'put ''cGx1Z2lucykmJnZvaWQgMCE9PUNtZT9DbWU6e30sVXIoWjNlKCksZnVuY3Rpb24oZCl7SmwucGx1Z2luc1tkXT16WihkKX0pLEpsLnBsdWdpbnNbIiIuY29uY2F0KGFkKFlzLlBMVUdJTl9LRVkpLCJQbHVnaW4iKV09WXMsSmwucGx1Z2lucy5yZWdpc3RlclBsdWdpbj1EcyxKbC5wbHVnaW5z''@;'; + put 'put ''LmdldFBsdWdpbj16Wjtjb25zdCB4NXQ9SmwsQUxlPShkLGcsaCk9Pntmb3IobGV0IHYgb2YgZCl7Y29uc3QgeT1nLmZpbmQoST0+SS5kYXRhPT09di5OQU1FKSxDPWgudmFyc1t2Lk5BTUVdO0MmJih2LlRZUEU9WyJEQVRFIiwiREFURVRJTUUiLCJUSU1FIl0uaW5jbHVkZXModi5ERFRZUEUp''@;'; + put 'put ''PyJudW0iOkMudHlwZSkseSYmdi5ERVNDJiYoeS5kZXNjPXYuREVTQykseSYmQy5sZW5ndGgmJih5Lmxlbmd0aD1wYXJzZUludChDLmxlbmd0aCkpLHkmJnYuQ0xTX1JVTEUmJih5LmNsc1J1bGU9di5DTFNfUlVMRSl9cmV0dXJuIGd9O2Z1bmN0aW9uIGttZShkLGcpe2lmKG51bGw9PWR8fCFp''@;'; + put 'put ''c05hTihkKSYmaXNGaW5pdGUoZCkpcmV0dXJuIGcmJmcoITApLCEwO2NvbnN0IGg9KDAseXcuaXNTcGVjaWFsTWlzc2luZykoZCk7cmV0dXJuIGcmJmcoaCksaH1jb25zdCB5TGU9e0NBU0U6KGQsZyk9Pntzd2l0Y2goZyl7Y2FzZSJVUENBU0UiOnJldHVybiEhW3ZvaWQgMCxudWxsXS5pbmNs''@;'; + put 'put ''dWRlcyhkKXx8InN0cmluZyI9PXR5cGVvZiBkJiZkLnRvU3RyaW5nKCk9PT1kLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKTtjYXNlIkxPV0NBU0UiOnJldHVybiEhW3ZvaWQgMCxudWxsXS5pbmNsdWRlcyhkKXx8InN0cmluZyI9PXR5cGVvZiBkJiZkLnRvU3RyaW5nKCk9PT1kLnRvU3RyaW5n''@;'; + put 'put ''KCkudG9Mb3dlckNhc2UoKX1yZXR1cm4hMH0sTUlOVkFMOihkLGcpPT57Y29uc3QgaD1rbWUoZCksdj1wYXJzZUZsb2F0KGQpO3JldHVybighaHx8IWlzTmFOKHYpKSYmdj49TnVtYmVyKGcudG9TdHJpbmcoKSl9LE1BWFZBTDooZCxnKT0+e2NvbnN0IGg9a21lKGQpLHY9cGFyc2VGbG9hdChk''@;'; + put 'put ''KTtyZXR1cm4hKCFofHwhaXNOYU4odikpfHx2PD1OdW1iZXIoZy50b1N0cmluZygpKX0sTk9UTlVMTDooZCxnKT0+bnVsbCE9ZCYmZC50b1N0cmluZygpLmxlbmd0aD4wfTtjbGFzcyBMNXR7Y29uc3RydWN0b3IoZyxoLHYseSxDLEkpe3RoaXMucnVsZXM9W10sdGhpcy5kcXJ1bGVzPVtdLHRo''@;'; + put 'put ''aXMuZHFkYXRhPVtdLHRoaXMuaGlkZGVuQ29sdW1ucz1bXSx0aGlzLnByaW1hcnlLZXlzPVtdLHRoaXMuZXhlY3V0ZUhvdFZhbGlkYXRvcj0oaix1ZSxfZSk9Pntjb25zdCBCZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saikse3ZhbGlkYXRvcjp2b2lkIDAsY29ycmVjdEZvcm1h''@;'; + put 'put ''dDohMSxyb3c6MCxjb2w6MCxpbnN0YW5jZTpuZXcgeDV0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHt9KSx2aXN1YWxSb3c6MCx2aXN1YWxDb2w6MCxwcm9wOjB9KTtudWxsPT11ZSYmKHVlPSIiKSxqJiZqLnZhbGlkYXRvciYmImZ1bmN0aW9uIj09dHlwZW9mIGoudmFsaWRhdG9y''@;'; + put 'put ''P2oudmFsaWRhdG9yLmNhbGwoQmUsdWUsTmU9PntfZSYmX2UoTmUpfSk6X2UmJl9lKCExKX0sdGhpcy5zYXNwYXJhbXM9Zyx0aGlzLmhvdEluc3RhbmNlPUksdGhpcy5ydWxlcz0oZD0+e3RyeXtyZXR1cm4gSlNPTi5wYXJzZShgWyR7ZH1dYCl9Y2F0Y2goZyl7cmV0dXJuW119fSkoZy5DT0xU''@;'; + put 'put ''WVBFKSx0aGlzLnJ1bGVzPUFMZSh2LHRoaXMucnVsZXMsaCksdGhpcy5kcXJ1bGVzPXksdGhpcy5kcWRhdGE9Qyx0aGlzLnByaW1hcnlLZXlzPWcuUEsuc3BsaXQoIiAiKSx0aGlzLnVwZGF0ZURxRGF0YSgpLHRoaXMuc2V0dXBWYWxpZGF0aW9ucygpfWdldFJ1bGVzKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''cnVsZXN9Z2V0UnVsZShnKXtjb25zdCBoPXRoaXMuZ2V0UnVsZUluZGV4KGcpO3JldHVybiB0aGlzLnJ1bGVzW2hdfWdldEhpZGRlbkNvbHVtbnMoKXtyZXR1cm4gdGhpcy5oaWRkZW5Db2x1bW5zfXVwZGF0ZVJ1bGUoZyxoKXtsZXQgdj10aGlzLmdldFJ1bGVJbmRleChnKTt0aGlzLnJ1bGVz''@;'; + put 'put ''W3ZdPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLnJ1bGVzW3ZdKSxoKX1yZW1vdmVSdWxlKGcpe2NvbnN0IGg9dGhpcy5nZXRSdWxlSW5kZXgoZyk7dGhpcy5ydWxlcy5zcGxpY2UoaCwxKX1nZXREcURldGFpbHMoZyl7cmV0dXJuIGc/dGhpcy5kcXJ1bGVzLmZpbHRlciho''@;'; + put 'put ''PT5oLkJBU0VfQ09MPT09Zyk6dGhpcy5kcXJ1bGVzfWlzRHFDb2woZyl7cmV0dXJuISF0aGlzLmRxcnVsZXMuZmluZChoPT5oLkJBU0VfQ09MPT09Zyl9aGFzRHFSdWxlcyhnLGgsdj0hMSl7cmV0dXJuIHY/dGhpcy5kcXJ1bGVzLmZpbHRlcih5PT55LkJBU0VfQ09MPT09ZyYmaC5pbmNsdWRl''@;'; + put 'put ''cyh5LlJVTEVfVFlQRSkpLmxlbmd0aD09PWgubGVuZ3RoOiEhdGhpcy5kcXJ1bGVzLmZpbmQoeT0+eS5CQVNFX0NPTD09PWcmJmguaW5jbHVkZXMoeS5SVUxFX1RZUEUpKX1nZXREcURyb3Bkb3duU291cmNlKGcpe2xldCBoPVtdO3JldHVybiB0aGlzLmRxcnVsZXMuZm9yRWFjaCh2PT57di5C''@;'; + put 'put ''QVNFX0NPTC50b1N0cmluZygpPT09Zy5kYXRhJiZnLmRhdGEudG9TdHJpbmcoKSYmWyJIQVJEU0VMRUNUIiwiU09GVFNFTEVDVCIsIkhBUkRTRUxFQ1RfSE9PSyIsIlNPRlRTRUxFQ1RfSE9PSyJdLmluY2x1ZGVzKHYuUlVMRV9UWVBFLnRvU3RyaW5nKCkpJiZ0aGlzLmRxZGF0YS5maWx0ZXIo''@;'; + put 'put ''eT0+eS5CQVNFX0NPTD09PXYuQkFTRV9DT0wpLmZvckVhY2goeT0+e2gucHVzaChnLnR5cGUmJiJudW1lcmljIj09PWcudHlwZT9OdW1iZXIoeS5SVUxFX0RBVEEpOnkuUlVMRV9EQVRBKX0pfSksaH11cGRhdGVEcURhdGEoKXt0aGlzLmRxZGF0YS5sZW5ndGg+MCYmKGQ9Pntjb25zdCBnPVtd''@;'; + put 'put ''O3JldHVybiB0aGlzLmRxZGF0YS5mb3JFYWNoKGg9PntnLmluY2x1ZGVzKGguQkFTRV9DT0wpfHxnLnB1c2goaC5CQVNFX0NPTCl9KSxnfSkoKS5mb3JFYWNoKGg9PntsZXQgdj0hMTt0aGlzLmRxcnVsZXMubGVuZ3RoPjAmJnRoaXMuZHFydWxlcy5mb3JFYWNoKHk9Pnt5LkJBU0VfQ09MPT09''@;'; + put 'put ''aCYmKCJTT0ZUU0VMRUNUIj09PXkuUlVMRV9UWVBFfHwiSEFSRFNFTEVDVCI9PT15LlJVTEVfVFlQRSkmJih2PSEwKX0pLHZ8fHRoaXMuZHFydWxlcy5wdXNoKHtCQVNFX0NPTDpoLFJVTEVfVFlQRToiU09GVFNFTEVDVCIsUlVMRV9WQUxVRTpoLFg6MX0pfSl9c2V0dXBWYWxpZGF0aW9ucygp''@;'; + put 'put ''e3ZhciBnO2ZvcihsZXQgaD0wO2g8dGhpcy5ydWxlcy5sZW5ndGg7aCsrKXtjb25zdCB2PXRoaXMucnVsZXNbaF0uZGF0YXx8IiI7aWYoIl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIhPT12KXtpZih0aGlzLmlzRHFDb2wodikpe2xldCBDPXRoaXMuZ2V0RHFEcm9wZG93blNvdXJj''@;'; + put 'put ''ZSh0aGlzLnJ1bGVzW2hdKTtDLmxlbmd0aD4wJiYodGhpcy5ydWxlc1toXS5zb3VyY2U9Qyx0aGlzLnJ1bGVzW2hdLnR5cGU9ImF1dG9jb21wbGV0ZSIsdGhpcy5ydWxlc1toXS5maWx0ZXI9ITEpLHRoaXMuaGFzRHFSdWxlcyh2LFsiU09GVFNFTEVDVCJdKSYmKHRoaXMucnVsZXNbaF0uc3Ry''@;'; + put 'put ''aWN0PSExKSx0aGlzLmhhc0RxUnVsZXModixbIkhBUkRTRUxFQ1QiXSkmJih0aGlzLnJ1bGVzW2hdLnN0cmljdD0hMCksdGhpcy5oYXNEcVJ1bGVzKHYsWyJTT0ZUU0VMRUNUX0hPT0siXSkmJih0aGlzLnJ1bGVzW2hdLnN0cmljdD0hMSksdGhpcy5oYXNEcVJ1bGVzKHYsWyJIQVJEU0VMRUNU''@;'; + put 'put ''X0hPT0siXSkmJih0aGlzLnJ1bGVzW2hdLnN0cmljdD0hMCksdGhpcy5oYXNEcVJ1bGVzKHYsWyJOT1ROVUxMIl0pJiYodGhpcy5ydWxlc1toXS5hbGxvd0VtcHR5PSExKX0idHJ1ZSI9PT10aGlzLnJ1bGVzW2hdLmNvcnJlY3RGb3JtYXQmJih0aGlzLnJ1bGVzW2hdLmNvcnJlY3RGb3JtYXQ9''@;'; + put 'put ''ITApLHRoaXMuc2V0RGVmYXVsdFZhbGlkYXRvcih0aGlzLGgpLHRoaXMuc2V0Q29sdW1uTGV2ZWxTZWN1cml0eShoKX19bnVsbCE9PShnPXRoaXMuc2FzcGFyYW1zKSYmdm9pZCAwIT09ZyYmZy5DTFNfRkxBRyYmdGhpcy5oaWRkZW5Db2x1bW5zLnB1c2goMCl9c2V0RGVmYXVsdFZhbGlkYXRv''@;'; + put 'put ''cihnLGgpe3RoaXMucnVsZXNbaF0udmFsaWRhdG9yPWZ1bmN0aW9uKHYseSl7dmFyIEM7Y29uc3QgST1udWxsPT09KEM9Zy5ydWxlc1toXS5kYXRhKXx8dm9pZCAwPT09Qz92b2lkIDA6Qy50b1N0cmluZygpLGo9Zy5ydWxlc1toXS50eXBlfHwiIjtsZXQgdWU9bnVsbDtyZXR1cm4iYXV0b2Nv''@;'; + put 'put ''bXBsZXRlIiE9PXRoaXMuZWRpdG9yfHwoZy5nZXRIYW5kc29udGFibGVWYWxpZGF0b3IoImF1dG9jb21wbGV0ZSIpLmNhbGwodGhpcyx2LF9lPT57dWU9X2V9KSx1ZSk/KGcuZ2V0SGFuZHNvbnRhYmxlVmFsaWRhdG9yKGopLmNhbGwodGhpcyx2LF9lPT57dWU9X2V9KSx1ZT9nLmxlbmd0aENo''@;'; + put 'put ''ZWNrKHYsZy5ydWxlc1toXS5sZW5ndGgsaik/Zy5pc0RxQ29sKEl8fCIiKSYmISgoZCxnKT0+e2ZvcihsZXQgaCBvZiBkKWlmKHlMZVtoLlJVTEVfVFlQRV0mJiF5TGVbaC5SVUxFX1RZUEVdKGcsaC5SVUxFX1ZBTFVFKSlyZXR1cm4gY29uc29sZS53YXJuKGBEUSBJbnZhbGlkIFJlYXNvbjog''@;'; + put 'put ''JHtoLlJVTEVfVFlQRX1cblZhbHVlOiAke2d9KVxuUnVsZSBWYWx1ZTogJHtoLlJVTEVfVkFMVUUubGVuZ3RoPjAmJiIgIiE9PWguUlVMRV9WQUxVRT9oLlJVTEVfVkFMVUU6Ik5vdCBkZWZpbmVkIn1gKSwhMTtyZXR1cm4hMH0pKGcuZ2V0RHFEZXRhaWxzKEl8fCIiKSx2KT8oY29uc29sZS53''@;'; + put 'put ''YXJuKGBEUSBWYWxpZGF0aW9uIC0gaW52YWxpZCAoVmFsdWU6ICR7dn0pYCksdm9pZCB5KCExKSk6dm9pZCB5KCEwKTooY29uc29sZS53YXJuKGBMZW5ndGggVmFsaWRhdGlvbiAtIGludmFsaWQgKFZhbHVlOiAke3Z9KWApLHZvaWQgeSghMSkpOihjb25zb2xlLndhcm4oYEhPVCBOYXRpdmUg''@;'; + put 'put ''VmFsaWRhdGlvbiAtIGludmFsaWQgKFZhbHVlOiAke3Z9KWApLHZvaWQgeSghMSkpKTooY29uc29sZS53YXJuKGBIT1QgTmF0aXZlIFZhbGlkYXRpb24gKGF1dG9jb21wbGV0ZSkgLSBpbnZhbGlkIChWYWx1ZTogJHt2fSlgKSx2b2lkIHkoITEpKX19bGVuZ3RoQ2hlY2soZyxoLHYpe2lmKCgw''@;'; + put 'put ''LHl3LmlzU3BlY2lhbE1pc3NpbmcpKGcpfHxudWxsPT1nfHxudWxsPT1oKXJldHVybiEwO2lmKCJudW1lcmljIj09PXYpe2lmKDg9PT1oKXJldHVybiEwO2lmKGg8M3x8aD44fHwhTnVtYmVyLmlzSW50ZWdlcihoKSlyZXR1cm4gY29uc29sZS53YXJuKCJpbnZhbGlkIGxlbmd0aCBmcm9tIFNB''@;'; + put 'put ''UywgcnVsZSBsZW5ndGggY2FuIG9ubHkgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDMtOCIpLCExO2NvbnN0IHk9TnVtYmVyKGcpPT09ZyYmZyUxIT0wO2lmKGg8OCYmeSlyZXR1cm4gY29uc29sZS53YXJuKCJyZWR1Y2VkIGxlbmd0aCBudW1lcmljcyBjYW5ub3QgY29udGFpbiBkZWNpbWFscyBl''@;'; + put 'put ''bHNlIHByZWNpc2lvbiB3aWxsIGJlIGFmZmVjdGVkIiksITE7c3dpdGNoKGgpe2Nhc2UgMzpyZXR1cm4gZzw9ODE5MjtjYXNlIDQ6cmV0dXJuIGc8PTIwOTcxNTI7Y2FzZSA1OnJldHVybiBnPD01MzY4NzA5MTI7Y2FzZSA2OnJldHVybiBnPD0xMzc0Mzg5NTM0NzI7Y2FzZSA3OnJldHVybiBn''@;'; + put 'put ''PD0zNTE4NDM3MjA4ODgzMn19cmV0dXJuIGcudG9TdHJpbmcoKS5sZW5ndGg8PWh9Z2V0SGFuZHNvbnRhYmxlVmFsaWRhdG9yKGcpe3N3aXRjaChnKXtjYXNlImF1dG9jb21wbGV0ZSI6cmV0dXJuIGZ6O2Nhc2UibnVtZXJpYyI6cmV0dXJuIGttZTtjYXNlImRhdGUiOnJldHVybiBNdGU7Y2Fz''@;'; + put 'put ''ZSJ0aW1lIjpyZXR1cm4gRXRlO2RlZmF1bHQ6cmV0dXJuKGgsdik9PnY/dighMCk6bnVsbH19Z2V0UnVsZUluZGV4KGcpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZz9nOnRoaXMucnVsZXMuZmluZEluZGV4KGg9PmguZGF0YT09PWcpfXNldENvbHVtbkxldmVsU2VjdXJpdHkoZyl7dmFyIGg7''@;'; + put 'put ''aWYobnVsbD09PShoPXRoaXMuc2FzcGFyYW1zKXx8dm9pZCAwPT09aHx8IWguQ0xTX0ZMQUcpcmV0dXJuO2NvbnN0IHY9dGhpcy5ydWxlc1tnXTtpZih0aGlzLnByaW1hcnlLZXlzLmluY2x1ZGVzKHYuZGF0YSkmJih2LmNsc1J1bGU9IlJFQUQiKSwiSElERSI9PT12LmNsc1J1bGUmJnRoaXMu''@;'; + put 'put ''aGlkZGVuQ29sdW1ucy5wdXNoKGcpLCJSRUFEIj09PXYuY2xzUnVsZSYmKHYucmVhZE9ubHk9ITApLCJFRElUIj09PXYuY2xzUnVsZSl7di5yZWFkT25seT0hMTtjb25zdCB5PXRoaXMuaGlkZGVuQ29sdW1ucy5pbmRleE9mKGcpO3RoaXMuaGlkZGVuQ29sdW1ucy5zcGxpY2UoeSwxKX19fWNv''@;'; + put 'put ''bnN0IE5uZT17bnVtZXJpYzowLGRlZmF1bHQ6IiJ9LE81dD0oZCxnKT0+ZD8iYXV0b2NvbXBsZXRlIj09PWQ/ZyYmZy5zb3VyY2U/Zy5zb3VyY2VbMF06W106Tm5lLmhhc093blByb3BlcnR5KGQpP05uZVtkXTpObmUuZGVmYXVsdDpObmUuZGVmYXVsdCx3TGU9ZD0+e2xldCBnPSgiMCIrZC5n''@;'; + put 'put ''ZXRVVENIb3VycygpKS5zbGljZSgtMikrIjoiO3JldHVybiBnPWcrKCIwIitkLmdldFVUQ01pbnV0ZXMoKSkuc2xpY2UoLTIpKyI6IixnKz0oIjAiK2QuZ2V0VVRDU2Vjb25kcygpKS5zbGljZSgtMiksZ30sU21lPWQ9PmQuZ2V0RnVsbFllYXIoKSsiLSIrKCIwIisoZC5nZXRNb250aCgpKzEp''@;'; + put 'put ''KS5zbGljZSgtMikrIi0iKygiMCIrZC5nZXREYXRlKCkpLnNsaWNlKC0yKSxNbWU9ZD0+bmV3IERhdGUoTWF0aC5yb3VuZCg4NjQwMCooZC0yNTU2OSkqMWUzKSksUDV0PShkLGcpPT57Y29uc3QgaD1bXSx2PVtdO3JldHVybiBnLmZvckVhY2goeT0+ey0xPT09ZC5pbmRleE9mKHkpP2gucHVz''@;'; + put 'put ''aCh5KTp2LnB1c2goeSl9KSxbaCx2XX0sRjV0PShkLGcsaCx2LHksQyxJKT0+KGcuaW5uZXJIVE1MPWAke0M/Qy50b1N0cmluZygpOiIifSA8Y2RzLWljb24gc2hhcGU9ImV4Y2xhbWF0aW9uLWNpcmNsZSIgc3RhdHVzPSJ3YXJuaW5nIj48L2Nkcy1pY29uPmAsZyksRW1lPShkLGcsaCx2LHks''@;'; + put 'put ''QyxJKT0+KGcuaW5uZXJIVE1MPUN8fCIiLGcpLEg1dD0oZCxnLGgsdix5LEMsSSk9PihnLmlubmVySFRNTD1gJHtDP0MudG9TdHJpbmcoKToiIn0gPHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IiBjbGFzcz0ic3Bpbm5lciBzcGlubmVyLXNtIj48L3NwYW4+YCxnKSx4bWU9''@;'; + put 'put ''ZD0+ISEvXi17MCwxfVxkKyQvLnRlc3QoZCksYkxlPWQ9PiEhL15cZCtcLlxkKyQvLnRlc3QoZCkseU09dm9pZCAwLFY1dD1bImVuLUdCIixbWyJhIiwicCJdLFsiYW0iLCJwbSJdLHlNXSxbWyJhbSIsInBtIl0seU0seU1dLFtbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxbIlN1biIs''@;'; + put 'put ''Ik1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLFsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl1dLHlNLFtbIkoiLCJGIiwiTSIs''@;'; + put 'put ''IkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdLFsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwdCIsIk9jdCIsIk5vdiIsIkRlYyJdLFsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJK''@;'; + put 'put ''dWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXV0seU0sW1siQiIsIkEiXSxbIkJDIiwiQUQiXSxbIkJlZm9yZSBDaHJpc3QiLCJBbm5vIERvbWluaSJdXSwxLFs2LDBdLFsiZGQvTU0veSIsImQgTU1NIHkiLCJkIE1NTU0geSIsIkVFRUUs''@;'; + put 'put ''IGQgTU1NTSB5Il0sWyJISDptbSIsIkhIOm1tOnNzIiwiSEg6bW06c3MgeiIsIkhIOm1tOnNzIHp6enoiXSxbInsxfSwgezB9Iix5TSwiezF9ICdhdCcgezB9Iix5TV0sWyIuIiwiLCIsIjsiLCIlIiwiKyIsIi0iLCJFIiwiXHhkNyIsIlx1MjAzMCIsIlx1MjIxZSIsIk5hTiIsIjoiXSxbIiMs''@;'; + put 'put ''IyMwLiMjIyIsIiMsIyMwJSIsIlx4YTQjLCMjMC4wMCIsIiNFMCJdLCJHQlAiLCJceGEzIiwiQnJpdGlzaCBQb3VuZCIse0pQWTpbIkpQXHhhNSIsIlx4YTUiXSxVU0Q6WyJVUyQiLCIkIl19LCJsdHIiLGZ1bmN0aW9uIE41dChkKXtjb25zdCBoPU1hdGguZmxvb3IoTWF0aC5hYnMoZCkpLHY9''@;'; + put 'put ''ZC50b1N0cmluZygpLnJlcGxhY2UoL15bXi5dKlwuPy8sIiIpLmxlbmd0aDtyZXR1cm4gMT09PWgmJjA9PT12PzE6NX1dO2xldCBfTGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMudGVtcGxhdGVSZWY9aCx0aGlzLnZjUmVmPXYsdGhpcy5jb250ZXh0PXskaW1wbGljaXQ6''@;'; + put 'put ''bnVsbCxuZ1ZhcjpudWxsfSx0aGlzLmhhc1ZpZXc9ITF9c2V0IG5nVmFyKGgpe3RoaXMuY29udGV4dC4kaW1wbGljaXQ9dGhpcy5jb250ZXh0Lm5nVmFyPWgsdGhpcy5oYXNWaWV3fHwodGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZix0aGlzLmNvbnRleHQp''@;'; + put 'put ''LHRoaXMuaGFzVmlldz0hMCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KHFyKSxYdChVaSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZ1ZhciIsIiJdXSxpbnB1dHM6e25nVmFyOiJuZ1ZhciJ9fSksZH0pKCk7''@;'; + put 'put ''Y29uc3QgajV0PVsiaW5wdXQiXSxaNXQ9ZnVuY3Rpb24oZCxnKXtyZXR1cm57IndpZHRoLnB4IjpkLCJtYXgtaGVpZ2h0LnB4IjpnfX0sejV0PVsiKiJdO2xldCBHNXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmNkcj1oLHRoaXMuaW5wdXRJZD0iIix0aGlzLnBsYWNlaG9s''@;'; + put 'put ''ZGVyPSIiLHRoaXMudmFsdWU9IiIsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLnR5cGU9InRleHQiLHRoaXMuYXV0b2NvbXBsZXRlPSJvZmYiLHRoaXMudGFiaW5kZXg9IiIsdGhpcy5lbWl0T25seVNlbGVjdGVkPSExLHRoaXMub25JbnB1dEtleWRvd249bmV3IGFyLHRoaXMub25JbnB1dENoYW5n''@;'; + put 'put ''ZT1uZXcgYXIsdGhpcy52YWx1ZUNoYW5nZT1uZXcgYXIsdGhpcy5kYXRhbGlzdE9wZW49ITEsdGhpcy5pbnB1dEZvY3VzZWQ9ITEsdGhpcy5pbnB1dENsaWVudFJlY3Q9e30sdGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZT0hMX1uZ09uSW5pdCgpe31uZ0FmdGVyVmlld0luaXQoKXtzZXRUaW1l''@;'; + put 'put ''b3V0KCgpPT57dGhpcy5jYWxjdWxhdGVJbnB1dFBvc2l0aW9uKCl9LDUwMCl9b25JbnB1dEZpcmVkKGgsdil7dGhpcy5kYXRhbGlzdE9wZW49ITAsdGhpcy51bnNlbGVjdEFsbE9wdGlvbnMoKSx0aGlzLmZpbHRlck9wdGlvbnNMaXN0KCksKCF0aGlzLmVtaXRPbmx5U2VsZWN0ZWR8fHYpJiYo''@;'; + put 'put ''dGhpcy5vbklucHV0Q2hhbmdlLmVtaXQoe3RhcmdldDp7dmFsdWU6dGhpcy52YWx1ZX19KSx0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSkpfW9uSW5wdXRDbGljayhoKXt0aGlzLmRhdGFsaXN0T3Blbj0hMH1yZXNldERhdGFsaXN0RmlsdGVyKCl7dGhpcy5maWx0ZXJPcHRpb25z''@;'; + put 'put ''TGlzdCghMCl9b25JbnB1dEZvY3VzaW4oaCl7dGhpcy5pbnB1dEZvY3VzZWQ9ITB9b25JbnB1dEZvY3Vzb3V0KGgpe3RoaXMuaW5wdXRGb2N1c2VkPSExLHRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCl9ZmlsdGVyT3B0aW9uc0xpc3QoaCl7Y29uc3Qgdj1kb2N1bWVudC5xdWVyeVNlbGVjdG9y''@;'; + put 'put ''QWxsKGAjZGF0YWxpc3RfJHt0aGlzLmlucHV0SWR9IG9wdGlvbmApO2ZvcihsZXQgeT0wO3k8di5sZW5ndGg7eSsrKXtjb25zdCBDPXZbeV07aWYoMD09PXRoaXMudmFsdWUubGVuZ3RoKXtDLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO2NvbnRpbnVlfWlmKGgpe0MuY2xhc3NMaXN0LnJl''@;'; + put 'put ''bW92ZSgiaGlkZGVuIik7Y29udGludWV9Y29uc3QgdWU9KEMuaW5uZXJUZXh0fHwiIikrKEMudmFsdWV8fCIiKTtudWxsIT11ZSYmdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnZhbHVlLnRvTG93ZXJDYXNlKCkpP0MuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6Qy5jbGFzc0xp''@;'; + put 'put ''c3QuYWRkKCJoaWRkZW4iKX19c2V0VG9DbG9zZURhdGFsaXN0KCl7dGhpcy5kYXRhbGlzdENsb3NlVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZXx8KHRoaXMuZGF0YWxpc3RPcGVuPSExLHRoaXMudW5zZWxlY3RBbGxPcHRpb25zKCksdGhpcy5yZXNl''@;'; + put 'put ''dERhdGFsaXN0RmlsdGVyKCkpfSwxMDApfWNhbGN1bGF0ZUlucHV0UG9zaXRpb24oKXtjb25zdCBoPXRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsdj1udWxsPT1oP3ZvaWQgMDpoLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuaW5wdXRDbGllbnRSZWN0PXt3aWR0aDp2Lndp''@;'; + put 'put ''ZHRoLGJvdHRvbTp2LmJvdHRvbX0sdGhpcy5pbm5lckhlaWdodD13aW5kb3cuaW5uZXJIZWlnaHR9b25EYXRhTGlzdE1vdXNlRW50ZXIoaCl7dGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZT0hMH1vbkRhdGFMaXN0TW91c2VMZWF2ZShoKXt0aGlzLnByZXZlbnREYXRhbGlzdENsb3NlPSExLHRo''@;'; + put 'put ''aXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX1vbkRhdGFMaXN0U2Nyb2xsKGgpe3RoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCl9b25EYXRhTGlzdENsaWNrKGgpe2NvbnN0IHY9aC50YXJnZXQ7aWYoIk9QVElPTiIhPT12LnRhZ05hbWUpcmV0dXJuO2xldCB5PXYuaW5uZXJU''@;'; + put 'put ''ZXh0LEM9di52YWx1ZTsoeXx8QykmJihDfHwoQz15KSksQyYmKHRoaXMucHJldmVudERhdGFsaXN0Q2xvc2U9ITEsdGhpcy52YWx1ZT1DLHRoaXMub25JbnB1dEZpcmVkKG51bGwsITApLHRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCkpfW9uTWFpbktleWRvd24oaCl7c3dpdGNoKGgua2V5KXtj''@;'; + put 'put ''YXNlIkFycm93VXAiOnRoaXMuZ2V0T3B0aW9uc01vdmVGb2N1cygidXAiKTticmVhaztjYXNlIkFycm93RG93biI6dGhpcy5nZXRPcHRpb25zTW92ZUZvY3VzKCJkb3duIik7YnJlYWs7Y2FzZSJFbnRlciI6dGhpcy5zZWxlY3RGb2N1c2VkT3B0aW9uKCk7YnJlYWs7Y2FzZSJFc2NhcGUiOnRo''@;'; + put 'put ''aXMuc2V0VG9DbG9zZURhdGFsaXN0KCl9fXVuc2VsZWN0QWxsT3B0aW9ucygpe2NvbnN0IGg9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgI2RhdGFsaXN0XyR7dGhpcy5pbnB1dElkfSBvcHRpb25gKTtmb3IobGV0IHY9MDt2PGgubGVuZ3RoO3YrKyloW3ZdLmNsYXNzTGlzdC5yZW1vdmUo''@;'; + put 'put ''ImZvY3VzZWQiKX1zZWxlY3RGb2N1c2VkT3B0aW9uKCl7Y29uc3QgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjZGF0YWxpc3RfJHt0aGlzLmlucHV0SWR9IG9wdGlvbi5mb2N1c2VkYCk7aCYmdGhpcy5vbkRhdGFMaXN0Q2xpY2soe3RhcmdldDpofSksdGhpcy5zZXRUb0Nsb3NlRGF0YWxp''@;'; + put 'put ''c3QoKX1nZXRPcHRpb25zTW92ZUZvY3VzKGgpe2NvbnN0IHY9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgI2RhdGFsaXN0XyR7dGhpcy5pbnB1dElkfSBvcHRpb246bm90KC5oaWRkZW4pYCk7bGV0IHk9MDtmb3IobGV0IEM9MDtDPHYubGVuZ3RoO0MrKyl7Y29uc3QgST12W0NdO2lmKEku''@;'; + put 'put ''Y2xhc3NMaXN0LmNvbnRhaW5zKCJmb2N1c2VkIikpe3k9ImRvd24iPT09aD9DKzE6Qy0xLHk8MCYmKHk9di5sZW5ndGgtMSkseT52Lmxlbmd0aC0xJiYoeT0wKSxJLmNsYXNzTGlzdC5yZW1vdmUoImZvY3VzZWQiKTticmVha319dlt5XS5jbGFzc0xpc3QuYWRkKCJmb2N1c2VkIil9b25SZXNp''@;'; + put 'put ''emUoaCl7dGhpcy5jYWxjdWxhdGVJbnB1dFBvc2l0aW9uKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KGQxKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1hdXRvY29tcGxldGUiXV0sdmlld1F1ZXJ5OmZ1bmN0''@;'; + put 'put ''aW9uKGgsdil7aWYoMSZoJiZ2byhqNXQsNSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5pbnB1dEVsZW1lbnQ9eS5maXJzdCl9fSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJyZXNpemUiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uUmVzaXplKEMpfSwwLEliKX0saW5w''@;'; + put 'put ''dXRzOntpbnB1dElkOiJpbnB1dElkIixwbGFjZWhvbGRlcjoicGxhY2Vob2xkZXIiLHZhbHVlOiJ2YWx1ZSIsZGlzYWJsZWQ6ImRpc2FibGVkIix0eXBlOiJ0eXBlIixhdXRvY29tcGxldGU6ImF1dG9jb21wbGV0ZSIsdGFiaW5kZXg6InRhYmluZGV4IixlbWl0T25seVNlbGVjdGVkOiJlbWl0''@;'; + put 'put ''T25seVNlbGVjdGVkIn0sb3V0cHV0czp7b25JbnB1dEtleWRvd246Im9uSW5wdXRLZXlkb3duIixvbklucHV0Q2hhbmdlOiJvbklucHV0Q2hhbmdlIix2YWx1ZUNoYW5nZToidmFsdWVDaGFuZ2UifSxuZ0NvbnRlbnRTZWxlY3RvcnM6ejV0LGRlY2xzOjYsdmFyczoxNCxjb25zdHM6W1sxLCJh''@;'; + put 'put ''dXRvY29tcGxldGUtd3JhcHBlciIsMywia2V5ZG93biJdLFsidHlwZSIsInRleHQiLCJhdXRvY29tcGxldGUiLCJvZmYiLCJhdXRvZm9jdXMiLCIiLCJ0YWJpbmRleCIsIjAiLDEsImlucHV0LXZhbCIsMywiaWQiLCJwbGFjZWhvbGRlciIsIm5nTW9kZWwiLCJkaXNhYmxlZCIsIm5nTW9kZWxD''@;'; + put 'put ''aGFuZ2UiLCJjbGljayIsImZvY3VzIiwiZm9jdXNvdXQiXSxbImlucHV0IiwiIl0sWzEsIm92ZXJsYXkiXSxbMSwiZGF0YWxpc3QiLDMsIm5nU3R5bGUiLCJpZCIsImNsaWNrIiwibW91c2VlbnRlciIsIm1vdXNlbGVhdmUiLCJzY3JvbGwiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgm''@;'; + put 'put ''JihLMCgpLGl0KDAsImRpdiIsMCksWW4oImtleWRvd24iLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uTWFpbktleWRvd24oQyl9KSxpdCgxLCJpbnB1dCIsMSwyKSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYudmFsdWU9Q30pKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0''@;'; + put 'put ''dXJuIHYub25JbnB1dENsaWNrKEMpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uSW5wdXRGaXJlZChDKX0pKCJmb2N1cyIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25JbnB1dEZvY3VzaW4oQyl9KSgiZm9jdXNvdXQiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uSW5w''@;'; + put 'put ''dXRGb2N1c291dChDKX0pLHN0KCksQ3IoMywiZGl2IiwzKSxpdCg0LCJkaXYiLDQpLFluKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25EYXRhTGlzdENsaWNrKEMpfSkoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uRGF0YUxpc3RNb3VzZUVudGVyKEMpfSkoIm1v''@;'; + put 'put ''dXNlbGVhdmUiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uRGF0YUxpc3RNb3VzZUxlYXZlKEMpfSkoInNjcm9sbCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25EYXRhTGlzdFNjcm9sbChDKX0pLE5pKDUpLHN0KCkoKSksMiZoJiYodXQoMSksVHQoImlkIix2LmlucHV0SWQpKCJwbGFjZWhvbGRl''@;'; + put 'put ''ciIsdi5wbGFjZWhvbGRlcikoIm5nTW9kZWwiLHYudmFsdWUpKCJkaXNhYmxlZCIsdi5kaXNhYmxlZCksemkoImxpc3QiLCJkYXRhbGlzdF8iK3YuaW5wdXRJZCksdXQoMiksRmkoImhpZGRlbiIsIXYuZGF0YWxpc3RPcGVuKSx1dCgxKSxGaSgiaGlkZGVuIiwhdi5kYXRhbGlzdE9wZW4pLFR0''@;'; + put 'put ''KCJuZ1N0eWxlIixaMygxMSxaNXQsdi5pbnB1dENsaWVudFJlY3Qud2lkdGgsdi5pbm5lckhlaWdodCYmdi5pbnB1dENsaWVudFJlY3QuYm90dG9tP3YuaW5uZXJIZWlnaHQtdi5pbnB1dENsaWVudFJlY3QuYm90dG9tOnZvaWQgMCkpKCJpZCIsImRhdGFsaXN0XyIrdi5pbnB1dElkKSl9LGRl''@;'; + put 'put ''cGVuZGVuY2llczpbU1csbTEsRXMseHNdLHN0eWxlczpbIi5pbnB1dC12YWxbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowcHg7YmFja2dyb3VuZDojZmJmOGY4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM5OTk5OTl9aW5wdXRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7b3V0''@;'; + put 'put ''bGluZTpub25lfWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9ye21hcmdpbi10b3A6LTVweH0uYXV0b2NvbXBsZXRlLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm92ZXJsYXlbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9u''@;'; + put 'put ''OmZpeGVkO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO3otaW5kZXg6MTUwMH0uYXV0b2NvbXBsZXRlLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGFsaXN0W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDtiYWNrZ3JvdW5kOndoaXRlO2JveC1zaGFkb3c6''@;'; + put 'put ''MCAzcHggMTBweCAtMXB4ICMwMDAwMDAyYjtvdmVyZmxvdzphdXRvO3otaW5kZXg6MjAwMH0uYXV0b2NvbXBsZXRlLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGFsaXN0W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgb3B0aW9ue3BhZGRpbmc6NXB4IDEwcHg7Y3Vyc29yOnBvaW50''@;'; + put 'put ''ZXJ9LmF1dG9jb21wbGV0ZS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRhbGlzdFtfbmdjb250ZW50LSVDT01QJV0gICAgIG9wdGlvbjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA1ODgyMzUyOTQpfS5hdXRvY29tcGxldGUtd3JhcHBlcltfbmdjb250ZW50LSVDT01Q''@;'; + put 'put ''JV0gICAuZGF0YWxpc3RbX25nY29udGVudC0lQ09NUCVdICAgICBvcHRpb24uZm9jdXNlZHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA1ODgyMzUyOTQpfSJdfSksZH0pKCksVzV0PSgoKT0+e2NsYXNzIGR7dHJhbnNmb3JtKGgsdil7aWYoInN0cmluZyI9PXR5cGVvZiBoJiZoLmxlbmd0aDwx''@;'; + put 'put ''KXJldHVybiBoO3N3aXRjaCh2KXtjYXNlImRhdGUiOnJldHVybiBUbChoLCJERE1NTVlZWVk6aGg6bW06c3MiKS5mb3JtYXQoIkREL01NL1lZWVkiKTtjYXNlInRpbWUiOntpZigic3RyaW5nIiE9dHlwZW9mIGgpdGhyb3cgbmV3IEVycm9yKCJFcnJvciBwYXJzaW5nIHRpbWUuIFZhbHVlIGlz''@;'; + put 'put ''IG5vdCBzdHJpbmcuIik7Y29uc3QgeT1wYXJzZUludChoLnNwbGl0KCI6IilbMF0pLEM9cGFyc2VJbnQoaC5zcGxpdCgiOiIpWzFdKSxJPXBhcnNlSW50KGguc3BsaXQoIjoiKVsyXSk7cmV0dXJuYCR7eTwxMD8iMCIreTp5fToke0M8MTA/IjAiK0M6Q306JHtJPDEwPyIwIitJOkl9YH19cmV0''@;'; + put 'put ''dXJuInN0cmluZyI9PXR5cGVvZiBoP2g6aC50b1N0cmluZygpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJkYXRlVGltZUZvcm1hdHRlciIsdHlwZTpkLHB1cmU6ITB9KSxkfSkoKTtjb25zdCBZNXQ9WyJp''@;'; + put 'put ''bnB1dCJdO2Z1bmN0aW9uIFU1dChkLGcpe2lmKDEmZCYmKGl0KDAsImxhYmVsIiwzKSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKTt1dCgxKSxHaShoLmxhYmVsKX19ZnVuY3Rpb24gUTV0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7RjAoMCksaXQoMSwiY2xyLWRhdGUtY29udGFp''@;'; + put 'put ''bmVyIikoMiwiaW5wdXQiLDQpLFluKCJjbHJEYXRlQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLm9uRGF0ZUlucHV0RmlyZWQoeSkpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkuaW5wdXRGb2N1c2VkPSEwKX0pKCJmb2N1c291dCIsZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLmlucHV0Rm9jdXNlZD0hMSl9KSgiZm9jdXNpbiIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5vbkZvY3VzaW5JbnB1dCh5KSl9KSgibW91c2VvdmVyIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkub25JbnB1dE1vdXNl''@;'; + put 'put ''T3ZlcigpKX0pKCJtb3VzZW91dCIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLm9uSW5wdXRNb3VzZU91dCgpKX0pLG5uKDMsImRhdGVUaW1lRm9ybWF0dGVyIiksc3QoKSgpLEgwKCl9aWYoMiZkKXtjb25zdCBoPUt0KCk7dXQoMiksVHQoImlkIixoLmlucHV0SWQpKCJwbGFjZWhv''@;'; + put 'put ''bGRlciIsUG4oMyw1LGgudGVtcCwiZGF0ZSIpKSgiY2xyRGF0ZSIsaC52YWx1ZSkoImRpc2FibGVkIixoLmRpc2FibGVkKSx6aSgibGlzdCIsImRhdGFsaXN0XyIraC5pbnB1dElkKX19ZnVuY3Rpb24gSjV0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7RjAoMCksaXQoMSwiaW5wdXQiLDUp''@;'; + put 'put ''LFluKCJpbnB1dCIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5vbklucHV0RmlyZWQoeSkpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkuaW5wdXRGb2N1c2VkPSEwKX0pKCJmb2N1c291dCIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLmlu''@;'; + put 'put ''cHV0Rm9jdXNlZD0hMSl9KSgiZm9jdXNpbiIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5vbkZvY3VzaW5JbnB1dCh5KSl9KSgibW91c2VvdmVyIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkub25JbnB1dE1vdXNlT3ZlcigpKX0pKCJtb3VzZW91dCIsZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4gcnQoaCksYShLdCgpLm9uSW5wdXRNb3VzZU91dCgpKX0pLHN0KCksSDAoKX1pZigyJmQpe2NvbnN0IGg9S3QoKTt1dCgxKSxUdCgidmFsdWUiLGgudmFsdWUpKCJpZCIsaC5pbnB1dElkKSgiZGlzYWJsZWQiLGguZGlzYWJsZWQpLHppKCJsaXN0IiwiZGF0YWxpc3RfIitoLmlu''@;'; + put 'put ''cHV0SWQpfX1mdW5jdGlvbiBYNXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtGMCgwKSxpdCgxLCJhcHAtYXV0b2NvbXBsZXRlIiw2LDcpLFluKCJvbklucHV0Q2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLm9uSW5wdXRGaXJlZCh5KSl9KSxOaSgzKSxzdCgpLEgw''@;'; + put 'put ''KCl9aWYoMiZkKXtjb25zdCBoPUt0KCk7dXQoMSksVHQoImlucHV0SWQiLGguaW5wdXRJZCkoInZhbHVlIiwobnVsbD09aC52YWx1ZT9udWxsOmgudmFsdWUudG9TdHJpbmcoKSl8fCIiKSgiZW1pdE9ubHlTZWxlY3RlZCIsaC5lbWl0T25seVNlbGVjdGVkKSgiZGlzYWJsZWQiLGguZGlzYWJs''@;'; + put 'put ''ZWQpfX1jb25zdCBLNXQ9WyIqIl07bGV0IENMZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5pbnB1dElkPSIiLHRoaXMudmFsdWU9IiIsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLnR5cGU9InRleHQiLHRoaXMuZGlzYWJsZVNvZnRzZWxlY3Q9ITEsdGhpcy5lbWl0T25seVNlbGVj''@;'; + put 'put ''dGVkPSExLHRoaXMudmFsdWVDaGFuZ2U9bmV3IGFyLHRoaXMub25JbnB1dEV2ZW50PW5ldyBhcix0aGlzLmZvY3VzaW5JbnB1dD1uZXcgYXIsdGhpcy50ZW1wPSIiLHRoaXMuaW5wdXRGb2N1c2VkPSExfW5nT25DaGFuZ2VzKGgpe2gudmFsdWUmJmgudmFsdWUuY3VycmVudFZhbHVlIT09aC52''@;'; + put 'put ''YWx1ZS5wcmV2aW91c1ZhbHVlJiZ0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaC52YWx1ZS5jdXJyZW50VmFsdWUpfW5nT25Jbml0KCl7fW9uSW5wdXRGaXJlZChoKXtjb25zdCB2PWgudGFyZ2V0LnZhbHVlO3RoaXMudGVtcD12LHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KSx0aGlzLm9uSW5wdXRF''@;'; + put 'put ''dmVudC5lbWl0KGgpfW9uRGF0ZUlucHV0RmlyZWQoaCl7dGhpcy50ZW1wPWgsdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGgpLHRoaXMub25JbnB1dEV2ZW50LmVtaXQoaCl9b25JbnB1dE1vdXNlT3V0KCl7dGhpcy5kaXNhYmxlU29mdHNlbGVjdHx8KHRoaXMudmFsdWU9dGhpcy50ZW1wLHRoaXMu''@;'; + put 'put ''dGVtcD0iIil9b25JbnB1dE1vdXNlT3Zlcigpe3RoaXMuZGlzYWJsZVNvZnRzZWxlY3R8fCh0aGlzLnRlbXA9dGhpcy52YWx1ZT90aGlzLnZhbHVlOiIiLHRoaXMudmFsdWU9IiIpfW9uRm9jdXNpbklucHV0KGgpe3RoaXMuZm9jdXNpbklucHV0LmVtaXQoaCl9fXJldHVybiBkLlx1MDI3NWZh''@;'; + put 'put ''Yz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtc29mdC1zZWxlY3QiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhZNXQsNSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5pbnB1dEVsZW1l''@;'; + put 'put ''bnQ9eS5maXJzdCl9fSxpbnB1dHM6e2lucHV0SWQ6ImlucHV0SWQiLGxhYmVsOiJsYWJlbCIsdmFsdWU6InZhbHVlIixkaXNhYmxlZDoiZGlzYWJsZWQiLHR5cGU6InR5cGUiLGRpc2FibGVTb2Z0c2VsZWN0OiJkaXNhYmxlU29mdHNlbGVjdCIsZW1pdE9ubHlTZWxlY3RlZDoiZW1pdE9ubHlT''@;'; + put 'put ''ZWxlY3RlZCJ9LG91dHB1dHM6e3ZhbHVlQ2hhbmdlOiJ2YWx1ZUNoYW5nZSIsb25JbnB1dEV2ZW50OiJvbklucHV0RXZlbnQiLGZvY3VzaW5JbnB1dDoiZm9jdXNpbklucHV0In0sZmVhdHVyZXM6W1AyXSxuZ0NvbnRlbnRTZWxlY3RvcnM6SzV0LGRlY2xzOjUsdmFyczo1LGNvbnN0czpbWyJj''@;'; + put 'put ''bGFzcyIsImNsci1jb250cm9sLWxhYmVsIiw0LCJuZ0lmIl0sWzMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsxLCJjbHItY29udHJvbC1sYWJlbCJdLFsidHlwZSIsImRhdGUiLCJjbHJEYXRlIiwiIiwzLCJpZCIsInBsYWNlaG9sZGVyIiwiY2xyRGF0ZSIsImRpc2FibGVkIiwi''@;'; + put 'put ''Y2xyRGF0ZUNoYW5nZSIsImZvY3VzIiwiZm9jdXNvdXQiLCJmb2N1c2luIiwibW91c2VvdmVyIiwibW91c2VvdXQiXSxbInR5cGUiLCJ0aW1lIiwic3RlcCIsIjEiLDEsImlucHV0LXZhbCIsMywidmFsdWUiLCJpZCIsImRpc2FibGVkIiwiaW5wdXQiLCJmb2N1cyIsImZvY3Vzb3V0IiwiZm9j''@;'; + put 'put ''dXNpbiIsIm1vdXNlb3ZlciIsIm1vdXNlb3V0Il0sWyJ0eXBlIiwidGV4dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsImF1dG9mb2N1cyIsIiIsInRhYmluZGV4IiwiMCIsMSwiaW5wdXQtdmFsIiwzLCJpbnB1dElkIiwidmFsdWUiLCJlbWl0T25seVNlbGVjdGVkIiwiZGlzYWJsZWQiLCJvbklu''@;'; + put 'put ''cHV0Q2hhbmdlIl0sWyJpbnB1dCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCkscm4oMCxVNXQsMiwxLCJsYWJlbCIsMCksRjAoMSwxKSxybigyLFE1dCw0LDgsIm5nLWNvbnRhaW5lciIsMikscm4oMyxKNXQsMiw0LCJuZy1jb250YWluZXIiLDIpLHJuKDQsWDV0LDQs''@;'; + put 'put ''NCwibmctY29udGFpbmVyIiwyKSxIMCgpKSwyJmgmJihUdCgibmdJZiIsdi5sYWJlbCksdXQoMSksVHQoIm5nU3dpdGNoIix2LnR5cGUpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCJkYXRlIiksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsInRpbWUiKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNl''@;'; + put 'put ''IiwidGV4dCIpKX0sZGVwZW5kZW5jaWVzOltWbyxVZCxpcCxvdCxRaixUZmUsRzV0LFc1dF0sc3R5bGVzOlsiLmlucHV0LXZhbFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjBweDtiYWNrZ3JvdW5kOiNmYmY4Zjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzk5OTk5OX1pbnB1dFtfbmdj''@;'; + put 'put ''b250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtvdXRsaW5lOm5vbmV9aW5wdXRbX25nY29udGVudC0lQ09NUCVdOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3J7bWFyZ2luLXRvcDotNXB4fWNsci1kYXRlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVs''@;'; + put 'put ''YXRpdmU7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50fWNsci1kYXRlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb257cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTVweH1jbHItZGF0ZS1jb250YWluZXJbX25nY29udGVudC0lQ09N''@;'; + put 'put ''UCVdICAgICBpbnB1dDo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9ye21hcmdpbi1yaWdodDoyMHB4O21hcmdpbi10b3A6LTVweH0iXX0pLGR9KSgpLCQ1dD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuaGVscGVyU2VydmljZT1ofXRyYW5zZm9ybShoLHY9ImRh''@;'; + put 'put ''eXMiLHk9ITEpe2lmKHZvaWQgMD09PWgmJihoPSIiKSwic3RyaW5nIiE9dHlwZW9mIGgmJihoPWgudG9TdHJpbmcoKSksMD09PWgubGVuZ3RoKXtpZigiZGF5cyI9PT12KXJldHVybiBudWxsO2lmKCJzZWNvbmRzIj09PXYpcmV0dXJuIHk/IjExOjAwOjAwIjpudWxsfWxldCBDPXRoaXMuaGVs''@;'; + put 'put ''cGVyU2VydmljZS5jb252ZXJ0U2FzRGF5c1RvSnNEYXRlKGgsdik7aWYoND09PWguc3BsaXQoIjoiKS5sZW5ndGgpe2NvbnN0IGo9aC5zcGxpdCgiOiIpO0M9bmV3IERhdGUoalswXSksQy5zZXRIb3VycyhwYXJzZUludChqWzFdKSksQy5zZXRNaW51dGVzKHBhcnNlSW50KGpbMl0pKSxDLnNl''@;'; + put 'put ''dFNlY29uZHMocGFyc2VJbnQoalszXSkpfWVsc2UgaXNOYU4oTnVtYmVyKGgpKSYmKEM9bmV3IERhdGUoaCkpO2xldCBJPWAke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyhDLmdldEhvdXJzKCkudG9TdHJpbmcoKSl9OiR7dGhpcy5oZWxwZXJTZXJ2aWNlLmFkZExlYWRpbmda''@;'; + put 'put ''ZXJvKEMuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkpfToke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyhDLmdldFNlY29uZHMoKS50b1N0cmluZygpKX1gO3JldHVybiB5P0k6Q319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoWGMs''@;'; + put 'put ''MTYpKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJzYXNUb0pzRGF0ZSIsdHlwZTpkLHB1cmU6ITB9KSxkfSkoKSxxNXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmhlbHBlclNlcnZpY2U9aH10cmFuc2Zvcm0oaCl7aWYobnVsbD09aHx8IiI9PT1oKXJldHVybiIiO2xldCB2''@;'; + put 'put ''LHksQztpZigic3RyaW5nIj09dHlwZW9mIGgmJjM9PT1oLnNwbGl0KCI6IikubGVuZ3RoKXtjb25zdCBJPWguc3BsaXQoIjoiKTt2PUlbMF0seT1JWzFdLEM9SVsyXX1lbHNlIm51bWJlciIhPXR5cGVvZiBoJiYoaD1wYXJzZUludChoKSksdj1NYXRoLmZsb29yKGgvMzYwMCkseT1NYXRoLmZs''@;'; + put 'put ''b29yKGglMzYwMC82MCksQz1NYXRoLmZsb29yKGglMzYwMCU2MCk7cmV0dXJuYCR7dGhpcy5oZWxwZXJTZXJ2aWNlLmFkZExlYWRpbmdaZXJvKHYpfToke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyh5KX06JHt0aGlzLmhlbHBlclNlcnZpY2UuYWRkTGVhZGluZ1plcm8oQyl9''@;'; + put 'put ''YH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoWGMsMTYpKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJzZWNvbmRzUGFyc2VyIix0eXBlOmQscHVyZTohMH0pLGR9KSgpO2Z1bmN0aW9uIGVndChkLGcpe2lmKDEmZCYmKGl0KDAsIm9wdGlvbiIs''@;'; + put 'put ''MjQpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgic2VsZWN0ZWQiLEt0KCkubG9naWNPcGVyYXRvcnNbMF0pLHV0KDEpLEppKCIgIixoLCIgIil9fWZ1bmN0aW9uIHRndChkLGcpezEmZCYmKGl0KDAsImRpdiIsMjUpLFV0KDEsIlxuICAgICAgICAiKSxDcigyLCJw''@;'; + put 'put ''cm9ncmVzcyIpLFV0KDMsIlxuICAgICAgIiksc3QoKSl9ZnVuY3Rpb24gbmd0KGQsZyl7MSZkJiZDcigwLCJkaXYiKX1mdW5jdGlvbiByZ3QoZCxnKXtpZigxJmQmJihpdCgwLCJvcHRpb24iLDI0KSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7VHQoInNlbGVjdGVkIixL''@;'; + put 'put ''dCgyKS5sb2dpY09wZXJhdG9yc1swXSksdXQoMSksSmkoIiAiLGgsIiAiKX19ZnVuY3Rpb24gaWd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYnV0dG9uIiwzNCksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDIpLmFkZEdyb3VwQ2xhdXNlKCkpfSks''@;'; + put 'put ''Q3IoMSwiY2xyLWljb24iLDM1KSxpdCgyLCJzcGFuIiksVXQoMywiR3JvdXAiKSxzdCgpKCl9fWZ1bmN0aW9uIG9ndChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci1pY29uIiwzNiksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoKS5pbmRleDtyZXR1''@;'; + put 'put ''cm4gYShLdCgpLnJlbW92ZUdyb3VwQ2xhdXNlKHkpKX0pLHN0KCl9fWZ1bmN0aW9uIGFndChkLGcpe2lmKDEmZCYmKGl0KDAsIm9wdGlvbiIpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxKaSgiICIsaC5OQU1FLCIgIil9fWZ1bmN0aW9uIGxndChkLGcpe2lm''@;'; + put 'put ''KDEmZCYmKGl0KDAsIm9wdGlvbiIpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxHaShoKX19ZnVuY3Rpb24gc2d0KGQsZyl7MSZkJiZmMSgwKX1jb25zdCB1Z3Q9ZnVuY3Rpb24oZCxnLGgpe3JldHVybntxdWVyeTpkLHF1ZXJ5SW5kZXg6ZyxjbGF1c2VJbmRl''@;'; + put 'put ''eDpofX07ZnVuY3Rpb24gY2d0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiZGl2Iiw1MykoMSwiYnV0dG9uIiw1NCksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoMikuaW5kZXgsQz1LdCgpLmluZGV4LEk9S3QoKTtyZXR1cm4gSS5jdXJyZW50UXVlcnlJ''@;'; + put 'put ''bmRleD15LGEoSS5jdXJyZW50Q2xhdXNlSW5kZXg9Qyl9KSxVdCgyLCIgQ2hvb3NlIHZhbHVlcyAiKSxzdCgpLHJuKDMsc2d0LDEsMCwibmctY29udGFpbmVyIiw1NSksc3QoKX1pZigyJmQpe2NvbnN0IGg9S3QoMiksdj1oLiRpbXBsaWNpdCx5PWguaW5kZXgsQz1LdCgpLmluZGV4O0t0KCk7''@;'; + put 'put ''Y29uc3QgST15YSgzNyk7dXQoMyksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLEkpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsSCgyLHVndCx2LHksQykpfX1mdW5jdGlvbiBmZ3QoZCxnKXsxJmQmJmYxKDApfWNvbnN0IGhndD1mdW5jdGlvbihkLGcsaCx2KXtyZXR1cm57cXVlcnk6ZCxxdWVy''@;'; + put 'put ''eUluZGV4OmcsY2xhdXNlSW5kZXg6aCxpc0RhdGVUaW1lOnZ9fTtmdW5jdGlvbiBkZ3QoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDU2KSxybigxLGZndCwxLDAsIm5nLWNvbnRhaW5lciIsNTUpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgpLm5nVmFyLHY9S3QoKSx5PXYuJGltcGxpY2l0LEM9''@;'; + put 'put ''di5pbmRleCxJPUt0KCkuaW5kZXgsaj1LdCgpLHVlPXlhKDMxKSxfZT15YSgzMyk7dXQoMSksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLGgmJmoudXNlUGlja2Vycz91ZTpfZSkoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixyZSgyLGhndCx5LEMsSSxoKSl9fWZ1bmN0aW9uIHBndChkLGcpezEm''@;'; + put 'put ''ZCYmZjEoMCl9ZnVuY3Rpb24gZ2d0KGQsZyl7MSZkJiZmMSgwKX1jb25zdCBtZ3Q9ZnVuY3Rpb24oZCxnLGgsdil7cmV0dXJue3JhbmdlOiJzdGFydCIscXVlcnk6ZCxxdWVyeVZhbHVlSW5kZXg6MCxxdWVyeUluZGV4OmcsY2xhdXNlSW5kZXg6aCxpc0RhdGVUaW1lOnZ9fSx2Z3Q9ZnVuY3Rp''@;'; + put 'put ''b24oZCxnLGgsdil7cmV0dXJue3JhbmdlOiJlbmQiLHF1ZXJ5OmQscXVlcnlWYWx1ZUluZGV4OjEscXVlcnlJbmRleDpnLGNsYXVzZUluZGV4OmgsaXNEYXRlVGltZTp2fX07ZnVuY3Rpb24gQWd0KGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2Iiw1NykoMSwiZGl2Iiw1OCkscm4oMixwZ3QsMSww''@;'; + put 'put ''LCJuZy1jb250YWluZXIiLDU1KSxzdCgpLGl0KDMsImRpdiIsNTkpLHJuKDQsZ2d0LDEsMCwibmctY29udGFpbmVyIiw1NSksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3QoKS5uZ1Zhcix2PUt0KCkseT12LiRpbXBsaWNpdCxDPXYuaW5kZXgsST1LdCgpLmluZGV4LGo9S3QoKSx1ZT15YSgzMSks''@;'; + put 'put ''X2U9eWEoMzUpO3V0KDIpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0IixoJiZqLnVzZVBpY2tlcnM/dWU6X2UpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIscmUoNCxtZ3QseSxDLEksaCkpLHV0KDIpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0IixoJiZqLnVzZVBpY2tlcnM/dWU6X2UpKCJuZ1RlbXBs''@;'; + put 'put ''YXRlT3V0bGV0Q29udGV4dCIscmUoOSx2Z3QseSxDLEksaCkpfX1mdW5jdGlvbiB5Z3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiLDYwKSgxLCJsYWJlbCIsNjEpLFV0KDIsIlZhbHVlIiksc3QoKSxpdCgzLCJpbnB1dCIsNjIpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5j''@;'; + put 'put ''dGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgyKS4kaW1wbGljaXQudmFsdWU9eSl9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cnQoaCk7Y29uc3QgQz1LdCgyKS5pbmRleCxJPUt0KCkuaW5kZXg7cmV0dXJuIGEoS3QoKS5zZXRWYXJpYWJsZVZhbHVlcyh5LEMsSSkpfSksc3QoKSgp''@;'; + put 'put ''fWlmKDImZCl7Y29uc3QgaD1LdCgyKS4kaW1wbGljaXQ7dXQoMyksVHQoIm5nTW9kZWwiLGgudmFsdWUpfX1mdW5jdGlvbiB3Z3QoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDQ4KSxybigxLGNndCw0LDYsImRpdiIsNDkpLHJuKDIsZGd0LDIsNywiZGl2Iiw1MCkscm4oMyxBZ3QsNSwxNCwi''@;'; + put 'put ''ZGl2Iiw1MSkscm4oNCx5Z3QsNCwxLCJkaXYiLDUyKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKS4kaW1wbGljaXQ7dXQoMSksVHQoIm5nSWYiLCJJTiI9PT1oLm9wZXJhdG9yfHwiTk9UIElOIj09PWgub3BlcmF0b3IpLHV0KDEpLFR0KCJuZ0lmIiwiQkVUV0VFTiIhPT1oLm9wZXJhdG9yJiYi''@;'; + put 'put ''SU4iIT09aC5vcGVyYXRvciYmIk5PVCBJTiIhPT1oLm9wZXJhdG9yJiYiTElLRSIhPT1oLm9wZXJhdG9yJiYiQ09OVEFJTlMiIT09aC5vcGVyYXRvciYmIkJFR0lOU19XSVRIIiE9PWgub3BlcmF0b3IpLHV0KDEpLFR0KCJuZ0lmIiwiQkVUV0VFTiI9PT1oLm9wZXJhdG9yKSx1dCgxKSxUdCgi''@;'; + put 'put ''bmdJZiIsIkxJS0UiPT09aC5vcGVyYXRvcnx8IkJFR0lOU19XSVRIIj09PWgub3BlcmF0b3J8fCJDT05UQUlOUyI9PT1oLm9wZXJhdG9yKX19ZnVuY3Rpb24gYmd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiZGl2Iiw4KSgxLCJkaXYiLDM3KSgyLCJkaXYiLDM4KSgzLCJhcHAt''@;'; + put 'put ''c29mdC1zZWxlY3QiLDM5KSxZbigidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBhKHJ0KGgpLiRpbXBsaWNpdC52YXJpYWJsZT15KX0pKCJvbklucHV0RXZlbnQiLGZ1bmN0aW9uKHkpe2NvbnN0IEM9cnQoaCksST1DLiRpbXBsaWNpdCxqPUMuaW5kZXgsdWU9S3QoKS5pbmRleDty''@;'; + put 'put ''ZXR1cm4gYShLdCgpLnZhcmlhYmxlSW5wdXRDaGFuZ2UoSS52YXJpYWJsZSxqLHVlLHkpKX0pLHJuKDQsYWd0LDIsMSwib3B0aW9uIiw0MCksc3QoKSgpKCksaXQoNSwiZGl2Iiw0MSkoNiwiY2xyLXNlbGVjdC1jb250YWluZXIiKSg3LCJsYWJlbCIpLFV0KDgsIk9wZXJhdG9yIiksc3QoKSxp''@;'; + put 'put ''dCg5LCJzZWxlY3QiLDQyKSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGEocnQoaCkuJGltcGxpY2l0Lm9wZXJhdG9yPXkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKCl7Y29uc3QgeT1ydChoKSxDPXkuaW5kZXgsST15LiRpbXBsaWNpdCxqPUt0KCkuaW5kZXg7''@;'; + put 'put ''cmV0dXJuIGEoS3QoKS5zZXRWYXJpYWJsZU9wZXJhdG9yKEMsSS5vcGVyYXRvcixqKSl9KSxybigxMCxsZ3QsMiwxLCJvcHRpb24iLDQwKSxzdCgpKCkoKSxybigxMSx3Z3QsNSw0LCJkaXYiLDQzKSxpdCgxMiwiZGl2Iiw0NCkoMTMsImJ1dHRvbiIsNDUpLFluKCJjbGljayIsZnVuY3Rpb24o''@;'; + put 'put ''KXtjb25zdCBDPXJ0KGgpLmluZGV4LEk9S3QoKS5pbmRleDtyZXR1cm4gYShLdCgpLnJlbW92ZUNsYXVzZShDLEkpKX0pLENyKDE0LCJjbHItaWNvbiIsNDYpKDE1LCJzcGFuIiksc3QoKSxpdCgxNiwiYnV0dG9uIiw0NyksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3Qo''@;'; + put 'put ''KS5pbmRleDtyZXR1cm4gYShLdCgpLmFkZENsYXVzZSh5KSl9KSxDcigxNywiY2xyLWljb24iLDM1KSgxOCwic3BhbiIpLHN0KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PWcuaW5kZXgseT1LdCgpLmluZGV4LEM9S3QoKTtGaSgiaW52YWxpZC1jbGF1c2UiLGguaW52YWxp''@;'; + put 'put ''ZENsYXVzZSksdXQoMyksVHQoImlkIiwic2VsZWN0X3ZhbHNfdmFyX2lkIit2KyJfIit5KSgiaW5wdXRJZCIsInZhbHNfdmFyX2lkIit2KyJfIit5KSgiZW1pdE9ubHlTZWxlY3RlZCIsITApKCJ2YWx1ZSIsaC52YXJpYWJsZSksdXQoMSksVHQoIm5nRm9yT2YiLEMuY29scyksdXQoNSksVHQo''@;'; + put 'put ''Im5nTW9kZWwiLGgub3BlcmF0b3IpLHV0KDEpLFR0KCJuZ0Zvck9mIixoLm9wZXJhdG9ycyksdXQoMSksVHQoIm5nVmFyIiwiREFURSI9PT1oLmRkdHlwZXx8IkRBVEVUSU1FIj09PWguZGR0eXBlfHwiVElNRSI9PT1oLmRkdHlwZSksdXQoMiksVHQoImRpc2FibGVkIiwxPT09Qy5jbGF1c2Vz''@;'; + put 'put ''LnF1ZXJ5T2JqW3ldLmVsZW1lbnRzLmxlbmd0aCl9fWZ1bmN0aW9uIF9ndChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImRpdiIsMjYpKDEsImRpdiIsOCkoMiwiZGl2IiwyNykoMywiZGl2IiwyOCkoNCwiY2xyLXNlbGVjdC1jb250YWluZXIiKSg1LCJsYWJlbCIpLFV0KDYsIkxv''@;'; + put 'put ''Z2ljIiksc3QoKSxpdCg3LCJzZWxlY3QiLDI5KSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGEocnQoaCkuJGltcGxpY2l0LmNsYXVzZUxvZ2ljPXkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5zZXRMb2dpYygpKX0pLHJu''@;'; + put 'put ''KDgscmd0LDIsMiwib3B0aW9uIiwxMSksc3QoKSgpKCksQ3IoOSwiYnIiKSxybigxMCxpZ3QsNCwwLCJidXR0b24iLDMwKSxzdCgpLGl0KDExLCJkaXYiLDMxKSxybigxMixvZ3QsMSwwLCJjbHItaWNvbiIsMzIpLHJuKDEzLGJndCwxOSwxMSwiZGl2IiwzMyksc3QoKSgpLENyKDE0LCJiciIp''@;'; + put 'put ''LHN0KCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9S3QoKTt1dCgxKSxGaSgiaW52YWxpZC1jbGF1c2UiLGguaW52YWxpZENsYXVzZSksdXQoNiksVHQoIm5nTW9kZWwiLGguY2xhdXNlTG9naWMpKCJkaXNhYmxlZCIsaC5lbGVtZW50cy5sZW5ndGg8MiksdXQoMSksVHQoIm5nRm9y''@;'; + put 'put ''T2YiLHYubG9naWNPcGVyYXRvcnMpLHV0KDIpLFR0KCJuZ0lmIix2LmlubmVyV2lkdGg+NzY4KSx1dCgyKSxUdCgibmdJZiIsdi5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aD4xKSx1dCgxKSxUdCgibmdGb3JPZiIsaC5lbGVtZW50cyl9fWZ1bmN0aW9uIENndChkLGcpe2lmKDEmZCl7Y29uc3Qg''@;'; + put 'put ''aD1faSgpO0YwKDApLGl0KDEsImFwcC1zb2Z0LXNlbGVjdCIsNjUpLFluKCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oeSl7cnQoaCk7Y29uc3QgQz1LdCgpLEk9Qy5xdWVyeSxqPUMucXVlcnlJbmRleCx1ZT1DLmNsYXVzZUluZGV4LF9lPUMucXVlcnlWYWx1ZUluZGV4O3JldHVybiBhKEt0KCku''@;'; + put 'put ''ZGF0ZUNoYW5nZSh5LEksaix1ZSxfZSkpfSksbm4oMiwic2FzVG9Kc0RhdGUiKSxubigzLCJzYXNUb0pzRGF0ZSIpLHN0KCksSDAoKX1pZigyJmQpe2NvbnN0IGg9S3QoKSx2PWgucXVlcnlJbmRleCx5PWguY2xhdXNlSW5kZXgsQz1oLnF1ZXJ5VmFsdWVJbmRleCxJPWgucXVlcnk7dXQoMSks''@;'; + put 'put ''VHQoImRpc2FibGVTb2Z0c2VsZWN0IiwhMCkoImlucHV0SWQiLCJ2YWxzX2RhdGUiK3YrIl8iK3kpKCJ2YWx1ZSIsdm9pZCAwIT09Qz96dCgyLDMsSS52YWx1ZVtDXSk6enQoMyw1LEkudmFsdWUpKX19ZnVuY3Rpb24ga2d0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7RjAoMCksaXQoMSwi''@;'; + put 'put ''YXBwLXNvZnQtc2VsZWN0Iiw2NiksWW4oInZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtydChoKTtjb25zdCBDPUt0KCksST1DLmNsYXVzZUluZGV4LGo9Qy5xdWVyeUluZGV4O3JldHVybiBhKEt0KCkuZ2V0UXVlcnlEYXRlVGltZShJLGopLmRhdGU9eSl9KSgib25JbnB1dEV2ZW50IixmdW5j''@;'; + put 'put ''dGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoKSxDPXkucXVlcnksST15LnF1ZXJ5SW5kZXgsaj15LmNsYXVzZUluZGV4LHVlPXkucXVlcnlWYWx1ZUluZGV4O3JldHVybiBhKEt0KCkuZGF0ZVRpbWVDaGFuZ2UoQyxJLGosdWUpKX0pLG5uKDIsInNhc1RvSnNEYXRlIiksbm4oMywic2FzVG9Kc0Rh''@;'; + put 'put ''dGUiKSxzdCgpLGl0KDQsImFwcC1zb2Z0LXNlbGVjdCIsNjcpLFluKCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oeSl7cnQoaCk7Y29uc3QgQz1LdCgpLEk9Qy5jbGF1c2VJbmRleCxqPUMucXVlcnlJbmRleDtyZXR1cm4gYShLdCgpLmdldFF1ZXJ5RGF0ZVRpbWUoSSxqKS50aW1lPXkpfSkoIm9u''@;'; + put 'put ''SW5wdXRFdmVudCIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KCksQz15LnF1ZXJ5LEk9eS5xdWVyeUluZGV4LGo9eS5jbGF1c2VJbmRleCx1ZT15LnF1ZXJ5VmFsdWVJbmRleDtyZXR1cm4gYShLdCgpLmRhdGVUaW1lQ2hhbmdlKEMsSSxqLHVlKSl9KSxubig1LCJzYXNUb0pzRGF0ZSIp''@;'; + put 'put ''LG5uKDYsInNhc1RvSnNEYXRlIiksc3QoKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1LdCgpLHY9aC5xdWVyeUluZGV4LHk9aC5jbGF1c2VJbmRleCxDPWgucXVlcnlWYWx1ZUluZGV4LEk9aC5xdWVyeTt1dCgxKSxUdCgiZGlzYWJsZVNvZnRzZWxlY3QiLCEwKSgiaW5wdXRJZCIsInZhbHNfZGF0''@;'; + put 'put ''ZSIrdisiXyIreSkoInZhbHVlIix2b2lkIDAhPT1DP1BuKDIsNixJLnZhbHVlW0NdLCJzZWNvbmRzIik6UG4oMyw5LEkudmFsdWUsInNlY29uZHMiKSksdXQoMyksVHQoImRpc2FibGVTb2Z0c2VsZWN0IiwhMCkoImlucHV0SWQiLCJ2YWxzX3RpbWUiK3YrIl8iK3kpKCJ2YWx1ZSIsdm9pZCAw''@;'; + put 'put ''IT09Qz9Ubig1LDEyLEkudmFsdWVbQ10sInNlY29uZHMiLCEwKTpUbig2LDE2LEkudmFsdWUsInNlY29uZHMiLCEwKSl9fWZ1bmN0aW9uIFNndChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO0YwKDApLGl0KDEsImFwcC1zb2Z0LXNlbGVjdCIsNjgpLFluKCJvbklucHV0RXZlbnQiLGZ1bmN0''@;'; + put 'put ''aW9uKHkpe3J0KGgpO2NvbnN0IEM9S3QoKSxJPUMucXVlcnksaj1DLnF1ZXJ5SW5kZXgsdWU9Qy5jbGF1c2VJbmRleCxfZT1DLnF1ZXJ5VmFsdWVJbmRleDtyZXR1cm4gYShLdCgpLnRpbWVDaGFuZ2UoeSxJLGosdWUsX2UpKX0pLG5uKDIsInNlY29uZHNQYXJzZXIiKSxubigzLCJzZWNvbmRz''@;'; + put 'put ''UGFyc2VyIiksc3QoKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1LdCgpLHY9aC5xdWVyeUluZGV4LHk9aC5jbGF1c2VJbmRleCxDPWgucXVlcnlWYWx1ZUluZGV4LEk9aC5xdWVyeTt1dCgxKSxUdCgiZGlzYWJsZVNvZnRzZWxlY3QiLCEwKSgiaW5wdXRJZCIsInZhbHNfIit2KyJfIit5KSgidmFs''@;'; + put 'put ''dWUiLHZvaWQgMCE9PUM/enQoMiwzLEkudmFsdWVbQ10pOnp0KDMsNSxJLnZhbHVlKSl9fWZ1bmN0aW9uIE1ndChkLGcpezEmZCYmKEYwKDAsNjMpLHJuKDEsQ2d0LDQsNywibmctY29udGFpbmVyIiw2NCkscm4oMixrZ3QsNywyMCwibmctY29udGFpbmVyIiw2NCkscm4oMyxTZ3QsNCw3LCJu''@;'; + put 'put ''Zy1jb250YWluZXIiLDY0KSxIMCgpKSwyJmQmJihUdCgibmdTd2l0Y2giLGcucXVlcnkuZGR0eXBlKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwiREFURSIpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCJEQVRFVElNRSIpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCJUSU1FIikpfWZ1bmN0''@;'; + put 'put ''aW9uIEVndChkLGcpe2lmKDEmZCYmKGl0KDAsIm9wdGlvbiIsNzEpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFsdWUiLGgudW5mb3JtYXR0ZWQpLHV0KDEpLEppKCIgIixoLmZvcm1hdHRlZC50cmltKCksIiAiKX19ZnVuY3Rpb24geGd0KGQsZyl7aWYoMSZk''@;'; + put 'put ''KXtjb25zdCBoPV9pKCk7aXQoMCwiYXBwLXNvZnQtc2VsZWN0Iiw2OSksWW4oInZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gYShydChoKS5xdWVyeS52YWx1ZT15KX0pKCJvbklucHV0RXZlbnQiLGZ1bmN0aW9uKHkpe2NvbnN0IEM9cnQoaCksST1DLnF1ZXJ5SW5kZXgsaj1DLmNs''@;'; + put 'put ''YXVzZUluZGV4O3JldHVybiBhKEt0KCkuc2V0VmFyaWFibGVWYWx1ZXMoeS50YXJnZXQudmFsdWUsSSxqKSl9KSxybigxLEVndCwyLDIsIm9wdGlvbiIsNzApLHN0KCl9aWYoMiZkKXtjb25zdCBoPWcucXVlcnk7VHQoImlucHV0SWQiLCJ2YWxzXyIrZy5xdWVyeUluZGV4KyJfIitnLmNsYXVz''@;'; + put 'put ''ZUluZGV4KSgidmFsdWUiLGgudmFsdWUpLHV0KDEpLFR0KCJuZ0Zvck9mIixoLnZhbHVlcyl9fWZ1bmN0aW9uIFRndChkLGcpe2lmKDEmZCYmKGl0KDAsIm9wdGlvbiIsNzEpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFsdWUiLGguZm9ybWF0dGVkKSx1dCgx''@;'; + put 'put ''KSxKaSgiICIsaC5mb3JtYXR0ZWQsIiAiKX19ZnVuY3Rpb24gSWd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYXBwLXNvZnQtc2VsZWN0Iiw3MiksWW4oInZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtjb25zdCBDPXJ0KGgpO3JldHVybiBhKEMucXVlcnkudmFsdWVbQy5xdWVy''@;'; + put 'put ''eVZhbHVlSW5kZXhdPXkpfSkoIm9uSW5wdXRFdmVudCIsZnVuY3Rpb24oKXtjb25zdCB5PXJ0KGgpLEM9eS5xdWVyeSxJPXkucXVlcnlJbmRleCxqPXkuY2xhdXNlSW5kZXg7cmV0dXJuIGEoS3QoKS5zZXRWYXJpYWJsZVZhbHVlcyhDLnZhbHVlLEksaikpfSkscm4oMSxUZ3QsMiwyLCJvcHRp''@;'; + put 'put ''b24iLDcwKSxzdCgpfWlmKDImZCl7Y29uc3QgaD1nLnJhbmdlLHY9Zy5xdWVyeSx5PWcucXVlcnlWYWx1ZUluZGV4O1R0KCJpbnB1dElkIiwidmFscy0iK2grIl8iK2cucXVlcnlJbmRleCsiXyIrZy5jbGF1c2VJbmRleCkoInZhbHVlIix2LnZhbHVlW3ldKSgiZGlzYWJsZWQiLHZvaWQgMCE9''@;'; + put 'put ''PXkmJiJzdGFydCIhPT1oJiYhdi52YWx1ZVswXSksdXQoMSksVHQoIm5nRm9yT2YiLHYudmFsdWVzKX19ZnVuY3Rpb24gRGd0KGQsZyl7MSZkJiYoaXQoMCwiaDUiLDgwKSxVdCgxLCIgTm8gdmFsdWVzIGF2YWlsYWJsZS4gIiksc3QoKSl9ZnVuY3Rpb24gTGd0KGQsZyl7aWYoMSZkKXtjb25z''@;'; + put 'put ''dCBoPV9pKCk7aXQoMCwiY2xyLWNoZWNrYm94LXdyYXBwZXIiKSgxLCJpbnB1dCIsODIpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtjb25zdCBJPXJ0KGgpLmluZGV4O3JldHVybiBhKEt0KDIpLnF1ZXJ5LnZhbHVlW0ldLmNoZWNrZWQ9eSl9KSgibmdNb2RlbENoYW5nZSIsZnVu''@;'; + put 'put ''Y3Rpb24oeSl7cnQoaCk7Y29uc3QgQz1LdCgyKSxJPUMucXVlcnlJbmRleCxqPUMuY2xhdXNlSW5kZXg7cmV0dXJuIGEoS3QoKS5zZXRWYXJpYWJsZVZhbHVlcyh5LEksaikpfSksc3QoKSxpdCgyLCJsYWJlbCIpLFV0KDMpLHN0KCkoKX1pZigyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1n''@;'; + put 'put ''LmluZGV4LHk9S3QoMikucXVlcnk7dXQoMSksVHQoIm5nTW9kZWwiLHkudmFsdWVbdl0uY2hlY2tlZCksdXQoMiksSmkoIiAiLGguZm9ybWF0dGVkLCIgIil9fWZ1bmN0aW9uIE9ndChkLGcpe2lmKDEmZCYmKGl0KDAsInNlY3Rpb24iLDgxKSgxLCJjbHItY2hlY2tib3gtY29udGFpbmVyIiks''@;'; + put 'put ''cm4oMixMZ3QsNCwyLCJjbHItY2hlY2tib3gtd3JhcHBlciIsNDApLHN0KCkoKSksMiZkKXtjb25zdCBoPUt0KCkucXVlcnk7dXQoMiksVHQoIm5nRm9yT2YiLGgudmFsdWVzKX19ZnVuY3Rpb24gUmd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiY2xyLW1vZGFsIiw3MykoMSwi''@;'; + put 'put ''aDMiLDc0KSxVdCgyLCJTZWxlY3QgdmFsdWVzIiksc3QoKSxpdCgzLCJkaXYiLDc1KSxybig0LERndCwyLDAsImg1Iiw3Nikscm4oNSxPZ3QsMywxLCJzZWN0aW9uIiw3Nyksc3QoKSxpdCg2LCJkaXYiLDc4KSg3LCJidXR0b24iLDc5KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cnQoaCk7Y29u''@;'; + put 'put ''c3QgeT1LdCgpO3JldHVybiB5LmN1cnJlbnRRdWVyeUluZGV4PS0xLGEoeS5jdXJyZW50Q2xhdXNlSW5kZXg9LTEpfSksVXQoOCwiIEFwcGx5ICIpLHN0KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1nLnF1ZXJ5LHY9Zy5xdWVyeUluZGV4LHk9Zy5jbGF1c2VJbmRleCxDPUt0KCk7VHQoImNsck1v''@;'; + put 'put ''ZGFsT3BlbiIsQy5jdXJyZW50UXVlcnlJbmRleD09PXYmJkMuY3VycmVudENsYXVzZUluZGV4PT09eSkoImNsck1vZGFsQ2xvc2FibGUiLCExKSx1dCg0KSxUdCgibmdJZiIsIUMuaXNBcnIoaC52YWx1ZSkpLHV0KDEpLFR0KCJuZ0lmIixDLmlzQXJyKGgudmFsdWUpKX19IWZ1bmN0aW9uIEty''@;'; + put 'put ''ZShkLGcsaCl7KGZ1bmN0aW9uIHdQKGQsZyxoKXsic3RyaW5nIiE9dHlwZW9mIGcmJihoPWcsZz1kW01vLkxvY2FsZUlkXSksZz1nLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXy9nLCItIiksazVbZ109ZCxoJiYoazVbZ11bTW8uRXh0cmFEYXRhXT1oKX0pKGQsZyxoKX0oVjV0KTtsZXQga0xl''@;'; + put 'put ''PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5zYXNTdG9yZVNlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMuaGVscGVyU2VydmljZT15LHRoaXMuY2RmPUMsdGhpcy5jbGF1c2VBbXQ9WyIiXSx0aGlzLm51bU9wZXJhdG9ycz1bIj0iLCI8IiwiPiIsIjw9''@;'; + put 'put ''IiwiPj0iLCJCRVRXRUVOIiwiSU4iLCJOT1QgSU4iLCJORSJdLHRoaXMuY2hhck9wZXJhdG9ycz1bIj0iLCI8IiwiPiIsIjw9IiwiPj0iLCJDT05UQUlOUyIsIklOIiwiTk9UIElOIiwiTkUiXSx0aGlzLm5vdEluPSExLHRoaXMubm90QXJyPSEwLHRoaXMud2FzQmV0d2Vlbj0hMSx0aGlzLndo''@;'; + put 'put ''ZXJlQ2xhdXNlTG9hZGluZz0hMSx0aGlzLmR5bmFtaWNXaGVyZUNsYXVzZT0hMCx0aGlzLnVzZVBpY2tlcnM9ITEsdGhpcy5xdWVyeU9iaj17ZWxlbWVudHM6W3tsb2dpYzpudWxsLHR5cGU6bnVsbCxkZHR5cGU6bnVsbCx2YXJpYWJsZTpudWxsLG9wZXJhdG9yOm51bGwsdmFsdWU6bnVsbCx2''@;'; + put 'put ''YWx1ZXM6W10sb3BlcmF0b3JzOltdfV0sY2xhdXNlTG9naWM6IiIsaW52YWxpZENsYXVzZTohMX0sdGhpcy5zZWxWYXI9e2luZGV4Om51bGwsZm9ybWF0Om51bGwsdHlwZTpudWxsfSx0aGlzLmluT2JqPVt7Y2hlY2tlZDohMSx2YWx1ZTpudWxsfV0sdGhpcy5ncm91cExvZ2ljPSJBTkQiLHRo''@;'; + put 'put ''aXMuY2xhdXNlcz17cXVlcnlPYmo6W3RoaXMucXVlcnlPYmpdLGNsYXVzZUxvZ2ljOltdLGdyb3VwTG9naWM6dGhpcy5ncm91cExvZ2ljfSx0aGlzLmxvZ2ljT3BlcmF0b3JzPVsiQU5EIiwiT1IiXSx0aGlzLnF1ZXJ5RGF0ZVRpbWU9W10sdGhpcy5jdXJyZW50Q2xhdXNlSW5kZXg9LTEsdGhp''@;'; + put 'put ''cy5jdXJyZW50UXVlcnlJbmRleD0tMSx0aGlzLnBlbmRpbmdJTlZhbHVlc1NldD1udWxsLHRoaXMuaW5uZXJXaWR0aD13aW5kb3cuc2NyZWVuLndpZHRoLHRoaXMuaW5uZXJXaWR0aD43NjgmJih0aGlzLm5vQm9yZGVyPSJib3JkZXItbGVmdDogMnB4IHNvbGlkIGdyYXk7Iil9Z2V0UXVlcnlE''@;'; + put 'put ''YXRlVGltZShoLHYpe2xldCB5PXRoaXMucXVlcnlEYXRlVGltZS5maW5kKEM9PkMuY2xhdXNlSW5kZXg9PT1oJiZDLnF1ZXJ5SW5kZXg9PT12KTtpZigheSl7Y29uc3QgQz10aGlzLnF1ZXJ5RGF0ZVRpbWUucHVzaCh7Y2xhdXNlSW5kZXg6aCxxdWVyeUluZGV4OnYsZGF0ZToiIix0aW1lOiIi''@;'; + put 'put ''fSktMTt5PXRoaXMucXVlcnlEYXRlVGltZVtDXX1yZXR1cm4geX11c2VQaWNrZXJzQ2hhbmdlKCl7dGhpcy5xdWVyeURhdGVUaW1lPVtdfXJlc2V0RmlsdGVyKCl7dGhpcy53aGVyZVN0cmluZz12b2lkIDAsdGhpcy53aGVyZUNsYXVzZT12b2lkIDAsdGhpcy5xdWVyeU9iaj17ZWxlbWVudHM6''@;'; + put 'put ''W3tsb2dpYzpudWxsLHR5cGU6bnVsbCxkZHR5cGU6bnVsbCx2YXJpYWJsZTpudWxsLG9wZXJhdG9yOm51bGwsdmFsdWU6bnVsbCx2YWx1ZXM6W10sb3BlcmF0b3JzOltdfV19LHRoaXMuY2xhdXNlcz17cXVlcnlPYmo6W3RoaXMucXVlcnlPYmpdLGNsYXVzZUxvZ2ljOltdLGdyb3VwTG9naWM6''@;'; + put 'put ''dGhpcy5ncm91cExvZ2ljfSx0aGlzLndoZXJlQ2xhdXNlRm4oITApfXNldFRvR2xvYmFscygpeygiaG9tZSI9PT1uaS5yb290UGFyYW18fCJlZGl0b3IiPT09bmkucm9vdFBhcmFtKSYmKG5pLmVkaXRvci5maWx0ZXIuZ3JvdXBMb2dpYz10aGlzLmdyb3VwTG9naWMsInN0cmluZyI9PXR5cGVv''@;'; + put 'put ''ZiB0aGlzLndoZXJlQ2xhdXNlJiYobmkuZWRpdG9yLmZpbHRlci53aGVyZUNsYXVzZT10aGlzLndoZXJlQ2xhdXNlKSwic3RyaW5nIj09dHlwZW9mIHRoaXMubGliZHMmJihuaS5lZGl0b3IuZmlsdGVyLmxpYmRzPXRoaXMubGliZHMpLG5pLmVkaXRvci5maWx0ZXIuY2xhdXNlcz10aGlzLmNs''@;'; + put 'put ''YXVzZXMpLCJ2aWV3Ij09PW5pLnJvb3RQYXJhbSYmKG5pLnZpZXdlci5maWx0ZXIuZ3JvdXBMb2dpYz10aGlzLmdyb3VwTG9naWMsInN0cmluZyI9PXR5cGVvZiB0aGlzLndoZXJlQ2xhdXNlJiYobmkudmlld2VyLmZpbHRlci53aGVyZUNsYXVzZT10aGlzLndoZXJlQ2xhdXNlKSwic3RyaW5n''@;'; + put 'put ''Ij09dHlwZW9mIHRoaXMubGliZHMmJihuaS52aWV3ZXIuZmlsdGVyLmxpYmRzPXRoaXMubGliZHMpLG5pLnZpZXdlci5maWx0ZXIuY2xhdXNlcz10aGlzLmNsYXVzZXMpfWdldEZyb21HbG9iYWxzKCl7KCJob21lIj09PW5pLnJvb3RQYXJhbXx8ImVkaXRvciI9PT1uaS5yb290UGFyYW0pJiYo''@;'; + put 'put ''bmkuZWRpdG9yLmZpbHRlci5jb2xzLmxlbmd0aD4wJiYodGhpcy5jb2xzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmkuZWRpdG9yLmZpbHRlci5jb2xzKSkpLG5pLmVkaXRvci5maWx0ZXIudmFscy5sZW5ndGg+MCYmKHRoaXMudmFscz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5p''@;'; + put 'put ''LmVkaXRvci5maWx0ZXIudmFscykpKSwiIiE9PW5pLmVkaXRvci5maWx0ZXIuZ3JvdXBMb2dpYyYmKHRoaXMuZ3JvdXBMb2dpYz1uaS5lZGl0b3IuZmlsdGVyLmdyb3VwTG9naWMsdGhpcy53aGVyZUNsYXVzZT1uaS5lZGl0b3IuZmlsdGVyLndoZXJlQ2xhdXNlLHRoaXMubGliZHM9bmkuZWRp''@;'; + put 'put ''dG9yLmZpbHRlci5saWJkcyx0aGlzLmNsYXVzZXM9bmkuZWRpdG9yLmZpbHRlci5jbGF1c2VzLHRoaXMud2hlcmVDbGF1c2VGbigpKSksInZpZXciPT09bmkucm9vdFBhcmFtJiYobmkudmlld2VyLmZpbHRlci5jb2xzLmxlbmd0aD4wJiYodGhpcy5jb2xzPUpTT04ucGFyc2UoSlNPTi5zdHJp''@;'; + put 'put ''bmdpZnkobmkudmlld2VyLmZpbHRlci5jb2xzKSkpLG5pLnZpZXdlci5maWx0ZXIudmFscy5sZW5ndGg+MCYmKHRoaXMudmFscz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5pLnZpZXdlci5maWx0ZXIudmFscykpKSwiIiE9PW5pLnZpZXdlci5maWx0ZXIuZ3JvdXBMb2dpYyYmKHRoaXMu''@;'; + put 'put ''Z3JvdXBMb2dpYz1uaS52aWV3ZXIuZmlsdGVyLmdyb3VwTG9naWMsdGhpcy53aGVyZUNsYXVzZT1uaS52aWV3ZXIuZmlsdGVyLndoZXJlQ2xhdXNlLHRoaXMubGliZHM9bmkudmlld2VyLmZpbHRlci5saWJkcyx0aGlzLmNsYXVzZXM9bmkudmlld2VyLmZpbHRlci5jbGF1c2VzLHRoaXMud2hl''@;'; + put 'put ''cmVDbGF1c2VGbigpKSl9c2V0R3JvdXBMb2dpYyhoKXt0aGlzLmdyb3VwTG9naWM9aCx0aGlzLmNsYXVzZXMuZ3JvdXBMb2dpYz1oLHRoaXMud2hlcmVDbGF1c2VGbigpLHRoaXMuc2V0VG9HbG9iYWxzKCl9ZGF0ZUNoYW5nZShoLHYseSxDLEkpe2xldCBqPXRoaXMuaGVscGVyU2VydmljZS5j''@;'; + put 'put ''b252ZXJ0SnNEYXRlVG9TYXNEYXRlKGgpOyJCRVRXRUVOIj09PXYub3BlcmF0b3ImJnZvaWQgMCE9PUkmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbeV0udmFsdWVbSV09aiksdGhpcy5zZXRWYXJpYWJsZVZhbHVlcyhqLHksQyl9ZGF0ZVRpbWVDaGFuZ2UoaCx2LHksQyl7''@;'; + put 'put ''Y29uc3QgST10aGlzLmdldFF1ZXJ5RGF0ZVRpbWUoeSx2KTtpZigiIj09PUkuZGF0ZSl7aWYoIiI9PT1oLnZhbHVlKXJldHVybjtJLmRhdGU9aC52YWx1ZS5zcGxpdCgiOiIpWzBdfWNvbnN0IGo9cGFyc2VJbnQoSS50aW1lLnNwbGl0KCI6IilbMF0pLHVlPXBhcnNlSW50KEkudGltZS5zcGxp''@;'; + put 'put ''dCgiOiIpWzFdKSxfZT1wYXJzZUludChJLnRpbWUuc3BsaXQoIjoiKVsyXSl8fDA7bGV0IEJlPW5ldyBEYXRlKEkuZGF0ZSksTmU9bmV3IERhdGUoQmUuZ2V0RnVsbFllYXIoKSxCZS5nZXRNb250aCgpLEJlLmdldERhdGUoKSxqLHVlLF9lKSxLZT10aGlzLmhlbHBlclNlcnZpY2UuY29udmVy''@;'; + put 'put ''dEpzRGF0ZVRvU2FzRGF0ZShOZSwic2Vjb25kcyIpOyJCRVRXRUVOIj09PWgub3BlcmF0b3ImJnZvaWQgMCE9PUMmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbdl0udmFsdWVbQ109S2UpLHRoaXMuc2V0VmFyaWFibGVWYWx1ZXMoS2Usdix5KX10aW1lQ2hhbmdlKGgsdix5''@;'; + put 'put ''LEMsSSl7aD1oLnRhcmdldC52YWx1ZTtsZXQgS2U9NjAqcGFyc2VJbnQoaC5zcGxpdCgiOiIpWzBdKSo2MCs2MCpwYXJzZUludChoLnNwbGl0KCI6IilbMV0pKyhwYXJzZUludChoLnNwbGl0KCI6IilbMl0pfHwwKTsiQkVUV0VFTiI9PT12Lm9wZXJhdG9yJiZ2b2lkIDAhPT1JJiYodGhpcy5j''@;'; + put 'put ''bGF1c2VzLnF1ZXJ5T2JqW0NdLmVsZW1lbnRzW3ldLnZhbHVlW0ldPUtlKSx0aGlzLnNldFZhcmlhYmxlVmFsdWVzKEtlLHksQyl9ZHluYW1pY1doZXJlQ2xhdXNlQ3JlYXRvcihoLHYpe2xldCB5PVtdO2lmKHRoaXMuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGg+MXx8dGhpcy5jbGF1c2VzLnF1''@;'; + put 'put ''ZXJ5T2JqW2hdLmVsZW1lbnRzLmxlbmd0aD4xKWZvcihsZXQgQz0wO0M8dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aDtDKyspZm9yKGxldCBJPTA7STx0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHMubGVuZ3RoO0krKyl7aWYoQz09PWgmJkk9PT12fHxbbnVsbCx2b2lkIDBd''@;'; + put 'put ''LmluY2x1ZGVzKHRoaXMuY2xhdXNlcy5xdWVyeU9ialtDXS5lbGVtZW50c1tJXS52YXJpYWJsZSl8fFtudWxsLHZvaWQgMF0uaW5jbHVkZXModGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW0NdLmVsZW1lbnRzW0ldLm9wZXJhdG9yKXx8W251bGwsdm9pZCAwXS5pbmNsdWRlcyh0aGlzLmNsYXVzZXMu''@;'; + put 'put ''cXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWUpKWNvbnRpbnVlO2xldCBqPSIiO2NvbnN0IHVlPXRoaXMuY2xhdXNlcy5xdWVyeU9ialtDXS5lbGVtZW50c1tJXS5vcGVyYXRvcixfZT10aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFyaWFibGU7IkJFVFdFRU4iPT09''@;'; + put 'put ''dWU/aj1gJHt0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWVbMF19IEFORCAke3RoaXMuY2xhdXNlcy5xdWVyeU9ialtDXVtJXS52YWx1ZVsxXX1gOiJJTiI9PT11ZXx8Ik5PVCBJTiI9PT11ZT8odGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW0NdW0ldLnZhbHVlLmZvckVh''@;'; + put 'put ''Y2goQmU9PntpZihCZS5jaGVja2VkKXtsZXQgTmU9QmUudmFsOyJzdHJpbmciIT10eXBlb2YgTmV8fCgwLHl3LmlzU3BlY2lhbE1pc3NpbmcpKE5lKT9qLmxlbmd0aD4wP2orPWAsJHtOZX1gOmo9YCgke05lfWA6ai5sZW5ndGg+MD9qKz1gLCcke05lfSdgOmo9YCgnJHtOZX0nYH19KSxqLmxl''@;'; + put 'put ''bmd0aD4wJiYoais9IikiKSk6IiI9PT10aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWU/aj0iY2hhciI9PT10aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udHlwZT8iJyAnIjoiLiI6ImNoYXIiPT09dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW0NdLmVs''@;'; + put 'put ''ZW1lbnRzW0ldLnR5cGUmJihqPWAnJHt0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWV9J2ApLHkucHVzaCh7R1JPVVBfTE9HSUM6dGhpcy5jbGF1c2VzLmdyb3VwTG9naWMsU1VCR1JPVVBfTE9HSUM6dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW0NdLmNsYXVzZUxvZ2lj''@;'; + put 'put ''fHwiQU5EIixTVUJHUk9VUF9JRDpDLFZBUklBQkxFX05NOl9lLE9QRVJBVE9SX05NOnVlLFJBV19WQUxVRTpqfHx0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWV9KX1yZXR1cm4geX1nZXRWYWx1ZXMoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAs''@;'; + put 'put ''ZnVuY3Rpb24qKCl7dGhpcy53aGVyZUNsYXVzZUxvYWRpbmc9ITA7bGV0IEM9IiI7dm9pZCAwIT09dGhpcy5saWJkcyYmKEM9dGhpcy5saWJkcyksdGhpcy5jbGVhclZhbHVlcyh2LHkpLHRoaXMuY2xhdXNlcy5xdWVyeU9ialt5XS5lbGVtZW50c1t2XS52YWx1ZXM9W10sdGhpcy5jbGF1c2Vz''@;'; + put 'put ''LnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW3ZdLnZhbHVlPSIiLHRoaXMuY2xhdXNlcy5xdWVyeU9ialt5XS5lbGVtZW50c1t2XS5vcGVyYXRvcj0iPSIsdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW3ZdLnZhcmlhYmxlPWg7dHJ5e2lmKHZvaWQgMCE9PXRoaXMuY29scyl7Zm9yKGxl''@;'; + put 'put ''dCBfZT0wO19lPHRoaXMuY29scy5sZW5ndGg7X2UrKyl0aGlzLmNvbHNbX2VdLk5BTUU9PT1oJiYodGhpcy5zZWxWYXIuaW5kZXg9X2UpO2NvbnN0IEk9dGhpcy5jb2xzW3RoaXMuc2VsVmFyLmluZGV4XS5ERFRZUEU7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW3ZdLmRkdHlw''@;'; + put 'put ''ZT1JLHRoaXMuY2xhdXNlcy5xdWVyeU9ialt5XS5lbGVtZW50c1t2XS50eXBlPXRoaXMuY29sc1t0aGlzLnNlbFZhci5pbmRleF0uVFlQRSx0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbdl0ub3BlcmF0b3JzPSJudW0iPT09dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1l''@;'; + put 'put ''bnRzW3ZdLnR5cGU/dGhpcy5udW1PcGVyYXRvcnM6dGhpcy5jaGFyT3BlcmF0b3JzO2xldCBqPVtdO3RoaXMuZHluYW1pY1doZXJlQ2xhdXNlJiYoaj10aGlzLmR5bmFtaWNXaGVyZUNsYXVzZUNyZWF0b3IoeSx2KSk7Y29uc3QgdWU9WyJEQVRFVElNRSIsIlRJTUUiLCJEQVRFIl0uaW5jbHVk''@;'; + put 'put ''ZXMoSSk7dGhpcy5zYXNTdG9yZVNlcnZpY2UuZ2V0UXVlcnlWYWx1ZXMoaCxDLGopLnRoZW4oX2U9PntpZih0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbdl0udmFsdWVzPV9lLnZhbHMubWFwKE5lPT57Y29uc3QgS2U9Im51bSI9PT1fZS4kdmFscy52YXJzLlVORk9STUFUVEVE''@;'; + put 'put ''LnR5cGU7bGV0IE90PUtlJiYoMCx5dy5pc1NwZWNpYWxNaXNzaW5nKShOZS5VTkZPUk1BVFRFRCk/Ii4iK05lLlVORk9STUFUVEVEOk5lLlVORk9STUFUVEVEO3JldHVybiBLZSYmbnVsbD09PU90JiYoT3Q9Ii4iKSx7Zm9ybWF0dGVkOnVlP05lLkZPUk1BVFRFRC5zcGxpdCgiLiIpWzBdOk5l''@;'; + put 'put ''LkZPUk1BVFRFRCx1bmZvcm1hdHRlZDpPdH19KS5zbGljZSgwLDJlMyksdGhpcy53aGVyZUNsYXVzZUZuKCksdGhpcy5zZXRUb0dsb2JhbHMoKSx0aGlzLndoZXJlQ2xhdXNlTG9hZGluZz0hMSxudWxsIT09dGhpcy5wZW5kaW5nSU5WYWx1ZXNTZXQpe2NvbnN0e2NsYXVzZUluZGV4Ok5lLHF1''@;'; + put 'put ''ZXJ5SW5kZXg6S2V9PXRoaXMucGVuZGluZ0lOVmFsdWVzU2V0O3RoaXMuc2V0SU5WYWx1ZXMoTmUsS2UpLHRoaXMucGVuZGluZ0lOVmFsdWVzU2V0PW51bGx9dGhpcy5jZGYuZGV0ZWN0Q2hhbmdlcygpfSkuY2F0Y2goX2U9Pnt0aGlzLndoZXJlQ2xhdXNlTG9hZGluZz0hMX0pfX1jYXRjaChJ''@;'; + put 'put ''KXt0aGlzLmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoInB1YmxpYy9nZXRjb2x2YWxzIixJKX19KX1nZXRsb2dpYyhoKXt0aGlzLmxvZ2ljPWgsdGhpcy53aGVyZUNsYXVzZUZuKCl9c2V0TG9naWMoKXt0aGlzLndoZXJlQ2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFscygpfWlz''@;'; + put 'put ''QXJyKGgpe3JldHVybiBoIGluc3RhbmNlb2YgQXJyYXkmJmgubGVuZ3RoPjAmJnZvaWQgMCE9PWhbMF0uY2hlY2tlZH12YXJpYWJsZUlucHV0Q2hhbmdlKGgsdix5LEMpe3RoaXMuZ2V0VmFsdWVzKGgsdix5KX1zZXRWYXJpYWJsZVZhbHVlcyhoLHYseSl7bGV0IEM9dGhpcy5jbGF1c2VzLnF1''@;'; + put 'put ''ZXJ5T2JqW3ldLmVsZW1lbnRzW3ZdLm9wZXJhdG9yOyJCRVRXRUVOIiE9PUMmJiJJTiIhPT1DJiYiTk9UIElOIiE9PUMmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbdl0udmFsdWU9aC50b1N0cmluZygpKSx0aGlzLndoZXJlQ2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFs''@;'; + put 'put ''cygpfXNldFZhcmlhYmxlT3BlcmF0b3IoaCx2LHkpe2xldCBDPXRoaXMuY2xhdXNlcy5xdWVyeU9ialt5XS5lbGVtZW50c1toXS52YWx1ZTtDIGluc3RhbmNlb2YgQXJyYXkmJiJJTiIhPT12JiYiTk9UIElOIiE9PXYmJihDPUMgaW5zdGFuY2VvZiBBcnJheSYmMj09PUMubGVuZ3RoJiYic3Ry''@;'; + put 'put ''aW5nIj09dHlwZW9mIENbMF0/Q1swXToiIiksdGhpcy5jbGVhclZhbHVlc09wZXJhdG9yKGgseSksdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW2hdLm9wZXJhdG9yPXYsKCI9Ij09PXZ8fCI+Ij09PXZ8fCI8Ij09PXZ8fCI8PSI9PT12fHwiPj0iPT09dnx8Ik5FIj09PXYpJiYo''@;'; + put 'put ''dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW2hdLnZhbHVlPUMpLCJCRVRXRUVOIj09PXYmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbaF0udmFsdWU9W10sdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW2hdLnZhbHVlLnB1c2goQyksdGhpcy5j''@;'; + put 'put ''bGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW2hdLnZhbHVlLnB1c2goIiIpKSwoIklOIj09PXZ8fCJOT1QgSU4iPT09dikmJnRoaXMuc2V0SU5WYWx1ZXMoeSxoKSx0aGlzLndoZXJlQ2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFscygpfXNldElOVmFsdWVzKGgsdil7Y29uc3QgeT1bXSxD''@;'; + put 'put ''PXRoaXMuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1t2XS52YWx1ZXM7Qy5sZW5ndGg8MSYmKHRoaXMucGVuZGluZ0lOVmFsdWVzU2V0PXtjbGF1c2VJbmRleDpoLHF1ZXJ5SW5kZXg6dn0pO2ZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSsrKXkucHVzaCh7Y2hlY2tlZDohMSx2YWw6Q1tJ''@;'; + put 'put ''XS5mb3JtYXR0ZWR9KTt0aGlzLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHNbdl0udmFsdWU9eX1jbGVhclZhbHVlcyhoLHYpe3RoaXMuY2xhdXNlcy5xdWVyeU9ialt2XS5lbGVtZW50c1toXS52YWx1ZT0iIn1jbGVhclZhbHVlc09wZXJhdG9yKGgsdil7bGV0IHk9dGhpcy5jbGF1c2Vz''@;'; + put 'put ''LnF1ZXJ5T2JqW3ZdLmVsZW1lbnRzW2hdLm9wZXJhdG9yOygiQkVUV0VFTiI9PT15fHwiSU4iPT09eXx8Ik5PVCBJTiI9PT15fHwiQ09OVEFJTlMiPT09eSkmJnRoaXMuY2xlYXJWYWx1ZXMoaCx2KX1oYXNJbnZhbGlkQ2x1YXNlKGgpe2ZvcihsZXQgdiBvZiBoKXtpZihudWxsPT09di52YXJp''@;'; + put 'put ''YWJsZXx8bnVsbD09PXYub3BlcmF0b3J8fG51bGw9PT12LnZhbHVlfHwiIj09PXYudmFsdWUpcmV0dXJuIHYuaW52YWxpZENsYXVzZT0hMCwhMDt2LmludmFsaWRDbGF1c2U9ITF9cmV0dXJuIGguaW52YWxpZENsYXVzZT0hMSwhMX1oYXNJbnZhbGlkR3JvdXBDbHVhc2UoKXtmb3IobGV0IGg9''@;'; + put 'put ''MDtoPHRoaXMuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGg7aCsrKXtpZih0aGlzLmhhc0ludmFsaWRDbHVhc2UodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzKSlyZXR1cm4gdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmludmFsaWRDbGF1c2U9ITAsITA7dGhpcy5jbGF1c2VzLnF1''@;'; + put 'put ''ZXJ5T2JqW2hdLmludmFsaWRDbGF1c2U9ITF9cmV0dXJuITF9YWRkQ2xhdXNlKGgpe2lmKHRoaXMuaGFzSW52YWxpZENsdWFzZSh0aGlzLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHMpKXJldHVybiB2b2lkIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIkVycm9yIiwiQ2Fu''@;'; + put 'put ''bm90IGFkZCBuZXcgY2xhdXNlLCB3aGVuIG9uZSBvciBtb3JlIGNsYXVzZXMgYXJlIGludmFsaWQgb3IgZW1wdHkuIik7dGhpcy5jbGF1c2VBbXQucHVzaCgiIiksdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzLnB1c2goe2xvZ2ljOm51bGwsdHlwZTpudWxsLHZhcmlhYmxlOm51''@;'; + put 'put ''bGwsb3BlcmF0b3I6bnVsbCx2YWx1ZTpudWxsLHZhbHVlczpbXSxvcGVyYXRvcnM6W119KTtsZXQgdj10aGlzLmNsYXVzZXMucXVlcnlPYmpbaF0uY2xhdXNlTG9naWM7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmNsYXVzZUxvZ2ljPXZvaWQgMD09PXY/IkFORCI6Ik9SIj09PXY/Ik9SIjoi''@;'; + put 'put ''QU5EIix0aGlzLndoZXJlQ2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFscygpfWFkZEdyb3VwQ2xhdXNlKCl7dGhpcy5oYXNJbnZhbGlkR3JvdXBDbHVhc2UoKT90aGlzLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJFcnJvciIsIkNhbm5vdCBhZGQgbmV3IGNsYXVzZSwgd2hlbiBvbmUg''@;'; + put 'put ''b3IgbW9yZSBjbGF1c2VzIGFyZSBpbnZhbGlkIG9yIGVtcHR5LiIpOih0aGlzLmNsYXVzZXMucXVlcnlPYmoucHVzaCh7ZWxlbWVudHM6W3tsb2dpYzpudWxsLHR5cGU6bnVsbCx2YXJpYWJsZTpudWxsLG9wZXJhdG9yOm51bGwsdmFsdWU6bnVsbCx2YWx1ZXM6W10sb3BlcmF0b3JzOltdfV19''@;'; + put 'put ''KSx0aGlzLnNldFRvR2xvYmFscygpKX1pc0luSHRtbENvbGxlY3Rpb24oaCx2KXtmb3IobGV0IHk9MDt5PHYubGVuZ3RoO3krKylpZih2W3ldLnZhbHVlPT09aClyZXR1cm4hMDtyZXR1cm4hMX1yZW1vdmVHcm91cENsYXVzZShoKXt0aGlzLmNsYXVzZXMucXVlcnlPYmouc3BsaWNlKGgsMSks''@;'; + put 'put ''dGhpcy53aGVyZUNsYXVzZUZuKCl9cmVtb3ZlQ2xhdXNlKGgsdil7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ZdLmVsZW1lbnRzLnNwbGljZShoLDEpLHRoaXMud2hlcmVDbGF1c2VGbigpLHRoaXMuc2V0VG9HbG9iYWxzKCl9d2hlcmVDbGF1c2VGbihoPSExKXtjb25zdCB2PXRoaXMuaGVscGVy''@;'; + put 'put ''U2VydmljZS5kZWVwQ2xvbmUodGhpcy5jbGF1c2VzKTtpZihoJiYodi5xdWVyeU9ialswXS5lbGVtZW50cz1bXSksdm9pZCAwIT09dGhpcy5saWJkcyl7bGV0IHk9dGhpcy5zYXNTdG9yZVNlcnZpY2Uud2hlcmVDbGF1c2VDcmVhdG9yKHYsdGhpcy5ncm91cExvZ2ljLHRoaXMubGliZHMpO2h8''@;'; + put 'put ''fCh0aGlzLndoZXJlQ2xhdXNlPXkud2hlcmVDbGF1c2UsdGhpcy53aGVyZVN0cmluZz15LnN0cmluZyl9fW5nQWZ0ZXJWaWV3SW5pdCgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5fcmVtb3ZlUXJ5PXRoaXMuc2FzU3RvcmVTZXJ2aWNlLnJlbW92ZVF1''@;'; + put 'put ''ZXJ5LnN1YnNjcmliZShoPT57dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aD49MSYmKHRoaXMuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGg9MSx0aGlzLmNsYXVzZXMucXVlcnlPYmpbMF0uZWxlbWVudHMubGVuZ3RoPj0xJiYodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqWzBdLmVsZW1lbnRzLmxl''@;'; + put 'put ''bmd0aD0xLHRoaXMuY2xhdXNlcy5xdWVyeU9ialswXS5lbGVtZW50cz1bXSx0aGlzLmNsYXVzZXMucXVlcnlPYmpbMF0uZWxlbWVudHMucHVzaCh7bG9naWM6bnVsbCx0eXBlOm51bGwsdmFyaWFibGU6bnVsbCxvcGVyYXRvcjpudWxsLHZhbHVlOm51bGwsdmFsdWVzOltdLG9wZXJhdG9yczpb''@;'; + put 'put ''XX0pLHRoaXMud2hlcmVDbGF1c2VGbigpKSl9KSx0aGlzLmNvbHVtbnNTdWI9dGhpcy5zYXNTdG9yZVNlcnZpY2UuY29sdW1ucy5zdWJzY3JpYmUoaD0+e2xldCB2PWguZGF0YS5jb2xzOygiaG9tZSI9PT1uaS5yb290UGFyYW18fCJlZGl0b3IiPT09bmkucm9vdFBhcmFtKSYmbmkuZWRpdG9y''@;'; + put 'put ''LmZpbHRlci5jb2xzLmxlbmd0aDwxJiYodGhpcy5jb2xzPXYsdGhpcy5saWJkcz1oLmxpYmRzLG5pLmVkaXRvci5maWx0ZXIuY29scz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHYpKSksInZpZXciPT09bmkucm9vdFBhcmFtJiZuaS52aWV3ZXIuZmlsdGVyLmNvbHMubGVuZ3RoPDEmJih0''@;'; + put 'put ''aGlzLmNvbHM9dix0aGlzLmxpYmRzPWgubGliZHMsbmkudmlld2VyLmZpbHRlci5jb2xzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodikpKSx0aGlzLmxpYmRzfHwodGhpcy5saWJkcz1oLmxpYmRzKX0pLHRoaXMudmFsdWVzU3ViPXRoaXMuc2FzU3RvcmVTZXJ2aWNlLnZhbHVlcy5zdWJz''@;'; + put 'put ''Y3JpYmUoaD0+eygiaG9tZSI9PT1uaS5yb290UGFyYW18fCJlZGl0b3IiPT09bmkucm9vdFBhcmFtKSYmbmkuZWRpdG9yLmZpbHRlci52YWxzLmxlbmd0aDwxJiYodGhpcy52YWxzPWgudmFscyxuaS5lZGl0b3IuZmlsdGVyLnZhbHM9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShoLnZhbHMp''@;'; + put 'put ''KSksInZpZXciPT09bmkucm9vdFBhcmFtJiZuaS52aWV3ZXIuZmlsdGVyLnZhbHMubGVuZ3RoPDEmJih0aGlzLnZhbHM9aC52YWxzLG5pLnZpZXdlci5maWx0ZXIudmFscz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGgudmFscykpKX0pfSl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5n''@;'; + put 'put ''ZXRGcm9tR2xvYmFscygpLHNldFRpbWVvdXQoKCk9PntsZXQgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdmFsc192YXJfaWQwXzAiKTtoJiZoLmZvY3VzKCl9LDUwMCl9bmdPbkRlc3Ryb3koKXt0aGlzLmNvbHVtbnNTdWImJnRoaXMuY29sdW1uc1N1Yi51bnN1YnNjcmliZSgpLHRoaXMu''@;'; + put 'put ''dmFsdWVzU3ViJiZ0aGlzLnZhbHVlc1N1Yi51bnN1YnNjcmliZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChrZyksWHQobXUpLFh0KFhjKSxYdChkMSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtcXVlcnki''@;'; + put 'put ''XV0sZmVhdHVyZXM6W2hvKFt7cHJvdmlkZTpHZCx1c2VWYWx1ZToiZW4tR0IifV0pXSxkZWNsczozOCx2YXJzOjExLGNvbnN0czpbWzEsImNsci1mbGV4LXJvdyIsImNsci1mb3JtLWNvbnRyb2wiLCJtLTAiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIl0sWzEsImNsci1jaGVja2JveC13''@;'; + put 'put ''cmFwcGVyIl0sWyJuYW1lIiwiZHluYW1pYy13aGVyZS1jbGF1c2UiLCJ0eXBlIiwiY2hlY2tib3giLCJpZCIsImR5bmFtaWNXaGVyZUNsYXVzZSIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbImZvciIsImR5bmFtaWNXaGVyZUNsYXVzZSIsMSwiY2xyLWNvbnRyb2wtbGFiZWwiXSxb''@;'; + put 'put ''MSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIiwyLCJtYXJnaW4tbGVmdCIsIjE1cHgiXSxbIm5hbWUiLCJkeW5hbWljLXdoZXJlLWNsYXVzZSIsInR5cGUiLCJjaGVja2JveCIsImlkIiwidXNlUGlja2VycyIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJjaGFuZ2UiXSxbImZvciIsInVz''@;'; + put 'put ''ZVBpY2tlcnMiLDEsImNsci1jb250cm9sLWxhYmVsIl0sWzEsImNsci1yb3ciXSxbMSwic2VsZWN0IiwiY2xyLWNvbC1tZC0yIiwyLCJtYXJnaW4tYm90dG9tIiwiMzBweCJdLFsiY2xyU2VsZWN0IiwiIiwzLCJkaXNhYmxlZCIsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsInNlbGVj''@;'; + put 'put ''dGVkIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY2xyLWNvbC1tZC0xMCIsMiwibWFyZ2luLWJvdHRvbSIsIjMwcHgiXSxbMSwibGluZS1udW1iZXJzIiwibGFuZ3VhZ2UtbWFya3VwIl0sWyJjbGFzcyIsInByb2dyZXNTdGF0aWMgcHJvZ3Jlc3MgbG9vcCIsNCwibmdJZiJdLFsxLCJsYW5n''@;'; + put 'put ''dWFnZS1zcWwiXSxbMSwiY29udGVudCJdLFsxLCJjbGF1c2VzLWNvbnRhaW5lciIsImNsci1jb2wtbWQtMTIiXSxbNCwibmdJZiJdLFsiY2xhc3MiLCJjbGF1c2Utcm93Iiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInBpY2tlciIsIiJdLFsibm90UGlja2VyIiwiIl0sWyJub3RQaWNrZXJSYW5n''@;'; + put 'put ''ZSIsIiJdLFsiY2hlY2tib3hWYWx1ZXMiLCIiXSxbMywic2VsZWN0ZWQiXSxbMSwicHJvZ3Jlc1N0YXRpYyIsInByb2dyZXNzIiwibG9vcCJdLFsxLCJjbGF1c2Utcm93Il0sWzEsImNsYXVzZS1sb2dpYyIsImNsci1jb2wtbWQtMiJdLFsxLCJzZWxlY3QiXSxbImNsclNlbGVjdCIsIiIsMywi''@;'; + put 'put ''bmdNb2RlbCIsImRpc2FibGVkIiwibmdNb2RlbENoYW5nZSJdLFsiY2xhc3MiLCJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIG10LTEwIiwzLCJjbGljayIsNCwibmdJZiJdLFsxLCJjbGF1c2UtcXVlcnkiLCJjbHItY29sLW1kLTEwIl0sWyJzaGFwZSIsInRpbWVzIiwic2l6ZSIsIjM2Iiwi''@;'; + put 'put ''Y2xhc3MiLCJyZW1vdmUtZ3JvdXAtY2xhdXNlLWJ1dHRvbiIsMywiY2xpY2siLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLXJvdyIsMywiaW52YWxpZC1jbGF1c2UiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJidG4iLCJidG4tcHJpbWFyeSIsImJ0bi1ibG9jayIsIm10LTEwIiwzLCJjbGlj''@;'; + put 'put ''ayJdLFsic2hhcGUiLCJwbHVzIl0sWyJzaGFwZSIsInRpbWVzIiwic2l6ZSIsIjM2IiwxLCJyZW1vdmUtZ3JvdXAtY2xhdXNlLWJ1dHRvbiIsMywiY2xpY2siXSxbMSwidmFyaWFibGUtY29sIiwiZm9ybS1ncm91cCIsImNsci1jb2wtbWQtMyJdLFsxLCJkYXRhbGlzdC13cmFwcGVyIl0sWyJs''@;'; + put 'put ''YWJlbCIsIlZhcmlhYmxlIiwzLCJpZCIsImlucHV0SWQiLCJlbWl0T25seVNlbGVjdGVkIiwidmFsdWUiLCJ2YWx1ZUNoYW5nZSIsIm9uSW5wdXRFdmVudCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwib3BlcmF0b3ItY29sIiwiZm9ybS1ncm91cCIsImNsci1jb2wtbWQtMyJdLFsiY2xy''@;'; + put 'put ''U2VsZWN0IiwiIiwyLCJtYXJnaW4tdG9wIiwiMnB4IiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFsiY2xhc3MiLCJ2YWx1ZS1jb2wgZm9ybS1ncm91cCBjbHItY29sLW1kLTMiLDQsIm5nVmFyIl0sWzEsImNsYXVzZS1idXR0b25zIiwiY2xyLWNvbC1tZC0yIiwiYnRuLWdyb3VwIl0s''@;'; + put 'put ''WzEsImJ0biIsImJ0bi13YXJuaW5nIiwiYnRuLWJsb2NrIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzaGFwZSIsIm1pbnVzIl0sWzEsImJ0biIsImJ0bi1zdWNjZXNzIiwiYnRuLWJsb2NrIiwzLCJjbGljayJdLFsxLCJ2YWx1ZS1jb2wiLCJmb3JtLWdyb3VwIiwiY2xyLWNvbC1tZC0zIl0s''@;'; + put 'put ''WyJjbGFzcyIsImNoZWNrYm94LXZhbHMiLDQsIm5nSWYiXSxbImNsYXNzIiwic2luZ2xlLWZpZWxkLXZhbHMiLDQsIm5nSWYiXSxbImNsYXNzIiwicmFuZ2UtdmFscyIsNCwibmdJZiJdLFsiY2xhc3MiLCJjb250YWlucy12YWxzIiw0LCJuZ0lmIl0sWzEsImNoZWNrYm94LXZhbHMiXSxbInR5''@;'; + put 'put ''cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1saW5rIiwzLCJjbGljayJdLFs0LCJuZ1RlbXBsYXRlT3V0bGV0IiwibmdUZW1wbGF0ZU91dGxldENvbnRleHQiXSxbMSwic2luZ2xlLWZpZWxkLXZhbHMiXSxbMSwicmFuZ2UtdmFscyJdLFsxLCJmcm9tIl0sWzEsInRvIl0sWzEsImNvbnRhaW5z''@;'; + put 'put ''LXZhbHMiXSxbMSwiY2xyLWNvbnRyb2wtbGFiZWwiXSxbInR5cGUiLCJ0ZXh0IiwxLCJpbnB1dC12YWwiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsibGFiZWwiLCJWYWx1ZSIsInR5cGUiLCJkYXRlIiwzLCJkaXNhYmxl''@;'; + put 'put ''U29mdHNlbGVjdCIsImlucHV0SWQiLCJ2YWx1ZSIsInZhbHVlQ2hhbmdlIl0sWyJsYWJlbCIsIlZhbHVlIiwidHlwZSIsImRhdGUiLDMsImRpc2FibGVTb2Z0c2VsZWN0IiwiaW5wdXRJZCIsInZhbHVlIiwidmFsdWVDaGFuZ2UiLCJvbklucHV0RXZlbnQiXSxbInR5cGUiLCJ0aW1lIiwzLCJk''@;'; + put 'put ''aXNhYmxlU29mdHNlbGVjdCIsImlucHV0SWQiLCJ2YWx1ZSIsInZhbHVlQ2hhbmdlIiwib25JbnB1dEV2ZW50Il0sWyJsYWJlbCIsIlZhbHVlIiwidHlwZSIsInRpbWUiLDMsImRpc2FibGVTb2Z0c2VsZWN0IiwiaW5wdXRJZCIsInZhbHVlIiwib25JbnB1dEV2ZW50Il0sWyJsYWJlbCIsIlZh''@;'; + put 'put ''bHVlIiwzLCJpbnB1dElkIiwidmFsdWUiLCJ2YWx1ZUNoYW5nZSIsIm9uSW5wdXRFdmVudCJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInZhbHVlIl0sWyJsYWJlbCIsIlZhbHVlIiwzLCJpbnB1dElkIiwidmFsdWUiLCJkaXNhYmxlZCIsInZhbHVlQ2hhbmdlIiwib25J''@;'; + put 'put ''bnB1dEV2ZW50Il0sWzEsImluLXZhbHVlcy1tb2RhbCIsMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxDbG9zYWJsZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5Il0sWyJjbGFzcyIsIm5vLXZhbHVlcyIsNCwibmdJZiJdLFsiY2xhc3MiLCJmb3JtLWJsb2NrIiw0LCJuZ0lm''@;'; + put 'put ''Il0sWzEsIm1vZGFsLWZvb3RlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWzEsIm5vLXZhbHVlcyJdLFsxLCJmb3JtLWJsb2NrIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJjbHJDaGVja2JveCIsIiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFu''@;'; + put 'put ''Z2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJkaXYiLDApKDEsImRpdiIsMSkoMiwiZGl2IiwyKSgzLCJpbnB1dCIsMyksWW4oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LmR5bmFtaWNXaGVyZUNsYXVzZT1DfSksc3QoKSxpdCg0LCJsYWJlbCIs''@;'; + put 'put ''NCksVXQoNSwiRHluYW1pYyB3aGVyZSBjbGF1c2UiKSxzdCgpKCkoKSxpdCg2LCJkaXYiLDUpKDcsImRpdiIsMikoOCwiaW5wdXQiLDYpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi51c2VQaWNrZXJzPUN9KSgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiB2LnVz''@;'; + put 'put ''ZVBpY2tlcnNDaGFuZ2UoKX0pLHN0KCksaXQoOSwibGFiZWwiLDcpLFV0KDEwLCIgVXNlIHBpY2tlcnMgIiksc3QoKSgpKCkoKSxpdCgxMSwiZGl2Iiw4KSgxMiwiZGl2Iiw5KSgxMywiY2xyLXNlbGVjdC1jb250YWluZXIiKSgxNCwibGFiZWwiKSxVdCgxNSwiR3JvdXAgbG9naWMiKSxzdCgp''@;'; + put 'put ''LGl0KDE2LCJzZWxlY3QiLDEwKSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuZ3JvdXBMb2dpYz1DfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHYuc2V0R3JvdXBMb2dpYyh2Lmdyb3VwTG9naWMpfSkscm4oMTcsZWd0LDIsMiwib3B0aW9uIiwx''@;'; + put 'put ''MSksc3QoKSgpKCksaXQoMTgsImRpdiIsMTIpKDE5LCJwcmUiLDEzKSxVdCgyMCwiICAgICAgIikscm4oMjEsdGd0LDQsMCwiZGl2IiwxNCksVXQoMjIsIlxuXG4gICAgICAiKSxpdCgyMywiY29kZSIsMTUpLFV0KDI0KSxzdCgpLFV0KDI1LCJcbiAgICAiKSxzdCgpKCkoKSxpdCgyNiwiZGl2''@;'; + put 'put ''IiwxNikoMjcsImRpdiIsMTcpLHJuKDI4LG5ndCwxLDAsImRpdiIsMTgpLHJuKDI5LF9ndCwxNSw4LCJkaXYiLDE5KSxzdCgpKCkscm4oMzAsTWd0LDQsNCwibmctdGVtcGxhdGUiLG51bGwsMjAsWnIpLHJuKDMyLHhndCwyLDMsIm5nLXRlbXBsYXRlIixudWxsLDIxLFpyKSxybigzNCxJZ3Qs''@;'; + put 'put ''Miw0LCJuZy10ZW1wbGF0ZSIsbnVsbCwyMixacikscm4oMzYsUmd0LDksNCwibmctdGVtcGxhdGUiLG51bGwsMjMsWnIpKSwyJmgmJih1dCgzKSxUdCgibmdNb2RlbCIsdi5keW5hbWljV2hlcmVDbGF1c2UpLHV0KDUpLFR0KCJuZ01vZGVsIix2LnVzZVBpY2tlcnMpLHV0KDgpLFR0KCJkaXNh''@;'; + put 'put ''YmxlZCIsKG51bGw9PXYuY2xhdXNlc3x8bnVsbD09di5jbGF1c2VzLnF1ZXJ5T2JqP251bGw6di5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aCk8MSkoIm5nTW9kZWwiLHYuZ3JvdXBMb2dpYyksdXQoMSksVHQoIm5nRm9yT2YiLHYubG9naWNPcGVyYXRvcnMpLHV0KDQpLFR0KCJuZ0lmIix2Lndo''@;'; + put 'put ''ZXJlQ2xhdXNlTG9hZGluZyksdXQoMyksR2kodi53aGVyZUNsYXVzZSksdXQoMyksRmkoImNsci1jb2wtbWQtMTAiLChudWxsPT12LmNsYXVzZXN8fG51bGw9PXYuY2xhdXNlcy5xdWVyeU9iaj9udWxsOnYuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGgpPjEpLHV0KDEpLFR0KCJuZ0lmIiwobnVs''@;'; + put 'put ''bD09di5jbGF1c2VzfHxudWxsPT12LmNsYXVzZXMucXVlcnlPYmo/bnVsbDp2LmNsYXVzZXMucXVlcnlPYmoubGVuZ3RoKT4xKSx1dCgxKSxUdCgibmdGb3JPZiIsdi5jbGF1c2VzLnF1ZXJ5T2JqKSl9LGRlcGVuZGVuY2llczpbWnMsVm8sUWQsVWQsaXAscTMsZWQsbTEsSWYsT2YsRXMseHMs''@;'; + put 'put ''d2wsZjQsaDQsb3QsUm8sbG8sT2ksWGosSmosX0xlLENMZSwkNXQscTV0XSxzdHlsZXM6WydAY2hhcnNldCAiVVRGLTgiOy5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLWxvZ2ljW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7''@;'; + put 'put ''anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YmFja2dyb3VuZDojZTllOWU5O3BhZGRpbmc6MTVweH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdj''@;'; + put 'put ''b250ZW50LSVDT01QJV17cGFkZGluZzozMHB4IDAgMjBweCAyMHB4O2JhY2tncm91bmQ6I2ZiZjhmODtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9zaXRpb246cmVsYXRpdmV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAg''@;'; + put 'put ''LmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdID4gLmNsci1yb3dbX25nY29udGVudC0lQ09NUCVde2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5j''@;'; + put 'put ''bGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5jbHItcm93W19uZ2NvbnRlbnQtJUNPTVAlXTpub3QoOmxhc3QtY2hpbGQpe3BhZGRpbmctYm90dG9tOjE1cHg7bWFyZ2luLWJvdHRvbToxNXB4O2JvcmRlci1i''@;'; + put 'put ''b3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjE2KX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAucmVtb3ZlLWdyb3VwLWNsYXVzZS1idXR0b25b''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowcHg7cmlnaHQ6MTBweDtjb2xvcjpncmF5fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNP''@;'; + put 'put ''TVAlXSAgIC52YXJpYWJsZS1jb2xbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3BhZGRpbmctYm90dG9tOjFweH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAg''@;'; + put 'put ''LmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFyaWFibGUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRhbGlzdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhcmlhYmxlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuZGF0YWxpc3Qtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0uY29udGVu''@;'; + put 'put ''dFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAub3BlcmF0b3ItY29sW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFy''@;'; + put 'put ''dH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAub3BlcmF0b3ItY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1zZWxlY3QtY29udGFpbmVyW19u''@;'; + put 'put ''Z2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6NDVweDttYXJnaW4tdG9wOjA7d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUt''@;'; + put 'put ''Y29sW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtwYWRkaW5nLWJvdHRvbToxcHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25n''@;'; + put 'put ''Y29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuY2hlY2tib3gtdmFsc1tfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtwYWRkaW5nOjAgNXB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjMpfS5jb250ZW50W19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLmNoZWNrYm94LXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgY2xyLWNoZWNr''@;'; + put 'put ''Ym94LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDowfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25n''@;'; + put 'put ''Y29udGVudC0lQ09NUCVdICAgLmNoZWNrYm94LXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgc2VjdGlvbltfbmdjb250ZW50LSVDT01QJV17bWF4LWhlaWdodDoxMjBweDtvdmVyZmxvdy15OnNjcm9sbH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zaW5nbGUtZmllbGQtdmFsc1tfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0g''@;'; + put 'put ''ICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zaW5nbGUtZmllbGQtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1j''@;'; + put 'put ''b250YWluZXJ7d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zaW5nbGUt''@;'; + put 'put ''ZmllbGQtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVye21heC13aWR0aDpub25lfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xh''@;'; + put 'put ''dXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnNpbmdsZS1maWVsZC12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXIgLmNsci1pbnB1dC1ncm91cHt3''@;'; + put 'put ''aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnNpbmdsZS1maWVsZC12YWxz''@;'; + put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXSA+IGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52''@;'; + put 'put ''YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnNpbmdsZS1maWVsZC12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W3R5cGU9dGltZV1bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7cGFkZGluZy1yaWdodDoxN3B4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAg''@;'; + put 'put ''IC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29u''@;'; + put 'put ''dGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29u''@;'; + put 'put ''dHJvbC1jb250YWluZXJ7d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5y''@;'; + put 'put ''YW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXJ7bWF4LXdpZHRoOm5vbmV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1''@;'; + put 'put ''c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVyIC5jbHItaW5wdXQtZ3JvdXB7d2lkdGg6MTAw''@;'; + put 'put ''JX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12YWxzW19uZ2NvbnRlbnQtJUNP''@;'; + put 'put ''TVAlXSAgIC5mcm9tW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tYm90dG9tOjEwcHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNv''@;'; + put 'put ''bFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAuZnJvbVtfbmdjb250ZW50LSVDT01QJV0gPiBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWlu''@;'; + put 'put ''ZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5mcm9tW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W3R5cGU9dGlt''@;'; + put 'put ''ZV1bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7cGFkZGluZy1yaWdodDoxN3B4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1j''@;'; + put 'put ''b2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLmZyb21bX25nY29udGVudC0lQ09NUCVdLCAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVy''@;'; + put 'put ''eVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b1tfbmdjb250ZW50LSVDT01QJV17bWluLXdpZHRoOjEwMHB4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2Vz''@;'; + put 'put ''LWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLmZyb21bX25nY29udGVudC0lQ09NUCVdID4gaW5wdXRb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVdLCAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12''@;'; + put 'put ''YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b1tfbmdjb250ZW50LSVDT01QJV0gPiBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1x''@;'; + put 'put ''dWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5mcm9tW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W3R5cGU9dGltZV1bX25nY29udGVudC0lQ09NUCVdLCAuY29udGVudFtf''@;'; + put 'put ''bmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b1tf''@;'; + put 'put ''bmdjb250ZW50LSVDT01QJV0gICBpbnB1dFt0eXBlPXRpbWVdW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6MTdweH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1x''@;'; + put 'put ''dWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250YWlucy12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVD''@;'; + put 'put ''T01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRhaW5zLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVye3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVu''@;'; + put 'put ''dC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGFpbnMtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29u''@;'; + put 'put ''dHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVye21heC13aWR0aDpub25lfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVdICAgLmNvbnRhaW5zLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlciAuY2xyLWlucHV0LWdyb3Vwe3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVz''@;'; + put 'put ''ZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGFpbnMtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gPiBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17d2lk''@;'; + put 'put ''dGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250YWlucy12YWxzW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXSAgIGlucHV0W3R5cGU9dGltZV1bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7cGFkZGluZy1yaWdodDoxN3B4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5''@;'; + put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtYnV0dG9uc1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcn0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0g''@;'; + put 'put ''ICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLWJ1dHRvbnNbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4td2lkdGg6YXV0b30uaW52YWxpZC1j''@;'; + put 'put ''bGF1c2VbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjZDk0YjMxfS5jbGF1c2Utcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MH0uY2xhdXNlLXJvd1tfbmdjb250ZW50LSVDT01QJV06YWZ0ZXJ7cG9z''@;'; + put 'put ''aXRpb246cmVsYXRpdmU7Y29udGVudDoiIjtoZWlnaHQ6LjQxNjY3cmVtO3dpZHRoOi40MTY2N3JlbTt0b3A6LjI5MTY3cmVtO3JpZ2h0Oi4yNXJlbTtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUz''@;'; + put 'put ''QSUyRiUyRnd3dy53My5vcmdcXDIwMjYlMkM5Ljg0JTJDMy4yNGEwLjY4JTJDMC42OCUyQzAlMkMxJTJDMSUyQzElMkMxWiUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO3ZlcnRpY2FsLWFsaWdu''@;'; + put 'put ''Om1pZGRsZTttYXJnaW46MH1bX25nY29udGVudC0lQ09NUCVdOm5vdChwcmUpID4gY29kZVtjbGFzcyo9bGFuZ3VhZ2UtXVtfbmdjb250ZW50LSVDT01QJV0sIHByZVtjbGFzcyo9bGFuZ3VhZ2UtXVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZmJmOGY4fXByZVtjbGFz''@;'; + put 'put ''cyo9bGFuZ3VhZ2UtXVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzo4cHg7bWFyZ2luOjA7Ym9yZGVyLXJhZGl1czoxcHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21pbi1oZWlnaHQ6NjZweDtwb3NpdGlvbjpyZWxhdGl2ZX1wcmVb''@;'; + put 'put ''Y2xhc3MqPWxhbmd1YWdlLV1bX25nY29udGVudC0lQ09NUCVdICAgc3Bhbi5zcGlubmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjEwcHg7dG9wOjEwcHh9cHJlW2NsYXNzKj1sYW5ndWFnZS1dW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNvZGVbX25nY29udGVu''@;'; + put 'put ''dC0lQ09NUCVde3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZH0uaW5wdXQtdmFsW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MHB4O2JhY2tncm91bmQ6I2ZiZjhmODtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjOTk5OTk5fWNsci1kYXRlLWNvbnRhaW5lcltf''@;'; + put 'put ''bmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoycHghaW1wb3J0YW50fWlucHV0W3R5cGU9dGltZV1bX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2IzYjNiM31pbnB1dFt0eXBlPXRpbWVdW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXTpmb2N1c3tvdXRsaW5lOm5vbmV9LmluLXZhbHVlcy1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAubW9kYWwtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCAjZDhkOGQ4O21hcmdpbi10b3A6MTBweH0ucHJvZ3Jlc3NbX25nY29u''@;'; + put 'put ''dGVudC0lQ09NUCVdLCAucHJvZ3Jlc3Mtc3RhdGljW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3dpZHRoOjEwMCU7aGVpZ2h0OjRweDt0b3A6M3B4fSddfSksZH0pKCksQmd0PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLmZpbGVPdmVy''@;'; + put 'put ''PSExLHRoaXMuZmlsZURyb3BwZWQ9bmV3IGFyLHRoaXMuZmlsZURyYWdnZWRPdmVyPW5ldyBhcn1vbkRyYWdPdmVyKGgpe2gucHJldmVudERlZmF1bHQoKSxoLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY29udGFpbnNGaWxlcyhoKSYmIXRoaXMuZmlsZU92ZXImJih0aGlzLmZpbGVPdmVyPSEw''@;'; + put 'put ''LHRoaXMuZmlsZURyYWdnZWRPdmVyLmVtaXQoKSl9b25EcmFnTGVhdmUoaCl7aC5wcmV2ZW50RGVmYXVsdCgpLGguc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5maWxlT3Zlcj0hMX1vbmRyb3AoaCl7aC5wcmV2ZW50RGVmYXVsdCgpLGguc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5maWxlT3Zlcj0h''@;'; + put 'put ''MTtjb25zdCB2PWguZGF0YVRyYW5zZmVyLmZpbGVzO3YubGVuZ3RoPjAmJnRoaXMuZmlsZURyb3BwZWQuZW1pdCh2KX1jb250YWluc0ZpbGVzKGgpe2lmKGgmJmguZGF0YVRyYW5zZmVyJiZoLmRhdGFUcmFuc2Zlci50eXBlcylmb3IobGV0IHY9MDt2PGguZGF0YVRyYW5zZmVyLnR5cGVzLmxl''@;'; + put 'put ''bmd0aDt2KyspaWYoIkZpbGVzIj09aC5kYXRhVHJhbnNmZXIudHlwZXNbdl0pcmV0dXJuITB9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJhcHBEcmFnTmRyb3AiLCIiXV0saG9z''@;'; + put 'put ''dFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJkcmFnb3ZlciIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25EcmFnT3ZlcihDKX0pKCJkcmFnbGVhdmUiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uRHJhZ0xlYXZlKEMpfSkoImRyb3AiLGZ1bmN0aW9uKEMpe3JldHVy''@;'; + put 'put ''biB2Lm9uZHJvcChDKX0pLDImaCYmRmkoImZpbGVvdmVyIix2LmZpbGVPdmVyKX0sb3V0cHV0czp7ZmlsZURyb3BwZWQ6ImZpbGVEcm9wcGVkIixmaWxlRHJhZ2dlZE92ZXI6ImZpbGVEcmFnZ2VkT3ZlciJ9fSksZH0pKCk7ZnVuY3Rpb24gUGd0KGQsZyl7aWYoMSZkJiYoaXQoMCwic3BhbiIs''@;'; + put 'put ''MTcpLFV0KDEpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCgxKSxHaShoLmdlbmVyYXRlZFJlY29yZFVybCl9fWZ1bmN0aW9uIEZndChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImJ1dHRvbiIsMTgpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgy''@;'; + put 'put ''KS5nZW5lcmF0ZUVkaXRSZWNvcmRVcmwoKSl9KSxVdCgxKSxzdCgpfWlmKDImZCl7Y29uc3QgaD1LdCgyKTtUdCgiZGlzYWJsZWQiLGguZ2VuZXJhdGVFZGl0UmVjb3JkVXJsTG9hZGluZyksdXQoMSksSmkoIiAiLGguZ2VuZXJhdGVkUmVjb3JkVXJsPyJjb3B5IHRvIGNsaXBib2FyZCI6aC5n''@;'; + put 'put ''ZW5lcmF0ZUVkaXRSZWNvcmRVcmxMb2FkaW5nPyJHZW5lcmF0aW5nIHVybC4uLiI6IkxpbmsgdG8gdGhpcyByZWNvcmQiLCIgIil9fWZ1bmN0aW9uIEhndChkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsUGd0LDIsMSwic3BhbiIsMTUpLHJuKDIsRmd0LDIsMiwiYnV0dG9uIiwxNiksSDAoKSks''@;'; + put 'put ''MiZkKXtjb25zdCBoPUt0KCk7dXQoMSksVHQoIm5nSWYiLCEobnVsbCE9aC5jdXJyZW50UmVjb3JkJiZoLmN1cnJlbnRSZWNvcmQubm9MaW5rT3B0aW9uKSksdXQoMSksVHQoIm5nSWYiLCEobnVsbCE9aC5jdXJyZW50UmVjb3JkJiZoLmN1cnJlbnRSZWNvcmQubm9MaW5rT3B0aW9uKSl9fWZ1''@;'; + put 'put ''bmN0aW9uIE5ndChkLGcpezEmZCYmKGl0KDAsImRpdiIsMTkpKDEsInNwYW4iLDIwKSxVdCgyLCIgTG9hZGluZy4uLiAiKSxzdCgpKCkpfWZ1bmN0aW9uIFZndChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDMzKX1mdW5jdGlvbiBqZ3QoZCxnKXsxJmQmJihpdCgwLCJzcGFuIiwzNCksVXQo''@;'; + put 'put ''MSwiIExvYWRpbmcuLi4gIiksc3QoKSl9ZnVuY3Rpb24gWmd0KGQsZyl7MSZkJiZDcigwLCJjZHMtaWNvbiIsMzUpfWZ1bmN0aW9uIHpndChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci1pbnB1dC1jb250YWluZXIiLDM3KSgxLCJpbnB1dCIsMzgpLFluKCJmb2N1c2luIixm''@;'; + put 'put ''dW5jdGlvbih5KXtydChoKTtjb25zdCBDPUt0KDMpLmluZGV4O3JldHVybiBhKEt0KDIpLm9uUmVjb3JkSW5wdXRGb2N1cyh5LEMpKX0pKCJwYXN0ZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoNSkucmVjb3JkSW5wdXRQYXN0ZSh5KSl9KSgiaW5wdXQiLGZ1bmN0aW9uKHkpe3J0''@;'; + put 'put ''KGgpO2NvbnN0IEM9S3QoMykuJGltcGxpY2l0LEk9S3QoMik7cmV0dXJuIEkucmVjb3JkSW5wdXRDaGFuZ2UoeSxDLmtleSksYShJLmN1cnJlbnRSZWNvcmQubm9MaW5rT3B0aW9uPSEwKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtydChoKTtjb25zdCBDPUt0KDMpLiRpbXBsaWNp''@;'; + put 'put ''dDtyZXR1cm4gYShLdCgyKS5jdXJyZW50UmVjb3JkW0Mua2V5XT15KX0pLHN0KCkoKX1pZigyJmQpe2NvbnN0IGg9S3QoMykuJGltcGxpY2l0LHY9S3QoMik7RmkoImludmFsaWQtZGF0YSIsdi5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuaW5jbHVkZXMoaC5rZXkpKSx1dCgxKSxUdCgibmdN''@;'; + put 'put ''b2RlbCIsdi5jdXJyZW50UmVjb3JkW2gua2V5XSl9fWZ1bmN0aW9uIEdndChkLGcpezEmZCYmZjEoMCl9Y29uc3QgVG1lPWZ1bmN0aW9uKGQsZyl7cmV0dXJue2NvbDpkLGNvbEluZGV4Omd9fTtmdW5jdGlvbiBXZ3QoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiKSxybigxLEdndCwxLDAsIm5n''@;'; + put 'put ''LWNvbnRhaW5lciIsMzkpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgzKSx2PWguJGltcGxpY2l0LHk9aC5pbmRleDtLdCgyKTtjb25zdCBDPXlhKDI3KTt1dCgxKSxUdCgibmdUZW1wbGF0ZU91dGxldCIsQykoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixaMygyLFRtZSx2LHkpKX19Y29uc3Qg''@;'; + put 'put ''WWd0PWZ1bmN0aW9uKCl7cmV0dXJuWyJudW1lcmljIix2b2lkIDBdfSxTTGU9ZnVuY3Rpb24oKXtyZXR1cm5bImF1dG9jb21wbGV0ZSJdfTtmdW5jdGlvbiBVZ3QoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLHpndCwyLDMsImNsci1pbnB1dC1jb250YWluZXIiLDM2KSxybigyLFdndCwyLDUs''@;'; + put 'put ''ImRpdiIsMiksSDAoKSksMiZkKXtjb25zdCBoPUt0KDIpLiRpbXBsaWNpdCx2PUt0KDIpO2xldCB5LEM7dXQoMSksVHQoIm5nSWYiLE5zKDIsWWd0KS5pbmNsdWRlcyhudWxsPT12LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PSh5PXYuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRS''@;'; + put 'put ''dWxlKGgua2V5KSk/bnVsbDp5LmVkaXRvcikpLHV0KDEpLFR0KCJuZ0lmIixOcygzLFNMZSkuaW5jbHVkZXMobnVsbD09di5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oQz12LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZShoLmtleSkpP251bGw6Qy5lZGl0b3IpKX19ZnVu''@;'; + put 'put ''Y3Rpb24gUWd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiY2xyLXRleHRhcmVhLWNvbnRhaW5lciIpKDEsInRleHRhcmVhIiw0MCw0MSksWW4oImZvY3VzaW4iLGZ1bmN0aW9uKHkpe3J0KGgpO2NvbnN0IEM9S3QoMykuaW5kZXg7cmV0dXJuIGEoS3QoMikub25SZWNvcmRJbnB1''@;'; + put 'put ''dEZvY3VzKHksQykpfSkoInBhc3RlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCg1KS5yZWNvcmRJbnB1dFBhc3RlKHkpKX0pKCJpbnB1dCIsZnVuY3Rpb24oeSl7cnQoaCk7Y29uc3QgQz1LdCgzKS4kaW1wbGljaXQ7cmV0dXJuIGEoS3QoMikucmVjb3JkSW5wdXRDaGFuZ2UoeSxD''@;'; + put 'put ''LmtleSkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3J0KGgpO2NvbnN0IEM9S3QoMykuJGltcGxpY2l0O3JldHVybiBhKEt0KDIpLmN1cnJlbnRSZWNvcmRbQy5rZXldPXkpfSksVXQoMywiICAgICAgICAgICAgICAgICAgIiksc3QoKSxpdCg0LCJjbHItY29udHJvbC1oZWxwZXIi''@;'; + put 'put ''KSxVdCg1KSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDIpLHY9S3QoMykuJGltcGxpY2l0LHk9S3QoMik7bGV0IEMsSSxqO3V0KDEpLEZpKCJpbnZhbGlkLWRhdGEiLHkuY3VycmVudFJlY29yZEludmFsaWRDb2xzLmluY2x1ZGVzKHYua2V5KSkoIm5vdC1jaGFyIixudWxsPT15LmN1cnJl''@;'; + put 'put ''bnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PShDPXkuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKHYua2V5KSk/bnVsbDpDLnR5cGUpLFR0KCJyb3dzIix2LnZhbHVlLmxlbmd0aD44MD82OjEpKCJuZ01vZGVsIix5LmN1cnJlbnRSZWNvcmRbdi5rZXldKSgibWF4TGVuZ3RoIixudWxs''@;'; + put 'put ''PT15LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PShJPXkuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKHYua2V5KSk/bnVsbDpJLmxlbmd0aCksdXQoNCksRmgoIiIsaC52YWx1ZS5sZW5ndGgsIiAvICIsbnVsbD09eS5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0o''@;'; + put 'put ''aj15LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZSh2LmtleSkpP251bGw6ai5sZW5ndGgsIiIpfX1mdW5jdGlvbiBKZ3QoZCxnKXsxJmQmJmYxKDApfWZ1bmN0aW9uIFhndChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIpLHJuKDEsSmd0LDEsMCwibmctY29udGFpbmVyIiwzOSksc3Qo''@;'; + put 'put ''KSksMiZkKXtjb25zdCBoPUt0KDMpLHY9aC4kaW1wbGljaXQseT1oLmluZGV4O0t0KDIpO2NvbnN0IEM9eWEoMjcpO3V0KDEpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0IixDKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLFozKDIsVG1lLHYseSkpfX1jb25zdCBLZ3Q9ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm5bdm9pZCAwXX07ZnVuY3Rpb24gJGd0KGQsZyl7aWYoMSZkJiYoRjAoMCkscm4oMSxRZ3QsNiw5LCJjbHItdGV4dGFyZWEtY29udGFpbmVyIiwyKSxybigyLFhndCwyLDUsImRpdiIsMiksSDAoKSksMiZkKXtjb25zdCBoPUt0KDIpLiRpbXBsaWNpdCx2PUt0KDIpO2xldCB5LEM7dXQoMSks''@;'; + put 'put ''VHQoIm5nSWYiLE5zKDIsS2d0KS5pbmNsdWRlcyhudWxsPT12LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PSh5PXYuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKGgua2V5KSk/bnVsbDp5LmVkaXRvcikpLHV0KDEpLFR0KCJuZ0lmIixOcygzLFNMZSkuaW5jbHVkZXMobnVs''@;'; + put 'put ''bD09di5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oQz12LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZShoLmtleSkpP251bGw6Qy5lZGl0b3IpKX19ZnVuY3Rpb24gcWd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiY2xyLXRleHRhcmVhLWNvbnRhaW5lciIs''@;'; + put 'put ''NDIpKDEsInRleHRhcmVhIiw0MyksWW4oInBhc3RlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCg0KS5yZWNvcmRJbnB1dFBhc3RlKHkpKX0pKCJpbnB1dCIsZnVuY3Rpb24oeSl7cnQoaCk7Y29uc3QgQz1LdCgyKS4kaW1wbGljaXQ7cmV0dXJuIGEoS3QoMikucmVjb3JkSW5wdXRD''@;'; + put 'put ''aGFuZ2UoeSxDLmtleSkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3J0KGgpO2NvbnN0IEM9S3QoMikuJGltcGxpY2l0O3JldHVybiBhKEt0KDIpLmN1cnJlbnRSZWNvcmRbQy5rZXldPXkpfSksc3QoKSxpdCgyLCJjbHItY29udHJvbC1oZWxwZXIiKSxVdCgzLCJISDptbTpzcyIp''@;'; + put 'put ''LHN0KCkoKX1pZigyJmQpe2NvbnN0IGg9S3QoMikuJGltcGxpY2l0LHY9S3QoMik7bGV0IHk7dXQoMSksRmkoImludmFsaWQtZGF0YSIsdi5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuaW5jbHVkZXMoaC5rZXkpKSgibm90LWNoYXIiLG51bGw9PXYuY3VycmVudFJlY29yZFZhbGlkYXRvcnx8''@;'; + put 'put ''bnVsbD09KHk9di5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoaC5rZXkpKT9udWxsOnkudHlwZSksVHQoInJvd3MiLGgudmFsdWUubGVuZ3RoPjgwPzY6MSkoIm5nTW9kZWwiLHYuY3VycmVudFJlY29yZFtoLmtleV0pfX1mdW5jdGlvbiBlbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9''@;'; + put 'put ''X2koKTtpdCgwLCJkaXYiLDQyKSgxLCJ0ZXh0YXJlYSIsNDQpLFluKCJwYXN0ZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoNCkucmVjb3JkSW5wdXRQYXN0ZSh5KSl9KSgiaW5wdXQiLGZ1bmN0aW9uKHkpe3J0KGgpO2NvbnN0IEM9S3QoMikuJGltcGxpY2l0O3JldHVybiBhKEt0''@;'; + put 'put ''KDIpLnJlY29yZElucHV0Q2hhbmdlKHksQy5rZXkpKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtydChoKTtjb25zdCBDPUt0KDIpLiRpbXBsaWNpdDtyZXR1cm4gYShLdCgyKS5jdXJyZW50UmVjb3JkW0Mua2V5XT15KX0pLHN0KCksaXQoMiwiY2xyLWRhdGUtY29udGFpbmVyIiw0''@;'; + put 'put ''NSkoMywiaW5wdXQiLDQ2KSxZbigiY2xyRGF0ZUNoYW5nZSIsZnVuY3Rpb24oeSl7cnQoaCk7Y29uc3QgQz1LdCgyKS4kaW1wbGljaXQ7cmV0dXJuIGEoS3QoMikucmVjb3JkRGF0ZUNoYW5nZSh5LEMua2V5KSl9KSxzdCgpKCkoKX1pZigyJmQpe2NvbnN0IGg9S3QoMikuJGltcGxpY2l0LHY9''@;'; + put 'put ''S3QoMik7dXQoMSksRmkoImludmFsaWQtZGF0YSIsdi5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuaW5jbHVkZXMoaC5rZXkpKSxUdCgibmdNb2RlbCIsdi5jdXJyZW50UmVjb3JkW2gua2V5XSl9fWZ1bmN0aW9uIHRtdChkLGcpezEmZCYmZjEoMCl9ZnVuY3Rpb24gbm10KGQsZyl7aWYoMSZk''@;'; + put 'put ''JiYoaXQoMCwiZGl2Iikscm4oMSx0bXQsMSwwLCJuZy1jb250YWluZXIiLDM5KSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoMiksdj1oLiRpbXBsaWNpdCx5PWguaW5kZXg7S3QoMik7Y29uc3QgQz15YSgyNyk7dXQoMSksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLEMpKCJuZ1RlbXBsYXRlT3V0bGV0''@;'; + put 'put ''Q29udGV4dCIsWjMoMixUbWUsdix5KSl9fWZ1bmN0aW9uIHJtdChkLGcpe2lmKDEmZCYmKEYwKDApLGl0KDEsImRpdiIsMjIpKDIsImRpdiIsMjMpKDMsInAiLDI0KSxVdCg0KSxybig1LFZndCwxLDAsImNsci1pY29uIiwyNSksc3QoKSxpdCg2LCJwIiwyNiksVXQoNyksc3QoKSgpLGl0KDgs''@;'; + put 'put ''ImRpdiIsMjcpLHJuKDksamd0LDIsMCwic3BhbiIsMjgpLHJuKDEwLFpndCwxLDAsImNkcy1pY29uIiwyOSkscm4oMTEsVWd0LDMsNCwibmctY29udGFpbmVyIiwzMCkscm4oMTIsJGd0LDMsNCwibmctY29udGFpbmVyIiwzMCkscm4oMTMscWd0LDQsNiwiY2xyLXRleHRhcmVhLWNvbnRhaW5l''@;'; + put 'put ''ciIsMzEpLHJuKDE0LGVtdCw0LDMsImRpdiIsMzEpLHJuKDE1LG5tdCwyLDUsImRpdiIsMzApLHN0KCkoKSxDcigxNiwiaHIiLDMyKSxIMCgpKSwyJmQpe2NvbnN0IGg9S3QoKSx2PWguJGltcGxpY2l0LHk9aC5pbmRleCxDPUt0KDIpO2xldCBJLGo7dXQoNCksSmkoIiAiLHYua2V5LCIgIiks''@;'; + put 'put ''dXQoMSksVHQoIm5nSWYiLEMuaXNDb2xQayh2LmtleSkpLHV0KDIpLEppKCIgIixudWxsPT1DLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PShJPUMuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKHYua2V5KSk/bnVsbDpJLmRlc2MsIiAiKSx1dCgxKSxUdCgibmdTd2l0Y2gi''@;'; + put 'put ''LG51bGw9PUMuY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KGo9Qy5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUodi5rZXkpKT9udWxsOmoudHlwZSksdXQoMSksVHQoIm5nSWYiLEMuY3VycmVudFJlY29yZExvYWRpbmdzLmluY2x1ZGVzKHkpKSx1dCgxKSxUdCgibmdJZiIs''@;'; + put 'put ''Qy5jdXJyZW50UmVjb3JkRXJyb3JzLmluY2x1ZGVzKHkpKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwibnVtZXJpYyIpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLHZvaWQgMCksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsInRpbWUiKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwiZGF0ZSIp''@;'; + put 'put ''LHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCJhdXRvY29tcGxldGUiKX19ZnVuY3Rpb24gaW10KGQsZyl7aWYoMSZkJiYoRjAoMCkscm4oMSxybXQsMTcsMTEsIm5nLWNvbnRhaW5lciIsMiksSDAoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0lmIiwiQWN0aW9uIiE9''@;'; + put 'put ''PWgua2V5JiYiX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fIiE9PWgua2V5JiYibm9MaW5rT3B0aW9uIiE9PWgua2V5KX19ZnVuY3Rpb24gb210KGQsZyl7aWYoMSZkJiYoRjAoMCkscm4oMSxpbXQsMiwxLCJuZy1jb250YWluZXIiLDIxKSxubigyLCJrZXl2YWx1ZSIpLEgwKCkpLDIm''@;'; + put 'put ''ZCl7Y29uc3QgaD1LdCgpO3V0KDEpLFR0KCJuZ0Zvck9mIixQbigyLDIsaC5jdXJyZW50UmVjb3JkLGgub3JpZ2luYWxPcmRlcikpKCJuZ0ZvclRyYWNrQnkiLGgudHJhY2tCeUZuKX19ZnVuY3Rpb24gYW10KGQsZyl7aWYoMSZkJiYoaXQoMCwib3B0aW9uIiw1MSksVXQoMSksc3QoKSksMiZk''@;'; + put 'put ''KXtjb25zdCBoPWcuJGltcGxpY2l0O1R0KCJuZ1ZhbHVlIixoKSx1dCgxKSxKaSgiICIsaCwiICIpfX1mdW5jdGlvbiBsbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiKSgxLCJhcHAtc29mdC1zZWxlY3QiLDQ5KSxZbigiZm9jdXNpbiIsZnVuY3Rpb24oeSl7cnQoaCk7''@;'; + put 'put ''Y29uc3QgQz1LdCgpLmNvbEluZGV4O3JldHVybiBhKEt0KCkub25SZWNvcmRJbnB1dEZvY3VzKHksQykpfSkoInZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtydChoKTtjb25zdCBDPUt0KCkuY29sO3JldHVybiBhKEt0KCkuY3VycmVudFJlY29yZFtDLmtleV09eSl9KSgib25JbnB1dEV2ZW50''@;'; + put 'put ''IixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoKSxDPXkuY29sLEk9eS5jb2xJbmRleDtyZXR1cm4gYShLdCgpLm9uUmVjb3JkRHJvcGRvd25DaGFuZ2UoQy5rZXksSSkpfSkscm4oMixhbXQsMiwyLCJvcHRpb24iLDUwKSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPUt0KCkuY29sLHY9S3Qo''@;'; + put 'put ''KTtsZXQgeTt1dCgxKSxUdCgidmFsdWUiLHYuY3VycmVudFJlY29yZFtoLmtleV0pKCJpbnB1dElkIixoLmtleSksdXQoMSksVHQoIm5nRm9yT2YiLG51bGw9PXYuY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KHk9di5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoaC5rZXkp''@;'; + put 'put ''KT9udWxsOnkuc291cmNlKX19ZnVuY3Rpb24gc210KGQsZyl7aWYoMSZkJiYoaXQoMCwib3B0aW9uIiw1NCksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O1R0KCJ2YWx1ZSIsaCksdXQoMSksSmkoIiAiLGgsIiAiKX19ZnVuY3Rpb24gdW10KGQsZyl7aWYoMSZkKXtjb25z''@;'; + put 'put ''dCBoPV9pKCk7aXQoMCwic2VsZWN0Iiw1MiksWW4oImZvY3VzaW4iLGZ1bmN0aW9uKHkpe3J0KGgpO2NvbnN0IEM9S3QoKS5jb2xJbmRleDtyZXR1cm4gYShLdCgpLm9uUmVjb3JkSW5wdXRGb2N1cyh5LEMpKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtydChoKTtjb25zdCBDPUt0''@;'; + put 'put ''KCkuY29sO3JldHVybiBhKEt0KCkuY3VycmVudFJlY29yZFtDLmtleV09eSl9KSxybigxLHNtdCwyLDIsIm9wdGlvbiIsNTMpLHN0KCl9aWYoMiZkKXtjb25zdCBoPUt0KCkuY29sLHY9S3QoKTtsZXQgeTtUdCgibmdNb2RlbCIsdi5jdXJyZW50UmVjb3JkW2gua2V5XSksdXQoMSksVHQoIm5n''@;'; + put 'put ''Rm9yT2YiLG51bGw9PXYuY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KHk9di5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoaC5rZXkpKT9udWxsOnkuc291cmNlKX19Y29uc3QgY210PWZ1bmN0aW9uKCl7cmV0dXJuWyJTT0ZUU0VMRUNUIiwiU09GVFNFTEVDVF9IT09LIl19''@;'; + put 'put ''O2Z1bmN0aW9uIGZtdChkLGcpe2lmKDEmZCYmKHJuKDAsbG10LDMsMywiZGl2Iiw0Nykscm4oMSx1bXQsMiwyLCJuZy10ZW1wbGF0ZSIsbnVsbCw0OCxacikpLDImZCl7Y29uc3QgaD1nLmNvbCx2PXlhKDIpLHk9S3QoKTtUdCgibmdJZiIsbnVsbD09eS5jdXJyZW50UmVjb3JkVmFsaWRhdG9y''@;'; + put 'put ''P251bGw6eS5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmhhc0RxUnVsZXMoaC5rZXksTnMoMixjbXQpKSkoIm5nSWZFbHNlIix2KX19bGV0IGhtdD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5zYXNTdG9yZVNlcnZpY2U9aCx0aGlzLmhlbHBlclNlcnZpY2U9dix0aGlzLnJl''@;'; + put 'put ''Y29yZEFjdGlvbj1udWxsLHRoaXMuZmlsdGVyPSExLHRoaXMuc3VibWl0TG9hZGluZz0hMSx0aGlzLmhlYWRlclBrcz1bXSx0aGlzLmNlbGxWYWxpZGF0aW9uPVtdLHRoaXMuY3VycmVudFJlY29yZEluZGV4PS0xLHRoaXMuY3VycmVudFJlY29yZExvYWRpbmdzPVtdLHRoaXMuY3VycmVudFJl''@;'; + put 'put ''Y29yZEVycm9ycz1bXSx0aGlzLm9uUmVjb3JkQ2hhbmdlPW5ldyBhcix0aGlzLm9uUmVjb3JkSW5wdXRGb2N1c2VkPW5ldyBhcix0aGlzLm9uUmVjb3JkRHJvcGRvd25DaGFuZ2VkPW5ldyBhcix0aGlzLm9uUmVjb3JkRWRpdENsb3NlPW5ldyBhcix0aGlzLm9uUmVjb3JkRWRpdENvbmZpcm09''@;'; + put 'put ''bmV3IGFyLHRoaXMub25OZXh0UmVjb3JkPW5ldyBhcix0aGlzLm9uUHJldmlvdXNSZWNvcmQ9bmV3IGFyLHRoaXMuY3VycmVudFJlY29yZEludmFsaWRDb2xzPVtdLHRoaXMuZ2VuZXJhdGVFZGl0UmVjb3JkVXJsTG9hZGluZz0hMSx0aGlzLmdlbmVyYXRlZFJlY29yZFVybD1udWxsLHRoaXMu''@;'; + put 'put ''YWRkUmVjb3JkVXJsPW51bGwsdGhpcy5yZWNvcmROZXdPclBrTW9kaWZpZWQ9ITEsdGhpcy5hZGRSZWNvcmRMb2FkaW5nPSExLHRoaXMub3JpZ2luYWxPcmRlcj0oeSxDKT0+MH1uZ09uSW5pdCgpe312YWxpZGF0ZVJlY29yZENvbChoLHYpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAs''@;'; + put 'put ''ZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKCh5LEMpPT57dmFyIEk7bnVsbD09PShJPXRoaXMuY3VycmVudFJlY29yZFZhbGlkYXRvcil8fHZvaWQgMD09PUl8fEkuZXhlY3V0ZUhvdFZhbGlkYXRvcihoLHYsaj0+e3koail9KX0pfSl9cmVjb3JkRGF0ZUNoYW5nZShoLHYpe3ZhciB5''@;'; + put 'put ''O2xldCBDPW51bGw9PT0oeT10aGlzLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmdldFJ1bGUodiksST1DP0MuZGF0ZUZvcm1hdDoiIjt0aGlzLmN1cnJlbnRSZWNvcmQmJih0aGlzLmN1cnJlbnRSZWNvcmRbdl09SlQoKShoKS5mb3JtYXQoSSkpfWlzUmVj''@;'; + put 'put ''b3JkTW9kYWxJbnZhbGlkKCl7cmV0dXJuIHRoaXMuY3VycmVudFJlY29yZEludmFsaWRDb2xzLmxlbmd0aD4wfWNvbmZpcm1SZWNvcmRFZGl0KCl7dGhpcy5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMubGVuZ3RoPDEmJnRoaXMub25SZWNvcmRDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRSZWNv''@;'; + put 'put ''cmQpfWNsb3NlUmVjb3JkRWRpdCgpe3RoaXMub25SZWNvcmRFZGl0Q2xvc2UuZW1pdCgpfW9uUmVjb3JkRHJvcGRvd25DaGFuZ2UoaCx2KXt0aGlzLm9uUmVjb3JkRHJvcGRvd25DaGFuZ2VkLmVtaXQoe2NvbE5hbWU6aCxjb2w6dn0pfW9uUmVjb3JkSW5wdXRGb2N1cyhoLHYpe3RoaXMub25S''@;'; + put 'put ''ZWNvcmRJbnB1dEZvY3VzZWQuZW1pdCh7ZXZlbnQ6aCxjb2xOYW1lOnZ9KX1yZWNvcmRJbnB1dFBhc3RlKGgpe3NldFRpbWVvdXQoKCk9PntoLnRhcmdldC52YWx1ZT1oLnRhcmdldC52YWx1ZS5yZXBsYWNlKC9ccyskLywiIil9LDApfXJlY29yZElucHV0Q2hhbmdlKGgsdil7dmFyIHk7cmV0''@;'; + put 'put ''dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBDPW51bGw9PT0oeT10aGlzLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmdldFJ1bGUodiksST1oLnRhcmdldC52YWx1ZTt0aGlzLmhlbHBlclNlcnZpY2UuZGVib3VuY2VDYWxs''@;'; + put 'put ''KDMwMCwoKT0+e3RoaXMudmFsaWRhdGVSZWNvcmRDb2woQyxJKS50aGVuKGo9Pntjb25zdCB1ZT10aGlzLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5pbmRleE9mKHYpO2o/dWU+LTEmJnRoaXMuY3VycmVudFJlY29yZEludmFsaWRDb2xzLnNwbGljZSh1ZSwxKTp1ZTwwJiZ0aGlzLmN1cnJl''@;'; + put 'put ''bnRSZWNvcmRJbnZhbGlkQ29scy5wdXNoKHYpfSl9KX0pfW9uTmV4dFJlY29yZENsaWNrKCl7dGhpcy5vbk5leHRSZWNvcmQuZW1pdCgpfW9uUHJldmlvdXNSZWNvcmRDbGljaygpe3RoaXMub25QcmV2aW91c1JlY29yZC5lbWl0KCl9Y29weVRvQ2xpcChoKXtjb25zdCB2PWRvY3VtZW50LnF1''@;'; + put 'put ''ZXJ5U2VsZWN0b3IoIiNyZWNvcmRNb2RhbFJlZiAubW9kYWwtdGl0bGUiKTtpZih2KXtjb25zdCB5PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7eS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHkuc3R5bGUubGVmdD0iMCIseS5zdHlsZS50b3A9IjAiLHkuc3R5bGUub3BhY2l0''@;'; + put 'put ''eT0iMCIseS5zdHlsZS56SW5kZXg9IjUwMDAiLHkudmFsdWU9aCx2LmFwcGVuZENoaWxkKHkpLHkuZm9jdXMoKSx5LnNlbGVjdCgpLGRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iiksdi5yZW1vdmVDaGlsZCh5KSx0aGlzLmdlbmVyYXRlZFJlY29yZFVybD1ofX1nZW5lcmF0ZUVkaXRSZWNv''@;'; + put 'put ''cmRVcmwoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKHRoaXMuZ2VuZXJhdGVkUmVjb3JkVXJsKXRoaXMuY29weVRvQ2xpcCh0aGlzLmdlbmVyYXRlZFJlY29yZFVybCk7ZWxzZXt0aGlzLmdlbmVyYXRlRWRpdFJlY29yZFVybExvYWRpbmc9ITA7Y29uc3Qg''@;'; + put 'put ''aD1bXTt0aGlzLmhlYWRlclBrcy5mb3JFYWNoKHY9PntsZXQgeT0iQyIsQz0iIjtmb3IobGV0IEk9MDtJPHRoaXMuY2VsbFZhbGlkYXRpb24ubGVuZ3RoO0krKyl7Y29uc3Qgaj10aGlzLmNlbGxWYWxpZGF0aW9uW0ldO2lmKGouZGF0YT09PXYpeygibnVtZXJpYyI9PT1qLnR5cGV8fCJkYXRl''@;'; + put 'put ''Ij09PWoudHlwZXx8InRpbWUiPT09ai50eXBlKSYmKHk9Ik4iKTticmVha319Qz0iQyI9PT15P2AnJHt0aGlzLmN1cnJlbnRSZWNvcmRbdl19J2A6dGhpcy5jdXJyZW50UmVjb3JkW3ZdLnRvU3RyaW5nKCksaC5wdXNoKHtHUk9VUF9MT0dJQzoiQU5EIixTVUJHUk9VUF9MT0dJQzoiQU5EIixT''@;'; + put 'put ''VUJHUk9VUF9JRDowLFZBUklBQkxFX05NOnYsT1BFUkFUT1JfTk06Ij0iLFJBV19WQUxVRTpDfSl9KSxoLmxlbmd0aD4wJiZ0aGlzLmxpYmRzJiYoeWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2F2ZVF1ZXJ5KHRoaXMubGliZHMsaCkudGhlbih2PT57dGhpcy5xdWVyeUZpbHRlcj17aWQ6''@;'; + put 'put ''di5yZXN1bHRbMF0uRklMVEVSX1JLLHRhYmxlOnYucmVzdWx0WzBdLkZJTFRFUl9UQUJMRX07Y29uc3QgST1sb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMF0rIiMvZWRpdG9yL2VkaXQtcmVjb3JkLyIrdGhpcy5xdWVyeUZpbHRlci50YWJsZSsiLyIrdGhpcy5xdWVyeUZpbHRlci5pZDt0aGlz''@;'; + put 'put ''LmNvcHlUb0NsaXAoSSksdGhpcy5nZW5lcmF0ZUVkaXRSZWNvcmRVcmxMb2FkaW5nPSExLHRoaXMuZmlsdGVyPSExfSkuY2F0Y2godj0+e3RoaXMuc3VibWl0TG9hZGluZz0hMX0pKX19KX1pc0NvbFBrKGgpe3JldHVybiB0aGlzLmhlYWRlclBrcy5pbmRleE9mKGgpPi0xfXRyYWNrQnlGbiho''@;'; + put 'put ''LHYpe3JldHVybiBofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChrZyksWHQoWGMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLWVkaXQtcmVjb3JkIl1dLGlucHV0czp7Y3VycmVudFJlY29yZDoiY3VycmVudFJl''@;'; + put 'put ''Y29yZCIscmVjb3JkQWN0aW9uOiJyZWNvcmRBY3Rpb24iLGxpYmRzOiJsaWJkcyIscXVlcnlGaWx0ZXI6InF1ZXJ5RmlsdGVyIixmaWx0ZXI6ImZpbHRlciIsc3VibWl0TG9hZGluZzoic3VibWl0TG9hZGluZyIsaGVhZGVyUGtzOiJoZWFkZXJQa3MiLGNlbGxWYWxpZGF0aW9uOiJjZWxsVmFs''@;'; + put 'put ''aWRhdGlvbiIsY3VycmVudFJlY29yZEluZGV4OiJjdXJyZW50UmVjb3JkSW5kZXgiLGN1cnJlbnRSZWNvcmRMb2FkaW5nczoiY3VycmVudFJlY29yZExvYWRpbmdzIixjdXJyZW50UmVjb3JkRXJyb3JzOiJjdXJyZW50UmVjb3JkRXJyb3JzIixjdXJyZW50UmVjb3JkVmFsaWRhdG9yOiJjdXJy''@;'; + put 'put ''ZW50UmVjb3JkVmFsaWRhdG9yIn0sb3V0cHV0czp7b25SZWNvcmRDaGFuZ2U6Im9uUmVjb3JkQ2hhbmdlIixvblJlY29yZElucHV0Rm9jdXNlZDoib25SZWNvcmRJbnB1dEZvY3VzZWQiLG9uUmVjb3JkRHJvcGRvd25DaGFuZ2VkOiJvblJlY29yZERyb3Bkb3duQ2hhbmdlZCIsb25SZWNvcmRF''@;'; + put 'put ''ZGl0Q2xvc2U6Im9uUmVjb3JkRWRpdENsb3NlIixvblJlY29yZEVkaXRDb25maXJtOiJvblJlY29yZEVkaXRDb25maXJtIixvbk5leHRSZWNvcmQ6Im9uTmV4dFJlY29yZCIsb25QcmV2aW91c1JlY29yZDoib25QcmV2aW91c1JlY29yZCJ9LGRlY2xzOjI4LHZhcnM6MTYsY29uc3RzOltbImlk''@;'; + put 'put ''IiwicmVjb3JkTW9kYWxSZWYiLDEsInJlY29yZC1lZGl0LW1vZGFsIiwyLCJwb3NpdGlvbiIsInJlbGF0aXZlIiwzLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbENsb3NhYmxlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzQsIm5nSWYiXSxbMSwibW9kYWwtYm9keSJdLFsic3R5bGUiLCJcbiAgICAg''@;'; + put 'put ''ICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgICAgICIsNCwibmdJZiJdLFsxLCJtb2RhbC1mb290''@;'; + put 'put ''ZXIiXSxbMiwid2lkdGgiLCIzMTBweCIsMywiY2xyQWxlcnRDbG9zYWJsZSIsImNsckFsZXJ0VHlwZSJdLFsxLCJhbGVydC10ZXh0Il0sWzEsInByZXYtbmV4dCJdLFsidHlwZSIsImJ1dHRvbiIsInRhYmluZGV4IiwiMCIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLCJmb2N1c2FibGUiLDMsImRp''@;'; + put 'put ''c2FibGVkIiwiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJzaXplIiwiMjMiLDIsInRyYW5zZm9ybSIsInJvdGF0ZSgyNzBkZWcpIl0sWyJzaGFwZSIsImFuZ2xlIiwic2l6ZSIsIjIzIiwyLCJ0cmFuc2Zvcm0iLCJyb3RhdGUoOTBkZWcpIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJi''@;'; + put 'put ''dG4tb3V0bGluZSIsImZvY3VzYWJsZSIsMywiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwiZm9jdXNhYmxlIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJhdXRvY29tcGxldGUiLCIiXSxbInN0eWxlIiwicG9zaXRpb246IGFic29sdXRlOyByaWdodDog''@;'; + put 'put ''NDBweDsgdG9wOiA0MHB4OyBmb250LXNpemU6IDEycHgiLDQsIm5nSWYiXSxbInN0eWxlIiwicG9zaXRpb246IGFic29sdXRlOyByaWdodDogMjVweDsgdG9wOiA1cHgiLCJjbGFzcyIsImJ0biBidG4tbGluayIsMywiZGlzYWJsZWQiLCJjbGljayIsNCwibmdJZiJdLFsyLCJwb3NpdGlvbiIs''@;'; + put 'put ''ImFic29sdXRlIiwicmlnaHQiLCI0MHB4IiwidG9wIiwiNDBweCIsImZvbnQtc2l6ZSIsIjEycHgiXSxbMSwiYnRuIiwiYnRuLWxpbmsiLDIsInBvc2l0aW9uIiwiYWJzb2x1dGUiLCJyaWdodCIsIjI1cHgiLCJ0b3AiLCI1cHgiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbMiwiZGlzcGxheSIs''@;'; + put 'put ''ImZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQiLCJjZW50ZXIiLCJhbGlnbi1pdGVtcyIsImNlbnRlciIsIndpZHRoIiwiMTAwJSIsInBhZGRpbmciLCIxMHB4IDBweCJdLFsxLCJzcGlubmVyIl0sWzQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFsxLCJjb2x1bW4tZW50cnkiXSxb''@;'; + put 'put ''MSwibmFtZS1pbnB1dC1yb3ciXSxbMiwiZm9udC13ZWlnaHQiLCJib2xkIl0sWyJzaGFwZSIsImtleSIsNCwibmdJZiJdLFsxLCJjZWxsLWRlc2MiXSxbMSwiaW5wdXRzLXdyYXBwZXIiLDIsInBvc2l0aW9uIiwicmVsYXRpdmUiLDMsIm5nU3dpdGNoIl0sWyJzdHlsZSIsImZsZXg6IHVuc2V0''@;'; + put 'put ''OyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC0zMHB4IiwiY2xhc3MiLCJzcGlubmVyIHNwaW5uZXItaW5saW5lIiw0LCJuZ0lmIl0sWyJzdHlsZSIsImZsZXg6IHVuc2V0OyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC0zMHB4Iiwic2hhcGUiLCJlcnJvci1zdGFuZGFyZCIsInN0YXR1''@;'; + put 'put ''cyIsIndhcm5pbmciLDQsIm5nSWYiXSxbNCwibmdTd2l0Y2hDYXNlIl0sWyJjbGFzcyIsImRhdGUtZmllbGQiLDQsIm5nU3dpdGNoQ2FzZSJdLFsxLCJtdC0xMCJdLFsic2hhcGUiLCJrZXkiXSxbMSwic3Bpbm5lciIsInNwaW5uZXItaW5saW5lIiwyLCJmbGV4IiwidW5zZXQiLCJwb3NpdGlv''@;'; + put 'put ''biIsImFic29sdXRlIiwibGVmdCIsIi0zMHB4Il0sWyJzaGFwZSIsImVycm9yLXN0YW5kYXJkIiwic3RhdHVzIiwid2FybmluZyIsMiwiZmxleCIsInVuc2V0IiwicG9zaXRpb24iLCJhYnNvbHV0ZSIsImxlZnQiLCItMzBweCJdLFsiY2xhc3MiLCJudW1lcmljLWlucHV0IiwzLCJpbnZhbGlk''@;'; + put 'put ''LWRhdGEiLDQsIm5nSWYiXSxbMSwibnVtZXJpYy1pbnB1dCJdLFsiY2xySW5wdXQiLCIiLCJ0eXBlIiwidGV4dCIsMSwibm90LWNoYXIiLDMsIm5nTW9kZWwiLCJmb2N1c2luIiwicGFzdGUiLCJpbnB1dCIsIm5nTW9kZWxDaGFuZ2UiXSxbNCwibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxh''@;'; + put 'put ''dGVPdXRsZXRDb250ZXh0Il0sWyJjbHJUZXh0YXJlYSIsIiIsMywicm93cyIsIm5nTW9kZWwiLCJtYXhMZW5ndGgiLCJmb2N1c2luIiwicGFzdGUiLCJpbnB1dCIsIm5nTW9kZWxDaGFuZ2UiXSxbImNoYXJUZXh0YXJlYSIsIiJdLFsxLCJkYXRlLWZpZWxkIl0sWyJjbHJUZXh0YXJlYSIsIiIs''@;'; + put 'put ''Mywicm93cyIsIm5nTW9kZWwiLCJwYXN0ZSIsImlucHV0IiwibmdNb2RlbENoYW5nZSJdLFsiY2xyVGV4dGFyZWEiLCIiLCJyb3dzIiwiMSIsImNvbHMiLCJhdXRvIiwxLCJub3QtY2hhciIsMywibmdNb2RlbCIsInBhc3RlIiwiaW5wdXQiLCJuZ01vZGVsQ2hhbmdlIl0sWzEsImRhdGUtcGlj''@;'; + put 'put ''a2VyIl0sWyJ0eXBlIiwiZGF0ZSIsIm5hbWUiLCJkYXRlIiwiY2xyRGF0ZSIsIiIsMiwiZGlzcGxheSIsIm5vbmUiLDMsImNsckRhdGVDaGFuZ2UiXSxbNCwibmdJZiIsIm5nSWZFbHNlIl0sWyJvdGhlcl90aGFuX3NvZnRfc2VsZWN0IiwiIl0sWzMsInZhbHVlIiwiaW5wdXRJZCIsImZvY3Vz''@;'; + put 'put ''aW4iLCJ2YWx1ZUNoYW5nZSIsIm9uSW5wdXRFdmVudCJdLFszLCJuZ1ZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywibmdWYWx1ZSJdLFsiY2xyU2VsZWN0IiwiIiwzLCJuZ01vZGVsIiwiZm9jdXNpbiIsIm5nTW9kZWxDaGFuZ2UiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JP''@;'; + put 'put ''ZiJdLFszLCJ2YWx1ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKGl0KDAsImNsci1tb2RhbCIsMCkoMSwiaDMiLDEpLFV0KDIpLHJuKDMsSGd0LDMsMiwibmctY29udGFpbmVyIiwyKSxzdCgpLGl0KDQsImRpdiIsMykscm4oNSxOZ3QsMywwLCJkaXYiLDQpLHJuKDYsb210LDMs''@;'; + put 'put ''NSwibmctY29udGFpbmVyIiwyKSxzdCgpLGl0KDcsImRpdiIsNSkoOCwiY2xyLWFsZXJ0Iiw2KSg5LCJjbHItYWxlcnQtaXRlbSIpKDEwLCJzcGFuIiw3KSxVdCgxMSwiIERhdGEgVmFsaWRhdGlvbiBFcnJvcnMgLSBQbGVhc2UgUmV2aWV3ICIpLHN0KCkoKSgpLGl0KDEyLCJkaXYiLDgpKDEz''@;'; + put 'put ''LCJidXR0b24iLDkpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vblByZXZpb3VzUmVjb3JkQ2xpY2soKX0pLENyKDE0LCJjbHItaWNvbiIsMTApLHN0KCksaXQoMTUsInAiKSxVdCgxNiwiIEN1cnJlbnQgcm93OiAiKSxpdCgxNywic3Ryb25nIiksVXQoMTgpLHN0KCkoKSxpdCgx''@;'; + put 'put ''OSwiYnV0dG9uIiw5KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYub25OZXh0UmVjb3JkQ2xpY2soKX0pLENyKDIwLCJjbHItaWNvbiIsMTEpLHN0KCkoKSxpdCgyMSwiZGl2IikoMjIsImJ1dHRvbiIsMTIpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5jdXJyZW50UmVj''@;'; + put 'put ''b3JkLm5vTGlua09wdGlvbj0hMSx2LmNsb3NlUmVjb3JkRWRpdCgpfSksVXQoMjMsIiBDYW5jZWwgIiksc3QoKSxpdCgyNCwiYnV0dG9uIiwxMyksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmNvbmZpcm1SZWNvcmRFZGl0KCl9KSxVdCgyNSwiIENvbmZpcm0gIiksc3QoKSgpKCks''@;'; + put 'put ''cm4oMjYsZm10LDMsMywibmctdGVtcGxhdGUiLG51bGwsMTQsWnIpLHN0KCkpLDImaCYmKFR0KCJjbHJNb2RhbE9wZW4iLCEwKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLHV0KDIpLGtmKCIgIiwiQUREIj09PXYucmVjb3JkQWN0aW9uPyJBZGQiOiJFZGl0IiwiIHJlY29yZCBpbiAiLChudWxs''@;'; + put 'put ''PT12LmxpYmRzP251bGw6di5saWJkcy5zcGxpdCgiLiIpKVswXSwiLiIsKG51bGw9PXYubGliZHM/bnVsbDp2LmxpYmRzLnNwbGl0KCIuIikpWzFdLCIgIiksdXQoMSksVHQoIm5nSWYiLCJFRElUIj09PXYucmVjb3JkQWN0aW9uKSx1dCgyKSxUdCgibmdJZiIsdi5hZGRSZWNvcmRMb2FkaW5n''@;'; + put 'put ''KSx1dCgxKSxUdCgibmdJZiIsIXYuYWRkUmVjb3JkTG9hZGluZyksdXQoMiksUjMoInZpc2liaWxpdHkiLHYuY3VycmVudFJlY29yZEludmFsaWRDb2xzLmxlbmd0aD4wPyJ2aXNpYmxlIjoiaGlkZGVuIiksVHQoImNsckFsZXJ0Q2xvc2FibGUiLCExKSgiY2xyQWxlcnRUeXBlIiwiZGFuZ2Vy''@;'; + put 'put ''IiksdXQoNSksVHQoImRpc2FibGVkIix2LmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5sZW5ndGg+MCksdXQoNSksSmkoIiAiLHYuY3VycmVudFJlY29yZEluZGV4KzEsIiAiKSx1dCgxKSxUdCgiZGlzYWJsZWQiLHYuY3VycmVudFJlY29yZEludmFsaWRDb2xzLmxlbmd0aD4wKSx1dCg1KSxU''@;'; + put 'put ''dCgiZGlzYWJsZWQiLHYuY3VycmVudFJlY29yZEludmFsaWRDb2xzLmxlbmd0aD4wKSl9LGRlcGVuZGVuY2llczpbWnMsVm8sUWQsVWQsaXAscTMsZWQsbTEsT2YsRXMseHMsY1osQ3llLGZaLFFmZSx3bCxabyxmNCxoNCxSZSxRaixUZmUscDksT0FlLFhqLGdPZSxXQWUsQ0xlLE5UXSxzdHls''@;'; + put 'put ''ZXM6WyIucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29s''@;'; + put 'put ''dW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYW1lLWlucHV0LXJvd1tfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTttYXgtd2lkdGg6MjYwcHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVd''@;'; + put 'put ''ICAgLm5hbWUtaW5wdXQtcm93W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jZWxsLWRlc2NbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1yaWdodDozMHB4O21hcmdpbi10b3A6MTBweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250''@;'; + put 'put ''ZW50LSVDT01QJV0gICAuaW5wdXRzLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5p''@;'; + put 'put ''bnB1dHMtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAgPio6bm90KC5kYXRlLWZpZWxkKTpub3QoY2xyLXNlbGVjdC1jb250YWluZXIpe2ZsZXg6MX0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICBw''@;'; + put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjB9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLXRleHRhcmVhLXdyYXBwZXJ7bWFyZ2luLXRvcDowIWltcG9ydGFudH0ucmVjb3JkLWVk''@;'; + put 'put ''aXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItZm9ybS1jb250cm9se21hcmdpbi10b3A6MCFpbXBvcnRhbnR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25n''@;'; + put 'put ''Y29udGVudC0lQ09NUCVdICAgICBhcHAtc29mdC1zZWxlY3R7ZGlzcGxheTpibG9jazt3aWR0aDoyMjRweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjOTk5O2NvbG9yOiMwMDA7cGFkZGluZzpjYWxjKC4yNXJlbSArIDJweCkgLjVyZW07Ym9yZGVyLXJhZGl1czouMTI1cmVt''@;'; + put 'put ''O2ZvbnQtc2l6ZTouNTQxNjY3cmVtO21hcmdpbi1yaWdodDo2cHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgICBhcHAtc29mdC1zZWxlY3QgaW5wdXR7d2lkdGg6MTAwJTtib3JkZXI6MDtiYWNrZ3Jv''@;'; + put 'put ''dW5kLWNvbG9yOiNmZmZ9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgICBhcHAtc29mdC1zZWxlY3QgaW5wdXQ6Zm9jdXN7YmFja2dyb3VuZDpub25lO2JvcmRlcjowIWltcG9ydGFudH0ucmVjb3JkLWVk''@;'; + put 'put ''aXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICAgIGFwcC1zb2Z0LXNlbGVjdCBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgLnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4t''@;'; + put 'put ''ZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgICBhcHAtc29mdC1zZWxlY3QgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjB9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVdOmZpcnN0LWNoaWxkICAgcFtfbmdjb250ZW50LSVDT01QJV06Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuZGF0ZS1maWVsZFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRp''@;'; + put 'put ''dmU7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRlLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRleHRhcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoyMzBweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVu''@;'; + put 'put ''dC0lQ09NUCVdICAgLmRhdGUtZmllbGRbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGUtcGlja2VyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDo0cHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRlLWZpZWxkW19u''@;'; + put 'put ''Z2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRlLXBpY2tlcltfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItaW5wdXQtZ3JvdXB7Ym9yZGVyOjAhaW1wb3J0YW50fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAubW9kYWwtYm9keVtfbmdjb250ZW50LSVDT01QJV17cGFk''@;'; + put 'put ''ZGluZy1ib3R0b206MTBweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItc2VsZWN0LWNvbnRhaW5lcntib3JkZXI6MXB4IHNvbGlkICM5OTk7Y29sb3I6IzAwMDtib3JkZXItcmFkaXVzOi4xMjVyZW07bWFyZ2luLXJpZ2h0OjVweH0ucmVjb3JkLWVkaXQt''@;'; + put 'put ''bW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItc2VsZWN0LWNvbnRhaW5lciAuY2xyLXNlbGVjdC13cmFwcGVye21heC1oZWlnaHQ6dW5zZXR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLXNlbGVjdC1jb250YWluZXIgLmNsci1zZWxlY3Qtd3Jh''@;'; + put 'put ''cHBlcjphZnRlcnt0b3A6MTVweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItc2VsZWN0LWNvbnRhaW5lciBzZWxlY3R7aGVpZ2h0OmF1dG87cGFkZGluZzoxMHB4IDIwcHggMTBweCAxMHB4O2JvcmRlcjowIWltcG9ydGFudH0ucmVjb3JkLWVkaXQtbW9k''@;'; + put 'put ''YWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItc2VsZWN0LWNvbnRhaW5lciBzZWxlY3Q6Zm9jdXN7YmFja2dyb3VuZDowIDAhaW1wb3J0YW50fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1zZWxlY3QtY29udGFpbmVyIHNlbGVjdDpob3ZlcntiYWNr''@;'; + put 'put ''Z3JvdW5kOnRyYW5zcGFyZW50fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1pbnB1dC1jb250YWluZXJ7d2lkdGg6MjI0cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzk5OTtjb2xvcjojMDAwO3BhZGRpbmc6Y2FsYyguMjVyZW0gKyAy''@;'; + put 'put ''cHgpIC41cmVtO2JvcmRlci1yYWRpdXM6LjEyNXJlbTtmb250LXNpemU6LjU0MTY2N3JlbTttYXJnaW4tcmlnaHQ6NnB4fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1pbnB1dC1jb250YWluZXIgaW5wdXR7d2lkdGg6MTAwJTtib3JkZXI6MH0ucmVjb3Jk''@;'; + put 'put ''LWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItaW5wdXQtY29udGFpbmVyIGlucHV0OmZvY3Vze2JhY2tncm91bmQ6bm9uZTtib3JkZXI6MCFpbXBvcnRhbnR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLWlucHV0LWNvbnRhaW5lciBp''@;'; + put 'put ''bnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgLnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLWlucHV0LWNvbnRhaW5lciBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0ucmVj''@;'; + put 'put ''b3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItaW5wdXQtY29udGFpbmVyLmludmFsaWQtZGF0YXtib3JkZXItY29sb3I6cmVkfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tb2RhbC1kaWFsb2d7d2lkdGg6ODB2d30ucmVjb3JkLWVk''@;'; + put 'put ''aXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVye3dpZHRoOjEwMCV9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lciB0ZXh0YXJlYXt3aWR0aDoxMDAlO3Jlc2l6ZTpub25lO2Jv''@;'; + put 'put ''cmRlci1jb2xvcjojOTk5fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXIgdGV4dGFyZWEuaW52YWxpZC1kYXRhe2JvcmRlci1jb2xvcjpyZWQ7b3V0bGluZTowfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01Q''@;'; + put 'put ''JV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXIgdGV4dGFyZWEubm90LWNoYXJ7Zm9udC1mYW1pbHk6THVjaWRhIENvbnNvbGUsTW9uYWNvLG1vbm9zcGFjZX0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAubW9kYWwtaGVhZGVye3BhZGRpbmc6MCAwIDFyZW19''@;'; + put 'put ''LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLm1vZGFsLWZvb3RlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2hlaWdodDo2NXB4fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01Q''@;'; + put 'put ''JV0gICAgIC5tb2RhbC1mb290ZXIgLmFsZXJ0e21hcmdpbjowfS5wcmV2LW5leHRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWxlZnQ6LTE1MHB4fS5wcmV2LW5leHRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVD''@;'; + put 'put ''T01QJV17bWFyZ2luOjB9LnByZXYtbmV4dFtfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde21hcmdpbjowIDEwcHh9LmZvY3VzYWJsZVtfbmdjb250ZW50LSVDT01QJV06Zm9jdXN7Ym94LXNoYWRvdzowIDAgM3B4ICM1YWEyMjB9Il19KSxkfSkoKTtmdW5j''@;'; + put 'put ''dGlvbiBkbXQoZCxnKXtpZigxJmQmJihpdCgwLCJwIiwzKSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksSmkoIiAiLGgsIiAiKX19bGV0IHBtdD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5zdGF0ZXNMaXN0PVtdLHRoaXMucHJvY2Vzc2VkU3Rh''@;'; + put 'put ''dGVzPVtdLHRoaXMuc3RhdGVySW5Qcm9ncmVzcz0hMSx0aGlzLm1pbkRlbGF5PTFlM31uZ09uSW5pdCgpe31hcHBlbmRTdGF0ZShoKXtpZigie2ZpbmlzaH0iPT09aClyZXR1cm4gdGhpcy5zdGF0ZXJJblByb2dyZXNzPSExLHZvaWQgY2xlYXJJbnRlcnZhbCh0aGlzLnN0YXRlSW50ZXJ2YWwp''@;'; + put 'put ''O3RoaXMuc3RhdGVzTGlzdC5wdXNoKGgpLHRoaXMucHJvY2Vzc2VkU3RhdGVzLnB1c2goaCl9cmVwbGFjZUxhc3RTdGF0ZShoKXt0aGlzLnN0YXRlc0xpc3QubGVuZ3RoPjA/KHRoaXMuc3RhdGVzTGlzdC5wb3AoKSx0aGlzLnN0YXRlc0xpc3QucHVzaChoKSk6dGhpcy5wcm9jZXNzZWRTdGF0''@;'; + put 'put ''ZXNbdGhpcy5wcm9jZXNzZWRTdGF0ZXMubGVuZ3RoLTFdPWh9Y2xlYXJTdGF0ZXMoKXt0aGlzLnByb2Nlc3NlZFN0YXRlcz1bXX1zdGFydFN0YXRlcigpe3RoaXMuc3RhdGVySW5Qcm9ncmVzcz0hMCx0aGlzLnN0YXRlc0xpc3QubGVuZ3RoPjAmJnRoaXMucHJvY2Vzc2VkU3RhdGVzLnB1c2go''@;'; + put 'put ''dGhpcy5zdGF0ZXNMaXN0LnNoaWZ0KCl8fCIiKSx0aGlzLnN0YXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLnN0YXRlc0xpc3QubGVuZ3RoPjAmJnRoaXMucHJvY2Vzc2VkU3RhdGVzLnB1c2godGhpcy5zdGF0ZXNMaXN0LnNoaWZ0KCl8fCIiKX0sdGhpcy5taW5EZWxheSl9fXJl''@;'; + put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtdXBsb2FkLXN0YXRlciJdXSxkZWNsczo1LHZhcnM6MSxjb25zdHM6W1siY2xhc3MiLCJtLTAiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsy''@;'; + put 'put ''LCJ0ZXh0LWFsaWduIiwiY2VudGVyIl0sWzEsInNwaW5uZXIiLCJzcGlubmVyLXNtIiwyLCJ2ZXJ0aWNhbC1hbGlnbiIsIm1pZGRsZSJdLFsxLCJtLTAiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJkaXYiKSxybigxLGRtdCwyLDEsInAiLDApLHN0KCksaXQoMiwiZGl2''@;'; + put 'put ''IiwxKSgzLCJzcGFuIiwyKSxVdCg0LCJMb2FkaW5nLi4uIiksc3QoKSgpKSwyJmgmJih1dCgxKSxUdCgibmdGb3JPZiIsdi5wcm9jZXNzZWRTdGF0ZXMpKX0sZGVwZW5kZW5jaWVzOltac10sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmJsb2NrfXBbX25nY29udGVudC0lQ09N''@;'; + put 'put ''UCVde21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyfSJdfSksZH0pKCksZ210PSgoKT0+e2NsYXNzIGR7dHJhbnNmb3JtKGgpe3JldHVybiBoLnJlcGxhY2UoL1x8L2csIiB8ICIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwaXBl''@;'; + put 'put ''PVVzKHtuYW1lOiJwa1NwYWNlU2VwYXJhdGUiLHR5cGU6ZCxwdXJlOiEwfSksZH0pKCksTUxlPSgoKT0+e2NsYXNzIGR7dHJhbnNmb3JtKGgsdil7cmV0dXJuIHRoaXMuYWRkU2VwYXJhdG9ycyhoLnRvU3RyaW5nKCksdil9YWRkU2VwYXJhdG9ycyhoLHY9IiAiKXtjb25zdCB5PShoKz0iIiku''@;'; + put 'put ''c3BsaXQoIi4iKTtsZXQgQz15WzBdO2NvbnN0IEk9eS5sZW5ndGg+MT8iLiIreVsxXToiIixqPS8oXGQrKShcZHszfSkvO2Zvcig7ai50ZXN0KEMpOylDPUMucmVwbGFjZShqLCIkMSIrdisiJDIiKTtyZXR1cm4gQytJfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5l''@;'; + put 'put ''dyhofHxkKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJ0aG91c2FuZFNlcGFyYXRvciIsdHlwZTpkLHB1cmU6ITB9KSxkfSkoKTtjb25zdCBtbXQ9WyJodCJdLHZtdD1bInVwbG9hZFN0YXRlciJdLEFtdD1bInF1ZXJ5RmlsdGVyIl0seW10PVsiaG90SW5zdGFuY2UiXSx3bXQ9WyJmaWxlVXBs''@;'; + put 'put ''b2FkSW5wdXQiXTtmdW5jdGlvbiBibXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiLDU3KSgxLCJzcGFuIiw1OCkoMiwibGFiZWwiLDU5KSxVdCgzLCIgQnJvd3NlICIpLHN0KCkoKSxpdCg0LCJpbnB1dCIsNjAsNjEpLFluKCJjaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVy''@;'; + put 'put ''biBydChoKSxhKEt0KCkuZ2V0RmlsZURlc2MoeSkpfSksc3QoKSgpfWlmKDImZCl7Y29uc3QgaD1LdCgpO3V0KDQpLFR0KCJ1cGxvYWRlciIsaC51cGxvYWRlcil9fWZ1bmN0aW9uIF9tdChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImRpdiIsNjIpKDEsImJ1dHRvbiIsNjMpLFlu''@;'; + put 'put ''KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLmdldEZpbGUoKSl9KSxVdCgyLCIgVXBsb2FkICIpLHN0KCkoKX0yJmQmJih1dCgxKSxUdCgiZGlzYWJsZWQiLCEwKSl9ZnVuY3Rpb24gQ210KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYnV0dG9uIiw2NCks''@;'; + put 'put ''WW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkuc2hvd1VwbG9hZE1vZGFsPSExKX0pLFV0KDEsIiBDbG9zZSAiKSxzdCgpfWlmKDImZCl7Y29uc3QgaD1LdCgpO1R0KCJkaXNhYmxlZCIsaC5leGNlbEZpbGVQYXJzaW5nfHxoLnVwbG9hZExvYWRpbmcpfX1mdW5jdGlv''@;'; + put 'put ''biBrbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJidXR0b24iLDY1KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5zaG93VXBsb2FkTW9kYWw9ITEpfSksVXQoMSwiIFNraXAgIiksc3QoKX19ZnVuY3Rpb24gU210KGQsZyl7MSZkJiYoaXQoMCwi''@;'; + put 'put ''ZGl2Iiw2NiksQ3IoMSwiYXBwLXVwbG9hZC1zdGF0ZXIiLG51bGwsNjcpLHN0KCkpfWZ1bmN0aW9uIE1tdChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImFwcC1lZGl0LXJlY29yZCIsNjgpLFluKCJvblJlY29yZENoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgp''@;'; + put 'put ''LmNvbmZpcm1SZWNvcmRFZGl0KCkpfSkoIm9uUmVjb3JkSW5wdXRGb2N1c2VkIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLm9uUmVjb3JkSW5wdXRGb2N1cyh5KSl9KSgib25SZWNvcmRFZGl0Q2xvc2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5jbG9zZVJlY29y''@;'; + put 'put ''ZEVkaXQoKSl9KSgib25OZXh0UmVjb3JkIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkub25OZXh0UmVjb3JkKCkpfSkoIm9uUHJldmlvdXNSZWNvcmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS5vblByZXZpb3VzUmVjb3JkKCkpfSksc3QoKX1pZigyJmQpe2NvbnN0''@;'; + put 'put ''IGg9S3QoKTtUdCgiY3VycmVudFJlY29yZCIsaC5jdXJyZW50RWRpdFJlY29yZCkoInJlY29yZEFjdGlvbiIsaC5yZWNvcmRBY3Rpb24pKCJsaWJkcyIsaC5saWJkcykoInF1ZXJ5RmlsdGVyIixoLnF1ZXJ5RmlsdGVyKSgiZmlsdGVyIixoLmZpbHRlcikoInN1Ym1pdExvYWRpbmciLGguc3Vi''@;'; + put 'put ''bWl0TG9hZGluZykoImhlYWRlclBrcyIsaC5oZWFkZXJQa3MpKCJjZWxsVmFsaWRhdGlvbiIsaC5jZWxsVmFsaWRhdGlvbikoImN1cnJlbnRSZWNvcmRJbmRleCIsaC5jdXJyZW50RWRpdFJlY29yZEluZGV4KSgiY3VycmVudFJlY29yZExvYWRpbmdzIixoLmN1cnJlbnRFZGl0UmVjb3JkTG9h''@;'; + put 'put ''ZGluZ3MpKCJjdXJyZW50UmVjb3JkRXJyb3JzIixoLmN1cnJlbnRFZGl0UmVjb3JkRXJyb3JzKSgiY3VycmVudFJlY29yZFZhbGlkYXRvciIsaC5jdXJyZW50RWRpdFJlY29yZFZhbGlkYXRvcil9fWZ1bmN0aW9uIEVtdChkLGcpezEmZCYmKGl0KDAsImRpdiIsNjkpLENyKDEsInByb2dyZXNz''@;'; + put 'put ''Iiksc3QoKSl9ZnVuY3Rpb24geG10KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsNzMpfWZ1bmN0aW9uIFRtdChkLGcpe2lmKDEmZCYmKEYwKDApLFV0KDEpLG5uKDIsInRob3VzYW5kU2VwYXJhdG9yIiksSDAoKSksMiZkKXtjb25zdCBoPUt0KDMpO3V0KDEpLEZoKCIgKCIsUG4oMiwyLGgu''@;'; + put 'put ''ZGF0YVNvdXJjZS5sZW5ndGgsIiwiKSwiICIsMT09PWguZGF0YVNvdXJjZS5sZW5ndGg/InJvdyI6InJvd3MiLCIpICIpfX1mdW5jdGlvbiBJbXQoZCxnKXsxJmQmJihGMCgwKSxVdCgxLCIgKDAgcm93cykgIiksSDAoKSl9ZnVuY3Rpb24gRG10KGQsZyl7aWYoMSZkJiYoRjAoMCkscm4oMSxU''@;'; + put 'put ''bXQsMyw1LCJuZy1jb250YWluZXIiLDQ1KSxybigyLEltdCwyLDAsIm5nLWNvbnRhaW5lciIsNDUpLEgwKCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCgxKSxUdCgibmdJZiIsIWguemVyb0ZpbHRlclJvd3MpLHV0KDEpLFR0KCJuZ0lmIixoLnplcm9GaWx0ZXJSb3dzKX19ZnVuY3Rpb24gTG10''@;'; + put 'put ''KGQsZyl7aWYoMSZkJiYoaXQoMCwiaDQiLDcwKSxybigxLHhtdCwxLDAsImNsci1pY29uIiw3MSksVXQoMiksaXQoMywiYSIsNzIpLFV0KDQpLHN0KCkscm4oNSxEbXQsMywyLCJuZy1jb250YWluZXIiLDQ1KSxzdCgpKSwyJmQpe2NvbnN0IGg9Zy5uZ1Zhcix2PUt0KCk7dXQoMSksVHQoIm5n''@;'; + put 'put ''SWYiLGgudGFibGVOYW1lLmluY2x1ZGVzKCItRkMiKSksdXQoMSksSmkoIiAiLGgubGliTmFtZSwiLiIpLHV0KDEpLFR0KCJyb3V0ZXJMaW5rIiwiL3ZpZXcvZGF0YS8iK3YubGliZHMpLHV0KDEpLEdpKGgudGFibGVOYW1lLnJlcGxhY2UoIi1GQyIsIiIpKSx1dCgxKSxUdCgibmdJZiIsdi5k''@;'; + put 'put ''YXRhU291cmNlKX19ZnVuY3Rpb24gT210KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYnV0dG9uIiw4MCksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDMpLm9uU2hvd1VwbG9hZE1vZGFsKCkpfSksQ3IoMSwiY2xyLWljb24iLDgxKSxpdCgyLCJzcGFu''@;'; + put 'put ''IiksVXQoMywiVXBsb2FkIiksc3QoKSgpfX1mdW5jdGlvbiBSbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtGMCgwKSxpdCgxLCJidXR0b24iLDc1KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoMikub3BlblFiKCkpfSksQ3IoMiwiY2xyLWljb24iLDc2KSxp''@;'; + put 'put ''dCgzLCJzcGFuIiksVXQoNCwiRmlsdGVyIiksc3QoKSgpLGl0KDUsImJ1dHRvbiIsNzcpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgyKS5lZGl0VGFibGUoKSl9KSxDcig2LCJjbHItaWNvbiIsNzgpLGl0KDcsInNwYW4iKSxVdCg4LCJFZGl0Iiksc3QoKSgpLHJu''@;'; + put 'put ''KDksT210LDQsMCwiYnV0dG9uIiw3OSksSDAoKX1pZigyJmQpe2NvbnN0IGg9S3QoMik7dXQoOSksVHQoIm5nSWYiLCFoLmNvbHVtbkxldmVsU2VjdXJpdHlGbGFnKX19ZnVuY3Rpb24gQm10KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYnV0dG9uIiw4NiksWW4oImNsaWNrIixm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDMpLmFkZFJvdygpKX0pLENyKDEsImNsci1pY29uIiw4NyksVXQoMiwiQWRkIFJvdyAiKSxzdCgpfTImZCYmVHQoImNsckxvYWRpbmciLEt0KDMpLmFkZGluZ05ld1Jvdyl9ZnVuY3Rpb24gUG10KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7''@;'; + put 'put ''RjAoMCksaXQoMSwiYnV0dG9uIiw4MiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDIpLmNhbmNlbEVkaXQoKSl9KSxDcigyLCJjbHItaWNvbiIsODMpLGl0KDMsInNwYW4iKSxVdCg0LCJDYW5jZWwiKSxzdCgpKCkscm4oNSxCbXQsMywxLCJidXR0b24iLDg0KSxp''@;'; + put 'put ''dCg2LCJidXR0b24iLDM4KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoMikuY2hlY2tTYXZlKCkpfSksQ3IoNywiY2xyLWljb24iLDg1KSxVdCg4LCJTdWJtaXQgIiksc3QoKSxIMCgpfWlmKDImZCl7Y29uc3QgaD1LdCgyKTt1dCg1KSxUdCgibmdJZiIsIWgucmVz''@;'; + put 'put ''dHJpY3Rpb25zLnJlc3RyaWN0QWRkUm93KX19ZnVuY3Rpb24gRm10KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYnV0dG9uIiw5MSksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDMpLm1hbnVhbEZpbGVFZGl0TW9kYWw9ITApfSksQ3IoMSwiY2xyLWlj''@;'; + put 'put ''b24iLDc4KSxpdCgyLCJzcGFuIiksVXQoMywiRWRpdCIpLHN0KCkoKX19ZnVuY3Rpb24gSG10KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7RjAoMCksaXQoMSwiYnV0dG9uIiw4OCksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDIpLmRpc2NhcmRTb3VyY2VGaWxl''@;'; + put 'put ''PSEwKX0pLENyKDIsImNsci1pY29uIiw4MyksaXQoMywic3BhbiIpLFV0KDQsIkRpc2NhcmQgZmlsZSIpLHN0KCkoKSxybig1LEZtdCw0LDAsImJ1dHRvbiIsODkpLGl0KDYsImJ1dHRvbiIsOTApLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgyKS5nZXRGaWxlKCkp''@;'; + put 'put ''fSksQ3IoNywiY2xyLWljb24iLDg1KSxVdCg4LCIgU3VibWl0ICIpLHN0KCksSDAoKX1pZigyJmQpe2NvbnN0IGg9S3QoMik7dXQoNSksVHQoIm5nSWYiLGguaG90VGFibGUucmVhZE9ubHkpLHV0KDEpLFR0KCJjbHJMb2FkaW5nIixoLnVwbG9hZExvYWRpbmcpfX1mdW5jdGlvbiBObXQoZCxn''@;'; + put 'put ''KXtpZigxJmQmJihpdCgwLCJkaXYiLDc0KSxybigxLFJtdCwxMCwxLCJuZy1jb250YWluZXIiLDQ1KSxybigyLFBtdCw5LDEsIm5nLWNvbnRhaW5lciIsNDUpLHJuKDMsSG10LDksMiwibmctY29udGFpbmVyIiw0NSksc3QoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMSksVHQoIm5nSWYiLGgu''@;'; + put 'put ''aG90VGFibGUucmVhZE9ubHkmJiFoLnVwbG9hZFByZXZpZXcpLHV0KDEpLFR0KCJuZ0lmIiwhaC5ob3RUYWJsZS5yZWFkT25seSYmIWgudXBsb2FkUHJldmlldyksdXQoMSksVHQoIm5nSWYiLGgudXBsb2FkUHJldmlldyl9fWZ1bmN0aW9uIFZtdChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIs''@;'; + put 'put ''OTIpKDEsInNwYW4iKSxVdCgyLCJGSUxURVIgOiAiKSxpdCgzLCJiIiksVXQoNCksc3QoKSgpKCkpLDImZCl7Y29uc3QgaD1LdCgpO3V0KDQpLEdpKGgucXVlcnlUZXh0KX19ZnVuY3Rpb24gam10KGQsZyl7MSZkJiYoRjAoMCksaXQoMSwic3BhbiIsOTUpLFV0KDIsIiBMb2FkaW5nLi4uICIp''@;'; + put 'put ''LHN0KCksaXQoMywiZGl2IikoNCwiaDMiKSxVdCg1LCJMb2FkaW5nIHRhYmxlIiksc3QoKSgpLEgwKCkpfWZ1bmN0aW9uIFptdChkLGcpezEmZCYmKEYwKDApLGl0KDEsInNwYW4iKSxDcigyLCJjbHItaWNvbiIsOTYpLHN0KCksaXQoMywiZGl2IikoNCwiaDMiKSxVdCg1LCJMb2FkaW5nIHRh''@;'; + put 'put ''YmxlIGVycm9yIiksc3QoKSgpLEgwKCkpfWZ1bmN0aW9uIHptdChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsOTMpKDEsImRpdiIsOTQpLHJuKDIsam10LDYsMCwibmctY29udGFpbmVyIiw0NSkscm4oMyxabXQsNiwwLCJuZy1jb250YWluZXIiLDQ1KSxzdCgpKCkpLDImZCl7Y29uc3QgaD1L''@;'; + put 'put ''dCgpO3V0KDIpLFR0KCJuZ0lmIiwhaC5nZXRkYXRhRXJyb3IpLHV0KDEpLFR0KCJuZ0lmIixoLmdldGRhdGFFcnJvcil9fWZ1bmN0aW9uIEdtdChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImJ1dHRvbiIsOTcpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShL''@;'; + put 'put ''dCgpLmFkZFJlY29yZEJ1dHRvbkNsaWNrKCkpfSksQ3IoMSwiY2xyLWljb24iLDg3KSxVdCgyLCIgQWRkIFJlY29yZCAiKSxzdCgpfX1mdW5jdGlvbiBXbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiLDEwOCkoMSwiZGl2IiwxMDkpKDIsImxhYmVsIiwxMTApLFV0KDMs''@;'; + put 'put ''Ik1lc3NhZ2UiKSxzdCgpLGl0KDQsInRleHRhcmVhIiwxMTEpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgyKS5tZXNzYWdlPXkpfSksc3QoKSgpKCl9aWYoMiZkKXtjb25zdCBoPUt0KDIpO3V0KDQpLFR0KCJuZ01vZGVsIixoLm1lc3NhZ2UpKCJk''@;'; + put 'put ''aXNhYmxlZCIsIWgudmFsaWRhdGlvbkRvbmUpKCJ2YWx1ZSIsaC52YWxpZGF0aW9uRG9uZT8iIjoiUGxlYXNlIHdhaXQgd2hpbGUgd2UgdmFsaWRhdGUgIitoLmNvbHMubGVuZ3RoKmgubW9kaWZlZFJvd3NJbmRleGVzLmxlbmd0aCsiIGNlbGxzLiIpfX1mdW5jdGlvbiBZbXQoZCxnKXtpZigx''@;'; + put 'put ''JmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiLDk4KSgxLCJkaXYiLDk5KSgyLCJkaXYiLDEwMCkoMywiZGl2IiwxMDEpKDQsImJ1dHRvbiIsMTAyKSxDcig1LCJjbHItaWNvbiIsMTAzKSxzdCgpLGl0KDYsImgzIiwyKSxVdCg3KSxzdCgpKCksaXQoOCwiZGl2IiwzKSxybig5LFdtdCw1LDMs''@;'; + put 'put ''ImRpdiIsMTA0KSxzdCgpLGl0KDEwLCJkaXYiLDEwNSkoMTEsImJ1dHRvbiIsMTA2KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT1LdCgpO3JldHVybiBhKHkuc2F2ZVRhYmxlKHkuaG90VGFibGUuZGF0YSkpfSksVXQoMTIsIiBTdWJtaXQgIiksc3QoKSxpdCgxMywiYnV0''@;'; + put 'put ''dG9uIiwxMDcpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KCk7cmV0dXJuIHkuY2FuY2VsU3VibWl0KCkseS5zdWJtaXQ9ITEsYSh5LnZhbGlkYXRpb25Eb25lPTApfSksVXQoMTQsIiBDYW5jZWwgIiksc3QoKSgpKCkoKSgpfWlmKDImZCl7Y29uc3QgaD1LdCgpO3V0''@;'; + put 'put ''KDcpLGtmKCIgU3VibWl0IGZvciBBcHByb3ZhbCAoIixoLnJvd3NDaGFuZ2VkLnJvd3NBZGRlZCwiIGFkZGVkLCAiLGgucm93c0NoYW5nZWQucm93c1VwZGF0ZWQsIiB1cGRhdGVkLCAiLGgucm93c0NoYW5nZWQucm93c0RlbGV0ZWQsIiBkZWxldGVkKSAiKSx1dCgyKSxUdCgibmdJZiIsaC50''@;'; + put 'put ''YWJsZVRydWUpLHV0KDIpLFR0KCJkaXNhYmxlZCIsIWgudmFsaWRhdGlvbkRvbmUpfX1mdW5jdGlvbiBVbXQoZCxnKXtpZigxJmQmJihpdCgwLCJzcGFuIiwxMTIpLFV0KDEpLG5uKDIsInBrU3BhY2VTZXBhcmF0ZSIpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUt0KCk7dXQo''@;'; + put 'put ''MSksRmgoIiBPbiByb3cgIixoKzEsIjogIix6dCgyLDIsdi5wa0ZpZWxkc1toXS5yZXBsYWNlKCJ8IiwiIikpLCIgIil9fWZ1bmN0aW9uIFFtdChkLGcpe2lmKDEmZCYmKGl0KDAsInAiKSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksa2YoIiAiLGguY29sLCIo''@;'; + put 'put ''IixoLmxlbiwiKSwgIixoLnZhbCwiICIpfX1mdW5jdGlvbiBKbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiLDExMykoMSwiZGl2IiwxMTQpKDIsImRpdiIsMTAwKSgzLCJkaXYiLDEwMSkoNCwiYnV0dG9uIiwxMDIpLENyKDUsImNsci1pY29uIiwxMDMpLHN0KCksaXQo''@;'; + put 'put ''NiwiaDMiLDIpLFV0KDcsIkVycm9yIiksc3QoKSgpLGl0KDgsImRpdiIsMykoOSwicCIpLFV0KDEwLCJZb3UgY2Fubm90IHN1Ym1pdCBlbXB0eSBjbGF1c2VzIiksc3QoKSgpLGl0KDExLCJkaXYiLDE3KSgxMiwiYnV0dG9uIiwzOCksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydCho''@;'; + put 'put ''KSxhKEt0KCkubnVsbFZhcmlhYmxlcz0hMSl9KSxVdCgxMywiIE9rICIpLHN0KCkoKSgpKCkoKX19ZnVuY3Rpb24gWG10KGQsZyl7MSZkJiZDcigwLCJhcHAtcXVlcnkiLG51bGwsMTE1KX1mdW5jdGlvbiBLbXQoZCxnKXsxJmQmJihpdCgwLCJwIiwxMTYpLFV0KDEsIiBTb3JyeSB0aGF0IGRp''@;'; + put 'put ''ZG4ndCB3b3JrLCB0cnkgYWdhaW4uICIpLHN0KCkpfWNvbnN0ICRtdD1mdW5jdGlvbigpe3JldHVyblsiL2hvbWUiXX0scW10PWZ1bmN0aW9uKGQsZyl7cmV0dXJue2xpYk5hbWU6ZCx0YWJsZU5hbWU6Z319LEVMZT1mdW5jdGlvbigpe3JldHVyblsiIiwiICJdfSxlN3Q9ZnVuY3Rpb24oZCl7''@;'; + put 'put ''cmV0dXJue2hlYWRlckJhckZpbHRlcjpkfX0seExlPUwoNDE5MjUpLFRMZT1MKDkzMTcyKS5CdWZmZXI7bGV0IFZuZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqLHVlLF9lLEJlLE5lKXt0aGlzLmFwcFNlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMubG9n''@;'; + put 'put ''Z2VyU2VydmljZT15LHRoaXMuc2FzU3RvcmVTZXJ2aWNlPUMsdGhpcy5oZWxwZXJTZXJ2aWNlPUksdGhpcy5yb3V0ZXI9aix0aGlzLnJvdXRlPXVlLHRoaXMuc2FzU2VydmljZT1fZSx0aGlzLmNkZj1CZSx0aGlzLmhvdFJlZ2lzdGVyZXI9TmUsdGhpcy51cGxvYWRTdGF0ZXJDb21wTGlzdD1u''@;'; + put 'put ''ZXcgenIsdGhpcy5xdWVyeUZpbHRlckNvbXBMaXN0PW5ldyB6cix0aGlzLmhvdEluc3RhbmNlQ29tcExpc3Q9bmV3IHpyLHRoaXMuZmlsZVVwbG9hZElucHV0Q29tcExpc3Q9bmV3IHpyLHRoaXMubWVzc2FnZT0iIix0aGlzLiRkYXRhRm9ybWF0cz1udWxsLHRoaXMuY29scz1bXSx0aGlzLmRl''@;'; + put 'put ''bW9MaW1pdHM9dGhpcy5hcHBTZXJ2aWNlLmRlbW9MaW1pdHMsdGhpcy5yZXN0cmljdGlvbnM9e30sdGhpcy5ob3RUYWJsZT17ZGF0YTpbXSxjb2xIZWFkZXJzOltdLGhpZGRlbjohMCxjb2x1bW5zOltdLGhlaWdodDo1MDAsbWluU3BhcmVSb3dzOjEsbGljZW5zZUtleTp2b2lkIDAscmVhZE9u''@;'; + put 'put ''bHk6ITAsc2V0dGluZ3M6e2NvbnRleHRNZW51OntpdGVtczp7ZWRpdF9yb3c6e25hbWU6IkVkaXQgcm93IixoaWRkZW4oKXtjb25zdCBkdD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKTtpZighZHQpcmV0dXJuITE7Y29uc3QgT3Q9ZHRbMF07cmV0dXJuIE90LmZyb20ucm93IT09T3QudG8ucm93''@;'; + put 'put ''fSxjYWxsYmFjazooS2UsZHQsT3QpPT57bGV0ICR0PWR0WzBdOyR0LnN0YXJ0LnJvdz09PSR0LmVuZC5yb3cmJnRoaXMuZWRpdFJlY29yZChudWxsLCR0LnN0YXJ0LnJvdyl9fSxyb3dfYWJvdmU6e25hbWU6IlJvdyBhYm92ZSJ9LHJvd19iZWxvdzp7bmFtZToiUm93IGJlbG93In0scmVtb3Zl''@;'; + put 'put ''X3Jvdzp7bmFtZToiSWdub3JlIHJvdyJ9LHNwMTp7bmFtZToiLS0tLS0tLS0tIn0sdW5kbzp7bmFtZToiVW5kbyJ9LHJlZG86e25hbWU6IlJlZG8ifX19fX0sdGhpcy5ob3RDZWxsc1Byb3BSb3c9bnVsbCx0aGlzLmZpbHRlcj0hMSx0aGlzLnN1Ym1pdExvYWRpbmc9ITEsdGhpcy51cGxvYWRM''@;'; + put 'put ''b2FkaW5nPSExLHRoaXMucm93c0NoYW5nZWQ9e3Jvd3NVcGRhdGVkOjAscm93c0RlbGV0ZWQ6MCxyb3dzQWRkZWQ6MH0sdGhpcy5tb2RpZmVkUm93c0luZGV4ZXM9W10sdGhpcy5xdWVyeUVycj0hMSx0aGlzLnN1Y2Nlc3NFbmFibGU9ITEsdGhpcy5udWxsVmFyaWFibGVzPSExLHRoaXMucGtG''@;'; + put 'put ''aWVsZHM9W10sdGhpcy5maWxlbmFtZT0iIix0aGlzLmJhZEVkaXQ9ITEsdGhpcy5zYXZlTG9hZGluZz0hMSx0aGlzLmFwcHJvdmVycz1bXSx0aGlzLmVyclZhbGlkYXRpb249ITEsdGhpcy5wa051bGw9ITEsdGhpcy5ub1BrTnVsbD0hMSx0aGlzLnRhYmxlRGF0YT1bXSx0aGlzLnF1ZXJ5VGV4''@;'; + put 'put ''dD0iIix0aGlzLnF1ZXJ5VGV4dFNhdmVkPSIiLHRoaXMuc2hvd0FwcHJvdmVycz0hMSx0aGlzLnBrRHVwcz0hMSx0aGlzLnZhbGlkYXRpb25Eb25lPTAsdGhpcy5kdXBsaWNhdGVQa0luZGV4ZXM9W10sdGhpcy5jb2x1bW5IZWFkZXI9W10sdGhpcy5zcGVjSW5mbz1bXSx0aGlzLnRvb0xvbmc9''@;'; + put 'put ''ITEsdGhpcy5leGNlZWRDZWxscz1bXSx0aGlzLnVwbG9hZGVyPW5ldyBiNXQoe3VybDoiIn0pLHRoaXMudXBsb2FkVXJsPSIiLHRoaXMuZXhjZWxGaWxlUmVhZHk9ITEsdGhpcy51cGxvYWRQcmV2aWV3PSExLHRoaXMuZXhjZWxGaWxlUGFyc2luZz0hMSx0aGlzLmV4Y2VsVXBsb2FkU3RhdGU9''@;'; + put 'put ''bnVsbCx0aGlzLmRhdGE9W10sdGhpcy5oZWFkZXJBcnJheT1bXSx0aGlzLmhvdERhdGFTY2hlbWE9e30sdGhpcy5oZWFkZXJTaG93PVtdLHRoaXMuaGVhZGVyVmlzaWJsZT0hMSx0aGlzLmhhc0Jhc2VEcm9wWm9uZU92ZXI9ITEsdGhpcy5oYXNBbm90aGVyRHJvcFpvbmVPdmVyPSExLHRoaXMu''@;'; + put 'put ''aGVhZGVyUGtzPVtdLHRoaXMuY29sdW1uTGV2ZWxTZWN1cml0eUZsYWc9ITEsdGhpcy5kYXRlVGltZUhlYWRlcnM9W10sdGhpcy50aW1lSGVhZGVycz1bXSx0aGlzLmRhdGVIZWFkZXJzPVtdLHRoaXMueGxSdWxlcz1bXSx0aGlzLmVuY29kaW5nPSJVVEYtOCIsdGhpcy5oZWFkZXJDb2x1bW5z''@;'; + put 'put ''PVtdLHRoaXMuY2VsbFZhbGlkYXRpb249W10sdGhpcy5maWxlUGFzc3dvcmRTdWJqZWN0PW5ldyAkZSx0aGlzLmZpbGVVbmxvY2tFcnJvcj0hMSx0aGlzLmZpbGVQYXNzd29yZE1vZGFsPSExLHRoaXMuc2hvd1VwbG9hZE1vZGFsPSExLHRoaXMuZGlzY2FyZFNvdXJjZUZpbGU9ITEsdGhpcy5t''@;'; + put 'put ''YW51YWxGaWxlRWRpdE1vZGFsPSExLHRoaXMucmVjb3JkQWN0aW9uPW51bGwsdGhpcy5jdXJyZW50RWRpdFJlY29yZExvYWRpbmdzPVtdLHRoaXMuY3VycmVudEVkaXRSZWNvcmRFcnJvcnM9W10sdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PS0xLHRoaXMuZ2VuZXJhdGVFZGl0UmVjb3Jk''@;'; + put 'put ''VXJsTG9hZGluZz0hMSx0aGlzLmdlbmVyYXRlZFJlY29yZFVybD1udWxsLHRoaXMuYWRkUmVjb3JkVXJsPW51bGwsdGhpcy5yZWNvcmROZXdPclBrTW9kaWZpZWQ9ITEsdGhpcy5hZGRSZWNvcmRMb2FkaW5nPSExLHRoaXMuc2luZ2xlUm93U2VsZWN0ZWQ9ITEsdGhpcy5hZGRpbmdOZXdSb3c9''@;'; + put 'put ''ITEsdGhpcy5nZXRkYXRhRXJyb3I9ITEsdGhpcy56ZXJvRmlsdGVyUm93cz0hMSx0aGlzLnRhYmxlRmlsZURyYWdPdmVyPSExLHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2U9W10sdGhpcy52YWxpZGF0aW9uVGFibGVMaW1pdD0yMCx0aGlzLmV4dGVuZGVkQ2VsbFZhbGlkYXRpb25GaWVsZHM9''@;'; + put 'put ''e0RJU1BMQVlfSU5ERVg6MCxFWFRSQV9DT0xfTkFNRToxLERJU1BMQVlfVkFMVUU6MixESVNQTEFZX1RZUEU6MyxSQVdfVkFMVUVfTlVNOjQsUkFXX1ZBTFVFX0NIQVI6NSxGT1JDRV9GTEFHOjZ9LHRoaXMuY2VsbFZhbGlkYXRpb25GaWVsZHM9e0RJU1BMQVlfSU5ERVg6MCxESVNQTEFZX1ZB''@;'; + put 'put ''TFVFOjEsUkFXX1ZBTFVFOjJ9LHRoaXMuZGlzYWJsZWRCYXNpY0R5bmFtaWNDZWxsVmFsaWRhdGlvbk1hcD1bXSx0aGlzLnRpbWVzQ2xpY2tlZD0wLHRoaXMuaG90VGFibGUuaGVpZ2h0PWRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0LTIyNCx0aGlzLmhvdFJlZ2lzdGVyZXI9bmV3IG1PLHRo''@;'; + put 'put ''aXMucGFyc2VSZXN0cmljdGlvbnMoKSx0aGlzLnNldFJlc3RyaWN0aW9ucygpfXBhcnNlUmVzdHJpY3Rpb25zKCl7dGhpcy5hcHBTZXJ2aWNlLnJlc3RyaWN0RWRpdFJlY29yZCYmKHRoaXMucmVzdHJpY3Rpb25zLnJlbW92ZUFkZFJlY29yZEJ1dHRvbj0hMCx0aGlzLnJlc3RyaWN0aW9ucy5y''@;'; + put 'put ''ZW1vdmVFZGl0UmVjb3JkQnV0dG9uPSEwKSx0aGlzLmRlbW9MaW1pdHMuZGlzYWJsZWRFZGl0UmVjb3JkJiYodGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSZWNvcmQ9ITApfXNldFJlc3RyaWN0aW9ucyhoKXt2YXIgdix5LEMsSSxqLHVlLF9lLEJlO2gmJih0aGlzLnJlc3RyaWN0aW9u''@;'; + put 'put ''cz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5yZXN0cmljdGlvbnMpLGgpKSx0aGlzLnJlc3RyaWN0aW9ucy5yZW1vdmVFZGl0UmVjb3JkQnV0dG9uJiZkZWxldGUobnVsbD09PSh5PW51bGw9PT0odj10aGlzLmhvdFRhYmxlKXx8dm9pZCAwPT09dj92b2lkIDA6di5zZXR0''@;'; + put 'put ''aW5ncyl8fHZvaWQgMD09PXk/dm9pZCAwOnkuY29udGV4dE1lbnUpLml0ZW1zLmVkaXRfcm93LHRoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0QWRkUm93JiYoZGVsZXRlKG51bGw9PT0oST1udWxsPT09KEM9dGhpcy5ob3RUYWJsZSl8fHZvaWQgMD09PUM/dm9pZCAwOkMuc2V0dGluZ3MpfHx2''@;'; + put 'put ''b2lkIDA9PT1JP3ZvaWQgMDpJLmNvbnRleHRNZW51KS5pdGVtcy5yb3dfYWJvdmUsZGVsZXRlKG51bGw9PT0odWU9bnVsbD09PShqPXRoaXMuaG90VGFibGUpfHx2b2lkIDA9PT1qP3ZvaWQgMDpqLnNldHRpbmdzKXx8dm9pZCAwPT09dWU/dm9pZCAwOnVlLmNvbnRleHRNZW51KS5pdGVtcy5y''@;'; + put 'put ''b3dfYmVsb3csZGVsZXRlKG51bGw9PT0oQmU9bnVsbD09PShfZT10aGlzLmhvdFRhYmxlKXx8dm9pZCAwPT09X2U/dm9pZCAwOl9lLnNldHRpbmdzKXx8dm9pZCAwPT09QmU/dm9pZCAwOkJlLmNvbnRleHRNZW51KS5pdGVtcy5yZW1vdmVfcm93KX1jaGVja1Jvd0xpbWl0KCl7dmFyIGg7dGhp''@;'; + put 'put ''cy5kZW1vTGltaXRzLnJvd3NfYWxsb3dlZCYmKHRoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0QWRkUm93PShudWxsPT09KGg9dGhpcy5kYXRhU291cmNlKXx8dm9pZCAwPT09aD92b2lkIDA6aC5sZW5ndGgpPj10aGlzLmRlbW9MaW1pdHMucm93c19hbGxvd2VkKX1yZXNldEZpbHRlcigpe3Ro''@;'; + put 'put ''aXMucXVlcnlGaWx0ZXJDb21wTGlzdC5maXJzdCYmdGhpcy5xdWVyeUZpbHRlckNvbXBMaXN0LmZpcnN0LnJlc2V0RmlsdGVyKCl9b25TaG93VXBsb2FkTW9kYWwoKXt0aGlzLmRlbW9MaW1pdHMuZGlzYWJsZWRGaWxlVXBsb2FkP3RoaXMuZXZlbnRTZXJ2aWNlLnNob3dEZW1vTGltaXRNb2Rh''@;'; + put 'put ''bCgpOnRoaXMuY29sdW1uTGV2ZWxTZWN1cml0eUZsYWc/dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiSW5mb3JtYXRpb24iLCJVcGxvYWQgZmVhdHVyZSBpcyBkaXNhYmxlZCB3aGlsZSBDb2x1bW4gTGV2ZWwgU2VjdXJpdHkgcnVsZXMgYXJlIGFjdGl2ZSIpOnRoaXMudXBsb2Fk''@;'; + put 'put ''UHJldmlld3x8KHRoaXMuc2hvd1VwbG9hZE1vZGFsPSEwKX1maWxlT3ZlckJhc2UoaCl7dGhpcy5oYXNCYXNlRHJvcFpvbmVPdmVyPWh9dXBkYXRlX3NoZWV0X3JhbmdlKGgpe3ZhciB2PXtzOntyOjEvMCxjOjEvMH0sZTp7cjowLGM6MH19O09iamVjdC5rZXlzKGgpLmZpbHRlcihmdW5jdGlv''@;'; + put 'put ''bih5KXtyZXR1cm4iISIhPXkuY2hhckF0KDApfSkubWFwKEFNLnV0aWxzLmRlY29kZV9jZWxsKS5mb3JFYWNoKGZ1bmN0aW9uKHkpe3Yucy5jPU1hdGgubWluKHYucy5jLHkuYyksdi5zLnI9TWF0aC5taW4odi5zLnIseS5yKSx2LmUuYz1NYXRoLm1heCh2LmUuYyx5LmMpLHYuZS5yPU1hdGgu''@;'; + put 'put ''bWF4KHYuZS5yLHkucil9KSxoWyIhcmVmIl09QU0udXRpbHMuZW5jb2RlX3JhbmdlKHYpfWdldFJhbmdlQW5kU2hlZXQoaCl7bGV0IHY9MCx5PTAsQz0tMSxJPS0xLGo9IiIsdWU9ITEsX2U9W10sTmU9WyJfX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18iLC4uLnRoaXMuaGVhZGVyQXJy''@;'; + put 'put ''YXldLm1hcChPdD0+T3QudG9Mb3dlckNhc2UoKSksS2U9TmUucmVkdWNlKChPdCwkdCk9PihPdFskdF09LTEsT3QpLHt9KTtyZXR1cm4gaC5TaGVldE5hbWVzLmZvckVhY2goT3Q9PntpZih1ZSlyZXR1cm47X2U9W10saj1PdDtjb25zdCAkdD1oLlNoZWV0c1tqXTtpZih0aGlzLmRhdGE9QU0u''@;'; + put 'put ''dXRpbHMuc2hlZXRfdG9fanNvbigkdCx7aGVhZGVyOjEsYmxhbmtyb3dzOiExLGRlZnZhbDoiIn0pLHRoaXMuZGF0YS5sZW5ndGg8PTEpcmV0dXJuO2xldCBmbj1bXTt0aGlzLmhlYWRlckFycmF5LmZvckVhY2goKCk9PmZuLnB1c2goIiIpKSx0aGlzLmRhdGEucHVzaChmbik7bGV0IExuPSEx''@;'; + put 'put ''O2lmKHRoaXMuZGF0YS5mb3JFYWNoKChpcixtcik9PntpZighdWUpaWYoTG4pe2xldCBTcj0hMCx3cj0hMTtOZS5mb3JFYWNoKFFyPT57Y29uc3QgeWk9S2VbUXJdOyIiIT09aXJbeWldJiZ2b2lkIDAhPT1pclt5aV0/U3I9ITE6LTEhPT10aGlzLmhlYWRlclBrcy5pbmRleE9mKFFyLnRvVXBw''@;'; + put 'put ''ZXJDYXNlKCkpJiYod3I9ITApfSksU3J8fHdyPyhJPW1yLHVlPSEwKTotMT09PUMmJihDPW1yKX1lbHNle2NvbnN0IFNyPWlyLm1hcChRcj0+UXIudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKTtpZighU3IuaW5jbHVkZXMoIl9fX19fZGVsZXRlX190aGlzX19yZWNvcmRfX19fXyIpKXtjb25z''@;'; + put 'put ''dCBRcj1OZS5pbmRleE9mKCJfX19fX2RlbGV0ZV9fdGhpc19fcmVjb3JkX19fX18iKTtRcj4tMSYmTmUuc3BsaWNlKFFyLDEpfUxuPSEwLE5lLmZvckVhY2goUXI9PnstMT09PVNyLmluZGV4T2YoUXIpJiYoTG49ITEpfSk7bGV0IHdyPVtdO3dyPXRoaXMuZmluZFZhbGlkSGVhZGVycyhTcixO''@;'; + put 'put ''ZSxtcixqKSwhMT09PXdyWzBdPyhMbj0hMSx3clsxXS5sZW5ndGg+MCYmd3JbMV0uZm9yRWFjaChRcj0+e19lLnB1c2goUXIpfSkpOktlPXdyWzFdfX0pLHVlJiYodGhpcy51cGRhdGVfc2hlZXRfcmFuZ2UoJHQpLCR0WyIhcmVmIl0pKXtjb25zdCBtcj1BTS51dGlscy5kZWNvZGVfcmFuZ2Uo''@;'; + put 'put ''JHRbIiFyZWYiXXx8IiIpO3Y9bXIucy5yLHk9bXIucy5jfX0pLC0xPT09QyYmKHVlPSExKSx7Zm91bmREYXRhOnVlLHNoZWV0TmFtZTpqLHN0YXJ0Um93OkMsZW5kUm93OkksY3N2QXJyYXlIZWFkZXJzTWFwOktlLG1pc3NpbmdIZWFkZXJzOl9lLHJhbmdlU3RhcnRSb3c6dixyYW5nZVN0YXJ0''@;'; + put 'put ''Q29sOnl9fXByb21wdEV4Y2VsUGFzc3dvcmQoKXtyZXR1cm4gbmV3IFByb21pc2UoKGgsdik9Pnt0aGlzLmZpbGVQYXNzd29yZE1vZGFsPSEwLHNldFRpbWVvdXQoKCk9Pntjb25zdCB5PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNmaWxlUGFzc3dvcmRJbnB1dCIpO3kmJih5LmZvY3VzKCks''@;'; + put 'put ''eS52YWx1ZT0iIil9LDEwMCksdGhpcy5maWxlUGFzc3dvcmRTdWJqZWN0LnN1YnNjcmliZSh5PT57dGhpcy5maWxlVW5sb2NrRXJyb3I9ITEsaCh5fHx2b2lkIDApfSl9KX1nZXRGaWxlRGVzYyhoLHY9ITEpe2xldCB5O3RoaXMuZXhjZWxVcGxvYWRTdGF0ZT0iTG9hZGluZyIsdGhpcy5leGNl''@;'; + put 'put ''bEZpbGVQYXJzaW5nPSEwLHk9dj9oWzBdOmgudGFyZ2V0LmZpbGVzWzBdLHRoaXMuZXhjZWxGaWxlUmVhZHk9ITEsdGhpcy5maWxlbmFtZT0iIjtsZXQgQz15Lm5hbWU7dGhpcy5maWxlbmFtZT1DLHRoaXMuYXBwZW5kVXBsb2FkU3RhdGUoYExvYWRpbmcgJHtDfSBpbnRvIHRoZSBicm93c2Vy''@;'; + put 'put ''YCk7bGV0IGo9Qy5zbGljZShDLmxhc3RJbmRleE9mKCIuIikrMSxDLmxhc3RJbmRleE9mKCIuIikrNCk7aWYoInhscyI9PT1qLnRvTG93ZXJDYXNlKCkpe2xldCB1ZT1uZXcgRmlsZVJlYWRlcjt1ZS5vbmxvYWQ9QmU9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBO''@;'; + put 'put ''ZT10aGlzLnRvQnN0cihCZS50YXJnZXQucmVzdWx0KTtsZXQgS2UsZHQ9ITE7Y29uc3QgT3Q9e3R5cGU6ImJpbmFyeSIsY2VsbERhdGVzOiExLGNlbGxGb3JtdWxhOiEwLGNlbGxTdHlsZXM6ITAsY2VsbE5GOiExLGNlbGxUZXh0OiExfTt0cnl7S2U9QU0ucmVhZChOZSxPYmplY3QuYXNzaWdu''@;'; + put 'put ''KHt9LE90KSl9Y2F0Y2goUXIpe2lmKFFyLm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygicGFzc3dvcmQiKSlmb3IoZHQ9ITA7ZHQ7KXtjb25zdCB5aT15aWVsZCB0aGlzLnByb21wdEV4Y2VsUGFzc3dvcmQoKTtpZih5aSl0cnl7S2U9QU0ucmVhZChOZSxPYmplY3QuYXNzaWduKE9i''@;'; + put 'put ''amVjdC5hc3NpZ24oe30sT3QpLHtwYXNzd29yZDp5aX0pKSxkdD0hMSx0aGlzLmZpbGVVbmxvY2tFcnJvcj0hMX1jYXRjaChLaSl7dGhpcy5maWxlVW5sb2NrRXJyb3I9ITAsS2kubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCJwYXNzd29yZCIpfHwoZHQ9ITEpfWVsc2UgZHQ9ITF9''@;'; + put 'put ''ZWxzZSB0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLFFyLHZvaWQgMCwiRXJyb3IgcmVhZGluZyBmaWxlIil9aWYoIUtlKXJldHVybiB0aGlzLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdm9pZCh0aGlzLnNob3dVcGxvYWRNb2RhbD0hMSk7bGV0ICR0PSExLGZuPVtdO2NvbnN0''@;'; + put 'put ''IExuPVsiX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fIiwuLi50aGlzLmhlYWRlckFycmF5XTtsZXQgaXI9TG4ubWFwKFFyPT5Rci50b0xvd2VyQ2FzZSgpKSxtcj1pci5yZWR1Y2UoKFFyLHlpKT0+KFFyW3lpXT0tMSxRcikse30pLFNyPVtdO2NvbnN0IHdyPXRoaXMuZ2V0UmFuZ2VB''@;'; + put 'put ''bmRTaGVldChLZSk7aWYoZm49d3IubWlzc2luZ0hlYWRlcnMsd3IuZm91bmREYXRhKXskdD0hMCxtcj13ci5jc3ZBcnJheUhlYWRlcnNNYXA7Y29uc3QgUXI9S2UuU2hlZXRzW3dyLnNoZWV0TmFtZV07dGhpcy5hcHBlbmRVcGxvYWRTdGF0ZShgVGFibGUgZm91bmQgb24gc2hlZXQgJHt3ci5z''@;'; + put 'put ''aGVldE5hbWV9IG9uIHJvdyAke3dyLnN0YXJ0Um93fWApO2xldCB5aT0iIixLaT0iIjtmb3IobGV0IFNvPXdyLnN0YXJ0Um93O1NvPHdyLmVuZFJvdzsrK1NvKXtjb25zdCBQbz1bXTtpci5mb3JFYWNoKEphPT57Y29uc3QgYWw9QU0udXRpbHMuZW5jb2RlX2NlbGwoe3I6d3IucmFuZ2VTdGFy''@;'; + put 'put ''dFJvdytTbyxjOndyLnJhbmdlU3RhcnRDb2wrbXJbSmFdfSk7bGV0IExzOyIiPT09eWkmJih5aT1hbCksS2k9YWwsTHM9UXJbYWxdP1FyW2FsXTp7djoiIn0sUG8ucHVzaChMcyl9KSxQby5maW5kKEphPT4iIiE9PUphLnYpJiZTci5wdXNoKFBvKX10aGlzLmV2ZW50U2VydmljZS5zaG93SW5m''@;'; + put 'put ''b01vZGFsKCJUYWJsZSBGb3VuZCIsYFNoZWV0OiAke3dyLnNoZWV0TmFtZX1cblJhbmdlOiAke3lpfToke0tpfWApfWVsc2UgZm49d3IubWlzc2luZ0hlYWRlcnM7aWYoZm4ubGVuZ3RoPjApe2ZuLnNvcnQoZnVuY3Rpb24oS2ksU28pe3JldHVybiBLaVsxXT09PVNvWzFdPzA6S2lbMV0+U29b''@;'; + put 'put ''MV0/LTE6MX0pO2xldCBRcj1mbi5tYXAoeWk9PnlpWzBdKS5zbGljZSgwLDUpLmpvaW4oIlxuIik7cmV0dXJuIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsUXIpLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmZpbGVuYW1lPSIifSksdGhpcy5leGNlbEZpbGVQYXJzaW5nPSEx''@;'; + put 'put ''LHZvaWQgdGhpcy51cGxvYWRlci5xdWV1ZS5wb3AoKX1pZigwPT09U3IubGVuZ3RofHwwPT09U3JbMF0ubGVuZ3RoKXJldHVybiB0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLCJObyByZWxldmFudCBkYXRhIGZvdW5kIGluIEZpbGUgISIpLHNldFRpbWVvdXQoKCk9Pnt0''@;'; + put 'put ''aGlzLmZpbGVuYW1lPSIifSksdGhpcy5leGNlbEZpbGVQYXJzaW5nPSExLHZvaWQgdGhpcy51cGxvYWRlci5xdWV1ZS5wb3AoKTtpZigodGhpcy5kYXRlVGltZUhlYWRlcnMubGVuZ3RoPjB8fHRoaXMuZGF0ZUhlYWRlcnMubGVuZ3RoPjB8fHRoaXMudGltZUhlYWRlcnMubGVuZ3RoPjApJiYo''@;'; + put 'put ''U3I9dGhpcy51cGRhdGVEYXRlVGltZUNvbHMoTG4sU3IpKSx0aGlzLnhsUnVsZXMubGVuZ3RoPjAmJihTcj10aGlzLnVwZGF0ZVhMUnVsZUNvbHMoTG4sU3IpKSwhJHQpe2lmKDA9PT1mbi5sZW5ndGgpdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwobnVsbCwiTm8gcmVsZXZhbnQg''@;'; + put 'put ''ZGF0YSBmb3VuZCBpbiBGaWxlICEiKSxzZXRUaW1lb3V0KCgpPT57dGhpcy5maWxlbmFtZT0iIn0pO2Vsc2V7Zm4uc29ydChmdW5jdGlvbihLaSxTbyl7cmV0dXJuIEtpWzFdPT09U29bMV0/MDpLaVsxXT5Tb1sxXT8tMToxfSk7bGV0IFFyPWZuLm1hcCh5aT0+eWlbMF0pLnNsaWNlKDAsNSku''@;'; + put 'put ''am9pbigiXG4iKTt0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLFFyKX1yZXR1cm4gdGhpcy5leGNlbEZpbGVQYXJzaW5nPSExLHZvaWQgdGhpcy51cGxvYWRlci5xdWV1ZS5wb3AoKX17dGhpcy5oZWFkZXJTaG93PUxuLFNyPVNyLm1hcCh5aT0+eWkubWFwKEtpPT4ibiI9''@;'; + put 'put ''PT1LaS50P0tpLnY6S2kudykpLFNyPVNyLm1hcCh5aT0+eWkubWFwKChLaSxTbyk9Pnt2YXIgUG87IUtpJiYwIT09S2kmJihLaT0iIiksaXNOYU4oS2kpJiYoS2k9S2kucmVwbGFjZSgvIi9nLCciIicpKS5zZWFyY2goLywvZyk+LTEmJihLaT0nIicrS2krJyInKTtjb25zdCBKYT1udWxsPT09''@;'; + put 'put ''KFBvPXRoaXMuZGNWYWxpZGF0b3IpfHx2b2lkIDA9PT1Qbz92b2lkIDA6UG8uZ2V0UnVsZSh0aGlzLmhlYWRlclNob3dbU29dKTtyZXR1cm4ibnVtZXJpYyI9PT0obnVsbD09SmE/dm9pZCAwOkphLnR5cGUpJiYoMCx5dy5pc1NwZWNpYWxNaXNzaW5nKShLaSkmJiFLaS5pbmNsdWRlcygiLiIp''@;'; + put 'put ''JiYoS2k9Ii4iK0tpKSxLaX0pKSx0aGlzLmRhdGE9U3I7bGV0IFFyPUxuLmpvaW4oIiwiKSsiXG4iO2lmKFFyKz1Tci5tYXAoeWk9PnlpLmpvaW4oIiwiKSkuam9pbigiXG4iKSwiV0xBVElOMSI9PT10aGlzLmVuY29kaW5nKXtsZXQgeWk9eExlLmRlY29kZShUTGUuZnJvbShRciksIkNQLTEy''@;'; + put 'put ''NTIiKSxLaT1uZXcgQmxvYihbeWldLHt0eXBlOiJhcHBsaWNhdGlvbi9jc3YifSksU289dGhpcy5ibG9iVG9GaWxlKEtpLHRoaXMuZmlsZW5hbWUrIi5jc3YiKTt0aGlzLnVwbG9hZGVyLmFkZFRvUXVldWUoW1NvXSl9ZWxzZXtsZXQgeWk9bmV3IEJsb2IoW1FyXSx7dHlwZToiYXBwbGljYXRp''@;'; + put 'put ''b24vY3N2In0pLEtpPXRoaXMuYmxvYlRvRmlsZSh5aSx0aGlzLmZpbGVuYW1lKyIuY3N2Iik7dGhpcy51cGxvYWRlci5hZGRUb1F1ZXVlKFtLaV0pfXRoaXMuZXhjZWxGaWxlUmVhZHk9ITB9aWYoMD09PXRoaXMuZGF0YS5sZW5ndGgpcmV0dXJuIHRoaXMuc2hvd1VwbG9hZE1vZGFsPSExLHRo''@;'; + put 'put ''aXMudXBsb2FkUHJldmlldz0hMSx0aGlzLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdm9pZCB0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLCJUYWJsZSBpbiB0aGUgZmlsZSBpcyBlbXB0eS4gRGF0YSBmb3VuZCBvbiBzaGVldDogIik7dGhpcy5leGNlbEZpbGVSZWFkeT0hMCx0''@;'; + put 'put ''aGlzLmdldFBlbmRpbmdFeGNlbFByZXZpZXcoKX0pLHVlLnJlYWRBc0FycmF5QnVmZmVyKHkpfWVsc2UgaWYoImNzdiI9PT1qLnRvTG93ZXJDYXNlKCkpaWYoIldMQVRJTjEiPT09dGhpcy5lbmNvZGluZyl7bGV0IHVlPW5ldyBGaWxlUmVhZGVyO3VlLm9ubG9hZD1CZT0+e2xldCBOZT14TGUu''@;'; + put 'put ''ZGVjb2RlKFRMZS5mcm9tKEJlLnRhcmdldC5yZXN1bHQpLCJDUC0xMjUyIiksS2U9bmV3IEJsb2IoW05lXSx7dHlwZTpqfSksZHQ9dGhpcy5ibG9iVG9GaWxlKEtlLHRoaXMuZmlsZW5hbWUpO3RoaXMudXBsb2FkZXIucXVldWUucG9wKCksdGhpcy51cGxvYWRlci5hZGRUb1F1ZXVlKFtkdF0p''@;'; + put 'put ''LHRoaXMuZXhjZWxGaWxlUmVhZHk9ITB9LHRoaXMuZXhjZWxGaWxlUmVhZHk9ITAsdGhpcy5leGNlbEZpbGVQYXJzaW5nPSExLHVlLnJlYWRBc0FycmF5QnVmZmVyKHkpLHRoaXMuZ2V0RmlsZSgpfWVsc2UgdGhpcy5leGNlbEZpbGVSZWFkeT0hMCx0aGlzLmV4Y2VsRmlsZVBhcnNpbmc9ITEs''@;'; + put 'put ''dGhpcy5nZXRGaWxlKCk7ZWxzZSB0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLCdJbnZhbGlkIGZpbGUgdHlwZSAiPGI+Jyt0aGlzLmZpbGVuYW1lKyc8L2I+Ii4gUGxlYXNlIHVwbG9hZCBjc3Ygb3IgZXhjZWwgZmlsZS4nKSx0aGlzLmV4Y2VsRmlsZVJlYWR5PSEwLHRo''@;'; + put 'put ''aXMuZXhjZWxGaWxlUGFyc2luZz0hMSx0aGlzLnVwbG9hZGVyLnF1ZXVlLnBvcCgpfWdldEZpbGUoKXtpZih0aGlzLmNoZWNrSW52YWxpZCgpKXJldHVybiB2b2lkIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsIkludmFsaWQgdmFsdWVzIGFyZSBwcmVzZW50LiIpO3Ro''@;'; + put 'put ''aXMudXBsb2FkTG9hZGluZz0hMDtsZXQgaD1bXTtmb3IoY29uc3QgdiBvZiB0aGlzLnVwbG9hZGVyLnF1ZXVlKWgucHVzaCh7ZmlsZTp2Ll9maWxlLGZpbGVOYW1lOnYuX2ZpbGUubmFtZX0pO3RoaXMuc2FzU2VydmljZS51cGxvYWRGaWxlKHRoaXMudXBsb2FkVXJsLGgse3RhYmxlOnRoaXMu''@;'; + put 'put ''bGliZHN9KS50aGVuKHY9PntpZih2b2lkIDA9PT12LnNhc2pzQWJvcnQpe2lmKHZvaWQgMD09PXYuc2FzcGFyYW1zKXJldHVybjt7dGhpcy51cGxvYWRMb2FkaW5nPSExO2xldCB5PXYuc2FzcGFyYW1zWzBdO3RoaXMuc3VjY2Vzc0VuYWJsZT0hMCx0aGlzLnRhYmxlSWQ9eS5EU0lELHRoaXMu''@;'; + put 'put ''cm91dGVyLm5hdmlnYXRlQnlVcmwoIi9zdGFnZS8iK3RoaXMudGFibGVJZCl9fWVsc2V7Y29uc3QgeT12LEM9eS5zYXNqc0Fib3J0WzBdLk1TRyxJPXkuc2FzanNBYm9ydFswXS5NQUM7dGhpcy51cGxvYWRMb2FkaW5nPSExLHRoaXMuZmlsZW5hbWU9IiIsdGhpcy5maWxlVXBsb2FkSW5wdXRD''@;'; + put 'put ''b21wTGlzdC5maXJzdCYmKHRoaXMuZmlsZVVwbG9hZElucHV0Q29tcExpc3QuZmlyc3QubmF0aXZlRWxlbWVudC52YWx1ZT0iIiksdGhpcy51cGxvYWRlci5xdWV1ZT1bXSx0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbCgiIixDLHtTWVNXQVJOSU5HVEVYVDp5LlNZU1dBUk5JTkdU''@;'; + put 'put ''RVhULFNZU0VSUk9SVEVYVDp5LlNZU0VSUk9SVEVYVCxNQUM6SX0pfX0sdj0+e3RoaXMudXBsb2FkTG9hZGluZz0hMSx0aGlzLmZpbGVVcGxvYWRJbnB1dENvbXBMaXN0LmZpcnN0JiYodGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdC5uYXRpdmVFbGVtZW50LnZhbHVlPSIiKSx0''@;'; + put 'put ''aGlzLnVwbG9hZGVyLnF1ZXVlPVtdLHRoaXMuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigiZmlsZSB1cGxvYWQiLHYpfSl9Z2V0UGVuZGluZ0V4Y2VsUHJldmlldygpe3RoaXMucXVlcnlUZXh0U2F2ZWQ9dGhpcy5xdWVyeVRleHQsdGhpcy5xdWVyeVRleHQ9IiIsdGhpcy5leGNl''@;'; + put 'put ''bFVwbG9hZFN0YXRlPSJQYXJzaW5nIix0aGlzLnRvZ2dsZUhvdFBsdWdpbigiY29udGV4dE1lbnUiLCExKTtsZXQgaD1bXTt0aGlzLmRhdGEubWFwKHk9PntsZXQgQz17fTt0aGlzLmhlYWRlclNob3cubWFwKChJLGopPT57Q1tJXT15W2pdfSksQy5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JE''@;'; + put 'put ''X19fX198fChDLl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXz0iTm8iKSxoLnB1c2goQyl9KSx0aGlzLmRhdGFTb3VyY2VVbmNoYW5nZWQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2UpLHRoaXMuZGF0YVNvdXJjZT1oLHRoaXMuaG90VGFibGUuZGF0''@;'; + put 'put ''YT1oO2NvbnN0IHY9dGhpcy5ob3RJbnN0YW5jZTt0aGlzLmV4Y2VsVXBsb2FkU3RhdGU9IlZhbGlkYXRpbmctSE9UIix2LnVwZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0YVNvdXJjZX0sITEpLHYucmVuZGVyKCksdGhpcy5hcHBlbmRVcGxvYWRTdGF0ZSgiVmFsaWRhdGluZyByb3dzIiks''@;'; + put 'put ''di52YWxpZGF0ZUNlbGxzKCgpPT57dGhpcy5zaG93VXBsb2FkTW9kYWw9ITEsdGhpcy51cGxvYWRQcmV2aWV3PSEwLHRoaXMuZXhjZWxGaWxlUGFyc2luZz0hMSx0aGlzLmV4Y2VsVXBsb2FkU3RhdGU9bnVsbH0pfWRpc2NhcmRQZW5kaW5nRXhjZWwoaCl7aCYmdGhpcy5jYW5jZWxFZGl0KCks''@;'; + put 'put ''dGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdCYmKHRoaXMuZmlsZVVwbG9hZElucHV0Q29tcExpc3QuZmlyc3QubmF0aXZlRWxlbWVudC52YWx1ZT0iIiksdGhpcy51cGxvYWRQcmV2aWV3PSExLHRoaXMuZXhjZWxGaWxlUmVhZHk9ITEsdGhpcy51cGxvYWRlci5xdWV1ZT1bXSxp''@;'; + put 'put ''c05hTihwYXJzZUludCh0aGlzLnJvdXRlci51cmwuc3BsaXQoIi8iKS5wb3AoKXx8IiIpKXx8dGhpcy5xdWVyeVRleHRTYXZlZC5sZW5ndGg+MCYmKHRoaXMucXVlcnlUZXh0PXRoaXMucXVlcnlUZXh0U2F2ZWQsdGhpcy5xdWVyeVRleHRTYXZlZD0iIil9cHJldmlld1RhYmxlRWRpdENvbmZp''@;'; + put 'put ''cm0oKXt0aGlzLmRpc2NhcmRQZW5kaW5nRXhjZWwoKSx0aGlzLmNvbnZlcnRUb0NvcnJlY3RUeXBlcyh0aGlzLmRhdGFTb3VyY2UpLHRoaXMuZWRpdFRhYmxlKCEwKX1hcHBlbmRVcGxvYWRTdGF0ZShoLHY9ITEpe3RoaXMuY2RmLmRldGVjdENoYW5nZXMoKSx0aGlzLnVwbG9hZFN0YXRlckNv''@;'; + put 'put ''bXBMaXN0LmZpcnN0JiYodj90aGlzLnVwbG9hZFN0YXRlckNvbXBMaXN0LmZpcnN0LnJlcGxhY2VMYXN0U3RhdGUoaCk6dGhpcy51cGxvYWRTdGF0ZXJDb21wTGlzdC5maXJzdC5hcHBlbmRTdGF0ZShoKSl9ZmluZFZhbGlkSGVhZGVycyhoLHYseSxDKXtsZXQgST0hMSxqPVtdLHVlPTA7Zm9y''@;'; + put 'put ''KDt1ZTxoLmxlbmd0aDspe2lmKCFJJiYtMSE9PXYuaW5kZXhPZihoW3VlXSkpe2xldCBfZSxCZT0wLE5lPTAsS2U9MCxkdD1bXSxPdD0hMTtmb3IobGV0IExuPXVlO0xuPGgubGVuZ3RoO0xuKyspe2lmKCIiPT09aFtMbl18fC0xIT09ZHQuaW5kZXhPZihoW0xuXSkmJnRoaXMuaXNDb2xIZWFk''@;'; + put 'put ''ZXIoaFtMbl0pKXsiIj09PWhbTG5dJiYoT3Q9ITApLF9lPUxuO2JyZWFrfWR0LnB1c2goaFtMbl0pfWxldCAkdD1bXTt2b2lkIDAhPT1fZT8oJHQ9aC5zbGljZSh1ZSxfZSksS2U9dWUsTmU9X2UsT3Q/KEJlPXVlLHVlPV9lKTooQmU9dWUsdWU9X2UtMSkpOigkdD1oLnNsaWNlKHVlKSxCZT11''@;'; + put 'put ''ZSxLZT11ZSxOZT1oLmxlbmd0aCx1ZT1oLmxlbmd0aCk7bGV0IGZuPSEwO2lmKHYuZm9yRWFjaChMbj0+ey0xPT09JHQuaW5kZXhPZihMbikmJihmbj0hMSl9KSxmbil7ST0hMDtsZXQgaXI9di5yZWR1Y2UoZnVuY3Rpb24oU3Isd3Ipe3JldHVybiBTclt3cl09LTEsU3J9LHt9KSxtcj1oLnNs''@;'; + put 'put ''aWNlKEJlLE5lKTtyZXR1cm4gdi5mb3JFYWNoKFNyPT57aXJbU3JdPW1yLmluZGV4T2YoU3IpK0JlfSksWyEwLGlyXX17bGV0IExuPVA1dCgkdCx2KTtqLnB1c2goWyI8Yj5UQUIoIitDKyIpPC9iPiAtICIrTG5bMV0uam9pbigiLCIpKyIgKCBtaXNzaW5nICIrTG5bMF0uam9pbigiLCIpKyIg''@;'; + put 'put ''KSIsTG5bMV0ubGVuZ3RoXSl9fXVlKyt9cmV0dXJuWyExLGpdfWlzQ29sUGsoaCl7cmV0dXJuIHRoaXMuaGVhZGVyUGtzLmluZGV4T2YoaCk+LTF9aXNSZWFkb25seUNvbChoKXt2YXIgdjtjb25zdCB5PW51bGw9PT0odj10aGlzLmRjVmFsaWRhdG9yKXx8dm9pZCAwPT09dj92b2lkIDA6di5n''@;'; + put 'put ''ZXRSdWxlKGgpO3JldHVybiBudWxsPT15P3ZvaWQgMDp5LnJlYWRPbmx5fWlzQ29sSGVhZGVyKGgpe3JldHVybiB0aGlzLmhlYWRlckFycmF5LmluZGV4T2YoaC50b1VwcGVyQ2FzZSgpKT4tMX1yZW1vdmVRdWVyeSgpe3RoaXMuc2FzU3RvcmVTZXJ2aWNlLnJlbW92ZUNsYXVzZSgpfXVwZGF0''@;'; + put 'put ''ZURhdGVUaW1lQ29scyhoLHYpe2lmKHRoaXMuZGF0ZUhlYWRlcnMubGVuZ3RoPjApe2xldCB5PVtdO3RoaXMuZGF0ZUhlYWRlcnMuZm9yRWFjaChDPT57LTEhPT1oLmluZGV4T2YoQykmJnkucHVzaChoLmluZGV4T2YoQykpfSksdi5mb3JFYWNoKEM9Pnt5LmZvckVhY2goST0+e2NvbnN0IGo9''@;'; + put 'put ''Q1tJXTtpZih4bWUoai52KSl7Y29uc3QgdWU9TW1lKE51bWJlcihqLnYpKTtqLnY9dWUuZ2V0RnVsbFllYXIoKSsiLSIrKCIwIisodWUuZ2V0TW9udGgoKSsxKSkuc2xpY2UoLTIpKyItIisoIjAiK3VlLmdldERhdGUoKSkuc2xpY2UoLTIpfWVsc2UgaWYoaiYmai52JiYtMT09PWoudi50b1N0''@;'; + put 'put ''cmluZygpLmluZGV4T2YoIjoiKSl7Y29uc3QgdWU9bmV3IERhdGUoai52KTsiSW52YWxpZCBEYXRlIiE9PXVlLnRvVVRDU3RyaW5nKCkmJihqLnY9U21lKHVlKSl9Q1tJXT1qfSl9KX1pZih0aGlzLnRpbWVIZWFkZXJzLmxlbmd0aD4wKXtsZXQgeT1bXTt0aGlzLnRpbWVIZWFkZXJzLmZvckVh''@;'; + put 'put ''Y2goQz0+ey0xIT09aC5pbmRleE9mKEMpJiZ5LnB1c2goaC5pbmRleE9mKEMpKX0pLHYuZm9yRWFjaChDPT57eS5mb3JFYWNoKEk9Pntjb25zdCBqPUNbSV07aWYoeG1lKGoudil8fGJMZShqLnYpfHxqLnYuaW5jbHVkZXMoIkUtIikpe2NvbnN0IHVlPU1tZShOdW1iZXIoai52KSk7ai52PXdM''@;'; + put 'put ''ZSh1ZSl9Q1tJXT1qfSl9KX1pZih0aGlzLmRhdGVUaW1lSGVhZGVycy5sZW5ndGg+MCl7bGV0IHk9W107dGhpcy5kYXRlVGltZUhlYWRlcnMuZm9yRWFjaChDPT57LTEhPT1oLmluZGV4T2YoQykmJnkucHVzaChoLmluZGV4T2YoQykpfSksdi5mb3JFYWNoKEM9Pnt5LmZvckVhY2goST0+e2Nv''@;'; + put 'put ''bnN0IGo9Q1tJXTtpZih4bWUoai52KXx8YkxlKGoudikpe2xldCB1ZT1NbWUoTnVtYmVyKGoudikpO2oudj1TbWUodWUpKyIgIit3TGUodWUpfWVsc2V7aWYoLTE9PT1qLnYuaW5kZXhPZigiICIpJiYtMSE9PWoudi5pbmRleE9mKCI6Iikpe2xldCBfZT1qLnYuc3Vic3RyaW5nKDAsai52Lmlu''@;'; + put 'put ''ZGV4T2YoIjoiKSk7X2U9X2UrIiAiK2oudi5zdWJzdHJpbmcoai52LmluZGV4T2YoIjoiKSsxKSxqLnY9X2V9bGV0IHVlPW5ldyBEYXRlKGoudik7IkludmFsaWQgRGF0ZSIhPT11ZS50b1VUQ1N0cmluZygpJiYoai52PVNtZSh1ZSkrIiAiKyhkPT57bGV0IGc9KCIwIitkLmdldEhvdXJzKCkp''@;'; + put 'put ''LnNsaWNlKC0yKSsiOiI7cmV0dXJuIGc9ZysoIjAiK2QuZ2V0TWludXRlcygpKS5zbGljZSgtMikrIjoiLGcrPSgiMCIrZC5nZXRTZWNvbmRzKCkpLnNsaWNlKC0yKSxnfSkodWUpKX1DW0ldPWp9KX0pfXJldHVybiB2fXVwZGF0ZVhMUnVsZUNvbHMoaCx2KXtpZih0aGlzLnhsUnVsZXMubGVu''@;'; + put 'put ''Z3RoPjApe2NvbnN0IHk9W107dGhpcy54bFJ1bGVzLmZvckVhY2goQz0+ey0xIT09aC5pbmRleE9mKEMuWExfQ09MVU1OKSYmKEMuaW5kZXg9aC5pbmRleE9mKEMuWExfQ09MVU1OKSx5LnB1c2goQykpfSksdi5mb3JFYWNoKEM9Pnt5LmZvckVhY2goST0+e2NvbnN0IGo9Q1tJLmluZGV4XTsi''@;'; + put 'put ''Rk9STVVMQSI9PT1JLlhMX1JVTEUmJiJmImluIGomJigibiI9PT1qLnQ/ai52PSI9IitqLmY6ai53PSI9IitqLmYpLENbSV09an0pfSl9cmV0dXJuIHZ9YmxvYlRvRmlsZShoLHYpe2NvbnN0IHk9aDtyZXR1cm4geS5sYXN0TW9kaWZpZWREYXRlPW5ldyBEYXRlLHkubmFtZT12LHl9dG9Cc3Ry''@;'; + put 'put ''KGgpe2xldCB2PW5ldyBVaW50OEFycmF5KGgpLHk9IiIsQz12LmJ5dGVMZW5ndGg7Zm9yKGxldCBJPTA7STxDO0krKyl5Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKHZbSV0pO3JldHVybiB5fXNlbmRDbGF1c2UoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMu''@;'; + put 'put ''c3VibWl0TG9hZGluZz0hMDtsZXQgaD1bXSx2PVtdO2lmKHZvaWQgMD09PXRoaXMuY2xhdXNlcylyZXR1cm4gdGhpcy5udWxsVmFyaWFibGVzPSEwLHZvaWQodGhpcy5zdWJtaXRMb2FkaW5nPSExKTt7bGV0IHk9dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqO2lmKHlbMF0uZWxlbWVudHMubGVuZ3Ro''@;'; + put 'put ''PDEpcmV0dXJuKCJob21lIj09PW5pLnJvb3RQYXJhbXx8ImVkaXRvciI9PT1uaS5yb290UGFyYW0pJiYobmkuZWRpdG9yLmZpbHRlci5jbGF1c2VzPVtdLG5pLmVkaXRvci5maWx0ZXIucXVlcnk9W10sbmkuZWRpdG9yLmZpbHRlci5ncm91cExvZ2ljPSIiKSx2b2lkIHRoaXMucm91dGVyLm5h''@;'; + put 'put ''dmlnYXRlQnlVcmwoIi9lZGl0b3IvIit0aGlzLmxpYmRzKTtmb3IobGV0IEM9MDtDPHkubGVuZ3RoO0MrKyl7Y29uc3QgST15W0NdLmVsZW1lbnRzO2g9SS5maWx0ZXIoZnVuY3Rpb24oail7cmV0dXJuIG51bGw9PT1qLnZhcmlhYmxlfSksaC5sZW5ndGgmJnYucHVzaChJKX19aWYodi5sZW5n''@;'; + put 'put ''dGgpcmV0dXJuIHRoaXMubnVsbFZhcmlhYmxlcz0hMCx2b2lkKHRoaXMuc3VibWl0TG9hZGluZz0hMSk7dHJ5e2lmKHZvaWQgMCE9PXRoaXMuY2xhdXNlcyYmdGhpcy5saWJkcyl7Y29uc3QgeT17Z3JvdXBMb2dpYzp0aGlzLmNsYXVzZXMuZ3JvdXBMb2dpYyxmaWx0ZXJHcm91cHM6W119O3Ro''@;'; + put 'put ''aXMuY2xhdXNlcy5xdWVyeU9iai5mb3JFYWNoKEk9Pntjb25zdCBqPXtmaWx0ZXJDbGF1c2VzOltdfTtJLmVsZW1lbnRzLmZvckVhY2godWU9PntqLmZpbHRlckNsYXVzZXMucHVzaCh0aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHVlKSl9KSwiY2xhdXNlTG9naWMiaW4gSS5lbGVtZW50''@;'; + put 'put ''cyYmKGouY2xhdXNlTG9naWM9SS5jbGF1c2VMb2dpYykseS5maWx0ZXJHcm91cHMucHVzaCh0aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKGopKX0pO2NvbnN0IEM9dGhpcy5zYXNTdG9yZVNlcnZpY2UuY3JlYXRlRmlsdGVyUXVlcnlUYWJsZSh5KTt5aWVsZCB0aGlzLnNhc1N0b3JlU2Vy''@;'; + put 'put ''dmljZS5zYXZlUXVlcnkodGhpcy5saWJkcyxDKS50aGVuKEk9Pnt0aGlzLnF1ZXJ5RmlsdGVyPXtpZDpJLnJlc3VsdFswXS5GSUxURVJfUkssdGFibGU6SS5yZXN1bHRbMF0uRklMVEVSX1RBQkxFfSx0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvIix7c2tpcExvY2F0aW9uQ2hhbmdlOiEw''@;'; + put 'put ''fSkudGhlbigoKT0+dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2VkaXRvci8iK3RoaXMucXVlcnlGaWx0ZXIudGFibGUrIi8iK3RoaXMucXVlcnlGaWx0ZXIuaWQpKSx0aGlzLmZpbHRlcj0hMX0pLmNhdGNoKEk9Pnt0aGlzLnN1Ym1pdExvYWRpbmc9ITF9KX19Y2F0Y2goeSl7dGhpcy5x''@;'; + put 'put ''dWVyeUVycj0hMCx0aGlzLnN1Ym1pdExvYWRpbmc9ITEsdGhpcy5xdWVyeUVyck1lc3NhZ2U9eX19KX1vcGVuUWIoKXt0aGlzLmxpYmRzJiYodGhpcy5maWx0ZXI9ITAsdGhpcy5jZGYuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuc3VibWl0TG9hZGluZz0hMSx0aGlzLnNhc1N0b3JlU2VydmljZS5z''@;'; + put 'put ''ZXRRdWVyeVZhcmlhYmxlcyh0aGlzLmxpYmRzLHRoaXMuY29scykpfWVkaXRUYWJsZShoLHYpe3RoaXMudG9nZ2xlSG90UGx1Z2luKCJjb250ZXh0TWVudSIsITApO2NvbnN0IHk9dGhpcy5ob3RJbnN0YW5jZTtsZXQgQz15LmdldFBsdWdpbigibXVsdGlDb2x1bW5Tb3J0aW5nIiksST1DLmdl''@;'; + put 'put ''dFNvcnRDb25maWcoKSxqPUFycmF5LmlzQXJyYXkoSSk/STpbSV07c2V0VGltZW91dCgoKT0+e2h8fCh0aGlzLmRhdGFTb3VyY2VVbmNoYW5nZWQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2UpLHYmJnRoaXMuZGF0YVNvdXJjZVVuY2hhbmdlZC5wb3AoKSks''@;'; + put 'put ''dGhpcy5ob3RUYWJsZS5yZWFkT25seT0hMSx0aGlzLmhvdFRhYmxlLmRhdGE9dGhpcy5kYXRhU291cmNlLHkudXBkYXRlU2V0dGluZ3Moe3JlYWRPbmx5OnRoaXMuaG90VGFibGUucmVhZE9ubHl9LCExKSx5LnJlbmRlcigpO2ZvcihsZXQgdWUgb2YgailDLnNvcnQodWUpO3RoaXMucmVTZXRD''@;'; + put 'put ''ZWxsVmFsaWRhdGlvblZhbHVlcygpfSwwKX1jb252ZXJ0VG9Db3JyZWN0VHlwZXMoaCl7Zm9yKGxldCB2IG9mIGgpZm9yKGxldCB5IGluIHYpe2xldCBDPXRoaXMuY29scy5maW5kKEk9PkkuTkFNRT09PXkpO0MmJiIiIT09dlt5XSYmIm51bSI9PT1DLlRZUEUmJiFDLkREVFlQRS5pbmNsdWRl''@;'; + put 'put ''cygiVElNRSIpJiYhQy5ERFRZUEUuaW5jbHVkZXMoIkRBVEUiKSYmKHZbeV09cGFyc2VJbnQodlt5XSkpfX1jYW5jZWxFZGl0KCl7dGhpcy50b2dnbGVIb3RQbHVnaW4oImNvbnRleHRNZW51IiwhMSksdGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZT1bXTtjb25zdCBoPXRoaXMuaG90SW5zdGFu''@;'; + put 'put ''Y2U7bGV0IHY9aC5nZXRQbHVnaW4oIm11bHRpQ29sdW1uU29ydGluZyIpLHk9di5nZXRTb3J0Q29uZmlnKCksQz1BcnJheS5pc0FycmF5KHkpP3k6W3ldO3RoaXMuZGF0YVNvdXJjZVVuY2hhbmdlZCYmKHRoaXMuZGF0YVNvdXJjZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMu''@;'; + put 'put ''ZGF0YVNvdXJjZVVuY2hhbmdlZCkpLHRoaXMuaG90VGFibGUuZGF0YT10aGlzLmRhdGFTb3VyY2UsdGhpcy5ob3RUYWJsZS5yZWFkT25seT0hMCxoLnVwZGF0ZVNldHRpbmdzKHtyZWFkT25seTp0aGlzLmhvdFRhYmxlLnJlYWRPbmx5LGRhdGE6dGhpcy5kYXRhU291cmNlfSwhMSksaC52YWxp''@;'; + put 'put ''ZGF0ZVJvd3ModGhpcy5tb2RpZmVkUm93c0luZGV4ZXMpO2ZvcihsZXQgSSBvZiBDKXYuc29ydChJKTt0aGlzLmNoZWNrUm93TGltaXQoKX1ob3RDbGlja2VkKCl7MT09PXRoaXMudGltZXNDbGlja2VkJiZ0aGlzLmhvdFRhYmxlLnJlYWRPbmx5JiZ0aGlzLmVkaXRUYWJsZSgpLDA9PT10aGlz''@;'; + put 'put ''LnRpbWVzQ2xpY2tlZCYmKHRoaXMudGltZXNDbGlja2VkKyssc2V0VGltZW91dCgoKT0+e3RoaXMudGltZXNDbGlja2VkPTB9LDIwMCkpfWNsZWFuRXhjZWVkKCl7dGhpcy5leGNlZWRDZWxscz1bXX1hcHByb3ZlcnNUb2dnbGUoKXt0aGlzLnNob3dBcHByb3ZlcnM9IXRoaXMuc2hvd0FwcHJv''@;'; + put 'put ''dmVyc31hZGRSb3coKXt0aGlzLmFkZGluZ05ld1Jvdz0hMCxzZXRUaW1lb3V0KCgpPT57Y29uc3QgaD10aGlzLmhvdEluc3RhbmNlO2xldCB2PXRoaXMuZGF0YVNvdXJjZS5sZW5ndGg7aC5hbHRlcigiaW5zZXJ0X3JvdyIsdiwxKSxoLnVwZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0YVNv''@;'; + put 'put ''dXJjZX0sITEpLGguc2VsZWN0Q2VsbCh0aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTEsMCksaC5yZW5kZXIoKSx0aGlzLmRhdGFTb3VyY2Vbdl0mJih0aGlzLmRhdGFTb3VyY2Vbdl0ubm9MaW5rT3B0aW9uPSEwKSx0aGlzLmFkZGluZ05ld1Jvdz0hMSx0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25W''@;'; + put 'put ''YWx1ZXMoKX0pfWNhbmNlbFN1Ym1pdCgpe3RoaXMuZGF0YVNvdXJjZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMuZGF0YVNvdXJjZUJlZm9yZVN1Ym1pdCksdGhpcy5kYXRhU291cmNlQmVmb3JlU3VibWl0PVtdLHRoaXMuaG90VGFibGUuZGF0YT10aGlzLmRhdGFTb3VyY2U7''@;'; + put 'put ''Y29uc3QgaD10aGlzLmhvdEluc3RhbmNlO2gudXBkYXRlU2V0dGluZ3Moe2RhdGE6dGhpcy5kYXRhU291cmNlLGNvbEhlYWRlcnM6dGhpcy5oZWFkZXJDb2x1bW5zLGNvbHVtbnM6dGhpcy5jZWxsVmFsaWRhdGlvbixtb2RpZnlDb2xXaWR0aDpmdW5jdGlvbih2LHkpe3JldHVybiAwPT09eT82''@;'; + put 'put ''MDp2PjUwMD81MDA6dn19LCExKSxoLnNlbGVjdENlbGwoMCwwKSxoLnJlbmRlcigpLGgudmFsaWRhdGVSb3dzKHRoaXMubW9kaWZlZFJvd3NJbmRleGVzKSx0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoKX1nZXRSb3dzU3VibWl0dGluZ0NvdW50KCl7dGhpcy5zYXNTZXJ2aWNlLmdl''@;'; + put 'put ''dFNhc2pzQ29uZmlnKCkuZGVidWcmJih0aGlzLmxvZ2dlclNlcnZpY2UubG9nKHRoaXMuZGF0YVNvdXJjZSksdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyh0aGlzLmRhdGFTb3VyY2VVbmNoYW5nZWQpKTtsZXQgaD0wLHY9MCx5PTA7dGhpcy5tb2RpZmVkUm93c0luZGV4ZXM9W10sdGhpcy5kYXRh''@;'; + put 'put ''TW9kaWZpZWQ9W107Zm9yKGxldCBDPTA7Qzx0aGlzLmRhdGFTb3VyY2UubGVuZ3RoO0MrKyl7bGV0IEk9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2VbQ10pO2lmKCJZZXMiPT09SS5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18pdGhpcy5kYXRhTW9k''@;'; + put 'put ''aWZpZWQucHVzaChJKSx2Kys7ZWxzZXtsZXQgaj10aGlzLmRhdGFTb3VyY2VVbmNoYW5nZWQuZmluZCh1ZT0+e2ZvcihsZXQgX2Ugb2YgdGhpcy5oZWFkZXJQa3MpaWYodWVbX2VdIT09SVtfZV0pcmV0dXJuITE7cmV0dXJuITB9KTtqP0pTT04uc3RyaW5naWZ5KEkpIT09SlNPTi5zdHJpbmdp''@;'; + put 'put ''ZnkoaikmJih0aGlzLmRhdGFNb2RpZmllZC5wdXNoKEkpLHRoaXMubW9kaWZlZFJvd3NJbmRleGVzLnB1c2goQyksaCsrKToodGhpcy5kYXRhTW9kaWZpZWQucHVzaChJKSx0aGlzLm1vZGlmZWRSb3dzSW5kZXhlcy5wdXNoKEMpLHkrKyl9fXRoaXMucm93c0NoYW5nZWQ9e3Jvd3NVcGRhdGVk''@;'; + put 'put ''Omgscm93c0RlbGV0ZWQ6dixyb3dzQWRkZWQ6eX19dmFsaWRhdGVQcmltYXJ5S2V5cygpe2NvbnN0IGg9dGhpcy5ob3RJbnN0YW5jZTtsZXQgdj1oLmdldERhdGEoKTt0aGlzLnBrRmllbGRzPVtdO2ZvcihsZXQgaj0wO2o8di5sZW5ndGg7aisrKXtsZXQgdWU9IiI7Zm9yKGxldCBfZT0xO19l''@;'; + put 'put ''PHRoaXMucmVhZE9ubHlGaWVsZHMrMTtfZSsrKXVlPXVlKyJ8Iit2W2pdW19lXTt0aGlzLnBrRmllbGRzLnB1c2godWUpfWxldCBJLHk9W10sQz10aGlzLmRhdGFTb3VyY2UubGVuZ3RoO2ZvcihsZXQgaj0wO2o8dGhpcy5wa0ZpZWxkcy5sZW5ndGg7aisrKWZvcihsZXQgdWU9MDt1ZTx0aGlz''@;'; + put 'put ''LnBrRmllbGRzLmxlbmd0aDt1ZSsrKXRoaXMucGtGaWVsZHNbal09PT10aGlzLnBrRmllbGRzW3VlXSYmdWUhPT1qJiZ5LnB1c2godWUpO2lmKHRoaXMucGtGaWVsZHMubGVuZ3RoPkMpZm9yKGxldCBqPUM7ajx0aGlzLnBrRmllbGRzLmxlbmd0aDtqKyspZm9yKGxldCB1ZT1DO3VlPHRoaXMu''@;'; + put 'put ''cGtGaWVsZHMubGVuZ3RoO3VlKyspajx1ZSYmdGhpcy5wa0ZpZWxkc1tqXT09PXRoaXMucGtGaWVsZHNbdWVdJiZ5LnB1c2godWUpO2ZvcihsZXQgaj0wO2o8eS5sZW5ndGg7aisrKWZvcihsZXQgdWU9MTt1ZTx0aGlzLnJlYWRPbmx5RmllbGRzKzE7dWUrKylJPWguZ2V0Q2VsbE1ldGEoeVtq''@;'; + put 'put ''XSx1ZSksSS52YWxpZD0hMSxJLmR1cEtleT0hMCxoLnJlbmRlcigpO3RoaXMuZHVwbGljYXRlUGtJbmRleGVzPVsuLi5uZXcgU2V0KHkuc29ydCgpKV19cmVTZXRDZWxsVmFsaWRhdGlvblZhbHVlcyhoPSExLHYpe2NvbnN0IHk9dGhpcy5ob3RJbnN0YW5jZTtmb3IobGV0IEMgb2YgdGhpcy5j''@;'; + put 'put ''ZWxsVmFsaWRhdGlvblNvdXJjZSl7Y29uc3QgST1DLnZhbHVlcy5tYXAoaj0+alt0aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzLlJBV19WQUxVRV0pO3kuYmF0Y2goKCk9Pnt2YXIgaix1ZSxfZSxCZTtjb25zdCBOZT15LmdldENlbGxNZXRhKEMucm93LEMuY29sKSxLZT1udWxsPT09KGo9dGhp''@;'; + put 'put ''cy5kY1ZhbGlkYXRvcil8fHZvaWQgMD09PWo/dm9pZCAwOmouZ2V0UnVsZShOZS5kYXRhfHwiIik7bGV0IGR0O0tlJiYoZHQ9bnVsbD09PSh1ZT10aGlzLmRjVmFsaWRhdG9yKXx8dm9pZCAwPT09dWU/dm9pZCAwOnVlLmdldERxRHJvcGRvd25Tb3VyY2UoS2UpKSxkdHx8KGR0PVtdKTtjb25z''@;'; + put 'put ''dCBPdD1bLi4ubmV3IFNldChbLi4uZHQsLi4uSV0pXTtudWxsPT09KF9lPXRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9PT1fZXx8X2UudXBkYXRlUnVsZShDLmNvbCx7c291cmNlOk90fSkseS5zZXRDZWxsTWV0YShDLnJvdyxDLmNvbCwic291cmNlIixPdCksQy52''@;'; + put 'put ''YWx1ZXMubGVuZ3RoPjAmJih5LnNldENlbGxNZXRhKEMucm93LEMuY29sLCJyZW5kZXJlciIsImF1dG9jb21wbGV0ZSIpLHkuc2V0Q2VsbE1ldGEoQy5yb3csQy5jb2wsImVkaXRvciIsImF1dG9jb21wbGV0ZSIpLHkuc2V0Q2VsbE1ldGEoQy5yb3csQy5jb2wsInN0cmljdCIsQy5zdHJpY3Qp''@;'; + put 'put ''LHkuc2V0Q2VsbE1ldGEoQy5yb3csQy5jb2wsImZpbHRlciIsITEpLG51bGw9PT0oQmU9dGhpcy5jdXJyZW50RWRpdFJlY29yZFZhbGlkYXRvcil8fHZvaWQgMD09PUJlfHxCZS51cGRhdGVSdWxlKEMuY29sLHtyZW5kZXJlcjoiYXV0b2NvbXBsZXRlIixlZGl0b3I6ImF1dG9jb21wbGV0ZSIs''@;'; + put 'put ''c3RyaWN0OkMuc3RyaWN0LGZpbHRlcjohMX0pKSx0aGlzLnJlU2V0RXh0ZW5kZWRDZWxsVmFsaWRhdGlvblZhbHVlcyhDLHZvaWQgMCxoLHYpLHkucmVuZGVyKCl9KX19cmVTZXRFeHRlbmRlZENlbGxWYWxpZGF0aW9uVmFsdWVzKGgsdix5PSExLEMpe2lmKGgpe3Z8fCh2PWgucm93KTtjb25z''@;'; + put 'put ''dCBqPXRoaXMuZ2V0RXh0ZW5kZWRWYWx1ZXNCeUNlbGxWYWx1ZShoKTt0aGlzLnNldEV4dGVuZGVkVmFsdWVzVG9DZWxscyhoLHYsaix5LEMpfWVsc2UgZm9yKGxldCBqIG9mIHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2Upe2NvbnN0IHVlPXRoaXMuZ2V0RXh0ZW5kZWRWYWx1ZXNCeUNlbGxW''@;'; + put 'put ''YWx1ZShqKTt0aGlzLnNldEV4dGVuZGVkVmFsdWVzVG9DZWxscyhqLGoucm93LHVlLHksQyl9fXNldEV4dGVuZGVkVmFsdWVzVG9DZWxscyhoLHYseSxDPSExLEkpe3ZhciBqLHVlLF9lLEJlO2NvbnN0IE5lPXRoaXMuaG90SW5zdGFuY2U7bGV0IEtlPVtdO2ZvcihsZXQgZHQgb2YgeSlLZS5p''@;'; + put 'put ''bmRleE9mKGR0LkVYVFJBX0NPTF9OQU1FKTwwJiZLZS5wdXNoKGR0LkVYVFJBX0NPTF9OQU1FKTtmb3IobGV0IGR0IG9mIEtlKXtjb25zdCBPdD15LmZpbHRlcihRcj0+UXIuRVhUUkFfQ09MX05BTUU9PT1kdCk7bGV0ICR0PU90Lm1hcChRcj0+IkMiPT09UXIuRElTUExBWV9UWVBFP1FyLlJB''@;'; + put 'put ''V19WQUxVRV9DSEFSOlFyLlJBV19WQUxVRV9OVU0pO2NvbnN0IGZuPU5lLnByb3BUb0NvbChkdCk7dGhpcy5kaXNhYmxlZEJhc2ljRHluYW1pY0NlbGxWYWxpZGF0aW9uTWFwLmZpbmQoUXI9PlFyLnJvdz09PXYmJlFyLmNvbD09PWZuKXx8dGhpcy5kaXNhYmxlZEJhc2ljRHluYW1pY0NlbGxW''@;'; + put 'put ''YWxpZGF0aW9uTWFwLnB1c2goe3Jvdzp2LGNvbDpmbixhY3RpdmU6ITF9KSxOZS5zZXRDZWxsTWV0YSh2LGZuLCJyZW5kZXJlciIsImF1dG9jb21wbGV0ZSIpLE5lLnNldENlbGxNZXRhKHYsZm4sImVkaXRvciIsImF1dG9jb21wbGV0ZSIpLE5lLnNldENlbGxNZXRhKHYsZm4sInN0cmljdCIs''@;'; + put 'put ''aC5zdHJpY3QpLE5lLnNldENlbGxNZXRhKHYsZm4sImZpbHRlciIsITEpLG51bGw9PT0oaj10aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yKXx8dm9pZCAwPT09anx8ai51cGRhdGVSdWxlKGZuLHtyZW5kZXJlcjoiYXV0b2NvbXBsZXRlIixlZGl0b3I6ImF1dG9jb21wbGV0ZSIsc3Ry''@;'; + put 'put ''aWN0Omguc3RyaWN0LGZpbHRlcjohMX0pO2NvbnN0IGlyPU5lLmdldENlbGxNZXRhKHYsZm4pLG1yPW51bGw9PT0odWU9dGhpcy5kY1ZhbGlkYXRvcil8fHZvaWQgMD09PXVlP3ZvaWQgMDp1ZS5nZXRSdWxlKGlyLmRhdGF8fCIiKTtsZXQgU3I7bXImJihTcj1udWxsPT09KF9lPXRoaXMuZGNW''@;'; + put 'put ''YWxpZGF0b3IpfHx2b2lkIDA9PT1fZT92b2lkIDA6X2UuZ2V0RHFEcm9wZG93blNvdXJjZShtcikpLFNyfHwoU3I9W10pLCJudW1lcmljIj09PShudWxsPT1tcj92b2lkIDA6bXIudHlwZSk/KFNyPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlWYWx1ZXMoU3IsIm51bWJlciIpLCR0''@;'; + put 'put ''PXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlWYWx1ZXMoJHQsIm51bWJlciIpKTooU3I9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyhTciwic3RyaW5nIiksJHQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcygkdCwic3RyaW5nIikpO2Nv''@;'; + put 'put ''bnN0IHdyPVsuLi5uZXcgU2V0KFsuLi5TciwuLi4kdF0pXTtpZihOZS5zZXRDZWxsTWV0YSh2LGZuLCJzb3VyY2UiLHdyKSxudWxsPT09KEJlPXRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9PT1CZXx8QmUudXBkYXRlUnVsZShmbix7c291cmNlOndyfSksQyl7aWYo''@;'; + put 'put ''SSYmSSE9PXYpcmV0dXJuO2NvbnN0IFFyPU90LmZpbmQoeWk9PjE9PT15aS5GT1JDRV9GTEFHKTtRciYmc2V0VGltZW91dCgoKT0+e05lLnNldERhdGFBdENlbGwodixmbiwiQyI9PT1Rci5ESVNQTEFZX1RZUEU/UXIuUkFXX1ZBTFVFX0NIQVI6UXIuUkFXX1ZBTFVFX05VTSwiZm9yY2VfY2Vs''@;'; + put 'put ''bF92YWxpZGF0aW9uX3ZhbHVlIiksdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PT09diYmKHRoaXMuZGF0YVNvdXJjZVt0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXhdW2R0XT0iQyI9PT1Rci5ESVNQTEFZX1RZUEU/UXIuUkFXX1ZBTFVFX0NIQVI6UXIuUkFXX1ZBTFVFX05VTSl9KX19''@;'; + put 'put ''fWdldEV4dGVuZGVkVmFsdWVzQnlDZWxsVmFsdWUoaCx2KXt2YXIgeTtjb25zdCBJPXRoaXMuaG90SW5zdGFuY2UuZ2V0RGF0YUF0Q2VsbCh2fHxoLnJvdyxoLmNvbCksaj0oaC52YWx1ZXMuZmluZChOZT0+TmVbdGhpcy5jZWxsVmFsaWRhdGlvbkZpZWxkcy5SQVdfVkFMVUVdPT09SSl8fFtd''@;'; + put 'put ''KVt0aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzLkRJU1BMQVlfSU5ERVhdLHVlPW51bGw9PT0oeT1oLmV4dGVuZGVkX3ZhbHVlcyl8fHZvaWQgMD09PXk/dm9pZCAwOnkuZmlsdGVyKE5lPT5OZVswXT09PWopLF9lPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5leHRlbmRlZENl''@;'; + put 'put ''bGxWYWxpZGF0aW9uRmllbGRzKSxCZT1bXTtmb3IobGV0IE5lIG9mIHVlfHxbXSl7bGV0IEtlPXt9O2ZvcihsZXQgZHQgb2YgT2JqZWN0LmtleXMoX2UpKUtlW2R0XT1OZVtfZVtkdF1dO0JlLnB1c2goS2UpfXJldHVybiBCZX1jaGVja1NhdmUoKXtpZih0aGlzLmdldFJvd3NTdWJtaXR0aW5n''@;'; + put 'put ''Q291bnQoKSwwPT09dGhpcy5yb3dzQ2hhbmdlZC5yb3dzQWRkZWQmJjA9PT10aGlzLnJvd3NDaGFuZ2VkLnJvd3NVcGRhdGVkJiYwPT09dGhpcy5yb3dzQ2hhbmdlZC5yb3dzRGVsZXRlZClyZXR1cm4gdGhpcy5iYWRFZGl0VGl0bGU9Ik5vIGNoYW5nZXMgdG8gc3VibWl0Iix0aGlzLmJhZEVk''@;'; + put 'put ''aXRDYXVzZT0iUGxlYXNlIG1vZGlmeSBzb21lIHZhbHVlcyBhbmQgdHJ5IGFnYWluLiIsdm9pZCh0aGlzLmJhZEVkaXQ9ITApO2NvbnN0IGg9dGhpcy5ob3RJbnN0YW5jZTt0aGlzLmRhdGFTb3VyY2VCZWZvcmVTdWJtaXQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFT''@;'; + put 'put ''b3VyY2UpO2ZvcihsZXQgeT0wO3k8dGhpcy5kYXRhU291cmNlLmxlbmd0aDt5KyspZGVsZXRlIHRoaXMuZGF0YVNvdXJjZVt5XS5ub0xpbmtPcHRpb247aC51cGRhdGVTZXR0aW5ncyh7ZGF0YTp0aGlzLmRhdGFTb3VyY2UsY29sSGVhZGVyczp0aGlzLmhlYWRlckNvbHVtbnMsY29sdW1uczp0''@;'; + put 'put ''aGlzLmNlbGxWYWxpZGF0aW9uLG1vZGlmeUNvbFdpZHRoOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHk+NTAwPzUwMDp5fX0sITEpLHRoaXMucmVTZXRDZWxsVmFsaWRhdGlvblZhbHVlcygpLGQuY250PTAsZC5ub25Qa0NudD0wO2xldCB2PWguZ2V0RGF0YSgpO2lmKHYubGVuZ3RoPjEmJmguaXNF''@;'; + put 'put ''bXB0eVJvdyh2Lmxlbmd0aC0xKSYmaC5hbHRlcigicmVtb3ZlX3JvdyIsdi5sZW5ndGgtMSksdGhpcy52YWxpZGF0ZVByaW1hcnlLZXlzKCksMCE9PXRoaXMuZHVwbGljYXRlUGtJbmRleGVzLmxlbmd0aClyZXR1cm4gdGhpcy5wa0R1cHM9ITAsdGhpcy5zdWJtaXQ9ITEsdm9pZCB0aGlzLmNh''@;'; + put 'put ''bmNlbFN1Ym1pdCgpO3RoaXMucGtEdXBzPSExLGgudmFsaWRhdGVSb3dzKHRoaXMubW9kaWZlZFJvd3NJbmRleGVzLCgpPT57dGhpcy5jaGVja0ludmFsaWQoKT90aGlzLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJWYWxpZGF0aW9uIGVycm9yIiwiSW52YWxpZCBWYWx1ZXMgYXJlIFBy''@;'; + put 'put ''ZXNlbnQiKToodGhpcy5zdWJtaXQ9ITAsdGhpcy52YWxpZGF0aW9uRG9uZT0xLHNldFRpbWVvdXQoKCk9Pntkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9ybUZpZWxkc184IikuZm9jdXMoKX0pKX0pfXNhdmVUYWJsZShoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9u''@;'; + put 'put ''Kigpe2lmKHRoaXMuaG90SW5zdGFuY2UuZ2V0RGF0YSgpLGg9KGg9aC5maWx0ZXIoQz0+ISF0aGlzLmRhdGFNb2RpZmllZC5maW5kKGo9Pntmb3IobGV0IHVlIG9mIHRoaXMuaGVhZGVyUGtzKWlmKGpbdWVdIT09Q1t1ZV0pcmV0dXJuITE7cmV0dXJuITB9KSkpLm1hcChDPT57bGV0IEk9Qy5f''@;'; + put 'put ''X19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX187cmV0dXJuIGRlbGV0ZSBDLl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyxDLl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXz1JLE9iamVjdC5rZXlzKEMpLm1hcChqPT57dmFyIHVlO2NvbnN0IF9lPW51bGw9PT0odWU9dGhp''@;'; + put 'put ''cy5kY1ZhbGlkYXRvcil8fHZvaWQgMD09PXVlP3ZvaWQgMDp1ZS5nZXRSdWxlKGopOyJudW1lcmljIj09PShudWxsPT1fZT92b2lkIDA6X2UudHlwZSkmJiIuIj09PUNbal0mJihDW2pdPW51bGwpfSksQ30pLHRoaXMubG9nZ2VyU2VydmljZS5sb2coIkRhdGEgc3VibWl0dGVkIixoKSx0aGlz''@;'; + put 'put ''LmNoZWNrSW52YWxpZCgpKXJldHVybiB0aGlzLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJWYWxpZGF0aW9uIGVycm9yIiwiSW52YWxpZCBWYWx1ZXMgYXJlIFByZXNlbnQiKSx0aGlzLmNhbmNlbFN1Ym1pdCgpLHZvaWQodGhpcy5zdWJtaXQ9ITEpO2lmKHRoaXMudmFsaWRhdGlvbkRv''@;'; + put 'put ''bmU9MCx0aGlzLnNhdmVMb2FkaW5nPSEwLGQuY250PDEmJjA9PT10aGlzLmR1cGxpY2F0ZVBrSW5kZXhlcy5sZW5ndGgmJmQubm9uUGtDbnQ8MSl7dGhpcy5zYXZlTG9hZGluZz0hMCx0aGlzLmRpc2FibGVTdWJtaXQ9ITEsdGhpcy5zdWJtaXQ9ITA7bGV0IEM9e0FDVElPTjoiTE9BRCJ9O2lm''@;'; + put 'put ''KHRoaXMubWVzc2FnZT10aGlzLm1lc3NhZ2UucmVwbGFjZSgvXG4vZywiLiAiKSxDLk1FU1NBR0U9dGhpcy5tZXNzYWdlLEMuTElCRFM9dGhpcy5saWJkcyx0aGlzLmNvbHMmJih5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS51cGRhdGVUYWJsZShDLGgsIlNBU0NvbnRyb2xUYWJsZSIsImVk''@;'; + put 'put ''aXRvcnMvc3RhZ2VkYXRhIix0aGlzLiRkYXRhRm9ybWF0cykudGhlbihqPT57aWYodm9pZCAwIT09ai5zYXNwYXJhbXMpcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9zdGFnZS8iK2ouc2FzcGFyYW1zWzBdLkRTSUQpLCEwfSkuY2F0Y2goaj0+KGNvbnNvbGUubG9nKCJlcnIi''@;'; + put 'put ''LGopLGQuY250PTAsZC5ub25Qa0NudD0wLHRoaXMuZGlzYWJsZVN1Ym1pdD0hMCx0aGlzLnN1Ym1pdD0hMSwhMSkpKSlyZXR1cm59ZC5jbnQ+PTE/KHRoaXMucGtOdWxsPSEwLHRoaXMuc3VibWl0PSEwKTp0aGlzLnN1Ym1pdD0hMSxkLm5vblBrQ250Pj0xPyh0aGlzLm5vUGtOdWxsPSEwLHRo''@;'; + put 'put ''aXMuc3VibWl0PSEwKTp0aGlzLnN1Ym1pdD0hMSx0aGlzLmNhbmNlbFN1Ym1pdCgpLGQuY250PTAsZC5ub25Qa0NudD0wLHRoaXMuZGlzYWJsZVN1Ym1pdD0hMH0pfXZhbGlkYXRvclJ1bGVTb3VyY2UoaCl7dmFyIHY7cmV0dXJuIG51bGw9PT0odj10aGlzLmRjVmFsaWRhdG9yKXx8dm9pZCAw''@;'; + put 'put ''PT09dj92b2lkIDA6di5nZXRSdWxlKGgpfWNoZWNrSW52YWxpZCgpe3JldHVybiB0aGlzLmhvdEluc3RhbmNlQ29tcExpc3QuZmlyc3QuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmh0SW52YWxpZCIpLmxlbmd0aD4wfWdvVG9FZGl0b3IoKXt0aGlzLnJvdXRl''@;'; + put 'put ''ci5uYXZpZ2F0ZUJ5VXJsKCIvIil9Y2xvc2VSZWNvcmRFZGl0KGgpe3RoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleD0tMSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkPXZvaWQgMCx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yPXZvaWQgMCwiQUREIj09PXRoaXMucmVjb3JkQWN0aW9u''@;'; + put 'put ''JiYhaCYmKHRoaXMuZGF0YVNvdXJjZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMucHJldkRhdGFTb3VyY2UpLHRoaXMuaG90SW5zdGFuY2UudXBkYXRlU2V0dGluZ3Moe2RhdGE6dGhpcy5kYXRhU291cmNlfSwhMSkpfWNvbmZpcm1SZWNvcmRFZGl0KGg9ITApe2NvbnN0IHY9''@;'; + put 'put ''dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4O2gmJih0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg9LTEpLHRoaXMuY29sdW1uSGVhZGVyLm1hcChDPT57dmFyIEksajtjb25zdCB1ZT10aGlzLmN1cnJlbnRFZGl0UmVjb3JkW0NdLF9lPSJudW0iPT09KG51bGw9PT0oaj1udWxsPT09KEk9''@;'; + put 'put ''dGhpcy4kZGF0YUZvcm1hdHMpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLnZhcnNbQ10pfHx2b2lkIDA9PT1qP3ZvaWQgMDpqLnR5cGUpLEJlPSgwLHl3LmlzU3BlY2lhbE1pc3NpbmcpKHVlKTtfZSYmIWlzTmFOKHVlKSYmIUJlJiYodGhpcy5jdXJyZW50RWRpdFJlY29yZFtDXT0xKnVlKX0pLHRo''@;'; + put 'put ''aXMuZGF0YVNvdXJjZVt2XT10aGlzLmN1cnJlbnRFZGl0UmVjb3JkLHRoaXMuaG90VGFibGUuZGF0YVt2XT10aGlzLmN1cnJlbnRFZGl0UmVjb3JkLHRoaXMuaG90SW5zdGFuY2UudXBkYXRlU2V0dGluZ3Moe2RhdGE6dGhpcy5kYXRhU291cmNlfSwhMSksaCYmKHRoaXMuY3VycmVudEVkaXRS''@;'; + put 'put ''ZWNvcmQ9dm9pZCAwKX1vbk5leHRSZWNvcmQoKXt0aGlzLmNvbmZpcm1SZWNvcmRFZGl0KCExKSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg9dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4Pj10aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTE/MDp0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5k''@;'; + put 'put ''ZXgrMSx0aGlzLmVkaXRSZWNvcmQobnVsbCx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXgpfW9uUHJldmlvdXNSZWNvcmQoKXt0aGlzLmNvbmZpcm1SZWNvcmRFZGl0KCExKSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg9dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PD0wP3RoaXMu''@;'; + put 'put ''ZGF0YVNvdXJjZS5sZW5ndGgtMTp0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXgtMSx0aGlzLmVkaXRSZWNvcmQobnVsbCx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXgpfWFkZFJlY29yZEJ1dHRvbkNsaWNrKCl7dGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSZWNvcmQ/dGhpcy5l''@;'; + put 'put ''dmVudFNlcnZpY2Uuc2hvd0RlbW9MaW1pdE1vZGFsKCk6dGhpcy5hZGRFZGl0TmV3UmVjb3JkKCl9YWRkRWRpdE5ld1JlY29yZCgpe3RoaXMuYWRkUmVjb3JkKCksc2V0VGltZW91dCgoKT0+e3RoaXMuZWRpdFJlY29yZChudWxsLHRoaXMuZGF0YVNvdXJjZS5sZW5ndGgtMSwhMCl9LDFlMyl9''@;'; + put 'put ''YWRkUmVjb3JkKCl7dGhpcy5hZGRSb3coKX1lZGl0UmVjb3JkKGgsdix5KXt2YXIgQyxJO2lmKCEodm9pZCAwPT09dnx8djwwfHx0aGlzLnJlc3RyaWN0aW9ucy5yZXN0cmljdEVkaXRSZWNvcmQpKXtpZih0aGlzLnJlY29yZEFjdGlvbj15PyJBREQiOiJFRElUIix0aGlzLmhvdFRhYmxlLnJl''@;'; + put 'put ''YWRPbmx5JiZ0aGlzLmVkaXRUYWJsZSghMSx5KSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kY1ZhbGlkYXRvcikseSl0aGlzLnByZXZEYXRhU291cmNlPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5k''@;'; + put 'put ''YXRhU291cmNlKSx0aGlzLnByZXZEYXRhU291cmNlLnBvcCgpO2Vsc2V7Y29uc3Qgaj10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMuaG90SW5zdGFuY2UuZ2V0Q2VsbE1ldGFBdFJvdyh2KSk7Zm9yKGxldCB1ZSBvZiBqKWlmKHVlKXtjb25zdCBfZT1udWxsPT09KEM9dWUucHJv''@;'; + put 'put ''cCl8fHZvaWQgMD09PUM/dm9pZCAwOkMudG9TdHJpbmcoKTtkZWxldGUgdWUucHJvcCxkZWxldGUgdWUuZGF0YSxudWxsPT09KEk9dGhpcy5jdXJyZW50RWRpdFJlY29yZFZhbGlkYXRvcil8fHZvaWQgMD09PUl8fEkudXBkYXRlUnVsZSh1ZS5jb2wsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNz''@;'; + put 'put ''aWduKHt9LHVlKSx7ZGF0YTpfZX0pKX19dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PXYsdGhpcy5jdXJyZW50RWRpdFJlY29yZD10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMuZGF0YVNvdXJjZVt2XSl9fXRvZ2dsZUhvdFBsdWdpbihoLHYpe2NvbnN0IHk9dGhpcy5ob3RJ''@;'; + put 'put ''bnN0YW5jZTt5LmJhdGNoKCgpPT57bGV0IEM9eS5nZXRQbHVnaW4oaCk7Qz8oc2V0VGltZW91dCgoKT0+e3Y/Qy5lbmFibGVQbHVnaW4oKTpDLmRpc2FibGVQbHVnaW4oKX0sMTAwKSx5LnJlbmRlcigpKTpjb25zb2xlLndhcm4oIlRvZ2dsZSBIb3QgUGx1Z2luIGZhaWxlZCAtIFBsdWdpbiBu''@;'; + put 'put ''YW1lZDogIitoKyIgLSBjb3VsZCBub3QgYmUgZm91bmQuIil9KX1keW5hbWljQ2VsbFZhbGlkYXRpb25EaXNhYmxlZChoLHYpe3JldHVybiEhdGhpcy5kaXNhYmxlZEJhc2ljRHluYW1pY0NlbGxWYWxpZGF0aW9uTWFwLmZpbmQoQz0+Qy5yb3c9PT1oJiZDLmNvbD09PXYmJiFDLmFjdGl2ZSl9''@;'; + put 'put ''ZHluYW1pY0NlbGxWYWxpZGF0aW9uKGgsdil7dmFyIHk7aWYodGhpcy5keW5hbWljQ2VsbFZhbGlkYXRpb25EaXNhYmxlZChoLHYpKXJldHVybjtjb25zdCBDPXRoaXMuaG90SW5zdGFuY2U7aWYoQy5nZXRDZWxsTWV0YShoLHYpLnJlYWRPbmx5KXJldHVybjtjb25zdCBqPUMuZ2V0RGF0YUF0''@;'; + put 'put ''Q2VsbChoLHYpLHVlPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNlW2hdKSxfZT1PYmplY3Qua2V5cyh1ZSlbdl0sQmU9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlbGV0ZUtleXNBbmRIYXNoKHVlLFtfZSwibm9MaW5rT3B0aW9uIl0sITEpLE5lPXRoaXMuY2VsbFZh''@;'; + put 'put ''bGlkYXRpb25Tb3VyY2UuZmluZEluZGV4KEtlPT5LZS5oYXNoPT09QmUpO2lmKE5lPi0xKXtsZXQgS2U9dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZVtOZV0udmFsdWVzLm1hcCgkdD0+JHRbdGhpcy5jZWxsVmFsaWRhdGlvbkZpZWxkcy5SQVdfVkFMVUVdKTtjb25zdCBkdD0oQy5nZXRDZWxs''@;'; + put 'put ''TWV0YShoLHYpLnNvdXJjZXx8W10pLmxlbmd0aDwxLE90PSIgIiE9PWo7Qy5iYXRjaCgoKT0+e3ZhciAkdCxmbixMbixpcjtjb25zdCBtcj1DLmdldENlbGxNZXRhKGgsdiksU3I9bnVsbD09PSgkdD10aGlzLmRjVmFsaWRhdG9yKXx8dm9pZCAwPT09JHQ/dm9pZCAwOiR0LmdldFJ1bGUobXIu''@;'; + put 'put ''ZGF0YXx8IiIpO2xldCB3cjtTciYmKHdyPW51bGw9PT0oZm49dGhpcy5kY1ZhbGlkYXRvcil8fHZvaWQgMD09PWZuP3ZvaWQgMDpmbi5nZXREcURyb3Bkb3duU291cmNlKFNyKSksd3J8fCh3cj1bXSksIm51bWVyaWMiPT09KG51bGw9PVNyP3ZvaWQgMDpTci50eXBlKT8od3I9dGhpcy5oZWxw''@;'; + put 'put ''ZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyh3ciwibnVtYmVyIiksS2U9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyhLZSwibnVtYmVyIikpOih3cj10aGlzLmhlbHBlclNlcnZpY2UuY29udmVydEFycmF5VmFsdWVzKHdyLCJzdHJpbmciKSxLZT10aGlzLmhlbHBl''@;'; + put 'put ''clNlcnZpY2UuY29udmVydEFycmF5VmFsdWVzKEtlLCJzdHJpbmciKSk7Y29uc3QgUXI9Wy4uLm5ldyBTZXQoWy4uLndyLC4uLktlXSldO2lmKEMuc2V0Q2VsbE1ldGEoaCx2LCJzb3VyY2UiLFFyKSxudWxsPT09KExuPXRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9''@;'; + put 'put ''PT1Mbnx8TG4udXBkYXRlUnVsZSh2LHtzb3VyY2U6UXJ9KSx0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlW05lXS52YWx1ZXMubGVuZ3RoPjApe2NvbnN0IHlpPXRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2VbTmVdLnN0cmljdDtDLnNldENlbGxNZXRhKGgsdiwicmVuZGVyZXIiLCJhdXRvY29t''@;'; + put 'put ''cGxldGUiKSxDLnNldENlbGxNZXRhKGgsdiwiZWRpdG9yIiwiYXV0b2NvbXBsZXRlIiksQy5zZXRDZWxsTWV0YShoLHYsInN0cmljdCIseWkpLEMuc2V0Q2VsbE1ldGEoaCx2LCJmaWx0ZXIiLCExKSxudWxsPT09KGlyPXRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9''@;'; + put 'put ''PT1pcnx8aXIudXBkYXRlUnVsZSh2LHtyZW5kZXJlcjoiYXV0b2NvbXBsZXRlIixlZGl0b3I6ImF1dG9jb21wbGV0ZSIsc3RyaWN0OnlpLGZpbHRlcjohMX0pfXRoaXMucmVTZXRFeHRlbmRlZENlbGxWYWxpZGF0aW9uVmFsdWVzKHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2VbTmVdLGgsZHQm''@;'; + put 'put ''Jk90KSxDLnJlbmRlcigpfSl9aWYoTmU8MCl7Y29uc3QgS2U9e1NBU0NvbnRyb2xUYWJsZTpbe2xpYmRzOnRoaXMubGliZHMsdmFyaWFibGVfbm06X2V9XSxzb3VyY2Vfcm93Olt1ZV19LGR0PW51bGw9PT0oeT10aGlzLmRjVmFsaWRhdG9yKXx8dm9pZCAwPT09eT92b2lkIDA6eS5nZXREcURl''@;'; + put 'put ''dGFpbHMoX2UpLmZpbmQoT3Q9PiJTT0ZUU0VMRUNUX0hPT0siPT09T3QuUlVMRV9UWVBFfHwiSEFSRFNFTEVDVF9IT09LIj09PU90LlJVTEVfVFlQRSk7ZHQmJih0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLnB1c2goe3JvdzpoLGNvbDp2LHN0cmljdDoiSEFSRFNFTEVDVF9IT09LIj09PWR0''@;'; + put 'put ''LlJVTEVfVFlQRSx2YWx1ZXM6W10saGFzaDpCZSxjb3VudDp0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLmxlbmd0aCsxfSksQy5zZXRDZWxsTWV0YShoLHYsInJlbmRlcmVyIixINXQpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncy5wdXNoKHYpLEMucmVuZGVyKCksdGhpcy5zYXNT''@;'; + put 'put ''ZXJ2aWNlLnJlcXVlc3QoImVkaXRvcnMvZ2V0ZHluYW1pY2NvbHZhbHMiLEtlLHZvaWQgMCx7c3VwcHJlc3NTdWNjZXNzQWJvcnRNb2RhbDohMCxzdXBwcmVzc0Vycm9yQWJvcnRNb2RhbDohMH0pLnRoZW4oT3Q9PntpZihPdC5keW5hbWljX3ZhbHVlcy5tYXAoZm49PmZuW3RoaXMuY2VsbFZh''@;'; + put 'put ''bGlkYXRpb25GaWVsZHMuUkFXX1ZBTFVFXSkubGVuZ3RoPjApe2NvbnN0IGZuPXRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2UuZmluZEluZGV4KExuPT5Mbi5oYXNoPT09QmUpO2ZuPi0xJiYodGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZVtmbl09T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWdu''@;'; + put 'put ''KHt9LHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2VbZm5dKSx7cm93OmgsY29sOnYsdmFsdWVzOk90LmR5bmFtaWNfdmFsdWVzLGV4dGVuZGVkX3ZhbHVlczpPdC5keW5hbWljX2V4dGVuZGVkX3ZhbHVlc30pKSxDLnNldENlbGxNZXRhKGgsdiwicmVuZGVyZXIiLEVtZSksdGhpcy5jdXJyZW50''@;'; + put 'put ''RWRpdFJlY29yZExvYWRpbmdzLnNwbGljZSh0aGlzLmN1cnJlbnRFZGl0UmVjb3JkTG9hZGluZ3MuaW5kZXhPZih2KSwxKSxDLmRlc2VsZWN0Q2VsbCgpLEMucmVuZGVyKCksQy5iYXRjaCgoKT0+e3NldFRpbWVvdXQoKCk9Pnt0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoITAsaCks''@;'; + put 'put ''Qy5yZW5kZXIoKSxDLnZhbGlkYXRlUm93cyhbaF0pfSwxMDApfSl9aWYoQy5zZXRDZWxsTWV0YShoLHYsInJlbmRlcmVyIixFbWUpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncy5zcGxpY2UodGhpcy5jdXJyZW50RWRpdFJlY29yZExvYWRpbmdzLmluZGV4T2YodiksMSksQy5kZXNl''@;'; + put 'put ''bGVjdENlbGwoKSxDLnJlbmRlcigpLHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2UubGVuZ3RoPnRoaXMudmFsaWRhdGlvblRhYmxlTGltaXQpe2NvbnN0IGZuPXRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2UucmVkdWNlKChpcixtcik9PmlyLmNvdW50PG1yLmNvdW50P2lyOm1yKSxMbj10aGlz''@;'; + put 'put ''LmNlbGxWYWxpZGF0aW9uU291cmNlLmluZGV4T2YoZm4pO3RoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2Uuc3BsaWNlKExuLDEpfX0pLmNhdGNoKE90PT57Y29uc3QgJHQ9dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZS5maW5kSW5kZXgoZm49PmZuLmhhc2g9PT1CZSk7dGhpcy5jZWxsVmFsaWRh''@;'; + put 'put ''dGlvblNvdXJjZS5zcGxpY2UoJHQsMSksQy5iYXRjaCgoKT0+e0Muc2V0Q2VsbE1ldGEoaCx2LCJyZW5kZXJlciIsRjV0KSxDLnJlbmRlcigpfSksdGhpcy5jdXJyZW50RWRpdFJlY29yZExvYWRpbmdzLnNwbGljZSh0aGlzLmN1cnJlbnRFZGl0UmVjb3JkTG9hZGluZ3MuaW5kZXhPZih2KSwx''@;'; + put 'put ''KSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkRXJyb3JzLnB1c2godiksc2V0VGltZW91dCgoKT0+e0Muc2V0Q2VsbE1ldGEoaCx2LCJyZW5kZXJlciIsRW1lKSxDLnJlbmRlcigpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRFcnJvcnMuc3BsaWNlKHRoaXMuY3VycmVudEVkaXRSZWNvcmRFcnJvcnMu''@;'; + put 'put ''aW5kZXhPZih2KSwxKX0sM2UzKSx0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoKSx0aGlzLmxvZ2dlclNlcnZpY2UubG9nKCJnZXRkeW5hbWljY29sdmFscyBlcnJvcjoiLE90KX0pKX19Y2hlY2tFbXB0eVJvd1doZW5GaWx0ZXIoKXt0aGlzLnplcm9GaWx0ZXJSb3dzPSExLHZvaWQg''@;'; + put 'put ''MCE9PXRoaXMuZmlsdGVyX3BrJiYxPT09dGhpcy5ob3RUYWJsZS5kYXRhLmxlbmd0aCYmW251bGwsIiJdLmluY2x1ZGVzKHRoaXMuaG90VGFibGUuZGF0YVswXVt0aGlzLmhlYWRlclBrc1swXV0pJiYodGhpcy56ZXJvRmlsdGVyUm93cz0hMCl9b25SZWNvcmRJbnB1dEZvY3VzKGgpe3RoaXMu''@;'; + put 'put ''ZHluYW1pY0NlbGxWYWxpZGF0aW9uKHRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleCxoLmNvbE5hbWUpfWV4ZWN1dGVEeW5hbWljQ2VsbFZhbGlkYXRpb25JZkFwcGxpY2FibGUoaCx2LHkpe2NvbnN0IEM9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlbGV0ZUtleXNBbmRIYXNoKHRoaXMuZGF0YVNv''@;'; + put 'put ''dXJjZVt5XSxbaCwibm9MaW5rT3B0aW9uIl0pLEk9dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZS5maW5kKGo9PmouaGFzaD09PUMmJnY9PT1qLmNvbCk7aWYoSSYmSS5leHRlbmRlZF92YWx1ZXMmJkkuZXh0ZW5kZWRfdmFsdWVzLmxlbmd0aD4wKXtjb25zdCBqPXRoaXMuZ2V0RXh0ZW5kZWRW''@;'; + put 'put ''YWx1ZXNCeUNlbGxWYWx1ZShJLHkpO3RoaXMuc2V0RXh0ZW5kZWRWYWx1ZXNUb0NlbGxzKEkseSxqLCEwKX19bmdPbkluaXQoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuYXBwU2VydmljZS5ob3RfbGljZW5zZV9rZXkuc3Vic2NyaWJlKHY9Pnt0aGlz''@;'; + put 'put ''LmhvdFRhYmxlLmxpY2Vuc2VLZXk9dn0pLHRoaXMuX3F1ZXJ5PXRoaXMuc2FzU3RvcmVTZXJ2aWNlLnF1ZXJ5LnN1YnNjcmliZSh2PT57dGhpcy53aGVyZVN0cmluZz12LnN0cmluZyx0aGlzLmNsYXVzZXM9di5vYmosdGhpcy5saWJkcz12LmxpYmRzfSk7bGV0IGg9e307dm9pZCAwIT09dGhp''@;'; + put 'put ''cy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMubGliTWVtJiYodGhpcy5saWJkcz10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW0sdGhpcy5maWx0ZXJfcGs9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZmlsdGVySWQsImVkaXQtcmVjb3JkIj09PXRoaXMucm91dGUuc25hcHNob3Qu''@;'; + put 'put ''dXJsWzBdLnBhdGgmJih0aGlzLnJlY29yZEFjdGlvbj12b2lkIDAhPT10aGlzLmZpbHRlcl9waz8iRURJVCI6IkFERCIpLGguTElCRFM9dGhpcy5saWJkcyx2b2lkIDAhPT10aGlzLmZpbHRlcl9wayYmKGguRklMVEVSX1JLPXBhcnNlSW50KHRoaXMuZmlsdGVyX3BrKSksaC5PVVRERVNUPSJX''@;'; + put 'put ''RUIiLHRoaXMubGliZHMmJihuaS5lZGl0b3IubGlicmFyeT10aGlzLmxpYmRzLnNwbGl0KCIuIilbMF0sbmkuZWRpdG9yLnRhYmxlPXRoaXMubGliZHMuc3BsaXQoIi4iKVsxXSkpLHRoaXMubGliZHMmJih0aGlzLmdldGRhdGFFcnJvcj0hMSx5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS5j''@;'; + put 'put ''YWxsU2VydmljZShoLCJTQVNDb250cm9sVGFibGUiLCJlZGl0b3JzL2dldGRhdGEiLHRoaXMubGliZHMpLnRoZW4odj0+e3RoaXMuaW5pdFNldHVwKHYpfSkuY2F0Y2godj0+e3RoaXMuZ2V0ZGF0YUVycm9yPSEwLHRoaXMudGFibGVUcnVlPSEwfSkpfSl9bmdBZnRlclZpZXdJbml0KCl7Y29u''@;'; + put 'put ''c3QgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG90LWRpc3BsYXktbGljZW5zZS1pbmZvIik7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlbW8tYmFubmVyIik/aHx8KHRoaXMuaG90VGFibGUuaGVpZ2h0Kz0zMCk6dGhpcy5ob3RUYWJsZS5oZWlnaHQrPWg/MzU6NjB9aW5pdFNldHVw''@;'; + put 'put ''KGgpe2lmKHRoaXMuaG90SW5zdGFuY2U9dGhpcy5ob3RSZWdpc3RlcmVyLmdldEluc3RhbmNlKCJob3RJbnN0YW5jZSIpLHRoaXMuZ2V0ZGF0YUVycm9yfHwhaHx8IWguZGF0YSlyZXR1cm47dGhpcy5jb2xzPWguZGF0YS5jb2xzO2NvbnN0IHY9dGhpcy5ob3RJbnN0YW5jZSx5PWguZGF0YS5h''@;'; + put 'put ''cHByb3ZlcnM7dGhpcy5jb2xzJiYodGhpcy5oZWFkZXJBcnJheT0oZD0+e2NvbnN0IGc9W107Zm9yKGxldCBoIG9mIGQpIl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIhPT1oLk5BTUUmJmcucHVzaChoLk5BTUUpO3JldHVybiBnfSkodGhpcy5jb2xzKSkseS5mb3JFYWNoKEk9Pnt0''@;'; + put 'put ''aGlzLmFwcHJvdmVycy5wdXNoKEkuUEVSU09OTkFNRSl9KSx0aGlzLnRhYmxlVHJ1ZT0hMCx0aGlzLmxpYmRzPWgubGliZHMsdGhpcy5ob3RUYWJsZS5kYXRhPWguZGF0YS5zYXNkYXRhLHRoaXMuaGVhZGVyQ29sdW1ucz1oLmRhdGEuc2FzcGFyYW1zWzBdLkNPTEhFQURFUlMuc3BsaXQoIiwi''@;'; + put 'put ''KSx0aGlzLmhlYWRlclBrcz1oLmRhdGEuc2FzcGFyYW1zWzBdLlBLLnNwbGl0KCIgIiksdGhpcy5jb2x1bW5MZXZlbFNlY3VyaXR5RmxhZz0hIWguZGF0YS5zYXNwYXJhbXNbMF0uQ0xTX0ZMQUcsdGhpcy5jb2x1bW5MZXZlbFNlY3VyaXR5RmxhZyYmdGhpcy5zZXRSZXN0cmljdGlvbnMoe3Jl''@;'; + put 'put ''c3RyaWN0QWRkUm93OiEwLHJlbW92ZUVkaXRSZWNvcmRCdXR0b246ITAscmVtb3ZlQWRkUmVjb3JkQnV0dG9uOiEwfSksdGhpcy5jaGVja0VtcHR5Um93V2hlbkZpbHRlcigpLC0xIT09dGhpcy5oZWFkZXJDb2x1bW5zLmluZGV4T2YoIl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIp''@;'; + put 'put ''JiYodGhpcy5oZWFkZXJDb2x1bW5zW3RoaXMuaGVhZGVyQ29sdW1ucy5pbmRleE9mKCJfX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18iKV09IkRlbGV0ZT8iKSx0aGlzLmhlYWRlckFycmF5PXRoaXMuaGVhZGVyQ29sdW1ucy5zbGljZSgxKSwiIiE9PWguZGF0YS5zYXNwYXJhbXNbMF0u''@;'; + put 'put ''RFRWQVJTJiYodGhpcy5kYXRlSGVhZGVycz1oLmRhdGEuc2FzcGFyYW1zWzBdLkRUVkFSUy5zcGxpdCgiICIpKSwiIiE9PWguZGF0YS5zYXNwYXJhbXNbMF0uVE1WQVJTJiYodGhpcy50aW1lSGVhZGVycz1oLmRhdGEuc2FzcGFyYW1zWzBdLlRNVkFSUy5zcGxpdCgiICIpKSwiIiE9PWguZGF0''@;'; + put 'put ''YS5zYXNwYXJhbXNbMF0uRFRUTVZBUlMmJih0aGlzLmRhdGVUaW1lSGVhZGVycz1oLmRhdGEuc2FzcGFyYW1zWzBdLkRUVE1WQVJTLnNwbGl0KCIgIikpLGguZGF0YS54bF9ydWxlcy5sZW5ndGg+MCYmKHRoaXMueGxSdWxlcz10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKGguZGF0YS54''@;'; + put 'put ''bF9ydWxlcykpLHRoaXMuZGNWYWxpZGF0b3I9bmV3IEw1dChoLmRhdGEuc2FzcGFyYW1zWzBdLGguZGF0YS4kc2FzZGF0YSx0aGlzLmNvbHMsaC5kYXRhLmRxcnVsZXMsaC5kYXRhLmRxZGF0YSksdGhpcy5jZWxsVmFsaWRhdGlvbj10aGlzLmRjVmFsaWRhdG9yLmdldFJ1bGVzKCksdGhpcy5k''@;'; + put 'put ''YXRhU291cmNlPWguZGF0YS5zYXNkYXRhLHRoaXMuJGRhdGFGb3JtYXRzPWguZGF0YS4kc2FzZGF0YTtmb3IobGV0IEk9MDtJPHRoaXMuaGVhZGVyQ29sdW1ucy5sZW5ndGg7SSsrKXRoaXMuaG90RGF0YVNjaGVtYVt0aGlzLmNlbGxWYWxpZGF0aW9uW0ldLmRhdGFdPU81dCh0aGlzLmNlbGxW''@;'; + put 'put ''YWxpZGF0aW9uW0ldLnR5cGUsdGhpcy5jZWxsVmFsaWRhdGlvbltJXSk7dGhpcy5jaGVja1Jvd0xpbWl0KCksdi51cGRhdGVTZXR0aW5ncyh7ZGF0YTp0aGlzLmRhdGFTb3VyY2UsY29sSGVhZGVyczp0aGlzLmhlYWRlckNvbHVtbnMsY29sdW1uczp0aGlzLmNlbGxWYWxpZGF0aW9uLGhlaWdo''@;'; + put 'put ''dDp0aGlzLmhvdFRhYmxlLmhlaWdodCxzdHJldGNoSDoiYWxsIixyZWFkT25seTp0aGlzLmhvdFRhYmxlLnJlYWRPbmx5LGhpZGRlbkNvbHVtbnM6e2luZGljYXRvcnM6ITAsY29sdW1uczp0aGlzLmRjVmFsaWRhdG9yLmdldEhpZGRlbkNvbHVtbnMoKX0sbW9kaWZ5Q29sV2lkdGg6ZnVuY3Rp''@;'; + put 'put ''b24oSSxqKXtyZXR1cm4gMD09PWo/NjA6ST41MDA/NTAwOkl9LG1hbnVhbENvbHVtbkZyZWV6ZTohMSxtdWx0aUNvbHVtblNvcnRpbmc6ITAsbWFudWFsQ29sdW1uUmVzaXplOiEwLGZpbHRlcnM6ITEsbWFudWFsUm93UmVzaXplOiEwLHZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0OjUwLHJv''@;'; + put 'put ''d0hlYWRlcnM6ST0+IiAiLHJvd0hlYWRlcldpZHRoOjE1LHJvd0hlaWdodHM6MjQsbWF4Um93czp0aGlzLmFwcFNlcnZpY2UuZGVtb0xpbWl0cy5yb3dzX2FsbG93ZWR8fDEvMCxpbnZhbGlkQ2VsbENsYXNzTmFtZToiaHRJbnZhbGlkIixkcm9wZG93bk1lbnU6e2l0ZW1zOnttYWtlX3JlYWRf''@;'; + put 'put ''b25seTp7bmFtZToibWFrZV9yZWFkX29ubHkifSxhbGlnbm1lbnQ6e25hbWU6ImFsaWdubWVudCJ9LHNwMTp7bmFtZToiLS0tLS0tLS0tIn0saW5mbzp7bmFtZToidGVzdCBpbmZvIixyZW5kZXJlcjooSSxqLHVlLF9lLEJlLE5lKT0+e3ZhciBLZSxkdDtjb25zdCBPdD1kb2N1bWVudC5jcmVh''@;'; + put 'put ''dGVFbGVtZW50KCJzcGFuIik7bGV0ICR0LGZuPSJObyBpbmZvIGZvdW5kIjtpZih0aGlzLmhvdEluc3RhbmNlKXtjb25zdCBMbj10aGlzLmhvdEluc3RhbmNlLmdldFNlbGVjdGVkKCl8fFtdLGlyPUxuP0xuWzBdWzFdOi0xLG1yPW51bGw9PT0oS2U9dGhpcy5ob3RJbnN0YW5jZSl8fHZvaWQg''@;'; + put 'put ''MD09PUtlP3ZvaWQgMDpLZS5jb2xUb1Byb3AoaXIpOyR0PW51bGw9PT0oZHQ9dGhpcy4kZGF0YUZvcm1hdHMpfHx2b2lkIDA9PT1kdD92b2lkIDA6ZHQudmFyc1ttcl0sJHQmJihmbj1gTEFCRUw6ICR7bnVsbD09JHQ/dm9pZCAwOiR0LmxhYmVsfTxicj5UWVBFOiAke251bGw9PSR0P3ZvaWQg''@;'; + put 'put ''MDokdC50eXBlfTxicj5MRU5HVEg6ICR7bnVsbD09JHQ/dm9pZCAwOiR0Lmxlbmd0aH08YnI+Rk9STUFUOiAke251bGw9PSR0P3ZvaWQgMDokdC5mb3JtYXR9YCl9cmV0dXJuIE90LmlubmVySFRNTD1mbixPdH19fX0sZGF0YVNjaGVtYTp0aGlzLmhvdERhdGFTY2hlbWEsY29udGV4dE1lbnU6''@;'; + put 'put ''dGhpcy5ob3RUYWJsZS5zZXR0aW5ncy5jb250ZXh0TWVudSxjdXJyZW50SGVhZGVyQ2xhc3NOYW1lOiJjdXN0b21IIixhZnRlckdldENvbEhlYWRlcjooSSxqKT0+e2NvbnN0IHVlPXRoaXMuY29sdW1uSGVhZGVyW0ldLF9lPXVlJiZ0aGlzLmlzQ29sUGsodWUpLEJlPXVlJiZ0aGlzLmlzUmVh''@;'; + put 'put ''ZG9ubHlDb2wodWUpO19lJiZqLmNsYXNzTGlzdC5hZGQoInByaW1hcnlLZXlIZWFkZXJTdHlsZSIpLEJlJiYhX2UmJmouY2xhc3NMaXN0LmFkZCgicmVhZG9ubHlDZWxsIiksMD09PUkmJmouY2xhc3NMaXN0LmFkZCgiZmlyc3RDb2x1bW5IZWFkZXJTdHlsZSIpfSxhZnRlckdldENlbGxNZXRh''@;'; + put 'put ''OihJLGosdWUpPT57aiYmdGhpcy5pc1JlYWRvbmx5Q29sKGopJiYodWUuY2xhc3NOYW1lPSJyZWFkb25seUNlbGwiKX19LCExKSx0aGlzLmhvdFRhYmxlLmhpZGRlbj0hMSx0aGlzLnRvZ2dsZUhvdFBsdWdpbigiY29udGV4dE1lbnUiLCExKSx0aGlzLnF1ZXJ5VGV4dD1oLmRhdGEuc2FzcGFy''@;'; + put 'put ''YW1zWzBdLkZJTFRFUl9URVhULHRoaXMuY29sdW1uSGVhZGVyPWguZGF0YS5zYXNwYXJhbXNbMF0uQ09MSEVBREVSUy5zcGxpdCgiLCIpLHRoaXMuY29sdW1uSGVhZGVyWzBdPSJEZWxldGU/Iix0aGlzLnJlYWRPbmx5RmllbGRzPWguZGF0YS5zYXNwYXJhbXNbMF0uUEtDTlQ7bGV0IEM9ZG9j''@;'; + put 'put ''dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvdEluc3RhbmNlIik7QyYmQy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLEk9Pnt0aGlzLnVwbG9hZFByZXZpZXd8fHRoaXMuaG90Q2xpY2tlZCgpLHNldFRpbWVvdXQoKCk9PntsZXQgaj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZGVidWct''@;'; + put 'put ''c3dpdGNoLWl0ZW0iKXx8dm9pZCAwO2omJmouY2xpY2soKX0sMTAwKX0pLHYuYWRkSG9vaygiYWZ0ZXJTZWxlY3Rpb24iLChJLGosdWUsX2UsQmUsTmUpPT57ST09PXVlJiZqPT09X2UmJiExPT09dGhpcy5ob3RUYWJsZS5yZWFkT25seSYmdGhpcy5keW5hbWljQ2VsbFZhbGlkYXRpb24oSSxq''@;'; + put 'put ''KX0pLHYuYWRkSG9vaygiYmVmb3JlS2V5RG93biIsST0+e2NvbnN0IGo9dGhpcy5ob3RJbnN0YW5jZS5nZXRTZWxlY3RlZCgpLHVlPWomJmpbMF07aWYodWUpe2NvbnN0IF9lPXVlWzBdLE5lPXVlWzFdLEtlPXVlWzNdO2lmKF9lPT09dWVbMl0mJk5lPT09S2Upe2NvbnN0IGR0PXRoaXMuaG90''@;'; + put 'put ''SW5zdGFuY2UuZ2V0Q2VsbE1ldGEoX2UsTmUpO2R0JiYhMT09PWR0LmZpbHRlciYmdGhpcy5ob3RJbnN0YW5jZS5zZXRDZWxsTWV0YShfZSxOZSwiZmlsdGVyIiwhMCl9fX0pLHYuYWRkSG9vaygiYWZ0ZXJDaGFuZ2UiLChJLGopPT57aWYoImVkaXQiPT09ail7Y29uc3QgdWU9dGhpcy5ob3RJ''@;'; + put 'put ''bnN0YW5jZSxfZT1JWzBdWzBdLEJlPUlbMF1bMV0sTmU9dWUucHJvcFRvQ29sKEJlKSxLZT11ZS5nZXRDZWxsTWV0YShfZSxOZSk7S2UmJiExPT09S2UuZmlsdGVyJiZ1ZS5zZXRDZWxsTWV0YShfZSxOZSwiZmlsdGVyIiwhMCksdGhpcy5leGVjdXRlRHluYW1pY0NlbGxWYWxpZGF0aW9uSWZB''@;'; + put 'put ''cHBsaWNhYmxlKEJlLE5lLF9lKX19KSx2LmFkZEhvb2soImFmdGVyUmVuZGVyIixJPT57dGhpcy5ldmVudFNlcnZpY2UuZGlzcGF0Y2hFdmVudCgicmVzaXplIil9KSx2LmFkZEhvb2soImFmdGVyQ3JlYXRlUm93IiwoSSxqKT0+e2xldCB1ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIud3RI''@;'; + put 'put ''b2xkZXIiKTtzZXRUaW1lb3V0KCgpPT57dWUmJih1ZS5zY3JvbGxUb3A9dWUuc2Nyb2xsSGVpZ2h0KX0pfSksdi5hZGRIb29rKCJiZWZvcmVQYXN0ZSIsKEksaik9Pntjb25zdCB1ZT1qWzBdLnN0YXJ0Q29sO0lbMF09SVswXS5tYXAoKF9lLEJlKT0+e3ZhciBOZSxLZTtjb25zdCBPdD0ibnVt''@;'; + put 'put ''Ij09PShudWxsPT09KEtlPW51bGw9PT0oTmU9dGhpcy4kZGF0YUZvcm1hdHMpfHx2b2lkIDA9PT1OZT92b2lkIDA6TmUudmFyc1t0aGlzLmNvbHVtbkhlYWRlclt1ZStCZV1dKXx8dm9pZCAwPT09S2U/dm9pZCAwOktlLnR5cGUpLCR0PSgwLHl3LmlzU3BlY2lhbE1pc3NpbmcpKF9lKTtyZXR1''@;'; + put 'put ''cm4gT3QmJiFpc05hTihfZSkmJiEkdCYmKF9lKj0xKSxfZX0pfSksdi5hZGRIb29rKCJhZnRlclJlbW92ZVJvdyIsKCk9Pnt0aGlzLmNoZWNrUm93TGltaXQoKX0pLHYuYWRkSG9vaygiYWZ0ZXJDcmVhdGVSb3ciLCgpPT57dGhpcy5jaGVja1Jvd0xpbWl0KCl9KSx0aGlzLnVwbG9hZFVybD0i''@;'; + put 'put ''c2VydmljZXMvZWRpdG9ycy9sb2FkZmlsZSIsbnVsbCE9PXRoaXMucmVjb3JkQWN0aW9uJiYoIkFERCI9PT10aGlzLnJlY29yZEFjdGlvbj8odGhpcy5hZGRSZWNvcmQoKSx0aGlzLmVkaXRSZWNvcmQobnVsbCx0aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTEsITApKToxPT09dGhpcy5kYXRhU291''@;'; + put 'put ''cmNlLmxlbmd0aCYmdGhpcy5lZGl0UmVjb3JkKG51bGwsMCkpLGguZGF0YS5xdWVyeS5sZW5ndGg+MCYmKCJob21lIj09PW5pLnJvb3RQYXJhbXx8ImVkaXRvciI9PT1uaS5yb290UGFyYW0pJiYwPT09bmkuZWRpdG9yLmZpbHRlci5jbGF1c2VzLmxlbmd0aCYmKG5pLmVkaXRvci5maWx0ZXIu''@;'; + put 'put ''cXVlcnk9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShoLmRhdGEucXVlcnkpLG5pLmVkaXRvci5maWx0ZXIubGliZHM9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMubGliTWVtLHRoaXMuc2FzU3RvcmVTZXJ2aWNlLmluaXRpYWxpemVHbG9iYWxGaWx0ZXJDbGF1c2UoImVkaXQiLHRo''@;'; + put 'put ''aXMuY29scykpLHYucmVuZGVyKCksc2V0VGltZW91dCgoKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbmZvQmFyIikmJih0aGlzLmhvdFRhYmxlLmhlaWdodC09NDUpLHRoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0RWRpdFJlY29yZCYmKHRoaXMuaG90VGFibGUuaGVpZ2h0Kz0yMCks''@;'; + put 'put ''di51cGRhdGVTZXR0aW5ncyh7aGVpZ2h0OnRoaXMuaG90VGFibGUuaGVpZ2h0fSl9KX19cmV0dXJuIGQuY250PTAsZC5ub25Qa0NudD0wLGQubGFzdENlbGw9MCxkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KFI3KSxYdChtdSksWHQoc2MpLFh0KGtnKSxYdChY''@;'; + put 'put ''YyksWHQoWmwpLFh0KFB1KSxYdChnMiksWHQoZDEpLFh0KG1PKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1lZGl0b3IiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiYodm8obW10LDcpLHZvKHZtdCw1KSx2byhBbXQsNSksdm8oeW10LDUpLHZv''@;'; + put 'put ''KHdtdCw1KSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5odD15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi51cGxvYWRTdGF0ZXJDb21wTGlzdD15KSxIaSh5PSRpKCkpJiYodi5xdWVyeUZpbHRlckNvbXBMaXN0PXkpLEhpKHk9JGkoKSkmJih2LmhvdEluc3RhbmNlQ29tcExpc3Q9eSksSGko''@;'; + put 'put ''eT0kaSgpKSYmKHYuZmlsZVVwbG9hZElucHV0Q29tcExpc3Q9eSl9fSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MTY0LHZhcnM6NjgsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl0sWyJuZzJGaWxlRHJvcCIsIiIsMSwicmVsYXRpdmUiLDMsInVwbG9hZGVyIiwi''@;'; + put 'put ''Y2xyTW9kYWxTaXplIiwiY2xyTW9kYWxTdGF0aWNCYWNrZHJvcCIsImNsck1vZGFsQ2xvc2FibGUiLCJjbHJNb2RhbE9wZW4iLCJmaWxlT3ZlciIsIm9uRmlsZURyb3AiLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbMSwibW9kYWwtdGl0bGUiXSxbMSwibW9kYWwtYm9keSJdLFsxLCJkcm9wLWFy''@;'; + put 'put ''ZWEiXSxbMSwiY2xyLWNvbC1tZC0xMiJdLFsxLCJjbHItcm93IiwiY2FyZC1ibG9jayIsMiwibWFyZ2luLXRvcCIsIjFyZW0iLCJkaXNwbGF5IiwiZmxleCIsImp1c3RpZnktY29udGVudCIsInNwYWNlLWJldHdlZW4iXSxbMSwiY2xyLWNvbC1tZC1hdXRvIl0sWzEsImVuY29kaW5nLWJsb2Nr''@;'; + put 'put ''Il0sWyJjbHJJbmxpbmUiLCIiLDIsIm1hcmdpbi10b3AiLCIwIl0sWyJ0eXBlIiwicmFkaW8iLCJjbHJSYWRpbyIsIiIsInZhbHVlIiwiVVRGLTgiLCJuYW1lIiwiZW5jb2RpbmciLDMsIm5nTW9kZWwiLCJkaXNhYmxlZCIsIm5nTW9kZWxDaGFuZ2UiXSxbInR5cGUiLCJyYWRpbyIsImNsclJh''@;'; + put 'put ''ZGlvIiwiIiwidmFsdWUiLCJXTEFUSU4xIiwibmFtZSIsImVuY29kaW5nIiwzLCJuZ01vZGVsIiwiZGlzYWJsZWQiLCJuZ01vZGVsQ2hhbmdlIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMyBmaWx0ZXJCdG4iLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLWNvbC1tZC0zIGVkaXRCdG4iLDQsIm5n''@;'; + put 'put ''SWYiXSxbInR5cGUiLCJidXR0b24iLCJzdHlsZSIsIm1hcmdpbi1yaWdodDogMCIsImNsYXNzIiwiYnRuIGJ0bi1wcmltYXJ5IiwzLCJkaXNhYmxlZCIsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwic3R5bGUiLCJtYXJnaW4tcmlnaHQ6IDAiLCJjbGFzcyIsImJ0biBidG4t''@;'; + put 'put ''cHJpbWFyeSIsMywiY2xpY2siLDQsIm5nSWYiXSxbImNsYXNzIiwiZXhjZWwtcGFyc2luZyBjbHItY29sLW1kLTEyIiw0LCJuZ0lmIl0sWzEsIm1vZGFsLWZvb3RlciJdLFszLCJjdXJyZW50UmVjb3JkIiwicmVjb3JkQWN0aW9uIiwibGliZHMiLCJxdWVyeUZpbHRlciIsImZpbHRlciIsInN1''@;'; + put 'put ''Ym1pdExvYWRpbmciLCJoZWFkZXJQa3MiLCJjZWxsVmFsaWRhdGlvbiIsImN1cnJlbnRSZWNvcmRJbmRleCIsImN1cnJlbnRSZWNvcmRMb2FkaW5ncyIsImN1cnJlbnRSZWNvcmRFcnJvcnMiLCJjdXJyZW50UmVjb3JkVmFsaWRhdG9yIiwib25SZWNvcmRDaGFuZ2UiLCJvblJlY29yZElucHV0''@;'; + put 'put ''Rm9jdXNlZCIsIm9uUmVjb3JkRWRpdENsb3NlIiwib25OZXh0UmVjb3JkIiwib25QcmV2aW91c1JlY29yZCIsNCwibmdJZiJdLFsiaHQiLCIiXSxbImNsYXNzIiwicHJvZ3Jlc1N0YXRpYyBwcm9ncmVzcyBsb29wIiw0LCJuZ0lmIl0sWyJhcHBEcmFnTmRyb3AiLCIiLDEsImNhcmQiLDIsInBv''@;'; + put 'put ''c2l0aW9uIiwicmVsYXRpdmUiLDMsImZpbGVEcmFnZ2VkT3ZlciJdLFsxLCJjYXJkLWhlYWRlciIsImNsci1yb3ciLCJidXR0b25CYXIiLCJoZWFkZXJCYXIiXSxbMSwiY2xyLWNvbC1tZC00IiwiYmFja0J0biJdLFsxLCJidG4iLCJidG4tc20iLDMsInJvdXRlckxpbmsiXSxbInNoYXBlIiwi''@;'; + put 'put ''Y2FyZXQiLCJkaXIiLCJsZWZ0Iiwic2l6ZSIsIjIwIl0sWzEsImNsci1jb2wtbWQtNCIsMiwiZGlzcGxheSIsImZsZXgiLCJmbGV4LWRpcmVjdGlvbiIsImNvbHVtbiIsImFsaWduLWl0ZW1zIiwiY2VudGVyIl0sWyJzdHlsZSIsInRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDogMHB4''@;'; + put 'put ''IiwiY2xhc3MiLCJlZGl0b3ItdGl0bGUiLDQsIm5nVmFyIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtNCBidG5DdHJsIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMTIgaW5mb0JhciIsNCwibmdJZiJdLFsxLCJjYXJkLWJsb2NrIiwyLCJwYWRkaW5nLWJvdHRvbSIsIjAiLDMsIm5n''@;'; + put 'put ''Q2xhc3MiXSxbImNsYXNzIiwiY2FyZC10ZXh0Iiw0LCJuZ0lmIl0sWzEsImNhcmQtdGV4dCIsImhvdEVkaXRvciJdLFsiaG90SWQiLCJob3RJbnN0YW5jZSIsImlkIiwiaG90VGFibGUiLDEsImVkaXQtaG90IiwzLCJsaWNlbnNlS2V5Il0sWyJob3RJbnN0YW5jZSIsIiJdLFsidHlwZSIsImJ1''@;'; + put 'put ''dHRvbiIsInN0eWxlIiwibWFyZ2luLXRvcDogMnB4IiwiY2xhc3MiLCJidG4gYnRuLXNtIGJ0bi1zdWNjZXNzIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJtb2RhbCIsNCwibmdJZiJdLFszLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbInR5cGUiLCJidXR0''@;'; + put 'put ''b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1wcmltYXJ5IiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl0sWyJzdHlsZSIsImRpc3BsYXk6IGJsb2NrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0s''@;'; + put 'put ''WyJjbGFzcyIsIm1vZGFsIiwic3R5bGUiLCJ6LWluZGV4OiAxMDAwMDAwMCIsNCwibmdJZiJdLFszLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIiwiY2VudGVyIiwyLCJ0ZXh0LWFs''@;'; + put 'put ''aWduIiwiY2VudGVyIiwiY29sb3IiLCIjMzE0MzUxIl0sWzQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWyJ0eXBl''@;'; + put 'put ''IiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1vdXRsaW5lIiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1''@;'; + put 'put ''Y2Nlc3Mtb3V0bGluZSIsMywiY2xpY2siXSxbMSwibW9kYWwtYm9keSIsImQtZmxleCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWzEsIm0tMCJdLFsiZGF0YS1scGlnbm9yZSIsInRydWUiLCJhdXRvY29tcGxldGUiLCJvZmYiLCJpZCIsImZpbGVQYXNzd29yZElucHV0IiwidHlw''@;'; + put 'put ''ZSIsInRleHQiLDEsImNsci1pbnB1dCIsImRpc2FibGUtcGFzc3dvcmQtbWFuYWdlciJdLFsiZmlsZVBhc3N3b3JkSW5wdXQiLCIiXSxbInN0eWxlIiwiY29sb3I6ICNlNzRjM2MiLCJjbGFzcyIsIm0tMCIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRu''@;'; + put 'put ''LXN1Y2Nlc3Mtb3V0bGluZSIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsxLCJjbHItY29sLW1kLTMiLCJmaWx0ZXJCdG4iXSxbMSwiZmlsdGVyQnRuIiwyLCJ3aWR0aCIsIjEwMCUiXSxbImZvciIsImZpbGUtdXBsb2FkIiwxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsInByb2ZpbGUt''@;'; + put 'put ''YnV0dG9ucyIsMiwid2lkdGgiLCIxMDAlIl0sWyJoaWRkZW4iLCIiLCJpZCIsImZpbGUtdXBsb2FkIiwidHlwZSIsImZpbGUiLCJuZzJGaWxlU2VsZWN0IiwiIiwzLCJ1cGxvYWRlciIsImNoYW5nZSJdLFsiZmlsZVVwbG9hZElucHV0IiwiIl0sWzEsImNsci1jb2wtbWQtMyIsImVkaXRCdG4i''@;'; + put 'put ''XSxbMSwiYnRuVmlldyIsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwicHJvZmlsZS1idXR0b25zIiwyLCJ3aWR0aCIsIjEwMCUiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwyLCJtYXJnaW4tcmlnaHQiLCIwIiwzLCJk''@;'; + put 'put ''aXNhYmxlZCIsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsMiwibWFyZ2luLXJpZ2h0IiwiMCIsMywiY2xpY2siXSxbMSwiZXhjZWwtcGFyc2luZyIsImNsci1jb2wtbWQtMTIiXSxbInVwbG9hZFN0YXRlciIsIiJdLFszLCJjdXJyZW50UmVjb3JkIiwi''@;'; + put 'put ''cmVjb3JkQWN0aW9uIiwibGliZHMiLCJxdWVyeUZpbHRlciIsImZpbHRlciIsInN1Ym1pdExvYWRpbmciLCJoZWFkZXJQa3MiLCJjZWxsVmFsaWRhdGlvbiIsImN1cnJlbnRSZWNvcmRJbmRleCIsImN1cnJlbnRSZWNvcmRMb2FkaW5ncyIsImN1cnJlbnRSZWNvcmRFcnJvcnMiLCJjdXJyZW50''@;'; + put 'put ''UmVjb3JkVmFsaWRhdG9yIiwib25SZWNvcmRDaGFuZ2UiLCJvblJlY29yZElucHV0Rm9jdXNlZCIsIm9uUmVjb3JkRWRpdENsb3NlIiwib25OZXh0UmVjb3JkIiwib25QcmV2aW91c1JlY29yZCJdLFsxLCJwcm9ncmVzU3RhdGljIiwicHJvZ3Jlc3MiLCJsb29wIl0sWzEsImVkaXRvci10aXRs''@;'; + put 'put ''ZSIsMiwidGV4dC1hbGlnbiIsImNlbnRlciIsIm1hcmdpbi10b3AiLCIwcHgiXSxbInNoYXBlIiwiYm9sdCIsInN0eWxlIiwiY29sb3I6ICNmMWM0MGYiLDQsIm5nSWYiXSxbMiwibWFyZ2luLXJpZ2h0IiwiMTBweCIsMywicm91dGVyTGluayJdLFsic2hhcGUiLCJib2x0IiwyLCJjb2xvciIs''@;'; + put 'put ''IiNmMWM0MGYiXSxbMSwiY2xyLWNvbC1tZC00IiwiYnRuQ3RybCJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuVmlldyIsImJ0biIsImJ0bi1zbSIsImJ0bi1pY29uIiwiYnRuLWJsb2NrIiwzLCJjbGljayJdLFsic2hhcGUiLCJmaWx0ZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0''@;'; + put 'put ''bi1zbSIsImJ0bi1wcmltYXJ5IiwiYnRuLWJsb2NrIiwzLCJjbGljayJdLFsic2hhcGUiLCJub3RlIl0sWyJ0eXBlIiwiYnV0dG9uIiwic3R5bGUiLCJtYXJnaW4tcmlnaHQ6IDAiLCJjbGFzcyIsImJ0biBidG4tc20gYnRuLXN1Y2Nlc3MgYnRuLWJsb2NrIiwzLCJjbGljayIsNCwibmdJZiJd''@;'; + put 'put ''LFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLCJidG4tYmxvY2siLDIsIm1hcmdpbi1yaWdodCIsIjAiLDMsImNsaWNrIl0sWyJzaGFwZSIsInVwbG9hZCJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWljb24iLCJidG4tb3V0''@;'; + put 'put ''bGluZS1kYW5nZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsInRpbWVzIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJidG4gYnRuLXNtIGJ0bi1zdWNjZXNzIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siLDQsIm5nSWYiXSxbInNoYXBlIiwiY2hlY2siLCJzaXplIiwiMjAiXSxbInR5cGUiLCJi''@;'; + put 'put ''dXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbInNoYXBlIiwicGx1cyIsInNpemUiLCIxNiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWljb24iLCJidG4tb3V0bGluZS1kYW5nZXIiLCJidG4tdXBs''@;'; + put 'put ''b2FkLXByZXZpZXciLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5IGJ0bi11cGxvYWQtcHJldmlldyIsMywiY2xpY2siLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwicHJl''@;'; + put 'put ''dmlldy1zdWJtaXQiLDMsImNsckxvYWRpbmciLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1hcnkiLCJidG4tdXBsb2FkLXByZXZpZXciLDMsImNsaWNrIl0sWzEsImNsci1jb2wtbWQtMTIiLCJpbmZvQmFyIl0sWzEsImNhcmQtdGV4dCJdLFsy''@;'; + put 'put ''LCJoZWlnaHQiLCI3MHZoIiwiZGlzcGxheSIsImZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQiLCJjZW50ZXIiLCJmbGV4LWRpcmVjdGlvbiIsImNvbHVtbiIsImFsaWduLWl0ZW1zIiwiY2VudGVyIl0sWzEsInNwaW5uZXIiXSxbInNoYXBlIiwiZXJyb3Itc3RhbmRhcmQiLDEsImVycm9yLWljb24i''@;'; + put 'put ''XSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwyLCJtYXJnaW4tdG9wIiwiMnB4IiwzLCJjbGljayJdLFsxLCJtb2RhbCJdLFsicm9sZSIsImRpYWxvZyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibW9kYWwtZGlhbG9nIiwibW9kYWwtbGciXSxbMSwi''@;'; + put 'put ''bW9kYWwtY29udGVudCJdLFsxLCJtb2RhbC1oZWFkZXIiXSxbImFyaWEtbGFiZWwiLCJDbG9zZSIsInR5cGUiLCJidXR0b24iLDEsImNsb3NlIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLCJzaGFwZSIsImNsb3NlIl0sWyJjbGFzcyIsImNsci1vZmZzZXQtbWQtMiBjbHItY29sLW1kLTgiLDQs''@;'; + put 'put ''Im5nSWYiXSxbMSwibW9kYWwtZm9vdGVyIiwyLCJqdXN0aWZ5LWNvbnRlbnQiLCJjZW50ZXIiXSxbInR5cGUiLCJzdWJtaXQiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzLW91dGxpbmUiLDIsIndpZHRoIiwiMTUwcHgiLCJtYXJnaW4iLCIwIDAgMCAwIiwzLCJkaXNhYmxlZCIsImNs''@;'; + put 'put ''aWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsMiwid2lkdGgiLCIxNTBweCIsMywiY2xpY2siXSxbMSwiY2xyLW9mZnNldC1tZC0yIiwiY2xyLWNvbC1tZC04Il0sWzEsImZvcm0tZ3JvdXAiXSxbImZvciIsImZvcm1GaWVsZHNfOCJdLFsidHlw''@;'; + put 'put ''ZSIsInRleHQiLCJpZCIsImZvcm1GaWVsZHNfOCIsInJvd3MiLCI1IiwxLCJ3LTEwMCIsMywibmdNb2RlbCIsImRpc2FibGVkIiwidmFsdWUiLCJuZ01vZGVsQ2hhbmdlIl0sWzIsImRpc3BsYXkiLCJibG9jayJdLFsxLCJtb2RhbCIsMiwiei1pbmRleCIsIjEwMDAwMDAwIl0sWyJyb2xlIiwi''@;'; + put 'put ''ZGlhbG9nIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJtb2RhbC1kaWFsb2ciXSxbInF1ZXJ5RmlsdGVyIiwiIl0sWzEsIm0tMCIsMiwiY29sb3IiLCIjZTc0YzNjIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7aWYoMSZoKXtjb25zdCB5PV9pKCk7aXQoMCwiZGl2IiwwKSgxLCJjbHItbW9k''@;'; + put 'put ''YWwiLDEpLFluKCJmaWxlT3ZlciIsZnVuY3Rpb24oSSl7cmV0dXJuIHYuZmlsZU92ZXJCYXNlKEkpfSkoIm9uRmlsZURyb3AiLGZ1bmN0aW9uKEkpe3JldHVybiB2LmdldEZpbGVEZXNjKEksITApfSkoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYuc2hvd1VwbG9h''@;'; + put 'put ''ZE1vZGFsPUl9KSxpdCgyLCJoMyIsMiksVXQoMywiVXBsb2FkIEZpbGUiKSxzdCgpLGl0KDQsImRpdiIsMykoNSwiZGl2Iiw0KSg2LCJzcGFuIiksVXQoNywiRHJvcCBmaWxlIGFueXdoZXJlIHRvIHVwbG9hZCEiKSxzdCgpKCksaXQoOCwiZGl2Iiw1KSg5LCJkaXYiLDYpKDEwLCJkaXYiLDcp''@;'; + put 'put ''KDExLCJkaXYiLDgpKDEyLCJjbHItcmFkaW8tY29udGFpbmVyIiw5KSgxMywiY2xyLXJhZGlvLXdyYXBwZXIiKSgxNCwiaW5wdXQiLDEwKSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYuZW5jb2Rpbmc9SX0pLHN0KCksaXQoMTUsImxhYmVsIiksVXQoMTYsIlVURi04''@;'; + put 'put ''Iiksc3QoKSgpLGl0KDE3LCJjbHItcmFkaW8td3JhcHBlciIpKDE4LCJpbnB1dCIsMTEpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5lbmNvZGluZz1JfSksc3QoKSxpdCgxOSwibGFiZWwiKSxVdCgyMCwiV0xBVElOMSIpLHN0KCkoKSgpKCkoKSxybigyMSxibXQs''@;'; + put 'put ''NiwxLCJkaXYiLDEyKSxybigyMixfbXQsMywxLCJkaXYiLDEzKSxpdCgyMywiZGl2Iiw3KSxybigyNCxDbXQsMiwxLCJidXR0b24iLDE0KSxybigyNSxrbXQsMiwwLCJidXR0b24iLDE1KSxzdCgpLHJuKDI2LFNtdCwzLDAsImRpdiIsMTYpLHN0KCkoKSgpLENyKDI3LCJkaXYiLDE3KSxzdCgp''@;'; + put 'put ''LHJuKDI4LE1tdCwxLDEyLCJhcHAtZWRpdC1yZWNvcmQiLDE4KSxpdCgyOSwiZGl2IixudWxsLDE5KSxybigzMSxFbXQsMiwwLCJkaXYiLDIwKSxpdCgzMiwiZGl2IiwyMSksWW4oImZpbGVEcmFnZ2VkT3ZlciIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vblNob3dVcGxvYWRNb2RhbCgpfSksaXQo''@;'; + put 'put ''MzMsImRpdiIsMjIpKDM0LCJkaXYiLDIzKSgzNSwic3BhbiIsMjQpLENyKDM2LCJjbHItaWNvbiIsMjUpLFV0KDM3LCJCYWNrIHRvIHRhYmxlIHNlbGVjdGlvbiAiKSxzdCgpKCksaXQoMzgsImRpdiIsMjYpLHJuKDM5LExtdCw2LDUsImg0IiwyNyksc3QoKSxybig0MCxObXQsNCwzLCJkaXYi''@;'; + put 'put ''LDI4KSxybig0MSxWbXQsNSwxLCJkaXYiLDI5KSxzdCgpLGl0KDQyLCJkaXYiLDMwKSxybig0Myx6bXQsNCwyLCJkaXYiLDMxKSxpdCg0NCwiZGl2IiwzMiksQ3IoNDUsImhvdC10YWJsZSIsMzMsMzQpLHJuKDQ3LEdtdCwzLDAsImJ1dHRvbiIsMzUpLHJuKDQ4LFltdCwxNSw1LCJkaXYiLDM2''@;'; + put 'put ''KSxpdCg0OSwiY2xyLW1vZGFsIiwzNyksWW4oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYuYmFkRWRpdD1JfSksaXQoNTAsImgzIiwyKSxVdCg1MSksc3QoKSxpdCg1MiwiZGl2IiwzKSg1MywicCIpLFV0KDU0KSxzdCgpKCksaXQoNTUsImRpdiIsMTcpKDU2LCJi''@;'; + put 'put ''dXR0b24iLDM4KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuYmFkRWRpdD0hMX0pLFV0KDU3LCIgT2sgIiksc3QoKSgpKCksaXQoNTgsImNsci1tb2RhbCIsMzcpLFluKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB2LnBrTnVsbD1JfSksaXQoNTksImgz''@;'; + put 'put ''IiwyKSxVdCg2MCwiRXJyb3IiKSxzdCgpLGl0KDYxLCJkaXYiLDMpKDYyLCJwIiksVXQoNjMsIiBOdWxsIHZhbHVlcyBvciBpbmNvcnJlY3QgZGF0YSB0eXBlcyBjYW5ub3QgYmUgc3VibWl0dGVkIGZvciBQcmltYXJ5IEtleSBjb2x1bW5zICIpLHN0KCkoKSxpdCg2NCwiZGl2IiwxNykoNjUs''@;'; + put 'put ''ImJ1dHRvbiIsMzkpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5wa051bGw9ITEsdi5iYWRFZGl0PSExfSksVXQoNjYsIiBPayAiKSxzdCgpKCkoKSxpdCg2NywiY2xyLW1vZGFsIiwzNyksWW4oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYubm9Qa051''@;'; + put 'put ''bGw9SX0pLGl0KDY4LCJoMyIsMiksVXQoNjksIkVycm9yIiksc3QoKSxpdCg3MCwiZGl2IiwzKSg3MSwicCIpLFV0KDcyLCJJbmNvcnJlY3QgZGF0YSB0eXBlcyBpbiBub24tUHJpbWFyeSBLZXkgY29sdW1ucyIpLHN0KCkoKSxpdCg3MywiZGl2IiwxNykoNzQsImJ1dHRvbiIsMzkpLFluKCJj''@;'; + put 'put ''bGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5ub1BrTnVsbD0hMSx2LmJhZEVkaXQ9ITF9KSxVdCg3NSwiIE9rICIpLHN0KCkoKSgpLGl0KDc2LCJjbHItbW9kYWwiLDM3KSxZbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5wa0R1cHM9SX0pLGl0KDc3LCJoMyIs''@;'; + put 'put ''MiksVXQoNzgsIkVycm9yIiksc3QoKSxpdCg3OSwiZGl2IiwzKSg4MCwicCIpLFV0KDgxLCIgRHVwbGljYXRlIHZhbHVlcyBjYW5ub3QgYmUgc3VibWl0dGVkIGZvciBQcmltYXJ5IEtleSBjb2x1bW5zICIpLHN0KCksaXQoODIsInAiKSxVdCg4MywiRHVwbGljYXRlcyBmb3VuZDoiKSxzdCgp''@;'; + put 'put ''LHJuKDg0LFVtdCwzLDQsInNwYW4iLDQwKSxzdCgpLGl0KDg1LCJkaXYiLDE3KSg4NiwiYnV0dG9uIiwzOSksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnBrRHVwcz0hMX0pLFV0KDg3LCIgT2sgIiksc3QoKSgpKCksaXQoODgsImNsci1tb2RhbCIsMzcpLFluKCJjbHJNb2RhbE9w''@;'; + put 'put ''ZW5DaGFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB2LnRvb0xvbmc9SX0pLGl0KDg5LCJoMyIsMiksVXQoOTAsIkVycm9yIiksc3QoKSxpdCg5MSwiZGl2IiwzKSg5MiwicCIpLFV0KDkzLCIgVGhlIGZvbGxvd2luZyBjb2x1bW5zIGhhdmUgdmFsdWVzIHRoYXQgZXhjZWVkIGxlbmd0aCBsaW1p''@;'; + put 'put ''dHM6ICIpLHN0KCkscm4oOTQsUW10LDIsMywicCIsNDEpLHN0KCksaXQoOTUsImRpdiIsMTcpKDk2LCJidXR0b24iLDM5KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYudG9vTG9uZz0hMSx2LmNsZWFuRXhjZWVkKCl9KSxVdCg5NywiIE9rICIpLHN0KCkoKSgpKCkoKSgpKCkoKSxy''@;'; + put 'put ''big5OCxKbXQsMTQsMCwiZGl2Iiw0MiksaXQoOTksImNsci1tb2RhbCIsNDMpLFluKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB2LmZpbHRlcj1JfSksaXQoMTAwLCJoMyIsNDQpLFV0KDEwMSwiIEZpbHRlciBmb3IgdGFibGU6ICIpLGl0KDEwMiwic3BhbiIpLFV0''@;'; + put 'put ''KDEwMyksc3QoKSgpLGl0KDEwNCwiZGl2IiwzKSxybigxMDUsWG10LDIsMCwiYXBwLXF1ZXJ5Iiw0NSksc3QoKSxpdCgxMDYsImRpdiIsMTcpKDEwNywiYnV0dG9uIiw0NiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnJlc2V0RmlsdGVyKCl9KSxVdCgxMDgsIiByZXNldCBmaWx0''@;'; + put 'put ''ZXIgIiksc3QoKSxpdCgxMDksImJ1dHRvbiIsNDcpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5maWx0ZXI9ITF9KSxVdCgxMTAsIiBDYW5jZWwgIiksc3QoKSxpdCgxMTEsImJ1dHRvbiIsNDgpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5zZW5kQ2xhdXNlKCl9KSxV''@;'; + put 'put ''dCgxMTIsIiBPayAiKSxzdCgpKCkoKSxpdCgxMTMsImNsci1tb2RhbCIsMzcpLFluKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB2LnF1ZXJ5RXJyPUl9KSxpdCgxMTQsImgzIiwyKSxVdCgxMTUsIkVycm9yIiksc3QoKSxpdCgxMTYsImRpdiIsMykoMTE3LCJwIiks''@;'; + put 'put ''VXQoMTE4KSxzdCgpKCksaXQoMTE5LCJkaXYiLDE3KSgxMjAsImJ1dHRvbiIsNDkpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5xdWVyeUVycj0hMX0pLFV0KDEyMSwiIENhbmNlbCAiKSxzdCgpLGl0KDEyMiwiYnV0dG9uIiwzOSksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biB2LnF1ZXJ5RXJyPSExfSksVXQoMTIzLCIgT2sgIiksc3QoKSgpKCksaXQoMTI0LCJjbHItbW9kYWwiLDQzKSxZbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5kaXNjYXJkU291cmNlRmlsZT1JfSksaXQoMTI1LCJoMyIsNDQpLFV0KDEyNiwiIFdhcm5pbmcg''@;'; + put 'put ''Iiksc3QoKSxpdCgxMjcsImRpdiIsMyksVXQoMTI4LCIgVGhpcyBhY3Rpb24gd2lsbCBkaXNjYXJkIHRoZSBzb3VyY2UgZmlsZSBhbmQgaXQncyBsb2FkZWQgZGF0YSAiKSxpdCgxMjksImIiKSxVdCgxMzApLHN0KCksVXQoMTMxLCIgRG8geW91IHdpc2ggdG8gcHJvY2VlZD8gIiksc3QoKSxp''@;'; + put 'put ''dCgxMzIsImRpdiIsMTcpKDEzMywiYnV0dG9uIiw0NyksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmRpc2NhcmRTb3VyY2VGaWxlPSExfSksVXQoMTM0LCIgQ2FuY2VsICIpLHN0KCksaXQoMTM1LCJidXR0b24iLDUwKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZGlz''@;'; + put 'put ''Y2FyZFNvdXJjZUZpbGU9ITEsdi5kaXNjYXJkUGVuZGluZ0V4Y2VsKCEwKX0pLFV0KDEzNiwiIE9rICIpLHN0KCkoKSgpLGl0KDEzNywiY2xyLW1vZGFsIiw0MyksWW4oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYuZmlsZVBhc3N3b3JkTW9kYWw9SX0pLGl0KDEz''@;'; + put 'put ''OCwiaDMiLDQ0KSxVdCgxMzksIiBQYXNzd29yZCBQcm90ZWN0ZWQgRmlsZSAiKSxzdCgpLGl0KDE0MCwiZGl2Iiw1MSkoMTQxLCJwIiw1MiksVXQoMTQyLCJQbGVhc2UgZW50ZXIgcGFzc3dvcmQ6Iiksc3QoKSxDcigxNDMsImlucHV0Iiw1Myw1NCksc3QoKSxpdCgxNDUsImRpdiIsMTcpLHJu''@;'; + put 'put ''KDE0NixLbXQsMiwwLCJwIiw1NSksaXQoMTQ3LCJidXR0b24iLDQ3KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZmlsZVBhc3N3b3JkTW9kYWw9ITEsdi5maWxlUGFzc3dvcmRTdWJqZWN0Lm5leHQodm9pZCAwKX0pLFV0KDE0OCwiIENhbmNlbCB1cGxvYWQgIiksc3QoKSxpdCgx''@;'; + put 'put ''NDksImJ1dHRvbiIsNTYpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydCh5KTtjb25zdCBJPXlhKDE0NCk7cmV0dXJuIHYuZmlsZVBhc3N3b3JkTW9kYWw9ITEsYSh2LmZpbGVQYXNzd29yZFN1YmplY3QubmV4dChJLnZhbHVlKSl9KSxVdCgxNTAsIiBVbmxvY2sgIiksc3QoKSgpKCksaXQoMTUx''@;'; + put 'put ''LCJjbHItbW9kYWwiLDQzKSxZbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5tYW51YWxGaWxlRWRpdE1vZGFsPUl9KSxpdCgxNTIsImgzIiw0NCksVXQoMTUzLCIgV2FybmluZyAiKSxzdCgpLGl0KDE1NCwiZGl2IiwzKSxVdCgxNTUsIiBNYW51YWxseSBlZGl0''@;'; + put 'put ''aW5nIHRoaXMgZGF0YSB3aWxsIG1lYW4gdGhlIHNvdXJjZSBmaWxlICIpLGl0KDE1NiwiYiIpLFV0KDE1Nyksc3QoKSxVdCgxNTgsIiB3aWxsIGJlIGRpc2NhcmRlZC4gRG8geW91IHdpc2ggdG8gcHJvY2VlZD8gIiksc3QoKSxpdCgxNTksImRpdiIsMTcpKDE2MCwiYnV0dG9uIiw0NyksWW4o''@;'; + put 'put ''ImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2Lm1hbnVhbEZpbGVFZGl0TW9kYWw9ITF9KSxVdCgxNjEsIiBDYW5jZWwgIiksc3QoKSxpdCgxNjIsImJ1dHRvbiIsNTApLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5tYW51YWxGaWxlRWRpdE1vZGFsPSExLHYucHJldmlld1RhYmxl''@;'; + put 'put ''RWRpdENvbmZpcm0oKX0pLFV0KDE2MywiIE9rICIpLHN0KCkoKSgpfWlmKDImaCl7Y29uc3QgeT15YSgxNDQpO3V0KDEpLFR0KCJ1cGxvYWRlciIsdi51cGxvYWRlcikoImNsck1vZGFsU2l6ZSIsInhsIikoImNsck1vZGFsU3RhdGljQmFja2Ryb3AiLCExKSgiY2xyTW9kYWxDbG9zYWJsZSIs''@;'; + put 'put ''IlZhbGlkYXRpbmctRFEiPT09di5leGNlbFVwbG9hZFN0YXRlKSgiY2xyTW9kYWxPcGVuIix2LnNob3dVcGxvYWRNb2RhbCksdXQoMTMpLFR0KCJuZ01vZGVsIix2LmVuY29kaW5nKSgiZGlzYWJsZWQiLCIiIT12LmZpbGVuYW1lKSx1dCg0KSxUdCgibmdNb2RlbCIsdi5lbmNvZGluZykoImRp''@;'; + put 'put ''c2FibGVkIiwiIiE9di5maWxlbmFtZSksdXQoMyksVHQoIm5nSWYiLCF2LmV4Y2VsRmlsZVBhcnNpbmcmJiF2LnVwbG9hZExvYWRpbmcpLHV0KDEpLFR0KCJuZ0lmIiwhdi5leGNlbEZpbGVQYXJzaW5nJiYhdi51cGxvYWRMb2FkaW5nKSx1dCgyKSxUdCgibmdJZiIsIlZhbGlkYXRpbmciIT09''@;'; + put 'put ''di5leGNlbFVwbG9hZFN0YXRlKSx1dCgxKSxUdCgibmdJZiIsIlZhbGlkYXRpbmctRFEiPT09di5leGNlbFVwbG9hZFN0YXRlKSx1dCgxKSxUdCgibmdJZiIsdi5leGNlbEZpbGVQYXJzaW5nKSx1dCgyKSxUdCgibmdJZiIsdi5jdXJyZW50RWRpdFJlY29yZEluZGV4Pi0xKSx1dCgzKSxUdCgi''@;'; + put 'put ''bmdJZiIsIXYudmFsaWRhdGlvbkRvbmUmJnYuc3VibWl0KSx1dCgxKSxSMygibWluLWhlaWdodCIsIm5vbi1jb21tZXJjaWFsLWFuZC1ldmFsdWF0aW9uIiE9PXYuaG90VGFibGUubGljZW5zZUtleT8iY2FsYygxMDB2aCAtIDE1NXB4KSI6ImNhbGMoMTAwdmggLSAxNjBweCkiKSx1dCgzKSxU''@;'; + put 'put ''dCgicm91dGVyTGluayIsTnMoNjAsJG10KSksdXQoNCksVHQoIm5nVmFyIixaMyg2MSxxbXQsKG51bGw9PXYubGliZHM/bnVsbDp2LmxpYmRzLnNwbGl0KCIuIikpWzBdLChudWxsPT12LmxpYmRzP251bGw6di5saWJkcy5zcGxpdCgiLiIpKVsxXSkpLHV0KDEpLFR0KCJuZ0lmIix2LnRhYmxl''@;'; + put 'put ''VHJ1ZSksdXQoMSksVHQoIm5nSWYiLCFOcyg2NCxFTGUpLmluY2x1ZGVzKHYucXVlcnlUZXh0KSksdXQoMSksVHQoIm5nQ2xhc3MiLFpkKDY2LGU3dCwhTnMoNjUsRUxlKS5pbmNsdWRlcyh2LnF1ZXJ5VGV4dCkpKSx1dCgxKSxUdCgibmdJZiIsIXYudGFibGVUcnVlKSx1dCgyKSxGaSgiaGlk''@;'; + put 'put ''ZGVuIix2LmhvdFRhYmxlLmhpZGRlbiksVHQoImxpY2Vuc2VLZXkiLHYuaG90VGFibGUubGljZW5zZUtleSksdXQoMiksVHQoIm5nSWYiLHYudGFibGVUcnVlJiYhdi5yZXN0cmljdGlvbnMucmVtb3ZlQWRkUmVjb3JkQnV0dG9uKSx1dCgxKSxUdCgibmdJZiIsdi5zdWJtaXQpLHV0KDEpLFR0''@;'; + put 'put ''KCJjbHJNb2RhbE9wZW4iLHYuYmFkRWRpdCksdXQoMiksR2kodi5iYWRFZGl0VGl0bGV8fCJFcnJvciIpLHV0KDMpLEdpKHYuYmFkRWRpdENhdXNlKSx1dCg0KSxUdCgiY2xyTW9kYWxPcGVuIix2LnBrTnVsbCksdXQoOSksVHQoImNsck1vZGFsT3BlbiIsdi5ub1BrTnVsbCksdXQoOSksVHQo''@;'; + put 'put ''ImNsck1vZGFsT3BlbiIsdi5wa0R1cHMpLHV0KDgpLFR0KCJuZ0Zvck9mIix2LmR1cGxpY2F0ZVBrSW5kZXhlcyksdXQoNCksVHQoImNsck1vZGFsT3BlbiIsdi50b29Mb25nKSx1dCg2KSxUdCgibmdGb3JPZiIsdi5leGNlZWRDZWxscyksdXQoNCksVHQoIm5nSWYiLHYubnVsbFZhcmlhYmxl''@;'; + put 'put ''cyksdXQoMSksVHQoImNsck1vZGFsT3BlbiIsdi5maWx0ZXIpKCJjbHJNb2RhbFNpemUiLCJ4bCIpKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksdXQoNCksSmkoIiAiLHYubGliZHMsIiAiKSx1dCgyKSxUdCgibmdJZiIsdi5maWx0ZXIpLHV0KDYpLFR0KCJjbHJMb2FkaW5nIix2LnN1Ym1pdExv''@;'; + put 'put ''YWRpbmcpLHV0KDIpLFR0KCJjbHJNb2RhbE9wZW4iLHYucXVlcnlFcnIpLHV0KDUpLEdpKHYucXVlcnlFcnJNZXNzYWdlKSx1dCg2KSxUdCgiY2xyTW9kYWxPcGVuIix2LmRpc2NhcmRTb3VyY2VGaWxlKSgiY2xyTW9kYWxTaXplIiwieGwiKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLHV0KDYp''@;'; + put 'put ''LEdpKHYuZmlsZW5hbWUpLHV0KDcpLFR0KCJjbHJNb2RhbE9wZW4iLHYuZmlsZVBhc3N3b3JkTW9kYWwpKCJjbHJNb2RhbFNpemUiLCJtZCIpKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksdXQoOSksVHQoIm5nSWYiLHYuZmlsZVVubG9ja0Vycm9yKSx1dCgzKSxUdCgiZGlzYWJsZWQiLHkudmFs''@;'; + put 'put ''dWUubGVuZ3RoPDEpLHV0KDIpLFR0KCJjbHJNb2RhbE9wZW4iLHYubWFudWFsRmlsZUVkaXRNb2RhbCkoImNsck1vZGFsU2l6ZSIsInhsIikoImNsck1vZGFsQ2xvc2FibGUiLCExKSx1dCg2KSxHaSh2LmZpbGVuYW1lKX19LGRlcGVuZGVuY2llczpbbGMsWnMsVm8sbTEscWgsRXMseHMsWTYs''@;'; + put 'put ''djcsd2wsZjQsaDQsZ28sdyxvdCxJZmUsZk9lLEdBZSxDNXQsXzV0LEF0ZSxrTGUsX0xlLEJndCxobXQscG10LGdtdCxNTGVdLHN0eWxlczpbIi5idXR0b25CYXJbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MnB4IDEwcHg7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRl''@;'; + put 'put ''fS50ZXN0UmVkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgyNTUsMCwwLC44KSFpbXBvcnRhbnR9aG90LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmZpcnN0Q29sdW1uSGVhZGVyU3R5bGUgYnV0dG9uLmNoYW5nZVR5cGV7ZGlzcGxheTpub25l''@;'; + put 'put ''fWhvdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICAgIC5oYW5kc29udGFibGUgdGJvZHkgdGguaHRfX2hpZ2hsaWdodC5wcmltYXJ5S2V5SGVhZGVyU3R5bGUsIGhvdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICAgIC5oYW5kc29udGFibGUgdGhlYWQgdGguaHRfX2hpZ2hsaWdodC5w''@;'; + put 'put ''cmltYXJ5S2V5SGVhZGVyU3R5bGV7YmFja2dyb3VuZDpyZ2JhKDQ4LDEwNywwLC42OTAxOTYwNzg0KX1ob3QtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgICAucHJpbWFyeUtleUhlYWRlclN0eWxle2JhY2tncm91bmQ6cmdiYSg0OCwxMDcsMCwuNDMxMzcyNTQ5KX1ob3QtdGFibGVbX25n''@;'; + put 'put ''Y29udGVudC0lQ09NUCVdICAgICB0aC5yZWFkb25seUNlbGwgZGl2e29wYWNpdHk6LjR9aG90LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgdGQucmVhZG9ubHlDZWxse29wYWNpdHk6LjV9LmluZm9CYXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MTRweDtiYWNrZ3JvdW5k''@;'; + put 'put ''OiM0OTU5Njc7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjNweDtmb250LXNpemU6MTZweDtoZWlnaHQ6MzBweDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXB9LmluZm9CYXJbX25nY29udGVudC0lQ09NUCVdICAg''@;'; + put 'put ''c3Bhbltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6ODAlfS5pbmZvQmFyW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlcntoZWlnaHQ6dW5zZXQ7d2hpdGUtc3BhY2U6bm9ybWFsfS5pbmZvQmFyW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlciAgIHNwYW5bX25nY29udGVudC0lQ09NUCVde3dpZHRo''@;'; + put 'put ''OnVuc2V0fS5wa0hlYWRlcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojNjg3NjgyO2NvbG9yOiNmZmY7bWFyZ2luOi0xcHh9LmhlYWRlckJhcltfbmdjb250ZW50LSVDT01QJV17YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6OTAwO2JhY2tncm91''@;'; + put 'put ''bmQ6I2ZmZmZmZjttYXJnaW4tbGVmdDotMXB4O2JhY2tncm91bmQ6I2Y1ZjZmZTt3aWR0aDpjYWxjKDEwMCUgKyAtMHB4KTt0b3A6LTQycHh9LmVycm9yLWljb25bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7Y29sb3I6cmVkfS5oZWFkZXJCYXJGaWx0ZXJbX25n''@;'; + put 'put ''Y29udGVudC0lQ09NUCVde21hcmdpbi10b3A6NTBweH0uYnRuQ3RybFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2FyZC1oZWFkZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHRyYW5zcGFyZW50''@;'; + put 'put ''fS5oaWRkZW5bX25nY29udGVudC0lQ09NUCVde3Zpc2liaWxpdHk6aGlkZGVufS5teS1kcm9wLXpvbmVbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjpzb2xpZCAxcHggbGlnaHRncmF5O2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kOndoaXRlc21va2U7Ym94LXNoYWRvdzppbnNldCAw''@;'; + put 'put ''IDAgNHB4IDJweCAjYTdhNWE1MmI7aGVpZ2h0OjUwdmh9Lm52LWZpbGUtb3Zlcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOnNvbGlkIDJweCBncmVlbn0uZmlsZS1kcm9wLXRleHRbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246Y2VudGVyfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgt''@;'; + put 'put ''d2lkdGg6IDc2OHB4KXsucHJvZ3Jlc1N0YXRpY1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDo5cHghaW1wb3J0YW50fS5wcm9ncmVzc1tfbmdjb250ZW50LSVDT01QJV0sIC5wcm9ncmVzcy1zdGF0aWNbX25nY29udGVudC0lQ09NUCVde3dpZHRoOmNhbGMoMTAwJSAtIDE0cHgpfS5o''@;'; + put 'put ''b3RFZGl0b3JbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6NDBweH0uYnV0dG9uQmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5iYWNrQnRuW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Om5vbmV9LmNhcmQtYmxvY2tbX25nY29udGVudC0lQ09NUCVdLCAuY2FyZC1mb290ZXJbX25n''@;'; + put 'put ''Y29udGVudC0lQ09NUCVde3BhZGRpbmc6MTBweCAwIDB9LmNhcmRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6NTBweH0uaG90TG9hZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjEwcmVtfS5idG5DdHJsW19uZ2NvbnRlbnQtJUNPTVAlXXtqdXN0aWZ5LWNvbnRlbnQ6''@;'; + put 'put ''Y2VudGVyfS5oZWFkZXJCYXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1sZWZ0OjA7d2lkdGg6Y2FsYygxMDAlIC0gMTZweCk7dG9wOjYwcHh9fS5ob3RFZGl0b3JbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlfS5leGNlbC1wYXJzaW5nW19uZ2NvbnRlbnQtJUNPTVAl''@;'; + put 'put ''XXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZX0uZXhjZWwtcGFyc2luZ1tfbmdjb250ZW50LSVDT01QJV0gICAuZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjA7cG9zaXRpb246YWJzb2x1dGU7''@;'; + put 'put ''dG9wOi00NXB4fS5lZGl0LXJlY29yZC1zcGlubmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC42KTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MHB4O2Jv''@;'; + put 'put ''dHRvbTowcHg7d2lkdGg6MTAwJTt6LWluZGV4OjUwMH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCl7LnByb2dyZXNTdGF0aWNbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MzJweCFpbXBvcnRhbnR9LmJ1dHRvbkJhcltfbmdjb250ZW50LSVDT01QJV17cGFkZGlu''@;'; + put 'put ''ZzoxM3B4IDAgMTRweDthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2JhY2tncm91bmQ6I2ZmZmZmZjttYXJnaW4tbGVmdDotMjVweDtiYWNrZ3JvdW5kOiNmNWY2ZmV9LmNhcmRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6NTBweH0uaG90''@;'; + put 'put ''RWRpdG9yW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjQwcHh9LmJ1dHRvbkJhcltfbmdjb250ZW50LSVDT01QJV0gICAuYmFja0J0bltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lfS5idXR0b25CYXJbX25nY29udGVudC0lQ09NUCVdICAgLmJ0bi5idG4tc21bX25nY29u''@;'; + put 'put ''dGVudC0lQ09NUCVde3BhZGRpbmc6MCAxMHB4IDVweH0uY2FyZC1ibG9ja1tfbmdjb250ZW50LSVDT01QJV0sIC5jYXJkLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxMHB4IDAgMH19LmNvbnRlbnQtYXJlYVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouOHJlbSFpbXBv''@;'; + put 'put ''cnRhbnR9LmRyb3AtYXJlYVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO2JvdHRvbTowO3JpZ2h0OjA7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjFweDtib3JkZXI6MnB4IGRhc2hlZCAjZmZmO3otaW5kZXg6LTF9LmRy''@;'; + put 'put ''b3AtYXJlYVtfbmdjb250ZW50LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MjBweDttYXJnaW4tdG9wOjIwcHg7Y29sb3I6I2ZmZn0iXX0pLGR9KSgpO2NvbnN0IHQ3dD1be3BhdGg6IjpsaWJNZW0iLGNvbXBvbmVudDpWbmV9LHtwYXRoOiI6bGliTWVtLzpm''@;'; + put 'put ''aWx0ZXJJZCIsY29tcG9uZW50OlZuZX0se3BhdGg6ImVkaXQtcmVjb3JkLzpsaWJNZW0iLGNvbXBvbmVudDpWbmV9LHtwYXRoOiJlZGl0LXJlY29yZC86bGliTWVtLzpmaWx0ZXJJZCIsY29tcG9uZW50OlZuZX1dO2xldCBuN3Q9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1''@;'; + put 'put ''bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbYmEsWGguZm9yQ2hpbGQodDd0KSxYaF19KSxkfSkoKTttTGUoKTtsZXQgcjd0PSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlv''@;'; + put 'put ''bihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W2JhLG5kLG43dCxVTCxrNXQsZjZlLmZvclJvb3QoKSxBbWUsdm1lLEhuZV19KSxkfSkoKTtmdW5jdGlvbiBpN3QoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwx''@;'; + put 'put ''Mil9ZnVuY3Rpb24gbzd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiY2xyLWljb24iLDEzKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT1LdCgyKTtyZXR1cm4geS5ncm91cFNlYXJjaD0iIixhKHkuZ3JvdXBMaXN0T25GaWx0ZXIoKSl9KSxzdCgpfX1mdW5j''@;'; + put 'put ''dGlvbiBhN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItdHJlZS1ub2RlIiw2KSgxLCJkaXYiLDcpKDIsImlucHV0Iiw4LDkpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLmdyb3VwU2VhcmNoPXkpfSkoImtleXVwIixmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBydChoKSxhKEt0KCkuZ3JvdXBMaXN0T25GaWx0ZXIoKSl9KSxzdCgpLHJuKDQsaTd0LDEsMCwiY2xyLWljb24iLDEwKSxybig1LG83dCwxLDAsImNsci1pY29uIiwxMSksc3QoKSgpfWlmKDImZCl7Y29uc3QgaD15YSgzKSx2PUt0KCk7dXQoMiksVHQoIm5nTW9kZWwi''@;'; + put 'put ''LHYuZ3JvdXBTZWFyY2gpLHV0KDIpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIGw3dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci10cmVlLW5vZGUiLDE1KSxZbigiY2xpY2siLGZ1bmN0''@;'; + put 'put ''aW9uKCl7cnQoaCk7Y29uc3QgeT1LdCgpLiRpbXBsaWNpdDtyZXR1cm4gYShLdCgpLmdyb3VwT25DbGljayh5KSl9KSxpdCgxLCJwIiwxNiksQ3IoMiwiY2xyLWljb24iLDE3KSxVdCgzKSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPUt0KCkuJGltcGxpY2l0LHY9S3QoKTtGaSgidGFibGUtYWN0''@;'; + put 'put ''aXZlIixoLkdST1VQVVJJPT09di5ncm91cFVyaSksdXQoMyksSmkoIiAiLGguR1JPVVBOQU1FLCIgIil9fWZ1bmN0aW9uIHM3dChkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsbDd0LDQsMywiY2xyLXRyZWUtbm9kZSIsMTQpLEgwKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxU''@;'; + put 'put ''dCgibmdJZiIsIWguaGlkZGVuKX19ZnVuY3Rpb24gdTd0KGQsZyl7MSZkJiYoaXQoMCwiZGl2IiwxOCkoMSwic3BhbiIsMTkpLFV0KDIsIiBMb2FkaW5nLi4uICIpLHN0KCkoKSl9ZnVuY3Rpb24gYzd0KGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2IiwyMSkoMSwiZGl2IiwyMikoMiwidGFibGUi''@;'; + put 'put ''LDI0KSgzLCJ0Ym9keSIpKDQsInRyIikoNSwidGQiLDI1KSg2LCJwIiwyNikoNywiYiIpLFV0KDgpLHN0KCkoKSgpKCksaXQoOSwidHIiKSgxMCwidGQiLDI1KSgxMSwiaSIpLFV0KDEyKSxzdCgpKCkoKSgpKCkoKSgpKSwyJmQpe2NvbnN0IGg9S3QoMik7dXQoOCksR2koaC5ncm91cE5hbWUp''@;'; + put 'put ''LHV0KDQpLEdpKGguZ3JvdXBEZXNjfHwibm8gZGVzY3JpcHRpb24iKX19ZnVuY3Rpb24gZjd0KGQsZyl7MSZkJiYoaXQoMCwiaDUiKSxVdCgxLCJObyBNZW1iZXJzIFByZXNlbnQiKSxzdCgpKX1mdW5jdGlvbiBoN3QoZCxnKXsxJmQmJihGMCgwKSxpdCgxLCJ0ZCIsMzEpKDIsImIiKSxVdCgz''@;'; + put 'put ''LCJOQU1FIiksc3QoKSgpLGl0KDQsInRkIiwzMSkoNSwiYiIpLFV0KDYsIkVNQUlMIiksc3QoKSgpLGl0KDcsInRkIiwzMSkoOCwiYiIpLFV0KDksIkNSRUFURUQiKSxzdCgpKCksaXQoMTAsInRkIiwzMikoMTEsImIiKSxVdCgxMiwiVVBEQVRFRCIpLHN0KCkoKSxIMCgpKX1mdW5jdGlvbiBk''@;'; + put 'put ''N3QoZCxnKXsxJmQmJihGMCgwKSxpdCgxLCJ0ZCIsMzEpKDIsImIiKSxVdCgzLCJJRCIpLHN0KCkoKSxpdCg0LCJ0ZCIsMzEpKDUsImIiKSxVdCg2LCJESVNQTEFZIE5BTUUiKSxzdCgpKCksaXQoNywidGQiLDMxKSg4LCJiIiksVXQoOSwiVVNFUiBOQU1FIiksc3QoKSgpLEgwKCkpfWZ1bmN0''@;'; + put 'put ''aW9uIHA3dChkLGcpe2lmKDEmZCYmKEYwKDApLGl0KDEsInRkIiwzMiksVXQoMiksc3QoKSxpdCgzLCJ0ZCIsMzIpLFV0KDQpLHN0KCksaXQoNSwidGQiLDMyKSxVdCg2KSxzdCgpLGl0KDcsInRkIiwzMiksVXQoOCksc3QoKSxIMCgpKSwyJmQpe2NvbnN0IGg9S3QoKS4kaW1wbGljaXQ7dXQo''@;'; + put 'put ''MiksR2koaC5NRU1CRVJOQU1FKSx1dCgyKSxHaShoLkVNQUlMKSx1dCgyKSxHaShoLk1FTUJFUkNSRUFURUQpLHV0KDIpLEdpKGguTUVNQkVSVVBEQVRFRCl9fWZ1bmN0aW9uIGc3dChkLGcpe2lmKDEmZCYmKEYwKDApLGl0KDEsInRkIiwzMiksVXQoMiksc3QoKSxpdCgzLCJ0ZCIsMzIpLFV0''@;'; + put 'put ''KDQpLHN0KCksaXQoNSwidGQiLDMyKSxVdCg2KSxzdCgpLEgwKCkpLDImZCl7Y29uc3QgaD1LdCgpLiRpbXBsaWNpdDt1dCgyKSxHaShoLklEKSx1dCgyKSxHaShoLkRJU1BMQVlOQU1FKSx1dCgyKSxHaShoLlVTRVJOQU1FKX19ZnVuY3Rpb24gbTd0KGQsZyl7aWYoMSZkJiYoaXQoMCwidHIi''@;'; + put 'put ''LDMzKSxybigxLHA3dCw5LDQsIm5nLWNvbnRhaW5lciIsNSkscm4oMixnN3QsNywzLCJuZy1jb250YWluZXIiLDUpLHN0KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUt0KDQpO1R0KCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi91c2Vycy8iKyhoLlVSSU1FTXx8aC5JRCkpLHV0''@;'; + put 'put ''KDEpLFR0KCJuZ0lmIix2LnNlcnZlclR5cGU9PT12LlNlcnZlclR5cGUuU2FzOSksdXQoMSksVHQoIm5nSWYiLHYuc2VydmVyVHlwZT09PXYuU2VydmVyVHlwZS5TYXNqcyl9fWZ1bmN0aW9uIHY3dChkLGcpe2lmKDEmZCYmKGl0KDAsInRhYmxlIiwyOSkoMSwidGhlYWQiKSgyLCJ0ciIpLHJu''@;'; + put 'put ''KDMsaDd0LDEzLDAsIm5nLWNvbnRhaW5lciIsNSkscm4oNCxkN3QsMTAsMCwibmctY29udGFpbmVyIiw1KSxzdCgpKCksaXQoNSwidGJvZHkiKSxybig2LG03dCwzLDMsInRyIiwzMCksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3QoMyk7dXQoMyksVHQoIm5nSWYiLGguc2VydmVyVHlwZT09PWgu''@;'; + put 'put ''U2VydmVyVHlwZS5TYXM5KSx1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNhc2pzKSx1dCgyKSxUdCgibmdGb3JPZiIsaC5ncm91cE1lbWJlcnMpfX1mdW5jdGlvbiBBN3QoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiKSgxLCJoMyIpLFV0KDIpLHN0KCkscm4o''@;'; + put 'put ''MyxmN3QsMiwwLCJoNSIsNSksaXQoNCwiZGl2IiwyNykscm4oNSx2N3QsNywzLCJ0YWJsZSIsMjgpLHN0KCkoKSksMiZkKXtjb25zdCBoPUt0KDIpO3V0KDIpLEppKCJNRU1CRVJTICgiLGguZ3JvdXBNZW1iZXJDb3VudCwiKSIpLHV0KDEpLFR0KCJuZ0lmIiwwPT1oLmdyb3VwTWVtYmVyQ291''@;'; + put 'put ''bnQpLHV0KDIpLFR0KCJuZ0lmIiwwIT1oLmdyb3VwTWVtYmVyQ291bnQpfX1mdW5jdGlvbiB5N3QoZCxnKXsxJmQmJihpdCgwLCJoNSIpLFV0KDEsIk5vIE1lbWJlcnMgUHJlc2VudCIpLHN0KCkpfWZ1bmN0aW9uIHc3dChkLGcpe2lmKDEmZCYmKGl0KDAsInRyIiwzMykoMSwidGQiLDMyKSxV''@;'; + put 'put ''dCgyKSxzdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgicm91dGVyTGluayIsIi92aWV3L3VzZXJuYXYvdXNlcnMvIitoLk1FTUJFUklEKSx1dCgyKSxHaShoLk1FTUJFUk5BTUUpfX1mdW5jdGlvbiBiN3QoZCxnKXtpZigxJmQmJihpdCgwLCJ0YWJsZSIsMjkpKDEsInRoZWFk''@;'; + put 'put ''IikoMiwidHIiKSgzLCJ0ZCIpKDQsImIiKSxVdCg1KSxzdCgpKCkoKSgpLGl0KDYsInRib2R5Iikscm4oNyx3N3QsMywyLCJ0ciIsMzApLHN0KCkoKSksMiZkKXtjb25zdCBoPUt0KDMpO3V0KDUpLEppKCJNRU1CRVJTICgiLGguZ3JvdXBNZW1iZXJDb3VudCwiKSIpLHV0KDIpLFR0KCJuZ0Zv''@;'; + put 'put ''ck9mIixoLmdyb3VwTWVtYmVycyl9fWZ1bmN0aW9uIF83dChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIpKDEsImgzIiksVXQoMiksc3QoKSxybigzLHk3dCwyLDAsImg1Iiw1KSxpdCg0LCJkaXYiLDI3KSxybig1LGI3dCw4LDIsInRhYmxlIiwyOCksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3Qo''@;'; + put 'put ''Mik7dXQoMiksR2koaC5ncm91cE5hbWUpLHV0KDEpLFR0KCJuZ0lmIiwwPT1oLmdyb3VwTWVtYmVyQ291bnQpLHV0KDIpLFR0KCJuZ0lmIiwwIT1oLmdyb3VwTWVtYmVyQ291bnQpfX1mdW5jdGlvbiBDN3QoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiKSxybigxLGM3dCwxMywyLCJkaXYiLDIw''@;'; + put 'put ''KSxpdCgyLCJkaXYiLDIxKSgzLCJkaXYiLDIyKSg0LCJkaXYiLDIzKSxybig1LEE3dCw2LDMsImRpdiIsNSkscm4oNixfN3QsNiwzLCJkaXYiLDUpLENyKDcsImJyIiksc3QoKSgpKCkoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMSksVHQoIm5nSWYiLGguc2VydmVyVHlwZSE9PWguU2VydmVy''@;'; + put 'put ''VHlwZS5TYXNWaXlhKSx1dCg0KSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlIT09aC5TZXJ2ZXJUeXBlLlNhc1ZpeWEpLHV0KDEpLFR0KCJuZ0lmIixoLnNlcnZlclR5cGU9PT1oLlNlcnZlclR5cGUuU2FzVml5YSl9fWxldCBJTGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkp''@;'; + put 'put ''e3RoaXMuc2FzU2VydmljZT1oLHRoaXMuaGVscGVyU2VydmljZT12LHRoaXMucm91dGVyPXksdGhpcy5sb2NhdGlvbj1DLHRoaXMucm91dGU9SSx0aGlzLmdyb3VwU2VhcmNoPSIiLHRoaXMucGFyYW1QcmVzZW50PSExLHRoaXMucGFyYW1VUkk9IiIsdGhpcy5ncm91cFVyaT0iIix0aGlzLmdy''@;'; + put 'put ''b3VwTmFtZT0iIix0aGlzLmdyb3VwRGVzYz0iIix0aGlzLnNhc2pzQ29uZmlnPW5ldyBRMy5TQVNqc0NvbmZpZyx0aGlzLmlzVml5YT0hMSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5TZXJ2ZXJUeXBlPUh1LkQsdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWco''@;'; + put 'put ''KSx0aGlzLnNlcnZlclR5cGU9dGhpcy5zYXNTZXJ2aWNlLmdldFNlcnZlclR5cGUoKSwiU0FTVklZQSI9PT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGUmJih0aGlzLmlzVml5YT0hMCl9bmdPbkluaXQoKXtuaS52aWV3ZXIuY3VycmVudFNlbGVjdGlvbj0idmlldy91c2VybmF2L2dyb3Vw''@;'; + put 'put ''cyIsdm9pZCAwIT09dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudXJpJiYodGhpcy5wYXJhbVByZXNlbnQ9ITAsdGhpcy5wYXJhbVVSST10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmkpLG5pLnVzZXJuYXYuZ3JvdXBMaXN0JiYhdGhpcy5wYXJhbVByZXNlbnQ/KHRoaXMuZ3JvdXBz''@;'; + put 'put ''PW5pLnVzZXJuYXYuZ3JvdXBMaXN0LHRoaXMuZ3JvdXBTZWFyY2g9bmkudXNlcm5hdi5ncm91cFNlYXJjaCk6KHZvaWQgMD09PW5pLnVzZXJuYXYuZ3JvdXBMaXN0Pyh0aGlzLmxvYWRpbmc9ITAsdGhpcy5pc1ZpeWE/ZmV0Y2godGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwrIi9pZGVudGl0''@;'; + put 'put ''aWVzL2dyb3Vwcz9saW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKGg9PmgudGV4dCgpKS50aGVuKGg9PntsZXQgeT1KU09OLnBhcnNlKGgpLml0ZW1zLm1hcChDPT4oe0dST1VQVVJJOkMuaWQsR1JPVVBOQU1FOkMubmFtZSxHUk9VUERFU0M6''@;'; + put 'put ''Qy5kZXNjcmlwdGlvbn0pKTt0aGlzLmxvYWRpbmc9ITEsdGhpcy5ncm91cHM9eSxuaS51c2VybmF2Lmdyb3VwTGlzdD15fSk6dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy9nZXRncm91cHMiLG51bGwpLnRoZW4oaD0+e3RoaXMubG9hZGluZz0hMSx0aGlzLmdyb3Vwcz1oLmdyb3Vw''@;'; + put 'put ''cyxuaS51c2VybmF2Lmdyb3VwTGlzdD1oLmdyb3Vwc30pKToodGhpcy5ncm91cHM9bmkudXNlcm5hdi5ncm91cExpc3QsdGhpcy5ncm91cFNlYXJjaD1uaS51c2VybmF2Lmdyb3VwU2VhcmNoKSx0aGlzLnBhcmFtUHJlc2VudCYmKHRoaXMubG9hZGluZz0hMCx0aGlzLmlzVml5YT9mZXRjaCh0''@;'; + put 'put ''aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCsiL2lkZW50aXRpZXMvZ3JvdXBzLyIrdGhpcy5wYXJhbVVSSSsiL21lbWJlcnM/bGltaXQ9MjAwMCIse2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihoPT5oLnRleHQoKSkudGhlbihoPT57bGV0IHY9SlNPTi5wYXJz''@;'; + put 'put ''ZShoKTt0aGlzLmxvYWRpbmc9ITE7bGV0IHk9di5pdGVtcy5tYXAoQz0+KHtNRU1CRVJOQU1FOkMubmFtZSxNRU1CRVJJRDpDLmlkfSkpO3RoaXMuZ3JvdXBNZW1iZXJzPXksdGhpcy5ncm91cE1lbWJlckNvdW50PXkubGVuZ3RoLHRoaXMuZ3JvdXBVcmk9dGhpcy5wYXJhbVVSSSx0aGlzLmdy''@;'; + put 'put ''b3VwTmFtZT10aGlzLnBhcmFtVVJJfSk6dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcm1lbWJlcnNieWdyb3VwIix7aXdhbnQ6W3tncm91cGlkOnRoaXMucGFyYW1VUkl9XX0pLnRoZW4odj0+e3RoaXMuZ3JvdXBNZW1iZXJzPXYuc2FzbWVtYmVycyx0aGlzLmdyb3VwTWVt''@;'; + put 'put ''YmVyQ291bnQ9di5zYXNtZW1iZXJzLmxlbmd0aCx2b2lkIDAhPT12LnNhc21lbWJlcnNbMF0mJih0aGlzLmxvYWRpbmc9ITEsdGhpcy5ncm91cFVyaT12LnNhc21lbWJlcnNbMF0uVVJJTUVNfHx0aGlzLnBhcmFtVVJJLHRoaXMuZ3JvdXBOYW1lPXYuc2FzbWVtYmVyc1swXS5HUk9VUE5BTUUs''@;'; + put 'put ''dGhpcy5ncm91cERlc2M9di5zYXNtZW1iZXJzWzBdLkdST1VQREVTQyx0aGlzLmdyb3VwTmFtZXx8KHRoaXMuZ3JvdXBOYW1lPXRoaXMucGFyYW1VUkkpKX0pKSl9Z3JvdXBMaXN0T25GaWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UubGlicmFyeU9uRmlsdGVyKHRoaXMuZ3JvdXBzLHRoaXMu''@;'; + put 'put ''Z3JvdXBTZWFyY2gsIkdST1VQTkFNRSIpLG5pLnVzZXJuYXYuZ3JvdXBTZWFyY2g9dGhpcy5ncm91cFNlYXJjaH1ncm91cE9uQ2xpY2soaCl7dGhpcy5sb2FkaW5nPSEwO2xldCB2PXRoaXMucm91dGVyLnVybDt0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh0aGlzLnBhcmFtUHJlc2VudD92''@;'; + put 'put ''LnNsaWNlKDAsdi5sYXN0SW5kZXhPZigiLyIpKSsiLyIrZW5jb2RlVVJJKGguR1JPVVBVUkkpOnYrIi8iK2VuY29kZVVSSShoLkdST1VQVVJJKSksdGhpcy5pc1ZpeWE/ZmV0Y2godGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwrIi9pZGVudGl0aWVzL2dyb3Vwcy8iK2guR1JPVVBVUkkrIi9t''@;'; + put 'put ''ZW1iZXJzP2xpbWl0PTIwMDAiLHtoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifX0pLnRoZW4oeT0+eS50ZXh0KCkpLnRoZW4oeT0+e2xldCBDPUpTT04ucGFyc2UoeSk7dGhpcy5sb2FkaW5nPSExLHRoaXMuZ3JvdXBVcmk9aC5HUk9VUFVSSSx0aGlzLmdyb3VwTmFtZT1oLkdS''@;'; + put 'put ''T1VQTkFNRSx0aGlzLmdyb3VwRGVzYz1oLkdST1VQREVTQztsZXQgST1DLml0ZW1zLm1hcChqPT4oe01FTUJFUk5BTUU6ai5uYW1lLE1FTUJFUklEOmouaWR9KSk7dGhpcy5ncm91cE1lbWJlcnM9SSx0aGlzLmdyb3VwTWVtYmVyQ291bnQ9SS5sZW5ndGh9KTp0aGlzLnNhc1NlcnZpY2UucmVx''@;'; + put 'put ''dWVzdCgidXNlcm5hdi91c2VybWVtYmVyc2J5Z3JvdXAiLHtpd2FudDpbe2dyb3VwaWQ6aC5HUk9VUFVSSX1dfSkudGhlbihDPT57dGhpcy5sb2FkaW5nPSExLHRoaXMuZ3JvdXBVcmk9aC5HUk9VUFVSSSx0aGlzLmdyb3VwTmFtZT1oLkdST1VQTkFNRSx0aGlzLmdyb3VwRGVzYz1oLkdST1VQ''@;'; + put 'put ''REVTQyx0aGlzLmdyb3VwTWVtYmVycz1DLnNhc21lbWJlcnMsdGhpcy5ncm91cE1lbWJlckNvdW50PUMuc2FzbWVtYmVycy5sZW5ndGh9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoZzIpLFh0KFhjKSxYdChabCksWHQoVjYpLFh0KFB1KSl9''@;'; + put 'put ''LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1ncm91cCJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6Nyx2YXJzOjQsY29uc3RzOltbMSwic2lkZWJhci1oZWlnaHQiXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwi''@;'; + put 'put ''bmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJsb2FkaW5nU3Bpbm5lciIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJGaWx0ZXIg''@;'; + put 'put ''YnkgR3JvdXBzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImtleXVwIl0sWyJzZWFyY2hMaWJUcmVlSW5wdXQiLCIiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIs''@;'; + put 'put ''NCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzMsInRhYmxlLWFjdGl2ZSIsImNsaWNrIiw0LCJuZ0lmIl0sWzMsImNsaWNrIl0sWzEsIm0tMCIsImN1cnNvci1wb2ludGVyIiwibGlzdC1wYWRkaW5nIl0sWyJzaGFwZSIsInVzZXJzIl0s''@;'; + put 'put ''WzEsImxvYWRpbmdTcGlubmVyIl0sWzEsInNwaW5uZXIiXSxbImNsYXNzIiwiY2xyLXJvdyIsNCwibmdJZiJdLFsxLCJjbHItcm93Il0sWzEsImNsci1jb2wtOCJdLFsxLCJjYXJkIiwiZ3JvdXAtZGF0YSJdLFsxLCJ0YWJsZSIsImdyb3VwLWluZm8iXSxbMSwibGVmdCJdLFsxLCJncm91cC1p''@;'; + put 'put ''bmZvLXRleHQiXSxbMSwidGFibGUtY29udGFpbmVyIl0sWyJjbGFzcyIsInRhYmxlIG1lbWJlci10YWJsZSIsNCwibmdJZiJdLFsxLCJ0YWJsZSIsIm1lbWJlci10YWJsZSJdLFszLCJyb3V0ZXJMaW5rIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwid2lkdGgtMjUiXSxbMSwiIl0sWzMsInJv''@;'; + put 'put ''dXRlckxpbmsiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJhcHAtc2lkZWJhciIsMCkoMSwiY2xyLXRyZWUiKSxybigyLGE3dCw2LDMsImNsci10cmVlLW5vZGUiLDEpLHJuKDMsczd0LDIsMSwibmctY29udGFpbmVyIiwyKSxzdCgpKCksaXQoNCwiZGl2IiwzKSxybig1''@;'; + put 'put ''LHU3dCwzLDAsImRpdiIsNCkscm4oNixDN3QsOCwzLCJkaXYiLDUpLHN0KCkpLDImaCYmKHV0KDIpLFR0KCJuZ0lmIix2Lmdyb3VwcyksdXQoMSksVHQoIm5nRm9yT2YiLHYuZ3JvdXBzKSx1dCgyKSxUdCgibmdJZiIsdi5sb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsdi5ncm91cE1lbWJlcnMm''@;'; + put 'put ''JiF2LmxvYWRpbmcpKX0sZGVwZW5kZW5jaWVzOltacyxWbyxtMSxFcyx4cyxZNix5OSxfZyx3bCxwOSx5U10sc3R5bGVzOlsiLnNpZGViYXItaGVpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJX0uZ3JvdXAtaW5mby10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5Omlu''@;'; + put 'put ''bGluZTtmb250LXNpemU6MjBweH0uZ3JvdXAtaW5mb1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2E3YTdhNztib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMnB4IDVweCAjZGFkN2Q3fS5ncm91cC1pbmZvW19uZ2Nv''@;'; + put 'put ''bnRlbnQtJUNPTVAlXSAgIHRkW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOmNlbnRlcn0uZ3JvdXAtZGF0YVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2E3YTdhNztib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93''@;'; + put 'put ''OjAgMnB4IDVweCAjZGFkN2Q3fS5ncm91cC1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OmF1dG99Lmdyb3VwLWRhdGFbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAuZ3JvdXAtZGF0YVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250''@;'; + put 'put ''ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9Lmdyb3VwLWRhdGFbX25nY29udGVudC0lQ09NUCVdICAgLm1lbWJlci10YWJsZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O3dpZHRoOjEwMCV9Lmdyb3VwLWRhdGFbX25nY29udGVudC0lQ09NUCVdICAg''@;'; + put 'put ''Lm1lbWJlci10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0aGVhZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZGFkYWRhfS5ncm91cC1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tZW1iZXItdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGJvZHlbX25nY29u''@;'; + put 'put ''dGVudC0lQ09NUCVdICAgdHJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U2ZTZlNjtjdXJzb3I6cG9pbnRlcn0udGFibGUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdzphdXRvfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2''@;'; + put 'put ''OHB4KXsuZ3JvdXAtZGF0YVtfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDp1bnNldCFpbXBvcnRhbnR9fSJdfSksZH0pKCk7dmFyIEltZT1MKDk5MjEpLGs3dD1MKDIwMzMpO2Z1bmN0aW9uIFM3dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDI1KX1mdW5jdGlvbiBNN3QoZCxnKXtp''@;'; + put 'put ''ZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItaWNvbiIsMjYpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KDIpO3JldHVybiB5LmxpYnJhcmllc1NlYXJjaD0iIixhKHkubGlicmFyeU9uRmlsdGVyKCkpfSksc3QoKX19ZnVuY3Rpb24gRTd0KGQsZyl7aWYoMSZk''@;'; + put 'put ''KXtjb25zdCBoPV9pKCk7aXQoMCwiY2xyLXRyZWUtbm9kZSIsMTkpKDEsImRpdiIsMjApKDIsImlucHV0IiwyMSwyMiksWW4oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KCkubGlicmFyaWVzU2VhcmNoPXkpfSkoImtleXVwIixmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biBydChoKSxhKEt0KCkubGlicmFyeU9uRmlsdGVyKCkpfSksc3QoKSxybig0LFM3dCwxLDAsImNsci1pY29uIiwyMykscm4oNSxNN3QsMSwwLCJjbHItaWNvbiIsMjQpLHN0KCkoKX1pZigyJmQpe2NvbnN0IGg9eWEoMyksdj1LdCgpO3V0KDIpLFR0KCJuZ01vZGVsIix2LmxpYnJhcmllc1Nl''@;'; + put 'put ''YXJjaCksdXQoMiksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPDEpLHV0KDEpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24geDd0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMjUpfWZ1bmN0aW9uIFQ3dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNs''@;'; + put 'put ''ci1pY29uIiwyNiksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpLEt0KCk7Y29uc3QgeT15YSgzKSxDPUt0KDIpLiRpbXBsaWNpdCxJPUt0KCk7cmV0dXJuIHkudmFsdWU9IiIsQy5zZWFyY2hTdHJpbmc9IiIsYShJLnRyZWVPbkZpbHRlcihDLCJ0YWJsZXMuVEFCTEVOQU1FIikpfSksc3Qo''@;'; + put 'put ''KX19ZnVuY3Rpb24gSTd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiY2xyLXRyZWUtbm9kZSIsMTkpKDEsImRpdiIsMjApKDIsImlucHV0IiwzMiwzMyksWW4oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KDIpLiRpbXBsaWNpdC5zZWFyY2hT''@;'; + put 'put ''dHJpbmc9eSl9KSgia2V5dXAiLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT1LdCgyKS4kaW1wbGljaXQ7cmV0dXJuIGEoS3QoKS50cmVlT25GaWx0ZXIoeSwidGFibGVzLlRBQkxFTkFNRSIpKX0pLHN0KCkscm4oNCx4N3QsMSwwLCJjbHItaWNvbiIsMjMpLHJuKDUsVDd0LDEsMCwiY2xyLWlj''@;'; + put 'put ''b24iLDI0KSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDMpLHY9S3QoMikuJGltcGxpY2l0O3V0KDIpLFR0KCJuZ01vZGVsIix2LnNlYXJjaFN0cmluZyksdXQoMiksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPDEpLHV0KDEpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rp''@;'; + put 'put ''b24gRDd0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMjUpfWZ1bmN0aW9uIEw3dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci1pY29uIiwyNiksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpLEt0KCk7Y29uc3QgeT15YSgzKSxDPUt0KCkuJGltcGxpY2l0LEk9S3Qo''@;'; + put 'put ''Myk7cmV0dXJuIHkudmFsdWU9IiIsQy5zZWFyY2hTdHJpbmc9IiIsYShJLnRyZWVPbkZpbHRlcihDLCJjb2x1bW5zLkNPTE5BTUUiKSl9KSxzdCgpfX1mdW5jdGlvbiBPN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItdHJlZS1ub2RlIiwxOSkoMSwiZGl2IiwyMCkoMiwi''@;'; + put 'put ''aW5wdXQiLDM2LDMzKSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoKS4kaW1wbGljaXQuc2VhcmNoU3RyaW5nPXkpfSkoImtleXVwIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoKS4kaW1wbGljaXQ7cmV0dXJuIGEoS3QoMykudHJlZU9uRmls''@;'; + put 'put ''dGVyKHksImNvbHVtbnMuQ09MTkFNRSIpKX0pLHN0KCkscm4oNCxEN3QsMSwwLCJjbHItaWNvbiIsMjMpLHJuKDUsTDd0LDEsMCwiY2xyLWljb24iLDI0KSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDMpLHY9S3QoKS4kaW1wbGljaXQ7dXQoMiksVHQoIm5nTW9kZWwiLHYuc2VhcmNoU3Ry''@;'; + put 'put ''aW5nKSx1dCgyKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg8MSksdXQoMSksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBSN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItdHJlZS1ub2RlIikoMSwiYnV0dG9uIiwzNyksWW4oImNsaWNrIixmdW5j''@;'; + put 'put ''dGlvbigpe2NvbnN0IEM9cnQoaCkuJGltcGxpY2l0LEk9S3QoKS4kaW1wbGljaXQsaj1LdCgyKS4kaW1wbGljaXQ7cmV0dXJuIGEoS3QoKS5jb2x1bW5PbkNsaWNrKEMsaixJKSl9KSxDcigyLCJjbHItaWNvbiIsMzgpLFV0KDMpLHN0KCkoKX1pZigyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQs''@;'; + put 'put ''dj1LdCg0KTt1dCgxKSxGaSgiY29sdW1uLWFjdGl2ZSIsdi5saWJDb2x1bW5BY3RpdmUoaC5DT0xVUkkpKSx1dCgyKSxKaSgiICIsaC5DT0xOQU1FLCIgIil9fWZ1bmN0aW9uIEI3dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci10cmVlLW5vZGUiLDI4KSxZbigiY2xpY2si''@;'; + put 'put ''LGZ1bmN0aW9uKHkpe2NvbnN0IEk9cnQoaCkuJGltcGxpY2l0LGo9S3QoMikuJGltcGxpY2l0O3JldHVybiBhKEt0KCkudHJlZU5vZGVDbGlja2VkKHksSSxqLnRhYmxlcykpfSkoImNsckV4cGFuZGVkQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gYShydChoKS4kaW1wbGljaXQuZXhwYW5k''@;'; + put 'put ''ZWQ9eSl9KSxpdCgxLCJwIiwzNCksWW4oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9cnQoaCkuJGltcGxpY2l0LEk9S3QoMikuJGltcGxpY2l0O3JldHVybiBhKEt0KCkudGFibGVPbkNsaWNrKEMuVEFCTEVVUkksQyxJKSl9KSxDcigyLCJjbHItaWNvbiIsMzUpLFV0KDMpLHN0KCkscm4o''@;'; + put 'put ''NCxPN3QsNiwzLCJjbHItdHJlZS1ub2RlIiwxKSxybig1LFI3dCw0LDMsImNsci10cmVlLW5vZGUiLDIpLHN0KCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O0ZpKCJjbHItZXhwYW5kZWQiLGguZXhwYW5kZWQpLFR0KCJjbHJFeHBhbmRlZCIsaC5leHBhbmRlZCkoImNsckxvYWRpbmci''@;'; + put 'put ''LGgubG9hZGluZ0NvbHVtbnMmJiFoLmNvbHVtbnMpLHV0KDEpLFR0KCJpZCIsaC5UQUJMRVVSSSksdXQoMiksSmkoIiAiLGguVEFCTEVOQU1FLCIgIiksdXQoMSksVHQoIm5nSWYiLGguY29sdW1ucyksdXQoMSksVHQoIm5nRm9yT2YiLGguY29sdW1ucyl9fWZ1bmN0aW9uIFA3dChkLGcpe2lm''@;'; + put 'put ''KDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci10cmVlLW5vZGUiLDI4KSxZbigiY2xpY2siLGZ1bmN0aW9uKHkpe3J0KGgpO2NvbnN0IEM9S3QoKS4kaW1wbGljaXQsST1LdCgpO3JldHVybiBhKEkudHJlZU5vZGVDbGlja2VkKHksQyxJLmxpYnJhcnlMaXN0KSl9KSgiY2xyRXhwYW5kZWRD''@;'; + put 'put ''aGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KCkuJGltcGxpY2l0LmV4cGFuZGVkPXkpfSksaXQoMSwicCIsMjkpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KCkuJGltcGxpY2l0LEM9S3QoKTtyZXR1cm4gQy5saWI9eS5MSUJSQVJZSUQsYShDLmxp''@;'; + put 'put ''YnJhcnlPbkNsaWNrKEMubGlifHwiIix5KSl9KSxDcigyLCJjbHItaWNvbiIsMzApLFV0KDMpLHN0KCkscm4oNCxJN3QsNiwzLCJjbHItdHJlZS1ub2RlIiwxKSxybig1LEI3dCw2LDgsImNsci10cmVlLW5vZGUiLDMxKSxzdCgpfWlmKDImZCl7Y29uc3QgaD1LdCgpLiRpbXBsaWNpdDtGaSgi''@;'; + put 'put ''Y2xyLWV4cGFuZGVkIixoLmV4cGFuZGVkKSxUdCgiY2xyRXhwYW5kZWQiLGguZXhwYW5kZWQpKCJjbHJMb2FkaW5nIixoLmxvYWRpbmdUYWJsZXMmJiFoLnRhYmxlcyksdXQoMyksSmkoIiAiLGguTElCUkFSWU5BTUUsIiAiKSx1dCgxKSxUdCgibmdJZiIsaC50YWJsZXMpLHV0KDEpLFR0KCJu''@;'; + put 'put ''Z0Zvck9mIixoLnRhYmxlcyl9fWZ1bmN0aW9uIEY3dChkLGcpe2lmKDEmZCYmKEYwKDApLHJuKDEsUDd0LDYsNywiY2xyLXRyZWUtbm9kZSIsMjcpLEgwKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxUdCgibmdJZiIsIWguaGlkZGVuJiZoLmluRm9yZWdyb3VuZCl9fWZ1bmN0''@;'; + put 'put ''aW9uIEg3dChkLGcpezEmZCYmKGl0KDAsImRpdiIsMzkpKDEsInNwYW4iLDQwKSxVdCgyLCIgTG9hZGluZy4uLiAiKSxzdCgpKCkpfWZ1bmN0aW9uIE43dChkLGcpezEmZCYmKGl0KDAsImRpdiIsNDEpLENyKDEsImNsci1pY29uIiw0MiksaXQoMiwiaDMiLDQzKSxVdCgzLCIgUGxlYXNlIHNl''@;'; + put 'put ''bGVjdCBhIGNvbHVtbiBvciB0YWJsZSAiKSxzdCgpKCkpfWZ1bmN0aW9uIFY3dChkLGcpe2lmKDEmZCYmKGl0KDAsImgzIiw1MiksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPUt0KDMpO3V0KDEpLEppKCIgIixoLmN1cnJlbnRMaW5lYWdlUGF0aENvbHVtbj9oLmN1cnJlbnRMaW5lYWdlUGF0''@;'; + put 'put ''aExpYlRhYmxlKyIuIitoLmN1cnJlbnRMaW5lYWdlUGF0aENvbHVtbjpoLmN1cnJlbnRMaW5lYWdlUGF0aExpYlRhYmxlLCIgIil9fWZ1bmN0aW9uIGo3dChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsNTApLHJuKDEsVjd0LDIsMSwiaDMiLDUxKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoMik7''@;'; + put 'put ''dXQoMSksVHQoIm5nSWYiLCFoLmN1cnJlbnRMaW5lYWdlUGF0aENvbHVtbiYmIWguY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGUpfX1mdW5jdGlvbiBaN3QoZCxnKXtpZigxJmQmJihpdCgwLCJzcGFuIiksVXQoMSksaXQoMiwiYSIsNTMpLFV0KDMpLHN0KCksVXQoNCksc3QoKSksMiZkKXtj''@;'; + put 'put ''b25zdCBoPUt0KDIpO3V0KDEpLEppKCIgIixoLmxpbmVhZ2VUYWJsZU5hbWUuc3BsaXQoIi4iKVswXSwiLiIpLHV0KDEpLFR0KCJyb3V0ZXJMaW5rIiwiL3ZpZXcvZGF0YS8iK2gubGluZWFnZVRhYmxlTmFtZSksdXQoMSksR2koaC5saW5lYWdlVGFibGVOYW1lLnNwbGl0KCIuIilbMV0pLHV0''@;'; + put 'put ''KDEpLEppKCIiLGgubGluZWFnZUNvbHVtbk5hbWUubGVuZ3RoPjA/Ii4iK2gubGluZWFnZUNvbHVtbk5hbWU6IiIsIiAiKX19ZnVuY3Rpb24gejd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiZGl2Iiw2MiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0''@;'; + put 'put ''KDQpLmRvd25sb2FkUE5HKCkpfSksVXQoMSwiIFBORyAiKSxzdCgpfX1mdW5jdGlvbiBHN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiLDYyKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoNCkuZG93bmxvYWRDU1YoKSl9KSxVdCgxLCIgQ1NW''@;'; + put 'put ''ICIpLHN0KCl9fWZ1bmN0aW9uIFc3dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci1kcm9wZG93bi1tZW51Iiw2MSkoMSwiZGl2Iiw2MiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDMpLmRvd25sb2FkU1ZHKCkpfSksVXQoMiwiU1ZHIiksc3Qo''@;'; + put 'put ''KSxybigzLHo3dCwyLDAsImRpdiIsNjMpLGl0KDQsImRpdiIsNjIpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgzKS5kb3dubG9hZERvdCgpKX0pLFV0KDUsIkRvdCIpLHN0KCkscm4oNixHN3QsMiwwLCJkaXYiLDYzKSxzdCgpfWlmKDImZCl7Y29uc3QgaD1LdCgz''@;'; + put 'put ''KTt1dCgzKSxUdCgibmdJZiIsIWguaGVscGVyU2VydmljZS5pc01pY3Jvc29mdCksdXQoMyksVHQoIm5nSWYiLGguZmxhdGRhdGEpfX1mdW5jdGlvbiBZN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItY2hlY2tib3gtd3JhcHBlciIsNjQpKDEsImlucHV0Iiw2NSksWW4o''@;'; + put 'put ''ImNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgzKS5nZW5lcmF0ZUdyYXBoKCkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KDMpLnJlZnJlc2hDYWNoZT15KX0pLHN0KCksaXQoMiwibGFiZWwiKSxVdCgzLCJSZWZyZXNoIENhY2hl''@;'; + put 'put ''Iiksc3QoKSgpfWlmKDImZCl7Y29uc3QgaD1LdCgzKTt1dCgxKSxUdCgibmdNb2RlbCIsaC5yZWZyZXNoQ2FjaGUpfX1mdW5jdGlvbiBVN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiLDU0KSgxLCJkaXYiLDU1KSgyLCJkaXYiLDU2KSxZbigiY2xpY2siLGZ1bmN0aW9u''@;'; + put 'put ''KCl7cnQoaCk7Y29uc3QgeT1LdCgyKTtyZXR1cm4geS5mb3J3YXJkTGluZWFnZT0hMSxhKHkucm91dGVyLnVybC5pbmNsdWRlcygiY29sdW1uIik/eS5vbkdlbmVyYXRlQ2xpY2soKTp5Lm9uR2VuZXJhdGVHcmFwaFRhYmxlQ2xpY2soKSl9KSxDcigzLCJpbnB1dCIsNTcpLGl0KDQsImxhYmVs''@;'; + put 'put ''IiksVXQoNSwiQmFja3dhcmQiKSxzdCgpKCksaXQoNiwiZGl2Iiw1NiksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoMik7cmV0dXJuIHkuZm9yd2FyZExpbmVhZ2U9ITAsYSh5LnJvdXRlci51cmwuaW5jbHVkZXMoImNvbHVtbiIpP3kub25HZW5lcmF0ZUNsaWNrKCk6''@;'; + put 'put ''eS5vbkdlbmVyYXRlR3JhcGhUYWJsZUNsaWNrKCkpfSksQ3IoNywiaW5wdXQiLDU3KSxpdCg4LCJsYWJlbCIpLFV0KDksIkZvcndhcmQiKSxzdCgpKCkoKSxpdCgxMCwiY2xyLWRyb3Bkb3duIiw1OCkoMTEsImJ1dHRvbiIsNTkpLFV0KDEyLCIgRG93bmxvYWQgIiksQ3IoMTMsImNsci1pY29u''@;'; + put 'put ''IiwxNSksc3QoKSxybigxNCxXN3QsNywyLCJjbHItZHJvcGRvd24tbWVudSIsMTYpLHN0KCkscm4oMTUsWTd0LDQsMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiLDYwKSxzdCgpfWlmKDImZCl7Y29uc3QgaD1LdCgyKTt1dCgzKSxUdCgiY2hlY2tlZCIsIWguZm9yd2FyZExpbmVhZ2UpLHV0KDQp''@;'; + put 'put ''LFR0KCJjaGVja2VkIixoLmZvcndhcmRMaW5lYWdlKSx1dCg0KSxUdCgiZGlzYWJsZWQiLCFoLmNvbHVtbiYmIWgudGFibGUpLHV0KDQpLFR0KCJuZ0lmIixoLmNvbHVtbil9fWZ1bmN0aW9uIFE3dChkLGcpezEmZCYmKGl0KDAsInNwYW4iLDY5KSxVdCgxLCIgTG9hZGluZy4uLiAiKSxzdCgp''@;'; + put 'put ''KX1mdW5jdGlvbiBKN3QoZCxnKXsxJmQmJkNyKDAsInNwYW4iLDQwKX1mdW5jdGlvbiBYN3QoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDcwKSgxLCJkaXYiLDcxKSxybigyLEo3dCwxLDAsInNwYW4iLDcyKSxzdCgpLENyKDMsImRpdiIsNzMpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgzKTt1''@;'; + put 'put ''dCgyKSxUdCgibmdJZiIsaC5ncmFwaFJlbmRlcmluZyl9fWZ1bmN0aW9uIEs3dChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIpKDEsImRpdiIsNjYpLHJuKDIsUTd0LDIsMCwic3BhbiIsNjcpLHJuKDMsWDd0LDQsMSwiZGl2Iiw2OCksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3QoMik7RmkoIm10''@;'; + put 'put ''LTIiLGgudGFibGVGbGFnKSx1dCgyKSxUdCgibmdJZiIsaC5ncmFwaExvYWRpbmcpLHV0KDEpLFR0KCJuZ0lmIiwhaC5ncmFwaExvYWRpbmcpfX1mdW5jdGlvbiAkN3QoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLGo3dCwyLDEsImRpdiIsNDQpLGl0KDIsImRpdiIsNDUpKDMsInNlY3Rpb24i''@;'; + put 'put ''LDQ2KSg0LCJkaXYiLDQ3KSxybig1LFo3dCw1LDQsInNwYW4iLDcpLHN0KCkscm4oNixVN3QsMTYsNCwiZGl2Iiw0OCksc3QoKSxybig3LEs3dCw0LDQsImRpdiIsNDkpLHN0KCksSDAoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMSksVHQoIm5nSWYiLCFoLmdyYXBoQ29udGFpbmVyKSx1dCg0''@;'; + put 'put ''KSxUdCgibmdJZiIsaC5saW5lYWdlVGFibGVOYW1lLmxlbmd0aD4wKSx1dCgxKSxUdCgibmdJZiIsaC5ncmFwaENvbnRhaW5lciksdXQoMSksVHQoIm5nSWYiLGguZ3JhcGhDb250YWluZXIpfX1mdW5jdGlvbiBxN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJkaXYiLDYyKSxZ''@;'; + put 'put ''bigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoMikucmVuZGVyVG9Eb3dubG9hZCgiUE5HIikpfSksVXQoMSwiIFBORyAiKSxzdCgpfX1mdW5jdGlvbiBlOXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItZHJvcGRvd24tbWVudSIsNjEpKDEsImRpdiIs''@;'; + put 'put ''NjIpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLnJlbmRlclRvRG93bmxvYWQoIlNWRyIpKX0pLFV0KDIsIlNWRyIpLHN0KCkscm4oMyxxN3QsMiwwLCJkaXYiLDYzKSxpdCg0LCJkaXYiLDYyKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT1L''@;'; + put 'put ''dCgpO3JldHVybiB5LmRvd25sb2FkRG90KCksYSh5LmNhbmNlbFJlbmRlcmluZ0dyYXBoKCkpfSksVXQoNSwiIERvdCAiKSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPUt0KCk7dXQoMyksVHQoIm5nSWYiLCFoLmhlbHBlclNlcnZpY2UuaXNNaWNyb3NvZnQpfX1jb25zdCB0OXQ9TCgxNTQzOSk7''@;'; + put 'put ''bGV0IGpuZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxqLHVlKXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLnJvdXRlPXYsdGhpcy5yb3V0ZXI9eSx0aGlzLmxvY2F0aW9uPUMsdGhpcy5ldmVudFNlcnZpY2U9SSx0aGlzLmxvZ2dlclNlcnZpY2U9aix0aGlzLmhlbHBlclNl''@;'; + put 'put ''cnZpY2U9dWUsdGhpcy5zd2l0Y2hGbGFnPSExLHRoaXMudGFibGVGbGFnPSEwLHRoaXMuZm9yd2FyZExpbmVhZ2U9ITEsdGhpcy5mbGF0ZGF0YT1bXSx0aGlzLmdyYXBoTG9hZGluZz0hMSx0aGlzLmdyYXBoUmVuZGVyaW5nPSExLHRoaXMuZ3JhcGhDb250YWluZXI9ITEsdGhpcy52aXpJbnB1''@;'; + put 'put ''dD0iIix0aGlzLmxpYnJhcmllc1BhZ2luZz0hMSx0aGlzLmxpYnJhcnlUYWJsZXNSZWY9IiIsdGhpcy5saWJyYXJpZXNTZWFyY2g9IiIsdGhpcy50YWJsZUNvbHVtbnNSZWY9IiIsdGhpcy5saW5lYWdlVGFibGVOYW1lPSIiLHRoaXMubGluZWFnZUNvbHVtbk5hbWU9IiIsdGhpcy5saWI9bnVs''@;'; + put 'put ''bCx0aGlzLnRhYmxlRGlzYWJsZT0hMSx0aGlzLnJlZnJlc2hDYWNoZT0hMSx0aGlzLmN1cnJlbnRMaW5lYWdlUGF0aExpYlRhYmxlPSIiLHRoaXMuY3VycmVudExpbmVhZ2VQYXRoQ29sdW1uPSIiLHRoaXMubGFyZ2VEb3RGaWxlTGluZXM9bnVsbCx0aGlzLmxhcmdlRG90RmlsZUxpbWl0PTFl''@;'; + put 'put ''Myx0aGlzLnBlbmRpbmdSZW5kZXJEb3dubG9hZD1udWxsLHRoaXMuZGVib3VuY2VUaW1lPTUwMH1zaG93VGFibGVTZWxlY3QoKXt0aGlzLnRhYmxlRmxhZz0hdGhpcy50YWJsZUZsYWd9dGFibGVPbkNsaWNrKGgsdix5LEM9ITEpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rp''@;'; + put 'put ''b24qKCl7di5jb2x1bW5zPyh2LmV4cGFuZGVkPSF2LmV4cGFuZGVkLCEwPT09di5leHBhbmRlZCYmKHRoaXMudGFibGU9aCxDfHx0aGlzLm9uR2VuZXJhdGVHcmFwaFRhYmxlQ2xpY2soKSkpOih2LmV4cGFuZGVkPSF2LmV4cGFuZGVkLHYubG9hZGluZ0NvbHVtbnM9ITAsdGhpcy50YWJsZT1o''@;'; + put 'put ''LHRoaXMuY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGU9di5MSUJOQU1FKyIuIit2LlRBQkxFTkFNRSx5aWVsZCB0aGlzLnNlbGVjdFRhYmxlKGgsdiksQ3x8dGhpcy5vbkdlbmVyYXRlR3JhcGhUYWJsZUNsaWNrKCkpLHRoaXMuY29sbGFwc2VUcmVlSXRlbXMoeS50YWJsZXMsdil9KX1zZWxl''@;'; + put 'put ''Y3RUYWJsZShoLHYpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5jb2x1bW5zTGlzdD1bXTtsZXQgeT17U0FTQ29udHJvbFRhYmxlOlt7dGFibGV1cmk6aH1dfTt5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgibGluZWFnZS9nZXRtZXRhY29scyIs''@;'; + put 'put ''eSkudGhlbihDPT57dGhpcy5jb2x1bW5zTGlzdD1DLm1ldGFjb2xzLHRoaXMuY29sdW1uc0xpc3QmJnRoaXMuY29sdW1uc0xpc3QubGVuZ3RoPjAmJih2LmNvbHVtbnM9dGhpcy5jb2x1bW5zTGlzdCx2LmV4cGFuZGVkPSEwLHYubG9hZGluZ0NvbHVtbnM9ITEpfSkuY2F0Y2goQz0+QyksdGhp''@;'; + put 'put ''cy5zZXRHbG9iYWxEYXRhKCl9KX1sb2FkTW9yZUxpYnJhcmllcygpe3RoaXMubGlicmFyaWVzUGFnaW5nfHwodGhpcy5saWJyYXJpZXNQYWdpbmc9ITAsdGhpcy5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXModGhpcy5saWJyYXJ5TGlzdCwhMCksdGhpcy5saWJyYXJpZXNQYWdpbmc9''@;'; + put 'put ''ITEpfWNvbGxhcHNlVHJlZUl0ZW1zKGgsdil7aC5mb3JFYWNoKHk9PntKU09OLnN0cmluZ2lmeSh5KSE9PUpTT04uc3RyaW5naWZ5KHYpJiYoeS5leHBhbmRlZD0hMSl9KX10cmVlTm9kZUNsaWNrZWQoaCx2LHkpeyJDb2xsYXBzZSI9PT1oLnRhcmdldC50aXRsZSYmdGhpcy5jb2xsYXBzZVRy''@;'; + put 'put ''ZWVJdGVtcyh5LHYpfWxpYnJhcnlPbkNsaWNrKGgsdil7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt2LnRhYmxlcz92LmV4cGFuZGVkPSF2LmV4cGFuZGVkOih2LmxvYWRpbmdUYWJsZXM9ITAseWllbGQgdGhpcy5zZWxlY3RMaWJyYXJ5KGgsdikpLHRoaXMuY29s''@;'; + put 'put ''bGFwc2VUcmVlSXRlbXModGhpcy5saWJyYXJ5TGlzdCx2KX0pfXNlbGVjdExpYnJhcnkoaCx2KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMudGFibGVzTGlzdD1bXSx0aGlzLmNvbHVtbnNMaXN0PVtdO2xldCB5PXtTQVNDb250cm9sVGFibGU6W3tsaWJ1''@;'; + put 'put ''cmk6aH1dfTt5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgibGluZWFnZS9nZXRtZXRhdGFibGVzIix5KS50aGVuKEM9Pnt0aGlzLnRhYmxlc0xpc3Q9Qy5tZXRhdGFibGVzLHRoaXMudGFibGVzTGlzdCYmdGhpcy50YWJsZXNMaXN0Lmxlbmd0aD4wJiYodi50YWJsZXM9dGhpcy50YWJs''@;'; + put 'put ''ZXNMaXN0LHYuZXhwYW5kZWQ9ITApLHRoaXMuc2V0R2xvYmFsRGF0YSgpfSkuY2F0Y2goQz0+Qyksdi5sb2FkaW5nVGFibGVzPSExfSl9Y29sdW1uT25DbGljayhoLHYseSl7dGhpcy5saWI9di5MSUJSQVJZSUQsdGhpcy50YWJsZT15LlRBQkxFVVJJLHRoaXMuY29sdW1uPWguQ09MVVJJLHRo''@;'; + put 'put ''aXMuc2V0R2xvYmFsRGF0YSgpLHRoaXMub25HZW5lcmF0ZUNsaWNrKCl9dHJlZU9uRmlsdGVyKGgsdil7dGhpcy5oZWxwZXJTZXJ2aWNlLnRyZWVPbkZpbHRlcihoLHYpfWxpYnJhcnlPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhpcy5saWJyYXJ5TGlz''@;'; + put 'put ''dCx0aGlzLmxpYnJhcmllc1NlYXJjaCwiTElCUkFSWU5BTUUiKSxuaS5saW5lYWdlLmxpYnJhcmllc1NlYXJjaD10aGlzLmxpYnJhcmllc1NlYXJjaH1saWJDb2x1bW5BY3RpdmUoaCl7aWYoIXRoaXMuY29sdW1uKXJldHVybiExO2xldCB2PWguc3BsaXQoIlxcIikseT10aGlzLmNvbHVtbi5z''@;'; + put 'put ''cGxpdCgiXFwiKTtyZXR1cm4gdlt2Lmxlbmd0aC0xXT09eVt5Lmxlbmd0aC0xXX1zZXRHbG9iYWxEYXRhKCl7bmkubGluZWFnZS5saWJyYXJ5TGlzdD10aGlzLmxpYnJhcnlMaXN0LG5pLmxpbmVhZ2UudGFibGVzTGlzdD10aGlzLnRhYmxlc0xpc3QsbmkubGluZWFnZS5jb2x1bW5zTGlzdD10''@;'; + put 'put ''aGlzLmNvbHVtbnNMaXN0LG5pLmxpbmVhZ2UubGliPXRoaXMubGliLG5pLmxpbmVhZ2UudGFibGU9dGhpcy50YWJsZSxuaS5saW5lYWdlLmNvbHVtbj10aGlzLmNvbHVtbn1sb2FkR2xvYmFsRGF0YSgpe3RoaXMubGlicmFyeUxpc3Q9bmkubGluZWFnZS5saWJyYXJ5TGlzdCx0aGlzLnRhYmxl''@;'; + put 'put ''c0xpc3Q9bmkubGluZWFnZS50YWJsZXNMaXN0LHRoaXMuY29sdW1uc0xpc3Q9bmkubGluZWFnZS5jb2x1bW5zTGlzdCx0aGlzLmxpYnJhcmllc1NlYXJjaD1uaS5saW5lYWdlLmxpYnJhcmllc1NlYXJjaH1yZXN1Ym1pdFdpdGhNYXhEZXB0aChoKXt0aGlzLmNhbmNlbFJlbmRlcmluZ0dyYXBo''@;'; + put 'put ''KCksdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10se3JlbGF0aXZlVG86dGhpcy5yb3V0ZSxxdWVyeVBhcmFtczp7bWF4X2RlcHRoOmh9fSl9bmdPbkluaXQoKXtuaS52aWV3ZXIuY3VycmVudFNlbGVjdGlvbj0idmlldy9saW5lYWdlIjtsZXQgaD10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5y''@;'; + put 'put ''ZWxvYWQ7aWYodm9pZCAwIT09aCl7bGV0IHY9dGhpcy5yb3V0ZXIudXJsOyJyZWxvYWQiPT09aD9sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmlyc3RMb2FkIik/KGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaXJzdExvYWQiKSx0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh2LnNsaWNlKDAs''@;'; + put 'put ''di5sYXN0SW5kZXhPZigiLyIpKSkpOihsb2NhbFN0b3JhZ2UuZmlyc3RMb2FkPSEwLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9LDJlMykpOnRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHYuc2xpY2UoMCx2Lmxhc3RJbmRleE9mKCIvIikpKX10aGlz''@;'; + put 'put ''LmluaXREYXRhKCl9aW5pdERhdGEoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe25pLmxpbmVhZ2UubGlicmFyeUxpc3QmJihuaS5saW5lYWdlLmxpYnJhcnlMaXN0Lmxlbmd0aD4wP3RoaXMubG9hZEdsb2JhbERhdGEoKTp5aWVsZCB0aGlzLnNhc1NlcnZpY2Uu''@;'; + put 'put ''cmVxdWVzdCgicHVibGljL3ZpZXdsaWJzIixudWxsKS50aGVuKEM9Pnt0aGlzLmxpYnJhcnlMaXN0PUMuc2FzbGlicyx0aGlzLmhlbHBlclNlcnZpY2UuZGlzcGxheUxpYnJhcmllcyh0aGlzLmxpYnJhcnlMaXN0KSx0aGlzLmxpYnJhcnlMaXN0JiZ0aGlzLmxpYnJhcnlMaXN0Lmxlbmd0aD4w''@;'; + put 'put ''JiYodGhpcy5saWI9dGhpcy5saWJyYXJ5TGlzdFswXS5MSUJSQVJZSUQpLHRoaXMuc2V0R2xvYmFsRGF0YSgpfSkuY2F0Y2goQz0+QyksdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoQz0+e3RoaXMub25Sb3V0ZUNoYW5nZSgpfSksdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJl''@;'; + put 'put ''KEM9Pnt0aGlzLm9uUm91dGVDaGFuZ2UoKX0pKX0pfW9uUm91dGVDaGFuZ2UoKXtjbGVhclRpbWVvdXQodGhpcy5kZWJvdW5jZVRpbWVvdXQpLHRoaXMuZGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pntjb25zdCBoPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmNvbHVyaSx2PXRo''@;'; + put 'put ''aXMucm91dGUuc25hcHNob3QucGFyYW1zLmRpcmVjdGlvbix5PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnRhYmxlaWQsQz10aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLm1heF9kZXB0aDtoJiZ2JiYodGhpcy5mb3J3YXJkTGluZWFnZT0iRk9SV0FSRCI9PT12LHRoaXMuY29s''@;'; + put 'put ''dW1uPWgsdGhpcy5nZW5lcmF0ZUdyYXBoKGgsdixDKSksIXRoaXMucm91dGVyLnVybC5pbmNsdWRlcygiY29sdW1uIikmJnkmJnYmJih0aGlzLmZvcndhcmRMaW5lYWdlPSJGT1JXQVJEIj09PXYsdGhpcy50YWJsZT15LHRoaXMuZ2VuZXJhdGVHcmFwaFRhYmxlTGV2ZWwoeSx2LEMpKX0sdGhp''@;'; + put 'put ''cy5kZWJvdW5jZVRpbWVvdXQpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe31kaXJlY3Rpb25UZXh0KCl7cmV0dXJuIHRoaXMuZm9yd2FyZExpbmVhZ2U/IkZPUldBUkQiOiJSRVZFUlNFIn1vbkdlbmVyYXRlQ2xpY2soKXtsZXQgaD10aGlzLmRpcmVjdGlvblRleHQoKSx2PXRoaXMuY29sdW1uP3Ro''@;'; + put 'put ''aXMuY29sdW1uLnN1YnN0cmluZyh0aGlzLmNvbHVtbi5pbmRleE9mKCJcXCIpKzEpOm51bGw7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvbGluZWFnZS9jb2x1bW4vIit2KyIvIitoKX1vbkdlbmVyYXRlR3JhcGhUYWJsZUNsaWNrKCl7bGV0IGg9dGhpcy5kaXJlY3Rpb25UZXh0''@;'; + put 'put ''KCksdj10aGlzLnRhYmxlLnNwbGl0KCJcXCIpWzFdO3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2xpbmVhZ2UvIit2KyIvIitoKX1nZW5lcmF0ZUdyYXBoVGFibGVMZXZlbChoLHYseSl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgQz17U0FT''@;'; + put 'put ''Q29udHJvbFRhYmxlOlt7dGFibGVfaWQ6aCxkaXJlY3Rpb246dnx8dGhpcy5kaXJlY3Rpb25UZXh0KCl9XX07cmV0dXJuIHkmJihDLlNBU0NvbnRyb2xUYWJsZVswXS5tYXhfZGVwdGg9eSksdGhpcy50YWJsZUZsYWc9ITEsdGhpcy5zd2l0Y2hGbGFnPSEwLHRoaXMuZ3JhcGhDb250YWluZXI9''@;'; + put 'put ''ITAsdGhpcy5ncmFwaExvYWRpbmc9ITAsdGhpcy52aXpJbnB1dD0iIixuZXcgUHJvbWlzZSgoSSxqKT0+e3RoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJsaW5lYWdlL2ZldGNodGFibGVsaW5lYWdlIixDKS50aGVuKHVlPT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYoInN0''@;'; + put 'put ''cmluZyI9PXR5cGVvZiB1ZSlyZXR1cm4gdGhpcy52aXpJbnB1dD0iZGlncmFwaCBHIHtTQVMgRXJyb3J9Iix2b2lkIHRoaXMuYnVpbGRHcmFwaCgpO3RoaXMubGluZWFnZVRhYmxlTmFtZT11ZS5pbmZvWzBdLkxJQlJFRisiLiIrdWUuaW5mb1swXS5UQUJMRU5BTUU7bGV0IF9lPXVlLmZpbmFs''@;'; + put 'put ''ZmluYWwsQmU9IiI7Zm9yKGxldCBOZT0wO05lPF9lLmxlbmd0aDtOZSsrKUJlKz11bmVzY2FwZShfZVtOZV0uTElORSkrIlxuIjtpZih0aGlzLmZsYXRkYXRhPXVlLmZsYXRkYXRhLHRoaXMubGlicmFyeUxpc3Qpe2xldCBLZSxOZT10aGlzLmxpYnJhcnlMaXN0LmZpbmQoZHQ9PmR0LkxJQlJB''@;'; + put 'put ''UllSRUYudG9Mb3dlckNhc2UoKT09PXVlLmluZm9bMF0uTElCUkVGLnRvTG93ZXJDYXNlKCkpO2lmKHlpZWxkIHRoaXMubGlicmFyeU9uQ2xpY2soTmUuTElCUkFSWUlELE5lKSxOZS50YWJsZXMmJihLZT1OZS50YWJsZXMuZmluZChkdD0+ZHQuVEFCTEVVUkkuc3BsaXQoIlxcIilbMV09PT11''@;'; + put 'put ''ZS5pbmZvWzBdLlRBQkxFSUQpLEtlKSl7aWYodGhpcy50YWJsZT1LZS5UQUJMRVVSSSx0aGlzLnRhYmxlKXtjb25zdCBkdD10aGlzLnRhYmxlLnJlcGxhY2UoIlxcIiwiXFxcXCIpO2xldCBPdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbaWQ9JyR7ZHR9J11gKTtzZXRUaW1lb3V0KCgpPT57''@;'; + put 'put ''T3QmJk90LnNjcm9sbEludG9WaWV3KCl9LDFlMyl9dGhpcy50YWJsZU9uQ2xpY2soS2UuVEFCTEVVUkksS2UsTmUsdm9pZCAwIT09dil9TmUmJihOZS5leHBhbmRlZD0hMCksS2UmJihLZS5leHBhbmRlZD0hMCl9dGhpcy52aXpJbnB1dD1CZXx8ImRpZ3JhcGggRyB7Tm8gTGluZWFnZSBBdmFp''@;'; + put 'put ''bGFibGV9Iix0aGlzLnZpeklucHV0PXRoaXMudml6SW5wdXQucmVwbGFjZSgvXHNkczovZywiXG5kczoiKS5yZXBsYWNlKC9cc1xuL2csIlxuIiksdGhpcy5pZGxvb2t1cD11ZS5pZGxvb2t1cCx1ZS5maW5hbGZpbmFsLmxlbmd0aD50aGlzLmxhcmdlRG90RmlsZUxpbWl0P3RoaXMubGFyZ2VE''@;'; + put 'put ''b3RGaWxlTGluZXM9dWUuZmluYWxmaW5hbC5sZW5ndGg6dGhpcy5idWlsZEdyYXBoKCksSSgpfSkpLmNhdGNoKHVlPT57dGhpcy5ncmFwaExvYWRpbmc9ITEsdGhpcy5ncmFwaENvbnRhaW5lcj0hMX0pfSl9KX1jYW5jZWxSZW5kZXJpbmdHcmFwaCgpe3RoaXMudml6SW5wdXQ9ImRpZ3JhcGgg''@;'; + put 'put ''RyB7Tm8gTGluZWFnZSBBdmFpbGFibGV9Iix0aGlzLmxhcmdlRG90RmlsZUxpbmVzPW51bGwsdGhpcy5idWlsZEdyYXBoKCl9Y29udGludWVSZW5kZXJpbmdHcmFwaCgpe3RoaXMubGFyZ2VEb3RGaWxlTGluZXM9bnVsbCx0aGlzLmJ1aWxkR3JhcGgoKCk9PntpZihudWxsIT09dGhpcy5wZW5k''@;'; + put 'put ''aW5nUmVuZGVyRG93bmxvYWQpe3N3aXRjaCh0aGlzLnBlbmRpbmdSZW5kZXJEb3dubG9hZCl7Y2FzZSJQTkciOnRoaXMuZG93bmxvYWRQTkcoKTticmVhaztjYXNlIlNWRyI6dGhpcy5kb3dubG9hZFNWRygpfXRoaXMucGVuZGluZ1JlbmRlckRvd25sb2FkPW51bGwsdGhpcy52aXpJbnB1dD0i''@;'; + put 'put ''ZGlncmFwaCBHIHtObyBMaW5lYWdlIEF2YWlsYWJsZX0iLHRoaXMuYnVpbGRHcmFwaCgpfX0pfXJlbmRlclRvRG93bmxvYWQoaCl7c3dpdGNoKGgpe2Nhc2UiUE5HIjp0aGlzLnBlbmRpbmdSZW5kZXJEb3dubG9hZD0iUE5HIix0aGlzLmNvbnRpbnVlUmVuZGVyaW5nR3JhcGgoKTticmVhaztj''@;'; + put 'put ''YXNlIlNWRyI6dGhpcy5wZW5kaW5nUmVuZGVyRG93bmxvYWQ9IlNWRyIsdGhpcy5jb250aW51ZVJlbmRlcmluZ0dyYXBoKCl9fW1ha2VHcmFwaExpbmthYmxlKGgpe2xldCB2PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNncmFwaCAubm9kZSIpO2ZvcihsZXQgeSBvZiB2KXtsZXQgaixD''@;'; + put 'put ''PXkucXVlcnlTZWxlY3RvcigidGl0bGUiKS5pbm5lckhUTUwsST1oLmZpbmQodWU9PnVlLk1FVEFJRD09PUMpO0kmJihqPSJUQUJMRSI9PT1JLk1FVEFUWVBFPyIvdmlldy9kYXRhLyIrSS5NRVRBTkFNRToiL3ZpZXcvbWV0YWRhdGEvb2JqZWN0LyIrSS5NRVRBSUQseS5jbGFzc0xpc3QuYWRk''@;'; + put 'put ''KCJjdXJzb3ItcG9pbnRlciIpLHkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHVlPT57dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChqKX0pKX19Z2VuZXJhdGVHcmFwaChoLHYseSl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgQz17U0FTQ29udHJvbFRh''@;'; + put 'put ''YmxlOlt7Y29sdXJpOmh8fHRoaXMuY29sdW1uLGRpcmVjdGlvbjp2fHx0aGlzLmRpcmVjdGlvblRleHQoKSxyZWZyZXNoOnRoaXMucmVmcmVzaENhY2hlPzE6MH1dfTtyZXR1cm4geSYmKEMuU0FTQ29udHJvbFRhYmxlWzBdLm1heF9kZXB0aD15KSx0aGlzLnRhYmxlRmxhZz0hMSx0aGlzLnN3''@;'; + put 'put ''aXRjaEZsYWc9ITAsdGhpcy5ncmFwaENvbnRhaW5lcj0hMCx0aGlzLmdyYXBoTG9hZGluZz0hMCx0aGlzLnZpeklucHV0PSIiLG5ldyBQcm9taXNlKChJLGopPT57dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoImxpbmVhZ2UvZmV0Y2hsaW5lYWdlIixDKS50aGVuKHVlPT5ubyh0aGlzLHZvaWQg''@;'; + put 'put ''MCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYoInN0cmluZyI9PXR5cGVvZiB1ZSlyZXR1cm4gdGhpcy52aXpJbnB1dD0iZGlncmFwaCBHIHtTQVMgRXJyb3J9Iix2b2lkIHRoaXMuYnVpbGRHcmFwaCgpO3RoaXMubGluZWFnZVRhYmxlTmFtZT11ZS5pbmZvWzBdLkxJQlJFRisiLiIrdWUuaW5mb1sw''@;'; + put 'put ''XS5UQUJOQU1FLHRoaXMubGluZWFnZUNvbHVtbk5hbWU9dWUuaW5mb1swXS5DT0xOQU1FLHRoaXMuaWRsb29rdXA9dWUuaWRsb29rdXA7bGV0IF9lPXVlLmZyb21zYXMsQmU9IiI7Zm9yKGxldCBOZT0wO05lPF9lLmxlbmd0aDtOZSsrKUJlKz11bmVzY2FwZShfZVtOZV0uU1RSSU5HKSsiXG4i''@;'; + put 'put ''O2lmKHRoaXMudml6SW5wdXQ9QmV8fCJkaWdyYXBoIEcge05vIExpbmVhZ2UgQXZhaWxhYmxlfSIsdGhpcy52aXpJbnB1dD10aGlzLnZpeklucHV0LnJlcGxhY2UoL1xzZHM6L2csIlxuZHM6IikucmVwbGFjZSgvXHNcbi9nLCJcbiIpLHRoaXMuZmxhdGRhdGE9dWUuZmxhdGRhdGEsdGhpcy5s''@;'; + put 'put ''aWJyYXJ5TGlzdCl7bGV0IEtlLE5lPXRoaXMubGlicmFyeUxpc3QuZmluZChkdD0+ZHQuTElCUkFSWVJFRj09PXVlLmluZm9bMF0uTElCUkVGKTtOZXx8KE5lPXRoaXMubGlicmFyeUxpc3QuZmluZChkdD0+ZHQubGlicmFyeXJlZj09PXVlLmluZm9bMF0ubGlicmVmKSksTmUmJih5aWVsZCB0''@;'; + put 'put ''aGlzLmxpYnJhcnlPbkNsaWNrKE5lLkxJQlJBUllJRCxOZSksTmUudGFibGVzJiYoS2U9TmUudGFibGVzLmZpbmQoZHQ9PmR0LlRBQkxFVVJJPT09dWUuaW5mb1swXS5UQUJVUkkpLHRoaXMudGFibGVPbkNsaWNrKEtlLlRBQkxFVVJJLEtlLE5lLCEwKS50aGVuKCgpPT57bGV0IGR0PUtlLlRB''@;'; + put 'put ''QkxFVVJJO2lmKGR0KXtjb25zdCBPdD1kdC5yZXBsYWNlKCJcXCIsIlxcXFwiKTtsZXQgJHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2lkPScke090fSddYCk7c2V0VGltZW91dCgoKT0+eyR0JiYodGhpcy5sb2dnZXJTZXJ2aWNlLmxvZygibGlicmFyeVRvU2VsZWN0IixOZSksJHQuc2Ny''@;'; + put 'put ''b2xsSW50b1ZpZXcoKSl9LDFlMyl9fSkpLE5lJiYoTmUuZXhwYW5kZWQ9ITApLEtlJiYoS2UuZXhwYW5kZWQ9ITApKX11ZS5mcm9tc2FzLmxlbmd0aD50aGlzLmxhcmdlRG90RmlsZUxpbWl0P3RoaXMubGFyZ2VEb3RGaWxlTGluZXM9dWUuZnJvbXNhcy5sZW5ndGg6dGhpcy5idWlsZEdyYXBo''@;'; + put 'put ''KCksSSgpfSkpLmNhdGNoKHVlPT57dGhpcy5ncmFwaExvYWRpbmc9ITEsdGhpcy5ncmFwaENvbnRhaW5lcj0hMX0pfSl9KX1nZXRTVkdVUkwoKXtsZXQgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JhcGgiKSx2PW5ldyBYTUxTZXJpYWxpemVyLHk9bmV3IEJsb2IoW3Yuc2VyaWFsaXpl''@;'; + put 'put ''VG9TdHJpbmcoaCldLHt0eXBlOiJpbWFnZS9zdmcreG1sIn0pO3JldHVybiBVUkwuY3JlYXRlT2JqZWN0VVJMKHkpfWdldFNWR0Jsb2IoKXtsZXQgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JhcGgiKSx2PW5ldyBYTUxTZXJpYWxpemVyO3JldHVybiBuZXcgQmxvYihbdi5zZXJpYWxp''@;'; + put 'put ''emVUb1N0cmluZyhoKV0se3R5cGU6ImltYWdlL3N2Zyt4bWwifSl9ZG93bmxvYWRTVkcoKXtpZihJbWUuZ3JhcGh2aXooIiNncmFwaCIpLnJlc2V0Wm9vbSgpLG5hdmlnYXRvci5hcHBWZXJzaW9uLnRvU3RyaW5nKCkuaW5kZXhPZigiLk5FVCIpPjApd2luZG93Lm5hdmlnYXRvci5tc1NhdmVC''@;'; + put 'put ''bG9iKHRoaXMuZ2V0U1ZHQmxvYigpLHRoaXMuY29uc3RydWN0TmFtZSgic3ZnIikpO2Vsc2V7bGV0IGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2guaHJlZj10aGlzLmdldFNWR1VSTCgpLGguZG93bmxvYWQ9dGhpcy5jb25zdHJ1Y3ROYW1lKCJzdmciKSxkb2N1bWVudC5ib2R5LmFw''@;'; + put 'put ''cGVuZENoaWxkKGgpLGguY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGgpfX1kb3dubG9hZFBORygpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7SW1lLmdyYXBodml6KCIjZ3JhcGgiKS5yZXNldFpvb20oKSxrN3Quc2F2ZVN2Z0FzUG5nKGRvY3Vt''@;'; + put 'put ''ZW50LnF1ZXJ5U2VsZWN0b3IoIiNncmFwaCBzdmciKSx0aGlzLmNvbnN0cnVjdE5hbWUoInBuZyIpKX0pfWRvd25sb2FkQ1NWKCl7bGV0IGg9dGhpcy5mbGF0ZGF0YTtjb25zdCB2PShCZSxOZSk9Pm51bGw9PT1OZT8iIjpOZSx5PU9iamVjdC5rZXlzKGhbMF0pO2xldCBDPWgubWFwKEJlPT55''@;'; + put 'put ''Lm1hcChOZT0+SlNPTi5zdHJpbmdpZnkoQmVbTmVdLHYpKS5qb2luKCIsIikpO0MudW5zaGlmdCh5LmpvaW4oIiwiKSk7bGV0IEk9Qy5qb2luKCJcclxuIik7dmFyIGo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLHVlPW5ldyBCbG9iKFtJXSx7dHlwZToidGV4dC9jc3YifSk7aWYobmF2''@;'; + put 'put ''aWdhdG9yLmFwcFZlcnNpb24udG9TdHJpbmcoKS5pbmRleE9mKCIuTkVUIik+MCl3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IodWUsdGhpcy5jb25zdHJ1Y3ROYW1lKCJjc3YiKSk7ZWxzZXt2YXIgX2U9d2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwodWUpO2ouaHJlZj1fZSxqLmRvd25s''@;'; + put 'put ''b2FkPXRoaXMuY29uc3RydWN0TmFtZSgiY3N2Iiksai5jbGljaygpLHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKF9lKSxqLnJlbW92ZSgpfX1nZXREb3RVcmwoKXtsZXQgdj1uZXcgQmxvYihbdGhpcy52aXpJbnB1dF0se3R5cGU6InRleHQvcGxhaW4ifSk7cmV0dXJuIHdpbmRvdy5VUkwu''@;'; + put 'put ''Y3JlYXRlT2JqZWN0VVJMKHYpfWdldERvdEJsb2IoKXtyZXR1cm4gbmV3IEJsb2IoW3RoaXMudml6SW5wdXRdLHt0eXBlOiJ0ZXh0L3BsYWluIn0pfWRvd25sb2FkRG90KCl7aWYobmF2aWdhdG9yLmFwcFZlcnNpb24udG9TdHJpbmcoKS5pbmRleE9mKCIuTkVUIik+MCl3aW5kb3cubmF2aWdh''@;'; + put 'put ''dG9yLm1zU2F2ZUJsb2IodGhpcy5nZXREb3RCbG9iKCksdGhpcy5jb25zdHJ1Y3ROYW1lKCJ0eHQiKSk7ZWxzZXtsZXQgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7aC5ocmVmPXRoaXMuZ2V0RG90VXJsKCksaC5kb3dubG9hZD10aGlzLmNvbnN0cnVjdE5hbWUoInR4dCIpLGRvY3Vt''@;'; + put 'put ''ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaCksaC5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaCl9fXNob3dTdmcoKXt3aW5kb3cub3Blbih0aGlzLmdldFNWR1VSTCgpLCJfYmxhbmsiKX1idWlsZEdyYXBoKGgpe3RoaXMuZXZlbnRTZXJ2aWNlLmNsb3NlU2lkZWJhcigpLHRoaXMu''@;'; + put 'put ''Z3JhcGhMb2FkaW5nPSExLHRoaXMuZ3JhcGhSZW5kZXJpbmc9ITAsc2V0VGltZW91dCgoKT0+e0ltZS5ncmFwaHZpeigiI2dyYXBoIikuem9vbSghMCkudG90YWxNZW1vcnkoNjcxMDg4NjQpLmFkZEltYWdlKCJodHRwczovL2RhdGFjb250cm9sbGVyLmlvL3dwLWNvbnRlbnQvdXBsb2Fkcy8y''@;'; + put 'put ''MDIwLzAxL2ZjMS5wbmciLCIzMHB4IiwiMzBweCIpLnJlbmRlckRvdCh0aGlzLnZpeklucHV0LCgpPT57dGhpcy5ncmFwaFJlbmRlcmluZz0hMSx0aGlzLmlkbG9va3VwJiZ0aGlzLm1ha2VHcmFwaExpbmthYmxlKHRoaXMuaWRsb29rdXApLGgmJmgoKX0pfSwxMDApfWNvbnN0cnVjdE5hbWUo''@;'; + put 'put ''aCl7bGV0IHY9IiIseT0iIixDPSIiLEk9dDl0KCkuZm9ybWF0KCJZWU1NRERfSEhtbSIpO2lmKHRoaXMubGlicmFyeUxpc3QmJnRoaXMubGlicmFyeUxpc3QubGVuZ3RoKXtsZXQgaj10aGlzLmxpYnJhcnlMaXN0LmZpbmQodWU9PnVlLkxJQlJBUllJRD09dGhpcy5saWIpO2omJih2PWBfJHtq''@;'; + put 'put ''LkxJQlJBUllOQU1FfWApfWlmKHRoaXMudGFibGVzTGlzdCYmdGhpcy50YWJsZXNMaXN0Lmxlbmd0aCl7bGV0IGo9dGhpcy50YWJsZXNMaXN0LmZpbmQodWU9PnVlLlRBQkxFVVJJPT10aGlzLnRhYmxlKTtqJiYoeT1gXyR7ai5UQUJMRU5BTUV9YCl9aWYodGhpcy5jb2x1bW5zTGlzdCYmdGhp''@;'; + put 'put ''cy5jb2x1bW5zTGlzdC5sZW5ndGgpe2xldCBqPXRoaXMuY29sdW1uc0xpc3QuZmluZCh1ZT0+dWUuQ09MVVJJPT10aGlzLmNvbHVtbik7aiYmKEM9YF8ke2ouQ09MTkFNRX1gKX1yZXR1cm5gJHt0aGlzLmRpcmVjdGlvblRleHQoKX0ke3Z9JHt5fSR7Q31fJHtJfS4ke2h9YH19cmV0dXJuIGQu''@;'; + put 'put ''XHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoZzIpLFh0KFB1KSxYdChabCksWHQoVjYpLFh0KG11KSxYdChzYyksWHQoWGMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLWxpbmVhZ2UiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNv''@;'; + put 'put ''bnRhaW5lciJdLGRlY2xzOjQxLHZhcnM6OSxjb25zdHM6W1szLCJzY3JvbGxlZFRvQm90dG9tIl0sWyJjbGFzcyIsInNlYXJjaC1ub2RlIiw0LCJuZ0lmIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsic3R5bGUiLCJ3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyIiw0LCJuZ0lmIl0s''@;'; + put 'put ''WzEsImNvbnRlbnQtYXJlYSJdLFsxLCJjYXJkIl0sWyJjbGFzcyIsIm5vLXRhYmxlLXNlbGVjdGVkIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxDbG9zYWJsZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsIm1vZGFsLWZv''@;'; + put 'put ''b3RlciIsMiwiZGlzcGxheSIsImZsZXgiLCJmbGV4LWRpcmVjdGlvbiIsImNvbHVtbiJdLFsxLCJiaWdsaW5lYWdlLXJvdyJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl0sWyJjbHJEcm9wZG93blRyaWdnZXIiLCIiLDEsImJ0biIs''@;'; + put 'put ''ImJ0bi1zbSIsImJ0bi1wcmltYXJ5IiwyLCJtYXJnaW4tdG9wIiwiLTNweCIsMywiZGlzYWJsZWQiXSxbInNoYXBlIiwiY2FyZXQgZG93biJdLFsiY2xyUG9zaXRpb24iLCJib3R0b20tbGVmdCIsNCwiY2xySWZPcGVuIl0sWyJ0eXBlIiwibnVtYmVyIiwibWluIiwiMSIsInBsYWNlaG9sZGVy''@;'; + put 'put ''IiwiTWF4IGRlcHRoIHZhbHVlIiwxLCJjbHItaW5wdXQiLDIsIndpZHRoIiwiMTIwcHgiXSxbIm1heERlcHRoIiwiIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJMaWJyYXJpZXMiLCJuYW1lIiwiaW5w''@;'; + put 'put ''dXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaExpYlRyZWVJbnB1dCIsIiJdLFsic2hhcGUiLCJzZWFyY2giLDQsIm5nSWYiXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInNl''@;'; + put 'put ''YXJjaCJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siXSxbMywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xyLWV4cGFuZGVkIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSIsNCwibmdJZiJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbGljayIsImNsckV4cGFu''@;'; + put 'put ''ZGVkQ2hhbmdlIl0sWzEsIm0tMCIsImN1cnNvci1wb2ludGVyIiwzLCJjbGljayJdLFsic2hhcGUiLCJyYWNrLXNlcnZlciJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbHItZXhwYW5kZWQiLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIiw0LCJuZ0ZvciIsIm5nRm9yT2Yi''@;'; + put 'put ''XSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJUYWJsZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaFRyZWVJbnB1dCIsIiJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsMywi''@;'; + put 'put ''aWQiLCJjbGljayJdLFsic2hhcGUiLCJ0YWJsZSJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIkNvbHVtbnMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbMSwiY2xyLXRyZWVub2RlLWxpbmsi''@;'; + put 'put ''LDMsImNsaWNrIl0sWyJzaGFwZSIsIm9iamVjdHMiXSxbMiwid2lkdGgiLCIxMDAlIiwidGV4dC1hbGlnbiIsImNlbnRlciJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1zbSJdLFsxLCJuby10YWJsZS1zZWxlY3RlZCJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwic2l6ZSIsIjYwIiwx''@;'; + put 'put ''LCJpcy1pbmZvIiwyLCJmaWxsIiwiIzgxYjQ0MCJdLFsyLCJ0ZXh0LWFsaWduIiwiY2VudGVyIiwiY29sb3IiLCIjNWE1YTVhIl0sWyJjbGFzcyIsImNhcmQtaGVhZGVyIiwic3R5bGUiLCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQ6IGNl''@;'; + put 'put ''bnRlciIsNCwibmdJZiJdLFsxLCJjYXJkLWJsb2NrIl0sWzEsImZvcm0tYmxvY2siLCJzdyIsImNsci1yb3ciLDIsInBvc2l0aW9uIiwicmVsYXRpdmUiLCJkaXNwbGF5IiwiZmxleCIsImFsaWduLWl0ZW1zIiwiY2VudGVyIl0sWzIsImRpc3BsYXkiLCJmbGV4IiwiYWxpZ24taXRlbXMiLCJj''@;'; + put 'put ''ZW50ZXIiLCJmb250LXdlaWdodCIsImJvbGQiLCJwb3NpdGlvbiIsImFic29sdXRlIiwibGVmdCIsIjEycHgiXSxbInN0eWxlIiwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCIsImNsYXNzIiwiY2xyLWNvbC1tZC0xMiB0ZXh0LWNlbnRlciIsNCwibmdJZiJdLFsz''@;'; + put 'put ''LCJtdC0yIiw0LCJuZ0lmIl0sWzEsImNhcmQtaGVhZGVyIiwyLCJkaXNwbGF5IiwiZmxleCIsImZsZXgtZGlyZWN0aW9uIiwiY29sdW1uIiwianVzdGlmeS1jb250ZW50IiwiY2VudGVyIl0sWyJzdHlsZSIsInRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZy1ib3R0b206IDEwcHgiLDQsIm5n''@;'; + put 'put ''SWYiXSxbMiwidGV4dC1hbGlnbiIsImNlbnRlciIsInBhZGRpbmctYm90dG9tIiwiMTBweCJdLFszLCJyb3V0ZXJMaW5rIl0sWzEsImNsci1jb2wtbWQtMTIiLCJ0ZXh0LWNlbnRlciIsMiwiZGlzcGxheSIsImZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQiLCJmbGV4LWVuZCJdLFsxLCJidG4tZ3Jv''@;'; + put 'put ''dXAiLDIsImRpc3BsYXkiLCJibG9jayJdLFsxLCJyYWRpbyIsImJ0biIsMywiY2xpY2siXSxbInR5cGUiLCJyYWRpbyIsIm5hbWUiLCJidG4tZ3JvdXAtZGVtby1yYWRpb3MiLDMsImNoZWNrZWQiXSxbMiwibWFyZ2luLXJpZ2h0IiwiMC41cmVtIl0sWyJjbHJEcm9wZG93blRyaWdnZXIiLCIi''@;'; + put 'put ''LDEsImJ0biIsImJ0bi1pbmZvLW91dGxpbmUiLDMsImRpc2FibGVkIl0sWyJzdHlsZSIsImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXIiLDQsIm5nSWYiXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLWxlZnQiXSxbImNsckRyb3Bkb3duSXRlbSIsIiIsMywiY2xpY2siXSxbImNs''@;'; + put 'put ''ckRyb3Bkb3duSXRlbSIsIiIsMywiY2xpY2siLDQsIm5nSWYiXSxbMiwiZGlzcGxheSIsImZsZXgiLCJhbGlnbi1pdGVtcyIsImNlbnRlciJdLFsidHlwZSIsImNoZWNrYm94IiwiY2xyQ2hlY2tib3giLCIiLCJuYW1lIiwicmVmcmVzaENhY2hlIiwzLCJuZ01vZGVsIiwiY2hhbmdlIiwibmdN''@;'; + put 'put ''b2RlbENoYW5nZSJdLFsxLCJ0ZXh0LWNlbnRlciJdLFsiY2xhc3MiLCJzcGlubmVyIiw0LCJuZ0lmIl0sWyJzdHlsZSIsInBvc2l0aW9uOiByZWxhdGl2ZSIsNCwibmdJZiJdLFsxLCJzcGlubmVyIl0sWzIsInBvc2l0aW9uIiwicmVsYXRpdmUiXSxbMSwiZ3JhcGgtcmVuZGVyLXNwaW5uZXIi''@;'; + put 'put ''XSxbImNsYXNzIiwic3Bpbm5lciBzcGlubmVyLXNtIiw0LCJuZ0lmIl0sWyJpZCIsImdyYXBoIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7aWYoMSZoKXtjb25zdCB5PV9pKCk7aXQoMCwiYXBwLXNpZGViYXIiLDApLFluKCJzY3JvbGxlZFRvQm90dG9tIixmdW5jdGlvbigpe3JldHVybiB2''@;'; + put 'put ''LmxvYWRNb3JlTGlicmFyaWVzKCl9KSxpdCgxLCJjbHItdHJlZSIpLHJuKDIsRTd0LDYsMywiY2xyLXRyZWUtbm9kZSIsMSkscm4oMyxGN3QsMiwxLCJuZy1jb250YWluZXIiLDIpLHN0KCkscm4oNCxIN3QsMywwLCJkaXYiLDMpLHN0KCksaXQoNSwiZGl2Iiw0KSg2LCJkaXYiLDUpLHJuKDcs''@;'; + put 'put ''Tjd0LDQsMCwiZGl2Iiw2KSxybig4LCQ3dCw4LDQsIm5nLWNvbnRhaW5lciIsNyksc3QoKSgpLGl0KDksImNsci1tb2RhbCIsOCkoMTAsImgzIiw5KSxVdCgxMSwiV2FybmluZyIpLHN0KCksaXQoMTIsImRpdiIsMTApKDEzLCJwIiksVXQoMTQpLHN0KCkoKSxpdCgxNSwiZGl2IiwxMSkoMTYs''@;'; + put 'put ''ImRpdiIsMTIpKDE3LCJwIiksVXQoMTgsIlJlbmRlciBhbnl3YXkgKHRoaXMgbWF5IHRha2UgYSBsb25nIHRpbWUpIiksc3QoKSxpdCgxOSwiYnV0dG9uIiwxMyksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmNvbnRpbnVlUmVuZGVyaW5nR3JhcGgoKX0pLFV0KDIwLCIgUmVuZGVy''@;'; + put 'put ''ICIpLHN0KCkoKSxpdCgyMSwiZGl2IiwxMikoMjIsInAiKSxVdCgyMywiRG93bmxvYWQgdGhlIHJlc3VsdCAoUE5HICYgU1ZHIHJlcXVpcmUgcmVuZGVyaW5nKSIpLHN0KCksaXQoMjQsImNsci1kcm9wZG93biIpKDI1LCJidXR0b24iLDE0KSxVdCgyNiwiIERvd25sb2FkICIpLENyKDI3LCJj''@;'; + put 'put ''bHItaWNvbiIsMTUpLHN0KCkscm4oMjgsZTl0LDYsMSwiY2xyLWRyb3Bkb3duLW1lbnUiLDE2KSxzdCgpKCksaXQoMjksImRpdiIsMTIpKDMwLCJwIiksVXQoMzEsIlJlc3VibWl0IHdpdGggYSBtYXgtZGVwdGggKHNwZWNpZnkgZGVwdGgpIiksc3QoKSxDcigzMiwiaW5wdXQiLDE3LDE4KSxp''@;'; + put 'put ''dCgzNCwiYnV0dG9uIiwxMyksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KHkpO2NvbnN0IEk9eWEoMzMpO3JldHVybiBhKHYucmVzdWJtaXRXaXRoTWF4RGVwdGgoSS52YWx1ZSkpfSksVXQoMzUsIiBSZXN1Ym1pdCAiKSxzdCgpKCksaXQoMzYsImRpdiIsMTIpKDM3LCJwIiksVXQoMzgsIkNh''@;'; + put 'put ''bmNlbCB0aGlzIHN1Ym1pc3Npb24iKSxzdCgpLGl0KDM5LCJidXR0b24iLDEzKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuY2FuY2VsUmVuZGVyaW5nR3JhcGgoKX0pLFV0KDQwLCIgQ2FuY2VsICIpLHN0KCkoKSgpKCl9MiZoJiYodXQoMiksVHQoIm5nSWYiLHYubGlicmFyeUxp''@;'; + put 'put ''c3QpLHV0KDEpLFR0KCJuZ0Zvck9mIix2LmxpYnJhcnlMaXN0KSx1dCgxKSxUdCgibmdJZiIsdi5saWJyYXJpZXNQYWdpbmcpLHV0KDMpLFR0KCJuZ0lmIiwhdi5jb2x1bW4mJiF2LnRhYmxlKSx1dCgxKSxUdCgibmdJZiIsdi5jb2x1bW58fHYudGFibGUpLHV0KDEpLFR0KCJjbHJNb2RhbE9w''@;'; + put 'put ''ZW4iLG51bGwhPT12LmxhcmdlRG90RmlsZUxpbmVzKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLHV0KDUpLEppKCIgVGhlIGdlbmVyYXRlZCBkb3QgZmlsZSBoYXMgIix2LmxhcmdlRG90RmlsZUxpbmVzLCIgbGluZXMuIFJlbmRlcmluZyBtYXkgdGFrZSBhIGxvbmcgdGltZSwgaG93IHdvdWxk''@;'; + put 'put ''IHlvdSBsaWtlIHRvIHByb2NlZWQ/ICIpLHV0KDExKSxUdCgiZGlzYWJsZWQiLCF2LmNvbHVtbiYmIXYudGFibGUpKX0sZGVwZW5kZW5jaWVzOltacyxWbyxtMSxJZixFcyx4cyx2Nyx5OSxfZyxaTCx3bCxmNCxoNCxnbyxaYSxvdCxSbyxPaSxwOSxndyx6TCxHTCx1Wix5U10sc3R5bGVzOlsi''@;'; + put 'put ''LnRvZ2dsZS1zd2l0Y2hbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT1jaGVja2JveF1bX25nY29udGVudC0lQ09NUCVdOmNoZWNrZWQgKyBsYWJlbFtfbmdjb250ZW50LSVDT01QJV06YmVmb3Jle2JvcmRlci1jb2xvcjojMzE0MzUxO2JhY2tncm91bmQtY29sb3I6IzMxNDM1MSFp''@;'; + put 'put ''bXBvcnRhbnQ7dHJhbnNpdGlvbjouMTVzIGVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpib3JkZXItY29sb3IsYmFja2dyb3VuZC1jb2xvcn0jZ3JhcGhbX25nY29udGVudC0lQ09NUCVde2hlaWdodDpjYWxjKDEwMHZoIC0gMTk1cHgpO292ZXJmbG93OmhpZGRlbjt0ZXh0LWFsaWduOmNl''@;'; + put 'put ''bnRlcjtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7Ym9yZGVyOjFweCBzb2xpZCAjZTRlNGU0O21hcmdpbi10b3A6MTBweH0uc2VsZWN0aW9uLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7bWF4LXdpZHRoOjY3MHB4fS5jb2x1bW4tYWN0aXZlW19uZ2NvbnRlbnQtJUNP''@;'; + put 'put ''TVAlXXtiYWNrZ3JvdW5kOiNkOGUzZTk7Y29sb3I6IzAwMH0uY29udGVudC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41cmVtIWltcG9ydGFudH0uY29udGVudC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OmNh''@;'; + put 'put ''bGMoMTAwdmggLSAxMjBweCl9LmNvbnRlbnQtYXJlYVtfbmdjb250ZW50LSVDT01QJV0gICAuY2FyZFtfbmdjb250ZW50LSVDT01QJV0gICAuY2FyZC1ibG9ja1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNXJlbSAuMzVyZW0haW1wb3J0YW50fWNsci10cmVlLW5vZGVbX25nY29udGVu''@;'; + put 'put ''dC0lQ09NUCVdICAgYnV0dG9uW19uZ2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXB9LmdyYXBoLXJlbmRlci1zcGlubmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2Vu''@;'; + put 'put ''dGVyO21hcmdpbi10b3A6MTBweH0uYmlnbGluZWFnZS1yb3dbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbToyMHB4fS5tb2RhbC1mb290ZXJbX25nY29udGVudC0lQ09N''@;'; + put 'put ''UCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjB9QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KXsudG9nZ2xlLXN3aXRjaC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi1ib3R0b206MjBweH19Il19KSxkfSkoKTtmdW5jdGlvbiBuOXQoZCxnKXtpZigxJmQmJihp''@;'; + put 'put ''dCgwLCJvcHRpb24iLDEwKSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7STYoInZhbHVlIixoKSx1dCgxKSxKaSgiICIsaCwiICIpfX1mdW5jdGlvbiByOXQoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwxNyl9ZnVuY3Rpb24gaTl0KGQsZyl7aWYoMSZkKXtjb25zdCBo''@;'; + put 'put ''PV9pKCk7aXQoMCwiY2xyLWljb24iLDE4KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT1LdCgyKTtyZXR1cm4geS5tZXRhRGF0YVNlYXJjaD0iIixhKHkubWV0YUxpc3RPbkZpbHRlcigpKX0pLHN0KCl9fWZ1bmN0aW9uIG85dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgp''@;'; + put 'put ''O2l0KDAsImNsci10cmVlLW5vZGUiLDExKSgxLCJkaXYiLDEyKSgyLCJpbnB1dCIsMTMsMTQpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLm1ldGFEYXRhU2VhcmNoPXkpfSkoImtleXVwIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCku''@;'; + put 'put ''bWV0YUxpc3RPbkZpbHRlcigpKX0pLHN0KCkscm4oNCxyOXQsMSwwLCJjbHItaWNvbiIsMTUpLHJuKDUsaTl0LDEsMCwiY2xyLWljb24iLDE2KSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPXlhKDMpLHY9S3QoKTt1dCgyKSxUdCgibmdNb2RlbCIsdi5tZXRhRGF0YVNlYXJjaCksdXQoMiksVHQo''@;'; + put 'put ''Im5nSWYiLGgudmFsdWUubGVuZ3RoPDEpLHV0KDEpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gYTl0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiY2xyLXRyZWUtbm9kZSIsMjApLFluKCJjbGljayIsZnVuY3Rpb24oeSl7cnQoaCk7Y29uc3QgQz1LdCgp''@;'; + put 'put ''LiRpbXBsaWNpdCxJPUt0KCk7cmV0dXJuIGEoSS50cmVlTm9kZUNsaWNrZWQoeSxDLEkubWV0YURhdGFMaXN0KSl9KSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KCkuJGltcGxpY2l0LmV4cGFuZGVkPXkpfSksaXQoMSwicCIsMjEpLFluKCJjbGlj''@;'; + put 'put ''ayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KCkuJGltcGxpY2l0LEM9S3QoKTtyZXR1cm4gQy5tZXRhRGF0YUlkPXkuSUQsYShDLm1ldGFEYXRhT25DbGljayhDLm1ldGFEYXRhSWQseSkpfSksQ3IoMiwiY2xyLWljb24iLDIyKSxVdCgzKSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPUt0''@;'; + put 'put ''KCkuJGltcGxpY2l0O1R0KCJjbHJFeHBhbmRlZCIsaC5leHBhbmRlZCkoImNsckxvYWRpbmciLGgubG9hZGluZ1RhYmxlcyYmIWgudGFibGVzKSx1dCgzKSxKaSgiICIsaC5JRCwiICIpfX1mdW5jdGlvbiBsOXQoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLGE5dCw0LDMsImNsci10cmVlLW5v''@;'; + put 'put ''ZGUiLDE5KSxIMCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoIm5nSWYiLCFoLmhpZGRlbil9fWZ1bmN0aW9uIHM5dChkLGcpezEmZCYmKGl0KDAsImRpdiIsMjMpLENyKDEsImNsci1pY29uIiwyNCksaXQoMiwiaDMiLDI1KSxVdCgzLCJQbGVhc2Ugc2VsZWN0IGEgdHlw''@;'; + put 'put ''ZSIpLHN0KCkoKSl9ZnVuY3Rpb24gdTl0KGQsZyl7MSZkJiYoaXQoMCwiaDQiKSxVdCgxLCJMb2FkaW5nIG1ldGFkYXRhIHR5cGVzIiksc3QoKSl9ZnVuY3Rpb24gYzl0KGQsZyl7MSZkJiYoaXQoMCwiaDQiKSxVdCgxLCJMb2FkaW5nIG1ldGFkYXRhIG9iamVjdHMiKSxzdCgpKX1mdW5jdGlv''@;'; + put 'put ''biBmOXQoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiKSxybigxLHU5dCwyLDAsImg0IiwyOCkscm4oMixjOXQsMiwwLCJoNCIsMjgpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCgxKSxUdCgibmdJZiIsaC5tZXRhdHlwZXNMb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsIWgubWV0YXR5cGVz''@;'; + put 'put ''TG9hZGluZyl9fWZ1bmN0aW9uIGg5dChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsMjYpKDEsInNwYW4iLDI3KSxVdCgyLCIgTG9hZGluZy4uLiAiKSxzdCgpLHJuKDMsZjl0LDMsMiwiZGl2IiwyOCksc3QoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMyksVHQoIm5nSWYiLGgubG9hZGluZyl9''@;'; + put 'put ''fWZ1bmN0aW9uIGQ5dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImRpdiIsMzUpKDEsImlucHV0IiwzNiwzNyksWW4oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KDIpLm1ldGFPYmplY3RTZWFyY2g9eSl9KSgia2V5dXAiLGZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHJ0KGgpLGEoS3QoMikubWV0YU9iamVjdE9uRmlsdGVyKCkpfSksc3QoKSgpfWlmKDImZCl7Y29uc3QgaD1LdCgyKTt1dCgxKSxUdCgibmdNb2RlbCIsaC5tZXRhT2JqZWN0U2VhcmNoKX19ZnVuY3Rpb24gcDl0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsNDEpfWZ1bmN0aW9u''@;'; + put 'put ''IGc5dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDIyKX1mdW5jdGlvbiBtOXQoZCxnKXtpZigxJmQmJihpdCgwLCJwIiw1MiksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPUt0KCkuJGltcGxpY2l0O3V0KDEpLEppKCIgIixoLlVSSSwiICIpfX1mdW5jdGlvbiB2OXQoZCxnKXtpZigxJmQm''@;'; + put 'put ''JihpdCgwLCJjbHItdHJlZS1ub2RlIiw0NykoMSwiZGl2Iiw0OCkscm4oMixwOXQsMSwwLCJjbHItaWNvbiIsNDkpLHJuKDMsZzl0LDEsMCwiY2xyLWljb24iLDUwKSxVdCg0KSxybig1LG05dCwyLDEsInAiLDUxKSxzdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgiY2xyRXhw''@;'; + put 'put ''YW5kYWJsZSIsITApLHV0KDEpLEZpKCJvYmplY3QtaGVhZGVyIiwhaC5jb3VudCksdXQoMSksVHQoIm5nSWYiLCFoLmNvdW50KSx1dCgxKSxUdCgibmdJZiIsaC5jb3VudCksdXQoMSksSmkoIiAiLGguZGlzcGxheSwiICIpLHV0KDEpLFR0KCJuZ0lmIiwhaC5jb3VudCl9fWZ1bmN0aW9uIEE5''@;'; + put 'put ''dChkLGcpe2lmKDEmZCYmKGl0KDAsImNsci10cmVlIiw0NSkscm4oMSx2OXQsNiw3LCJjbHItdHJlZS1ub2RlIiw0Niksbm4oMiwiYXN5bmMiKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoNik7VHQoImNsckxhenkiLCEwKSx1dCgxKSxUdCgiY2xyUmVjdXJzaXZlRm9yT2YiLHp0KDIsMyxoLnJv''@;'; + put 'put ''b3QkKSkoImNsclJlY3Vyc2l2ZUZvckdldENoaWxkcmVuIixoLmdldENoaWxkcmVuKX19ZnVuY3Rpb24geTl0KGQsZyl7aWYoMSZkJiYoaXQoMCwiY2xyLWFjY29yZGlvbi1jb250ZW50Iikscm4oMSxBOXQsMyw1LCJjbHItdHJlZSIsNDQpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCg1KTt1dCgx''@;'; + put 'put ''KSxUdCgibmdJZiIsaC5zaG93QWNjKX19ZnVuY3Rpb24gdzl0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiY2xyLWFjY29yZGlvbi1wYW5lbCIsNDApLFluKCJjbHJBY2NvcmRpb25QYW5lbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKHkpe3J0KGgpO2NvbnN0IEM9S3QoKS4kaW1wbGlj''@;'; + put 'put ''aXQsST1LdCgzKTtyZXR1cm4gYSh5P0kucGFuZWxDaGFuZ2UoeSxDKToiIil9KSxpdCgxLCJjbHItYWNjb3JkaW9uLXRpdGxlIiksQ3IoMiwiY2xyLWljb24iLDQxKSxVdCgzKSxpdCg0LCJwIiw0MiksVXQoNSksc3QoKSgpLHJuKDYseTl0LDIsMSwiY2xyLWFjY29yZGlvbi1jb250ZW50Iiw0''@;'; + put 'put ''Myksc3QoKX1pZigyJmQpe2NvbnN0IGg9S3QoKS4kaW1wbGljaXQ7dXQoMyksSmkoIiAiLGguTkFNRSwiICIpLHV0KDIpLEdpKGguSUQpfX1mdW5jdGlvbiBiOXQoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLHc5dCw3LDIsImNsci1hY2NvcmRpb24tcGFuZWwiLDM5KSxIMCgpKSwyJmQpe2Nv''@;'; + put 'put ''bnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoIm5nSWYiLCFoLmhpZGRlbil9fWZ1bmN0aW9uIF85dChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsMzgpKDEsImNsci1hY2NvcmRpb24iKSxybigyLGI5dCwyLDEsIm5nLWNvbnRhaW5lciIsNCksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3QoMik7''@;'; + put 'put ''dXQoMiksVHQoIm5nRm9yT2YiLGgubWV0YU9iamVjdFNob3dMaXN0KX19ZnVuY3Rpb24gQzl0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsNDEpfWZ1bmN0aW9uIGs5dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDIyKX1mdW5jdGlvbiBTOXQoZCxnKXtpZigxJmQmJihpdCgwLCJwIiw1''@;'; + put 'put ''MiksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPUt0KCkuJGltcGxpY2l0O3V0KDEpLEppKCIgIixoLlVSSSwiICIpfX1mdW5jdGlvbiBNOXQoZCxnKXtpZigxJmQmJihpdCgwLCJjbHItdHJlZS1ub2RlIiw0NykoMSwiZGl2Iiw0OCkscm4oMixDOXQsMSwwLCJjbHItaWNvbiIsNDkpLHJuKDMs''@;'; + put 'put ''azl0LDEsMCwiY2xyLWljb24iLDUwKSxVdCg0KSxybig1LFM5dCwyLDEsInAiLDUxKSxzdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgiY2xyRXhwYW5kYWJsZSIsITApLHV0KDEpLEZpKCJvYmplY3QtaGVhZGVyIiwhaC5jb3VudCksdXQoMSksVHQoIm5nSWYiLCFoLmNvdW50''@;'; + put 'put ''KSx1dCgxKSxUdCgibmdJZiIsaC5jb3VudCksdXQoMSksSmkoIiAiLGguZGlzcGxheSwiICIpLHV0KDEpLFR0KCJuZ0lmIiwhaC5jb3VudCl9fWZ1bmN0aW9uIEU5dChkLGcpe2lmKDEmZCYmKGl0KDAsImNsci10cmVlIiw0NSkscm4oMSxNOXQsNiw3LCJjbHItdHJlZS1ub2RlIiw0Niksbm4o''@;'; + put 'put ''MiwiYXN5bmMiKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoNCk7VHQoImNsckxhenkiLCEwKSx1dCgxKSxUdCgiY2xyUmVjdXJzaXZlRm9yT2YiLHp0KDIsMyxoLnJvb3QkKSkoImNsclJlY3Vyc2l2ZUZvckdldENoaWxkcmVuIixoLmdldENoaWxkcmVuKX19ZnVuY3Rpb24geDl0KGQsZyl7aWYo''@;'; + put 'put ''MSZkJiYoRjAoMCksaXQoMSwiZGl2Iiw1MyksQ3IoMiwiY2xyLWljb24iLDQxKSxpdCgzLCJkaXYiLDU0KSg0LCJwIiw1NSksVXQoNSksc3QoKSxpdCg2LCJwIiw1NiksVXQoNyksc3QoKSgpKCkscm4oOCxFOXQsMyw1LCJjbHItdHJlZSIsNDQpLEgwKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBs''@;'; + put 'put ''aWNpdCx2PUt0KDMpO3V0KDUpLEppKCIgIixoLk5BTUUsIiAiKSx1dCgyKSxKaSgiICIsaC5JRCwiICIpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dBY2MpfX1mdW5jdGlvbiBUOXQoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDM4KSxybigxLHg5dCw5LDMsIm5nLWNvbnRhaW5lciIsNCksc3Qo''@;'; + put 'put ''KSksMiZkKXtjb25zdCBoPUt0KDIpO3V0KDEpLFR0KCJuZ0Zvck9mIixoLm1ldGFPYmplY3RTaG93TGlzdCl9fWZ1bmN0aW9uIEk5dChkLGcpe2lmKDEmZCYmKGl0KDAsImNsci1kZy1yb3ciKSgxLCJjbHItZGctY2VsbCIpLFV0KDIpLHN0KCksaXQoMywiY2xyLWRnLWNlbGwiKSxVdCg0KSxz''@;'; + put 'put ''dCgpLGl0KDUsImNsci1kZy1jZWxsIiksVXQoNiksc3QoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMiksR2koaC5UWVBFKSx1dCgyKSxHaShoLk5BTUUpLHV0KDIpLEdpKGguVkFMVUUpfX1jb25zdCBEOXQ9ZnVuY3Rpb24oKXtyZXR1cm5bMTAsMjAsNTAsMTAwXX07ZnVuY3Rp''@;'; + put 'put ''b24gTDl0KGQsZyl7aWYoMSZkJiYoaXQoMCwiY2xyLWRhdGFncmlkIiw1NykoMSwiY2xyLWRnLWNvbHVtbiIpLFV0KDIsIiBUWVBFICIpLENyKDMsImNsci1kZy1zdHJpbmctZmlsdGVyIiw1OCksc3QoKSxpdCg0LCJjbHItZGctY29sdW1uIiksVXQoNSwiIE5BTUUgIiksQ3IoNiwiY2xyLWRn''@;'; + put 'put ''LXN0cmluZy1maWx0ZXIiLDU4KSxzdCgpLGl0KDcsImNsci1kZy1jb2x1bW4iKSxVdCg4LCIgVkFMVUUgIiksQ3IoOSwiY2xyLWRnLXN0cmluZy1maWx0ZXIiLDU4KSxzdCgpLHJuKDEwLEk5dCw3LDMsImNsci1kZy1yb3ciLDU5KSxpdCgxMSwiY2xyLWRnLWZvb3RlciIpKDEyLCJjbHItZGct''@;'; + put 'put ''cGFnaW5hdGlvbiIsNjAsNjEpKDE0LCJjbHItZGctcGFnZS1zaXplIiw2MiksVXQoMTUsIkF0dHJpYnV0ZXMgcGVyIHBhZ2UiKSxzdCgpLFV0KDE2KSxzdCgpKCkoKSksMiZkKXtjb25zdCBoPXlhKDEzKSx2PUt0KDIpO3V0KDMpLFR0KCJjbHJEZ1N0cmluZ0ZpbHRlciIsdi50eXBlRmlsdGVy''@;'; + put 'put ''KSx1dCgzKSxUdCgiY2xyRGdTdHJpbmdGaWx0ZXIiLHYubmFtZUZpbHRlciksdXQoMyksVHQoImNsckRnU3RyaW5nRmlsdGVyIix2LnZhbHVlRmlsdGVyKSx1dCgxKSxUdCgiY2xyRGdJdGVtc09mIix2Lm1ldGFPYmplY3RBdHRyaWJ1dGVzKSx1dCgyKSxUdCgiY2xyRGdQYWdlU2l6ZSIsMTAp''@;'; + put 'put ''LHV0KDIpLFR0KCJjbHJQYWdlU2l6ZU9wdGlvbnMiLE5zKDksRDl0KSksdXQoMiksa2YoIiAiLGguZmlyc3RJdGVtKzEsIiAtICIsaC5sYXN0SXRlbSsxLCIgb2YgIixoLnRvdGFsSXRlbXMsIiBBdHRyaWJ1dGVzICIpfX1mdW5jdGlvbiBPOXQoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDI5''@;'; + put 'put ''KSgxLCJkaXYiLDMwKSxybigyLGQ5dCwzLDEsImRpdiIsMzEpLENyKDMsImJyIikscm4oNCxfOXQsMywxLCJkaXYiLDMyKSxybig1LFQ5dCwyLDEsImRpdiIsMzIpLHN0KCksaXQoNiwiZGl2IiwzMykoNywiaDMiKSxVdCg4KSxzdCgpLHJuKDksTDl0LDE3LDEwLCJjbHItZGF0YWdyaWQiLDM0''@;'; + put 'put ''KSxzdCgpKCkpLDImZCl7Y29uc3QgaD1LdCgpO3V0KDIpLFR0KCJuZ0lmIixoLm1ldGFPYmplY3RMaXN0JiYhaC5vYmplY3RSb3V0ZSksdXQoMiksVHQoIm5nSWYiLCFoLm9iamVjdFZpZXcpLHV0KDEpLFR0KCJuZ0lmIixoLm9iamVjdFZpZXcpLHV0KDMpLEdpKGguYXNzb09iamVjdFNlbGVj''@;'; + put 'put ''dGVkKSx1dCgxKSxUdCgibmdJZiIsaC5zaG93VGFibGUpfX1sZXQgRG1lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLGope3RoaXMuZXZlbnRTZXJ2aWNlPWgsdGhpcy5zYXNTZXJ2aWNlPXYsdGhpcy5oZWxwZXJTZXJ2aWNlPXksdGhpcy5sb2NhdGlvbj1DLHRoaXMucm91''@;'; + put 'put ''dGVyPUksdGhpcy5yb3V0ZT1qLHRoaXMubWV0YURhdGFTZWFyY2g9IiIsdGhpcy5tZXRhT2JqZWN0U2VhcmNoPSIiLHRoaXMubWV0YU9iamVjdEFzc29jaWF0aW9ucz1bXSx0aGlzLm1ldGFPYmplY3RBdHRyaWJ1dGVzPVtdLHRoaXMuc2hvd1RhYmxlPSExLHRoaXMuc2hvd0FjYz0hMSx0aGlz''@;'; + put 'put ''Lm1ldGFEYXRhSWQ9IiIsdGhpcy5sb2FkaW5nPSEwLHRoaXMubWV0YXR5cGVzTG9hZGluZz0hMCx0aGlzLm1ldGFPYmplY3RTaXplPTIwMCx0aGlzLmFzc29UeXBlU2VsZWN0ZWQ9IiIsdGhpcy5hc3NvT2JqZWN0U2VsZWN0ZWQ9IiIsdGhpcy5yZXBvc2l0b3J5PSIiLHRoaXMub2JqZWN0Um91''@;'; + put 'put ''dGU9ITEsdGhpcy5zaG93RGF0YT0hMSx0aGlzLm9iamVjdFZpZXc9ITEsdGhpcy5nZXRDaGlsZHJlbj11ZT0+dWUuY291bnQ/YWEodWUuZGV0YWlscyk6dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoIm1ldGFuYXYvbWV0YWRldGFpbHMiLHtTQVNDb250cm9sVGFibGU6W3tvYmplY3R1cmk6dWUu''@;'; + put 'put ''QVNTT0NVUkl9XX0pLnRoZW4oQmU9Pnt0aGlzLnNob3dUYWJsZT0hMCx0aGlzLm1ldGFPYmplY3RBdHRyaWJ1dGVzPUJlLmF0dHJpYnV0ZXMsdGhpcy5hc3NvT2JqZWN0U2VsZWN0ZWQ9dWUuTkFNRTtsZXQgTmU9dGhpcy5yb3V0ZXIudXJsO3JldHVybiB0aGlzLmxvY2F0aW9uLnJlcGxhY2VT''@;'; + put 'put ''dGF0ZSh0aGlzLm9iamVjdFJvdXRlP05lLnNsaWNlKDAsTmUubGFzdEluZGV4T2YoIm9iamVjdCIpKSsib2JqZWN0LyIrdWUuQVNTT0NVUkkuc2xpY2UoMSt1ZS5BU1NPQ1VSSS5pbmRleE9mKCJcXCIpKTpOZSsiL29iamVjdC8iK3VlLkFTU09DVVJJLnNsaWNlKDErdWUuQVNTT0NVUkkuaW5k''@;'; + put 'put ''ZXhPZigiXFwiKSkpLHRoaXMuZ2V0QXNzb3NpYXRpb25zQ291bnQoQmUuYXNzb2NpYXRpb25zKX0pLHRoaXMuZGVib3VuY2U9ITF9bmdPbkluaXQoKXtuaS52aWV3ZXIuY3VycmVudFNlbGVjdGlvbj0idmlldy9tZXRhZGF0YSIsdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCIvdmlldy9tZXRh''@;'; + put 'put ''ZGF0YS9vYmplY3QvIikmJih0aGlzLm9iamVjdFJvdXRlPSEwLHRoaXMub2JqZWN0Vmlldz0hMCksdGhpcy5wYWdlU2l6ZT01LG5pLm1ldGFkYXRhLm1ldGFEYXRhTGlzdCYmbmkubWV0YWRhdGEubWV0YVJlcG9zaXRvcmllcyYmIXRoaXMub2JqZWN0Um91dGU/KHRoaXMubWV0YURhdGFMaXN0''@;'; + put 'put ''PW5pLm1ldGFkYXRhLm1ldGFEYXRhTGlzdCx0aGlzLnJlcG9zaXRvcmllcz1uaS5tZXRhZGF0YS5tZXRhUmVwb3NpdG9yaWVzLHRoaXMucmVwb3NpdG9yeT1uaS5tZXRhZGF0YS5zZWxlY3RlZFJlcG9zaXRvcnksdGhpcy5sb2FkaW5nPSExLHRoaXMubWV0YXR5cGVzTG9hZGluZz0hMSx0aGlz''@;'; + put 'put ''Lm1ldGFEYXRhU2VhcmNoPW5pLm1ldGFkYXRhLm1ldGFEYXRhU2VhcmNoKToodGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoIm1ldGFuYXYvbWV0YXR5cGVzIixudWxsKS50aGVuKGg9Pnt0aGlzLm1ldGFEYXRhTGlzdD1oLnR5cGVzLG5pLm1ldGFkYXRhLm1ldGFEYXRhTGlzdD10aGlzLm1ldGFE''@;'; + put 'put ''YXRhTGlzdCx0aGlzLmxvYWRpbmc9ITEsdGhpcy5tZXRhdHlwZXNMb2FkaW5nPSExfSksdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoIm1ldGFuYXYvbWV0YXJlcG9zIixudWxsKS50aGVuKGg9PntsZXQgdj0hMTt0aGlzLnJlcG9zaXRvcmllcz1bXTtmb3IobGV0IHk9MDt5PGgub3V0cmVwb3Mu''@;'; + put 'put ''bGVuZ3RoO3krKyl0aGlzLnJlcG9zaXRvcmllcy5wdXNoKGgub3V0cmVwb3NbeV0uTkFNRSksIkZvdW5kYXRpb24iPT09aC5vdXRyZXBvc1t5XS5OQU1FJiYodj0hMCk7aWYodGhpcy5yZXBvc2l0b3J5PXY/IkZvdW5kYXRpb24iOmgub3V0cmVwb3NbMF0uTkFNRSxuaS5tZXRhZGF0YS5tZXRh''@;'; + put 'put ''UmVwb3NpdG9yaWVzPXRoaXMucmVwb3NpdG9yaWVzLG5pLm1ldGFkYXRhLnNlbGVjdGVkUmVwb3NpdG9yeT10aGlzLnJlcG9zaXRvcnksdGhpcy5vYmplY3RSb3V0ZSl7dGhpcy5ldmVudFNlcnZpY2UuY2xvc2VTaWRlYmFyKCksdGhpcy5zaG93RGF0YT0hMDtsZXQgeT0iIixDPXRoaXMucm91''@;'; + put 'put ''dGUuc25hcHNob3QucGFyYW1zLm9iamVjdElEO3RoaXMubWV0YU9iamVjdExpc3Q9W10sdGhpcy5tZXRhT2JqZWN0TGlzdC5wdXNoKHtJRDpDLE5BTUU6eX0pLHRoaXMubWV0YU9iamVjdFNob3dMaXN0PXRoaXMubWV0YU9iamVjdExpc3QsdGhpcy5tZXRhT2JqZWN0T25DbGljayh0aGlzLm1l''@;'; + put 'put ''dGFPYmplY3RTaG93TGlzdFswXS5JRCx0aGlzLm1ldGFPYmplY3RTaG93TGlzdFswXSl9fSkpfXRyZWVOb2RlQ2xpY2tlZChoLHYseSl7IkNvbGxhcHNlIj09PWgudGFyZ2V0LnRpdGxlJiZ0aGlzLmNvbGxhcHNlVHJlZUl0ZW1zKHksdil9Y29sbGFwc2VUcmVlSXRlbXMoaCx2KXtoLmZvckVh''@;'; + put 'put ''Y2goeT0+e0pTT04uc3RyaW5naWZ5KHkpIT09SlNPTi5zdHJpbmdpZnkodikmJih5LmV4cGFuZGVkPSExKX0pfW1ldGFEYXRhT25DbGljayhoLHYpe3RoaXMub2JqZWN0Vmlldz0hMSx0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSgiL3ZpZXcvbWV0YWRhdGEiKSx0aGlzLnNob3dEYXRhPSEx''@;'; + put 'put ''LHRoaXMubG9hZGluZz0hMCx0aGlzLnNlbGVjdG1ldGFEYXRhKGgsdil9bWV0YU9iamVjdE9uQ2xpY2soaCx2KXt0aGlzLmFzc29PYmplY3RTZWxlY3RlZD0iIC4gIix0aGlzLnNob3dBY2M9ITEsdGhpcy5tZXRhT2JqZWN0QXR0cmlidXRlcz1bXSx0aGlzLnNlbGVjdG1ldGFPYmplY3QoaCx2''@;'; + put 'put ''KX1zZWxlY3RtZXRhRGF0YShoLHYpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoIm1ldGFuYXYvbWV0YW9iamVjdHMiLHtTQVNDb250cm9sVGFibGU6W3ttZXRhdHlwZTpoLHJlcG86dGhpcy5yZXBvc2l0b3J5fV19KS50''@;'; + put 'put ''aGVuKEM9Pnt0aGlzLm1ldGFPYmplY3RMaXN0PUMub2JqZWN0cyx0aGlzLmdldE1ldGFPYmplY3RBdHRyaWJ1dGVzKHRoaXMubWV0YU9iamVjdFNpemUpLHRoaXMubG9hZGluZz0hMSx0aGlzLmFzc29UeXBlU2VsZWN0ZWQ9aCx0aGlzLmV2ZW50U2VydmljZS5jbG9zZVNpZGViYXIoKSx0aGlz''@;'; + put 'put ''LnNob3dEYXRhPSEwfSl9KX1zZWxlY3RtZXRhT2JqZWN0KGgsdil7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgibWV0YW5hdi9tZXRhZGV0YWlscyIse1NBU0NvbnRyb2xUYWJsZTpbe29iamVjdHVyaTpofV19KS50aGVu''@;'; + put 'put ''KEM9Pnt0aGlzLm1ldGFPYmplY3RBc3NvY2lhdGlvbnM9Qy5hc3NvY2lhdGlvbnMsdGhpcy5yb290JD1hYSh0aGlzLmdldEFzc29zaWF0aW9uc0NvdW50KEMuYXNzb2NpYXRpb25zKSksdGhpcy5zaG93QWNjPSEwLHRoaXMuc2hvd1RhYmxlPSEwO2xldCBJPUMuYXR0cmlidXRlcy5maW5kKHVl''@;'; + put 'put ''PT4iTmFtZSI9PT11ZS5OQU1FKS5WQUxVRTt0aGlzLmFzc29PYmplY3RTZWxlY3RlZD1JLHYuTkFNRT1JO2xldCBqPXRoaXMucm91dGVyLnVybDt0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh0aGlzLm9iamVjdFJvdXRlP2ouc2xpY2UoMCxqLmxhc3RJbmRleE9mKCJvYmplY3QiKSkrIm9i''@;'; + put 'put ''amVjdC8iK2guc2xpY2UoMStoLmluZGV4T2YoIlxcIikpOmorIi9vYmplY3QvIitoLnNsaWNlKDEraC5pbmRleE9mKCJcXCIpKSksdGhpcy5tZXRhT2JqZWN0QXR0cmlidXRlcz1DLmF0dHJpYnV0ZXN9KX0pfXNlbGVjdEFzc29zaWF0aW9uc0RldGFpbHMoaCx2KXtyZXR1cm4gbm8odGhpcyx2''@;'; + put 'put ''b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJtZXRhbmF2L21ldGFkZXRhaWxzIix7U0FTQ29udHJvbFRhYmxlOlt7b2JqZWN0dXJpOmh9XX0pLnRoZW4oQz0+e3RoaXMubWV0YU9iamVjdEF0dHJpYnV0ZXM9Qy5hdHRyaWJ1dGVzLHRoaXMuc2hvd1Rh''@;'; + put 'put ''YmxlPSEwfSl9KX1nZXRBc3Nvc2lhdGlvbnNDb3VudChoKXtsZXQgdj1uZXcgTWFwO2ZvcihsZXQgQyBvZiBoKXt2LmhhcyhDLkFTU09DKXx8di5zZXQoQy5BU1NPQyx7Y291bnQ6MCxkZXRhaWxzOltdfSk7bGV0IEk9di5nZXQoQy5BU1NPQyk7SS5jb3VudCsrLEkuZGV0YWlscy5wdXNoKHtB''@;'; + put 'put ''U1NPQ1VSSTpDLkFTU09DVVJJLE5BTUU6Qy5OQU1FLGRpc3BsYXk6Qy5OQU1FLFVSSTpDLkFTU09DVVJJLnNsaWNlKEMuQVNTT0NVUkkuaW5kZXhPZigiOiIpKzEpfSl9bGV0IHk9W107cmV0dXJuIHYuZm9yRWFjaChmdW5jdGlvbihDLEkpe3kucHVzaCh7QVNTT0M6SSxjb3VudDpDLmNvdW50''@;'; + put 'put ''LGRldGFpbHM6Qy5kZXRhaWxzLGRpc3BsYXk6SSsiICggIitDLmNvdW50KyIgKSJ9KX0pLHl9c2V0VHlwZUFzc29zaWF0aW9ucyhoKXtsZXQgdj1bXTtmb3IobGV0IHkgb2YgdGhpcy5tZXRhT2JqZWN0QXNzb2NpYXRpb25zKXkuQVNTT0M9PT1oJiZ2LnB1c2goeSk7cmV0dXJuIHRoaXMuYXNz''@;'; + put 'put ''b3NpYXRpb25OYW1lcz12LHZ9YXNzb3NpYXRpb25OYW1lT25DbGljayhoKXt0aGlzLmFzc29PYmplY3RTZWxlY3RlZD0iIC4gIix0aGlzLm1ldGFPYmplY3RBdHRyaWJ1dGVzPVtdLHRoaXMuc2hvd1RhYmxlPSExLHRoaXMuc2VsZWN0QXNzb3NpYXRpb25zRGV0YWlscyhoKX1tZXRhTGlzdE9u''@;'; + put 'put ''RmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLmxpYnJhcnlPbkZpbHRlcih0aGlzLm1ldGFEYXRhTGlzdCx0aGlzLm1ldGFEYXRhU2VhcmNoLCJJRCIpLG5pLm1ldGFkYXRhLm1ldGFEYXRhU2VhcmNoPXRoaXMubWV0YURhdGFTZWFyY2h9bWV0YU9iamVjdE9uRmlsdGVyKCl7dGhpcy5tZXRh''@;'; + put 'put ''T2JqZWN0QXR0cmlidXRlcz1bXSx0aGlzLmhlbHBlclNlcnZpY2UubWV0YU9iamVjdE9uRmlsdGVyKHRoaXMubWV0YU9iamVjdExpc3QsdGhpcy5tZXRhT2JqZWN0U2VhcmNoLCJOQU1FIiksdGhpcy5nZXRNZXRhT2JqZWN0QXR0cmlidXRlcyh0aGlzLm1ldGFPYmplY3RTaXplKSxuaS5tZXRh''@;'; + put 'put ''ZGF0YS5tZXRhT2JqZWN0U2VhcmNoPXRoaXMubWV0YU9iamVjdFNlYXJjaH1nZXRNZXRhT2JqZWN0QXR0cmlidXRlcyhoKXtpZih2b2lkIDAhPT10aGlzLm1ldGFPYmplY3RMaXN0JiZ0aGlzLm1ldGFPYmplY3RMaXN0Lmxlbmd0aD5oKXtsZXQgdj0wLHk9LTE7Zm9yKGxldCBDPTA7Qzx0aGlz''@;'; + put 'put ''Lm1ldGFPYmplY3RMaXN0Lmxlbmd0aDtDKyspaWYoKHZvaWQgMD09PXRoaXMubWV0YU9iamVjdExpc3RbQ10uaGlkZGVufHwhMT09PXRoaXMubWV0YU9iamVjdExpc3RbQ10uaGlkZGVuKSYmdisrLHY9PT1oKXt5PUM7YnJlYWt9dGhpcy5tZXRhT2JqZWN0U2hvd0xpc3Q9LTEhPT15P3RoaXMu''@;'; + put 'put ''bWV0YU9iamVjdExpc3Quc2xpY2UoMCx5KTp0aGlzLm1ldGFPYmplY3RMaXN0fWVsc2UgdGhpcy5tZXRhT2JqZWN0U2hvd0xpc3Q9dGhpcy5tZXRhT2JqZWN0TGlzdH1wYW5lbENoYW5nZShoLHYpe3RoaXMuZGVib3VuY2V8fCh0aGlzLm1ldGFPYmplY3RPbkNsaWNrKHYuSUQsdiksdGhpcy5k''@;'; + put 'put ''ZWJvdW5jZT0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5kZWJvdW5jZT0hMX0sNjAwKSl9dXBkYXRlU2VsZWN0ZWRSZXBvc2l0b3J5KCl7bmkubWV0YWRhdGEuc2VsZWN0ZWRSZXBvc2l0b3J5PXRoaXMucmVwb3NpdG9yeX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBu''@;'; + put 'put ''ZXcoaHx8ZCkoWHQobXUpLFh0KGcyKSxYdChYYyksWHQoVjYpLFh0KFpsKSxYdChQdSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtbWV0YWRhdGEiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjE1LHZhcnM6Nyxjb25zdHM6W1sx''@;'; + put 'put ''LCJyZXBvLWRyb3Bkb3duIl0sWyJjbHJTZWxlY3QiLCIiLCJpZCIsInJlcG9zaXRvcnkiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwiY2hhbmdlIl0sWzMsInZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3Ii''@;'; + put 'put ''LCJuZ0Zvck9mIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsxLCJjYXJkIiwyLCJiYWNrZ3JvdW5kLWNvbG9yIiwidHJhbnNwYXJlbnQgIWltcG9ydGFudCJdLFsiY2xhc3MiLCJuby10YWJsZS1zZWxlY3RlZCIsNCwibmdJZiJdLFsiY2xhc3MiLCJsb2FkaW5nU3Bpbm5lciIsNCwibmdJZiJdLFsi''@;'; + put 'put ''Y2xhc3MiLCJjbHItcm93IGNsci1mbGV4LWdyb3ctMSIsNCwibmdJZiJdLFszLCJ2YWx1ZSJdLFsxLCJzZWFyY2gtbm9kZSJdLFsxLCJ0cmVlLXNlYXJjaC13cmFwcGVyIl0sWyJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwic2VhcmNoIFNBUyBUeXBlcyIsIm5hbWUiLCJpbnB1dCIsImF1''@;'; + put 'put ''dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoTGliVHJlZUlucHV0IiwiIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0s''@;'; + put 'put ''WyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIiw0LCJuZ0lmIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiXSxbMSwibS0wIiwi''@;'; + put 'put ''Y3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImJsb2NrIl0sWzEsIm5vLXRhYmxlLXNlbGVjdGVkIl0sWyJzaGFwZSIsIndhcm5pbmctc3RhbmRhcmQiLCJzaXplIiwiNjAiLDEsImlzLWluZm8iLDIsImZpbGwiLCIjODFiNDQwIl0sWzIsInRleHQtYWxpZ24iLCJjZW50ZXIi''@;'; + put 'put ''LCJjb2xvciIsIiM1YTVhNWEiXSxbMSwibG9hZGluZ1NwaW5uZXIiXSxbMSwic3Bpbm5lciJdLFs0LCJuZ0lmIl0sWzEsImNsci1yb3ciLCJjbHItZmxleC1ncm93LTEiXSxbMSwiY2xyLWNvbC02Il0sWyJjbGFzcyIsInNlYXJjaC1pbnB1dCIsNCwibmdJZiJdLFsiY2xhc3MiLCJvYmplY3Rz''@;'; + put 'put ''LWNvbCIsNCwibmdJZiJdLFsxLCJjbHItY29sLTYiLDIsInRleHQtYWxpZ24iLCJjZW50ZXIiXSxbImNsYXNzIiwiZGF0YWdyaWQtY3VzdG9tLWZvb3RlciIsNCwibmdJZiJdLFsxLCJzZWFyY2gtaW5wdXQiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJzZWFyY2giLCJuYW1lIiwi''@;'; + put 'put ''aW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaE9ialRyZWVJbnB1dCIsIiJdLFsxLCJvYmplY3RzLWNvbCJdLFszLCJjbHJBY2NvcmRpb25QYW5lbE9wZW5DaGFuZ2UiLDQsIm5nSWYiXSxbMywiY2xyQWNjb3Jk''@;'; + put 'put ''aW9uUGFuZWxPcGVuQ2hhbmdlIl0sWyJzaGFwZSIsInJhY2stc2VydmVyIl0sWzEsImZsb2F0LXJpZ2h0Il0sWzQsImNscklmRXhwYW5kZWQiXSxbMywiY2xyTGF6eSIsNCwibmdJZiJdLFszLCJjbHJMYXp5Il0sWzMsImNsckV4cGFuZGFibGUiLDQsImNsclJlY3Vyc2l2ZUZvciIsImNsclJl''@;'; + put 'put ''Y3Vyc2l2ZUZvck9mIiwiY2xyUmVjdXJzaXZlRm9yR2V0Q2hpbGRyZW4iXSxbMywiY2xyRXhwYW5kYWJsZSJdLFsxLCJmdWxsLXdpZHRoIl0sWyJzaGFwZSIsInJhY2stc2VydmVyIiw0LCJuZ0lmIl0sWyJzaGFwZSIsImJsb2NrIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImZsb2F0LXJpZ2h0IG9i''@;'; + put 'put ''amVjdC11cmkiLDQsIm5nSWYiXSxbMSwiZmxvYXQtcmlnaHQiLCJvYmplY3QtdXJpIl0sWzEsImNvbHMtaGVhZCJdLFsxLCJvYmplY3QtdGV4dCJdLFsyLCJtYXJnaW4iLCIwIiwid29yZC1icmVhayIsImJyZWFrLXdvcmQiLCJtYXJnaW4tcmlnaHQiLCIyMHB4Il0sWzEsImZsb2F0LXJpZ2h0''@;'; + put 'put ''IiwyLCJtYXJnaW4tbGVmdCIsIjNweCJdLFsxLCJkYXRhZ3JpZC1jdXN0b20tZm9vdGVyIl0sWzMsImNsckRnU3RyaW5nRmlsdGVyIl0sWzQsImNsckRnSXRlbXMiLCJjbHJEZ0l0ZW1zT2YiXSxbMywiY2xyRGdQYWdlU2l6ZSJdLFsicGFnaW5hdGlvbiIsIiJdLFszLCJjbHJQYWdlU2l6ZU9w''@;'; + put 'put ''dGlvbnMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJhcHAtc2lkZWJhciIpKDEsImRpdiIsMCkoMiwiY2xyLXNlbGVjdC1jb250YWluZXIiKSgzLCJsYWJlbCIpLFV0KDQsIk1ldGFkYXRhIFJlcG9zaXRvcnkiKSxzdCgpLGl0KDUsInNlbGVjdCIsMSksWW4oIm5nTW9k''@;'; + put 'put ''ZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnJlcG9zaXRvcnk9Q30pKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHYudXBkYXRlU2VsZWN0ZWRSZXBvc2l0b3J5KCl9KSxybig2LG45dCwyLDIsIm9wdGlvbiIsMiksc3QoKSgpKCksaXQoNywiY2xyLXRyZWUiKSxybig4LG85dCw2''@;'; + put 'put ''LDMsImNsci10cmVlLW5vZGUiLDMpLHJuKDksbDl0LDIsMSwibmctY29udGFpbmVyIiw0KSxzdCgpKCksaXQoMTAsImRpdiIsNSkoMTEsImRpdiIsNikscm4oMTIsczl0LDQsMCwiZGl2Iiw3KSxybigxMyxoOXQsNCwxLCJkaXYiLDgpLHJuKDE0LE85dCwxMCw1LCJkaXYiLDkpLHN0KCkoKSks''@;'; + put 'put ''MiZoJiYodXQoNSksVHQoIm5nTW9kZWwiLHYucmVwb3NpdG9yeSksdXQoMSksVHQoIm5nRm9yT2YiLHYucmVwb3NpdG9yaWVzKSx1dCgyKSxUdCgibmdJZiIsdi5tZXRhRGF0YUxpc3QpLHV0KDEpLFR0KCJuZ0Zvck9mIix2Lm1ldGFEYXRhTGlzdCksdXQoMyksVHQoIm5nSWYiLCF2LmxvYWRp''@;'; + put 'put ''bmcmJiF2Lm1ldGFPYmplY3RMaXN0KSx1dCgxKSxUdCgibmdJZiIsdi5sb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93RGF0YSkpfSxkZXBlbmRlbmNpZXM6W1pzLFZvLHEzLGVkLG0xLE9mLEVzLHhzLGlaLFJMLEJMLFBMLGN5ZSxwUyxvWixhWixLZmUsbFosTkwsVkwsSEwsaFMsZVos''@;'; + put 'put ''dFosUGZlLHk5LF9nLHZ5ZSx3bCxnbyxGZixvdCxwOSxYaixKaixKJCxNTCxLJCxYJCwkJCxOaix5UyxXaF0sc3R5bGVzOlsiLm9iamVjdHMtY29sW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6NzV2aDtvdmVyZmxvdzpzY3JvbGw7Ym9yZGVyOjFweCBzb2xpZCAjY2NjY2NjO2JhY2tncm91''@;'; + put 'put ''bmQ6d2hpdGU7Ym9yZGVyLXJhZGl1czo0cHh9LmNvbHMtaGVhZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZmFmYWZhO2JvcmRlcjoxcHggc29saWQgI2NjY2NjYztwYWRkaW5nOjEwcHg7ZGlzcGxheTpmbGV4fS5vYmplY3QtdGV4dFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxh''@;'; + put 'put ''eTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bWFyZ2luLWxlZnQ6MTBweDtmbGV4OjF9LnJlcG8tZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVde21hcmdpbi1yaWdodDoxNXB4O21hcmdpbi1sZWZ0OjE1cHg7bWFyZ2luLWJvdHRv''@;'; + put 'put ''bToxMHB4fS5jbHItYWNjb3JkaW9uLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5mbG9hdC1yaWdodFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjA7ZmxvYXQ6cmlnaHR9LmZ1bGwtd2lkdGhbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9Lm9iamVjdC11cmlb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVde21hcmdpbjo1cHggMCAwfS5vYmplY3QtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWxlZnQ6M3B4O3BhZGRpbmctcmlnaHQ6M3B4fS5vYmplY3QtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNkOGUz''@;'; + put 'put ''ZTk7Ym9yZGVyLXJhZGl1czozcHh9LmRhdGFncmlkLWhvc3RbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6dW5zZXQhaW1wb3J0YW50fS5jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjA7ZmxleDoxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNvbnRl''@;'; + put 'put ''bnQtYXJlYVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNXJlbSFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0iXX0pLGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksZH0pKCk7ZnVu''@;'; + put 'put ''Y3Rpb24gUjl0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMTIpfWZ1bmN0aW9uIEI5dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci1pY29uIiwxMyksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpO2NvbnN0IHk9S3QoMik7cmV0dXJuIHkucm9sZVNlYXJjaD0iIixh''@;'; + put 'put ''KHkucm9sZUxpc3RPbkZpbHRlcigpKX0pLHN0KCl9fWZ1bmN0aW9uIFA5dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci10cmVlLW5vZGUiLDYpKDEsImRpdiIsNykoMiwiaW5wdXQiLDgsOSksWW4oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxh''@;'; + put 'put ''KEt0KCkucm9sZVNlYXJjaD15KX0pKCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgpLnJvbGVMaXN0T25GaWx0ZXIoKSl9KSxzdCgpLHJuKDQsUjl0LDEsMCwiY2xyLWljb24iLDEwKSxybig1LEI5dCwxLDAsImNsci1pY29uIiwxMSksc3QoKSgpfWlmKDImZCl7Y29uc3Qg''@;'; + put 'put ''aD15YSgzKSx2PUt0KCk7dXQoMiksVHQoIm5nTW9kZWwiLHYucm9sZVNlYXJjaCksdXQoMiksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPDEpLHV0KDEpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gRjl0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiY2xy''@;'; + put 'put ''LXRyZWUtbm9kZSIsMTUpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KCkuJGltcGxpY2l0O3JldHVybiBhKEt0KCkucm9sZU9uQ2xpY2soeSkpfSksaXQoMSwicCIsMTYpLENyKDIsImNsci1pY29uIiwxNyksVXQoMyksc3QoKSgpfWlmKDImZCl7Y29uc3QgaD1LdCgp''@;'; + put 'put ''LiRpbXBsaWNpdCx2PUt0KCk7RmkoInRhYmxlLWFjdGl2ZSIsaC5ST0xFVVJJPT09di5yb2xlVXJpKSx1dCgzKSxKaSgiICIsaC5ST0xFTkFNRSwiICIpfX1mdW5jdGlvbiBIOXQoZCxnKXtpZigxJmQmJihGMCgwKSxybigxLEY5dCw0LDMsImNsci10cmVlLW5vZGUiLDE0KSxIMCgpKSwyJmQp''@;'; + put 'put ''e2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoIm5nSWYiLCFoLmhpZGRlbil9fWZ1bmN0aW9uIE45dChkLGcpezEmZCYmKGl0KDAsImRpdiIsMTgpKDEsInNwYW4iLDE5KSxVdCgyLCIgTG9hZGluZy4uLiAiKSxzdCgpKCkpfWZ1bmN0aW9uIFY5dChkLGcpezEmZCYmKGl0KDAsImg1Iiks''@;'; + put 'put ''VXQoMSwiTm8gTWVtYmVycyBQcmVzZW50Iiksc3QoKSl9ZnVuY3Rpb24gajl0KGQsZyl7aWYoMSZkJiYoaXQoMCwidHIiLDMyKSgxLCJ0ZCIsMzApLFV0KDIpLHN0KCksaXQoMywidGQiLDMwKSxVdCg0KSxzdCgpLGl0KDUsInRkIiwzMCksVXQoNiksc3QoKSxpdCg3LCJ0ZCIsMzApLFV0KDgp''@;'; + put 'put ''LHN0KCkoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O1R0KCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi91c2Vycy8iK2guVVJJTUVNKSx1dCgyKSxHaShoLk1FTUJFUk5BTUUpLHV0KDIpLEdpKGguRU1BSUwpLHV0KDIpLEdpKGguTUVNQkVSQ1JFQVRFRCksdXQoMiksR2koaC5NRU1C''@;'; + put 'put ''RVJVUERBVEVEKX19ZnVuY3Rpb24gWjl0KGQsZyl7aWYoMSZkJiYoaXQoMCwidGFibGUiLDI4KSgxLCJ0aGVhZCIpKDIsInRyIikoMywidGQiLDI5KSg0LCJiIiksVXQoNSwiTkFNRSIpLHN0KCkoKSxpdCg2LCJ0ZCIsMjkpKDcsImIiKSxVdCg4LCJFTUFJTCIpLHN0KCkoKSxpdCg5LCJ0ZCIs''@;'; + put 'put ''MjkpKDEwLCJiIiksVXQoMTEsIkNSRUFURUQiKSxzdCgpKCksaXQoMTIsInRkIiwzMCkoMTMsImIiKSxVdCgxNCwiVVBEQVRFRCIpLHN0KCkoKSgpKCksaXQoMTUsInRib2R5Iikscm4oMTYsajl0LDksNSwidHIiLDMxKSxzdCgpKCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCgxNiksVHQoIm5n''@;'; + put 'put ''Rm9yT2YiLGgucm9sZU1lbWJlcnMpfX1mdW5jdGlvbiB6OXQoZCxnKXsxJmQmJihpdCgwLCJoNSIpLFV0KDEsIk5vIEdyb3VwcyBQcmVzZW50ICEiKSxzdCgpKX1mdW5jdGlvbiBHOXQoZCxnKXtpZigxJmQmJihpdCgwLCJ0ciIsMzIpKDEsInRkIiwzMCksVXQoMiksc3QoKSxpdCgzLCJ0ZCIs''@;'; + put 'put ''MzApLFV0KDQpLHN0KCksaXQoNSwidGQiLDMwKSxVdCg2KSxzdCgpLGl0KDcsInRkIiwzMCksVXQoOCksc3QoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7VHQoInJvdXRlckxpbmsiLCIvdmlldy91c2VybmF2L2dyb3Vwcy8iK2guVVJJTUVNKSx1dCgyKSxHaShoLk1FTUJFUk5BTUUp''@;'; + put 'put ''LHV0KDIpLEdpKGguRU1BSUwpLHV0KDIpLEdpKGguTUVNQkVSQ1JFQVRFRCksdXQoMiksR2koaC5NRU1CRVJVUERBVEVEKX19ZnVuY3Rpb24gVzl0KGQsZyl7aWYoMSZkJiYoaXQoMCwidGFibGUiLDI4KSgxLCJ0aGVhZCIpKDIsInRyIikoMywidGQiLDI5KSg0LCJiIiksVXQoNSwiTkFNRSIp''@;'; + put 'put ''LHN0KCkoKSxpdCg2LCJ0ZCIsMjkpKDcsImIiKSxVdCg4LCJFTUFJTCIpLHN0KCkoKSxpdCg5LCJ0ZCIsMjkpKDEwLCJiIiksVXQoMTEsIkNSRUFURUQiKSxzdCgpKCksaXQoMTIsInRkIiwzMCkoMTMsImIiKSxVdCgxNCwiVVBEQVRFRCIpLHN0KCkoKSgpKCksaXQoMTUsInRib2R5Iikscm4o''@;'; + put 'put ''MTYsRzl0LDksNSwidHIiLDMxKSxzdCgpKCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCgxNiksVHQoIm5nRm9yT2YiLGgucm9sZUdyb3Vwcyl9fWZ1bmN0aW9uIFk5dChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIpKDEsImRpdiIsMjApKDIsImRpdiIsMjEpKDMsInRhYmxlIiwyMikoNCwidGJv''@;'; + put 'put ''ZHkiKSg1LCJ0ciIpKDYsInRkIiwyMykoNywicCIsMjQpKDgsImIiKSxVdCg5KSxzdCgpKCkoKSgpLGl0KDEwLCJ0ciIpKDExLCJ0ZCIsMjMpKDEyLCJpIiksVXQoMTMpLHN0KCkoKSgpKCkoKSgpKCksaXQoMTQsImRpdiIsMjApKDE1LCJkaXYiLDIxKSgxNiwiZGl2IiwyNSkoMTcsImRpdiIp''@;'; + put 'put ''KDE4LCJoMyIpLFV0KDE5KSxzdCgpLHJuKDIwLFY5dCwyLDAsImg1Iiw1KSxpdCgyMSwiZGl2IiwyNikscm4oMjIsWjl0LDE3LDEsInRhYmxlIiwyNyksc3QoKSgpLENyKDIzLCJociIpLGl0KDI0LCJkaXYiKSgyNSwiaDMiKSxVdCgyNiksc3QoKSxybigyNyx6OXQsMiwwLCJoNSIsNSksaXQo''@;'; + put 'put ''MjgsImRpdiIsMjYpLHJuKDI5LFc5dCwxNywxLCJ0YWJsZSIsMjcpLHN0KCkoKSxDcigzMCwiYnIiKSxzdCgpKCkoKSgpKSwyJmQpe2NvbnN0IGg9S3QoKTt1dCg5KSxHaShoLnJvbGVOYW1lKSx1dCg0KSxHaShoLnJvbGVEZXNjKSx1dCg2KSxKaSgiTUVNQkVSUyAoIixoLnJvbGVNZW1iZXJz''@;'; + put 'put ''Q291bnQsIikiKSx1dCgxKSxUdCgibmdJZiIsMD09aC5yb2xlTWVtYmVyc0NvdW50KSx1dCgyKSxUdCgibmdJZiIsMCE9aC5yb2xlTWVtYmVyc0NvdW50KSx1dCg0KSxKaSgiR3JvdXBzICgiLGgucm9sZUdyb3Vwc0NvdW50LCIpIiksdXQoMSksVHQoIm5nSWYiLDA9PWgucm9sZUdyb3Vwc0Nv''@;'; + put 'put ''dW50KSx1dCgyKSxUdCgibmdJZiIsMCE9aC5yb2xlR3JvdXBzQ291bnQpfX1sZXQgRExlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLmhlbHBlclNlcnZpY2U9dix0aGlzLnJvdXRlcj15LHRoaXMubG9jYXRpb249Qyx0aGlzLnJv''@;'; + put 'put ''dXRlPUksdGhpcy5yb2xlU2VhcmNoPSIiLHRoaXMucm9sZVVyaT0iIix0aGlzLnJvbGVOYW1lPSIiLHRoaXMucm9sZURlc2M9IiIsdGhpcy5wYXJhbVByZXNlbnQ9ITEsdGhpcy5wYXJhbVVSST0iIix0aGlzLmxvYWRpbmc9ITF9bmdPbkluaXQoKXtuaS52aWV3ZXIuY3VycmVudFNlbGVjdGlv''@;'; + put 'put ''bj0idmlldy91c2VybmF2L3JvbGVzIix2b2lkIDAhPT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmkmJih0aGlzLnBhcmFtUHJlc2VudD0hMCx0aGlzLnBhcmFtVVJJPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnVyaSksbmkudXNlcm5hdi5yb2xlTGlzdCYmIXRoaXMucGFyYW1Q''@;'; + put 'put ''cmVzZW50Pyh0aGlzLnJvbGVzPW5pLnVzZXJuYXYucm9sZUxpc3QsdGhpcy5yb2xlU2VhcmNoPW5pLnVzZXJuYXYucm9sZVNlYXJjaCk6dm9pZCAwPT09bmkudXNlcm5hdi5yb2xlTGlzdD8odGhpcy5sb2FkaW5nPSEwLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJyb2xl''@;'; + put 'put ''cyIsbnVsbCkudGhlbihoPT57aWYodGhpcy5sb2FkaW5nPSExLHRoaXMucm9sZXM9aC5yb2xlcyxuaS51c2VybmF2LnJvbGVMaXN0PWgucm9sZXMsdGhpcy5wYXJhbVByZXNlbnQmJnZvaWQgMCE9PXRoaXMucm9sZXMpe2xldCB2PXRoaXMuZmluZFJvbGUodGhpcy5yb2xlcyx0aGlzLnBhcmFt''@;'; + put 'put ''VVJJKTshMSE9PXYmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcm1lbWJlcnNieXJvbGUiLHtpd2FudDpbe3JvbGVpZDp0aGlzLnBhcmFtVVJJfV19KS50aGVuKEM9Pnt0aGlzLmxvYWRpbmc9ITEsdGhpcy5yb2xlTWVtYmVycz1DLnNhc21l''@;'; + put 'put ''bWJlcnMsdGhpcy5yb2xlTWVtYmVyc0NvdW50PUMuc2FzbWVtYmVycy5sZW5ndGgsdGhpcy5yb2xlR3JvdXBzPUMuc2FzZ3JvdXBzLHRoaXMucm9sZUdyb3Vwc0NvdW50PUMuc2FzZ3JvdXBzLmxlbmd0aCx0aGlzLnJvbGVVcmk9di5ST0xFVVJJLHRoaXMucm9sZU5hbWU9di5ST0xFTkFNRSx0''@;'; + put 'put ''aGlzLnJvbGVEZXNjPXYuUk9MRURFU0N9KSl9fSkpOih0aGlzLnJvbGVzPW5pLnVzZXJuYXYucm9sZUxpc3QsdGhpcy5yb2xlU2VhcmNoPW5pLnVzZXJuYXYucm9sZVNlYXJjaCx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2Vycm9sZXMiLG51bGwpLnRoZW4oaD0+e2lmKHRo''@;'; + put 'put ''aXMucm9sZXM9aC5yb2xlcyxuaS51c2VybmF2LnJvbGVMaXN0PWgucm9sZXMsdGhpcy5wYXJhbVByZXNlbnQmJnZvaWQgMCE9PXRoaXMucm9sZXMpe2xldCB2PXRoaXMuZmluZFJvbGUodGhpcy5yb2xlcyx0aGlzLnBhcmFtVVJJKTshMSE9PXYmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5zYXNT''@;'; + put 'put ''ZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcm1lbWJlcnNieXJvbGUiLHtpd2FudDpbe3JvbGVpZDp0aGlzLnBhcmFtVVJJfV19KS50aGVuKEM9Pnt0aGlzLmxvYWRpbmc9ITEsdGhpcy5yb2xlTWVtYmVycz1DLnNhc21lbWJlcnMsdGhpcy5yb2xlTWVtYmVyc0NvdW50PUMuc2FzbWVtYmVy''@;'; + put 'put ''cy5sZW5ndGgsdGhpcy5yb2xlR3JvdXBzPUMuc2FzZ3JvdXBzLHRoaXMucm9sZUdyb3Vwc0NvdW50PUMuc2FzZ3JvdXBzLmxlbmd0aCx0aGlzLnJvbGVVcmk9di5ST0xFVVJJLHRoaXMucm9sZU5hbWU9di5ST0xFTkFNRSx0aGlzLnJvbGVEZXNjPXYuUk9MRURFU0N9KSl9fSkpfXJvbGVMaXN0''@;'; + put 'put ''T25GaWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UubGlicmFyeU9uRmlsdGVyKHRoaXMucm9sZXMsdGhpcy5yb2xlU2VhcmNoLCJST0xFTkFNRSIpLG5pLnVzZXJuYXYucm9sZVNlYXJjaD10aGlzLnJvbGVTZWFyY2h9cm9sZU9uQ2xpY2soaCl7dGhpcy5sb2FkaW5nPSEwO2xldCB2PXRoaXMu''@;'; + put 'put ''cm91dGVyLnVybDt0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh0aGlzLnBhcmFtUHJlc2VudD92LnNsaWNlKDAsdi5sYXN0SW5kZXhPZigiLyIpKSsiLyIrZW5jb2RlVVJJKGguUk9MRVVSSSk6disiLyIrZW5jb2RlVVJJKGguUk9MRVVSSSkpLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1''@;'; + put 'put ''c2VybmF2L3VzZXJtZW1iZXJzYnlyb2xlIix7aXdhbnQ6W3tyb2xlaWQ6aC5ST0xFVVJJfV19KS50aGVuKEM9Pnt0aGlzLmxvYWRpbmc9ITEsdGhpcy5yb2xlTWVtYmVycz1DLnNhc21lbWJlcnMsdGhpcy5yb2xlTWVtYmVyc0NvdW50PUMuc2FzbWVtYmVycy5sZW5ndGgsdGhpcy5yb2xlR3Jv''@;'; + put 'put ''dXBzPUMuc2FzZ3JvdXBzLHRoaXMucm9sZUdyb3Vwc0NvdW50PUMuc2FzZ3JvdXBzLmxlbmd0aCx0aGlzLnJvbGVVcmk9aC5ST0xFVVJJLHRoaXMucm9sZU5hbWU9aC5ST0xFTkFNRSx0aGlzLnJvbGVEZXNjPWguUk9MRURFU0N9KX1maW5kUm9sZShoLHYpe2xldCB5PSExO3JldHVybiBoLmZv''@;'; + put 'put ''ckVhY2goQz0+e0MuUk9MRVVSST09PXYmJih5PUMpfSkseX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoWHQoZzIpLFh0KFhjKSxYdChabCksWHQoVjYpLFh0KFB1KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1yb2xl''@;'; + put 'put ''Il1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczo3LHZhcnM6NCxjb25zdHM6W1sxLCJzaWRlYmFyLWhlaWdodCJdLFsiY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udGVudC1hcmVhIl0sWyJjbGFzcyIs''@;'; + put 'put ''ImxvYWRpbmdTcGlubmVyIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwic2VhcmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIkZpbHRlciBieSBSb2xlcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIs''@;'; + put 'put ''MywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoTGliVHJlZUlucHV0IiwiIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0sWyJzaGFwZSIsInRpbWVzIiwz''@;'; + put 'put ''LCJjbGljayJdLFszLCJ0YWJsZS1hY3RpdmUiLCJjbGljayIsNCwibmdJZiJdLFszLCJjbGljayJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsImxpc3QtcGFkZGluZyJdLFsic2hhcGUiLCJibG9ja3MtZ3JvdXAiXSxbMSwibG9hZGluZ1NwaW5uZXIiXSxbMSwic3Bpbm5lciJdLFsxLCJj''@;'; + put 'put ''bHItcm93Il0sWzEsImNsci1jb2wtOCJdLFsxLCJ0YWJsZSIsInJvbGUtaW5mbyJdLFsxLCJsZWZ0Il0sWzEsInJvbGUtaW5mby10ZXh0Il0sWzEsImNhcmQiLCJyb2xlLWRhdGEiXSxbMSwidGFibGUtY29udGFpbmVyIl0sWyJjbGFzcyIsInRhYmxlIG1lbWJlci10YWJsZSIsNCwibmdJZiJd''@;'; + put 'put ''LFsxLCJ0YWJsZSIsIm1lbWJlci10YWJsZSJdLFsxLCJ3aWR0aC0yNSJdLFsxLCIiXSxbMywicm91dGVyTGluayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInJvdXRlckxpbmsiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihpdCgwLCJhcHAtc2lkZWJhciIsMCkoMSwiY2xyLXRy''@;'; + put 'put ''ZWUiKSxybigyLFA5dCw2LDMsImNsci10cmVlLW5vZGUiLDEpLHJuKDMsSDl0LDIsMSwibmctY29udGFpbmVyIiwyKSxzdCgpKCksaXQoNCwiZGl2IiwzKSxybig1LE45dCwzLDAsImRpdiIsNCkscm4oNixZOXQsMzEsOCwiZGl2Iiw1KSxzdCgpKSwyJmgmJih1dCgyKSxUdCgibmdJZiIsdi5y''@;'; + put 'put ''b2xlcyksdXQoMSksVHQoIm5nRm9yT2YiLHYucm9sZXMpLHV0KDIpLFR0KCJuZ0lmIix2LmxvYWRpbmcpLHV0KDEpLFR0KCJuZ0lmIix2LnJvbGVNZW1iZXJzJiYhdi5sb2FkaW5nKSl9LGRlcGVuZGVuY2llczpbWnMsVm8sbTEsRXMseHMsWTYseTksX2csd2wscDkseVNdLHN0eWxlczpbIi5z''@;'; + put 'put ''aWRlYmFyLWhlaWdodFtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCV9LnJvbGUtaW5mby10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZTtmb250LXNpemU6MjBweH0ucm9sZS1pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7''@;'; + put 'put ''Ym9yZGVyOjFweCBzb2xpZCAjYTdhN2E3O2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MCAycHggNXB4ICNkYWQ3ZDd9LnJvbGUtaW5mb1tfbmdjb250ZW50LSVDT01QJV0gICB0ZFtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9LnJvbGUtZGF0YVtfbmdjb250ZW50''@;'; + put 'put ''LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2E3YTdhNztib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMnB4IDVweCAjZGFkN2Q3fS5yb2xlLWRhdGFbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6dW5zZXR9LnJvbGUtZGF0YVtf''@;'; + put 'put ''bmdjb250ZW50LSVDT01QJV0gICBoM1tfbmdjb250ZW50LSVDT01QJV0sIC5yb2xlLWRhdGFbX25nY29udGVudC0lQ09NUCVdICAgaDVbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246Y2VudGVyfS5tZW1iZXItdGFibGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''I2Y5ZjlmOTt3aWR0aDoxMDAlfS5tZW1iZXItdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGhlYWRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2RhZGFkYX0ubWVtYmVyLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAg''@;'; + put 'put ''IHRyW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlNmU2ZTY7Y3Vyc29yOnBvaW50ZXJ9LnRhYmxlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17b3ZlcmZsb3cteTpzY3JvbGw7bWF4LWhlaWdodDo3MDBweH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdp''@;'; + put 'put ''ZHRoOiA3NjhweCl7LnJvbGUtZGF0YVtfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDp1bnNldCFpbXBvcnRhbnR9fSJdfSksZH0pKCksVTl0PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt9bmdPbkluaXQoKXt9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4g''@;'; + put 'put ''bmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtdXNlcm5hdi1yb3V0ZSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJkNyKDAsInJvdXRlci1vdXRsZXQi''@;'; + put 'put ''KX0sZGVwZW5kZW5jaWVzOltveV19KSxkfSkoKSxROXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe31uZ09uSW5pdCgpe31uZ09uRGVzdHJveSgpe319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2Vs''@;'; + put 'put ''ZWN0b3JzOltbImFwcC12aWV3LXJvdXRlIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmQ3IoMCwicm91dGVyLW91dGxldCIpfSxkZXBlbmRlbmNpZXM6W295XX0pLGR9KSgpO2Z1bmN0aW9uIEo5''@;'; + put 'put ''dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDEyKX1mdW5jdGlvbiBYOXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItaWNvbiIsMTMpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KDIpO3JldHVybiB5LnVzZXJTZWFyY2g9IiIsYSh5LnVzZXJM''@;'; + put 'put ''aXN0T25GaWx0ZXIoKSl9KSxzdCgpfX1mdW5jdGlvbiBLOXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItdHJlZS1ub2RlIiw2KSgxLCJkaXYiLDcpKDIsImlucHV0Iiw4LDkpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgpLnVz''@;'; + put 'put ''ZXJTZWFyY2g9eSl9KSgia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIHJ0KGgpLGEoS3QoKS51c2VyTGlzdE9uRmlsdGVyKCkpfSksc3QoKSxybig0LEo5dCwxLDAsImNsci1pY29uIiwxMCkscm4oNSxYOXQsMSwwLCJjbHItaWNvbiIsMTEpLHN0KCkoKX1pZigyJmQpe2NvbnN0IGg9eWEoMyks''@;'; + put 'put ''dj1LdCgpO3V0KDIpLFR0KCJuZ01vZGVsIix2LnVzZXJTZWFyY2gpLHV0KDIpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uICQ5dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci10cmVlLW5v''@;'; + put 'put ''ZGUiLDE1KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT1LdCgpLiRpbXBsaWNpdDtyZXR1cm4gYShLdCgpLnVzZXJPbkNsaWNrKHkpKX0pLGl0KDEsInAiLDE2KSxDcigyLCJjbHItaWNvbiIsMTcpLFV0KDMpLHN0KCkoKX1pZigyJmQpe2NvbnN0IGg9S3QoKS4kaW1wbGlj''@;'; + put 'put ''aXQsdj1LdCgpO0ZpKCJ0YWJsZS1hY3RpdmUiLChudWxsPT12LnVzZXJJbmZvP251bGw6di51c2VySW5mby5VUkkpPT09aC5VUkkpLHV0KDMpLEppKCIgIixoLk5BTUUsIiAiKX19ZnVuY3Rpb24gcTl0KGQsZyl7aWYoMSZkJiYoRjAoMCkscm4oMSwkOXQsNCwzLCJjbHItdHJlZS1ub2RlIiwx''@;'; + put 'put ''NCksSDAoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0lmIiwhaC5oaWRkZW4pfX1mdW5jdGlvbiBldnQoZCxnKXsxJmQmJihpdCgwLCJkaXYiLDE4KSgxLCJzcGFuIiwxOSksVXQoMiwiIExvYWRpbmcuLi4gIiksc3QoKSgpKX1mdW5jdGlvbiB0dnQoZCxnKXtpZigx''@;'; + put 'put ''JmQmJihGMCgwKSxpdCgxLCJ0ciIpKDIsInRkIiwyNyksVXQoMywiIE1ldGFkYXRhIENyZWF0ZWQ6ICIpLGl0KDQsImIiKSxVdCg1KSxzdCgpKCkoKSxpdCg2LCJ0ciIpKDcsInRkIiwyNyksVXQoOCwiIE1ldGFkYXRhIFVwZGF0ZWQ6ICIpLGl0KDksImIiKSxVdCgxMCksc3QoKSgpKCksSDAo''@;'; + put 'put ''KSksMiZkKXtjb25zdCBoPUt0KDMpO3V0KDUpLEdpKGgudXNlckluZm8uTUVUQURBVEFDUkVBVEVEKSx1dCg1KSxHaShoLnVzZXJJbmZvLk1FVEFEQVRBVVBEQVRFRCl9fWZ1bmN0aW9uIG52dChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsMjEpKDEsImRpdiIsMjIpKDIsInRhYmxlIiwyNiko''@;'; + put 'put ''MywidGJvZHkiKSg0LCJ0ciIpKDUsInRkIiwyNykoNiwicCIsMjgpKDcsImIiKSxVdCg4KSxzdCgpKCkoKSgpLGl0KDksInRyIikoMTAsInRkIiwyNykoMTEsInAiLDI4KSgxMiwiYiIpLFV0KDEzKSxzdCgpKCkoKSgpLHJuKDE0LHR2dCwxMSwyLCJuZy1jb250YWluZXIiLDUpLHN0KCkoKSgp''@;'; + put 'put ''KCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCg4KSxHaShoLnVzZXJJbmZvLk5BTUUpLHV0KDUpLEdpKGgudXNlckluZm8uRElTUExBWU5BTUUpLHV0KDEpLFR0KCJuZ0lmIixoLnNlcnZlclR5cGU9PT1oLlNlcnZlclR5cGUuU2FzOSl9fWZ1bmN0aW9uIHJ2dChkLGcpe2lmKDEmZCYmKGl0KDAs''@;'; + put 'put ''ImRpdiIsMjEpKDEsImRpdiIsMjIpKDIsInRhYmxlIiwyNikoMywidGJvZHkiKSg0LCJ0ciIpKDUsInRkIiwyNykoNiwicCIsMjgpKDcsImIiKSxVdCg4KSxzdCgpKCkoKSgpLGl0KDksInRyIikoMTAsInRkIiwyNyksVXQoMTEsIiBVc2VyIElEOiAiKSxpdCgxMiwiYiIpLFV0KDEzKSxzdCgp''@;'; + put 'put ''KCkoKSxpdCgxNCwidHIiKSgxNSwidGQiLDI3KSxVdCgxNiwiIFVzZXIgcHJvdmlkZXIgSUQ6ICIpLGl0KDE3LCJiIiksVXQoMTgpLHN0KCkoKSgpKCkoKSgpKCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCg4KSxHaShoLnVzZXJJbmZvLk5BTUUpLHV0KDUpLEdpKGgudXNlckluZm8uVVJJKSx1''@;'; + put 'put ''dCg1KSxHaShoLnVzZXJJbmZvLlBST1ZJREVSKX19ZnVuY3Rpb24gaXZ0KGQsZyl7MSZkJiYoaXQoMCwiaDUiKSxVdCgxLCJObyBFbWFpbHMgUHJlc2VudCIpLHN0KCkpfWZ1bmN0aW9uIG92dChkLGcpe2lmKDEmZCYmKGl0KDAsInRyIikoMSwidGQiLDMxKSxVdCgyKSxzdCgpLGl0KDMsInRk''@;'; + put 'put ''IiwzMSksVXQoNCksc3QoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMiksR2koaC5FTUFJTCksdXQoMiksR2koaC5UWVBFKX19ZnVuY3Rpb24gYXZ0KGQsZyl7aWYoMSZkJiYoaXQoMCwidGFibGUiLDI5KSgxLCJ0aGVhZCIpKDIsInRyIikoMywidGQiLDMwKSg0LCJiIiksVXQo''@;'; + put 'put ''NSwiRU1BSUwiKSxzdCgpKCksaXQoNiwidGQiLDMxKSg3LCJiIiksVXQoOCwiVFlQRSIpLHN0KCkoKSgpKCksaXQoOSwidGJvZHkiKSxybigxMCxvdnQsNSwyLCJ0ciIsMiksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3QoMyk7dXQoMTApLFR0KCJuZ0Zvck9mIixoLnVzZXJFbWFpbHMpfX1mdW5j''@;'; + put 'put ''dGlvbiBsdnQoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiKSgxLCJoMyIpLFV0KDIpLHN0KCkscm4oMyxpdnQsMiwwLCJoNSIsNSksaXQoNCwiZGl2IiwyNCkscm4oNSxhdnQsMTEsMSwidGFibGUiLDI1KSxzdCgpKCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCgyKSxKaSgiRU1BSUxTICgiLGgu''@;'; + put 'put ''dXNlckVtYWlsc0NvdW50fHwiMCIsIikiKSx1dCgxKSxUdCgibmdJZiIsMD09aC51c2VyRW1haWxzQ291bnQpLHV0KDIpLFR0KCJuZ0lmIiwwIT1oLnVzZXJFbWFpbHNDb3VudCl9fWZ1bmN0aW9uIHN2dChkLGcpezEmZCYmQ3IoMCwiaHIiKX1mdW5jdGlvbiB1dnQoZCxnKXsxJmQmJihpdCgw''@;'; + put 'put ''LCJoNSIpLFV0KDEsIk5vIEdyb3VwcyBQcmVzZW50Iiksc3QoKSl9ZnVuY3Rpb24gY3Z0KGQsZyl7aWYoMSZkJiYoaXQoMCwidGQiLDMzKSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoKS4kaW1wbGljaXQ7VHQoInJvdXRlckxpbmsiLCIvdmlldy91c2VybmF2L2dyb3Vwcy8iK2guVVJJ''@;'; + put 'put ''KSx1dCgxKSxKaSgiICIsaC5HUk9VUE5BTUUsIiAiKX19ZnVuY3Rpb24gZnZ0KGQsZyl7aWYoMSZkJiYoRjAoMCksaXQoMSwidGQiLDMzKSxVdCgyKSxzdCgpLEgwKCkpLDImZCl7Y29uc3QgaD1LdCgpLiRpbXBsaWNpdDt1dCgxKSxUdCgicm91dGVyTGluayIsIi92aWV3L3VzZXJuYXYvZ3Jv''@;'; + put 'put ''dXBzLyIrKGguR1JPVVBVUkl8fGguVVJJKSksdXQoMSksSmkoIiAiLGguR1JPVVBOQU1FLCIgIil9fWZ1bmN0aW9uIGh2dChkLGcpe2lmKDEmZCYmKGl0KDAsInRyIikscm4oMSxjdnQsMiwyLCJ0ZCIsMzIpLHJuKDIsZnZ0LDMsMiwibmctY29udGFpbmVyIiw1KSxzdCgpKSwyJmQpe2NvbnN0''@;'; + put 'put ''IGg9S3QoMyk7dXQoMSksVHQoIm5nSWYiLGguc2VydmVyVHlwZT09PWguU2VydmVyVHlwZS5TYXNWaXlhKSx1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlIT09aC5TZXJ2ZXJUeXBlLlNhc1ZpeWEpfX1mdW5jdGlvbiBkdnQoZCxnKXtpZigxJmQmJihpdCgwLCJ0YWJsZSIsMjkpKDEsInRi''@;'; + put 'put ''b2R5Iikscm4oMixodnQsMywyLCJ0ciIsMiksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3QoMik7dXQoMiksVHQoIm5nRm9yT2YiLGgudXNlckdyb3Vwcyl9fWZ1bmN0aW9uIHB2dChkLGcpezEmZCYmQ3IoMCwiaHIiKX1mdW5jdGlvbiBndnQoZCxnKXsxJmQmJihpdCgwLCJoNSIpLFV0KDEsIk5v''@;'; + put 'put ''IFJvbGVzIFByZXNlbnQiKSxzdCgpKX1mdW5jdGlvbiBtdnQoZCxnKXtpZigxJmQmJihpdCgwLCJ0ciIpKDEsInRkIiwzNCksVXQoMiksc3QoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1LdCg0KTt1dCgxKSxUdCgicm91dGVyTGluayIsIi92aWV3L3VzZXJuYXYvcm9sZXMvIit2''@;'; + put 'put ''LmdldFJvbGVVUkkoaC5ST0xFVVJJKSksdXQoMSksSmkoIiAiLGguUk9MRU5BTUUsIiAiKX19ZnVuY3Rpb24gdnZ0KGQsZyl7aWYoMSZkJiYoaXQoMCwidGFibGUiLDI5KSgxLCJ0Ym9keSIpLHJuKDIsbXZ0LDMsMiwidHIiLDIpLHN0KCkoKSksMiZkKXtjb25zdCBoPUt0KDMpO3V0KDIpLFR0''@;'; + put 'put ''KCJuZ0Zvck9mIixoLnVzZXJSb2xlcyl9fWZ1bmN0aW9uIEF2dChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIpKDEsImgzIiksVXQoMiksc3QoKSxybigzLGd2dCwyLDAsImg1Iiw1KSxpdCg0LCJkaXYiLDI0KSxybig1LHZ2dCwzLDEsInRhYmxlIiwyNSksc3QoKSgpKSwyJmQpe2NvbnN0IGg9''@;'; + put 'put ''S3QoMik7dXQoMiksSmkoIlJPTEVTICgiLGgudXNlclJvbGVzQ291bnR8fCIwIiwiKSIpLHV0KDEpLFR0KCJuZ0lmIiwwPT1oLnVzZXJSb2xlc0NvdW50KSx1dCgyKSxUdCgibmdJZiIsMCE9aC51c2VyUm9sZXNDb3VudCl9fWZ1bmN0aW9uIHl2dChkLGcpezEmZCYmQ3IoMCwiaHIiKX1mdW5j''@;'; + put 'put ''dGlvbiB3dnQoZCxnKXsxJmQmJihpdCgwLCJoNSIpLFV0KDEsIk5vIExvZ2lucyBQcmVzZW50Iiksc3QoKSl9ZnVuY3Rpb24gYnZ0KGQsZyl7aWYoMSZkJiYoaXQoMCwidHIiKSgxLCJ0ZCIsMzEpLFV0KDIpLHN0KCksaXQoMywidGQiLDMxKSxVdCg0KSxzdCgpKCkpLDImZCl7Y29uc3QgaD1n''@;'; + put 'put ''LiRpbXBsaWNpdDt1dCgyKSxHaShoLkRPTUFJTiksdXQoMiksR2koaC5VU0VSSUQpfX1mdW5jdGlvbiBfdnQoZCxnKXtpZigxJmQmJihpdCgwLCJ0YWJsZSIsMjkpKDEsInRoZWFkIikoMiwidHIiKSgzLCJ0ZCIsMzApKDQsImIiKSxVdCg1LCJET01BSU4iKSxzdCgpKCksaXQoNiwidGQiKSg3''@;'; + put 'put ''LCJiIiksVXQoOCwiVVNFUiBJRCIpLHN0KCkoKSgpKCksaXQoOSwidGJvZHkiKSxybigxMCxidnQsNSwyLCJ0ciIsMiksc3QoKSgpKSwyJmQpe2NvbnN0IGg9S3QoMyk7dXQoMTApLFR0KCJuZ0Zvck9mIixoLnVzZXJMb2dpbnMpfX1mdW5jdGlvbiBDdnQoZCxnKXtpZigxJmQmJihpdCgwLCJk''@;'; + put 'put ''aXYiKSgxLCJoMyIpLFV0KDIpLHN0KCkscm4oMyx3dnQsMiwwLCJoNSIsNSksaXQoNCwiZGl2IiwyNCkscm4oNSxfdnQsMTEsMSwidGFibGUiLDI1KSxzdCgpKCkpLDImZCl7Y29uc3QgaD1LdCgyKTt1dCgyKSxKaSgiTE9HSU5TICgiLGgudXNlckxvZ2luc0NvdW50fHwiMCIsIikiKSx1dCgx''@;'; + put 'put ''KSxUdCgibmdJZiIsMD09aC51c2VyTG9naW5zQ291bnQpLHV0KDIpLFR0KCJuZ0lmIiwwIT1oLnVzZXJMb2dpbnNDb3VudCl9fWZ1bmN0aW9uIGt2dChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIpLHJuKDEsbnZ0LDE1LDMsImRpdiIsMjApLHJuKDIscnZ0LDE5LDMsImRpdiIsMjApLGl0KDMs''@;'; + put 'put ''ImRpdiIsMjEpKDQsImRpdiIsMjIpKDUsImRpdiIsMjMpLHJuKDYsbHZ0LDYsMywiZGl2Iiw1KSxybig3LHN2dCwxLDAsImhyIiw1KSxpdCg4LCJkaXYiKSg5LCJoMyIpLFV0KDEwKSxzdCgpLHJuKDExLHV2dCwyLDAsImg1Iiw1KSxpdCgxMiwiZGl2IiwyNCkscm4oMTMsZHZ0LDMsMSwidGFi''@;'; + put 'put ''bGUiLDI1KSxzdCgpKCkscm4oMTQscHZ0LDEsMCwiaHIiLDUpLHJuKDE1LEF2dCw2LDMsImRpdiIsNSkscm4oMTYseXZ0LDEsMCwiaHIiLDUpLHJuKDE3LEN2dCw2LDMsImRpdiIsNSksQ3IoMTgsImJyIiksc3QoKSgpKCkoKSksMiZkKXtjb25zdCBoPUt0KCk7dXQoMSksVHQoIm5nSWYiLGgu''@;'; + put 'put ''c2VydmVyVHlwZSE9PWguU2VydmVyVHlwZS5TYXNWaXlhKSx1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNhc1ZpeWEmJmgudXNlckluZm8pLHV0KDQpLFR0KCJuZ0lmIixoLnNlcnZlclR5cGU9PT1oLlNlcnZlclR5cGUuU2FzOSksdXQoMSksVHQoIm5nSWYi''@;'; + put 'put ''LGguc2VydmVyVHlwZT09PWguU2VydmVyVHlwZS5TYXM5KSx1dCgzKSxKaSgiR1JPVVBTICgiLGgudXNlckdyb3Vwc0NvdW50fHwiMCIsIikiKSx1dCgxKSxUdCgibmdJZiIsMD09aC51c2VyR3JvdXBzQ291bnQpLHV0KDIpLFR0KCJuZ0lmIiwwIT1oLnVzZXJHcm91cHNDb3VudCksdXQoMSks''@;'; + put 'put ''VHQoIm5nSWYiLGguc2VydmVyVHlwZT09PWguU2VydmVyVHlwZS5TYXM5KSx1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNhczkpLHV0KDEpLFR0KCJuZ0lmIixoLnNlcnZlclR5cGU9PT1oLlNlcnZlclR5cGUuU2FzOSksdXQoMSksVHQoIm5nSWYiLGguc2Vy''@;'; + put 'put ''dmVyVHlwZT09PWguU2VydmVyVHlwZS5TYXM5KX19bGV0IExMZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5oZWxwZXJTZXJ2aWNlPWgsdGhpcy5zYXNTZXJ2aWNlPXYsdGhpcy5yb3V0ZT15LHRoaXMubG9jYXRpb249Qyx0aGlzLnJvdXRlcj1JLHRoaXMubG9h''@;'; + put 'put ''ZGluZz0hMSx0aGlzLnVzZXJTZWFyY2g9IiIsdGhpcy5wYXJhbVByZXNlbnQ9ITEsdGhpcy5wYXJhbU5hbWU9IiIsdGhpcy5zYXNqc0NvbmZpZz1uZXcgUTMuU0FTanNDb25maWcsdGhpcy5pc1ZpeWE9ITEsdGhpcy5zZXJ2ZXJUeXBlPSIiLHRoaXMuU2VydmVyVHlwZT1IdS5ELHRoaXMuc2Vy''@;'; + put 'put ''dmVyVHlwZT10aGlzLnNhc1NlcnZpY2UuZ2V0U2VydmVyVHlwZSgpLHRoaXMuc2FzanNDb25maWc9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksIlNBU1ZJWUEiPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlJiYodGhpcy5pc1ZpeWE9ITApfW5nT25Jbml0KCl7aWYobmku''@;'; + put 'put ''dmlld2VyLmN1cnJlbnRTZWxlY3Rpb249InZpZXcvdXNlcm5hdi91c2VycyIsdm9pZCAwIT09dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudXJpJiYodGhpcy5wYXJhbVByZXNlbnQ9ITAsdGhpcy5wYXJhbU5hbWU9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudXJpKSxuaS51c2VybmF2''@;'; + put 'put ''LnVzZXJMaXN0JiYhdGhpcy5wYXJhbVByZXNlbnQpdGhpcy51c2Vycz1uaS51c2VybmF2LnVzZXJMaXN0LHRoaXMudXNlclNlYXJjaD1uaS51c2VybmF2LnVzZXJTZWFyY2g7ZWxzZSBpZih2b2lkIDA9PT1uaS51c2VybmF2LnVzZXJMaXN0Pyh0aGlzLmxvYWRpbmc9ITAsdGhpcy5pc1ZpeWE/''@;'; + put 'put ''ZmV0Y2godGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwrIi9pZGVudGl0aWVzL3VzZXJzP2xpbWl0PTIwMDAiLHtoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifX0pLnRoZW4oaD0+aC50ZXh0KCkpLnRoZW4oaD0+e2xldCB5PUpTT04ucGFyc2UoaCkuaXRlbXMubWFwKEM9Pih7''@;'; + put 'put ''TkFNRTpDLm5hbWUsVVJJOkMuaWQsUFJPVklERVI6Qy5wcm92aWRlcklkfSkpO3RoaXMubG9hZGluZz0hMSx0aGlzLnVzZXJzPXksbmkudXNlcm5hdi51c2VyTGlzdD15fSk6dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcm1lbWJlcnMiLG51bGwpLnRoZW4oaD0+e3RoaXMu''@;'; + put 'put ''bG9hZGluZz0hMSx0aGlzLnVzZXJzPWgudXNlcnMsbmkudXNlcm5hdi51c2VyTGlzdD1oLnVzZXJzfSkpOih0aGlzLnVzZXJzPW5pLnVzZXJuYXYudXNlckxpc3QsdGhpcy51c2VyU2VhcmNoPW5pLnVzZXJuYXYudXNlclNlYXJjaCksdGhpcy5wYXJhbVByZXNlbnQpaWYodGhpcy5sb2FkaW5n''@;'; + put 'put ''PSEwLHRoaXMuaXNWaXlhKXtsZXQgaD10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmk7ZmV0Y2godGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwrIi9pZGVudGl0aWVzL3VzZXJzLyIraCsiL21lbWJlcnNoaXBzP2xpbWl0PTIwMDAiLHtoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9u''@;'; + put 'put ''L2pzb24ifX0pLnRoZW4odj0+di50ZXh0KCkpLnRoZW4odj0+e2xldCB5PUpTT04ucGFyc2Uodik7dGhpcy51c2VyRGF0YT15LHRoaXMubG9hZGluZz0hMTtsZXQgQz15Lml0ZW1zLm1hcChJPT4oe0dST1VQTkFNRTpJLm5hbWUsVVJJOkkuaWR9KSk7dGhpcy51c2VyR3JvdXBzPUMsdGhpcy51''@;'; + put 'put ''c2VyR3JvdXBzQ291bnQ9Qy5sZW5ndGgsdGhpcy51c2VycyYmKHRoaXMudXNlckluZm89dGhpcy51c2Vycy5maW5kKEk9PkkuVVJJPT09aCkpfSl9ZWxzZXtjb25zdCBoPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnVyaTt0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2Vy''@;'; + put 'put ''Z3JvdXBzYnltZW1iZXIiLHtpd2FudDpbe3VyaTpofV19KS50aGVuKHk9Pntzd2l0Y2godGhpcy5sb2FkaW5nPSExLHRoaXMuc2VydmVyVHlwZSl7Y2FzZSBIdS5ELlNhczk6dGhpcy51c2VySW5mbz15LmluZm9bMF0sdGhpcy51c2VyRW1haWxzPXkuZW1haWxzLHRoaXMudXNlckVtYWlsc0Nv''@;'; + put 'put ''dW50PXkuZW1haWxzLmxlbmd0aCx0aGlzLnVzZXJSb2xlcz15LnJvbGVzLHRoaXMudXNlclJvbGVzQ291bnQ9eS5yb2xlcy5sZW5ndGgsdGhpcy51c2VyTG9naW5zPXkubG9naW5zLHRoaXMudXNlckxvZ2luc0NvdW50PXkubG9naW5zLmxlbmd0aDticmVhaztjYXNlIEh1LkQuU2FzanM6aWYo''@;'; + put 'put ''dGhpcy51c2Vycyl0aGlzLnVzZXJJbmZvPXRoaXMudXNlcnMuZmluZChDPT5DLlVSST09PWgpO2Vsc2V7Y29uc3QgQz15Lmdyb3Vwc1swXTt0aGlzLnVzZXJJbmZvPXtVUkk6Qy5JRCxOQU1FOkMuTkFNRSxESVNQTEFZTkFNRTpDLk5BTUV9fX10aGlzLnVzZXJEYXRhPXksdGhpcy51c2VyR3Jv''@;'; + put 'put ''dXBzPXkuZ3JvdXBzLHRoaXMudXNlckdyb3Vwc0NvdW50PXkuZ3JvdXBzLmxlbmd0aH0pfX11c2VyTGlzdE9uRmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLmxpYnJhcnlPbkZpbHRlcih0aGlzLnVzZXJzLHRoaXMudXNlclNlYXJjaCwiTkFNRSIpLG5pLnVzZXJuYXYudXNlclNlYXJjaD10''@;'; + put 'put ''aGlzLnVzZXJTZWFyY2h9dXNlck9uQ2xpY2soaCl7dGhpcy5sb2FkaW5nPSEwO2xldCB2PXRoaXMucm91dGVyLnVybDt0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh0aGlzLnBhcmFtUHJlc2VudD92LnNsaWNlKDAsdi5sYXN0SW5kZXhPZigiLyIpKSsiLyIrZW5jb2RlVVJJKGguVVJJKTp2''@;'; + put 'put ''KyIvIitlbmNvZGVVUkkoaC5VUkkpKSx0aGlzLmlzVml5YT9mZXRjaCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCsiL2lkZW50aXRpZXMvdXNlcnMvIitoLlVSSSsiL21lbWJlcnNoaXBzP2xpbWl0PTIwMDAiLHtoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifX0pLnRoZW4o''@;'; + put 'put ''eT0+eS50ZXh0KCkpLnRoZW4oeT0+e2xldCBDPUpTT04ucGFyc2UoeSk7dGhpcy51c2VyRGF0YT1DLHRoaXMubG9hZGluZz0hMTtsZXQgST1DLml0ZW1zLm1hcChqPT4oe0dST1VQTkFNRTpqLm5hbWUsVVJJOmouaWR9KSk7dGhpcy51c2VyR3JvdXBzPUksdGhpcy51c2VyR3JvdXBzQ291bnQ9''@;'; + put 'put ''SS5sZW5ndGgsdGhpcy51c2VycyYmKHRoaXMudXNlckluZm89dGhpcy51c2Vycy5maW5kKGo9PmouVVJJPT09aC5VUkkpKX0pOnRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJncm91cHNieW1lbWJlciIse2l3YW50Olt7dXJpOmguVVJJfV19KS50aGVuKEM9Pntzd2l0Y2go''@;'; + put 'put ''dGhpcy5sb2FkaW5nPSExLHRoaXMuc2VydmVyVHlwZSl7Y2FzZSBIdS5ELlNhczk6dGhpcy51c2VySW5mbz1DLmluZm9bMF0sdGhpcy51c2VyRW1haWxzPUMuZW1haWxzLHRoaXMudXNlckVtYWlsc0NvdW50PUMuZW1haWxzLmxlbmd0aCx0aGlzLnVzZXJSb2xlcz1DLnJvbGVzLHRoaXMudXNl''@;'; + put 'put ''clJvbGVzQ291bnQ9Qy5yb2xlcy5sZW5ndGgsdGhpcy51c2VyTG9naW5zPUMubG9naW5zLHRoaXMudXNlckxvZ2luc0NvdW50PUMubG9naW5zLmxlbmd0aDticmVhaztjYXNlIEh1LkQuU2FzanM6aWYodGhpcy51c2Vycyl0aGlzLnVzZXJJbmZvPXRoaXMudXNlcnMuZmluZChJPT5JLlVSST09''@;'; + put 'put ''PWguVVJJKTtlbHNle2NvbnN0IEk9Qy5ncm91cHNbMF07dGhpcy51c2VySW5mbz17VVJJOkkuSUQsTkFNRTpJLk5BTUUsRElTUExBWU5BTUU6SS5OQU1FfX19dGhpcy51c2VyRGF0YT1DLHRoaXMudXNlckdyb3Vwcz1DLmdyb3Vwcyx0aGlzLnVzZXJHcm91cHNDb3VudD1DLmdyb3Vwcy5sZW5n''@;'; + put 'put ''dGh9KX1nZXRSb2xlVVJJKGgpe3JldHVybiBoLnNwbGl0KCJPTVNPQko6SWRlbnRpdHlHcm91cCIpWzFdLnNsaWNlKDEpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShYdChYYyksWHQoZzIpLFh0KFB1KSxYdChWNiksWHQoWmwpKX0sZC5cdTAyNzVj''@;'; + put 'put ''bXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLXVzZXIiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjcsdmFyczo0LGNvbnN0czpbWzEsInNpZGViYXItaGVpZ2h0Il0sWyJjbGFzcyIsInNlYXJjaC1ub2RlIiw0LCJuZ0lmIl0sWzQsIm5nRm9yIiwibmdG''@;'; + put 'put ''b3JPZiJdLFsxLCJjb250ZW50LWFyZWEiXSxbImNsYXNzIiwibG9hZGluZ1NwaW5uZXIiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsxLCJzZWFyY2gtbm9kZSJdLFsxLCJ0cmVlLXNlYXJjaC13cmFwcGVyIl0sWyJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwiRmlsdGVyIGJ5IFVzZXJzIiwi''@;'; + put 'put ''bmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImtleXVwIl0sWyJzZWFyY2hMaWJUcmVlSW5wdXQiLCIiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJZiJdLFsi''@;'; + put 'put ''c2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzMsInRhYmxlLWFjdGl2ZSIsImNsaWNrIiw0LCJuZ0lmIl0sWzMsImNsaWNrIl0sWzEsIm0tMCIsImN1cnNvci1wb2ludGVyIiwibGlzdC1wYWRkaW5nIl0sWyJzaGFwZSIsInVzZXIiXSxbMSwibG9hZGluZ1Nw''@;'; + put 'put ''aW5uZXIiXSxbMSwic3Bpbm5lciJdLFsiY2xhc3MiLCJjbHItcm93Iiw0LCJuZ0lmIl0sWzEsImNsci1yb3ciXSxbMSwiY2xyLWNvbC04Il0sWzEsImNhcmQiLCJ1c2VyLWRhdGEiXSxbMSwidGFibGUtY29udGFpbmVyIl0sWyJjbGFzcyIsInRhYmxlIHVzZXItdGFibGUiLDQsIm5nSWYiXSxb''@;'; + put 'put ''MSwidGFibGUiLCJ1c2VyLWluZm8iXSxbMSwibGVmdCJdLFsxLCJ1c2VyLWluZm8tdGV4dCJdLFsxLCJ0YWJsZSIsInVzZXItdGFibGUiXSxbMSwid2lkdGgtNTAiXSxbMSwiIl0sWyJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiwiY2xhc3MiLCIiLDMsInJvdXRlckxpbmsiLDQsIm5nSWYi''@;'; + put 'put ''XSxbInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiLDEsIiIsMywicm91dGVyTGluayJdLFszLCJyb3V0ZXJMaW5rIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoaXQoMCwiYXBwLXNpZGViYXIiLDApKDEsImNsci10cmVlIikscm4oMixLOXQsNiwzLCJjbHItdHJlZS1ub2RlIiwx''@;'; + put 'put ''KSxybigzLHE5dCwyLDEsIm5nLWNvbnRhaW5lciIsMiksc3QoKSgpLGl0KDQsImRpdiIsMykscm4oNSxldnQsMywwLCJkaXYiLDQpLHJuKDYsa3Z0LDE5LDExLCJkaXYiLDUpLHN0KCkpLDImaCYmKHV0KDIpLFR0KCJuZ0lmIix2LnVzZXJzKSx1dCgxKSxUdCgibmdGb3JPZiIsdi51c2Vycyks''@;'; + put 'put ''dXQoMiksVHQoIm5nSWYiLHYubG9hZGluZyksdXQoMSksVHQoIm5nSWYiLHYudXNlckRhdGEmJiF2LmxvYWRpbmcpKX0sZGVwZW5kZW5jaWVzOltacyxWbyxtMSxFcyx4cyxZNixvayx5OSxfZyx3bCxwOSx5U10sc3R5bGVzOlsiLnNpZGViYXItaGVpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXXto''@;'; + put 'put ''ZWlnaHQ6MTAwJX0udXNlci1pbmZvLXRleHRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lO2ZvbnQtc2l6ZToyMHB4fS51c2VyLWluZm9bX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTtib3JkZXI6MXB4IHNvbGlkICNhN2E3YTc7Ym9yZGVyLXJh''@;'; + put 'put ''ZGl1czozcHg7Ym94LXNoYWRvdzowIDJweCA1cHggI2RhZDdkN30udXNlci1pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRkW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOmNlbnRlcn0udXNlci1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7''@;'; + put 'put ''Ym9yZGVyOjFweCBzb2xpZCAjYTdhN2E3O2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MCAycHggNXB4ICNkYWQ3ZDd9LnVzZXItZGF0YVtfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDphdXRvfS51c2VyLWRhdGFbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0l''@;'; + put 'put ''Q09NUCVdLCAudXNlci1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOmNlbnRlcn0udXNlci10YWJsZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O3dpZHRoOjEwMCV9LnVzZXItdGFibGVbX25nY29u''@;'; + put 'put ''dGVudC0lQ09NUCVdICAgdGhlYWRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2RhZGFkYX0udXNlci10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0Ym9keVtfbmdjb250ZW50LSVDT01QJV0gICB0cltfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7YmFja2dyb3VuZC1j''@;'; + put 'put ''b2xvcjojZTZlNmU2O2N1cnNvcjpwb2ludGVyfS53aWR0aC01MFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6NTAlfS53aWR0aC0zM1tfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MzMlfS50YWJsZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93LXk6c2Nyb2xsO21heC1o''@;'; + put 'put ''ZWlnaHQ6NTAwcHh9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey51c2VyLWRhdGFbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6dW5zZXQhaW1wb3J0YW50fX0iXX0pLGR9KSgpO2NvbnN0IE9MZT1uZXcgemUoIldpbmRvd1Rva2VuIiwidW5kZWZpbmVkIiE9dHlw''@;'; + put 'put ''ZW9mIHdpbmRvdyYmd2luZG93LmRvY3VtZW50P3twcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT53aW5kb3d9OnZvaWQgMCk7Y2xhc3MgVmd7Y29uc3RydWN0b3IoZyxoKXt0aGlzLmRvY3VtZW50PWcsdGhpcy53aW5kb3c9aCx0aGlzLmNvcHlTdWJqZWN0PW5ldyAkZSx0aGlzLmNvcHlS''@;'; + put 'put ''ZXNwb25zZSQ9dGhpcy5jb3B5U3ViamVjdC5hc09ic2VydmFibGUoKSx0aGlzLmNvbmZpZz17fX1jb25maWd1cmUoZyl7dGhpcy5jb25maWc9Z31jb3B5KGcpe2lmKCF0aGlzLmlzU3VwcG9ydGVkfHwhZylyZXR1cm4gdGhpcy5wdXNoQ29weVJlc3BvbnNlKHtpc1N1Y2Nlc3M6ITEsY29udGVu''@;'; + put 'put ''dDpnfSk7Y29uc3QgaD10aGlzLmNvcHlGcm9tQ29udGVudChnKTtyZXR1cm4gdGhpcy5wdXNoQ29weVJlc3BvbnNlKGg/e2NvbnRlbnQ6Zyxpc1N1Y2Nlc3M6aH06e2lzU3VjY2VzczohMSxjb250ZW50Omd9KX1nZXQgaXNTdXBwb3J0ZWQoKXtyZXR1cm4hIXRoaXMuZG9jdW1lbnQucXVlcnlD''@;'; + put 'put ''b21tYW5kU3VwcG9ydGVkJiYhIXRoaXMuZG9jdW1lbnQucXVlcnlDb21tYW5kU3VwcG9ydGVkKCJjb3B5IikmJiEhdGhpcy53aW5kb3d9aXNUYXJnZXRWYWxpZChnKXtpZihnIGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudHx8ZyBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpe2lm''@;'; + put 'put ''KGcuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpKXRocm93IG5ldyBFcnJvcignSW52YWxpZCAidGFyZ2V0IiBhdHRyaWJ1dGUuIFBsZWFzZSB1c2UgInJlYWRvbmx5IiBpbnN0ZWFkIG9mICJkaXNhYmxlZCIgYXR0cmlidXRlJyk7cmV0dXJuITB9dGhyb3cgbmV3IEVycm9yKCJUYXJnZXQgc2hv''@;'; + put 'put ''dWxkIGJlIGlucHV0IG9yIHRleHRhcmVhIil9Y29weUZyb21JbnB1dEVsZW1lbnQoZyxoPSEwKXt0cnl7dGhpcy5zZWxlY3RUYXJnZXQoZyk7Y29uc3Qgdj10aGlzLmNvcHlUZXh0KCk7cmV0dXJuIHRoaXMuY2xlYXJTZWxlY3Rpb24oaD9nOnZvaWQgMCx0aGlzLndpbmRvdyksdiYmdGhpcy5p''@;'; + put 'put ''c0NvcHlTdWNjZXNzSW5JRTExKCl9Y2F0Y2godil7cmV0dXJuITF9fWlzQ29weVN1Y2Nlc3NJbklFMTEoKXtjb25zdCBnPXRoaXMud2luZG93LmNsaXBib2FyZERhdGE7cmV0dXJuIShnJiZnLmdldERhdGEmJiFnLmdldERhdGEoIlRleHQiKSl9Y29weUZyb21Db250ZW50KGcsaD10aGlzLmRv''@;'; + put 'put ''Y3VtZW50LmJvZHkpe2lmKHRoaXMudGVtcFRleHRBcmVhJiYhaC5jb250YWlucyh0aGlzLnRlbXBUZXh0QXJlYSkmJnRoaXMuZGVzdHJveSh0aGlzLnRlbXBUZXh0QXJlYS5wYXJlbnRFbGVtZW50KSwhdGhpcy50ZW1wVGV4dEFyZWEpe3RoaXMudGVtcFRleHRBcmVhPXRoaXMuY3JlYXRlVGVt''@;'; + put 'put ''cFRleHRBcmVhKHRoaXMuZG9jdW1lbnQsdGhpcy53aW5kb3cpO3RyeXtoLmFwcGVuZENoaWxkKHRoaXMudGVtcFRleHRBcmVhKX1jYXRjaCh5KXt0aHJvdyBuZXcgRXJyb3IoIkNvbnRhaW5lciBzaG91bGQgYmUgYSBEb20gZWxlbWVudCIpfX10aGlzLnRlbXBUZXh0QXJlYS52YWx1ZT1nO2Nv''@;'; + put 'put ''bnN0IHY9dGhpcy5jb3B5RnJvbUlucHV0RWxlbWVudCh0aGlzLnRlbXBUZXh0QXJlYSwhMSk7cmV0dXJuIHRoaXMuY29uZmlnLmNsZWFuVXBBZnRlckNvcHkmJnRoaXMuZGVzdHJveSh0aGlzLnRlbXBUZXh0QXJlYS5wYXJlbnRFbGVtZW50KSx2fWRlc3Ryb3koZz10aGlzLmRvY3VtZW50LmJv''@;'; + put 'put ''ZHkpe3RoaXMudGVtcFRleHRBcmVhJiYoZy5yZW1vdmVDaGlsZCh0aGlzLnRlbXBUZXh0QXJlYSksdGhpcy50ZW1wVGV4dEFyZWE9dm9pZCAwKX1zZWxlY3RUYXJnZXQoZyl7cmV0dXJuIGcuc2VsZWN0KCksZy5zZXRTZWxlY3Rpb25SYW5nZSgwLGcudmFsdWUubGVuZ3RoKSxnLnZhbHVlLmxl''@;'; + put 'put ''bmd0aH1jb3B5VGV4dCgpe3JldHVybiB0aGlzLmRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iil9Y2xlYXJTZWxlY3Rpb24oZyxoKXtnJiZnLmZvY3VzKCksaC5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKX1jcmVhdGVUZW1wVGV4dEFyZWEoZyxoKXtjb25zdCB2PSJydGwiPT09''@;'; + put 'put ''Zy5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkaXIiKTtsZXQgeTtyZXR1cm4geT1nLmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIikseS5zdHlsZS5mb250U2l6ZT0iMTJwdCIseS5zdHlsZS5ib3JkZXI9IjAiLHkuc3R5bGUucGFkZGluZz0iMCIseS5zdHlsZS5tYXJnaW49IjAiLHku''@;'; + put 'put ''c3R5bGUucG9zaXRpb249ImFic29sdXRlIix5LnN0eWxlW3Y/InJpZ2h0IjoibGVmdCJdPSItOTk5OXB4Iix5LnN0eWxlLnRvcD0oaC5wYWdlWU9mZnNldHx8Zy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wKSsicHgiLHkuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsIiIpLHl9cHVzaENvcHlS''@;'; + put 'put ''ZXNwb25zZShnKXt0aGlzLmNvcHlTdWJqZWN0Lm5leHQoZyl9cHVzaENvcHlSZXBvbnNlKGcpe3RoaXMucHVzaENvcHlSZXNwb25zZShnKX19VmcuXHUwMjc1ZmFjPWZ1bmN0aW9uKGcpe3JldHVybiBuZXcoZ3x8VmcpKENpKHBzKSxDaShPTGUsOCkpfSxWZy5cdTAyNzVwcm92PUFpKHt0b2tl''@;'; + put 'put ''bjpWZyxmYWN0b3J5OlZnLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLFZnLm5nSW5qZWN0YWJsZURlZj12aSh7ZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybiBuZXcgVmcoaDIocHMpLGgyKE9MZSw4KSl9LHRva2VuOlZnLHByb3ZpZGVkSW46InJvb3QifSk7bGV0IFN2dD0oKCk9Pntj''@;'; + put 'put ''bGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuY2xpcGJvYXJkU3J2PWgsdGhpcy5jYk9uU3VjY2Vzcz1uZXcgYXIsdGhpcy5jYk9uRXJyb3I9bmV3IGFyfW5nT25Jbml0KCl7fW5nT25EZXN0cm95KCl7dGhpcy5jbGlwYm9hcmRTcnYuZGVzdHJveSh0aGlzLmNvbnRhaW5lcil9b25DbGljayho''@;'; + put 'put ''KXt0aGlzLmNsaXBib2FyZFNydi5pc1N1cHBvcnRlZD90aGlzLnRhcmdldEVsbSYmdGhpcy5jbGlwYm9hcmRTcnYuaXNUYXJnZXRWYWxpZCh0aGlzLnRhcmdldEVsbSk/dGhpcy5oYW5kbGVSZXN1bHQodGhpcy5jbGlwYm9hcmRTcnYuY29weUZyb21JbnB1dEVsZW1lbnQodGhpcy50YXJnZXRF''@;'; + put 'put ''bG0pLHRoaXMudGFyZ2V0RWxtLnZhbHVlLGgpOnRoaXMuY2JDb250ZW50JiZ0aGlzLmhhbmRsZVJlc3VsdCh0aGlzLmNsaXBib2FyZFNydi5jb3B5RnJvbUNvbnRlbnQodGhpcy5jYkNvbnRlbnQsdGhpcy5jb250YWluZXIpLHRoaXMuY2JDb250ZW50LGgpOnRoaXMuaGFuZGxlUmVzdWx0KCEx''@;'; + put 'put ''LHZvaWQgMCxoKX1oYW5kbGVSZXN1bHQoaCx2LHkpe2xldCBDPXtpc1N1Y2Nlc3M6aCxldmVudDp5fTtoPyhDPU9iamVjdC5hc3NpZ24oQyx7Y29udGVudDp2LHN1Y2Nlc3NNZXNzYWdlOnRoaXMuY2JTdWNjZXNzTXNnfSksdGhpcy5jYk9uU3VjY2Vzcy5lbWl0KEMpKTp0aGlzLmNiT25FcnJv''@;'; + put 'put ''ci5lbWl0KEMpLHRoaXMuY2xpcGJvYXJkU3J2LnB1c2hDb3B5UmVzcG9uc2UoQyl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KFZnKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5neENsaXBib2FyZCIsIiJdXSxo''@;'; + put 'put ''b3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJlluKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25DbGljayhDLnRhcmdldCl9KX0saW5wdXRzOnt0YXJnZXRFbG06WyJuZ3hDbGlwYm9hcmQiLCJ0YXJnZXRFbG0iXSxjb250YWluZXI6ImNvbnRhaW5lciIsY2JDb250ZW50OiJj''@;'; + put 'put ''YkNvbnRlbnQiLGNiU3VjY2Vzc01zZzoiY2JTdWNjZXNzTXNnIn0sb3V0cHV0czp7Y2JPblN1Y2Nlc3M6ImNiT25TdWNjZXNzIixjYk9uRXJyb3I6ImNiT25FcnJvciJ9fSksZH0pKCksTXZ0PSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3''@;'; + put 'put ''KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W2JhXX0pLGR9KSgpO3ZhciBFdnQ9TCgzNjYyNSk7bGV0IHh2dD0oKCk9PntjbGFzcyBke3RyYW5zZm9ybShoLC4uLnYpe2NvbnN0IHk9cGFyc2VJbnQodlswXSl8fDIsQz0ibnVtYmVyIiE9''@;'; + put 'put ''dHlwZW9mIGg/cGFyc2VJbnQoaCk6aDtyZXR1cm4oMCxFdnQuUikoQyx5KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cGlwZT1Vcyh7bmFtZToiY29udmVydFNpemUiLHR5cGU6ZCxwdXJlOiEwfSksZH0pKCk7Y29uc3QgVHZ0PVsi''@;'; + put 'put ''cXVlcnlGaWx0ZXIiXTtmdW5jdGlvbiBJdnQoZCxnKXsxJmQmJihpdCgwLCJkaXYiLDQ4KSxDcigxLCJjbHItc3Bpbm5lciIsNDkpLHN0KCkpfWZ1bmN0aW9uIER2dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDU2KX1mdW5jdGlvbiBMdnQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtp''@;'; + put 'put ''dCgwLCJjbHItaWNvbiIsNTcpLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KDIpO3JldHVybiB5LmxpYnJhcmllc1NlYXJjaD0iIixhKHkubGlicmFyeU9uRmlsdGVyKCkpfSksc3QoKX19ZnVuY3Rpb24gT3Z0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwi''@;'; + put 'put ''Y2xyLXRyZWUtbm9kZSIsNTApKDEsImRpdiIsNTEpKDIsImlucHV0Iiw1Miw1MyksWW4oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KCkubGlicmFyaWVzU2VhcmNoPXkpfSkoImtleXVwIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KCkubGlicmFy''@;'; + put 'put ''eU9uRmlsdGVyKCkpfSksc3QoKSxybig0LER2dCwxLDAsImNsci1pY29uIiw1NCkscm4oNSxMdnQsMSwwLCJjbHItaWNvbiIsNTUpLHN0KCkoKX1pZigyJmQpe2NvbnN0IGg9eWEoMyksdj1LdCgpO3V0KDIpLFR0KCJuZ01vZGVsIix2LmxpYnJhcmllc1NlYXJjaCksdXQoMiksVHQoIm5nSWYi''@;'; + put 'put ''LGgudmFsdWUubGVuZ3RoPDEpLHV0KDEpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gUnZ0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsNTYpfWZ1bmN0aW9uIEJ2dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImNsci1pY29uIiw1NyksWW4oImNsaWNr''@;'; + put 'put ''IixmdW5jdGlvbigpe3J0KGgpLEt0KCk7Y29uc3QgeT15YSgzKSxDPUt0KDIpLiRpbXBsaWNpdCxJPUt0KCk7cmV0dXJuIHkudmFsdWU9IiIsQy5zZWFyY2hTdHJpbmc9IiIsYShJLnRyZWVPbkZpbHRlcihDLCJ0YWJsZXMiKSl9KSxzdCgpfX1mdW5jdGlvbiBQdnQoZCxnKXtpZigxJmQpe2Nv''@;'; + put 'put ''bnN0IGg9X2koKTtpdCgwLCJjbHItdHJlZS1ub2RlIiw1MCkoMSwiZGl2Iiw1MSkoMiwiaW5wdXQiLDYyLDYzKSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIHJ0KGgpLGEoS3QoMikuJGltcGxpY2l0LnNlYXJjaFN0cmluZz15KX0pKCJrZXl1cCIsZnVuY3Rpb24oKXty''@;'; + put 'put ''dChoKTtjb25zdCB5PUt0KDIpLiRpbXBsaWNpdDtyZXR1cm4gYShLdCgpLnRyZWVPbkZpbHRlcih5LCJ0YWJsZXMiKSl9KSxzdCgpLHJuKDQsUnZ0LDEsMCwiY2xyLWljb24iLDU0KSxybig1LEJ2dCwxLDAsImNsci1pY29uIiw1NSksc3QoKSgpfWlmKDImZCl7Y29uc3QgaD15YSgzKSx2PUt0''@;'; + put 'put ''KDIpLiRpbXBsaWNpdDt1dCgyKSxUdCgiaWQiLCJzZWFyY2hfIit2LkxJQlJBUllSRUYpKCJuZ01vZGVsIix2LnNlYXJjaFN0cmluZyksdXQoMiksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPDEpLHV0KDEpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gRnZ0KGQsZyl7''@;'; + put 'put ''MSZkJiZDcigwLCJjbHItaWNvbiIsNjgpfWZ1bmN0aW9uIEh2dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDY5KX1mdW5jdGlvbiBOdnQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItdHJlZS1ub2RlIikoMSwiYnV0dG9uIiw2NCksWW4oImNsaWNrIixmdW5jdGlvbigp''@;'; + put 'put ''e2NvbnN0IEM9cnQoaCkuJGltcGxpY2l0LEk9S3QoMikuJGltcGxpY2l0LGo9S3QoKTtyZXR1cm4gai5saWI9SS5MSUJSQVJZUkVGLGoudGFibGU9QyxqLnNlbGVjdExpYlRhYmxlKEMpLGEoai52aWV3RGF0YSgwKSl9KSxGMCgyLDY1KSxybigzLEZ2dCwxLDAsImNsci1pY29uIiw2Nikscm4o''@;'; + put 'put ''NCxIdnQsMSwwLCJjbHItaWNvbiIsNjcpLEgwKCksVXQoNSksc3QoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PUt0KDIpLiRpbXBsaWNpdCx5PUt0KCk7dXQoMSksRmkoInRhYmxlLWFjdGl2ZSIseS5saWJUYWJBY3RpdmUodi5MSUJSQVJZUkVGLGgpKSx1dCgxKSxUdCgibmdT''@;'; + put 'put ''d2l0Y2giLGguaW5jbHVkZXMoIi1GQyIpKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwhMCksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsITEpLHV0KDEpLEppKCIgIixoLnJlcGxhY2UoIi1GQyIsIiIpLCIgIil9fWZ1bmN0aW9uIFZ2dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAs''@;'; + put 'put ''ImNsci10cmVlLW5vZGUiLDU5KSxZbigiY2xpY2siLGZ1bmN0aW9uKHkpe3J0KGgpO2NvbnN0IEM9S3QoKS4kaW1wbGljaXQ7cmV0dXJuIGEoS3QoKS50cmVlTm9kZUNsaWNrZWQoeSxDKSl9KSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBydChoKSxhKEt0KCkuJGlt''@;'; + put 'put ''cGxpY2l0LmV4cGFuZGVkPXkpfSksaXQoMSwicCIsNjApLFluKCJjbGljayIsZnVuY3Rpb24oKXtydChoKTtjb25zdCB5PUt0KCkuJGltcGxpY2l0LEM9S3QoKTtyZXR1cm4gQy5saWI9eS5MSUJSQVJZUkVGLGEoQy5saWJyYXJ5T25DbGljayh5LkxJQlJBUllSRUYseSkpfSksQ3IoMiwiY2xy''@;'; + put 'put ''LWljb24iLDYxKSxVdCgzKSxzdCgpLHJuKDQsUHZ0LDYsNCwiY2xyLXRyZWUtbm9kZSIsMikscm4oNSxOdnQsNiw2LCJjbHItdHJlZS1ub2RlIiwzKSxzdCgpfWlmKDImZCl7Y29uc3QgaD1LdCgpLiRpbXBsaWNpdDtGaSgiY2xyLWV4cGFuZGVkIixoLmV4cGFuZGVkKSxUdCgiY2xyRXhwYW5k''@;'; + put 'put ''ZWQiLGguZXhwYW5kZWQpKCJjbHJMb2FkaW5nIixoLmxvYWRpbmdUYWJsZXMmJiFoLnRhYmxlcyksdXQoMyksSmkoIiAiLGguTElCUkFSWU5BTUUsIiAiKSx1dCgxKSxUdCgibmdJZiIsaC50YWJsZXMpLHV0KDEpLFR0KCJuZ0Zvck9mIixoLnRhYmxlcyl9fWZ1bmN0aW9uIGp2dChkLGcpe2lm''@;'; + put 'put ''KDEmZCYmKEYwKDApLHJuKDEsVnZ0LDYsNywiY2xyLXRyZWUtbm9kZSIsNTgpLEgwKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxUdCgibmdJZiIsIWguaGlkZGVuJiZoLmluRm9yZWdyb3VuZCl9fWZ1bmN0aW9uIFp2dChkLGcpezEmZCYmKGl0KDAsImRpdiIsNzApKDEsInNw''@;'; + put 'put ''YW4iLDcxKSxVdCgyLCIgTG9hZGluZy4uLiAiKSxzdCgpKCkpfWZ1bmN0aW9uIHp2dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImRpdiIsNzIpKDEsImRpdiIsNzMpKDIsImRpdiIsNzQpKDMsImRpdiIsNzUpKDQsImJ1dHRvbiIsNzYpLENyKDUsImNsci1pY29uIiw3Nyksc3Qo''@;'; + put 'put ''KSxpdCg2LCJoMyIsNDMpLFV0KDcsIkVycm9yIiksc3QoKSgpLGl0KDgsImRpdiIsMTApKDksInAiKSxVdCgxMCwiWW91IGNhbm5vdCBzdWJtaXQgZW1wdHkgY2xhdXNlcyIpLHN0KCkoKSxpdCgxMSwiZGl2IiwyMSkoMTIsImJ1dHRvbiIsNzgpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gcnQoaCksYShLdCgpLm51bGxWYXJpYWJsZXM9ITEpfSksVXQoMTMsIiBPayAiKSxzdCgpKCkoKSgpKCl9fWZ1bmN0aW9uIEd2dChkLGcpezEmZCYmQ3IoMCwiZGl2Iiw3OSl9ZnVuY3Rpb24gV3Z0KGQsZyl7MSZkJiZDcigwLCJhcHAtcXVlcnkiLG51bGwsODApfWZ1bmN0aW9uIFl2dChk''@;'; + put 'put ''LGcpezEmZCYmKGl0KDAsImRpdiIsODEpKDEsInNwYW4iLDgyKSxVdCgyLCIgTG9hZGluZy4uLiAiKSxzdCgpLGl0KDMsImRpdiIpKDQsImg0IiksVXQoNSwiTG9hZGluZyB0YWJsZSB2aWV3ZXIiKSxzdCgpKCkoKSl9ZnVuY3Rpb24gVXZ0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQo''@;'; + put 'put ''MCwiY2xyLWljb24iLDEwMSksWW4oImNsaWNrIixmdW5jdGlvbigpe3J0KGgpLEt0KCk7Y29uc3QgeT15YSg1KTtyZXR1cm4gYShLdCgyKS5zZWFyY2hUYWJsZSh5KSl9KSxzdCgpfX1mdW5jdGlvbiBRdnQoZCxnKXsxJmQmJihpdCgwLCJzcGFuIiwxMDIpLFV0KDEsIiBMb2FkaW5nLi4uICIp''@;'; + put 'put ''LHN0KCkpfWZ1bmN0aW9uIEp2dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDEwMyl9ZnVuY3Rpb24gWHZ0KGQsZyl7aWYoMSZkJiYoaXQoMCwic3BhbiIpLFV0KDEpLG5uKDIsInRob3VzYW5kU2VwYXJhdG9yIiksc3QoKSksMiZkKXtjb25zdCBoPUt0KDQpO3V0KDEpLEZoKCIgKCIsUG4o''@;'; + put 'put ''MiwyLGgubnVtYmVyT2ZSb3dzLCIsIiksIiAiLDE9PT1oLm51bWJlck9mUm93cz8icm93Ijoicm93cyIsIikgIil9fWZ1bmN0aW9uIEt2dChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImgzIiwxMDQpLFV0KDEpLHJuKDIsWHZ0LDMsNSwic3BhbiIsMzgpLGl0KDMsImNsci1pY29u''@;'; + put 'put ''IiwxMDUpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCgzKS5yZWxvYWRUYWJsZURhdGEoKSl9KSxzdCgpKCl9aWYoMiZkKXtjb25zdCBoPUt0KDMpO3V0KDEpLEppKCIgIixudWxsPT1oLnRhYmxlVGl0bGU/bnVsbDpoLnRhYmxlVGl0bGUucmVwbGFjZSgiLUZDIiwi''@;'; + put 'put ''IiksIiAiKSx1dCgxKSxUdCgibmdJZiIsbnVsbCE9PWgubnVtYmVyT2ZSb3dzKX19ZnVuY3Rpb24gJHZ0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYnV0dG9uIiwxMTQpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCg1KS5lZGl0VGFibGUoKSl9KSxD''@;'; + put 'put ''cigxLCJjbHItaWNvbiIsMTE3KSxpdCgyLCJzcGFuIiksVXQoMywiRWRpdCIpLHN0KCkoKX19ZnVuY3Rpb24gcXZ0KGQsZyl7aWYoMSZkKXtjb25zdCBoPV9pKCk7aXQoMCwiYnV0dG9uIiwxMTQpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCg1KS5nb1RvTGluZWFn''@;'; + put 'put ''ZSgpKX0pLENyKDEsImNsci1pY29uIiwxMTgpLGl0KDIsInNwYW4iKSxVdCgzLCJMaW5lYWdlIiksc3QoKSgpfX1mdW5jdGlvbiBlQXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtpdCgwLCJjbHItZHJvcGRvd24tbWVudSIsMTEwKSxybigxLCR2dCw0LDAsImJ1dHRvbiIsMTExKSxybigy''@;'; + put 'put ''LHF2dCw0LDAsImJ1dHRvbiIsMTExKSxpdCgzLCJidXR0b24iLDExMiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDQpLm9wZW5RYigpKX0pLENyKDQsImNsci1pY29uIiwxMTMpLGl0KDUsInNwYW4iKSxVdCg2LCJGaWx0ZXIiKSxzdCgpKCksaXQoNywiYnV0dG9u''@;'; + put 'put ''IiwxMTQpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gcnQoaCksYShLdCg0KS5vcGVuRG93bmxvYWQ9ITApfSksQ3IoOCwiY2xyLWljb24iLDExNSksaXQoOSwic3BhbiIpLFV0KDEwLCJEb3dubG9hZCIpLHN0KCkoKSxpdCgxMSwiYnV0dG9uIiwxMTQpLFluKCJjbGljayIsZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gcnQoaCksYShLdCg0KS5zaG93V2ViUXVlcnkoKSl9KSxDcigxMiwiY2xyLWljb24iLDExNiksaXQoMTMsInNwYW4iKSxVdCgxNCwiV2ViIFF1ZXJ5IFVSTCIpLHN0KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1LdCg0KTt1dCgxKSxUdCgibmdJZiIsaC50YWJsZUVkaXRFeGlz''@;'; + put 'put ''dHMoKSksdXQoMSksVHQoIm5nSWYiLGgudGFibGV1cmkpfX1mdW5jdGlvbiB0QXQoZCxnKXsxJmQmJihpdCgwLCJjbHItZHJvcGRvd24iLDEwNikoMSwiYnV0dG9uIiwxMDcpLENyKDIsImNsci1pY29uIiwxMDgpLFV0KDMsIiBvcHRpb25zICIpLHN0KCkscm4oNCxlQXQsMTUsMiwiY2xyLWRy''@;'; + put 'put ''b3Bkb3duLW1lbnUiLDEwOSksc3QoKSksMiZkJiZUdCgiY2xyQ2xvc2VNZW51T25JdGVtQ2xpY2siLCEwKX1mdW5jdGlvbiBuQXQoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiLDExOSkoMSwic3BhbiIpLFV0KDIsIkZJTFRFUiA6ICIpLGl0KDMsImIiKSxVdCg0KSxzdCgpKCkoKSksMiZkKXtj''@;'; + put 'put ''b25zdCBoPUt0KDMpO3V0KDQpLEdpKGgucXVlcnlUZXh0KX19Y29uc3QgckF0PWZ1bmN0aW9uKCl7cmV0dXJuWyIiLCIgIl19O2Z1bmN0aW9uIGlBdChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsImRpdiIsODYpKDEsInNlY3Rpb24iLDg3KSgyLCJmb3JtIiw4OCkoMywiZGl2Iiw4''@;'; + put 'put ''OSkoNCwiaW5wdXQiLDkwLDkxKSxZbigia2V5dXAuZW50ZXIiLGZ1bmN0aW9uKCl7cnQoaCk7Y29uc3QgeT15YSg1KTtyZXR1cm4gYShLdCgyKS5zZWFyY2hUYWJsZSh5KSl9KSxzdCgpLHJuKDYsVXZ0LDEsMCwiY2xyLWljb24iLDkyKSxybig3LFF2dCwyLDAsInNwYW4iLDkzKSxzdCgpLGl0''@;'; + put 'put ''KDgsImNsci1jaGVja2JveC1jb250YWluZXIiKSg5LCJjbHItY2hlY2tib3gtd3JhcHBlciIpKDEwLCJpbnB1dCIsOTQpLFluKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gcnQoaCksYShLdCgyKS5zZWFyY2hOdW1lcmljPXkpfSksc3QoKSxpdCgxMSwibGFiZWwiKSxVdCgx''@;'; + put 'put ''MiwiTnVtZXJpYyIpLHN0KCkoKSgpKCkoKSxpdCgxMywiZGl2Iiw5NSkscm4oMTQsSnZ0LDEsMCwiY2xyLWljb24iLDk2KSxybigxNSxLdnQsNCwyLCJoMyIsOTcpLHN0KCksaXQoMTYsImRpdiIsOTgpLHJuKDE3LHRBdCw1LDEsImNsci1kcm9wZG93biIsOTkpLHN0KCkscm4oMTgsbkF0LDUs''@;'; + put 'put ''MSwiZGl2IiwxMDApLHN0KCl9aWYoMiZkKXtjb25zdCBoPUt0KDIpO3V0KDQpLFR0KCJ0eXBlIixoLnNlYXJjaE51bWVyaWM/Im51bWJlciI6InRleHQiKSx1dCgyKSxUdCgibmdJZiIsIWguc2VhcmNoTG9hZGluZyksdXQoMSksVHQoIm5nSWYiLGguc2VhcmNoTG9hZGluZyksdXQoMyksVHQo''@;'; + put 'put ''Im5nTW9kZWwiLGguc2VhcmNoTnVtZXJpYyksdXQoNCksVHQoIm5nSWYiLG51bGw9PWgudGFibGVUaXRsZT9udWxsOmgudGFibGVUaXRsZS5pbmNsdWRlcygiLUZDIikpLHV0KDEpLFR0KCJuZ0lmIixoLnRhYmxlVGl0bGUmJmgudGFibGVUaXRsZS5sZW5ndGg+MCksdXQoMiksVHQoIm5nSWYi''@;'; + put 'put ''LGgudGFibGVUaXRsZSYmIWguYWJvcnRBY3RpdmUpLHV0KDEpLFR0KCJuZ0lmIiwiMT0xIiE9PWgucXVlcnlUZXh0JiYhTnMoOCxyQXQpLmluY2x1ZGVzKGgucXVlcnlUZXh0KSYmIWguYWJvcnRBY3RpdmUpfX1mdW5jdGlvbiBvQXQoZCxnKXsxJmQmJihpdCgwLCJkaXYiLDEyMCksQ3IoMSwi''@;'; + put 'put ''Y2xyLWljb24iLDEyMSksaXQoMiwiaDMiLDEyMiksVXQoMywiIFBsZWFzZSBzZWxlY3QgYSBsaWJyYXJ5ICIpLHN0KCkoKSl9ZnVuY3Rpb24gYUF0KGQsZyl7MSZkJiZDcigwLCJjbHItc3Bpbm5lciIsNDkpfWZ1bmN0aW9uIGxBdChkLGcpe2lmKDEmZCl7Y29uc3QgaD1faSgpO2l0KDAsInAi''@;'; + put 'put ''LDEzMSksVXQoMSwiIE5vIGxpYnJhcnkgaW5mbyBmb3VuZC4gQ2xpY2sgIiksaXQoMiwiY2xyLWljb24iLDEzMiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBydChoKSxhKEt0KDQpLnJlbG9hZExpYkluZm8oKSl9KSxzdCgpLFV0KDMsIiBidXR0b24gdG8gcmVmcmVzaC4gIiksc3Qo''@;'; + put 'put ''KX19ZnVuY3Rpb24gc0F0KGQsZyl7MSZkJiYoaXQoMCwicCIsMTM3KSxVdCgxLCJFTkdJTkU6Iiksc3QoKSl9ZnVuY3Rpb24gdUF0KGQsZyl7MSZkJiYoaXQoMCwicCIsMTM3KSxVdCgxLCJMSUJJRDoiKSxzdCgpKX1mdW5jdGlvbiBjQXQoZCxnKXsxJmQmJihpdCgwLCJwIiwxMzcpLFV0KDEs''@;'; + put 'put ''IkxJQk5BTUU6Iiksc3QoKSl9ZnVuY3Rpb24gZkF0KGQsZyl7MSZkJiYoaXQoMCwicCIsMTM3KSxVdCgxLCJMSUJTSVpFOiIpLHN0KCkpfWZ1bmN0aW9uIGhBdChkLGcpezEmZCYmKGl0KDAsInAiLDEzNyksVXQoMSwiT1dORVJTOiIpLHN0KCkpfWZ1bmN0aW9uIGRBdChkLGcpezEmZCYmKGl0''@;'; + put 'put ''KDAsInAiLDEzNyksVXQoMSwiUEFUSFM6Iiksc3QoKSl9ZnVuY3Rpb24gcEF0KGQsZyl7MSZkJiYoaXQoMCwicCIsMTM3KSxVdCgxLCJQRVJNUzoiKSxzdCgpKX1mdW5jdGlvbiBnQXQoZCxnKXsxJmQmJihpdCgwLCJwIiwxMzcpLFV0KDEsIlNDSEVNQVM6Iiksc3QoKSl9ZnVuY3Rpb24gbUF0''@;'; + put 'put ''KGQsZyl7MSZkJiYoaXQoMCwicCIsMTM3KSxVdCgxLCJUQUJMRV9DTlQ6Iiksc3QoKSl9ZnVuY3Rpb24gdkF0KGQsZyl7aWYoMSZkJiYoaXQoMCwicCIsMTM4KSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoNSk7dXQoMSksSmkoIiAiLGgubGliaW5mb1swXT9oLmxpYmluZm9bMF0uRU5H''@;'; + put 'put ''SU5FOiIiLCIgIil9fWZ1bmN0aW9uIEFBdChkLGcpe2lmKDEmZCYmKGl0KDAsInAiLDEzOCksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPUt0KDUpO3V0KDEpLEppKCIgIixoLmxpYmluZm9bMF0/aC5saWJpbmZvWzBdLkxJQklEOiIiLCIgIil9fWZ1bmN0aW9uIHlBdChkLGcpe2lmKDEmZCYm''@;'; + put 'put ''KGl0KDAsInAiLDEzOCksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPUt0KDUpO3V0KDEpLEppKCIgIixoLmxpYmluZm9bMF0/aC5saWJpbmZvWzBdLkxJQk5BTUU6IiIsIiAiKX19ZnVuY3Rpb24gd0F0KGQsZyl7aWYoMSZkJiYoaXQoMCwicCIsMTM4KSxVdCgxKSxubigyLCJjb252ZXJ0U2l6''@;'; + put 'put ''ZSIpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCg1KTt1dCgxKSxKaSgiICIsaC5saWJpbmZvWzBdP3p0KDIsMSxoLmxpYmluZm9bMF0uTElCU0laRSk6IiIsIiAiKX19ZnVuY3Rpb24gYkF0KGQsZyl7aWYoMSZkJiYoaXQoMCwicCIsMTM4KSxVdCgxKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoNSk7''@;'; + put 'put ''dXQoMSksSmkoIiAiLGgubGliaW5mb1swXT9oLmxpYmluZm9bMF0uT1dORVJTOiIiLCIgIil9fWZ1bmN0aW9uIF9BdChkLGcpe2lmKDEmZCYmKGl0KDAsInAiLDEzOCksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPUt0KDUpO3V0KDEpLEppKCIgIixoLmxpYmluZm9bMF0/aC5saWJpbmZvWzBd''@;'; + put 'put ''LlBBVEhTOiIiLCIgIil9fWZ1bmN0aW9uIENBdChkLGcpe2lmKDEmZCYmKGl0KDAsInAiLDEzOCksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPUt0KDUpO3V0KDEpLEppKCIgIixoLmxpYmluZm9bMF0/aC5saWJpbmZvWzBdLlBFUk1TOiIiLCIgIil9fWZ1bmN0aW9uIGtBdChkLGcpe2lmKDEm''@;'; + put 'put ''ZCYmKGl0KDAsInAiLDEzOCksVXQoMSksc3QoKSksMiZkKXtjb25zdCBoPUt0KDUpO3V0KDEpLEppKCIgIixoLmxpYmluZm9bMF0/aC5saWJpbmZvWzBdLlNDSEVNQVM6IiIsIiAiKX19ZnVuY3Rpb24gU0F0KGQsZyl7aWYoMSZkJiYoaXQoMCwicCIsMTM4KSxVdCgxKSxzdCgpKSwyJmQpe2Nv''@;'; + put 'put ''bnN0IGg9S3QoNSk7dXQoMSksSmkoIiAiLGgubGliaW5mb1swXT9oLmxpYmluZm9bMF0uVEFCTEVfQ05UOiIiLCIgIil9fWZ1bmN0aW9uIE1BdChkLGcpe2lmKDEmZCYmKEYwKDApLGl0KDEsImRpdiIsMTMzKSxybigyLHNBdCwyLDAsInAiLDEzNCkscm4oMyx1QXQsMiwwLCJwIiwxMzQpLHJu''@;'; + put 'put ''KDQsY0F0LDIsMCwicCIsMTM0KSxybig1LGZBdCwyLDAsInAiLDEzNCkscm4oNixoQXQsMiwwLCJwIiwxMzQpLHJuKDcsZEF0LDIsMCwicCIsMTM0KSxybig4LHBBdCwyLDAsInAiLDEzNCkscm4oOSxnQXQsMiwwLCJwIiwxMzQpLHJuKDEwLG1BdCwyLDAsInAiLDEzNCksc3QoKSxpdCgxMSwi''@;'; + put 'put ''ZGl2IiwxMzUpLHJuKDEyLHZBdCwyLDEsInAiLDEzNikscm4oMTMsQUF0LDIsMSwicCIsMTM2KSxybigxNCx5QXQsMiwxLCJwIiwxMzYpLHJuKDE1LHdBdCwzLDMsInAiLDEzNikscm4oMTYsYkF0LDIsMSwicCIsMTM2KSxybigxNyxfQXQsMiwxLCJwIiwxMzYpLHJuKDE4LENBdCwyLDEsInAi''@;'; + put 'put ''LDEzNikscm4oMTksa0F0LDIsMSwicCIsMTM2KSxybigyMCxTQXQsMiwxLCJwIiwxMzYpLHN0KCksSDAoKSksMiZkKXtjb25zdCBoPUt0KDQpO3V0KDIpLFR0KCJuZ0lmIiwiIiE9PWgubGliaW5mb1swXS5FTkdJTkUpLHV0KDEpLFR0KCJuZ0lmIiwiIiE9PWgubGliaW5mb1swXS5MSUJJRCks''@;'; + put 'put ''dXQoMSksVHQoIm5nSWYiLCIiIT09aC5saWJpbmZvWzBdLkxJQk5BTUUpLHV0KDEpLFR0KCJuZ0lmIixudWxsIT09aC5saWJpbmZvWzBdLkxJQlNJWkUpLHV0KDEpLFR0KCJuZ0lmIiwiIiE9PWgubGliaW5mb1swXS5PV05FUlMpLHV0KDEpLFR0KCJuZ0lmIiwiIiE9PWgubGliaW5mb1swXS5Q''@;'; + put 'put ''QVRIUyksdXQoMSksVHQoIm5nSWYiLCIiIT09aC5saWJpbmZvWzBdLlBFUk1TKSx1dCgxKSxUdCgibmdJZiIsIiIhPT1oLmxpYmluZm9bMF0uU0NIRU1BUyksdXQoMSksVHQoIm5nSWYiLG51bGwhPT1oLmxpYmluZm9bMF0uVEFCTEVfQ05UKSx1dCgyKSxUdCgibmdJZiIsIiIhPT1oLmxpYmlu''@;'; + put 'put ''Zm9bMF0uRU5HSU5FKSx1dCgxKSxUdCgibmdJZiIsIiIhPT1oLmxpYmluZm9bMF0uTElCSUQpLHV0KDEpLFR0KCJuZ0lmIiwiIiE9PWgubGliaW5mb1swXS5MSUJOQU1FKSx1dCgxKSxUdCgibmdJZiIsbnVsbCE9PWgubGliaW5mb1swXS5MSUJTSVpFKSx1dCgxKSxUdCgibmdJZiIsIiIhPT1o''@;'; + put 'put ''LmxpYmluZm9bMF0uT1dORVJTKSx1dCgxKSxUdCgibmdJZiIsIiIhPT1oLmxpYmluZm9bMF0uUEFUSFMpLHV0KDEpLFR0KCJuZ0lmIiwiIiE9PWgubGliaW5mb1swXS5QRVJNUyksdXQoMSksVHQoIm5nSWYiLCIiIT09aC5saWJpbmZvWzBdLlNDSEVNQVMpLHV0KDEpLFR0KCJuZ0lmIixudWxs''@;'; + put 'put ''IT09aC5saWJpbmZvWzBdLlRBQkxFX0NOVCl9fWZ1bmN0aW9uIEVBdChkLGcpe2lmKDEmZCYmKGl0KDAsImRpdiIsMTI5KSxybigxLGxBdCw0LDAsInAiLDEzMCkscm4oMixNQXQsMjEsMTgsIm5nLWNvbnRhaW5lciIsMzgpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgzKTt1dCgxKSxUdCgibmdJ''@;'; + put 'put ''ZiIsaC5saWJpbmZvLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC5saWJpbmZvLmxlbmd0aD4wKX19ZnVuY3Rpb24geEF0KGQsZyl7MSZkJiYoaXQoMCwiZGl2IiwxMzkpLENyKDEsImNsci1pY29uIiwxNDApLGl0KDIsImgzIiwxMjIpLFV0KDMsIiBQbGVhc2Ugc2VsZWN0IGEgdGFibGUg''@;'; + put 'put ''Iiksc3QoKSgpKX1mdW5jdGlvbiBUQXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9X2koKTtGMCgwKSxpdCgxLCJkaXYiLDEyMyksQ3IoMiwic2VjdGlvbiIsODcpLGl0KDMsImRpdiIsOTUpKDQsImgzIiwxMjQpLFV0KDUpLHN0KCksaXQoNiwiY2xyLWljb24iLDEwNSksWW4oImNsaWNrIixmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBydChoKSxhKEt0KDIpLnJlbG9hZExpYkluZm8oKSl9KSxzdCgpKCksQ3IoNywiZGl2Iiw5OCksc3QoKSxpdCg4LCJkaXYiLDEyNSkscm4oOSxhQXQsMSwwLCJjbHItc3Bpbm5lciIsMTI2KSxzdCgpLHJuKDEwLEVBdCwzLDIsImRpdiIsMTI3KSxybigxMSx4QXQsNCww''@;'; + put 'put ''LCJkaXYiLDEyOCksSDAoKX1pZigyJmQpe2NvbnN0IGg9S3QoMik7dXQoNSksSmkoIiAiLGgubGliLCIgIiksdXQoNCksVHQoIm5nSWYiLG51bGw9PT1oLmxpYmluZm8pLHV0KDEpLFR0KCJuZ0lmIixudWxsIT09aC5saWJpbmZvKSx1dCgxKSxUdCgibmdJZiIsbnVsbCE9PWgubGliaW5mbyl9''@;'; + put 'put ''fWZ1bmN0aW9uIElBdChkLGcpezEmZCYmKGl0KDAsImgzIiwxMjIpLFV0KDEsIiBObyBkYXRhIGZvdW5kIHdpdGggZ2l2ZW4gY29uZGl0aW9ucyAiKSxzdCgpKX1mdW5jdGlvbiBEQXQoZCxnKXsxJmQmJihpdCgwLCJoMyIsMTIyKSxVdCgxLCIgTm8gZGF0YSBmb3VuZCBkdWUgdG8gc2FzIHJl''@;'; + put 'put ''cXVlc3QgZXJyb3IgIiksc3QoKSl9ZnVuY3Rpb24gTEF0KGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2IiwxNDEpLENyKDEsImNsci1pY29uIiwxNDIpLHJuKDIsSUF0LDIsMCwiaDMiLDE0Mykscm4oMyxEQXQsMiwwLCJoMyIsMTQzKSxzdCgpKSwyJmQpe2NvbnN0IGg9S3QoMik7dXQoMiksVHQo''@;'; + put 'put ''Im5nSWYiLGgubm9EYXRhKSx1dCgxKSxUdCgibmdJZiIsaC5ub0RhdGFSZXFFcnIpfX1mdW5jdGlvbiBPQXQoZCxnKXtpZigxJmQmJihpdCgwLCJkaXYiKSxDcigxLCJob3QtdGFibGUiLDE0NCksc3QoKSksMiZkKXtjb25zdCBoPUt0KDIpO3V0KDEpLFR0KCJtdWx0aUNvbHVtblNvcnRpbmci''@;'; + put 'put ''LCEwKSgidmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQiLDUwKSgiZGF0YSIsaC5ob3RUYWJsZS5kYXRhKSgiY29sSGVhZGVycyIsaC5ob3RUYWJsZS5jb2xIZWFkZXJzKSgiY29sdW1ucyIsaC5ob3RUYWJsZS5jb2x1bW5zKSgiZmlsdGVycyIsITApKCJkcm9wZG93bk1lbnUiLGguaG90VGFi''@;'; + put 'put ''bGUuZHJvcGRvd25NZW51KSgiaGVpZ2h0IixoLmhvdFRhYmxlLmhlaWdodCkoIm1vZGlmeUNvbFdpZHRoIixoLm1heFdpZHRoQ2hla2VyKSgiY2VsbHMiLGguaG90VGFibGUuY2VsbHMpKCJtYXhSb3dzIixoLmhvdFRhYmxlLm1heFJvd3MpKCJtYW51YWxDb2x1bW5SZXNpemUiLCEwKSgibGlj''@;'; + put 'put ''ZW5zZUtleSIsaC5ob3RUYWJsZS5saWNlbnNlS2V5KX19ZnVuY3Rpb24gUkF0KGQsZyl7aWYoMSZkJiYoaXQoMCwiZGl2IiwyNykscm4oMSxpQXQsMTksOSwiZGl2Iiw4Mykscm4oMixvQXQsNCwwLCJkaXYiLDg0KSxybigzLFRBdCwxMiw0LCJuZy1jb250YWluZXIiLDM4KSxybig0LExBdCw0''@;'; + put 'put ''LDIsImRpdiIsODUpLHJuKDUsT0F0LDIsMTMsImRpdiIsMzgpLHN0KCkpLDImZCl7Y29uc3QgaD1LdCgpO3V0KDEpLFR0KCJuZ0lmIixoLnRhYmxlKSx1dCgxKSxUdCgibmdJZiIsIShoLmxpYnx8aC50YWJsZXx8aC5ub0RhdGFSZXFFcnJ8fGgubm9EYXRhKSksdXQoMSksVHQoIm5nSWYiLCFo''@;'; + put 'put ''Lm5vRGF0YSYmIWgubm9EYXRhUmVxRXJyJiYhaC50YWJsZSYmaC5saWIpLHV0KDEpLFR0KCJuZ0lmIixoLm5vRGF0YXx8aC5ub0RhdGFSZXFFcnIpLHV0KDEpLFR0KCJuZ0lmIiwhaC5ub0RhdGEmJiFoLm5vRGF0YVJlcUVyciYmaC50YWJsZSl9fWxldCBabmU9KCgpPT57Y2xhc3MgZHtjb25z''@;'; + put 'put ''dHJ1Y3RvcihoLHYseSxDLEksaix1ZSxfZSxCZSl7dGhpcy5hcHBTZXJ2aWNlPWgsdGhpcy5zYXNTdG9yZVNlcnZpY2U9dix0aGlzLnNhc1NlcnZpY2U9eSx0aGlzLnJvdXRlcj1DLHRoaXMucm91dGU9SSx0aGlzLmV2ZW50U2VydmljZT1qLHRoaXMubG9nZ2VyU2VydmljZT11ZSx0aGlzLmhl''@;'; + put 'put ''bHBlclNlcnZpY2U9X2UsdGhpcy5jZGY9QmUsdGhpcy5xdWVyeUZpbHRlckNvbXBMaXN0PW5ldyB6cix0aGlzLmxpYnJhcmllc1BhZ2luZz0hMSx0aGlzLmxpYnJhcmllc1NlYXJjaD0iIix0aGlzLmxpYnJhcnlUYWJsZXNSZWY9IiIsdGhpcy5saWJyYXJpZXNUcmVlRXhwYW5kZWQ9ITEsdGhp''@;'; + put 'put ''cy5saWJpbmZvPW51bGwsdGhpcy50YWJsZXVyaT1udWxsLHRoaXMuZmlsdGVyPSExLHRoaXMuZmlsdGVyQ29scz1bXSx0aGlzLm51bGxWYXJpYWJsZXM9ITEsdGhpcy5hYm9ydEFjdGl2ZT0hMSx0aGlzLnVybEZpbHRlclBrPW51bGwsdGhpcy5xdWVyeVRleHQ9IiIsdGhpcy53ZWJRdWVyeVRl''@;'; + put 'put ''eHQ9IiIsdGhpcy5xdWVyeUVycj0hMSx0aGlzLnRhYmxlRmxhZz0hMCx0aGlzLmxpYnJhcmllc0xvYWRpbmc9ITEsdGhpcy5sb2FkaW5nVGFibGVWaWV3PSExLHRoaXMuc3dpdGNoRmxhZz0hMSx0aGlzLm5vRGF0YT0hMSx0aGlzLm5vRGF0YVJlcUVycj0hMSx0aGlzLnRhYmxlRGlzYWJsZT0h''@;'; + put 'put ''MSx0aGlzLmFjdGlvbkRpc2FibGU9ITEsdGhpcy5vcGVuRG93bmxvYWQ9ITEsdGhpcy53ZWJRdWVyeT0hMSx0aGlzLndlYlF1ZXJ5VGFiPSExLHRoaXMuZG93bmxvYWRGb3JtYXQ9IkNTViIsdGhpcy5zYXNqc0NvbmZpZz1uZXcgUTMuU0FTanNDb25maWcsdGhpcy5zZWFyY2hMb2FkaW5nPSEx''@;'; + put 'put ''LHRoaXMuc2VhcmNoTnVtZXJpYz0hMSx0aGlzLm51bWJlck9mUm93cz1udWxsLHRoaXMuaGVhZGVyUGtzPVtdLHRoaXMuJGRhdGFGb3JtYXRzPW51bGwsdGhpcy5ob3RUYWJsZT17ZGF0YTpbXSxjb2xIZWFkZXJzOltdLGNvbHVtbnM6W10saGVpZ2h0OjUwMCxtYXhSb3dzOnRoaXMuYXBwU2Vy''@;'; + put 'put ''dmljZS5kZW1vTGltaXRzLnJvd3NfYWxsb3dlZHx8MS8wLHNldHRpbmdzOnt9LGFmdGVyR2V0Q29sSGVhZGVyOnZvaWQgMCxsaWNlbnNlS2V5OnZvaWQgMCxkcm9wZG93bk1lbnU6e2l0ZW1zOnttYWtlX3JlYWRfb25seTp7bmFtZToibWFrZV9yZWFkX29ubHkifSxhbGlnbm1lbnQ6e25hbWU6''@;'; + put 'put ''ImFsaWdubWVudCJ9LHNwMTp7bmFtZToiLS0tLS0tLS0tIn0saW5mbzp7bmFtZToidGVzdCBpbmZvIixyZW5kZXJlcjooTmUsS2UsZHQsT3QsJHQsZm4pPT57dmFyIExuLGlyO2NvbnN0IG1yPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtsZXQgU3Isd3I9Ik5vIGluZm8gZm91bmQi''@;'; + put 'put ''O2lmKHRoaXMuaG90SW5zdGFuY2Upe2NvbnN0IFFyPXRoaXMuaG90SW5zdGFuY2UuZ2V0U2VsZWN0ZWQoKXx8W10seWk9UXI/UXJbMF1bMV06LTEsS2k9bnVsbD09PShMbj10aGlzLmhvdEluc3RhbmNlKXx8dm9pZCAwPT09TG4/dm9pZCAwOkxuLmNvbFRvUHJvcCh5aSk7U3I9bnVsbD09PShp''@;'; + put 'put ''cj10aGlzLiRkYXRhRm9ybWF0cyl8fHZvaWQgMD09PWlyP3ZvaWQgMDppci52YXJzW0tpXSxTciYmKHdyPWBMQUJFTDogJHtudWxsPT1Tcj92b2lkIDA6U3IubGFiZWx9PGJyPlRZUEU6ICR7bnVsbD09U3I/dm9pZCAwOlNyLnR5cGV9PGJyPkxFTkdUSDogJHtudWxsPT1Tcj92b2lkIDA6U3Iu''@;'; + put 'put ''bGVuZ3RofTxicj5GT1JNQVQ6ICR7bnVsbD09U3I/dm9pZCAwOlNyLmZvcm1hdH1gKX1yZXR1cm4gbXIuaW5uZXJIVE1MPXdyLG1yfX19fX0sdGhpcy5ob3RJbnN0YW5jZT1udWxsLHRoaXMuaG90SW5zdGFuY2VDbGlja0xpc3RlbmVyPSExLHRoaXMuaG90VGFibGUuaGVpZ2h0PWRvY3VtZW50''@;'; + put 'put ''LmJvZHkuY2xpZW50SGVpZ2h0LTMxMCx0aGlzLmhvdFRhYmxlUmVnaXN0ZXJlcj1uZXcgbU8sdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKX1uZ09uSW5pdCgpeyIiIT09bmkudmlld2VyLmN1cnJlbnRTZWxlY3Rpb24mJjA9PT1PYmplY3Qua2V5cyh0''@;'; + put 'put ''aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcykubGVuZ3RoJiZ0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKG5pLnZpZXdlci5jdXJyZW50U2VsZWN0aW9uKSx2b2lkIDAhPT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW0mJihuaS52aWV3ZXIuY3VycmVudFNlbGVjdGlvbj0idmll''@;'; + put 'put ''dy9kYXRhIiksdGhpcy5hcHBTZXJ2aWNlLmhvdF9saWNlbnNlX2tleS5zdWJzY3JpYmUoaD0+e3RoaXMuaG90VGFibGUubGljZW5zZUtleT1ofSl9cmVzZXRGaWx0ZXIoKXt0aGlzLnF1ZXJ5RmlsdGVyQ29tcExpc3QuZmlyc3QmJnRoaXMucXVlcnlGaWx0ZXJDb21wTGlzdC5maXJzdC5yZXNl''@;'; + put 'put ''dEZpbHRlcigpfXNlYXJjaFRhYmxlKGgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5zZWFyY2hMb2FkaW5nPSEwO2xldCB2PWgudmFsdWUseT10aGlzLmxpYisiLiIrdGhpcy50YWJsZSxDPXBhcnNlSW50KHRoaXMucm91dGUuc25hcHNob3QucGFyYW1z''@;'; + put 'put ''LmZpbHRlcklkKXx8MDt5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS52aWV3RGF0YVNlYXJjaCh2LHRoaXMuc2VhcmNoTnVtZXJpYyx5LEMpLnRoZW4oST0+e0kuc2FzcGFyYW1zfHxJLnZpZXdEYXRhPyh0aGlzLmhvdFRhYmxlLmRhdGE9SS52aWV3ZGF0YSx0aGlzLiRkYXRhRm9ybWF0cz1J''@;'; + put 'put ''LiR2aWV3ZGF0YSx0aGlzLm51bWJlck9mUm93cz1JLnNhc3BhcmFtc1swXS5OT0JTLHRoaXMucXVlcnlUZXh0PUkuc2FzcGFyYW1zWzBdLkZJTFRFUl9URVhULHRoaXMuaGVhZGVyUGtzPUkuc2FzcGFyYW1zWzBdLlBLX0ZJRUxEUy5zcGxpdCgiICIpLDA9PT10aGlzLmhvdFRhYmxlLmRhdGEu''@;'; + put 'put ''bGVuZ3RoP3RoaXMubm9EYXRhPSEwOih0aGlzLm5vRGF0YT0hMSx0aGlzLnRhYmxlRmxhZz0hMSx0aGlzLnNldHVwSG90KCkpKTp0aGlzLnNlYXJjaExvYWRpbmc9ITF9KS5jYXRjaChJPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKEkpfSksdGhpcy5zZWFyY2hMb2FkaW5nPSExfSl9cmVs''@;'; + put 'put ''b2FkVGFibGVEYXRhKCl7dGhpcy52aWV3RGF0YSh0aGlzLnVybEZpbHRlclBrfHwwKX1yZWxvYWRMaWJJbmZvKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLmxpYmluZm89bnVsbCx0aGlzLnNhc1N0b3JlU2VydmljZS5yZWZyZXNoTGliSW5mbyh0aGlz''@;'; + put 'put ''LmxpYikudGhlbihoPT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bmkudmlld2VyLmxpYmluZm89dGhpcy5saWJpbmZvLHRoaXMubGliaW5mbz1oLmxpYmluZm99KSxoPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKGgpLG51bGw9PT10aGlzLmxpYmluZm8mJih0aGlzLmxp''@;'; + put 'put ''YmluZm89W10pfSl9KX1maWx0ZXJGbihoKXt0aGlzLmxpYnJhcmllcz10aGlzLmxpYnJhcmllcy5maWx0ZXIoeT0+LTEhPT15LkxJQlJBUllOQU1FLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihoLnRvTG9jYWxlTG93ZXJDYXNlKCkpKX1kb3dubG9hZERhdGEoKXtsZXQgaD10aGlzLnNhc2pzQ29u''@;'; + put 'put ''ZmlnLnNlcnZlclVybCx2PXRoaXMuc2FzanNDb25maWcuYXBwTG9jO2NvbnN0IHk9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTtsZXQgdWUsQz0iJnR5cGU9Iit0aGlzLmRvd25sb2FkRm9ybWF0LEk9IiZ0YWJsZT0iK3RoaXMudGFibGVUaXRsZSxqPSJTQVNWSVlBIj09PXRo''@;'; + put 'put ''aXMuc2FzanNDb25maWcuc2VydmVyVHlwZT9gJl9jb250ZXh0bmFtZT0ke3RoaXMuc2FzanNDb25maWcuY29udGV4dE5hbWV9YDoiIjt1ZT12b2lkIDA9PT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5maWx0ZXJJZD8wOnBhcnNlSW50KHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmZp''@;'; + put 'put ''bHRlcklkKSx3aW5kb3cub3BlbihoK3krIi8/X3Byb2dyYW09Iit2KyIvc2VydmljZXMvcHVibGljL2dldHJhd2RhdGEiK0MrSStqKyImZmlsdGVyPSIrdWUpLHRoaXMub3BlbkRvd25sb2FkPSExfWRvd25sb2FkRERMKCl7bGV0IGg9dGhpcy5saWIsdj10aGlzLnRhYmxlLHk9dGhpcy5kb3du''@;'; + put 'put ''bG9hZEZvcm1hdC5yZXBsYWNlKCJfRERMIiwiIiksQz10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCxJPXRoaXMuc2FzanNDb25maWcuYXBwTG9jO2NvbnN0IGo9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5kb3cub3BlbihDK2orIi8/X3Byb2dyYW09IitJKyIvc2Vy''@;'; + put 'put ''dmljZXMvcHVibGljL2dldGRkbCIrYCZkcz0ke3Z9JmxpYnJlZj0ke2h9JmZsYXZvdXI9JHt5fSR7IlNBU1ZJWUEiPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlP2AmX2NvbnRleHRuYW1lPSR7dGhpcy5zYXNqc0NvbmZpZy5jb250ZXh0TmFtZX1gOiIifWApLHRoaXMub3BlbkRvd25s''@;'; + put 'put ''b2FkPSExfW9uQ2xpQ29tbWFuZEZvY3VzKGgpe2gucHJldmVudERlZmF1bHQoKSxoLnRhcmdldC5zZWxlY3QoKX1lZGl0VGFibGUoKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvZWRpdG9yLyIrdGhpcy5saWJUYWIpfXRhYmxlRWRpdEV4aXN0cygpe2xldCBoPXt9O2g9bmkuZWRpdG9y''@;'; + put 'put ''LmxpYnNBbmRUYWJsZXM7bGV0IHY9dGhpcy5saWJUYWIuc3BsaXQoIi4iKVsxXSx5PXRoaXMubGliVGFiLnNwbGl0KCIuIilbMF07cmV0dXJuISFoW3ldJiZoW3ldLmluY2x1ZGVzKHYpfWdvVG9MaW5lYWdlKCl7bGV0IHY9YC92aWV3L2xpbmVhZ2UvJHt0aGlzLnRhYmxldXJpLnNwbGl0KCJc''@;'; + put 'put ''XCIpWzFdfS9SRVZFUlNFYDt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHYpfXNob3dXZWJRdWVyeSgpe2xldCBoO3RoaXMud2ViUXVlcnk9ITAsaD12b2lkIDA9PT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5maWx0ZXJJZD8wOnBhcnNlSW50KHRoaXMucm91dGUuc25hcHNob3QucGFy''@;'; + put 'put ''YW1zLmZpbHRlcklkKTtsZXQgdj13aW5kb3cubG9jYXRpb24ucG9ydC5sZW5ndGg+MD8iOiIrd2luZG93LmxvY2F0aW9uLnBvcnQ6IiI7Y29uc3QgeT10aGlzLnNhc1NlcnZpY2UuZ2V0RXhlY3V0aW9uUGF0aCgpO2xldCBJPWAke3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH0vLyR7d2luZG93''@;'; + put 'put ''LmxvY2F0aW9uLmhvc3RuYW1lfSR7dn0vJHt5fS8/X3Byb2dyYW09JHt0aGlzLnNhc2pzQ29uZmlnLmFwcExvY30vc2VydmljZXMvcHVibGljL2dldHJhd2RhdGEmdHlwZT1XRUIke3RoaXMud2ViUXVlcnlUYWI/IlRBQiI6IkNTViJ9JnRhYmxlPSR7dGhpcy50YWJsZVRpdGxlfSR7IiZmaWx0''@;'; + put 'put ''ZXI9IitofWA7dGhpcy53ZWJRdWVyeVRleHQ9SS5yZXBsYWNlKC8gL2dpbSwiJTIwIil9Y29weVRvQ2xpcCgpe2xldCBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7aC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGguc3R5bGUubGVmdD0iMCIsaC5zdHlsZS50b3A9IjAiLGgu''@;'; + put 'put ''c3R5bGUub3BhY2l0eT0iMCIsaC52YWx1ZT10aGlzLndlYlF1ZXJ5VGV4dCxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGgpLGguZm9jdXMoKSxoLnNlbGVjdCgpLGRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5IiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChoKX1nb1RvVmlld2VyKCl7''@;'; + put 'put ''dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YSIpfXNob3dUYWJsZVNlbGVjdCgpe3RoaXMudGFibGVGbGFnPSF0aGlzLnRhYmxlRmxhZ31jaGVja0V4cGFuZChoKXt9Y29sbGFwc2VMaWJyYXJ5SXRlbXMoaCx2KXtoLmZvckVhY2goeT0+e3kuTElCUkFSWVJFRiE9PXYuTElC''@;'; + put 'put ''UkFSWVJFRiYmKHkuZXhwYW5kZWQ9ITEpfSl9bG9hZE1vcmVMaWJyYXJpZXMoKXt0aGlzLmxpYnJhcmllc1BhZ2luZ3x8KHRoaXMubGlicmFyaWVzUGFnaW5nPSEwLHRoaXMuaGVscGVyU2VydmljZS5kaXNwbGF5TGlicmFyaWVzKHRoaXMubGlicmFyaWVzLCEwKSx0aGlzLmxpYnJhcmllc1Bh''@;'; + put 'put ''Z2luZz0hMSl9dHJlZU5vZGVDbGlja2VkKGgsdil7IkNvbGxhcHNlIj09PWgudGFyZ2V0LnRpdGxlJiZ0aGlzLmNvbGxhcHNlTGlicmFyeUl0ZW1zKHRoaXMubGlicmFyaWVzLHYpfWxpYnJhcnlFeHBhbmRlZENoYW5nZShoLHYpe2gmJnRoaXMuY29sbGFwc2VMaWJyYXJ5SXRlbXModGhpcy5s''@;'; + put 'put ''aWJyYXJpZXMsdil9bGlicmFyeU9uQ2xpY2soaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYodi50YWJsZXM/di5leHBhbmRlZD0hIXl8fCF2LmV4cGFuZGVkOnlpZWxkIHRoaXMuc2VsZWN0VGFibGUoaCwhMSx2KSx2LmV4cGFuZGVkKXt0aGlzLmNk''@;'; + put 'put ''Zi5kZXRlY3RDaGFuZ2VzKCk7bGV0IEM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgI3NlYXJjaF8ke3YuTElCUkFSWVJFRn1gKTt0aGlzLmxvZ2dlclNlcnZpY2UubG9nKCJbbGliVHJlZVNlYXJjaElucHV0XSIsQyksQyYmQy5mb2N1cygpLHYmJnYubGliaW5mbyYmKHRoaXMubGliaW5mbz12''@;'; + put 'put ''LmxpYmluZm8pfWVsc2UgdGhpcy5saWI9dm9pZCAwO3RoaXMuY29sbGFwc2VMaWJyYXJ5SXRlbXModGhpcy5saWJyYXJpZXMsdil9KX1zZWxlY3RUYWJsZShoLHYseSl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt5LmxvYWRpbmdUYWJsZXM9ITAsdGhpcy50YWJs''@;'; + put 'put ''ZT0hMSx0aGlzLnRhYmxlRGlzYWJsZT0hMCwiUGxlYXNlIHNlbGVjdCBsaWJyYXJ5IiE9PWg/bmkudmlld2VyLnRhYmxlc1NldCYmdj8odGhpcy5hYm9ydEFjdGl2ZT0hMSx0aGlzLnRhYmxlRGlzYWJsZT0hMSx0aGlzLnRhYmxlcz1uaS52aWV3ZXIudGFibGVzLHRoaXMubGliaW5mbz1uaS52''@;'; + put 'put ''aWV3ZXIubGliaW5mbyk6KHRoaXMubGliaW5mbz1udWxsLHlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnZpZXdUYWJsZXMoaCkudGhlbihDPT57dGhpcy5hYm9ydEFjdGl2ZT0hMSx0aGlzLnRhYmxlRGlzYWJsZT0hMTtsZXQgST1DLm1wdGFibGVzLm1hcChmdW5jdGlvbihqKXtyZXR1cm4g''@;'; + put 'put ''ai5NRU1OQU1FfSk7dGhpcy5saWJpbmZvPUMubGliaW5mb3x8W10sdGhpcy50YWJsZXM9SSx5JiYoeS50YWJsZXM9SSx5LmxpYmluZm89dGhpcy5saWJpbmZvKSxuaS52aWV3ZXIubGlicmFyaWVzPXRoaXMubGlicmFyaWVzLG5pLnZpZXdlci5saWJyYXJ5PXRoaXMubGliLG5pLnZpZXdlci50''@;'; + put 'put ''YWJsZXM9dGhpcy50YWJsZXMsbmkudmlld2VyLmxpYmluZm89dGhpcy5saWJpbmZvLG5pLnZpZXdlci50YWJsZXNTZXQ9ITB9KS5jYXRjaChDPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKEMpLHRoaXMuYWJvcnRBY3RpdmU9ITAsdGhpcy5ub0RhdGE9ITAsdGhpcy50YWJsZVRpdGxlPSIi''@;'; + put 'put ''LHRoaXMudGFibGVEaXNhYmxlPSEwfSkpOnRoaXMudGFibGVEaXNhYmxlPSEwLG5pLnZpZXdlci5saWJyYXJ5PXRoaXMubGliLHZ8fHRoaXMuY2xlYXJHbG9iYWxzRmlsdGVyKCkseS5sb2FkaW5nVGFibGVzPSExLHkuZXhwYW5kZWQ9IXkuZXhwYW5kZWR9KX1zZWxlY3RMaWJUYWJsZShoLHYp''@;'; + put 'put ''eyJQbGVhc2Ugc2VsZWN0IHRhYmxlIiE9PWg/KHRoaXMuYWN0aW9uRGlzYWJsZT0hMSx0aGlzLmxpYlRhYj10aGlzLmxpYisiLiIrdGhpcy50YWJsZSk6dGhpcy5hY3Rpb25EaXNhYmxlPSEwLG5pLnZpZXdlci50YWJsZT1oLHZ8fHRoaXMuY2xlYXJHbG9iYWxzRmlsdGVyKCksdGhpcy5sb2dn''@;'; + put 'put ''ZXJTZXJ2aWNlLmxvZyh0aGlzLmxpYlRhYil9Y2xlYXJHbG9iYWxzRmlsdGVyKCl7bmkudmlld2VyLmZpbHRlci5saWJkcz0iIixuaS52aWV3ZXIuZmlsdGVyLndoZXJlQ2xhdXNlPSIiLG5pLnZpZXdlci5maWx0ZXIuZ3JvdXBMb2dpYz0iIixuaS52aWV3ZXIuZmlsdGVyLmNsYXVzZXM9W10s''@;'; + put 'put ''bmkudmlld2VyLmZpbHRlci5jb2xzPVtdLG5pLnZpZXdlci5maWx0ZXIudmFscz1bXX1saWJUYWJBY3RpdmUoaCx2KXtyZXR1cm4hIXRoaXMubGliVGFiJiZoKyIuIit2PT09dGhpcy5saWJUYWJ9dHJlZU9uRmlsdGVyKGgsdil7dGhpcy5oZWxwZXJTZXJ2aWNlLnRyZWVPbkZpbHRlcihoLHYp''@;'; + put 'put ''fWxpYnJhcnlPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhpcy5saWJyYXJpZXMsdGhpcy5saWJyYXJpZXNTZWFyY2gsIkxJQlJBUllOQU1FIiksbmkudmlld2VyLmxpYnJhcmllc1NlYXJjaD10aGlzLmxpYnJhcmllc1NlYXJjaH1saWJyYXJ5UmVzZXRG''@;'; + put 'put ''aWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UucmVzZXRBcnJheUZpbHRlcih0aGlzLmxpYnJhcmllcyl9dmlld0RhdGEoaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgdjtpZih0aGlzLmxvYWRpbmdUYWJsZVZpZXc9ITAsdm9pZCAwPT09dGhpcy5saWJE''@;'; + put 'put ''YXRhc2V0KXY9dGhpcy5saWIrIi4iK3RoaXMudGFibGU7ZWxzZSBpZih2b2lkIDA9PT10aGlzLmxpYiYmdm9pZCAwPT09dGhpcy50YWJsZSl7bGV0IEk9W107aWYoST10aGlzLmxpYkRhdGFzZXQuc3BsaXQoIi4iKSxuaS52aWV3ZXIuc3RhcnR1cFNldD90aGlzLmxpYnJhcmllcz1uaS52aWV3''@;'; + put 'put ''ZXIubGlicmFyaWVzOnlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnZpZXdMaWJzKCkudGhlbihqPT57dGhpcy5saWJyYXJpZXM9ai5zYXNsaWJzfSkuY2F0Y2goaj0+e3RoaXMubG9nZ2VyU2VydmljZS5lcnJvcihqKX0pLHRoaXMubGliPUlbMF0sbmkudmlld2VyLnN0YXJ0dXBTZXQpdGhp''@;'; + put 'put ''cy50YWJsZXM9bmkudmlld2VyLnRhYmxlcztlbHNle2xldCBqPXRoaXMubGlicmFyaWVzLmZpbmQodWU9PnVlLkxJQlJBUllSRUYudG9Mb3dlckNhc2UoKT09PXRoaXMubGliLnRvTG93ZXJDYXNlKCkpO3lpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnZpZXdUYWJsZXModGhpcy5saWIpLnRo''@;'; + put 'put ''ZW4odWU9Pnt0aGlzLnRhYmxlcz11ZS5tcHRhYmxlcy5tYXAoZnVuY3Rpb24oX2Upe3JldHVybiBfZS5NRU1OQU1FfSksai50YWJsZXM9dGhpcy50YWJsZXMsbmkudmlld2VyLmxpYnJhcmllcz10aGlzLmxpYnJhcmllcyxuaS52aWV3ZXIudGFibGVzPXRoaXMudGFibGVzLG5pLnZpZXdlci5z''@;'; + put 'put ''dGFydHVwU2V0PSEwfSkuY2F0Y2godWU9Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IodWUpfSl9dGhpcy50YWJsZT1JWzFdLHRoaXMudGFibGVGbGFnPSExLHY9dGhpcy5saWJEYXRhc2V0LHRoaXMubGliVGFiPXZ9ZWxzZSBuaS52aWV3ZXIuc3RhcnR1cFNldD90aGlzLmxpYnJhcmllcz1u''@;'; + put 'put ''aS52aWV3ZXIubGlicmFyaWVzOnlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnZpZXdMaWJzKCkudGhlbihJPT57dGhpcy5saWJyYXJpZXM9SS5zYXNsaWJzfSkuY2F0Y2goST0+e3RoaXMubG9nZ2VyU2VydmljZS5lcnJvcihJKX0pLHZvaWQgMCE9PXRoaXMudGFibGUmJihuaS52aWV3ZXIu''@;'; + put 'put ''c3RhcnR1cFNldD90aGlzLnRhYmxlcz1uaS52aWV3ZXIudGFibGVzOnlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnZpZXdUYWJsZXModGhpcy5saWIpLnRoZW4oST0+e3RoaXMudGFibGVzPUkubXB0YWJsZXMubWFwKGZ1bmN0aW9uKGope3JldHVybiBqLk1FTU5BTUV9KX0pLmNhdGNoKEk9''@;'; + put 'put ''Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoSSksdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YSIpfSksdGhpcy50YWJsZUZsYWc9ITEsdj10aGlzLmxpYisiLiIrdGhpcy50YWJsZSx0aGlzLnRhYmxlVGl0bGU9dix0aGlzLmxpYlRhYj12KTt0aGlzLnJvdXRlci51cmwu''@;'; + put 'put ''c3BsaXQoIi8iKS5sZW5ndGg+MyYmdiYmKHlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnZpZXdEYXRhKHYsaCkudGhlbihJPT57aWYoSS5xdWVyeS5sZW5ndGg+MCYmInZpZXciPT09bmkucm9vdFBhcmFtJiYwPT09bmkudmlld2VyLmZpbHRlci5jbGF1c2VzLmxlbmd0aCYmKG5pLnZpZXdl''@;'; + put 'put ''ci5maWx0ZXIucXVlcnk9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShJLnF1ZXJ5KSxuaS52aWV3ZXIuZmlsdGVyLmxpYmRzPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbSx0aGlzLnNhc1N0b3JlU2VydmljZS5pbml0aWFsaXplR2xvYmFsRmlsdGVyQ2xhdXNlKCJ2aWV3''@;'; + put 'put ''IixJLmNvbHMpKSx0aGlzLmFib3J0QWN0aXZlPSExLHRoaXMuZmlsdGVyQ29scz1JLmNvbHMsQUxlKHRoaXMuZmlsdGVyQ29scyxbXSxJLiR2aWV3ZGF0YSksdGhpcy5udW1iZXJPZlJvd3M9SS5zYXNwYXJhbXNbMF0uTk9CUyx0aGlzLmhlYWRlclBrcz1JLnNhc3BhcmFtc1swXS5QS19GSUVM''@;'; + put 'put ''RFMuc3BsaXQoIiAiKSwiU0FTOSI9PT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGUpe2xldCBOZT1JLnNhc3BhcmFtc1swXS5UQUJMRVVSSTtOZSYmTmUubGVuZ3RoPjAmJih0aGlzLnRhYmxldXJpPU5lKX10aGlzLmhvdFRhYmxlLmRhdGE9SS52aWV3ZGF0YSx0aGlzLiRkYXRhRm9ybWF0''@;'; + put 'put ''cz1JLiR2aWV3ZGF0YSx0aGlzLnF1ZXJ5VGV4dD1JLnNhc3BhcmFtc1swXS5GSUxURVJfVEVYVDtsZXQgaj1bXSx1ZT1bXTtmb3IobGV0IE5lIGluIEkudmlld2RhdGFbMF0pTmUmJnVlLnB1c2goTmUpO2ZvcihsZXQgTmU9MDtOZTx1ZS5sZW5ndGg7TmUrKylqLnB1c2goe2RhdGE6dWVbTmVd''@;'; + put 'put ''fSk7dGhpcy5ob3RUYWJsZS5jb2xIZWFkZXJzPXVlLHRoaXMuaG90VGFibGUuY29sdW1ucz1qLHRoaXMuaG90VGFibGUuY2VsbHM9ZnVuY3Rpb24oKXtyZXR1cm57cmVhZE9ubHk6ITB9fSx0aGlzLnRhYmxlRmxhZz0hMTtsZXQgQmU9W107QmU9di5zcGxpdCgiLiIpLHRoaXMubGliPUJlWzBd''@;'; + put 'put ''LHRoaXMudGFibGU9QmVbMV0sMD09PXRoaXMuaG90VGFibGUuZGF0YS5sZW5ndGg/KHRoaXMubm9EYXRhPSEwLHRoaXMudGFibGVGbGFnPSEwKToodGhpcy5ub0RhdGE9ITEsdGhpcy50YWJsZUZsYWc9ITEpLHRoaXMubm9EYXRhUmVxRXJyPSExfSkuY2F0Y2goST0+e3RoaXMubG9nZ2VyU2Vy''@;'; + put 'put ''dmljZS5lcnJvcihJKSx0aGlzLmFib3J0QWN0aXZlPSEwLHRoaXMubm9EYXRhUmVxRXJyPSEwfSkpLHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygiL2RhdGEiKSYmdiYmdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgwIT09aD8iL3ZpZXcvZGF0YS8iK3YrIi8iK2g6Ii92aWV3L2RhdGEvIit2''@;'; + put 'put ''KTtsZXQgeT10aGlzLnRhYmxlLEM9dGhpcy5saWJyYXJpZXMuZmluZChJPT5JLkxJQlJBUllSRUYudG9Mb3dlckNhc2UoKT09PXRoaXMubGliLnRvTG93ZXJDYXNlKCkpO0M/bmkudmlld2VyLmxpYnJhcmllcy5sZW5ndGg+MD8odGhpcy5saWJyYXJpZXM9bmkudmlld2VyLmxpYnJhcmllcyx0''@;'; + put 'put ''aGlzLmxpYnJhcmllc1NlYXJjaD1uaS52aWV3ZXIubGlicmFyaWVzU2VhcmNoLHRoaXMubGlicmFyeU9uQ2xpY2sodGhpcy5saWIsQywhMCkpOnRoaXMuc2VsZWN0VGFibGUodGhpcy5saWIsITEsQyk6dGhpcy5saWJpbmZvPVtdLHRoaXMudGFibGU9eXx8dGhpcy50YWJsZSx0aGlzLmxpYnJh''@;'; + put 'put ''cmllcyYmdGhpcy5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXModGhpcy5saWJyYXJpZXMpLHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygiL2RhdGEiKSYmdGhpcy5ldmVudFNlcnZpY2UuY2xvc2VTaWRlYmFyKCksdGhpcy5sb2FkaW5nVGFibGVWaWV3PSExLCF0aGlzLm5vRGF0YSYm''@;'; + put 'put ''IXRoaXMubm9EYXRhUmVxRXJyJiZ2JiZ0aGlzLnNldHVwSG90KCksdGhpcy5ob3RJbnN0YW5jZUNsaWNrTGlzdGVuZXJ8fHNldFRpbWVvdXQoKCk9PntsZXQgST1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG90SW5zdGFuY2UiKTtJJiYoSS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24i''@;'; + put 'put ''LGo9PntzZXRUaW1lb3V0KCgpPT57bGV0IHVlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kZWJ1Zy1zd2l0Y2gtaXRlbSIpfHx2b2lkIDA7dWUmJnVlLmNsaWNrKCl9LDEwMCl9KSx0aGlzLmhvdEluc3RhbmNlQ2xpY2tMaXN0ZW5lcj0hMCl9LDJlMyl9KX1tYXhXaWR0aENoZWtlcihoLHYp''@;'; + put 'put ''e3JldHVybiBoPjIwMD8yMDA6aH1vcGVuUWIoKXt0aGlzLmZpbHRlcj0hMCx0aGlzLmNkZi5kZXRlY3RDaGFuZ2VzKCksdGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2V0UXVlcnlWYXJpYWJsZXModGhpcy5saWIrIi4iK3RoaXMudGFibGUsdGhpcy5maWx0ZXJDb2xzKX1zZW5kQ2xhdXNlKCl7cmV0''@;'; + put 'put ''dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLnN1Ym1pdExvYWRpbmc9ITA7bGV0IGg9W10sdj1bXTtpZih2b2lkIDA9PT10aGlzLmNsYXVzZXMpcmV0dXJuIHRoaXMubnVsbFZhcmlhYmxlcz0hMCx2b2lkKHRoaXMuc3VibWl0TG9hZGluZz0hMSk7e2xldCB5PXRo''@;'; + put 'put ''aXMuY2xhdXNlcy5xdWVyeU9iajtpZih5WzBdLmVsZW1lbnRzLmxlbmd0aDwxKXJldHVybiJ2aWV3Ij09PW5pLnJvb3RQYXJhbSYmKG5pLnZpZXdlci5maWx0ZXIuY2xhdXNlcz1bXSxuaS52aWV3ZXIuZmlsdGVyLnF1ZXJ5PVtdLG5pLnZpZXdlci5maWx0ZXIuZ3JvdXBMb2dpYz0iIiksdm9p''@;'; + put 'put ''ZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhLyIrdGhpcy5saWJkcyk7Zm9yKGxldCBDPTA7Qzx5Lmxlbmd0aDtDKyspe2NvbnN0IEk9eVtDXS5lbGVtZW50cztoPUkuZmlsdGVyKGZ1bmN0aW9uKGope3JldHVybiBudWxsPT09ai52YXJpYWJsZX0pLGgubGVuZ3RoJiZ2''@;'; + put 'put ''LnB1c2goSSl9fWlmKHYubGVuZ3RoKXJldHVybiB0aGlzLm51bGxWYXJpYWJsZXM9ITAsdm9pZCh0aGlzLnN1Ym1pdExvYWRpbmc9ITEpO3tjb25zdCB5PXtncm91cExvZ2ljOnRoaXMuY2xhdXNlcy5ncm91cExvZ2ljLGZpbHRlckdyb3VwczpbXX07dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmZv''@;'; + put 'put ''ckVhY2goST0+e2NvbnN0IGo9e2ZpbHRlckNsYXVzZXM6W119O0kuZWxlbWVudHMuZm9yRWFjaCh1ZT0+e2ouZmlsdGVyQ2xhdXNlcy5wdXNoKHRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodWUpKX0pLCJjbGF1c2VMb2dpYyJpbiBJLmVsZW1lbnRzJiYoai5jbGF1c2VMb2dpYz1JLmNs''@;'; + put 'put ''YXVzZUxvZ2ljKSx5LmZpbHRlckdyb3Vwcy5wdXNoKHRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoaikpfSk7Y29uc3QgQz10aGlzLnNhc1N0b3JlU2VydmljZS5jcmVhdGVGaWx0ZXJRdWVyeVRhYmxlKHkpO3lpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnNhdmVRdWVyeSh0aGlzLmxp''@;'; + put 'put ''YmRzLEMpLnRoZW4oST0+e3RoaXMucXVlcnlUZXh0PUkucmVzdWx0WzBdLkZJTFRFUl9URVhUO2xldCBqPUkucmVzdWx0WzBdLkZJTFRFUl9SSzt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhLyIrdGhpcy5saWJkcysiLyIraiksdGhpcy52aWV3RGF0YShqKSx0aGlzLmZp''@;'; + put 'put ''bHRlcj0hMX0pLmNhdGNoKEk9Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoSSl9KSx0aGlzLnN1Ym1pdExvYWRpbmc9ITF9fSl9cmVtb3ZlUXVlcnkoKXt0aGlzLnNhc1N0b3JlU2VydmljZS5yZW1vdmVDbGF1c2UoKX1jYWxjdWxhdGVIb3RIZWlnaHQoKXtjb25zdCBoPWRvY3VtZW50Lmdl''@;'; + put 'put ''dEVsZW1lbnRCeUlkKCJob3QtZGlzcGxheS1saWNlbnNlLWluZm8iKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVtby1iYW5uZXIiKT9ofHwodGhpcy5ob3RUYWJsZS5oZWlnaHQrPTUwKTpoP3RoaXMuaG90VGFibGUuaGVpZ2h0LT00MDp0aGlzLmhvdFRhYmxlLmhlaWdodCs9MTMwfXNl''@;'; + put 'put ''dHVwSG90KCl7c2V0VGltZW91dCgoKT0+eyF0aGlzLmxvYWRpbmdUYWJsZVZpZXcmJnRoaXMubGliRGF0YXNldCYmKHRoaXMuaG90SW5zdGFuY2U9dGhpcy5ob3RUYWJsZVJlZ2lzdGVyZXIuZ2V0SW5zdGFuY2UoImhvdEluc3RhbmNlIiksdGhpcy5ob3RJbnN0YW5jZSYmdGhpcy5ob3RJbnN0''@;'; + put 'put ''YW5jZS51cGRhdGVTZXR0aW5ncyh7bW9kaWZ5Q29sV2lkdGg6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gaD41MDA/NTAwOmh9LGFmdGVyR2V0Q29sSGVhZGVyOihoLHYpPT57dmFyIHk7Y29uc3QgQz1udWxsPT09KHk9dGhpcy5ob3RJbnN0YW5jZSl8fHZvaWQgMD09PXk/dm9pZCAwOnkuY29sVG9Q''@;'; + put 'put ''cm9wKGgpO0MmJnRoaXMuaGVhZGVyUGtzLmluZGV4T2YoQyk+LTEmJnYuY2xhc3NMaXN0LmFkZCgicHJpbWFyeUtleUhlYWRlclN0eWxlIil9fSkpfSwxZTMpfWxvYWRXaXRoUGFyYW1ldGVycygpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5zd2l0Y2hG''@;'; + put 'put ''bGFnPSEwLHRoaXMudGFibGVUaXRsZT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW18fDAsdGhpcy51cmxGaWx0ZXJQaz1wYXJzZUludCh0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5maWx0ZXJJZHx8IjAiKTtsZXQgdj10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJN''@;'; + put 'put ''ZW07dGhpcy5saWJEYXRhc2V0PXYsdi5pbmNsdWRlcygiLiIpfHwodGhpcy5saWI9dikseWllbGQgdGhpcy52aWV3RGF0YSh0aGlzLnVybEZpbHRlclBrKSx0aGlzLm5vRGF0YT9zZXRUaW1lb3V0KCgpPT57dGhpcy50YWJsZUZsYWc9ITB9LDEyMDApOnNldFRpbWVvdXQoKCk9Pnt0aGlzLnRh''@;'; + put 'put ''YmxlRmxhZz0hMX0sMTIwMCl9KX1sb2FkV2l0aG91dFBhcmFtZXRlcnMoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuc3dpdGNoRmxhZz0hMSx0aGlzLmxpYnJhcmllc0xvYWRpbmc9ITAsbmkudmlld2VyLnN0YXJ0dXBTZXQ/c2V0VGltZW91dCgoKT0+''@;'; + put 'put ''e3RoaXMubGlicmFyaWVzPW5pLnZpZXdlci5saWJyYXJpZXMsdGhpcy5saWJyYXJpZXNTZWFyY2g9bmkudmlld2VyLmxpYnJhcmllc1NlYXJjaCx0aGlzLmxpYj1uaS52aWV3ZXIubGlicmFyeSx0aGlzLmxpYnJhcmllc1RyZWVFeHBhbmRlZD0hMCx0aGlzLmxpYnJhcmllc0xvYWRpbmc9ITEs''@;'; + put 'put ''dGhpcy5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXModGhpcy5saWJyYXJpZXMpfSwxMDApOih0aGlzLm5vRGF0YVJlcUVycj0hMSx5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS52aWV3TGlicygpLnRoZW4oaD0+e3RoaXMubGlicmFyaWVzPWguc2FzbGlicyxuaS52aWV3ZXIubGli''@;'; + put 'put ''cmFyaWVzPXRoaXMubGlicmFyaWVzLG5pLnZpZXdlci5zdGFydHVwU2V0PSEwLHRoaXMubGlicmFyaWVzTG9hZGluZz0hMSx0aGlzLmhlbHBlclNlcnZpY2UuZGlzcGxheUxpYnJhcmllcyh0aGlzLmxpYnJhcmllcyl9KS5jYXRjaChoPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKGgpLHRo''@;'; + put 'put ''aXMubGlicmFyaWVzTG9hZGluZz0hMSx0aGlzLm5vRGF0YVJlcUVycj0hMH0pKX0pfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuY2FsY3VsYXRlSG90SGVpZ2h0KCl9bmdBZnRlckNvbnRlbnRJbml0KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLmhvdFRh''@;'; + put 'put ''YmxlLmRhdGEubGVuZ3RoPjAmJih0aGlzLnRhYmxlRmxhZz0hMCksdGhpcy5fcXVlcnk9dGhpcy5zYXNTdG9yZVNlcnZpY2UucXVlcnkuc3Vic2NyaWJlKGg9Pnt0aGlzLndoZXJlU3RyaW5nPWguc3RyaW5nLHRoaXMuY2xhdXNlcz1oLm9iaix0aGlzLmxpYmRzPWgubGliZHN9KSx2b2lkIDAh''@;'; + put 'put ''PT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW0/dGhpcy5sb2FkV2l0aFBhcmFtZXRlcnMoKTp0aGlzLmxvYWRXaXRob3V0UGFyYW1ldGVycygpfSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKFh0KFI3KSxYdChrZyksWHQoZzIpLFh0''@;'; + put 'put ''KFpsKSxYdChQdSksWHQobXUpLFh0KHNjKSxYdChYYyksWHQoZDEpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLXZpZXdlciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJnZvKFR2dCw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LnF1ZXJ5''@;'; + put 'put ''RmlsdGVyQ29tcExpc3Q9eSl9fSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6OTMsdmFyczoyNixjb25zdHM6W1szLCJzY3JvbGxlZFRvQm90dG9tIl0sWyJzdHlsZSIsIm1hcmdpbjogMTBweCBhdXRvOyB0ZXh0LWFsaWduOiBjZW50ZXIiLDQsIm5nSWYiXSxbImNs''@;'; + put 'put ''YXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJzdHlsZSIsIndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXIiLDQsIm5nSWYiXSxbMSwiY29udGVudC1hcmVhIl0sWyJjbGFzcyIsIm1vZGFsIiwic3R5bGUiLCJ6LWluZGV4OiAxMDAwMDAw''@;'; + put 'put ''MCIsNCwibmdJZiJdLFsiY2xhc3MiLCJtb2RhbC1iYWNrZHJvcCIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFszLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbMSwibW9kYWwtdGl0bGUiLCJjZW50ZXIiLDIsInRleHQtYWxpZ24i''@;'; + put 'put ''LCJjZW50ZXIiLCJjb2xvciIsIiMzMTQzNTEiXSxbMSwibW9kYWwtYm9keSJdLFsxLCJjbHItY29sLW1kLTYiXSxbMSwiZG93bmxvYWQtc2VsZWN0Il0sWyJjbHJTZWxlY3QiLCIiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWyJ2YWx1ZSIsIkNTViJdLFsidmFsdWUiLCJTQVMiXSxb''@;'; + put 'put ''InZhbHVlIiwiUEdTUUxfRERMIl0sWyJ2YWx1ZSIsIlNBU19EREwiXSxbInZhbHVlIiwiVFNRTF9EREwiXSxbInZhbHVlIiwiRVhDRUwiXSxbInZhbHVlIiwiTUFSS0RPV04iXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGlu''@;'; + put 'put ''ZSIsMywiY2xpY2siXSxbInR5cGUiLCJzdWJtaXQiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzLW91dGxpbmUiLDMsImlkIiwiY2xpY2siXSxbMSwibW9kYWwtYm9keSIsMiwibWF4LWhlaWdodCIsIjM1dmgiXSxbMSwicm93Il0sWzEsImNsci1jb2wtbGctMTIiLCJjbHItY29sLW1k''@;'; + put 'put ''LTEyIiwiY2xyLWNvbC1zbS0xMiIsImNsci1jb2wteHMtMTIiXSxbMSwiY2FyZCJdLFsxLCJjYXJkLWhlYWRlciIsMiwiZGlzcGxheSIsImZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQiLCJzcGFjZS1iZXR3ZWVuIl0sWzEsImJ0bi1ncm91cCIsMiwiZGlzcGxheSIsImJsb2NrIiwibWFyZ2luLXJp''@;'; + put 'put ''Z2h0IiwiMCJdLFsxLCJyYWRpbyIsImJ0biIsMywiY2xpY2siXSxbInR5cGUiLCJyYWRpbyIsIm5hbWUiLCJidG4tZ3JvdXAtZGVtby1yYWRpb3MiLDMsImNoZWNrZWQiXSxbMSwiY2FyZC1ibG9jayIsMiwid29yZC1icmVhayIsImJyZWFrLWFsbCJdLFsicm93cyIsIjQiLCJjb2xzIiwiNTAi''@;'; + put 'put ''LCJ0eXBlIiwidGV4dCIsInJlYWRvbmx5IiwiIiwyLCJ3aWR0aCIsIjEwMCUiLCJtaW4taGVpZ2h0IiwiMTAwcHgiLCJtYXgtaGVpZ2h0IiwiMTAwcHgiLDMsInZhbHVlIiwiZm9jdXMiXSxbImNsaUNvbW1hbmRJbnB1dCIsIiJdLFsxLCJjYXJkLWZvb3RlciJdLFsxLCJidG4iLCJidG4tc20i''@;'; + put 'put ''LCJidG4tbGluayIsMywibmd4Q2xpcGJvYXJkIiwiY2xpY2siXSxbImFyaWEtbW9kYWwiLCJ0cnVlIiwzLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0''@;'; + put 'put ''biIsImJ0bi1zbSIsImJ0bi1saW5rIiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLCJidG4tc20iLDMsImNsaWNrIl0sWyJ0eXBlIiwic3VibWl0IiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJjbHJMb2FkaW5nIiwi''@;'; + put 'put ''Y2xpY2siXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwzLCJjbGljayJd''@;'; + put 'put ''LFsiY2xhc3MiLCJsb2FkaW5nU3Bpbm5lciIsNCwibmdJZiJdLFsiY2xhc3MiLCJjYXJkIiw0LCJuZ0lmIl0sWzIsIm1hcmdpbiIsIjEwcHggYXV0byIsInRleHQtYWxpZ24iLCJjZW50ZXIiXSxbImNsck1lZGl1bSIsIiJdLFsxLCJzZWFyY2gtbm9kZSJdLFsxLCJ0cmVlLXNlYXJjaC13cmFw''@;'; + put 'put ''cGVyIl0sWyJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwiTGlicmFyaWVzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImtleXVwIl0sWyJzZWFyY2hMaWJUcmVlSW5wdXQiLCIiXSxbInNoYXBlIiwic2VhcmNoIiw0''@;'; + put 'put ''LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsci1leHBhbmRlZCIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2Ui''@;'; + put 'put ''LDQsIm5nSWYiXSxbMywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbInNoYXBlIiwicmFjay1zZXJ2ZXIiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJUYWJs''@;'; + put 'put ''ZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsImlkIiwibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoVHJlZUlucHV0IiwiIl0sWzEsImNsci10cmVlbm9kZS1saW5rIiwzLCJjbGljayJdLFszLCJuZ1N3aXRjaCJdLFsic2hhcGUiLCJi''@;'; + put 'put ''b2x0Iiw0LCJuZ1N3aXRjaENhc2UiXSxbInNoYXBlIiwidGFibGUiLDQsIm5nU3dpdGNoQ2FzZSJdLFsic2hhcGUiLCJib2x0Il0sWyJzaGFwZSIsInRhYmxlIl0sWzIsIndpZHRoIiwiMTAwJSIsInRleHQtYWxpZ24iLCJjZW50ZXIiXSxbMSwic3Bpbm5lciIsInNwaW5uZXItc20iXSxbMSwi''@;'; + put 'put ''bW9kYWwiLDIsInotaW5kZXgiLCIxMDAwMDAwMCJdLFsicm9sZSIsImRpYWxvZyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibW9kYWwtZGlhbG9nIl0sWzEsIm1vZGFsLWNvbnRlbnQiXSxbMSwibW9kYWwtaGVhZGVyIl0sWyJhcmlhLWxhYmVsIiwiQ2xvc2UiLCJ0eXBlIiwiYnV0dG9uIiwx''@;'; + put 'put ''LCJjbG9zZSJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwic2hhcGUiLCJjbG9zZSJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLDEsIm1vZGFsLWJhY2tkcm9wIl0sWyJxdWVyeUZpbHRlciIs''@;'; + put 'put ''IiJdLFsxLCJsb2FkaW5nU3Bpbm5lciJdLFsxLCJzcGlubmVyIl0sWyJzdHlsZSIsImp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjsgd2lkdGg6IDEwMCU7IG1hcmdpbjogMCIsImNsYXNzIiwiaGVhZGVyLXJvdyBjbHItcm93Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm5vLXRhYmxlLXNl''@;'; + put 'put ''bGVjdGVkIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNhcmQtYmxvY2sgbm9EYXRhIiw0LCJuZ0lmIl0sWzEsImhlYWRlci1yb3ciLCJjbHItcm93IiwyLCJqdXN0aWZ5LWNvbnRlbnQiLCJzcGFjZS1iZXR3ZWVuIiwid2lkdGgiLCIxMDAlIiwibWFyZ2luIiwiMCJdLFsxLCJmb3JtLWJsb2NrIiwi''@;'; + put 'put ''c2VhcmNoLXdyYXBwZXIiLCJzdyIsImNsci1jb2wtbWQiXSxbImNsckZvcm0iLCIiLDIsImRpc3BsYXkiLCJmbGV4IiwiYWxpZ24taXRlbXMiLCJjZW50ZXIiXSxbMSwiaW5wdXQtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlNlYXJjaCIsIm5hbWUiLCJzZWFyY2gt''@;'; + put 'put ''aW5wdXQiLDMsInR5cGUiLCJrZXl1cC5lbnRlciJdLFsic2VhcmNoRWwiLCIiXSxbInNoYXBlIiwic2VhcmNoIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJzcGlubmVyIHNwaW5uZXItaW5saW5lIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJjbHJDaGVja2JveCIsIiIs''@;'; + put 'put ''Im5hbWUiLCJudW1lcmljX2NoZWNrIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFsxLCJ0aXRsZS1jb2wiLCJjbHItY29sLWF1dG8iXSxbInNoYXBlIiwiYm9sdCIsInN0eWxlIiwiY29sb3I6ICNmMWM0MGY7IG1hcmdpbi10b3A6IDVweDsgbWFyZ2luLXJpZ2h0OiA1cHgiLDQsIm5n''@;'; + put 'put ''SWYiXSxbImNsYXNzIiwidmlld2VyVGl0bGUiLDQsIm5nSWYiXSxbMSwib3B0aW9ucy1jb2wiLCJjbHItY29sLW1kIl0sWyJjbGFzcyIsIm9wdGlvbnMtZHJvcGRvd24iLDMsImNsckNsb3NlTWVudU9uSXRlbUNsaWNrIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMTIgaW5mb0Jh''@;'; + put 'put ''ciIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giLDMsImNsaWNrIl0sWzEsInNwaW5uZXIiLCJzcGlubmVyLWlubGluZSJdLFsic2hhcGUiLCJib2x0IiwyLCJjb2xvciIsIiNmMWM0MGYiLCJtYXJnaW4tdG9wIiwiNXB4IiwibWFyZ2luLXJpZ2h0IiwiNXB4Il0sWzEsInZpZXdlclRpdGxl''@;'; + put 'put ''Il0sWyJzaGFwZSIsInJlZnJlc2giLDEsInJlZnJlc2gtdGFibGUiLDMsImNsaWNrIl0sWzEsIm9wdGlvbnMtZHJvcGRvd24iLDMsImNsckNsb3NlTWVudU9uSXRlbUNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIiwxLCJidG4iLCJidG4tc20iLCJidG4t''@;'; + put 'put ''b3V0bGluZSIsImZpbHRlclNpZGUiXSxbInNoYXBlIiwiY29nIiwic2l6ZSIsIjE1Il0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1yaWdodCIsNCwiY2xySWZPcGVuIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1yaWdodCJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1zbSBi''@;'; + put 'put ''dG4tc3VjY2Vzcy1vdXRsaW5lIiwiY2xyRHJvcGRvd25JdGVtIiwiIiwzLCJjbGljayIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsImNsckRyb3Bkb3duSXRlbSIsIiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLCJidG4tYmxvY2siLDMsImNsaWNrIl0sWyJzaGFwZSIsImZp''@;'; + put 'put ''bHRlciJdLFsidHlwZSIsImJ1dHRvbiIsImNsckRyb3Bkb3duSXRlbSIsIiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiY2xpY2siXSxbInNoYXBlIiwiZG93bmxvYWQiXSxbInNoYXBlIiwiZG93bmxvYWQtY2xvdWQiXSxbInNoYXBlIiwicGVuY2lsIl0sWyJz''@;'; + put 'put ''aGFwZSIsInN3aXRjaCJdLFsxLCJjbHItY29sLW1kLTEyIiwiaW5mb0JhciJdLFsxLCJuby10YWJsZS1zZWxlY3RlZCJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwic2l6ZSIsIjYwIiwxLCJpcy1pbmZvIiwyLCJmaWxsIiwiIzgxYjQ0MCJdLFsyLCJ0ZXh0LWFsaWduIiwiY2VudGVy''@;'; + put 'put ''IiwiY29sb3IiLCIjNWE1YTVhIl0sWzEsImhlYWRlci1yb3ciLCJjbHItcm93IiwiYm9yZGVyLWJvdHRvbS1kaXZpZGVyIiwyLCJqdXN0aWZ5LWNvbnRlbnQiLCJzcGFjZS1iZXR3ZWVuIiwid2lkdGgiLCIxMDAlIiwibWFyZ2luIiwiMCJdLFsxLCJ2aWV3ZXJUaXRsZSIsMiwibWFyZ2luLXRv''@;'; + put 'put ''cCIsIjE3cHgiXSxbMiwidGV4dC1hbGlnbiIsImNlbnRlciIsIm1hcmdpbi10b3AiLCIxMHB4Il0sWyJjbHJNZWRpdW0iLCIiLDQsIm5nSWYiXSxbImNsYXNzIiwibGliaW5mbyBtLTAgY2xyLXJvdyIsNCwibmdJZiJdLFsiY2xhc3MiLCJuby10YWJsZS1zZWxlY3RlZCBwb2ludGVyLWV2ZW50''@;'; + put 'put ''cy1ub25lIiw0LCJuZ0lmIl0sWzEsImxpYmluZm8iLCJtLTAiLCJjbHItcm93Il0sWyJjbGFzcyIsInRleHQtY2VudGVyIG0tMCB3LTEwMCIsNCwibmdJZiJdLFsxLCJ0ZXh0LWNlbnRlciIsIm0tMCIsInctMTAwIl0sWyJzaGFwZSIsInJlZnJlc2giLDEsInJlZnJlc2gtdGFibGUiLCJtLTAi''@;'; + put 'put ''LDMsImNsaWNrIl0sWzEsImNsci1jb2wtMiJdLFsiY2xhc3MiLCJtLTAiLDQsIm5nSWYiXSxbMSwiY2xyLWNvbCJdLFsiY2xhc3MiLCJtLTAgZm9udC1ib2xkIiw0LCJuZ0lmIl0sWzEsIm0tMCJdLFsxLCJtLTAiLCJmb250LWJvbGQiXSxbMSwibm8tdGFibGUtc2VsZWN0ZWQiLCJwb2ludGVy''@;'; + put 'put ''LWV2ZW50cy1ub25lIl0sWyJzaGFwZSIsImluZm8tc3RhbmRhcmQiLCJzaXplIiwiNjAiLDEsImlzLWluZm8iLDIsImZpbGwiLCIjODFiNDQwIl0sWzEsImNhcmQtYmxvY2siLCJub0RhdGEiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyJdLFsi''@;'; + put 'put ''c3R5bGUiLCJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjNWE1YTVhIiw0LCJuZ0lmIl0sWyJob3RJZCIsImhvdEluc3RhbmNlIiwiaWQiLCJob3RUYWJsZSIsInN0cmV0Y2hIIiwiYWxsIiwzLCJtdWx0aUNvbHVtblNvcnRpbmciLCJ2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldCIsImRh''@;'; + put 'put ''dGEiLCJjb2xIZWFkZXJzIiwiY29sdW1ucyIsImZpbHRlcnMiLCJkcm9wZG93bk1lbnUiLCJoZWlnaHQiLCJtb2RpZnlDb2xXaWR0aCIsImNlbGxzIiwibWF4Um93cyIsIm1hbnVhbENvbHVtblJlc2l6ZSIsImxpY2Vuc2VLZXkiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJihp''@;'; + put 'put ''dCgwLCJhcHAtc2lkZWJhciIsMCksWW4oInNjcm9sbGVkVG9Cb3R0b20iLGZ1bmN0aW9uKCl7cmV0dXJuIHYubG9hZE1vcmVMaWJyYXJpZXMoKX0pLHJuKDEsSXZ0LDIsMCwiZGl2IiwxKSxpdCgyLCJjbHItdHJlZSIpLHJuKDMsT3Z0LDYsMywiY2xyLXRyZWUtbm9kZSIsMikscm4oNCxqdnQs''@;'; + put 'put ''MiwxLCJuZy1jb250YWluZXIiLDMpLHN0KCkscm4oNSxadnQsMywwLCJkaXYiLDQpLHN0KCksaXQoNiwiZGl2Iiw1KSxybig3LHp2dCwxNCwwLCJkaXYiLDYpLHJuKDgsR3Z0LDEsMCwiZGl2Iiw3KSxpdCg5LCJjbHItbW9kYWwiLDgpLFluKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9u''@;'; + put 'put ''KEMpe3JldHVybiB2Lm9wZW5Eb3dubG9hZD1DfSksaXQoMTAsImgzIiw5KSxVdCgxMSwiIERvd25sb2FkICIpLHN0KCksaXQoMTIsImRpdiIsMTApKDEzLCJkaXYiLDExKSgxNCwiY2xyLXNlbGVjdC1jb250YWluZXIiLDEyKSgxNSwibGFiZWwiKSxVdCgxNiwiUGxlYXNlIGNob29zZSBkb3du''@;'; + put 'put ''bG9hZCBmb3JtYXQiKSxzdCgpLGl0KDE3LCJzZWxlY3QiLDEzKSxZbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuZG93bmxvYWRGb3JtYXQ9Q30pLGl0KDE4LCJvcHRpb24iLDE0KSxVdCgxOSwiQ1NWIiksc3QoKSxpdCgyMCwib3B0aW9uIiwxNSksVXQoMjEsIkRhdGFs''@;'; + put 'put ''aW5lcyAoY2FyZHMgZmlsZSkiKSxzdCgpLGl0KDIyLCJvcHRpb24iLDE2KSxVdCgyMywiRERMIChQR1NRTCBGbGF2b3VyKSIpLHN0KCksaXQoMjQsIm9wdGlvbiIsMTcpLFV0KDI1LCJEREwgKFNBUyBGbGF2b3VyKSIpLHN0KCksaXQoMjYsIm9wdGlvbiIsMTgpLFV0KDI3LCJEREwgKFRTUUwg''@;'; + put 'put ''Rmxhdm91cikiKSxzdCgpLGl0KDI4LCJvcHRpb24iLDE5KSxVdCgyOSwiRXhjZWwgKC54bHN4KSIpLHN0KCksaXQoMzAsIm9wdGlvbiIsMjApLFV0KDMxLCJNYXJrZG93biAoLm1kKSIpLHN0KCkoKSgpKCkoKSxpdCgzMiwiZGl2IiwyMSkoMzMsImJ1dHRvbiIsMjIpLFluKCJjbGljayIsZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdi5vcGVuRG93bmxvYWQ9ITF9KSxVdCgzNCwiIENhbmNlbCAiKSxzdCgpLGl0KDM1LCJidXR0b24iLDIzKSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZG93bmxvYWRGb3JtYXQuaW5jbHVkZXMoIkRETCIpP3YuZG93bmxvYWREREwoKTp2LmRvd25sb2Fk''@;'; + put 'put ''RGF0YSgpfSksVXQoMzYsIiBPayAiKSxzdCgpKCkoKSxpdCgzNywiY2xyLW1vZGFsIiw4KSxZbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi53ZWJRdWVyeT1DfSksaXQoMzgsImgzIiw5KSxVdCgzOSwiIFdlYiBRdWVyeSBVUkwgIiksc3QoKSxpdCg0MCwiZGl2''@;'; + put 'put ''IiwyNCkoNDEsImRpdiIsMjUpKDQyLCJkaXYiLDI2KSg0MywiZGl2IiwyNykoNDQsImRpdiIsMjgpKDQ1LCJzcGFuIiksVXQoNDYsIkNvcHkgdGhlIGJlbG93IGludG8geW91ciBwcmVmZXJyZWQgY2xpZW50IHRvb2w6Iiksc3QoKSxpdCg0NywiZGl2IiwyOSkoNDgsImRpdiIsMzApLFluKCJj''@;'; + put 'put ''bGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi53ZWJRdWVyeVRhYj0hMCx2LnNob3dXZWJRdWVyeSgpfSksQ3IoNDksImlucHV0IiwzMSksaXQoNTAsImxhYmVsIiksVXQoNTEsIlRBQiIpLHN0KCkoKSxpdCg1MiwiZGl2IiwzMCksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LndlYlF1''@;'; + put 'put ''ZXJ5VGFiPSExLHYuc2hvd1dlYlF1ZXJ5KCl9KSxDcig1MywiaW5wdXQiLDMxKSxpdCg1NCwibGFiZWwiKSxVdCg1NSwiQ1NWIiksc3QoKSgpKCkoKSxpdCg1NiwiZGl2IiwzMikoNTcsInRleHRhcmVhIiwzMywzNCksWW4oImZvY3VzIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbkNsaUNvbW1h''@;'; + put 'put ''bmRGb2N1cyhDKX0pLFV0KDU5LCIgICAgICAgICAgICAgICIpLHN0KCkoKSxpdCg2MCwiZGl2IiwzNSkoNjEsImJ1dHRvbiIsMzYpLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5jb3B5VG9DbGlwKCl9KSxVdCg2MiwiIGNvcHkgdG8gY2xpcGJvYXJkICIpLHN0KCkoKSgpKCkoKSgp''@;'; + put 'put ''LGl0KDYzLCJkaXYiLDIxKSg2NCwiYnV0dG9uIiwyMiksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LndlYlF1ZXJ5PSExfSksVXQoNjUsIiBjbG9zZSAiKSxzdCgpKCkoKSxpdCg2NiwiY2xyLW1vZGFsIiwzNyksWW4oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oQyl7cmV0''@;'; + put 'put ''dXJuIHYuZmlsdGVyPUN9KSxpdCg2NywiaDMiLDkpLFV0KDY4LCIgRmlsdGVyIGZvciB0YWJsZToiKSxpdCg2OSwic3BhbiIpLFV0KDcwKSxzdCgpKCksaXQoNzEsImRpdiIsMTApLHJuKDcyLFd2dCwyLDAsImFwcC1xdWVyeSIsMzgpLHN0KCksaXQoNzMsImRpdiIsMjEpKDc0LCJidXR0b24i''@;'; + put 'put ''LDM5KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucmVzZXRGaWx0ZXIoKX0pLFV0KDc1LCIgcmVzZXQgZmlsdGVyICIpLHN0KCksaXQoNzYsImJ1dHRvbiIsNDApLFluKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5maWx0ZXI9ITEsdi5yZW1vdmVRdWVyeSgpfSksVXQoNzcs''@;'; + put 'put ''IiBDYW5jZWwgIiksc3QoKSxpdCg3OCwiYnV0dG9uIiw0MSksWW4oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnNlbmRDbGF1c2UoKX0pLFV0KDc5LCIgT2sgIiksc3QoKSgpKCksaXQoODAsImNsci1tb2RhbCIsNDIpLFluKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3Jl''@;'; + put 'put ''dHVybiB2LnF1ZXJ5RXJyPUN9KSxpdCg4MSwiaDMiLDQzKSxVdCg4MiwiRXJyb3IiKSxzdCgpLGl0KDgzLCJkaXYiLDEwKSg4NCwicCIpLFV0KDg1KSxzdCgpKCksaXQoODYsImRpdiIsMjEpKDg3LCJidXR0b24iLDQ0KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucXVlcnlFcnI9''@;'; + put 'put ''ITF9KSxVdCg4OCwiIENhbmNlbCAiKSxzdCgpLGl0KDg5LCJidXR0b24iLDQ1KSxZbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucXVlcnlFcnI9ITF9KSxVdCg5MCwiIE9rICIpLHN0KCkoKSgpLHJuKDkxLFl2dCw2LDAsImRpdiIsNDYpLHJuKDkyLFJBdCw2LDUsImRpdiIsNDcpLHN0''@;'; + put 'put ''KCkpLDImaCl7Y29uc3QgeT15YSg1OCk7dXQoMSksVHQoIm5nSWYiLHYubGlicmFyaWVzTG9hZGluZyksdXQoMiksVHQoIm5nSWYiLHYubGlicmFyaWVzKSx1dCgxKSxUdCgibmdGb3JPZiIsdi5saWJyYXJpZXMpLHV0KDEpLFR0KCJuZ0lmIix2LmxpYnJhcmllc1BhZ2luZyksdXQoMiksVHQo''@;'; + put 'put ''Im5nSWYiLHYubnVsbFZhcmlhYmxlcyksdXQoMSksVHQoIm5nSWYiLHYubnVsbFZhcmlhYmxlcyksdXQoMSksVHQoImNsck1vZGFsT3BlbiIsdi5vcGVuRG93bmxvYWQpKCJjbHJNb2RhbFNpemUiLCJtZCIpLHV0KDgpLFR0KCJuZ01vZGVsIix2LmRvd25sb2FkRm9ybWF0KSx1dCgxOCksVHQo''@;'; + put 'put ''ImlkIix2LnRhYmxlVGl0bGUpLHV0KDIpLFR0KCJjbHJNb2RhbE9wZW4iLHYud2ViUXVlcnkpKCJjbHJNb2RhbFNpemUiLCJsZyIpLHV0KDEyKSxUdCgiY2hlY2tlZCIsdi53ZWJRdWVyeVRhYiksdXQoNCksVHQoImNoZWNrZWQiLCF2LndlYlF1ZXJ5VGFiKSx1dCg0KSxJNigidmFsdWUiLHYu''@;'; + put 'put ''d2ViUXVlcnlUZXh0KSx1dCg0KSxUdCgibmd4Q2xpcGJvYXJkIix5KSx1dCg1KSxUdCgiY2xyTW9kYWxPcGVuIix2LmZpbHRlcikoImNsck1vZGFsU2l6ZSIsInhsIikoImNsck1vZGFsQ2xvc2FibGUiLCExKSx1dCg0KSxKaSgiICIsdi5saWJUYWIsIiAiKSx1dCgyKSxUdCgibmdJZiIsdi5m''@;'; + put 'put ''aWx0ZXIpLHV0KDYpLFR0KCJjbHJMb2FkaW5nIix2LnN1Ym1pdExvYWRpbmcpLHV0KDIpLFR0KCJjbHJNb2RhbE9wZW4iLHYucXVlcnlFcnIpLHV0KDUpLEdpKHYucXVlcnlFcnJNZXNzYWdlKSx1dCg2KSxUdCgibmdJZiIsdi5sb2FkaW5nVGFibGVWaWV3KSx1dCgxKSxUdCgibmdJZiIsIXYu''@;'; + put 'put ''bG9hZGluZ1RhYmxlVmlldyl9fSxkZXBlbmRlbmNpZXM6W1pzLFZvLFVkLGlwLFN2dCxwZyxxMyxlZCxtMSxJZixPZixFcyxkZyx4cyxMYyx5OSxfZyxaTCx3bCxmNCxoNCxnbyxaYSx3LG90LHVyLFJvLGxvLE9pLHA5LFhqLEpqLGd3LHpMLEdMLHVaLGdhLEF0ZSxrTGUseVMsTUxlLHh2dF0s''@;'; + put 'put ''c3R5bGVzOlsiLmNhcmRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MDtmbGV4OjE7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1jbHItdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93''@;'; + put 'put ''cmFwfS50b2dnbGUtc3dpdGNoW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W3R5cGU9Y2hlY2tib3hdW19uZ2NvbnRlbnQtJUNPTVAlXTpjaGVja2VkICsgbGFiZWxbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZXtib3JkZXItY29sb3I6IzMxNDM1MTtiYWNrZ3JvdW5kLWNvbG9yOiMzMTQz''@;'; + put 'put ''NTEhaW1wb3J0YW50O3RyYW5zaXRpb246LjE1cyBlYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9LmhlYWRlci1yb3dbX25nY29udGVudC0lQ09NUCVdICAgLnRpdGxlLWNvbFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2Fs''@;'; + put 'put ''aWduLWl0ZW1zOmNlbnRlcn0uaGVhZGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICAub3B0aW9ucy1jb2xbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnNlYXJjaC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmlucHV0''@;'; + put 'put ''LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7bWluLXdpZHRoOjE3MHB4fS5zZWFyY2gtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAgIC5pbnB1dC13cmFwcGVyIGNsci1pY29uLCAuc2VhcmNoLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgICAuaW5wdXQtd3JhcHBlciAuc3Bp''@;'; + put 'put ''bm5lcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxOXB4O3RvcDowcHh9LnNlYXJjaC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmlucHV0LXdyYXBwZXIgY2xyLWljb257Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDp3aGl0ZX0uc2VhcmNoLXdyYXBwZXJbX25nY29udGVudC0l''@;'; + put 'put ''Q09NUCVdICAgICBjbHItaW5wdXQtY29udGFpbmVye21hcmdpbi10b3A6LTVweDttYXJnaW4tcmlnaHQ6MH0uc2VhcmNoLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItaW5wdXQtY29udGFpbmVyIGxhYmVse2Rpc3BsYXk6bm9uZX0uc2VhcmNoLXdyYXBwZXJbX25nY29udGVu''@;'; + put 'put ''dC0lQ09NUCVdICAgICBjbHItY2hlY2tib3gtY29udGFpbmVye21hcmdpbi10b3A6MH0uc2VhcmNoLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgICBpbnB1dHtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCAjOTk5fS5zZWFyY2gtd3JhcHBlcltfbmdjb250ZW50LSVD''@;'; + put 'put ''T01QJV0gICAgIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAuc2VhcmNoLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgICBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0uc2VhcmNoLXdyYXBwZXJb''@;'; + put 'put ''X25nY29udGVudC0lQ09NUCVdICAgICBpbnB1dFt0eXBlPW51bWJlcl17LW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZH0uc3dbX25nY29udGVudC0lQ09NUCVde21hcmdpbjoxcmVtIDByZW0gLjVyZW0gMXJlbX0uaW5mb0Jhcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoxMHB4O2Jh''@;'; + put 'put ''Y2tncm91bmQ6IzQ5NTk2Nztjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6M3B4O2ZvbnQtc2l6ZToxNnB4fS5maWx0ZXJTaWRlW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjI2cHg7bWFyZ2luLWJvdHRvbToxOXB4fS5vcHRpb25zLWRyb3Bkb3duW19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXSAgICAgY2xyLWljb257bWFyZ2luLXJpZ2h0OjVweH0udmlld2VyVGl0bGVbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi1ib3R0b206MTVweH0uZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTgwcHg7bWFyZ2luLXRv''@;'; + put 'put ''cDotMThweDtwYWRkaW5nOjB9LmRyb3Bkb3duLW1lbnVbX25nY29udGVudC0lQ09NUCVdICAgLmJ0bltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTt0ZXh0LXRyYW5zZm9ybTpub25lfS5jYXJkRmxleFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVu''@;'; + put 'put ''dDpjZW50ZXJ9Lm5vRGF0YVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjF9LmZpbHRlckJ0bltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1''@;'; + put 'put ''c3RpZnktY29udGVudDpmbGV4LWVuZH0uZWRpdEJ0bltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5idG5WaWV3W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCFpbXBvcnRhbnR9LmNvbnRlbnQtYXJlYVtfbmdjb250ZW50LSVD''@;'; + put 'put ''T01QJV17cGFkZGluZzouNXJlbSFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZG93bmxvYWQtc2VsZWN0W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1zZWxlY3Qtd3JhcHBlcnttYXgtaGVpZ2h0OnVuc2V0IWltcG9ydGFudH0ucmVmcmVzaC10YWJs''@;'; + put 'put ''ZVtfbmdjb250ZW50LSVDT01QJV17Y3Vyc29yOnBvaW50ZXI7bWFyZ2luLWxlZnQ6NXB4fS5saWJpbmZvW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjEwcHggMjBweH1ob3QtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgICAucHJpbWFyeUtleUhlYWRlclN0eWxle2JhY2tncm91bmQ6''@;'; + put 'put ''cmdiYSg0OCwxMDcsMCwuNDMxMzcyNTQ5KX0ubm8tdGFibGUtc2VsZWN0ZWRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmZpbHRlckJ0bltfbmdjb250ZW50LSVDT01QJV0sIC5lZGl0QnRuW19uZ2NvbnRl''@;'; + put 'put ''bnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn19QG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KXsucm93W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tcmlnaHQ6MHJlbTttYXJnaW4tbGVmdDowcmVtfX0iXX0pLGR9KSgpO2NvbnN0IEJBdD1be3BhdGg6IiIs''@;'; + put 'put ''Y29tcG9uZW50OlE5dCxjaGlsZHJlbjpbe3BhdGg6IiIscGF0aE1hdGNoOiJmdWxsIixyZWRpcmVjdFRvOiJkYXRhIn0se3BhdGg6ImRhdGEiLGNvbXBvbmVudDpabmV9LHtwYXRoOiJkYXRhIixjb21wb25lbnQ6Wm5lfSx7cGF0aDoiZGF0YS86bGliTWVtLzpmaWx0ZXJJZCIsY29tcG9uZW50''@;'; + put 'put ''OlpuZX0se3BhdGg6ImRhdGEvOmxpYk1lbSIsY29tcG9uZW50OlpuZX0se3BhdGg6ImxpbmVhZ2UiLGNvbXBvbmVudDpqbmV9LHtwYXRoOiJsaW5lYWdlLzp0YWJsZWlkLzpkaXJlY3Rpb24iLGNvbXBvbmVudDpqbmV9LHtwYXRoOiJsaW5lYWdlL2NvbHVtbi86Y29sdXJpLzpkaXJlY3Rpb24i''@;'; + put 'put ''LGNvbXBvbmVudDpqbmV9LHtwYXRoOiJsaW5lYWdlL2NvbHVtbi86Y29sdXJpLzpkaXJlY3Rpb24vOnJlbG9hZCIsY29tcG9uZW50OmpuZX0se3BhdGg6Im1ldGFkYXRhIixjb21wb25lbnQ6RG1lfSx7cGF0aDoibWV0YWRhdGEvb2JqZWN0LzpvYmplY3RJRCIsY29tcG9uZW50OkRtZX0se3Bh''@;'; + put 'put ''dGg6Im1ldGFkYXRhL29iamVjdC86b2JqZWN0SUQvOm9iamVjdE5hbWUiLGNvbXBvbmVudDpEbWV9LHtwYXRoOiJ1c2VybmF2Iixjb21wb25lbnQ6VTl0LGNoaWxkcmVuOlt7cGF0aDoiIixwYXRoTWF0Y2g6ImZ1bGwiLHJlZGlyZWN0VG86Imdyb3VwcyJ9LHtwYXRoOiJ1c2VycyIsY29tcG9u''@;'; + put 'put ''ZW50OkxMZX0se3BhdGg6InVzZXJzLzp1cmkiLGNvbXBvbmVudDpMTGV9LHtwYXRoOiJncm91cHMiLGNvbXBvbmVudDpJTGV9LHtwYXRoOiJncm91cHMvOnVyaSIsY29tcG9uZW50OklMZX0se3BhdGg6InJvbGVzIixjb21wb25lbnQ6RExlfSx7cGF0aDoicm9sZXMvOnVyaSIsY29tcG9uZW50''@;'; + put 'put ''OkRMZX1dfV19XTtsZXQgUEF0PSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1hoLmZvckNoaWxkKEJBdCksWGhdfSksZH0pKCksRkF0''@;'; + put 'put ''PSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W2JhLFBBdCxNdnQsbmQsVUwsZjZlLmZvclJvb3QoKSxBbWUsSG5lXX0pLGR9KSgpO2Nv''@;'; + put 'put ''bnN0IE5BdD1YaC5mb3JSb290KFt7cGF0aDoiIixyZWRpcmVjdFRvOiJob21lIixwYXRoTWF0Y2g6ImZ1bGwifSx7cGF0aDoidmlldyIsbG9hZENoaWxkcmVuOigpPT5GQXR9LHtwYXRoOiJhcHByb3ZlIixjb21wb25lbnQ6bVZlLGNoaWxkcmVuOlt7cGF0aDoiIixwYXRoTWF0Y2g6ImZ1bGwi''@;'; + put 'put ''LHJlZGlyZWN0VG86InRvYXBwcm92ZSJ9LHtwYXRoOiJ0b2FwcHJvdmUiLGNvbXBvbmVudDpCd2V9LHtwYXRoOiJhcHByb3ZlRGV0Lzp0YWJsZUlkIixjb21wb25lbnQ6SHdlfSx7cGF0aDoic3VibWl0dGVkIixjb21wb25lbnQ6TndlfV19LHtwYXRoOiJsaWNlbnNpbmcvOmFjdGlvbiIsY29t''@;'; + put 'put ''cG9uZW50OlpqZSxjYW5BY3RpdmF0ZTpbVmhlXSxjYW5EZWFjdGl2YXRlOltWaGVdfSx7cGF0aDoiaG9tZSIsY29tcG9uZW50OkdIZX0se3BhdGg6ImVkaXRvciIsbG9hZENoaWxkcmVuOigpPT5yN3R9LHtwYXRoOiJzdGFnZSIsbG9hZENoaWxkcmVuOigpPT5kZXR9LHtwYXRoOiJhYm91dCIs''@;'; + put 'put ''Y29tcG9uZW50OmNIZX0se3BhdGg6ImFjdGlvbnMvOmxpYmRzLzpkc2lkIixjb21wb25lbnQ6Wk5lfSx7cGF0aDoiaGlzdG9yeSIsY29tcG9uZW50Om5WZX0se3BhdGg6InN1Ym1pdHRlZCIsY29tcG9uZW50Ok53ZX0se3BhdGg6ImRlcGxveSIsY29tcG9uZW50Omp3ZX0se3BhdGg6ImRlcGxv''@;'; + put 'put ''eS9tYW51YWxkZXBsb3kiLGNvbXBvbmVudDpqd2V9LHtwYXRoOiIqKiIsY29tcG9uZW50OnJWZX1dLHt1c2VIYXNoOiEwLHJlbGF0aXZlTGlua1Jlc29sdXRpb246ImxlZ2FjeSJ9KTtsZXQgVkF0PSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4g''@;'; + put 'put ''bmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkLGJvb3RzdHJhcDpbY1BlXX0pLGQuXHUwMjc1aW5qPWIwKHtwcm92aWRlcnM6W1I3LGtnLEJ3ZSxWaGVdLGltcG9ydHM6W3VIZSxYVyxuZCxCMmUsUEksTkF0LHZMZSxVTCxBbWUsSG5lXX0pLGR9KSgpOyhmdW5jdGlvbiBndSgpe0NU''@;'; + put 'put ''PSExfSkoKSxMaWUoKS5ib290c3RyYXBNb2R1bGUoVkF0KX0sMTE0MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxNzE1NikuZGVmYXVsdDtzZWxmLFhlLmV4cG9ydHM9KCgpPT57dmFyIEI9ezI2NTY6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2ltcG9y''@;'; + put 'put ''dERlZmF1bHR8fGZ1bmN0aW9uKFcpe3JldHVybiBXJiZXLl9fZXNNb2R1bGU/Vzp7ZGVmYXVsdDpXfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZGVjb2RlVG9rZW49US5oYXNUb2tlbkV4cGlyZWQ9US5pc1JlZnJlc2hUb2tlbkV4cGlyaW5n''@;'; + put 'put ''PVEuaXNBY2Nlc3NUb2tlbkV4cGlyaW5nPXZvaWQgMDt2YXIgbGU9aWUoWig2MjQ1KSk7ZnVuY3Rpb24gWShXLE4pe3JldHVybigwLGxlLmRlZmF1bHQpKFcpLmV4cC0obmV3IERhdGUpLnZhbHVlT2YoKS8xZTM8PU59US5pc0FjY2Vzc1Rva2VuRXhwaXJpbmc9ZnVuY3Rpb24oVyxOKXtyZXR1''@;'; + put 'put ''cm4gdm9pZCAwPT09TiYmKE49MzYwMCksIVd8fFkoVyxOKX0sUS5pc1JlZnJlc2hUb2tlbkV4cGlyaW5nPWZ1bmN0aW9uKFcsTil7cmV0dXJuIHZvaWQgMD09PU4mJihOPTMwKSwhV3x8WShXLE4pfSxRLmhhc1Rva2VuRXhwaXJlZD1mdW5jdGlvbihXKXtyZXR1cm4hV3x8WShXLDApfSxRLmRl''@;'; + put 'put ''Y29kZVRva2VuPWZ1bmN0aW9uKFcpe3ZhciBOO3RyeXtOPSgwLGxlLmRlZmF1bHQpKFcpfWNhdGNoKGVlKXt0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdG9rZW4gc3VwcGxpZWQuIil9cmV0dXJuIE59fSw2Nzk5OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRo''@;'; + put 'put ''aXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihZLFcsTixlZSl7dm9pZCAwPT09ZWUmJihlZT1OKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWSxlZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1tOXX19KX06ZnVuY3Rpb24oWSxXLE4sZWUp''@;'; + put 'put ''e3ZvaWQgMD09PWVlJiYoZWU9TiksWVtlZV09V1tOXX0pLGxlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihZLFcpe2Zvcih2YXIgTiBpbiBZKSJkZWZhdWx0Ij09PU58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLE4pfHxpZShXLFksTil9O09iamVj''@;'; + put 'put ''dC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxsZShaKDI2NTYpLFEpfSwzMjU5OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBaPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIFo9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oaWUp''@;'; + put 'put ''e2Zvcih2YXIgbGUsWT0xLFc9YXJndW1lbnRzLmxlbmd0aDtZPFc7WSsrKWZvcih2YXIgTiBpbiBsZT1hcmd1bWVudHNbWV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGxlLE4pJiYoaWVbTl09bGVbTl0pO3JldHVybiBpZX0sWi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9''@;'; + put 'put ''O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnByZWZpeE1lc3NhZ2U9dm9pZCAwLFEucHJlZml4TWVzc2FnZT1mdW5jdGlvbihpZSxsZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBpZSlpZihpZS5oYXNPd25Qcm9wZXJ0eSgibWVzc2FnZSIpKWllLm1l''@;'; + put 'put ''c3NhZ2U9bGUraWUubWVzc2FnZTtlbHNle2lmKCFpZS5oYXNPd25Qcm9wZXJ0eSgiYm9keSIpKXJldHVybiBaKFooe30saWUpLHttZXNzYWdlOmxlfSk7aWYoIm9iamVjdCI9PXR5cGVvZiBpZS5ib2R5JiYoaWUubWVzc2FnZT1pZS5ib2R5Lm1lc3NhZ2U/bGUraWUuYm9keS5tZXNzYWdlOmxl''@;'; + put 'put ''KSwic3RyaW5nIj09dHlwZW9mIGllLmJvZHkpe3ZhciBZPXZvaWQgMDt0cnl7WT1KU09OLnBhcnNlKGllLmJvZHkpfWNhdGNoKFcpe3JldHVybiBpZS5tZXNzYWdlPWxlLGllfXJldHVybiBZLm1lc3NhZ2U9WS5tZXNzYWdlP2xlK1kubWVzc2FnZTpsZSxpZS5ib2R5PVksaWV9fXJldHVybiJz''@;'; + put 'put ''dHJpbmciPT10eXBlb2YgaWUmJihpZT1sZStpZSksaWV9fSw5Nzc4OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihZLFcsTixlZSl7dm9pZCAwPT09ZWUmJihlZT1OKSxPYmplY3Qu''@;'; + put 'put ''ZGVmaW5lUHJvcGVydHkoWSxlZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1tOXX19KX06ZnVuY3Rpb24oWSxXLE4sZWUpe3ZvaWQgMD09PWVlJiYoZWU9TiksWVtlZV09V1tOXX0pLGxlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihZLFcpe2Zvcih2''@;'; + put 'put ''YXIgTiBpbiBZKSJkZWZhdWx0Ij09PU58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLE4pfHxpZShXLFksTil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxsZShaKDMyNTkpLFEpLGxlKFooMTA2NCksUSl9LDEwNjQ6ZnVu''@;'; + put 'put ''Y3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsbGU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpZT1mdW5jdGlvbihxLEope3JldHVybihpZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oc2Usb2Upe3NlLl9fcHJv''@;'; + put 'put ''dG9fXz1vZX18fGZ1bmN0aW9uKHNlLG9lKXtmb3IodmFyIGNlIGluIG9lKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvZSxjZSkmJihzZVtjZV09b2VbY2VdKX0pKHEsSil9LGZ1bmN0aW9uKHEsSil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEomJm51bGwhPT1KKXRocm93''@;'; + put 'put ''IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoSikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gc2UoKXt0aGlzLmNvbnN0cnVjdG9yPXF9aWUocSxKKSxxLnByb3RvdHlwZT1udWxsPT09Sj9PYmplY3QuY3JlYXRlKEopOihzZS5w''@;'; + put 'put ''cm90b3R5cGU9Si5wcm90b3R5cGUsbmV3IHNlKX0pLFk9dGhpcyYmdGhpcy5fX3JlYWR8fGZ1bmN0aW9uKHEsSil7dmFyIHNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnFbU3ltYm9sLml0ZXJhdG9yXTtpZighc2UpcmV0dXJuIHE7dmFyIG9lLGNlLGRlPXNlLmNhbGwocSksdmU9W107''@;'; + put 'put ''dHJ5e2Zvcig7KHZvaWQgMD09PUp8fEotLSA+MCkmJiEob2U9ZGUubmV4dCgpKS5kb25lOyl2ZS5wdXNoKG9lLnZhbHVlKX1jYXRjaChBZSl7Y2U9e2Vycm9yOkFlfX1maW5hbGx5e3RyeXtvZSYmIW9lLmRvbmUmJihzZT1kZS5yZXR1cm4pJiZzZS5jYWxsKGRlKX1maW5hbGx5e2lmKGNlKXRo''@;'; + put 'put ''cm93IGNlLmVycm9yfX1yZXR1cm4gdmV9LFc9dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihxLEosc2Upe2lmKHNlfHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIG9lLGNlPTAsZGU9Si5sZW5ndGg7Y2U8ZGU7Y2UrKykhb2UmJmNlIGluIEp8fChvZXx8KG9lPUFycmF5''@;'; + put 'put ''LnByb3RvdHlwZS5zbGljZS5jYWxsKEosMCxjZSkpLG9lW2NlXT1KW2NlXSk7cmV0dXJuIHEuY29uY2F0KG9lfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChKKSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLlNlcnZlclR5cGVFcnJvcj12''@;'; + put 'put ''b2lkIDA7dmFyIE49WigzOTAwKSxlZT1mdW5jdGlvbihxKXtmdW5jdGlvbiBKKHNlKXt2b2lkIDA9PT1zZSYmKHNlPVtdKTt2YXIgb2U9dGhpcyxjZT0oc2U9VyhbXSxZKG5ldyBTZXQoc2UpKSwhMSkpLmxlbmd0aD9zZS5qb2luKCIsICIpLnRyaW0oKTpbTi5TZXJ2ZXJUeXBlLlNhc1ZpeWEs''@;'; + put 'put ''Ti5TZXJ2ZXJUeXBlLlNhczksTi5TZXJ2ZXJUeXBlLlNhc2pzXS5qb2luKCIsICIpLnRyaW0oKTtyZXR1cm4gY2U9Y2UucmVwbGFjZSgvLFxzKFteLF0qKSQvLCIgYW5kICQxIiksKG9lPXEuY2FsbCh0aGlzLCJJbnZhbGlkIHNlcnZlciB0eXBlOiB2YWxpZCBvcHRpb24iLmNvbmNhdCgxIT09''@;'; + put 'put ''c2UubGVuZ3RoPyJzIjoiIiwiICIpLmNvbmNhdCgxIT09c2UubGVuZ3RoPyJhcmUiOiJpcyIsIiAiKS5jb25jYXQoY2UpKXx8dGhpcykubmFtZT0iU2VydmVyVHlwZUVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2Yob2UsSi5wcm90b3R5cGUpLG9lfXJldHVybiBsZShKLHEpLEp9KEVycm9y''@;'; + put 'put ''KTtRLlNlcnZlclR5cGVFcnJvcj1lZX0sMzkwNjpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3JldHVybiBuZXcoY2V8fChjZT1Qcm9taXNlKSkoZnVuY3Rpb24odmUsQWUpe2Z1bmN0aW9uIGtl''@;'; + put 'put ''KFRlKXt0cnl7SWUoZGUubmV4dChUZSkpfWNhdGNoKEVlKXtBZShFZSl9fWZ1bmN0aW9uIFNlKFRlKXt0cnl7SWUoZGUudGhyb3coVGUpKX1jYXRjaChFZSl7QWUoRWUpfX1mdW5jdGlvbiBJZShUZSl7dmFyIEVlO1RlLmRvbmU/dmUoVGUudmFsdWUpOihFZT1UZS52YWx1ZSxFZSBpbnN0YW5j''@;'; + put 'put ''ZW9mIGNlP0VlOm5ldyBjZShmdW5jdGlvbihoZSl7aGUoRWUpfSkpLnRoZW4oa2UsU2UpfUllKChkZT1kZS5hcHBseShzZSxvZXx8W10pKS5uZXh0KCkpfSl9LGxlPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKHNlLG9lKXt2YXIgY2UsZGUsdmUsQWUsa2U9e2xhYmVsOjAsc2Vu''@;'; + put 'put ''dDpmdW5jdGlvbigpe2lmKDEmdmVbMF0pdGhyb3cgdmVbMV07cmV0dXJuIHZlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIEFlPXtuZXh0OlNlKDApLHRocm93OlNlKDEpLHJldHVybjpTZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKEFlW1N5bWJvbC5pdGVyYXRvcl09ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpc30pLEFlO2Z1bmN0aW9uIFNlKEllKXtyZXR1cm4gZnVuY3Rpb24oVGUpe3JldHVybiBmdW5jdGlvbihFZSl7aWYoY2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7a2U7KXRyeXtpZihjZT0xLGRl''@;'; + put 'put ''JiYodmU9MiZFZVswXT9kZS5yZXR1cm46RWVbMF0/ZGUudGhyb3d8fCgodmU9ZGUucmV0dXJuKSYmdmUuY2FsbChkZSksMCk6ZGUubmV4dCkmJiEodmU9dmUuY2FsbChkZSxFZVsxXSkpLmRvbmUpcmV0dXJuIHZlO3N3aXRjaChkZT0wLHZlJiYoRWU9WzImRWVbMF0sdmUudmFsdWVdKSxFZVsw''@;'; + put 'put ''XSl7Y2FzZSAwOmNhc2UgMTp2ZT1FZTticmVhaztjYXNlIDQ6cmV0dXJuIGtlLmxhYmVsKysse3ZhbHVlOkVlWzFdLGRvbmU6ITF9O2Nhc2UgNTprZS5sYWJlbCsrLGRlPUVlWzFdLEVlPVswXTtjb250aW51ZTtjYXNlIDc6RWU9a2Uub3BzLnBvcCgpLGtlLnRyeXMucG9wKCk7Y29udGludWU7''@;'; + put 'put ''ZGVmYXVsdDppZighKCh2ZT0odmU9a2UudHJ5cykubGVuZ3RoPjAmJnZlW3ZlLmxlbmd0aC0xXSl8fDYhPT1FZVswXSYmMiE9PUVlWzBdKSl7a2U9MDtjb250aW51ZX1pZigzPT09RWVbMF0mJighdmV8fEVlWzFdPnZlWzBdJiZFZVsxXTx2ZVszXSkpe2tlLmxhYmVsPUVlWzFdO2JyZWFrfWlm''@;'; + put 'put ''KDY9PT1FZVswXSYma2UubGFiZWw8dmVbMV0pe2tlLmxhYmVsPXZlWzFdLHZlPUVlO2JyZWFrfWlmKHZlJiZrZS5sYWJlbDx2ZVsyXSl7a2UubGFiZWw9dmVbMl0sa2Uub3BzLnB1c2goRWUpO2JyZWFrfXZlWzJdJiZrZS5vcHMucG9wKCksa2UudHJ5cy5wb3AoKTtjb250aW51ZX1FZT1vZS5j''@;'; + put 'put ''YWxsKHNlLGtlKX1jYXRjaChoZSl7RWU9WzYsaGVdLGRlPTB9ZmluYWxseXtjZT12ZT0wfWlmKDUmRWVbMF0pdGhyb3cgRWVbMV07cmV0dXJue3ZhbHVlOkVlWzBdP0VlWzFdOnZvaWQgMCxkb25lOiEwfX0oW0llLFRlXSl9fX0sWT10aGlzJiZ0aGlzLl9fcmVhZHx8ZnVuY3Rpb24oc2Usb2Up''@;'; + put 'put ''e3ZhciBjZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZzZVtTeW1ib2wuaXRlcmF0b3JdO2lmKCFjZSlyZXR1cm4gc2U7dmFyIGRlLHZlLEFlPWNlLmNhbGwoc2UpLGtlPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1vZXx8b2UtLSA+MCkmJiEoZGU9QWUubmV4dCgpKS5kb25lOylrZS5wdXNo''@;'; + put 'put ''KGRlLnZhbHVlKX1jYXRjaChTZSl7dmU9e2Vycm9yOlNlfX1maW5hbGx5e3RyeXtkZSYmIWRlLmRvbmUmJihjZT1BZS5yZXR1cm4pJiZjZS5jYWxsKEFlKX1maW5hbGx5e2lmKHZlKXRocm93IHZlLmVycm9yfX1yZXR1cm4ga2V9LFc9dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlv''@;'; + put 'put ''bihzZSxvZSxjZSl7aWYoY2V8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgZGUsdmU9MCxBZT1vZS5sZW5ndGg7dmU8QWU7dmUrKykhZGUmJnZlIGluIG9lfHwoZGV8fChkZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChvZSwwLHZlKSksZGVbdmVdPW9lW3ZlXSk7cmV0dXJuIHNl''@;'; + put 'put ''LmNvbmNhdChkZXx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwob2UpKX0sTj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oc2Upe3JldHVybiBzZSYmc2UuX19lc01vZHVsZT9zZTp7ZGVmYXVsdDpzZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxl''@;'; + put 'put ''Iix7dmFsdWU6ITB9KSxRLnVwZGF0ZUNzdj1RLmNyZWF0ZUNzdj1RLnJlYWRDc3Y9dm9pZCAwO3ZhciBlZT1aKDE1NTkpLHE9TihaKDc1NjUpKTtRLnJlYWRDc3Y9ZnVuY3Rpb24oc2Upe3JldHVybiBpZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzLGZ1''@;'; + put 'put ''bmN0aW9uKG9lKXtzd2l0Y2gob2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCwoMCxlZS5yZWFkRmlsZSkoc2UpXTtjYXNlIDE6cmV0dXJuWzIsb2Uuc2VudCgpLnNwbGl0KCJcbiIpLmZpbHRlcihmdW5jdGlvbihjZSl7cmV0dXJuIGNlLmxlbmd0aH0pLm1hcChmdW5jdGlvbihjZSl7cmV0dXJu''@;'; + put 'put ''IGNlLnNwbGl0KCIsIil9KV19fSl9KX0sUS5jcmVhdGVDc3Y9ZnVuY3Rpb24oc2Usb2UsY2Upe3JldHVybiBpZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBkZTtyZXR1cm4gbGUodGhpcyxmdW5jdGlvbih2ZSl7c3dpdGNoKHZlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIGRl''@;'; + put 'put ''PSgwLHEuZGVmYXVsdCkob2Use2hlYWRlcjoxPT09b2UubGVuZ3RoLGNvbHVtbnM6Y2V9KSxbNCwoMCxlZS5jcmVhdGVGaWxlKShzZSxkZSldO2Nhc2UgMTpyZXR1cm4gdmUuc2VudCgpLFsyXX19KX0pfSxRLnVwZGF0ZUNzdj1mdW5jdGlvbihzZSxvZSxjZSxkZSl7cmV0dXJuIGllKHZvaWQg''@;'; + put 'put ''MCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHZlLEFlLGtlO3JldHVybiBsZSh0aGlzLGZ1bmN0aW9uKFNlKXtzd2l0Y2goU2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxKKHNlLG9lLGNlLGRlKV07Y2FzZSAxOnJldHVybiB2ZT1TZS5zZW50KCksZGUmJihBZT0wPT09dmUubGVuZ3Ro''@;'; + put 'put ''PzE6dmUubGVuZ3RoLChrZT1jZS5maW5kSW5kZXgoZnVuY3Rpb24oSWUpe3JldHVybiBJZT09PWRlfSkpPi0xP29lLnNwbGljZShrZSwwLEFlKTooY2Uuc3BsaWNlKDAsMCxkZSksb2Uuc3BsaWNlKDAsMCxBZSkpKSx2ZS5wdXNoKG9lKSxbNCwoMCxRLmNyZWF0ZUNzdikoc2UsdmUsY2UpXTtj''@;'; + put 'put ''YXNlIDI6cmV0dXJuIFNlLnNlbnQoKSxbMl19fSl9KX07dmFyIEo9ZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3JldHVybiBpZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB2ZSxBZSxrZSxTZTtyZXR1cm4gbGUodGhpcyxmdW5jdGlvbihJZSl7c3dpdGNoKEllLmxhYmVsKXtj''@;'; + put 'put ''YXNlIDA6aWYob2UubGVuZ3RoIT09Y2UubGVuZ3RoKXtpZihvZS5sZW5ndGg+Y2UubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYSByZWNvcmQgY2FuIG5vdCBoYXZlIG1vcmUgZmllbGRzIHRoYW4gcHJvdmlkZWQgY29sdW1ucyIpO2lmKCFkZXx8b2UubGVuZ3RoKzEhPT1jZS5sZW5ndGgpdGhy''@;'; + put 'put ''b3cgbmV3IEVycm9yKCJhIHJlY29yZCBjYW4gbm90IGhhdmUgbGVzcyBmaWVsZHMgdGhhbiBwcm92aWRlZCBjb2x1bW5zIil9ZWxzZSBpZihkZSYmY2UuaW5jbHVkZXMoZGUpKXRocm93IG5ldyBFcnJvcigiYSByZWNvcmQgY2FuIG5vdCBoYXZlIG1vcmUgZmllbGRzIHRoYW4gcHJvdmlkZWQg''@;'; + put 'put ''Y29sdW1ucyIpO3JldHVybls0LCgwLFEucmVhZENzdikoc2UpLmNhdGNoKGZ1bmN0aW9uKFRlKXtyZXR1cm5bXX0pXTtjYXNlIDE6aWYodmU9SWUuc2VudCgpLEFlPXZlWzBdKXtpZihjZS5sZW5ndGg+QWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigibnVtYmVyIG9mIHByb3ZpZGVkIGNvbHVt''@;'; + put 'put ''bnMgYXJlIGdyZWF0ZXIgdGhhbiBudW1iZXIgb2YgZXhpc3RpbmcgY29sdW1ucyIpO2lmKGNlLmxlbmd0aDxBZS5sZW5ndGgpe2lmKCFkZXx8Y2UubGVuZ3RoKzEhPT1BZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJudW1iZXIgb2YgcHJvdmlkZWQgY29sdW1ucyBhcmUgbGVzcyB0aGFuIG51''@;'; + put 'put ''bWJlciBvZiBleGlzdGluZyBjb2x1bW5zIik7aWYoa2U9QWUuZmluZEluZGV4KGZ1bmN0aW9uKFRlKXtyZXR1cm4gVGU9PT1kZX0pLFNlPVcoW10sWShjZSksITEpLCEoa2U+LTEpKXRocm93IG5ldyBFcnJvcigicHJvdmlkZWQgY29sdW1ucyBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBjb2x1''@;'; + put 'put ''bW5zIik7aWYoU2Uuc3BsaWNlKGtlLDAsZGUpLEpTT04uc3RyaW5naWZ5KGNlKSE9PUpTT04uc3RyaW5naWZ5KFNlKSl0aHJvdyBuZXcgRXJyb3IoInByb3ZpZGVkIGNvbHVtbnMgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgY29sdW1ucyIpfWVsc2V7aWYoSlNPTi5zdHJpbmdpZnkoY2UpIT09''@;'; + put 'put ''SlNPTi5zdHJpbmdpZnkoQWUpKXRocm93IG5ldyBFcnJvcigicHJvdmlkZWQgY29sdW1ucyBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBjb2x1bW5zIik7aWYoZGUmJiFjZS5pbmNsdWRlcyhkZSkpdGhyb3cgbmV3IEVycm9yKCJjYW4gbm90IGFkZCBuZXcgaWQgdG8gZXhpc3RpbmcgZGF0YSIp''@;'; + put 'put ''fX1yZXR1cm5bMix2ZV19fSl9KX19LDE1NTk6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKEVlLGhlLE8seil7dm9pZCAwPT09eiYmKHo9TyksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KEVlLHose2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGhlW09dfX0pfTpmdW5jdGlvbihFZSxoZSxPLHope3ZvaWQgMD09PXomJih6PU8pLEVlW3pdPWhlW09dfSksbGU9dGhpcyYmdGhpcy5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKEVl''@;'; + put 'put ''LGhlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoRWUsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOmhlfSl9OmZ1bmN0aW9uKEVlLGhlKXtFZS5kZWZhdWx0PWhlfSksWT10aGlzJiZ0aGlzLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24oRWUpe2lmKEVlJiZFZS5fX2VzTW9kdWxlKXJldHVy''@;'; + put 'put ''biBFZTt2YXIgaGU9e307aWYobnVsbCE9RWUpZm9yKHZhciBPIGluIEVlKSJkZWZhdWx0IiE9PU8mJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChFZSxPKSYmaWUoaGUsRWUsTyk7cmV0dXJuIGxlKGhlLEVlKSxoZX0sVz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rp''@;'; + put 'put ''b24oRWUsaGUsTyx6KXtyZXR1cm4gbmV3KE98fChPPVByb21pc2UpKShmdW5jdGlvbihuZSx0ZSl7ZnVuY3Rpb24geChUKXt0cnl7Vih6Lm5leHQoVCkpfWNhdGNoKFMpe3RlKFMpfX1mdW5jdGlvbiBQKFQpe3RyeXtWKHoudGhyb3coVCkpfWNhdGNoKFMpe3RlKFMpfX1mdW5jdGlvbiBWKFQp''@;'; + put 'put ''e3ZhciBTO1QuZG9uZT9uZShULnZhbHVlKTooUz1ULnZhbHVlLFMgaW5zdGFuY2VvZiBPP1M6bmV3IE8oZnVuY3Rpb24oRil7RihTKX0pKS50aGVuKHgsUCl9Vigoej16LmFwcGx5KEVlLGhlfHxbXSkpLm5leHQoKSl9KX0sTj10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihFZSxo''@;'; + put 'put ''ZSl7dmFyIE8seixuZSx0ZSx4PXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm5lWzBdKXRocm93IG5lWzFdO3JldHVybiBuZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiB0ZT17bmV4dDpQKDApLHRocm93OlAoMSkscmV0dXJuOlAoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1i''@;'; + put 'put ''b2wmJih0ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSx0ZTtmdW5jdGlvbiBQKFYpe3JldHVybiBmdW5jdGlvbihUKXtyZXR1cm4gZnVuY3Rpb24oUyl7aWYoTyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7''@;'; + put 'put ''Zm9yKDt4Oyl0cnl7aWYoTz0xLHomJihuZT0yJlNbMF0/ei5yZXR1cm46U1swXT96LnRocm93fHwoKG5lPXoucmV0dXJuKSYmbmUuY2FsbCh6KSwwKTp6Lm5leHQpJiYhKG5lPW5lLmNhbGwoeixTWzFdKSkuZG9uZSlyZXR1cm4gbmU7c3dpdGNoKHo9MCxuZSYmKFM9WzImU1swXSxuZS52YWx1''@;'; + put 'put ''ZV0pLFNbMF0pe2Nhc2UgMDpjYXNlIDE6bmU9UzticmVhaztjYXNlIDQ6cmV0dXJuIHgubGFiZWwrKyx7dmFsdWU6U1sxXSxkb25lOiExfTtjYXNlIDU6eC5sYWJlbCsrLHo9U1sxXSxTPVswXTtjb250aW51ZTtjYXNlIDc6Uz14Lm9wcy5wb3AoKSx4LnRyeXMucG9wKCk7Y29udGludWU7ZGVm''@;'; + put 'put ''YXVsdDppZighKChuZT0obmU9eC50cnlzKS5sZW5ndGg+MCYmbmVbbmUubGVuZ3RoLTFdKXx8NiE9PVNbMF0mJjIhPT1TWzBdKSl7eD0wO2NvbnRpbnVlfWlmKDM9PT1TWzBdJiYoIW5lfHxTWzFdPm5lWzBdJiZTWzFdPG5lWzNdKSl7eC5sYWJlbD1TWzFdO2JyZWFrfWlmKDY9PT1TWzBdJiZ4''@;'; + put 'put ''LmxhYmVsPG5lWzFdKXt4LmxhYmVsPW5lWzFdLG5lPVM7YnJlYWt9aWYobmUmJngubGFiZWw8bmVbMl0pe3gubGFiZWw9bmVbMl0seC5vcHMucHVzaChTKTticmVha31uZVsyXSYmeC5vcHMucG9wKCkseC50cnlzLnBvcCgpO2NvbnRpbnVlfVM9aGUuY2FsbChFZSx4KX1jYXRjaChGKXtTPVs2''@;'; + put 'put ''LEZdLHo9MH1maW5hbGx5e089bmU9MH1pZig1JlNbMF0pdGhyb3cgU1sxXTtyZXR1cm57dmFsdWU6U1swXT9TWzFdOnZvaWQgMCxkb25lOiEwfX0oW1YsVF0pfX19LGVlPXRoaXMmJnRoaXMuX19yZWFkfHxmdW5jdGlvbihFZSxoZSl7dmFyIE89ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYm''@;'; + put 'put ''RWVbU3ltYm9sLml0ZXJhdG9yXTtpZighTylyZXR1cm4gRWU7dmFyIHosbmUsdGU9Ty5jYWxsKEVlKSx4PVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1oZXx8aGUtLSA+MCkmJiEoej10ZS5uZXh0KCkpLmRvbmU7KXgucHVzaCh6LnZhbHVlKX1jYXRjaChQKXtuZT17ZXJyb3I6UH19ZmluYWxseXt0''@;'; + put 'put ''cnl7eiYmIXouZG9uZSYmKE89dGUucmV0dXJuKSYmTy5jYWxsKHRlKX1maW5hbGx5e2lmKG5lKXRocm93IG5lLmVycm9yfX1yZXR1cm4geH0scT10aGlzJiZ0aGlzLl9fc3ByZWFkQXJyYXl8fGZ1bmN0aW9uKEVlLGhlLE8pe2lmKE98fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgeixu''@;'; + put 'put ''ZT0wLHRlPWhlLmxlbmd0aDtuZTx0ZTtuZSsrKSF6JiZuZSBpbiBoZXx8KHp8fCh6PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGhlLDAsbmUpKSx6W25lXT1oZVtuZV0pO3JldHVybiBFZS5jb25jYXQoenx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaGUpKX0sSj10aGlzJiZ0aGlz''@;'; + put 'put ''Ll9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oRWUpe3JldHVybiBFZSYmRWUuX19lc01vZHVsZT9FZTp7ZGVmYXVsdDpFZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmlzVGVzdEZpbGU9US50ZXN0RmlsZVJlZ0V4cD1RLmNyZWF0ZVdyaXRl''@;'; + put 'put ''U3RyZWFtPVEuZ2V0UmVhbFBhdGg9US5iYXNlNjRFbmNvZGVGaWxlPVEuYmFzZTY0RW5jb2RlSW1hZ2VGaWxlPVEucGF0aFNlcEVzY2FwZWQ9US5jb3B5PVEubW92ZUZpbGU9US5nZXRSZWxhdGl2ZVBhdGg9US51bmlmeUZpbGVQYXRoPVEuZGVsZXRlRm9sZGVyPVEuZGVsZXRlRmlsZT1RLmNy''@;'; + put 'put ''ZWF0ZUZpbGU9US5jcmVhdGVGb2xkZXI9US5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXI9US5saXN0U3ViRm9sZGVyc0luRm9sZGVyPVEubGlzdEluaUZpbGVzSW5Gb2xkZXI9US5saXN0RmlsZXNJbkZvbGRlcj1RLnJlYWRGaWxlQmluYXJ5PVEucmVhZEZpbGU9US5pc0ZvbGRlcj1R''@;'; + put 'put ''LmZvbGRlckV4aXN0cz1RLmZpbGVFeGlzdHM9dm9pZCAwO3ZhciBzZT1KKFooNTY3NCkpLG9lPUooWig5ODQpKSxjZT1KKFooMjUyMCkpLGRlPVooNjI2NiksdmU9WShaKDI5NzUpKTtmdW5jdGlvbiBBZShFZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IE4odGhpcyxmdW5jdGlvbihoZSl7cmV0dXJuWzIsc2UuZGVmYXVsdC5wcm9taXNlcy5hY2Nlc3MoRWUsc2UuZGVmYXVsdC5jb25zdGFudHMuRl9PSykudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4hMX0pXX0pfSl9ZnVuY3Rpb24ga2UoRWUpe3Jl''@;'; + put 'put ''dHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMucmVhZEZpbGUoRWUpXX0pfSl9ZnVuY3Rpb24gU2UoRWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMucmVhZGRpcihFZSx7d2l0aEZpbGVUeXBlczohMH0pLnRoZW4oZnVuY3Rpb24oTyl7cmV0dXJuIE8uZmlsdGVyKGZ1bmN0aW9uKHope3JldHVybiF6LmlzRGlyZWN0b3J5KCl9KS5tYXAoZnVu''@;'; + put 'put ''Y3Rpb24oeil7cmV0dXJuIHoubmFtZX0pfSldfSl9KX1mdW5jdGlvbiBJZShFZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihoZSl7cmV0dXJuWzIsc2UuZGVmYXVsdC5wcm9taXNlcy5ta2RpcihFZSx7cmVjdXJzaXZlOiEw''@;'; + put 'put ''fSldfSl9KX1mdW5jdGlvbiBUZShFZSxoZSxPKXt2b2lkIDA9PT1oZSYmKGhlPWNlLmRlZmF1bHQuc2VwKSx2b2lkIDA9PT1PJiYoTz0iLyIpO3ZhciB6PXt1bml4OiIvIix3aW46IlxcIn0sbmU9T2JqZWN0LmtleXMoeikuZmluZChmdW5jdGlvbih4KXtyZXR1cm4gelt4XT09PWhlfSk7aWYo''@;'; + put 'put ''bmUpe3ZhciB0ZT16W09iamVjdC5rZXlzKHopLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHghPT1uZX0pXTtyZXR1cm4gbmU9eltuZV0sRWUuc3BsaXQodGUpLmpvaW4obmUpfXJldHVybiBFZS5zcGxpdChPKS5qb2luKGhlKX1RLmZpbGVFeGlzdHM9ZnVuY3Rpb24oRWUpe3JldHVybiBXKHRo''@;'; + put 'put ''aXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMuYWNjZXNzKEVlLHNlLmRlZmF1bHQuY29uc3RhbnRzLkZfT0spLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pLmNhdGNoKGZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuITF9KV19KX0pfSxRLmZvbGRlckV4aXN0cz1BZSxRLmlzRm9sZGVyPWZ1bmN0aW9uKEVlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKGhlKXtyZXR1cm5bMixzZS5kZWZhdWx0LnByb21pc2VzLmxzdGF0KEVlKS50''@;'; + put 'put ''aGVuKGZ1bmN0aW9uKE8pe3JldHVybiBPLmlzRGlyZWN0b3J5KCl9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSldfSl9KX0sUS5yZWFkRmlsZT1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIHZvaWQgMD09PWhlJiYoaGU9InV0ZjgiKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiBOKHRoaXMsZnVuY3Rpb24oTyl7cmV0dXJuWzIsc2UuZGVmYXVsdC5wcm9taXNlcy5yZWFkRmlsZShFZSxoZSldfSl9KX0sUS5yZWFkRmlsZUJpbmFyeT1rZSxRLmxpc3RGaWxlc0luRm9sZGVyPVNlLFEubGlzdEluaUZpbGVzSW5Gb2xkZXI9ZnVuY3Rpb24oRWUpe3JldHVybiBX''@;'; + put 'put ''KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3N3aXRjaChoZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFNlKEVlKV07Y2FzZSAxOnJldHVyblsyLGhlLnNlbnQoKS5maWx0ZXIoZnVuY3Rpb24oTyl7cmV0dXJuIE8uZW5kc1dpdGgoIi5p''@;'; + put 'put ''bmkiKX0pXX19KX0pfSxRLmxpc3RTdWJGb2xkZXJzSW5Gb2xkZXI9ZnVuY3Rpb24oRWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMucmVhZGRpcihFZSx7d2l0aEZp''@;'; + put 'put ''bGVUeXBlczohMH0pLnRoZW4oZnVuY3Rpb24oTyl7cmV0dXJuIE8uZmlsdGVyKGZ1bmN0aW9uKHope3JldHVybiB6LmlzRGlyZWN0b3J5KCl9KS5tYXAoZnVuY3Rpb24oeil7cmV0dXJuIHoubmFtZX0pfSldfSl9KX0sUS5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXI9ZnVuY3Rpb24g''@;'; + put 'put ''RWUoaGUsTyl7cmV0dXJuIHZvaWQgMD09PU8mJihPPSEwKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6PXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihuZSl7cmV0dXJuWzIsc2UuZGVmYXVsdC5wcm9taXNlcy5yZWFkZGlyKGhlLHt3aXRoRmlsZVR5cGVzOiEwfSku''@;'; + put 'put ''dGhlbihmdW5jdGlvbih0ZSl7cmV0dXJuIFcoeix2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHgsUD10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oVil7c3dpdGNoKFYubGFiZWwpe2Nhc2UgMDpyZXR1cm4gTyYmdGUuZmlsdGVyKGZ1bmN0aW9uKFQpe3JldHVybiBULmlzRGlyZWN0''@;'; + put 'put ''b3J5KCl9KS5sZW5ndGg/KHg9W10sWzQsKDAsZGUuYXN5bmNGb3JFYWNoKSh0ZS5maWx0ZXIoZnVuY3Rpb24oVCl7cmV0dXJuIFQuaXNEaXJlY3RvcnkoKX0pLGZ1bmN0aW9uKFQpe3JldHVybiBXKFAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBTLEYseWU7cmV0dXJuIE4odGhpcyxm''@;'; + put 'put ''dW5jdGlvbihDZSl7c3dpdGNoKENlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEY9Y2UuZGVmYXVsdC5qb2luKGhlLFM9VC5uYW1lKSx5ZT1bcShbXSxlZSh4KSwhMSldLFs0LEVlKEYpXTtjYXNlIDE6cmV0dXJuIHg9cS5hcHBseSh2b2lkIDAseWUuY29uY2F0KFtlZS5hcHBseSh2b2lkIDAsW0Nl''@;'; + put 'put ''LnNlbnQoKS5tYXAoZnVuY3Rpb24oRGUpe3JldHVybiBjZS5kZWZhdWx0LmpvaW4oUyxEZSl9KV0pLCExXSkpLFsyXX19KX0pfSldKTpbMywyXTtjYXNlIDE6cmV0dXJuIFYuc2VudCgpLFsyLHEocShbXSxlZSh0ZS5maWx0ZXIoZnVuY3Rpb24oVCl7cmV0dXJuIVQuaXNEaXJlY3RvcnkoKX0p''@;'; + put 'put ''Lm1hcChmdW5jdGlvbihUKXtyZXR1cm4gVC5uYW1lfSkpLCExKSxlZSh4KSwhMSldO2Nhc2UgMjpyZXR1cm5bMix0ZS5tYXAoZnVuY3Rpb24oVCl7cmV0dXJuIFQubmFtZX0pXX19KX0pfSldfSl9KX0sUS5jcmVhdGVGb2xkZXI9SWUsUS5jcmVhdGVGaWxlPWZ1bmN0aW9uKEVlLGhlLE8pe3Jl''@;'; + put 'put ''dHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6LG5lO3JldHVybiBOKHRoaXMsZnVuY3Rpb24odGUpe3N3aXRjaCh0ZS5sYWJlbCl7Y2FzZSAwOnJldHVybihFZT1UZShFZSkpLnNwbGl0KGNlLmRlZmF1bHQuc2VwKS5sZW5ndGg+MT8oKHo9RWUuc3BsaXQoY2UuZGVm''@;'; + put 'put ''YXVsdC5zZXApKS5wb3AoKSxbNCxBZShuZT16LmpvaW4oY2UuZGVmYXVsdC5zZXApKV0pOlszLDNdO2Nhc2UgMTpyZXR1cm4gdGUuc2VudCgpP1szLDNdOls0LEllKG5lKV07Y2FzZSAyOnRlLnNlbnQoKSx0ZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMixzZS5kZWZhdWx0LnByb21pc2VzLndy''@;'; + put 'put ''aXRlRmlsZShFZSxoZSxPKV19fSl9KX0sUS5kZWxldGVGaWxlPWZ1bmN0aW9uKEVlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKGhlKXtyZXR1cm5bMixzZS5kZWZhdWx0LnJlbW92ZShFZSldfSl9KX0sUS5kZWxldGVGb2xk''@;'; + put 'put ''ZXI9ZnVuY3Rpb24oRWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKE8seil7KDAsb2UuZGVmYXVsdCkoRWUse30sZnVuY3Rpb24obmUpe3JldHVybiBuZT96KG5l''@;'; + put 'put ''KTpPKCl9KX0pXX0pfSl9LFEudW5pZnlGaWxlUGF0aD1UZSxRLmdldFJlbGF0aXZlUGF0aD1mdW5jdGlvbihFZSxoZSl7dmFyIE89RWUuc3BsaXQoY2UuZGVmYXVsdC5zZXApLHo9aGUuc3BsaXQoY2UuZGVmYXVsdC5zZXApLG5lPVtdLHRlPVtdO08uZm9yRWFjaChmdW5jdGlvbihULFMpe3Zv''@;'; + put 'put ''aWQgMCE9PXpbU10mJk9bU109PT16W1NdP25lLnB1c2goVCk6VCYmdGUucHVzaChUKX0pO3ZhciB4PW5lLmpvaW4oY2UuZGVmYXVsdC5zZXApLFA9bmV3IFJlZ0V4cCgiXiIuY29uY2F0KGNlLmRlZmF1bHQuc2VwLnJlcGxhY2UoL1xcL2csIlxcXFwiKSkpLFY9bmV3IFJlZ0V4cCgiIi5jb25j''@;'; + put 'put ''YXQoY2UuZGVmYXVsdC5zZXAucmVwbGFjZSgvXFwvZywiXFxcXCIpLCIkIikpO3JldHVybih0ZS5sZW5ndGg/Ii4uIi5jb25jYXQoY2UuZGVmYXVsdC5zZXApLnJlcGVhdCh0ZS5sZW5ndGgpOiIuIi5jb25jYXQoY2UuZGVmYXVsdC5zZXApKStoZS5yZXBsYWNlKHgsIiIpLnJlcGxhY2UoUCwi''@;'; + put 'put ''IikucmVwbGFjZShWLCIiKX0sUS5tb3ZlRmlsZT1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihPKXtyZXR1cm5bMixzZS5kZWZhdWx0LnByb21pc2VzLnJlbmFtZShFZSxoZSldfSl9KX0sUS5jb3B5''@;'; + put 'put ''PWZ1bmN0aW9uKEVlLGhlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKE8pe3JldHVyblsyLHNlLmRlZmF1bHQuY29weShFZSxoZSldfSl9KX0sUS5wYXRoU2VwRXNjYXBlZD1jZS5kZWZhdWx0LnNlcC5yZXBsYWNlKC9cXC9n''@;'; + put 'put ''LCJcXFxcIiksUS5iYXNlNjRFbmNvZGVJbWFnZUZpbGU9ZnVuY3Rpb24oRWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLGtlKEVlKS50aGVuKGZ1bmN0aW9uKE8pe3ZhciB6PWNlLmRlZmF1bHQuZXh0''@;'; + put 'put ''bmFtZShFZSkuc3Vic3RyKDEpfHwicG5nIjtyZXR1cm4ic3ZnIj09PXomJih6PSJzdmcreG1sIiksImRhdGE6aW1hZ2UvIit6KyI7YmFzZTY0LCIrTy50b1N0cmluZygiYmFzZTY0Iil9KV19KX0pfSxRLmJhc2U2NEVuY29kZUZpbGU9ZnVuY3Rpb24oRWUpe3JldHVybiBXKHRoaXMsdm9pZCAw''@;'; + put 'put ''LHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMucmVhZEZpbGUoRWUse2VuY29kaW5nOiJiYXNlNjQifSldfSl9KX0sUS5nZXRSZWFsUGF0aD1mdW5jdGlvbihFZSl7cmV0dXJuIHNlLmRlZmF1bHQucmVhbHBh''@;'; + put 'put ''dGhTeW5jKEVlKX0sUS5jcmVhdGVXcml0ZVN0cmVhbT1mdW5jdGlvbihFZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihoZSl7c3dpdGNoKGhlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdmUuZmlsZUV4aXN0cyhFZSldO2Nh''@;'; + put 'put ''c2UgMTpyZXR1cm4gaGUuc2VudCgpP1syLHNlLmRlZmF1bHQuY3JlYXRlV3JpdGVTdHJlYW0oRWUse2ZsYWdzOiJhIn0pXTpbNCx2ZS5jcmVhdGVGaWxlKEVlLCIiKV07Y2FzZSAyOnJldHVybiBoZS5zZW50KCksWzIsc2UuZGVmYXVsdC5jcmVhdGVXcml0ZVN0cmVhbShFZSx7ZmxhZ3M6ImEi''@;'; + put 'put ''fSldfX0pfSl9LFEudGVzdEZpbGVSZWdFeHA9L1wudGVzdFwuKFxkK1wuKT9zYXMkL2ksUS5pc1Rlc3RGaWxlPWZ1bmN0aW9uKEVlKXtyZXR1cm4gUS50ZXN0RmlsZVJlZ0V4cC50ZXN0KEVlKX19LDU2MjY6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5f''@;'; + put 'put ''X2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKFcpe3JldHVybiBXJiZXLl9fZXNNb2R1bGU/Vzp7ZGVmYXVsdDpXfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZ2V0QWJzb2x1dGVQYXRoPXZvaWQgMDt2YXIgbGU9aWUoWigyNTIwKSksWT1pZSha''@;'; + put 'put ''KDc0MzUpKTtRLmdldEFic29sdXRlUGF0aD1mdW5jdGlvbihXLE4pe3JldHVybiBsZS5kZWZhdWx0LmlzQWJzb2x1dGUoVyl8fC9efi8uZXhlYyhXKT9sZS5kZWZhdWx0Lm5vcm1hbGl6ZShXLnJlcGxhY2UoL15+LyxZLmRlZmF1bHQuaG9tZWRpcigpKSk6bGUuZGVmYXVsdC5qb2luKE4sVyl9''@;'; + put 'put ''fSwyOTc1OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihOLGVlLHEsSil7dm9pZCAwPT09SiYmKEo9cSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE4sSix7ZW51bWVyYWJsZTohMCxn''@;'; + put 'put ''ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZWVbcV19fSl9OmZ1bmN0aW9uKE4sZWUscSxKKXt2b2lkIDA9PT1KJiYoSj1xKSxOW0pdPWVlW3FdfSksbGU9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKE4sZWUpe2Zvcih2YXIgcSBpbiBOKSJkZWZhdWx0Ij09PXF8fE9iamVjdC5wcm90''@;'; + put 'put ''b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxxKXx8aWUoZWUsTixxKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucmVhZENzdj1RLmNyZWF0ZUNzdj1RLnVwZGF0ZUNzdj1RLnRlc3RGaWxlUmVnRXhwPVEuaXNUZXN0RmlsZT1RLmdldFJl''@;'; + put 'put ''YWxQYXRoPVEuYmFzZTY0RW5jb2RlRmlsZT1RLmJhc2U2NEVuY29kZUltYWdlRmlsZT1RLmNvcHk9US5wYXRoU2VwRXNjYXBlZD1RLm1vdmVGaWxlPVEudW5pZnlGaWxlUGF0aD1RLmdldFJlbGF0aXZlUGF0aD1RLmRlbGV0ZUZvbGRlcj1RLmRlbGV0ZUZpbGU9US5jcmVhdGVXcml0ZVN0cmVh''@;'; + put 'put ''bT1RLmNyZWF0ZUZvbGRlcj1RLmNyZWF0ZUZpbGU9US5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXI9US5saXN0U3ViRm9sZGVyc0luRm9sZGVyPVEubGlzdEluaUZpbGVzSW5Gb2xkZXI9US5saXN0RmlsZXNJbkZvbGRlcj1RLnJlYWRGaWxlQmluYXJ5PVEucmVhZEZpbGU9US5pc0Zv''@;'; + put 'put ''bGRlcj1RLmZvbGRlckV4aXN0cz1RLmZpbGVFeGlzdHM9dm9pZCAwO3ZhciBZPVooMTU1OSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImZpbGVFeGlzdHMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmZpbGVFeGlzdHN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KFEsImZvbGRlckV4aXN0cyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuZm9sZGVyRXhpc3RzfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJpc0ZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuaXNGb2xkZXJ9fSksT2JqZWN0''@;'; + put 'put ''LmRlZmluZVByb3BlcnR5KFEsInJlYWRGaWxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5yZWFkRmlsZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwicmVhZEZpbGVCaW5hcnkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLnJlYWRG''@;'; + put 'put ''aWxlQmluYXJ5fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJsaXN0RmlsZXNJbkZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkubGlzdEZpbGVzSW5Gb2xkZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImxpc3RJbmlGaWxlc0luRm9sZGVyIix7''@;'; + put 'put ''ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5saXN0SW5pRmlsZXNJbkZvbGRlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwibGlzdFN1YkZvbGRlcnNJbkZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkubGlzdFN1YkZvbGRlcnNJ''@;'; + put 'put ''bkZvbGRlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwibGlzdEZpbGVzQW5kU3ViRm9sZGVyc0luRm9sZGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEs''@;'; + put 'put ''ImNyZWF0ZUZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmNyZWF0ZUZpbGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImNyZWF0ZUZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuY3JlYXRlRm9sZGVyfX0pLE9iamVj''@;'; + put 'put ''dC5kZWZpbmVQcm9wZXJ0eShRLCJjcmVhdGVXcml0ZVN0cmVhbSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuY3JlYXRlV3JpdGVTdHJlYW19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImRlbGV0ZUZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiBZLmRlbGV0ZUZpbGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImRlbGV0ZUZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuZGVsZXRlRm9sZGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJnZXRSZWxhdGl2ZVBhdGgiLHtlbnVt''@;'; + put 'put ''ZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmdldFJlbGF0aXZlUGF0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwidW5pZnlGaWxlUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkudW5pZnlGaWxlUGF0aH19KSxPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydHkoUSwibW92ZUZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLm1vdmVGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJwYXRoU2VwRXNjYXBlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkucGF0aFNlcEVzY2FwZWR9''@;'; + put 'put ''fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImNvcHkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmNvcHl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImJhc2U2NEVuY29kZUltYWdlRmlsZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IFkuYmFzZTY0RW5jb2RlSW1hZ2VGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJiYXNlNjRFbmNvZGVGaWxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5iYXNlNjRFbmNvZGVGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJnZXRSZWFsUGF0''@;'; + put 'put ''aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuZ2V0UmVhbFBhdGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImlzVGVzdEZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmlzVGVzdEZpbGV9fSksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KFEsInRlc3RGaWxlUmVnRXhwIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS50ZXN0RmlsZVJlZ0V4cH19KTt2YXIgVz1aKDM5MDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJ1cGRhdGVDc3YiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biBXLnVwZGF0ZUNzdn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiY3JlYXRlQ3N2Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVy5jcmVhdGVDc3Z9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsInJlYWRDc3YiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiBXLnJlYWRDc3Z9fSksbGUoWig1NjI2KSxRKX0sMjc3NzooVSxRLFopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLm5ld0xpbmU9US5jYXBpdGFsaXplRmlyc3RDaGFyPVEuc2FuaXRpemVTcGVjaWFs''@;'; + put 'put ''Q2hhcnM9US5wYWRXaXRoTnVtYmVyPXZvaWQgMDt2YXIgaWU9Wig1MzA2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwicGFkV2l0aE51bWJlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGllLnBhZFdpdGhOdW1iZXJ9fSk7dmFyIGxlPVooOTAxNyk7T2JqZWN0LmRl''@;'; + put 'put ''ZmluZVByb3BlcnR5KFEsInNhbml0aXplU3BlY2lhbENoYXJzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbGUuc2FuaXRpemVTcGVjaWFsQ2hhcnN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImNhcGl0YWxpemVGaXJzdENoYXIiLHtlbnVtZXJhYmxlOiEwLGdl''@;'; + put 'put ''dDpmdW5jdGlvbigpe3JldHVybiBsZS5jYXBpdGFsaXplRmlyc3RDaGFyfX0pO3ZhciBZPVooMTYyOCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIm5ld0xpbmUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLm5ld0xpbmV9fSl9LDUzMDY6KFUsUSk9PnsidXNlIHN0''@;'; + put 'put ''cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucGFkV2l0aE51bWJlcj12b2lkIDAsUS5wYWRXaXRoTnVtYmVyPWZ1bmN0aW9uKFosaWUpe3JldHVybiB2b2lkIDA9PT1pZSYmKGllPTApLFo+OT9aOiIiLmNvbmNhdChpZSkuY29uY2F0KFop''@;'; + put 'put ''fX0sMTYyODooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLm5ld0xpbmU9dm9pZCAwLFEubmV3TGluZT1mdW5jdGlvbigpe3JldHVybiJ3aW4zMiI9PT1pZS5wbGF0Zm9ybT8iXFxy''@;'; + put 'put ''XFxuIjoiXFxuIn19LDkwMTc6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuY2FwaXRhbGl6ZUZpcnN0Q2hhcj1RLnNhbml0aXplU3BlY2lhbENoYXJzPXZvaWQgMCxRLnNhbml0aXplU3BlY2lhbENoYXJzPWZ1''@;'; + put 'put ''bmN0aW9uKFope3JldHVybiBaLnJlcGxhY2UoL1tcdTAwMWJcdTAwOWJdW1soKSM7P10qKD86WzAtOV17MSw0fSg/OjtbMC05XXswLDR9KSopP1swLTlBLU9SWmNmLW5xcnk9PjxdL2csIiIpfSxRLmNhcGl0YWxpemVGaXJzdENoYXI9ZnVuY3Rpb24oWil7cmV0dXJuIFouY2hhckF0KDApLnRv''@;'; + put 'put ''VXBwZXJDYXNlKCkrWi5zbGljZSgxKX19LDY0Njc6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKFkpe3JldHVybiBZJiZZLl9fZXNNb2R1bGU/WTp7ZGVmYXVsdDpZfX07T2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuaXNTcGVjaWFsTWlzc2luZz1RLmNob2ljZVZhbGlkYXRvcj1RLmNvbmZpcm1hdGlvblZhbGlkYXRvcj1RLnVybFZhbGlkYXRvcj12b2lkIDA7dmFyIGxlPWllKFooNDgxKSk7US51cmxWYWxpZGF0b3I9ZnVuY3Rpb24oWSxXKXtyZXR1cm4h''@;'; + put 'put ''IWxlLmRlZmF1bHQuaXNIdHRwVXJpKFkpfHwhIWxlLmRlZmF1bHQuaXNIdHRwc1VyaShZKXx8IiI9PT1ZfHxXfSxRLmNvbmZpcm1hdGlvblZhbGlkYXRvcj1mdW5jdGlvbihZKXtyZXR1cm4hMD09PVl8fCExPT09WX0sUS5jaG9pY2VWYWxpZGF0b3I9ZnVuY3Rpb24oWSxXLE4pe3JldHVybiBZ''@;'; + put 'put ''PjAmJlk8PVd8fE59LFEuaXNTcGVjaWFsTWlzc2luZz1mdW5jdGlvbihZKXtyZXR1cm4oInN0cmluZyIhPXR5cGVvZiBZfHwhWS5pbmNsdWRlcygiLi4iKSkmJm5ldyBSZWdFeHAoIl4oXFwuKT9bYS16Xy5dezF9JCIsImkiKS50ZXN0KFkpfX0sNzc1NzooVSxRLFopPT57InVzZSBzdHJpY3Qi''@;'; + put 'put ''O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdlbmVyYXRlVGltZXN0YW1wPVEudGltZXN0YW1wVG9ZWVlZTU1EREhITU1TUz12b2lkIDA7dmFyIGllPVooMTMwMik7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsInRpbWVzdGFtcFRvWVlZWU1NRERI''@;'; + put 'put ''SE1NU1MiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpZS50aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJnZW5lcmF0ZVRpbWVzdGFtcCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGllLmdlbmVy''@;'; + put 'put ''YXRlVGltZXN0YW1wfX0pfSwxMzAyOihVLFEsWik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZ2VuZXJhdGVUaW1lc3RhbXA9US50aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTPXZvaWQgMDt2YXIgaWU9WigyNzc3KTtR''@;'; + put 'put ''LnRpbWVzdGFtcFRvWVlZWU1NRERISE1NU1M9ZnVuY3Rpb24obGUpe3ZvaWQgMD09PWxlJiYobGU9RGF0ZS5ub3coKSk7dmFyIFk9bmV3IERhdGUobGUpO3JldHVybltZLmdldEZ1bGxZZWFyKCksKDAsaWUucGFkV2l0aE51bWJlcikoWS5nZXRNb250aCgpKzEpLCgwLGllLnBhZFdpdGhOdW1i''@;'; + put 'put ''ZXIpKFkuZ2V0RGF0ZSgpKV0uam9pbigiLyIpKyIgIitbKDAsaWUucGFkV2l0aE51bWJlcikoWS5nZXRIb3VycygpKSwoMCxpZS5wYWRXaXRoTnVtYmVyKShZLmdldE1pbnV0ZXMoKSksKDAsaWUucGFkV2l0aE51bWJlcikoWS5nZXRTZWNvbmRzKCkpXS5qb2luKCI6Iil9LFEuZ2VuZXJhdGVU''@;'; + put 'put ''aW1lc3RhbXA9ZnVuY3Rpb24obGUsWSl7dm9pZCAwPT09bGUmJihsZT0iIik7dmFyIFc9bmV3IERhdGUsTj1bVy5nZXRVVENGdWxsWWVhcigpLFcuZ2V0VVRDTW9udGgoKSsxLFcuZ2V0VVRDRGF0ZSgpLFcuZ2V0VVRDSG91cnMoKSxXLmdldFVUQ01pbnV0ZXMoKSxXLmdldFVUQ1NlY29uZHMo''@;'; + put 'put ''KV07cmV0dXJuIE49Ti5tYXAoZnVuY3Rpb24oZWUpe3JldHVybigwLGllLnBhZFdpdGhOdW1iZXIpKGVlKX0pLFkmJmxlJiZZPE4ubGVuZ3RoJiZZPj0wJiZOLnNwbGljZShZLDAsbGUpLE4uam9pbihZPyIiOmxlKX19LDgyMzk6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSwyNDI3OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sMTg5OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2Vz''@;'; + put 'put ''TW9kdWxlIix7dmFsdWU6ITB9KX0sMzY5MjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDY5Mzk6KFUsUSk9PnsidXNlIHN0cmljdCI7dmFyIFo7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUi''@;'; + put 'put ''LHt2YWx1ZTohMH0pLFEuTWVtYmVyVHlwZT12b2lkIDAsKFo9US5NZW1iZXJUeXBlfHwoUS5NZW1iZXJUeXBlPXt9KSkuc2VydmljZT0ic2VydmljZSIsWi5maWxlPSJmaWxlIixaLmZvbGRlcj0iZm9sZGVyIn0sNTE2NTooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDM5MDA6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKFksVyxOLGVlKXt2b2lkIDA9PT1lZSYmKGVlPU4pLE9iamVjdC5kZWZp''@;'; + put 'put ''bmVQcm9wZXJ0eShZLGVlLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXW05dfX0pfTpmdW5jdGlvbihZLFcsTixlZSl7dm9pZCAwPT09ZWUmJihlZT1OKSxZW2VlXT1XW05dfSksbGU9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKFksVyl7Zm9yKHZhciBO''@;'; + put 'put ''IGluIFkpImRlZmF1bHQiPT09Tnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFcsTil8fGllKFcsWSxOKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGxlKFooODIzOSksUSksbGUoWigyNDI3KSxRKSxsZShaKDE4OSksUSks''@;'; + put 'put ''bGUoWigzNjkyKSxRKSxsZShaKDY5MzkpLFEpLGxlKFooNTE2NSksUSksbGUoWig0MDY5KSxRKSxsZShaKDg5MzIpLFEpLGxlKFooNCksUSksbGUoWigyMDE1KSxRKSxsZShaKDg1MTUpLFEpLGxlKFooNTMxMyksUSksbGUoWig4OTc5KSxRKX0sNDA2OTooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtP''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5pc01hY3JvVmFycz12b2lkIDAsUS5pc01hY3JvVmFycz1mdW5jdGlvbihaKXtyZXR1cm4gWiYmIm9iamVjdCI9PXR5cGVvZiBaLm1hY3JvVmFycyYmIUFycmF5LmlzQXJyYXkoWi5tYWNyb1ZhcnMpfX0s''@;'; + put 'put ''ODkzMjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDQ6KFUsUSk9PnsidXNlIHN0cmljdCI7dmFyIFo7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU0FTSnNGaWxl''@;'; + put 'put ''VHlwZT12b2lkIDAsKFo9US5TQVNKc0ZpbGVUeXBlfHwoUS5TQVNKc0ZpbGVUeXBlPXt9KSkuc2VydmljZT0iU2VydmljZSIsWi5qb2I9IkpvYiIsWi50ZXN0PSJUZXN0In0sMjAxNTooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3Zh''@;'; + put 'put ''bHVlOiEwfSl9LDg1MTU6KFUsUSk9PnsidXNlIHN0cmljdCI7dmFyIFo7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU2VydmVyVHlwZT12b2lkIDAsKFo9US5TZXJ2ZXJUeXBlfHwoUS5TZXJ2ZXJUeXBlPXt9KSkuU2FzVml5YT0iU0FTVklZQSIs''@;'; + put 'put ''Wi5TYXM5PSJTQVM5IixaLlNhc2pzPSJTQVNKUyJ9LDUzMTM6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw4OTc5OihVLFEsWik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNN''@;'; + put 'put ''b2R1bGUiLHt2YWx1ZTohMH0pLFEuVGFyZ2V0PXZvaWQgMDt2YXIgaWU9Wig4NTE1KSxsZT1aKDY3ODEpLFk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBXKE4pe3RoaXMuX3NlcnZlclR5cGU9aWUuU2VydmVyVHlwZS5TYXNWaXlhO3RyeXtpZighTil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdGFy''@;'; + put 'put ''Z2V0OiBJbnB1dCBKU09OIGlzIG51bGwgb3IgdW5kZWZpbmVkLiIpO3RoaXMuX25hbWU9KDAsbGUudmFsaWRhdGVUYXJnZXROYW1lKShOLm5hbWUpLHRoaXMuX3NlcnZlclVybD0oMCxsZS52YWxpZGF0ZVNlcnZlclVybCkoTi5zZXJ2ZXJVcmwpLHRoaXMuX3NlcnZlclR5cGU9KDAsbGUudmFs''@;'; + put 'put ''aWRhdGVTZXJ2ZXJUeXBlKShOLnNlcnZlclR5cGUpLHRoaXMuX2h0dHBzQWdlbnRPcHRpb25zPSgwLGxlLnZhbGlkYXRlSHR0cHNBZ2VudE9wdGlvbnMpKE4uaHR0cHNBZ2VudE9wdGlvbnMpLHRoaXMuX2FwcExvYz0oMCxsZS52YWxpZGF0ZUFwcExvYykoTi5hcHBMb2MpLHRoaXMuX2NvbnRl''@;'; + put 'put ''eHROYW1lPSgwLGxlLnZhbGlkYXRlQ29udGV4dE5hbWUpKE4uY29udGV4dE5hbWUsdGhpcy5fc2VydmVyVHlwZSksdGhpcy5fc2VydmVyTmFtZT0oMCxsZS52YWxpZGF0ZVNlcnZlck5hbWUpKE4uc2VydmVyTmFtZSx0aGlzLl9zZXJ2ZXJUeXBlKSx0aGlzLl9yZXBvc2l0b3J5TmFtZT0oMCxs''@;'; + put 'put ''ZS52YWxpZGF0ZVJlcG9zaXRvcnlOYW1lKShOLnJlcG9zaXRvcnlOYW1lLHRoaXMuX3NlcnZlclR5cGUpLE4uZG9jQ29uZmlnJiYodGhpcy5fZG9jQ29uZmlnPSgwLGxlLnZhbGlkYXRlRG9jQ29uZmlnKShOLmRvY0NvbmZpZykpLE4uYXV0aENvbmZpZyYmKHRoaXMuX2F1dGhDb25maWc9KDAs''@;'; + put 'put ''bGUudmFsaWRhdGVBdXRoQ29uZmlnKShOLmF1dGhDb25maWcpKSxOLmF1dGhDb25maWdTYXM5JiYodGhpcy5fYXV0aENvbmZpZ1Nhczk9KDAsbGUudmFsaWRhdGVBdXRoQ29uZmlnU2FzOSkoTi5hdXRoQ29uZmlnU2FzOSkpLE4uYnVpbGRDb25maWcmJih0aGlzLl9idWlsZENvbmZpZz0oMCxs''@;'; + put 'put ''ZS52YWxpZGF0ZUJ1aWxkQ29uZmlnKShOLmJ1aWxkQ29uZmlnLHRoaXMuX25hbWUpKSx0aGlzLl9kZXBsb3lDb25maWc9KDAsbGUudmFsaWRhdGVEZXBsb3lDb25maWcpKE4uZGVwbG95Q29uZmlnP04uZGVwbG95Q29uZmlnOntkZXBsb3lTZXJ2aWNlUGFjazohMCxkZXBsb3lTY3JpcHRzOltd''@;'; + put 'put ''fSksTi5zZXJ2aWNlQ29uZmlnJiYodGhpcy5fc2VydmljZUNvbmZpZz0oMCxsZS52YWxpZGF0ZVNlcnZpY2VDb25maWcpKE4uc2VydmljZUNvbmZpZykpLE4uam9iQ29uZmlnJiYodGhpcy5fam9iQ29uZmlnPSgwLGxlLnZhbGlkYXRlSm9iQ29uZmlnKShOLmpvYkNvbmZpZykpLE4uc3RyZWFt''@;'; + put 'put ''Q29uZmlnJiYodGhpcy5fc3RyZWFtQ29uZmlnPSgwLGxlLnZhbGlkYXRlU3RyZWFtQ29uZmlnKShOLnN0cmVhbUNvbmZpZykpLE4udGVzdENvbmZpZyYmKHRoaXMuX3Rlc3RDb25maWc9KDAsbGUudmFsaWRhdGVUZXN0Q29uZmlnKShOLnRlc3RDb25maWcpKSxOLm1hY3JvRm9sZGVycyYmTi5t''@;'; + put 'put ''YWNyb0ZvbGRlcnMubGVuZ3RoJiYodGhpcy5fbWFjcm9Gb2xkZXJzPU4ubWFjcm9Gb2xkZXJzKSxOLnByb2dyYW1Gb2xkZXJzJiZOLnByb2dyYW1Gb2xkZXJzLmxlbmd0aCYmKHRoaXMuX3Byb2dyYW1Gb2xkZXJzPU4ucHJvZ3JhbUZvbGRlcnMpLE4uYmluYXJ5Rm9sZGVycyYmTi5iaW5hcnlG''@;'; + put 'put ''b2xkZXJzLmxlbmd0aCYmKHRoaXMuX2JpbmFyeUZvbGRlcnM9Ti5iaW5hcnlGb2xkZXJzKX1jYXRjaChlZSl7dGhyb3cgbmV3IEVycm9yKCJFcnJvciBwYXJzaW5nIHRhcmdldDogIi5jb25jYXQoZWUubWVzc2FnZSkpfX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBl''@;'; + put 'put ''LCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJzZXJ2ZXJVcmwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VydmVyVXJsfSxlbnVt''@;'; + put 'put ''ZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwic2VydmVyVHlwZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXJ2ZXJUeXBlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9w''@;'; + put 'put ''ZXJ0eShXLnByb3RvdHlwZSwiaHR0cHNBZ2VudE9wdGlvbnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faHR0cHNBZ2VudE9wdGlvbnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJhcHBMb2MiLHtnZXQ6''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwTG9jfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwiZG9jQ29uZmlnIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RvY0NvbmZpZ30sZW51bWVyYWJsZTohMSxj''@;'; + put 'put ''b25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsImF1dGhDb25maWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXV0aENvbmZpZ30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90''@;'; + put 'put ''b3R5cGUsImF1dGhDb25maWdTYXM5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2F1dGhDb25maWdTYXM5fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwiYnVpbGRDb25maWciLHtnZXQ6ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5fYnVpbGRDb25maWd9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJkZXBsb3lDb25maWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVwbG95Q29uZmlnfSxlbnVtZXJhYmxlOiExLGNv''@;'; + put 'put ''bmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwic2VydmljZUNvbmZpZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXJ2aWNlQ29uZmlnfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShX''@;'; + put 'put ''LnByb3RvdHlwZSwiam9iQ29uZmlnIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2pvYkNvbmZpZ30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsInN0cmVhbUNvbmZpZyIse2dldDpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biB0aGlzLl9zdHJlYW1Db25maWd9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJtYWNyb0ZvbGRlcnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWFjcm9Gb2xkZXJzfSxlbnVtZXJhYmxlOiExLGNvbmZp''@;'; + put 'put ''Z3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwicHJvZ3JhbUZvbGRlcnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvZ3JhbUZvbGRlcnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcu''@;'; + put 'put ''cHJvdG90eXBlLCJiaW5hcnlGb2xkZXJzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JpbmFyeUZvbGRlcnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJjb250ZXh0TmFtZSIse2dldDpmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiB0aGlzLl9jb250ZXh0TmFtZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsInNlcnZlck5hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VydmVyTmFtZX0sZW51bWVyYWJsZTohMSxjb25m''@;'; + put 'put ''aWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsInJlcG9zaXRvcnlOYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlOYW1lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShX''@;'; + put 'put ''LnByb3RvdHlwZSwidGVzdENvbmZpZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90ZXN0Q29uZmlnfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLFcucHJvdG90eXBlLnRvSnNvbj1mdW5jdGlvbihOKXt2YXIgZWUscSxKO3ZvaWQgMD09PU4mJihOPSEwKTt2YXIgc2U9''@;'; + put 'put ''e25hbWU6dGhpcy5uYW1lLHNlcnZlclVybDp0aGlzLnNlcnZlclVybCxzZXJ2ZXJUeXBlOnRoaXMuc2VydmVyVHlwZSxodHRwc0FnZW50T3B0aW9uczp0aGlzLmh0dHBzQWdlbnRPcHRpb25zLGFwcExvYzp0aGlzLmFwcExvYyxkb2NDb25maWc6dGhpcy5kb2NDb25maWd9O3JldHVybiEobnVs''@;'; + put 'put ''bD09PShlZT10aGlzLm1hY3JvRm9sZGVycyl8fHZvaWQgMD09PWVlKSYmZWUubGVuZ3RoJiYoc2UubWFjcm9Gb2xkZXJzPXRoaXMubWFjcm9Gb2xkZXJzKSwhKG51bGw9PT0ocT10aGlzLnByb2dyYW1Gb2xkZXJzKXx8dm9pZCAwPT09cSkmJnEubGVuZ3RoJiYoc2UucHJvZ3JhbUZvbGRlcnM9''@;'; + put 'put ''dGhpcy5wcm9ncmFtRm9sZGVycyksIShudWxsPT09KEo9dGhpcy5iaW5hcnlGb2xkZXJzKXx8dm9pZCAwPT09SikmJkoubGVuZ3RoJiYoc2UuYmluYXJ5Rm9sZGVycz10aGlzLmJpbmFyeUZvbGRlcnMpLHRoaXMuYXV0aENvbmZpZyYmKHNlLmF1dGhDb25maWc9dGhpcy5hdXRoQ29uZmlnKSx0''@;'; + put 'put ''aGlzLmF1dGhDb25maWdTYXM5JiYoc2UuYXV0aENvbmZpZ1Nhczk9dGhpcy5hdXRoQ29uZmlnU2FzOSksdGhpcy5idWlsZENvbmZpZz9zZS5idWlsZENvbmZpZz10aGlzLmJ1aWxkQ29uZmlnOk4mJihzZS5idWlsZENvbmZpZz17aW5pdFByb2dyYW06IiIsdGVybVByb2dyYW06IiIsYnVpbGRP''@;'; + put 'put ''dXRwdXRGaWxlTmFtZToiIi5jb25jYXQodGhpcy5uYW1lLCIuc2FzIiksYnVpbGRPdXRwdXRGb2xkZXI6InNhc2pzYnVpbGQiLGJ1aWxkUmVzdWx0c0ZvbGRlcjoic2FzanNyZXN1bHRzIixtYWNyb1ZhcnM6e319KSx0aGlzLmpvYkNvbmZpZz9zZS5qb2JDb25maWc9dGhpcy5qb2JDb25maWc6''@;'; + put 'put ''TiYmKHNlLmpvYkNvbmZpZz17am9iRm9sZGVyczpbXSxpbml0UHJvZ3JhbToiIix0ZXJtUHJvZ3JhbToiIixtYWNyb1ZhcnM6e319KSx0aGlzLnNlcnZpY2VDb25maWc/c2Uuc2VydmljZUNvbmZpZz10aGlzLnNlcnZpY2VDb25maWc6TiYmKHNlLnNlcnZpY2VDb25maWc9e3NlcnZpY2VGb2xk''@;'; + put 'put ''ZXJzOltdLGluaXRQcm9ncmFtOiIiLHRlcm1Qcm9ncmFtOiIiLG1hY3JvVmFyczp7fX0pLHRoaXMuc3RyZWFtQ29uZmlnP3NlLnN0cmVhbUNvbmZpZz10aGlzLnN0cmVhbUNvbmZpZzpOJiYoc2Uuc3RyZWFtQ29uZmlnPXtzdHJlYW1XZWJGb2xkZXI6IiIsc3RyZWFtV2ViOiExLHdlYlNvdXJj''@;'; + put 'put ''ZVBhdGg6IiIsc3RyZWFtU2VydmljZU5hbWU6IiIsYXNzZXRQYXRoczpbXX0pLCF0aGlzLmRlcGxveUNvbmZpZ3x8dGhpcy5kZXBsb3lDb25maWcuZGVwbG95U2VydmljZVBhY2smJiF0aGlzLmRlcGxveUNvbmZpZy5kZXBsb3lTY3JpcHRzLmxlbmd0aD9OJiYoc2UuZGVwbG95Q29uZmlnPXtk''@;'; + put 'put ''ZXBsb3lTY3JpcHRzOltdLGRlcGxveVNlcnZpY2VQYWNrOiExfSk6c2UuZGVwbG95Q29uZmlnPXRoaXMuZGVwbG95Q29uZmlnLHRoaXMudGVzdENvbmZpZz9zZS50ZXN0Q29uZmlnPXRoaXMudGVzdENvbmZpZzpOJiYoc2UudGVzdENvbmZpZz17aW5pdFByb2dyYW06IiIsdGVybVByb2dyYW06''@;'; + put 'put ''IiIsbWFjcm9WYXJzOnt9LHRlc3RTZXRVcDoiIix0ZXN0VGVhckRvd246IiJ9KSx0aGlzLnNlcnZlclR5cGU9PT1pZS5TZXJ2ZXJUeXBlLlNhc1ZpeWE/c2UuY29udGV4dE5hbWU9dGhpcy5jb250ZXh0TmFtZTp0aGlzLnNlcnZlclR5cGU9PT1pZS5TZXJ2ZXJUeXBlLlNhczkmJihzZS5zZXJ2''@;'; + put 'put ''ZXJOYW1lPXRoaXMuc2VydmVyTmFtZSxzZS5yZXBvc2l0b3J5TmFtZT10aGlzLnJlcG9zaXRvcnlOYW1lKSxzZX0sV30oKTtRLlRhcmdldD1ZfSw2NzgxOmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihXKXty''@;'; + put 'put ''ZXR1cm4gVyYmVy5fX2VzTW9kdWxlP1c6e2RlZmF1bHQ6V319O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnZhbGlkYXRlUmVwb3NpdG9yeU5hbWU9US52YWxpZGF0ZVNlcnZlck5hbWU9US52YWxpZGF0ZUNvbnRleHROYW1lPVEudmFsaWRhdGVT''@;'; + put 'put ''dHJlYW1Db25maWc9US52YWxpZGF0ZURlcGxveUNvbmZpZz1RLnZhbGlkYXRlSm9iQ29uZmlnPVEudmFsaWRhdGVUZXN0Q29uZmlnPVEudmFsaWRhdGVTZXJ2aWNlQ29uZmlnPVEudmFsaWRhdGVCdWlsZENvbmZpZz1RLnZhbGlkYXRlQXV0aENvbmZpZ1Nhczk9US52YWxpZGF0ZUF1dGhDb25m''@;'; + put 'put ''aWc9US52YWxpZGF0ZURvY0NvbmZpZz1RLnZhbGlkYXRlQXBwTG9jPVEudmFsaWRhdGVIdHRwc0FnZW50T3B0aW9ucz1RLnZhbGlkYXRlU2VydmVyVXJsPVEudmFsaWRhdGVUYXJnZXROYW1lPVEudmFsaWRhdGVTZXJ2ZXJUeXBlPXZvaWQgMDt2YXIgbGU9aWUoWig0ODEpKSxZPVooMzkwMCk7''@;'; + put 'put ''US52YWxpZGF0ZVNlcnZlclR5cGU9ZnVuY3Rpb24oVyl7aWYoIVcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNlcnZlciB0eXBlOiBgc2VydmVyVHlwZWAgY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO2lmKFchPT1ZLlNlcnZlclR5cGUuU2FzOSYmVyE9PVkuU2VydmVyVHlwZS5T''@;'; + put 'put ''YXNWaXlhJiZXIT09WS5TZXJ2ZXJUeXBlLlNhc2pzKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzZXJ2ZXIgdHlwZTogU3VwcG9ydGVkIHZhbHVlcyBmb3IgIGBzZXJ2ZXJUeXBlYCBhcmUgIi5jb25jYXQoWS5TZXJ2ZXJUeXBlLlNhc1ZpeWEsIiwgIikuY29uY2F0KFkuU2VydmVyVHlwZS5T''@;'; + put 'put ''YXM5LCIgYW5kICIpLmNvbmNhdChZLlNlcnZlclR5cGUuU2FzanMsIi4iKSk7cmV0dXJuIFd9LFEudmFsaWRhdGVUYXJnZXROYW1lPWZ1bmN0aW9uKFcpe2lmKCFXKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB0YXJnZXQgbmFtZTogYG5hbWVgIGNhbm5vdCBiZSBlbXB0eSwgbnVsbCBvciB1''@;'; + put 'put ''bmRlZmluZWQuIik7aWYoVy50cmltKCkuaW5jbHVkZXMoIiAiKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdGFyZ2V0IG5hbWU6IGBuYW1lYCBjYW5ub3QgaW5jbHVkZSBzcGFjZXMuIik7aWYoIS9eW2EtekEtWjAtOVwtXSskL2kudGVzdChXKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQg''@;'; + put 'put ''dGFyZ2V0IG5hbWU6IGBuYW1lYCBjYW4gb25seSBjb250YWluIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCBkYXNoZXMuIik7cmV0dXJuIFd9LFEudmFsaWRhdGVTZXJ2ZXJVcmw9ZnVuY3Rpb24oVyl7aWYobnVsbD09VyYmKFc9IiIpLCIiIT09VyYmIWxlLmRlZmF1bHQuaXNIdHRwVXJp''@;'; + put 'put ''KFcpJiYhbGUuZGVmYXVsdC5pc0h0dHBzVXJpKFcpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzZXJ2ZXIgVVJMOiBgc2VydmVyVXJsYCBzaG91bGQgZWl0aGVyIGJlIGFuIGVtcHR5IHN0cmluZyBvciBhIHZhbGlkIFVSTCBvZiB0aGUgZm9ybSBodHRwKHMpOi8veW91ci1zZXJ2ZXIuY29t''@;'; + put 'put ''KDpwb3J0KS4iKTtyZXR1cm4gV30sUS52YWxpZGF0ZUh0dHBzQWdlbnRPcHRpb25zPWZ1bmN0aW9uKFcpe2lmKFcpe2lmKCJvYmplY3QiIT10eXBlb2YgVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdmFsdWU6IGBodHRwc0FnZW50T3B0aW9uc2Agc2hvdWxkIGVpdGhlciBiZSBhbiBlbXB0''@;'; + put 'put ''eSBvciBhbiBvYmplY3Qgb2YgYEh0dHBzQWdlbnRPcHRpb25zYCIpO2lmKG51bGw9PVcuYWxsb3dJbnNlY3VyZVJlcXVlc3RzKVcuYWxsb3dJbnNlY3VyZVJlcXVlc3RzPSExO2Vsc2UgaWYoImJvb2xlYW4iIT10eXBlb2YgVy5hbGxvd0luc2VjdXJlUmVxdWVzdHMpdGhyb3cgbmV3IEVycm9y''@;'; + put 'put ''KCJJbnZhbGlkIHZhbHVlOiBgaHR0cHNBZ2VudE9wdGlvbnMuYWxsb3dJbnNlY3VyZVJlcXVlc3RzYCBzaG91bGQgZWl0aGVyIGJlIGFuIGVtcHR5IG9yIGEgYm9vbGVhbiIpO3JldHVybiJzdHJpbmciIT10eXBlb2YgVy5jYVBhdGgmJihXLmNhUGF0aD12b2lkIDApLCJzdHJpbmciIT10eXBl''@;'; + put 'put ''b2YgVy5rZXlQYXRoJiYoVy5rZXlQYXRoPXZvaWQgMCksInN0cmluZyIhPXR5cGVvZiBXLmNlcnRQYXRoJiYoVy5jZXJ0UGF0aD12b2lkIDApLFd9fSxRLnZhbGlkYXRlQXBwTG9jPWZ1bmN0aW9uKFcpe2lmKCFXKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBhcHAgbG9jYXRpb246IGBhcHBM''@;'; + put 'put ''b2NgIGNhbm5vdCBiZSBlbXB0eSwgbnVsbCBvciB1bmRlZmluZWQuIik7aWYoIVcuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBhcHAgbG9jYXRpb246IGBhcHBMb2NgIG11c3Qgc3RhcnQgd2l0aCBhIGAvYC4iKTtyZXR1cm4gV30sUS52YWxpZGF0ZURvY0NvbmZp''@;'; + put 'put ''Zz1mdW5jdGlvbihXKXtpZihXfHwoVz17fSksImJvb2xlYW4iIT10eXBlb2YgVy5kaXNwbGF5TWFjcm9Db3JlJiYoVy5kaXNwbGF5TWFjcm9Db3JlPXZvaWQgMCksImJvb2xlYW4iIT10eXBlb2YgVy5lbmFibGVMaW5lYWdlJiYoVy5lbmFibGVMaW5lYWdlPXZvaWQgMCksInN0cmluZyIhPXR5''@;'; + put 'put ''cGVvZiBXLm91dERpcmVjdG9yeSYmKFcub3V0RGlyZWN0b3J5PXZvaWQgMCksInN0cmluZyI9PXR5cGVvZiBXLmRhdGFDb250cm9sbGVyVXJsKXtpZigiIiE9PVcuZGF0YUNvbnRyb2xsZXJVcmwmJiFsZS5kZWZhdWx0LmlzSHR0cFVyaShXLmRhdGFDb250cm9sbGVyVXJsKSYmIWxlLmRlZmF1''@;'; + put 'put ''bHQuaXNIdHRwc1VyaShXLmRhdGFDb250cm9sbGVyVXJsKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgRGF0YSBDb250cm9sbGVyIFVybDogYGRhdGFDb250cm9sbGVyVXJsYCBzaG91bGQgZWl0aGVyIGJlIGFuIGVtcHR5IHN0cmluZyBvciBhIHZhbGlkIFVSTCBvZiB0aGUgZm9ybSBodHRw''@;'; + put 'put ''KHMpOi8veW91ci1zZXJ2ZXIuY29tKDpwb3J0KS4iKX1lbHNlIFcuZGF0YUNvbnRyb2xsZXJVcmw9dm9pZCAwO3JldHVybiBXfSxRLnZhbGlkYXRlQXV0aENvbmZpZz1mdW5jdGlvbihXKXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYXV0aCBjb25maWc6IEpTT04gY2Fubm90IGJl''@;'; + put 'put ''IG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBXfSxRLnZhbGlkYXRlQXV0aENvbmZpZ1Nhczk9ZnVuY3Rpb24oVyl7aWYoIVcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGF1dGggY29uZmlnIGZvciBzYXM5OiBKU09OIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4iKTtpZighVy51''@;'; + put 'put ''c2VyTmFtZXx8IVcucGFzc3dvcmQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGF1dGggY29uZmlnIGZvciBzYXM5OiB1c2VyTmFtZSBhbmQgcGFzc3dvcmQgY2FuIG5vdCBiZSBlbXB0eSIpO3JldHVybiBXfSxRLnZhbGlkYXRlQnVpbGRDb25maWc9ZnVuY3Rpb24oVyxOKXtpZighVyl0aHJv''@;'; + put 'put ''dyBuZXcgRXJyb3IoIkludmFsaWQgYnVpbGQgY29uZmlnOiBKU09OIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4iKTtyZXR1cm4gVy5idWlsZFJlc3VsdHNGb2xkZXJ8fChXLmJ1aWxkUmVzdWx0c0ZvbGRlcj0ic2FzanNyZXN1bHRzIiksVy5idWlsZE91dHB1dEZvbGRlcnx8KFcuYnVp''@;'; + put 'put ''bGRPdXRwdXRGb2xkZXI9InNhc2pzYnVpbGQiKSxXLmJ1aWxkT3V0cHV0RmlsZU5hbWV8fChXLmJ1aWxkT3V0cHV0RmlsZU5hbWU9IiIuY29uY2F0KE4sIi5zYXMiKSksVy5pbml0UHJvZ3JhbXx8KFcuaW5pdFByb2dyYW09IiIpLFcudGVybVByb2dyYW18fChXLnRlcm1Qcm9ncmFtPSIiKSxX''@;'; + put 'put ''Lm1hY3JvVmFyc3x8KFcubWFjcm9WYXJzPXt9KSxXfSxRLnZhbGlkYXRlU2VydmljZUNvbmZpZz1mdW5jdGlvbihXKXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2VydmljZSBjb25maWc6IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBXLmluaXRQ''@;'; + put 'put ''cm9ncmFtfHwoVy5pbml0UHJvZ3JhbT0iIiksVy50ZXJtUHJvZ3JhbXx8KFcudGVybVByb2dyYW09IiIpLFcuc2VydmljZUZvbGRlcnN8fChXLnNlcnZpY2VGb2xkZXJzPVtdKSxXLm1hY3JvVmFyc3x8KFcubWFjcm9WYXJzPXt9KSxXfSxRLnZhbGlkYXRlVGVzdENvbmZpZz1mdW5jdGlvbihX''@;'; + put 'put ''KXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdGVzdCBjb25maWc6IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBXLmluaXRQcm9ncmFtfHwoVy5pbml0UHJvZ3JhbT0iIiksVy50ZXJtUHJvZ3JhbXx8KFcudGVybVByb2dyYW09IiIpLFcubWFjcm9W''@;'; + put 'put ''YXJzfHwoVy5tYWNyb1ZhcnM9e30pLFcudGVzdFNldFVwfHwoVy50ZXN0U2V0VXA9IiIpLFcudGVzdFRlYXJEb3dufHwoVy50ZXN0VGVhckRvd249IiIpLFd9LFEudmFsaWRhdGVKb2JDb25maWc9ZnVuY3Rpb24oVyl7aWYoIVcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGpvYiBjb25maWc6''@;'; + put 'put ''IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBXLmluaXRQcm9ncmFtfHwoVy5pbml0UHJvZ3JhbT0iIiksVy50ZXJtUHJvZ3JhbXx8KFcudGVybVByb2dyYW09IiIpLFcuam9iRm9sZGVyc3x8KFcuam9iRm9sZGVycz1bXSksVy5tYWNyb1ZhcnN8fChXLm1hY3Jv''@;'; + put 'put ''VmFycz17fSksV30sUS52YWxpZGF0ZURlcGxveUNvbmZpZz1mdW5jdGlvbihXKXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZGVwbG95IGNvbmZpZzogSlNPTiBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuIik7cmV0dXJuIFcuZGVwbG95U2VydmljZVBhY2s9ISFXLmRlcGxv''@;'; + put 'put ''eVNlcnZpY2VQYWNrLFcuZGVwbG95U2NyaXB0c3x8KFcuZGVwbG95U2NyaXB0cz1bXSksV30sUS52YWxpZGF0ZVN0cmVhbUNvbmZpZz1mdW5jdGlvbihXKXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyZWFtIGNvbmZpZzogSlNPTiBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmlu''@;'; + put 'put ''ZWQuIik7aWYoITAhPT1XLnN0cmVhbVdlYiYmITEhPT1XLnN0cmVhbVdlYil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyZWFtIGNvbmZpZzogYHN0cmVhbVdlYmAgY2Fubm90IGJlIGEgbm9uLWJvb2xlYW4gdmFsdWUuIik7aWYoVy5zdHJlYW1XZWImJiFXLnN0cmVhbVdlYkZvbGRlcil0''@;'; + put 'put ''aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyZWFtIGNvbmZpZzogYHN0cmVhbVdlYkZvbGRlcmAgY2Fubm90IGJlIGVtcHR5LCBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGBzdHJlYW1XZWJgIGlzIHRydWUuIik7aWYoVy5zdHJlYW1XZWImJiFXLndlYlNvdXJjZVBhdGgpdGhyb3cgbmV3IEVy''@;'; + put 'put ''cm9yKCJJbnZhbGlkIHN0cmVhbSBjb25maWc6IGB3ZWJTb3VyY2VQYXRoYCBjYW5ub3QgYmUgZW1wdHksIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBXLnN0cmVhbUxvZ28mJiJzdHJpbmciIT10eXBlb2YgVy5zdHJlYW1Mb2dvJiYoVy5zdHJlYW1Mb2dvPXZvaWQgMCksVy5hc3NldFBh''@;'; + put 'put ''dGhzfHwoVy5hc3NldFBhdGhzPVtdKSxXLnN0cmVhbVNlcnZpY2VOYW1lfHwoVy5zdHJlYW1TZXJ2aWNlTmFtZT0iY2xpY2ttZSIpLFd9LFEudmFsaWRhdGVDb250ZXh0TmFtZT1mdW5jdGlvbihXLE4pe3JldHVybiBOIT09WS5TZXJ2ZXJUeXBlLlNhc1ZpeWF8fFc/VzoiU0FTIEpvYiBFeGVj''@;'; + put 'put ''dXRpb24gY29tcHV0ZSBjb250ZXh0In0sUS52YWxpZGF0ZVNlcnZlck5hbWU9ZnVuY3Rpb24oVyxOKXtyZXR1cm4gTiE9PVkuU2VydmVyVHlwZS5TYXM5fHxXP1c6IlNBU0FwcCJ9LFEudmFsaWRhdGVSZXBvc2l0b3J5TmFtZT1mdW5jdGlvbihXLE4pe3JldHVybiBOIT09WS5TZXJ2ZXJUeXBl''@;'; + put 'put ''LlNhczl8fFc/VzoiRm91bmRhdGlvbiJ9fSwyOTI3OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPVooODc2NCkuQnVmZmVyLGxlPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihOKXtyZXR1cm4gTiYmTi5fX2VzTW9kdWxlP046e2RlZmF1bHQ6Tn19O09i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmRlY29kZUZyb21CYXNlNjQ9US5lbmNvZGVUb0Jhc2U2ND12b2lkIDA7dmFyIFk9bGUoWig1ODM1KSksVz0ie3Nhc2pzX2VuY29kZWR9IjtRLmVuY29kZVRvQmFzZTY0PWZ1bmN0aW9uKE4pe3ZhciBlZT1Z''@;'; + put 'put ''LmRlZmF1bHQucmFuZG9tQnl0ZXMoMTAwKS50b1N0cmluZygiaGV4IikscT1pZS5mcm9tKGVlK04pLnRvU3RyaW5nKCJiYXNlNjQiKTtyZXR1cm4gVytxfSxRLmRlY29kZUZyb21CYXNlNjQ9ZnVuY3Rpb24oTil7cmV0dXJuIE4uc3RhcnRzV2l0aChXKT8oTj1OLnJlcGxhY2UoL157c2FzanNf''@;'; + put 'put ''ZW5jb2RlZH0vLCIiKSxpZS5mcm9tKE4sImJhc2U2NCIpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIwMCkpOk59fSw1ODE6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuYnl0ZXNUb1NpemU9dm9pZCAwLFEuYnl0''@;'; + put 'put ''ZXNUb1NpemU9ZnVuY3Rpb24oWixpZSxsZSl7aWYodm9pZCAwPT09aWUmJihpZT0xKSx2b2lkIDA9PT1sZSYmKGxlPTEwOTk1MTE2Mjc3NzYpLDA9PT1aKXJldHVybiIwIEIiO1o9Wj5sZT9sZTpaO3ZhciBZPWllPDA/MDppZSxXPU1hdGguZmxvb3IoTWF0aC5sb2coWikvTWF0aC5sb2coMTAy''@;'; + put 'put ''NCkpO3JldHVybihaL01hdGgucG93KDEwMjQsVykpLnRvRml4ZWQoWSkrIiAiK1siQiIsIktCIiwiTUIiLCJHQiIsIlRCIl1bV119fSw4NjUzOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmNodW5rPXZvaWQg''@;'; + put 'put ''MCxRLmNodW5rPWZ1bmN0aW9uKFosaWUpe3JldHVybiB2b2lkIDA9PT1pZSYmKGllPTIyMCksWi5sZW5ndGg8PWllP1taXTooWi5tYXRjaChuZXcgUmVnRXhwKCIuezEsIitpZSsifSIsImciKSl8fFtdKS5maWx0ZXIoZnVuY3Rpb24obGUpe3JldHVybiEhbGV9KX19LDY0NTc6ZnVuY3Rpb24o''@;'; + put 'put ''VSxRKXsidXNlIHN0cmljdCI7dmFyIFo9dGhpcyYmdGhpcy5fX3JlYWR8fGZ1bmN0aW9uKGxlLFkpe3ZhciBXPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmxlW1N5bWJvbC5pdGVyYXRvcl07aWYoIVcpcmV0dXJuIGxlO3ZhciBOLGVlLHE9Vy5jYWxsKGxlKSxKPVtdO3RyeXtmb3IoOyh2''@;'; + put 'put ''b2lkIDA9PT1ZfHxZLS0gPjApJiYhKE49cS5uZXh0KCkpLmRvbmU7KUoucHVzaChOLnZhbHVlKX1jYXRjaChzZSl7ZWU9e2Vycm9yOnNlfX1maW5hbGx5e3RyeXtOJiYhTi5kb25lJiYoVz1xLnJldHVybikmJlcuY2FsbChxKX1maW5hbGx5e2lmKGVlKXRocm93IGVlLmVycm9yfX1yZXR1cm4g''@;'; + put 'put ''Sn0saWU9dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihsZSxZLFcpe2lmKFd8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgTixlZT0wLHE9WS5sZW5ndGg7ZWU8cTtlZSsrKSFOJiZlZSBpbiBZfHwoTnx8KE49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoWSwwLGVl''@;'; + put 'put ''KSksTltlZV09WVtlZV0pO3JldHVybiBsZS5jb25jYXQoTnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoWSkpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5kaWZmPXZvaWQgMCxRLmRpZmY9ZnVuY3Rpb24obGUsWSl7dmFyIFc9bGUuZmls''@;'; + put 'put ''dGVyKGZ1bmN0aW9uKGVlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGVlPyFKU09OLnN0cmluZ2lmeShZKS5pbmNsdWRlcyhKU09OLnN0cmluZ2lmeShlZSkpOiFZLmluY2x1ZGVzKGVlKX0pLE49WS5maWx0ZXIoZnVuY3Rpb24oZWUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZWU/IUpTT04u''@;'; + put 'put ''c3RyaW5naWZ5KGxlKS5pbmNsdWRlcyhKU09OLnN0cmluZ2lmeShlZSkpOiFsZS5pbmNsdWRlcyhlZSl9KTtyZXR1cm4gaWUoaWUoW10sWihXKSwhMSksWihOKSwhMSl9fSwxNTI5OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFs''@;'; + put 'put ''dWU6ITB9KSxRLmdldEV4ZWN1dG9yUGF0aD12b2lkIDA7dmFyIFo9e1NBU1ZJWUE6Ii9TQVNKb2JFeGVjdXRpb24iLFNBUzk6Ii9TQVNTdG9yZWRQcm9jZXNzL2RvIn07US5nZXRFeGVjdXRvclBhdGg9ZnVuY3Rpb24oaWUpe3JldHVybiBpZT8oaWU9aWUudG9VcHBlckNhc2UoKSxaW2llXXx8''@;'; + put 'put ''IiIpOiIifX0sMzMxNjooVSxRLFopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdldFRyZWVFeGFtcGxlPVEuaXNGaWxlVHJlZT12b2lkIDA7dmFyIGllPVooMzkwMCk7US5pc0ZpbGVUcmVlPWZ1bmN0aW9uKE4pe3Jl''@;'; + put 'put ''dHVybiBOJiZOLm1lbWJlcnMmJkFycmF5LmlzQXJyYXkoTi5tZW1iZXJzKSYmMD09PU4ubWVtYmVycy5maWx0ZXIoZnVuY3Rpb24oZWUpe3JldHVybiFsZShlZSkmJiFZKGVlKSYmIVcoZWUpfSkubGVuZ3RofTt2YXIgbGU9ZnVuY3Rpb24oTil7cmV0dXJuIE4mJiJzdHJpbmciPT10eXBlb2Yg''@;'; + put 'put ''Ti5uYW1lJiZOLnR5cGU9PT1pZS5NZW1iZXJUeXBlLnNlcnZpY2UmJiJzdHJpbmciPT10eXBlb2YgTi5jb2RlfSxZPWZ1bmN0aW9uKE4pe3JldHVybiBOJiYic3RyaW5nIj09dHlwZW9mIE4ubmFtZSYmTi50eXBlPT09aWUuTWVtYmVyVHlwZS5maWxlJiYic3RyaW5nIj09dHlwZW9mIE4uY29k''@;'; + put 'put ''ZX0sVz1mdW5jdGlvbihOKXtyZXR1cm4gTiYmInN0cmluZyI9PXR5cGVvZiBOLm5hbWUmJk4udHlwZT09PWllLk1lbWJlclR5cGUuZm9sZGVyJiZOLm1lbWJlcnMmJkFycmF5LmlzQXJyYXkoTi5tZW1iZXJzKSYmMD09PU4ubWVtYmVycy5maWx0ZXIoZnVuY3Rpb24oZWUpe3JldHVybiFsZShl''@;'; + put 'put ''ZSkmJiFZKGVlKSYmIVcoZWUpfSkubGVuZ3RofTtRLmdldFRyZWVFeGFtcGxlPWZ1bmN0aW9uKCl7cmV0dXJue21lbWJlcnM6W3tuYW1lOiJqb2JzIix0eXBlOmllLk1lbWJlclR5cGUuZm9sZGVyLG1lbWJlcnM6W3tuYW1lOiJleHRyYWN0Iix0eXBlOmllLk1lbWJlclR5cGUuZm9sZGVyLG1l''@;'; + put 'put ''bWJlcnM6W3tuYW1lOiJtYWtlZGF0YTEiLHR5cGU6aWUuTWVtYmVyVHlwZS5zZXJ2aWNlLGNvZGU6IiVwdXQgSGVsbG8gV29ybGQhOyJ9XX1dfV19fX0sNjI2NjpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5j''@;'; + put 'put ''cmVhdGU/ZnVuY3Rpb24ob2UsY2UsZGUsdmUpe3ZvaWQgMD09PXZlJiYodmU9ZGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvZSx2ZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2VbZGVdfX0pfTpmdW5jdGlvbihvZSxjZSxkZSx2ZSl7dm9pZCAwPT09dmUmJih2ZT1k''@;'; + put 'put ''ZSksb2VbdmVdPWNlW2RlXX0pLGxlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihvZSxjZSl7Zm9yKHZhciBkZSBpbiBvZSkiZGVmYXVsdCI9PT1kZXx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNlLGRlKXx8aWUoY2Usb2UsZGUpfTtPYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5jaHVuaz1RLmRpZmY9US5ieXRlc1RvU2l6ZT1RLmdldEV4ZWN1dG9yUGF0aD1RLmRlY29kZUZyb21CYXNlNjQ9US5lbmNvZGVUb0Jhc2U2ND1RLnVybE9yaWdpbj1RLmlzV2luZG93cz1RLnVuaXFBcnJheT1RLmFzeW5j''@;'; + put 'put ''Rm9yRWFjaD1RLnV1aWR2ND12b2lkIDA7dmFyIFk9WigxMTMxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwidXVpZHY0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS51dWlkdjR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImFzeW5jRm9yRWFjaCIse2VudW1l''@;'; + put 'put ''cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuYXN5bmNGb3JFYWNofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJ1bmlxQXJyYXkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLnVuaXFBcnJheX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiaXNX''@;'; + put 'put ''aW5kb3dzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5pc1dpbmRvd3N9fSksbGUoWigzMzE2KSxRKTt2YXIgVz1aKDk2NTIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJ1cmxPcmlnaW4iLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXLnVy''@;'; + put 'put ''bE9yaWdpbn19KTt2YXIgTj1aKDI5MjcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJlbmNvZGVUb0Jhc2U2NCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE4uZW5jb2RlVG9CYXNlNjR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImRlY29kZUZyb21CYXNlNjQi''@;'; + put 'put ''LHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBOLmRlY29kZUZyb21CYXNlNjR9fSk7dmFyIGVlPVooMTUyOSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImdldEV4ZWN1dG9yUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGVlLmdldEV4ZWN1''@;'; + put 'put ''dG9yUGF0aH19KTt2YXIgcT1aKDU4MSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImJ5dGVzVG9TaXplIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcS5ieXRlc1RvU2l6ZX19KTt2YXIgSj1aKDY0NTcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJkaWZmIix7ZW51''@;'; + put 'put ''bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSi5kaWZmfX0pO3ZhciBzZT1aKDg2NTMpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJjaHVuayIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHNlLmNodW5rfX0pfSw5NjUyOihVLFEpPT57InVzZSBzdHJpY3Qi''@;'; + put 'put ''O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnVybE9yaWdpbj12b2lkIDAsUS51cmxPcmlnaW49ZnVuY3Rpb24oWil7aWYoIiI9PT1aKXJldHVybiBaO3ZhciBpZTt0cnl7aWU9bmV3IFVSTChaKS5vcmlnaW59Y2F0Y2gobGUpe3Rocm93IG5ldyBF''@;'; + put 'put ''cnJvcigiSW52YWxpZCBVUkwuIil9cmV0dXJuIGllfX0sMTEzMTpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpLGxlPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihXLE4sZWUscSl7cmV0dXJuIG5ldyhlZXx8KGVlPVByb21pc2UpKShmdW5jdGlvbihK''@;'; + put 'put ''LHNlKXtmdW5jdGlvbiBvZSh2ZSl7dHJ5e2RlKHEubmV4dCh2ZSkpfWNhdGNoKEFlKXtzZShBZSl9fWZ1bmN0aW9uIGNlKHZlKXt0cnl7ZGUocS50aHJvdyh2ZSkpfWNhdGNoKEFlKXtzZShBZSl9fWZ1bmN0aW9uIGRlKHZlKXt2YXIgQWU7dmUuZG9uZT9KKHZlLnZhbHVlKTooQWU9dmUudmFs''@;'; + put 'put ''dWUsQWUgaW5zdGFuY2VvZiBlZT9BZTpuZXcgZWUoZnVuY3Rpb24oa2Upe2tlKEFlKX0pKS50aGVuKG9lLGNlKX1kZSgocT1xLmFwcGx5KFcsTnx8W10pKS5uZXh0KCkpfSl9LFk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oVyxOKXt2YXIgZWUscSxKLHNlLG9lPXtsYWJlbDow''@;'; + put 'put ''LHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkpbMF0pdGhyb3cgSlsxXTtyZXR1cm4gSlsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBzZT17bmV4dDpjZSgwKSx0aHJvdzpjZSgxKSxyZXR1cm46Y2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihzZVtTeW1ib2wuaXRlcmF0b3JdPWZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxzZTtmdW5jdGlvbiBjZShkZSl7cmV0dXJuIGZ1bmN0aW9uKHZlKXtyZXR1cm4gZnVuY3Rpb24oQWUpe2lmKGVlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO29lOyl0cnl7aWYoZWU9MSxx''@;'; + put 'put ''JiYoSj0yJkFlWzBdP3EucmV0dXJuOkFlWzBdP3EudGhyb3d8fCgoSj1xLnJldHVybikmJkouY2FsbChxKSwwKTpxLm5leHQpJiYhKEo9Si5jYWxsKHEsQWVbMV0pKS5kb25lKXJldHVybiBKO3N3aXRjaChxPTAsSiYmKEFlPVsyJkFlWzBdLEoudmFsdWVdKSxBZVswXSl7Y2FzZSAwOmNhc2Ug''@;'; + put 'put ''MTpKPUFlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gb2UubGFiZWwrKyx7dmFsdWU6QWVbMV0sZG9uZTohMX07Y2FzZSA1Om9lLmxhYmVsKysscT1BZVsxXSxBZT1bMF07Y29udGludWU7Y2FzZSA3OkFlPW9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoSj0o''@;'; + put 'put ''Sj1vZS50cnlzKS5sZW5ndGg+MCYmSltKLmxlbmd0aC0xXSl8fDYhPT1BZVswXSYmMiE9PUFlWzBdKSl7b2U9MDtjb250aW51ZX1pZigzPT09QWVbMF0mJighSnx8QWVbMV0+SlswXSYmQWVbMV08SlszXSkpe29lLmxhYmVsPUFlWzFdO2JyZWFrfWlmKDY9PT1BZVswXSYmb2UubGFiZWw8Slsx''@;'; + put 'put ''XSl7b2UubGFiZWw9SlsxXSxKPUFlO2JyZWFrfWlmKEomJm9lLmxhYmVsPEpbMl0pe29lLmxhYmVsPUpbMl0sb2Uub3BzLnB1c2goQWUpO2JyZWFrfUpbMl0mJm9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlfUFlPU4uY2FsbChXLG9lKX1jYXRjaChrZSl7QWU9WzYsa2VdLHE9''@;'; + put 'put ''MH1maW5hbGx5e2VlPUo9MH1pZig1JkFlWzBdKXRocm93IEFlWzFdO3JldHVybnt2YWx1ZTpBZVswXT9BZVsxXTp2b2lkIDAsZG9uZTohMH19KFtkZSx2ZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmlzV2luZG93cz1RLnVuaXFBcnJh''@;'; + put 'put ''eT1RLnV1aWR2ND1RLmFzeW5jRm9yRWFjaD12b2lkIDAsUS5hc3luY0ZvckVhY2g9ZnVuY3Rpb24oVyxOKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGVlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24ocSl7c3dpdGNoKHEubGFiZWwpe2Nhc2UgMDplZT0wLHEu''@;'; + put 'put ''bGFiZWw9MTtjYXNlIDE6cmV0dXJuIGVlPFcubGVuZ3RoP1s0LE4oV1tlZV0sZWUsVyldOlszLDRdO2Nhc2UgMjpxLnNlbnQoKSxxLmxhYmVsPTM7Y2FzZSAzOnJldHVybiBlZSsrLFszLDFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0sUS51dWlkdjQ9ZnVuY3Rpb24oKXtyZXR1cm4ieHh4eHh4''@;'; + put 'put ''eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csZnVuY3Rpb24oVyl7dmFyIE49MTYqTWF0aC5yYW5kb20oKXwwO3JldHVybigieCI9PVc/TjozJk58OCkudG9TdHJpbmcoMTYpfSl9LFEudW5pcUFycmF5PWZ1bmN0aW9uKFcpe3JldHVybiBBcnJheS5mcm9t''@;'; + put 'put ''KG5ldyBTZXQoVykpfSxRLmlzV2luZG93cz1mdW5jdGlvbigpe3JldHVybiJ3aW4zMiI9PT1pZS5wbGF0Zm9ybX19LDk4MDk6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1RO2llLmJpZ251bT1aKDQ1OTApLGllLmRlZmluZT1aKDI1MDApLmRlZmluZSxpZS5iYXNlPVooMTk3OSks''@;'; + put 'put ''aWUuY29uc3RhbnRzPVooNjgyNiksaWUuZGVjb2RlcnM9Wig4MzA3KSxpZS5lbmNvZGVycz1aKDY1NzkpfSwyNTAwOihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig2NTc5KSxsZT1aKDgzMDcpLFk9Wig1NzE3KTtmdW5jdGlvbiBXKE4sZWUpe3RoaXMubmFtZT1OLHRoaXMuYm9k''@;'; + put 'put ''eT1lZSx0aGlzLmRlY29kZXJzPXt9LHRoaXMuZW5jb2RlcnM9e319US5kZWZpbmU9ZnVuY3Rpb24oTixlZSl7cmV0dXJuIG5ldyBXKE4sZWUpfSxXLnByb3RvdHlwZS5fY3JlYXRlTmFtZWQ9ZnVuY3Rpb24oTil7Y29uc3QgZWU9dGhpcy5uYW1lO2Z1bmN0aW9uIHEoSil7dGhpcy5faW5pdE5h''@;'; + put 'put ''bWVkKEosZWUpfXJldHVybiBZKHEsTikscS5wcm90b3R5cGUuX2luaXROYW1lZD1mdW5jdGlvbihKLHNlKXtOLmNhbGwodGhpcyxKLHNlKX0sbmV3IHEodGhpcyl9LFcucHJvdG90eXBlLl9nZXREZWNvZGVyPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmRlY29kZXJzLmhhc093blByb3BlcnR5''@;'; + put 'put ''KE49Tnx8ImRlciIpfHwodGhpcy5kZWNvZGVyc1tOXT10aGlzLl9jcmVhdGVOYW1lZChsZVtOXSkpLHRoaXMuZGVjb2RlcnNbTl19LFcucHJvdG90eXBlLmRlY29kZT1mdW5jdGlvbihOLGVlLHEpe3JldHVybiB0aGlzLl9nZXREZWNvZGVyKGVlKS5kZWNvZGUoTixxKX0sVy5wcm90b3R5cGUu''@;'; + put 'put ''X2dldEVuY29kZXI9ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMuZW5jb2RlcnMuaGFzT3duUHJvcGVydHkoTj1OfHwiZGVyIil8fCh0aGlzLmVuY29kZXJzW05dPXRoaXMuX2NyZWF0ZU5hbWVkKGllW05dKSksdGhpcy5lbmNvZGVyc1tOXX0sVy5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKE4s''@;'; + put 'put ''ZWUscSl7cmV0dXJuIHRoaXMuX2dldEVuY29kZXIoZWUpLmVuY29kZShOLHEpfX0sNjYyNTooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNTcxNyksbGU9Wig4NDY1KS5iLFk9WigyMzk5KS5CdWZmZXI7ZnVuY3Rpb24gVyhlZSxxKXtsZS5jYWxsKHRoaXMscSksWS5pc0J1ZmZl''@;'; + put 'put ''cihlZSk/KHRoaXMuYmFzZT1lZSx0aGlzLm9mZnNldD0wLHRoaXMubGVuZ3RoPWVlLmxlbmd0aCk6dGhpcy5lcnJvcigiSW5wdXQgbm90IEJ1ZmZlciIpfWZ1bmN0aW9uIE4oZWUscSl7aWYoQXJyYXkuaXNBcnJheShlZSkpdGhpcy5sZW5ndGg9MCx0aGlzLnZhbHVlPWVlLm1hcChmdW5jdGlv''@;'; + put 'put ''bihKKXtyZXR1cm4gTi5pc0VuY29kZXJCdWZmZXIoSil8fChKPW5ldyBOKEoscSkpLHRoaXMubGVuZ3RoKz1KLmxlbmd0aCxKfSx0aGlzKTtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgZWUpe2lmKCEoMDw9ZWUmJmVlPD0yNTUpKXJldHVybiBxLmVycm9yKCJub24tYnl0ZSBFbmNvZGVyQnVm''@;'; + put 'put ''ZmVyIHZhbHVlIik7dGhpcy52YWx1ZT1lZSx0aGlzLmxlbmd0aD0xfWVsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlZSl0aGlzLnZhbHVlPWVlLHRoaXMubGVuZ3RoPVkuYnl0ZUxlbmd0aChlZSk7ZWxzZXtpZighWS5pc0J1ZmZlcihlZSkpcmV0dXJuIHEuZXJyb3IoIlVuc3VwcG9ydGVkIHR5''@;'; + put 'put ''cGU6ICIrdHlwZW9mIGVlKTt0aGlzLnZhbHVlPWVlLHRoaXMubGVuZ3RoPWVlLmxlbmd0aH19aWUoVyxsZSksUS5DPVcsVy5pc0RlY29kZXJCdWZmZXI9ZnVuY3Rpb24oZWUpe3JldHVybiBlZSBpbnN0YW5jZW9mIFd8fCJvYmplY3QiPT10eXBlb2YgZWUmJlkuaXNCdWZmZXIoZWUuYmFzZSkm''@;'; + put 'put ''JiJEZWNvZGVyQnVmZmVyIj09PWVlLmNvbnN0cnVjdG9yLm5hbWUmJiJudW1iZXIiPT10eXBlb2YgZWUub2Zmc2V0JiYibnVtYmVyIj09dHlwZW9mIGVlLmxlbmd0aCYmImZ1bmN0aW9uIj09dHlwZW9mIGVlLnNhdmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlZS5yZXN0b3JlJiYiZnVuY3Rpb24i''@;'; + put 'put ''PT10eXBlb2YgZWUuaXNFbXB0eSYmImZ1bmN0aW9uIj09dHlwZW9mIGVlLnJlYWRVSW50OCYmImZ1bmN0aW9uIj09dHlwZW9mIGVlLnNraXAmJiJmdW5jdGlvbiI9PXR5cGVvZiBlZS5yYXd9LFcucHJvdG90eXBlLnNhdmU9ZnVuY3Rpb24oKXtyZXR1cm57b2Zmc2V0OnRoaXMub2Zmc2V0LHJl''@;'; + put 'put ''cG9ydGVyOmxlLnByb3RvdHlwZS5zYXZlLmNhbGwodGhpcyl9fSxXLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKGVlKXtjb25zdCBxPW5ldyBXKHRoaXMuYmFzZSk7cmV0dXJuIHEub2Zmc2V0PWVlLm9mZnNldCxxLmxlbmd0aD10aGlzLm9mZnNldCx0aGlzLm9mZnNldD1lZS5vZmZzZXQs''@;'; + put 'put ''bGUucHJvdG90eXBlLnJlc3RvcmUuY2FsbCh0aGlzLGVlLnJlcG9ydGVyKSxxfSxXLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2Zmc2V0PT09dGhpcy5sZW5ndGh9LFcucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbihlZSl7cmV0dXJuIHRoaXMub2Zmc2V0''@;'; + put 'put ''KzE8PXRoaXMubGVuZ3RoP3RoaXMuYmFzZS5yZWFkVUludDgodGhpcy5vZmZzZXQrKywhMCk6dGhpcy5lcnJvcihlZXx8IkRlY29kZXJCdWZmZXIgb3ZlcnJ1biIpfSxXLnByb3RvdHlwZS5za2lwPWZ1bmN0aW9uKGVlLHEpe2lmKCEodGhpcy5vZmZzZXQrZWU8PXRoaXMubGVuZ3RoKSlyZXR1''@;'; + put 'put ''cm4gdGhpcy5lcnJvcihxfHwiRGVjb2RlckJ1ZmZlciBvdmVycnVuIik7Y29uc3QgSj1uZXcgVyh0aGlzLmJhc2UpO3JldHVybiBKLl9yZXBvcnRlclN0YXRlPXRoaXMuX3JlcG9ydGVyU3RhdGUsSi5vZmZzZXQ9dGhpcy5vZmZzZXQsSi5sZW5ndGg9dGhpcy5vZmZzZXQrZWUsdGhpcy5vZmZz''@;'; + put 'put ''ZXQrPWVlLEp9LFcucHJvdG90eXBlLnJhdz1mdW5jdGlvbihlZSl7cmV0dXJuIHRoaXMuYmFzZS5zbGljZShlZT9lZS5vZmZzZXQ6dGhpcy5vZmZzZXQsdGhpcy5sZW5ndGgpfSxRLlI9TixOLmlzRW5jb2RlckJ1ZmZlcj1mdW5jdGlvbihlZSl7cmV0dXJuIGVlIGluc3RhbmNlb2YgTnx8Im9i''@;'; + put 'put ''amVjdCI9PXR5cGVvZiBlZSYmIkVuY29kZXJCdWZmZXIiPT09ZWUuY29uc3RydWN0b3IubmFtZSYmIm51bWJlciI9PXR5cGVvZiBlZS5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBlZS5qb2lufSxOLnByb3RvdHlwZS5qb2luPWZ1bmN0aW9uKGVlLHEpe3JldHVybiBlZXx8KGVlPVkuYWxs''@;'; + put 'put ''b2ModGhpcy5sZW5ndGgpKSxxfHwocT0wKSwwPT09dGhpcy5sZW5ndGh8fChBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpP3RoaXMudmFsdWUuZm9yRWFjaChmdW5jdGlvbihKKXtKLmpvaW4oZWUscSkscSs9Si5sZW5ndGh9KTooIm51bWJlciI9PXR5cGVvZiB0aGlzLnZhbHVlP2VlW3FdPXRo''@;'; + put 'put ''aXMudmFsdWU6InN0cmluZyI9PXR5cGVvZiB0aGlzLnZhbHVlP2VlLndyaXRlKHRoaXMudmFsdWUscSk6WS5pc0J1ZmZlcih0aGlzLnZhbHVlKSYmdGhpcy52YWx1ZS5jb3B5KGVlLHEpLHErPXRoaXMubGVuZ3RoKSksZWV9fSwxOTc5OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9''@;'; + put 'put ''UTtpZS5SZXBvcnRlcj1aKDg0NjUpLmIsaWUuRGVjb2RlckJ1ZmZlcj1aKDY2MjUpLkMsaWUuRW5jb2RlckJ1ZmZlcj1aKDY2MjUpLlIsaWUuTm9kZT1aKDE5NDkpfSwxOTQ5OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig4NDY1KS5iLGxlPVooNjYyNSkuUixZPVooNjYyNSku''@;'; + put 'put ''QyxXPVooOTc0NiksTj1bInNlcSIsInNlcW9mIiwic2V0Iiwic2V0b2YiLCJvYmppZCIsImJvb2wiLCJnZW50aW1lIiwidXRjdGltZSIsIm51bGxfIiwiZW51bSIsImludCIsIm9iakRlc2MiLCJiaXRzdHIiLCJibXBzdHIiLCJjaGFyc3RyIiwiZ2Vuc3RyIiwiZ3JhcGhzdHIiLCJpYTVzdHIi''@;'; + put 'put ''LCJpc282NDZzdHIiLCJudW1zdHIiLCJvY3RzdHIiLCJwcmludHN0ciIsInQ2MXN0ciIsInVuaXN0ciIsInV0ZjhzdHIiLCJ2aWRlb3N0ciJdLGVlPVsia2V5Iiwib2JqIiwidXNlIiwib3B0aW9uYWwiLCJleHBsaWNpdCIsImltcGxpY2l0IiwiZGVmIiwiY2hvaWNlIiwiYW55IiwiY29udGFp''@;'; + put 'put ''bnMiXS5jb25jYXQoTik7ZnVuY3Rpb24gcShzZSxvZSxjZSl7Y29uc3QgZGU9e307dGhpcy5fYmFzZVN0YXRlPWRlLGRlLm5hbWU9Y2UsZGUuZW5jPXNlLGRlLnBhcmVudD1vZXx8bnVsbCxkZS5jaGlsZHJlbj1udWxsLGRlLnRhZz1udWxsLGRlLmFyZ3M9bnVsbCxkZS5yZXZlcnNlQXJncz1u''@;'; + put 'put ''dWxsLGRlLmNob2ljZT1udWxsLGRlLm9wdGlvbmFsPSExLGRlLmFueT0hMSxkZS5vYmo9ITEsZGUudXNlPW51bGwsZGUudXNlRGVjb2Rlcj1udWxsLGRlLmtleT1udWxsLGRlLmRlZmF1bHQ9bnVsbCxkZS5leHBsaWNpdD1udWxsLGRlLmltcGxpY2l0PW51bGwsZGUuY29udGFpbnM9bnVsbCxk''@;'; + put 'put ''ZS5wYXJlbnR8fChkZS5jaGlsZHJlbj1bXSx0aGlzLl93cmFwKCkpfVUuZXhwb3J0cz1xO2NvbnN0IEo9WyJlbmMiLCJwYXJlbnQiLCJjaGlsZHJlbiIsInRhZyIsImFyZ3MiLCJyZXZlcnNlQXJncyIsImNob2ljZSIsIm9wdGlvbmFsIiwiYW55Iiwib2JqIiwidXNlIiwiYWx0ZXJlZFVzZSIs''@;'; + put 'put ''ImtleSIsImRlZmF1bHQiLCJleHBsaWNpdCIsImltcGxpY2l0IiwiY29udGFpbnMiXTtxLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe2NvbnN0IHNlPXRoaXMuX2Jhc2VTdGF0ZSxvZT17fTtKLmZvckVhY2goZnVuY3Rpb24oZGUpe29lW2RlXT1zZVtkZV19KTtjb25zdCBjZT1uZXcgdGhp''@;'; + put 'put ''cy5jb25zdHJ1Y3RvcihvZS5wYXJlbnQpO3JldHVybiBjZS5fYmFzZVN0YXRlPW9lLGNlfSxxLnByb3RvdHlwZS5fd3JhcD1mdW5jdGlvbigpe2NvbnN0IHNlPXRoaXMuX2Jhc2VTdGF0ZTtlZS5mb3JFYWNoKGZ1bmN0aW9uKG9lKXt0aGlzW29lXT1mdW5jdGlvbigpe2NvbnN0IGNlPW5ldyB0''@;'; + put 'put ''aGlzLmNvbnN0cnVjdG9yKHRoaXMpO3JldHVybiBzZS5jaGlsZHJlbi5wdXNoKGNlKSxjZVtvZV0uYXBwbHkoY2UsYXJndW1lbnRzKX19LHRoaXMpfSxxLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihzZSl7Y29uc3Qgb2U9dGhpcy5fYmFzZVN0YXRlO1cobnVsbD09PW9lLnBhcmVudCksc2Uu''@;'; + put 'put ''Y2FsbCh0aGlzKSxvZS5jaGlsZHJlbj1vZS5jaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oY2Upe3JldHVybiBjZS5fYmFzZVN0YXRlLnBhcmVudD09PXRoaXN9LHRoaXMpLFcuZXF1YWwob2UuY2hpbGRyZW4ubGVuZ3RoLDEsIlJvb3Qgbm9kZSBjYW4gaGF2ZSBvbmx5IG9uZSBjaGlsZCIpfSxx''@;'; + put 'put ''LnByb3RvdHlwZS5fdXNlQXJncz1mdW5jdGlvbihzZSl7Y29uc3Qgb2U9dGhpcy5fYmFzZVN0YXRlLGNlPXNlLmZpbHRlcihmdW5jdGlvbihkZSl7cmV0dXJuIGRlIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcn0sdGhpcyk7c2U9c2UuZmlsdGVyKGZ1bmN0aW9uKGRlKXtyZXR1cm4hKGRl''@;'; + put 'put ''IGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcil9LHRoaXMpLDAhPT1jZS5sZW5ndGgmJihXKG51bGw9PT1vZS5jaGlsZHJlbiksb2UuY2hpbGRyZW49Y2UsY2UuZm9yRWFjaChmdW5jdGlvbihkZSl7ZGUuX2Jhc2VTdGF0ZS5wYXJlbnQ9dGhpc30sdGhpcykpLDAhPT1zZS5sZW5ndGgmJihX''@;'; + put 'put ''KG51bGw9PT1vZS5hcmdzKSxvZS5hcmdzPXNlLG9lLnJldmVyc2VBcmdzPXNlLm1hcChmdW5jdGlvbihkZSl7aWYoIm9iamVjdCIhPXR5cGVvZiBkZXx8ZGUuY29uc3RydWN0b3IhPT1PYmplY3QpcmV0dXJuIGRlO2NvbnN0IHZlPXt9O3JldHVybiBPYmplY3Qua2V5cyhkZSkuZm9yRWFjaChm''@;'; + put 'put ''dW5jdGlvbihBZSl7QWU9PSgwfEFlKSYmKEFlfD0wKSx2ZVtkZVtBZV1dPUFlfSksdmV9KSl9LFsiX3BlZWtUYWciLCJfZGVjb2RlVGFnIiwiX3VzZSIsIl9kZWNvZGVTdHIiLCJfZGVjb2RlT2JqaWQiLCJfZGVjb2RlVGltZSIsIl9kZWNvZGVOdWxsIiwiX2RlY29kZUludCIsIl9kZWNvZGVC''@;'; + put 'put ''b29sIiwiX2RlY29kZUxpc3QiLCJfZW5jb2RlQ29tcG9zaXRlIiwiX2VuY29kZVN0ciIsIl9lbmNvZGVPYmppZCIsIl9lbmNvZGVUaW1lIiwiX2VuY29kZU51bGwiLCJfZW5jb2RlSW50IiwiX2VuY29kZUJvb2wiXS5mb3JFYWNoKGZ1bmN0aW9uKHNlKXtxLnByb3RvdHlwZVtzZV09ZnVuY3Rp''@;'; + put 'put ''b24oKXt0aHJvdyBuZXcgRXJyb3Ioc2UrIiBub3QgaW1wbGVtZW50ZWQgZm9yIGVuY29kaW5nOiAiK3RoaXMuX2Jhc2VTdGF0ZS5lbmMpfX0pLE4uZm9yRWFjaChmdW5jdGlvbihzZSl7cS5wcm90b3R5cGVbc2VdPWZ1bmN0aW9uKCl7Y29uc3Qgb2U9dGhpcy5fYmFzZVN0YXRlLGNlPUFycmF5''@;'; + put 'put ''LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIFcobnVsbD09PW9lLnRhZyksb2UudGFnPXNlLHRoaXMuX3VzZUFyZ3MoY2UpLHRoaXN9fSkscS5wcm90b3R5cGUudXNlPWZ1bmN0aW9uKHNlKXtXKHNlKTtjb25zdCBvZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIFcobnVs''@;'; + put 'put ''bD09PW9lLnVzZSksb2UudXNlPXNlLHRoaXN9LHEucHJvdG90eXBlLm9wdGlvbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jhc2VTdGF0ZS5vcHRpb25hbD0hMCx0aGlzfSxxLnByb3RvdHlwZS5kZWY9ZnVuY3Rpb24oc2Upe2NvbnN0IG9lPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gVyhu''@;'; + put 'put ''dWxsPT09b2UuZGVmYXVsdCksb2UuZGVmYXVsdD1zZSxvZS5vcHRpb25hbD0hMCx0aGlzfSxxLnByb3RvdHlwZS5leHBsaWNpdD1mdW5jdGlvbihzZSl7Y29uc3Qgb2U9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBXKG51bGw9PT1vZS5leHBsaWNpdCYmbnVsbD09PW9lLmltcGxpY2l0KSxvZS5l''@;'; + put 'put ''eHBsaWNpdD1zZSx0aGlzfSxxLnByb3RvdHlwZS5pbXBsaWNpdD1mdW5jdGlvbihzZSl7Y29uc3Qgb2U9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBXKG51bGw9PT1vZS5leHBsaWNpdCYmbnVsbD09PW9lLmltcGxpY2l0KSxvZS5pbXBsaWNpdD1zZSx0aGlzfSxxLnByb3RvdHlwZS5vYmo9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtjb25zdCBzZT10aGlzLl9iYXNlU3RhdGUsb2U9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gc2Uub2JqPSEwLDAhPT1vZS5sZW5ndGgmJnRoaXMuX3VzZUFyZ3Mob2UpLHRoaXN9LHEucHJvdG90eXBlLmtleT1mdW5jdGlvbihzZSl7Y29uc3Qg''@;'; + put 'put ''b2U9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBXKG51bGw9PT1vZS5rZXkpLG9lLmtleT1zZSx0aGlzfSxxLnByb3RvdHlwZS5hbnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLmFueT0hMCx0aGlzfSxxLnByb3RvdHlwZS5jaG9pY2U9ZnVuY3Rpb24oc2Upe2NvbnN0IG9lPXRo''@;'; + put 'put ''aXMuX2Jhc2VTdGF0ZTtyZXR1cm4gVyhudWxsPT09b2UuY2hvaWNlKSxvZS5jaG9pY2U9c2UsdGhpcy5fdXNlQXJncyhPYmplY3Qua2V5cyhzZSkubWFwKGZ1bmN0aW9uKGNlKXtyZXR1cm4gc2VbY2VdfSkpLHRoaXN9LHEucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKHNlKXtjb25zdCBv''@;'; + put 'put ''ZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIFcobnVsbD09PW9lLnVzZSksb2UuY29udGFpbnM9c2UsdGhpc30scS5wcm90b3R5cGUuX2RlY29kZT1mdW5jdGlvbihzZSxvZSl7Y29uc3QgY2U9dGhpcy5fYmFzZVN0YXRlO2lmKG51bGw9PT1jZS5wYXJlbnQpcmV0dXJuIHNlLndyYXBSZXN1bHQo''@;'; + put 'put ''Y2UuY2hpbGRyZW5bMF0uX2RlY29kZShzZSxvZSkpO2xldCBkZSx2ZT1jZS5kZWZhdWx0LEFlPSEwLGtlPW51bGw7aWYobnVsbCE9PWNlLmtleSYmKGtlPXNlLmVudGVyS2V5KGNlLmtleSkpLGNlLm9wdGlvbmFsKXtsZXQgU2U9bnVsbDtpZihudWxsIT09Y2UuZXhwbGljaXQ/U2U9Y2UuZXhw''@;'; + put 'put ''bGljaXQ6bnVsbCE9PWNlLmltcGxpY2l0P1NlPWNlLmltcGxpY2l0Om51bGwhPT1jZS50YWcmJihTZT1jZS50YWcpLG51bGwhPT1TZXx8Y2UuYW55KXtpZihBZT10aGlzLl9wZWVrVGFnKHNlLFNlLGNlLmFueSksc2UuaXNFcnJvcihBZSkpcmV0dXJuIEFlfWVsc2V7Y29uc3QgSWU9c2Uuc2F2''@;'; + put 'put ''ZSgpO3RyeXtudWxsPT09Y2UuY2hvaWNlP3RoaXMuX2RlY29kZUdlbmVyaWMoY2UudGFnLHNlLG9lKTp0aGlzLl9kZWNvZGVDaG9pY2Uoc2Usb2UpLEFlPSEwfWNhdGNoKFRlKXtBZT0hMX1zZS5yZXN0b3JlKEllKX19aWYoY2Uub2JqJiZBZSYmKGRlPXNlLmVudGVyT2JqZWN0KCkpLEFlKXtp''@;'; + put 'put ''ZihudWxsIT09Y2UuZXhwbGljaXQpe2NvbnN0IEllPXRoaXMuX2RlY29kZVRhZyhzZSxjZS5leHBsaWNpdCk7aWYoc2UuaXNFcnJvcihJZSkpcmV0dXJuIEllO3NlPUllfWNvbnN0IFNlPXNlLm9mZnNldDtpZihudWxsPT09Y2UudXNlJiZudWxsPT09Y2UuY2hvaWNlKXtsZXQgSWU7Y2UuYW55''@;'; + put 'put ''JiYoSWU9c2Uuc2F2ZSgpKTtjb25zdCBUZT10aGlzLl9kZWNvZGVUYWcoc2UsbnVsbCE9PWNlLmltcGxpY2l0P2NlLmltcGxpY2l0OmNlLnRhZyxjZS5hbnkpO2lmKHNlLmlzRXJyb3IoVGUpKXJldHVybiBUZTtjZS5hbnk/dmU9c2UucmF3KEllKTpzZT1UZX1pZihvZSYmb2UudHJhY2smJm51''@;'; + put 'put ''bGwhPT1jZS50YWcmJm9lLnRyYWNrKHNlLnBhdGgoKSxTZSxzZS5sZW5ndGgsInRhZ2dlZCIpLG9lJiZvZS50cmFjayYmbnVsbCE9PWNlLnRhZyYmb2UudHJhY2soc2UucGF0aCgpLHNlLm9mZnNldCxzZS5sZW5ndGgsImNvbnRlbnQiKSxjZS5hbnl8fCh2ZT1udWxsPT09Y2UuY2hvaWNlP3Ro''@;'; + put 'put ''aXMuX2RlY29kZUdlbmVyaWMoY2UudGFnLHNlLG9lKTp0aGlzLl9kZWNvZGVDaG9pY2Uoc2Usb2UpKSxzZS5pc0Vycm9yKHZlKSlyZXR1cm4gdmU7aWYoY2UuYW55fHxudWxsIT09Y2UuY2hvaWNlfHxudWxsPT09Y2UuY2hpbGRyZW58fGNlLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oSWUp''@;'; + put 'put ''e0llLl9kZWNvZGUoc2Usb2UpfSksY2UuY29udGFpbnMmJigib2N0c3RyIj09PWNlLnRhZ3x8ImJpdHN0ciI9PT1jZS50YWcpKXtjb25zdCBJZT1uZXcgWSh2ZSk7dmU9dGhpcy5fZ2V0VXNlKGNlLmNvbnRhaW5zLHNlLl9yZXBvcnRlclN0YXRlLm9iaikuX2RlY29kZShJZSxvZSl9fXJldHVy''@;'; + put 'put ''biBjZS5vYmomJkFlJiYodmU9c2UubGVhdmVPYmplY3QoZGUpKSxudWxsPT09Y2Uua2V5fHxudWxsPT09dmUmJiEwIT09QWU/bnVsbCE9PWtlJiZzZS5leGl0S2V5KGtlKTpzZS5sZWF2ZUtleShrZSxjZS5rZXksdmUpLHZlfSxxLnByb3RvdHlwZS5fZGVjb2RlR2VuZXJpYz1mdW5jdGlvbihz''@;'; + put 'put ''ZSxvZSxjZSl7Y29uc3QgZGU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiJzZXEiPT09c2V8fCJzZXQiPT09c2U/bnVsbDoic2Vxb2YiPT09c2V8fCJzZXRvZiI9PT1zZT90aGlzLl9kZWNvZGVMaXN0KG9lLHNlLGRlLmFyZ3NbMF0sY2UpOi9zdHIkLy50ZXN0KHNlKT90aGlzLl9kZWNvZGVTdHIo''@;'; + put 'put ''b2Usc2UsY2UpOiJvYmppZCI9PT1zZSYmZGUuYXJncz90aGlzLl9kZWNvZGVPYmppZChvZSxkZS5hcmdzWzBdLGRlLmFyZ3NbMV0sY2UpOiJvYmppZCI9PT1zZT90aGlzLl9kZWNvZGVPYmppZChvZSxudWxsLG51bGwsY2UpOiJnZW50aW1lIj09PXNlfHwidXRjdGltZSI9PT1zZT90aGlzLl9k''@;'; + put 'put ''ZWNvZGVUaW1lKG9lLHNlLGNlKToibnVsbF8iPT09c2U/dGhpcy5fZGVjb2RlTnVsbChvZSxjZSk6ImJvb2wiPT09c2U/dGhpcy5fZGVjb2RlQm9vbChvZSxjZSk6Im9iakRlc2MiPT09c2U/dGhpcy5fZGVjb2RlU3RyKG9lLHNlLGNlKToiaW50Ij09PXNlfHwiZW51bSI9PT1zZT90aGlzLl9k''@;'; + put 'put ''ZWNvZGVJbnQob2UsZGUuYXJncyYmZGUuYXJnc1swXSxjZSk6bnVsbCE9PWRlLnVzZT90aGlzLl9nZXRVc2UoZGUudXNlLG9lLl9yZXBvcnRlclN0YXRlLm9iaikuX2RlY29kZShvZSxjZSk6b2UuZXJyb3IoInVua25vd24gdGFnOiAiK3NlKX0scS5wcm90b3R5cGUuX2dldFVzZT1mdW5jdGlv''@;'; + put 'put ''bihzZSxvZSl7Y29uc3QgY2U9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBjZS51c2VEZWNvZGVyPXRoaXMuX3VzZShzZSxvZSksVyhudWxsPT09Y2UudXNlRGVjb2Rlci5fYmFzZVN0YXRlLnBhcmVudCksY2UudXNlRGVjb2Rlcj1jZS51c2VEZWNvZGVyLl9iYXNlU3RhdGUuY2hpbGRyZW5bMF0s''@;'; + put 'put ''Y2UuaW1wbGljaXQhPT1jZS51c2VEZWNvZGVyLl9iYXNlU3RhdGUuaW1wbGljaXQmJihjZS51c2VEZWNvZGVyPWNlLnVzZURlY29kZXIuY2xvbmUoKSxjZS51c2VEZWNvZGVyLl9iYXNlU3RhdGUuaW1wbGljaXQ9Y2UuaW1wbGljaXQpLGNlLnVzZURlY29kZXJ9LHEucHJvdG90eXBlLl9kZWNv''@;'; + put 'put ''ZGVDaG9pY2U9ZnVuY3Rpb24oc2Usb2Upe2NvbnN0IGNlPXRoaXMuX2Jhc2VTdGF0ZTtsZXQgZGU9bnVsbCx2ZT0hMTtyZXR1cm4gT2JqZWN0LmtleXMoY2UuY2hvaWNlKS5zb21lKGZ1bmN0aW9uKEFlKXtjb25zdCBrZT1zZS5zYXZlKCksU2U9Y2UuY2hvaWNlW0FlXTt0cnl7Y29uc3QgSWU9''@;'; + put 'put ''U2UuX2RlY29kZShzZSxvZSk7aWYoc2UuaXNFcnJvcihJZSkpcmV0dXJuITE7ZGU9e3R5cGU6QWUsdmFsdWU6SWV9LHZlPSEwfWNhdGNoKEllKXtyZXR1cm4gc2UucmVzdG9yZShrZSksITF9cmV0dXJuITB9LHRoaXMpLHZlP2RlOnNlLmVycm9yKCJDaG9pY2Ugbm90IG1hdGNoZWQiKX0scS5w''@;'; + put 'put ''cm90b3R5cGUuX2NyZWF0ZUVuY29kZXJCdWZmZXI9ZnVuY3Rpb24oc2Upe3JldHVybiBuZXcgbGUoc2UsdGhpcy5yZXBvcnRlcil9LHEucHJvdG90eXBlLl9lbmNvZGU9ZnVuY3Rpb24oc2Usb2UsY2Upe2NvbnN0IGRlPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsIT09ZGUuZGVmYXVsdCYmZGUu''@;'; + put 'put ''ZGVmYXVsdD09PXNlKXJldHVybjtjb25zdCB2ZT10aGlzLl9lbmNvZGVWYWx1ZShzZSxvZSxjZSk7cmV0dXJuIHZvaWQgMD09PXZlfHx0aGlzLl9za2lwRGVmYXVsdCh2ZSxvZSxjZSk/dm9pZCAwOnZlfSxxLnByb3RvdHlwZS5fZW5jb2RlVmFsdWU9ZnVuY3Rpb24oc2Usb2UsY2Upe2NvbnN0''@;'; + put 'put ''IGRlPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09ZGUucGFyZW50KXJldHVybiBkZS5jaGlsZHJlblswXS5fZW5jb2RlKHNlLG9lfHxuZXcgaWUpO2xldCB2ZT1udWxsO2lmKHRoaXMucmVwb3J0ZXI9b2UsZGUub3B0aW9uYWwmJnZvaWQgMD09PXNlKXtpZihudWxsPT09ZGUuZGVmYXVsdCly''@;'; + put 'put ''ZXR1cm47c2U9ZGUuZGVmYXVsdH1sZXQgQWU9bnVsbCxrZT0hMTtpZihkZS5hbnkpdmU9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihzZSk7ZWxzZSBpZihkZS5jaG9pY2UpdmU9dGhpcy5fZW5jb2RlQ2hvaWNlKHNlLG9lKTtlbHNlIGlmKGRlLmNvbnRhaW5zKUFlPXRoaXMuX2dldFVzZShk''@;'; + put 'put ''ZS5jb250YWlucyxjZSkuX2VuY29kZShzZSxvZSksa2U9ITA7ZWxzZSBpZihkZS5jaGlsZHJlbilBZT1kZS5jaGlsZHJlbi5tYXAoZnVuY3Rpb24oU2Upe2lmKCJudWxsXyI9PT1TZS5fYmFzZVN0YXRlLnRhZylyZXR1cm4gU2UuX2VuY29kZShudWxsLG9lLHNlKTtpZihudWxsPT09U2UuX2Jh''@;'; + put 'put ''c2VTdGF0ZS5rZXkpcmV0dXJuIG9lLmVycm9yKCJDaGlsZCBzaG91bGQgaGF2ZSBhIGtleSIpO2NvbnN0IEllPW9lLmVudGVyS2V5KFNlLl9iYXNlU3RhdGUua2V5KTtpZigib2JqZWN0IiE9dHlwZW9mIHNlKXJldHVybiBvZS5lcnJvcigiQ2hpbGQgZXhwZWN0ZWQsIGJ1dCBpbnB1dCBpcyBu''@;'; + put 'put ''b3Qgb2JqZWN0Iik7Y29uc3QgVGU9U2UuX2VuY29kZShzZVtTZS5fYmFzZVN0YXRlLmtleV0sb2Usc2UpO3JldHVybiBvZS5sZWF2ZUtleShJZSksVGV9LHRoaXMpLmZpbHRlcihmdW5jdGlvbihTZSl7cmV0dXJuIFNlfSksQWU9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihBZSk7ZWxzZSBp''@;'; + put 'put ''Zigic2Vxb2YiPT09ZGUudGFnfHwic2V0b2YiPT09ZGUudGFnKXtpZighZGUuYXJnc3x8MSE9PWRlLmFyZ3MubGVuZ3RoKXJldHVybiBvZS5lcnJvcigiVG9vIG1hbnkgYXJncyBmb3IgOiAiK2RlLnRhZyk7aWYoIUFycmF5LmlzQXJyYXkoc2UpKXJldHVybiBvZS5lcnJvcigic2Vxb2Yvc2V0''@;'; + put 'put ''b2YsIGJ1dCBkYXRhIGlzIG5vdCBBcnJheSIpO2NvbnN0IFNlPXRoaXMuY2xvbmUoKTtTZS5fYmFzZVN0YXRlLmltcGxpY2l0PW51bGwsQWU9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihzZS5tYXAoZnVuY3Rpb24oSWUpe3JldHVybiB0aGlzLl9nZXRVc2UodGhpcy5fYmFzZVN0YXRlLmFy''@;'; + put 'put ''Z3NbMF0sc2UpLl9lbmNvZGUoSWUsb2UpfSxTZSkpfWVsc2UgbnVsbCE9PWRlLnVzZT92ZT10aGlzLl9nZXRVc2UoZGUudXNlLGNlKS5fZW5jb2RlKHNlLG9lKTooQWU9dGhpcy5fZW5jb2RlUHJpbWl0aXZlKGRlLnRhZyxzZSksa2U9ITApO2lmKCFkZS5hbnkmJm51bGw9PT1kZS5jaG9pY2Up''@;'; + put 'put ''e2NvbnN0IFNlPW51bGwhPT1kZS5pbXBsaWNpdD9kZS5pbXBsaWNpdDpkZS50YWcsSWU9bnVsbD09PWRlLmltcGxpY2l0PyJ1bml2ZXJzYWwiOiJjb250ZXh0IjtudWxsPT09U2U/bnVsbD09PWRlLnVzZSYmb2UuZXJyb3IoIlRhZyBjb3VsZCBiZSBvbWl0dGVkIG9ubHkgZm9yIC51c2UoKSIp''@;'; + put 'put ''Om51bGw9PT1kZS51c2UmJih2ZT10aGlzLl9lbmNvZGVDb21wb3NpdGUoU2Usa2UsSWUsQWUpKX1yZXR1cm4gbnVsbCE9PWRlLmV4cGxpY2l0JiYodmU9dGhpcy5fZW5jb2RlQ29tcG9zaXRlKGRlLmV4cGxpY2l0LCExLCJjb250ZXh0Iix2ZSkpLHZlfSxxLnByb3RvdHlwZS5fZW5jb2RlQ2hv''@;'; + put 'put ''aWNlPWZ1bmN0aW9uKHNlLG9lKXtjb25zdCBjZT10aGlzLl9iYXNlU3RhdGUsZGU9Y2UuY2hvaWNlW3NlLnR5cGVdO3JldHVybiBkZXx8VyghMSxzZS50eXBlKyIgbm90IGZvdW5kIGluICIrSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXMoY2UuY2hvaWNlKSkpLGRlLl9lbmNvZGUoc2UudmFs''@;'; + put 'put ''dWUsb2UpfSxxLnByb3RvdHlwZS5fZW5jb2RlUHJpbWl0aXZlPWZ1bmN0aW9uKHNlLG9lKXtjb25zdCBjZT10aGlzLl9iYXNlU3RhdGU7aWYoL3N0ciQvLnRlc3Qoc2UpKXJldHVybiB0aGlzLl9lbmNvZGVTdHIob2Usc2UpO2lmKCJvYmppZCI9PT1zZSYmY2UuYXJncylyZXR1cm4gdGhpcy5f''@;'; + put 'put ''ZW5jb2RlT2JqaWQob2UsY2UucmV2ZXJzZUFyZ3NbMF0sY2UuYXJnc1sxXSk7aWYoIm9iamlkIj09PXNlKXJldHVybiB0aGlzLl9lbmNvZGVPYmppZChvZSxudWxsLG51bGwpO2lmKCJnZW50aW1lIj09PXNlfHwidXRjdGltZSI9PT1zZSlyZXR1cm4gdGhpcy5fZW5jb2RlVGltZShvZSxzZSk7''@;'; + put 'put ''aWYoIm51bGxfIj09PXNlKXJldHVybiB0aGlzLl9lbmNvZGVOdWxsKCk7aWYoImludCI9PT1zZXx8ImVudW0iPT09c2UpcmV0dXJuIHRoaXMuX2VuY29kZUludChvZSxjZS5hcmdzJiZjZS5yZXZlcnNlQXJnc1swXSk7aWYoImJvb2wiPT09c2UpcmV0dXJuIHRoaXMuX2VuY29kZUJvb2wob2Up''@;'; + put 'put ''O2lmKCJvYmpEZXNjIj09PXNlKXJldHVybiB0aGlzLl9lbmNvZGVTdHIob2Usc2UpO3Rocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdGFnOiAiK3NlKX0scS5wcm90b3R5cGUuX2lzTnVtc3RyPWZ1bmN0aW9uKHNlKXtyZXR1cm4vXlswLTkgXSokLy50ZXN0KHNlKX0scS5wcm90b3R5cGUu''@;'; + put 'put ''X2lzUHJpbnRzdHI9ZnVuY3Rpb24oc2Upe3JldHVybi9eW0EtWmEtejAtOSAnKCkrLC0uLzo9P10qJC8udGVzdChzZSl9fSw4NDY1OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig1NzE3KTtmdW5jdGlvbiBsZShXKXt0aGlzLl9yZXBvcnRlclN0YXRlPXtvYmo6bnVsbCxwYXRo''@;'; + put 'put ''OltdLG9wdGlvbnM6V3x8e30sZXJyb3JzOltdfX1mdW5jdGlvbiBZKFcsTil7dGhpcy5wYXRoPVcsdGhpcy5yZXRocm93KE4pfVEuYj1sZSxsZS5wcm90b3R5cGUuaXNFcnJvcj1mdW5jdGlvbihXKXtyZXR1cm4gVyBpbnN0YW5jZW9mIFl9LGxlLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKCl7''@;'; + put 'put ''Y29uc3QgVz10aGlzLl9yZXBvcnRlclN0YXRlO3JldHVybntvYmo6Vy5vYmoscGF0aExlbjpXLnBhdGgubGVuZ3RofX0sbGUucHJvdG90eXBlLnJlc3RvcmU9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9yZXBvcnRlclN0YXRlO04ub2JqPVcub2JqLE4ucGF0aD1OLnBhdGguc2xpY2UoMCxX''@;'; + put 'put ''LnBhdGhMZW4pfSxsZS5wcm90b3R5cGUuZW50ZXJLZXk9ZnVuY3Rpb24oVyl7cmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5wdXNoKFcpfSxsZS5wcm90b3R5cGUuZXhpdEtleT1mdW5jdGlvbihXKXtjb25zdCBOPXRoaXMuX3JlcG9ydGVyU3RhdGU7Ti5wYXRoPU4ucGF0aC5zbGlj''@;'; + put 'put ''ZSgwLFctMSl9LGxlLnByb3RvdHlwZS5sZWF2ZUtleT1mdW5jdGlvbihXLE4sZWUpe2NvbnN0IHE9dGhpcy5fcmVwb3J0ZXJTdGF0ZTt0aGlzLmV4aXRLZXkoVyksbnVsbCE9PXEub2JqJiYocS5vYmpbTl09ZWUpfSxsZS5wcm90b3R5cGUucGF0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9y''@;'; + put 'put ''ZXBvcnRlclN0YXRlLnBhdGguam9pbigiLyIpfSxsZS5wcm90b3R5cGUuZW50ZXJPYmplY3Q9ZnVuY3Rpb24oKXtjb25zdCBXPXRoaXMuX3JlcG9ydGVyU3RhdGUsTj1XLm9iajtyZXR1cm4gVy5vYmo9e30sTn0sbGUucHJvdG90eXBlLmxlYXZlT2JqZWN0PWZ1bmN0aW9uKFcpe2NvbnN0IE49''@;'; + put 'put ''dGhpcy5fcmVwb3J0ZXJTdGF0ZSxlZT1OLm9iajtyZXR1cm4gTi5vYmo9VyxlZX0sbGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKFcpe2xldCBOO2NvbnN0IGVlPXRoaXMuX3JlcG9ydGVyU3RhdGUscT1XIGluc3RhbmNlb2YgWTtpZihOPXE/VzpuZXcgWShlZS5wYXRoLm1hcChmdW5jdGlv''@;'; + put 'put ''bihKKXtyZXR1cm4iWyIrSlNPTi5zdHJpbmdpZnkoSikrIl0ifSkuam9pbigiIiksVy5tZXNzYWdlfHxXLFcuc3RhY2spLCFlZS5vcHRpb25zLnBhcnRpYWwpdGhyb3cgTjtyZXR1cm4gcXx8ZWUuZXJyb3JzLnB1c2goTiksTn0sbGUucHJvdG90eXBlLndyYXBSZXN1bHQ9ZnVuY3Rpb24oVyl7''@;'; + put 'put ''Y29uc3QgTj10aGlzLl9yZXBvcnRlclN0YXRlO3JldHVybiBOLm9wdGlvbnMucGFydGlhbD97cmVzdWx0OnRoaXMuaXNFcnJvcihXKT9udWxsOlcsZXJyb3JzOk4uZXJyb3JzfTpXfSxpZShZLEVycm9yKSxZLnByb3RvdHlwZS5yZXRocm93PWZ1bmN0aW9uKFcpe2lmKHRoaXMubWVzc2FnZT1X''@;'; + put 'put ''KyIgYXQ6ICIrKHRoaXMucGF0aHx8IihzaGFsbG93KSIpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLFkpLCF0aGlzLnN0YWNrKXRyeXt0aHJvdyBuZXcgRXJyb3IodGhpcy5tZXNzYWdlKX1jYXRjaChOKXt0aGlzLnN0YWNrPU4uc3RhY2t9''@;'; + put 'put ''cmV0dXJuIHRoaXN9fSwxNjA6KFUsUSk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gWihpZSl7Y29uc3QgbGU9e307cmV0dXJuIE9iamVjdC5rZXlzKGllKS5mb3JFYWNoKGZ1bmN0aW9uKFkpeygwfFkpPT1ZJiYoWXw9MCksbGVbaWVbWV1dPVl9KSxsZX1RLnRhZ0NsYXNzPXswOiJ1bml2ZXJz''@;'; + put 'put ''YWwiLDE6ImFwcGxpY2F0aW9uIiwyOiJjb250ZXh0IiwzOiJwcml2YXRlIn0sUS50YWdDbGFzc0J5TmFtZT1aKFEudGFnQ2xhc3MpLFEudGFnPXswOiJlbmQiLDE6ImJvb2wiLDI6ImludCIsMzoiYml0c3RyIiw0OiJvY3RzdHIiLDU6Im51bGxfIiw2OiJvYmppZCIsNzoib2JqRGVzYyIsODoi''@;'; + put 'put ''ZXh0ZXJuYWwiLDk6InJlYWwiLDEwOiJlbnVtIiwxMToiZW1iZWQiLDEyOiJ1dGY4c3RyIiwxMzoicmVsYXRpdmVPaWQiLDE2OiJzZXEiLDE3OiJzZXQiLDE4OiJudW1zdHIiLDE5OiJwcmludHN0ciIsMjA6InQ2MXN0ciIsMjE6InZpZGVvc3RyIiwyMjoiaWE1c3RyIiwyMzoidXRjdGltZSIs''@;'; + put 'put ''MjQ6ImdlbnRpbWUiLDI1OiJncmFwaHN0ciIsMjY6ImlzbzY0NnN0ciIsMjc6ImdlbnN0ciIsMjg6InVuaXN0ciIsMjk6ImNoYXJzdHIiLDMwOiJibXBzdHIifSxRLnRhZ0J5TmFtZT1aKFEudGFnKX0sNjgyNjooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVE7aWUuX3JldmVyc2U9''@;'; + put 'put ''ZnVuY3Rpb24obGUpe2NvbnN0IFk9e307cmV0dXJuIE9iamVjdC5rZXlzKGxlKS5mb3JFYWNoKGZ1bmN0aW9uKFcpeygwfFcpPT1XJiYoV3w9MCksWVtsZVtXXV09V30pLFl9LGllLmRlcj1aKDE2MCl9LDE2NzE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDU3MTcpLGxlPVoo''@;'; + put 'put ''NDU5MCksWT1aKDY2MjUpLkMsVz1aKDE5NDkpLE49WigxNjApO2Z1bmN0aW9uIGVlKG9lKXt0aGlzLmVuYz0iZGVyIix0aGlzLm5hbWU9b2UubmFtZSx0aGlzLmVudGl0eT1vZSx0aGlzLnRyZWU9bmV3IHEsdGhpcy50cmVlLl9pbml0KG9lLmJvZHkpfWZ1bmN0aW9uIHEob2Upe1cuY2FsbCh0''@;'; + put 'put ''aGlzLCJkZXIiLG9lKX1mdW5jdGlvbiBKKG9lLGNlKXtsZXQgZGU9b2UucmVhZFVJbnQ4KGNlKTtpZihvZS5pc0Vycm9yKGRlKSlyZXR1cm4gZGU7Y29uc3QgdmU9Ti50YWdDbGFzc1tkZT4+Nl0sQWU9MD09KDMyJmRlKTtpZigzMT09KDMxJmRlKSl7bGV0IGtlPWRlO2ZvcihkZT0wOzEyOD09''@;'; + put 'put ''KDEyOCZrZSk7KXtpZihrZT1vZS5yZWFkVUludDgoY2UpLG9lLmlzRXJyb3Ioa2UpKXJldHVybiBrZTtkZTw8PTcsZGV8PTEyNyZrZX19ZWxzZSBkZSY9MzE7cmV0dXJue2Nsczp2ZSxwcmltaXRpdmU6QWUsdGFnOmRlLHRhZ1N0cjpOLnRhZ1tkZV19fWZ1bmN0aW9uIHNlKG9lLGNlLGRlKXts''@;'; + put 'put ''ZXQgdmU9b2UucmVhZFVJbnQ4KGRlKTtpZihvZS5pc0Vycm9yKHZlKSlyZXR1cm4gdmU7aWYoIWNlJiYxMjg9PT12ZSlyZXR1cm4gbnVsbDtpZigwPT0oMTI4JnZlKSlyZXR1cm4gdmU7Y29uc3QgQWU9MTI3JnZlO2lmKEFlPjQpcmV0dXJuIG9lLmVycm9yKCJsZW5ndGggb2N0ZWN0IGlzIHRv''@;'; + put 'put ''byBsb25nIik7dmU9MDtmb3IobGV0IGtlPTA7a2U8QWU7a2UrKyl7dmU8PD04O2NvbnN0IFNlPW9lLnJlYWRVSW50OChkZSk7aWYob2UuaXNFcnJvcihTZSkpcmV0dXJuIFNlO3ZlfD1TZX1yZXR1cm4gdmV9VS5leHBvcnRzPWVlLGVlLnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24ob2UsY2Up''@;'; + put 'put ''e3JldHVybiBZLmlzRGVjb2RlckJ1ZmZlcihvZSl8fChvZT1uZXcgWShvZSxjZSkpLHRoaXMudHJlZS5fZGVjb2RlKG9lLGNlKX0saWUocSxXKSxxLnByb3RvdHlwZS5fcGVla1RhZz1mdW5jdGlvbihvZSxjZSxkZSl7aWYob2UuaXNFbXB0eSgpKXJldHVybiExO2NvbnN0IHZlPW9lLnNhdmUo''@;'; + put 'put ''KSxBZT1KKG9lLCdGYWlsZWQgdG8gcGVlayB0YWc6ICInK2NlKyciJyk7cmV0dXJuIG9lLmlzRXJyb3IoQWUpP0FlOihvZS5yZXN0b3JlKHZlKSxBZS50YWc9PT1jZXx8QWUudGFnU3RyPT09Y2V8fEFlLnRhZ1N0cisib2YiPT09Y2V8fGRlKX0scS5wcm90b3R5cGUuX2RlY29kZVRhZz1mdW5j''@;'; + put 'put ''dGlvbihvZSxjZSxkZSl7Y29uc3QgdmU9SihvZSwnRmFpbGVkIHRvIGRlY29kZSB0YWcgb2YgIicrY2UrJyInKTtpZihvZS5pc0Vycm9yKHZlKSlyZXR1cm4gdmU7bGV0IEFlPXNlKG9lLHZlLnByaW1pdGl2ZSwnRmFpbGVkIHRvIGdldCBsZW5ndGggb2YgIicrY2UrJyInKTtpZihvZS5pc0Vy''@;'; + put 'put ''cm9yKEFlKSlyZXR1cm4gQWU7aWYoIWRlJiZ2ZS50YWchPT1jZSYmdmUudGFnU3RyIT09Y2UmJnZlLnRhZ1N0cisib2YiIT09Y2UpcmV0dXJuIG9lLmVycm9yKCdGYWlsZWQgdG8gbWF0Y2ggdGFnOiAiJytjZSsnIicpO2lmKHZlLnByaW1pdGl2ZXx8bnVsbCE9PUFlKXJldHVybiBvZS5za2lw''@;'; + put 'put ''KEFlLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogIicrY2UrJyInKTtjb25zdCBrZT1vZS5zYXZlKCksU2U9dGhpcy5fc2tpcFVudGlsRW5kKG9lLCdGYWlsZWQgdG8gc2tpcCBpbmRlZmluaXRlIGxlbmd0aCBib2R5OiAiJyt0aGlzLnRhZysnIicpO3JldHVybiBvZS5pc0Vycm9yKFNlKT9T''@;'; + put 'put ''ZTooQWU9b2Uub2Zmc2V0LWtlLm9mZnNldCxvZS5yZXN0b3JlKGtlKSxvZS5za2lwKEFlLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogIicrY2UrJyInKSl9LHEucHJvdG90eXBlLl9za2lwVW50aWxFbmQ9ZnVuY3Rpb24ob2UsY2Upe2Zvcig7Oyl7Y29uc3QgZGU9SihvZSxjZSk7aWYob2Uu''@;'; + put 'put ''aXNFcnJvcihkZSkpcmV0dXJuIGRlO2NvbnN0IHZlPXNlKG9lLGRlLnByaW1pdGl2ZSxjZSk7aWYob2UuaXNFcnJvcih2ZSkpcmV0dXJuIHZlO2xldCBBZTtpZihBZT1kZS5wcmltaXRpdmV8fG51bGwhPT12ZT9vZS5za2lwKHZlKTp0aGlzLl9za2lwVW50aWxFbmQob2UsY2UpLG9lLmlzRXJy''@;'; + put 'put ''b3IoQWUpKXJldHVybiBBZTtpZigiZW5kIj09PWRlLnRhZ1N0cilicmVha319LHEucHJvdG90eXBlLl9kZWNvZGVMaXN0PWZ1bmN0aW9uKG9lLGNlLGRlLHZlKXtjb25zdCBBZT1bXTtmb3IoOyFvZS5pc0VtcHR5KCk7KXtjb25zdCBrZT10aGlzLl9wZWVrVGFnKG9lLCJlbmQiKTtpZihvZS5p''@;'; + put 'put ''c0Vycm9yKGtlKSlyZXR1cm4ga2U7Y29uc3QgU2U9ZGUuZGVjb2RlKG9lLCJkZXIiLHZlKTtpZihvZS5pc0Vycm9yKFNlKSYma2UpYnJlYWs7QWUucHVzaChTZSl9cmV0dXJuIEFlfSxxLnByb3RvdHlwZS5fZGVjb2RlU3RyPWZ1bmN0aW9uKG9lLGNlKXtpZigiYml0c3RyIj09PWNlKXtjb25z''@;'; + put 'put ''dCBkZT1vZS5yZWFkVUludDgoKTtyZXR1cm4gb2UuaXNFcnJvcihkZSk/ZGU6e3VudXNlZDpkZSxkYXRhOm9lLnJhdygpfX1pZigiYm1wc3RyIj09PWNlKXtjb25zdCBkZT1vZS5yYXcoKTtpZihkZS5sZW5ndGglMj09MSlyZXR1cm4gb2UuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBl''@;'; + put 'put ''OiBibXBzdHIgbGVuZ3RoIG1pc21hdGNoIik7bGV0IHZlPSIiO2ZvcihsZXQgQWU9MDtBZTxkZS5sZW5ndGgvMjtBZSsrKXZlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGRlLnJlYWRVSW50MTZCRSgyKkFlKSk7cmV0dXJuIHZlfWlmKCJudW1zdHIiPT09Y2Upe2NvbnN0IGRlPW9lLnJhdygpLnRv''@;'; + put 'put ''U3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc051bXN0cihkZSk/ZGU6b2UuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBudW1zdHIgdW5zdXBwb3J0ZWQgY2hhcmFjdGVycyIpfWlmKCJvY3RzdHIiPT09Y2V8fCJvYmpEZXNjIj09PWNlKXJldHVybiBvZS5yYXcoKTtpZigi''@;'; + put 'put ''cHJpbnRzdHIiPT09Y2Upe2NvbnN0IGRlPW9lLnJhdygpLnRvU3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc1ByaW50c3RyKGRlKT9kZTpvZS5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHVuc3VwcG9ydGVkIGNoYXJhY3RlcnMiKX1yZXR1cm4vc3RyJC8u''@;'; + put 'put ''dGVzdChjZSk/b2UucmF3KCkudG9TdHJpbmcoKTpvZS5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6ICIrY2UrIiB1bnN1cHBvcnRlZCIpfSxxLnByb3RvdHlwZS5fZGVjb2RlT2JqaWQ9ZnVuY3Rpb24ob2UsY2UsZGUpe2xldCB2ZTtjb25zdCBBZT1bXTtsZXQga2U9MCxTZT0wO2Zv''@;'; + put 'put ''cig7IW9lLmlzRW1wdHkoKTspU2U9b2UucmVhZFVJbnQ4KCksa2U8PD03LGtlfD0xMjcmU2UsMD09KDEyOCZTZSkmJihBZS5wdXNoKGtlKSxrZT0wKTtpZigxMjgmU2UmJkFlLnB1c2goa2UpLHZlPWRlP0FlOltBZVswXS80MHwwLEFlWzBdJTQwXS5jb25jYXQoQWUuc2xpY2UoMSkpLGNlKXts''@;'; + put 'put ''ZXQgRWU9Y2VbdmUuam9pbigiICIpXTt2b2lkIDA9PT1FZSYmKEVlPWNlW3ZlLmpvaW4oIi4iKV0pLHZvaWQgMCE9PUVlJiYodmU9RWUpfXJldHVybiB2ZX0scS5wcm90b3R5cGUuX2RlY29kZVRpbWU9ZnVuY3Rpb24ob2UsY2Upe2NvbnN0IGRlPW9lLnJhdygpLnRvU3RyaW5nKCk7bGV0IHZl''@;'; + put 'put ''LEFlLGtlLFNlLEllLFRlO2lmKCJnZW50aW1lIj09PWNlKXZlPTB8ZGUuc2xpY2UoMCw0KSxBZT0wfGRlLnNsaWNlKDQsNiksa2U9MHxkZS5zbGljZSg2LDgpLFNlPTB8ZGUuc2xpY2UoOCwxMCksSWU9MHxkZS5zbGljZSgxMCwxMiksVGU9MHxkZS5zbGljZSgxMiwxNCk7ZWxzZXtpZigidXRj''@;'; + put 'put ''dGltZSIhPT1jZSlyZXR1cm4gb2UuZXJyb3IoIkRlY29kaW5nICIrY2UrIiB0aW1lIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Iik7dmU9MHxkZS5zbGljZSgwLDIpLEFlPTB8ZGUuc2xpY2UoMiw0KSxrZT0wfGRlLnNsaWNlKDQsNiksU2U9MHxkZS5zbGljZSg2LDgpLEllPTB8ZGUuc2xpY2UoOCwx''@;'; + put 'put ''MCksVGU9MHxkZS5zbGljZSgxMCwxMiksdmU9dmU8NzA/MmUzK3ZlOjE5MDArdmV9cmV0dXJuIERhdGUuVVRDKHZlLEFlLTEsa2UsU2UsSWUsVGUsMCl9LHEucHJvdG90eXBlLl9kZWNvZGVOdWxsPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LHEucHJvdG90eXBlLl9kZWNvZGVCb29sPWZ1bmN0''@;'; + put 'put ''aW9uKG9lKXtjb25zdCBjZT1vZS5yZWFkVUludDgoKTtyZXR1cm4gb2UuaXNFcnJvcihjZSk/Y2U6MCE9PWNlfSxxLnByb3RvdHlwZS5fZGVjb2RlSW50PWZ1bmN0aW9uKG9lLGNlKXtjb25zdCBkZT1vZS5yYXcoKTtsZXQgdmU9bmV3IGxlKGRlKTtyZXR1cm4gY2UmJih2ZT1jZVt2ZS50b1N0''@;'; + put 'put ''cmluZygxMCldfHx2ZSksdmV9LHEucHJvdG90eXBlLl91c2U9ZnVuY3Rpb24ob2UsY2Upe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBvZSYmKG9lPW9lKGNlKSksb2UuX2dldERlY29kZXIoImRlciIpLnRyZWV9fSw4MzA3OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9UTtpZS5k''@;'; + put 'put ''ZXI9WigxNjcxKSxpZS5wZW09Wig5NjMxKX0sOTYzMTooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNTcxNyksbGU9WigyMzk5KS5CdWZmZXIsWT1aKDE2NzEpO2Z1bmN0aW9uIFcoTil7WS5jYWxsKHRoaXMsTiksdGhpcy5lbmM9InBlbSJ9aWUoVyxZKSxVLmV4cG9ydHM9VyxX''@;'; + put 'put ''LnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24oTixlZSl7Y29uc3QgcT1OLnRvU3RyaW5nKCkuc3BsaXQoL1tcclxuXSsvZyksSj1lZS5sYWJlbC50b1VwcGVyQ2FzZSgpLHNlPS9eLS0tLS0oQkVHSU58RU5EKSAoW14tXSspLS0tLS0kLztsZXQgb2U9LTEsY2U9LTE7Zm9yKGxldCBBZT0wO0Fl''@;'; + put 'put ''PHEubGVuZ3RoO0FlKyspe2NvbnN0IGtlPXFbQWVdLm1hdGNoKHNlKTtpZihudWxsIT09a2UmJmtlWzJdPT09Sil7aWYoLTEhPT1vZSl7aWYoIkVORCIhPT1rZVsxXSlicmVhaztjZT1BZTticmVha31pZigiQkVHSU4iIT09a2VbMV0pYnJlYWs7b2U9QWV9fWlmKC0xPT09b2V8fC0xPT09Y2Up''@;'; + put 'put ''dGhyb3cgbmV3IEVycm9yKCJQRU0gc2VjdGlvbiBub3QgZm91bmQgZm9yOiAiK0opO2NvbnN0IGRlPXEuc2xpY2Uob2UrMSxjZSkuam9pbigiIik7ZGUucmVwbGFjZSgvW15hLXowLTkrLz1dKy9naSwiIik7Y29uc3QgdmU9bGUuZnJvbShkZSwiYmFzZTY0Iik7cmV0dXJuIFkucHJvdG90eXBl''@;'; + put 'put ''LmRlY29kZS5jYWxsKHRoaXMsdmUsZWUpfX0sNjk4NDooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNTcxNyksbGU9WigyMzk5KS5CdWZmZXIsWT1aKDE5NDkpLFc9WigxNjApO2Z1bmN0aW9uIE4oSil7dGhpcy5lbmM9ImRlciIsdGhpcy5uYW1lPUoubmFtZSx0aGlzLmVudGl0''@;'; + put 'put ''eT1KLHRoaXMudHJlZT1uZXcgZWUsdGhpcy50cmVlLl9pbml0KEouYm9keSl9ZnVuY3Rpb24gZWUoSil7WS5jYWxsKHRoaXMsImRlciIsSil9ZnVuY3Rpb24gcShKKXtyZXR1cm4gSjwxMD8iMCIrSjpKfVUuZXhwb3J0cz1OLE4ucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihKLHNlKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy50cmVlLl9lbmNvZGUoSixzZSkuam9pbigpfSxpZShlZSxZKSxlZS5wcm90b3R5cGUuX2VuY29kZUNvbXBvc2l0ZT1mdW5jdGlvbihKLHNlLG9lLGNlKXtjb25zdCBkZT1mdW5jdGlvbihrZSxTZSxJZSxUZSl7bGV0IEVlO2lmKCJzZXFvZiI9PT1rZT9rZT0ic2VxIjoic2V0b2Yi''@;'; + put 'put ''PT09a2UmJihrZT0ic2V0IiksVy50YWdCeU5hbWUuaGFzT3duUHJvcGVydHkoa2UpKUVlPVcudGFnQnlOYW1lW2tlXTtlbHNle2lmKCJudW1iZXIiIT10eXBlb2Yga2V8fCgwfGtlKSE9PWtlKXJldHVybiBUZS5lcnJvcigiVW5rbm93biB0YWc6ICIra2UpO0VlPWtlfXJldHVybiBFZT49MzE/''@;'; + put 'put ''VGUuZXJyb3IoIk11bHRpLW9jdGV0IHRhZyBlbmNvZGluZyB1bnN1cHBvcnRlZCIpOihTZXx8KEVlfD0zMiksRWV8PVcudGFnQ2xhc3NCeU5hbWVbSWV8fCJ1bml2ZXJzYWwiXTw8NixFZSl9KEosc2Usb2UsdGhpcy5yZXBvcnRlcik7aWYoY2UubGVuZ3RoPDEyOCl7Y29uc3Qga2U9bGUuYWxs''@;'; + put 'put ''b2MoMik7cmV0dXJuIGtlWzBdPWRlLGtlWzFdPWNlLmxlbmd0aCx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFtrZSxjZV0pfWxldCB2ZT0xO2ZvcihsZXQga2U9Y2UubGVuZ3RoO2tlPj0yNTY7a2U+Pj04KXZlKys7Y29uc3QgQWU9bGUuYWxsb2MoMit2ZSk7QWVbMF09ZGUsQWVbMV09MTI4''@;'; + put 'put ''fHZlO2ZvcihsZXQga2U9MSt2ZSxTZT1jZS5sZW5ndGg7U2U+MDtrZS0tLFNlPj49OClBZVtrZV09MjU1JlNlO3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFtBZSxjZV0pfSxlZS5wcm90b3R5cGUuX2VuY29kZVN0cj1mdW5jdGlvbihKLHNlKXtpZigiYml0c3RyIj09PXNlKXJl''@;'; + put 'put ''dHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFswfEoudW51c2VkLEouZGF0YV0pO2lmKCJibXBzdHIiPT09c2Upe2NvbnN0IG9lPWxlLmFsbG9jKDIqSi5sZW5ndGgpO2ZvcihsZXQgY2U9MDtjZTxKLmxlbmd0aDtjZSsrKW9lLndyaXRlVUludDE2QkUoSi5jaGFyQ29kZUF0KGNlKSwy''@;'; + put 'put ''KmNlKTtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihvZSl9cmV0dXJuIm51bXN0ciI9PT1zZT90aGlzLl9pc051bXN0cihKKT90aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEopOnRoaXMucmVwb3J0ZXIuZXJyb3IoIkVuY29kaW5nIG9mIHN0cmluZyB0eXBlOiBudW1zdHIgc3Vw''@;'; + put 'put ''cG9ydHMgb25seSBkaWdpdHMgYW5kIHNwYWNlIik6InByaW50c3RyIj09PXNlP3RoaXMuX2lzUHJpbnRzdHIoSik/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihKKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogcHJpbnRzdHIgc3VwcG9ydHMgb25seSBs''@;'; + put 'put ''YXRpbiB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHNwYWNlLCBhcG9zdHJvcGhlLCBsZWZ0IGFuZCByaWd0aCBwYXJlbnRoZXNpcywgcGx1cyBzaWduLCBjb21tYSwgaHlwaGVuLCBkb3QsIHNsYXNoLCBjb2xvbiwgZXF1YWwgc2lnbiwgcXVlc3Rpb24gbWFyayIpOi9z''@;'; + put 'put ''dHIkLy50ZXN0KHNlKXx8Im9iakRlc2MiPT09c2U/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihKKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogIitzZSsiIHVuc3VwcG9ydGVkIil9LGVlLnByb3RvdHlwZS5fZW5jb2RlT2JqaWQ9ZnVuY3Rpb24oSixz''@;'; + put 'put ''ZSxvZSl7aWYoInN0cmluZyI9PXR5cGVvZiBKKXtpZighc2UpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoInN0cmluZyBvYmppZCBnaXZlbiwgYnV0IG5vIHZhbHVlcyBtYXAgZm91bmQiKTtpZighc2UuaGFzT3duUHJvcGVydHkoSikpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9i''@;'; + put 'put ''amlkIG5vdCBmb3VuZCBpbiB2YWx1ZXMgbWFwIik7Sj1zZVtKXS5zcGxpdCgvW1xzLl0rL2cpO2ZvcihsZXQgQWU9MDtBZTxKLmxlbmd0aDtBZSsrKUpbQWVdfD0wfWVsc2UgaWYoQXJyYXkuaXNBcnJheShKKSl7Sj1KLnNsaWNlKCk7Zm9yKGxldCBBZT0wO0FlPEoubGVuZ3RoO0FlKyspSltB''@;'; + put 'put ''ZV18PTB9aWYoIUFycmF5LmlzQXJyYXkoSikpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkKCkgc2hvdWxkIGJlIGVpdGhlciBhcnJheSBvciBzdHJpbmcsIGdvdDogIitKU09OLnN0cmluZ2lmeShKKSk7aWYoIW9lKXtpZihKWzFdPj00MClyZXR1cm4gdGhpcy5yZXBvcnRlci5l''@;'; + put 'put ''cnJvcigiU2Vjb25kIG9iamlkIGlkZW50aWZpZXIgT09CIik7Si5zcGxpY2UoMCwyLDQwKkpbMF0rSlsxXSl9bGV0IGNlPTA7Zm9yKGxldCBBZT0wO0FlPEoubGVuZ3RoO0FlKyspe2xldCBrZT1KW0FlXTtmb3IoY2UrKztrZT49MTI4O2tlPj49NyljZSsrfWNvbnN0IGRlPWxlLmFsbG9jKGNl''@;'; + put 'put ''KTtsZXQgdmU9ZGUubGVuZ3RoLTE7Zm9yKGxldCBBZT1KLmxlbmd0aC0xO0FlPj0wO0FlLS0pe2xldCBrZT1KW0FlXTtmb3IoZGVbdmUtLV09MTI3JmtlOyhrZT4+PTcpPjA7KWRlW3ZlLS1dPTEyOHwxMjcma2V9cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoZGUpfSxlZS5wcm90''@;'; + put 'put ''b3R5cGUuX2VuY29kZVRpbWU9ZnVuY3Rpb24oSixzZSl7bGV0IG9lO2NvbnN0IGNlPW5ldyBEYXRlKEopO3JldHVybiJnZW50aW1lIj09PXNlP29lPVtxKGNlLmdldFVUQ0Z1bGxZZWFyKCkpLHEoY2UuZ2V0VVRDTW9udGgoKSsxKSxxKGNlLmdldFVUQ0RhdGUoKSkscShjZS5nZXRVVENIb3Vy''@;'; + put 'put ''cygpKSxxKGNlLmdldFVUQ01pbnV0ZXMoKSkscShjZS5nZXRVVENTZWNvbmRzKCkpLCJaIl0uam9pbigiIik6InV0Y3RpbWUiPT09c2U/b2U9W3EoY2UuZ2V0VVRDRnVsbFllYXIoKSUxMDApLHEoY2UuZ2V0VVRDTW9udGgoKSsxKSxxKGNlLmdldFVUQ0RhdGUoKSkscShjZS5nZXRVVENIb3Vy''@;'; + put 'put ''cygpKSxxKGNlLmdldFVUQ01pbnV0ZXMoKSkscShjZS5nZXRVVENTZWNvbmRzKCkpLCJaIl0uam9pbigiIik6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2RpbmcgIitzZSsiIHRpbWUgaXMgbm90IHN1cHBvcnRlZCB5ZXQiKSx0aGlzLl9lbmNvZGVTdHIob2UsIm9jdHN0ciIpfSxlZS5wcm90''@;'; + put 'put ''b3R5cGUuX2VuY29kZU51bGw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcigiIil9LGVlLnByb3RvdHlwZS5fZW5jb2RlSW50PWZ1bmN0aW9uKEosc2Upe2lmKCJzdHJpbmciPT10eXBlb2YgSil7aWYoIXNlKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJT''@;'; + put 'put ''dHJpbmcgaW50IG9yIGVudW0gZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIik7aWYoIXNlLmhhc093blByb3BlcnR5KEopKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJWYWx1ZXMgbWFwIGRvZXNuJ3QgY29udGFpbjogIitKU09OLnN0cmluZ2lmeShKKSk7Sj1zZVtKXX1pZigibnVtYmVy''@;'; + put 'put ''IiE9dHlwZW9mIEomJiFsZS5pc0J1ZmZlcihKKSl7Y29uc3QgZGU9Si50b0FycmF5KCk7IUouc2lnbiYmMTI4JmRlWzBdJiZkZS51bnNoaWZ0KDApLEo9bGUuZnJvbShkZSl9aWYobGUuaXNCdWZmZXIoSikpe2xldCBkZT1KLmxlbmd0aDswPT09Si5sZW5ndGgmJmRlKys7Y29uc3QgdmU9bGUu''@;'; + put 'put ''YWxsb2MoZGUpO3JldHVybiBKLmNvcHkodmUpLDA9PT1KLmxlbmd0aCYmKHZlWzBdPTApLHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodmUpfWlmKEo8MTI4KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEopO2lmKEo8MjU2KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVm''@;'; + put 'put ''ZmVyKFswLEpdKTtsZXQgb2U9MTtmb3IobGV0IGRlPUo7ZGU+PTI1NjtkZT4+PTgpb2UrKztjb25zdCBjZT1uZXcgQXJyYXkob2UpO2ZvcihsZXQgZGU9Y2UubGVuZ3RoLTE7ZGU+PTA7ZGUtLSljZVtkZV09MjU1JkosSj4+PTg7cmV0dXJuIDEyOCZjZVswXSYmY2UudW5zaGlmdCgwKSx0aGlz''@;'; + put 'put ''Ll9jcmVhdGVFbmNvZGVyQnVmZmVyKGxlLmZyb20oY2UpKX0sZWUucHJvdG90eXBlLl9lbmNvZGVCb29sPWZ1bmN0aW9uKEope3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEo/MjU1OjApfSxlZS5wcm90b3R5cGUuX3VzZT1mdW5jdGlvbihKLHNlKXtyZXR1cm4iZnVuY3Rpb24i''@;'; + put 'put ''PT10eXBlb2YgSiYmKEo9SihzZSkpLEouX2dldEVuY29kZXIoImRlciIpLnRyZWV9LGVlLnByb3RvdHlwZS5fc2tpcERlZmF1bHQ9ZnVuY3Rpb24oSixzZSxvZSl7Y29uc3QgY2U9dGhpcy5fYmFzZVN0YXRlO2xldCBkZTtpZihudWxsPT09Y2UuZGVmYXVsdClyZXR1cm4hMTtjb25zdCB2ZT1K''@;'; + put 'put ''LmpvaW4oKTtpZih2b2lkIDA9PT1jZS5kZWZhdWx0QnVmZmVyJiYoY2UuZGVmYXVsdEJ1ZmZlcj10aGlzLl9lbmNvZGVWYWx1ZShjZS5kZWZhdWx0LHNlLG9lKS5qb2luKCkpLHZlLmxlbmd0aCE9PWNlLmRlZmF1bHRCdWZmZXIubGVuZ3RoKXJldHVybiExO2ZvcihkZT0wO2RlPHZlLmxlbmd0''@;'; + put 'put ''aDtkZSsrKWlmKHZlW2RlXSE9PWNlLmRlZmF1bHRCdWZmZXJbZGVdKXJldHVybiExO3JldHVybiEwfX0sNjU3OTooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVE7aWUuZGVyPVooNjk4NCksaWUucGVtPVooMjg4Myl9LDI4ODM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBp''@;'; + put 'put ''ZT1aKDU3MTcpLGxlPVooNjk4NCk7ZnVuY3Rpb24gWShXKXtsZS5jYWxsKHRoaXMsVyksdGhpcy5lbmM9InBlbSJ9aWUoWSxsZSksVS5leHBvcnRzPVksWS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKFcsTil7Y29uc3QgZWU9bGUucHJvdG90eXBlLmVuY29kZS5jYWxsKHRoaXMsVykudG9T''@;'; + put 'put ''dHJpbmcoImJhc2U2NCIpLHE9WyItLS0tLUJFR0lOICIrTi5sYWJlbCsiLS0tLS0iXTtmb3IobGV0IEo9MDtKPGVlLmxlbmd0aDtKKz02NClxLnB1c2goZWUuc2xpY2UoSixKKzY0KSk7cmV0dXJuIHEucHVzaCgiLS0tLS1FTkQgIitOLmxhYmVsKyItLS0tLSIpLHEuam9pbigiXG4iKX19LDQ1''@;'; + put 'put ''OTA6ZnVuY3Rpb24oVSxRLFopeyFmdW5jdGlvbihpZSxsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFkoeCxQKXtpZigheCl0aHJvdyBuZXcgRXJyb3IoUHx8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBXKHgsUCl7eC5zdXBlcl89UDt2YXIgVj1mdW5jdGlvbigpe307Vi5wcm90b3R5''@;'; + put 'put ''cGU9UC5wcm90b3R5cGUseC5wcm90b3R5cGU9bmV3IFYseC5wcm90b3R5cGUuY29uc3RydWN0b3I9eH1mdW5jdGlvbiBOKHgsUCxWKXtpZihOLmlzQk4oeCkpcmV0dXJuIHg7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9''@;'; + put 'put ''PXgmJigibGUiIT09UCYmImJlIiE9PVB8fChWPVAsUD0xMCksdGhpcy5faW5pdCh4fHwwLFB8fDEwLFZ8fCJiZSIpKX12YXIgZWU7Im9iamVjdCI9PXR5cGVvZiBpZT9pZS5leHBvcnRzPU46bGUuQk49TixOLkJOPU4sTi53b3JkU2l6ZT0yNjt0cnl7ZWU9InVuZGVmaW5lZCIhPXR5cGVvZiB3''@;'; + put 'put ''aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpaKDk1MCkuQnVmZmVyfWNhdGNoKHgpe31mdW5jdGlvbiBxKHgsUCl7dmFyIFY9eC5jaGFyQ29kZUF0KFApO3JldHVybiBWPj02NSYmVjw9NzA/Vi01NTpWPj05NyYmVjw9MTAyP1YtODc6Vi00OCYxNX1mdW5jdGlv''@;'; + put 'put ''biBKKHgsUCxWKXt2YXIgVD1xKHgsVik7cmV0dXJuIFYtMT49UCYmKFR8PXEoeCxWLTEpPDw0KSxUfWZ1bmN0aW9uIHNlKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9TWF0aC5taW4oeC5sZW5ndGgsVikseWU9UDt5ZTxGO3llKyspe3ZhciBDZT14LmNoYXJDb2RlQXQoeWUpLTQ4O1MqPVQsUys9''@;'; + put 'put ''Q2U+PTQ5P0NlLTQ5KzEwOkNlPj0xNz9DZS0xNysxMDpDZX1yZXR1cm4gU31OLmlzQk49ZnVuY3Rpb24oeCl7cmV0dXJuIHggaW5zdGFuY2VvZiBOfHxudWxsIT09eCYmIm9iamVjdCI9PXR5cGVvZiB4JiZ4LmNvbnN0cnVjdG9yLndvcmRTaXplPT09Ti53b3JkU2l6ZSYmQXJyYXkuaXNBcnJh''@;'; + put 'put ''eSh4LndvcmRzKX0sTi5tYXg9ZnVuY3Rpb24oeCxQKXtyZXR1cm4geC5jbXAoUCk+MD94OlB9LE4ubWluPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHguY21wKFApPDA/eDpQfSxOLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih4LFAsVil7aWYoIm51bWJlciI9PXR5cGVvZiB4KXJldHVybiB0aGlz''@;'; + put 'put ''Ll9pbml0TnVtYmVyKHgsUCxWKTtpZigib2JqZWN0Ij09dHlwZW9mIHgpcmV0dXJuIHRoaXMuX2luaXRBcnJheSh4LFAsVik7ImhleCI9PT1QJiYoUD0xNiksWShQPT09KDB8UCkmJlA+PTImJlA8PTM2KTt2YXIgVD0wOyItIj09PSh4PXgudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikp''@;'; + put 'put ''WzBdJiYoVCsrLHRoaXMubmVnYXRpdmU9MSksVDx4Lmxlbmd0aCYmKDE2PT09UD90aGlzLl9wYXJzZUhleCh4LFQsVik6KHRoaXMuX3BhcnNlQmFzZSh4LFAsVCksImxlIj09PVYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxQLFYpKSl9LE4ucHJvdG90eXBlLl9pbml0TnVtYmVy''@;'; + put 'put ''PWZ1bmN0aW9uKHgsUCxWKXt4PDAmJih0aGlzLm5lZ2F0aXZlPTEseD0teCkseDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmeF0sdGhpcy5sZW5ndGg9MSk6eDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ4LHgvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMu''@;'; + put 'put ''bGVuZ3RoPTIpOihZKHg8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKX0sTi5wcm90b3R5cGUuX2luaXRBcnJheT1m''@;'; + put 'put ''dW5jdGlvbih4LFAsVil7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgubGVuZ3RoKSx4Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh4Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0''@;'; + put 'put ''aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT0wO3ZhciBTLEYseWU9MDtpZigiYmUiPT09Vilmb3IoVD14Lmxlbmd0aC0xLFM9MDtUPj0wO1QtPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QtMV08PDh8eFtULTJdPDwxNik8PHllJjY3MTA4ODYzLHRo''@;'; + put 'put ''aXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7ZWxzZSBpZigibGUiPT09Vilmb3IoVD0wLFM9MDtUPHgubGVuZ3RoO1QrPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QrMV08PDh8eFtUKzJdPDwxNik8PHllJjY3MTA4ODYzLHRo''@;'; + put 'put ''aXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHgsUCxWKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKHgubGVuZ3RoLVApLzYpLHRoaXMud29y''@;'; + put 'put ''ZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPTA7dmFyIFMsRj0wLHllPTA7aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgtMTtUPj1QO1QtPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9NjcxMDg4NjMm''@;'; + put 'put ''UyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODtlbHNlIGZvcihUPSh4Lmxlbmd0aC1QKSUyPT0wP1ArMTpQO1Q8eC5sZW5ndGg7VCs9MilTPUooeCxQLFQpPDxGLHRoaXMud29yZHNbeWVdfD02NzEwODg2MyZTLEY+PTE4PyhGLT0xOCx0aGlzLndvcmRzW3ll''@;'; + put 'put ''Kz0xXXw9Uz4+PjI2KTpGKz04O3RoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih4LFAsVil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIFQ9MCxTPTE7Uzw9NjcxMDg4NjM7Uyo9UClUKys7VC0tLFM9Uy9QfDA7Zm9yKHZhciBGPXgubGVu''@;'; + put 'put ''Z3RoLVYseWU9RiVULENlPU1hdGgubWluKEYsRi15ZSkrVixEZT0wLFBlPVY7UGU8Q2U7UGUrPVQpRGU9c2UoeCxQZSxQZStULFApLHRoaXMuaW11bG4oUyksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSk7aWYoMCE9PXllKXt2YXIg''@;'; + put 'put ''UWU9MTtmb3IoRGU9c2UoeCxQZSx4Lmxlbmd0aCxQKSxQZT0wO1BlPHllO1BlKyspUWUqPVA7dGhpcy5pbXVsbihRZSksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSl9dGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5jb3B5PWZ1bmN0''@;'; + put 'put ''aW9uKHgpe3gud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl4LndvcmRzW1BdPXRoaXMud29yZHNbUF07eC5sZW5ndGg9dGhpcy5sZW5ndGgseC5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLHgucmVkPXRoaXMucmVkfSxOLnByb3RvdHlw''@;'; + put 'put ''ZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB0aGlzLmNvcHkoeCkseH0sTi5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sTi5wcm90b3R5cGUu''@;'; + put 'put ''c3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxOLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYw''@;'; + put 'put ''PT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sTi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgb2U9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwi''@;'; + put 'put ''MDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sY2U9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sZGU9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIx''@;'; + put 'put ''Niw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2''@;'; + put 'put ''MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gdmUoeCxQLFYpe1YubmVnYXRpdmU9UC5uZWdhdGl2ZV54Lm5lZ2F0aXZlO3ZhciBU''@;'; + put 'put ''PXgubGVuZ3RoK1AubGVuZ3RofDA7Vi5sZW5ndGg9VCxUPVQtMXwwO3ZhciBTPTB8eC53b3Jkc1swXSxGPTB8UC53b3Jkc1swXSx5ZT1TKkYsRGU9eWUvNjcxMDg4NjR8MDtWLndvcmRzWzBdPTY3MTA4ODYzJnllO2Zvcih2YXIgUGU9MTtQZTxUO1BlKyspe2Zvcih2YXIgUWU9RGU+Pj4yNiwk''@;'; + put 'put ''ZT02NzEwODg2MyZEZSxndD1NYXRoLm1pbihQZSxQLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLXgubGVuZ3RoKzEpO3d0PD1ndDt3dCsrKVFlKz0oeWU9KFM9MHx4LndvcmRzW1BlLXd0fDBdKSooRj0wfFAud29yZHNbd3RdKSskZSkvNjcxMDg4NjR8MCwkZT02NzEwODg2MyZ5ZTtWLndv''@;'; + put 'put ''cmRzW1BlXT0wfCRlLERlPTB8UWV9cmV0dXJuIDAhPT1EZT9WLndvcmRzW1BlXT0wfERlOlYubGVuZ3RoLS0sVi5zdHJpcCgpfU4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHgsUCl7dmFyIFY7aWYoUD0wfFB8fDEsMTY9PT0oeD14fHwxMCl8fCJoZXgiPT09eCl7Vj0iIjtmb3IodmFy''@;'; + put 'put ''IFQ9MCxTPTAsRj0wO0Y8dGhpcy5sZW5ndGg7RisrKXt2YXIgeWU9dGhpcy53b3Jkc1tGXSxDZT0oMTY3NzcyMTUmKHllPDxUfFMpKS50b1N0cmluZygxNik7Vj0wIT0oUz15ZT4+PjI0LVQmMTY3NzcyMTUpfHxGIT09dGhpcy5sZW5ndGgtMT9vZVs2LUNlLmxlbmd0aF0rQ2UrVjpDZStWLChU''@;'; + put 'put ''Kz0yKT49MjYmJihULT0yNixGLS0pfWZvcigwIT09UyYmKFY9Uy50b1N0cmluZygxNikrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfWlmKHg9PT0oMHx4KSYmeD49MiYmeDw9MzYpe3ZhciBEZT1jZVt4XSxQZT1kZVt4XTtW''@;'; + put 'put ''PSIiO3ZhciBRZT10aGlzLmNsb25lKCk7Zm9yKFFlLm5lZ2F0aXZlPTA7IVFlLmlzWmVybygpOyl7dmFyICRlPVFlLm1vZG4oUGUpLnRvU3RyaW5nKHgpO1Y9KFFlPVFlLmlkaXZuKFBlKSkuaXNaZXJvKCk/JGUrVjpvZVtEZS0kZS5sZW5ndGhdKyRlK1Z9Zm9yKHRoaXMuaXNaZXJvKCkmJihW''@;'; + put 'put ''PSIwIitWKTtWLmxlbmd0aCVQIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9WSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxOLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB4PXRoaXMud29yZHNbMF07cmV0''@;'; + put 'put ''dXJuIDI9PT10aGlzLmxlbmd0aD94Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/eCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJlkoITEsIk51bWJlciBjYW4gb25seSBzYWZl''@;'; + put 'put ''bHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy14Onh9LE4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sTi5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gWSh2b2lkIDAhPT1lZSksdGhp''@;'; + put 'put ''cy50b0FycmF5TGlrZShlZSx4LFApfSxOLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXkseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oeCxQLFYpe3ZhciBUPXRoaXMuYnl0ZUxlbmd0aCgpLFM9Vnx8TWF0''@;'; + put 'put ''aC5tYXgoMSxUKTtZKFQ8PVMsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxZKFM+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBGLHllLENlPSJsZSI9PT1QLERlPW5ldyB4KFMpLFBlPXRoaXMuY2xvbmUoKTtpZihDZSl7''@;'; + put 'put ''Zm9yKHllPTA7IVBlLmlzWmVybygpO3llKyspRj1QZS5hbmRsbigyNTUpLFBlLml1c2hybig4KSxEZVt5ZV09Rjtmb3IoO3llPFM7eWUrKylEZVt5ZV09MH1lbHNle2Zvcih5ZT0wO3llPFMtVDt5ZSsrKURlW3llXT0wO2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1''@;'; + put 'put ''KSxQZS5pdXNocm4oOCksRGVbUy15ZS0xXT1GfXJldHVybiBEZX0sTi5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKHgpe3JldHVybiAzMi1NYXRoLmNsejMyKHgpfTpmdW5jdGlvbih4KXt2YXIgUD14LFY9MDtyZXR1cm4gUD49NDA5NiYmKFYrPTEzLFA+Pj49MTMp''@;'; + put 'put ''LFA+PTY0JiYoVis9NyxQPj4+PTcpLFA+PTgmJihWKz00LFA+Pj49NCksUD49MiYmKFYrPTIsUD4+Pj0yKSxWK1B9LE4ucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbih4KXtpZigwPT09eClyZXR1cm4gMjY7dmFyIFA9eCxWPTA7cmV0dXJuIDA9PSg4MTkxJlApJiYoVis9MTMsUD4+Pj0x''@;'; + put 'put ''MyksMD09KDEyNyZQKSYmKFYrPTcsUD4+Pj03KSwwPT0oMTUmUCkmJihWKz00LFA+Pj49NCksMD09KDMmUCkmJihWKz0yLFA+Pj49MiksMD09KDEmUCkmJlYrKyxWfSxOLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlz''@;'; + put 'put ''Lmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStQfSxOLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciB4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRz''@;'; + put 'put ''W1BdKTtpZih4Kz1WLDI2IT09VilicmVha31yZXR1cm4geH0sTi5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sTi5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKHgpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90''@;'; + put 'put ''aGlzLmFicygpLmlub3RuKHgpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMudGVzdG4oeC0xKT90aGlzLm5vdG4oeCkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LE4ucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxOLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxOLnBy''@;'; + put 'put ''b3RvdHlwZS5pdW9yPWZ1bmN0aW9uKHgpe2Zvcig7dGhpcy5sZW5ndGg8eC5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIFA9MDtQPHgubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPXRoaXMud29yZHNbUF18eC53b3Jkc1tQXTtyZXR1cm4gdGhpcy5zdHJpcCgp''@;'; + put 'put ''fSxOLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVvcih4KX0sTi5wcm90b3R5cGUub3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoeCk6eC5jbG9u''@;'; + put 'put ''ZSgpLmlvcih0aGlzKX0sTi5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcih4KTp4LmNsb25lKCkuaXVvcih0aGlzKX0sTi5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oeCl7dmFyIFA7UD10aGlzLmxlbmd0aD54''@;'; + put 'put ''Lmxlbmd0aD94OnRoaXM7Zm9yKHZhciBWPTA7VjxQLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT10aGlzLndvcmRzW1ZdJngud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPVAubGVuZ3RoLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT0o''@;'; + put 'put ''dGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh4KX0sTi5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh4KTp4LmNsb25lKCkuaWFuZCh0aGlzKX0sTi5wcm90b3R5cGUudWFuZD1mdW5jdGlv''@;'; + put 'put ''bih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKHgpOnguY2xvbmUoKS5pdWFuZCh0aGlzKX0sTi5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oeCl7dmFyIFAsVjt0aGlzLmxlbmd0aD54Lmxlbmd0aD8oUD10aGlzLFY9eCk6KFA9eCxWPXRoaXMpO2Zv''@;'; + put 'put ''cih2YXIgVD0wO1Q8Vi5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXV5WLndvcmRzW1RdO2lmKHRoaXMhPT1QKWZvcig7VDxQLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT1QLndvcmRzW1RdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJv''@;'; + put 'put ''dG90eXBlLml4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoeCl9LE4ucHJvdG90eXBlLnhvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoeCk6eC5jbG9uZSgp''@;'; + put 'put ''Lml4b3IodGhpcyl9LE4ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcih4KTp4LmNsb25lKCkuaXV4b3IodGhpcyl9LE4ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4''@;'; + put 'put ''JiZ4Pj0wKTt2YXIgUD0wfE1hdGguY2VpbCh4LzI2KSxWPXglMjY7dGhpcy5fZXhwYW5kKFApLFY+MCYmUC0tO2Zvcih2YXIgVD0wO1Q8UDtUKyspdGhpcy53b3Jkc1tUXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tUXTtyZXR1cm4gVj4wJiYodGhpcy53b3Jkc1tUXT1+dGhpcy53b3Jkc1tUXSY2''@;'; + put 'put ''NzEwODg2Mz4+MjYtViksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oeCl9LE4ucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oeCxQKXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFY9eC8yNnwwLFQ9eCUy''@;'; + put 'put ''NjtyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXT1QP3RoaXMud29yZHNbVl18MTw8VDp0aGlzLndvcmRzW1ZdJn4oMTw8VCksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgpe3ZhciBQLFYsVDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgu''@;'; + put 'put ''bmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxQPXRoaXMuaXN1Yih4KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlKXJldHVybiB4Lm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCkseC5uZWdhdGl2ZT0x''@;'; + put 'put ''LFAuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIFM9MCxGPTA7RjxULmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKSsoMHxULndvcmRzW0ZdKStTKSxTPVA+Pj4yNjtmb3Io''@;'; + put 'put ''OzAhPT1TJiZGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJihQPSgwfFYud29yZHNbRl0pK1MpLFM9UD4+PjI2O2lmKHRoaXMubGVuZ3RoPVYubGVuZ3RoLDAhPT1TKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVMsdGhpcy5sZW5ndGgrKztlbHNlIGlmKFYhPT10aGlzKWZv''@;'; + put 'put ''cig7RjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT1WLndvcmRzW0ZdO3JldHVybiB0aGlzfSxOLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oeCl7dmFyIFA7cmV0dXJuIDAhPT14Lm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oeC5uZWdhdGl2ZT0wLFA9dGhpcy5zdWIoeCkseC5uZWdh''@;'; + put 'put ''dGl2ZV49MSxQKTowPT09eC5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxQPXguc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxQKTp0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh4KTp4LmNsb25lKCkuaWFkZCh0aGlzKX0sTi5wcm90''@;'; + put 'put ''b3R5cGUuaXN1Yj1mdW5jdGlvbih4KXtpZigwIT09eC5uZWdhdGl2ZSl7eC5uZWdhdGl2ZT0wO3ZhciBQPXRoaXMuaWFkZCh4KTtyZXR1cm4geC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoeCks''@;'; + put 'put ''dGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFYsVCxTPXRoaXMuY21wKHgpO2lmKDA9PT1TKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztTPjA/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIEY9MCx5''@;'; + put 'put ''ZT0wO3llPFQubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSktKDB8VC53b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02NzEwODg2MyZQO2Zvcig7MCE9PUYmJnllPFYubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSkrRik+PjI2LHRoaXMud29yZHNbeWVdPTY3''@;'; + put 'put ''MTA4ODYzJlA7aWYoMD09PUYmJnllPFYubGVuZ3RoJiZWIT09dGhpcylmb3IoO3llPFYubGVuZ3RoO3llKyspdGhpcy53b3Jkc1t5ZV09Vi53b3Jkc1t5ZV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHllKSxWIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhp''@;'; + put 'put ''cy5zdHJpcCgpfSxOLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKHgpfTt2YXIgQWU9ZnVuY3Rpb24oeCxQLFYpe3ZhciBULFMsRix5ZT14LndvcmRzLENlPVAud29yZHMsRGU9Vi53b3JkcyxQZT0wLFFlPTB8eWVbMF0sJGU9ODE5MSZRZSxndD1R''@;'; + put 'put ''ZT4+PjEzLHd0PTB8eWVbMV0sdnQ9ODE5MSZ3dCxBdD13dD4+PjEzLG10PTB8eWVbMl0saHQ9ODE5MSZtdCxCdD1tdD4+PjEzLG9uPTB8eWVbM10sX3Q9ODE5MSZvbix0dD1vbj4+PjEzLGV0PTB8eWVbNF0sYXQ9ODE5MSZldCxMdD1ldD4+PjEzLEN0PTB8eWVbNV0sZnQ9ODE5MSZDdCxIdD1D''@;'; + put 'put ''dD4+PjEzLEdlPTB8eWVbNl0sVWU9ODE5MSZHZSx5dD1HZT4+PjEzLGp0PTB8eWVbN10sUXQ9ODE5MSZqdCxnbj1qdD4+PjEzLGRuPTB8eWVbOF0seW49ODE5MSZkbixsbj1kbj4+PjEzLE5uPTB8eWVbOV0sYm49ODE5MSZObixlcj1Obj4+PjEzLHNyPTB8Q2VbMF0sWG49ODE5MSZzcixGcj1z''@;'; + put 'put ''cj4+PjEzLHhyPTB8Q2VbMV0scXQ9ODE5MSZ4cixwcj14cj4+PjEzLG5yPTB8Q2VbMl0sQW49ODE5MSZucixxbj1ucj4+PjEzLFd0PTB8Q2VbM10scG49ODE5MSZXdCxLbj1XdD4+PjEzLE50PTB8Q2VbNF0sc249ODE5MSZOdCxVbj1OdD4+PjEzLHduPTB8Q2VbNV0sdG49ODE5MSZ3bix6bj13''@;'; + put 'put ''bj4+PjEzLFRyPTB8Q2VbNl0sQm49ODE5MSZUcixrcj1Ucj4+PjEzLG1uPTB8Q2VbN10sdW49ODE5MSZtbixjbj1tbj4+PjEzLF9uPTB8Q2VbOF0sR3Q9ODE5MSZfbixrbj1fbj4+PjEzLFZuPTB8Q2VbOV0sZW49ODE5MSZWbixJbj1Wbj4+PjEzO1YubmVnYXRpdmU9eC5uZWdhdGl2ZV5QLm5l''@;'; + put 'put ''Z2F0aXZlLFYubGVuZ3RoPTE5O3ZhciBKbj0oUGUrKFQ9TWF0aC5pbXVsKCRlLFhuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bCgkZSxGcikpK01hdGguaW11bChndCxYbil8MCkpPDwxMyl8MDtQZT0oKEY9TWF0aC5pbXVsKGd0LEZyKSkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4m''@;'; + put 'put ''PTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHZ0LFhuKSxTPShTPU1hdGguaW11bCh2dCxGcikpK01hdGguaW11bChBdCxYbil8MCxGPU1hdGguaW11bChBdCxGcik7dmFyIG9yPShQZSsoVD1UK01hdGguaW11bCgkZSxxdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLHByKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoZ3QscXQpfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHByKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoaHQsWG4pLFM9KFM9TWF0aC5pbXVsKGh0LEZyKSkrTWF0aC5pbXVsKEJ0LFhuKXwwLEY9TWF0aC5pbXVs''@;'; + put 'put ''KEJ0LEZyKSxUPVQrTWF0aC5pbXVsKHZ0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwodnQscHIpfDApK01hdGguaW11bChBdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEF0LHByKXwwO3ZhciBncj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgk''@;'; + put 'put ''ZSxxbil8MCkrTWF0aC5pbXVsKGd0LEFuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxxbil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKF90LFhuKSxTPShTPU1hdGguaW11bChfdCxGcikpK01hdGguaW11bCh0dCxYbil8MCxG''@;'; + put 'put ''PU1hdGguaW11bCh0dCxGciksVD1UK01hdGguaW11bChodCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHByKXwwKStNYXRoLmltdWwoQnQscXQpfDAsRj1GK01hdGguaW11bChCdCxwcil8MCxUPVQrTWF0aC5pbXVsKHZ0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwodnQscW4pfDApK01hdGgu''@;'; + put 'put ''aW11bChBdCxBbil8MCxGPUYrTWF0aC5pbXVsKEF0LHFuKXwwO3ZhciBLcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxLbil8MCkrTWF0aC5pbXVsKGd0LHBuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxLbil8''@;'; + put 'put ''MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGF0LFhuKSxTPShTPU1hdGguaW11bChhdCxGcikpK01hdGguaW11bChMdCxYbil8MCxGPU1hdGguaW11bChMdCxGciksVD1UK01hdGguaW11bChfdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKF90LHBy''@;'; + put 'put ''KXwwKStNYXRoLmltdWwodHQscXQpfDAsRj1GK01hdGguaW11bCh0dCxwcil8MCxUPVQrTWF0aC5pbXVsKGh0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQscW4pfDApK01hdGguaW11bChCdCxBbil8MCxGPUYrTWF0aC5pbXVsKEJ0LHFuKXwwLFQ9VCtNYXRoLmltdWwodnQscG4pfDAsUz0o''@;'; + put 'put ''Uz1TK01hdGguaW11bCh2dCxLbil8MCkrTWF0aC5pbXVsKEF0LHBuKXwwLEY9RitNYXRoLmltdWwoQXQsS24pfDA7dmFyIFZyPShQZSsoVD1UK01hdGguaW11bCgkZSxzbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLFVuKXwwKStNYXRoLmltdWwoZ3Qsc24pfDApKTw8MTMp''@;'; + put 'put ''fDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LFVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZnQsWG4pLFM9KFM9TWF0aC5pbXVsKGZ0LEZyKSkrTWF0aC5pbXVsKEh0LFhuKXwwLEY9TWF0aC5pbXVsKEh0LEZyKSxUPVQrTWF0aC5pbXVsKGF0''@;'; + put 'put ''LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQscHIpfDApK01hdGguaW11bChMdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEx0LHByKXwwLFQ9VCtNYXRoLmltdWwoX3QsQW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxxbil8MCkrTWF0aC5pbXVsKHR0LEFuKXwwLEY9RitNYXRoLmltdWwodHQscW4p''@;'; + put 'put ''fDAsVD1UK01hdGguaW11bChodCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LEtuKXwwKStNYXRoLmltdWwoQnQscG4pfDAsRj1GK01hdGguaW11bChCdCxLbil8MCxUPVQrTWF0aC5pbXVsKHZ0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwodnQsVW4pfDApK01hdGguaW11bChBdCxzbil8MCxG''@;'; + put 'put ''PUYrTWF0aC5pbXVsKEF0LFVuKXwwO3ZhciBpaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsdG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSx6bil8MCkrTWF0aC5pbXVsKGd0LHRuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCx6bil8MCkrKFM+Pj4xMyl8MCkr''@;'; + put 'put ''KGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFVlLFhuKSxTPShTPU1hdGguaW11bChVZSxGcikpK01hdGguaW11bCh5dCxYbil8MCxGPU1hdGguaW11bCh5dCxGciksVD1UK01hdGguaW11bChmdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHByKXwwKStNYXRoLmltdWwo''@;'; + put 'put ''SHQscXQpfDAsRj1GK01hdGguaW11bChIdCxwcil8MCxUPVQrTWF0aC5pbXVsKGF0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQscW4pfDApK01hdGguaW11bChMdCxBbil8MCxGPUYrTWF0aC5pbXVsKEx0LHFuKXwwLFQ9VCtNYXRoLmltdWwoX3QscG4pfDAsUz0oUz1TK01hdGguaW11bChf''@;'; + put 'put ''dCxLbil8MCkrTWF0aC5pbXVsKHR0LHBuKXwwLEY9RitNYXRoLmltdWwodHQsS24pfDAsVD1UK01hdGguaW11bChodCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LFVuKXwwKStNYXRoLmltdWwoQnQsc24pfDAsRj1GK01hdGguaW11bChCdCxVbil8MCxUPVQrTWF0aC5pbXVsKHZ0LHRuKXww''@;'; + put 'put ''LFM9KFM9UytNYXRoLmltdWwodnQsem4pfDApK01hdGguaW11bChBdCx0bil8MCxGPUYrTWF0aC5pbXVsKEF0LHpuKXwwO3ZhciBScj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQm4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrcil8MCkrTWF0aC5pbXVsKGd0LEJuKXwwKSk8''@;'; + put 'put ''PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrcil8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFF0LFhuKSxTPShTPU1hdGguaW11bChRdCxGcikpK01hdGguaW11bChnbixYbil8MCxGPU1hdGguaW11bChnbixGciksVD1UK01hdGguaW11''@;'; + put 'put ''bChVZSxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHByKXwwKStNYXRoLmltdWwoeXQscXQpfDAsRj1GK01hdGguaW11bCh5dCxwcil8MCxUPVQrTWF0aC5pbXVsKGZ0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQscW4pfDApK01hdGguaW11bChIdCxBbil8MCxGPUYrTWF0aC5pbXVsKEh0''@;'; + put 'put ''LHFuKXwwLFQ9VCtNYXRoLmltdWwoYXQscG4pfDAsUz0oUz1TK01hdGguaW11bChhdCxLbil8MCkrTWF0aC5pbXVsKEx0LHBuKXwwLEY9RitNYXRoLmltdWwoTHQsS24pfDAsVD1UK01hdGguaW11bChfdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LFVuKXwwKStNYXRoLmltdWwodHQsc24p''@;'; + put 'put ''fDAsRj1GK01hdGguaW11bCh0dCxVbil8MCxUPVQrTWF0aC5pbXVsKGh0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsem4pfDApK01hdGguaW11bChCdCx0bil8MCxGPUYrTWF0aC5pbXVsKEJ0LHpuKXwwLFQ9VCtNYXRoLmltdWwodnQsQm4pfDAsUz0oUz1TK01hdGguaW11bCh2dCxrcil8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKEF0LEJuKXwwLEY9RitNYXRoLmltdWwoQXQsa3IpfDA7dmFyIGxpPShQZSsoVD1UK01hdGguaW11bCgkZSx1bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGNuKXwwKStNYXRoLmltdWwoZ3QsdW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KGd0LGNuKXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoeW4sWG4pLFM9KFM9TWF0aC5pbXVsKHluLEZyKSkrTWF0aC5pbXVsKGxuLFhuKXwwLEY9TWF0aC5pbXVsKGxuLEZyKSxUPVQrTWF0aC5pbXVsKFF0LHF0KXwwLFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwoUXQscHIpfDApK01hdGguaW11bChnbixxdCl8MCxGPUYrTWF0aC5pbXVsKGduLHByKXwwLFQ9VCtNYXRoLmltdWwoVWUsQW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxxbil8MCkrTWF0aC5pbXVsKHl0LEFuKXwwLEY9RitNYXRoLmltdWwoeXQscW4pfDAsVD1UK01hdGguaW11bChmdCxw''@;'; + put 'put ''bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LEtuKXwwKStNYXRoLmltdWwoSHQscG4pfDAsRj1GK01hdGguaW11bChIdCxLbil8MCxUPVQrTWF0aC5pbXVsKGF0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsVW4pfDApK01hdGguaW11bChMdCxzbil8MCxGPUYrTWF0aC5pbXVsKEx0LFVuKXww''@;'; + put 'put ''LFQ9VCtNYXRoLmltdWwoX3QsdG4pfDAsUz0oUz1TK01hdGguaW11bChfdCx6bil8MCkrTWF0aC5pbXVsKHR0LHRuKXwwLEY9RitNYXRoLmltdWwodHQsem4pfDAsVD1UK01hdGguaW11bChodCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtyKXwwKStNYXRoLmltdWwoQnQsQm4pfDAsRj1G''@;'; + put 'put ''K01hdGguaW11bChCdCxrcil8MCxUPVQrTWF0aC5pbXVsKHZ0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwodnQsY24pfDApK01hdGguaW11bChBdCx1bil8MCxGPUYrTWF0aC5pbXVsKEF0LGNuKXwwO3ZhciBNaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsR3QpfDApfDApKygoODE5MSYoUz0oUz1T''@;'; + put 'put ''K01hdGguaW11bCgkZSxrbil8MCkrTWF0aC5pbXVsKGd0LEd0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrbil8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLFhuKSxTPShTPU1hdGguaW11bChibixGcikpK01hdGguaW11''@;'; + put 'put ''bChlcixYbil8MCxGPU1hdGguaW11bChlcixGciksVD1UK01hdGguaW11bCh5bixxdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLHByKXwwKStNYXRoLmltdWwobG4scXQpfDAsRj1GK01hdGguaW11bChsbixwcil8MCxUPVQrTWF0aC5pbXVsKFF0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQs''@;'; + put 'put ''cW4pfDApK01hdGguaW11bChnbixBbil8MCxGPUYrTWF0aC5pbXVsKGduLHFuKXwwLFQ9VCtNYXRoLmltdWwoVWUscG4pfDAsUz0oUz1TK01hdGguaW11bChVZSxLbil8MCkrTWF0aC5pbXVsKHl0LHBuKXwwLEY9RitNYXRoLmltdWwoeXQsS24pfDAsVD1UK01hdGguaW11bChmdCxzbil8MCxT''@;'; + put 'put ''PShTPVMrTWF0aC5pbXVsKGZ0LFVuKXwwKStNYXRoLmltdWwoSHQsc24pfDAsRj1GK01hdGguaW11bChIdCxVbil8MCxUPVQrTWF0aC5pbXVsKGF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsem4pfDApK01hdGguaW11bChMdCx0bil8MCxGPUYrTWF0aC5pbXVsKEx0LHpuKXwwLFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwoX3QsQm4pfDAsUz0oUz1TK01hdGguaW11bChfdCxrcil8MCkrTWF0aC5pbXVsKHR0LEJuKXwwLEY9RitNYXRoLmltdWwodHQsa3IpfDAsVD1UK01hdGguaW11bChodCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGNuKXwwKStNYXRoLmltdWwoQnQsdW4pfDAsRj1GK01hdGgu''@;'; + put 'put ''aW11bChCdCxjbil8MCxUPVQrTWF0aC5pbXVsKHZ0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwodnQsa24pfDApK01hdGguaW11bChBdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEF0LGtuKXwwO3ZhciBvMD0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGgu''@;'; + put 'put ''aW11bCgkZSxJbil8MCkrTWF0aC5pbXVsKGd0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxJbil8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHF0KSxTPShTPU1hdGguaW11bChibixwcikpK01hdGguaW11bChlcixx''@;'; + put 'put ''dCl8MCxGPU1hdGguaW11bChlcixwciksVD1UK01hdGguaW11bCh5bixBbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHFuKXwwKStNYXRoLmltdWwobG4sQW4pfDAsRj1GK01hdGguaW11bChsbixxbil8MCxUPVQrTWF0aC5pbXVsKFF0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsS24pfDAp''@;'; + put 'put ''K01hdGguaW11bChnbixwbil8MCxGPUYrTWF0aC5pbXVsKGduLEtuKXwwLFQ9VCtNYXRoLmltdWwoVWUsc24pfDAsUz0oUz1TK01hdGguaW11bChVZSxVbil8MCkrTWF0aC5pbXVsKHl0LHNuKXwwLEY9RitNYXRoLmltdWwoeXQsVW4pfDAsVD1UK01hdGguaW11bChmdCx0bil8MCxTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKGZ0LHpuKXwwKStNYXRoLmltdWwoSHQsdG4pfDAsRj1GK01hdGguaW11bChIdCx6bil8MCxUPVQrTWF0aC5pbXVsKGF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa3IpfDApK01hdGguaW11bChMdCxCbil8MCxGPUYrTWF0aC5pbXVsKEx0LGtyKXwwLFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwoX3QsdW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxjbil8MCkrTWF0aC5pbXVsKHR0LHVuKXwwLEY9RitNYXRoLmltdWwodHQsY24pfDAsVD1UK01hdGguaW11bChodCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtuKXwwKStNYXRoLmltdWwoQnQsR3QpfDAsRj1GK01hdGguaW11bChC''@;'; + put 'put ''dCxrbil8MDt2YXIgbjA9KFBlKyhUPVQrTWF0aC5pbXVsKHZ0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwodnQsSW4pfDApK01hdGguaW11bChBdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoQXQsSW4pfDApKyhTPj4+MTMpfDApKyhuMD4+PjI2KXwwLG4w''@;'; + put 'put ''Jj02NzEwODg2MyxUPU1hdGguaW11bChibixBbiksUz0oUz1NYXRoLmltdWwoYm4scW4pKStNYXRoLmltdWwoZXIsQW4pfDAsRj1NYXRoLmltdWwoZXIscW4pLFQ9VCtNYXRoLmltdWwoeW4scG4pfDAsUz0oUz1TK01hdGguaW11bCh5bixLbil8MCkrTWF0aC5pbXVsKGxuLHBuKXwwLEY9RitN''@;'; + put 'put ''YXRoLmltdWwobG4sS24pfDAsVD1UK01hdGguaW11bChRdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LFVuKXwwKStNYXRoLmltdWwoZ24sc24pfDAsRj1GK01hdGguaW11bChnbixVbil8MCxUPVQrTWF0aC5pbXVsKFVlLHRuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsem4pfDApK01hdGgu''@;'; + put 'put ''aW11bCh5dCx0bil8MCxGPUYrTWF0aC5pbXVsKHl0LHpuKXwwLFQ9VCtNYXRoLmltdWwoZnQsQm4pfDAsUz0oUz1TK01hdGguaW11bChmdCxrcil8MCkrTWF0aC5pbXVsKEh0LEJuKXwwLEY9RitNYXRoLmltdWwoSHQsa3IpfDAsVD1UK01hdGguaW11bChhdCx1bil8MCxTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKGF0LGNuKXwwKStNYXRoLmltdWwoTHQsdW4pfDAsRj1GK01hdGguaW11bChMdCxjbil8MCxUPVQrTWF0aC5pbXVsKF90LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa24pfDApK01hdGguaW11bCh0dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHR0LGtuKXwwO3ZhciBkMD0oUGUrKFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwoaHQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChodCxJbil8MCkrTWF0aC5pbXVsKEJ0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChCdCxJbil8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJu''@;'; + put 'put ''LHBuKSxTPShTPU1hdGguaW11bChibixLbikpK01hdGguaW11bChlcixwbil8MCxGPU1hdGguaW11bChlcixLbiksVD1UK01hdGguaW11bCh5bixzbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLFVuKXwwKStNYXRoLmltdWwobG4sc24pfDAsRj1GK01hdGguaW11bChsbixVbil8MCxUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKFF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsem4pfDApK01hdGguaW11bChnbix0bil8MCxGPUYrTWF0aC5pbXVsKGduLHpuKXwwLFQ9VCtNYXRoLmltdWwoVWUsQm4pfDAsUz0oUz1TK01hdGguaW11bChVZSxrcil8MCkrTWF0aC5pbXVsKHl0LEJuKXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwoeXQsa3IpfDAsVD1UK01hdGguaW11bChmdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGNuKXwwKStNYXRoLmltdWwoSHQsdW4pfDAsRj1GK01hdGguaW11bChIdCxjbil8MCxUPVQrTWF0aC5pbXVsKGF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa24pfDApK01hdGguaW11bChM''@;'; + put 'put ''dCxHdCl8MCxGPUYrTWF0aC5pbXVsKEx0LGtuKXwwO3ZhciBtMD0oUGUrKFQ9VCtNYXRoLmltdWwoX3QsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChfdCxJbil8MCkrTWF0aC5pbXVsKHR0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh0dCxJbil8MCkrKFM+''@;'; + put 'put ''Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHNuKSxTPShTPU1hdGguaW11bChibixVbikpK01hdGguaW11bChlcixzbil8MCxGPU1hdGguaW11bChlcixVbiksVD1UK01hdGguaW11bCh5bix0bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHpuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwobG4sdG4pfDAsRj1GK01hdGguaW11bChsbix6bil8MCxUPVQrTWF0aC5pbXVsKFF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsa3IpfDApK01hdGguaW11bChnbixCbil8MCxGPUYrTWF0aC5pbXVsKGduLGtyKXwwLFQ9VCtNYXRoLmltdWwoVWUsdW4pfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bChVZSxjbil8MCkrTWF0aC5pbXVsKHl0LHVuKXwwLEY9RitNYXRoLmltdWwoeXQsY24pfDAsVD1UK01hdGguaW11bChmdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGtuKXwwKStNYXRoLmltdWwoSHQsR3QpfDAsRj1GK01hdGguaW11bChIdCxrbil8MDt2YXIgRzA9KFBlKyhU''@;'; + put 'put ''PVQrTWF0aC5pbXVsKGF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoYXQsSW4pfDApK01hdGguaW11bChMdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoTHQsSW4pfDApKyhTPj4+MTMpfDApKyhHMD4+PjI2KXwwLEcwJj02NzEwODg2MyxUPU1hdGguaW11''@;'; + put 'put ''bChibix0biksUz0oUz1NYXRoLmltdWwoYm4sem4pKStNYXRoLmltdWwoZXIsdG4pfDAsRj1NYXRoLmltdWwoZXIsem4pLFQ9VCtNYXRoLmltdWwoeW4sQm4pfDAsUz0oUz1TK01hdGguaW11bCh5bixrcil8MCkrTWF0aC5pbXVsKGxuLEJuKXwwLEY9RitNYXRoLmltdWwobG4sa3IpfDAsVD1U''@;'; + put 'put ''K01hdGguaW11bChRdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LGNuKXwwKStNYXRoLmltdWwoZ24sdW4pfDAsRj1GK01hdGguaW11bChnbixjbil8MCxUPVQrTWF0aC5pbXVsKFVlLEd0KXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa24pfDApK01hdGguaW11bCh5dCxHdCl8MCxGPUYrTWF0''@;'; + put 'put ''aC5pbXVsKHl0LGtuKXwwO3ZhciBEaT0oUGUrKFQ9VCtNYXRoLmltdWwoZnQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChmdCxJbil8MCkrTWF0aC5pbXVsKEh0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChIdCxJbil8MCkrKFM+Pj4xMyl8MCkrKERpPj4+''@;'; + put 'put ''MjYpfDAsRGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEJuKSxTPShTPU1hdGguaW11bChibixrcikpK01hdGguaW11bChlcixCbil8MCxGPU1hdGguaW11bChlcixrciksVD1UK01hdGguaW11bCh5bix1bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLGNuKXwwKStNYXRoLmltdWwobG4sdW4p''@;'; + put 'put ''fDAsRj1GK01hdGguaW11bChsbixjbil8MCxUPVQrTWF0aC5pbXVsKFF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQsa24pfDApK01hdGguaW11bChnbixHdCl8MCxGPUYrTWF0aC5pbXVsKGduLGtuKXwwO3ZhciBXMD0oUGUrKFQ9VCtNYXRoLmltdWwoVWUsZW4pfDApfDApKygoODE5MSYo''@;'; + put 'put ''Uz0oUz1TK01hdGguaW11bChVZSxJbil8MCkrTWF0aC5pbXVsKHl0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh5dCxJbil8MCkrKFM+Pj4xMyl8MCkrKFcwPj4+MjYpfDAsVzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHVuKSxTPShTPU1hdGguaW11bChibixjbikpK01h''@;'; + put 'put ''dGguaW11bChlcix1bil8MCxGPU1hdGguaW11bChlcixjbiksVD1UK01hdGguaW11bCh5bixHdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLGtuKXwwKStNYXRoLmltdWwobG4sR3QpfDAsRj1GK01hdGguaW11bChsbixrbil8MDt2YXIgRW89KFBlKyhUPVQrTWF0aC5pbXVsKFF0LGVuKXwwKXww''@;'; + put 'put ''KSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUXQsSW4pfDApK01hdGguaW11bChnbixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ24sSW4pfDApKyhTPj4+MTMpfDApKyhFbz4+PjI2KXwwLEVvJj02NzEwODg2MyxUPU1hdGguaW11bChibixHdCksUz0oUz1NYXRoLmltdWwo''@;'; + put 'put ''Ym4sa24pKStNYXRoLmltdWwoZXIsR3QpfDAsRj1NYXRoLmltdWwoZXIsa24pO3ZhciBxbz0oUGUrKFQ9VCtNYXRoLmltdWwoeW4sZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh5bixJbil8MCkrTWF0aC5pbXVsKGxuLGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11''@;'; + put 'put ''bChsbixJbil8MCkrKFM+Pj4xMyl8MCkrKHFvPj4+MjYpfDAscW8mPTY3MTA4ODYzO3ZhciBjYT0oUGUrKFQ9TWF0aC5pbXVsKGJuLGVuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bChibixJbikpK01hdGguaW11bChlcixlbil8MCkpPDwxMyl8MDtyZXR1cm4gUGU9KChGPU1hdGguaW11''@;'; + put 'put ''bChlcixJbikpKyhTPj4+MTMpfDApKyhjYT4+PjI2KXwwLGNhJj02NzEwODg2MyxEZVswXT1KbixEZVsxXT1vcixEZVsyXT1ncixEZVszXT1LcixEZVs0XT1WcixEZVs1XT1paSxEZVs2XT1ScixEZVs3XT1saSxEZVs4XT1NaSxEZVs5XT1vMCxEZVsxMF09bjAsRGVbMTFdPWQwLERlWzEyXT1t''@;'; + put 'put ''MCxEZVsxM109RzAsRGVbMTRdPURpLERlWzE1XT1XMCxEZVsxNl09RW8sRGVbMTddPXFvLERlWzE4XT1jYSwwIT09UGUmJihEZVsxOV09UGUsVi5sZW5ndGgrKyksVn07ZnVuY3Rpb24ga2UoeCxQLFYpe3JldHVybihuZXcgU2UpLm11bHAoeCxQLFYpfWZ1bmN0aW9uIFNlKHgsUCl7dGhpcy54''@;'; + put 'put ''PXgsdGhpcy55PVB9TWF0aC5pbXVsfHwoQWU9dmUpLE4ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHgsUCl7dmFyIFQ9dGhpcy5sZW5ndGgreC5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09eC5sZW5ndGg/QWUodGhpcyx4LFApOlQ8NjM/dmUodGhpcyx4LFApOlQ8MTAy''@;'; + put 'put ''ND9mdW5jdGlvbihTLEYseWUpe3llLm5lZ2F0aXZlPUYubmVnYXRpdmVeUy5uZWdhdGl2ZSx5ZS5sZW5ndGg9Uy5sZW5ndGgrRi5sZW5ndGg7Zm9yKHZhciBDZT0wLERlPTAsUGU9MDtQZTx5ZS5sZW5ndGgtMTtQZSsrKXt2YXIgUWU9RGU7RGU9MDtmb3IodmFyICRlPTY3MTA4ODYzJkNlLGd0''@;'; + put 'put ''PU1hdGgubWluKFBlLEYubGVuZ3RoLTEpLHd0PU1hdGgubWF4KDAsUGUtUy5sZW5ndGgrMSk7d3Q8PWd0O3d0Kyspe3ZhciBBdD0oMHxTLndvcmRzW1BlLXd0XSkqKDB8Ri53b3Jkc1t3dF0pLG10PTY3MTA4ODYzJkF0OyRlPTY3MTA4ODYzJihtdD1tdCskZXwwKSxEZSs9KFFlPShRZT1RZSso''@;'; + put 'put ''QXQvNjcxMDg4NjR8MCl8MCkrKG10Pj4+MjYpfDApPj4+MjYsUWUmPTY3MTA4ODYzfXllLndvcmRzW1BlXT0kZSxDZT1RZSxRZT1EZX1yZXR1cm4gMCE9PUNlP3llLndvcmRzW1BlXT1DZTp5ZS5sZW5ndGgtLSx5ZS5zdHJpcCgpfSh0aGlzLHgsUCk6a2UodGhpcyx4LFApfSxTZS5wcm90b3R5''@;'; + put 'put ''cGUubWFrZVJCVD1mdW5jdGlvbih4KXtmb3IodmFyIFA9bmV3IEFycmF5KHgpLFY9Ti5wcm90b3R5cGUuX2NvdW50Qml0cyh4KS0xLFQ9MDtUPHg7VCsrKVBbVF09dGhpcy5yZXZCaW4oVCxWLHgpO3JldHVybiBQfSxTZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHgsUCxWKXtpZigwPT09''@;'; + put 'put ''eHx8eD09PVYtMSlyZXR1cm4geDtmb3IodmFyIFQ9MCxTPTA7UzxQO1MrKylUfD0oMSZ4KTw8UC1TLTEseD4+PTE7cmV0dXJuIFR9LFNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXtmb3IodmFyIHllPTA7eWU8Rjt5ZSsrKVRbeWVdPVBbeFt5ZV1dLFNbeWVdPVZb''@;'; + put 'put ''eFt5ZV1dfSxTZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXt0aGlzLnBlcm11dGUoRix4LFAsVixULFMpO2Zvcih2YXIgeWU9MTt5ZTxTO3llPDw9MSlmb3IodmFyIENlPXllPDwxLERlPU1hdGguY29zKDIqTWF0aC5QSS9DZSksUGU9TWF0aC5zaW4oMipNYXRo''@;'; + put 'put ''LlBJL0NlKSxRZT0wO1FlPFM7UWUrPUNlKWZvcih2YXIgJGU9RGUsZ3Q9UGUsd3Q9MDt3dDx5ZTt3dCsrKXt2YXIgdnQ9VltRZSt3dF0sQXQ9VFtRZSt3dF0sbXQ9VltRZSt3dCt5ZV0saHQ9VFtRZSt3dCt5ZV0sQnQ9JGUqbXQtZ3QqaHQ7aHQ9JGUqaHQrZ3QqbXQsVltRZSt3dF09dnQrKG10''@;'; + put 'put ''PUJ0KSxUW1FlK3d0XT1BdCtodCxWW1FlK3d0K3llXT12dC1tdCxUW1FlK3d0K3llXT1BdC1odCx3dCE9PUNlJiYoQnQ9RGUqJGUtUGUqZ3QsZ3Q9RGUqZ3QrUGUqJGUsJGU9QnQpfX0sU2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKHgsUCl7dmFyIFY9MXxNYXRoLm1heChQLHgp''@;'; + put 'put ''LFQ9MSZWLFM9MDtmb3IoVj1WLzJ8MDtWO1Y+Pj49MSlTKys7cmV0dXJuIDE8PFMrMStUfSxTZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKHgsUCxWKXtpZighKFY8PTEpKWZvcih2YXIgVD0wO1Q8Vi8yO1QrKyl7dmFyIFM9eFtUXTt4W1RdPXhbVi1ULTFdLHhbVi1ULTFdPVMsUz1Q''@;'; + put 'put ''W1RdLFBbVF09LVBbVi1ULTFdLFBbVi1ULTFdPS1TfX0sU2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj0wLFQ9MDtUPFAvMjtUKyspe3ZhciBTPTgxOTIqTWF0aC5yb3VuZCh4WzIqVCsxXS9QKStNYXRoLnJvdW5kKHhbMipUXS9QKStWO3hbVF09Njcx''@;'; + put 'put ''MDg4NjMmUyxWPVM8NjcxMDg4NjQ/MDpTLzY3MTA4ODY0fDB9cmV0dXJuIHh9LFNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9MDtGPFA7RisrKVZbMipGXT04MTkxJihTKz0wfHhbRl0pLFZbMipGKzFdPTgxOTEmKFM+Pj49MTMpLFM+Pj49''@;'; + put 'put ''MTM7Zm9yKEY9MipQO0Y8VDsrK0YpVltGXT0wO1koMD09PVMpLFkoMD09KC04MTkyJlMpKX0sU2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPTA7Vjx4O1YrKylQW1ZdPTA7cmV0dXJuIFB9LFNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHgs''@;'; + put 'put ''UCxWKXt2YXIgVD0yKnRoaXMuZ3Vlc3NMZW4xM2IoeC5sZW5ndGgsUC5sZW5ndGgpLFM9dGhpcy5tYWtlUkJUKFQpLEY9dGhpcy5zdHViKFQpLHllPW5ldyBBcnJheShUKSxDZT1uZXcgQXJyYXkoVCksRGU9bmV3IEFycmF5KFQpLFBlPW5ldyBBcnJheShUKSxRZT1uZXcgQXJyYXkoVCksJGU9''@;'; + put 'put ''bmV3IEFycmF5KFQpLGd0PVYud29yZHM7Z3QubGVuZ3RoPVQsdGhpcy5jb252ZXJ0MTNiKHgud29yZHMseC5sZW5ndGgseWUsVCksdGhpcy5jb252ZXJ0MTNiKFAud29yZHMsUC5sZW5ndGgsUGUsVCksdGhpcy50cmFuc2Zvcm0oeWUsRixDZSxEZSxULFMpLHRoaXMudHJhbnNmb3JtKFBlLEYs''@;'; + put 'put ''UWUsJGUsVCxTKTtmb3IodmFyIHd0PTA7d3Q8VDt3dCsrKXt2YXIgdnQ9Q2Vbd3RdKlFlW3d0XS1EZVt3dF0qJGVbd3RdO0RlW3d0XT1DZVt3dF0qJGVbd3RdK0RlW3d0XSpRZVt3dF0sQ2Vbd3RdPXZ0fXJldHVybiB0aGlzLmNvbmp1Z2F0ZShDZSxEZSxUKSx0aGlzLnRyYW5zZm9ybShDZSxE''@;'; + put 'put ''ZSxndCxGLFQsUyksdGhpcy5jb25qdWdhdGUoZ3QsRixUKSx0aGlzLm5vcm1hbGl6ZTEzYihndCxUKSxWLm5lZ2F0aXZlPXgubmVnYXRpdmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD14Lmxlbmd0aCtQLmxlbmd0aCxWLnN0cmlwKCl9LE4ucHJvdG90eXBlLm11bD1mdW5jdGlvbih4KXt2YXIgUD1u''@;'; + put 'put ''ZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLHRoaXMubXVsVG8oeCxQKX0sTi5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5n''@;'; + put 'put ''dGgpLGtlKHRoaXMseCxQKX0sTi5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKHgsdGhpcyl9LE4ucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpO2Zvcih2YXIgUD0wLFY9MDtW''@;'; + put 'put ''PHRoaXMubGVuZ3RoO1YrKyl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkqeCxTPSg2NzEwODg2MyZUKSsoNjcxMDg4NjMmUCk7UD4+PTI2LFArPVQvNjcxMDg4NjR8MCxQKz1TPj4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZTfXJldHVybiAwIT09UCYmKHRoaXMud29yZHNbVl09UCx0aGlz''@;'; + put 'put ''Lmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oeCl9LE4ucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sTi5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlz''@;'; + put 'put ''LmltdWwodGhpcy5jbG9uZSgpKX0sTi5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgpe3ZhciBQPWZ1bmN0aW9uKEYpe2Zvcih2YXIgeWU9bmV3IEFycmF5KEYuYml0TGVuZ3RoKCkpLENlPTA7Q2U8eWUubGVuZ3RoO0NlKyspe3ZhciBQZT1DZSUyNjt5ZVtDZV09KEYud29yZHNbQ2UvMjZ8MF0m''@;'; + put 'put ''MTw8UGUpPj4+UGV9cmV0dXJuIHllfSh4KTtpZigwPT09UC5sZW5ndGgpcmV0dXJuIG5ldyBOKDEpO2Zvcih2YXIgVj10aGlzLFQ9MDtUPFAubGVuZ3RoJiYwPT09UFtUXTtUKyssVj1WLnNxcigpKTtpZigrK1Q8UC5sZW5ndGgpZm9yKHZhciBTPVYuc3FyKCk7VDxQLmxlbmd0aDtUKyssUz1T''@;'; + put 'put ''LnNxcigpKTAhPT1QW1RdJiYoVj1WLm11bChTKSk7cmV0dXJuIFZ9LE4ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFAsVj14JTI2LFQ9KHgtVikvMjYsUz02NzEwODg2Mz4+PjI2LVY8PDI2LVY7aWYoMCE9PVYpe3ZhciBGPTA7''@;'; + put 'put ''Zm9yKFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIHllPXRoaXMud29yZHNbUF0mUzt0aGlzLndvcmRzW1BdPSgwfHRoaXMud29yZHNbUF0pLXllPDxWfEYsRj15ZT4+PjI2LVZ9RiYmKHRoaXMud29yZHNbUF09Rix0aGlzLmxlbmd0aCsrKX1pZigwIT09VCl7Zm9yKFA9dGhpcy5sZW5ndGgt''@;'; + put 'put ''MTtQPj0wO1AtLSl0aGlzLndvcmRzW1ArVF09dGhpcy53b3Jkc1tQXTtmb3IoUD0wO1A8VDtQKyspdGhpcy53b3Jkc1tQXT0wO3RoaXMubGVuZ3RoKz1UfXJldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZl''@;'; + put 'put ''KSx0aGlzLml1c2hsbih4KX0sTi5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVDtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCksVD1QPyhQLVAlMjYpLzI2OjA7dmFyIFM9eCUyNixGPU1hdGgubWluKCh4LVMpLzI2LHRoaXMubGVuZ3RoKSx5ZT02NzEwODg2M142NzEw''@;'; + put 'put ''ODg2Mz4+PlM8PFMsQ2U9VjtpZihULT1GLFQ9TWF0aC5tYXgoMCxUKSxDZSl7Zm9yKHZhciBEZT0wO0RlPEY7RGUrKylDZS53b3Jkc1tEZV09dGhpcy53b3Jkc1tEZV07Q2UubGVuZ3RoPUZ9aWYoMCE9PUYpaWYodGhpcy5sZW5ndGg+Rilmb3IodGhpcy5sZW5ndGgtPUYsRGU9MDtEZTx0aGlz''@;'; + put 'put ''Lmxlbmd0aDtEZSsrKXRoaXMud29yZHNbRGVdPXRoaXMud29yZHNbRGUrRl07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgUGU9MDtmb3IoRGU9dGhpcy5sZW5ndGgtMTtEZT49MCYmKDAhPT1QZXx8RGU+PVQpO0RlLS0pe3ZhciBRZT0wfHRoaXMud29yZHNbRGVdO3Ro''@;'; + put 'put ''aXMud29yZHNbRGVdPVBlPDwyNi1TfFFlPj4+UyxQZT1RZSZ5ZX1yZXR1cm4gQ2UmJjAhPT1QZSYmKENlLndvcmRzW0NlLmxlbmd0aCsrXT1QZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaXNocm49''@;'; + put 'put ''ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih4LFAsVil9LE4ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih4KX0sTi5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''Y2xvbmUoKS5pdXNobG4oeCl9LE4ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih4KX0sTi5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oeCl9LE4ucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9u''@;'; + put 'put ''KHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9Vnx8ISh0aGlzLndvcmRzW1ZdJjE8PFApKX0sTi5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIg''@;'; + put 'put ''UD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1WP3RoaXM6KDAhPT1QJiZWKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oVix0aGlzLmxlbmd0aCksMCE9PVAmJih0''@;'; + put 'put ''aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PlA8PFApLHRoaXMuc3RyaXAoKSl9LE4ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHgpfSxOLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih4KXtyZXR1cm4g''@;'; + put 'put ''WSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwP3RoaXMuaXN1Ym4oLXgpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8eD8odGhpcy53b3Jkc1swXT14LSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlz''@;'; + put 'put ''KToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHgpfSxOLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oeCl7dGhpcy53b3Jkc1swXSs9eDtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPj02NzEw''@;'; + put 'put ''ODg2NDtQKyspdGhpcy53b3Jkc1tQXS09NjcxMDg4NjQsUD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tQKzFdPTE6dGhpcy53b3Jkc1tQKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFArMSksdGhpc30sTi5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24o''@;'; + put 'put ''eCl7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwKXJldHVybiB0aGlzLmlhZGRuKC14KTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09''@;'; + put 'put ''eCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbUF08MDtQKyspdGhpcy53b3Jkc1tQXSs9NjcxMDg4NjQsdGhpcy53b3Jk''@;'; + put 'put ''c1tQKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih4KX0sTi5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHgpfSxOLnByb3RvdHlwZS5pYWJz''@;'; + put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxOLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sTi5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxTO3RoaXMuX2V4cGFuZCh4Lmxlbmd0''@;'; + put 'put ''aCtWKTt2YXIgeWU9MDtmb3IoVD0wO1Q8eC5sZW5ndGg7VCsrKXtTPSgwfHRoaXMud29yZHNbVCtWXSkreWU7dmFyIENlPSgwfHgud29yZHNbVF0pKlA7eWU9KChTLT02NzEwODg2MyZDZSk+PjI2KS0oQ2UvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tUK1ZdPTY3MTA4ODYzJlN9Zm9yKDtUPHRo''@;'; + put 'put ''aXMubGVuZ3RoLVY7VCsrKXllPShTPSgwfHRoaXMud29yZHNbVCtWXSkreWUpPj4yNix0aGlzLndvcmRzW1QrVl09NjcxMDg4NjMmUztpZigwPT09eWUpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoWSgtMT09PXllKSx5ZT0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl5ZT0oUz0tKDB8dGhpcy53''@;'; + put 'put ''b3Jkc1tUXSkreWUpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHgsUCl7dmFyIFYsVD10aGlzLmNsb25lKCksUz14LEY9MHxTLndvcmRzW1MubGVuZ3RoLTFdOzAh''@;'; + put 'put ''PShWPTI2LXRoaXMuX2NvdW50Qml0cyhGKSkmJihTPVMudXNobG4oViksVC5pdXNobG4oViksRj0wfFMud29yZHNbUy5sZW5ndGgtMV0pO3ZhciB5ZSxDZT1ULmxlbmd0aC1TLmxlbmd0aDtpZigibW9kIiE9PVApeyh5ZT1uZXcgTihudWxsKSkubGVuZ3RoPUNlKzEseWUud29yZHM9bmV3IEFy''@;'; + put 'put ''cmF5KHllLmxlbmd0aCk7Zm9yKHZhciBEZT0wO0RlPHllLmxlbmd0aDtEZSsrKXllLndvcmRzW0RlXT0wfXZhciBQZT1ULmNsb25lKCkuX2lzaGxuc3VibXVsKFMsMSxDZSk7MD09PVBlLm5lZ2F0aXZlJiYoVD1QZSx5ZSYmKHllLndvcmRzW0NlXT0xKSk7Zm9yKHZhciBRZT1DZS0xO1FlPj0w''@;'; + put 'put ''O1FlLS0pe3ZhciAkZT02NzEwODg2NCooMHxULndvcmRzW1MubGVuZ3RoK1FlXSkrKDB8VC53b3Jkc1tTLmxlbmd0aCtRZS0xXSk7Zm9yKCRlPU1hdGgubWluKCRlL0Z8MCw2NzEwODg2MyksVC5faXNobG5zdWJtdWwoUywkZSxRZSk7MCE9PVQubmVnYXRpdmU7KSRlLS0sVC5uZWdhdGl2ZT0w''@;'; + put 'put ''LFQuX2lzaGxuc3VibXVsKFMsMSxRZSksVC5pc1plcm8oKXx8KFQubmVnYXRpdmVePTEpO3llJiYoeWUud29yZHNbUWVdPSRlKX1yZXR1cm4geWUmJnllLnN0cmlwKCksVC5zdHJpcCgpLCJkaXYiIT09UCYmMCE9PVYmJlQuaXVzaHJuKFYpLHtkaXY6eWV8fG51bGwsbW9kOlR9fSxOLnByb3Rv''@;'; + put 'put ''dHlwZS5kaXZtb2Q9ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKCF4LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IE4oMCksbW9kOm5ldyBOKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmU/KEY9dGhpcy5uZWcoKS5kaXZtb2QoeCxQKSwibW9kIiE9PVAmJihU''@;'; + put 'put ''PUYuZGl2Lm5lZygpKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlhZGQoeCkpLHtkaXY6VCxtb2Q6U30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZT8oRj10aGlzLmRpdm1vZCh4Lm5lZygpLFApLCJtb2QiIT09UCYmKFQ9Ri5kaXYu''@;'; + put 'put ''bmVnKCkpLHtkaXY6VCxtb2Q6Ri5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ4Lm5lZ2F0aXZlKT8oRj10aGlzLm5lZygpLmRpdm1vZCh4Lm5lZygpLFApLCJkaXYiIT09UCYmKFM9Ri5tb2QubmVnKCksViYmMCE9PVMubmVnYXRpdmUmJlMuaXN1Yih4KSkse2RpdjpGLmRpdixtb2Q6U30pOngu''@;'; + put 'put ''bGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh4KTwwP3tkaXY6bmV3IE4oMCksbW9kOnRoaXN9OjE9PT14Lmxlbmd0aD8iZGl2Ij09PVA/e2Rpdjp0aGlzLmRpdm4oeC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09UD97ZGl2Om51bGwsbW9kOm5ldyBOKHRoaXMubW9kbih4LndvcmRz''@;'; + put 'put ''WzBdKSl9OntkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KHgsUCk7dmFyIFQsUyxGfSxOLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsImRpdiIsITEpLmRpdn0sTi5w''@;'; + put 'put ''cm90b3R5cGUubW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCExKS5tb2R9LE4ucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsIm1vZCIsITApLm1vZH0sTi5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oeCl7dmFyIFA9''@;'; + put 'put ''dGhpcy5kaXZtb2QoeCk7aWYoUC5tb2QuaXNaZXJvKCkpcmV0dXJuIFAuZGl2O3ZhciBWPTAhPT1QLmRpdi5uZWdhdGl2ZT9QLm1vZC5pc3ViKHgpOlAubW9kLFQ9eC51c2hybigxKSxTPXguYW5kbG4oMSksRj1WLmNtcChUKTtyZXR1cm4gRjwwfHwxPT09UyYmMD09PUY/UC5kaXY6MCE9PVAu''@;'; + put 'put ''ZGl2Lm5lZ2F0aXZlP1AuZGl2LmlzdWJuKDEpOlAuZGl2LmlhZGRuKDEpfSxOLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHgpe1koeDw9NjcxMDg4NjMpO2Zvcih2YXIgUD02NzEwODg2NCV4LFY9MCxUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pVj0oUCpWKygwfHRoaXMud29yZHNbVF0pKSV4''@;'; + put 'put ''O3JldHVybiBWfSxOLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9MCxWPXRoaXMubGVuZ3RoLTE7Vj49MDtWLS0pe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKzY3MTA4ODY0KlA7dGhpcy53b3Jkc1tWXT1UL3h8MCxQPVQleH1yZXR1cm4gdGhp''@;'; + put 'put ''cy5zdHJpcCgpfSxOLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oeCl9LE4ucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAhPT1QLm5l''@;'; + put 'put ''Z2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBUPW5ldyBOKDEpLFM9bmV3IE4oMCksRj1uZXcgTigwKSx5ZT1uZXcgTigxKSxDZT0wO1AuaXNFdmVuKCkmJlYuaXNFdmVuKCk7KVAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpLCsrQ2U7Zm9yKHZhciBEZT1WLmNsb25lKCksUGU9UC5j''@;'; + put 'put ''bG9uZSgpOyFQLmlzWmVybygpOyl7Zm9yKHZhciBRZT0wLCRlPTE7MD09KFAud29yZHNbMF0mJGUpJiZRZTwyNjsrK1FlLCRlPDw9MSk7aWYoUWU+MClmb3IoUC5pdXNocm4oUWUpO1FlLS0gPjA7KShULmlzT2RkKCl8fFMuaXNPZGQoKSkmJihULmlhZGQoRGUpLFMuaXN1YihQZSkpLFQuaXVz''@;'; + put 'put ''aHJuKDEpLFMuaXVzaHJuKDEpO2Zvcih2YXIgZ3Q9MCx3dD0xOzA9PShWLndvcmRzWzBdJnd0KSYmZ3Q8MjY7KytndCx3dDw8PTEpO2lmKGd0PjApZm9yKFYuaXVzaHJuKGd0KTtndC0tID4wOykoRi5pc09kZCgpfHx5ZS5pc09kZCgpKSYmKEYuaWFkZChEZSkseWUuaXN1YihQZSkpLEYuaXVz''@;'; + put 'put ''aHJuKDEpLHllLml1c2hybigxKTtQLmNtcChWKT49MD8oUC5pc3ViKFYpLFQuaXN1YihGKSxTLmlzdWIoeWUpKTooVi5pc3ViKFApLEYuaXN1YihUKSx5ZS5pc3ViKFMpKX1yZXR1cm57YTpGLGI6eWUsZ2NkOlYuaXVzaGxuKENlKX19LE4ucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbih4KXtZ''@;'; + put 'put ''KDA9PT14Lm5lZ2F0aXZlKSxZKCF4LmlzWmVybygpKTt2YXIgUD10aGlzLFY9eC5jbG9uZSgpO1A9MCE9PVAubmVnYXRpdmU/UC51bW9kKHgpOlAuY2xvbmUoKTtmb3IodmFyIFQsUz1uZXcgTigxKSxGPW5ldyBOKDApLHllPVYuY2xvbmUoKTtQLmNtcG4oMSk+MCYmVi5jbXBuKDEpPjA7KXtm''@;'; + put 'put ''b3IodmFyIENlPTAsRGU9MTswPT0oUC53b3Jkc1swXSZEZSkmJkNlPDI2OysrQ2UsRGU8PD0xKTtpZihDZT4wKWZvcihQLml1c2hybihDZSk7Q2UtLSA+MDspUy5pc09kZCgpJiZTLmlhZGQoeWUpLFMuaXVzaHJuKDEpO2Zvcih2YXIgUGU9MCxRZT0xOzA9PShWLndvcmRzWzBdJlFlKSYmUGU8''@;'; + put 'put ''MjY7KytQZSxRZTw8PTEpO2lmKFBlPjApZm9yKFYuaXVzaHJuKFBlKTtQZS0tID4wOylGLmlzT2RkKCkmJkYuaWFkZCh5ZSksRi5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxTLmlzdWIoRikpOihWLmlzdWIoUCksRi5pc3ViKFMpKX1yZXR1cm4oVD0wPT09UC5jbXBuKDEpP1M6''@;'; + put 'put ''RikuY21wbigwKTwwJiZULmlhZGQoeCksVH0sTi5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKHgpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIHguYWJzKCk7aWYoeC5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgUD10aGlzLmNsb25lKCksVj14LmNsb25lKCk7UC5uZWdhdGl2ZT0wLFYu''@;'; + put 'put ''bmVnYXRpdmU9MDtmb3IodmFyIFQ9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpO1QrKylQLml1c2hybigxKSxWLml1c2hybigxKTtmb3IoOzspe2Zvcig7UC5pc0V2ZW4oKTspUC5pdXNocm4oMSk7Zm9yKDtWLmlzRXZlbigpOylWLml1c2hybigxKTt2YXIgUz1QLmNtcChWKTtpZihTPDApe3Zh''@;'; + put 'put ''ciBGPVA7UD1WLFY9Rn1lbHNlIGlmKDA9PT1TfHwwPT09Vi5jbXBuKDEpKWJyZWFrO1AuaXN1YihWKX1yZXR1cm4gVi5pdXNobG4oVCl9LE4ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZWdjZCh4KS5hLnVtb2QoeCl9LE4ucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLndvcmRzWzBdJnh9LE4ucHJvdG90eXBlLmJpbmNuPWZ1''@;'; + put 'put ''bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KTt2YXIgUD14JTI2LFY9KHgtUCkvMjYsVD0xPDxQO2lmKHRoaXMubGVuZ3RoPD1WKXJldHVybiB0aGlzLl9leHBhbmQoVisxKSx0aGlzLndvcmRzW1ZdfD1ULHRoaXM7Zm9yKHZhciBTPVQsRj1WOzAhPT1TJiZGPHRoaXMubGVuZ3RoO0Yr''@;'; + put 'put ''Kyl7dmFyIHllPTB8dGhpcy53b3Jkc1tGXTtTPSh5ZSs9Uyk+Pj4yNix0aGlzLndvcmRzW0ZdPXllJj02NzEwODg2M31yZXR1cm4gMCE9PVMmJih0aGlzLndvcmRzW0ZdPVMsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlz''@;'; + put 'put ''Lmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LE4ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oeCl7dmFyIFAsVj14PDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFWKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZWKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4x''@;'; + put 'put ''KVA9MTtlbHNle1YmJih4PS14KSxZKHg8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBUPTB8dGhpcy53b3Jkc1swXTtQPVQ9PT14PzA6VDx4Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVA6UH0sTi5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHgpe2lmKDAhPT10''@;'; + put 'put ''aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmUpcmV0dXJuIDE7dmFyIFA9dGhpcy51Y21wKHgpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oeCl7''@;'; + put 'put ''aWYodGhpcy5sZW5ndGg+eC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8eC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBQPTAsVj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0wfHRoaXMud29yZHNbVl0sUz0wfHgud29yZHNbVl07aWYoVCE9PVMpe1Q8Uz9QPS0xOlQ+UyYm''@;'; + put 'put ''KFA9MSk7YnJlYWt9fXJldHVybiBQfSxOLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHgpe3JldHVybiAxPT09dGhpcy5jbXAoeCl9LE4ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oeCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuY21wbih4KT49MH0sTi5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcCh4KT49MH0sTi5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHgpe3JldHVybi0xPT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5sdD1mdW5jdGlvbih4KXtyZXR1cm4tMT09PXRoaXMuY21w''@;'; + put 'put ''KHgpfSxOLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk8PTB9LE4ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAoeCk8PTB9LE4ucHJvdG90eXBlLmVxbj1mdW5jdGlvbih4KXtyZXR1cm4gMD09PXRoaXMuY21wbih4KX0sTi5w''@;'; + put 'put ''cm90b3R5cGUuZXE9ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcCh4KX0sTi5yZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyBuZSh4KX0sTi5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBj''@;'; + put 'put ''b250ZXh0IiksWSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSx4LmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdp''@;'; + put 'put ''dGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxOLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucmVkPXgsdGhpc30sTi5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRo''@;'; + put 'put ''aXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFk''@;'; + put 'put ''ZCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRo''@;'; + put 'put ''aXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQu''@;'; + put 'put ''aXN1Yih0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRo''@;'; + put 'put ''aXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx4KSx0aGlzLnJlZC5tdWwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0''@;'; + put 'put ''aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMseCksdGhpcy5yZWQuaW11bCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJp''@;'; + put 'put ''ZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxOLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIFkodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sTi5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5''@;'; + put 'put ''IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LE4ucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCYmIXgucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMp''@;'; + put 'put ''LHRoaXMucmVkLnBvdyh0aGlzLHgpfTt2YXIgSWU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBUZSh4LFApe3RoaXMubmFtZT14LHRoaXMucD1uZXcgTihQLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgTigxKS5p''@;'; + put 'put ''dXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gRWUoKXtUZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9u''@;'; + put 'put ''IGhlKCl7VGUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBPKCl7VGUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZm''@;'; + put 'put ''ZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiB6KCl7VGUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBuZSh4KXtpZigic3RyaW5nIj09dHlwZW9mIHgpe3ZhciBQ''@;'; + put 'put ''PU4uX3ByaW1lKHgpO3RoaXMubT1QLnAsdGhpcy5wcmltZT1QfWVsc2UgWSh4Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXgsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHRlKHgpe25lLmNhbGwodGhpcyx4KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRM''@;'; + put 'put ''ZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBOKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52''@;'; + put 'put ''PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfVRlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHg9bmV3IE4obnVsbCk7cmV0dXJuIHgu''@;'; + put 'put ''d29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx4fSxUZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbih4KXt2YXIgUCxWPXg7ZG97dGhpcy5zcGxpdChWLHRoaXMudG1wKSxQPShWPShWPXRoaXMuaW11bEsoVikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGls''@;'; + put 'put ''ZShQPnRoaXMubik7dmFyIFQ9UDx0aGlzLm4/LTE6Vi51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1UPyhWLndvcmRzWzBdPTAsVi5sZW5ndGg9MSk6VD4wP1YuaXN1Yih0aGlzLnApOnZvaWQgMCE9PVYuc3RyaXA/Vi5zdHJpcCgpOlYuX3N0cmlwKCksVn0sVGUucHJvdG90eXBlLnNwbGl0PWZ1''@;'; + put 'put ''bmN0aW9uKHgsUCl7eC5pdXNocm4odGhpcy5uLDAsUCl9LFRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtyZXR1cm4geC5pbXVsKHRoaXMuayl9LFcoRWUsVGUpLEVlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj00MTk0MzAzLFQ9TWF0aC5taW4oeC5sZW5n''@;'; + put 'put ''dGgsOSksUz0wO1M8VDtTKyspUC53b3Jkc1tTXT14LndvcmRzW1NdO2lmKFAubGVuZ3RoPVQseC5sZW5ndGg8PTkpcmV0dXJuIHgud29yZHNbMF09MCx2b2lkKHgubGVuZ3RoPTEpO3ZhciBGPXgud29yZHNbOV07Zm9yKFAud29yZHNbUC5sZW5ndGgrK109RiZWLFM9MTA7Uzx4Lmxlbmd0aDtT''@;'; + put 'put ''Kyspe3ZhciB5ZT0wfHgud29yZHNbU107eC53b3Jkc1tTLTEwXT0oeWUmVik8PDR8Rj4+PjIyLEY9eWV9eC53b3Jkc1tTLTEwXT1GPj4+PTIyLHgubGVuZ3RoLT0wPT09RiYmeC5sZW5ndGg+MTA/MTA6OX0sRWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe3gud29yZHNbeC5sZW5ndGhd''@;'; + put 'put ''PTAseC53b3Jkc1t4Lmxlbmd0aCsxXT0wLHgubGVuZ3RoKz0yO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MHx4LndvcmRzW1ZdO3gud29yZHNbVl09NjcxMDg4NjMmKFArPTk3NypUKSxQPTY0KlQrKFAvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT14LndvcmRzW3gubGVu''@;'; + put 'put ''Z3RoLTFdJiYoeC5sZW5ndGgtLSwwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmeC5sZW5ndGgtLSkseH0sVyhoZSxUZSksVyhPLFRlKSxXKHosVGUpLHoucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MTkqKDB8eC53b3Jk''@;'; + put 'put ''c1tWXSkrUCxTPTY3MTA4ODYzJlQ7VD4+Pj0yNix4LndvcmRzW1ZdPVMsUD1UfXJldHVybiAwIT09UCYmKHgud29yZHNbeC5sZW5ndGgrK109UCkseH0sTi5fcHJpbWU9ZnVuY3Rpb24oeCl7aWYoSWVbeF0pcmV0dXJuIEllW3hdO3ZhciBQO2lmKCJrMjU2Ij09PXgpUD1uZXcgRWU7ZWxzZSBp''@;'; + put 'put ''ZigicDIyNCI9PT14KVA9bmV3IGhlO2Vsc2UgaWYoInAxOTIiPT09eClQPW5ldyBPO2Vsc2V7aWYoInAyNTUxOSIhPT14KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3gpO1A9bmV3IHp9cmV0dXJuIEllW3hdPVAsUH0sbmUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKHgp''@;'; + put 'put ''e1koMD09PXgubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksWSh4LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxuZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oeCxQKXtZKDA9PSh4Lm5lZ2F0aXZlfFAubmVnYXRpdmUpLCJyZWQg''@;'; + put 'put ''d29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQmJngucmVkPT09UC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sbmUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKHgpLl9mb3JjZVJl''@;'; + put 'put ''ZCh0aGlzKTp4LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oeCl7cmV0dXJuIHguaXNaZXJvKCk/eC5jbG9uZSgpOnRoaXMubS5zdWIoeCkuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5f''@;'; + put 'put ''dmVyaWZ5Mih4LFApO3ZhciBWPXguYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5pYWRkKFApO3JldHVybiBWLmNt''@;'; + put 'put ''cCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWfSxuZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguc3ViKFApO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5p''@;'; + put 'put ''c3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaXN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0aGlzLm0pLFZ9LG5lLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh4KSx0aGlzLmltb2QoeC51c2hsbihQ''@;'; + put 'put ''KSl9LG5lLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoeCxQKSx0aGlzLmltb2QoeC5pbXVsKFApKX0sbmUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCksdGhpcy5pbW9kKHgubXVsKFApKX0sbmUu''@;'; + put 'put ''cHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW11bCh4LHguY2xvbmUoKSl9LG5lLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubXVsKHgseCl9LG5lLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHgpe2lmKHguaXNaZXJvKCkpcmV0dXJuIHguY2xv''@;'; + put 'put ''bmUoKTt2YXIgUD10aGlzLm0uYW5kbG4oMyk7aWYoWShQJTI9PTEpLDM9PT1QKXt2YXIgVj10aGlzLm0uYWRkKG5ldyBOKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHgsVil9Zm9yKHZhciBUPXRoaXMubS5zdWJuKDEpLFM9MDshVC5pc1plcm8oKSYmMD09PVQuYW5kbG4oMSk7KVMr''@;'; + put 'put ''KyxULml1c2hybigxKTtZKCFULmlzWmVybygpKTt2YXIgRj1uZXcgTigxKS50b1JlZCh0aGlzKSx5ZT1GLnJlZE5lZygpLENlPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxEZT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKERlPW5ldyBOKDIqRGUqRGUpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBv''@;'; + put 'put ''dyhEZSxDZSkuY21wKHllKTspRGUucmVkSUFkZCh5ZSk7Zm9yKHZhciBQZT10aGlzLnBvdyhEZSxUKSxRZT10aGlzLnBvdyh4LFQuYWRkbigxKS5pdXNocm4oMSkpLCRlPXRoaXMucG93KHgsVCksZ3Q9UzswIT09JGUuY21wKEYpOyl7Zm9yKHZhciB3dD0kZSx2dD0wOzAhPT13dC5jbXAoRik7''@;'; + put 'put ''dnQrKyl3dD13dC5yZWRTcXIoKTtZKHZ0PGd0KTt2YXIgQXQ9dGhpcy5wb3coUGUsbmV3IE4oMSkuaXVzaGxuKGd0LXZ0LTEpKTtRZT1RZS5yZWRNdWwoQXQpLFBlPUF0LnJlZFNxcigpLCRlPSRlLnJlZE11bChQZSksZ3Q9dnR9cmV0dXJuIFFlfSxuZS5wcm90b3R5cGUuaW52bT1mdW5jdGlv''@;'; + put 'put ''bih4KXt2YXIgUD14Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09UC5uZWdhdGl2ZT8oUC5uZWdhdGl2ZT0wLHRoaXMuaW1vZChQKS5yZWROZWcoKSk6dGhpcy5pbW9kKFApfSxuZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgsUCl7aWYoUC5pc1plcm8oKSlyZXR1cm4gbmV3IE4oMSkudG9S''@;'; + put 'put ''ZWQodGhpcyk7aWYoMD09PVAuY21wbigxKSlyZXR1cm4geC5jbG9uZSgpO3ZhciBWPW5ldyBBcnJheSgxNik7VlswXT1uZXcgTigxKS50b1JlZCh0aGlzKSxWWzFdPXg7Zm9yKHZhciBUPTI7VDxWLmxlbmd0aDtUKyspVltUXT10aGlzLm11bChWW1QtMV0seCk7dmFyIFM9VlswXSxGPTAseWU9''@;'; + put 'put ''MCxDZT1QLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09Q2UmJihDZT0yNiksVD1QLmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIERlPVAud29yZHNbVF0sUGU9Q2UtMTtQZT49MDtQZS0tKXt2YXIgUWU9RGU+PlBlJjE7UyE9PVZbMF0mJihTPXRoaXMuc3FyKFMpKSwwIT09UWV8fDAhPT1GPyhG''@;'; + put 'put ''PDw9MSxGfD1RZSwoND09Kyt5ZXx8MD09PVQmJjA9PT1QZSkmJihTPXRoaXMubXVsKFMsVltGXSkseWU9MCxGPTApKTp5ZT0wfUNlPTI2fXJldHVybiBTfSxuZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHgpe3ZhciBQPXgudW1vZCh0aGlzLm0pO3JldHVybiBQPT09eD9QLmNsb25l''@;'; + put 'put ''KCk6UH0sbmUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHgpe3ZhciBQPXguY2xvbmUoKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSxOLm1vbnQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyB0ZSh4KX0sVyh0ZSxuZSksdGUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5pbW9kKHgudXNobG4odGhpcy5zaGlmdCkpfSx0ZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5pbW9kKHgubXVsKHRoaXMucmludikpO3JldHVybiBQLnJlZD1udWxsLFB9LHRlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7aWYoeC5p''@;'; + put 'put ''c1plcm8oKXx8UC5pc1plcm8oKSlyZXR1cm4geC53b3Jkc1swXT0wLHgubGVuZ3RoPTEseDt2YXIgVj14LmltdWwoUCksVD1WLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5zaGlm''@;'; + put 'put ''dCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxGLl9mb3JjZVJlZCh0aGlzKX0sdGUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJuIG5l''@;'; + put 'put ''dyBOKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgVj14Lm11bChQKSxUPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFM9Vi5pc3ViKFQpLml1c2hybih0aGlzLnNoaWZ0KSxGPVM7cmV0dXJuIFMuY21wKHRoaXMubSk+PTA/''@;'; + put 'put ''Rj1TLmlzdWIodGhpcy5tKTpTLmNtcG4oMCk8MCYmKEY9Uy5pYWRkKHRoaXMubSkpLEYuX2ZvcmNlUmVkKHRoaXMpfSx0ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHguX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShV''@;'; + put 'put ''PVoubm1kKFUpLHRoaXMpfSw5MjgyOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDE1NSksbGU9Wig1MTA4KTtmdW5jdGlvbiBZKFFlKXtyZXR1cm4oWT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbigk''@;'; + put 'put ''ZSl7cmV0dXJuIHR5cGVvZiAkZX06ZnVuY3Rpb24oJGUpe3JldHVybiAkZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmJGUuY29uc3RydWN0b3I9PT1TeW1ib2wmJiRlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgJGV9KShRZSl9dmFyIFcsTixlZT1aKDIxMzYpLmNv''@;'; + put 'put ''ZGVzLHE9ZWUuRVJSX0FNQklHVU9VU19BUkdVTUVOVCxKPWVlLkVSUl9JTlZBTElEX0FSR19UWVBFLHNlPWVlLkVSUl9JTlZBTElEX0FSR19WQUxVRSxvZT1lZS5FUlJfSU5WQUxJRF9SRVRVUk5fVkFMVUUsY2U9ZWUuRVJSX01JU1NJTkdfQVJHUyxkZT1aKDU5NjEpLHZlPVooOTUzOSkuaW5z''@;'; + put 'put ''cGVjdCxBZT1aKDk1MzkpLnR5cGVzLGtlPUFlLmlzUHJvbWlzZSxTZT1BZS5pc1JlZ0V4cCxJZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ246Wig4MDkxKS5hc3NpZ24sVGU9T2JqZWN0LmlzP09iamVjdC5pczpaKDYwOSk7ZnVuY3Rpb24gRWUoKXt2YXIgUWU9Wig5MTU4KTtXPVFlLmlz''@;'; + put 'put ''RGVlcEVxdWFsLE49UWUuaXNEZWVwU3RyaWN0RXF1YWx9dmFyIGhlPSExLE89VS5leHBvcnRzPXgsej17fTtmdW5jdGlvbiBuZShRZSl7dGhyb3cgUWUubWVzc2FnZSBpbnN0YW5jZW9mIEVycm9yP1FlLm1lc3NhZ2U6bmV3IGRlKFFlKX1mdW5jdGlvbiB0ZShRZSwkZSxndCx3dCl7aWYoIWd0''@;'; + put 'put ''KXt2YXIgdnQ9ITE7aWYoMD09PSRlKXZ0PSEwLHd0PSJObyB2YWx1ZSBhcmd1bWVudCBwYXNzZWQgdG8gYGFzc2VydC5vaygpYCI7ZWxzZSBpZih3dCBpbnN0YW5jZW9mIEVycm9yKXRocm93IHd0O3ZhciBBdD1uZXcgZGUoe2FjdHVhbDpndCxleHBlY3RlZDohMCxtZXNzYWdlOnd0LG9wZXJh''@;'; + put 'put ''dG9yOiI9PSIsc3RhY2tTdGFydEZuOlFlfSk7dGhyb3cgQXQuZ2VuZXJhdGVkTWVzc2FnZT12dCxBdH19ZnVuY3Rpb24geCgpe2Zvcih2YXIgUWU9YXJndW1lbnRzLmxlbmd0aCwkZT1uZXcgQXJyYXkoUWUpLGd0PTA7Z3Q8UWU7Z3QrKykkZVtndF09YXJndW1lbnRzW2d0XTt0ZS5hcHBseSh2''@;'; + put 'put ''b2lkIDAsW3gsJGUubGVuZ3RoXS5jb25jYXQoJGUpKX1PLmZhaWw9ZnVuY3Rpb24gUWUoJGUsZ3Qsd3QsdnQsQXQpe3ZhciBtdCxodD1hcmd1bWVudHMubGVuZ3RoO2lmKDA9PT1odD9tdD0iRmFpbGVkIjoxPT09aHQ/KHd0PSRlLCRlPXZvaWQgMCk6KCExPT09aGUmJihoZT0hMCwoaWUuZW1p''@;'; + put 'put ''dFdhcm5pbmc/aWUuZW1pdFdhcm5pbmc6bGUud2Fybi5iaW5kKGxlKSkoImFzc2VydC5mYWlsKCkgd2l0aCBtb3JlIHRoYW4gb25lIGFyZ3VtZW50IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYXNzZXJ0LnN0cmljdEVxdWFsKCkgaW5zdGVhZCBvciBvbmx5IHBhc3MgYSBtZXNzYWdlLiIs''@;'; + put 'put ''IkRlcHJlY2F0aW9uV2FybmluZyIsIkRFUDAwOTQiKSksMj09PWh0JiYodnQ9IiE9IikpLHd0IGluc3RhbmNlb2YgRXJyb3IpdGhyb3cgd3Q7dmFyIG9uPXthY3R1YWw6JGUsZXhwZWN0ZWQ6Z3Qsb3BlcmF0b3I6dm9pZCAwPT09dnQ/ImZhaWwiOnZ0LHN0YWNrU3RhcnRGbjpBdHx8UWV9O3Zv''@;'; + put 'put ''aWQgMCE9PXd0JiYob24ubWVzc2FnZT13dCk7dmFyIF90PW5ldyBkZShvbik7dGhyb3cgbXQmJihfdC5tZXNzYWdlPW10LF90LmdlbmVyYXRlZE1lc3NhZ2U9ITApLF90fSxPLkFzc2VydGlvbkVycm9yPWRlLE8ub2s9eCxPLmVxdWFsPWZ1bmN0aW9uIFFlKCRlLGd0LHd0KXtpZihhcmd1bWVu''@;'; + put 'put ''dHMubGVuZ3RoPDIpdGhyb3cgbmV3IGNlKCJhY3R1YWwiLCJleHBlY3RlZCIpOyRlIT1ndCYmbmUoe2FjdHVhbDokZSxleHBlY3RlZDpndCxtZXNzYWdlOnd0LG9wZXJhdG9yOiI9PSIsc3RhY2tTdGFydEZuOlFlfSl9LE8ubm90RXF1YWw9ZnVuY3Rpb24gUWUoJGUsZ3Qsd3Qpe2lmKGFyZ3Vt''@;'; + put 'put ''ZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgY2UoImFjdHVhbCIsImV4cGVjdGVkIik7JGU9PWd0JiZuZSh7YWN0dWFsOiRlLGV4cGVjdGVkOmd0LG1lc3NhZ2U6d3Qsb3BlcmF0b3I6IiE9IixzdGFja1N0YXJ0Rm46UWV9KX0sTy5kZWVwRXF1YWw9ZnVuY3Rpb24gUWUoJGUsZ3Qsd3Qpe2lmKGFy''@;'; + put 'put ''Z3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgY2UoImFjdHVhbCIsImV4cGVjdGVkIik7dm9pZCAwPT09VyYmRWUoKSxXKCRlLGd0KXx8bmUoe2FjdHVhbDokZSxleHBlY3RlZDpndCxtZXNzYWdlOnd0LG9wZXJhdG9yOiJkZWVwRXF1YWwiLHN0YWNrU3RhcnRGbjpRZX0pfSxPLm5vdERlZXBF''@;'; + put 'put ''cXVhbD1mdW5jdGlvbiBRZSgkZSxndCx3dCl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXRocm93IG5ldyBjZSgiYWN0dWFsIiwiZXhwZWN0ZWQiKTt2b2lkIDA9PT1XJiZFZSgpLFcoJGUsZ3QpJiZuZSh7YWN0dWFsOiRlLGV4cGVjdGVkOmd0LG1lc3NhZ2U6d3Qsb3BlcmF0b3I6Im5vdERlZXBF''@;'; + put 'put ''cXVhbCIsc3RhY2tTdGFydEZuOlFlfSl9LE8uZGVlcFN0cmljdEVxdWFsPWZ1bmN0aW9uIFFlKCRlLGd0LHd0KXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IGNlKCJhY3R1YWwiLCJleHBlY3RlZCIpO3ZvaWQgMD09PVcmJkVlKCksTigkZSxndCl8fG5lKHthY3R1YWw6JGUsZXhw''@;'; + put 'put ''ZWN0ZWQ6Z3QsbWVzc2FnZTp3dCxvcGVyYXRvcjoiZGVlcFN0cmljdEVxdWFsIixzdGFja1N0YXJ0Rm46UWV9KX0sTy5ub3REZWVwU3RyaWN0RXF1YWw9ZnVuY3Rpb24gUWUoJGUsZ3Qsd3Qpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgY2UoImFjdHVhbCIsImV4cGVjdGVkIik7''@;'; + put 'put ''dm9pZCAwPT09VyYmRWUoKSxOKCRlLGd0KSYmbmUoe2FjdHVhbDokZSxleHBlY3RlZDpndCxtZXNzYWdlOnd0LG9wZXJhdG9yOiJub3REZWVwU3RyaWN0RXF1YWwiLHN0YWNrU3RhcnRGbjpRZX0pfSxPLnN0cmljdEVxdWFsPWZ1bmN0aW9uIFFlKCRlLGd0LHd0KXtpZihhcmd1bWVudHMubGVu''@;'; + put 'put ''Z3RoPDIpdGhyb3cgbmV3IGNlKCJhY3R1YWwiLCJleHBlY3RlZCIpO1RlKCRlLGd0KXx8bmUoe2FjdHVhbDokZSxleHBlY3RlZDpndCxtZXNzYWdlOnd0LG9wZXJhdG9yOiJzdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOlFlfSl9LE8ubm90U3RyaWN0RXF1YWw9ZnVuY3Rpb24gUWUoJGUsZ3Qs''@;'; + put 'put ''d3Qpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgY2UoImFjdHVhbCIsImV4cGVjdGVkIik7VGUoJGUsZ3QpJiZuZSh7YWN0dWFsOiRlLGV4cGVjdGVkOmd0LG1lc3NhZ2U6d3Qsb3BlcmF0b3I6Im5vdFN0cmljdEVxdWFsIixzdGFja1N0YXJ0Rm46UWV9KX07dmFyIFA9ZnVuY3Rp''@;'; + put 'put ''b24gUWUoJGUsZ3Qsd3Qpe3ZhciB2dD10aGlzOyhmdW5jdGlvbihBdCxtdCl7aWYoIShBdCBpbnN0YW5jZW9mIG10KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsUWUpLGd0LmZvckVhY2goZnVuY3Rpb24oQXQpe0F0IGlu''@;'; + put 'put ''ICRlJiYodnRbQXRdPXZvaWQgMCE9PXd0JiYic3RyaW5nIj09dHlwZW9mIHd0W0F0XSYmU2UoJGVbQXRdKSYmJGVbQXRdLnRlc3Qod3RbQXRdKT93dFtBdF06JGVbQXRdKX0pfTtmdW5jdGlvbiBWKFFlLCRlLGd0LHd0LHZ0LEF0KXtpZighKGd0IGluIFFlKXx8IU4oUWVbZ3RdLCRlW2d0XSkp''@;'; + put 'put ''e2lmKCF3dCl7dmFyIG10PW5ldyBQKFFlLHZ0KSxodD1uZXcgUCgkZSx2dCxRZSksQnQ9bmV3IGRlKHthY3R1YWw6bXQsZXhwZWN0ZWQ6aHQsb3BlcmF0b3I6ImRlZXBTdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOkF0fSk7dGhyb3cgQnQuYWN0dWFsPVFlLEJ0LmV4cGVjdGVkPSRlLEJ0Lm9w''@;'; + put 'put ''ZXJhdG9yPUF0Lm5hbWUsQnR9bmUoe2FjdHVhbDpRZSxleHBlY3RlZDokZSxtZXNzYWdlOnd0LG9wZXJhdG9yOkF0Lm5hbWUsc3RhY2tTdGFydEZuOkF0fSl9fWZ1bmN0aW9uIFQoUWUsJGUsZ3Qsd3Qpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiAkZSl7aWYoU2UoJGUpKXJldHVybiAkZS50ZXN0''@;'; + put 'put ''KFFlKTtpZigyPT09YXJndW1lbnRzLmxlbmd0aCl0aHJvdyBuZXcgSigiZXhwZWN0ZWQiLFsiRnVuY3Rpb24iLCJSZWdFeHAiXSwkZSk7aWYoIm9iamVjdCIhPT1ZKFFlKXx8bnVsbD09PVFlKXt2YXIgdnQ9bmV3IGRlKHthY3R1YWw6UWUsZXhwZWN0ZWQ6JGUsbWVzc2FnZTpndCxvcGVyYXRv''@;'; + put 'put ''cjoiZGVlcFN0cmljdEVxdWFsIixzdGFja1N0YXJ0Rm46d3R9KTt0aHJvdyB2dC5vcGVyYXRvcj13dC5uYW1lLHZ0fXZhciBBdD1PYmplY3Qua2V5cygkZSk7aWYoJGUgaW5zdGFuY2VvZiBFcnJvcilBdC5wdXNoKCJuYW1lIiwibWVzc2FnZSIpO2Vsc2UgaWYoMD09PUF0Lmxlbmd0aCl0aHJv''@;'; + put 'put ''dyBuZXcgc2UoImVycm9yIiwkZSwibWF5IG5vdCBiZSBhbiBlbXB0eSBvYmplY3QiKTtyZXR1cm4gdm9pZCAwPT09VyYmRWUoKSxBdC5mb3JFYWNoKGZ1bmN0aW9uKG10KXsic3RyaW5nIj09dHlwZW9mIFFlW210XSYmU2UoJGVbbXRdKSYmJGVbbXRdLnRlc3QoUWVbbXRdKXx8VihRZSwkZSxt''@;'; + put 'put ''dCxndCxBdCx3dCl9KSwhMH1yZXR1cm4gdm9pZCAwIT09JGUucHJvdG90eXBlJiZRZSBpbnN0YW5jZW9mICRlfHwhRXJyb3IuaXNQcm90b3R5cGVPZigkZSkmJiEwPT09JGUuY2FsbCh7fSxRZSl9ZnVuY3Rpb24gUyhRZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFFlKXRocm93IG5ldyBKKCJm''@;'; + put 'put ''biIsIkZ1bmN0aW9uIixRZSk7dHJ5e1FlKCl9Y2F0Y2goJGUpe3JldHVybiAkZX1yZXR1cm4gen1mdW5jdGlvbiBGKFFlKXtyZXR1cm4ga2UoUWUpfHxudWxsIT09UWUmJiJvYmplY3QiPT09WShRZSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBRZS50aGVuJiYiZnVuY3Rpb24iPT10eXBlb2YgUWUu''@;'; + put 'put ''Y2F0Y2h9ZnVuY3Rpb24geWUoUWUpe3JldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7dmFyICRlO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBRZSl7aWYoIUYoJGU9UWUoKSkpdGhyb3cgbmV3IG9lKCJpbnN0YW5jZSBvZiBQcm9taXNlIiwicHJvbWlzZUZuIiwkZSl9ZWxz''@;'; + put 'put ''ZXtpZighRihRZSkpdGhyb3cgbmV3IEooInByb21pc2VGbiIsWyJGdW5jdGlvbiIsIlByb21pc2UiXSxRZSk7JGU9UWV9cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gJGV9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHp9KS5jYXRjaChmdW5jdGlvbihn''@;'; + put 'put ''dCl7cmV0dXJuIGd0fSl9KX1mdW5jdGlvbiBDZShRZSwkZSxndCx3dCl7aWYoInN0cmluZyI9PXR5cGVvZiBndCl7aWYoND09PWFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IEooImVycm9yIixbIk9iamVjdCIsIkVycm9yIiwiRnVuY3Rpb24iLCJSZWdFeHAiXSxndCk7aWYoIm9iamVjdCI9''@;'; + put 'put ''PT1ZKCRlKSYmbnVsbCE9PSRlKXtpZigkZS5tZXNzYWdlPT09Z3QpdGhyb3cgbmV3IHEoImVycm9yL21lc3NhZ2UiLCdUaGUgZXJyb3IgbWVzc2FnZSAiJy5jb25jYXQoJGUubWVzc2FnZSwnIiBpcyBpZGVudGljYWwgdG8gdGhlIG1lc3NhZ2UuJykpfWVsc2UgaWYoJGU9PT1ndCl0aHJvdyBu''@;'; + put 'put ''ZXcgcSgiZXJyb3IvbWVzc2FnZSIsJ1RoZSBlcnJvciAiJy5jb25jYXQoJGUsJyIgaXMgaWRlbnRpY2FsIHRvIHRoZSBtZXNzYWdlLicpKTt3dD1ndCxndD12b2lkIDB9ZWxzZSBpZihudWxsIT1ndCYmIm9iamVjdCIhPT1ZKGd0KSYmImZ1bmN0aW9uIiE9dHlwZW9mIGd0KXRocm93IG5ldyBK''@;'; + put 'put ''KCJlcnJvciIsWyJPYmplY3QiLCJFcnJvciIsIkZ1bmN0aW9uIiwiUmVnRXhwIl0sZ3QpO2lmKCRlPT09eil7dmFyIHZ0PSIiO2d0JiZndC5uYW1lJiYodnQrPSIgKCIuY29uY2F0KGd0Lm5hbWUsIikiKSksdnQrPXd0PyI6ICIuY29uY2F0KHd0KToiLiIsbmUoe2FjdHVhbDp2b2lkIDAsZXhw''@;'; + put 'put ''ZWN0ZWQ6Z3Qsb3BlcmF0b3I6UWUubmFtZSxtZXNzYWdlOiJNaXNzaW5nIGV4cGVjdGVkICIuY29uY2F0KCJyZWplY3RzIj09PVFlLm5hbWU/InJlamVjdGlvbiI6ImV4Y2VwdGlvbiIpLmNvbmNhdCh2dCksc3RhY2tTdGFydEZuOlFlfSl9aWYoZ3QmJiFUKCRlLGd0LHd0LFFlKSl0aHJvdyAk''@;'; + put 'put ''ZX1mdW5jdGlvbiBEZShRZSwkZSxndCx3dCl7aWYoJGUhPT16KXtpZigic3RyaW5nIj09dHlwZW9mIGd0JiYod3Q9Z3QsZ3Q9dm9pZCAwKSwhZ3R8fFQoJGUsZ3QpKXt2YXIgdnQ9d3Q/IjogIi5jb25jYXQod3QpOiIuIjtuZSh7YWN0dWFsOiRlLGV4cGVjdGVkOmd0LG9wZXJhdG9yOlFlLm5h''@;'; + put 'put ''bWUsbWVzc2FnZToiR290IHVud2FudGVkICIuY29uY2F0KCJkb2VzTm90UmVqZWN0Ij09PVFlLm5hbWU/InJlamVjdGlvbiI6ImV4Y2VwdGlvbiIpLmNvbmNhdCh2dCwiXG4iKSsnQWN0dWFsIG1lc3NhZ2U6ICInLmNvbmNhdCgkZSYmJGUubWVzc2FnZSwnIicpLHN0YWNrU3RhcnRGbjpRZX0p''@;'; + put 'put ''fXRocm93ICRlfX1mdW5jdGlvbiBQZSgpe2Zvcih2YXIgUWU9YXJndW1lbnRzLmxlbmd0aCwkZT1uZXcgQXJyYXkoUWUpLGd0PTA7Z3Q8UWU7Z3QrKykkZVtndF09YXJndW1lbnRzW2d0XTt0ZS5hcHBseSh2b2lkIDAsW1BlLCRlLmxlbmd0aF0uY29uY2F0KCRlKSl9Ty50aHJvd3M9ZnVuY3Rp''@;'; + put 'put ''b24gUWUoJGUpe2Zvcih2YXIgZ3Q9YXJndW1lbnRzLmxlbmd0aCx3dD1uZXcgQXJyYXkoZ3Q+MT9ndC0xOjApLHZ0PTE7dnQ8Z3Q7dnQrKyl3dFt2dC0xXT1hcmd1bWVudHNbdnRdO0NlLmFwcGx5KHZvaWQgMCxbUWUsUygkZSldLmNvbmNhdCh3dCkpfSxPLnJlamVjdHM9ZnVuY3Rpb24gUWUo''@;'; + put 'put ''JGUpe2Zvcih2YXIgZ3Q9YXJndW1lbnRzLmxlbmd0aCx3dD1uZXcgQXJyYXkoZ3Q+MT9ndC0xOjApLHZ0PTE7dnQ8Z3Q7dnQrKyl3dFt2dC0xXT1hcmd1bWVudHNbdnRdO3JldHVybiB5ZSgkZSkudGhlbihmdW5jdGlvbihBdCl7cmV0dXJuIENlLmFwcGx5KHZvaWQgMCxbUWUsQXRdLmNvbmNh''@;'; + put 'put ''dCh3dCkpfSl9LE8uZG9lc05vdFRocm93PWZ1bmN0aW9uIFFlKCRlKXtmb3IodmFyIGd0PWFyZ3VtZW50cy5sZW5ndGgsd3Q9bmV3IEFycmF5KGd0PjE/Z3QtMTowKSx2dD0xO3Z0PGd0O3Z0Kyspd3RbdnQtMV09YXJndW1lbnRzW3Z0XTtEZS5hcHBseSh2b2lkIDAsW1FlLFMoJGUpXS5jb25j''@;'; + put 'put ''YXQod3QpKX0sTy5kb2VzTm90UmVqZWN0PWZ1bmN0aW9uIFFlKCRlKXtmb3IodmFyIGd0PWFyZ3VtZW50cy5sZW5ndGgsd3Q9bmV3IEFycmF5KGd0PjE/Z3QtMTowKSx2dD0xO3Z0PGd0O3Z0Kyspd3RbdnQtMV09YXJndW1lbnRzW3Z0XTtyZXR1cm4geWUoJGUpLnRoZW4oZnVuY3Rpb24oQXQp''@;'; + put 'put ''e3JldHVybiBEZS5hcHBseSh2b2lkIDAsW1FlLEF0XS5jb25jYXQod3QpKX0pfSxPLmlmRXJyb3I9ZnVuY3Rpb24gUWUoJGUpe2lmKG51bGwhPSRlKXt2YXIgZ3Q9ImlmRXJyb3IgZ290IHVud2FudGVkIGV4Y2VwdGlvbjogIjsib2JqZWN0Ij09PVkoJGUpJiYic3RyaW5nIj09dHlwZW9mICRl''@;'; + put 'put ''Lm1lc3NhZ2U/Z3QrPTA9PT0kZS5tZXNzYWdlLmxlbmd0aCYmJGUuY29uc3RydWN0b3I/JGUuY29uc3RydWN0b3IubmFtZTokZS5tZXNzYWdlOmd0Kz12ZSgkZSk7dmFyIHd0PW5ldyBkZSh7YWN0dWFsOiRlLGV4cGVjdGVkOm51bGwsb3BlcmF0b3I6ImlmRXJyb3IiLG1lc3NhZ2U6Z3Qsc3Rh''@;'; + put 'put ''Y2tTdGFydEZuOlFlfSksdnQ9JGUuc3RhY2s7aWYoInN0cmluZyI9PXR5cGVvZiB2dCl7dmFyIEF0PXZ0LnNwbGl0KCJcbiIpO0F0LnNoaWZ0KCk7Zm9yKHZhciBtdD13dC5zdGFjay5zcGxpdCgiXG4iKSxodD0wO2h0PEF0Lmxlbmd0aDtodCsrKXt2YXIgQnQ9bXQuaW5kZXhPZihBdFtodF0p''@;'; + put 'put ''O2lmKC0xIT09QnQpe210PW10LnNsaWNlKDAsQnQpO2JyZWFrfX13dC5zdGFjaz0iIi5jb25jYXQobXQuam9pbigiXG4iKSwiXG4iKS5jb25jYXQoQXQuam9pbigiXG4iKSl9dGhyb3cgd3R9fSxPLnN0cmljdD1JZShQZSxPLHtlcXVhbDpPLnN0cmljdEVxdWFsLGRlZXBFcXVhbDpPLmRlZXBT''@;'; + put 'put ''dHJpY3RFcXVhbCxub3RFcXVhbDpPLm5vdFN0cmljdEVxdWFsLG5vdERlZXBFcXVhbDpPLm5vdERlZXBTdHJpY3RFcXVhbH0pLE8uc3RyaWN0LnN0cmljdD1PLnN0cmljdH0sNTk2MTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpO2Z1bmN0aW9uIGxlKHRlLHgsUCl7cmV0''@;'; + put 'put ''dXJuIHggaW4gdGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KHRlLHgse3ZhbHVlOlAsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0ZVt4XT1QLHRlfWZ1bmN0aW9uIFkodGUseCl7Zm9yKHZhciBQPTA7UDx4Lmxlbmd0aDtQKyspe3ZhciBWPXhbUF07Vi5lbnVt''@;'; + put 'put ''ZXJhYmxlPVYuZW51bWVyYWJsZXx8ITEsVi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIFYmJihWLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGUsVi5rZXksVil9fWZ1bmN0aW9uIFcodGUseCl7cmV0dXJuIXh8fCJvYmplY3QiIT09Y2UoeCkmJiJmdW5jdGlvbiIhPXR5''@;'; + put 'put ''cGVvZiB4P04odGUpOnh9ZnVuY3Rpb24gTih0ZSl7aWYodm9pZCAwPT09dGUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdGV9ZnVuY3Rpb24gZWUodGUpe3ZhciB4PSJm''@;'; + put 'put ''dW5jdGlvbiI9PXR5cGVvZiBNYXA/bmV3IE1hcDp2b2lkIDA7cmV0dXJuIGVlPWZ1bmN0aW9uKFApe2lmKG51bGw9PT1QfHwtMT09PUZ1bmN0aW9uLnRvU3RyaW5nLmNhbGwoUCkuaW5kZXhPZigiW25hdGl2ZSBjb2RlXSIpKXJldHVybiBQO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBQKXRocm93''@;'; + put 'put ''IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7aWYodm9pZCAwIT09eCl7aWYoeC5oYXMoUCkpcmV0dXJuIHguZ2V0KFApO3guc2V0KFAsVCl9ZnVuY3Rpb24gVCgpe3JldHVybiBKKFAsYXJndW1lbnRzLG9lKHRoaXMp''@;'; + put 'put ''LmNvbnN0cnVjdG9yKX1yZXR1cm4gVC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShQLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOlQsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksc2UoVCxQKX0sZWUodGUpfWZ1bmN0aW9uIHEoKXtpZigidW5kZWZp''@;'; + put 'put ''bmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3Ry''@;'; + put 'put ''dWN0KERhdGUsW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2godGUpe3JldHVybiExfX1mdW5jdGlvbiBKKHRlLHgsUCl7cmV0dXJuKEo9cSgpP1JlZmxlY3QuY29uc3RydWN0OmZ1bmN0aW9uKFYsVCxTKXt2YXIgRj1bbnVsbF07Ri5wdXNoLmFwcGx5KEYsVCk7dmFyIHllPW5ldyhGdW5jdGlv''@;'; + put 'put ''bi5iaW5kLmFwcGx5KFYsRikpO3JldHVybiBTJiZzZSh5ZSxTLnByb3RvdHlwZSkseWV9KS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gc2UodGUseCl7cmV0dXJuKHNlPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oUCxWKXtyZXR1cm4gUC5fX3Byb3RvX189VixQfSko''@;'; + put 'put ''dGUseCl9ZnVuY3Rpb24gb2UodGUpe3JldHVybihvZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHgpe3JldHVybiB4Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHgpfSkodGUpfWZ1bmN0aW9uIGNlKHRlKXtyZXR1cm4oY2U9''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oeCl7cmV0dXJuIHR5cGVvZiB4fTpmdW5jdGlvbih4KXtyZXR1cm4geCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmeC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmeCE9''@;'; + put 'put ''PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHh9KSh0ZSl9dmFyIGRlPVooOTUzOSkuaW5zcGVjdCx2ZT1aKDIxMzYpLmNvZGVzLkVSUl9JTlZBTElEX0FSR19UWVBFO2Z1bmN0aW9uIEFlKHRlLHgsUCl7cmV0dXJuKHZvaWQgMD09PVB8fFA+dGUubGVuZ3RoKSYmKFA9dGUubGVu''@;'; + put 'put ''Z3RoKSx0ZS5zdWJzdHJpbmcoUC14Lmxlbmd0aCxQKT09PXh9dmFyIGtlPSIiLFNlPSIiLEllPSIiLFRlPSIiLEVlPXtkZWVwU3RyaWN0RXF1YWw6IkV4cGVjdGVkIHZhbHVlcyB0byBiZSBzdHJpY3RseSBkZWVwLWVxdWFsOiIsc3RyaWN0RXF1YWw6IkV4cGVjdGVkIHZhbHVlcyB0byBiZSBz''@;'; + put 'put ''dHJpY3RseSBlcXVhbDoiLHN0cmljdEVxdWFsT2JqZWN0OidFeHBlY3RlZCAiYWN0dWFsIiB0byBiZSByZWZlcmVuY2UtZXF1YWwgdG8gImV4cGVjdGVkIjonLGRlZXBFcXVhbDoiRXhwZWN0ZWQgdmFsdWVzIHRvIGJlIGxvb3NlbHkgZGVlcC1lcXVhbDoiLGVxdWFsOiJFeHBlY3RlZCB2YWx1''@;'; + put 'put ''ZXMgdG8gYmUgbG9vc2VseSBlcXVhbDoiLG5vdERlZXBTdHJpY3RFcXVhbDonRXhwZWN0ZWQgImFjdHVhbCIgbm90IHRvIGJlIHN0cmljdGx5IGRlZXAtZXF1YWwgdG86Jyxub3RTdHJpY3RFcXVhbDonRXhwZWN0ZWQgImFjdHVhbCIgdG8gYmUgc3RyaWN0bHkgdW5lcXVhbCB0bzonLG5vdFN0''@;'; + put 'put ''cmljdEVxdWFsT2JqZWN0OidFeHBlY3RlZCAiYWN0dWFsIiBub3QgdG8gYmUgcmVmZXJlbmNlLWVxdWFsIHRvICJleHBlY3RlZCI6Jyxub3REZWVwRXF1YWw6J0V4cGVjdGVkICJhY3R1YWwiIG5vdCB0byBiZSBsb29zZWx5IGRlZXAtZXF1YWwgdG86Jyxub3RFcXVhbDonRXhwZWN0ZWQgImFj''@;'; + put 'put ''dHVhbCIgdG8gYmUgbG9vc2VseSB1bmVxdWFsIHRvOicsbm90SWRlbnRpY2FsOiJWYWx1ZXMgaWRlbnRpY2FsIGJ1dCBub3QgcmVmZXJlbmNlLWVxdWFsOiJ9O2Z1bmN0aW9uIGhlKHRlKXt2YXIgeD1PYmplY3Qua2V5cyh0ZSksUD1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVP''@;'; + put 'put ''Zih0ZSkpO3JldHVybiB4LmZvckVhY2goZnVuY3Rpb24oVil7UFtWXT10ZVtWXX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQLCJtZXNzYWdlIix7dmFsdWU6dGUubWVzc2FnZX0pLFB9ZnVuY3Rpb24gTyh0ZSl7cmV0dXJuIGRlKHRlLHtjb21wYWN0OiExLGN1c3RvbUluc3BlY3Q6ITEsZGVw''@;'; + put 'put ''dGg6MWUzLG1heEFycmF5TGVuZ3RoOjEvMCxzaG93SGlkZGVuOiExLGJyZWFrTGVuZ3RoOjEvMCxzaG93UHJveHk6ITEsc29ydGVkOiEwLGdldHRlcnM6ITB9KX12YXIgbmU9ZnVuY3Rpb24odGUpe2Z1bmN0aW9uIHgoUyl7dmFyIEY7aWYoZnVuY3Rpb24oaHQsQnQpe2lmKCEoaHQgaW5zdGFu''@;'; + put 'put ''Y2VvZiBCdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMseCksIm9iamVjdCIhPT1jZShTKXx8bnVsbD09PVMpdGhyb3cgbmV3IHZlKCJvcHRpb25zIiwiT2JqZWN0IixTKTt2YXIgeWU9Uy5tZXNzYWdlLENlPVMub3BlcmF0''@;'; + put 'put ''b3IsRGU9Uy5zdGFja1N0YXJ0Rm4sUGU9Uy5hY3R1YWwsUWU9Uy5leHBlY3RlZCwkZT1FcnJvci5zdGFja1RyYWNlTGltaXQ7aWYoRXJyb3Iuc3RhY2tUcmFjZUxpbWl0PTAsbnVsbCE9eWUpRj1XKHRoaXMsb2UoeCkuY2FsbCh0aGlzLFN0cmluZyh5ZSkpKTtlbHNlIGlmKGllLnN0ZGVyciYm''@;'; + put 'put ''aWUuc3RkZXJyLmlzVFRZJiYoaWUuc3RkZXJyJiZpZS5zdGRlcnIuZ2V0Q29sb3JEZXB0aCYmMSE9PWllLnN0ZGVyci5nZXRDb2xvckRlcHRoKCk/KGtlPSJceDFiWzM0bSIsU2U9Ilx4MWJbMzJtIixUZT0iXHgxYlszOW0iLEllPSJceDFiWzMxbSIpOihrZT0iIixTZT0iIixUZT0iIixJZT0i''@;'; + put 'put ''IikpLCJvYmplY3QiPT09Y2UoUGUpJiZudWxsIT09UGUmJiJvYmplY3QiPT09Y2UoUWUpJiZudWxsIT09UWUmJiJzdGFjayJpbiBQZSYmUGUgaW5zdGFuY2VvZiBFcnJvciYmInN0YWNrImluIFFlJiZRZSBpbnN0YW5jZW9mIEVycm9yJiYoUGU9aGUoUGUpLFFlPWhlKFFlKSksImRlZXBTdHJp''@;'; + put 'put ''Y3RFcXVhbCI9PT1DZXx8InN0cmljdEVxdWFsIj09PUNlKUY9Vyh0aGlzLG9lKHgpLmNhbGwodGhpcyxmdW5jdGlvbiB6KHRlLHgsUCl7dmFyIFY9IiIsVD0iIixTPTAsRj0iIix5ZT0hMSxDZT1PKHRlKSxEZT1DZS5zcGxpdCgiXG4iKSxQZT1PKHgpLnNwbGl0KCJcbiIpLFFlPTAsJGU9IiI7''@;'; + put 'put ''aWYoInN0cmljdEVxdWFsIj09PVAmJiJvYmplY3QiPT09Y2UodGUpJiYib2JqZWN0Ij09PWNlKHgpJiZudWxsIT09dGUmJm51bGwhPT14JiYoUD0ic3RyaWN0RXF1YWxPYmplY3QiKSwxPT09RGUubGVuZ3RoJiYxPT09UGUubGVuZ3RoJiZEZVswXSE9PVBlWzBdKXt2YXIgZ3Q9RGVbMF0ubGVu''@;'; + put 'put ''Z3RoK1BlWzBdLmxlbmd0aDtpZihndDw9MTApe2lmKCEoIm9iamVjdCI9PT1jZSh0ZSkmJm51bGwhPT10ZXx8Im9iamVjdCI9PT1jZSh4KSYmbnVsbCE9PXh8fDA9PT10ZSYmMD09PXgpKXJldHVybiIiLmNvbmNhdChFZVtQXSwiXG5cbiIpKyIiLmNvbmNhdChEZVswXSwiICE9PSAiKS5jb25j''@;'; + put 'put ''YXQoUGVbMF0sIlxuIil9ZWxzZSBpZigic3RyaWN0RXF1YWxPYmplY3QiIT09UCYmZ3Q8KGllLnN0ZGVyciYmaWUuc3RkZXJyLmlzVFRZP2llLnN0ZGVyci5jb2x1bW5zOjgwKSl7Zm9yKDtEZVswXVtRZV09PT1QZVswXVtRZV07KVFlKys7UWU+MiYmKCRlPSJcbiAgIi5jb25jYXQoZnVuY3Rp''@;'; + put 'put ''b24oTHQsQ3Qpe2lmKEN0PU1hdGguZmxvb3IoQ3QpLDA9PUx0Lmxlbmd0aHx8MD09Q3QpcmV0dXJuIiI7dmFyIGZ0PUx0Lmxlbmd0aCpDdDtmb3IoQ3Q9TWF0aC5mbG9vcihNYXRoLmxvZyhDdCkvTWF0aC5sb2coMikpO0N0OylMdCs9THQsQ3QtLTtyZXR1cm4gTHQrTHQuc3Vic3RyaW5nKDAs''@;'; + put 'put ''ZnQtTHQubGVuZ3RoKX0oIiAiLFFlKSwiXiIpLFFlPTApfX1mb3IodmFyIHd0PURlW0RlLmxlbmd0aC0xXSx2dD1QZVtQZS5sZW5ndGgtMV07d3Q9PT12dCYmKFFlKys8Mj9GPSJcbiAgIi5jb25jYXQod3QpLmNvbmNhdChGKTpWPXd0LERlLnBvcCgpLFBlLnBvcCgpLDAhPT1EZS5sZW5ndGgm''@;'; + put 'put ''JjAhPT1QZS5sZW5ndGgpOyl3dD1EZVtEZS5sZW5ndGgtMV0sdnQ9UGVbUGUubGVuZ3RoLTFdO3ZhciBBdD1NYXRoLm1heChEZS5sZW5ndGgsUGUubGVuZ3RoKTtpZigwPT09QXQpe3ZhciBtdD1DZS5zcGxpdCgiXG4iKTtpZihtdC5sZW5ndGg+MzApZm9yKG10WzI2XT0iIi5jb25jYXQoa2Us''@;'; + put 'put ''Ii4uLiIpLmNvbmNhdChUZSk7bXQubGVuZ3RoPjI3OyltdC5wb3AoKTtyZXR1cm4iIi5jb25jYXQoRWUubm90SWRlbnRpY2FsLCJcblxuIikuY29uY2F0KG10LmpvaW4oIlxuIiksIlxuIil9UWU+MyYmKEY9IlxuIi5jb25jYXQoa2UsIi4uLiIpLmNvbmNhdChUZSkuY29uY2F0KEYpLHllPSEw''@;'; + put 'put ''KSwiIiE9PVYmJihGPSJcbiAgIi5jb25jYXQoVikuY29uY2F0KEYpLFY9IiIpO3ZhciBodD0wLEJ0PUVlW1BdKyJcbiIuY29uY2F0KFNlLCIrIGFjdHVhbCIpLmNvbmNhdChUZSwiICIpLmNvbmNhdChJZSwiLSBleHBlY3RlZCIpLmNvbmNhdChUZSksb249IiAiLmNvbmNhdChrZSwiLi4uIiku''@;'; + put 'put ''Y29uY2F0KFRlLCIgTGluZXMgc2tpcHBlZCIpO2ZvcihRZT0wO1FlPEF0O1FlKyspe3ZhciBfdD1RZS1TO2lmKERlLmxlbmd0aDxRZSsxKV90PjEmJlFlPjImJihfdD40PyhUKz0iXG4iLmNvbmNhdChrZSwiLi4uIikuY29uY2F0KFRlKSx5ZT0hMCk6X3Q+MyYmKFQrPSJcbiAgIi5jb25jYXQo''@;'; + put 'put ''UGVbUWUtMl0pLGh0KyspLFQrPSJcbiAgIi5jb25jYXQoUGVbUWUtMV0pLGh0KyspLFM9UWUsVis9IlxuIi5jb25jYXQoSWUsIi0iKS5jb25jYXQoVGUsIiAiKS5jb25jYXQoUGVbUWVdKSxodCsrO2Vsc2UgaWYoUGUubGVuZ3RoPFFlKzEpX3Q+MSYmUWU+MiYmKF90PjQ/KFQrPSJcbiIuY29u''@;'; + put 'put ''Y2F0KGtlLCIuLi4iKS5jb25jYXQoVGUpLHllPSEwKTpfdD4zJiYoVCs9IlxuICAiLmNvbmNhdChEZVtRZS0yXSksaHQrKyksVCs9IlxuICAiLmNvbmNhdChEZVtRZS0xXSksaHQrKyksUz1RZSxUKz0iXG4iLmNvbmNhdChTZSwiKyIpLmNvbmNhdChUZSwiICIpLmNvbmNhdChEZVtRZV0pLGh0''@;'; + put 'put ''Kys7ZWxzZXt2YXIgdHQ9UGVbUWVdLGV0PURlW1FlXSxhdD1ldCE9PXR0JiYoIUFlKGV0LCIsIil8fGV0LnNsaWNlKDAsLTEpIT09dHQpO2F0JiZBZSh0dCwiLCIpJiZ0dC5zbGljZSgwLC0xKT09PWV0JiYoYXQ9ITEsZXQrPSIsIiksYXQ/KF90PjEmJlFlPjImJihfdD40PyhUKz0iXG4iLmNv''@;'; + put 'put ''bmNhdChrZSwiLi4uIikuY29uY2F0KFRlKSx5ZT0hMCk6X3Q+MyYmKFQrPSJcbiAgIi5jb25jYXQoRGVbUWUtMl0pLGh0KyspLFQrPSJcbiAgIi5jb25jYXQoRGVbUWUtMV0pLGh0KyspLFM9UWUsVCs9IlxuIi5jb25jYXQoU2UsIisiKS5jb25jYXQoVGUsIiAiKS5jb25jYXQoZXQpLFYrPSJc''@;'; + put 'put ''biIuY29uY2F0KEllLCItIikuY29uY2F0KFRlLCIgIikuY29uY2F0KHR0KSxodCs9Mik6KFQrPVYsVj0iIiwxIT09X3QmJjAhPT1RZXx8KFQrPSJcbiAgIi5jb25jYXQoZXQpLGh0KyspKX1pZihodD4yMCYmUWU8QXQtMilyZXR1cm4iIi5jb25jYXQoQnQpLmNvbmNhdChvbiwiXG4iKS5jb25j''@;'; + put 'put ''YXQoVCwiXG4iKS5jb25jYXQoa2UsIi4uLiIpLmNvbmNhdChUZSkuY29uY2F0KFYsIlxuIikrIiIuY29uY2F0KGtlLCIuLi4iKS5jb25jYXQoVGUpfXJldHVybiIiLmNvbmNhdChCdCkuY29uY2F0KHllP29uOiIiLCJcbiIpLmNvbmNhdChUKS5jb25jYXQoVikuY29uY2F0KEYpLmNvbmNhdCgk''@;'; + put 'put ''ZSl9KFBlLFFlLENlKSkpO2Vsc2UgaWYoIm5vdERlZXBTdHJpY3RFcXVhbCI9PT1DZXx8Im5vdFN0cmljdEVxdWFsIj09PUNlKXt2YXIgZ3Q9RWVbQ2VdLHd0PU8oUGUpLnNwbGl0KCJcbiIpO2lmKCJub3RTdHJpY3RFcXVhbCI9PT1DZSYmIm9iamVjdCI9PT1jZShQZSkmJm51bGwhPT1QZSYm''@;'; + put 'put ''KGd0PUVlLm5vdFN0cmljdEVxdWFsT2JqZWN0KSx3dC5sZW5ndGg+MzApZm9yKHd0WzI2XT0iIi5jb25jYXQoa2UsIi4uLiIpLmNvbmNhdChUZSk7d3QubGVuZ3RoPjI3Oyl3dC5wb3AoKTtGPVcodGhpcywxPT09d3QubGVuZ3RoP29lKHgpLmNhbGwodGhpcywiIi5jb25jYXQoZ3QsIiAiKS5j''@;'; + put 'put ''b25jYXQod3RbMF0pKTpvZSh4KS5jYWxsKHRoaXMsIiIuY29uY2F0KGd0LCJcblxuIikuY29uY2F0KHd0LmpvaW4oIlxuIiksIlxuIikpKX1lbHNle3ZhciB2dD1PKFBlKSxBdD0iIixtdD1FZVtDZV07Im5vdERlZXBFcXVhbCI9PT1DZXx8Im5vdEVxdWFsIj09PUNlPyh2dD0iIi5jb25jYXQo''@;'; + put 'put ''RWVbQ2VdLCJcblxuIikuY29uY2F0KHZ0KSkubGVuZ3RoPjEwMjQmJih2dD0iIi5jb25jYXQodnQuc2xpY2UoMCwxMDIxKSwiLi4uIikpOihBdD0iIi5jb25jYXQoTyhRZSkpLHZ0Lmxlbmd0aD41MTImJih2dD0iIi5jb25jYXQodnQuc2xpY2UoMCw1MDkpLCIuLi4iKSksQXQubGVuZ3RoPjUx''@;'; + put 'put ''MiYmKEF0PSIiLmNvbmNhdChBdC5zbGljZSgwLDUwOSksIi4uLiIpKSwiZGVlcEVxdWFsIj09PUNlfHwiZXF1YWwiPT09Q2U/dnQ9IiIuY29uY2F0KG10LCJcblxuIikuY29uY2F0KHZ0LCJcblxuc2hvdWxkIGVxdWFsXG5cbiIpOkF0PSIgIi5jb25jYXQoQ2UsIiAiKS5jb25jYXQoQXQpKSxG''@;'; + put 'put ''PVcodGhpcyxvZSh4KS5jYWxsKHRoaXMsIiIuY29uY2F0KHZ0KS5jb25jYXQoQXQpKSl9cmV0dXJuIEVycm9yLnN0YWNrVHJhY2VMaW1pdD0kZSxGLmdlbmVyYXRlZE1lc3NhZ2U9IXllLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOKEYpLCJuYW1lIix7dmFsdWU6IkFzc2VydGlvbkVycm9yIFtF''@;'; + put 'put ''UlJfQVNTRVJUSU9OXSIsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxGLmNvZGU9IkVSUl9BU1NFUlRJT04iLEYuYWN0dWFsPVBlLEYuZXhwZWN0ZWQ9UWUsRi5vcGVyYXRvcj1DZSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSYmRXJyb3IuY2FwdHVyZVN0YWNr''@;'; + put 'put ''VHJhY2UoTihGKSxEZSksRi5uYW1lPSJBc3NlcnRpb25FcnJvciIsVyhGKX12YXIgUCxWO3JldHVybiBmdW5jdGlvbihTLEYpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBGJiZudWxsIT09Ril0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwg''@;'; + put 'put ''b3IgYSBmdW5jdGlvbiIpO1MucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRiYmRi5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpTLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxGJiZzZShTLEYpfSh4LHRlKSxQPXgsVj1be2tleToidG9TdHJpbmciLHZhbHVlOmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIiIuY29uY2F0KHRoaXMubmFtZSwiIFsiKS5jb25jYXQodGhpcy5jb2RlLCJdOiAiKS5jb25jYXQodGhpcy5tZXNzYWdlKX19LHtrZXk6ZGUuY3VzdG9tLHZhbHVlOmZ1bmN0aW9uKFMsRil7cmV0dXJuIGRlKHRoaXMsZnVuY3Rpb24oeWUpe2Zvcih2YXIgQ2U9MTtDZTxhcmd1''@;'; + put 'put ''bWVudHMubGVuZ3RoO0NlKyspe3ZhciBEZT1udWxsIT1hcmd1bWVudHNbQ2VdP2FyZ3VtZW50c1tDZV06e30sUGU9T2JqZWN0LmtleXMoRGUpOyJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYoUGU9UGUuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0''@;'; + put 'put ''eVN5bWJvbHMoRGUpLmZpbHRlcihmdW5jdGlvbihRZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRGUsUWUpLmVudW1lcmFibGV9KSkpLFBlLmZvckVhY2goZnVuY3Rpb24oUWUpe2xlKHllLFFlLERlW1FlXSl9KX1yZXR1cm4geWV9KHt9LEYse2N1c3RvbUluc3Bl''@;'; + put 'put ''Y3Q6ITEsZGVwdGg6MH0pKX19XSxWJiZZKFAucHJvdG90eXBlLFYpLHh9KGVlKEVycm9yKSk7VS5leHBvcnRzPW5lfSwyMTM2OihVLFEsWik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaWUob2Upe3JldHVybihpZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9m''@;'; + put 'put ''IFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihjZSl7cmV0dXJuIHR5cGVvZiBjZX06ZnVuY3Rpb24oY2Upe3JldHVybiBjZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmY2UuY29uc3RydWN0b3I9PT1TeW1ib2wmJmNlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgY2V9''@;'; + put 'put ''KShvZSl9ZnVuY3Rpb24gWShvZSl7cmV0dXJuKFk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihjZSl7cmV0dXJuIGNlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGNlKX0pKG9lKX1mdW5jdGlvbiBXKG9lLGNlKXtyZXR1cm4o''@;'; + put 'put ''Vz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKGRlLHZlKXtyZXR1cm4gZGUuX19wcm90b19fPXZlLGRlfSkob2UsY2UpfXZhciBOLGVlLHE9e307ZnVuY3Rpb24gSihvZSxjZSxkZSl7ZGV8fChkZT1FcnJvcik7dmFyIHZlPWZ1bmN0aW9uKEFlKXtmdW5jdGlvbiBrZShTZSxJZSxU''@;'; + put 'put ''ZSl7dmFyIEVlLGhlLE8sejtyZXR1cm4gZnVuY3Rpb24oaGUsTyl7aWYoIShoZSBpbnN0YW5jZW9mIE8pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGtlKSwoRWU9ZnVuY3Rpb24gbGUob2UsY2Upe3JldHVybiFjZXx8Im9i''@;'; + put 'put ''amVjdCIhPT1pZShjZSkmJiJmdW5jdGlvbiIhPXR5cGVvZiBjZT9mdW5jdGlvbihkZSl7aWYodm9pZCAwPT09ZGUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZGV9KG9l''@;'; + put 'put ''KTpjZX0odGhpcyxZKGtlKS5jYWxsKHRoaXMsKGhlPVNlLE89SWUsej1UZSwic3RyaW5nIj09dHlwZW9mIGNlP2NlOmNlKGhlLE8seikpKSkpLmNvZGU9b2UsRWV9cmV0dXJuIGZ1bmN0aW9uKFNlLEllKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgSWUmJm51bGwhPT1JZSl0aHJvdyBuZXcgVHlw''@;'; + put 'put ''ZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO1NlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEllJiZJZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpTZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksSWUmJlco''@;'; + put 'put ''U2UsSWUpfShrZSxBZSksa2V9KGRlKTtxW29lXT12ZX1mdW5jdGlvbiBzZShvZSxjZSl7aWYoQXJyYXkuaXNBcnJheShvZSkpe3ZhciBkZT1vZS5sZW5ndGg7cmV0dXJuIG9lPW9lLm1hcChmdW5jdGlvbih2ZSl7cmV0dXJuIFN0cmluZyh2ZSl9KSxkZT4yPyJvbmUgb2YgIi5jb25jYXQoY2Us''@;'; + put 'put ''IiAiKS5jb25jYXQob2Uuc2xpY2UoMCxkZS0xKS5qb2luKCIsICIpLCIsIG9yICIpK29lW2RlLTFdOjI9PT1kZT8ib25lIG9mICIuY29uY2F0KGNlLCIgIikuY29uY2F0KG9lWzBdLCIgb3IgIikuY29uY2F0KG9lWzFdKToib2YgIi5jb25jYXQoY2UsIiAiKS5jb25jYXQob2VbMF0pfXJldHVy''@;'; + put 'put ''biJvZiAiLmNvbmNhdChjZSwiICIpLmNvbmNhdChTdHJpbmcob2UpKX1KKCJFUlJfQU1CSUdVT1VTX0FSR1VNRU5UIiwnVGhlICIlcyIgYXJndW1lbnQgaXMgYW1iaWd1b3VzLiAlcycsVHlwZUVycm9yKSxKKCJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsZnVuY3Rpb24ob2UsY2UsZGUpe3ZhciB2''@;'; + put 'put ''ZSxTZSxUZSxoZTtpZih2b2lkIDA9PT1OJiYoTj1aKDkyODIpKSxOKCJzdHJpbmciPT10eXBlb2Ygb2UsIiduYW1lJyBtdXN0IGJlIGEgc3RyaW5nIiksInN0cmluZyI9PXR5cGVvZiBjZSYmIm5vdCAiPT09Y2Uuc3Vic3RyKDAsIm5vdCAiLmxlbmd0aCk/KHZlPSJtdXN0IG5vdCBiZSIsY2U9''@;'; + put 'put ''Y2UucmVwbGFjZSgvXm5vdCAvLCIiKSk6dmU9Im11c3QgYmUiLFRlPW9lLCh2b2lkIDA9PT1oZXx8aGU+VGUubGVuZ3RoKSYmKGhlPVRlLmxlbmd0aCksIiBhcmd1bWVudCI9PT1UZS5zdWJzdHJpbmcoaGUtIiBhcmd1bWVudCIubGVuZ3RoLGhlKSlTZT0iVGhlICIuY29uY2F0KG9lLCIgIiku''@;'; + put 'put ''Y29uY2F0KHZlLCIgIikuY29uY2F0KHNlKGNlLCJ0eXBlIikpO2Vsc2V7dmFyIEllPWZ1bmN0aW9uKFRlLEVlLGhlKXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGhlJiYoaGU9MCksIShoZSsiLiIubGVuZ3RoPlRlLmxlbmd0aCkmJi0xIT09VGUuaW5kZXhPZigiLiIsaGUpfShvZSk/InByb3Bl''@;'; + put 'put ''cnR5IjoiYXJndW1lbnQiO1NlPSdUaGUgIicuY29uY2F0KG9lLCciICcpLmNvbmNhdChJZSwiICIpLmNvbmNhdCh2ZSwiICIpLmNvbmNhdChzZShjZSwidHlwZSIpKX1yZXR1cm4gU2UrIi4gUmVjZWl2ZWQgdHlwZSAiLmNvbmNhdChpZShkZSkpfSxUeXBlRXJyb3IpLEooIkVSUl9JTlZBTElE''@;'; + put 'put ''X0FSR19WQUxVRSIsZnVuY3Rpb24ob2UsY2Upe3ZhciBkZT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06ImlzIGludmFsaWQiO3ZvaWQgMD09PWVlJiYoZWU9Wig5NTM5KSk7dmFyIHZlPWVlLmluc3BlY3QoY2UpO3JldHVybiB2ZS5sZW5n''@;'; + put 'put ''dGg+MTI4JiYodmU9IiIuY29uY2F0KHZlLnNsaWNlKDAsMTI4KSwiLi4uIikpLCJUaGUgYXJndW1lbnQgJyIuY29uY2F0KG9lLCInICIpLmNvbmNhdChkZSwiLiBSZWNlaXZlZCAiKS5jb25jYXQodmUpfSxUeXBlRXJyb3IsUmFuZ2VFcnJvciksSigiRVJSX0lOVkFMSURfUkVUVVJOX1ZBTFVF''@;'; + put 'put ''IixmdW5jdGlvbihvZSxjZSxkZSl7dmFyIHZlO3JldHVybiB2ZT1kZSYmZGUuY29uc3RydWN0b3ImJmRlLmNvbnN0cnVjdG9yLm5hbWU/Imluc3RhbmNlIG9mICIuY29uY2F0KGRlLmNvbnN0cnVjdG9yLm5hbWUpOiJ0eXBlICIuY29uY2F0KGllKGRlKSksIkV4cGVjdGVkICIuY29uY2F0KG9l''@;'; + put 'put ''LCcgdG8gYmUgcmV0dXJuZWQgZnJvbSB0aGUgIicpLmNvbmNhdChjZSwnIicpKyIgZnVuY3Rpb24gYnV0IGdvdCAiLmNvbmNhdCh2ZSwiLiIpfSxUeXBlRXJyb3IpLEooIkVSUl9NSVNTSU5HX0FSR1MiLGZ1bmN0aW9uKCl7Zm9yKHZhciBvZT1hcmd1bWVudHMubGVuZ3RoLGNlPW5ldyBBcnJh''@;'; + put 'put ''eShvZSksZGU9MDtkZTxvZTtkZSsrKWNlW2RlXT1hcmd1bWVudHNbZGVdO3ZvaWQgMD09PU4mJihOPVooOTI4MikpLE4oY2UubGVuZ3RoPjAsIkF0IGxlYXN0IG9uZSBhcmcgbmVlZHMgdG8gYmUgc3BlY2lmaWVkIik7dmFyIHZlPSJUaGUgIixBZT1jZS5sZW5ndGg7c3dpdGNoKGNlPWNlLm1h''@;'; + put 'put ''cChmdW5jdGlvbihrZSl7cmV0dXJuJyInLmNvbmNhdChrZSwnIicpfSksQWUpe2Nhc2UgMTp2ZSs9IiIuY29uY2F0KGNlWzBdLCIgYXJndW1lbnQiKTticmVhaztjYXNlIDI6dmUrPSIiLmNvbmNhdChjZVswXSwiIGFuZCAiKS5jb25jYXQoY2VbMV0sIiBhcmd1bWVudHMiKTticmVhaztkZWZh''@;'; + put 'put ''dWx0OnZlKz1jZS5zbGljZSgwLEFlLTEpLmpvaW4oIiwgIiksdmUrPSIsIGFuZCAiLmNvbmNhdChjZVtBZS0xXSwiIGFyZ3VtZW50cyIpfXJldHVybiIiLmNvbmNhdCh2ZSwiIG11c3QgYmUgc3BlY2lmaWVkIil9LFR5cGVFcnJvciksVS5leHBvcnRzLmNvZGVzPXF9LDkxNTg6KFUsUSxaKT0+''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpZShtdCxodCl7cmV0dXJuIGZ1bmN0aW9uKEJ0KXtpZihBcnJheS5pc0FycmF5KEJ0KSlyZXR1cm4gQnR9KG10KXx8ZnVuY3Rpb24oQnQsb24pe3ZhciBfdD1bXSx0dD0hMCxldD0hMSxhdD12b2lkIDA7dHJ5e2Zvcih2YXIgTHQsQ3Q9QnRbU3ltYm9s''@;'; + put 'put ''Lml0ZXJhdG9yXSgpOyEodHQ9KEx0PUN0Lm5leHQoKSkuZG9uZSkmJihfdC5wdXNoKEx0LnZhbHVlKSwhb258fF90Lmxlbmd0aCE9PW9uKTt0dD0hMCk7fWNhdGNoKGZ0KXtldD0hMCxhdD1mdH1maW5hbGx5e3RyeXt0dHx8bnVsbD09Q3QucmV0dXJufHxDdC5yZXR1cm4oKX1maW5hbGx5e2lm''@;'; + put 'put ''KGV0KXRocm93IGF0fX1yZXR1cm4gX3R9KG10LGh0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9KCl9ZnVuY3Rpb24gbGUobXQpe3JldHVybihsZT0iZnVuY3Rpb24iPT10eXBl''@;'; + put 'put ''b2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihodCl7cmV0dXJuIHR5cGVvZiBodH06ZnVuY3Rpb24oaHQpe3JldHVybiBodCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmaHQuY29uc3RydWN0b3I9PT1TeW1ib2wmJmh0IT09U3ltYm9sLnBy''@;'; + put 'put ''b3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgaHR9KShtdCl9dmFyIFk9dm9pZCAwIT09L2EvZy5mbGFncyxXPWZ1bmN0aW9uKG10KXt2YXIgaHQ9W107cmV0dXJuIG10LmZvckVhY2goZnVuY3Rpb24oQnQpe3JldHVybiBodC5wdXNoKEJ0KX0pLGh0fSxOPWZ1bmN0aW9uKG10KXt2YXIgaHQ9W107''@;'; + put 'put ''cmV0dXJuIG10LmZvckVhY2goZnVuY3Rpb24oQnQsb24pe3JldHVybiBodC5wdXNoKFtvbixCdF0pfSksaHR9LGVlPU9iamVjdC5pcz9PYmplY3QuaXM6Wig2MDkpLHE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuW119LEo9TnVtYmVyLmlzTmFOP051bWJlci5pc05hTjpaKDM2MCk7ZnVuY3Rpb24gc2UobXQpe3JldHVybiBtdC5jYWxsLmJpbmQobXQpfXZhciBvZT1zZShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KSxjZT1zZShPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVt''@;'; + put 'put ''ZXJhYmxlKSxkZT1zZShPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKSx2ZT1aKDk1MzkpLnR5cGVzLEFlPXZlLmlzQW55QXJyYXlCdWZmZXIsa2U9dmUuaXNBcnJheUJ1ZmZlclZpZXcsU2U9dmUuaXNEYXRlLEllPXZlLmlzTWFwLFRlPXZlLmlzUmVnRXhwLEVlPXZlLmlzU2V0LGhlPXZlLmlz''@;'; + put 'put ''TmF0aXZlRXJyb3IsTz12ZS5pc0JveGVkUHJpbWl0aXZlLHo9dmUuaXNOdW1iZXJPYmplY3QsbmU9dmUuaXNTdHJpbmdPYmplY3QsdGU9dmUuaXNCb29sZWFuT2JqZWN0LHg9dmUuaXNCaWdJbnRPYmplY3QsUD12ZS5pc1N5bWJvbE9iamVjdCxWPXZlLmlzRmxvYXQzMkFycmF5LFQ9dmUuaXNG''@;'; + put 'put ''bG9hdDY0QXJyYXk7ZnVuY3Rpb24gUyhtdCl7aWYoMD09PW10Lmxlbmd0aHx8bXQubGVuZ3RoPjEwKXJldHVybiEwO2Zvcih2YXIgaHQ9MDtodDxtdC5sZW5ndGg7aHQrKyl7dmFyIEJ0PW10LmNoYXJDb2RlQXQoaHQpO2lmKEJ0PDQ4fHxCdD41NylyZXR1cm4hMH1yZXR1cm4gMTA9PT1tdC5s''@;'; + put 'put ''ZW5ndGgmJm10Pj1NYXRoLnBvdygyLDMyKX1mdW5jdGlvbiBGKG10KXtyZXR1cm4gT2JqZWN0LmtleXMobXQpLmZpbHRlcihTKS5jb25jYXQocShtdCkuZmlsdGVyKE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuYmluZChtdCkpKX1mdW5jdGlvbiB5ZShtdCxodCl7aWYo''@;'; + put 'put ''bXQ9PT1odClyZXR1cm4gMDtmb3IodmFyIEJ0PW10Lmxlbmd0aCxvbj1odC5sZW5ndGgsX3Q9MCx0dD1NYXRoLm1pbihCdCxvbik7X3Q8dHQ7KytfdClpZihtdFtfdF0hPT1odFtfdF0pe0J0PW10W190XSxvbj1odFtfdF07YnJlYWt9cmV0dXJuIEJ0PG9uPy0xOm9uPEJ0PzE6MH1mdW5jdGlv''@;'; + put 'put ''biBDZShtdCxodCxCdCxvbil7aWYobXQ9PT1odClyZXR1cm4gMCE9PW10fHwhQnR8fGVlKG10LGh0KTtpZihCdCl7aWYoIm9iamVjdCIhPT1sZShtdCkpcmV0dXJuIm51bWJlciI9PXR5cGVvZiBtdCYmSihtdCkmJkooaHQpO2lmKCJvYmplY3QiIT09bGUoaHQpfHxudWxsPT09bXR8fG51bGw9''@;'; + put 'put ''PT1odHx8T2JqZWN0LmdldFByb3RvdHlwZU9mKG10KSE9PU9iamVjdC5nZXRQcm90b3R5cGVPZihodCkpcmV0dXJuITF9ZWxzZXtpZihudWxsPT09bXR8fCJvYmplY3QiIT09bGUobXQpKXJldHVybihudWxsPT09aHR8fCJvYmplY3QiIT09bGUoaHQpKSYmbXQ9PWh0O2lmKG51bGw9PT1odHx8''@;'; + put 'put ''Im9iamVjdCIhPT1sZShodCkpcmV0dXJuITF9dmFyIF90LHR0LGV0LGF0LFVlLHl0LEx0PWRlKG10KTtpZihMdCE9PWRlKGh0KSlyZXR1cm4hMTtpZihBcnJheS5pc0FycmF5KG10KSl7aWYobXQubGVuZ3RoIT09aHQubGVuZ3RoKXJldHVybiExO3ZhciBDdD1GKG10KSxmdD1GKGh0KTtyZXR1''@;'; + put 'put ''cm4gQ3QubGVuZ3RoPT09ZnQubGVuZ3RoJiZQZShtdCxodCxCdCxvbiwxLEN0KX1pZigiW29iamVjdCBPYmplY3RdIj09PUx0JiYoIUllKG10KSYmSWUoaHQpfHwhRWUobXQpJiZFZShodCkpKXJldHVybiExO2lmKFNlKG10KSl7aWYoIVNlKGh0KXx8RGF0ZS5wcm90b3R5cGUuZ2V0VGltZS5j''@;'; + put 'put ''YWxsKG10KSE9PURhdGUucHJvdG90eXBlLmdldFRpbWUuY2FsbChodCkpcmV0dXJuITF9ZWxzZSBpZihUZShtdCkpe2lmKCFUZShodCl8fChldD1tdCxhdD1odCwhKFk/ZXQuc291cmNlPT09YXQuc291cmNlJiZldC5mbGFncz09PWF0LmZsYWdzOlJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcu''@;'; + put 'put ''Y2FsbChldCk9PT1SZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXQpKSkpcmV0dXJuITF9ZWxzZSBpZihoZShtdCl8fG10IGluc3RhbmNlb2YgRXJyb3Ipe2lmKG10Lm1lc3NhZ2UhPT1odC5tZXNzYWdlfHxtdC5uYW1lIT09aHQubmFtZSlyZXR1cm4hMX1lbHNle2lmKGtlKG10KSl7''@;'; + put 'put ''aWYoQnR8fCFWKG10KSYmIVQobXQpKXtpZigoVWU9bXQpLmJ5dGVMZW5ndGghPT0oeXQ9aHQpLmJ5dGVMZW5ndGh8fDAhPT15ZShuZXcgVWludDhBcnJheShVZS5idWZmZXIsVWUuYnl0ZU9mZnNldCxVZS5ieXRlTGVuZ3RoKSxuZXcgVWludDhBcnJheSh5dC5idWZmZXIseXQuYnl0ZU9mZnNl''@;'; + put 'put ''dCx5dC5ieXRlTGVuZ3RoKSkpcmV0dXJuITF9ZWxzZSBpZighZnVuY3Rpb24oVWUseXQpe2lmKFVlLmJ5dGVMZW5ndGghPT15dC5ieXRlTGVuZ3RoKXJldHVybiExO2Zvcih2YXIganQ9MDtqdDxVZS5ieXRlTGVuZ3RoO2p0KyspaWYoVWVbanRdIT09eXRbanRdKXJldHVybiExO3JldHVybiEw''@;'; + put 'put ''fShtdCxodCkpcmV0dXJuITE7dmFyIEh0PUYobXQpLEdlPUYoaHQpO3JldHVybiBIdC5sZW5ndGg9PT1HZS5sZW5ndGgmJlBlKG10LGh0LEJ0LG9uLDAsSHQpfWlmKEVlKG10KSlyZXR1cm4hKCFFZShodCl8fG10LnNpemUhPT1odC5zaXplKSYmUGUobXQsaHQsQnQsb24sMik7aWYoSWUobXQp''@;'; + put 'put ''KXJldHVybiEoIUllKGh0KXx8bXQuc2l6ZSE9PWh0LnNpemUpJiZQZShtdCxodCxCdCxvbiwzKTtpZihBZShtdCkpe2lmKChfdD1tdCkuYnl0ZUxlbmd0aCE9PSh0dD1odCkuYnl0ZUxlbmd0aHx8MCE9PXllKG5ldyBVaW50OEFycmF5KF90KSxuZXcgVWludDhBcnJheSh0dCkpKXJldHVybiEx''@;'; + put 'put ''fWVsc2UgaWYoTyhtdCkmJiFmdW5jdGlvbihVZSx5dCl7cmV0dXJuIHooVWUpP3ooeXQpJiZlZShOdW1iZXIucHJvdG90eXBlLnZhbHVlT2YuY2FsbChVZSksTnVtYmVyLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoeXQpKTpuZShVZSk/bmUoeXQpJiZTdHJpbmcucHJvdG90eXBlLnZhbHVlT2Yu''@;'; + put 'put ''Y2FsbChVZSk9PT1TdHJpbmcucHJvdG90eXBlLnZhbHVlT2YuY2FsbCh5dCk6dGUoVWUpP3RlKHl0KSYmQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFVlKT09PUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbCh5dCk6eChVZSk/eCh5dCkmJkJpZ0ludC5wcm90b3R5cGUudmFs''@;'; + put 'put ''dWVPZi5jYWxsKFVlKT09PUJpZ0ludC5wcm90b3R5cGUudmFsdWVPZi5jYWxsKHl0KTpQKHl0KSYmU3ltYm9sLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoVWUpPT09U3ltYm9sLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoeXQpfShtdCxodCkpcmV0dXJuITF9cmV0dXJuIFBlKG10LGh0LEJ0LG9u''@;'; + put 'put ''LDApfWZ1bmN0aW9uIERlKG10LGh0KXtyZXR1cm4gaHQuZmlsdGVyKGZ1bmN0aW9uKEJ0KXtyZXR1cm4gY2UobXQsQnQpfSl9ZnVuY3Rpb24gUGUobXQsaHQsQnQsb24sX3QsdHQpe2lmKDU9PT1hcmd1bWVudHMubGVuZ3RoKXt0dD1PYmplY3Qua2V5cyhtdCk7dmFyIGV0PU9iamVjdC5rZXlz''@;'; + put 'put ''KGh0KTtpZih0dC5sZW5ndGghPT1ldC5sZW5ndGgpcmV0dXJuITF9Zm9yKHZhciBhdD0wO2F0PHR0Lmxlbmd0aDthdCsrKWlmKCFvZShodCx0dFthdF0pKXJldHVybiExO2lmKEJ0JiY1PT09YXJndW1lbnRzLmxlbmd0aCl7dmFyIEx0PXEobXQpO2lmKDAhPT1MdC5sZW5ndGgpe3ZhciBDdD0w''@;'; + put 'put ''O2ZvcihhdD0wO2F0PEx0Lmxlbmd0aDthdCsrKXt2YXIgZnQ9THRbYXRdO2lmKGNlKG10LGZ0KSl7aWYoIWNlKGh0LGZ0KSlyZXR1cm4hMTt0dC5wdXNoKGZ0KSxDdCsrfWVsc2UgaWYoY2UoaHQsZnQpKXJldHVybiExfXZhciBIdD1xKGh0KTtpZihMdC5sZW5ndGghPT1IdC5sZW5ndGgmJkRl''@;'; + put 'put ''KGh0LEh0KS5sZW5ndGghPT1DdClyZXR1cm4hMX1lbHNle3ZhciBHZT1xKGh0KTtpZigwIT09R2UubGVuZ3RoJiYwIT09RGUoaHQsR2UpLmxlbmd0aClyZXR1cm4hMX19aWYoMD09PXR0Lmxlbmd0aCYmKDA9PT1fdHx8MT09PV90JiYwPT09bXQubGVuZ3RofHwwPT09bXQuc2l6ZSkpcmV0dXJu''@;'; + put 'put ''ITA7aWYodm9pZCAwPT09b24pb249e3ZhbDE6bmV3IE1hcCx2YWwyOm5ldyBNYXAscG9zaXRpb246MH07ZWxzZXt2YXIgVWU9b24udmFsMS5nZXQobXQpO2lmKHZvaWQgMCE9PVVlKXt2YXIgeXQ9b24udmFsMi5nZXQoaHQpO2lmKHZvaWQgMCE9PXl0KXJldHVybiBVZT09PXl0fW9uLnBvc2l0''@;'; + put 'put ''aW9uKyt9b24udmFsMS5zZXQobXQsb24ucG9zaXRpb24pLG9uLnZhbDIuc2V0KGh0LG9uLnBvc2l0aW9uKTt2YXIganQ9QXQobXQsaHQsQnQsdHQsb24sX3QpO3JldHVybiBvbi52YWwxLmRlbGV0ZShtdCksb24udmFsMi5kZWxldGUoaHQpLGp0fWZ1bmN0aW9uIFFlKG10LGh0LEJ0LG9uKXtm''@;'; + put 'put ''b3IodmFyIF90PVcobXQpLHR0PTA7dHQ8X3QubGVuZ3RoO3R0Kyspe3ZhciBldD1fdFt0dF07aWYoQ2UoaHQsZXQsQnQsb24pKXJldHVybiBtdC5kZWxldGUoZXQpLCEwfXJldHVybiExfWZ1bmN0aW9uICRlKG10KXtzd2l0Y2gobGUobXQpKXtjYXNlInVuZGVmaW5lZCI6cmV0dXJuIG51bGw7''@;'; + put 'put ''Y2FzZSJvYmplY3QiOnJldHVybjtjYXNlInN5bWJvbCI6cmV0dXJuITE7Y2FzZSJzdHJpbmciOm10PSttdDtjYXNlIm51bWJlciI6aWYoSihtdCkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gZ3QobXQsaHQsQnQpe3ZhciBvbj0kZShCdCk7cmV0dXJuIG51bGwhPW9uP29uOmh0Lmhhcyhv''@;'; + put 'put ''bikmJiFtdC5oYXMob24pfWZ1bmN0aW9uIHd0KG10LGh0LEJ0LG9uLF90KXt2YXIgdHQ9JGUoQnQpO2lmKG51bGwhPXR0KXJldHVybiB0dDt2YXIgZXQ9aHQuZ2V0KHR0KTtyZXR1cm4hKHZvaWQgMD09PWV0JiYhaHQuaGFzKHR0KXx8IUNlKG9uLGV0LCExLF90KSkmJiFtdC5oYXModHQpJiZD''@;'; + put 'put ''ZShvbixldCwhMSxfdCl9ZnVuY3Rpb24gdnQobXQsaHQsQnQsb24sX3QsdHQpe2Zvcih2YXIgZXQ9VyhtdCksYXQ9MDthdDxldC5sZW5ndGg7YXQrKyl7dmFyIEx0PWV0W2F0XTtpZihDZShCdCxMdCxfdCx0dCkmJkNlKG9uLGh0LmdldChMdCksX3QsdHQpKXJldHVybiBtdC5kZWxldGUoTHQp''@;'; + put 'put ''LCEwfXJldHVybiExfWZ1bmN0aW9uIEF0KG10LGh0LEJ0LG9uLF90LHR0KXt2YXIgZXQ9MDtpZigyPT09dHQpe2lmKCFmdW5jdGlvbihmdCxIdCxHZSxVZSl7Zm9yKHZhciB5dD1udWxsLGp0PVcoZnQpLFF0PTA7UXQ8anQubGVuZ3RoO1F0Kyspe3ZhciBnbj1qdFtRdF07aWYoIm9iamVjdCI9''@;'; + put 'put ''PT1sZShnbikmJm51bGwhPT1nbiludWxsPT09eXQmJih5dD1uZXcgU2V0KSx5dC5hZGQoZ24pO2Vsc2UgaWYoIUh0Lmhhcyhnbikpe2lmKEdlfHwhZ3QoZnQsSHQsZ24pKXJldHVybiExO251bGw9PT15dCYmKHl0PW5ldyBTZXQpLHl0LmFkZChnbil9fWlmKG51bGwhPT15dCl7Zm9yKHZhciBk''@;'; + put 'put ''bj1XKEh0KSx5bj0wO3luPGRuLmxlbmd0aDt5bisrKXt2YXIgbG49ZG5beW5dO2lmKCJvYmplY3QiPT09bGUobG4pJiZudWxsIT09bG4pe2lmKCFRZSh5dCxsbixHZSxVZSkpcmV0dXJuITF9ZWxzZSBpZighR2UmJiFmdC5oYXMobG4pJiYhUWUoeXQsbG4sR2UsVWUpKXJldHVybiExfXJldHVy''@;'; + put 'put ''biAwPT09eXQuc2l6ZX1yZXR1cm4hMH0obXQsaHQsQnQsX3QpKXJldHVybiExfWVsc2UgaWYoMz09PXR0KXtpZighZnVuY3Rpb24oZnQsSHQsR2UsVWUpe2Zvcih2YXIgeXQ9bnVsbCxqdD1OKGZ0KSxRdD0wO1F0PGp0Lmxlbmd0aDtRdCsrKXt2YXIgZ249aWUoanRbUXRdLDIpLGRuPWduWzBd''@;'; + put 'put ''LHluPWduWzFdO2lmKCJvYmplY3QiPT09bGUoZG4pJiZudWxsIT09ZG4pbnVsbD09PXl0JiYoeXQ9bmV3IFNldCkseXQuYWRkKGRuKTtlbHNle3ZhciBsbj1IdC5nZXQoZG4pO2lmKHZvaWQgMD09PWxuJiYhSHQuaGFzKGRuKXx8IUNlKHluLGxuLEdlLFVlKSl7aWYoR2V8fCF3dChmdCxIdCxk''@;'; + put 'put ''bix5bixVZSkpcmV0dXJuITE7bnVsbD09PXl0JiYoeXQ9bmV3IFNldCkseXQuYWRkKGRuKX19fWlmKG51bGwhPT15dCl7Zm9yKHZhciBObj1OKEh0KSxibj0wO2JuPE5uLmxlbmd0aDtibisrKXt2YXIgZXI9aWUoTm5bYm5dLDIpLHNyPShkbj1lclswXSxlclsxXSk7aWYoIm9iamVjdCI9PT1s''@;'; + put 'put ''ZShkbikmJm51bGwhPT1kbil7aWYoIXZ0KHl0LGZ0LGRuLHNyLEdlLFVlKSlyZXR1cm4hMX1lbHNlIGlmKCEoR2V8fGZ0LmhhcyhkbikmJkNlKGZ0LmdldChkbiksc3IsITEsVWUpfHx2dCh5dCxmdCxkbixzciwhMSxVZSkpKXJldHVybiExfXJldHVybiAwPT09eXQuc2l6ZX1yZXR1cm4hMH0o''@;'; + put 'put ''bXQsaHQsQnQsX3QpKXJldHVybiExfWVsc2UgaWYoMT09PXR0KWZvcig7ZXQ8bXQubGVuZ3RoO2V0Kyspe2lmKCFvZShtdCxldCkpe2lmKG9lKGh0LGV0KSlyZXR1cm4hMTtmb3IodmFyIGF0PU9iamVjdC5rZXlzKG10KTtldDxhdC5sZW5ndGg7ZXQrKyl7dmFyIEx0PWF0W2V0XTtpZighb2Uo''@;'; + put 'put ''aHQsTHQpfHwhQ2UobXRbTHRdLGh0W0x0XSxCdCxfdCkpcmV0dXJuITF9cmV0dXJuIGF0Lmxlbmd0aD09PU9iamVjdC5rZXlzKGh0KS5sZW5ndGh9aWYoIW9lKGh0LGV0KXx8IUNlKG10W2V0XSxodFtldF0sQnQsX3QpKXJldHVybiExfWZvcihldD0wO2V0PG9uLmxlbmd0aDtldCsrKXt2YXIg''@;'; + put 'put ''Q3Q9b25bZXRdO2lmKCFDZShtdFtDdF0saHRbQ3RdLEJ0LF90KSlyZXR1cm4hMX1yZXR1cm4hMH1VLmV4cG9ydHM9e2lzRGVlcEVxdWFsOmZ1bmN0aW9uKG10LGh0KXtyZXR1cm4gQ2UobXQsaHQsITEpfSxpc0RlZXBTdHJpY3RFcXVhbDpmdW5jdGlvbihtdCxodCl7cmV0dXJuIENlKG10LGh0''@;'; + put 'put ''LCEwKX19fSw4MjI0OlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKFEpe3JldHVybiBRfX0sOTY2OTooVSxRLFopPT57VS5leHBvcnRzPVooMTYwOSl9LDU0NDg6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0ODY3KSxsZT1aKDYwMjYpLFk9Wig0MzcyKSxXPVoo''@;'; + put 'put ''NTMyNyksTj1aKDQwOTcpLGVlPVooNDEwOSkscT1aKDc5ODUpLEo9Wig1MDYxKSxzZT1aKDU2NTUpLG9lPVooNTI2Myk7VS5leHBvcnRzPWZ1bmN0aW9uKGNlKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZGUsdmUpe3ZhciBBZSxrZT1jZS5kYXRhLFNlPWNlLmhlYWRlcnMsSWU9Y2Uu''@;'; + put 'put ''cmVzcG9uc2VUeXBlO2Z1bmN0aW9uIFRlKCl7Y2UuY2FuY2VsVG9rZW4mJmNlLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKEFlKSxjZS5zaWduYWwmJmNlLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsQWUpfWllLmlzRm9ybURhdGEoa2UpJiZkZWxldGUgU2VbIkNvbnRlbnQt''@;'; + put 'put ''VHlwZSJdO3ZhciBFZT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoY2UuYXV0aCl7dmFyIGhlPWNlLmF1dGgudXNlcm5hbWV8fCIiLE89Y2UuYXV0aC5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoY2UuYXV0aC5wYXNzd29yZCkpOiIiO1NlLkF1dGhvcml6YXRpb249IkJhc2lj''@;'; + put 'put ''ICIrYnRvYShoZSsiOiIrTyl9dmFyIHo9TihjZS5iYXNlVVJMLGNlLnVybCk7ZnVuY3Rpb24gbmUoKXtpZihFZSl7dmFyIHg9ImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBFZT9lZShFZS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk6bnVsbDtsZShmdW5jdGlvbihWKXtkZShWKSxUZSgpfSxm''@;'; + put 'put ''dW5jdGlvbihWKXt2ZShWKSxUZSgpfSx7ZGF0YTpJZSYmInRleHQiIT09SWUmJiJqc29uIiE9PUllP0VlLnJlc3BvbnNlOkVlLnJlc3BvbnNlVGV4dCxzdGF0dXM6RWUuc3RhdHVzLHN0YXR1c1RleHQ6RWUuc3RhdHVzVGV4dCxoZWFkZXJzOngsY29uZmlnOmNlLHJlcXVlc3Q6RWV9KSxFZT1u''@;'; + put 'put ''dWxsfX1pZihFZS5vcGVuKGNlLm1ldGhvZC50b1VwcGVyQ2FzZSgpLFcoeixjZS5wYXJhbXMsY2UucGFyYW1zU2VyaWFsaXplciksITApLEVlLnRpbWVvdXQ9Y2UudGltZW91dCwib25sb2FkZW5kImluIEVlP0VlLm9ubG9hZGVuZD1uZTpFZS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24o''@;'; + put 'put ''KXtFZSYmND09PUVlLnJlYWR5U3RhdGUmJigwIT09RWUuc3RhdHVzfHxFZS5yZXNwb25zZVVSTCYmMD09PUVlLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6IikpJiZzZXRUaW1lb3V0KG5lKX0sRWUub25hYm9ydD1mdW5jdGlvbigpe0VlJiYodmUoSigiUmVxdWVzdCBhYm9ydGVkIixjZSwi''@;'; + put 'put ''RUNPTk5BQk9SVEVEIixFZSkpLEVlPW51bGwpfSxFZS5vbmVycm9yPWZ1bmN0aW9uKCl7dmUoSigiTmV0d29yayBFcnJvciIsY2UsbnVsbCxFZSkpLEVlPW51bGx9LEVlLm9udGltZW91dD1mdW5jdGlvbigpe3ZhciB4PWNlLnRpbWVvdXQ/InRpbWVvdXQgb2YgIitjZS50aW1lb3V0KyJtcyBl''@;'; + put 'put ''eGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiO2NlLnRpbWVvdXRFcnJvck1lc3NhZ2UmJih4PWNlLnRpbWVvdXRFcnJvck1lc3NhZ2UpLHZlKEooeCxjZSwoY2UudHJhbnNpdGlvbmFsfHxzZS50cmFuc2l0aW9uYWwpLmNsYXJpZnlUaW1lb3V0RXJyb3I/IkVUSU1FRE9VVCI6IkVDT05OQUJP''@;'; + put 'put ''UlRFRCIsRWUpKSxFZT1udWxsfSxpZS5pc1N0YW5kYXJkQnJvd3NlckVudigpKXt2YXIgdGU9KGNlLndpdGhDcmVkZW50aWFsc3x8cSh6KSkmJmNlLnhzcmZDb29raWVOYW1lP1kucmVhZChjZS54c3JmQ29va2llTmFtZSk6dm9pZCAwO3RlJiYoU2VbY2UueHNyZkhlYWRlck5hbWVdPXRlKX0i''@;'; + put 'put ''c2V0UmVxdWVzdEhlYWRlciJpbiBFZSYmaWUuZm9yRWFjaChTZSxmdW5jdGlvbih4LFApe3ZvaWQgMD09PWtlJiYiY29udGVudC10eXBlIj09PVAudG9Mb3dlckNhc2UoKT9kZWxldGUgU2VbUF06RWUuc2V0UmVxdWVzdEhlYWRlcihQLHgpfSksaWUuaXNVbmRlZmluZWQoY2Uud2l0aENyZWRl''@;'; + put 'put ''bnRpYWxzKXx8KEVlLndpdGhDcmVkZW50aWFscz0hIWNlLndpdGhDcmVkZW50aWFscyksSWUmJiJqc29uIiE9PUllJiYoRWUucmVzcG9uc2VUeXBlPWNlLnJlc3BvbnNlVHlwZSksImZ1bmN0aW9uIj09dHlwZW9mIGNlLm9uRG93bmxvYWRQcm9ncmVzcyYmRWUuYWRkRXZlbnRMaXN0ZW5lcigi''@;'; + put 'put ''cHJvZ3Jlc3MiLGNlLm9uRG93bmxvYWRQcm9ncmVzcyksImZ1bmN0aW9uIj09dHlwZW9mIGNlLm9uVXBsb2FkUHJvZ3Jlc3MmJkVlLnVwbG9hZCYmRWUudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixjZS5vblVwbG9hZFByb2dyZXNzKSwoY2UuY2FuY2VsVG9rZW58fGNlLnNp''@;'; + put 'put ''Z25hbCkmJihBZT1mdW5jdGlvbih4KXtFZSYmKHZlKCF4fHx4JiZ4LnR5cGU/bmV3IG9lKCJjYW5jZWxlZCIpOngpLEVlLmFib3J0KCksRWU9bnVsbCl9LGNlLmNhbmNlbFRva2VuJiZjZS5jYW5jZWxUb2tlbi5zdWJzY3JpYmUoQWUpLGNlLnNpZ25hbCYmKGNlLnNpZ25hbC5hYm9ydGVkP0Fl''@;'; + put 'put ''KCk6Y2Uuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixBZSkpKSxrZXx8KGtlPW51bGwpLEVlLnNlbmQoa2UpfSl9fSwxNjA5OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDg2NyksbGU9WigxODQ5KSxZPVooMzIxKSxXPVooNzE4NSksTj1mdW5jdGlvbiBlZShxKXt2''@;'; + put 'put ''YXIgSj1uZXcgWShxKSxzZT1sZShZLnByb3RvdHlwZS5yZXF1ZXN0LEopO3JldHVybiBpZS5leHRlbmQoc2UsWS5wcm90b3R5cGUsSiksaWUuZXh0ZW5kKHNlLEopLHNlLmNyZWF0ZT1mdW5jdGlvbihvZSl7cmV0dXJuIGVlKFcocSxvZSkpfSxzZX0oWig1NjU1KSk7Ti5BeGlvcz1ZLE4uQ2Fu''@;'; + put 'put ''Y2VsPVooNTI2MyksTi5DYW5jZWxUb2tlbj1aKDQ5NzIpLE4uaXNDYW5jZWw9Wig2NTAyKSxOLlZFUlNJT049Wig3Mjg4KS52ZXJzaW9uLE4uYWxsPWZ1bmN0aW9uKGVlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZWUpfSxOLnNwcmVhZD1aKDg3MTMpLE4uaXNBeGlvc0Vycm9yPVooNjI2OCksVS5l''@;'; + put 'put ''eHBvcnRzPU4sVS5leHBvcnRzLmRlZmF1bHQ9Tn0sNTI2MzpVPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFEoWil7dGhpcy5tZXNzYWdlPVp9US5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iQ2FuY2VsIisodGhpcy5tZXNzYWdlPyI6ICIrdGhpcy5tZXNzYWdlOiIiKX0s''@;'; + put 'put ''US5wcm90b3R5cGUuX19DQU5DRUxfXz0hMCxVLmV4cG9ydHM9UX0sNDk3MjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDUyNjMpO2Z1bmN0aW9uIGxlKFkpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBZKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5j''@;'; + put 'put ''dGlvbi4iKTt2YXIgVzt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oZWUpe1c9ZWV9KTt2YXIgTj10aGlzO3RoaXMucHJvbWlzZS50aGVuKGZ1bmN0aW9uKGVlKXtpZihOLl9saXN0ZW5lcnMpe3ZhciBxLEo9Ti5fbGlzdGVuZXJzLmxlbmd0aDtmb3IocT0wO3E8SjtxKyspTi5f''@;'; + put 'put ''bGlzdGVuZXJzW3FdKGVlKTtOLl9saXN0ZW5lcnM9bnVsbH19KSx0aGlzLnByb21pc2UudGhlbj1mdW5jdGlvbihlZSl7dmFyIHEsSj1uZXcgUHJvbWlzZShmdW5jdGlvbihzZSl7Ti5zdWJzY3JpYmUoc2UpLHE9c2V9KS50aGVuKGVlKTtyZXR1cm4gSi5jYW5jZWw9ZnVuY3Rpb24oKXtOLnVu''@;'; + put 'put ''c3Vic2NyaWJlKHEpfSxKfSxZKGZ1bmN0aW9uKGVlKXtOLnJlYXNvbnx8KE4ucmVhc29uPW5ldyBpZShlZSksVyhOLnJlYXNvbikpfSl9bGUucHJvdG90eXBlLnRocm93SWZSZXF1ZXN0ZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn0sbGUucHJvdG90eXBl''@;'; + put 'put ''LnN1YnNjcmliZT1mdW5jdGlvbihZKXt0aGlzLnJlYXNvbj9ZKHRoaXMucmVhc29uKTp0aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goWSk6dGhpcy5fbGlzdGVuZXJzPVtZXX0sbGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKFkpe2lmKHRoaXMuX2xpc3RlbmVy''@;'; + put 'put ''cyl7dmFyIFc9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoWSk7LTEhPT1XJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKFcsMSl9fSxsZS5zb3VyY2U9ZnVuY3Rpb24oKXt2YXIgWTtyZXR1cm57dG9rZW46bmV3IGxlKGZ1bmN0aW9uKFcpe1k9V30pLGNhbmNlbDpZfX0sVS5leHBvcnRzPWxlfSw2''@;'; + put 'put ''NTAyOlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKFEpe3JldHVybiEoIVF8fCFRLl9fQ0FOQ0VMX18pfX0sMzIxOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDg2NyksbGU9Wig1MzI3KSxZPVooNzgyKSxXPVooMzU3MiksTj1aKDcxODUpLGVlPVooNDg3NSks''@;'; + put 'put ''cT1lZS52YWxpZGF0b3JzO2Z1bmN0aW9uIEooc2Upe3RoaXMuZGVmYXVsdHM9c2UsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IFkscmVzcG9uc2U6bmV3IFl9fUoucHJvdG90eXBlLnJlcXVlc3Q9ZnVuY3Rpb24oc2Usb2UpeyJzdHJpbmciPT10eXBlb2Ygc2U/KG9lPW9lfHx7fSku''@;'; + put 'put ''dXJsPXNlOm9lPXNlfHx7fSxvZS5tZXRob2Q9KG9lPU4odGhpcy5kZWZhdWx0cyxvZSkpLm1ldGhvZD9vZS5tZXRob2QudG9Mb3dlckNhc2UoKTp0aGlzLmRlZmF1bHRzLm1ldGhvZD90aGlzLmRlZmF1bHRzLm1ldGhvZC50b0xvd2VyQ2FzZSgpOiJnZXQiO3ZhciBjZT1vZS50cmFuc2l0aW9u''@;'; + put 'put ''YWw7dm9pZCAwIT09Y2UmJmVlLmFzc2VydE9wdGlvbnMoY2Use3NpbGVudEpTT05QYXJzaW5nOnEudHJhbnNpdGlvbmFsKHEuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6cS50cmFuc2l0aW9uYWwocS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOnEudHJhbnNpdGlvbmFsKHEuYm9v''@;'; + put 'put ''bGVhbil9LCExKTt2YXIgZGU9W10sdmU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGhlKXsiZnVuY3Rpb24iPT10eXBlb2YgaGUucnVuV2hlbiYmITE9PT1oZS5ydW5XaGVuKG9lKXx8KHZlPXZlJiZoZS5zeW5jaHJvbm91cyxkZS51bnNoaWZ0KGhlLmZ1''@;'; + put 'put ''bGZpbGxlZCxoZS5yZWplY3RlZCkpfSk7dmFyIEFlLGtlPVtdO2lmKHRoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oaGUpe2tlLnB1c2goaGUuZnVsZmlsbGVkLGhlLnJlamVjdGVkKX0pLCF2ZSl7dmFyIFNlPVtXLHZvaWQgMF07Zm9yKEFycmF5LnByb3RvdHlw''@;'; + put 'put ''ZS51bnNoaWZ0LmFwcGx5KFNlLGRlKSxTZT1TZS5jb25jYXQoa2UpLEFlPVByb21pc2UucmVzb2x2ZShvZSk7U2UubGVuZ3RoOylBZT1BZS50aGVuKFNlLnNoaWZ0KCksU2Uuc2hpZnQoKSk7cmV0dXJuIEFlfWZvcih2YXIgSWU9b2U7ZGUubGVuZ3RoOyl7dmFyIFRlPWRlLnNoaWZ0KCksRWU9''@;'; + put 'put ''ZGUuc2hpZnQoKTt0cnl7SWU9VGUoSWUpfWNhdGNoKGhlKXtFZShoZSk7YnJlYWt9fXRyeXtBZT1XKEllKX1jYXRjaChoZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KGhlKX1mb3IoO2tlLmxlbmd0aDspQWU9QWUudGhlbihrZS5zaGlmdCgpLGtlLnNoaWZ0KCkpO3JldHVybiBBZX0sSi5wcm90''@;'; + put 'put ''b3R5cGUuZ2V0VXJpPWZ1bmN0aW9uKHNlKXtyZXR1cm4gc2U9Tih0aGlzLmRlZmF1bHRzLHNlKSxsZShzZS51cmwsc2UucGFyYW1zLHNlLnBhcmFtc1NlcmlhbGl6ZXIpLnJlcGxhY2UoL15cPy8sIiIpfSxpZS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5j''@;'; + put 'put ''dGlvbihzZSl7Si5wcm90b3R5cGVbc2VdPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KE4oY2V8fHt9LHttZXRob2Q6c2UsdXJsOm9lLGRhdGE6KGNlfHx7fSkuZGF0YX0pKX19KSxpZS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oc2Upe0oucHJv''@;'; + put 'put ''dG90eXBlW3NlXT1mdW5jdGlvbihvZSxjZSxkZSl7cmV0dXJuIHRoaXMucmVxdWVzdChOKGRlfHx7fSx7bWV0aG9kOnNlLHVybDpvZSxkYXRhOmNlfSkpfX0pLFUuZXhwb3J0cz1KfSw3ODI6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0ODY3KTtmdW5jdGlvbiBsZSgpe3RoaXMu''@;'; + put 'put ''aGFuZGxlcnM9W119bGUucHJvdG90eXBlLnVzZT1mdW5jdGlvbihZLFcsTil7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOlkscmVqZWN0ZWQ6VyxzeW5jaHJvbm91czohIU4mJk4uc3luY2hyb25vdXMscnVuV2hlbjpOP04ucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVy''@;'; + put 'put ''cy5sZW5ndGgtMX0sbGUucHJvdG90eXBlLmVqZWN0PWZ1bmN0aW9uKFkpe3RoaXMuaGFuZGxlcnNbWV0mJih0aGlzLmhhbmRsZXJzW1ldPW51bGwpfSxsZS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihZKXtpZS5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oVyl7bnVsbCE9PVcm''@;'; + put 'put ''JlkoVyl9KX0sVS5leHBvcnRzPWxlfSw0MDk3OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooMTc5MyksbGU9Wig3MzAzKTtVLmV4cG9ydHM9ZnVuY3Rpb24oWSxXKXtyZXR1cm4gWSYmIWllKFcpP2xlKFksVyk6V319LDUwNjE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9''@;'; + put 'put ''Wig4OTY1KTtVLmV4cG9ydHM9ZnVuY3Rpb24obGUsWSxXLE4sZWUpe3ZhciBxPW5ldyBFcnJvcihsZSk7cmV0dXJuIGllKHEsWSxXLE4sZWUpfX0sMzU3MjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQ4NjcpLGxlPVooODUyNyksWT1aKDY1MDIpLFc9Wig1NjU1KSxOPVooNTI2''@;'; + put 'put ''Myk7ZnVuY3Rpb24gZWUocSl7aWYocS5jYW5jZWxUb2tlbiYmcS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCkscS5zaWduYWwmJnEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IE4oImNhbmNlbGVkIil9VS5leHBvcnRzPWZ1bmN0aW9uKHEpe3JldHVybiBlZShxKSxxLmhlYWRlcnM9''@;'; + put 'put ''cS5oZWFkZXJzfHx7fSxxLmRhdGE9bGUuY2FsbChxLHEuZGF0YSxxLmhlYWRlcnMscS50cmFuc2Zvcm1SZXF1ZXN0KSxxLmhlYWRlcnM9aWUubWVyZ2UocS5oZWFkZXJzLmNvbW1vbnx8e30scS5oZWFkZXJzW3EubWV0aG9kXXx8e30scS5oZWFkZXJzKSxpZS5mb3JFYWNoKFsiZGVsZXRlIiwi''@;'; + put 'put ''Z2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLGZ1bmN0aW9uKEope2RlbGV0ZSBxLmhlYWRlcnNbSl19KSwocS5hZGFwdGVyfHxXLmFkYXB0ZXIpKHEpLnRoZW4oZnVuY3Rpb24oSil7cmV0dXJuIGVlKHEpLEouZGF0YT1sZS5jYWxsKHEsSi5kYXRhLEouaGVhZGVy''@;'; + put 'put ''cyxxLnRyYW5zZm9ybVJlc3BvbnNlKSxKfSxmdW5jdGlvbihKKXtyZXR1cm4gWShKKXx8KGVlKHEpLEomJkoucmVzcG9uc2UmJihKLnJlc3BvbnNlLmRhdGE9bGUuY2FsbChxLEoucmVzcG9uc2UuZGF0YSxKLnJlc3BvbnNlLmhlYWRlcnMscS50cmFuc2Zvcm1SZXNwb25zZSkpKSxQcm9taXNl''@;'; + put 'put ''LnJlamVjdChKKX0pfX0sODk2NTpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1mdW5jdGlvbihRLFosaWUsbGUsWSl7cmV0dXJuIFEuY29uZmlnPVosaWUmJihRLmNvZGU9aWUpLFEucmVxdWVzdD1sZSxRLnJlc3BvbnNlPVksUS5pc0F4aW9zRXJyb3I9ITAsUS50b0pTT049ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1''@;'; + put 'put ''bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6dGhpcy5jb25maWcsY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMucmVzcG9uc2UmJnRoaXMucmVzcG9uc2Uuc3RhdHVzP3RoaXMucmVzcG9uc2Uuc3RhdHVzOm51bGx9fSxRfX0sNzE4NTooVSxRLFopPT57InVzZSBzdHJpY3QiO3Zh''@;'; + put 'put ''ciBpZT1aKDQ4NjcpO1UuZXhwb3J0cz1mdW5jdGlvbihsZSxZKXtZPVl8fHt9O3ZhciBXPXt9O2Z1bmN0aW9uIE4oY2UsZGUpe3JldHVybiBpZS5pc1BsYWluT2JqZWN0KGNlKSYmaWUuaXNQbGFpbk9iamVjdChkZSk/aWUubWVyZ2UoY2UsZGUpOmllLmlzUGxhaW5PYmplY3QoZGUpP2llLm1l''@;'; + put 'put ''cmdlKHt9LGRlKTppZS5pc0FycmF5KGRlKT9kZS5zbGljZSgpOmRlfWZ1bmN0aW9uIGVlKGNlKXtyZXR1cm4gaWUuaXNVbmRlZmluZWQoWVtjZV0pP2llLmlzVW5kZWZpbmVkKGxlW2NlXSk/dm9pZCAwOk4odm9pZCAwLGxlW2NlXSk6TihsZVtjZV0sWVtjZV0pfWZ1bmN0aW9uIHEoY2Upe2lm''@;'; + put 'put ''KCFpZS5pc1VuZGVmaW5lZChZW2NlXSkpcmV0dXJuIE4odm9pZCAwLFlbY2VdKX1mdW5jdGlvbiBKKGNlKXtyZXR1cm4gaWUuaXNVbmRlZmluZWQoWVtjZV0pP2llLmlzVW5kZWZpbmVkKGxlW2NlXSk/dm9pZCAwOk4odm9pZCAwLGxlW2NlXSk6Tih2b2lkIDAsWVtjZV0pfWZ1bmN0aW9uIHNl''@;'; + put 'put ''KGNlKXtyZXR1cm4gY2UgaW4gWT9OKGxlW2NlXSxZW2NlXSk6Y2UgaW4gbGU/Tih2b2lkIDAsbGVbY2VdKTp2b2lkIDB9dmFyIG9lPXt1cmw6cSxtZXRob2Q6cSxkYXRhOnEsYmFzZVVSTDpKLHRyYW5zZm9ybVJlcXVlc3Q6Six0cmFuc2Zvcm1SZXNwb25zZTpKLHBhcmFtc1NlcmlhbGl6ZXI6''@;'; + put 'put ''Six0aW1lb3V0OkosdGltZW91dE1lc3NhZ2U6Six3aXRoQ3JlZGVudGlhbHM6SixhZGFwdGVyOkoscmVzcG9uc2VUeXBlOkoseHNyZkNvb2tpZU5hbWU6Six4c3JmSGVhZGVyTmFtZTpKLG9uVXBsb2FkUHJvZ3Jlc3M6SixvbkRvd25sb2FkUHJvZ3Jlc3M6SixkZWNvbXByZXNzOkosbWF4Q29u''@;'; + put 'put ''dGVudExlbmd0aDpKLG1heEJvZHlMZW5ndGg6Six0cmFuc3BvcnQ6SixodHRwQWdlbnQ6SixodHRwc0FnZW50OkosY2FuY2VsVG9rZW46Sixzb2NrZXRQYXRoOkoscmVzcG9uc2VFbmNvZGluZzpKLHZhbGlkYXRlU3RhdHVzOnNlfTtyZXR1cm4gaWUuZm9yRWFjaChPYmplY3Qua2V5cyhsZSku''@;'; + put 'put ''Y29uY2F0KE9iamVjdC5rZXlzKFkpKSxmdW5jdGlvbihjZSl7dmFyIGRlPW9lW2NlXXx8ZWUsdmU9ZGUoY2UpO2llLmlzVW5kZWZpbmVkKHZlKSYmZGUhPT1zZXx8KFdbY2VdPXZlKX0pLFd9fSw2MDI2OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNTA2MSk7VS5leHBvcnRzPWZ1''@;'; + put 'put ''bmN0aW9uKGxlLFksVyl7dmFyIE49Vy5jb25maWcudmFsaWRhdGVTdGF0dXM7Vy5zdGF0dXMmJk4mJiFOKFcuc3RhdHVzKT9ZKGllKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrVy5zdGF0dXMsVy5jb25maWcsbnVsbCxXLnJlcXVlc3QsVykpOmxlKFcpfX0sODUyNzooVSxR''@;'; + put 'put ''LFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQ4NjcpLGxlPVooNTY1NSk7VS5leHBvcnRzPWZ1bmN0aW9uKFksVyxOKXt2YXIgZWU9dGhpc3x8bGU7cmV0dXJuIGllLmZvckVhY2goTixmdW5jdGlvbihxKXtZPXEuY2FsbChlZSxZLFcpfSksWX19LDU2NTU6KFUsUSxaKT0+eyJ1c2Ugc3Ry''@;'; + put 'put ''aWN0Ijt2YXIgaWU9Wig0MTU1KSxsZT1aKDQ4NjcpLFk9Wig2MDE2KSxXPVooODk2NSksTj17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9O2Z1bmN0aW9uIGVlKHNlLG9lKXshbGUuaXNVbmRlZmluZWQoc2UpJiZsZS5pc1VuZGVmaW5lZChzZVsi''@;'; + put 'put ''Q29udGVudC1UeXBlIl0pJiYoc2VbIkNvbnRlbnQtVHlwZSJdPW9lKX12YXIgcSxKPXt0cmFuc2l0aW9uYWw6e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9LGFkYXB0ZXI6KCgidW5kZWZpbmVkIiE9dHlwZW9mIFhNTEh0''@;'; + put 'put ''dHBSZXF1ZXN0fHx2b2lkIDAhPT1pZSYmIltvYmplY3QgcHJvY2Vzc10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGllKSkmJihxPVooNTQ0OCkpLHEpLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKHNlLG9lKXtyZXR1cm4gWShvZSwiQWNjZXB0IiksWShvZSwiQ29udGVu''@;'; + put 'put ''dC1UeXBlIiksbGUuaXNGb3JtRGF0YShzZSl8fGxlLmlzQXJyYXlCdWZmZXIoc2UpfHxsZS5pc0J1ZmZlcihzZSl8fGxlLmlzU3RyZWFtKHNlKXx8bGUuaXNGaWxlKHNlKXx8bGUuaXNCbG9iKHNlKT9zZTpsZS5pc0FycmF5QnVmZmVyVmlldyhzZSk/c2UuYnVmZmVyOmxlLmlzVVJMU2VhcmNo''@;'; + put 'put ''UGFyYW1zKHNlKT8oZWUob2UsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04Iiksc2UudG9TdHJpbmcoKSk6bGUuaXNPYmplY3Qoc2UpfHxvZSYmImFwcGxpY2F0aW9uL2pzb24iPT09b2VbIkNvbnRlbnQtVHlwZSJdPyhlZShvZSwiYXBwbGljYXRpb24v''@;'; + put 'put ''anNvbiIpLGZ1bmN0aW9uKGNlLGRlLHZlKXtpZihsZS5pc1N0cmluZyhjZSkpdHJ5e3JldHVybigwLEpTT04ucGFyc2UpKGNlKSxsZS50cmltKGNlKX1jYXRjaChBZSl7aWYoIlN5bnRheEVycm9yIiE9PUFlLm5hbWUpdGhyb3cgQWV9cmV0dXJuKDAsSlNPTi5zdHJpbmdpZnkpKGNlKX0oc2Up''@;'; + put 'put ''KTpzZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihzZSl7dmFyIG9lPXRoaXMudHJhbnNpdGlvbmFsfHxKLnRyYW5zaXRpb25hbCx2ZT0hKG9lJiZvZS5zaWxlbnRKU09OUGFyc2luZykmJiJqc29uIj09PXRoaXMucmVzcG9uc2VUeXBlO2lmKHZlfHxvZSYmb2UuZm9yY2VkSlNPTlBh''@;'; + put 'put ''cnNpbmcmJmxlLmlzU3RyaW5nKHNlKSYmc2UubGVuZ3RoKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShzZSl9Y2F0Y2goQWUpe2lmKHZlKXRocm93IlN5bnRheEVycm9yIj09PUFlLm5hbWU/VyhBZSx0aGlzLCJFX0pTT05fUEFSU0UiKTpBZX1yZXR1cm4gc2V9XSx0aW1lb3V0OjAseHNyZkNvb2tp''@;'; + put 'put ''ZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihzZSl7cmV0dXJuIHNlPj0yMDAmJnNlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFw''@;'; + put 'put ''cGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiJ9fX07bGUuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiXSxmdW5jdGlvbihzZSl7Si5oZWFkZXJzW3NlXT17fX0pLGxlLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbihzZSl7Si5oZWFkZXJzW3NlXT1s''@;'; + put 'put ''ZS5tZXJnZShOKX0pLFUuZXhwb3J0cz1KfSw3Mjg4OlU9PntVLmV4cG9ydHM9e3ZlcnNpb246IjAuMjYuMCJ9fSwxODQ5OlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKFEsWil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBpZT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0''@;'; + put 'put ''aCksbGU9MDtsZTxpZS5sZW5ndGg7bGUrKylpZVtsZV09YXJndW1lbnRzW2xlXTtyZXR1cm4gUS5hcHBseShaLGllKX19fSw1MzI3OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDg2Nyk7ZnVuY3Rpb24gbGUoWSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChZKS5yZXBsYWNl''@;'; + put 'put ''KC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIikucmVwbGFjZSgvJTVCL2dpLCJbIikucmVwbGFjZSgvJTVEL2dpLCJdIil9VS5leHBvcnRzPWZ1bmN0aW9uKFksVyxOKXtpZighVylyZXR1cm4gWTt2YXIgZWU7''@;'; + put 'put ''aWYoTillZT1OKFcpO2Vsc2UgaWYoaWUuaXNVUkxTZWFyY2hQYXJhbXMoVykpZWU9Vy50b1N0cmluZygpO2Vsc2V7dmFyIHE9W107aWUuZm9yRWFjaChXLGZ1bmN0aW9uKHNlLG9lKXtudWxsIT1zZSYmKGllLmlzQXJyYXkoc2UpP29lKz0iW10iOnNlPVtzZV0saWUuZm9yRWFjaChzZSxmdW5j''@;'; + put 'put ''dGlvbihjZSl7aWUuaXNEYXRlKGNlKT9jZT1jZS50b0lTT1N0cmluZygpOmllLmlzT2JqZWN0KGNlKSYmKGNlPUpTT04uc3RyaW5naWZ5KGNlKSkscS5wdXNoKGxlKG9lKSsiPSIrbGUoY2UpKX0pKX0pLGVlPXEuam9pbigiJiIpfWlmKGVlKXt2YXIgSj1ZLmluZGV4T2YoIiMiKTstMSE9PUom''@;'; + put 'put ''JihZPVkuc2xpY2UoMCxKKSksWSs9KC0xPT09WS5pbmRleE9mKCI/Iik/Ij8iOiImIikrZWV9cmV0dXJuIFl9fSw3MzAzOlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKFEsWil7cmV0dXJuIFo/US5yZXBsYWNlKC9cLyskLywiIikrIi8iK1oucmVwbGFjZSgvXlwvKy8sIiIp''@;'; + put 'put ''OlF9fSw0MzcyOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDg2Nyk7VS5leHBvcnRzPWllLmlzU3RhbmRhcmRCcm93c2VyRW52KCk/e3dyaXRlOmZ1bmN0aW9uKGxlLFksVyxOLGVlLHEpe3ZhciBKPVtdO0oucHVzaChsZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFkpKSxpZS5p''@;'; + put 'put ''c051bWJlcihXKSYmSi5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoVykudG9HTVRTdHJpbmcoKSksaWUuaXNTdHJpbmcoTikmJkoucHVzaCgicGF0aD0iK04pLGllLmlzU3RyaW5nKGVlKSYmSi5wdXNoKCJkb21haW49IitlZSksITA9PT1xJiZKLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNv''@;'; + put 'put ''b2tpZT1KLmpvaW4oIjsgIil9LHJlYWQ6ZnVuY3Rpb24obGUpe3ZhciBZPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitsZSsiKT0oW147XSopIikpO3JldHVybiBZP2RlY29kZVVSSUNvbXBvbmVudChZWzNdKTpudWxsfSxyZW1vdmU6ZnVuY3Rpb24obGUp''@;'; + put 'put ''e3RoaXMud3JpdGUobGUsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGU6ZnVuY3Rpb24oKXt9LHJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scmVtb3ZlOmZ1bmN0aW9uKCl7fX19LDE3OTM6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9ZnVuY3Rpb24oUSl7cmV0dXJuL14oW2Et''@;'; + put 'put ''el1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChRKX19LDYyNjg6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0ODY3KTtVLmV4cG9ydHM9ZnVuY3Rpb24obGUpe3JldHVybiBpZS5pc09iamVjdChsZSkmJiEwPT09bGUuaXNBeGlvc0Vycm9yfX0sNzk4NTooVSxRLFopPT57InVz''@;'; + put 'put ''ZSBzdHJpY3QiO3ZhciBpZT1aKDQ4NjcpO1UuZXhwb3J0cz1pZS5pc1N0YW5kYXJkQnJvd3NlckVudigpP2Z1bmN0aW9uKCl7dmFyIGxlLFk9Lyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxXPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBO''@;'; + put 'put ''KGVlKXt2YXIgcT1lZTtyZXR1cm4gWSYmKFcuc2V0QXR0cmlidXRlKCJocmVmIixxKSxxPVcuaHJlZiksVy5zZXRBdHRyaWJ1dGUoImhyZWYiLHEpLHtocmVmOlcuaHJlZixwcm90b2NvbDpXLnByb3RvY29sP1cucHJvdG9jb2wucmVwbGFjZSgvOiQvLCIiKToiIixob3N0OlcuaG9zdCxzZWFy''@;'; + put 'put ''Y2g6Vy5zZWFyY2g/Vy5zZWFyY2gucmVwbGFjZSgvXlw/LywiIik6IiIsaGFzaDpXLmhhc2g/Vy5oYXNoLnJlcGxhY2UoL14jLywiIik6IiIsaG9zdG5hbWU6Vy5ob3N0bmFtZSxwb3J0OlcucG9ydCxwYXRobmFtZToiLyI9PT1XLnBhdGhuYW1lLmNoYXJBdCgwKT9XLnBhdGhuYW1lOiIvIitX''@;'; + put 'put ''LnBhdGhuYW1lfX1yZXR1cm4gbGU9Tih3aW5kb3cubG9jYXRpb24uaHJlZiksZnVuY3Rpb24oZWUpe3ZhciBxPWllLmlzU3RyaW5nKGVlKT9OKGVlKTplZTtyZXR1cm4gcS5wcm90b2NvbD09PWxlLnByb3RvY29sJiZxLmhvc3Q9PT1sZS5ob3N0fX0oKTpmdW5jdGlvbigpe3JldHVybiEwfX0s''@;'; + put 'put ''NjAxNjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQ4NjcpO1UuZXhwb3J0cz1mdW5jdGlvbihsZSxZKXtpZS5mb3JFYWNoKGxlLGZ1bmN0aW9uKFcsTil7TiE9PVkmJk4udG9VcHBlckNhc2UoKT09PVkudG9VcHBlckNhc2UoKSYmKGxlW1ldPVcsZGVsZXRlIGxlW05dKX0pfX0s''@;'; + put 'put ''NDEwOTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQ4NjcpLGxlPVsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmll''@;'; + put 'put ''ZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il07VS5leHBvcnRzPWZ1bmN0aW9uKFkpe3ZhciBXLE4sZWUscT17fTtyZXR1cm4gWSYmaWUuZm9y''@;'; + put 'put ''RWFjaChZLnNwbGl0KCJcbiIpLGZ1bmN0aW9uKEope2lmKGVlPUouaW5kZXhPZigiOiIpLFc9aWUudHJpbShKLnN1YnN0cigwLGVlKSkudG9Mb3dlckNhc2UoKSxOPWllLnRyaW0oSi5zdWJzdHIoZWUrMSkpLFcpe2lmKHFbV10mJmxlLmluZGV4T2YoVyk+PTApcmV0dXJuO3FbV109InNldC1j''@;'; + put 'put ''b29raWUiPT09Vz8ocVtXXT9xW1ddOltdKS5jb25jYXQoW05dKTpxW1ddP3FbV10rIiwgIitOOk59fSkscX19LDg3MTM6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9ZnVuY3Rpb24oUSl7cmV0dXJuIGZ1bmN0aW9uKFope3JldHVybiBRLmFwcGx5KG51bGwsWil9fX0sNDg3NTooVSxRLFop''@;'; + put 'put ''PT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDUxMDgpLGxlPVooNzI4OCkudmVyc2lvbixZPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaChmdW5jdGlvbihOLGVlKXtZW05dPWZ1bmN0aW9uKHEpe3JldHVybiB0eXBl''@;'; + put 'put ''b2YgcT09PU58fCJhIisoZWU8MT8ibiAiOiIgIikrTn19KTt2YXIgVz17fTtZLnRyYW5zaXRpb25hbD1mdW5jdGlvbihOLGVlLHEpe2Z1bmN0aW9uIEooc2Usb2Upe3JldHVybiJbQXhpb3MgdiIrbGUrIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIitzZSsiJyIrb2UrKHE/Ii4gIitxOiIiKX1y''@;'; + put 'put ''ZXR1cm4gZnVuY3Rpb24oc2Usb2UsY2Upe2lmKCExPT09Til0aHJvdyBuZXcgRXJyb3IoSihvZSwiIGhhcyBiZWVuIHJlbW92ZWQiKyhlZT8iIGluICIrZWU6IiIpKSk7cmV0dXJuIGVlJiYhV1tvZV0mJihXW29lXT0hMCxpZS53YXJuKEoob2UsIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNl''@;'; + put 'put ''IHYiK2VlKyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLCFOfHxOKHNlLG9lLGNlKX19LFUuZXhwb3J0cz17YXNzZXJ0T3B0aW9uczpmdW5jdGlvbihOLGVlLHEpe2lmKCJvYmplY3QiIT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11''@;'; + put 'put ''c3QgYmUgYW4gb2JqZWN0Iik7Zm9yKHZhciBKPU9iamVjdC5rZXlzKE4pLHNlPUoubGVuZ3RoO3NlLS0gPjA7KXt2YXIgb2U9SltzZV0sY2U9ZWVbb2VdO2lmKGNlKXt2YXIgZGU9TltvZV0sdmU9dm9pZCAwPT09ZGV8fGNlKGRlLG9lLE4pO2lmKCEwIT09dmUpdGhyb3cgbmV3IFR5cGVFcnJv''@;'; + put 'put ''cigib3B0aW9uICIrb2UrIiBtdXN0IGJlICIrdmUpfWVsc2UgaWYoITAhPT1xKXRocm93IEVycm9yKCJVbmtub3duIG9wdGlvbiAiK29lKX19LHZhbGlkYXRvcnM6WX19LDQ4Njc6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9WigxODQ5KSxsZT1PYmplY3QucHJvdG90eXBlLnRvU3Ry''@;'; + put 'put ''aW5nO2Z1bmN0aW9uIFkob2Upe3JldHVybiBBcnJheS5pc0FycmF5KG9lKX1mdW5jdGlvbiBXKG9lKXtyZXR1cm4gdm9pZCAwPT09b2V9ZnVuY3Rpb24gTihvZSl7cmV0dXJuIltvYmplY3QgQXJyYXlCdWZmZXJdIj09PWxlLmNhbGwob2UpfWZ1bmN0aW9uIGVlKG9lKXtyZXR1cm4gbnVsbCE9''@;'; + put 'put ''PW9lJiYib2JqZWN0Ij09dHlwZW9mIG9lfWZ1bmN0aW9uIHEob2Upe2lmKCJbb2JqZWN0IE9iamVjdF0iIT09bGUuY2FsbChvZSkpcmV0dXJuITE7dmFyIGNlPU9iamVjdC5nZXRQcm90b3R5cGVPZihvZSk7cmV0dXJuIG51bGw9PT1jZXx8Y2U9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9u''@;'; + put 'put ''IEoob2Upe3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1sZS5jYWxsKG9lKX1mdW5jdGlvbiBzZShvZSxjZSl7aWYobnVsbCE9b2UpaWYoIm9iamVjdCIhPXR5cGVvZiBvZSYmKG9lPVtvZV0pLFkob2UpKWZvcih2YXIgZGU9MCx2ZT1vZS5sZW5ndGg7ZGU8dmU7ZGUrKyljZS5jYWxsKG51''@;'; + put 'put ''bGwsb2VbZGVdLGRlLG9lKTtlbHNlIGZvcih2YXIgQWUgaW4gb2UpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9lLEFlKSYmY2UuY2FsbChudWxsLG9lW0FlXSxBZSxvZSl9VS5leHBvcnRzPXtpc0FycmF5OlksaXNBcnJheUJ1ZmZlcjpOLGlzQnVmZmVyOmZ1bmN0aW9u''@;'; + put 'put ''KG9lKXtyZXR1cm4gbnVsbCE9PW9lJiYhVyhvZSkmJm51bGwhPT1vZS5jb25zdHJ1Y3RvciYmIVcob2UuY29uc3RydWN0b3IpJiYiZnVuY3Rpb24iPT10eXBlb2Ygb2UuY29uc3RydWN0b3IuaXNCdWZmZXImJm9lLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9lKX0saXNGb3JtRGF0YTpmdW5jdGlv''@;'; + put 'put ''bihvZSl7cmV0dXJuIltvYmplY3QgRm9ybURhdGFdIj09PWxlLmNhbGwob2UpfSxpc0FycmF5QnVmZmVyVmlldzpmdW5jdGlvbihvZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmQXJyYXlCdWZmZXIuaXNWaWV3P0FycmF5QnVmZmVyLmlzVmlldyhvZSk6b2UmJm9l''@;'; + put 'put ''LmJ1ZmZlciYmTihvZS5idWZmZXIpfSxpc1N0cmluZzpmdW5jdGlvbihvZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBvZX0saXNOdW1iZXI6ZnVuY3Rpb24ob2Upe3JldHVybiJudW1iZXIiPT10eXBlb2Ygb2V9LGlzT2JqZWN0OmVlLGlzUGxhaW5PYmplY3Q6cSxpc1VuZGVmaW5lZDpXLGlz''@;'; + put 'put ''RGF0ZTpmdW5jdGlvbihvZSl7cmV0dXJuIltvYmplY3QgRGF0ZV0iPT09bGUuY2FsbChvZSl9LGlzRmlsZTpmdW5jdGlvbihvZSl7cmV0dXJuIltvYmplY3QgRmlsZV0iPT09bGUuY2FsbChvZSl9LGlzQmxvYjpmdW5jdGlvbihvZSl7cmV0dXJuIltvYmplY3QgQmxvYl0iPT09bGUuY2FsbChv''@;'; + put 'put ''ZSl9LGlzRnVuY3Rpb246Sixpc1N0cmVhbTpmdW5jdGlvbihvZSl7cmV0dXJuIGVlKG9lKSYmSihvZS5waXBlKX0saXNVUkxTZWFyY2hQYXJhbXM6ZnVuY3Rpb24ob2Upe3JldHVybiJbb2JqZWN0IFVSTFNlYXJjaFBhcmFtc10iPT09bGUuY2FsbChvZSl9LGlzU3RhbmRhcmRCcm93c2VyRW52''@;'; + put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuKCJ1bmRlZmluZWQiPT10eXBlb2YgbmF2aWdhdG9yfHwiUmVhY3ROYXRpdmUiIT09bmF2aWdhdG9yLnByb2R1Y3QmJiJOYXRpdmVTY3JpcHQiIT09bmF2aWdhdG9yLnByb2R1Y3QmJiJOUyIhPT1uYXZpZ2F0b3IucHJvZHVjdCkmJiJ1bmRlZmluZWQiIT10eXBl''@;'; + put 'put ''b2Ygd2luZG93JiYidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50fSxmb3JFYWNoOnNlLG1lcmdlOmZ1bmN0aW9uIG9lKCl7dmFyIGNlPXt9O2Z1bmN0aW9uIGRlKGtlLFNlKXtjZVtTZV09cShjZVtTZV0pJiZxKGtlKT9vZShjZVtTZV0sa2UpOnEoa2UpP29lKHt9LGtlKTpZKGtlKT9rZS5z''@;'; + put 'put ''bGljZSgpOmtlfWZvcih2YXIgdmU9MCxBZT1hcmd1bWVudHMubGVuZ3RoO3ZlPEFlO3ZlKyspc2UoYXJndW1lbnRzW3ZlXSxkZSk7cmV0dXJuIGNlfSxleHRlbmQ6ZnVuY3Rpb24ob2UsY2UsZGUpe3JldHVybiBzZShjZSxmdW5jdGlvbih2ZSxBZSl7b2VbQWVdPWRlJiYiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgdmU/aWUodmUsZGUpOnZlfSksb2V9LHRyaW06ZnVuY3Rpb24ob2Upe3JldHVybiBvZS50cmltP29lLnRyaW0oKTpvZS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9LHN0cmlwQk9NOmZ1bmN0aW9uKG9lKXtyZXR1cm4gNjUyNzk9PT1vZS5jaGFyQ29kZUF0KDApJiYob2U9b2Uuc2xp''@;'; + put 'put ''Y2UoMSkpLG9lfX19LDU2MjM6VT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBRKGxlLFksVyl7bGUgaW5zdGFuY2VvZiBSZWdFeHAmJihsZT1aKGxlLFcpKSxZIGluc3RhbmNlb2YgUmVnRXhwJiYoWT1aKFksVykpO3ZhciBOPWllKGxlLFksVyk7cmV0dXJuIE4mJntzdGFydDpOWzBdLGVuZDpO''@;'; + put 'put ''WzFdLHByZTpXLnNsaWNlKDAsTlswXSksYm9keTpXLnNsaWNlKE5bMF0rbGUubGVuZ3RoLE5bMV0pLHBvc3Q6Vy5zbGljZShOWzFdK1kubGVuZ3RoKX19ZnVuY3Rpb24gWihsZSxZKXt2YXIgVz1ZLm1hdGNoKGxlKTtyZXR1cm4gVz9XWzBdOm51bGx9ZnVuY3Rpb24gaWUobGUsWSxXKXt2YXIg''@;'; + put 'put ''TixlZSxxLEosc2Usb2U9Vy5pbmRleE9mKGxlKSxjZT1XLmluZGV4T2YoWSxvZSsxKSxkZT1vZTtpZihvZT49MCYmY2U+MCl7aWYobGU9PT1ZKXJldHVybltvZSxjZV07Zm9yKE49W10scT1XLmxlbmd0aDtkZT49MCYmIXNlOylkZT09b2U/KE4ucHVzaChkZSksb2U9Vy5pbmRleE9mKGxlLGRl''@;'; + put 'put ''KzEpKToxPT1OLmxlbmd0aD9zZT1bTi5wb3AoKSxjZV06KChlZT1OLnBvcCgpKTxxJiYocT1lZSxKPWNlKSxjZT1XLmluZGV4T2YoWSxkZSsxKSksZGU9b2U8Y2UmJm9lPj0wP29lOmNlO04ubGVuZ3RoJiYoc2U9W3EsSl0pfXJldHVybiBzZX1VLmV4cG9ydHM9USxRLnJhbmdlPWllfSw5NzQy''@;'; + put 'put ''OihVLFEpPT57InVzZSBzdHJpY3QiO1EuYnl0ZUxlbmd0aD1mdW5jdGlvbihKKXt2YXIgc2U9ZWUoSiksY2U9c2VbMV07cmV0dXJuIDMqKHNlWzBdK2NlKS80LWNlfSxRLnRvQnl0ZUFycmF5PWZ1bmN0aW9uKEope3ZhciBzZSxvZSxFZSxjZT1lZShKKSxkZT1jZVswXSx2ZT1jZVsxXSxBZT1u''@;'; + put 'put ''ZXcgbGUoMyooZGUrKEVlPXZlKSkvNC1FZSksa2U9MCxTZT12ZT4wP2RlLTQ6ZGU7Zm9yKG9lPTA7b2U8U2U7b2UrPTQpc2U9aWVbSi5jaGFyQ29kZUF0KG9lKV08PDE4fGllW0ouY2hhckNvZGVBdChvZSsxKV08PDEyfGllW0ouY2hhckNvZGVBdChvZSsyKV08PDZ8aWVbSi5jaGFyQ29kZUF0''@;'; + put 'put ''KG9lKzMpXSxBZVtrZSsrXT1zZT4+MTYmMjU1LEFlW2tlKytdPXNlPj44JjI1NSxBZVtrZSsrXT0yNTUmc2U7cmV0dXJuIDI9PT12ZSYmKHNlPWllW0ouY2hhckNvZGVBdChvZSldPDwyfGllW0ouY2hhckNvZGVBdChvZSsxKV0+PjQsQWVba2UrK109MjU1JnNlKSwxPT09dmUmJihzZT1pZVtK''@;'; + put 'put ''LmNoYXJDb2RlQXQob2UpXTw8MTB8aWVbSi5jaGFyQ29kZUF0KG9lKzEpXTw8NHxpZVtKLmNoYXJDb2RlQXQob2UrMildPj4yLEFlW2tlKytdPXNlPj44JjI1NSxBZVtrZSsrXT0yNTUmc2UpLEFlfSxRLmZyb21CeXRlQXJyYXk9ZnVuY3Rpb24oSil7Zm9yKHZhciBzZSxvZT1KLmxlbmd0aCxj''@;'; + put 'put ''ZT1vZSUzLGRlPVtdLEFlPTAsa2U9b2UtY2U7QWU8a2U7QWUrPTE2MzgzKWRlLnB1c2gocShKLEFlLEFlKzE2MzgzPmtlP2tlOkFlKzE2MzgzKSk7cmV0dXJuIDE9PT1jZT9kZS5wdXNoKFpbKHNlPUpbb2UtMV0pPj4yXStaW3NlPDw0JjYzXSsiPT0iKToyPT09Y2UmJmRlLnB1c2goWlsoc2U9''@;'; + put 'put ''KEpbb2UtMl08PDgpK0pbb2UtMV0pPj4xMF0rWltzZT4+NCY2M10rWltzZTw8MiY2M10rIj0iKSxkZS5qb2luKCIiKX07Zm9yKHZhciBaPVtdLGllPVtdLGxlPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5LFk9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZX''@;'; + put 'put ''WFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLFc9MCxOPVkubGVuZ3RoO1c8TjsrK1cpWltXXT1ZW1ddLGllW1kuY2hhckNvZGVBdChXKV09VztmdW5jdGlvbiBlZShKKXt2YXIgc2U9Si5sZW5ndGg7aWYoc2UlND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBz''@;'; + put 'put ''dHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO3ZhciBvZT1KLmluZGV4T2YoIj0iKTtyZXR1cm4tMT09PW9lJiYob2U9c2UpLFtvZSxvZT09PXNlPzA6NC1vZSU0XX1mdW5jdGlvbiBxKEosc2Usb2Upe2Zvcih2YXIgZGUsdmU9W10sQWU9c2U7QWU8b2U7QWUrPTMpdmUu''@;'; + put 'put ''cHVzaChaWyhkZT0oSltBZV08PDE2JjE2NzExNjgwKSsoSltBZSsxXTw8OCY2NTI4MCkrKDI1NSZKW0FlKzJdKSk+PjE4JjYzXStaW2RlPj4xMiY2M10rWltkZT4+NiY2M10rWls2MyZkZV0pO3JldHVybiB2ZS5qb2luKCIiKX1pZVsiLSIuY2hhckNvZGVBdCgwKV09NjIsaWVbIl8iLmNoYXJD''@;'; + put 'put ''b2RlQXQoMCldPTYzfSwzNTUwOmZ1bmN0aW9uKFUsUSxaKXshZnVuY3Rpb24oaWUsbGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBZKFQsUyl7aWYoIVQpdGhyb3cgbmV3IEVycm9yKFN8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gVyhULFMpe1Quc3VwZXJfPVM7dmFyIEY9ZnVuY3Rp''@;'; + put 'put ''b24oKXt9O0YucHJvdG90eXBlPVMucHJvdG90eXBlLFQucHJvdG90eXBlPW5ldyBGLFQucHJvdG90eXBlLmNvbnN0cnVjdG9yPVR9ZnVuY3Rpb24gTihULFMsRil7aWYoTi5pc0JOKFQpKXJldHVybiBUO3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlz''@;'; + put 'put ''LnJlZD1udWxsLG51bGwhPT1UJiYoImxlIiE9PVMmJiJiZSIhPT1TfHwoRj1TLFM9MTApLHRoaXMuX2luaXQoVHx8MCxTfHwxMCxGfHwiYmUiKSl9dmFyIGVlOyJvYmplY3QiPT10eXBlb2YgaWU/aWUuZXhwb3J0cz1OOmxlLkJOPU4sTi5CTj1OLE4ud29yZFNpemU9MjY7dHJ5e2VlPSJ1bmRl''@;'; + put 'put ''ZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6Wig2NjAxKS5CdWZmZXJ9Y2F0Y2goVCl7fWZ1bmN0aW9uIHEoVCxTKXt2YXIgRj1ULmNoYXJDb2RlQXQoUyk7cmV0dXJuIEY+PTQ4JiZGPD01Nz9GLTQ4OkY+PTY1JiZGPD03MD9GLTU1''@;'; + put 'put ''OkY+PTk3JiZGPD0xMDI/Ri04Nzp2b2lkIFkoITEsIkludmFsaWQgY2hhcmFjdGVyIGluICIrVCl9ZnVuY3Rpb24gSihULFMsRil7dmFyIHllPXEoVCxGKTtyZXR1cm4gRi0xPj1TJiYoeWV8PXEoVCxGLTEpPDw0KSx5ZX1mdW5jdGlvbiBzZShULFMsRix5ZSl7Zm9yKHZhciBDZT0wLERlPTAs''@;'; + put 'put ''UGU9TWF0aC5taW4oVC5sZW5ndGgsRiksUWU9UztRZTxQZTtRZSsrKXt2YXIgJGU9VC5jaGFyQ29kZUF0KFFlKS00ODtDZSo9eWUsRGU9JGU+PTQ5PyRlLTQ5KzEwOiRlPj0xNz8kZS0xNysxMDokZSxZKCRlPj0wJiZEZTx5ZSwiSW52YWxpZCBjaGFyYWN0ZXIiKSxDZSs9RGV9cmV0dXJuIENl''@;'; + put 'put ''fWZ1bmN0aW9uIG9lKFQsUyl7VC53b3Jkcz1TLndvcmRzLFQubGVuZ3RoPVMubGVuZ3RoLFQubmVnYXRpdmU9Uy5uZWdhdGl2ZSxULnJlZD1TLnJlZH1pZihOLmlzQk49ZnVuY3Rpb24oVCl7cmV0dXJuIFQgaW5zdGFuY2VvZiBOfHxudWxsIT09VCYmIm9iamVjdCI9PXR5cGVvZiBUJiZULmNv''@;'; + put 'put ''bnN0cnVjdG9yLndvcmRTaXplPT09Ti53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShULndvcmRzKX0sTi5tYXg9ZnVuY3Rpb24oVCxTKXtyZXR1cm4gVC5jbXAoUyk+MD9UOlN9LE4ubWluPWZ1bmN0aW9uKFQsUyl7cmV0dXJuIFQuY21wKFMpPDA/VDpTfSxOLnByb3RvdHlwZS5faW5pdD1mdW5j''@;'; + put 'put ''dGlvbihULFMsRil7aWYoIm51bWJlciI9PXR5cGVvZiBUKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKFQsUyxGKTtpZigib2JqZWN0Ij09dHlwZW9mIFQpcmV0dXJuIHRoaXMuX2luaXRBcnJheShULFMsRik7ImhleCI9PT1TJiYoUz0xNiksWShTPT09KDB8UykmJlM+PTImJlM8PTM2KTt2YXIg''@;'; + put 'put ''eWU9MDsiLSI9PT0oVD1ULnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKHllKyssdGhpcy5uZWdhdGl2ZT0xKSx5ZTxULmxlbmd0aCYmKDE2PT09Uz90aGlzLl9wYXJzZUhleChULHllLEYpOih0aGlzLl9wYXJzZUJhc2UoVCxTLHllKSwibGUiPT09RiYmdGhpcy5faW5pdEFy''@;'; + put 'put ''cmF5KHRoaXMudG9BcnJheSgpLFMsRikpKX0sTi5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oVCxTLEYpe1Q8MCYmKHRoaXMubmVnYXRpdmU9MSxUPS1UKSxUPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZUXSx0aGlzLmxlbmd0aD0xKTpUPDQ1MDM1OTk2MjczNzA0OTY/''@;'; + put 'put ''KHRoaXMud29yZHM9WzY3MTA4ODYzJlQsVC82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KFkoVDw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZULFQvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PUYmJnRoaXMuX2luaXRB''@;'; + put 'put ''cnJheSh0aGlzLnRvQXJyYXkoKSxTLEYpfSxOLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKFQsUyxGKXtpZihZKCJudW1iZXIiPT10eXBlb2YgVC5sZW5ndGgpLFQubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0''@;'; + put 'put ''aC5jZWlsKFQubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHllPTA7eWU8dGhpcy5sZW5ndGg7eWUrKyl0aGlzLndvcmRzW3llXT0wO3ZhciBDZSxEZSxQZT0wO2lmKCJiZSI9PT1GKWZvcih5ZT1ULmxlbmd0aC0xLENlPTA7eWU+PTA7eWUtPTMp''@;'; + put 'put ''dGhpcy53b3Jkc1tDZV18PShEZT1UW3llXXxUW3llLTFdPDw4fFRbeWUtMl08PDE2KTw8UGUmNjcxMDg4NjMsdGhpcy53b3Jkc1tDZSsxXT1EZT4+PjI2LVBlJjY3MTA4ODYzLChQZSs9MjQpPj0yNiYmKFBlLT0yNixDZSsrKTtlbHNlIGlmKCJsZSI9PT1GKWZvcih5ZT0wLENlPTA7eWU8VC5s''@;'; + put 'put ''ZW5ndGg7eWUrPTMpdGhpcy53b3Jkc1tDZV18PShEZT1UW3llXXxUW3llKzFdPDw4fFRbeWUrMl08PDE2KTw8UGUmNjcxMDg4NjMsdGhpcy53b3Jkc1tDZSsxXT1EZT4+PjI2LVBlJjY3MTA4ODYzLChQZSs9MjQpPj0yNiYmKFBlLT0yNixDZSsrKTtyZXR1cm4gdGhpcy5fc3RyaXAoKX0sTi5w''@;'; + put 'put ''cm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKFQsUyxGKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKFQubGVuZ3RoLVMpLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHllPTA7eWU8dGhpcy5sZW5ndGg7eWUrKyl0aGlzLndvcmRzW3llXT0wO3ZhciBDZSxE''@;'; + put 'put ''ZT0wLFBlPTA7aWYoImJlIj09PUYpZm9yKHllPVQubGVuZ3RoLTE7eWU+PVM7eWUtPTIpQ2U9SihULFMseWUpPDxEZSx0aGlzLndvcmRzW1BlXXw9NjcxMDg4NjMmQ2UsRGU+PTE4PyhEZS09MTgsdGhpcy53b3Jkc1tQZSs9MV18PUNlPj4+MjYpOkRlKz04O2Vsc2UgZm9yKHllPShULmxlbmd0''@;'; + put 'put ''aC1TKSUyPT0wP1MrMTpTO3llPFQubGVuZ3RoO3llKz0yKUNlPUooVCxTLHllKTw8RGUsdGhpcy53b3Jkc1tQZV18PTY3MTA4ODYzJkNlLERlPj0xOD8oRGUtPTE4LHRoaXMud29yZHNbUGUrPTFdfD1DZT4+PjI2KTpEZSs9ODt0aGlzLl9zdHJpcCgpfSxOLnByb3RvdHlwZS5fcGFyc2VCYXNl''@;'; + put 'put ''PWZ1bmN0aW9uKFQsUyxGKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgeWU9MCxDZT0xO0NlPD02NzEwODg2MztDZSo9Uyl5ZSsrO3llLS0sQ2U9Q2UvU3wwO2Zvcih2YXIgRGU9VC5sZW5ndGgtRixQZT1EZSV5ZSxRZT1NYXRoLm1pbihEZSxEZS1QZSkrRiwkZT0wLGd0''@;'; + put 'put ''PUY7Z3Q8UWU7Z3QrPXllKSRlPXNlKFQsZ3QsZ3QreWUsUyksdGhpcy5pbXVsbihDZSksdGhpcy53b3Jkc1swXSskZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz0kZTp0aGlzLl9pYWRkbigkZSk7aWYoMCE9PVBlKXt2YXIgd3Q9MTtmb3IoJGU9c2UoVCxndCxULmxlbmd0aCxTKSxndD0wO2d0''@;'; + put 'put ''PFBlO2d0Kyspd3QqPVM7dGhpcy5pbXVsbih3dCksdGhpcy53b3Jkc1swXSskZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz0kZTp0aGlzLl9pYWRkbigkZSl9dGhpcy5fc3RyaXAoKX0sTi5wcm90b3R5cGUuY29weT1mdW5jdGlvbihUKXtULndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7''@;'; + put 'put ''Zm9yKHZhciBTPTA7Uzx0aGlzLmxlbmd0aDtTKyspVC53b3Jkc1tTXT10aGlzLndvcmRzW1NdO1QubGVuZ3RoPXRoaXMubGVuZ3RoLFQubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSxULnJlZD10aGlzLnJlZH0sTi5wcm90b3R5cGUuX21vdmU9ZnVuY3Rpb24oVCl7b2UoVCx0aGlzKX0sTi5wcm90''@;'; + put 'put ''b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgVD1uZXcgTihudWxsKTtyZXR1cm4gdGhpcy5jb3B5KFQpLFR9LE4ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oVCl7Zm9yKDt0aGlzLmxlbmd0aDxUOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LE4ucHJvdG90''@;'; + put 'put ''eXBlLl9zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LE4ucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5n''@;'; + put 'put ''dGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSwidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbC5mb3IpdHJ5e04ucHJvdG90eXBlW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIildPWNl''@;'; + put 'put ''fWNhdGNoKFQpe04ucHJvdG90eXBlLmluc3BlY3Q9Y2V9ZWxzZSBOLnByb3RvdHlwZS5pbnNwZWN0PWNlO2Z1bmN0aW9uIGNlKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9dmFyIGRlPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIs''@;'; + put 'put ''IjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLHZlPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLEFlPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3Nzcy''@;'; + put 'put ''MTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYy''@;'; + put 'put ''NjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIGtlKFQsUyxGKXtGLm5lZ2F0aXZlPVMubmVnYXRpdmVeVC5uZWdhdGl2ZTt2YXIg''@;'; + put 'put ''eWU9VC5sZW5ndGgrUy5sZW5ndGh8MDtGLmxlbmd0aD15ZSx5ZT15ZS0xfDA7dmFyIENlPTB8VC53b3Jkc1swXSxEZT0wfFMud29yZHNbMF0sUGU9Q2UqRGUsJGU9UGUvNjcxMDg4NjR8MDtGLndvcmRzWzBdPTY3MTA4ODYzJlBlO2Zvcih2YXIgZ3Q9MTtndDx5ZTtndCsrKXtmb3IodmFyIHd0''@;'; + put 'put ''PSRlPj4+MjYsdnQ9NjcxMDg4NjMmJGUsQXQ9TWF0aC5taW4oZ3QsUy5sZW5ndGgtMSksbXQ9TWF0aC5tYXgoMCxndC1ULmxlbmd0aCsxKTttdDw9QXQ7bXQrKyl3dCs9KFBlPShDZT0wfFQud29yZHNbZ3QtbXR8MF0pKihEZT0wfFMud29yZHNbbXRdKSt2dCkvNjcxMDg4NjR8MCx2dD02NzEw''@;'; + put 'put ''ODg2MyZQZTtGLndvcmRzW2d0XT0wfHZ0LCRlPTB8d3R9cmV0dXJuIDAhPT0kZT9GLndvcmRzW2d0XT0wfCRlOkYubGVuZ3RoLS0sRi5fc3RyaXAoKX1OLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihULFMpe3ZhciBGO2lmKFM9MHxTfHwxLDE2PT09KFQ9VHx8MTApfHwiaGV4Ij09PVQp''@;'; + put 'put ''e0Y9IiI7Zm9yKHZhciB5ZT0wLENlPTAsRGU9MDtEZTx0aGlzLmxlbmd0aDtEZSsrKXt2YXIgUGU9dGhpcy53b3Jkc1tEZV0sUWU9KDE2Nzc3MjE1JihQZTw8eWV8Q2UpKS50b1N0cmluZygxNik7Q2U9UGU+Pj4yNC15ZSYxNjc3NzIxNSwoeWUrPTIpPj0yNiYmKHllLT0yNixEZS0tKSxGPTAh''@;'; + put 'put ''PT1DZXx8RGUhPT10aGlzLmxlbmd0aC0xP2RlWzYtUWUubGVuZ3RoXStRZStGOlFlK0Z9Zm9yKDAhPT1DZSYmKEY9Q2UudG9TdHJpbmcoMTYpK0YpO0YubGVuZ3RoJVMhPTA7KUY9IjAiK0Y7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoRj0iLSIrRiksRn1pZihUPT09KDB8VCkmJlQ+PTIm''@;'; + put 'put ''JlQ8PTM2KXt2YXIgJGU9dmVbVF0sZ3Q9QWVbVF07Rj0iIjt2YXIgd3Q9dGhpcy5jbG9uZSgpO2Zvcih3dC5uZWdhdGl2ZT0wOyF3dC5pc1plcm8oKTspe3ZhciB2dD13dC5tb2RybihndCkudG9TdHJpbmcoVCk7Rj0od3Q9d3QuaWRpdm4oZ3QpKS5pc1plcm8oKT92dCtGOmRlWyRlLXZ0Lmxl''@;'; + put 'put ''bmd0aF0rdnQrRn1mb3IodGhpcy5pc1plcm8oKSYmKEY9IjAiK0YpO0YubGVuZ3RoJVMhPTA7KUY9IjAiK0Y7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoRj0iLSIrRiksRn1ZKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LE4ucHJvdG90eXBlLnRvTnVtYmVyPWZ1''@;'; + put 'put ''bmN0aW9uKCl7dmFyIFQ9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP1QrPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9UKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5n''@;'; + put 'put ''dGg+MiYmWSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LVQ6VH0sTi5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYsMil9LGVlJiYoTi5wcm90b3R5cGUudG9CdWZmZXI9''@;'; + put 'put ''ZnVuY3Rpb24oVCxTKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShlZSxULFMpfSksTi5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihULFMpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LFQsUyl9LE4ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKFQsUyxGKXt0aGlzLl9z''@;'; + put 'put ''dHJpcCgpO3ZhciB5ZT10aGlzLmJ5dGVMZW5ndGgoKSxDZT1GfHxNYXRoLm1heCgxLHllKTtZKHllPD1DZSwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLFkoQ2U+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIik7dmFyIFBlLFFlLERlPShRZT1DZSwoUGU9''@;'; + put 'put ''VCkuYWxsb2NVbnNhZmU/UGUuYWxsb2NVbnNhZmUoUWUpOm5ldyBQZShRZSkpO3JldHVybiB0aGlzWyJfdG9BcnJheUxpa2UiKygibGUiPT09Uz8iTEUiOiJCRSIpXShEZSx5ZSksRGV9LE4ucHJvdG90eXBlLl90b0FycmF5TGlrZUxFPWZ1bmN0aW9uKFQsUyl7Zm9yKHZhciBGPTAseWU9MCxD''@;'; + put 'put ''ZT0wLERlPTA7Q2U8dGhpcy5sZW5ndGg7Q2UrKyl7dmFyIFBlPXRoaXMud29yZHNbQ2VdPDxEZXx5ZTtUW0YrK109MjU1JlBlLEY8VC5sZW5ndGgmJihUW0YrK109UGU+PjgmMjU1KSxGPFQubGVuZ3RoJiYoVFtGKytdPVBlPj4xNiYyNTUpLDY9PT1EZT8oRjxULmxlbmd0aCYmKFRbRisrXT1Q''@;'; + put 'put ''ZT4+MjQmMjU1KSx5ZT0wLERlPTApOih5ZT1QZT4+PjI0LERlKz0yKX1pZihGPFQubGVuZ3RoKWZvcihUW0YrK109eWU7RjxULmxlbmd0aDspVFtGKytdPTB9LE4ucHJvdG90eXBlLl90b0FycmF5TGlrZUJFPWZ1bmN0aW9uKFQsUyl7Zm9yKHZhciBGPVQubGVuZ3RoLTEseWU9MCxDZT0wLERl''@;'; + put 'put ''PTA7Q2U8dGhpcy5sZW5ndGg7Q2UrKyl7dmFyIFBlPXRoaXMud29yZHNbQ2VdPDxEZXx5ZTtUW0YtLV09MjU1JlBlLEY+PTAmJihUW0YtLV09UGU+PjgmMjU1KSxGPj0wJiYoVFtGLS1dPVBlPj4xNiYyNTUpLDY9PT1EZT8oRj49MCYmKFRbRi0tXT1QZT4+MjQmMjU1KSx5ZT0wLERlPTApOih5''@;'; + put 'put ''ZT1QZT4+PjI0LERlKz0yKX1pZihGPj0wKWZvcihUW0YtLV09eWU7Rj49MDspVFtGLS1dPTB9LE4ucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihUKXtyZXR1cm4gMzItTWF0aC5jbHozMihUKX06ZnVuY3Rpb24oVCl7dmFyIFM9VCxGPTA7cmV0dXJuIFM+PTQwOTYm''@;'; + put 'put ''JihGKz0xMyxTPj4+PTEzKSxTPj02NCYmKEYrPTcsUz4+Pj03KSxTPj04JiYoRis9NCxTPj4+PTQpLFM+PTImJihGKz0yLFM+Pj49MiksRitTfSxOLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oVCl7aWYoMD09PVQpcmV0dXJuIDI2O3ZhciBTPVQsRj0wO3JldHVybiAwPT0oODE5MSZT''@;'; + put 'put ''KSYmKEYrPTEzLFM+Pj49MTMpLDA9PSgxMjcmUykmJihGKz03LFM+Pj49NyksMD09KDE1JlMpJiYoRis9NCxTPj4+PTQpLDA9PSgzJlMpJiYoRis9MixTPj4+PTIpLDA9PSgxJlMpJiZGKyssRn0sTi5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIFM9dGhpcy5fY291bnRCaXRz''@;'; + put 'put ''KHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrU30sTi5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgVD0wLFM9MDtTPHRoaXMubGVuZ3RoO1MrKyl7dmFyIEY9dGhpcy5femVy''@;'; + put 'put ''b0JpdHModGhpcy53b3Jkc1tTXSk7aWYoVCs9RiwyNiE9PUYpYnJlYWt9cmV0dXJuIFR9LE4ucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LE4ucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihUKXtyZXR1cm4gMCE9''@;'; + put 'put ''PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihUKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLnRlc3RuKFQtMSk/dGhpcy5ub3RuKFQpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90''@;'; + put 'put ''eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxOLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sTi5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2''@;'; + put 'put ''ZV49MSksdGhpc30sTi5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihUKXtmb3IoO3RoaXMubGVuZ3RoPFQubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciBTPTA7UzxULmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1NdfFQud29yZHNbU107cmV0''@;'; + put 'put ''dXJuIHRoaXMuX3N0cmlwKCl9LE4ucHJvdG90eXBlLmlvcj1mdW5jdGlvbihUKXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXxULm5lZ2F0aXZlKSksdGhpcy5pdW9yKFQpfSxOLnByb3RvdHlwZS5vcj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5sZW5ndGg+VC5sZW5ndGg/dGhpcy5jbG9u''@;'; + put 'put ''ZSgpLmlvcihUKTpULmNsb25lKCkuaW9yKHRoaXMpfSxOLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMubGVuZ3RoPlQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKFQpOlQuY2xvbmUoKS5pdW9yKHRoaXMpfSxOLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihUKXt2YXIg''@;'; + put 'put ''UztTPXRoaXMubGVuZ3RoPlQubGVuZ3RoP1Q6dGhpcztmb3IodmFyIEY9MDtGPFMubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPXRoaXMud29yZHNbRl0mVC53b3Jkc1tGXTtyZXR1cm4gdGhpcy5sZW5ndGg9Uy5sZW5ndGgsdGhpcy5fc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFuZD1mdW5jdGlv''@;'; + put 'put ''bihUKXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXxULm5lZ2F0aXZlKSksdGhpcy5pdWFuZChUKX0sTi5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmxlbmd0aD5ULmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChUKTpULmNsb25lKCkuaWFuZCh0aGlzKX0sTi5wcm90''@;'; + put 'put ''b3R5cGUudWFuZD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5sZW5ndGg+VC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKFQpOlQuY2xvbmUoKS5pdWFuZCh0aGlzKX0sTi5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oVCl7dmFyIFMsRjt0aGlzLmxlbmd0aD5ULmxlbmd0aD8oUz10aGlzLEY9''@;'; + put 'put ''VCk6KFM9VCxGPXRoaXMpO2Zvcih2YXIgeWU9MDt5ZTxGLmxlbmd0aDt5ZSsrKXRoaXMud29yZHNbeWVdPVMud29yZHNbeWVdXkYud29yZHNbeWVdO2lmKHRoaXMhPT1TKWZvcig7eWU8Uy5sZW5ndGg7eWUrKyl0aGlzLndvcmRzW3llXT1TLndvcmRzW3llXTtyZXR1cm4gdGhpcy5sZW5ndGg9''@;'; + put 'put ''Uy5sZW5ndGgsdGhpcy5fc3RyaXAoKX0sTi5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihUKXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXxULm5lZ2F0aXZlKSksdGhpcy5pdXhvcihUKX0sTi5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmxlbmd0aD5ULmxlbmd0aD90''@;'; + put 'put ''aGlzLmNsb25lKCkuaXhvcihUKTpULmNsb25lKCkuaXhvcih0aGlzKX0sTi5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5sZW5ndGg+VC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKFQpOlQuY2xvbmUoKS5pdXhvcih0aGlzKX0sTi5wcm90b3R5cGUuaW5vdG49ZnVu''@;'; + put 'put ''Y3Rpb24oVCl7WSgibnVtYmVyIj09dHlwZW9mIFQmJlQ+PTApO3ZhciBTPTB8TWF0aC5jZWlsKFQvMjYpLEY9VCUyNjt0aGlzLl9leHBhbmQoUyksRj4wJiZTLS07Zm9yKHZhciB5ZT0wO3llPFM7eWUrKyl0aGlzLndvcmRzW3llXT02NzEwODg2MyZ+dGhpcy53b3Jkc1t5ZV07cmV0dXJuIEY+''@;'; + put 'put ''MCYmKHRoaXMud29yZHNbeWVdPX50aGlzLndvcmRzW3llXSY2NzEwODg2Mz4+MjYtRiksdGhpcy5fc3RyaXAoKX0sTi5wcm90b3R5cGUubm90bj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKFQpfSxOLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKFQsUyl7WSgibnVtYmVy''@;'; + put 'put ''Ij09dHlwZW9mIFQmJlQ+PTApO3ZhciBGPVQvMjZ8MCx5ZT1UJTI2O3JldHVybiB0aGlzLl9leHBhbmQoRisxKSx0aGlzLndvcmRzW0ZdPVM/dGhpcy53b3Jkc1tGXXwxPDx5ZTp0aGlzLndvcmRzW0ZdJn4oMTw8eWUpLHRoaXMuX3N0cmlwKCl9LE4ucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24o''@;'; + put 'put ''VCl7dmFyIFMsRix5ZTtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PVQubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxTPXRoaXMuaXN1YihUKSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1ULm5lZ2F0aXZlKXJldHVy''@;'; + put 'put ''biBULm5lZ2F0aXZlPTAsUz10aGlzLmlzdWIoVCksVC5uZWdhdGl2ZT0xLFMuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+VC5sZW5ndGg/KEY9dGhpcyx5ZT1UKTooRj1ULHllPXRoaXMpO2Zvcih2YXIgQ2U9MCxEZT0wO0RlPHllLmxlbmd0aDtEZSsrKXRoaXMud29yZHNbRGVdPTY3MTA4ODYz''@;'; + put 'put ''JihTPSgwfEYud29yZHNbRGVdKSsoMHx5ZS53b3Jkc1tEZV0pK0NlKSxDZT1TPj4+MjY7Zm9yKDswIT09Q2UmJkRlPEYubGVuZ3RoO0RlKyspdGhpcy53b3Jkc1tEZV09NjcxMDg4NjMmKFM9KDB8Ri53b3Jkc1tEZV0pK0NlKSxDZT1TPj4+MjY7aWYodGhpcy5sZW5ndGg9Ri5sZW5ndGgsMCE9''@;'; + put 'put ''PUNlKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPUNlLHRoaXMubGVuZ3RoKys7ZWxzZSBpZihGIT09dGhpcylmb3IoO0RlPEYubGVuZ3RoO0RlKyspdGhpcy53b3Jkc1tEZV09Ri53b3Jkc1tEZV07cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLmFkZD1mdW5jdGlvbihUKXt2YXIgUztyZXR1cm4g''@;'; + put 'put ''MCE9PVQubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhULm5lZ2F0aXZlPTAsUz10aGlzLnN1YihUKSxULm5lZ2F0aXZlXj0xLFMpOjA9PT1ULm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLFM9VC5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLFMpOnRo''@;'; + put 'put ''aXMubGVuZ3RoPlQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKFQpOlQuY2xvbmUoKS5pYWRkKHRoaXMpfSxOLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKFQpe2lmKDAhPT1ULm5lZ2F0aXZlKXtULm5lZ2F0aXZlPTA7dmFyIFM9dGhpcy5pYWRkKFQpO3JldHVybiBULm5lZ2F0aXZlPTEsUy5f''@;'; + put 'put ''bm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChUKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgRix5ZSxDZT10aGlzLmNtcChUKTtpZigwPT09Q2UpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxl''@;'; + put 'put ''bmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO0NlPjA/KEY9dGhpcyx5ZT1UKTooRj1ULHllPXRoaXMpO2Zvcih2YXIgRGU9MCxQZT0wO1BlPHllLmxlbmd0aDtQZSsrKURlPShTPSgwfEYud29yZHNbUGVdKS0oMHx5ZS53b3Jkc1tQZV0pK0RlKT4+MjYsdGhpcy53b3Jkc1tQZV09NjcxMDg4''@;'; + put 'put ''NjMmUztmb3IoOzAhPT1EZSYmUGU8Ri5sZW5ndGg7UGUrKylEZT0oUz0oMHxGLndvcmRzW1BlXSkrRGUpPj4yNix0aGlzLndvcmRzW1BlXT02NzEwODg2MyZTO2lmKDA9PT1EZSYmUGU8Ri5sZW5ndGgmJkYhPT10aGlzKWZvcig7UGU8Ri5sZW5ndGg7UGUrKyl0aGlzLndvcmRzW1BlXT1GLndv''@;'; + put 'put ''cmRzW1BlXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsUGUpLEYhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLl9zdHJpcCgpfSxOLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKFQpfTt2YXIgU2U9ZnVuY3Rp''@;'; + put 'put ''b24oVCxTLEYpe3ZhciB5ZSxDZSxEZSxQZT1ULndvcmRzLFFlPVMud29yZHMsJGU9Ri53b3JkcyxndD0wLHd0PTB8UGVbMF0sdnQ9ODE5MSZ3dCxBdD13dD4+PjEzLG10PTB8UGVbMV0saHQ9ODE5MSZtdCxCdD1tdD4+PjEzLG9uPTB8UGVbMl0sX3Q9ODE5MSZvbix0dD1vbj4+PjEzLGV0PTB8''@;'; + put 'put ''UGVbM10sYXQ9ODE5MSZldCxMdD1ldD4+PjEzLEN0PTB8UGVbNF0sZnQ9ODE5MSZDdCxIdD1DdD4+PjEzLEdlPTB8UGVbNV0sVWU9ODE5MSZHZSx5dD1HZT4+PjEzLGp0PTB8UGVbNl0sUXQ9ODE5MSZqdCxnbj1qdD4+PjEzLGRuPTB8UGVbN10seW49ODE5MSZkbixsbj1kbj4+PjEzLE5uPTB8''@;'; + put 'put ''UGVbOF0sYm49ODE5MSZObixlcj1Obj4+PjEzLHNyPTB8UGVbOV0sWG49ODE5MSZzcixGcj1zcj4+PjEzLHhyPTB8UWVbMF0scXQ9ODE5MSZ4cixwcj14cj4+PjEzLG5yPTB8UWVbMV0sQW49ODE5MSZucixxbj1ucj4+PjEzLFd0PTB8UWVbMl0scG49ODE5MSZXdCxLbj1XdD4+PjEzLE50PTB8''@;'; + put 'put ''UWVbM10sc249ODE5MSZOdCxVbj1OdD4+PjEzLHduPTB8UWVbNF0sdG49ODE5MSZ3bix6bj13bj4+PjEzLFRyPTB8UWVbNV0sQm49ODE5MSZUcixrcj1Ucj4+PjEzLG1uPTB8UWVbNl0sdW49ODE5MSZtbixjbj1tbj4+PjEzLF9uPTB8UWVbN10sR3Q9ODE5MSZfbixrbj1fbj4+PjEzLFZuPTB8''@;'; + put 'put ''UWVbOF0sZW49ODE5MSZWbixJbj1Wbj4+PjEzLEpuPTB8UWVbOV0sb3I9ODE5MSZKbixncj1Kbj4+PjEzO0YubmVnYXRpdmU9VC5uZWdhdGl2ZV5TLm5lZ2F0aXZlLEYubGVuZ3RoPTE5O3ZhciBLcj0oZ3QrKHllPU1hdGguaW11bCh2dCxxdCkpfDApKygoODE5MSYoQ2U9KENlPU1hdGguaW11''@;'; + put 'put ''bCh2dCxwcikpK01hdGguaW11bChBdCxxdCl8MCkpPDwxMyl8MDtndD0oKERlPU1hdGguaW11bChBdCxwcikpKyhDZT4+PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKGh0LHF0KSxDZT0oQ2U9TWF0aC5pbXVsKGh0LHByKSkrTWF0aC5pbXVsKEJ0LHF0KXww''@;'; + put 'put ''LERlPU1hdGguaW11bChCdCxwcik7dmFyIFZyPShndCsoeWU9eWUrTWF0aC5pbXVsKHZ0LEFuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwodnQscW4pfDApK01hdGguaW11bChBdCxBbil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bChBdCxxbil8MCkrKENlPj4+''@;'; + put 'put ''MTMpfDApKyhWcj4+PjI2KXwwLFZyJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoX3QscXQpLENlPShDZT1NYXRoLmltdWwoX3QscHIpKStNYXRoLmltdWwodHQscXQpfDAsRGU9TWF0aC5pbXVsKHR0LHByKSx5ZT15ZStNYXRoLmltdWwoaHQsQW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChodCxx''@;'; + put 'put ''bil8MCkrTWF0aC5pbXVsKEJ0LEFuKXwwLERlPURlK01hdGguaW11bChCdCxxbil8MDt2YXIgaWk9KGd0Kyh5ZT15ZStNYXRoLmltdWwodnQscG4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bCh2dCxLbil8MCkrTWF0aC5pbXVsKEF0LHBuKXwwKSk8PDEzKXwwO2d0PSgoRGU9''@;'; + put 'put ''RGUrTWF0aC5pbXVsKEF0LEtuKXwwKSsoQ2U+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLHllPU1hdGguaW11bChhdCxxdCksQ2U9KENlPU1hdGguaW11bChhdCxwcikpK01hdGguaW11bChMdCxxdCl8MCxEZT1NYXRoLmltdWwoTHQscHIpLHllPXllK01hdGguaW11bChfdCxB''@;'; + put 'put ''bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKF90LHFuKXwwKStNYXRoLmltdWwodHQsQW4pfDAsRGU9RGUrTWF0aC5pbXVsKHR0LHFuKXwwLHllPXllK01hdGguaW11bChodCxwbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGh0LEtuKXwwKStNYXRoLmltdWwoQnQscG4pfDAsRGU9RGUrTWF0aC5p''@;'; + put 'put ''bXVsKEJ0LEtuKXwwO3ZhciBScj0oZ3QrKHllPXllK01hdGguaW11bCh2dCxzbil8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKHZ0LFVuKXwwKStNYXRoLmltdWwoQXQsc24pfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwoQXQsVW4pfDApKyhDZT4+PjEzKXwwKSso''@;'; + put 'put ''UnI+Pj4yNil8MCxSciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKGZ0LHF0KSxDZT0oQ2U9TWF0aC5pbXVsKGZ0LHByKSkrTWF0aC5pbXVsKEh0LHF0KXwwLERlPU1hdGguaW11bChIdCxwcikseWU9eWUrTWF0aC5pbXVsKGF0LEFuKXwwLENlPShDZT1DZStNYXRoLmltdWwoYXQscW4pfDApK01h''@;'; + put 'put ''dGguaW11bChMdCxBbil8MCxEZT1EZStNYXRoLmltdWwoTHQscW4pfDAseWU9eWUrTWF0aC5pbXVsKF90LHBuKXwwLENlPShDZT1DZStNYXRoLmltdWwoX3QsS24pfDApK01hdGguaW11bCh0dCxwbil8MCxEZT1EZStNYXRoLmltdWwodHQsS24pfDAseWU9eWUrTWF0aC5pbXVsKGh0LHNuKXww''@;'; + put 'put ''LENlPShDZT1DZStNYXRoLmltdWwoaHQsVW4pfDApK01hdGguaW11bChCdCxzbil8MCxEZT1EZStNYXRoLmltdWwoQnQsVW4pfDA7dmFyIGxpPShndCsoeWU9eWUrTWF0aC5pbXVsKHZ0LHRuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwodnQsem4pfDApK01hdGguaW11bChB''@;'; + put 'put ''dCx0bil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bChBdCx6bil8MCkrKENlPj4+MTMpfDApKyhsaT4+PjI2KXwwLGxpJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoVWUscXQpLENlPShDZT1NYXRoLmltdWwoVWUscHIpKStNYXRoLmltdWwoeXQscXQpfDAsRGU9TWF0aC5pbXVsKHl0''@;'; + put 'put ''LHByKSx5ZT15ZStNYXRoLmltdWwoZnQsQW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChmdCxxbil8MCkrTWF0aC5pbXVsKEh0LEFuKXwwLERlPURlK01hdGguaW11bChIdCxxbil8MCx5ZT15ZStNYXRoLmltdWwoYXQscG4pfDAsQ2U9KENlPUNlK01hdGguaW11bChhdCxLbil8MCkrTWF0aC5p''@;'; + put 'put ''bXVsKEx0LHBuKXwwLERlPURlK01hdGguaW11bChMdCxLbil8MCx5ZT15ZStNYXRoLmltdWwoX3Qsc24pfDAsQ2U9KENlPUNlK01hdGguaW11bChfdCxVbil8MCkrTWF0aC5pbXVsKHR0LHNuKXwwLERlPURlK01hdGguaW11bCh0dCxVbil8MCx5ZT15ZStNYXRoLmltdWwoaHQsdG4pfDAsQ2U9''@;'; + put 'put ''KENlPUNlK01hdGguaW11bChodCx6bil8MCkrTWF0aC5pbXVsKEJ0LHRuKXwwLERlPURlK01hdGguaW11bChCdCx6bil8MDt2YXIgTWk9KGd0Kyh5ZT15ZStNYXRoLmltdWwodnQsQm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bCh2dCxrcil8MCkrTWF0aC5pbXVsKEF0LEJu''@;'; + put 'put ''KXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKEF0LGtyKXwwKSsoQ2U+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLHllPU1hdGguaW11bChRdCxxdCksQ2U9KENlPU1hdGguaW11bChRdCxwcikpK01hdGguaW11bChnbixxdCl8MCxEZT1NYXRoLmltdWwoZ24scHIp''@;'; + put 'put ''LHllPXllK01hdGguaW11bChVZSxBbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKFVlLHFuKXwwKStNYXRoLmltdWwoeXQsQW4pfDAsRGU9RGUrTWF0aC5pbXVsKHl0LHFuKXwwLHllPXllK01hdGguaW11bChmdCxwbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGZ0LEtuKXwwKStNYXRoLmltdWwo''@;'; + put 'put ''SHQscG4pfDAsRGU9RGUrTWF0aC5pbXVsKEh0LEtuKXwwLHllPXllK01hdGguaW11bChhdCxzbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGF0LFVuKXwwKStNYXRoLmltdWwoTHQsc24pfDAsRGU9RGUrTWF0aC5pbXVsKEx0LFVuKXwwLHllPXllK01hdGguaW11bChfdCx0bil8MCxDZT0oQ2U9''@;'; + put 'put ''Q2UrTWF0aC5pbXVsKF90LHpuKXwwKStNYXRoLmltdWwodHQsdG4pfDAsRGU9RGUrTWF0aC5pbXVsKHR0LHpuKXwwLHllPXllK01hdGguaW11bChodCxCbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGh0LGtyKXwwKStNYXRoLmltdWwoQnQsQm4pfDAsRGU9RGUrTWF0aC5pbXVsKEJ0LGtyKXww''@;'; + put 'put ''O3ZhciBvMD0oZ3QrKHllPXllK01hdGguaW11bCh2dCx1bil8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKHZ0LGNuKXwwKStNYXRoLmltdWwoQXQsdW4pfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwoQXQsY24pfDApKyhDZT4+PjEzKXwwKSsobzA+Pj4yNil8MCxv''@;'; + put 'put ''MCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKHluLHF0KSxDZT0oQ2U9TWF0aC5pbXVsKHluLHByKSkrTWF0aC5pbXVsKGxuLHF0KXwwLERlPU1hdGguaW11bChsbixwcikseWU9eWUrTWF0aC5pbXVsKFF0LEFuKXwwLENlPShDZT1DZStNYXRoLmltdWwoUXQscW4pfDApK01hdGguaW11bChnbixB''@;'; + put 'put ''bil8MCxEZT1EZStNYXRoLmltdWwoZ24scW4pfDAseWU9eWUrTWF0aC5pbXVsKFVlLHBuKXwwLENlPShDZT1DZStNYXRoLmltdWwoVWUsS24pfDApK01hdGguaW11bCh5dCxwbil8MCxEZT1EZStNYXRoLmltdWwoeXQsS24pfDAseWU9eWUrTWF0aC5pbXVsKGZ0LHNuKXwwLENlPShDZT1DZStN''@;'; + put 'put ''YXRoLmltdWwoZnQsVW4pfDApK01hdGguaW11bChIdCxzbil8MCxEZT1EZStNYXRoLmltdWwoSHQsVW4pfDAseWU9eWUrTWF0aC5pbXVsKGF0LHRuKXwwLENlPShDZT1DZStNYXRoLmltdWwoYXQsem4pfDApK01hdGguaW11bChMdCx0bil8MCxEZT1EZStNYXRoLmltdWwoTHQsem4pfDAseWU9''@;'; + put 'put ''eWUrTWF0aC5pbXVsKF90LEJuKXwwLENlPShDZT1DZStNYXRoLmltdWwoX3Qsa3IpfDApK01hdGguaW11bCh0dCxCbil8MCxEZT1EZStNYXRoLmltdWwodHQsa3IpfDAseWU9eWUrTWF0aC5pbXVsKGh0LHVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoaHQsY24pfDApK01hdGguaW11bChCdCx1''@;'; + put 'put ''bil8MCxEZT1EZStNYXRoLmltdWwoQnQsY24pfDA7dmFyIG4wPShndCsoeWU9eWUrTWF0aC5pbXVsKHZ0LEd0KXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwodnQsa24pfDApK01hdGguaW11bChBdCxHdCl8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bChBdCxrbil8''@;'; + put 'put ''MCkrKENlPj4+MTMpfDApKyhuMD4+PjI2KXwwLG4wJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoYm4scXQpLENlPShDZT1NYXRoLmltdWwoYm4scHIpKStNYXRoLmltdWwoZXIscXQpfDAsRGU9TWF0aC5pbXVsKGVyLHByKSx5ZT15ZStNYXRoLmltdWwoeW4sQW4pfDAsQ2U9KENlPUNlK01hdGgu''@;'; + put 'put ''aW11bCh5bixxbil8MCkrTWF0aC5pbXVsKGxuLEFuKXwwLERlPURlK01hdGguaW11bChsbixxbil8MCx5ZT15ZStNYXRoLmltdWwoUXQscG4pfDAsQ2U9KENlPUNlK01hdGguaW11bChRdCxLbil8MCkrTWF0aC5pbXVsKGduLHBuKXwwLERlPURlK01hdGguaW11bChnbixLbil8MCx5ZT15ZStN''@;'; + put 'put ''YXRoLmltdWwoVWUsc24pfDAsQ2U9KENlPUNlK01hdGguaW11bChVZSxVbil8MCkrTWF0aC5pbXVsKHl0LHNuKXwwLERlPURlK01hdGguaW11bCh5dCxVbil8MCx5ZT15ZStNYXRoLmltdWwoZnQsdG4pfDAsQ2U9KENlPUNlK01hdGguaW11bChmdCx6bil8MCkrTWF0aC5pbXVsKEh0LHRuKXww''@;'; + put 'put ''LERlPURlK01hdGguaW11bChIdCx6bil8MCx5ZT15ZStNYXRoLmltdWwoYXQsQm4pfDAsQ2U9KENlPUNlK01hdGguaW11bChhdCxrcil8MCkrTWF0aC5pbXVsKEx0LEJuKXwwLERlPURlK01hdGguaW11bChMdCxrcil8MCx5ZT15ZStNYXRoLmltdWwoX3QsdW4pfDAsQ2U9KENlPUNlK01hdGgu''@;'; + put 'put ''aW11bChfdCxjbil8MCkrTWF0aC5pbXVsKHR0LHVuKXwwLERlPURlK01hdGguaW11bCh0dCxjbil8MCx5ZT15ZStNYXRoLmltdWwoaHQsR3QpfDAsQ2U9KENlPUNlK01hdGguaW11bChodCxrbil8MCkrTWF0aC5pbXVsKEJ0LEd0KXwwLERlPURlK01hdGguaW11bChCdCxrbil8MDt2YXIgZDA9''@;'; + put 'put ''KGd0Kyh5ZT15ZStNYXRoLmltdWwodnQsZW4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bCh2dCxJbil8MCkrTWF0aC5pbXVsKEF0LGVuKXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKEF0LEluKXwwKSsoQ2U+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4''@;'; + put 'put ''ODYzLHllPU1hdGguaW11bChYbixxdCksQ2U9KENlPU1hdGguaW11bChYbixwcikpK01hdGguaW11bChGcixxdCl8MCxEZT1NYXRoLmltdWwoRnIscHIpLHllPXllK01hdGguaW11bChibixBbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGJuLHFuKXwwKStNYXRoLmltdWwoZXIsQW4pfDAsRGU9''@;'; + put 'put ''RGUrTWF0aC5pbXVsKGVyLHFuKXwwLHllPXllK01hdGguaW11bCh5bixwbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHluLEtuKXwwKStNYXRoLmltdWwobG4scG4pfDAsRGU9RGUrTWF0aC5pbXVsKGxuLEtuKXwwLHllPXllK01hdGguaW11bChRdCxzbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVs''@;'; + put 'put ''KFF0LFVuKXwwKStNYXRoLmltdWwoZ24sc24pfDAsRGU9RGUrTWF0aC5pbXVsKGduLFVuKXwwLHllPXllK01hdGguaW11bChVZSx0bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKFVlLHpuKXwwKStNYXRoLmltdWwoeXQsdG4pfDAsRGU9RGUrTWF0aC5pbXVsKHl0LHpuKXwwLHllPXllK01hdGgu''@;'; + put 'put ''aW11bChmdCxCbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGZ0LGtyKXwwKStNYXRoLmltdWwoSHQsQm4pfDAsRGU9RGUrTWF0aC5pbXVsKEh0LGtyKXwwLHllPXllK01hdGguaW11bChhdCx1bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGF0LGNuKXwwKStNYXRoLmltdWwoTHQsdW4pfDAsRGU9''@;'; + put 'put ''RGUrTWF0aC5pbXVsKEx0LGNuKXwwLHllPXllK01hdGguaW11bChfdCxHdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKF90LGtuKXwwKStNYXRoLmltdWwodHQsR3QpfDAsRGU9RGUrTWF0aC5pbXVsKHR0LGtuKXwwLHllPXllK01hdGguaW11bChodCxlbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVs''@;'; + put 'put ''KGh0LEluKXwwKStNYXRoLmltdWwoQnQsZW4pfDAsRGU9RGUrTWF0aC5pbXVsKEJ0LEluKXwwO3ZhciBtMD0oZ3QrKHllPXllK01hdGguaW11bCh2dCxvcil8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKHZ0LGdyKXwwKStNYXRoLmltdWwoQXQsb3IpfDApKTw8MTMpfDA7Z3Q9''@;'; + put 'put ''KChEZT1EZStNYXRoLmltdWwoQXQsZ3IpfDApKyhDZT4+PjEzKXwwKSsobTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKFhuLEFuKSxDZT0oQ2U9TWF0aC5pbXVsKFhuLHFuKSkrTWF0aC5pbXVsKEZyLEFuKXwwLERlPU1hdGguaW11bChGcixxbikseWU9eWUrTWF0aC5pbXVs''@;'; + put 'put ''KGJuLHBuKXwwLENlPShDZT1DZStNYXRoLmltdWwoYm4sS24pfDApK01hdGguaW11bChlcixwbil8MCxEZT1EZStNYXRoLmltdWwoZXIsS24pfDAseWU9eWUrTWF0aC5pbXVsKHluLHNuKXwwLENlPShDZT1DZStNYXRoLmltdWwoeW4sVW4pfDApK01hdGguaW11bChsbixzbil8MCxEZT1EZStN''@;'; + put 'put ''YXRoLmltdWwobG4sVW4pfDAseWU9eWUrTWF0aC5pbXVsKFF0LHRuKXwwLENlPShDZT1DZStNYXRoLmltdWwoUXQsem4pfDApK01hdGguaW11bChnbix0bil8MCxEZT1EZStNYXRoLmltdWwoZ24sem4pfDAseWU9eWUrTWF0aC5pbXVsKFVlLEJuKXwwLENlPShDZT1DZStNYXRoLmltdWwoVWUs''@;'; + put 'put ''a3IpfDApK01hdGguaW11bCh5dCxCbil8MCxEZT1EZStNYXRoLmltdWwoeXQsa3IpfDAseWU9eWUrTWF0aC5pbXVsKGZ0LHVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoZnQsY24pfDApK01hdGguaW11bChIdCx1bil8MCxEZT1EZStNYXRoLmltdWwoSHQsY24pfDAseWU9eWUrTWF0aC5pbXVs''@;'; + put 'put ''KGF0LEd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoYXQsa24pfDApK01hdGguaW11bChMdCxHdCl8MCxEZT1EZStNYXRoLmltdWwoTHQsa24pfDAseWU9eWUrTWF0aC5pbXVsKF90LGVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoX3QsSW4pfDApK01hdGguaW11bCh0dCxlbil8MCxEZT1EZStN''@;'; + put 'put ''YXRoLmltdWwodHQsSW4pfDA7dmFyIEcwPShndCsoeWU9eWUrTWF0aC5pbXVsKGh0LG9yKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoaHQsZ3IpfDApK01hdGguaW11bChCdCxvcil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bChCdCxncil8MCkrKENlPj4+MTMp''@;'; + put 'put ''fDApKyhHMD4+PjI2KXwwLEcwJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoWG4scG4pLENlPShDZT1NYXRoLmltdWwoWG4sS24pKStNYXRoLmltdWwoRnIscG4pfDAsRGU9TWF0aC5pbXVsKEZyLEtuKSx5ZT15ZStNYXRoLmltdWwoYm4sc24pfDAsQ2U9KENlPUNlK01hdGguaW11bChibixVbil8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKGVyLHNuKXwwLERlPURlK01hdGguaW11bChlcixVbil8MCx5ZT15ZStNYXRoLmltdWwoeW4sdG4pfDAsQ2U9KENlPUNlK01hdGguaW11bCh5bix6bil8MCkrTWF0aC5pbXVsKGxuLHRuKXwwLERlPURlK01hdGguaW11bChsbix6bil8MCx5ZT15ZStNYXRoLmltdWwoUXQs''@;'; + put 'put ''Qm4pfDAsQ2U9KENlPUNlK01hdGguaW11bChRdCxrcil8MCkrTWF0aC5pbXVsKGduLEJuKXwwLERlPURlK01hdGguaW11bChnbixrcil8MCx5ZT15ZStNYXRoLmltdWwoVWUsdW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChVZSxjbil8MCkrTWF0aC5pbXVsKHl0LHVuKXwwLERlPURlK01hdGgu''@;'; + put 'put ''aW11bCh5dCxjbil8MCx5ZT15ZStNYXRoLmltdWwoZnQsR3QpfDAsQ2U9KENlPUNlK01hdGguaW11bChmdCxrbil8MCkrTWF0aC5pbXVsKEh0LEd0KXwwLERlPURlK01hdGguaW11bChIdCxrbil8MCx5ZT15ZStNYXRoLmltdWwoYXQsZW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChhdCxJbil8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKEx0LGVuKXwwLERlPURlK01hdGguaW11bChMdCxJbil8MDt2YXIgRGk9KGd0Kyh5ZT15ZStNYXRoLmltdWwoX3Qsb3IpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChfdCxncil8MCkrTWF0aC5pbXVsKHR0LG9yKXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUr''@;'; + put 'put ''TWF0aC5pbXVsKHR0LGdyKXwwKSsoQ2U+Pj4xMyl8MCkrKERpPj4+MjYpfDAsRGkmPTY3MTA4ODYzLHllPU1hdGguaW11bChYbixzbiksQ2U9KENlPU1hdGguaW11bChYbixVbikpK01hdGguaW11bChGcixzbil8MCxEZT1NYXRoLmltdWwoRnIsVW4pLHllPXllK01hdGguaW11bChibix0bil8''@;'; + put 'put ''MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGJuLHpuKXwwKStNYXRoLmltdWwoZXIsdG4pfDAsRGU9RGUrTWF0aC5pbXVsKGVyLHpuKXwwLHllPXllK01hdGguaW11bCh5bixCbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHluLGtyKXwwKStNYXRoLmltdWwobG4sQm4pfDAsRGU9RGUrTWF0aC5pbXVs''@;'; + put 'put ''KGxuLGtyKXwwLHllPXllK01hdGguaW11bChRdCx1bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKFF0LGNuKXwwKStNYXRoLmltdWwoZ24sdW4pfDAsRGU9RGUrTWF0aC5pbXVsKGduLGNuKXwwLHllPXllK01hdGguaW11bChVZSxHdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKFVlLGtuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoeXQsR3QpfDAsRGU9RGUrTWF0aC5pbXVsKHl0LGtuKXwwLHllPXllK01hdGguaW11bChmdCxlbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGZ0LEluKXwwKStNYXRoLmltdWwoSHQsZW4pfDAsRGU9RGUrTWF0aC5pbXVsKEh0LEluKXwwO3ZhciBXMD0oZ3QrKHllPXllK01hdGgu''@;'; + put 'put ''aW11bChhdCxvcil8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKGF0LGdyKXwwKStNYXRoLmltdWwoTHQsb3IpfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwoTHQsZ3IpfDApKyhDZT4+PjEzKXwwKSsoVzA+Pj4yNil8MCxXMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVs''@;'; + put 'put ''KFhuLHRuKSxDZT0oQ2U9TWF0aC5pbXVsKFhuLHpuKSkrTWF0aC5pbXVsKEZyLHRuKXwwLERlPU1hdGguaW11bChGcix6bikseWU9eWUrTWF0aC5pbXVsKGJuLEJuKXwwLENlPShDZT1DZStNYXRoLmltdWwoYm4sa3IpfDApK01hdGguaW11bChlcixCbil8MCxEZT1EZStNYXRoLmltdWwoZXIs''@;'; + put 'put ''a3IpfDAseWU9eWUrTWF0aC5pbXVsKHluLHVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoeW4sY24pfDApK01hdGguaW11bChsbix1bil8MCxEZT1EZStNYXRoLmltdWwobG4sY24pfDAseWU9eWUrTWF0aC5pbXVsKFF0LEd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoUXQsa24pfDApK01hdGgu''@;'; + put 'put ''aW11bChnbixHdCl8MCxEZT1EZStNYXRoLmltdWwoZ24sa24pfDAseWU9eWUrTWF0aC5pbXVsKFVlLGVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoVWUsSW4pfDApK01hdGguaW11bCh5dCxlbil8MCxEZT1EZStNYXRoLmltdWwoeXQsSW4pfDA7dmFyIEVvPShndCsoeWU9eWUrTWF0aC5pbXVs''@;'; + put 'put ''KGZ0LG9yKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoZnQsZ3IpfDApK01hdGguaW11bChIdCxvcil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bChIdCxncil8MCkrKENlPj4+MTMpfDApKyhFbz4+PjI2KXwwLEVvJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoWG4s''@;'; + put 'put ''Qm4pLENlPShDZT1NYXRoLmltdWwoWG4sa3IpKStNYXRoLmltdWwoRnIsQm4pfDAsRGU9TWF0aC5pbXVsKEZyLGtyKSx5ZT15ZStNYXRoLmltdWwoYm4sdW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChibixjbil8MCkrTWF0aC5pbXVsKGVyLHVuKXwwLERlPURlK01hdGguaW11bChlcixjbil8''@;'; + put 'put ''MCx5ZT15ZStNYXRoLmltdWwoeW4sR3QpfDAsQ2U9KENlPUNlK01hdGguaW11bCh5bixrbil8MCkrTWF0aC5pbXVsKGxuLEd0KXwwLERlPURlK01hdGguaW11bChsbixrbil8MCx5ZT15ZStNYXRoLmltdWwoUXQsZW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChRdCxJbil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KGduLGVuKXwwLERlPURlK01hdGguaW11bChnbixJbil8MDt2YXIgcW89KGd0Kyh5ZT15ZStNYXRoLmltdWwoVWUsb3IpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChVZSxncil8MCkrTWF0aC5pbXVsKHl0LG9yKXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKHl0''@;'; + put 'put ''LGdyKXwwKSsoQ2U+Pj4xMyl8MCkrKHFvPj4+MjYpfDAscW8mPTY3MTA4ODYzLHllPU1hdGguaW11bChYbix1biksQ2U9KENlPU1hdGguaW11bChYbixjbikpK01hdGguaW11bChGcix1bil8MCxEZT1NYXRoLmltdWwoRnIsY24pLHllPXllK01hdGguaW11bChibixHdCl8MCxDZT0oQ2U9Q2Ur''@;'; + put 'put ''TWF0aC5pbXVsKGJuLGtuKXwwKStNYXRoLmltdWwoZXIsR3QpfDAsRGU9RGUrTWF0aC5pbXVsKGVyLGtuKXwwLHllPXllK01hdGguaW11bCh5bixlbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHluLEluKXwwKStNYXRoLmltdWwobG4sZW4pfDAsRGU9RGUrTWF0aC5pbXVsKGxuLEluKXwwO3Zh''@;'; + put 'put ''ciBjYT0oZ3QrKHllPXllK01hdGguaW11bChRdCxvcil8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKFF0LGdyKXwwKStNYXRoLmltdWwoZ24sb3IpfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwoZ24sZ3IpfDApKyhDZT4+PjEzKXwwKSsoY2E+Pj4yNil8MCxjYSY9''@;'; + put 'put ''NjcxMDg4NjMseWU9TWF0aC5pbXVsKFhuLEd0KSxDZT0oQ2U9TWF0aC5pbXVsKFhuLGtuKSkrTWF0aC5pbXVsKEZyLEd0KXwwLERlPU1hdGguaW11bChGcixrbikseWU9eWUrTWF0aC5pbXVsKGJuLGVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoYm4sSW4pfDApK01hdGguaW11bChlcixlbil8''@;'; + put 'put ''MCxEZT1EZStNYXRoLmltdWwoZXIsSW4pfDA7dmFyIGxsPShndCsoeWU9eWUrTWF0aC5pbXVsKHluLG9yKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoeW4sZ3IpfDApK01hdGguaW11bChsbixvcil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bChsbixncil8MCkr''@;'; + put 'put ''KENlPj4+MTMpfDApKyhsbD4+PjI2KXwwLGxsJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoWG4sZW4pLENlPShDZT1NYXRoLmltdWwoWG4sSW4pKStNYXRoLmltdWwoRnIsZW4pfDAsRGU9TWF0aC5pbXVsKEZyLEluKTt2YXIgUWk9KGd0Kyh5ZT15ZStNYXRoLmltdWwoYm4sb3IpfDApfDApKygo''@;'; + put 'put ''ODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChibixncil8MCkrTWF0aC5pbXVsKGVyLG9yKXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKGVyLGdyKXwwKSsoQ2U+Pj4xMyl8MCkrKFFpPj4+MjYpfDAsUWkmPTY3MTA4ODYzO3ZhciBNYT0oZ3QrKHllPU1hdGguaW11bChYbixvcikp''@;'; + put 'put ''fDApKygoODE5MSYoQ2U9KENlPU1hdGguaW11bChYbixncikpK01hdGguaW11bChGcixvcil8MCkpPDwxMyl8MDtyZXR1cm4gZ3Q9KChEZT1NYXRoLmltdWwoRnIsZ3IpKSsoQ2U+Pj4xMyl8MCkrKE1hPj4+MjYpfDAsTWEmPTY3MTA4ODYzLCRlWzBdPUtyLCRlWzFdPVZyLCRlWzJdPWlpLCRl''@;'; + put 'put ''WzNdPVJyLCRlWzRdPWxpLCRlWzVdPU1pLCRlWzZdPW8wLCRlWzddPW4wLCRlWzhdPWQwLCRlWzldPW0wLCRlWzEwXT1HMCwkZVsxMV09RGksJGVbMTJdPVcwLCRlWzEzXT1FbywkZVsxNF09cW8sJGVbMTVdPWNhLCRlWzE2XT1sbCwkZVsxN109UWksJGVbMThdPU1hLDAhPT1ndCYmKCRlWzE5''@;'; + put 'put ''XT1ndCxGLmxlbmd0aCsrKSxGfTtmdW5jdGlvbiBJZShULFMsRil7Ri5uZWdhdGl2ZT1TLm5lZ2F0aXZlXlQubmVnYXRpdmUsRi5sZW5ndGg9VC5sZW5ndGgrUy5sZW5ndGg7Zm9yKHZhciB5ZT0wLENlPTAsRGU9MDtEZTxGLmxlbmd0aC0xO0RlKyspe3ZhciBQZT1DZTtDZT0wO2Zvcih2YXIg''@;'; + put 'put ''UWU9NjcxMDg4NjMmeWUsJGU9TWF0aC5taW4oRGUsUy5sZW5ndGgtMSksZ3Q9TWF0aC5tYXgoMCxEZS1ULmxlbmd0aCsxKTtndDw9JGU7Z3QrKyl7dmFyIHZ0PSgwfFQud29yZHNbRGUtZ3RdKSooMHxTLndvcmRzW2d0XSksQXQ9NjcxMDg4NjMmdnQ7UWU9NjcxMDg4NjMmKEF0PUF0K1FlfDAp''@;'; + put 'put ''LENlKz0oUGU9KFBlPVBlKyh2dC82NzEwODg2NHwwKXwwKSsoQXQ+Pj4yNil8MCk+Pj4yNixQZSY9NjcxMDg4NjN9Ri53b3Jkc1tEZV09UWUseWU9UGUsUGU9Q2V9cmV0dXJuIDAhPT15ZT9GLndvcmRzW0RlXT15ZTpGLmxlbmd0aC0tLEYuX3N0cmlwKCl9ZnVuY3Rpb24gVGUoVCxTLEYpe3Jl''@;'; + put 'put ''dHVybiBJZShULFMsRil9ZnVuY3Rpb24gRWUoVCxTKXt0aGlzLng9VCx0aGlzLnk9U31NYXRoLmltdWx8fChTZT1rZSksTi5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oVCxTKXt2YXIgRj10aGlzLmxlbmd0aCtULmxlbmd0aDtyZXR1cm4gMTA9PT10aGlzLmxlbmd0aCYmMTA9PT1ULmxlbmd0''@;'; + put 'put ''aD9TZSh0aGlzLFQsUyk6Rjw2Mz9rZSh0aGlzLFQsUyk6RjwxMDI0P0llKHRoaXMsVCxTKTpUZSh0aGlzLFQsUyl9LEVlLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKFQpe2Zvcih2YXIgUz1uZXcgQXJyYXkoVCksRj1OLnByb3RvdHlwZS5fY291bnRCaXRzKFQpLTEseWU9MDt5ZTxUO3ll''@;'; + put 'put ''KyspU1t5ZV09dGhpcy5yZXZCaW4oeWUsRixUKTtyZXR1cm4gU30sRWUucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihULFMsRil7aWYoMD09PVR8fFQ9PT1GLTEpcmV0dXJuIFQ7Zm9yKHZhciB5ZT0wLENlPTA7Q2U8UztDZSsrKXllfD0oMSZUKTw8Uy1DZS0xLFQ+Pj0xO3JldHVybiB5ZX0s''@;'; + put 'put ''RWUucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oVCxTLEYseWUsQ2UsRGUpe2Zvcih2YXIgUGU9MDtQZTxEZTtQZSsrKXllW1BlXT1TW1RbUGVdXSxDZVtQZV09RltUW1BlXV19LEVlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oVCxTLEYseWUsQ2UsRGUpe3RoaXMucGVybXV0ZShE''@;'; + put 'put ''ZSxULFMsRix5ZSxDZSk7Zm9yKHZhciBQZT0xO1BlPENlO1BlPDw9MSlmb3IodmFyIFFlPVBlPDwxLCRlPU1hdGguY29zKDIqTWF0aC5QSS9RZSksZ3Q9TWF0aC5zaW4oMipNYXRoLlBJL1FlKSx3dD0wO3d0PENlO3d0Kz1RZSlmb3IodmFyIHZ0PSRlLEF0PWd0LG10PTA7bXQ8UGU7bXQrKyl7''@;'; + put 'put ''dmFyIGh0PUZbd3QrbXRdLEJ0PXllW3d0K210XSxvbj1GW3d0K210K1BlXSxfdD15ZVt3dCttdCtQZV0sdHQ9dnQqb24tQXQqX3Q7X3Q9dnQqX3QrQXQqb24sRlt3dCttdF09aHQrKG9uPXR0KSx5ZVt3dCttdF09QnQrX3QsRlt3dCttdCtQZV09aHQtb24seWVbd3QrbXQrUGVdPUJ0LV90LG10''@;'; + put 'put ''IT09UWUmJih0dD0kZSp2dC1ndCpBdCxBdD0kZSpBdCtndCp2dCx2dD10dCl9fSxFZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oVCxTKXt2YXIgRj0xfE1hdGgubWF4KFMsVCkseWU9MSZGLENlPTA7Zm9yKEY9Ri8yfDA7RjtGPj4+PTEpQ2UrKztyZXR1cm4gMTw8Q2UrMSt5ZX0s''@;'; + put 'put ''RWUucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihULFMsRil7aWYoIShGPD0xKSlmb3IodmFyIHllPTA7eWU8Ri8yO3llKyspe3ZhciBDZT1UW3llXTtUW3llXT1UW0YteWUtMV0sVFtGLXllLTFdPUNlLENlPVNbeWVdLFNbeWVdPS1TW0YteWUtMV0sU1tGLXllLTFdPS1DZX19LEVlLnBy''@;'; + put 'put ''b3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oVCxTKXtmb3IodmFyIEY9MCx5ZT0wO3llPFMvMjt5ZSsrKXt2YXIgQ2U9ODE5MipNYXRoLnJvdW5kKFRbMip5ZSsxXS9TKStNYXRoLnJvdW5kKFRbMip5ZV0vUykrRjtUW3llXT02NzEwODg2MyZDZSxGPUNlPDY3MTA4ODY0PzA6Q2UvNjcx''@;'; + put 'put ''MDg4NjR8MH1yZXR1cm4gVH0sRWUucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oVCxTLEYseWUpe2Zvcih2YXIgQ2U9MCxEZT0wO0RlPFM7RGUrKylGWzIqRGVdPTgxOTEmKENlKz0wfFRbRGVdKSxGWzIqRGUrMV09ODE5MSYoQ2U+Pj49MTMpLENlPj4+PTEzO2ZvcihEZT0yKlM7RGU8''@;'; + put 'put ''eWU7KytEZSlGW0RlXT0wO1koMD09PUNlKSxZKDA9PSgtODE5MiZDZSkpfSxFZS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihUKXtmb3IodmFyIFM9bmV3IEFycmF5KFQpLEY9MDtGPFQ7RisrKVNbRl09MDtyZXR1cm4gU30sRWUucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oVCxTLEYpe3ZhciB5''@;'; + put 'put ''ZT0yKnRoaXMuZ3Vlc3NMZW4xM2IoVC5sZW5ndGgsUy5sZW5ndGgpLENlPXRoaXMubWFrZVJCVCh5ZSksRGU9dGhpcy5zdHViKHllKSxQZT1uZXcgQXJyYXkoeWUpLFFlPW5ldyBBcnJheSh5ZSksJGU9bmV3IEFycmF5KHllKSxndD1uZXcgQXJyYXkoeWUpLHd0PW5ldyBBcnJheSh5ZSksdnQ9''@;'; + put 'put ''bmV3IEFycmF5KHllKSxBdD1GLndvcmRzO0F0Lmxlbmd0aD15ZSx0aGlzLmNvbnZlcnQxM2IoVC53b3JkcyxULmxlbmd0aCxQZSx5ZSksdGhpcy5jb252ZXJ0MTNiKFMud29yZHMsUy5sZW5ndGgsZ3QseWUpLHRoaXMudHJhbnNmb3JtKFBlLERlLFFlLCRlLHllLENlKSx0aGlzLnRyYW5zZm9y''@;'; + put 'put ''bShndCxEZSx3dCx2dCx5ZSxDZSk7Zm9yKHZhciBtdD0wO210PHllO210Kyspe3ZhciBodD1RZVttdF0qd3RbbXRdLSRlW210XSp2dFttdF07JGVbbXRdPVFlW210XSp2dFttdF0rJGVbbXRdKnd0W210XSxRZVttdF09aHR9cmV0dXJuIHRoaXMuY29uanVnYXRlKFFlLCRlLHllKSx0aGlzLnRy''@;'; + put 'put ''YW5zZm9ybShRZSwkZSxBdCxEZSx5ZSxDZSksdGhpcy5jb25qdWdhdGUoQXQsRGUseWUpLHRoaXMubm9ybWFsaXplMTNiKEF0LHllKSxGLm5lZ2F0aXZlPVQubmVnYXRpdmVeUy5uZWdhdGl2ZSxGLmxlbmd0aD1ULmxlbmd0aCtTLmxlbmd0aCxGLl9zdHJpcCgpfSxOLnByb3RvdHlwZS5tdWw9''@;'; + put 'put ''ZnVuY3Rpb24oVCl7dmFyIFM9bmV3IE4obnVsbCk7cmV0dXJuIFMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK1QubGVuZ3RoKSx0aGlzLm11bFRvKFQsUyl9LE4ucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oVCl7dmFyIFM9bmV3IE4obnVsbCk7cmV0dXJuIFMud29yZHM9bmV3IEFycmF5''@;'; + put 'put ''KHRoaXMubGVuZ3RoK1QubGVuZ3RoKSxUZSh0aGlzLFQsUyl9LE4ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhULHRoaXMpfSxOLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihUKXt2YXIgUz1UPDA7UyYmKFQ9LVQpLFkoIm51bWJlciI9PXR5''@;'; + put 'put ''cGVvZiBUKSxZKFQ8NjcxMDg4NjQpO2Zvcih2YXIgRj0wLHllPTA7eWU8dGhpcy5sZW5ndGg7eWUrKyl7dmFyIENlPSgwfHRoaXMud29yZHNbeWVdKSpULERlPSg2NzEwODg2MyZDZSkrKDY3MTA4ODYzJkYpO0Y+Pj0yNixGKz1DZS82NzEwODg2NHwwLEYrPURlPj4+MjYsdGhpcy53b3Jkc1t5''@;'; + put 'put ''ZV09NjcxMDg4NjMmRGV9cmV0dXJuIDAhPT1GJiYodGhpcy53b3Jkc1t5ZV09Rix0aGlzLmxlbmd0aCsrKSxTP3RoaXMuaW5lZygpOnRoaXN9LE4ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihUKX0sTi5wcm90b3R5cGUuc3FyPWZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxOLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxOLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oVCl7dmFyIFM9ZnVuY3Rpb24oRGUpe2Zvcih2YXIgUGU9bmV3IEFycmF5KERlLmJpdExlbmd0''@;'; + put 'put ''aCgpKSxRZT0wO1FlPFBlLmxlbmd0aDtRZSsrKVBlW1FlXT1EZS53b3Jkc1tRZS8yNnwwXT4+PlFlJTI2JjE7cmV0dXJuIFBlfShUKTtpZigwPT09Uy5sZW5ndGgpcmV0dXJuIG5ldyBOKDEpO2Zvcih2YXIgRj10aGlzLHllPTA7eWU8Uy5sZW5ndGgmJjA9PT1TW3llXTt5ZSsrLEY9Ri5zcXIo''@;'; + put 'put ''KSk7aWYoKyt5ZTxTLmxlbmd0aClmb3IodmFyIENlPUYuc3FyKCk7eWU8Uy5sZW5ndGg7eWUrKyxDZT1DZS5zcXIoKSkwIT09U1t5ZV0mJihGPUYubXVsKENlKSk7cmV0dXJuIEZ9LE4ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbihUKXtZKCJudW1iZXIiPT10eXBlb2YgVCYmVD49MCk7dmFy''@;'; + put 'put ''IFMsRj1UJTI2LHllPShULUYpLzI2LENlPTY3MTA4ODYzPj4+MjYtRjw8MjYtRjtpZigwIT09Ril7dmFyIERlPTA7Zm9yKFM9MDtTPHRoaXMubGVuZ3RoO1MrKyl7dmFyIFBlPXRoaXMud29yZHNbU10mQ2U7dGhpcy53b3Jkc1tTXT0oMHx0aGlzLndvcmRzW1NdKS1QZTw8RnxEZSxEZT1QZT4+''@;'; + put 'put ''PjI2LUZ9RGUmJih0aGlzLndvcmRzW1NdPURlLHRoaXMubGVuZ3RoKyspfWlmKDAhPT15ZSl7Zm9yKFM9dGhpcy5sZW5ndGgtMTtTPj0wO1MtLSl0aGlzLndvcmRzW1MreWVdPXRoaXMud29yZHNbU107Zm9yKFM9MDtTPHllO1MrKyl0aGlzLndvcmRzW1NdPTA7dGhpcy5sZW5ndGgrPXllfXJl''@;'; + put 'put ''dHVybiB0aGlzLl9zdHJpcCgpfSxOLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbihUKXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oVCl9LE4ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbihULFMsRil7dmFyIHllO1koIm51bWJlciI9PXR5cGVvZiBUJiZUPj0wKSx5''@;'; + put 'put ''ZT1TPyhTLVMlMjYpLzI2OjA7dmFyIENlPVQlMjYsRGU9TWF0aC5taW4oKFQtQ2UpLzI2LHRoaXMubGVuZ3RoKSxQZT02NzEwODg2M142NzEwODg2Mz4+PkNlPDxDZSxRZT1GO2lmKHllLT1EZSx5ZT1NYXRoLm1heCgwLHllKSxRZSl7Zm9yKHZhciAkZT0wOyRlPERlOyRlKyspUWUud29yZHNb''@;'; + put 'put ''JGVdPXRoaXMud29yZHNbJGVdO1FlLmxlbmd0aD1EZX1pZigwIT09RGUpaWYodGhpcy5sZW5ndGg+RGUpZm9yKHRoaXMubGVuZ3RoLT1EZSwkZT0wOyRlPHRoaXMubGVuZ3RoOyRlKyspdGhpcy53b3Jkc1skZV09dGhpcy53b3Jkc1skZStEZV07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5s''@;'; + put 'put ''ZW5ndGg9MTt2YXIgZ3Q9MDtmb3IoJGU9dGhpcy5sZW5ndGgtMTskZT49MCYmKDAhPT1ndHx8JGU+PXllKTskZS0tKXt2YXIgd3Q9MHx0aGlzLndvcmRzWyRlXTt0aGlzLndvcmRzWyRlXT1ndDw8MjYtQ2V8d3Q+Pj5DZSxndD13dCZQZX1yZXR1cm4gUWUmJjAhPT1ndCYmKFFlLndvcmRzW1Fl''@;'; + put 'put ''Lmxlbmd0aCsrXT1ndCksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuX3N0cmlwKCl9LE4ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKFQsUyxGKXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oVCxTLEYpfSxOLnBy''@;'; + put 'put ''b3RvdHlwZS5zaGxuPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oVCl9LE4ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKFQpfSxOLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNsb25lKCku''@;'; + put 'put ''aXNocm4oVCl9LE4ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKFQpfSxOLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihUKXtZKCJudW1iZXIiPT10eXBlb2YgVCYmVD49MCk7dmFyIFM9VCUyNixGPShULVMpLzI2O3JldHVybiEodGhpcy5s''@;'; + put 'put ''ZW5ndGg8PUZ8fCEodGhpcy53b3Jkc1tGXSYxPDxTKSl9LE4ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihUKXtZKCJudW1iZXIiPT10eXBlb2YgVCYmVD49MCk7dmFyIFM9VCUyNixGPShULVMpLzI2O3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRo''@;'; + put 'put ''IHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9Rj90aGlzOigwIT09UyYmRisrLHRoaXMubGVuZ3RoPU1hdGgubWluKEYsdGhpcy5sZW5ndGgpLDAhPT1TJiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5TPDxTKSx0aGlzLl9zdHJpcCgpKX0s''@;'; + put 'put ''Ti5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oVCl9LE4ucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKFQpe3JldHVybiBZKCJudW1iZXIiPT10eXBlb2YgVCksWShUPDY3MTA4ODY0KSxUPDA/dGhpcy5pc3VibigtVCk6MCE9PXRoaXMubmVn''@;'; + put 'put ''YXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTw9VD8odGhpcy53b3Jkc1swXT1ULSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oVCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRu''@;'; + put 'put ''KFQpfSxOLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oVCl7dGhpcy53b3Jkc1swXSs9VDtmb3IodmFyIFM9MDtTPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1NdPj02NzEwODg2NDtTKyspdGhpcy53b3Jkc1tTXS09NjcxMDg4NjQsUz09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tTKzFd''@;'; + put 'put ''PTE6dGhpcy53b3Jkc1tTKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFMrMSksdGhpc30sTi5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oVCl7aWYoWSgibnVtYmVyIj09dHlwZW9mIFQpLFkoVDw2NzEwODg2NCksVDwwKXJldHVybiB0aGlzLmlhZGRuKC1U''@;'; + put 'put ''KTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oVCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09VCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRo''@;'; + put 'put ''aXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgUz0wO1M8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbU108MDtTKyspdGhpcy53b3Jkc1tTXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tTKzFdLT0xO3JldHVybiB0aGlzLl9zdHJpcCgpfSxOLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKFQpe3JldHVy''@;'; + put 'put ''biB0aGlzLmNsb25lKCkuaWFkZG4oVCl9LE4ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihUKX0sTi5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sTi5wcm90b3R5cGUuYWJzPWZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LE4ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihULFMsRil7dmFyIHllLENlO3RoaXMuX2V4cGFuZChULmxlbmd0aCtGKTt2YXIgUGU9MDtmb3IoeWU9MDt5ZTxULmxlbmd0aDt5ZSsrKXtDZT0oMHx0aGlzLndvcmRzW3llK0Zd''@;'; + put 'put ''KStQZTt2YXIgUWU9KDB8VC53b3Jkc1t5ZV0pKlM7UGU9KChDZS09NjcxMDg4NjMmUWUpPj4yNiktKFFlLzY3MTA4ODY0fDApLHRoaXMud29yZHNbeWUrRl09NjcxMDg4NjMmQ2V9Zm9yKDt5ZTx0aGlzLmxlbmd0aC1GO3llKyspUGU9KENlPSgwfHRoaXMud29yZHNbeWUrRl0pK1BlKT4+MjYs''@;'; + put 'put ''dGhpcy53b3Jkc1t5ZStGXT02NzEwODg2MyZDZTtpZigwPT09UGUpcmV0dXJuIHRoaXMuX3N0cmlwKCk7Zm9yKFkoLTE9PT1QZSksUGU9MCx5ZT0wO3llPHRoaXMubGVuZ3RoO3llKyspUGU9KENlPS0oMHx0aGlzLndvcmRzW3llXSkrUGUpPj4yNix0aGlzLndvcmRzW3llXT02NzEwODg2MyZD''@;'; + put 'put ''ZTtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX3N0cmlwKCl9LE4ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKFQsUyl7dmFyIEYseWU9dGhpcy5jbG9uZSgpLENlPVQsRGU9MHxDZS53b3Jkc1tDZS5sZW5ndGgtMV07MCE9KEY9MjYtdGhpcy5fY291bnRCaXRzKERlKSkmJihDZT1D''@;'; + put 'put ''ZS51c2hsbihGKSx5ZS5pdXNobG4oRiksRGU9MHxDZS53b3Jkc1tDZS5sZW5ndGgtMV0pO3ZhciBQZSxRZT15ZS5sZW5ndGgtQ2UubGVuZ3RoO2lmKCJtb2QiIT09Uyl7KFBlPW5ldyBOKG51bGwpKS5sZW5ndGg9UWUrMSxQZS53b3Jkcz1uZXcgQXJyYXkoUGUubGVuZ3RoKTtmb3IodmFyICRl''@;'; + put 'put ''PTA7JGU8UGUubGVuZ3RoOyRlKyspUGUud29yZHNbJGVdPTB9dmFyIGd0PXllLmNsb25lKCkuX2lzaGxuc3VibXVsKENlLDEsUWUpOzA9PT1ndC5uZWdhdGl2ZSYmKHllPWd0LFBlJiYoUGUud29yZHNbUWVdPTEpKTtmb3IodmFyIHd0PVFlLTE7d3Q+PTA7d3QtLSl7dmFyIHZ0PTY3MTA4ODY0''@;'; + put 'put ''KigwfHllLndvcmRzW0NlLmxlbmd0aCt3dF0pKygwfHllLndvcmRzW0NlLmxlbmd0aCt3dC0xXSk7Zm9yKHZ0PU1hdGgubWluKHZ0L0RlfDAsNjcxMDg4NjMpLHllLl9pc2hsbnN1Ym11bChDZSx2dCx3dCk7MCE9PXllLm5lZ2F0aXZlOyl2dC0tLHllLm5lZ2F0aXZlPTAseWUuX2lzaGxuc3Vi''@;'; + put 'put ''bXVsKENlLDEsd3QpLHllLmlzWmVybygpfHwoeWUubmVnYXRpdmVePTEpO1BlJiYoUGUud29yZHNbd3RdPXZ0KX1yZXR1cm4gUGUmJlBlLl9zdHJpcCgpLHllLl9zdHJpcCgpLCJkaXYiIT09UyYmMCE9PUYmJnllLml1c2hybihGKSx7ZGl2OlBlfHxudWxsLG1vZDp5ZX19LE4ucHJvdG90eXBl''@;'; + put 'put ''LmRpdm1vZD1mdW5jdGlvbihULFMsRil7cmV0dXJuIFkoIVQuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgTigwKSxtb2Q6bmV3IE4oMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09VC5uZWdhdGl2ZT8oRGU9dGhpcy5uZWcoKS5kaXZtb2QoVCxTKSwibW9kIiE9PVMmJih5ZT1E''@;'; + put 'put ''ZS5kaXYubmVnKCkpLCJkaXYiIT09UyYmKENlPURlLm1vZC5uZWcoKSxGJiYwIT09Q2UubmVnYXRpdmUmJkNlLmlhZGQoVCkpLHtkaXY6eWUsbW9kOkNlfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1ULm5lZ2F0aXZlPyhEZT10aGlzLmRpdm1vZChULm5lZygpLFMpLCJtb2QiIT09UyYmKHll''@;'; + put 'put ''PURlLmRpdi5uZWcoKSkse2Rpdjp5ZSxtb2Q6RGUubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmVC5uZWdhdGl2ZSk/KERlPXRoaXMubmVnKCkuZGl2bW9kKFQubmVnKCksUyksImRpdiIhPT1TJiYoQ2U9RGUubW9kLm5lZygpLEYmJjAhPT1DZS5uZWdhdGl2ZSYmQ2UuaXN1YihUKSkse2RpdjpE''@;'; + put 'put ''ZS5kaXYsbW9kOkNlfSk6VC5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKFQpPDA/e2RpdjpuZXcgTigwKSxtb2Q6dGhpc306MT09PVQubGVuZ3RoPyJkaXYiPT09Uz97ZGl2OnRoaXMuZGl2bihULndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1TP3tkaXY6bnVsbCxtb2Q6bmV3IE4o''@;'; + put 'put ''dGhpcy5tb2RybihULndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKFQud29yZHNbMF0pLG1vZDpuZXcgTih0aGlzLm1vZHJuKFQud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihULFMpO3ZhciB5ZSxDZSxEZX0sTi5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmRpdm1v''@;'; + put 'put ''ZChULCJkaXYiLCExKS5kaXZ9LE4ucHJvdG90eXBlLm1vZD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5kaXZtb2QoVCwibW9kIiwhMSkubW9kfSxOLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmRpdm1vZChULCJtb2QiLCEwKS5tb2R9LE4ucHJvdG90eXBlLmRpdlJv''@;'; + put 'put ''dW5kPWZ1bmN0aW9uKFQpe3ZhciBTPXRoaXMuZGl2bW9kKFQpO2lmKFMubW9kLmlzWmVybygpKXJldHVybiBTLmRpdjt2YXIgRj0wIT09Uy5kaXYubmVnYXRpdmU/Uy5tb2QuaXN1YihUKTpTLm1vZCx5ZT1ULnVzaHJuKDEpLENlPVQuYW5kbG4oMSksRGU9Ri5jbXAoeWUpO3JldHVybiBEZTww''@;'; + put 'put ''fHwxPT09Q2UmJjA9PT1EZT9TLmRpdjowIT09Uy5kaXYubmVnYXRpdmU/Uy5kaXYuaXN1Ym4oMSk6Uy5kaXYuaWFkZG4oMSl9LE4ucHJvdG90eXBlLm1vZHJuPWZ1bmN0aW9uKFQpe3ZhciBTPVQ8MDtTJiYoVD0tVCksWShUPD02NzEwODg2Myk7Zm9yKHZhciBGPTY3MTA4ODY0JVQseWU9MCxD''@;'; + put 'put ''ZT10aGlzLmxlbmd0aC0xO0NlPj0wO0NlLS0peWU9KEYqeWUrKDB8dGhpcy53b3Jkc1tDZV0pKSVUO3JldHVybiBTPy15ZTp5ZX0sTi5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5tb2RybihUKX0sTi5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oVCl7dmFyIFM9VDww''@;'; + put 'put ''O1MmJihUPS1UKSxZKFQ8PTY3MTA4ODYzKTtmb3IodmFyIEY9MCx5ZT10aGlzLmxlbmd0aC0xO3llPj0wO3llLS0pe3ZhciBDZT0oMHx0aGlzLndvcmRzW3llXSkrNjcxMDg4NjQqRjt0aGlzLndvcmRzW3llXT1DZS9UfDAsRj1DZSVUfXJldHVybiB0aGlzLl9zdHJpcCgpLFM/dGhpcy5pbmVn''@;'; + put 'put ''KCk6dGhpc30sTi5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKFQpfSxOLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKFQpe1koMD09PVQubmVnYXRpdmUpLFkoIVQuaXNaZXJvKCkpO3ZhciBTPXRoaXMsRj1ULmNsb25lKCk7Uz0wIT09Uy5uZWdh''@;'; + put 'put ''dGl2ZT9TLnVtb2QoVCk6Uy5jbG9uZSgpO2Zvcih2YXIgeWU9bmV3IE4oMSksQ2U9bmV3IE4oMCksRGU9bmV3IE4oMCksUGU9bmV3IE4oMSksUWU9MDtTLmlzRXZlbigpJiZGLmlzRXZlbigpOylTLml1c2hybigxKSxGLml1c2hybigxKSwrK1FlO2Zvcih2YXIgJGU9Ri5jbG9uZSgpLGd0PVMu''@;'; + put 'put ''Y2xvbmUoKTshUy5pc1plcm8oKTspe2Zvcih2YXIgd3Q9MCx2dD0xOzA9PShTLndvcmRzWzBdJnZ0KSYmd3Q8MjY7Kyt3dCx2dDw8PTEpO2lmKHd0PjApZm9yKFMuaXVzaHJuKHd0KTt3dC0tID4wOykoeWUuaXNPZGQoKXx8Q2UuaXNPZGQoKSkmJih5ZS5pYWRkKCRlKSxDZS5pc3ViKGd0KSks''@;'; + put 'put ''eWUuaXVzaHJuKDEpLENlLml1c2hybigxKTtmb3IodmFyIEF0PTAsbXQ9MTswPT0oRi53b3Jkc1swXSZtdCkmJkF0PDI2OysrQXQsbXQ8PD0xKTtpZihBdD4wKWZvcihGLml1c2hybihBdCk7QXQtLSA+MDspKERlLmlzT2RkKCl8fFBlLmlzT2RkKCkpJiYoRGUuaWFkZCgkZSksUGUuaXN1Yihn''@;'; + put 'put ''dCkpLERlLml1c2hybigxKSxQZS5pdXNocm4oMSk7Uy5jbXAoRik+PTA/KFMuaXN1YihGKSx5ZS5pc3ViKERlKSxDZS5pc3ViKFBlKSk6KEYuaXN1YihTKSxEZS5pc3ViKHllKSxQZS5pc3ViKENlKSl9cmV0dXJue2E6RGUsYjpQZSxnY2Q6Ri5pdXNobG4oUWUpfX0sTi5wcm90b3R5cGUuX2lu''@;'; + put 'put ''dm1wPWZ1bmN0aW9uKFQpe1koMD09PVQubmVnYXRpdmUpLFkoIVQuaXNaZXJvKCkpO3ZhciBTPXRoaXMsRj1ULmNsb25lKCk7Uz0wIT09Uy5uZWdhdGl2ZT9TLnVtb2QoVCk6Uy5jbG9uZSgpO2Zvcih2YXIgeWUsQ2U9bmV3IE4oMSksRGU9bmV3IE4oMCksUGU9Ri5jbG9uZSgpO1MuY21wbigx''@;'; + put 'put ''KT4wJiZGLmNtcG4oMSk+MDspe2Zvcih2YXIgUWU9MCwkZT0xOzA9PShTLndvcmRzWzBdJiRlKSYmUWU8MjY7KytRZSwkZTw8PTEpO2lmKFFlPjApZm9yKFMuaXVzaHJuKFFlKTtRZS0tID4wOylDZS5pc09kZCgpJiZDZS5pYWRkKFBlKSxDZS5pdXNocm4oMSk7Zm9yKHZhciBndD0wLHd0PTE7''@;'; + put 'put ''MD09KEYud29yZHNbMF0md3QpJiZndDwyNjsrK2d0LHd0PDw9MSk7aWYoZ3Q+MClmb3IoRi5pdXNocm4oZ3QpO2d0LS0gPjA7KURlLmlzT2RkKCkmJkRlLmlhZGQoUGUpLERlLml1c2hybigxKTtTLmNtcChGKT49MD8oUy5pc3ViKEYpLENlLmlzdWIoRGUpKTooRi5pc3ViKFMpLERlLmlzdWIo''@;'; + put 'put ''Q2UpKX1yZXR1cm4oeWU9MD09PVMuY21wbigxKT9DZTpEZSkuY21wbigwKTwwJiZ5ZS5pYWRkKFQpLHllfSxOLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oVCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gVC5hYnMoKTtpZihULmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBTPXRoaXMu''@;'; + put 'put ''Y2xvbmUoKSxGPVQuY2xvbmUoKTtTLm5lZ2F0aXZlPTAsRi5uZWdhdGl2ZT0wO2Zvcih2YXIgeWU9MDtTLmlzRXZlbigpJiZGLmlzRXZlbigpO3llKyspUy5pdXNocm4oMSksRi5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO1MuaXNFdmVuKCk7KVMuaXVzaHJuKDEpO2Zvcig7Ri5pc0V2ZW4oKTsp''@;'; + put 'put ''Ri5pdXNocm4oMSk7dmFyIENlPVMuY21wKEYpO2lmKENlPDApe3ZhciBEZT1TO1M9RixGPURlfWVsc2UgaWYoMD09PUNlfHwwPT09Ri5jbXBuKDEpKWJyZWFrO1MuaXN1YihGKX1yZXR1cm4gRi5pdXNobG4oeWUpfSxOLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmVn''@;'; + put 'put ''Y2QoVCkuYS51bW9kKFQpfSxOLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxOLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihUKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy53b3Jkc1swXSZUfSxOLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihUKXtZKCJudW1iZXIiPT10eXBlb2YgVCk7dmFyIFM9VCUyNixGPShULVMpLzI2LHllPTE8PFM7aWYodGhpcy5sZW5ndGg8PUYpcmV0dXJuIHRoaXMuX2V4cGFuZChGKzEpLHRoaXMud29yZHNbRl18PXll''@;'; + put 'put ''LHRoaXM7Zm9yKHZhciBDZT15ZSxEZT1GOzAhPT1DZSYmRGU8dGhpcy5sZW5ndGg7RGUrKyl7dmFyIFBlPTB8dGhpcy53b3Jkc1tEZV07Q2U9KFBlKz1DZSk+Pj4yNix0aGlzLndvcmRzW0RlXT1QZSY9NjcxMDg4NjN9cmV0dXJuIDAhPT1DZSYmKHRoaXMud29yZHNbRGVdPUNlLHRoaXMubGVu''@;'; + put 'put ''Z3RoKyspLHRoaXN9LE4ucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxOLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKFQpe3ZhciBTLEY9VDwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYhRilyZXR1cm4tMTtpZigw''@;'; + put 'put ''PT09dGhpcy5uZWdhdGl2ZSYmRilyZXR1cm4gMTtpZih0aGlzLl9zdHJpcCgpLHRoaXMubGVuZ3RoPjEpUz0xO2Vsc2V7RiYmKFQ9LVQpLFkoVDw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIHllPTB8dGhpcy53b3Jkc1swXTtTPXllPT09VD8wOnllPFQ/LTE6MX1yZXR1cm4g''@;'; + put 'put ''MCE9PXRoaXMubmVnYXRpdmU/MHwtUzpTfSxOLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oVCl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1ULm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09VC5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgUz10aGlzLnVjbXAoVCk7''@;'; + put 'put ''cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVM6U30sTi5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihUKXtpZih0aGlzLmxlbmd0aD5ULmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxULmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIFM9MCxGPXRoaXMubGVuZ3RoLTE7Rj49MDtGLS0p''@;'; + put 'put ''e3ZhciB5ZT0wfHRoaXMud29yZHNbRl0sQ2U9MHxULndvcmRzW0ZdO2lmKHllIT09Q2Upe3llPENlP1M9LTE6eWU+Q2UmJihTPTEpO2JyZWFrfX1yZXR1cm4gU30sTi5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKFQpe3JldHVybiAxPT09dGhpcy5jbXBuKFQpfSxOLnByb3RvdHlwZS5ndD1mdW5j''@;'; + put 'put ''dGlvbihUKXtyZXR1cm4gMT09PXRoaXMuY21wKFQpfSxOLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNtcG4oVCk+PTB9LE4ucHJvdG90eXBlLmd0ZT1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbXAoVCk+PTB9LE4ucHJvdG90eXBlLmx0bj1mdW5jdGlvbihUKXty''@;'; + put 'put ''ZXR1cm4tMT09PXRoaXMuY21wbihUKX0sTi5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oVCl7cmV0dXJuLTE9PT10aGlzLmNtcChUKX0sTi5wcm90b3R5cGUubHRlbj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbXBuKFQpPD0wfSxOLnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oVCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuY21wKFQpPD0wfSxOLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oVCl7cmV0dXJuIDA9PT10aGlzLmNtcG4oVCl9LE4ucHJvdG90eXBlLmVxPWZ1bmN0aW9uKFQpe3JldHVybiAwPT09dGhpcy5jbXAoVCl9LE4ucmVkPWZ1bmN0aW9uKFQpe3JldHVybiBuZXcgUChUKX0sTi5wcm90b3R5cGUu''@;'; + put 'put ''dG9SZWQ9ZnVuY3Rpb24oVCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksWSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxULmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoVCl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxOLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oVCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMucmVkPVQsdGhpc30sTi5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oVCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoVCl9LE4ucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihU''@;'; + put 'put ''KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLFQpfSxOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKFQpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVy''@;'; + put 'put ''cyIpLHRoaXMucmVkLmlhZGQodGhpcyxUKX0sTi5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKFQpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsVCl9LE4ucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24o''@;'; + put 'put ''VCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLFQpfSxOLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oVCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJl''@;'; + put 'put ''cnMiKSx0aGlzLnJlZC5zaGwodGhpcyxUKX0sTi5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKFQpe3JldHVybiBZKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxUKSx0aGlzLnJlZC5tdWwodGhpcyxUKX0sTi5w''@;'; + put 'put ''cm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihUKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsVCksdGhpcy5yZWQuaW11bCh0aGlzLFQpfSxOLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9u''@;'; + put 'put ''bHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5f''@;'; + put 'put ''dmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxOLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlz''@;'; + put 'put ''KX0sTi5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LE4ucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihUKXty''@;'; + put 'put ''ZXR1cm4gWSh0aGlzLnJlZCYmIVQucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLFQpfTt2YXIgaGU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBPKFQsUyl7dGhpcy5u''@;'; + put 'put ''YW1lPVQsdGhpcy5wPW5ldyBOKFMsMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBOKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiB6KCl7Ty5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZm''@;'; + put 'put ''ZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIG5lKCl7Ty5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9u''@;'; + put 'put ''IHRlKCl7Ty5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIHgoKXtPLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZm''@;'; + put 'put ''ZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gUChUKXtpZigic3RyaW5nIj09dHlwZW9mIFQpe3ZhciBTPU4uX3ByaW1lKFQpO3RoaXMubT1TLnAsdGhpcy5wcmltZT1TfWVsc2UgWShULmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPVQsdGhpcy5w''@;'; + put 'put ''cmltZT1udWxsfWZ1bmN0aW9uIFYoVCl7UC5jYWxsKHRoaXMsVCksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgTigxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlz''@;'; + put 'put ''Lmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5t''@;'; + put 'put ''aW52KX1PLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIFQ9bmV3IE4obnVsbCk7cmV0dXJuIFQud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxUfSxPLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKFQpe3ZhciBTLEY9VDtkb3t0aGlzLnNwbGl0KEYsdGhpcy50''@;'; + put 'put ''bXApLFM9KEY9KEY9dGhpcy5pbXVsSyhGKSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKFM+dGhpcy5uKTt2YXIgeWU9Uzx0aGlzLm4/LTE6Ri51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT15ZT8oRi53b3Jkc1swXT0wLEYubGVuZ3RoPTEpOnllPjA/Ri5pc3ViKHRoaXMucCk6''@;'; + put 'put ''dm9pZCAwIT09Ri5zdHJpcD9GLnN0cmlwKCk6Ri5fc3RyaXAoKSxGfSxPLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihULFMpe1QuaXVzaHJuKHRoaXMubiwwLFMpfSxPLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihUKXtyZXR1cm4gVC5pbXVsKHRoaXMuayl9LFcoeixPKSx6LnByb3RvdHlw''@;'; + put 'put ''ZS5zcGxpdD1mdW5jdGlvbihULFMpe2Zvcih2YXIgRj00MTk0MzAzLHllPU1hdGgubWluKFQubGVuZ3RoLDkpLENlPTA7Q2U8eWU7Q2UrKylTLndvcmRzW0NlXT1ULndvcmRzW0NlXTtpZihTLmxlbmd0aD15ZSxULmxlbmd0aDw9OSlyZXR1cm4gVC53b3Jkc1swXT0wLHZvaWQoVC5sZW5ndGg9''@;'; + put 'put ''MSk7dmFyIERlPVQud29yZHNbOV07Zm9yKFMud29yZHNbUy5sZW5ndGgrK109RGUmRixDZT0xMDtDZTxULmxlbmd0aDtDZSsrKXt2YXIgUGU9MHxULndvcmRzW0NlXTtULndvcmRzW0NlLTEwXT0oUGUmRik8PDR8RGU+Pj4yMixEZT1QZX1ULndvcmRzW0NlLTEwXT1EZT4+Pj0yMixULmxlbmd0''@;'; + put 'put ''aC09MD09PURlJiZULmxlbmd0aD4xMD8xMDo5fSx6LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihUKXtULndvcmRzW1QubGVuZ3RoXT0wLFQud29yZHNbVC5sZW5ndGgrMV09MCxULmxlbmd0aCs9Mjtmb3IodmFyIFM9MCxGPTA7RjxULmxlbmd0aDtGKyspe3ZhciB5ZT0wfFQud29yZHNbRl07''@;'; + put 'put ''VC53b3Jkc1tGXT02NzEwODg2MyYoUys9OTc3KnllKSxTPTY0KnllKyhTLzY3MTA4ODY0fDApfXJldHVybiAwPT09VC53b3Jkc1tULmxlbmd0aC0xXSYmKFQubGVuZ3RoLS0sMD09PVQud29yZHNbVC5sZW5ndGgtMV0mJlQubGVuZ3RoLS0pLFR9LFcobmUsTyksVyh0ZSxPKSxXKHgsTykseC5w''@;'; + put 'put ''cm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oVCl7Zm9yKHZhciBTPTAsRj0wO0Y8VC5sZW5ndGg7RisrKXt2YXIgeWU9MTkqKDB8VC53b3Jkc1tGXSkrUyxDZT02NzEwODg2MyZ5ZTt5ZT4+Pj0yNixULndvcmRzW0ZdPUNlLFM9eWV9cmV0dXJuIDAhPT1TJiYoVC53b3Jkc1tULmxlbmd0aCsrXT1T''@;'; + put 'put ''KSxUfSxOLl9wcmltZT1mdW5jdGlvbihUKXtpZihoZVtUXSlyZXR1cm4gaGVbVF07dmFyIFM7aWYoImsyNTYiPT09VClTPW5ldyB6O2Vsc2UgaWYoInAyMjQiPT09VClTPW5ldyBuZTtlbHNlIGlmKCJwMTkyIj09PVQpUz1uZXcgdGU7ZWxzZXtpZigicDI1NTE5IiE9PVQpdGhyb3cgbmV3IEVy''@;'; + put 'put ''cm9yKCJVbmtub3duIHByaW1lICIrVCk7Uz1uZXcgeH1yZXR1cm4gaGVbVF09UyxTfSxQLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihUKXtZKDA9PT1ULm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoVC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVk''@;'; + put 'put ''IG51bWJlcnMiKX0sUC5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oVCxTKXtZKDA9PShULm5lZ2F0aXZlfFMubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoVC5yZWQmJlQucmVkPT09Uy5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMi''@;'; + put 'put ''KX0sUC5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UoVCkuX2ZvcmNlUmVkKHRoaXMpOihvZShULFQudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKSksVCl9LFAucHJvdG90eXBlLm5lZz1mdW5jdGlvbihUKXtyZXR1cm4g''@;'; + put 'put ''VC5pc1plcm8oKT9ULmNsb25lKCk6dGhpcy5tLnN1YihUKS5fZm9yY2VSZWQodGhpcyl9LFAucHJvdG90eXBlLmFkZD1mdW5jdGlvbihULFMpe3RoaXMuX3ZlcmlmeTIoVCxTKTt2YXIgRj1ULmFkZChTKTtyZXR1cm4gRi5jbXAodGhpcy5tKT49MCYmRi5pc3ViKHRoaXMubSksRi5fZm9yY2VS''@;'; + put 'put ''ZWQodGhpcyl9LFAucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oVCxTKXt0aGlzLl92ZXJpZnkyKFQsUyk7dmFyIEY9VC5pYWRkKFMpO3JldHVybiBGLmNtcCh0aGlzLm0pPj0wJiZGLmlzdWIodGhpcy5tKSxGfSxQLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oVCxTKXt0aGlzLl92ZXJpZnkyKFQs''@;'; + put 'put ''Uyk7dmFyIEY9VC5zdWIoUyk7cmV0dXJuIEYuY21wbigwKTwwJiZGLmlhZGQodGhpcy5tKSxGLl9mb3JjZVJlZCh0aGlzKX0sUC5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihULFMpe3RoaXMuX3ZlcmlmeTIoVCxTKTt2YXIgRj1ULmlzdWIoUyk7cmV0dXJuIEYuY21wbigwKTwwJiZGLmlhZGQo''@;'; + put 'put ''dGhpcy5tKSxGfSxQLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oVCxTKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShUKSx0aGlzLmltb2QoVC51c2hsbihTKSl9LFAucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oVCxTKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihULFMpLHRoaXMuaW1vZChULmltdWwoUykp''@;'; + put 'put ''fSxQLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oVCxTKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihULFMpLHRoaXMuaW1vZChULm11bChTKSl9LFAucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuaW11bChULFQuY2xvbmUoKSl9LFAucHJvdG90eXBlLnNxcj1mdW5jdGlvbihU''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy5tdWwoVCxUKX0sUC5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihUKXtpZihULmlzWmVybygpKXJldHVybiBULmNsb25lKCk7dmFyIFM9dGhpcy5tLmFuZGxuKDMpO2lmKFkoUyUyPT0xKSwzPT09Uyl7dmFyIEY9dGhpcy5tLmFkZChuZXcgTigxKSkuaXVzaHJuKDIpO3Jl''@;'; + put 'put ''dHVybiB0aGlzLnBvdyhULEYpfWZvcih2YXIgeWU9dGhpcy5tLnN1Ym4oMSksQ2U9MDsheWUuaXNaZXJvKCkmJjA9PT15ZS5hbmRsbigxKTspQ2UrKyx5ZS5pdXNocm4oMSk7WSgheWUuaXNaZXJvKCkpO3ZhciBEZT1uZXcgTigxKS50b1JlZCh0aGlzKSxQZT1EZS5yZWROZWcoKSxRZT10aGlz''@;'; + put 'put ''Lm0uc3VibigxKS5pdXNocm4oMSksJGU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcigkZT1uZXcgTigyKiRlKiRlKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3coJGUsUWUpLmNtcChQZSk7KSRlLnJlZElBZGQoUGUpO2Zvcih2YXIgZ3Q9dGhpcy5wb3coJGUseWUpLHd0PXRoaXMucG93KFQseWUu''@;'; + put 'put ''YWRkbigxKS5pdXNocm4oMSkpLHZ0PXRoaXMucG93KFQseWUpLEF0PUNlOzAhPT12dC5jbXAoRGUpOyl7Zm9yKHZhciBtdD12dCxodD0wOzAhPT1tdC5jbXAoRGUpO2h0KyspbXQ9bXQucmVkU3FyKCk7WShodDxBdCk7dmFyIEJ0PXRoaXMucG93KGd0LG5ldyBOKDEpLml1c2hsbihBdC1odC0x''@;'; + put 'put ''KSk7d3Q9d3QucmVkTXVsKEJ0KSxndD1CdC5yZWRTcXIoKSx2dD12dC5yZWRNdWwoZ3QpLEF0PWh0fXJldHVybiB3dH0sUC5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihUKXt2YXIgUz1ULl9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09Uy5uZWdhdGl2ZT8oUy5uZWdhdGl2ZT0wLHRoaXMuaW1v''@;'; + put 'put ''ZChTKS5yZWROZWcoKSk6dGhpcy5pbW9kKFMpfSxQLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oVCxTKXtpZihTLmlzWmVybygpKXJldHVybiBuZXcgTigxKS50b1JlZCh0aGlzKTtpZigwPT09Uy5jbXBuKDEpKXJldHVybiBULmNsb25lKCk7dmFyIEY9bmV3IEFycmF5KDE2KTtGWzBdPW5ldyBO''@;'; + put 'put ''KDEpLnRvUmVkKHRoaXMpLEZbMV09VDtmb3IodmFyIHllPTI7eWU8Ri5sZW5ndGg7eWUrKylGW3llXT10aGlzLm11bChGW3llLTFdLFQpO3ZhciBDZT1GWzBdLERlPTAsUGU9MCxRZT1TLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09UWUmJihRZT0yNikseWU9Uy5sZW5ndGgtMTt5ZT49MDt5ZS0t''@;'; + put 'put ''KXtmb3IodmFyICRlPVMud29yZHNbeWVdLGd0PVFlLTE7Z3Q+PTA7Z3QtLSl7dmFyIHd0PSRlPj5ndCYxO0NlIT09RlswXSYmKENlPXRoaXMuc3FyKENlKSksMCE9PXd0fHwwIT09RGU/KERlPDw9MSxEZXw9d3QsKDQ9PSsrUGV8fDA9PT15ZSYmMD09PWd0KSYmKENlPXRoaXMubXVsKENlLEZb''@;'; + put 'put ''RGVdKSxQZT0wLERlPTApKTpQZT0wfVFlPTI2fXJldHVybiBDZX0sUC5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKFQpe3ZhciBTPVQudW1vZCh0aGlzLm0pO3JldHVybiBTPT09VD9TLmNsb25lKCk6U30sUC5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oVCl7dmFyIFM9VC5j''@;'; + put 'put ''bG9uZSgpO3JldHVybiBTLnJlZD1udWxsLFN9LE4ubW9udD1mdW5jdGlvbihUKXtyZXR1cm4gbmV3IFYoVCl9LFcoVixQKSxWLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuaW1vZChULnVzaGxuKHRoaXMuc2hpZnQpKX0sVi5wcm90b3R5cGUuY29udmVydEZy''@;'; + put 'put ''b209ZnVuY3Rpb24oVCl7dmFyIFM9dGhpcy5pbW9kKFQubXVsKHRoaXMucmludikpO3JldHVybiBTLnJlZD1udWxsLFN9LFYucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oVCxTKXtpZihULmlzWmVybygpfHxTLmlzWmVybygpKXJldHVybiBULndvcmRzWzBdPTAsVC5sZW5ndGg9MSxUO3ZhciBG''@;'; + put 'put ''PVQuaW11bChTKSx5ZT1GLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxDZT1GLmlzdWIoeWUpLml1c2hybih0aGlzLnNoaWZ0KSxEZT1DZTtyZXR1cm4gQ2UuY21wKHRoaXMubSk+PTA/RGU9Q2UuaXN1Yih0aGlzLm0pOkNl''@;'; + put 'put ''LmNtcG4oMCk8MCYmKERlPUNlLmlhZGQodGhpcy5tKSksRGUuX2ZvcmNlUmVkKHRoaXMpfSxWLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oVCxTKXtpZihULmlzWmVybygpfHxTLmlzWmVybygpKXJldHVybiBuZXcgTigwKS5fZm9yY2VSZWQodGhpcyk7dmFyIEY9VC5tdWwoUykseWU9Ri5tYXNr''@;'; + put 'put ''bih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksQ2U9Ri5pc3ViKHllKS5pdXNocm4odGhpcy5zaGlmdCksRGU9Q2U7cmV0dXJuIENlLmNtcCh0aGlzLm0pPj0wP0RlPUNlLmlzdWIodGhpcy5tKTpDZS5jbXBuKDApPDAmJihEZT1DZS5p''@;'; + put 'put ''YWRkKHRoaXMubSkpLERlLl9mb3JjZVJlZCh0aGlzKX0sVi5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5pbW9kKFQuX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShVPVoubm1kKFUpLHRoaXMpfSwzNjQ0OihVLFEsWik9Pnt2YXIg''@;'; + put 'put ''aWU9WigxMDQ4KSxsZT1aKDU2MjMpO1UuZXhwb3J0cz1mdW5jdGlvbihTZSl7cmV0dXJuIFNlPygie30iPT09U2Uuc3Vic3RyKDAsMikmJihTZT0iXFx7XFx9IitTZS5zdWJzdHIoMikpLGtlKChJZT1TZSxJZS5zcGxpdCgiXFxcXCIpLmpvaW4oWSkuc3BsaXQoIlxceyIpLmpvaW4oVykuc3Bs''@;'; + put 'put ''aXQoIlxcfSIpLmpvaW4oTikuc3BsaXQoIlxcLCIpLmpvaW4oZWUpLnNwbGl0KCJcXC4iKS5qb2luKHEpKSwhMCkubWFwKHNlKSk6W107dmFyIEllfTt2YXIgWT0iXDBTTEFTSCIrTWF0aC5yYW5kb20oKSsiXDAiLFc9IlwwT1BFTiIrTWF0aC5yYW5kb20oKSsiXDAiLE49IlwwQ0xPU0UiK01h''@;'; + put 'put ''dGgucmFuZG9tKCkrIlwwIixlZT0iXDBDT01NQSIrTWF0aC5yYW5kb20oKSsiXDAiLHE9IlwwUEVSSU9EIitNYXRoLnJhbmRvbSgpKyJcMCI7ZnVuY3Rpb24gSihTZSl7cmV0dXJuIHBhcnNlSW50KFNlLDEwKT09U2U/cGFyc2VJbnQoU2UsMTApOlNlLmNoYXJDb2RlQXQoMCl9ZnVuY3Rpb24g''@;'; + put 'put ''c2UoU2Upe3JldHVybiBTZS5zcGxpdChZKS5qb2luKCJcXCIpLnNwbGl0KFcpLmpvaW4oInsiKS5zcGxpdChOKS5qb2luKCJ9Iikuc3BsaXQoZWUpLmpvaW4oIiwiKS5zcGxpdChxKS5qb2luKCIuIil9ZnVuY3Rpb24gb2UoU2Upe2lmKCFTZSlyZXR1cm5bIiJdO3ZhciBJZT1bXSxUZT1sZSgi''@;'; + put 'put ''eyIsIn0iLFNlKTtpZighVGUpcmV0dXJuIFNlLnNwbGl0KCIsIik7dmFyIGhlPVRlLmJvZHksTz1UZS5wb3N0LHo9VGUucHJlLnNwbGl0KCIsIik7elt6Lmxlbmd0aC0xXSs9InsiK2hlKyJ9Ijt2YXIgbmU9b2UoTyk7cmV0dXJuIE8ubGVuZ3RoJiYoelt6Lmxlbmd0aC0xXSs9bmUuc2hpZnQo''@;'; + put 'put ''KSx6LnB1c2guYXBwbHkoeixuZSkpLEllLnB1c2guYXBwbHkoSWUseiksSWV9ZnVuY3Rpb24gY2UoU2Upe3JldHVybiJ7IitTZSsifSJ9ZnVuY3Rpb24gZGUoU2Upe3JldHVybi9eLT8wXGQvLnRlc3QoU2UpfWZ1bmN0aW9uIHZlKFNlLEllKXtyZXR1cm4gU2U8PUllfWZ1bmN0aW9uIEFlKFNl''@;'; + put 'put ''LEllKXtyZXR1cm4gU2U+PUllfWZ1bmN0aW9uIGtlKFNlLEllKXt2YXIgVGU9W10sRWU9bGUoInsiLCJ9IixTZSk7aWYoIUVlfHwvXCQkLy50ZXN0KEVlLnByZSkpcmV0dXJuW1NlXTt2YXIgaGUsTz0vXi0/XGQrXC5cLi0/XGQrKD86XC5cLi0/XGQrKT8kLy50ZXN0KEVlLmJvZHkpLHo9L15b''@;'; + put 'put ''YS16QS1aXVwuXC5bYS16QS1aXSg/OlwuXC4tP1xkKyk/JC8udGVzdChFZS5ib2R5KSxuZT1PfHx6LHRlPUVlLmJvZHkuaW5kZXhPZigiLCIpPj0wO2lmKCFuZSYmIXRlKXJldHVybiBFZS5wb3N0Lm1hdGNoKC8sLipcfS8pP2tlKFNlPUVlLnByZSsieyIrRWUuYm9keStOK0VlLnBvc3QpOltT''@;'; + put 'put ''ZV07aWYobmUpaGU9RWUuYm9keS5zcGxpdCgvXC5cLi8pO2Vsc2UgaWYoMT09PShoZT1vZShFZS5ib2R5KSkubGVuZ3RoJiYxPT09KGhlPWtlKGhlWzBdLCExKS5tYXAoY2UpKS5sZW5ndGgpcmV0dXJuKFY9RWUucG9zdC5sZW5ndGg/a2UoRWUucG9zdCwhMSk6WyIiXSkubWFwKGZ1bmN0aW9u''@;'; + put 'put ''KG10KXtyZXR1cm4gRWUucHJlK2hlWzBdK210fSk7dmFyIHgsUD1FZS5wcmUsVj1FZS5wb3N0Lmxlbmd0aD9rZShFZS5wb3N0LCExKTpbIiJdO2lmKG5lKXt2YXIgVD1KKGhlWzBdKSxTPUooaGVbMV0pLEY9TWF0aC5tYXgoaGVbMF0ubGVuZ3RoLGhlWzFdLmxlbmd0aCkseWU9Mz09aGUubGVu''@;'; + put 'put ''Z3RoP01hdGguYWJzKEooaGVbMl0pKToxLENlPXZlO1M8VCYmKHllKj0tMSxDZT1BZSk7dmFyIERlPWhlLnNvbWUoZGUpO3g9W107Zm9yKHZhciBQZT1UO0NlKFBlLFMpO1BlKz15ZSl7dmFyIFFlO2lmKHopIlxcIj09PShRZT1TdHJpbmcuZnJvbUNoYXJDb2RlKFBlKSkmJihRZT0iIik7ZWxz''@;'; + put 'put ''ZSBpZihRZT1TdHJpbmcoUGUpLERlKXt2YXIgJGU9Ri1RZS5sZW5ndGg7aWYoJGU+MCl7dmFyIGd0PW5ldyBBcnJheSgkZSsxKS5qb2luKCIwIik7UWU9UGU8MD8iLSIrZ3QrUWUuc2xpY2UoMSk6Z3QrUWV9fXgucHVzaChRZSl9fWVsc2UgeD1pZShoZSxmdW5jdGlvbihtdCl7cmV0dXJuIGtl''@;'; + put 'put ''KG10LCExKX0pO2Zvcih2YXIgd3Q9MDt3dDx4Lmxlbmd0aDt3dCsrKWZvcih2YXIgdnQ9MDt2dDxWLmxlbmd0aDt2dCsrKXt2YXIgQXQ9UCt4W3d0XStWW3Z0XTsoIUllfHxuZXx8QXQpJiZUZS5wdXNoKEF0KX1yZXR1cm4gVGV9fSw5OTMxOihVLFEsWik9Pnt2YXIgaWU7ZnVuY3Rpb24gbGUo''@;'; + put 'put ''Vyl7dGhpcy5yYW5kPVd9aWYoVS5leHBvcnRzPWZ1bmN0aW9uKFcpe3JldHVybiBpZXx8KGllPW5ldyBsZShudWxsKSksaWUuZ2VuZXJhdGUoVyl9LFUuZXhwb3J0cy5SYW5kPWxlLGxlLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbihXKXtyZXR1cm4gdGhpcy5fcmFuZChXKX0sbGUucHJv''@;'; + put 'put ''dG90eXBlLl9yYW5kPWZ1bmN0aW9uKFcpe2lmKHRoaXMucmFuZC5nZXRCeXRlcylyZXR1cm4gdGhpcy5yYW5kLmdldEJ5dGVzKFcpO2Zvcih2YXIgTj1uZXcgVWludDhBcnJheShXKSxlZT0wO2VlPE4ubGVuZ3RoO2VlKyspTltlZV09dGhpcy5yYW5kLmdldEJ5dGUoKTtyZXR1cm4gTn0sIm9i''@;'; + put 'put ''amVjdCI9PXR5cGVvZiBzZWxmKXNlbGYuY3J5cHRvJiZzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXM/bGUucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKFcpe3ZhciBOPW5ldyBVaW50OEFycmF5KFcpO3JldHVybiBzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoTiksTn06c2VsZi5tc0Ny''@;'; + put 'put ''eXB0byYmc2VsZi5tc0NyeXB0by5nZXRSYW5kb21WYWx1ZXM/bGUucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKFcpe3ZhciBOPW5ldyBVaW50OEFycmF5KFcpO3JldHVybiBzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyhOKSxOfToib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmKGxlLnBy''@;'; + put 'put ''b3RvdHlwZS5fcmFuZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIHlldCIpfSk7ZWxzZSB0cnl7dmFyIFk9Wig5MjE0KTtpZigiZnVuY3Rpb24iIT10eXBlb2YgWS5yYW5kb21CeXRlcyl0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQiKTtsZS5wcm90''@;'; + put 'put ''b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oVyl7cmV0dXJuIFkucmFuZG9tQnl0ZXMoVyl9fWNhdGNoKFcpe319LDQ0OTc6KFUsUSxaKT0+e3ZhciBpZT1aKDk1MDkpLkJ1ZmZlcjtmdW5jdGlvbiBsZShKKXtpZS5pc0J1ZmZlcihKKXx8KEo9aWUuZnJvbShKKSk7Zm9yKHZhciBzZT1KLmxlbmd0aC80''@;'; + put 'put ''fDAsb2U9bmV3IEFycmF5KHNlKSxjZT0wO2NlPHNlO2NlKyspb2VbY2VdPUoucmVhZFVJbnQzMkJFKDQqY2UpO3JldHVybiBvZX1mdW5jdGlvbiBZKEope2Zvcig7MDxKLmxlbmd0aDtKKyspSlswXT0wfWZ1bmN0aW9uIFcoSixzZSxvZSxjZSxkZSl7Zm9yKHZhciB2ZSxBZSxrZSxTZSxJZT1v''@;'; + put 'put ''ZVswXSxUZT1vZVsxXSxFZT1vZVsyXSxoZT1vZVszXSxPPUpbMF1ec2VbMF0sej1KWzFdXnNlWzFdLG5lPUpbMl1ec2VbMl0sdGU9SlszXV5zZVszXSx4PTQsUD0xO1A8ZGU7UCsrKXZlPUllW08+Pj4yNF1eVGVbej4+PjE2JjI1NV1eRWVbbmU+Pj44JjI1NV1eaGVbMjU1JnRlXV5zZVt4Kytd''@;'; + put 'put ''LEFlPUllW3o+Pj4yNF1eVGVbbmU+Pj4xNiYyNTVdXkVlW3RlPj4+OCYyNTVdXmhlWzI1NSZPXV5zZVt4KytdLGtlPUllW25lPj4+MjRdXlRlW3RlPj4+MTYmMjU1XV5FZVtPPj4+OCYyNTVdXmhlWzI1NSZ6XV5zZVt4KytdLFNlPUllW3RlPj4+MjRdXlRlW08+Pj4xNiYyNTVdXkVlW3o+Pj44''@;'; + put 'put ''JjI1NV1eaGVbMjU1Jm5lXV5zZVt4KytdLE89dmUsej1BZSxuZT1rZSx0ZT1TZTtyZXR1cm4gdmU9KGNlW08+Pj4yNF08PDI0fGNlW3o+Pj4xNiYyNTVdPDwxNnxjZVtuZT4+PjgmMjU1XTw8OHxjZVsyNTUmdGVdKV5zZVt4KytdLEFlPShjZVt6Pj4+MjRdPDwyNHxjZVtuZT4+PjE2JjI1NV08''@;'; + put 'put ''PDE2fGNlW3RlPj4+OCYyNTVdPDw4fGNlWzI1NSZPXSlec2VbeCsrXSxrZT0oY2VbbmU+Pj4yNF08PDI0fGNlW3RlPj4+MTYmMjU1XTw8MTZ8Y2VbTz4+PjgmMjU1XTw8OHxjZVsyNTUmel0pXnNlW3grK10sU2U9KGNlW3RlPj4+MjRdPDwyNHxjZVtPPj4+MTYmMjU1XTw8MTZ8Y2Vbej4+Pjgm''@;'; + put 'put ''MjU1XTw8OHxjZVsyNTUmbmVdKV5zZVt4KytdLFt2ZT4+Pj0wLEFlPj4+PTAsa2U+Pj49MCxTZT4+Pj0wXX12YXIgTj1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sZWU9ZnVuY3Rpb24oKXtmb3IodmFyIEo9bmV3IEFycmF5KDI1Niksc2U9MDtzZTwyNTY7c2UrKylKW3NlXT1zZTwx''@;'; + put 'put ''Mjg/c2U8PDE6c2U8PDFeMjgzO2Zvcih2YXIgb2U9W10sY2U9W10sZGU9W1tdLFtdLFtdLFtdXSx2ZT1bW10sW10sW10sW11dLEFlPTAsa2U9MCxTZT0wO1NlPDI1NjsrK1NlKXt2YXIgSWU9a2Vea2U8PDFea2U8PDJea2U8PDNea2U8PDQ7b2VbQWVdPUllPUllPj4+OF4yNTUmSWVeOTksY2Vb''@;'; + put 'put ''SWVdPUFlO3ZhciBUZT1KW0FlXSxFZT1KW1RlXSxoZT1KW0VlXSxPPTI1NypKW0llXV4xNjg0MzAwOCpJZTtkZVswXVtBZV09Tzw8MjR8Tz4+PjgsZGVbMV1bQWVdPU88PDE2fE8+Pj4xNixkZVsyXVtBZV09Tzw8OHxPPj4+MjQsZGVbM11bQWVdPU8sdmVbMF1bSWVdPShPPTE2ODQzMDA5Kmhl''@;'; + put 'put ''XjY1NTM3KkVlXjI1NypUZV4xNjg0MzAwOCpBZSk8PDI0fE8+Pj44LHZlWzFdW0llXT1PPDwxNnxPPj4+MTYsdmVbMl1bSWVdPU88PDh8Tz4+PjI0LHZlWzNdW0llXT1PLDA9PT1BZT9BZT1rZT0xOihBZT1UZV5KW0pbSltoZV5UZV1dXSxrZV49SltKW2tlXV0pfXJldHVybntTQk9YOm9lLElO''@;'; + put 'put ''Vl9TQk9YOmNlLFNVQl9NSVg6ZGUsSU5WX1NVQl9NSVg6dmV9fSgpO2Z1bmN0aW9uIHEoSil7dGhpcy5fa2V5PWxlKEopLHRoaXMuX3Jlc2V0KCl9cS5ibG9ja1NpemU9MTYscS5rZXlTaXplPTMyLHEucHJvdG90eXBlLmJsb2NrU2l6ZT1xLmJsb2NrU2l6ZSxxLnByb3RvdHlwZS5rZXlTaXpl''@;'; + put 'put ''PXEua2V5U2l6ZSxxLnByb3RvdHlwZS5fcmVzZXQ9ZnVuY3Rpb24oKXtmb3IodmFyIEo9dGhpcy5fa2V5LHNlPUoubGVuZ3RoLG9lPXNlKzYsY2U9NCoob2UrMSksZGU9W10sdmU9MDt2ZTxzZTt2ZSsrKWRlW3ZlXT1KW3ZlXTtmb3IodmU9c2U7dmU8Y2U7dmUrKyl7dmFyIEFlPWRlW3ZlLTFd''@;'; + put 'put ''O3ZlJXNlPT0wPyhBZT1lZS5TQk9YWyhBZT1BZTw8OHxBZT4+PjI0KT4+PjI0XTw8MjR8ZWUuU0JPWFtBZT4+PjE2JjI1NV08PDE2fGVlLlNCT1hbQWU+Pj44JjI1NV08PDh8ZWUuU0JPWFsyNTUmQWVdLEFlXj1OW3ZlL3NlfDBdPDwyNCk6c2U+NiYmdmUlc2U9PTQmJihBZT1lZS5TQk9YW0Fl''@;'; + put 'put ''Pj4+MjRdPDwyNHxlZS5TQk9YW0FlPj4+MTYmMjU1XTw8MTZ8ZWUuU0JPWFtBZT4+PjgmMjU1XTw8OHxlZS5TQk9YWzI1NSZBZV0pLGRlW3ZlXT1kZVt2ZS1zZV1eQWV9Zm9yKHZhciBrZT1bXSxTZT0wO1NlPGNlO1NlKyspe3ZhciBJZT1jZS1TZSxUZT1kZVtJZS0oU2UlND8wOjQpXTtrZVtT''@;'; + put 'put ''ZV09U2U8NHx8SWU8PTQ/VGU6ZWUuSU5WX1NVQl9NSVhbMF1bZWUuU0JPWFtUZT4+PjI0XV1eZWUuSU5WX1NVQl9NSVhbMV1bZWUuU0JPWFtUZT4+PjE2JjI1NV1dXmVlLklOVl9TVUJfTUlYWzJdW2VlLlNCT1hbVGU+Pj44JjI1NV1dXmVlLklOVl9TVUJfTUlYWzNdW2VlLlNCT1hbMjU1JlRl''@;'; + put 'put ''XV19dGhpcy5fblJvdW5kcz1vZSx0aGlzLl9rZXlTY2hlZHVsZT1kZSx0aGlzLl9pbnZLZXlTY2hlZHVsZT1rZX0scS5wcm90b3R5cGUuZW5jcnlwdEJsb2NrUmF3PWZ1bmN0aW9uKEope3JldHVybiBXKEo9bGUoSiksdGhpcy5fa2V5U2NoZWR1bGUsZWUuU1VCX01JWCxlZS5TQk9YLHRoaXMu''@;'; + put 'put ''X25Sb3VuZHMpfSxxLnByb3RvdHlwZS5lbmNyeXB0QmxvY2s9ZnVuY3Rpb24oSil7dmFyIHNlPXRoaXMuZW5jcnlwdEJsb2NrUmF3KEopLG9lPWllLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gb2Uud3JpdGVVSW50MzJCRShzZVswXSwwKSxvZS53cml0ZVVJbnQzMkJFKHNlWzFdLDQpLG9lLndy''@;'; + put 'put ''aXRlVUludDMyQkUoc2VbMl0sOCksb2Uud3JpdGVVSW50MzJCRShzZVszXSwxMiksb2V9LHEucHJvdG90eXBlLmRlY3J5cHRCbG9jaz1mdW5jdGlvbihKKXt2YXIgc2U9KEo9bGUoSikpWzFdO0pbMV09SlszXSxKWzNdPXNlO3ZhciBvZT1XKEosdGhpcy5faW52S2V5U2NoZWR1bGUsZWUuSU5W''@;'; + put 'put ''X1NVQl9NSVgsZWUuSU5WX1NCT1gsdGhpcy5fblJvdW5kcyksY2U9aWUuYWxsb2NVbnNhZmUoMTYpO3JldHVybiBjZS53cml0ZVVJbnQzMkJFKG9lWzBdLDApLGNlLndyaXRlVUludDMyQkUob2VbM10sNCksY2Uud3JpdGVVSW50MzJCRShvZVsyXSw4KSxjZS53cml0ZVVJbnQzMkJFKG9lWzFd''@;'; + put 'put ''LDEyKSxjZX0scS5wcm90b3R5cGUuc2NydWI9ZnVuY3Rpb24oKXtZKHRoaXMuX2tleVNjaGVkdWxlKSxZKHRoaXMuX2ludktleVNjaGVkdWxlKSxZKHRoaXMuX2tleSl9LFUuZXhwb3J0cy5BRVM9cX0sNDg0ODooVSxRLFopPT57dmFyIGllPVooNDQ5NyksbGU9Wig5NTA5KS5CdWZmZXIsWT1a''@;'; + put 'put ''KDEwMjcpLFc9Wig1NzE3KSxOPVooMzI4OCksZWU9Wig3Mjk1KSxxPVooNjg1KTtmdW5jdGlvbiBKKHNlLG9lLGNlLGRlKXtZLmNhbGwodGhpcyk7dmFyIHZlPWxlLmFsbG9jKDQsMCk7dGhpcy5fY2lwaGVyPW5ldyBpZS5BRVMob2UpO3ZhciBBZT10aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2Nr''@;'; + put 'put ''KHZlKTt0aGlzLl9naGFzaD1uZXcgTihBZSksY2U9ZnVuY3Rpb24oa2UsU2UsSWUpe2lmKDEyPT09U2UubGVuZ3RoKXJldHVybiBrZS5fZmluSUQ9bGUuY29uY2F0KFtTZSxsZS5mcm9tKFswLDAsMCwxXSldKSxsZS5jb25jYXQoW1NlLGxlLmZyb20oWzAsMCwwLDJdKV0pO3ZhciBUZT1uZXcg''@;'; + put 'put ''TihJZSksRWU9U2UubGVuZ3RoLGhlPUVlJTE2O1RlLnVwZGF0ZShTZSksaGUmJlRlLnVwZGF0ZShsZS5hbGxvYyhoZT0xNi1oZSwwKSksVGUudXBkYXRlKGxlLmFsbG9jKDgsMCkpO3ZhciBPPTgqRWUsej1sZS5hbGxvYyg4KTt6LndyaXRlVUludEJFKE8sMCw4KSxUZS51cGRhdGUoeiksa2Uu''@;'; + put 'put ''X2ZpbklEPVRlLnN0YXRlO3ZhciBuZT1sZS5mcm9tKGtlLl9maW5JRCk7cmV0dXJuIHEobmUpLG5lfSh0aGlzLGNlLEFlKSx0aGlzLl9wcmV2PWxlLmZyb20oY2UpLHRoaXMuX2NhY2hlPWxlLmFsbG9jVW5zYWZlKDApLHRoaXMuX3NlY0NhY2hlPWxlLmFsbG9jVW5zYWZlKDApLHRoaXMuX2Rl''@;'; + put 'put ''Y3J5cHQ9ZGUsdGhpcy5fYWxlbj0wLHRoaXMuX2xlbj0wLHRoaXMuX21vZGU9c2UsdGhpcy5fYXV0aFRhZz1udWxsLHRoaXMuX2NhbGxlZD0hMX1XKEosWSksSi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihzZSl7aWYoIXRoaXMuX2NhbGxlZCYmdGhpcy5fYWxlbil7dmFyIG9lPTE2LXRo''@;'; + put 'put ''aXMuX2FsZW4lMTY7b2U8MTYmJihvZT1sZS5hbGxvYyhvZSwwKSx0aGlzLl9naGFzaC51cGRhdGUob2UpKX10aGlzLl9jYWxsZWQ9ITA7dmFyIGNlPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLHNlKTtyZXR1cm4gdGhpcy5fZ2hhc2gudXBkYXRlKHRoaXMuX2RlY3J5cHQ/c2U6Y2UpLHRoaXMu''@;'; + put 'put ''X2xlbis9c2UubGVuZ3RoLGNlfSxKLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXtpZih0aGlzLl9kZWNyeXB0JiYhdGhpcy5fYXV0aFRhZyl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YSIpO3ZhciBzZT1lZSh0aGlz''@;'; + put 'put ''Ll9naGFzaC5maW5hbCg4KnRoaXMuX2FsZW4sOCp0aGlzLl9sZW4pLHRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodGhpcy5fZmluSUQpKTtpZih0aGlzLl9kZWNyeXB0JiZmdW5jdGlvbihvZSxjZSl7dmFyIGRlPTA7b2UubGVuZ3RoIT09Y2UubGVuZ3RoJiZkZSsrO2Zvcih2YXIgdmU9TWF0''@;'; + put 'put ''aC5taW4ob2UubGVuZ3RoLGNlLmxlbmd0aCksQWU9MDtBZTx2ZTsrK0FlKWRlKz1vZVtBZV1eY2VbQWVdO3JldHVybiBkZX0oc2UsdGhpcy5fYXV0aFRhZykpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBzdGF0ZSBvciB1bmFibGUgdG8gYXV0aGVudGljYXRlIGRhdGEiKTt0aGlzLl9h''@;'; + put 'put ''dXRoVGFnPXNlLHRoaXMuX2NpcGhlci5zY3J1YigpfSxKLnByb3RvdHlwZS5nZXRBdXRoVGFnPWZ1bmN0aW9uKCl7aWYodGhpcy5fZGVjcnlwdHx8IWxlLmlzQnVmZmVyKHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBw''@;'; + put 'put ''b3J0ZWQgc3RhdGUiKTtyZXR1cm4gdGhpcy5fYXV0aFRhZ30sSi5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbihzZSl7aWYoIXRoaXMuX2RlY3J5cHQpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0aW5nIHRvIHNldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpO3RoaXMuX2F1''@;'; + put 'put ''dGhUYWc9c2V9LEoucHJvdG90eXBlLnNldEFBRD1mdW5jdGlvbihzZSl7aWYodGhpcy5fY2FsbGVkKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgQUFEIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fZ2hhc2gudXBkYXRlKHNlKSx0aGlzLl9hbGVuKz1zZS5sZW5ndGh9''@;'; + put 'put ''LFUuZXhwb3J0cz1KfSw0Njk2OihVLFEsWik9Pnt2YXIgaWU9WigxNDk0KSxsZT1aKDYxOTMpLFk9Wig0OTQ2KTtRLmNyZWF0ZUNpcGhlcj1RLkNpcGhlcj1pZS5jcmVhdGVDaXBoZXIsUS5jcmVhdGVDaXBoZXJpdj1RLkNpcGhlcml2PWllLmNyZWF0ZUNpcGhlcml2LFEuY3JlYXRlRGVjaXBo''@;'; + put 'put ''ZXI9US5EZWNpcGhlcj1sZS5jcmVhdGVEZWNpcGhlcixRLmNyZWF0ZURlY2lwaGVyaXY9US5EZWNpcGhlcml2PWxlLmNyZWF0ZURlY2lwaGVyaXYsUS5saXN0Q2lwaGVycz1RLmdldENpcGhlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMoWSl9fSw2MTkzOihVLFEsWik9Pnt2YXIg''@;'; + put 'put ''aWU9Wig0ODQ4KSxsZT1aKDk1MDkpLkJ1ZmZlcixZPVooNDUpLFc9Wig1OTY5KSxOPVooMTAyNyksZWU9Wig0NDk3KSxxPVooMzA0OCk7ZnVuY3Rpb24gSihjZSxkZSx2ZSl7Ti5jYWxsKHRoaXMpLHRoaXMuX2NhY2hlPW5ldyBzZSx0aGlzLl9sYXN0PXZvaWQgMCx0aGlzLl9jaXBoZXI9bmV3''@;'; + put 'put ''IGVlLkFFUyhkZSksdGhpcy5fcHJldj1sZS5mcm9tKHZlKSx0aGlzLl9tb2RlPWNlLHRoaXMuX2F1dG9wYWRkaW5nPSEwfWZ1bmN0aW9uIHNlKCl7dGhpcy5jYWNoZT1sZS5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBvZShjZSxkZSx2ZSl7dmFyIEFlPVlbY2UudG9Mb3dlckNhc2UoKV07aWYo''@;'; + put 'put ''IUFlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO2lmKCJzdHJpbmciPT10eXBlb2YgdmUmJih2ZT1sZS5mcm9tKHZlKSksIkdDTSIhPT1BZS5tb2RlJiZ2ZS5sZW5ndGghPT1BZS5pdil0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGl2IGxlbmd0aCAiK3Zl''@;'; + put 'put ''Lmxlbmd0aCk7aWYoInN0cmluZyI9PXR5cGVvZiBkZSYmKGRlPWxlLmZyb20oZGUpKSxkZS5sZW5ndGghPT1BZS5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGtleSBsZW5ndGggIitkZS5sZW5ndGgpO3JldHVybiJzdHJlYW0iPT09QWUudHlwZT9uZXcgVyhBZS5tb2R1bGUs''@;'; + put 'put ''ZGUsdmUsITApOiJhdXRoIj09PUFlLnR5cGU/bmV3IGllKEFlLm1vZHVsZSxkZSx2ZSwhMCk6bmV3IEooQWUubW9kdWxlLGRlLHZlKX1aKDU3MTcpKEosTiksSi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihjZSl7dmFyIGRlLHZlO3RoaXMuX2NhY2hlLmFkZChjZSk7Zm9yKHZhciBBZT1b''@;'; + put 'put ''XTtkZT10aGlzLl9jYWNoZS5nZXQodGhpcy5fYXV0b3BhZGRpbmcpOyl2ZT10aGlzLl9tb2RlLmRlY3J5cHQodGhpcyxkZSksQWUucHVzaCh2ZSk7cmV0dXJuIGxlLmNvbmNhdChBZSl9LEoucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBjZT10aGlzLl9jYWNoZS5mbHVzaCgpO2lm''@;'; + put 'put ''KHRoaXMuX2F1dG9wYWRkaW5nKXJldHVybiBmdW5jdGlvbihkZSl7dmFyIHZlPWRlWzE1XTtpZih2ZTwxfHx2ZT4xNil0aHJvdyBuZXcgRXJyb3IoInVuYWJsZSB0byBkZWNyeXB0IGRhdGEiKTtmb3IodmFyIEFlPS0xOysrQWU8dmU7KWlmKGRlW0FlKygxNi12ZSldIT09dmUpdGhyb3cgbmV3''@;'; + put 'put ''IEVycm9yKCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7aWYoMTYhPT12ZSlyZXR1cm4gZGUuc2xpY2UoMCwxNi12ZSl9KHRoaXMuX21vZGUuZGVjcnlwdCh0aGlzLGNlKSk7aWYoY2UpdGhyb3cgbmV3IEVycm9yKCJkYXRhIG5vdCBtdWx0aXBsZSBvZiBibG9jayBsZW5ndGgiKX0sSi5wcm90''@;'; + put 'put ''b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24oY2Upe3JldHVybiB0aGlzLl9hdXRvcGFkZGluZz0hIWNlLHRoaXN9LHNlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oY2Upe3RoaXMuY2FjaGU9bGUuY29uY2F0KFt0aGlzLmNhY2hlLGNlXSl9LHNlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24o''@;'; + put 'put ''Y2Upe3ZhciBkZTtpZihjZSl7aWYodGhpcy5jYWNoZS5sZW5ndGg+MTYpcmV0dXJuIGRlPXRoaXMuY2FjaGUuc2xpY2UoMCwxNiksdGhpcy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSxkZX1lbHNlIGlmKHRoaXMuY2FjaGUubGVuZ3RoPj0xNilyZXR1cm4gZGU9dGhpcy5jYWNoZS5zbGlj''@;'; + put 'put ''ZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLGRlO3JldHVybiBudWxsfSxzZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtpZih0aGlzLmNhY2hlLmxlbmd0aClyZXR1cm4gdGhpcy5jYWNoZX0sUS5jcmVhdGVEZWNpcGhlcj1mdW5jdGlvbihjZSxkZSl7dmFyIHZl''@;'; + put 'put ''PVlbY2UudG9Mb3dlckNhc2UoKV07aWYoIXZlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO3ZhciBBZT1xKGRlLCExLHZlLmtleSx2ZS5pdik7cmV0dXJuIG9lKGNlLEFlLmtleSxBZS5pdil9LFEuY3JlYXRlRGVjaXBoZXJpdj1vZX0sMTQ5NDooVSxRLFopPT57''@;'; + put 'put ''dmFyIGllPVooNDUpLGxlPVooNDg0OCksWT1aKDk1MDkpLkJ1ZmZlcixXPVooNTk2OSksTj1aKDEwMjcpLGVlPVooNDQ5NykscT1aKDMwNDgpO2Z1bmN0aW9uIEooZGUsdmUsQWUpe04uY2FsbCh0aGlzKSx0aGlzLl9jYWNoZT1uZXcgb2UsdGhpcy5fY2lwaGVyPW5ldyBlZS5BRVModmUpLHRo''@;'; + put 'put ''aXMuX3ByZXY9WS5mcm9tKEFlKSx0aGlzLl9tb2RlPWRlLHRoaXMuX2F1dG9wYWRkaW5nPSEwfVooNTcxNykoSixOKSxKLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGRlKXt2YXIgdmUsQWU7dGhpcy5fY2FjaGUuYWRkKGRlKTtmb3IodmFyIGtlPVtdO3ZlPXRoaXMuX2NhY2hlLmdldCgp''@;'; + put 'put ''OylBZT10aGlzLl9tb2RlLmVuY3J5cHQodGhpcyx2ZSksa2UucHVzaChBZSk7cmV0dXJuIFkuY29uY2F0KGtlKX07dmFyIHNlPVkuYWxsb2MoMTYsMTYpO2Z1bmN0aW9uIG9lKCl7dGhpcy5jYWNoZT1ZLmFsbG9jVW5zYWZlKDApfWZ1bmN0aW9uIGNlKGRlLHZlLEFlKXt2YXIga2U9aWVbZGUu''@;'; + put 'put ''dG9Mb3dlckNhc2UoKV07aWYoIWtlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO2lmKCJzdHJpbmciPT10eXBlb2YgdmUmJih2ZT1ZLmZyb20odmUpKSx2ZS5sZW5ndGghPT1rZS5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGtleSBsZW5ndGgg''@;'; + put 'put ''Iit2ZS5sZW5ndGgpO2lmKCJzdHJpbmciPT10eXBlb2YgQWUmJihBZT1ZLmZyb20oQWUpKSwiR0NNIiE9PWtlLm1vZGUmJkFlLmxlbmd0aCE9PWtlLml2KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgaXYgbGVuZ3RoICIrQWUubGVuZ3RoKTtyZXR1cm4ic3RyZWFtIj09PWtlLnR5cGU/''@;'; + put 'put ''bmV3IFcoa2UubW9kdWxlLHZlLEFlKToiYXV0aCI9PT1rZS50eXBlP25ldyBsZShrZS5tb2R1bGUsdmUsQWUpOm5ldyBKKGtlLm1vZHVsZSx2ZSxBZSl9Si5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIGRlPXRoaXMuX2NhY2hlLmZsdXNoKCk7aWYodGhpcy5fYXV0b3BhZGRpbmcp''@;'; + put 'put ''cmV0dXJuIGRlPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLGRlKSx0aGlzLl9jaXBoZXIuc2NydWIoKSxkZTtpZighZGUuZXF1YWxzKHNlKSl0aHJvdyB0aGlzLl9jaXBoZXIuc2NydWIoKSxuZXcgRXJyb3IoImRhdGEgbm90IG11bHRpcGxlIG9mIGJsb2NrIGxlbmd0aCIpfSxKLnByb3RvdHlw''@;'; + put 'put ''ZS5zZXRBdXRvUGFkZGluZz1mdW5jdGlvbihkZSl7cmV0dXJuIHRoaXMuX2F1dG9wYWRkaW5nPSEhZGUsdGhpc30sb2UucHJvdG90eXBlLmFkZD1mdW5jdGlvbihkZSl7dGhpcy5jYWNoZT1ZLmNvbmNhdChbdGhpcy5jYWNoZSxkZV0pfSxvZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7aWYo''@;'; + put 'put ''dGhpcy5jYWNoZS5sZW5ndGg+MTUpe3ZhciBkZT10aGlzLmNhY2hlLnNsaWNlKDAsMTYpO3JldHVybiB0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLGRlfXJldHVybiBudWxsfSxvZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIGRlPTE2LXRoaXMuY2FjaGUubGVu''@;'; + put 'put ''Z3RoLHZlPVkuYWxsb2NVbnNhZmUoZGUpLEFlPS0xOysrQWU8ZGU7KXZlLndyaXRlVUludDgoZGUsQWUpO3JldHVybiBZLmNvbmNhdChbdGhpcy5jYWNoZSx2ZV0pfSxRLmNyZWF0ZUNpcGhlcml2PWNlLFEuY3JlYXRlQ2lwaGVyPWZ1bmN0aW9uKGRlLHZlKXt2YXIgQWU9aWVbZGUudG9Mb3dl''@;'; + put 'put ''ckNhc2UoKV07aWYoIUFlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO3ZhciBrZT1xKHZlLCExLEFlLmtleSxBZS5pdik7cmV0dXJuIGNlKGRlLGtlLmtleSxrZS5pdil9fSwzMjg4OihVLFEsWik9Pnt2YXIgaWU9Wig5NTA5KS5CdWZmZXIsbGU9aWUuYWxsb2Mo''@;'; + put 'put ''MTYsMCk7ZnVuY3Rpb24gWShOKXt2YXIgZWU9aWUuYWxsb2NVbnNhZmUoMTYpO3JldHVybiBlZS53cml0ZVVJbnQzMkJFKE5bMF0+Pj4wLDApLGVlLndyaXRlVUludDMyQkUoTlsxXT4+PjAsNCksZWUud3JpdGVVSW50MzJCRShOWzJdPj4+MCw4KSxlZS53cml0ZVVJbnQzMkJFKE5bM10+Pj4w''@;'; + put 'put ''LDEyKSxlZX1mdW5jdGlvbiBXKE4pe3RoaXMuaD1OLHRoaXMuc3RhdGU9aWUuYWxsb2MoMTYsMCksdGhpcy5jYWNoZT1pZS5hbGxvY1Vuc2FmZSgwKX1XLnByb3RvdHlwZS5naGFzaD1mdW5jdGlvbihOKXtmb3IodmFyIGVlPS0xOysrZWU8Ti5sZW5ndGg7KXRoaXMuc3RhdGVbZWVdXj1OW2Vl''@;'; + put 'put ''XTt0aGlzLl9tdWx0aXBseSgpfSxXLnByb3RvdHlwZS5fbXVsdGlwbHk9ZnVuY3Rpb24oKXtmb3IodmFyIE4sZWUscSxKPVsoTj10aGlzLmgpLnJlYWRVSW50MzJCRSgwKSxOLnJlYWRVSW50MzJCRSg0KSxOLnJlYWRVSW50MzJCRSg4KSxOLnJlYWRVSW50MzJCRSgxMildLHNlPVswLDAsMCww''@;'; + put 'put ''XSxvZT0tMTsrK29lPDEyODspe2ZvcigwIT0odGhpcy5zdGF0ZVt+fihvZS84KV0mMTw8Ny1vZSU4KSYmKHNlWzBdXj1KWzBdLHNlWzFdXj1KWzFdLHNlWzJdXj1KWzJdLHNlWzNdXj1KWzNdKSxxPTAhPSgxJkpbM10pLGVlPTM7ZWU+MDtlZS0tKUpbZWVdPUpbZWVdPj4+MXwoMSZKW2VlLTFd''@;'; + put 'put ''KTw8MzE7SlswXT1KWzBdPj4+MSxxJiYoSlswXT0tNTIwMDkzNjk2XkpbMF0pfXRoaXMuc3RhdGU9WShzZSl9LFcucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihOKXt2YXIgZWU7Zm9yKHRoaXMuY2FjaGU9aWUuY29uY2F0KFt0aGlzLmNhY2hlLE5dKTt0aGlzLmNhY2hlLmxlbmd0aD49MTY7''@;'; + put 'put ''KWVlPXRoaXMuY2FjaGUuc2xpY2UoMCwxNiksdGhpcy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSx0aGlzLmdoYXNoKGVlKX0sVy5wcm90b3R5cGUuZmluYWw9ZnVuY3Rpb24oTixlZSl7cmV0dXJuIHRoaXMuY2FjaGUubGVuZ3RoJiZ0aGlzLmdoYXNoKGllLmNvbmNhdChbdGhpcy5jYWNo''@;'; + put 'put ''ZSxsZV0sMTYpKSx0aGlzLmdoYXNoKFkoWzAsTiwwLGVlXSkpLHRoaXMuc3RhdGV9LFUuZXhwb3J0cz1XfSw2ODU6VT0+e1UuZXhwb3J0cz1mdW5jdGlvbihRKXtmb3IodmFyIFosaWU9US5sZW5ndGg7aWUtLTspe2lmKDI1NSE9PShaPVEucmVhZFVJbnQ4KGllKSkpe1orKyxRLndyaXRlVUlu''@;'; + put 'put ''dDgoWixpZSk7YnJlYWt9US53cml0ZVVJbnQ4KDAsaWUpfX19LDUyOTI6KFUsUSxaKT0+e3ZhciBpZT1aKDcyOTUpO1EuZW5jcnlwdD1mdW5jdGlvbihsZSxZKXt2YXIgVz1pZShZLGxlLl9wcmV2KTtyZXR1cm4gbGUuX3ByZXY9bGUuX2NpcGhlci5lbmNyeXB0QmxvY2soVyksbGUuX3ByZXZ9''@;'; + put 'put ''LFEuZGVjcnlwdD1mdW5jdGlvbihsZSxZKXt2YXIgVz1sZS5fcHJldjtsZS5fcHJldj1ZO3ZhciBOPWxlLl9jaXBoZXIuZGVjcnlwdEJsb2NrKFkpO3JldHVybiBpZShOLFcpfX0sNjMxMTooVSxRLFopPT57dmFyIGllPVooOTUwOSkuQnVmZmVyLGxlPVooNzI5NSk7ZnVuY3Rpb24gWShXLE4s''@;'; + put 'put ''ZWUpe3ZhciBxPU4ubGVuZ3RoLEo9bGUoTixXLl9jYWNoZSk7cmV0dXJuIFcuX2NhY2hlPVcuX2NhY2hlLnNsaWNlKHEpLFcuX3ByZXY9aWUuY29uY2F0KFtXLl9wcmV2LGVlP046Sl0pLEp9US5lbmNyeXB0PWZ1bmN0aW9uKFcsTixlZSl7Zm9yKHZhciBxLEo9aWUuYWxsb2NVbnNhZmUoMCk7''@;'; + put 'put ''Ti5sZW5ndGg7KXtpZigwPT09Vy5fY2FjaGUubGVuZ3RoJiYoVy5fY2FjaGU9Vy5fY2lwaGVyLmVuY3J5cHRCbG9jayhXLl9wcmV2KSxXLl9wcmV2PWllLmFsbG9jVW5zYWZlKDApKSwhKFcuX2NhY2hlLmxlbmd0aDw9Ti5sZW5ndGgpKXtKPWllLmNvbmNhdChbSixZKFcsTixlZSldKTticmVh''@;'; + put 'put ''a31KPWllLmNvbmNhdChbSixZKFcsTi5zbGljZSgwLHE9Vy5fY2FjaGUubGVuZ3RoKSxlZSldKSxOPU4uc2xpY2UocSl9cmV0dXJuIEp9fSwxNTEwOihVLFEsWik9Pnt2YXIgaWU9Wig5NTA5KS5CdWZmZXI7ZnVuY3Rpb24gbGUoVyxOLGVlKXtmb3IodmFyIHEsSixzZT0tMSxvZT0wOysrc2U8''@;'; + put 'put ''ODspcT1OJjE8PDctc2U/MTI4OjAsb2UrPSgxMjgmKEo9Vy5fY2lwaGVyLmVuY3J5cHRCbG9jayhXLl9wcmV2KVswXV5xKSk+PnNlJTgsVy5fcHJldj1ZKFcuX3ByZXYsZWU/cTpKKTtyZXR1cm4gb2V9ZnVuY3Rpb24gWShXLE4pe3ZhciBlZT1XLmxlbmd0aCxxPS0xLEo9aWUuYWxsb2NVbnNh''@;'; + put 'put ''ZmUoVy5sZW5ndGgpO2ZvcihXPWllLmNvbmNhdChbVyxpZS5mcm9tKFtOXSldKTsrK3E8ZWU7KUpbcV09V1txXTw8MXxXW3ErMV0+Pjc7cmV0dXJuIEp9US5lbmNyeXB0PWZ1bmN0aW9uKFcsTixlZSl7Zm9yKHZhciBxPU4ubGVuZ3RoLEo9aWUuYWxsb2NVbnNhZmUocSksc2U9LTE7KytzZTxx''@;'; + put 'put ''OylKW3NlXT1sZShXLE5bc2VdLGVlKTtyZXR1cm4gSn19LDE5NjQ6KFUsUSxaKT0+e3ZhciBpZT1aKDk1MDkpLkJ1ZmZlcjtmdW5jdGlvbiBsZShZLFcsTil7dmFyIGVlPVkuX2NpcGhlci5lbmNyeXB0QmxvY2soWS5fcHJldilbMF1eVztyZXR1cm4gWS5fcHJldj1pZS5jb25jYXQoW1kuX3By''@;'; + put 'put ''ZXYuc2xpY2UoMSksaWUuZnJvbShbTj9XOmVlXSldKSxlZX1RLmVuY3J5cHQ9ZnVuY3Rpb24oWSxXLE4pe2Zvcih2YXIgZWU9Vy5sZW5ndGgscT1pZS5hbGxvY1Vuc2FmZShlZSksSj0tMTsrK0o8ZWU7KXFbSl09bGUoWSxXW0pdLE4pO3JldHVybiBxfX0sNjAwOTooVSxRLFopPT57dmFyIGll''@;'; + put 'put ''PVooNzI5NSksbGU9Wig5NTA5KS5CdWZmZXIsWT1aKDY4NSk7ZnVuY3Rpb24gVyhOKXt2YXIgZWU9Ti5fY2lwaGVyLmVuY3J5cHRCbG9ja1JhdyhOLl9wcmV2KTtyZXR1cm4gWShOLl9wcmV2KSxlZX1RLmVuY3J5cHQ9ZnVuY3Rpb24oTixlZSl7dmFyIHE9TWF0aC5jZWlsKGVlLmxlbmd0aC8x''@;'; + put 'put ''NiksSj1OLl9jYWNoZS5sZW5ndGg7Ti5fY2FjaGU9bGUuY29uY2F0KFtOLl9jYWNoZSxsZS5hbGxvY1Vuc2FmZSgxNipxKV0pO2Zvcih2YXIgc2U9MDtzZTxxO3NlKyspe3ZhciBvZT1XKE4pLGNlPUorMTYqc2U7Ti5fY2FjaGUud3JpdGVVSW50MzJCRShvZVswXSxjZSswKSxOLl9jYWNoZS53''@;'; + put 'put ''cml0ZVVJbnQzMkJFKG9lWzFdLGNlKzQpLE4uX2NhY2hlLndyaXRlVUludDMyQkUob2VbMl0sY2UrOCksTi5fY2FjaGUud3JpdGVVSW50MzJCRShvZVszXSxjZSsxMil9dmFyIGRlPU4uX2NhY2hlLnNsaWNlKDAsZWUubGVuZ3RoKTtyZXR1cm4gTi5fY2FjaGU9Ti5fY2FjaGUuc2xpY2UoZWUu''@;'; + put 'put ''bGVuZ3RoKSxpZShlZSxkZSl9fSwxMDg0OihVLFEpPT57US5lbmNyeXB0PWZ1bmN0aW9uKFosaWUpe3JldHVybiBaLl9jaXBoZXIuZW5jcnlwdEJsb2NrKGllKX0sUS5kZWNyeXB0PWZ1bmN0aW9uKFosaWUpe3JldHVybiBaLl9jaXBoZXIuZGVjcnlwdEJsb2NrKGllKX19LDQ1OihVLFEsWik9''@;'; + put 'put ''Pnt2YXIgaWU9e0VDQjpaKDEwODQpLENCQzpaKDUyOTIpLENGQjpaKDYzMTEpLENGQjg6WigxOTY0KSxDRkIxOlooMTUxMCksT0ZCOlooODg2MSksQ1RSOlooNjAwOSksR0NNOlooNjAwOSl9LGxlPVooNDk0Nik7Zm9yKHZhciBZIGluIGxlKWxlW1ldLm1vZHVsZT1pZVtsZVtZXS5tb2RlXTtV''@;'; + put 'put ''LmV4cG9ydHM9bGV9LDg4NjE6KFUsUSxaKT0+e3ZhciBpZT1aKDg3NjQpLkJ1ZmZlcixsZT1aKDcyOTUpO2Z1bmN0aW9uIFkoVyl7cmV0dXJuIFcuX3ByZXY9Vy5fY2lwaGVyLmVuY3J5cHRCbG9jayhXLl9wcmV2KSxXLl9wcmV2fVEuZW5jcnlwdD1mdW5jdGlvbihXLE4pe2Zvcig7Vy5fY2Fj''@;'; + put 'put ''aGUubGVuZ3RoPE4ubGVuZ3RoOylXLl9jYWNoZT1pZS5jb25jYXQoW1cuX2NhY2hlLFkoVyldKTt2YXIgZWU9Vy5fY2FjaGUuc2xpY2UoMCxOLmxlbmd0aCk7cmV0dXJuIFcuX2NhY2hlPVcuX2NhY2hlLnNsaWNlKE4ubGVuZ3RoKSxsZShOLGVlKX19LDU5Njk6KFUsUSxaKT0+e3ZhciBpZT1a''@;'; + put 'put ''KDQ0OTcpLGxlPVooOTUwOSkuQnVmZmVyLFk9WigxMDI3KTtmdW5jdGlvbiBXKE4sZWUscSxKKXtZLmNhbGwodGhpcyksdGhpcy5fY2lwaGVyPW5ldyBpZS5BRVMoZWUpLHRoaXMuX3ByZXY9bGUuZnJvbShxKSx0aGlzLl9jYWNoZT1sZS5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9zZWNDYWNoZT1s''@;'; + put 'put ''ZS5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PUosdGhpcy5fbW9kZT1OfVooNTcxNykoVyxZKSxXLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxOLHRoaXMuX2RlY3J5cHQpfSxXLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rp''@;'; + put 'put ''b24oKXt0aGlzLl9jaXBoZXIuc2NydWIoKX0sVS5leHBvcnRzPVd9LDM2MTQ6KFUsUSxaKT0+e3ZhciBpZT1aKDc2NjcpLGxlPVooNDY5NiksWT1aKDQ1KSxXPVooOTcxNSksTj1aKDMwNDgpO2Z1bmN0aW9uIGVlKEosc2Usb2Upe2lmKEo9Si50b0xvd2VyQ2FzZSgpLFlbSl0pcmV0dXJuIGxl''@;'; + put 'put ''LmNyZWF0ZUNpcGhlcml2KEosc2Usb2UpO2lmKFdbSl0pcmV0dXJuIG5ldyBpZSh7a2V5OnNlLGl2Om9lLG1vZGU6Sn0pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpfWZ1bmN0aW9uIHEoSixzZSxvZSl7aWYoSj1KLnRvTG93ZXJDYXNlKCksWVtKXSlyZXR1cm4g''@;'; + put 'put ''bGUuY3JlYXRlRGVjaXBoZXJpdihKLHNlLG9lKTtpZihXW0pdKXJldHVybiBuZXcgaWUoe2tleTpzZSxpdjpvZSxtb2RlOkosZGVjcnlwdDohMH0pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpfVEuY3JlYXRlQ2lwaGVyPVEuQ2lwaGVyPWZ1bmN0aW9uKEosc2Up''@;'; + put 'put ''e3ZhciBvZSxjZTtpZihKPUoudG9Mb3dlckNhc2UoKSxZW0pdKW9lPVlbSl0ua2V5LGNlPVlbSl0uaXY7ZWxzZXtpZighV1tKXSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtvZT04KldbSl0ua2V5LGNlPVdbSl0uaXZ9dmFyIGRlPU4oc2UsITEsb2UsY2UpO3Jl''@;'; + put 'put ''dHVybiBlZShKLGRlLmtleSxkZS5pdil9LFEuY3JlYXRlQ2lwaGVyaXY9US5DaXBoZXJpdj1lZSxRLmNyZWF0ZURlY2lwaGVyPVEuRGVjaXBoZXI9ZnVuY3Rpb24oSixzZSl7dmFyIG9lLGNlO2lmKEo9Si50b0xvd2VyQ2FzZSgpLFlbSl0pb2U9WVtKXS5rZXksY2U9WVtKXS5pdjtlbHNle2lm''@;'; + put 'put ''KCFXW0pdKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO29lPTgqV1tKXS5rZXksY2U9V1tKXS5pdn12YXIgZGU9TihzZSwhMSxvZSxjZSk7cmV0dXJuIHEoSixkZS5rZXksZGUuaXYpfSxRLmNyZWF0ZURlY2lwaGVyaXY9US5EZWNpcGhlcml2PXEsUS5saXN0Q2lw''@;'; + put 'put ''aGVycz1RLmdldENpcGhlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMoVykuY29uY2F0KGxlLmdldENpcGhlcnMoKSl9fSw3NjY3OihVLFEsWik9Pnt2YXIgaWU9WigxMDI3KSxsZT1aKDUyNTEpLFk9Wig1NzE3KSxXPVooOTUwOSkuQnVmZmVyLE49eyJkZXMtZWRlMy1jYmMiOmxl''@;'; + put 'put ''LkNCQy5pbnN0YW50aWF0ZShsZS5FREUpLCJkZXMtZWRlMyI6bGUuRURFLCJkZXMtZWRlLWNiYyI6bGUuQ0JDLmluc3RhbnRpYXRlKGxlLkVERSksImRlcy1lZGUiOmxlLkVERSwiZGVzLWNiYyI6bGUuQ0JDLmluc3RhbnRpYXRlKGxlLkRFUyksImRlcy1lY2IiOmxlLkRFU307ZnVuY3Rpb24g''@;'; + put 'put ''ZWUocSl7aWUuY2FsbCh0aGlzKTt2YXIgSixzZT1xLm1vZGUudG9Mb3dlckNhc2UoKSxvZT1OW3NlXTtKPXEuZGVjcnlwdD8iZGVjcnlwdCI6ImVuY3J5cHQiO3ZhciBjZT1xLmtleTtXLmlzQnVmZmVyKGNlKXx8KGNlPVcuZnJvbShjZSkpLCJkZXMtZWRlIiE9PXNlJiYiZGVzLWVkZS1jYmMi''@;'; + put 'put ''IT09c2V8fChjZT1XLmNvbmNhdChbY2UsY2Uuc2xpY2UoMCw4KV0pKTt2YXIgZGU9cS5pdjtXLmlzQnVmZmVyKGRlKXx8KGRlPVcuZnJvbShkZSkpLHRoaXMuX2Rlcz1vZS5jcmVhdGUoe2tleTpjZSxpdjpkZSx0eXBlOkp9KX1OLmRlcz1OWyJkZXMtY2JjIl0sTi5kZXMzPU5bImRlcy1lZGUz''@;'; + put 'put ''LWNiYyJdLFUuZXhwb3J0cz1lZSxZKGVlLGllKSxlZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihxKXtyZXR1cm4gVy5mcm9tKHRoaXMuX2Rlcy51cGRhdGUocSkpfSxlZS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIFcuZnJvbSh0aGlzLl9kZXMuZmluYWwoKSl9fSw5''@;'; + put 'put ''NzE1OihVLFEpPT57UVsiZGVzLWVjYiJdPXtrZXk6OCxpdjowfSxRWyJkZXMtY2JjIl09US5kZXM9e2tleTo4LGl2Ojh9LFFbImRlcy1lZGUzLWNiYyJdPVEuZGVzMz17a2V5OjI0LGl2Ojh9LFFbImRlcy1lZGUzIl09e2tleToyNCxpdjowfSxRWyJkZXMtZWRlLWNiYyJdPXtrZXk6MTYsaXY6''@;'; + put 'put ''OH0sUVsiZGVzLWVkZSJdPXtrZXk6MTYsaXY6MH19LDM2NjM6KFUsUSxaKT0+e3ZhciBpZT1aKDg3NjQpLkJ1ZmZlcixsZT1aKDM1NTApLFk9WigxNzk4KTtmdW5jdGlvbiBXKGVlKXt2YXIgcSxKPWVlLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2Rve3E9bmV3IGxlKFkoSikpfXdoaWxlKHEuY21w''@;'; + put 'put ''KGVlLm1vZHVsdXMpPj0wfHwhcS51bW9kKGVlLnByaW1lMSl8fCFxLnVtb2QoZWUucHJpbWUyKSk7cmV0dXJuIHF9ZnVuY3Rpb24gTihlZSxxKXt2YXIgRWUsaGUsSj17YmxpbmRlcjooaGU9VyhFZT1xKSkudG9SZWQobGUubW9udChFZS5tb2R1bHVzKSkucmVkUG93KG5ldyBsZShFZS5wdWJs''@;'; + put 'put ''aWNFeHBvbmVudCkpLmZyb21SZWQoKSx1bmJsaW5kZXI6aGUuaW52bShFZS5tb2R1bHVzKX0sc2U9cS5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxvZT1uZXcgbGUoZWUpLm11bChKLmJsaW5kZXIpLnVtb2QocS5tb2R1bHVzKSxjZT1vZS50b1JlZChsZS5tb250KHEucHJpbWUxKSksZGU9b2UudG9S''@;'; + put 'put ''ZWQobGUubW9udChxLnByaW1lMikpLHZlPXEuY29lZmZpY2llbnQsQWU9cS5wcmltZTEsa2U9cS5wcmltZTIsU2U9Y2UucmVkUG93KHEuZXhwb25lbnQxKS5mcm9tUmVkKCksSWU9ZGUucmVkUG93KHEuZXhwb25lbnQyKS5mcm9tUmVkKCksVGU9U2UuaXN1YihJZSkuaW11bCh2ZSkudW1vZChB''@;'; + put 'put ''ZSkuaW11bChrZSk7cmV0dXJuIEllLmlhZGQoVGUpLmltdWwoSi51bmJsaW5kZXIpLnVtb2QocS5tb2R1bHVzKS50b0FycmF5TGlrZShpZSwiYmUiLHNlKX1OLmdldHI9VyxVLmV4cG9ydHM9Tn0sNjA0MjooVSxRLFopPT57VS5leHBvcnRzPVooNTIwNyl9LDQ3NDM6KFUsUSxaKT0+e3ZhciBp''@;'; + put 'put ''ZT1aKDU2NzkpLkJ1ZmZlcixsZT1aKDM0ODIpLFk9Wig4NDczKSxXPVooNTcxNyksTj1aKDI5NTcpLGVlPVooNzc1MykscT1aKDUyMDcpO2Z1bmN0aW9uIEooZGUpe1kuV3JpdGFibGUuY2FsbCh0aGlzKTt2YXIgdmU9cVtkZV07aWYoIXZlKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBtZXNz''@;'; + put 'put ''YWdlIGRpZ2VzdCIpO3RoaXMuX2hhc2hUeXBlPXZlLmhhc2gsdGhpcy5faGFzaD1sZSh2ZS5oYXNoKSx0aGlzLl90YWc9dmUuaWQsdGhpcy5fc2lnblR5cGU9dmUuc2lnbn1mdW5jdGlvbiBzZShkZSl7WS5Xcml0YWJsZS5jYWxsKHRoaXMpO3ZhciB2ZT1xW2RlXTtpZighdmUpdGhyb3cgbmV3''@;'; + put 'put ''IEVycm9yKCJVbmtub3duIG1lc3NhZ2UgZGlnZXN0Iik7dGhpcy5faGFzaD1sZSh2ZS5oYXNoKSx0aGlzLl90YWc9dmUuaWQsdGhpcy5fc2lnblR5cGU9dmUuc2lnbn1mdW5jdGlvbiBvZShkZSl7cmV0dXJuIG5ldyBKKGRlKX1mdW5jdGlvbiBjZShkZSl7cmV0dXJuIG5ldyBzZShkZSl9T2Jq''@;'; + put 'put ''ZWN0LmtleXMocSkuZm9yRWFjaChmdW5jdGlvbihkZSl7cVtkZV0uaWQ9aWUuZnJvbShxW2RlXS5pZCwiaGV4IikscVtkZS50b0xvd2VyQ2FzZSgpXT1xW2RlXX0pLFcoSixZLldyaXRhYmxlKSxKLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oZGUsdmUsQWUpe3RoaXMuX2hhc2gudXBkYXRl''@;'; + put 'put ''KGRlKSxBZSgpfSxKLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZGUsdmUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZGUmJihkZT1pZS5mcm9tKGRlLHZlKSksdGhpcy5faGFzaC51cGRhdGUoZGUpLHRoaXN9LEoucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oZGUsdmUpe3RoaXMuZW5kKCk7''@;'; + put 'put ''dmFyIEFlPXRoaXMuX2hhc2guZGlnZXN0KCksa2U9TihBZSxkZSx0aGlzLl9oYXNoVHlwZSx0aGlzLl9zaWduVHlwZSx0aGlzLl90YWcpO3JldHVybiB2ZT9rZS50b1N0cmluZyh2ZSk6a2V9LFcoc2UsWS5Xcml0YWJsZSksc2UucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbihkZSx2ZSxBZSl7''@;'; + put 'put ''dGhpcy5faGFzaC51cGRhdGUoZGUpLEFlKCl9LHNlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZGUsdmUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZGUmJihkZT1pZS5mcm9tKGRlLHZlKSksdGhpcy5faGFzaC51cGRhdGUoZGUpLHRoaXN9LHNlLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rp''@;'; + put 'put ''b24oZGUsdmUsQWUpeyJzdHJpbmciPT10eXBlb2YgdmUmJih2ZT1pZS5mcm9tKHZlLEFlKSksdGhpcy5lbmQoKTt2YXIga2U9dGhpcy5faGFzaC5kaWdlc3QoKTtyZXR1cm4gZWUodmUsa2UsZGUsdGhpcy5fc2lnblR5cGUsdGhpcy5fdGFnKX0sVS5leHBvcnRzPXtTaWduOm9lLFZlcmlmeTpj''@;'; + put 'put ''ZSxjcmVhdGVTaWduOm9lLGNyZWF0ZVZlcmlmeTpjZX19LDI5NTc6KFUsUSxaKT0+e3ZhciBpZT1aKDU2NzkpLkJ1ZmZlcixsZT1aKDgzNTUpLFk9WigzNjYzKSxXPVooNjk0OCkuZWMsTj1aKDM1NTApLGVlPVooOTgwKSxxPVooMTMwOCk7ZnVuY3Rpb24gSihkZSx2ZSxBZSxrZSl7aWYoKGRl''@;'; + put 'put ''PWllLmZyb20oZGUudG9BcnJheSgpKSkubGVuZ3RoPHZlLmJ5dGVMZW5ndGgoKSl7dmFyIFNlPWllLmFsbG9jKHZlLmJ5dGVMZW5ndGgoKS1kZS5sZW5ndGgpO2RlPWllLmNvbmNhdChbU2UsZGVdKX12YXIgSWU9QWUubGVuZ3RoLFRlPWZ1bmN0aW9uKE8seil7Tz0oTz1zZShPLHopKS5tb2Qo''@;'; + put 'put ''eik7dmFyIG5lPWllLmZyb20oTy50b0FycmF5KCkpO2lmKG5lLmxlbmd0aDx6LmJ5dGVMZW5ndGgoKSl7dmFyIHRlPWllLmFsbG9jKHouYnl0ZUxlbmd0aCgpLW5lLmxlbmd0aCk7bmU9aWUuY29uY2F0KFt0ZSxuZV0pfXJldHVybiBuZX0oQWUsdmUpLEVlPWllLmFsbG9jKEllKTtFZS5maWxs''@;'; + put 'put ''KDEpO3ZhciBoZT1pZS5hbGxvYyhJZSk7cmV0dXJuIGhlPWxlKGtlLGhlKS51cGRhdGUoRWUpLnVwZGF0ZShpZS5mcm9tKFswXSkpLnVwZGF0ZShkZSkudXBkYXRlKFRlKS5kaWdlc3QoKSxFZT1sZShrZSxoZSkudXBkYXRlKEVlKS5kaWdlc3QoKSx7azpoZT1sZShrZSxoZSkudXBkYXRlKEVl''@;'; + put 'put ''KS51cGRhdGUoaWUuZnJvbShbMV0pKS51cGRhdGUoZGUpLnVwZGF0ZShUZSkuZGlnZXN0KCksdjpFZT1sZShrZSxoZSkudXBkYXRlKEVlKS5kaWdlc3QoKX19ZnVuY3Rpb24gc2UoZGUsdmUpe3ZhciBBZT1uZXcgTihkZSksa2U9KGRlLmxlbmd0aDw8MyktdmUuYml0TGVuZ3RoKCk7cmV0dXJu''@;'; + put 'put ''IGtlPjAmJkFlLmlzaHJuKGtlKSxBZX1mdW5jdGlvbiBvZShkZSx2ZSxBZSl7dmFyIGtlLFNlO2Rve2ZvcihrZT1pZS5hbGxvYygwKTs4KmtlLmxlbmd0aDxkZS5iaXRMZW5ndGgoKTspdmUudj1sZShBZSx2ZS5rKS51cGRhdGUodmUudikuZGlnZXN0KCksa2U9aWUuY29uY2F0KFtrZSx2ZS52''@;'; + put 'put ''XSk7U2U9c2Uoa2UsZGUpLHZlLms9bGUoQWUsdmUuaykudXBkYXRlKHZlLnYpLnVwZGF0ZShpZS5mcm9tKFswXSkpLmRpZ2VzdCgpLHZlLnY9bGUoQWUsdmUuaykudXBkYXRlKHZlLnYpLmRpZ2VzdCgpfXdoaWxlKC0xIT09U2UuY21wKGRlKSk7cmV0dXJuIFNlfWZ1bmN0aW9uIGNlKGRlLHZl''@;'; + put 'put ''LEFlLGtlKXtyZXR1cm4gZGUudG9SZWQoTi5tb250KEFlKSkucmVkUG93KHZlKS5mcm9tUmVkKCkubW9kKGtlKX1VLmV4cG9ydHM9ZnVuY3Rpb24oZGUsdmUsQWUsa2UsU2Upe3ZhciBJZT1lZSh2ZSk7aWYoSWUuY3VydmUpe2lmKCJlY2RzYSIhPT1rZSYmImVjZHNhL3JzYSIhPT1rZSl0aHJv''@;'; + put 'put ''dyBuZXcgRXJyb3IoIndyb25nIHByaXZhdGUga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24oTyx6KXt2YXIgbmU9cVt6LmN1cnZlLmpvaW4oIi4iKV07aWYoIW5lKXRocm93IG5ldyBFcnJvcigidW5rbm93biBjdXJ2ZSAiK3ouY3VydmUuam9pbigiLiIpKTt2YXIgdGU9bmV3IFcobmUpLmtl''@;'; + put 'put ''eUZyb21Qcml2YXRlKHoucHJpdmF0ZUtleSkuc2lnbihPKTtyZXR1cm4gaWUuZnJvbSh0ZS50b0RFUigpKX0oZGUsSWUpfWlmKCJkc2EiPT09SWUudHlwZSl7aWYoImRzYSIhPT1rZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHByaXZhdGUga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24oTyx6''@;'; + put 'put ''LG5lKXtmb3IodmFyIHRlLHg9ei5wYXJhbXMucHJpdl9rZXksUD16LnBhcmFtcy5wLFY9ei5wYXJhbXMucSxUPXoucGFyYW1zLmcsUz1uZXcgTigwKSxGPXNlKE8sVikubW9kKFYpLHllPSExLENlPUooeCxWLE8sbmUpOyExPT09eWU7KVM9Y2UoVCx0ZT1vZShWLENlLG5lKSxQLFYpLDA9PT0o''@;'; + put 'put ''eWU9dGUuaW52bShWKS5pbXVsKEYuYWRkKHgubXVsKFMpKSkubW9kKFYpKS5jbXBuKDApJiYoeWU9ITEsUz1uZXcgTigwKSk7cmV0dXJuIGZ1bmN0aW9uKERlLFBlKXtEZT1EZS50b0FycmF5KCksUGU9UGUudG9BcnJheSgpLDEyOCZEZVswXSYmKERlPVswXS5jb25jYXQoRGUpKSwxMjgmUGVb''@;'; + put 'put ''MF0mJihQZT1bMF0uY29uY2F0KFBlKSk7dmFyIFFlPVs0OCxEZS5sZW5ndGgrUGUubGVuZ3RoKzQsMixEZS5sZW5ndGhdO3JldHVybiBRZT1RZS5jb25jYXQoRGUsWzIsUGUubGVuZ3RoXSxQZSksaWUuZnJvbShRZSl9KFMseWUpfShkZSxJZSxBZSl9aWYoInJzYSIhPT1rZSYmImVjZHNhL3Jz''@;'; + put 'put ''YSIhPT1rZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHByaXZhdGUga2V5IHR5cGUiKTtkZT1pZS5jb25jYXQoW1NlLGRlXSk7Zm9yKHZhciBUZT1JZS5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxFZT1bMCwxXTtkZS5sZW5ndGgrRWUubGVuZ3RoKzE8VGU7KUVlLnB1c2goMjU1KTtFZS5wdXNoKDAp''@;'; + put 'put ''O2Zvcih2YXIgaGU9LTE7KytoZTxkZS5sZW5ndGg7KUVlLnB1c2goZGVbaGVdKTtyZXR1cm4gWShFZSxJZSl9LFUuZXhwb3J0cy5nZXRLZXk9SixVLmV4cG9ydHMubWFrZUtleT1vZX0sNzc1MzooVSxRLFopPT57dmFyIGllPVooNTY3OSkuQnVmZmVyLGxlPVooMzU1MCksWT1aKDY5NDgpLmVj''@;'; + put 'put ''LFc9Wig5ODApLE49WigxMzA4KTtmdW5jdGlvbiBlZShxLEope2lmKHEuY21wbigwKTw9MCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgc2lnIik7aWYocS5jbXAoSik+PUopdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHNpZyIpfVUuZXhwb3J0cz1mdW5jdGlvbihxLEosc2Usb2UsY2Upe3Zh''@;'; + put 'put ''ciBkZT1XKHNlKTtpZigiZWMiPT09ZGUudHlwZSl7aWYoImVjZHNhIiE9PW9lJiYiZWNkc2EvcnNhIiE9PW9lKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uKEVlLGhlLE8pe3ZhciB6PU5bTy5kYXRhLmFsZ29yaXRobS5jdXJ2ZS5qb2lu''@;'; + put 'put ''KCIuIildO2lmKCF6KXRocm93IG5ldyBFcnJvcigidW5rbm93biBjdXJ2ZSAiK08uZGF0YS5hbGdvcml0aG0uY3VydmUuam9pbigiLiIpKTtyZXR1cm4gbmV3IFkoeikudmVyaWZ5KGhlLEVlLE8uZGF0YS5zdWJqZWN0UHJpdmF0ZUtleS5kYXRhKX0ocSxKLGRlKX1pZigiZHNhIj09PWRlLnR5''@;'; + put 'put ''cGUpe2lmKCJkc2EiIT09b2UpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwdWJsaWMga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24oRWUsaGUsTyl7dmFyIHo9Ty5kYXRhLnAsbmU9Ty5kYXRhLnEsdGU9Ty5kYXRhLmcseD1PLmRhdGEucHViX2tleSxQPVcuc2lnbmF0dXJlLmRlY29kZShFZSwi''@;'; + put 'put ''ZGVyIiksVj1QLnMsVD1QLnI7ZWUoVixuZSksZWUoVCxuZSk7dmFyIFM9bGUubW9udCh6KSxGPVYuaW52bShuZSk7cmV0dXJuIDA9PT10ZS50b1JlZChTKS5yZWRQb3cobmV3IGxlKGhlKS5tdWwoRikubW9kKG5lKSkuZnJvbVJlZCgpLm11bCh4LnRvUmVkKFMpLnJlZFBvdyhULm11bChGKS5t''@;'; + put 'put ''b2QobmUpKS5mcm9tUmVkKCkpLm1vZCh6KS5tb2QobmUpLmNtcChUKX0ocSxKLGRlKX1pZigicnNhIiE9PW9lJiYiZWNkc2EvcnNhIiE9PW9lKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7Sj1pZS5jb25jYXQoW2NlLEpdKTtmb3IodmFyIHZlPWRlLm1vZHVsdXMu''@;'; + put 'put ''Ynl0ZUxlbmd0aCgpLEFlPVsxXSxrZT0wO0oubGVuZ3RoK0FlLmxlbmd0aCsyPHZlOylBZS5wdXNoKDI1NSksa2UrKztBZS5wdXNoKDApO2Zvcih2YXIgU2U9LTE7KytTZTxKLmxlbmd0aDspQWUucHVzaChKW1NlXSk7QWU9aWUuZnJvbShBZSk7dmFyIEllPWxlLm1vbnQoZGUubW9kdWx1cyk7''@;'; + put 'put ''cT0ocT1uZXcgbGUocSkudG9SZWQoSWUpKS5yZWRQb3cobmV3IGxlKGRlLnB1YmxpY0V4cG9uZW50KSkscT1pZS5mcm9tKHEuZnJvbVJlZCgpLnRvQXJyYXkoKSk7dmFyIFRlPWtlPDg/MTowO2Zvcih2ZT1NYXRoLm1pbihxLmxlbmd0aCxBZS5sZW5ndGgpLHEubGVuZ3RoIT09QWUubGVuZ3Ro''@;'; + put 'put ''JiYoVGU9MSksU2U9LTE7KytTZTx2ZTspVGV8PXFbU2VdXkFlW1NlXTtyZXR1cm4gMD09PVRlfX0sNTY3OTooVSxRLFopPT57dmFyIGllPVooODc2NCksbGU9aWUuQnVmZmVyO2Z1bmN0aW9uIFkoTixlZSl7Zm9yKHZhciBxIGluIE4pZWVbcV09TltxXX1mdW5jdGlvbiBXKE4sZWUscSl7cmV0''@;'; + put 'put ''dXJuIGxlKE4sZWUscSl9bGUuZnJvbSYmbGUuYWxsb2MmJmxlLmFsbG9jVW5zYWZlJiZsZS5hbGxvY1Vuc2FmZVNsb3c/VS5leHBvcnRzPWllOihZKGllLFEpLFEuQnVmZmVyPVcpLFcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobGUucHJvdG90eXBlKSxZKGxlLFcpLFcuZnJvbT1mdW5jdGlv''@;'; + put 'put ''bihOLGVlLHEpe2lmKCJudW1iZXIiPT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlciIpO3JldHVybiBsZShOLGVlLHEpfSxXLmFsbG9jPWZ1bmN0aW9uKE4sZWUscSl7aWYoIm51bWJlciIhPXR5cGVvZiBOKXRocm93IG5ldyBUeXBl''@;'; + put 'put ''RXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTt2YXIgSj1sZShOKTtyZXR1cm4gdm9pZCAwIT09ZWU/InN0cmluZyI9PXR5cGVvZiBxP0ouZmlsbChlZSxxKTpKLmZpbGwoZWUpOkouZmlsbCgwKSxKfSxXLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKE4pe2lmKCJudW1iZXIiIT10eXBl''@;'; + put 'put ''b2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIGxlKE4pfSxXLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihOKXtpZigibnVtYmVyIiE9dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJl''@;'; + put 'put ''ciIpO3JldHVybiBpZS5TbG93QnVmZmVyKE4pfX0sNzI5NTooVSxRLFopPT57dmFyIGllPVooODc2NCkuQnVmZmVyO1UuZXhwb3J0cz1mdW5jdGlvbihsZSxZKXtmb3IodmFyIFc9TWF0aC5taW4obGUubGVuZ3RoLFkubGVuZ3RoKSxOPW5ldyBpZShXKSxlZT0wO2VlPFc7KytlZSlOW2VlXT1s''@;'; + put 'put ''ZVtlZV1eWVtlZV07cmV0dXJuIE59fSw4NzY0OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNTEwOCk7Y29uc3QgbGU9Wig5NzQyKSxZPVooNjQ1KSxXPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wuZm9yP1N5bWJvbC5mb3IoIm5v''@;'; + put 'put ''ZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIik6bnVsbDtRLkJ1ZmZlcj1xLFEuU2xvd0J1ZmZlcj1mdW5jdGlvbihHZSl7cmV0dXJuK0dlIT1HZSYmKEdlPTApLHEuYWxsb2MoK0dlKX0sUS5JTlNQRUNUX01BWF9CWVRFUz01MDtjb25zdCBOPTIxNDc0ODM2NDc7ZnVuY3Rpb24gZWUoR2Upe2lm''@;'; + put 'put ''KEdlPk4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytHZSsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyk7Y29uc3QgVWU9bmV3IFVpbnQ4QXJyYXkoR2UpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoVWUscS5wcm90b3R5cGUpLFVlfWZ1bmN0aW9uIHEo''@;'; + put 'put ''R2UsVWUseXQpe2lmKCJudW1iZXIiPT10eXBlb2YgR2Upe2lmKCJzdHJpbmciPT10eXBlb2YgVWUpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7cmV0dXJuIG9lKEdlKX1yZXR1''@;'; + put 'put ''cm4gSihHZSxVZSx5dCl9ZnVuY3Rpb24gSihHZSxVZSx5dCl7aWYoInN0cmluZyI9PXR5cGVvZiBHZSlyZXR1cm4gZnVuY3Rpb24oZ24sZG4pe2lmKCJzdHJpbmciPT10eXBlb2YgZG4mJiIiIT09ZG58fChkbj0idXRmOCIpLCFxLmlzRW5jb2RpbmcoZG4pKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''IlVua25vd24gZW5jb2Rpbmc6ICIrZG4pO2NvbnN0IHluPTB8QWUoZ24sZG4pO2xldCBsbj1lZSh5bik7Y29uc3QgTm49bG4ud3JpdGUoZ24sZG4pO3JldHVybiBObiE9PXluJiYobG49bG4uc2xpY2UoMCxObikpLGxufShHZSxVZSk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KEdlKSlyZXR1cm4g''@;'; + put 'put ''ZnVuY3Rpb24oZ24pe2lmKGF0KGduLFVpbnQ4QXJyYXkpKXtjb25zdCBkbj1uZXcgVWludDhBcnJheShnbik7cmV0dXJuIGRlKGRuLmJ1ZmZlcixkbi5ieXRlT2Zmc2V0LGRuLmJ5dGVMZW5ndGgpfXJldHVybiBjZShnbil9KEdlKTtpZihudWxsPT1HZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJU''@;'; + put 'put ''aGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBHZSk7aWYoYXQoR2UsQXJyYXlCdWZmZXIpfHxHZSYmYXQoR2UuYnVmZmVyLEFy''@;'; + put 'put ''cmF5QnVmZmVyKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlciYmKGF0KEdlLFNoYXJlZEFycmF5QnVmZmVyKXx8R2UmJmF0KEdlLmJ1ZmZlcixTaGFyZWRBcnJheUJ1ZmZlcikpKXJldHVybiBkZShHZSxVZSx5dCk7aWYoIm51bWJlciI9PXR5cGVvZiBHZSl0aHJvdyBu''@;'; + put 'put ''ZXcgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtjb25zdCBqdD1HZS52YWx1ZU9mJiZHZS52YWx1ZU9mKCk7aWYobnVsbCE9anQmJmp0IT09R2UpcmV0dXJuIHEuZnJvbShqdCxVZSx5dCk7''@;'; + put 'put ''Y29uc3QgUXQ9ZnVuY3Rpb24oZ24pe2lmKHEuaXNCdWZmZXIoZ24pKXtjb25zdCBkbj0wfHZlKGduLmxlbmd0aCkseW49ZWUoZG4pO3JldHVybiAwPT09eW4ubGVuZ3RofHxnbi5jb3B5KHluLDAsMCxkbikseW59cmV0dXJuIHZvaWQgMCE9PWduLmxlbmd0aD8ibnVtYmVyIiE9dHlwZW9mIGdu''@;'; + put 'put ''Lmxlbmd0aHx8THQoZ24ubGVuZ3RoKT9lZSgwKTpjZShnbik6IkJ1ZmZlciI9PT1nbi50eXBlJiZBcnJheS5pc0FycmF5KGduLmRhdGEpP2NlKGduLmRhdGEpOnZvaWQgMH0oR2UpO2lmKFF0KXJldHVybiBRdDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9U3ltYm9sLnRv''@;'; + put 'put ''UHJpbWl0aXZlJiYiZnVuY3Rpb24iPT10eXBlb2YgR2VbU3ltYm9sLnRvUHJpbWl0aXZlXSlyZXR1cm4gcS5mcm9tKEdlW1N5bWJvbC50b1ByaW1pdGl2ZV0oInN0cmluZyIpLFVlLHl0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlw''@;'; + put 'put ''ZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBHZSl9ZnVuY3Rpb24gc2UoR2Upe2lmKCJudW1iZXIiIT10eXBlb2YgR2UpdGhyb3cgbmV3IFR5cGVFcnJvcignInNpemUiIGFyZ3VtZW50IG11''@;'; + put 'put ''c3QgYmUgb2YgdHlwZSBudW1iZXInKTtpZihHZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicrR2UrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpfWZ1bmN0aW9uIG9lKEdlKXtyZXR1cm4gc2UoR2UpLGVlKEdlPDA/MDowfHZlKEdlKSl9ZnVuY3Rpb24gY2Uo''@;'; + put 'put ''R2Upe2NvbnN0IFVlPUdlLmxlbmd0aDwwPzA6MHx2ZShHZS5sZW5ndGgpLHl0PWVlKFVlKTtmb3IobGV0IGp0PTA7anQ8VWU7anQrPTEpeXRbanRdPTI1NSZHZVtqdF07cmV0dXJuIHl0fWZ1bmN0aW9uIGRlKEdlLFVlLHl0KXtpZihVZTwwfHxHZS5ieXRlTGVuZ3RoPFVlKXRocm93IG5ldyBS''@;'; + put 'put ''YW5nZUVycm9yKCcib2Zmc2V0IiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTtpZihHZS5ieXRlTGVuZ3RoPFVlKyh5dHx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJsZW5ndGgiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO2xldCBqdDtyZXR1cm4ganQ9dm9pZCAwPT09''@;'; + put 'put ''VWUmJnZvaWQgMD09PXl0P25ldyBVaW50OEFycmF5KEdlKTp2b2lkIDA9PT15dD9uZXcgVWludDhBcnJheShHZSxVZSk6bmV3IFVpbnQ4QXJyYXkoR2UsVWUseXQpLE9iamVjdC5zZXRQcm90b3R5cGVPZihqdCxxLnByb3RvdHlwZSksanR9ZnVuY3Rpb24gdmUoR2Upe2lmKEdlPj1OKXRocm93''@;'; + put 'put ''IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IitOLnRvU3RyaW5nKDE2KSsiIGJ5dGVzIik7cmV0dXJuIDB8R2V9ZnVuY3Rpb24gQWUoR2UsVWUpe2lmKHEuaXNCdWZmZXIoR2UpKXJldHVybiBHZS5sZW5ndGg7''@;'; + put 'put ''aWYoQXJyYXlCdWZmZXIuaXNWaWV3KEdlKXx8YXQoR2UsQXJyYXlCdWZmZXIpKXJldHVybiBHZS5ieXRlTGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgR2UpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZm''@;'; + put 'put ''ZXIsIG9yIEFycmF5QnVmZmVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIEdlKTtjb25zdCB5dD1HZS5sZW5ndGgsanQ9YXJndW1lbnRzLmxlbmd0aD4yJiYhMD09PWFyZ3VtZW50c1syXTtpZighanQmJjA9PT15dClyZXR1cm4gMDtsZXQgUXQ9ITE7Zm9yKDs7KXN3aXRjaChVZSl7Y2FzZSJh''@;'; + put 'put ''c2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4geXQ7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gX3QoR2UpLmxlbmd0aDtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIDIqeXQ7Y2FzZSJoZXgiOnJldHVy''@;'; + put 'put ''biB5dD4+PjE7Y2FzZSJiYXNlNjQiOnJldHVybiB0dChHZSkubGVuZ3RoO2RlZmF1bHQ6aWYoUXQpcmV0dXJuIGp0Py0xOl90KEdlKS5sZW5ndGg7VWU9KCIiK1VlKS50b0xvd2VyQ2FzZSgpLFF0PSEwfX1mdW5jdGlvbiBrZShHZSxVZSx5dCl7bGV0IGp0PSExO2lmKCh2b2lkIDA9PT1VZXx8''@;'; + put 'put ''VWU8MCkmJihVZT0wKSxVZT50aGlzLmxlbmd0aHx8KCh2b2lkIDA9PT15dHx8eXQ+dGhpcy5sZW5ndGgpJiYoeXQ9dGhpcy5sZW5ndGgpLHl0PD0wKXx8KHl0Pj4+PTApPD0oVWU+Pj49MCkpcmV0dXJuIiI7Zm9yKEdlfHwoR2U9InV0ZjgiKTs7KXN3aXRjaChHZSl7Y2FzZSJoZXgiOnJldHVy''@;'; + put 'put ''biBTKHRoaXMsVWUseXQpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHgodGhpcyxVZSx5dCk7Y2FzZSJhc2NpaSI6cmV0dXJuIFYodGhpcyxVZSx5dCk7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gVCh0aGlzLFVlLHl0KTtjYXNlImJhc2U2NCI6cmV0dXJuIHRlKHRo''@;'; + put 'put ''aXMsVWUseXQpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gRih0aGlzLFVlLHl0KTtkZWZhdWx0OmlmKGp0KXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrR2UpO0dlPShHZSsiIikudG9Mb3dlckNhc2Uo''@;'; + put 'put ''KSxqdD0hMH19ZnVuY3Rpb24gU2UoR2UsVWUseXQpe2NvbnN0IGp0PUdlW1VlXTtHZVtVZV09R2VbeXRdLEdlW3l0XT1qdH1mdW5jdGlvbiBJZShHZSxVZSx5dCxqdCxRdCl7aWYoMD09PUdlLmxlbmd0aClyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9mIHl0PyhqdD15dCx5dD0wKTp5dD4y''@;'; + put 'put ''MTQ3NDgzNjQ3P3l0PTIxNDc0ODM2NDc6eXQ8LTIxNDc0ODM2NDgmJih5dD0tMjE0NzQ4MzY0OCksTHQoeXQ9K3l0KSYmKHl0PVF0PzA6R2UubGVuZ3RoLTEpLHl0PDAmJih5dD1HZS5sZW5ndGgreXQpLHl0Pj1HZS5sZW5ndGgpe2lmKFF0KXJldHVybi0xO3l0PUdlLmxlbmd0aC0xfWVsc2Ug''@;'; + put 'put ''aWYoeXQ8MCl7aWYoIVF0KXJldHVybi0xO3l0PTB9aWYoInN0cmluZyI9PXR5cGVvZiBVZSYmKFVlPXEuZnJvbShVZSxqdCkpLHEuaXNCdWZmZXIoVWUpKXJldHVybiAwPT09VWUubGVuZ3RoPy0xOlRlKEdlLFVlLHl0LGp0LFF0KTtpZigibnVtYmVyIj09dHlwZW9mIFVlKXJldHVybiBVZSY9''@;'; + put 'put ''MjU1LCJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP1F0P1VpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChHZSxVZSx5dCk6VWludDhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChHZSxVZSx5dCk6VGUoR2UsW1VlXSx5dCxqdCxR''@;'; + put 'put ''dCk7dGhyb3cgbmV3IFR5cGVFcnJvcigidmFsIG11c3QgYmUgc3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyIil9ZnVuY3Rpb24gVGUoR2UsVWUseXQsanQsUXQpe2xldCBnbixkbj0xLHluPUdlLmxlbmd0aCxsbj1VZS5sZW5ndGg7aWYodm9pZCAwIT09anQmJigidWNzMiI9PT0oanQ9U3RyaW5n''@;'; + put 'put ''KGp0KS50b0xvd2VyQ2FzZSgpKXx8InVjcy0yIj09PWp0fHwidXRmMTZsZSI9PT1qdHx8InV0Zi0xNmxlIj09PWp0KSl7aWYoR2UubGVuZ3RoPDJ8fFVlLmxlbmd0aDwyKXJldHVybi0xO2RuPTIseW4vPTIsbG4vPTIseXQvPTJ9ZnVuY3Rpb24gTm4oYm4sZXIpe3JldHVybiAxPT09ZG4/Ym5b''@;'; + put 'put ''ZXJdOmJuLnJlYWRVSW50MTZCRShlcipkbil9aWYoUXQpe2xldCBibj0tMTtmb3IoZ249eXQ7Z248eW47Z24rKylpZihObihHZSxnbik9PT1ObihVZSwtMT09PWJuPzA6Z24tYm4pKXtpZigtMT09PWJuJiYoYm49Z24pLGduLWJuKzE9PT1sbilyZXR1cm4gYm4qZG59ZWxzZS0xIT09Ym4mJihn''@;'; + put 'put ''bi09Z24tYm4pLGJuPS0xfWVsc2UgZm9yKHl0K2xuPnluJiYoeXQ9eW4tbG4pLGduPXl0O2duPj0wO2duLS0pe2xldCBibj0hMDtmb3IobGV0IGVyPTA7ZXI8bG47ZXIrKylpZihObihHZSxnbitlcikhPT1ObihVZSxlcikpe2JuPSExO2JyZWFrfWlmKGJuKXJldHVybiBnbn1yZXR1cm4tMX1m''@;'; + put 'put ''dW5jdGlvbiBFZShHZSxVZSx5dCxqdCl7eXQ9TnVtYmVyKHl0KXx8MDtjb25zdCBRdD1HZS5sZW5ndGgteXQ7anQ/KGp0PU51bWJlcihqdCkpPlF0JiYoanQ9UXQpOmp0PVF0O2NvbnN0IGduPVVlLmxlbmd0aDtsZXQgZG47Zm9yKGp0PmduLzImJihqdD1nbi8yKSxkbj0wO2RuPGp0OysrZG4p''@;'; + put 'put ''e2NvbnN0IHluPXBhcnNlSW50KFVlLnN1YnN0cigyKmRuLDIpLDE2KTtpZihMdCh5bikpcmV0dXJuIGRuO0dlW3l0K2RuXT15bn1yZXR1cm4gZG59ZnVuY3Rpb24gaGUoR2UsVWUseXQsanQpe3JldHVybiBldChfdChVZSxHZS5sZW5ndGgteXQpLEdlLHl0LGp0KX1mdW5jdGlvbiBPKEdlLFVl''@;'; + put 'put ''LHl0LGp0KXtyZXR1cm4gZXQoZnVuY3Rpb24oUXQpe2NvbnN0IGduPVtdO2ZvcihsZXQgZG49MDtkbjxRdC5sZW5ndGg7Kytkbilnbi5wdXNoKDI1NSZRdC5jaGFyQ29kZUF0KGRuKSk7cmV0dXJuIGdufShVZSksR2UseXQsanQpfWZ1bmN0aW9uIHooR2UsVWUseXQsanQpe3JldHVybiBldCh0''@;'; + put 'put ''dChVZSksR2UseXQsanQpfWZ1bmN0aW9uIG5lKEdlLFVlLHl0LGp0KXtyZXR1cm4gZXQoZnVuY3Rpb24oUXQsZ24pe2xldCBkbix5bixsbjtjb25zdCBObj1bXTtmb3IobGV0IGJuPTA7Ym48UXQubGVuZ3RoJiYhKChnbi09Mik8MCk7Kytibilkbj1RdC5jaGFyQ29kZUF0KGJuKSx5bj1kbj4+''@;'; + put 'put ''OCxsbj1kbiUyNTYsTm4ucHVzaChsbiksTm4ucHVzaCh5bik7cmV0dXJuIE5ufShVZSxHZS5sZW5ndGgteXQpLEdlLHl0LGp0KX1mdW5jdGlvbiB0ZShHZSxVZSx5dCl7cmV0dXJuIGxlLmZyb21CeXRlQXJyYXkoMD09PVVlJiZ5dD09PUdlLmxlbmd0aD9HZTpHZS5zbGljZShVZSx5dCkpfWZ1''@;'; + put 'put ''bmN0aW9uIHgoR2UsVWUseXQpe3l0PU1hdGgubWluKEdlLmxlbmd0aCx5dCk7Y29uc3QganQ9W107bGV0IFF0PVVlO2Zvcig7UXQ8eXQ7KXtjb25zdCBnbj1HZVtRdF07bGV0IGRuPW51bGwseW49Z24+MjM5PzQ6Z24+MjIzPzM6Z24+MTkxPzI6MTtpZihRdCt5bjw9eXQpe2xldCBsbixObixi''@;'; + put 'put ''bixlcjtzd2l0Y2goeW4pe2Nhc2UgMTpnbjwxMjgmJihkbj1nbik7YnJlYWs7Y2FzZSAyOmxuPUdlW1F0KzFdLDEyOD09KDE5MiZsbikmJihlcj0oMzEmZ24pPDw2fDYzJmxuLGVyPjEyNyYmKGRuPWVyKSk7YnJlYWs7Y2FzZSAzOmxuPUdlW1F0KzFdLE5uPUdlW1F0KzJdLDEyOD09KDE5MiZs''@;'; + put 'put ''bikmJjEyOD09KDE5MiZObikmJihlcj0oMTUmZ24pPDwxMnwoNjMmbG4pPDw2fDYzJk5uLGVyPjIwNDcmJihlcjw1NTI5Nnx8ZXI+NTczNDMpJiYoZG49ZXIpKTticmVhaztjYXNlIDQ6bG49R2VbUXQrMV0sTm49R2VbUXQrMl0sYm49R2VbUXQrM10sMTI4PT0oMTkyJmxuKSYmMTI4PT0oMTky''@;'; + put 'put ''Jk5uKSYmMTI4PT0oMTkyJmJuKSYmKGVyPSgxNSZnbik8PDE4fCg2MyZsbik8PDEyfCg2MyZObik8PDZ8NjMmYm4sZXI+NjU1MzUmJmVyPDExMTQxMTImJihkbj1lcikpfX1udWxsPT09ZG4/KGRuPTY1NTMzLHluPTEpOmRuPjY1NTM1JiYoZG4tPTY1NTM2LGp0LnB1c2goZG4+Pj4xMCYxMDIz''@;'; + put 'put ''fDU1Mjk2KSxkbj01NjMyMHwxMDIzJmRuKSxqdC5wdXNoKGRuKSxRdCs9eW59cmV0dXJuIGZ1bmN0aW9uKGduKXtjb25zdCBkbj1nbi5sZW5ndGg7aWYoZG48PVApcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGduKTtsZXQgeW49IiIsbG49MDtmb3IoO2xuPGRuOyl5''@;'; + put 'put ''bis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsZ24uc2xpY2UobG4sbG4rPVApKTtyZXR1cm4geW59KGp0KX1RLmtNYXhMZW5ndGg9TiwocS5UWVBFRF9BUlJBWV9TVVBQT1JUPWZ1bmN0aW9uKCl7dHJ5e2NvbnN0IEdlPW5ldyBVaW50OEFycmF5KDEpLFVlPXtmb286ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gNDJ9fTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKFVlLFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YoR2UsVWUpLDQyPT09R2UuZm9vKCl9Y2F0Y2goR2Upe3JldHVybiExfX0oKSl8fHZvaWQgMD09PWllfHwiZnVuY3Rpb24iIT10''@;'; + put 'put ''eXBlb2YgaWUuZXJyb3J8fGllLmVycm9yKCJUaGlzIGJyb3dzZXIgbGFja3MgdHlwZWQgYXJyYXkgKFVpbnQ4QXJyYXkpIHN1cHBvcnQgd2hpY2ggaXMgcmVxdWlyZWQgYnkgYGJ1ZmZlcmAgdjUueC4gVXNlIGBidWZmZXJgIHY0LnggaWYgeW91IHJlcXVpcmUgb2xkIGJyb3dzZXIgc3VwcG9y''@;'; + put 'put ''dC4iKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocS5wcm90b3R5cGUsInBhcmVudCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYocS5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5idWZmZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHEucHJvdG90eXBlLCJvZmZzZXQiLHtl''@;'; + put 'put ''bnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKHEuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnl0ZU9mZnNldH19KSxxLnBvb2xTaXplPTgxOTIscS5mcm9tPWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gSihHZSxVZSx5dCl9LE9iamVjdC5zZXRQcm90b3R5cGVPZihxLnByb3Rv''@;'; + put 'put ''dHlwZSxVaW50OEFycmF5LnByb3RvdHlwZSksT2JqZWN0LnNldFByb3RvdHlwZU9mKHEsVWludDhBcnJheSkscS5hbGxvYz1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIFF0PVVlLGduPXl0LHNlKGp0PUdlKSxqdDw9MD9lZShqdCk6dm9pZCAwIT09UXQ/InN0cmluZyI9PXR5cGVvZiBnbj9l''@;'; + put 'put ''ZShqdCkuZmlsbChRdCxnbik6ZWUoanQpLmZpbGwoUXQpOmVlKGp0KTt2YXIganQsUXQsZ259LHEuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oR2Upe3JldHVybiBvZShHZSl9LHEuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKEdlKXtyZXR1cm4gb2UoR2UpfSxxLmlzQnVmZmVyPWZ1bmN0aW9uKEdl''@;'; + put 'put ''KXtyZXR1cm4gbnVsbCE9R2UmJiEwPT09R2UuX2lzQnVmZmVyJiZHZSE9PXEucHJvdG90eXBlfSxxLmNvbXBhcmU9ZnVuY3Rpb24oR2UsVWUpe2lmKGF0KEdlLFVpbnQ4QXJyYXkpJiYoR2U9cS5mcm9tKEdlLEdlLm9mZnNldCxHZS5ieXRlTGVuZ3RoKSksYXQoVWUsVWludDhBcnJheSkmJihV''@;'; + put 'put ''ZT1xLmZyb20oVWUsVWUub2Zmc2V0LFVlLmJ5dGVMZW5ndGgpKSwhcS5pc0J1ZmZlcihHZSl8fCFxLmlzQnVmZmVyKFVlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImJ1ZjEiLCAiYnVmMiIgYXJndW1lbnRzIG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtp''@;'; + put 'put ''ZihHZT09PVVlKXJldHVybiAwO2xldCB5dD1HZS5sZW5ndGgsanQ9VWUubGVuZ3RoO2ZvcihsZXQgUXQ9MCxnbj1NYXRoLm1pbih5dCxqdCk7UXQ8Z247KytRdClpZihHZVtRdF0hPT1VZVtRdF0pe3l0PUdlW1F0XSxqdD1VZVtRdF07YnJlYWt9cmV0dXJuIHl0PGp0Py0xOmp0PHl0PzE6MH0s''@;'; + put 'put ''cS5pc0VuY29kaW5nPWZ1bmN0aW9uKEdlKXtzd2l0Y2goU3RyaW5nKEdlKS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIi''@;'; + put 'put ''OmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LHEuY29uY2F0PWZ1bmN0aW9uKEdlLFVlKXtpZighQXJyYXkuaXNBcnJheShHZSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVm''@;'; + put 'put ''ZmVycycpO2lmKDA9PT1HZS5sZW5ndGgpcmV0dXJuIHEuYWxsb2MoMCk7bGV0IHl0O2lmKHZvaWQgMD09PVVlKWZvcihVZT0wLHl0PTA7eXQ8R2UubGVuZ3RoOysreXQpVWUrPUdlW3l0XS5sZW5ndGg7Y29uc3QganQ9cS5hbGxvY1Vuc2FmZShVZSk7bGV0IFF0PTA7Zm9yKHl0PTA7eXQ8R2Uu''@;'; + put 'put ''bGVuZ3RoOysreXQpe2xldCBnbj1HZVt5dF07aWYoYXQoZ24sVWludDhBcnJheSkpUXQrZ24ubGVuZ3RoPmp0Lmxlbmd0aD8ocS5pc0J1ZmZlcihnbil8fChnbj1xLmZyb20oZ24pKSxnbi5jb3B5KGp0LFF0KSk6VWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoanQsZ24sUXQpO2Vsc2V7''@;'; + put 'put ''aWYoIXEuaXNCdWZmZXIoZ24pKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtnbi5jb3B5KGp0LFF0KX1RdCs9Z24ubGVuZ3RofXJldHVybiBqdH0scS5ieXRlTGVuZ3RoPUFlLHEucHJvdG90eXBlLl9pc0J1ZmZlcj0h''@;'; + put 'put ''MCxxLnByb3RvdHlwZS5zd2FwMTY9ZnVuY3Rpb24oKXtjb25zdCBHZT10aGlzLmxlbmd0aDtpZihHZSUyIT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2ZvcihsZXQgVWU9MDtVZTxHZTtVZSs9MilTZSh0aGlzLFVl''@;'; + put 'put ''LFVlKzEpO3JldHVybiB0aGlzfSxxLnByb3RvdHlwZS5zd2FwMzI9ZnVuY3Rpb24oKXtjb25zdCBHZT10aGlzLmxlbmd0aDtpZihHZSU0IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0cyIpO2ZvcihsZXQgVWU9MDtVZTxH''@;'; + put 'put ''ZTtVZSs9NClTZSh0aGlzLFVlLFVlKzMpLFNlKHRoaXMsVWUrMSxVZSsyKTtyZXR1cm4gdGhpc30scS5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7Y29uc3QgR2U9dGhpcy5sZW5ndGg7aWYoR2UlOCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11''@;'; + put 'put ''bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IobGV0IFVlPTA7VWU8R2U7VWUrPTgpU2UodGhpcyxVZSxVZSs3KSxTZSh0aGlzLFVlKzEsVWUrNiksU2UodGhpcyxVZSsyLFVlKzUpLFNlKHRoaXMsVWUrMyxVZSs0KTtyZXR1cm4gdGhpc30scS5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmc9cS5wcm90''@;'; + put 'put ''b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtjb25zdCBHZT10aGlzLmxlbmd0aDtyZXR1cm4gMD09PUdlPyIiOjA9PT1hcmd1bWVudHMubGVuZ3RoP3godGhpcywwLEdlKTprZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHEucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihHZSl7aWYoIXEuaXNC''@;'; + put 'put ''dWZmZXIoR2UpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIiKTtyZXR1cm4gdGhpcz09PUdlfHwwPT09cS5jb21wYXJlKHRoaXMsR2UpfSxxLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7bGV0IEdlPSIiO2NvbnN0IFVlPVEuSU5TUEVDVF9NQVhf''@;'; + put 'put ''QllURVM7cmV0dXJuIEdlPXRoaXMudG9TdHJpbmcoImhleCIsMCxVZSkucmVwbGFjZSgvKC57Mn0pL2csIiQxICIpLnRyaW0oKSx0aGlzLmxlbmd0aD5VZSYmKEdlKz0iIC4uLiAiKSwiPEJ1ZmZlciAiK0dlKyI+In0sVyYmKHEucHJvdG90eXBlW1ddPXEucHJvdG90eXBlLmluc3BlY3QpLHEu''@;'; + put 'put ''cHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24oR2UsVWUseXQsanQsUXQpe2lmKGF0KEdlLFVpbnQ4QXJyYXkpJiYoR2U9cS5mcm9tKEdlLEdlLm9mZnNldCxHZS5ieXRlTGVuZ3RoKSksIXEuaXNCdWZmZXIoR2UpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidGFyZ2V0IiBhcmd1bWVudCBt''@;'; + put 'put ''dXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIEdlKTtpZih2b2lkIDA9PT1VZSYmKFVlPTApLHZvaWQgMD09PXl0JiYoeXQ9R2U/R2UubGVuZ3RoOjApLHZvaWQgMD09PWp0JiYoanQ9MCksdm9pZCAwPT09UXQmJihRdD10aGlz''@;'; + put 'put ''Lmxlbmd0aCksVWU8MHx8eXQ+R2UubGVuZ3RofHxqdDwwfHxRdD50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoanQ+PVF0JiZVZT49eXQpcmV0dXJuIDA7aWYoanQ+PVF0KXJldHVybi0xO2lmKFVlPj15dClyZXR1cm4gMTtpZih0aGlz''@;'; + put 'put ''PT09R2UpcmV0dXJuIDA7bGV0IGduPShRdD4+Pj0wKS0oanQ+Pj49MCksZG49KHl0Pj4+PTApLShVZT4+Pj0wKTtjb25zdCB5bj1NYXRoLm1pbihnbixkbiksbG49dGhpcy5zbGljZShqdCxRdCksTm49R2Uuc2xpY2UoVWUseXQpO2ZvcihsZXQgYm49MDtibjx5bjsrK2JuKWlmKGxuW2JuXSE9''@;'; + put 'put ''PU5uW2JuXSl7Z249bG5bYm5dLGRuPU5uW2JuXTticmVha31yZXR1cm4gZ248ZG4/LTE6ZG48Z24/MTowfSxxLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YoR2UsVWUseXQpfSxxLnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9u''@;'; + put 'put ''KEdlLFVlLHl0KXtyZXR1cm4gSWUodGhpcyxHZSxVZSx5dCwhMCl9LHEucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gSWUodGhpcyxHZSxVZSx5dCwhMSl9LHEucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKEdlLFVlLHl0LGp0KXtpZih2b2lkIDA9PT1V''@;'; + put 'put ''ZSlqdD0idXRmOCIseXQ9dGhpcy5sZW5ndGgsVWU9MDtlbHNlIGlmKHZvaWQgMD09PXl0JiYic3RyaW5nIj09dHlwZW9mIFVlKWp0PVVlLHl0PXRoaXMubGVuZ3RoLFVlPTA7ZWxzZXtpZighaXNGaW5pdGUoVWUpKXRocm93IG5ldyBFcnJvcigiQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2Rp''@;'; + put 'put ''bmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQiKTtVZT4+Pj0wLGlzRmluaXRlKHl0KT8oeXQ+Pj49MCx2b2lkIDA9PT1qdCYmKGp0PSJ1dGY4IikpOihqdD15dCx5dD12b2lkIDApfWNvbnN0IFF0PXRoaXMubGVuZ3RoLVVlO2lmKCh2b2lkIDA9PT15dHx8eXQ+''@;'; + put 'put ''UXQpJiYoeXQ9UXQpLEdlLmxlbmd0aD4wJiYoeXQ8MHx8VWU8MCl8fFVlPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO2p0fHwoanQ9InV0ZjgiKTtsZXQgZ249ITE7Zm9yKDs7KXN3aXRjaChqdCl7Y2Fz''@;'; + put 'put ''ZSJoZXgiOnJldHVybiBFZSh0aGlzLEdlLFVlLHl0KTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBoZSh0aGlzLEdlLFVlLHl0KTtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBPKHRoaXMsR2UsVWUseXQpO2Nhc2UiYmFzZTY0IjpyZXR1cm4geih0''@;'; + put 'put ''aGlzLEdlLFVlLHl0KTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIG5lKHRoaXMsR2UsVWUseXQpO2RlZmF1bHQ6aWYoZ24pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitqdCk7anQ9KCIiK2p0KS50b0xv''@;'; + put 'put ''d2VyQ2FzZSgpLGduPSEwfX0scS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IkJ1ZmZlciIsZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnJ8fHRoaXMsMCl9fTtjb25zdCBQPTQwOTY7ZnVuY3Rpb24gVihHZSxVZSx5dCl7bGV0IGp0PSIi''@;'; + put 'put ''O3l0PU1hdGgubWluKEdlLmxlbmd0aCx5dCk7Zm9yKGxldCBRdD1VZTtRdDx5dDsrK1F0KWp0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEyNyZHZVtRdF0pO3JldHVybiBqdH1mdW5jdGlvbiBUKEdlLFVlLHl0KXtsZXQganQ9IiI7eXQ9TWF0aC5taW4oR2UubGVuZ3RoLHl0KTtmb3IobGV0IFF0''@;'; + put 'put ''PVVlO1F0PHl0OysrUXQpanQrPVN0cmluZy5mcm9tQ2hhckNvZGUoR2VbUXRdKTtyZXR1cm4ganR9ZnVuY3Rpb24gUyhHZSxVZSx5dCl7Y29uc3QganQ9R2UubGVuZ3RoOyghVWV8fFVlPDApJiYoVWU9MCksKCF5dHx8eXQ8MHx8eXQ+anQpJiYoeXQ9anQpO2xldCBRdD0iIjtmb3IobGV0IGdu''@;'; + put 'put ''PVVlO2duPHl0OysrZ24pUXQrPUN0W0dlW2duXV07cmV0dXJuIFF0fWZ1bmN0aW9uIEYoR2UsVWUseXQpe2NvbnN0IGp0PUdlLnNsaWNlKFVlLHl0KTtsZXQgUXQ9IiI7Zm9yKGxldCBnbj0wO2duPGp0Lmxlbmd0aC0xO2duKz0yKVF0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGp0W2duXSsyNTYq''@;'; + put 'put ''anRbZ24rMV0pO3JldHVybiBRdH1mdW5jdGlvbiB5ZShHZSxVZSx5dCl7aWYoR2UlMSE9MHx8R2U8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYoR2UrVWU+eXQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZl''@;'; + put 'put ''ciBsZW5ndGgiKX1mdW5jdGlvbiBDZShHZSxVZSx5dCxqdCxRdCxnbil7aWYoIXEuaXNCdWZmZXIoR2UpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWZmZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKTtpZihVZT5RdHx8VWU8Z24pdGhyb3cgbmV3IFJhbmdlRXJyb3Io''@;'; + put 'put ''JyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKHl0K2p0PkdlLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gRGUoR2UsVWUseXQsanQsUXQpe210KFVlLGp0LFF0LEdlLHl0LDcpO2xldCBnbj1OdW1iZXIoVWUm''@;'; + put 'put ''QmlnSW50KDQyOTQ5NjcyOTUpKTtHZVt5dCsrXT1nbixnbj4+PTgsR2VbeXQrK109Z24sZ24+Pj04LEdlW3l0KytdPWduLGduPj49OCxHZVt5dCsrXT1nbjtsZXQgZG49TnVtYmVyKFVlPj5CaWdJbnQoMzIpJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7cmV0dXJuIEdlW3l0KytdPWRuLGRuPj49OCxH''@;'; + put 'put ''ZVt5dCsrXT1kbixkbj4+PTgsR2VbeXQrK109ZG4sZG4+Pj04LEdlW3l0KytdPWRuLHl0fWZ1bmN0aW9uIFBlKEdlLFVlLHl0LGp0LFF0KXttdChVZSxqdCxRdCxHZSx5dCw3KTtsZXQgZ249TnVtYmVyKFVlJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7R2VbeXQrN109Z24sZ24+Pj04LEdlW3l0KzZd''@;'; + put 'put ''PWduLGduPj49OCxHZVt5dCs1XT1nbixnbj4+PTgsR2VbeXQrNF09Z247bGV0IGRuPU51bWJlcihVZT4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO3JldHVybiBHZVt5dCszXT1kbixkbj4+PTgsR2VbeXQrMl09ZG4sZG4+Pj04LEdlW3l0KzFdPWRuLGRuPj49OCxHZVt5dF09ZG4s''@;'; + put 'put ''eXQrOH1mdW5jdGlvbiBRZShHZSxVZSx5dCxqdCxRdCxnbil7aWYoeXQranQ+R2UubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZih5dDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiAkZShHZSxV''@;'; + put 'put ''ZSx5dCxqdCxRdCl7cmV0dXJuIFVlPStVZSx5dD4+Pj0wLFF0fHxRZShHZSwwLHl0LDQpLFkud3JpdGUoR2UsVWUseXQsanQsMjMsNCkseXQrNH1mdW5jdGlvbiBndChHZSxVZSx5dCxqdCxRdCl7cmV0dXJuIFVlPStVZSx5dD4+Pj0wLFF0fHxRZShHZSwwLHl0LDgpLFkud3JpdGUoR2UsVWUs''@;'; + put 'put ''eXQsanQsNTIsOCkseXQrOH1xLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbihHZSxVZSl7Y29uc3QgeXQ9dGhpcy5sZW5ndGg7KEdlPX5+R2UpPDA/KEdlKz15dCk8MCYmKEdlPTApOkdlPnl0JiYoR2U9eXQpLChVZT12b2lkIDA9PT1VZT95dDp+flVlKTwwPyhVZSs9eXQpPDAmJihVZT0wKTpV''@;'; + put 'put ''ZT55dCYmKFVlPXl0KSxVZTxHZSYmKFVlPUdlKTtjb25zdCBqdD10aGlzLnN1YmFycmF5KEdlLFVlKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKGp0LHEucHJvdG90eXBlKSxqdH0scS5wcm90b3R5cGUucmVhZFVpbnRMRT1xLnByb3RvdHlwZS5yZWFkVUludExFPWZ1bmN0aW9uKEdl''@;'; + put 'put ''LFVlLHl0KXtHZT4+Pj0wLFVlPj4+PTAseXR8fHllKEdlLFVlLHRoaXMubGVuZ3RoKTtsZXQganQ9dGhpc1tHZV0sUXQ9MSxnbj0wO2Zvcig7KytnbjxVZSYmKFF0Kj0yNTYpOylqdCs9dGhpc1tHZStnbl0qUXQ7cmV0dXJuIGp0fSxxLnByb3RvdHlwZS5yZWFkVWludEJFPXEucHJvdG90eXBl''@;'; + put 'put ''LnJlYWRVSW50QkU9ZnVuY3Rpb24oR2UsVWUseXQpe0dlPj4+PTAsVWU+Pj49MCx5dHx8eWUoR2UsVWUsdGhpcy5sZW5ndGgpO2xldCBqdD10aGlzW0dlKy0tVWVdLFF0PTE7Zm9yKDtVZT4wJiYoUXQqPTI1Nik7KWp0Kz10aGlzW0dlKy0tVWVdKlF0O3JldHVybiBqdH0scS5wcm90b3R5cGUu''@;'; + put 'put ''cmVhZFVpbnQ4PXEucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAsVWV8fHllKEdlLDEsdGhpcy5sZW5ndGgpLHRoaXNbR2VdfSxxLnByb3RvdHlwZS5yZWFkVWludDE2TEU9cS5wcm90b3R5cGUucmVhZFVJbnQxNkxFPWZ1bmN0aW9uKEdlLFVlKXty''@;'; + put 'put ''ZXR1cm4gR2U+Pj49MCxVZXx8eWUoR2UsMix0aGlzLmxlbmd0aCksdGhpc1tHZV18dGhpc1tHZSsxXTw8OH0scS5wcm90b3R5cGUucmVhZFVpbnQxNkJFPXEucHJvdG90eXBlLnJlYWRVSW50MTZCRT1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAsVWV8fHllKEdlLDIsdGhpcy5sZW5n''@;'; + put 'put ''dGgpLHRoaXNbR2VdPDw4fHRoaXNbR2UrMV19LHEucHJvdG90eXBlLnJlYWRVaW50MzJMRT1xLnByb3RvdHlwZS5yZWFkVUludDMyTEU9ZnVuY3Rpb24oR2UsVWUpe3JldHVybiBHZT4+Pj0wLFVlfHx5ZShHZSw0LHRoaXMubGVuZ3RoKSwodGhpc1tHZV18dGhpc1tHZSsxXTw8OHx0aGlzW0dl''@;'; + put 'put ''KzJdPDwxNikrMTY3NzcyMTYqdGhpc1tHZSszXX0scS5wcm90b3R5cGUucmVhZFVpbnQzMkJFPXEucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAsVWV8fHllKEdlLDQsdGhpcy5sZW5ndGgpLDE2Nzc3MjE2KnRoaXNbR2VdKyh0aGlzW0dlKzFd''@;'; + put 'put ''PDwxNnx0aGlzW0dlKzJdPDw4fHRoaXNbR2UrM10pfSxxLnByb3RvdHlwZS5yZWFkQmlnVUludDY0TEU9ZnQoZnVuY3Rpb24oR2Upe2h0KEdlPj4+PTAsIm9mZnNldCIpO2NvbnN0IFVlPXRoaXNbR2VdLHl0PXRoaXNbR2UrN107dm9pZCAwIT09VWUmJnZvaWQgMCE9PXl0fHxCdChHZSx0aGlz''@;'; + put 'put ''Lmxlbmd0aC04KTtjb25zdCBqdD1VZSsyNTYqdGhpc1srK0dlXSs2NTUzNip0aGlzWysrR2VdK3RoaXNbKytHZV0qYk0oMiwyNCksUXQ9dGhpc1srK0dlXSsyNTYqdGhpc1srK0dlXSs2NTUzNip0aGlzWysrR2VdK3l0KmJNKDIsMjQpO3JldHVybiBCaWdJbnQoanQpKyhCaWdJbnQoUXQpPDxC''@;'; + put 'put ''aWdJbnQoMzIpKX0pLHEucHJvdG90eXBlLnJlYWRCaWdVSW50NjRCRT1mdChmdW5jdGlvbihHZSl7aHQoR2U+Pj49MCwib2Zmc2V0Iik7Y29uc3QgVWU9dGhpc1tHZV0seXQ9dGhpc1tHZSs3XTt2b2lkIDAhPT1VZSYmdm9pZCAwIT09eXR8fEJ0KEdlLHRoaXMubGVuZ3RoLTgpO2NvbnN0IGp0''@;'; + put 'put ''PVVlKmJNKDIsMjQpKzY1NTM2KnRoaXNbKytHZV0rMjU2KnRoaXNbKytHZV0rdGhpc1srK0dlXSxRdD10aGlzWysrR2VdKmJNKDIsMjQpKzY1NTM2KnRoaXNbKytHZV0rMjU2KnRoaXNbKytHZV0reXQ7cmV0dXJuKEJpZ0ludChqdCk8PEJpZ0ludCgzMikpK0JpZ0ludChRdCl9KSxxLnByb3Rv''@;'; + put 'put ''dHlwZS5yZWFkSW50TEU9ZnVuY3Rpb24oR2UsVWUseXQpe0dlPj4+PTAsVWU+Pj49MCx5dHx8eWUoR2UsVWUsdGhpcy5sZW5ndGgpO2xldCBqdD10aGlzW0dlXSxRdD0xLGduPTA7Zm9yKDsrK2duPFVlJiYoUXQqPTI1Nik7KWp0Kz10aGlzW0dlK2duXSpRdDtyZXR1cm4gUXQqPTEyOCxqdD49''@;'; + put 'put ''UXQmJihqdC09TWF0aC5wb3coMiw4KlVlKSksanR9LHEucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbihHZSxVZSx5dCl7R2U+Pj49MCxVZT4+Pj0wLHl0fHx5ZShHZSxVZSx0aGlzLmxlbmd0aCk7bGV0IGp0PVVlLFF0PTEsZ249dGhpc1tHZSstLWp0XTtmb3IoO2p0PjAmJihRdCo9MjU2''@;'; + put 'put ''KTspZ24rPXRoaXNbR2UrLS1qdF0qUXQ7cmV0dXJuIFF0Kj0xMjgsZ24+PVF0JiYoZ24tPU1hdGgucG93KDIsOCpVZSkpLGdufSxxLnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAsVWV8fHllKEdlLDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW0dlXT8t''@;'; + put 'put ''MSooMjU1LXRoaXNbR2VdKzEpOnRoaXNbR2VdfSxxLnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbihHZSxVZSl7R2U+Pj49MCxVZXx8eWUoR2UsMix0aGlzLmxlbmd0aCk7Y29uc3QgeXQ9dGhpc1tHZV18dGhpc1tHZSsxXTw8ODtyZXR1cm4gMzI3NjgmeXQ/NDI5NDkwMTc2MHx5dDp5''@;'; + put 'put ''dH0scS5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24oR2UsVWUpe0dlPj4+PTAsVWV8fHllKEdlLDIsdGhpcy5sZW5ndGgpO2NvbnN0IHl0PXRoaXNbR2UrMV18dGhpc1tHZV08PDg7cmV0dXJuIDMyNzY4Jnl0PzQyOTQ5MDE3NjB8eXQ6eXR9LHEucHJvdG90eXBlLnJlYWRJbnQzMkxF''@;'; + put 'put ''PWZ1bmN0aW9uKEdlLFVlKXtyZXR1cm4gR2U+Pj49MCxVZXx8eWUoR2UsNCx0aGlzLmxlbmd0aCksdGhpc1tHZV18dGhpc1tHZSsxXTw8OHx0aGlzW0dlKzJdPDwxNnx0aGlzW0dlKzNdPDwyNH0scS5wcm90b3R5cGUucmVhZEludDMyQkU9ZnVuY3Rpb24oR2UsVWUpe3JldHVybiBHZT4+Pj0w''@;'; + put 'put ''LFVlfHx5ZShHZSw0LHRoaXMubGVuZ3RoKSx0aGlzW0dlXTw8MjR8dGhpc1tHZSsxXTw8MTZ8dGhpc1tHZSsyXTw8OHx0aGlzW0dlKzNdfSxxLnByb3RvdHlwZS5yZWFkQmlnSW50NjRMRT1mdChmdW5jdGlvbihHZSl7aHQoR2U+Pj49MCwib2Zmc2V0Iik7Y29uc3QgVWU9dGhpc1tHZV0seXQ9''@;'; + put 'put ''dGhpc1tHZSs3XTtyZXR1cm4gdm9pZCAwIT09VWUmJnZvaWQgMCE9PXl0fHxCdChHZSx0aGlzLmxlbmd0aC04KSwoQmlnSW50KHRoaXNbR2UrNF0rMjU2KnRoaXNbR2UrNV0rNjU1MzYqdGhpc1tHZSs2XSsoeXQ8PDI0KSk8PEJpZ0ludCgzMikpK0JpZ0ludChVZSsyNTYqdGhpc1srK0dlXSs2''@;'; + put 'put ''NTUzNip0aGlzWysrR2VdKzE2Nzc3MjE2KnRoaXNbKytHZV0pfSkscS5wcm90b3R5cGUucmVhZEJpZ0ludDY0QkU9ZnQoZnVuY3Rpb24oR2Upe2h0KEdlPj4+PTAsIm9mZnNldCIpO2NvbnN0IFVlPXRoaXNbR2VdLHl0PXRoaXNbR2UrN107dm9pZCAwIT09VWUmJnZvaWQgMCE9PXl0fHxCdChH''@;'; + put 'put ''ZSx0aGlzLmxlbmd0aC04KTtjb25zdCBqdD0oVWU8PDI0KSs2NTUzNip0aGlzWysrR2VdKzI1Nip0aGlzWysrR2VdK3RoaXNbKytHZV07cmV0dXJuKEJpZ0ludChqdCk8PEJpZ0ludCgzMikpK0JpZ0ludCgxNjc3NzIxNip0aGlzWysrR2VdKzY1NTM2KnRoaXNbKytHZV0rMjU2KnRoaXNbKytH''@;'; + put 'put ''ZV0reXQpfSkscS5wcm90b3R5cGUucmVhZEZsb2F0TEU9ZnVuY3Rpb24oR2UsVWUpe3JldHVybiBHZT4+Pj0wLFVlfHx5ZShHZSw0LHRoaXMubGVuZ3RoKSxZLnJlYWQodGhpcyxHZSwhMCwyMyw0KX0scS5wcm90b3R5cGUucmVhZEZsb2F0QkU9ZnVuY3Rpb24oR2UsVWUpe3JldHVybiBHZT4+''@;'; + put 'put ''Pj0wLFVlfHx5ZShHZSw0LHRoaXMubGVuZ3RoKSxZLnJlYWQodGhpcyxHZSwhMSwyMyw0KX0scS5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKEdlLFVlKXtyZXR1cm4gR2U+Pj49MCxVZXx8eWUoR2UsOCx0aGlzLmxlbmd0aCksWS5yZWFkKHRoaXMsR2UsITAsNTIsOCl9LHEucHJv''@;'; + put 'put ''dG90eXBlLnJlYWREb3VibGVCRT1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAsVWV8fHllKEdlLDgsdGhpcy5sZW5ndGgpLFkucmVhZCh0aGlzLEdlLCExLDUyLDgpfSxxLnByb3RvdHlwZS53cml0ZVVpbnRMRT1xLnByb3RvdHlwZS53cml0ZVVJbnRMRT1mdW5jdGlvbihHZSxVZSx5''@;'; + put 'put ''dCxqdCl7R2U9K0dlLFVlPj4+PTAseXQ+Pj49MCwhanQmJkNlKHRoaXMsR2UsVWUseXQsTWF0aC5wb3coMiw4Knl0KS0xLDApO2xldCBRdD0xLGduPTA7Zm9yKHRoaXNbVWVdPTI1NSZHZTsrK2duPHl0JiYoUXQqPTI1Nik7KXRoaXNbVWUrZ25dPUdlL1F0JjI1NTtyZXR1cm4gVWUreXR9LHEu''@;'; + put 'put ''cHJvdG90eXBlLndyaXRlVWludEJFPXEucHJvdG90eXBlLndyaXRlVUludEJFPWZ1bmN0aW9uKEdlLFVlLHl0LGp0KXtHZT0rR2UsVWU+Pj49MCx5dD4+Pj0wLCFqdCYmQ2UodGhpcyxHZSxVZSx5dCxNYXRoLnBvdygyLDgqeXQpLTEsMCk7bGV0IFF0PXl0LTEsZ249MTtmb3IodGhpc1tVZStR''@;'; + put 'put ''dF09MjU1JkdlOy0tUXQ+PTAmJihnbio9MjU2KTspdGhpc1tVZStRdF09R2UvZ24mMjU1O3JldHVybiBVZSt5dH0scS5wcm90b3R5cGUud3JpdGVVaW50OD1xLnByb3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gR2U9K0dlLFVlPj4+PTAseXR8fENlKHRoaXMs''@;'; + put 'put ''R2UsVWUsMSwyNTUsMCksdGhpc1tVZV09MjU1JkdlLFVlKzF9LHEucHJvdG90eXBlLndyaXRlVWludDE2TEU9cS5wcm90b3R5cGUud3JpdGVVSW50MTZMRT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEdlPStHZSxVZT4+Pj0wLHl0fHxDZSh0aGlzLEdlLFVlLDIsNjU1MzUsMCksdGhpc1tV''@;'; + put 'put ''ZV09MjU1JkdlLHRoaXNbVWUrMV09R2U+Pj44LFVlKzJ9LHEucHJvdG90eXBlLndyaXRlVWludDE2QkU9cS5wcm90b3R5cGUud3JpdGVVSW50MTZCRT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEdlPStHZSxVZT4+Pj0wLHl0fHxDZSh0aGlzLEdlLFVlLDIsNjU1MzUsMCksdGhpc1tVZV09''@;'; + put 'put ''R2U+Pj44LHRoaXNbVWUrMV09MjU1JkdlLFVlKzJ9LHEucHJvdG90eXBlLndyaXRlVWludDMyTEU9cS5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEdlPStHZSxVZT4+Pj0wLHl0fHxDZSh0aGlzLEdlLFVlLDQsNDI5NDk2NzI5NSwwKSx0aGlzW1Vl''@;'; + put 'put ''KzNdPUdlPj4+MjQsdGhpc1tVZSsyXT1HZT4+PjE2LHRoaXNbVWUrMV09R2U+Pj44LHRoaXNbVWVdPTI1NSZHZSxVZSs0fSxxLnByb3RvdHlwZS53cml0ZVVpbnQzMkJFPXEucHJvdG90eXBlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBHZT0rR2UsVWU+Pj49MCx5''@;'; + put 'put ''dHx8Q2UodGhpcyxHZSxVZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tVZV09R2U+Pj4yNCx0aGlzW1VlKzFdPUdlPj4+MTYsdGhpc1tVZSsyXT1HZT4+PjgsdGhpc1tVZSszXT0yNTUmR2UsVWUrNH0scS5wcm90b3R5cGUud3JpdGVCaWdVSW50NjRMRT1mdChmdW5jdGlvbihHZSxVZT0wKXtyZXR1''@;'; + put 'put ''cm4gRGUodGhpcyxHZSxVZSxCaWdJbnQoMCksQmlnSW50KCIweGZmZmZmZmZmZmZmZmZmZmYiKSl9KSxxLnByb3RvdHlwZS53cml0ZUJpZ1VJbnQ2NEJFPWZ0KGZ1bmN0aW9uKEdlLFVlPTApe3JldHVybiBQZSh0aGlzLEdlLFVlLEJpZ0ludCgwKSxCaWdJbnQoIjB4ZmZmZmZmZmZmZmZmZmZm''@;'; + put 'put ''ZiIpKX0pLHEucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24oR2UsVWUseXQsanQpe2lmKEdlPStHZSxVZT4+Pj0wLCFqdCl7Y29uc3QgeW49TWF0aC5wb3coMiw4Knl0LTEpO0NlKHRoaXMsR2UsVWUseXQseW4tMSwteW4pfWxldCBRdD0wLGduPTEsZG49MDtmb3IodGhpc1tVZV09MjU1''@;'; + put 'put ''JkdlOysrUXQ8eXQmJihnbio9MjU2KTspR2U8MCYmMD09PWRuJiYwIT09dGhpc1tVZStRdC0xXSYmKGRuPTEpLHRoaXNbVWUrUXRdPShHZS9nbj4+MCktZG4mMjU1O3JldHVybiBVZSt5dH0scS5wcm90b3R5cGUud3JpdGVJbnRCRT1mdW5jdGlvbihHZSxVZSx5dCxqdCl7aWYoR2U9K0dlLFVl''@;'; + put 'put ''Pj4+PTAsIWp0KXtjb25zdCB5bj1NYXRoLnBvdygyLDgqeXQtMSk7Q2UodGhpcyxHZSxVZSx5dCx5bi0xLC15bil9bGV0IFF0PXl0LTEsZ249MSxkbj0wO2Zvcih0aGlzW1VlK1F0XT0yNTUmR2U7LS1RdD49MCYmKGduKj0yNTYpOylHZTwwJiYwPT09ZG4mJjAhPT10aGlzW1VlK1F0KzFdJiYo''@;'; + put 'put ''ZG49MSksdGhpc1tVZStRdF09KEdlL2duPj4wKS1kbiYyNTU7cmV0dXJuIFVlK3l0fSxxLnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBHZT0rR2UsVWU+Pj49MCx5dHx8Q2UodGhpcyxHZSxVZSwxLDEyNywtMTI4KSxHZTwwJiYoR2U9MjU1K0dlKzEpLHRo''@;'; + put 'put ''aXNbVWVdPTI1NSZHZSxVZSsxfSxxLnByb3RvdHlwZS53cml0ZUludDE2TEU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBHZT0rR2UsVWU+Pj49MCx5dHx8Q2UodGhpcyxHZSxVZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tVZV09MjU1JkdlLHRoaXNbVWUrMV09R2U+Pj44LFVlKzJ9LHEucHJv''@;'; + put 'put ''dG90eXBlLndyaXRlSW50MTZCRT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEdlPStHZSxVZT4+Pj0wLHl0fHxDZSh0aGlzLEdlLFVlLDIsMzI3NjcsLTMyNzY4KSx0aGlzW1VlXT1HZT4+PjgsdGhpc1tVZSsxXT0yNTUmR2UsVWUrMn0scS5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0''@;'; + put 'put ''aW9uKEdlLFVlLHl0KXtyZXR1cm4gR2U9K0dlLFVlPj4+PTAseXR8fENlKHRoaXMsR2UsVWUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW1VlXT0yNTUmR2UsdGhpc1tVZSsxXT1HZT4+PjgsdGhpc1tVZSsyXT1HZT4+PjE2LHRoaXNbVWUrM109R2U+Pj4yNCxVZSs0fSxxLnByb3Rv''@;'; + put 'put ''dHlwZS53cml0ZUludDMyQkU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBHZT0rR2UsVWU+Pj49MCx5dHx8Q2UodGhpcyxHZSxVZSw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLEdlPDAmJihHZT00Mjk0OTY3Mjk1K0dlKzEpLHRoaXNbVWVdPUdlPj4+MjQsdGhpc1tVZSsxXT1HZT4+PjE2''@;'; + put 'put ''LHRoaXNbVWUrMl09R2U+Pj44LHRoaXNbVWUrM109MjU1JkdlLFVlKzR9LHEucHJvdG90eXBlLndyaXRlQmlnSW50NjRMRT1mdChmdW5jdGlvbihHZSxVZT0wKXtyZXR1cm4gRGUodGhpcyxHZSxVZSwtQmlnSW50KCIweDgwMDAwMDAwMDAwMDAwMDAiKSxCaWdJbnQoIjB4N2ZmZmZmZmZmZmZm''@;'; + put 'put ''ZmZmZiIpKX0pLHEucHJvdG90eXBlLndyaXRlQmlnSW50NjRCRT1mdChmdW5jdGlvbihHZSxVZT0wKXtyZXR1cm4gUGUodGhpcyxHZSxVZSwtQmlnSW50KCIweDgwMDAwMDAwMDAwMDAwMDAiKSxCaWdJbnQoIjB4N2ZmZmZmZmZmZmZmZmZmZiIpKX0pLHEucHJvdG90eXBlLndyaXRlRmxvYXRM''@;'; + put 'put ''RT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuICRlKHRoaXMsR2UsVWUsITAseXQpfSxxLnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiAkZSh0aGlzLEdlLFVlLCExLHl0KX0scS5wcm90b3R5cGUud3JpdGVEb3VibGVMRT1mdW5jdGlvbihHZSxVZSx5''@;'; + put 'put ''dCl7cmV0dXJuIGd0KHRoaXMsR2UsVWUsITAseXQpfSxxLnByb3RvdHlwZS53cml0ZURvdWJsZUJFPWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gZ3QodGhpcyxHZSxVZSwhMSx5dCl9LHEucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oR2UsVWUseXQsanQpe2lmKCFxLmlzQnVmZmVyKEdlKSl0''@;'; + put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJhcmd1bWVudCBzaG91bGQgYmUgYSBCdWZmZXIiKTtpZih5dHx8KHl0PTApLGp0fHwwPT09anR8fChqdD10aGlzLmxlbmd0aCksVWU+PUdlLmxlbmd0aCYmKFVlPUdlLmxlbmd0aCksVWV8fChVZT0wKSxqdD4wJiZqdDx5dCYmKGp0PXl0KSxqdD09PXl0fHww''@;'; + put 'put ''PT09R2UubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYoVWU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kcyIpO2lmKHl0PDB8fHl0Pj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7''@;'; + put 'put ''aWYoanQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlRW5kIG91dCBvZiBib3VuZHMiKTtqdD50aGlzLmxlbmd0aCYmKGp0PXRoaXMubGVuZ3RoKSxHZS5sZW5ndGgtVWU8anQteXQmJihqdD1HZS5sZW5ndGgtVWUreXQpO2NvbnN0IFF0PWp0LXl0O3JldHVybiB0aGlzPT09R2UmJiJm''@;'; + put 'put ''dW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluP3RoaXMuY29weVdpdGhpbihVZSx5dCxqdCk6VWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoR2UsdGhpcy5zdWJhcnJheSh5dCxqdCksVWUpLFF0fSxxLnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uKEdl''@;'; + put 'put ''LFVlLHl0LGp0KXtpZigic3RyaW5nIj09dHlwZW9mIEdlKXtpZigic3RyaW5nIj09dHlwZW9mIFVlPyhqdD1VZSxVZT0wLHl0PXRoaXMubGVuZ3RoKToic3RyaW5nIj09dHlwZW9mIHl0JiYoanQ9eXQseXQ9dGhpcy5sZW5ndGgpLHZvaWQgMCE9PWp0JiYic3RyaW5nIiE9dHlwZW9mIGp0KXRo''@;'; + put 'put ''cm93IG5ldyBUeXBlRXJyb3IoImVuY29kaW5nIG11c3QgYmUgYSBzdHJpbmciKTtpZigic3RyaW5nIj09dHlwZW9mIGp0JiYhcS5pc0VuY29kaW5nKGp0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2p0KTtpZigxPT09R2UubGVuZ3RoKXtjb25zdCBnbj1HZS5j''@;'; + put 'put ''aGFyQ29kZUF0KDApOygidXRmOCI9PT1qdCYmZ248MTI4fHwibGF0aW4xIj09PWp0KSYmKEdlPWduKX19ZWxzZSJudW1iZXIiPT10eXBlb2YgR2U/R2UmPTI1NToiYm9vbGVhbiI9PXR5cGVvZiBHZSYmKEdlPU51bWJlcihHZSkpO2lmKFVlPDB8fHRoaXMubGVuZ3RoPFVlfHx0aGlzLmxlbmd0''@;'; + put 'put ''aDx5dCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiT3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoeXQ8PVVlKXJldHVybiB0aGlzO2xldCBRdDtpZihVZT4+Pj0wLHl0PXZvaWQgMD09PXl0P3RoaXMubGVuZ3RoOnl0Pj4+MCxHZXx8KEdlPTApLCJudW1iZXIiPT10eXBlb2YgR2UpZm9yKFF0PVVlO1F0''@;'; + put 'put ''PHl0OysrUXQpdGhpc1tRdF09R2U7ZWxzZXtjb25zdCBnbj1xLmlzQnVmZmVyKEdlKT9HZTpxLmZyb20oR2UsanQpLGRuPWduLmxlbmd0aDtpZigwPT09ZG4pdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIHZhbHVlICInK0dlKyciIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50ICJ2YWx1ZSInKTtm''@;'; + put 'put ''b3IoUXQ9MDtRdDx5dC1VZTsrK1F0KXRoaXNbUXQrVWVdPWduW1F0JWRuXX1yZXR1cm4gdGhpc307Y29uc3Qgd3Q9e307ZnVuY3Rpb24gdnQoR2UsVWUseXQpe3d0W0dlXT1jbGFzcyBleHRlbmRzIHl0e2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywi''@;'; + put 'put ''bWVzc2FnZSIse3ZhbHVlOlVlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0aGlzLm5hbWU9YCR7dGhpcy5uYW1lfSBbJHtHZX1dYCxkZWxldGUgdGhpcy5uYW1lfWdldCBjb2RlKCl7cmV0dXJuIEdlfXNldCBjb2RlKGp0KXtPYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydHkodGhpcywiY29kZSIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOmp0LHdyaXRhYmxlOiEwfSl9dG9TdHJpbmcoKXtyZXR1cm5gJHt0aGlzLm5hbWV9IFske0dlfV06ICR7dGhpcy5tZXNzYWdlfWB9fX1mdW5jdGlvbiBBdChHZSl7bGV0IFVlPSIiLHl0''@;'; + put 'put ''PUdlLmxlbmd0aDtjb25zdCBqdD0iLSI9PT1HZVswXT8xOjA7Zm9yKDt5dD49anQrNDt5dC09MylVZT1gXyR7R2Uuc2xpY2UoeXQtMyx5dCl9JHtVZX1gO3JldHVybmAke0dlLnNsaWNlKDAseXQpfSR7VWV9YH1mdW5jdGlvbiBtdChHZSxVZSx5dCxqdCxRdCxnbil7aWYoR2U+eXR8fEdlPFVl''@;'; + put 'put ''KXtjb25zdCBkbj0iYmlnaW50Ij09dHlwZW9mIFVlPyJuIjoiIjtsZXQgeW47dGhyb3cgeW49Z24+Mz8wPT09VWV8fFVlPT09QmlnSW50KDApP2A+PSAwJHtkbn0gYW5kIDwgMiR7ZG59ICoqICR7OCooZ24rMSl9JHtkbn1gOmA+PSAtKDIke2RufSAqKiAkezgqKGduKzEpLTF9JHtkbn0pIGFu''@;'; + put 'put ''ZCA8IDIgKiogJHs4KihnbisxKS0xfSR7ZG59YDpgPj0gJHtVZX0ke2RufSBhbmQgPD0gJHt5dH0ke2RufWAsbmV3IHd0LkVSUl9PVVRfT0ZfUkFOR0UoInZhbHVlIix5bixHZSl9dmFyIGRuLHluLGxuO2RuPWp0LGxuPWduLGh0KHluPVF0LCJvZmZzZXQiKSx2b2lkIDAhPT1kblt5bl0mJnZv''@;'; + put 'put ''aWQgMCE9PWRuW3luK2xuXXx8QnQoeW4sZG4ubGVuZ3RoLShsbisxKSl9ZnVuY3Rpb24gaHQoR2UsVWUpe2lmKCJudW1iZXIiIT10eXBlb2YgR2UpdGhyb3cgbmV3IHd0LkVSUl9JTlZBTElEX0FSR19UWVBFKFVlLCJudW1iZXIiLEdlKX1mdW5jdGlvbiBCdChHZSxVZSx5dCl7dGhyb3cgTWF0''@;'; + put 'put ''aC5mbG9vcihHZSkhPT1HZT8oaHQoR2UseXQpLG5ldyB3dC5FUlJfT1VUX09GX1JBTkdFKHl0fHwib2Zmc2V0IiwiYW4gaW50ZWdlciIsR2UpKTpVZTwwP25ldyB3dC5FUlJfQlVGRkVSX09VVF9PRl9CT1VORFM6bmV3IHd0LkVSUl9PVVRfT0ZfUkFOR0UoeXR8fCJvZmZzZXQiLGA+PSAke3l0''@;'; + put 'put ''PzE6MH0gYW5kIDw9ICR7VWV9YCxHZSl9dnQoIkVSUl9CVUZGRVJfT1VUX09GX0JPVU5EUyIsZnVuY3Rpb24oR2Upe3JldHVybiBHZT9gJHtHZX0gaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzYDoiQXR0ZW1wdCB0byBhY2Nlc3MgbWVtb3J5IG91dHNpZGUgYnVmZmVyIGJvdW5kcyJ9LFJh''@;'; + put 'put ''bmdlRXJyb3IpLHZ0KCJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsZnVuY3Rpb24oR2UsVWUpe3JldHVybmBUaGUgIiR7R2V9IiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlICR7dHlwZW9mIFVlfWB9LFR5cGVFcnJvciksdnQoIkVSUl9PVVRfT0ZfUkFOR0Ui''@;'; + put 'put ''LGZ1bmN0aW9uKEdlLFVlLHl0KXtsZXQganQ9YFRoZSB2YWx1ZSBvZiAiJHtHZX0iIGlzIG91dCBvZiByYW5nZS5gLFF0PXl0O3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKHl0KSYmTWF0aC5hYnMoeXQpPjQyOTQ5NjcyOTY/UXQ9QXQoU3RyaW5nKHl0KSk6ImJpZ2ludCI9PXR5cGVvZiB5dCYm''@;'; + put 'put ''KFF0PVN0cmluZyh5dCksKHl0PmJNKEJpZ0ludCgyKSxCaWdJbnQoMzIpKXx8eXQ8LWJNKEJpZ0ludCgyKSxCaWdJbnQoMzIpKSkmJihRdD1BdChRdCkpLFF0Kz0ibiIpLGp0Kz1gIEl0IG11c3QgYmUgJHtVZX0uIFJlY2VpdmVkICR7UXR9YCxqdH0sUmFuZ2VFcnJvcik7Y29uc3Qgb249L1te''@;'; + put 'put ''Ky8wLTlBLVphLXotX10vZztmdW5jdGlvbiBfdChHZSxVZSl7bGV0IHl0O1VlPVVlfHwxLzA7Y29uc3QganQ9R2UubGVuZ3RoO2xldCBRdD1udWxsO2NvbnN0IGduPVtdO2ZvcihsZXQgZG49MDtkbjxqdDsrK2RuKXtpZih5dD1HZS5jaGFyQ29kZUF0KGRuKSx5dD41NTI5NSYmeXQ8NTczNDQp''@;'; + put 'put ''e2lmKCFRdCl7aWYoeXQ+NTYzMTkpeyhVZS09Myk+LTEmJmduLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWlmKGRuKzE9PT1qdCl7KFVlLT0zKT4tMSYmZ24ucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9UXQ9eXQ7Y29udGludWV9aWYoeXQ8NTYzMjApeyhVZS09Myk+LTEmJmduLnB1''@;'; + put 'put ''c2goMjM5LDE5MSwxODkpLFF0PXl0O2NvbnRpbnVlfXl0PTY1NTM2KyhRdC01NTI5Njw8MTB8eXQtNTYzMjApfWVsc2UgUXQmJihVZS09Myk+LTEmJmduLnB1c2goMjM5LDE5MSwxODkpO2lmKFF0PW51bGwseXQ8MTI4KXtpZigoVWUtPTEpPDApYnJlYWs7Z24ucHVzaCh5dCl9ZWxzZSBpZih5''@;'; + put 'put ''dDwyMDQ4KXtpZigoVWUtPTIpPDApYnJlYWs7Z24ucHVzaCh5dD4+NnwxOTIsNjMmeXR8MTI4KX1lbHNlIGlmKHl0PDY1NTM2KXtpZigoVWUtPTMpPDApYnJlYWs7Z24ucHVzaCh5dD4+MTJ8MjI0LHl0Pj42JjYzfDEyOCw2MyZ5dHwxMjgpfWVsc2V7aWYoISh5dDwxMTE0MTEyKSl0aHJvdyBu''@;'; + put 'put ''ZXcgRXJyb3IoIkludmFsaWQgY29kZSBwb2ludCIpO2lmKChVZS09NCk8MClicmVhaztnbi5wdXNoKHl0Pj4xOHwyNDAseXQ+PjEyJjYzfDEyOCx5dD4+NiY2M3wxMjgsNjMmeXR8MTI4KX19cmV0dXJuIGdufWZ1bmN0aW9uIHR0KEdlKXtyZXR1cm4gbGUudG9CeXRlQXJyYXkoZnVuY3Rpb24o''@;'; + put 'put ''VWUpe2lmKChVZT0oVWU9VWUuc3BsaXQoIj0iKVswXSkudHJpbSgpLnJlcGxhY2Uob24sIiIpKS5sZW5ndGg8MilyZXR1cm4iIjtmb3IoO1VlLmxlbmd0aCU0IT0wOylVZSs9Ij0iO3JldHVybiBVZX0oR2UpKX1mdW5jdGlvbiBldChHZSxVZSx5dCxqdCl7bGV0IFF0O2ZvcihRdD0wO1F0PGp0''@;'; + put 'put ''JiYhKFF0K3l0Pj1VZS5sZW5ndGh8fFF0Pj1HZS5sZW5ndGgpOysrUXQpVWVbUXQreXRdPUdlW1F0XTtyZXR1cm4gUXR9ZnVuY3Rpb24gYXQoR2UsVWUpe3JldHVybiBHZSBpbnN0YW5jZW9mIFVlfHxudWxsIT1HZSYmbnVsbCE9R2UuY29uc3RydWN0b3ImJm51bGwhPUdlLmNvbnN0cnVjdG9y''@;'; + put 'put ''Lm5hbWUmJkdlLmNvbnN0cnVjdG9yLm5hbWU9PT1VZS5uYW1lfWZ1bmN0aW9uIEx0KEdlKXtyZXR1cm4gR2UhPUdlfWNvbnN0IEN0PWZ1bmN0aW9uKCl7Y29uc3QgR2U9IjAxMjM0NTY3ODlhYmNkZWYiLFVlPW5ldyBBcnJheSgyNTYpO2ZvcihsZXQgeXQ9MDt5dDwxNjsrK3l0KXtjb25zdCBq''@;'; + put 'put ''dD0xNip5dDtmb3IobGV0IFF0PTA7UXQ8MTY7KytRdClVZVtqdCtRdF09R2VbeXRdK0dlW1F0XX1yZXR1cm4gVWV9KCk7ZnVuY3Rpb24gZnQoR2Upe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgQmlnSW50P0h0OkdlfWZ1bmN0aW9uIEh0KCl7dGhyb3cgbmV3IEVycm9yKCJCaWdJbnQgbm90''@;'; + put 'put ''IHN1cHBvcnRlZCIpfX0sMTkyNDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDIxMCksbGU9Wig1NTU5KSxZPWxlKGllKCJTdHJpbmcucHJvdG90eXBlLmluZGV4T2YiKSk7VS5leHBvcnRzPWZ1bmN0aW9uKFcsTil7dmFyIGVlPWllKFcsISFOKTtyZXR1cm4iZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgZWUmJlkoVywiLnByb3RvdHlwZS4iKT4tMT9sZShlZSk6ZWV9fSw1NTU5OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooODYxMiksbGU9WigyMTApLFk9bGUoIiVGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHklIiksVz1sZSgiJUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsJSIp''@;'; + put 'put ''LE49bGUoIiVSZWZsZWN0LmFwcGx5JSIsITApfHxpZS5jYWxsKFcsWSksZWU9bGUoIiVPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yJSIsITApLHE9bGUoIiVPYmplY3QuZGVmaW5lUHJvcGVydHklIiwhMCksSj1sZSgiJU1hdGgubWF4JSIpO2lmKHEpdHJ5e3Eoe30sImEiLHt2YWx1''@;'; + put 'put ''ZToxfSl9Y2F0Y2gob2Upe3E9bnVsbH1VLmV4cG9ydHM9ZnVuY3Rpb24ob2Upe3ZhciBjZT1OKGllLFcsYXJndW1lbnRzKTtyZXR1cm4gZWUmJnEmJmVlKGNlLCJsZW5ndGgiKS5jb25maWd1cmFibGUmJnEoY2UsImxlbmd0aCIse3ZhbHVlOjErSigwLG9lLmxlbmd0aC0oYXJndW1lbnRzLmxl''@;'; + put 'put ''bmd0aC0xKSl9KSxjZX07dmFyIHNlPWZ1bmN0aW9uKCl7cmV0dXJuIE4oaWUsWSxhcmd1bWVudHMpfTtxP3EoVS5leHBvcnRzLCJhcHBseSIse3ZhbHVlOnNlfSk6VS5leHBvcnRzLmFwcGx5PXNlfSwxMDI3OihVLFEsWik9Pnt2YXIgaWU9Wig5NTA5KS5CdWZmZXIsbGU9WigyODMwKS5UcmFu''@;'; + put 'put ''c2Zvcm0sWT1aKDI1NTMpLlN0cmluZ0RlY29kZXI7ZnVuY3Rpb24gVyhOKXtsZS5jYWxsKHRoaXMpLHRoaXMuaGFzaE1vZGU9InN0cmluZyI9PXR5cGVvZiBOLHRoaXMuaGFzaE1vZGU/dGhpc1tOXT10aGlzLl9maW5hbE9yRGlnZXN0OnRoaXMuZmluYWw9dGhpcy5fZmluYWxPckRpZ2VzdCx0''@;'; + put 'put ''aGlzLl9maW5hbCYmKHRoaXMuX19maW5hbD10aGlzLl9maW5hbCx0aGlzLl9maW5hbD1udWxsKSx0aGlzLl9kZWNvZGVyPW51bGwsdGhpcy5fZW5jb2Rpbmc9bnVsbH1aKDU3MTcpKFcsbGUpLFcucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihOLGVlLHEpeyJzdHJpbmciPT10eXBlb2YgTiYm''@;'; + put 'put ''KE49aWUuZnJvbShOLGVlKSk7dmFyIEo9dGhpcy5fdXBkYXRlKE4pO3JldHVybiB0aGlzLmhhc2hNb2RlP3RoaXM6KHEmJihKPXRoaXMuX3RvU3RyaW5nKEoscSkpLEopfSxXLnByb3RvdHlwZS5zZXRBdXRvUGFkZGluZz1mdW5jdGlvbigpe30sVy5wcm90b3R5cGUuZ2V0QXV0aFRhZz1mdW5j''@;'; + put 'put ''dGlvbigpe3Rocm93IG5ldyBFcnJvcigidHJ5aW5nIHRvIGdldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSxXLnByb3RvdHlwZS5zZXRBdXRoVGFnPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gc2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRl''@;'; + put 'put ''Iil9LFcucHJvdG90eXBlLnNldEFBRD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigidHJ5aW5nIHRvIHNldCBhYWQgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKX0sVy5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihOLGVlLHEpe3ZhciBKO3RyeXt0aGlzLmhhc2hNb2RlP3RoaXMuX3Vw''@;'; + put 'put ''ZGF0ZShOKTp0aGlzLnB1c2godGhpcy5fdXBkYXRlKE4pKX1jYXRjaChzZSl7Sj1zZX1maW5hbGx5e3EoSil9fSxXLnByb3RvdHlwZS5fZmx1c2g9ZnVuY3Rpb24oTil7dmFyIGVlO3RyeXt0aGlzLnB1c2godGhpcy5fX2ZpbmFsKCkpfWNhdGNoKHEpe2VlPXF9TihlZSl9LFcucHJvdG90eXBl''@;'; + put 'put ''Ll9maW5hbE9yRGlnZXN0PWZ1bmN0aW9uKE4pe3ZhciBlZT10aGlzLl9fZmluYWwoKXx8aWUuYWxsb2MoMCk7cmV0dXJuIE4mJihlZT10aGlzLl90b1N0cmluZyhlZSxOLCEwKSksZWV9LFcucHJvdG90eXBlLl90b1N0cmluZz1mdW5jdGlvbihOLGVlLHEpe2lmKHRoaXMuX2RlY29kZXJ8fCh0''@;'; + put 'put ''aGlzLl9kZWNvZGVyPW5ldyBZKGVlKSx0aGlzLl9lbmNvZGluZz1lZSksdGhpcy5fZW5jb2RpbmchPT1lZSl0aHJvdyBuZXcgRXJyb3IoImNhbid0IHN3aXRjaCBlbmNvZGluZ3MiKTt2YXIgSj10aGlzLl9kZWNvZGVyLndyaXRlKE4pO3JldHVybiBxJiYoSis9dGhpcy5fZGVjb2Rlci5lbmQo''@;'; + put 'put ''KSksSn0sVS5leHBvcnRzPVd9LDEwNDg6VT0+e1UuZXhwb3J0cz1mdW5jdGlvbihaLGllKXtmb3IodmFyIGxlPVtdLFk9MDtZPFoubGVuZ3RoO1krKyl7dmFyIFc9aWUoWltZXSxZKTtRKFcpP2xlLnB1c2guYXBwbHkobGUsVyk6bGUucHVzaChXKX1yZXR1cm4gbGV9O3ZhciBRPUFycmF5Lmlz''@;'; + put 'put ''QXJyYXl8fGZ1bmN0aW9uKFope3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoWil9fSw1MTA4OihVLFEsWik9Pnt2YXIgaWU9Wig5NTM5KSxsZT1aKDkyODIpO2Z1bmN0aW9uIFkoKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX12YXIg''@;'; + put 'put ''VyxOPUFycmF5LnByb3RvdHlwZS5zbGljZSxlZT17fTtXPXZvaWQgMCE9PVouZyYmWi5nLmNvbnNvbGU/Wi5nLmNvbnNvbGU6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5jb25zb2xlP3dpbmRvdy5jb25zb2xlOnt9O2Zvcih2YXIgcT1bW2Z1bmN0aW9uKCl7fSwibG9nIl0s''@;'; + put 'put ''W2Z1bmN0aW9uKCl7Vy5sb2cuYXBwbHkoVyxhcmd1bWVudHMpfSwiaW5mbyJdLFtmdW5jdGlvbigpe1cubG9nLmFwcGx5KFcsYXJndW1lbnRzKX0sIndhcm4iXSxbZnVuY3Rpb24oKXtXLndhcm4uYXBwbHkoVyxhcmd1bWVudHMpfSwiZXJyb3IiXSxbZnVuY3Rpb24oZGUpe2VlW2RlXT1ZKCl9''@;'; + put 'put ''LCJ0aW1lIl0sW2Z1bmN0aW9uKGRlKXt2YXIgdmU9ZWVbZGVdO2lmKCF2ZSl0aHJvdyBuZXcgRXJyb3IoIk5vIHN1Y2ggbGFiZWw6ICIrZGUpO2RlbGV0ZSBlZVtkZV07dmFyIEFlPVkoKS12ZTtXLmxvZyhkZSsiOiAiK0FlKyJtcyIpfSwidGltZUVuZCJdLFtmdW5jdGlvbigpe3ZhciBkZT1u''@;'; + put 'put ''ZXcgRXJyb3I7ZGUubmFtZT0iVHJhY2UiLGRlLm1lc3NhZ2U9aWUuZm9ybWF0LmFwcGx5KG51bGwsYXJndW1lbnRzKSxXLmVycm9yKGRlLnN0YWNrKX0sInRyYWNlIl0sW2Z1bmN0aW9uKGRlKXtXLmxvZyhpZS5pbnNwZWN0KGRlKSsiXG4iKX0sImRpciJdLFtmdW5jdGlvbihkZSl7aWYoIWRl''@;'; + put 'put ''KXt2YXIgdmU9Ti5jYWxsKGFyZ3VtZW50cywxKTtsZS5vayghMSxpZS5mb3JtYXQuYXBwbHkobnVsbCx2ZSkpfX0sImFzc2VydCJdXSxKPTA7SjxxLmxlbmd0aDtKKyspe3ZhciBzZT1xW0pdLGNlPXNlWzFdO1dbY2VdfHwoV1tjZV09c2VbMF0pfVUuZXhwb3J0cz1XfSw2MzkzOihVLFEsWik9''@;'; + put 'put ''Pnt2YXIgaWU9Wig4NzY0KS5CdWZmZXIsbGU9Wig2OTQ4KSxZPVooNjQyNik7VS5leHBvcnRzPWZ1bmN0aW9uKHEpe3JldHVybiBuZXcgTihxKX07dmFyIFc9e3NlY3AyNTZrMTp7bmFtZToic2VjcDI1NmsxIixieXRlTGVuZ3RoOjMyfSxzZWNwMjI0cjE6e25hbWU6InAyMjQiLGJ5dGVMZW5n''@;'; + put 'put ''dGg6Mjh9LHByaW1lMjU2djE6e25hbWU6InAyNTYiLGJ5dGVMZW5ndGg6MzJ9LHByaW1lMTkydjE6e25hbWU6InAxOTIiLGJ5dGVMZW5ndGg6MjR9LGVkMjU1MTk6e25hbWU6ImVkMjU1MTkiLGJ5dGVMZW5ndGg6MzJ9LHNlY3AzODRyMTp7bmFtZToicDM4NCIsYnl0ZUxlbmd0aDo0OH0sc2Vj''@;'; + put 'put ''cDUyMXIxOntuYW1lOiJwNTIxIixieXRlTGVuZ3RoOjY2fX07ZnVuY3Rpb24gTihxKXt0aGlzLmN1cnZlVHlwZT1XW3FdLHRoaXMuY3VydmVUeXBlfHwodGhpcy5jdXJ2ZVR5cGU9e25hbWU6cX0pLHRoaXMuY3VydmU9bmV3IGxlLmVjKHRoaXMuY3VydmVUeXBlLm5hbWUpLHRoaXMua2V5cz12''@;'; + put 'put ''b2lkIDB9ZnVuY3Rpb24gZWUocSxKLHNlKXtBcnJheS5pc0FycmF5KHEpfHwocT1xLnRvQXJyYXkoKSk7dmFyIG9lPW5ldyBpZShxKTtpZihzZSYmb2UubGVuZ3RoPHNlKXt2YXIgY2U9bmV3IGllKHNlLW9lLmxlbmd0aCk7Y2UuZmlsbCgwKSxvZT1pZS5jb25jYXQoW2NlLG9lXSl9cmV0dXJu''@;'; + put 'put ''IEo/b2UudG9TdHJpbmcoSik6b2V9Vy5wMjI0PVcuc2VjcDIyNHIxLFcucDI1Nj1XLnNlY3AyNTZyMT1XLnByaW1lMjU2djEsVy5wMTkyPVcuc2VjcDE5MnIxPVcucHJpbWUxOTJ2MSxXLnAzODQ9Vy5zZWNwMzg0cjEsVy5wNTIxPVcuc2VjcDUyMXIxLE4ucHJvdG90eXBlLmdlbmVyYXRlS2V5''@;'; + put 'put ''cz1mdW5jdGlvbihxLEope3JldHVybiB0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCksdGhpcy5nZXRQdWJsaWNLZXkocSxKKX0sTi5wcm90b3R5cGUuY29tcHV0ZVNlY3JldD1mdW5jdGlvbihxLEosc2Upe3JldHVybiBKPUp8fCJ1dGY4IixpZS5pc0J1ZmZlcihxKXx8KHE9bmV3''@;'; + put 'put ''IGllKHEsSikpLGVlKHRoaXMuY3VydmUua2V5RnJvbVB1YmxpYyhxKS5nZXRQdWJsaWMoKS5tdWwodGhpcy5rZXlzLmdldFByaXZhdGUoKSkuZ2V0WCgpLHNlLHRoaXMuY3VydmVUeXBlLmJ5dGVMZW5ndGgpfSxOLnByb3RvdHlwZS5nZXRQdWJsaWNLZXk9ZnVuY3Rpb24ocSxKKXt2YXIgc2U9''@;'; + put 'put ''dGhpcy5rZXlzLmdldFB1YmxpYygiY29tcHJlc3NlZCI9PT1KLCEwKTtyZXR1cm4iaHlicmlkIj09PUomJihzZVswXT1zZVtzZS5sZW5ndGgtMV0lMj83OjYpLGVlKHNlLHEpfSxOLnByb3RvdHlwZS5nZXRQcml2YXRlS2V5PWZ1bmN0aW9uKHEpe3JldHVybiBlZSh0aGlzLmtleXMuZ2V0UHJp''@;'; + put 'put ''dmF0ZSgpLHEpfSxOLnByb3RvdHlwZS5zZXRQdWJsaWNLZXk9ZnVuY3Rpb24ocSxKKXtyZXR1cm4gSj1KfHwidXRmOCIsaWUuaXNCdWZmZXIocSl8fChxPW5ldyBpZShxLEopKSx0aGlzLmtleXMuX2ltcG9ydFB1YmxpYyhxKSx0aGlzfSxOLnByb3RvdHlwZS5zZXRQcml2YXRlS2V5PWZ1bmN0''@;'; + put 'put ''aW9uKHEsSil7Sj1KfHwidXRmOCIsaWUuaXNCdWZmZXIocSl8fChxPW5ldyBpZShxLEopKTt2YXIgc2U9bmV3IFkocSk7cmV0dXJuIHNlPXNlLnRvU3RyaW5nKDE2KSx0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCksdGhpcy5rZXlzLl9pbXBvcnRQcml2YXRlKHNlKSx0aGlzfX0s''@;'; + put 'put ''NjQyNjpmdW5jdGlvbihVLFEsWil7IWZ1bmN0aW9uKGllLGxlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gWSh4LFApe2lmKCF4KXRocm93IG5ldyBFcnJvcihQfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIFcoeCxQKXt4LnN1cGVyXz1QO3ZhciBWPWZ1bmN0aW9uKCl7fTtWLnByb3Rv''@;'; + put 'put ''dHlwZT1QLnByb3RvdHlwZSx4LnByb3RvdHlwZT1uZXcgVix4LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj14fWZ1bmN0aW9uIE4oeCxQLFYpe2lmKE4uaXNCTih4KSlyZXR1cm4geDt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxs''@;'; + put 'put ''IT09eCYmKCJsZSIhPT1QJiYiYmUiIT09UHx8KFY9UCxQPTEwKSx0aGlzLl9pbml0KHh8fDAsUHx8MTAsVnx8ImJlIikpfXZhciBlZTsib2JqZWN0Ij09dHlwZW9mIGllP2llLmV4cG9ydHM9TjpsZS5CTj1OLE4uQk49TixOLndvcmRTaXplPTI2O3RyeXtlZT0idW5kZWZpbmVkIiE9dHlwZW9m''@;'; + put 'put ''IHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOlooODYyMykuQnVmZmVyfWNhdGNoKHgpe31mdW5jdGlvbiBxKHgsUCl7dmFyIFY9eC5jaGFyQ29kZUF0KFApO3JldHVybiBWPj02NSYmVjw9NzA/Vi01NTpWPj05NyYmVjw9MTAyP1YtODc6Vi00OCYxNX1mdW5j''@;'; + put 'put ''dGlvbiBKKHgsUCxWKXt2YXIgVD1xKHgsVik7cmV0dXJuIFYtMT49UCYmKFR8PXEoeCxWLTEpPDw0KSxUfWZ1bmN0aW9uIHNlKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9TWF0aC5taW4oeC5sZW5ndGgsVikseWU9UDt5ZTxGO3llKyspe3ZhciBDZT14LmNoYXJDb2RlQXQoeWUpLTQ4O1MqPVQs''@;'; + put 'put ''Uys9Q2U+PTQ5P0NlLTQ5KzEwOkNlPj0xNz9DZS0xNysxMDpDZX1yZXR1cm4gU31OLmlzQk49ZnVuY3Rpb24oeCl7cmV0dXJuIHggaW5zdGFuY2VvZiBOfHxudWxsIT09eCYmIm9iamVjdCI9PXR5cGVvZiB4JiZ4LmNvbnN0cnVjdG9yLndvcmRTaXplPT09Ti53b3JkU2l6ZSYmQXJyYXkuaXNB''@;'; + put 'put ''cnJheSh4LndvcmRzKX0sTi5tYXg9ZnVuY3Rpb24oeCxQKXtyZXR1cm4geC5jbXAoUCk+MD94OlB9LE4ubWluPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHguY21wKFApPDA/eDpQfSxOLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih4LFAsVil7aWYoIm51bWJlciI9PXR5cGVvZiB4KXJldHVybiB0''@;'; + put 'put ''aGlzLl9pbml0TnVtYmVyKHgsUCxWKTtpZigib2JqZWN0Ij09dHlwZW9mIHgpcmV0dXJuIHRoaXMuX2luaXRBcnJheSh4LFAsVik7ImhleCI9PT1QJiYoUD0xNiksWShQPT09KDB8UCkmJlA+PTImJlA8PTM2KTt2YXIgVD0wOyItIj09PSh4PXgudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywi''@;'; + put 'put ''IikpWzBdJiYoVCsrLHRoaXMubmVnYXRpdmU9MSksVDx4Lmxlbmd0aCYmKDE2PT09UD90aGlzLl9wYXJzZUhleCh4LFQsVik6KHRoaXMuX3BhcnNlQmFzZSh4LFAsVCksImxlIj09PVYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxQLFYpKSl9LE4ucHJvdG90eXBlLl9pbml0TnVt''@;'; + put 'put ''YmVyPWZ1bmN0aW9uKHgsUCxWKXt4PDAmJih0aGlzLm5lZ2F0aXZlPTEseD0teCkseDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmeF0sdGhpcy5sZW5ndGg9MSk6eDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ4LHgvNjcxMDg4NjQmNjcxMDg4NjNdLHRo''@;'; + put 'put ''aXMubGVuZ3RoPTIpOihZKHg8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKX0sTi5wcm90b3R5cGUuX2luaXRBcnJh''@;'; + put 'put ''eT1mdW5jdGlvbih4LFAsVil7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgubGVuZ3RoKSx4Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh4Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxl''@;'; + put 'put ''bmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT0wO3ZhciBTLEYseWU9MDtpZigiYmUiPT09Vilmb3IoVD14Lmxlbmd0aC0xLFM9MDtUPj0wO1QtPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QtMV08PDh8eFtULTJdPDwxNik8PHllJjY3MTA4ODYz''@;'; + put 'put ''LHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7ZWxzZSBpZigibGUiPT09Vilmb3IoVD0wLFM9MDtUPHgubGVuZ3RoO1QrPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QrMV08PDh8eFtUKzJdPDwxNik8PHllJjY3MTA4ODYz''@;'; + put 'put ''LHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHgsUCxWKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKHgubGVuZ3RoLVApLzYpLHRoaXMu''@;'; + put 'put ''d29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPTA7dmFyIFMsRj0wLHllPTA7aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgtMTtUPj1QO1QtPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9NjcxMDg4''@;'; + put 'put ''NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODtlbHNlIGZvcihUPSh4Lmxlbmd0aC1QKSUyPT0wP1ArMTpQO1Q8eC5sZW5ndGg7VCs9MilTPUooeCxQLFQpPDxGLHRoaXMud29yZHNbeWVdfD02NzEwODg2MyZTLEY+PTE4PyhGLT0xOCx0aGlzLndvcmRz''@;'; + put 'put ''W3llKz0xXXw9Uz4+PjI2KTpGKz04O3RoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih4LFAsVil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIFQ9MCxTPTE7Uzw9NjcxMDg4NjM7Uyo9UClUKys7VC0tLFM9Uy9QfDA7Zm9yKHZhciBGPXgu''@;'; + put 'put ''bGVuZ3RoLVYseWU9RiVULENlPU1hdGgubWluKEYsRi15ZSkrVixEZT0wLFBlPVY7UGU8Q2U7UGUrPVQpRGU9c2UoeCxQZSxQZStULFApLHRoaXMuaW11bG4oUyksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSk7aWYoMCE9PXllKXt2''@;'; + put 'put ''YXIgUWU9MTtmb3IoRGU9c2UoeCxQZSx4Lmxlbmd0aCxQKSxQZT0wO1BlPHllO1BlKyspUWUqPVA7dGhpcy5pbXVsbihRZSksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSl9dGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5jb3B5PWZ1''@;'; + put 'put ''bmN0aW9uKHgpe3gud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl4LndvcmRzW1BdPXRoaXMud29yZHNbUF07eC5sZW5ndGg9dGhpcy5sZW5ndGgseC5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLHgucmVkPXRoaXMucmVkfSxOLnByb3Rv''@;'; + put 'put ''dHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB0aGlzLmNvcHkoeCkseH0sTi5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sTi5wcm90b3R5''@;'; + put 'put ''cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxOLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3Ro''@;'; + put 'put ''JiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sTi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgb2U9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAw''@;'; + put 'put ''IiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwi''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sY2U9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sZGU9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3''@;'; + put 'put ''NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5''@;'; + put 'put ''NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gdmUoeCxQLFYpe1YubmVnYXRpdmU9UC5uZWdhdGl2ZV54Lm5lZ2F0aXZlO3Zh''@;'; + put 'put ''ciBUPXgubGVuZ3RoK1AubGVuZ3RofDA7Vi5sZW5ndGg9VCxUPVQtMXwwO3ZhciBTPTB8eC53b3Jkc1swXSxGPTB8UC53b3Jkc1swXSx5ZT1TKkYsRGU9eWUvNjcxMDg4NjR8MDtWLndvcmRzWzBdPTY3MTA4ODYzJnllO2Zvcih2YXIgUGU9MTtQZTxUO1BlKyspe2Zvcih2YXIgUWU9RGU+Pj4y''@;'; + put 'put ''NiwkZT02NzEwODg2MyZEZSxndD1NYXRoLm1pbihQZSxQLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLXgubGVuZ3RoKzEpO3d0PD1ndDt3dCsrKVFlKz0oeWU9KFM9MHx4LndvcmRzW1BlLXd0fDBdKSooRj0wfFAud29yZHNbd3RdKSskZSkvNjcxMDg4NjR8MCwkZT02NzEwODg2MyZ5ZTtW''@;'; + put 'put ''LndvcmRzW1BlXT0wfCRlLERlPTB8UWV9cmV0dXJuIDAhPT1EZT9WLndvcmRzW1BlXT0wfERlOlYubGVuZ3RoLS0sVi5zdHJpcCgpfU4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHgsUCl7dmFyIFY7aWYoUD0wfFB8fDEsMTY9PT0oeD14fHwxMCl8fCJoZXgiPT09eCl7Vj0iIjtmb3Io''@;'; + put 'put ''dmFyIFQ9MCxTPTAsRj0wO0Y8dGhpcy5sZW5ndGg7RisrKXt2YXIgeWU9dGhpcy53b3Jkc1tGXSxDZT0oMTY3NzcyMTUmKHllPDxUfFMpKS50b1N0cmluZygxNik7Vj0wIT0oUz15ZT4+PjI0LVQmMTY3NzcyMTUpfHxGIT09dGhpcy5sZW5ndGgtMT9vZVs2LUNlLmxlbmd0aF0rQ2UrVjpDZStW''@;'; + put 'put ''LChUKz0yKT49MjYmJihULT0yNixGLS0pfWZvcigwIT09UyYmKFY9Uy50b1N0cmluZygxNikrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfWlmKHg9PT0oMHx4KSYmeD49MiYmeDw9MzYpe3ZhciBEZT1jZVt4XSxQZT1kZVt4''@;'; + put 'put ''XTtWPSIiO3ZhciBRZT10aGlzLmNsb25lKCk7Zm9yKFFlLm5lZ2F0aXZlPTA7IVFlLmlzWmVybygpOyl7dmFyICRlPVFlLm1vZG4oUGUpLnRvU3RyaW5nKHgpO1Y9KFFlPVFlLmlkaXZuKFBlKSkuaXNaZXJvKCk/JGUrVjpvZVtEZS0kZS5sZW5ndGhdKyRlK1Z9Zm9yKHRoaXMuaXNaZXJvKCkm''@;'; + put 'put ''JihWPSIwIitWKTtWLmxlbmd0aCVQIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9WSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxOLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB4PXRoaXMud29yZHNbMF07''@;'; + put 'put ''cmV0dXJuIDI9PT10aGlzLmxlbmd0aD94Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/eCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJlkoITEsIk51bWJlciBjYW4gb25seSBz''@;'; + put 'put ''YWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy14Onh9LE4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sTi5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gWSh2b2lkIDAhPT1lZSks''@;'; + put 'put ''dGhpcy50b0FycmF5TGlrZShlZSx4LFApfSxOLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXkseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oeCxQLFYpe3ZhciBUPXRoaXMuYnl0ZUxlbmd0aCgpLFM9Vnx8''@;'; + put 'put ''TWF0aC5tYXgoMSxUKTtZKFQ8PVMsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxZKFM+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBGLHllLENlPSJsZSI9PT1QLERlPW5ldyB4KFMpLFBlPXRoaXMuY2xvbmUoKTtpZihD''@;'; + put 'put ''ZSl7Zm9yKHllPTA7IVBlLmlzWmVybygpO3llKyspRj1QZS5hbmRsbigyNTUpLFBlLml1c2hybig4KSxEZVt5ZV09Rjtmb3IoO3llPFM7eWUrKylEZVt5ZV09MH1lbHNle2Zvcih5ZT0wO3llPFMtVDt5ZSsrKURlW3llXT0wO2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4o''@;'; + put 'put ''MjU1KSxQZS5pdXNocm4oOCksRGVbUy15ZS0xXT1GfXJldHVybiBEZX0sTi5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKHgpe3JldHVybiAzMi1NYXRoLmNsejMyKHgpfTpmdW5jdGlvbih4KXt2YXIgUD14LFY9MDtyZXR1cm4gUD49NDA5NiYmKFYrPTEzLFA+Pj49''@;'; + put 'put ''MTMpLFA+PTY0JiYoVis9NyxQPj4+PTcpLFA+PTgmJihWKz00LFA+Pj49NCksUD49MiYmKFYrPTIsUD4+Pj0yKSxWK1B9LE4ucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbih4KXtpZigwPT09eClyZXR1cm4gMjY7dmFyIFA9eCxWPTA7cmV0dXJuIDA9PSg4MTkxJlApJiYoVis9MTMsUD4+''@;'; + put 'put ''Pj0xMyksMD09KDEyNyZQKSYmKFYrPTcsUD4+Pj03KSwwPT0oMTUmUCkmJihWKz00LFA+Pj49NCksMD09KDMmUCkmJihWKz0yLFA+Pj49MiksMD09KDEmUCkmJlYrKyxWfSxOLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0''@;'; + put 'put ''aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStQfSxOLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciB4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLl96ZXJvQml0cyh0aGlzLndv''@;'; + put 'put ''cmRzW1BdKTtpZih4Kz1WLDI2IT09VilicmVha31yZXR1cm4geH0sTi5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sTi5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKHgpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2''@;'; + put 'put ''ZT90aGlzLmFicygpLmlub3RuKHgpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMudGVzdG4oeC0xKT90aGlzLm5vdG4oeCkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuaXNOZWc9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LE4ucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxOLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxO''@;'; + put 'put ''LnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKHgpe2Zvcig7dGhpcy5sZW5ndGg8eC5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIFA9MDtQPHgubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPXRoaXMud29yZHNbUF18eC53b3Jkc1tQXTtyZXR1cm4gdGhpcy5zdHJp''@;'; + put 'put ''cCgpfSxOLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVvcih4KX0sTi5wcm90b3R5cGUub3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoeCk6eC5j''@;'; + put 'put ''bG9uZSgpLmlvcih0aGlzKX0sTi5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcih4KTp4LmNsb25lKCkuaXVvcih0aGlzKX0sTi5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oeCl7dmFyIFA7UD10aGlzLmxlbmd0''@;'; + put 'put ''aD54Lmxlbmd0aD94OnRoaXM7Zm9yKHZhciBWPTA7VjxQLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT10aGlzLndvcmRzW1ZdJngud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPVAubGVuZ3RoLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gWSgw''@;'; + put 'put ''PT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh4KX0sTi5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh4KTp4LmNsb25lKCkuaWFuZCh0aGlzKX0sTi5wcm90b3R5cGUudWFuZD1mdW5j''@;'; + put 'put ''dGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKHgpOnguY2xvbmUoKS5pdWFuZCh0aGlzKX0sTi5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oeCl7dmFyIFAsVjt0aGlzLmxlbmd0aD54Lmxlbmd0aD8oUD10aGlzLFY9eCk6KFA9eCxWPXRoaXMp''@;'; + put 'put ''O2Zvcih2YXIgVD0wO1Q8Vi5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXV5WLndvcmRzW1RdO2lmKHRoaXMhPT1QKWZvcig7VDxQLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT1QLndvcmRzW1RdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoeCl9LE4ucHJvdG90eXBlLnhvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoeCk6eC5jbG9u''@;'; + put 'put ''ZSgpLml4b3IodGhpcyl9LE4ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcih4KTp4LmNsb25lKCkuaXV4b3IodGhpcyl9LE4ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVv''@;'; + put 'put ''ZiB4JiZ4Pj0wKTt2YXIgUD0wfE1hdGguY2VpbCh4LzI2KSxWPXglMjY7dGhpcy5fZXhwYW5kKFApLFY+MCYmUC0tO2Zvcih2YXIgVD0wO1Q8UDtUKyspdGhpcy53b3Jkc1tUXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tUXTtyZXR1cm4gVj4wJiYodGhpcy53b3Jkc1tUXT1+dGhpcy53b3Jkc1tU''@;'; + put 'put ''XSY2NzEwODg2Mz4+MjYtViksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oeCl9LE4ucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oeCxQKXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFY9eC8yNnwwLFQ9''@;'; + put 'put ''eCUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXT1QP3RoaXMud29yZHNbVl18MTw8VDp0aGlzLndvcmRzW1ZdJn4oMTw8VCksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgpe3ZhciBQLFYsVDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09''@;'; + put 'put ''PXgubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxQPXRoaXMuaXN1Yih4KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlKXJldHVybiB4Lm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCkseC5uZWdhdGl2''@;'; + put 'put ''ZT0xLFAuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIFM9MCxGPTA7RjxULmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKSsoMHxULndvcmRzW0ZdKStTKSxTPVA+Pj4yNjtm''@;'; + put 'put ''b3IoOzAhPT1TJiZGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJihQPSgwfFYud29yZHNbRl0pK1MpLFM9UD4+PjI2O2lmKHRoaXMubGVuZ3RoPVYubGVuZ3RoLDAhPT1TKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVMsdGhpcy5sZW5ndGgrKztlbHNlIGlmKFYhPT10aGlz''@;'; + put 'put ''KWZvcig7RjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT1WLndvcmRzW0ZdO3JldHVybiB0aGlzfSxOLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oeCl7dmFyIFA7cmV0dXJuIDAhPT14Lm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oeC5uZWdhdGl2ZT0wLFA9dGhpcy5zdWIoeCkseC5u''@;'; + put 'put ''ZWdhdGl2ZV49MSxQKTowPT09eC5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxQPXguc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxQKTp0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh4KTp4LmNsb25lKCkuaWFkZCh0aGlzKX0sTi5w''@;'; + put 'put ''cm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4KXtpZigwIT09eC5uZWdhdGl2ZSl7eC5uZWdhdGl2ZT0wO3ZhciBQPXRoaXMuaWFkZCh4KTtyZXR1cm4geC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQo''@;'; + put 'put ''eCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFYsVCxTPXRoaXMuY21wKHgpO2lmKDA9PT1TKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztTPjA/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIEY9''@;'; + put 'put ''MCx5ZT0wO3llPFQubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSktKDB8VC53b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02NzEwODg2MyZQO2Zvcig7MCE9PUYmJnllPFYubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSkrRik+PjI2LHRoaXMud29yZHNbeWVd''@;'; + put 'put ''PTY3MTA4ODYzJlA7aWYoMD09PUYmJnllPFYubGVuZ3RoJiZWIT09dGhpcylmb3IoO3llPFYubGVuZ3RoO3llKyspdGhpcy53b3Jkc1t5ZV09Vi53b3Jkc1t5ZV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHllKSxWIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSks''@;'; + put 'put ''dGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKHgpfTt2YXIgQWU9ZnVuY3Rpb24oeCxQLFYpe3ZhciBULFMsRix5ZT14LndvcmRzLENlPVAud29yZHMsRGU9Vi53b3JkcyxQZT0wLFFlPTB8eWVbMF0sJGU9ODE5MSZRZSxn''@;'; + put 'put ''dD1RZT4+PjEzLHd0PTB8eWVbMV0sdnQ9ODE5MSZ3dCxBdD13dD4+PjEzLG10PTB8eWVbMl0saHQ9ODE5MSZtdCxCdD1tdD4+PjEzLG9uPTB8eWVbM10sX3Q9ODE5MSZvbix0dD1vbj4+PjEzLGV0PTB8eWVbNF0sYXQ9ODE5MSZldCxMdD1ldD4+PjEzLEN0PTB8eWVbNV0sZnQ9ODE5MSZDdCxI''@;'; + put 'put ''dD1DdD4+PjEzLEdlPTB8eWVbNl0sVWU9ODE5MSZHZSx5dD1HZT4+PjEzLGp0PTB8eWVbN10sUXQ9ODE5MSZqdCxnbj1qdD4+PjEzLGRuPTB8eWVbOF0seW49ODE5MSZkbixsbj1kbj4+PjEzLE5uPTB8eWVbOV0sYm49ODE5MSZObixlcj1Obj4+PjEzLHNyPTB8Q2VbMF0sWG49ODE5MSZzcixG''@;'; + put 'put ''cj1zcj4+PjEzLHhyPTB8Q2VbMV0scXQ9ODE5MSZ4cixwcj14cj4+PjEzLG5yPTB8Q2VbMl0sQW49ODE5MSZucixxbj1ucj4+PjEzLFd0PTB8Q2VbM10scG49ODE5MSZXdCxLbj1XdD4+PjEzLE50PTB8Q2VbNF0sc249ODE5MSZOdCxVbj1OdD4+PjEzLHduPTB8Q2VbNV0sdG49ODE5MSZ3bix6''@;'; + put 'put ''bj13bj4+PjEzLFRyPTB8Q2VbNl0sQm49ODE5MSZUcixrcj1Ucj4+PjEzLG1uPTB8Q2VbN10sdW49ODE5MSZtbixjbj1tbj4+PjEzLF9uPTB8Q2VbOF0sR3Q9ODE5MSZfbixrbj1fbj4+PjEzLFZuPTB8Q2VbOV0sZW49ODE5MSZWbixJbj1Wbj4+PjEzO1YubmVnYXRpdmU9eC5uZWdhdGl2ZV5Q''@;'; + put 'put ''Lm5lZ2F0aXZlLFYubGVuZ3RoPTE5O3ZhciBKbj0oUGUrKFQ9TWF0aC5pbXVsKCRlLFhuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bCgkZSxGcikpK01hdGguaW11bChndCxYbil8MCkpPDwxMyl8MDtQZT0oKEY9TWF0aC5pbXVsKGd0LEZyKSkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAs''@;'; + put 'put ''Sm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHZ0LFhuKSxTPShTPU1hdGguaW11bCh2dCxGcikpK01hdGguaW11bChBdCxYbil8MCxGPU1hdGguaW11bChBdCxGcik7dmFyIG9yPShQZSsoVD1UK01hdGguaW11bCgkZSxxdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLHByKXww''@;'; + put 'put ''KStNYXRoLmltdWwoZ3QscXQpfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHByKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoaHQsWG4pLFM9KFM9TWF0aC5pbXVsKGh0LEZyKSkrTWF0aC5pbXVsKEJ0LFhuKXwwLEY9TWF0aC5p''@;'; + put 'put ''bXVsKEJ0LEZyKSxUPVQrTWF0aC5pbXVsKHZ0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwodnQscHIpfDApK01hdGguaW11bChBdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEF0LHByKXwwO3ZhciBncj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bCgkZSxxbil8MCkrTWF0aC5pbXVsKGd0LEFuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxxbil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKF90LFhuKSxTPShTPU1hdGguaW11bChfdCxGcikpK01hdGguaW11bCh0dCxYbil8''@;'; + put 'put ''MCxGPU1hdGguaW11bCh0dCxGciksVD1UK01hdGguaW11bChodCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHByKXwwKStNYXRoLmltdWwoQnQscXQpfDAsRj1GK01hdGguaW11bChCdCxwcil8MCxUPVQrTWF0aC5pbXVsKHZ0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwodnQscW4pfDApK01h''@;'; + put 'put ''dGguaW11bChBdCxBbil8MCxGPUYrTWF0aC5pbXVsKEF0LHFuKXwwO3ZhciBLcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxLbil8MCkrTWF0aC5pbXVsKGd0LHBuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxL''@;'; + put 'put ''bil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGF0LFhuKSxTPShTPU1hdGguaW11bChhdCxGcikpK01hdGguaW11bChMdCxYbil8MCxGPU1hdGguaW11bChMdCxGciksVD1UK01hdGguaW11bChfdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKF90''@;'; + put 'put ''LHByKXwwKStNYXRoLmltdWwodHQscXQpfDAsRj1GK01hdGguaW11bCh0dCxwcil8MCxUPVQrTWF0aC5pbXVsKGh0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQscW4pfDApK01hdGguaW11bChCdCxBbil8MCxGPUYrTWF0aC5pbXVsKEJ0LHFuKXwwLFQ9VCtNYXRoLmltdWwodnQscG4pfDAs''@;'; + put 'put ''Uz0oUz1TK01hdGguaW11bCh2dCxLbil8MCkrTWF0aC5pbXVsKEF0LHBuKXwwLEY9RitNYXRoLmltdWwoQXQsS24pfDA7dmFyIFZyPShQZSsoVD1UK01hdGguaW11bCgkZSxzbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLFVuKXwwKStNYXRoLmltdWwoZ3Qsc24pfDApKTw8''@;'; + put 'put ''MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LFVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZnQsWG4pLFM9KFM9TWF0aC5pbXVsKGZ0LEZyKSkrTWF0aC5pbXVsKEh0LFhuKXwwLEY9TWF0aC5pbXVsKEh0LEZyKSxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KGF0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQscHIpfDApK01hdGguaW11bChMdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEx0LHByKXwwLFQ9VCtNYXRoLmltdWwoX3QsQW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxxbil8MCkrTWF0aC5pbXVsKHR0LEFuKXwwLEY9RitNYXRoLmltdWwodHQs''@;'; + put 'put ''cW4pfDAsVD1UK01hdGguaW11bChodCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LEtuKXwwKStNYXRoLmltdWwoQnQscG4pfDAsRj1GK01hdGguaW11bChCdCxLbil8MCxUPVQrTWF0aC5pbXVsKHZ0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwodnQsVW4pfDApK01hdGguaW11bChBdCxzbil8''@;'; + put 'put ''MCxGPUYrTWF0aC5pbXVsKEF0LFVuKXwwO3ZhciBpaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsdG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSx6bil8MCkrTWF0aC5pbXVsKGd0LHRuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCx6bil8MCkrKFM+Pj4xMyl8''@;'; + put 'put ''MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFVlLFhuKSxTPShTPU1hdGguaW11bChVZSxGcikpK01hdGguaW11bCh5dCxYbil8MCxGPU1hdGguaW11bCh5dCxGciksVD1UK01hdGguaW11bChmdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHByKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoSHQscXQpfDAsRj1GK01hdGguaW11bChIdCxwcil8MCxUPVQrTWF0aC5pbXVsKGF0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQscW4pfDApK01hdGguaW11bChMdCxBbil8MCxGPUYrTWF0aC5pbXVsKEx0LHFuKXwwLFQ9VCtNYXRoLmltdWwoX3QscG4pfDAsUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bChfdCxLbil8MCkrTWF0aC5pbXVsKHR0LHBuKXwwLEY9RitNYXRoLmltdWwodHQsS24pfDAsVD1UK01hdGguaW11bChodCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LFVuKXwwKStNYXRoLmltdWwoQnQsc24pfDAsRj1GK01hdGguaW11bChCdCxVbil8MCxUPVQrTWF0aC5pbXVsKHZ0LHRu''@;'; + put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwodnQsem4pfDApK01hdGguaW11bChBdCx0bil8MCxGPUYrTWF0aC5pbXVsKEF0LHpuKXwwO3ZhciBScj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQm4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrcil8MCkrTWF0aC5pbXVsKGd0LEJuKXww''@;'; + put 'put ''KSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrcil8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFF0LFhuKSxTPShTPU1hdGguaW11bChRdCxGcikpK01hdGguaW11bChnbixYbil8MCxGPU1hdGguaW11bChnbixGciksVD1UK01hdGgu''@;'; + put 'put ''aW11bChVZSxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHByKXwwKStNYXRoLmltdWwoeXQscXQpfDAsRj1GK01hdGguaW11bCh5dCxwcil8MCxUPVQrTWF0aC5pbXVsKGZ0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQscW4pfDApK01hdGguaW11bChIdCxBbil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KEh0LHFuKXwwLFQ9VCtNYXRoLmltdWwoYXQscG4pfDAsUz0oUz1TK01hdGguaW11bChhdCxLbil8MCkrTWF0aC5pbXVsKEx0LHBuKXwwLEY9RitNYXRoLmltdWwoTHQsS24pfDAsVD1UK01hdGguaW11bChfdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LFVuKXwwKStNYXRoLmltdWwodHQs''@;'; + put 'put ''c24pfDAsRj1GK01hdGguaW11bCh0dCxVbil8MCxUPVQrTWF0aC5pbXVsKGh0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsem4pfDApK01hdGguaW11bChCdCx0bil8MCxGPUYrTWF0aC5pbXVsKEJ0LHpuKXwwLFQ9VCtNYXRoLmltdWwodnQsQm4pfDAsUz0oUz1TK01hdGguaW11bCh2dCxr''@;'; + put 'put ''cil8MCkrTWF0aC5pbXVsKEF0LEJuKXwwLEY9RitNYXRoLmltdWwoQXQsa3IpfDA7dmFyIGxpPShQZSsoVD1UK01hdGguaW11bCgkZSx1bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGNuKXwwKStNYXRoLmltdWwoZ3QsdW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5p''@;'; + put 'put ''bXVsKGd0LGNuKXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoeW4sWG4pLFM9KFM9TWF0aC5pbXVsKHluLEZyKSkrTWF0aC5pbXVsKGxuLFhuKXwwLEY9TWF0aC5pbXVsKGxuLEZyKSxUPVQrTWF0aC5pbXVsKFF0LHF0KXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoUXQscHIpfDApK01hdGguaW11bChnbixxdCl8MCxGPUYrTWF0aC5pbXVsKGduLHByKXwwLFQ9VCtNYXRoLmltdWwoVWUsQW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxxbil8MCkrTWF0aC5pbXVsKHl0LEFuKXwwLEY9RitNYXRoLmltdWwoeXQscW4pfDAsVD1UK01hdGguaW11bChm''@;'; + put 'put ''dCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LEtuKXwwKStNYXRoLmltdWwoSHQscG4pfDAsRj1GK01hdGguaW11bChIdCxLbil8MCxUPVQrTWF0aC5pbXVsKGF0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsVW4pfDApK01hdGguaW11bChMdCxzbil8MCxGPUYrTWF0aC5pbXVsKEx0LFVu''@;'; + put 'put ''KXwwLFQ9VCtNYXRoLmltdWwoX3QsdG4pfDAsUz0oUz1TK01hdGguaW11bChfdCx6bil8MCkrTWF0aC5pbXVsKHR0LHRuKXwwLEY9RitNYXRoLmltdWwodHQsem4pfDAsVD1UK01hdGguaW11bChodCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtyKXwwKStNYXRoLmltdWwoQnQsQm4pfDAs''@;'; + put 'put ''Rj1GK01hdGguaW11bChCdCxrcil8MCxUPVQrTWF0aC5pbXVsKHZ0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwodnQsY24pfDApK01hdGguaW11bChBdCx1bil8MCxGPUYrTWF0aC5pbXVsKEF0LGNuKXwwO3ZhciBNaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsR3QpfDApfDApKygoODE5MSYoUz0o''@;'; + put 'put ''Uz1TK01hdGguaW11bCgkZSxrbil8MCkrTWF0aC5pbXVsKGd0LEd0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrbil8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLFhuKSxTPShTPU1hdGguaW11bChibixGcikpK01hdGgu''@;'; + put 'put ''aW11bChlcixYbil8MCxGPU1hdGguaW11bChlcixGciksVD1UK01hdGguaW11bCh5bixxdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLHByKXwwKStNYXRoLmltdWwobG4scXQpfDAsRj1GK01hdGguaW11bChsbixwcil8MCxUPVQrTWF0aC5pbXVsKFF0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''UXQscW4pfDApK01hdGguaW11bChnbixBbil8MCxGPUYrTWF0aC5pbXVsKGduLHFuKXwwLFQ9VCtNYXRoLmltdWwoVWUscG4pfDAsUz0oUz1TK01hdGguaW11bChVZSxLbil8MCkrTWF0aC5pbXVsKHl0LHBuKXwwLEY9RitNYXRoLmltdWwoeXQsS24pfDAsVD1UK01hdGguaW11bChmdCxzbil8''@;'; + put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKGZ0LFVuKXwwKStNYXRoLmltdWwoSHQsc24pfDAsRj1GK01hdGguaW11bChIdCxVbil8MCxUPVQrTWF0aC5pbXVsKGF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsem4pfDApK01hdGguaW11bChMdCx0bil8MCxGPUYrTWF0aC5pbXVsKEx0LHpuKXwwLFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwoX3QsQm4pfDAsUz0oUz1TK01hdGguaW11bChfdCxrcil8MCkrTWF0aC5pbXVsKHR0LEJuKXwwLEY9RitNYXRoLmltdWwodHQsa3IpfDAsVD1UK01hdGguaW11bChodCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGNuKXwwKStNYXRoLmltdWwoQnQsdW4pfDAsRj1GK01h''@;'; + put 'put ''dGguaW11bChCdCxjbil8MCxUPVQrTWF0aC5pbXVsKHZ0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwodnQsa24pfDApK01hdGguaW11bChBdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEF0LGtuKXwwO3ZhciBvMD0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bCgkZSxJbil8MCkrTWF0aC5pbXVsKGd0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxJbil8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHF0KSxTPShTPU1hdGguaW11bChibixwcikpK01hdGguaW11bChl''@;'; + put 'put ''cixxdCl8MCxGPU1hdGguaW11bChlcixwciksVD1UK01hdGguaW11bCh5bixBbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHFuKXwwKStNYXRoLmltdWwobG4sQW4pfDAsRj1GK01hdGguaW11bChsbixxbil8MCxUPVQrTWF0aC5pbXVsKFF0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsS24p''@;'; + put 'put ''fDApK01hdGguaW11bChnbixwbil8MCxGPUYrTWF0aC5pbXVsKGduLEtuKXwwLFQ9VCtNYXRoLmltdWwoVWUsc24pfDAsUz0oUz1TK01hdGguaW11bChVZSxVbil8MCkrTWF0aC5pbXVsKHl0LHNuKXwwLEY9RitNYXRoLmltdWwoeXQsVW4pfDAsVD1UK01hdGguaW11bChmdCx0bil8MCxTPShT''@;'; + put 'put ''PVMrTWF0aC5pbXVsKGZ0LHpuKXwwKStNYXRoLmltdWwoSHQsdG4pfDAsRj1GK01hdGguaW11bChIdCx6bil8MCxUPVQrTWF0aC5pbXVsKGF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa3IpfDApK01hdGguaW11bChMdCxCbil8MCxGPUYrTWF0aC5pbXVsKEx0LGtyKXwwLFQ9VCtNYXRo''@;'; + put 'put ''LmltdWwoX3QsdW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxjbil8MCkrTWF0aC5pbXVsKHR0LHVuKXwwLEY9RitNYXRoLmltdWwodHQsY24pfDAsVD1UK01hdGguaW11bChodCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtuKXwwKStNYXRoLmltdWwoQnQsR3QpfDAsRj1GK01hdGguaW11''@;'; + put 'put ''bChCdCxrbil8MDt2YXIgbjA9KFBlKyhUPVQrTWF0aC5pbXVsKHZ0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwodnQsSW4pfDApK01hdGguaW11bChBdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoQXQsSW4pfDApKyhTPj4+MTMpfDApKyhuMD4+PjI2KXww''@;'; + put 'put ''LG4wJj02NzEwODg2MyxUPU1hdGguaW11bChibixBbiksUz0oUz1NYXRoLmltdWwoYm4scW4pKStNYXRoLmltdWwoZXIsQW4pfDAsRj1NYXRoLmltdWwoZXIscW4pLFQ9VCtNYXRoLmltdWwoeW4scG4pfDAsUz0oUz1TK01hdGguaW11bCh5bixLbil8MCkrTWF0aC5pbXVsKGxuLHBuKXwwLEY9''@;'; + put 'put ''RitNYXRoLmltdWwobG4sS24pfDAsVD1UK01hdGguaW11bChRdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LFVuKXwwKStNYXRoLmltdWwoZ24sc24pfDAsRj1GK01hdGguaW11bChnbixVbil8MCxUPVQrTWF0aC5pbXVsKFVlLHRuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsem4pfDApK01h''@;'; + put 'put ''dGguaW11bCh5dCx0bil8MCxGPUYrTWF0aC5pbXVsKHl0LHpuKXwwLFQ9VCtNYXRoLmltdWwoZnQsQm4pfDAsUz0oUz1TK01hdGguaW11bChmdCxrcil8MCkrTWF0aC5pbXVsKEh0LEJuKXwwLEY9RitNYXRoLmltdWwoSHQsa3IpfDAsVD1UK01hdGguaW11bChhdCx1bil8MCxTPShTPVMrTWF0''@;'; + put 'put ''aC5pbXVsKGF0LGNuKXwwKStNYXRoLmltdWwoTHQsdW4pfDAsRj1GK01hdGguaW11bChMdCxjbil8MCxUPVQrTWF0aC5pbXVsKF90LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa24pfDApK01hdGguaW11bCh0dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHR0LGtuKXwwO3ZhciBkMD0oUGUrKFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwoaHQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChodCxJbil8MCkrTWF0aC5pbXVsKEJ0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChCdCxJbil8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVs''@;'; + put 'put ''KGJuLHBuKSxTPShTPU1hdGguaW11bChibixLbikpK01hdGguaW11bChlcixwbil8MCxGPU1hdGguaW11bChlcixLbiksVD1UK01hdGguaW11bCh5bixzbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLFVuKXwwKStNYXRoLmltdWwobG4sc24pfDAsRj1GK01hdGguaW11bChsbixVbil8MCxUPVQr''@;'; + put 'put ''TWF0aC5pbXVsKFF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsem4pfDApK01hdGguaW11bChnbix0bil8MCxGPUYrTWF0aC5pbXVsKGduLHpuKXwwLFQ9VCtNYXRoLmltdWwoVWUsQm4pfDAsUz0oUz1TK01hdGguaW11bChVZSxrcil8MCkrTWF0aC5pbXVsKHl0LEJuKXwwLEY9RitNYXRo''@;'; + put 'put ''LmltdWwoeXQsa3IpfDAsVD1UK01hdGguaW11bChmdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGNuKXwwKStNYXRoLmltdWwoSHQsdW4pfDAsRj1GK01hdGguaW11bChIdCxjbil8MCxUPVQrTWF0aC5pbXVsKGF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa24pfDApK01hdGguaW11''@;'; + put 'put ''bChMdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEx0LGtuKXwwO3ZhciBtMD0oUGUrKFQ9VCtNYXRoLmltdWwoX3QsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChfdCxJbil8MCkrTWF0aC5pbXVsKHR0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh0dCxJbil8MCkr''@;'; + put 'put ''KFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHNuKSxTPShTPU1hdGguaW11bChibixVbikpK01hdGguaW11bChlcixzbil8MCxGPU1hdGguaW11bChlcixVbiksVD1UK01hdGguaW11bCh5bix0bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHpuKXww''@;'; + put 'put ''KStNYXRoLmltdWwobG4sdG4pfDAsRj1GK01hdGguaW11bChsbix6bil8MCxUPVQrTWF0aC5pbXVsKFF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsa3IpfDApK01hdGguaW11bChnbixCbil8MCxGPUYrTWF0aC5pbXVsKGduLGtyKXwwLFQ9VCtNYXRoLmltdWwoVWUsdW4pfDAsUz0oUz1T''@;'; + put 'put ''K01hdGguaW11bChVZSxjbil8MCkrTWF0aC5pbXVsKHl0LHVuKXwwLEY9RitNYXRoLmltdWwoeXQsY24pfDAsVD1UK01hdGguaW11bChmdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGtuKXwwKStNYXRoLmltdWwoSHQsR3QpfDAsRj1GK01hdGguaW11bChIdCxrbil8MDt2YXIgRzA9KFBl''@;'; + put 'put ''KyhUPVQrTWF0aC5pbXVsKGF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoYXQsSW4pfDApK01hdGguaW11bChMdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoTHQsSW4pfDApKyhTPj4+MTMpfDApKyhHMD4+PjI2KXwwLEcwJj02NzEwODg2MyxUPU1hdGgu''@;'; + put 'put ''aW11bChibix0biksUz0oUz1NYXRoLmltdWwoYm4sem4pKStNYXRoLmltdWwoZXIsdG4pfDAsRj1NYXRoLmltdWwoZXIsem4pLFQ9VCtNYXRoLmltdWwoeW4sQm4pfDAsUz0oUz1TK01hdGguaW11bCh5bixrcil8MCkrTWF0aC5pbXVsKGxuLEJuKXwwLEY9RitNYXRoLmltdWwobG4sa3IpfDAs''@;'; + put 'put ''VD1UK01hdGguaW11bChRdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LGNuKXwwKStNYXRoLmltdWwoZ24sdW4pfDAsRj1GK01hdGguaW11bChnbixjbil8MCxUPVQrTWF0aC5pbXVsKFVlLEd0KXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa24pfDApK01hdGguaW11bCh5dCxHdCl8MCxGPUYr''@;'; + put 'put ''TWF0aC5pbXVsKHl0LGtuKXwwO3ZhciBEaT0oUGUrKFQ9VCtNYXRoLmltdWwoZnQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChmdCxJbil8MCkrTWF0aC5pbXVsKEh0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChIdCxJbil8MCkrKFM+Pj4xMyl8MCkrKERp''@;'; + put 'put ''Pj4+MjYpfDAsRGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEJuKSxTPShTPU1hdGguaW11bChibixrcikpK01hdGguaW11bChlcixCbil8MCxGPU1hdGguaW11bChlcixrciksVD1UK01hdGguaW11bCh5bix1bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLGNuKXwwKStNYXRoLmltdWwobG4s''@;'; + put 'put ''dW4pfDAsRj1GK01hdGguaW11bChsbixjbil8MCxUPVQrTWF0aC5pbXVsKFF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQsa24pfDApK01hdGguaW11bChnbixHdCl8MCxGPUYrTWF0aC5pbXVsKGduLGtuKXwwO3ZhciBXMD0oUGUrKFQ9VCtNYXRoLmltdWwoVWUsZW4pfDApfDApKygoODE5''@;'; + put 'put ''MSYoUz0oUz1TK01hdGguaW11bChVZSxJbil8MCkrTWF0aC5pbXVsKHl0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh5dCxJbil8MCkrKFM+Pj4xMyl8MCkrKFcwPj4+MjYpfDAsVzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHVuKSxTPShTPU1hdGguaW11bChibixjbikp''@;'; + put 'put ''K01hdGguaW11bChlcix1bil8MCxGPU1hdGguaW11bChlcixjbiksVD1UK01hdGguaW11bCh5bixHdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLGtuKXwwKStNYXRoLmltdWwobG4sR3QpfDAsRj1GK01hdGguaW11bChsbixrbil8MDt2YXIgRW89KFBlKyhUPVQrTWF0aC5pbXVsKFF0LGVuKXww''@;'; + put 'put ''KXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUXQsSW4pfDApK01hdGguaW11bChnbixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ24sSW4pfDApKyhTPj4+MTMpfDApKyhFbz4+PjI2KXwwLEVvJj02NzEwODg2MyxUPU1hdGguaW11bChibixHdCksUz0oUz1NYXRoLmlt''@;'; + put 'put ''dWwoYm4sa24pKStNYXRoLmltdWwoZXIsR3QpfDAsRj1NYXRoLmltdWwoZXIsa24pO3ZhciBxbz0oUGUrKFQ9VCtNYXRoLmltdWwoeW4sZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh5bixJbil8MCkrTWF0aC5pbXVsKGxuLGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGgu''@;'; + put 'put ''aW11bChsbixJbil8MCkrKFM+Pj4xMyl8MCkrKHFvPj4+MjYpfDAscW8mPTY3MTA4ODYzO3ZhciBjYT0oUGUrKFQ9TWF0aC5pbXVsKGJuLGVuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bChibixJbikpK01hdGguaW11bChlcixlbil8MCkpPDwxMyl8MDtyZXR1cm4gUGU9KChGPU1hdGgu''@;'; + put 'put ''aW11bChlcixJbikpKyhTPj4+MTMpfDApKyhjYT4+PjI2KXwwLGNhJj02NzEwODg2MyxEZVswXT1KbixEZVsxXT1vcixEZVsyXT1ncixEZVszXT1LcixEZVs0XT1WcixEZVs1XT1paSxEZVs2XT1ScixEZVs3XT1saSxEZVs4XT1NaSxEZVs5XT1vMCxEZVsxMF09bjAsRGVbMTFdPWQwLERlWzEy''@;'; + put 'put ''XT1tMCxEZVsxM109RzAsRGVbMTRdPURpLERlWzE1XT1XMCxEZVsxNl09RW8sRGVbMTddPXFvLERlWzE4XT1jYSwwIT09UGUmJihEZVsxOV09UGUsVi5sZW5ndGgrKyksVn07ZnVuY3Rpb24ga2UoeCxQLFYpe3JldHVybihuZXcgU2UpLm11bHAoeCxQLFYpfWZ1bmN0aW9uIFNlKHgsUCl7dGhp''@;'; + put 'put ''cy54PXgsdGhpcy55PVB9TWF0aC5pbXVsfHwoQWU9dmUpLE4ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHgsUCl7dmFyIFQ9dGhpcy5sZW5ndGgreC5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09eC5sZW5ndGg/QWUodGhpcyx4LFApOlQ8NjM/dmUodGhpcyx4LFApOlQ8''@;'; + put 'put ''MTAyND9mdW5jdGlvbihTLEYseWUpe3llLm5lZ2F0aXZlPUYubmVnYXRpdmVeUy5uZWdhdGl2ZSx5ZS5sZW5ndGg9Uy5sZW5ndGgrRi5sZW5ndGg7Zm9yKHZhciBDZT0wLERlPTAsUGU9MDtQZTx5ZS5sZW5ndGgtMTtQZSsrKXt2YXIgUWU9RGU7RGU9MDtmb3IodmFyICRlPTY3MTA4ODYzJkNl''@;'; + put 'put ''LGd0PU1hdGgubWluKFBlLEYubGVuZ3RoLTEpLHd0PU1hdGgubWF4KDAsUGUtUy5sZW5ndGgrMSk7d3Q8PWd0O3d0Kyspe3ZhciBBdD0oMHxTLndvcmRzW1BlLXd0XSkqKDB8Ri53b3Jkc1t3dF0pLG10PTY3MTA4ODYzJkF0OyRlPTY3MTA4ODYzJihtdD1tdCskZXwwKSxEZSs9KFFlPShRZT1R''@;'; + put 'put ''ZSsoQXQvNjcxMDg4NjR8MCl8MCkrKG10Pj4+MjYpfDApPj4+MjYsUWUmPTY3MTA4ODYzfXllLndvcmRzW1BlXT0kZSxDZT1RZSxRZT1EZX1yZXR1cm4gMCE9PUNlP3llLndvcmRzW1BlXT1DZTp5ZS5sZW5ndGgtLSx5ZS5zdHJpcCgpfSh0aGlzLHgsUCk6a2UodGhpcyx4LFApfSxTZS5wcm90''@;'; + put 'put ''b3R5cGUubWFrZVJCVD1mdW5jdGlvbih4KXtmb3IodmFyIFA9bmV3IEFycmF5KHgpLFY9Ti5wcm90b3R5cGUuX2NvdW50Qml0cyh4KS0xLFQ9MDtUPHg7VCsrKVBbVF09dGhpcy5yZXZCaW4oVCxWLHgpO3JldHVybiBQfSxTZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHgsUCxWKXtpZigw''@;'; + put 'put ''PT09eHx8eD09PVYtMSlyZXR1cm4geDtmb3IodmFyIFQ9MCxTPTA7UzxQO1MrKylUfD0oMSZ4KTw8UC1TLTEseD4+PTE7cmV0dXJuIFR9LFNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXtmb3IodmFyIHllPTA7eWU8Rjt5ZSsrKVRbeWVdPVBbeFt5ZV1dLFNbeWVd''@;'; + put 'put ''PVZbeFt5ZV1dfSxTZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXt0aGlzLnBlcm11dGUoRix4LFAsVixULFMpO2Zvcih2YXIgeWU9MTt5ZTxTO3llPDw9MSlmb3IodmFyIENlPXllPDwxLERlPU1hdGguY29zKDIqTWF0aC5QSS9DZSksUGU9TWF0aC5zaW4oMipN''@;'; + put 'put ''YXRoLlBJL0NlKSxRZT0wO1FlPFM7UWUrPUNlKWZvcih2YXIgJGU9RGUsZ3Q9UGUsd3Q9MDt3dDx5ZTt3dCsrKXt2YXIgdnQ9VltRZSt3dF0sQXQ9VFtRZSt3dF0sbXQ9VltRZSt3dCt5ZV0saHQ9VFtRZSt3dCt5ZV0sQnQ9JGUqbXQtZ3QqaHQ7aHQ9JGUqaHQrZ3QqbXQsVltRZSt3dF09dnQr''@;'; + put 'put ''KG10PUJ0KSxUW1FlK3d0XT1BdCtodCxWW1FlK3d0K3llXT12dC1tdCxUW1FlK3d0K3llXT1BdC1odCx3dCE9PUNlJiYoQnQ9RGUqJGUtUGUqZ3QsZ3Q9RGUqZ3QrUGUqJGUsJGU9QnQpfX0sU2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKHgsUCl7dmFyIFY9MXxNYXRoLm1heChQ''@;'; + put 'put ''LHgpLFQ9MSZWLFM9MDtmb3IoVj1WLzJ8MDtWO1Y+Pj49MSlTKys7cmV0dXJuIDE8PFMrMStUfSxTZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKHgsUCxWKXtpZighKFY8PTEpKWZvcih2YXIgVD0wO1Q8Vi8yO1QrKyl7dmFyIFM9eFtUXTt4W1RdPXhbVi1ULTFdLHhbVi1ULTFdPVMs''@;'; + put 'put ''Uz1QW1RdLFBbVF09LVBbVi1ULTFdLFBbVi1ULTFdPS1TfX0sU2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj0wLFQ9MDtUPFAvMjtUKyspe3ZhciBTPTgxOTIqTWF0aC5yb3VuZCh4WzIqVCsxXS9QKStNYXRoLnJvdW5kKHhbMipUXS9QKStWO3hbVF09''@;'; + put 'put ''NjcxMDg4NjMmUyxWPVM8NjcxMDg4NjQ/MDpTLzY3MTA4ODY0fDB9cmV0dXJuIHh9LFNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9MDtGPFA7RisrKVZbMipGXT04MTkxJihTKz0wfHhbRl0pLFZbMipGKzFdPTgxOTEmKFM+Pj49MTMpLFM+''@;'; + put 'put ''Pj49MTM7Zm9yKEY9MipQO0Y8VDsrK0YpVltGXT0wO1koMD09PVMpLFkoMD09KC04MTkyJlMpKX0sU2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPTA7Vjx4O1YrKylQW1ZdPTA7cmV0dXJuIFB9LFNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9u''@;'; + put 'put ''KHgsUCxWKXt2YXIgVD0yKnRoaXMuZ3Vlc3NMZW4xM2IoeC5sZW5ndGgsUC5sZW5ndGgpLFM9dGhpcy5tYWtlUkJUKFQpLEY9dGhpcy5zdHViKFQpLHllPW5ldyBBcnJheShUKSxDZT1uZXcgQXJyYXkoVCksRGU9bmV3IEFycmF5KFQpLFBlPW5ldyBBcnJheShUKSxRZT1uZXcgQXJyYXkoVCks''@;'; + put 'put ''JGU9bmV3IEFycmF5KFQpLGd0PVYud29yZHM7Z3QubGVuZ3RoPVQsdGhpcy5jb252ZXJ0MTNiKHgud29yZHMseC5sZW5ndGgseWUsVCksdGhpcy5jb252ZXJ0MTNiKFAud29yZHMsUC5sZW5ndGgsUGUsVCksdGhpcy50cmFuc2Zvcm0oeWUsRixDZSxEZSxULFMpLHRoaXMudHJhbnNmb3JtKFBl''@;'; + put 'put ''LEYsUWUsJGUsVCxTKTtmb3IodmFyIHd0PTA7d3Q8VDt3dCsrKXt2YXIgdnQ9Q2Vbd3RdKlFlW3d0XS1EZVt3dF0qJGVbd3RdO0RlW3d0XT1DZVt3dF0qJGVbd3RdK0RlW3d0XSpRZVt3dF0sQ2Vbd3RdPXZ0fXJldHVybiB0aGlzLmNvbmp1Z2F0ZShDZSxEZSxUKSx0aGlzLnRyYW5zZm9ybShD''@;'; + put 'put ''ZSxEZSxndCxGLFQsUyksdGhpcy5jb25qdWdhdGUoZ3QsRixUKSx0aGlzLm5vcm1hbGl6ZTEzYihndCxUKSxWLm5lZ2F0aXZlPXgubmVnYXRpdmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD14Lmxlbmd0aCtQLmxlbmd0aCxWLnN0cmlwKCl9LE4ucHJvdG90eXBlLm11bD1mdW5jdGlvbih4KXt2YXIg''@;'; + put 'put ''UD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLHRoaXMubXVsVG8oeCxQKX0sTi5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5s''@;'; + put 'put ''ZW5ndGgpLGtlKHRoaXMseCxQKX0sTi5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKHgsdGhpcyl9LE4ucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpO2Zvcih2YXIgUD0wLFY9''@;'; + put 'put ''MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkqeCxTPSg2NzEwODg2MyZUKSsoNjcxMDg4NjMmUCk7UD4+PTI2LFArPVQvNjcxMDg4NjR8MCxQKz1TPj4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZTfXJldHVybiAwIT09UCYmKHRoaXMud29yZHNbVl09UCx0''@;'; + put 'put ''aGlzLmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oeCl9LE4ucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sTi5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0''@;'; + put 'put ''aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sTi5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgpe3ZhciBQPWZ1bmN0aW9uKEYpe2Zvcih2YXIgeWU9bmV3IEFycmF5KEYuYml0TGVuZ3RoKCkpLENlPTA7Q2U8eWUubGVuZ3RoO0NlKyspe3ZhciBQZT1DZSUyNjt5ZVtDZV09KEYud29yZHNbQ2UvMjZ8''@;'; + put 'put ''MF0mMTw8UGUpPj4+UGV9cmV0dXJuIHllfSh4KTtpZigwPT09UC5sZW5ndGgpcmV0dXJuIG5ldyBOKDEpO2Zvcih2YXIgVj10aGlzLFQ9MDtUPFAubGVuZ3RoJiYwPT09UFtUXTtUKyssVj1WLnNxcigpKTtpZigrK1Q8UC5sZW5ndGgpZm9yKHZhciBTPVYuc3FyKCk7VDxQLmxlbmd0aDtUKyss''@;'; + put 'put ''Uz1TLnNxcigpKTAhPT1QW1RdJiYoVj1WLm11bChTKSk7cmV0dXJuIFZ9LE4ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFAsVj14JTI2LFQ9KHgtVikvMjYsUz02NzEwODg2Mz4+PjI2LVY8PDI2LVY7aWYoMCE9PVYpe3ZhciBG''@;'; + put 'put ''PTA7Zm9yKFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIHllPXRoaXMud29yZHNbUF0mUzt0aGlzLndvcmRzW1BdPSgwfHRoaXMud29yZHNbUF0pLXllPDxWfEYsRj15ZT4+PjI2LVZ9RiYmKHRoaXMud29yZHNbUF09Rix0aGlzLmxlbmd0aCsrKX1pZigwIT09VCl7Zm9yKFA9dGhpcy5sZW5n''@;'; + put 'put ''dGgtMTtQPj0wO1AtLSl0aGlzLndvcmRzW1ArVF09dGhpcy53b3Jkc1tQXTtmb3IoUD0wO1A8VDtQKyspdGhpcy53b3Jkc1tQXT0wO3RoaXMubGVuZ3RoKz1UfXJldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0''@;'; + put 'put ''aXZlKSx0aGlzLml1c2hsbih4KX0sTi5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVDtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCksVD1QPyhQLVAlMjYpLzI2OjA7dmFyIFM9eCUyNixGPU1hdGgubWluKCh4LVMpLzI2LHRoaXMubGVuZ3RoKSx5ZT02NzEwODg2M142''@;'; + put 'put ''NzEwODg2Mz4+PlM8PFMsQ2U9VjtpZihULT1GLFQ9TWF0aC5tYXgoMCxUKSxDZSl7Zm9yKHZhciBEZT0wO0RlPEY7RGUrKylDZS53b3Jkc1tEZV09dGhpcy53b3Jkc1tEZV07Q2UubGVuZ3RoPUZ9aWYoMCE9PUYpaWYodGhpcy5sZW5ndGg+Rilmb3IodGhpcy5sZW5ndGgtPUYsRGU9MDtEZTx0''@;'; + put 'put ''aGlzLmxlbmd0aDtEZSsrKXRoaXMud29yZHNbRGVdPXRoaXMud29yZHNbRGUrRl07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgUGU9MDtmb3IoRGU9dGhpcy5sZW5ndGgtMTtEZT49MCYmKDAhPT1QZXx8RGU+PVQpO0RlLS0pe3ZhciBRZT0wfHRoaXMud29yZHNbRGVd''@;'; + put 'put ''O3RoaXMud29yZHNbRGVdPVBlPDwyNi1TfFFlPj4+UyxQZT1RZSZ5ZX1yZXR1cm4gQ2UmJjAhPT1QZSYmKENlLndvcmRzW0NlLmxlbmd0aCsrXT1QZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaXNo''@;'; + put 'put ''cm49ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih4LFAsVil9LE4ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih4KX0sTi5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuY2xvbmUoKS5pdXNobG4oeCl9LE4ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih4KX0sTi5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oeCl9LE4ucHJvdG90eXBlLnRlc3RuPWZ1bmN0''@;'; + put 'put ''aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9Vnx8ISh0aGlzLndvcmRzW1ZdJjE8PFApKX0sTi5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2''@;'; + put 'put ''YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1WP3RoaXM6KDAhPT1QJiZWKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oVix0aGlzLmxlbmd0aCksMCE9PVAm''@;'; + put 'put ''Jih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PlA8PFApLHRoaXMuc3RyaXAoKSl9LE4ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHgpfSxOLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih4KXtyZXR1''@;'; + put 'put ''cm4gWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwP3RoaXMuaXN1Ym4oLXgpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8eD8odGhpcy53b3Jkc1swXT14LSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0''@;'; + put 'put ''aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHgpfSxOLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oeCl7dGhpcy53b3Jkc1swXSs9eDtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPj02''@;'; + put 'put ''NzEwODg2NDtQKyspdGhpcy53b3Jkc1tQXS09NjcxMDg4NjQsUD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tQKzFdPTE6dGhpcy53b3Jkc1tQKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFArMSksdGhpc30sTi5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rp''@;'; + put 'put ''b24oeCl7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwKXJldHVybiB0aGlzLmlhZGRuKC14KTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1sw''@;'; + put 'put ''XS09eCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbUF08MDtQKyspdGhpcy53b3Jkc1tQXSs9NjcxMDg4NjQsdGhpcy53''@;'; + put 'put ''b3Jkc1tQKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih4KX0sTi5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHgpfSxOLnByb3RvdHlwZS5p''@;'; + put 'put ''YWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxOLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sTi5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxTO3RoaXMuX2V4cGFuZCh4Lmxl''@;'; + put 'put ''bmd0aCtWKTt2YXIgeWU9MDtmb3IoVD0wO1Q8eC5sZW5ndGg7VCsrKXtTPSgwfHRoaXMud29yZHNbVCtWXSkreWU7dmFyIENlPSgwfHgud29yZHNbVF0pKlA7eWU9KChTLT02NzEwODg2MyZDZSk+PjI2KS0oQ2UvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tUK1ZdPTY3MTA4ODYzJlN9Zm9yKDtU''@;'; + put 'put ''PHRoaXMubGVuZ3RoLVY7VCsrKXllPShTPSgwfHRoaXMud29yZHNbVCtWXSkreWUpPj4yNix0aGlzLndvcmRzW1QrVl09NjcxMDg4NjMmUztpZigwPT09eWUpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoWSgtMT09PXllKSx5ZT0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl5ZT0oUz0tKDB8dGhp''@;'; + put 'put ''cy53b3Jkc1tUXSkreWUpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHgsUCl7dmFyIFYsVD10aGlzLmNsb25lKCksUz14LEY9MHxTLndvcmRzW1MubGVuZ3RoLTFd''@;'; + put 'put ''OzAhPShWPTI2LXRoaXMuX2NvdW50Qml0cyhGKSkmJihTPVMudXNobG4oViksVC5pdXNobG4oViksRj0wfFMud29yZHNbUy5sZW5ndGgtMV0pO3ZhciB5ZSxDZT1ULmxlbmd0aC1TLmxlbmd0aDtpZigibW9kIiE9PVApeyh5ZT1uZXcgTihudWxsKSkubGVuZ3RoPUNlKzEseWUud29yZHM9bmV3''@;'; + put 'put ''IEFycmF5KHllLmxlbmd0aCk7Zm9yKHZhciBEZT0wO0RlPHllLmxlbmd0aDtEZSsrKXllLndvcmRzW0RlXT0wfXZhciBQZT1ULmNsb25lKCkuX2lzaGxuc3VibXVsKFMsMSxDZSk7MD09PVBlLm5lZ2F0aXZlJiYoVD1QZSx5ZSYmKHllLndvcmRzW0NlXT0xKSk7Zm9yKHZhciBRZT1DZS0xO1Fl''@;'; + put 'put ''Pj0wO1FlLS0pe3ZhciAkZT02NzEwODg2NCooMHxULndvcmRzW1MubGVuZ3RoK1FlXSkrKDB8VC53b3Jkc1tTLmxlbmd0aCtRZS0xXSk7Zm9yKCRlPU1hdGgubWluKCRlL0Z8MCw2NzEwODg2MyksVC5faXNobG5zdWJtdWwoUywkZSxRZSk7MCE9PVQubmVnYXRpdmU7KSRlLS0sVC5uZWdhdGl2''@;'; + put 'put ''ZT0wLFQuX2lzaGxuc3VibXVsKFMsMSxRZSksVC5pc1plcm8oKXx8KFQubmVnYXRpdmVePTEpO3llJiYoeWUud29yZHNbUWVdPSRlKX1yZXR1cm4geWUmJnllLnN0cmlwKCksVC5zdHJpcCgpLCJkaXYiIT09UCYmMCE9PVYmJlQuaXVzaHJuKFYpLHtkaXY6eWV8fG51bGwsbW9kOlR9fSxOLnBy''@;'; + put 'put ''b3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKCF4LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IE4oMCksbW9kOm5ldyBOKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmU/KEY9dGhpcy5uZWcoKS5kaXZtb2QoeCxQKSwibW9kIiE9PVAm''@;'; + put 'put ''JihUPUYuZGl2Lm5lZygpKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlhZGQoeCkpLHtkaXY6VCxtb2Q6U30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZT8oRj10aGlzLmRpdm1vZCh4Lm5lZygpLFApLCJtb2QiIT09UCYmKFQ9Ri5k''@;'; + put 'put ''aXYubmVnKCkpLHtkaXY6VCxtb2Q6Ri5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ4Lm5lZ2F0aXZlKT8oRj10aGlzLm5lZygpLmRpdm1vZCh4Lm5lZygpLFApLCJkaXYiIT09UCYmKFM9Ri5tb2QubmVnKCksViYmMCE9PVMubmVnYXRpdmUmJlMuaXN1Yih4KSkse2RpdjpGLmRpdixtb2Q6U30p''@;'; + put 'put ''OngubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh4KTwwP3tkaXY6bmV3IE4oMCksbW9kOnRoaXN9OjE9PT14Lmxlbmd0aD8iZGl2Ij09PVA/e2Rpdjp0aGlzLmRpdm4oeC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09UD97ZGl2Om51bGwsbW9kOm5ldyBOKHRoaXMubW9kbih4Lndv''@;'; + put 'put ''cmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KHgsUCk7dmFyIFQsUyxGfSxOLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsImRpdiIsITEpLmRpdn0s''@;'; + put 'put ''Ti5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCExKS5tb2R9LE4ucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsIm1vZCIsITApLm1vZH0sTi5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oeCl7dmFy''@;'; + put 'put ''IFA9dGhpcy5kaXZtb2QoeCk7aWYoUC5tb2QuaXNaZXJvKCkpcmV0dXJuIFAuZGl2O3ZhciBWPTAhPT1QLmRpdi5uZWdhdGl2ZT9QLm1vZC5pc3ViKHgpOlAubW9kLFQ9eC51c2hybigxKSxTPXguYW5kbG4oMSksRj1WLmNtcChUKTtyZXR1cm4gRjwwfHwxPT09UyYmMD09PUY/UC5kaXY6MCE9''@;'; + put 'put ''PVAuZGl2Lm5lZ2F0aXZlP1AuZGl2LmlzdWJuKDEpOlAuZGl2LmlhZGRuKDEpfSxOLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHgpe1koeDw9NjcxMDg4NjMpO2Zvcih2YXIgUD02NzEwODg2NCV4LFY9MCxUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pVj0oUCpWKygwfHRoaXMud29yZHNbVF0p''@;'; + put 'put ''KSV4O3JldHVybiBWfSxOLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9MCxWPXRoaXMubGVuZ3RoLTE7Vj49MDtWLS0pe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKzY3MTA4ODY0KlA7dGhpcy53b3Jkc1tWXT1UL3h8MCxQPVQleH1yZXR1cm4g''@;'; + put 'put ''dGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oeCl9LE4ucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAhPT1Q''@;'; + put 'put ''Lm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBUPW5ldyBOKDEpLFM9bmV3IE4oMCksRj1uZXcgTigwKSx5ZT1uZXcgTigxKSxDZT0wO1AuaXNFdmVuKCkmJlYuaXNFdmVuKCk7KVAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpLCsrQ2U7Zm9yKHZhciBEZT1WLmNsb25lKCksUGU9''@;'; + put 'put ''UC5jbG9uZSgpOyFQLmlzWmVybygpOyl7Zm9yKHZhciBRZT0wLCRlPTE7MD09KFAud29yZHNbMF0mJGUpJiZRZTwyNjsrK1FlLCRlPDw9MSk7aWYoUWU+MClmb3IoUC5pdXNocm4oUWUpO1FlLS0gPjA7KShULmlzT2RkKCl8fFMuaXNPZGQoKSkmJihULmlhZGQoRGUpLFMuaXN1YihQZSkpLFQu''@;'; + put 'put ''aXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcih2YXIgZ3Q9MCx3dD0xOzA9PShWLndvcmRzWzBdJnd0KSYmZ3Q8MjY7KytndCx3dDw8PTEpO2lmKGd0PjApZm9yKFYuaXVzaHJuKGd0KTtndC0tID4wOykoRi5pc09kZCgpfHx5ZS5pc09kZCgpKSYmKEYuaWFkZChEZSkseWUuaXN1YihQZSkpLEYu''@;'; + put 'put ''aXVzaHJuKDEpLHllLml1c2hybigxKTtQLmNtcChWKT49MD8oUC5pc3ViKFYpLFQuaXN1YihGKSxTLmlzdWIoeWUpKTooVi5pc3ViKFApLEYuaXN1YihUKSx5ZS5pc3ViKFMpKX1yZXR1cm57YTpGLGI6eWUsZ2NkOlYuaXVzaGxuKENlKX19LE4ucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbih4''@;'; + put 'put ''KXtZKDA9PT14Lm5lZ2F0aXZlKSxZKCF4LmlzWmVybygpKTt2YXIgUD10aGlzLFY9eC5jbG9uZSgpO1A9MCE9PVAubmVnYXRpdmU/UC51bW9kKHgpOlAuY2xvbmUoKTtmb3IodmFyIFQsUz1uZXcgTigxKSxGPW5ldyBOKDApLHllPVYuY2xvbmUoKTtQLmNtcG4oMSk+MCYmVi5jbXBuKDEpPjA7''@;'; + put 'put ''KXtmb3IodmFyIENlPTAsRGU9MTswPT0oUC53b3Jkc1swXSZEZSkmJkNlPDI2OysrQ2UsRGU8PD0xKTtpZihDZT4wKWZvcihQLml1c2hybihDZSk7Q2UtLSA+MDspUy5pc09kZCgpJiZTLmlhZGQoeWUpLFMuaXVzaHJuKDEpO2Zvcih2YXIgUGU9MCxRZT0xOzA9PShWLndvcmRzWzBdJlFlKSYm''@;'; + put 'put ''UGU8MjY7KytQZSxRZTw8PTEpO2lmKFBlPjApZm9yKFYuaXVzaHJuKFBlKTtQZS0tID4wOylGLmlzT2RkKCkmJkYuaWFkZCh5ZSksRi5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxTLmlzdWIoRikpOihWLmlzdWIoUCksRi5pc3ViKFMpKX1yZXR1cm4oVD0wPT09UC5jbXBuKDEp''@;'; + put 'put ''P1M6RikuY21wbigwKTwwJiZULmlhZGQoeCksVH0sTi5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKHgpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIHguYWJzKCk7aWYoeC5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgUD10aGlzLmNsb25lKCksVj14LmNsb25lKCk7UC5uZWdhdGl2ZT0w''@;'; + put 'put ''LFYubmVnYXRpdmU9MDtmb3IodmFyIFQ9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpO1QrKylQLml1c2hybigxKSxWLml1c2hybigxKTtmb3IoOzspe2Zvcig7UC5pc0V2ZW4oKTspUC5pdXNocm4oMSk7Zm9yKDtWLmlzRXZlbigpOylWLml1c2hybigxKTt2YXIgUz1QLmNtcChWKTtpZihTPDAp''@;'; + put 'put ''e3ZhciBGPVA7UD1WLFY9Rn1lbHNlIGlmKDA9PT1TfHwwPT09Vi5jbXBuKDEpKWJyZWFrO1AuaXN1YihWKX1yZXR1cm4gVi5pdXNobG4oVCl9LE4ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZWdjZCh4KS5hLnVtb2QoeCl9LE4ucHJvdG90eXBlLmlzRXZlbj1mdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLndvcmRzWzBdJnh9LE4ucHJvdG90eXBlLmJpbmNu''@;'; + put 'put ''PWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KTt2YXIgUD14JTI2LFY9KHgtUCkvMjYsVD0xPDxQO2lmKHRoaXMubGVuZ3RoPD1WKXJldHVybiB0aGlzLl9leHBhbmQoVisxKSx0aGlzLndvcmRzW1ZdfD1ULHRoaXM7Zm9yKHZhciBTPVQsRj1WOzAhPT1TJiZGPHRoaXMubGVuZ3Ro''@;'; + put 'put ''O0YrKyl7dmFyIHllPTB8dGhpcy53b3Jkc1tGXTtTPSh5ZSs9Uyk+Pj4yNix0aGlzLndvcmRzW0ZdPXllJj02NzEwODg2M31yZXR1cm4gMCE9PVMmJih0aGlzLndvcmRzW0ZdPVMsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10''@;'; + put 'put ''aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LE4ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oeCl7dmFyIFAsVj14PDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFWKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZWKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0''@;'; + put 'put ''aD4xKVA9MTtlbHNle1YmJih4PS14KSxZKHg8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBUPTB8dGhpcy53b3Jkc1swXTtQPVQ9PT14PzA6VDx4Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVA6UH0sTi5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHgpe2lmKDAh''@;'; + put 'put ''PT10aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmUpcmV0dXJuIDE7dmFyIFA9dGhpcy51Y21wKHgpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24o''@;'; + put 'put ''eCl7aWYodGhpcy5sZW5ndGg+eC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8eC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBQPTAsVj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0wfHRoaXMud29yZHNbVl0sUz0wfHgud29yZHNbVl07aWYoVCE9PVMpe1Q8Uz9QPS0xOlQ+''@;'; + put 'put ''UyYmKFA9MSk7YnJlYWt9fXJldHVybiBQfSxOLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHgpe3JldHVybiAxPT09dGhpcy5jbXAoeCl9LE4ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oeCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuY21wbih4KT49MH0sTi5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcCh4KT49MH0sTi5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHgpe3JldHVybi0xPT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5sdD1mdW5jdGlvbih4KXtyZXR1cm4tMT09PXRoaXMu''@;'; + put 'put ''Y21wKHgpfSxOLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk8PTB9LE4ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAoeCk8PTB9LE4ucHJvdG90eXBlLmVxbj1mdW5jdGlvbih4KXtyZXR1cm4gMD09PXRoaXMuY21wbih4KX0s''@;'; + put 'put ''Ti5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcCh4KX0sTi5yZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyBuZSh4KX0sTi5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlv''@;'; + put 'put ''biBjb250ZXh0IiksWSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSx4LmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5''@;'; + put 'put ''IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxOLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucmVkPXgsdGhpc30sTi5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFko''@;'; + put 'put ''IXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVk''@;'; + put 'put ''LmFkZCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKHgpe3JldHVybiBZ''@;'; + put 'put ''KHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5y''@;'; + put 'put ''ZWQuaXN1Yih0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKHgpe3JldHVybiBZ''@;'; + put 'put ''KHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx4KSx0aGlzLnJlZC5tdWwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkg''@;'; + put 'put ''d2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMseCksdGhpcy5yZWQuaW11bCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92''@;'; + put 'put ''ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9''@;'; + put 'put ''LE4ucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxOLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIFkodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sTi5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBv''@;'; + put 'put ''bmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LE4ucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCYmIXgucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRo''@;'; + put 'put ''aXMpLHRoaXMucmVkLnBvdyh0aGlzLHgpfTt2YXIgSWU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBUZSh4LFApe3RoaXMubmFtZT14LHRoaXMucD1uZXcgTihQLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgTigx''@;'; + put 'put ''KS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gRWUoKXtUZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0''@;'; + put 'put ''aW9uIGhlKCl7VGUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBPKCl7VGUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUg''@;'; + put 'put ''ZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiB6KCl7VGUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBuZSh4KXtpZigic3RyaW5nIj09dHlwZW9mIHgpe3Zh''@;'; + put 'put ''ciBQPU4uX3ByaW1lKHgpO3RoaXMubT1QLnAsdGhpcy5wcmltZT1QfWVsc2UgWSh4Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXgsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHRlKHgpe25lLmNhbGwodGhpcyx4KSx0aGlzLnNoaWZ0PXRoaXMubS5i''@;'; + put 'put ''aXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBOKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5t''@;'; + put 'put ''aW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfVRlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHg9bmV3IE4obnVsbCk7cmV0dXJu''@;'; + put 'put ''IHgud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx4fSxUZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbih4KXt2YXIgUCxWPXg7ZG97dGhpcy5zcGxpdChWLHRoaXMudG1wKSxQPShWPShWPXRoaXMuaW11bEsoVikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13''@;'; + put 'put ''aGlsZShQPnRoaXMubik7dmFyIFQ9UDx0aGlzLm4/LTE6Vi51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1UPyhWLndvcmRzWzBdPTAsVi5sZW5ndGg9MSk6VD4wP1YuaXN1Yih0aGlzLnApOnZvaWQgMCE9PVYuc3RyaXA/Vi5zdHJpcCgpOlYuX3N0cmlwKCksVn0sVGUucHJvdG90eXBlLnNwbGl0''@;'; + put 'put ''PWZ1bmN0aW9uKHgsUCl7eC5pdXNocm4odGhpcy5uLDAsUCl9LFRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtyZXR1cm4geC5pbXVsKHRoaXMuayl9LFcoRWUsVGUpLEVlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj00MTk0MzAzLFQ9TWF0aC5taW4oeC5s''@;'; + put 'put ''ZW5ndGgsOSksUz0wO1M8VDtTKyspUC53b3Jkc1tTXT14LndvcmRzW1NdO2lmKFAubGVuZ3RoPVQseC5sZW5ndGg8PTkpcmV0dXJuIHgud29yZHNbMF09MCx2b2lkKHgubGVuZ3RoPTEpO3ZhciBGPXgud29yZHNbOV07Zm9yKFAud29yZHNbUC5sZW5ndGgrK109RiZWLFM9MTA7Uzx4Lmxlbmd0''@;'; + put 'put ''aDtTKyspe3ZhciB5ZT0wfHgud29yZHNbU107eC53b3Jkc1tTLTEwXT0oeWUmVik8PDR8Rj4+PjIyLEY9eWV9eC53b3Jkc1tTLTEwXT1GPj4+PTIyLHgubGVuZ3RoLT0wPT09RiYmeC5sZW5ndGg+MTA/MTA6OX0sRWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe3gud29yZHNbeC5sZW5n''@;'; + put 'put ''dGhdPTAseC53b3Jkc1t4Lmxlbmd0aCsxXT0wLHgubGVuZ3RoKz0yO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MHx4LndvcmRzW1ZdO3gud29yZHNbVl09NjcxMDg4NjMmKFArPTk3NypUKSxQPTY0KlQrKFAvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT14LndvcmRzW3gu''@;'; + put 'put ''bGVuZ3RoLTFdJiYoeC5sZW5ndGgtLSwwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmeC5sZW5ndGgtLSkseH0sVyhoZSxUZSksVyhPLFRlKSxXKHosVGUpLHoucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MTkqKDB8eC53''@;'; + put 'put ''b3Jkc1tWXSkrUCxTPTY3MTA4ODYzJlQ7VD4+Pj0yNix4LndvcmRzW1ZdPVMsUD1UfXJldHVybiAwIT09UCYmKHgud29yZHNbeC5sZW5ndGgrK109UCkseH0sTi5fcHJpbWU9ZnVuY3Rpb24oeCl7aWYoSWVbeF0pcmV0dXJuIEllW3hdO3ZhciBQO2lmKCJrMjU2Ij09PXgpUD1uZXcgRWU7ZWxz''@;'; + put 'put ''ZSBpZigicDIyNCI9PT14KVA9bmV3IGhlO2Vsc2UgaWYoInAxOTIiPT09eClQPW5ldyBPO2Vsc2V7aWYoInAyNTUxOSIhPT14KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3gpO1A9bmV3IHp9cmV0dXJuIEllW3hdPVAsUH0sbmUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9u''@;'; + put 'put ''KHgpe1koMD09PXgubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksWSh4LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxuZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oeCxQKXtZKDA9PSh4Lm5lZ2F0aXZlfFAubmVnYXRpdmUpLCJy''@;'; + put 'put ''ZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQmJngucmVkPT09UC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sbmUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKHgpLl9mb3Jj''@;'; + put 'put ''ZVJlZCh0aGlzKTp4LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oeCl7cmV0dXJuIHguaXNaZXJvKCk/eC5jbG9uZSgpOnRoaXMubS5zdWIoeCkuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHgsUCl7dGhp''@;'; + put 'put ''cy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5pYWRkKFApO3JldHVybiBW''@;'; + put 'put ''LmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWfSxuZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguc3ViKFApO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlw''@;'; + put 'put ''ZS5pc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaXN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0aGlzLm0pLFZ9LG5lLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh4KSx0aGlzLmltb2QoeC51c2hs''@;'; + put 'put ''bihQKSl9LG5lLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoeCxQKSx0aGlzLmltb2QoeC5pbXVsKFApKX0sbmUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCksdGhpcy5pbW9kKHgubXVsKFApKX0s''@;'; + put 'put ''bmUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW11bCh4LHguY2xvbmUoKSl9LG5lLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubXVsKHgseCl9LG5lLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHgpe2lmKHguaXNaZXJvKCkpcmV0dXJuIHgu''@;'; + put 'put ''Y2xvbmUoKTt2YXIgUD10aGlzLm0uYW5kbG4oMyk7aWYoWShQJTI9PTEpLDM9PT1QKXt2YXIgVj10aGlzLm0uYWRkKG5ldyBOKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHgsVil9Zm9yKHZhciBUPXRoaXMubS5zdWJuKDEpLFM9MDshVC5pc1plcm8oKSYmMD09PVQuYW5kbG4oMSk7''@;'; + put 'put ''KVMrKyxULml1c2hybigxKTtZKCFULmlzWmVybygpKTt2YXIgRj1uZXcgTigxKS50b1JlZCh0aGlzKSx5ZT1GLnJlZE5lZygpLENlPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxEZT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKERlPW5ldyBOKDIqRGUqRGUpLnRvUmVkKHRoaXMpOzAhPT10aGlz''@;'; + put 'put ''LnBvdyhEZSxDZSkuY21wKHllKTspRGUucmVkSUFkZCh5ZSk7Zm9yKHZhciBQZT10aGlzLnBvdyhEZSxUKSxRZT10aGlzLnBvdyh4LFQuYWRkbigxKS5pdXNocm4oMSkpLCRlPXRoaXMucG93KHgsVCksZ3Q9UzswIT09JGUuY21wKEYpOyl7Zm9yKHZhciB3dD0kZSx2dD0wOzAhPT13dC5jbXAo''@;'; + put 'put ''Rik7dnQrKyl3dD13dC5yZWRTcXIoKTtZKHZ0PGd0KTt2YXIgQXQ9dGhpcy5wb3coUGUsbmV3IE4oMSkuaXVzaGxuKGd0LXZ0LTEpKTtRZT1RZS5yZWRNdWwoQXQpLFBlPUF0LnJlZFNxcigpLCRlPSRlLnJlZE11bChQZSksZ3Q9dnR9cmV0dXJuIFFlfSxuZS5wcm90b3R5cGUuaW52bT1mdW5j''@;'; + put 'put ''dGlvbih4KXt2YXIgUD14Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09UC5uZWdhdGl2ZT8oUC5uZWdhdGl2ZT0wLHRoaXMuaW1vZChQKS5yZWROZWcoKSk6dGhpcy5pbW9kKFApfSxuZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgsUCl7aWYoUC5pc1plcm8oKSlyZXR1cm4gbmV3IE4oMSku''@;'; + put 'put ''dG9SZWQodGhpcyk7aWYoMD09PVAuY21wbigxKSlyZXR1cm4geC5jbG9uZSgpO3ZhciBWPW5ldyBBcnJheSgxNik7VlswXT1uZXcgTigxKS50b1JlZCh0aGlzKSxWWzFdPXg7Zm9yKHZhciBUPTI7VDxWLmxlbmd0aDtUKyspVltUXT10aGlzLm11bChWW1QtMV0seCk7dmFyIFM9VlswXSxGPTAs''@;'; + put 'put ''eWU9MCxDZT1QLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09Q2UmJihDZT0yNiksVD1QLmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIERlPVAud29yZHNbVF0sUGU9Q2UtMTtQZT49MDtQZS0tKXt2YXIgUWU9RGU+PlBlJjE7UyE9PVZbMF0mJihTPXRoaXMuc3FyKFMpKSwwIT09UWV8fDAhPT1G''@;'; + put 'put ''PyhGPDw9MSxGfD1RZSwoND09Kyt5ZXx8MD09PVQmJjA9PT1QZSkmJihTPXRoaXMubXVsKFMsVltGXSkseWU9MCxGPTApKTp5ZT0wfUNlPTI2fXJldHVybiBTfSxuZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHgpe3ZhciBQPXgudW1vZCh0aGlzLm0pO3JldHVybiBQPT09eD9QLmNs''@;'; + put 'put ''b25lKCk6UH0sbmUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHgpe3ZhciBQPXguY2xvbmUoKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSxOLm1vbnQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyB0ZSh4KX0sVyh0ZSxuZSksdGUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5pbW9kKHgudXNobG4odGhpcy5zaGlmdCkpfSx0ZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5pbW9kKHgubXVsKHRoaXMucmludikpO3JldHVybiBQLnJlZD1udWxsLFB9LHRlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7aWYo''@;'; + put 'put ''eC5pc1plcm8oKXx8UC5pc1plcm8oKSlyZXR1cm4geC53b3Jkc1swXT0wLHgubGVuZ3RoPTEseDt2YXIgVj14LmltdWwoUCksVD1WLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5z''@;'; + put 'put ''aGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxGLl9mb3JjZVJlZCh0aGlzKX0sdGUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJu''@;'; + put 'put ''IG5ldyBOKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgVj14Lm11bChQKSxUPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFM9Vi5pc3ViKFQpLml1c2hybih0aGlzLnNoaWZ0KSxGPVM7cmV0dXJuIFMuY21wKHRoaXMubSk+''@;'; + put 'put ''PTA/Rj1TLmlzdWIodGhpcy5tKTpTLmNtcG4oMCk8MCYmKEY9Uy5pYWRkKHRoaXMubSkpLEYuX2ZvcmNlUmVkKHRoaXMpfSx0ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHguX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9''@;'; + put 'put ''fShVPVoubm1kKFUpLHRoaXMpfSwzNDgyOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNTcxNyksbGU9WigyMzE4KSxZPVooOTc4NSksVz1aKDkwNzIpLE49WigxMDI3KTtmdW5jdGlvbiBlZShxKXtOLmNhbGwodGhpcywiZGlnZXN0IiksdGhpcy5faGFzaD1xfWllKGVlLE4pLGVl''@;'; + put 'put ''LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHEpe3RoaXMuX2hhc2gudXBkYXRlKHEpfSxlZS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hhc2guZGlnZXN0KCl9LFUuZXhwb3J0cz1mdW5jdGlvbihxKXtyZXR1cm4ibWQ1Ij09PShxPXEudG9Mb3dlckNhc2Uo''@;'; + put 'put ''KSk/bmV3IGxlOiJybWQxNjAiPT09cXx8InJpcGVtZDE2MCI9PT1xP25ldyBZOm5ldyBlZShXKHEpKX19LDgwMjg6KFUsUSxaKT0+e3ZhciBpZT1aKDIzMTgpO1UuZXhwb3J0cz1mdW5jdGlvbihsZSl7cmV0dXJuKG5ldyBpZSkudXBkYXRlKGxlKS5kaWdlc3QoKX19LDgzNTU6KFUsUSxaKT0+''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig1NzE3KSxsZT1aKDEwMzEpLFk9WigxMDI3KSxXPVooOTUwOSkuQnVmZmVyLE49Wig4MDI4KSxlZT1aKDk3ODUpLHE9Wig5MDcyKSxKPVcuYWxsb2MoMTI4KTtmdW5jdGlvbiBzZShvZSxjZSl7WS5jYWxsKHRoaXMsImRpZ2VzdCIpLCJzdHJpbmciPT10''@;'; + put 'put ''eXBlb2YgY2UmJihjZT1XLmZyb20oY2UpKTt2YXIgZGU9InNoYTUxMiI9PT1vZXx8InNoYTM4NCI9PT1vZT8xMjg6NjQ7dGhpcy5fYWxnPW9lLHRoaXMuX2tleT1jZSxjZS5sZW5ndGg+ZGU/Y2U9KCJybWQxNjAiPT09b2U/bmV3IGVlOnEob2UpKS51cGRhdGUoY2UpLmRpZ2VzdCgpOmNlLmxl''@;'; + put 'put ''bmd0aDxkZSYmKGNlPVcuY29uY2F0KFtjZSxKXSxkZSkpO2Zvcih2YXIgdmU9dGhpcy5faXBhZD1XLmFsbG9jVW5zYWZlKGRlKSxBZT10aGlzLl9vcGFkPVcuYWxsb2NVbnNhZmUoZGUpLGtlPTA7a2U8ZGU7a2UrKyl2ZVtrZV09NTReY2Vba2VdLEFlW2tlXT05Ml5jZVtrZV07dGhpcy5faGFz''@;'; + put 'put ''aD0icm1kMTYwIj09PW9lP25ldyBlZTpxKG9lKSx0aGlzLl9oYXNoLnVwZGF0ZSh2ZSl9aWUoc2UsWSksc2UucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24ob2Upe3RoaXMuX2hhc2gudXBkYXRlKG9lKX0sc2UucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBvZT10aGlzLl9oYXNo''@;'; + put 'put ''LmRpZ2VzdCgpO3JldHVybigicm1kMTYwIj09PXRoaXMuX2FsZz9uZXcgZWU6cSh0aGlzLl9hbGcpKS51cGRhdGUodGhpcy5fb3BhZCkudXBkYXRlKG9lKS5kaWdlc3QoKX0sVS5leHBvcnRzPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4icm1kMTYwIj09PShvZT1vZS50b0xvd2VyQ2FzZSgpKXx8''@;'; + put 'put ''InJpcGVtZDE2MCI9PT1vZT9uZXcgc2UoInJtZDE2MCIsY2UpOiJtZDUiPT09b2U/bmV3IGxlKE4sY2UpOm5ldyBzZShvZSxjZSl9fSwxMDMxOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNTcxNyksbGU9Wig5NTA5KS5CdWZmZXIsWT1aKDEwMjcpLFc9bGUuYWxsb2MoMTI4KSxO''@;'; + put 'put ''PTY0O2Z1bmN0aW9uIGVlKHEsSil7WS5jYWxsKHRoaXMsImRpZ2VzdCIpLCJzdHJpbmciPT10eXBlb2YgSiYmKEo9bGUuZnJvbShKKSksdGhpcy5fYWxnPXEsdGhpcy5fa2V5PUosSi5sZW5ndGg+Tj9KPXEoSik6Si5sZW5ndGg8TiYmKEo9bGUuY29uY2F0KFtKLFddLE4pKTtmb3IodmFyIHNl''@;'; + put 'put ''PXRoaXMuX2lwYWQ9bGUuYWxsb2NVbnNhZmUoTiksb2U9dGhpcy5fb3BhZD1sZS5hbGxvY1Vuc2FmZShOKSxjZT0wO2NlPE47Y2UrKylzZVtjZV09NTReSltjZV0sb2VbY2VdPTkyXkpbY2VdO3RoaXMuX2hhc2g9W3NlXX1pZShlZSxZKSxlZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihx''@;'; + put 'put ''KXt0aGlzLl9oYXNoLnB1c2gocSl9LGVlLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgcT10aGlzLl9hbGcobGUuY29uY2F0KHRoaXMuX2hhc2gpKTtyZXR1cm4gdGhpcy5fYWxnKGxlLmNvbmNhdChbdGhpcy5fb3BhZCxxXSkpfSxVLmV4cG9ydHM9ZWV9LDU4MzU6KFUsUSxaKT0+''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0IjtRLnJhbmRvbUJ5dGVzPVEucm5nPVEucHNldWRvUmFuZG9tQnl0ZXM9US5wcm5nPVooMTc5OCksUS5jcmVhdGVIYXNoPVEuSGFzaD1aKDM0ODIpLFEuY3JlYXRlSG1hYz1RLkhtYWM9Wig4MzU1KTt2YXIgaWU9Wig2MDQyKSxsZT1PYmplY3Qua2V5cyhpZSksWT1bInNo''@;'; + put 'put ''YTEiLCJzaGEyMjQiLCJzaGEyNTYiLCJzaGEzODQiLCJzaGE1MTIiLCJtZDUiLCJybWQxNjAiXS5jb25jYXQobGUpO1EuZ2V0SGFzaGVzPWZ1bmN0aW9uKCl7cmV0dXJuIFl9O3ZhciBXPVooNTYzMik7US5wYmtkZjI9Vy5wYmtkZjIsUS5wYmtkZjJTeW5jPVcucGJrZGYyU3luYzt2YXIgTj1a''@;'; + put 'put ''KDM2MTQpO1EuQ2lwaGVyPU4uQ2lwaGVyLFEuY3JlYXRlQ2lwaGVyPU4uY3JlYXRlQ2lwaGVyLFEuQ2lwaGVyaXY9Ti5DaXBoZXJpdixRLmNyZWF0ZUNpcGhlcml2PU4uY3JlYXRlQ2lwaGVyaXYsUS5EZWNpcGhlcj1OLkRlY2lwaGVyLFEuY3JlYXRlRGVjaXBoZXI9Ti5jcmVhdGVEZWNpcGhl''@;'; + put 'put ''cixRLkRlY2lwaGVyaXY9Ti5EZWNpcGhlcml2LFEuY3JlYXRlRGVjaXBoZXJpdj1OLmNyZWF0ZURlY2lwaGVyaXYsUS5nZXRDaXBoZXJzPU4uZ2V0Q2lwaGVycyxRLmxpc3RDaXBoZXJzPU4ubGlzdENpcGhlcnM7dmFyIGVlPVooMjYwNyk7US5EaWZmaWVIZWxsbWFuR3JvdXA9ZWUuRGlmZmll''@;'; + put 'put ''SGVsbG1hbkdyb3VwLFEuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwPWVlLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cCxRLmdldERpZmZpZUhlbGxtYW49ZWUuZ2V0RGlmZmllSGVsbG1hbixRLmNyZWF0ZURpZmZpZUhlbGxtYW49ZWUuY3JlYXRlRGlmZmllSGVsbG1hbixRLkRpZmZpZUhlbGxt''@;'; + put 'put ''YW49ZWUuRGlmZmllSGVsbG1hbjt2YXIgcT1aKDQ3NDMpO1EuY3JlYXRlU2lnbj1xLmNyZWF0ZVNpZ24sUS5TaWduPXEuU2lnbixRLmNyZWF0ZVZlcmlmeT1xLmNyZWF0ZVZlcmlmeSxRLlZlcmlmeT1xLlZlcmlmeSxRLmNyZWF0ZUVDREg9Wig2MzkzKTt2YXIgSj1aKDc5MDApO1EucHVibGlj''@;'; + put 'put ''RW5jcnlwdD1KLnB1YmxpY0VuY3J5cHQsUS5wcml2YXRlRW5jcnlwdD1KLnByaXZhdGVFbmNyeXB0LFEucHVibGljRGVjcnlwdD1KLnB1YmxpY0RlY3J5cHQsUS5wcml2YXRlRGVjcnlwdD1KLnByaXZhdGVEZWNyeXB0O3ZhciBzZT1aKDc5NjMpO1EucmFuZG9tRmlsbD1zZS5yYW5kb21GaWxs''@;'; + put 'put ''LFEucmFuZG9tRmlsbFN5bmM9c2UucmFuZG9tRmlsbFN5bmMsUS5jcmVhdGVDcmVkZW50aWFscz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihbInNvcnJ5LCBjcmVhdGVDcmVkZW50aWFscyBpcyBub3QgaW1wbGVtZW50ZWQgeWV0Iiwid2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMiLCJodHRw''@;'; + put 'put ''czovL2dpdGh1Yi5jb20vY3J5cHRvLWJyb3dzZXJpZnkvY3J5cHRvLWJyb3dzZXJpZnkiXS5qb2luKCJcbiIpKX0sUS5jb25zdGFudHM9e0RIX0NIRUNLX1BfTk9UX1NBRkVfUFJJTUU6MixESF9DSEVDS19QX05PVF9QUklNRToxLERIX1VOQUJMRV9UT19DSEVDS19HRU5FUkFUT1I6NCxESF9O''@;'; + put 'put ''T1RfU1VJVEFCTEVfR0VORVJBVE9SOjgsTlBOX0VOQUJMRUQ6MSxBTFBOX0VOQUJMRUQ6MSxSU0FfUEtDUzFfUEFERElORzoxLFJTQV9TU0xWMjNfUEFERElORzoyLFJTQV9OT19QQURESU5HOjMsUlNBX1BLQ1MxX09BRVBfUEFERElORzo0LFJTQV9YOTMxX1BBRERJTkc6NSxSU0FfUEtDUzFf''@;'; + put 'put ''UFNTX1BBRERJTkc6NixQT0lOVF9DT05WRVJTSU9OX0NPTVBSRVNTRUQ6MixQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRDo0LFBPSU5UX0NPTlZFUlNJT05fSFlCUklEOjZ9fSw1MDU2OihVLFEsWik9Pnt2YXIgaWU9Wig4NzY0KS5CdWZmZXI7Y29uc3R7VHJhbnNmb3JtOmxlfT1aKDI4''@;'; + put 'put ''MzApLFk9aWUuZnJvbShbMjM5LDE4NywxOTFdKTtjbGFzcyBXIGV4dGVuZHMgbGV7Y29uc3RydWN0b3IoRWU9e30pe3N1cGVyKGdzKHt3cml0YWJsZU9iamVjdE1vZGU6ITB9LEVlKSk7Y29uc3QgaGU9e307bGV0IE87Zm9yKGxldCB6IGluIEVlKWhlW0ooeildPUVlW3pdO2lmKE89dGhpcy5u''@;'; + put 'put ''b3JtYWxpemUoaGUpKXRocm93IE87c3dpdGNoKGhlLnJlY29yZF9kZWxpbWl0ZXIpe2Nhc2UiYXV0byI6aGUucmVjb3JkX2RlbGltaXRlcj1udWxsO2JyZWFrO2Nhc2UidW5peCI6aGUucmVjb3JkX2RlbGltaXRlcj0iXG4iO2JyZWFrO2Nhc2UibWFjIjpoZS5yZWNvcmRfZGVsaW1pdGVyPSJc''@;'; + put 'put ''ciI7YnJlYWs7Y2FzZSJ3aW5kb3dzIjpoZS5yZWNvcmRfZGVsaW1pdGVyPSJcclxuIjticmVhaztjYXNlImFzY2lpIjpoZS5yZWNvcmRfZGVsaW1pdGVyPSJceDFlIjticmVhaztjYXNlInVuaWNvZGUiOmhlLnJlY29yZF9kZWxpbWl0ZXI9Ilx1MjAyOCJ9dGhpcy5vcHRpb25zPWhlLHRoaXMu''@;'; + put 'put ''c3RhdGU9e3N0b3A6ITF9LHRoaXMuaW5mbz17cmVjb3JkczowfX1ub3JtYWxpemUoRWUpe2lmKG51bGw9PUVlLmJvbXx8ITE9PT1FZS5ib20pRWUuYm9tPSExO2Vsc2UgaWYoITAhPT1FZS5ib20pcmV0dXJuIG5ldyBlZSgiQ1NWX09QVElPTl9CT09MRUFOX0lOVkFMSURfVFlQRSIsWyJvcHRp''@;'; + put 'put ''b24gYGJvbWAgaXMgb3B0aW9uYWwgYW5kIG11c3QgYmUgYSBib29sZWFuIHZhbHVlLCIsYGdvdCAke0pTT04uc3RyaW5naWZ5KEVlLmJvbSl9YF0pO2lmKG51bGw9PUVlLmRlbGltaXRlcilFZS5kZWxpbWl0ZXI9IiwiO2Vsc2UgaWYoaWUuaXNCdWZmZXIoRWUuZGVsaW1pdGVyKSlFZS5kZWxp''@;'; + put 'put ''bWl0ZXI9RWUuZGVsaW1pdGVyLnRvU3RyaW5nKCk7ZWxzZSBpZigic3RyaW5nIiE9dHlwZW9mIEVlLmRlbGltaXRlcilyZXR1cm4gbmV3IGVlKCJDU1ZfT1BUSU9OX0RFTElNSVRFUl9JTlZBTElEX1RZUEUiLFsib3B0aW9uIGBkZWxpbWl0ZXJgIG11c3QgYmUgYSBidWZmZXIgb3IgYSBzdHJp''@;'; + put 'put ''bmcsIixgZ290ICR7SlNPTi5zdHJpbmdpZnkoRWUuZGVsaW1pdGVyKX1gXSk7aWYobnVsbD09RWUucXVvdGUpRWUucXVvdGU9JyInO2Vsc2UgaWYoITA9PT1FZS5xdW90ZSlFZS5xdW90ZT0nIic7ZWxzZSBpZighMT09PUVlLnF1b3RlKUVlLnF1b3RlPSIiO2Vsc2UgaWYoaWUuaXNCdWZmZXIo''@;'; + put 'put ''RWUucXVvdGUpKUVlLnF1b3RlPUVlLnF1b3RlLnRvU3RyaW5nKCk7ZWxzZSBpZigic3RyaW5nIiE9dHlwZW9mIEVlLnF1b3RlKXJldHVybiBuZXcgZWUoIkNTVl9PUFRJT05fUVVPVEVfSU5WQUxJRF9UWVBFIixbIm9wdGlvbiBgcXVvdGVgIG11c3QgYmUgYSBib29sZWFuLCBhIGJ1ZmZlciBv''@;'; + put 'put ''ciBhIHN0cmluZywiLGBnb3QgJHtKU09OLnN0cmluZ2lmeShFZS5xdW90ZSl9YF0pO2lmKG51bGwhPUVlLnF1b3RlZHx8KEVlLnF1b3RlZD0hMSksbnVsbCE9RWUucXVvdGVkX2VtcHR5fHwoRWUucXVvdGVkX2VtcHR5PXZvaWQgMCksbnVsbD09RWUucXVvdGVkX21hdGNofHwhMT09PUVlLnF1''@;'; + put 'put ''b3RlZF9tYXRjaD9FZS5xdW90ZWRfbWF0Y2g9bnVsbDpBcnJheS5pc0FycmF5KEVlLnF1b3RlZF9tYXRjaCl8fChFZS5xdW90ZWRfbWF0Y2g9W0VlLnF1b3RlZF9tYXRjaF0pLEVlLnF1b3RlZF9tYXRjaClmb3IobGV0IGhlIG9mIEVlLnF1b3RlZF9tYXRjaCl7Y29uc3QgTz1oZSBpbnN0YW5j''@;'; + put 'put ''ZW9mIFJlZ0V4cDtpZigic3RyaW5nIiE9dHlwZW9mIGhlJiYhTylyZXR1cm4gRXJyb3IoYEludmFsaWQgT3B0aW9uOiBxdW90ZWRfbWF0Y2ggbXVzdCBiZSBhIHN0cmluZyBvciBhIHJlZ2V4LCBnb3QgJHtKU09OLnN0cmluZ2lmeShoZSl9YCl9aWYobnVsbCE9RWUucXVvdGVkX3N0cmluZ3x8''@;'; + put 'put ''KEVlLnF1b3RlZF9zdHJpbmc9ITEpLG51bGwhPUVlLmVvZnx8KEVlLmVvZj0hMCksbnVsbD09RWUuZXNjYXBlKUVlLmVzY2FwZT0nIic7ZWxzZSBpZihpZS5pc0J1ZmZlcihFZS5lc2NhcGUpKUVlLmVzY2FwZT1FZS5lc2NhcGUudG9TdHJpbmcoKTtlbHNlIGlmKCJzdHJpbmciIT10eXBlb2Yg''@;'; + put 'put ''RWUuZXNjYXBlKXJldHVybiBFcnJvcihgSW52YWxpZCBPcHRpb246IGVzY2FwZSBtdXN0IGJlIGEgYnVmZmVyIG9yIGEgc3RyaW5nLCBnb3QgJHtKU09OLnN0cmluZ2lmeShFZS5lc2NhcGUpfWApO2lmKEVlLmVzY2FwZS5sZW5ndGg+MSlyZXR1cm4gRXJyb3IoYEludmFsaWQgT3B0aW9uOiBl''@;'; + put 'put ''c2NhcGUgbXVzdCBiZSBvbmUgY2hhcmFjdGVyLCBnb3QgJHtFZS5lc2NhcGUubGVuZ3RofSBjaGFyYWN0ZXJzYCk7aWYobnVsbCE9RWUuaGVhZGVyfHwoRWUuaGVhZGVyPSExKSxFZS5jb2x1bW5zPXRoaXMubm9ybWFsaXplX2NvbHVtbnMoRWUuY29sdW1ucyksbnVsbCE9RWUucXVvdGVkfHwo''@;'; + put 'put ''RWUucXVvdGVkPSExKSxudWxsIT1FZS5jYXN0fHwoRWUuY2FzdD17fSksbnVsbCE9RWUuY2FzdC5iaWdpbnR8fChFZS5jYXN0LmJpZ2ludD1oZT0+IiIraGUpLG51bGwhPUVlLmNhc3QuYm9vbGVhbnx8KEVlLmNhc3QuYm9vbGVhbj1oZT0+aGU/IjEiOiIiKSxudWxsIT1FZS5jYXN0LmRhdGV8''@;'; + put 'put ''fChFZS5jYXN0LmRhdGU9aGU9PiIiK2hlLmdldFRpbWUoKSksbnVsbCE9RWUuY2FzdC5udW1iZXJ8fChFZS5jYXN0Lm51bWJlcj1oZT0+IiIraGUpLG51bGwhPUVlLmNhc3Qub2JqZWN0fHwoRWUuY2FzdC5vYmplY3Q9aGU9PkpTT04uc3RyaW5naWZ5KGhlKSksbnVsbCE9RWUuY2FzdC5zdHJp''@;'; + put 'put ''bmd8fChFZS5jYXN0LnN0cmluZz1mdW5jdGlvbihoZSl7cmV0dXJuIGhlfSksbnVsbD09RWUucmVjb3JkX2RlbGltaXRlcilFZS5yZWNvcmRfZGVsaW1pdGVyPSJcbiI7ZWxzZSBpZihpZS5pc0J1ZmZlcihFZS5yZWNvcmRfZGVsaW1pdGVyKSlFZS5yZWNvcmRfZGVsaW1pdGVyPUVlLnJlY29y''@;'; + put 'put ''ZF9kZWxpbWl0ZXIudG9TdHJpbmcoKTtlbHNlIGlmKCJzdHJpbmciIT10eXBlb2YgRWUucmVjb3JkX2RlbGltaXRlcilyZXR1cm4gRXJyb3IoYEludmFsaWQgT3B0aW9uOiByZWNvcmRfZGVsaW1pdGVyIG11c3QgYmUgYSBidWZmZXIgb3IgYSBzdHJpbmcsIGdvdCAke0pTT04uc3RyaW5naWZ5''@;'; + put 'put ''KEVlLnJlY29yZF9kZWxpbWl0ZXIpfWApfV90cmFuc2Zvcm0oRWUsaGUsTyl7aWYoITA9PT10aGlzLnN0YXRlLnN0b3ApcmV0dXJuO2lmKCFBcnJheS5pc0FycmF5KEVlKSYmIm9iamVjdCIhPXR5cGVvZiBFZSlyZXR1cm4gdGhpcy5zdGF0ZS5zdG9wPSEwLE8oRXJyb3IoYEludmFsaWQgUmVj''@;'; + put 'put ''b3JkOiBleHBlY3QgYW4gYXJyYXkgb3IgYW4gb2JqZWN0LCBnb3QgJHtKU09OLnN0cmluZ2lmeShFZSl9YCkpO2lmKDA9PT10aGlzLmluZm8ucmVjb3JkcylpZihBcnJheS5pc0FycmF5KEVlKSl7aWYoITA9PT10aGlzLm9wdGlvbnMuaGVhZGVyJiYhdGhpcy5vcHRpb25zLmNvbHVtbnMpcmV0''@;'; + put 'put ''dXJuIHRoaXMuc3RhdGUuc3RvcD0hMCxPKEVycm9yKCJVbmRpc2NvdmVyYWJsZSBDb2x1bW5zOiBoZWFkZXIgb3B0aW9uIHJlcXVpcmVzIGNvbHVtbiBvcHRpb24gb3Igb2JqZWN0IHJlY29yZHMiKSl9ZWxzZSBudWxsIT10aGlzLm9wdGlvbnMuY29sdW1uc3x8KHRoaXMub3B0aW9ucy5jb2x1''@;'; + put 'put ''bW5zPXRoaXMubm9ybWFsaXplX2NvbHVtbnMoT2JqZWN0LmtleXMoRWUpKSk7MD09PXRoaXMuaW5mby5yZWNvcmRzJiYodGhpcy5ib20oKSx0aGlzLmhlYWRlcnMoKSk7dHJ5e3RoaXMuZW1pdCgicmVjb3JkIixFZSx0aGlzLmluZm8ucmVjb3Jkcyl9Y2F0Y2gobmUpe3JldHVybiB0aGlzLnN0''@;'; + put 'put ''YXRlLnN0b3A9ITAsdGhpcy5lbWl0KCJlcnJvciIsbmUpfWxldCB6O2lmKHRoaXMub3B0aW9ucy5lb2Ype2lmKHo9dGhpcy5zdHJpbmdpZnkoRWUpLHZvaWQgMD09PXopcmV0dXJuO3orPXRoaXMub3B0aW9ucy5yZWNvcmRfZGVsaW1pdGVyfWVsc2V7aWYoej10aGlzLnN0cmluZ2lmeShFZSks''@;'; + put 'put ''dm9pZCAwPT09eilyZXR1cm47KHRoaXMub3B0aW9ucy5oZWFkZXJ8fHRoaXMuaW5mby5yZWNvcmRzKSYmKHo9dGhpcy5vcHRpb25zLnJlY29yZF9kZWxpbWl0ZXIreil9dGhpcy5pbmZvLnJlY29yZHMrKyx0aGlzLnB1c2goeiksTygpfV9mbHVzaChFZSl7MD09PXRoaXMuaW5mby5yZWNvcmRz''@;'; + put 'put ''JiYodGhpcy5ib20oKSx0aGlzLmhlYWRlcnMoKSksRWUoKX1zdHJpbmdpZnkoRWUsaGU9ITEpe2lmKCJvYmplY3QiIT10eXBlb2YgRWUpcmV0dXJuIEVlO2NvbnN0e2NvbHVtbnM6T309dGhpcy5vcHRpb25zLG5lPVtdO2lmKEFycmF5LmlzQXJyYXkoRWUpKXtPJiZFZS5zcGxpY2UoTy5sZW5n''@;'; + put 'put ''dGgpO2ZvcihsZXQgeD0wO3g8RWUubGVuZ3RoO3grKyl7Y29uc3QgUD1FZVt4XSxbVixUXT10aGlzLl9fY2FzdChQLHtpbmRleDp4LGNvbHVtbjp4LHJlY29yZHM6dGhpcy5pbmZvLnJlY29yZHMsaGVhZGVyOmhlfSk7aWYoVilyZXR1cm4gdm9pZCB0aGlzLmVtaXQoImVycm9yIixWKTtuZVt4''@;'; + put 'put ''XT1bVCxQXX19ZWxzZSBpZihPKWZvcihsZXQgeD0wO3g8Ty5sZW5ndGg7eCsrKXtjb25zdCBQPUllKEVlLE9beF0ua2V5KSxbVixUXT10aGlzLl9fY2FzdChQLHtpbmRleDp4LGNvbHVtbjpPW3hdLmtleSxyZWNvcmRzOnRoaXMuaW5mby5yZWNvcmRzLGhlYWRlcjpoZX0pO2lmKFYpcmV0dXJu''@;'; + put 'put ''IHZvaWQgdGhpcy5lbWl0KCJlcnJvciIsVik7bmVbeF09W1QsUF19ZWxzZSBmb3IobGV0IHggb2YgRWUpe2NvbnN0IFA9RWVbeF0sW1YsVF09dGhpcy5fX2Nhc3QoUCx7aW5kZXg6aSxjb2x1bW46T1tpXS5rZXkscmVjb3Jkczp0aGlzLmluZm8ucmVjb3JkcyxoZWFkZXI6aGV9KTtpZihWKXJl''@;'; + put 'put ''dHVybiB2b2lkIHRoaXMuZW1pdCgiZXJyb3IiLFYpO25lLnB1c2goW1QsUF0pfWxldCB0ZT0iIjtmb3IobGV0IHg9MDt4PG5lLmxlbmd0aDt4Kyspe2xldCBQLFYsW1QsU109bmVbeF07aWYoInN0cmluZyI9PXR5cGVvZiBUKVA9dGhpcy5vcHRpb25zO2Vsc2UgaWYocShUKSl7aWYoUD1ULFQ9''@;'; + put 'put ''UC52YWx1ZSxkZWxldGUgUC52YWx1ZSwic3RyaW5nIiE9dHlwZW9mIFQmJm51bGwhPVQpcmV0dXJuIHZvaWQgdGhpcy5lbWl0KCJlcnJvciIsRXJyb3IoYEludmFsaWQgQ2FzdGluZyBWYWx1ZTogcmV0dXJuZWQgdmFsdWUgbXVzdCByZXR1cm4gYSBzdHJpbmcsIG51bGwgb3IgdW5kZWZpbmVk''@;'; + put 'put ''LCBnb3QgJHtKU09OLnN0cmluZ2lmeShUKX1gKSk7aWYoUD1ncyhncyh7fSx0aGlzLm9wdGlvbnMpLFApLFY9dGhpcy5ub3JtYWxpemUoUCkpcmV0dXJuIHZvaWQgdGhpcy5lbWl0KCJlcnJvciIsVil9ZWxzZXtpZihudWxsIT1UKXJldHVybiB2b2lkIHRoaXMuZW1pdCgiZXJyb3IiLEVycm9y''@;'; + put 'put ''KGBJbnZhbGlkIENhc3RpbmcgVmFsdWU6IHJldHVybmVkIHZhbHVlIG11c3QgcmV0dXJuIGEgc3RyaW5nLCBhbiBvYmplY3QsIG51bGwgb3IgdW5kZWZpbmVkLCBnb3QgJHtKU09OLnN0cmluZ2lmeShUKX1gKSk7UD10aGlzLm9wdGlvbnN9Y29uc3R7ZGVsaW1pdGVyOkYsZXNjYXBlOnllLHF1''@;'; + put 'put ''b3RlOkNlLHF1b3RlZDpEZSxxdW90ZWRfZW1wdHk6UGUscXVvdGVkX3N0cmluZzpRZSxxdW90ZWRfbWF0Y2g6JGUscmVjb3JkX2RlbGltaXRlcjpndH09UDtpZihUKXtpZigic3RyaW5nIiE9dHlwZW9mIFQpcmV0dXJuIHRoaXMuZW1pdCgiZXJyb3IiLEVycm9yKGBGb3JtYXR0ZXIgbXVzdCBy''@;'; + put 'put ''ZXR1cm4gYSBzdHJpbmcsIG51bGwgb3IgdW5kZWZpbmVkLCBnb3QgJHtKU09OLnN0cmluZ2lmeShUKX1gKSksbnVsbDtjb25zdCB3dD1GLmxlbmd0aCYmVC5pbmRleE9mKEYpPj0wLHZ0PSIiIT09Q2UmJlQuaW5kZXhPZihDZSk+PTAsQXQ9VC5pbmRleE9mKHllKT49MCYmeWUhPT1DZSxtdD1U''@;'; + put 'put ''LmluZGV4T2YoZ3QpPj0wLGh0PVFlJiYic3RyaW5nIj09dHlwZW9mIFM7bGV0IEJ0PSRlJiYkZS5maWx0ZXIoX3Q9PiJzdHJpbmciPT10eXBlb2YgX3Q/LTEhPT1ULmluZGV4T2YoX3QpOl90LnRlc3QoVCkpO0J0PUJ0JiZCdC5sZW5ndGg+MDtjb25zdCBvbj0hMD09PXZ0fHx3dHx8bXR8fERl''@;'; + put 'put ''fHxodHx8QnQ7aWYoITA9PT1vbiYmITA9PT1BdCl7Y29uc3QgX3Q9IlxcIj09PXllP25ldyBSZWdFeHAoeWUreWUsImciKTpuZXcgUmVnRXhwKHllLCJnIik7VD1ULnJlcGxhY2UoX3QseWUreWUpfWlmKCEwPT09dnQpe2NvbnN0IF90PW5ldyBSZWdFeHAoQ2UsImciKTtUPVQucmVwbGFjZShf''@;'; + put 'put ''dCx5ZStDZSl9ITA9PT1vbiYmKFQ9Q2UrVCtDZSksdGUrPVR9ZWxzZSghMD09PVBlfHwiIj09PVMmJiEwPT09UWUmJiExIT09UGUpJiYodGUrPUNlK0NlKTt4IT09bmUubGVuZ3RoLTEmJih0ZSs9Ril9cmV0dXJuIHRlfWJvbSgpeyEwPT09dGhpcy5vcHRpb25zLmJvbSYmdGhpcy5wdXNoKFkp''@;'; + put 'put ''fWhlYWRlcnMoKXtpZighMT09PXRoaXMub3B0aW9ucy5oZWFkZXJ8fHZvaWQgMD09PXRoaXMub3B0aW9ucy5jb2x1bW5zKXJldHVybjtsZXQgRWU9dGhpcy5vcHRpb25zLmNvbHVtbnMubWFwKGhlPT5oZS5oZWFkZXIpO0VlPXRoaXMub3B0aW9ucy5lb2Y/dGhpcy5zdHJpbmdpZnkoRWUsITAp''@;'; + put 'put ''K3RoaXMub3B0aW9ucy5yZWNvcmRfZGVsaW1pdGVyOnRoaXMuc3RyaW5naWZ5KEVlKSx0aGlzLnB1c2goRWUpfV9fY2FzdChFZSxoZSl7Y29uc3QgTz10eXBlb2YgRWU7dHJ5e3JldHVybiJzdHJpbmciPT09Tz9bdm9pZCAwLHRoaXMub3B0aW9ucy5jYXN0LnN0cmluZyhFZSxoZSldOiJiaWdp''@;'; + put 'put ''bnQiPT09Tz9bdm9pZCAwLHRoaXMub3B0aW9ucy5jYXN0LmJpZ2ludChFZSxoZSldOiJudW1iZXIiPT09Tz9bdm9pZCAwLHRoaXMub3B0aW9ucy5jYXN0Lm51bWJlcihFZSxoZSldOiJib29sZWFuIj09PU8/W3ZvaWQgMCx0aGlzLm9wdGlvbnMuY2FzdC5ib29sZWFuKEVlLGhlKV06RWUgaW5z''@;'; + put 'put ''dGFuY2VvZiBEYXRlP1t2b2lkIDAsdGhpcy5vcHRpb25zLmNhc3QuZGF0ZShFZSxoZSldOiJvYmplY3QiPT09TyYmbnVsbCE9PUVlP1t2b2lkIDAsdGhpcy5vcHRpb25zLmNhc3Qub2JqZWN0KEVlLGhlKV06W3ZvaWQgMCxFZSxFZV19Y2F0Y2goeil7cmV0dXJuW3pdfX1ub3JtYWxpemVfY29s''@;'; + put 'put ''dW1ucyhFZSl7aWYobnVsbCE9RWUpe2lmKCJvYmplY3QiIT10eXBlb2YgRWUpdGhyb3cgRXJyb3IoJ0ludmFsaWQgb3B0aW9uICJjb2x1bW5zIjogZXhwZWN0IGFuIGFycmF5IG9yIGFuIG9iamVjdCcpO2lmKEFycmF5LmlzQXJyYXkoRWUpKXtjb25zdCBoZT1bXTtmb3IobGV0IE8gb2YgRWUp''@;'; + put 'put ''aWYoInN0cmluZyI9PXR5cGVvZiBPKWhlLnB1c2goe2tleTpPLGhlYWRlcjpPfSk7ZWxzZXtpZigib2JqZWN0IiE9dHlwZW9mIE98fHZvaWQgMD09PU98fEFycmF5LmlzQXJyYXkoTykpdGhyb3cgRXJyb3IoIkludmFsaWQgY29sdW1uIGRlZmluaXRpb246IGV4cGVjdCBhIHN0cmluZyBvciBh''@;'; + put 'put ''biBvYmplY3QiKTtpZighTy5rZXkpdGhyb3cgRXJyb3IoJ0ludmFsaWQgY29sdW1uIGRlZmluaXRpb246IHByb3BlcnR5ICJrZXkiIGlzIHJlcXVpcmVkJyk7dm9pZCAwPT09Ty5oZWFkZXImJihPLmhlYWRlcj1PLmtleSksaGUucHVzaChPKX1FZT1oZX1lbHNle2NvbnN0IGhlPVtdO2Zvcihs''@;'; + put 'put ''ZXQgTyBpbiBFZSloZS5wdXNoKHtrZXk6TyxoZWFkZXI6RWVbT119KTtFZT1oZX1yZXR1cm4gRWV9fX1jb25zdCBOPWZ1bmN0aW9uKCl7bGV0IFRlLEVlLGhlO2ZvcihsZXQgeiBpbiBhcmd1bWVudHMpe2NvbnN0IG5lPWFyZ3VtZW50c1t6XSx0ZT10eXBlb2YgbmU7aWYodm9pZCAwPT09VGUm''@;'; + put 'put ''JkFycmF5LmlzQXJyYXkobmUpKVRlPW5lO2Vsc2UgaWYodm9pZCAwPT09RWUmJnEobmUpKUVlPW5lO2Vsc2V7aWYodm9pZCAwIT09aGV8fCJmdW5jdGlvbiIhPT10ZSl0aHJvdyBuZXcgZWUoIkNTVl9JTlZBTElEX0FSR1VNRU5UIixbIkludmFsaWQgYXJndW1lbnQ6IixgZ290ICR7SlNPTi5z''@;'; + put 'put ''dHJpbmdpZnkobmUpfSBhdCBpbmRleCAke3p9YF0pO2hlPW5lfX1jb25zdCBPPW5ldyBXKEVlKTtpZihoZSl7Y29uc3Qgej1bXTtPLm9uKCJyZWFkYWJsZSIsZnVuY3Rpb24oKXtsZXQgbmU7Zm9yKDtudWxsIT09KG5lPXRoaXMucmVhZCgpKTspei5wdXNoKG5lKX0pLE8ub24oImVycm9yIixm''@;'; + put 'put ''dW5jdGlvbihuZSl7aGUobmUpfSksTy5vbigiZW5kIixmdW5jdGlvbigpe2hlKHZvaWQgMCx6LmpvaW4oIiIpKX0pfWlmKHZvaWQgMCE9PVRlKWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBzZXRJbW1lZGlhdGUpc2V0SW1tZWRpYXRlKGZ1bmN0aW9uKCl7Zm9yKGxldCB6IG9mIFRlKU8ud3JpdGUo''@;'; + put 'put ''eik7Ty5lbmQoKX0pO2Vsc2V7Zm9yKGxldCB6IG9mIFRlKU8ud3JpdGUoeik7Ty5lbmQoKX1yZXR1cm4gT307Y2xhc3MgZWUgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihFZSxoZSwuLi5PKXtBcnJheS5pc0FycmF5KGhlKSYmKGhlPWhlLmpvaW4oIiAiKSksc3VwZXIoaGUpLHZvaWQgMCE9''@;'; + put 'put ''PUVycm9yLmNhcHR1cmVTdGFja1RyYWNlJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLGVlKSx0aGlzLmNvZGU9RWU7Zm9yKGNvbnN0IHogb2YgTylmb3IoY29uc3QgbmUgaW4geil7Y29uc3QgdGU9eltuZV07dGhpc1tuZV09aWUuaXNCdWZmZXIodGUpP3RlLnRvU3RyaW5nKCk6bnVs''@;'; + put 'put ''bD09dGU/dGU6SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0ZSkpfX19Ti5TdHJpbmdpZmllcj1XLE4uQ3N2RXJyb3I9ZWUsVS5leHBvcnRzPU47Y29uc3QgcT1mdW5jdGlvbihUZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBUZSYmbnVsbCE9PVRlJiYhQXJyYXkuaXNBcnJheShUZSl9LEo9''@;'; + put 'put ''ZnVuY3Rpb24oVGUpe3JldHVybiBUZS5yZXBsYWNlKC8oW0EtWl0pL2csZnVuY3Rpb24oRWUsaGUpe3JldHVybiJfIitoZS50b0xvd2VyQ2FzZSgpfSl9LHNlPSIuIi5jaGFyQ29kZUF0KDApLG9lPS9cXChcXCk/L2csY2U9UmVnRXhwKCJbXi5bXFxdXSt8XFxbKD86KFteXCInXVteW10qKXwo''@;'; + put 'put ''W1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCQpKSIsImciKSxkZT0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyx2ZT0vXlx3KiQvLEFlPWZ1bmN0aW9uKFRlKXtj''@;'; + put 'put ''b25zdCBFZT10eXBlb2YgVGU7cmV0dXJuInN5bWJvbCI9PT1FZXx8Im9iamVjdCI9PT1FZSYmVGUmJiJbb2JqZWN0IFN5bWJvbF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFRlKX0sU2U9ZnVuY3Rpb24oVGUpe2lmKCJzdHJpbmciPT10eXBlb2YgVGV8fEFlKFRlKSlyZXR1''@;'; + put 'put ''cm4gVGU7Y29uc3QgRWU9YCR7VGV9YDtyZXR1cm4iMCI9PUVlJiYxL1RlPT0tSU5GSU5JVFk/Ii0wIjpFZX0sSWU9ZnVuY3Rpb24oVGUsRWUpe2xldCBoZT0wO2NvbnN0IE89KEVlPWZ1bmN0aW9uKFRlLEVlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShUZSk/VGU6ZnVuY3Rpb24oaGUsTyl7aWYo''@;'; + put 'put ''QXJyYXkuaXNBcnJheShoZSkpcmV0dXJuITE7Y29uc3Qgej10eXBlb2YgaGU7cmV0dXJuISgibnVtYmVyIiE9PXomJiJzeW1ib2wiIT09eiYmImJvb2xlYW4iIT09eiYmaGUmJiFBZShoZSkpfHx2ZS50ZXN0KGhlKXx8IWRlLnRlc3QoaGUpfHxudWxsIT1PJiZoZSBpbiBPYmplY3QoTyl9KFRl''@;'; + put 'put ''LEVlKT9bVGVdOmZ1bmN0aW9uKGhlKXtjb25zdCBPPVtdO3JldHVybiBoZS5jaGFyQ29kZUF0KDApPT09c2UmJk8ucHVzaCgiIiksaGUucmVwbGFjZShjZSxmdW5jdGlvbih6LG5lLHRlLHgpe2xldCBQPXo7dGU/UD14LnJlcGxhY2Uob2UsIiQxIik6bmUmJihQPW5lLnRyaW0oKSksTy5wdXNo''@;'; + put 'put ''KFApfSksT30oVGUpfShFZSxUZSkpLmxlbmd0aDtmb3IoO251bGwhPVRlJiZoZTxPOylUZT1UZVtTZShFZVtoZSsrXSldO3JldHVybiBoZSYmaGU9PT1PP1RlOnZvaWQgMH19LDc1NjU6KFUsUSxaKT0+e3ZhciBpZT1aKDg3NjQpLkJ1ZmZlcjtjb25zdCBsZT1aKDUwNTYpLHtTdHJpbmdEZWNv''@;'; + put 'put ''ZGVyOll9PVooMjU1Myk7VS5leHBvcnRzPWZ1bmN0aW9uKFcsTj17fSl7Y29uc3QgZWU9W107ZnVuY3Rpb24gcShzZSl7c2UmJmVlLnB1c2goc2UudG9TdHJpbmcoKSl9aWUuaXNCdWZmZXIoVykmJihXPShuZXcgWSkud3JpdGUoVykpO2xldCBKPW5ldyBsZS5TdHJpbmdpZmllcihOKTtKLm9u''@;'; + put 'put ''KCJkYXRhIixxKTtmb3IobGV0IHNlIG9mIFcpSi53cml0ZShzZSk7cmV0dXJuIEouZW5kKCksSi5vZmYoImRhdGEiLHEpLGVlLmpvaW4oIiIpfX0sNDI4OTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDIyMTUpLGxlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wi''@;'; + put 'put ''PT10eXBlb2YgU3ltYm9sKCJmb28iKSxZPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsVz1BcnJheS5wcm90b3R5cGUuY29uY2F0LE49T2JqZWN0LmRlZmluZVByb3BlcnR5LGVlPVooMTA0NCkoKSxxPU4mJmVlLEo9ZnVuY3Rpb24ob2UsY2UsZGUsdmUpe3ZhciBBZTsoIShjZSBpbiBvZSl8''@;'; + put 'put ''fCJmdW5jdGlvbiI9PXR5cGVvZihBZT12ZSkmJiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1ZLmNhbGwoQWUpJiZ2ZSgpKSYmKHE/TihvZSxjZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsdmFsdWU6ZGUsd3JpdGFibGU6ITB9KTpvZVtjZV09ZGUpfSxzZT1mdW5jdGlvbihvZSxjZSl7''@;'; + put 'put ''dmFyIGRlPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06e30sdmU9aWUoY2UpO2xlJiYodmU9Vy5jYWxsKHZlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoY2UpKSk7Zm9yKHZhciBBZT0wO0FlPHZlLmxlbmd0aDtBZSs9MSlKKG9lLHZlW0FlXSxjZVt2ZVtBZV1dLGRlW3Zl''@;'; + put 'put ''W0FlXV0pfTtzZS5zdXBwb3J0c0Rlc2NyaXB0b3JzPSEhcSxVLmV4cG9ydHM9c2V9LDUyNTE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0IjtRLnV0aWxzPVooMTI3OCksUS5DaXBoZXI9Wig1NzU2KSxRLkRFUz1aKDMyNyksUS5DQkM9Wig5MDUxKSxRLkVERT1aKDY1MSl9LDkwNTE6KFUsUSxaKT0+''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig5NzQ2KSxsZT1aKDU3MTcpLFk9e307ZnVuY3Rpb24gVyhOKXtpZS5lcXVhbChOLmxlbmd0aCw4LCJJbnZhbGlkIElWIGxlbmd0aCIpLHRoaXMuaXY9bmV3IEFycmF5KDgpO2Zvcih2YXIgZWU9MDtlZTx0aGlzLml2Lmxlbmd0aDtlZSsrKXRoaXMuaXZb''@;'; + put 'put ''ZWVdPU5bZWVdfVEuaW5zdGFudGlhdGU9ZnVuY3Rpb24oTil7ZnVuY3Rpb24gZWUob2Upe04uY2FsbCh0aGlzLG9lKSx0aGlzLl9jYmNJbml0KCl9bGUoZWUsTik7Zm9yKHZhciBxPU9iamVjdC5rZXlzKFkpLEo9MDtKPHEubGVuZ3RoO0orKyl7dmFyIHNlPXFbSl07ZWUucHJvdG90eXBlW3Nl''@;'; + put 'put ''XT1ZW3NlXX1yZXR1cm4gZWUuY3JlYXRlPWZ1bmN0aW9uKG9lKXtyZXR1cm4gbmV3IGVlKG9lKX0sZWV9LFkuX2NiY0luaXQ9ZnVuY3Rpb24oKXt2YXIgTj1uZXcgVyh0aGlzLm9wdGlvbnMuaXYpO3RoaXMuX2NiY1N0YXRlPU59LFkuX3VwZGF0ZT1mdW5jdGlvbihOLGVlLHEsSil7dmFyIG9l''@;'; + put 'put ''PXRoaXMuY29uc3RydWN0b3Iuc3VwZXJfLnByb3RvdHlwZSxjZT10aGlzLl9jYmNTdGF0ZS5pdjtpZigiZW5jcnlwdCI9PT10aGlzLnR5cGUpe2Zvcih2YXIgZGU9MDtkZTx0aGlzLmJsb2NrU2l6ZTtkZSsrKWNlW2RlXV49TltlZStkZV07Zm9yKG9lLl91cGRhdGUuY2FsbCh0aGlzLGNlLDAs''@;'; + put 'put ''cSxKKSxkZT0wO2RlPHRoaXMuYmxvY2tTaXplO2RlKyspY2VbZGVdPXFbSitkZV19ZWxzZXtmb3Iob2UuX3VwZGF0ZS5jYWxsKHRoaXMsTixlZSxxLEopLGRlPTA7ZGU8dGhpcy5ibG9ja1NpemU7ZGUrKylxW0orZGVdXj1jZVtkZV07Zm9yKGRlPTA7ZGU8dGhpcy5ibG9ja1NpemU7ZGUrKylj''@;'; + put 'put ''ZVtkZV09TltlZStkZV19fX0sNTc1NjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDk3NDYpO2Z1bmN0aW9uIGxlKFkpe3RoaXMub3B0aW9ucz1ZLHRoaXMudHlwZT10aGlzLm9wdGlvbnMudHlwZSx0aGlzLmJsb2NrU2l6ZT04LHRoaXMuX2luaXQoKSx0aGlzLmJ1ZmZlcj1uZXcg''@;'; + put 'put ''QXJyYXkodGhpcy5ibG9ja1NpemUpLHRoaXMuYnVmZmVyT2ZmPTB9VS5leHBvcnRzPWxlLGxlLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbigpe30sbGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihZKXtyZXR1cm4gMD09PVkubGVuZ3RoP1tdOiJkZWNyeXB0Ij09PXRoaXMudHlwZT90aGlz''@;'; + put 'put ''Ll91cGRhdGVEZWNyeXB0KFkpOnRoaXMuX3VwZGF0ZUVuY3J5cHQoWSl9LGxlLnByb3RvdHlwZS5fYnVmZmVyPWZ1bmN0aW9uKFksVyl7Zm9yKHZhciBOPU1hdGgubWluKHRoaXMuYnVmZmVyLmxlbmd0aC10aGlzLmJ1ZmZlck9mZixZLmxlbmd0aC1XKSxlZT0wO2VlPE47ZWUrKyl0aGlzLmJ1''@;'; + put 'put ''ZmZlclt0aGlzLmJ1ZmZlck9mZitlZV09WVtXK2VlXTtyZXR1cm4gdGhpcy5idWZmZXJPZmYrPU4sTn0sbGUucHJvdG90eXBlLl9mbHVzaEJ1ZmZlcj1mdW5jdGlvbihZLFcpe3JldHVybiB0aGlzLl91cGRhdGUodGhpcy5idWZmZXIsMCxZLFcpLHRoaXMuYnVmZmVyT2ZmPTAsdGhpcy5ibG9j''@;'; + put 'put ''a1NpemV9LGxlLnByb3RvdHlwZS5fdXBkYXRlRW5jcnlwdD1mdW5jdGlvbihZKXt2YXIgVz0wLE49MCxxPW5ldyBBcnJheSgoKHRoaXMuYnVmZmVyT2ZmK1kubGVuZ3RoKS90aGlzLmJsb2NrU2l6ZXwwKSp0aGlzLmJsb2NrU2l6ZSk7MCE9PXRoaXMuYnVmZmVyT2ZmJiYoVys9dGhpcy5fYnVm''@;'; + put 'put ''ZmVyKFksVyksdGhpcy5idWZmZXJPZmY9PT10aGlzLmJ1ZmZlci5sZW5ndGgmJihOKz10aGlzLl9mbHVzaEJ1ZmZlcihxLE4pKSk7Zm9yKHZhciBKPVkubGVuZ3RoLShZLmxlbmd0aC1XKSV0aGlzLmJsb2NrU2l6ZTtXPEo7Vys9dGhpcy5ibG9ja1NpemUpdGhpcy5fdXBkYXRlKFksVyxxLE4p''@;'; + put 'put ''LE4rPXRoaXMuYmxvY2tTaXplO2Zvcig7VzxZLmxlbmd0aDtXKyssdGhpcy5idWZmZXJPZmYrKyl0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZl09WVtXXTtyZXR1cm4gcX0sbGUucHJvdG90eXBlLl91cGRhdGVEZWNyeXB0PWZ1bmN0aW9uKFkpe2Zvcih2YXIgVz0wLE49MCxlZT1NYXRoLmNl''@;'; + put 'put ''aWwoKHRoaXMuYnVmZmVyT2ZmK1kubGVuZ3RoKS90aGlzLmJsb2NrU2l6ZSktMSxxPW5ldyBBcnJheShlZSp0aGlzLmJsb2NrU2l6ZSk7ZWU+MDtlZS0tKVcrPXRoaXMuX2J1ZmZlcihZLFcpLE4rPXRoaXMuX2ZsdXNoQnVmZmVyKHEsTik7cmV0dXJuIFcrPXRoaXMuX2J1ZmZlcihZLFcpLHF9''@;'; + put 'put ''LGxlLnByb3RvdHlwZS5maW5hbD1mdW5jdGlvbihZKXt2YXIgVyxOO3JldHVybiBZJiYoVz10aGlzLnVwZGF0ZShZKSksTj0iZW5jcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fZmluYWxFbmNyeXB0KCk6dGhpcy5fZmluYWxEZWNyeXB0KCksVz9XLmNvbmNhdChOKTpOfSxsZS5wcm90b3R5cGUu''@;'; + put 'put ''X3BhZD1mdW5jdGlvbihZLFcpe2lmKDA9PT1XKXJldHVybiExO2Zvcig7VzxZLmxlbmd0aDspWVtXKytdPTA7cmV0dXJuITB9LGxlLnByb3RvdHlwZS5fZmluYWxFbmNyeXB0PWZ1bmN0aW9uKCl7aWYoIXRoaXMuX3BhZCh0aGlzLmJ1ZmZlcix0aGlzLmJ1ZmZlck9mZikpcmV0dXJuW107dmFy''@;'; + put 'put ''IFk9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKTtyZXR1cm4gdGhpcy5fdXBkYXRlKHRoaXMuYnVmZmVyLDAsWSwwKSxZfSxsZS5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uKFkpe3JldHVybiBZfSxsZS5wcm90b3R5cGUuX2ZpbmFsRGVjcnlwdD1mdW5jdGlvbigpe2llLmVxdWFsKHRoaXMu''@;'; + put 'put ''YnVmZmVyT2ZmLHRoaXMuYmxvY2tTaXplLCJOb3QgZW5vdWdoIGRhdGEgdG8gZGVjcnlwdCIpO3ZhciBZPW5ldyBBcnJheSh0aGlzLmJsb2NrU2l6ZSk7cmV0dXJuIHRoaXMuX2ZsdXNoQnVmZmVyKFksMCksdGhpcy5fdW5wYWQoWSl9fSwzMjc6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIg''@;'; + put 'put ''aWU9Wig5NzQ2KSxsZT1aKDU3MTcpLFk9WigxMjc4KSxXPVooNTc1Nik7ZnVuY3Rpb24gTigpe3RoaXMudG1wPW5ldyBBcnJheSgyKSx0aGlzLmtleXM9bnVsbH1mdW5jdGlvbiBlZShKKXtXLmNhbGwodGhpcyxKKTt2YXIgc2U9bmV3IE47dGhpcy5fZGVzU3RhdGU9c2UsdGhpcy5kZXJpdmVL''@;'; + put 'put ''ZXlzKHNlLEoua2V5KX1sZShlZSxXKSxVLmV4cG9ydHM9ZWUsZWUuY3JlYXRlPWZ1bmN0aW9uKEope3JldHVybiBuZXcgZWUoSil9O3ZhciBxPVsxLDEsMiwyLDIsMiwyLDIsMSwyLDIsMiwyLDIsMiwxXTtlZS5wcm90b3R5cGUuZGVyaXZlS2V5cz1mdW5jdGlvbihKLHNlKXtKLmtleXM9bmV3''@;'; + put 'put ''IEFycmF5KDMyKSxpZS5lcXVhbChzZS5sZW5ndGgsdGhpcy5ibG9ja1NpemUsIkludmFsaWQga2V5IGxlbmd0aCIpO3ZhciBvZT1ZLnJlYWRVSW50MzJCRShzZSwwKSxjZT1ZLnJlYWRVSW50MzJCRShzZSw0KTtZLnBjMShvZSxjZSxKLnRtcCwwKSxvZT1KLnRtcFswXSxjZT1KLnRtcFsxXTtm''@;'; + put 'put ''b3IodmFyIGRlPTA7ZGU8Si5rZXlzLmxlbmd0aDtkZSs9Mil7dmFyIHZlPXFbZGU+Pj4xXTtvZT1ZLnIyOHNobChvZSx2ZSksY2U9WS5yMjhzaGwoY2UsdmUpLFkucGMyKG9lLGNlLEoua2V5cyxkZSl9fSxlZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihKLHNlLG9lLGNlKXt2YXIgZGU9''@;'; + put 'put ''dGhpcy5fZGVzU3RhdGUsdmU9WS5yZWFkVUludDMyQkUoSixzZSksQWU9WS5yZWFkVUludDMyQkUoSixzZSs0KTtZLmlwKHZlLEFlLGRlLnRtcCwwKSx2ZT1kZS50bXBbMF0sQWU9ZGUudG1wWzFdLCJlbmNyeXB0Ij09PXRoaXMudHlwZT90aGlzLl9lbmNyeXB0KGRlLHZlLEFlLGRlLnRtcCww''@;'; + put 'put ''KTp0aGlzLl9kZWNyeXB0KGRlLHZlLEFlLGRlLnRtcCwwKSxBZT1kZS50bXBbMV0sWS53cml0ZVVJbnQzMkJFKG9lLHZlPWRlLnRtcFswXSxjZSksWS53cml0ZVVJbnQzMkJFKG9lLEFlLGNlKzQpfSxlZS5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbihKLHNlKXtmb3IodmFyIG9lPUoubGVuZ3Ro''@;'; + put 'put ''LXNlLGNlPXNlO2NlPEoubGVuZ3RoO2NlKyspSltjZV09b2U7cmV0dXJuITB9LGVlLnByb3RvdHlwZS5fdW5wYWQ9ZnVuY3Rpb24oSil7Zm9yKHZhciBzZT1KW0oubGVuZ3RoLTFdLG9lPUoubGVuZ3RoLXNlO29lPEoubGVuZ3RoO29lKyspaWUuZXF1YWwoSltvZV0sc2UpO3JldHVybiBKLnNs''@;'; + put 'put ''aWNlKDAsSi5sZW5ndGgtc2UpfSxlZS5wcm90b3R5cGUuX2VuY3J5cHQ9ZnVuY3Rpb24oSixzZSxvZSxjZSxkZSl7Zm9yKHZhciB2ZT1zZSxBZT1vZSxrZT0wO2tlPEoua2V5cy5sZW5ndGg7a2UrPTIpe3ZhciBTZT1KLmtleXNba2VdLEllPUoua2V5c1trZSsxXTtZLmV4cGFuZChBZSxKLnRt''@;'; + put 'put ''cCwwKTt2YXIgVGU9WS5zdWJzdGl0dXRlKFNlXj1KLnRtcFswXSxJZV49Si50bXBbMV0pLEVlPUFlO0FlPSh2ZV5ZLnBlcm11dGUoVGUpKT4+PjAsdmU9RWV9WS5yaXAoQWUsdmUsY2UsZGUpfSxlZS5wcm90b3R5cGUuX2RlY3J5cHQ9ZnVuY3Rpb24oSixzZSxvZSxjZSxkZSl7Zm9yKHZhciB2''@;'; + put 'put ''ZT1vZSxBZT1zZSxrZT1KLmtleXMubGVuZ3RoLTI7a2U+PTA7a2UtPTIpe3ZhciBTZT1KLmtleXNba2VdLEllPUoua2V5c1trZSsxXTtZLmV4cGFuZCh2ZSxKLnRtcCwwKTt2YXIgVGU9WS5zdWJzdGl0dXRlKFNlXj1KLnRtcFswXSxJZV49Si50bXBbMV0pLEVlPXZlO3ZlPShBZV5ZLnBlcm11''@;'; + put 'put ''dGUoVGUpKT4+PjAsQWU9RWV9WS5yaXAodmUsQWUsY2UsZGUpfX0sNjUxOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooOTc0NiksbGU9Wig1NzE3KSxZPVooNTc1NiksVz1aKDMyNyk7ZnVuY3Rpb24gTihxLEope2llLmVxdWFsKEoubGVuZ3RoLDI0LCJJbnZhbGlkIGtleSBsZW5n''@;'; + put 'put ''dGgiKTt2YXIgc2U9Si5zbGljZSgwLDgpLG9lPUouc2xpY2UoOCwxNiksY2U9Si5zbGljZSgxNiwyNCk7dGhpcy5jaXBoZXJzPSJlbmNyeXB0Ij09PXE/W1cuY3JlYXRlKHt0eXBlOiJlbmNyeXB0IixrZXk6c2V9KSxXLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5Om9lfSksVy5jcmVhdGUo''@;'; + put 'put ''e3R5cGU6ImVuY3J5cHQiLGtleTpjZX0pXTpbVy5jcmVhdGUoe3R5cGU6ImRlY3J5cHQiLGtleTpjZX0pLFcuY3JlYXRlKHt0eXBlOiJlbmNyeXB0IixrZXk6b2V9KSxXLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5OnNlfSldfWZ1bmN0aW9uIGVlKHEpe1kuY2FsbCh0aGlzLHEpO3ZhciBK''@;'; + put 'put ''PW5ldyBOKHRoaXMudHlwZSx0aGlzLm9wdGlvbnMua2V5KTt0aGlzLl9lZGVTdGF0ZT1KfWxlKGVlLFkpLFUuZXhwb3J0cz1lZSxlZS5jcmVhdGU9ZnVuY3Rpb24ocSl7cmV0dXJuIG5ldyBlZShxKX0sZWUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24ocSxKLHNlLG9lKXt2YXIgY2U9dGhp''@;'; + put 'put ''cy5fZWRlU3RhdGU7Y2UuY2lwaGVyc1swXS5fdXBkYXRlKHEsSixzZSxvZSksY2UuY2lwaGVyc1sxXS5fdXBkYXRlKHNlLG9lLHNlLG9lKSxjZS5jaXBoZXJzWzJdLl91cGRhdGUoc2Usb2Usc2Usb2UpfSxlZS5wcm90b3R5cGUuX3BhZD1XLnByb3RvdHlwZS5fcGFkLGVlLnByb3RvdHlwZS5f''@;'; + put 'put ''dW5wYWQ9Vy5wcm90b3R5cGUuX3VucGFkfSwxMjc4OihVLFEpPT57InVzZSBzdHJpY3QiO1EucmVhZFVJbnQzMkJFPWZ1bmN0aW9uKFksVyl7cmV0dXJuKFlbMCtXXTw8MjR8WVsxK1ddPDwxNnxZWzIrV108PDh8WVszK1ddKT4+PjB9LFEud3JpdGVVSW50MzJCRT1mdW5jdGlvbihZLFcsTil7''@;'; + put 'put ''WVswK05dPVc+Pj4yNCxZWzErTl09Vz4+PjE2JjI1NSxZWzIrTl09Vz4+PjgmMjU1LFlbMytOXT0yNTUmV30sUS5pcD1mdW5jdGlvbihZLFcsTixlZSl7Zm9yKHZhciBxPTAsSj0wLHNlPTY7c2U+PTA7c2UtPTIpe2Zvcih2YXIgb2U9MDtvZTw9MjQ7b2UrPTgpcTw8PTEscXw9Vz4+Pm9lK3Nl''@;'; + put 'put ''JjE7Zm9yKG9lPTA7b2U8PTI0O29lKz04KXE8PD0xLHF8PVk+Pj5vZStzZSYxfWZvcihzZT02O3NlPj0wO3NlLT0yKXtmb3Iob2U9MTtvZTw9MjU7b2UrPTgpSjw8PTEsSnw9Vz4+Pm9lK3NlJjE7Zm9yKG9lPTE7b2U8PTI1O29lKz04KUo8PD0xLEp8PVk+Pj5vZStzZSYxfU5bZWUrMF09cT4+''@;'; + put 'put ''PjAsTltlZSsxXT1KPj4+MH0sUS5yaXA9ZnVuY3Rpb24oWSxXLE4sZWUpe2Zvcih2YXIgcT0wLEo9MCxzZT0wO3NlPDQ7c2UrKylmb3IodmFyIG9lPTI0O29lPj0wO29lLT04KXE8PD0xLHF8PVc+Pj5vZStzZSYxLHE8PD0xLHF8PVk+Pj5vZStzZSYxO2ZvcihzZT00O3NlPDg7c2UrKylmb3Io''@;'; + put 'put ''b2U9MjQ7b2U+PTA7b2UtPTgpSjw8PTEsSnw9Vz4+Pm9lK3NlJjEsSjw8PTEsSnw9WT4+Pm9lK3NlJjE7TltlZSswXT1xPj4+MCxOW2VlKzFdPUo+Pj4wfSxRLnBjMT1mdW5jdGlvbihZLFcsTixlZSl7Zm9yKHZhciBxPTAsSj0wLHNlPTc7c2U+PTU7c2UtLSl7Zm9yKHZhciBvZT0wO29lPD0y''@;'; + put 'put ''NDtvZSs9OClxPDw9MSxxfD1XPj5vZStzZSYxO2ZvcihvZT0wO29lPD0yNDtvZSs9OClxPDw9MSxxfD1ZPj5vZStzZSYxfWZvcihvZT0wO29lPD0yNDtvZSs9OClxPDw9MSxxfD1XPj5vZStzZSYxO2ZvcihzZT0xO3NlPD0zO3NlKyspe2ZvcihvZT0wO29lPD0yNDtvZSs9OClKPDw9MSxKfD1X''@;'; + put 'put ''Pj5vZStzZSYxO2ZvcihvZT0wO29lPD0yNDtvZSs9OClKPDw9MSxKfD1ZPj5vZStzZSYxfWZvcihvZT0wO29lPD0yNDtvZSs9OClKPDw9MSxKfD1ZPj5vZStzZSYxO05bZWUrMF09cT4+PjAsTltlZSsxXT1KPj4+MH0sUS5yMjhzaGw9ZnVuY3Rpb24oWSxXKXtyZXR1cm4gWTw8VyYyNjg0MzU0''@;'; + put 'put ''NTV8WT4+PjI4LVd9O3ZhciBaPVsxNCwxMSwxNyw0LDI3LDIzLDI1LDAsMTMsMjIsNywxOCw1LDksMTYsMjQsMiwyMCwxMiwyMSwxLDgsMTUsMjYsMTUsNCwyNSwxOSw5LDEsMjYsMTYsNSwxMSwyMyw4LDEyLDcsMTcsMCwyMiwzLDEwLDE0LDYsMjAsMjcsMjRdO1EucGMyPWZ1bmN0aW9uKFks''@;'; + put 'put ''VyxOLGVlKXtmb3IodmFyIHE9MCxKPTAsc2U9Wi5sZW5ndGg+Pj4xLG9lPTA7b2U8c2U7b2UrKylxPDw9MSxxfD1ZPj4+WltvZV0mMTtmb3Iob2U9c2U7b2U8Wi5sZW5ndGg7b2UrKylKPDw9MSxKfD1XPj4+WltvZV0mMTtOW2VlKzBdPXE+Pj4wLE5bZWUrMV09Sj4+PjB9LFEuZXhwYW5kPWZ1''@;'; + put 'put ''bmN0aW9uKFksVyxOKXt2YXIgZWU9MCxxPTA7ZWU9KDEmWSk8PDV8WT4+PjI3O2Zvcih2YXIgSj0yMztKPj0xNTtKLT00KWVlPDw9NixlZXw9WT4+PkomNjM7Zm9yKEo9MTE7Sj49MztKLT00KXF8PVk+Pj5KJjYzLHE8PD02O3F8PSgzMSZZKTw8MXxZPj4+MzEsV1tOKzBdPWVlPj4+MCxXW04r''@;'; + put 'put ''MV09cT4+PjB9O3ZhciBpZT1bMTQsMCw0LDE1LDEzLDcsMSw0LDIsMTQsMTUsMiwxMSwxMyw4LDEsMywxMCwxMCw2LDYsMTIsMTIsMTEsNSw5LDksNSwwLDMsNyw4LDQsMTUsMSwxMiwxNCw4LDgsMiwxMyw0LDYsOSwyLDEsMTEsNywxNSw1LDEyLDExLDksMyw3LDE0LDMsMTAsMTAsMCw1LDYs''@;'; + put 'put ''MCwxMywxNSwzLDEsMTMsOCw0LDE0LDcsNiwxNSwxMSwyLDMsOCw0LDE0LDksMTIsNywwLDIsMSwxMywxMCwxMiw2LDAsOSw1LDExLDEwLDUsMCwxMywxNCw4LDcsMTAsMTEsMSwxMCwzLDQsMTUsMTMsNCwxLDIsNSwxMSw4LDYsMTIsNyw2LDEyLDksMCwzLDUsMiwxNCwxNSw5LDEwLDEzLDAs''@;'; + put 'put ''Nyw5LDAsMTQsOSw2LDMsMyw0LDE1LDYsNSwxMCwxLDIsMTMsOCwxMiw1LDcsMTQsMTEsMTIsNCwxMSwyLDE1LDgsMSwxMywxLDYsMTAsNCwxMyw5LDAsOCw2LDE1LDksMyw4LDAsNywxMSw0LDEsMTUsMiwxNCwxMiwzLDUsMTEsMTAsNSwxNCwyLDcsMTIsNywxMywxMyw4LDE0LDExLDMsNSww''@;'; + put 'put ''LDYsNiwxNSw5LDAsMTAsMywxLDQsMiw3LDgsMiw1LDEyLDExLDEsMTIsMTAsNCwxNCwxNSw5LDEwLDMsNiwxNSw5LDAsMCw2LDEyLDEwLDExLDEsNywxMywxMyw4LDE1LDksMSw0LDMsNSwxNCwxMSw1LDEyLDIsNyw4LDIsNCwxNCwyLDE0LDEyLDExLDQsMiwxLDEyLDcsNCwxMCw3LDExLDEz''@;'; + put 'put ''LDYsMSw4LDUsNSwwLDMsMTUsMTUsMTAsMTMsMywwLDksMTQsOCw5LDYsNCwxMSwyLDgsMSwxMiwxMSw3LDEwLDEsMTMsMTQsNywyLDgsMTMsMTUsNiw5LDE1LDEyLDAsNSw5LDYsMTAsMyw0LDAsNSwxNCwzLDEyLDEwLDEsMTUsMTAsNCwxNSwyLDksNywyLDEyLDYsOSw4LDUsMCw2LDEzLDEs''@;'; + put 'put ''MywxMyw0LDE0LDE0LDAsNywxMSw1LDMsMTEsOCw5LDQsMTQsMywxNSwyLDUsMTIsMiw5LDgsNSwxMiwxNSwzLDEwLDcsMTEsMCwxNCw0LDEsMTAsNywxLDYsMTMsMCwxMSw4LDYsMTMsNCwxMywxMSwwLDIsMTEsMTQsNywxNSw0LDAsOSw4LDEsMTMsMTAsMywxNCwxMiwzLDksNSw3LDEyLDUs''@;'; + put 'put ''MiwxMCwxNSw2LDgsMSw2LDEsNiw0LDExLDExLDEzLDEzLDgsMTIsMSwzLDQsNywxMCwxNCw3LDEwLDksMTUsNSw2LDAsOCwxNSwwLDE0LDUsMiw5LDMsMiwxMiwxMywxLDIsMTUsOCwxMyw0LDgsNiwxMCwxNSwzLDExLDcsMSw0LDEwLDEyLDksNSwzLDYsMTQsMTEsNSwwLDAsMTQsMTIsOSw3''@;'; + put 'put ''LDIsNywyLDExLDEsNCwxNCwxLDcsOSw0LDEyLDEwLDE0LDgsMiwxMywwLDE1LDYsMTIsMTAsOSwxMywwLDE1LDMsMyw1LDUsNiw4LDExXTtRLnN1YnN0aXR1dGU9ZnVuY3Rpb24oWSxXKXtmb3IodmFyIE49MCxlZT0wO2VlPDQ7ZWUrKylOPDw9NCxOfD1pZVs2NCplZSsoWT4+PjE4LTYqZWUm''@;'; + put 'put ''NjMpXTtmb3IoZWU9MDtlZTw0O2VlKyspTjw8PTQsTnw9aWVbMjU2KzY0KmVlKyhXPj4+MTgtNiplZSY2MyldO3JldHVybiBOPj4+MH07dmFyIGxlPVsxNiwyNSwxMiwxMSwzLDIwLDQsMTUsMzEsMTcsOSw2LDI3LDE0LDEsMjIsMzAsMjQsOCwxOCwwLDUsMjksMjMsMTMsMTksMiwyNiwxMCwy''@;'; + put 'put ''MSwyOCw3XTtRLnBlcm11dGU9ZnVuY3Rpb24oWSl7Zm9yKHZhciBXPTAsTj0wO048bGUubGVuZ3RoO04rKylXPDw9MSxXfD1ZPj4+bGVbTl0mMTtyZXR1cm4gVz4+PjB9LFEucGFkU3BsaXQ9ZnVuY3Rpb24oWSxXLE4pe2Zvcih2YXIgZWU9WS50b1N0cmluZygyKTtlZS5sZW5ndGg8VzspZWU9''@;'; + put 'put ''IjAiK2VlO2Zvcih2YXIgcT1bXSxKPTA7SjxXO0orPU4pcS5wdXNoKGVlLnNsaWNlKEosSitOKSk7cmV0dXJuIHEuam9pbigiICIpfX0sMjYwNzooVSxRLFopPT57dmFyIGllPVooODc2NCkuQnVmZmVyLGxlPVooMzU5MCksWT1aKDk3OTkpLFc9Wig3NDI2KSxOPXtiaW5hcnk6ITAsaGV4OiEw''@;'; + put 'put ''LGJhc2U2NDohMH07US5EaWZmaWVIZWxsbWFuR3JvdXA9US5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXA9US5nZXREaWZmaWVIZWxsbWFuPWZ1bmN0aW9uKGVlKXt2YXIgcT1uZXcgaWUoWVtlZV0ucHJpbWUsImhleCIpLEo9bmV3IGllKFlbZWVdLmdlbiwiaGV4Iik7cmV0dXJuIG5ldyBXKHEs''@;'; + put 'put ''Sil9LFEuY3JlYXRlRGlmZmllSGVsbG1hbj1RLkRpZmZpZUhlbGxtYW49ZnVuY3Rpb24gZWUocSxKLHNlLG9lKXtyZXR1cm4gaWUuaXNCdWZmZXIoSil8fHZvaWQgMD09PU5bSl0/ZWUocSwiYmluYXJ5IixKLHNlKTooSj1KfHwiYmluYXJ5IixvZT1vZXx8ImJpbmFyeSIsc2U9c2V8fG5ldyBp''@;'; + put 'put ''ZShbMl0pLGllLmlzQnVmZmVyKHNlKXx8KHNlPW5ldyBpZShzZSxvZSkpLCJudW1iZXIiPT10eXBlb2YgcT9uZXcgVyhsZShxLHNlKSxzZSwhMCk6KGllLmlzQnVmZmVyKHEpfHwocT1uZXcgaWUocSxKKSksbmV3IFcocSxzZSwhMCkpKX19LDc0MjY6KFUsUSxaKT0+e3ZhciBpZT1aKDg3NjQp''@;'; + put 'put ''LkJ1ZmZlcixsZT1aKDM2MjApLFk9bmV3KFooMzA0NykpLFc9bmV3IGxlKDI0KSxOPW5ldyBsZSgxMSksZWU9bmV3IGxlKDEwKSxxPW5ldyBsZSgzKSxKPW5ldyBsZSg3KSxzZT1aKDM1OTApLG9lPVooMTc5OCk7ZnVuY3Rpb24gY2UoU2UsSWUpe3JldHVybiBJZT1JZXx8InV0ZjgiLGllLmlz''@;'; + put 'put ''QnVmZmVyKFNlKXx8KFNlPW5ldyBpZShTZSxJZSkpLHRoaXMuX3B1Yj1uZXcgbGUoU2UpLHRoaXN9ZnVuY3Rpb24gZGUoU2UsSWUpe3JldHVybiBJZT1JZXx8InV0ZjgiLGllLmlzQnVmZmVyKFNlKXx8KFNlPW5ldyBpZShTZSxJZSkpLHRoaXMuX3ByaXY9bmV3IGxlKFNlKSx0aGlzfVUuZXhw''@;'; + put 'put ''b3J0cz1BZTt2YXIgdmU9e307ZnVuY3Rpb24gQWUoU2UsSWUsVGUpe3RoaXMuc2V0R2VuZXJhdG9yKEllKSx0aGlzLl9fcHJpbWU9bmV3IGxlKFNlKSx0aGlzLl9wcmltZT1sZS5tb250KHRoaXMuX19wcmltZSksdGhpcy5fcHJpbWVMZW49U2UubGVuZ3RoLHRoaXMuX3B1Yj12b2lkIDAsdGhp''@;'; + put 'put ''cy5fcHJpdj12b2lkIDAsdGhpcy5fcHJpbWVDb2RlPXZvaWQgMCxUZT8odGhpcy5zZXRQdWJsaWNLZXk9Y2UsdGhpcy5zZXRQcml2YXRlS2V5PWRlKTp0aGlzLl9wcmltZUNvZGU9OH1mdW5jdGlvbiBrZShTZSxJZSl7dmFyIFRlPW5ldyBpZShTZS50b0FycmF5KCkpO3JldHVybiBJZT9UZS50''@;'; + put 'put ''b1N0cmluZyhJZSk6VGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KEFlLnByb3RvdHlwZSwidmVyaWZ5RXJyb3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiJudW1iZXIiIT10eXBlb2YgdGhpcy5fcHJpbWVDb2RlJiYodGhpcy5fcHJpbWVDb2RlPWZ1bmN0aW9uKFNlLEll''@;'; + put 'put ''KXt2YXIgVGU9SWUudG9TdHJpbmcoImhleCIpLEVlPVtUZSxTZS50b1N0cmluZygxNildLmpvaW4oIl8iKTtpZihFZSBpbiB2ZSlyZXR1cm4gdmVbRWVdO3ZhciBoZSxPPTA7aWYoU2UuaXNFdmVuKCl8fCFzZS5zaW1wbGVTaWV2ZXx8IXNlLmZlcm1hdFRlc3QoU2UpfHwhWS50ZXN0KFNlKSly''@;'; + put 'put ''ZXR1cm4gTys9MSx2ZVtFZV09Tys9IjAyIj09PVRlfHwiMDUiPT09VGU/ODo0LE87c3dpdGNoKFkudGVzdChTZS5zaHJuKDEpKXx8KE8rPTIpLFRlKXtjYXNlIjAyIjpTZS5tb2QoVykuY21wKE4pJiYoTys9OCk7YnJlYWs7Y2FzZSIwNSI6KGhlPVNlLm1vZChlZSkpLmNtcChxKSYmaGUuY21w''@;'; + put 'put ''KEopJiYoTys9OCk7YnJlYWs7ZGVmYXVsdDpPKz00fXJldHVybiB2ZVtFZV09TyxPfSh0aGlzLl9fcHJpbWUsdGhpcy5fX2dlbikpLHRoaXMuX3ByaW1lQ29kZX19KSxBZS5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ByaXZ8fCh0aGlzLl9wcml2PW5l''@;'; + put 'put ''dyBsZShvZSh0aGlzLl9wcmltZUxlbikpKSx0aGlzLl9wdWI9dGhpcy5fZ2VuLnRvUmVkKHRoaXMuX3ByaW1lKS5yZWRQb3codGhpcy5fcHJpdikuZnJvbVJlZCgpLHRoaXMuZ2V0UHVibGljS2V5KCl9LEFlLnByb3RvdHlwZS5jb21wdXRlU2VjcmV0PWZ1bmN0aW9uKFNlKXt2YXIgSWU9KFNl''@;'; + put 'put ''PShTZT1uZXcgbGUoU2UpKS50b1JlZCh0aGlzLl9wcmltZSkpLnJlZFBvdyh0aGlzLl9wcml2KS5mcm9tUmVkKCksVGU9bmV3IGllKEllLnRvQXJyYXkoKSksRWU9dGhpcy5nZXRQcmltZSgpO2lmKFRlLmxlbmd0aDxFZS5sZW5ndGgpe3ZhciBoZT1uZXcgaWUoRWUubGVuZ3RoLVRlLmxlbmd0''@;'; + put 'put ''aCk7aGUuZmlsbCgwKSxUZT1pZS5jb25jYXQoW2hlLFRlXSl9cmV0dXJuIFRlfSxBZS5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKFNlKXtyZXR1cm4ga2UodGhpcy5fcHViLFNlKX0sQWUucHJvdG90eXBlLmdldFByaXZhdGVLZXk9ZnVuY3Rpb24oU2Upe3JldHVybiBrZSh0aGlz''@;'; + put 'put ''Ll9wcml2LFNlKX0sQWUucHJvdG90eXBlLmdldFByaW1lPWZ1bmN0aW9uKFNlKXtyZXR1cm4ga2UodGhpcy5fX3ByaW1lLFNlKX0sQWUucHJvdG90eXBlLmdldEdlbmVyYXRvcj1mdW5jdGlvbihTZSl7cmV0dXJuIGtlKHRoaXMuX2dlbixTZSl9LEFlLnByb3RvdHlwZS5zZXRHZW5lcmF0b3I9''@;'; + put 'put ''ZnVuY3Rpb24oU2UsSWUpe3JldHVybiBJZT1JZXx8InV0ZjgiLGllLmlzQnVmZmVyKFNlKXx8KFNlPW5ldyBpZShTZSxJZSkpLHRoaXMuX19nZW49U2UsdGhpcy5fZ2VuPW5ldyBsZShTZSksdGhpc319LDM1OTA6KFUsUSxaKT0+e3ZhciBpZT1aKDE3OTgpO1UuZXhwb3J0cz1TZSxTZS5zaW1w''@;'; + put 'put ''bGVTaWV2ZT1BZSxTZS5mZXJtYXRUZXN0PWtlO3ZhciBsZT1aKDM2MjApLFk9bmV3IGxlKDI0KSxXPW5ldyhaKDMwNDcpKSxOPW5ldyBsZSgxKSxlZT1uZXcgbGUoMikscT1uZXcgbGUoNSksSj0obmV3IGxlKDE2KSxuZXcgbGUoOCksbmV3IGxlKDEwKSksc2U9bmV3IGxlKDMpLG9lPShuZXcg''@;'; + put 'put ''bGUoNyksbmV3IGxlKDExKSksY2U9bmV3IGxlKDQpLGRlPShuZXcgbGUoMTIpLG51bGwpO2Z1bmN0aW9uIEFlKEllKXtmb3IodmFyIFRlPWZ1bmN0aW9uIHZlKCl7aWYobnVsbCE9PWRlKXJldHVybiBkZTt2YXIgSWU9W107SWVbMF09Mjtmb3IodmFyIFRlPTEsRWU9MztFZTwxMDQ4NTc2O0Vl''@;'; + put 'put ''Kz0yKXtmb3IodmFyIGhlPU1hdGguY2VpbChNYXRoLnNxcnQoRWUpKSxPPTA7TzxUZSYmSWVbT108PWhlJiZFZSVJZVtPXSE9MDtPKyspO1RlIT09TyYmSWVbT108PWhlfHwoSWVbVGUrK109RWUpfXJldHVybiBkZT1JZSxJZX0oKSxFZT0wO0VlPFRlLmxlbmd0aDtFZSsrKWlmKDA9PT1JZS5t''@;'; + put 'put ''b2RuKFRlW0VlXSkpcmV0dXJuIDA9PT1JZS5jbXBuKFRlW0VlXSk7cmV0dXJuITB9ZnVuY3Rpb24ga2UoSWUpe3ZhciBUZT1sZS5tb250KEllKTtyZXR1cm4gMD09PWVlLnRvUmVkKFRlKS5yZWRQb3coSWUuc3VibigxKSkuZnJvbVJlZCgpLmNtcG4oMSl9ZnVuY3Rpb24gU2UoSWUsVGUpe2lm''@;'; + put 'put ''KEllPDE2KXJldHVybiBuZXcgbGUoMj09PVRlfHw1PT09VGU/WzE0MCwxMjNdOlsxNDAsMzldKTt2YXIgRWUsaGU7Zm9yKFRlPW5ldyBsZShUZSk7Oyl7Zm9yKEVlPW5ldyBsZShpZShNYXRoLmNlaWwoSWUvOCkpKTtFZS5iaXRMZW5ndGgoKT5JZTspRWUuaXNocm4oMSk7aWYoRWUuaXNFdmVu''@;'; + put 'put ''KCkmJkVlLmlhZGQoTiksRWUudGVzdG4oMSl8fEVlLmlhZGQoZWUpLFRlLmNtcChlZSkpe2lmKCFUZS5jbXAocSkpZm9yKDtFZS5tb2QoSikuY21wKHNlKTspRWUuaWFkZChjZSl9ZWxzZSBmb3IoO0VlLm1vZChZKS5jbXAob2UpOylFZS5pYWRkKGNlKTtpZihBZShoZT1FZS5zaHJuKDEpKSYm''@;'; + put 'put ''QWUoRWUpJiZrZShoZSkmJmtlKEVlKSYmVy50ZXN0KGhlKSYmVy50ZXN0KEVlKSlyZXR1cm4gRWV9fX0sMzYyMDpmdW5jdGlvbihVLFEsWil7IWZ1bmN0aW9uKGllLGxlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gWSh4LFApe2lmKCF4KXRocm93IG5ldyBFcnJvcihQfHwiQXNzZXJ0aW9uIGZh''@;'; + put 'put ''aWxlZCIpfWZ1bmN0aW9uIFcoeCxQKXt4LnN1cGVyXz1QO3ZhciBWPWZ1bmN0aW9uKCl7fTtWLnByb3RvdHlwZT1QLnByb3RvdHlwZSx4LnByb3RvdHlwZT1uZXcgVix4LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj14fWZ1bmN0aW9uIE4oeCxQLFYpe2lmKE4uaXNCTih4KSlyZXR1cm4geDt0aGlz''@;'; + put 'put ''Lm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09eCYmKCJsZSIhPT1QJiYiYmUiIT09UHx8KFY9UCxQPTEwKSx0aGlzLl9pbml0KHh8fDAsUHx8MTAsVnx8ImJlIikpfXZhciBlZTsib2JqZWN0Ij09dHlwZW9mIGllP2llLmV4cG9y''@;'; + put 'put ''dHM9TjpsZS5CTj1OLE4uQk49TixOLndvcmRTaXplPTI2O3RyeXtlZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOlooNzc0OCkuQnVmZmVyfWNhdGNoKHgpe31mdW5jdGlvbiBxKHgsUCl7dmFyIFY9eC5jaGFyQ29kZUF0''@;'; + put 'put ''KFApO3JldHVybiBWPj02NSYmVjw9NzA/Vi01NTpWPj05NyYmVjw9MTAyP1YtODc6Vi00OCYxNX1mdW5jdGlvbiBKKHgsUCxWKXt2YXIgVD1xKHgsVik7cmV0dXJuIFYtMT49UCYmKFR8PXEoeCxWLTEpPDw0KSxUfWZ1bmN0aW9uIHNlKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9TWF0aC5taW4o''@;'; + put 'put ''eC5sZW5ndGgsVikseWU9UDt5ZTxGO3llKyspe3ZhciBDZT14LmNoYXJDb2RlQXQoeWUpLTQ4O1MqPVQsUys9Q2U+PTQ5P0NlLTQ5KzEwOkNlPj0xNz9DZS0xNysxMDpDZX1yZXR1cm4gU31OLmlzQk49ZnVuY3Rpb24oeCl7cmV0dXJuIHggaW5zdGFuY2VvZiBOfHxudWxsIT09eCYmIm9iamVj''@;'; + put 'put ''dCI9PXR5cGVvZiB4JiZ4LmNvbnN0cnVjdG9yLndvcmRTaXplPT09Ti53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheSh4LndvcmRzKX0sTi5tYXg9ZnVuY3Rpb24oeCxQKXtyZXR1cm4geC5jbXAoUCk+MD94OlB9LE4ubWluPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHguY21wKFApPDA/eDpQfSxOLnBy''@;'; + put 'put ''b3RvdHlwZS5faW5pdD1mdW5jdGlvbih4LFAsVil7aWYoIm51bWJlciI9PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0TnVtYmVyKHgsUCxWKTtpZigib2JqZWN0Ij09dHlwZW9mIHgpcmV0dXJuIHRoaXMuX2luaXRBcnJheSh4LFAsVik7ImhleCI9PT1QJiYoUD0xNiksWShQPT09KDB8UCkm''@;'; + put 'put ''JlA+PTImJlA8PTM2KTt2YXIgVD0wOyItIj09PSh4PXgudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoVCsrLHRoaXMubmVnYXRpdmU9MSksVDx4Lmxlbmd0aCYmKDE2PT09UD90aGlzLl9wYXJzZUhleCh4LFQsVik6KHRoaXMuX3BhcnNlQmFzZSh4LFAsVCksImxlIj09PVYm''@;'; + put 'put ''JnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxQLFYpKSl9LE4ucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHgsUCxWKXt4PDAmJih0aGlzLm5lZ2F0aXZlPTEseD0teCkseDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmeF0sdGhpcy5sZW5ndGg9MSk6eDw0NTAz''@;'; + put 'put ''NTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ4LHgvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihZKHg8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1W''@;'; + put 'put ''JiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKX0sTi5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih4LFAsVil7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgubGVuZ3RoKSx4Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3Ro''@;'; + put 'put ''aXMubGVuZ3RoPU1hdGguY2VpbCh4Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT0wO3ZhciBTLEYseWU9MDtpZigiYmUiPT09Vilmb3IoVD14Lmxlbmd0aC0xLFM9MDtUPj0wO1Qt''@;'; + put 'put ''PTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QtMV08PDh8eFtULTJdPDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7ZWxzZSBpZigibGUiPT09Vilmb3IoVD0wLFM9MDtUPHgubGVuZ3RoO1Qr''@;'; + put 'put ''PTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QrMV08PDh8eFtUKzJdPDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlSGV4''@;'; + put 'put ''PWZ1bmN0aW9uKHgsUCxWKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKHgubGVuZ3RoLVApLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPTA7dmFyIFMsRj0wLHllPTA7aWYoImJlIj09PVYpZm9y''@;'; + put 'put ''KFQ9eC5sZW5ndGgtMTtUPj1QO1QtPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9NjcxMDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODtlbHNlIGZvcihUPSh4Lmxlbmd0aC1QKSUyPT0wP1ArMTpQO1Q8eC5sZW5ndGg7VCs9MilTPUoo''@;'; + put 'put ''eCxQLFQpPDxGLHRoaXMud29yZHNbeWVdfD02NzEwODg2MyZTLEY+PTE4PyhGLT0xOCx0aGlzLndvcmRzW3llKz0xXXw9Uz4+PjI2KTpGKz04O3RoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih4LFAsVil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtm''@;'; + put 'put ''b3IodmFyIFQ9MCxTPTE7Uzw9NjcxMDg4NjM7Uyo9UClUKys7VC0tLFM9Uy9QfDA7Zm9yKHZhciBGPXgubGVuZ3RoLVYseWU9RiVULENlPU1hdGgubWluKEYsRi15ZSkrVixEZT0wLFBlPVY7UGU8Q2U7UGUrPVQpRGU9c2UoeCxQZSxQZStULFApLHRoaXMuaW11bG4oUyksdGhpcy53b3Jkc1sw''@;'; + put 'put ''XStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSk7aWYoMCE9PXllKXt2YXIgUWU9MTtmb3IoRGU9c2UoeCxQZSx4Lmxlbmd0aCxQKSxQZT0wO1BlPHllO1BlKyspUWUqPVA7dGhpcy5pbXVsbihRZSksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndv''@;'; + put 'put ''cmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSl9dGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHgpe3gud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl4LndvcmRzW1BdPXRoaXMud29yZHNbUF07eC5sZW5ndGg9''@;'; + put 'put ''dGhpcy5sZW5ndGgseC5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLHgucmVkPXRoaXMucmVkfSxOLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB0aGlzLmNvcHkoeCkseH0sTi5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbih4KXtmb3IoO3RoaXMu''@;'; + put 'put ''bGVuZ3RoPHg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sTi5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2ln''@;'; + put 'put ''bigpfSxOLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sTi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxC''@;'; + put 'put ''TjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgb2U9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAw''@;'; + put 'put ''MDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAw''@;'; + put 'put ''MDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sY2U9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1''@;'; + put 'put ''LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sZGU9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIx''@;'; + put 'put ''NiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2''@;'; + put 'put ''NjE3Nl07ZnVuY3Rpb24gdmUoeCxQLFYpe1YubmVnYXRpdmU9UC5uZWdhdGl2ZV54Lm5lZ2F0aXZlO3ZhciBUPXgubGVuZ3RoK1AubGVuZ3RofDA7Vi5sZW5ndGg9VCxUPVQtMXwwO3ZhciBTPTB8eC53b3Jkc1swXSxGPTB8UC53b3Jkc1swXSx5ZT1TKkYsRGU9eWUvNjcxMDg4NjR8MDtWLndv''@;'; + put 'put ''cmRzWzBdPTY3MTA4ODYzJnllO2Zvcih2YXIgUGU9MTtQZTxUO1BlKyspe2Zvcih2YXIgUWU9RGU+Pj4yNiwkZT02NzEwODg2MyZEZSxndD1NYXRoLm1pbihQZSxQLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLXgubGVuZ3RoKzEpO3d0PD1ndDt3dCsrKVFlKz0oeWU9KFM9MHx4LndvcmRz''@;'; + put 'put ''W1BlLXd0fDBdKSooRj0wfFAud29yZHNbd3RdKSskZSkvNjcxMDg4NjR8MCwkZT02NzEwODg2MyZ5ZTtWLndvcmRzW1BlXT0wfCRlLERlPTB8UWV9cmV0dXJuIDAhPT1EZT9WLndvcmRzW1BlXT0wfERlOlYubGVuZ3RoLS0sVi5zdHJpcCgpfU4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9u''@;'; + put 'put ''KHgsUCl7dmFyIFY7aWYoUD0wfFB8fDEsMTY9PT0oeD14fHwxMCl8fCJoZXgiPT09eCl7Vj0iIjtmb3IodmFyIFQ9MCxTPTAsRj0wO0Y8dGhpcy5sZW5ndGg7RisrKXt2YXIgeWU9dGhpcy53b3Jkc1tGXSxDZT0oMTY3NzcyMTUmKHllPDxUfFMpKS50b1N0cmluZygxNik7Vj0wIT0oUz15ZT4+''@;'; + put 'put ''PjI0LVQmMTY3NzcyMTUpfHxGIT09dGhpcy5sZW5ndGgtMT9vZVs2LUNlLmxlbmd0aF0rQ2UrVjpDZStWLChUKz0yKT49MjYmJihULT0yNixGLS0pfWZvcigwIT09UyYmKFY9Uy50b1N0cmluZygxNikrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUm''@;'; + put 'put ''JihWPSItIitWKSxWfWlmKHg9PT0oMHx4KSYmeD49MiYmeDw9MzYpe3ZhciBEZT1jZVt4XSxQZT1kZVt4XTtWPSIiO3ZhciBRZT10aGlzLmNsb25lKCk7Zm9yKFFlLm5lZ2F0aXZlPTA7IVFlLmlzWmVybygpOyl7dmFyICRlPVFlLm1vZG4oUGUpLnRvU3RyaW5nKHgpO1Y9KFFlPVFlLmlkaXZu''@;'; + put 'put ''KFBlKSkuaXNaZXJvKCk/JGUrVjpvZVtEZS0kZS5sZW5ndGhdKyRlK1Z9Zm9yKHRoaXMuaXNaZXJvKCkmJihWPSIwIitWKTtWLmxlbmd0aCVQIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9WSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFu''@;'; + put 'put ''ZCAzNiIpfSxOLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB4PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD94Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/eCs9NDUwMzU5OTYyNzM3MDQ5Nis2''@;'; + put 'put ''NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJlkoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy14Onh9LE4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2''@;'; + put 'put ''KX0sTi5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gWSh2b2lkIDAhPT1lZSksdGhpcy50b0FycmF5TGlrZShlZSx4LFApfSxOLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXkseCxQKX0sTi5wcm90b3R5''@;'; + put 'put ''cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oeCxQLFYpe3ZhciBUPXRoaXMuYnl0ZUxlbmd0aCgpLFM9Vnx8TWF0aC5tYXgoMSxUKTtZKFQ8PVMsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxZKFM+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5z''@;'; + put 'put ''dHJpcCgpO3ZhciBGLHllLENlPSJsZSI9PT1QLERlPW5ldyB4KFMpLFBlPXRoaXMuY2xvbmUoKTtpZihDZSl7Zm9yKHllPTA7IVBlLmlzWmVybygpO3llKyspRj1QZS5hbmRsbigyNTUpLFBlLml1c2hybig4KSxEZVt5ZV09Rjtmb3IoO3llPFM7eWUrKylEZVt5ZV09MH1lbHNle2Zvcih5ZT0w''@;'; + put 'put ''O3llPFMtVDt5ZSsrKURlW3llXT0wO2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVbUy15ZS0xXT1GfXJldHVybiBEZX0sTi5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKHgpe3JldHVybiAzMi1NYXRoLmNs''@;'; + put 'put ''ejMyKHgpfTpmdW5jdGlvbih4KXt2YXIgUD14LFY9MDtyZXR1cm4gUD49NDA5NiYmKFYrPTEzLFA+Pj49MTMpLFA+PTY0JiYoVis9NyxQPj4+PTcpLFA+PTgmJihWKz00LFA+Pj49NCksUD49MiYmKFYrPTIsUD4+Pj0yKSxWK1B9LE4ucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbih4KXtp''@;'; + put 'put ''ZigwPT09eClyZXR1cm4gMjY7dmFyIFA9eCxWPTA7cmV0dXJuIDA9PSg4MTkxJlApJiYoVis9MTMsUD4+Pj0xMyksMD09KDEyNyZQKSYmKFYrPTcsUD4+Pj03KSwwPT0oMTUmUCkmJihWKz00LFA+Pj49NCksMD09KDMmUCkmJihWKz0yLFA+Pj49MiksMD09KDEmUCkmJlYrKyxWfSxOLnByb3Rv''@;'; + put 'put ''dHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStQfSxOLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9y''@;'; + put 'put ''KHZhciB4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW1BdKTtpZih4Kz1WLDI2IT09VilicmVha31yZXR1cm4geH0sTi5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgo''@;'; + put 'put ''KS84KX0sTi5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKHgpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKHgpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMudGVzdG4oeC0xKT90aGlz''@;'; + put 'put ''Lm5vdG4oeCkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LE4ucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxOLnByb3RvdHlwZS5pbmVn''@;'; + put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxOLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKHgpe2Zvcig7dGhpcy5sZW5ndGg8eC5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIFA9MDtQPHgubGVuZ3Ro''@;'; + put 'put ''O1ArKyl0aGlzLndvcmRzW1BdPXRoaXMud29yZHNbUF18eC53b3Jkc1tQXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVvcih4KX0sTi5wcm90b3R5cGUub3I9ZnVu''@;'; + put 'put ''Y3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoeCk6eC5jbG9uZSgpLmlvcih0aGlzKX0sTi5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcih4KTp4LmNsb25lKCku''@;'; + put 'put ''aXVvcih0aGlzKX0sTi5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oeCl7dmFyIFA7UD10aGlzLmxlbmd0aD54Lmxlbmd0aD94OnRoaXM7Zm9yKHZhciBWPTA7VjxQLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT10aGlzLndvcmRzW1ZdJngud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPVAu''@;'; + put 'put ''bGVuZ3RoLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh4KX0sTi5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlz''@;'; + put 'put ''LmNsb25lKCkuaWFuZCh4KTp4LmNsb25lKCkuaWFuZCh0aGlzKX0sTi5wcm90b3R5cGUudWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKHgpOnguY2xvbmUoKS5pdWFuZCh0aGlzKX0sTi5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rp''@;'; + put 'put ''b24oeCl7dmFyIFAsVjt0aGlzLmxlbmd0aD54Lmxlbmd0aD8oUD10aGlzLFY9eCk6KFA9eCxWPXRoaXMpO2Zvcih2YXIgVD0wO1Q8Vi5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXV5WLndvcmRzW1RdO2lmKHRoaXMhPT1QKWZvcig7VDxQLmxlbmd0aDtUKyspdGhpcy53b3Jk''@;'; + put 'put ''c1tUXT1QLndvcmRzW1RdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoeCl9LE4ucHJvdG90eXBlLnhvcj1mdW5jdGlv''@;'; + put 'put ''bih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoeCk6eC5jbG9uZSgpLml4b3IodGhpcyl9LE4ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcih4KTp4LmNsb25lKCku''@;'; + put 'put ''aXV4b3IodGhpcyl9LE4ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD0wfE1hdGguY2VpbCh4LzI2KSxWPXglMjY7dGhpcy5fZXhwYW5kKFApLFY+MCYmUC0tO2Zvcih2YXIgVD0wO1Q8UDtUKyspdGhpcy53b3Jkc1tUXT02NzEw''@;'; + put 'put ''ODg2MyZ+dGhpcy53b3Jkc1tUXTtyZXR1cm4gVj4wJiYodGhpcy53b3Jkc1tUXT1+dGhpcy53b3Jkc1tUXSY2NzEwODg2Mz4+MjYtViksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oeCl9LE4ucHJvdG90eXBlLnNl''@;'; + put 'put ''dG49ZnVuY3Rpb24oeCxQKXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFY9eC8yNnwwLFQ9eCUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXT1QP3RoaXMud29yZHNbVl18MTw8VDp0aGlzLndvcmRzW1ZdJn4oMTw8VCksdGhpcy5zdHJpcCgpfSxOLnBy''@;'; + put 'put ''b3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgpe3ZhciBQLFYsVDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxQPXRoaXMuaXN1Yih4KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUm''@;'; + put 'put ''JjAhPT14Lm5lZ2F0aXZlKXJldHVybiB4Lm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCkseC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIFM9MCxGPTA7RjxULmxlbmd0aDtGKyspdGhpcy53b3Jk''@;'; + put 'put ''c1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKSsoMHxULndvcmRzW0ZdKStTKSxTPVA+Pj4yNjtmb3IoOzAhPT1TJiZGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJihQPSgwfFYud29yZHNbRl0pK1MpLFM9UD4+PjI2O2lmKHRoaXMubGVuZ3RoPVYubGVuZ3RoLDAh''@;'; + put 'put ''PT1TKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVMsdGhpcy5sZW5ndGgrKztlbHNlIGlmKFYhPT10aGlzKWZvcig7RjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT1WLndvcmRzW0ZdO3JldHVybiB0aGlzfSxOLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oeCl7dmFyIFA7cmV0dXJuIDAhPT14''@;'; + put 'put ''Lm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oeC5uZWdhdGl2ZT0wLFA9dGhpcy5zdWIoeCkseC5uZWdhdGl2ZV49MSxQKTowPT09eC5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxQPXguc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxQKTp0aGlzLmxl''@;'; + put 'put ''bmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh4KTp4LmNsb25lKCkuaWFkZCh0aGlzKX0sTi5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4KXtpZigwIT09eC5uZWdhdGl2ZSl7eC5uZWdhdGl2ZT0wO3ZhciBQPXRoaXMuaWFkZCh4KTtyZXR1cm4geC5uZWdhdGl2ZT0xLFAuX25vcm1T''@;'; + put 'put ''aWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFYsVCxTPXRoaXMuY21wKHgpO2lmKDA9PT1TKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0''@;'; + put 'put ''aGlzLndvcmRzWzBdPTAsdGhpcztTPjA/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIEY9MCx5ZT0wO3llPFQubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSktKDB8VC53b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02NzEwODg2MyZQO2Zvcig7MCE9PUYm''@;'; + put 'put ''JnllPFYubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSkrRik+PjI2LHRoaXMud29yZHNbeWVdPTY3MTA4ODYzJlA7aWYoMD09PUYmJnllPFYubGVuZ3RoJiZWIT09dGhpcylmb3IoO3llPFYubGVuZ3RoO3llKyspdGhpcy53b3Jkc1t5ZV09Vi53b3Jkc1t5ZV07cmV0dXJuIHRoaXMu''@;'; + put 'put ''bGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHllKSxWIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKHgpfTt2YXIgQWU9ZnVuY3Rpb24oeCxQLFYpe3ZhciBULFMsRix5''@;'; + put 'put ''ZT14LndvcmRzLENlPVAud29yZHMsRGU9Vi53b3JkcyxQZT0wLFFlPTB8eWVbMF0sJGU9ODE5MSZRZSxndD1RZT4+PjEzLHd0PTB8eWVbMV0sdnQ9ODE5MSZ3dCxBdD13dD4+PjEzLG10PTB8eWVbMl0saHQ9ODE5MSZtdCxCdD1tdD4+PjEzLG9uPTB8eWVbM10sX3Q9ODE5MSZvbix0dD1vbj4+''@;'; + put 'put ''PjEzLGV0PTB8eWVbNF0sYXQ9ODE5MSZldCxMdD1ldD4+PjEzLEN0PTB8eWVbNV0sZnQ9ODE5MSZDdCxIdD1DdD4+PjEzLEdlPTB8eWVbNl0sVWU9ODE5MSZHZSx5dD1HZT4+PjEzLGp0PTB8eWVbN10sUXQ9ODE5MSZqdCxnbj1qdD4+PjEzLGRuPTB8eWVbOF0seW49ODE5MSZkbixsbj1kbj4+''@;'; + put 'put ''PjEzLE5uPTB8eWVbOV0sYm49ODE5MSZObixlcj1Obj4+PjEzLHNyPTB8Q2VbMF0sWG49ODE5MSZzcixGcj1zcj4+PjEzLHhyPTB8Q2VbMV0scXQ9ODE5MSZ4cixwcj14cj4+PjEzLG5yPTB8Q2VbMl0sQW49ODE5MSZucixxbj1ucj4+PjEzLFd0PTB8Q2VbM10scG49ODE5MSZXdCxLbj1XdD4+''@;'; + put 'put ''PjEzLE50PTB8Q2VbNF0sc249ODE5MSZOdCxVbj1OdD4+PjEzLHduPTB8Q2VbNV0sdG49ODE5MSZ3bix6bj13bj4+PjEzLFRyPTB8Q2VbNl0sQm49ODE5MSZUcixrcj1Ucj4+PjEzLG1uPTB8Q2VbN10sdW49ODE5MSZtbixjbj1tbj4+PjEzLF9uPTB8Q2VbOF0sR3Q9ODE5MSZfbixrbj1fbj4+''@;'; + put 'put ''PjEzLFZuPTB8Q2VbOV0sZW49ODE5MSZWbixJbj1Wbj4+PjEzO1YubmVnYXRpdmU9eC5uZWdhdGl2ZV5QLm5lZ2F0aXZlLFYubGVuZ3RoPTE5O3ZhciBKbj0oUGUrKFQ9TWF0aC5pbXVsKCRlLFhuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bCgkZSxGcikpK01hdGguaW11bChndCxYbil8''@;'; + put 'put ''MCkpPDwxMyl8MDtQZT0oKEY9TWF0aC5pbXVsKGd0LEZyKSkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHZ0LFhuKSxTPShTPU1hdGguaW11bCh2dCxGcikpK01hdGguaW11bChBdCxYbil8MCxGPU1hdGguaW11bChBdCxGcik7dmFyIG9yPShQZSso''@;'; + put 'put ''VD1UK01hdGguaW11bCgkZSxxdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLHByKXwwKStNYXRoLmltdWwoZ3QscXQpfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHByKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmlt''@;'; + put 'put ''dWwoaHQsWG4pLFM9KFM9TWF0aC5pbXVsKGh0LEZyKSkrTWF0aC5pbXVsKEJ0LFhuKXwwLEY9TWF0aC5pbXVsKEJ0LEZyKSxUPVQrTWF0aC5pbXVsKHZ0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwodnQscHIpfDApK01hdGguaW11bChBdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEF0LHByKXwwO3Zh''@;'; + put 'put ''ciBncj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxxbil8MCkrTWF0aC5pbXVsKGd0LEFuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxxbil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYz''@;'; + put 'put ''LFQ9TWF0aC5pbXVsKF90LFhuKSxTPShTPU1hdGguaW11bChfdCxGcikpK01hdGguaW11bCh0dCxYbil8MCxGPU1hdGguaW11bCh0dCxGciksVD1UK01hdGguaW11bChodCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHByKXwwKStNYXRoLmltdWwoQnQscXQpfDAsRj1GK01hdGguaW11bChC''@;'; + put 'put ''dCxwcil8MCxUPVQrTWF0aC5pbXVsKHZ0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwodnQscW4pfDApK01hdGguaW11bChBdCxBbil8MCxGPUYrTWF0aC5pbXVsKEF0LHFuKXwwO3ZhciBLcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgk''@;'; + put 'put ''ZSxLbil8MCkrTWF0aC5pbXVsKGd0LHBuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxLbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGF0LFhuKSxTPShTPU1hdGguaW11bChhdCxGcikpK01hdGguaW11bChMdCxYbil8MCxG''@;'; + put 'put ''PU1hdGguaW11bChMdCxGciksVD1UK01hdGguaW11bChfdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKF90LHByKXwwKStNYXRoLmltdWwodHQscXQpfDAsRj1GK01hdGguaW11bCh0dCxwcil8MCxUPVQrTWF0aC5pbXVsKGh0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQscW4pfDApK01hdGgu''@;'; + put 'put ''aW11bChCdCxBbil8MCxGPUYrTWF0aC5pbXVsKEJ0LHFuKXwwLFQ9VCtNYXRoLmltdWwodnQscG4pfDAsUz0oUz1TK01hdGguaW11bCh2dCxLbil8MCkrTWF0aC5pbXVsKEF0LHBuKXwwLEY9RitNYXRoLmltdWwoQXQsS24pfDA7dmFyIFZyPShQZSsoVD1UK01hdGguaW11bCgkZSxzbil8MCl8''@;'; + put 'put ''MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLFVuKXwwKStNYXRoLmltdWwoZ3Qsc24pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LFVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZnQsWG4pLFM9KFM9TWF0aC5pbXVs''@;'; + put 'put ''KGZ0LEZyKSkrTWF0aC5pbXVsKEh0LFhuKXwwLEY9TWF0aC5pbXVsKEh0LEZyKSxUPVQrTWF0aC5pbXVsKGF0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQscHIpfDApK01hdGguaW11bChMdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEx0LHByKXwwLFQ9VCtNYXRoLmltdWwoX3QsQW4pfDAsUz0o''@;'; + put 'put ''Uz1TK01hdGguaW11bChfdCxxbil8MCkrTWF0aC5pbXVsKHR0LEFuKXwwLEY9RitNYXRoLmltdWwodHQscW4pfDAsVD1UK01hdGguaW11bChodCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LEtuKXwwKStNYXRoLmltdWwoQnQscG4pfDAsRj1GK01hdGguaW11bChCdCxLbil8MCxUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKHZ0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwodnQsVW4pfDApK01hdGguaW11bChBdCxzbil8MCxGPUYrTWF0aC5pbXVsKEF0LFVuKXwwO3ZhciBpaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsdG4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSx6bil8MCkrTWF0aC5p''@;'; + put 'put ''bXVsKGd0LHRuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCx6bil8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFVlLFhuKSxTPShTPU1hdGguaW11bChVZSxGcikpK01hdGguaW11bCh5dCxYbil8MCxGPU1hdGguaW11bCh5dCxG''@;'; + put 'put ''ciksVD1UK01hdGguaW11bChmdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHByKXwwKStNYXRoLmltdWwoSHQscXQpfDAsRj1GK01hdGguaW11bChIdCxwcil8MCxUPVQrTWF0aC5pbXVsKGF0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQscW4pfDApK01hdGguaW11bChMdCxBbil8MCxG''@;'; + put 'put ''PUYrTWF0aC5pbXVsKEx0LHFuKXwwLFQ9VCtNYXRoLmltdWwoX3QscG4pfDAsUz0oUz1TK01hdGguaW11bChfdCxLbil8MCkrTWF0aC5pbXVsKHR0LHBuKXwwLEY9RitNYXRoLmltdWwodHQsS24pfDAsVD1UK01hdGguaW11bChodCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LFVuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoQnQsc24pfDAsRj1GK01hdGguaW11bChCdCxVbil8MCxUPVQrTWF0aC5pbXVsKHZ0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwodnQsem4pfDApK01hdGguaW11bChBdCx0bil8MCxGPUYrTWF0aC5pbXVsKEF0LHpuKXwwO3ZhciBScj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQm4p''@;'; + put 'put ''fDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrcil8MCkrTWF0aC5pbXVsKGd0LEJuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrcil8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFF0LFhuKSxTPShTPU1hdGgu''@;'; + put 'put ''aW11bChRdCxGcikpK01hdGguaW11bChnbixYbil8MCxGPU1hdGguaW11bChnbixGciksVD1UK01hdGguaW11bChVZSxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHByKXwwKStNYXRoLmltdWwoeXQscXQpfDAsRj1GK01hdGguaW11bCh5dCxwcil8MCxUPVQrTWF0aC5pbXVsKGZ0LEFuKXww''@;'; + put 'put ''LFM9KFM9UytNYXRoLmltdWwoZnQscW4pfDApK01hdGguaW11bChIdCxBbil8MCxGPUYrTWF0aC5pbXVsKEh0LHFuKXwwLFQ9VCtNYXRoLmltdWwoYXQscG4pfDAsUz0oUz1TK01hdGguaW11bChhdCxLbil8MCkrTWF0aC5pbXVsKEx0LHBuKXwwLEY9RitNYXRoLmltdWwoTHQsS24pfDAsVD1U''@;'; + put 'put ''K01hdGguaW11bChfdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LFVuKXwwKStNYXRoLmltdWwodHQsc24pfDAsRj1GK01hdGguaW11bCh0dCxVbil8MCxUPVQrTWF0aC5pbXVsKGh0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsem4pfDApK01hdGguaW11bChCdCx0bil8MCxGPUYrTWF0''@;'; + put 'put ''aC5pbXVsKEJ0LHpuKXwwLFQ9VCtNYXRoLmltdWwodnQsQm4pfDAsUz0oUz1TK01hdGguaW11bCh2dCxrcil8MCkrTWF0aC5pbXVsKEF0LEJuKXwwLEY9RitNYXRoLmltdWwoQXQsa3IpfDA7dmFyIGxpPShQZSsoVD1UK01hdGguaW11bCgkZSx1bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0''@;'; + put 'put ''aC5pbXVsKCRlLGNuKXwwKStNYXRoLmltdWwoZ3QsdW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LGNuKXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoeW4sWG4pLFM9KFM9TWF0aC5pbXVsKHluLEZyKSkrTWF0aC5pbXVsKGxu''@;'; + put 'put ''LFhuKXwwLEY9TWF0aC5pbXVsKGxuLEZyKSxUPVQrTWF0aC5pbXVsKFF0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQscHIpfDApK01hdGguaW11bChnbixxdCl8MCxGPUYrTWF0aC5pbXVsKGduLHByKXwwLFQ9VCtNYXRoLmltdWwoVWUsQW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxxbil8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKHl0LEFuKXwwLEY9RitNYXRoLmltdWwoeXQscW4pfDAsVD1UK01hdGguaW11bChmdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LEtuKXwwKStNYXRoLmltdWwoSHQscG4pfDAsRj1GK01hdGguaW11bChIdCxLbil8MCxUPVQrTWF0aC5pbXVsKGF0LHNuKXwwLFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwoYXQsVW4pfDApK01hdGguaW11bChMdCxzbil8MCxGPUYrTWF0aC5pbXVsKEx0LFVuKXwwLFQ9VCtNYXRoLmltdWwoX3QsdG4pfDAsUz0oUz1TK01hdGguaW11bChfdCx6bil8MCkrTWF0aC5pbXVsKHR0LHRuKXwwLEY9RitNYXRoLmltdWwodHQsem4pfDAsVD1UK01hdGgu''@;'; + put 'put ''aW11bChodCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtyKXwwKStNYXRoLmltdWwoQnQsQm4pfDAsRj1GK01hdGguaW11bChCdCxrcil8MCxUPVQrTWF0aC5pbXVsKHZ0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwodnQsY24pfDApK01hdGguaW11bChBdCx1bil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KEF0LGNuKXwwO3ZhciBNaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsR3QpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrbil8MCkrTWF0aC5pbXVsKGd0LEd0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrbil8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAs''@;'; + put 'put ''TWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLFhuKSxTPShTPU1hdGguaW11bChibixGcikpK01hdGguaW11bChlcixYbil8MCxGPU1hdGguaW11bChlcixGciksVD1UK01hdGguaW11bCh5bixxdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLHByKXwwKStNYXRoLmltdWwobG4scXQpfDAsRj1G''@;'; + put 'put ''K01hdGguaW11bChsbixwcil8MCxUPVQrTWF0aC5pbXVsKFF0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQscW4pfDApK01hdGguaW11bChnbixBbil8MCxGPUYrTWF0aC5pbXVsKGduLHFuKXwwLFQ9VCtNYXRoLmltdWwoVWUscG4pfDAsUz0oUz1TK01hdGguaW11bChVZSxLbil8MCkrTWF0''@;'; + put 'put ''aC5pbXVsKHl0LHBuKXwwLEY9RitNYXRoLmltdWwoeXQsS24pfDAsVD1UK01hdGguaW11bChmdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LFVuKXwwKStNYXRoLmltdWwoSHQsc24pfDAsRj1GK01hdGguaW11bChIdCxVbil8MCxUPVQrTWF0aC5pbXVsKGF0LHRuKXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoYXQsem4pfDApK01hdGguaW11bChMdCx0bil8MCxGPUYrTWF0aC5pbXVsKEx0LHpuKXwwLFQ9VCtNYXRoLmltdWwoX3QsQm4pfDAsUz0oUz1TK01hdGguaW11bChfdCxrcil8MCkrTWF0aC5pbXVsKHR0LEJuKXwwLEY9RitNYXRoLmltdWwodHQsa3IpfDAsVD1UK01hdGguaW11bCho''@;'; + put 'put ''dCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGNuKXwwKStNYXRoLmltdWwoQnQsdW4pfDAsRj1GK01hdGguaW11bChCdCxjbil8MCxUPVQrTWF0aC5pbXVsKHZ0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwodnQsa24pfDApK01hdGguaW11bChBdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEF0LGtu''@;'; + put 'put ''KXwwO3ZhciBvMD0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxJbil8MCkrTWF0aC5pbXVsKGd0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxJbil8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3''@;'; + put 'put ''MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHF0KSxTPShTPU1hdGguaW11bChibixwcikpK01hdGguaW11bChlcixxdCl8MCxGPU1hdGguaW11bChlcixwciksVD1UK01hdGguaW11bCh5bixBbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHFuKXwwKStNYXRoLmltdWwobG4sQW4pfDAsRj1GK01hdGgu''@;'; + put 'put ''aW11bChsbixxbil8MCxUPVQrTWF0aC5pbXVsKFF0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsS24pfDApK01hdGguaW11bChnbixwbil8MCxGPUYrTWF0aC5pbXVsKGduLEtuKXwwLFQ9VCtNYXRoLmltdWwoVWUsc24pfDAsUz0oUz1TK01hdGguaW11bChVZSxVbil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KHl0LHNuKXwwLEY9RitNYXRoLmltdWwoeXQsVW4pfDAsVD1UK01hdGguaW11bChmdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHpuKXwwKStNYXRoLmltdWwoSHQsdG4pfDAsRj1GK01hdGguaW11bChIdCx6bil8MCxUPVQrTWF0aC5pbXVsKGF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''YXQsa3IpfDApK01hdGguaW11bChMdCxCbil8MCxGPUYrTWF0aC5pbXVsKEx0LGtyKXwwLFQ9VCtNYXRoLmltdWwoX3QsdW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxjbil8MCkrTWF0aC5pbXVsKHR0LHVuKXwwLEY9RitNYXRoLmltdWwodHQsY24pfDAsVD1UK01hdGguaW11bChodCxHdCl8''@;'; + put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtuKXwwKStNYXRoLmltdWwoQnQsR3QpfDAsRj1GK01hdGguaW11bChCdCxrbil8MDt2YXIgbjA9KFBlKyhUPVQrTWF0aC5pbXVsKHZ0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwodnQsSW4pfDApK01hdGguaW11bChBdCxlbil8MCkp''@;'; + put 'put ''PDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoQXQsSW4pfDApKyhTPj4+MTMpfDApKyhuMD4+PjI2KXwwLG4wJj02NzEwODg2MyxUPU1hdGguaW11bChibixBbiksUz0oUz1NYXRoLmltdWwoYm4scW4pKStNYXRoLmltdWwoZXIsQW4pfDAsRj1NYXRoLmltdWwoZXIscW4pLFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwoeW4scG4pfDAsUz0oUz1TK01hdGguaW11bCh5bixLbil8MCkrTWF0aC5pbXVsKGxuLHBuKXwwLEY9RitNYXRoLmltdWwobG4sS24pfDAsVD1UK01hdGguaW11bChRdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LFVuKXwwKStNYXRoLmltdWwoZ24sc24pfDAsRj1GK01hdGguaW11bChn''@;'; + put 'put ''bixVbil8MCxUPVQrTWF0aC5pbXVsKFVlLHRuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsem4pfDApK01hdGguaW11bCh5dCx0bil8MCxGPUYrTWF0aC5pbXVsKHl0LHpuKXwwLFQ9VCtNYXRoLmltdWwoZnQsQm4pfDAsUz0oUz1TK01hdGguaW11bChmdCxrcil8MCkrTWF0aC5pbXVsKEh0LEJu''@;'; + put 'put ''KXwwLEY9RitNYXRoLmltdWwoSHQsa3IpfDAsVD1UK01hdGguaW11bChhdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LGNuKXwwKStNYXRoLmltdWwoTHQsdW4pfDAsRj1GK01hdGguaW11bChMdCxjbil8MCxUPVQrTWF0aC5pbXVsKF90LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa24p''@;'; + put 'put ''fDApK01hdGguaW11bCh0dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHR0LGtuKXwwO3ZhciBkMD0oUGUrKFQ9VCtNYXRoLmltdWwoaHQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChodCxJbil8MCkrTWF0aC5pbXVsKEJ0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11''@;'; + put 'put ''bChCdCxJbil8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHBuKSxTPShTPU1hdGguaW11bChibixLbikpK01hdGguaW11bChlcixwbil8MCxGPU1hdGguaW11bChlcixLbiksVD1UK01hdGguaW11bCh5bixzbil8MCxTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKHluLFVuKXwwKStNYXRoLmltdWwobG4sc24pfDAsRj1GK01hdGguaW11bChsbixVbil8MCxUPVQrTWF0aC5pbXVsKFF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsem4pfDApK01hdGguaW11bChnbix0bil8MCxGPUYrTWF0aC5pbXVsKGduLHpuKXwwLFQ9VCtNYXRoLmltdWwoVWUs''@;'; + put 'put ''Qm4pfDAsUz0oUz1TK01hdGguaW11bChVZSxrcil8MCkrTWF0aC5pbXVsKHl0LEJuKXwwLEY9RitNYXRoLmltdWwoeXQsa3IpfDAsVD1UK01hdGguaW11bChmdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGNuKXwwKStNYXRoLmltdWwoSHQsdW4pfDAsRj1GK01hdGguaW11bChIdCxjbil8''@;'; + put 'put ''MCxUPVQrTWF0aC5pbXVsKGF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa24pfDApK01hdGguaW11bChMdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEx0LGtuKXwwO3ZhciBtMD0oUGUrKFQ9VCtNYXRoLmltdWwoX3QsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChfdCxJbil8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKHR0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh0dCxJbil8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHNuKSxTPShTPU1hdGguaW11bChibixVbikpK01hdGguaW11bChlcixzbil8MCxGPU1hdGgu''@;'; + put 'put ''aW11bChlcixVbiksVD1UK01hdGguaW11bCh5bix0bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHpuKXwwKStNYXRoLmltdWwobG4sdG4pfDAsRj1GK01hdGguaW11bChsbix6bil8MCxUPVQrTWF0aC5pbXVsKFF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsa3IpfDApK01hdGguaW11bChn''@;'; + put 'put ''bixCbil8MCxGPUYrTWF0aC5pbXVsKGduLGtyKXwwLFQ9VCtNYXRoLmltdWwoVWUsdW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxjbil8MCkrTWF0aC5pbXVsKHl0LHVuKXwwLEY9RitNYXRoLmltdWwoeXQsY24pfDAsVD1UK01hdGguaW11bChmdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0''@;'; + put 'put ''LGtuKXwwKStNYXRoLmltdWwoSHQsR3QpfDAsRj1GK01hdGguaW11bChIdCxrbil8MDt2YXIgRzA9KFBlKyhUPVQrTWF0aC5pbXVsKGF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoYXQsSW4pfDApK01hdGguaW11bChMdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRo''@;'; + put 'put ''LmltdWwoTHQsSW4pfDApKyhTPj4+MTMpfDApKyhHMD4+PjI2KXwwLEcwJj02NzEwODg2MyxUPU1hdGguaW11bChibix0biksUz0oUz1NYXRoLmltdWwoYm4sem4pKStNYXRoLmltdWwoZXIsdG4pfDAsRj1NYXRoLmltdWwoZXIsem4pLFQ9VCtNYXRoLmltdWwoeW4sQm4pfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bCh5bixrcil8MCkrTWF0aC5pbXVsKGxuLEJuKXwwLEY9RitNYXRoLmltdWwobG4sa3IpfDAsVD1UK01hdGguaW11bChRdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LGNuKXwwKStNYXRoLmltdWwoZ24sdW4pfDAsRj1GK01hdGguaW11bChnbixjbil8MCxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KFVlLEd0KXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa24pfDApK01hdGguaW11bCh5dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHl0LGtuKXwwO3ZhciBEaT0oUGUrKFQ9VCtNYXRoLmltdWwoZnQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChmdCxJbil8MCkrTWF0aC5pbXVsKEh0''@;'; + put 'put ''LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChIdCxJbil8MCkrKFM+Pj4xMyl8MCkrKERpPj4+MjYpfDAsRGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEJuKSxTPShTPU1hdGguaW11bChibixrcikpK01hdGguaW11bChlcixCbil8MCxGPU1hdGguaW11bChlcixrciksVD1U''@;'; + put 'put ''K01hdGguaW11bCh5bix1bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLGNuKXwwKStNYXRoLmltdWwobG4sdW4pfDAsRj1GK01hdGguaW11bChsbixjbil8MCxUPVQrTWF0aC5pbXVsKFF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQsa24pfDApK01hdGguaW11bChnbixHdCl8MCxGPUYrTWF0''@;'; + put 'put ''aC5pbXVsKGduLGtuKXwwO3ZhciBXMD0oUGUrKFQ9VCtNYXRoLmltdWwoVWUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChVZSxJbil8MCkrTWF0aC5pbXVsKHl0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh5dCxJbil8MCkrKFM+Pj4xMyl8MCkrKFcwPj4+''@;'; + put 'put ''MjYpfDAsVzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHVuKSxTPShTPU1hdGguaW11bChibixjbikpK01hdGguaW11bChlcix1bil8MCxGPU1hdGguaW11bChlcixjbiksVD1UK01hdGguaW11bCh5bixHdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLGtuKXwwKStNYXRoLmltdWwobG4sR3Qp''@;'; + put 'put ''fDAsRj1GK01hdGguaW11bChsbixrbil8MDt2YXIgRW89KFBlKyhUPVQrTWF0aC5pbXVsKFF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUXQsSW4pfDApK01hdGguaW11bChnbixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ24sSW4pfDApKyhTPj4+MTMp''@;'; + put 'put ''fDApKyhFbz4+PjI2KXwwLEVvJj02NzEwODg2MyxUPU1hdGguaW11bChibixHdCksUz0oUz1NYXRoLmltdWwoYm4sa24pKStNYXRoLmltdWwoZXIsR3QpfDAsRj1NYXRoLmltdWwoZXIsa24pO3ZhciBxbz0oUGUrKFQ9VCtNYXRoLmltdWwoeW4sZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bCh5bixJbil8MCkrTWF0aC5pbXVsKGxuLGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChsbixJbil8MCkrKFM+Pj4xMyl8MCkrKHFvPj4+MjYpfDAscW8mPTY3MTA4ODYzO3ZhciBjYT0oUGUrKFQ9TWF0aC5pbXVsKGJuLGVuKSl8MCkrKCg4MTkxJihTPShTPU1hdGgu''@;'; + put 'put ''aW11bChibixJbikpK01hdGguaW11bChlcixlbil8MCkpPDwxMyl8MDtyZXR1cm4gUGU9KChGPU1hdGguaW11bChlcixJbikpKyhTPj4+MTMpfDApKyhjYT4+PjI2KXwwLGNhJj02NzEwODg2MyxEZVswXT1KbixEZVsxXT1vcixEZVsyXT1ncixEZVszXT1LcixEZVs0XT1WcixEZVs1XT1paSxE''@;'; + put 'put ''ZVs2XT1ScixEZVs3XT1saSxEZVs4XT1NaSxEZVs5XT1vMCxEZVsxMF09bjAsRGVbMTFdPWQwLERlWzEyXT1tMCxEZVsxM109RzAsRGVbMTRdPURpLERlWzE1XT1XMCxEZVsxNl09RW8sRGVbMTddPXFvLERlWzE4XT1jYSwwIT09UGUmJihEZVsxOV09UGUsVi5sZW5ndGgrKyksVn07ZnVuY3Rp''@;'; + put 'put ''b24ga2UoeCxQLFYpe3JldHVybihuZXcgU2UpLm11bHAoeCxQLFYpfWZ1bmN0aW9uIFNlKHgsUCl7dGhpcy54PXgsdGhpcy55PVB9TWF0aC5pbXVsfHwoQWU9dmUpLE4ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHgsUCl7dmFyIFQ9dGhpcy5sZW5ndGgreC5sZW5ndGg7cmV0dXJuIDEwPT09''@;'; + put 'put ''dGhpcy5sZW5ndGgmJjEwPT09eC5sZW5ndGg/QWUodGhpcyx4LFApOlQ8NjM/dmUodGhpcyx4LFApOlQ8MTAyND9mdW5jdGlvbihTLEYseWUpe3llLm5lZ2F0aXZlPUYubmVnYXRpdmVeUy5uZWdhdGl2ZSx5ZS5sZW5ndGg9Uy5sZW5ndGgrRi5sZW5ndGg7Zm9yKHZhciBDZT0wLERlPTAsUGU9''@;'; + put 'put ''MDtQZTx5ZS5sZW5ndGgtMTtQZSsrKXt2YXIgUWU9RGU7RGU9MDtmb3IodmFyICRlPTY3MTA4ODYzJkNlLGd0PU1hdGgubWluKFBlLEYubGVuZ3RoLTEpLHd0PU1hdGgubWF4KDAsUGUtUy5sZW5ndGgrMSk7d3Q8PWd0O3d0Kyspe3ZhciBBdD0oMHxTLndvcmRzW1BlLXd0XSkqKDB8Ri53b3Jk''@;'; + put 'put ''c1t3dF0pLG10PTY3MTA4ODYzJkF0OyRlPTY3MTA4ODYzJihtdD1tdCskZXwwKSxEZSs9KFFlPShRZT1RZSsoQXQvNjcxMDg4NjR8MCl8MCkrKG10Pj4+MjYpfDApPj4+MjYsUWUmPTY3MTA4ODYzfXllLndvcmRzW1BlXT0kZSxDZT1RZSxRZT1EZX1yZXR1cm4gMCE9PUNlP3llLndvcmRzW1Bl''@;'; + put 'put ''XT1DZTp5ZS5sZW5ndGgtLSx5ZS5zdHJpcCgpfSh0aGlzLHgsUCk6a2UodGhpcyx4LFApfSxTZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbih4KXtmb3IodmFyIFA9bmV3IEFycmF5KHgpLFY9Ti5wcm90b3R5cGUuX2NvdW50Qml0cyh4KS0xLFQ9MDtUPHg7VCsrKVBbVF09dGhpcy5yZXZC''@;'; + put 'put ''aW4oVCxWLHgpO3JldHVybiBQfSxTZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHgsUCxWKXtpZigwPT09eHx8eD09PVYtMSlyZXR1cm4geDtmb3IodmFyIFQ9MCxTPTA7UzxQO1MrKylUfD0oMSZ4KTw8UC1TLTEseD4+PTE7cmV0dXJuIFR9LFNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0''@;'; + put 'put ''aW9uKHgsUCxWLFQsUyxGKXtmb3IodmFyIHllPTA7eWU8Rjt5ZSsrKVRbeWVdPVBbeFt5ZV1dLFNbeWVdPVZbeFt5ZV1dfSxTZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXt0aGlzLnBlcm11dGUoRix4LFAsVixULFMpO2Zvcih2YXIgeWU9MTt5ZTxTO3llPDw9''@;'; + put 'put ''MSlmb3IodmFyIENlPXllPDwxLERlPU1hdGguY29zKDIqTWF0aC5QSS9DZSksUGU9TWF0aC5zaW4oMipNYXRoLlBJL0NlKSxRZT0wO1FlPFM7UWUrPUNlKWZvcih2YXIgJGU9RGUsZ3Q9UGUsd3Q9MDt3dDx5ZTt3dCsrKXt2YXIgdnQ9VltRZSt3dF0sQXQ9VFtRZSt3dF0sbXQ9VltRZSt3dCt5''@;'; + put 'put ''ZV0saHQ9VFtRZSt3dCt5ZV0sQnQ9JGUqbXQtZ3QqaHQ7aHQ9JGUqaHQrZ3QqbXQsVltRZSt3dF09dnQrKG10PUJ0KSxUW1FlK3d0XT1BdCtodCxWW1FlK3d0K3llXT12dC1tdCxUW1FlK3d0K3llXT1BdC1odCx3dCE9PUNlJiYoQnQ9RGUqJGUtUGUqZ3QsZ3Q9RGUqZ3QrUGUqJGUsJGU9QnQp''@;'; + put 'put ''fX0sU2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKHgsUCl7dmFyIFY9MXxNYXRoLm1heChQLHgpLFQ9MSZWLFM9MDtmb3IoVj1WLzJ8MDtWO1Y+Pj49MSlTKys7cmV0dXJuIDE8PFMrMStUfSxTZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKHgsUCxWKXtpZighKFY8PTEp''@;'; + put 'put ''KWZvcih2YXIgVD0wO1Q8Vi8yO1QrKyl7dmFyIFM9eFtUXTt4W1RdPXhbVi1ULTFdLHhbVi1ULTFdPVMsUz1QW1RdLFBbVF09LVBbVi1ULTFdLFBbVi1ULTFdPS1TfX0sU2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj0wLFQ9MDtUPFAvMjtUKyspe3Zh''@;'; + put 'put ''ciBTPTgxOTIqTWF0aC5yb3VuZCh4WzIqVCsxXS9QKStNYXRoLnJvdW5kKHhbMipUXS9QKStWO3hbVF09NjcxMDg4NjMmUyxWPVM8NjcxMDg4NjQ/MDpTLzY3MTA4ODY0fDB9cmV0dXJuIHh9LFNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9''@;'; + put 'put ''MDtGPFA7RisrKVZbMipGXT04MTkxJihTKz0wfHhbRl0pLFZbMipGKzFdPTgxOTEmKFM+Pj49MTMpLFM+Pj49MTM7Zm9yKEY9MipQO0Y8VDsrK0YpVltGXT0wO1koMD09PVMpLFkoMD09KC04MTkyJlMpKX0sU2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJh''@;'; + put 'put ''eSh4KSxWPTA7Vjx4O1YrKylQW1ZdPTA7cmV0dXJuIFB9LFNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVD0yKnRoaXMuZ3Vlc3NMZW4xM2IoeC5sZW5ndGgsUC5sZW5ndGgpLFM9dGhpcy5tYWtlUkJUKFQpLEY9dGhpcy5zdHViKFQpLHllPW5ldyBBcnJheShUKSxDZT1u''@;'; + put 'put ''ZXcgQXJyYXkoVCksRGU9bmV3IEFycmF5KFQpLFBlPW5ldyBBcnJheShUKSxRZT1uZXcgQXJyYXkoVCksJGU9bmV3IEFycmF5KFQpLGd0PVYud29yZHM7Z3QubGVuZ3RoPVQsdGhpcy5jb252ZXJ0MTNiKHgud29yZHMseC5sZW5ndGgseWUsVCksdGhpcy5jb252ZXJ0MTNiKFAud29yZHMsUC5s''@;'; + put 'put ''ZW5ndGgsUGUsVCksdGhpcy50cmFuc2Zvcm0oeWUsRixDZSxEZSxULFMpLHRoaXMudHJhbnNmb3JtKFBlLEYsUWUsJGUsVCxTKTtmb3IodmFyIHd0PTA7d3Q8VDt3dCsrKXt2YXIgdnQ9Q2Vbd3RdKlFlW3d0XS1EZVt3dF0qJGVbd3RdO0RlW3d0XT1DZVt3dF0qJGVbd3RdK0RlW3d0XSpRZVt3''@;'; + put 'put ''dF0sQ2Vbd3RdPXZ0fXJldHVybiB0aGlzLmNvbmp1Z2F0ZShDZSxEZSxUKSx0aGlzLnRyYW5zZm9ybShDZSxEZSxndCxGLFQsUyksdGhpcy5jb25qdWdhdGUoZ3QsRixUKSx0aGlzLm5vcm1hbGl6ZTEzYihndCxUKSxWLm5lZ2F0aXZlPXgubmVnYXRpdmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD14''@;'; + put 'put ''Lmxlbmd0aCtQLmxlbmd0aCxWLnN0cmlwKCl9LE4ucHJvdG90eXBlLm11bD1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLHRoaXMubXVsVG8oeCxQKX0sTi5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih4''@;'; + put 'put ''KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLGtlKHRoaXMseCxQKX0sTi5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKHgsdGhpcyl9LE4ucHJvdG90eXBlLmltdWxuPWZ1''@;'; + put 'put ''bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpO2Zvcih2YXIgUD0wLFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkqeCxTPSg2NzEwODg2MyZUKSsoNjcxMDg4NjMmUCk7UD4+PTI2LFArPVQvNjcxMDg4NjR8MCxQKz1TPj4+''@;'; + put 'put ''MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZTfXJldHVybiAwIT09UCYmKHRoaXMud29yZHNbVl09UCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oeCl9LE4ucHJvdG90eXBlLnNxcj1mdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiB0aGlzLm11bCh0aGlzKX0sTi5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sTi5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgpe3ZhciBQPWZ1bmN0aW9uKEYpe2Zvcih2YXIgeWU9bmV3IEFycmF5KEYuYml0TGVuZ3RoKCkp''@;'; + put 'put ''LENlPTA7Q2U8eWUubGVuZ3RoO0NlKyspe3ZhciBQZT1DZSUyNjt5ZVtDZV09KEYud29yZHNbQ2UvMjZ8MF0mMTw8UGUpPj4+UGV9cmV0dXJuIHllfSh4KTtpZigwPT09UC5sZW5ndGgpcmV0dXJuIG5ldyBOKDEpO2Zvcih2YXIgVj10aGlzLFQ9MDtUPFAubGVuZ3RoJiYwPT09UFtUXTtUKyss''@;'; + put 'put ''Vj1WLnNxcigpKTtpZigrK1Q8UC5sZW5ndGgpZm9yKHZhciBTPVYuc3FyKCk7VDxQLmxlbmd0aDtUKyssUz1TLnNxcigpKTAhPT1QW1RdJiYoVj1WLm11bChTKSk7cmV0dXJuIFZ9LE4ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFy''@;'; + put 'put ''IFAsVj14JTI2LFQ9KHgtVikvMjYsUz02NzEwODg2Mz4+PjI2LVY8PDI2LVY7aWYoMCE9PVYpe3ZhciBGPTA7Zm9yKFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIHllPXRoaXMud29yZHNbUF0mUzt0aGlzLndvcmRzW1BdPSgwfHRoaXMud29yZHNbUF0pLXllPDxWfEYsRj15ZT4+PjI2LVZ9''@;'; + put 'put ''RiYmKHRoaXMud29yZHNbUF09Rix0aGlzLmxlbmd0aCsrKX1pZigwIT09VCl7Zm9yKFA9dGhpcy5sZW5ndGgtMTtQPj0wO1AtLSl0aGlzLndvcmRzW1ArVF09dGhpcy53b3Jkc1tQXTtmb3IoUD0wO1A8VDtQKyspdGhpcy53b3Jkc1tQXT0wO3RoaXMubGVuZ3RoKz1UfXJldHVybiB0aGlzLnN0''@;'; + put 'put ''cmlwKCl9LE4ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbih4KX0sTi5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVDtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCksVD1QPyhQLVAlMjYpLzI2''@;'; + put 'put ''OjA7dmFyIFM9eCUyNixGPU1hdGgubWluKCh4LVMpLzI2LHRoaXMubGVuZ3RoKSx5ZT02NzEwODg2M142NzEwODg2Mz4+PlM8PFMsQ2U9VjtpZihULT1GLFQ9TWF0aC5tYXgoMCxUKSxDZSl7Zm9yKHZhciBEZT0wO0RlPEY7RGUrKylDZS53b3Jkc1tEZV09dGhpcy53b3Jkc1tEZV07Q2UubGVu''@;'; + put 'put ''Z3RoPUZ9aWYoMCE9PUYpaWYodGhpcy5sZW5ndGg+Rilmb3IodGhpcy5sZW5ndGgtPUYsRGU9MDtEZTx0aGlzLmxlbmd0aDtEZSsrKXRoaXMud29yZHNbRGVdPXRoaXMud29yZHNbRGUrRl07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgUGU9MDtmb3IoRGU9dGhpcy5s''@;'; + put 'put ''ZW5ndGgtMTtEZT49MCYmKDAhPT1QZXx8RGU+PVQpO0RlLS0pe3ZhciBRZT0wfHRoaXMud29yZHNbRGVdO3RoaXMud29yZHNbRGVdPVBlPDwyNi1TfFFlPj4+UyxQZT1RZSZ5ZX1yZXR1cm4gQ2UmJjAhPT1QZSYmKENlLndvcmRzW0NlLmxlbmd0aCsrXT1QZSksMD09PXRoaXMubGVuZ3RoJiYo''@;'; + put 'put ''dGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih4LFAsVil9LE4ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuY2xvbmUoKS5pc2hsbih4KX0sTi5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oeCl9LE4ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih4KX0sTi5wcm90b3R5cGUudXNocm49ZnVuY3Rp''@;'; + put 'put ''b24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oeCl9LE4ucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9Vnx8ISh0aGlzLndvcmRzW1ZdJjE8PFApKX0s''@;'; + put 'put ''Ti5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1W''@;'; + put 'put ''P3RoaXM6KDAhPT1QJiZWKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oVix0aGlzLmxlbmd0aCksMCE9PVAmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PlA8PFApLHRoaXMuc3RyaXAoKSl9LE4ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHgpe3JldHVy''@;'; + put 'put ''biB0aGlzLmNsb25lKCkuaW1hc2tuKHgpfSxOLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih4KXtyZXR1cm4gWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwP3RoaXMuaXN1Ym4oLXgpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jk''@;'; + put 'put ''c1swXSk8eD8odGhpcy53b3Jkc1swXT14LSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHgpfSxOLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oeCl7''@;'; + put 'put ''dGhpcy53b3Jkc1swXSs9eDtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPj02NzEwODg2NDtQKyspdGhpcy53b3Jkc1tQXS09NjcxMDg4NjQsUD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tQKzFdPTE6dGhpcy53b3Jkc1tQKzFdKys7cmV0dXJuIHRoaXMubGVu''@;'; + put 'put ''Z3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFArMSksdGhpc30sTi5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oeCl7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwKXJldHVybiB0aGlzLmlhZGRuKC14KTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5u''@;'; + put 'put ''ZWdhdGl2ZT0wLHRoaXMuaWFkZG4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09eCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgUD0wO1A8dGhp''@;'; + put 'put ''cy5sZW5ndGgmJnRoaXMud29yZHNbUF08MDtQKyspdGhpcy53b3Jkc1tQXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tQKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih4KX0sTi5wcm90b3R5cGUu''@;'; + put 'put ''c3Vibj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHgpfSxOLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxOLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sTi5wcm90''@;'; + put 'put ''b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxTO3RoaXMuX2V4cGFuZCh4Lmxlbmd0aCtWKTt2YXIgeWU9MDtmb3IoVD0wO1Q8eC5sZW5ndGg7VCsrKXtTPSgwfHRoaXMud29yZHNbVCtWXSkreWU7dmFyIENlPSgwfHgud29yZHNbVF0pKlA7eWU9KChTLT02NzEwODg2''@;'; + put 'put ''MyZDZSk+PjI2KS0oQ2UvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tUK1ZdPTY3MTA4ODYzJlN9Zm9yKDtUPHRoaXMubGVuZ3RoLVY7VCsrKXllPShTPSgwfHRoaXMud29yZHNbVCtWXSkreWUpPj4yNix0aGlzLndvcmRzW1QrVl09NjcxMDg4NjMmUztpZigwPT09eWUpcmV0dXJuIHRoaXMuc3Ry''@;'; + put 'put ''aXAoKTtmb3IoWSgtMT09PXllKSx5ZT0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl5ZT0oUz0tKDB8dGhpcy53b3Jkc1tUXSkreWUpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl93b3JkRGl2PWZ1''@;'; + put 'put ''bmN0aW9uKHgsUCl7dmFyIFYsVD10aGlzLmNsb25lKCksUz14LEY9MHxTLndvcmRzW1MubGVuZ3RoLTFdOzAhPShWPTI2LXRoaXMuX2NvdW50Qml0cyhGKSkmJihTPVMudXNobG4oViksVC5pdXNobG4oViksRj0wfFMud29yZHNbUy5sZW5ndGgtMV0pO3ZhciB5ZSxDZT1ULmxlbmd0aC1TLmxl''@;'; + put 'put ''bmd0aDtpZigibW9kIiE9PVApeyh5ZT1uZXcgTihudWxsKSkubGVuZ3RoPUNlKzEseWUud29yZHM9bmV3IEFycmF5KHllLmxlbmd0aCk7Zm9yKHZhciBEZT0wO0RlPHllLmxlbmd0aDtEZSsrKXllLndvcmRzW0RlXT0wfXZhciBQZT1ULmNsb25lKCkuX2lzaGxuc3VibXVsKFMsMSxDZSk7MD09''@;'; + put 'put ''PVBlLm5lZ2F0aXZlJiYoVD1QZSx5ZSYmKHllLndvcmRzW0NlXT0xKSk7Zm9yKHZhciBRZT1DZS0xO1FlPj0wO1FlLS0pe3ZhciAkZT02NzEwODg2NCooMHxULndvcmRzW1MubGVuZ3RoK1FlXSkrKDB8VC53b3Jkc1tTLmxlbmd0aCtRZS0xXSk7Zm9yKCRlPU1hdGgubWluKCRlL0Z8MCw2NzEw''@;'; + put 'put ''ODg2MyksVC5faXNobG5zdWJtdWwoUywkZSxRZSk7MCE9PVQubmVnYXRpdmU7KSRlLS0sVC5uZWdhdGl2ZT0wLFQuX2lzaGxuc3VibXVsKFMsMSxRZSksVC5pc1plcm8oKXx8KFQubmVnYXRpdmVePTEpO3llJiYoeWUud29yZHNbUWVdPSRlKX1yZXR1cm4geWUmJnllLnN0cmlwKCksVC5zdHJp''@;'; + put 'put ''cCgpLCJkaXYiIT09UCYmMCE9PVYmJlQuaXVzaHJuKFYpLHtkaXY6eWV8fG51bGwsbW9kOlR9fSxOLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKCF4LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IE4oMCksbW9kOm5ldyBOKDApfTowIT09dGhpcy5u''@;'; + put 'put ''ZWdhdGl2ZSYmMD09PXgubmVnYXRpdmU/KEY9dGhpcy5uZWcoKS5kaXZtb2QoeCxQKSwibW9kIiE9PVAmJihUPUYuZGl2Lm5lZygpKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlhZGQoeCkpLHtkaXY6VCxtb2Q6U30pOjA9PT10aGlzLm5lZ2F0aXZl''@;'; + put 'put ''JiYwIT09eC5uZWdhdGl2ZT8oRj10aGlzLmRpdm1vZCh4Lm5lZygpLFApLCJtb2QiIT09UCYmKFQ9Ri5kaXYubmVnKCkpLHtkaXY6VCxtb2Q6Ri5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ4Lm5lZ2F0aXZlKT8oRj10aGlzLm5lZygpLmRpdm1vZCh4Lm5lZygpLFApLCJkaXYiIT09UCYmKFM9''@;'; + put 'put ''Ri5tb2QubmVnKCksViYmMCE9PVMubmVnYXRpdmUmJlMuaXN1Yih4KSkse2RpdjpGLmRpdixtb2Q6U30pOngubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh4KTwwP3tkaXY6bmV3IE4oMCksbW9kOnRoaXN9OjE9PT14Lmxlbmd0aD8iZGl2Ij09PVA/e2Rpdjp0aGlzLmRpdm4oeC53b3Jk''@;'; + put 'put ''c1swXSksbW9kOm51bGx9OiJtb2QiPT09UD97ZGl2Om51bGwsbW9kOm5ldyBOKHRoaXMubW9kbih4LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KHgsUCk7dmFyIFQsUyxGfSxOLnBy''@;'; + put 'put ''b3RvdHlwZS5kaXY9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsImRpdiIsITEpLmRpdn0sTi5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCExKS5tb2R9LE4ucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''ZGl2bW9kKHgsIm1vZCIsITApLm1vZH0sTi5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5kaXZtb2QoeCk7aWYoUC5tb2QuaXNaZXJvKCkpcmV0dXJuIFAuZGl2O3ZhciBWPTAhPT1QLmRpdi5uZWdhdGl2ZT9QLm1vZC5pc3ViKHgpOlAubW9kLFQ9eC51c2hybigx''@;'; + put 'put ''KSxTPXguYW5kbG4oMSksRj1WLmNtcChUKTtyZXR1cm4gRjwwfHwxPT09UyYmMD09PUY/UC5kaXY6MCE9PVAuZGl2Lm5lZ2F0aXZlP1AuZGl2LmlzdWJuKDEpOlAuZGl2LmlhZGRuKDEpfSxOLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHgpe1koeDw9NjcxMDg4NjMpO2Zvcih2YXIgUD02NzEw''@;'; + put 'put ''ODg2NCV4LFY9MCxUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pVj0oUCpWKygwfHRoaXMud29yZHNbVF0pKSV4O3JldHVybiBWfSxOLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9MCxWPXRoaXMubGVuZ3RoLTE7Vj49MDtWLS0pe3ZhciBUPSgw''@;'; + put 'put ''fHRoaXMud29yZHNbVl0pKzY3MTA4ODY0KlA7dGhpcy53b3Jkc1tWXT1UL3h8MCxQPVQleH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oeCl9LE4ucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oeCl7WSgw''@;'; + put 'put ''PT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAhPT1QLm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBUPW5ldyBOKDEpLFM9bmV3IE4oMCksRj1uZXcgTigwKSx5ZT1uZXcgTigxKSxDZT0wO1AuaXNFdmVuKCkmJlYuaXNF''@;'; + put 'put ''dmVuKCk7KVAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpLCsrQ2U7Zm9yKHZhciBEZT1WLmNsb25lKCksUGU9UC5jbG9uZSgpOyFQLmlzWmVybygpOyl7Zm9yKHZhciBRZT0wLCRlPTE7MD09KFAud29yZHNbMF0mJGUpJiZRZTwyNjsrK1FlLCRlPDw9MSk7aWYoUWU+MClmb3IoUC5pdXNocm4oUWUp''@;'; + put 'put ''O1FlLS0gPjA7KShULmlzT2RkKCl8fFMuaXNPZGQoKSkmJihULmlhZGQoRGUpLFMuaXN1YihQZSkpLFQuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcih2YXIgZ3Q9MCx3dD0xOzA9PShWLndvcmRzWzBdJnd0KSYmZ3Q8MjY7KytndCx3dDw8PTEpO2lmKGd0PjApZm9yKFYuaXVzaHJuKGd0KTtn''@;'; + put 'put ''dC0tID4wOykoRi5pc09kZCgpfHx5ZS5pc09kZCgpKSYmKEYuaWFkZChEZSkseWUuaXN1YihQZSkpLEYuaXVzaHJuKDEpLHllLml1c2hybigxKTtQLmNtcChWKT49MD8oUC5pc3ViKFYpLFQuaXN1YihGKSxTLmlzdWIoeWUpKTooVi5pc3ViKFApLEYuaXN1YihUKSx5ZS5pc3ViKFMpKX1yZXR1''@;'; + put 'put ''cm57YTpGLGI6eWUsZ2NkOlYuaXVzaGxuKENlKX19LE4ucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlKSxZKCF4LmlzWmVybygpKTt2YXIgUD10aGlzLFY9eC5jbG9uZSgpO1A9MCE9PVAubmVnYXRpdmU/UC51bW9kKHgpOlAuY2xvbmUoKTtmb3IodmFyIFQs''@;'; + put 'put ''Uz1uZXcgTigxKSxGPW5ldyBOKDApLHllPVYuY2xvbmUoKTtQLmNtcG4oMSk+MCYmVi5jbXBuKDEpPjA7KXtmb3IodmFyIENlPTAsRGU9MTswPT0oUC53b3Jkc1swXSZEZSkmJkNlPDI2OysrQ2UsRGU8PD0xKTtpZihDZT4wKWZvcihQLml1c2hybihDZSk7Q2UtLSA+MDspUy5pc09kZCgpJiZT''@;'; + put 'put ''LmlhZGQoeWUpLFMuaXVzaHJuKDEpO2Zvcih2YXIgUGU9MCxRZT0xOzA9PShWLndvcmRzWzBdJlFlKSYmUGU8MjY7KytQZSxRZTw8PTEpO2lmKFBlPjApZm9yKFYuaXVzaHJuKFBlKTtQZS0tID4wOylGLmlzT2RkKCkmJkYuaWFkZCh5ZSksRi5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1''@;'; + put 'put ''YihWKSxTLmlzdWIoRikpOihWLmlzdWIoUCksRi5pc3ViKFMpKX1yZXR1cm4oVD0wPT09UC5jbXBuKDEpP1M6RikuY21wbigwKTwwJiZULmlhZGQoeCksVH0sTi5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKHgpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIHguYWJzKCk7aWYoeC5pc1plcm8oKSly''@;'; + put 'put ''ZXR1cm4gdGhpcy5hYnMoKTt2YXIgUD10aGlzLmNsb25lKCksVj14LmNsb25lKCk7UC5uZWdhdGl2ZT0wLFYubmVnYXRpdmU9MDtmb3IodmFyIFQ9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpO1QrKylQLml1c2hybigxKSxWLml1c2hybigxKTtmb3IoOzspe2Zvcig7UC5pc0V2ZW4oKTspUC5p''@;'; + put 'put ''dXNocm4oMSk7Zm9yKDtWLmlzRXZlbigpOylWLml1c2hybigxKTt2YXIgUz1QLmNtcChWKTtpZihTPDApe3ZhciBGPVA7UD1WLFY9Rn1lbHNlIGlmKDA9PT1TfHwwPT09Vi5jbXBuKDEpKWJyZWFrO1AuaXN1YihWKX1yZXR1cm4gVi5pdXNobG4oVCl9LE4ucHJvdG90eXBlLmludm09ZnVuY3Rp''@;'; + put 'put ''b24oeCl7cmV0dXJuIHRoaXMuZWdjZCh4KS5hLnVtb2QoeCl9LE4ucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBl''@;'; + put 'put ''LmFuZGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLndvcmRzWzBdJnh9LE4ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KTt2YXIgUD14JTI2LFY9KHgtUCkvMjYsVD0xPDxQO2lmKHRoaXMubGVuZ3RoPD1WKXJldHVybiB0aGlzLl9leHBhbmQoVisx''@;'; + put 'put ''KSx0aGlzLndvcmRzW1ZdfD1ULHRoaXM7Zm9yKHZhciBTPVQsRj1WOzAhPT1TJiZGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPTB8dGhpcy53b3Jkc1tGXTtTPSh5ZSs9Uyk+Pj4yNix0aGlzLndvcmRzW0ZdPXllJj02NzEwODg2M31yZXR1cm4gMCE9PVMmJih0aGlzLndvcmRzW0ZdPVMsdGhp''@;'; + put 'put ''cy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LE4ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oeCl7dmFyIFAsVj14PDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFWKXJldHVybi0x''@;'; + put 'put ''O2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZWKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKVA9MTtlbHNle1YmJih4PS14KSxZKHg8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBUPTB8dGhpcy53b3Jkc1swXTtQPVQ9PT14PzA6VDx4Py0xOjF9cmV0dXJu''@;'; + put 'put ''IDAhPT10aGlzLm5lZ2F0aXZlPzB8LVA6UH0sTi5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHgpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmUpcmV0dXJuIDE7dmFyIFA9dGhpcy51Y21wKHgp''@;'; + put 'put ''O3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oeCl7aWYodGhpcy5sZW5ndGg+eC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8eC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBQPTAsVj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0t''@;'; + put 'put ''KXt2YXIgVD0wfHRoaXMud29yZHNbVl0sUz0wfHgud29yZHNbVl07aWYoVCE9PVMpe1Q8Uz9QPS0xOlQ+UyYmKFA9MSk7YnJlYWt9fXJldHVybiBQfSxOLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHgp''@;'; + put 'put ''e3JldHVybiAxPT09dGhpcy5jbXAoeCl9LE4ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wbih4KT49MH0sTi5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcCh4KT49MH0sTi5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHgpe3JldHVybi0x''@;'; + put 'put ''PT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5sdD1mdW5jdGlvbih4KXtyZXR1cm4tMT09PXRoaXMuY21wKHgpfSxOLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk8PTB9LE4ucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAo''@;'; + put 'put ''eCk8PTB9LE4ucHJvdG90eXBlLmVxbj1mdW5jdGlvbih4KXtyZXR1cm4gMD09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcCh4KX0sTi5yZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyBuZSh4KX0sTi5wcm90b3R5cGUudG9SZWQ9''@;'; + put 'put ''ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksWSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSx4LmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoeCl9LE4ucHJvdG90''@;'; + put 'put ''eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxOLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMucmVkPXgsdGhpc30sTi5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbih4KXtyZXR1''@;'; + put 'put ''cm4gWSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRo''@;'; + put 'put ''aXMucmVkLmlhZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oeCl7cmV0''@;'; + put 'put ''dXJuIFkodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0''@;'; + put 'put ''aGlzLnJlZC5zaGwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx4KSx0aGlzLnJlZC5tdWwodGhpcyx4KX0sTi5wcm90b3R5''@;'; + put 'put ''cGUucmVkSU11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMseCksdGhpcy5yZWQuaW11bCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''WSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0''@;'; + put 'put ''aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5''@;'; + put 'put ''MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxOLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sTi5w''@;'; + put 'put ''cm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LE4ucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbih4KXtyZXR1cm4g''@;'; + put 'put ''WSh0aGlzLnJlZCYmIXgucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLHgpfTt2YXIgSWU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBUZSh4LFApe3RoaXMubmFtZT14''@;'; + put 'put ''LHRoaXMucD1uZXcgTihQLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgTigxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gRWUoKXtUZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBm''@;'; + put 'put ''ZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIGhlKCl7VGUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBP''@;'; + put 'put ''KCl7VGUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiB6KCl7VGUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZm''@;'; + put 'put ''IGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBuZSh4KXtpZigic3RyaW5nIj09dHlwZW9mIHgpe3ZhciBQPU4uX3ByaW1lKHgpO3RoaXMubT1QLnAsdGhpcy5wcmltZT1QfWVsc2UgWSh4Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXgsdGhpcy5w''@;'; + put 'put ''cmltZT1udWxsfWZ1bmN0aW9uIHRlKHgpe25lLmNhbGwodGhpcyx4KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBOKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRo''@;'; + put 'put ''aXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlz''@;'; + put 'put ''Lm1pbnYpfVRlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHg9bmV3IE4obnVsbCk7cmV0dXJuIHgud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx4fSxUZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbih4KXt2YXIgUCxWPXg7ZG97dGhpcy5zcGxpdChWLHRo''@;'; + put 'put ''aXMudG1wKSxQPShWPShWPXRoaXMuaW11bEsoVikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShQPnRoaXMubik7dmFyIFQ9UDx0aGlzLm4/LTE6Vi51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1UPyhWLndvcmRzWzBdPTAsVi5sZW5ndGg9MSk6VD4wP1YuaXN1Yih0aGlzLnAp''@;'; + put 'put ''OnZvaWQgMCE9PVYuc3RyaXA/Vi5zdHJpcCgpOlYuX3N0cmlwKCksVn0sVGUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHgsUCl7eC5pdXNocm4odGhpcy5uLDAsUCl9LFRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtyZXR1cm4geC5pbXVsKHRoaXMuayl9LFcoRWUsVGUpLEVlLnBy''@;'; + put 'put ''b3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj00MTk0MzAzLFQ9TWF0aC5taW4oeC5sZW5ndGgsOSksUz0wO1M8VDtTKyspUC53b3Jkc1tTXT14LndvcmRzW1NdO2lmKFAubGVuZ3RoPVQseC5sZW5ndGg8PTkpcmV0dXJuIHgud29yZHNbMF09MCx2b2lkKHgubGVuZ3RoPTEp''@;'; + put 'put ''O3ZhciBGPXgud29yZHNbOV07Zm9yKFAud29yZHNbUC5sZW5ndGgrK109RiZWLFM9MTA7Uzx4Lmxlbmd0aDtTKyspe3ZhciB5ZT0wfHgud29yZHNbU107eC53b3Jkc1tTLTEwXT0oeWUmVik8PDR8Rj4+PjIyLEY9eWV9eC53b3Jkc1tTLTEwXT1GPj4+PTIyLHgubGVuZ3RoLT0wPT09RiYmeC5s''@;'; + put 'put ''ZW5ndGg+MTA/MTA6OX0sRWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe3gud29yZHNbeC5sZW5ndGhdPTAseC53b3Jkc1t4Lmxlbmd0aCsxXT0wLHgubGVuZ3RoKz0yO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MHx4LndvcmRzW1ZdO3gud29yZHNbVl09Njcx''@;'; + put 'put ''MDg4NjMmKFArPTk3NypUKSxQPTY0KlQrKFAvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT14LndvcmRzW3gubGVuZ3RoLTFdJiYoeC5sZW5ndGgtLSwwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmeC5sZW5ndGgtLSkseH0sVyhoZSxUZSksVyhPLFRlKSxXKHosVGUpLHoucHJvdG90eXBlLmltdWxL''@;'; + put 'put ''PWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MTkqKDB8eC53b3Jkc1tWXSkrUCxTPTY3MTA4ODYzJlQ7VD4+Pj0yNix4LndvcmRzW1ZdPVMsUD1UfXJldHVybiAwIT09UCYmKHgud29yZHNbeC5sZW5ndGgrK109UCkseH0sTi5fcHJpbWU9ZnVuY3Rp''@;'; + put 'put ''b24oeCl7aWYoSWVbeF0pcmV0dXJuIEllW3hdO3ZhciBQO2lmKCJrMjU2Ij09PXgpUD1uZXcgRWU7ZWxzZSBpZigicDIyNCI9PT14KVA9bmV3IGhlO2Vsc2UgaWYoInAxOTIiPT09eClQPW5ldyBPO2Vsc2V7aWYoInAyNTUxOSIhPT14KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAi''@;'; + put 'put ''K3gpO1A9bmV3IHp9cmV0dXJuIEllW3hdPVAsUH0sbmUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksWSh4LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxuZS5wcm90''@;'; + put 'put ''b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oeCxQKXtZKDA9PSh4Lm5lZ2F0aXZlfFAubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQmJngucmVkPT09UC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sbmUucHJvdG90eXBlLmlt''@;'; + put 'put ''b2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKHgpLl9mb3JjZVJlZCh0aGlzKTp4LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oeCl7cmV0dXJuIHguaXNaZXJvKCk/eC5jbG9uZSgpOnRoaXMu''@;'; + put 'put ''bS5zdWIoeCkuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLmlh''@;'; + put 'put ''ZGQ9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5pYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWfSxuZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguc3ViKFApO3JldHVy''@;'; + put 'put ''biBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaXN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0aGlzLm0pLFZ9LG5lLnByb3RvdHlw''@;'; + put 'put ''ZS5zaGw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh4KSx0aGlzLmltb2QoeC51c2hsbihQKSl9LG5lLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoeCxQKSx0aGlzLmltb2QoeC5pbXVsKFApKX0sbmUucHJvdG90eXBlLm11bD1m''@;'; + put 'put ''dW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCksdGhpcy5pbW9kKHgubXVsKFApKX0sbmUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW11bCh4LHguY2xvbmUoKSl9LG5lLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubXVs''@;'; + put 'put ''KHgseCl9LG5lLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHgpe2lmKHguaXNaZXJvKCkpcmV0dXJuIHguY2xvbmUoKTt2YXIgUD10aGlzLm0uYW5kbG4oMyk7aWYoWShQJTI9PTEpLDM9PT1QKXt2YXIgVj10aGlzLm0uYWRkKG5ldyBOKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHgs''@;'; + put 'put ''Vil9Zm9yKHZhciBUPXRoaXMubS5zdWJuKDEpLFM9MDshVC5pc1plcm8oKSYmMD09PVQuYW5kbG4oMSk7KVMrKyxULml1c2hybigxKTtZKCFULmlzWmVybygpKTt2YXIgRj1uZXcgTigxKS50b1JlZCh0aGlzKSx5ZT1GLnJlZE5lZygpLENlPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxEZT10''@;'; + put 'put ''aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKERlPW5ldyBOKDIqRGUqRGUpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhEZSxDZSkuY21wKHllKTspRGUucmVkSUFkZCh5ZSk7Zm9yKHZhciBQZT10aGlzLnBvdyhEZSxUKSxRZT10aGlzLnBvdyh4LFQuYWRkbigxKS5pdXNocm4oMSkpLCRlPXRoaXMu''@;'; + put 'put ''cG93KHgsVCksZ3Q9UzswIT09JGUuY21wKEYpOyl7Zm9yKHZhciB3dD0kZSx2dD0wOzAhPT13dC5jbXAoRik7dnQrKyl3dD13dC5yZWRTcXIoKTtZKHZ0PGd0KTt2YXIgQXQ9dGhpcy5wb3coUGUsbmV3IE4oMSkuaXVzaGxuKGd0LXZ0LTEpKTtRZT1RZS5yZWRNdWwoQXQpLFBlPUF0LnJlZFNx''@;'; + put 'put ''cigpLCRlPSRlLnJlZE11bChQZSksZ3Q9dnR9cmV0dXJuIFFlfSxuZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXt2YXIgUD14Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09UC5uZWdhdGl2ZT8oUC5uZWdhdGl2ZT0wLHRoaXMuaW1vZChQKS5yZWROZWcoKSk6dGhpcy5pbW9kKFApfSxu''@;'; + put 'put ''ZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgsUCl7aWYoUC5pc1plcm8oKSlyZXR1cm4gbmV3IE4oMSkudG9SZWQodGhpcyk7aWYoMD09PVAuY21wbigxKSlyZXR1cm4geC5jbG9uZSgpO3ZhciBWPW5ldyBBcnJheSgxNik7VlswXT1uZXcgTigxKS50b1JlZCh0aGlzKSxWWzFdPXg7Zm9yKHZh''@;'; + put 'put ''ciBUPTI7VDxWLmxlbmd0aDtUKyspVltUXT10aGlzLm11bChWW1QtMV0seCk7dmFyIFM9VlswXSxGPTAseWU9MCxDZT1QLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09Q2UmJihDZT0yNiksVD1QLmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIERlPVAud29yZHNbVF0sUGU9Q2UtMTtQZT49MDtQ''@;'; + put 'put ''ZS0tKXt2YXIgUWU9RGU+PlBlJjE7UyE9PVZbMF0mJihTPXRoaXMuc3FyKFMpKSwwIT09UWV8fDAhPT1GPyhGPDw9MSxGfD1RZSwoND09Kyt5ZXx8MD09PVQmJjA9PT1QZSkmJihTPXRoaXMubXVsKFMsVltGXSkseWU9MCxGPTApKTp5ZT0wfUNlPTI2fXJldHVybiBTfSxuZS5wcm90b3R5cGUu''@;'; + put 'put ''Y29udmVydFRvPWZ1bmN0aW9uKHgpe3ZhciBQPXgudW1vZCh0aGlzLm0pO3JldHVybiBQPT09eD9QLmNsb25lKCk6UH0sbmUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHgpe3ZhciBQPXguY2xvbmUoKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSxOLm1vbnQ9ZnVuY3Rpb24oeCl7cmV0''@;'; + put 'put ''dXJuIG5ldyB0ZSh4KX0sVyh0ZSxuZSksdGUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHgudXNobG4odGhpcy5zaGlmdCkpfSx0ZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5pbW9kKHgubXVsKHRoaXMucmlu''@;'; + put 'put ''dikpO3JldHVybiBQLnJlZD1udWxsLFB9LHRlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7aWYoeC5pc1plcm8oKXx8UC5pc1plcm8oKSlyZXR1cm4geC53b3Jkc1swXT0wLHgubGVuZ3RoPTEseDt2YXIgVj14LmltdWwoUCksVD1WLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1p''@;'; + put 'put ''bnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5zaGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxGLl9mb3JjZVJlZCh0aGlzKX0sdGUu''@;'; + put 'put ''cHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgVj14Lm11bChQKSxUPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlz''@;'; + put 'put ''Lm0pLFM9Vi5pc3ViKFQpLml1c2hybih0aGlzLnNoaWZ0KSxGPVM7cmV0dXJuIFMuY21wKHRoaXMubSk+PTA/Rj1TLmlzdWIodGhpcy5tKTpTLmNtcG4oMCk8MCYmKEY9Uy5pYWRkKHRoaXMubSkpLEYuX2ZvcmNlUmVkKHRoaXMpfSx0ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5pbW9kKHguX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShVPVoubm1kKFUpLHRoaXMpfSw2OTQ4OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVE7aWUudmVyc2lvbj1aKDg1OTcpLmk4LGllLnV0aWxzPVooOTUzKSxpZS5yYW5kPVoo''@;'; + put 'put ''OTkzMSksaWUuY3VydmU9Wig4MjU0KSxpZS5jdXJ2ZXM9Wig1NDI3KSxpZS5lYz1aKDc5NTQpLGllLmVkZHNhPVooNTk4MCl9LDQ5MTg6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9WigzNzg1KSxsZT1aKDk1MyksWT1sZS5nZXROQUYsVz1sZS5nZXRKU0YsTj1sZS5hc3NlcnQ7ZnVu''@;'; + put 'put ''Y3Rpb24gZWUoSixzZSl7dGhpcy50eXBlPUosdGhpcy5wPW5ldyBpZShzZS5wLDE2KSx0aGlzLnJlZD1zZS5wcmltZT9pZS5yZWQoc2UucHJpbWUpOmllLm1vbnQodGhpcy5wKSx0aGlzLnplcm89bmV3IGllKDApLnRvUmVkKHRoaXMucmVkKSx0aGlzLm9uZT1uZXcgaWUoMSkudG9SZWQodGhp''@;'; + put 'put ''cy5yZWQpLHRoaXMudHdvPW5ldyBpZSgyKS50b1JlZCh0aGlzLnJlZCksdGhpcy5uPXNlLm4mJm5ldyBpZShzZS5uLDE2KSx0aGlzLmc9c2UuZyYmdGhpcy5wb2ludEZyb21KU09OKHNlLmcsc2UuZ1JlZCksdGhpcy5fd25hZlQxPW5ldyBBcnJheSg0KSx0aGlzLl93bmFmVDI9bmV3IEFycmF5''@;'; + put 'put ''KDQpLHRoaXMuX3duYWZUMz1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQ0PW5ldyBBcnJheSg0KSx0aGlzLl9iaXRMZW5ndGg9dGhpcy5uP3RoaXMubi5iaXRMZW5ndGgoKTowO3ZhciBvZT10aGlzLm4mJnRoaXMucC5kaXYodGhpcy5uKTshb2V8fG9lLmNtcG4oMTAwKT4wP3RoaXMucmVkTj1u''@;'; + put 'put ''dWxsOih0aGlzLl9tYXh3ZWxsVHJpY2s9ITAsdGhpcy5yZWROPXRoaXMubi50b1JlZCh0aGlzLnJlZCkpfWZ1bmN0aW9uIHEoSixzZSl7dGhpcy5jdXJ2ZT1KLHRoaXMudHlwZT1zZSx0aGlzLnByZWNvbXB1dGVkPW51bGx9VS5leHBvcnRzPWVlLGVlLnByb3RvdHlwZS5wb2ludD1mdW5jdGlv''@;'; + put 'put ''bigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9LGVlLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9LGVlLnByb3RvdHlwZS5fZml4ZWROYWZNdWw9ZnVuY3Rpb24oSixzZSl7TihKLnByZWNvbXB1dGVk''@;'; + put 'put ''KTt2YXIgb2U9Si5fZ2V0RG91YmxlcygpLGNlPVkoc2UsMSx0aGlzLl9iaXRMZW5ndGgpLGRlPSgxPDxvZS5zdGVwKzEpLShvZS5zdGVwJTI9PTA/MjoxKTtkZS89Mzt2YXIgdmUsQWUsa2U9W107Zm9yKHZlPTA7dmU8Y2UubGVuZ3RoO3ZlKz1vZS5zdGVwKXtBZT0wO2Zvcih2YXIgU2U9dmUr''@;'; + put 'put ''b2Uuc3RlcC0xO1NlPj12ZTtTZS0tKUFlPShBZTw8MSkrY2VbU2VdO2tlLnB1c2goQWUpfWZvcih2YXIgSWU9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLFRlPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxFZT1kZTtFZT4wO0VlLS0pe2Zvcih2ZT0wO3ZlPGtlLmxlbmd0aDt2ZSsr''@;'; + put 'put ''KShBZT1rZVt2ZV0pPT09RWU/VGU9VGUubWl4ZWRBZGQob2UucG9pbnRzW3ZlXSk6QWU9PT0tRWUmJihUZT1UZS5taXhlZEFkZChvZS5wb2ludHNbdmVdLm5lZygpKSk7SWU9SWUuYWRkKFRlKX1yZXR1cm4gSWUudG9QKCl9LGVlLnByb3RvdHlwZS5fd25hZk11bD1mdW5jdGlvbihKLHNlKXtm''@;'; + put 'put ''b3IodmFyIG9lPTQsY2U9Si5fZ2V0TkFGUG9pbnRzKG9lKSxkZT1jZS5wb2ludHMsdmU9WShzZSxvZT1jZS53bmQsdGhpcy5fYml0TGVuZ3RoKSxBZT10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCksa2U9dmUubGVuZ3RoLTE7a2U+PTA7a2UtLSl7Zm9yKHZhciBTZT0wO2tlPj0wJiYwPT09''@;'; + put 'put ''dmVba2VdO2tlLS0pU2UrKztpZihrZT49MCYmU2UrKyxBZT1BZS5kYmxwKFNlKSxrZTwwKWJyZWFrO3ZhciBJZT12ZVtrZV07TigwIT09SWUpLEFlPSJhZmZpbmUiPT09Si50eXBlP0FlLm1peGVkQWRkKEllPjA/ZGVbSWUtMT4+MV06ZGVbLUllLTE+PjFdLm5lZygpKTpBZS5hZGQoSWU+MD9k''@;'; + put 'put ''ZVtJZS0xPj4xXTpkZVstSWUtMT4+MV0ubmVnKCkpfXJldHVybiJhZmZpbmUiPT09Si50eXBlP0FlLnRvUCgpOkFlfSxlZS5wcm90b3R5cGUuX3duYWZNdWxBZGQ9ZnVuY3Rpb24oSixzZSxvZSxjZSxkZSl7dmFyIHZlLEFlLGtlLFNlPXRoaXMuX3duYWZUMSxJZT10aGlzLl93bmFmVDIsVGU9''@;'; + put 'put ''dGhpcy5fd25hZlQzLEVlPTA7Zm9yKHZlPTA7dmU8Y2U7dmUrKyl7dmFyIGhlPShrZT1zZVt2ZV0pLl9nZXROQUZQb2ludHMoSik7U2VbdmVdPWhlLnduZCxJZVt2ZV09aGUucG9pbnRzfWZvcih2ZT1jZS0xO3ZlPj0xO3ZlLT0yKXt2YXIgTz12ZS0xLHo9dmU7aWYoMT09PVNlW09dJiYxPT09''@;'; + put 'put ''U2Vbel0pe3ZhciBuZT1bc2VbT10sbnVsbCxudWxsLHNlW3pdXTswPT09c2VbT10ueS5jbXAoc2Vbel0ueSk/KG5lWzFdPXNlW09dLmFkZChzZVt6XSksbmVbMl09c2VbT10udG9KKCkubWl4ZWRBZGQoc2Vbel0ubmVnKCkpKTowPT09c2VbT10ueS5jbXAoc2Vbel0ueS5yZWROZWcoKSk/KG5l''@;'; + put 'put ''WzFdPXNlW09dLnRvSigpLm1peGVkQWRkKHNlW3pdKSxuZVsyXT1zZVtPXS5hZGQoc2Vbel0ubmVnKCkpKToobmVbMV09c2VbT10udG9KKCkubWl4ZWRBZGQoc2Vbel0pLG5lWzJdPXNlW09dLnRvSigpLm1peGVkQWRkKHNlW3pdLm5lZygpKSk7dmFyIHRlPVstMywtMSwtNSwtNywwLDcsNSwx''@;'; + put 'put ''LDNdLHg9VyhvZVtPXSxvZVt6XSk7Zm9yKEVlPU1hdGgubWF4KHhbMF0ubGVuZ3RoLEVlKSxUZVtPXT1uZXcgQXJyYXkoRWUpLFRlW3pdPW5ldyBBcnJheShFZSksQWU9MDtBZTxFZTtBZSsrKVRlW09dW0FlXT10ZVszKigxKygwfHhbMF1bQWVdKSkrKDErKDB8eFsxXVtBZV0pKV0sVGVbel1b''@;'; + put 'put ''QWVdPTAsSWVbT109bmV9ZWxzZSBUZVtPXT1ZKG9lW09dLFNlW09dLHRoaXMuX2JpdExlbmd0aCksVGVbel09WShvZVt6XSxTZVt6XSx0aGlzLl9iaXRMZW5ndGgpLEVlPU1hdGgubWF4KFRlW09dLmxlbmd0aCxFZSksRWU9TWF0aC5tYXgoVGVbel0ubGVuZ3RoLEVlKX12YXIgVD10aGlzLmpw''@;'; + put 'put ''b2ludChudWxsLG51bGwsbnVsbCksUz10aGlzLl93bmFmVDQ7Zm9yKHZlPUVlO3ZlPj0wO3ZlLS0pe2Zvcih2YXIgRj0wO3ZlPj0wOyl7dmFyIHllPSEwO2ZvcihBZT0wO0FlPGNlO0FlKyspU1tBZV09MHxUZVtBZV1bdmVdLDAhPT1TW0FlXSYmKHllPSExKTtpZigheWUpYnJlYWs7RisrLHZl''@;'; + put 'put ''LS19aWYodmU+PTAmJkYrKyxUPVQuZGJscChGKSx2ZTwwKWJyZWFrO2ZvcihBZT0wO0FlPGNlO0FlKyspe3ZhciBDZT1TW0FlXTswIT09Q2UmJihDZT4wP2tlPUllW0FlXVtDZS0xPj4xXTpDZTwwJiYoa2U9SWVbQWVdWy1DZS0xPj4xXS5uZWcoKSksVD0iYWZmaW5lIj09PWtlLnR5cGU/VC5t''@;'; + put 'put ''aXhlZEFkZChrZSk6VC5hZGQoa2UpKX19Zm9yKHZlPTA7dmU8Y2U7dmUrKylJZVt2ZV09bnVsbDtyZXR1cm4gZGU/VDpULnRvUCgpfSxlZS5CYXNlUG9pbnQ9cSxxLnByb3RvdHlwZS5lcT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9LHEucHJvdG90eXBl''@;'; + put 'put ''LnZhbGlkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VydmUudmFsaWRhdGUodGhpcyl9LGVlLnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbihKLHNlKXtKPWxlLnRvQXJyYXkoSixzZSk7dmFyIG9lPXRoaXMucC5ieXRlTGVuZ3RoKCk7aWYoKDQ9PT1KWzBdfHw2PT09SlswXXx8''@;'; + put 'put ''Nz09PUpbMF0pJiZKLmxlbmd0aC0xPT0yKm9lKXJldHVybiA2PT09SlswXT9OKEpbSi5sZW5ndGgtMV0lMj09MCk6Nz09PUpbMF0mJk4oSltKLmxlbmd0aC0xXSUyPT0xKSx0aGlzLnBvaW50KEouc2xpY2UoMSwxK29lKSxKLnNsaWNlKDErb2UsMSsyKm9lKSk7aWYoKDI9PT1KWzBdfHwzPT09''@;'; + put 'put ''SlswXSkmJkoubGVuZ3RoLTE9PT1vZSlyZXR1cm4gdGhpcy5wb2ludEZyb21YKEouc2xpY2UoMSwxK29lKSwzPT09SlswXSk7dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHBvaW50IGZvcm1hdCIpfSxxLnByb3RvdHlwZS5lbmNvZGVDb21wcmVzc2VkPWZ1bmN0aW9uKEope3JldHVybiB0aGlz''@;'; + put 'put ''LmVuY29kZShKLCEwKX0scS5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbihKKXt2YXIgc2U9dGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSxvZT10aGlzLmdldFgoKS50b0FycmF5KCJiZSIsc2UpO3JldHVybiBKP1t0aGlzLmdldFkoKS5pc0V2ZW4oKT8yOjNdLmNvbmNhdChvZSk6WzRdLmNv''@;'; + put 'put ''bmNhdChvZSx0aGlzLmdldFkoKS50b0FycmF5KCJiZSIsc2UpKX0scS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKEosc2Upe3JldHVybiBsZS5lbmNvZGUodGhpcy5fZW5jb2RlKHNlKSxKKX0scS5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbihKKXtpZih0aGlzLnByZWNvbXB1dGVk''@;'; + put 'put ''KXJldHVybiB0aGlzO3ZhciBzZT17ZG91YmxlczpudWxsLG5hZjpudWxsLGJldGE6bnVsbH07cmV0dXJuIHNlLm5hZj10aGlzLl9nZXROQUZQb2ludHMoOCksc2UuZG91Ymxlcz10aGlzLl9nZXREb3VibGVzKDQsSiksc2UuYmV0YT10aGlzLl9nZXRCZXRhKCksdGhpcy5wcmVjb21wdXRlZD1z''@;'; + put 'put ''ZSx0aGlzfSxxLnByb3RvdHlwZS5faGFzRG91Ymxlcz1mdW5jdGlvbihKKXtpZighdGhpcy5wcmVjb21wdXRlZClyZXR1cm4hMTt2YXIgc2U9dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO3JldHVybiEhc2UmJnNlLnBvaW50cy5sZW5ndGg+PU1hdGguY2VpbCgoSi5iaXRMZW5ndGgoKSsxKS9z''@;'; + put 'put ''ZS5zdGVwKX0scS5wcm90b3R5cGUuX2dldERvdWJsZXM9ZnVuY3Rpb24oSixzZSl7aWYodGhpcy5wcmVjb21wdXRlZCYmdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzKXJldHVybiB0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXM7Zm9yKHZhciBvZT1bdGhpc10sY2U9dGhpcyxkZT0wO2RlPHNlO2Rl''@;'; + put 'put ''Kz1KKXtmb3IodmFyIHZlPTA7dmU8Sjt2ZSsrKWNlPWNlLmRibCgpO29lLnB1c2goY2UpfXJldHVybntzdGVwOkoscG9pbnRzOm9lfX0scS5wcm90b3R5cGUuX2dldE5BRlBvaW50cz1mdW5jdGlvbihKKXtpZih0aGlzLnByZWNvbXB1dGVkJiZ0aGlzLnByZWNvbXB1dGVkLm5hZilyZXR1cm4g''@;'; + put 'put ''dGhpcy5wcmVjb21wdXRlZC5uYWY7Zm9yKHZhciBzZT1bdGhpc10sb2U9KDE8PEopLTEsY2U9MT09PW9lP251bGw6dGhpcy5kYmwoKSxkZT0xO2RlPG9lO2RlKyspc2VbZGVdPXNlW2RlLTFdLmFkZChjZSk7cmV0dXJue3duZDpKLHBvaW50czpzZX19LHEucHJvdG90eXBlLl9nZXRCZXRhPWZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIG51bGx9LHEucHJvdG90eXBlLmRibHA9ZnVuY3Rpb24oSil7Zm9yKHZhciBzZT10aGlzLG9lPTA7b2U8SjtvZSsrKXNlPXNlLmRibCgpO3JldHVybiBzZX19LDExMzg6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig5NTMpLGxlPVooMzc4NSksWT1aKDU3''@;'; + put 'put ''MTcpLFc9Wig0OTE4KSxOPWllLmFzc2VydDtmdW5jdGlvbiBlZShKKXt0aGlzLnR3aXN0ZWQ9MSE9KDB8Si5hKSx0aGlzLm1PbmVBPXRoaXMudHdpc3RlZCYmLTE9PSgwfEouYSksdGhpcy5leHRlbmRlZD10aGlzLm1PbmVBLFcuY2FsbCh0aGlzLCJlZHdhcmRzIixKKSx0aGlzLmE9bmV3IGxl''@;'; + put 'put ''KEouYSwxNikudW1vZCh0aGlzLnJlZC5tKSx0aGlzLmE9dGhpcy5hLnRvUmVkKHRoaXMucmVkKSx0aGlzLmM9bmV3IGxlKEouYywxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYzI9dGhpcy5jLnJlZFNxcigpLHRoaXMuZD1uZXcgbGUoSi5kLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5kZD10''@;'; + put 'put ''aGlzLmQucmVkQWRkKHRoaXMuZCksTighdGhpcy50d2lzdGVkfHwwPT09dGhpcy5jLmZyb21SZWQoKS5jbXBuKDEpKSx0aGlzLm9uZUM9MT09KDB8Si5jKX1mdW5jdGlvbiBxKEosc2Usb2UsY2UsZGUpe1cuQmFzZVBvaW50LmNhbGwodGhpcyxKLCJwcm9qZWN0aXZlIiksbnVsbD09PXNlJiZu''@;'; + put 'put ''dWxsPT09b2UmJm51bGw9PT1jZT8odGhpcy54PXRoaXMuY3VydmUuemVybyx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PXRoaXMuY3VydmUub25lLHRoaXMudD10aGlzLmN1cnZlLnplcm8sdGhpcy56T25lPSEwKToodGhpcy54PW5ldyBsZShzZSwxNiksdGhpcy55PW5ldyBsZShvZSwx''@;'; + put 'put ''NiksdGhpcy56PWNlP25ldyBsZShjZSwxNik6dGhpcy5jdXJ2ZS5vbmUsdGhpcy50PWRlJiZuZXcgbGUoZGUsMTYpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQp''@;'; + put 'put ''KSx0aGlzLnoucmVkfHwodGhpcy56PXRoaXMuei50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMudCYmIXRoaXMudC5yZWQmJih0aGlzLnQ9dGhpcy50LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56T25lPXRoaXMuej09PXRoaXMuY3VydmUub25lLHRoaXMuY3VydmUuZXh0ZW5kZWQm''@;'; + put 'put ''JiF0aGlzLnQmJih0aGlzLnQ9dGhpcy54LnJlZE11bCh0aGlzLnkpLHRoaXMuek9uZXx8KHRoaXMudD10aGlzLnQucmVkTXVsKHRoaXMuei5yZWRJbnZtKCkpKSkpfVkoZWUsVyksVS5leHBvcnRzPWVlLGVlLnByb3RvdHlwZS5fbXVsQT1mdW5jdGlvbihKKXtyZXR1cm4gdGhpcy5tT25lQT9K''@;'; + put 'put ''LnJlZE5lZygpOnRoaXMuYS5yZWRNdWwoSil9LGVlLnByb3RvdHlwZS5fbXVsQz1mdW5jdGlvbihKKXtyZXR1cm4gdGhpcy5vbmVDP0o6dGhpcy5jLnJlZE11bChKKX0sZWUucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbihKLHNlLG9lLGNlKXtyZXR1cm4gdGhpcy5wb2ludChKLHNlLG9lLGNl''@;'; + put 'put ''KX0sZWUucHJvdG90eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24oSixzZSl7KEo9bmV3IGxlKEosMTYpKS5yZWR8fChKPUoudG9SZWQodGhpcy5yZWQpKTt2YXIgb2U9Si5yZWRTcXIoKSxjZT10aGlzLmMyLnJlZFN1Yih0aGlzLmEucmVkTXVsKG9lKSksZGU9dGhpcy5vbmUucmVkU3ViKHRoaXMu''@;'; + put 'put ''YzIucmVkTXVsKHRoaXMuZCkucmVkTXVsKG9lKSksdmU9Y2UucmVkTXVsKGRlLnJlZEludm0oKSksQWU9dmUucmVkU3FydCgpO2lmKDAhPT1BZS5yZWRTcXIoKS5yZWRTdWIodmUpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3ZhciBrZT1BZS5mcm9t''@;'; + put 'put ''UmVkKCkuaXNPZGQoKTtyZXR1cm4oc2UmJiFrZXx8IXNlJiZrZSkmJihBZT1BZS5yZWROZWcoKSksdGhpcy5wb2ludChKLEFlKX0sZWUucHJvdG90eXBlLnBvaW50RnJvbVk9ZnVuY3Rpb24oSixzZSl7KEo9bmV3IGxlKEosMTYpKS5yZWR8fChKPUoudG9SZWQodGhpcy5yZWQpKTt2YXIgb2U9''@;'; + put 'put ''Si5yZWRTcXIoKSxjZT1vZS5yZWRTdWIodGhpcy5jMiksZGU9b2UucmVkTXVsKHRoaXMuZCkucmVkTXVsKHRoaXMuYzIpLnJlZFN1Yih0aGlzLmEpLHZlPWNlLnJlZE11bChkZS5yZWRJbnZtKCkpO2lmKDA9PT12ZS5jbXAodGhpcy56ZXJvKSl7aWYoc2UpdGhyb3cgbmV3IEVycm9yKCJpbnZh''@;'; + put 'put ''bGlkIHBvaW50Iik7cmV0dXJuIHRoaXMucG9pbnQodGhpcy56ZXJvLEopfXZhciBBZT12ZS5yZWRTcXJ0KCk7aWYoMCE9PUFlLnJlZFNxcigpLnJlZFN1Yih2ZSkuY21wKHRoaXMuemVybykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7cmV0dXJuIEFlLmZyb21SZWQoKS5pc09k''@;'; + put 'put ''ZCgpIT09c2UmJihBZT1BZS5yZWROZWcoKSksdGhpcy5wb2ludChBZSxKKX0sZWUucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKEope2lmKEouaXNJbmZpbml0eSgpKXJldHVybiEwO0oubm9ybWFsaXplKCk7dmFyIHNlPUoueC5yZWRTcXIoKSxvZT1KLnkucmVkU3FyKCksY2U9c2UucmVk''@;'; + put 'put ''TXVsKHRoaXMuYSkucmVkQWRkKG9lKSxkZT10aGlzLmMyLnJlZE11bCh0aGlzLm9uZS5yZWRBZGQodGhpcy5kLnJlZE11bChzZSkucmVkTXVsKG9lKSkpO3JldHVybiAwPT09Y2UuY21wKGRlKX0sWShxLFcuQmFzZVBvaW50KSxlZS5wcm90b3R5cGUucG9pbnRGcm9tSlNPTj1mdW5jdGlvbihK''@;'; + put 'put ''KXtyZXR1cm4gcS5mcm9tSlNPTih0aGlzLEopfSxlZS5wcm90b3R5cGUucG9pbnQ9ZnVuY3Rpb24oSixzZSxvZSxjZSl7cmV0dXJuIG5ldyBxKHRoaXMsSixzZSxvZSxjZSl9LHEuZnJvbUpTT049ZnVuY3Rpb24oSixzZSl7cmV0dXJuIG5ldyBxKEosc2VbMF0sc2VbMV0sc2VbMl0pfSxxLnBy''@;'; + put 'put ''b3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHo6''@;'; + put 'put ''ICIrdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LHEucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMueC5jbXBuKDApJiYoMD09PXRoaXMueS5jbXAodGhpcy56KXx8dGhpcy56T25lJiYwPT09dGhpcy55LmNtcCh0aGlzLmN1cnZlLmMp''@;'; + put 'put ''KX0scS5wcm90b3R5cGUuX2V4dERibD1mdW5jdGlvbigpe3ZhciBKPXRoaXMueC5yZWRTcXIoKSxzZT10aGlzLnkucmVkU3FyKCksb2U9dGhpcy56LnJlZFNxcigpO29lPW9lLnJlZElBZGQob2UpO3ZhciBjZT10aGlzLmN1cnZlLl9tdWxBKEopLGRlPXRoaXMueC5yZWRBZGQodGhpcy55KS5y''@;'; + put 'put ''ZWRTcXIoKS5yZWRJU3ViKEopLnJlZElTdWIoc2UpLHZlPWNlLnJlZEFkZChzZSksQWU9dmUucmVkU3ViKG9lKSxrZT1jZS5yZWRTdWIoc2UpLFNlPWRlLnJlZE11bChBZSksSWU9dmUucmVkTXVsKGtlKSxUZT1kZS5yZWRNdWwoa2UpLEVlPUFlLnJlZE11bCh2ZSk7cmV0dXJuIHRoaXMuY3Vy''@;'; + put 'put ''dmUucG9pbnQoU2UsSWUsRWUsVGUpfSxxLnByb3RvdHlwZS5fcHJvakRibD1mdW5jdGlvbigpe3ZhciBKLHNlLG9lLGNlLGRlLHZlLEFlPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRTcXIoKSxrZT10aGlzLngucmVkU3FyKCksU2U9dGhpcy55LnJlZFNxcigpO2lmKHRoaXMuY3VydmUudHdp''@;'; + put 'put ''c3RlZCl7dmFyIEllPShjZT10aGlzLmN1cnZlLl9tdWxBKGtlKSkucmVkQWRkKFNlKTt0aGlzLnpPbmU/KEo9QWUucmVkU3ViKGtlKS5yZWRTdWIoU2UpLnJlZE11bChJZS5yZWRTdWIodGhpcy5jdXJ2ZS50d28pKSxzZT1JZS5yZWRNdWwoY2UucmVkU3ViKFNlKSksb2U9SWUucmVkU3FyKCku''@;'; + put 'put ''cmVkU3ViKEllKS5yZWRTdWIoSWUpKTooZGU9dGhpcy56LnJlZFNxcigpLHZlPUllLnJlZFN1YihkZSkucmVkSVN1YihkZSksSj1BZS5yZWRTdWIoa2UpLnJlZElTdWIoU2UpLnJlZE11bCh2ZSksc2U9SWUucmVkTXVsKGNlLnJlZFN1YihTZSkpLG9lPUllLnJlZE11bCh2ZSkpfWVsc2UgY2U9''@;'; + put 'put ''a2UucmVkQWRkKFNlKSxkZT10aGlzLmN1cnZlLl9tdWxDKHRoaXMueikucmVkU3FyKCksdmU9Y2UucmVkU3ViKGRlKS5yZWRTdWIoZGUpLEo9dGhpcy5jdXJ2ZS5fbXVsQyhBZS5yZWRJU3ViKGNlKSkucmVkTXVsKHZlKSxzZT10aGlzLmN1cnZlLl9tdWxDKGNlKS5yZWRNdWwoa2UucmVkSVN1''@;'; + put 'put ''YihTZSkpLG9lPWNlLnJlZE11bCh2ZSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoSixzZSxvZSl9LHEucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuY3VydmUuZXh0ZW5kZWQ/dGhpcy5fZXh0RGJsKCk6dGhpcy5fcHJvakRibCgp''@;'; + put 'put ''fSxxLnByb3RvdHlwZS5fZXh0QWRkPWZ1bmN0aW9uKEope3ZhciBzZT10aGlzLnkucmVkU3ViKHRoaXMueCkucmVkTXVsKEoueS5yZWRTdWIoSi54KSksb2U9dGhpcy55LnJlZEFkZCh0aGlzLngpLnJlZE11bChKLnkucmVkQWRkKEoueCkpLGNlPXRoaXMudC5yZWRNdWwodGhpcy5jdXJ2ZS5k''@;'; + put 'put ''ZCkucmVkTXVsKEoudCksZGU9dGhpcy56LnJlZE11bChKLnoucmVkQWRkKEoueikpLHZlPW9lLnJlZFN1YihzZSksQWU9ZGUucmVkU3ViKGNlKSxrZT1kZS5yZWRBZGQoY2UpLFNlPW9lLnJlZEFkZChzZSksSWU9dmUucmVkTXVsKEFlKSxUZT1rZS5yZWRNdWwoU2UpLEVlPXZlLnJlZE11bChT''@;'; + put 'put ''ZSksaGU9QWUucmVkTXVsKGtlKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChJZSxUZSxoZSxFZSl9LHEucHJvdG90eXBlLl9wcm9qQWRkPWZ1bmN0aW9uKEope3ZhciBzZSxvZSxjZT10aGlzLnoucmVkTXVsKEoueiksZGU9Y2UucmVkU3FyKCksdmU9dGhpcy54LnJlZE11bChKLngpLEFlPXRo''@;'; + put 'put ''aXMueS5yZWRNdWwoSi55KSxrZT10aGlzLmN1cnZlLmQucmVkTXVsKHZlKS5yZWRNdWwoQWUpLFNlPWRlLnJlZFN1YihrZSksSWU9ZGUucmVkQWRkKGtlKSxUZT10aGlzLngucmVkQWRkKHRoaXMueSkucmVkTXVsKEoueC5yZWRBZGQoSi55KSkucmVkSVN1Yih2ZSkucmVkSVN1YihBZSksRWU9''@;'; + put 'put ''Y2UucmVkTXVsKFNlKS5yZWRNdWwoVGUpO3JldHVybiB0aGlzLmN1cnZlLnR3aXN0ZWQ/KHNlPWNlLnJlZE11bChJZSkucmVkTXVsKEFlLnJlZFN1Yih0aGlzLmN1cnZlLl9tdWxBKHZlKSkpLG9lPVNlLnJlZE11bChJZSkpOihzZT1jZS5yZWRNdWwoSWUpLnJlZE11bChBZS5yZWRTdWIodmUp''@;'; + put 'put ''KSxvZT10aGlzLmN1cnZlLl9tdWxDKFNlKS5yZWRNdWwoSWUpKSx0aGlzLmN1cnZlLnBvaW50KEVlLHNlLG9lKX0scS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEope3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT9KOkouaXNJbmZpbml0eSgpP3RoaXM6dGhpcy5jdXJ2ZS5leHRlbmRlZD90aGlz''@;'; + put 'put ''Ll9leHRBZGQoSik6dGhpcy5fcHJvakFkZChKKX0scS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKEope3JldHVybiB0aGlzLl9oYXNEb3VibGVzKEopP3RoaXMuY3VydmUuX2ZpeGVkTmFmTXVsKHRoaXMsSik6dGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLEopfSxxLnByb3RvdHlwZS5tdWxBZGQ9''@;'; + put 'put ''ZnVuY3Rpb24oSixzZSxvZSl7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxzZV0sW0osb2VdLDIsITEpfSxxLnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9uKEosc2Usb2Upe3JldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsW3RoaXMsc2VdLFtKLG9lXSwyLCEw''@;'; + put 'put ''KX0scS5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7aWYodGhpcy56T25lKXJldHVybiB0aGlzO3ZhciBKPXRoaXMuei5yZWRJbnZtKCk7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKEopLHRoaXMueT10aGlzLnkucmVkTXVsKEopLHRoaXMudCYmKHRoaXMudD10aGlzLnQucmVk''@;'; + put 'put ''TXVsKEopKSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56T25lPSEwLHRoaXN9LHEucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWROZWcoKSx0aGlzLnksdGhpcy56LHRoaXMudCYmdGhpcy50LnJlZE5lZygpKX0scS5wcm90b3R5''@;'; + put 'put ''cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9LHEucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnkuZnJvbVJlZCgpfSxxLnByb3RvdHlwZS5lcT1mdW5jdGlvbihKKXtyZXR1cm4g''@;'; + put 'put ''dGhpcz09PUp8fDA9PT10aGlzLmdldFgoKS5jbXAoSi5nZXRYKCkpJiYwPT09dGhpcy5nZXRZKCkuY21wKEouZ2V0WSgpKX0scS5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKEope3ZhciBzZT1KLnRvUmVkKHRoaXMuY3VydmUucmVkKS5yZWRNdWwodGhpcy56KTtpZigwPT09dGhpcy54LmNt''@;'; + put 'put ''cChzZSkpcmV0dXJuITA7Zm9yKHZhciBvZT1KLmNsb25lKCksY2U9dGhpcy5jdXJ2ZS5yZWROLnJlZE11bCh0aGlzLnopOzspe2lmKG9lLmlhZGQodGhpcy5jdXJ2ZS5uKSxvZS5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihzZS5yZWRJQWRkKGNlKSwwPT09dGhpcy54LmNtcChz''@;'; + put 'put ''ZSkpcmV0dXJuITB9fSxxLnByb3RvdHlwZS50b1A9cS5wcm90b3R5cGUubm9ybWFsaXplLHEucHJvdG90eXBlLm1peGVkQWRkPXEucHJvdG90eXBlLmFkZH0sODI1NDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1RO2llLmJhc2U9Wig0OTE4KSxpZS5zaG9ydD1aKDY2NzMpLGllLm1v''@;'; + put 'put ''bnQ9WigyODgxKSxpZS5lZHdhcmRzPVooMTEzOCl9LDI4ODE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9WigzNzg1KSxsZT1aKDU3MTcpLFk9Wig0OTE4KSxXPVooOTUzKTtmdW5jdGlvbiBOKHEpe1kuY2FsbCh0aGlzLCJtb250IixxKSx0aGlzLmE9bmV3IGllKHEuYSwxNikudG9S''@;'; + put 'put ''ZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgaWUocS5iLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5pND1uZXcgaWUoNCkudG9SZWQodGhpcy5yZWQpLnJlZEludm0oKSx0aGlzLnR3bz1uZXcgaWUoMikudG9SZWQodGhpcy5yZWQpLHRoaXMuYTI0PXRoaXMuaTQucmVkTXVsKHRoaXMuYS5yZWRB''@;'; + put 'put ''ZGQodGhpcy50d28pKX1mdW5jdGlvbiBlZShxLEosc2Upe1kuQmFzZVBvaW50LmNhbGwodGhpcyxxLCJwcm9qZWN0aXZlIiksbnVsbD09PUomJm51bGw9PT1zZT8odGhpcy54PXRoaXMuY3VydmUub25lLHRoaXMuej10aGlzLmN1cnZlLnplcm8pOih0aGlzLng9bmV3IGllKEosMTYpLHRoaXMu''@;'; + put 'put ''ej1uZXcgaWUoc2UsMTYpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSl9bGUoTixZKSxVLmV4cG9ydHM9TixOLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlv''@;'; + put 'put ''bihxKXt2YXIgSj1xLm5vcm1hbGl6ZSgpLngsc2U9Si5yZWRTcXIoKSxvZT1zZS5yZWRNdWwoSikucmVkQWRkKHNlLnJlZE11bCh0aGlzLmEpKS5yZWRBZGQoSik7cmV0dXJuIDA9PT1vZS5yZWRTcXJ0KCkucmVkU3FyKCkuY21wKG9lKX0sbGUoZWUsWS5CYXNlUG9pbnQpLE4ucHJvdG90eXBl''@;'; + put 'put ''LmRlY29kZVBvaW50PWZ1bmN0aW9uKHEsSil7cmV0dXJuIHRoaXMucG9pbnQoVy50b0FycmF5KHEsSiksMSl9LE4ucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKHEsSil7cmV0dXJuIG5ldyBlZSh0aGlzLHEsSil9LE4ucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24ocSl7cmV0dXJu''@;'; + put 'put ''IGVlLmZyb21KU09OKHRoaXMscSl9LGVlLnByb3RvdHlwZS5wcmVjb21wdXRlPWZ1bmN0aW9uKCl7fSxlZS5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFgoKS50b0FycmF5KCJiZSIsdGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSl9LGVlLmZyb21KU09OPWZ1''@;'; + put 'put ''bmN0aW9uKHEsSil7cmV0dXJuIG5ldyBlZShxLEpbMF0sSlsxXXx8cS5vbmUpfSxlZS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJp''@;'; + put 'put ''bmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxlZS5wcm90b3R5cGUuaXNJbmZpbml0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy56LmNtcG4oMCl9LGVlLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXt2YXIgcT10aGlzLngucmVkQWRkKHRo''@;'; + put 'put ''aXMueikucmVkU3FyKCksSj10aGlzLngucmVkU3ViKHRoaXMueikucmVkU3FyKCksc2U9cS5yZWRTdWIoSiksb2U9cS5yZWRNdWwoSiksY2U9c2UucmVkTXVsKEoucmVkQWRkKHRoaXMuY3VydmUuYTI0LnJlZE11bChzZSkpKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChvZSxjZSl9LGVlLnBy''@;'; + put 'put ''b3RvdHlwZS5hZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZSIpfSxlZS5wcm90b3R5cGUuZGlmZkFkZD1mdW5jdGlvbihxLEope3ZhciBzZT10aGlzLngucmVkQWRkKHRoaXMueiksb2U9dGhpcy54LnJlZFN1Yih0aGlzLnop''@;'; + put 'put ''LGNlPXEueC5yZWRBZGQocS56KSxkZT1xLngucmVkU3ViKHEueikucmVkTXVsKHNlKSx2ZT1jZS5yZWRNdWwob2UpLEFlPUouei5yZWRNdWwoZGUucmVkQWRkKHZlKS5yZWRTcXIoKSksa2U9Si54LnJlZE11bChkZS5yZWRJU3ViKHZlKS5yZWRTcXIoKSk7cmV0dXJuIHRoaXMuY3VydmUucG9p''@;'; + put 'put ''bnQoQWUsa2UpfSxlZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHEpe2Zvcih2YXIgSj1xLmNsb25lKCksc2U9dGhpcyxvZT10aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCksY2U9W107MCE9PUouY21wbigwKTtKLml1c2hybigxKSljZS5wdXNoKEouYW5kbG4oMSkpO2Zvcih2YXIgZGU9Y2Uu''@;'; + put 'put ''bGVuZ3RoLTE7ZGU+PTA7ZGUtLSkwPT09Y2VbZGVdPyhzZT1zZS5kaWZmQWRkKG9lLHRoaXMpLG9lPW9lLmRibCgpKToob2U9c2UuZGlmZkFkZChvZSx0aGlzKSxzZT1zZS5kYmwoKSk7cmV0dXJuIG9lfSxlZS5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJO''@;'; + put 'put ''b3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX0sZWUucHJvdG90eXBlLmp1bWxBZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZSIpfSxlZS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24ocSl7cmV0dXJuIDA9PT10aGlz''@;'; + put 'put ''LmdldFgoKS5jbXAocS5nZXRYKCkpfSxlZS5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKHRoaXMuei5yZWRJbnZtKCkpLHRoaXMuej10aGlzLmN1cnZlLm9uZSx0aGlzfSxlZS5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9fSw2NjczOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooOTUzKSxsZT1aKDM3ODUpLFk9Wig1NzE3KSxXPVooNDkxOCksTj1pZS5hc3NlcnQ7ZnVuY3Rpb24gZWUoc2Upe1cuY2FsbCh0aGlzLCJzaG9ydCIsc2UpLHRo''@;'; + put 'put ''aXMuYT1uZXcgbGUoc2UuYSwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgbGUoc2UuYiwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMudGludj10aGlzLnR3by5yZWRJbnZtKCksdGhpcy56ZXJvQT0wPT09dGhpcy5hLmZyb21SZWQoKS5jbXBuKDApLHRoaXMudGhyZWVBPTA9PT10aGlz''@;'; + put 'put ''LmEuZnJvbVJlZCgpLnN1Yih0aGlzLnApLmNtcG4oLTMpLHRoaXMuZW5kbz10aGlzLl9nZXRFbmRvbW9ycGhpc20oc2UpLHRoaXMuX2VuZG9XbmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX2VuZG9XbmFmVDI9bmV3IEFycmF5KDQpfWZ1bmN0aW9uIHEoc2Usb2UsY2UsZGUpe1cuQmFzZVBvaW50''@;'; + put 'put ''LmNhbGwodGhpcyxzZSwiYWZmaW5lIiksbnVsbD09PW9lJiZudWxsPT09Y2U/KHRoaXMueD1udWxsLHRoaXMueT1udWxsLHRoaXMuaW5mPSEwKToodGhpcy54PW5ldyBsZShvZSwxNiksdGhpcy55PW5ldyBsZShjZSwxNiksZGUmJih0aGlzLnguZm9yY2VSZWQodGhpcy5jdXJ2ZS5yZWQpLHRo''@;'; + put 'put ''aXMueS5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLmluZj0hMSl9ZnVuY3Rpb24gSihzZSxvZSxjZSxk''@;'; + put 'put ''ZSl7Vy5CYXNlUG9pbnQuY2FsbCh0aGlzLHNlLCJqYWNvYmlhbiIpLG51bGw9PT1vZSYmbnVsbD09PWNlJiZudWxsPT09ZGU/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PW5ldyBsZSgwKSk6KHRoaXMueD1uZXcgbGUob2UsMTYpLHRoaXMueT1u''@;'; + put 'put ''ZXcgbGUoY2UsMTYpLHRoaXMuej1uZXcgbGUoZGUsMTYpKSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9S''@;'; + put 'put ''ZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmV9WShlZSxXKSxVLmV4cG9ydHM9ZWUsZWUucHJvdG90eXBlLl9nZXRFbmRvbW9ycGhpc209ZnVuY3Rpb24oc2Upe2lmKHRoaXMuemVyb0EmJnRoaXMuZyYmdGhpcy5uJiYxPT09dGhpcy5wLm1vZG4o''@;'; + put 'put ''Mykpe3ZhciBvZSxjZTtpZihzZS5iZXRhKW9lPW5ldyBsZShzZS5iZXRhLDE2KS50b1JlZCh0aGlzLnJlZCk7ZWxzZXt2YXIgZGU9dGhpcy5fZ2V0RW5kb1Jvb3RzKHRoaXMucCk7b2U9KG9lPWRlWzBdLmNtcChkZVsxXSk8MD9kZVswXTpkZVsxXSkudG9SZWQodGhpcy5yZWQpfWlmKHNlLmxh''@;'; + put 'put ''bWJkYSljZT1uZXcgbGUoc2UubGFtYmRhLDE2KTtlbHNle3ZhciB2ZT10aGlzLl9nZXRFbmRvUm9vdHModGhpcy5uKTswPT09dGhpcy5nLm11bCh2ZVswXSkueC5jbXAodGhpcy5nLngucmVkTXVsKG9lKSk/Y2U9dmVbMF06TigwPT09dGhpcy5nLm11bChjZT12ZVsxXSkueC5jbXAodGhpcy5n''@;'; + put 'put ''LngucmVkTXVsKG9lKSkpfXJldHVybntiZXRhOm9lLGxhbWJkYTpjZSxiYXNpczpzZS5iYXNpcz9zZS5iYXNpcy5tYXAoZnVuY3Rpb24oQWUpe3JldHVybnthOm5ldyBsZShBZS5hLDE2KSxiOm5ldyBsZShBZS5iLDE2KX19KTp0aGlzLl9nZXRFbmRvQmFzaXMoY2UpfX19LGVlLnByb3RvdHlw''@;'; + put 'put ''ZS5fZ2V0RW5kb1Jvb3RzPWZ1bmN0aW9uKHNlKXt2YXIgb2U9c2U9PT10aGlzLnA/dGhpcy5yZWQ6bGUubW9udChzZSksY2U9bmV3IGxlKDIpLnRvUmVkKG9lKS5yZWRJbnZtKCksZGU9Y2UucmVkTmVnKCksdmU9bmV3IGxlKDMpLnRvUmVkKG9lKS5yZWROZWcoKS5yZWRTcXJ0KCkucmVkTXVs''@;'; + put 'put ''KGNlKTtyZXR1cm5bZGUucmVkQWRkKHZlKS5mcm9tUmVkKCksZGUucmVkU3ViKHZlKS5mcm9tUmVkKCldfSxlZS5wcm90b3R5cGUuX2dldEVuZG9CYXNpcz1mdW5jdGlvbihzZSl7Zm9yKHZhciBvZSxjZSxkZSx2ZSxBZSxrZSxTZSxJZSxUZSxFZT10aGlzLm4udXNocm4oTWF0aC5mbG9vcih0''@;'; + put 'put ''aGlzLm4uYml0TGVuZ3RoKCkvMikpLGhlPXNlLE89dGhpcy5uLmNsb25lKCksej1uZXcgbGUoMSksbmU9bmV3IGxlKDApLHRlPW5ldyBsZSgwKSx4PW5ldyBsZSgxKSxQPTA7MCE9PWhlLmNtcG4oMCk7KXt2YXIgVj1PLmRpdihoZSk7SWU9Ty5zdWIoVi5tdWwoaGUpKSxUZT10ZS5zdWIoVi5t''@;'; + put 'put ''dWwoeikpO3ZhciBUPXguc3ViKFYubXVsKG5lKSk7aWYoIWRlJiZJZS5jbXAoRWUpPDApb2U9U2UubmVnKCksY2U9eixkZT1JZS5uZWcoKSx2ZT1UZTtlbHNlIGlmKGRlJiYyPT0rK1ApYnJlYWs7U2U9SWUsTz1oZSxoZT1JZSx0ZT16LHo9VGUseD1uZSxuZT1UfUFlPUllLm5lZygpLGtlPVRl''@;'; + put 'put ''O3ZhciBTPWRlLnNxcigpLmFkZCh2ZS5zcXIoKSk7cmV0dXJuIEFlLnNxcigpLmFkZChrZS5zcXIoKSkuY21wKFMpPj0wJiYoQWU9b2Usa2U9Y2UpLGRlLm5lZ2F0aXZlJiYoZGU9ZGUubmVnKCksdmU9dmUubmVnKCkpLEFlLm5lZ2F0aXZlJiYoQWU9QWUubmVnKCksa2U9a2UubmVnKCkpLFt7''@;'; + put 'put ''YTpkZSxiOnZlfSx7YTpBZSxiOmtlfV19LGVlLnByb3RvdHlwZS5fZW5kb1NwbGl0PWZ1bmN0aW9uKHNlKXt2YXIgb2U9dGhpcy5lbmRvLmJhc2lzLGNlPW9lWzBdLGRlPW9lWzFdLHZlPWRlLmIubXVsKHNlKS5kaXZSb3VuZCh0aGlzLm4pLEFlPWNlLmIubmVnKCkubXVsKHNlKS5kaXZSb3Vu''@;'; + put 'put ''ZCh0aGlzLm4pLGtlPXZlLm11bChjZS5hKSxTZT1BZS5tdWwoZGUuYSksSWU9dmUubXVsKGNlLmIpLFRlPUFlLm11bChkZS5iKTtyZXR1cm57azE6c2Uuc3ViKGtlKS5zdWIoU2UpLGsyOkllLmFkZChUZSkubmVnKCl9fSxlZS5wcm90b3R5cGUucG9pbnRGcm9tWD1mdW5jdGlvbihzZSxvZSl7''@;'; + put 'put ''KHNlPW5ldyBsZShzZSwxNikpLnJlZHx8KHNlPXNlLnRvUmVkKHRoaXMucmVkKSk7dmFyIGNlPXNlLnJlZFNxcigpLnJlZE11bChzZSkucmVkSUFkZChzZS5yZWRNdWwodGhpcy5hKSkucmVkSUFkZCh0aGlzLmIpLGRlPWNlLnJlZFNxcnQoKTtpZigwIT09ZGUucmVkU3FyKCkucmVkU3ViKGNl''@;'; + put 'put ''KS5jbXAodGhpcy56ZXJvKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTt2YXIgdmU9ZGUuZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKG9lJiYhdmV8fCFvZSYmdmUpJiYoZGU9ZGUucmVkTmVnKCkpLHRoaXMucG9pbnQoc2UsZGUpfSxlZS5wcm90b3R5cGUudmFsaWRhdGU9ZnVu''@;'; + put 'put ''Y3Rpb24oc2Upe2lmKHNlLmluZilyZXR1cm4hMDt2YXIgb2U9c2UueCxjZT1zZS55LGRlPXRoaXMuYS5yZWRNdWwob2UpLHZlPW9lLnJlZFNxcigpLnJlZE11bChvZSkucmVkSUFkZChkZSkucmVkSUFkZCh0aGlzLmIpO3JldHVybiAwPT09Y2UucmVkU3FyKCkucmVkSVN1Yih2ZSkuY21wbigw''@;'; + put 'put ''KX0sZWUucHJvdG90eXBlLl9lbmRvV25hZk11bEFkZD1mdW5jdGlvbihzZSxvZSxjZSl7Zm9yKHZhciBkZT10aGlzLl9lbmRvV25hZlQxLHZlPXRoaXMuX2VuZG9XbmFmVDIsQWU9MDtBZTxzZS5sZW5ndGg7QWUrKyl7dmFyIGtlPXRoaXMuX2VuZG9TcGxpdChvZVtBZV0pLFNlPXNlW0FlXSxJ''@;'; + put 'put ''ZT1TZS5fZ2V0QmV0YSgpO2tlLmsxLm5lZ2F0aXZlJiYoa2UuazEuaW5lZygpLFNlPVNlLm5lZyghMCkpLGtlLmsyLm5lZ2F0aXZlJiYoa2UuazIuaW5lZygpLEllPUllLm5lZyghMCkpLGRlWzIqQWVdPVNlLGRlWzIqQWUrMV09SWUsdmVbMipBZV09a2UuazEsdmVbMipBZSsxXT1rZS5rMn1m''@;'; + put 'put ''b3IodmFyIFRlPXRoaXMuX3duYWZNdWxBZGQoMSxkZSx2ZSwyKkFlLGNlKSxFZT0wO0VlPDIqQWU7RWUrKylkZVtFZV09bnVsbCx2ZVtFZV09bnVsbDtyZXR1cm4gVGV9LFkocSxXLkJhc2VQb2ludCksZWUucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKHNlLG9lLGNlKXtyZXR1cm4gbmV3IHEo''@;'; + put 'put ''dGhpcyxzZSxvZSxjZSl9LGVlLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKHNlLG9lKXtyZXR1cm4gcS5mcm9tSlNPTih0aGlzLHNlLG9lKX0scS5wcm90b3R5cGUuX2dldEJldGE9ZnVuY3Rpb24oKXtpZih0aGlzLmN1cnZlLmVuZG8pe3ZhciBzZT10aGlzLnByZWNvbXB1dGVk''@;'; + put 'put ''O2lmKHNlJiZzZS5iZXRhKXJldHVybiBzZS5iZXRhO3ZhciBvZT10aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWRNdWwodGhpcy5jdXJ2ZS5lbmRvLmJldGEpLHRoaXMueSk7aWYoc2Upe3ZhciBjZT10aGlzLmN1cnZlLGRlPWZ1bmN0aW9uKHZlKXtyZXR1cm4gY2UucG9pbnQodmUueC5yZWRN''@;'; + put 'put ''dWwoY2UuZW5kby5iZXRhKSx2ZS55KX07c2UuYmV0YT1vZSxvZS5wcmVjb21wdXRlZD17YmV0YTpudWxsLG5hZjpzZS5uYWYmJnt3bmQ6c2UubmFmLnduZCxwb2ludHM6c2UubmFmLnBvaW50cy5tYXAoZGUpfSxkb3VibGVzOnNlLmRvdWJsZXMmJntzdGVwOnNlLmRvdWJsZXMuc3RlcCxwb2lu''@;'; + put 'put ''dHM6c2UuZG91Ymxlcy5wb2ludHMubWFwKGRlKX19fXJldHVybiBvZX19LHEucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnByZWNvbXB1dGVkP1t0aGlzLngsdGhpcy55LHRoaXMucHJlY29tcHV0ZWQmJntkb3VibGVzOnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcyYm''@;'; + put 'put ''e3N0ZXA6dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzLnN0ZXAscG9pbnRzOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5wb2ludHMuc2xpY2UoMSl9LG5hZjp0aGlzLnByZWNvbXB1dGVkLm5hZiYme3duZDp0aGlzLnByZWNvbXB1dGVkLm5hZi53bmQscG9pbnRzOnRoaXMucHJlY29tcHV0ZWQu''@;'; + put 'put ''bmFmLnBvaW50cy5zbGljZSgxKX19XTpbdGhpcy54LHRoaXMueV19LHEuZnJvbUpTT049ZnVuY3Rpb24oc2Usb2UsY2UpeyJzdHJpbmciPT10eXBlb2Ygb2UmJihvZT1KU09OLnBhcnNlKG9lKSk7dmFyIGRlPXNlLnBvaW50KG9lWzBdLG9lWzFdLGNlKTtpZighb2VbMl0pcmV0dXJuIGRlO2Z1''@;'; + put 'put ''bmN0aW9uIHZlKGtlKXtyZXR1cm4gc2UucG9pbnQoa2VbMF0sa2VbMV0sY2UpfXZhciBBZT1vZVsyXTtyZXR1cm4gZGUucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxkb3VibGVzOkFlLmRvdWJsZXMmJntzdGVwOkFlLmRvdWJsZXMuc3RlcCxwb2ludHM6W2RlXS5jb25jYXQoQWUuZG91Ymxlcy5w''@;'; + put 'put ''b2ludHMubWFwKHZlKSl9LG5hZjpBZS5uYWYmJnt3bmQ6QWUubmFmLnduZCxwb2ludHM6W2RlXS5jb25jYXQoQWUubmFmLnBvaW50cy5tYXAodmUpKX19LGRlfSxxLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgUG9pbnQgSW5maW5p''@;'; + put 'put ''dHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LHEucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmZ9LHEucHJvdG90eXBlLmFkZD1m''@;'; + put 'put ''dW5jdGlvbihzZSl7aWYodGhpcy5pbmYpcmV0dXJuIHNlO2lmKHNlLmluZilyZXR1cm4gdGhpcztpZih0aGlzLmVxKHNlKSlyZXR1cm4gdGhpcy5kYmwoKTtpZih0aGlzLm5lZygpLmVxKHNlKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO2lmKDA9PT10aGlzLnguY21wKHNl''@;'; + put 'put ''LngpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIG9lPXRoaXMueS5yZWRTdWIoc2UueSk7MCE9PW9lLmNtcG4oMCkmJihvZT1vZS5yZWRNdWwodGhpcy54LnJlZFN1YihzZS54KS5yZWRJbnZtKCkpKTt2YXIgY2U9b2UucmVkU3FyKCkucmVkSVN1Yih0aGlzLngpLnJl''@;'; + put 'put ''ZElTdWIoc2UueCksZGU9b2UucmVkTXVsKHRoaXMueC5yZWRTdWIoY2UpKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoY2UsZGUpfSxxLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2YXIgc2U9dGhpcy55LnJlZEFkZCh0''@;'; + put 'put ''aGlzLnkpO2lmKDA9PT1zZS5jbXBuKDApKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIG9lPXRoaXMuY3VydmUuYSxjZT10aGlzLngucmVkU3FyKCksZGU9c2UucmVkSW52bSgpLHZlPWNlLnJlZEFkZChjZSkucmVkSUFkZChjZSkucmVkSUFkZChvZSkucmVkTXVsKGRl''@;'; + put 'put ''KSxBZT12ZS5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueC5yZWRBZGQodGhpcy54KSksa2U9dmUucmVkTXVsKHRoaXMueC5yZWRTdWIoQWUpKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoQWUsa2UpfSxxLnByb3RvdHlwZS5nZXRYPWZ1bmN0aW9uKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMueC5mcm9tUmVkKCl9LHEucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy55LmZyb21SZWQoKX0scS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHNlKXtyZXR1cm4gc2U9bmV3IGxlKHNlLDE2KSx0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuX2hhc0RvdWJsZXMoc2Up''@;'; + put 'put ''P3RoaXMuY3VydmUuX2ZpeGVkTmFmTXVsKHRoaXMsc2UpOnRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChbdGhpc10sW3NlXSk6dGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLHNlKX0scS5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9uKHNlLG9lLGNlKXt2YXIgZGU9''@;'; + put 'put ''W3RoaXMsb2VdLHZlPVtzZSxjZV07cmV0dXJuIHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChkZSx2ZSk6dGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLGRlLHZlLDIpfSxxLnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9uKHNlLG9lLGNlKXt2YXIgZGU9W3RoaXMs''@;'; + put 'put ''b2VdLHZlPVtzZSxjZV07cmV0dXJuIHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChkZSx2ZSwhMCk6dGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLGRlLHZlLDIsITApfSxxLnByb3RvdHlwZS5lcT1mdW5jdGlvbihzZSl7cmV0dXJuIHRoaXM9PT1zZXx8dGhpcy5p''@;'; + put 'put ''bmY9PT1zZS5pbmYmJih0aGlzLmluZnx8MD09PXRoaXMueC5jbXAoc2UueCkmJjA9PT10aGlzLnkuY21wKHNlLnkpKX0scS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKHNlKXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2YXIgb2U9dGhpcy5jdXJ2ZS5wb2ludCh0aGlzLngsdGhpcy55LnJlZE5l''@;'; + put 'put ''ZygpKTtpZihzZSYmdGhpcy5wcmVjb21wdXRlZCl7dmFyIGNlPXRoaXMucHJlY29tcHV0ZWQsZGU9ZnVuY3Rpb24odmUpe3JldHVybiB2ZS5uZWcoKX07b2UucHJlY29tcHV0ZWQ9e25hZjpjZS5uYWYmJnt3bmQ6Y2UubmFmLnduZCxwb2ludHM6Y2UubmFmLnBvaW50cy5tYXAoZGUpfSxkb3Vi''@;'; + put 'put ''bGVzOmNlLmRvdWJsZXMmJntzdGVwOmNlLmRvdWJsZXMuc3RlcCxwb2ludHM6Y2UuZG91Ymxlcy5wb2ludHMubWFwKGRlKX19fXJldHVybiBvZX0scS5wcm90b3R5cGUudG9KPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlz''@;'; + put 'put ''LmN1cnZlLmpwb2ludCh0aGlzLngsdGhpcy55LHRoaXMuY3VydmUub25lKX0sWShKLFcuQmFzZVBvaW50KSxlZS5wcm90b3R5cGUuanBvaW50PWZ1bmN0aW9uKHNlLG9lLGNlKXtyZXR1cm4gbmV3IEoodGhpcyxzZSxvZSxjZSl9LEoucHJvdG90eXBlLnRvUD1mdW5jdGlvbigpe2lmKHRoaXMu''@;'; + put 'put ''aXNJbmZpbml0eSgpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIHNlPXRoaXMuei5yZWRJbnZtKCksb2U9c2UucmVkU3FyKCksY2U9dGhpcy54LnJlZE11bChvZSksZGU9dGhpcy55LnJlZE11bChvZSkucmVkTXVsKHNlKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChj''@;'; + put 'put ''ZSxkZSl9LEoucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLmpwb2ludCh0aGlzLngsdGhpcy55LnJlZE5lZygpLHRoaXMueil9LEoucHJvdG90eXBlLmFkZD1mdW5jdGlvbihzZSl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIHNlO2lmKHNlLmlzSW5maW5p''@;'; + put 'put ''dHkoKSlyZXR1cm4gdGhpczt2YXIgb2U9c2Uuei5yZWRTcXIoKSxjZT10aGlzLnoucmVkU3FyKCksZGU9dGhpcy54LnJlZE11bChvZSksdmU9c2UueC5yZWRNdWwoY2UpLEFlPXRoaXMueS5yZWRNdWwob2UucmVkTXVsKHNlLnopKSxrZT1zZS55LnJlZE11bChjZS5yZWRNdWwodGhpcy56KSks''@;'; + put 'put ''U2U9ZGUucmVkU3ViKHZlKSxJZT1BZS5yZWRTdWIoa2UpO2lmKDA9PT1TZS5jbXBuKDApKXJldHVybiAwIT09SWUuY21wbigwKT90aGlzLmN1cnZlLmpwb2ludChudWxsLG51bGwsbnVsbCk6dGhpcy5kYmwoKTt2YXIgVGU9U2UucmVkU3FyKCksRWU9VGUucmVkTXVsKFNlKSxoZT1kZS5yZWRN''@;'; + put 'put ''dWwoVGUpLE89SWUucmVkU3FyKCkucmVkSUFkZChFZSkucmVkSVN1YihoZSkucmVkSVN1YihoZSksej1JZS5yZWRNdWwoaGUucmVkSVN1YihPKSkucmVkSVN1YihBZS5yZWRNdWwoRWUpKSxuZT10aGlzLnoucmVkTXVsKHNlLnopLnJlZE11bChTZSk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50''@;'; + put 'put ''KE8seixuZSl9LEoucHJvdG90eXBlLm1peGVkQWRkPWZ1bmN0aW9uKHNlKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gc2UudG9KKCk7aWYoc2UuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO3ZhciBvZT10aGlzLnoucmVkU3FyKCksY2U9dGhpcy54LGRlPXNlLngucmVkTXVsKG9lKSx2''@;'; + put 'put ''ZT10aGlzLnksQWU9c2UueS5yZWRNdWwob2UpLnJlZE11bCh0aGlzLnopLGtlPWNlLnJlZFN1YihkZSksU2U9dmUucmVkU3ViKEFlKTtpZigwPT09a2UuY21wbigwKSlyZXR1cm4gMCE9PVNlLmNtcG4oMCk/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuZGJsKCk7dmFy''@;'; + put 'put ''IEllPWtlLnJlZFNxcigpLFRlPUllLnJlZE11bChrZSksRWU9Y2UucmVkTXVsKEllKSxoZT1TZS5yZWRTcXIoKS5yZWRJQWRkKFRlKS5yZWRJU3ViKEVlKS5yZWRJU3ViKEVlKSxPPVNlLnJlZE11bChFZS5yZWRJU3ViKGhlKSkucmVkSVN1Yih2ZS5yZWRNdWwoVGUpKSx6PXRoaXMuei5yZWRN''@;'; + put 'put ''dWwoa2UpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChoZSxPLHopfSxKLnByb3RvdHlwZS5kYmxwPWZ1bmN0aW9uKHNlKXtpZigwPT09c2UpcmV0dXJuIHRoaXM7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7aWYoIXNlKXJldHVybiB0aGlzLmRibCgpO3ZhciBvZTtpZih0aGlz''@;'; + put 'put ''LmN1cnZlLnplcm9BfHx0aGlzLmN1cnZlLnRocmVlQSl7dmFyIGNlPXRoaXM7Zm9yKG9lPTA7b2U8c2U7b2UrKyljZT1jZS5kYmwoKTtyZXR1cm4gY2V9dmFyIGRlPXRoaXMuY3VydmUuYSx2ZT10aGlzLmN1cnZlLnRpbnYsQWU9dGhpcy54LGtlPXRoaXMueSxTZT10aGlzLnosSWU9U2UucmVk''@;'; + put 'put ''U3FyKCkucmVkU3FyKCksVGU9a2UucmVkQWRkKGtlKTtmb3Iob2U9MDtvZTxzZTtvZSsrKXt2YXIgRWU9QWUucmVkU3FyKCksaGU9VGUucmVkU3FyKCksTz1oZS5yZWRTcXIoKSx6PUVlLnJlZEFkZChFZSkucmVkSUFkZChFZSkucmVkSUFkZChkZS5yZWRNdWwoSWUpKSxuZT1BZS5yZWRNdWwo''@;'; + put 'put ''aGUpLHRlPXoucmVkU3FyKCkucmVkSVN1YihuZS5yZWRBZGQobmUpKSx4PW5lLnJlZElTdWIodGUpLFA9ei5yZWRNdWwoeCk7UD1QLnJlZElBZGQoUCkucmVkSVN1YihPKTt2YXIgVj1UZS5yZWRNdWwoU2UpO29lKzE8c2UmJihJZT1JZS5yZWRNdWwoTykpLEFlPXRlLFNlPVYsVGU9UH1yZXR1''@;'; + put 'put ''cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoQWUsVGUucmVkTXVsKHZlKSxTZSl9LEoucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuY3VydmUuemVyb0E/dGhpcy5femVyb0RibCgpOnRoaXMuY3VydmUudGhyZWVBP3RoaXMuX3RocmVlRGJs''@;'; + put 'put ''KCk6dGhpcy5fZGJsKCl9LEoucHJvdG90eXBlLl96ZXJvRGJsPWZ1bmN0aW9uKCl7dmFyIHNlLG9lLGNlO2lmKHRoaXMuek9uZSl7dmFyIGRlPXRoaXMueC5yZWRTcXIoKSx2ZT10aGlzLnkucmVkU3FyKCksQWU9dmUucmVkU3FyKCksa2U9dGhpcy54LnJlZEFkZCh2ZSkucmVkU3FyKCkucmVk''@;'; + put 'put ''SVN1YihkZSkucmVkSVN1YihBZSk7a2U9a2UucmVkSUFkZChrZSk7dmFyIFNlPWRlLnJlZEFkZChkZSkucmVkSUFkZChkZSksSWU9U2UucmVkU3FyKCkucmVkSVN1YihrZSkucmVkSVN1YihrZSksVGU9QWUucmVkSUFkZChBZSk7VGU9KFRlPVRlLnJlZElBZGQoVGUpKS5yZWRJQWRkKFRlKSxz''@;'; + put 'put ''ZT1JZSxvZT1TZS5yZWRNdWwoa2UucmVkSVN1YihJZSkpLnJlZElTdWIoVGUpLGNlPXRoaXMueS5yZWRBZGQodGhpcy55KX1lbHNle3ZhciBFZT10aGlzLngucmVkU3FyKCksaGU9dGhpcy55LnJlZFNxcigpLE89aGUucmVkU3FyKCksej10aGlzLngucmVkQWRkKGhlKS5yZWRTcXIoKS5yZWRJ''@;'; + put 'put ''U3ViKEVlKS5yZWRJU3ViKE8pO3o9ei5yZWRJQWRkKHopO3ZhciBuZT1FZS5yZWRBZGQoRWUpLnJlZElBZGQoRWUpLHRlPW5lLnJlZFNxcigpLHg9Ty5yZWRJQWRkKE8pO3g9KHg9eC5yZWRJQWRkKHgpKS5yZWRJQWRkKHgpLHNlPXRlLnJlZElTdWIoeikucmVkSVN1Yih6KSxvZT1uZS5yZWRN''@;'; + put 'put ''dWwoei5yZWRJU3ViKHNlKSkucmVkSVN1Yih4KSxjZT0oY2U9dGhpcy55LnJlZE11bCh0aGlzLnopKS5yZWRJQWRkKGNlKX1yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoc2Usb2UsY2UpfSxKLnByb3RvdHlwZS5fdGhyZWVEYmw9ZnVuY3Rpb24oKXt2YXIgc2Usb2UsY2U7aWYodGhpcy56T25l''@;'; + put 'put ''KXt2YXIgZGU9dGhpcy54LnJlZFNxcigpLHZlPXRoaXMueS5yZWRTcXIoKSxBZT12ZS5yZWRTcXIoKSxrZT10aGlzLngucmVkQWRkKHZlKS5yZWRTcXIoKS5yZWRJU3ViKGRlKS5yZWRJU3ViKEFlKTtrZT1rZS5yZWRJQWRkKGtlKTt2YXIgU2U9ZGUucmVkQWRkKGRlKS5yZWRJQWRkKGRlKS5y''@;'; + put 'put ''ZWRJQWRkKHRoaXMuY3VydmUuYSksSWU9U2UucmVkU3FyKCkucmVkSVN1YihrZSkucmVkSVN1YihrZSk7c2U9SWU7dmFyIFRlPUFlLnJlZElBZGQoQWUpO1RlPShUZT1UZS5yZWRJQWRkKFRlKSkucmVkSUFkZChUZSksb2U9U2UucmVkTXVsKGtlLnJlZElTdWIoSWUpKS5yZWRJU3ViKFRlKSxj''@;'; + put 'put ''ZT10aGlzLnkucmVkQWRkKHRoaXMueSl9ZWxzZXt2YXIgRWU9dGhpcy56LnJlZFNxcigpLGhlPXRoaXMueS5yZWRTcXIoKSxPPXRoaXMueC5yZWRNdWwoaGUpLHo9dGhpcy54LnJlZFN1YihFZSkucmVkTXVsKHRoaXMueC5yZWRBZGQoRWUpKTt6PXoucmVkQWRkKHopLnJlZElBZGQoeik7dmFy''@;'; + put 'put ''IG5lPU8ucmVkSUFkZChPKSx0ZT0obmU9bmUucmVkSUFkZChuZSkpLnJlZEFkZChuZSk7c2U9ei5yZWRTcXIoKS5yZWRJU3ViKHRlKSxjZT10aGlzLnkucmVkQWRkKHRoaXMueikucmVkU3FyKCkucmVkSVN1YihoZSkucmVkSVN1YihFZSk7dmFyIHg9aGUucmVkU3FyKCk7eD0oeD0oeD14LnJl''@;'; + put 'put ''ZElBZGQoeCkpLnJlZElBZGQoeCkpLnJlZElBZGQoeCksb2U9ei5yZWRNdWwobmUucmVkSVN1YihzZSkpLnJlZElTdWIoeCl9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHNlLG9lLGNlKX0sSi5wcm90b3R5cGUuX2RibD1mdW5jdGlvbigpe3ZhciBzZT10aGlzLmN1cnZlLmEsb2U9dGhpcy54''@;'; + put 'put ''LGNlPXRoaXMueSxkZT10aGlzLnosdmU9ZGUucmVkU3FyKCkucmVkU3FyKCksQWU9b2UucmVkU3FyKCksa2U9Y2UucmVkU3FyKCksU2U9QWUucmVkQWRkKEFlKS5yZWRJQWRkKEFlKS5yZWRJQWRkKHNlLnJlZE11bCh2ZSkpLEllPW9lLnJlZEFkZChvZSksVGU9KEllPUllLnJlZElBZGQoSWUp''@;'; + put 'put ''KS5yZWRNdWwoa2UpLEVlPVNlLnJlZFNxcigpLnJlZElTdWIoVGUucmVkQWRkKFRlKSksaGU9VGUucmVkSVN1YihFZSksTz1rZS5yZWRTcXIoKTtPPShPPShPPU8ucmVkSUFkZChPKSkucmVkSUFkZChPKSkucmVkSUFkZChPKTt2YXIgej1TZS5yZWRNdWwoaGUpLnJlZElTdWIoTyksbmU9Y2Uu''@;'; + put 'put ''cmVkQWRkKGNlKS5yZWRNdWwoZGUpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChFZSx6LG5lKX0sSi5wcm90b3R5cGUudHJwbD1mdW5jdGlvbigpe2lmKCF0aGlzLmN1cnZlLnplcm9BKXJldHVybiB0aGlzLmRibCgpLmFkZCh0aGlzKTt2YXIgc2U9dGhpcy54LnJlZFNxcigpLG9lPXRoaXMu''@;'; + put 'put ''eS5yZWRTcXIoKSxjZT10aGlzLnoucmVkU3FyKCksZGU9b2UucmVkU3FyKCksdmU9c2UucmVkQWRkKHNlKS5yZWRJQWRkKHNlKSxBZT12ZS5yZWRTcXIoKSxrZT10aGlzLngucmVkQWRkKG9lKS5yZWRTcXIoKS5yZWRJU3ViKHNlKS5yZWRJU3ViKGRlKSxTZT0oa2U9KGtlPShrZT1rZS5yZWRJ''@;'; + put 'put ''QWRkKGtlKSkucmVkQWRkKGtlKS5yZWRJQWRkKGtlKSkucmVkSVN1YihBZSkpLnJlZFNxcigpLEllPWRlLnJlZElBZGQoZGUpO0llPShJZT0oSWU9SWUucmVkSUFkZChJZSkpLnJlZElBZGQoSWUpKS5yZWRJQWRkKEllKTt2YXIgVGU9dmUucmVkSUFkZChrZSkucmVkU3FyKCkucmVkSVN1YihB''@;'; + put 'put ''ZSkucmVkSVN1YihTZSkucmVkSVN1YihJZSksRWU9b2UucmVkTXVsKFRlKTtFZT0oRWU9RWUucmVkSUFkZChFZSkpLnJlZElBZGQoRWUpO3ZhciBoZT10aGlzLngucmVkTXVsKFNlKS5yZWRJU3ViKEVlKTtoZT0oaGU9aGUucmVkSUFkZChoZSkpLnJlZElBZGQoaGUpO3ZhciBPPXRoaXMueS5y''@;'; + put 'put ''ZWRNdWwoVGUucmVkTXVsKEllLnJlZElTdWIoVGUpKS5yZWRJU3ViKGtlLnJlZE11bChTZSkpKTtPPShPPShPPU8ucmVkSUFkZChPKSkucmVkSUFkZChPKSkucmVkSUFkZChPKTt2YXIgej10aGlzLnoucmVkQWRkKGtlKS5yZWRTcXIoKS5yZWRJU3ViKGNlKS5yZWRJU3ViKFNlKTtyZXR1cm4g''@;'; + put 'put ''dGhpcy5jdXJ2ZS5qcG9pbnQoaGUsTyx6KX0sSi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHNlLG9lKXtyZXR1cm4gc2U9bmV3IGxlKHNlLG9lKSx0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsc2UpfSxKLnByb3RvdHlwZS5lcT1mdW5jdGlvbihzZSl7aWYoImFmZmluZSI9PT1zZS50eXBlKXJl''@;'; + put 'put ''dHVybiB0aGlzLmVxKHNlLnRvSigpKTtpZih0aGlzPT09c2UpcmV0dXJuITA7dmFyIG9lPXRoaXMuei5yZWRTcXIoKSxjZT1zZS56LnJlZFNxcigpO2lmKDAhPT10aGlzLngucmVkTXVsKGNlKS5yZWRJU3ViKHNlLngucmVkTXVsKG9lKSkuY21wbigwKSlyZXR1cm4hMTt2YXIgZGU9b2UucmVk''@;'; + put 'put ''TXVsKHRoaXMueiksdmU9Y2UucmVkTXVsKHNlLnopO3JldHVybiAwPT09dGhpcy55LnJlZE11bCh2ZSkucmVkSVN1YihzZS55LnJlZE11bChkZSkpLmNtcG4oMCl9LEoucHJvdG90eXBlLmVxWFRvUD1mdW5jdGlvbihzZSl7dmFyIG9lPXRoaXMuei5yZWRTcXIoKSxjZT1zZS50b1JlZCh0aGlz''@;'; + put 'put ''LmN1cnZlLnJlZCkucmVkTXVsKG9lKTtpZigwPT09dGhpcy54LmNtcChjZSkpcmV0dXJuITA7Zm9yKHZhciBkZT1zZS5jbG9uZSgpLHZlPXRoaXMuY3VydmUucmVkTi5yZWRNdWwob2UpOzspe2lmKGRlLmlhZGQodGhpcy5jdXJ2ZS5uKSxkZS5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4h''@;'; + put 'put ''MTtpZihjZS5yZWRJQWRkKHZlKSwwPT09dGhpcy54LmNtcChjZSkpcmV0dXJuITB9fSxKLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgSlBvaW50IEluZmluaXR5PiI6IjxFQyBKUG9pbnQgeDogIit0aGlzLngudG9TdHJpbmcoMTYs''@;'; + put 'put ''MikrIiB5OiAiK3RoaXMueS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LnRvU3RyaW5nKDE2LDIpKyI+In0sSi5wcm90b3R5cGUuaXNJbmZpbml0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy56LmNtcG4oMCl9fSw1NDI3OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllLGxl''@;'; + put 'put ''PVEsWT1aKDM3MTUpLFc9Wig4MjU0KSxOPVooOTUzKS5hc3NlcnQ7ZnVuY3Rpb24gZWUoSil7dGhpcy5jdXJ2ZT0ic2hvcnQiPT09Si50eXBlP25ldyBXLnNob3J0KEopOiJlZHdhcmRzIj09PUoudHlwZT9uZXcgVy5lZHdhcmRzKEopOm5ldyBXLm1vbnQoSiksdGhpcy5nPXRoaXMuY3VydmUu''@;'; + put 'put ''Zyx0aGlzLm49dGhpcy5jdXJ2ZS5uLHRoaXMuaGFzaD1KLmhhc2gsTih0aGlzLmcudmFsaWRhdGUoKSwiSW52YWxpZCBjdXJ2ZSIpLE4odGhpcy5nLm11bCh0aGlzLm4pLmlzSW5maW5pdHkoKSwiSW52YWxpZCBjdXJ2ZSwgRypOICE9IE8iKX1mdW5jdGlvbiBxKEosc2Upe09iamVjdC5kZWZp''@;'; + put 'put ''bmVQcm9wZXJ0eShsZSxKLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgb2U9bmV3IGVlKHNlKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGxlLEose2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOm9lfSksb2V9fSl9bGUu''@;'; + put 'put ''UHJlc2V0Q3VydmU9ZWUscSgicDE5MiIse3R5cGU6InNob3J0IixwcmltZToicDE5MiIscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZj''@;'; + put 'put ''IixiOiI2NDIxMDUxOSBlNTljODBlNyAwZmE3ZTlhYiA3MjI0MzA0OSBmZWI4ZGVlYyBjMTQ2YjliMSIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgOTlkZWY4MzYgMTQ2YmM5YjEgYjRkMjI4MzEiLGhhc2g6WS5zaGEyNTYsZ1JlZDohMSxnOlsiMTg4ZGE4MGUgYjAzMDkwZjYgN2Ni''@;'; + put 'put ''ZjIwZWIgNDNhMTg4MDAgZjRmZjBhZmQgODJmZjEwMTIiLCIwNzE5MmI5NSBmZmM4ZGE3OCA2MzEwMTFlZCA2YjI0Y2RkNSA3M2Y5NzdhMSAxZTc5NDgxMSJdfSkscSgicDIyNCIse3R5cGU6InNob3J0IixwcmltZToicDIyNCIscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZm''@;'; + put 'put ''ZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiLGE6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIixiOiJiNDA1MGE4NSAwYzA0YjNhYiBmNTQxMzI1NiA1MDQ0YjBiNyBkN2JmZDhiYSAyNzBiMzk0MyAyMzU1ZmZiNCIs''@;'; + put 'put ''bjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZjE2YTIgZTBiOGYwM2UgMTNkZDI5NDUgNWM1YzJhM2QiLGhhc2g6WS5zaGEyNTYsZ1JlZDohMSxnOlsiYjcwZTBjYmQgNmJiNGJmN2YgMzIxMzkwYjkgNGEwM2MxZDMgNTZjMjExMjIgMzQzMjgwZDYgMTE1YzFkMjEiLCJiZDM3NjM4''@;'; + put 'put ''OCBiNWY3MjNmYiA0YzIyZGZlNiBjZDQzNzVhMCA1YTA3NDc2NCA0NGQ1ODE5OSA4NTAwN2UzNCJdfSkscSgicDI1NiIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6ImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZm''@;'; + put 'put ''ZmZmIixhOiJmZmZmZmZmZiAwMDAwMDAwMSAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYyIsYjoiNWFjNjM1ZDggYWEzYTkzZTcgYjNlYmJkNTUgNzY5ODg2YmMgNjUxZDA2YjAgY2M1M2IwZjYgM2JjZTNjM2UgMjdkMjYwNGIiLG46ImZmZmZm''@;'; + put 'put ''ZmZmIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGJjZTZmYWFkIGE3MTc5ZTg0IGYzYjljYWMyIGZjNjMyNTUxIixoYXNoOlkuc2hhMjU2LGdSZWQ6ITEsZzpbIjZiMTdkMWYyIGUxMmM0MjQ3IGY4YmNlNmU1IDYzYTQ0MGYyIDc3MDM3ZDgxIDJkZWIzM2EwIGY0YTEzOTQ1IGQ4OThjMjk2''@;'; + put 'put ''IiwiNGZlMzQyZTIgZmUxYTdmOWIgOGVlN2ViNGEgN2MwZjllMTYgMmJjZTMzNTcgNmIzMTVlY2UgY2JiNjQwNjggMzdiZjUxZjUiXX0pLHEoInAzODQiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZm''@;'; + put 'put ''ZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgZmZm''@;'; + put 'put ''ZmZmZmMiLGI6ImIzMzEyZmE3IGUyM2VlN2U0IDk4OGUwNTZiIGUzZjgyZDE5IDE4MWQ5YzZlIGZlODE0MTEyIDAzMTQwODhmIDUwMTM4NzVhIGM2NTYzOThkIDhhMmVkMTlkIDJhODVjOGVkIGQzZWMyYWVmIixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZm''@;'; + put 'put ''ZiBmZmZmZmZmZiBjNzYzNGQ4MSBmNDM3MmRkZiA1ODFhMGRiMiA0OGIwYTc3YSBlY2VjMTk2YSBjY2M1Mjk3MyIsaGFzaDpZLnNoYTM4NCxnUmVkOiExLGc6WyJhYTg3Y2EyMiBiZThiMDUzNyA4ZWIxYzcxZSBmMzIwYWQ3NCA2ZTFkM2I2MiA4YmE3OWI5OCA1OWY3NDFlMCA4MjU0MmEzOCA1''@;'; + put 'put ''NTAyZjI1ZCBiZjU1Mjk2YyAzYTU0NWUzOCA3Mjc2MGFiNyIsIjM2MTdkZTRhIDk2MjYyYzZmIDVkOWU5OGJmIDkyOTJkYzI5IGY4ZjQxZGJkIDI4OWExNDdjIGU5ZGEzMTEzIGI1ZjBiOGMwIDBhNjBiMWNlIDFkN2U4MTlkIDdhNDMxZDdjIDkwZWEwZTVmIl19KSxxKCJwNTIxIix7dHlwZToi''@;'; + put 'put ''c2hvcnQiLHByaW1lOm51bGwscDoiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYg''@;'; + put 'put ''ZmZmZmZmZmYiLGE6IjAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZj''@;'; + put 'put ''IixiOiIwMDAwMDA1MSA5NTNlYjk2MSA4ZTFjOWExZiA5MjlhMjFhMCBiNjg1NDBlZSBhMmRhNzI1YiA5OWIzMTVmMyBiOGI0ODk5MSA4ZWYxMDllMSA1NjE5Mzk1MSBlYzdlOTM3YiAxNjUyYzBiZCAzYmIxYmYwNyAzNTczZGY4OCAzZDJjMzRmMSBlZjQ1MWZkNCA2YjUwM2YwMCIsbjoiMDAw''@;'; + put 'put ''MDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmEgNTE4Njg3ODMgYmYyZjk2NmIgN2ZjYzAxNDggZjcwOWE1ZDAgM2JiNWM5YjggODk5YzQ3YWUgYmI2ZmI3MWUgOTEzODY0MDkiLGhhc2g6WS5zaGE1MTIs''@;'; + put 'put ''Z1JlZDohMSxnOlsiMDAwMDAwYzYgODU4ZTA2YjcgMDQwNGU5Y2QgOWUzZWNiNjYgMjM5NWI0NDIgOWM2NDgxMzkgMDUzZmI1MjEgZjgyOGFmNjAgNmI0ZDNkYmEgYTE0YjVlNzcgZWZlNzU5MjggZmUxZGMxMjcgYTJmZmE4ZGUgMzM0OGIzYzEgODU2YTQyOWIgZjk3ZTdlMzEgYzJlNWJkNjYi''@;'; + put 'put ''LCIwMDAwMDExOCAzOTI5NmE3OCA5YTNiYzAwNCA1YzhhNWZiNCAyYzdkMWJkOSA5OGY1NDQ0OSA1NzliNDQ2OCAxN2FmYmQxNyAyNzNlNjYyYyA5N2VlNzI5OSA1ZWY0MjY0MCBjNTUwYjkwMSAzZmFkMDc2MSAzNTNjNzA4NiBhMjcyYzI0MCA4OGJlOTQ3NiA5ZmQxNjY1MCJdfSkscSgiY3Vy''@;'; + put 'put ''dmUyNTUxOSIse3R5cGU6Im1vbnQiLHByaW1lOiJwMjU1MTkiLHA6IjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiLGE6Ijc2ZDA2IixiOiIxIixuOiIxMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMTRk''@;'; + put 'put ''ZWY5ZGVhMmY3OWNkNiA1ODEyNjMxYTVjZjVkM2VkIixoYXNoOlkuc2hhMjU2LGdSZWQ6ITEsZzpbIjkiXX0pLHEoImVkMjU1MTkiLHt0eXBlOiJlZHdhcmRzIixwcmltZToicDI1NTE5IixwOiI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZm''@;'; + put 'put ''ZmZmZmZmZmZmZmVkIixhOiItMSIsYzoiMSIsZDoiNTIwMzZjZWUyYjZmZmU3MyA4Y2M3NDA3OTc3NzllODk4IDAwNzAwYTRkNDE0MWQ4YWIgNzVlYjRkY2ExMzU5NzhhMyIsbjoiMTAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDE0ZGVmOWRlYTJmNzljZDYgNTgxMjYzMWE1Y2Y1''@;'; + put 'put ''ZDNlZCIsaGFzaDpZLnNoYTI1NixnUmVkOiExLGc6WyIyMTY5MzZkM2NkNmU1M2ZlYzBhNGUyMzFmZGQ2ZGM1YzY5MmNjNzYwOTUyNWE3YjJjOTU2MmQ2MDhmMjVkNTFhIiwiNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY1OCJd''@;'; + put 'put ''fSk7dHJ5e2llPVooMTAzNyl9Y2F0Y2goSil7aWU9dm9pZCAwfXEoInNlY3AyNTZrMSIse3R5cGU6InNob3J0IixwcmltZToiazI1NiIscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiLGE6IjAiLGI6Ijci''@;'; + put 'put ''LG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGJhYWVkY2U2IGFmNDhhMDNiIGJmZDI1ZThjIGQwMzY0MTQxIixoOiIxIixoYXNoOlkuc2hhMjU2LGJldGE6IjdhZTk2YTJiNjU3YzA3MTA2ZTY0NDc5ZWFjMzQzNGU5OWNmMDQ5NzUxMmY1ODk5NWMxMzk2YzI4NzE5NTAx''@;'; + put 'put ''ZWUiLGxhbWJkYToiNTM2M2FkNGNjMDVjMzBlMGE1MjYxYzAyODgxMjY0NWExMjJlMjJlYTIwODE2Njc4ZGYwMjk2N2MxYjIzYmQ3MiIsYmFzaXM6W3thOiIzMDg2ZDIyMWE3ZDQ2YmNkZTg2YzkwZTQ5Mjg0ZWIxNSIsYjoiLWU0NDM3ZWQ2MDEwZTg4Mjg2ZjU0N2ZhOTBhYmZlNGMzIn0se2E6''@;'; + put 'put ''IjExNGNhNTBmN2E4ZTJmM2Y2NTdjMTEwOGQ5ZDQ0Y2ZkOCIsYjoiMzA4NmQyMjFhN2Q0NmJjZGU4NmM5MGU0OTI4NGViMTUifV0sZ1JlZDohMSxnOlsiNzliZTY2N2VmOWRjYmJhYzU1YTA2Mjk1Y2U4NzBiMDcwMjliZmNkYjJkY2UyOGQ5NTlmMjgxNWIxNmY4MTc5OCIsIjQ4M2FkYTc3MjZh''@;'; + put 'put ''M2M0NjU1ZGE0ZmJmYzBlMTEwOGE4ZmQxN2I0NDhhNjg1NTQxOTljNDdkMDhmZmIxMGQ0YjgiLGllXX0pfSw3OTU0OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooMzc4NSksbGU9WigyMTU2KSxZPVooOTUzKSxXPVooNTQyNyksTj1aKDk5MzEpLGVlPVkuYXNzZXJ0LHE9WigxMjUx''@;'; + put 'put ''KSxKPVooNjExKTtmdW5jdGlvbiBzZShvZSl7aWYoISh0aGlzIGluc3RhbmNlb2Ygc2UpKXJldHVybiBuZXcgc2Uob2UpOyJzdHJpbmciPT10eXBlb2Ygb2UmJihlZShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVyxvZSksIlVua25vd24gY3VydmUgIitvZSksb2U9V1tv''@;'; + put 'put ''ZV0pLG9lIGluc3RhbmNlb2YgVy5QcmVzZXRDdXJ2ZSYmKG9lPXtjdXJ2ZTpvZX0pLHRoaXMuY3VydmU9b2UuY3VydmUuY3VydmUsdGhpcy5uPXRoaXMuY3VydmUubix0aGlzLm5oPXRoaXMubi51c2hybigxKSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMuZz1vZS5jdXJ2ZS5nLHRoaXMuZy5w''@;'; + put 'put ''cmVjb21wdXRlKG9lLmN1cnZlLm4uYml0TGVuZ3RoKCkrMSksdGhpcy5oYXNoPW9lLmhhc2h8fG9lLmN1cnZlLmhhc2h9VS5leHBvcnRzPXNlLHNlLnByb3RvdHlwZS5rZXlQYWlyPWZ1bmN0aW9uKG9lKXtyZXR1cm4gbmV3IHEodGhpcyxvZSl9LHNlLnByb3RvdHlwZS5rZXlGcm9tUHJpdmF0''@;'; + put 'put ''ZT1mdW5jdGlvbihvZSxjZSl7cmV0dXJuIHEuZnJvbVByaXZhdGUodGhpcyxvZSxjZSl9LHNlLnByb3RvdHlwZS5rZXlGcm9tUHVibGljPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4gcS5mcm9tUHVibGljKHRoaXMsb2UsY2UpfSxzZS5wcm90b3R5cGUuZ2VuS2V5UGFpcj1mdW5jdGlvbihvZSl7''@;'; + put 'put ''b2V8fChvZT17fSk7Zm9yKHZhciBjZT1uZXcgbGUoe2hhc2g6dGhpcy5oYXNoLHBlcnM6b2UucGVycyxwZXJzRW5jOm9lLnBlcnNFbmN8fCJ1dGY4IixlbnRyb3B5Om9lLmVudHJvcHl8fE4odGhpcy5oYXNoLmhtYWNTdHJlbmd0aCksZW50cm9weUVuYzpvZS5lbnRyb3B5JiZvZS5lbnRyb3B5''@;'; + put 'put ''RW5jfHwidXRmOCIsbm9uY2U6dGhpcy5uLnRvQXJyYXkoKX0pLGRlPXRoaXMubi5ieXRlTGVuZ3RoKCksdmU9dGhpcy5uLnN1YihuZXcgaWUoMikpOzspe3ZhciBBZT1uZXcgaWUoY2UuZ2VuZXJhdGUoZGUpKTtpZighKEFlLmNtcCh2ZSk+MCkpcmV0dXJuIEFlLmlhZGRuKDEpLHRoaXMua2V5''@;'; + put 'put ''RnJvbVByaXZhdGUoQWUpfX0sc2UucHJvdG90eXBlLl90cnVuY2F0ZVRvTj1mdW5jdGlvbihvZSxjZSl7dmFyIGRlPTgqb2UuYnl0ZUxlbmd0aCgpLXRoaXMubi5iaXRMZW5ndGgoKTtyZXR1cm4gZGU+MCYmKG9lPW9lLnVzaHJuKGRlKSksIWNlJiZvZS5jbXAodGhpcy5uKT49MD9vZS5zdWIo''@;'; + put 'put ''dGhpcy5uKTpvZX0sc2UucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24ob2UsY2UsZGUsdmUpeyJvYmplY3QiPT10eXBlb2YgZGUmJih2ZT1kZSxkZT1udWxsKSx2ZXx8KHZlPXt9KSxjZT10aGlzLmtleUZyb21Qcml2YXRlKGNlLGRlKSxvZT10aGlzLl90cnVuY2F0ZVRvTihuZXcgaWUob2UsMTYp''@;'; + put 'put ''KTtmb3IodmFyIEFlPXRoaXMubi5ieXRlTGVuZ3RoKCksa2U9Y2UuZ2V0UHJpdmF0ZSgpLnRvQXJyYXkoImJlIixBZSksU2U9b2UudG9BcnJheSgiYmUiLEFlKSxJZT1uZXcgbGUoe2hhc2g6dGhpcy5oYXNoLGVudHJvcHk6a2Usbm9uY2U6U2UscGVyczp2ZS5wZXJzLHBlcnNFbmM6dmUucGVy''@;'; + put 'put ''c0VuY3x8InV0ZjgifSksVGU9dGhpcy5uLnN1YihuZXcgaWUoMSkpLEVlPTA7O0VlKyspe3ZhciBoZT12ZS5rP3ZlLmsoRWUpOm5ldyBpZShJZS5nZW5lcmF0ZSh0aGlzLm4uYnl0ZUxlbmd0aCgpKSk7aWYoISgoaGU9dGhpcy5fdHJ1bmNhdGVUb04oaGUsITApKS5jbXBuKDEpPD0wfHxoZS5j''@;'; + put 'put ''bXAoVGUpPj0wKSl7dmFyIE89dGhpcy5nLm11bChoZSk7aWYoIU8uaXNJbmZpbml0eSgpKXt2YXIgej1PLmdldFgoKSxuZT16LnVtb2QodGhpcy5uKTtpZigwIT09bmUuY21wbigwKSl7dmFyIHRlPWhlLmludm0odGhpcy5uKS5tdWwobmUubXVsKGNlLmdldFByaXZhdGUoKSkuaWFkZChvZSkp''@;'; + put 'put ''O2lmKDAhPT0odGU9dGUudW1vZCh0aGlzLm4pKS5jbXBuKDApKXt2YXIgeD0oTy5nZXRZKCkuaXNPZGQoKT8xOjApfCgwIT09ei5jbXAobmUpPzI6MCk7cmV0dXJuIHZlLmNhbm9uaWNhbCYmdGUuY21wKHRoaXMubmgpPjAmJih0ZT10aGlzLm4uc3ViKHRlKSx4Xj0xKSxuZXcgSih7cjpuZSxz''@;'; + put 'put ''OnRlLHJlY292ZXJ5UGFyYW06eH0pfX19fX19LHNlLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24ob2UsY2UsZGUsdmUpe29lPXRoaXMuX3RydW5jYXRlVG9OKG5ldyBpZShvZSwxNikpLGRlPXRoaXMua2V5RnJvbVB1YmxpYyhkZSx2ZSk7dmFyIEFlPShjZT1uZXcgSihjZSwiaGV4IikpLnIs''@;'; + put 'put ''a2U9Y2UucztpZihBZS5jbXBuKDEpPDB8fEFlLmNtcCh0aGlzLm4pPj0wfHxrZS5jbXBuKDEpPDB8fGtlLmNtcCh0aGlzLm4pPj0wKXJldHVybiExO3ZhciBTZSxJZT1rZS5pbnZtKHRoaXMubiksVGU9SWUubXVsKG9lKS51bW9kKHRoaXMubiksRWU9SWUubXVsKEFlKS51bW9kKHRoaXMubik7''@;'; + put 'put ''cmV0dXJuIHRoaXMuY3VydmUuX21heHdlbGxUcmljaz8hKFNlPXRoaXMuZy5qbXVsQWRkKFRlLGRlLmdldFB1YmxpYygpLEVlKSkuaXNJbmZpbml0eSgpJiZTZS5lcVhUb1AoQWUpOiEoU2U9dGhpcy5nLm11bEFkZChUZSxkZS5nZXRQdWJsaWMoKSxFZSkpLmlzSW5maW5pdHkoKSYmMD09PVNl''@;'; + put 'put ''LmdldFgoKS51bW9kKHRoaXMubikuY21wKEFlKX0sc2UucHJvdG90eXBlLnJlY292ZXJQdWJLZXk9ZnVuY3Rpb24ob2UsY2UsZGUsdmUpe2VlKCgzJmRlKT09PWRlLCJUaGUgcmVjb3ZlcnkgcGFyYW0gaXMgbW9yZSB0aGFuIHR3byBiaXRzIiksY2U9bmV3IEooY2UsdmUpO3ZhciBBZT10aGlz''@;'; + put 'put ''Lm4sa2U9bmV3IGllKG9lKSxTZT1jZS5yLEllPWNlLnMsVGU9MSZkZSxFZT1kZT4+MTtpZihTZS5jbXAodGhpcy5jdXJ2ZS5wLnVtb2QodGhpcy5jdXJ2ZS5uKSk+PTAmJkVlKXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGZpbmQgc2VuY29uZCBrZXkgY2FuZGluYXRlIik7U2U9dGhpcy5j''@;'; + put 'put ''dXJ2ZS5wb2ludEZyb21YKEVlP1NlLmFkZCh0aGlzLmN1cnZlLm4pOlNlLFRlKTt2YXIgaGU9Y2Uuci5pbnZtKEFlKSxPPUFlLnN1YihrZSkubXVsKGhlKS51bW9kKEFlKSx6PUllLm11bChoZSkudW1vZChBZSk7cmV0dXJuIHRoaXMuZy5tdWxBZGQoTyxTZSx6KX0sc2UucHJvdG90eXBlLmdl''@;'; + put 'put ''dEtleVJlY292ZXJ5UGFyYW09ZnVuY3Rpb24ob2UsY2UsZGUsdmUpe2lmKG51bGwhPT0oY2U9bmV3IEooY2UsdmUpKS5yZWNvdmVyeVBhcmFtKXJldHVybiBjZS5yZWNvdmVyeVBhcmFtO2Zvcih2YXIgQWU9MDtBZTw0O0FlKyspe3ZhciBrZTt0cnl7a2U9dGhpcy5yZWNvdmVyUHViS2V5KG9l''@;'; + put 'put ''LGNlLEFlKX1jYXRjaChTZSl7Y29udGludWV9aWYoa2UuZXEoZGUpKXJldHVybiBBZX10aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHZhbGlkIHJlY292ZXJ5IGZhY3RvciIpfX0sMTI1MTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDM3ODUpLGxlPVooOTUzKS5hc3Nl''@;'; + put 'put ''cnQ7ZnVuY3Rpb24gWShXLE4pe3RoaXMuZWM9Vyx0aGlzLnByaXY9bnVsbCx0aGlzLnB1Yj1udWxsLE4ucHJpdiYmdGhpcy5faW1wb3J0UHJpdmF0ZShOLnByaXYsTi5wcml2RW5jKSxOLnB1YiYmdGhpcy5faW1wb3J0UHVibGljKE4ucHViLE4ucHViRW5jKX1VLmV4cG9ydHM9WSxZLmZyb21Q''@;'; + put 'put ''dWJsaWM9ZnVuY3Rpb24oVyxOLGVlKXtyZXR1cm4gTiBpbnN0YW5jZW9mIFk/TjpuZXcgWShXLHtwdWI6TixwdWJFbmM6ZWV9KX0sWS5mcm9tUHJpdmF0ZT1mdW5jdGlvbihXLE4sZWUpe3JldHVybiBOIGluc3RhbmNlb2YgWT9OOm5ldyBZKFcse3ByaXY6Tixwcml2RW5jOmVlfSl9LFkucHJv''@;'; + put 'put ''dG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKCl7dmFyIFc9dGhpcy5nZXRQdWJsaWMoKTtyZXR1cm4gVy5pc0luZmluaXR5KCk/e3Jlc3VsdDohMSxyZWFzb246IkludmFsaWQgcHVibGljIGtleSJ9OlcudmFsaWRhdGUoKT9XLm11bCh0aGlzLmVjLmN1cnZlLm4pLmlzSW5maW5pdHkoKT97cmVz''@;'; + put 'put ''dWx0OiEwLHJlYXNvbjpudWxsfTp7cmVzdWx0OiExLHJlYXNvbjoiUHVibGljIGtleSAqIE4gIT0gTyJ9OntyZXN1bHQ6ITEscmVhc29uOiJQdWJsaWMga2V5IGlzIG5vdCBhIHBvaW50In19LFkucHJvdG90eXBlLmdldFB1YmxpYz1mdW5jdGlvbihXLE4pe3JldHVybiJzdHJpbmciPT10eXBl''@;'; + put 'put ''b2YgVyYmKE49VyxXPW51bGwpLHRoaXMucHVifHwodGhpcy5wdWI9dGhpcy5lYy5nLm11bCh0aGlzLnByaXYpKSxOP3RoaXMucHViLmVuY29kZShOLFcpOnRoaXMucHVifSxZLnByb3RvdHlwZS5nZXRQcml2YXRlPWZ1bmN0aW9uKFcpe3JldHVybiJoZXgiPT09Vz90aGlzLnByaXYudG9TdHJp''@;'; + put 'put ''bmcoMTYsMik6dGhpcy5wcml2fSxZLnByb3RvdHlwZS5faW1wb3J0UHJpdmF0ZT1mdW5jdGlvbihXLE4pe3RoaXMucHJpdj1uZXcgaWUoVyxOfHwxNiksdGhpcy5wcml2PXRoaXMucHJpdi51bW9kKHRoaXMuZWMuY3VydmUubil9LFkucHJvdG90eXBlLl9pbXBvcnRQdWJsaWM9ZnVuY3Rpb24o''@;'; + put 'put ''VyxOKXtpZihXLnh8fFcueSlyZXR1cm4ibW9udCI9PT10aGlzLmVjLmN1cnZlLnR5cGU/bGUoVy54LCJOZWVkIHggY29vcmRpbmF0ZSIpOiJzaG9ydCIhPT10aGlzLmVjLmN1cnZlLnR5cGUmJiJlZHdhcmRzIiE9PXRoaXMuZWMuY3VydmUudHlwZXx8bGUoVy54JiZXLnksIk5lZWQgYm90aCB4''@;'; + put 'put ''IGFuZCB5IGNvb3JkaW5hdGUiKSx2b2lkKHRoaXMucHViPXRoaXMuZWMuY3VydmUucG9pbnQoVy54LFcueSkpO3RoaXMucHViPXRoaXMuZWMuY3VydmUuZGVjb2RlUG9pbnQoVyxOKX0sWS5wcm90b3R5cGUuZGVyaXZlPWZ1bmN0aW9uKFcpe3JldHVybiBXLnZhbGlkYXRlKCl8fGxlKFcudmFs''@;'; + put 'put ''aWRhdGUoKSwicHVibGljIHBvaW50IG5vdCB2YWxpZGF0ZWQiKSxXLm11bCh0aGlzLnByaXYpLmdldFgoKX0sWS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihXLE4sZWUpe3JldHVybiB0aGlzLmVjLnNpZ24oVyx0aGlzLE4sZWUpfSxZLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oVyxOKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5lYy52ZXJpZnkoVyxOLHRoaXMpfSxZLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIjxLZXkgcHJpdjogIisodGhpcy5wcml2JiZ0aGlzLnByaXYudG9TdHJpbmcoMTYsMikpKyIgcHViOiAiKyh0aGlzLnB1YiYmdGhpcy5wdWIuaW5zcGVjdCgpKSsiID4i''@;'; + put 'put ''fX0sNjExOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooMzc4NSksbGU9Wig5NTMpLFk9bGUuYXNzZXJ0O2Z1bmN0aW9uIFcoc2Usb2Upe2lmKHNlIGluc3RhbmNlb2YgVylyZXR1cm4gc2U7dGhpcy5faW1wb3J0REVSKHNlLG9lKXx8KFkoc2UuciYmc2UucywiU2lnbmF0dXJlIHdp''@;'; + put 'put ''dGhvdXQgciBvciBzIiksdGhpcy5yPW5ldyBpZShzZS5yLDE2KSx0aGlzLnM9bmV3IGllKHNlLnMsMTYpLHRoaXMucmVjb3ZlcnlQYXJhbT12b2lkIDA9PT1zZS5yZWNvdmVyeVBhcmFtP251bGw6c2UucmVjb3ZlcnlQYXJhbSl9ZnVuY3Rpb24gTigpe3RoaXMucGxhY2U9MH1mdW5jdGlvbiBl''@;'; + put 'put ''ZShzZSxvZSl7dmFyIGNlPXNlW29lLnBsYWNlKytdO2lmKCEoMTI4JmNlKSlyZXR1cm4gY2U7dmFyIGRlPTE1JmNlO2lmKDA9PT1kZXx8ZGU+NClyZXR1cm4hMTtmb3IodmFyIHZlPTAsQWU9MCxrZT1vZS5wbGFjZTtBZTxkZTtBZSsrLGtlKyspdmU8PD04LHZlfD1zZVtrZV0sdmU+Pj49MDty''@;'; + put 'put ''ZXR1cm4hKHZlPD0xMjcpJiYob2UucGxhY2U9a2UsdmUpfWZ1bmN0aW9uIHEoc2Upe2Zvcih2YXIgb2U9MCxjZT1zZS5sZW5ndGgtMTshc2Vbb2VdJiYhKDEyOCZzZVtvZSsxXSkmJm9lPGNlOylvZSsrO3JldHVybiAwPT09b2U/c2U6c2Uuc2xpY2Uob2UpfWZ1bmN0aW9uIEooc2Usb2Upe2lm''@;'; + put 'put ''KG9lPDEyOClzZS5wdXNoKG9lKTtlbHNle3ZhciBjZT0xKyhNYXRoLmxvZyhvZSkvTWF0aC5MTjI+Pj4zKTtmb3Ioc2UucHVzaCgxMjh8Y2UpOy0tY2U7KXNlLnB1c2gob2U+Pj4oY2U8PDMpJjI1NSk7c2UucHVzaChvZSl9fVUuZXhwb3J0cz1XLFcucHJvdG90eXBlLl9pbXBvcnRERVI9ZnVu''@;'; + put 'put ''Y3Rpb24oc2Usb2Upe3NlPWxlLnRvQXJyYXkoc2Usb2UpO3ZhciBjZT1uZXcgTjtpZig0OCE9PXNlW2NlLnBsYWNlKytdKXJldHVybiExO3ZhciBkZT1lZShzZSxjZSk7aWYoITE9PT1kZXx8ZGUrY2UucGxhY2UhPT1zZS5sZW5ndGh8fDIhPT1zZVtjZS5wbGFjZSsrXSlyZXR1cm4hMTt2YXIg''@;'; + put 'put ''dmU9ZWUoc2UsY2UpO2lmKCExPT09dmUpcmV0dXJuITE7dmFyIEFlPXNlLnNsaWNlKGNlLnBsYWNlLHZlK2NlLnBsYWNlKTtpZihjZS5wbGFjZSs9dmUsMiE9PXNlW2NlLnBsYWNlKytdKXJldHVybiExO3ZhciBrZT1lZShzZSxjZSk7aWYoITE9PT1rZXx8c2UubGVuZ3RoIT09a2UrY2UucGxh''@;'; + put 'put ''Y2UpcmV0dXJuITE7dmFyIFNlPXNlLnNsaWNlKGNlLnBsYWNlLGtlK2NlLnBsYWNlKTtpZigwPT09QWVbMF0pe2lmKCEoMTI4JkFlWzFdKSlyZXR1cm4hMTtBZT1BZS5zbGljZSgxKX1pZigwPT09U2VbMF0pe2lmKCEoMTI4JlNlWzFdKSlyZXR1cm4hMTtTZT1TZS5zbGljZSgxKX1yZXR1cm4g''@;'; + put 'put ''dGhpcy5yPW5ldyBpZShBZSksdGhpcy5zPW5ldyBpZShTZSksdGhpcy5yZWNvdmVyeVBhcmFtPW51bGwsITB9LFcucHJvdG90eXBlLnRvREVSPWZ1bmN0aW9uKHNlKXt2YXIgb2U9dGhpcy5yLnRvQXJyYXkoKSxjZT10aGlzLnMudG9BcnJheSgpO2ZvcigxMjgmb2VbMF0mJihvZT1bMF0uY29u''@;'; + put 'put ''Y2F0KG9lKSksMTI4JmNlWzBdJiYoY2U9WzBdLmNvbmNhdChjZSkpLG9lPXEob2UpLGNlPXEoY2UpOyEoY2VbMF18fDEyOCZjZVsxXSk7KWNlPWNlLnNsaWNlKDEpO3ZhciBkZT1bMl07SihkZSxvZS5sZW5ndGgpLChkZT1kZS5jb25jYXQob2UpKS5wdXNoKDIpLEooZGUsY2UubGVuZ3RoKTt2''@;'; + put 'put ''YXIgdmU9ZGUuY29uY2F0KGNlKSxBZT1bNDhdO3JldHVybiBKKEFlLHZlLmxlbmd0aCksQWU9QWUuY29uY2F0KHZlKSxsZS5lbmNvZGUoQWUsc2UpfX0sNTk4MDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDM3MTUpLGxlPVooNTQyNyksWT1aKDk1MyksVz1ZLmFzc2VydCxOPVku''@;'; + put 'put ''cGFyc2VCeXRlcyxlZT1aKDkwODcpLHE9WigzNjIyKTtmdW5jdGlvbiBKKHNlKXtpZihXKCJlZDI1NTE5Ij09PXNlLCJvbmx5IHRlc3RlZCB3aXRoIGVkMjU1MTkgc28gZmFyIiksISh0aGlzIGluc3RhbmNlb2YgSikpcmV0dXJuIG5ldyBKKHNlKTt0aGlzLmN1cnZlPXNlPWxlW3NlXS5jdXJ2''@;'; + put 'put ''ZSx0aGlzLmc9c2UuZyx0aGlzLmcucHJlY29tcHV0ZShzZS5uLmJpdExlbmd0aCgpKzEpLHRoaXMucG9pbnRDbGFzcz1zZS5wb2ludCgpLmNvbnN0cnVjdG9yLHRoaXMuZW5jb2RpbmdMZW5ndGg9TWF0aC5jZWlsKHNlLm4uYml0TGVuZ3RoKCkvOCksdGhpcy5oYXNoPWllLnNoYTUxMn1VLmV4''@;'; + put 'put ''cG9ydHM9SixKLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKHNlLG9lKXtzZT1OKHNlKTt2YXIgY2U9dGhpcy5rZXlGcm9tU2VjcmV0KG9lKSxkZT10aGlzLmhhc2hJbnQoY2UubWVzc2FnZVByZWZpeCgpLHNlKSx2ZT10aGlzLmcubXVsKGRlKSxBZT10aGlzLmVuY29kZVBvaW50KHZlKSxrZT10''@;'; + put 'put ''aGlzLmhhc2hJbnQoQWUsY2UucHViQnl0ZXMoKSxzZSkubXVsKGNlLnByaXYoKSksU2U9ZGUuYWRkKGtlKS51bW9kKHRoaXMuY3VydmUubik7cmV0dXJuIHRoaXMubWFrZVNpZ25hdHVyZSh7Ujp2ZSxTOlNlLFJlbmNvZGVkOkFlfSl9LEoucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihzZSxv''@;'; + put 'put ''ZSxjZSl7c2U9TihzZSksb2U9dGhpcy5tYWtlU2lnbmF0dXJlKG9lKTt2YXIgZGU9dGhpcy5rZXlGcm9tUHVibGljKGNlKSx2ZT10aGlzLmhhc2hJbnQob2UuUmVuY29kZWQoKSxkZS5wdWJCeXRlcygpLHNlKSxBZT10aGlzLmcubXVsKG9lLlMoKSk7cmV0dXJuIG9lLlIoKS5hZGQoZGUucHVi''@;'; + put 'put ''KCkubXVsKHZlKSkuZXEoQWUpfSxKLnByb3RvdHlwZS5oYXNoSW50PWZ1bmN0aW9uKCl7Zm9yKHZhciBzZT10aGlzLmhhc2goKSxvZT0wO29lPGFyZ3VtZW50cy5sZW5ndGg7b2UrKylzZS51cGRhdGUoYXJndW1lbnRzW29lXSk7cmV0dXJuIFkuaW50RnJvbUxFKHNlLmRpZ2VzdCgpKS51bW9k''@;'; + put 'put ''KHRoaXMuY3VydmUubil9LEoucHJvdG90eXBlLmtleUZyb21QdWJsaWM9ZnVuY3Rpb24oc2Upe3JldHVybiBlZS5mcm9tUHVibGljKHRoaXMsc2UpfSxKLnByb3RvdHlwZS5rZXlGcm9tU2VjcmV0PWZ1bmN0aW9uKHNlKXtyZXR1cm4gZWUuZnJvbVNlY3JldCh0aGlzLHNlKX0sSi5wcm90b3R5''@;'; + put 'put ''cGUubWFrZVNpZ25hdHVyZT1mdW5jdGlvbihzZSl7cmV0dXJuIHNlIGluc3RhbmNlb2YgcT9zZTpuZXcgcSh0aGlzLHNlKX0sSi5wcm90b3R5cGUuZW5jb2RlUG9pbnQ9ZnVuY3Rpb24oc2Upe3ZhciBvZT1zZS5nZXRZKCkudG9BcnJheSgibGUiLHRoaXMuZW5jb2RpbmdMZW5ndGgpO3JldHVy''@;'; + put 'put ''biBvZVt0aGlzLmVuY29kaW5nTGVuZ3RoLTFdfD1zZS5nZXRYKCkuaXNPZGQoKT8xMjg6MCxvZX0sSi5wcm90b3R5cGUuZGVjb2RlUG9pbnQ9ZnVuY3Rpb24oc2Upe3ZhciBvZT0oc2U9WS5wYXJzZUJ5dGVzKHNlKSkubGVuZ3RoLTEsY2U9c2Uuc2xpY2UoMCxvZSkuY29uY2F0KC0xMjkmc2Vb''@;'; + put 'put ''b2VdKSxkZT0wIT0oMTI4JnNlW29lXSksdmU9WS5pbnRGcm9tTEUoY2UpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50RnJvbVkodmUsZGUpfSxKLnByb3RvdHlwZS5lbmNvZGVJbnQ9ZnVuY3Rpb24oc2Upe3JldHVybiBzZS50b0FycmF5KCJsZSIsdGhpcy5lbmNvZGluZ0xlbmd0aCl9LEoucHJv''@;'; + put 'put ''dG90eXBlLmRlY29kZUludD1mdW5jdGlvbihzZSl7cmV0dXJuIFkuaW50RnJvbUxFKHNlKX0sSi5wcm90b3R5cGUuaXNQb2ludD1mdW5jdGlvbihzZSl7cmV0dXJuIHNlIGluc3RhbmNlb2YgdGhpcy5wb2ludENsYXNzfX0sOTA4NzooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDk1''@;'; + put 'put ''MyksbGU9aWUuYXNzZXJ0LFk9aWUucGFyc2VCeXRlcyxXPWllLmNhY2hlZFByb3BlcnR5O2Z1bmN0aW9uIE4oZWUscSl7dGhpcy5lZGRzYT1lZSx0aGlzLl9zZWNyZXQ9WShxLnNlY3JldCksZWUuaXNQb2ludChxLnB1Yik/dGhpcy5fcHViPXEucHViOnRoaXMuX3B1YkJ5dGVzPVkocS5wdWIp''@;'; + put 'put ''fU4uZnJvbVB1YmxpYz1mdW5jdGlvbihlZSxxKXtyZXR1cm4gcSBpbnN0YW5jZW9mIE4/cTpuZXcgTihlZSx7cHViOnF9KX0sTi5mcm9tU2VjcmV0PWZ1bmN0aW9uKGVlLHEpe3JldHVybiBxIGluc3RhbmNlb2YgTj9xOm5ldyBOKGVlLHtzZWNyZXQ6cX0pfSxOLnByb3RvdHlwZS5zZWNyZXQ9''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VjcmV0fSxXKE4sInB1YkJ5dGVzIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZVBvaW50KHRoaXMucHViKCkpfSksVyhOLCJwdWIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3B1YkJ5dGVzP3RoaXMuZWRkc2EuZGVjb2RlUG9p''@;'; + put 'put ''bnQodGhpcy5fcHViQnl0ZXMpOnRoaXMuZWRkc2EuZy5tdWwodGhpcy5wcml2KCkpfSksVyhOLCJwcml2Qnl0ZXMiLGZ1bmN0aW9uKCl7dmFyIGVlPXRoaXMuZWRkc2EscT10aGlzLmhhc2goKSxKPWVlLmVuY29kaW5nTGVuZ3RoLTEsc2U9cS5zbGljZSgwLGVlLmVuY29kaW5nTGVuZ3RoKTty''@;'; + put 'put ''ZXR1cm4gc2VbMF0mPTI0OCxzZVtKXSY9MTI3LHNlW0pdfD02NCxzZX0pLFcoTiwicHJpdiIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVJbnQodGhpcy5wcml2Qnl0ZXMoKSl9KSxXKE4sImhhc2giLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuaGFzaCgpLnVwZGF0''@;'; + put 'put ''ZSh0aGlzLnNlY3JldCgpKS5kaWdlc3QoKX0pLFcoTiwibWVzc2FnZVByZWZpeCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNoKCkuc2xpY2UodGhpcy5lZGRzYS5lbmNvZGluZ0xlbmd0aCl9KSxOLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKGVlKXtyZXR1cm4gbGUodGhpcy5fc2VjcmV0''@;'; + put 'put ''LCJLZXlQYWlyIGNhbiBvbmx5IHZlcmlmeSIpLHRoaXMuZWRkc2Euc2lnbihlZSx0aGlzKX0sTi5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKGVlLHEpe3JldHVybiB0aGlzLmVkZHNhLnZlcmlmeShlZSxxLHRoaXMpfSxOLnByb3RvdHlwZS5nZXRTZWNyZXQ9ZnVuY3Rpb24oZWUpe3JldHVy''@;'; + put 'put ''biBsZSh0aGlzLl9zZWNyZXQsIktleVBhaXIgaXMgcHVibGljIG9ubHkiKSxpZS5lbmNvZGUodGhpcy5zZWNyZXQoKSxlZSl9LE4ucHJvdG90eXBlLmdldFB1YmxpYz1mdW5jdGlvbihlZSl7cmV0dXJuIGllLmVuY29kZSh0aGlzLnB1YkJ5dGVzKCksZWUpfSxVLmV4cG9ydHM9Tn0sMzYyMjoo''@;'; + put 'put ''VSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDM3ODUpLGxlPVooOTUzKSxZPWxlLmFzc2VydCxXPWxlLmNhY2hlZFByb3BlcnR5LE49bGUucGFyc2VCeXRlcztmdW5jdGlvbiBlZShxLEope3RoaXMuZWRkc2E9cSwib2JqZWN0IiE9dHlwZW9mIEomJihKPU4oSikpLEFycmF5LmlzQXJy''@;'; + put 'put ''YXkoSikmJihKPXtSOkouc2xpY2UoMCxxLmVuY29kaW5nTGVuZ3RoKSxTOkouc2xpY2UocS5lbmNvZGluZ0xlbmd0aCl9KSxZKEouUiYmSi5TLCJTaWduYXR1cmUgd2l0aG91dCBSIG9yIFMiKSxxLmlzUG9pbnQoSi5SKSYmKHRoaXMuX1I9Si5SKSxKLlMgaW5zdGFuY2VvZiBpZSYmKHRoaXMu''@;'; + put 'put ''X1M9Si5TKSx0aGlzLl9SZW5jb2RlZD1BcnJheS5pc0FycmF5KEouUik/Si5SOkouUmVuY29kZWQsdGhpcy5fU2VuY29kZWQ9QXJyYXkuaXNBcnJheShKLlMpP0ouUzpKLlNlbmNvZGVkfVcoZWUsIlMiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlSW50KHRoaXMuU2VuY29k''@;'; + put 'put ''ZWQoKSl9KSxXKGVlLCJSIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmRlY29kZVBvaW50KHRoaXMuUmVuY29kZWQoKSl9KSxXKGVlLCJSZW5jb2RlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVQb2ludCh0aGlzLlIoKSl9KSxXKGVlLCJTZW5jb2RlZCIsZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVJbnQodGhpcy5TKCkpfSksZWUucHJvdG90eXBlLnRvQnl0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZW5jb2RlZCgpLmNvbmNhdCh0aGlzLlNlbmNvZGVkKCkpfSxlZS5wcm90b3R5cGUudG9IZXg9ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''bGUuZW5jb2RlKHRoaXMudG9CeXRlcygpLCJoZXgiKS50b1VwcGVyQ2FzZSgpfSxVLmV4cG9ydHM9ZWV9LDEwMzc6VT0+e1UuZXhwb3J0cz17ZG91Ymxlczp7c3RlcDo0LHBvaW50czpbWyJlNjBmY2U5M2I1OWU5ZWM1MzAxMWFhYmMyMWMyM2U5N2IyYTMxMzY5Yjg3YTVhZTljNDRlZTg5ZTJh''@;'; + put 'put ''NmRlYzBhIiwiZjdlMzUwNzM5OWU1OTU5MjlkYjk5ZjM0ZjU3OTM3MTAxMjk2ODkxZTQ0ZDIzZjBiZTFmMzJjY2U2OTYxNjgyMSJdLFsiODI4MjI2MzIxMmM2MDlkOWVhMmE2ZTNlMTcyZGUyMzhkOGMzOWNhYmQ1YWMxY2ExMDY0NmUyM2ZkNWY1MTUwOCIsIjExZjhhODA5ODU1N2RmZTQ1ZTgy''@;'; + put 'put ''NTZlODMwYjYwYWNlNjJkNjEzYWMyZjdiMTdiZWQzMWI2ZWFmZjZlMjZjYWYiXSxbIjE3NWUxNTlmNzI4Yjg2NWE3MmY5OWNjNmM2ZmM4NDZkZTBiOTM4MzNmZDIyMjJlZDczZmNlNWI1NTFlNWI3MzkiLCJkMzUwNmUwZDllM2M3OWViYTRlZjk3YTUxZmY3MWY1ZWFjYjU5NTVhZGQyNDM0NWM2''@;'; + put 'put ''ZWZhNmZmZWU5ZmVkNjk1Il0sWyIzNjNkOTBkNDQ3YjAwYzljOTljZWFjMDViNjI2MmVlMDUzNDQxYzdlNTU1NTJmZmU1MjZiYWQ4ZjgzZmY0NjQwIiwiNGUyNzNhZGZjNzMyMjIxOTUzYjQ0NTM5N2YzMzYzMTQ1YjlhODkwMDgxOTllY2I2MjAwM2M3ZjNiZWU5ZGU5Il0sWyI4YjRiNWYxNjVk''@;'; + put 'put ''ZjNjMmJlOGM2MjQ0YjViNzQ1NjM4ODQzZTRhNzgxYTE1YmNkMWI2OWY3OWE1NWRmZmRmODBjIiwiNGFhZDBhNmY2OGQzMDhiNGIzZmJkNzgxM2FiMGRhMDRmOWUzMzY1NDYxNjJlZTU2YjNlZmYwYzY1ZmQ0ZmQzNiJdLFsiNzIzY2JhYTZlNWRiOTk2ZDZiZjc3MWMwMGJkNTQ4YzdiNzAwZGJm''@;'; + put 'put ''ZmE2YzBlNzdiY2I2MTE1OTI1MjMyZmNkYSIsIjk2ZTg2N2I1NTk1Y2M0OThhOTIxMTM3NDg4ODI0ZDZlMjY2MGEwNjUzNzc5NDk0ODAxZGMwNjlkOWViMzlmNWYiXSxbImVlYmZhNGQ0OTNiZWJmOThiYTVmZWVjODEyYzJkM2I1MDk0Nzk2MTIzN2E5MTk4MzlhNTMzZWNhMGU3ZGQ3ZmEiLCI1''@;'; + put 'put ''ZDlhOGNhMzk3MGVmMGYyNjllZTdlZGFmMTc4MDg5ZDlhZTRjZGMzYTcxMWY3MTJkZGZkNGZkYWUxZGU4OTk5Il0sWyIxMDBmNDRkYTY5NmU3MTY3Mjc5MWQwYTA5YjdiZGU0NTlmMTIxNWEyOWIzYzAzYmZlZmQ3ODM1YjM5YTQ4ZGIwIiwiY2RkOWUxMzE5MmEwMGI3NzJlYzhmMzMwMGMwOTA2''@;'; + put 'put ''NjZiN2ZmNGExOGZmNTE5NWFjMGZiZDVjZDYyYmM2NWEwOSJdLFsiZTEwMzFiZTI2MmM3ZWQxYjFkYzkyMjdhNGEwNGMwMTdhNzdmOGQ0NDY0ZjNiMzg1MmM4YWNkZTZlNTM0ZmQyZCIsIjlkNzA2MTkyODk0MDQwNWU2YmI2YTQxNzY1OTc1MzVhZjI5MmRkNDE5ZTFjZWQ3OWE0NGYxOGYyOTQ1''@;'; + put 'put ''NmEwMGQiXSxbImZlZWE2Y2FlNDZkNTViNTMwYWMyODM5ZjE0M2JkN2VjNWNmOGIyNjZhNDFkNmFmNTJkNWU2ODhkOTA5NDY5NmQiLCJlNTdjNmI2Yzk3ZGNlMWJhYjA2ZTRlMTJiZjNlY2Q1Yzk4MWM4OTU3Y2M0MTQ0MmQzMTU1ZGViZjE4MDkwMDg4Il0sWyJkYTY3YTkxZDkxMDQ5Y2RjYjM2''@;'; + put 'put ''N2JlNGJlNmZmY2EzY2ZlZWQ2NTdkODA4NTgzZGUzM2ZhOTc4YmMxZWM2Y2IxIiwiOWJhY2FhMzU0ODE2NDJiYzQxZjQ2M2Y3ZWM5NzgwZTVkZWM3YWRjNTA4Zjc0MGExN2U5ZWE4ZTI3YTY4YmUxZCJdLFsiNTM5MDRmYWEwYjMzNGNkZGE2ZTAwMDkzNWVmMjIxNTFlYzA4ZDBmN2JiMTEwNjlm''@;'; + put 'put ''NTc1NDVjY2MxYTM3YjdjMCIsIjViYzA4N2QwYmM4MDEwNmQ4OGM5ZWNjYWMyMGQzYzFjMTM5OTk5ODFlMTQ0MzQ2OTlkY2IwOTZiMDIyNzcxYzgiXSxbIjhlN2JjZDBiZDM1OTgzYTc3MTljY2E3NzY0Y2E5MDY3NzliNTNhMDQzYTliOGJjYWVmZjk1OWY0M2FkODYwNDciLCIxMGI3NzcwYjJh''@;'; + put 'put ''M2RhNGIzOTQwMzEwNDIwY2E5NTE0NTc5ZTg4ZTJlNDdmZDY4YjNlYTEwMDQ3ZTg0NjAzNzJhIl0sWyIzODVlZWQzNGMxY2RmZjIxZTZkMDgxODY4OWI4MWJkZTcxYTdmNGYxODM5N2U2NjkwYTg0MWUxNTk5YzQzODYyIiwiMjgzYmViYzNlOGVhMjNmNTY3MDFkZTE5ZTllYmY0NTc2YjMwNGVl''@;'; + put 'put ''YzIwODZkYzhjYzA0NThmZTU1NDJlNTQ1MyJdLFsiNmY5ZDliODAzZWNmMTkxNjM3YzczYTQ0MTNkZmExODBmZGRmODRhNTk0N2ZiYzljNjA2ZWQ4NmMzZmFjM2E3IiwiN2M4MGM2OGU2MDMwNTliYTY5YjhlMmEzMGU0NWM0ZDQ3ZWE0ZGQyZjVjMjgxMDAyZDg2ODkwNjAzYTg0MjE2MCJdLFsi''@;'; + put 'put ''MzMyMmQ0MDEyNDNjNGUyNTgyYTIxNDdjMTA0ZDZlY2JmNzc0ZDE2M2RiMGY1ZTUzMTNiN2UwZTc0MmQwZTZiZCIsIjU2ZTcwNzk3ZTk2NjRlZjViZmIwMTliYzRkZGFmOWI3MjgwNWY2M2VhMjg3M2FmNjI0ZjNhMmU5NmMyOGIyYTAiXSxbIjg1NjcyYzdkMmRlMGI3ZGEyYmQxNzcwZDg5NjY1''@;'; + put 'put ''ODY4NzQxYjNmOWFmNzY0MzM5NzcyMWQ3NGQyODEzNGFiODMiLCI3YzQ4MWI5YjViNDNiMmViNjM3NDA0OWJmYTYyYzJlNWU3N2YxN2ZjYzUyOThmNDRjOGUzMDk0Zjc5MDMxM2E2Il0sWyI5NDhiZjgwOWIxOTg4YTQ2YjA2YzlmMTkxOTQxM2IxMGY5MjI2YzYwZjY2ODgzMmZmZDk1OWFmNjBj''@;'; + put 'put ''ODJhMGEiLCI1M2E1NjI4NTZkY2I2NjQ2ZGM2Yjc0YzVkMWMzNDE4YzZkNGRmZjA4Yzk3Y2QyYmVkNGNiN2Y4OGQ4YzhlNTg5Il0sWyI2MjYwY2U3ZjQ2MTgwMWMzNGYwNjdjZTBmMDI4NzNhOGYxYjBlNDRkZmM2OTc1MmFjY2VjZDgxOWYzOGZkOGU4IiwiYmMyZGE4MmI2ZmE1YjU3MWE3ZjA5''@;'; + put 'put ''MDQ5Nzc2YTFlZjdlY2QyOTIyMzgwNTFjMTk4YzFhODRlOTViMmI0YWUxNyJdLFsiZTUwMzdkZTBhZmMxZDhkNDNkODM0ODQxNGJiZjQxMDMwNDNlYzhmNTc1YmZkYzQzMjk1M2NjOGQyMDM3ZmEyZCIsIjQ1NzE1MzRiYWE5NGQzYjVmOWY5OGQwOWZiOTkwYmRkYmQ1ZjViMDNlYzQ4MWYxMGUw''@;'; + put 'put ''ZTVkYzg0MWQ3NTViZGEiXSxbImUwNjM3MmIwZjRhMjA3YWRmNWVhOTA1ZThmMTc3MWI0ZTdlOGRiZDFjNmE2YzViNzI1ODY2YTBhZTRmY2U3MjUiLCI3YTkwODk3NGJjZTE4Y2ZlMTJhMjdiYjJhZDVhNDg4Y2Q3NDg0YTc3ODcxMDQ4NzBiMjcwMzRmOTRlZWUzMWRkIl0sWyIyMTNjN2E3MTVj''@;'; + put 'put ''ZDVkNDUzNThkMGJiZjlkYzBjZTAyMjA0YjEwYmRkZTJhM2Y1ODU0MGFkNjkwOGQwNTU5NzU0IiwiNGI2ZGFkMGI1YWU0NjI1MDcwMTNhZDA2MjQ1YmExOTBiYjQ4NTBmNWYzNmE3ZWVkZGZmMmMyNzUzNGI0NThmMiJdLFsiNGU3YzI3MmE3YWY0YjM0ZThkYmI5MzUyYTU0MTlhODdlMjgzOGM3''@;'; + put 'put ''MGFkYzYyY2RkZjBjYzNhM2IwOGZiZDUzYyIsIjE3NzQ5Yzc2NmM5ZDBiMThlMTZmZDA5ZjZkZWY2ODFiNTMwYjk2MTRiZmY3ZGQzM2UwYjM5NDE4MTdkY2FhZTYiXSxbImZlYTc0ZTNkYmU3NzhiMWIxMGYyMzhhZDYxNjg2YWE1Yzc2ZTNkYjJiZTQzMDU3NjMyNDI3ZTI4NDBmYjI3YjYiLCI2''@;'; + put 'put ''ZTA1NjhkYjliMGIxMzI5N2NmNjc0ZGVjY2I2YWY5MzEyNmI1OTZiOTczZjdiNzc3MDFkM2RiN2YyM2NiOTZmIl0sWyI3NmU2NDExM2Y2NzdjZjBlMTBhMjU3MGQ1OTk5NjhkMzE1NDRlMTc5Yjc2MDQzMjk1MmMwMmE0NDE3YmRkZTM5IiwiYzkwZGRmOGRlZTRlOTVjZjU3NzA2NmQ3MDY4MWYw''@;'; + put 'put ''ZDM1ZTJhMzNkMmI1NmQyMDMyYjRiMTc1MmQxOTAxYWMwMSJdLFsiYzczOGM1NmIwM2IyYWJlMWU4MjgxYmFhNzQzZjhmOWE4ZjdjYzY0M2RmMjZjYmVlM2FiMTUwMjQyYmNiYjg5MSIsIjg5M2ZiNTc4OTUxYWQyNTM3ZjcxOGYyZWFjYmZiYmJiODIzMTRlZWY3ODgwY2ZlOTE3ZTczNWQ5Njk5''@;'; + put 'put ''YTg0YzMiXSxbImQ4OTU2MjY1NDhiNjViODFlMjY0Yzc2MzdjOTcyODc3ZDFkNzJlNWYzYTkyNTAxNDM3MmU5ZjY1ODhmNmMxNGIiLCJmZWJmYWEzOGYyYmM3ZWFlNzI4ZWM2MDgxOGMzNDBlYjAzNDI4ZDYzMmJiMDY3ZTE3OTM2M2VkNzVkN2Q5OTFmIl0sWyJiOGRhOTQwMzJhOTU3NTE4ZWIw''@;'; + put 'put ''ZjY0MzM1NzFlODc2MWNlZmZjNzM2OTNlODRlZGQ0OTE1MGE1NjRmNjc2ZTAzIiwiMjgwNGRmYTQ0ODA1YTFlNGQ3Yzk5Y2M5NzYyODA4YjA5MmNjNTg0ZDk1ZmYzYjUxMTQ4OGU0ZTc0ZWZkZjZlNyJdLFsiZTgwZmVhMTQ0NDFmYjMzYTdkOGFkYWI5NDc1ZDdmYWIyMDE5ZWZmYjUxNTZhNzky''@;'; + put 'put ''ZjFhMTE3NzhlM2MwZGY1ZCIsImVlZDFkZTdmNjM4ZTAwNzcxZTg5NzY4Y2EzY2E5NDQ3MmQxNTVlODBhZjMyMmVhOWZjYjQyOTFiNmFjOWVjNzgiXSxbImEzMDE2OTdiZGZjZDcwNDMxM2JhNDhlNTFkNTY3NTQzZjJhMTgyMDMxZWZkNjkxNWRkYzA3YmJjYzRlMTYwNzAiLCI3MzcwZjkxY2Zi''@;'; + put 'put ''NjdlNGY1MDgxODA5ZmEyNWQ0MGY5YjE3MzVkYmY3YzBhMTFhMTMwYzBkMWEwNDFlMTc3ZWExIl0sWyI5MGFkODViMzg5ZDZiOTM2NDYzZjlkMDUxMjY3OGRlMjA4Y2MzMzBiMTEzMDdmZmZhYjdhYzYzZTNmYjA0ZWQ0IiwiZTUwN2EzNjIwYTM4MjYxYWZmZGNiZDk0MjcyMjJiODM5YWVmYWJl''@;'; + put 'put ''MTU4Mjg5NGQ5OTFkNGQ0OGNiNmVmMTUwIl0sWyI4ZjY4YjlkMmY2M2I1ZjMzOTIzOWMxYWQ5ODFmMTYyZWU4OGM1Njc4NzIzZWEzMzUxYjdiNDQ0YzllYzRjMGRhIiwiNjYyYTlmMmRiYTA2Mzk4NmRlMWQ5MGMyYjZiZTIxNWRiYmVhMmNmZTk1NTEwYmZkZjIzY2JmNzk1MDFmZmY4MiJdLFsi''@;'; + put 'put ''ZTRmM2ZiMDE3NmFmODVkNjVmZjk5ZmY5MTk4YzM2MDkxZjQ4ZTg2NTAzNjgxZTNlNjY4NmZkNTA1MzIzMWUxMSIsIjFlNjM2MzNhZDBlZjRmMWMxNjYxYTZkMGVhMDJiNzI4NmNjN2U3NGVjOTUxZDFjOTgyMmMzODU3NmZlYjczYmMiXSxbIjhjMDBmYTliMThlYmYzMzFlYjk2MTUzN2E0NWE0''@;'; + put 'put ''MjY2YzcwMzRmMmYwZDRlMWQwNzE2ZmI2ZWFlMjBlYWUyOWUiLCJlZmE0NzI2N2ZlYTUyMWExYTlkYzM0M2EzNzM2Yzk3NGMyZmFkYWZhODFlMzZjNTRlN2QyYTRjNjY3MDI0MTRiIl0sWyJlN2EyNmNlNjlkZDQ4MjlmM2UxMGNlYzBhOWU5OGVkMzE0M2QwODRmMzA4YjkyYzA5OTdmZGRmYzYw''@;'; + put 'put ''Y2IzZTQxIiwiMmE3NThlMzAwZmE3OTg0YjQ3MWIwMDZhMWFhZmJiMThkMGE2YjJjMDQyMGU4M2UyMGU4YTk0MjFjZjJjZmQ1MSJdLFsiYjY0NTllMGVlMzY2MmVjOGQyMzU0MGMyMjNiY2JkYzU3MWNiY2I5NjdkNzk0MjRmM2NmMjllYjNkZTZiODBlZiIsIjY3Yzg3NmQwNmYzZTA2ZGUxZGFk''@;'; + put 'put ''ZjE2ZTU2NjFkYjNjNGIzYWU2ZDQ4ZTM1YjJmZjMwYmYwYjYxYTcxYmE0NSJdLFsiZDY4YTgwYzgyODBiYjg0MDc5MzIzNGFhMTE4ZjA2MjMxZDZmMWZjNjdlNzNjNWE1ZGVkYTBmNWI0OTY5NDNlOCIsImRiOGJhOWZmZjRiNTg2ZDAwYzRiMWY5MTc3YjBlMjhiNWIwZTdiOGY3ODQ1Mjk1YTI5''@;'; + put 'put ''NGM4NDI2NmIxMzMxMjAiXSxbIjMyNGFlZDdkZjY1YzgwNDI1MmRjMDI3MDkwN2EzMGIwOTYxMmFlYjk3MzQ0OWNlYTQwOTU5ODBmYzI4ZDNkNWQiLCI2NDhhMzY1Nzc0YjYxZjJmZjEzMGMwYzM1YWVjMWY0ZjE5MjEzYjBjN2UzMzI4NDM5NjcyMjRhZjk2YWI3Yzg0Il0sWyI0ZGY5YzE0OTE5''@;'; + put 'put ''Y2RlNjFmNmQ1MWRmZGJlNWZlZTVkY2VlYzQxNDNiYThkMWNhODg4ZThiZDM3M2ZkMDU0Yzk2IiwiMzVlYzUxMDkyZDg3MjgwNTA5NzRjMjNhMWQ4NWQ0YjVkNTA2Y2RjMjg4NDkwMTkyZWJhYzA2Y2FkMTBkNWQiXSxbIjljMzkxOWE4NGE0NzQ4NzBmYWVkOGE5YzFjYzY2MDIxNTIzNDg5MDU0''@;'; + put 'put ''ZDdmMDMwOGNiZmM5OWM4YWMxZjk4Y2QiLCJkZGI4NGYwZjRhNGRkZDU3NTg0ZjA0NGJmMjYwZTY0MTkwNTMyNmY3NmM2NGM4ZTZiZTdlNWUwM2Q0ZmM1OTlkIl0sWyI2MDU3MTcwYjFkZDEyZmRmOGRlMDVmMjgxZDhlMDZiYjkxZTE0OTNhOGI5MWQ0Y2M1YTIxMzgyMTIwYTk1OWU1IiwiOWEx''@;'; + put 'put ''YWYwYjI2YTZhNDgwN2FkZDlhMmRhZjcxZGYyNjI0NjUxNTJiYzNlZTI0YzY1ZTg5OWJlOTMyMzg1YTJhOCJdLFsiYTU3NmRmOGUyM2EwODQxMTQyMTQzOWE0NTE4ZGEzMTg4MGNlZjBmYmE3ZDRkZjEyYjFhNjk3M2VlY2I5NDI2NiIsIjQwYTZiZjIwZTc2NjQwYjJjOTJiOTdhZmU1OGNkODJj''@;'; + put 'put ''NDMyZTEwYTdmNTE0ZDlmM2VlOGJlMTFhZTFiMjhlYzgiXSxbIjc3NzhhNzhjMjhkZWMzZTMwYTA1ZmU5NjI5ZGU4YzM4YmIzMGQxZjVjZjlhM2EyMDhmNzYzODg5YmU1OGFkNzEiLCIzNDYyNmQ5YWI1YTViMjJmZjcwOThlMTJmMmZmNTgwMDg3YjM4NDExZmYyNGFjNTYzYjUxM2ZjMWZkOWY0''@;'; + put 'put ''M2FjIl0sWyI5Mjg5NTVlZTYzN2E4NDQ2MzcyOWZkMzBlN2FmZDJlZDVmOTYyNzRlNWFkN2U1Y2IwOWVkYTljMDZkOTAzYWMiLCJjMjU2MjEwMDNkM2Y0MmE4MjdiNzhhMTMwOTNhOTVlZWFjM2QyNmVmYThhOGQ4M2ZjNTE4MGU5MzViY2QwOTFmIl0sWyI4NWQwZmVmM2VjNmRiMTA5Mzk5MDY0''@;'; + put 'put ''ZjNhMGUzYjI4NTU2NDViNGE5MDdhZDM1NDUyN2FhZTc1MTYzZDgyNzUxIiwiMWYwMzY0ODQxM2EzOGMwYmUyOWQ0OTZlNTgyY2Y1NjYzZTg3NTFlOTY4NzczMzE1ODJjMjM3YTI0ZWIxZjk2MiJdLFsiZmYyYjBkY2U5N2VlY2U5N2MxYzliNjA0MTc5OGI4NWRmZGZiNmQ4ODgyZGEyMDMwOGY1''@;'; + put 'put ''NDA0ODI0NTI2MDg3ZSIsIjQ5M2QxM2ZlZjUyNGJhMTg4YWY0YzRkYzU0ZDA3OTM2YzdiN2VkNmZiOTBlMmNlYjJjOTUxZTAxZjBjMjk5MDciXSxbIjgyN2ZiYmU0YjFlODgwZWE5ZWQyYjJlNjMwMWIyMTJiNTdmMWVlMTQ4Y2Q2ZGQyODc4MGU1ZTJjZjg1NmUyNDEiLCJjNjBmOWM5MjNjNzI3''@;'; + put 'put ''YjBiNzFiZWYyYzY3ZDFkMTI2ODdmZjdhNjMxODY5MDMxNjZkNjA1YjY4YmFlYzI5M2VjIl0sWyJlYWE2NDlmMjFmNTFiZGJhZTdiZTRhZTM0Y2U2ZTUyMTdhNThmZGNlN2Y0N2Y5YWE3ZjNiNThmYTIxMjBlMmIzIiwiYmUzMjc5ZWQ1YmJiYjAzYWM2OWE4MGY4OTg3OWFhNWEwMWE2Yjk2NWYx''@;'; + put 'put ''M2Y3ZTU5ZDQ3YTUzMDViYTVhZDkzZCJdLFsiZTRhNDJkNDNjNWNmMTY5ZDkzOTFkZjZkZWNmNDJlZTU0MWI2ZDhmMGM5YTEzNzQwMWUyMzYzMmRkYTM0ZDI0ZiIsIjRkOWY5MmU3MTZkMWM3MzUyNmZjOTljY2ZiOGFkMzRjZTg4NmVlZGZhOGQ4ZTRmMTNhN2Y3MTMxZGViYTk0MTQiXSxbIjFl''@;'; + put 'put ''YzgwZmVmMzYwY2JkZDk1NDE2MGZhZGFiMzUyYjZiOTJiNTM1NzZhODhmZWE0OTQ3MTczYjlkNDMwMGJmMTkiLCJhZWVmZTkzNzU2YjUzNDBkMmYzYTQ5NThhN2FiYmY1ZTAxNDZlNzdmNjI5NWEwN2I2NzFjZGMxY2MxMDdjZWZkIl0sWyIxNDZhNzc4YzA0NjcwYzJmOTFiMDBhZjQ2ODBkZmE4''@;'; + put 'put ''YmNlMzQ5MDcxN2Q1OGJhODg5ZGRiNTkyODM2NjY0MmJlIiwiYjMxOGUwZWMzMzU0MDI4YWRkNjY5ODI3ZjlkNGIyODcwYWFhOTcxZDJmN2U1ZWQxZDBiMjk3NDgzZDgzZWZkMCJdLFsiZmE1MGMwZjYxZDIyZTVmMDdlM2FjZWJiMWFhMDdiMTI4ZDAwMTIyMDlhMjhiOTc3NmQ3NmE4NzkzMTgw''@;'; + put 'put ''ZWVmOSIsIjZiODRjNjkyMjM5N2ViYTliNzJjZDI4NzIyODFhNjhhNWU2ODMyOTNhNTdhMjEzYjM4Y2Q4ZDdkM2Y0ZjI4MTEiXSxbImRhMWQ2MWQwY2E3MjFhMTFiMWE1YmY2YjdkODhlODQyMWEyODhhYjVkNWJiYTUyMjBlNTNkMzJiNWYwNjdlYzIiLCI4MTU3ZjU1YTdjOTkzMDZjNzljMDc2''@;'; + put 'put ''NjE2MWM5MWUyOTY2YTczODk5ZDI3OWI0OGE2NTVmYmEwZjFhZDgzNmYxIl0sWyJhOGUyODJmZjBjOTcwNjkwNzIxNWZmOThlOGZkNDE2NjE1MzExZGUwNDQ2ZjFlMDYyYTczYjA2MTBkMDY0ZTEzIiwiN2Y5NzM1NWI4ZGI4MWMwOWFiZmI3ZjNjNWIyNTE1ODg4YjY3OWEzZTUwZGQ2YmQ2Y2Vm''@;'; + put 'put ''N2M3MzExMWY0Y2MwYyJdLFsiMTc0YTUzYjljOWEyODU4NzJkMzllNTZlNjkxM2NhYjE1ZDU5YjFmYTUxMjUwOGMwMjJmMzgyZGU4MzE5NDk3YyIsImNjYzlkYzM3YWJmYzljMTY1N2I0MTU1ZjJjNDdmOWU2NjQ2YjNhMWQ4Y2I5ODU0MzgzZGExM2FjMDc5YWZhNzMiXSxbIjk1OTM5Njk4MTk0''@;'; + put 'put ''Mzc4NWMzZDNlNTdlZGY1MDE4Y2RiZTAzOWU3MzBlNDkxOGIzZDg4NGZkZmYwOTQ3NWI3YmEiLCIyZTdlNTUyODg4YzMzMWRkOGJhMDM4NmE0YjljZDY4NDljNjUzZjY0Yzg3MDkzODVlOWI4YWJmODc1MjRmMmZkIl0sWyJkMmE2M2E1MGFlNDAxZTU2ZDY0NWExMTUzYjEwOWE4ZmNjYTBhNDNk''@;'; + put 'put ''NTYxZmJhMmRiYjUxMzQwYzlkODJiMTUxIiwiZTgyZDg2ZmI2NDQzZmNiNzU2NWFlZTU4YjI5NDgyMjBhNzBmNzUwYWY0ODRjYTUyZDQxNDIxNzRkY2Y4OTQwNSJdLFsiNjQ1ODdlMjMzNTQ3MWViODkwZWU3ODk2ZDdjZmRjODY2YmFjYmRiZDM4MzkzMTdiMzQzNmY5YjQ1NjE3ZTA3MyIsImQ5''@;'; + put 'put ''OWZjZGQ1YmY2OTAyZTJhZTk2ZGQ2NDQ3YzI5OWExODViOTBhMzkxMzNhZWFiMzU4Mjk5ZTVlOWZhZjY1ODkiXSxbIjg0ODFiZGUwZTRlNGQ4ODViM2E1NDZkM2U1NDlkZTA0MmYwYWE2Y2VhMjUwZTdmZDM1OGQ2Yzg2ZGQ0NWU0NTgiLCIzOGVlN2I4Y2JhNTQwNGRkODRhMjViZjM5Y2VjYjJj''@;'; + put 'put ''YTkwMGE3OWM0MmIyNjJlNTU2ZDY0YjFiNTk3NzkwNTdlIl0sWyIxMzQ2NGE1N2E3ODEwMmFhNjJiNjk3OWFlODE3ZjQ2MzdmZmNmZWQzYzRiMWNlMzBiY2Q2MzAzZjZjYWY2NjZiIiwiNjliZTE1OTAwNDYxNDU4MGVmN2U0MzM0NTNjY2IwY2E0OGYzMDBhODFkMDk0MmUxM2Y0OTVhOTA3ZjZl''@;'; + put 'put ''Y2MyNyJdLFsiYmM0YTlkZjViNzEzZmUyZTlhZWY0MzBiY2MxZGM5N2EwY2Q5Y2NlZGUyZjI4NTg4Y2FkYTNhMGQyZDgzZjM2NiIsImQzYTgxY2E2ZTc4NWMwNjM4MzkzN2FkZjRiNzk4Y2FhNmU4YTlmYmZhNTQ3YjE2ZDc1OGQ2NjY1ODFmMzNjMSJdLFsiOGMyOGE5N2JmODI5OGJjMGQyM2Q4''@;'; + put 'put ''Yzc0OTQ1MmEzMmU2OTRiNjVlMzBhOTQ3MmEzOTU0YWIzMGZlNTMyNGNhYSIsIjQwYTMwNDYzYTMzMDUxOTMzNzhmZWRmMzFmN2NjMGViN2FlNzg0ZjA0NTFjYjk0NTllNzFkYzczY2JlZjk0ODIiXSxbIjhlYTk2NjYxMzk1MjdhOGMxZGQ5NGNlNGYwNzFmZDIzYzhiMzUwYzVhNGJiMzM3NDhj''@;'; + put 'put ''NGJhMTExZmFjY2FlMCIsIjYyMGVmYWJiYzhlZTI3ODJlMjRlN2MwY2ZiOTVjNWQ3MzViNzgzYmU5Y2YwZjhlOTU1YWYzNGEzMGU2MmI5NDUiXSxbImRkMzYyNWZhZWY1YmEwNjA3NDY2OTcxNmJiZDM3ODhkODliZGRlODE1OTU5OTY4MDkyZjc2Y2M0ZWI5YTk3ODciLCI3YTE4OGZhMzUyMGUz''@;'; + put 'put ''MGQ0NjFkYTI1MDEwNDU3MzFjYTk0MTQ2MTk4Mjg4MzM5NTkzN2Y2OGQwMGM2NDRhNTczIl0sWyJmNzEwZDc5ZDllYjk2MjI5N2U0ZjYyMzJiNDBlOGY3ZmViMmJjNjM4MTQ2MTRkNjkyYzEyZGU3NTI0MDgyMjFlIiwiZWE5OGU2NzIzMmQzYjMyOTVkM2I1MzU1MzIxMTVjY2FjODYxMmM3MjE4''@;'; + put 'put ''NTE2MTc1MjZhZTQ3YTljNzdiZmM4MiJdXX0sbmFmOnt3bmQ6Nyxwb2ludHM6W1siZjkzMDhhMDE5MjU4YzMxMDQ5MzQ0Zjg1Zjg5ZDUyMjliNTMxYzg0NTgzNmY5OWIwODYwMWYxMTNiY2UwMzZmOSIsIjM4OGY3YjBmNjMyZGU4MTQwZmUzMzdlNjJhMzdmMzU2NjUwMGE5OTkzNGMyMjMxYjZj''@;'; + put 'put ''YjlmZDc1ODRiOGU2NzIiXSxbIjJmOGJkZTRkMWEwNzIwOTM1NWI0YTcyNTBhNWM1MTI4ZTg4Yjg0YmRkYzYxOWFiN2NiYThkNTY5YjI0MGVmZTQiLCJkOGFjMjIyNjM2ZTVlM2Q2ZDRkYmE5ZGRhNmM5YzQyNmY3ODgyNzFiYWIwZDY4NDBkY2E4N2QzYWE2YWM2MmQ2Il0sWyI1Y2JkZjA2NDZl''@;'; + put 'put ''NWRiNGVhYTM5OGYzNjVmMmVhN2EwZTNkNDE5YjdlMDMzMGUzOWNlOTJiZGRlZGNhYzRmOWJjIiwiNmFlYmNhNDBiYTI1NTk2MGEzMTc4ZDZkODYxYTU0ZGJhODEzZDBiODEzZmRlN2I1YTUwODI2MjgwODcyNjRkYSJdLFsiYWNkNDg0ZTJmMGM3ZjY1MzA5YWQxNzhhOWY1NTlhYmRlMDk3OTY5''@;'; + put 'put ''NzRjNTdlNzE0YzM1ZjExMGRmYzI3Y2NiZSIsImNjMzM4OTIxYjBhN2Q5ZmQ2NDM4MDk3MTc2M2I2MWU5YWRkODg4YTQzNzVmOGUwZjA1Y2MyNjJhYzY0ZjljMzciXSxbIjc3NGFlN2Y4NThhOTQxMWU1ZWY0MjQ2YjcwYzY1YWFjNTY0OTk4MGJlNWMxNzg5MWJiZWMxNzg5NWRhMDA4Y2IiLCJk''@;'; + put 'put ''OTg0YTAzMmViNmI1ZTE5MDI0M2RkNTZkN2I3YjM2NTM3MmRiMWUyZGZmOWQ2YTgzMDFkNzRjOWM5NTNjNjFiIl0sWyJmMjg3NzNjMmQ5NzUyODhiYzdkMWQyMDVjMzc0ODY1MWIwNzVmYmM2NjEwZTU4Y2RkZWVkZGY4ZjE5NDA1YWE4IiwiYWIwOTAyZThkODgwYTg5NzU4MjEyZWI2NWNkYWY0''@;'; + put 'put ''NzNhMWEwNmRhNTIxZmE5MWYyOWI1Y2I1MmRiMDNlZDgxIl0sWyJkNzkyNGQ0ZjdkNDNlYTk2NWE0NjVhZTMwOTVmZjQxMTMxZTU5NDZmM2M4NWY3OWU0NGFkYmNmOGUyN2UwODBlIiwiNTgxZTI4NzJhODZjNzJhNjgzODQyZWMyMjhjYzZkZWZlYTQwYWYyYmQ4OTZkM2E1YzUwNGRjOWZmNmEy''@;'; + put 'put ''NmI1OCJdLFsiZGVmZGVhNGNkYjY3Nzc1MGE0MjBmZWU4MDdlYWNmMjFlYjk4OThhZTc5Yjk3Njg3NjZlNGZhYTA0YTJkNGEzNCIsIjQyMTFhYjA2OTQ2MzUxNjhlOTk3YjBlYWQyYTkzZGFlY2VkMWY0YTA0YTk1YzBmNmNmYjE5OWY2OWU1NmViNzciXSxbIjJiNGVhMGE3OTdhNDQzZDI5M2Vm''@;'; + put 'put ''NWNmZjQ0NGY0OTc5ZjA2YWNmZWJkN2U4NmQyNzc0NzU2NTYxMzgzODViNmMiLCI4NWU4OWJjMDM3OTQ1ZDkzYjM0MzA4M2I1YTFjODYxMzFhMDFmNjBjNTAyNjk3NjNiNTcwYzg1NGU1YzA5YjdhIl0sWyIzNTJiYmY0YTRjZGQxMjU2NGY5M2ZhMzMyY2UzMzMzMDFkOWFkNDAyNzFmODEwNzE4''@;'; + put 'put ''MTM0MGFlZjI1YmU1OWQ1IiwiMzIxZWI0MDc1MzQ4ZjUzNGQ1OWMxODI1OWRkYTNlMWY0YTFiM2IyZTcxYjEwMzljNjdiZDNkOGJjZjgxOTk4YyJdLFsiMmZhMjEwNGQ2YjM4ZDExYjAyMzAwMTA1NTk4NzkxMjRlNDJhYjhkZmVmZjVmZjI5ZGM5Y2RhZGQ0ZWNhY2MzZiIsIjJkZTEwNjgyOTVk''@;'; + put 'put ''ZDg2NWI2NDU2OTMzNWJkNWRkODAxODFkNzBlY2ZjODgyNjQ4NDIzYmE3NmI1MzJiN2Q2NyJdLFsiOTI0ODI3OWIwOWI0ZDY4ZGFiMjFhOWIwNjZlZGRhODMyNjNjM2Q4NGUwOTU3MmUyNjljYTBjZDdmNTQ1MzcxNCIsIjczMDE2ZjdiZjIzNGFhZGU1ZDFhYTcxYmRlYTJiMWZmM2ZjMGRlMmE4''@;'; + put 'put ''ODc5MTJmZmU1NGEzMmNlOTdjYjM0MDIiXSxbImRhZWQ0ZjJiZTNhOGJmMjc4ZTcwMTMyZmIwYmViNzUyMmY1NzBlMTQ0YmY2MTVjMDdlOTk2ZDQ0M2RlZTg3MjkiLCJhNjlkY2U0YTdkNmM5OGU4ZDRhMWFjYTg3ZWY4ZDcwMDNmODNjMjMwZjNhZmE3MjZhYjQwZTUyMjkwYmUxYzU1Il0sWyJj''@;'; + put 'put ''NDRkMTJjNzA2NWQ4MTJlOGFjZjI4ZDdjYmIxOWY5MDExZWNkOWU5ZmRmMjgxYjBlNmEzYjVlODdkMjJlN2RiIiwiMjExOWE0NjBjZTMyNmNkYzc2YzQ1OTI2Yzk4MmZkYWMwZTEwNmU4NjFlZGY2MWM1YTAzOTA2M2YwZTBlNjQ4MiJdLFsiNmEyNDViZjZkYzY5ODUwNGM4OWEyMGNmZGVkNjA4''@;'; + put 'put ''NTMxNTJiNjk1MzM2YzI4MDYzYjYxYzY1Y2JkMjY5ZTZiNCIsImUwMjJjZjQyYzJiZDRhNzA4YjNmNTEyNmYxNmEyNGFkOGIzM2JhNDhkMDQyM2I2ZWZkNWU2MzQ4MTAwZDhhODIiXSxbIjE2OTdmZmE2ZmQ5ZGU2MjdjMDc3ZTNkMmZlNTQxMDg0Y2UxMzMwMGIwYmVjMTE0NmY5NWFlNTdmMGQw''@;'; + put 'put ''YmQ2YTUiLCJiOWMzOThmMTg2ODA2ZjVkMjc1NjE1MDZlNDU1NzQzM2EyY2YxNTAwOWU0OThhZTdhZGVlOWQ2M2QwMWIyMzk2Il0sWyI2MDViZGIwMTk5ODE3MThiOTg2ZDBmMDdlODM0Y2IwZDlkZWI4MzYwZmZiN2Y2MWRmOTgyMzQ1ZWYyN2E3NDc5IiwiMjk3MmQyZGU0ZjhkMjA2ODFhNzhk''@;'; + put 'put ''OTNlYzk2ZmUyM2MyNmJmYWU4NGZiMTRkYjQzYjAxZTFlOTA1NmI4YzQ5Il0sWyI2MmQxNGRhYjQxNTBiZjQ5NzQwMmZkYzQ1YTIxNWUxMGRjYjAxYzM1NDk1OWIxMGNmZTMxYzdlOWQ4N2ZmMzNkIiwiODBmYzA2YmQ4Y2M1YjAxMDk4MDg4YTE5NTBlZWQwZGIwMWFhMTMyOTY3YWI0NzIyMzVm''@;'; + put 'put ''NTY0MjQ4M2IyNWVhZiJdLFsiODBjNjBhZDAwNDBmMjdkYWRlNWI0YjA2YzQwOGU1NmIyYzUwZTlmNTZiOWI4YjQyNWU1NTVjMmY4NjMwOGI2ZiIsIjFjMzgzMDNmMWNjNWMzMGYyNmU2NmJhZDdmZTcyZjcwYTY1ZWVkNGNiZTcwMjRlYjFhYTAxZjU2NDMwYmQ1N2EiXSxbIjdhOTM3NWFkNjE2''@;'; + put 'put ''N2FkNTRhYTc0YzYzNDhjYzU0ZDM0NGNjNWRjOTQ4N2Q4NDcwNDlkNWVhYmIwZmEwM2M4ZmIiLCJkMGUzZmE5ZWNhODcyNjkwOTU1OWUwZDc5MjY5MDQ2YmRjNTllYTEwYzcwY2UyYjAyZDQ5OWVjMjI0ZGM3ZjciXSxbImQ1MjhlY2Q5YjY5NmI1NGM5MDdhOWVkMDQ1NDQ3YTc5YmI0MDhlYzM5''@;'; + put 'put ''YjY4ZGY1MDRiYjUxZjQ1OWJjM2ZmYzkiLCJlZWNmNDEyNTMxMzZlNWY5OTk2NmYyMTg4MWZkNjU2ZWJjNDM0NTQwNWM1MjBkYmMwNjM0NjViNTIxNDA5OTMzIl0sWyI0OTM3MGE0YjVmNDM0MTJlYTI1ZjUxNGU4ZWNkYWQwNTI2NjExNWU0YTdlY2IxMzg3MjMxODA4ZjhiNDU5NjMiLCI3NThm''@;'; + put 'put ''M2Y0MWFmZDZlZDQyOGIzMDgxYjA1MTJmZDYyYTU0YzNmM2FmYmI1YjY3NjRiNjUzMDUyYTEyOTQ5YzlhIl0sWyI3N2YyMzA5MzZlZTg4Y2JiZDczZGY5MzBkNjQ3MDJlZjg4MWQ4MTFlMGUxNDk4ZTJmMWMxM2ViMWZjMzQ1ZDc0IiwiOTU4ZWY0MmE3ODg2YjY0MDBhMDgyNjZlOWJhMWIzNzg5''@;'; + put 'put ''NmM5NTMzMGQ5NzA3N2NiYmU4ZWIzYzc2NzFjNjBkNiJdLFsiZjJkYWM5OTFjYzRjZTRiOWVhNDQ4ODdlNWM3YzBiY2U1OGM4MDA3NGFiOWQ0ZGJhZWIyODUzMWI3NzM5ZjUzMCIsImUwZGVkYzliM2IyZjhkYWQ0ZGExZjMyZGVjMjUzMWRmOWViNWZiZWIwNTk4ZTRmZDFhMTE3ZGJhNzAzYTNj''@;'; + put 'put ''MzciXSxbIjQ2M2IzZDlmNjYyNjIxZmIxYjRiZThmYmJlMjUyMDEyNWEyMTZjZGZjOWRhZTNkZWJjYmE0ODUwYzY5MGQ0NWIiLCI1ZWQ0MzBkNzhjMjk2YzM1NDMxMTQzMDZkZDg2MjJkN2M2MjJlMjdjOTcwYTFkZTMxY2IzNzdiMDFhZjczMDdlIl0sWyJmMTZmODA0MjQ0ZTQ2ZTJhMDkyMzJk''@;'; + put 'put ''NGFmZjNiNTk5NzZiOThmYWMxNDMyOGEyZDFhMzI0OTZiNDk5OThmMjQ3IiwiY2VkYWJkOWI4MjIwM2Y3ZTEzZDIwNmZjZGY0ZTMzZDkyYTZjNTNjMjZlNWNjZTI2ZDY1Nzk5NjJjNGUzMWRmNiJdLFsiY2FmNzU0MjcyZGM4NDU2M2IwMzUyYjdhMTQzMTFhZjU1ZDI0NTMxNWFjZTI3YzY1MzY5''@;'; + put 'put ''ZTE1ZjcxNTFkNDFkMSIsImNiNDc0NjYwZWYzNWY1ZjJhNDFiNjQzZmE1ZTQ2MDU3NWY0ZmE5Yjc5NjIyMzJhNWMzMmY5MDgzMThhMDQ0NzYiXSxbIjI2MDBjYTRiMjgyY2I5ODZmODVkMGYxNzA5OTc5ZDhiNDRhMDljMDdjYjg2ZDdjMTI0NDk3YmM4NmYwODIxMjAiLCI0MTE5Yjg4NzUzYzE1''@;'; + put 'put ''YmQ2YTY5M2IwM2ZjZGRiYjQ1ZDVhYzZiZTc0YWI1ZjBlZjQ0YjBiZTk0NzVhN2U0YjQwIl0sWyI3NjM1Y2E3MmQ3ZTg0MzJjMzM4ZWM1M2NkMTIyMjBiYzAxYzQ4Njg1ZTI0ZjdkYzhjNjAyYTc3NDY5OThlNDM1IiwiOTFiNjQ5NjA5NDg5ZDYxM2QxZDVlNTkwZjc4ZTZkNzRlY2ZjMDYxZDU3''@;'; + put 'put ''MDQ4YmFkOWU3NmYzMDJjNWI5YzYxIl0sWyI3NTRlMzIzOWYzMjU1NzBjZGJiZjRhODdkZWVlOGE2NmI3ZjJiMzM0NzlkNDY4ZmJjMWE1MDc0M2JmNTZjYzE4IiwiNjczZmI4NmU1YmRhMzBmYjNjZDBlZDMwNGVhNDlhMDIzZWUzM2QwMTk3YTY5NWQwYzVkOTgwOTNjNTM2NjgzIl0sWyJlM2U2''@;'; + put 'put ''YmQxMDcxYTFlOTZhZmY1Nzg1OWM4MmQ1NzBmMDMzMDgwMDY2MWQxYzk1MmY5ZmUyNjk0NjkxZDliOWU4IiwiNTljOWUwYmJhMzk0ZTc2ZjQwYzBhYTU4Mzc5YTNjYjZhNWEyMjgzOTkzZTkwYzQxNjcwMDJhZjQ5MjBlMzdmNSJdLFsiMTg2YjQ4M2QwNTZhMDMzODI2YWU3M2Q4OGY3MzI5ODVj''@;'; + put 'put ''NGNjYjFmMzJiYTM1ZjRiNGNjNDdmZGNmMDRhYTZlYiIsIjNiOTUyZDMyYzY3Y2Y3N2UyZTE3NDQ2ZTIwNDE4MGFiMjFmYjgwOTA4OTUxMzhiNGE0YTc5N2Y4NmU4MDg4OGIiXSxbImRmOWQ3MGE2Yjk4NzZjZTU0NGM5ODU2MWY0YmU0ZjcyNTQ0MmU2ZDJiNzM3ZDljOTFhODMyMTcyNGNlMDk2''@;'; + put 'put ''M2YiLCI1NWViMmRhZmQ4NGQ2Y2NkNWY4NjJiNzg1ZGMzOWQ0YWIxNTcyMjI3MjBlZjlkYTIxN2I4YzQ1Y2YyYmEyNDE3Il0sWyI1ZWRkNWNjMjNjNTFlODdhNDk3Y2E4MTVkNWRjZTBmOGFiNTI1NTRmODQ5ZWQ4OTk1ZGU2NGM1ZjM0Y2U3MTQzIiwiZWZhZTljOGRiYzE0MTMwNjYxZThjZWMw''@;'; + put 'put ''MzBjODlhZDBjMTNjNjZjMGQxN2EyOTA1Y2RjNzA2YWI3Mzk5YTg2OCJdLFsiMjkwNzk4YzJiNjQ3NjgzMGRhMTJmZTAyMjg3ZTllNzc3YWEzZmJhMWMzNTViMTdhNzIyZDM2MmY4NDYxNGZiYSIsImUzOGRhNzZkY2Q0NDA2MjE5ODhkMDBiY2Y3OWFmMjVkNWIyOWMwOTRkYjJhMjMxNDZkMDAz''@;'; + put 'put ''YWZkNDE5NDNlN2EiXSxbImFmM2M0MjNhOTVkOWY1YjMwNTQ3NTRlZmExNTBhYzM5Y2QyOTU1MmZlMzYwMjU3MzYyZGZkZWNlZjQwNTNiNDUiLCJmOThhM2ZkODMxZWIyYjc0OWE5M2IwZTZmMzVjZmI0MGM4Y2Q1YWE2NjdhMTU1ODFiYzJmZWRlZDQ5OGZkOWM2Il0sWyI3NjZkYmIyNGQxMzRl''@;'; + put 'put ''NzQ1Y2NjYWEyOGM5OWJmMjc0OTA2YmI2NmIyNmRjZjk4ZGY4ZDJmZWQ1MGQ4ODQyNDlhIiwiNzQ0YjExNTJlYWNiZTVlMzhkY2M4ODc5ODBkYTM4Yjg5NzU4NGE2NWZhMDZjZWRkMmM5MjRmOTdjYmFjNTk5NiJdLFsiNTlkYmY0NmY4Yzk0NzU5YmEyMTI3N2MzMzc4NGY0MTY0NWY3YjQ0ZjZj''@;'; + put 'put ''NTk2YTU4Y2U5MmU2NjYxOTFhYmUzZSIsImM1MzRhZDQ0MTc1ZmJjMzAwZjRlYTZjZTY0ODMwOWEwNDJjZTczOWE3OTE5Nzk4Y2Q4NWUyMTZjNGEzMDdmNmUiXSxbImYxM2FkYTk1MTAzYzQ1MzczMDVlNjkxZTc0ZTlhNGE4ZGQ2NDdlNzExYTk1ZTczY2I2MmRjNjAxOGNmZDg3YjgiLCJlMTM4''@;'; + put 'put ''MTdiNDRlZTE0ZGU2NjNiZjRiYzgwODM0MWYzMjY5NDllMjFhNmE3NWMyNTcwNzc4NDE5YmRhZjU3MzNkIl0sWyI3NzU0YjRmYTBlOGFjZWQwNmQ0MTY3YTJjNTljY2E0Y2RhMTg2OWMwNmViYWRmYjY0ODg1NTAwMTVhODg1MjJjIiwiMzBlOTNlODY0ZTY2OWQ4MjIyNGI5NjdjMzAyMGI4ZmE4''@;'; + put 'put ''ZDFlNGUzNTBiNmNiY2M1MzdhNDhiNTc4NDExNjNhMiJdLFsiOTQ4ZGNhZGY1OTkwZTA0OGFhMzg3NGQ0NmFiZWY5ZDcwMTg1OGY5NWRlODA0MWQyYTY4MjhjOTllMjI2MjUxOSIsImU0OTFhNDI1MzdmNmU1OTdkNWQyOGEzMjI0YjFiYzI1ZGY5MTU0ZWZiZDJlZjFkMmNiYmEyY2FlNTM0N2Q1''@;'; + put 'put ''N2UiXSxbIjc5NjI0MTQ0NTBjNzZjMTY4OWM3YjQ4ZjgyMDJlYzM3ZmIyMjRjZjVhYzBiZmExNTcwMzI4YThhM2Q3Yzc3YWIiLCIxMDBiNjEwZWM0ZmZiNDc2MGQ1YzFmYzEzM2VmNmY2YjEyNTA3YTA1MWYwNGFjNTc2MGFmYTViMjlkYjgzNDM3Il0sWyIzNTE0MDg3ODM0OTY0YjU0YjE1YjE2''@;'; + put 'put ''MDY0NGQ5MTU0ODVhMTY5NzcyMjViODg0N2JiMGRkMDg1MTM3ZWM0N2NhIiwiZWYwYWZiYjIwNTYyMDU0NDhlMTY1MmM0OGU4MTI3ZmM2MDM5ZTc3YzE1YzIzNzhiN2U3ZDE1YTBkZTI5MzMxMSJdLFsiZDNjYzMwYWQ2YjQ4M2U0YmM3OWNlMmM5ZGQ4YmM1NDk5M2U5NDdlYjhkZjc4N2I0NDI5''@;'; + put 'put ''NDNkM2Y3YjUyN2VhZiIsIjhiMzc4YTIyZDgyNzI3OGQ4OWM1ZTliZThmOTUwOGFlM2MyYWQ0NjI5MDM1ODYzMGFmYjM0ZGIwNGVlZGUwYTQiXSxbIjE2MjRkODQ3ODA3MzI4NjBjZTFjNzhmY2JmZWZlMDhiMmIyOTgyM2RiOTEzZjY0OTM5NzViYTBmZjQ4NDc2MTAiLCI2ODY1MWNmOWI2ZGE5''@;'; + put 'put ''MDNlMDkxNDQ0OGM2Y2Q5ZDRjYTg5Njg3OGY1MjgyYmU0YzhjYzA2ZTJhNDA0MDc4NTc1Il0sWyI3MzNjZTgwZGE5NTVhOGEyNjkwMmM5NTYzM2U2MmE5ODUxOTI0NzRiNWFmMjA3ZGE2ZGY3YjRmZDVmYzYxY2Q0IiwiZjU0MzVhMmJkMmJhZGY3ZDQ4NWE0ZDhiOGRiOWZjY2UzZTFlZjhlMDIw''@;'; + put 'put ''MWU0NTc4YzU0NjczYmMxZGM1ZWExZCJdLFsiMTVkOTQ0MTI1NDk0NTA2NGNmMWExYzMzYmJkM2I0OWY4OTY2YzUwOTIxNzFlNjk5ZWYyNThkZmFiODFjMDQ1YyIsImQ1NmViMzBiNjk0NjNlNzIzNGY1MTM3YjczYjg0MTc3NDM0ODAwYmFjZWJmYzY4NWZjMzdiYmU5ZWZlNDA3MGQiXSxbImEx''@;'; + put 'put ''ZDBmY2YyZWM5ZGU2NzViNjEyMTM2ZTVjZTcwZDI3MWMyMTQxN2M5ZDJiOGFhYWFjMTM4NTk5ZDA3MTc5NDAiLCJlZGQ3N2Y1MGJjYjVhM2NhYjJlOTA3MzczMDk2NjdmMjY0MTQ2MmE1NDA3MGYzZDUxOTIxMmQzOWMxOTdhNjI5Il0sWyJlMjJmYmUxNWMwYWY4Y2NjNTc4MGMwNzM1Zjg0ZGJl''@;'; + put 'put ''OWE3OTBiYWRlZTgyNDVjMDZjN2NhMzczMzFjYjM2OTgwIiwiYTg1NWJhYmFkNWNkNjBjODhiNDMwYTY5ZjUzYTFhN2EzODI4OTE1NDk2NDc5OWJlNDNkMDZkNzdkMzFkYTA2Il0sWyIzMTEwOTFkZDk4NjBlOGUyMGVlMTM0NzNjMTE1NWY1ZjY5NjM1ZTM5NDcwNGVhYTc0MDA5NDUyMjQ2Y2Zh''@;'; + put 'put ''OWIzIiwiNjZkYjY1NmY4N2QxZjA0ZmZmZDFmMDQ3ODhjMDY4MzA4NzFlYzVhNjRmZWVlNjg1YmQ4MGYwYjEyODZkODM3NCJdLFsiMzRjMWZkMDRkMzAxYmU4OWIzMWMwNDQyZDNlNmFjMjQ4ODM5MjhiNDVhOTM0MDc4MTg2N2Q0MjMyZWMyZGJkZiIsIjk0MTQ2ODVlOTdiMWI1OTU0YmQ0NmY3''@;'; + put 'put ''MzAxNzQxMzZkNTdmMWNlZWI0ODc0NDNkYzUzMjE4NTdiYTczYWJlZSJdLFsiZjIxOWVhNWQ2YjU0NzAxYzFjMTRkZTViNTU3ZWI0MmE4ZDEzZjNhYmJjZDA4YWZmY2MyYTVlNmIwNDliOGQ2MyIsIjRjYjk1OTU3ZTgzZDQwYjBmNzNhZjQ1NDRjY2NmNmIxZjRiMDhkM2MwN2IyN2ZiOGQ4YzI5''@;'; + put 'put ''NjJhNDAwNzY2ZDEiXSxbImQ3Yjg3NDBmNzRhOGZiYWFiMWY2ODNkYjhmNDVkZTI2NTQzYTU0OTBiY2E2MjcwODcyMzY5MTI0NjlhMGI0NDgiLCJmYTc3OTY4MTI4ZDljOTJlZTEwMTBmMzM3YWQ0NzE3ZWZmMTVkYjVlZDNjMDQ5YjM0MTFlMDMxNWVhYTQ1OTNiIl0sWyIzMmQzMWMyMjJmOGY2''@;'; + put 'put ''ZjBlZjg2ZjdjOThkM2EzMzM1ZWFkNWJjZDMyYWJkZDk0Mjg5ZmU0ZDMwOTFhYTgyNGJmIiwiNWYzMDMyZjU4OTIxNTZlMzljY2QzZDc5MTViOWUxZGEyZTZkYWM5ZTZmMjZlOTYxMTE4ZDE0Yjg0NjJlMTY2MSJdLFsiNzQ2MWYzNzE5MTRhYjMyNjcxMDQ1YTE1NWQ5ODMxZWE4NzkzZDc3Y2Q1''@;'; + put 'put ''OTU5MmM0MzQwZjg2Y2JjMTgzNDdiNSIsIjhlYzBiYTIzOGI5NmJlYzBjYmRkZGNhZTBhYTQ0MjU0MmVlZTFmZjUwYzk4NmVhNmIzOTg0N2IzY2MwOTJmZjYiXSxbImVlMDc5YWRiMWRmMTg2MDA3NDM1NmEyNWFhMzgyMDZhNmQ3MTZiMmMzZTY3NDUzZDI4NzY5OGJhZDdiMmIyZDYiLCI4ZGMy''@;'; + put 'put ''NDEyYWFmZTNiZTVjNGM1ZjM3ZTBlY2M1ZjlmNmE0NDY5ODlhZjA0YzRlMjVlYmFhYzQ3OWVjMWM4YzFlIl0sWyIxNmVjOTNlNDQ3ZWM4M2YwNDY3YjE4MzAyZWU2MjBmN2U2NWRlMzMxODc0YzlkYzcyYmZkODYxNmJhOWRhNmI1IiwiNWU0NjMxMTUwZTYyZmI0MGQwZThjMmE3Y2E1ODA0YTM5''@;'; + put 'put ''ZDU4MTg2YTUwZTQ5NzEzOTYyNjc3OGUyNWIwNjc0ZCJdLFsiZWFhNWY5ODBjMjQ1ZjZmMDM4OTc4MjkwYWZhNzBiNmJkODg1NTg5N2Y5OGI2YWE0ODViOTYwNjVkNTM3YmQ5OSIsImY2NWY1ZDNlMjkyYzJlMDgxOWE1MjgzOTFjOTk0NjI0ZDc4NDg2OWQ3ZTZlYTY3ZmIxODA0MTAyNGVkYzA3''@;'; + put 'put ''ZGMiXSxbIjc4Yzk0MDc1NDRhYzEzMjY5MmVlMTkxMGEwMjQzOTk1OGFlMDQ4NzcxNTEzNDJlYTk2YzRiNmIzNWE0OWY1MSIsImYzZTAzMTkxNjllYjliODVkNTQwNDc5NTUzOWE1ZTY4ZmExZmJkNTgzYzA2NGQyNDYyYjY3NWYxOTRhM2RkYjQiXSxbIjQ5NGY0YmUyMTlhMWE3NzAxNmRjZDgz''@;'; + put 'put ''ODQzMWFlYTAwMDFjZGM4YWU3YTZmYzY4ODcyNjU3OGQ5NzAyODU3YTUiLCI0MjI0MmE5NjkyODNhNWYzMzliYTdmMDc1ZTM2YmEyYWY5MjVjZTMwZDc2N2VkNmU1NWY0YjAzMTg4MGQ1NjJjIl0sWyJhNTk4YTgwMzBkYTZkODZjNmJjN2YyZjUxNDRlYTU0OWQyODIxMWVhNThmYWE3MGViZjRj''@;'; + put 'put ''MWU2NjVjMWZlOWI1IiwiMjA0YjVkNmY4NDgyMmMzMDdlNGI0YTcxNDA3MzdhZWMyM2ZjNjNiNjViMzVmODZhMTAwMjZkYmQyZDg2NGU2YiJdLFsiYzQxOTE2MzY1YWJiMmI1ZDA5MTkyZjVmMmRiZWFmZWMyMDhmMDIwZjEyNTcwYTE4NGRiYWRjM2U1ODU5NTk5NyIsIjRmMTQzNTFkMDA4N2Vm''@;'; + put 'put ''YTQ5ZDI0NWIzMjg5ODQ5ODlkNWNhZjk0NTBmMzRiZmMwZWQxNmU5NmI1OGZhOTkxMyJdLFsiODQxZDYwNjNhNTg2ZmE0NzVhNzI0NjA0ZGEwM2JjNWI5MmEyZTBkMmUwYTM2YWNmZTRjNzNhNTUxNDc0Mjg4MSIsIjczODY3ZjU5YzA2NTllODE5MDRmOWExYzc1NDM2OThlNjI1NjJkNjc0NGMx''@;'; + put 'put ''NjljZTdhMzZkZTAxYThkNjE1NCJdLFsiNWU5NWJiMzk5YTY5NzFkMzc2MDI2OTQ3Zjg5YmRlMmYyODJiMzM4MTA5MjhiZTRkZWQxMTJhYzRkNzBlMjBkNSIsIjM5ZjIzZjM2NjgwOTA4NWJlZWJmYzcxMTgxMzEzNzc1YTk5YzlhZWQ3ZDhiYTM4YjE2MTM4NGM3NDYwMTI4NjUiXSxbIjM2ZTQ2''@;'; + put 'put ''NDFhNTM5NDhmZDQ3NmMzOWY4YTk5ZmQ5NzRlNWVjMDc1NjRiNTMxNWQ4YmY5OTQ3MWJjYTBlZjJmNjYiLCJkMjQyNGIxYjFhYmU0ZWI4MTY0MjI3YjA4NWM5YWE5NDU2ZWExMzQ5M2ZkNTYzZTA2ZmQ1MWNmNTY5NGM3OGZjIl0sWyIzMzY1ODFlYTdiZmJiYjI5MGMxOTFhMmY1MDdhNDFjZjU2''@;'; + put 'put ''NDM4NDIxNzBlOTE0ZmFlYWIyN2MyYzU3OWY3MjYiLCJlYWQxMjE2ODU5NWZlMWJlOTkyNTIxMjliNmU1NmIzMzkxZjdhYjE0MTBjZDFlMGVmM2RjZGNhYmQyZmRhMjI0Il0sWyI4YWI4OTgxNmRhZGZkNmI2YTFmMjYzNGZjZjAwZWM4NDAzNzgxMDI1ZWQ2ODkwYzQ4NDk3NDI3MDZiZDQzZWRl''@;'; + put 'put ''IiwiNmZkY2VmMDlmMmY2ZDBhMDQ0ZTY1NGFlZjYyNDEzNmY1MDNkNDU5YzNlODk4NDU4NThhNDdhOTEyOWNkZDI0ZSJdLFsiMWUzM2YxYTc0NmM5YzU3NzgxMzMzNDRkOTI5OWZjYWEyMGIwOTM4ZThhY2ZmMjU0NGJiNDAyODRiOGM1ZmI5NCIsIjYwNjYwMjU3ZGQxMWIzYWE5YzhlZDYxOGQy''@;'; + put 'put ''NGVkZmYyMzA2ZDMyMGYxZDAzMDEwZTMzYTdkMjA1N2YzYjNiNiJdLFsiODViN2MxZGNiM2NlYzFiN2VlN2YzMGRlZDc5ZGQyMGEwZWQxZjRjYzE4Y2JjZmNmYTQxMDM2MWZkOGYwOGYzMSIsIjNkOThhOWNkZDAyNmRkNDNmMzkwNDhmMjVhODg0N2Y0ZmNhZmFkMTg5NWQ3YTYzM2M2ZmVkM2Mz''@;'; + put 'put ''NWU5OTk1MTEiXSxbIjI5ZGY5ZmJkOGQ5ZTQ2NTA5Mjc1ZjRiMTI1ZDZkNDVkN2ZiZTlhM2I4NzhhN2FmODcyYTI4MDA2NjFhYzVmNTEiLCJiNGM0ZmU5OWM3NzVhNjA2ZTJkODg2MjE3OTEzOWZmZGE2MWRjODYxYzAxOWU1NWNkMjg3NmViMmEyN2Q4NGIiXSxbImEwYjFjYWUwNmIwYTg0N2Ez''@;'; + put 'put ''ZmVhNmU2NzFhYWY4YWRmZGZlNThjYTJmNzY4MTA1YzgwODJiMmU0NDlmY2UyNTIiLCJhZTQzNDEwMmVkZGUwOTU4ZWM0YjE5ZDkxN2E2YTI4ZTZiNzJkYTE4MzRhZmYwZTY1MGYwNDk1MDNhMjk2Y2YyIl0sWyI0ZThjZWFmYjliM2U5YTEzNmRjN2ZmNjdlODQwMjk1YjQ5OWRmYjNiMjEzM2U0''@;'; + put 'put ''YmExMTNmMmU0YzBlMTIxZTUiLCJjZjIxNzQxMThjOGI2ZDdhNGI0OGY2ZDUzNGNlNWM3OTQyMmMwODZhNjM0NjA1MDJiODI3Y2U2MmEzMjY2ODNjIl0sWyJkMjRhNDRlMDQ3ZTE5YjZmNWFmYjgxYzdjYTJmNjkwODBhNTA3NjY4OWEwMTA5MTlmNDI3MjVjMmI3ODlhMzNiIiwiNmZiOGQ1NTkx''@;'; + put 'put ''YjQ2NmY4ZmM2M2RiNTBmMWMwZjFjNjkwMTNmOTk2ODg3YjgyNDRkMmNkZWM0MTdhZmVhOGZhMyJdLFsiZWEwMTYwNmE3YTZjOWNkZDI0OWZkZmNmYWNiOTk1ODQwMDFlZGQyOGFiYmFiNzdiNTEwNGU5OGU4ZTNiMzVkNCIsIjMyMmFmNDkwOGM3MzEyYjBjZmJmZTM2OWY3YTdiM2NkYjdkNDQ5''@;'; + put 'put ''NGJjMjgyMzcwMGNmZDY1MjE4OGEzZWE5OGQiXSxbImFmOGFkZGJmMmI2NjFjOGE2YzYzMjg2NTVlYjk2NjUxMjUyMDA3ZDhjNWVhMzFiZTRhZDE5NmRlOGNlMjEzMWYiLCI2NzQ5ZTY3YzAyOWI4NWY1MmEwMzRlYWZkMDk2ODM2YjI1MjA4MTg2ODBlMjZhYzhmM2RmYmNkYjcxNzQ5NzAwIl0s''@;'; + put 'put ''WyJlM2FlMTk3NDU2NmNhMDZjYzUxNmQ0N2UwZmIxNjVhNjc0YTNkYWJjZmNhMTVlNzIyZjBlMzQ1MGY0NTg4OSIsIjJhZWFiZTdlNDUzMTUxMDExNjIxN2YwN2JmNGQwNzMwMGRlOTdlNDg3NGY4MWY1MzM0MjBhNzJlZWIwYmQ2YTQiXSxbIjU5MWVlMzU1MzEzZDk5NzIxY2Y2OTkzZmZlZDFl''@;'; + put 'put ''M2UzMDE5OTNmZjNlZDI1ODgwMjA3NWVhOGNlZDM5N2UyNDYiLCJiMGVhNTU4YTExM2MzMGJlYTYwZmM0Nzc1NDYwYzc5MDFmZjBiMDUzZDI1Y2EyYmRlZWU5OGYxYTRiZTVkMTk2Il0sWyIxMTM5NmQ1NWZkYTU0YzQ5ZjE5YWE5NzMxOGQ4ZGE2MWZhODU4NGU0N2IwODQ5NDUwNzdjZjAzMjU1''@;'; + put 'put ''YjUyOTg0IiwiOTk4Yzc0YThjZDQ1YWMwMTI4OWQ1ODMzYTdiZWI0NzQ0ZmY1MzZiMDFiMjU3YmU0YzU3NjdiZWE5M2VhNTdhNCJdLFsiM2M1ZDJhMWJhMzljNWExNzkwMDAwNzM4YzllMGM0MGI4ZGNkZmQ1NDY4NzU0YjY0MDU1NDAxNTdlMDE3YWE3YSIsImIyMjg0Mjc5OTk1YTM0ZTJmOWQ0''@;'; + put 'put ''ZGU3Mzk2ZmMxOGI4MGY5YjhiOWZkZDI3MGY2NjYxZjc5Y2E0YzgxYmQyNTciXSxbImNjODcwNGI4YTYwYTBkZWZhM2E5OWE3Mjk5ZjJlOWMzZmJjMzk1YWZiMDRhYzA3ODQyNWVmOGExNzkzY2MwMzAiLCJiZGQ0NjAzOWZlZWQxNzg4MWQxZTA4NjJkYjM0N2Y4Y2YzOTViNzRmYzRiY2RjNGU5''@;'; + put 'put ''NDBiNzRlM2FjMWYxYjEzIl0sWyJjNTMzZTRmN2VhODU1NWFhY2Q5Nzc3YWM1Y2FkMjliOTdkZDRkZWZjY2M1M2VlN2VhMjA0MTE5YjI4ODliMTk3IiwiNmYwYTI1NmJjNWVmZGY0MjlhMmZiNjI0MmYxYTQzYTJkOWI5MjViYjRhNGIzYTI2YmI4ZTBmNDVlYjU5NjA5NiJdLFsiYzE0ZjhmMmNj''@;'; + put 'put ''YjI3ZDZmMTA5ZjZkMDhkMDNjYzk2YTY5YmE4YzM0ZWVjMDdiYmNmNTY2ZDQ4ZTMzZGE2NTkzIiwiYzM1OWQ2OTIzYmIzOThmN2ZkNDQ3M2UxNmZlMWMyODQ3NWI3NDBkZDA5ODA3NWU2YzBlODY0OTExM2RjM2EzOCJdLFsiYTZjYmMzMDQ2YmM2YTQ1MGJhYzI0Nzg5ZmExNzExNWE0Yzk3Mzll''@;'; + put 'put ''ZDc1ZjhmMjFjZTQ0MWY3MmUwYjkwZTZlZiIsIjIxYWU3ZjQ2ODBlODg5YmIxMzA2MTllMmMwZjk1YTM2MGNlYjU3M2M3MDYwMzEzOTg2MmFmZDYxN2ZhOWI5ZiJdLFsiMzQ3ZDZkOWEwMmM0ODkyN2ViZmI4NmMxMzU5YjFjYWYxMzBhM2MwMjY3ZDExY2U2MzQ0YjM5Zjk5ZDQzY2MzOCIsIjYw''@;'; + put 'put ''ZWE3ZjYxYTM1MzUyNGQxYzk4N2Y2ZWNlYzkyZjA4NmQ1NjVhYjY4Nzg3MGNiMTI2ODlmZjFlMzFjNzQ0NDgiXSxbImRhNjU0NWQyMTgxZGI4ZDk4M2Y3ZGNiMzc1ZWY1ODY2ZDQ3YzY3YjFiZjMxYzhjZjg1NWVmNzQzN2I3MjY1NmEiLCI0OWI5NjcxNWFiNjg3OGE3OWU3OGYwN2NlNTY4MGM1''@;'; + put 'put ''ZDY2NzMwNTFiNDkzNWJkODk3ZmVhODI0Yjc3ZGMyMDhhIl0sWyJjNDA3NDdjYzlkMDEyY2IxYTEzYjgxNDgzMDljNmRlN2VjMjVkNjk0NWQ2NTcxNDZiOWQ1OTk0YjhmZWIxMTExIiwiNWNhNTYwNzUzYmUyYTEyZmM2ZGU2Y2FmMmNiNDg5NTY1ZGI5MzYxNTZiOTUxNGUxYmI1ZTgzMDM3ZTBm''@;'; + put 'put ''YTJkNCJdLFsiNGU0MmM4ZWM4MmM5OTc5OGNjZjNhNjEwYmU4NzBlNzgzMzhjN2Y3MTMzNDhiZDM0YzgyMDNlZjQwMzdmMzUwMiIsIjc1NzFkNzRlZTVlMGZiOTJhN2E4YjMzYTA3NzgzMzQxYTU0OTIxNDRjYzU0YmNjNDBhOTQ0NzM2OTM2MDY0MzciXSxbIjM3NzVhYjcwODliYzZhZjgyM2Fi''@;'; + put 'put ''YTJlMWFmNzBiMjM2ZDI1MWNhZGIwYzg2NzQzMjg3NTIyYTFiM2IwZGVkZWEiLCJiZTUyZDEwN2JjZmEwOWQ4YmNiOTczNmE4MjhjZmE3ZmFjOGRiMTdiZjdhNzZhMmM0MmFkOTYxNDA5MDE4Y2Y3Il0sWyJjZWUzMWNiZjdlMzRlYzM3OWQ5NGZiODE0ZDNkNzc1YWQ5NTQ1OTVkMTMxNGJhODg0''@;'; + put 'put ''Njk1OWUzZTgyZjc0ZTI2IiwiOGZkNjRhMTRjMDZiNTg5YzI2Yjk0N2FlMmJjZjZiZmEwMTQ5ZWYwYmUxNGVkNGQ4MGY0NDhhMDFjNDNiMWM2ZCJdLFsiYjRmOWVhZWEwOWI2OTE3NjE5ZjZlYTZhNGViNTQ2NGVmZGRiNThmZDQ1YjFlYmVmY2RjMWEwMWQwOGI0Nzk4NiIsIjM5ZTVjOTkyNWI1''@;'; + put 'put ''YTU0YjA3NDMzYTRmMThjNjE3MjZmOGJiMTMxYzAxMmNhNTQyZWIyNGE4YWMwNzIwMDY4MmEiXSxbImQ0MjYzZGZjM2QyZGY5MjNhMDE3OWE0ODk2NmQzMGNlODRlMjUxNWFmYzNkY2NjMWI3NzkwNzc5MmViY2M2MGUiLCI2MmRmYWYwN2EwZjc4ZmViMzBlMzBkNjI5NTg1M2NlMTg5ZTEyNzc2''@;'; + put 'put ''MGFkNmNmN2ZhZTE2NGUxMjJhMjA4ZDU0Il0sWyI0ODQ1NzUyNDgyMGZhNjVhNGY4ZDM1ZWI2OTMwODU3YzAwMzJhY2MwYTRhMmRlNDIyMjMzZWVkYTg5NzYxMmM0IiwiMjVhNzQ4YWIzNjc5NzlkOTg3MzNjMzhhMWZhMWMyZTdkYzZjYzA3ZGIyZDYwYTlhZTdhNzZhYWE0OWJkMGY3NyJdLFsi''@;'; + put 'put ''ZGZlZWVmMTg4MTEwMWYyY2IxMTY0NGYzYTJhZmRmYzIwNDVlMTk5MTkxNTI5MjNmMzY3YTE3NjdjMTFjY2VkYSIsImVjZmI3MDU2Y2YxZGUwNDJmOTQyMGJhYjM5Njc5M2MwYzM5MGJkZTc0YjRiYmRmZjE2YTgzYWUwOWE5YTc1MTciXSxbIjZkN2VmNmIxNzU0M2Y4MzczYzU3M2Y0NGUxZjM4''@;'; + put 'put ''OTgzNWQ4OWJjYmM2MDYyY2VkMzZjODJkZjgzYjhmYWU4NTkiLCJjZDQ1MGVjMzM1NDM4OTg2ZGZlZmExMGM1N2ZlYTliY2M1MjFhMDk1OWIyZDgwYmJmNzRiMTkwZGNhNzEyZDEwIl0sWyJlNzU2MDVkNTkxMDJhNWEyNjg0NTAwZDNiOTkxZjJlM2YzYzg4YjkzMjI1NTQ3MDM1YWYyNWFmNjZl''@;'; + put 'put ''MDQ1NDFmIiwiZjVjNTQ3NTRhOGY3MWVlNTQwYjliNDg3Mjg0NzNlMzE0ZjcyOWFjNTMwOGIwNjkzODM2MDk5MGUyYmZhZDEyNSJdLFsiZWI5ODY2MGY0YzRkZmFhMDZhMmJlNDUzZDUwMjBiYzk5YTBjMmU2MGFiZTM4ODQ1N2RkNDNmZWZiMWVkNjIwYyIsIjZjYjlhODg3NmQ5Y2I4NTIwNjA5''@;'; + put 'put ''YWYzYWRkMjZjZDIwYTBhN2NkOGE5NDExMTMxY2U4NWY0NDEwMDA5OTIyM2UiXSxbIjEzZTg3YjAyN2Q4NTE0ZDM1OTM5ZjJlNjg5MmIxOTkyMjE1NDU5Njk0MTg4ODMzNmRjMzU2M2UzYjhkYmE5NDIiLCJmZWY1YTNjNjgwNTlhNmRlYzVkNjI0MTE0YmYxZTkxYWFjMmI5ZGE1NjhkNmFiZWIy''@;'; + put 'put ''NTcwZDU1NjQ2YjhhZGYxIl0sWyJlZTE2MzAyNmU5ZmQ2ZmUwMTdjMzhmMDZhNWJlNmZjMTI1NDI0YjM3MWNlMjcwOGU3YmY0NDkxNjkxZTU3NjRhIiwiMWFjYjI1MGYyNTVkZDYxYzQzZDk0Y2NjNjcwZDBmNThmNDlhZTNmYTE1Yjk2NjIzZTU0MzBkYTBhZDZjNjJiMiJdLFsiYjI2OGY1ZWY5''@;'; + put 'put ''YWQ1MWU0ZDc4ZGUzYTc1MGMyZGM4OWIxZTYyNmQ0MzUwNTg2Nzk5OTkzMmU1ZGIzM2FmM2Q4MCIsIjVmMzEwZDRiM2M5OWI5ZWJiMTlmNzdkNDFjMWRlZTAxOGNmMGQzNGZkNDE5MTYxNDAwM2U5NDVhMTIxNmU0MjMiXSxbImZmMDdmMzExOGE5ZGYwMzVlOWZhZDg1ZWI2YzdiZmU0MmIwMmYw''@;'; + put 'put ''MWNhOTljZWVhM2JmN2ZmZGJhOTNjNDc1MGQiLCI0MzgxMzZkNjAzZTg1OGEzYTVjNDQwYzM4ZWNjYmFkZGMxZDI5NDIxMTRlMmVkZGQ0NzQwZDA5OGNlZDFmMGQ4Il0sWyI4ZDhiOTg1NWM3YzA1MmEzNDE0NmZkMjBmZmI2NThiZWE0YjlmNjllMGQ4MjVlYmVjMTZlOGMzY2UyYjUyNmExIiwi''@;'; + put 'put ''Y2RiNTU5ZWVkYzJkNzlmOTI2YmFmNDRmYjg0ZWE0ZDQ0YmNmNTBmZWU1MWQ3Y2ViMzBlMmU3ZjQ2MzAzNjc1OCJdLFsiNTJkYjBiNTM4NGRmYmYwNWJmYTlkNDcyZDdhZTI2ZGZlNGI4NTFjZWNhOTFiMWViYTU0MjYzMTgwZGEzMmI2MyIsImMzYjk5N2QwNTBlZTVkNDIzZWJhZjY2YTZkYjlm''@;'; + put 'put ''NTdiMzE4MGM5MDI4NzU2NzlkZTkyNGI2OWQ4NGE3YjM3NSJdLFsiZTYyZjk0OTBkM2Q1MWRhNjM5NWVmZDI0ZTgwOTE5Y2M3ZDBmMjljM2YzZmE0OGM2ZmZmNTQzYmVjYmQ0MzM1MiIsIjZkODlhZDdiYTQ4NzZiMGIyMmMyY2EyODBjNjgyODYyZjM0MmM4NTkxZjFkYWY1MTcwZTA3YmZkOWNj''@;'; + put 'put ''YWZhN2QiXSxbIjdmMzBlYTI0NzZiMzk5YjQ5NTc1MDljODhmNzdkMDE5MWFmYTJmZjVjYjdiMTRmZDZkOGU3ZDY1YWFhYjExOTMiLCJjYTVlZjdkNGIyMzFjOTRjM2IxNTM4OWE1ZjYzMTFlOWRhZmY3YmI2N2IxMDNlOTg4MGVmNGJmZjYzN2FjYWVjIl0sWyI1MDk4ZmYxZTFkOWYxNGZiNDZh''@;'; + put 'put ''MjEwZmFkYTZjOTAzZmVmMGZiN2I0YTFkZDFkOWFjNjBhMDM2MTgwMGI3YTAwIiwiOTczMTE0MWQ4MWZjOGY4MDg0ZDM3YzZlNzU0MjAwNmIzZWUxYjQwZDYwZGZlNTM2MmE1YjEzMmZkMTdkZGMwIl0sWyIzMmI3OGM3ZGU5ZWU1MTJhNzI4OTViZTZiOWNiZWZhNmUyZjNjNGNjY2U0NDVjOTZi''@;'; + put 'put ''OWYyYzgxZTI3NzhhZDU4IiwiZWUxODQ5ZjUxM2RmNzFlMzJlZmMzODk2ZWUyODI2MGM3M2JiODA1NDdhZTIyNzViYTQ5NzIzNzc5NGM4NzUzYyJdLFsiZTJjYjc0ZmRkYzhlOWZiY2QwNzZlZWYyYTdjNzJiMGNlMzdkNTBmMDgyNjlkZmMwNzRiNTgxNTUwNTQ3YTRmNyIsImQzYWEyZWQ3MWM5''@;'; + put 'put ''ZGQyMjQ3YTYyZGYwNjI3MzZlYjBiYWRkZWE5ZTM2MTIyZDJiZTg2NDFhYmNiMDA1Y2M0YTQiXSxbIjg0Mzg0NDc1NjZkNGQ3YmVkYWRjMjk5NDk2YWIzNTc0MjYwMDlhMzVmMjM1Y2IxNDFiZTBkOTljZDEwYWUzYTgiLCJjNGUxMDIwOTE2OTgwYTRkYTVkMDFhYzVlNmFkMzMwNzM0ZWYwZDc5''@;'; + put 'put ''MDY2MzFjNGYyMzkwNDI2YjJlZGQ3OTFmIl0sWyI0MTYyZDQ4OGI4OTQwMjAzOWI1ODRjNmZjNmMzMDg4NzA1ODdkOWM0NmY2NjBiODc4YWI2NWM4MmM3MTFkNjdlIiwiNjcxNjNlOTAzMjM2Mjg5Zjc3NmYyMmMyNWZiOGEzYWZjMTczMmYyYjg0YjRlOTVkYmRhNDdhZTVhMDg1MjY0OSJdLFsi''@;'; + put 'put ''M2ZhZDNmYTg0Y2FmMGYzNGYwZjg5YmZkMmRjZjU0ZmMxNzVkNzY3YWVjM2U1MDY4NGYzYmE0YTRiZjVmNjgzZCIsImNkMWJjN2NiNmNjNDA3YmIyZjBjYTY0N2M3MThhNzMwY2Y3MTg3MmU3ZDBkMmE1M2ZhMjBlZmNkZmU2MTgyNiJdLFsiNjc0ZjI2MDBhMzAwN2EwMDU2OGMxYTdjZTA1ZDA4''@;'; + put 'put ''MTZjMWZiODRiZjEzNzA3OThmMWM2OTUzMmZhZWIxYTg2YiIsIjI5OWQyMWY5NDEzZjMzYjNlZGY0M2IyNTcwMDQ1ODBiNzBkYjU3ZGEwYjE4MjI1OWUwOWVlY2M2OWUwZDM4YTUiXSxbImQzMmY0ZGE1NGFkZTc0YWJiODFiODE1YWQxZmIzYjI2M2Q4MmQ2YzY5MjcxNGJjZmY4N2QyOWJkNWVl''@;'; + put 'put ''OWYwOGYiLCJmOTQyOWU3MzhiOGU1M2I5NjhlOTkwMTZjMDU5NzA3NzgyZTE0ZjQ1MzUzNTlkNTgyZmM0MTY5MTBiM2VlYTg3Il0sWyIzMGU0ZTY3MDQzNTM4NTU1NmU1OTM2NTcxMzU4NDVkMzZmYmI2OTMxZjcyYjA4Y2IxZWQ5NTRmMWUzY2UzZmY2IiwiNDYyZjliY2U2MTk4OTg2Mzg0OTkz''@;'; + put 'put ''NTAxMTNiYmM5YjEwYTg3OGQzNWRhNzA3NDBkYzY5NWE1NTllYjg4ZGI3YiJdLFsiYmUyMDYyMDAzYzUxY2MzMDA0NjgyOTA0MzMwZTRkZWU3ZjNkY2QxMGIwMWU1ODBiZjE5NzFiMDRkNGNhZDI5NyIsIjYyMTg4YmM0OWQ2MWU1NDI4NTczZDQ4YTc0ZTFjNjU1YjFjNjEwOTA5MDU2ODJhMGQ1''@;'; + put 'put ''NTU4ZWQ3MmRjY2I5YmMiXSxbIjkzMTQ0NDIzYWNlMzQ1MWVkMjllMGZiOWFjMmFmMjExY2I2ZTg0YTYwMWRmNTk5M2M0MTk4NTlmZmY1ZGYwNGEiLCI3YzEwZGZiMTY0YzM0MjVmNWM3MWEzZjlkNzk5MjAzOGYxMDY1MjI0ZjcyYmI5ZDFkOTAyYTZkMTMwMzdiNDdjIl0sWyJiMDE1ZjgwNDRm''@;'; + put 'put ''NWZjYmRjZjIxY2EyNmQ2YzM0ZmI4MTk3ODI5MjA1YzdiN2QyYTdjYjY2NDE4YzE1N2IxMTJjIiwiYWI4YzFlMDg2ZDA0ZTgxMzc0NGE2NTViMmRmOGQ1ZjgzYjNjZGM2ZmFhMzA4OGMxZDNhZWExNDU0ZTNhMWQ1ZiJdLFsiZDVlOWUxZGE2NDlkOTdkODllNDg2ODExN2E0NjVhM2E0ZjhhMThk''@;'; + put 'put ''ZTU3YTE0MGQzNmIzZjJhZjM0MWEyMWI1MiIsIjRjYjA0NDM3ZjM5MWVkNzMxMTFhMTNjYzFkNGRkMGRiMTY5MzQ2NWMyMjQwNDgwZDg5NTVlODU5MmYyNzQ0N2EiXSxbImQzYWU0MTA0N2RkN2NhMDY1ZGJmOGVkNzdiOTkyNDM5OTgzMDA1Y2Q3MmUxNmQ2Zjk5NmE1MzE2ZDM2OTY2YmIiLCJi''@;'; + put 'put ''ZDFhZWIyMWFkMjJlYmIyMmExMGYwMzAzNDE3YzZkOTY0ZjhjZGQ3ZGYwYWNhNjE0YjEwZGMxNGQxMjVhYzQ2Il0sWyI0NjNlMjc2M2Q4ODVmOTU4ZmM2NmNkZDIyODAwZjBhNDg3MTk3ZDBhODJlMzc3YjQ5ZjgwYWY4N2M4OTdiMDY1IiwiYmZlZmFjZGIwZTVkMGZkN2RmM2EzMTFhOTRkZTA2''@;'; + put 'put ''MmIyNmI4MGM2MWZiYzk3NTA4Yjc5OTkyNjcxZWY3Y2E3ZiJdLFsiNzk4NWZkZmQxMjdjMDU2N2M2ZjUzZWMxYmI2M2VjMzE1OGU1OTdjNDBiZmU3NDdjODNjZGRmYzkxMDY0MTkxNyIsIjYwM2MxMmRhZjNkOTg2MmVmMmIyNWZlMWRlMjg5YWVkMjRlZDI5MWUwZWM2NzA4NzAzYTViZDU2N2Yz''@;'; + put 'put ''MmVkMDMiXSxbIjc0YTFhZDZiNWY3NmUzOWRiMmRkMjQ5NDEwZWFjN2Y5OWU3NGM1OWNiODNkMmQwZWQ1ZmYxNTQzZGE3NzAzZTkiLCJjYzYxNTdlZjE4YzljNjNjZDYxOTNkODM2MzFiYmVhMDA5M2UwOTY4OTQyZThjMzNkNTczN2ZkNzkwZTBkYjA4Il0sWyIzMDY4MmE1MDcwMzM3NWY2MDJk''@;'; + put 'put ''NDE2NjY0YmExOWI3ZmM5YmFiNDJjNzI3NDc0NjNhNzFkMDg5NmIyMmY2ZGEzIiwiNTUzZTA0ZjZiMDE4YjRmYTZjOGYzOWU3ZjMxMWQzMTc2MjkwZDBlMGYxOWNhNzNmMTc3MTRkOTk3N2EyMmZmOCJdLFsiOWUyMTU4ZjBkN2MwZDVmMjZjMzc5MWVmZWZhNzk1OTc2NTRlN2EyYjI0NjRmNTJi''@;'; + put 'put ''MWVlNmMxMzQ3NzY5ZWY1NyIsIjcxMmZjZGQxYjkwNTNmMDkwMDNhMzQ4MWZhNzc2MmU5ZmZkN2M4ZWYzNWEzODUwOWUyZmJmMjYyOTAwODM3MyJdLFsiMTc2ZTI2OTg5YTQzYzljZmViYTQwMjljMjAyNTM4YzI4MTcyZTU2NmUzYzRmY2U3MzIyODU3ZjNiZTMyN2Q2NiIsImVkOGNjOWQwNGIy''@;'; + put 'put ''OWViODc3ZDI3MGI0ODc4ZGM0M2MxOWFlZmQzMWY0ZWVlMDllZTdiNDc4MzRjMWZhNGIxYzMiXSxbIjc1ZDQ2ZWZlYTM3NzFlNmU2OGFiYjg5YTEzYWQ3NDdlY2YxODkyMzkzZGZjNGYxYjcwMDQ3ODhjNTAzNzRkYTgiLCI5ODUyMzkwYTk5NTA3Njc5ZmQwYjg2ZmQyYjM5YTg2OGQ3ZWZjMjIx''@;'; + put 'put ''NTEzNDZlMWEzY2E0NzI2NTg2YTZiZWQ4Il0sWyI4MDlhMjBjNjdkNjQ5MDBmZmI2OThjNGM4MjVmNmQ1ZjIzMTBmYjA0NTFjODY5MzQ1YjczMTlmNjQ1NjA1NzIxIiwiOWU5OTQ5ODBkOTkxN2UyMmI3NmIwNjE5MjdmYTA0MTQzZDA5NmNjYzU0OTYzZTZhNWViZmE1ZjNmOGUyODZjMSJdLFsi''@;'; + put 'put ''MWIzODkwM2E0M2Y3ZjExNGVkNDUwMGI0ZWFjNzA4M2ZkZWZlY2UxY2YyOWM2MzUyOGQ1NjM0NDZmOTcyYzE4MCIsIjQwMzZlZGM5MzFhNjBhZTg4OTM1M2Y3N2ZkNTNkZTRhMjcwOGIyNmI2ZjVkYTcyYWQzMzk0MTE5ZGFmNDA4ZjkiXV19fX0sOTUzOihVLFEsWik9PnsidXNlIHN0cmljdCI7''@;'; + put 'put ''dmFyIGllPVEsbGU9WigzNzg1KSxZPVooOTc0NiksVz1aKDQ1MDQpO2llLmFzc2VydD1ZLGllLnRvQXJyYXk9Vy50b0FycmF5LGllLnplcm8yPVcuemVybzIsaWUudG9IZXg9Vy50b0hleCxpZS5lbmNvZGU9Vy5lbmNvZGUsaWUuZ2V0TkFGPWZ1bmN0aW9uKE4sZWUscSl7dmFyIEo9bmV3IEFy''@;'; + put 'put ''cmF5KE1hdGgubWF4KE4uYml0TGVuZ3RoKCkscSkrMSk7Si5maWxsKDApO2Zvcih2YXIgc2U9MTw8ZWUrMSxvZT1OLmNsb25lKCksY2U9MDtjZTxKLmxlbmd0aDtjZSsrKXt2YXIgZGUsdmU9b2UuYW5kbG4oc2UtMSk7b2UuaXNPZGQoKT9vZS5pc3VibihkZT12ZT4oc2U+PjEpLTE/KHNlPj4x''@;'; + put 'put ''KS12ZTp2ZSk6ZGU9MCxKW2NlXT1kZSxvZS5pdXNocm4oMSl9cmV0dXJuIEp9LGllLmdldEpTRj1mdW5jdGlvbihOLGVlKXt2YXIgcT1bW10sW11dO049Ti5jbG9uZSgpLGVlPWVlLmNsb25lKCk7Zm9yKHZhciBKLHNlPTAsb2U9MDtOLmNtcG4oLXNlKT4wfHxlZS5jbXBuKC1vZSk+MDspe3Zh''@;'; + put 'put ''ciBjZSxkZSx2ZT1OLmFuZGxuKDMpK3NlJjMsQWU9ZWUuYW5kbG4oMykrb2UmMzszPT09dmUmJih2ZT0tMSksMz09PUFlJiYoQWU9LTEpLGNlPTA9PSgxJnZlKT8wOjMhPShKPU4uYW5kbG4oNykrc2UmNykmJjUhPT1KfHwyIT09QWU/dmU6LXZlLHFbMF0ucHVzaChjZSksZGU9MD09KDEmQWUp''@;'; + put 'put ''PzA6MyE9KEo9ZWUuYW5kbG4oNykrb2UmNykmJjUhPT1KfHwyIT09dmU/QWU6LUFlLHFbMV0ucHVzaChkZSksMipzZT09PWNlKzEmJihzZT0xLXNlKSwyKm9lPT09ZGUrMSYmKG9lPTEtb2UpLE4uaXVzaHJuKDEpLGVlLml1c2hybigxKX1yZXR1cm4gcX0saWUuY2FjaGVkUHJvcGVydHk9ZnVu''@;'; + put 'put ''Y3Rpb24oTixlZSxxKXt2YXIgSj0iXyIrZWU7Ti5wcm90b3R5cGVbZWVdPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXNbSl0/dGhpc1tKXTp0aGlzW0pdPXEuY2FsbCh0aGlzKX19LGllLnBhcnNlQnl0ZXM9ZnVuY3Rpb24oTil7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBOP2llLnRv''@;'; + put 'put ''QXJyYXkoTiwiaGV4Iik6Tn0saWUuaW50RnJvbUxFPWZ1bmN0aW9uKE4pe3JldHVybiBuZXcgbGUoTiwiaGV4IiwibGUiKX19LDM3ODU6ZnVuY3Rpb24oVSxRLFopeyFmdW5jdGlvbihpZSxsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFkoeCxQKXtpZigheCl0aHJvdyBuZXcgRXJyb3IoUHx8''@;'; + put 'put ''IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBXKHgsUCl7eC5zdXBlcl89UDt2YXIgVj1mdW5jdGlvbigpe307Vi5wcm90b3R5cGU9UC5wcm90b3R5cGUseC5wcm90b3R5cGU9bmV3IFYseC5wcm90b3R5cGUuY29uc3RydWN0b3I9eH1mdW5jdGlvbiBOKHgsUCxWKXtpZihOLmlzQk4oeCkp''@;'; + put 'put ''cmV0dXJuIHg7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PXgmJigibGUiIT09UCYmImJlIiE9PVB8fChWPVAsUD0xMCksdGhpcy5faW5pdCh4fHwwLFB8fDEwLFZ8fCJiZSIpKX12YXIgZWU7Im9iamVjdCI9PXR5cGVv''@;'; + put 'put ''ZiBpZT9pZS5leHBvcnRzPU46bGUuQk49TixOLkJOPU4sTi53b3JkU2l6ZT0yNjt0cnl7ZWU9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpaKDU1NjgpLkJ1ZmZlcn1jYXRjaCh4KXt9ZnVuY3Rpb24gcSh4LFApe3ZhciBW''@;'; + put 'put ''PXguY2hhckNvZGVBdChQKTtyZXR1cm4gVj49NjUmJlY8PTcwP1YtNTU6Vj49OTcmJlY8PTEwMj9WLTg3OlYtNDgmMTV9ZnVuY3Rpb24gSih4LFAsVil7dmFyIFQ9cSh4LFYpO3JldHVybiBWLTE+PVAmJihUfD1xKHgsVi0xKTw8NCksVH1mdW5jdGlvbiBzZSh4LFAsVixUKXtmb3IodmFyIFM9''@;'; + put 'put ''MCxGPU1hdGgubWluKHgubGVuZ3RoLFYpLHllPVA7eWU8Rjt5ZSsrKXt2YXIgQ2U9eC5jaGFyQ29kZUF0KHllKS00ODtTKj1ULFMrPUNlPj00OT9DZS00OSsxMDpDZT49MTc/Q2UtMTcrMTA6Q2V9cmV0dXJuIFN9Ti5pc0JOPWZ1bmN0aW9uKHgpe3JldHVybiB4IGluc3RhbmNlb2YgTnx8bnVs''@;'; + put 'put ''bCE9PXgmJiJvYmplY3QiPT10eXBlb2YgeCYmeC5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PU4ud29yZFNpemUmJkFycmF5LmlzQXJyYXkoeC53b3Jkcyl9LE4ubWF4PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHguY21wKFApPjA/eDpQfSxOLm1pbj1mdW5jdGlvbih4LFApe3JldHVybiB4LmNtcChQ''@;'; + put 'put ''KTwwP3g6UH0sTi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oeCxQLFYpe2lmKCJudW1iZXIiPT10eXBlb2YgeClyZXR1cm4gdGhpcy5faW5pdE51bWJlcih4LFAsVik7aWYoIm9iamVjdCI9PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0QXJyYXkoeCxQLFYpOyJoZXgiPT09UCYmKFA9MTYp''@;'; + put 'put ''LFkoUD09PSgwfFApJiZQPj0yJiZQPD0zNik7dmFyIFQ9MDsiLSI9PT0oeD14LnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKFQrKyx0aGlzLm5lZ2F0aXZlPTEpLFQ8eC5sZW5ndGgmJigxNj09PVA/dGhpcy5fcGFyc2VIZXgoeCxULFYpOih0aGlzLl9wYXJzZUJhc2UoeCxQ''@;'; + put 'put ''LFQpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKSkpfSxOLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbih4LFAsVil7eDwwJiYodGhpcy5uZWdhdGl2ZT0xLHg9LXgpLHg8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJnhdLHRoaXMubGVu''@;'; + put 'put ''Z3RoPTEpOng8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKTooWSh4PDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJngseC82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0''@;'; + put 'put ''aD0zKSwibGUiPT09ViYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLFAsVil9LE4ucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oeCxQLFYpe2lmKFkoIm51bWJlciI9PXR5cGVvZiB4Lmxlbmd0aCkseC5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVu''@;'; + put 'put ''Z3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoeC5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09MDt2YXIgUyxGLHllPTA7aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgt''@;'; + put 'put ''MSxTPTA7VD49MDtULT0zKXRoaXMud29yZHNbU118PShGPXhbVF18eFtULTFdPDw4fHhbVC0yXTw8MTYpPDx5ZSY2NzEwODg2Myx0aGlzLndvcmRzW1MrMV09Rj4+PjI2LXllJjY3MTA4ODYzLCh5ZSs9MjQpPj0yNiYmKHllLT0yNixTKyspO2Vsc2UgaWYoImxlIj09PVYpZm9yKFQ9MCxTPTA7''@;'; + put 'put ''VDx4Lmxlbmd0aDtUKz0zKXRoaXMud29yZHNbU118PShGPXhbVF18eFtUKzFdPDw4fHhbVCsyXTw8MTYpPDx5ZSY2NzEwODg2Myx0aGlzLndvcmRzW1MrMV09Rj4+PjI2LXllJjY3MTA4ODYzLCh5ZSs9MjQpPj0yNiYmKHllLT0yNixTKyspO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90''@;'; + put 'put ''eXBlLl9wYXJzZUhleD1mdW5jdGlvbih4LFAsVil7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh4Lmxlbmd0aC1QKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT0wO3ZhciBTLEY9MCx5ZT0wO2lm''@;'; + put 'put ''KCJiZSI9PT1WKWZvcihUPXgubGVuZ3RoLTE7VD49UDtULT0yKVM9Sih4LFAsVCk8PEYsdGhpcy53b3Jkc1t5ZV18PTY3MTA4ODYzJlMsRj49MTg/KEYtPTE4LHRoaXMud29yZHNbeWUrPTFdfD1TPj4+MjYpOkYrPTg7ZWxzZSBmb3IoVD0oeC5sZW5ndGgtUCklMj09MD9QKzE6UDtUPHgubGVu''@;'; + put 'put ''Z3RoO1QrPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9NjcxMDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODt0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oeCxQLFYpe3RoaXMud29yZHM9WzBdLHRo''@;'; + put 'put ''aXMubGVuZ3RoPTE7Zm9yKHZhciBUPTAsUz0xO1M8PTY3MTA4ODYzO1MqPVApVCsrO1QtLSxTPVMvUHwwO2Zvcih2YXIgRj14Lmxlbmd0aC1WLHllPUYlVCxDZT1NYXRoLm1pbihGLEYteWUpK1YsRGU9MCxQZT1WO1BlPENlO1BlKz1UKURlPXNlKHgsUGUsUGUrVCxQKSx0aGlzLmltdWxuKFMp''@;'; + put 'put ''LHRoaXMud29yZHNbMF0rRGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9RGU6dGhpcy5faWFkZG4oRGUpO2lmKDAhPT15ZSl7dmFyIFFlPTE7Zm9yKERlPXNlKHgsUGUseC5sZW5ndGgsUCksUGU9MDtQZTx5ZTtQZSsrKVFlKj1QO3RoaXMuaW11bG4oUWUpLHRoaXMud29yZHNbMF0rRGU8Njcx''@;'; + put 'put ''MDg4NjQ/dGhpcy53b3Jkc1swXSs9RGU6dGhpcy5faWFkZG4oRGUpfXRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuY29weT1mdW5jdGlvbih4KXt4LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0aDtQKyspeC53b3Jkc1tQXT10aGlzLndvcmRz''@;'; + put 'put ''W1BdO3gubGVuZ3RoPXRoaXMubGVuZ3RoLHgubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSx4LnJlZD10aGlzLnJlZH0sTi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgeD1uZXcgTihudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHgpLHh9LE4ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24o''@;'; + put 'put ''eCl7Zm9yKDt0aGlzLmxlbmd0aDx4Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4g''@;'; + put 'put ''dGhpcy5fbm9ybVNpZ24oKX0sTi5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LE4ucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/''@;'; + put 'put ''IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIG9lPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAw''@;'; + put 'put ''IiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLGNlPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYs''@;'; + put 'put ''Niw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLGRlPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEz''@;'; + put 'put ''OTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQs''@;'; + put 'put ''NTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIHZlKHgsUCxWKXtWLm5lZ2F0aXZlPVAubmVnYXRpdmVeeC5uZWdhdGl2ZTt2YXIgVD14Lmxlbmd0aCtQLmxlbmd0aHwwO1YubGVuZ3RoPVQsVD1ULTF8MDt2YXIgUz0wfHgud29yZHNbMF0sRj0wfFAud29yZHNbMF0seWU9UypGLERlPXllLzY3''@;'; + put 'put ''MTA4ODY0fDA7Vi53b3Jkc1swXT02NzEwODg2MyZ5ZTtmb3IodmFyIFBlPTE7UGU8VDtQZSsrKXtmb3IodmFyIFFlPURlPj4+MjYsJGU9NjcxMDg4NjMmRGUsZ3Q9TWF0aC5taW4oUGUsUC5sZW5ndGgtMSksd3Q9TWF0aC5tYXgoMCxQZS14Lmxlbmd0aCsxKTt3dDw9Z3Q7d3QrKylRZSs9KHll''@;'; + put 'put ''PShTPTB8eC53b3Jkc1tQZS13dHwwXSkqKEY9MHxQLndvcmRzW3d0XSkrJGUpLzY3MTA4ODY0fDAsJGU9NjcxMDg4NjMmeWU7Vi53b3Jkc1tQZV09MHwkZSxEZT0wfFFlfXJldHVybiAwIT09RGU/Vi53b3Jkc1tQZV09MHxEZTpWLmxlbmd0aC0tLFYuc3RyaXAoKX1OLnByb3RvdHlwZS50b1N0''@;'; + put 'put ''cmluZz1mdW5jdGlvbih4LFApe3ZhciBWO2lmKFA9MHxQfHwxLDE2PT09KHg9eHx8MTApfHwiaGV4Ij09PXgpe1Y9IiI7Zm9yKHZhciBUPTAsUz0wLEY9MDtGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPXRoaXMud29yZHNbRl0sQ2U9KDE2Nzc3MjE1Jih5ZTw8VHxTKSkudG9TdHJpbmcoMTYp''@;'; + put 'put ''O1Y9MCE9KFM9eWU+Pj4yNC1UJjE2Nzc3MjE1KXx8RiE9PXRoaXMubGVuZ3RoLTE/b2VbNi1DZS5sZW5ndGhdK0NlK1Y6Q2UrViwoVCs9Mik+PTI2JiYoVC09MjYsRi0tKX1mb3IoMCE9PVMmJihWPVMudG9TdHJpbmcoMTYpK1YpO1YubGVuZ3RoJVAhPTA7KVY9IjAiK1Y7cmV0dXJuIDAhPT10''@;'; + put 'put ''aGlzLm5lZ2F0aXZlJiYoVj0iLSIrViksVn1pZih4PT09KDB8eCkmJng+PTImJng8PTM2KXt2YXIgRGU9Y2VbeF0sUGU9ZGVbeF07Vj0iIjt2YXIgUWU9dGhpcy5jbG9uZSgpO2ZvcihRZS5uZWdhdGl2ZT0wOyFRZS5pc1plcm8oKTspe3ZhciAkZT1RZS5tb2RuKFBlKS50b1N0cmluZyh4KTtW''@;'; + put 'put ''PShRZT1RZS5pZGl2bihQZSkpLmlzWmVybygpPyRlK1Y6b2VbRGUtJGUubGVuZ3RoXSskZStWfWZvcih0aGlzLmlzWmVybygpJiYoVj0iMCIrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfVkoITEsIkJhc2Ugc2hvdWxkIGJl''@;'; + put 'put ''IGJldHdlZW4gMiBhbmQgMzYiKX0sTi5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgeD10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/eCs9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP3grPTQ1MDM1''@;'; + put 'put ''OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZZKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8teDp4fSxOLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy50b1N0cmluZygxNil9LE4ucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIFkodm9pZCAwIT09ZWUpLHRoaXMudG9BcnJheUxpa2UoZWUseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LHgs''@;'; + put 'put ''UCl9LE4ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVD10aGlzLmJ5dGVMZW5ndGgoKSxTPVZ8fE1hdGgubWF4KDEsVCk7WShUPD1TLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksWShTPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGgg''@;'; + put 'put ''PD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgRix5ZSxDZT0ibGUiPT09UCxEZT1uZXcgeChTKSxQZT10aGlzLmNsb25lKCk7aWYoQ2Upe2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVbeWVdPUY7Zm9yKDt5ZTxTO3llKyspRGVbeWVdPTB9''@;'; + put 'put ''ZWxzZXtmb3IoeWU9MDt5ZTxTLVQ7eWUrKylEZVt5ZV09MDtmb3IoeWU9MDshUGUuaXNaZXJvKCk7eWUrKylGPVBlLmFuZGxuKDI1NSksUGUuaXVzaHJuKDgpLERlW1MteWUtMV09Rn1yZXR1cm4gRGV9LE4ucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbih4KXtyZXR1''@;'; + put 'put ''cm4gMzItTWF0aC5jbHozMih4KX06ZnVuY3Rpb24oeCl7dmFyIFA9eCxWPTA7cmV0dXJuIFA+PTQwOTYmJihWKz0xMyxQPj4+PTEzKSxQPj02NCYmKFYrPTcsUD4+Pj03KSxQPj04JiYoVis9NCxQPj4+PTQpLFA+PTImJihWKz0yLFA+Pj49MiksVitQfSxOLnByb3RvdHlwZS5femVyb0JpdHM9''@;'; + put 'put ''ZnVuY3Rpb24oeCl7aWYoMD09PXgpcmV0dXJuIDI2O3ZhciBQPXgsVj0wO3JldHVybiAwPT0oODE5MSZQKSYmKFYrPTEzLFA+Pj49MTMpLDA9PSgxMjcmUCkmJihWKz03LFA+Pj49NyksMD09KDE1JlApJiYoVis9NCxQPj4+PTQpLDA9PSgzJlApJiYoVis9MixQPj4+PTIpLDA9PSgxJlApJiZW''@;'; + put 'put ''KyssVn0sTi5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIFA9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrUH0sTi5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygp''@;'; + put 'put ''KXJldHVybiAwO2Zvcih2YXIgeD0wLFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1tQXSk7aWYoeCs9ViwyNiE9PVYpYnJlYWt9cmV0dXJuIHh9LE4ucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRo''@;'; + put 'put ''aXMuYml0TGVuZ3RoKCkvOCl9LE4ucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbih4KXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bih4KS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnRl''@;'; + put 'put ''c3RuKHgtMSk/dGhpcy5ub3RuKHgpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxOLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sTi5w''@;'; + put 'put ''cm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sTi5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHgubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciBQ''@;'; + put 'put ''PTA7UDx4Lmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT10aGlzLndvcmRzW1BdfHgud29yZHNbUF07cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVnYXRpdmUpKSx0aGlzLml1b3IoeCl9LE4ucHJv''@;'; + put 'put ''dG90eXBlLm9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKHgpOnguY2xvbmUoKS5pb3IodGhpcyl9LE4ucHJvdG90eXBlLnVvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3Io''@;'; + put 'put ''eCk6eC5jbG9uZSgpLml1b3IodGhpcyl9LE4ucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKHgpe3ZhciBQO1A9dGhpcy5sZW5ndGg+eC5sZW5ndGg/eDp0aGlzO2Zvcih2YXIgVj0wO1Y8UC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09dGhpcy53b3Jkc1tWXSZ4LndvcmRzW1ZdO3JldHVybiB0''@;'; + put 'put ''aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoeCl9LE4ucHJvdG90eXBlLmFuZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+''@;'; + put 'put ''eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoeCk6eC5jbG9uZSgpLmlhbmQodGhpcyl9LE4ucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZCh4KTp4LmNsb25lKCkuaXVhbmQodGhpcyl9LE4ucHJvdG90eXBl''@;'; + put 'put ''Lml1eG9yPWZ1bmN0aW9uKHgpe3ZhciBQLFY7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFA9dGhpcyxWPXgpOihQPXgsVj10aGlzKTtmb3IodmFyIFQ9MDtUPFYubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPVAud29yZHNbVF1eVi53b3Jkc1tUXTtpZih0aGlzIT09UClmb3IoO1Q8UC5sZW5ndGg7''@;'; + put 'put ''VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXTtyZXR1cm4gdGhpcy5sZW5ndGg9UC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVnYXRpdmUpKSx0aGlzLml1eG9yKHgpfSxOLnByb3RvdHlw''@;'; + put 'put ''ZS54b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKHgpOnguY2xvbmUoKS5peG9yKHRoaXMpfSxOLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3Io''@;'; + put 'put ''eCk6eC5jbG9uZSgpLml1eG9yKHRoaXMpfSxOLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9MHxNYXRoLmNlaWwoeC8yNiksVj14JTI2O3RoaXMuX2V4cGFuZChQKSxWPjAmJlAtLTtmb3IodmFyIFQ9MDtUPFA7VCsrKXRoaXMu''@;'; + put 'put ''d29yZHNbVF09NjcxMDg4NjMmfnRoaXMud29yZHNbVF07cmV0dXJuIFY+MCYmKHRoaXMud29yZHNbVF09fnRoaXMud29yZHNbVF0mNjcxMDg4NjM+PjI2LVYpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUubm90bj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKHgpfSxO''@;'; + put 'put ''LnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKHgsUCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBWPXgvMjZ8MCxUPXglMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChWKzEpLHRoaXMud29yZHNbVl09UD90aGlzLndvcmRzW1ZdfDE8PFQ6dGhpcy53b3Jkc1tWXSZ+KDE8PFQpLHRoaXMu''@;'; + put 'put ''c3RyaXAoKX0sTi5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih4KXt2YXIgUCxWLFQ7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10''@;'; + put 'put ''aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZSlyZXR1cm4geC5uZWdhdGl2ZT0wLFA9dGhpcy5pc3ViKHgpLHgubmVnYXRpdmU9MSxQLl9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPngubGVuZ3RoPyhWPXRoaXMsVD14KTooVj14LFQ9dGhpcyk7Zm9yKHZhciBTPTAsRj0wO0Y8VC5sZW5ndGg7''@;'; + put 'put ''RisrKXRoaXMud29yZHNbRl09NjcxMDg4NjMmKFA9KDB8Vi53b3Jkc1tGXSkrKDB8VC53b3Jkc1tGXSkrUyksUz1QPj4+MjY7Zm9yKDswIT09UyYmRjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKStTKSxTPVA+Pj4yNjtpZih0aGlzLmxlbmd0''@;'; + put 'put ''aD1WLmxlbmd0aCwwIT09Uyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1TLHRoaXMubGVuZ3RoKys7ZWxzZSBpZihWIT09dGhpcylmb3IoO0Y8Vi5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09Vi53b3Jkc1tGXTtyZXR1cm4gdGhpc30sTi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHgpe3ZhciBQ''@;'; + put 'put ''O3JldHVybiAwIT09eC5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KHgubmVnYXRpdmU9MCxQPXRoaXMuc3ViKHgpLHgubmVnYXRpdmVePTEsUCk6MD09PXgubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAsUD14LnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZl''@;'; + put 'put ''PTEsUCk6dGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoeCk6eC5jbG9uZSgpLmlhZGQodGhpcyl9LE4ucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oeCl7aWYoMCE9PXgubmVnYXRpdmUpe3gubmVnYXRpdmU9MDt2YXIgUD10aGlzLmlhZGQoeCk7cmV0dXJuIHgubmVnYXRp''@;'; + put 'put ''dmU9MSxQLl9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBWLFQsUz10aGlzLmNtcCh4KTtpZigwPT09UylyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRo''@;'; + put 'put ''aXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7Uz4wPyhWPXRoaXMsVD14KTooVj14LFQ9dGhpcyk7Zm9yKHZhciBGPTAseWU9MDt5ZTxULmxlbmd0aDt5ZSsrKUY9KFA9KDB8Vi53b3Jkc1t5ZV0pLSgwfFQud29yZHNbeWVdKStGKT4+MjYsdGhpcy53b3Jkc1t5ZV09NjcxMDg4NjMm''@;'; + put 'put ''UDtmb3IoOzAhPT1GJiZ5ZTxWLmxlbmd0aDt5ZSsrKUY9KFA9KDB8Vi53b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02NzEwODg2MyZQO2lmKDA9PT1GJiZ5ZTxWLmxlbmd0aCYmViE9PXRoaXMpZm9yKDt5ZTxWLmxlbmd0aDt5ZSsrKXRoaXMud29yZHNbeWVdPVYud29yZHNbeWVd''@;'; + put 'put ''O3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx5ZSksViE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Yih4KX07dmFyIEFlPWZ1bmN0aW9uKHgsUCxW''@;'; + put 'put ''KXt2YXIgVCxTLEYseWU9eC53b3JkcyxDZT1QLndvcmRzLERlPVYud29yZHMsUGU9MCxRZT0wfHllWzBdLCRlPTgxOTEmUWUsZ3Q9UWU+Pj4xMyx3dD0wfHllWzFdLHZ0PTgxOTEmd3QsQXQ9d3Q+Pj4xMyxtdD0wfHllWzJdLGh0PTgxOTEmbXQsQnQ9bXQ+Pj4xMyxvbj0wfHllWzNdLF90PTgx''@;'; + put 'put ''OTEmb24sdHQ9b24+Pj4xMyxldD0wfHllWzRdLGF0PTgxOTEmZXQsTHQ9ZXQ+Pj4xMyxDdD0wfHllWzVdLGZ0PTgxOTEmQ3QsSHQ9Q3Q+Pj4xMyxHZT0wfHllWzZdLFVlPTgxOTEmR2UseXQ9R2U+Pj4xMyxqdD0wfHllWzddLFF0PTgxOTEmanQsZ249anQ+Pj4xMyxkbj0wfHllWzhdLHluPTgx''@;'; + put 'put ''OTEmZG4sbG49ZG4+Pj4xMyxObj0wfHllWzldLGJuPTgxOTEmTm4sZXI9Tm4+Pj4xMyxzcj0wfENlWzBdLFhuPTgxOTEmc3IsRnI9c3I+Pj4xMyx4cj0wfENlWzFdLHF0PTgxOTEmeHIscHI9eHI+Pj4xMyxucj0wfENlWzJdLEFuPTgxOTEmbnIscW49bnI+Pj4xMyxXdD0wfENlWzNdLHBuPTgx''@;'; + put 'put ''OTEmV3QsS249V3Q+Pj4xMyxOdD0wfENlWzRdLHNuPTgxOTEmTnQsVW49TnQ+Pj4xMyx3bj0wfENlWzVdLHRuPTgxOTEmd24sem49d24+Pj4xMyxUcj0wfENlWzZdLEJuPTgxOTEmVHIsa3I9VHI+Pj4xMyxtbj0wfENlWzddLHVuPTgxOTEmbW4sY249bW4+Pj4xMyxfbj0wfENlWzhdLEd0PTgx''@;'; + put 'put ''OTEmX24sa249X24+Pj4xMyxWbj0wfENlWzldLGVuPTgxOTEmVm4sSW49Vm4+Pj4xMztWLm5lZ2F0aXZlPXgubmVnYXRpdmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD0xOTt2YXIgSm49KFBlKyhUPU1hdGguaW11bCgkZSxYbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoJGUsRnIpKStNYXRo''@;'; + put 'put ''LmltdWwoZ3QsWG4pfDApKTw8MTMpfDA7UGU9KChGPU1hdGguaW11bChndCxGcikpKyhTPj4+MTMpfDApKyhKbj4+PjI2KXwwLEpuJj02NzEwODg2MyxUPU1hdGguaW11bCh2dCxYbiksUz0oUz1NYXRoLmltdWwodnQsRnIpKStNYXRoLmltdWwoQXQsWG4pfDAsRj1NYXRoLmltdWwoQXQsRnIp''@;'; + put 'put ''O3ZhciBvcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscXQpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxwcil8MCkrTWF0aC5pbXVsKGd0LHF0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxwcil8MCkrKFM+Pj4xMyl8MCkrKG9yPj4+MjYpfDAsb3ImPTY3MTA4''@;'; + put 'put ''ODYzLFQ9TWF0aC5pbXVsKGh0LFhuKSxTPShTPU1hdGguaW11bChodCxGcikpK01hdGguaW11bChCdCxYbil8MCxGPU1hdGguaW11bChCdCxGciksVD1UK01hdGguaW11bCh2dCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKHZ0LHByKXwwKStNYXRoLmltdWwoQXQscXQpfDAsRj1GK01hdGguaW11''@;'; + put 'put ''bChBdCxwcil8MDt2YXIgZ3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEFuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUscW4pfDApK01hdGguaW11bChndCxBbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QscW4pfDApKyhTPj4+MTMpfDApKyhncj4+PjI2KXww''@;'; + put 'put ''LGdyJj02NzEwODg2MyxUPU1hdGguaW11bChfdCxYbiksUz0oUz1NYXRoLmltdWwoX3QsRnIpKStNYXRoLmltdWwodHQsWG4pfDAsRj1NYXRoLmltdWwodHQsRnIpLFQ9VCtNYXRoLmltdWwoaHQscXQpfDAsUz0oUz1TK01hdGguaW11bChodCxwcil8MCkrTWF0aC5pbXVsKEJ0LHF0KXwwLEY9''@;'; + put 'put ''RitNYXRoLmltdWwoQnQscHIpfDAsVD1UK01hdGguaW11bCh2dCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKHZ0LHFuKXwwKStNYXRoLmltdWwoQXQsQW4pfDAsRj1GK01hdGguaW11bChBdCxxbil8MDt2YXIgS3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHBuKXwwKXwwKSsoKDgxOTEmKFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwoJGUsS24pfDApK01hdGguaW11bChndCxwbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsS24pfDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2MyxUPU1hdGguaW11bChhdCxYbiksUz0oUz1NYXRoLmltdWwoYXQsRnIpKStNYXRoLmlt''@;'; + put 'put ''dWwoTHQsWG4pfDAsRj1NYXRoLmltdWwoTHQsRnIpLFQ9VCtNYXRoLmltdWwoX3QscXQpfDAsUz0oUz1TK01hdGguaW11bChfdCxwcil8MCkrTWF0aC5pbXVsKHR0LHF0KXwwLEY9RitNYXRoLmltdWwodHQscHIpfDAsVD1UK01hdGguaW11bChodCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0''@;'; + put 'put ''LHFuKXwwKStNYXRoLmltdWwoQnQsQW4pfDAsRj1GK01hdGguaW11bChCdCxxbil8MCxUPVQrTWF0aC5pbXVsKHZ0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwodnQsS24pfDApK01hdGguaW11bChBdCxwbil8MCxGPUYrTWF0aC5pbXVsKEF0LEtuKXwwO3ZhciBWcj0oUGUrKFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwoJGUsc24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxVbil8MCkrTWF0aC5pbXVsKGd0LHNuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxVbil8MCkrKFM+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGZ0LFhuKSxT''@;'; + put 'put ''PShTPU1hdGguaW11bChmdCxGcikpK01hdGguaW11bChIdCxYbil8MCxGPU1hdGguaW11bChIdCxGciksVD1UK01hdGguaW11bChhdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGF0LHByKXwwKStNYXRoLmltdWwoTHQscXQpfDAsRj1GK01hdGguaW11bChMdCxwcil8MCxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KF90LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QscW4pfDApK01hdGguaW11bCh0dCxBbil8MCxGPUYrTWF0aC5pbXVsKHR0LHFuKXwwLFQ9VCtNYXRoLmltdWwoaHQscG4pfDAsUz0oUz1TK01hdGguaW11bChodCxLbil8MCkrTWF0aC5pbXVsKEJ0LHBuKXwwLEY9RitNYXRoLmltdWwoQnQs''@;'; + put 'put ''S24pfDAsVD1UK01hdGguaW11bCh2dCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKHZ0LFVuKXwwKStNYXRoLmltdWwoQXQsc24pfDAsRj1GK01hdGguaW11bChBdCxVbil8MDt2YXIgaWk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHRuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUs''@;'; + put 'put ''em4pfDApK01hdGguaW11bChndCx0bil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsem4pfDApKyhTPj4+MTMpfDApKyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChVZSxYbiksUz0oUz1NYXRoLmltdWwoVWUsRnIpKStNYXRoLmltdWwoeXQsWG4pfDAsRj1N''@;'; + put 'put ''YXRoLmltdWwoeXQsRnIpLFQ9VCtNYXRoLmltdWwoZnQscXQpfDAsUz0oUz1TK01hdGguaW11bChmdCxwcil8MCkrTWF0aC5pbXVsKEh0LHF0KXwwLEY9RitNYXRoLmltdWwoSHQscHIpfDAsVD1UK01hdGguaW11bChhdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LHFuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoTHQsQW4pfDAsRj1GK01hdGguaW11bChMdCxxbil8MCxUPVQrTWF0aC5pbXVsKF90LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsS24pfDApK01hdGguaW11bCh0dCxwbil8MCxGPUYrTWF0aC5pbXVsKHR0LEtuKXwwLFQ9VCtNYXRoLmltdWwoaHQsc24pfDAsUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bChodCxVbil8MCkrTWF0aC5pbXVsKEJ0LHNuKXwwLEY9RitNYXRoLmltdWwoQnQsVW4pfDAsVD1UK01hdGguaW11bCh2dCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKHZ0LHpuKXwwKStNYXRoLmltdWwoQXQsdG4pfDAsRj1GK01hdGguaW11bChBdCx6bil8MDt2YXIgUnI9KFBlKyhUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKCRlLEJuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsa3IpfDApK01hdGguaW11bChndCxCbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsa3IpfDApKyhTPj4+MTMpfDApKyhScj4+PjI2KXwwLFJyJj02NzEwODg2MyxUPU1hdGguaW11bChRdCxY''@;'; + put 'put ''biksUz0oUz1NYXRoLmltdWwoUXQsRnIpKStNYXRoLmltdWwoZ24sWG4pfDAsRj1NYXRoLmltdWwoZ24sRnIpLFQ9VCtNYXRoLmltdWwoVWUscXQpfDAsUz0oUz1TK01hdGguaW11bChVZSxwcil8MCkrTWF0aC5pbXVsKHl0LHF0KXwwLEY9RitNYXRoLmltdWwoeXQscHIpfDAsVD1UK01hdGgu''@;'; + put 'put ''aW11bChmdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHFuKXwwKStNYXRoLmltdWwoSHQsQW4pfDAsRj1GK01hdGguaW11bChIdCxxbil8MCxUPVQrTWF0aC5pbXVsKGF0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsS24pfDApK01hdGguaW11bChMdCxwbil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KEx0LEtuKXwwLFQ9VCtNYXRoLmltdWwoX3Qsc24pfDAsUz0oUz1TK01hdGguaW11bChfdCxVbil8MCkrTWF0aC5pbXVsKHR0LHNuKXwwLEY9RitNYXRoLmltdWwodHQsVW4pfDAsVD1UK01hdGguaW11bChodCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHpuKXwwKStNYXRoLmltdWwoQnQs''@;'; + put 'put ''dG4pfDAsRj1GK01hdGguaW11bChCdCx6bil8MCxUPVQrTWF0aC5pbXVsKHZ0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwodnQsa3IpfDApK01hdGguaW11bChBdCxCbil8MCxGPUYrTWF0aC5pbXVsKEF0LGtyKXwwO3ZhciBsaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsdW4pfDApfDApKygoODE5''@;'; + put 'put ''MSYoUz0oUz1TK01hdGguaW11bCgkZSxjbil8MCkrTWF0aC5pbXVsKGd0LHVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxjbil8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHluLFhuKSxTPShTPU1hdGguaW11bCh5bixGcikp''@;'; + put 'put ''K01hdGguaW11bChsbixYbil8MCxGPU1hdGguaW11bChsbixGciksVD1UK01hdGguaW11bChRdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKFF0LHByKXwwKStNYXRoLmltdWwoZ24scXQpfDAsRj1GK01hdGguaW11bChnbixwcil8MCxUPVQrTWF0aC5pbXVsKFVlLEFuKXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoVWUscW4pfDApK01hdGguaW11bCh5dCxBbil8MCxGPUYrTWF0aC5pbXVsKHl0LHFuKXwwLFQ9VCtNYXRoLmltdWwoZnQscG4pfDAsUz0oUz1TK01hdGguaW11bChmdCxLbil8MCkrTWF0aC5pbXVsKEh0LHBuKXwwLEY9RitNYXRoLmltdWwoSHQsS24pfDAsVD1UK01hdGguaW11bChh''@;'; + put 'put ''dCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LFVuKXwwKStNYXRoLmltdWwoTHQsc24pfDAsRj1GK01hdGguaW11bChMdCxVbil8MCxUPVQrTWF0aC5pbXVsKF90LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsem4pfDApK01hdGguaW11bCh0dCx0bil8MCxGPUYrTWF0aC5pbXVsKHR0LHpu''@;'; + put 'put ''KXwwLFQ9VCtNYXRoLmltdWwoaHQsQm4pfDAsUz0oUz1TK01hdGguaW11bChodCxrcil8MCkrTWF0aC5pbXVsKEJ0LEJuKXwwLEY9RitNYXRoLmltdWwoQnQsa3IpfDAsVD1UK01hdGguaW11bCh2dCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKHZ0LGNuKXwwKStNYXRoLmltdWwoQXQsdW4pfDAs''@;'; + put 'put ''Rj1GK01hdGguaW11bChBdCxjbil8MDt2YXIgTWk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEd0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsa24pfDApK01hdGguaW11bChndCxHdCl8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsa24pfDApKyhTPj4+MTMpfDAp''@;'; + put 'put ''KyhNaT4+PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChibixYbiksUz0oUz1NYXRoLmltdWwoYm4sRnIpKStNYXRoLmltdWwoZXIsWG4pfDAsRj1NYXRoLmltdWwoZXIsRnIpLFQ9VCtNYXRoLmltdWwoeW4scXQpfDAsUz0oUz1TK01hdGguaW11bCh5bixwcil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KGxuLHF0KXwwLEY9RitNYXRoLmltdWwobG4scHIpfDAsVD1UK01hdGguaW11bChRdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LHFuKXwwKStNYXRoLmltdWwoZ24sQW4pfDAsRj1GK01hdGguaW11bChnbixxbil8MCxUPVQrTWF0aC5pbXVsKFVlLHBuKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''VWUsS24pfDApK01hdGguaW11bCh5dCxwbil8MCxGPUYrTWF0aC5pbXVsKHl0LEtuKXwwLFQ9VCtNYXRoLmltdWwoZnQsc24pfDAsUz0oUz1TK01hdGguaW11bChmdCxVbil8MCkrTWF0aC5pbXVsKEh0LHNuKXwwLEY9RitNYXRoLmltdWwoSHQsVW4pfDAsVD1UK01hdGguaW11bChhdCx0bil8''@;'; + put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKGF0LHpuKXwwKStNYXRoLmltdWwoTHQsdG4pfDAsRj1GK01hdGguaW11bChMdCx6bil8MCxUPVQrTWF0aC5pbXVsKF90LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa3IpfDApK01hdGguaW11bCh0dCxCbil8MCxGPUYrTWF0aC5pbXVsKHR0LGtyKXwwLFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwoaHQsdW4pfDAsUz0oUz1TK01hdGguaW11bChodCxjbil8MCkrTWF0aC5pbXVsKEJ0LHVuKXwwLEY9RitNYXRoLmltdWwoQnQsY24pfDAsVD1UK01hdGguaW11bCh2dCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKHZ0LGtuKXwwKStNYXRoLmltdWwoQXQsR3QpfDAsRj1GK01h''@;'; + put 'put ''dGguaW11bChBdCxrbil8MDt2YXIgbzA9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsSW4pfDApK01hdGguaW11bChndCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsSW4pfDApKyhTPj4+MTMpfDApKyhvMD4+''@;'; + put 'put ''PjI2KXwwLG8wJj02NzEwODg2MyxUPU1hdGguaW11bChibixxdCksUz0oUz1NYXRoLmltdWwoYm4scHIpKStNYXRoLmltdWwoZXIscXQpfDAsRj1NYXRoLmltdWwoZXIscHIpLFQ9VCtNYXRoLmltdWwoeW4sQW4pfDAsUz0oUz1TK01hdGguaW11bCh5bixxbil8MCkrTWF0aC5pbXVsKGxuLEFu''@;'; + put 'put ''KXwwLEY9RitNYXRoLmltdWwobG4scW4pfDAsVD1UK01hdGguaW11bChRdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LEtuKXwwKStNYXRoLmltdWwoZ24scG4pfDAsRj1GK01hdGguaW11bChnbixLbil8MCxUPVQrTWF0aC5pbXVsKFVlLHNuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsVW4p''@;'; + put 'put ''fDApK01hdGguaW11bCh5dCxzbil8MCxGPUYrTWF0aC5pbXVsKHl0LFVuKXwwLFQ9VCtNYXRoLmltdWwoZnQsdG4pfDAsUz0oUz1TK01hdGguaW11bChmdCx6bil8MCkrTWF0aC5pbXVsKEh0LHRuKXwwLEY9RitNYXRoLmltdWwoSHQsem4pfDAsVD1UK01hdGguaW11bChhdCxCbil8MCxTPShT''@;'; + put 'put ''PVMrTWF0aC5pbXVsKGF0LGtyKXwwKStNYXRoLmltdWwoTHQsQm4pfDAsRj1GK01hdGguaW11bChMdCxrcil8MCxUPVQrTWF0aC5pbXVsKF90LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsY24pfDApK01hdGguaW11bCh0dCx1bil8MCxGPUYrTWF0aC5pbXVsKHR0LGNuKXwwLFQ9VCtNYXRo''@;'; + put 'put ''LmltdWwoaHQsR3QpfDAsUz0oUz1TK01hdGguaW11bChodCxrbil8MCkrTWF0aC5pbXVsKEJ0LEd0KXwwLEY9RitNYXRoLmltdWwoQnQsa24pfDA7dmFyIG4wPShQZSsoVD1UK01hdGguaW11bCh2dCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKHZ0LEluKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoQXQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKEF0LEluKXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sQW4pLFM9KFM9TWF0aC5pbXVsKGJuLHFuKSkrTWF0aC5pbXVsKGVyLEFuKXwwLEY9TWF0aC5pbXVsKGVyLHFu''@;'; + put 'put ''KSxUPVQrTWF0aC5pbXVsKHluLHBuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sS24pfDApK01hdGguaW11bChsbixwbil8MCxGPUYrTWF0aC5pbXVsKGxuLEtuKXwwLFQ9VCtNYXRoLmltdWwoUXQsc24pfDAsUz0oUz1TK01hdGguaW11bChRdCxVbil8MCkrTWF0aC5pbXVsKGduLHNuKXwwLEY9''@;'; + put 'put ''RitNYXRoLmltdWwoZ24sVW4pfDAsVD1UK01hdGguaW11bChVZSx0bil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHpuKXwwKStNYXRoLmltdWwoeXQsdG4pfDAsRj1GK01hdGguaW11bCh5dCx6bil8MCxUPVQrTWF0aC5pbXVsKGZ0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQsa3IpfDApK01h''@;'; + put 'put ''dGguaW11bChIdCxCbil8MCxGPUYrTWF0aC5pbXVsKEh0LGtyKXwwLFQ9VCtNYXRoLmltdWwoYXQsdW4pfDAsUz0oUz1TK01hdGguaW11bChhdCxjbil8MCkrTWF0aC5pbXVsKEx0LHVuKXwwLEY9RitNYXRoLmltdWwoTHQsY24pfDAsVD1UK01hdGguaW11bChfdCxHdCl8MCxTPShTPVMrTWF0''@;'; + put 'put ''aC5pbXVsKF90LGtuKXwwKStNYXRoLmltdWwodHQsR3QpfDAsRj1GK01hdGguaW11bCh0dCxrbil8MDt2YXIgZDA9KFBlKyhUPVQrTWF0aC5pbXVsKGh0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoaHQsSW4pfDApK01hdGguaW11bChCdCxlbil8MCkpPDwxMyl8MDtQZT0o''@;'; + put 'put ''KEY9RitNYXRoLmltdWwoQnQsSW4pfDApKyhTPj4+MTMpfDApKyhkMD4+PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChibixwbiksUz0oUz1NYXRoLmltdWwoYm4sS24pKStNYXRoLmltdWwoZXIscG4pfDAsRj1NYXRoLmltdWwoZXIsS24pLFQ9VCtNYXRoLmltdWwoeW4sc24pfDAs''@;'; + put 'put ''Uz0oUz1TK01hdGguaW11bCh5bixVbil8MCkrTWF0aC5pbXVsKGxuLHNuKXwwLEY9RitNYXRoLmltdWwobG4sVW4pfDAsVD1UK01hdGguaW11bChRdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LHpuKXwwKStNYXRoLmltdWwoZ24sdG4pfDAsRj1GK01hdGguaW11bChnbix6bil8MCxUPVQr''@;'; + put 'put ''TWF0aC5pbXVsKFVlLEJuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa3IpfDApK01hdGguaW11bCh5dCxCbil8MCxGPUYrTWF0aC5pbXVsKHl0LGtyKXwwLFQ9VCtNYXRoLmltdWwoZnQsdW4pfDAsUz0oUz1TK01hdGguaW11bChmdCxjbil8MCkrTWF0aC5pbXVsKEh0LHVuKXwwLEY9RitNYXRo''@;'; + put 'put ''LmltdWwoSHQsY24pfDAsVD1UK01hdGguaW11bChhdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGF0LGtuKXwwKStNYXRoLmltdWwoTHQsR3QpfDAsRj1GK01hdGguaW11bChMdCxrbil8MDt2YXIgbTA9KFBlKyhUPVQrTWF0aC5pbXVsKF90LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoX3QsSW4pfDApK01hdGguaW11bCh0dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwodHQsSW4pfDApKyhTPj4+MTMpfDApKyhtMD4+PjI2KXwwLG0wJj02NzEwODg2MyxUPU1hdGguaW11bChibixzbiksUz0oUz1NYXRoLmltdWwoYm4sVW4pKStNYXRoLmltdWwoZXIs''@;'; + put 'put ''c24pfDAsRj1NYXRoLmltdWwoZXIsVW4pLFQ9VCtNYXRoLmltdWwoeW4sdG4pfDAsUz0oUz1TK01hdGguaW11bCh5bix6bil8MCkrTWF0aC5pbXVsKGxuLHRuKXwwLEY9RitNYXRoLmltdWwobG4sem4pfDAsVD1UK01hdGguaW11bChRdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LGtyKXww''@;'; + put 'put ''KStNYXRoLmltdWwoZ24sQm4pfDAsRj1GK01hdGguaW11bChnbixrcil8MCxUPVQrTWF0aC5pbXVsKFVlLHVuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsY24pfDApK01hdGguaW11bCh5dCx1bil8MCxGPUYrTWF0aC5pbXVsKHl0LGNuKXwwLFQ9VCtNYXRoLmltdWwoZnQsR3QpfDAsUz0oUz1T''@;'; + put 'put ''K01hdGguaW11bChmdCxrbil8MCkrTWF0aC5pbXVsKEh0LEd0KXwwLEY9RitNYXRoLmltdWwoSHQsa24pfDA7dmFyIEcwPShQZSsoVD1UK01hdGguaW11bChhdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGF0LEluKXwwKStNYXRoLmltdWwoTHQsZW4pfDApKTw8MTMpfDA7''@;'; + put 'put ''UGU9KChGPUYrTWF0aC5pbXVsKEx0LEluKXwwKSsoUz4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sdG4pLFM9KFM9TWF0aC5pbXVsKGJuLHpuKSkrTWF0aC5pbXVsKGVyLHRuKXwwLEY9TWF0aC5pbXVsKGVyLHpuKSxUPVQrTWF0aC5pbXVsKHluLEJu''@;'; + put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwoeW4sa3IpfDApK01hdGguaW11bChsbixCbil8MCxGPUYrTWF0aC5pbXVsKGxuLGtyKXwwLFQ9VCtNYXRoLmltdWwoUXQsdW4pfDAsUz0oUz1TK01hdGguaW11bChRdCxjbil8MCkrTWF0aC5pbXVsKGduLHVuKXwwLEY9RitNYXRoLmltdWwoZ24sY24pfDAs''@;'; + put 'put ''VD1UK01hdGguaW11bChVZSxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLGtuKXwwKStNYXRoLmltdWwoeXQsR3QpfDAsRj1GK01hdGguaW11bCh5dCxrbil8MDt2YXIgRGk9KFBlKyhUPVQrTWF0aC5pbXVsKGZ0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoZnQsSW4pfDAp''@;'; + put 'put ''K01hdGguaW11bChIdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoSHQsSW4pfDApKyhTPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2MyxUPU1hdGguaW11bChibixCbiksUz0oUz1NYXRoLmltdWwoYm4sa3IpKStNYXRoLmltdWwoZXIsQm4pfDAsRj1NYXRoLmlt''@;'; + put 'put ''dWwoZXIsa3IpLFQ9VCtNYXRoLmltdWwoeW4sdW4pfDAsUz0oUz1TK01hdGguaW11bCh5bixjbil8MCkrTWF0aC5pbXVsKGxuLHVuKXwwLEY9RitNYXRoLmltdWwobG4sY24pfDAsVD1UK01hdGguaW11bChRdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKFF0LGtuKXwwKStNYXRoLmltdWwoZ24s''@;'; + put 'put ''R3QpfDAsRj1GK01hdGguaW11bChnbixrbil8MDt2YXIgVzA9KFBlKyhUPVQrTWF0aC5pbXVsKFVlLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoVWUsSW4pfDApK01hdGguaW11bCh5dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoeXQsSW4pfDApKyhTPj4+''@;'; + put 'put ''MTMpfDApKyhXMD4+PjI2KXwwLFcwJj02NzEwODg2MyxUPU1hdGguaW11bChibix1biksUz0oUz1NYXRoLmltdWwoYm4sY24pKStNYXRoLmltdWwoZXIsdW4pfDAsRj1NYXRoLmltdWwoZXIsY24pLFQ9VCtNYXRoLmltdWwoeW4sR3QpfDAsUz0oUz1TK01hdGguaW11bCh5bixrbil8MCkrTWF0''@;'; + put 'put ''aC5pbXVsKGxuLEd0KXwwLEY9RitNYXRoLmltdWwobG4sa24pfDA7dmFyIEVvPShQZSsoVD1UK01hdGguaW11bChRdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKFF0LEluKXwwKStNYXRoLmltdWwoZ24sZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGduLElu''@;'; + put 'put ''KXwwKSsoUz4+PjEzKXwwKSsoRW8+Pj4yNil8MCxFbyY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sR3QpLFM9KFM9TWF0aC5pbXVsKGJuLGtuKSkrTWF0aC5pbXVsKGVyLEd0KXwwLEY9TWF0aC5pbXVsKGVyLGtuKTt2YXIgcW89KFBlKyhUPVQrTWF0aC5pbXVsKHluLGVuKXwwKXwwKSsoKDgx''@;'; + put 'put ''OTEmKFM9KFM9UytNYXRoLmltdWwoeW4sSW4pfDApK01hdGguaW11bChsbixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwobG4sSW4pfDApKyhTPj4+MTMpfDApKyhxbz4+PjI2KXwwLHFvJj02NzEwODg2Mzt2YXIgY2E9KFBlKyhUPU1hdGguaW11bChibixlbikpfDApKygoODE5''@;'; + put 'put ''MSYoUz0oUz1NYXRoLmltdWwoYm4sSW4pKStNYXRoLmltdWwoZXIsZW4pfDApKTw8MTMpfDA7cmV0dXJuIFBlPSgoRj1NYXRoLmltdWwoZXIsSW4pKSsoUz4+PjEzKXwwKSsoY2E+Pj4yNil8MCxjYSY9NjcxMDg4NjMsRGVbMF09Sm4sRGVbMV09b3IsRGVbMl09Z3IsRGVbM109S3IsRGVbNF09''@;'; + put 'put ''VnIsRGVbNV09aWksRGVbNl09UnIsRGVbN109bGksRGVbOF09TWksRGVbOV09bzAsRGVbMTBdPW4wLERlWzExXT1kMCxEZVsxMl09bTAsRGVbMTNdPUcwLERlWzE0XT1EaSxEZVsxNV09VzAsRGVbMTZdPUVvLERlWzE3XT1xbyxEZVsxOF09Y2EsMCE9PVBlJiYoRGVbMTldPVBlLFYubGVuZ3Ro''@;'; + put 'put ''KyspLFZ9O2Z1bmN0aW9uIGtlKHgsUCxWKXtyZXR1cm4obmV3IFNlKS5tdWxwKHgsUCxWKX1mdW5jdGlvbiBTZSh4LFApe3RoaXMueD14LHRoaXMueT1QfU1hdGguaW11bHx8KEFlPXZlKSxOLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbih4LFApe3ZhciBUPXRoaXMubGVuZ3RoK3gubGVuZ3Ro''@;'; + put 'put ''O3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PXgubGVuZ3RoP0FlKHRoaXMseCxQKTpUPDYzP3ZlKHRoaXMseCxQKTpUPDEwMjQ/ZnVuY3Rpb24oUyxGLHllKXt5ZS5uZWdhdGl2ZT1GLm5lZ2F0aXZlXlMubmVnYXRpdmUseWUubGVuZ3RoPVMubGVuZ3RoK0YubGVuZ3RoO2Zvcih2YXIg''@;'; + put 'put ''Q2U9MCxEZT0wLFBlPTA7UGU8eWUubGVuZ3RoLTE7UGUrKyl7dmFyIFFlPURlO0RlPTA7Zm9yKHZhciAkZT02NzEwODg2MyZDZSxndD1NYXRoLm1pbihQZSxGLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLVMubGVuZ3RoKzEpO3d0PD1ndDt3dCsrKXt2YXIgQXQ9KDB8Uy53b3Jkc1tQZS13''@;'; + put 'put ''dF0pKigwfEYud29yZHNbd3RdKSxtdD02NzEwODg2MyZBdDskZT02NzEwODg2MyYobXQ9bXQrJGV8MCksRGUrPShRZT0oUWU9UWUrKEF0LzY3MTA4ODY0fDApfDApKyhtdD4+PjI2KXwwKT4+PjI2LFFlJj02NzEwODg2M315ZS53b3Jkc1tQZV09JGUsQ2U9UWUsUWU9RGV9cmV0dXJuIDAhPT1D''@;'; + put 'put ''ZT95ZS53b3Jkc1tQZV09Q2U6eWUubGVuZ3RoLS0seWUuc3RyaXAoKX0odGhpcyx4LFApOmtlKHRoaXMseCxQKX0sU2UucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPU4ucHJvdG90eXBlLl9jb3VudEJpdHMoeCktMSxUPTA7VDx4O1QrKylQ''@;'; + put 'put ''W1RdPXRoaXMucmV2QmluKFQsVix4KTtyZXR1cm4gUH0sU2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbih4LFAsVil7aWYoMD09PXh8fHg9PT1WLTEpcmV0dXJuIHg7Zm9yKHZhciBUPTAsUz0wO1M8UDtTKyspVHw9KDEmeCk8PFAtUy0xLHg+Pj0xO3JldHVybiBUfSxTZS5wcm90b3R5cGUu''@;'; + put 'put ''cGVybXV0ZT1mdW5jdGlvbih4LFAsVixULFMsRil7Zm9yKHZhciB5ZT0wO3llPEY7eWUrKylUW3llXT1QW3hbeWVdXSxTW3llXT1WW3hbeWVdXX0sU2UucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbih4LFAsVixULFMsRil7dGhpcy5wZXJtdXRlKEYseCxQLFYsVCxTKTtmb3IodmFyIHll''@;'; + put 'put ''PTE7eWU8Uzt5ZTw8PTEpZm9yKHZhciBDZT15ZTw8MSxEZT1NYXRoLmNvcygyKk1hdGguUEkvQ2UpLFBlPU1hdGguc2luKDIqTWF0aC5QSS9DZSksUWU9MDtRZTxTO1FlKz1DZSlmb3IodmFyICRlPURlLGd0PVBlLHd0PTA7d3Q8eWU7d3QrKyl7dmFyIHZ0PVZbUWUrd3RdLEF0PVRbUWUrd3Rd''@;'; + put 'put ''LG10PVZbUWUrd3QreWVdLGh0PVRbUWUrd3QreWVdLEJ0PSRlKm10LWd0Kmh0O2h0PSRlKmh0K2d0Km10LFZbUWUrd3RdPXZ0KyhtdD1CdCksVFtRZSt3dF09QXQraHQsVltRZSt3dCt5ZV09dnQtbXQsVFtRZSt3dCt5ZV09QXQtaHQsd3QhPT1DZSYmKEJ0PURlKiRlLVBlKmd0LGd0PURlKmd0''@;'; + put 'put ''K1BlKiRlLCRlPUJ0KX19LFNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbih4LFApe3ZhciBWPTF8TWF0aC5tYXgoUCx4KSxUPTEmVixTPTA7Zm9yKFY9Vi8yfDA7VjtWPj4+PTEpUysrO3JldHVybiAxPDxTKzErVH0sU2UucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbih4LFAs''@;'; + put 'put ''Vil7aWYoIShWPD0xKSlmb3IodmFyIFQ9MDtUPFYvMjtUKyspe3ZhciBTPXhbVF07eFtUXT14W1YtVC0xXSx4W1YtVC0xXT1TLFM9UFtUXSxQW1RdPS1QW1YtVC0xXSxQW1YtVC0xXT0tU319LFNlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oeCxQKXtmb3IodmFyIFY9MCxUPTA7''@;'; + put 'put ''VDxQLzI7VCsrKXt2YXIgUz04MTkyKk1hdGgucm91bmQoeFsyKlQrMV0vUCkrTWF0aC5yb3VuZCh4WzIqVF0vUCkrVjt4W1RdPTY3MTA4ODYzJlMsVj1TPDY3MTA4ODY0PzA6Uy82NzEwODg2NHwwfXJldHVybiB4fSxTZS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbih4LFAsVixUKXtm''@;'; + put 'put ''b3IodmFyIFM9MCxGPTA7RjxQO0YrKylWWzIqRl09ODE5MSYoUys9MHx4W0ZdKSxWWzIqRisxXT04MTkxJihTPj4+PTEzKSxTPj4+PTEzO2ZvcihGPTIqUDtGPFQ7KytGKVZbRl09MDtZKDA9PT1TKSxZKDA9PSgtODE5MiZTKSl9LFNlLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKHgpe2Zvcih2''@;'; + put 'put ''YXIgUD1uZXcgQXJyYXkoeCksVj0wO1Y8eDtWKyspUFtWXT0wO3JldHVybiBQfSxTZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbih4LFAsVil7dmFyIFQ9Mip0aGlzLmd1ZXNzTGVuMTNiKHgubGVuZ3RoLFAubGVuZ3RoKSxTPXRoaXMubWFrZVJCVChUKSxGPXRoaXMuc3R1YihUKSx5ZT1uZXcg''@;'; + put 'put ''QXJyYXkoVCksQ2U9bmV3IEFycmF5KFQpLERlPW5ldyBBcnJheShUKSxQZT1uZXcgQXJyYXkoVCksUWU9bmV3IEFycmF5KFQpLCRlPW5ldyBBcnJheShUKSxndD1WLndvcmRzO2d0Lmxlbmd0aD1ULHRoaXMuY29udmVydDEzYih4LndvcmRzLHgubGVuZ3RoLHllLFQpLHRoaXMuY29udmVydDEz''@;'; + put 'put ''YihQLndvcmRzLFAubGVuZ3RoLFBlLFQpLHRoaXMudHJhbnNmb3JtKHllLEYsQ2UsRGUsVCxTKSx0aGlzLnRyYW5zZm9ybShQZSxGLFFlLCRlLFQsUyk7Zm9yKHZhciB3dD0wO3d0PFQ7d3QrKyl7dmFyIHZ0PUNlW3d0XSpRZVt3dF0tRGVbd3RdKiRlW3d0XTtEZVt3dF09Q2Vbd3RdKiRlW3d0''@;'; + put 'put ''XStEZVt3dF0qUWVbd3RdLENlW3d0XT12dH1yZXR1cm4gdGhpcy5jb25qdWdhdGUoQ2UsRGUsVCksdGhpcy50cmFuc2Zvcm0oQ2UsRGUsZ3QsRixULFMpLHRoaXMuY29uanVnYXRlKGd0LEYsVCksdGhpcy5ub3JtYWxpemUxM2IoZ3QsVCksVi5uZWdhdGl2ZT14Lm5lZ2F0aXZlXlAubmVnYXRp''@;'; + put 'put ''dmUsVi5sZW5ndGg9eC5sZW5ndGgrUC5sZW5ndGgsVi5zdHJpcCgpfSxOLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCl7dmFyIFA9bmV3IE4obnVsbCk7cmV0dXJuIFAud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3gubGVuZ3RoKSx0aGlzLm11bFRvKHgsUCl9LE4ucHJvdG90eXBlLm11''@;'; + put 'put ''bGY9ZnVuY3Rpb24oeCl7dmFyIFA9bmV3IE4obnVsbCk7cmV0dXJuIFAud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3gubGVuZ3RoKSxrZSh0aGlzLHgsUCl9LE4ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyh4LHRoaXMpfSxOLnByb3Rv''@;'; + put 'put ''dHlwZS5pbXVsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCksWSh4PDY3MTA4ODY0KTtmb3IodmFyIFA9MCxWPTA7Vjx0aGlzLmxlbmd0aDtWKyspe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKngsUz0oNjcxMDg4NjMmVCkrKDY3MTA4ODYzJlApO1A+Pj0yNixQKz1ULzY3MTA4''@;'; + put 'put ''ODY0fDAsUCs9Uz4+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmU31yZXR1cm4gMCE9PVAmJih0aGlzLndvcmRzW1ZdPVAsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUubXVsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltdWxuKHgpfSxOLnByb3RvdHlwZS5z''@;'; + put 'put ''cXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LE4ucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LE4ucHJvdG90eXBlLnBvdz1mdW5jdGlvbih4KXt2YXIgUD1mdW5jdGlvbihGKXtmb3IodmFyIHllPW5ldyBBcnJheShG''@;'; + put 'put ''LmJpdExlbmd0aCgpKSxDZT0wO0NlPHllLmxlbmd0aDtDZSsrKXt2YXIgUGU9Q2UlMjY7eWVbQ2VdPShGLndvcmRzW0NlLzI2fDBdJjE8PFBlKT4+PlBlfXJldHVybiB5ZX0oeCk7aWYoMD09PVAubGVuZ3RoKXJldHVybiBuZXcgTigxKTtmb3IodmFyIFY9dGhpcyxUPTA7VDxQLmxlbmd0aCYm''@;'; + put 'put ''MD09PVBbVF07VCsrLFY9Vi5zcXIoKSk7aWYoKytUPFAubGVuZ3RoKWZvcih2YXIgUz1WLnNxcigpO1Q8UC5sZW5ndGg7VCsrLFM9Uy5zcXIoKSkwIT09UFtUXSYmKFY9Vi5tdWwoUykpO3JldHVybiBWfSxOLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9m''@;'; + put 'put ''IHgmJng+PTApO3ZhciBQLFY9eCUyNixUPSh4LVYpLzI2LFM9NjcxMDg4NjM+Pj4yNi1WPDwyNi1WO2lmKDAhPT1WKXt2YXIgRj0wO2ZvcihQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciB5ZT10aGlzLndvcmRzW1BdJlM7dGhpcy53b3Jkc1tQXT0oMHx0aGlzLndvcmRzW1BdKS15ZTw8VnxG''@;'; + put 'put ''LEY9eWU+Pj4yNi1WfUYmJih0aGlzLndvcmRzW1BdPUYsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PVQpe2ZvcihQPXRoaXMubGVuZ3RoLTE7UD49MDtQLS0pdGhpcy53b3Jkc1tQK1RdPXRoaXMud29yZHNbUF07Zm9yKFA9MDtQPFQ7UCsrKXRoaXMud29yZHNbUF09MDt0aGlzLmxlbmd0aCs9VH1y''@;'; + put 'put ''ZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oeCl9LE4ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbih4LFAsVil7dmFyIFQ7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApLFQ9''@;'; + put 'put ''UD8oUC1QJTI2KS8yNjowO3ZhciBTPXglMjYsRj1NYXRoLm1pbigoeC1TKS8yNix0aGlzLmxlbmd0aCkseWU9NjcxMDg4NjNeNjcxMDg4NjM+Pj5TPDxTLENlPVY7aWYoVC09RixUPU1hdGgubWF4KDAsVCksQ2Upe2Zvcih2YXIgRGU9MDtEZTxGO0RlKyspQ2Uud29yZHNbRGVdPXRoaXMud29y''@;'; + put 'put ''ZHNbRGVdO0NlLmxlbmd0aD1GfWlmKDAhPT1GKWlmKHRoaXMubGVuZ3RoPkYpZm9yKHRoaXMubGVuZ3RoLT1GLERlPTA7RGU8dGhpcy5sZW5ndGg7RGUrKyl0aGlzLndvcmRzW0RlXT10aGlzLndvcmRzW0RlK0ZdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIFBlPTA7''@;'; + put 'put ''Zm9yKERlPXRoaXMubGVuZ3RoLTE7RGU+PTAmJigwIT09UGV8fERlPj1UKTtEZS0tKXt2YXIgUWU9MHx0aGlzLndvcmRzW0RlXTt0aGlzLndvcmRzW0RlXT1QZTw8MjYtU3xRZT4+PlMsUGU9UWUmeWV9cmV0dXJuIENlJiYwIT09UGUmJihDZS53b3Jkc1tDZS5sZW5ndGgrK109UGUpLDA9PT10''@;'; + put 'put ''aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKHgsUCxWKXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oeCxQLFYpfSxOLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9u''@;'; + put 'put ''KHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oeCl9LE4ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKHgpfSxOLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oeCl9LE4ucHJvdG90eXBl''@;'; + put 'put ''LnVzaHJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKHgpfSxOLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9eCUyNixWPSh4LVApLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PVZ8fCEodGhpcy53b3Jk''@;'; + put 'put ''c1tWXSYxPDxQKSl9LE4ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9eCUyNixWPSh4LVApLzI2O3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0''@;'; + put 'put ''aGlzLmxlbmd0aDw9Vj90aGlzOigwIT09UCYmVisrLHRoaXMubGVuZ3RoPU1hdGgubWluKFYsdGhpcy5sZW5ndGgpLDAhPT1QJiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5QPDxQKSx0aGlzLnN0cmlwKCkpfSxOLnByb3RvdHlwZS5tYXNrbj1mdW5j''@;'; + put 'put ''dGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbih4KX0sTi5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpLHg8MD90aGlzLmlzdWJuKC14KTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgm''@;'; + put 'put ''JigwfHRoaXMud29yZHNbMF0pPHg/KHRoaXMud29yZHNbMF09eC0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbih4KX0sTi5wcm90b3R5cGUuX2lhZGRu''@;'; + put 'put ''PWZ1bmN0aW9uKHgpe3RoaXMud29yZHNbMF0rPXg7Zm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tQXT49NjcxMDg4NjQ7UCsrKXRoaXMud29yZHNbUF0tPTY3MTA4ODY0LFA9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbUCsxXT0xOnRoaXMud29yZHNbUCsxXSsrO3Jl''@;'; + put 'put ''dHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxQKzEpLHRoaXN9LE4ucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKHgpe2lmKFkoIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpLHg8MClyZXR1cm4gdGhpcy5pYWRkbigteCk7aWYoMCE9PXRoaXMubmVnYXRpdmUp''@;'; + put 'put ''cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPXgsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3Io''@;'; + put 'put ''dmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPDA7UCsrKXRoaXMud29yZHNbUF0rPTY3MTA4ODY0LHRoaXMud29yZHNbUCsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oeCl9''@;'; + put 'put ''LE4ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3Vibih4KX0sTi5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sTi5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5p''@;'; + put 'put ''YWJzKCl9LE4ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbih4LFAsVil7dmFyIFQsUzt0aGlzLl9leHBhbmQoeC5sZW5ndGgrVik7dmFyIHllPTA7Zm9yKFQ9MDtUPHgubGVuZ3RoO1QrKyl7Uz0oMHx0aGlzLndvcmRzW1QrVl0pK3llO3ZhciBDZT0oMHx4LndvcmRzW1RdKSpQO3ll''@;'; + put 'put ''PSgoUy09NjcxMDg4NjMmQ2UpPj4yNiktKENlLzY3MTA4ODY0fDApLHRoaXMud29yZHNbVCtWXT02NzEwODg2MyZTfWZvcig7VDx0aGlzLmxlbmd0aC1WO1QrKyl5ZT0oUz0oMHx0aGlzLndvcmRzW1QrVl0pK3llKT4+MjYsdGhpcy53b3Jkc1tUK1ZdPTY3MTA4ODYzJlM7aWYoMD09PXllKXJl''@;'; + put 'put ''dHVybiB0aGlzLnN0cmlwKCk7Zm9yKFkoLTE9PT15ZSkseWU9MCxUPTA7VDx0aGlzLmxlbmd0aDtUKyspeWU9KFM9LSgwfHRoaXMud29yZHNbVF0pK3llKT4+MjYsdGhpcy53b3Jkc1tUXT02NzEwODg2MyZTO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlw''@;'; + put 'put ''ZS5fd29yZERpdj1mdW5jdGlvbih4LFApe3ZhciBWLFQ9dGhpcy5jbG9uZSgpLFM9eCxGPTB8Uy53b3Jkc1tTLmxlbmd0aC0xXTswIT0oVj0yNi10aGlzLl9jb3VudEJpdHMoRikpJiYoUz1TLnVzaGxuKFYpLFQuaXVzaGxuKFYpLEY9MHxTLndvcmRzW1MubGVuZ3RoLTFdKTt2YXIgeWUsQ2U9''@;'; + put 'put ''VC5sZW5ndGgtUy5sZW5ndGg7aWYoIm1vZCIhPT1QKXsoeWU9bmV3IE4obnVsbCkpLmxlbmd0aD1DZSsxLHllLndvcmRzPW5ldyBBcnJheSh5ZS5sZW5ndGgpO2Zvcih2YXIgRGU9MDtEZTx5ZS5sZW5ndGg7RGUrKyl5ZS53b3Jkc1tEZV09MH12YXIgUGU9VC5jbG9uZSgpLl9pc2hsbnN1Ym11''@;'; + put 'put ''bChTLDEsQ2UpOzA9PT1QZS5uZWdhdGl2ZSYmKFQ9UGUseWUmJih5ZS53b3Jkc1tDZV09MSkpO2Zvcih2YXIgUWU9Q2UtMTtRZT49MDtRZS0tKXt2YXIgJGU9NjcxMDg4NjQqKDB8VC53b3Jkc1tTLmxlbmd0aCtRZV0pKygwfFQud29yZHNbUy5sZW5ndGgrUWUtMV0pO2ZvcigkZT1NYXRoLm1p''@;'; + put 'put ''bigkZS9GfDAsNjcxMDg4NjMpLFQuX2lzaGxuc3VibXVsKFMsJGUsUWUpOzAhPT1ULm5lZ2F0aXZlOykkZS0tLFQubmVnYXRpdmU9MCxULl9pc2hsbnN1Ym11bChTLDEsUWUpLFQuaXNaZXJvKCl8fChULm5lZ2F0aXZlXj0xKTt5ZSYmKHllLndvcmRzW1FlXT0kZSl9cmV0dXJuIHllJiZ5ZS5z''@;'; + put 'put ''dHJpcCgpLFQuc3RyaXAoKSwiZGl2IiE9PVAmJjAhPT1WJiZULml1c2hybihWKSx7ZGl2OnllfHxudWxsLG1vZDpUfX0sTi5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKHgsUCxWKXtyZXR1cm4gWSgheC5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBOKDApLG1vZDpuZXcgTigw''@;'; + put 'put ''KX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlPyhGPXRoaXMubmVnKCkuZGl2bW9kKHgsUCksIm1vZCIhPT1QJiYoVD1GLmRpdi5uZWcoKSksImRpdiIhPT1QJiYoUz1GLm1vZC5uZWcoKSxWJiYwIT09Uy5uZWdhdGl2ZSYmUy5pYWRkKHgpKSx7ZGl2OlQsbW9kOlN9KTowPT09''@;'; + put 'put ''dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmU/KEY9dGhpcy5kaXZtb2QoeC5uZWcoKSxQKSwibW9kIiE9PVAmJihUPUYuZGl2Lm5lZygpKSx7ZGl2OlQsbW9kOkYubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmeC5uZWdhdGl2ZSk/KEY9dGhpcy5uZWcoKS5kaXZtb2QoeC5uZWcoKSxQKSwi''@;'; + put 'put ''ZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlzdWIoeCkpLHtkaXY6Ri5kaXYsbW9kOlN9KTp4Lmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoeCk8MD97ZGl2Om5ldyBOKDApLG1vZDp0aGlzfToxPT09eC5sZW5ndGg/ImRpdiI9PT1QP3tkaXY6dGhp''@;'; + put 'put ''cy5kaXZuKHgud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PVA/e2RpdjpudWxsLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bih4LndvcmRzWzBdKSxtb2Q6bmV3IE4odGhpcy5tb2RuKHgud29yZHNbMF0pKX06dGhpcy5fd29yZERpdih4LFApO3Zh''@;'; + put 'put ''ciBULFMsRn0sTi5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJkaXYiLCExKS5kaXZ9LE4ucHJvdG90eXBlLm1vZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kaXZtb2QoeCwibW9kIiwhMSkubW9kfSxOLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKHgp''@;'; + put 'put ''e3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCEwKS5tb2R9LE4ucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKHgpe3ZhciBQPXRoaXMuZGl2bW9kKHgpO2lmKFAubW9kLmlzWmVybygpKXJldHVybiBQLmRpdjt2YXIgVj0wIT09UC5kaXYubmVnYXRpdmU/UC5tb2QuaXN1Yih4KTpQLm1v''@;'; + put 'put ''ZCxUPXgudXNocm4oMSksUz14LmFuZGxuKDEpLEY9Vi5jbXAoVCk7cmV0dXJuIEY8MHx8MT09PVMmJjA9PT1GP1AuZGl2OjAhPT1QLmRpdi5uZWdhdGl2ZT9QLmRpdi5pc3VibigxKTpQLmRpdi5pYWRkbigxKX0sTi5wcm90b3R5cGUubW9kbj1mdW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtm''@;'; + put 'put ''b3IodmFyIFA9NjcxMDg4NjQleCxWPTAsVD10aGlzLmxlbmd0aC0xO1Q+PTA7VC0tKVY9KFAqVisoMHx0aGlzLndvcmRzW1RdKSkleDtyZXR1cm4gVn0sTi5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oeCl7WSh4PD02NzEwODg2Myk7Zm9yKHZhciBQPTAsVj10aGlzLmxlbmd0aC0xO1Y+PTA7''@;'; + put 'put ''Vi0tKXt2YXIgVD0oMHx0aGlzLndvcmRzW1ZdKSs2NzEwODg2NCpQO3RoaXMud29yZHNbVl09VC94fDAsUD1UJXh9cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKHgpfSxOLnByb3RvdHlwZS5lZ2NkPWZ1''@;'; + put 'put ''bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUpLFkoIXguaXNaZXJvKCkpO3ZhciBQPXRoaXMsVj14LmNsb25lKCk7UD0wIT09UC5uZWdhdGl2ZT9QLnVtb2QoeCk6UC5jbG9uZSgpO2Zvcih2YXIgVD1uZXcgTigxKSxTPW5ldyBOKDApLEY9bmV3IE4oMCkseWU9bmV3IE4oMSksQ2U9MDtQLmlz''@;'; + put 'put ''RXZlbigpJiZWLmlzRXZlbigpOylQLml1c2hybigxKSxWLml1c2hybigxKSwrK0NlO2Zvcih2YXIgRGU9Vi5jbG9uZSgpLFBlPVAuY2xvbmUoKTshUC5pc1plcm8oKTspe2Zvcih2YXIgUWU9MCwkZT0xOzA9PShQLndvcmRzWzBdJiRlKSYmUWU8MjY7KytRZSwkZTw8PTEpO2lmKFFlPjApZm9y''@;'; + put 'put ''KFAuaXVzaHJuKFFlKTtRZS0tID4wOykoVC5pc09kZCgpfHxTLmlzT2RkKCkpJiYoVC5pYWRkKERlKSxTLmlzdWIoUGUpKSxULml1c2hybigxKSxTLml1c2hybigxKTtmb3IodmFyIGd0PTAsd3Q9MTswPT0oVi53b3Jkc1swXSZ3dCkmJmd0PDI2OysrZ3Qsd3Q8PD0xKTtpZihndD4wKWZvcihW''@;'; + put 'put ''Lml1c2hybihndCk7Z3QtLSA+MDspKEYuaXNPZGQoKXx8eWUuaXNPZGQoKSkmJihGLmlhZGQoRGUpLHllLmlzdWIoUGUpKSxGLml1c2hybigxKSx5ZS5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxULmlzdWIoRiksUy5pc3ViKHllKSk6KFYuaXN1YihQKSxGLmlzdWIoVCkseWUu''@;'; + put 'put ''aXN1YihTKSl9cmV0dXJue2E6RixiOnllLGdjZDpWLml1c2hsbihDZSl9fSxOLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAhPT1QLm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25l''@;'; + put 'put ''KCk7Zm9yKHZhciBULFM9bmV3IE4oMSksRj1uZXcgTigwKSx5ZT1WLmNsb25lKCk7UC5jbXBuKDEpPjAmJlYuY21wbigxKT4wOyl7Zm9yKHZhciBDZT0wLERlPTE7MD09KFAud29yZHNbMF0mRGUpJiZDZTwyNjsrK0NlLERlPDw9MSk7aWYoQ2U+MClmb3IoUC5pdXNocm4oQ2UpO0NlLS0gPjA7''@;'; + put 'put ''KVMuaXNPZGQoKSYmUy5pYWRkKHllKSxTLml1c2hybigxKTtmb3IodmFyIFBlPTAsUWU9MTswPT0oVi53b3Jkc1swXSZRZSkmJlBlPDI2OysrUGUsUWU8PD0xKTtpZihQZT4wKWZvcihWLml1c2hybihQZSk7UGUtLSA+MDspRi5pc09kZCgpJiZGLmlhZGQoeWUpLEYuaXVzaHJuKDEpO1AuY21w''@;'; + put 'put ''KFYpPj0wPyhQLmlzdWIoViksUy5pc3ViKEYpKTooVi5pc3ViKFApLEYuaXN1YihTKSl9cmV0dXJuKFQ9MD09PVAuY21wbigxKT9TOkYpLmNtcG4oMCk8MCYmVC5pYWRkKHgpLFR9LE4ucHJvdG90eXBlLmdjZD1mdW5jdGlvbih4KXtpZih0aGlzLmlzWmVybygpKXJldHVybiB4LmFicygpO2lm''@;'; + put 'put ''KHguaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIFA9dGhpcy5jbG9uZSgpLFY9eC5jbG9uZSgpO1AubmVnYXRpdmU9MCxWLm5lZ2F0aXZlPTA7Zm9yKHZhciBUPTA7UC5pc0V2ZW4oKSYmVi5pc0V2ZW4oKTtUKyspUC5pdXNocm4oMSksVi5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO1Au''@;'; + put 'put ''aXNFdmVuKCk7KVAuaXVzaHJuKDEpO2Zvcig7Vi5pc0V2ZW4oKTspVi5pdXNocm4oMSk7dmFyIFM9UC5jbXAoVik7aWYoUzwwKXt2YXIgRj1QO1A9VixWPUZ9ZWxzZSBpZigwPT09U3x8MD09PVYuY21wbigxKSlicmVhaztQLmlzdWIoVil9cmV0dXJuIFYuaXVzaGxuKFQpfSxOLnByb3RvdHlw''@;'; + put 'put ''ZS5pbnZtPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmVnY2QoeCkuYS51bW9kKHgpfSxOLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0p''@;'; + put 'put ''fSxOLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy53b3Jkc1swXSZ4fSxOLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCk7dmFyIFA9eCUyNixWPSh4LVApLzI2LFQ9MTw8UDtpZih0aGlzLmxlbmd0aDw9VilyZXR1cm4gdGhp''@;'; + put 'put ''cy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXXw9VCx0aGlzO2Zvcih2YXIgUz1ULEY9VjswIT09UyYmRjx0aGlzLmxlbmd0aDtGKyspe3ZhciB5ZT0wfHRoaXMud29yZHNbRl07Uz0oeWUrPVMpPj4+MjYsdGhpcy53b3Jkc1tGXT15ZSY9NjcxMDg4NjN9cmV0dXJuIDAhPT1TJiYodGhpcy53''@;'; + put 'put ''b3Jkc1tGXT1TLHRoaXMubGVuZ3RoKyspLHRoaXN9LE4ucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxOLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKHgpe3ZhciBQLFY9eDwwO2lmKDAhPT10aGlzLm5lZ2F0aXZl''@;'; + put 'put ''JiYhVilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmVilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSlQPTE7ZWxzZXtWJiYoeD0teCksWSh4PD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgVD0wfHRoaXMud29yZHNbMF07UD1UPT09eD8wOlQ8''@;'; + put 'put ''eD8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90eXBlLmNtcD1mdW5jdGlvbih4KXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlKXJldHVybiAxO3ZhciBQ''@;'; + put 'put ''PXRoaXMudWNtcCh4KTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtUDpQfSxOLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKHgpe2lmKHRoaXMubGVuZ3RoPngubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPHgubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgUD0wLFY9dGhpcy5sZW5n''@;'; + put 'put ''dGgtMTtWPj0wO1YtLSl7dmFyIFQ9MHx0aGlzLndvcmRzW1ZdLFM9MHx4LndvcmRzW1ZdO2lmKFQhPT1TKXtUPFM/UD0tMTpUPlMmJihQPTEpO2JyZWFrfX1yZXR1cm4gUH0sTi5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKHgpe3JldHVybiAxPT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5n''@;'; + put 'put ''dD1mdW5jdGlvbih4KXtyZXR1cm4gMT09PXRoaXMuY21wKHgpfSxOLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk+PTB9LE4ucHJvdG90eXBlLmd0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAoeCk+PTB9LE4ucHJvdG90eXBlLmx0bj1mdW5jdGlv''@;'; + put 'put ''bih4KXtyZXR1cm4tMT09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oeCl7cmV0dXJuLTE9PT10aGlzLmNtcCh4KX0sTi5wcm90b3R5cGUubHRlbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXBuKHgpPD0wfSxOLnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oeCl7cmV0''@;'; + put 'put ''dXJuIHRoaXMuY21wKHgpPD0wfSxOLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHgpe3JldHVybiAwPT09dGhpcy5jbXAoeCl9LE4ucmVkPWZ1bmN0aW9uKHgpe3JldHVybiBuZXcgbmUoeCl9LE4ucHJv''@;'; + put 'put ''dG90eXBlLnRvUmVkPWZ1bmN0aW9uKHgpe3JldHVybiBZKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLFkoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikseC5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVk''@;'; + put 'put ''KHgpfSxOLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sTi5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0''@;'; + put 'put ''aW9uKHgpe3JldHVybiB0aGlzLnJlZD14LHRoaXN9LE4ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKHgpe3JldHVybiBZKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKHgpfSxOLnByb3RvdHlwZS5yZWRBZGQ9ZnVu''@;'; + put 'put ''Y3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVk''@;'; + put 'put ''IG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJU3ViPWZ1''@;'; + put 'put ''bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJl''@;'; + put 'put ''ZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMseCksdGhpcy5yZWQubXVsKHRoaXMs''@;'; + put 'put ''eCl9LE4ucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHgpLHRoaXMucmVkLmltdWwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU3FyPWZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSVNxciB3''@;'; + put 'put ''b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxOLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhp''@;'; + put 'put ''cy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sTi5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlu''@;'; + put 'put ''dm0odGhpcyl9LE4ucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxOLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rp''@;'; + put 'put ''b24oeCl7cmV0dXJuIFkodGhpcy5yZWQmJiF4LnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyx4KX07dmFyIEllPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gVGUoeCxQ''@;'; + put 'put ''KXt0aGlzLm5hbWU9eCx0aGlzLnA9bmV3IE4oUCwxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IE4oMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIEVlKCl7VGUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZm''@;'; + put 'put ''ZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBoZSgpe1RlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAx''@;'; + put 'put ''Iil9ZnVuY3Rpb24gTygpe1RlLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24geigpe1RlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZm''@;'; + put 'put ''ZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gbmUoeCl7aWYoInN0cmluZyI9PXR5cGVvZiB4KXt2YXIgUD1OLl9wcmltZSh4KTt0aGlzLm09UC5wLHRoaXMucHJpbWU9UH1lbHNlIFkoeC5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRo''@;'; + put 'put ''aXMubT14LHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiB0ZSh4KXtuZS5jYWxsKHRoaXMseCksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgTigxKS5pdXNobG4odGhpcy5zaGlm''@;'; + put 'put ''dCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRo''@;'; + put 'put ''aXMuci5zdWIodGhpcy5taW52KX1UZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB4LndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSkseH0sVGUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oeCl7dmFyIFAsVj14O2Rve3Ro''@;'; + put 'put ''aXMuc3BsaXQoVix0aGlzLnRtcCksUD0oVj0oVj10aGlzLmltdWxLKFYpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoUD50aGlzLm4pO3ZhciBUPVA8dGhpcy5uPy0xOlYudWNtcCh0aGlzLnApO3JldHVybiAwPT09VD8oVi53b3Jkc1swXT0wLFYubGVuZ3RoPTEpOlQ+MD9W''@;'; + put 'put ''LmlzdWIodGhpcy5wKTp2b2lkIDAhPT1WLnN0cmlwP1Yuc3RyaXAoKTpWLl9zdHJpcCgpLFZ9LFRlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe3guaXVzaHJuKHRoaXMubiwwLFApfSxUZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oeCl7cmV0dXJuIHguaW11bCh0aGlzLmspfSxX''@;'; + put 'put ''KEVlLFRlKSxFZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oeCxQKXtmb3IodmFyIFY9NDE5NDMwMyxUPU1hdGgubWluKHgubGVuZ3RoLDkpLFM9MDtTPFQ7UysrKVAud29yZHNbU109eC53b3Jkc1tTXTtpZihQLmxlbmd0aD1ULHgubGVuZ3RoPD05KXJldHVybiB4LndvcmRzWzBdPTAsdm9p''@;'; + put 'put ''ZCh4Lmxlbmd0aD0xKTt2YXIgRj14LndvcmRzWzldO2ZvcihQLndvcmRzW1AubGVuZ3RoKytdPUYmVixTPTEwO1M8eC5sZW5ndGg7UysrKXt2YXIgeWU9MHx4LndvcmRzW1NdO3gud29yZHNbUy0xMF09KHllJlYpPDw0fEY+Pj4yMixGPXllfXgud29yZHNbUy0xMF09Rj4+Pj0yMix4Lmxlbmd0''@;'; + put 'put ''aC09MD09PUYmJngubGVuZ3RoPjEwPzEwOjl9LEVlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXt4LndvcmRzW3gubGVuZ3RoXT0wLHgud29yZHNbeC5sZW5ndGgrMV09MCx4Lmxlbmd0aCs9Mjtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspe3ZhciBUPTB8eC53b3Jkc1tWXTt4''@;'; + put 'put ''LndvcmRzW1ZdPTY3MTA4ODYzJihQKz05NzcqVCksUD02NCpUKyhQLzY3MTA4ODY0fDApfXJldHVybiAwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmKHgubGVuZ3RoLS0sMD09PXgud29yZHNbeC5sZW5ndGgtMV0mJngubGVuZ3RoLS0pLHh9LFcoaGUsVGUpLFcoTyxUZSksVyh6LFRlKSx6LnBy''@;'; + put 'put ''b3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspe3ZhciBUPTE5KigwfHgud29yZHNbVl0pK1AsUz02NzEwODg2MyZUO1Q+Pj49MjYseC53b3Jkc1tWXT1TLFA9VH1yZXR1cm4gMCE9PVAmJih4LndvcmRzW3gubGVuZ3RoKytdPVApLHh9LE4u''@;'; + put 'put ''X3ByaW1lPWZ1bmN0aW9uKHgpe2lmKEllW3hdKXJldHVybiBJZVt4XTt2YXIgUDtpZigiazI1NiI9PT14KVA9bmV3IEVlO2Vsc2UgaWYoInAyMjQiPT09eClQPW5ldyBoZTtlbHNlIGlmKCJwMTkyIj09PXgpUD1uZXcgTztlbHNle2lmKCJwMjU1MTkiIT09eCl0aHJvdyBuZXcgRXJyb3IoIlVu''@;'; + put 'put ''a25vd24gcHJpbWUgIit4KTtQPW5ldyB6fXJldHVybiBJZVt4XT1QLFB9LG5lLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJl''@;'; + put 'put ''cnMiKX0sbmUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKHgsUCl7WSgwPT0oeC5uZWdhdGl2ZXxQLm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxZKHgucmVkJiZ4LnJlZD09PVAucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LG5l''@;'; + put 'put ''LnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZSh4KS5fZm9yY2VSZWQodGhpcyk6eC51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKHgpe3JldHVybiB4LmlzWmVybygpP3gu''@;'; + put 'put ''Y2xvbmUoKTp0aGlzLm0uc3ViKHgpLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmFkZChQKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3ViKHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LG5l''@;'; + put 'put ''LnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaWFkZChQKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3ViKHRoaXMubSksVn0sbmUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14''@;'; + put 'put ''LnN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0aGlzLm0pLFYuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmlzdWIoUCk7cmV0dXJuIFYuY21wbigwKTwwJiZWLmlhZGQodGhpcy5tKSxW''@;'; + put 'put ''fSxuZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoeCksdGhpcy5pbW9kKHgudXNobG4oUCkpfSxuZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCksdGhpcy5pbW9kKHguaW11bChQKSl9LG5lLnBy''@;'; + put 'put ''b3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih4LFApLHRoaXMuaW1vZCh4Lm11bChQKSl9LG5lLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmltdWwoeCx4LmNsb25lKCkpfSxuZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKHgpe3Jl''@;'; + put 'put ''dHVybiB0aGlzLm11bCh4LHgpfSxuZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbih4KXtpZih4LmlzWmVybygpKXJldHVybiB4LmNsb25lKCk7dmFyIFA9dGhpcy5tLmFuZGxuKDMpO2lmKFkoUCUyPT0xKSwzPT09UCl7dmFyIFY9dGhpcy5tLmFkZChuZXcgTigxKSkuaXVzaHJuKDIpO3JldHVy''@;'; + put 'put ''biB0aGlzLnBvdyh4LFYpfWZvcih2YXIgVD10aGlzLm0uc3VibigxKSxTPTA7IVQuaXNaZXJvKCkmJjA9PT1ULmFuZGxuKDEpOylTKyssVC5pdXNocm4oMSk7WSghVC5pc1plcm8oKSk7dmFyIEY9bmV3IE4oMSkudG9SZWQodGhpcykseWU9Ri5yZWROZWcoKSxDZT10aGlzLm0uc3VibigxKS5p''@;'; + put 'put ''dXNocm4oMSksRGU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihEZT1uZXcgTigyKkRlKkRlKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3coRGUsQ2UpLmNtcCh5ZSk7KURlLnJlZElBZGQoeWUpO2Zvcih2YXIgUGU9dGhpcy5wb3coRGUsVCksUWU9dGhpcy5wb3coeCxULmFkZG4oMSkuaXVzaHJu''@;'; + put 'put ''KDEpKSwkZT10aGlzLnBvdyh4LFQpLGd0PVM7MCE9PSRlLmNtcChGKTspe2Zvcih2YXIgd3Q9JGUsdnQ9MDswIT09d3QuY21wKEYpO3Z0Kyspd3Q9d3QucmVkU3FyKCk7WSh2dDxndCk7dmFyIEF0PXRoaXMucG93KFBlLG5ldyBOKDEpLml1c2hsbihndC12dC0xKSk7UWU9UWUucmVkTXVsKEF0''@;'; + put 'put ''KSxQZT1BdC5yZWRTcXIoKSwkZT0kZS5yZWRNdWwoUGUpLGd0PXZ0fXJldHVybiBRZX0sbmUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7dmFyIFA9eC5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PVAubmVnYXRpdmU/KFAubmVnYXRpdmU9MCx0aGlzLmltb2QoUCkucmVkTmVnKCkpOnRo''@;'; + put 'put ''aXMuaW1vZChQKX0sbmUucHJvdG90eXBlLnBvdz1mdW5jdGlvbih4LFApe2lmKFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT1QLmNtcG4oMSkpcmV0dXJuIHguY2xvbmUoKTt2YXIgVj1uZXcgQXJyYXkoMTYpO1ZbMF09bmV3IE4oMSkudG9SZWQodGhpcyks''@;'; + put 'put ''VlsxXT14O2Zvcih2YXIgVD0yO1Q8Vi5sZW5ndGg7VCsrKVZbVF09dGhpcy5tdWwoVltULTFdLHgpO3ZhciBTPVZbMF0sRj0wLHllPTAsQ2U9UC5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PUNlJiYoQ2U9MjYpLFQ9UC5sZW5ndGgtMTtUPj0wO1QtLSl7Zm9yKHZhciBEZT1QLndvcmRzW1RdLFBl''@;'; + put 'put ''PUNlLTE7UGU+PTA7UGUtLSl7dmFyIFFlPURlPj5QZSYxO1MhPT1WWzBdJiYoUz10aGlzLnNxcihTKSksMCE9PVFlfHwwIT09Rj8oRjw8PTEsRnw9UWUsKDQ9PSsreWV8fDA9PT1UJiYwPT09UGUpJiYoUz10aGlzLm11bChTLFZbRl0pLHllPTAsRj0wKSk6eWU9MH1DZT0yNn1yZXR1cm4gU30s''@;'; + put 'put ''bmUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXt2YXIgUD14LnVtb2QodGhpcy5tKTtyZXR1cm4gUD09PXg/UC5jbG9uZSgpOlB9LG5lLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih4KXt2YXIgUD14LmNsb25lKCk7cmV0dXJuIFAucmVkPW51bGwsUH0sTi5tb250PWZ1''@;'; + put 'put ''bmN0aW9uKHgpe3JldHVybiBuZXcgdGUoeCl9LFcodGUsbmUpLHRlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW1vZCh4LnVzaGxuKHRoaXMuc2hpZnQpKX0sdGUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHgpe3ZhciBQPXRoaXMuaW1vZCh4''@;'; + put 'put ''Lm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSx0ZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJuIHgud29yZHNbMF09MCx4Lmxlbmd0aD0xLHg7dmFyIFY9eC5pbXVsKFApLFQ9Vi5tYXNrbih0aGlzLnNoaWZ0''@;'; + put 'put ''KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksUz1WLmlzdWIoVCkuaXVzaHJuKHRoaXMuc2hpZnQpLEY9UztyZXR1cm4gUy5jbXAodGhpcy5tKT49MD9GPVMuaXN1Yih0aGlzLm0pOlMuY21wbigwKTwwJiYoRj1TLmlhZGQodGhpcy5tKSksRi5fZm9yY2VS''@;'; + put 'put ''ZWQodGhpcyl9LHRlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCxQKXtpZih4LmlzWmVybygpfHxQLmlzWmVybygpKXJldHVybiBuZXcgTigwKS5fZm9yY2VSZWQodGhpcyk7dmFyIFY9eC5tdWwoUCksVD1WLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNo''@;'; + put 'put ''aWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5zaGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxGLl9mb3JjZVJlZCh0aGlzKX0sdGUucHJvdG90eXBlLmludm09ZnVu''@;'; + put 'put ''Y3Rpb24oeCl7cmV0dXJuIHRoaXMuaW1vZCh4Ll9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oVT1aLm5tZChVKSx0aGlzKX0sODA5MTpVPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFEoWixpZSl7aWYobnVsbD09Wil0aHJvdyBuZXcgVHlwZUVycm9yKCJD''@;'; + put 'put ''YW5ub3QgY29udmVydCBmaXJzdCBhcmd1bWVudCB0byBvYmplY3QiKTtmb3IodmFyIGxlPU9iamVjdChaKSxZPTE7WTxhcmd1bWVudHMubGVuZ3RoO1krKyl7dmFyIFc9YXJndW1lbnRzW1ldO2lmKG51bGwhPVcpZm9yKHZhciBOPU9iamVjdC5rZXlzKE9iamVjdChXKSksZWU9MCxxPU4ubGVu''@;'; + put 'put ''Z3RoO2VlPHE7ZWUrKyl7dmFyIEo9TltlZV0sc2U9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihXLEopO3ZvaWQgMCE9PXNlJiZzZS5lbnVtZXJhYmxlJiYobGVbSl09V1tKXSl9fXJldHVybiBsZX1VLmV4cG9ydHM9e2Fzc2lnbjpRLHBvbHlmaWxsOmZ1bmN0aW9uKCl7T2JqZWN0''@;'; + put 'put ''LmFzc2lnbnx8T2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdCwiYXNzaWduIix7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6UX0pfX19LDcxODc6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsbGU9Wig1MTA4KSxZPSJvYmplY3QiPT10eXBl''@;'; + put 'put ''b2YgUmVmbGVjdD9SZWZsZWN0Om51bGwsVz1ZJiYiZnVuY3Rpb24iPT10eXBlb2YgWS5hcHBseT9ZLmFwcGx5OmZ1bmN0aW9uKEllLFRlLEVlKXtyZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoSWUsVGUsRWUpfTtpZT1ZJiYiZnVuY3Rpb24iPT10eXBlb2YgWS5vd25LZXlz''@;'; + put 'put ''P1kub3duS2V5czpPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKEllKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoSWUpLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKEllKSl9OmZ1bmN0aW9uKEllKXtyZXR1cm4gT2JqZWN0LmdldE93''@;'; + put 'put ''blByb3BlcnR5TmFtZXMoSWUpfTt2YXIgTj1OdW1iZXIuaXNOYU58fGZ1bmN0aW9uKEllKXtyZXR1cm4gSWUhPUllfTtmdW5jdGlvbiBlZSgpe2VlLmluaXQuY2FsbCh0aGlzKX1VLmV4cG9ydHM9ZWUsVS5leHBvcnRzLm9uY2U9ZnVuY3Rpb24oSWUsVGUpe3JldHVybiBuZXcgUHJvbWlzZShm''@;'; + put 'put ''dW5jdGlvbihFZSxoZSl7ZnVuY3Rpb24gTyhuZSl7SWUucmVtb3ZlTGlzdGVuZXIoVGUseiksaGUobmUpfWZ1bmN0aW9uIHooKXsiZnVuY3Rpb24iPT10eXBlb2YgSWUucmVtb3ZlTGlzdGVuZXImJkllLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsTyksRWUoW10uc2xpY2UuY2FsbChhcmd1bWVu''@;'; + put 'put ''dHMpKX12YXIgbmU7U2UoSWUsVGUseix7b25jZTohMH0pLCJlcnJvciIhPT1UZSYmKCJmdW5jdGlvbiI9PXR5cGVvZihuZT1JZSkub24mJlNlKG5lLCJlcnJvciIsTyx7b25jZTohMH0pKX0pfSxlZS5FdmVudEVtaXR0ZXI9ZWUsZWUucHJvdG90eXBlLl9ldmVudHM9dm9pZCAwLGVlLnByb3Rv''@;'; + put 'put ''dHlwZS5fZXZlbnRzQ291bnQ9MCxlZS5wcm90b3R5cGUuX21heExpc3RlbmVycz12b2lkIDA7dmFyIHE9MTA7ZnVuY3Rpb24gSihJZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEllKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAibGlzdGVuZXIiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBG''@;'; + put 'put ''dW5jdGlvbi4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBJZSl9ZnVuY3Rpb24gc2UoSWUpe3JldHVybiB2b2lkIDA9PT1JZS5fbWF4TGlzdGVuZXJzP2VlLmRlZmF1bHRNYXhMaXN0ZW5lcnM6SWUuX21heExpc3RlbmVyc31mdW5jdGlvbiBvZShJZSxUZSxFZSxoZSl7dmFyIE8seixuZTtpZihK''@;'; + put 'put ''KEVlKSx2b2lkIDA9PT0oej1JZS5fZXZlbnRzKT8oej1JZS5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksSWUuX2V2ZW50c0NvdW50PTApOih2b2lkIDAhPT16Lm5ld0xpc3RlbmVyJiYoSWUuZW1pdCgibmV3TGlzdGVuZXIiLFRlLEVlLmxpc3RlbmVyP0VlLmxpc3RlbmVyOkVlKSx6PUll''@;'; + put 'put ''Ll9ldmVudHMpLG5lPXpbVGVdKSx2b2lkIDA9PT1uZSluZT16W1RlXT1FZSwrK0llLl9ldmVudHNDb3VudDtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBuZT9uZT16W1RlXT1oZT9bRWUsbmVdOltuZSxFZV06aGU/bmUudW5zaGlmdChFZSk6bmUucHVzaChFZSksKE89c2UoSWUpKT4wJiZu''@;'; + put 'put ''ZS5sZW5ndGg+TyYmIW5lLndhcm5lZCl7bmUud2FybmVkPSEwO3ZhciB4PW5ldyBFcnJvcigiUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAiK25lLmxlbmd0aCsiICIrU3RyaW5nKFRlKSsiIGxpc3RlbmVycyBhZGRlZC4gVXNlIGVtaXR0ZXIuc2V0TWF4TGlz''@;'; + put 'put ''dGVuZXJzKCkgdG8gaW5jcmVhc2UgbGltaXQiKTt4Lm5hbWU9Ik1heExpc3RlbmVyc0V4Y2VlZGVkV2FybmluZyIseC5lbWl0dGVyPUllLHgudHlwZT1UZSx4LmNvdW50PW5lLmxlbmd0aCxsZSYmbGUud2FybiYmbGUud2Fybih4KX1yZXR1cm4gSWV9ZnVuY3Rpb24gY2UoKXtpZighdGhpcy5m''@;'; + put 'put ''aXJlZClyZXR1cm4gdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLHRoaXMud3JhcEZuKSx0aGlzLmZpcmVkPSEwLDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk6dGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCxhcmd1''@;'; + put 'put ''bWVudHMpfWZ1bmN0aW9uIGRlKEllLFRlLEVlKXt2YXIgaGU9e2ZpcmVkOiExLHdyYXBGbjp2b2lkIDAsdGFyZ2V0OkllLHR5cGU6VGUsbGlzdGVuZXI6RWV9LE89Y2UuYmluZChoZSk7cmV0dXJuIE8ubGlzdGVuZXI9RWUsaGUud3JhcEZuPU8sT31mdW5jdGlvbiB2ZShJZSxUZSxFZSl7dmFy''@;'; + put 'put ''IGhlPUllLl9ldmVudHM7aWYodm9pZCAwPT09aGUpcmV0dXJuW107dmFyIE89aGVbVGVdO3JldHVybiB2b2lkIDA9PT1PP1tdOiJmdW5jdGlvbiI9PXR5cGVvZiBPP0VlP1tPLmxpc3RlbmVyfHxPXTpbT106RWU/ZnVuY3Rpb24oeil7Zm9yKHZhciBuZT1uZXcgQXJyYXkoei5sZW5ndGgpLHRl''@;'; + put 'put ''PTA7dGU8bmUubGVuZ3RoOysrdGUpbmVbdGVdPXpbdGVdLmxpc3RlbmVyfHx6W3RlXTtyZXR1cm4gbmV9KE8pOmtlKE8sTy5sZW5ndGgpfWZ1bmN0aW9uIEFlKEllKXt2YXIgVGU9dGhpcy5fZXZlbnRzO2lmKHZvaWQgMCE9PVRlKXt2YXIgRWU9VGVbSWVdO2lmKCJmdW5jdGlvbiI9PXR5cGVv''@;'; + put 'put ''ZiBFZSlyZXR1cm4gMTtpZih2b2lkIDAhPT1FZSlyZXR1cm4gRWUubGVuZ3RofXJldHVybiAwfWZ1bmN0aW9uIGtlKEllLFRlKXtmb3IodmFyIEVlPW5ldyBBcnJheShUZSksaGU9MDtoZTxUZTsrK2hlKUVlW2hlXT1JZVtoZV07cmV0dXJuIEVlfWZ1bmN0aW9uIFNlKEllLFRlLEVlLGhlKXtp''@;'; + put 'put ''ZigiZnVuY3Rpb24iPT10eXBlb2YgSWUub24paGUub25jZT9JZS5vbmNlKFRlLEVlKTpJZS5vbihUZSxFZSk7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YgSWUuYWRkRXZlbnRMaXN0ZW5lcil0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImVtaXR0ZXIiIGFyZ3VtZW50IG11c3QgYmUgb2Yg''@;'; + put 'put ''dHlwZSBFdmVudEVtaXR0ZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgSWUpO0llLmFkZEV2ZW50TGlzdGVuZXIoVGUsZnVuY3Rpb24gTyh6KXtoZS5vbmNlJiZJZS5yZW1vdmVFdmVudExpc3RlbmVyKFRlLE8pLEVlKHopfSl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlZSwiZGVmYXVsdE1h''@;'; + put 'put ''eExpc3RlbmVycyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHF9LHNldDpmdW5jdGlvbihJZSl7aWYoIm51bWJlciIhPXR5cGVvZiBJZXx8SWU8MHx8TihJZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiAiZGVmYXVsdE1heExpc3RlbmVycyIgaXMg''@;'; + put 'put ''b3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJytJZSsiLiIpO3E9SWV9fSksZWUuaW5pdD1mdW5jdGlvbigpe3ZvaWQgMCE9PXRoaXMuX2V2ZW50cyYmdGhpcy5fZXZlbnRzIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLl9ldmVu''@;'; + put 'put ''dHN8fCh0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wKSx0aGlzLl9tYXhMaXN0ZW5lcnM9dGhpcy5fbWF4TGlzdGVuZXJzfHx2b2lkIDB9LGVlLnByb3RvdHlwZS5zZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24oSWUpe2lmKCJudW1iZXIiIT10eXBl''@;'; + put 'put ''b2YgSWV8fEllPDB8fE4oSWUpKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgIm4iIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcrSWUrIi4iKTtyZXR1cm4gdGhpcy5fbWF4TGlzdGVuZXJzPUllLHRoaXN9LGVl''@;'; + put 'put ''LnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtyZXR1cm4gc2UodGhpcyl9LGVlLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKEllKXtmb3IodmFyIFRlPVtdLEVlPTE7RWU8YXJndW1lbnRzLmxlbmd0aDtFZSsrKVRlLnB1c2goYXJndW1lbnRzW0VlXSk7dmFyIGhlPSJlcnJv''@;'; + put 'put ''ciI9PT1JZSxPPXRoaXMuX2V2ZW50cztpZih2b2lkIDAhPT1PKWhlPWhlJiZ2b2lkIDA9PT1PLmVycm9yO2Vsc2UgaWYoIWhlKXJldHVybiExO2lmKGhlKXt2YXIgejtpZihUZS5sZW5ndGg+MCYmKHo9VGVbMF0pLHogaW5zdGFuY2VvZiBFcnJvcil0aHJvdyB6O3ZhciBuZT1uZXcgRXJyb3Io''@;'; + put 'put ''IlVuaGFuZGxlZCBlcnJvci4iKyh6PyIgKCIrei5tZXNzYWdlKyIpIjoiIikpO3Rocm93IG5lLmNvbnRleHQ9eixuZX12YXIgdGU9T1tJZV07aWYodm9pZCAwPT09dGUpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHRlKVcodGUsdGhpcyxUZSk7ZWxzZXt2YXIgeD10ZS5sZW5ndGgs''@;'; + put 'put ''UD1rZSh0ZSx4KTtmb3IoRWU9MDtFZTx4OysrRWUpVyhQW0VlXSx0aGlzLFRlKX1yZXR1cm4hMH0sZWUucHJvdG90eXBlLm9uPWVlLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbihJZSxUZSl7cmV0dXJuIG9lKHRoaXMsSWUsVGUsITEpfSxlZS5wcm90b3R5cGUucHJlcGVuZExpc3Rl''@;'; + put 'put ''bmVyPWZ1bmN0aW9uKEllLFRlKXtyZXR1cm4gb2UodGhpcyxJZSxUZSwhMCl9LGVlLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKEllLFRlKXtyZXR1cm4gSihUZSksdGhpcy5vbihJZSxkZSh0aGlzLEllLFRlKSksdGhpc30sZWUucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXI9ZnVuY3Rp''@;'; + put 'put ''b24oSWUsVGUpe3JldHVybiBKKFRlKSx0aGlzLnByZXBlbmRMaXN0ZW5lcihJZSxkZSh0aGlzLEllLFRlKSksdGhpc30sZWUucHJvdG90eXBlLm9mZj1lZS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oSWUsVGUpe3ZhciBFZSxoZSxPLHosbmU7aWYoSihUZSksdm9pZCAwPT09''@;'; + put 'put ''KGhlPXRoaXMuX2V2ZW50cykpcmV0dXJuIHRoaXM7aWYodm9pZCAwPT09KEVlPWhlW0llXSkpcmV0dXJuIHRoaXM7aWYoRWU9PT1UZXx8RWUubGlzdGVuZXI9PT1UZSkwPT0tLXRoaXMuX2V2ZW50c0NvdW50P3RoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpOihkZWxldGUgaGVbSWVd''@;'; + put 'put ''LGhlLnJlbW92ZUxpc3RlbmVyJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIixJZSxFZS5saXN0ZW5lcnx8VGUpKTtlbHNlIGlmKCJmdW5jdGlvbiIhPXR5cGVvZiBFZSl7Zm9yKE89LTEsej1FZS5sZW5ndGgtMTt6Pj0wO3otLSlpZihFZVt6XT09PVRlfHxFZVt6XS5saXN0ZW5lcj09PVRl''@;'; + put 'put ''KXtuZT1FZVt6XS5saXN0ZW5lcixPPXo7YnJlYWt9aWYoTzwwKXJldHVybiB0aGlzOzA9PT1PP0VlLnNoaWZ0KCk6ZnVuY3Rpb24odGUseCl7Zm9yKDt4KzE8dGUubGVuZ3RoO3grKyl0ZVt4XT10ZVt4KzFdO3RlLnBvcCgpfShFZSxPKSwxPT09RWUubGVuZ3RoJiYoaGVbSWVdPUVlWzBdKSx2''@;'; + put 'put ''b2lkIDAhPT1oZS5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsSWUsbmV8fFRlKX1yZXR1cm4gdGhpc30sZWUucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbihJZSl7dmFyIFRlLEVlLGhlO2lmKHZvaWQgMD09PShFZT10aGlzLl9ldmVudHMp''@;'; + put 'put ''KXJldHVybiB0aGlzO2lmKHZvaWQgMD09PUVlLnJlbW92ZUxpc3RlbmVyKXJldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD8odGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCk6dm9pZCAwIT09RWVbSWVdJiYoMD09LS10aGlzLl9ldmVudHNDb3Vu''@;'; + put 'put ''dD90aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKTpkZWxldGUgRWVbSWVdKSx0aGlzO2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXt2YXIgTyx6PU9iamVjdC5rZXlzKEVlKTtmb3IoaGU9MDtoZTx6Lmxlbmd0aDsrK2hlKSJyZW1vdmVMaXN0ZW5lciIhPT0oTz16W2hlXSkmJnRoaXMu''@;'; + put 'put ''cmVtb3ZlQWxsTGlzdGVuZXJzKE8pO3JldHVybiB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygicmVtb3ZlTGlzdGVuZXIiKSx0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wLHRoaXN9aWYoImZ1bmN0aW9uIj09dHlwZW9mKFRlPUVlW0llXSkpdGhp''@;'; + put 'put ''cy5yZW1vdmVMaXN0ZW5lcihJZSxUZSk7ZWxzZSBpZih2b2lkIDAhPT1UZSlmb3IoaGU9VGUubGVuZ3RoLTE7aGU+PTA7aGUtLSl0aGlzLnJlbW92ZUxpc3RlbmVyKEllLFRlW2hlXSk7cmV0dXJuIHRoaXN9LGVlLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24oSWUpe3JldHVybiB2ZSh0''@;'; + put 'put ''aGlzLEllLCEwKX0sZWUucHJvdG90eXBlLnJhd0xpc3RlbmVycz1mdW5jdGlvbihJZSl7cmV0dXJuIHZlKHRoaXMsSWUsITEpfSxlZS5saXN0ZW5lckNvdW50PWZ1bmN0aW9uKEllLFRlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgSWUubGlzdGVuZXJDb3VudD9JZS5saXN0ZW5lckNvdW50''@;'; + put 'put ''KFRlKTpBZS5jYWxsKEllLFRlKX0sZWUucHJvdG90eXBlLmxpc3RlbmVyQ291bnQ9QWUsZWUucHJvdG90eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQ+MD9pZSh0aGlzLl9ldmVudHMpOltdfX0sMzA0ODooVSxRLFopPT57dmFyIGllPVooOTUwOSku''@;'; + put 'put ''QnVmZmVyLGxlPVooMjMxOCk7VS5leHBvcnRzPWZ1bmN0aW9uKFksVyxOLGVlKXtpZihpZS5pc0J1ZmZlcihZKXx8KFk9aWUuZnJvbShZLCJiaW5hcnkiKSksVyYmKGllLmlzQnVmZmVyKFcpfHwoVz1pZS5mcm9tKFcsImJpbmFyeSIpKSw4IT09Vy5sZW5ndGgpKXRocm93IG5ldyBSYW5nZUVy''@;'; + put 'put ''cm9yKCJzYWx0IHNob3VsZCBiZSBCdWZmZXIgd2l0aCA4IGJ5dGUgbGVuZ3RoIik7Zm9yKHZhciBxPU4vOCxKPWllLmFsbG9jKHEpLHNlPWllLmFsbG9jKGVlfHwwKSxvZT1pZS5hbGxvYygwKTtxPjB8fGVlPjA7KXt2YXIgY2U9bmV3IGxlO2NlLnVwZGF0ZShvZSksY2UudXBkYXRlKFkpLFcm''@;'; + put 'put ''JmNlLnVwZGF0ZShXKSxvZT1jZS5kaWdlc3QoKTt2YXIgZGU9MDtpZihxPjApe3ZhciB2ZT1KLmxlbmd0aC1xO2RlPU1hdGgubWluKHEsb2UubGVuZ3RoKSxvZS5jb3B5KEosdmUsMCxkZSkscS09ZGV9aWYoZGU8b2UubGVuZ3RoJiZlZT4wKXt2YXIgQWU9c2UubGVuZ3RoLWVlLGtlPU1hdGgu''@;'; + put 'put ''bWluKGVlLG9lLmxlbmd0aC1kZSk7b2UuY29weShzZSxBZSxkZSxkZStrZSksZWUtPWtlfX1yZXR1cm4gb2UuZmlsbCgwKSx7a2V5OkosaXY6c2V9fX0sNDAyOTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDUzMjApLGxlPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsWT1PYmpl''@;'; + put 'put ''Y3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFc9ZnVuY3Rpb24ocSxKLHNlKXtmb3IodmFyIG9lPTAsY2U9cS5sZW5ndGg7b2U8Y2U7b2UrKylZLmNhbGwocSxvZSkmJihudWxsPT1zZT9KKHFbb2VdLG9lLHEpOkouY2FsbChzZSxxW29lXSxvZSxxKSl9LE49ZnVuY3Rpb24ocSxKLHNlKXtm''@;'; + put 'put ''b3IodmFyIG9lPTAsY2U9cS5sZW5ndGg7b2U8Y2U7b2UrKyludWxsPT1zZT9KKHEuY2hhckF0KG9lKSxvZSxxKTpKLmNhbGwoc2UscS5jaGFyQXQob2UpLG9lLHEpfSxlZT1mdW5jdGlvbihxLEosc2Upe2Zvcih2YXIgb2UgaW4gcSlZLmNhbGwocSxvZSkmJihudWxsPT1zZT9KKHFbb2VdLG9l''@;'; + put 'put ''LHEpOkouY2FsbChzZSxxW29lXSxvZSxxKSl9O1UuZXhwb3J0cz1mdW5jdGlvbihxLEosc2Upe2lmKCFpZShKKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpdGVyYXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTt2YXIgb2U7YXJndW1lbnRzLmxlbmd0aD49MyYmKG9lPXNlKSwiW29iamVjdCBBcnJh''@;'; + put 'put ''eV0iPT09bGUuY2FsbChxKT9XKHEsSixvZSk6InN0cmluZyI9PXR5cGVvZiBxP04ocSxKLG9lKTplZShxLEosb2UpfX0sNjIzMDpVPT57VS5leHBvcnRzPSJvYmplY3QiPT10eXBlb2Ygc2VsZj9zZWxmLkZvcm1EYXRhOndpbmRvdy5Gb3JtRGF0YX0sNTMwMjooVSxRLFopPT57InVzZSBzdHJp''@;'; + put 'put ''Y3QiO3ZhciBpZT1aKDQxNTUpLGxlPVooNTEwOCk7Y29uc3QgWT1aKDc3KSxXPVooMjUyMCksTj1aKDEzODEpLm1rZGlyc1N5bmMsZWU9WigzMTgpLnV0aW1lc01pbGxpc1N5bmMscT1aKDI3MzMpO2Z1bmN0aW9uIEooZGUsdmUsQWUsa2Upe2NvbnN0IFNlPShrZS5kZXJlZmVyZW5jZT9ZLnN0''@;'; + put 'put ''YXRTeW5jOlkubHN0YXRTeW5jKSh2ZSk7aWYoU2UuaXNEaXJlY3RvcnkoKSlyZXR1cm4gSWU9U2UsRWU9dmUsaGU9QWUsTz1rZSxkZT9jZShFZSxoZSxPKTooej1JZS5tb2RlLG5lPUVlLHg9TyxZLm1rZGlyU3luYyh0ZT1oZSksY2UobmUsdGUseCksb2UodGUseikpO3ZhciBJZSxFZSxoZSxP''@;'; + put 'put ''LHosbmUsdGUseDtpZihTZS5pc0ZpbGUoKXx8U2UuaXNDaGFyYWN0ZXJEZXZpY2UoKXx8U2UuaXNCbG9ja0RldmljZSgpKXJldHVybiBmdW5jdGlvbihJZSxUZSxFZSxoZSxPKXtyZXR1cm4gVGU/ZnVuY3Rpb24oeixuZSx0ZSx4KXtpZih4Lm92ZXJ3cml0ZSlyZXR1cm4gWS51bmxpbmtTeW5j''@;'; + put 'put ''KHRlKSxzZSh6LG5lLHRlLHgpO2lmKHguZXJyb3JPbkV4aXN0KXRocm93IG5ldyBFcnJvcihgJyR7dGV9JyBhbHJlYWR5IGV4aXN0c2ApfShJZSxFZSxoZSxPKTpzZShJZSxFZSxoZSxPKX0oU2UsZGUsdmUsQWUsa2UpO2lmKFNlLmlzU3ltYm9saWNMaW5rKCkpcmV0dXJuIGZ1bmN0aW9uKEll''@;'; + put 'put ''LFRlLEVlLGhlKXtsZXQgTz1ZLnJlYWRsaW5rU3luYyhUZSk7aWYoaGUuZGVyZWZlcmVuY2UmJihPPVcucmVzb2x2ZShpZS5jd2QoKSxPKSksSWUpe2xldCB6O3RyeXt6PVkucmVhZGxpbmtTeW5jKEVlKX1jYXRjaChuZSl7aWYoIkVJTlZBTCI9PT1uZS5jb2RlfHwiVU5LTk9XTiI9PT1uZS5j''@;'; + put 'put ''b2RlKXJldHVybiBZLnN5bWxpbmtTeW5jKE8sRWUpO3Rocm93IG5lfWlmKGhlLmRlcmVmZXJlbmNlJiYoej1XLnJlc29sdmUoaWUuY3dkKCkseikpLHEuaXNTcmNTdWJkaXIoTyx6KSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjb3B5ICcke099JyB0byBhIHN1YmRpcmVjdG9yeSBvZiBpdHNl''@;'; + put 'put ''bGYsICcke3p9Jy5gKTtpZihZLnN0YXRTeW5jKEVlKS5pc0RpcmVjdG9yeSgpJiZxLmlzU3JjU3ViZGlyKHosTykpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgb3ZlcndyaXRlICcke3p9JyB3aXRoICcke099Jy5gKTtyZXR1cm4gZnVuY3Rpb24obmUsdGUpe3JldHVybiBZLnVubGlua1N5bmMo''@;'; + put 'put ''dGUpLFkuc3ltbGlua1N5bmMobmUsdGUpfShPLEVlKX1yZXR1cm4gWS5zeW1saW5rU3luYyhPLEVlKX0oZGUsdmUsQWUsa2UpO3Rocm93IFNlLmlzU29ja2V0KCk/bmV3IEVycm9yKGBDYW5ub3QgY29weSBhIHNvY2tldCBmaWxlOiAke3ZlfWApOlNlLmlzRklGTygpP25ldyBFcnJvcihgQ2Fu''@;'; + put 'put ''bm90IGNvcHkgYSBGSUZPIHBpcGU6ICR7dmV9YCk6bmV3IEVycm9yKGBVbmtub3duIGZpbGU6ICR7dmV9YCl9ZnVuY3Rpb24gc2UoZGUsdmUsQWUsa2Upe3JldHVybiBZLmNvcHlGaWxlU3luYyh2ZSxBZSksa2UucHJlc2VydmVUaW1lc3RhbXBzJiYoSWU9dmUsVGU9QWUsMD09KDEyOCYoU2U9''@;'; + put 'put ''ZGUubW9kZSkpJiZvZShUZSwxMjh8U2UpLGZ1bmN0aW9uKEVlLGhlKXtjb25zdCBPPVkuc3RhdFN5bmMoRWUpO2VlKGhlLE8uYXRpbWUsTy5tdGltZSl9KEllLFRlKSksb2UoQWUsZGUubW9kZSk7dmFyIFNlLEllLFRlfWZ1bmN0aW9uIG9lKGRlLHZlKXtyZXR1cm4gWS5jaG1vZFN5bmMoZGUs''@;'; + put 'put ''dmUpfWZ1bmN0aW9uIGNlKGRlLHZlLEFlKXtZLnJlYWRkaXJTeW5jKGRlKS5mb3JFYWNoKGtlPT5mdW5jdGlvbihTZSxJZSxUZSxFZSl7Y29uc3QgaGU9Vy5qb2luKEllLFNlKSxPPVcuam9pbihUZSxTZSkse2Rlc3RTdGF0Onp9PXEuY2hlY2tQYXRoc1N5bmMoaGUsTywiY29weSIsRWUpO3Jl''@;'; + put 'put ''dHVybiBmdW5jdGlvbihuZSx0ZSx4LFApe2lmKCFQLmZpbHRlcnx8UC5maWx0ZXIodGUseCkpcmV0dXJuIEoobmUsdGUseCxQKX0oeixoZSxPLEVlKX0oa2UsZGUsdmUsQWUpKX1VLmV4cG9ydHM9ZnVuY3Rpb24oZGUsdmUsQWUpeyJmdW5jdGlvbiI9PXR5cGVvZiBBZSYmKEFlPXtmaWx0ZXI6''@;'; + put 'put ''QWV9KSwoQWU9QWV8fHt9KS5jbG9iYmVyPSEoImNsb2JiZXIiaW4gQWUpfHwhIUFlLmNsb2JiZXIsQWUub3ZlcndyaXRlPSJvdmVyd3JpdGUiaW4gQWU/ISFBZS5vdmVyd3JpdGU6QWUuY2xvYmJlcixBZS5wcmVzZXJ2ZVRpbWVzdGFtcHMmJiJpYTMyIj09PWllLmFyY2gmJmxlLndhcm4oImZz''@;'; + put 'put ''LWV4dHJhOiBVc2luZyB0aGUgcHJlc2VydmVUaW1lc3RhbXBzIG9wdGlvbiBpbiAzMi1iaXQgbm9kZSBpcyBub3QgcmVjb21tZW5kZWQ7XG5cbiAgICBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwcmljaGFyZHNvbi9ub2RlLWZzLWV4dHJhL2lzc3Vlcy8yNjkiKTtjb25zdHtzcmNTdGF0Omtl''@;'; + put 'put ''LGRlc3RTdGF0OlNlfT1xLmNoZWNrUGF0aHNTeW5jKGRlLHZlLCJjb3B5IixBZSk7cmV0dXJuIHEuY2hlY2tQYXJlbnRQYXRoc1N5bmMoZGUsa2UsdmUsImNvcHkiKSxmdW5jdGlvbihJZSxUZSxFZSxoZSl7aWYoaGUuZmlsdGVyJiYhaGUuZmlsdGVyKFRlLEVlKSlyZXR1cm47Y29uc3QgTz1X''@;'; + put 'put ''LmRpcm5hbWUoRWUpO3JldHVybiBZLmV4aXN0c1N5bmMoTyl8fE4oTyksSihJZSxUZSxFZSxoZSl9KFNlLGRlLHZlLEFlKX19LDg2OTA6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9e2NvcHlTeW5jOlooNTMwMil9fSw3MTg5OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGll''@;'; + put 'put ''PVooNDE1NSksbGU9Wig1MTA4KTtjb25zdCBZPVooNzcpLFc9WigyNTIwKSxOPVooMTM4MSkubWtkaXJzLGVlPVooOTI1NykucGF0aEV4aXN0cyxxPVooMzE4KS51dGltZXNNaWxsaXMsSj1aKDI3MzMpO2Z1bmN0aW9uIHNlKFRlLEVlLGhlLE8seil7Y29uc3QgbmU9Vy5kaXJuYW1lKGhlKTtl''@;'; + put 'put ''ZShuZSwodGUseCk9PnRlP3oodGUpOng/Y2UoVGUsRWUsaGUsTyx6KTp2b2lkIE4obmUsUD0+UD96KFApOmNlKFRlLEVlLGhlLE8seikpKX1mdW5jdGlvbiBvZShUZSxFZSxoZSxPLHosbmUpe1Byb21pc2UucmVzb2x2ZSh6LmZpbHRlcihoZSxPKSkudGhlbih0ZT0+dGU/VGUoRWUsaGUsTyx6''@;'; + put 'put ''LG5lKTpuZSgpLHRlPT5uZSh0ZSkpfWZ1bmN0aW9uIGNlKFRlLEVlLGhlLE8seil7KE8uZGVyZWZlcmVuY2U/WS5zdGF0OlkubHN0YXQpKEVlLChuZSx0ZSk9PntyZXR1cm4gbmU/eihuZSk6dGUuaXNEaXJlY3RvcnkoKT8oeD10ZSxWPUVlLFQ9aGUsUz1PLEY9eixUZT9rZShWLFQsUyxGKToo''@;'; + put 'put ''eWU9eC5tb2RlLENlPVYsUGU9UyxRZT1GLHZvaWQgWS5ta2RpcihEZT1ULCRlPT57aWYoJGUpcmV0dXJuIFFlKCRlKTtrZShDZSxEZSxQZSxndD0+Z3Q/UWUoZ3QpOkFlKERlLHllLFFlKSl9KSkpOnRlLmlzRmlsZSgpfHx0ZS5pc0NoYXJhY3RlckRldmljZSgpfHx0ZS5pc0Jsb2NrRGV2aWNl''@;'; + put 'put ''KCk/ZnVuY3Rpb24oeCxQLFYsVCxTLEYpe3JldHVybiBQP2Z1bmN0aW9uKHllLENlLERlLFBlLFFlKXtpZighUGUub3ZlcndyaXRlKXJldHVybiBQZS5lcnJvck9uRXhpc3Q/UWUobmV3IEVycm9yKGAnJHtEZX0nIGFscmVhZHkgZXhpc3RzYCkpOlFlKCk7WS51bmxpbmsoRGUsJGU9PiRlP1Fl''@;'; + put 'put ''KCRlKTpkZSh5ZSxDZSxEZSxQZSxRZSkpfSh4LFYsVCxTLEYpOmRlKHgsVixULFMsRil9KHRlLFRlLEVlLGhlLE8seik6dGUuaXNTeW1ib2xpY0xpbmsoKT9mdW5jdGlvbiBJZShUZSxFZSxoZSxPLHope1kucmVhZGxpbmsoRWUsKG5lLHRlKT0+bmU/eihuZSk6KE8uZGVyZWZlcmVuY2UmJih0''@;'; + put 'put ''ZT1XLnJlc29sdmUoaWUuY3dkKCksdGUpKSxUZT92b2lkIFkucmVhZGxpbmsoaGUsKHgsUCk9PntyZXR1cm4geD8iRUlOVkFMIj09PXguY29kZXx8IlVOS05PV04iPT09eC5jb2RlP1kuc3ltbGluayh0ZSxoZSx6KTp6KHgpOihPLmRlcmVmZXJlbmNlJiYoUD1XLnJlc29sdmUoaWUuY3dkKCks''@;'; + put 'put ''UCkpLEouaXNTcmNTdWJkaXIodGUsUCk/eihuZXcgRXJyb3IoYENhbm5vdCBjb3B5ICcke3RlfScgdG8gYSBzdWJkaXJlY3Rvcnkgb2YgaXRzZWxmLCAnJHtQfScuYCkpOlRlLmlzRGlyZWN0b3J5KCkmJkouaXNTcmNTdWJkaXIoUCx0ZSk/eihuZXcgRXJyb3IoYENhbm5vdCBvdmVyd3JpdGUg''@;'; + put 'put ''JyR7UH0nIHdpdGggJyR7dGV9Jy5gKSk6KFY9dGUsUz16LHZvaWQgWS51bmxpbmsoVD1oZSxGPT5GP1MoRik6WS5zeW1saW5rKFYsVCxTKSkpKTt2YXIgVixULFN9KTpZLnN5bWxpbmsodGUsaGUseikpKX0oVGUsRWUsaGUsTyx6KTp0ZS5pc1NvY2tldCgpP3oobmV3IEVycm9yKGBDYW5ub3Qg''@;'; + put 'put ''Y29weSBhIHNvY2tldCBmaWxlOiAke0VlfWApKTp0ZS5pc0ZJRk8oKT96KG5ldyBFcnJvcihgQ2Fubm90IGNvcHkgYSBGSUZPIHBpcGU6ICR7RWV9YCkpOnoobmV3IEVycm9yKGBVbmtub3duIGZpbGU6ICR7RWV9YCkpO3ZhciB4LFYsVCxTLEYseWUsQ2UsRGUsUGUsUWV9KX1mdW5jdGlvbiBk''@;'; + put 'put ''ZShUZSxFZSxoZSxPLHope1kuY29weUZpbGUoRWUsaGUsbmU9PntyZXR1cm4gbmU/eihuZSk6Ty5wcmVzZXJ2ZVRpbWVzdGFtcHM/KHg9RWUsUD1oZSxWPXosMD09KDEyOCYodGU9VGUubW9kZSkpP0FlKFAsMTI4fHRlLFQ9PlQ/VihUKTp2ZSh0ZSx4LFAsVikpOnZlKHRlLHgsUCxWKSk6QWUo''@;'; + put 'put ''aGUsVGUubW9kZSx6KTt2YXIgdGUseCxQLFZ9KX1mdW5jdGlvbiB2ZShUZSxFZSxoZSxPKXt2YXIgbmUsdGU7bmU9aGUsdGU9ej0+ej9PKHopOkFlKGhlLFRlLE8pLFkuc3RhdChFZSwoeCxQKT0+eD90ZSh4KTpxKG5lLFAuYXRpbWUsUC5tdGltZSx0ZSkpfWZ1bmN0aW9uIEFlKFRlLEVlLGhl''@;'; + put 'put ''KXtyZXR1cm4gWS5jaG1vZChUZSxFZSxoZSl9ZnVuY3Rpb24ga2UoVGUsRWUsaGUsTyl7WS5yZWFkZGlyKFRlLCh6LG5lKT0+ej9PKHopOlNlKG5lLFRlLEVlLGhlLE8pKX1mdW5jdGlvbiBTZShUZSxFZSxoZSxPLHope2NvbnN0IG5lPVRlLnBvcCgpO3JldHVybiBuZT9mdW5jdGlvbih0ZSx4''@;'; + put 'put ''LFAsVixULFMpe2NvbnN0IEY9Vy5qb2luKFAseCkseWU9Vy5qb2luKFYseCk7Si5jaGVja1BhdGhzKEYseWUsImNvcHkiLFQsKENlLERlKT0+e2lmKENlKXJldHVybiBTKENlKTtjb25zdHtkZXN0U3RhdDpQZX09RGU7dmFyIFFlLCRlLGd0LHd0LHZ0O1FlPVBlLCRlPUYsZ3Q9eWUsdnQ9UWU9''@;'; + put 'put ''PlFlP1MoUWUpOlNlKHRlLFAsVixULFMpLCh3dD1UKS5maWx0ZXI/b2UoY2UsUWUsJGUsZ3Qsd3QsdnQpOmNlKFFlLCRlLGd0LHd0LHZ0KX0pfShUZSxuZSxFZSxoZSxPLHopOnooKX1VLmV4cG9ydHM9ZnVuY3Rpb24oVGUsRWUsaGUsTyl7ImZ1bmN0aW9uIiE9dHlwZW9mIGhlfHxPPyJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBoZSYmKGhlPXtmaWx0ZXI6aGV9KTooTz1oZSxoZT17fSksTz1PfHxmdW5jdGlvbigpe30sKGhlPWhlfHx7fSkuY2xvYmJlcj0hKCJjbG9iYmVyImluIGhlKXx8ISFoZS5jbG9iYmVyLGhlLm92ZXJ3cml0ZT0ib3ZlcndyaXRlImluIGhlPyEhaGUub3ZlcndyaXRlOmhl''@;'; + put 'put ''LmNsb2JiZXIsaGUucHJlc2VydmVUaW1lc3RhbXBzJiYiaWEzMiI9PT1pZS5hcmNoJiZsZS53YXJuKCJmcy1leHRyYTogVXNpbmcgdGhlIHByZXNlcnZlVGltZXN0YW1wcyBvcHRpb24gaW4gMzItYml0IG5vZGUgaXMgbm90IHJlY29tbWVuZGVkO1xuXG4gICAgc2VlIGh0dHBzOi8vZ2l0aHVi''@;'; + put 'put ''LmNvbS9qcHJpY2hhcmRzb24vbm9kZS1mcy1leHRyYS9pc3N1ZXMvMjY5IiksSi5jaGVja1BhdGhzKFRlLEVlLCJjb3B5IixoZSwoeixuZSk9PntpZih6KXJldHVybiBPKHopO2NvbnN0e3NyY1N0YXQ6dGUsZGVzdFN0YXQ6eH09bmU7Si5jaGVja1BhcmVudFBhdGhzKFRlLHRlLEVlLCJjb3B5''@;'; + put 'put ''IixQPT5QP08oUCk6aGUuZmlsdGVyP29lKHNlLHgsVGUsRWUsaGUsTyk6c2UoeCxUZSxFZSxoZSxPKSl9KX19LDY0NjQ6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDg5ODEpLmZyb21DYWxsYmFjaztVLmV4cG9ydHM9e2NvcHk6aWUoWig3MTg5KSl9fSw1NTkwOihVLFEsWik9''@;'; + put 'put ''PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig4OTgxKS5mcm9tUHJvbWlzZSxsZT1aKDc3NDkpLFk9WigyNTIwKSxXPVooMTM4MSksTj1aKDQ1NDIpLGVlPWllKGZ1bmN0aW9uKCl7dmFyIEo9bWUoZnVuY3Rpb24qKHNlKXtsZXQgb2U7dHJ5e29lPXlpZWxkIGxlLnJlYWRkaXIoc2UpfWNhdGNo''@;'; + put 'put ''KGNlKXtyZXR1cm4gVy5ta2RpcnMoc2UpfXJldHVybiBQcm9taXNlLmFsbChvZS5tYXAoY2U9Pk4ucmVtb3ZlKFkuam9pbihzZSxjZSkpKSl9KTtyZXR1cm4gZnVuY3Rpb24oc2Upe3JldHVybiBKLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpO2Z1bmN0aW9uIHEoSil7bGV0IHNlO3RyeXtz''@;'; + put 'put ''ZT1sZS5yZWFkZGlyU3luYyhKKX1jYXRjaChvZSl7cmV0dXJuIFcubWtkaXJzU3luYyhKKX1zZS5mb3JFYWNoKG9lPT57b2U9WS5qb2luKEosb2UpLE4ucmVtb3ZlU3luYyhvZSl9KX1VLmV4cG9ydHM9e2VtcHR5RGlyU3luYzpxLGVtcHR5ZGlyU3luYzpxLGVtcHR5RGlyOmVlLGVtcHR5ZGly''@;'; + put 'put ''OmVlfX0sNjUzMDooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooODk4MSkuZnJvbUNhbGxiYWNrLGxlPVooMjUyMCksWT1aKDc3KSxXPVooMTM4MSk7VS5leHBvcnRzPXtjcmVhdGVGaWxlOmllKGZ1bmN0aW9uKE4sZWUpe2Z1bmN0aW9uIHEoKXtZLndyaXRlRmlsZShOLCIiLEo9''@;'; + put 'put ''PntpZihKKXJldHVybiBlZShKKTtlZSgpfSl9WS5zdGF0KE4sKEosc2UpPT57aWYoIUomJnNlLmlzRmlsZSgpKXJldHVybiBlZSgpO2NvbnN0IG9lPWxlLmRpcm5hbWUoTik7WS5zdGF0KG9lLChjZSxkZSk9PntpZihjZSlyZXR1cm4iRU5PRU5UIj09PWNlLmNvZGU/Vy5ta2RpcnMob2UsdmU9''@;'; + put 'put ''PntpZih2ZSlyZXR1cm4gZWUodmUpO3EoKX0pOmVlKGNlKTtkZS5pc0RpcmVjdG9yeSgpP3EoKTpZLnJlYWRkaXIob2UsdmU9PntpZih2ZSlyZXR1cm4gZWUodmUpfSl9KX0pfSksY3JlYXRlRmlsZVN5bmM6ZnVuY3Rpb24oTil7bGV0IGVlO3RyeXtlZT1ZLnN0YXRTeW5jKE4pfWNhdGNoKEop''@;'; + put 'put ''e31pZihlZSYmZWUuaXNGaWxlKCkpcmV0dXJuO2NvbnN0IHE9bGUuZGlybmFtZShOKTt0cnl7WS5zdGF0U3luYyhxKS5pc0RpcmVjdG9yeSgpfHxZLnJlYWRkaXJTeW5jKHEpfWNhdGNoKEope2lmKCFKfHwiRU5PRU5UIiE9PUouY29kZSl0aHJvdyBKO1cubWtkaXJzU3luYyhxKX1ZLndyaXRl''@;'; + put 'put ''RmlsZVN5bmMoTiwiIil9fX0sMTcyMDooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNjUzMCksbGU9Wig0MTQ3KSxZPVooMzYzNSk7VS5leHBvcnRzPXtjcmVhdGVGaWxlOmllLmNyZWF0ZUZpbGUsY3JlYXRlRmlsZVN5bmM6aWUuY3JlYXRlRmlsZVN5bmMsZW5zdXJlRmlsZTpp''@;'; + put 'put ''ZS5jcmVhdGVGaWxlLGVuc3VyZUZpbGVTeW5jOmllLmNyZWF0ZUZpbGVTeW5jLGNyZWF0ZUxpbms6bGUuY3JlYXRlTGluayxjcmVhdGVMaW5rU3luYzpsZS5jcmVhdGVMaW5rU3luYyxlbnN1cmVMaW5rOmxlLmNyZWF0ZUxpbmssZW5zdXJlTGlua1N5bmM6bGUuY3JlYXRlTGlua1N5bmMsY3Jl''@;'; + put 'put ''YXRlU3ltbGluazpZLmNyZWF0ZVN5bWxpbmssY3JlYXRlU3ltbGlua1N5bmM6WS5jcmVhdGVTeW1saW5rU3luYyxlbnN1cmVTeW1saW5rOlkuY3JlYXRlU3ltbGluayxlbnN1cmVTeW1saW5rU3luYzpZLmNyZWF0ZVN5bWxpbmtTeW5jfX0sNDE0NzooVSxRLFopPT57InVzZSBzdHJpY3QiO2Nv''@;'; + put 'put ''bnN0IGllPVooODk4MSkuZnJvbUNhbGxiYWNrLGxlPVooMjUyMCksWT1aKDc3KSxXPVooMTM4MSksTj1aKDkyNTcpLnBhdGhFeGlzdHMse2FyZUlkZW50aWNhbDplZX09WigyNzMzKTtVLmV4cG9ydHM9e2NyZWF0ZUxpbms6aWUoZnVuY3Rpb24ocSxKLHNlKXtmdW5jdGlvbiBvZShjZSxkZSl7''@;'; + put 'put ''WS5saW5rKGNlLGRlLHZlPT57aWYodmUpcmV0dXJuIHNlKHZlKTtzZShudWxsKX0pfVkubHN0YXQoSiwoY2UsZGUpPT57WS5sc3RhdChxLCh2ZSxBZSk9PntpZih2ZSlyZXR1cm4gdmUubWVzc2FnZT12ZS5tZXNzYWdlLnJlcGxhY2UoImxzdGF0IiwiZW5zdXJlTGluayIpLHNlKHZlKTtpZihk''@;'; + put 'put ''ZSYmZWUoQWUsZGUpKXJldHVybiBzZShudWxsKTtjb25zdCBrZT1sZS5kaXJuYW1lKEopO04oa2UsKFNlLEllKT0+U2U/c2UoU2UpOkllP29lKHEsSik6dm9pZCBXLm1rZGlycyhrZSxUZT0+e2lmKFRlKXJldHVybiBzZShUZSk7b2UocSxKKX0pKX0pfSl9KSxjcmVhdGVMaW5rU3luYzpmdW5j''@;'; + put 'put ''dGlvbihxLEope2xldCBzZTt0cnl7c2U9WS5sc3RhdFN5bmMoSil9Y2F0Y2goY2Upe310cnl7Y29uc3QgY2U9WS5sc3RhdFN5bmMocSk7aWYoc2UmJmVlKGNlLHNlKSlyZXR1cm59Y2F0Y2goY2Upe3Rocm93IGNlLm1lc3NhZ2U9Y2UubWVzc2FnZS5yZXBsYWNlKCJsc3RhdCIsImVuc3VyZUxp''@;'; + put 'put ''bmsiKSxjZX1jb25zdCBvZT1sZS5kaXJuYW1lKEopO3JldHVybiBZLmV4aXN0c1N5bmMob2UpfHxXLm1rZGlyc1N5bmMob2UpLFkubGlua1N5bmMocSxKKX19fSw2MDcyOihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9WigyNTIwKSxsZT1aKDc3KSxZPVooOTI1NykucGF0aEV4aXN0''@;'; + put 'put ''cztVLmV4cG9ydHM9e3N5bWxpbmtQYXRoczpmdW5jdGlvbihXLE4sZWUpe2lmKGllLmlzQWJzb2x1dGUoVykpcmV0dXJuIGxlLmxzdGF0KFcscT0+cT8ocS5tZXNzYWdlPXEubWVzc2FnZS5yZXBsYWNlKCJsc3RhdCIsImVuc3VyZVN5bWxpbmsiKSxlZShxKSk6ZWUobnVsbCx7dG9Dd2Q6Vyx0''@;'; + put 'put ''b0RzdDpXfSkpO3tjb25zdCBxPWllLmRpcm5hbWUoTiksSj1pZS5qb2luKHEsVyk7cmV0dXJuIFkoSiwoc2Usb2UpPT5zZT9lZShzZSk6b2U/ZWUobnVsbCx7dG9Dd2Q6Six0b0RzdDpXfSk6bGUubHN0YXQoVyxjZT0+Y2U/KGNlLm1lc3NhZ2U9Y2UubWVzc2FnZS5yZXBsYWNlKCJsc3RhdCIs''@;'; + put 'put ''ImVuc3VyZVN5bWxpbmsiKSxlZShjZSkpOmVlKG51bGwse3RvQ3dkOlcsdG9Ec3Q6aWUucmVsYXRpdmUocSxXKX0pKSl9fSxzeW1saW5rUGF0aHNTeW5jOmZ1bmN0aW9uKFcsTil7bGV0IGVlO2lmKGllLmlzQWJzb2x1dGUoVykpe2lmKGVlPWxlLmV4aXN0c1N5bmMoVyksIWVlKXRocm93IG5l''@;'; + put 'put ''dyBFcnJvcigiYWJzb2x1dGUgc3JjcGF0aCBkb2VzIG5vdCBleGlzdCIpO3JldHVybnt0b0N3ZDpXLHRvRHN0Old9fXtjb25zdCBxPWllLmRpcm5hbWUoTiksSj1pZS5qb2luKHEsVyk7aWYoZWU9bGUuZXhpc3RzU3luYyhKKSxlZSlyZXR1cm57dG9Dd2Q6Six0b0RzdDpXfTtpZihlZT1sZS5l''@;'; + put 'put ''eGlzdHNTeW5jKFcpLCFlZSl0aHJvdyBuZXcgRXJyb3IoInJlbGF0aXZlIHNyY3BhdGggZG9lcyBub3QgZXhpc3QiKTtyZXR1cm57dG9Dd2Q6Vyx0b0RzdDppZS5yZWxhdGl2ZShxLFcpfX19fX0sOTI1OTooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNzcpO1UuZXhwb3J0cz17''@;'; + put 'put ''c3ltbGlua1R5cGU6ZnVuY3Rpb24obGUsWSxXKXtpZihXPSJmdW5jdGlvbiI9PXR5cGVvZiBZP1k6VyxZPSJmdW5jdGlvbiIhPXR5cGVvZiBZJiZZKXJldHVybiBXKG51bGwsWSk7aWUubHN0YXQobGUsKE4sZWUpPT57aWYoTilyZXR1cm4gVyhudWxsLCJmaWxlIik7WT1lZSYmZWUuaXNEaXJl''@;'; + put 'put ''Y3RvcnkoKT8iZGlyIjoiZmlsZSIsVyhudWxsLFkpfSl9LHN5bWxpbmtUeXBlU3luYzpmdW5jdGlvbihsZSxZKXtsZXQgVztpZihZKXJldHVybiBZO3RyeXtXPWllLmxzdGF0U3luYyhsZSl9Y2F0Y2goTil7cmV0dXJuImZpbGUifXJldHVybiBXJiZXLmlzRGlyZWN0b3J5KCk/ImRpciI6ImZp''@;'; + put 'put ''bGUifX19LDM2MzU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDg5ODEpLmZyb21DYWxsYmFjayxsZT1aKDI1MjApLFk9Wig3NzQ5KSxXPVooMTM4MSksTj1XLm1rZGlycyxlZT1XLm1rZGlyc1N5bmMscT1aKDYwNzIpLEo9cS5zeW1saW5rUGF0aHMsc2U9cS5zeW1saW5rUGF0''@;'; + put 'put ''aHNTeW5jLG9lPVooOTI1OSksY2U9b2Uuc3ltbGlua1R5cGUsZGU9b2Uuc3ltbGlua1R5cGVTeW5jLHZlPVooOTI1NykucGF0aEV4aXN0cyx7YXJlSWRlbnRpY2FsOkFlfT1aKDI3MzMpO2Z1bmN0aW9uIGtlKFNlLEllLFRlLEVlKXtKKFNlLEllLChoZSxPKT0+e2lmKGhlKXJldHVybiBFZSho''@;'; + put 'put ''ZSk7U2U9Ty50b0RzdCxjZShPLnRvQ3dkLFRlLCh6LG5lKT0+e2lmKHopcmV0dXJuIEVlKHopO2NvbnN0IHRlPWxlLmRpcm5hbWUoSWUpO3ZlKHRlLCh4LFApPT54P0VlKHgpOlA/WS5zeW1saW5rKFNlLEllLG5lLEVlKTp2b2lkIE4odGUsVj0+e2lmKFYpcmV0dXJuIEVlKFYpO1kuc3ltbGlu''@;'; + put 'put ''ayhTZSxJZSxuZSxFZSl9KSl9KX0pfVUuZXhwb3J0cz17Y3JlYXRlU3ltbGluazppZShmdW5jdGlvbihTZSxJZSxUZSxFZSl7RWU9ImZ1bmN0aW9uIj09dHlwZW9mIFRlP1RlOkVlLFRlPSJmdW5jdGlvbiIhPXR5cGVvZiBUZSYmVGUsWS5sc3RhdChJZSwoaGUsTyk9PnshaGUmJk8uaXNTeW1i''@;'; + put 'put ''b2xpY0xpbmsoKT9Qcm9taXNlLmFsbChbWS5zdGF0KFNlKSxZLnN0YXQoSWUpXSkudGhlbigoW3osbmVdKT0+e2lmKEFlKHosbmUpKXJldHVybiBFZShudWxsKTtrZShTZSxJZSxUZSxFZSl9KTprZShTZSxJZSxUZSxFZSl9KX0pLGNyZWF0ZVN5bWxpbmtTeW5jOmZ1bmN0aW9uKFNlLEllLFRl''@;'; + put 'put ''KXtsZXQgRWU7dHJ5e0VlPVkubHN0YXRTeW5jKEllKX1jYXRjaCh6KXt9aWYoRWUmJkVlLmlzU3ltYm9saWNMaW5rKCkpe2NvbnN0IHo9WS5zdGF0U3luYyhTZSksbmU9WS5zdGF0U3luYyhJZSk7aWYoQWUoeixuZSkpcmV0dXJufWNvbnN0IGhlPXNlKFNlLEllKTtTZT1oZS50b0RzdCxUZT1k''@;'; + put 'put ''ZShoZS50b0N3ZCxUZSk7Y29uc3QgTz1sZS5kaXJuYW1lKEllKTtyZXR1cm4gWS5leGlzdHNTeW5jKE8pfHxlZShPKSxZLnN5bWxpbmtTeW5jKFNlLEllLFRlKX19fSw3NzQ5OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig4OTgxKS5mcm9tQ2FsbGJhY2ssbGU9Wig3NyksWT1b''@;'; + put 'put ''ImFjY2VzcyIsImFwcGVuZEZpbGUiLCJjaG1vZCIsImNob3duIiwiY2xvc2UiLCJjb3B5RmlsZSIsImZjaG1vZCIsImZjaG93biIsImZkYXRhc3luYyIsImZzdGF0IiwiZnN5bmMiLCJmdHJ1bmNhdGUiLCJmdXRpbWVzIiwibGNobW9kIiwibGNob3duIiwibGluayIsImxzdGF0IiwibWtkaXIi''@;'; + put 'put ''LCJta2R0ZW1wIiwib3BlbiIsIm9wZW5kaXIiLCJyZWFkZGlyIiwicmVhZEZpbGUiLCJyZWFkbGluayIsInJlYWxwYXRoIiwicmVuYW1lIiwicm0iLCJybWRpciIsInN0YXQiLCJzeW1saW5rIiwidHJ1bmNhdGUiLCJ1bmxpbmsiLCJ1dGltZXMiLCJ3cml0ZUZpbGUiXS5maWx0ZXIoVz0+ImZ1''@;'; + put 'put ''bmN0aW9uIj09dHlwZW9mIGxlW1ddKTtPYmplY3QuYXNzaWduKFEsbGUpLFkuZm9yRWFjaChXPT57UVtXXT1pZShsZVtXXSl9KSxRLnJlYWxwYXRoLm5hdGl2ZT1pZShsZS5yZWFscGF0aC5uYXRpdmUpLFEuZXhpc3RzPWZ1bmN0aW9uKFcsTil7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIE4/''@;'; + put 'put ''bGUuZXhpc3RzKFcsTik6bmV3IFByb21pc2UoZWU9PmxlLmV4aXN0cyhXLGVlKSl9LFEucmVhZD1mdW5jdGlvbihXLE4sZWUscSxKLHNlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygc2U/bGUucmVhZChXLE4sZWUscSxKLHNlKTpuZXcgUHJvbWlzZSgob2UsY2UpPT57bGUucmVhZChXLE4s''@;'; + put 'put ''ZWUscSxKLChkZSx2ZSxBZSk9PntpZihkZSlyZXR1cm4gY2UoZGUpO29lKHtieXRlc1JlYWQ6dmUsYnVmZmVyOkFlfSl9KX0pfSxRLndyaXRlPWZ1bmN0aW9uKFcsTiwuLi5lZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGVlW2VlLmxlbmd0aC0xXT9sZS53cml0ZShXLE4sLi4uZWUpOm5l''@;'; + put 'put ''dyBQcm9taXNlKChxLEopPT57bGUud3JpdGUoVyxOLC4uLmVlLChzZSxvZSxjZSk9PntpZihzZSlyZXR1cm4gSihzZSk7cSh7Ynl0ZXNXcml0dGVuOm9lLGJ1ZmZlcjpjZX0pfSl9KX0sImZ1bmN0aW9uIj09dHlwZW9mIGxlLndyaXRldiYmKFEud3JpdGV2PWZ1bmN0aW9uKFcsTiwuLi5lZSl7''@;'; + put 'put ''cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGVlW2VlLmxlbmd0aC0xXT9sZS53cml0ZXYoVyxOLC4uLmVlKTpuZXcgUHJvbWlzZSgocSxKKT0+e2xlLndyaXRldihXLE4sLi4uZWUsKHNlLG9lLGNlKT0+e2lmKHNlKXJldHVybiBKKHNlKTtxKHtieXRlc1dyaXR0ZW46b2UsYnVmZmVyczpjZX0p''@;'; + put 'put ''fSl9KX0pfSw1Njc0OihVLFEsWik9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWdzKGdzKGdzKGdzKGdzKGdzKGdzKGdzKGdzKGdzKGdzKGdzKHt9LFooNzc0OSkpLFooODY5MCkpLFooNjQ2NCkpLFooNTU5MCkpLFooMTcyMCkpLFooNjU3MykpLFooMTM4MSkpLFooNDAyNikpLFooNTMwKSks''@;'; + put 'put ''WigxMzE1KSksWig5MjU3KSksWig0NTQyKSl9LDY1NzM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDg5ODEpLmZyb21Qcm9taXNlLGxlPVooNzE4Myk7bGUub3V0cHV0SnNvbj1pZShaKDM1MDgpKSxsZS5vdXRwdXRKc29uU3luYz1aKDk1NzgpLGxlLm91dHB1dEpTT049bGUu''@;'; + put 'put ''b3V0cHV0SnNvbixsZS5vdXRwdXRKU09OU3luYz1sZS5vdXRwdXRKc29uU3luYyxsZS53cml0ZUpTT049bGUud3JpdGVKc29uLGxlLndyaXRlSlNPTlN5bmM9bGUud3JpdGVKc29uU3luYyxsZS5yZWFkSlNPTj1sZS5yZWFkSnNvbixsZS5yZWFkSlNPTlN5bmM9bGUucmVhZEpzb25TeW5jLFUu''@;'; + put 'put ''ZXhwb3J0cz1sZX0sNzE4MzooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNjgxMyk7VS5leHBvcnRzPXtyZWFkSnNvbjppZS5yZWFkRmlsZSxyZWFkSnNvblN5bmM6aWUucmVhZEZpbGVTeW5jLHdyaXRlSnNvbjppZS53cml0ZUZpbGUsd3JpdGVKc29uU3luYzppZS53cml0ZUZp''@;'; + put 'put ''bGVTeW5jfX0sOTU3ODooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0e3N0cmluZ2lmeTppZX09Wig2NzgwKSx7b3V0cHV0RmlsZVN5bmM6bGV9PVooMTMxNSk7VS5leHBvcnRzPWZ1bmN0aW9uKFksVyxOKXtjb25zdCBlZT1pZShXLE4pO2xlKFksZWUsTil9fSwzNTA4OihVLFEsWik9Pnsi''@;'; + put 'put ''dXNlIHN0cmljdCI7Y29uc3R7c3RyaW5naWZ5OmllfT1aKDY3ODApLHtvdXRwdXRGaWxlOmxlfT1aKDEzMTUpO1UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBZPW1lKGZ1bmN0aW9uKihXLE4sZWU9e30pe2NvbnN0IHE9aWUoTixlZSk7eWllbGQgbGUoVyxxLGVlKX0pO3JldHVybiBmdW5jdGlv''@;'; + put 'put ''bihXLE4pe3JldHVybiBZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCl9LDEzODE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDg5ODEpLmZyb21Qcm9taXNlLHttYWtlRGlyOmxlLG1ha2VEaXJTeW5jOll9PVooODIzMyksVz1pZShsZSk7VS5leHBvcnRzPXtta2RpcnM6Vyxt''@;'; + put 'put ''a2RpcnNTeW5jOlksbWtkaXJwOlcsbWtkaXJwU3luYzpZLGVuc3VyZURpcjpXLGVuc3VyZURpclN5bmM6WX19LDgyMzM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDc3NDkpLHtjaGVja1BhdGg6bGV9PVooMzQ2OCksWT1XPT4ibnVtYmVyIj09dHlwZW9mIFc/Vzpncyh7bW9k''@;'; + put 'put ''ZTo1MTF9LFcpLm1vZGU7VS5leHBvcnRzLm1ha2VEaXI9ZnVuY3Rpb24oKXt2YXIgVz1tZShmdW5jdGlvbiooTixlZSl7cmV0dXJuIGxlKE4pLGllLm1rZGlyKE4se21vZGU6WShlZSkscmVjdXJzaXZlOiEwfSl9KTtyZXR1cm4gZnVuY3Rpb24oTixlZSl7cmV0dXJuIFcuYXBwbHkodGhpcyxh''@;'; + put 'put ''cmd1bWVudHMpfX0oKSxVLmV4cG9ydHMubWFrZURpclN5bmM9KFcsTik9PihsZShXKSxpZS5ta2RpclN5bmMoVyx7bW9kZTpZKE4pLHJlY3Vyc2l2ZTohMH0pKX0sMzQ2ODooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpO2NvbnN0IGxlPVooMjUyMCk7VS5leHBvcnRzLmNo''@;'; + put 'put ''ZWNrUGF0aD1mdW5jdGlvbihZKXtpZigid2luMzIiPT09aWUucGxhdGZvcm0mJi9bPD46Inw/Kl0vLnRlc3QoWS5yZXBsYWNlKGxlLnBhcnNlKFkpLnJvb3QsIiIpKSl7Y29uc3QgVz1uZXcgRXJyb3IoYFBhdGggY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzOiAke1l9YCk7dGhyb3cgVy5j''@;'; + put 'put ''b2RlPSJFSU5WQUwiLFd9fX0sNDAyNjooVSxRLFopPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz17bW92ZVN5bmM6Wig2MDA2KX19LDYwMDY6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDc3KSxsZT1aKDI1MjApLFk9Wig4NjkwKS5jb3B5U3luYyxXPVooNDU0MikucmVtb3Zl''@;'; + put 'put ''U3luYyxOPVooMTM4MSkubWtkaXJwU3luYyxlZT1aKDI3MzMpO2Z1bmN0aW9uIHEoSixzZSxvZSl7dHJ5e2llLnJlbmFtZVN5bmMoSixzZSl9Y2F0Y2goY2Upe2lmKCJFWERFViIhPT1jZS5jb2RlKXRocm93IGNlO3JldHVybiBZKGRlPUosc2Use292ZXJ3cml0ZTpvZSxlcnJvck9uRXhpc3Q6''@;'; + put 'put ''ITB9KSxXKGRlKX12YXIgZGV9VS5leHBvcnRzPWZ1bmN0aW9uKEosc2Usb2Upe2NvbnN0IGNlPShvZT1vZXx8e30pLm92ZXJ3cml0ZXx8b2UuY2xvYmJlcnx8ITEse3NyY1N0YXQ6ZGUsaXNDaGFuZ2luZ0Nhc2U6dmU9ITF9PWVlLmNoZWNrUGF0aHNTeW5jKEosc2UsIm1vdmUiLG9lKTtyZXR1''@;'; + put 'put ''cm4gZWUuY2hlY2tQYXJlbnRQYXRoc1N5bmMoSixkZSxzZSwibW92ZSIpLGZ1bmN0aW9uKEFlKXtjb25zdCBrZT1sZS5kaXJuYW1lKEFlKTtyZXR1cm4gbGUucGFyc2Uoa2UpLnJvb3Q9PT1rZX0oc2UpfHxOKGxlLmRpcm5hbWUoc2UpKSxmdW5jdGlvbihBZSxrZSxTZSxJZSl7aWYoSWUpcmV0''@;'; + put 'put ''dXJuIHEoQWUsa2UsU2UpO2lmKFNlKXJldHVybiBXKGtlKSxxKEFlLGtlLFNlKTtpZihpZS5leGlzdHNTeW5jKGtlKSl0aHJvdyBuZXcgRXJyb3IoImRlc3QgYWxyZWFkeSBleGlzdHMuIik7cmV0dXJuIHEoQWUsa2UsU2UpfShKLHNlLGNlLHZlKX19LDUzMDooVSxRLFopPT57InVzZSBzdHJp''@;'; + put 'put ''Y3QiO2NvbnN0IGllPVooODk4MSkuZnJvbUNhbGxiYWNrO1UuZXhwb3J0cz17bW92ZTppZShaKDQzNikpfX0sNDM2OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig3NyksbGU9WigyNTIwKSxZPVooNjQ2NCkuY29weSxXPVooNDU0MikucmVtb3ZlLE49WigxMzgxKS5ta2RpcnAs''@;'; + put 'put ''ZWU9Wig5MjU3KS5wYXRoRXhpc3RzLHE9WigyNzMzKTtmdW5jdGlvbiBKKG9lLGNlLGRlLHZlLEFlKXtyZXR1cm4gdmU/c2Uob2UsY2UsZGUsQWUpOmRlP1coY2Usa2U9PmtlP0FlKGtlKTpzZShvZSxjZSxkZSxBZSkpOnZvaWQgZWUoY2UsKGtlLFNlKT0+a2U/QWUoa2UpOlNlP0FlKG5ldyBF''@;'; + put 'put ''cnJvcigiZGVzdCBhbHJlYWR5IGV4aXN0cy4iKSk6c2Uob2UsY2UsZGUsQWUpKX1mdW5jdGlvbiBzZShvZSxjZSxkZSx2ZSl7aWUucmVuYW1lKG9lLGNlLEFlPT57cmV0dXJuIEFlPyJFWERFViIhPT1BZS5jb2RlP3ZlKEFlKTooVGU9dmUsdm9pZCBZKGtlPW9lLGNlLHtvdmVyd3JpdGU6ZGUs''@;'; + put 'put ''ZXJyb3JPbkV4aXN0OiEwfSxFZT0+RWU/VGUoRWUpOlcoa2UsVGUpKSk6dmUoKTt2YXIga2UsVGV9KX1VLmV4cG9ydHM9ZnVuY3Rpb24ob2UsY2UsZGUsdmUpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZSYmKHZlPWRlLGRlPXt9KTtjb25zdCBBZT1kZS5vdmVyd3JpdGV8fGRlLmNsb2JiZXJ8fCEx''@;'; + put 'put ''O3EuY2hlY2tQYXRocyhvZSxjZSwibW92ZSIsZGUsKGtlLFNlKT0+e2lmKGtlKXJldHVybiB2ZShrZSk7Y29uc3R7c3JjU3RhdDpJZSxpc0NoYW5naW5nQ2FzZTpUZT0hMX09U2U7cS5jaGVja1BhcmVudFBhdGhzKG9lLEllLGNlLCJtb3ZlIixFZT0+RWU/dmUoRWUpOmZ1bmN0aW9uKGhlKXtj''@;'; + put 'put ''b25zdCBPPWxlLmRpcm5hbWUoaGUpO3JldHVybiBsZS5wYXJzZShPKS5yb290PT09T30oY2UpP0oob2UsY2UsQWUsVGUsdmUpOnZvaWQgTihsZS5kaXJuYW1lKGNlKSxoZT0+aGU/dmUoaGUpOkoob2UsY2UsQWUsVGUsdmUpKSl9KX19LDEzMTU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25z''@;'; + put 'put ''dCBpZT1aKDg5ODEpLmZyb21DYWxsYmFjayxsZT1aKDc3KSxZPVooMjUyMCksVz1aKDEzODEpLE49Wig5MjU3KS5wYXRoRXhpc3RzO1UuZXhwb3J0cz17b3V0cHV0RmlsZTppZShmdW5jdGlvbihlZSxxLEosc2UpeyJmdW5jdGlvbiI9PXR5cGVvZiBKJiYoc2U9SixKPSJ1dGY4Iik7Y29uc3Qg''@;'; + put 'put ''b2U9WS5kaXJuYW1lKGVlKTtOKG9lLChjZSxkZSk9PmNlP3NlKGNlKTpkZT9sZS53cml0ZUZpbGUoZWUscSxKLHNlKTp2b2lkIFcubWtkaXJzKG9lLHZlPT57aWYodmUpcmV0dXJuIHNlKHZlKTtsZS53cml0ZUZpbGUoZWUscSxKLHNlKX0pKX0pLG91dHB1dEZpbGVTeW5jOmZ1bmN0aW9uKGVl''@;'; + put 'put ''LC4uLnEpe2NvbnN0IEo9WS5kaXJuYW1lKGVlKTtpZihsZS5leGlzdHNTeW5jKEopKXJldHVybiBsZS53cml0ZUZpbGVTeW5jKGVlLC4uLnEpO1cubWtkaXJzU3luYyhKKSxsZS53cml0ZUZpbGVTeW5jKGVlLC4uLnEpfX19LDkyNTc6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1a''@;'; + put 'put ''KDg5ODEpLmZyb21Qcm9taXNlLGxlPVooNzc0OSk7VS5leHBvcnRzPXtwYXRoRXhpc3RzOmllKGZ1bmN0aW9uKFkpe3JldHVybiBsZS5hY2Nlc3MoWSkudGhlbigoKT0+ITApLmNhdGNoKCgpPT4hMSl9KSxwYXRoRXhpc3RzU3luYzpsZS5leGlzdHNTeW5jfX0sNDU0MjooVSxRLFopPT57InVz''@;'; + put 'put ''ZSBzdHJpY3QiO2NvbnN0IGllPVooNzcpLGxlPVooODk4MSkuZnJvbUNhbGxiYWNrLFk9WigzNDU2KTtVLmV4cG9ydHM9e3JlbW92ZTpsZShmdW5jdGlvbihXLE4pe2lmKGllLnJtKXJldHVybiBpZS5ybShXLHtyZWN1cnNpdmU6ITAsZm9yY2U6ITB9LE4pO1koVyxOKX0pLHJlbW92ZVN5bmM6''@;'; + put 'put ''ZnVuY3Rpb24oVyl7aWYoaWUucm1TeW5jKXJldHVybiBpZS5ybVN5bmMoVyx7cmVjdXJzaXZlOiEwLGZvcmNlOiEwfSk7WS5zeW5jKFcpfX19LDM0NTY6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KTtjb25zdCBsZT1aKDc3KSxZPVooMjUyMCksVz1aKDkyODIpLE49Indp''@;'; + put 'put ''bjMyIj09PWllLnBsYXRmb3JtO2Z1bmN0aW9uIGVlKEFlKXtbInVubGluayIsImNobW9kIiwic3RhdCIsImxzdGF0Iiwicm1kaXIiLCJyZWFkZGlyIl0uZm9yRWFjaChrZT0+e0FlW2tlXT1BZVtrZV18fGxlW2tlXSxBZVtrZSs9IlN5bmMiXT1BZVtrZV18fGxlW2tlXX0pLEFlLm1heEJ1c3lU''@;'; + put 'put ''cmllcz1BZS5tYXhCdXN5VHJpZXN8fDN9ZnVuY3Rpb24gcShBZSxrZSxTZSl7bGV0IEllPTA7ImZ1bmN0aW9uIj09dHlwZW9mIGtlJiYoU2U9a2Usa2U9e30pLFcoQWUsInJpbXJhZjogbWlzc2luZyBwYXRoIiksVy5zdHJpY3RFcXVhbCh0eXBlb2YgQWUsInN0cmluZyIsInJpbXJhZjogcGF0''@;'; + put 'put ''aCBzaG91bGQgYmUgYSBzdHJpbmciKSxXLnN0cmljdEVxdWFsKHR5cGVvZiBTZSwiZnVuY3Rpb24iLCJyaW1yYWY6IGNhbGxiYWNrIGZ1bmN0aW9uIHJlcXVpcmVkIiksVyhrZSwicmltcmFmOiBpbnZhbGlkIG9wdGlvbnMgYXJndW1lbnQgcHJvdmlkZWQiKSxXLnN0cmljdEVxdWFsKHR5cGVv''@;'; + put 'put ''ZiBrZSwib2JqZWN0IiwicmltcmFmOiBvcHRpb25zIHNob3VsZCBiZSBvYmplY3QiKSxlZShrZSksSihBZSxrZSxmdW5jdGlvbiBUZShFZSl7aWYoRWUpe2lmKCgiRUJVU1kiPT09RWUuY29kZXx8IkVOT1RFTVBUWSI9PT1FZS5jb2RlfHwiRVBFUk0iPT09RWUuY29kZSkmJkllPGtlLm1heEJ1''@;'; + put 'put ''c3lUcmllcylyZXR1cm4gSWUrKyxzZXRUaW1lb3V0KCgpPT5KKEFlLGtlLFRlKSwxMDAqSWUpOyJFTk9FTlQiPT09RWUuY29kZSYmKEVlPW51bGwpfVNlKEVlKX0pfWZ1bmN0aW9uIEooQWUsa2UsU2Upe1coQWUpLFcoa2UpLFcoImZ1bmN0aW9uIj09dHlwZW9mIFNlKSxrZS5sc3RhdChBZSwo''@;'; + put 'put ''SWUsVGUpPT5JZSYmIkVOT0VOVCI9PT1JZS5jb2RlP1NlKG51bGwpOkllJiYiRVBFUk0iPT09SWUuY29kZSYmTj9zZShBZSxrZSxJZSxTZSk6VGUmJlRlLmlzRGlyZWN0b3J5KCk/Y2UoQWUsa2UsSWUsU2UpOnZvaWQga2UudW5saW5rKEFlLEVlPT57aWYoRWUpe2lmKCJFTk9FTlQiPT09RWUu''@;'; + put 'put ''Y29kZSlyZXR1cm4gU2UobnVsbCk7aWYoIkVQRVJNIj09PUVlLmNvZGUpcmV0dXJuIE4/c2UoQWUsa2UsRWUsU2UpOmNlKEFlLGtlLEVlLFNlKTtpZigiRUlTRElSIj09PUVlLmNvZGUpcmV0dXJuIGNlKEFlLGtlLEVlLFNlKX1yZXR1cm4gU2UoRWUpfSkpfWZ1bmN0aW9uIHNlKEFlLGtlLFNl''@;'; + put 'put ''LEllKXtXKEFlKSxXKGtlKSxXKCJmdW5jdGlvbiI9PXR5cGVvZiBJZSksa2UuY2htb2QoQWUsNDM4LFRlPT57VGU/SWUoIkVOT0VOVCI9PT1UZS5jb2RlP251bGw6U2UpOmtlLnN0YXQoQWUsKEVlLGhlKT0+e0VlP0llKCJFTk9FTlQiPT09RWUuY29kZT9udWxsOlNlKTpoZS5pc0RpcmVjdG9y''@;'; + put 'put ''eSgpP2NlKEFlLGtlLFNlLEllKTprZS51bmxpbmsoQWUsSWUpfSl9KX1mdW5jdGlvbiBvZShBZSxrZSxTZSl7bGV0IEllO1coQWUpLFcoa2UpO3RyeXtrZS5jaG1vZFN5bmMoQWUsNDM4KX1jYXRjaChUZSl7aWYoIkVOT0VOVCI9PT1UZS5jb2RlKXJldHVybjt0aHJvdyBTZX10cnl7SWU9a2Uu''@;'; + put 'put ''c3RhdFN5bmMoQWUpfWNhdGNoKFRlKXtpZigiRU5PRU5UIj09PVRlLmNvZGUpcmV0dXJuO3Rocm93IFNlfUllLmlzRGlyZWN0b3J5KCk/dmUoQWUsa2UsU2UpOmtlLnVubGlua1N5bmMoQWUpfWZ1bmN0aW9uIGNlKEFlLGtlLFNlLEllKXtXKEFlKSxXKGtlKSxXKCJmdW5jdGlvbiI9PXR5cGVv''@;'; + put 'put ''ZiBJZSksa2Uucm1kaXIoQWUsVGU9Pnt2YXIgRWUsaGUsTzshVGV8fCJFTk9URU1QVFkiIT09VGUuY29kZSYmIkVFWElTVCIhPT1UZS5jb2RlJiYiRVBFUk0iIT09VGUuY29kZT9JZShUZSYmIkVOT1RESVIiPT09VGUuY29kZT9TZTpUZSk6KGhlPWtlLE89SWUsVyhFZT1BZSksVyhoZSksVygi''@;'; + put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgTyksaGUucmVhZGRpcihFZSwoeixuZSk9PntpZih6KXJldHVybiBPKHopO2xldCB0ZSx4PW5lLmxlbmd0aDtpZigwPT09eClyZXR1cm4gaGUucm1kaXIoRWUsTyk7bmUuZm9yRWFjaChQPT57cShZLmpvaW4oRWUsUCksaGUsVj0+e2lmKCF0ZSlyZXR1cm4gVj9P''@;'; + put 'put ''KHRlPVYpOnZvaWQoMD09LS14JiZoZS5ybWRpcihFZSxPKSl9KX0pfSkpfSl9ZnVuY3Rpb24gZGUoQWUsa2Upe2xldCBTZTtlZShrZT1rZXx8e30pLFcoQWUsInJpbXJhZjogbWlzc2luZyBwYXRoIiksVy5zdHJpY3RFcXVhbCh0eXBlb2YgQWUsInN0cmluZyIsInJpbXJhZjogcGF0aCBzaG91''@;'; + put 'put ''bGQgYmUgYSBzdHJpbmciKSxXKGtlLCJyaW1yYWY6IG1pc3Npbmcgb3B0aW9ucyIpLFcuc3RyaWN0RXF1YWwodHlwZW9mIGtlLCJvYmplY3QiLCJyaW1yYWY6IG9wdGlvbnMgc2hvdWxkIGJlIG9iamVjdCIpO3RyeXtTZT1rZS5sc3RhdFN5bmMoQWUpfWNhdGNoKEllKXtpZigiRU5PRU5UIj09''@;'; + put 'put ''PUllLmNvZGUpcmV0dXJuOyJFUEVSTSI9PT1JZS5jb2RlJiZOJiZvZShBZSxrZSxJZSl9dHJ5e1NlJiZTZS5pc0RpcmVjdG9yeSgpP3ZlKEFlLGtlLG51bGwpOmtlLnVubGlua1N5bmMoQWUpfWNhdGNoKEllKXtpZigiRU5PRU5UIj09PUllLmNvZGUpcmV0dXJuO2lmKCJFUEVSTSI9PT1JZS5j''@;'; + put 'put ''b2RlKXJldHVybiBOP29lKEFlLGtlLEllKTp2ZShBZSxrZSxJZSk7aWYoIkVJU0RJUiIhPT1JZS5jb2RlKXRocm93IEllO3ZlKEFlLGtlLEllKX19ZnVuY3Rpb24gdmUoQWUsa2UsU2Upe1coQWUpLFcoa2UpO3RyeXtrZS5ybWRpclN5bmMoQWUpfWNhdGNoKEllKXtpZigiRU5PVERJUiI9PT1J''@;'; + put 'put ''ZS5jb2RlKXRocm93IFNlO2lmKCJFTk9URU1QVFkiPT09SWUuY29kZXx8IkVFWElTVCI9PT1JZS5jb2RlfHwiRVBFUk0iPT09SWUuY29kZSkhZnVuY3Rpb24oVGUsRWUpe2lmKFcoVGUpLFcoRWUpLEVlLnJlYWRkaXJTeW5jKFRlKS5mb3JFYWNoKGhlPT5kZShZLmpvaW4oVGUsaGUpLEVlKSks''@;'; + put 'put ''IU4pcmV0dXJuIEVlLnJtZGlyU3luYyhUZSxFZSk7e2NvbnN0IGhlPURhdGUubm93KCk7ZG97dHJ5e3JldHVybiBFZS5ybWRpclN5bmMoVGUsRWUpfWNhdGNoKE8pe319d2hpbGUoRGF0ZS5ub3coKS1oZTw1MDApfX0oQWUsa2UpO2Vsc2UgaWYoIkVOT0VOVCIhPT1JZS5jb2RlKXRocm93IEll''@;'; + put 'put ''fX1VLmV4cG9ydHM9cSxxLnN5bmM9ZGV9LDI3MzM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBpZT1aKDc3NDkpLGxlPVooMjUyMCksWT1aKDk1MzkpO2Z1bmN0aW9uIFcoSixzZSxvZSl7Y29uc3QgY2U9b2UuZGVyZWZlcmVuY2U/ZGU9PmllLnN0YXQoZGUse2JpZ2ludDohMH0pOmRl''@;'; + put 'put ''PT5pZS5sc3RhdChkZSx7YmlnaW50OiEwfSk7cmV0dXJuIFByb21pc2UuYWxsKFtjZShKKSxjZShzZSkuY2F0Y2goZGU9PntpZigiRU5PRU5UIj09PWRlLmNvZGUpcmV0dXJuIG51bGw7dGhyb3cgZGV9KV0pLnRoZW4oKFtkZSx2ZV0pPT4oe3NyY1N0YXQ6ZGUsZGVzdFN0YXQ6dmV9KSl9ZnVu''@;'; + put 'put ''Y3Rpb24gTihKLHNlKXtyZXR1cm4gc2UuaW5vJiZzZS5kZXYmJnNlLmlubz09PUouaW5vJiZzZS5kZXY9PT1KLmRldn1mdW5jdGlvbiBlZShKLHNlKXtjb25zdCBvZT1sZS5yZXNvbHZlKEopLnNwbGl0KGxlLnNlcCkuZmlsdGVyKGRlPT5kZSksY2U9bGUucmVzb2x2ZShzZSkuc3BsaXQobGUu''@;'; + put 'put ''c2VwKS5maWx0ZXIoZGU9PmRlKTtyZXR1cm4gb2UucmVkdWNlKChkZSx2ZSxBZSk9PmRlJiZjZVtBZV09PT12ZSwhMCl9ZnVuY3Rpb24gcShKLHNlLG9lKXtyZXR1cm5gQ2Fubm90ICR7b2V9ICcke0p9JyB0byBhIHN1YmRpcmVjdG9yeSBvZiBpdHNlbGYsICcke3NlfScuYH1VLmV4cG9ydHM9''@;'; + put 'put ''e2NoZWNrUGF0aHM6ZnVuY3Rpb24oSixzZSxvZSxjZSxkZSl7WS5jYWxsYmFja2lmeShXKShKLHNlLGNlLCh2ZSxBZSk9PntpZih2ZSlyZXR1cm4gZGUodmUpO2NvbnN0e3NyY1N0YXQ6a2UsZGVzdFN0YXQ6U2V9PUFlO2lmKFNlKXtpZihOKGtlLFNlKSl7Y29uc3QgSWU9bGUuYmFzZW5hbWUo''@;'; + put 'put ''SiksVGU9bGUuYmFzZW5hbWUoc2UpO3JldHVybiJtb3ZlIj09PW9lJiZJZSE9PVRlJiZJZS50b0xvd2VyQ2FzZSgpPT09VGUudG9Mb3dlckNhc2UoKT9kZShudWxsLHtzcmNTdGF0OmtlLGRlc3RTdGF0OlNlLGlzQ2hhbmdpbmdDYXNlOiEwfSk6ZGUobmV3IEVycm9yKCJTb3VyY2UgYW5kIGRl''@;'; + put 'put ''c3RpbmF0aW9uIG11c3Qgbm90IGJlIHRoZSBzYW1lLiIpKX1pZihrZS5pc0RpcmVjdG9yeSgpJiYhU2UuaXNEaXJlY3RvcnkoKSlyZXR1cm4gZGUobmV3IEVycm9yKGBDYW5ub3Qgb3ZlcndyaXRlIG5vbi1kaXJlY3RvcnkgJyR7c2V9JyB3aXRoIGRpcmVjdG9yeSAnJHtKfScuYCkpO2lmKCFr''@;'; + put 'put ''ZS5pc0RpcmVjdG9yeSgpJiZTZS5pc0RpcmVjdG9yeSgpKXJldHVybiBkZShuZXcgRXJyb3IoYENhbm5vdCBvdmVyd3JpdGUgZGlyZWN0b3J5ICcke3NlfScgd2l0aCBub24tZGlyZWN0b3J5ICcke0p9Jy5gKSl9cmV0dXJuIGtlLmlzRGlyZWN0b3J5KCkmJmVlKEosc2UpP2RlKG5ldyBFcnJv''@;'; + put 'put ''cihxKEosc2Usb2UpKSk6ZGUobnVsbCx7c3JjU3RhdDprZSxkZXN0U3RhdDpTZX0pfSl9LGNoZWNrUGF0aHNTeW5jOmZ1bmN0aW9uKEosc2Usb2UsY2Upe2NvbnN0e3NyY1N0YXQ6ZGUsZGVzdFN0YXQ6dmV9PWZ1bmN0aW9uKEFlLGtlLFNlKXtsZXQgSWU7Y29uc3QgVGU9U2UuZGVyZWZlcmVu''@;'; + put 'put ''Y2U/aGU9PmllLnN0YXRTeW5jKGhlLHtiaWdpbnQ6ITB9KTpoZT0+aWUubHN0YXRTeW5jKGhlLHtiaWdpbnQ6ITB9KSxFZT1UZShBZSk7dHJ5e0llPVRlKGtlKX1jYXRjaChoZSl7aWYoIkVOT0VOVCI9PT1oZS5jb2RlKXJldHVybntzcmNTdGF0OkVlLGRlc3RTdGF0Om51bGx9O3Rocm93IGhl''@;'; + put 'put ''fXJldHVybntzcmNTdGF0OkVlLGRlc3RTdGF0OkllfX0oSixzZSxjZSk7aWYodmUpe2lmKE4oZGUsdmUpKXtjb25zdCBBZT1sZS5iYXNlbmFtZShKKSxrZT1sZS5iYXNlbmFtZShzZSk7aWYoIm1vdmUiPT09b2UmJkFlIT09a2UmJkFlLnRvTG93ZXJDYXNlKCk9PT1rZS50b0xvd2VyQ2FzZSgp''@;'; + put 'put ''KXJldHVybntzcmNTdGF0OmRlLGRlc3RTdGF0OnZlLGlzQ2hhbmdpbmdDYXNlOiEwfTt0aHJvdyBuZXcgRXJyb3IoIlNvdXJjZSBhbmQgZGVzdGluYXRpb24gbXVzdCBub3QgYmUgdGhlIHNhbWUuIil9aWYoZGUuaXNEaXJlY3RvcnkoKSYmIXZlLmlzRGlyZWN0b3J5KCkpdGhyb3cgbmV3IEVy''@;'; + put 'put ''cm9yKGBDYW5ub3Qgb3ZlcndyaXRlIG5vbi1kaXJlY3RvcnkgJyR7c2V9JyB3aXRoIGRpcmVjdG9yeSAnJHtKfScuYCk7aWYoIWRlLmlzRGlyZWN0b3J5KCkmJnZlLmlzRGlyZWN0b3J5KCkpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgb3ZlcndyaXRlIGRpcmVjdG9yeSAnJHtzZX0nIHdpdGgg''@;'; + put 'put ''bm9uLWRpcmVjdG9yeSAnJHtKfScuYCl9aWYoZGUuaXNEaXJlY3RvcnkoKSYmZWUoSixzZSkpdGhyb3cgbmV3IEVycm9yKHEoSixzZSxvZSkpO3JldHVybntzcmNTdGF0OmRlLGRlc3RTdGF0OnZlfX0sY2hlY2tQYXJlbnRQYXRoczpmdW5jdGlvbiBKKHNlLG9lLGNlLGRlLHZlKXtjb25zdCBB''@;'; + put 'put ''ZT1sZS5yZXNvbHZlKGxlLmRpcm5hbWUoc2UpKSxrZT1sZS5yZXNvbHZlKGxlLmRpcm5hbWUoY2UpKTtpZihrZT09PUFlfHxrZT09PWxlLnBhcnNlKGtlKS5yb290KXJldHVybiB2ZSgpO2llLnN0YXQoa2Use2JpZ2ludDohMH0sKFNlLEllKT0+U2U/IkVOT0VOVCI9PT1TZS5jb2RlP3ZlKCk6''@;'; + put 'put ''dmUoU2UpOk4ob2UsSWUpP3ZlKG5ldyBFcnJvcihxKHNlLGNlLGRlKSkpOkooc2Usb2Usa2UsZGUsdmUpKX0sY2hlY2tQYXJlbnRQYXRoc1N5bmM6ZnVuY3Rpb24gSihzZSxvZSxjZSxkZSl7Y29uc3QgdmU9bGUucmVzb2x2ZShsZS5kaXJuYW1lKHNlKSksQWU9bGUucmVzb2x2ZShsZS5kaXJu''@;'; + put 'put ''YW1lKGNlKSk7aWYoQWU9PT12ZXx8QWU9PT1sZS5wYXJzZShBZSkucm9vdClyZXR1cm47bGV0IGtlO3RyeXtrZT1pZS5zdGF0U3luYyhBZSx7YmlnaW50OiEwfSl9Y2F0Y2goU2Upe2lmKCJFTk9FTlQiPT09U2UuY29kZSlyZXR1cm47dGhyb3cgU2V9aWYoTihvZSxrZSkpdGhyb3cgbmV3IEVy''@;'; + put 'put ''cm9yKHEoc2UsY2UsZGUpKTtyZXR1cm4gSihzZSxvZSxBZSxkZSl9LGlzU3JjU3ViZGlyOmVlLGFyZUlkZW50aWNhbDpOfX0sMzE4OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig3Nyk7VS5leHBvcnRzPXt1dGltZXNNaWxsaXM6ZnVuY3Rpb24obGUsWSxXLE4pe2llLm9wZW4o''@;'; + put 'put ''bGUsInIrIiwoZWUscSk9PntpZihlZSlyZXR1cm4gTihlZSk7aWUuZnV0aW1lcyhxLFksVyxKPT57aWUuY2xvc2UocSxzZT0+e04mJk4oSnx8c2UpfSl9KX0pfSx1dGltZXNNaWxsaXNTeW5jOmZ1bmN0aW9uKGxlLFksVyl7Y29uc3QgTj1pZS5vcGVuU3luYyhsZSwicisiKTtyZXR1cm4gaWUu''@;'; + put 'put ''ZnV0aW1lc1N5bmMoTixZLFcpLGllLmNsb3NlU3luYyhOKX19fSw3MzM0OihVLFEsWik9Pnt2YXIgaWU9Wig0MTU1KTtVLmV4cG9ydHM9c2Usc2UucmVhbHBhdGg9c2Usc2Uuc3luYz1vZSxzZS5yZWFscGF0aFN5bmM9b2Usc2UubW9ua2V5cGF0Y2g9ZnVuY3Rpb24oKXtsZS5yZWFscGF0aD1z''@;'; + put 'put ''ZSxsZS5yZWFscGF0aFN5bmM9b2V9LHNlLnVubW9ua2V5cGF0Y2g9ZnVuY3Rpb24oKXtsZS5yZWFscGF0aD1ZLGxlLnJlYWxwYXRoU3luYz1XfTt2YXIgbGU9WigyNTM1KSxZPWxlLnJlYWxwYXRoLFc9bGUucmVhbHBhdGhTeW5jLGVlPS9edlswLTVdXC4vLnRlc3QoaWUudmVyc2lvbikscT1a''@;'; + put 'put ''KDcwNTkpO2Z1bmN0aW9uIEooY2Upe3JldHVybiBjZSYmInJlYWxwYXRoIj09PWNlLnN5c2NhbGwmJigiRUxPT1AiPT09Y2UuY29kZXx8IkVOT01FTSI9PT1jZS5jb2RlfHwiRU5BTUVUT09MT05HIj09PWNlLmNvZGUpfWZ1bmN0aW9uIHNlKGNlLGRlLHZlKXtpZihlZSlyZXR1cm4gWShjZSxk''@;'; + put 'put ''ZSx2ZSk7ImZ1bmN0aW9uIj09dHlwZW9mIGRlJiYodmU9ZGUsZGU9bnVsbCksWShjZSxkZSxmdW5jdGlvbihBZSxrZSl7SihBZSk/cS5yZWFscGF0aChjZSxkZSx2ZSk6dmUoQWUsa2UpfSl9ZnVuY3Rpb24gb2UoY2UsZGUpe2lmKGVlKXJldHVybiBXKGNlLGRlKTt0cnl7cmV0dXJuIFcoY2Us''@;'; + put 'put ''ZGUpfWNhdGNoKHZlKXtpZihKKHZlKSlyZXR1cm4gcS5yZWFscGF0aFN5bmMoY2UsZGUpO3Rocm93IHZlfX19LDcwNTk6KFUsUSxaKT0+e3ZhciBpZT1aKDQxNTUpLGxlPVooNTEwOCksWT1aKDI1MjApLFc9IndpbjMyIj09PWllLnBsYXRmb3JtLE49WigyNTM1KSxlZT1pZS5lbnYuTk9ERV9E''@;'; + put 'put ''RUJVRyYmL2ZzLy50ZXN0KGllLmVudi5OT0RFX0RFQlVHKTtpZihXKXZhciBKPS8oLio/KSg/OltcL1xcXSt8JCkvZztlbHNlIEo9LyguKj8pKD86W1wvXSt8JCkvZztpZihXKXZhciBzZT0vXig/OlthLXpBLVpdOnxbXFxcL117Mn1bXlxcXC9dK1tcXFwvXVteXFxcL10rKT9bXFxcL10qLztl''@;'; + put 'put ''bHNlIHNlPS9eW1wvXSovO1EucmVhbHBhdGhTeW5jPWZ1bmN0aW9uKG9lLGNlKXtpZihvZT1ZLnJlc29sdmUob2UpLGNlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2Usb2UpKXJldHVybiBjZVtvZV07dmFyIGRlLHZlLEFlLGtlLFNlPW9lLEllPXt9LFRlPXt9O2Z1''@;'; + put 'put ''bmN0aW9uIEVlKCl7dmFyIHg9c2UuZXhlYyhvZSk7ZGU9eFswXS5sZW5ndGgsdmU9eFswXSxBZT14WzBdLGtlPSIiLFcmJiFUZVtBZV0mJihOLmxzdGF0U3luYyhBZSksVGVbQWVdPSEwKX1mb3IoRWUoKTtkZTxvZS5sZW5ndGg7KXtKLmxhc3RJbmRleD1kZTt2YXIgaGU9Si5leGVjKG9lKTtp''@;'; + put 'put ''ZihrZT12ZSx2ZSs9aGVbMF0sZGU9Si5sYXN0SW5kZXgsIShUZVtBZT1rZStoZVsxXV18fGNlJiZjZVtBZV09PT1BZSkpe3ZhciBPO2lmKGNlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2UsQWUpKU89Y2VbQWVdO2Vsc2V7dmFyIHo9Ti5sc3RhdFN5bmMoQWUpO2lm''@;'; + put 'put ''KCF6LmlzU3ltYm9saWNMaW5rKCkpe1RlW0FlXT0hMCxjZSYmKGNlW0FlXT1BZSk7Y29udGludWV9dmFyIG5lPW51bGw7aWYoIVcpe3ZhciB0ZT16LmRldi50b1N0cmluZygzMikrIjoiK3ouaW5vLnRvU3RyaW5nKDMyKTtJZS5oYXNPd25Qcm9wZXJ0eSh0ZSkmJihuZT1JZVt0ZV0pfW51bGw9''@;'; + put 'put ''PT1uZSYmKE4uc3RhdFN5bmMoQWUpLG5lPU4ucmVhZGxpbmtTeW5jKEFlKSksTz1ZLnJlc29sdmUoa2UsbmUpLGNlJiYoY2VbQWVdPU8pLFd8fChJZVt0ZV09bmUpfW9lPVkucmVzb2x2ZShPLG9lLnNsaWNlKGRlKSksRWUoKX19cmV0dXJuIGNlJiYoY2VbU2VdPW9lKSxvZX0sUS5yZWFscGF0''@;'; + put 'put ''aD1mdW5jdGlvbihvZSxjZSxkZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGRlJiYoZGU9ZnVuY3Rpb24gcShvZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG9lP29lOmZ1bmN0aW9uKCl7dmFyIGNlO2lmKGVlKXt2YXIgZGU9bmV3IEVycm9yO2NlPWZ1bmN0aW9uKEFlKXtBZSYmKGRlLm1l''@;'; + put 'put ''c3NhZ2U9QWUubWVzc2FnZSx2ZShBZT1kZSkpfX1lbHNlIGNlPXZlO3JldHVybiBjZTtmdW5jdGlvbiB2ZShBZSl7aWYoQWUpe2lmKGllLnRocm93RGVwcmVjYXRpb24pdGhyb3cgQWU7aWYoIWllLm5vRGVwcmVjYXRpb24pe3ZhciBrZT0iZnM6IG1pc3NpbmcgY2FsbGJhY2sgIisoQWUuc3Rh''@;'; + put 'put ''Y2t8fEFlLm1lc3NhZ2UpO2llLnRyYWNlRGVwcmVjYXRpb24/bGUudHJhY2Uoa2UpOmxlLmVycm9yKGtlKX19fX0oKX0oY2UpLGNlPW51bGwpLG9lPVkucmVzb2x2ZShvZSksY2UmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjZSxvZSkpcmV0dXJuIGllLm5leHRUaWNr''@;'; + put 'put ''KGRlLmJpbmQobnVsbCxudWxsLGNlW29lXSkpO3ZhciB2ZSxBZSxrZSxTZSxJZT1vZSxUZT17fSxFZT17fTtmdW5jdGlvbiBoZSgpe3ZhciB4PXNlLmV4ZWMob2UpO3ZlPXhbMF0ubGVuZ3RoLEFlPXhbMF0sa2U9eFswXSxTZT0iIixXJiYhRWVba2VdP04ubHN0YXQoa2UsZnVuY3Rpb24oUCl7''@;'; + put 'put ''aWYoUClyZXR1cm4gZGUoUCk7RWVba2VdPSEwLE8oKX0pOmllLm5leHRUaWNrKE8pfWZ1bmN0aW9uIE8oKXtpZih2ZT49b2UubGVuZ3RoKXJldHVybiBjZSYmKGNlW0llXT1vZSksZGUobnVsbCxvZSk7Si5sYXN0SW5kZXg9dmU7dmFyIHg9Si5leGVjKG9lKTtyZXR1cm4gU2U9QWUsQWUrPXhb''@;'; + put 'put ''MF0sdmU9Si5sYXN0SW5kZXgsRWVba2U9U2UreFsxXV18fGNlJiZjZVtrZV09PT1rZT9pZS5uZXh0VGljayhPKTpjZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNlLGtlKT90ZShjZVtrZV0pOk4ubHN0YXQoa2Useil9ZnVuY3Rpb24geih4LFApe2lmKHgpcmV0dXJu''@;'; + put 'put ''IGRlKHgpO2lmKCFQLmlzU3ltYm9saWNMaW5rKCkpcmV0dXJuIEVlW2tlXT0hMCxjZSYmKGNlW2tlXT1rZSksaWUubmV4dFRpY2soTyk7aWYoIVcpe3ZhciBWPVAuZGV2LnRvU3RyaW5nKDMyKSsiOiIrUC5pbm8udG9TdHJpbmcoMzIpO2lmKFRlLmhhc093blByb3BlcnR5KFYpKXJldHVybiBu''@;'; + put 'put ''ZShudWxsLFRlW1ZdLGtlKX1OLnN0YXQoa2UsZnVuY3Rpb24oVCl7aWYoVClyZXR1cm4gZGUoVCk7Ti5yZWFkbGluayhrZSxmdW5jdGlvbihTLEYpe1d8fChUZVtWXT1GKSxuZShTLEYpfSl9KX1mdW5jdGlvbiBuZSh4LFAsVil7aWYoeClyZXR1cm4gZGUoeCk7dmFyIFQ9WS5yZXNvbHZlKFNl''@;'; + put 'put ''LFApO2NlJiYoY2VbVl09VCksdGUoVCl9ZnVuY3Rpb24gdGUoeCl7b2U9WS5yZXNvbHZlKHgsb2Uuc2xpY2UodmUpKSxoZSgpfWhlKCl9fSw3NjQ4OlU9PnsidXNlIHN0cmljdCI7dmFyIFE9IkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgIixaPUFycmF5''@;'; + put 'put ''LnByb3RvdHlwZS5zbGljZSxpZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGxlPSJbb2JqZWN0IEZ1bmN0aW9uXSI7VS5leHBvcnRzPWZ1bmN0aW9uKFkpe3ZhciBXPXRoaXM7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFd8fGllLmNhbGwoVykhPT1sZSl0aHJvdyBuZXcgVHlwZUVycm9yKFEr''@;'; + put 'put ''Vyk7Zm9yKHZhciBOLGVlPVouY2FsbChhcmd1bWVudHMsMSkscT1mdW5jdGlvbigpe2lmKHRoaXMgaW5zdGFuY2VvZiBOKXt2YXIgZGU9Vy5hcHBseSh0aGlzLGVlLmNvbmNhdChaLmNhbGwoYXJndW1lbnRzKSkpO3JldHVybiBPYmplY3QoZGUpPT09ZGU/ZGU6dGhpc31yZXR1cm4gVy5hcHBs''@;'; + put 'put ''eShZLGVlLmNvbmNhdChaLmNhbGwoYXJndW1lbnRzKSkpfSxKPU1hdGgubWF4KDAsVy5sZW5ndGgtZWUubGVuZ3RoKSxzZT1bXSxvZT0wO29lPEo7b2UrKylzZS5wdXNoKCIkIitvZSk7aWYoTj1GdW5jdGlvbigiYmluZGVyIiwicmV0dXJuIGZ1bmN0aW9uICgiK3NlLmpvaW4oIiwiKSsiKXsg''@;'; + put 'put ''cmV0dXJuIGJpbmRlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7IH0iKShxKSxXLnByb3RvdHlwZSl7dmFyIGNlPWZ1bmN0aW9uKCl7fTtjZS5wcm90b3R5cGU9Vy5wcm90b3R5cGUsTi5wcm90b3R5cGU9bmV3IGNlLGNlLnByb3RvdHlwZT1udWxsfXJldHVybiBOfX0sODYxMjooVSxRLFopPT57''@;'; + put 'put ''InVzZSBzdHJpY3QiO3ZhciBpZT1aKDc2NDgpO1UuZXhwb3J0cz1GdW5jdGlvbi5wcm90b3R5cGUuYmluZHx8aWV9LDIxMDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZSxsZT1TeW50YXhFcnJvcixZPUZ1bmN0aW9uLFc9VHlwZUVycm9yLE49ZnVuY3Rpb24oVil7dHJ5e3JldHVybiBZ''@;'; + put 'put ''KCcidXNlIHN0cmljdCI7IHJldHVybiAoJytWKyIpLmNvbnN0cnVjdG9yOyIpKCl9Y2F0Y2goVCl7fX0sZWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtpZihlZSl0cnl7ZWUoe30sIiIpfWNhdGNoKFYpe2VlPW51bGx9dmFyIHE9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgV30sSj1l''@;'; + put 'put ''ZT9mdW5jdGlvbigpe3RyeXtyZXR1cm4gcX1jYXRjaChWKXt0cnl7cmV0dXJuIGVlKGFyZ3VtZW50cywiY2FsbGVlIikuZ2V0fWNhdGNoKFQpe3JldHVybiBxfX19KCk6cSxzZT1aKDE0MDUpKCksb2U9T2JqZWN0LmdldFByb3RvdHlwZU9mfHxmdW5jdGlvbihWKXtyZXR1cm4gVi5fX3Byb3Rv''@;'; + put 'put ''X199LGNlPXt9LGRlPSJ1bmRlZmluZWQiPT10eXBlb2YgVWludDhBcnJheT9pZTpvZShVaW50OEFycmF5KSx2ZT17IiVBZ2dyZWdhdGVFcnJvciUiOiJ1bmRlZmluZWQiPT10eXBlb2YgQWdncmVnYXRlRXJyb3I/aWU6QWdncmVnYXRlRXJyb3IsIiVBcnJheSUiOkFycmF5LCIlQXJyYXlCdWZm''@;'; + put 'put ''ZXIlIjoidW5kZWZpbmVkIj09dHlwZW9mIEFycmF5QnVmZmVyP2llOkFycmF5QnVmZmVyLCIlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUiOnNlP29lKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSk6aWUsIiVBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUlIjppZSwiJUFzeW5jRnVuY3Rpb24l''@;'; + put 'put ''IjpjZSwiJUFzeW5jR2VuZXJhdG9yJSI6Y2UsIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJSI6Y2UsIiVBc3luY0l0ZXJhdG9yUHJvdG90eXBlJSI6Y2UsIiVBdG9taWNzJSI6InVuZGVmaW5lZCI9PXR5cGVvZiBBdG9taWNzP2llOkF0b21pY3MsIiVCaWdJbnQlIjoidW5kZWZpbmVkIj09dHlw''@;'; + put 'put ''ZW9mIEJpZ0ludD9pZTpCaWdJbnQsIiVCb29sZWFuJSI6Qm9vbGVhbiwiJURhdGFWaWV3JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBEYXRhVmlldz9pZTpEYXRhVmlldywiJURhdGUlIjpEYXRlLCIlZGVjb2RlVVJJJSI6ZGVjb2RlVVJJLCIlZGVjb2RlVVJJQ29tcG9uZW50JSI6ZGVjb2RlVVJJ''@;'; + put 'put ''Q29tcG9uZW50LCIlZW5jb2RlVVJJJSI6ZW5jb2RlVVJJLCIlZW5jb2RlVVJJQ29tcG9uZW50JSI6ZW5jb2RlVVJJQ29tcG9uZW50LCIlRXJyb3IlIjpFcnJvciwiJWV2YWwlIjpldmFsLCIlRXZhbEVycm9yJSI6RXZhbEVycm9yLCIlRmxvYXQzMkFycmF5JSI6InVuZGVmaW5lZCI9PXR5cGVv''@;'; + put 'put ''ZiBGbG9hdDMyQXJyYXk/aWU6RmxvYXQzMkFycmF5LCIlRmxvYXQ2NEFycmF5JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBGbG9hdDY0QXJyYXk/aWU6RmxvYXQ2NEFycmF5LCIlRmluYWxpemF0aW9uUmVnaXN0cnklIjoidW5kZWZpbmVkIj09dHlwZW9mIEZpbmFsaXphdGlvblJlZ2lzdHJ5P2ll''@;'; + put 'put ''OkZpbmFsaXphdGlvblJlZ2lzdHJ5LCIlRnVuY3Rpb24lIjpZLCIlR2VuZXJhdG9yRnVuY3Rpb24lIjpjZSwiJUludDhBcnJheSUiOiJ1bmRlZmluZWQiPT10eXBlb2YgSW50OEFycmF5P2llOkludDhBcnJheSwiJUludDE2QXJyYXklIjoidW5kZWZpbmVkIj09dHlwZW9mIEludDE2QXJyYXk/''@;'; + put 'put ''aWU6SW50MTZBcnJheSwiJUludDMyQXJyYXklIjoidW5kZWZpbmVkIj09dHlwZW9mIEludDMyQXJyYXk/aWU6SW50MzJBcnJheSwiJWlzRmluaXRlJSI6aXNGaW5pdGUsIiVpc05hTiUiOmlzTmFOLCIlSXRlcmF0b3JQcm90b3R5cGUlIjpzZT9vZShvZShbXVtTeW1ib2wuaXRlcmF0b3JdKCkp''@;'; + put 'put ''KTppZSwiJUpTT04lIjoib2JqZWN0Ij09dHlwZW9mIEpTT04/SlNPTjppZSwiJU1hcCUiOiJ1bmRlZmluZWQiPT10eXBlb2YgTWFwP2llOk1hcCwiJU1hcEl0ZXJhdG9yUHJvdG90eXBlJSI6InVuZGVmaW5lZCIhPXR5cGVvZiBNYXAmJnNlP29lKChuZXcgTWFwKVtTeW1ib2wuaXRlcmF0b3Jd''@;'; + put 'put ''KCkpOmllLCIlTWF0aCUiOk1hdGgsIiVOdW1iZXIlIjpOdW1iZXIsIiVPYmplY3QlIjpPYmplY3QsIiVwYXJzZUZsb2F0JSI6cGFyc2VGbG9hdCwiJXBhcnNlSW50JSI6cGFyc2VJbnQsIiVQcm9taXNlJSI6InVuZGVmaW5lZCI9PXR5cGVvZiBQcm9taXNlP2llOlByb21pc2UsIiVQcm94eSUi''@;'; + put 'put ''OiJ1bmRlZmluZWQiPT10eXBlb2YgUHJveHk/aWU6UHJveHksIiVSYW5nZUVycm9yJSI6UmFuZ2VFcnJvciwiJVJlZmVyZW5jZUVycm9yJSI6UmVmZXJlbmNlRXJyb3IsIiVSZWZsZWN0JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0P2llOlJlZmxlY3QsIiVSZWdFeHAlIjpSZWdFeHAs''@;'; + put 'put ''IiVTZXQlIjoidW5kZWZpbmVkIj09dHlwZW9mIFNldD9pZTpTZXQsIiVTZXRJdGVyYXRvclByb3RvdHlwZSUiOiJ1bmRlZmluZWQiIT10eXBlb2YgU2V0JiZzZT9vZSgobmV3IFNldClbU3ltYm9sLml0ZXJhdG9yXSgpKTppZSwiJVNoYXJlZEFycmF5QnVmZmVyJSI6InVuZGVmaW5lZCI9PXR5''@;'; + put 'put ''cGVvZiBTaGFyZWRBcnJheUJ1ZmZlcj9pZTpTaGFyZWRBcnJheUJ1ZmZlciwiJVN0cmluZyUiOlN0cmluZywiJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJSI6c2U/b2UoIiJbU3ltYm9sLml0ZXJhdG9yXSgpKTppZSwiJVN5bWJvbCUiOnNlP1N5bWJvbDppZSwiJVN5bnRheEVycm9yJSI6bGUs''@;'; + put 'put ''IiVUaHJvd1R5cGVFcnJvciUiOkosIiVUeXBlZEFycmF5JSI6ZGUsIiVUeXBlRXJyb3IlIjpXLCIlVWludDhBcnJheSUiOiJ1bmRlZmluZWQiPT10eXBlb2YgVWludDhBcnJheT9pZTpVaW50OEFycmF5LCIlVWludDhDbGFtcGVkQXJyYXklIjoidW5kZWZpbmVkIj09dHlwZW9mIFVpbnQ4Q2xh''@;'; + put 'put ''bXBlZEFycmF5P2llOlVpbnQ4Q2xhbXBlZEFycmF5LCIlVWludDE2QXJyYXklIjoidW5kZWZpbmVkIj09dHlwZW9mIFVpbnQxNkFycmF5P2llOlVpbnQxNkFycmF5LCIlVWludDMyQXJyYXklIjoidW5kZWZpbmVkIj09dHlwZW9mIFVpbnQzMkFycmF5P2llOlVpbnQzMkFycmF5LCIlVVJJRXJy''@;'; + put 'put ''b3IlIjpVUklFcnJvciwiJVdlYWtNYXAlIjoidW5kZWZpbmVkIj09dHlwZW9mIFdlYWtNYXA/aWU6V2Vha01hcCwiJVdlYWtSZWYlIjoidW5kZWZpbmVkIj09dHlwZW9mIFdlYWtSZWY/aWU6V2Vha1JlZiwiJVdlYWtTZXQlIjoidW5kZWZpbmVkIj09dHlwZW9mIFdlYWtTZXQ/aWU6V2Vha1Nl''@;'; + put 'put ''dH0sQWU9ZnVuY3Rpb24gVihUKXt2YXIgUztpZigiJUFzeW5jRnVuY3Rpb24lIj09PVQpUz1OKCJhc3luYyBmdW5jdGlvbiAoKSB7fSIpO2Vsc2UgaWYoIiVHZW5lcmF0b3JGdW5jdGlvbiUiPT09VClTPU4oImZ1bmN0aW9uKiAoKSB7fSIpO2Vsc2UgaWYoIiVBc3luY0dlbmVyYXRvckZ1bmN0''@;'; + put 'put ''aW9uJSI9PT1UKVM9TigiYXN5bmMgZnVuY3Rpb24qICgpIHt9Iik7ZWxzZSBpZigiJUFzeW5jR2VuZXJhdG9yJSI9PT1UKXt2YXIgRj1WKCIlQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiUiKTtGJiYoUz1GLnByb3RvdHlwZSl9ZWxzZSBpZigiJUFzeW5jSXRlcmF0b3JQcm90b3R5cGUlIj09PVQp''@;'; + put 'put ''e3ZhciB5ZT1WKCIlQXN5bmNHZW5lcmF0b3IlIik7eWUmJihTPW9lKHllLnByb3RvdHlwZSkpfXJldHVybiB2ZVtUXT1TLFN9LGtlPXsiJUFycmF5QnVmZmVyUHJvdG90eXBlJSI6WyJBcnJheUJ1ZmZlciIsInByb3RvdHlwZSJdLCIlQXJyYXlQcm90b3R5cGUlIjpbIkFycmF5IiwicHJvdG90''@;'; + put 'put ''eXBlIl0sIiVBcnJheVByb3RvX2VudHJpZXMlIjpbIkFycmF5IiwicHJvdG90eXBlIiwiZW50cmllcyJdLCIlQXJyYXlQcm90b19mb3JFYWNoJSI6WyJBcnJheSIsInByb3RvdHlwZSIsImZvckVhY2giXSwiJUFycmF5UHJvdG9fa2V5cyUiOlsiQXJyYXkiLCJwcm90b3R5cGUiLCJrZXlzIl0s''@;'; + put 'put ''IiVBcnJheVByb3RvX3ZhbHVlcyUiOlsiQXJyYXkiLCJwcm90b3R5cGUiLCJ2YWx1ZXMiXSwiJUFzeW5jRnVuY3Rpb25Qcm90b3R5cGUlIjpbIkFzeW5jRnVuY3Rpb24iLCJwcm90b3R5cGUiXSwiJUFzeW5jR2VuZXJhdG9yJSI6WyJBc3luY0dlbmVyYXRvckZ1bmN0aW9uIiwicHJvdG90eXBl''@;'; + put 'put ''Il0sIiVBc3luY0dlbmVyYXRvclByb3RvdHlwZSUiOlsiQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiIsInByb3RvdHlwZSIsInByb3RvdHlwZSJdLCIlQm9vbGVhblByb3RvdHlwZSUiOlsiQm9vbGVhbiIsInByb3RvdHlwZSJdLCIlRGF0YVZpZXdQcm90b3R5cGUlIjpbIkRhdGFWaWV3IiwicHJv''@;'; + put 'put ''dG90eXBlIl0sIiVEYXRlUHJvdG90eXBlJSI6WyJEYXRlIiwicHJvdG90eXBlIl0sIiVFcnJvclByb3RvdHlwZSUiOlsiRXJyb3IiLCJwcm90b3R5cGUiXSwiJUV2YWxFcnJvclByb3RvdHlwZSUiOlsiRXZhbEVycm9yIiwicHJvdG90eXBlIl0sIiVGbG9hdDMyQXJyYXlQcm90b3R5cGUlIjpb''@;'; + put 'put ''IkZsb2F0MzJBcnJheSIsInByb3RvdHlwZSJdLCIlRmxvYXQ2NEFycmF5UHJvdG90eXBlJSI6WyJGbG9hdDY0QXJyYXkiLCJwcm90b3R5cGUiXSwiJUZ1bmN0aW9uUHJvdG90eXBlJSI6WyJGdW5jdGlvbiIsInByb3RvdHlwZSJdLCIlR2VuZXJhdG9yJSI6WyJHZW5lcmF0b3JGdW5jdGlvbiIs''@;'; + put 'put ''InByb3RvdHlwZSJdLCIlR2VuZXJhdG9yUHJvdG90eXBlJSI6WyJHZW5lcmF0b3JGdW5jdGlvbiIsInByb3RvdHlwZSIsInByb3RvdHlwZSJdLCIlSW50OEFycmF5UHJvdG90eXBlJSI6WyJJbnQ4QXJyYXkiLCJwcm90b3R5cGUiXSwiJUludDE2QXJyYXlQcm90b3R5cGUlIjpbIkludDE2QXJy''@;'; + put 'put ''YXkiLCJwcm90b3R5cGUiXSwiJUludDMyQXJyYXlQcm90b3R5cGUlIjpbIkludDMyQXJyYXkiLCJwcm90b3R5cGUiXSwiJUpTT05QYXJzZSUiOlsiSlNPTiIsInBhcnNlIl0sIiVKU09OU3RyaW5naWZ5JSI6WyJKU09OIiwic3RyaW5naWZ5Il0sIiVNYXBQcm90b3R5cGUlIjpbIk1hcCIsInBy''@;'; + put 'put ''b3RvdHlwZSJdLCIlTnVtYmVyUHJvdG90eXBlJSI6WyJOdW1iZXIiLCJwcm90b3R5cGUiXSwiJU9iamVjdFByb3RvdHlwZSUiOlsiT2JqZWN0IiwicHJvdG90eXBlIl0sIiVPYmpQcm90b190b1N0cmluZyUiOlsiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciXSwiJU9ialByb3RvX3Zh''@;'; + put 'put ''bHVlT2YlIjpbIk9iamVjdCIsInByb3RvdHlwZSIsInZhbHVlT2YiXSwiJVByb21pc2VQcm90b3R5cGUlIjpbIlByb21pc2UiLCJwcm90b3R5cGUiXSwiJVByb21pc2VQcm90b190aGVuJSI6WyJQcm9taXNlIiwicHJvdG90eXBlIiwidGhlbiJdLCIlUHJvbWlzZV9hbGwlIjpbIlByb21pc2Ui''@;'; + put 'put ''LCJhbGwiXSwiJVByb21pc2VfcmVqZWN0JSI6WyJQcm9taXNlIiwicmVqZWN0Il0sIiVQcm9taXNlX3Jlc29sdmUlIjpbIlByb21pc2UiLCJyZXNvbHZlIl0sIiVSYW5nZUVycm9yUHJvdG90eXBlJSI6WyJSYW5nZUVycm9yIiwicHJvdG90eXBlIl0sIiVSZWZlcmVuY2VFcnJvclByb3RvdHlw''@;'; + put 'put ''ZSUiOlsiUmVmZXJlbmNlRXJyb3IiLCJwcm90b3R5cGUiXSwiJVJlZ0V4cFByb3RvdHlwZSUiOlsiUmVnRXhwIiwicHJvdG90eXBlIl0sIiVTZXRQcm90b3R5cGUlIjpbIlNldCIsInByb3RvdHlwZSJdLCIlU2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUlIjpbIlNoYXJlZEFycmF5QnVmZmVy''@;'; + put 'put ''IiwicHJvdG90eXBlIl0sIiVTdHJpbmdQcm90b3R5cGUlIjpbIlN0cmluZyIsInByb3RvdHlwZSJdLCIlU3ltYm9sUHJvdG90eXBlJSI6WyJTeW1ib2wiLCJwcm90b3R5cGUiXSwiJVN5bnRheEVycm9yUHJvdG90eXBlJSI6WyJTeW50YXhFcnJvciIsInByb3RvdHlwZSJdLCIlVHlwZWRBcnJh''@;'; + put 'put ''eVByb3RvdHlwZSUiOlsiVHlwZWRBcnJheSIsInByb3RvdHlwZSJdLCIlVHlwZUVycm9yUHJvdG90eXBlJSI6WyJUeXBlRXJyb3IiLCJwcm90b3R5cGUiXSwiJVVpbnQ4QXJyYXlQcm90b3R5cGUlIjpbIlVpbnQ4QXJyYXkiLCJwcm90b3R5cGUiXSwiJVVpbnQ4Q2xhbXBlZEFycmF5UHJvdG90''@;'; + put 'put ''eXBlJSI6WyJVaW50OENsYW1wZWRBcnJheSIsInByb3RvdHlwZSJdLCIlVWludDE2QXJyYXlQcm90b3R5cGUlIjpbIlVpbnQxNkFycmF5IiwicHJvdG90eXBlIl0sIiVVaW50MzJBcnJheVByb3RvdHlwZSUiOlsiVWludDMyQXJyYXkiLCJwcm90b3R5cGUiXSwiJVVSSUVycm9yUHJvdG90eXBl''@;'; + put 'put ''JSI6WyJVUklFcnJvciIsInByb3RvdHlwZSJdLCIlV2Vha01hcFByb3RvdHlwZSUiOlsiV2Vha01hcCIsInByb3RvdHlwZSJdLCIlV2Vha1NldFByb3RvdHlwZSUiOlsiV2Vha1NldCIsInByb3RvdHlwZSJdfSxTZT1aKDg2MTIpLEllPVooNzY0MiksVGU9U2UuY2FsbChGdW5jdGlvbi5jYWxs''@;'; + put 'put ''LEFycmF5LnByb3RvdHlwZS5jb25jYXQpLEVlPVNlLmNhbGwoRnVuY3Rpb24uYXBwbHksQXJyYXkucHJvdG90eXBlLnNwbGljZSksaGU9U2UuY2FsbChGdW5jdGlvbi5jYWxsLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksTz1TZS5jYWxsKEZ1bmN0aW9uLmNhbGwsU3RyaW5nLnByb3RvdHlw''@;'; + put 'put ''ZS5zbGljZSksej1TZS5jYWxsKEZ1bmN0aW9uLmNhbGwsUmVnRXhwLnByb3RvdHlwZS5leGVjKSxuZT0vW14lLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JSQpKS9nLHRlPS9c''@;'; + put 'put ''XChcXCk/L2cseD1mdW5jdGlvbihWKXt2YXIgVD1PKFYsMCwxKSxTPU8oViwtMSk7aWYoIiUiPT09VCYmIiUiIT09Uyl0aHJvdyBuZXcgbGUoImludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0ZWQgY2xvc2luZyBgJWAiKTtpZigiJSI9PT1TJiYiJSIhPT1UKXRocm93IG5ldyBsZSgi''@;'; + put 'put ''aW52YWxpZCBpbnRyaW5zaWMgc3ludGF4LCBleHBlY3RlZCBvcGVuaW5nIGAlYCIpO3ZhciBGPVtdO3JldHVybiBoZShWLG5lLGZ1bmN0aW9uKHllLENlLERlLFBlKXtGW0YubGVuZ3RoXT1EZT9oZShQZSx0ZSwiJDEiKTpDZXx8eWV9KSxGfSxQPWZ1bmN0aW9uKFYsVCl7dmFyIFMsRj1WO2lm''@;'; + put 'put ''KEllKGtlLEYpJiYoRj0iJSIrKFM9a2VbRl0pWzBdKyIlIiksSWUodmUsRikpe3ZhciB5ZT12ZVtGXTtpZih5ZT09PWNlJiYoeWU9QWUoRikpLHZvaWQgMD09PXllJiYhVCl0aHJvdyBuZXcgVygiaW50cmluc2ljICIrVisiIGV4aXN0cywgYnV0IGlzIG5vdCBhdmFpbGFibGUuIFBsZWFzZSBm''@;'; + put 'put ''aWxlIGFuIGlzc3VlISIpO3JldHVybnthbGlhczpTLG5hbWU6Rix2YWx1ZTp5ZX19dGhyb3cgbmV3IGxlKCJpbnRyaW5zaWMgIitWKyIgZG9lcyBub3QgZXhpc3QhIil9O1UuZXhwb3J0cz1mdW5jdGlvbihWLFQpe2lmKCJzdHJpbmciIT10eXBlb2YgVnx8MD09PVYubGVuZ3RoKXRocm93IG5l''@;'; + put 'put ''dyBXKCJpbnRyaW5zaWMgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSYmImJvb2xlYW4iIT10eXBlb2YgVCl0aHJvdyBuZXcgVygnImFsbG93TWlzc2luZyIgYXJndW1lbnQgbXVzdCBiZSBhIGJvb2xlYW4nKTtpZihudWxsPT09eigvXiU/''@;'; + put 'put ''W14lXSolPyQvZyxWKSl0aHJvdyBuZXcgbGUoImAlYCBtYXkgbm90IGJlIHByZXNlbnQgYW55d2hlcmUgYnV0IGF0IHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgaW50cmluc2ljIG5hbWUiKTt2YXIgUz14KFYpLEY9Uy5sZW5ndGg+MD9TWzBdOiIiLHllPVAoIiUiK0YrIiUiLFQpLENl''@;'; + put 'put ''PXllLm5hbWUsRGU9eWUudmFsdWUsUGU9ITEsUWU9eWUuYWxpYXM7UWUmJihGPVFlWzBdLEVlKFMsVGUoWzAsMV0sUWUpKSk7Zm9yKHZhciAkZT0xLGd0PSEwOyRlPFMubGVuZ3RoOyRlKz0xKXt2YXIgd3Q9U1skZV0sdnQ9Tyh3dCwwLDEpLEF0PU8od3QsLTEpO2lmKCgnIic9PT12dHx8Iici''@;'; + put 'put ''PT09dnR8fCJgIj09PXZ0fHwnIic9PT1BdHx8IiciPT09QXR8fCJgIj09PUF0KSYmdnQhPT1BdCl0aHJvdyBuZXcgbGUoInByb3BlcnR5IG5hbWVzIHdpdGggcXVvdGVzIG11c3QgaGF2ZSBtYXRjaGluZyBxdW90ZXMiKTtpZigiY29uc3RydWN0b3IiIT09d3QmJmd0fHwoUGU9ITApLEllKHZl''@;'; + put 'put ''LENlPSIlIisoRis9Ii4iK3d0KSsiJSIpKURlPXZlW0NlXTtlbHNlIGlmKG51bGwhPURlKXtpZighKHd0IGluIERlKSl7aWYoIVQpdGhyb3cgbmV3IFcoImJhc2UgaW50cmluc2ljIGZvciAiK1YrIiBleGlzdHMsIGJ1dCB0aGUgcHJvcGVydHkgaXMgbm90IGF2YWlsYWJsZS4iKTtyZXR1cm59''@;'; + put 'put ''aWYoZWUmJiRlKzE+PVMubGVuZ3RoKXt2YXIgbXQ9ZWUoRGUsd3QpO0RlPShndD0hIW10KSYmImdldCJpbiBtdCYmISgib3JpZ2luYWxWYWx1ZSJpbiBtdC5nZXQpP210LmdldDpEZVt3dF19ZWxzZSBndD1JZShEZSx3dCksRGU9RGVbd3RdO2d0JiYhUGUmJih2ZVtDZV09RGUpfX1yZXR1cm4g''@;'; + put 'put ''RGV9fSw2NzcyOihVLFEsWik9Pnt2YXIgaWU9Wig0MTU1KTtmdW5jdGlvbiBsZShkZSx2ZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkZSx2ZSl9US5zZXRvcHRzPWZ1bmN0aW9uKGRlLHZlLEFlKXtpZihBZXx8KEFlPXt9KSxBZS5tYXRjaEJhc2UmJi0x''@;'; + put 'put ''PT09dmUuaW5kZXhPZigiLyIpKXtpZihBZS5ub2dsb2JzdGFyKXRocm93IG5ldyBFcnJvcigiYmFzZSBtYXRjaGluZyByZXF1aXJlcyBnbG9ic3RhciIpO3ZlPSIqKi8iK3ZlfXZhciBTZTtkZS5zaWxlbnQ9ISFBZS5zaWxlbnQsZGUucGF0dGVybj12ZSxkZS5zdHJpY3Q9ITEhPT1BZS5zdHJp''@;'; + put 'put ''Y3QsZGUucmVhbHBhdGg9ISFBZS5yZWFscGF0aCxkZS5yZWFscGF0aENhY2hlPUFlLnJlYWxwYXRoQ2FjaGV8fE9iamVjdC5jcmVhdGUobnVsbCksZGUuZm9sbG93PSEhQWUuZm9sbG93LGRlLmRvdD0hIUFlLmRvdCxkZS5tYXJrPSEhQWUubWFyayxkZS5ub2Rpcj0hIUFlLm5vZGlyLGRlLm5v''@;'; + put 'put ''ZGlyJiYoZGUubWFyaz0hMCksZGUuc3luYz0hIUFlLnN5bmMsZGUubm91bmlxdWU9ISFBZS5ub3VuaXF1ZSxkZS5ub251bGw9ISFBZS5ub251bGwsZGUubm9zb3J0PSEhQWUubm9zb3J0LGRlLm5vY2FzZT0hIUFlLm5vY2FzZSxkZS5zdGF0PSEhQWUuc3RhdCxkZS5ub3Byb2Nlc3M9ISFBZS5u''@;'; + put 'put ''b3Byb2Nlc3MsZGUuYWJzb2x1dGU9ISFBZS5hYnNvbHV0ZSxkZS5mcz1BZS5mc3x8WSxkZS5tYXhMZW5ndGg9QWUubWF4TGVuZ3RofHwxLzAsZGUuY2FjaGU9QWUuY2FjaGV8fE9iamVjdC5jcmVhdGUobnVsbCksZGUuc3RhdENhY2hlPUFlLnN0YXRDYWNoZXx8T2JqZWN0LmNyZWF0ZShudWxs''@;'; + put 'put ''KSxkZS5zeW1saW5rcz1BZS5zeW1saW5rc3x8T2JqZWN0LmNyZWF0ZShudWxsKSwoU2U9ZGUpLmlnbm9yZT1BZS5pZ25vcmV8fFtdLEFycmF5LmlzQXJyYXkoU2UuaWdub3JlKXx8KFNlLmlnbm9yZT1bU2UuaWdub3JlXSksU2UuaWdub3JlLmxlbmd0aCYmKFNlLmlnbm9yZT1TZS5pZ25vcmUu''@;'; + put 'put ''bWFwKHNlKSksZGUuY2hhbmdlZEN3ZD0hMTt2YXIga2U9aWUuY3dkKCk7bGUoQWUsImN3ZCIpPyhkZS5jd2Q9Vy5yZXNvbHZlKEFlLmN3ZCksZGUuY2hhbmdlZEN3ZD1kZS5jd2QhPT1rZSk6ZGUuY3dkPWtlLGRlLnJvb3Q9QWUucm9vdHx8Vy5yZXNvbHZlKGRlLmN3ZCwiLyIpLGRlLnJvb3Q9''@;'; + put 'put ''Vy5yZXNvbHZlKGRlLnJvb3QpLCJ3aW4zMiI9PT1pZS5wbGF0Zm9ybSYmKGRlLnJvb3Q9ZGUucm9vdC5yZXBsYWNlKC9cXC9nLCIvIikpLGRlLmN3ZEFicz1lZShkZS5jd2QpP2RlLmN3ZDpvZShkZSxkZS5jd2QpLCJ3aW4zMiI9PT1pZS5wbGF0Zm9ybSYmKGRlLmN3ZEFicz1kZS5jd2RBYnMu''@;'; + put 'put ''cmVwbGFjZSgvXFwvZywiLyIpKSxkZS5ub21vdW50PSEhQWUubm9tb3VudCxBZS5ub25lZ2F0ZT0hMCxBZS5ub2NvbW1lbnQ9ITAsQWUuYWxsb3dXaW5kb3dzRXNjYXBlPSExLGRlLm1pbmltYXRjaD1uZXcgcSh2ZSxBZSksZGUub3B0aW9ucz1kZS5taW5pbWF0Y2gub3B0aW9uc30sUS5vd25Q''@;'; + put 'put ''cm9wPWxlLFEubWFrZUFicz1vZSxRLmZpbmlzaD1mdW5jdGlvbihkZSl7Zm9yKHZhciB2ZT1kZS5ub3VuaXF1ZSxBZT12ZT9bXTpPYmplY3QuY3JlYXRlKG51bGwpLGtlPTAsU2U9ZGUubWF0Y2hlcy5sZW5ndGg7a2U8U2U7a2UrKyl7dmFyIEllPWRlLm1hdGNoZXNba2VdO2lmKEllJiYwIT09''@;'; + put 'put ''T2JqZWN0LmtleXMoSWUpLmxlbmd0aCl7dmFyIFRlPU9iamVjdC5rZXlzKEllKTt2ZT9BZS5wdXNoLmFwcGx5KEFlLFRlKTpUZS5mb3JFYWNoKGZ1bmN0aW9uKGhlKXtBZVtoZV09ITB9KX1lbHNlIGlmKGRlLm5vbnVsbCl7dmFyIEVlPWRlLm1pbmltYXRjaC5nbG9iU2V0W2tlXTt2ZT9BZS5w''@;'; + put 'put ''dXNoKEVlKTpBZVtFZV09ITB9fWlmKHZlfHwoQWU9T2JqZWN0LmtleXMoQWUpKSxkZS5ub3NvcnR8fChBZT1BZS5zb3J0KEopKSxkZS5tYXJrKXtmb3Ioa2U9MDtrZTxBZS5sZW5ndGg7a2UrKylBZVtrZV09ZGUuX21hcmsoQWVba2VdKTtkZS5ub2RpciYmKEFlPUFlLmZpbHRlcihmdW5jdGlv''@;'; + put 'put ''bihoZSl7dmFyIE89IS9cLyQvLnRlc3QoaGUpLHo9ZGUuY2FjaGVbaGVdfHxkZS5jYWNoZVtvZShkZSxoZSldO3JldHVybiBPJiZ6JiYoTz0iRElSIiE9PXomJiFBcnJheS5pc0FycmF5KHopKSxPfSkpfWRlLmlnbm9yZS5sZW5ndGgmJihBZT1BZS5maWx0ZXIoZnVuY3Rpb24oaGUpe3JldHVy''@;'; + put 'put ''biFjZShkZSxoZSl9KSksZGUuZm91bmQ9QWV9LFEubWFyaz1mdW5jdGlvbihkZSx2ZSl7dmFyIEFlPW9lKGRlLHZlKSxrZT1kZS5jYWNoZVtBZV0sU2U9dmU7aWYoa2Upe3ZhciBJZT0iRElSIj09PWtlfHxBcnJheS5pc0FycmF5KGtlKSxUZT0iLyI9PT12ZS5zbGljZSgtMSk7aWYoSWUmJiFU''@;'; + put 'put ''ZT9TZSs9Ii8iOiFJZSYmVGUmJihTZT1TZS5zbGljZSgwLC0xKSksU2UhPT12ZSl7dmFyIEVlPW9lKGRlLFNlKTtkZS5zdGF0Q2FjaGVbRWVdPWRlLnN0YXRDYWNoZVtBZV0sZGUuY2FjaGVbRWVdPWRlLmNhY2hlW0FlXX19cmV0dXJuIFNlfSxRLmlzSWdub3JlZD1jZSxRLmNoaWxkcmVuSWdu''@;'; + put 'put ''b3JlZD1mdW5jdGlvbihkZSx2ZSl7cmV0dXJuISFkZS5pZ25vcmUubGVuZ3RoJiZkZS5pZ25vcmUuc29tZShmdW5jdGlvbihBZSl7cmV0dXJuISghQWUuZ21hdGNoZXJ8fCFBZS5nbWF0Y2hlci5tYXRjaCh2ZSkpfSl9O3ZhciBZPVooMzcxMCksVz1aKDI1MjApLE49WigxMTcxKSxlZT1aKDQw''@;'; + put 'put ''OTUpLHE9Ti5NaW5pbWF0Y2g7ZnVuY3Rpb24gSihkZSx2ZSl7cmV0dXJuIGRlLmxvY2FsZUNvbXBhcmUodmUsImVuIil9ZnVuY3Rpb24gc2UoZGUpe3ZhciB2ZT1udWxsO2lmKCIvKioiPT09ZGUuc2xpY2UoLTMpKXt2YXIgQWU9ZGUucmVwbGFjZSgvKFwvXCpcKikrJC8sIiIpO3ZlPW5ldyBx''@;'; + put 'put ''KEFlLHtkb3Q6ITB9KX1yZXR1cm57bWF0Y2hlcjpuZXcgcShkZSx7ZG90OiEwfSksZ21hdGNoZXI6dmV9fWZ1bmN0aW9uIG9lKGRlLHZlKXt2YXIgQWU9dmU7cmV0dXJuIEFlPSIvIj09PXZlLmNoYXJBdCgwKT9XLmpvaW4oZGUucm9vdCx2ZSk6ZWUodmUpfHwiIj09PXZlP3ZlOmRlLmNoYW5n''@;'; + put 'put ''ZWRDd2Q/Vy5yZXNvbHZlKGRlLmN3ZCx2ZSk6Vy5yZXNvbHZlKHZlKSwid2luMzIiPT09aWUucGxhdGZvcm0mJihBZT1BZS5yZXBsYWNlKC9cXC9nLCIvIikpLEFlfWZ1bmN0aW9uIGNlKGRlLHZlKXtyZXR1cm4hIWRlLmlnbm9yZS5sZW5ndGgmJmRlLmlnbm9yZS5zb21lKGZ1bmN0aW9uKEFl''@;'; + put 'put ''KXtyZXR1cm4gQWUubWF0Y2hlci5tYXRjaCh2ZSl8fCEoIUFlLmdtYXRjaGVyfHwhQWUuZ21hdGNoZXIubWF0Y2godmUpKX0pfX0sMjg4NDooVSxRLFopPT57dmFyIGllPVooNDE1NSksbGU9Wig1MTA4KTtVLmV4cG9ydHM9VGU7dmFyIFk9Wig3MzM0KSxXPVooMTE3MSksTj1aKDU3MTcpLGVl''@;'; + put 'put ''PVooNzE4NykuRXZlbnRFbWl0dGVyLHE9WigyNTIwKSxKPVooOTI4Miksc2U9Wig0MDk1KSxvZT1aKDQ3NTEpLGNlPVooNjc3MiksZGU9Y2Uuc2V0b3B0cyx2ZT1jZS5vd25Qcm9wLEFlPVooNzg0NCksa2U9KFooOTUzOSksY2UuY2hpbGRyZW5JZ25vcmVkKSxTZT1jZS5pc0lnbm9yZWQsSWU9''@;'; + put 'put ''Wig3NzgpO2Z1bmN0aW9uIFRlKE8seixuZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHomJihuZT16LHo9e30pLHp8fCh6PXt9KSx6LnN5bmMpe2lmKG5lKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIHByb3ZpZGVkIHRvIHN5bmMgZ2xvYiIpO3JldHVybiBvZShPLHopfXJldHVybiBu''@;'; + put 'put ''ZXcgaGUoTyx6LG5lKX1UZS5zeW5jPW9lO3ZhciBFZT1UZS5HbG9iU3luYz1vZS5HbG9iU3luYztmdW5jdGlvbiBoZShPLHosbmUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB6JiYobmU9eix6PW51bGwpLHomJnouc3luYyl7aWYobmUpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgcHJv''@;'; + put 'put ''dmlkZWQgdG8gc3luYyBnbG9iIik7cmV0dXJuIG5ldyBFZShPLHopfWlmKCEodGhpcyBpbnN0YW5jZW9mIGhlKSlyZXR1cm4gbmV3IGhlKE8seixuZSk7ZGUodGhpcyxPLHopLHRoaXMuX2RpZFJlYWxQYXRoPSExO3ZhciB0ZT10aGlzLm1pbmltYXRjaC5zZXQubGVuZ3RoO3RoaXMubWF0Y2hl''@;'; + put 'put ''cz1uZXcgQXJyYXkodGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBuZSYmKG5lPUllKG5lKSx0aGlzLm9uKCJlcnJvciIsbmUpLHRoaXMub24oImVuZCIsZnVuY3Rpb24oVCl7bmUobnVsbCxUKX0pKTt2YXIgeD10aGlzO2lmKHRoaXMuX3Byb2Nlc3Npbmc9MCx0aGlzLl9lbWl0UXVldWU9W10sdGhp''@;'; + put 'put ''cy5fcHJvY2Vzc1F1ZXVlPVtdLHRoaXMucGF1c2VkPSExLHRoaXMubm9wcm9jZXNzKXJldHVybiB0aGlzO2lmKDA9PT10ZSlyZXR1cm4gVigpO2Zvcih2YXIgUD0wO1A8dGU7UCsrKXRoaXMuX3Byb2Nlc3ModGhpcy5taW5pbWF0Y2guc2V0W1BdLFAsITEsVik7ZnVuY3Rpb24gVigpey0teC5f''@;'; + put 'put ''cHJvY2Vzc2luZyx4Ll9wcm9jZXNzaW5nPD0wJiZ4Ll9maW5pc2goKX19VGUuZ2xvYj1UZSxUZS5oYXNNYWdpYz1mdW5jdGlvbihPLHope3ZhciBuZT1mdW5jdGlvbihQLFYpe2lmKG51bGw9PT1WfHwib2JqZWN0IiE9dHlwZW9mIFYpcmV0dXJuIFA7Zm9yKHZhciBUPU9iamVjdC5rZXlzKFYp''@;'; + put 'put ''LFM9VC5sZW5ndGg7Uy0tOylQW1RbU11dPVZbVFtTXV07cmV0dXJuIFB9KHt9LHopO25lLm5vcHJvY2Vzcz0hMDt2YXIgdGU9bmV3IGhlKE8sbmUpLm1pbmltYXRjaC5zZXQ7aWYoIU8pcmV0dXJuITE7aWYodGUubGVuZ3RoPjEpcmV0dXJuITA7Zm9yKHZhciB4PTA7eDx0ZVswXS5sZW5ndGg7''@;'; + put 'put ''eCsrKWlmKCJzdHJpbmciIT10eXBlb2YgdGVbMF1beF0pcmV0dXJuITA7cmV0dXJuITF9LFRlLkdsb2I9aGUsTihoZSxlZSksaGUucHJvdG90eXBlLl9maW5pc2g9ZnVuY3Rpb24oKXtpZihKKHRoaXMgaW5zdGFuY2VvZiBoZSksIXRoaXMuYWJvcnRlZCl7aWYodGhpcy5yZWFscGF0aCYmIXRo''@;'; + put 'put ''aXMuX2RpZFJlYWxwYXRoKXJldHVybiB0aGlzLl9yZWFscGF0aCgpO2NlLmZpbmlzaCh0aGlzKSx0aGlzLmVtaXQoImVuZCIsdGhpcy5mb3VuZCl9fSxoZS5wcm90b3R5cGUuX3JlYWxwYXRoPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2RpZFJlYWxwYXRoKXt0aGlzLl9kaWRSZWFscGF0aD0hMDt2''@;'; + put 'put ''YXIgTz10aGlzLm1hdGNoZXMubGVuZ3RoO2lmKDA9PT1PKXJldHVybiB0aGlzLl9maW5pc2goKTtmb3IodmFyIHo9dGhpcyxuZT0wO25lPHRoaXMubWF0Y2hlcy5sZW5ndGg7bmUrKyl0aGlzLl9yZWFscGF0aFNldChuZSx0ZSl9ZnVuY3Rpb24gdGUoKXswPT0tLU8mJnouX2ZpbmlzaCgpfX0s''@;'; + put 'put ''aGUucHJvdG90eXBlLl9yZWFscGF0aFNldD1mdW5jdGlvbihPLHope3ZhciBuZT10aGlzLm1hdGNoZXNbT107aWYoIW5lKXJldHVybiB6KCk7dmFyIHRlPU9iamVjdC5rZXlzKG5lKSx4PXRoaXMsUD10ZS5sZW5ndGg7aWYoMD09PVApcmV0dXJuIHooKTt2YXIgVj10aGlzLm1hdGNoZXNbT109''@;'; + put 'put ''T2JqZWN0LmNyZWF0ZShudWxsKTt0ZS5mb3JFYWNoKGZ1bmN0aW9uKFQsUyl7VD14Ll9tYWtlQWJzKFQpLFkucmVhbHBhdGgoVCx4LnJlYWxwYXRoQ2FjaGUsZnVuY3Rpb24oRix5ZSl7Rj8ic3RhdCI9PT1GLnN5c2NhbGw/VltUXT0hMDp4LmVtaXQoImVycm9yIixGKTpWW3llXT0hMCwwPT0t''@;'; + put 'put ''LVAmJih4Lm1hdGNoZXNbT109Vix6KCkpfSl9KX0saGUucHJvdG90eXBlLl9tYXJrPWZ1bmN0aW9uKE8pe3JldHVybiBjZS5tYXJrKHRoaXMsTyl9LGhlLnByb3RvdHlwZS5fbWFrZUFicz1mdW5jdGlvbihPKXtyZXR1cm4gY2UubWFrZUFicyh0aGlzLE8pfSxoZS5wcm90b3R5cGUuYWJvcnQ9''@;'; + put 'put ''ZnVuY3Rpb24oKXt0aGlzLmFib3J0ZWQ9ITAsdGhpcy5lbWl0KCJhYm9ydCIpfSxoZS5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oKXt0aGlzLnBhdXNlZHx8KHRoaXMucGF1c2VkPSEwLHRoaXMuZW1pdCgicGF1c2UiKSl9LGhlLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXtpZih0aGlz''@;'; + put 'put ''LnBhdXNlZCl7aWYodGhpcy5lbWl0KCJyZXN1bWUiKSx0aGlzLnBhdXNlZD0hMSx0aGlzLl9lbWl0UXVldWUubGVuZ3RoKXt2YXIgTz10aGlzLl9lbWl0UXVldWUuc2xpY2UoMCk7dGhpcy5fZW1pdFF1ZXVlLmxlbmd0aD0wO2Zvcih2YXIgej0wO3o8Ty5sZW5ndGg7eisrKXt2YXIgbmU9T1t6''@;'; + put 'put ''XTt0aGlzLl9lbWl0TWF0Y2gobmVbMF0sbmVbMV0pfX1pZih0aGlzLl9wcm9jZXNzUXVldWUubGVuZ3RoKXt2YXIgdGU9dGhpcy5fcHJvY2Vzc1F1ZXVlLnNsaWNlKDApO2Zvcih0aGlzLl9wcm9jZXNzUXVldWUubGVuZ3RoPTAsej0wO3o8dGUubGVuZ3RoO3orKyl7dmFyIHg9dGVbel07dGhp''@;'; + put 'put ''cy5fcHJvY2Vzc2luZy0tLHRoaXMuX3Byb2Nlc3MoeFswXSx4WzFdLHhbMl0seFszXSl9fX19LGhlLnByb3RvdHlwZS5fcHJvY2Vzcz1mdW5jdGlvbihPLHosbmUsdGUpe2lmKEoodGhpcyBpbnN0YW5jZW9mIGhlKSxKKCJmdW5jdGlvbiI9PXR5cGVvZiB0ZSksIXRoaXMuYWJvcnRlZClpZih0''@;'; + put 'put ''aGlzLl9wcm9jZXNzaW5nKyssdGhpcy5wYXVzZWQpdGhpcy5fcHJvY2Vzc1F1ZXVlLnB1c2goW08seixuZSx0ZV0pO2Vsc2V7Zm9yKHZhciB4LFA9MDsic3RyaW5nIj09dHlwZW9mIE9bUF07KVArKztzd2l0Y2goUCl7Y2FzZSBPLmxlbmd0aDpyZXR1cm4gdm9pZCB0aGlzLl9wcm9jZXNzU2lt''@;'; + put 'put ''cGxlKE8uam9pbigiLyIpLHosdGUpO2Nhc2UgMDp4PW51bGw7YnJlYWs7ZGVmYXVsdDp4PU8uc2xpY2UoMCxQKS5qb2luKCIvIil9dmFyIFYsVD1PLnNsaWNlKFApO251bGw9PT14P1Y9Ii4iOigoc2UoeCl8fHNlKE8ubWFwKGZ1bmN0aW9uKEYpe3JldHVybiJzdHJpbmciPT10eXBlb2YgRj9G''@;'; + put 'put ''OiJbKl0ifSkuam9pbigiLyIpKSkmJih4JiZzZSh4KXx8KHg9Ii8iK3gpKSxWPXgpO3ZhciBTPXRoaXMuX21ha2VBYnMoVik7aWYoa2UodGhpcyxWKSlyZXR1cm4gdGUoKTtUWzBdPT09Vy5HTE9CU1RBUj90aGlzLl9wcm9jZXNzR2xvYlN0YXIoeCxWLFMsVCx6LG5lLHRlKTp0aGlzLl9wcm9j''@;'; + put 'put ''ZXNzUmVhZGRpcih4LFYsUyxULHosbmUsdGUpfX0saGUucHJvdG90eXBlLl9wcm9jZXNzUmVhZGRpcj1mdW5jdGlvbihPLHosbmUsdGUseCxQLFYpe3ZhciBUPXRoaXM7dGhpcy5fcmVhZGRpcihuZSxQLGZ1bmN0aW9uKFMsRil7cmV0dXJuIFQuX3Byb2Nlc3NSZWFkZGlyMihPLHosbmUsdGUs''@;'; + put 'put ''eCxQLEYsVil9KX0saGUucHJvdG90eXBlLl9wcm9jZXNzUmVhZGRpcjI9ZnVuY3Rpb24oTyx6LG5lLHRlLHgsUCxWLFQpe2lmKCFWKXJldHVybiBUKCk7Zm9yKHZhciBTPXRlWzBdLEY9ISF0aGlzLm1pbmltYXRjaC5uZWdhdGUsQ2U9dGhpcy5kb3R8fCIuIj09PVMuX2dsb2IuY2hhckF0KDAp''@;'; + put 'put ''LERlPVtdLFBlPTA7UGU8Vi5sZW5ndGg7UGUrKykoIi4iIT09KCRlPVZbUGVdKS5jaGFyQXQoMCl8fENlKSYmKEYmJiFPPyEkZS5tYXRjaChTKTokZS5tYXRjaChTKSkmJkRlLnB1c2goJGUpO3ZhciBRZT1EZS5sZW5ndGg7aWYoMD09PVFlKXJldHVybiBUKCk7aWYoMT09PXRlLmxlbmd0aCYm''@;'; + put 'put ''IXRoaXMubWFyayYmIXRoaXMuc3RhdCl7Zm9yKHRoaXMubWF0Y2hlc1t4XXx8KHRoaXMubWF0Y2hlc1t4XT1PYmplY3QuY3JlYXRlKG51bGwpKSxQZT0wO1BlPFFlO1BlKyspe3ZhciAkZT1EZVtQZV07TyYmKCRlPSIvIiE9PU8/TysiLyIrJGU6TyskZSksIi8iIT09JGUuY2hhckF0KDApfHx0''@;'; + put 'put ''aGlzLm5vbW91bnR8fCgkZT1xLmpvaW4odGhpcy5yb290LCRlKSksdGhpcy5fZW1pdE1hdGNoKHgsJGUpfXJldHVybiBUKCl9Zm9yKHRlLnNoaWZ0KCksUGU9MDtQZTxRZTtQZSsrKSRlPURlW1BlXSxPJiYoJGU9Ii8iIT09Tz9PKyIvIiskZTpPKyRlKSx0aGlzLl9wcm9jZXNzKFskZV0uY29u''@;'; + put 'put ''Y2F0KHRlKSx4LFAsVCk7VCgpfSxoZS5wcm90b3R5cGUuX2VtaXRNYXRjaD1mdW5jdGlvbihPLHope2lmKCF0aGlzLmFib3J0ZWQmJiFTZSh0aGlzLHopKWlmKHRoaXMucGF1c2VkKXRoaXMuX2VtaXRRdWV1ZS5wdXNoKFtPLHpdKTtlbHNle3ZhciBuZT1zZSh6KT96OnRoaXMuX21ha2VBYnMo''@;'; + put 'put ''eik7aWYodGhpcy5tYXJrJiYoej10aGlzLl9tYXJrKHopKSx0aGlzLmFic29sdXRlJiYoej1uZSksIXRoaXMubWF0Y2hlc1tPXVt6XSl7aWYodGhpcy5ub2Rpcil7dmFyIHRlPXRoaXMuY2FjaGVbbmVdO2lmKCJESVIiPT09dGV8fEFycmF5LmlzQXJyYXkodGUpKXJldHVybn10aGlzLm1hdGNo''@;'; + put 'put ''ZXNbT11bel09ITA7dmFyIHg9dGhpcy5zdGF0Q2FjaGVbbmVdO3gmJnRoaXMuZW1pdCgic3RhdCIseix4KSx0aGlzLmVtaXQoIm1hdGNoIix6KX19fSxoZS5wcm90b3R5cGUuX3JlYWRkaXJJbkdsb2JTdGFyPWZ1bmN0aW9uKE8seil7aWYoIXRoaXMuYWJvcnRlZCl7aWYodGhpcy5mb2xsb3cp''@;'; + put 'put ''cmV0dXJuIHRoaXMuX3JlYWRkaXIoTywhMSx6KTt2YXIgbmU9dGhpcyx0ZT1BZSgibHN0YXRcMCIrTyxmdW5jdGlvbih4LFApe2lmKHgmJiJFTk9FTlQiPT09eC5jb2RlKXJldHVybiB6KCk7dmFyIFY9UCYmUC5pc1N5bWJvbGljTGluaygpO25lLnN5bWxpbmtzW09dPVYsVnx8IVB8fFAuaXNE''@;'; + put 'put ''aXJlY3RvcnkoKT9uZS5fcmVhZGRpcihPLCExLHopOihuZS5jYWNoZVtPXT0iRklMRSIseigpKX0pO3RlJiZuZS5mcy5sc3RhdChPLHRlKX19LGhlLnByb3RvdHlwZS5fcmVhZGRpcj1mdW5jdGlvbihPLHosbmUpe2lmKCF0aGlzLmFib3J0ZWQmJihuZT1BZSgicmVhZGRpclwwIitPKyJcMCIr''@;'; + put 'put ''eixuZSkpKXtpZih6JiYhdmUodGhpcy5zeW1saW5rcyxPKSlyZXR1cm4gdGhpcy5fcmVhZGRpckluR2xvYlN0YXIoTyxuZSk7aWYodmUodGhpcy5jYWNoZSxPKSl7dmFyIHRlPXRoaXMuY2FjaGVbT107aWYoIXRlfHwiRklMRSI9PT10ZSlyZXR1cm4gbmUoKTtpZihBcnJheS5pc0FycmF5KHRl''@;'; + put 'put ''KSlyZXR1cm4gbmUobnVsbCx0ZSl9dGhpcy5mcy5yZWFkZGlyKE8sKHg9dGhpcyxQPU8sVj1uZSxmdW5jdGlvbihULFMpe1Q/eC5fcmVhZGRpckVycm9yKFAsVCxWKTp4Ll9yZWFkZGlyRW50cmllcyhQLFMsVil9KSl9dmFyIHgsUCxWfSxoZS5wcm90b3R5cGUuX3JlYWRkaXJFbnRyaWVzPWZ1''@;'; + put 'put ''bmN0aW9uKE8seixuZSl7aWYoIXRoaXMuYWJvcnRlZCl7aWYoIXRoaXMubWFyayYmIXRoaXMuc3RhdClmb3IodmFyIHRlPTA7dGU8ei5sZW5ndGg7dGUrKyl7dmFyIHg9elt0ZV07dGhpcy5jYWNoZVt4PSIvIj09PU8/Tyt4Ok8rIi8iK3hdPSEwfXJldHVybiB0aGlzLmNhY2hlW09dPXosbmUo''@;'; + put 'put ''bnVsbCx6KX19LGhlLnByb3RvdHlwZS5fcmVhZGRpckVycm9yPWZ1bmN0aW9uKE8seixuZSl7aWYoIXRoaXMuYWJvcnRlZCl7c3dpdGNoKHouY29kZSl7Y2FzZSJFTk9UU1VQIjpjYXNlIkVOT1RESVIiOnZhciB0ZT10aGlzLl9tYWtlQWJzKE8pO2lmKHRoaXMuY2FjaGVbdGVdPSJGSUxFIix0''@;'; + put 'put ''ZT09PXRoaXMuY3dkQWJzKXt2YXIgeD1uZXcgRXJyb3Ioei5jb2RlKyIgaW52YWxpZCBjd2QgIit0aGlzLmN3ZCk7eC5wYXRoPXRoaXMuY3dkLHguY29kZT16LmNvZGUsdGhpcy5lbWl0KCJlcnJvciIseCksdGhpcy5hYm9ydCgpfWJyZWFrO2Nhc2UiRU5PRU5UIjpjYXNlIkVMT09QIjpjYXNl''@;'; + put 'put ''IkVOQU1FVE9PTE9ORyI6Y2FzZSJVTktOT1dOIjp0aGlzLmNhY2hlW3RoaXMuX21ha2VBYnMoTyldPSExO2JyZWFrO2RlZmF1bHQ6dGhpcy5jYWNoZVt0aGlzLl9tYWtlQWJzKE8pXT0hMSx0aGlzLnN0cmljdCYmKHRoaXMuZW1pdCgiZXJyb3IiLHopLHRoaXMuYWJvcnQoKSksdGhpcy5zaWxl''@;'; + put 'put ''bnR8fGxlLmVycm9yKCJnbG9iIGVycm9yIix6KX1yZXR1cm4gbmUoKX19LGhlLnByb3RvdHlwZS5fcHJvY2Vzc0dsb2JTdGFyPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFAsVil7dmFyIFQ9dGhpczt0aGlzLl9yZWFkZGlyKG5lLFAsZnVuY3Rpb24oUyxGKXtULl9wcm9jZXNzR2xvYlN0YXIyKE8s''@;'; + put 'put ''eixuZSx0ZSx4LFAsRixWKX0pfSxoZS5wcm90b3R5cGUuX3Byb2Nlc3NHbG9iU3RhcjI9ZnVuY3Rpb24oTyx6LG5lLHRlLHgsUCxWLFQpe2lmKCFWKXJldHVybiBUKCk7dmFyIFM9dGUuc2xpY2UoMSksRj1PP1tPXTpbXSx5ZT1GLmNvbmNhdChTKTt0aGlzLl9wcm9jZXNzKHllLHgsITEsVCk7''@;'; + put 'put ''dmFyIERlPVYubGVuZ3RoO2lmKHRoaXMuc3ltbGlua3NbbmVdJiZQKXJldHVybiBUKCk7Zm9yKHZhciBQZT0wO1BlPERlO1BlKyspaWYoIi4iIT09VltQZV0uY2hhckF0KDApfHx0aGlzLmRvdCl7dmFyIFFlPUYuY29uY2F0KFZbUGVdLFMpO3RoaXMuX3Byb2Nlc3MoUWUseCwhMCxUKTt2YXIg''@;'; + put 'put ''JGU9Ri5jb25jYXQoVltQZV0sdGUpO3RoaXMuX3Byb2Nlc3MoJGUseCwhMCxUKX1UKCl9LGhlLnByb3RvdHlwZS5fcHJvY2Vzc1NpbXBsZT1mdW5jdGlvbihPLHosbmUpe3ZhciB0ZT10aGlzO3RoaXMuX3N0YXQoTyxmdW5jdGlvbih4LFApe3RlLl9wcm9jZXNzU2ltcGxlMihPLHoseCxQLG5l''@;'; + put 'put ''KX0pfSxoZS5wcm90b3R5cGUuX3Byb2Nlc3NTaW1wbGUyPWZ1bmN0aW9uKE8seixuZSx0ZSx4KXtpZih0aGlzLm1hdGNoZXNbel18fCh0aGlzLm1hdGNoZXNbel09T2JqZWN0LmNyZWF0ZShudWxsKSksIXRlKXJldHVybiB4KCk7aWYoTyYmc2UoTykmJiF0aGlzLm5vbW91bnQpe3ZhciBQPS9b''@;'; + put 'put ''XC9cXF0kLy50ZXN0KE8pOyIvIj09PU8uY2hhckF0KDApP089cS5qb2luKHRoaXMucm9vdCxPKTooTz1xLnJlc29sdmUodGhpcy5yb290LE8pLFAmJihPKz0iLyIpKX0id2luMzIiPT09aWUucGxhdGZvcm0mJihPPU8ucmVwbGFjZSgvXFwvZywiLyIpKSx0aGlzLl9lbWl0TWF0Y2goeixPKSx4''@;'; + put 'put ''KCl9LGhlLnByb3RvdHlwZS5fc3RhdD1mdW5jdGlvbihPLHope3ZhciBuZT10aGlzLl9tYWtlQWJzKE8pLHRlPSIvIj09PU8uc2xpY2UoLTEpO2lmKE8ubGVuZ3RoPnRoaXMubWF4TGVuZ3RoKXJldHVybiB6KCk7aWYoIXRoaXMuc3RhdCYmdmUodGhpcy5jYWNoZSxuZSkpe3ZhciB4PXRoaXMu''@;'; + put 'put ''Y2FjaGVbbmVdO2lmKEFycmF5LmlzQXJyYXkoeCkmJih4PSJESVIiKSwhdGV8fCJESVIiPT09eClyZXR1cm4geihudWxsLHgpO2lmKHRlJiYiRklMRSI9PT14KXJldHVybiB6KCl9dmFyIFA9dGhpcy5zdGF0Q2FjaGVbbmVdO2lmKHZvaWQgMCE9PVApe2lmKCExPT09UClyZXR1cm4geihudWxs''@;'; + put 'put ''LFApO3ZhciBWPVAuaXNEaXJlY3RvcnkoKT8iRElSIjoiRklMRSI7cmV0dXJuIHRlJiYiRklMRSI9PT1WP3ooKTp6KG51bGwsVixQKX12YXIgVD10aGlzLFM9QWUoInN0YXRcMCIrbmUsZnVuY3Rpb24oRix5ZSl7aWYoeWUmJnllLmlzU3ltYm9saWNMaW5rKCkpcmV0dXJuIFQuZnMuc3RhdChu''@;'; + put 'put ''ZSxmdW5jdGlvbihDZSxEZSl7Q2U/VC5fc3RhdDIoTyxuZSxudWxsLHllLHopOlQuX3N0YXQyKE8sbmUsQ2UsRGUseil9KTtULl9zdGF0MihPLG5lLEYseWUseil9KTtTJiZULmZzLmxzdGF0KG5lLFMpfSxoZS5wcm90b3R5cGUuX3N0YXQyPWZ1bmN0aW9uKE8seixuZSx0ZSx4KXtpZihuZSYm''@;'; + put 'put ''KCJFTk9FTlQiPT09bmUuY29kZXx8IkVOT1RESVIiPT09bmUuY29kZSkpcmV0dXJuIHRoaXMuc3RhdENhY2hlW3pdPSExLHgoKTt2YXIgUD0iLyI9PT1PLnNsaWNlKC0xKTtpZih0aGlzLnN0YXRDYWNoZVt6XT10ZSwiLyI9PT16LnNsaWNlKC0xKSYmdGUmJiF0ZS5pc0RpcmVjdG9yeSgpKXJl''@;'; + put 'put ''dHVybiB4KG51bGwsITEsdGUpO3ZhciBWPSEwO3JldHVybiB0ZSYmKFY9dGUuaXNEaXJlY3RvcnkoKT8iRElSIjoiRklMRSIpLHRoaXMuY2FjaGVbel09dGhpcy5jYWNoZVt6XXx8VixQJiYiRklMRSI9PT1WP3goKTp4KG51bGwsVix0ZSl9fSw0NzUxOihVLFEsWik9Pnt2YXIgaWU9Wig1MTA4''@;'; + put 'put ''KSxsZT1aKDQxNTUpO1UuZXhwb3J0cz12ZSx2ZS5HbG9iU3luYz1BZTt2YXIgWT1aKDczMzQpLFc9WigxMTcxKSxOPShaKDI4ODQpLFooOTUzOSksWigyNTIwKSksZWU9Wig5MjgyKSxxPVooNDA5NSksSj1aKDY3NzIpLHNlPUouc2V0b3B0cyxvZT1KLm93blByb3AsY2U9Si5jaGlsZHJlbkln''@;'; + put 'put ''bm9yZWQsZGU9Si5pc0lnbm9yZWQ7ZnVuY3Rpb24gdmUoa2UsU2Upe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBTZXx8Mz09PWFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgcHJvdmlkZWQgdG8gc3luYyBnbG9iXG5TZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9p''@;'; + put 'put ''c2FhY3Mvbm9kZS1nbG9iL2lzc3Vlcy8xNjciKTtyZXR1cm4gbmV3IEFlKGtlLFNlKS5mb3VuZH1mdW5jdGlvbiBBZShrZSxTZSl7aWYoIWtlKXRocm93IG5ldyBFcnJvcigibXVzdCBwcm92aWRlIHBhdHRlcm4iKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgU2V8fDM9PT1hcmd1bWVudHMubGVu''@;'; + put 'put ''Z3RoKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIHByb3ZpZGVkIHRvIHN5bmMgZ2xvYlxuU2VlOiBodHRwczovL2dpdGh1Yi5jb20vaXNhYWNzL25vZGUtZ2xvYi9pc3N1ZXMvMTY3Iik7aWYoISh0aGlzIGluc3RhbmNlb2YgQWUpKXJldHVybiBuZXcgQWUoa2UsU2UpO2lmKHNlKHRo''@;'; + put 'put ''aXMsa2UsU2UpLHRoaXMubm9wcm9jZXNzKXJldHVybiB0aGlzO3ZhciBJZT10aGlzLm1pbmltYXRjaC5zZXQubGVuZ3RoO3RoaXMubWF0Y2hlcz1uZXcgQXJyYXkoSWUpO2Zvcih2YXIgVGU9MDtUZTxJZTtUZSsrKXRoaXMuX3Byb2Nlc3ModGhpcy5taW5pbWF0Y2guc2V0W1RlXSxUZSwhMSk7''@;'; + put 'put ''dGhpcy5fZmluaXNoKCl9QWUucHJvdG90eXBlLl9maW5pc2g9ZnVuY3Rpb24oKXtpZihlZS5vayh0aGlzIGluc3RhbmNlb2YgQWUpLHRoaXMucmVhbHBhdGgpe3ZhciBrZT10aGlzO3RoaXMubWF0Y2hlcy5mb3JFYWNoKGZ1bmN0aW9uKFNlLEllKXt2YXIgVGU9a2UubWF0Y2hlc1tJZV09T2Jq''@;'; + put 'put ''ZWN0LmNyZWF0ZShudWxsKTtmb3IodmFyIEVlIGluIFNlKXRyeXtFZT1rZS5fbWFrZUFicyhFZSksVGVbWS5yZWFscGF0aFN5bmMoRWUsa2UucmVhbHBhdGhDYWNoZSldPSEwfWNhdGNoKGhlKXtpZigic3RhdCIhPT1oZS5zeXNjYWxsKXRocm93IGhlO1RlW2tlLl9tYWtlQWJzKEVlKV09ITB9''@;'; + put 'put ''fSl9Si5maW5pc2godGhpcyl9LEFlLnByb3RvdHlwZS5fcHJvY2Vzcz1mdW5jdGlvbihrZSxTZSxJZSl7ZWUub2sodGhpcyBpbnN0YW5jZW9mIEFlKTtmb3IodmFyIFRlLEVlPTA7InN0cmluZyI9PXR5cGVvZiBrZVtFZV07KUVlKys7c3dpdGNoKEVlKXtjYXNlIGtlLmxlbmd0aDpyZXR1cm4g''@;'; + put 'put ''dm9pZCB0aGlzLl9wcm9jZXNzU2ltcGxlKGtlLmpvaW4oIi8iKSxTZSk7Y2FzZSAwOlRlPW51bGw7YnJlYWs7ZGVmYXVsdDpUZT1rZS5zbGljZSgwLEVlKS5qb2luKCIvIil9dmFyIGhlLE89a2Uuc2xpY2UoRWUpO251bGw9PT1UZT9oZT0iLiI6KChxKFRlKXx8cShrZS5tYXAoZnVuY3Rpb24o''@;'; + put 'put ''bmUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgbmU/bmU6IlsqXSJ9KS5qb2luKCIvIikpKSYmKFRlJiZxKFRlKXx8KFRlPSIvIitUZSkpLGhlPVRlKTt2YXIgej10aGlzLl9tYWtlQWJzKGhlKTtjZSh0aGlzLGhlKXx8KE9bMF09PT1XLkdMT0JTVEFSP3RoaXMuX3Byb2Nlc3NHbG9iU3RhcihU''@;'; + put 'put ''ZSxoZSx6LE8sU2UsSWUpOnRoaXMuX3Byb2Nlc3NSZWFkZGlyKFRlLGhlLHosTyxTZSxJZSkpfSxBZS5wcm90b3R5cGUuX3Byb2Nlc3NSZWFkZGlyPWZ1bmN0aW9uKGtlLFNlLEllLFRlLEVlLGhlKXt2YXIgTz10aGlzLl9yZWFkZGlyKEllLGhlKTtpZihPKXtmb3IodmFyIHo9VGVbMF0sbmU9''@;'; + put 'put ''ISF0aGlzLm1pbmltYXRjaC5uZWdhdGUseD10aGlzLmRvdHx8Ii4iPT09ei5fZ2xvYi5jaGFyQXQoMCksUD1bXSxWPTA7VjxPLmxlbmd0aDtWKyspKCIuIiE9PShGPU9bVl0pLmNoYXJBdCgwKXx8eCkmJihuZSYmIWtlPyFGLm1hdGNoKHopOkYubWF0Y2goeikpJiZQLnB1c2goRik7dmFyIFQ9''@;'; + put 'put ''UC5sZW5ndGg7aWYoMCE9PVQpaWYoMSE9PVRlLmxlbmd0aHx8dGhpcy5tYXJrfHx0aGlzLnN0YXQpZm9yKFRlLnNoaWZ0KCksVj0wO1Y8VDtWKyspRj1QW1ZdLHRoaXMuX3Byb2Nlc3MoKGtlP1trZSxGXTpbRl0pLmNvbmNhdChUZSksRWUsaGUpO2Vsc2UgZm9yKHRoaXMubWF0Y2hlc1tFZV18''@;'; + put 'put ''fCh0aGlzLm1hdGNoZXNbRWVdPU9iamVjdC5jcmVhdGUobnVsbCkpLFY9MDtWPFQ7VisrKXt2YXIgRj1QW1ZdO2tlJiYoRj0iLyIhPT1rZS5zbGljZSgtMSk/a2UrIi8iK0Y6a2UrRiksIi8iIT09Ri5jaGFyQXQoMCl8fHRoaXMubm9tb3VudHx8KEY9Ti5qb2luKHRoaXMucm9vdCxGKSksdGhp''@;'; + put 'put ''cy5fZW1pdE1hdGNoKEVlLEYpfX19LEFlLnByb3RvdHlwZS5fZW1pdE1hdGNoPWZ1bmN0aW9uKGtlLFNlKXtpZighZGUodGhpcyxTZSkpe3ZhciBJZT10aGlzLl9tYWtlQWJzKFNlKTtpZih0aGlzLm1hcmsmJihTZT10aGlzLl9tYXJrKFNlKSksdGhpcy5hYnNvbHV0ZSYmKFNlPUllKSwhdGhp''@;'; + put 'put ''cy5tYXRjaGVzW2tlXVtTZV0pe2lmKHRoaXMubm9kaXIpe3ZhciBUZT10aGlzLmNhY2hlW0llXTtpZigiRElSIj09PVRlfHxBcnJheS5pc0FycmF5KFRlKSlyZXR1cm59dGhpcy5tYXRjaGVzW2tlXVtTZV09ITAsdGhpcy5zdGF0JiZ0aGlzLl9zdGF0KFNlKX19fSxBZS5wcm90b3R5cGUuX3Jl''@;'; + put 'put ''YWRkaXJJbkdsb2JTdGFyPWZ1bmN0aW9uKGtlKXtpZih0aGlzLmZvbGxvdylyZXR1cm4gdGhpcy5fcmVhZGRpcihrZSwhMSk7dmFyIFNlLEllO3RyeXtJZT10aGlzLmZzLmxzdGF0U3luYyhrZSl9Y2F0Y2goRWUpe2lmKCJFTk9FTlQiPT09RWUuY29kZSlyZXR1cm4gbnVsbH12YXIgVGU9SWUm''@;'; + put 'put ''JkllLmlzU3ltYm9saWNMaW5rKCk7cmV0dXJuIHRoaXMuc3ltbGlua3Nba2VdPVRlLFRlfHwhSWV8fEllLmlzRGlyZWN0b3J5KCk/U2U9dGhpcy5fcmVhZGRpcihrZSwhMSk6dGhpcy5jYWNoZVtrZV09IkZJTEUiLFNlfSxBZS5wcm90b3R5cGUuX3JlYWRkaXI9ZnVuY3Rpb24oa2UsU2Upe2lm''@;'; + put 'put ''KFNlJiYhb2UodGhpcy5zeW1saW5rcyxrZSkpcmV0dXJuIHRoaXMuX3JlYWRkaXJJbkdsb2JTdGFyKGtlKTtpZihvZSh0aGlzLmNhY2hlLGtlKSl7dmFyIEllPXRoaXMuY2FjaGVba2VdO2lmKCFJZXx8IkZJTEUiPT09SWUpcmV0dXJuIG51bGw7aWYoQXJyYXkuaXNBcnJheShJZSkpcmV0dXJu''@;'; + put 'put ''IEllfXRyeXtyZXR1cm4gdGhpcy5fcmVhZGRpckVudHJpZXMoa2UsdGhpcy5mcy5yZWFkZGlyU3luYyhrZSkpfWNhdGNoKFRlKXtyZXR1cm4gdGhpcy5fcmVhZGRpckVycm9yKGtlLFRlKSxudWxsfX0sQWUucHJvdG90eXBlLl9yZWFkZGlyRW50cmllcz1mdW5jdGlvbihrZSxTZSl7aWYoIXRo''@;'; + put 'put ''aXMubWFyayYmIXRoaXMuc3RhdClmb3IodmFyIEllPTA7SWU8U2UubGVuZ3RoO0llKyspe3ZhciBUZT1TZVtJZV07dGhpcy5jYWNoZVtUZT0iLyI9PT1rZT9rZStUZTprZSsiLyIrVGVdPSEwfXJldHVybiB0aGlzLmNhY2hlW2tlXT1TZSxTZX0sQWUucHJvdG90eXBlLl9yZWFkZGlyRXJyb3I9''@;'; + put 'put ''ZnVuY3Rpb24oa2UsU2Upe3N3aXRjaChTZS5jb2RlKXtjYXNlIkVOT1RTVVAiOmNhc2UiRU5PVERJUiI6dmFyIEllPXRoaXMuX21ha2VBYnMoa2UpO2lmKHRoaXMuY2FjaGVbSWVdPSJGSUxFIixJZT09PXRoaXMuY3dkQWJzKXt2YXIgVGU9bmV3IEVycm9yKFNlLmNvZGUrIiBpbnZhbGlkIGN3''@;'; + put 'put ''ZCAiK3RoaXMuY3dkKTt0aHJvdyBUZS5wYXRoPXRoaXMuY3dkLFRlLmNvZGU9U2UuY29kZSxUZX1icmVhaztjYXNlIkVOT0VOVCI6Y2FzZSJFTE9PUCI6Y2FzZSJFTkFNRVRPT0xPTkciOmNhc2UiVU5LTk9XTiI6dGhpcy5jYWNoZVt0aGlzLl9tYWtlQWJzKGtlKV09ITE7YnJlYWs7ZGVmYXVs''@;'; + put 'put ''dDppZih0aGlzLmNhY2hlW3RoaXMuX21ha2VBYnMoa2UpXT0hMSx0aGlzLnN0cmljdCl0aHJvdyBTZTt0aGlzLnNpbGVudHx8aWUuZXJyb3IoImdsb2IgZXJyb3IiLFNlKX19LEFlLnByb3RvdHlwZS5fcHJvY2Vzc0dsb2JTdGFyPWZ1bmN0aW9uKGtlLFNlLEllLFRlLEVlLGhlKXt2YXIgTz10''@;'; + put 'put ''aGlzLl9yZWFkZGlyKEllLGhlKTtpZihPKXt2YXIgej1UZS5zbGljZSgxKSxuZT1rZT9ba2VdOltdLHRlPW5lLmNvbmNhdCh6KTt0aGlzLl9wcm9jZXNzKHRlLEVlLCExKTt2YXIgeD1PLmxlbmd0aDtpZighdGhpcy5zeW1saW5rc1tJZV18fCFoZSlmb3IodmFyIFA9MDtQPHg7UCsrKWlmKCIu''@;'; + put 'put ''IiE9PU9bUF0uY2hhckF0KDApfHx0aGlzLmRvdCl7dmFyIFY9bmUuY29uY2F0KE9bUF0seik7dGhpcy5fcHJvY2VzcyhWLEVlLCEwKTt2YXIgVD1uZS5jb25jYXQoT1tQXSxUZSk7dGhpcy5fcHJvY2VzcyhULEVlLCEwKX19fSxBZS5wcm90b3R5cGUuX3Byb2Nlc3NTaW1wbGU9ZnVuY3Rpb24o''@;'; + put 'put ''a2UsU2Upe3ZhciBJZT10aGlzLl9zdGF0KGtlKTtpZih0aGlzLm1hdGNoZXNbU2VdfHwodGhpcy5tYXRjaGVzW1NlXT1PYmplY3QuY3JlYXRlKG51bGwpKSxJZSl7aWYoa2UmJnEoa2UpJiYhdGhpcy5ub21vdW50KXt2YXIgVGU9L1tcL1xcXSQvLnRlc3Qoa2UpOyIvIj09PWtlLmNoYXJBdCgw''@;'; + put 'put ''KT9rZT1OLmpvaW4odGhpcy5yb290LGtlKTooa2U9Ti5yZXNvbHZlKHRoaXMucm9vdCxrZSksVGUmJihrZSs9Ii8iKSl9IndpbjMyIj09PWxlLnBsYXRmb3JtJiYoa2U9a2UucmVwbGFjZSgvXFwvZywiLyIpKSx0aGlzLl9lbWl0TWF0Y2goU2Usa2UpfX0sQWUucHJvdG90eXBlLl9zdGF0PWZ1''@;'; + put 'put ''bmN0aW9uKGtlKXt2YXIgU2U9dGhpcy5fbWFrZUFicyhrZSksSWU9Ii8iPT09a2Uuc2xpY2UoLTEpO2lmKGtlLmxlbmd0aD50aGlzLm1heExlbmd0aClyZXR1cm4hMTtpZighdGhpcy5zdGF0JiZvZSh0aGlzLmNhY2hlLFNlKSl7dmFyIFRlPXRoaXMuY2FjaGVbU2VdO2lmKEFycmF5LmlzQXJy''@;'; + put 'put ''YXkoVGUpJiYoVGU9IkRJUiIpLCFJZXx8IkRJUiI9PT1UZSlyZXR1cm4gVGU7aWYoSWUmJiJGSUxFIj09PVRlKXJldHVybiExfXZhciBFZT10aGlzLnN0YXRDYWNoZVtTZV07aWYoIUVlKXt2YXIgaGU7dHJ5e2hlPXRoaXMuZnMubHN0YXRTeW5jKFNlKX1jYXRjaChPKXtpZihPJiYoIkVOT0VO''@;'; + put 'put ''VCI9PT1PLmNvZGV8fCJFTk9URElSIj09PU8uY29kZSkpcmV0dXJuIHRoaXMuc3RhdENhY2hlW1NlXT0hMSwhMX1pZihoZSYmaGUuaXNTeW1ib2xpY0xpbmsoKSl0cnl7RWU9dGhpcy5mcy5zdGF0U3luYyhTZSl9Y2F0Y2goTyl7RWU9aGV9ZWxzZSBFZT1oZX1yZXR1cm4gdGhpcy5zdGF0Q2Fj''@;'; + put 'put ''aGVbU2VdPUVlLFRlPSEwLEVlJiYoVGU9RWUuaXNEaXJlY3RvcnkoKT8iRElSIjoiRklMRSIpLHRoaXMuY2FjaGVbU2VdPXRoaXMuY2FjaGVbU2VdfHxUZSwoIUllfHwiRklMRSIhPT1UZSkmJlRlfSxBZS5wcm90b3R5cGUuX21hcms9ZnVuY3Rpb24oa2Upe3JldHVybiBKLm1hcmsodGhpcyxr''@;'; + put 'put ''ZSl9LEFlLnByb3RvdHlwZS5fbWFrZUFicz1mdW5jdGlvbihrZSl7cmV0dXJuIEoubWFrZUFicyh0aGlzLGtlKX19LDY0NTg6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9ZnVuY3Rpb24oWil7aWYobnVsbD09PVp8fCJvYmplY3QiIT10eXBlb2YgWilyZXR1cm4gWjtpZihaIGluc3RhbmNl''@;'; + put 'put ''b2YgT2JqZWN0KXZhciBpZT17X19wcm90b19fOlEoWil9O2Vsc2UgaWU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoWikuZm9yRWFjaChmdW5jdGlvbihsZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGllLGxlLE9iamVjdC5nZXRPd25Qcm9w''@;'; + put 'put ''ZXJ0eURlc2NyaXB0b3IoWixsZSkpfSksaWV9O3ZhciBRPU9iamVjdC5nZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oWil7cmV0dXJuIFouX19wcm90b19ffX0sNzc6KFUsUSxaKT0+e3ZhciBpZSxsZSxZPVooNDE1NSksVz1aKDUxMDgpLE49Wig1NDQzKSxlZT1aKDIxNjEpLHE9Wig4NTIwKSxK''@;'; + put 'put ''PVooNjQ1OCksc2U9Wig5NTM5KTtmdW5jdGlvbiBvZShUZSxFZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFRlLGllLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRWV9fSl9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbC5mb3I/KGllPVN5bWJvbC5m''@;'; + put 'put ''b3IoImdyYWNlZnVsLWZzLnF1ZXVlIiksbGU9U3ltYm9sLmZvcigiZ3JhY2VmdWwtZnMucHJldmlvdXMiKSk6KGllPSJfX19ncmFjZWZ1bC1mcy5xdWV1ZSIsbGU9Il9fX2dyYWNlZnVsLWZzLnByZXZpb3VzIik7dmFyIGNlLGRlPWZ1bmN0aW9uKCl7fTtmdW5jdGlvbiBBZShUZSl7ZWUoVGUp''@;'; + put 'put ''LFRlLmdyYWNlZnVsaWZ5PUFlLFRlLmNyZWF0ZVJlYWRTdHJlYW09ZnVuY3Rpb24oUGUsUWUpe3JldHVybiBuZXcgVGUuUmVhZFN0cmVhbShQZSxRZSl9LFRlLmNyZWF0ZVdyaXRlU3RyZWFtPWZ1bmN0aW9uKFBlLFFlKXtyZXR1cm4gbmV3IFRlLldyaXRlU3RyZWFtKFBlLFFlKX07dmFyIEVl''@;'; + put 'put ''PVRlLnJlYWRGaWxlO1RlLnJlYWRGaWxlPWZ1bmN0aW9uKFBlLFFlLCRlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgUWUmJigkZT1RZSxRZT1udWxsKSxmdW5jdGlvbiBndCh3dCx2dCxBdCxtdCl7cmV0dXJuIEVlKHd0LHZ0LGZ1bmN0aW9uKGh0KXshaHR8fCJFTUZJTEUiIT09aHQuY29k''@;'; + put 'put ''ZSYmIkVORklMRSIhPT1odC5jb2RlPyJmdW5jdGlvbiI9PXR5cGVvZiBBdCYmQXQuYXBwbHkodGhpcyxhcmd1bWVudHMpOmtlKFtndCxbd3QsdnQsQXRdLGh0LG10fHxEYXRlLm5vdygpLERhdGUubm93KCldKX0pfShQZSxRZSwkZSl9O3ZhciBoZT1UZS53cml0ZUZpbGU7VGUud3JpdGVGaWxl''@;'; + put 'put ''PWZ1bmN0aW9uKFBlLFFlLCRlLGd0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgJGUmJihndD0kZSwkZT1udWxsKSxmdW5jdGlvbiB3dCh2dCxBdCxtdCxodCxCdCl7cmV0dXJuIGhlKHZ0LEF0LG10LGZ1bmN0aW9uKG9uKXshb258fCJFTUZJTEUiIT09b24uY29kZSYmIkVORklMRSIhPT1v''@;'; + put 'put ''bi5jb2RlPyJmdW5jdGlvbiI9PXR5cGVvZiBodCYmaHQuYXBwbHkodGhpcyxhcmd1bWVudHMpOmtlKFt3dCxbdnQsQXQsbXQsaHRdLG9uLEJ0fHxEYXRlLm5vdygpLERhdGUubm93KCldKX0pfShQZSxRZSwkZSxndCl9O3ZhciBPPVRlLmFwcGVuZEZpbGU7TyYmKFRlLmFwcGVuZEZpbGU9ZnVu''@;'; + put 'put ''Y3Rpb24oUGUsUWUsJGUsZ3Qpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiAkZSYmKGd0PSRlLCRlPW51bGwpLGZ1bmN0aW9uIHd0KHZ0LEF0LG10LGh0LEJ0KXtyZXR1cm4gTyh2dCxBdCxtdCxmdW5jdGlvbihvbil7IW9ufHwiRU1GSUxFIiE9PW9uLmNvZGUmJiJFTkZJTEUiIT09b24uY29k''@;'; + put 'put ''ZT8iZnVuY3Rpb24iPT10eXBlb2YgaHQmJmh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTprZShbd3QsW3Z0LEF0LG10LGh0XSxvbixCdHx8RGF0ZS5ub3coKSxEYXRlLm5vdygpXSl9KX0oUGUsUWUsJGUsZ3QpfSk7dmFyIHo9VGUuY29weUZpbGU7eiYmKFRlLmNvcHlGaWxlPWZ1bmN0aW9uKFBl''@;'; + put 'put ''LFFlLCRlLGd0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgJGUmJihndD0kZSwkZT0wKSxmdW5jdGlvbiB3dCh2dCxBdCxtdCxodCxCdCl7cmV0dXJuIHoodnQsQXQsbXQsZnVuY3Rpb24ob24peyFvbnx8IkVNRklMRSIhPT1vbi5jb2RlJiYiRU5GSUxFIiE9PW9uLmNvZGU/ImZ1bmN0aW9u''@;'; + put 'put ''Ij09dHlwZW9mIGh0JiZodC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6a2UoW3d0LFt2dCxBdCxtdCxodF0sb24sQnR8fERhdGUubm93KCksRGF0ZS5ub3coKV0pfSl9KFBlLFFlLCRlLGd0KX0pO3ZhciBuZT1UZS5yZWFkZGlyO1RlLnJlYWRkaXI9ZnVuY3Rpb24oUGUsUWUsJGUpeyJmdW5jdGlv''@;'; + put 'put ''biI9PXR5cGVvZiBRZSYmKCRlPVFlLFFlPW51bGwpO3ZhciBndD10ZS50ZXN0KFkudmVyc2lvbik/ZnVuY3Rpb24odnQsQXQsbXQsaHQpe3JldHVybiBuZSh2dCx3dCh2dCxBdCxtdCxodCkpfTpmdW5jdGlvbih2dCxBdCxtdCxodCl7cmV0dXJuIG5lKHZ0LEF0LHd0KHZ0LEF0LG10LGh0KSl9''@;'; + put 'put ''O3JldHVybiBndChQZSxRZSwkZSk7ZnVuY3Rpb24gd3QodnQsQXQsbXQsaHQpe3JldHVybiBmdW5jdGlvbihCdCxvbil7IUJ0fHwiRU1GSUxFIiE9PUJ0LmNvZGUmJiJFTkZJTEUiIT09QnQuY29kZT8ob24mJm9uLnNvcnQmJm9uLnNvcnQoKSwiZnVuY3Rpb24iPT10eXBlb2YgbXQmJm10LmNh''@;'; + put 'put ''bGwodGhpcyxCdCxvbikpOmtlKFtndCxbdnQsQXQsbXRdLEJ0LGh0fHxEYXRlLm5vdygpLERhdGUubm93KCldKX19fTt2YXIgdGU9L152WzAtNV1cLi87aWYoInYwLjgiPT09WS52ZXJzaW9uLnN1YnN0cigwLDQpKXt2YXIgeD1xKFRlKTtGPXguUmVhZFN0cmVhbSx5ZT14LldyaXRlU3RyZWFt''@;'; + put 'put ''fXZhciBQPVRlLlJlYWRTdHJlYW07UCYmKEYucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUC5wcm90b3R5cGUpLEYucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24oKXt2YXIgUGU9dGhpcztEZShQZS5wYXRoLFBlLmZsYWdzLFBlLm1vZGUsZnVuY3Rpb24oUWUsJGUpe1FlPyhQZS5hdXRvQ2xvc2Um''@;'; + put 'put ''JlBlLmRlc3Ryb3koKSxQZS5lbWl0KCJlcnJvciIsUWUpKTooUGUuZmQ9JGUsUGUuZW1pdCgib3BlbiIsJGUpLFBlLnJlYWQoKSl9KX0pO3ZhciBWPVRlLldyaXRlU3RyZWFtO1YmJih5ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShWLnByb3RvdHlwZSkseWUucHJvdG90eXBlLm9wZW49ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgUGU9dGhpcztEZShQZS5wYXRoLFBlLmZsYWdzLFBlLm1vZGUsZnVuY3Rpb24oUWUsJGUpe1FlPyhQZS5kZXN0cm95KCksUGUuZW1pdCgiZXJyb3IiLFFlKSk6KFBlLmZkPSRlLFBlLmVtaXQoIm9wZW4iLCRlKSl9KX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUZSwiUmVh''@;'; + put 'put ''ZFN0cmVhbSIse2dldDpmdW5jdGlvbigpe3JldHVybiBGfSxzZXQ6ZnVuY3Rpb24oUGUpe0Y9UGV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFRlLCJXcml0ZVN0cmVhbSIse2dldDpmdW5jdGlvbigpe3JldHVybiB5ZX0sc2V0OmZ1bmN0''@;'; + put 'put ''aW9uKFBlKXt5ZT1QZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KTt2YXIgVD1GO09iamVjdC5kZWZpbmVQcm9wZXJ0eShUZSwiRmlsZVJlYWRTdHJlYW0iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVH0sc2V0OmZ1bmN0aW9uKFBlKXtUPVBlfSxlbnVtZXJhYmxlOiEwLGNvbmZp''@;'; + put 'put ''Z3VyYWJsZTohMH0pO3ZhciBTPXllO2Z1bmN0aW9uIEYoUGUsUWUpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgRj8oUC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcyk6Ri5hcHBseShPYmplY3QuY3JlYXRlKEYucHJvdG90eXBlKSxhcmd1bWVudHMpfWZ1bmN0aW9uIHllKFBlLFFlKXtyZXR1''@;'; + put 'put ''cm4gdGhpcyBpbnN0YW5jZW9mIHllPyhWLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzKTp5ZS5hcHBseShPYmplY3QuY3JlYXRlKHllLnByb3RvdHlwZSksYXJndW1lbnRzKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoVGUsIkZpbGVXcml0ZVN0cmVhbSIse2dldDpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biBTfSxzZXQ6ZnVuY3Rpb24oUGUpe1M9UGV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk7dmFyIENlPVRlLm9wZW47ZnVuY3Rpb24gRGUoUGUsUWUsJGUsZ3Qpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiAkZSYmKGd0PSRlLCRlPW51bGwpLGZ1bmN0aW9uIHd0KHZ0LEF0LG10''@;'; + put 'put ''LGh0LEJ0KXtyZXR1cm4gQ2UodnQsQXQsbXQsZnVuY3Rpb24ob24sX3QpeyFvbnx8IkVNRklMRSIhPT1vbi5jb2RlJiYiRU5GSUxFIiE9PW9uLmNvZGU/ImZ1bmN0aW9uIj09dHlwZW9mIGh0JiZodC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6a2UoW3d0LFt2dCxBdCxtdCxodF0sb24sQnR8fERh''@;'; + put 'put ''dGUubm93KCksRGF0ZS5ub3coKV0pfSl9KFBlLFFlLCRlLGd0KX1yZXR1cm4gVGUub3Blbj1EZSxUZX1mdW5jdGlvbiBrZShUZSl7ZGUoIkVOUVVFVUUiLFRlWzBdLm5hbWUsVGVbMV0pLE5baWVdLnB1c2goVGUpLEllKCl9ZnVuY3Rpb24gU2UoKXtmb3IodmFyIFRlPURhdGUubm93KCksRWU9''@;'; + put 'put ''MDtFZTxOW2llXS5sZW5ndGg7KytFZSlOW2llXVtFZV0ubGVuZ3RoPjImJihOW2llXVtFZV1bM109VGUsTltpZV1bRWVdWzRdPVRlKTtJZSgpfWZ1bmN0aW9uIEllKCl7aWYoY2xlYXJUaW1lb3V0KGNlKSxjZT12b2lkIDAsMCE9PU5baWVdLmxlbmd0aCl7dmFyIFRlPU5baWVdLnNoaWZ0KCks''@;'; + put 'put ''RWU9VGVbMF0saGU9VGVbMV0sTz1UZVsyXSx6PVRlWzNdLG5lPVRlWzRdO2lmKHZvaWQgMD09PXopZGUoIlJFVFJZIixFZS5uYW1lLGhlKSxFZS5hcHBseShudWxsLGhlKTtlbHNlIGlmKERhdGUubm93KCktej49NmU0KXtkZSgiVElNRU9VVCIsRWUubmFtZSxoZSk7dmFyIHRlPWhlLnBvcCgp''@;'; + put 'put ''OyJmdW5jdGlvbiI9PXR5cGVvZiB0ZSYmdGUuY2FsbChudWxsLE8pfWVsc2V7dmFyIHg9RGF0ZS5ub3coKS1uZSxQPU1hdGgubWF4KG5lLXosMSk7eD49TWF0aC5taW4oMS4yKlAsMTAwKT8oZGUoIlJFVFJZIixFZS5uYW1lLGhlKSxFZS5hcHBseShudWxsLGhlLmNvbmNhdChbel0pKSk6Tltp''@;'; + put 'put ''ZV0ucHVzaChUZSl9dm9pZCAwPT09Y2UmJihjZT1zZXRUaW1lb3V0KEllLDApKX19c2UuZGVidWdsb2c/ZGU9c2UuZGVidWdsb2coImdmczQiKTovXGJnZnM0XGIvaS50ZXN0KFkuZW52Lk5PREVfREVCVUd8fCIiKSYmKGRlPWZ1bmN0aW9uKCl7dmFyIFRlPXNlLmZvcm1hdC5hcHBseShzZSxh''@;'; + put 'put ''cmd1bWVudHMpO1RlPSJHRlM0OiAiK1RlLnNwbGl0KC9cbi8pLmpvaW4oIlxuR0ZTNDogIiksVy5lcnJvcihUZSl9KSxOW2llXXx8KG9lKE4sWi5nW2llXXx8W10pLE4uY2xvc2U9ZnVuY3Rpb24oVGUpe2Z1bmN0aW9uIEVlKGhlLE8pe3JldHVybiBUZS5jYWxsKE4saGUsZnVuY3Rpb24oeil7''@;'; + put 'put ''enx8U2UoKSwiZnVuY3Rpb24iPT10eXBlb2YgTyYmTy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KEVlLGxlLHt2YWx1ZTpUZX0pLEVlfShOLmNsb3NlKSxOLmNsb3NlU3luYz1mdW5jdGlvbihUZSl7ZnVuY3Rpb24gRWUoaGUpe1RlLmFwcGx5''@;'; + put 'put ''KE4sYXJndW1lbnRzKSxTZSgpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoRWUsbGUse3ZhbHVlOlRlfSksRWV9KE4uY2xvc2VTeW5jKSwvXGJnZnM0XGIvaS50ZXN0KFkuZW52Lk5PREVfREVCVUd8fCIiKSYmWS5vbigiZXhpdCIsZnVuY3Rpb24oKXtkZShOW2llXSksWig5MjgyKS5l''@;'; + put 'put ''cXVhbChOW2llXS5sZW5ndGgsMCl9KSksWi5nW2llXXx8b2UoWi5nLE5baWVdKSxVLmV4cG9ydHM9QWUoSihOKSksWS5lbnYuVEVTVF9HUkFDRUZVTF9GU19HTE9CQUxfUEFUQ0gmJiFOLl9fcGF0Y2hlZCYmKFUuZXhwb3J0cz1BZShOKSxOLl9fcGF0Y2hlZD0hMCl9LDg1MjA6KFUsUSxaKT0+''@;'; + put 'put ''e3ZhciBpZT1aKDQxNTUpLGxlPVooMjgzMCkuU3RyZWFtO1UuZXhwb3J0cz1mdW5jdGlvbihZKXtyZXR1cm57UmVhZFN0cmVhbTpmdW5jdGlvbiBXKE4sZWUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFcpKXJldHVybiBuZXcgVyhOLGVlKTtsZS5jYWxsKHRoaXMpO3ZhciBxPXRoaXM7dGhpcy5w''@;'; + put 'put ''YXRoPU4sdGhpcy5mZD1udWxsLHRoaXMucmVhZGFibGU9ITAsdGhpcy5wYXVzZWQ9ITEsdGhpcy5mbGFncz0iciIsdGhpcy5tb2RlPTQzOCx0aGlzLmJ1ZmZlclNpemU9NjU1MzYsZWU9ZWV8fHt9O2Zvcih2YXIgSj1PYmplY3Qua2V5cyhlZSksc2U9MCxvZT1KLmxlbmd0aDtzZTxvZTtzZSsr''@;'; + put 'put ''KXt2YXIgY2U9SltzZV07dGhpc1tjZV09ZWVbY2VdfWlmKHRoaXMuZW5jb2RpbmcmJnRoaXMuc2V0RW5jb2RpbmcodGhpcy5lbmNvZGluZyksdm9pZCAwIT09dGhpcy5zdGFydCl7aWYoIm51bWJlciIhPXR5cGVvZiB0aGlzLnN0YXJ0KXRocm93IFR5cGVFcnJvcigic3RhcnQgbXVzdCBiZSBh''@;'; + put 'put ''IE51bWJlciIpO2lmKHZvaWQgMD09PXRoaXMuZW5kKXRoaXMuZW5kPTEvMDtlbHNlIGlmKCJudW1iZXIiIT10eXBlb2YgdGhpcy5lbmQpdGhyb3cgVHlwZUVycm9yKCJlbmQgbXVzdCBiZSBhIE51bWJlciIpO2lmKHRoaXMuc3RhcnQ+dGhpcy5lbmQpdGhyb3cgbmV3IEVycm9yKCJzdGFydCBt''@;'; + put 'put ''dXN0IGJlIDw9IGVuZCIpO3RoaXMucG9zPXRoaXMuc3RhcnR9bnVsbD09PXRoaXMuZmQ/WS5vcGVuKHRoaXMucGF0aCx0aGlzLmZsYWdzLHRoaXMubW9kZSxmdW5jdGlvbihkZSx2ZSl7aWYoZGUpcmV0dXJuIHEuZW1pdCgiZXJyb3IiLGRlKSx2b2lkKHEucmVhZGFibGU9ITEpO3EuZmQ9dmUs''@;'; + put 'put ''cS5lbWl0KCJvcGVuIix2ZSkscS5fcmVhZCgpfSk6aWUubmV4dFRpY2soZnVuY3Rpb24oKXtxLl9yZWFkKCl9KX0sV3JpdGVTdHJlYW06ZnVuY3Rpb24gVyhOLGVlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBXKSlyZXR1cm4gbmV3IFcoTixlZSk7bGUuY2FsbCh0aGlzKSx0aGlzLnBhdGg9Tix0''@;'; + put 'put ''aGlzLmZkPW51bGwsdGhpcy53cml0YWJsZT0hMCx0aGlzLmZsYWdzPSJ3Iix0aGlzLmVuY29kaW5nPSJiaW5hcnkiLHRoaXMubW9kZT00MzgsdGhpcy5ieXRlc1dyaXR0ZW49MCxlZT1lZXx8e307Zm9yKHZhciBxPU9iamVjdC5rZXlzKGVlKSxKPTAsc2U9cS5sZW5ndGg7SjxzZTtKKyspe3Zh''@;'; + put 'put ''ciBvZT1xW0pdO3RoaXNbb2VdPWVlW29lXX1pZih2b2lkIDAhPT10aGlzLnN0YXJ0KXtpZigibnVtYmVyIiE9dHlwZW9mIHRoaXMuc3RhcnQpdGhyb3cgVHlwZUVycm9yKCJzdGFydCBtdXN0IGJlIGEgTnVtYmVyIik7aWYodGhpcy5zdGFydDwwKXRocm93IG5ldyBFcnJvcigic3RhcnQgbXVz''@;'; + put 'put ''dCBiZSA+PSB6ZXJvIik7dGhpcy5wb3M9dGhpcy5zdGFydH10aGlzLmJ1c3k9ITEsdGhpcy5fcXVldWU9W10sbnVsbD09PXRoaXMuZmQmJih0aGlzLl9vcGVuPVkub3Blbix0aGlzLl9xdWV1ZS5wdXNoKFt0aGlzLl9vcGVuLHRoaXMucGF0aCx0aGlzLmZsYWdzLHRoaXMubW9kZSx2b2lkIDBd''@;'; + put 'put ''KSx0aGlzLmZsdXNoKCkpfX19fSwyMTYxOihVLFEsWik9Pnt2YXIgaWU9Wig0MTU1KSxsZT1aKDMyMDgpLFk9aWUuY3dkLFc9bnVsbCxOPWllLmVudi5HUkFDRUZVTF9GU19QTEFURk9STXx8aWUucGxhdGZvcm07aWUuY3dkPWZ1bmN0aW9uKCl7cmV0dXJuIFd8fChXPVkuY2FsbChpZSkpLFd9''@;'; + put 'put ''O3RyeXtpZS5jd2QoKX1jYXRjaChxKXt9aWYoImZ1bmN0aW9uIj09dHlwZW9mIGllLmNoZGlyKXt2YXIgZWU9aWUuY2hkaXI7aWUuY2hkaXI9ZnVuY3Rpb24ocSl7Vz1udWxsLGVlLmNhbGwoaWUscSl9LE9iamVjdC5zZXRQcm90b3R5cGVPZiYmT2JqZWN0LnNldFByb3RvdHlwZU9mKGllLmNo''@;'; + put 'put ''ZGlyLGVlKX1VLmV4cG9ydHM9ZnVuY3Rpb24ocSl7dmFyIFNlLGtlO2Z1bmN0aW9uIEooU2Upe3JldHVybiBTZSYmZnVuY3Rpb24oSWUsVGUsRWUpe3JldHVybiBTZS5jYWxsKHEsSWUsVGUsZnVuY3Rpb24oaGUpe0FlKGhlKSYmKGhlPW51bGwpLEVlJiZFZS5hcHBseSh0aGlzLGFyZ3VtZW50''@;'; + put 'put ''cyl9KX19ZnVuY3Rpb24gc2UoU2Upe3JldHVybiBTZSYmZnVuY3Rpb24oSWUsVGUpe3RyeXtyZXR1cm4gU2UuY2FsbChxLEllLFRlKX1jYXRjaChFZSl7aWYoIUFlKEVlKSl0aHJvdyBFZX19fWZ1bmN0aW9uIG9lKFNlKXtyZXR1cm4gU2UmJmZ1bmN0aW9uKEllLFRlLEVlLGhlKXtyZXR1cm4g''@;'; + put 'put ''U2UuY2FsbChxLEllLFRlLEVlLGZ1bmN0aW9uKE8pe0FlKE8pJiYoTz1udWxsKSxoZSYmaGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9fWZ1bmN0aW9uIGNlKFNlKXtyZXR1cm4gU2UmJmZ1bmN0aW9uKEllLFRlLEVlKXt0cnl7cmV0dXJuIFNlLmNhbGwocSxJZSxUZSxFZSl9Y2F0Y2goaGUp''@;'; + put 'put ''e2lmKCFBZShoZSkpdGhyb3cgaGV9fX1mdW5jdGlvbiBkZShTZSl7cmV0dXJuIFNlJiZmdW5jdGlvbihJZSxUZSxFZSl7ZnVuY3Rpb24gaGUoTyx6KXt6JiYoei51aWQ8MCYmKHoudWlkKz00Mjk0OTY3Mjk2KSx6LmdpZDwwJiYoei5naWQrPTQyOTQ5NjcyOTYpKSxFZSYmRWUuYXBwbHkodGhp''@;'; + put 'put ''cyxhcmd1bWVudHMpfXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBUZSYmKEVlPVRlLFRlPW51bGwpLFRlP1NlLmNhbGwocSxJZSxUZSxoZSk6U2UuY2FsbChxLEllLGhlKX19ZnVuY3Rpb24gdmUoU2Upe3JldHVybiBTZSYmZnVuY3Rpb24oSWUsVGUpe3ZhciBFZT1UZT9TZS5jYWxsKHEsSWUs''@;'; + put 'put ''VGUpOlNlLmNhbGwocSxJZSk7cmV0dXJuIEVlJiYoRWUudWlkPDAmJihFZS51aWQrPTQyOTQ5NjcyOTYpLEVlLmdpZDwwJiYoRWUuZ2lkKz00Mjk0OTY3Mjk2KSksRWV9fWZ1bmN0aW9uIEFlKFNlKXtyZXR1cm4hU2V8fCJFTk9TWVMiPT09U2UuY29kZXx8IShpZS5nZXR1aWQmJjA9PT1pZS5n''@;'; + put 'put ''ZXR1aWQoKXx8IkVJTlZBTCIhPT1TZS5jb2RlJiYiRVBFUk0iIT09U2UuY29kZSl9bGUuaGFzT3duUHJvcGVydHkoIk9fU1lNTElOSyIpJiZpZS52ZXJzaW9uLm1hdGNoKC9edjBcLjZcLlswLTJdfF52MFwuNVwuLykmJigoU2U9cSkubGNobW9kPWZ1bmN0aW9uKEllLFRlLEVlKXtTZS5vcGVu''@;'; + put 'put ''KEllLGxlLk9fV1JPTkxZfGxlLk9fU1lNTElOSyxUZSxmdW5jdGlvbihoZSxPKXtoZT9FZSYmRWUoaGUpOlNlLmZjaG1vZChPLFRlLGZ1bmN0aW9uKHope1NlLmNsb3NlKE8sZnVuY3Rpb24obmUpe0VlJiZFZSh6fHxuZSl9KX0pfSl9LFNlLmxjaG1vZFN5bmM9ZnVuY3Rpb24oSWUsVGUpe3Zh''@;'; + put 'put ''ciBFZSxoZT1TZS5vcGVuU3luYyhJZSxsZS5PX1dST05MWXxsZS5PX1NZTUxJTkssVGUpLE89ITA7dHJ5e0VlPVNlLmZjaG1vZFN5bmMoaGUsVGUpLE89ITF9ZmluYWxseXtpZihPKXRyeXtTZS5jbG9zZVN5bmMoaGUpfWNhdGNoKHope31lbHNlIFNlLmNsb3NlU3luYyhoZSl9cmV0dXJuIEVl''@;'; + put 'put ''fSkscS5sdXRpbWVzfHxmdW5jdGlvbihTZSl7bGUuaGFzT3duUHJvcGVydHkoIk9fU1lNTElOSyIpJiZTZS5mdXRpbWVzPyhTZS5sdXRpbWVzPWZ1bmN0aW9uKEllLFRlLEVlLGhlKXtTZS5vcGVuKEllLGxlLk9fU1lNTElOSyxmdW5jdGlvbihPLHope08/aGUmJmhlKE8pOlNlLmZ1dGltZXMo''@;'; + put 'put ''eixUZSxFZSxmdW5jdGlvbihuZSl7U2UuY2xvc2UoeixmdW5jdGlvbih0ZSl7aGUmJmhlKG5lfHx0ZSl9KX0pfSl9LFNlLmx1dGltZXNTeW5jPWZ1bmN0aW9uKEllLFRlLEVlKXt2YXIgaGUsTz1TZS5vcGVuU3luYyhJZSxsZS5PX1NZTUxJTkspLHo9ITA7dHJ5e2hlPVNlLmZ1dGltZXNTeW5j''@;'; + put 'put ''KE8sVGUsRWUpLHo9ITF9ZmluYWxseXtpZih6KXRyeXtTZS5jbG9zZVN5bmMoTyl9Y2F0Y2gobmUpe31lbHNlIFNlLmNsb3NlU3luYyhPKX1yZXR1cm4gaGV9KTpTZS5mdXRpbWVzJiYoU2UubHV0aW1lcz1mdW5jdGlvbihJZSxUZSxFZSxoZSl7aGUmJmllLm5leHRUaWNrKGhlKX0sU2UubHV0''@;'; + put 'put ''aW1lc1N5bmM9ZnVuY3Rpb24oKXt9KX0ocSkscS5jaG93bj1vZShxLmNob3duKSxxLmZjaG93bj1vZShxLmZjaG93bikscS5sY2hvd249b2UocS5sY2hvd24pLHEuY2htb2Q9SihxLmNobW9kKSxxLmZjaG1vZD1KKHEuZmNobW9kKSxxLmxjaG1vZD1KKHEubGNobW9kKSxxLmNob3duU3luYz1j''@;'; + put 'put ''ZShxLmNob3duU3luYykscS5mY2hvd25TeW5jPWNlKHEuZmNob3duU3luYykscS5sY2hvd25TeW5jPWNlKHEubGNob3duU3luYykscS5jaG1vZFN5bmM9c2UocS5jaG1vZFN5bmMpLHEuZmNobW9kU3luYz1zZShxLmZjaG1vZFN5bmMpLHEubGNobW9kU3luYz1zZShxLmxjaG1vZFN5bmMpLHEu''@;'; + put 'put ''c3RhdD1kZShxLnN0YXQpLHEuZnN0YXQ9ZGUocS5mc3RhdCkscS5sc3RhdD1kZShxLmxzdGF0KSxxLnN0YXRTeW5jPXZlKHEuc3RhdFN5bmMpLHEuZnN0YXRTeW5jPXZlKHEuZnN0YXRTeW5jKSxxLmxzdGF0U3luYz12ZShxLmxzdGF0U3luYykscS5jaG1vZCYmIXEubGNobW9kJiYocS5sY2ht''@;'; + put 'put ''b2Q9ZnVuY3Rpb24oU2UsSWUsVGUpe1RlJiZpZS5uZXh0VGljayhUZSl9LHEubGNobW9kU3luYz1mdW5jdGlvbigpe30pLHEuY2hvd24mJiFxLmxjaG93biYmKHEubGNob3duPWZ1bmN0aW9uKFNlLEllLFRlLEVlKXtFZSYmaWUubmV4dFRpY2soRWUpfSxxLmxjaG93blN5bmM9ZnVuY3Rpb24o''@;'; + put 'put ''KXt9KSwid2luMzIiPT09TiYmKHEucmVuYW1lPSJmdW5jdGlvbiIhPXR5cGVvZiBxLnJlbmFtZT9xLnJlbmFtZTpmdW5jdGlvbihTZSl7ZnVuY3Rpb24gSWUoVGUsRWUsaGUpe3ZhciBPPURhdGUubm93KCksej0wO1NlKFRlLEVlLGZ1bmN0aW9uIG5lKHRlKXtpZih0ZSYmKCJFQUNDRVMiPT09''@;'; + put 'put ''dGUuY29kZXx8IkVQRVJNIj09PXRlLmNvZGUpJiZEYXRlLm5vdygpLU88NmU0KXJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cS5zdGF0KEVlLGZ1bmN0aW9uKHgsUCl7eCYmIkVOT0VOVCI9PT14LmNvZGU/U2UoVGUsRWUsbmUpOmhlKHRlKX0pfSx6KSx2b2lkKHo8MTAwJiYoeis9MTAp''@;'; + put 'put ''KTtoZSYmaGUodGUpfSl9cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZiYmT2JqZWN0LnNldFByb3RvdHlwZU9mKEllLFNlKSxJZX0ocS5yZW5hbWUpKSxxLnJlYWQ9ImZ1bmN0aW9uIiE9dHlwZW9mIHEucmVhZD9xLnJlYWQ6ZnVuY3Rpb24oU2Upe2Z1bmN0aW9uIEllKFRlLEVlLGhlLE8s''@;'; + put 'put ''eixuZSl7dmFyIHRlO2lmKG5lJiYiZnVuY3Rpb24iPT10eXBlb2YgbmUpe3ZhciB4PTA7dGU9ZnVuY3Rpb24oUCxWLFQpe2lmKFAmJiJFQUdBSU4iPT09UC5jb2RlJiZ4PDEwKXJldHVybiB4KyssU2UuY2FsbChxLFRlLEVlLGhlLE8seix0ZSk7bmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1y''@;'; + put 'put ''ZXR1cm4gU2UuY2FsbChxLFRlLEVlLGhlLE8seix0ZSl9cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZiYmT2JqZWN0LnNldFByb3RvdHlwZU9mKEllLFNlKSxJZX0ocS5yZWFkKSxxLnJlYWRTeW5jPSJmdW5jdGlvbiIhPXR5cGVvZiBxLnJlYWRTeW5jP3EucmVhZFN5bmM6KGtlPXEucmVh''@;'; + put 'put ''ZFN5bmMsZnVuY3Rpb24oU2UsSWUsVGUsRWUsaGUpe2Zvcih2YXIgTz0wOzspdHJ5e3JldHVybiBrZS5jYWxsKHEsU2UsSWUsVGUsRWUsaGUpfWNhdGNoKHope2lmKCJFQUdBSU4iPT09ei5jb2RlJiZPPDEwKXtPKys7Y29udGludWV9dGhyb3cgen19KX19LDEwNDQ6KFUsUSxaKT0+eyJ1c2Ug''@;'; + put 'put ''c3RyaWN0Ijt2YXIgaWU9WigyMTApKCIlT2JqZWN0LmRlZmluZVByb3BlcnR5JSIsITApLGxlPWZ1bmN0aW9uKCl7aWYoaWUpdHJ5e3JldHVybiBpZSh7fSwiYSIse3ZhbHVlOjF9KSwhMH1jYXRjaChZKXtyZXR1cm4hMX1yZXR1cm4hMX07bGUuaGFzQXJyYXlMZW5ndGhEZWZpbmVCdWc9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtpZighbGUoKSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIDEhPT1pZShbXSwibGVuZ3RoIix7dmFsdWU6MX0pLmxlbmd0aH1jYXRjaChZKXtyZXR1cm4hMH19LFUuZXhwb3J0cz1sZX0sMTQwNTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT0idW5kZWZpbmVkIiE9dHlwZW9m''@;'; + put 'put ''IFN5bWJvbCYmU3ltYm9sLGxlPVooNTQxOSk7VS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGllJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIGllKCJmb28iKSYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2woImJhciIpJiZs''@;'; + put 'put ''ZSgpfX0sNTQxOTpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1mdW5jdGlvbigpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBTeW1ib2x8fCJmdW5jdGlvbiIhPXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXJldHVybiExO2lmKCJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0''@;'; + put 'put ''ZXJhdG9yKXJldHVybiEwO3ZhciBRPXt9LFo9U3ltYm9sKCJ0ZXN0IiksaWU9T2JqZWN0KFopO2lmKCJzdHJpbmciPT10eXBlb2YgWnx8IltvYmplY3QgU3ltYm9sXSIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoWil8fCJbb2JqZWN0IFN5bWJvbF0iIT09T2JqZWN0LnByb3Rv''@;'; + put 'put ''dHlwZS50b1N0cmluZy5jYWxsKGllKSlyZXR1cm4hMTtmb3IoWiBpbiBRW1pdPTQyLFEpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5rZXlzJiYwIT09T2JqZWN0LmtleXMoUSkubGVuZ3RofHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFt''@;'; + put 'put ''ZXMmJjAhPT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhRKS5sZW5ndGgpcmV0dXJuITE7dmFyIGxlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoUSk7aWYoMSE9PWxlLmxlbmd0aHx8bGVbMF0hPT1afHwhT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxs''@;'; + put 'put ''KFEsWikpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ipe3ZhciBZPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUSxaKTtpZig0MiE9PVkudmFsdWV8fCEwIT09WS5lbnVtZXJhYmxlKXJldHVybiExfXJldHVybiEw''@;'; + put 'put ''fX0sNjQxMDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDU0MTkpO1UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBpZSgpJiYhIVN5bWJvbC50b1N0cmluZ1RhZ319LDc2NDI6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig4NjEyKTtVLmV4cG9ydHM9aWUuY2FsbChG''@;'; + put 'put ''dW5jdGlvbi5jYWxsLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpfSwzMzQ5OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooMjEzKS5CdWZmZXIsbGU9Wig4NDczKS5UcmFuc2Zvcm07ZnVuY3Rpb24gWShXKXtsZS5jYWxsKHRoaXMpLHRoaXMuX2Jsb2NrPWllLmFsbG9j''@;'; + put 'put ''VW5zYWZlKFcpLHRoaXMuX2Jsb2NrU2l6ZT1XLHRoaXMuX2Jsb2NrT2Zmc2V0PTAsdGhpcy5fbGVuZ3RoPVswLDAsMCwwXSx0aGlzLl9maW5hbGl6ZWQ9ITF9Wig1NzE3KShZLGxlKSxZLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKFcsTixlZSl7dmFyIHE9bnVsbDt0cnl7dGhpcy51''@;'; + put 'put ''cGRhdGUoVyxOKX1jYXRjaChKKXtxPUp9ZWUocSl9LFkucHJvdG90eXBlLl9mbHVzaD1mdW5jdGlvbihXKXt2YXIgTj1udWxsO3RyeXt0aGlzLnB1c2godGhpcy5kaWdlc3QoKSl9Y2F0Y2goZWUpe049ZWV9VyhOKX0sWS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKFcsTil7aWYoZnVuY3Rp''@;'; + put 'put ''b24oY2UsZGUpe2lmKCFpZS5pc0J1ZmZlcihjZSkmJiJzdHJpbmciIT10eXBlb2YgY2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGF0YSBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgYnVmZmVyIil9KFcpLHRoaXMuX2ZpbmFsaXplZCl0aHJvdyBuZXcgRXJyb3IoIkRpZ2VzdCBhbHJlYWR5IGNhbGxl''@;'; + put 'put ''ZCIpO2llLmlzQnVmZmVyKFcpfHwoVz1pZS5mcm9tKFcsTikpO2Zvcih2YXIgZWU9dGhpcy5fYmxvY2sscT0wO3RoaXMuX2Jsb2NrT2Zmc2V0K1cubGVuZ3RoLXE+PXRoaXMuX2Jsb2NrU2l6ZTspe2Zvcih2YXIgSj10aGlzLl9ibG9ja09mZnNldDtKPHRoaXMuX2Jsb2NrU2l6ZTspZWVbSisr''@;'; + put 'put ''XT1XW3ErK107dGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9MH1mb3IoO3E8Vy5sZW5ndGg7KWVlW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPVdbcSsrXTtmb3IodmFyIHNlPTAsb2U9OCpXLmxlbmd0aDtvZT4wOysrc2UpdGhpcy5fbGVuZ3RoW3NlXSs9b2UsKG9lPXRoaXMuX2xlbmd0''@;'; + put 'put ''aFtzZV0vNDI5NDk2NzI5NnwwKT4wJiYodGhpcy5fbGVuZ3RoW3NlXS09NDI5NDk2NzI5NipvZSk7cmV0dXJuIHRoaXN9LFkucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIl91cGRhdGUgaXMgbm90IGltcGxlbWVudGVkIil9LFkucHJvdG90eXBlLmRpZ2Vz''@;'; + put 'put ''dD1mdW5jdGlvbihXKXtpZih0aGlzLl9maW5hbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJEaWdlc3QgYWxyZWFkeSBjYWxsZWQiKTt0aGlzLl9maW5hbGl6ZWQ9ITA7dmFyIE49dGhpcy5fZGlnZXN0KCk7dm9pZCAwIT09VyYmKE49Ti50b1N0cmluZyhXKSksdGhpcy5fYmxvY2suZmlsbCgwKSx0''@;'; + put 'put ''aGlzLl9ibG9ja09mZnNldD0wO2Zvcih2YXIgZWU9MDtlZTw0OysrZWUpdGhpcy5fbGVuZ3RoW2VlXT0wO3JldHVybiBOfSxZLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfZGlnZXN0IGlzIG5vdCBpbXBsZW1lbnRlZCIpfSxVLmV4cG9ydHM9WX0sMjEz''@;'; + put 'put ''OihVLFEsWik9Pnt2YXIgaWU9Wig4NzY0KSxsZT1pZS5CdWZmZXI7ZnVuY3Rpb24gWShOLGVlKXtmb3IodmFyIHEgaW4gTillZVtxXT1OW3FdfWZ1bmN0aW9uIFcoTixlZSxxKXtyZXR1cm4gbGUoTixlZSxxKX1sZS5mcm9tJiZsZS5hbGxvYyYmbGUuYWxsb2NVbnNhZmUmJmxlLmFsbG9jVW5z''@;'; + put 'put ''YWZlU2xvdz9VLmV4cG9ydHM9aWU6KFkoaWUsUSksUS5CdWZmZXI9VyksVy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShsZS5wcm90b3R5cGUpLFkobGUsVyksVy5mcm9tPWZ1bmN0aW9uKE4sZWUscSl7aWYoIm51bWJlciI9PXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50''@;'; + put 'put ''IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIGxlKE4sZWUscSl9LFcuYWxsb2M9ZnVuY3Rpb24oTixlZSxxKXtpZigibnVtYmVyIiE9dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBKPWxlKE4pO3JldHVybiB2b2lkIDAh''@;'; + put 'put ''PT1lZT8ic3RyaW5nIj09dHlwZW9mIHE/Si5maWxsKGVlLHEpOkouZmlsbChlZSk6Si5maWxsKDApLEp9LFcuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oTil7aWYoIm51bWJlciIhPXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4g''@;'; + put 'put ''bGUoTil9LFcuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKE4pe2lmKCJudW1iZXIiIT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIGllLlNsb3dCdWZmZXIoTil9fSwzNzE1OihVLFEsWik9Pnt2YXIgaWU9UTtpZS51dGls''@;'; + put 'put ''cz1aKDY0MzYpLGllLmNvbW1vbj1aKDU3NzIpLGllLnNoYT1aKDkwNDEpLGllLnJpcGVtZD1aKDI5NDkpLGllLmhtYWM9WigyMzQ0KSxpZS5zaGExPWllLnNoYS5zaGExLGllLnNoYTI1Nj1pZS5zaGEuc2hhMjU2LGllLnNoYTIyND1pZS5zaGEuc2hhMjI0LGllLnNoYTM4ND1pZS5zaGEuc2hh''@;'; + put 'put ''Mzg0LGllLnNoYTUxMj1pZS5zaGEuc2hhNTEyLGllLnJpcGVtZDE2MD1pZS5yaXBlbWQucmlwZW1kMTYwfSw1NzcyOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNjQzNiksbGU9Wig5NzQ2KTtmdW5jdGlvbiBZKCl7dGhpcy5wZW5kaW5nPW51bGwsdGhpcy5wZW5kaW5nVG90YWw9''@;'; + put 'put ''MCx0aGlzLmJsb2NrU2l6ZT10aGlzLmNvbnN0cnVjdG9yLmJsb2NrU2l6ZSx0aGlzLm91dFNpemU9dGhpcy5jb25zdHJ1Y3Rvci5vdXRTaXplLHRoaXMuaG1hY1N0cmVuZ3RoPXRoaXMuY29uc3RydWN0b3IuaG1hY1N0cmVuZ3RoLHRoaXMucGFkTGVuZ3RoPXRoaXMuY29uc3RydWN0b3IucGFk''@;'; + put 'put ''TGVuZ3RoLzgsdGhpcy5lbmRpYW49ImJpZyIsdGhpcy5fZGVsdGE4PXRoaXMuYmxvY2tTaXplLzgsdGhpcy5fZGVsdGEzMj10aGlzLmJsb2NrU2l6ZS8zMn1RLkJsb2NrSGFzaD1ZLFkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihXLE4pe2lmKFc9aWUudG9BcnJheShXLE4pLHRoaXMucGVu''@;'; + put 'put ''ZGluZz10aGlzLnBlbmRpbmc/dGhpcy5wZW5kaW5nLmNvbmNhdChXKTpXLHRoaXMucGVuZGluZ1RvdGFsKz1XLmxlbmd0aCx0aGlzLnBlbmRpbmcubGVuZ3RoPj10aGlzLl9kZWx0YTgpe3ZhciBlZT0oVz10aGlzLnBlbmRpbmcpLmxlbmd0aCV0aGlzLl9kZWx0YTg7dGhpcy5wZW5kaW5nPVcu''@;'; + put 'put ''c2xpY2UoVy5sZW5ndGgtZWUsVy5sZW5ndGgpLDA9PT10aGlzLnBlbmRpbmcubGVuZ3RoJiYodGhpcy5wZW5kaW5nPW51bGwpLFc9aWUuam9pbjMyKFcsMCxXLmxlbmd0aC1lZSx0aGlzLmVuZGlhbik7Zm9yKHZhciBxPTA7cTxXLmxlbmd0aDtxKz10aGlzLl9kZWx0YTMyKXRoaXMuX3VwZGF0''@;'; + put 'put ''ZShXLHEscSt0aGlzLl9kZWx0YTMyKX1yZXR1cm4gdGhpc30sWS5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKFcpe3JldHVybiB0aGlzLnVwZGF0ZSh0aGlzLl9wYWQoKSksbGUobnVsbD09PXRoaXMucGVuZGluZyksdGhpcy5fZGlnZXN0KFcpfSxZLnByb3RvdHlwZS5fcGFkPWZ1bmN0aW9u''@;'; + put 'put ''KCl7dmFyIFc9dGhpcy5wZW5kaW5nVG90YWwsTj10aGlzLl9kZWx0YTgsZWU9Ti0oVyt0aGlzLnBhZExlbmd0aCklTixxPW5ldyBBcnJheShlZSt0aGlzLnBhZExlbmd0aCk7cVswXT0xMjg7Zm9yKHZhciBKPTE7SjxlZTtKKyspcVtKXT0wO2lmKFc8PD0zLCJiaWciPT09dGhpcy5lbmRpYW4p''@;'; + put 'put ''e2Zvcih2YXIgc2U9ODtzZTx0aGlzLnBhZExlbmd0aDtzZSsrKXFbSisrXT0wO3FbSisrXT0wLHFbSisrXT0wLHFbSisrXT0wLHFbSisrXT0wLHFbSisrXT1XPj4+MjQmMjU1LHFbSisrXT1XPj4+MTYmMjU1LHFbSisrXT1XPj4+OCYyNTUscVtKKytdPTI1NSZXfWVsc2UgZm9yKHFbSisrXT0y''@;'; + put 'put ''NTUmVyxxW0orK109Vz4+PjgmMjU1LHFbSisrXT1XPj4+MTYmMjU1LHFbSisrXT1XPj4+MjQmMjU1LHFbSisrXT0wLHFbSisrXT0wLHFbSisrXT0wLHFbSisrXT0wLHNlPTg7c2U8dGhpcy5wYWRMZW5ndGg7c2UrKylxW0orK109MDtyZXR1cm4gcX19LDIzNDQ6KFUsUSxaKT0+eyJ1c2Ugc3Ry''@;'; + put 'put ''aWN0Ijt2YXIgaWU9Wig2NDM2KSxsZT1aKDk3NDYpO2Z1bmN0aW9uIFkoVyxOLGVlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBZKSlyZXR1cm4gbmV3IFkoVyxOLGVlKTt0aGlzLkhhc2g9Vyx0aGlzLmJsb2NrU2l6ZT1XLmJsb2NrU2l6ZS84LHRoaXMub3V0U2l6ZT1XLm91dFNpemUvOCx0aGlz''@;'; + put 'put ''LmlubmVyPW51bGwsdGhpcy5vdXRlcj1udWxsLHRoaXMuX2luaXQoaWUudG9BcnJheShOLGVlKSl9VS5leHBvcnRzPVksWS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oVyl7Vy5sZW5ndGg+dGhpcy5ibG9ja1NpemUmJihXPShuZXcgdGhpcy5IYXNoKS51cGRhdGUoVykuZGlnZXN0KCkpLGxl''@;'; + put 'put ''KFcubGVuZ3RoPD10aGlzLmJsb2NrU2l6ZSk7Zm9yKHZhciBOPVcubGVuZ3RoO048dGhpcy5ibG9ja1NpemU7TisrKVcucHVzaCgwKTtmb3IoTj0wO048Vy5sZW5ndGg7TisrKVdbTl1ePTU0O2Zvcih0aGlzLmlubmVyPShuZXcgdGhpcy5IYXNoKS51cGRhdGUoVyksTj0wO048Vy5sZW5ndGg7''@;'; + put 'put ''TisrKVdbTl1ePTEwNjt0aGlzLm91dGVyPShuZXcgdGhpcy5IYXNoKS51cGRhdGUoVyl9LFkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihXLE4pe3JldHVybiB0aGlzLmlubmVyLnVwZGF0ZShXLE4pLHRoaXN9LFkucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihXKXtyZXR1cm4gdGhpcy5v''@;'; + put 'put ''dXRlci51cGRhdGUodGhpcy5pbm5lci5kaWdlc3QoKSksdGhpcy5vdXRlci5kaWdlc3QoVyl9fSwyOTQ5OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNjQzNiksbGU9Wig1NzcyKSxZPWllLnJvdGwzMixXPWllLnN1bTMyLE49aWUuc3VtMzJfMyxlZT1pZS5zdW0zMl80LHE9bGUu''@;'; + put 'put ''QmxvY2tIYXNoO2Z1bmN0aW9uIEooKXtpZighKHRoaXMgaW5zdGFuY2VvZiBKKSlyZXR1cm4gbmV3IEo7cS5jYWxsKHRoaXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdLHRoaXMuZW5kaWFuPSJsaXR0bGUifWZ1bmN0aW9u''@;'; + put 'put ''IHNlKFNlLEllLFRlLEVlKXtyZXR1cm4gU2U8PTE1P0llXlRlXkVlOlNlPD0zMT9JZSZUZXx+SWUmRWU6U2U8PTQ3PyhJZXx+VGUpXkVlOlNlPD02Mz9JZSZFZXxUZSZ+RWU6SWVeKFRlfH5FZSl9ZnVuY3Rpb24gb2UoU2Upe3JldHVybiBTZTw9MTU/MDpTZTw9MzE/MTUxODUwMDI0OTpTZTw9''@;'; + put 'put ''NDc/MTg1OTc3NTM5MzpTZTw9NjM/MjQwMDk1OTcwODoyODQwODUzODM4fWZ1bmN0aW9uIGNlKFNlKXtyZXR1cm4gU2U8PTE1PzEzNTI4Mjk5MjY6U2U8PTMxPzE1NDg2MDM2ODQ6U2U8PTQ3PzE4MzYwNzI2OTE6U2U8PTYzPzIwNTM5OTQyMTc6MH1pZS5pbmhlcml0cyhKLHEpLFEucmlwZW1k''@;'; + put 'put ''MTYwPUosSi5ibG9ja1NpemU9NTEyLEoub3V0U2l6ZT0xNjAsSi5obWFjU3RyZW5ndGg9MTkyLEoucGFkTGVuZ3RoPTY0LEoucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oU2UsSWUpe2Zvcih2YXIgVGU9dGhpcy5oWzBdLEVlPXRoaXMuaFsxXSxoZT10aGlzLmhbMl0sTz10aGlzLmhbM10s''@;'; + put 'put ''ej10aGlzLmhbNF0sbmU9VGUsdGU9RWUseD1oZSxQPU8sVj16LFQ9MDtUPDgwO1QrKyl7dmFyIFM9VyhZKGVlKFRlLHNlKFQsRWUsaGUsTyksU2VbZGVbVF0rSWVdLG9lKFQpKSxBZVtUXSkseik7VGU9eix6PU8sTz1ZKGhlLDEwKSxoZT1FZSxFZT1TLFM9VyhZKGVlKG5lLHNlKDc5LVQsdGUs''@;'; + put 'put ''eCxQKSxTZVt2ZVtUXStJZV0sY2UoVCkpLGtlW1RdKSxWKSxuZT1WLFY9UCxQPVkoeCwxMCkseD10ZSx0ZT1TfVM9Tih0aGlzLmhbMV0saGUsUCksdGhpcy5oWzFdPU4odGhpcy5oWzJdLE8sViksdGhpcy5oWzJdPU4odGhpcy5oWzNdLHosbmUpLHRoaXMuaFszXT1OKHRoaXMuaFs0XSxUZSx0''@;'; + put 'put ''ZSksdGhpcy5oWzRdPU4odGhpcy5oWzBdLEVlLHgpLHRoaXMuaFswXT1TfSxKLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKFNlKXtyZXR1cm4iaGV4Ij09PVNlP2llLnRvSGV4MzIodGhpcy5oLCJsaXR0bGUiKTppZS5zcGxpdDMyKHRoaXMuaCwibGl0dGxlIil9O3ZhciBkZT1bMCwxLDIs''@;'; + put 'put ''Myw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwx''@;'; + put 'put ''NCwxLDMsOCwxMSw2LDE1LDEzXSx2ZT1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEz''@;'; + put 'put ''LDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxBZT1bMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYs''@;'; + put 'put ''NSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0sa2U9WzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYs''@;'; + put 'put ''MTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdfSw5MDQxOihVLFEsWik9PnsidXNlIHN0cmljdCI7US5zaGEx''@;'; + put 'put ''PVooNDc2MSksUS5zaGEyMjQ9Wig3OTkpLFEuc2hhMjU2PVooOTM0NCksUS5zaGEzODQ9Wig3NzIpLFEuc2hhNTEyPVooNTkwMCl9LDQ3NjE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig2NDM2KSxsZT1aKDU3NzIpLFk9Wig3MDM4KSxXPWllLnJvdGwzMixOPWllLnN1bTMyLGVl''@;'; + put 'put ''PWllLnN1bTMyXzUscT1ZLmZ0XzEsSj1sZS5CbG9ja0hhc2gsc2U9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDMzOTU0Njk3ODJdO2Z1bmN0aW9uIG9lKCl7aWYoISh0aGlzIGluc3RhbmNlb2Ygb2UpKXJldHVybiBuZXcgb2U7Si5jYWxsKHRoaXMpLHRoaXMuaD1bMTczMjU4''@;'; + put 'put ''NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdLHRoaXMuVz1uZXcgQXJyYXkoODApfWllLmluaGVyaXRzKG9lLEopLFUuZXhwb3J0cz1vZSxvZS5ibG9ja1NpemU9NTEyLG9lLm91dFNpemU9MTYwLG9lLmhtYWNTdHJlbmd0aD04MCxvZS5wYWRMZW5ndGg9''@;'; + put 'put ''NjQsb2UucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oY2UsZGUpe2Zvcih2YXIgdmU9dGhpcy5XLEFlPTA7QWU8MTY7QWUrKyl2ZVtBZV09Y2VbZGUrQWVdO2Zvcig7QWU8dmUubGVuZ3RoO0FlKyspdmVbQWVdPVcodmVbQWUtM11edmVbQWUtOF1edmVbQWUtMTRdXnZlW0FlLTE2XSwxKTt2''@;'; + put 'put ''YXIga2U9dGhpcy5oWzBdLFNlPXRoaXMuaFsxXSxJZT10aGlzLmhbMl0sVGU9dGhpcy5oWzNdLEVlPXRoaXMuaFs0XTtmb3IoQWU9MDtBZTx2ZS5sZW5ndGg7QWUrKyl7dmFyIGhlPX5+KEFlLzIwKSxPPWVlKFcoa2UsNSkscShoZSxTZSxJZSxUZSksRWUsdmVbQWVdLHNlW2hlXSk7RWU9VGUs''@;'; + put 'put ''VGU9SWUsSWU9VyhTZSwzMCksU2U9a2Usa2U9T310aGlzLmhbMF09Tih0aGlzLmhbMF0sa2UpLHRoaXMuaFsxXT1OKHRoaXMuaFsxXSxTZSksdGhpcy5oWzJdPU4odGhpcy5oWzJdLEllKSx0aGlzLmhbM109Tih0aGlzLmhbM10sVGUpLHRoaXMuaFs0XT1OKHRoaXMuaFs0XSxFZSl9LG9lLnBy''@;'; + put 'put ''b3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKGNlKXtyZXR1cm4iaGV4Ij09PWNlP2llLnRvSGV4MzIodGhpcy5oLCJiaWciKTppZS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSw3OTk6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig2NDM2KSxsZT1aKDkzNDQpO2Z1bmN0aW9uIFkoKXtp''@;'; + put 'put ''ZighKHRoaXMgaW5zdGFuY2VvZiBZKSlyZXR1cm4gbmV3IFk7bGUuY2FsbCh0aGlzKSx0aGlzLmg9WzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdfWllLmluaGVyaXRzKFksbGUpLFUu''@;'; + put 'put ''ZXhwb3J0cz1ZLFkuYmxvY2tTaXplPTUxMixZLm91dFNpemU9MjI0LFkuaG1hY1N0cmVuZ3RoPTE5MixZLnBhZExlbmd0aD02NCxZLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKFcpe3JldHVybiJoZXgiPT09Vz9pZS50b0hleDMyKHRoaXMuaC5zbGljZSgwLDcpLCJiaWciKTppZS5zcGxp''@;'; + put 'put ''dDMyKHRoaXMuaC5zbGljZSgwLDcpLCJiaWciKX19LDkzNDQ6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig2NDM2KSxsZT1aKDU3NzIpLFk9Wig3MDM4KSxXPVooOTc0NiksTj1pZS5zdW0zMixlZT1pZS5zdW0zMl80LHE9aWUuc3VtMzJfNSxKPVkuY2gzMixzZT1ZLm1hajMyLG9l''@;'; + put 'put ''PVkuczBfMjU2LGNlPVkuczFfMjU2LGRlPVkuZzBfMjU2LHZlPVkuZzFfMjU2LEFlPWxlLkJsb2NrSGFzaCxrZT1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwz''@;'; + put 'put ''MTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIy''@;'; + put 'put ''MDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3''@;'; + put 'put ''LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4''@;'; + put 'put ''NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XTtmdW5jdGlvbiBTZSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFNlKSlyZXR1cm4gbmV3IFNlO0FlLmNhbGwodGhpcyksdGhp''@;'; + put 'put ''cy5oPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV0sdGhpcy5rPWtlLHRoaXMuVz1uZXcgQXJyYXkoNjQpfWllLmluaGVyaXRzKFNlLEFlKSxVLmV4cG9ydHM9U2UsU2UuYmxvY2tT''@;'; + put 'put ''aXplPTUxMixTZS5vdXRTaXplPTI1NixTZS5obWFjU3RyZW5ndGg9MTkyLFNlLnBhZExlbmd0aD02NCxTZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihJZSxUZSl7Zm9yKHZhciBFZT10aGlzLlcsaGU9MDtoZTwxNjtoZSsrKUVlW2hlXT1JZVtUZStoZV07Zm9yKDtoZTxFZS5sZW5ndGg7''@;'; + put 'put ''aGUrKylFZVtoZV09ZWUodmUoRWVbaGUtMl0pLEVlW2hlLTddLGRlKEVlW2hlLTE1XSksRWVbaGUtMTZdKTt2YXIgTz10aGlzLmhbMF0sej10aGlzLmhbMV0sbmU9dGhpcy5oWzJdLHRlPXRoaXMuaFszXSx4PXRoaXMuaFs0XSxQPXRoaXMuaFs1XSxWPXRoaXMuaFs2XSxUPXRoaXMuaFs3XTtm''@;'; + put 'put ''b3IoVyh0aGlzLmsubGVuZ3RoPT09RWUubGVuZ3RoKSxoZT0wO2hlPEVlLmxlbmd0aDtoZSsrKXt2YXIgUz1xKFQsY2UoeCksSih4LFAsViksdGhpcy5rW2hlXSxFZVtoZV0pLEY9TihvZShPKSxzZShPLHosbmUpKTtUPVYsVj1QLFA9eCx4PU4odGUsUyksdGU9bmUsbmU9eix6PU8sTz1OKFMs''@;'; + put 'put ''Ril9dGhpcy5oWzBdPU4odGhpcy5oWzBdLE8pLHRoaXMuaFsxXT1OKHRoaXMuaFsxXSx6KSx0aGlzLmhbMl09Tih0aGlzLmhbMl0sbmUpLHRoaXMuaFszXT1OKHRoaXMuaFszXSx0ZSksdGhpcy5oWzRdPU4odGhpcy5oWzRdLHgpLHRoaXMuaFs1XT1OKHRoaXMuaFs1XSxQKSx0aGlzLmhbNl09''@;'; + put 'put ''Tih0aGlzLmhbNl0sViksdGhpcy5oWzddPU4odGhpcy5oWzddLFQpfSxTZS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihJZSl7cmV0dXJuImhleCI9PT1JZT9pZS50b0hleDMyKHRoaXMuaCwiYmlnIik6aWUuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sNzcyOihVLFEsWik9PnsidXNlIHN0''@;'; + put 'put ''cmljdCI7dmFyIGllPVooNjQzNiksbGU9Wig1OTAwKTtmdW5jdGlvbiBZKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgWSkpcmV0dXJuIG5ldyBZO2xlLmNhbGwodGhpcyksdGhpcy5oPVszNDE4MDcwMzY1LDMyMzgzNzEwMzIsMTY1NDI3MDI1MCw5MTQxNTA2NjMsMjQzODUyOTM3MCw4MTI3MDI5''@;'; + put 'put ''OTksMzU1NDYyMzYwLDQxNDQ5MTI2OTcsMTczMTQwNTQxNSw0MjkwNzc1ODU3LDIzOTQxODAyMzEsMTc1MDYwMzAyNSwzNjc1MDA4NTI1LDE2OTQwNzY4MzksMTIwMzA2MjgxMywzMjA0MDc1NDI4XX1pZS5pbmhlcml0cyhZLGxlKSxVLmV4cG9ydHM9WSxZLmJsb2NrU2l6ZT0xMDI0LFkub3V0''@;'; + put 'put ''U2l6ZT0zODQsWS5obWFjU3RyZW5ndGg9MTkyLFkucGFkTGVuZ3RoPTEyOCxZLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKFcpe3JldHVybiJoZXgiPT09Vz9pZS50b0hleDMyKHRoaXMuaC5zbGljZSgwLDEyKSwiYmlnIik6aWUuc3BsaXQzMih0aGlzLmguc2xpY2UoMCwxMiksImJpZyIp''@;'; + put 'put ''fX0sNTkwMDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDY0MzYpLGxlPVooNTc3MiksWT1aKDk3NDYpLFc9aWUucm90cjY0X2hpLE49aWUucm90cjY0X2xvLGVlPWllLnNocjY0X2hpLHE9aWUuc2hyNjRfbG8sSj1pZS5zdW02NCxzZT1pZS5zdW02NF9oaSxvZT1pZS5zdW02NF9s''@;'; + put 'put ''byxjZT1pZS5zdW02NF80X2hpLGRlPWllLnN1bTY0XzRfbG8sdmU9aWUuc3VtNjRfNV9oaSxBZT1pZS5zdW02NF81X2xvLGtlPWxlLkJsb2NrSGFzaCxTZT1bMTExNjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSwzOTIxMDA5NTcz''@;'; + put 'put ''LDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwxMzIzNjEwNzY0LDE0''@;'; + put 'put ''MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQzNDcwNzgsMjM0MTI2''@;'; + put 'put ''Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5Njgw''@;'; + put 'put ''OCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5''@;'; + put 'put ''NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4''@;'; + put 'put ''NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIzNzUyLDUwNjk0ODYx''@;'; + put 'put ''NiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcyMzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIsMTU3NTk5MDAxMiwy''@;'; + put 'put ''MDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQxODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMzOTE1Njk2MTQsMzky''@;'; + put 'put ''ODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAzMTUsNjg1NDcxNzMz''@;'; + put 'put ''LDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEyNDYxODk1OTFdO2Z1''@;'; + put 'put ''bmN0aW9uIEllKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgSWUpKXJldHVybiBuZXcgSWU7a2UuY2FsbCh0aGlzKSx0aGlzLmg9WzE3NzkwMzM3MDMsNDA4OTIzNTcyMCwzMTQ0MTM0Mjc3LDIyMjc4NzM1OTUsMTAxMzkwNDI0Miw0MjcxMTc1NzIzLDI3NzM0ODA3NjIsMTU5NTc1MDEyOSwxMzU5''@;'; + put 'put ''ODkzMTE5LDI5MTc1NjUxMzcsMjYwMDgyMjkyNCw3MjU1MTExOTksNTI4NzM0NjM1LDQyMTUzODk1NDcsMTU0MTQ1OTIyNSwzMjcwMzMyMDldLHRoaXMuaz1TZSx0aGlzLlc9bmV3IEFycmF5KDE2MCl9ZnVuY3Rpb24gVGUoRix5ZSxDZSxEZSxQZSl7dmFyIFFlPUYmQ2VefkYmUGU7cmV0dXJu''@;'; + put 'put ''IFFlPDAmJihRZSs9NDI5NDk2NzI5NiksUWV9ZnVuY3Rpb24gRWUoRix5ZSxDZSxEZSxQZSxRZSl7dmFyICRlPXllJkRlXn55ZSZRZTtyZXR1cm4gJGU8MCYmKCRlKz00Mjk0OTY3Mjk2KSwkZX1mdW5jdGlvbiBoZShGLHllLENlLERlLFBlKXt2YXIgUWU9RiZDZV5GJlBlXkNlJlBlO3JldHVy''@;'; + put 'put ''biBRZTwwJiYoUWUrPTQyOTQ5NjcyOTYpLFFlfWZ1bmN0aW9uIE8oRix5ZSxDZSxEZSxQZSxRZSl7dmFyICRlPXllJkRlXnllJlFlXkRlJlFlO3JldHVybiAkZTwwJiYoJGUrPTQyOTQ5NjcyOTYpLCRlfWZ1bmN0aW9uIHooRix5ZSl7dmFyIENlPVcoRix5ZSwyOCleVyh5ZSxGLDIpXlcoeWUs''@;'; + put 'put ''Riw3KTtyZXR1cm4gQ2U8MCYmKENlKz00Mjk0OTY3Mjk2KSxDZX1mdW5jdGlvbiBuZShGLHllKXt2YXIgQ2U9TihGLHllLDI4KV5OKHllLEYsMileTih5ZSxGLDcpO3JldHVybiBDZTwwJiYoQ2UrPTQyOTQ5NjcyOTYpLENlfWZ1bmN0aW9uIHRlKEYseWUpe3ZhciBDZT1XKEYseWUsMTQpXlco''@;'; + put 'put ''Rix5ZSwxOCleVyh5ZSxGLDkpO3JldHVybiBDZTwwJiYoQ2UrPTQyOTQ5NjcyOTYpLENlfWZ1bmN0aW9uIHgoRix5ZSl7dmFyIENlPU4oRix5ZSwxNCleTihGLHllLDE4KV5OKHllLEYsOSk7cmV0dXJuIENlPDAmJihDZSs9NDI5NDk2NzI5NiksQ2V9ZnVuY3Rpb24gUChGLHllKXt2YXIgQ2U9''@;'; + put 'put ''VyhGLHllLDEpXlcoRix5ZSw4KV5lZShGLHllLDcpO3JldHVybiBDZTwwJiYoQ2UrPTQyOTQ5NjcyOTYpLENlfWZ1bmN0aW9uIFYoRix5ZSl7dmFyIENlPU4oRix5ZSwxKV5OKEYseWUsOClecShGLHllLDcpO3JldHVybiBDZTwwJiYoQ2UrPTQyOTQ5NjcyOTYpLENlfWZ1bmN0aW9uIFQoRix5''@;'; + put 'put ''ZSl7dmFyIENlPVcoRix5ZSwxOSleVyh5ZSxGLDI5KV5lZShGLHllLDYpO3JldHVybiBDZTwwJiYoQ2UrPTQyOTQ5NjcyOTYpLENlfWZ1bmN0aW9uIFMoRix5ZSl7dmFyIENlPU4oRix5ZSwxOSleTih5ZSxGLDI5KV5xKEYseWUsNik7cmV0dXJuIENlPDAmJihDZSs9NDI5NDk2NzI5NiksQ2V9''@;'; + put 'put ''aWUuaW5oZXJpdHMoSWUsa2UpLFUuZXhwb3J0cz1JZSxJZS5ibG9ja1NpemU9MTAyNCxJZS5vdXRTaXplPTUxMixJZS5obWFjU3RyZW5ndGg9MTkyLEllLnBhZExlbmd0aD0xMjgsSWUucHJvdG90eXBlLl9wcmVwYXJlQmxvY2s9ZnVuY3Rpb24oRix5ZSl7Zm9yKHZhciBDZT10aGlzLlcsRGU9''@;'; + put 'put ''MDtEZTwzMjtEZSsrKUNlW0RlXT1GW3llK0RlXTtmb3IoO0RlPENlLmxlbmd0aDtEZSs9Mil7dmFyIFBlPVQoQ2VbRGUtNF0sQ2VbRGUtM10pLFFlPVMoQ2VbRGUtNF0sQ2VbRGUtM10pLCRlPUNlW0RlLTE0XSxndD1DZVtEZS0xM10sd3Q9UChDZVtEZS0zMF0sQ2VbRGUtMjldKSx2dD1WKENl''@;'; + put 'put ''W0RlLTMwXSxDZVtEZS0yOV0pLEF0PUNlW0RlLTMyXSxtdD1DZVtEZS0zMV07Q2VbRGVdPWNlKFBlLFFlLCRlLGd0LHd0LHZ0LEF0LG10KSxDZVtEZSsxXT1kZShQZSxRZSwkZSxndCx3dCx2dCxBdCxtdCl9fSxJZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihGLHllKXt0aGlzLl9wcmVw''@;'; + put 'put ''YXJlQmxvY2soRix5ZSk7dmFyIENlPXRoaXMuVyxEZT10aGlzLmhbMF0sUGU9dGhpcy5oWzFdLFFlPXRoaXMuaFsyXSwkZT10aGlzLmhbM10sZ3Q9dGhpcy5oWzRdLHd0PXRoaXMuaFs1XSx2dD10aGlzLmhbNl0sQXQ9dGhpcy5oWzddLG10PXRoaXMuaFs4XSxodD10aGlzLmhbOV0sQnQ9dGhp''@;'; + put 'put ''cy5oWzEwXSxvbj10aGlzLmhbMTFdLF90PXRoaXMuaFsxMl0sdHQ9dGhpcy5oWzEzXSxldD10aGlzLmhbMTRdLGF0PXRoaXMuaFsxNV07WSh0aGlzLmsubGVuZ3RoPT09Q2UubGVuZ3RoKTtmb3IodmFyIEx0PTA7THQ8Q2UubGVuZ3RoO0x0Kz0yKXt2YXIgQ3Q9ZXQsZnQ9YXQsSHQ9dGUobXQs''@;'; + put 'put ''aHQpLEdlPXgobXQsaHQpLFVlPVRlKG10LDAsQnQsMCxfdCkseXQ9RWUoMCxodCwwLG9uLDAsdHQpLGp0PXRoaXMua1tMdF0sUXQ9dGhpcy5rW0x0KzFdLGduPUNlW0x0XSxkbj1DZVtMdCsxXSx5bj12ZShDdCxmdCxIdCxHZSxVZSx5dCxqdCxRdCxnbixkbiksbG49QWUoQ3QsZnQsSHQsR2Us''@;'; + put 'put ''VWUseXQsanQsUXQsZ24sZG4pO0N0PXooRGUsUGUpLGZ0PW5lKERlLFBlKSxIdD1oZShEZSwwLFFlLDAsZ3QpLEdlPU8oMCxQZSwwLCRlLDAsd3QpO3ZhciBObj1zZShDdCxmdCxIdCxHZSksYm49b2UoQ3QsZnQsSHQsR2UpO2V0PV90LGF0PXR0LF90PUJ0LHR0PW9uLEJ0PW10LG9uPWh0LG10''@;'; + put 'put ''PXNlKHZ0LEF0LHluLGxuKSxodD1vZShBdCxBdCx5bixsbiksdnQ9Z3QsQXQ9d3QsZ3Q9UWUsd3Q9JGUsUWU9RGUsJGU9UGUsRGU9c2UoeW4sbG4sTm4sYm4pLFBlPW9lKHluLGxuLE5uLGJuKX1KKHRoaXMuaCwwLERlLFBlKSxKKHRoaXMuaCwyLFFlLCRlKSxKKHRoaXMuaCw0LGd0LHd0KSxK''@;'; + put 'put ''KHRoaXMuaCw2LHZ0LEF0KSxKKHRoaXMuaCw4LG10LGh0KSxKKHRoaXMuaCwxMCxCdCxvbiksSih0aGlzLmgsMTIsX3QsdHQpLEoodGhpcy5oLDE0LGV0LGF0KX0sSWUucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oRil7cmV0dXJuImhleCI9PT1GP2llLnRvSGV4MzIodGhpcy5oLCJiaWci''@;'; + put 'put ''KTppZS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSw3MDM4OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNjQzNikucm90cjMyO2Z1bmN0aW9uIGxlKE4sZWUscSl7cmV0dXJuIE4mZWVefk4mcX1mdW5jdGlvbiBZKE4sZWUscSl7cmV0dXJuIE4mZWVeTiZxXmVlJnF9ZnVuY3Rpb24g''@;'; + put 'put ''VyhOLGVlLHEpe3JldHVybiBOXmVlXnF9US5mdF8xPWZ1bmN0aW9uKE4sZWUscSxKKXtyZXR1cm4gMD09PU4/bGUoZWUscSxKKToxPT09Tnx8Mz09PU4/VyhlZSxxLEopOjI9PT1OP1koZWUscSxKKTp2b2lkIDB9LFEuY2gzMj1sZSxRLm1hajMyPVksUS5wMzI9VyxRLnMwXzI1Nj1mdW5jdGlv''@;'; + put 'put ''bihOKXtyZXR1cm4gaWUoTiwyKV5pZShOLDEzKV5pZShOLDIyKX0sUS5zMV8yNTY9ZnVuY3Rpb24oTil7cmV0dXJuIGllKE4sNileaWUoTiwxMSleaWUoTiwyNSl9LFEuZzBfMjU2PWZ1bmN0aW9uKE4pe3JldHVybiBpZShOLDcpXmllKE4sMTgpXk4+Pj4zfSxRLmcxXzI1Nj1mdW5jdGlvbihO''@;'; + put 'put ''KXtyZXR1cm4gaWUoTiwxNyleaWUoTiwxOSleTj4+PjEwfX0sNjQzNjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDk3NDYpLGxlPVooNTcxNyk7ZnVuY3Rpb24gWShxLEope3JldHVybiA1NTI5Nj09KDY0NTEyJnEuY2hhckNvZGVBdChKKSkmJiEoSjwwfHxKKzE+PXEubGVuZ3Ro''@;'; + put 'put ''KSYmNTYzMjA9PSg2NDUxMiZxLmNoYXJDb2RlQXQoSisxKSl9ZnVuY3Rpb24gVyhxKXtyZXR1cm4ocT4+PjI0fHE+Pj44JjY1MjgwfHE8PDgmMTY3MTE2ODB8KDI1NSZxKTw8MjQpPj4+MH1mdW5jdGlvbiBOKHEpe3JldHVybiAxPT09cS5sZW5ndGg/IjAiK3E6cX1mdW5jdGlvbiBlZShxKXty''@;'; + put 'put ''ZXR1cm4gNz09PXEubGVuZ3RoPyIwIitxOjY9PT1xLmxlbmd0aD8iMDAiK3E6NT09PXEubGVuZ3RoPyIwMDAiK3E6ND09PXEubGVuZ3RoPyIwMDAwIitxOjM9PT1xLmxlbmd0aD8iMDAwMDAiK3E6Mj09PXEubGVuZ3RoPyIwMDAwMDAiK3E6MT09PXEubGVuZ3RoPyIwMDAwMDAwIitxOnF9US5p''@;'; + put 'put ''bmhlcml0cz1sZSxRLnRvQXJyYXk9ZnVuY3Rpb24ocSxKKXtpZihBcnJheS5pc0FycmF5KHEpKXJldHVybiBxLnNsaWNlKCk7aWYoIXEpcmV0dXJuW107dmFyIHNlPVtdO2lmKCJzdHJpbmciPT10eXBlb2YgcSlpZihKKXtpZigiaGV4Ij09PUopZm9yKChxPXEucmVwbGFjZSgvW15hLXowLTld''@;'; + put 'put ''Ky9naSwiIikpLmxlbmd0aCUyIT0wJiYocT0iMCIrcSksY2U9MDtjZTxxLmxlbmd0aDtjZSs9MilzZS5wdXNoKHBhcnNlSW50KHFbY2VdK3FbY2UrMV0sMTYpKX1lbHNlIGZvcih2YXIgb2U9MCxjZT0wO2NlPHEubGVuZ3RoO2NlKyspe3ZhciBkZT1xLmNoYXJDb2RlQXQoY2UpO2RlPDEyOD9z''@;'; + put 'put ''ZVtvZSsrXT1kZTpkZTwyMDQ4PyhzZVtvZSsrXT1kZT4+NnwxOTIsc2Vbb2UrK109NjMmZGV8MTI4KTpZKHEsY2UpPyhkZT02NTUzNisoKDEwMjMmZGUpPDwxMCkrKDEwMjMmcS5jaGFyQ29kZUF0KCsrY2UpKSxzZVtvZSsrXT1kZT4+MTh8MjQwLHNlW29lKytdPWRlPj4xMiY2M3wxMjgsc2Vb''@;'; + put 'put ''b2UrK109ZGU+PjYmNjN8MTI4LHNlW29lKytdPTYzJmRlfDEyOCk6KHNlW29lKytdPWRlPj4xMnwyMjQsc2Vbb2UrK109ZGU+PjYmNjN8MTI4LHNlW29lKytdPTYzJmRlfDEyOCl9ZWxzZSBmb3IoY2U9MDtjZTxxLmxlbmd0aDtjZSsrKXNlW2NlXT0wfHFbY2VdO3JldHVybiBzZX0sUS50b0hl''@;'; + put 'put ''eD1mdW5jdGlvbihxKXtmb3IodmFyIEo9IiIsc2U9MDtzZTxxLmxlbmd0aDtzZSsrKUorPU4ocVtzZV0udG9TdHJpbmcoMTYpKTtyZXR1cm4gSn0sUS5odG9ubD1XLFEudG9IZXgzMj1mdW5jdGlvbihxLEope2Zvcih2YXIgc2U9IiIsb2U9MDtvZTxxLmxlbmd0aDtvZSsrKXt2YXIgY2U9cVtv''@;'; + put 'put ''ZV07ImxpdHRsZSI9PT1KJiYoY2U9VyhjZSkpLHNlKz1lZShjZS50b1N0cmluZygxNikpfXJldHVybiBzZX0sUS56ZXJvMj1OLFEuemVybzg9ZWUsUS5qb2luMzI9ZnVuY3Rpb24ocSxKLHNlLG9lKXt2YXIgY2U9c2UtSjtpZShjZSU0PT0wKTtmb3IodmFyIGRlPW5ldyBBcnJheShjZS80KSx2''@;'; + put 'put ''ZT0wLEFlPUo7dmU8ZGUubGVuZ3RoO3ZlKyssQWUrPTQpZGVbdmVdPSgiYmlnIj09PW9lP3FbQWVdPDwyNHxxW0FlKzFdPDwxNnxxW0FlKzJdPDw4fHFbQWUrM106cVtBZSszXTw8MjR8cVtBZSsyXTw8MTZ8cVtBZSsxXTw8OHxxW0FlXSk+Pj4wO3JldHVybiBkZX0sUS5zcGxpdDMyPWZ1bmN0''@;'; + put 'put ''aW9uKHEsSil7Zm9yKHZhciBzZT1uZXcgQXJyYXkoNCpxLmxlbmd0aCksb2U9MCxjZT0wO29lPHEubGVuZ3RoO29lKyssY2UrPTQpe3ZhciBkZT1xW29lXTsiYmlnIj09PUo/KHNlW2NlXT1kZT4+PjI0LHNlW2NlKzFdPWRlPj4+MTYmMjU1LHNlW2NlKzJdPWRlPj4+OCYyNTUsc2VbY2UrM109''@;'; + put 'put ''MjU1JmRlKTooc2VbY2UrM109ZGU+Pj4yNCxzZVtjZSsyXT1kZT4+PjE2JjI1NSxzZVtjZSsxXT1kZT4+PjgmMjU1LHNlW2NlXT0yNTUmZGUpfXJldHVybiBzZX0sUS5yb3RyMzI9ZnVuY3Rpb24ocSxKKXtyZXR1cm4gcT4+Pkp8cTw8MzItSn0sUS5yb3RsMzI9ZnVuY3Rpb24ocSxKKXtyZXR1''@;'; + put 'put ''cm4gcTw8SnxxPj4+MzItSn0sUS5zdW0zMj1mdW5jdGlvbihxLEope3JldHVybiBxK0o+Pj4wfSxRLnN1bTMyXzM9ZnVuY3Rpb24ocSxKLHNlKXtyZXR1cm4gcStKK3NlPj4+MH0sUS5zdW0zMl80PWZ1bmN0aW9uKHEsSixzZSxvZSl7cmV0dXJuIHErSitzZStvZT4+PjB9LFEuc3VtMzJfNT1m''@;'; + put 'put ''dW5jdGlvbihxLEosc2Usb2UsY2Upe3JldHVybiBxK0orc2Urb2UrY2U+Pj4wfSxRLnN1bTY0PWZ1bmN0aW9uKHEsSixzZSxvZSl7dmFyIGRlPW9lK3FbSisxXT4+PjA7cVtKXT0oZGU8b2U/MTowKStzZStxW0pdPj4+MCxxW0orMV09ZGV9LFEuc3VtNjRfaGk9ZnVuY3Rpb24ocSxKLHNlLG9l''@;'; + put 'put ''KXtyZXR1cm4oSitvZT4+PjA8Sj8xOjApK3Erc2U+Pj4wfSxRLnN1bTY0X2xvPWZ1bmN0aW9uKHEsSixzZSxvZSl7cmV0dXJuIEorb2U+Pj4wfSxRLnN1bTY0XzRfaGk9ZnVuY3Rpb24ocSxKLHNlLG9lLGNlLGRlLHZlLEFlKXt2YXIga2U9MCxTZT1KO3JldHVybiBrZSs9KFNlPVNlK29lPj4+''@;'; + put 'put ''MCk8Sj8xOjAsa2UrPShTZT1TZStkZT4+PjApPGRlPzE6MCxxK3NlK2NlK3ZlKyhrZSs9KFNlPVNlK0FlPj4+MCk8QWU/MTowKT4+PjB9LFEuc3VtNjRfNF9sbz1mdW5jdGlvbihxLEosc2Usb2UsY2UsZGUsdmUsQWUpe3JldHVybiBKK29lK2RlK0FlPj4+MH0sUS5zdW02NF81X2hpPWZ1bmN0''@;'; + put 'put ''aW9uKHEsSixzZSxvZSxjZSxkZSx2ZSxBZSxrZSxTZSl7dmFyIEllPTAsVGU9SjtyZXR1cm4gSWUrPShUZT1UZStvZT4+PjApPEo/MTowLEllKz0oVGU9VGUrZGU+Pj4wKTxkZT8xOjAsSWUrPShUZT1UZStBZT4+PjApPEFlPzE6MCxxK3NlK2NlK3ZlK2tlKyhJZSs9KFRlPVRlK1NlPj4+MCk8''@;'; + put 'put ''U2U/MTowKT4+PjB9LFEuc3VtNjRfNV9sbz1mdW5jdGlvbihxLEosc2Usb2UsY2UsZGUsdmUsQWUsa2UsU2Upe3JldHVybiBKK29lK2RlK0FlK1NlPj4+MH0sUS5yb3RyNjRfaGk9ZnVuY3Rpb24ocSxKLHNlKXtyZXR1cm4oSjw8MzItc2V8cT4+PnNlKT4+PjB9LFEucm90cjY0X2xvPWZ1bmN0''@;'; + put 'put ''aW9uKHEsSixzZSl7cmV0dXJuKHE8PDMyLXNlfEo+Pj5zZSk+Pj4wfSxRLnNocjY0X2hpPWZ1bmN0aW9uKHEsSixzZSl7cmV0dXJuIHE+Pj5zZX0sUS5zaHI2NF9sbz1mdW5jdGlvbihxLEosc2Upe3JldHVybihxPDwzMi1zZXxKPj4+c2UpPj4+MH19LDIxNTY6KFUsUSxaKT0+eyJ1c2Ugc3Ry''@;'; + put 'put ''aWN0Ijt2YXIgaWU9WigzNzE1KSxsZT1aKDQ1MDQpLFk9Wig5NzQ2KTtmdW5jdGlvbiBXKE4pe2lmKCEodGhpcyBpbnN0YW5jZW9mIFcpKXJldHVybiBuZXcgVyhOKTt0aGlzLmhhc2g9Ti5oYXNoLHRoaXMucHJlZFJlc2lzdD0hIU4ucHJlZFJlc2lzdCx0aGlzLm91dExlbj10aGlzLmhhc2gu''@;'; + put 'put ''b3V0U2l6ZSx0aGlzLm1pbkVudHJvcHk9Ti5taW5FbnRyb3B5fHx0aGlzLmhhc2guaG1hY1N0cmVuZ3RoLHRoaXMuX3Jlc2VlZD1udWxsLHRoaXMucmVzZWVkSW50ZXJ2YWw9bnVsbCx0aGlzLks9bnVsbCx0aGlzLlY9bnVsbDt2YXIgZWU9bGUudG9BcnJheShOLmVudHJvcHksTi5lbnRyb3B5''@;'; + put 'put ''RW5jfHwiaGV4IikscT1sZS50b0FycmF5KE4ubm9uY2UsTi5ub25jZUVuY3x8ImhleCIpLEo9bGUudG9BcnJheShOLnBlcnMsTi5wZXJzRW5jfHwiaGV4Iik7WShlZS5sZW5ndGg+PXRoaXMubWluRW50cm9weS84LCJOb3QgZW5vdWdoIGVudHJvcHkuIE1pbmltdW0gaXM6ICIrdGhpcy5taW5F''@;'; + put 'put ''bnRyb3B5KyIgYml0cyIpLHRoaXMuX2luaXQoZWUscSxKKX1VLmV4cG9ydHM9VyxXLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihOLGVlLHEpe3ZhciBKPU4uY29uY2F0KGVlKS5jb25jYXQocSk7dGhpcy5LPW5ldyBBcnJheSh0aGlzLm91dExlbi84KSx0aGlzLlY9bmV3IEFycmF5KHRoaXMu''@;'; + put 'put ''b3V0TGVuLzgpO2Zvcih2YXIgc2U9MDtzZTx0aGlzLlYubGVuZ3RoO3NlKyspdGhpcy5LW3NlXT0wLHRoaXMuVltzZV09MTt0aGlzLl91cGRhdGUoSiksdGhpcy5fcmVzZWVkPTEsdGhpcy5yZXNlZWRJbnRlcnZhbD0yODE0NzQ5NzY3MTA2NTZ9LFcucHJvdG90eXBlLl9obWFjPWZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIG5ldyBpZS5obWFjKHRoaXMuaGFzaCx0aGlzLkspfSxXLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKE4pe3ZhciBlZT10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFswXSk7TiYmKGVlPWVlLnVwZGF0ZShOKSksdGhpcy5LPWVlLmRpZ2VzdCgpLHRoaXMu''@;'; + put 'put ''Vj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksTiYmKHRoaXMuSz10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFsxXSkudXBkYXRlKE4pLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCkpfSxXLnByb3RvdHlw''@;'; + put 'put ''ZS5yZXNlZWQ9ZnVuY3Rpb24oTixlZSxxLEopeyJzdHJpbmciIT10eXBlb2YgZWUmJihKPXEscT1lZSxlZT1udWxsKSxOPWxlLnRvQXJyYXkoTixlZSkscT1sZS50b0FycmF5KHEsSiksWShOLmxlbmd0aD49dGhpcy5taW5FbnRyb3B5LzgsIk5vdCBlbm91Z2ggZW50cm9weS4gTWluaW11bSBp''@;'; + put 'put ''czogIit0aGlzLm1pbkVudHJvcHkrIiBiaXRzIiksdGhpcy5fdXBkYXRlKE4uY29uY2F0KHF8fFtdKSksdGhpcy5fcmVzZWVkPTF9LFcucHJvdG90eXBlLmdlbmVyYXRlPWZ1bmN0aW9uKE4sZWUscSxKKXtpZih0aGlzLl9yZXNlZWQ+dGhpcy5yZXNlZWRJbnRlcnZhbCl0aHJvdyBuZXcgRXJy''@;'; + put 'put ''b3IoIlJlc2VlZCBpcyByZXF1aXJlZCIpOyJzdHJpbmciIT10eXBlb2YgZWUmJihKPXEscT1lZSxlZT1udWxsKSxxJiYocT1sZS50b0FycmF5KHEsSnx8ImhleCIpLHRoaXMuX3VwZGF0ZShxKSk7Zm9yKHZhciBzZT1bXTtzZS5sZW5ndGg8TjspdGhpcy5WPXRoaXMuX2htYWMoKS51cGRhdGUo''@;'; + put 'put ''dGhpcy5WKS5kaWdlc3QoKSxzZT1zZS5jb25jYXQodGhpcy5WKTt2YXIgb2U9c2Uuc2xpY2UoMCxOKTtyZXR1cm4gdGhpcy5fdXBkYXRlKHEpLHRoaXMuX3Jlc2VlZCsrLGxlLmVuY29kZShvZSxlZSl9fSw2NDU6KFUsUSk9PntRLnJlYWQ9ZnVuY3Rpb24oWixpZSxsZSxZLFcpe3ZhciBOLGVl''@;'; + put 'put ''LHE9OCpXLVktMSxKPSgxPDxxKS0xLHNlPUo+PjEsb2U9LTcsY2U9bGU/Vy0xOjAsZGU9bGU/LTE6MSx2ZT1aW2llK2NlXTtmb3IoY2UrPWRlLE49dmUmKDE8PC1vZSktMSx2ZT4+PS1vZSxvZSs9cTtvZT4wO049MjU2Kk4rWltpZStjZV0sY2UrPWRlLG9lLT04KTtmb3IoZWU9TiYoMTw8LW9l''@;'; + put 'put ''KS0xLE4+Pj0tb2Usb2UrPVk7b2U+MDtlZT0yNTYqZWUrWltpZStjZV0sY2UrPWRlLG9lLT04KTtpZigwPT09TilOPTEtc2U7ZWxzZXtpZihOPT09SilyZXR1cm4gZWU/TmFOOjEvMCoodmU/LTE6MSk7ZWUrPU1hdGgucG93KDIsWSksTi09c2V9cmV0dXJuKHZlPy0xOjEpKmVlKk1hdGgucG93''@;'; + put 'put ''KDIsTi1ZKX0sUS53cml0ZT1mdW5jdGlvbihaLGllLGxlLFksVyxOKXt2YXIgZWUscSxKLHNlPTgqTi1XLTEsb2U9KDE8PHNlKS0xLGNlPW9lPj4xLGRlPTIzPT09Vz9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAsdmU9WT8wOk4tMSxBZT1ZPzE6LTEsa2U9aWU8MHx8MD09PWll''@;'; + put 'put ''JiYxL2llPDA/MTowO2ZvcihpZT1NYXRoLmFicyhpZSksaXNOYU4oaWUpfHxpZT09PTEvMD8ocT1pc05hTihpZSk/MTowLGVlPW9lKTooZWU9TWF0aC5mbG9vcihNYXRoLmxvZyhpZSkvTWF0aC5MTjIpLGllKihKPU1hdGgucG93KDIsLWVlKSk8MSYmKGVlLS0sSio9MiksKGllKz1lZStjZT49''@;'; + put 'put ''MT9kZS9KOmRlKk1hdGgucG93KDIsMS1jZSkpKko+PTImJihlZSsrLEovPTIpLGVlK2NlPj1vZT8ocT0wLGVlPW9lKTplZStjZT49MT8ocT0oaWUqSi0xKSpNYXRoLnBvdygyLFcpLGVlKz1jZSk6KHE9aWUqTWF0aC5wb3coMixjZS0xKSpNYXRoLnBvdygyLFcpLGVlPTApKTtXPj04O1pbbGUr''@;'; + put 'put ''dmVdPTI1NSZxLHZlKz1BZSxxLz0yNTYsVy09OCk7Zm9yKGVlPWVlPDxXfHEsc2UrPVc7c2U+MDtaW2xlK3ZlXT0yNTUmZWUsdmUrPUFlLGVlLz0yNTYsc2UtPTgpO1pbbGUrdmUtQWVdfD0xMjgqa2V9fSw3ODQ0OihVLFEsWik9Pnt2YXIgaWU9Wig0MTU1KSxsZT1aKDI0NzkpLFk9T2JqZWN0''@;'; + put 'put ''LmNyZWF0ZShudWxsKSxXPVooNzc4KTtmdW5jdGlvbiBOKGVlKXtmb3IodmFyIHE9ZWUubGVuZ3RoLEo9W10sc2U9MDtzZTxxO3NlKyspSltzZV09ZWVbc2VdO3JldHVybiBKfVUuZXhwb3J0cz1sZShmdW5jdGlvbihlZSxxKXtyZXR1cm4gWVtlZV0/KFlbZWVdLnB1c2gocSksbnVsbCk6KFlb''@;'; + put 'put ''ZWVdPVtxXSxKPWVlLFcoZnVuY3Rpb24gc2UoKXt2YXIgb2U9WVtKXSxjZT1vZS5sZW5ndGgsZGU9Tihhcmd1bWVudHMpO3RyeXtmb3IodmFyIHZlPTA7dmU8Y2U7dmUrKylvZVt2ZV0uYXBwbHkobnVsbCxkZSl9ZmluYWxseXtvZS5sZW5ndGg+Y2U/KG9lLnNwbGljZSgwLGNlKSxpZS5uZXh0''@;'; + put 'put ''VGljayhmdW5jdGlvbigpe3NlLmFwcGx5KG51bGwsZGUpfSkpOmRlbGV0ZSBZW0pdfX0pKTt2YXIgSn0pfSw1NzE3OlU9PntVLmV4cG9ydHM9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oUSxaKXtaJiYoUS5zdXBlcl89WixRLnByb3RvdHlwZT1PYmplY3QuY3Jl''@;'; + put 'put ''YXRlKFoucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6USxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSl9OmZ1bmN0aW9uKFEsWil7aWYoWil7US5zdXBlcl89Wjt2YXIgaWU9ZnVuY3Rpb24oKXt9O2llLnByb3RvdHlwZT1aLnByb3RvdHlwZSxRLnBy''@;'; + put 'put ''b3RvdHlwZT1uZXcgaWUsUS5wcm90b3R5cGUuY29uc3RydWN0b3I9UX19fSwyNTg0OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNjQxMCkoKSxsZT1aKDE5MjQpKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIiksWT1mdW5jdGlvbihlZSl7cmV0dXJuIShpZSYmZWUmJiJvYmpl''@;'; + put 'put ''Y3QiPT10eXBlb2YgZWUmJlN5bWJvbC50b1N0cmluZ1RhZyBpbiBlZSkmJiJbb2JqZWN0IEFyZ3VtZW50c10iPT09bGUoZWUpfSxXPWZ1bmN0aW9uKGVlKXtyZXR1cm4hIVkoZWUpfHxudWxsIT09ZWUmJiJvYmplY3QiPT10eXBlb2YgZWUmJiJudW1iZXIiPT10eXBlb2YgZWUubGVuZ3RoJiZl''@;'; + put 'put ''ZS5sZW5ndGg+PTAmJiJbb2JqZWN0IEFycmF5XSIhPT1sZShlZSkmJiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1sZShlZS5jYWxsZWUpfSxOPWZ1bmN0aW9uKCl7cmV0dXJuIFkoYXJndW1lbnRzKX0oKTtZLmlzTGVnYWN5QXJndW1lbnRzPVcsVS5leHBvcnRzPU4/WTpXfSw1MzIwOlU9PnsidXNl''@;'; + put 'put ''IHN0cmljdCI7dmFyIFEsWixpZT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsbGU9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZudWxsIT09UmVmbGVjdCYmUmVmbGVjdC5hcHBseTtpZigiZnVuY3Rpb24iPT10eXBlb2YgbGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkpdHJ5e1E9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJsZW5ndGgiLHtnZXQ6ZnVuY3Rpb24oKXt0aHJvdyBafX0pLFo9e30sbGUoZnVuY3Rpb24oKXt0aHJvdyA0Mn0sbnVsbCxRKX1jYXRjaChKKXtKIT09WiYmKGxlPW51bGwpfWVsc2UgbGU9bnVsbDt2YXIgWT0vXlxzKmNs''@;'; + put 'put ''YXNzXGIvLFc9ZnVuY3Rpb24oSil7dHJ5e3ZhciBzZT1pZS5jYWxsKEopO3JldHVybiBZLnRlc3Qoc2UpfWNhdGNoKG9lKXtyZXR1cm4hMX19LE49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxlZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYhIVN5bWJvbC50b1N0cmluZ1RhZyxxPSJv''@;'; + put 'put ''YmplY3QiPT10eXBlb2YgZG9jdW1lbnQmJnZvaWQgMD09PWRvY3VtZW50LmFsbCYmdm9pZCAwIT09ZG9jdW1lbnQuYWxsP2RvY3VtZW50LmFsbDp7fTtVLmV4cG9ydHM9bGU/ZnVuY3Rpb24oSil7aWYoSj09PXEpcmV0dXJuITA7aWYoIUp8fCJmdW5jdGlvbiIhPXR5cGVvZiBKJiYib2JqZWN0''@;'; + put 'put ''IiE9dHlwZW9mIEopcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEomJiFKLnByb3RvdHlwZSlyZXR1cm4hMDt0cnl7bGUoSixudWxsLFEpfWNhdGNoKHNlKXtpZihzZSE9PVopcmV0dXJuITF9cmV0dXJuIVcoSil9OmZ1bmN0aW9uKEope2lmKEo9PT1xKXJldHVybiEwO2lmKCFKfHwi''@;'; + put 'put ''ZnVuY3Rpb24iIT10eXBlb2YgSiYmIm9iamVjdCIhPXR5cGVvZiBKKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBKJiYhSi5wcm90b3R5cGUpcmV0dXJuITA7aWYoZWUpcmV0dXJuIGZ1bmN0aW9uKG9lKXt0cnl7cmV0dXJuIVcob2UpJiYoaWUuY2FsbChvZSksITApfWNhdGNoKGNl''@;'; + put 'put ''KXtyZXR1cm4hMX19KEopO2lmKFcoSikpcmV0dXJuITE7dmFyIHNlPU4uY2FsbChKKTtyZXR1cm4iW29iamVjdCBGdW5jdGlvbl0iPT09c2V8fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PT1zZX19LDg2NjI6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsbGU9T2JqZWN0LnBy''@;'; + put 'put ''b3RvdHlwZS50b1N0cmluZyxZPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyxXPS9eXHMqKD86ZnVuY3Rpb24pP1wqLyxOPVooNjQxMCkoKSxlZT1PYmplY3QuZ2V0UHJvdG90eXBlT2Y7VS5leHBvcnRzPWZ1bmN0aW9uKHEpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBxKXJldHVybiExO2lm''@;'; + put 'put ''KFcudGVzdChZLmNhbGwocSkpKXJldHVybiEwO2lmKCFOKXJldHVybiJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSI9PT1sZS5jYWxsKHEpO2lmKCFlZSlyZXR1cm4hMTtpZih2b2lkIDA9PT1pZSl7dmFyIEo9ZnVuY3Rpb24oKXtpZighTilyZXR1cm4hMTt0cnl7cmV0dXJuIEZ1bmN0aW9u''@;'; + put 'put ''KCJyZXR1cm4gZnVuY3Rpb24qKCkge30iKSgpfWNhdGNoKHNlKXt9fSgpO2llPSEhSiYmZWUoSil9cmV0dXJuIGVlKHEpPT09aWV9fSw4NjExOlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKFEpe3JldHVybiBRIT1RfX0sMzYwOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFy''@;'; + put 'put ''IGllPVooNTU1OSksbGU9Wig0Mjg5KSxZPVooODYxMSksVz1aKDk0MTUpLE49WigzMTk0KSxlZT1pZShXKCksTnVtYmVyKTtsZShlZSx7Z2V0UG9seWZpbGw6VyxpbXBsZW1lbnRhdGlvbjpZLHNoaW06Tn0pLFUuZXhwb3J0cz1lZX0sOTQxNTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBp''@;'; + put 'put ''ZT1aKDg2MTEpO1UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBOdW1iZXIuaXNOYU4mJk51bWJlci5pc05hTihOYU4pJiYhTnVtYmVyLmlzTmFOKCJhIik/TnVtYmVyLmlzTmFOOmllfX0sMzE5NDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQyODkpLGxlPVooOTQxNSk7VS5l''@;'; + put 'put ''eHBvcnRzPWZ1bmN0aW9uKCl7dmFyIFk9bGUoKTtyZXR1cm4gaWUoTnVtYmVyLHtpc05hTjpZfSx7aXNOYU46ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyLmlzTmFOIT09WX19KSxZfX0sNTY5MjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQwMjkpLGxlPVooMzA4MyksWT1aKDE5''@;'; + put 'put ''MjQpLFc9WSgiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyIpLE49Wig2NDEwKSgpLGVlPSJ1bmRlZmluZWQiPT10eXBlb2YgZ2xvYmFsVGhpcz9aLmc6Z2xvYmFsVGhpcyxxPWxlKCksSj1ZKCJBcnJheS5wcm90b3R5cGUuaW5kZXhPZiIsITApfHxmdW5jdGlvbih2ZSxBZSl7Zm9yKHZhciBr''@;'; + put 'put ''ZT0wO2tlPHZlLmxlbmd0aDtrZSs9MSlpZih2ZVtrZV09PT1BZSlyZXR1cm4ga2U7cmV0dXJuLTF9LHNlPVkoIlN0cmluZy5wcm90b3R5cGUuc2xpY2UiKSxvZT17fSxjZT1aKDg4MiksZGU9T2JqZWN0LmdldFByb3RvdHlwZU9mO04mJmNlJiZkZSYmaWUocSxmdW5jdGlvbih2ZSl7dmFyIEFl''@;'; + put 'put ''PW5ldyBlZVt2ZV07aWYoU3ltYm9sLnRvU3RyaW5nVGFnIGluIEFlKXt2YXIga2U9ZGUoQWUpLFNlPWNlKGtlLFN5bWJvbC50b1N0cmluZ1RhZyk7aWYoIVNlKXt2YXIgSWU9ZGUoa2UpO1NlPWNlKEllLFN5bWJvbC50b1N0cmluZ1RhZyl9b2VbdmVdPVNlLmdldH19KSxVLmV4cG9ydHM9ZnVu''@;'; + put 'put ''Y3Rpb24odmUpe2lmKCF2ZXx8Im9iamVjdCIhPXR5cGVvZiB2ZSlyZXR1cm4hMTtpZighTnx8IShTeW1ib2wudG9TdHJpbmdUYWcgaW4gdmUpKXt2YXIgQWU9c2UoVyh2ZSksOCwtMSk7cmV0dXJuIEoocSxBZSk+LTF9cmV0dXJuISFjZSYmKGtlPXZlLFNlPSExLGllKG9lLGZ1bmN0aW9uKEll''@;'; + put 'put ''LFRlKXtpZighU2UpdHJ5e1NlPUllLmNhbGwoa2UpPT09VGV9Y2F0Y2goRWUpe319KSxTZSk7dmFyIGtlLFNlfX0sNjgxMzooVSxRLFopPT57bGV0IGllO3RyeXtpZT1aKDc3KX1jYXRjaChlZSl7aWU9Wig0MTI5KX1jb25zdCBsZT1aKDg5ODEpLHtzdHJpbmdpZnk6WSxzdHJpcEJvbTpXfT1a''@;'; + put 'put ''KDY3ODApLE49e3JlYWRGaWxlOmxlLmZyb21Qcm9taXNlKGZ1bmN0aW9uKCl7dmFyIGVlPW1lKGZ1bmN0aW9uKihxLEo9e30peyJzdHJpbmciPT10eXBlb2YgSiYmKEo9e2VuY29kaW5nOkp9KTtjb25zdCBzZT1KLmZzfHxpZSxvZT0hKCJ0aHJvd3MiaW4gSil8fEoudGhyb3dzO2xldCBjZSxk''@;'; + put 'put ''ZT15aWVsZCBsZS5mcm9tQ2FsbGJhY2soc2UucmVhZEZpbGUpKHEsSik7ZGU9VyhkZSk7dHJ5e2NlPUpTT04ucGFyc2UoZGUsSj9KLnJldml2ZXI6bnVsbCl9Y2F0Y2godmUpe2lmKG9lKXRocm93IHZlLm1lc3NhZ2U9YCR7cX06ICR7dmUubWVzc2FnZX1gLHZlO3JldHVybiBudWxsfXJldHVy''@;'; + put 'put ''biBjZX0pO3JldHVybiBmdW5jdGlvbihxKXtyZXR1cm4gZWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSkscmVhZEZpbGVTeW5jOmZ1bmN0aW9uKGVlLHE9e30peyJzdHJpbmciPT10eXBlb2YgcSYmKHE9e2VuY29kaW5nOnF9KTtjb25zdCBKPXEuZnN8fGllLHNlPSEoInRocm93cyJpbiBx''@;'; + put 'put ''KXx8cS50aHJvd3M7dHJ5e2xldCBvZT1KLnJlYWRGaWxlU3luYyhlZSxxKTtyZXR1cm4gb2U9VyhvZSksSlNPTi5wYXJzZShvZSxxLnJldml2ZXIpfWNhdGNoKG9lKXtpZihzZSl0aHJvdyBvZS5tZXNzYWdlPWAke2VlfTogJHtvZS5tZXNzYWdlfWAsb2U7cmV0dXJuIG51bGx9fSx3cml0ZUZp''@;'; + put 'put ''bGU6bGUuZnJvbVByb21pc2UoZnVuY3Rpb24oKXt2YXIgZWU9bWUoZnVuY3Rpb24qKHEsSixzZT17fSl7Y29uc3Qgb2U9c2UuZnN8fGllLGNlPVkoSixzZSk7eWllbGQgbGUuZnJvbUNhbGxiYWNrKG9lLndyaXRlRmlsZSkocSxjZSxzZSl9KTtyZXR1cm4gZnVuY3Rpb24ocSxKKXtyZXR1cm4g''@;'; + put 'put ''ZWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksd3JpdGVGaWxlU3luYzpmdW5jdGlvbihlZSxxLEo9e30pe2NvbnN0IHNlPUouZnN8fGllLG9lPVkocSxKKTtyZXR1cm4gc2Uud3JpdGVGaWxlU3luYyhlZSxvZSxKKX19O1UuZXhwb3J0cz1OfSw2NzgwOihVLFEsWik9Pnt2YXIgaWU9Wig4''@;'; + put 'put ''NzY0KS5CdWZmZXI7VS5leHBvcnRzPXtzdHJpbmdpZnk6ZnVuY3Rpb24obGUse0VPTDpZPSJcbiIsZmluYWxFT0w6Vz0hMCxyZXBsYWNlcjpOPW51bGwsc3BhY2VzOmVlfT17fSl7Y29uc3QgcT1XP1k6IiI7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGxlLE4sZWUpLnJlcGxhY2UoL1xuL2csWSkr''@;'; + put 'put ''cX0sc3RyaXBCb206ZnVuY3Rpb24obGUpe3JldHVybiBpZS5pc0J1ZmZlcihsZSkmJihsZT1sZS50b1N0cmluZygidXRmOCIpKSxsZS5yZXBsYWNlKC9eXHVGRUZGLywiIil9fX0sNjI0NTooVSxRLFopPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGllKGVlKXt0aGlzLm1lc3NhZ2U9ZWV9Wi5y''@;'; + put 'put ''KFEpLFouZChRLHtkZWZhdWx0OigpPT5OLEludmFsaWRUb2tlbkVycm9yOigpPT5XfSksKGllLnByb3RvdHlwZT1uZXcgRXJyb3IpLm5hbWU9IkludmFsaWRDaGFyYWN0ZXJFcnJvciI7dmFyIGxlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuYXRvYiYmd2luZG93LmF0b2Iu''@;'; + put 'put ''YmluZCh3aW5kb3cpfHxmdW5jdGlvbihlZSl7dmFyIHE9U3RyaW5nKGVlKS5yZXBsYWNlKC89KyQvLCIiKTtpZihxLmxlbmd0aCU0PT0xKXRocm93IG5ldyBpZSgiJ2F0b2InIGZhaWxlZDogVGhlIHN0cmluZyB0byBiZSBkZWNvZGVkIGlzIG5vdCBjb3JyZWN0bHkgZW5jb2RlZC4iKTtmb3Io''@;'; + put 'put ''dmFyIEosc2Usb2U9MCxjZT0wLGRlPSIiO3NlPXEuY2hhckF0KGNlKyspO35zZSYmKEo9b2UlND82NCpKK3NlOnNlLG9lKyslNCk/ZGUrPVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1Jko+PigtMipvZSY2KSk6MClzZT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9w''@;'; + put 'put ''cXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmluZGV4T2Yoc2UpO3JldHVybiBkZX07ZnVuY3Rpb24gVyhlZSl7dGhpcy5tZXNzYWdlPWVlfShXLnByb3RvdHlwZT1uZXcgRXJyb3IpLm5hbWU9IkludmFsaWRUb2tlbkVycm9yIjtjb25zdCBOPWZ1bmN0aW9uKGVlLHEpe2lmKCJzdHJpbmciIT10''@;'; + put 'put ''eXBlb2YgZWUpdGhyb3cgbmV3IFcoIkludmFsaWQgdG9rZW4gc3BlY2lmaWVkIik7dmFyIEo9ITA9PT0ocT1xfHx7fSkuaGVhZGVyPzA6MTt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZnVuY3Rpb24gWShlZSl7dmFyIHE9ZWUucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIik7c3dp''@;'; + put 'put ''dGNoKHEubGVuZ3RoJTQpe2Nhc2UgMDpicmVhaztjYXNlIDI6cSs9Ij09IjticmVhaztjYXNlIDM6cSs9Ij0iO2JyZWFrO2RlZmF1bHQ6dGhyb3ciSWxsZWdhbCBiYXNlNjR1cmwgc3RyaW5nISJ9dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQobGUocSkucmVwbGFjZSgvKC4pL2csZnVu''@;'; + put 'put ''Y3Rpb24oc2Usb2Upe3ZhciBjZT1vZS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiBjZS5sZW5ndGg8MiYmKGNlPSIwIitjZSksIiUiK2NlfSkpfWNhdGNoKEope3JldHVybiBsZShxKX19KGVlLnNwbGl0KCIuIilbSl0pKX1jYXRjaChzZSl7dGhyb3cg''@;'; + put 'put ''bmV3IFcoIkludmFsaWQgdG9rZW4gc3BlY2lmaWVkOiAiK3NlLm1lc3NhZ2UpfX19LDIzMTg6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig1NzE3KSxsZT1aKDMzNDkpLFk9Wig5NTA5KS5CdWZmZXIsVz1uZXcgQXJyYXkoMTYpO2Z1bmN0aW9uIE4oKXtsZS5jYWxsKHRoaXMsNjQp''@;'; + put 'put ''LHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4fWZ1bmN0aW9uIGVlKGNlLGRlKXtyZXR1cm4gY2U8PGRlfGNlPj4+MzItZGV9ZnVuY3Rpb24gcShjZSxkZSx2ZSxBZSxrZSxTZSxJZSl7cmV0dXJuIGVlKGNl''@;'; + put 'put ''KyhkZSZ2ZXx+ZGUmQWUpK2tlK1NlfDAsSWUpK2RlfDB9ZnVuY3Rpb24gSihjZSxkZSx2ZSxBZSxrZSxTZSxJZSl7cmV0dXJuIGVlKGNlKyhkZSZBZXx2ZSZ+QWUpK2tlK1NlfDAsSWUpK2RlfDB9ZnVuY3Rpb24gc2UoY2UsZGUsdmUsQWUsa2UsU2UsSWUpe3JldHVybiBlZShjZSsoZGVedmVe''@;'; + put 'put ''QWUpK2tlK1NlfDAsSWUpK2RlfDB9ZnVuY3Rpb24gb2UoY2UsZGUsdmUsQWUsa2UsU2UsSWUpe3JldHVybiBlZShjZSsodmVeKGRlfH5BZSkpK2tlK1NlfDAsSWUpK2RlfDB9aWUoTixsZSksTi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe2Zvcih2YXIgY2U9VyxkZT0wO2RlPDE2Oysr''@;'; + put 'put ''ZGUpY2VbZGVdPXRoaXMuX2Jsb2NrLnJlYWRJbnQzMkxFKDQqZGUpO3ZhciB2ZT10aGlzLl9hLEFlPXRoaXMuX2Isa2U9dGhpcy5fYyxTZT10aGlzLl9kO3ZlPXEodmUsQWUsa2UsU2UsY2VbMF0sMzYxNDA5MDM2MCw3KSxTZT1xKFNlLHZlLEFlLGtlLGNlWzFdLDM5MDU0MDI3MTAsMTIpLGtl''@;'; + put 'put ''PXEoa2UsU2UsdmUsQWUsY2VbMl0sNjA2MTA1ODE5LDE3KSxBZT1xKEFlLGtlLFNlLHZlLGNlWzNdLDMyNTA0NDE5NjYsMjIpLHZlPXEodmUsQWUsa2UsU2UsY2VbNF0sNDExODU0ODM5OSw3KSxTZT1xKFNlLHZlLEFlLGtlLGNlWzVdLDEyMDAwODA0MjYsMTIpLGtlPXEoa2UsU2UsdmUsQWUs''@;'; + put 'put ''Y2VbNl0sMjgyMTczNTk1NSwxNyksQWU9cShBZSxrZSxTZSx2ZSxjZVs3XSw0MjQ5MjYxMzEzLDIyKSx2ZT1xKHZlLEFlLGtlLFNlLGNlWzhdLDE3NzAwMzU0MTYsNyksU2U9cShTZSx2ZSxBZSxrZSxjZVs5XSwyMzM2NTUyODc5LDEyKSxrZT1xKGtlLFNlLHZlLEFlLGNlWzEwXSw0Mjk0OTI1''@;'; + put 'put ''MjMzLDE3KSxBZT1xKEFlLGtlLFNlLHZlLGNlWzExXSwyMzA0NTYzMTM0LDIyKSx2ZT1xKHZlLEFlLGtlLFNlLGNlWzEyXSwxODA0NjAzNjgyLDcpLFNlPXEoU2UsdmUsQWUsa2UsY2VbMTNdLDQyNTQ2MjYxOTUsMTIpLGtlPXEoa2UsU2UsdmUsQWUsY2VbMTRdLDI3OTI5NjUwMDYsMTcpLHZl''@;'; + put 'put ''PUoodmUsQWU9cShBZSxrZSxTZSx2ZSxjZVsxNV0sMTIzNjUzNTMyOSwyMiksa2UsU2UsY2VbMV0sNDEyOTE3MDc4Niw1KSxTZT1KKFNlLHZlLEFlLGtlLGNlWzZdLDMyMjU0NjU2NjQsOSksa2U9SihrZSxTZSx2ZSxBZSxjZVsxMV0sNjQzNzE3NzEzLDE0KSxBZT1KKEFlLGtlLFNlLHZlLGNl''@;'; + put 'put ''WzBdLDM5MjEwNjk5OTQsMjApLHZlPUoodmUsQWUsa2UsU2UsY2VbNV0sMzU5MzQwODYwNSw1KSxTZT1KKFNlLHZlLEFlLGtlLGNlWzEwXSwzODAxNjA4Myw5KSxrZT1KKGtlLFNlLHZlLEFlLGNlWzE1XSwzNjM0NDg4OTYxLDE0KSxBZT1KKEFlLGtlLFNlLHZlLGNlWzRdLDM4ODk0Mjk0NDgs''@;'; + put 'put ''MjApLHZlPUoodmUsQWUsa2UsU2UsY2VbOV0sNTY4NDQ2NDM4LDUpLFNlPUooU2UsdmUsQWUsa2UsY2VbMTRdLDMyNzUxNjM2MDYsOSksa2U9SihrZSxTZSx2ZSxBZSxjZVszXSw0MTA3NjAzMzM1LDE0KSxBZT1KKEFlLGtlLFNlLHZlLGNlWzhdLDExNjM1MzE1MDEsMjApLHZlPUoodmUsQWUs''@;'; + put 'put ''a2UsU2UsY2VbMTNdLDI4NTAyODU4MjksNSksU2U9SihTZSx2ZSxBZSxrZSxjZVsyXSw0MjQzNTYzNTEyLDkpLGtlPUooa2UsU2UsdmUsQWUsY2VbN10sMTczNTMyODQ3MywxNCksdmU9c2UodmUsQWU9SihBZSxrZSxTZSx2ZSxjZVsxMl0sMjM2ODM1OTU2MiwyMCksa2UsU2UsY2VbNV0sNDI5''@;'; + put 'put ''NDU4ODczOCw0KSxTZT1zZShTZSx2ZSxBZSxrZSxjZVs4XSwyMjcyMzkyODMzLDExKSxrZT1zZShrZSxTZSx2ZSxBZSxjZVsxMV0sMTgzOTAzMDU2MiwxNiksQWU9c2UoQWUsa2UsU2UsdmUsY2VbMTRdLDQyNTk2NTc3NDAsMjMpLHZlPXNlKHZlLEFlLGtlLFNlLGNlWzFdLDI3NjM5NzUyMzYs''@;'; + put 'put ''NCksU2U9c2UoU2UsdmUsQWUsa2UsY2VbNF0sMTI3Mjg5MzM1MywxMSksa2U9c2Uoa2UsU2UsdmUsQWUsY2VbN10sNDEzOTQ2OTY2NCwxNiksQWU9c2UoQWUsa2UsU2UsdmUsY2VbMTBdLDMyMDAyMzY2NTYsMjMpLHZlPXNlKHZlLEFlLGtlLFNlLGNlWzEzXSw2ODEyNzkxNzQsNCksU2U9c2Uo''@;'; + put 'put ''U2UsdmUsQWUsa2UsY2VbMF0sMzkzNjQzMDA3NCwxMSksa2U9c2Uoa2UsU2UsdmUsQWUsY2VbM10sMzU3MjQ0NTMxNywxNiksQWU9c2UoQWUsa2UsU2UsdmUsY2VbNl0sNzYwMjkxODksMjMpLHZlPXNlKHZlLEFlLGtlLFNlLGNlWzldLDM2NTQ2MDI4MDksNCksU2U9c2UoU2UsdmUsQWUsa2Us''@;'; + put 'put ''Y2VbMTJdLDM4NzMxNTE0NjEsMTEpLGtlPXNlKGtlLFNlLHZlLEFlLGNlWzE1XSw1MzA3NDI1MjAsMTYpLHZlPW9lKHZlLEFlPXNlKEFlLGtlLFNlLHZlLGNlWzJdLDMyOTk2Mjg2NDUsMjMpLGtlLFNlLGNlWzBdLDQwOTYzMzY0NTIsNiksU2U9b2UoU2UsdmUsQWUsa2UsY2VbN10sMTEyNjg5''@;'; + put 'put ''MTQxNSwxMCksa2U9b2Uoa2UsU2UsdmUsQWUsY2VbMTRdLDI4Nzg2MTIzOTEsMTUpLEFlPW9lKEFlLGtlLFNlLHZlLGNlWzVdLDQyMzc1MzMyNDEsMjEpLHZlPW9lKHZlLEFlLGtlLFNlLGNlWzEyXSwxNzAwNDg1NTcxLDYpLFNlPW9lKFNlLHZlLEFlLGtlLGNlWzNdLDIzOTk5ODA2OTAsMTAp''@;'; + put 'put ''LGtlPW9lKGtlLFNlLHZlLEFlLGNlWzEwXSw0MjkzOTE1NzczLDE1KSxBZT1vZShBZSxrZSxTZSx2ZSxjZVsxXSwyMjQwMDQ0NDk3LDIxKSx2ZT1vZSh2ZSxBZSxrZSxTZSxjZVs4XSwxODczMzEzMzU5LDYpLFNlPW9lKFNlLHZlLEFlLGtlLGNlWzE1XSw0MjY0MzU1NTUyLDEwKSxrZT1vZShr''@;'; + put 'put ''ZSxTZSx2ZSxBZSxjZVs2XSwyNzM0NzY4OTE2LDE1KSxBZT1vZShBZSxrZSxTZSx2ZSxjZVsxM10sMTMwOTE1MTY0OSwyMSksdmU9b2UodmUsQWUsa2UsU2UsY2VbNF0sNDE0OTQ0NDIyNiw2KSxTZT1vZShTZSx2ZSxBZSxrZSxjZVsxMV0sMzE3NDc1NjkxNywxMCksa2U9b2Uoa2UsU2UsdmUs''@;'; + put 'put ''QWUsY2VbMl0sNzE4Nzg3MjU5LDE1KSxBZT1vZShBZSxrZSxTZSx2ZSxjZVs5XSwzOTUxNDgxNzQ1LDIxKSx0aGlzLl9hPXRoaXMuX2ErdmV8MCx0aGlzLl9iPXRoaXMuX2IrQWV8MCx0aGlzLl9jPXRoaXMuX2Mra2V8MCx0aGlzLl9kPXRoaXMuX2QrU2V8MH0sTi5wcm90b3R5cGUuX2RpZ2Vz''@;'; + put 'put ''dD1mdW5jdGlvbigpe3RoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPTEyOCx0aGlzLl9ibG9ja09mZnNldD41NiYmKHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw2NCksdGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9MCksdGhpcy5fYmxvY2suZmls''@;'; + put 'put ''bCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFswXSw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sNjApLHRoaXMuX3VwZGF0ZSgpO3ZhciBjZT1ZLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4g''@;'; + put 'put ''Y2Uud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksY2Uud3JpdGVJbnQzMkxFKHRoaXMuX2IsNCksY2Uud3JpdGVJbnQzMkxFKHRoaXMuX2MsOCksY2Uud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLGNlfSxVLmV4cG9ydHM9Tn0sMzA0NzooVSxRLFopPT57dmFyIGllPVooNjI0MCksbGU9Wig5OTMx''@;'; + put 'put ''KTtmdW5jdGlvbiBZKFcpe3RoaXMucmFuZD1XfHxuZXcgbGUuUmFuZH1VLmV4cG9ydHM9WSxZLmNyZWF0ZT1mdW5jdGlvbihXKXtyZXR1cm4gbmV3IFkoVyl9LFkucHJvdG90eXBlLl9yYW5kYmVsb3c9ZnVuY3Rpb24oVyl7dmFyIE49Vy5iaXRMZW5ndGgoKSxlZT1NYXRoLmNlaWwoTi84KTtk''@;'; + put 'put ''b3t2YXIgcT1uZXcgaWUodGhpcy5yYW5kLmdlbmVyYXRlKGVlKSl9d2hpbGUocS5jbXAoVyk+PTApO3JldHVybiBxfSxZLnByb3RvdHlwZS5fcmFuZHJhbmdlPWZ1bmN0aW9uKFcsTil7dmFyIGVlPU4uc3ViKFcpO3JldHVybiBXLmFkZCh0aGlzLl9yYW5kYmVsb3coZWUpKX0sWS5wcm90b3R5''@;'; + put 'put ''cGUudGVzdD1mdW5jdGlvbihXLE4sZWUpe3ZhciBxPVcuYml0TGVuZ3RoKCksSj1pZS5tb250KFcpLHNlPW5ldyBpZSgxKS50b1JlZChKKTtOfHwoTj1NYXRoLm1heCgxLHEvNDh8MCkpO2Zvcih2YXIgb2U9Vy5zdWJuKDEpLGNlPTA7IW9lLnRlc3RuKGNlKTtjZSsrKTtmb3IodmFyIGRlPVcu''@;'; + put 'put ''c2hybihjZSksdmU9b2UudG9SZWQoSik7Tj4wO04tLSl7dmFyIEFlPXRoaXMuX3JhbmRyYW5nZShuZXcgaWUoMiksb2UpO2VlJiZlZShBZSk7dmFyIGtlPUFlLnRvUmVkKEopLnJlZFBvdyhkZSk7aWYoMCE9PWtlLmNtcChzZSkmJjAhPT1rZS5jbXAodmUpKXtmb3IodmFyIFNlPTE7U2U8Y2U7''@;'; + put 'put ''U2UrKyl7aWYoMD09PShrZT1rZS5yZWRTcXIoKSkuY21wKHNlKSlyZXR1cm4hMTtpZigwPT09a2UuY21wKHZlKSlicmVha31pZihTZT09PWNlKXJldHVybiExfX1yZXR1cm4hMH0sWS5wcm90b3R5cGUuZ2V0RGl2aXNvcj1mdW5jdGlvbihXLE4pe3ZhciBlZT1XLmJpdExlbmd0aCgpLHE9aWUu''@;'; + put 'put ''bW9udChXKSxKPW5ldyBpZSgxKS50b1JlZChxKTtOfHwoTj1NYXRoLm1heCgxLGVlLzQ4fDApKTtmb3IodmFyIHNlPVcuc3VibigxKSxvZT0wOyFzZS50ZXN0bihvZSk7b2UrKyk7Zm9yKHZhciBjZT1XLnNocm4ob2UpLGRlPXNlLnRvUmVkKHEpO04+MDtOLS0pe3ZhciB2ZT10aGlzLl9yYW5k''@;'; + put 'put ''cmFuZ2UobmV3IGllKDIpLHNlKSxBZT1XLmdjZCh2ZSk7aWYoMCE9PUFlLmNtcG4oMSkpcmV0dXJuIEFlO3ZhciBrZT12ZS50b1JlZChxKS5yZWRQb3coY2UpO2lmKDAhPT1rZS5jbXAoSikmJjAhPT1rZS5jbXAoZGUpKXtmb3IodmFyIFNlPTE7U2U8b2U7U2UrKyl7aWYoMD09PShrZT1rZS5y''@;'; + put 'put ''ZWRTcXIoKSkuY21wKEopKXJldHVybiBrZS5mcm9tUmVkKCkuc3VibigxKS5nY2QoVyk7aWYoMD09PWtlLmNtcChkZSkpYnJlYWt9aWYoU2U9PT1vZSlyZXR1cm4oa2U9a2UucmVkU3FyKCkpLmZyb21SZWQoKS5zdWJuKDEpLmdjZChXKX19cmV0dXJuITF9fSw2MjQwOmZ1bmN0aW9uKFUsUSxa''@;'; + put 'put ''KXshZnVuY3Rpb24oaWUsbGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBZKHgsUCl7aWYoIXgpdGhyb3cgbmV3IEVycm9yKFB8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gVyh4LFApe3guc3VwZXJfPVA7dmFyIFY9ZnVuY3Rpb24oKXt9O1YucHJvdG90eXBlPVAucHJvdG90eXBlLHgu''@;'; + put 'put ''cHJvdG90eXBlPW5ldyBWLHgucHJvdG90eXBlLmNvbnN0cnVjdG9yPXh9ZnVuY3Rpb24gTih4LFAsVil7aWYoTi5pc0JOKHgpKXJldHVybiB4O3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT14JiYoImxlIiE9PVAmJiJi''@;'; + put 'put ''ZSIhPT1QfHwoVj1QLFA9MTApLHRoaXMuX2luaXQoeHx8MCxQfHwxMCxWfHwiYmUiKSl9dmFyIGVlOyJvYmplY3QiPT10eXBlb2YgaWU/aWUuZXhwb3J0cz1OOmxlLkJOPU4sTi5CTj1OLE4ud29yZFNpemU9MjY7dHJ5e2VlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13''@;'; + put 'put ''aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6Wig2NjE5KS5CdWZmZXJ9Y2F0Y2goeCl7fWZ1bmN0aW9uIHEoeCxQKXt2YXIgVj14LmNoYXJDb2RlQXQoUCk7cmV0dXJuIFY+PTY1JiZWPD03MD9WLTU1OlY+PTk3JiZWPD0xMDI/Vi04NzpWLTQ4JjE1fWZ1bmN0aW9uIEooeCxQLFYpe3ZhciBU''@;'; + put 'put ''PXEoeCxWKTtyZXR1cm4gVi0xPj1QJiYoVHw9cSh4LFYtMSk8PDQpLFR9ZnVuY3Rpb24gc2UoeCxQLFYsVCl7Zm9yKHZhciBTPTAsRj1NYXRoLm1pbih4Lmxlbmd0aCxWKSx5ZT1QO3llPEY7eWUrKyl7dmFyIENlPXguY2hhckNvZGVBdCh5ZSktNDg7Uyo9VCxTKz1DZT49NDk/Q2UtNDkrMTA6''@;'; + put 'put ''Q2U+PTE3P0NlLTE3KzEwOkNlfXJldHVybiBTfU4uaXNCTj1mdW5jdGlvbih4KXtyZXR1cm4geCBpbnN0YW5jZW9mIE58fG51bGwhPT14JiYib2JqZWN0Ij09dHlwZW9mIHgmJnguY29uc3RydWN0b3Iud29yZFNpemU9PT1OLndvcmRTaXplJiZBcnJheS5pc0FycmF5KHgud29yZHMpfSxOLm1h''@;'; + put 'put ''eD1mdW5jdGlvbih4LFApe3JldHVybiB4LmNtcChQKT4wP3g6UH0sTi5taW49ZnVuY3Rpb24oeCxQKXtyZXR1cm4geC5jbXAoUCk8MD94OlB9LE4ucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHgsUCxWKXtpZigibnVtYmVyIj09dHlwZW9mIHgpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoeCxQ''@;'; + put 'put ''LFYpO2lmKCJvYmplY3QiPT10eXBlb2YgeClyZXR1cm4gdGhpcy5faW5pdEFycmF5KHgsUCxWKTsiaGV4Ij09PVAmJihQPTE2KSxZKFA9PT0oMHxQKSYmUD49MiYmUDw9MzYpO3ZhciBUPTA7Ii0iPT09KHg9eC50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJihUKyssdGhpcy5u''@;'; + put 'put ''ZWdhdGl2ZT0xKSxUPHgubGVuZ3RoJiYoMTY9PT1QP3RoaXMuX3BhcnNlSGV4KHgsVCxWKToodGhpcy5fcGFyc2VCYXNlKHgsUCxUKSwibGUiPT09ViYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLFAsVikpKX0sTi5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oeCxQLFYp''@;'; + put 'put ''e3g8MCYmKHRoaXMubmVnYXRpdmU9MSx4PS14KSx4PDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ4XSx0aGlzLmxlbmd0aD0xKTp4PDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJngseC82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KFkoeDw5''@;'; + put 'put ''MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZ4LHgvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PVYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxQLFYpfSxOLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKHgsUCxWKXtp''@;'; + put 'put ''ZihZKCJudW1iZXIiPT10eXBlb2YgeC5sZW5ndGgpLHgubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKHgubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFQ9MDtU''@;'; + put 'put ''PHRoaXMubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPTA7dmFyIFMsRix5ZT0wO2lmKCJiZSI9PT1WKWZvcihUPXgubGVuZ3RoLTEsUz0wO1Q+PTA7VC09Myl0aGlzLndvcmRzW1NdfD0oRj14W1RdfHhbVC0xXTw8OHx4W1QtMl08PDE2KTw8eWUmNjcxMDg4NjMsdGhpcy53b3Jkc1tTKzFdPUY+''@;'; + put 'put ''Pj4yNi15ZSY2NzEwODg2MywoeWUrPTI0KT49MjYmJih5ZS09MjYsUysrKTtlbHNlIGlmKCJsZSI9PT1WKWZvcihUPTAsUz0wO1Q8eC5sZW5ndGg7VCs9Myl0aGlzLndvcmRzW1NdfD0oRj14W1RdfHhbVCsxXTw8OHx4W1QrMl08PDE2KTw8eWUmNjcxMDg4NjMsdGhpcy53b3Jkc1tTKzFdPUY+''@;'; + put 'put ''Pj4yNi15ZSY2NzEwODg2MywoeWUrPTI0KT49MjYmJih5ZS09MjYsUysrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oeCxQLFYpe3RoaXMubGVuZ3RoPU1hdGguY2VpbCgoeC5sZW5ndGgtUCkvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhp''@;'; + put 'put ''cy5sZW5ndGgpO2Zvcih2YXIgVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09MDt2YXIgUyxGPTAseWU9MDtpZigiYmUiPT09Vilmb3IoVD14Lmxlbmd0aC0xO1Q+PVA7VC09MilTPUooeCxQLFQpPDxGLHRoaXMud29yZHNbeWVdfD02NzEwODg2MyZTLEY+PTE4PyhGLT0xOCx0''@;'; + put 'put ''aGlzLndvcmRzW3llKz0xXXw9Uz4+PjI2KTpGKz04O2Vsc2UgZm9yKFQ9KHgubGVuZ3RoLVApJTI9PTA/UCsxOlA7VDx4Lmxlbmd0aDtUKz0yKVM9Sih4LFAsVCk8PEYsdGhpcy53b3Jkc1t5ZV18PTY3MTA4ODYzJlMsRj49MTg/KEYtPTE4LHRoaXMud29yZHNbeWUrPTFdfD1TPj4+MjYpOkYr''@;'; + put 'put ''PTg7dGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKHgsUCxWKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgVD0wLFM9MTtTPD02NzEwODg2MztTKj1QKVQrKztULS0sUz1TL1B8MDtmb3IodmFyIEY9eC5sZW5ndGgtVix5ZT1GJVQsQ2U9''@;'; + put 'put ''TWF0aC5taW4oRixGLXllKStWLERlPTAsUGU9VjtQZTxDZTtQZSs9VClEZT1zZSh4LFBlLFBlK1QsUCksdGhpcy5pbXVsbihTKSx0aGlzLndvcmRzWzBdK0RlPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPURlOnRoaXMuX2lhZGRuKERlKTtpZigwIT09eWUpe3ZhciBRZT0xO2ZvcihEZT1zZSh4''@;'; + put 'put ''LFBlLHgubGVuZ3RoLFApLFBlPTA7UGU8eWU7UGUrKylRZSo9UDt0aGlzLmltdWxuKFFlKSx0aGlzLndvcmRzWzBdK0RlPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPURlOnRoaXMuX2lhZGRuKERlKX10aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oeCl7eC53b3Jkcz1u''@;'; + put 'put ''ZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXgud29yZHNbUF09dGhpcy53b3Jkc1tQXTt4Lmxlbmd0aD10aGlzLmxlbmd0aCx4Lm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUseC5yZWQ9dGhpcy5yZWR9LE4ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9u''@;'; + put 'put ''KCl7dmFyIHg9bmV3IE4obnVsbCk7cmV0dXJuIHRoaXMuY29weSh4KSx4fSxOLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKHgpe2Zvcig7dGhpcy5sZW5ndGg8eDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxOLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigp''@;'; + put 'put ''e2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LE4ucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBd''@;'; + put 'put ''JiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSxOLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBvZT1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIs''@;'; + put 'put ''IjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIs''@;'; + put 'put ''IjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw''@;'; + put 'put ''MCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxjZT1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxkZT1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2''@;'; + put 'put ''MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgx''@;'; + put 'put ''Mzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiB2ZSh4LFAsVil7Vi5uZWdhdGl2ZT1QLm5lZ2F0aXZlXngubmVnYXRpdmU7dmFyIFQ9eC5sZW5ndGgrUC5sZW5n''@;'; + put 'put ''dGh8MDtWLmxlbmd0aD1ULFQ9VC0xfDA7dmFyIFM9MHx4LndvcmRzWzBdLEY9MHxQLndvcmRzWzBdLHllPVMqRixEZT15ZS82NzEwODg2NHwwO1Yud29yZHNbMF09NjcxMDg4NjMmeWU7Zm9yKHZhciBQZT0xO1BlPFQ7UGUrKyl7Zm9yKHZhciBRZT1EZT4+PjI2LCRlPTY3MTA4ODYzJkRlLGd0''@;'; + put 'put ''PU1hdGgubWluKFBlLFAubGVuZ3RoLTEpLHd0PU1hdGgubWF4KDAsUGUteC5sZW5ndGgrMSk7d3Q8PWd0O3d0KyspUWUrPSh5ZT0oUz0wfHgud29yZHNbUGUtd3R8MF0pKihGPTB8UC53b3Jkc1t3dF0pKyRlKS82NzEwODg2NHwwLCRlPTY3MTA4ODYzJnllO1Yud29yZHNbUGVdPTB8JGUsRGU9''@;'; + put 'put ''MHxRZX1yZXR1cm4gMCE9PURlP1Yud29yZHNbUGVdPTB8RGU6Vi5sZW5ndGgtLSxWLnN0cmlwKCl9Ti5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oeCxQKXt2YXIgVjtpZihQPTB8UHx8MSwxNj09PSh4PXh8fDEwKXx8ImhleCI9PT14KXtWPSIiO2Zvcih2YXIgVD0wLFM9MCxGPTA7Rjx0''@;'; + put 'put ''aGlzLmxlbmd0aDtGKyspe3ZhciB5ZT10aGlzLndvcmRzW0ZdLENlPSgxNjc3NzIxNSYoeWU8PFR8UykpLnRvU3RyaW5nKDE2KTtWPTAhPShTPXllPj4+MjQtVCYxNjc3NzIxNSl8fEYhPT10aGlzLmxlbmd0aC0xP29lWzYtQ2UubGVuZ3RoXStDZStWOkNlK1YsKFQrPTIpPj0yNiYmKFQtPTI2''@;'; + put 'put ''LEYtLSl9Zm9yKDAhPT1TJiYoVj1TLnRvU3RyaW5nKDE2KStWKTtWLmxlbmd0aCVQIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9aWYoeD09PSgwfHgpJiZ4Pj0yJiZ4PD0zNil7dmFyIERlPWNlW3hdLFBlPWRlW3hdO1Y9IiI7dmFyIFFlPXRoaXMu''@;'; + put 'put ''Y2xvbmUoKTtmb3IoUWUubmVnYXRpdmU9MDshUWUuaXNaZXJvKCk7KXt2YXIgJGU9UWUubW9kbihQZSkudG9TdHJpbmcoeCk7Vj0oUWU9UWUuaWRpdm4oUGUpKS5pc1plcm8oKT8kZStWOm9lW0RlLSRlLmxlbmd0aF0rJGUrVn1mb3IodGhpcy5pc1plcm8oKSYmKFY9IjAiK1YpO1YubGVuZ3Ro''@;'; + put 'put ''JVAhPTA7KVY9IjAiK1Y7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoVj0iLSIrViksVn1ZKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LE4ucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIHg9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVu''@;'; + put 'put ''Z3RoP3grPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT94Kz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmWSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1''@;'; + put 'put ''MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LXg6eH0sTi5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxOLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbih4LFApe3JldHVybiBZKHZvaWQgMCE9PWVlKSx0aGlzLnRvQXJyYXlMaWtlKGVl''@;'; + put 'put ''LHgsUCl9LE4ucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSx4LFApfSxOLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbih4LFAsVil7dmFyIFQ9dGhpcy5ieXRlTGVuZ3RoKCksUz1WfHxNYXRoLm1heCgxLFQpO1koVDw9''@;'; + put 'put ''UywiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLFkoUz4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIEYseWUsQ2U9ImxlIj09PVAsRGU9bmV3IHgoUyksUGU9dGhpcy5jbG9uZSgpO2lmKENlKXtmb3IoeWU9MDshUGUuaXNa''@;'; + put 'put ''ZXJvKCk7eWUrKylGPVBlLmFuZGxuKDI1NSksUGUuaXVzaHJuKDgpLERlW3llXT1GO2Zvcig7eWU8Uzt5ZSsrKURlW3llXT0wfWVsc2V7Zm9yKHllPTA7eWU8Uy1UO3llKyspRGVbeWVdPTA7Zm9yKHllPTA7IVBlLmlzWmVybygpO3llKyspRj1QZS5hbmRsbigyNTUpLFBlLml1c2hybig4KSxE''@;'; + put 'put ''ZVtTLXllLTFdPUZ9cmV0dXJuIERlfSxOLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oeCl7cmV0dXJuIDMyLU1hdGguY2x6MzIoeCl9OmZ1bmN0aW9uKHgpe3ZhciBQPXgsVj0wO3JldHVybiBQPj00MDk2JiYoVis9MTMsUD4+Pj0xMyksUD49NjQmJihWKz03LFA+''@;'; + put 'put ''Pj49NyksUD49OCYmKFYrPTQsUD4+Pj00KSxQPj0yJiYoVis9MixQPj4+PTIpLFYrUH0sTi5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKHgpe2lmKDA9PT14KXJldHVybiAyNjt2YXIgUD14LFY9MDtyZXR1cm4gMD09KDgxOTEmUCkmJihWKz0xMyxQPj4+PTEzKSwwPT0oMTI3JlApJiYo''@;'; + put 'put ''Vis9NyxQPj4+PTcpLDA9PSgxNSZQKSYmKFYrPTQsUD4+Pj00KSwwPT0oMyZQKSYmKFYrPTIsUD4+Pj0yKSwwPT0oMSZQKSYmVisrLFZ9LE4ucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciBQPXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1''@;'; + put 'put ''cm4gMjYqKHRoaXMubGVuZ3RoLTEpK1B9LE4ucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIHg9MCxQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbUF0pO2lmKHgrPVYsMjYh''@;'; + put 'put ''PT1WKWJyZWFrfXJldHVybiB4fSxOLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxOLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oeCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4o''@;'; + put 'put ''eCkuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxOLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy50ZXN0bih4LTEpP3RoaXMubm90bih4KS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxOLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09''@;'; + put 'put ''dGhpcy5uZWdhdGl2ZX0sTi5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LE4ucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LE4ucHJvdG90eXBlLml1b3I9ZnVu''@;'; + put 'put ''Y3Rpb24oeCl7Zm9yKDt0aGlzLmxlbmd0aDx4Lmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgUD0wO1A8eC5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09dGhpcy53b3Jkc1tQXXx4LndvcmRzW1BdO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlv''@;'; + put 'put ''cj1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdW9yKHgpfSxOLnByb3RvdHlwZS5vcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcih4KTp4LmNsb25lKCkuaW9yKHRoaXMpfSxO''@;'; + put 'put ''LnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKHgpOnguY2xvbmUoKS5pdW9yKHRoaXMpfSxOLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbih4KXt2YXIgUDtQPXRoaXMubGVuZ3RoPngubGVuZ3RoP3g6dGhpcztm''@;'; + put 'put ''b3IodmFyIFY9MDtWPFAubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXRoaXMud29yZHNbVl0meC53b3Jkc1tWXTtyZXR1cm4gdGhpcy5sZW5ndGg9UC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgu''@;'; + put 'put ''bmVnYXRpdmUpKSx0aGlzLml1YW5kKHgpfSxOLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKHgpOnguY2xvbmUoKS5pYW5kKHRoaXMpfSxOLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlz''@;'; + put 'put ''Lmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoeCk6eC5jbG9uZSgpLml1YW5kKHRoaXMpfSxOLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbih4KXt2YXIgUCxWO3RoaXMubGVuZ3RoPngubGVuZ3RoPyhQPXRoaXMsVj14KTooUD14LFY9dGhpcyk7Zm9yKHZhciBUPTA7VDxWLmxl''@;'; + put 'put ''bmd0aDtUKyspdGhpcy53b3Jkc1tUXT1QLndvcmRzW1RdXlYud29yZHNbVF07aWYodGhpcyE9PVApZm9yKDtUPFAubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPVAud29yZHNbVF07cmV0dXJuIHRoaXMubGVuZ3RoPVAubGVuZ3RoLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaXhvcj1mdW5j''@;'; + put 'put ''dGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdXhvcih4KX0sTi5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcih4KTp4LmNsb25lKCkuaXhvcih0aGlzKX0sTi5w''@;'; + put 'put ''cm90b3R5cGUudXhvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKHgpOnguY2xvbmUoKS5pdXhvcih0aGlzKX0sTi5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBQPTB8''@;'; + put 'put ''TWF0aC5jZWlsKHgvMjYpLFY9eCUyNjt0aGlzLl9leHBhbmQoUCksVj4wJiZQLS07Zm9yKHZhciBUPTA7VDxQO1QrKyl0aGlzLndvcmRzW1RdPTY3MTA4ODYzJn50aGlzLndvcmRzW1RdO3JldHVybiBWPjAmJih0aGlzLndvcmRzW1RdPX50aGlzLndvcmRzW1RdJjY3MTA4ODYzPj4yNi1WKSx0''@;'; + put 'put ''aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bih4KX0sTi5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbih4LFApe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgVj14LzI2fDAsVD14JTI2O3JldHVybiB0aGlzLl9l''@;'; + put 'put ''eHBhbmQoVisxKSx0aGlzLndvcmRzW1ZdPVA/dGhpcy53b3Jkc1tWXXwxPDxUOnRoaXMud29yZHNbVl0mfigxPDxUKSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oeCl7dmFyIFAsVixUO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZSlyZXR1cm4g''@;'; + put 'put ''dGhpcy5uZWdhdGl2ZT0wLFA9dGhpcy5pc3ViKHgpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmUpcmV0dXJuIHgubmVnYXRpdmU9MCxQPXRoaXMuaXN1Yih4KSx4Lm5lZ2F0aXZlPTEsUC5fbm9ybVNpZ24oKTt0''@;'; + put 'put ''aGlzLmxlbmd0aD54Lmxlbmd0aD8oVj10aGlzLFQ9eCk6KFY9eCxUPXRoaXMpO2Zvcih2YXIgUz0wLEY9MDtGPFQubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJihQPSgwfFYud29yZHNbRl0pKygwfFQud29yZHNbRl0pK1MpLFM9UD4+PjI2O2Zvcig7MCE9PVMmJkY8Vi5sZW5n''@;'; + put 'put ''dGg7RisrKXRoaXMud29yZHNbRl09NjcxMDg4NjMmKFA9KDB8Vi53b3Jkc1tGXSkrUyksUz1QPj4+MjY7aWYodGhpcy5sZW5ndGg9Vi5sZW5ndGgsMCE9PVMpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09Uyx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoViE9PXRoaXMpZm9yKDtGPFYubGVuZ3RoO0Yr''@;'; + put 'put ''Kyl0aGlzLndvcmRzW0ZdPVYud29yZHNbRl07cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLmFkZD1mdW5jdGlvbih4KXt2YXIgUDtyZXR1cm4gMCE9PXgubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyh4Lm5lZ2F0aXZlPTAsUD10aGlzLnN1Yih4KSx4Lm5lZ2F0aXZlXj0xLFApOjA9PT14''@;'; + put 'put ''Lm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLFA9eC5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLFApOnRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKHgpOnguY2xvbmUoKS5pYWRkKHRoaXMpfSxOLnByb3RvdHlwZS5pc3ViPWZ1bmN0''@;'; + put 'put ''aW9uKHgpe2lmKDAhPT14Lm5lZ2F0aXZlKXt4Lm5lZ2F0aXZlPTA7dmFyIFA9dGhpcy5pYWRkKHgpO3JldHVybiB4Lm5lZ2F0aXZlPTEsUC5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZCh4KSx0aGlzLm5lZ2F0aXZlPTEs''@;'; + put 'put ''dGhpcy5fbm9ybVNpZ24oKTt2YXIgVixULFM9dGhpcy5jbXAoeCk7aWYoMD09PVMpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO1M+MD8oVj10aGlzLFQ9eCk6KFY9eCxUPXRoaXMpO2Zvcih2YXIgRj0wLHllPTA7eWU8VC5sZW5ndGg7''@;'; + put 'put ''eWUrKylGPShQPSgwfFYud29yZHNbeWVdKS0oMHxULndvcmRzW3llXSkrRik+PjI2LHRoaXMud29yZHNbeWVdPTY3MTA4ODYzJlA7Zm9yKDswIT09RiYmeWU8Vi5sZW5ndGg7eWUrKylGPShQPSgwfFYud29yZHNbeWVdKStGKT4+MjYsdGhpcy53b3Jkc1t5ZV09NjcxMDg4NjMmUDtpZigwPT09''@;'; + put 'put ''RiYmeWU8Vi5sZW5ndGgmJlYhPT10aGlzKWZvcig7eWU8Vi5sZW5ndGg7eWUrKyl0aGlzLndvcmRzW3llXT1WLndvcmRzW3llXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgseWUpLFYhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLnN0cmlwKCl9LE4ucHJv''@;'; + put 'put ''dG90eXBlLnN1Yj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoeCl9O3ZhciBBZT1mdW5jdGlvbih4LFAsVil7dmFyIFQsUyxGLHllPXgud29yZHMsQ2U9UC53b3JkcyxEZT1WLndvcmRzLFBlPTAsUWU9MHx5ZVswXSwkZT04MTkxJlFlLGd0PVFlPj4+MTMsd3Q9MHx5ZVsx''@;'; + put 'put ''XSx2dD04MTkxJnd0LEF0PXd0Pj4+MTMsbXQ9MHx5ZVsyXSxodD04MTkxJm10LEJ0PW10Pj4+MTMsb249MHx5ZVszXSxfdD04MTkxJm9uLHR0PW9uPj4+MTMsZXQ9MHx5ZVs0XSxhdD04MTkxJmV0LEx0PWV0Pj4+MTMsQ3Q9MHx5ZVs1XSxmdD04MTkxJkN0LEh0PUN0Pj4+MTMsR2U9MHx5ZVs2''@;'; + put 'put ''XSxVZT04MTkxJkdlLHl0PUdlPj4+MTMsanQ9MHx5ZVs3XSxRdD04MTkxJmp0LGduPWp0Pj4+MTMsZG49MHx5ZVs4XSx5bj04MTkxJmRuLGxuPWRuPj4+MTMsTm49MHx5ZVs5XSxibj04MTkxJk5uLGVyPU5uPj4+MTMsc3I9MHxDZVswXSxYbj04MTkxJnNyLEZyPXNyPj4+MTMseHI9MHxDZVsx''@;'; + put 'put ''XSxxdD04MTkxJnhyLHByPXhyPj4+MTMsbnI9MHxDZVsyXSxBbj04MTkxJm5yLHFuPW5yPj4+MTMsV3Q9MHxDZVszXSxwbj04MTkxJld0LEtuPVd0Pj4+MTMsTnQ9MHxDZVs0XSxzbj04MTkxJk50LFVuPU50Pj4+MTMsd249MHxDZVs1XSx0bj04MTkxJnduLHpuPXduPj4+MTMsVHI9MHxDZVs2''@;'; + put 'put ''XSxCbj04MTkxJlRyLGtyPVRyPj4+MTMsbW49MHxDZVs3XSx1bj04MTkxJm1uLGNuPW1uPj4+MTMsX249MHxDZVs4XSxHdD04MTkxJl9uLGtuPV9uPj4+MTMsVm49MHxDZVs5XSxlbj04MTkxJlZuLEluPVZuPj4+MTM7Vi5uZWdhdGl2ZT14Lm5lZ2F0aXZlXlAubmVnYXRpdmUsVi5sZW5ndGg9''@;'; + put 'put ''MTk7dmFyIEpuPShQZSsoVD1NYXRoLmltdWwoJGUsWG4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKCRlLEZyKSkrTWF0aC5pbXVsKGd0LFhuKXwwKSk8PDEzKXwwO1BlPSgoRj1NYXRoLmltdWwoZ3QsRnIpKSsoUz4+PjEzKXwwKSsoSm4+Pj4yNil8MCxKbiY9NjcxMDg4NjMsVD1NYXRo''@;'; + put 'put ''LmltdWwodnQsWG4pLFM9KFM9TWF0aC5pbXVsKHZ0LEZyKSkrTWF0aC5pbXVsKEF0LFhuKXwwLEY9TWF0aC5pbXVsKEF0LEZyKTt2YXIgb3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHF0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUscHIpfDApK01hdGguaW11bChndCxxdCl8''@;'; + put 'put ''MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QscHIpfDApKyhTPj4+MTMpfDApKyhvcj4+PjI2KXwwLG9yJj02NzEwODg2MyxUPU1hdGguaW11bChodCxYbiksUz0oUz1NYXRoLmltdWwoaHQsRnIpKStNYXRoLmltdWwoQnQsWG4pfDAsRj1NYXRoLmltdWwoQnQsRnIpLFQ9VCtNYXRo''@;'; + put 'put ''LmltdWwodnQscXQpfDAsUz0oUz1TK01hdGguaW11bCh2dCxwcil8MCkrTWF0aC5pbXVsKEF0LHF0KXwwLEY9RitNYXRoLmltdWwoQXQscHIpfDA7dmFyIGdyPShQZSsoVD1UK01hdGguaW11bCgkZSxBbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLHFuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoZ3QsQW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHFuKXwwKSsoUz4+PjEzKXwwKSsoZ3I+Pj4yNil8MCxnciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoX3QsWG4pLFM9KFM9TWF0aC5pbXVsKF90LEZyKSkrTWF0aC5pbXVsKHR0LFhuKXwwLEY9TWF0aC5pbXVsKHR0LEZy''@;'; + put 'put ''KSxUPVQrTWF0aC5pbXVsKGh0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoaHQscHIpfDApK01hdGguaW11bChCdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEJ0LHByKXwwLFQ9VCtNYXRoLmltdWwodnQsQW4pfDAsUz0oUz1TK01hdGguaW11bCh2dCxxbil8MCkrTWF0aC5pbXVsKEF0LEFuKXwwLEY9''@;'; + put 'put ''RitNYXRoLmltdWwoQXQscW4pfDA7dmFyIEtyPShQZSsoVD1UK01hdGguaW11bCgkZSxwbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLEtuKXwwKStNYXRoLmltdWwoZ3QscG4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LEtuKXwwKSsoUz4+PjEzKXwwKSso''@;'; + put 'put ''S3I+Pj4yNil8MCxLciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYXQsWG4pLFM9KFM9TWF0aC5pbXVsKGF0LEZyKSkrTWF0aC5pbXVsKEx0LFhuKXwwLEY9TWF0aC5pbXVsKEx0LEZyKSxUPVQrTWF0aC5pbXVsKF90LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoX3QscHIpfDApK01hdGguaW11bCh0''@;'; + put 'put ''dCxxdCl8MCxGPUYrTWF0aC5pbXVsKHR0LHByKXwwLFQ9VCtNYXRoLmltdWwoaHQsQW4pfDAsUz0oUz1TK01hdGguaW11bChodCxxbil8MCkrTWF0aC5pbXVsKEJ0LEFuKXwwLEY9RitNYXRoLmltdWwoQnQscW4pfDAsVD1UK01hdGguaW11bCh2dCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKHZ0''@;'; + put 'put ''LEtuKXwwKStNYXRoLmltdWwoQXQscG4pfDAsRj1GK01hdGguaW11bChBdCxLbil8MDt2YXIgVnI9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHNuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsVW4pfDApK01hdGguaW11bChndCxzbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRo''@;'; + put 'put ''LmltdWwoZ3QsVW4pfDApKyhTPj4+MTMpfDApKyhWcj4+PjI2KXwwLFZyJj02NzEwODg2MyxUPU1hdGguaW11bChmdCxYbiksUz0oUz1NYXRoLmltdWwoZnQsRnIpKStNYXRoLmltdWwoSHQsWG4pfDAsRj1NYXRoLmltdWwoSHQsRnIpLFQ9VCtNYXRoLmltdWwoYXQscXQpfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bChhdCxwcil8MCkrTWF0aC5pbXVsKEx0LHF0KXwwLEY9RitNYXRoLmltdWwoTHQscHIpfDAsVD1UK01hdGguaW11bChfdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LHFuKXwwKStNYXRoLmltdWwodHQsQW4pfDAsRj1GK01hdGguaW11bCh0dCxxbil8MCxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KGh0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsS24pfDApK01hdGguaW11bChCdCxwbil8MCxGPUYrTWF0aC5pbXVsKEJ0LEtuKXwwLFQ9VCtNYXRoLmltdWwodnQsc24pfDAsUz0oUz1TK01hdGguaW11bCh2dCxVbil8MCkrTWF0aC5pbXVsKEF0LHNuKXwwLEY9RitNYXRoLmltdWwoQXQs''@;'; + put 'put ''VW4pfDA7dmFyIGlpPShQZSsoVD1UK01hdGguaW11bCgkZSx0bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLHpuKXwwKStNYXRoLmltdWwoZ3QsdG4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHpuKXwwKSsoUz4+PjEzKXwwKSsoaWk+Pj4yNil8MCxpaSY9''@;'; + put 'put ''NjcxMDg4NjMsVD1NYXRoLmltdWwoVWUsWG4pLFM9KFM9TWF0aC5pbXVsKFVlLEZyKSkrTWF0aC5pbXVsKHl0LFhuKXwwLEY9TWF0aC5pbXVsKHl0LEZyKSxUPVQrTWF0aC5pbXVsKGZ0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoZnQscHIpfDApK01hdGguaW11bChIdCxxdCl8MCxGPUYrTWF0''@;'; + put 'put ''aC5pbXVsKEh0LHByKXwwLFQ9VCtNYXRoLmltdWwoYXQsQW4pfDAsUz0oUz1TK01hdGguaW11bChhdCxxbil8MCkrTWF0aC5pbXVsKEx0LEFuKXwwLEY9RitNYXRoLmltdWwoTHQscW4pfDAsVD1UK01hdGguaW11bChfdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LEtuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwodHQscG4pfDAsRj1GK01hdGguaW11bCh0dCxLbil8MCxUPVQrTWF0aC5pbXVsKGh0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsVW4pfDApK01hdGguaW11bChCdCxzbil8MCxGPUYrTWF0aC5pbXVsKEJ0LFVuKXwwLFQ9VCtNYXRoLmltdWwodnQsdG4pfDAsUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bCh2dCx6bil8MCkrTWF0aC5pbXVsKEF0LHRuKXwwLEY9RitNYXRoLmltdWwoQXQsem4pfDA7dmFyIFJyPShQZSsoVD1UK01hdGguaW11bCgkZSxCbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGtyKXwwKStNYXRoLmltdWwoZ3QsQm4pfDApKTw8MTMpfDA7UGU9KChGPUYr''@;'; + put 'put ''TWF0aC5pbXVsKGd0LGtyKXwwKSsoUz4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoUXQsWG4pLFM9KFM9TWF0aC5pbXVsKFF0LEZyKSkrTWF0aC5pbXVsKGduLFhuKXwwLEY9TWF0aC5pbXVsKGduLEZyKSxUPVQrTWF0aC5pbXVsKFVlLHF0KXwwLFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwoVWUscHIpfDApK01hdGguaW11bCh5dCxxdCl8MCxGPUYrTWF0aC5pbXVsKHl0LHByKXwwLFQ9VCtNYXRoLmltdWwoZnQsQW4pfDAsUz0oUz1TK01hdGguaW11bChmdCxxbil8MCkrTWF0aC5pbXVsKEh0LEFuKXwwLEY9RitNYXRoLmltdWwoSHQscW4pfDAsVD1UK01hdGgu''@;'; + put 'put ''aW11bChhdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LEtuKXwwKStNYXRoLmltdWwoTHQscG4pfDAsRj1GK01hdGguaW11bChMdCxLbil8MCxUPVQrTWF0aC5pbXVsKF90LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsVW4pfDApK01hdGguaW11bCh0dCxzbil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KHR0LFVuKXwwLFQ9VCtNYXRoLmltdWwoaHQsdG4pfDAsUz0oUz1TK01hdGguaW11bChodCx6bil8MCkrTWF0aC5pbXVsKEJ0LHRuKXwwLEY9RitNYXRoLmltdWwoQnQsem4pfDAsVD1UK01hdGguaW11bCh2dCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKHZ0LGtyKXwwKStNYXRoLmltdWwoQXQs''@;'; + put 'put ''Qm4pfDAsRj1GK01hdGguaW11bChBdCxrcil8MDt2YXIgbGk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsY24pfDApK01hdGguaW11bChndCx1bil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsY24pfDApKyhTPj4+''@;'; + put 'put ''MTMpfDApKyhsaT4+PjI2KXwwLGxpJj02NzEwODg2MyxUPU1hdGguaW11bCh5bixYbiksUz0oUz1NYXRoLmltdWwoeW4sRnIpKStNYXRoLmltdWwobG4sWG4pfDAsRj1NYXRoLmltdWwobG4sRnIpLFQ9VCtNYXRoLmltdWwoUXQscXQpfDAsUz0oUz1TK01hdGguaW11bChRdCxwcil8MCkrTWF0''@;'; + put 'put ''aC5pbXVsKGduLHF0KXwwLEY9RitNYXRoLmltdWwoZ24scHIpfDAsVD1UK01hdGguaW11bChVZSxBbil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHFuKXwwKStNYXRoLmltdWwoeXQsQW4pfDAsRj1GK01hdGguaW11bCh5dCxxbil8MCxUPVQrTWF0aC5pbXVsKGZ0LHBuKXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoZnQsS24pfDApK01hdGguaW11bChIdCxwbil8MCxGPUYrTWF0aC5pbXVsKEh0LEtuKXwwLFQ9VCtNYXRoLmltdWwoYXQsc24pfDAsUz0oUz1TK01hdGguaW11bChhdCxVbil8MCkrTWF0aC5pbXVsKEx0LHNuKXwwLEY9RitNYXRoLmltdWwoTHQsVW4pfDAsVD1UK01hdGguaW11bChf''@;'; + put 'put ''dCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKF90LHpuKXwwKStNYXRoLmltdWwodHQsdG4pfDAsRj1GK01hdGguaW11bCh0dCx6bil8MCxUPVQrTWF0aC5pbXVsKGh0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsa3IpfDApK01hdGguaW11bChCdCxCbil8MCxGPUYrTWF0aC5pbXVsKEJ0LGty''@;'; + put 'put ''KXwwLFQ9VCtNYXRoLmltdWwodnQsdW4pfDAsUz0oUz1TK01hdGguaW11bCh2dCxjbil8MCkrTWF0aC5pbXVsKEF0LHVuKXwwLEY9RitNYXRoLmltdWwoQXQsY24pfDA7dmFyIE1pPShQZSsoVD1UK01hdGguaW11bCgkZSxHdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGtu''@;'; + put 'put ''KXwwKStNYXRoLmltdWwoZ3QsR3QpfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LGtuKXwwKSsoUz4+PjEzKXwwKSsoTWk+Pj4yNil8MCxNaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sWG4pLFM9KFM9TWF0aC5pbXVsKGJuLEZyKSkrTWF0aC5pbXVsKGVyLFhuKXwwLEY9TWF0''@;'; + put 'put ''aC5pbXVsKGVyLEZyKSxUPVQrTWF0aC5pbXVsKHluLHF0KXwwLFM9KFM9UytNYXRoLmltdWwoeW4scHIpfDApK01hdGguaW11bChsbixxdCl8MCxGPUYrTWF0aC5pbXVsKGxuLHByKXwwLFQ9VCtNYXRoLmltdWwoUXQsQW4pfDAsUz0oUz1TK01hdGguaW11bChRdCxxbil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KGduLEFuKXwwLEY9RitNYXRoLmltdWwoZ24scW4pfDAsVD1UK01hdGguaW11bChVZSxwbil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLEtuKXwwKStNYXRoLmltdWwoeXQscG4pfDAsRj1GK01hdGguaW11bCh5dCxLbil8MCxUPVQrTWF0aC5pbXVsKGZ0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''ZnQsVW4pfDApK01hdGguaW11bChIdCxzbil8MCxGPUYrTWF0aC5pbXVsKEh0LFVuKXwwLFQ9VCtNYXRoLmltdWwoYXQsdG4pfDAsUz0oUz1TK01hdGguaW11bChhdCx6bil8MCkrTWF0aC5pbXVsKEx0LHRuKXwwLEY9RitNYXRoLmltdWwoTHQsem4pfDAsVD1UK01hdGguaW11bChfdCxCbil8''@;'; + put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKF90LGtyKXwwKStNYXRoLmltdWwodHQsQm4pfDAsRj1GK01hdGguaW11bCh0dCxrcil8MCxUPVQrTWF0aC5pbXVsKGh0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsY24pfDApK01hdGguaW11bChCdCx1bil8MCxGPUYrTWF0aC5pbXVsKEJ0LGNuKXwwLFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwodnQsR3QpfDAsUz0oUz1TK01hdGguaW11bCh2dCxrbil8MCkrTWF0aC5pbXVsKEF0LEd0KXwwLEY9RitNYXRoLmltdWwoQXQsa24pfDA7dmFyIG8wPShQZSsoVD1UK01hdGguaW11bCgkZSxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLEluKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoZ3QsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LEluKXwwKSsoUz4+PjEzKXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4scXQpLFM9KFM9TWF0aC5pbXVsKGJuLHByKSkrTWF0aC5pbXVsKGVyLHF0KXwwLEY9TWF0aC5pbXVs''@;'; + put 'put ''KGVyLHByKSxUPVQrTWF0aC5pbXVsKHluLEFuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4scW4pfDApK01hdGguaW11bChsbixBbil8MCxGPUYrTWF0aC5pbXVsKGxuLHFuKXwwLFQ9VCtNYXRoLmltdWwoUXQscG4pfDAsUz0oUz1TK01hdGguaW11bChRdCxLbil8MCkrTWF0aC5pbXVsKGduLHBu''@;'; + put 'put ''KXwwLEY9RitNYXRoLmltdWwoZ24sS24pfDAsVD1UK01hdGguaW11bChVZSxzbil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLFVuKXwwKStNYXRoLmltdWwoeXQsc24pfDAsRj1GK01hdGguaW11bCh5dCxVbil8MCxUPVQrTWF0aC5pbXVsKGZ0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQsem4p''@;'; + put 'put ''fDApK01hdGguaW11bChIdCx0bil8MCxGPUYrTWF0aC5pbXVsKEh0LHpuKXwwLFQ9VCtNYXRoLmltdWwoYXQsQm4pfDAsUz0oUz1TK01hdGguaW11bChhdCxrcil8MCkrTWF0aC5pbXVsKEx0LEJuKXwwLEY9RitNYXRoLmltdWwoTHQsa3IpfDAsVD1UK01hdGguaW11bChfdCx1bil8MCxTPShT''@;'; + put 'put ''PVMrTWF0aC5pbXVsKF90LGNuKXwwKStNYXRoLmltdWwodHQsdW4pfDAsRj1GK01hdGguaW11bCh0dCxjbil8MCxUPVQrTWF0aC5pbXVsKGh0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoaHQsa24pfDApK01hdGguaW11bChCdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEJ0LGtuKXwwO3ZhciBuMD0o''@;'; + put 'put ''UGUrKFQ9VCtNYXRoLmltdWwodnQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh2dCxJbil8MCkrTWF0aC5pbXVsKEF0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChBdCxJbil8MCkrKFM+Pj4xMyl8MCkrKG4wPj4+MjYpfDAsbjAmPTY3MTA4ODYzLFQ9TWF0''@;'; + put 'put ''aC5pbXVsKGJuLEFuKSxTPShTPU1hdGguaW11bChibixxbikpK01hdGguaW11bChlcixBbil8MCxGPU1hdGguaW11bChlcixxbiksVD1UK01hdGguaW11bCh5bixwbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLEtuKXwwKStNYXRoLmltdWwobG4scG4pfDAsRj1GK01hdGguaW11bChsbixLbil8''@;'; + put 'put ''MCxUPVQrTWF0aC5pbXVsKFF0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsVW4pfDApK01hdGguaW11bChnbixzbil8MCxGPUYrTWF0aC5pbXVsKGduLFVuKXwwLFQ9VCtNYXRoLmltdWwoVWUsdG4pfDAsUz0oUz1TK01hdGguaW11bChVZSx6bil8MCkrTWF0aC5pbXVsKHl0LHRuKXwwLEY9''@;'; + put 'put ''RitNYXRoLmltdWwoeXQsem4pfDAsVD1UK01hdGguaW11bChmdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGtyKXwwKStNYXRoLmltdWwoSHQsQm4pfDAsRj1GK01hdGguaW11bChIdCxrcil8MCxUPVQrTWF0aC5pbXVsKGF0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsY24pfDApK01h''@;'; + put 'put ''dGguaW11bChMdCx1bil8MCxGPUYrTWF0aC5pbXVsKEx0LGNuKXwwLFQ9VCtNYXRoLmltdWwoX3QsR3QpfDAsUz0oUz1TK01hdGguaW11bChfdCxrbil8MCkrTWF0aC5pbXVsKHR0LEd0KXwwLEY9RitNYXRoLmltdWwodHQsa24pfDA7dmFyIGQwPShQZSsoVD1UK01hdGguaW11bChodCxlbil8''@;'; + put 'put ''MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGh0LEluKXwwKStNYXRoLmltdWwoQnQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKEJ0LEluKXwwKSsoUz4+PjEzKXwwKSsoZDA+Pj4yNil8MCxkMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4scG4pLFM9KFM9TWF0aC5p''@;'; + put 'put ''bXVsKGJuLEtuKSkrTWF0aC5pbXVsKGVyLHBuKXwwLEY9TWF0aC5pbXVsKGVyLEtuKSxUPVQrTWF0aC5pbXVsKHluLHNuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sVW4pfDApK01hdGguaW11bChsbixzbil8MCxGPUYrTWF0aC5pbXVsKGxuLFVuKXwwLFQ9VCtNYXRoLmltdWwoUXQsdG4pfDAs''@;'; + put 'put ''Uz0oUz1TK01hdGguaW11bChRdCx6bil8MCkrTWF0aC5pbXVsKGduLHRuKXwwLEY9RitNYXRoLmltdWwoZ24sem4pfDAsVD1UK01hdGguaW11bChVZSxCbil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLGtyKXwwKStNYXRoLmltdWwoeXQsQm4pfDAsRj1GK01hdGguaW11bCh5dCxrcil8MCxUPVQr''@;'; + put 'put ''TWF0aC5pbXVsKGZ0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQsY24pfDApK01hdGguaW11bChIdCx1bil8MCxGPUYrTWF0aC5pbXVsKEh0LGNuKXwwLFQ9VCtNYXRoLmltdWwoYXQsR3QpfDAsUz0oUz1TK01hdGguaW11bChhdCxrbil8MCkrTWF0aC5pbXVsKEx0LEd0KXwwLEY9RitNYXRo''@;'; + put 'put ''LmltdWwoTHQsa24pfDA7dmFyIG0wPShQZSsoVD1UK01hdGguaW11bChfdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKF90LEluKXwwKStNYXRoLmltdWwodHQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKHR0LEluKXwwKSsoUz4+PjEzKXwwKSsobTA+Pj4y''@;'; + put 'put ''Nil8MCxtMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sc24pLFM9KFM9TWF0aC5pbXVsKGJuLFVuKSkrTWF0aC5pbXVsKGVyLHNuKXwwLEY9TWF0aC5pbXVsKGVyLFVuKSxUPVQrTWF0aC5pbXVsKHluLHRuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sem4pfDApK01hdGguaW11bChsbix0bil8''@;'; + put 'put ''MCxGPUYrTWF0aC5pbXVsKGxuLHpuKXwwLFQ9VCtNYXRoLmltdWwoUXQsQm4pfDAsUz0oUz1TK01hdGguaW11bChRdCxrcil8MCkrTWF0aC5pbXVsKGduLEJuKXwwLEY9RitNYXRoLmltdWwoZ24sa3IpfDAsVD1UK01hdGguaW11bChVZSx1bil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLGNuKXww''@;'; + put 'put ''KStNYXRoLmltdWwoeXQsdW4pfDAsRj1GK01hdGguaW11bCh5dCxjbil8MCxUPVQrTWF0aC5pbXVsKGZ0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoZnQsa24pfDApK01hdGguaW11bChIdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEh0LGtuKXwwO3ZhciBHMD0oUGUrKFQ9VCtNYXRoLmltdWwoYXQs''@;'; + put 'put ''ZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChhdCxJbil8MCkrTWF0aC5pbXVsKEx0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChMdCxJbil8MCkrKFM+Pj4xMyl8MCkrKEcwPj4+MjYpfDAsRzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHRuKSxTPShTPU1h''@;'; + put 'put ''dGguaW11bChibix6bikpK01hdGguaW11bChlcix0bil8MCxGPU1hdGguaW11bChlcix6biksVD1UK01hdGguaW11bCh5bixCbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLGtyKXwwKStNYXRoLmltdWwobG4sQm4pfDAsRj1GK01hdGguaW11bChsbixrcil8MCxUPVQrTWF0aC5pbXVsKFF0LHVu''@;'; + put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwoUXQsY24pfDApK01hdGguaW11bChnbix1bil8MCxGPUYrTWF0aC5pbXVsKGduLGNuKXwwLFQ9VCtNYXRoLmltdWwoVWUsR3QpfDAsUz0oUz1TK01hdGguaW11bChVZSxrbil8MCkrTWF0aC5pbXVsKHl0LEd0KXwwLEY9RitNYXRoLmltdWwoeXQsa24pfDA7''@;'; + put 'put ''dmFyIERpPShQZSsoVD1UK01hdGguaW11bChmdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGZ0LEluKXwwKStNYXRoLmltdWwoSHQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKEh0LEluKXwwKSsoUz4+PjEzKXwwKSsoRGk+Pj4yNil8MCxEaSY9NjcxMDg4''@;'; + put 'put ''NjMsVD1NYXRoLmltdWwoYm4sQm4pLFM9KFM9TWF0aC5pbXVsKGJuLGtyKSkrTWF0aC5pbXVsKGVyLEJuKXwwLEY9TWF0aC5pbXVsKGVyLGtyKSxUPVQrTWF0aC5pbXVsKHluLHVuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sY24pfDApK01hdGguaW11bChsbix1bil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KGxuLGNuKXwwLFQ9VCtNYXRoLmltdWwoUXQsR3QpfDAsUz0oUz1TK01hdGguaW11bChRdCxrbil8MCkrTWF0aC5pbXVsKGduLEd0KXwwLEY9RitNYXRoLmltdWwoZ24sa24pfDA7dmFyIFcwPShQZSsoVD1UK01hdGguaW11bChVZSxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVs''@;'; + put 'put ''KFVlLEluKXwwKStNYXRoLmltdWwoeXQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKHl0LEluKXwwKSsoUz4+PjEzKXwwKSsoVzA+Pj4yNil8MCxXMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sdW4pLFM9KFM9TWF0aC5pbXVsKGJuLGNuKSkrTWF0aC5pbXVsKGVyLHVuKXww''@;'; + put 'put ''LEY9TWF0aC5pbXVsKGVyLGNuKSxUPVQrTWF0aC5pbXVsKHluLEd0KXwwLFM9KFM9UytNYXRoLmltdWwoeW4sa24pfDApK01hdGguaW11bChsbixHdCl8MCxGPUYrTWF0aC5pbXVsKGxuLGtuKXwwO3ZhciBFbz0oUGUrKFQ9VCtNYXRoLmltdWwoUXQsZW4pfDApfDApKygoODE5MSYoUz0oUz1T''@;'; + put 'put ''K01hdGguaW11bChRdCxJbil8MCkrTWF0aC5pbXVsKGduLGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChnbixJbil8MCkrKFM+Pj4xMyl8MCkrKEVvPj4+MjYpfDAsRW8mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEd0KSxTPShTPU1hdGguaW11bChibixrbikpK01hdGguaW11''@;'; + put 'put ''bChlcixHdCl8MCxGPU1hdGguaW11bChlcixrbik7dmFyIHFvPShQZSsoVD1UK01hdGguaW11bCh5bixlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKHluLEluKXwwKStNYXRoLmltdWwobG4sZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGxuLEluKXwwKSsoUz4+''@;'; + put 'put ''PjEzKXwwKSsocW8+Pj4yNil8MCxxbyY9NjcxMDg4NjM7dmFyIGNhPShQZSsoVD1NYXRoLmltdWwoYm4sZW4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKGJuLEluKSkrTWF0aC5pbXVsKGVyLGVuKXwwKSk8PDEzKXwwO3JldHVybiBQZT0oKEY9TWF0aC5pbXVsKGVyLEluKSkrKFM+Pj4x''@;'; + put 'put ''Myl8MCkrKGNhPj4+MjYpfDAsY2EmPTY3MTA4ODYzLERlWzBdPUpuLERlWzFdPW9yLERlWzJdPWdyLERlWzNdPUtyLERlWzRdPVZyLERlWzVdPWlpLERlWzZdPVJyLERlWzddPWxpLERlWzhdPU1pLERlWzldPW8wLERlWzEwXT1uMCxEZVsxMV09ZDAsRGVbMTJdPW0wLERlWzEzXT1HMCxEZVsx''@;'; + put 'put ''NF09RGksRGVbMTVdPVcwLERlWzE2XT1FbyxEZVsxN109cW8sRGVbMThdPWNhLDAhPT1QZSYmKERlWzE5XT1QZSxWLmxlbmd0aCsrKSxWfTtmdW5jdGlvbiBrZSh4LFAsVil7cmV0dXJuKG5ldyBTZSkubXVscCh4LFAsVil9ZnVuY3Rpb24gU2UoeCxQKXt0aGlzLng9eCx0aGlzLnk9UH1NYXRo''@;'; + put 'put ''LmltdWx8fChBZT12ZSksTi5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oeCxQKXt2YXIgVD10aGlzLmxlbmd0aCt4Lmxlbmd0aDtyZXR1cm4gMTA9PT10aGlzLmxlbmd0aCYmMTA9PT14Lmxlbmd0aD9BZSh0aGlzLHgsUCk6VDw2Mz92ZSh0aGlzLHgsUCk6VDwxMDI0P2Z1bmN0aW9uKFMsRix5''@;'; + put 'put ''ZSl7eWUubmVnYXRpdmU9Ri5uZWdhdGl2ZV5TLm5lZ2F0aXZlLHllLmxlbmd0aD1TLmxlbmd0aCtGLmxlbmd0aDtmb3IodmFyIENlPTAsRGU9MCxQZT0wO1BlPHllLmxlbmd0aC0xO1BlKyspe3ZhciBRZT1EZTtEZT0wO2Zvcih2YXIgJGU9NjcxMDg4NjMmQ2UsZ3Q9TWF0aC5taW4oUGUsRi5s''@;'; + put 'put ''ZW5ndGgtMSksd3Q9TWF0aC5tYXgoMCxQZS1TLmxlbmd0aCsxKTt3dDw9Z3Q7d3QrKyl7dmFyIEF0PSgwfFMud29yZHNbUGUtd3RdKSooMHxGLndvcmRzW3d0XSksbXQ9NjcxMDg4NjMmQXQ7JGU9NjcxMDg4NjMmKG10PW10KyRlfDApLERlKz0oUWU9KFFlPVFlKyhBdC82NzEwODg2NHwwKXww''@;'; + put 'put ''KSsobXQ+Pj4yNil8MCk+Pj4yNixRZSY9NjcxMDg4NjN9eWUud29yZHNbUGVdPSRlLENlPVFlLFFlPURlfXJldHVybiAwIT09Q2U/eWUud29yZHNbUGVdPUNlOnllLmxlbmd0aC0tLHllLnN0cmlwKCl9KHRoaXMseCxQKTprZSh0aGlzLHgsUCl9LFNlLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0''@;'; + put 'put ''aW9uKHgpe2Zvcih2YXIgUD1uZXcgQXJyYXkoeCksVj1OLnByb3RvdHlwZS5fY291bnRCaXRzKHgpLTEsVD0wO1Q8eDtUKyspUFtUXT10aGlzLnJldkJpbihULFYseCk7cmV0dXJuIFB9LFNlLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24oeCxQLFYpe2lmKDA9PT14fHx4PT09Vi0xKXJldHVy''@;'; + put 'put ''biB4O2Zvcih2YXIgVD0wLFM9MDtTPFA7UysrKVR8PSgxJngpPDxQLVMtMSx4Pj49MTtyZXR1cm4gVH0sU2UucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oeCxQLFYsVCxTLEYpe2Zvcih2YXIgeWU9MDt5ZTxGO3llKyspVFt5ZV09UFt4W3llXV0sU1t5ZV09Vlt4W3llXV19LFNlLnByb3Rv''@;'; + put 'put ''dHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oeCxQLFYsVCxTLEYpe3RoaXMucGVybXV0ZShGLHgsUCxWLFQsUyk7Zm9yKHZhciB5ZT0xO3llPFM7eWU8PD0xKWZvcih2YXIgQ2U9eWU8PDEsRGU9TWF0aC5jb3MoMipNYXRoLlBJL0NlKSxQZT1NYXRoLnNpbigyKk1hdGguUEkvQ2UpLFFlPTA7UWU8''@;'; + put 'put ''UztRZSs9Q2UpZm9yKHZhciAkZT1EZSxndD1QZSx3dD0wO3d0PHllO3d0Kyspe3ZhciB2dD1WW1FlK3d0XSxBdD1UW1FlK3d0XSxtdD1WW1FlK3d0K3llXSxodD1UW1FlK3d0K3llXSxCdD0kZSptdC1ndCpodDtodD0kZSpodCtndCptdCxWW1FlK3d0XT12dCsobXQ9QnQpLFRbUWUrd3RdPUF0''@;'; + put 'put ''K2h0LFZbUWUrd3QreWVdPXZ0LW10LFRbUWUrd3QreWVdPUF0LWh0LHd0IT09Q2UmJihCdD1EZSokZS1QZSpndCxndD1EZSpndCtQZSokZSwkZT1CdCl9fSxTZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oeCxQKXt2YXIgVj0xfE1hdGgubWF4KFAseCksVD0xJlYsUz0wO2ZvcihW''@;'; + put 'put ''PVYvMnwwO1Y7Vj4+Pj0xKVMrKztyZXR1cm4gMTw8UysxK1R9LFNlLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oeCxQLFYpe2lmKCEoVjw9MSkpZm9yKHZhciBUPTA7VDxWLzI7VCsrKXt2YXIgUz14W1RdO3hbVF09eFtWLVQtMV0seFtWLVQtMV09UyxTPVBbVF0sUFtUXT0tUFtWLVQt''@;'; + put 'put ''MV0sUFtWLVQtMV09LVN9fSxTZS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKHgsUCl7Zm9yKHZhciBWPTAsVD0wO1Q8UC8yO1QrKyl7dmFyIFM9ODE5MipNYXRoLnJvdW5kKHhbMipUKzFdL1ApK01hdGgucm91bmQoeFsyKlRdL1ApK1Y7eFtUXT02NzEwODg2MyZTLFY9Uzw2NzEw''@;'; + put 'put ''ODg2ND8wOlMvNjcxMDg4NjR8MH1yZXR1cm4geH0sU2UucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oeCxQLFYsVCl7Zm9yKHZhciBTPTAsRj0wO0Y8UDtGKyspVlsyKkZdPTgxOTEmKFMrPTB8eFtGXSksVlsyKkYrMV09ODE5MSYoUz4+Pj0xMyksUz4+Pj0xMztmb3IoRj0yKlA7RjxU''@;'; + put 'put ''OysrRilWW0ZdPTA7WSgwPT09UyksWSgwPT0oLTgxOTImUykpfSxTZS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbih4KXtmb3IodmFyIFA9bmV3IEFycmF5KHgpLFY9MDtWPHg7VisrKVBbVl09MDtyZXR1cm4gUH0sU2UucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oeCxQLFYpe3ZhciBUPTIqdGhp''@;'; + put 'put ''cy5ndWVzc0xlbjEzYih4Lmxlbmd0aCxQLmxlbmd0aCksUz10aGlzLm1ha2VSQlQoVCksRj10aGlzLnN0dWIoVCkseWU9bmV3IEFycmF5KFQpLENlPW5ldyBBcnJheShUKSxEZT1uZXcgQXJyYXkoVCksUGU9bmV3IEFycmF5KFQpLFFlPW5ldyBBcnJheShUKSwkZT1uZXcgQXJyYXkoVCksZ3Q9''@;'; + put 'put ''Vi53b3JkcztndC5sZW5ndGg9VCx0aGlzLmNvbnZlcnQxM2IoeC53b3Jkcyx4Lmxlbmd0aCx5ZSxUKSx0aGlzLmNvbnZlcnQxM2IoUC53b3JkcyxQLmxlbmd0aCxQZSxUKSx0aGlzLnRyYW5zZm9ybSh5ZSxGLENlLERlLFQsUyksdGhpcy50cmFuc2Zvcm0oUGUsRixRZSwkZSxULFMpO2Zvcih2''@;'; + put 'put ''YXIgd3Q9MDt3dDxUO3d0Kyspe3ZhciB2dD1DZVt3dF0qUWVbd3RdLURlW3d0XSokZVt3dF07RGVbd3RdPUNlW3d0XSokZVt3dF0rRGVbd3RdKlFlW3d0XSxDZVt3dF09dnR9cmV0dXJuIHRoaXMuY29uanVnYXRlKENlLERlLFQpLHRoaXMudHJhbnNmb3JtKENlLERlLGd0LEYsVCxTKSx0aGlz''@;'; + put 'put ''LmNvbmp1Z2F0ZShndCxGLFQpLHRoaXMubm9ybWFsaXplMTNiKGd0LFQpLFYubmVnYXRpdmU9eC5uZWdhdGl2ZV5QLm5lZ2F0aXZlLFYubGVuZ3RoPXgubGVuZ3RoK1AubGVuZ3RoLFYuc3RyaXAoKX0sTi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHgpe3ZhciBQPW5ldyBOKG51bGwpO3JldHVy''@;'; + put 'put ''biBQLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCt4Lmxlbmd0aCksdGhpcy5tdWxUbyh4LFApfSxOLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKHgpe3ZhciBQPW5ldyBOKG51bGwpO3JldHVybiBQLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCt4Lmxlbmd0aCksa2UodGhpcyx4LFAp''@;'; + put 'put ''fSxOLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oeCx0aGlzKX0sTi5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCk7Zm9yKHZhciBQPTAsVj0wO1Y8dGhpcy5sZW5ndGg7Visr''@;'; + put 'put ''KXt2YXIgVD0oMHx0aGlzLndvcmRzW1ZdKSp4LFM9KDY3MTA4ODYzJlQpKyg2NzEwODg2MyZQKTtQPj49MjYsUCs9VC82NzEwODg2NHwwLFArPVM+Pj4yNix0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJlN9cmV0dXJuIDAhPT1QJiYodGhpcy53b3Jkc1tWXT1QLHRoaXMubGVuZ3RoKyspLHRoaXN9''@;'; + put 'put ''LE4ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbih4KX0sTi5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxOLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25l''@;'; + put 'put ''KCkpfSxOLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oeCl7dmFyIFA9ZnVuY3Rpb24oRil7Zm9yKHZhciB5ZT1uZXcgQXJyYXkoRi5iaXRMZW5ndGgoKSksQ2U9MDtDZTx5ZS5sZW5ndGg7Q2UrKyl7dmFyIFBlPUNlJTI2O3llW0NlXT0oRi53b3Jkc1tDZS8yNnwwXSYxPDxQZSk+Pj5QZX1yZXR1''@;'; + put 'put ''cm4geWV9KHgpO2lmKDA9PT1QLmxlbmd0aClyZXR1cm4gbmV3IE4oMSk7Zm9yKHZhciBWPXRoaXMsVD0wO1Q8UC5sZW5ndGgmJjA9PT1QW1RdO1QrKyxWPVYuc3FyKCkpO2lmKCsrVDxQLmxlbmd0aClmb3IodmFyIFM9Vi5zcXIoKTtUPFAubGVuZ3RoO1QrKyxTPVMuc3FyKCkpMCE9PVBbVF0m''@;'; + put 'put ''JihWPVYubXVsKFMpKTtyZXR1cm4gVn0sTi5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUCxWPXglMjYsVD0oeC1WKS8yNixTPTY3MTA4ODYzPj4+MjYtVjw8MjYtVjtpZigwIT09Vil7dmFyIEY9MDtmb3IoUD0wO1A8dGhpcy5s''@;'; + put 'put ''ZW5ndGg7UCsrKXt2YXIgeWU9dGhpcy53b3Jkc1tQXSZTO3RoaXMud29yZHNbUF09KDB8dGhpcy53b3Jkc1tQXSkteWU8PFZ8RixGPXllPj4+MjYtVn1GJiYodGhpcy53b3Jkc1tQXT1GLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1UKXtmb3IoUD10aGlzLmxlbmd0aC0xO1A+PTA7UC0tKXRoaXMu''@;'; + put 'put ''d29yZHNbUCtUXT10aGlzLndvcmRzW1BdO2ZvcihQPTA7UDxUO1ArKyl0aGlzLndvcmRzW1BdPTA7dGhpcy5sZW5ndGgrPVR9cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKHgp''@;'; + put 'put ''fSxOLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oeCxQLFYpe3ZhciBUO1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKSxUPVA/KFAtUCUyNikvMjY6MDt2YXIgUz14JTI2LEY9TWF0aC5taW4oKHgtUykvMjYsdGhpcy5sZW5ndGgpLHllPTY3MTA4ODYzXjY3MTA4ODYzPj4+Uzw8UyxDZT1W''@;'; + put 'put ''O2lmKFQtPUYsVD1NYXRoLm1heCgwLFQpLENlKXtmb3IodmFyIERlPTA7RGU8RjtEZSsrKUNlLndvcmRzW0RlXT10aGlzLndvcmRzW0RlXTtDZS5sZW5ndGg9Rn1pZigwIT09RilpZih0aGlzLmxlbmd0aD5GKWZvcih0aGlzLmxlbmd0aC09RixEZT0wO0RlPHRoaXMubGVuZ3RoO0RlKyspdGhp''@;'; + put 'put ''cy53b3Jkc1tEZV09dGhpcy53b3Jkc1tEZStGXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBQZT0wO2ZvcihEZT10aGlzLmxlbmd0aC0xO0RlPj0wJiYoMCE9PVBlfHxEZT49VCk7RGUtLSl7dmFyIFFlPTB8dGhpcy53b3Jkc1tEZV07dGhpcy53b3Jkc1tEZV09UGU8''@;'; + put 'put ''PDI2LVN8UWU+Pj5TLFBlPVFlJnllfXJldHVybiBDZSYmMCE9PVBlJiYoQ2Uud29yZHNbQ2UubGVuZ3RoKytdPVBlKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbih4LFAsVil7''@;'; + put 'put ''cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKHgsUCxWKX0sTi5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKHgpfSxOLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbih4''@;'; + put 'put ''KX0sTi5wcm90b3R5cGUuc2hybj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKHgpfSxOLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybih4KX0sTi5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09''@;'; + put 'put ''dHlwZW9mIHgmJng+PTApO3ZhciBQPXglMjYsVj0oeC1QKS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD1WfHwhKHRoaXMud29yZHNbVl0mMTw8UCkpfSxOLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBQPXglMjYsVj0oeC1QKS8y''@;'; + put 'put ''NjtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PVY/dGhpczooMCE9PVAmJlYrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihWLHRoaXMubGVuZ3RoKSwwIT09UCYmKHRoaXMud29yZHNbdGhpcy5s''@;'; + put 'put ''ZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+UDw8UCksdGhpcy5zdHJpcCgpKX0sTi5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oeCl9LE4ucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKHgpe3JldHVybiBZKCJudW1iZXIiPT10eXBl''@;'; + put 'put ''b2YgeCksWSh4PDY3MTA4ODY0KSx4PDA/dGhpcy5pc3VibigteCk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTx4Pyh0aGlzLndvcmRzWzBdPXgtKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZl''@;'; + put 'put ''PTAsdGhpcy5pc3Vibih4KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oeCl9LE4ucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbih4KXt0aGlzLndvcmRzWzBdKz14O2Zvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbUF0+PTY3MTA4ODY0O1ArKyl0aGlzLndv''@;'; + put 'put ''cmRzW1BdLT02NzEwODg2NCxQPT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW1ArMV09MTp0aGlzLndvcmRzW1ArMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsUCsxKSx0aGlzfSxOLnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbih4KXtpZihZKCJudW1iZXIi''@;'; + put 'put ''PT10eXBlb2YgeCksWSh4PDY3MTA4ODY0KSx4PDApcmV0dXJuIHRoaXMuaWFkZG4oLXgpO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbih4KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndvcmRzWzBdLT14LDE9PT10aGlzLmxlbmd0''@;'; + put 'put ''aCYmdGhpcy53b3Jkc1swXTwwKXRoaXMud29yZHNbMF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tQXTwwO1ArKyl0aGlzLndvcmRzW1BdKz02NzEwODg2NCx0aGlzLndvcmRzW1ArMV0tPTE7cmV0dXJu''@;'; + put 'put ''IHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKHgpfSxOLnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oeCl9LE4ucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LE4ucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxOLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oeCxQLFYpe3ZhciBULFM7dGhpcy5fZXhwYW5kKHgubGVuZ3RoK1YpO3ZhciB5ZT0wO2Zv''@;'; + put 'put ''cihUPTA7VDx4Lmxlbmd0aDtUKyspe1M9KDB8dGhpcy53b3Jkc1tUK1ZdKSt5ZTt2YXIgQ2U9KDB8eC53b3Jkc1tUXSkqUDt5ZT0oKFMtPTY3MTA4ODYzJkNlKT4+MjYpLShDZS82NzEwODg2NHwwKSx0aGlzLndvcmRzW1QrVl09NjcxMDg4NjMmU31mb3IoO1Q8dGhpcy5sZW5ndGgtVjtUKysp''@;'; + put 'put ''eWU9KFM9KDB8dGhpcy53b3Jkc1tUK1ZdKSt5ZSk+PjI2LHRoaXMud29yZHNbVCtWXT02NzEwODg2MyZTO2lmKDA9PT15ZSlyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihZKC0xPT09eWUpLHllPTAsVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXllPShTPS0oMHx0aGlzLndvcmRzW1RdKSt5ZSk+PjI2''@;'; + put 'put ''LHRoaXMud29yZHNbVF09NjcxMDg4NjMmUztyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24oeCxQKXt2YXIgVixUPXRoaXMuY2xvbmUoKSxTPXgsRj0wfFMud29yZHNbUy5sZW5ndGgtMV07MCE9KFY9MjYtdGhpcy5fY291''@;'; + put 'put ''bnRCaXRzKEYpKSYmKFM9Uy51c2hsbihWKSxULml1c2hsbihWKSxGPTB8Uy53b3Jkc1tTLmxlbmd0aC0xXSk7dmFyIHllLENlPVQubGVuZ3RoLVMubGVuZ3RoO2lmKCJtb2QiIT09UCl7KHllPW5ldyBOKG51bGwpKS5sZW5ndGg9Q2UrMSx5ZS53b3Jkcz1uZXcgQXJyYXkoeWUubGVuZ3RoKTtm''@;'; + put 'put ''b3IodmFyIERlPTA7RGU8eWUubGVuZ3RoO0RlKyspeWUud29yZHNbRGVdPTB9dmFyIFBlPVQuY2xvbmUoKS5faXNobG5zdWJtdWwoUywxLENlKTswPT09UGUubmVnYXRpdmUmJihUPVBlLHllJiYoeWUud29yZHNbQ2VdPTEpKTtmb3IodmFyIFFlPUNlLTE7UWU+PTA7UWUtLSl7dmFyICRlPTY3''@;'; + put 'put ''MTA4ODY0KigwfFQud29yZHNbUy5sZW5ndGgrUWVdKSsoMHxULndvcmRzW1MubGVuZ3RoK1FlLTFdKTtmb3IoJGU9TWF0aC5taW4oJGUvRnwwLDY3MTA4ODYzKSxULl9pc2hsbnN1Ym11bChTLCRlLFFlKTswIT09VC5uZWdhdGl2ZTspJGUtLSxULm5lZ2F0aXZlPTAsVC5faXNobG5zdWJtdWwo''@;'; + put 'put ''UywxLFFlKSxULmlzWmVybygpfHwoVC5uZWdhdGl2ZV49MSk7eWUmJih5ZS53b3Jkc1tRZV09JGUpfXJldHVybiB5ZSYmeWUuc3RyaXAoKSxULnN0cmlwKCksImRpdiIhPT1QJiYwIT09ViYmVC5pdXNocm4oVikse2Rpdjp5ZXx8bnVsbCxtb2Q6VH19LE4ucHJvdG90eXBlLmRpdm1vZD1mdW5j''@;'; + put 'put ''dGlvbih4LFAsVil7cmV0dXJuIFkoIXguaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgTigwKSxtb2Q6bmV3IE4oMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZT8oRj10aGlzLm5lZygpLmRpdm1vZCh4LFApLCJtb2QiIT09UCYmKFQ9Ri5kaXYubmVnKCkpLCJk''@;'; + put 'put ''aXYiIT09UCYmKFM9Ri5tb2QubmVnKCksViYmMCE9PVMubmVnYXRpdmUmJlMuaWFkZCh4KSkse2RpdjpULG1vZDpTfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlPyhGPXRoaXMuZGl2bW9kKHgubmVnKCksUCksIm1vZCIhPT1QJiYoVD1GLmRpdi5uZWcoKSkse2RpdjpULG1v''@;'; + put 'put ''ZDpGLm1vZH0pOjAhPSh0aGlzLm5lZ2F0aXZlJngubmVnYXRpdmUpPyhGPXRoaXMubmVnKCkuZGl2bW9kKHgubmVnKCksUCksImRpdiIhPT1QJiYoUz1GLm1vZC5uZWcoKSxWJiYwIT09Uy5uZWdhdGl2ZSYmUy5pc3ViKHgpKSx7ZGl2OkYuZGl2LG1vZDpTfSk6eC5sZW5ndGg+dGhpcy5sZW5n''@;'; + put 'put ''dGh8fHRoaXMuY21wKHgpPDA/e2RpdjpuZXcgTigwKSxtb2Q6dGhpc306MT09PXgubGVuZ3RoPyJkaXYiPT09UD97ZGl2OnRoaXMuZGl2bih4LndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1QP3tkaXY6bnVsbCxtb2Q6bmV3IE4odGhpcy5tb2RuKHgud29yZHNbMF0pKX06e2Rpdjp0aGlz''@;'; + put 'put ''LmRpdm4oeC53b3Jkc1swXSksbW9kOm5ldyBOKHRoaXMubW9kbih4LndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoeCxQKTt2YXIgVCxTLEZ9LE4ucHJvdG90eXBlLmRpdj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kaXZtb2QoeCwiZGl2IiwhMSkuZGl2fSxOLnByb3RvdHlwZS5tb2Q9ZnVu''@;'; + put 'put ''Y3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsIm1vZCIsITEpLm1vZH0sTi5wcm90b3R5cGUudW1vZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kaXZtb2QoeCwibW9kIiwhMCkubW9kfSxOLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbih4KXt2YXIgUD10aGlzLmRpdm1vZCh4KTtp''@;'; + put 'put ''ZihQLm1vZC5pc1plcm8oKSlyZXR1cm4gUC5kaXY7dmFyIFY9MCE9PVAuZGl2Lm5lZ2F0aXZlP1AubW9kLmlzdWIoeCk6UC5tb2QsVD14LnVzaHJuKDEpLFM9eC5hbmRsbigxKSxGPVYuY21wKFQpO3JldHVybiBGPDB8fDE9PT1TJiYwPT09Rj9QLmRpdjowIT09UC5kaXYubmVnYXRpdmU/UC5k''@;'; + put 'put ''aXYuaXN1Ym4oMSk6UC5kaXYuaWFkZG4oMSl9LE4ucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oeCl7WSh4PD02NzEwODg2Myk7Zm9yKHZhciBQPTY3MTA4ODY0JXgsVj0wLFQ9dGhpcy5sZW5ndGgtMTtUPj0wO1QtLSlWPShQKlYrKDB8dGhpcy53b3Jkc1tUXSkpJXg7cmV0dXJuIFZ9LE4ucHJv''@;'; + put 'put ''dG90eXBlLmlkaXZuPWZ1bmN0aW9uKHgpe1koeDw9NjcxMDg4NjMpO2Zvcih2YXIgUD0wLFY9dGhpcy5sZW5ndGgtMTtWPj0wO1YtLSl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkrNjcxMDg4NjQqUDt0aGlzLndvcmRzW1ZdPVQveHwwLFA9VCV4fXJldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJv''@;'; + put 'put ''dG90eXBlLmRpdm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bih4KX0sTi5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlKSxZKCF4LmlzWmVybygpKTt2YXIgUD10aGlzLFY9eC5jbG9uZSgpO1A9MCE9PVAubmVnYXRpdmU/UC51bW9kKHgp''@;'; + put 'put ''OlAuY2xvbmUoKTtmb3IodmFyIFQ9bmV3IE4oMSksUz1uZXcgTigwKSxGPW5ldyBOKDApLHllPW5ldyBOKDEpLENlPTA7UC5pc0V2ZW4oKSYmVi5pc0V2ZW4oKTspUC5pdXNocm4oMSksVi5pdXNocm4oMSksKytDZTtmb3IodmFyIERlPVYuY2xvbmUoKSxQZT1QLmNsb25lKCk7IVAuaXNaZXJv''@;'; + put 'put ''KCk7KXtmb3IodmFyIFFlPTAsJGU9MTswPT0oUC53b3Jkc1swXSYkZSkmJlFlPDI2OysrUWUsJGU8PD0xKTtpZihRZT4wKWZvcihQLml1c2hybihRZSk7UWUtLSA+MDspKFQuaXNPZGQoKXx8Uy5pc09kZCgpKSYmKFQuaWFkZChEZSksUy5pc3ViKFBlKSksVC5pdXNocm4oMSksUy5pdXNocm4o''@;'; + put 'put ''MSk7Zm9yKHZhciBndD0wLHd0PTE7MD09KFYud29yZHNbMF0md3QpJiZndDwyNjsrK2d0LHd0PDw9MSk7aWYoZ3Q+MClmb3IoVi5pdXNocm4oZ3QpO2d0LS0gPjA7KShGLmlzT2RkKCl8fHllLmlzT2RkKCkpJiYoRi5pYWRkKERlKSx5ZS5pc3ViKFBlKSksRi5pdXNocm4oMSkseWUuaXVzaHJu''@;'; + put 'put ''KDEpO1AuY21wKFYpPj0wPyhQLmlzdWIoViksVC5pc3ViKEYpLFMuaXN1Yih5ZSkpOihWLmlzdWIoUCksRi5pc3ViKFQpLHllLmlzdWIoUykpfXJldHVybnthOkYsYjp5ZSxnY2Q6Vi5pdXNobG4oQ2UpfX0sTi5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUp''@;'; + put 'put ''LFkoIXguaXNaZXJvKCkpO3ZhciBQPXRoaXMsVj14LmNsb25lKCk7UD0wIT09UC5uZWdhdGl2ZT9QLnVtb2QoeCk6UC5jbG9uZSgpO2Zvcih2YXIgVCxTPW5ldyBOKDEpLEY9bmV3IE4oMCkseWU9Vi5jbG9uZSgpO1AuY21wbigxKT4wJiZWLmNtcG4oMSk+MDspe2Zvcih2YXIgQ2U9MCxEZT0x''@;'; + put 'put ''OzA9PShQLndvcmRzWzBdJkRlKSYmQ2U8MjY7KytDZSxEZTw8PTEpO2lmKENlPjApZm9yKFAuaXVzaHJuKENlKTtDZS0tID4wOylTLmlzT2RkKCkmJlMuaWFkZCh5ZSksUy5pdXNocm4oMSk7Zm9yKHZhciBQZT0wLFFlPTE7MD09KFYud29yZHNbMF0mUWUpJiZQZTwyNjsrK1BlLFFlPDw9MSk7''@;'; + put 'put ''aWYoUGU+MClmb3IoVi5pdXNocm4oUGUpO1BlLS0gPjA7KUYuaXNPZGQoKSYmRi5pYWRkKHllKSxGLml1c2hybigxKTtQLmNtcChWKT49MD8oUC5pc3ViKFYpLFMuaXN1YihGKSk6KFYuaXN1YihQKSxGLmlzdWIoUykpfXJldHVybihUPTA9PT1QLmNtcG4oMSk/UzpGKS5jbXBuKDApPDAmJlQu''@;'; + put 'put ''aWFkZCh4KSxUfSxOLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oeCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4geC5hYnMoKTtpZih4LmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBQPXRoaXMuY2xvbmUoKSxWPXguY2xvbmUoKTtQLm5lZ2F0aXZlPTAsVi5uZWdhdGl2ZT0wO2Zvcih2''@;'; + put 'put ''YXIgVD0wO1AuaXNFdmVuKCkmJlYuaXNFdmVuKCk7VCsrKVAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtQLmlzRXZlbigpOylQLml1c2hybigxKTtmb3IoO1YuaXNFdmVuKCk7KVYuaXVzaHJuKDEpO3ZhciBTPVAuY21wKFYpO2lmKFM8MCl7dmFyIEY9UDtQPVYsVj1GfWVs''@;'; + put 'put ''c2UgaWYoMD09PVN8fDA9PT1WLmNtcG4oMSkpYnJlYWs7UC5pc3ViKFYpfXJldHVybiBWLml1c2hsbihUKX0sTi5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5lZ2NkKHgpLmEudW1vZCh4KX0sTi5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgx''@;'; + put 'put ''JnRoaXMud29yZHNbMF0pfSxOLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMud29yZHNbMF0meH0sTi5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oeCl7WSgibnVt''@;'; + put 'put ''YmVyIj09dHlwZW9mIHgpO3ZhciBQPXglMjYsVj0oeC1QKS8yNixUPTE8PFA7aWYodGhpcy5sZW5ndGg8PVYpcmV0dXJuIHRoaXMuX2V4cGFuZChWKzEpLHRoaXMud29yZHNbVl18PVQsdGhpcztmb3IodmFyIFM9VCxGPVY7MCE9PVMmJkY8dGhpcy5sZW5ndGg7RisrKXt2YXIgeWU9MHx0aGlz''@;'; + put 'put ''LndvcmRzW0ZdO1M9KHllKz1TKT4+PjI2LHRoaXMud29yZHNbRl09eWUmPTY3MTA4ODYzfXJldHVybiAwIT09UyYmKHRoaXMud29yZHNbRl09Uyx0aGlzLmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhp''@;'; + put 'put ''cy53b3Jkc1swXX0sTi5wcm90b3R5cGUuY21wbj1mdW5jdGlvbih4KXt2YXIgUCxWPXg8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIVYpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJlYpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpUD0xO2Vsc2V7ViYmKHg9''@;'; + put 'put ''LXgpLFkoeDw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIFQ9MHx0aGlzLndvcmRzWzBdO1A9VD09PXg/MDpUPHg/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtUDpQfSxOLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oeCl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9''@;'; + put 'put ''PT14Lm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgUD10aGlzLnVjbXAoeCk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVA6UH0sTi5wcm90b3R5cGUudWNtcD1mdW5jdGlvbih4KXtpZih0aGlzLmxlbmd0aD54''@;'; + put 'put ''Lmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDx4Lmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIFA9MCxWPXRoaXMubGVuZ3RoLTE7Vj49MDtWLS0pe3ZhciBUPTB8dGhpcy53b3Jkc1tWXSxTPTB8eC53b3Jkc1tWXTtpZihUIT09Uyl7VDxTP1A9LTE6VD5TJiYoUD0xKTticmVha319cmV0''@;'; + put 'put ''dXJuIFB9LE4ucHJvdG90eXBlLmd0bj1mdW5jdGlvbih4KXtyZXR1cm4gMT09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PT10aGlzLmNtcCh4KX0sTi5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXBuKHgpPj0wfSxO''@;'; + put 'put ''LnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wKHgpPj0wfSxOLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oeCl7cmV0dXJuLTE9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmx0PWZ1bmN0aW9uKHgpe3JldHVybi0xPT09dGhpcy5jbXAoeCl9LE4ucHJvdG90eXBl''@;'; + put 'put ''Lmx0ZW49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wbih4KTw9MH0sTi5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcCh4KTw9MH0sTi5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKHgpe3JldHVybiAwPT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5lcT1mdW5j''@;'; + put 'put ''dGlvbih4KXtyZXR1cm4gMD09PXRoaXMuY21wKHgpfSxOLnJlZD1mdW5jdGlvbih4KXtyZXR1cm4gbmV3IG5lKHgpfSxOLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbih4KXtyZXR1cm4gWSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxZKDA9PT10''@;'; + put 'put ''aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHguY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh4KX0sTi5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJl''@;'; + put 'put ''ZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LE4ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5yZWQ9eCx0aGlzfSxOLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih4KXtyZXR1cm4gWSghdGhpcy5yZWQsIkFscmVhZHkg''@;'; + put 'put ''YSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh4KX0sTi5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMseCl9LE4ucHJv''@;'; + put 'put ''dG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFN1YiB3''@;'; + put 'put ''b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMseCl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE11bCB3''@;'; + put 'put ''b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHgpLHRoaXMucmVkLm11bCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiks''@;'; + put 'put ''dGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx4KSx0aGlzLnJlZC5pbXVsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5y''@;'; + put 'put ''ZWQuc3FyKHRoaXMpfSxOLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkU3Fy''@;'; + put 'put ''dD1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LE4ucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwi''@;'; + put 'put ''cmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxOLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVy''@;'; + put 'put ''cyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sTi5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkJiYheC5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRo''@;'; + put 'put ''aXMseCl9O3ZhciBJZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIFRlKHgsUCl7dGhpcy5uYW1lPXgsdGhpcy5wPW5ldyBOKFAsMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBOKDEpLml1c2hsbih0aGlzLm4pLmlz''@;'; + put 'put ''dWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBFZSgpe1RlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24gaGUoKXtUZS5jYWxsKHRo''@;'; + put 'put ''aXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIE8oKXtUZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIp''@;'; + put 'put ''fWZ1bmN0aW9uIHooKXtUZS5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIG5lKHgpe2lmKCJzdHJpbmciPT10eXBlb2YgeCl7dmFyIFA9Ti5fcHJpbWUoeCk7dGhp''@;'; + put 'put ''cy5tPVAucCx0aGlzLnByaW1lPVB9ZWxzZSBZKHguZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09eCx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gdGUoeCl7bmUuY2FsbCh0aGlzLHgpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hp''@;'; + put 'put ''ZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IE4oMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0''@;'; + put 'put ''aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9VGUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgeD1uZXcgTihudWxsKTtyZXR1cm4geC53b3Jkcz1uZXcgQXJyYXko''@;'; + put 'put ''TWF0aC5jZWlsKHRoaXMubi8xMykpLHh9LFRlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKHgpe3ZhciBQLFY9eDtkb3t0aGlzLnNwbGl0KFYsdGhpcy50bXApLFA9KFY9KFY9dGhpcy5pbXVsSyhWKSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKFA+dGhpcy5uKTt2YXIg''@;'; + put 'put ''VD1QPHRoaXMubj8tMTpWLnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PVQ/KFYud29yZHNbMF09MCxWLmxlbmd0aD0xKTpUPjA/Vi5pc3ViKHRoaXMucCk6dm9pZCAwIT09Vi5zdHJpcD9WLnN0cmlwKCk6Vi5fc3RyaXAoKSxWfSxUZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oeCxQKXt4Lml1''@;'; + put 'put ''c2hybih0aGlzLm4sMCxQKX0sVGUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe3JldHVybiB4LmltdWwodGhpcy5rKX0sVyhFZSxUZSksRWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHgsUCl7Zm9yKHZhciBWPTQxOTQzMDMsVD1NYXRoLm1pbih4Lmxlbmd0aCw5KSxTPTA7UzxUO1Mr''@;'; + put 'put ''KylQLndvcmRzW1NdPXgud29yZHNbU107aWYoUC5sZW5ndGg9VCx4Lmxlbmd0aDw9OSlyZXR1cm4geC53b3Jkc1swXT0wLHZvaWQoeC5sZW5ndGg9MSk7dmFyIEY9eC53b3Jkc1s5XTtmb3IoUC53b3Jkc1tQLmxlbmd0aCsrXT1GJlYsUz0xMDtTPHgubGVuZ3RoO1MrKyl7dmFyIHllPTB8eC53''@;'; + put 'put ''b3Jkc1tTXTt4LndvcmRzW1MtMTBdPSh5ZSZWKTw8NHxGPj4+MjIsRj15ZX14LndvcmRzW1MtMTBdPUY+Pj49MjIseC5sZW5ndGgtPTA9PT1GJiZ4Lmxlbmd0aD4xMD8xMDo5fSxFZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oeCl7eC53b3Jkc1t4Lmxlbmd0aF09MCx4LndvcmRzW3gubGVu''@;'; + put 'put ''Z3RoKzFdPTAseC5sZW5ndGgrPTI7Zm9yKHZhciBQPTAsVj0wO1Y8eC5sZW5ndGg7VisrKXt2YXIgVD0wfHgud29yZHNbVl07eC53b3Jkc1tWXT02NzEwODg2MyYoUCs9OTc3KlQpLFA9NjQqVCsoUC82NzEwODg2NHwwKX1yZXR1cm4gMD09PXgud29yZHNbeC5sZW5ndGgtMV0mJih4Lmxlbmd0''@;'; + put 'put ''aC0tLDA9PT14LndvcmRzW3gubGVuZ3RoLTFdJiZ4Lmxlbmd0aC0tKSx4fSxXKGhlLFRlKSxXKE8sVGUpLFcoeixUZSksei5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPTAsVj0wO1Y8eC5sZW5ndGg7VisrKXt2YXIgVD0xOSooMHx4LndvcmRzW1ZdKStQLFM9NjcxMDg4''@;'; + put 'put ''NjMmVDtUPj4+PTI2LHgud29yZHNbVl09UyxQPVR9cmV0dXJuIDAhPT1QJiYoeC53b3Jkc1t4Lmxlbmd0aCsrXT1QKSx4fSxOLl9wcmltZT1mdW5jdGlvbih4KXtpZihJZVt4XSlyZXR1cm4gSWVbeF07dmFyIFA7aWYoImsyNTYiPT09eClQPW5ldyBFZTtlbHNlIGlmKCJwMjI0Ij09PXgpUD1u''@;'; + put 'put ''ZXcgaGU7ZWxzZSBpZigicDE5MiI9PT14KVA9bmV3IE87ZWxzZXtpZigicDI1NTE5IiE9PXgpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIreCk7UD1uZXcgen1yZXR1cm4gSWVbeF09UCxQfSxuZS5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2''@;'; + put 'put ''ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxZKHgucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LG5lLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbih4LFApe1koMD09KHgubmVnYXRpdmV8UC5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGgg''@;'; + put 'put ''cG9zaXRpdmVzIiksWSh4LnJlZCYmeC5yZWQ9PT1QLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxuZS5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UoeCkuX2ZvcmNlUmVkKHRoaXMpOngudW1vZCh0''@;'; + put 'put ''aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLm5lZz1mdW5jdGlvbih4KXtyZXR1cm4geC5pc1plcm8oKT94LmNsb25lKCk6dGhpcy5tLnN1Yih4KS5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFy''@;'; + put 'put ''IFY9eC5hZGQoUCk7cmV0dXJuIFYuY21wKHRoaXMubSk+PTAmJlYuaXN1Yih0aGlzLm0pLFYuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmlhZGQoUCk7cmV0dXJuIFYuY21wKHRoaXMubSk+PTAmJlYu''@;'; + put 'put ''aXN1Yih0aGlzLm0pLFZ9LG5lLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5zdWIoUCk7cmV0dXJuIFYuY21wbigwKTwwJiZWLmlhZGQodGhpcy5tKSxWLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oeCxQ''@;'; + put 'put ''KXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5pc3ViKFApO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVn0sbmUucHJvdG90eXBlLnNobD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkxKHgpLHRoaXMuaW1vZCh4LnVzaGxuKFApKX0sbmUucHJvdG90eXBl''@;'; + put 'put ''LmltdWw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih4LFApLHRoaXMuaW1vZCh4LmltdWwoUCkpfSxuZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoeCxQKSx0aGlzLmltb2QoeC5tdWwoUCkpfSxuZS5wcm90b3R5cGUuaXNxcj1m''@;'; + put 'put ''dW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbXVsKHgseC5jbG9uZSgpKX0sbmUucHJvdG90eXBlLnNxcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5tdWwoeCx4KX0sbmUucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oeCl7aWYoeC5pc1plcm8oKSlyZXR1cm4geC5jbG9uZSgpO3ZhciBQPXRoaXMu''@;'; + put 'put ''bS5hbmRsbigzKTtpZihZKFAlMj09MSksMz09PVApe3ZhciBWPXRoaXMubS5hZGQobmV3IE4oMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coeCxWKX1mb3IodmFyIFQ9dGhpcy5tLnN1Ym4oMSksUz0wOyFULmlzWmVybygpJiYwPT09VC5hbmRsbigxKTspUysrLFQuaXVzaHJuKDEpO1ko''@;'; + put 'put ''IVQuaXNaZXJvKCkpO3ZhciBGPW5ldyBOKDEpLnRvUmVkKHRoaXMpLHllPUYucmVkTmVnKCksQ2U9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLERlPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoRGU9bmV3IE4oMipEZSpEZSkudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KERlLENlKS5jbXAoeWUp''@;'; + put 'put ''OylEZS5yZWRJQWRkKHllKTtmb3IodmFyIFBlPXRoaXMucG93KERlLFQpLFFlPXRoaXMucG93KHgsVC5hZGRuKDEpLml1c2hybigxKSksJGU9dGhpcy5wb3coeCxUKSxndD1TOzAhPT0kZS5jbXAoRik7KXtmb3IodmFyIHd0PSRlLHZ0PTA7MCE9PXd0LmNtcChGKTt2dCsrKXd0PXd0LnJlZFNx''@;'; + put 'put ''cigpO1kodnQ8Z3QpO3ZhciBBdD10aGlzLnBvdyhQZSxuZXcgTigxKS5pdXNobG4oZ3QtdnQtMSkpO1FlPVFlLnJlZE11bChBdCksUGU9QXQucmVkU3FyKCksJGU9JGUucmVkTXVsKFBlKSxndD12dH1yZXR1cm4gUWV9LG5lLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHgpe3ZhciBQPXguX2lu''@;'; + put 'put ''dm1wKHRoaXMubSk7cmV0dXJuIDAhPT1QLm5lZ2F0aXZlPyhQLm5lZ2F0aXZlPTAsdGhpcy5pbW9kKFApLnJlZE5lZygpKTp0aGlzLmltb2QoUCl9LG5lLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oeCxQKXtpZihQLmlzWmVybygpKXJldHVybiBuZXcgTigxKS50b1JlZCh0aGlzKTtpZigwPT09''@;'; + put 'put ''UC5jbXBuKDEpKXJldHVybiB4LmNsb25lKCk7dmFyIFY9bmV3IEFycmF5KDE2KTtWWzBdPW5ldyBOKDEpLnRvUmVkKHRoaXMpLFZbMV09eDtmb3IodmFyIFQ9MjtUPFYubGVuZ3RoO1QrKylWW1RdPXRoaXMubXVsKFZbVC0xXSx4KTt2YXIgUz1WWzBdLEY9MCx5ZT0wLENlPVAuYml0TGVuZ3Ro''@;'; + put 'put ''KCklMjY7Zm9yKDA9PT1DZSYmKENlPTI2KSxUPVAubGVuZ3RoLTE7VD49MDtULS0pe2Zvcih2YXIgRGU9UC53b3Jkc1tUXSxQZT1DZS0xO1BlPj0wO1BlLS0pe3ZhciBRZT1EZT4+UGUmMTtTIT09VlswXSYmKFM9dGhpcy5zcXIoUykpLDAhPT1RZXx8MCE9PUY/KEY8PD0xLEZ8PVFlLCg0PT0r''@;'; + put 'put ''K3llfHwwPT09VCYmMD09PVBlKSYmKFM9dGhpcy5tdWwoUyxWW0ZdKSx5ZT0wLEY9MCkpOnllPTB9Q2U9MjZ9cmV0dXJuIFN9LG5lLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oeCl7dmFyIFA9eC51bW9kKHRoaXMubSk7cmV0dXJuIFA9PT14P1AuY2xvbmUoKTpQfSxuZS5wcm90b3R5''@;'; + put 'put ''cGUuY29udmVydEZyb209ZnVuY3Rpb24oeCl7dmFyIFA9eC5jbG9uZSgpO3JldHVybiBQLnJlZD1udWxsLFB9LE4ubW9udD1mdW5jdGlvbih4KXtyZXR1cm4gbmV3IHRlKHgpfSxXKHRlLG5lKSx0ZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmltb2QoeC51''@;'; + put 'put ''c2hsbih0aGlzLnNoaWZ0KSl9LHRlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih4KXt2YXIgUD10aGlzLmltb2QoeC5tdWwodGhpcy5yaW52KSk7cmV0dXJuIFAucmVkPW51bGwsUH0sdGUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oeCxQKXtpZih4LmlzWmVybygpfHxQLmlzWmVy''@;'; + put 'put ''bygpKXJldHVybiB4LndvcmRzWzBdPTAseC5sZW5ndGg9MSx4O3ZhciBWPXguaW11bChQKSxUPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFM9Vi5pc3ViKFQpLml1c2hybih0aGlzLnNoaWZ0KSxGPVM7cmV0dXJuIFMu''@;'; + put 'put ''Y21wKHRoaXMubSk+PTA/Rj1TLmlzdWIodGhpcy5tKTpTLmNtcG4oMCk8MCYmKEY9Uy5pYWRkKHRoaXMubSkpLEYuX2ZvcmNlUmVkKHRoaXMpfSx0ZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHgsUCl7aWYoeC5pc1plcm8oKXx8UC5pc1plcm8oKSlyZXR1cm4gbmV3IE4oMCkuX2ZvcmNlUmVk''@;'; + put 'put ''KHRoaXMpO3ZhciBWPXgubXVsKFApLFQ9Vi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksUz1WLmlzdWIoVCkuaXVzaHJuKHRoaXMuc2hpZnQpLEY9UztyZXR1cm4gUy5jbXAodGhpcy5tKT49MD9GPVMuaXN1Yih0aGlzLm0p''@;'; + put 'put ''OlMuY21wbigwKTwwJiYoRj1TLmlhZGQodGhpcy5tKSksRi5fZm9yY2VSZWQodGhpcyl9LHRlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmltb2QoeC5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KFU9Wi5ubWQoVSksdGhpcyl9''@;'; + put 'put ''LDk3NDY6VT0+e2Z1bmN0aW9uIFEoWixpZSl7aWYoIVopdGhyb3cgbmV3IEVycm9yKGllfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfVUuZXhwb3J0cz1RLFEuZXF1YWw9ZnVuY3Rpb24oWixpZSxsZSl7aWYoWiE9aWUpdGhyb3cgbmV3IEVycm9yKGxlfHwiQXNzZXJ0aW9uIGZhaWxlZDogIitaKyIg''@;'; + put 'put ''IT0gIitpZSl9fSw0NTA0OihVLFEpPT57InVzZSBzdHJpY3QiO3ZhciBaPVE7ZnVuY3Rpb24gaWUoWSl7cmV0dXJuIDE9PT1ZLmxlbmd0aD8iMCIrWTpZfWZ1bmN0aW9uIGxlKFkpe2Zvcih2YXIgVz0iIixOPTA7TjxZLmxlbmd0aDtOKyspVys9aWUoWVtOXS50b1N0cmluZygxNikpO3JldHVy''@;'; + put 'put ''biBXfVoudG9BcnJheT1mdW5jdGlvbihZLFcpe2lmKEFycmF5LmlzQXJyYXkoWSkpcmV0dXJuIFkuc2xpY2UoKTtpZighWSlyZXR1cm5bXTt2YXIgTj1bXTtpZigic3RyaW5nIiE9dHlwZW9mIFkpe2Zvcih2YXIgZWU9MDtlZTxZLmxlbmd0aDtlZSsrKU5bZWVdPTB8WVtlZV07cmV0dXJuIE59''@;'; + put 'put ''aWYoImhleCI9PT1XKWZvcigoWT1ZLnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKFk9IjAiK1kpLGVlPTA7ZWU8WS5sZW5ndGg7ZWUrPTIpTi5wdXNoKHBhcnNlSW50KFlbZWVdK1lbZWUrMV0sMTYpKTtlbHNlIGZvcihlZT0wO2VlPFkubGVuZ3RoO2VlKyspe3Zh''@;'; + put 'put ''ciBxPVkuY2hhckNvZGVBdChlZSksSj1xPj44LHNlPTI1NSZxO0o/Ti5wdXNoKEosc2UpOk4ucHVzaChzZSl9cmV0dXJuIE59LFouemVybzI9aWUsWi50b0hleD1sZSxaLmVuY29kZT1mdW5jdGlvbihZLFcpe3JldHVybiJoZXgiPT09Vz9sZShZKTpZfX0sMTE3MTooVSxRLFopPT57dmFyIGll''@;'; + put 'put ''PVooNTEwOCk7VS5leHBvcnRzPWNlLGNlLk1pbmltYXRjaD1kZTt2YXIgbGU9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIFooMjUyMCl9Y2F0Y2goU2Upe319KCl8fHtzZXA6Ii8ifTtjZS5zZXA9bGUuc2VwO3ZhciBZPWNlLkdMT0JTVEFSPWRlLkdMT0JTVEFSPXt9LFc9WigzNjQ0KSxOPXsiISI6''@;'; + put 'put ''e29wZW46Iig/Oig/ISg/OiIsY2xvc2U6IikpW14vXSo/KSJ9LCI/Ijp7b3BlbjoiKD86IixjbG9zZToiKT8ifSwiKyI6e29wZW46Iig/OiIsY2xvc2U6IikrIn0sIioiOntvcGVuOiIoPzoiLGNsb3NlOiIpKiJ9LCJAIjp7b3BlbjoiKD86IixjbG9zZToiKSJ9fSxxPSJbXi9dKj8iLEo9Iigp''@;'; + put 'put ''Lip7fSs/W11eJFxcISIuc3BsaXQoIiIpLnJlZHVjZShmdW5jdGlvbihTZSxJZSl7cmV0dXJuIFNlW0llXT0hMCxTZX0se30pLHNlPS9cLysvO2Z1bmN0aW9uIG9lKFNlLEllKXtJZT1JZXx8e307dmFyIFRlPXt9O3JldHVybiBPYmplY3Qua2V5cyhTZSkuZm9yRWFjaChmdW5jdGlvbihFZSl7''@;'; + put 'put ''VGVbRWVdPVNlW0VlXX0pLE9iamVjdC5rZXlzKEllKS5mb3JFYWNoKGZ1bmN0aW9uKEVlKXtUZVtFZV09SWVbRWVdfSksVGV9ZnVuY3Rpb24gY2UoU2UsSWUsVGUpe3JldHVybiBBZShJZSksVGV8fChUZT17fSksISghVGUubm9jb21tZW50JiYiIyI9PT1JZS5jaGFyQXQoMCkpJiZuZXcgZGUo''@;'; + put 'put ''SWUsVGUpLm1hdGNoKFNlKX1mdW5jdGlvbiBkZShTZSxJZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgZGUpKXJldHVybiBuZXcgZGUoU2UsSWUpO0FlKFNlKSxJZXx8KEllPXt9KSxTZT1TZS50cmltKCksSWUuYWxsb3dXaW5kb3dzRXNjYXBlfHwiLyI9PT1sZS5zZXB8fChTZT1TZS5zcGxpdChs''@;'; + put 'put ''ZS5zZXApLmpvaW4oIi8iKSksdGhpcy5vcHRpb25zPUllLHRoaXMuc2V0PVtdLHRoaXMucGF0dGVybj1TZSx0aGlzLnJlZ2V4cD1udWxsLHRoaXMubmVnYXRlPSExLHRoaXMuY29tbWVudD0hMSx0aGlzLmVtcHR5PSExLHRoaXMucGFydGlhbD0hIUllLnBhcnRpYWwsdGhpcy5tYWtlKCl9ZnVu''@;'; + put 'put ''Y3Rpb24gdmUoU2UsSWUpe3JldHVybiBJZXx8KEllPXRoaXMgaW5zdGFuY2VvZiBkZT90aGlzLm9wdGlvbnM6e30pLEFlKFNlPXZvaWQgMD09PVNlP3RoaXMucGF0dGVybjpTZSksSWUubm9icmFjZXx8IS9ceyg/Oig/IVx7KS4pKlx9Ly50ZXN0KFNlKT9bU2VdOlcoU2UpfWNlLmZpbHRlcj1m''@;'; + put 'put ''dW5jdGlvbihTZSxJZSl7cmV0dXJuIEllPUllfHx7fSxmdW5jdGlvbihUZSxFZSxoZSl7cmV0dXJuIGNlKFRlLFNlLEllKX19LGNlLmRlZmF1bHRzPWZ1bmN0aW9uKFNlKXtpZighU2V8fCJvYmplY3QiIT10eXBlb2YgU2V8fCFPYmplY3Qua2V5cyhTZSkubGVuZ3RoKXJldHVybiBjZTt2YXIg''@;'; + put 'put ''SWU9Y2UsVGU9ZnVuY3Rpb24oRWUsaGUsTyl7cmV0dXJuIEllKEVlLGhlLG9lKFNlLE8pKX07cmV0dXJuKFRlLk1pbmltYXRjaD1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIG5ldyBJZS5NaW5pbWF0Y2goRWUsb2UoU2UsaGUpKX0pLmRlZmF1bHRzPWZ1bmN0aW9uKEVlKXtyZXR1cm4gSWUuZGVm''@;'; + put 'put ''YXVsdHMob2UoU2UsRWUpKS5NaW5pbWF0Y2h9LFRlLmZpbHRlcj1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIEllLmZpbHRlcihFZSxvZShTZSxoZSkpfSxUZS5kZWZhdWx0cz1mdW5jdGlvbihFZSl7cmV0dXJuIEllLmRlZmF1bHRzKG9lKFNlLEVlKSl9LFRlLm1ha2VSZT1mdW5jdGlvbihFZSxo''@;'; + put 'put ''ZSl7cmV0dXJuIEllLm1ha2VSZShFZSxvZShTZSxoZSkpfSxUZS5icmFjZUV4cGFuZD1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIEllLmJyYWNlRXhwYW5kKEVlLG9lKFNlLGhlKSl9LFRlLm1hdGNoPWZ1bmN0aW9uKEVlLGhlLE8pe3JldHVybiBJZS5tYXRjaChFZSxoZSxvZShTZSxPKSl9LFRl''@;'; + put 'put ''fSxkZS5kZWZhdWx0cz1mdW5jdGlvbihTZSl7cmV0dXJuIGNlLmRlZmF1bHRzKFNlKS5NaW5pbWF0Y2h9LGRlLnByb3RvdHlwZS5kZWJ1Zz1mdW5jdGlvbigpe30sZGUucHJvdG90eXBlLm1ha2U9ZnVuY3Rpb24oKXt2YXIgU2U9dGhpcy5wYXR0ZXJuLEllPXRoaXMub3B0aW9ucztpZihJZS5u''@;'; + put 'put ''b2NvbW1lbnR8fCIjIiE9PVNlLmNoYXJBdCgwKSlpZihTZSl7dGhpcy5wYXJzZU5lZ2F0ZSgpO3ZhciBUZT10aGlzLmdsb2JTZXQ9dGhpcy5icmFjZUV4cGFuZCgpO0llLmRlYnVnJiYodGhpcy5kZWJ1Zz1mdW5jdGlvbigpe2llLmVycm9yLmFwcGx5KGllLGFyZ3VtZW50cyl9KSx0aGlzLmRl''@;'; + put 'put ''YnVnKHRoaXMucGF0dGVybixUZSksVGU9dGhpcy5nbG9iUGFydHM9VGUubWFwKGZ1bmN0aW9uKEVlKXtyZXR1cm4gRWUuc3BsaXQoc2UpfSksdGhpcy5kZWJ1Zyh0aGlzLnBhdHRlcm4sVGUpLFRlPVRlLm1hcChmdW5jdGlvbihFZSxoZSxPKXtyZXR1cm4gRWUubWFwKHRoaXMucGFyc2UsdGhp''@;'; + put 'put ''cyl9LHRoaXMpLHRoaXMuZGVidWcodGhpcy5wYXR0ZXJuLFRlKSxUZT1UZS5maWx0ZXIoZnVuY3Rpb24oRWUpe3JldHVybi0xPT09RWUuaW5kZXhPZighMSl9KSx0aGlzLmRlYnVnKHRoaXMucGF0dGVybixUZSksdGhpcy5zZXQ9VGV9ZWxzZSB0aGlzLmVtcHR5PSEwO2Vsc2UgdGhpcy5jb21t''@;'; + put 'put ''ZW50PSEwfSxkZS5wcm90b3R5cGUucGFyc2VOZWdhdGU9ZnVuY3Rpb24oKXt2YXIgU2U9dGhpcy5wYXR0ZXJuLEllPSExLEVlPTA7aWYoIXRoaXMub3B0aW9ucy5ub25lZ2F0ZSl7Zm9yKHZhciBoZT0wLE89U2UubGVuZ3RoO2hlPE8mJiIhIj09PVNlLmNoYXJBdChoZSk7aGUrKylJZT0hSWUs''@;'; + put 'put ''RWUrKztFZSYmKHRoaXMucGF0dGVybj1TZS5zdWJzdHIoRWUpKSx0aGlzLm5lZ2F0ZT1JZX19LGNlLmJyYWNlRXhwYW5kPWZ1bmN0aW9uKFNlLEllKXtyZXR1cm4gdmUoU2UsSWUpfSxkZS5wcm90b3R5cGUuYnJhY2VFeHBhbmQ9dmU7dmFyIEFlPWZ1bmN0aW9uKFNlKXtpZigic3RyaW5nIiE9''@;'; + put 'put ''dHlwZW9mIFNlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgcGF0dGVybiIpO2lmKFNlLmxlbmd0aD42NTUzNil0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXR0ZXJuIGlzIHRvbyBsb25nIil9O2RlLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbihTZSxJZSl7QWUoU2UpO3ZhciBUZT10aGlz''@;'; + put 'put ''Lm9wdGlvbnM7aWYoIioqIj09PVNlKXtpZighVGUubm9nbG9ic3RhcilyZXR1cm4gWTtTZT0iKiJ9aWYoIiI9PT1TZSlyZXR1cm4iIjt2YXIgRWUsaGU9IiIsTz0hIVRlLm5vY2FzZSx6PSExLG5lPVtdLHRlPVtdLHg9ITEsUD0tMSxWPS0xLFQ9Ii4iPT09U2UuY2hhckF0KDApPyIiOlRlLmRv''@;'; + put 'put ''dD8iKD8hKD86XnxcXC8pXFwuezEsMn0oPzokfFxcLykpIjoiKD8hXFwuKSIsUz10aGlzO2Z1bmN0aW9uIEYoKXtpZihFZSl7c3dpdGNoKEVlKXtjYXNlIioiOmhlKz1xLE89ITA7YnJlYWs7Y2FzZSI/IjpoZSs9IlteL10iLE89ITA7YnJlYWs7ZGVmYXVsdDpoZSs9IlxcIitFZX1TLmRlYnVn''@;'; + put 'put ''KCJjbGVhclN0YXRlQ2hhciAlaiAlaiIsRWUsaGUpLEVlPSExfX1mb3IodmFyIHllLENlPTAsRGU9U2UubGVuZ3RoO0NlPERlJiYoeWU9U2UuY2hhckF0KENlKSk7Q2UrKylpZih0aGlzLmRlYnVnKCIlc1x0JXMgJXMgJWoiLFNlLENlLGhlLHllKSx6JiZKW3llXSloZSs9IlxcIit5ZSx6PSEx''@;'; + put 'put ''O2Vsc2Ugc3dpdGNoKHllKXtjYXNlIi8iOnJldHVybiExO2Nhc2UiXFwiOkYoKSx6PSEwO2NvbnRpbnVlO2Nhc2UiPyI6Y2FzZSIqIjpjYXNlIisiOmNhc2UiQCI6Y2FzZSIhIjppZih0aGlzLmRlYnVnKCIlc1x0JXMgJXMgJWogPC0tIHN0YXRlQ2hhciIsU2UsQ2UsaGUseWUpLHgpe3RoaXMu''@;'; + put 'put ''ZGVidWcoIiAgaW4gY2xhc3MiKSwiISI9PT15ZSYmQ2U9PT1WKzEmJih5ZT0iXiIpLGhlKz15ZTtjb250aW51ZX1TLmRlYnVnKCJjYWxsIGNsZWFyU3RhdGVDaGFyICVqIixFZSksRigpLEVlPXllLFRlLm5vZXh0JiZGKCk7Y29udGludWU7Y2FzZSIoIjppZih4KXtoZSs9IigiO2NvbnRpbnVl''@;'; + put 'put ''fWlmKCFFZSl7aGUrPSJcXCgiO2NvbnRpbnVlfW5lLnB1c2goe3R5cGU6RWUsc3RhcnQ6Q2UtMSxyZVN0YXJ0OmhlLmxlbmd0aCxvcGVuOk5bRWVdLm9wZW4sY2xvc2U6TltFZV0uY2xvc2V9KSx0aGlzLmRlYnVnKCJwbFR5cGUgJWogJWoiLEVlLGhlKz0iISI9PT1FZT8iKD86KD8hKD86Ijoi''@;'; + put 'put ''KD86IiksRWU9ITE7Y29udGludWU7Y2FzZSIpIjppZih4fHwhbmUubGVuZ3RoKXtoZSs9IlxcKSI7Y29udGludWV9RigpLE89ITA7dmFyIFBlPW5lLnBvcCgpO2hlKz1QZS5jbG9zZSwiISI9PT1QZS50eXBlJiZ0ZS5wdXNoKFBlKSxQZS5yZUVuZD1oZS5sZW5ndGg7Y29udGludWU7Y2FzZSJ8''@;'; + put 'put ''IjppZih4fHwhbmUubGVuZ3RofHx6KXtoZSs9IlxcfCIsej0hMTtjb250aW51ZX1GKCksaGUrPSJ8Ijtjb250aW51ZTtjYXNlIlsiOmlmKEYoKSx4KXtoZSs9IlxcIit5ZTtjb250aW51ZX14PSEwLFY9Q2UsUD1oZS5sZW5ndGgsaGUrPXllO2NvbnRpbnVlO2Nhc2UiXSI6aWYoQ2U9PT1WKzF8''@;'; + put 'put ''fCF4KXtoZSs9IlxcIit5ZSx6PSExO2NvbnRpbnVlfXZhciBRZT1TZS5zdWJzdHJpbmcoVisxLENlKTt0cnl7UmVnRXhwKCJbIitRZSsiXSIpfWNhdGNoKGZ0KXt2YXIgJGU9dGhpcy5wYXJzZShRZSxrZSk7aGU9aGUuc3Vic3RyKDAsUCkrIlxcWyIrJGVbMF0rIlxcXSIsTz1PfHwkZVsxXSx4''@;'; + put 'put ''PSExO2NvbnRpbnVlfU89ITAseD0hMSxoZSs9eWU7Y29udGludWU7ZGVmYXVsdDpGKCksej96PSExOiFKW3llXXx8Il4iPT09eWUmJnh8fChoZSs9IlxcIiksaGUrPXllfWZvcih4JiYoUWU9U2Uuc3Vic3RyKFYrMSksJGU9dGhpcy5wYXJzZShRZSxrZSksaGU9aGUuc3Vic3RyKDAsUCkrIlxc''@;'; + put 'put ''WyIrJGVbMF0sTz1PfHwkZVsxXSksUGU9bmUucG9wKCk7UGU7UGU9bmUucG9wKCkpe3ZhciBndD1oZS5zbGljZShQZS5yZVN0YXJ0K1BlLm9wZW4ubGVuZ3RoKTt0aGlzLmRlYnVnKCJzZXR0aW5nIHRhaWwiLGhlLFBlKSxndD1ndC5yZXBsYWNlKC8oKD86XFx7Mn0pezAsNjR9KShcXD8pXHwv''@;'; + put 'put ''ZyxmdW5jdGlvbihmdCxIdCxHZSl7cmV0dXJuIEdlfHwoR2U9IlxcIiksSHQrSHQrR2UrInwifSksdGhpcy5kZWJ1ZygidGFpbD0lalxuICAgJXMiLGd0LGd0LFBlLGhlKTt2YXIgd3Q9IioiPT09UGUudHlwZT9xOiI/Ij09PVBlLnR5cGU/IlteL10iOiJcXCIrUGUudHlwZTtPPSEwLGhlPWhl''@;'; + put 'put ''LnNsaWNlKDAsUGUucmVTdGFydCkrd3QrIlxcKCIrZ3R9RigpLHomJihoZSs9IlxcXFwiKTt2YXIgdnQ9ITE7c3dpdGNoKGhlLmNoYXJBdCgwKSl7Y2FzZSJbIjpjYXNlIi4iOmNhc2UiKCI6dnQ9ITB9Zm9yKHZhciBBdD10ZS5sZW5ndGgtMTtBdD4tMTtBdC0tKXt2YXIgbXQ9dGVbQXRdLGh0''@;'; + put 'put ''PWhlLnNsaWNlKDAsbXQucmVTdGFydCksQnQ9aGUuc2xpY2UobXQucmVTdGFydCxtdC5yZUVuZC04KSxvbj1oZS5zbGljZShtdC5yZUVuZC04LG10LnJlRW5kKSxfdD1oZS5zbGljZShtdC5yZUVuZCk7b24rPV90O3ZhciB0dD1odC5zcGxpdCgiKCIpLmxlbmd0aC0xLGV0PV90O2ZvcihDZT0w''@;'; + put 'put ''O0NlPHR0O0NlKyspZXQ9ZXQucmVwbGFjZSgvXClbKyo/XT8vLCIiKTt2YXIgYXQ9IiI7IiI9PT0oX3Q9ZXQpJiZJZSE9PWtlJiYoYXQ9IiQiKSxoZT1odCtCdCtfdCthdCtvbn1pZigiIiE9PWhlJiZPJiYoaGU9Iig/PS4pIitoZSksdnQmJihoZT1UK2hlKSxJZT09PWtlKXJldHVybltoZSxP''@;'; + put 'put ''XTtpZighTylyZXR1cm4gU2UucmVwbGFjZSgvXFwoLikvZywiJDEiKTt2YXIgTHQ9VGUubm9jYXNlPyJpIjoiIjt0cnl7dmFyIEN0PW5ldyBSZWdFeHAoIl4iK2hlKyIkIixMdCl9Y2F0Y2goZnQpe3JldHVybiBuZXcgUmVnRXhwKCIkLiIpfXJldHVybiBDdC5fZ2xvYj1TZSxDdC5fc3JjPWhl''@;'; + put 'put ''LEN0fTt2YXIga2U9e307Y2UubWFrZVJlPWZ1bmN0aW9uKFNlLEllKXtyZXR1cm4gbmV3IGRlKFNlLEllfHx7fSkubWFrZVJlKCl9LGRlLnByb3RvdHlwZS5tYWtlUmU9ZnVuY3Rpb24oKXtpZih0aGlzLnJlZ2V4cHx8ITE9PT10aGlzLnJlZ2V4cClyZXR1cm4gdGhpcy5yZWdleHA7dmFyIFNl''@;'; + put 'put ''PXRoaXMuc2V0O2lmKCFTZS5sZW5ndGgpcmV0dXJuIHRoaXMucmVnZXhwPSExLHRoaXMucmVnZXhwO3ZhciBJZT10aGlzLm9wdGlvbnMsVGU9SWUubm9nbG9ic3Rhcj9xOkllLmRvdD8iKD86KD8hKD86XFwvfF4pKD86XFwuezEsMn0pKCR8XFwvKSkuKSo/IjoiKD86KD8hKD86XFwvfF4pXFwu''@;'; + put 'put ''KS4pKj8iLEVlPUllLm5vY2FzZT8iaSI6IiIsaGU9U2UubWFwKGZ1bmN0aW9uKE8pe3JldHVybiBPLm1hcChmdW5jdGlvbih6KXtyZXR1cm4gej09PVk/VGU6InN0cmluZyI9PXR5cGVvZiB6P3oucmVwbGFjZSgvWy1bXF17fSgpKis/LixcXF4kfCNcc10vZywiXFwkJiIpOnouX3NyY30pLmpv''@;'; + put 'put ''aW4oIlxcLyIpfSkuam9pbigifCIpO2hlPSJeKD86IitoZSsiKSQiLHRoaXMubmVnYXRlJiYoaGU9Il4oPyEiK2hlKyIpLiokIik7dHJ5e3RoaXMucmVnZXhwPW5ldyBSZWdFeHAoaGUsRWUpfWNhdGNoKE8pe3RoaXMucmVnZXhwPSExfXJldHVybiB0aGlzLnJlZ2V4cH0sY2UubWF0Y2g9ZnVu''@;'; + put 'put ''Y3Rpb24oU2UsSWUsVGUpe3ZhciBFZT1uZXcgZGUoSWUsVGU9VGV8fHt9KTtyZXR1cm4gU2U9U2UuZmlsdGVyKGZ1bmN0aW9uKGhlKXtyZXR1cm4gRWUubWF0Y2goaGUpfSksRWUub3B0aW9ucy5ub251bGwmJiFTZS5sZW5ndGgmJlNlLnB1c2goSWUpLFNlfSxkZS5wcm90b3R5cGUubWF0Y2g9''@;'; + put 'put ''ZnVuY3Rpb24oU2UsSWUpe2lmKHZvaWQgMD09PUllJiYoSWU9dGhpcy5wYXJ0aWFsKSx0aGlzLmRlYnVnKCJtYXRjaCIsU2UsdGhpcy5wYXR0ZXJuKSx0aGlzLmNvbW1lbnQpcmV0dXJuITE7aWYodGhpcy5lbXB0eSlyZXR1cm4iIj09PVNlO2lmKCIvIj09PVNlJiZJZSlyZXR1cm4hMDt2YXIg''@;'; + put 'put ''VGU9dGhpcy5vcHRpb25zOyIvIiE9PWxlLnNlcCYmKFNlPVNlLnNwbGl0KGxlLnNlcCkuam9pbigiLyIpKSxTZT1TZS5zcGxpdChzZSksdGhpcy5kZWJ1Zyh0aGlzLnBhdHRlcm4sInNwbGl0IixTZSk7dmFyIEVlLGhlLE89dGhpcy5zZXQ7Zm9yKHRoaXMuZGVidWcodGhpcy5wYXR0ZXJuLCJz''@;'; + put 'put ''ZXQiLE8pLGhlPVNlLmxlbmd0aC0xO2hlPj0wJiYhKEVlPVNlW2hlXSk7aGUtLSk7Zm9yKGhlPTA7aGU8Ty5sZW5ndGg7aGUrKyl7dmFyIHo9T1toZV0sbmU9U2U7aWYoVGUubWF0Y2hCYXNlJiYxPT09ei5sZW5ndGgmJihuZT1bRWVdKSx0aGlzLm1hdGNoT25lKG5lLHosSWUpKXJldHVybiEh''@;'; + put 'put ''VGUuZmxpcE5lZ2F0ZXx8IXRoaXMubmVnYXRlfXJldHVybiFUZS5mbGlwTmVnYXRlJiZ0aGlzLm5lZ2F0ZX0sZGUucHJvdG90eXBlLm1hdGNoT25lPWZ1bmN0aW9uKFNlLEllLFRlKXt2YXIgRWU9dGhpcy5vcHRpb25zO3RoaXMuZGVidWcoIm1hdGNoT25lIix7dGhpczp0aGlzLGZpbGU6U2Us''@;'; + put 'put ''cGF0dGVybjpJZX0pLHRoaXMuZGVidWcoIm1hdGNoT25lIixTZS5sZW5ndGgsSWUubGVuZ3RoKTtmb3IodmFyIGhlPTAsTz0wLHo9U2UubGVuZ3RoLG5lPUllLmxlbmd0aDtoZTx6JiZPPG5lO2hlKyssTysrKXt0aGlzLmRlYnVnKCJtYXRjaE9uZSBsb29wIik7dmFyIHRlLHg9SWVbT10sUD1T''@;'; + put 'put ''ZVtoZV07aWYodGhpcy5kZWJ1ZyhJZSx4LFApLCExPT09eClyZXR1cm4hMTtpZih4PT09WSl7dGhpcy5kZWJ1ZygiR0xPQlNUQVIiLFtJZSx4LFBdKTt2YXIgVj1oZSxUPU8rMTtpZihUPT09bmUpe2Zvcih0aGlzLmRlYnVnKCIqKiBhdCB0aGUgZW5kIik7aGU8ejtoZSsrKWlmKCIuIj09PVNl''@;'; + put 'put ''W2hlXXx8Ii4uIj09PVNlW2hlXXx8IUVlLmRvdCYmIi4iPT09U2VbaGVdLmNoYXJBdCgwKSlyZXR1cm4hMTtyZXR1cm4hMH1mb3IoO1Y8ejspe3ZhciBTPVNlW1ZdO2lmKHRoaXMuZGVidWcoIlxuZ2xvYnN0YXIgd2hpbGUiLFNlLFYsSWUsVCxTKSx0aGlzLm1hdGNoT25lKFNlLnNsaWNlKFYp''@;'; + put 'put ''LEllLnNsaWNlKFQpLFRlKSlyZXR1cm4gdGhpcy5kZWJ1ZygiZ2xvYnN0YXIgZm91bmQgbWF0Y2ghIixWLHosUyksITA7aWYoIi4iPT09U3x8Ii4uIj09PVN8fCFFZS5kb3QmJiIuIj09PVMuY2hhckF0KDApKXt0aGlzLmRlYnVnKCJkb3QgZGV0ZWN0ZWQhIixTZSxWLEllLFQpO2JyZWFrfXRo''@;'; + put 'put ''aXMuZGVidWcoImdsb2JzdGFyIHN3YWxsb3cgYSBzZWdtZW50LCBhbmQgY29udGludWUiKSxWKyt9cmV0dXJuISghVGV8fCh0aGlzLmRlYnVnKCJcbj4+PiBubyBtYXRjaCwgcGFydGlhbD8iLFNlLFYsSWUsVCksViE9PXopKX1pZigic3RyaW5nIj09dHlwZW9mIHg/dGhpcy5kZWJ1Zygic3Ry''@;'; + put 'put ''aW5nIG1hdGNoIix4LFAsdGU9UD09PXgpOih0ZT1QLm1hdGNoKHgpLHRoaXMuZGVidWcoInBhdHRlcm4gbWF0Y2giLHgsUCx0ZSkpLCF0ZSlyZXR1cm4hMX1pZihoZT09PXomJk89PT1uZSlyZXR1cm4hMDtpZihoZT09PXopcmV0dXJuIFRlO2lmKE89PT1uZSlyZXR1cm4gaGU9PT16LTEmJiIi''@;'; + put 'put ''PT09U2VbaGVdO3Rocm93IG5ldyBFcnJvcigid3RmPyIpfX0sNDI0NDpVPT57InVzZSBzdHJpY3QiO3ZhciBRPWZ1bmN0aW9uKFope3JldHVybiBaIT1afTtVLmV4cG9ydHM9ZnVuY3Rpb24oWixpZSl7cmV0dXJuIDA9PT1aJiYwPT09aWU/MS9aPT0xL2llOlo9PT1pZXx8ISghUShaKXx8IVEo''@;'; + put 'put ''aWUpKX19LDYwOTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQyODkpLGxlPVooNTU1OSksWT1aKDQyNDQpLFc9Wig1NjI0KSxOPVooMjI4MSksZWU9bGUoVygpLE9iamVjdCk7aWUoZWUse2dldFBvbHlmaWxsOlcsaW1wbGVtZW50YXRpb246WSxzaGltOk59KSxVLmV4cG9ydHM9''@;'; + put 'put ''ZWV9LDU2MjQ6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MjQ0KTtVLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczppZX19LDIyODE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig1NjI0KSxsZT1a''@;'; + put 'put ''KDQyODkpO1UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBZPWllKCk7cmV0dXJuIGxlKE9iamVjdCx7aXM6WX0se2lzOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5pcyE9PVl9fSksWX19LDg5ODc6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU7aWYoIU9iamVjdC5rZXlzKXt2YXIgbGU9''@;'; + put 'put ''T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxZPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsVz1aKDE0MTQpLE49T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxlZT0hTi5jYWxsKHt0b1N0cmluZzpudWxsfSwidG9TdHJpbmciKSxxPU4uY2FsbChmdW5jdGlv''@;'; + put 'put ''bigpe30sInByb3RvdHlwZSIpLEo9WyJ0b1N0cmluZyIsInRvTG9jYWxlU3RyaW5nIiwidmFsdWVPZiIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiY29uc3RydWN0b3IiXSxzZT1mdW5jdGlvbihkZSl7dmFyIHZlPWRlLmNvbnN0cnVj''@;'; + put 'put ''dG9yO3JldHVybiB2ZSYmdmUucHJvdG90eXBlPT09ZGV9LG9lPXskYXBwbGljYXRpb25DYWNoZTohMCwkY29uc29sZTohMCwkZXh0ZXJuYWw6ITAsJGZyYW1lOiEwLCRmcmFtZUVsZW1lbnQ6ITAsJGZyYW1lczohMCwkaW5uZXJIZWlnaHQ6ITAsJGlubmVyV2lkdGg6ITAsJG9ubW96ZnVsbHNj''@;'; + put 'put ''cmVlbmNoYW5nZTohMCwkb25tb3pmdWxsc2NyZWVuZXJyb3I6ITAsJG91dGVySGVpZ2h0OiEwLCRvdXRlcldpZHRoOiEwLCRwYWdlWE9mZnNldDohMCwkcGFnZVlPZmZzZXQ6ITAsJHBhcmVudDohMCwkc2Nyb2xsTGVmdDohMCwkc2Nyb2xsVG9wOiEwLCRzY3JvbGxYOiEwLCRzY3JvbGxZOiEw''@;'; + put 'put ''LCRzZWxmOiEwLCR3ZWJraXRJbmRleGVkREI6ITAsJHdlYmtpdFN0b3JhZ2VJbmZvOiEwLCR3aW5kb3c6ITB9LGNlPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuITE7Zm9yKHZhciBkZSBpbiB3aW5kb3cpdHJ5e2lmKCFvZVsiJCIrZGVdJiZsZS5jYWxs''@;'; + put 'put ''KHdpbmRvdyxkZSkmJm51bGwhPT13aW5kb3dbZGVdJiYib2JqZWN0Ij09dHlwZW9mIHdpbmRvd1tkZV0pdHJ5e3NlKHdpbmRvd1tkZV0pfWNhdGNoKHZlKXtyZXR1cm4hMH19Y2F0Y2godmUpe3JldHVybiEwfXJldHVybiExfSgpO2llPWZ1bmN0aW9uKGRlKXt2YXIgdmU9bnVsbCE9PWRlJiYi''@;'; + put 'put ''b2JqZWN0Ij09dHlwZW9mIGRlLEFlPSJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1ZLmNhbGwoZGUpLGtlPVcoZGUpLFNlPXZlJiYiW29iamVjdCBTdHJpbmddIj09PVkuY2FsbChkZSksSWU9W107aWYoIXZlJiYhQWUmJiFrZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qua2V5cyBjYWxsZWQg''@;'; + put 'put ''b24gYSBub24tb2JqZWN0Iik7dmFyIFRlPXEmJkFlO2lmKFNlJiZkZS5sZW5ndGg+MCYmIWxlLmNhbGwoZGUsMCkpZm9yKHZhciBFZT0wO0VlPGRlLmxlbmd0aDsrK0VlKUllLnB1c2goU3RyaW5nKEVlKSk7aWYoa2UmJmRlLmxlbmd0aD4wKWZvcih2YXIgaGU9MDtoZTxkZS5sZW5ndGg7Kyto''@;'; + put 'put ''ZSlJZS5wdXNoKFN0cmluZyhoZSkpO2Vsc2UgZm9yKHZhciBPIGluIGRlKVRlJiYicHJvdG90eXBlIj09PU98fCFsZS5jYWxsKGRlLE8pfHxJZS5wdXNoKFN0cmluZyhPKSk7aWYoZWUpZm9yKHZhciB6PWZ1bmN0aW9uKHRlKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8IWNlKXJl''@;'; + put 'put ''dHVybiBzZSh0ZSk7dHJ5e3JldHVybiBzZSh0ZSl9Y2F0Y2goeCl7cmV0dXJuITF9fShkZSksbmU9MDtuZTxKLmxlbmd0aDsrK25lKXomJiJjb25zdHJ1Y3RvciI9PT1KW25lXXx8IWxlLmNhbGwoZGUsSltuZV0pfHxJZS5wdXNoKEpbbmVdKTtyZXR1cm4gSWV9fVUuZXhwb3J0cz1pZX0sMjIx''@;'; + put 'put ''NTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1BcnJheS5wcm90b3R5cGUuc2xpY2UsbGU9WigxNDE0KSxZPU9iamVjdC5rZXlzLFc9WT9mdW5jdGlvbihlZSl7cmV0dXJuIFkoZWUpfTpaKDg5ODcpLE49T2JqZWN0LmtleXM7Vy5zaGltPWZ1bmN0aW9uKCl7aWYoT2JqZWN0LmtleXMp''@;'; + put 'put ''e3ZhciBlZT1mdW5jdGlvbigpe3ZhciBxPU9iamVjdC5rZXlzKGFyZ3VtZW50cyk7cmV0dXJuIHEmJnEubGVuZ3RoPT09YXJndW1lbnRzLmxlbmd0aH0oMSwyKTtlZXx8KE9iamVjdC5rZXlzPWZ1bmN0aW9uKHEpe3JldHVybiBsZShxKT9OKGllLmNhbGwocSkpOk4ocSl9KX1lbHNlIE9iamVj''@;'; + put 'put ''dC5rZXlzPVc7cmV0dXJuIE9iamVjdC5rZXlzfHxXfSxVLmV4cG9ydHM9V30sMTQxNDpVPT57InVzZSBzdHJpY3QiO3ZhciBRPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7VS5leHBvcnRzPWZ1bmN0aW9uKFope3ZhciBpZT1RLmNhbGwoWiksbGU9IltvYmplY3QgQXJndW1lbnRzXSI9PT1p''@;'; + put 'put ''ZTtyZXR1cm4gbGV8fChsZT0iW29iamVjdCBBcnJheV0iIT09aWUmJm51bGwhPT1aJiYib2JqZWN0Ij09dHlwZW9mIFomJiJudW1iZXIiPT10eXBlb2YgWi5sZW5ndGgmJloubGVuZ3RoPj0wJiYiW29iamVjdCBGdW5jdGlvbl0iPT09US5jYWxsKFouY2FsbGVlKSksbGV9fSw3Nzg6KFUsUSxa''@;'; + put 'put ''KT0+e3ZhciBpZT1aKDI0NzkpO2Z1bmN0aW9uIGxlKFcpe3ZhciBOPWZ1bmN0aW9uKCl7cmV0dXJuIE4uY2FsbGVkP04udmFsdWU6KE4uY2FsbGVkPSEwLE4udmFsdWU9Vy5hcHBseSh0aGlzLGFyZ3VtZW50cykpfTtyZXR1cm4gTi5jYWxsZWQ9ITEsTn1mdW5jdGlvbiBZKFcpe3ZhciBOPWZ1''@;'; + put 'put ''bmN0aW9uKCl7aWYoTi5jYWxsZWQpdGhyb3cgbmV3IEVycm9yKE4ub25jZUVycm9yKTtyZXR1cm4gTi5jYWxsZWQ9ITAsTi52YWx1ZT1XLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07cmV0dXJuIE4ub25jZUVycm9yPShXLm5hbWV8fCJGdW5jdGlvbiB3cmFwcGVkIHdpdGggYG9uY2VgIikrIiBz''@;'; + put 'put ''aG91bGRuJ3QgYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlIixOLmNhbGxlZD0hMSxOfVUuZXhwb3J0cz1pZShsZSksVS5leHBvcnRzLnN0cmljdD1pZShZKSxsZS5wcm90bz1sZShmdW5jdGlvbigpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShGdW5jdGlvbi5wcm90b3R5cGUsIm9uY2UiLHt2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzKX0sY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEZ1bmN0aW9uLnByb3RvdHlwZSwib25jZVN0cmljdCIse3ZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9LDc0MzU6KFUs''@;'; + put 'put ''USk9PntRLmVuZGlhbm5lc3M9ZnVuY3Rpb24oKXtyZXR1cm4iTEUifSxRLmhvc3RuYW1lPWZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBsb2NhdGlvbj9sb2NhdGlvbi5ob3N0bmFtZToiIn0sUS5sb2FkYXZnPWZ1bmN0aW9uKCl7cmV0dXJuW119LFEudXB0aW1lPWZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIDB9LFEuZnJlZW1lbT1mdW5jdGlvbigpe3JldHVybiBOdW1iZXIuTUFYX1ZBTFVFfSxRLnRvdGFsbWVtPWZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlci5NQVhfVkFMVUV9LFEuY3B1cz1mdW5jdGlvbigpe3JldHVybltdfSxRLnR5cGU9ZnVuY3Rpb24oKXtyZXR1cm4iQnJv''@;'; + put 'put ''d3NlciJ9LFEucmVsZWFzZT1mdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yP25hdmlnYXRvci5hcHBWZXJzaW9uOiIifSxRLm5ldHdvcmtJbnRlcmZhY2VzPVEuZ2V0TmV0d29ya0ludGVyZmFjZXM9ZnVuY3Rpb24oKXtyZXR1cm57fX0sUS5hcmNoPWZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuImphdmFzY3JpcHQifSxRLnBsYXRmb3JtPWZ1bmN0aW9uKCl7cmV0dXJuImJyb3dzZXIifSxRLnRtcGRpcj1RLnRtcERpcj1mdW5jdGlvbigpe3JldHVybiIvdG1wIn0sUS5FT0w9IlxuIixRLmhvbWVkaXI9ZnVuY3Rpb24oKXtyZXR1cm4iLyJ9fSwyODE4OihVLFEsWik9''@;'; + put 'put ''PnsidXNlIHN0cmljdCI7dmFyIGllPVooOTgwOSk7US5jZXJ0aWZpY2F0ZT1aKDE5MzQpO3ZhciBsZT1pZS5kZWZpbmUoIlJTQVByaXZhdGVLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgibW9kdWx1cyIpLmludCgpLHRo''@;'; + put 'put ''aXMua2V5KCJwdWJsaWNFeHBvbmVudCIpLmludCgpLHRoaXMua2V5KCJwcml2YXRlRXhwb25lbnQiKS5pbnQoKSx0aGlzLmtleSgicHJpbWUxIikuaW50KCksdGhpcy5rZXkoInByaW1lMiIpLmludCgpLHRoaXMua2V5KCJleHBvbmVudDEiKS5pbnQoKSx0aGlzLmtleSgiZXhwb25lbnQyIiku''@;'; + put 'put ''aW50KCksdGhpcy5rZXkoImNvZWZmaWNpZW50IikuaW50KCkpfSk7US5SU0FQcml2YXRlS2V5PWxlO3ZhciBZPWllLmRlZmluZSgiUlNBUHVibGljS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJtb2R1bHVzIikuaW50KCksdGhpcy5rZXkoInB1YmxpY0V4cG9uZW50''@;'; + put 'put ''IikuaW50KCkpfSk7US5SU0FQdWJsaWNLZXk9WTt2YXIgVz1pZS5kZWZpbmUoIlN1YmplY3RQdWJsaWNLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UoTiksdGhpcy5rZXkoInN1YmplY3RQdWJsaWNLZXkiKS5iaXRzdHIoKSl9KTtR''@;'; + put 'put ''LlB1YmxpY0tleT1XO3ZhciBOPWllLmRlZmluZSgiQWxnb3JpdGhtSWRlbnRpZmllciIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikub2JqaWQoKSx0aGlzLmtleSgibm9uZSIpLm51bGxfKCkub3B0aW9uYWwoKSx0aGlzLmtleSgiY3VydmUiKS5vYmpp''@;'; + put 'put ''ZCgpLm9wdGlvbmFsKCksdGhpcy5rZXkoInBhcmFtcyIpLnNlcSgpLm9iaih0aGlzLmtleSgicCIpLmludCgpLHRoaXMua2V5KCJxIikuaW50KCksdGhpcy5rZXkoImciKS5pbnQoKSkub3B0aW9uYWwoKSl9KSxlZT1pZS5kZWZpbmUoIlByaXZhdGVLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMu''@;'; + put 'put ''c2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoImFsZ29yaXRobSIpLnVzZShOKSx0aGlzLmtleSgic3ViamVjdFByaXZhdGVLZXkiKS5vY3RzdHIoKSl9KTtRLlByaXZhdGVLZXk9ZWU7dmFyIHE9aWUuZGVmaW5lKCJFbmNyeXB0ZWRQcml2YXRlS2V5SW5mbyIs''@;'; + put 'put ''ZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikuc2VxKCkub2JqKHRoaXMua2V5KCJpZCIpLm9iamlkKCksdGhpcy5rZXkoImRlY3J5cHQiKS5zZXEoKS5vYmoodGhpcy5rZXkoImtkZSIpLnNlcSgpLm9iaih0aGlzLmtleSgiaWQiKS5vYmppZCgpLHRoaXMu''@;'; + put 'put ''a2V5KCJrZGVwYXJhbXMiKS5zZXEoKS5vYmoodGhpcy5rZXkoInNhbHQiKS5vY3RzdHIoKSx0aGlzLmtleSgiaXRlcnMiKS5pbnQoKSkpLHRoaXMua2V5KCJjaXBoZXIiKS5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ28iKS5vYmppZCgpLHRoaXMua2V5KCJpdiIpLm9jdHN0cigpKSkpLHRoaXMu''@;'; + put 'put ''a2V5KCJzdWJqZWN0UHJpdmF0ZUtleSIpLm9jdHN0cigpKX0pO1EuRW5jcnlwdGVkUHJpdmF0ZUtleT1xO3ZhciBKPWllLmRlZmluZSgiRFNBUHJpdmF0ZUtleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJwIikuaW50KCks''@;'; + put 'put ''dGhpcy5rZXkoInEiKS5pbnQoKSx0aGlzLmtleSgiZyIpLmludCgpLHRoaXMua2V5KCJwdWJfa2V5IikuaW50KCksdGhpcy5rZXkoInByaXZfa2V5IikuaW50KCkpfSk7US5EU0FQcml2YXRlS2V5PUosUS5EU0FwYXJhbT1pZS5kZWZpbmUoIkRTQXBhcmFtIixmdW5jdGlvbigpe3RoaXMuaW50''@;'; + put 'put ''KCl9KTt2YXIgc2U9aWUuZGVmaW5lKCJFQ1ByaXZhdGVLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgicHJpdmF0ZUtleSIpLm9jdHN0cigpLHRoaXMua2V5KCJwYXJhbWV0ZXJzIikub3B0aW9uYWwoKS5leHBsaWNpdCgw''@;'; + put 'put ''KS51c2Uob2UpLHRoaXMua2V5KCJwdWJsaWNLZXkiKS5vcHRpb25hbCgpLmV4cGxpY2l0KDEpLmJpdHN0cigpKX0pO1EuRUNQcml2YXRlS2V5PXNlO3ZhciBvZT1pZS5kZWZpbmUoIkVDUGFyYW1ldGVycyIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7bmFtZWRDdXJ2ZTp0aGlzLm9iamlkKCl9''@;'; + put 'put ''KX0pO1Euc2lnbmF0dXJlPWllLmRlZmluZSgic2lnbmF0dXJlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJyIikuaW50KCksdGhpcy5rZXkoInMiKS5pbnQoKSl9KX0sMTkzNDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDk4MDkpLGxlPWllLmRlZmluZSgi''@;'; + put 'put ''VGltZSIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7dXRjVGltZTp0aGlzLnV0Y3RpbWUoKSxnZW5lcmFsVGltZTp0aGlzLmdlbnRpbWUoKX0pfSksWT1pZS5kZWZpbmUoIkF0dHJpYnV0ZVR5cGVWYWx1ZSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidHlwZSIpLm9iamlk''@;'; + put 'put ''KCksdGhpcy5rZXkoInZhbHVlIikuYW55KCkpfSksVz1pZS5kZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLm9iamlkKCksdGhpcy5rZXkoInBhcmFtZXRlcnMiKS5vcHRpb25hbCgpLHRoaXMua2V5KCJj''@;'; + put 'put ''dXJ2ZSIpLm9iamlkKCkub3B0aW9uYWwoKSl9KSxOPWllLmRlZmluZSgiU3ViamVjdFB1YmxpY0tleUluZm8iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLnVzZShXKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleSIpLmJpdHN0cigpKX0pLGVlPWll''@;'; + put 'put ''LmRlZmluZSgiUmVsYXRpdmVEaXN0aW5ndWlzaGVkTmFtZSIsZnVuY3Rpb24oKXt0aGlzLnNldG9mKFkpfSkscT1pZS5kZWZpbmUoIlJETlNlcXVlbmNlIixmdW5jdGlvbigpe3RoaXMuc2Vxb2YoZWUpfSksSj1pZS5kZWZpbmUoIk5hbWUiLGZ1bmN0aW9uKCl7dGhpcy5jaG9pY2Uoe3JkblNl''@;'; + put 'put ''cXVlbmNlOnRoaXMudXNlKHEpfSl9KSxzZT1pZS5kZWZpbmUoIlZhbGlkaXR5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJub3RCZWZvcmUiKS51c2UobGUpLHRoaXMua2V5KCJub3RBZnRlciIpLnVzZShsZSkpfSksb2U9aWUuZGVmaW5lKCJFeHRlbnNpb24iLGZ1bmN0''@;'; + put 'put ''aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImV4dG5JRCIpLm9iamlkKCksdGhpcy5rZXkoImNyaXRpY2FsIikuYm9vbCgpLmRlZighMSksdGhpcy5rZXkoImV4dG5WYWx1ZSIpLm9jdHN0cigpKX0pLGNlPWllLmRlZmluZSgiVEJTQ2VydGlmaWNhdGUiLGZ1bmN0aW9uKCl7dGhpcy5z''@;'; + put 'put ''ZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5leHBsaWNpdCgwKS5pbnQoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJzZXJpYWxOdW1iZXIiKS5pbnQoKSx0aGlzLmtleSgic2lnbmF0dXJlIikudXNlKFcpLHRoaXMua2V5KCJpc3N1ZXIiKS51c2UoSiksdGhpcy5rZXkoInZhbGlkaXR5Iiku''@;'; + put 'put ''dXNlKHNlKSx0aGlzLmtleSgic3ViamVjdCIpLnVzZShKKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleUluZm8iKS51c2UoTiksdGhpcy5rZXkoImlzc3VlclVuaXF1ZUlEIikuaW1wbGljaXQoMSkuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleSgic3ViamVjdFVuaXF1ZUlEIikuaW1w''@;'; + put 'put ''bGljaXQoMikuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleSgiZXh0ZW5zaW9ucyIpLmV4cGxpY2l0KDMpLnNlcW9mKG9lKS5vcHRpb25hbCgpKX0pLGRlPWllLmRlZmluZSgiWDUwOUNlcnRpZmljYXRlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ0YnNDZXJ0aWZp''@;'; + put 'put ''Y2F0ZSIpLnVzZShjZSksdGhpcy5rZXkoInNpZ25hdHVyZUFsZ29yaXRobSIpLnVzZShXKSx0aGlzLmtleSgic2lnbmF0dXJlVmFsdWUiKS5iaXRzdHIoKSl9KTtVLmV4cG9ydHM9ZGV9LDc2MzE6KFUsUSxaKT0+e3ZhciBpZT0vUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRFtcblxyXStERUstSW5m''@;'; + put 'put ''bzogQUVTLSgoPzoxMjgpfCg/OjE5Mil8KD86MjU2KSktQ0JDLChbMC05QS1IXSspW1xuXHJdKyhbMC05QS16XG5ccisvPV0rKVtcblxyXSsvbSxsZT0vXi0tLS0tQkVHSU4gKCg/Oi4qPyBLRVkpfENFUlRJRklDQVRFKS0tLS0tL20sWT0vXi0tLS0tQkVHSU4gKCg/Oi4qPyBLRVkpfENFUlRJ''@;'; + put 'put ''RklDQVRFKS0tLS0tKFswLTlBLXpcblxyKy89XSspLS0tLS1FTkQgXDEtLS0tLSQvbSxXPVooMzA0OCksTj1aKDQ2OTYpLGVlPVooOTUwOSkuQnVmZmVyO1UuZXhwb3J0cz1mdW5jdGlvbihxLEope3ZhciBzZSxvZT1xLnRvU3RyaW5nKCksY2U9b2UubWF0Y2goaWUpO2lmKGNlKXt2YXIgZGU9''@;'; + put 'put ''ImFlcyIrY2VbMV0sdmU9ZWUuZnJvbShjZVsyXSwiaGV4IiksQWU9ZWUuZnJvbShjZVszXS5yZXBsYWNlKC9bXHJcbl0vZywiIiksImJhc2U2NCIpLGtlPVcoSix2ZS5zbGljZSgwLDgpLHBhcnNlSW50KGNlWzFdLDEwKSkua2V5LFNlPVtdLEllPU4uY3JlYXRlRGVjaXBoZXJpdihkZSxrZSx2''@;'; + put 'put ''ZSk7U2UucHVzaChJZS51cGRhdGUoQWUpKSxTZS5wdXNoKEllLmZpbmFsKCkpLHNlPWVlLmNvbmNhdChTZSl9ZWxzZXt2YXIgVGU9b2UubWF0Y2goWSk7c2U9ZWUuZnJvbShUZVsyXS5yZXBsYWNlKC9bXHJcbl0vZywiIiksImJhc2U2NCIpfXJldHVybnt0YWc6b2UubWF0Y2gobGUpWzFdLGRh''@;'; + put 'put ''dGE6c2V9fX0sOTgwOihVLFEsWik9Pnt2YXIgaWU9WigyODE4KSxsZT1aKDI1NjIpLFk9Wig3NjMxKSxXPVooNDY5NiksTj1aKDU2MzIpLGVlPVooOTUwOSkuQnVmZmVyO2Z1bmN0aW9uIHEoSil7dmFyIHNlOyJvYmplY3QiIT10eXBlb2YgSnx8ZWUuaXNCdWZmZXIoSil8fChzZT1KLnBhc3Nw''@;'; + put 'put ''aHJhc2UsSj1KLmtleSksInN0cmluZyI9PXR5cGVvZiBKJiYoSj1lZS5mcm9tKEopKTt2YXIgb2UsY2Usa2UsU2UsSWUsVGUsRWUsaGUsTyx6LG5lLHRlLHgsZGU9WShKLHNlKSx2ZT1kZS50YWcsQWU9ZGUuZGF0YTtzd2l0Y2godmUpe2Nhc2UiQ0VSVElGSUNBVEUiOmNlPWllLmNlcnRpZmlj''@;'; + put 'put ''YXRlLmRlY29kZShBZSwiZGVyIikudGJzQ2VydGlmaWNhdGUuc3ViamVjdFB1YmxpY0tleUluZm87Y2FzZSJQVUJMSUMgS0VZIjpzd2l0Y2goY2V8fChjZT1pZS5QdWJsaWNLZXkuZGVjb2RlKEFlLCJkZXIiKSksb2U9Y2UuYWxnb3JpdGhtLmFsZ29yaXRobS5qb2luKCIuIikpe2Nhc2UiMS4y''@;'; + put 'put ''Ljg0MC4xMTM1NDkuMS4xLjEiOnJldHVybiBpZS5SU0FQdWJsaWNLZXkuZGVjb2RlKGNlLnN1YmplY3RQdWJsaWNLZXkuZGF0YSwiZGVyIik7Y2FzZSIxLjIuODQwLjEwMDQ1LjIuMSI6cmV0dXJuIGNlLnN1YmplY3RQcml2YXRlS2V5PWNlLnN1YmplY3RQdWJsaWNLZXkse3R5cGU6ImVjIixk''@;'; + put 'put ''YXRhOmNlfTtjYXNlIjEuMi44NDAuMTAwNDAuNC4xIjpyZXR1cm4gY2UuYWxnb3JpdGhtLnBhcmFtcy5wdWJfa2V5PWllLkRTQXBhcmFtLmRlY29kZShjZS5zdWJqZWN0UHVibGljS2V5LmRhdGEsImRlciIpLHt0eXBlOiJkc2EiLGRhdGE6Y2UuYWxnb3JpdGhtLnBhcmFtc307ZGVmYXVsdDp0''@;'; + put 'put ''aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IGlkICIrb2UpfWNhc2UiRU5DUllQVEVEIFBSSVZBVEUgS0VZIjpTZT1zZSxJZT0oa2U9QWU9aWUuRW5jcnlwdGVkUHJpdmF0ZUtleS5kZWNvZGUoQWUsImRlciIpKS5hbGdvcml0aG0uZGVjcnlwdC5rZGUua2RlcGFyYW1zLnNhbHQsVGU9cGFy''@;'; + put 'put ''c2VJbnQoa2UuYWxnb3JpdGhtLmRlY3J5cHQua2RlLmtkZXBhcmFtcy5pdGVycy50b1N0cmluZygpLDEwKSxFZT1sZVtrZS5hbGdvcml0aG0uZGVjcnlwdC5jaXBoZXIuYWxnby5qb2luKCIuIildLGhlPWtlLmFsZ29yaXRobS5kZWNyeXB0LmNpcGhlci5pdixPPWtlLnN1YmplY3RQcml2YXRl''@;'; + put 'put ''S2V5LHo9cGFyc2VJbnQoRWUuc3BsaXQoIi0iKVsxXSwxMCkvOCxuZT1OLnBia2RmMlN5bmMoU2UsSWUsVGUseiwic2hhMSIpLHRlPVcuY3JlYXRlRGVjaXBoZXJpdihFZSxuZSxoZSksKHg9W10pLnB1c2godGUudXBkYXRlKE8pKSx4LnB1c2godGUuZmluYWwoKSksQWU9ZWUuY29uY2F0KHgp''@;'; + put 'put ''O2Nhc2UiUFJJVkFURSBLRVkiOnN3aXRjaChvZT0oY2U9aWUuUHJpdmF0ZUtleS5kZWNvZGUoQWUsImRlciIpKS5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oIi4iKSl7Y2FzZSIxLjIuODQwLjExMzU0OS4xLjEuMSI6cmV0dXJuIGllLlJTQVByaXZhdGVLZXkuZGVjb2RlKGNlLnN1YmplY3RQ''@;'; + put 'put ''cml2YXRlS2V5LCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1cm57Y3VydmU6Y2UuYWxnb3JpdGhtLmN1cnZlLHByaXZhdGVLZXk6aWUuRUNQcml2YXRlS2V5LmRlY29kZShjZS5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIikucHJpdmF0ZUtleX07Y2FzZSIxLjIuODQwLjEwMDQw''@;'; + put 'put ''LjQuMSI6cmV0dXJuIGNlLmFsZ29yaXRobS5wYXJhbXMucHJpdl9rZXk9aWUuRFNBcGFyYW0uZGVjb2RlKGNlLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKSx7dHlwZToiZHNhIixwYXJhbXM6Y2UuYWxnb3JpdGhtLnBhcmFtc307ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5''@;'; + put 'put ''IGlkICIrb2UpfWNhc2UiUlNBIFBVQkxJQyBLRVkiOnJldHVybiBpZS5SU0FQdWJsaWNLZXkuZGVjb2RlKEFlLCJkZXIiKTtjYXNlIlJTQSBQUklWQVRFIEtFWSI6cmV0dXJuIGllLlJTQVByaXZhdGVLZXkuZGVjb2RlKEFlLCJkZXIiKTtjYXNlIkRTQSBQUklWQVRFIEtFWSI6cmV0dXJue3R5''@;'; + put 'put ''cGU6ImRzYSIscGFyYW1zOmllLkRTQVByaXZhdGVLZXkuZGVjb2RlKEFlLCJkZXIiKX07Y2FzZSJFQyBQUklWQVRFIEtFWSI6cmV0dXJue2N1cnZlOihBZT1pZS5FQ1ByaXZhdGVLZXkuZGVjb2RlKEFlLCJkZXIiKSkucGFyYW1ldGVycy52YWx1ZSxwcml2YXRlS2V5OkFlLnByaXZhdGVLZXl9''@;'; + put 'put ''O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSB0eXBlICIrdmUpfX1VLmV4cG9ydHM9cSxxLnNpZ25hdHVyZT1pZS5zaWduYXR1cmV9LDQwOTU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KTtmdW5jdGlvbiBsZShXKXtyZXR1cm4iLyI9PT1XLmNoYXJB''@;'; + put 'put ''dCgwKX1mdW5jdGlvbiBZKFcpe3ZhciBOPS9eKFthLXpBLVpdOnxbXFxcL117Mn1bXlxcXC9dK1tcXFwvXStbXlxcXC9dKyk/KFtcXFwvXSk/KFtcc1xTXSo/KSQvLmV4ZWMoVyksZWU9TlsxXXx8IiIscT1Cb29sZWFuKGVlJiYiOiIhPT1lZS5jaGFyQXQoMSkpO3JldHVybiBCb29sZWFuKE5b''@;'; + put 'put ''Ml18fHEpfVUuZXhwb3J0cz0id2luMzIiPT09aWUucGxhdGZvcm0/WTpsZSxVLmV4cG9ydHMucG9zaXg9bGUsVS5leHBvcnRzLndpbjMyPVl9LDE3MjU6VT0+e1UuZXhwb3J0cz0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihRLFope1Euc3VwZXJfPVosUS5wcm90''@;'; + put 'put ''b3R5cGU9T2JqZWN0LmNyZWF0ZShaLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOlEsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSl9OmZ1bmN0aW9uKFEsWil7US5zdXBlcl89Wjt2YXIgaWU9ZnVuY3Rpb24oKXt9O2llLnByb3RvdHlwZT1aLnByb3Rv''@;'; + put 'put ''dHlwZSxRLnByb3RvdHlwZT1uZXcgaWUsUS5wcm90b3R5cGUuY29uc3RydWN0b3I9UX19LDI5NzQ6VT0+e1UuZXhwb3J0cz1mdW5jdGlvbihRKXtyZXR1cm4gUSYmIm9iamVjdCI9PXR5cGVvZiBRJiYiZnVuY3Rpb24iPT10eXBlb2YgUS5jb3B5JiYiZnVuY3Rpb24iPT10eXBlb2YgUS5maWxs''@;'; + put 'put ''JiYiZnVuY3Rpb24iPT10eXBlb2YgUS5yZWFkVUludDh9fSw4MDU5OihVLFEsWik9Pnt2YXIgaWU9Wig0MTU1KSxsZT1aKDUxMDgpLFk9LyVbc2RqJV0vZztRLmZvcm1hdD1mdW5jdGlvbihUKXtpZighU2UoVCkpe2Zvcih2YXIgUz1bXSxGPTA7Rjxhcmd1bWVudHMubGVuZ3RoO0YrKylTLnB1''@;'; + put 'put ''c2goZWUoYXJndW1lbnRzW0ZdKSk7cmV0dXJuIFMuam9pbigiICIpfUY9MTtmb3IodmFyIHllPWFyZ3VtZW50cyxDZT15ZS5sZW5ndGgsRGU9U3RyaW5nKFQpLnJlcGxhY2UoWSxmdW5jdGlvbihRZSl7aWYoIiUlIj09PVFlKXJldHVybiIlIjtpZihGPj1DZSlyZXR1cm4gUWU7c3dpdGNoKFFl''@;'; + put 'put ''KXtjYXNlIiVzIjpyZXR1cm4gU3RyaW5nKHllW0YrK10pO2Nhc2UiJWQiOnJldHVybiBOdW1iZXIoeWVbRisrXSk7Y2FzZSIlaiI6dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh5ZVtGKytdKX1jYXRjaCgkZSl7cmV0dXJuIltDaXJjdWxhcl0ifWRlZmF1bHQ6cmV0dXJuIFFlfX0pLFBlPXll''@;'; + put 'put ''W0ZdO0Y8Q2U7UGU9eWVbKytGXSlBZShQZSl8fCFFZShQZSk/RGUrPSIgIitQZTpEZSs9IiAiK2VlKFBlKTtyZXR1cm4gRGV9LFEuZGVwcmVjYXRlPWZ1bmN0aW9uKFQsUyl7aWYoSWUoWi5nLnByb2Nlc3MpKXJldHVybiBmdW5jdGlvbigpe3JldHVybiBRLmRlcHJlY2F0ZShULFMpLmFwcGx5''@;'; + put 'put ''KHRoaXMsYXJndW1lbnRzKX07aWYoITA9PT1pZS5ub0RlcHJlY2F0aW9uKXJldHVybiBUO3ZhciBGPSExO3JldHVybiBmdW5jdGlvbigpe2lmKCFGKXtpZihpZS50aHJvd0RlcHJlY2F0aW9uKXRocm93IG5ldyBFcnJvcihTKTtpZS50cmFjZURlcHJlY2F0aW9uP2xlLnRyYWNlKFMpOmxlLmVy''@;'; + put 'put ''cm9yKFMpLEY9ITB9cmV0dXJuIFQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX07dmFyIFcsTj17fTtmdW5jdGlvbiBlZShULFMpe3ZhciBGPXtzZWVuOltdLHN0eWxpemU6Sn07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+PTMmJihGLmRlcHRoPWFyZ3VtZW50c1syXSksYXJndW1lbnRzLmxlbmd0''@;'; + put 'put ''aD49NCYmKEYuY29sb3JzPWFyZ3VtZW50c1szXSksdmUoUyk/Ri5zaG93SGlkZGVuPVM6UyYmUS5fZXh0ZW5kKEYsUyksSWUoRi5zaG93SGlkZGVuKSYmKEYuc2hvd0hpZGRlbj0hMSksSWUoRi5kZXB0aCkmJihGLmRlcHRoPTIpLEllKEYuY29sb3JzKSYmKEYuY29sb3JzPSExKSxJZShGLmN1''@;'; + put 'put ''c3RvbUluc3BlY3QpJiYoRi5jdXN0b21JbnNwZWN0PSEwKSxGLmNvbG9ycyYmKEYuc3R5bGl6ZT1xKSxzZShGLFQsRi5kZXB0aCl9ZnVuY3Rpb24gcShULFMpe3ZhciBGPWVlLnN0eWxlc1tTXTtyZXR1cm4gRj8iXHgxYlsiK2VlLmNvbG9yc1tGXVswXSsibSIrVCsiXHgxYlsiK2VlLmNvbG9y''@;'; + put 'put ''c1tGXVsxXSsibSI6VH1mdW5jdGlvbiBKKFQsUyl7cmV0dXJuIFR9ZnVuY3Rpb24gc2UoVCxTLEYpe2lmKFQuY3VzdG9tSW5zcGVjdCYmUyYmeihTLmluc3BlY3QpJiZTLmluc3BlY3QhPT1RLmluc3BlY3QmJighUy5jb25zdHJ1Y3Rvcnx8Uy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUhPT1TKSl7''@;'; + put 'put ''dmFyIHllPVMuaW5zcGVjdChGLFQpO3JldHVybiBTZSh5ZSl8fCh5ZT1zZShULHllLEYpKSx5ZX12YXIgQ2U9ZnVuY3Rpb24oQXQsbXQpe2lmKEllKG10KSlyZXR1cm4gQXQuc3R5bGl6ZSgidW5kZWZpbmVkIiwidW5kZWZpbmVkIik7aWYoU2UobXQpKXt2YXIgaHQ9IiciK0pTT04uc3RyaW5n''@;'; + put 'put ''aWZ5KG10KS5yZXBsYWNlKC9eInwiJC9nLCIiKS5yZXBsYWNlKC8nL2csIlxcJyIpLnJlcGxhY2UoL1xcIi9nLCciJykrIiciO3JldHVybiBBdC5zdHlsaXplKGh0LCJzdHJpbmciKX1yZXR1cm4ga2UobXQpP0F0LnN0eWxpemUoIiIrbXQsIm51bWJlciIpOnZlKG10KT9BdC5zdHlsaXplKCIi''@;'; + put 'put ''K210LCJib29sZWFuIik6QWUobXQpP0F0LnN0eWxpemUoIm51bGwiLCJudWxsIik6dm9pZCAwfShULFMpO2lmKENlKXJldHVybiBDZTt2YXIgbXQsRGU9T2JqZWN0LmtleXMoUyksUGU9KG10PXt9LERlLmZvckVhY2goZnVuY3Rpb24oaHQsQnQpe210W2h0XT0hMH0pLG10KTtpZihULnNob3dI''@;'; + put 'put ''aWRkZW4mJihEZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhTKSksTyhTKSYmKERlLmluZGV4T2YoIm1lc3NhZ2UiKT49MHx8RGUuaW5kZXhPZigiZGVzY3JpcHRpb24iKT49MCkpcmV0dXJuIG9lKFMpO2lmKDA9PT1EZS5sZW5ndGgpe2lmKHooUykpcmV0dXJuIFQuc3R5bGl6ZSgiW0Z1''@;'; + put 'put ''bmN0aW9uIisoUy5uYW1lPyI6ICIrUy5uYW1lOiIiKSsiXSIsInNwZWNpYWwiKTtpZihUZShTKSlyZXR1cm4gVC5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChTKSwicmVnZXhwIik7aWYoaGUoUykpcmV0dXJuIFQuc3R5bGl6ZShEYXRlLnByb3RvdHlwZS50b1N0cmlu''@;'; + put 'put ''Zy5jYWxsKFMpLCJkYXRlIik7aWYoTyhTKSlyZXR1cm4gb2UoUyl9dmFyICRlLGd0PSIiLHd0PSExLHZ0PVsieyIsIn0iXTtyZXR1cm4gZGUoUykmJih3dD0hMCx2dD1bIlsiLCJdIl0pLHooUykmJihndD0iIFtGdW5jdGlvbiIrKFMubmFtZT8iOiAiK1MubmFtZToiIikrIl0iKSxUZShTKSYm''@;'; + put 'put ''KGd0PSIgIitSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUykpLGhlKFMpJiYoZ3Q9IiAiK0RhdGUucHJvdG90eXBlLnRvVVRDU3RyaW5nLmNhbGwoUykpLE8oUykmJihndD0iICIrb2UoUykpLDAhPT1EZS5sZW5ndGh8fHd0JiYwIT1TLmxlbmd0aD9GPDA/VGUoUyk/VC5zdHlsaXpl''@;'; + put 'put ''KFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChTKSwicmVnZXhwIik6VC5zdHlsaXplKCJbT2JqZWN0XSIsInNwZWNpYWwiKTooVC5zZWVuLnB1c2goUyksJGU9d3Q/ZnVuY3Rpb24oQXQsbXQsaHQsQnQsb24pe2Zvcih2YXIgX3Q9W10sdHQ9MCxldD1tdC5sZW5ndGg7dHQ8ZXQ7Kyt0''@;'; + put 'put ''dClWKG10LFN0cmluZyh0dCkpP190LnB1c2goY2UoQXQsbXQsaHQsQnQsU3RyaW5nKHR0KSwhMCkpOl90LnB1c2goIiIpO3JldHVybiBvbi5mb3JFYWNoKGZ1bmN0aW9uKGF0KXthdC5tYXRjaCgvXlxkKyQvKXx8X3QucHVzaChjZShBdCxtdCxodCxCdCxhdCwhMCkpfSksX3R9KFQsUyxGLFBl''@;'; + put 'put ''LERlKTpEZS5tYXAoZnVuY3Rpb24oQXQpe3JldHVybiBjZShULFMsRixQZSxBdCx3dCl9KSxULnNlZW4ucG9wKCksZnVuY3Rpb24oQXQsbXQsaHQpe3JldHVybiBBdC5yZWR1Y2UoZnVuY3Rpb24oQnQsb24pe3JldHVybiBvbi5pbmRleE9mKCJcbiIpLEJ0K29uLnJlcGxhY2UoL1x1MDAxYlxb''@;'; + put 'put ''XGRcZD9tL2csIiIpLmxlbmd0aCsxfSwwKT42MD9odFswXSsoIiI9PT1tdD8iIjptdCsiXG4gIikrIiAiK0F0LmpvaW4oIixcbiAgIikrIiAiK2h0WzFdOmh0WzBdK210KyIgIitBdC5qb2luKCIsICIpKyIgIitodFsxXX0oJGUsZ3QsdnQpKTp2dFswXStndCt2dFsxXX1mdW5jdGlvbiBvZShU''@;'; + put 'put ''KXtyZXR1cm4iWyIrRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoVCkrIl0ifWZ1bmN0aW9uIGNlKFQsUyxGLHllLENlLERlKXt2YXIgUGUsUWUsJGU7aWYoKCRlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUyxDZSl8fHt2YWx1ZTpTW0NlXX0pLmdldD9RZT1ULnN0eWxp''@;'; + put 'put ''emUoJGUuc2V0PyJbR2V0dGVyL1NldHRlcl0iOiJbR2V0dGVyXSIsInNwZWNpYWwiKTokZS5zZXQmJihRZT1ULnN0eWxpemUoIltTZXR0ZXJdIiwic3BlY2lhbCIpKSxWKHllLENlKXx8KFBlPSJbIitDZSsiXSIpLFFlfHwoVC5zZWVuLmluZGV4T2YoJGUudmFsdWUpPDA/KFFlPUFlKEYpP3Nl''@;'; + put 'put ''KFQsJGUudmFsdWUsbnVsbCk6c2UoVCwkZS52YWx1ZSxGLTEpKS5pbmRleE9mKCJcbiIpPi0xJiYoUWU9RGU/UWUuc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKGd0KXtyZXR1cm4iICAiK2d0fSkuam9pbigiXG4iKS5zdWJzdHIoMik6IlxuIitRZS5zcGxpdCgiXG4iKS5tYXAoZnVuY3Rpb24o''@;'; + put 'put ''Z3Qpe3JldHVybiIgICAiK2d0fSkuam9pbigiXG4iKSk6UWU9VC5zdHlsaXplKCJbQ2lyY3VsYXJdIiwic3BlY2lhbCIpKSxJZShQZSkpe2lmKERlJiZDZS5tYXRjaCgvXlxkKyQvKSlyZXR1cm4gUWU7KFBlPUpTT04uc3RyaW5naWZ5KCIiK0NlKSkubWF0Y2goL14iKFthLXpBLVpfXVthLXpB''@;'; + put 'put ''LVpfMC05XSopIiQvKT8oUGU9UGUuc3Vic3RyKDEsUGUubGVuZ3RoLTIpLFBlPVQuc3R5bGl6ZShQZSwibmFtZSIpKTooUGU9UGUucmVwbGFjZSgvJy9nLCJcXCciKS5yZXBsYWNlKC9cXCIvZywnIicpLnJlcGxhY2UoLyheInwiJCkvZywiJyIpLFBlPVQuc3R5bGl6ZShQZSwic3RyaW5nIikp''@;'; + put 'put ''fXJldHVybiBQZSsiOiAiK1FlfWZ1bmN0aW9uIGRlKFQpe3JldHVybiBBcnJheS5pc0FycmF5KFQpfWZ1bmN0aW9uIHZlKFQpe3JldHVybiJib29sZWFuIj09dHlwZW9mIFR9ZnVuY3Rpb24gQWUoVCl7cmV0dXJuIG51bGw9PT1UfWZ1bmN0aW9uIGtlKFQpe3JldHVybiJudW1iZXIiPT10eXBl''@;'; + put 'put ''b2YgVH1mdW5jdGlvbiBTZShUKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIFR9ZnVuY3Rpb24gSWUoVCl7cmV0dXJuIHZvaWQgMD09PVR9ZnVuY3Rpb24gVGUoVCl7cmV0dXJuIEVlKFQpJiYiW29iamVjdCBSZWdFeHBdIj09PW5lKFQpfWZ1bmN0aW9uIEVlKFQpe3JldHVybiJvYmplY3QiPT10''@;'; + put 'put ''eXBlb2YgVCYmbnVsbCE9PVR9ZnVuY3Rpb24gaGUoVCl7cmV0dXJuIEVlKFQpJiYiW29iamVjdCBEYXRlXSI9PT1uZShUKX1mdW5jdGlvbiBPKFQpe3JldHVybiBFZShUKSYmKCJbb2JqZWN0IEVycm9yXSI9PT1uZShUKXx8VCBpbnN0YW5jZW9mIEVycm9yKX1mdW5jdGlvbiB6KFQpe3JldHVy''@;'; + put 'put ''biJmdW5jdGlvbiI9PXR5cGVvZiBUfWZ1bmN0aW9uIG5lKFQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoVCl9ZnVuY3Rpb24gdGUoVCl7cmV0dXJuIFQ8MTA/IjAiK1QudG9TdHJpbmcoMTApOlQudG9TdHJpbmcoMTApfVEuZGVidWdsb2c9ZnVuY3Rpb24oVCl7aWYo''@;'; + put 'put ''SWUoVykmJihXPWllLmVudi5OT0RFX0RFQlVHfHwiIiksVD1ULnRvVXBwZXJDYXNlKCksIU5bVF0paWYobmV3IFJlZ0V4cCgiXFxiIitUKyJcXGIiLCJpIikudGVzdChXKSl7dmFyIFM9aWUucGlkO05bVF09ZnVuY3Rpb24oKXt2YXIgRj1RLmZvcm1hdC5hcHBseShRLGFyZ3VtZW50cyk7bGUu''@;'; + put 'put ''ZXJyb3IoIiVzICVkOiAlcyIsVCxTLEYpfX1lbHNlIE5bVF09ZnVuY3Rpb24oKXt9O3JldHVybiBOW1RdfSxRLmluc3BlY3Q9ZWUsZWUuY29sb3JzPXtib2xkOlsxLDIyXSxpdGFsaWM6WzMsMjNdLHVuZGVybGluZTpbNCwyNF0saW52ZXJzZTpbNywyN10sd2hpdGU6WzM3LDM5XSxncmV5Ols5''@;'; + put 'put ''MCwzOV0sYmxhY2s6WzMwLDM5XSxibHVlOlszNCwzOV0sY3lhbjpbMzYsMzldLGdyZWVuOlszMiwzOV0sbWFnZW50YTpbMzUsMzldLHJlZDpbMzEsMzldLHllbGxvdzpbMzMsMzldfSxlZS5zdHlsZXM9e3NwZWNpYWw6ImN5YW4iLG51bWJlcjoieWVsbG93Iixib29sZWFuOiJ5ZWxsb3ciLHVu''@;'; + put 'put ''ZGVmaW5lZDoiZ3JleSIsbnVsbDoiYm9sZCIsc3RyaW5nOiJncmVlbiIsZGF0ZToibWFnZW50YSIscmVnZXhwOiJyZWQifSxRLmlzQXJyYXk9ZGUsUS5pc0Jvb2xlYW49dmUsUS5pc051bGw9QWUsUS5pc051bGxPclVuZGVmaW5lZD1mdW5jdGlvbihUKXtyZXR1cm4gbnVsbD09VH0sUS5pc051''@;'; + put 'put ''bWJlcj1rZSxRLmlzU3RyaW5nPVNlLFEuaXNTeW1ib2w9ZnVuY3Rpb24oVCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBUfSxRLmlzVW5kZWZpbmVkPUllLFEuaXNSZWdFeHA9VGUsUS5pc09iamVjdD1FZSxRLmlzRGF0ZT1oZSxRLmlzRXJyb3I9TyxRLmlzRnVuY3Rpb249eixRLmlzUHJpbWl0''@;'; + put 'put ''aXZlPWZ1bmN0aW9uKFQpe3JldHVybiBudWxsPT09VHx8ImJvb2xlYW4iPT10eXBlb2YgVHx8Im51bWJlciI9PXR5cGVvZiBUfHwic3RyaW5nIj09dHlwZW9mIFR8fCJzeW1ib2wiPT10eXBlb2YgVHx8dm9pZCAwPT09VH0sUS5pc0J1ZmZlcj1aKDI5NzQpO3ZhciB4PVsiSmFuIiwiRmViIiwi''@;'; + put 'put ''TWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl07ZnVuY3Rpb24gUCgpe3ZhciBUPW5ldyBEYXRlLFM9W3RlKFQuZ2V0SG91cnMoKSksdGUoVC5nZXRNaW51dGVzKCkpLHRlKFQuZ2V0U2Vjb25kcygpKV0uam9pbigiOiIpO3JldHVybltU''@;'; + put 'put ''LmdldERhdGUoKSx4W1QuZ2V0TW9udGgoKV0sU10uam9pbigiICIpfWZ1bmN0aW9uIFYoVCxTKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFQsUyl9US5sb2c9ZnVuY3Rpb24oKXtsZS5sb2coIiVzIC0gJXMiLFAoKSxRLmZvcm1hdC5hcHBseShRLGFyZ3Vt''@;'; + put 'put ''ZW50cykpfSxRLmluaGVyaXRzPVooMTcyNSksUS5fZXh0ZW5kPWZ1bmN0aW9uKFQsUyl7aWYoIVN8fCFFZShTKSlyZXR1cm4gVDtmb3IodmFyIEY9T2JqZWN0LmtleXMoUykseWU9Ri5sZW5ndGg7eWUtLTspVFtGW3llXV09U1tGW3llXV07cmV0dXJuIFR9fSwyNTIwOihVLFEsWik9PnsidXNl''@;'; + put 'put ''IHN0cmljdCI7dmFyIGllPVooNDE1NSksbGU9IndpbjMyIj09PWllLnBsYXRmb3JtLFk9Wig4MDU5KTtmdW5jdGlvbiBXKGtlLFNlKXtmb3IodmFyIEllPVtdLFRlPTA7VGU8a2UubGVuZ3RoO1RlKyspe3ZhciBFZT1rZVtUZV07RWUmJiIuIiE9PUVlJiYoIi4uIj09PUVlP0llLmxlbmd0aCYm''@;'; + put 'put ''Ii4uIiE9PUllW0llLmxlbmd0aC0xXT9JZS5wb3AoKTpTZSYmSWUucHVzaCgiLi4iKTpJZS5wdXNoKEVlKSl9cmV0dXJuIEllfWZ1bmN0aW9uIE4oa2Upe2Zvcih2YXIgU2U9a2UubGVuZ3RoLTEsSWU9MDtJZTw9U2UmJiFrZVtJZV07SWUrKyk7Zm9yKHZhciBUZT1TZTtUZT49MCYmIWtlW1Rl''@;'; + put 'put ''XTtUZS0tKTtyZXR1cm4gMD09PUllJiZUZT09PVNlP2tlOkllPlRlP1tdOmtlLnNsaWNlKEllLFRlKzEpfXZhciBlZT0vXihbYS16QS1aXTp8W1xcXC9dezJ9W15cXFwvXStbXFxcL10rW15cXFwvXSspPyhbXFxcL10pPyhbXHNcU10qPykkLyxxPS9eKFtcc1xTXSo/KSgoPzpcLnsxLDJ9fFte''@;'; + put 'put ''XFxcL10rP3wpKFwuW14uXC9cXF0qfCkpKD86W1xcXC9dKikkLyxKPXt9O2Z1bmN0aW9uIHNlKGtlKXt2YXIgU2U9ZWUuZXhlYyhrZSksSWU9KFNlWzFdfHwiIikrKFNlWzJdfHwiIiksRWU9cS5leGVjKFNlWzNdfHwiIik7cmV0dXJuW0llLEVlWzFdLEVlWzJdLEVlWzNdXX1mdW5jdGlvbiBv''@;'; + put 'put ''ZShrZSl7dmFyIFNlPWVlLmV4ZWMoa2UpLEllPVNlWzFdfHwiIixUZT0hIUllJiYiOiIhPT1JZVsxXTtyZXR1cm57ZGV2aWNlOkllLGlzVW5jOlRlLGlzQWJzb2x1dGU6VGV8fCEhU2VbMl0sdGFpbDpTZVszXX19ZnVuY3Rpb24gY2Uoa2Upe3JldHVybiJcXFxcIitrZS5yZXBsYWNlKC9eW1xc''@;'; + put 'put ''XC9dKy8sIiIpLnJlcGxhY2UoL1tcXFwvXSsvZywiXFwiKX1KLnJlc29sdmU9ZnVuY3Rpb24oKXtmb3IodmFyIGtlPSIiLFNlPSIiLEllPSExLFRlPWFyZ3VtZW50cy5sZW5ndGgtMTtUZT49LTE7VGUtLSl7dmFyIEVlO2lmKFRlPj0wP0VlPWFyZ3VtZW50c1tUZV06a2U/KEVlPWllLmVudlsi''@;'; + put 'put ''PSIra2VdKSYmRWUuc3Vic3RyKDAsMykudG9Mb3dlckNhc2UoKT09PWtlLnRvTG93ZXJDYXNlKCkrIlxcInx8KEVlPWtlKyJcXCIpOkVlPWllLmN3ZCgpLCFZLmlzU3RyaW5nKEVlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudHMgdG8gcGF0aC5yZXNvbHZlIG11c3QgYmUgc3RyaW5n''@;'; + put 'put ''cyIpO2lmKEVlKXt2YXIgaGU9b2UoRWUpLE89aGUuZGV2aWNlLHo9aGUuaXNVbmMsbmU9aGUuaXNBYnNvbHV0ZSx0ZT1oZS50YWlsO2lmKCghT3x8IWtlfHxPLnRvTG93ZXJDYXNlKCk9PT1rZS50b0xvd2VyQ2FzZSgpKSYmKGtlfHwoa2U9TyksSWV8fChTZT10ZSsiXFwiK1NlLEllPW5lKSxr''@;'; + put 'put ''ZSYmSWUpKWJyZWFrfX1yZXR1cm4geiYmKGtlPWNlKGtlKSksa2UrKEllPyJcXCI6IiIpKyhTZT1XKFNlLnNwbGl0KC9bXFxcL10rLyksIUllKS5qb2luKCJcXCIpKXx8Ii4ifSxKLm5vcm1hbGl6ZT1mdW5jdGlvbihrZSl7dmFyIFNlPW9lKGtlKSxJZT1TZS5kZXZpY2UsVGU9U2UuaXNVbmMs''@;'; + put 'put ''RWU9U2UuaXNBYnNvbHV0ZSxoZT1TZS50YWlsLE89L1tcXFwvXSQvLnRlc3QoaGUpO3JldHVybihoZT1XKGhlLnNwbGl0KC9bXFxcL10rLyksIUVlKS5qb2luKCJcXCIpKXx8RWV8fChoZT0iLiIpLGhlJiZPJiYoaGUrPSJcXCIpLFRlJiYoSWU9Y2UoSWUpKSxJZSsoRWU/IlxcIjoiIikraGV9''@;'; + put 'put ''LEouaXNBYnNvbHV0ZT1mdW5jdGlvbihrZSl7cmV0dXJuIG9lKGtlKS5pc0Fic29sdXRlfSxKLmpvaW49ZnVuY3Rpb24oKXtmb3IodmFyIGtlPVtdLFNlPTA7U2U8YXJndW1lbnRzLmxlbmd0aDtTZSsrKXt2YXIgSWU9YXJndW1lbnRzW1NlXTtpZighWS5pc1N0cmluZyhJZSkpdGhyb3cgbmV3''@;'; + put 'put ''IFR5cGVFcnJvcigiQXJndW1lbnRzIHRvIHBhdGguam9pbiBtdXN0IGJlIHN0cmluZ3MiKTtJZSYma2UucHVzaChJZSl9dmFyIFRlPWtlLmpvaW4oIlxcIik7cmV0dXJuL15bXFxcL117Mn1bXlxcXC9dLy50ZXN0KGtlWzBdKXx8KFRlPVRlLnJlcGxhY2UoL15bXFxcL117Mix9LywiXFwiKSks''@;'; + put 'put ''Si5ub3JtYWxpemUoVGUpfSxKLnJlbGF0aXZlPWZ1bmN0aW9uKGtlLFNlKXtrZT1KLnJlc29sdmUoa2UpLFNlPUoucmVzb2x2ZShTZSk7Zm9yKHZhciBJZT1rZS50b0xvd2VyQ2FzZSgpLFRlPVNlLnRvTG93ZXJDYXNlKCksRWU9TihTZS5zcGxpdCgiXFwiKSksaGU9TihJZS5zcGxpdCgiXFwi''@;'; + put 'put ''KSksTz1OKFRlLnNwbGl0KCJcXCIpKSx6PU1hdGgubWluKGhlLmxlbmd0aCxPLmxlbmd0aCksbmU9eix0ZT0wO3RlPHo7dGUrKylpZihoZVt0ZV0hPT1PW3RlXSl7bmU9dGU7YnJlYWt9aWYoMD09bmUpcmV0dXJuIFNlO3ZhciB4PVtdO2Zvcih0ZT1uZTt0ZTxoZS5sZW5ndGg7dGUrKyl4LnB1''@;'; + put 'put ''c2goIi4uIik7cmV0dXJuKHg9eC5jb25jYXQoRWUuc2xpY2UobmUpKSkuam9pbigiXFwiKX0sSi5fbWFrZUxvbmc9ZnVuY3Rpb24oa2Upe2lmKCFZLmlzU3RyaW5nKGtlKSlyZXR1cm4ga2U7aWYoIWtlKXJldHVybiIiO3ZhciBTZT1KLnJlc29sdmUoa2UpO3JldHVybi9eW2EtekEtWl1cOlxc''@;'; + put 'put ''Ly50ZXN0KFNlKT8iXFxcXD9cXCIrU2U6L15cXFxcW14/Ll0vLnRlc3QoU2UpPyJcXFxcP1xcVU5DXFwiK1NlLnN1YnN0cmluZygyKTprZX0sSi5kaXJuYW1lPWZ1bmN0aW9uKGtlKXt2YXIgU2U9c2Uoa2UpLEllPVNlWzBdLFRlPVNlWzFdO3JldHVybiBJZXx8VGU/KFRlJiYoVGU9VGUuc3Vi''@;'; + put 'put ''c3RyKDAsVGUubGVuZ3RoLTEpKSxJZStUZSk6Ii4ifSxKLmJhc2VuYW1lPWZ1bmN0aW9uKGtlLFNlKXt2YXIgSWU9c2Uoa2UpWzJdO3JldHVybiBTZSYmSWUuc3Vic3RyKC0xKlNlLmxlbmd0aCk9PT1TZSYmKEllPUllLnN1YnN0cigwLEllLmxlbmd0aC1TZS5sZW5ndGgpKSxJZX0sSi5leHRu''@;'; + put 'put ''YW1lPWZ1bmN0aW9uKGtlKXtyZXR1cm4gc2Uoa2UpWzNdfSxKLmZvcm1hdD1mdW5jdGlvbihrZSl7aWYoIVkuaXNPYmplY3Qoa2UpKXRocm93IG5ldyBUeXBlRXJyb3IoIlBhcmFtZXRlciAncGF0aE9iamVjdCcgbXVzdCBiZSBhbiBvYmplY3QsIG5vdCAiK3R5cGVvZiBrZSk7aWYoIVkuaXNT''@;'; + put 'put ''dHJpbmcoa2Uucm9vdHx8IiIpKXRocm93IG5ldyBUeXBlRXJyb3IoIidwYXRoT2JqZWN0LnJvb3QnIG11c3QgYmUgYSBzdHJpbmcgb3IgdW5kZWZpbmVkLCBub3QgIit0eXBlb2Yga2Uucm9vdCk7dmFyIEllPWtlLmRpcixUZT1rZS5iYXNlfHwiIjtyZXR1cm4gSWU/SWVbSWUubGVuZ3RoLTFd''@;'; + put 'put ''PT09Si5zZXA/SWUrVGU6SWUrSi5zZXArVGU6VGV9LEoucGFyc2U9ZnVuY3Rpb24oa2Upe2lmKCFZLmlzU3RyaW5nKGtlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXJhbWV0ZXIgJ3BhdGhTdHJpbmcnIG11c3QgYmUgYSBzdHJpbmcsIG5vdCAiK3R5cGVvZiBrZSk7dmFyIFNlPXNlKGtlKTtp''@;'; + put 'put ''ZighU2V8fDQhPT1TZS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBwYXRoICciK2tlKyInIik7cmV0dXJue3Jvb3Q6U2VbMF0sZGlyOlNlWzBdK1NlWzFdLnNsaWNlKDAsLTEpLGJhc2U6U2VbMl0sZXh0OlNlWzNdLG5hbWU6U2VbMl0uc2xpY2UoMCxTZVsyXS5sZW5ndGgt''@;'; + put 'put ''U2VbM10ubGVuZ3RoKX19LEouc2VwPSJcXCIsSi5kZWxpbWl0ZXI9IjsiO3ZhciBkZT0vXihcLz98KShbXHNcU10qPykoKD86XC57MSwyfXxbXlwvXSs/fCkoXC5bXi5cL10qfCkpKD86W1wvXSopJC8sdmU9e307ZnVuY3Rpb24gQWUoa2Upe3JldHVybiBkZS5leGVjKGtlKS5zbGljZSgxKX12''@;'; + put 'put ''ZS5yZXNvbHZlPWZ1bmN0aW9uKCl7Zm9yKHZhciBrZT0iIixTZT0hMSxJZT1hcmd1bWVudHMubGVuZ3RoLTE7SWU+PS0xJiYhU2U7SWUtLSl7dmFyIFRlPUllPj0wP2FyZ3VtZW50c1tJZV06aWUuY3dkKCk7aWYoIVkuaXNTdHJpbmcoVGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50''@;'; + put 'put ''cyB0byBwYXRoLnJlc29sdmUgbXVzdCBiZSBzdHJpbmdzIik7VGUmJihrZT1UZSsiLyIra2UsU2U9Ii8iPT09VGVbMF0pfXJldHVybihTZT8iLyI6IiIpKyhrZT1XKGtlLnNwbGl0KCIvIiksIVNlKS5qb2luKCIvIikpfHwiLiJ9LHZlLm5vcm1hbGl6ZT1mdW5jdGlvbihrZSl7dmFyIFNlPXZl''@;'; + put 'put ''LmlzQWJzb2x1dGUoa2UpLEllPWtlJiYiLyI9PT1rZVtrZS5sZW5ndGgtMV07cmV0dXJuKGtlPVcoa2Uuc3BsaXQoIi8iKSwhU2UpLmpvaW4oIi8iKSl8fFNlfHwoa2U9Ii4iKSxrZSYmSWUmJihrZSs9Ii8iKSwoU2U/Ii8iOiIiKStrZX0sdmUuaXNBYnNvbHV0ZT1mdW5jdGlvbihrZSl7cmV0''@;'; + put 'put ''dXJuIi8iPT09a2UuY2hhckF0KDApfSx2ZS5qb2luPWZ1bmN0aW9uKCl7Zm9yKHZhciBrZT0iIixTZT0wO1NlPGFyZ3VtZW50cy5sZW5ndGg7U2UrKyl7dmFyIEllPWFyZ3VtZW50c1tTZV07aWYoIVkuaXNTdHJpbmcoSWUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyB0byBwYXRo''@;'; + put 'put ''LmpvaW4gbXVzdCBiZSBzdHJpbmdzIik7SWUmJihrZSs9a2U/Ii8iK0llOkllKX1yZXR1cm4gdmUubm9ybWFsaXplKGtlKX0sdmUucmVsYXRpdmU9ZnVuY3Rpb24oa2UsU2Upe2tlPXZlLnJlc29sdmUoa2UpLnN1YnN0cigxKSxTZT12ZS5yZXNvbHZlKFNlKS5zdWJzdHIoMSk7Zm9yKHZhciBJ''@;'; + put 'put ''ZT1OKGtlLnNwbGl0KCIvIikpLFRlPU4oU2Uuc3BsaXQoIi8iKSksRWU9TWF0aC5taW4oSWUubGVuZ3RoLFRlLmxlbmd0aCksaGU9RWUsTz0wO088RWU7TysrKWlmKEllW09dIT09VGVbT10pe2hlPU87YnJlYWt9dmFyIHo9W107Zm9yKE89aGU7TzxJZS5sZW5ndGg7TysrKXoucHVzaCgiLi4i''@;'; + put 'put ''KTtyZXR1cm4oej16LmNvbmNhdChUZS5zbGljZShoZSkpKS5qb2luKCIvIil9LHZlLl9tYWtlTG9uZz1mdW5jdGlvbihrZSl7cmV0dXJuIGtlfSx2ZS5kaXJuYW1lPWZ1bmN0aW9uKGtlKXt2YXIgU2U9QWUoa2UpLEllPVNlWzBdLFRlPVNlWzFdO3JldHVybiBJZXx8VGU/KFRlJiYoVGU9VGUu''@;'; + put 'put ''c3Vic3RyKDAsVGUubGVuZ3RoLTEpKSxJZStUZSk6Ii4ifSx2ZS5iYXNlbmFtZT1mdW5jdGlvbihrZSxTZSl7dmFyIEllPUFlKGtlKVsyXTtyZXR1cm4gU2UmJkllLnN1YnN0cigtMSpTZS5sZW5ndGgpPT09U2UmJihJZT1JZS5zdWJzdHIoMCxJZS5sZW5ndGgtU2UubGVuZ3RoKSksSWV9LHZl''@;'; + put 'put ''LmV4dG5hbWU9ZnVuY3Rpb24oa2Upe3JldHVybiBBZShrZSlbM119LHZlLmZvcm1hdD1mdW5jdGlvbihrZSl7aWYoIVkuaXNPYmplY3Qoa2UpKXRocm93IG5ldyBUeXBlRXJyb3IoIlBhcmFtZXRlciAncGF0aE9iamVjdCcgbXVzdCBiZSBhbiBvYmplY3QsIG5vdCAiK3R5cGVvZiBrZSk7aWYo''@;'; + put 'put ''IVkuaXNTdHJpbmcoa2Uucm9vdHx8IiIpKXRocm93IG5ldyBUeXBlRXJyb3IoIidwYXRoT2JqZWN0LnJvb3QnIG11c3QgYmUgYSBzdHJpbmcgb3IgdW5kZWZpbmVkLCBub3QgIit0eXBlb2Yga2Uucm9vdCk7cmV0dXJuKGtlLmRpcj9rZS5kaXIrdmUuc2VwOiIiKSsoa2UuYmFzZXx8IiIpfSx2''@;'; + put 'put ''ZS5wYXJzZT1mdW5jdGlvbihrZSl7aWYoIVkuaXNTdHJpbmcoa2UpKXRocm93IG5ldyBUeXBlRXJyb3IoIlBhcmFtZXRlciAncGF0aFN0cmluZycgbXVzdCBiZSBhIHN0cmluZywgbm90ICIrdHlwZW9mIGtlKTt2YXIgU2U9QWUoa2UpO2lmKCFTZXx8NCE9PVNlLmxlbmd0aCl0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJJbnZhbGlkIHBhdGggJyIra2UrIiciKTtyZXR1cm4gU2VbMV09U2VbMV18fCIiLFNlWzJdPVNlWzJdfHwiIixTZVszXT1TZVszXXx8IiIse3Jvb3Q6U2VbMF0sZGlyOlNlWzBdK1NlWzFdLnNsaWNlKDAsLTEpLGJhc2U6U2VbMl0sZXh0OlNlWzNdLG5hbWU6U2VbMl0uc2xp''@;'; + put 'put ''Y2UoMCxTZVsyXS5sZW5ndGgtU2VbM10ubGVuZ3RoKX19LHZlLnNlcD0iLyIsdmUuZGVsaW1pdGVyPSI6IixVLmV4cG9ydHM9bGU/Sjp2ZSxVLmV4cG9ydHMucG9zaXg9dmUsVS5leHBvcnRzLndpbjMyPUp9LDU2MzI6KFUsUSxaKT0+e1EucGJrZGYyPVooODYzOCksUS5wYmtkZjJTeW5jPVoo''@;'; + put 'put ''MTI1Nyl9LDg2Mzg6KFUsUSxaKT0+e3ZhciBpZSxsZSxZPVooOTUwOSkuQnVmZmVyLFc9Wig3MzU3KSxOPVooMjM2OCksZWU9WigxMjU3KSxxPVooNzc3NyksSj1aLmcuY3J5cHRvJiZaLmcuY3J5cHRvLnN1YnRsZSxzZT17c2hhOiJTSEEtMSIsInNoYS0xIjoiU0hBLTEiLHNoYTE6IlNIQS0x''@;'; + put 'put ''IixzaGEyNTY6IlNIQS0yNTYiLCJzaGEtMjU2IjoiU0hBLTI1NiIsc2hhMzg0OiJTSEEtMzg0Iiwic2hhLTM4NCI6IlNIQS0zODQiLCJzaGEtNTEyIjoiU0hBLTUxMiIsc2hhNTEyOiJTSEEtNTEyIn0sb2U9W107ZnVuY3Rpb24gY2UoKXtyZXR1cm4gbGV8fChsZT1aLmcucHJvY2VzcyYmWi5n''@;'; + put 'put ''LnByb2Nlc3MubmV4dFRpY2s/Wi5nLnByb2Nlc3MubmV4dFRpY2s6Wi5nLnF1ZXVlTWljcm90YXNrP1ouZy5xdWV1ZU1pY3JvdGFzazpaLmcuc2V0SW1tZWRpYXRlP1ouZy5zZXRJbW1lZGlhdGU6Wi5nLnNldFRpbWVvdXQpfWZ1bmN0aW9uIGRlKHZlLEFlLGtlLFNlLEllKXtyZXR1cm4gSi5p''@;'; + put 'put ''bXBvcnRLZXkoInJhdyIsdmUse25hbWU6IlBCS0RGMiJ9LCExLFsiZGVyaXZlQml0cyJdKS50aGVuKGZ1bmN0aW9uKFRlKXtyZXR1cm4gSi5kZXJpdmVCaXRzKHtuYW1lOiJQQktERjIiLHNhbHQ6QWUsaXRlcmF0aW9uczprZSxoYXNoOntuYW1lOkllfX0sVGUsU2U8PDMpfSkudGhlbihmdW5j''@;'; + put 'put ''dGlvbihUZSl7cmV0dXJuIFkuZnJvbShUZSl9KX1VLmV4cG9ydHM9ZnVuY3Rpb24odmUsQWUsa2UsU2UsSWUsVGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmKFRlPUllLEllPXZvaWQgMCk7dmFyIGhlLE8sRWU9c2VbKEllPUllfHwic2hhMSIpLnRvTG93ZXJDYXNlKCldO2lmKEVlJiYiZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2YgWi5nLlByb21pc2Upe2lmKFcoa2UsU2UpLHZlPXEodmUsTiwiUGFzc3dvcmQiKSxBZT1xKEFlLE4sIlNhbHQiKSwiZnVuY3Rpb24iIT10eXBlb2YgVGUpdGhyb3cgbmV3IEVycm9yKCJObyBjYWxsYmFjayBwcm92aWRlZCB0byBwYmtkZjIiKTtoZT1mdW5jdGlvbiho''@;'; + put 'put ''ZSl7aWYoWi5nLnByb2Nlc3MmJiFaLmcucHJvY2Vzcy5icm93c2VyfHwhSnx8IUouaW1wb3J0S2V5fHwhSi5kZXJpdmVCaXRzKXJldHVybiBQcm9taXNlLnJlc29sdmUoITEpO2lmKHZvaWQgMCE9PW9lW2hlXSlyZXR1cm4gb2VbaGVdO3ZhciBPPWRlKGllPWllfHxZLmFsbG9jKDgpLGllLDEw''@;'; + put 'put ''LDEyOCxoZSkudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4hMX0pO3JldHVybiBvZVtoZV09TyxPfShFZSkudGhlbihmdW5jdGlvbihoZSl7cmV0dXJuIGhlP2RlKHZlLEFlLGtlLFNlLEVlKTplZSh2ZSxBZSxrZSxTZSxJZSl9KSxPPVRlLGhlLnRo''@;'; + put 'put ''ZW4oZnVuY3Rpb24oeil7Y2UoKShmdW5jdGlvbigpe08obnVsbCx6KX0pfSxmdW5jdGlvbih6KXtjZSgpKGZ1bmN0aW9uKCl7Tyh6KX0pfSl9ZWxzZSBjZSgpKGZ1bmN0aW9uKCl7dmFyIGhlO3RyeXtoZT1lZSh2ZSxBZSxrZSxTZSxJZSl9Y2F0Y2goTyl7cmV0dXJuIFRlKE8pfVRlKG51bGws''@;'; + put 'put ''aGUpfSl9fSwyMzY4OihVLFEsWik9Pnt2YXIgaWUsbGU9Wig0MTU1KTtpZT1aLmcucHJvY2VzcyYmWi5nLnByb2Nlc3MuYnJvd3Nlcj8idXRmLTgiOlouZy5wcm9jZXNzJiZaLmcucHJvY2Vzcy52ZXJzaW9uP3BhcnNlSW50KGxlLnZlcnNpb24uc3BsaXQoIi4iKVswXS5zbGljZSgxKSwxMCk+''@;'; + put 'put ''PTY/InV0Zi04IjoiYmluYXJ5IjoidXRmLTgiLFUuZXhwb3J0cz1pZX0sNzM1NzpVPT57dmFyIFE9TWF0aC5wb3coMiwzMCktMTtVLmV4cG9ydHM9ZnVuY3Rpb24oWixpZSl7aWYoIm51bWJlciIhPXR5cGVvZiBaKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdGlvbnMgbm90IGEgbnVtYmVy''@;'; + put 'put ''Iik7aWYoWjwwKXRocm93IG5ldyBUeXBlRXJyb3IoIkJhZCBpdGVyYXRpb25zIik7aWYoIm51bWJlciIhPXR5cGVvZiBpZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJLZXkgbGVuZ3RoIG5vdCBhIG51bWJlciIpO2lmKGllPDB8fGllPlF8fGllIT1pZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQg''@;'; + put 'put ''a2V5IGxlbmd0aCIpfX0sMTI1NzooVSxRLFopPT57dmFyIGllPVooODAyOCksbGU9Wig5Nzg1KSxZPVooOTA3MiksVz1aKDk1MDkpLkJ1ZmZlcixOPVooNzM1NyksZWU9WigyMzY4KSxxPVooNzc3NyksSj1XLmFsbG9jKDEyOCksc2U9e21kNToxNixzaGExOjIwLHNoYTIyNDoyOCxzaGEyNTY6''@;'; + put 'put ''MzIsc2hhMzg0OjQ4LHNoYTUxMjo2NCxybWQxNjA6MjAscmlwZW1kMTYwOjIwfTtmdW5jdGlvbiBvZShjZSxkZSx2ZSl7dmFyIGhlLEFlPSJybWQxNjAiPT09KGhlPWNlKXx8InJpcGVtZDE2MCI9PT1oZT9mdW5jdGlvbiB6KG5lKXtyZXR1cm4obmV3IGxlKS51cGRhdGUobmUpLmRpZ2VzdCgp''@;'; + put 'put ''fToibWQ1Ij09PWhlP2llOmZ1bmN0aW9uIE8obmUpe3JldHVybiBZKGhlKS51cGRhdGUobmUpLmRpZ2VzdCgpfSxrZT0ic2hhNTEyIj09PWNlfHwic2hhMzg0Ij09PWNlPzEyODo2NDtkZS5sZW5ndGg+a2U/ZGU9QWUoZGUpOmRlLmxlbmd0aDxrZSYmKGRlPVcuY29uY2F0KFtkZSxKXSxrZSkp''@;'; + put 'put ''O2Zvcih2YXIgU2U9Vy5hbGxvY1Vuc2FmZShrZStzZVtjZV0pLEllPVcuYWxsb2NVbnNhZmUoa2Urc2VbY2VdKSxUZT0wO1RlPGtlO1RlKyspU2VbVGVdPTU0XmRlW1RlXSxJZVtUZV09OTJeZGVbVGVdO3ZhciBFZT1XLmFsbG9jVW5zYWZlKGtlK3ZlKzQpO1NlLmNvcHkoRWUsMCwwLGtlKSx0''@;'; + put 'put ''aGlzLmlwYWQxPUVlLHRoaXMuaXBhZDI9U2UsdGhpcy5vcGFkPUllLHRoaXMuYWxnPWNlLHRoaXMuYmxvY2tzaXplPWtlLHRoaXMuaGFzaD1BZSx0aGlzLnNpemU9c2VbY2VdfW9lLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oY2UsZGUpe3JldHVybiBjZS5jb3B5KGRlLHRoaXMuYmxvY2tzaXpl''@;'; + put 'put ''KSx0aGlzLmhhc2goZGUpLmNvcHkodGhpcy5vcGFkLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2godGhpcy5vcGFkKX0sVS5leHBvcnRzPWZ1bmN0aW9uKGNlLGRlLHZlLEFlLGtlKXtOKHZlLEFlKTt2YXIgU2U9bmV3IG9lKGtlPWtlfHwic2hhMSIsY2U9cShjZSxlZSwiUGFzc3dvcmQiKSwo''@;'; + put 'put ''ZGU9cShkZSxlZSwiU2FsdCIpKS5sZW5ndGgpLEllPVcuYWxsb2NVbnNhZmUoQWUpLFRlPVcuYWxsb2NVbnNhZmUoZGUubGVuZ3RoKzQpO2RlLmNvcHkoVGUsMCwwLGRlLmxlbmd0aCk7Zm9yKHZhciBFZT0wLGhlPXNlW2tlXSxPPU1hdGguY2VpbChBZS9oZSksej0xO3o8PU87eisrKXtUZS53''@;'; + put 'put ''cml0ZVVJbnQzMkJFKHosZGUubGVuZ3RoKTtmb3IodmFyIG5lPVNlLnJ1bihUZSxTZS5pcGFkMSksdGU9bmUseD0xO3g8dmU7eCsrKXt0ZT1TZS5ydW4odGUsU2UuaXBhZDIpO2Zvcih2YXIgUD0wO1A8aGU7UCsrKW5lW1BdXj10ZVtQXX1uZS5jb3B5KEllLEVlKSxFZSs9aGV9cmV0dXJuIEll''@;'; + put 'put ''fX0sNzc3NzooVSxRLFopPT57dmFyIGllPVooOTUwOSkuQnVmZmVyO1UuZXhwb3J0cz1mdW5jdGlvbihsZSxZLFcpe2lmKGllLmlzQnVmZmVyKGxlKSlyZXR1cm4gbGU7aWYoInN0cmluZyI9PXR5cGVvZiBsZSlyZXR1cm4gaWUuZnJvbShsZSxZKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcobGUp''@;'; + put 'put ''KXJldHVybiBpZS5mcm9tKGxlLmJ1ZmZlcik7dGhyb3cgbmV3IFR5cGVFcnJvcihXKyIgbXVzdCBiZSBhIHN0cmluZywgYSBCdWZmZXIsIGEgdHlwZWQgYXJyYXkgb3IgYSBEYXRhVmlldyIpfX0sNDE1NTpVPT57dmFyIFEsWixpZT1VLmV4cG9ydHM9e307ZnVuY3Rpb24gbGUoKXt0aHJvdyBu''@;'; + put 'put ''ZXcgRXJyb3IoInNldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBZKCl7dGhyb3cgbmV3IEVycm9yKCJjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBXKHZlKXtpZihRPT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dCh2ZSww''@;'; + put 'put ''KTtpZigoUT09PWxlfHwhUSkmJnNldFRpbWVvdXQpcmV0dXJuIFE9c2V0VGltZW91dCxzZXRUaW1lb3V0KHZlLDApO3RyeXtyZXR1cm4gUSh2ZSwwKX1jYXRjaChBZSl7dHJ5e3JldHVybiBRLmNhbGwobnVsbCx2ZSwwKX1jYXRjaChrZSl7cmV0dXJuIFEuY2FsbCh0aGlzLHZlLDApfX19IWZ1''@;'; + put 'put ''bmN0aW9uKCl7dHJ5e1E9ImZ1bmN0aW9uIj09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDpsZX1jYXRjaCh2ZSl7UT1sZX10cnl7Wj0iZnVuY3Rpb24iPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpZfWNhdGNoKHZlKXtaPVl9fSgpO3ZhciBOLGVlPVtdLHE9ITEsSj0t''@;'; + put 'put ''MTtmdW5jdGlvbiBzZSgpe3EmJk4mJihxPSExLE4ubGVuZ3RoP2VlPU4uY29uY2F0KGVlKTpKPS0xLGVlLmxlbmd0aCYmb2UoKSl9ZnVuY3Rpb24gb2UoKXtpZighcSl7dmFyIHZlPVcoc2UpO3E9ITA7Zm9yKHZhciBBZT1lZS5sZW5ndGg7QWU7KXtmb3IoTj1lZSxlZT1bXTsrK0o8QWU7KU4m''@;'; + put 'put ''Jk5bSl0ucnVuKCk7Sj0tMSxBZT1lZS5sZW5ndGh9Tj1udWxsLHE9ITEsZnVuY3Rpb24oa2Upe2lmKFo9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dChrZSk7aWYoKFo9PT1ZfHwhWikmJmNsZWFyVGltZW91dClyZXR1cm4gWj1jbGVhclRpbWVvdXQsY2xlYXJUaW1lb3V0KGtl''@;'; + put 'put ''KTt0cnl7WihrZSl9Y2F0Y2goU2Upe3RyeXtyZXR1cm4gWi5jYWxsKG51bGwsa2UpfWNhdGNoKEllKXtyZXR1cm4gWi5jYWxsKHRoaXMsa2UpfX19KHZlKX19ZnVuY3Rpb24gY2UodmUsQWUpe3RoaXMuZnVuPXZlLHRoaXMuYXJyYXk9QWV9ZnVuY3Rpb24gZGUoKXt9aWUubmV4dFRpY2s9ZnVu''@;'; + put 'put ''Y3Rpb24odmUpe3ZhciBBZT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZihhcmd1bWVudHMubGVuZ3RoPjEpZm9yKHZhciBrZT0xO2tlPGFyZ3VtZW50cy5sZW5ndGg7a2UrKylBZVtrZS0xXT1hcmd1bWVudHNba2VdO2VlLnB1c2gobmV3IGNlKHZlLEFlKSksMSE9PWVlLmxlbmd0''@;'; + put 'put ''aHx8cXx8VyhvZSl9LGNlLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxpZS50aXRsZT0iYnJvd3NlciIsaWUuYnJvd3Nlcj0hMCxpZS5lbnY9e30saWUuYXJndj1bXSxpZS52ZXJzaW9uPSIiLGllLnZlcnNpb25zPXt9LGllLm9uPWRl''@;'; + put 'put ''LGllLmFkZExpc3RlbmVyPWRlLGllLm9uY2U9ZGUsaWUub2ZmPWRlLGllLnJlbW92ZUxpc3RlbmVyPWRlLGllLnJlbW92ZUFsbExpc3RlbmVycz1kZSxpZS5lbWl0PWRlLGllLnByZXBlbmRMaXN0ZW5lcj1kZSxpZS5wcmVwZW5kT25jZUxpc3RlbmVyPWRlLGllLmxpc3RlbmVycz1mdW5jdGlv''@;'; + put 'put ''bih2ZSl7cmV0dXJuW119LGllLmJpbmRpbmc9ZnVuY3Rpb24odmUpe3Rocm93IG5ldyBFcnJvcigicHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQiKX0saWUuY3dkPWZ1bmN0aW9uKCl7cmV0dXJuIi8ifSxpZS5jaGRpcj1mdW5jdGlvbih2ZSl7dGhyb3cgbmV3IEVycm9yKCJwcm9j''@;'; + put 'put ''ZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQiKX0saWUudW1hc2s9ZnVuY3Rpb24oKXtyZXR1cm4gMH19LDYyNDQ6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9WigzNjg5KSxsZT17fTtsZS5ydWxlcz1aKDM3MDQpLm1hcChmdW5jdGlvbihZKXtyZXR1cm57cnVsZTpZLHN1ZmZpeDpZ''@;'; + put 'put ''LnJlcGxhY2UoL14oXCpcLnxcISkvLCIiKSxwdW55U3VmZml4Oi0xLHdpbGRjYXJkOiIqIj09PVkuY2hhckF0KDApLGV4Y2VwdGlvbjoiISI9PT1ZLmNoYXJBdCgwKX19KSxsZS5lbmRzV2l0aD1mdW5jdGlvbihZLFcpe3JldHVybi0xIT09WS5pbmRleE9mKFcsWS5sZW5ndGgtVy5sZW5ndGgp''@;'; + put 'put ''fSxsZS5maW5kUnVsZT1mdW5jdGlvbihZKXt2YXIgVz1pZS50b0FTQ0lJKFkpO3JldHVybiBsZS5ydWxlcy5yZWR1Y2UoZnVuY3Rpb24oTixlZSl7cmV0dXJuLTE9PT1lZS5wdW55U3VmZml4JiYoZWUucHVueVN1ZmZpeD1pZS50b0FTQ0lJKGVlLnN1ZmZpeCkpLGxlLmVuZHNXaXRoKFcsIi4i''@;'; + put 'put ''K2VlLnB1bnlTdWZmaXgpfHxXPT09ZWUucHVueVN1ZmZpeD9lZTpOfSxudWxsKX0sUS5lcnJvckNvZGVzPXtET01BSU5fVE9PX1NIT1JUOiJEb21haW4gbmFtZSB0b28gc2hvcnQuIixET01BSU5fVE9PX0xPTkc6IkRvbWFpbiBuYW1lIHRvbyBsb25nLiBJdCBzaG91bGQgYmUgbm8gbW9yZSB0''@;'; + put 'put ''aGFuIDI1NSBjaGFycy4iLExBQkVMX1NUQVJUU19XSVRIX0RBU0g6IkRvbWFpbiBuYW1lIGxhYmVsIGNhbiBub3Qgc3RhcnQgd2l0aCBhIGRhc2guIixMQUJFTF9FTkRTX1dJVEhfREFTSDoiRG9tYWluIG5hbWUgbGFiZWwgY2FuIG5vdCBlbmQgd2l0aCBhIGRhc2guIixMQUJFTF9UT09fTE9O''@;'; + put 'put ''RzoiRG9tYWluIG5hbWUgbGFiZWwgc2hvdWxkIGJlIGF0IG1vc3QgNjMgY2hhcnMgbG9uZy4iLExBQkVMX1RPT19TSE9SVDoiRG9tYWluIG5hbWUgbGFiZWwgc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcmFjdGVyIGxvbmcuIixMQUJFTF9JTlZBTElEX0NIQVJTOiJEb21haW4gbmFtZSBsYWJl''@;'; + put 'put ''bCBjYW4gb25seSBjb250YWluIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9yIGRhc2hlcy4ifSxsZS52YWxpZGF0ZT1mdW5jdGlvbihZKXt2YXIgVz1pZS50b0FTQ0lJKFkpO2lmKFcubGVuZ3RoPDEpcmV0dXJuIkRPTUFJTl9UT09fU0hPUlQiO2lmKFcubGVuZ3RoPjI1NSlyZXR1cm4iRE9N''@;'; + put 'put ''QUlOX1RPT19MT05HIjtmb3IodmFyIE4sZWU9Vy5zcGxpdCgiLiIpLHE9MDtxPGVlLmxlbmd0aDsrK3Epe2lmKCEoTj1lZVtxXSkubGVuZ3RoKXJldHVybiJMQUJFTF9UT09fU0hPUlQiO2lmKE4ubGVuZ3RoPjYzKXJldHVybiJMQUJFTF9UT09fTE9ORyI7aWYoIi0iPT09Ti5jaGFyQXQoMCkp''@;'; + put 'put ''cmV0dXJuIkxBQkVMX1NUQVJUU19XSVRIX0RBU0giO2lmKCItIj09PU4uY2hhckF0KE4ubGVuZ3RoLTEpKXJldHVybiJMQUJFTF9FTkRTX1dJVEhfREFTSCI7aWYoIS9eW2EtejAtOVwtXSskLy50ZXN0KE4pKXJldHVybiJMQUJFTF9JTlZBTElEX0NIQVJTIn19LFEucGFyc2U9ZnVuY3Rpb24o''@;'; + put 'put ''WSl7aWYoInN0cmluZyIhPXR5cGVvZiBZKXRocm93IG5ldyBUeXBlRXJyb3IoIkRvbWFpbiBuYW1lIG11c3QgYmUgYSBzdHJpbmcuIik7dmFyIFc9WS5zbGljZSgwKS50b0xvd2VyQ2FzZSgpOyIuIj09PVcuY2hhckF0KFcubGVuZ3RoLTEpJiYoVz1XLnNsaWNlKDAsVy5sZW5ndGgtMSkpO3Zh''@;'; + put 'put ''ciBOPWxlLnZhbGlkYXRlKFcpO2lmKE4pcmV0dXJue2lucHV0OlksZXJyb3I6e21lc3NhZ2U6US5lcnJvckNvZGVzW05dLGNvZGU6Tn19O3ZhciBlZT17aW5wdXQ6WSx0bGQ6bnVsbCxzbGQ6bnVsbCxkb21haW46bnVsbCxzdWJkb21haW46bnVsbCxsaXN0ZWQ6ITF9LHE9Vy5zcGxpdCgiLiIp''@;'; + put 'put ''O2lmKCJsb2NhbCI9PT1xW3EubGVuZ3RoLTFdKXJldHVybiBlZTt2YXIgSj1mdW5jdGlvbigpe3JldHVybi94bi0tLy50ZXN0KFcpJiYoZWUuZG9tYWluJiYoZWUuZG9tYWluPWllLnRvQVNDSUkoZWUuZG9tYWluKSksZWUuc3ViZG9tYWluJiYoZWUuc3ViZG9tYWluPWllLnRvQVNDSUkoZWUu''@;'; + put 'put ''c3ViZG9tYWluKSkpLGVlfSxzZT1sZS5maW5kUnVsZShXKTtpZighc2UpcmV0dXJuIHEubGVuZ3RoPDI/ZWU6KGVlLnRsZD1xLnBvcCgpLGVlLnNsZD1xLnBvcCgpLGVlLmRvbWFpbj1bZWUuc2xkLGVlLnRsZF0uam9pbigiLiIpLHEubGVuZ3RoJiYoZWUuc3ViZG9tYWluPXEucG9wKCkpLEoo''@;'; + put 'put ''KSk7ZWUubGlzdGVkPSEwO3ZhciBvZT1zZS5zdWZmaXguc3BsaXQoIi4iKSxjZT1xLnNsaWNlKDAscS5sZW5ndGgtb2UubGVuZ3RoKTtyZXR1cm4gc2UuZXhjZXB0aW9uJiZjZS5wdXNoKG9lLnNoaWZ0KCkpLGVlLnRsZD1vZS5qb2luKCIuIiksY2UubGVuZ3RoPyhzZS53aWxkY2FyZCYmKG9l''@;'; + put 'put ''LnVuc2hpZnQoY2UucG9wKCkpLGVlLnRsZD1vZS5qb2luKCIuIikpLGNlLmxlbmd0aCYmKGVlLnNsZD1jZS5wb3AoKSxlZS5kb21haW49W2VlLnNsZCxlZS50bGRdLmpvaW4oIi4iKSxjZS5sZW5ndGgmJihlZS5zdWJkb21haW49Y2Uuam9pbigiLiIpKSksSigpKTpKKCl9LFEuZ2V0PWZ1bmN0''@;'; + put 'put ''aW9uKFkpe3JldHVybiBZJiZRLnBhcnNlKFkpLmRvbWFpbnx8bnVsbH0sUS5pc1ZhbGlkPWZ1bmN0aW9uKFkpe3ZhciBXPVEucGFyc2UoWSk7cmV0dXJuIEJvb2xlYW4oVy5kb21haW4mJlcubGlzdGVkKX19LDc5MDA6KFUsUSxaKT0+e1EucHVibGljRW5jcnlwdD1aKDY1NTkpLFEucHJpdmF0''@;'; + put 'put ''ZURlY3J5cHQ9Wig2MTM4KSxRLnByaXZhdGVFbmNyeXB0PWZ1bmN0aW9uKGllLGxlKXtyZXR1cm4gUS5wdWJsaWNFbmNyeXB0KGllLGxlLCEwKX0sUS5wdWJsaWNEZWNyeXB0PWZ1bmN0aW9uKGllLGxlKXtyZXR1cm4gUS5wcml2YXRlRGVjcnlwdChpZSxsZSwhMCl9fSw5MTk5OihVLFEsWik9''@;'; + put 'put ''Pnt2YXIgaWU9WigzNDgyKSxsZT1aKDk1MDkpLkJ1ZmZlcjtmdW5jdGlvbiBZKFcpe3ZhciBOPWxlLmFsbG9jVW5zYWZlKDQpO3JldHVybiBOLndyaXRlVUludDMyQkUoVywwKSxOfVUuZXhwb3J0cz1mdW5jdGlvbihXLE4pe2Zvcih2YXIgZWUscT1sZS5hbGxvYygwKSxKPTA7cS5sZW5ndGg8''@;'; + put 'put ''TjspZWU9WShKKyspLHE9bGUuY29uY2F0KFtxLGllKCJzaGExIikudXBkYXRlKFcpLnVwZGF0ZShlZSkuZGlnZXN0KCldKTtyZXR1cm4gcS5zbGljZSgwLE4pfX0sMjE0NDpmdW5jdGlvbihVLFEsWil7IWZ1bmN0aW9uKGllLGxlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gWSh4LFApe2lmKCF4''@;'; + put 'put ''KXRocm93IG5ldyBFcnJvcihQfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIFcoeCxQKXt4LnN1cGVyXz1QO3ZhciBWPWZ1bmN0aW9uKCl7fTtWLnByb3RvdHlwZT1QLnByb3RvdHlwZSx4LnByb3RvdHlwZT1uZXcgVix4LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj14fWZ1bmN0aW9uIE4o''@;'; + put 'put ''eCxQLFYpe2lmKE4uaXNCTih4KSlyZXR1cm4geDt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09eCYmKCJsZSIhPT1QJiYiYmUiIT09UHx8KFY9UCxQPTEwKSx0aGlzLl9pbml0KHh8fDAsUHx8MTAsVnx8ImJlIikpfXZh''@;'; + put 'put ''ciBlZTsib2JqZWN0Ij09dHlwZW9mIGllP2llLmV4cG9ydHM9TjpsZS5CTj1OLE4uQk49TixOLndvcmRTaXplPTI2O3RyeXtlZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOlooNzEwOCkuQnVmZmVyfWNhdGNoKHgpe31m''@;'; + put 'put ''dW5jdGlvbiBxKHgsUCl7dmFyIFY9eC5jaGFyQ29kZUF0KFApO3JldHVybiBWPj02NSYmVjw9NzA/Vi01NTpWPj05NyYmVjw9MTAyP1YtODc6Vi00OCYxNX1mdW5jdGlvbiBKKHgsUCxWKXt2YXIgVD1xKHgsVik7cmV0dXJuIFYtMT49UCYmKFR8PXEoeCxWLTEpPDw0KSxUfWZ1bmN0aW9uIHNl''@;'; + put 'put ''KHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9TWF0aC5taW4oeC5sZW5ndGgsVikseWU9UDt5ZTxGO3llKyspe3ZhciBDZT14LmNoYXJDb2RlQXQoeWUpLTQ4O1MqPVQsUys9Q2U+PTQ5P0NlLTQ5KzEwOkNlPj0xNz9DZS0xNysxMDpDZX1yZXR1cm4gU31OLmlzQk49ZnVuY3Rpb24oeCl7cmV0dXJu''@;'; + put 'put ''IHggaW5zdGFuY2VvZiBOfHxudWxsIT09eCYmIm9iamVjdCI9PXR5cGVvZiB4JiZ4LmNvbnN0cnVjdG9yLndvcmRTaXplPT09Ti53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheSh4LndvcmRzKX0sTi5tYXg9ZnVuY3Rpb24oeCxQKXtyZXR1cm4geC5jbXAoUCk+MD94OlB9LE4ubWluPWZ1bmN0aW9u''@;'; + put 'put ''KHgsUCl7cmV0dXJuIHguY21wKFApPDA/eDpQfSxOLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih4LFAsVil7aWYoIm51bWJlciI9PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0TnVtYmVyKHgsUCxWKTtpZigib2JqZWN0Ij09dHlwZW9mIHgpcmV0dXJuIHRoaXMuX2luaXRBcnJheSh4LFAs''@;'; + put 'put ''Vik7ImhleCI9PT1QJiYoUD0xNiksWShQPT09KDB8UCkmJlA+PTImJlA8PTM2KTt2YXIgVD0wOyItIj09PSh4PXgudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoVCsrLHRoaXMubmVnYXRpdmU9MSksVDx4Lmxlbmd0aCYmKDE2PT09UD90aGlzLl9wYXJzZUhleCh4LFQsVik6''@;'; + put 'put ''KHRoaXMuX3BhcnNlQmFzZSh4LFAsVCksImxlIj09PVYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxQLFYpKSl9LE4ucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHgsUCxWKXt4PDAmJih0aGlzLm5lZ2F0aXZlPTEseD0teCkseDw2NzEwODg2ND8odGhpcy53b3Jkcz1b''@;'; + put 'put ''NjcxMDg4NjMmeF0sdGhpcy5sZW5ndGg9MSk6eDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ4LHgvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihZKHg8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3''@;'; + put 'put ''MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKX0sTi5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih4LFAsVil7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgubGVuZ3RoKSx4Lmxlbmd0aDw9MClyZXR1cm4gdGhp''@;'; + put 'put ''cy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh4Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT0wO3ZhciBTLEYseWU9MDtpZigiYmUi''@;'; + put 'put ''PT09Vilmb3IoVD14Lmxlbmd0aC0xLFM9MDtUPj0wO1QtPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QtMV08PDh8eFtULTJdPDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7ZWxzZSBpZigi''@;'; + put 'put ''bGUiPT09Vilmb3IoVD0wLFM9MDtUPHgubGVuZ3RoO1QrPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QrMV08PDh8eFtUKzJdPDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7cmV0dXJuIHRo''@;'; + put 'put ''aXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHgsUCxWKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKHgubGVuZ3RoLVApLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1Rd''@;'; + put 'put ''PTA7dmFyIFMsRj0wLHllPTA7aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgtMTtUPj1QO1QtPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9NjcxMDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODtlbHNlIGZvcihUPSh4Lmxlbmd0aC1Q''@;'; + put 'put ''KSUyPT0wP1ArMTpQO1Q8eC5sZW5ndGg7VCs9MilTPUooeCxQLFQpPDxGLHRoaXMud29yZHNbeWVdfD02NzEwODg2MyZTLEY+PTE4PyhGLT0xOCx0aGlzLndvcmRzW3llKz0xXXw9Uz4+PjI2KTpGKz04O3RoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih4LFAs''@;'; + put 'put ''Vil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIFQ9MCxTPTE7Uzw9NjcxMDg4NjM7Uyo9UClUKys7VC0tLFM9Uy9QfDA7Zm9yKHZhciBGPXgubGVuZ3RoLVYseWU9RiVULENlPU1hdGgubWluKEYsRi15ZSkrVixEZT0wLFBlPVY7UGU8Q2U7UGUrPVQpRGU9c2UoeCxQZSxQ''@;'; + put 'put ''ZStULFApLHRoaXMuaW11bG4oUyksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSk7aWYoMCE9PXllKXt2YXIgUWU9MTtmb3IoRGU9c2UoeCxQZSx4Lmxlbmd0aCxQKSxQZT0wO1BlPHllO1BlKyspUWUqPVA7dGhpcy5pbXVsbihRZSks''@;'; + put 'put ''dGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSl9dGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHgpe3gud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl4''@;'; + put 'put ''LndvcmRzW1BdPXRoaXMud29yZHNbUF07eC5sZW5ndGg9dGhpcy5sZW5ndGgseC5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLHgucmVkPXRoaXMucmVkfSxOLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB0aGlzLmNvcHkoeCkseH0sTi5wcm90b3R5''@;'; + put 'put ''cGUuX2V4cGFuZD1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sTi5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0''@;'; + put 'put ''aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxOLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sTi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgb2U9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAw''@;'; + put 'put ''MDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sY2U9WzAsMCwyNSwxNiwxMiwxMSwx''@;'; + put 'put ''MCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sZGU9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgs''@;'; + put 'put ''NjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQz''@;'; + put 'put ''MiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gdmUoeCxQLFYpe1YubmVnYXRpdmU9UC5uZWdhdGl2ZV54Lm5lZ2F0aXZlO3ZhciBUPXgubGVuZ3RoK1AubGVuZ3RofDA7Vi5sZW5ndGg9VCxUPVQtMXwwO3ZhciBTPTB8eC53b3Jkc1swXSxGPTB8UC53b3Jk''@;'; + put 'put ''c1swXSx5ZT1TKkYsRGU9eWUvNjcxMDg4NjR8MDtWLndvcmRzWzBdPTY3MTA4ODYzJnllO2Zvcih2YXIgUGU9MTtQZTxUO1BlKyspe2Zvcih2YXIgUWU9RGU+Pj4yNiwkZT02NzEwODg2MyZEZSxndD1NYXRoLm1pbihQZSxQLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLXgubGVuZ3RoKzEp''@;'; + put 'put ''O3d0PD1ndDt3dCsrKVFlKz0oeWU9KFM9MHx4LndvcmRzW1BlLXd0fDBdKSooRj0wfFAud29yZHNbd3RdKSskZSkvNjcxMDg4NjR8MCwkZT02NzEwODg2MyZ5ZTtWLndvcmRzW1BlXT0wfCRlLERlPTB8UWV9cmV0dXJuIDAhPT1EZT9WLndvcmRzW1BlXT0wfERlOlYubGVuZ3RoLS0sVi5zdHJp''@;'; + put 'put ''cCgpfU4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHgsUCl7dmFyIFY7aWYoUD0wfFB8fDEsMTY9PT0oeD14fHwxMCl8fCJoZXgiPT09eCl7Vj0iIjtmb3IodmFyIFQ9MCxTPTAsRj0wO0Y8dGhpcy5sZW5ndGg7RisrKXt2YXIgeWU9dGhpcy53b3Jkc1tGXSxDZT0oMTY3NzcyMTUmKHll''@;'; + put 'put ''PDxUfFMpKS50b1N0cmluZygxNik7Vj0wIT0oUz15ZT4+PjI0LVQmMTY3NzcyMTUpfHxGIT09dGhpcy5sZW5ndGgtMT9vZVs2LUNlLmxlbmd0aF0rQ2UrVjpDZStWLChUKz0yKT49MjYmJihULT0yNixGLS0pfWZvcigwIT09UyYmKFY9Uy50b1N0cmluZygxNikrVik7Vi5sZW5ndGglUCE9MDsp''@;'; + put 'put ''Vj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfWlmKHg9PT0oMHx4KSYmeD49MiYmeDw9MzYpe3ZhciBEZT1jZVt4XSxQZT1kZVt4XTtWPSIiO3ZhciBRZT10aGlzLmNsb25lKCk7Zm9yKFFlLm5lZ2F0aXZlPTA7IVFlLmlzWmVybygpOyl7dmFyICRlPVFlLm1v''@;'; + put 'put ''ZG4oUGUpLnRvU3RyaW5nKHgpO1Y9KFFlPVFlLmlkaXZuKFBlKSkuaXNaZXJvKCk/JGUrVjpvZVtEZS0kZS5sZW5ndGhdKyRlK1Z9Zm9yKHRoaXMuaXNaZXJvKCkmJihWPSIwIitWKTtWLmxlbmd0aCVQIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9''@;'; + put 'put ''WSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxOLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB4PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD94Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRo''@;'; + put 'put ''aXMud29yZHNbMl0/eCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJlkoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy14Onh9LE4ucHJvdG90eXBlLnRvSlNPTj1m''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sTi5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gWSh2b2lkIDAhPT1lZSksdGhpcy50b0FycmF5TGlrZShlZSx4LFApfSxOLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''dG9BcnJheUxpa2UoQXJyYXkseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oeCxQLFYpe3ZhciBUPXRoaXMuYnl0ZUxlbmd0aCgpLFM9Vnx8TWF0aC5tYXgoMSxUKTtZKFQ8PVMsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxZKFM+MCwiUmVx''@;'; + put 'put ''dWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBGLHllLENlPSJsZSI9PT1QLERlPW5ldyB4KFMpLFBlPXRoaXMuY2xvbmUoKTtpZihDZSl7Zm9yKHllPTA7IVBlLmlzWmVybygpO3llKyspRj1QZS5hbmRsbigyNTUpLFBlLml1c2hybig4KSxEZVt5ZV09Rjtmb3Io''@;'; + put 'put ''O3llPFM7eWUrKylEZVt5ZV09MH1lbHNle2Zvcih5ZT0wO3llPFMtVDt5ZSsrKURlW3llXT0wO2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVbUy15ZS0xXT1GfXJldHVybiBEZX0sTi5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNs''@;'; + put 'put ''ejMyP2Z1bmN0aW9uKHgpe3JldHVybiAzMi1NYXRoLmNsejMyKHgpfTpmdW5jdGlvbih4KXt2YXIgUD14LFY9MDtyZXR1cm4gUD49NDA5NiYmKFYrPTEzLFA+Pj49MTMpLFA+PTY0JiYoVis9NyxQPj4+PTcpLFA+PTgmJihWKz00LFA+Pj49NCksUD49MiYmKFYrPTIsUD4+Pj0yKSxWK1B9LE4u''@;'; + put 'put ''cHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbih4KXtpZigwPT09eClyZXR1cm4gMjY7dmFyIFA9eCxWPTA7cmV0dXJuIDA9PSg4MTkxJlApJiYoVis9MTMsUD4+Pj0xMyksMD09KDEyNyZQKSYmKFYrPTcsUD4+Pj03KSwwPT0oMTUmUCkmJihWKz00LFA+Pj49NCksMD09KDMmUCkmJihWKz0y''@;'; + put 'put ''LFA+Pj49MiksMD09KDEmUCkmJlYrKyxWfSxOLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStQfSxOLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlv''@;'; + put 'put ''bigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciB4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW1BdKTtpZih4Kz1WLDI2IT09VilicmVha31yZXR1cm4geH0sTi5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sTi5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKHgpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKHgpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rp''@;'; + put 'put ''b24oeCl7cmV0dXJuIHRoaXMudGVzdG4oeC0xKT90aGlzLm5vdG4oeCkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LE4ucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlz''@;'; + put 'put ''LmNsb25lKCkuaW5lZygpfSxOLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxOLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKHgpe2Zvcig7dGhpcy5sZW5ndGg8eC5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5s''@;'; + put 'put ''ZW5ndGgrK109MDtmb3IodmFyIFA9MDtQPHgubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPXRoaXMud29yZHNbUF18eC53b3Jkc1tQXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkp''@;'; + put 'put ''LHRoaXMuaXVvcih4KX0sTi5wcm90b3R5cGUub3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoeCk6eC5jbG9uZSgpLmlvcih0aGlzKX0sTi5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0''@;'; + put 'put ''aD90aGlzLmNsb25lKCkuaXVvcih4KTp4LmNsb25lKCkuaXVvcih0aGlzKX0sTi5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oeCl7dmFyIFA7UD10aGlzLmxlbmd0aD54Lmxlbmd0aD94OnRoaXM7Zm9yKHZhciBWPTA7VjxQLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT10aGlzLndvcmRzW1Zd''@;'; + put 'put ''Jngud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPVAubGVuZ3RoLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh4KX0sTi5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHgp''@;'; + put 'put ''e3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh4KTp4LmNsb25lKCkuaWFuZCh0aGlzKX0sTi5wcm90b3R5cGUudWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKHgpOnguY2xvbmUoKS5pdWFu''@;'; + put 'put ''ZCh0aGlzKX0sTi5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oeCl7dmFyIFAsVjt0aGlzLmxlbmd0aD54Lmxlbmd0aD8oUD10aGlzLFY9eCk6KFA9eCxWPXRoaXMpO2Zvcih2YXIgVD0wO1Q8Vi5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXV5WLndvcmRzW1RdO2lmKHRoaXMh''@;'; + put 'put ''PT1QKWZvcig7VDxQLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT1QLndvcmRzW1RdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMu''@;'; + put 'put ''aXV4b3IoeCl9LE4ucHJvdG90eXBlLnhvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoeCk6eC5jbG9uZSgpLml4b3IodGhpcyl9LE4ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3Ro''@;'; + put 'put ''P3RoaXMuY2xvbmUoKS5pdXhvcih4KTp4LmNsb25lKCkuaXV4b3IodGhpcyl9LE4ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD0wfE1hdGguY2VpbCh4LzI2KSxWPXglMjY7dGhpcy5fZXhwYW5kKFApLFY+MCYmUC0tO2Zvcih2''@;'; + put 'put ''YXIgVD0wO1Q8UDtUKyspdGhpcy53b3Jkc1tUXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tUXTtyZXR1cm4gVj4wJiYodGhpcy53b3Jkc1tUXT1+dGhpcy53b3Jkc1tUXSY2NzEwODg2Mz4+MjYtViksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlz''@;'; + put 'put ''LmNsb25lKCkuaW5vdG4oeCl9LE4ucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oeCxQKXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFY9eC8yNnwwLFQ9eCUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXT1QP3RoaXMud29yZHNbVl18MTw8VDp0aGlzLndv''@;'; + put 'put ''cmRzW1ZdJn4oMTw8VCksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgpe3ZhciBQLFYsVDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxQPXRoaXMuaXN1Yih4KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMu''@;'; + put 'put ''X25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlKXJldHVybiB4Lm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCkseC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFy''@;'; + put 'put ''IFM9MCxGPTA7RjxULmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKSsoMHxULndvcmRzW0ZdKStTKSxTPVA+Pj4yNjtmb3IoOzAhPT1TJiZGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJihQPSgwfFYud29yZHNbRl0pK1MpLFM9''@;'; + put 'put ''UD4+PjI2O2lmKHRoaXMubGVuZ3RoPVYubGVuZ3RoLDAhPT1TKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVMsdGhpcy5sZW5ndGgrKztlbHNlIGlmKFYhPT10aGlzKWZvcig7RjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT1WLndvcmRzW0ZdO3JldHVybiB0aGlzfSxOLnByb3RvdHlwZS5h''@;'; + put 'put ''ZGQ9ZnVuY3Rpb24oeCl7dmFyIFA7cmV0dXJuIDAhPT14Lm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oeC5uZWdhdGl2ZT0wLFA9dGhpcy5zdWIoeCkseC5uZWdhdGl2ZV49MSxQKTowPT09eC5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxQPXguc3Vi''@;'; + put 'put ''KHRoaXMpLHRoaXMubmVnYXRpdmU9MSxQKTp0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh4KTp4LmNsb25lKCkuaWFkZCh0aGlzKX0sTi5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4KXtpZigwIT09eC5uZWdhdGl2ZSl7eC5uZWdhdGl2ZT0wO3ZhciBQPXRoaXMuaWFk''@;'; + put 'put ''ZCh4KTtyZXR1cm4geC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFYsVCxTPXRoaXMuY21wKHgpO2lmKDA9PT1TKXJldHVy''@;'; + put 'put ''biB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztTPjA/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIEY9MCx5ZT0wO3llPFQubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSktKDB8VC53b3Jkc1t5ZV0pK0YpPj4yNix0aGlz''@;'; + put 'put ''LndvcmRzW3llXT02NzEwODg2MyZQO2Zvcig7MCE9PUYmJnllPFYubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSkrRik+PjI2LHRoaXMud29yZHNbeWVdPTY3MTA4ODYzJlA7aWYoMD09PUYmJnllPFYubGVuZ3RoJiZWIT09dGhpcylmb3IoO3llPFYubGVuZ3RoO3llKyspdGhpcy53''@;'; + put 'put ''b3Jkc1t5ZV09Vi53b3Jkc1t5ZV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHllKSxWIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKHgpfTt2''@;'; + put 'put ''YXIgQWU9ZnVuY3Rpb24oeCxQLFYpe3ZhciBULFMsRix5ZT14LndvcmRzLENlPVAud29yZHMsRGU9Vi53b3JkcyxQZT0wLFFlPTB8eWVbMF0sJGU9ODE5MSZRZSxndD1RZT4+PjEzLHd0PTB8eWVbMV0sdnQ9ODE5MSZ3dCxBdD13dD4+PjEzLG10PTB8eWVbMl0saHQ9ODE5MSZtdCxCdD1tdD4+''@;'; + put 'put ''PjEzLG9uPTB8eWVbM10sX3Q9ODE5MSZvbix0dD1vbj4+PjEzLGV0PTB8eWVbNF0sYXQ9ODE5MSZldCxMdD1ldD4+PjEzLEN0PTB8eWVbNV0sZnQ9ODE5MSZDdCxIdD1DdD4+PjEzLEdlPTB8eWVbNl0sVWU9ODE5MSZHZSx5dD1HZT4+PjEzLGp0PTB8eWVbN10sUXQ9ODE5MSZqdCxnbj1qdD4+''@;'; + put 'put ''PjEzLGRuPTB8eWVbOF0seW49ODE5MSZkbixsbj1kbj4+PjEzLE5uPTB8eWVbOV0sYm49ODE5MSZObixlcj1Obj4+PjEzLHNyPTB8Q2VbMF0sWG49ODE5MSZzcixGcj1zcj4+PjEzLHhyPTB8Q2VbMV0scXQ9ODE5MSZ4cixwcj14cj4+PjEzLG5yPTB8Q2VbMl0sQW49ODE5MSZucixxbj1ucj4+''@;'; + put 'put ''PjEzLFd0PTB8Q2VbM10scG49ODE5MSZXdCxLbj1XdD4+PjEzLE50PTB8Q2VbNF0sc249ODE5MSZOdCxVbj1OdD4+PjEzLHduPTB8Q2VbNV0sdG49ODE5MSZ3bix6bj13bj4+PjEzLFRyPTB8Q2VbNl0sQm49ODE5MSZUcixrcj1Ucj4+PjEzLG1uPTB8Q2VbN10sdW49ODE5MSZtbixjbj1tbj4+''@;'; + put 'put ''PjEzLF9uPTB8Q2VbOF0sR3Q9ODE5MSZfbixrbj1fbj4+PjEzLFZuPTB8Q2VbOV0sZW49ODE5MSZWbixJbj1Wbj4+PjEzO1YubmVnYXRpdmU9eC5uZWdhdGl2ZV5QLm5lZ2F0aXZlLFYubGVuZ3RoPTE5O3ZhciBKbj0oUGUrKFQ9TWF0aC5pbXVsKCRlLFhuKSl8MCkrKCg4MTkxJihTPShTPU1h''@;'; + put 'put ''dGguaW11bCgkZSxGcikpK01hdGguaW11bChndCxYbil8MCkpPDwxMyl8MDtQZT0oKEY9TWF0aC5pbXVsKGd0LEZyKSkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHZ0LFhuKSxTPShTPU1hdGguaW11bCh2dCxGcikpK01hdGguaW11bChBdCxYbil8''@;'; + put 'put ''MCxGPU1hdGguaW11bChBdCxGcik7dmFyIG9yPShQZSsoVD1UK01hdGguaW11bCgkZSxxdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLHByKXwwKStNYXRoLmltdWwoZ3QscXQpfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHByKXwwKSsoUz4+PjEzKXwwKSso''@;'; + put 'put ''b3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoaHQsWG4pLFM9KFM9TWF0aC5pbXVsKGh0LEZyKSkrTWF0aC5pbXVsKEJ0LFhuKXwwLEY9TWF0aC5pbXVsKEJ0LEZyKSxUPVQrTWF0aC5pbXVsKHZ0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwodnQscHIpfDApK01hdGguaW11bChB''@;'; + put 'put ''dCxxdCl8MCxGPUYrTWF0aC5pbXVsKEF0LHByKXwwO3ZhciBncj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxxbil8MCkrTWF0aC5pbXVsKGd0LEFuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxxbil8MCkrKFM+''@;'; + put 'put ''Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKF90LFhuKSxTPShTPU1hdGguaW11bChfdCxGcikpK01hdGguaW11bCh0dCxYbil8MCxGPU1hdGguaW11bCh0dCxGciksVD1UK01hdGguaW11bChodCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHByKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoQnQscXQpfDAsRj1GK01hdGguaW11bChCdCxwcil8MCxUPVQrTWF0aC5pbXVsKHZ0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwodnQscW4pfDApK01hdGguaW11bChBdCxBbil8MCxGPUYrTWF0aC5pbXVsKEF0LHFuKXwwO3ZhciBLcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscG4p''@;'; + put 'put ''fDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxLbil8MCkrTWF0aC5pbXVsKGd0LHBuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxLbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGF0LFhuKSxTPShTPU1hdGgu''@;'; + put 'put ''aW11bChhdCxGcikpK01hdGguaW11bChMdCxYbil8MCxGPU1hdGguaW11bChMdCxGciksVD1UK01hdGguaW11bChfdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKF90LHByKXwwKStNYXRoLmltdWwodHQscXQpfDAsRj1GK01hdGguaW11bCh0dCxwcil8MCxUPVQrTWF0aC5pbXVsKGh0LEFuKXww''@;'; + put 'put ''LFM9KFM9UytNYXRoLmltdWwoaHQscW4pfDApK01hdGguaW11bChCdCxBbil8MCxGPUYrTWF0aC5pbXVsKEJ0LHFuKXwwLFQ9VCtNYXRoLmltdWwodnQscG4pfDAsUz0oUz1TK01hdGguaW11bCh2dCxLbil8MCkrTWF0aC5pbXVsKEF0LHBuKXwwLEY9RitNYXRoLmltdWwoQXQsS24pfDA7dmFy''@;'; + put 'put ''IFZyPShQZSsoVD1UK01hdGguaW11bCgkZSxzbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLFVuKXwwKStNYXRoLmltdWwoZ3Qsc24pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LFVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMs''@;'; + put 'put ''VD1NYXRoLmltdWwoZnQsWG4pLFM9KFM9TWF0aC5pbXVsKGZ0LEZyKSkrTWF0aC5pbXVsKEh0LFhuKXwwLEY9TWF0aC5pbXVsKEh0LEZyKSxUPVQrTWF0aC5pbXVsKGF0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQscHIpfDApK01hdGguaW11bChMdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEx0''@;'; + put 'put ''LHByKXwwLFQ9VCtNYXRoLmltdWwoX3QsQW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxxbil8MCkrTWF0aC5pbXVsKHR0LEFuKXwwLEY9RitNYXRoLmltdWwodHQscW4pfDAsVD1UK01hdGguaW11bChodCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LEtuKXwwKStNYXRoLmltdWwoQnQscG4p''@;'; + put 'put ''fDAsRj1GK01hdGguaW11bChCdCxLbil8MCxUPVQrTWF0aC5pbXVsKHZ0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwodnQsVW4pfDApK01hdGguaW11bChBdCxzbil8MCxGPUYrTWF0aC5pbXVsKEF0LFVuKXwwO3ZhciBpaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsdG4pfDApfDApKygoODE5MSYo''@;'; + put 'put ''Uz0oUz1TK01hdGguaW11bCgkZSx6bil8MCkrTWF0aC5pbXVsKGd0LHRuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCx6bil8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFVlLFhuKSxTPShTPU1hdGguaW11bChVZSxGcikpK01h''@;'; + put 'put ''dGguaW11bCh5dCxYbil8MCxGPU1hdGguaW11bCh5dCxGciksVD1UK01hdGguaW11bChmdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHByKXwwKStNYXRoLmltdWwoSHQscXQpfDAsRj1GK01hdGguaW11bChIdCxwcil8MCxUPVQrTWF0aC5pbXVsKGF0LEFuKXwwLFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwoYXQscW4pfDApK01hdGguaW11bChMdCxBbil8MCxGPUYrTWF0aC5pbXVsKEx0LHFuKXwwLFQ9VCtNYXRoLmltdWwoX3QscG4pfDAsUz0oUz1TK01hdGguaW11bChfdCxLbil8MCkrTWF0aC5pbXVsKHR0LHBuKXwwLEY9RitNYXRoLmltdWwodHQsS24pfDAsVD1UK01hdGguaW11bChodCxz''@;'; + put 'put ''bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LFVuKXwwKStNYXRoLmltdWwoQnQsc24pfDAsRj1GK01hdGguaW11bChCdCxVbil8MCxUPVQrTWF0aC5pbXVsKHZ0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwodnQsem4pfDApK01hdGguaW11bChBdCx0bil8MCxGPUYrTWF0aC5pbXVsKEF0LHpuKXww''@;'; + put 'put ''O3ZhciBScj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQm4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrcil8MCkrTWF0aC5pbXVsKGd0LEJuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrcil8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4''@;'; + put 'put ''ODYzLFQ9TWF0aC5pbXVsKFF0LFhuKSxTPShTPU1hdGguaW11bChRdCxGcikpK01hdGguaW11bChnbixYbil8MCxGPU1hdGguaW11bChnbixGciksVD1UK01hdGguaW11bChVZSxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHByKXwwKStNYXRoLmltdWwoeXQscXQpfDAsRj1GK01hdGguaW11''@;'; + put 'put ''bCh5dCxwcil8MCxUPVQrTWF0aC5pbXVsKGZ0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQscW4pfDApK01hdGguaW11bChIdCxBbil8MCxGPUYrTWF0aC5pbXVsKEh0LHFuKXwwLFQ9VCtNYXRoLmltdWwoYXQscG4pfDAsUz0oUz1TK01hdGguaW11bChhdCxLbil8MCkrTWF0aC5pbXVsKEx0''@;'; + put 'put ''LHBuKXwwLEY9RitNYXRoLmltdWwoTHQsS24pfDAsVD1UK01hdGguaW11bChfdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LFVuKXwwKStNYXRoLmltdWwodHQsc24pfDAsRj1GK01hdGguaW11bCh0dCxVbil8MCxUPVQrTWF0aC5pbXVsKGh0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQs''@;'; + put 'put ''em4pfDApK01hdGguaW11bChCdCx0bil8MCxGPUYrTWF0aC5pbXVsKEJ0LHpuKXwwLFQ9VCtNYXRoLmltdWwodnQsQm4pfDAsUz0oUz1TK01hdGguaW11bCh2dCxrcil8MCkrTWF0aC5pbXVsKEF0LEJuKXwwLEY9RitNYXRoLmltdWwoQXQsa3IpfDA7dmFyIGxpPShQZSsoVD1UK01hdGguaW11''@;'; + put 'put ''bCgkZSx1bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGNuKXwwKStNYXRoLmltdWwoZ3QsdW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LGNuKXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoeW4sWG4pLFM9''@;'; + put 'put ''KFM9TWF0aC5pbXVsKHluLEZyKSkrTWF0aC5pbXVsKGxuLFhuKXwwLEY9TWF0aC5pbXVsKGxuLEZyKSxUPVQrTWF0aC5pbXVsKFF0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQscHIpfDApK01hdGguaW11bChnbixxdCl8MCxGPUYrTWF0aC5pbXVsKGduLHByKXwwLFQ9VCtNYXRoLmltdWwo''@;'; + put 'put ''VWUsQW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxxbil8MCkrTWF0aC5pbXVsKHl0LEFuKXwwLEY9RitNYXRoLmltdWwoeXQscW4pfDAsVD1UK01hdGguaW11bChmdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LEtuKXwwKStNYXRoLmltdWwoSHQscG4pfDAsRj1GK01hdGguaW11bChIdCxL''@;'; + put 'put ''bil8MCxUPVQrTWF0aC5pbXVsKGF0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsVW4pfDApK01hdGguaW11bChMdCxzbil8MCxGPUYrTWF0aC5pbXVsKEx0LFVuKXwwLFQ9VCtNYXRoLmltdWwoX3QsdG4pfDAsUz0oUz1TK01hdGguaW11bChfdCx6bil8MCkrTWF0aC5pbXVsKHR0LHRuKXww''@;'; + put 'put ''LEY9RitNYXRoLmltdWwodHQsem4pfDAsVD1UK01hdGguaW11bChodCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtyKXwwKStNYXRoLmltdWwoQnQsQm4pfDAsRj1GK01hdGguaW11bChCdCxrcil8MCxUPVQrTWF0aC5pbXVsKHZ0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwodnQsY24pfDAp''@;'; + put 'put ''K01hdGguaW11bChBdCx1bil8MCxGPUYrTWF0aC5pbXVsKEF0LGNuKXwwO3ZhciBNaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsR3QpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrbil8MCkrTWF0aC5pbXVsKGd0LEd0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChn''@;'; + put 'put ''dCxrbil8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLFhuKSxTPShTPU1hdGguaW11bChibixGcikpK01hdGguaW11bChlcixYbil8MCxGPU1hdGguaW11bChlcixGciksVD1UK01hdGguaW11bCh5bixxdCl8MCxTPShTPVMrTWF0aC5pbXVs''@;'; + put 'put ''KHluLHByKXwwKStNYXRoLmltdWwobG4scXQpfDAsRj1GK01hdGguaW11bChsbixwcil8MCxUPVQrTWF0aC5pbXVsKFF0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQscW4pfDApK01hdGguaW11bChnbixBbil8MCxGPUYrTWF0aC5pbXVsKGduLHFuKXwwLFQ9VCtNYXRoLmltdWwoVWUscG4p''@;'; + put 'put ''fDAsUz0oUz1TK01hdGguaW11bChVZSxLbil8MCkrTWF0aC5pbXVsKHl0LHBuKXwwLEY9RitNYXRoLmltdWwoeXQsS24pfDAsVD1UK01hdGguaW11bChmdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LFVuKXwwKStNYXRoLmltdWwoSHQsc24pfDAsRj1GK01hdGguaW11bChIdCxVbil8MCxU''@;'; + put 'put ''PVQrTWF0aC5pbXVsKGF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsem4pfDApK01hdGguaW11bChMdCx0bil8MCxGPUYrTWF0aC5pbXVsKEx0LHpuKXwwLFQ9VCtNYXRoLmltdWwoX3QsQm4pfDAsUz0oUz1TK01hdGguaW11bChfdCxrcil8MCkrTWF0aC5pbXVsKHR0LEJuKXwwLEY9RitN''@;'; + put 'put ''YXRoLmltdWwodHQsa3IpfDAsVD1UK01hdGguaW11bChodCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGNuKXwwKStNYXRoLmltdWwoQnQsdW4pfDAsRj1GK01hdGguaW11bChCdCxjbil8MCxUPVQrTWF0aC5pbXVsKHZ0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwodnQsa24pfDApK01hdGgu''@;'; + put 'put ''aW11bChBdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEF0LGtuKXwwO3ZhciBvMD0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxJbil8MCkrTWF0aC5pbXVsKGd0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxJbil8''@;'; + put 'put ''MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHF0KSxTPShTPU1hdGguaW11bChibixwcikpK01hdGguaW11bChlcixxdCl8MCxGPU1hdGguaW11bChlcixwciksVD1UK01hdGguaW11bCh5bixBbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHFu''@;'; + put 'put ''KXwwKStNYXRoLmltdWwobG4sQW4pfDAsRj1GK01hdGguaW11bChsbixxbil8MCxUPVQrTWF0aC5pbXVsKFF0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsS24pfDApK01hdGguaW11bChnbixwbil8MCxGPUYrTWF0aC5pbXVsKGduLEtuKXwwLFQ9VCtNYXRoLmltdWwoVWUsc24pfDAsUz0o''@;'; + put 'put ''Uz1TK01hdGguaW11bChVZSxVbil8MCkrTWF0aC5pbXVsKHl0LHNuKXwwLEY9RitNYXRoLmltdWwoeXQsVW4pfDAsVD1UK01hdGguaW11bChmdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHpuKXwwKStNYXRoLmltdWwoSHQsdG4pfDAsRj1GK01hdGguaW11bChIdCx6bil8MCxUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKGF0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa3IpfDApK01hdGguaW11bChMdCxCbil8MCxGPUYrTWF0aC5pbXVsKEx0LGtyKXwwLFQ9VCtNYXRoLmltdWwoX3QsdW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxjbil8MCkrTWF0aC5pbXVsKHR0LHVuKXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwodHQsY24pfDAsVD1UK01hdGguaW11bChodCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtuKXwwKStNYXRoLmltdWwoQnQsR3QpfDAsRj1GK01hdGguaW11bChCdCxrbil8MDt2YXIgbjA9KFBlKyhUPVQrTWF0aC5pbXVsKHZ0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwodnQsSW4pfDApK01hdGguaW11bChBdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoQXQsSW4pfDApKyhTPj4+MTMpfDApKyhuMD4+PjI2KXwwLG4wJj02NzEwODg2MyxUPU1hdGguaW11bChibixBbiksUz0oUz1NYXRoLmltdWwoYm4scW4pKStNYXRoLmltdWwoZXIsQW4p''@;'; + put 'put ''fDAsRj1NYXRoLmltdWwoZXIscW4pLFQ9VCtNYXRoLmltdWwoeW4scG4pfDAsUz0oUz1TK01hdGguaW11bCh5bixLbil8MCkrTWF0aC5pbXVsKGxuLHBuKXwwLEY9RitNYXRoLmltdWwobG4sS24pfDAsVD1UK01hdGguaW11bChRdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LFVuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoZ24sc24pfDAsRj1GK01hdGguaW11bChnbixVbil8MCxUPVQrTWF0aC5pbXVsKFVlLHRuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsem4pfDApK01hdGguaW11bCh5dCx0bil8MCxGPUYrTWF0aC5pbXVsKHl0LHpuKXwwLFQ9VCtNYXRoLmltdWwoZnQsQm4pfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bChmdCxrcil8MCkrTWF0aC5pbXVsKEh0LEJuKXwwLEY9RitNYXRoLmltdWwoSHQsa3IpfDAsVD1UK01hdGguaW11bChhdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGF0LGNuKXwwKStNYXRoLmltdWwoTHQsdW4pfDAsRj1GK01hdGguaW11bChMdCxjbil8MCxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KF90LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa24pfDApK01hdGguaW11bCh0dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHR0LGtuKXwwO3ZhciBkMD0oUGUrKFQ9VCtNYXRoLmltdWwoaHQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChodCxJbil8MCkrTWF0aC5pbXVsKEJ0''@;'; + put 'put ''LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChCdCxJbil8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHBuKSxTPShTPU1hdGguaW11bChibixLbikpK01hdGguaW11bChlcixwbil8MCxGPU1hdGguaW11bChlcixLbiksVD1U''@;'; + put 'put ''K01hdGguaW11bCh5bixzbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLFVuKXwwKStNYXRoLmltdWwobG4sc24pfDAsRj1GK01hdGguaW11bChsbixVbil8MCxUPVQrTWF0aC5pbXVsKFF0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoUXQsem4pfDApK01hdGguaW11bChnbix0bil8MCxGPUYrTWF0''@;'; + put 'put ''aC5pbXVsKGduLHpuKXwwLFQ9VCtNYXRoLmltdWwoVWUsQm4pfDAsUz0oUz1TK01hdGguaW11bChVZSxrcil8MCkrTWF0aC5pbXVsKHl0LEJuKXwwLEY9RitNYXRoLmltdWwoeXQsa3IpfDAsVD1UK01hdGguaW11bChmdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGNuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoSHQsdW4pfDAsRj1GK01hdGguaW11bChIdCxjbil8MCxUPVQrTWF0aC5pbXVsKGF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoYXQsa24pfDApK01hdGguaW11bChMdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEx0LGtuKXwwO3ZhciBtMD0oUGUrKFQ9VCtNYXRoLmltdWwoX3QsZW4pfDApfDAp''@;'; + put 'put ''KygoODE5MSYoUz0oUz1TK01hdGguaW11bChfdCxJbil8MCkrTWF0aC5pbXVsKHR0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh0dCxJbil8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHNuKSxTPShTPU1hdGguaW11bChi''@;'; + put 'put ''bixVbikpK01hdGguaW11bChlcixzbil8MCxGPU1hdGguaW11bChlcixVbiksVD1UK01hdGguaW11bCh5bix0bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHpuKXwwKStNYXRoLmltdWwobG4sdG4pfDAsRj1GK01hdGguaW11bChsbix6bil8MCxUPVQrTWF0aC5pbXVsKFF0LEJuKXwwLFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwoUXQsa3IpfDApK01hdGguaW11bChnbixCbil8MCxGPUYrTWF0aC5pbXVsKGduLGtyKXwwLFQ9VCtNYXRoLmltdWwoVWUsdW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxjbil8MCkrTWF0aC5pbXVsKHl0LHVuKXwwLEY9RitNYXRoLmltdWwoeXQsY24pfDAsVD1UK01hdGgu''@;'; + put 'put ''aW11bChmdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGtuKXwwKStNYXRoLmltdWwoSHQsR3QpfDAsRj1GK01hdGguaW11bChIdCxrbil8MDt2YXIgRzA9KFBlKyhUPVQrTWF0aC5pbXVsKGF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoYXQsSW4pfDApK01hdGguaW11''@;'; + put 'put ''bChMdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoTHQsSW4pfDApKyhTPj4+MTMpfDApKyhHMD4+PjI2KXwwLEcwJj02NzEwODg2MyxUPU1hdGguaW11bChibix0biksUz0oUz1NYXRoLmltdWwoYm4sem4pKStNYXRoLmltdWwoZXIsdG4pfDAsRj1NYXRoLmltdWwoZXIsem4p''@;'; + put 'put ''LFQ9VCtNYXRoLmltdWwoeW4sQm4pfDAsUz0oUz1TK01hdGguaW11bCh5bixrcil8MCkrTWF0aC5pbXVsKGxuLEJuKXwwLEY9RitNYXRoLmltdWwobG4sa3IpfDAsVD1UK01hdGguaW11bChRdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKFF0LGNuKXwwKStNYXRoLmltdWwoZ24sdW4pfDAsRj1G''@;'; + put 'put ''K01hdGguaW11bChnbixjbil8MCxUPVQrTWF0aC5pbXVsKFVlLEd0KXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa24pfDApK01hdGguaW11bCh5dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHl0LGtuKXwwO3ZhciBEaT0oUGUrKFQ9VCtNYXRoLmltdWwoZnQsZW4pfDApfDApKygoODE5MSYoUz0oUz1T''@;'; + put 'put ''K01hdGguaW11bChmdCxJbil8MCkrTWF0aC5pbXVsKEh0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChIdCxJbil8MCkrKFM+Pj4xMyl8MCkrKERpPj4+MjYpfDAsRGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEJuKSxTPShTPU1hdGguaW11bChibixrcikpK01hdGguaW11''@;'; + put 'put ''bChlcixCbil8MCxGPU1hdGguaW11bChlcixrciksVD1UK01hdGguaW11bCh5bix1bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLGNuKXwwKStNYXRoLmltdWwobG4sdW4pfDAsRj1GK01hdGguaW11bChsbixjbil8MCxUPVQrTWF0aC5pbXVsKFF0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoUXQs''@;'; + put 'put ''a24pfDApK01hdGguaW11bChnbixHdCl8MCxGPUYrTWF0aC5pbXVsKGduLGtuKXwwO3ZhciBXMD0oUGUrKFQ9VCtNYXRoLmltdWwoVWUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChVZSxJbil8MCkrTWF0aC5pbXVsKHl0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGgu''@;'; + put 'put ''aW11bCh5dCxJbil8MCkrKFM+Pj4xMyl8MCkrKFcwPj4+MjYpfDAsVzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHVuKSxTPShTPU1hdGguaW11bChibixjbikpK01hdGguaW11bChlcix1bil8MCxGPU1hdGguaW11bChlcixjbiksVD1UK01hdGguaW11bCh5bixHdCl8MCxTPShTPVMrTWF0''@;'; + put 'put ''aC5pbXVsKHluLGtuKXwwKStNYXRoLmltdWwobG4sR3QpfDAsRj1GK01hdGguaW11bChsbixrbil8MDt2YXIgRW89KFBlKyhUPVQrTWF0aC5pbXVsKFF0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUXQsSW4pfDApK01hdGguaW11bChnbixlbil8MCkpPDwxMyl8MDtQZT0o''@;'; + put 'put ''KEY9RitNYXRoLmltdWwoZ24sSW4pfDApKyhTPj4+MTMpfDApKyhFbz4+PjI2KXwwLEVvJj02NzEwODg2MyxUPU1hdGguaW11bChibixHdCksUz0oUz1NYXRoLmltdWwoYm4sa24pKStNYXRoLmltdWwoZXIsR3QpfDAsRj1NYXRoLmltdWwoZXIsa24pO3ZhciBxbz0oUGUrKFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwoeW4sZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh5bixJbil8MCkrTWF0aC5pbXVsKGxuLGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChsbixJbil8MCkrKFM+Pj4xMyl8MCkrKHFvPj4+MjYpfDAscW8mPTY3MTA4ODYzO3ZhciBjYT0oUGUrKFQ9TWF0aC5p''@;'; + put 'put ''bXVsKGJuLGVuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bChibixJbikpK01hdGguaW11bChlcixlbil8MCkpPDwxMyl8MDtyZXR1cm4gUGU9KChGPU1hdGguaW11bChlcixJbikpKyhTPj4+MTMpfDApKyhjYT4+PjI2KXwwLGNhJj02NzEwODg2MyxEZVswXT1KbixEZVsxXT1vcixEZVsy''@;'; + put 'put ''XT1ncixEZVszXT1LcixEZVs0XT1WcixEZVs1XT1paSxEZVs2XT1ScixEZVs3XT1saSxEZVs4XT1NaSxEZVs5XT1vMCxEZVsxMF09bjAsRGVbMTFdPWQwLERlWzEyXT1tMCxEZVsxM109RzAsRGVbMTRdPURpLERlWzE1XT1XMCxEZVsxNl09RW8sRGVbMTddPXFvLERlWzE4XT1jYSwwIT09UGUm''@;'; + put 'put ''JihEZVsxOV09UGUsVi5sZW5ndGgrKyksVn07ZnVuY3Rpb24ga2UoeCxQLFYpe3JldHVybihuZXcgU2UpLm11bHAoeCxQLFYpfWZ1bmN0aW9uIFNlKHgsUCl7dGhpcy54PXgsdGhpcy55PVB9TWF0aC5pbXVsfHwoQWU9dmUpLE4ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHgsUCl7dmFyIFQ9''@;'; + put 'put ''dGhpcy5sZW5ndGgreC5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09eC5sZW5ndGg/QWUodGhpcyx4LFApOlQ8NjM/dmUodGhpcyx4LFApOlQ8MTAyND9mdW5jdGlvbihTLEYseWUpe3llLm5lZ2F0aXZlPUYubmVnYXRpdmVeUy5uZWdhdGl2ZSx5ZS5sZW5ndGg9Uy5sZW5n''@;'; + put 'put ''dGgrRi5sZW5ndGg7Zm9yKHZhciBDZT0wLERlPTAsUGU9MDtQZTx5ZS5sZW5ndGgtMTtQZSsrKXt2YXIgUWU9RGU7RGU9MDtmb3IodmFyICRlPTY3MTA4ODYzJkNlLGd0PU1hdGgubWluKFBlLEYubGVuZ3RoLTEpLHd0PU1hdGgubWF4KDAsUGUtUy5sZW5ndGgrMSk7d3Q8PWd0O3d0Kyspe3Zh''@;'; + put 'put ''ciBBdD0oMHxTLndvcmRzW1BlLXd0XSkqKDB8Ri53b3Jkc1t3dF0pLG10PTY3MTA4ODYzJkF0OyRlPTY3MTA4ODYzJihtdD1tdCskZXwwKSxEZSs9KFFlPShRZT1RZSsoQXQvNjcxMDg4NjR8MCl8MCkrKG10Pj4+MjYpfDApPj4+MjYsUWUmPTY3MTA4ODYzfXllLndvcmRzW1BlXT0kZSxDZT1R''@;'; + put 'put ''ZSxRZT1EZX1yZXR1cm4gMCE9PUNlP3llLndvcmRzW1BlXT1DZTp5ZS5sZW5ndGgtLSx5ZS5zdHJpcCgpfSh0aGlzLHgsUCk6a2UodGhpcyx4LFApfSxTZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbih4KXtmb3IodmFyIFA9bmV3IEFycmF5KHgpLFY9Ti5wcm90b3R5cGUuX2NvdW50Qml0''@;'; + put 'put ''cyh4KS0xLFQ9MDtUPHg7VCsrKVBbVF09dGhpcy5yZXZCaW4oVCxWLHgpO3JldHVybiBQfSxTZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHgsUCxWKXtpZigwPT09eHx8eD09PVYtMSlyZXR1cm4geDtmb3IodmFyIFQ9MCxTPTA7UzxQO1MrKylUfD0oMSZ4KTw8UC1TLTEseD4+PTE7cmV0''@;'; + put 'put ''dXJuIFR9LFNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXtmb3IodmFyIHllPTA7eWU8Rjt5ZSsrKVRbeWVdPVBbeFt5ZV1dLFNbeWVdPVZbeFt5ZV1dfSxTZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXt0aGlzLnBlcm11dGUoRix4''@;'; + put 'put ''LFAsVixULFMpO2Zvcih2YXIgeWU9MTt5ZTxTO3llPDw9MSlmb3IodmFyIENlPXllPDwxLERlPU1hdGguY29zKDIqTWF0aC5QSS9DZSksUGU9TWF0aC5zaW4oMipNYXRoLlBJL0NlKSxRZT0wO1FlPFM7UWUrPUNlKWZvcih2YXIgJGU9RGUsZ3Q9UGUsd3Q9MDt3dDx5ZTt3dCsrKXt2YXIgdnQ9''@;'; + put 'put ''VltRZSt3dF0sQXQ9VFtRZSt3dF0sbXQ9VltRZSt3dCt5ZV0saHQ9VFtRZSt3dCt5ZV0sQnQ9JGUqbXQtZ3QqaHQ7aHQ9JGUqaHQrZ3QqbXQsVltRZSt3dF09dnQrKG10PUJ0KSxUW1FlK3d0XT1BdCtodCxWW1FlK3d0K3llXT12dC1tdCxUW1FlK3d0K3llXT1BdC1odCx3dCE9PUNlJiYoQnQ9''@;'; + put 'put ''RGUqJGUtUGUqZ3QsZ3Q9RGUqZ3QrUGUqJGUsJGU9QnQpfX0sU2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKHgsUCl7dmFyIFY9MXxNYXRoLm1heChQLHgpLFQ9MSZWLFM9MDtmb3IoVj1WLzJ8MDtWO1Y+Pj49MSlTKys7cmV0dXJuIDE8PFMrMStUfSxTZS5wcm90b3R5cGUuY29u''@;'; + put 'put ''anVnYXRlPWZ1bmN0aW9uKHgsUCxWKXtpZighKFY8PTEpKWZvcih2YXIgVD0wO1Q8Vi8yO1QrKyl7dmFyIFM9eFtUXTt4W1RdPXhbVi1ULTFdLHhbVi1ULTFdPVMsUz1QW1RdLFBbVF09LVBbVi1ULTFdLFBbVi1ULTFdPS1TfX0sU2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih4''@;'; + put 'put ''LFApe2Zvcih2YXIgVj0wLFQ9MDtUPFAvMjtUKyspe3ZhciBTPTgxOTIqTWF0aC5yb3VuZCh4WzIqVCsxXS9QKStNYXRoLnJvdW5kKHhbMipUXS9QKStWO3hbVF09NjcxMDg4NjMmUyxWPVM8NjcxMDg4NjQ/MDpTLzY3MTA4ODY0fDB9cmV0dXJuIHh9LFNlLnByb3RvdHlwZS5jb252ZXJ0MTNi''@;'; + put 'put ''PWZ1bmN0aW9uKHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9MDtGPFA7RisrKVZbMipGXT04MTkxJihTKz0wfHhbRl0pLFZbMipGKzFdPTgxOTEmKFM+Pj49MTMpLFM+Pj49MTM7Zm9yKEY9MipQO0Y8VDsrK0YpVltGXT0wO1koMD09PVMpLFkoMD09KC04MTkyJlMpKX0sU2UucHJvdG90eXBlLnN0''@;'; + put 'put ''dWI9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPTA7Vjx4O1YrKylQW1ZdPTA7cmV0dXJuIFB9LFNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVD0yKnRoaXMuZ3Vlc3NMZW4xM2IoeC5sZW5ndGgsUC5sZW5ndGgpLFM9dGhpcy5tYWtlUkJUKFQpLEY9''@;'; + put 'put ''dGhpcy5zdHViKFQpLHllPW5ldyBBcnJheShUKSxDZT1uZXcgQXJyYXkoVCksRGU9bmV3IEFycmF5KFQpLFBlPW5ldyBBcnJheShUKSxRZT1uZXcgQXJyYXkoVCksJGU9bmV3IEFycmF5KFQpLGd0PVYud29yZHM7Z3QubGVuZ3RoPVQsdGhpcy5jb252ZXJ0MTNiKHgud29yZHMseC5sZW5ndGgs''@;'; + put 'put ''eWUsVCksdGhpcy5jb252ZXJ0MTNiKFAud29yZHMsUC5sZW5ndGgsUGUsVCksdGhpcy50cmFuc2Zvcm0oeWUsRixDZSxEZSxULFMpLHRoaXMudHJhbnNmb3JtKFBlLEYsUWUsJGUsVCxTKTtmb3IodmFyIHd0PTA7d3Q8VDt3dCsrKXt2YXIgdnQ9Q2Vbd3RdKlFlW3d0XS1EZVt3dF0qJGVbd3Rd''@;'; + put 'put ''O0RlW3d0XT1DZVt3dF0qJGVbd3RdK0RlW3d0XSpRZVt3dF0sQ2Vbd3RdPXZ0fXJldHVybiB0aGlzLmNvbmp1Z2F0ZShDZSxEZSxUKSx0aGlzLnRyYW5zZm9ybShDZSxEZSxndCxGLFQsUyksdGhpcy5jb25qdWdhdGUoZ3QsRixUKSx0aGlzLm5vcm1hbGl6ZTEzYihndCxUKSxWLm5lZ2F0aXZl''@;'; + put 'put ''PXgubmVnYXRpdmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD14Lmxlbmd0aCtQLmxlbmd0aCxWLnN0cmlwKCl9LE4ucHJvdG90eXBlLm11bD1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLHRoaXMubXVsVG8o''@;'; + put 'put ''eCxQKX0sTi5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLGtlKHRoaXMseCxQKX0sTi5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11''@;'; + put 'put ''bFRvKHgsdGhpcyl9LE4ucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpO2Zvcih2YXIgUD0wLFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkqeCxTPSg2NzEwODg2MyZUKSsoNjcxMDg4NjMm''@;'; + put 'put ''UCk7UD4+PTI2LFArPVQvNjcxMDg4NjR8MCxQKz1TPj4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZTfXJldHVybiAwIT09UCYmKHRoaXMud29yZHNbVl09UCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW11''@;'; + put 'put ''bG4oeCl9LE4ucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sTi5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sTi5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgpe3ZhciBQPWZ1bmN0aW9uKEYpe2Zv''@;'; + put 'put ''cih2YXIgeWU9bmV3IEFycmF5KEYuYml0TGVuZ3RoKCkpLENlPTA7Q2U8eWUubGVuZ3RoO0NlKyspe3ZhciBQZT1DZSUyNjt5ZVtDZV09KEYud29yZHNbQ2UvMjZ8MF0mMTw8UGUpPj4+UGV9cmV0dXJuIHllfSh4KTtpZigwPT09UC5sZW5ndGgpcmV0dXJuIG5ldyBOKDEpO2Zvcih2YXIgVj10''@;'; + put 'put ''aGlzLFQ9MDtUPFAubGVuZ3RoJiYwPT09UFtUXTtUKyssVj1WLnNxcigpKTtpZigrK1Q8UC5sZW5ndGgpZm9yKHZhciBTPVYuc3FyKCk7VDxQLmxlbmd0aDtUKyssUz1TLnNxcigpKTAhPT1QW1RdJiYoVj1WLm11bChTKSk7cmV0dXJuIFZ9LE4ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbih4''@;'; + put 'put ''KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFAsVj14JTI2LFQ9KHgtVikvMjYsUz02NzEwODg2Mz4+PjI2LVY8PDI2LVY7aWYoMCE9PVYpe3ZhciBGPTA7Zm9yKFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIHllPXRoaXMud29yZHNbUF0mUzt0aGlzLndvcmRzW1BdPSgwfHRo''@;'; + put 'put ''aXMud29yZHNbUF0pLXllPDxWfEYsRj15ZT4+PjI2LVZ9RiYmKHRoaXMud29yZHNbUF09Rix0aGlzLmxlbmd0aCsrKX1pZigwIT09VCl7Zm9yKFA9dGhpcy5sZW5ndGgtMTtQPj0wO1AtLSl0aGlzLndvcmRzW1ArVF09dGhpcy53b3Jkc1tQXTtmb3IoUD0wO1A8VDtQKyspdGhpcy53b3Jkc1tQ''@;'; + put 'put ''XT0wO3RoaXMubGVuZ3RoKz1UfXJldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbih4KX0sTi5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVDtZKCJudW1iZXIi''@;'; + put 'put ''PT10eXBlb2YgeCYmeD49MCksVD1QPyhQLVAlMjYpLzI2OjA7dmFyIFM9eCUyNixGPU1hdGgubWluKCh4LVMpLzI2LHRoaXMubGVuZ3RoKSx5ZT02NzEwODg2M142NzEwODg2Mz4+PlM8PFMsQ2U9VjtpZihULT1GLFQ9TWF0aC5tYXgoMCxUKSxDZSl7Zm9yKHZhciBEZT0wO0RlPEY7RGUrKylD''@;'; + put 'put ''ZS53b3Jkc1tEZV09dGhpcy53b3Jkc1tEZV07Q2UubGVuZ3RoPUZ9aWYoMCE9PUYpaWYodGhpcy5sZW5ndGg+Rilmb3IodGhpcy5sZW5ndGgtPUYsRGU9MDtEZTx0aGlzLmxlbmd0aDtEZSsrKXRoaXMud29yZHNbRGVdPXRoaXMud29yZHNbRGUrRl07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhp''@;'; + put 'put ''cy5sZW5ndGg9MTt2YXIgUGU9MDtmb3IoRGU9dGhpcy5sZW5ndGgtMTtEZT49MCYmKDAhPT1QZXx8RGU+PVQpO0RlLS0pe3ZhciBRZT0wfHRoaXMud29yZHNbRGVdO3RoaXMud29yZHNbRGVdPVBlPDwyNi1TfFFlPj4+UyxQZT1RZSZ5ZX1yZXR1cm4gQ2UmJjAhPT1QZSYmKENlLndvcmRzW0Nl''@;'; + put 'put ''Lmxlbmd0aCsrXT1QZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih4LFAsVil9LE4ucHJv''@;'; + put 'put ''dG90eXBlLnNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih4KX0sTi5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oeCl9LE4ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5p''@;'; + put 'put ''c2hybih4KX0sTi5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oeCl9LE4ucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuISh0aGlzLmxl''@;'; + put 'put ''bmd0aDw9Vnx8ISh0aGlzLndvcmRzW1ZdJjE8PFApKX0sTi5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGgg''@;'; + put 'put ''cG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1WP3RoaXM6KDAhPT1QJiZWKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oVix0aGlzLmxlbmd0aCksMCE9PVAmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PlA8PFApLHRoaXMuc3RyaXAoKSl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHgpfSxOLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih4KXtyZXR1cm4gWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwP3RoaXMuaXN1Ym4oLXgpOjAhPT10aGlzLm5lZ2F0''@;'; + put 'put ''aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8eD8odGhpcy53b3Jkc1swXT14LSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHgp''@;'; + put 'put ''fSxOLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oeCl7dGhpcy53b3Jkc1swXSs9eDtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPj02NzEwODg2NDtQKyspdGhpcy53b3Jkc1tQXS09NjcxMDg4NjQsUD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tQKzFdPTE6''@;'; + put 'put ''dGhpcy53b3Jkc1tQKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFArMSksdGhpc30sTi5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oeCl7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwKXJldHVybiB0aGlzLmlhZGRuKC14KTtp''@;'; + put 'put ''ZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09eCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMu''@;'; + put 'put ''bmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbUF08MDtQKyspdGhpcy53b3Jkc1tQXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tQKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuY2xvbmUoKS5pYWRkbih4KX0sTi5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHgpfSxOLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxOLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sTi5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxTO3RoaXMuX2V4cGFuZCh4Lmxlbmd0aCtWKTt2YXIgeWU9MDtmb3IoVD0wO1Q8eC5sZW5ndGg7VCsrKXtTPSgwfHRoaXMud29yZHNbVCtWXSkreWU7dmFyIENl''@;'; + put 'put ''PSgwfHgud29yZHNbVF0pKlA7eWU9KChTLT02NzEwODg2MyZDZSk+PjI2KS0oQ2UvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tUK1ZdPTY3MTA4ODYzJlN9Zm9yKDtUPHRoaXMubGVuZ3RoLVY7VCsrKXllPShTPSgwfHRoaXMud29yZHNbVCtWXSkreWUpPj4yNix0aGlzLndvcmRzW1QrVl09Njcx''@;'; + put 'put ''MDg4NjMmUztpZigwPT09eWUpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoWSgtMT09PXllKSx5ZT0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl5ZT0oUz0tKDB8dGhpcy53b3Jkc1tUXSkreWUpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlz''@;'; + put 'put ''LnN0cmlwKCl9LE4ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHgsUCl7dmFyIFYsVD10aGlzLmNsb25lKCksUz14LEY9MHxTLndvcmRzW1MubGVuZ3RoLTFdOzAhPShWPTI2LXRoaXMuX2NvdW50Qml0cyhGKSkmJihTPVMudXNobG4oViksVC5pdXNobG4oViksRj0wfFMud29yZHNbUy5s''@;'; + put 'put ''ZW5ndGgtMV0pO3ZhciB5ZSxDZT1ULmxlbmd0aC1TLmxlbmd0aDtpZigibW9kIiE9PVApeyh5ZT1uZXcgTihudWxsKSkubGVuZ3RoPUNlKzEseWUud29yZHM9bmV3IEFycmF5KHllLmxlbmd0aCk7Zm9yKHZhciBEZT0wO0RlPHllLmxlbmd0aDtEZSsrKXllLndvcmRzW0RlXT0wfXZhciBQZT1U''@;'; + put 'put ''LmNsb25lKCkuX2lzaGxuc3VibXVsKFMsMSxDZSk7MD09PVBlLm5lZ2F0aXZlJiYoVD1QZSx5ZSYmKHllLndvcmRzW0NlXT0xKSk7Zm9yKHZhciBRZT1DZS0xO1FlPj0wO1FlLS0pe3ZhciAkZT02NzEwODg2NCooMHxULndvcmRzW1MubGVuZ3RoK1FlXSkrKDB8VC53b3Jkc1tTLmxlbmd0aCtR''@;'; + put 'put ''ZS0xXSk7Zm9yKCRlPU1hdGgubWluKCRlL0Z8MCw2NzEwODg2MyksVC5faXNobG5zdWJtdWwoUywkZSxRZSk7MCE9PVQubmVnYXRpdmU7KSRlLS0sVC5uZWdhdGl2ZT0wLFQuX2lzaGxuc3VibXVsKFMsMSxRZSksVC5pc1plcm8oKXx8KFQubmVnYXRpdmVePTEpO3llJiYoeWUud29yZHNbUWVd''@;'; + put 'put ''PSRlKX1yZXR1cm4geWUmJnllLnN0cmlwKCksVC5zdHJpcCgpLCJkaXYiIT09UCYmMCE9PVYmJlQuaXVzaHJuKFYpLHtkaXY6eWV8fG51bGwsbW9kOlR9fSxOLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKCF4LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6''@;'; + put 'put ''bmV3IE4oMCksbW9kOm5ldyBOKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmU/KEY9dGhpcy5uZWcoKS5kaXZtb2QoeCxQKSwibW9kIiE9PVAmJihUPUYuZGl2Lm5lZygpKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlhZGQoeCkp''@;'; + put 'put ''LHtkaXY6VCxtb2Q6U30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZT8oRj10aGlzLmRpdm1vZCh4Lm5lZygpLFApLCJtb2QiIT09UCYmKFQ9Ri5kaXYubmVnKCkpLHtkaXY6VCxtb2Q6Ri5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ4Lm5lZ2F0aXZlKT8oRj10aGlzLm5lZygp''@;'; + put 'put ''LmRpdm1vZCh4Lm5lZygpLFApLCJkaXYiIT09UCYmKFM9Ri5tb2QubmVnKCksViYmMCE9PVMubmVnYXRpdmUmJlMuaXN1Yih4KSkse2RpdjpGLmRpdixtb2Q6U30pOngubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh4KTwwP3tkaXY6bmV3IE4oMCksbW9kOnRoaXN9OjE9PT14Lmxlbmd0''@;'; + put 'put ''aD8iZGl2Ij09PVA/e2Rpdjp0aGlzLmRpdm4oeC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09UD97ZGl2Om51bGwsbW9kOm5ldyBOKHRoaXMubW9kbih4LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp0''@;'; + put 'put ''aGlzLl93b3JkRGl2KHgsUCk7dmFyIFQsUyxGfSxOLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsImRpdiIsITEpLmRpdn0sTi5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCExKS5tb2R9LE4ucHJvdG90''@;'; + put 'put ''eXBlLnVtb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsIm1vZCIsITApLm1vZH0sTi5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5kaXZtb2QoeCk7aWYoUC5tb2QuaXNaZXJvKCkpcmV0dXJuIFAuZGl2O3ZhciBWPTAhPT1QLmRpdi5uZWdhdGl2''@;'; + put 'put ''ZT9QLm1vZC5pc3ViKHgpOlAubW9kLFQ9eC51c2hybigxKSxTPXguYW5kbG4oMSksRj1WLmNtcChUKTtyZXR1cm4gRjwwfHwxPT09UyYmMD09PUY/UC5kaXY6MCE9PVAuZGl2Lm5lZ2F0aXZlP1AuZGl2LmlzdWJuKDEpOlAuZGl2LmlhZGRuKDEpfSxOLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9u''@;'; + put 'put ''KHgpe1koeDw9NjcxMDg4NjMpO2Zvcih2YXIgUD02NzEwODg2NCV4LFY9MCxUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pVj0oUCpWKygwfHRoaXMud29yZHNbVF0pKSV4O3JldHVybiBWfSxOLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9MCxW''@;'; + put 'put ''PXRoaXMubGVuZ3RoLTE7Vj49MDtWLS0pe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKzY3MTA4ODY0KlA7dGhpcy53b3Jkc1tWXT1UL3h8MCxQPVQleH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oeCl9''@;'; + put 'put ''LE4ucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAhPT1QLm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBUPW5ldyBOKDEpLFM9bmV3IE4oMCksRj1uZXcgTigwKSx5''@;'; + put 'put ''ZT1uZXcgTigxKSxDZT0wO1AuaXNFdmVuKCkmJlYuaXNFdmVuKCk7KVAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpLCsrQ2U7Zm9yKHZhciBEZT1WLmNsb25lKCksUGU9UC5jbG9uZSgpOyFQLmlzWmVybygpOyl7Zm9yKHZhciBRZT0wLCRlPTE7MD09KFAud29yZHNbMF0mJGUpJiZRZTwyNjsrK1Fl''@;'; + put 'put ''LCRlPDw9MSk7aWYoUWU+MClmb3IoUC5pdXNocm4oUWUpO1FlLS0gPjA7KShULmlzT2RkKCl8fFMuaXNPZGQoKSkmJihULmlhZGQoRGUpLFMuaXN1YihQZSkpLFQuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcih2YXIgZ3Q9MCx3dD0xOzA9PShWLndvcmRzWzBdJnd0KSYmZ3Q8MjY7KytndCx3''@;'; + put 'put ''dDw8PTEpO2lmKGd0PjApZm9yKFYuaXVzaHJuKGd0KTtndC0tID4wOykoRi5pc09kZCgpfHx5ZS5pc09kZCgpKSYmKEYuaWFkZChEZSkseWUuaXN1YihQZSkpLEYuaXVzaHJuKDEpLHllLml1c2hybigxKTtQLmNtcChWKT49MD8oUC5pc3ViKFYpLFQuaXN1YihGKSxTLmlzdWIoeWUpKTooVi5p''@;'; + put 'put ''c3ViKFApLEYuaXN1YihUKSx5ZS5pc3ViKFMpKX1yZXR1cm57YTpGLGI6eWUsZ2NkOlYuaXVzaGxuKENlKX19LE4ucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlKSxZKCF4LmlzWmVybygpKTt2YXIgUD10aGlzLFY9eC5jbG9uZSgpO1A9MCE9PVAubmVnYXRp''@;'; + put 'put ''dmU/UC51bW9kKHgpOlAuY2xvbmUoKTtmb3IodmFyIFQsUz1uZXcgTigxKSxGPW5ldyBOKDApLHllPVYuY2xvbmUoKTtQLmNtcG4oMSk+MCYmVi5jbXBuKDEpPjA7KXtmb3IodmFyIENlPTAsRGU9MTswPT0oUC53b3Jkc1swXSZEZSkmJkNlPDI2OysrQ2UsRGU8PD0xKTtpZihDZT4wKWZvcihQ''@;'; + put 'put ''Lml1c2hybihDZSk7Q2UtLSA+MDspUy5pc09kZCgpJiZTLmlhZGQoeWUpLFMuaXVzaHJuKDEpO2Zvcih2YXIgUGU9MCxRZT0xOzA9PShWLndvcmRzWzBdJlFlKSYmUGU8MjY7KytQZSxRZTw8PTEpO2lmKFBlPjApZm9yKFYuaXVzaHJuKFBlKTtQZS0tID4wOylGLmlzT2RkKCkmJkYuaWFkZCh5''@;'; + put 'put ''ZSksRi5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxTLmlzdWIoRikpOihWLmlzdWIoUCksRi5pc3ViKFMpKX1yZXR1cm4oVD0wPT09UC5jbXBuKDEpP1M6RikuY21wbigwKTwwJiZULmlhZGQoeCksVH0sTi5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKHgpe2lmKHRoaXMuaXNaZXJv''@;'; + put 'put ''KCkpcmV0dXJuIHguYWJzKCk7aWYoeC5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgUD10aGlzLmNsb25lKCksVj14LmNsb25lKCk7UC5uZWdhdGl2ZT0wLFYubmVnYXRpdmU9MDtmb3IodmFyIFQ9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpO1QrKylQLml1c2hybigxKSxWLml1c2hy''@;'; + put 'put ''bigxKTtmb3IoOzspe2Zvcig7UC5pc0V2ZW4oKTspUC5pdXNocm4oMSk7Zm9yKDtWLmlzRXZlbigpOylWLml1c2hybigxKTt2YXIgUz1QLmNtcChWKTtpZihTPDApe3ZhciBGPVA7UD1WLFY9Rn1lbHNlIGlmKDA9PT1TfHwwPT09Vi5jbXBuKDEpKWJyZWFrO1AuaXN1YihWKX1yZXR1cm4gVi5p''@;'; + put 'put ''dXNobG4oVCl9LE4ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZWdjZCh4KS5hLnVtb2QoeCl9LE4ucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''MT09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLndvcmRzWzBdJnh9LE4ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KTt2YXIgUD14JTI2LFY9KHgtUCkvMjYsVD0xPDxQO2lmKHRoaXMu''@;'; + put 'put ''bGVuZ3RoPD1WKXJldHVybiB0aGlzLl9leHBhbmQoVisxKSx0aGlzLndvcmRzW1ZdfD1ULHRoaXM7Zm9yKHZhciBTPVQsRj1WOzAhPT1TJiZGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPTB8dGhpcy53b3Jkc1tGXTtTPSh5ZSs9Uyk+Pj4yNix0aGlzLndvcmRzW0ZdPXllJj02NzEwODg2M31y''@;'; + put 'put ''ZXR1cm4gMCE9PVMmJih0aGlzLndvcmRzW0ZdPVMsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LE4ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oeCl7dmFyIFAsVj14PDA7''@;'; + put 'put ''aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFWKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZWKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKVA9MTtlbHNle1YmJih4PS14KSxZKHg8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBUPTB8dGhpcy53''@;'; + put 'put ''b3Jkc1swXTtQPVQ9PT14PzA6VDx4Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVA6UH0sTi5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHgpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVn''@;'; + put 'put ''YXRpdmUpcmV0dXJuIDE7dmFyIFA9dGhpcy51Y21wKHgpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oeCl7aWYodGhpcy5sZW5ndGg+eC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8eC5sZW5ndGgpcmV0dXJuLTE7Zm9y''@;'; + put 'put ''KHZhciBQPTAsVj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0wfHRoaXMud29yZHNbVl0sUz0wfHgud29yZHNbVl07aWYoVCE9PVMpe1Q8Uz9QPS0xOlQ+UyYmKFA9MSk7YnJlYWt9fXJldHVybiBQfSxOLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PT10aGlzLmNt''@;'; + put 'put ''cG4oeCl9LE4ucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHgpe3JldHVybiAxPT09dGhpcy5jbXAoeCl9LE4ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wbih4KT49MH0sTi5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcCh4KT49MH0sTi5w''@;'; + put 'put ''cm90b3R5cGUubHRuPWZ1bmN0aW9uKHgpe3JldHVybi0xPT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5sdD1mdW5jdGlvbih4KXtyZXR1cm4tMT09PXRoaXMuY21wKHgpfSxOLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk8PTB9LE4ucHJvdG90eXBl''@;'; + put 'put ''Lmx0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAoeCk8PTB9LE4ucHJvdG90eXBlLmVxbj1mdW5jdGlvbih4KXtyZXR1cm4gMD09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcCh4KX0sTi5yZWQ9ZnVuY3Rpb24oeCl7cmV0''@;'; + put 'put ''dXJuIG5ldyBuZSh4KX0sTi5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksWSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSx4LmNvbnZl''@;'; + put 'put ''cnRUbyh0aGlzKS5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxOLnByb3Rv''@;'; + put 'put ''dHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucmVkPXgsdGhpc30sTi5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoeCl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJQWRk''@;'; + put 'put ''IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMseCl9LE4u''@;'; + put 'put ''cHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNo''@;'; + put 'put ''bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx4''@;'; + put 'put ''KSx0aGlzLnJlZC5tdWwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMseCksdGhpcy5yZWQuaW11bCh0aGlzLHgpfSxOLnBy''@;'; + put 'put ''b3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBZ''@;'; + put 'put ''KHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdp''@;'; + put 'put ''dGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxOLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3Zlcmlm''@;'; + put 'put ''eTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sTi5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LE4ucHJv''@;'; + put 'put ''dG90eXBlLnJlZFBvdz1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCYmIXgucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLHgpfTt2YXIgSWU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpu''@;'; + put 'put ''dWxsfTtmdW5jdGlvbiBUZSh4LFApe3RoaXMubmFtZT14LHRoaXMucD1uZXcgTihQLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgTigxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gRWUoKXtUZS5jYWxs''@;'; + put 'put ''KHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIGhlKCl7VGUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAw''@;'; + put 'put ''MDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBPKCl7VGUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiB6KCl7VGUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYg''@;'; + put 'put ''ZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBuZSh4KXtpZigic3RyaW5nIj09dHlwZW9mIHgpe3ZhciBQPU4uX3ByaW1lKHgpO3RoaXMubT1QLnAsdGhpcy5wcmltZT1QfWVsc2UgWSh4Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJl''@;'; + put 'put ''IGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXgsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHRlKHgpe25lLmNhbGwodGhpcyx4KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBO''@;'; + put 'put ''KDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2Qo''@;'; + put 'put ''dGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfVRlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHg9bmV3IE4obnVsbCk7cmV0dXJuIHgud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx4fSxUZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlv''@;'; + put 'put ''bih4KXt2YXIgUCxWPXg7ZG97dGhpcy5zcGxpdChWLHRoaXMudG1wKSxQPShWPShWPXRoaXMuaW11bEsoVikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShQPnRoaXMubik7dmFyIFQ9UDx0aGlzLm4/LTE6Vi51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1UPyhWLndvcmRzWzBd''@;'; + put 'put ''PTAsVi5sZW5ndGg9MSk6VD4wP1YuaXN1Yih0aGlzLnApOnZvaWQgMCE9PVYuc3RyaXA/Vi5zdHJpcCgpOlYuX3N0cmlwKCksVn0sVGUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHgsUCl7eC5pdXNocm4odGhpcy5uLDAsUCl9LFRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtyZXR1''@;'; + put 'put ''cm4geC5pbXVsKHRoaXMuayl9LFcoRWUsVGUpLEVlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj00MTk0MzAzLFQ9TWF0aC5taW4oeC5sZW5ndGgsOSksUz0wO1M8VDtTKyspUC53b3Jkc1tTXT14LndvcmRzW1NdO2lmKFAubGVuZ3RoPVQseC5sZW5ndGg8PTkpcmV0''@;'; + put 'put ''dXJuIHgud29yZHNbMF09MCx2b2lkKHgubGVuZ3RoPTEpO3ZhciBGPXgud29yZHNbOV07Zm9yKFAud29yZHNbUC5sZW5ndGgrK109RiZWLFM9MTA7Uzx4Lmxlbmd0aDtTKyspe3ZhciB5ZT0wfHgud29yZHNbU107eC53b3Jkc1tTLTEwXT0oeWUmVik8PDR8Rj4+PjIyLEY9eWV9eC53b3Jkc1tT''@;'; + put 'put ''LTEwXT1GPj4+PTIyLHgubGVuZ3RoLT0wPT09RiYmeC5sZW5ndGg+MTA/MTA6OX0sRWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe3gud29yZHNbeC5sZW5ndGhdPTAseC53b3Jkc1t4Lmxlbmd0aCsxXT0wLHgubGVuZ3RoKz0yO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7''@;'; + put 'put ''dmFyIFQ9MHx4LndvcmRzW1ZdO3gud29yZHNbVl09NjcxMDg4NjMmKFArPTk3NypUKSxQPTY0KlQrKFAvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT14LndvcmRzW3gubGVuZ3RoLTFdJiYoeC5sZW5ndGgtLSwwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmeC5sZW5ndGgtLSkseH0sVyhoZSxUZSks''@;'; + put 'put ''VyhPLFRlKSxXKHosVGUpLHoucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MTkqKDB8eC53b3Jkc1tWXSkrUCxTPTY3MTA4ODYzJlQ7VD4+Pj0yNix4LndvcmRzW1ZdPVMsUD1UfXJldHVybiAwIT09UCYmKHgud29yZHNb''@;'; + put 'put ''eC5sZW5ndGgrK109UCkseH0sTi5fcHJpbWU9ZnVuY3Rpb24oeCl7aWYoSWVbeF0pcmV0dXJuIEllW3hdO3ZhciBQO2lmKCJrMjU2Ij09PXgpUD1uZXcgRWU7ZWxzZSBpZigicDIyNCI9PT14KVA9bmV3IGhlO2Vsc2UgaWYoInAxOTIiPT09eClQPW5ldyBPO2Vsc2V7aWYoInAyNTUxOSIhPT14''@;'; + put 'put ''KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3gpO1A9bmV3IHp9cmV0dXJuIEllW3hdPVAsUH0sbmUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksWSh4LnJlZCwicmVkIHdvcmtz''@;'; + put 'put ''IG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxuZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oeCxQKXtZKDA9PSh4Lm5lZ2F0aXZlfFAubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQmJngucmVkPT09UC5yZWQsInJlZCB3b3JrcyBvbmx5IHdp''@;'; + put 'put ''dGggcmVkIG51bWJlcnMiKX0sbmUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKHgpLl9mb3JjZVJlZCh0aGlzKTp4LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oeCl7''@;'; + put 'put ''cmV0dXJuIHguaXNaZXJvKCk/eC5jbG9uZSgpOnRoaXMubS5zdWIoeCkuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxW''@;'; + put 'put ''Ll9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5pYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWfSxuZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5f''@;'; + put 'put ''dmVyaWZ5Mih4LFApO3ZhciBWPXguc3ViKFApO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaXN1YihQKTtyZXR1cm4gVi5jbXBuKDAp''@;'; + put 'put ''PDAmJlYuaWFkZCh0aGlzLm0pLFZ9LG5lLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh4KSx0aGlzLmltb2QoeC51c2hsbihQKSl9LG5lLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoeCxQKSx0aGlzLmlt''@;'; + put 'put ''b2QoeC5pbXVsKFApKX0sbmUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCksdGhpcy5pbW9kKHgubXVsKFApKX0sbmUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW11bCh4LHguY2xvbmUoKSl9LG5lLnByb3RvdHlw''@;'; + put 'put ''ZS5zcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubXVsKHgseCl9LG5lLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHgpe2lmKHguaXNaZXJvKCkpcmV0dXJuIHguY2xvbmUoKTt2YXIgUD10aGlzLm0uYW5kbG4oMyk7aWYoWShQJTI9PTEpLDM9PT1QKXt2YXIgVj10aGlzLm0uYWRkKG5ldyBO''@;'; + put 'put ''KDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHgsVil9Zm9yKHZhciBUPXRoaXMubS5zdWJuKDEpLFM9MDshVC5pc1plcm8oKSYmMD09PVQuYW5kbG4oMSk7KVMrKyxULml1c2hybigxKTtZKCFULmlzWmVybygpKTt2YXIgRj1uZXcgTigxKS50b1JlZCh0aGlzKSx5ZT1GLnJlZE5lZygp''@;'; + put 'put ''LENlPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxEZT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKERlPW5ldyBOKDIqRGUqRGUpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhEZSxDZSkuY21wKHllKTspRGUucmVkSUFkZCh5ZSk7Zm9yKHZhciBQZT10aGlzLnBvdyhEZSxUKSxRZT10aGlzLnBv''@;'; + put 'put ''dyh4LFQuYWRkbigxKS5pdXNocm4oMSkpLCRlPXRoaXMucG93KHgsVCksZ3Q9UzswIT09JGUuY21wKEYpOyl7Zm9yKHZhciB3dD0kZSx2dD0wOzAhPT13dC5jbXAoRik7dnQrKyl3dD13dC5yZWRTcXIoKTtZKHZ0PGd0KTt2YXIgQXQ9dGhpcy5wb3coUGUsbmV3IE4oMSkuaXVzaGxuKGd0LXZ0''@;'; + put 'put ''LTEpKTtRZT1RZS5yZWRNdWwoQXQpLFBlPUF0LnJlZFNxcigpLCRlPSRlLnJlZE11bChQZSksZ3Q9dnR9cmV0dXJuIFFlfSxuZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXt2YXIgUD14Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09UC5uZWdhdGl2ZT8oUC5uZWdhdGl2ZT0wLHRoaXMu''@;'; + put 'put ''aW1vZChQKS5yZWROZWcoKSk6dGhpcy5pbW9kKFApfSxuZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgsUCl7aWYoUC5pc1plcm8oKSlyZXR1cm4gbmV3IE4oMSkudG9SZWQodGhpcyk7aWYoMD09PVAuY21wbigxKSlyZXR1cm4geC5jbG9uZSgpO3ZhciBWPW5ldyBBcnJheSgxNik7VlswXT1u''@;'; + put 'put ''ZXcgTigxKS50b1JlZCh0aGlzKSxWWzFdPXg7Zm9yKHZhciBUPTI7VDxWLmxlbmd0aDtUKyspVltUXT10aGlzLm11bChWW1QtMV0seCk7dmFyIFM9VlswXSxGPTAseWU9MCxDZT1QLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09Q2UmJihDZT0yNiksVD1QLmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3Io''@;'; + put 'put ''dmFyIERlPVAud29yZHNbVF0sUGU9Q2UtMTtQZT49MDtQZS0tKXt2YXIgUWU9RGU+PlBlJjE7UyE9PVZbMF0mJihTPXRoaXMuc3FyKFMpKSwwIT09UWV8fDAhPT1GPyhGPDw9MSxGfD1RZSwoND09Kyt5ZXx8MD09PVQmJjA9PT1QZSkmJihTPXRoaXMubXVsKFMsVltGXSkseWU9MCxGPTApKTp5''@;'; + put 'put ''ZT0wfUNlPTI2fXJldHVybiBTfSxuZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHgpe3ZhciBQPXgudW1vZCh0aGlzLm0pO3JldHVybiBQPT09eD9QLmNsb25lKCk6UH0sbmUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHgpe3ZhciBQPXguY2xvbmUoKTtyZXR1cm4gUC5y''@;'; + put 'put ''ZWQ9bnVsbCxQfSxOLm1vbnQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyB0ZSh4KX0sVyh0ZSxuZSksdGUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHgudXNobG4odGhpcy5zaGlmdCkpfSx0ZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24o''@;'; + put 'put ''eCl7dmFyIFA9dGhpcy5pbW9kKHgubXVsKHRoaXMucmludikpO3JldHVybiBQLnJlZD1udWxsLFB9LHRlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7aWYoeC5pc1plcm8oKXx8UC5pc1plcm8oKSlyZXR1cm4geC53b3Jkc1swXT0wLHgubGVuZ3RoPTEseDt2YXIgVj14LmltdWwoUCks''@;'; + put 'put ''VD1WLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5zaGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFk''@;'; + put 'put ''ZCh0aGlzLm0pKSxGLl9mb3JjZVJlZCh0aGlzKX0sdGUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgVj14Lm11bChQKSxUPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMu''@;'; + put 'put ''bWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFM9Vi5pc3ViKFQpLml1c2hybih0aGlzLnNoaWZ0KSxGPVM7cmV0dXJuIFMuY21wKHRoaXMubSk+PTA/Rj1TLmlzdWIodGhpcy5tKTpTLmNtcG4oMCk8MCYmKEY9Uy5pYWRkKHRoaXMubSkpLEYuX2ZvcmNlUmVkKHRoaXMpfSx0''@;'; + put 'put ''ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHguX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShVPVoubm1kKFUpLHRoaXMpfSw2MTM4OihVLFEsWik9Pnt2YXIgaWU9Wig5ODApLGxlPVooOTE5OSksWT1aKDc4NTkpLFc9''@;'; + put 'put ''WigyMTQ0KSxOPVooMzY2MyksZWU9WigzNDgyKSxxPVooNDgxOCksSj1aKDk1MDkpLkJ1ZmZlcjtVLmV4cG9ydHM9ZnVuY3Rpb24oc2Usb2UsY2Upe3ZhciBkZTtkZT1zZS5wYWRkaW5nP3NlLnBhZGRpbmc6Y2U/MTo0O3ZhciB2ZSxBZT1pZShzZSksa2U9QWUubW9kdWx1cy5ieXRlTGVuZ3Ro''@;'; + put 'put ''KCk7aWYob2UubGVuZ3RoPmtlfHxuZXcgVyhvZSkuY21wKEFlLm1vZHVsdXMpPj0wKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3ZlPWNlP3EobmV3IFcob2UpLEFlKTpOKG9lLEFlKTt2YXIgU2U9Si5hbGxvYyhrZS12ZS5sZW5ndGgpO2lmKHZlPUouY29uY2F0KFtTZSx2''@;'; + put 'put ''ZV0sa2UpLDQ9PT1kZSlyZXR1cm4gZnVuY3Rpb24oSWUsVGUpe3ZhciBFZT1JZS5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxoZT1lZSgic2hhMSIpLnVwZGF0ZShKLmFsbG9jKDApKS5kaWdlc3QoKSxPPWhlLmxlbmd0aDtpZigwIT09VGVbMF0pdGhyb3cgbmV3IEVycm9yKCJkZWNyeXB0aW9uIGVy''@;'; + put 'put ''cm9yIik7dmFyIHo9VGUuc2xpY2UoMSxPKzEpLG5lPVRlLnNsaWNlKE8rMSksdGU9WSh6LGxlKG5lLE8pKSx4PVkobmUsbGUodGUsRWUtTy0xKSk7aWYoZnVuY3Rpb24oVixUKXtWPUouZnJvbShWKSxUPUouZnJvbShUKTt2YXIgUz0wLEY9Vi5sZW5ndGg7Vi5sZW5ndGghPT1ULmxlbmd0aCYm''@;'; + put 'put ''KFMrKyxGPU1hdGgubWluKFYubGVuZ3RoLFQubGVuZ3RoKSk7Zm9yKHZhciB5ZT0tMTsrK3llPEY7KVMrPVZbeWVdXlRbeWVdO3JldHVybiBTfShoZSx4LnNsaWNlKDAsTykpKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO2Zvcih2YXIgUD1POzA9PT14W1BdOylQKys7aWYo''@;'; + put 'put ''MSE9PXhbUCsrXSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtyZXR1cm4geC5zbGljZShQKX0oQWUsdmUpO2lmKDE9PT1kZSlyZXR1cm4gZnVuY3Rpb24oSWUsVGUsRWUpe2Zvcih2YXIgaGU9VGUuc2xpY2UoMCwyKSxPPTIsej0wOzAhPT1UZVtPKytdOylpZihPPj1UZS5s''@;'; + put 'put ''ZW5ndGgpe3orKzticmVha312YXIgbmU9VGUuc2xpY2UoMixPLTEpO2lmKCgiMDAwMiIhPT1oZS50b1N0cmluZygiaGV4IikmJiFFZXx8IjAwMDEiIT09aGUudG9TdHJpbmcoImhleCIpJiZFZSkmJnorKyxuZS5sZW5ndGg8OCYmeisrLHopdGhyb3cgbmV3IEVycm9yKCJkZWNyeXB0aW9uIGVy''@;'; + put 'put ''cm9yIik7cmV0dXJuIFRlLnNsaWNlKE8pfSgwLHZlLGNlKTtpZigzPT09ZGUpcmV0dXJuIHZlO3Rocm93IG5ldyBFcnJvcigidW5rbm93biBwYWRkaW5nIil9fSw2NTU5OihVLFEsWik9Pnt2YXIgaWU9Wig5ODApLGxlPVooMTc5OCksWT1aKDM0ODIpLFc9Wig5MTk5KSxOPVooNzg1OSksZWU9''@;'; + put 'put ''WigyMTQ0KSxxPVooNDgxOCksSj1aKDM2NjMpLHNlPVooOTUwOSkuQnVmZmVyO1UuZXhwb3J0cz1mdW5jdGlvbihvZSxjZSxkZSl7dmFyIHZlO3ZlPW9lLnBhZGRpbmc/b2UucGFkZGluZzpkZT8xOjQ7dmFyIEFlLGtlPWllKG9lKTtpZig0PT09dmUpQWU9ZnVuY3Rpb24oU2UsSWUpe3ZhciBU''@;'; + put 'put ''ZT1TZS5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxFZT1JZS5sZW5ndGgsaGU9WSgic2hhMSIpLnVwZGF0ZShzZS5hbGxvYygwKSkuZGlnZXN0KCksTz1oZS5sZW5ndGgsej0yKk87aWYoRWU+VGUtei0yKXRocm93IG5ldyBFcnJvcigibWVzc2FnZSB0b28gbG9uZyIpO3ZhciBuZT1zZS5hbGxvYyhU''@;'; + put 'put ''ZS1FZS16LTIpLHRlPVRlLU8tMSx4PWxlKE8pLFA9TihzZS5jb25jYXQoW2hlLG5lLHNlLmFsbG9jKDEsMSksSWVdLHRlKSxXKHgsdGUpKSxWPU4oeCxXKFAsTykpO3JldHVybiBuZXcgZWUoc2UuY29uY2F0KFtzZS5hbGxvYygxKSxWLFBdLFRlKSl9KGtlLGNlKTtlbHNlIGlmKDE9PT12ZSlB''@;'; + put 'put ''ZT1mdW5jdGlvbihTZSxJZSxUZSl7dmFyIEVlLGhlPUllLmxlbmd0aCxPPVNlLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2lmKGhlPk8tMTEpdGhyb3cgbmV3IEVycm9yKCJtZXNzYWdlIHRvbyBsb25nIik7cmV0dXJuIEVlPVRlP3NlLmFsbG9jKE8taGUtMywyNTUpOmZ1bmN0aW9uKHope2Zvcih2''@;'; + put 'put ''YXIgbmUsdGU9c2UuYWxsb2NVbnNhZmUoeikseD0wLFA9bGUoMip6KSxWPTA7eDx6OylWPT09UC5sZW5ndGgmJihQPWxlKDIqeiksVj0wKSwobmU9UFtWKytdKSYmKHRlW3grK109bmUpO3JldHVybiB0ZX0oTy1oZS0zKSxuZXcgZWUoc2UuY29uY2F0KFtzZS5mcm9tKFswLFRlPzE6Ml0pLEVl''@;'; + put 'put ''LHNlLmFsbG9jKDEpLEllXSxPKSl9KGtlLGNlLGRlKTtlbHNle2lmKDMhPT12ZSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gcGFkZGluZyIpO2lmKChBZT1uZXcgZWUoY2UpKS5jbXAoa2UubW9kdWx1cyk+PTApdGhyb3cgbmV3IEVycm9yKCJkYXRhIHRvbyBsb25nIGZvciBtb2R1bHVzIil9''@;'; + put 'put ''cmV0dXJuIGRlP0ooQWUsa2UpOnEoQWUsa2UpfX0sNDgxODooVSxRLFopPT57dmFyIGllPVooMjE0NCksbGU9Wig5NTA5KS5CdWZmZXI7VS5leHBvcnRzPWZ1bmN0aW9uKFksVyl7cmV0dXJuIGxlLmZyb20oWS50b1JlZChpZS5tb250KFcubW9kdWx1cykpLnJlZFBvdyhuZXcgaWUoVy5wdWJs''@;'; + put 'put ''aWNFeHBvbmVudCkpLmZyb21SZWQoKS50b0FycmF5KCkpfX0sNzg1OTpVPT57VS5leHBvcnRzPWZ1bmN0aW9uKFEsWil7Zm9yKHZhciBpZT1RLmxlbmd0aCxsZT0tMTsrK2xlPGllOylRW2xlXV49WltsZV07cmV0dXJuIFF9fSwzNjg5OihVLFEsWik9PnsidXNlIHN0cmljdCI7Wi5yKFEpLFou''@;'; + put 'put ''ZChRLHt1Y3MyZGVjb2RlOigpPT5jZSx1Y3MyZW5jb2RlOigpPT5kZSxkZWNvZGU6KCk9PmtlLGVuY29kZTooKT0+U2UsdG9BU0NJSTooKT0+VGUsdG9Vbmljb2RlOigpPT5JZSxkZWZhdWx0OigpPT5FZX0pO2NvbnN0IGllPTIxNDc0ODM2NDcsWT0vXnhuLS0vLFc9L1teXDAtXHg3RV0vLE49''@;'; + put 'put ''L1tceDJFXHUzMDAyXHVGRjBFXHVGRjYxXS9nLGVlPXtvdmVyZmxvdzoiT3ZlcmZsb3c6IGlucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3MiLCJub3QtYmFzaWMiOiJJbGxlZ2FsIGlucHV0ID49IDB4ODAgKG5vdCBhIGJhc2ljIGNvZGUgcG9pbnQpIiwiaW52YWxpZC1pbnB1''@;'; + put 'put ''dCI6IkludmFsaWQgaW5wdXQifSxxPU1hdGguZmxvb3IsSj1TdHJpbmcuZnJvbUNoYXJDb2RlO2Z1bmN0aW9uIHNlKGhlKXt0aHJvdyBuZXcgUmFuZ2VFcnJvcihlZVtoZV0pfWZ1bmN0aW9uIG9lKGhlLE8pe2NvbnN0IHo9aGUuc3BsaXQoIkAiKTtsZXQgbmU9IiI7cmV0dXJuIHoubGVuZ3Ro''@;'; + put 'put ''PjEmJihuZT16WzBdKyJAIixoZT16WzFdKSxuZStmdW5jdGlvbih4LFApe2NvbnN0IFY9W107bGV0IFQ9eC5sZW5ndGg7Zm9yKDtULS07KVZbVF09UCh4W1RdKTtyZXR1cm4gVn0oKGhlPWhlLnJlcGxhY2UoTiwiLiIpKS5zcGxpdCgiLiIpLE8pLmpvaW4oIi4iKX1mdW5jdGlvbiBjZShoZSl7''@;'; + put 'put ''Y29uc3QgTz1bXTtsZXQgej0wO2NvbnN0IG5lPWhlLmxlbmd0aDtmb3IoO3o8bmU7KXtjb25zdCB0ZT1oZS5jaGFyQ29kZUF0KHorKyk7aWYodGU+PTU1Mjk2JiZ0ZTw9NTYzMTkmJno8bmUpe2NvbnN0IHg9aGUuY2hhckNvZGVBdCh6KyspOzU2MzIwPT0oNjQ1MTImeCk/Ty5wdXNoKCgoMTAy''@;'; + put 'put ''MyZ0ZSk8PDEwKSsoMTAyMyZ4KSs2NTUzNik6KE8ucHVzaCh0ZSksei0tKX1lbHNlIE8ucHVzaCh0ZSl9cmV0dXJuIE99Y29uc3QgZGU9aGU9PlN0cmluZy5mcm9tQ29kZVBvaW50KC4uLmhlKSx2ZT1mdW5jdGlvbihoZSxPKXtyZXR1cm4gaGUrMjIrNzUqKGhlPDI2KS0oKDAhPU8pPDw1KX0s''@;'; + put 'put ''QWU9ZnVuY3Rpb24oaGUsTyx6KXtsZXQgbmU9MDtmb3IoaGU9ej9xKGhlLzcwMCk6aGU+PjEsaGUrPXEoaGUvTyk7aGU+NDU1O25lKz0zNiloZT1xKGhlLzM1KTtyZXR1cm4gcShuZSszNipoZS8oaGUrMzgpKX0sa2U9ZnVuY3Rpb24oaGUpe2NvbnN0IE89W10sej1oZS5sZW5ndGg7bGV0IG5l''@;'; + put 'put ''PTAsdGU9MTI4LHg9NzIsUD1oZS5sYXN0SW5kZXhPZigiLSIpO1A8MCYmKFA9MCk7Zm9yKGxldCBUPTA7VDxQOysrVCloZS5jaGFyQ29kZUF0KFQpPj0xMjgmJnNlKCJub3QtYmFzaWMiKSxPLnB1c2goaGUuY2hhckNvZGVBdChUKSk7Zm9yKGxldCBUPVA+MD9QKzE6MDtUPHo7KXtsZXQgUz1u''@;'; + put 'put ''ZTtmb3IobGV0IHllPTEsQ2U9MzY7O0NlKz0zNil7VD49eiYmc2UoImludmFsaWQtaW5wdXQiKTtjb25zdCBEZT0oVj1oZS5jaGFyQ29kZUF0KFQrKykpLTQ4PDEwP1YtMjI6Vi02NTwyNj9WLTY1OlYtOTc8MjY/Vi05NzozNjsoRGU+PTM2fHxEZT5xKChpZS1uZSkveWUpKSYmc2UoIm92ZXJm''@;'; + put 'put ''bG93IiksbmUrPURlKnllO2NvbnN0IFBlPUNlPD14PzE6Q2U+PXgrMjY/MjY6Q2UteDtpZihEZTxQZSlicmVhaztjb25zdCBRZT0zNi1QZTt5ZT5xKGllL1FlKSYmc2UoIm92ZXJmbG93IikseWUqPVFlfWNvbnN0IEY9Ty5sZW5ndGgrMTt4PUFlKG5lLVMsRiwwPT1TKSxxKG5lL0YpPmllLXRl''@;'; + put 'put ''JiZzZSgib3ZlcmZsb3ciKSx0ZSs9cShuZS9GKSxuZSU9RixPLnNwbGljZShuZSsrLDAsdGUpfXZhciBWO3JldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5PKX0sU2U9ZnVuY3Rpb24oaGUpe2NvbnN0IE89W107bGV0IHo9KGhlPWNlKGhlKSkubGVuZ3RoLG5lPTEyOCx0ZT0wLHg9NzI7''@;'; + put 'put ''Zm9yKGNvbnN0IFQgb2YgaGUpVDwxMjgmJk8ucHVzaChKKFQpKTtsZXQgUD1PLmxlbmd0aCxWPVA7Zm9yKFAmJk8ucHVzaCgiLSIpO1Y8ejspe2xldCBUPWllO2Zvcihjb25zdCBGIG9mIGhlKUY+PW5lJiZGPFQmJihUPUYpO2NvbnN0IFM9VisxO1QtbmU+cSgoaWUtdGUpL1MpJiZzZSgib3Zl''@;'; + put 'put ''cmZsb3ciKSx0ZSs9KFQtbmUpKlMsbmU9VDtmb3IoY29uc3QgRiBvZiBoZSlpZihGPG5lJiYrK3RlPmllJiZzZSgib3ZlcmZsb3ciKSxGPT1uZSl7bGV0IHllPXRlO2ZvcihsZXQgQ2U9MzY7O0NlKz0zNil7Y29uc3QgRGU9Q2U8PXg/MTpDZT49eCsyNj8yNjpDZS14O2lmKHllPERlKWJyZWFr''@;'; + put 'put ''O2NvbnN0IFBlPXllLURlLFFlPTM2LURlO08ucHVzaChKKHZlKERlK1BlJVFlLDApKSkseWU9cShQZS9RZSl9Ty5wdXNoKEoodmUoeWUsMCkpKSx4PUFlKHRlLFMsVj09UCksdGU9MCwrK1Z9Kyt0ZSwrK25lfXJldHVybiBPLmpvaW4oIiIpfSxJZT1mdW5jdGlvbihoZSl7cmV0dXJuIG9lKGhl''@;'; + put 'put ''LGZ1bmN0aW9uKE8pe3JldHVybiBZLnRlc3QoTyk/a2UoTy5zbGljZSg0KS50b0xvd2VyQ2FzZSgpKTpPfSl9LFRlPWZ1bmN0aW9uKGhlKXtyZXR1cm4gb2UoaGUsZnVuY3Rpb24oTyl7cmV0dXJuIFcudGVzdChPKT8ieG4tLSIrU2UoTyk6T30pfSxFZT17dmVyc2lvbjoiMi4xLjAiLHVjczI6''@;'; + put 'put ''e2RlY29kZTpjZSxlbmNvZGU6ZGV9LGRlY29kZTprZSxlbmNvZGU6U2UsdG9BU0NJSTpUZSx0b1VuaWNvZGU6SWV9fSwyNTg3OlU9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gUShaLGllKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFosaWUpfVUuZXhwb3J0''@;'; + put 'put ''cz1mdW5jdGlvbihaLGllLGxlLFkpe2xlPWxlfHwiPSI7dmFyIFc9e307aWYoInN0cmluZyIhPXR5cGVvZiBafHwwPT09Wi5sZW5ndGgpcmV0dXJuIFc7dmFyIE49L1wrL2c7Wj1aLnNwbGl0KGllPWllfHwiJiIpO3ZhciBlZT0xZTM7WSYmIm51bWJlciI9PXR5cGVvZiBZLm1heEtleXMmJihl''@;'; + put 'put ''ZT1ZLm1heEtleXMpO3ZhciBxPVoubGVuZ3RoO2VlPjAmJnE+ZWUmJihxPWVlKTtmb3IodmFyIEo9MDtKPHE7KytKKXt2YXIgc2Usb2UsY2UsZGUsdmU9WltKXS5yZXBsYWNlKE4sIiUyMCIpLEFlPXZlLmluZGV4T2YobGUpO0FlPj0wPyhzZT12ZS5zdWJzdHIoMCxBZSksb2U9dmUuc3Vic3Ry''@;'; + put 'put ''KEFlKzEpKTooc2U9dmUsb2U9IiIpLGNlPWRlY29kZVVSSUNvbXBvbmVudChzZSksZGU9ZGVjb2RlVVJJQ29tcG9uZW50KG9lKSxRKFcsY2UpP0FycmF5LmlzQXJyYXkoV1tjZV0pP1dbY2VdLnB1c2goZGUpOldbY2VdPVtXW2NlXSxkZV06V1tjZV09ZGV9cmV0dXJuIFd9fSwyMTgyOlU9Pnsi''@;'; + put 'put ''dXNlIHN0cmljdCI7dmFyIFE9ZnVuY3Rpb24oWil7c3dpdGNoKHR5cGVvZiBaKXtjYXNlInN0cmluZyI6cmV0dXJuIFo7Y2FzZSJib29sZWFuIjpyZXR1cm4gWj8idHJ1ZSI6ImZhbHNlIjtjYXNlIm51bWJlciI6cmV0dXJuIGlzRmluaXRlKFopP1o6IiI7ZGVmYXVsdDpyZXR1cm4iIn19O1Uu''@;'; + put 'put ''ZXhwb3J0cz1mdW5jdGlvbihaLGllLGxlLFkpe3JldHVybiBpZT1pZXx8IiYiLGxlPWxlfHwiPSIsbnVsbD09PVomJihaPXZvaWQgMCksIm9iamVjdCI9PXR5cGVvZiBaP09iamVjdC5rZXlzKFopLm1hcChmdW5jdGlvbihXKXt2YXIgTj1lbmNvZGVVUklDb21wb25lbnQoUShXKSkrbGU7cmV0''@;'; + put 'put ''dXJuIEFycmF5LmlzQXJyYXkoWltXXSk/WltXXS5tYXAoZnVuY3Rpb24oZWUpe3JldHVybiBOK2VuY29kZVVSSUNvbXBvbmVudChRKGVlKSl9KS5qb2luKGllKTpOK2VuY29kZVVSSUNvbXBvbmVudChRKFpbV10pKX0pLmpvaW4oaWUpOlk/ZW5jb2RlVVJJQ29tcG9uZW50KFEoWSkpK2xlK2Vu''@;'; + put 'put ''Y29kZVVSSUNvbXBvbmVudChRKFopKToiIn19LDc2NzM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0IjtRLmRlY29kZT1RLnBhcnNlPVooMjU4NyksUS5lbmNvZGU9US5zdHJpbmdpZnk9WigyMTgyKX0sMTc5ODooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpLFc9Wig5NTA5KS5C''@;'; + put 'put ''dWZmZXIsTj1aLmcuY3J5cHRvfHxaLmcubXNDcnlwdG87VS5leHBvcnRzPU4mJk4uZ2V0UmFuZG9tVmFsdWVzP2Z1bmN0aW9uKGVlLHEpe2lmKGVlPjQyOTQ5NjcyOTUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInJlcXVlc3RlZCB0b28gbWFueSByYW5kb20gYnl0ZXMiKTt2YXIgSj1XLmFsbG9j''@;'; + put 'put ''VW5zYWZlKGVlKTtpZihlZT4wKWlmKGVlPjY1NTM2KWZvcih2YXIgc2U9MDtzZTxlZTtzZSs9NjU1MzYpTi5nZXRSYW5kb21WYWx1ZXMoSi5zbGljZShzZSxzZSs2NTUzNikpO2Vsc2UgTi5nZXRSYW5kb21WYWx1ZXMoSik7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHE/aWUubmV4dFRpY2so''@;'; + put 'put ''ZnVuY3Rpb24oKXtxKG51bGwsSil9KTpKfTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiU2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3Nlci5cblVzZSBDaHJvbWUsIEZpcmVmb3ggb3IgSW50ZXJuZXQgRXhwbG9yZXIgMTEi''@;'; + put 'put ''KX19LDc5NjM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KTtmdW5jdGlvbiBsZSgpe3Rocm93IG5ldyBFcnJvcigic2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3NlclxudXNlIGNocm9tZSwgRmlyZUZveCBvciBJ''@;'; + put 'put ''bnRlcm5ldCBFeHBsb3JlciAxMSIpfXZhciBZPVooOTUwOSksVz1aKDE3OTgpLE49WS5CdWZmZXIsZWU9WS5rTWF4TGVuZ3RoLHE9Wi5nLmNyeXB0b3x8Wi5nLm1zQ3J5cHRvLEo9TWF0aC5wb3coMiwzMiktMTtmdW5jdGlvbiBzZShkZSx2ZSl7aWYoIm51bWJlciIhPXR5cGVvZiBkZXx8ZGUh''@;'; + put 'put ''PWRlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9mZnNldCBtdXN0IGJlIGEgbnVtYmVyIik7aWYoZGU+Snx8ZGU8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvZmZzZXQgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKGRlPmVlfHxkZT52ZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IG91dCBvZiBy''@;'; + put 'put ''YW5nZSIpfWZ1bmN0aW9uIG9lKGRlLHZlLEFlKXtpZigibnVtYmVyIiE9dHlwZW9mIGRlfHxkZSE9ZGUpdGhyb3cgbmV3IFR5cGVFcnJvcigic2l6ZSBtdXN0IGJlIGEgbnVtYmVyIik7aWYoZGU+Snx8ZGU8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJzaXplIG11c3QgYmUgYSB1aW50MzIiKTtp''@;'; + put 'put ''ZihkZSt2ZT5BZXx8ZGU+ZWUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoImJ1ZmZlciB0b28gc21hbGwiKX1mdW5jdGlvbiBjZShkZSx2ZSxBZSxrZSl7aWYoaWUuYnJvd3Nlcil7dmFyIEllPW5ldyBVaW50OEFycmF5KGRlLmJ1ZmZlcix2ZSxBZSk7cmV0dXJuIHEuZ2V0UmFuZG9tVmFsdWVzKEll''@;'; + put 'put ''KSxrZT92b2lkIGllLm5leHRUaWNrKGZ1bmN0aW9uKCl7a2UobnVsbCxkZSl9KTpkZX1pZigha2UpcmV0dXJuIFcoQWUpLmNvcHkoZGUsdmUpLGRlO1coQWUsZnVuY3Rpb24oVGUsRWUpe2lmKFRlKXJldHVybiBrZShUZSk7RWUuY29weShkZSx2ZSksa2UobnVsbCxkZSl9KX1xJiZxLmdldFJh''@;'; + put 'put ''bmRvbVZhbHVlc3x8IWllLmJyb3dzZXI/KFEucmFuZG9tRmlsbD1mdW5jdGlvbihkZSx2ZSxBZSxrZSl7aWYoIShOLmlzQnVmZmVyKGRlKXx8ZGUgaW5zdGFuY2VvZiBaLmcuVWludDhBcnJheSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImJ1ZiIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBv''@;'; + put 'put ''ciBVaW50OEFycmF5Jyk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHZlKWtlPXZlLHZlPTAsQWU9ZGUubGVuZ3RoO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIEFlKWtlPUFlLEFlPWRlLmxlbmd0aC12ZTtlbHNlIGlmKCJmdW5jdGlvbiIhPXR5cGVvZiBrZSl0aHJvdyBuZXcgVHlwZUVycm9y''@;'; + put 'put ''KCciY2IiIGFyZ3VtZW50IG11c3QgYmUgYSBmdW5jdGlvbicpO3JldHVybiBzZSh2ZSxkZS5sZW5ndGgpLG9lKEFlLHZlLGRlLmxlbmd0aCksY2UoZGUsdmUsQWUsa2UpfSxRLnJhbmRvbUZpbGxTeW5jPWZ1bmN0aW9uKGRlLHZlLEFlKXtpZih2b2lkIDA9PT12ZSYmKHZlPTApLCEoTi5pc0J1''@;'; + put 'put ''ZmZlcihkZSl8fGRlIGluc3RhbmNlb2YgWi5nLlVpbnQ4QXJyYXkpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWYiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgb3IgVWludDhBcnJheScpO3JldHVybiBzZSh2ZSxkZS5sZW5ndGgpLHZvaWQgMD09PUFlJiYoQWU9ZGUubGVuZ3RoLXZlKSxv''@;'; + put 'put ''ZShBZSx2ZSxkZS5sZW5ndGgpLGNlKGRlLHZlLEFlKX0pOihRLnJhbmRvbUZpbGw9bGUsUS5yYW5kb21GaWxsU3luYz1sZSl9LDQyODE6VT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgUT17fTtmdW5jdGlvbiBaKGxlLFksVyl7V3x8KFc9RXJyb3IpO3ZhciBOPWZ1bmN0aW9uKGVlKXt2YXIgcSxKO2Z1''@;'; + put 'put ''bmN0aW9uIHNlKG9lLGNlLGRlKXtyZXR1cm4gZWUuY2FsbCh0aGlzLCJzdHJpbmciPT10eXBlb2YgWT9ZOlkob2UsY2UsZGUpKXx8dGhpc31yZXR1cm4gSj1lZSwocT1zZSkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSi5wcm90b3R5cGUpLHEucHJvdG90eXBlLmNvbnN0cnVjdG9yPXEscS5f''@;'; + put 'put ''X3Byb3RvX189SixzZX0oVyk7Ti5wcm90b3R5cGUubmFtZT1XLm5hbWUsTi5wcm90b3R5cGUuY29kZT1sZSxRW2xlXT1OfWZ1bmN0aW9uIGllKGxlLFkpe2lmKEFycmF5LmlzQXJyYXkobGUpKXt2YXIgVz1sZS5sZW5ndGg7cmV0dXJuIGxlPWxlLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gU3Ry''@;'; + put 'put ''aW5nKE4pfSksVz4yPyJvbmUgb2YgIi5jb25jYXQoWSwiICIpLmNvbmNhdChsZS5zbGljZSgwLFctMSkuam9pbigiLCAiKSwiLCBvciAiKStsZVtXLTFdOjI9PT1XPyJvbmUgb2YgIi5jb25jYXQoWSwiICIpLmNvbmNhdChsZVswXSwiIG9yICIpLmNvbmNhdChsZVsxXSk6Im9mICIuY29uY2F0''@;'; + put 'put ''KFksIiAiKS5jb25jYXQobGVbMF0pfXJldHVybiJvZiAiLmNvbmNhdChZLCIgIikuY29uY2F0KFN0cmluZyhsZSkpfVooIkVSUl9JTlZBTElEX09QVF9WQUxVRSIsZnVuY3Rpb24obGUsWSl7cmV0dXJuJ1RoZSB2YWx1ZSAiJytZKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAiJytsZSsnIid9''@;'; + put 'put ''LFR5cGVFcnJvciksWigiRVJSX0lOVkFMSURfQVJHX1RZUEUiLGZ1bmN0aW9uKGxlLFksVyl7dmFyIE4sSixvZSxkZTtpZigic3RyaW5nIj09dHlwZW9mIFkmJiJub3QgIj09PVkuc3Vic3RyKDAsIm5vdCAiLmxlbmd0aCk/KE49Im11c3Qgbm90IGJlIixZPVkucmVwbGFjZSgvXm5vdCAvLCIi''@;'; + put 'put ''KSk6Tj0ibXVzdCBiZSIsb2U9bGUsKHZvaWQgMD09PWRlfHxkZT5vZS5sZW5ndGgpJiYoZGU9b2UubGVuZ3RoKSwiIGFyZ3VtZW50Ij09PW9lLnN1YnN0cmluZyhkZS0iIGFyZ3VtZW50Ii5sZW5ndGgsZGUpKUo9IlRoZSAiLmNvbmNhdChsZSwiICIpLmNvbmNhdChOLCIgIikuY29uY2F0KGll''@;'; + put 'put ''KFksInR5cGUiKSk7ZWxzZXt2YXIgc2U9ZnVuY3Rpb24ob2UsY2UsZGUpe3JldHVybiJudW1iZXIiIT10eXBlb2YgZGUmJihkZT0wKSwhKGRlKyIuIi5sZW5ndGg+b2UubGVuZ3RoKSYmLTEhPT1vZS5pbmRleE9mKCIuIixkZSl9KGxlKT8icHJvcGVydHkiOiJhcmd1bWVudCI7Sj0nVGhlICIn''@;'; + put 'put ''LmNvbmNhdChsZSwnIiAnKS5jb25jYXQoc2UsIiAiKS5jb25jYXQoTiwiICIpLmNvbmNhdChpZShZLCJ0eXBlIikpfXJldHVybiBKKyIuIFJlY2VpdmVkIHR5cGUgIi5jb25jYXQodHlwZW9mIFcpfSxUeXBlRXJyb3IpLFooIkVSUl9TVFJFQU1fUFVTSF9BRlRFUl9FT0YiLCJzdHJlYW0ucHVz''@;'; + put 'put ''aCgpIGFmdGVyIEVPRiIpLFooIkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVEIixmdW5jdGlvbihsZSl7cmV0dXJuIlRoZSAiK2xlKyIgbWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZCJ9KSxaKCJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRSIsIlByZW1hdHVyZSBjbG9zZSIpLFooIkVSUl9T''@;'; + put 'put ''VFJFQU1fREVTVFJPWUVEIixmdW5jdGlvbihsZSl7cmV0dXJuIkNhbm5vdCBjYWxsICIrbGUrIiBhZnRlciBhIHN0cmVhbSB3YXMgZGVzdHJveWVkIn0pLFooIkVSUl9NVUxUSVBMRV9DQUxMQkFDSyIsIkNhbGxiYWNrIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyIpLFooIkVSUl9TVFJFQU1fQ0FO''@;'; + put 'put ''Tk9UX1BJUEUiLCJDYW5ub3QgcGlwZSwgbm90IHJlYWRhYmxlIiksWigiRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQiLCJ3cml0ZSBhZnRlciBlbmQiKSxaKCJFUlJfU1RSRUFNX05VTExfVkFMVUVTIiwiTWF5IG5vdCB3cml0ZSBudWxsIHZhbHVlcyB0byBzdHJlYW0iLFR5cGVFcnJvciks''@;'; + put 'put ''WigiRVJSX1VOS05PV05fRU5DT0RJTkciLGZ1bmN0aW9uKGxlKXtyZXR1cm4iVW5rbm93biBlbmNvZGluZzogIitsZX0sVHlwZUVycm9yKSxaKCJFUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UIiwic3RyZWFtLnVuc2hpZnQoKSBhZnRlciBlbmQgZXZlbnQiKSxVLmV4cG9ydHMu''@;'; + put 'put ''cT1RfSw2NzUzOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDE1NSksbGU9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKGNlKXt2YXIgZGU9W107Zm9yKHZhciB2ZSBpbiBjZSlkZS5wdXNoKHZlKTtyZXR1cm4gZGV9O1UuZXhwb3J0cz1KO3ZhciBZPVooOTQ4MSksVz1aKDQyMjkpO1oo''@;'; + put 'put ''NTcxNykoSixZKTtmb3IodmFyIE49bGUoVy5wcm90b3R5cGUpLGVlPTA7ZWU8Ti5sZW5ndGg7ZWUrKyl7dmFyIHE9TltlZV07Si5wcm90b3R5cGVbcV18fChKLnByb3RvdHlwZVtxXT1XLnByb3RvdHlwZVtxXSl9ZnVuY3Rpb24gSihjZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgSikpcmV0dXJu''@;'; + put 'put ''IG5ldyBKKGNlKTtZLmNhbGwodGhpcyxjZSksVy5jYWxsKHRoaXMsY2UpLHRoaXMuYWxsb3dIYWxmT3Blbj0hMCxjZSYmKCExPT09Y2UucmVhZGFibGUmJih0aGlzLnJlYWRhYmxlPSExKSwhMT09PWNlLndyaXRhYmxlJiYodGhpcy53cml0YWJsZT0hMSksITE9PT1jZS5hbGxvd0hhbGZPcGVu''@;'; + put 'put ''JiYodGhpcy5hbGxvd0hhbGZPcGVuPSExLHRoaXMub25jZSgiZW5kIixzZSkpKX1mdW5jdGlvbiBzZSgpe3RoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWR8fGllLm5leHRUaWNrKG9lLHRoaXMpfWZ1bmN0aW9uIG9lKGNlKXtjZS5lbmQoKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoSi5wcm90b3R5''@;'; + put 'put ''cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSi5wcm90b3R5cGUsIndyaXRhYmxlQnVmZmVyIix7ZW51bWVyYWJsZToh''@;'; + put 'put ''MSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIoKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSi5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEoucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ2b2lkIDAhPT10aGlzLl93cml0''@;'; + put 'put ''YWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbihjZSl7dm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxl''@;'; + put 'put ''U3RhdGUuZGVzdHJveWVkPWNlLHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPWNlKX19KX0sMjcyNTooVSxRLFopPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1sZTt2YXIgaWU9Wig0NjA1KTtmdW5jdGlvbiBsZShZKXtpZighKHRoaXMgaW5zdGFuY2VvZiBsZSkpcmV0dXJuIG5ldyBs''@;'; + put 'put ''ZShZKTtpZS5jYWxsKHRoaXMsWSl9Wig1NzE3KShsZSxpZSksbGUucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oWSxXLE4pe04obnVsbCxZKX19LDk0ODE6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsbGU9Wig0MTU1KTtVLmV4cG9ydHM9bmUsbmUuUmVhZGFibGVTdGF0ZT16''@;'; + put 'put ''LFooNzE4Nyk7dmFyIHEsWT1mdW5jdGlvbihBdCxtdCl7cmV0dXJuIEF0Lmxpc3RlbmVycyhtdCkubGVuZ3RofSxXPVooMjUwMyksTj1aKDg3NjQpLkJ1ZmZlcixlZT1aLmcuVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9LEo9Wig0NjE2KTtxPUomJkouZGVidWdsb2c/Si5kZWJ1Z2xvZygic3Ry''@;'; + put 'put ''ZWFtIik6ZnVuY3Rpb24oKXt9O3ZhciBzZSxvZSxjZSxkZT1aKDczMjcpLHZlPVooMTE5NSksQWU9WigyNDU3KS5nZXRIaWdoV2F0ZXJNYXJrLGtlPVooNDI4MSkucSxTZT1rZS5FUlJfSU5WQUxJRF9BUkdfVFlQRSxJZT1rZS5FUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GLFRlPWtlLkVSUl9N''@;'; + put 'put ''RVRIT0RfTk9UX0lNUExFTUVOVEVELEVlPWtlLkVSUl9TVFJFQU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQ7Wig1NzE3KShuZSxXKTt2YXIgaGU9dmUuZXJyb3JPckRlc3Ryb3ksTz1bImVycm9yIiwiY2xvc2UiLCJkZXN0cm95IiwicGF1c2UiLCJyZXN1bWUiXTtmdW5jdGlvbiB6KEF0LG10''@;'; + put 'put ''LGh0KXtpZT1pZXx8Wig2NzUzKSwiYm9vbGVhbiIhPXR5cGVvZiBodCYmKGh0PW10IGluc3RhbmNlb2YgaWUpLHRoaXMub2JqZWN0TW9kZT0hIShBdD1BdHx8e30pLm9iamVjdE1vZGUsaHQmJih0aGlzLm9iamVjdE1vZGU9dGhpcy5vYmplY3RNb2RlfHwhIUF0LnJlYWRhYmxlT2JqZWN0TW9k''@;'; + put 'put ''ZSksdGhpcy5oaWdoV2F0ZXJNYXJrPUFlKHRoaXMsQXQsInJlYWRhYmxlSGlnaFdhdGVyTWFyayIsaHQpLHRoaXMuYnVmZmVyPW5ldyBkZSx0aGlzLmxlbmd0aD0wLHRoaXMucGlwZXM9bnVsbCx0aGlzLnBpcGVzQ291bnQ9MCx0aGlzLmZsb3dpbmc9bnVsbCx0aGlzLmVuZGVkPSExLHRoaXMu''@;'; + put 'put ''ZW5kRW1pdHRlZD0hMSx0aGlzLnJlYWRpbmc9ITEsdGhpcy5zeW5jPSEwLHRoaXMubmVlZFJlYWRhYmxlPSExLHRoaXMuZW1pdHRlZFJlYWRhYmxlPSExLHRoaXMucmVhZGFibGVMaXN0ZW5pbmc9ITEsdGhpcy5yZXN1bWVTY2hlZHVsZWQ9ITEsdGhpcy5wYXVzZWQ9ITAsdGhpcy5lbWl0Q2xv''@;'; + put 'put ''c2U9ITEhPT1BdC5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIUF0LmF1dG9EZXN0cm95LHRoaXMuZGVzdHJveWVkPSExLHRoaXMuZGVmYXVsdEVuY29kaW5nPUF0LmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMuYXdhaXREcmFpbj0wLHRoaXMucmVhZGluZ01vcmU9ITEsdGhpcy5k''@;'; + put 'put ''ZWNvZGVyPW51bGwsdGhpcy5lbmNvZGluZz1udWxsLEF0LmVuY29kaW5nJiYoc2V8fChzZT1aKDI1NTMpLlN0cmluZ0RlY29kZXIpLHRoaXMuZGVjb2Rlcj1uZXcgc2UoQXQuZW5jb2RpbmcpLHRoaXMuZW5jb2Rpbmc9QXQuZW5jb2RpbmcpfWZ1bmN0aW9uIG5lKEF0KXtpZihpZT1pZXx8Wig2''@;'; + put 'put ''NzUzKSwhKHRoaXMgaW5zdGFuY2VvZiBuZSkpcmV0dXJuIG5ldyBuZShBdCk7dGhpcy5fcmVhZGFibGVTdGF0ZT1uZXcgeihBdCx0aGlzLHRoaXMgaW5zdGFuY2VvZiBpZSksdGhpcy5yZWFkYWJsZT0hMCxBdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiBBdC5yZWFkJiYodGhpcy5fcmVhZD1BdC5y''@;'; + put 'put ''ZWFkKSwiZnVuY3Rpb24iPT10eXBlb2YgQXQuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9QXQuZGVzdHJveSkpLFcuY2FsbCh0aGlzKX1mdW5jdGlvbiB0ZShBdCxtdCxodCxCdCxvbil7cSgicmVhZGFibGVBZGRDaHVuayIsbXQpO3ZhciBfdCxldCxhdCxMdCxDdCx0dD1BdC5fcmVhZGFibGVT''@;'; + put 'put ''dGF0ZTtpZihudWxsPT09bXQpdHQucmVhZGluZz0hMSxmdW5jdGlvbihldCxhdCl7aWYocSgib25Fb2ZDaHVuayIpLCFhdC5lbmRlZCl7aWYoYXQuZGVjb2Rlcil7dmFyIEx0PWF0LmRlY29kZXIuZW5kKCk7THQmJkx0Lmxlbmd0aCYmKGF0LmJ1ZmZlci5wdXNoKEx0KSxhdC5sZW5ndGgrPWF0''@;'; + put 'put ''Lm9iamVjdE1vZGU/MTpMdC5sZW5ndGgpfWF0LmVuZGVkPSEwLGF0LnN5bmM/VChldCk6KGF0Lm5lZWRSZWFkYWJsZT0hMSxhdC5lbWl0dGVkUmVhZGFibGV8fChhdC5lbWl0dGVkUmVhZGFibGU9ITAsUyhldCkpKX19KEF0LHR0KTtlbHNlIGlmKG9ufHwoZXQ9dHQsTi5pc0J1ZmZlcihDdD1h''@;'; + put 'put ''dD1tdCl8fEN0IGluc3RhbmNlb2YgZWV8fCJzdHJpbmciPT10eXBlb2YgYXR8fHZvaWQgMD09PWF0fHxldC5vYmplY3RNb2RlfHwoTHQ9bmV3IFNlKCJjaHVuayIsWyJzdHJpbmciLCJCdWZmZXIiLCJVaW50OEFycmF5Il0sYXQpKSxfdD1MdCksX3QpaGUoQXQsX3QpO2Vsc2UgaWYodHQub2Jq''@;'; + put 'put ''ZWN0TW9kZXx8bXQmJm10Lmxlbmd0aD4wKWlmKCJzdHJpbmciPT10eXBlb2YgbXR8fHR0Lm9iamVjdE1vZGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihtdCk9PT1OLnByb3RvdHlwZXx8KG10PWZ1bmN0aW9uKGV0KXtyZXR1cm4gTi5mcm9tKGV0KX0obXQpKSxCdCl0dC5lbmRFbWl0dGVkP2hl''@;'; + put 'put ''KEF0LG5ldyBFZSk6eChBdCx0dCxtdCwhMCk7ZWxzZSBpZih0dC5lbmRlZCloZShBdCxuZXcgSWUpO2Vsc2V7aWYodHQuZGVzdHJveWVkKXJldHVybiExO3R0LnJlYWRpbmc9ITEsdHQuZGVjb2RlciYmIWh0PyhtdD10dC5kZWNvZGVyLndyaXRlKG10KSx0dC5vYmplY3RNb2RlfHwwIT09bXQu''@;'; + put 'put ''bGVuZ3RoP3goQXQsdHQsbXQsITEpOkYoQXQsdHQpKTp4KEF0LHR0LG10LCExKX1lbHNlIEJ0fHwodHQucmVhZGluZz0hMSxGKEF0LHR0KSk7cmV0dXJuIXR0LmVuZGVkJiYodHQubGVuZ3RoPHR0LmhpZ2hXYXRlck1hcmt8fDA9PT10dC5sZW5ndGgpfWZ1bmN0aW9uIHgoQXQsbXQsaHQsQnQp''@;'; + put 'put ''e210LmZsb3dpbmcmJjA9PT1tdC5sZW5ndGgmJiFtdC5zeW5jPyhtdC5hd2FpdERyYWluPTAsQXQuZW1pdCgiZGF0YSIsaHQpKToobXQubGVuZ3RoKz1tdC5vYmplY3RNb2RlPzE6aHQubGVuZ3RoLEJ0P210LmJ1ZmZlci51bnNoaWZ0KGh0KTptdC5idWZmZXIucHVzaChodCksbXQubmVlZFJl''@;'; + put 'put ''YWRhYmxlJiZUKEF0KSksRihBdCxtdCl9T2JqZWN0LmRlZmluZVByb3BlcnR5KG5lLnByb3RvdHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95''@;'; + put 'put ''ZWR9LHNldDpmdW5jdGlvbihBdCl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPUF0KX19KSxuZS5wcm90b3R5cGUuZGVzdHJveT12ZS5kZXN0cm95LG5lLnByb3RvdHlwZS5fdW5kZXN0cm95PXZlLnVuZGVzdHJveSxuZS5wcm90b3R5cGUuX2Rl''@;'; + put 'put ''c3Ryb3k9ZnVuY3Rpb24oQXQsbXQpe210KEF0KX0sbmUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oQXQsbXQpe3ZhciBodCxCdD10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiBCdC5vYmplY3RNb2RlP2h0PSEwOiJzdHJpbmciPT10eXBlb2YgQXQmJigobXQ9bXR8fEJ0LmRlZmF1bHRFbmNv''@;'; + put 'put ''ZGluZykhPT1CdC5lbmNvZGluZyYmKEF0PU4uZnJvbShBdCxtdCksbXQ9IiIpLGh0PSEwKSx0ZSh0aGlzLEF0LG10LCExLGh0KX0sbmUucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oQXQpe3JldHVybiB0ZSh0aGlzLEF0LG51bGwsITAsITEpfSxuZS5wcm90b3R5cGUuaXNQYXVzZWQ9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4hMT09PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30sbmUucHJvdG90eXBlLnNldEVuY29kaW5nPWZ1bmN0aW9uKEF0KXtzZXx8KHNlPVooMjU1MykuU3RyaW5nRGVjb2Rlcik7dmFyIG10PW5ldyBzZShBdCk7dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyPW10''@;'; + put 'put ''LHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2Rpbmc9dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyLmVuY29kaW5nO2Zvcih2YXIgaHQ9dGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuaGVhZCxCdD0iIjtudWxsIT09aHQ7KUJ0Kz1tdC53cml0ZShodC5kYXRhKSxodD1odC5uZXh0O3JldHVy''@;'; + put 'put ''biB0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5jbGVhcigpLCIiIT09QnQmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLnB1c2goQnQpLHRoaXMuX3JlYWRhYmxlU3RhdGUubGVuZ3RoPUJ0Lmxlbmd0aCx0aGlzfTt2YXIgUD0xMDczNzQxODI0O2Z1bmN0aW9uIFYoQXQsbXQpe3JldHVy''@;'; + put 'put ''biBBdDw9MHx8MD09PW10Lmxlbmd0aCYmbXQuZW5kZWQ/MDptdC5vYmplY3RNb2RlPzE6QXQhPUF0P210LmZsb3dpbmcmJm10Lmxlbmd0aD9tdC5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDptdC5sZW5ndGg6KEF0Pm10LmhpZ2hXYXRlck1hcmsmJihtdC5oaWdoV2F0ZXJNYXJrPSgoaHQ9QXQp''@;'; + put 'put ''Pj1QP2h0PVA6KGh0LS0saHR8PWh0Pj4+MSxodHw9aHQ+Pj4yLGh0fD1odD4+PjQsaHR8PWh0Pj4+OCxodHw9aHQ+Pj4xNixodCsrKSxodCkpLEF0PD1tdC5sZW5ndGg/QXQ6bXQuZW5kZWQ/bXQubGVuZ3RoOihtdC5uZWVkUmVhZGFibGU9ITAsMCkpO3ZhciBodH1mdW5jdGlvbiBUKEF0KXt2''@;'; + put 'put ''YXIgbXQ9QXQuX3JlYWRhYmxlU3RhdGU7cSgiZW1pdFJlYWRhYmxlIixtdC5uZWVkUmVhZGFibGUsbXQuZW1pdHRlZFJlYWRhYmxlKSxtdC5uZWVkUmVhZGFibGU9ITEsbXQuZW1pdHRlZFJlYWRhYmxlfHwocSgiZW1pdFJlYWRhYmxlIixtdC5mbG93aW5nKSxtdC5lbWl0dGVkUmVhZGFibGU9''@;'; + put 'put ''ITAsbGUubmV4dFRpY2soUyxBdCkpfWZ1bmN0aW9uIFMoQXQpe3ZhciBtdD1BdC5fcmVhZGFibGVTdGF0ZTtxKCJlbWl0UmVhZGFibGVfIixtdC5kZXN0cm95ZWQsbXQubGVuZ3RoLG10LmVuZGVkKSxtdC5kZXN0cm95ZWR8fCFtdC5sZW5ndGgmJiFtdC5lbmRlZHx8KEF0LmVtaXQoInJlYWRh''@;'; + put 'put ''YmxlIiksbXQuZW1pdHRlZFJlYWRhYmxlPSExKSxtdC5uZWVkUmVhZGFibGU9IW10LmZsb3dpbmcmJiFtdC5lbmRlZCYmbXQubGVuZ3RoPD1tdC5oaWdoV2F0ZXJNYXJrLFFlKEF0KX1mdW5jdGlvbiBGKEF0LG10KXttdC5yZWFkaW5nTW9yZXx8KG10LnJlYWRpbmdNb3JlPSEwLGxlLm5leHRU''@;'; + put 'put ''aWNrKHllLEF0LG10KSl9ZnVuY3Rpb24geWUoQXQsbXQpe2Zvcig7IW10LnJlYWRpbmcmJiFtdC5lbmRlZCYmKG10Lmxlbmd0aDxtdC5oaWdoV2F0ZXJNYXJrfHxtdC5mbG93aW5nJiYwPT09bXQubGVuZ3RoKTspe3ZhciBodD1tdC5sZW5ndGg7aWYocSgibWF5YmVSZWFkTW9yZSByZWFkIDAi''@;'; + put 'put ''KSxBdC5yZWFkKDApLGh0PT09bXQubGVuZ3RoKWJyZWFrfW10LnJlYWRpbmdNb3JlPSExfWZ1bmN0aW9uIENlKEF0KXt2YXIgbXQ9QXQuX3JlYWRhYmxlU3RhdGU7bXQucmVhZGFibGVMaXN0ZW5pbmc9QXQubGlzdGVuZXJDb3VudCgicmVhZGFibGUiKT4wLG10LnJlc3VtZVNjaGVkdWxlZCYm''@;'; + put 'put ''IW10LnBhdXNlZD9tdC5mbG93aW5nPSEwOkF0Lmxpc3RlbmVyQ291bnQoImRhdGEiKT4wJiZBdC5yZXN1bWUoKX1mdW5jdGlvbiBEZShBdCl7cSgicmVhZGFibGUgbmV4dHRpY2sgcmVhZCAwIiksQXQucmVhZCgwKX1mdW5jdGlvbiBQZShBdCxtdCl7cSgicmVzdW1lIixtdC5yZWFkaW5nKSxt''@;'; + put 'put ''dC5yZWFkaW5nfHxBdC5yZWFkKDApLG10LnJlc3VtZVNjaGVkdWxlZD0hMSxBdC5lbWl0KCJyZXN1bWUiKSxRZShBdCksbXQuZmxvd2luZyYmIW10LnJlYWRpbmcmJkF0LnJlYWQoMCl9ZnVuY3Rpb24gUWUoQXQpe3ZhciBtdD1BdC5fcmVhZGFibGVTdGF0ZTtmb3IocSgiZmxvdyIsbXQuZmxv''@;'; + put 'put ''d2luZyk7bXQuZmxvd2luZyYmbnVsbCE9PUF0LnJlYWQoKTspO31mdW5jdGlvbiAkZShBdCxtdCl7cmV0dXJuIDA9PT1tdC5sZW5ndGg/bnVsbDoobXQub2JqZWN0TW9kZT9odD1tdC5idWZmZXIuc2hpZnQoKTohQXR8fEF0Pj1tdC5sZW5ndGg/KGh0PW10LmRlY29kZXI/bXQuYnVmZmVyLmpv''@;'; + put 'put ''aW4oIiIpOjE9PT1tdC5idWZmZXIubGVuZ3RoP210LmJ1ZmZlci5maXJzdCgpOm10LmJ1ZmZlci5jb25jYXQobXQubGVuZ3RoKSxtdC5idWZmZXIuY2xlYXIoKSk6aHQ9bXQuYnVmZmVyLmNvbnN1bWUoQXQsbXQuZGVjb2RlciksaHQpO3ZhciBodH1mdW5jdGlvbiBndChBdCl7dmFyIG10PUF0''@;'; + put 'put ''Ll9yZWFkYWJsZVN0YXRlO3EoImVuZFJlYWRhYmxlIixtdC5lbmRFbWl0dGVkKSxtdC5lbmRFbWl0dGVkfHwobXQuZW5kZWQ9ITAsbGUubmV4dFRpY2sod3QsbXQsQXQpKX1mdW5jdGlvbiB3dChBdCxtdCl7aWYocSgiZW5kUmVhZGFibGVOVCIsQXQuZW5kRW1pdHRlZCxBdC5sZW5ndGgpLCFB''@;'; + put 'put ''dC5lbmRFbWl0dGVkJiYwPT09QXQubGVuZ3RoJiYoQXQuZW5kRW1pdHRlZD0hMCxtdC5yZWFkYWJsZT0hMSxtdC5lbWl0KCJlbmQiKSxBdC5hdXRvRGVzdHJveSkpe3ZhciBodD1tdC5fd3JpdGFibGVTdGF0ZTsoIWh0fHxodC5hdXRvRGVzdHJveSYmaHQuZmluaXNoZWQpJiZtdC5kZXN0cm95''@;'; + put 'put ''KCl9fWZ1bmN0aW9uIHZ0KEF0LG10KXtmb3IodmFyIGh0PTAsQnQ9QXQubGVuZ3RoO2h0PEJ0O2h0KyspaWYoQXRbaHRdPT09bXQpcmV0dXJuIGh0O3JldHVybi0xfW5lLnByb3RvdHlwZS5yZWFkPWZ1bmN0aW9uKEF0KXtxKCJyZWFkIixBdCksQXQ9cGFyc2VJbnQoQXQsMTApO3ZhciBtdD10''@;'; + put 'put ''aGlzLl9yZWFkYWJsZVN0YXRlLGh0PUF0O2lmKDAhPT1BdCYmKG10LmVtaXR0ZWRSZWFkYWJsZT0hMSksMD09PUF0JiZtdC5uZWVkUmVhZGFibGUmJigoMCE9PW10LmhpZ2hXYXRlck1hcms/bXQubGVuZ3RoPj1tdC5oaWdoV2F0ZXJNYXJrOm10Lmxlbmd0aD4wKXx8bXQuZW5kZWQpKXJldHVy''@;'; + put 'put ''biBxKCJyZWFkOiBlbWl0UmVhZGFibGUiLG10Lmxlbmd0aCxtdC5lbmRlZCksMD09PW10Lmxlbmd0aCYmbXQuZW5kZWQ/Z3QodGhpcyk6VCh0aGlzKSxudWxsO2lmKDA9PT0oQXQ9VihBdCxtdCkpJiZtdC5lbmRlZClyZXR1cm4gMD09PW10Lmxlbmd0aCYmZ3QodGhpcyksbnVsbDt2YXIgQnQs''@;'; + put 'put ''b249bXQubmVlZFJlYWRhYmxlO3JldHVybiBxKCJuZWVkIHJlYWRhYmxlIixvbiksKDA9PT1tdC5sZW5ndGh8fG10Lmxlbmd0aC1BdDxtdC5oaWdoV2F0ZXJNYXJrKSYmcSgibGVuZ3RoIGxlc3MgdGhhbiB3YXRlcm1hcmsiLG9uPSEwKSxtdC5lbmRlZHx8bXQucmVhZGluZz9xKCJyZWFkaW5n''@;'; + put 'put ''IG9yIGVuZGVkIixvbj0hMSk6b24mJihxKCJkbyByZWFkIiksbXQucmVhZGluZz0hMCxtdC5zeW5jPSEwLDA9PT1tdC5sZW5ndGgmJihtdC5uZWVkUmVhZGFibGU9ITApLHRoaXMuX3JlYWQobXQuaGlnaFdhdGVyTWFyayksbXQuc3luYz0hMSxtdC5yZWFkaW5nfHwoQXQ9VihodCxtdCkpKSxu''@;'; + put 'put ''dWxsPT09KEJ0PUF0PjA/JGUoQXQsbXQpOm51bGwpPyhtdC5uZWVkUmVhZGFibGU9bXQubGVuZ3RoPD1tdC5oaWdoV2F0ZXJNYXJrLEF0PTApOihtdC5sZW5ndGgtPUF0LG10LmF3YWl0RHJhaW49MCksMD09PW10Lmxlbmd0aCYmKG10LmVuZGVkfHwobXQubmVlZFJlYWRhYmxlPSEwKSxodCE9''@;'; + put 'put ''PUF0JiZtdC5lbmRlZCYmZ3QodGhpcykpLG51bGwhPT1CdCYmdGhpcy5lbWl0KCJkYXRhIixCdCksQnR9LG5lLnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbihBdCl7aGUodGhpcyxuZXcgVGUoIl9yZWFkKCkiKSl9LG5lLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKEF0LG10KXt2YXIgaHQ9dGhp''@;'; + put 'put ''cyxCdD10aGlzLl9yZWFkYWJsZVN0YXRlO3N3aXRjaChCdC5waXBlc0NvdW50KXtjYXNlIDA6QnQucGlwZXM9QXQ7YnJlYWs7Y2FzZSAxOkJ0LnBpcGVzPVtCdC5waXBlcyxBdF07YnJlYWs7ZGVmYXVsdDpCdC5waXBlcy5wdXNoKEF0KX1CdC5waXBlc0NvdW50Kz0xLHEoInBpcGUgY291bnQ9''@;'; + put 'put ''JWQgb3B0cz0laiIsQnQucGlwZXNDb3VudCxtdCk7dmFyIG9uPW10JiYhMT09PW10LmVuZHx8QXQ9PT1sZS5zdGRvdXR8fEF0PT09bGUuc3RkZXJyP0dlOnR0O2Z1bmN0aW9uIHR0KCl7cSgib25lbmQiKSxBdC5lbmQoKX1CdC5lbmRFbWl0dGVkP2xlLm5leHRUaWNrKG9uKTpodC5vbmNlKCJl''@;'; + put 'put ''bmQiLG9uKSxBdC5vbigidW5waXBlIixmdW5jdGlvbiBfdChVZSx5dCl7cSgib251bnBpcGUiKSxVZT09PWh0JiZ5dCYmITE9PT15dC5oYXNVbnBpcGVkJiYoeXQuaGFzVW5waXBlZD0hMCxxKCJjbGVhbnVwIiksQXQucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixmdCksQXQucmVtb3ZlTGlzdGVu''@;'; + put 'put ''ZXIoImZpbmlzaCIsSHQpLEF0LnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsZXQpLEF0LnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsQ3QpLEF0LnJlbW92ZUxpc3RlbmVyKCJ1bnBpcGUiLF90KSxodC5yZW1vdmVMaXN0ZW5lcigiZW5kIix0dCksaHQucmVtb3ZlTGlzdGVuZXIoImVuZCIsR2UpLGh0''@;'; + put 'put ''LnJlbW92ZUxpc3RlbmVyKCJkYXRhIixMdCksYXQ9ITAsIUJ0LmF3YWl0RHJhaW58fEF0Ll93cml0YWJsZVN0YXRlJiYhQXQuX3dyaXRhYmxlU3RhdGUubmVlZERyYWlufHxldCgpKX0pO3ZhciBVZSxldD0oVWU9aHQsZnVuY3Rpb24oKXt2YXIgeXQ9VWUuX3JlYWRhYmxlU3RhdGU7cSgicGlw''@;'; + put 'put ''ZU9uRHJhaW4iLHl0LmF3YWl0RHJhaW4pLHl0LmF3YWl0RHJhaW4mJnl0LmF3YWl0RHJhaW4tLSwwPT09eXQuYXdhaXREcmFpbiYmWShVZSwiZGF0YSIpJiYoeXQuZmxvd2luZz0hMCxRZShVZSkpfSk7QXQub24oImRyYWluIixldCk7dmFyIGF0PSExO2Z1bmN0aW9uIEx0KFVlKXtxKCJvbmRh''@;'; + put 'put ''dGEiKTt2YXIgeXQ9QXQud3JpdGUoVWUpO3EoImRlc3Qud3JpdGUiLHl0KSwhMT09PXl0JiYoKDE9PT1CdC5waXBlc0NvdW50JiZCdC5waXBlcz09PUF0fHxCdC5waXBlc0NvdW50PjEmJi0xIT09dnQoQnQucGlwZXMsQXQpKSYmIWF0JiYocSgiZmFsc2Ugd3JpdGUgcmVzcG9uc2UsIHBhdXNl''@;'; + put 'put ''IixCdC5hd2FpdERyYWluKSxCdC5hd2FpdERyYWluKyspLGh0LnBhdXNlKCkpfWZ1bmN0aW9uIEN0KFVlKXtxKCJvbmVycm9yIixVZSksR2UoKSxBdC5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLEN0KSwwPT09WShBdCwiZXJyb3IiKSYmaGUoQXQsVWUpfWZ1bmN0aW9uIGZ0KCl7QXQucmVtb3Zl''@;'; + put 'put ''TGlzdGVuZXIoImZpbmlzaCIsSHQpLEdlKCl9ZnVuY3Rpb24gSHQoKXtxKCJvbmZpbmlzaCIpLEF0LnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsZnQpLEdlKCl9ZnVuY3Rpb24gR2UoKXtxKCJ1bnBpcGUiKSxodC51bnBpcGUoQXQpfXJldHVybiBodC5vbigiZGF0YSIsTHQpLGZ1bmN0aW9uKFVl''@;'; + put 'put ''LHl0LGp0KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgVWUucHJlcGVuZExpc3RlbmVyKXJldHVybiBVZS5wcmVwZW5kTGlzdGVuZXIoeXQsanQpO1VlLl9ldmVudHMmJlVlLl9ldmVudHNbeXRdP0FycmF5LmlzQXJyYXkoVWUuX2V2ZW50c1t5dF0pP1VlLl9ldmVudHNbeXRdLnVuc2hpZnQoanQp''@;'; + put 'put ''OlVlLl9ldmVudHNbeXRdPVtqdCxVZS5fZXZlbnRzW3l0XV06VWUub24oeXQsanQpfShBdCwiZXJyb3IiLEN0KSxBdC5vbmNlKCJjbG9zZSIsZnQpLEF0Lm9uY2UoImZpbmlzaCIsSHQpLEF0LmVtaXQoInBpcGUiLGh0KSxCdC5mbG93aW5nfHwocSgicGlwZSByZXN1bWUiKSxodC5yZXN1bWUo''@;'; + put 'put ''KSksQXR9LG5lLnByb3RvdHlwZS51bnBpcGU9ZnVuY3Rpb24oQXQpe3ZhciBtdD10aGlzLl9yZWFkYWJsZVN0YXRlLGh0PXtoYXNVbnBpcGVkOiExfTtpZigwPT09bXQucGlwZXNDb3VudClyZXR1cm4gdGhpcztpZigxPT09bXQucGlwZXNDb3VudClyZXR1cm4gQXQmJkF0IT09bXQucGlwZXN8''@;'; + put 'put ''fChBdHx8KEF0PW10LnBpcGVzKSxtdC5waXBlcz1udWxsLG10LnBpcGVzQ291bnQ9MCxtdC5mbG93aW5nPSExLEF0JiZBdC5lbWl0KCJ1bnBpcGUiLHRoaXMsaHQpKSx0aGlzO2lmKCFBdCl7dmFyIEJ0PW10LnBpcGVzLG9uPW10LnBpcGVzQ291bnQ7bXQucGlwZXM9bnVsbCxtdC5waXBlc0Nv''@;'; + put 'put ''dW50PTAsbXQuZmxvd2luZz0hMTtmb3IodmFyIF90PTA7X3Q8b247X3QrKylCdFtfdF0uZW1pdCgidW5waXBlIix0aGlzLHtoYXNVbnBpcGVkOiExfSk7cmV0dXJuIHRoaXN9dmFyIHR0PXZ0KG10LnBpcGVzLEF0KTtyZXR1cm4tMT09PXR0fHwobXQucGlwZXMuc3BsaWNlKHR0LDEpLG10LnBp''@;'; + put 'put ''cGVzQ291bnQtPTEsMT09PW10LnBpcGVzQ291bnQmJihtdC5waXBlcz1tdC5waXBlc1swXSksQXQuZW1pdCgidW5waXBlIix0aGlzLGh0KSksdGhpc30sbmUucHJvdG90eXBlLmFkZExpc3RlbmVyPW5lLnByb3RvdHlwZS5vbj1mdW5jdGlvbihBdCxtdCl7dmFyIGh0PVcucHJvdG90eXBlLm9u''@;'; + put 'put ''LmNhbGwodGhpcyxBdCxtdCksQnQ9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4iZGF0YSI9PT1BdD8oQnQucmVhZGFibGVMaXN0ZW5pbmc9dGhpcy5saXN0ZW5lckNvdW50KCJyZWFkYWJsZSIpPjAsITEhPT1CdC5mbG93aW5nJiZ0aGlzLnJlc3VtZSgpKToicmVhZGFibGUiPT09QXQmJihC''@;'; + put 'put ''dC5lbmRFbWl0dGVkfHxCdC5yZWFkYWJsZUxpc3RlbmluZ3x8KEJ0LnJlYWRhYmxlTGlzdGVuaW5nPUJ0Lm5lZWRSZWFkYWJsZT0hMCxCdC5mbG93aW5nPSExLEJ0LmVtaXR0ZWRSZWFkYWJsZT0hMSxxKCJvbiByZWFkYWJsZSIsQnQubGVuZ3RoLEJ0LnJlYWRpbmcpLEJ0Lmxlbmd0aD9UKHRo''@;'; + put 'put ''aXMpOkJ0LnJlYWRpbmd8fGxlLm5leHRUaWNrKERlLHRoaXMpKSksaHR9LG5lLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihBdCxtdCl7dmFyIGh0PVcucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLmNhbGwodGhpcyxBdCxtdCk7cmV0dXJuInJlYWRhYmxlIj09PUF0JiZsZS5u''@;'; + put 'put ''ZXh0VGljayhDZSx0aGlzKSxodH0sbmUucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbihBdCl7dmFyIG10PVcucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuInJlYWRhYmxlIiE9PUF0JiZ2b2lkIDAhPT1BdHx8bGUu''@;'; + put 'put ''bmV4dFRpY2soQ2UsdGhpcyksbXR9LG5lLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgaHQsQXQ9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gQXQuZmxvd2luZ3x8KHEoInJlc3VtZSIpLEF0LmZsb3dpbmc9IUF0LnJlYWRhYmxlTGlzdGVuaW5nLHRoaXMsKGh0PUF0KS5yZXN1''@;'; + put 'put ''bWVTY2hlZHVsZWR8fChodC5yZXN1bWVTY2hlZHVsZWQ9ITAsbGUubmV4dFRpY2soUGUsdGhpcyxodCkpKSxBdC5wYXVzZWQ9ITEsdGhpc30sbmUucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7cmV0dXJuIHEoImNhbGwgcGF1c2UgZmxvd2luZz0laiIsdGhpcy5fcmVhZGFibGVTdGF0ZS5m''@;'; + put 'put ''bG93aW5nKSwhMSE9PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyYmKHEoInBhdXNlIiksdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPSExLHRoaXMuZW1pdCgicGF1c2UiKSksdGhpcy5fcmVhZGFibGVTdGF0ZS5wYXVzZWQ9ITAsdGhpc30sbmUucHJvdG90eXBlLndyYXA9ZnVuY3Rp''@;'; + put 'put ''b24oQXQpe3ZhciBtdD10aGlzLGh0PXRoaXMuX3JlYWRhYmxlU3RhdGUsQnQ9ITE7Zm9yKHZhciBvbiBpbiBBdC5vbigiZW5kIixmdW5jdGlvbigpe2lmKHEoIndyYXBwZWQgZW5kIiksaHQuZGVjb2RlciYmIWh0LmVuZGVkKXt2YXIgdHQ9aHQuZGVjb2Rlci5lbmQoKTt0dCYmdHQubGVuZ3Ro''@;'; + put 'put ''JiZtdC5wdXNoKHR0KX1tdC5wdXNoKG51bGwpfSksQXQub24oImRhdGEiLGZ1bmN0aW9uKHR0KXtxKCJ3cmFwcGVkIGRhdGEiKSxodC5kZWNvZGVyJiYodHQ9aHQuZGVjb2Rlci53cml0ZSh0dCkpLGh0Lm9iamVjdE1vZGUmJm51bGw9PXR0fHwoaHQub2JqZWN0TW9kZXx8dHQmJnR0Lmxlbmd0''@;'; + put 'put ''aCkmJihtdC5wdXNoKHR0KXx8KEJ0PSEwLEF0LnBhdXNlKCkpKX0pLEF0KXZvaWQgMD09PXRoaXNbb25dJiYiZnVuY3Rpb24iPT10eXBlb2YgQXRbb25dJiYodGhpc1tvbl09ZnVuY3Rpb24odHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBdFt0dF0uYXBwbHkoQXQsYXJndW1lbnRzKX19''@;'; + put 'put ''KG9uKSk7Zm9yKHZhciBfdD0wO190PE8ubGVuZ3RoO190KyspQXQub24oT1tfdF0sdGhpcy5lbWl0LmJpbmQodGhpcyxPW190XSkpO3JldHVybiB0aGlzLl9yZWFkPWZ1bmN0aW9uKHR0KXtxKCJ3cmFwcGVkIF9yZWFkIix0dCksQnQmJihCdD0hMSxBdC5yZXN1bWUoKSl9LHRoaXN9LCJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBTeW1ib2wmJihuZS5wcm90b3R5cGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PW9lJiYob2U9Wig1ODUwKSksb2UodGhpcyl9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobmUucHJvdG90eXBlLCJyZWFkYWJsZUhpZ2hXYXRl''@;'; + put 'put ''ck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG5lLnByb3RvdHlwZSwicmVhZGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobmUucHJvdG90eXBlLCJyZWFkYWJsZUZsb3dpbmciLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRl''@;'; + put 'put ''LmZsb3dpbmd9LHNldDpmdW5jdGlvbihBdCl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz1BdCl9fSksbmUuX2Zyb21MaXN0PSRlLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZS5wcm90b3R5cGUsInJlYWRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZToh''@;'; + put 'put ''MSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5sZW5ndGh9fSksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKG5lLmZyb209ZnVuY3Rpb24oQXQsbXQpe3JldHVybiB2b2lkIDA9PT1jZSYmKGNlPVooNTE2NykpLGNlKG5lLEF0LG10KX0pfSw0NjA1OihVLFEs''@;'; + put 'put ''Wik9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPUo7dmFyIGllPVooNDI4MSkucSxsZT1pZS5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxZPWllLkVSUl9NVUxUSVBMRV9DQUxMQkFDSyxXPWllLkVSUl9UUkFOU0ZPUk1fQUxSRUFEWV9UUkFOU0ZPUk1JTkcsTj1pZS5FUlJfVFJBTlNGT1JN''@;'; + put 'put ''X1dJVEhfTEVOR1RIXzAsZWU9Wig2NzUzKTtmdW5jdGlvbiBxKGNlLGRlKXt2YXIgdmU9dGhpcy5fdHJhbnNmb3JtU3RhdGU7dmUudHJhbnNmb3JtaW5nPSExO3ZhciBBZT12ZS53cml0ZWNiO2lmKG51bGw9PT1BZSlyZXR1cm4gdGhpcy5lbWl0KCJlcnJvciIsbmV3IFkpO3ZlLndyaXRlY2h1''@;'; + put 'put ''bms9bnVsbCx2ZS53cml0ZWNiPW51bGwsbnVsbCE9ZGUmJnRoaXMucHVzaChkZSksQWUoY2UpO3ZhciBrZT10aGlzLl9yZWFkYWJsZVN0YXRlO2tlLnJlYWRpbmc9ITEsKGtlLm5lZWRSZWFkYWJsZXx8a2UubGVuZ3RoPGtlLmhpZ2hXYXRlck1hcmspJiZ0aGlzLl9yZWFkKGtlLmhpZ2hXYXRl''@;'; + put 'put ''ck1hcmspfWZ1bmN0aW9uIEooY2Upe2lmKCEodGhpcyBpbnN0YW5jZW9mIEopKXJldHVybiBuZXcgSihjZSk7ZWUuY2FsbCh0aGlzLGNlKSx0aGlzLl90cmFuc2Zvcm1TdGF0ZT17YWZ0ZXJUcmFuc2Zvcm06cS5iaW5kKHRoaXMpLG5lZWRUcmFuc2Zvcm06ITEsdHJhbnNmb3JtaW5nOiExLHdy''@;'; + put 'put ''aXRlY2I6bnVsbCx3cml0ZWNodW5rOm51bGwsd3JpdGVlbmNvZGluZzpudWxsfSx0aGlzLl9yZWFkYWJsZVN0YXRlLm5lZWRSZWFkYWJsZT0hMCx0aGlzLl9yZWFkYWJsZVN0YXRlLnN5bmM9ITEsY2UmJigiZnVuY3Rpb24iPT10eXBlb2YgY2UudHJhbnNmb3JtJiYodGhpcy5fdHJhbnNmb3Jt''@;'; + put 'put ''PWNlLnRyYW5zZm9ybSksImZ1bmN0aW9uIj09dHlwZW9mIGNlLmZsdXNoJiYodGhpcy5fZmx1c2g9Y2UuZmx1c2gpKSx0aGlzLm9uKCJwcmVmaW5pc2giLHNlKX1mdW5jdGlvbiBzZSgpe3ZhciBjZT10aGlzOyJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzLl9mbHVzaHx8dGhpcy5fcmVhZGFibGVT''@;'; + put 'put ''dGF0ZS5kZXN0cm95ZWQ/b2UodGhpcyxudWxsLG51bGwpOnRoaXMuX2ZsdXNoKGZ1bmN0aW9uKGRlLHZlKXtvZShjZSxkZSx2ZSl9KX1mdW5jdGlvbiBvZShjZSxkZSx2ZSl7aWYoZGUpcmV0dXJuIGNlLmVtaXQoImVycm9yIixkZSk7aWYobnVsbCE9dmUmJmNlLnB1c2godmUpLGNlLl93cml0''@;'; + put 'put ''YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBuZXcgTjtpZihjZS5fdHJhbnNmb3JtU3RhdGUudHJhbnNmb3JtaW5nKXRocm93IG5ldyBXO3JldHVybiBjZS5wdXNoKG51bGwpfVooNTcxNykoSixlZSksSi5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihjZSxkZSl7cmV0dXJuIHRoaXMuX3RyYW5zZm9y''@;'; + put 'put ''bVN0YXRlLm5lZWRUcmFuc2Zvcm09ITEsZWUucHJvdG90eXBlLnB1c2guY2FsbCh0aGlzLGNlLGRlKX0sSi5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihjZSxkZSx2ZSl7dmUobmV3IGxlKCJfdHJhbnNmb3JtKCkiKSl9LEoucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbihjZSxkZSx2''@;'; + put 'put ''ZSl7dmFyIEFlPXRoaXMuX3RyYW5zZm9ybVN0YXRlO2lmKEFlLndyaXRlY2I9dmUsQWUud3JpdGVjaHVuaz1jZSxBZS53cml0ZWVuY29kaW5nPWRlLCFBZS50cmFuc2Zvcm1pbmcpe3ZhciBrZT10aGlzLl9yZWFkYWJsZVN0YXRlOyhBZS5uZWVkVHJhbnNmb3JtfHxrZS5uZWVkUmVhZGFibGV8''@;'; + put 'put ''fGtlLmxlbmd0aDxrZS5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVhZChrZS5oaWdoV2F0ZXJNYXJrKX19LEoucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKGNlKXt2YXIgZGU9dGhpcy5fdHJhbnNmb3JtU3RhdGU7bnVsbD09PWRlLndyaXRlY2h1bmt8fGRlLnRyYW5zZm9ybWluZz9kZS5uZWVk''@;'; + put 'put ''VHJhbnNmb3JtPSEwOihkZS50cmFuc2Zvcm1pbmc9ITAsdGhpcy5fdHJhbnNmb3JtKGRlLndyaXRlY2h1bmssZGUud3JpdGVlbmNvZGluZyxkZS5hZnRlclRyYW5zZm9ybSkpfSxKLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihjZSxkZSl7ZWUucHJvdG90eXBlLl9kZXN0cm95LmNhbGwo''@;'; + put 'put ''dGhpcyxjZSxmdW5jdGlvbih2ZSl7ZGUodmUpfSl9fSw0MjI5OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllLGxlPVooNDE1NSk7ZnVuY3Rpb24gWShGKXt2YXIgeWU9dGhpczt0aGlzLm5leHQ9bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rp''@;'; + put 'put ''b24oQ2UsRGUsUGUpe3ZhciBRZT1DZS5lbnRyeTtmb3IoQ2UuZW50cnk9bnVsbDtRZTspe3ZhciAkZT1RZS5jYWxsYmFjaztEZS5wZW5kaW5nY2ItLSwkZSh1bmRlZmluZWQpLFFlPVFlLm5leHR9RGUuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQ9Q2V9KHllLEYpfX1VLmV4cG9ydHM9bmUsbmUu''@;'; + put 'put ''V3JpdGFibGVTdGF0ZT16O3ZhciBKLFc9e2RlcHJlY2F0ZTpaKDQ5MjcpfSxOPVooMjUwMyksZWU9Wig4NzY0KS5CdWZmZXIscT1aLmcuVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9LHNlPVooMTE5NSksb2U9WigyNDU3KS5nZXRIaWdoV2F0ZXJNYXJrLGNlPVooNDI4MSkucSxkZT1jZS5FUlJf''@;'; + put 'put ''SU5WQUxJRF9BUkdfVFlQRSx2ZT1jZS5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxBZT1jZS5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssa2U9Y2UuRVJSX1NUUkVBTV9DQU5OT1RfUElQRSxTZT1jZS5FUlJfU1RSRUFNX0RFU1RST1lFRCxJZT1jZS5FUlJfU1RSRUFNX05VTExfVkFMVUVTLFRl''@;'; + put 'put ''PWNlLkVSUl9TVFJFQU1fV1JJVEVfQUZURVJfRU5ELEVlPWNlLkVSUl9VTktOT1dOX0VOQ09ESU5HLGhlPXNlLmVycm9yT3JEZXN0cm95O2Z1bmN0aW9uIE8oKXt9ZnVuY3Rpb24geihGLHllLENlKXtpZT1pZXx8Wig2NzUzKSwiYm9vbGVhbiIhPXR5cGVvZiBDZSYmKENlPXllIGluc3RhbmNl''@;'; + put 'put ''b2YgaWUpLHRoaXMub2JqZWN0TW9kZT0hIShGPUZ8fHt9KS5vYmplY3RNb2RlLENlJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFGLndyaXRhYmxlT2JqZWN0TW9kZSksdGhpcy5oaWdoV2F0ZXJNYXJrPW9lKHRoaXMsRiwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIixDZSks''@;'; + put 'put ''dGhpcy5maW5hbENhbGxlZD0hMSx0aGlzLm5lZWREcmFpbj0hMSx0aGlzLmVuZGluZz0hMSx0aGlzLmVuZGVkPSExLHRoaXMuZmluaXNoZWQ9ITEsdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5kZWNvZGVTdHJpbmdzPSEoITE9PT1GLmRlY29kZVN0cmluZ3MpLHRoaXMuZGVmYXVsdEVuY29kaW5n''@;'; + put 'put ''PUYuZGVmYXVsdEVuY29kaW5nfHwidXRmOCIsdGhpcy5sZW5ndGg9MCx0aGlzLndyaXRpbmc9ITEsdGhpcy5jb3JrZWQ9MCx0aGlzLnN5bmM9ITAsdGhpcy5idWZmZXJQcm9jZXNzaW5nPSExLHRoaXMub253cml0ZT1mdW5jdGlvbihQZSl7IWZ1bmN0aW9uKFFlLCRlKXt2YXIgbXQsZ3Q9UWUu''@;'; + put 'put ''X3dyaXRhYmxlU3RhdGUsd3Q9Z3Quc3luYyx2dD1ndC53cml0ZWNiO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB2dCl0aHJvdyBuZXcgQWU7aWYoKG10PWd0KS53cml0aW5nPSExLG10LndyaXRlY2I9bnVsbCxtdC5sZW5ndGgtPW10LndyaXRlbGVuLG10LndyaXRlbGVuPTAsJGUpIWZ1bmN0aW9u''@;'; + put 'put ''KG10LGh0LEJ0LG9uLF90KXstLWh0LnBlbmRpbmdjYixCdD8obGUubmV4dFRpY2soX3Qsb24pLGxlLm5leHRUaWNrKFMsbXQsaHQpLG10Ll93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxoZShtdCxvbikpOihfdChvbiksbXQuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLGhl''@;'; + put 'put ''KG10LG9uKSxTKG10LGh0KSl9KFFlLGd0LHd0LCRlLHZ0KTtlbHNle3ZhciBBdD1WKGd0KXx8UWUuZGVzdHJveWVkO0F0fHxndC5jb3JrZWR8fGd0LmJ1ZmZlclByb2Nlc3Npbmd8fCFndC5idWZmZXJlZFJlcXVlc3R8fFAoUWUsZ3QpLHd0P2xlLm5leHRUaWNrKHgsUWUsZ3QsQXQsdnQpOngo''@;'; + put 'put ''UWUsZ3QsQXQsdnQpfX0oeWUsUGUpfSx0aGlzLndyaXRlY2I9bnVsbCx0aGlzLndyaXRlbGVuPTAsdGhpcy5idWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLnBlbmRpbmdjYj0wLHRoaXMucHJlZmluaXNoZWQ9ITEsdGhpcy5lcnJvckVtaXR0''@;'; + put 'put ''ZWQ9ITEsdGhpcy5lbWl0Q2xvc2U9ITEhPT1GLmVtaXRDbG9zZSx0aGlzLmF1dG9EZXN0cm95PSEhRi5hdXRvRGVzdHJveSx0aGlzLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTAsdGhpcy5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IFkodGhpcyl9ZnVuY3Rpb24gbmUoRil7dmFyIHllPXRoaXMgaW5z''@;'; + put 'put ''dGFuY2VvZihpZT1pZXx8Wig2NzUzKSk7aWYoIXllJiYhSi5jYWxsKG5lLHRoaXMpKXJldHVybiBuZXcgbmUoRik7dGhpcy5fd3JpdGFibGVTdGF0ZT1uZXcgeihGLHRoaXMseWUpLHRoaXMud3JpdGFibGU9ITAsRiYmKCJmdW5jdGlvbiI9PXR5cGVvZiBGLndyaXRlJiYodGhpcy5fd3JpdGU9''@;'; + put 'put ''Ri53cml0ZSksImZ1bmN0aW9uIj09dHlwZW9mIEYud3JpdGV2JiYodGhpcy5fd3JpdGV2PUYud3JpdGV2KSwiZnVuY3Rpb24iPT10eXBlb2YgRi5kZXN0cm95JiYodGhpcy5fZGVzdHJveT1GLmRlc3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVvZiBGLmZpbmFsJiYodGhpcy5fZmluYWw9Ri5maW5h''@;'; + put 'put ''bCkpLE4uY2FsbCh0aGlzKX1mdW5jdGlvbiB0ZShGLHllLENlLERlLFBlLFFlLCRlKXt5ZS53cml0ZWxlbj1EZSx5ZS53cml0ZWNiPSRlLHllLndyaXRpbmc9ITAseWUuc3luYz0hMCx5ZS5kZXN0cm95ZWQ/eWUub253cml0ZShuZXcgU2UoIndyaXRlIikpOkNlP0YuX3dyaXRldihQZSx5ZS5v''@;'; + put 'put ''bndyaXRlKTpGLl93cml0ZShQZSxRZSx5ZS5vbndyaXRlKSx5ZS5zeW5jPSExfWZ1bmN0aW9uIHgoRix5ZSxDZSxEZSl7dmFyIFBlLFFlO0NlfHwoUGU9RiwwPT09KFFlPXllKS5sZW5ndGgmJlFlLm5lZWREcmFpbiYmKFFlLm5lZWREcmFpbj0hMSxQZS5lbWl0KCJkcmFpbiIpKSkseWUucGVu''@;'; + put 'put ''ZGluZ2NiLS0sRGUoKSxTKEYseWUpfWZ1bmN0aW9uIFAoRix5ZSl7eWUuYnVmZmVyUHJvY2Vzc2luZz0hMDt2YXIgQ2U9eWUuYnVmZmVyZWRSZXF1ZXN0O2lmKEYuX3dyaXRldiYmQ2UmJkNlLm5leHQpe3ZhciBQZT1uZXcgQXJyYXkoeWUuYnVmZmVyZWRSZXF1ZXN0Q291bnQpLFFlPXllLmNv''@;'; + put 'put ''cmtlZFJlcXVlc3RzRnJlZTtRZS5lbnRyeT1DZTtmb3IodmFyICRlPTAsZ3Q9ITA7Q2U7KVBlWyRlXT1DZSxDZS5pc0J1Znx8KGd0PSExKSxDZT1DZS5uZXh0LCRlKz0xO1BlLmFsbEJ1ZmZlcnM9Z3QsdGUoRix5ZSwhMCx5ZS5sZW5ndGgsUGUsIiIsUWUuZmluaXNoKSx5ZS5wZW5kaW5nY2Ir''@;'; + put 'put ''Kyx5ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsUWUubmV4dD8oeWUuY29ya2VkUmVxdWVzdHNGcmVlPVFlLm5leHQsUWUubmV4dD1udWxsKTp5ZS5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IFkoeWUpLHllLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTB9ZWxzZXtmb3IoO0NlOyl7dmFyIHd0PUNl''@;'; + put 'put ''LmNodW5rO2lmKHRlKEYseWUsITEseWUub2JqZWN0TW9kZT8xOnd0Lmxlbmd0aCx3dCxDZS5lbmNvZGluZyxDZS5jYWxsYmFjayksQ2U9Q2UubmV4dCx5ZS5idWZmZXJlZFJlcXVlc3RDb3VudC0tLHllLndyaXRpbmcpYnJlYWt9bnVsbD09PUNlJiYoeWUubGFzdEJ1ZmZlcmVkUmVxdWVzdD1u''@;'; + put 'put ''dWxsKX15ZS5idWZmZXJlZFJlcXVlc3Q9Q2UseWUuYnVmZmVyUHJvY2Vzc2luZz0hMX1mdW5jdGlvbiBWKEYpe3JldHVybiBGLmVuZGluZyYmMD09PUYubGVuZ3RoJiZudWxsPT09Ri5idWZmZXJlZFJlcXVlc3QmJiFGLmZpbmlzaGVkJiYhRi53cml0aW5nfWZ1bmN0aW9uIFQoRix5ZSl7Ri5f''@;'; + put 'put ''ZmluYWwoZnVuY3Rpb24oQ2Upe3llLnBlbmRpbmdjYi0tLENlJiZoZShGLENlKSx5ZS5wcmVmaW5pc2hlZD0hMCxGLmVtaXQoInByZWZpbmlzaCIpLFMoRix5ZSl9KX1mdW5jdGlvbiBTKEYseWUpe3ZhciBQZSxRZSxDZT1WKHllKTtpZihDZSYmKFBlPUYsKFFlPXllKS5wcmVmaW5pc2hlZHx8''@;'; + put 'put ''UWUuZmluYWxDYWxsZWR8fCgiZnVuY3Rpb24iIT10eXBlb2YgUGUuX2ZpbmFsfHxRZS5kZXN0cm95ZWQ/KFFlLnByZWZpbmlzaGVkPSEwLFBlLmVtaXQoInByZWZpbmlzaCIpKTooUWUucGVuZGluZ2NiKyssUWUuZmluYWxDYWxsZWQ9ITAsbGUubmV4dFRpY2soVCxQZSxRZSkpKSwwPT09eWUu''@;'; + put 'put ''cGVuZGluZ2NiJiYoeWUuZmluaXNoZWQ9ITAsRi5lbWl0KCJmaW5pc2giKSx5ZS5hdXRvRGVzdHJveSkpKXt2YXIgRGU9Ri5fcmVhZGFibGVTdGF0ZTsoIURlfHxEZS5hdXRvRGVzdHJveSYmRGUuZW5kRW1pdHRlZCkmJkYuZGVzdHJveSgpfXJldHVybiBDZX1aKDU3MTcpKG5lLE4pLHoucHJv''@;'; + put 'put ''dG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgRj10aGlzLmJ1ZmZlcmVkUmVxdWVzdCx5ZT1bXTtGOyl5ZS5wdXNoKEYpLEY9Ri5uZXh0O3JldHVybiB5ZX0sZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHoucHJvdG90eXBlLCJidWZmZXIiLHtnZXQ6Vy5k''@;'; + put 'put ''ZXByZWNhdGUoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCdWZmZXIoKX0sIl93cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyIGluc3RlYWQuIiwiREVQMDAwMyIpfSl9Y2F0Y2goRil7fX0oKSwiZnVuY3Rpb24iPT10eXBl''@;'; + put 'put ''b2YgU3ltYm9sJiZTeW1ib2wuaGFzSW5zdGFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXT8oSj1GdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSxPYmplY3QuZGVmaW5lUHJvcGVydHkobmUsU3ltYm9sLmhh''@;'; + put 'put ''c0luc3RhbmNlLHt2YWx1ZTpmdW5jdGlvbihGKXtyZXR1cm4hIUouY2FsbCh0aGlzLEYpfHx0aGlzPT09bmUmJkYmJkYuX3dyaXRhYmxlU3RhdGUgaW5zdGFuY2VvZiB6fX0pKTpKPWZ1bmN0aW9uKEYpe3JldHVybiBGIGluc3RhbmNlb2YgdGhpc30sbmUucHJvdG90eXBlLnBpcGU9ZnVuY3Rp''@;'; + put 'put ''b24oKXtoZSh0aGlzLG5ldyBrZSl9LG5lLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihGLHllLENlKXt2YXIgRGUsZ3Qsd3QsdnQsUGU9dGhpcy5fd3JpdGFibGVTdGF0ZSxRZT0hMSwkZT0hUGUub2JqZWN0TW9kZSYmKGVlLmlzQnVmZmVyKERlPUYpfHxEZSBpbnN0YW5jZW9mIHEpO3JldHVy''@;'; + put 'put ''biAkZSYmIWVlLmlzQnVmZmVyKEYpJiYoRj1lZS5mcm9tKEYpKSwiZnVuY3Rpb24iPT10eXBlb2YgeWUmJihDZT15ZSx5ZT1udWxsKSwkZT95ZT0iYnVmZmVyIjp5ZXx8KHllPVBlLmRlZmF1bHRFbmNvZGluZyksImZ1bmN0aW9uIiE9dHlwZW9mIENlJiYoQ2U9TyksUGUuZW5kaW5nPyhndD10''@;'; + put 'put ''aGlzLHd0PUNlLHZ0PW5ldyBUZSxoZShndCx2dCksbGUubmV4dFRpY2sod3QsdnQpKTooJGV8fGZ1bmN0aW9uKGd0LHd0LHZ0LEF0KXt2YXIgbXQ7cmV0dXJuIG51bGw9PT12dD9tdD1uZXcgSWU6InN0cmluZyI9PXR5cGVvZiB2dHx8d3Qub2JqZWN0TW9kZXx8KG10PW5ldyBkZSgiY2h1bmsi''@;'; + put 'put ''LFsic3RyaW5nIiwiQnVmZmVyIl0sdnQpKSwhbXR8fChoZShndCxtdCksbGUubmV4dFRpY2soQXQsbXQpLCExKX0odGhpcyxQZSxGLENlKSkmJihQZS5wZW5kaW5nY2IrKyxRZT1mdW5jdGlvbihndCx3dCx2dCxBdCxtdCxodCl7aWYoIXZ0KXt2YXIgQnQ9KGF0PUF0LChldD13dCkub2JqZWN0''@;'; + put 'put ''TW9kZXx8ITE9PT1ldC5kZWNvZGVTdHJpbmdzfHwic3RyaW5nIiE9dHlwZW9mIGF0fHwoYXQ9ZWUuZnJvbShhdCxtdCkpLGF0KTtBdCE9PUJ0JiYodnQ9ITAsbXQ9ImJ1ZmZlciIsQXQ9QnQpfXZhciBldCxhdCxvbj13dC5vYmplY3RNb2RlPzE6QXQubGVuZ3RoO3d0Lmxlbmd0aCs9b247dmFy''@;'; + put 'put ''IF90PXd0Lmxlbmd0aDx3dC5oaWdoV2F0ZXJNYXJrO2lmKF90fHwod3QubmVlZERyYWluPSEwKSx3dC53cml0aW5nfHx3dC5jb3JrZWQpe3ZhciB0dD13dC5sYXN0QnVmZmVyZWRSZXF1ZXN0O3d0Lmxhc3RCdWZmZXJlZFJlcXVlc3Q9e2NodW5rOkF0LGVuY29kaW5nOm10LGlzQnVmOnZ0LGNh''@;'; + put 'put ''bGxiYWNrOmh0LG5leHQ6bnVsbH0sdHQ/dHQubmV4dD13dC5sYXN0QnVmZmVyZWRSZXF1ZXN0Ond0LmJ1ZmZlcmVkUmVxdWVzdD13dC5sYXN0QnVmZmVyZWRSZXF1ZXN0LHd0LmJ1ZmZlcmVkUmVxdWVzdENvdW50Kz0xfWVsc2UgdGUoZ3Qsd3QsITEsb24sQXQsbXQsaHQpO3JldHVybiBfdH0o''@;'; + put 'put ''dGhpcyxQZSwkZSxGLHllLENlKSksUWV9LG5lLnByb3RvdHlwZS5jb3JrPWZ1bmN0aW9uKCl7dGhpcy5fd3JpdGFibGVTdGF0ZS5jb3JrZWQrK30sbmUucHJvdG90eXBlLnVuY29yaz1mdW5jdGlvbigpe3ZhciBGPXRoaXMuX3dyaXRhYmxlU3RhdGU7Ri5jb3JrZWQmJihGLmNvcmtlZC0tLEYu''@;'; + put 'put ''d3JpdGluZ3x8Ri5jb3JrZWR8fEYuYnVmZmVyUHJvY2Vzc2luZ3x8IUYuYnVmZmVyZWRSZXF1ZXN0fHxQKHRoaXMsRikpfSxuZS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKEYpe2lmKCJzdHJpbmciPT10eXBlb2YgRiYmKEY9Ri50b0xvd2VyQ2FzZSgpKSwhKFsiaGV4''@;'; + put 'put ''IiwidXRmOCIsInV0Zi04IiwiYXNjaWkiLCJiaW5hcnkiLCJiYXNlNjQiLCJ1Y3MyIiwidWNzLTIiLCJ1dGYxNmxlIiwidXRmLTE2bGUiLCJyYXciXS5pbmRleE9mKChGKyIiKS50b0xvd2VyQ2FzZSgpKT4tMSkpdGhyb3cgbmV3IEVlKEYpO3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmRl''@;'; + put 'put ''ZmF1bHRFbmNvZGluZz1GLHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZS5wcm90b3R5cGUsIndyaXRhYmxlQnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIoKX19''@;'; + put 'put ''KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobmUucHJvdG90eXBlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksbmUucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbihG''@;'; + put 'put ''LHllLENlKXtDZShuZXcgdmUoIl93cml0ZSgpIikpfSxuZS5wcm90b3R5cGUuX3dyaXRldj1udWxsLG5lLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oRix5ZSxDZSl7dmFyIFFlLCRlLERlPXRoaXMuX3dyaXRhYmxlU3RhdGU7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEY/KENlPUYsRj1udWxs''@;'; + put 'put ''LHllPW51bGwpOiJmdW5jdGlvbiI9PXR5cGVvZiB5ZSYmKENlPXllLHllPW51bGwpLG51bGwhPUYmJnRoaXMud3JpdGUoRix5ZSksRGUuY29ya2VkJiYoRGUuY29ya2VkPTEsdGhpcy51bmNvcmsoKSksRGUuZW5kaW5nfHwodGhpcywkZT1DZSwoUWU9RGUpLmVuZGluZz0hMCxTKHRoaXMsUWUp''@;'; + put 'put ''LCRlJiYoUWUuZmluaXNoZWQ/bGUubmV4dFRpY2soJGUpOnRoaXMub25jZSgiZmluaXNoIiwkZSkpLFFlLmVuZGVkPSEwLHRoaXMud3JpdGFibGU9ITEpLHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZS5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG5lLnByb3RvdHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhp''@;'; + put 'put ''cy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbihGKXt0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9Ril9fSksbmUucHJvdG90eXBlLmRlc3Ryb3k9c2UuZGVzdHJveSxuZS5wcm90b3R5cGUuX3VuZGVzdHJveT1zZS51bmRl''@;'; + put 'put ''c3Ryb3ksbmUucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKEYseWUpe3llKEYpfX0sNTg1MDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZSxsZT1aKDQxNTUpO2Z1bmN0aW9uIFkoSWUsVGUsRWUpe3JldHVybiBUZSBpbiBJZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoSWUsVGUse3Zh''@;'; + put 'put ''bHVlOkVlLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6SWVbVGVdPUVlLEllfXZhciBXPVooODYxMCksTj1TeW1ib2woImxhc3RSZXNvbHZlIiksZWU9U3ltYm9sKCJsYXN0UmVqZWN0IikscT1TeW1ib2woImVycm9yIiksSj1TeW1ib2woImVuZGVkIiksc2U9''@;'; + put 'put ''U3ltYm9sKCJsYXN0UHJvbWlzZSIpLG9lPVN5bWJvbCgiaGFuZGxlUHJvbWlzZSIpLGNlPVN5bWJvbCgic3RyZWFtIik7ZnVuY3Rpb24gZGUoSWUsVGUpe3JldHVybnt2YWx1ZTpJZSxkb25lOlRlfX1mdW5jdGlvbiB2ZShJZSl7dmFyIFRlPUllW05dO2lmKG51bGwhPT1UZSl7dmFyIEVlPUll''@;'; + put 'put ''W2NlXS5yZWFkKCk7bnVsbCE9PUVlJiYoSWVbc2VdPW51bGwsSWVbTl09bnVsbCxJZVtlZV09bnVsbCxUZShkZShFZSwhMSkpKX19ZnVuY3Rpb24gQWUoSWUpe2xlLm5leHRUaWNrKHZlLEllKX12YXIga2U9T2JqZWN0LmdldFByb3RvdHlwZU9mKGZ1bmN0aW9uKCl7fSksU2U9T2JqZWN0LnNl''@;'; + put 'put ''dFByb3RvdHlwZU9mKChZKGllPXtnZXQgc3RyZWFtKCl7cmV0dXJuIHRoaXNbY2VdfSxuZXh0OmZ1bmN0aW9uKCl7dmFyIEllPXRoaXMsVGU9dGhpc1txXTtpZihudWxsIT09VGUpcmV0dXJuIFByb21pc2UucmVqZWN0KFRlKTtpZih0aGlzW0pdKXJldHVybiBQcm9taXNlLnJlc29sdmUoZGUo''@;'; + put 'put ''dm9pZCAwLCEwKSk7aWYodGhpc1tjZV0uZGVzdHJveWVkKXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih6LG5lKXtsZS5uZXh0VGljayhmdW5jdGlvbigpe0llW3FdP25lKEllW3FdKTp6KGRlKHZvaWQgMCwhMCkpfSl9KTt2YXIgRWUseixuZSxoZT10aGlzW3NlXTtpZihoZSlFZT1uZXcg''@;'; + put 'put ''UHJvbWlzZSgoej1oZSxuZT10aGlzLGZ1bmN0aW9uKHRlLHgpe3oudGhlbihmdW5jdGlvbigpe25lW0pdP3RlKGRlKHZvaWQgMCwhMCkpOm5lW29lXSh0ZSx4KX0seCl9KSk7ZWxzZXt2YXIgTz10aGlzW2NlXS5yZWFkKCk7aWYobnVsbCE9PU8pcmV0dXJuIFByb21pc2UucmVzb2x2ZShkZShP''@;'; + put 'put ''LCExKSk7RWU9bmV3IFByb21pc2UodGhpc1tvZV0pfXJldHVybiB0aGlzW3NlXT1FZSxFZX19LFN5bWJvbC5hc3luY0l0ZXJhdG9yLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxZKGllLCJyZXR1cm4iLGZ1bmN0aW9uKCl7dmFyIEllPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u''@;'; + put 'put ''KFRlLEVlKXtJZVtjZV0uZGVzdHJveShudWxsLGZ1bmN0aW9uKGhlKXtoZT9FZShoZSk6VGUoZGUodm9pZCAwLCEwKSl9KX0pfSksaWUpLGtlKTtVLmV4cG9ydHM9ZnVuY3Rpb24oSWUpe3ZhciBUZSxFZT1PYmplY3QuY3JlYXRlKFNlLChZKFRlPXt9LGNlLHt2YWx1ZTpJZSx3cml0YWJsZToh''@;'; + put 'put ''MH0pLFkoVGUsTix7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLFkoVGUsZWUse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxZKFRlLHEse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxZKFRlLEose3ZhbHVlOkllLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQsd3JpdGFibGU6ITB9KSxZKFRl''@;'; + put 'put ''LG9lLHt2YWx1ZTpmdW5jdGlvbihoZSxPKXt2YXIgej1FZVtjZV0ucmVhZCgpO3o/KEVlW3NlXT1udWxsLEVlW05dPW51bGwsRWVbZWVdPW51bGwsaGUoZGUoeiwhMSkpKTooRWVbTl09aGUsRWVbZWVdPU8pfSx3cml0YWJsZTohMH0pLFRlKSk7cmV0dXJuIEVlW3NlXT1udWxsLFcoSWUsZnVu''@;'; + put 'put ''Y3Rpb24oaGUpe2lmKGhlJiYiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UiIT09aGUuY29kZSl7dmFyIE89RWVbZWVdO3JldHVybiBudWxsIT09TyYmKEVlW3NlXT1udWxsLEVlW05dPW51bGwsRWVbZWVdPW51bGwsTyhoZSkpLHZvaWQoRWVbcV09aGUpfXZhciB6PUVlW05dO251bGwhPT16''@;'; + put 'put ''JiYoRWVbc2VdPW51bGwsRWVbTl09bnVsbCxFZVtlZV09bnVsbCx6KGRlKHZvaWQgMCwhMCkpKSxFZVtKXT0hMH0pLEllLm9uKCJyZWFkYWJsZSIsQWUuYmluZChudWxsLEVlKSksRWV9fSw3MzI3OihVLFEsWik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaWUocSxKKXt2YXIgc2U9T2JqZWN0''@;'; + put 'put ''LmtleXMocSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG9lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocSk7SiYmKG9lPW9lLmZpbHRlcihmdW5jdGlvbihjZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSxjZSkuZW51bWVyYWJs''@;'; + put 'put ''ZX0pKSxzZS5wdXNoLmFwcGx5KHNlLG9lKX1yZXR1cm4gc2V9ZnVuY3Rpb24gbGUocSxKLHNlKXtyZXR1cm4gSiBpbiBxP09iamVjdC5kZWZpbmVQcm9wZXJ0eShxLEose3ZhbHVlOnNlLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cVtKXT1zZSxxfWZ1bmN0''@;'; + put 'put ''aW9uIFkocSxKKXtmb3IodmFyIHNlPTA7c2U8Si5sZW5ndGg7c2UrKyl7dmFyIG9lPUpbc2VdO29lLmVudW1lcmFibGU9b2UuZW51bWVyYWJsZXx8ITEsb2UuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBvZSYmKG9lLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocSxvZS5r''@;'; + put 'put ''ZXksb2UpfX12YXIgVz1aKDg3NjQpLkJ1ZmZlcixOPVooMjM2MSkuaW5zcGVjdCxlZT1OJiZOLmN1c3RvbXx8Imluc3BlY3QiO1UuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIHEoKXsoZnVuY3Rpb24oY2UsZGUpe2lmKCEoY2UgaW5zdGFuY2VvZiBkZSkpdGhyb3cgbmV3IFR5cGVFcnJv''@;'; + put 'put ''cigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLHEpLHRoaXMuaGVhZD1udWxsLHRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9dmFyIEosc2U7cmV0dXJuIEo9cSxzZT1be2tleToicHVzaCIsdmFsdWU6ZnVuY3Rpb24oY2Upe3ZhciBkZT17ZGF0YTpjZSxu''@;'; + put 'put ''ZXh0Om51bGx9O3RoaXMubGVuZ3RoPjA/dGhpcy50YWlsLm5leHQ9ZGU6dGhpcy5oZWFkPWRlLHRoaXMudGFpbD1kZSwrK3RoaXMubGVuZ3RofX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24oY2Upe3ZhciBkZT17ZGF0YTpjZSxuZXh0OnRoaXMuaGVhZH07MD09PXRoaXMubGVuZ3Ro''@;'; + put 'put ''JiYodGhpcy50YWlsPWRlKSx0aGlzLmhlYWQ9ZGUsKyt0aGlzLmxlbmd0aH19LHtrZXk6InNoaWZ0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKDAhPT10aGlzLmxlbmd0aCl7dmFyIGNlPXRoaXMuaGVhZC5kYXRhO3JldHVybiB0aGlzLmhlYWQ9MT09PXRoaXMubGVuZ3RoP3RoaXMudGFpbD1udWxs''@;'; + put 'put ''OnRoaXMuaGVhZC5uZXh0LC0tdGhpcy5sZW5ndGgsY2V9fX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9fSx7a2V5OiJqb2luIix2YWx1ZTpmdW5jdGlvbihjZSl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiIi''@;'; + put 'put ''O2Zvcih2YXIgZGU9dGhpcy5oZWFkLHZlPSIiK2RlLmRhdGE7ZGU9ZGUubmV4dDspdmUrPWNlK2RlLmRhdGE7cmV0dXJuIHZlfX0se2tleToiY29uY2F0Iix2YWx1ZTpmdW5jdGlvbihjZSl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiBXLmFsbG9jKDApO2Zvcih2YXIga2U9Vy5hbGxvY1Vu''@;'; + put 'put ''c2FmZShjZT4+PjApLFNlPXRoaXMuaGVhZCxJZT0wO1NlOylXLnByb3RvdHlwZS5jb3B5LmNhbGwoU2UuZGF0YSxrZSxJZSksSWUrPVNlLmRhdGEubGVuZ3RoLFNlPVNlLm5leHQ7cmV0dXJuIGtlfX0se2tleToiY29uc3VtZSIsdmFsdWU6ZnVuY3Rpb24oY2UsZGUpe3ZhciB2ZTtyZXR1cm4g''@;'; + put 'put ''Y2U8dGhpcy5oZWFkLmRhdGEubGVuZ3RoPyh2ZT10aGlzLmhlYWQuZGF0YS5zbGljZSgwLGNlKSx0aGlzLmhlYWQuZGF0YT10aGlzLmhlYWQuZGF0YS5zbGljZShjZSkpOnZlPWNlPT09dGhpcy5oZWFkLmRhdGEubGVuZ3RoP3RoaXMuc2hpZnQoKTpkZT90aGlzLl9nZXRTdHJpbmcoY2UpOnRo''@;'; + put 'put ''aXMuX2dldEJ1ZmZlcihjZSksdmV9fSx7a2V5OiJmaXJzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oZWFkLmRhdGF9fSx7a2V5OiJfZ2V0U3RyaW5nIix2YWx1ZTpmdW5jdGlvbihjZSl7dmFyIGRlPXRoaXMuaGVhZCx2ZT0xLEFlPWRlLmRhdGE7Zm9yKGNlLT1BZS5sZW5ndGg7''@;'; + put 'put ''ZGU9ZGUubmV4dDspe3ZhciBrZT1kZS5kYXRhLFNlPWNlPmtlLmxlbmd0aD9rZS5sZW5ndGg6Y2U7aWYoQWUrPVNlPT09a2UubGVuZ3RoP2tlOmtlLnNsaWNlKDAsY2UpLDA9PShjZS09U2UpKXtTZT09PWtlLmxlbmd0aD8oKyt2ZSx0aGlzLmhlYWQ9ZGUubmV4dD9kZS5uZXh0OnRoaXMudGFp''@;'; + put 'put ''bD1udWxsKToodGhpcy5oZWFkPWRlLGRlLmRhdGE9a2Uuc2xpY2UoU2UpKTticmVha30rK3ZlfXJldHVybiB0aGlzLmxlbmd0aC09dmUsQWV9fSx7a2V5OiJfZ2V0QnVmZmVyIix2YWx1ZTpmdW5jdGlvbihjZSl7dmFyIGRlPVcuYWxsb2NVbnNhZmUoY2UpLHZlPXRoaXMuaGVhZCxBZT0xO2Zv''@;'; + put 'put ''cih2ZS5kYXRhLmNvcHkoZGUpLGNlLT12ZS5kYXRhLmxlbmd0aDt2ZT12ZS5uZXh0Oyl7dmFyIGtlPXZlLmRhdGEsU2U9Y2U+a2UubGVuZ3RoP2tlLmxlbmd0aDpjZTtpZihrZS5jb3B5KGRlLGRlLmxlbmd0aC1jZSwwLFNlKSwwPT0oY2UtPVNlKSl7U2U9PT1rZS5sZW5ndGg/KCsrQWUsdGhp''@;'; + put 'put ''cy5oZWFkPXZlLm5leHQ/dmUubmV4dDp0aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD12ZSx2ZS5kYXRhPWtlLnNsaWNlKFNlKSk7YnJlYWt9KytBZX1yZXR1cm4gdGhpcy5sZW5ndGgtPUFlLGRlfX0se2tleTplZSx2YWx1ZTpmdW5jdGlvbihjZSxkZSl7cmV0dXJuIE4odGhpcyxmdW5jdGlv''@;'; + put 'put ''bih2ZSl7Zm9yKHZhciBBZT0xO0FlPGFyZ3VtZW50cy5sZW5ndGg7QWUrKyl7dmFyIGtlPW51bGwhPWFyZ3VtZW50c1tBZV0/YXJndW1lbnRzW0FlXTp7fTtBZSUyP2llKE9iamVjdChrZSksITApLmZvckVhY2goZnVuY3Rpb24oU2Upe2xlKHZlLFNlLGtlW1NlXSl9KTpPYmplY3QuZ2V0T3du''@;'; + put 'put ''UHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh2ZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhrZSkpOmllKE9iamVjdChrZSkpLmZvckVhY2goZnVuY3Rpb24oU2Upe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh2ZSxTZSxPYmplY3QuZ2V0T3duUHJv''@;'; + put 'put ''cGVydHlEZXNjcmlwdG9yKGtlLFNlKSl9KX1yZXR1cm4gdmV9KHt9LGRlLHtkZXB0aDowLGN1c3RvbUluc3BlY3Q6ITF9KSl9fV0sc2UmJlkoSi5wcm90b3R5cGUsc2UpLHF9KCl9LDExOTU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KTtmdW5jdGlvbiBsZShOLGVlKXtX''@;'; + put 'put ''KE4sZWUpLFkoTil9ZnVuY3Rpb24gWShOKXtOLl93cml0YWJsZVN0YXRlJiYhTi5fd3JpdGFibGVTdGF0ZS5lbWl0Q2xvc2V8fE4uX3JlYWRhYmxlU3RhdGUmJiFOLl9yZWFkYWJsZVN0YXRlLmVtaXRDbG9zZXx8Ti5lbWl0KCJjbG9zZSIpfWZ1bmN0aW9uIFcoTixlZSl7Ti5lbWl0KCJlcnJv''@;'; + put 'put ''ciIsZWUpfVUuZXhwb3J0cz17ZGVzdHJveTpmdW5jdGlvbihOLGVlKXt2YXIgcT10aGlzO3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZHx8dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ/KGVl''@;'; + put 'put ''P2VlKE4pOk4mJih0aGlzLl93cml0YWJsZVN0YXRlP3RoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkfHwodGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsaWUubmV4dFRpY2soVyx0aGlzLE4pKTppZS5uZXh0VGljayhXLHRoaXMsTikpLHRoaXMpOih0aGlzLl9yZWFk''@;'; + put 'put ''YWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveShOfHxudWxsLGZ1bmN0aW9uKG9lKXshZWUmJm9lP3EuX3dyaXRhYmxlU3RhdGU/cS5f''@;'; + put 'put ''d3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ/aWUubmV4dFRpY2soWSxxKToocS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsaWUubmV4dFRpY2sobGUscSxvZSkpOmllLm5leHRUaWNrKGxlLHEsb2UpOmVlPyhpZS5uZXh0VGljayhZLHEpLGVlKG9lKSk6aWUubmV4dFRpY2soWSxx''@;'; + put 'put ''KX0pLHRoaXMpfSx1bmRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5yZWFkaW5nPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0''@;'; + put 'put ''ZS5lbmRFbWl0dGVkPSExKSx0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGluZz0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmFsQ2FsbGVkPSEx''@;'; + put 'put ''LHRoaXMuX3dyaXRhYmxlU3RhdGUucHJlZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMSl9LGVycm9yT3JEZXN0cm95OmZ1bmN0aW9uKE4sZWUpe3ZhciBxPU4uX3JlYWRhYmxlU3RhdGUsSj1OLl93''@;'; + put 'put ''cml0YWJsZVN0YXRlO3EmJnEuYXV0b0Rlc3Ryb3l8fEomJkouYXV0b0Rlc3Ryb3k/Ti5kZXN0cm95KGVlKTpOLmVtaXQoImVycm9yIixlZSl9fX0sODYxMDooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQyODEpLnEuRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0U7ZnVuY3Rpb24g''@;'; + put 'put ''bGUoKXt9VS5leHBvcnRzPWZ1bmN0aW9uIFkoVyxOLGVlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgTilyZXR1cm4gWShXLG51bGwsTik7dmFyIEllLFRlO058fChOPXt9KSxJZT1lZXx8bGUsVGU9ITEsZWU9ZnVuY3Rpb24oKXtpZighVGUpe1RlPSEwO2Zvcih2YXIgRWU9YXJndW1lbnRzLmxl''@;'; + put 'put ''bmd0aCxoZT1uZXcgQXJyYXkoRWUpLE89MDtPPEVlO08rKyloZVtPXT1hcmd1bWVudHNbT107SWUuYXBwbHkodGhpcyxoZSl9fTt2YXIgcT1OLnJlYWRhYmxlfHwhMSE9PU4ucmVhZGFibGUmJlcucmVhZGFibGUsSj1OLndyaXRhYmxlfHwhMSE9PU4ud3JpdGFibGUmJlcud3JpdGFibGUsc2U9''@;'; + put 'put ''ZnVuY3Rpb24oKXtXLndyaXRhYmxlfHxjZSgpfSxvZT1XLl93cml0YWJsZVN0YXRlJiZXLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkLGNlPWZ1bmN0aW9uKCl7Sj0hMSxvZT0hMCxxfHxlZS5jYWxsKFcpfSxkZT1XLl9yZWFkYWJsZVN0YXRlJiZXLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQs''@;'; + put 'put ''dmU9ZnVuY3Rpb24oKXtxPSExLGRlPSEwLEp8fGVlLmNhbGwoVyl9LEFlPWZ1bmN0aW9uKEllKXtlZS5jYWxsKFcsSWUpfSxrZT1mdW5jdGlvbigpe3ZhciBJZTtyZXR1cm4gcSYmIWRlPyhXLl9yZWFkYWJsZVN0YXRlJiZXLl9yZWFkYWJsZVN0YXRlLmVuZGVkfHwoSWU9bmV3IGllKSxlZS5j''@;'; + put 'put ''YWxsKFcsSWUpKTpKJiYhb2U/KFcuX3dyaXRhYmxlU3RhdGUmJlcuX3dyaXRhYmxlU3RhdGUuZW5kZWR8fChJZT1uZXcgaWUpLGVlLmNhbGwoVyxJZSkpOnZvaWQgMH0sU2U9ZnVuY3Rpb24oKXtXLnJlcS5vbigiZmluaXNoIixjZSl9O3JldHVybiBmdW5jdGlvbihJZSl7cmV0dXJuIEllLnNl''@;'; + put 'put ''dEhlYWRlciYmImZ1bmN0aW9uIj09dHlwZW9mIEllLmFib3J0fShXKT8oVy5vbigiY29tcGxldGUiLGNlKSxXLm9uKCJhYm9ydCIsa2UpLFcucmVxP1NlKCk6Vy5vbigicmVxdWVzdCIsU2UpKTpKJiYhVy5fd3JpdGFibGVTdGF0ZSYmKFcub24oImVuZCIsc2UpLFcub24oImNsb3NlIixzZSkp''@;'; + put 'put ''LFcub24oImVuZCIsdmUpLFcub24oImZpbmlzaCIsY2UpLCExIT09Ti5lcnJvciYmVy5vbigiZXJyb3IiLEFlKSxXLm9uKCJjbG9zZSIsa2UpLGZ1bmN0aW9uKCl7Vy5yZW1vdmVMaXN0ZW5lcigiY29tcGxldGUiLGNlKSxXLnJlbW92ZUxpc3RlbmVyKCJhYm9ydCIsa2UpLFcucmVtb3ZlTGlz''@;'; + put 'put ''dGVuZXIoInJlcXVlc3QiLFNlKSxXLnJlcSYmVy5yZXEucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsY2UpLFcucmVtb3ZlTGlzdGVuZXIoImVuZCIsc2UpLFcucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixzZSksVy5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixjZSksVy5yZW1vdmVMaXN0ZW5lcigi''@;'; + put 'put ''ZW5kIix2ZSksVy5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLEFlKSxXLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsa2UpfX19LDUxNjc6VT0+e1UuZXhwb3J0cz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiUmVhZGFibGUuZnJvbSBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBicm93c2VyIil9''@;'; + put 'put ''fSw5OTQ2OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllLGxlPVooNDI4MSkucSxZPWxlLkVSUl9NSVNTSU5HX0FSR1MsVz1sZS5FUlJfU1RSRUFNX0RFU1RST1lFRDtmdW5jdGlvbiBOKG9lKXtpZihvZSl0aHJvdyBvZX1mdW5jdGlvbiBlZShvZSxjZSxkZSx2ZSl7dmFyIFNlLEllO1Nl''@;'; + put 'put ''PXZlLEllPSExLHZlPWZ1bmN0aW9uKCl7SWV8fChJZT0hMCxTZS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSl9O3ZhciBBZT0hMTtvZS5vbigiY2xvc2UiLGZ1bmN0aW9uKCl7QWU9ITB9KSx2b2lkIDA9PT1pZSYmKGllPVooODYxMCkpLGllKG9lLHtyZWFkYWJsZTpjZSx3cml0YWJsZTpkZX0s''@;'; + put 'put ''ZnVuY3Rpb24oU2Upe2lmKFNlKXJldHVybiB2ZShTZSk7QWU9ITAsdmUoKX0pO3ZhciBrZT0hMTtyZXR1cm4gZnVuY3Rpb24oU2Upe2lmKCFBZSYmIWtlKXJldHVybiBrZT0hMCxmdW5jdGlvbihJZSl7cmV0dXJuIEllLnNldEhlYWRlciYmImZ1bmN0aW9uIj09dHlwZW9mIEllLmFib3J0fShv''@;'; + put 'put ''ZSk/b2UuYWJvcnQoKToiZnVuY3Rpb24iPT10eXBlb2Ygb2UuZGVzdHJveT9vZS5kZXN0cm95KCk6dm9pZCB2ZShTZXx8bmV3IFcoInBpcGUiKSl9fWZ1bmN0aW9uIHEob2Upe29lKCl9ZnVuY3Rpb24gSihvZSxjZSl7cmV0dXJuIG9lLnBpcGUoY2UpfWZ1bmN0aW9uIHNlKG9lKXtyZXR1cm4g''@;'; + put 'put ''b2UubGVuZ3RoPyJmdW5jdGlvbiIhPXR5cGVvZiBvZVtvZS5sZW5ndGgtMV0/TjpvZS5wb3AoKTpOfVUuZXhwb3J0cz1mdW5jdGlvbigpe2Zvcih2YXIgb2U9YXJndW1lbnRzLmxlbmd0aCxjZT1uZXcgQXJyYXkob2UpLGRlPTA7ZGU8b2U7ZGUrKyljZVtkZV09YXJndW1lbnRzW2RlXTt2YXIg''@;'; + put 'put ''dmUsQWU9c2UoY2UpO2lmKEFycmF5LmlzQXJyYXkoY2VbMF0pJiYoY2U9Y2VbMF0pLGNlLmxlbmd0aDwyKXRocm93IG5ldyBZKCJzdHJlYW1zIik7dmFyIGtlPWNlLm1hcChmdW5jdGlvbihTZSxJZSl7dmFyIFRlPUllPGNlLmxlbmd0aC0xO3JldHVybiBlZShTZSxUZSxJZT4wLGZ1bmN0aW9u''@;'; + put 'put ''KEVlKXt2ZXx8KHZlPUVlKSxFZSYma2UuZm9yRWFjaChxKSxUZXx8KGtlLmZvckVhY2gocSksQWUodmUpKX0pfSk7cmV0dXJuIGNlLnJlZHVjZShKKX19LDI0NTc6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MjgxKS5xLkVSUl9JTlZBTElEX09QVF9WQUxVRTtVLmV4cG9ydHM9''@;'; + put 'put ''e2dldEhpZ2hXYXRlck1hcms6ZnVuY3Rpb24obGUsWSxXLE4pe3ZhciBxLGVlPW51bGwhPShxPVkpLmhpZ2hXYXRlck1hcms/cS5oaWdoV2F0ZXJNYXJrOk4/cVtXXTpudWxsO2lmKG51bGwhPWVlKXtpZighaXNGaW5pdGUoZWUpfHxNYXRoLmZsb29yKGVlKSE9PWVlfHxlZTwwKXRocm93IG5l''@;'; + put 'put ''dyBpZShOP1c6ImhpZ2hXYXRlck1hcmsiLGVlKTtyZXR1cm4gTWF0aC5mbG9vcihlZSl9cmV0dXJuIGxlLm9iamVjdE1vZGU/MTY6MTYzODR9fX0sMjUwMzooVSxRLFopPT57VS5leHBvcnRzPVooNzE4NykuRXZlbnRFbWl0dGVyfSw4NDczOihVLFEsWik9PnsoUT1VLmV4cG9ydHM9Wig5NDgx''@;'; + put 'put ''KSkuU3RyZWFtPVEsUS5SZWFkYWJsZT1RLFEuV3JpdGFibGU9Wig0MjI5KSxRLkR1cGxleD1aKDY3NTMpLFEuVHJhbnNmb3JtPVooNDYwNSksUS5QYXNzVGhyb3VnaD1aKDI3MjUpLFEuZmluaXNoZWQ9Wig4NjEwKSxRLnBpcGVsaW5lPVooOTk0Nil9LDk4NDooVSxRLFopPT57dmFyIGllPVoo''@;'; + put 'put ''NDE1NSk7Y29uc3QgbGU9Wig5MjgyKSxZPVooMjUyMCksVz1aKDcyMTcpO2xldCBOO3RyeXtOPVooMjg4NCl9Y2F0Y2goRWUpe31jb25zdCBlZT17bm9zb3J0OiEwLHNpbGVudDohMH07bGV0IHE9MDtjb25zdCBKPSJ3aW4zMiI9PT1pZS5wbGF0Zm9ybSxzZT1FZT0+e2lmKFsidW5saW5rIiwi''@;'; + put 'put ''Y2htb2QiLCJzdGF0IiwibHN0YXQiLCJybWRpciIsInJlYWRkaXIiXS5mb3JFYWNoKGhlPT57RWVbaGVdPUVlW2hlXXx8V1toZV0sRWVbaGUrPSJTeW5jIl09RWVbaGVdfHxXW2hlXX0pLEVlLm1heEJ1c3lUcmllcz1FZS5tYXhCdXN5VHJpZXN8fDMsRWUuZW1maWxlV2FpdD1FZS5lbWZpbGVX''@;'; + put 'put ''YWl0fHwxZTMsITE9PT1FZS5nbG9iJiYoRWUuZGlzYWJsZUdsb2I9ITApLCEwIT09RWUuZGlzYWJsZUdsb2ImJnZvaWQgMD09PU4pdGhyb3cgRXJyb3IoImdsb2IgZGVwZW5kZW5jeSBub3QgZm91bmQsIHNldCBgb3B0aW9ucy5kaXNhYmxlR2xvYiA9IHRydWVgIGlmIGludGVudGlvbmFsIik7''@;'; + put 'put ''RWUuZGlzYWJsZUdsb2I9RWUuZGlzYWJsZUdsb2J8fCExLEVlLmdsb2I9RWUuZ2xvYnx8ZWV9LG9lPShFZSxoZSxPKT0+eyJmdW5jdGlvbiI9PXR5cGVvZiBoZSYmKE89aGUsaGU9e30pLGxlKEVlLCJyaW1yYWY6IG1pc3NpbmcgcGF0aCIpLGxlLmVxdWFsKHR5cGVvZiBFZSwic3RyaW5nIiwi''@;'; + put 'put ''cmltcmFmOiBwYXRoIHNob3VsZCBiZSBhIHN0cmluZyIpLGxlLmVxdWFsKHR5cGVvZiBPLCJmdW5jdGlvbiIsInJpbXJhZjogY2FsbGJhY2sgZnVuY3Rpb24gcmVxdWlyZWQiKSxsZShoZSwicmltcmFmOiBpbnZhbGlkIG9wdGlvbnMgYXJndW1lbnQgcHJvdmlkZWQiKSxsZS5lcXVhbCh0eXBl''@;'; + put 'put ''b2YgaGUsIm9iamVjdCIsInJpbXJhZjogb3B0aW9ucyBzaG91bGQgYmUgb2JqZWN0Iiksc2UoaGUpO2xldCB6PTAsbmU9bnVsbCx0ZT0wO2NvbnN0IHg9KFAsVik9PlA/TyhQKToodGU9Vi5sZW5ndGgsMD09PXRlP08oKTp2b2lkIFYuZm9yRWFjaChUPT57Y29uc3QgUz1GPT57aWYoRil7aWYo''@;'; + put 'put ''KCJFQlVTWSI9PT1GLmNvZGV8fCJFTk9URU1QVFkiPT09Ri5jb2RlfHwiRVBFUk0iPT09Ri5jb2RlKSYmejxoZS5tYXhCdXN5VHJpZXMpcmV0dXJuIHorKyxzZXRUaW1lb3V0KCgpPT5jZShULGhlLFMpLDEwMCp6KTtpZigiRU1GSUxFIj09PUYuY29kZSYmcTxoZS5lbWZpbGVXYWl0KXJldHVy''@;'; + put 'put ''biBzZXRUaW1lb3V0KCgpPT5jZShULGhlLFMpLHErKyk7IkVOT0VOVCI9PT1GLmNvZGUmJihGPW51bGwpfXE9MCxuZT1uZXx8RiwwPT0tLXRlJiZPKG5lKX07Y2UoVCxoZSxTKX0pKTtpZihoZS5kaXNhYmxlR2xvYnx8IU4uaGFzTWFnaWMoRWUpKXJldHVybiB4KG51bGwsW0VlXSk7aGUubHN0''@;'; + put 'put ''YXQoRWUsKFAsVik9PntpZighUClyZXR1cm4geChudWxsLFtFZV0pO04oRWUsaGUuZ2xvYix4KX0pfSxjZT0oRWUsaGUsTyk9PntsZShFZSksbGUoaGUpLGxlKCJmdW5jdGlvbiI9PXR5cGVvZiBPKSxoZS5sc3RhdChFZSwoeixuZSk9PnomJiJFTk9FTlQiPT09ei5jb2RlP08obnVsbCk6KHom''@;'; + put 'put ''JiJFUEVSTSI9PT16LmNvZGUmJkomJmRlKEVlLGhlLHosTyksbmUmJm5lLmlzRGlyZWN0b3J5KCk/QWUoRWUsaGUseixPKTp2b2lkIGhlLnVubGluayhFZSx0ZT0+e2lmKHRlKXtpZigiRU5PRU5UIj09PXRlLmNvZGUpcmV0dXJuIE8obnVsbCk7aWYoIkVQRVJNIj09PXRlLmNvZGUpcmV0dXJu''@;'; + put 'put ''IEo/ZGUoRWUsaGUsdGUsTyk6QWUoRWUsaGUsdGUsTyk7aWYoIkVJU0RJUiI9PT10ZS5jb2RlKXJldHVybiBBZShFZSxoZSx0ZSxPKX1yZXR1cm4gTyh0ZSl9KSkpfSxkZT0oRWUsaGUsTyx6KT0+e2xlKEVlKSxsZShoZSksbGUoImZ1bmN0aW9uIj09dHlwZW9mIHopLGhlLmNobW9kKEVlLDQz''@;'; + put 'put ''OCxuZT0+e25lP3ooIkVOT0VOVCI9PT1uZS5jb2RlP251bGw6Tyk6aGUuc3RhdChFZSwodGUseCk9Pnt0ZT96KCJFTk9FTlQiPT09dGUuY29kZT9udWxsOk8pOnguaXNEaXJlY3RvcnkoKT9BZShFZSxoZSxPLHopOmhlLnVubGluayhFZSx6KX0pfSl9LHZlPShFZSxoZSxPKT0+e2xlKEVlKSxs''@;'; + put 'put ''ZShoZSk7dHJ5e2hlLmNobW9kU3luYyhFZSw0MzgpfWNhdGNoKG5lKXtpZigiRU5PRU5UIj09PW5lLmNvZGUpcmV0dXJuO3Rocm93IE99bGV0IHo7dHJ5e3o9aGUuc3RhdFN5bmMoRWUpfWNhdGNoKG5lKXtpZigiRU5PRU5UIj09PW5lLmNvZGUpcmV0dXJuO3Rocm93IE99ei5pc0RpcmVjdG9y''@;'; + put 'put ''eSgpP0llKEVlLGhlLE8pOmhlLnVubGlua1N5bmMoRWUpfSxBZT0oRWUsaGUsTyx6KT0+e2xlKEVlKSxsZShoZSksbGUoImZ1bmN0aW9uIj09dHlwZW9mIHopLGhlLnJtZGlyKEVlLG5lPT57IW5lfHwiRU5PVEVNUFRZIiE9PW5lLmNvZGUmJiJFRVhJU1QiIT09bmUuY29kZSYmIkVQRVJNIiE9''@;'; + put 'put ''PW5lLmNvZGU/eihuZSYmIkVOT1RESVIiPT09bmUuY29kZT9POm5lKTprZShFZSxoZSx6KX0pfSxrZT0oRWUsaGUsTyk9PntsZShFZSksbGUoaGUpLGxlKCJmdW5jdGlvbiI9PXR5cGVvZiBPKSxoZS5yZWFkZGlyKEVlLCh6LG5lKT0+e2lmKHopcmV0dXJuIE8oeik7bGV0IHRlLHg9bmUubGVu''@;'; + put 'put ''Z3RoO2lmKDA9PT14KXJldHVybiBoZS5ybWRpcihFZSxPKTtuZS5mb3JFYWNoKFA9PntvZShZLmpvaW4oRWUsUCksaGUsVj0+e2lmKCF0ZSlyZXR1cm4gVj9PKHRlPVYpOnZvaWQoMD09LS14JiZoZS5ybWRpcihFZSxPKSl9KX0pfSl9LFNlPShFZSxoZSk9PntsZXQgTztpZihzZShoZT1oZXx8''@;'; + put 'put ''e30pLGxlKEVlLCJyaW1yYWY6IG1pc3NpbmcgcGF0aCIpLGxlLmVxdWFsKHR5cGVvZiBFZSwic3RyaW5nIiwicmltcmFmOiBwYXRoIHNob3VsZCBiZSBhIHN0cmluZyIpLGxlKGhlLCJyaW1yYWY6IG1pc3Npbmcgb3B0aW9ucyIpLGxlLmVxdWFsKHR5cGVvZiBoZSwib2JqZWN0IiwicmltcmFm''@;'; + put 'put ''OiBvcHRpb25zIHNob3VsZCBiZSBvYmplY3QiKSxoZS5kaXNhYmxlR2xvYnx8IU4uaGFzTWFnaWMoRWUpKU89W0VlXTtlbHNlIHRyeXtoZS5sc3RhdFN5bmMoRWUpLE89W0VlXX1jYXRjaCh6KXtPPU4uc3luYyhFZSxoZS5nbG9iKX1pZihPLmxlbmd0aClmb3IobGV0IHo9MDt6PE8ubGVuZ3Ro''@;'; + put 'put ''O3orKyl7Y29uc3QgbmU9T1t6XTtsZXQgdGU7dHJ5e3RlPWhlLmxzdGF0U3luYyhuZSl9Y2F0Y2goeCl7aWYoIkVOT0VOVCI9PT14LmNvZGUpcmV0dXJuOyJFUEVSTSI9PT14LmNvZGUmJkomJnZlKG5lLGhlLHgpfXRyeXt0ZSYmdGUuaXNEaXJlY3RvcnkoKT9JZShuZSxoZSxudWxsKTpoZS51''@;'; + put 'put ''bmxpbmtTeW5jKG5lKX1jYXRjaCh4KXtpZigiRU5PRU5UIj09PXguY29kZSlyZXR1cm47aWYoIkVQRVJNIj09PXguY29kZSlyZXR1cm4gSj92ZShuZSxoZSx4KTpJZShuZSxoZSx4KTtpZigiRUlTRElSIiE9PXguY29kZSl0aHJvdyB4O0llKG5lLGhlLHgpfX19LEllPShFZSxoZSxPKT0+e2xl''@;'; + put 'put ''KEVlKSxsZShoZSk7dHJ5e2hlLnJtZGlyU3luYyhFZSl9Y2F0Y2goeil7aWYoIkVOT0VOVCI9PT16LmNvZGUpcmV0dXJuO2lmKCJFTk9URElSIj09PXouY29kZSl0aHJvdyBPOyJFTk9URU1QVFkiIT09ei5jb2RlJiYiRUVYSVNUIiE9PXouY29kZSYmIkVQRVJNIiE9PXouY29kZXx8VGUoRWUs''@;'; + put 'put ''aGUpfX0sVGU9KEVlLGhlKT0+e2xlKEVlKSxsZShoZSksaGUucmVhZGRpclN5bmMoRWUpLmZvckVhY2gobmU9PlNlKFkuam9pbihFZSxuZSksaGUpKTtjb25zdCBPPUo/MTAwOjE7bGV0IHo9MDtmb3IoOzspe2xldCBuZT0hMDt0cnl7Y29uc3QgdGU9aGUucm1kaXJTeW5jKEVlLGhlKTtyZXR1''@;'; + put 'put ''cm4gbmU9ITEsdGV9ZmluYWxseXtpZigrK3o8TyYmbmUpY29udGludWV9fX07VS5leHBvcnRzPW9lLG9lLnN5bmM9U2V9LDk3ODU6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig4NzY0KS5CdWZmZXIsbGU9Wig1NzE3KSxZPVooMzM0OSksVz1uZXcgQXJyYXkoMTYpLE49WzAsMSwy''@;'; + put 'put ''LDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAs''@;'; + put 'put ''MTQsMSwzLDgsMTEsNiwxNSwxM10sZWU9WzUsMTQsNywwLDksMiwxMSw0LDEzLDYsMTUsOCwxLDEwLDMsMTIsNiwxMSwzLDcsMCwxMyw1LDEwLDE0LDE1LDgsMTIsNCw5LDEsMiwxNSw1LDEsMyw3LDE0LDYsOSwxMSw4LDEyLDIsMTAsMCw0LDEzLDgsNiw0LDEsMywxMSwxNSwwLDUsMTIsMiwx''@;'; + put 'put ''Myw5LDcsMTAsMTQsMTIsMTUsMTAsNCwxLDUsOCw3LDYsMiwxMywxNCwwLDMsOSwxMV0scT1bMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYs''@;'; + put 'put ''NSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0sSj1bOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywxMiw4LDksMTEsNyw3LDEyLDcsNiwx''@;'; + put 'put ''NSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV0sc2U9WzAsMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3''@;'; + put 'put ''MDgsMjg0MDg1MzgzOF0sb2U9WzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQyMTcsMF07ZnVuY3Rpb24gY2UoKXtZLmNhbGwodGhpcyw2NCksdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3''@;'; + put 'put ''MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwfWZ1bmN0aW9uIGRlKFRlLEVlKXtyZXR1cm4gVGU8PEVlfFRlPj4+MzItRWV9ZnVuY3Rpb24gdmUoVGUsRWUsaGUsTyx6LG5lLHRlLHgpe3JldHVybiBkZShUZSsoRWVeaGVeTykrbmUrdGV8MCx4KSt6fDB9ZnVuY3Rpb24gQWUoVGUsRWUsaGUsTyx6''@;'; + put 'put ''LG5lLHRlLHgpe3JldHVybiBkZShUZSsoRWUmaGV8fkVlJk8pK25lK3RlfDAseCkrenwwfWZ1bmN0aW9uIGtlKFRlLEVlLGhlLE8seixuZSx0ZSx4KXtyZXR1cm4gZGUoVGUrKChFZXx+aGUpXk8pK25lK3RlfDAseCkrenwwfWZ1bmN0aW9uIFNlKFRlLEVlLGhlLE8seixuZSx0ZSx4KXtyZXR1''@;'; + put 'put ''cm4gZGUoVGUrKEVlJk98aGUmfk8pK25lK3RlfDAseCkrenwwfWZ1bmN0aW9uIEllKFRlLEVlLGhlLE8seixuZSx0ZSx4KXtyZXR1cm4gZGUoVGUrKEVlXihoZXx+TykpK25lK3RlfDAseCkrenwwfWxlKGNlLFkpLGNlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciBUZT1X''@;'; + put 'put ''LEVlPTA7RWU8MTY7KytFZSlUZVtFZV09dGhpcy5fYmxvY2sucmVhZEludDMyTEUoNCpFZSk7Zm9yKHZhciBoZT0wfHRoaXMuX2EsTz0wfHRoaXMuX2Isej0wfHRoaXMuX2MsbmU9MHx0aGlzLl9kLHRlPTB8dGhpcy5fZSx4PTB8dGhpcy5fYSxQPTB8dGhpcy5fYixWPTB8dGhpcy5fYyxUPTB8''@;'; + put 'put ''dGhpcy5fZCxTPTB8dGhpcy5fZSxGPTA7Rjw4MDtGKz0xKXt2YXIgeWUsQ2U7RjwxNj8oeWU9dmUoaGUsTyx6LG5lLHRlLFRlW05bRl1dLHNlWzBdLHFbRl0pLENlPUllKHgsUCxWLFQsUyxUZVtlZVtGXV0sb2VbMF0sSltGXSkpOkY8MzI/KHllPUFlKGhlLE8seixuZSx0ZSxUZVtOW0ZdXSxz''@;'; + put 'put ''ZVsxXSxxW0ZdKSxDZT1TZSh4LFAsVixULFMsVGVbZWVbRl1dLG9lWzFdLEpbRl0pKTpGPDQ4Pyh5ZT1rZShoZSxPLHosbmUsdGUsVGVbTltGXV0sc2VbMl0scVtGXSksQ2U9a2UoeCxQLFYsVCxTLFRlW2VlW0ZdXSxvZVsyXSxKW0ZdKSk6Rjw2ND8oeWU9U2UoaGUsTyx6LG5lLHRlLFRlW05b''@;'; + put 'put ''Rl1dLHNlWzNdLHFbRl0pLENlPUFlKHgsUCxWLFQsUyxUZVtlZVtGXV0sb2VbM10sSltGXSkpOih5ZT1JZShoZSxPLHosbmUsdGUsVGVbTltGXV0sc2VbNF0scVtGXSksQ2U9dmUoeCxQLFYsVCxTLFRlW2VlW0ZdXSxvZVs0XSxKW0ZdKSksaGU9dGUsdGU9bmUsbmU9ZGUoeiwxMCksej1PLE89''@;'; + put 'put ''eWUseD1TLFM9VCxUPWRlKFYsMTApLFY9UCxQPUNlfXZhciBEZT10aGlzLl9iK3orVHwwO3RoaXMuX2I9dGhpcy5fYytuZStTfDAsdGhpcy5fYz10aGlzLl9kK3RlK3h8MCx0aGlzLl9kPXRoaXMuX2UraGUrUHwwLHRoaXMuX2U9dGhpcy5fYStPK1Z8MCx0aGlzLl9hPURlfSxjZS5wcm90b3R5''@;'; + put 'put ''cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3RoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPTEyOCx0aGlzLl9ibG9ja09mZnNldD41NiYmKHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw2NCksdGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9MCksdGhpcy5f''@;'; + put 'put ''YmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFswXSw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sNjApLHRoaXMuX3VwZGF0ZSgpO3ZhciBUZT1pZS5hbGxvYz9pZS5hbGxv''@;'; + put 'put ''YygyMCk6bmV3IGllKDIwKTtyZXR1cm4gVGUud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksVGUud3JpdGVJbnQzMkxFKHRoaXMuX2IsNCksVGUud3JpdGVJbnQzMkxFKHRoaXMuX2MsOCksVGUud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLFRlLndyaXRlSW50MzJMRSh0aGlzLl9lLDE2KSxUZX0s''@;'; + put 'put ''VS5leHBvcnRzPWNlfSw5NTA5OihVLFEsWik9Pnt2YXIgaWU9Wig4NzY0KSxsZT1pZS5CdWZmZXI7ZnVuY3Rpb24gWShOLGVlKXtmb3IodmFyIHEgaW4gTillZVtxXT1OW3FdfWZ1bmN0aW9uIFcoTixlZSxxKXtyZXR1cm4gbGUoTixlZSxxKX1sZS5mcm9tJiZsZS5hbGxvYyYmbGUuYWxsb2NV''@;'; + put 'put ''bnNhZmUmJmxlLmFsbG9jVW5zYWZlU2xvdz9VLmV4cG9ydHM9aWU6KFkoaWUsUSksUS5CdWZmZXI9VyksWShsZSxXKSxXLmZyb209ZnVuY3Rpb24oTixlZSxxKXtpZigibnVtYmVyIj09dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXIi''@;'; + put 'put ''KTtyZXR1cm4gbGUoTixlZSxxKX0sVy5hbGxvYz1mdW5jdGlvbihOLGVlLHEpe2lmKCJudW1iZXIiIT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIEo9bGUoTik7cmV0dXJuIHZvaWQgMCE9PWVlPyJzdHJpbmciPT10eXBlb2Yg''@;'; + put 'put ''cT9KLmZpbGwoZWUscSk6Si5maWxsKGVlKTpKLmZpbGwoMCksSn0sVy5hbGxvY1Vuc2FmZT1mdW5jdGlvbihOKXtpZigibnVtYmVyIiE9dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBsZShOKX0sVy5hbGxvY1Vuc2FmZVNs''@;'; + put 'put ''b3c9ZnVuY3Rpb24oTil7aWYoIm51bWJlciIhPXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gaWUuU2xvd0J1ZmZlcihOKX19LDIzOTk6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsbGU9Wig0MTU1KSxZPVooODc2''@;'; + put 'put ''NCksVz1ZLkJ1ZmZlcixOPXt9O2ZvcihpZSBpbiBZKVkuaGFzT3duUHJvcGVydHkoaWUpJiYiU2xvd0J1ZmZlciIhPT1pZSYmIkJ1ZmZlciIhPT1pZSYmKE5baWVdPVlbaWVdKTt2YXIgZWU9Ti5CdWZmZXI9e307Zm9yKGllIGluIFcpVy5oYXNPd25Qcm9wZXJ0eShpZSkmJiJhbGxvY1Vuc2Fm''@;'; + put 'put ''ZSIhPT1pZSYmImFsbG9jVW5zYWZlU2xvdyIhPT1pZSYmKGVlW2llXT1XW2llXSk7aWYoTi5CdWZmZXIucHJvdG90eXBlPVcucHJvdG90eXBlLGVlLmZyb20mJmVlLmZyb20hPT1VaW50OEFycmF5LmZyb218fChlZS5mcm9tPWZ1bmN0aW9uKHEsSixzZSl7aWYoIm51bWJlciI9PXR5cGVvZiBx''@;'; + put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidmFsdWUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHEpO2lmKHEmJnZvaWQgMD09PXEubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0''@;'; + put 'put ''IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIHEpO3JldHVybiBXKHEsSixzZSl9KSxlZS5hbGxvY3x8KGVlLmFsbG9jPWZ1bmN0aW9uKHEsSixzZSl7aWYoIm51bWJl''@;'; + put 'put ''ciIhPXR5cGVvZiBxKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBxKTtpZihxPDB8fHE+PTIxNDc0ODM2NDgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytxKyci''@;'; + put 'put ''IGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTt2YXIgb2U9VyhxKTtyZXR1cm4gSiYmMCE9PUoubGVuZ3RoPyJzdHJpbmciPT10eXBlb2Ygc2U/b2UuZmlsbChKLHNlKTpvZS5maWxsKEopOm9lLmZpbGwoMCksb2V9KSwhTi5rU3RyaW5nTWF4TGVuZ3RoKXRyeXtOLmtTdHJpbmdNYXhM''@;'; + put 'put ''ZW5ndGg9bGUuYmluZGluZygiYnVmZmVyIikua1N0cmluZ01heExlbmd0aH1jYXRjaChxKXt9Ti5jb25zdGFudHN8fChOLmNvbnN0YW50cz17TUFYX0xFTkdUSDpOLmtNYXhMZW5ndGh9LE4ua1N0cmluZ01heExlbmd0aCYmKE4uY29uc3RhbnRzLk1BWF9TVFJJTkdfTEVOR1RIPU4ua1N0cmlu''@;'; + put 'put ''Z01heExlbmd0aCkpLFUuZXhwb3J0cz1OfSw0MTg5OihVLFEsWik9Pnt2YXIgaWU9Wig5NTA5KS5CdWZmZXI7ZnVuY3Rpb24gbGUoWSxXKXt0aGlzLl9ibG9jaz1pZS5hbGxvYyhZKSx0aGlzLl9maW5hbFNpemU9Vyx0aGlzLl9ibG9ja1NpemU9WSx0aGlzLl9sZW49MH1sZS5wcm90b3R5cGUu''@;'; + put 'put ''dXBkYXRlPWZ1bmN0aW9uKFksVyl7InN0cmluZyI9PXR5cGVvZiBZJiYoWT1pZS5mcm9tKFksVz1XfHwidXRmOCIpKTtmb3IodmFyIE49dGhpcy5fYmxvY2ssZWU9dGhpcy5fYmxvY2tTaXplLHE9WS5sZW5ndGgsSj10aGlzLl9sZW4sc2U9MDtzZTxxOyl7Zm9yKHZhciBvZT1KJWVlLGNlPU1h''@;'; + put 'put ''dGgubWluKHEtc2UsZWUtb2UpLGRlPTA7ZGU8Y2U7ZGUrKylOW29lK2RlXT1ZW3NlK2RlXTtzZSs9Y2UsKEorPWNlKSVlZT09MCYmdGhpcy5fdXBkYXRlKE4pfXJldHVybiB0aGlzLl9sZW4rPXEsdGhpc30sbGUucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihZKXt2YXIgVz10aGlzLl9sZW4l''@;'; + put 'put ''dGhpcy5fYmxvY2tTaXplO3RoaXMuX2Jsb2NrW1ddPTEyOCx0aGlzLl9ibG9jay5maWxsKDAsVysxKSxXPj10aGlzLl9maW5hbFNpemUmJih0aGlzLl91cGRhdGUodGhpcy5fYmxvY2spLHRoaXMuX2Jsb2NrLmZpbGwoMCkpO3ZhciBOPTgqdGhpcy5fbGVuO2lmKE48PTQyOTQ5NjcyOTUpdGhp''@;'; + put 'put ''cy5fYmxvY2sud3JpdGVVSW50MzJCRShOLHRoaXMuX2Jsb2NrU2l6ZS00KTtlbHNle3ZhciBlZT0oNDI5NDk2NzI5NSZOKT4+PjA7dGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRSgoTi1lZSkvNDI5NDk2NzI5Nix0aGlzLl9ibG9ja1NpemUtOCksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRShl''@;'; + put 'put ''ZSx0aGlzLl9ibG9ja1NpemUtNCl9dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt2YXIgSj10aGlzLl9oYXNoKCk7cmV0dXJuIFk/Si50b1N0cmluZyhZKTpKfSxsZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX3VwZGF0ZSBtdXN0IGJlIGltcGxlbWVu''@;'; + put 'put ''dGVkIGJ5IHN1YmNsYXNzIil9LFUuZXhwb3J0cz1sZX0sOTA3MjooVSxRLFopPT57dmFyIGllPVUuZXhwb3J0cz1mdW5jdGlvbihsZSl7bGU9bGUudG9Mb3dlckNhc2UoKTt2YXIgWT1pZVtsZV07aWYoIVkpdGhyb3cgbmV3IEVycm9yKGxlKyIgaXMgbm90IHN1cHBvcnRlZCAod2UgYWNjZXB0''@;'; + put 'put ''IHB1bGwgcmVxdWVzdHMpIik7cmV0dXJuIG5ldyBZfTtpZS5zaGE9Wig0NDQ4KSxpZS5zaGExPVooODMzNiksaWUuc2hhMjI0PVooODQzMiksaWUuc2hhMjU2PVooNzQ5OSksaWUuc2hhMzg0PVooMTY4NiksaWUuc2hhNTEyPVooNzgxNil9LDQ0NDg6KFUsUSxaKT0+e3ZhciBpZT1aKDU3MTcp''@;'; + put 'put ''LGxlPVooNDE4OSksWT1aKDk1MDkpLkJ1ZmZlcixXPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsLTE4OTQwMDc1ODgsLTg5OTQ5NzUxNF0sTj1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIGVlKCl7dGhpcy5pbml0KCksdGhpcy5fdz1OLGxlLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gcShzZSl7''@;'; + put 'put ''cmV0dXJuIHNlPDwzMHxzZT4+PjJ9ZnVuY3Rpb24gSihzZSxvZSxjZSxkZSl7cmV0dXJuIDA9PT1zZT9vZSZjZXx+b2UmZGU6Mj09PXNlP29lJmNlfG9lJmRlfGNlJmRlOm9lXmNlXmRlfWllKGVlLGxlKSxlZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3MzI1''@;'; + put 'put ''ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjAsdGhpc30sZWUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oc2Upe2Zvcih2YXIgb2UsY2U9dGhpcy5fdyxkZT0wfHRoaXMuX2EsdmU9MHx0aGlz''@;'; + put 'put ''Ll9iLEFlPTB8dGhpcy5fYyxrZT0wfHRoaXMuX2QsU2U9MHx0aGlzLl9lLEllPTA7SWU8MTY7KytJZSljZVtJZV09c2UucmVhZEludDMyQkUoNCpJZSk7Zm9yKDtJZTw4MDsrK0llKWNlW0llXT1jZVtJZS0zXV5jZVtJZS04XV5jZVtJZS0xNF1eY2VbSWUtMTZdO2Zvcih2YXIgVGU9MDtUZTw4''@;'; + put 'put ''MDsrK1RlKXt2YXIgRWU9fn4oVGUvMjApLGhlPTB8KChvZT1kZSk8PDV8b2U+Pj4yNykrSihFZSx2ZSxBZSxrZSkrU2UrY2VbVGVdK1dbRWVdO1NlPWtlLGtlPUFlLEFlPXEodmUpLHZlPWRlLGRlPWhlfXRoaXMuX2E9ZGUrdGhpcy5fYXwwLHRoaXMuX2I9dmUrdGhpcy5fYnwwLHRoaXMuX2M9''@;'; + put 'put ''QWUrdGhpcy5fY3wwLHRoaXMuX2Q9a2UrdGhpcy5fZHwwLHRoaXMuX2U9U2UrdGhpcy5fZXwwfSxlZS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgc2U9WS5hbGxvY1Vuc2FmZSgyMCk7cmV0dXJuIHNlLndyaXRlSW50MzJCRSgwfHRoaXMuX2EsMCksc2Uud3JpdGVJbnQzMkJFKDB8''@;'; + put 'put ''dGhpcy5fYiw0KSxzZS53cml0ZUludDMyQkUoMHx0aGlzLl9jLDgpLHNlLndyaXRlSW50MzJCRSgwfHRoaXMuX2QsMTIpLHNlLndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLHNlfSxVLmV4cG9ydHM9ZWV9LDgzMzY6KFUsUSxaKT0+e3ZhciBpZT1aKDU3MTcpLGxlPVooNDE4OSksWT1aKDk1''@;'; + put 'put ''MDkpLkJ1ZmZlcixXPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsLTE4OTQwMDc1ODgsLTg5OTQ5NzUxNF0sTj1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIGVlKCl7dGhpcy5pbml0KCksdGhpcy5fdz1OLGxlLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gcShvZSl7cmV0dXJuIG9lPDw1fG9lPj4+''@;'; + put 'put ''Mjd9ZnVuY3Rpb24gSihvZSl7cmV0dXJuIG9lPDwzMHxvZT4+PjJ9ZnVuY3Rpb24gc2Uob2UsY2UsZGUsdmUpe3JldHVybiAwPT09b2U/Y2UmZGV8fmNlJnZlOjI9PT1vZT9jZSZkZXxjZSZ2ZXxkZSZ2ZTpjZV5kZV52ZX1pZShlZSxsZSksZWUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LGVlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKG9lKXtmb3IodmFyIGNlLGRlPXRoaXMuX3csdmU9''@;'; + put 'put ''MHx0aGlzLl9hLEFlPTB8dGhpcy5fYixrZT0wfHRoaXMuX2MsU2U9MHx0aGlzLl9kLEllPTB8dGhpcy5fZSxUZT0wO1RlPDE2OysrVGUpZGVbVGVdPW9lLnJlYWRJbnQzMkJFKDQqVGUpO2Zvcig7VGU8ODA7KytUZSlkZVtUZV09KGNlPWRlW1RlLTNdXmRlW1RlLThdXmRlW1RlLTE0XV5kZVtU''@;'; + put 'put ''ZS0xNl0pPDwxfGNlPj4+MzE7Zm9yKHZhciBFZT0wO0VlPDgwOysrRWUpe3ZhciBoZT1+fihFZS8yMCksTz1xKHZlKStzZShoZSxBZSxrZSxTZSkrSWUrZGVbRWVdK1dbaGVdfDA7SWU9U2UsU2U9a2Usa2U9SihBZSksQWU9dmUsdmU9T310aGlzLl9hPXZlK3RoaXMuX2F8MCx0aGlzLl9iPUFl''@;'; + put 'put ''K3RoaXMuX2J8MCx0aGlzLl9jPWtlK3RoaXMuX2N8MCx0aGlzLl9kPVNlK3RoaXMuX2R8MCx0aGlzLl9lPUllK3RoaXMuX2V8MH0sZWUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIG9lPVkuYWxsb2NVbnNhZmUoMjApO3JldHVybiBvZS53cml0ZUludDMyQkUoMHx0aGlzLl9hLDAp''@;'; + put 'put ''LG9lLndyaXRlSW50MzJCRSgwfHRoaXMuX2IsNCksb2Uud3JpdGVJbnQzMkJFKDB8dGhpcy5fYyw4KSxvZS53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSxvZS53cml0ZUludDMyQkUoMHx0aGlzLl9lLDE2KSxvZX0sVS5leHBvcnRzPWVlfSw4NDMyOihVLFEsWik9Pnt2YXIgaWU9Wig1NzE3''@;'; + put 'put ''KSxsZT1aKDc0OTkpLFk9Wig0MTg5KSxXPVooOTUwOSkuQnVmZmVyLE49bmV3IEFycmF5KDY0KTtmdW5jdGlvbiBlZSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9TixZLmNhbGwodGhpcyw2NCw1Nil9aWUoZWUsbGUpLGVlLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9''@;'; + put 'put ''MzIzODM3MTAzMix0aGlzLl9iPTkxNDE1MDY2Myx0aGlzLl9jPTgxMjcwMjk5OSx0aGlzLl9kPTQxNDQ5MTI2OTcsdGhpcy5fZT00MjkwNzc1ODU3LHRoaXMuX2Y9MTc1MDYwMzAyNSx0aGlzLl9nPTE2OTQwNzY4MzksdGhpcy5faD0zMjA0MDc1NDI4LHRoaXN9LGVlLnByb3RvdHlwZS5faGFz''@;'; + put 'put ''aD1mdW5jdGlvbigpe3ZhciBxPVcuYWxsb2NVbnNhZmUoMjgpO3JldHVybiBxLndyaXRlSW50MzJCRSh0aGlzLl9hLDApLHEud3JpdGVJbnQzMkJFKHRoaXMuX2IsNCkscS53cml0ZUludDMyQkUodGhpcy5fYyw4KSxxLndyaXRlSW50MzJCRSh0aGlzLl9kLDEyKSxxLndyaXRlSW50MzJCRSh0''@;'; + put 'put ''aGlzLl9lLDE2KSxxLndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKSxxLndyaXRlSW50MzJCRSh0aGlzLl9nLDI0KSxxfSxVLmV4cG9ydHM9ZWV9LDc0OTk6KFUsUSxaKT0+e3ZhciBpZT1aKDU3MTcpLGxlPVooNDE4OSksWT1aKDk1MDkpLkJ1ZmZlcixXPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEs''@;'; + put 'put ''MzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAy''@;'; + put 'put ''MjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIw''@;'; + put 'put ''NSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQs''@;'; + put 'put ''NDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkz''@;'; + put 'put ''MjUyOThdLE49bmV3IEFycmF5KDY0KTtmdW5jdGlvbiBlZSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9TixsZS5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIHEoZGUsdmUsQWUpe3JldHVybiBBZV5kZSYodmVeQWUpfWZ1bmN0aW9uIEooZGUsdmUsQWUpe3JldHVybiBkZSZ2ZXxBZSYoZGV8dmUp''@;'; + put 'put ''fWZ1bmN0aW9uIHNlKGRlKXtyZXR1cm4oZGU+Pj4yfGRlPDwzMCleKGRlPj4+MTN8ZGU8PDE5KV4oZGU+Pj4yMnxkZTw8MTApfWZ1bmN0aW9uIG9lKGRlKXtyZXR1cm4oZGU+Pj42fGRlPDwyNileKGRlPj4+MTF8ZGU8PDIxKV4oZGU+Pj4yNXxkZTw8Nyl9ZnVuY3Rpb24gY2UoZGUpe3JldHVy''@;'; + put 'put ''bihkZT4+Pjd8ZGU8PDI1KV4oZGU+Pj4xOHxkZTw8MTQpXmRlPj4+M31pZShlZSxsZSksZWUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzc5MDMzNzAzLHRoaXMuX2I9MzE0NDEzNDI3Nyx0aGlzLl9jPTEwMTM5MDQyNDIsdGhpcy5fZD0yNzczNDgwNzYyLHRo''@;'; + put 'put ''aXMuX2U9MTM1OTg5MzExOSx0aGlzLl9mPTI2MDA4MjI5MjQsdGhpcy5fZz01Mjg3MzQ2MzUsdGhpcy5faD0xNTQxNDU5MjI1LHRoaXN9LGVlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGRlKXtmb3IodmFyIHZlLEFlPXRoaXMuX3csa2U9MHx0aGlzLl9hLFNlPTB8dGhpcy5fYixJZT0w''@;'; + put 'put ''fHRoaXMuX2MsVGU9MHx0aGlzLl9kLEVlPTB8dGhpcy5fZSxoZT0wfHRoaXMuX2YsTz0wfHRoaXMuX2csej0wfHRoaXMuX2gsbmU9MDtuZTwxNjsrK25lKUFlW25lXT1kZS5yZWFkSW50MzJCRSg0Km5lKTtmb3IoO25lPDY0OysrbmUpQWVbbmVdPTB8KCgodmU9QWVbbmUtMl0pPj4+MTd8dmU8''@;'; + put 'put ''PDE1KV4odmU+Pj4xOXx2ZTw8MTMpXnZlPj4+MTApK0FlW25lLTddK2NlKEFlW25lLTE1XSkrQWVbbmUtMTZdO2Zvcih2YXIgdGU9MDt0ZTw2NDsrK3RlKXt2YXIgeD16K29lKEVlKStxKEVlLGhlLE8pK1dbdGVdK0FlW3RlXXwwLFA9c2Uoa2UpK0ooa2UsU2UsSWUpfDA7ej1PLE89aGUsaGU9''@;'; + put 'put ''RWUsRWU9VGUreHwwLFRlPUllLEllPVNlLFNlPWtlLGtlPXgrUHwwfXRoaXMuX2E9a2UrdGhpcy5fYXwwLHRoaXMuX2I9U2UrdGhpcy5fYnwwLHRoaXMuX2M9SWUrdGhpcy5fY3wwLHRoaXMuX2Q9VGUrdGhpcy5fZHwwLHRoaXMuX2U9RWUrdGhpcy5fZXwwLHRoaXMuX2Y9aGUrdGhpcy5fZnww''@;'; + put 'put ''LHRoaXMuX2c9Tyt0aGlzLl9nfDAsdGhpcy5faD16K3RoaXMuX2h8MH0sZWUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGRlPVkuYWxsb2NVbnNhZmUoMzIpO3JldHVybiBkZS53cml0ZUludDMyQkUodGhpcy5fYSwwKSxkZS53cml0ZUludDMyQkUodGhpcy5fYiw0KSxkZS53cml0''@;'; + put 'put ''ZUludDMyQkUodGhpcy5fYyw4KSxkZS53cml0ZUludDMyQkUodGhpcy5fZCwxMiksZGUud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLGRlLndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKSxkZS53cml0ZUludDMyQkUodGhpcy5fZywyNCksZGUud3JpdGVJbnQzMkJFKHRoaXMuX2gsMjgpLGRlfSxV''@;'; + put 'put ''LmV4cG9ydHM9ZWV9LDE2ODY6KFUsUSxaKT0+e3ZhciBpZT1aKDU3MTcpLGxlPVooNzgxNiksWT1aKDQxODkpLFc9Wig5NTA5KS5CdWZmZXIsTj1uZXcgQXJyYXkoMTYwKTtmdW5jdGlvbiBlZSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9TixZLmNhbGwodGhpcywxMjgsMTEyKX1pZShlZSxsZSks''@;'; + put 'put ''ZWUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWg9MzQxODA3MDM2NSx0aGlzLl9iaD0xNjU0MjcwMjUwLHRoaXMuX2NoPTI0Mzg1MjkzNzAsdGhpcy5fZGg9MzU1NDYyMzYwLHRoaXMuX2VoPTE3MzE0MDU0MTUsdGhpcy5fZmg9MjM5NDE4MDIzMSx0aGlzLl9naD0z''@;'; + put 'put ''Njc1MDA4NTI1LHRoaXMuX2hoPTEyMDMwNjI4MTMsdGhpcy5fYWw9MzIzODM3MTAzMix0aGlzLl9ibD05MTQxNTA2NjMsdGhpcy5fY2w9ODEyNzAyOTk5LHRoaXMuX2RsPTQxNDQ5MTI2OTcsdGhpcy5fZWw9NDI5MDc3NTg1Nyx0aGlzLl9mbD0xNzUwNjAzMDI1LHRoaXMuX2dsPTE2OTQwNzY4''@;'; + put 'put ''MzksdGhpcy5faGw9MzIwNDA3NTQyOCx0aGlzfSxlZS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgcT1XLmFsbG9jVW5zYWZlKDQ4KTtmdW5jdGlvbiBKKHNlLG9lLGNlKXtxLndyaXRlSW50MzJCRShzZSxjZSkscS53cml0ZUludDMyQkUob2UsY2UrNCl9cmV0dXJuIEoodGhpcy5f''@;'; + put 'put ''YWgsdGhpcy5fYWwsMCksSih0aGlzLl9iaCx0aGlzLl9ibCw4KSxKKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSxKKHRoaXMuX2RoLHRoaXMuX2RsLDI0KSxKKHRoaXMuX2VoLHRoaXMuX2VsLDMyKSxKKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSxxfSxVLmV4cG9ydHM9ZWV9LDc4MTY6KFUsUSxaKT0+''@;'; + put 'put ''e3ZhciBpZT1aKDU3MTcpLGxlPVooNDE4OSksWT1aKDk1MDkpLkJ1ZmZlcixXPVsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMsNDA4MTYyODQ3MiwxNTA4OTcwOTkz''@;'; + put 'put ''LDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3NjcxNTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQsMzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5MjUwNzgzODgsNDA2ODE4MjM4Mywy''@;'; + put 'put ''MTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAzLDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAwOTMzLDc3MDI1NTk4MywxNDk1OTkw''@;'; + put 'put ''OTAxLDEyNDkxNTAxMjIsMTg1NjQzMTIzNSwxNTU1MDgxNjkyLDMxNzUyMTgxMzIsMTk5NjA2NDk4NiwyMTk4OTUwODM3LDI1NTQyMjA4ODIsMzk5OTcxOTMzOSwyODIxODM0MzQ5LDc2Njc4NDAxNiwyOTUyOTk2ODA4LDI1NjY1OTQ4NzksMzIxMDMxMzY3MSwzMjAzMzM3OTU2LDMzMzY1NzE4''@;'; + put 'put ''OTEsMTAzNDQ1NzAyNiwzNTg0NTI4NzExLDI0NjY5NDg5MDEsMTEzOTI2OTkzLDM3NTgzMjYzODMsMzM4MjQxODk1LDE2ODcxNzkzNiw2NjYzMDcyMDUsMTE4ODE3OTk2NCw3NzM1Mjk5MTIsMTU0NjA0NTczNCwxMjk0NzU3MzcyLDE1MjI4MDU0ODUsMTM5NjE4MjI5MSwyNjQzODMzODIzLDE2''@;'; + put 'put ''OTUxODM3MDAsMjM0MzUyNzM5MCwxOTg2NjYxMDUxLDEwMTQ0Nzc0ODAsMjE3NzAyNjM1MCwxMjA2NzU5MTQyLDI0NTY5NTYwMzcsMzQ0MDc3NjI3LDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCwyODIwMzAyNDExLDMxNTg0NTQyNzMsMzI1OTczMDgwMCwzNTA1OTUyNjU3LDMzNDU3NjQ3NzEsMTA2''@;'; + put 'put ''MjE3MDA4LDM1MTYwNjU4MTcsMzYwNjAwODM0NCwzNjAwMzUyODA0LDE0MzI3MjU3NzYsNDA5NDU3MTkwOSwxNDY3MDMxNTk0LDI3NTQyMzM0NCw4NTExNjk3MjAsNDMwMjI3NzM0LDMxMDA4MjM3NTIsNTA2OTQ4NjE2LDEzNjMyNTgxOTUsNjU5MDYwNTU2LDM3NTA2ODU1OTMsODgzOTk3ODc3''@;'; + put 'put ''LDM3ODUwNTAyODAsOTU4MTM5NTcxLDMzMTgzMDc0MjcsMTMyMjgyMjIxOCwzODEyNzIzNDAzLDE1MzcwMDIwNjMsMjAwMzAzNDk5NSwxNzQ3ODczNzc5LDM2MDIwMzY4OTksMTk1NTU2MjIyMiwxNTc1OTkwMDEyLDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCwyMjI3NzMwNDUyLDI3MTY5MDQzMDYs''@;'; + put 'put ''MjM2MTg1MjQyNCw0NDI3NzYwNDQsMjQyODQzNjQ3NCw1OTM2OTgzNDQsMjc1NjczNDE4NywzNzMzMTEwMjQ5LDMyMDQwMzE0NzksMjk5OTM1MTU3MywzMzI5MzI1Mjk4LDM4MTU5MjA0MjcsMzM5MTU2OTYxNCwzOTI4MzgzOTAwLDM1MTUyNjcyNzEsNTY2MjgwNzExLDM5NDAxODc2MDYsMzQ1''@;'; + put 'put ''NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIsMTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5MzgwMzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMyMDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwxMDg2NzkyODUxLDEwMTcwMzYyOTgs''@;'; + put 'put ''MzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIzMTYsMTI0NjE4OTU5MV0sTj1uZXcgQXJyYXkoMTYwKTtmdW5jdGlvbiBlZSgpe3RoaXMuaW5pdCgpLHRo''@;'; + put 'put ''aXMuX3c9TixsZS5jYWxsKHRoaXMsMTI4LDExMil9ZnVuY3Rpb24gcShTZSxJZSxUZSl7cmV0dXJuIFRlXlNlJihJZV5UZSl9ZnVuY3Rpb24gSihTZSxJZSxUZSl7cmV0dXJuIFNlJkllfFRlJihTZXxJZSl9ZnVuY3Rpb24gc2UoU2UsSWUpe3JldHVybihTZT4+PjI4fEllPDw0KV4oSWU+Pj4y''@;'; + put 'put ''fFNlPDwzMCleKEllPj4+N3xTZTw8MjUpfWZ1bmN0aW9uIG9lKFNlLEllKXtyZXR1cm4oU2U+Pj4xNHxJZTw8MTgpXihTZT4+PjE4fEllPDwxNCleKEllPj4+OXxTZTw8MjMpfWZ1bmN0aW9uIGNlKFNlLEllKXtyZXR1cm4oU2U+Pj4xfEllPDwzMSleKFNlPj4+OHxJZTw8MjQpXlNlPj4+N31m''@;'; + put 'put ''dW5jdGlvbiBkZShTZSxJZSl7cmV0dXJuKFNlPj4+MXxJZTw8MzEpXihTZT4+Pjh8SWU8PDI0KV4oU2U+Pj43fEllPDwyNSl9ZnVuY3Rpb24gdmUoU2UsSWUpe3JldHVybihTZT4+PjE5fEllPDwxMyleKEllPj4+Mjl8U2U8PDMpXlNlPj4+Nn1mdW5jdGlvbiBBZShTZSxJZSl7cmV0dXJuKFNl''@;'; + put 'put ''Pj4+MTl8SWU8PDEzKV4oSWU+Pj4yOXxTZTw8MyleKFNlPj4+NnxJZTw8MjYpfWZ1bmN0aW9uIGtlKFNlLEllKXtyZXR1cm4gU2U+Pj4wPEllPj4+MD8xOjB9aWUoZWUsbGUpLGVlLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FoPTE3NzkwMzM3MDMsdGhpcy5fYmg9''@;'; + put 'put ''MzE0NDEzNDI3Nyx0aGlzLl9jaD0xMDEzOTA0MjQyLHRoaXMuX2RoPTI3NzM0ODA3NjIsdGhpcy5fZWg9MTM1OTg5MzExOSx0aGlzLl9maD0yNjAwODIyOTI0LHRoaXMuX2doPTUyODczNDYzNSx0aGlzLl9oaD0xNTQxNDU5MjI1LHRoaXMuX2FsPTQwODkyMzU3MjAsdGhpcy5fYmw9MjIyNzg3''@;'; + put 'put ''MzU5NSx0aGlzLl9jbD00MjcxMTc1NzIzLHRoaXMuX2RsPTE1OTU3NTAxMjksdGhpcy5fZWw9MjkxNzU2NTEzNyx0aGlzLl9mbD03MjU1MTExOTksdGhpcy5fZ2w9NDIxNTM4OTU0Nyx0aGlzLl9obD0zMjcwMzMyMDksdGhpc30sZWUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oU2Upe2Zv''@;'; + put 'put ''cih2YXIgSWU9dGhpcy5fdyxUZT0wfHRoaXMuX2FoLEVlPTB8dGhpcy5fYmgsaGU9MHx0aGlzLl9jaCxPPTB8dGhpcy5fZGgsej0wfHRoaXMuX2VoLG5lPTB8dGhpcy5fZmgsdGU9MHx0aGlzLl9naCx4PTB8dGhpcy5faGgsUD0wfHRoaXMuX2FsLFY9MHx0aGlzLl9ibCxUPTB8dGhpcy5fY2ws''@;'; + put 'put ''Uz0wfHRoaXMuX2RsLEY9MHx0aGlzLl9lbCx5ZT0wfHRoaXMuX2ZsLENlPTB8dGhpcy5fZ2wsRGU9MHx0aGlzLl9obCxQZT0wO1BlPDMyO1BlKz0yKUllW1BlXT1TZS5yZWFkSW50MzJCRSg0KlBlKSxJZVtQZSsxXT1TZS5yZWFkSW50MzJCRSg0KlBlKzQpO2Zvcig7UGU8MTYwO1BlKz0yKXt2''@;'; + put 'put ''YXIgUWU9SWVbUGUtMzBdLCRlPUllW1BlLTMwKzFdLGd0PWNlKFFlLCRlKSx3dD1kZSgkZSxRZSksdnQ9dmUoUWU9SWVbUGUtNF0sJGU9SWVbUGUtNCsxXSksQXQ9QWUoJGUsUWUpLEJ0PUllW1BlLTMyXSxvbj1JZVtQZS0zMisxXSxfdD13dCtJZVtQZS0xNCsxXXwwLHR0PWd0K0llW1BlLTE0''@;'; + put 'put ''XStrZShfdCx3dCl8MDt0dD0odHQ9dHQrdnQra2UoX3Q9X3QrQXR8MCxBdCl8MCkrQnQra2UoX3Q9X3Qrb258MCxvbil8MCxJZVtQZV09dHQsSWVbUGUrMV09X3R9Zm9yKHZhciBldD0wO2V0PDE2MDtldCs9Mil7dHQ9SWVbZXRdLF90PUllW2V0KzFdO3ZhciBhdD1KKFRlLEVlLGhlKSxMdD1K''@;'; + put 'put ''KFAsVixUKSxDdD1zZShUZSxQKSxmdD1zZShQLFRlKSxIdD1vZSh6LEYpLEdlPW9lKEYseiksVWU9V1tldF0seXQ9V1tldCsxXSxqdD1xKHosbmUsdGUpLFF0PXEoRix5ZSxDZSksZ249RGUrR2V8MCxkbj14K0h0K2tlKGduLERlKXwwO2RuPShkbj0oZG49ZG4ranQra2UoZ249Z24rUXR8MCxR''@;'; + put 'put ''dCl8MCkrVWUra2UoZ249Z24reXR8MCx5dCl8MCkrdHQra2UoZ249Z24rX3R8MCxfdCl8MDt2YXIgeW49ZnQrTHR8MCxsbj1DdCthdCtrZSh5bixmdCl8MDt4PXRlLERlPUNlLHRlPW5lLENlPXllLG5lPXoseWU9Rix6PU8rZG4ra2UoRj1TK2dufDAsUyl8MCxPPWhlLFM9VCxoZT1FZSxUPVYs''@;'; + put 'put ''RWU9VGUsVj1QLFRlPWRuK2xuK2tlKFA9Z24reW58MCxnbil8MH10aGlzLl9hbD10aGlzLl9hbCtQfDAsdGhpcy5fYmw9dGhpcy5fYmwrVnwwLHRoaXMuX2NsPXRoaXMuX2NsK1R8MCx0aGlzLl9kbD10aGlzLl9kbCtTfDAsdGhpcy5fZWw9dGhpcy5fZWwrRnwwLHRoaXMuX2ZsPXRoaXMuX2Zs''@;'; + put 'put ''K3llfDAsdGhpcy5fZ2w9dGhpcy5fZ2wrQ2V8MCx0aGlzLl9obD10aGlzLl9obCtEZXwwLHRoaXMuX2FoPXRoaXMuX2FoK1RlK2tlKHRoaXMuX2FsLFApfDAsdGhpcy5fYmg9dGhpcy5fYmgrRWUra2UodGhpcy5fYmwsVil8MCx0aGlzLl9jaD10aGlzLl9jaCtoZStrZSh0aGlzLl9jbCxUKXww''@;'; + put 'put ''LHRoaXMuX2RoPXRoaXMuX2RoK08ra2UodGhpcy5fZGwsUyl8MCx0aGlzLl9laD10aGlzLl9laCt6K2tlKHRoaXMuX2VsLEYpfDAsdGhpcy5fZmg9dGhpcy5fZmgrbmUra2UodGhpcy5fZmwseWUpfDAsdGhpcy5fZ2g9dGhpcy5fZ2grdGUra2UodGhpcy5fZ2wsQ2UpfDAsdGhpcy5faGg9dGhp''@;'; + put 'put ''cy5faGgreCtrZSh0aGlzLl9obCxEZSl8MH0sZWUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIFNlPVkuYWxsb2NVbnNhZmUoNjQpO2Z1bmN0aW9uIEllKFRlLEVlLGhlKXtTZS53cml0ZUludDMyQkUoVGUsaGUpLFNlLndyaXRlSW50MzJCRShFZSxoZSs0KX1yZXR1cm4gSWUodGhp''@;'; + put 'put ''cy5fYWgsdGhpcy5fYWwsMCksSWUodGhpcy5fYmgsdGhpcy5fYmwsOCksSWUodGhpcy5fY2gsdGhpcy5fY2wsMTYpLEllKHRoaXMuX2RoLHRoaXMuX2RsLDI0KSxJZSh0aGlzLl9laCx0aGlzLl9lbCwzMiksSWUodGhpcy5fZmgsdGhpcy5fZmwsNDApLEllKHRoaXMuX2doLHRoaXMuX2dsLDQ4''@;'; + put 'put ''KSxJZSh0aGlzLl9oaCx0aGlzLl9obCw1NiksU2V9LFUuZXhwb3J0cz1lZX0sMjgzMDooVSxRLFopPT57VS5leHBvcnRzPWxlO3ZhciBpZT1aKDcxODcpLkV2ZW50RW1pdHRlcjtmdW5jdGlvbiBsZSgpe2llLmNhbGwodGhpcyl9Wig1NzE3KShsZSxpZSksbGUuUmVhZGFibGU9Wig5NDgxKSxs''@;'; + put 'put ''ZS5Xcml0YWJsZT1aKDQyMjkpLGxlLkR1cGxleD1aKDY3NTMpLGxlLlRyYW5zZm9ybT1aKDQ2MDUpLGxlLlBhc3NUaHJvdWdoPVooMjcyNSksbGUuZmluaXNoZWQ9Wig4NjEwKSxsZS5waXBlbGluZT1aKDk5NDYpLGxlLlN0cmVhbT1sZSxsZS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbihZLFcp''@;'; + put 'put ''e3ZhciBOPXRoaXM7ZnVuY3Rpb24gZWUodmUpe1kud3JpdGFibGUmJiExPT09WS53cml0ZSh2ZSkmJk4ucGF1c2UmJk4ucGF1c2UoKX1mdW5jdGlvbiBxKCl7Ti5yZWFkYWJsZSYmTi5yZXN1bWUmJk4ucmVzdW1lKCl9Ti5vbigiZGF0YSIsZWUpLFkub24oImRyYWluIixxKSxZLl9pc1N0ZGlv''@;'; + put 'put ''fHxXJiYhMT09PVcuZW5kfHwoTi5vbigiZW5kIixzZSksTi5vbigiY2xvc2UiLG9lKSk7dmFyIEo9ITE7ZnVuY3Rpb24gc2UoKXtKfHwoSj0hMCxZLmVuZCgpKX1mdW5jdGlvbiBvZSgpe0p8fChKPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBZLmRlc3Ryb3kmJlkuZGVzdHJveSgpKX1mdW5jdGlv''@;'; + put 'put ''biBjZSh2ZSl7aWYoZGUoKSwwPT09aWUubGlzdGVuZXJDb3VudCh0aGlzLCJlcnJvciIpKXRocm93IHZlfWZ1bmN0aW9uIGRlKCl7Ti5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsZWUpLFkucmVtb3ZlTGlzdGVuZXIoImRyYWluIixxKSxOLnJlbW92ZUxpc3RlbmVyKCJlbmQiLHNlKSxOLnJlbW92''@;'; + put 'put ''ZUxpc3RlbmVyKCJjbG9zZSIsb2UpLE4ucmVtb3ZlTGlzdGVuZXIoImVycm9yIixjZSksWS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGNlKSxOLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGRlKSxOLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsZGUpLFkucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixkZSl9''@;'; + put 'put ''cmV0dXJuIE4ub24oImVycm9yIixjZSksWS5vbigiZXJyb3IiLGNlKSxOLm9uKCJlbmQiLGRlKSxOLm9uKCJjbG9zZSIsZGUpLFkub24oImNsb3NlIixkZSksWS5lbWl0KCJwaXBlIixOKSxZfX0sMjU1MzooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDM5NikuQnVmZmVyLGxlPWll''@;'; + put 'put ''LmlzRW5jb2Rpbmd8fGZ1bmN0aW9uKGRlKXtzd2l0Y2goKGRlPSIiK2RlKSYmZGUudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRm''@;'; + put 'put ''MTZsZSI6Y2FzZSJ1dGYtMTZsZSI6Y2FzZSJyYXciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiBZKGRlKXt2YXIgdmU7c3dpdGNoKHRoaXMuZW5jb2Rpbmc9ZnVuY3Rpb24oQWUpe3ZhciBrZT1mdW5jdGlvbihTZSl7aWYoIVNlKXJldHVybiJ1dGY4Ijtmb3IodmFyIEll''@;'; + put 'put ''Ozspc3dpdGNoKFNlKXtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiJ1dGY4IjtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuInV0ZjE2bGUiO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuImxhdGluMSI7Y2FzZSJi''@;'; + put 'put ''YXNlNjQiOmNhc2UiYXNjaWkiOmNhc2UiaGV4IjpyZXR1cm4gU2U7ZGVmYXVsdDppZihJZSlyZXR1cm47U2U9KCIiK1NlKS50b0xvd2VyQ2FzZSgpLEllPSEwfX0oQWUpO2lmKCJzdHJpbmciIT10eXBlb2Yga2UmJihpZS5pc0VuY29kaW5nPT09bGV8fCFsZShBZSkpKXRocm93IG5ldyBFcnJv''@;'; + put 'put ''cigiVW5rbm93biBlbmNvZGluZzogIitBZSk7cmV0dXJuIGtlfHxBZX0oZGUpLHRoaXMuZW5jb2Rpbmcpe2Nhc2UidXRmMTZsZSI6dGhpcy50ZXh0PWVlLHRoaXMuZW5kPXEsdmU9NDticmVhaztjYXNlInV0ZjgiOnRoaXMuZmlsbExhc3Q9Tix2ZT00O2JyZWFrO2Nhc2UiYmFzZTY0Ijp0aGlz''@;'; + put 'put ''LnRleHQ9Six0aGlzLmVuZD1zZSx2ZT0zO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHRoaXMud3JpdGU9b2Usdm9pZCh0aGlzLmVuZD1jZSl9dGhpcy5sYXN0TmVlZD0wLHRoaXMubGFzdFRvdGFsPTAsdGhpcy5sYXN0Q2hhcj1pZS5hbGxvY1Vuc2FmZSh2ZSl9ZnVuY3Rpb24gVyhkZSl7cmV0dXJu''@;'; + put 'put ''IGRlPD0xMjc/MDpkZT4+NT09Nj8yOmRlPj40PT0xND8zOmRlPj4zPT0zMD80OmRlPj42PT0yPy0xOi0yfWZ1bmN0aW9uIE4oZGUpe3ZhciB2ZT10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLEFlPWZ1bmN0aW9uKGtlLFNlLEllKXtpZigxMjghPSgxOTImU2VbMF0pKXJldHVybiBrZS5s''@;'; + put 'put ''YXN0TmVlZD0wLCJcdWZmZmQiO2lmKGtlLmxhc3ROZWVkPjEmJlNlLmxlbmd0aD4xKXtpZigxMjghPSgxOTImU2VbMV0pKXJldHVybiBrZS5sYXN0TmVlZD0xLCJcdWZmZmQiO2lmKGtlLmxhc3ROZWVkPjImJlNlLmxlbmd0aD4yJiYxMjghPSgxOTImU2VbMl0pKXJldHVybiBrZS5sYXN0TmVl''@;'; + put 'put ''ZD0yLCJcdWZmZmQifX0odGhpcyxkZSk7cmV0dXJuIHZvaWQgMCE9PUFlP0FlOnRoaXMubGFzdE5lZWQ8PWRlLmxlbmd0aD8oZGUuY29weSh0aGlzLmxhc3RDaGFyLHZlLDAsdGhpcy5sYXN0TmVlZCksdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAsdGhpcy5sYXN0VG90''@;'; + put 'put ''YWwpKTooZGUuY29weSh0aGlzLmxhc3RDaGFyLHZlLDAsZGUubGVuZ3RoKSx2b2lkKHRoaXMubGFzdE5lZWQtPWRlLmxlbmd0aCkpfWZ1bmN0aW9uIGVlKGRlLHZlKXtpZigoZGUubGVuZ3RoLXZlKSUyPT0wKXt2YXIgQWU9ZGUudG9TdHJpbmcoInV0ZjE2bGUiLHZlKTtpZihBZSl7dmFyIGtl''@;'; + put 'put ''PUFlLmNoYXJDb2RlQXQoQWUubGVuZ3RoLTEpO2lmKGtlPj01NTI5NiYma2U8PTU2MzE5KXJldHVybiB0aGlzLmxhc3ROZWVkPTIsdGhpcy5sYXN0VG90YWw9NCx0aGlzLmxhc3RDaGFyWzBdPWRlW2RlLmxlbmd0aC0yXSx0aGlzLmxhc3RDaGFyWzFdPWRlW2RlLmxlbmd0aC0xXSxBZS5zbGlj''@;'; + put 'put ''ZSgwLC0xKX1yZXR1cm4gQWV9cmV0dXJuIHRoaXMubGFzdE5lZWQ9MSx0aGlzLmxhc3RUb3RhbD0yLHRoaXMubGFzdENoYXJbMF09ZGVbZGUubGVuZ3RoLTFdLGRlLnRvU3RyaW5nKCJ1dGYxNmxlIix2ZSxkZS5sZW5ndGgtMSl9ZnVuY3Rpb24gcShkZSl7dmFyIHZlPWRlJiZkZS5sZW5ndGg/''@;'; + put 'put ''dGhpcy53cml0ZShkZSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/dmUrdGhpcy5sYXN0Q2hhci50b1N0cmluZygidXRmMTZsZSIsMCx0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkKTp2ZX1mdW5jdGlvbiBKKGRlLHZlKXt2YXIgQWU9KGRlLmxlbmd0aC12ZSklMztyZXR1cm4gMD09PUFl''@;'; + put 'put ''P2RlLnRvU3RyaW5nKCJiYXNlNjQiLHZlKToodGhpcy5sYXN0TmVlZD0zLUFlLHRoaXMubGFzdFRvdGFsPTMsMT09PUFlP3RoaXMubGFzdENoYXJbMF09ZGVbZGUubGVuZ3RoLTFdOih0aGlzLmxhc3RDaGFyWzBdPWRlW2RlLmxlbmd0aC0yXSx0aGlzLmxhc3RDaGFyWzFdPWRlW2RlLmxlbmd0''@;'; + put 'put ''aC0xXSksZGUudG9TdHJpbmcoImJhc2U2NCIsdmUsZGUubGVuZ3RoLUFlKSl9ZnVuY3Rpb24gc2UoZGUpe3ZhciB2ZT1kZSYmZGUubGVuZ3RoP3RoaXMud3JpdGUoZGUpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP3ZlK3RoaXMubGFzdENoYXIudG9TdHJpbmcoImJhc2U2NCIsMCwzLXRoaXMu''@;'; + put 'put ''bGFzdE5lZWQpOnZlfWZ1bmN0aW9uIG9lKGRlKXtyZXR1cm4gZGUudG9TdHJpbmcodGhpcy5lbmNvZGluZyl9ZnVuY3Rpb24gY2UoZGUpe3JldHVybiBkZSYmZGUubGVuZ3RoP3RoaXMud3JpdGUoZGUpOiIifVEuU3RyaW5nRGVjb2Rlcj1ZLFkucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGRl''@;'; + put 'put ''KXtpZigwPT09ZGUubGVuZ3RoKXJldHVybiIiO3ZhciB2ZSxBZTtpZih0aGlzLmxhc3ROZWVkKXtpZih2b2lkIDA9PT0odmU9dGhpcy5maWxsTGFzdChkZSkpKXJldHVybiIiO0FlPXRoaXMubGFzdE5lZWQsdGhpcy5sYXN0TmVlZD0wfWVsc2UgQWU9MDtyZXR1cm4gQWU8ZGUubGVuZ3RoP3Zl''@;'; + put 'put ''P3ZlK3RoaXMudGV4dChkZSxBZSk6dGhpcy50ZXh0KGRlLEFlKTp2ZXx8IiJ9LFkucHJvdG90eXBlLmVuZD1mdW5jdGlvbihkZSl7dmFyIHZlPWRlJiZkZS5sZW5ndGg/dGhpcy53cml0ZShkZSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/dmUrIlx1ZmZmZCI6dmV9LFkucHJvdG90eXBlLnRl''@;'; + put 'put ''eHQ9ZnVuY3Rpb24oZGUsdmUpe3ZhciBBZT1mdW5jdGlvbihTZSxJZSxUZSl7dmFyIEVlPUllLmxlbmd0aC0xO2lmKEVlPFRlKXJldHVybiAwO3ZhciBoZT1XKEllW0VlXSk7cmV0dXJuIGhlPj0wPyhoZT4wJiYoU2UubGFzdE5lZWQ9aGUtMSksaGUpOi0tRWU8VGV8fC0yPT09aGU/MDooaGU9''@;'; + put 'put ''VyhJZVtFZV0pKT49MD8oaGU+MCYmKFNlLmxhc3ROZWVkPWhlLTIpLGhlKTotLUVlPFRlfHwtMj09PWhlPzA6KGhlPVcoSWVbRWVdKSk+PTA/KGhlPjAmJigyPT09aGU/aGU9MDpTZS5sYXN0TmVlZD1oZS0zKSxoZSk6MH0odGhpcyxkZSx2ZSk7aWYoIXRoaXMubGFzdE5lZWQpcmV0dXJuIGRl''@;'; + put 'put ''LnRvU3RyaW5nKCJ1dGY4Iix2ZSk7dGhpcy5sYXN0VG90YWw9QWU7dmFyIGtlPWRlLmxlbmd0aC0oQWUtdGhpcy5sYXN0TmVlZCk7cmV0dXJuIGRlLmNvcHkodGhpcy5sYXN0Q2hhciwwLGtlKSxkZS50b1N0cmluZygidXRmOCIsdmUsa2UpfSxZLnByb3RvdHlwZS5maWxsTGFzdD1mdW5jdGlv''@;'; + put 'put ''bihkZSl7aWYodGhpcy5sYXN0TmVlZDw9ZGUubGVuZ3RoKXJldHVybiBkZS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKTtk''@;'; + put 'put ''ZS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLGRlLmxlbmd0aCksdGhpcy5sYXN0TmVlZC09ZGUubGVuZ3RofX0sMzk2OihVLFEsWik9Pnt2YXIgaWU9Wig4NzY0KSxsZT1pZS5CdWZmZXI7ZnVuY3Rpb24gWShOLGVlKXtmb3IodmFyIHEgaW4gTill''@;'; + put 'put ''ZVtxXT1OW3FdfWZ1bmN0aW9uIFcoTixlZSxxKXtyZXR1cm4gbGUoTixlZSxxKX1sZS5mcm9tJiZsZS5hbGxvYyYmbGUuYWxsb2NVbnNhZmUmJmxlLmFsbG9jVW5zYWZlU2xvdz9VLmV4cG9ydHM9aWU6KFkoaWUsUSksUS5CdWZmZXI9VyksVy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShsZS5w''@;'; + put 'put ''cm90b3R5cGUpLFkobGUsVyksVy5mcm9tPWZ1bmN0aW9uKE4sZWUscSl7aWYoIm51bWJlciI9PXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIGxlKE4sZWUscSl9LFcuYWxsb2M9ZnVuY3Rpb24oTixlZSxxKXtpZigi''@;'; + put 'put ''bnVtYmVyIiE9dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBKPWxlKE4pO3JldHVybiB2b2lkIDAhPT1lZT8ic3RyaW5nIj09dHlwZW9mIHE/Si5maWxsKGVlLHEpOkouZmlsbChlZSk6Si5maWxsKDApLEp9LFcuYWxsb2NVbnNh''@;'; + put 'put ''ZmU9ZnVuY3Rpb24oTil7aWYoIm51bWJlciIhPXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gbGUoTil9LFcuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKE4pe2lmKCJudW1iZXIiIT10eXBlb2YgTil0aHJvdyBuZXcgVHlw''@;'; + put 'put ''ZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIGllLlNsb3dCdWZmZXIoTil9fSw3ODU3OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9WigzNjg5KSxsZT1aKDg1NzUpLlFjLFk9Wig5NTM5KSxXPVooNzUyKSxOPVooMjIyNCkueSxlZT1aKDU3NjEpLm0s''@;'; + put 'put ''cT1aKDg5NzEpLlUsSj1aKDQ1Nikse2Zyb21DYWxsYmFjazpzZX09Wig3MDQxKSxvZT0vXltceDIxXHgyMy1ceDJCXHgyRC1ceDNBXHgzQy1ceDVCXHg1RC1ceDdFXSskLyxjZT0vW1x4MDAtXHgxRl0vLGRlPVsiXG4iLCJcciIsIlwwIl0sdmU9L1tceDIwLVx4M0FceDNDLVx4N0VdKy8sQWU9''@;'; + put 'put ''L1tceDA5XHgyMC1ceDJGXHgzQi1ceDQwXHg1Qi1ceDYwXHg3Qi1ceDdFXS8sa2U9e2phbjowLGZlYjoxLG1hcjoyLGFwcjozLG1heTo0LGp1bjo1LGp1bDo2LGF1Zzo3LHNlcDo4LG9jdDo5LG5vdjoxMCxkZWM6MTF9LFNlPTIxNDc0ODM2NDdlMyxJZT0nSW52YWxpZCBzYW1lU2l0ZUNvbnRl''@;'; + put 'put ''eHQgb3B0aW9uIGZvciBnZXRDb29raWVzKCk7IGV4cGVjdGVkIG9uZSBvZiAic3RyaWN0IiwgImxheCIsIG9yICJub25lIic7ZnVuY3Rpb24gVGUodnQpe2NvbnN0IEF0PVN0cmluZyh2dCkudG9Mb3dlckNhc2UoKTtyZXR1cm4ibm9uZSI9PT1BdHx8ImxheCI9PT1BdHx8InN0cmljdCI9PT1B''@;'; + put 'put ''dD9BdDpudWxsfWNvbnN0IEVlPU9iamVjdC5mcmVlemUoe1NJTEVOVDoic2lsZW50IixTVFJJQ1Q6InN0cmljdCIsRElTQUJMRUQ6InVuc2FmZS1kaXNhYmxlZCJ9KTt2YXIgaGU9Lyg/Ol4oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKD86XC4oPzoyNVswLTVdfDJbMC00''@;'; + put 'put ''XVxkfDFcZFxkfFsxLTldXGR8XGQpKXszfSQpfCg/Ol4oPzooPzpbYS1mXGRdezEsNH06KXs3fSg/OlthLWZcZF17MSw0fXw6KXwoPzpbYS1mXGRdezEsNH06KXs2fSg/Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkoPzpcLig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8''@;'; + put 'put ''WzEtOV1cZHxcZCkpezN9fDpbYS1mXGRdezEsNH18Oil8KD86W2EtZlxkXXsxLDR9Oil7NX0oPzo6KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M318KD86OlthLWZcZF17MSw0fSl7MSwyfXw6''@;'; + put 'put ''KXwoPzpbYS1mXGRdezEsNH06KXs0fSg/Oig/OjpbYS1mXGRdezEsNH0pezAsMX06KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M318KD86OlthLWZcZF17MSw0fSl7MSwzfXw6KXwoPzpbYS1m''@;'; + put 'put ''XGRdezEsNH06KXszfSg/Oig/OjpbYS1mXGRdezEsNH0pezAsMn06KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M318KD86OlthLWZcZF17MSw0fSl7MSw0fXw6KXwoPzpbYS1mXGRdezEsNH06''@;'; + put 'put ''KXsyfSg/Oig/OjpbYS1mXGRdezEsNH0pezAsM306KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M318KD86OlthLWZcZF17MSw0fSl7MSw1fXw6KXwoPzpbYS1mXGRdezEsNH06KXsxfSg/Oig/''@;'; + put 'put ''OjpbYS1mXGRdezEsNH0pezAsNH06KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M318KD86OlthLWZcZF17MSw0fSl7MSw2fXw6KXwoPzo6KD86KD86OlthLWZcZF17MSw0fSl7MCw1fTooPzoy''@;'; + put 'put ''NVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKD86XC4oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKXszfXwoPzo6W2EtZlxkXXsxLDR9KXsxLDd9fDopKSkkKS87ZnVuY3Rpb24gTyh2dCxBdCxtdCxodCl7bGV0IEJ0PTA7Zm9yKDtCdDx2dC5sZW5ndGg7KXtj''@;'; + put 'put ''b25zdCBvbj12dC5jaGFyQ29kZUF0KEJ0KTtpZihvbjw9NDd8fG9uPj01OClicmVhaztCdCsrfXJldHVybiBCdDxBdHx8QnQ+bXQ/bnVsbDpodHx8QnQ9PXZ0Lmxlbmd0aD9wYXJzZUludCh2dC5zdWJzdHIoMCxCdCksMTApOm51bGx9ZnVuY3Rpb24geih2dCl7Y29uc3QgQXQ9dnQuc3BsaXQo''@;'; + put 'put ''IjoiKSxtdD1bMCwwLDBdO2lmKDMhPT1BdC5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKGxldCBodD0wO2h0PDM7aHQrKyl7Y29uc3Qgb249TyhBdFtodF0sMSwyLDI9PWh0KTtpZihudWxsPT09b24pcmV0dXJuIG51bGw7bXRbaHRdPW9ufXJldHVybiBtdH1mdW5jdGlvbiBuZSh2dCl7dnQ9U3Ry''@;'; + put 'put ''aW5nKHZ0KS5zdWJzdHIoMCwzKS50b0xvd2VyQ2FzZSgpO2NvbnN0IEF0PWtlW3Z0XTtyZXR1cm4gQXQ+PTA/QXQ6bnVsbH1mdW5jdGlvbiB0ZSh2dCl7aWYoIXZ0KXJldHVybjtjb25zdCBBdD12dC5zcGxpdChBZSk7aWYoIUF0KXJldHVybjtsZXQgbXQ9bnVsbCxodD1udWxsLEJ0PW51bGws''@;'; + put 'put ''b249bnVsbCxfdD1udWxsLHR0PW51bGw7Zm9yKGxldCBldD0wO2V0PEF0Lmxlbmd0aDtldCsrKXtjb25zdCBhdD1BdFtldF0udHJpbSgpO2lmKCFhdC5sZW5ndGgpY29udGludWU7bGV0IEx0O251bGw9PT1CdCYmKEx0PXooYXQpLEx0KT8obXQ9THRbMF0saHQ9THRbMV0sQnQ9THRbMl0pOm51''@;'; + put 'put ''bGwhPT1vbnx8KEx0PU8oYXQsMSwyLCEwKSxudWxsPT09THQpP251bGwhPT1fdHx8KEx0PW5lKGF0KSxudWxsPT09THQpP251bGw9PT10dCYmKEx0PU8oYXQsMiw0LCEwKSxudWxsIT09THQmJih0dD1MdCx0dD49NzAmJnR0PD05OT90dCs9MTkwMDp0dD49MCYmdHQ8PTY5JiYodHQrPTJlMykp''@;'; + put 'put ''KTpfdD1MdDpvbj1MdH1yZXR1cm4gbnVsbD09PW9ufHxudWxsPT09X3R8fG51bGw9PT10dHx8bnVsbD09PUJ0fHxvbjwxfHxvbj4zMXx8dHQ8MTYwMXx8bXQ+MjN8fGh0PjU5fHxCdD41OT92b2lkIDA6bmV3IERhdGUoRGF0ZS5VVEModHQsX3Qsb24sbXQsaHQsQnQpKX1mdW5jdGlvbiB4KHZ0''@;'; + put 'put ''KXtyZXR1cm4gdnQudG9VVENTdHJpbmcoKX1mdW5jdGlvbiBQKHZ0KXtyZXR1cm4gbnVsbD09dnQ/bnVsbDoodnQ9dnQudHJpbSgpLnJlcGxhY2UoL15cLi8sIiIpLGllJiYvW15cdTAwMDEtXHUwMDdmXS8udGVzdCh2dCkmJih2dD1pZS50b0FTQ0lJKHZ0KSksdnQudG9Mb3dlckNhc2UoKSl9''@;'; + put 'put ''ZnVuY3Rpb24gVih2dCxBdCxtdCl7aWYobnVsbD09dnR8fG51bGw9PUF0KXJldHVybiBudWxsO2lmKCExIT09bXQmJih2dD1QKHZ0KSxBdD1QKEF0KSksdnQ9PUF0KXJldHVybiEwO2NvbnN0IGh0PXZ0LmluZGV4T2YoQXQpO3JldHVybiEoaHQ8PTB8fHZ0Lmxlbmd0aCE9PUF0Lmxlbmd0aCto''@;'; + put 'put ''dHx8Ii4iIT09dnQuc3Vic3RyKGh0LTEsMSl8fGhlLnRlc3QodnQpKX1mdW5jdGlvbiBUKHZ0KXtpZighdnR8fCIvIiE9PXZ0LnN1YnN0cigwLDEpKXJldHVybiIvIjtpZigiLyI9PT12dClyZXR1cm4gdnQ7Y29uc3QgQXQ9dnQubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4gMD09PUF0PyIvIjp2''@;'; + put 'put ''dC5zbGljZSgwLEF0KX1mdW5jdGlvbiBGKHZ0LEF0KXtBdCYmIm9iamVjdCI9PXR5cGVvZiBBdHx8KEF0PXt9KTtjb25zdCBtdD0odnQ9dnQudHJpbSgpKS5pbmRleE9mKCI7IiksaHQ9ZnVuY3Rpb24gUyh2dCxBdCl7bGV0IG10LGh0LEJ0PSh2dD1mdW5jdGlvbihfdCl7Zm9yKGxldCB0dD0w''@;'; + put 'put ''O3R0PGRlLmxlbmd0aDt0dCsrKXtjb25zdCBldD1fdC5pbmRleE9mKGRlW3R0XSk7LTEhPT1ldCYmKF90PV90LnN1YnN0cigwLGV0KSl9cmV0dXJuIF90fSh2dCkpLmluZGV4T2YoIj0iKTtpZihBdCkwPT09QnQmJihCdD0odnQ9dnQuc3Vic3RyKDEpKS5pbmRleE9mKCI9IikpO2Vsc2UgaWYo''@;'; + put 'put ''QnQ8PTApcmV0dXJuO2lmKEJ0PD0wPyhtdD0iIixodD12dC50cmltKCkpOihtdD12dC5zdWJzdHIoMCxCdCkudHJpbSgpLGh0PXZ0LnN1YnN0cihCdCsxKS50cmltKCkpLGNlLnRlc3QobXQpfHxjZS50ZXN0KGh0KSlyZXR1cm47Y29uc3Qgb249bmV3ICRlO3JldHVybiBvbi5rZXk9bXQsb24u''@;'; + put 'put ''dmFsdWU9aHQsb259KC0xPT09bXQ/dnQ6dnQuc3Vic3RyKDAsbXQpLCEhQXQubG9vc2UpO2lmKCFodClyZXR1cm47aWYoLTE9PT1tdClyZXR1cm4gaHQ7Y29uc3QgQnQ9dnQuc2xpY2UobXQrMSkudHJpbSgpO2lmKDA9PT1CdC5sZW5ndGgpcmV0dXJuIGh0O2NvbnN0IG9uPUJ0LnNwbGl0KCI7''@;'; + put 'put ''Iik7Zm9yKDtvbi5sZW5ndGg7KXtjb25zdCBfdD1vbi5zaGlmdCgpLnRyaW0oKTtpZigwPT09X3QubGVuZ3RoKWNvbnRpbnVlO2NvbnN0IHR0PV90LmluZGV4T2YoIj0iKTtsZXQgZXQsYXQ7c3dpdGNoKC0xPT09dHQ/KGV0PV90LGF0PW51bGwpOihldD1fdC5zdWJzdHIoMCx0dCksYXQ9X3Qu''@;'; + put 'put ''c3Vic3RyKHR0KzEpKSxldD1ldC50cmltKCkudG9Mb3dlckNhc2UoKSxhdCYmKGF0PWF0LnRyaW0oKSksZXQpe2Nhc2UiZXhwaXJlcyI6aWYoYXQpe2NvbnN0IEx0PXRlKGF0KTtMdCYmKGh0LmV4cGlyZXM9THQpfWJyZWFrO2Nhc2UibWF4LWFnZSI6aWYoYXQmJi9eLT9bMC05XSskLy50ZXN0''@;'; + put 'put ''KGF0KSl7Y29uc3QgTHQ9cGFyc2VJbnQoYXQsMTApO2h0LnNldE1heEFnZShMdCl9YnJlYWs7Y2FzZSJkb21haW4iOmlmKGF0KXtjb25zdCBMdD1hdC50cmltKCkucmVwbGFjZSgvXlwuLywiIik7THQmJihodC5kb21haW49THQudG9Mb3dlckNhc2UoKSl9YnJlYWs7Y2FzZSJwYXRoIjpodC5w''@;'; + put 'put ''YXRoPWF0JiYiLyI9PT1hdFswXT9hdDpudWxsO2JyZWFrO2Nhc2Uic2VjdXJlIjpodC5zZWN1cmU9ITA7YnJlYWs7Y2FzZSJodHRwb25seSI6aHQuaHR0cE9ubHk9ITA7YnJlYWs7Y2FzZSJzYW1lc2l0ZSI6c3dpdGNoKGF0P2F0LnRvTG93ZXJDYXNlKCk6IiIpe2Nhc2Uic3RyaWN0IjpodC5z''@;'; + put 'put ''YW1lU2l0ZT0ic3RyaWN0IjticmVhaztjYXNlImxheCI6aHQuc2FtZVNpdGU9ImxheCJ9YnJlYWs7ZGVmYXVsdDpodC5leHRlbnNpb25zPWh0LmV4dGVuc2lvbnN8fFtdLGh0LmV4dGVuc2lvbnMucHVzaChfdCl9fXJldHVybiBodH1mdW5jdGlvbiB5ZSh2dCl7bGV0IEF0O3RyeXtBdD1KU09O''@;'; + put 'put ''LnBhcnNlKHZ0KX1jYXRjaChtdCl7cmV0dXJuIG10fXJldHVybiBBdH1mdW5jdGlvbiBDZSh2dCl7aWYoIXZ0KXJldHVybiBudWxsO2xldCBBdDtpZigic3RyaW5nIj09dHlwZW9mIHZ0KXtpZihBdD15ZSh2dCksQXQgaW5zdGFuY2VvZiBFcnJvcilyZXR1cm4gbnVsbH1lbHNlIEF0PXZ0O2Nv''@;'; + put 'put ''bnN0IG10PW5ldyAkZTtmb3IobGV0IGh0PTA7aHQ8JGUuc2VyaWFsaXphYmxlUHJvcGVydGllcy5sZW5ndGg7aHQrKyl7Y29uc3QgQnQ9JGUuc2VyaWFsaXphYmxlUHJvcGVydGllc1todF07dm9pZCAwIT09QXRbQnRdJiZBdFtCdF0hPT1RZVtCdF0mJihtdFtCdF09ImV4cGlyZXMiPT09QnR8''@;'; + put 'put ''fCJjcmVhdGlvbiI9PT1CdHx8Imxhc3RBY2Nlc3NlZCI9PT1CdD9udWxsPT09QXRbQnRdP251bGw6IkluZmluaXR5Ij09QXRbQnRdPyJJbmZpbml0eSI6bmV3IERhdGUoQXRbQnRdKTpBdFtCdF0pfXJldHVybiBtdH1mdW5jdGlvbiBEZSh2dCxBdCl7bGV0IG10PTA7cmV0dXJuIG10PShBdC5w''@;'; + put 'put ''YXRoP0F0LnBhdGgubGVuZ3RoOjApLSh2dC5wYXRoP3Z0LnBhdGgubGVuZ3RoOjApLDAhPT1tdHx8KG10PSh2dC5jcmVhdGlvbj92dC5jcmVhdGlvbi5nZXRUaW1lKCk6U2UpLShBdC5jcmVhdGlvbj9BdC5jcmVhdGlvbi5nZXRUaW1lKCk6U2UpLDAhPT1tdHx8KG10PXZ0LmNyZWF0aW9uSW5k''@;'; + put 'put ''ZXgtQXQuY3JlYXRpb25JbmRleCkpLG10fWZ1bmN0aW9uIFBlKHZ0KXtpZih2dCBpbnN0YW5jZW9mIE9iamVjdClyZXR1cm4gdnQ7dHJ5e3Z0PWRlY29kZVVSSSh2dCl9Y2F0Y2goQXQpe31yZXR1cm4gbGUodnQpfWNvbnN0IFFlPXtrZXk6IiIsdmFsdWU6IiIsZXhwaXJlczoiSW5maW5pdHki''@;'; + put 'put ''LG1heEFnZTpudWxsLGRvbWFpbjpudWxsLHBhdGg6bnVsbCxzZWN1cmU6ITEsaHR0cE9ubHk6ITEsZXh0ZW5zaW9uczpudWxsLGhvc3RPbmx5Om51bGwscGF0aElzRGVmYXVsdDpudWxsLGNyZWF0aW9uOm51bGwsbGFzdEFjY2Vzc2VkOm51bGwsc2FtZVNpdGU6Im5vbmUifTtjbGFzcyAkZXtj''@;'; + put 'put ''b25zdHJ1Y3RvcihBdD17fSl7WS5pbnNwZWN0LmN1c3RvbSYmKHRoaXNbWS5pbnNwZWN0LmN1c3RvbV09dGhpcy5pbnNwZWN0KSxPYmplY3QuYXNzaWduKHRoaXMsUWUsQXQpLHRoaXMuY3JlYXRpb249dGhpcy5jcmVhdGlvbnx8bmV3IERhdGUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMs''@;'; + put 'put ''ImNyZWF0aW9uSW5kZXgiLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCx2YWx1ZTorKyRlLmNvb2tpZXNDcmVhdGVkfSl9aW5zcGVjdCgpe2NvbnN0IEF0PURhdGUubm93KCksbXQ9bnVsbCE9dGhpcy5ob3N0T25seT90aGlzLmhvc3RPbmx5OiI/IixodD10aGlz''@;'; + put 'put ''LmNyZWF0aW9uP0F0LXRoaXMuY3JlYXRpb24uZ2V0VGltZSgpKyJtcyI6Ij8iLEJ0PXRoaXMubGFzdEFjY2Vzc2VkP0F0LXRoaXMubGFzdEFjY2Vzc2VkLmdldFRpbWUoKSsibXMiOiI/IjtyZXR1cm5gQ29va2llPSIke3RoaXMudG9TdHJpbmcoKX07IGhvc3RPbmx5PSR7bXR9OyBhQWdlPSR7''@;'; + put 'put ''QnR9OyBjQWdlPSR7aHR9ImB9dG9KU09OKCl7Y29uc3QgQXQ9e307Zm9yKGNvbnN0IG10IG9mICRlLnNlcmlhbGl6YWJsZVByb3BlcnRpZXMpdGhpc1ttdF0hPT1RZVttdF0mJigiZXhwaXJlcyI9PT1tdHx8ImNyZWF0aW9uIj09PW10fHwibGFzdEFjY2Vzc2VkIj09PW10P0F0W210XT1udWxs''@;'; + put 'put ''PT09dGhpc1ttdF0/bnVsbDoiSW5maW5pdHkiPT10aGlzW210XT8iSW5maW5pdHkiOnRoaXNbbXRdLnRvSVNPU3RyaW5nKCk6Im1heEFnZSI9PT1tdD9udWxsIT09dGhpc1ttdF0mJihBdFttdF09dGhpc1ttdF09PTEvMHx8dGhpc1ttdF09PS0xLzA/dGhpc1ttdF0udG9TdHJpbmcoKTp0aGlz''@;'; + put 'put ''W210XSk6dGhpc1ttdF0hPT1RZVttdF0mJihBdFttdF09dGhpc1ttdF0pKTtyZXR1cm4gQXR9Y2xvbmUoKXtyZXR1cm4gQ2UodGhpcy50b0pTT04oKSl9dmFsaWRhdGUoKXtpZighb2UudGVzdCh0aGlzLnZhbHVlKXx8ISh0aGlzLmV4cGlyZXM9PTEvMHx8dGhpcy5leHBpcmVzIGluc3RhbmNl''@;'; + put 'put ''b2YgRGF0ZXx8dGUodGhpcy5leHBpcmVzKSl8fG51bGwhPXRoaXMubWF4QWdlJiZ0aGlzLm1heEFnZTw9MHx8bnVsbCE9dGhpcy5wYXRoJiYhdmUudGVzdCh0aGlzLnBhdGgpKXJldHVybiExO2NvbnN0IEF0PXRoaXMuY2RvbWFpbigpO3JldHVybiEoQXQmJihBdC5tYXRjaCgvXC4kLyl8fG51''@;'; + put 'put ''bGw9PVcuZ2V0UHVibGljU3VmZml4KEF0KSkpfXNldEV4cGlyZXMoQXQpe3RoaXMuZXhwaXJlcz1BdCBpbnN0YW5jZW9mIERhdGU/QXQ6dGUoQXQpfHwiSW5maW5pdHkifXNldE1heEFnZShBdCl7dGhpcy5tYXhBZ2U9QXQ9PT0xLzB8fEF0PT09LTEvMD9BdC50b1N0cmluZygpOkF0fWNvb2tp''@;'; + put 'put ''ZVN0cmluZygpe2xldCBBdD10aGlzLnZhbHVlO3JldHVybiBudWxsPT1BdCYmKEF0PSIiKSwiIj09PXRoaXMua2V5P0F0OmAke3RoaXMua2V5fT0ke0F0fWB9dG9TdHJpbmcoKXtsZXQgQXQ9dGhpcy5jb29raWVTdHJpbmcoKTtyZXR1cm4gdGhpcy5leHBpcmVzIT0xLzAmJih0aGlzLmV4cGly''@;'; + put 'put ''ZXMgaW5zdGFuY2VvZiBEYXRlP0F0Kz1gOyBFeHBpcmVzPSR7eCh0aGlzLmV4cGlyZXMpfWA6QXQrPWA7IEV4cGlyZXM9JHt0aGlzLmV4cGlyZXN9YCksbnVsbCE9dGhpcy5tYXhBZ2UmJnRoaXMubWF4QWdlIT0xLzAmJihBdCs9YDsgTWF4LUFnZT0ke3RoaXMubWF4QWdlfWApLHRoaXMuZG9t''@;'; + put 'put ''YWluJiYhdGhpcy5ob3N0T25seSYmKEF0Kz1gOyBEb21haW49JHt0aGlzLmRvbWFpbn1gKSx0aGlzLnBhdGgmJihBdCs9YDsgUGF0aD0ke3RoaXMucGF0aH1gKSx0aGlzLnNlY3VyZSYmKEF0Kz0iOyBTZWN1cmUiKSx0aGlzLmh0dHBPbmx5JiYoQXQrPSI7IEh0dHBPbmx5IiksdGhpcy5zYW1l''@;'; + put 'put ''U2l0ZSYmIm5vbmUiIT09dGhpcy5zYW1lU2l0ZSYmKEF0Kz1gOyBTYW1lU2l0ZT0keyRlLnNhbWVTaXRlQ2Fub25pY2FsW3RoaXMuc2FtZVNpdGUudG9Mb3dlckNhc2UoKV18fHRoaXMuc2FtZVNpdGV9YCksdGhpcy5leHRlbnNpb25zJiZ0aGlzLmV4dGVuc2lvbnMuZm9yRWFjaChtdD0+e0F0''@;'; + put 'put ''Kz1gOyAke210fWB9KSxBdH1UVEwoQXQpe2lmKG51bGwhPXRoaXMubWF4QWdlKXJldHVybiB0aGlzLm1heEFnZTw9MD8wOjFlMyp0aGlzLm1heEFnZTtsZXQgbXQ9dGhpcy5leHBpcmVzO3JldHVybiBtdCE9MS8wPyhtdCBpbnN0YW5jZW9mIERhdGV8fChtdD10ZShtdCl8fDEvMCksbXQ9PTEv''@;'; + put 'put ''MD8xLzA6bXQuZ2V0VGltZSgpLShBdHx8RGF0ZS5ub3coKSkpOjEvMH1leHBpcnlUaW1lKEF0KXtpZihudWxsIT10aGlzLm1heEFnZSl7Y29uc3QgbXQ9QXR8fHRoaXMuY3JlYXRpb258fG5ldyBEYXRlLGh0PXRoaXMubWF4QWdlPD0wPy0xLzA6MWUzKnRoaXMubWF4QWdlO3JldHVybiBtdC5n''@;'; + put 'put ''ZXRUaW1lKCkraHR9cmV0dXJuIHRoaXMuZXhwaXJlcz09MS8wPzEvMDp0aGlzLmV4cGlyZXMuZ2V0VGltZSgpfWV4cGlyeURhdGUoQXQpe2NvbnN0IG10PXRoaXMuZXhwaXJ5VGltZShBdCk7cmV0dXJuIG10PT0xLzA/bmV3IERhdGUoU2UpOm10PT0tMS8wP25ldyBEYXRlKDApOm5ldyBEYXRl''@;'; + put 'put ''KG10KX1pc1BlcnNpc3RlbnQoKXtyZXR1cm4gbnVsbCE9dGhpcy5tYXhBZ2V8fHRoaXMuZXhwaXJlcyE9MS8wfWNhbm9uaWNhbGl6ZWREb21haW4oKXtyZXR1cm4gbnVsbD09dGhpcy5kb21haW4/bnVsbDpQKHRoaXMuZG9tYWluKX1jZG9tYWluKCl7cmV0dXJuIHRoaXMuY2Fub25pY2FsaXpl''@;'; + put 'put ''ZERvbWFpbigpfX0kZS5jb29raWVzQ3JlYXRlZD0wLCRlLnBhcnNlPUYsJGUuZnJvbUpTT049Q2UsJGUuc2VyaWFsaXphYmxlUHJvcGVydGllcz1PYmplY3Qua2V5cyhRZSksJGUuc2FtZVNpdGVMZXZlbD17c3RyaWN0OjMsbGF4OjIsbm9uZToxfSwkZS5zYW1lU2l0ZUNhbm9uaWNhbD17c3Ry''@;'; + put 'put ''aWN0OiJTdHJpY3QiLGxheDoiTGF4In07Y2xhc3MgZ3R7Y29uc3RydWN0b3IoQXQsbXQ9e3JlamVjdFB1YmxpY1N1ZmZpeGVzOiEwfSl7ImJvb2xlYW4iPT10eXBlb2YgbXQmJihtdD17cmVqZWN0UHVibGljU3VmZml4ZXM6bXR9KSx0aGlzLnJlamVjdFB1YmxpY1N1ZmZpeGVzPW10LnJlamVj''@;'; + put 'put ''dFB1YmxpY1N1ZmZpeGVzLHRoaXMuZW5hYmxlTG9vc2VNb2RlPSEhbXQubG9vc2VNb2RlLHRoaXMuYWxsb3dTcGVjaWFsVXNlRG9tYWluPSEhbXQuYWxsb3dTcGVjaWFsVXNlRG9tYWluLHRoaXMuc3RvcmU9QXR8fG5ldyBlZSx0aGlzLnByZWZpeFNlY3VyaXR5PWZ1bmN0aW9uKGh0KXtpZihu''@;'; + put 'put ''dWxsIT1odCl7Y29uc3QgQnQ9aHQudG9Mb3dlckNhc2UoKTtzd2l0Y2goQnQpe2Nhc2UgRWUuU1RSSUNUOmNhc2UgRWUuU0lMRU5UOmNhc2UgRWUuRElTQUJMRUQ6cmV0dXJuIEJ0fX1yZXR1cm4gRWUuU0lMRU5UfShtdC5wcmVmaXhTZWN1cml0eSksdGhpcy5fY2xvbmVTeW5jPXd0KCJjbG9u''@;'; + put 'put ''ZSIpLHRoaXMuX2ltcG9ydENvb2tpZXNTeW5jPXd0KCJfaW1wb3J0Q29va2llcyIpLHRoaXMuZ2V0Q29va2llc1N5bmM9d3QoImdldENvb2tpZXMiKSx0aGlzLmdldENvb2tpZVN0cmluZ1N5bmM9d3QoImdldENvb2tpZVN0cmluZyIpLHRoaXMuZ2V0U2V0Q29va2llU3RyaW5nc1N5bmM9d3Qo''@;'; + put 'put ''ImdldFNldENvb2tpZVN0cmluZ3MiKSx0aGlzLnJlbW92ZUFsbENvb2tpZXNTeW5jPXd0KCJyZW1vdmVBbGxDb29raWVzIiksdGhpcy5zZXRDb29raWVTeW5jPXd0KCJzZXRDb29raWUiKSx0aGlzLnNlcmlhbGl6ZVN5bmM9d3QoInNlcmlhbGl6ZSIpfXNldENvb2tpZShBdCxtdCxodCxCdCl7''@;'; + put 'put ''bGV0IG9uO2NvbnN0IF90PVBlKG10KTsiZnVuY3Rpb24iPT10eXBlb2YgaHQmJihCdD1odCxodD17fSk7Y29uc3QgdHQ9UChfdC5ob3N0bmFtZSksZXQ9aHQubG9vc2V8fHRoaXMuZW5hYmxlTG9vc2VNb2RlO2xldCBhdD1udWxsO2lmKGh0LnNhbWVTaXRlQ29udGV4dCYmKGF0PVRlKGh0LnNh''@;'; + put 'put ''bWVTaXRlQ29udGV4dCksIWF0KSlyZXR1cm4gQnQobmV3IEVycm9yKEllKSk7aWYoInN0cmluZyI9PXR5cGVvZiBBdHx8QXQgaW5zdGFuY2VvZiBTdHJpbmcpe2lmKCEoQXQ9JGUucGFyc2UoQXQse2xvb3NlOmV0fSkpKXJldHVybiBvbj1uZXcgRXJyb3IoIkNvb2tpZSBmYWlsZWQgdG8gcGFy''@;'; + put 'put ''c2UiKSxCdChodC5pZ25vcmVFcnJvcj9udWxsOm9uKX1lbHNlIGlmKCEoQXQgaW5zdGFuY2VvZiAkZSkpcmV0dXJuIG9uPW5ldyBFcnJvcigiRmlyc3QgYXJndW1lbnQgdG8gc2V0Q29va2llIG11c3QgYmUgYSBDb29raWUgb2JqZWN0IG9yIHN0cmluZyIpLEJ0KGh0Lmlnbm9yZUVycm9yP251''@;'; + put 'put ''bGw6b24pO2NvbnN0IEx0PWh0Lm5vd3x8bmV3IERhdGU7aWYodGhpcy5yZWplY3RQdWJsaWNTdWZmaXhlcyYmQXQuZG9tYWluJiZudWxsPT1XLmdldFB1YmxpY1N1ZmZpeChBdC5jZG9tYWluKCkpKXJldHVybiBvbj1uZXcgRXJyb3IoIkNvb2tpZSBoYXMgZG9tYWluIHNldCB0byBhIHB1Ymxp''@;'; + put 'put ''YyBzdWZmaXgiKSxCdChodC5pZ25vcmVFcnJvcj9udWxsOm9uKTtpZihBdC5kb21haW4pe2lmKCFWKHR0LEF0LmNkb21haW4oKSwhMSkpcmV0dXJuIG9uPW5ldyBFcnJvcihgQ29va2llIG5vdCBpbiB0aGlzIGhvc3QncyBkb21haW4uIENvb2tpZToke0F0LmNkb21haW4oKX0gUmVxdWVzdDok''@;'; + put 'put ''e3R0fWApLEJ0KGh0Lmlnbm9yZUVycm9yP251bGw6b24pO251bGw9PUF0Lmhvc3RPbmx5JiYoQXQuaG9zdE9ubHk9ITEpfWVsc2UgQXQuaG9zdE9ubHk9ITAsQXQuZG9tYWluPXR0O2lmKEF0LnBhdGgmJiIvIj09PUF0LnBhdGhbMF18fChBdC5wYXRoPVQoX3QucGF0aG5hbWUpLEF0LnBhdGhJ''@;'; + put 'put ''c0RlZmF1bHQ9ITApLCExPT09aHQuaHR0cCYmQXQuaHR0cE9ubHkpcmV0dXJuIG9uPW5ldyBFcnJvcigiQ29va2llIGlzIEh0dHBPbmx5IGFuZCB0aGlzIGlzbid0IGFuIEhUVFAgQVBJIiksQnQoaHQuaWdub3JlRXJyb3I/bnVsbDpvbik7aWYoIm5vbmUiIT09QXQuc2FtZVNpdGUmJmF0JiYi''@;'; + put 'put ''bm9uZSI9PT1hdClyZXR1cm4gb249bmV3IEVycm9yKCJDb29raWUgaXMgU2FtZVNpdGUgYnV0IHRoaXMgaXMgYSBjcm9zcy1vcmlnaW4gcmVxdWVzdCIpLEJ0KGh0Lmlnbm9yZUVycm9yP251bGw6b24pO2NvbnN0IEN0PXRoaXMucHJlZml4U2VjdXJpdHk9PT1FZS5TSUxFTlQ7aWYodGhpcy5w''@;'; + put 'put ''cmVmaXhTZWN1cml0eSE9PUVlLkRJU0FCTEVEKXtsZXQgSHQsR2U9ITE7aWYoIShVZT1BdCkua2V5LnN0YXJ0c1dpdGgoIl9fU2VjdXJlLSIpfHxVZS5zZWN1cmU/ZnVuY3Rpb24oVWUpe3JldHVybiFVZS5rZXkuc3RhcnRzV2l0aCgiX19Ib3N0LSIpfHxVZS5zZWN1cmUmJlVlLmhvc3RPbmx5''@;'; + put 'put ''JiZudWxsIT1VZS5wYXRoJiYiLyI9PT1VZS5wYXRofShBdCl8fChHZT0hMCxIdD0iQ29va2llIGhhcyBfX0hvc3QgcHJlZml4IGJ1dCBlaXRoZXIgU2VjdXJlIG9yIEhvc3RPbmx5IGF0dHJpYnV0ZSBpcyBub3Qgc2V0IG9yIFBhdGggaXMgbm90ICcvJyIpOihHZT0hMCxIdD0iQ29va2llIGhh''@;'; + put 'put ''cyBfX1NlY3VyZSBwcmVmaXggYnV0IFNlY3VyZSBhdHRyaWJ1dGUgaXMgbm90IHNldCIpLEdlKXJldHVybiBCdChodC5pZ25vcmVFcnJvcnx8Q3Q/bnVsbDpuZXcgRXJyb3IoSHQpKX12YXIgVWU7Y29uc3QgZnQ9dGhpcy5zdG9yZTtmdC51cGRhdGVDb29raWV8fChmdC51cGRhdGVDb29raWU9''@;'; + put 'put ''ZnVuY3Rpb24oSHQsR2UsVWUpe3RoaXMucHV0Q29va2llKEdlLFVlKX0pLGZ0LmZpbmRDb29raWUoQXQuZG9tYWluLEF0LnBhdGgsQXQua2V5LGZ1bmN0aW9uKEh0LEdlKXtpZihIdClyZXR1cm4gQnQoSHQpO2NvbnN0IFVlPWZ1bmN0aW9uKHl0KXtpZih5dClyZXR1cm4gQnQoeXQpO0J0KG51''@;'; + put 'put ''bGwsQXQpfTtpZihHZSl7aWYoITE9PT1odC5odHRwJiZHZS5odHRwT25seSlyZXR1cm4gSHQ9bmV3IEVycm9yKCJvbGQgQ29va2llIGlzIEh0dHBPbmx5IGFuZCB0aGlzIGlzbid0IGFuIEhUVFAgQVBJIiksQnQoaHQuaWdub3JlRXJyb3I/bnVsbDpIdCk7QXQuY3JlYXRpb249R2UuY3JlYXRp''@;'; + put 'put ''b24sQXQuY3JlYXRpb25JbmRleD1HZS5jcmVhdGlvbkluZGV4LEF0Lmxhc3RBY2Nlc3NlZD1MdCxmdC51cGRhdGVDb29raWUoR2UsQXQsVWUpfWVsc2UgQXQuY3JlYXRpb249QXQubGFzdEFjY2Vzc2VkPUx0LGZ0LnB1dENvb2tpZShBdCxVZSl9KX1nZXRDb29raWVzKEF0LG10LGh0KXtjb25z''@;'; + put 'put ''dCBCdD1QZShBdCk7ImZ1bmN0aW9uIj09dHlwZW9mIG10JiYoaHQ9bXQsbXQ9e30pO2NvbnN0IG9uPVAoQnQuaG9zdG5hbWUpLF90PUJ0LnBhdGhuYW1lfHwiLyI7bGV0IHR0PW10LnNlY3VyZTtudWxsIT10dHx8IUJ0LnByb3RvY29sfHwiaHR0cHM6IiE9QnQucHJvdG9jb2wmJiJ3c3M6IiE9''@;'; + put 'put ''QnQucHJvdG9jb2x8fCh0dD0hMCk7bGV0IGV0PTA7aWYobXQuc2FtZVNpdGVDb250ZXh0KXtjb25zdCBVZT1UZShtdC5zYW1lU2l0ZUNvbnRleHQpO2lmKGV0PSRlLnNhbWVTaXRlTGV2ZWxbVWVdLCFldClyZXR1cm4gaHQobmV3IEVycm9yKEllKSl9bGV0IGF0PW10Lmh0dHA7bnVsbD09YXQm''@;'; + put 'put ''JihhdD0hMCk7Y29uc3QgTHQ9bXQubm93fHxEYXRlLm5vdygpLEN0PSExIT09bXQuZXhwaXJlLGZ0PSEhbXQuYWxsUGF0aHMsSHQ9dGhpcy5zdG9yZTtmdW5jdGlvbiBHZShVZSl7aWYoVWUuaG9zdE9ubHkpe2lmKFVlLmRvbWFpbiE9b24pcmV0dXJuITF9ZWxzZSBpZighVihvbixVZS5kb21h''@;'; + put 'put ''aW4sITEpKXJldHVybiExO3JldHVybiEoIWZ0JiYhcShfdCxVZS5wYXRoKXx8VWUuc2VjdXJlJiYhdHR8fFVlLmh0dHBPbmx5JiYhYXR8fGV0JiYkZS5zYW1lU2l0ZUxldmVsW1VlLnNhbWVTaXRlfHwibm9uZSJdPmV0fHxDdCYmVWUuZXhwaXJ5VGltZSgpPD1MdCYmKEh0LnJlbW92ZUNvb2tp''@;'; + put 'put ''ZShVZS5kb21haW4sVWUucGF0aCxVZS5rZXksKCk9Pnt9KSwxKSl9SHQuZmluZENvb2tpZXMob24sZnQ/bnVsbDpfdCx0aGlzLmFsbG93U3BlY2lhbFVzZURvbWFpbiwoVWUseXQpPT57aWYoVWUpcmV0dXJuIGh0KFVlKTt5dD15dC5maWx0ZXIoR2UpLCExIT09bXQuc29ydCYmKHl0PXl0LnNv''@;'; + put 'put ''cnQoRGUpKTtjb25zdCBqdD1uZXcgRGF0ZTtmb3IoY29uc3QgUXQgb2YgeXQpUXQubGFzdEFjY2Vzc2VkPWp0O2h0KG51bGwseXQpfSl9Z2V0Q29va2llU3RyaW5nKC4uLkF0KXtjb25zdCBtdD1BdC5wb3AoKTtBdC5wdXNoKGZ1bmN0aW9uKGh0LEJ0KXtodD9tdChodCk6bXQobnVsbCxCdC5z''@;'; + put 'put ''b3J0KERlKS5tYXAob249Pm9uLmNvb2tpZVN0cmluZygpKS5qb2luKCI7ICIpKX0pLHRoaXMuZ2V0Q29va2llcy5hcHBseSh0aGlzLEF0KX1nZXRTZXRDb29raWVTdHJpbmdzKC4uLkF0KXtjb25zdCBtdD1BdC5wb3AoKTtBdC5wdXNoKGZ1bmN0aW9uKGh0LEJ0KXtodD9tdChodCk6bXQobnVs''@;'; + put 'put ''bCxCdC5tYXAob249Pm9uLnRvU3RyaW5nKCkpKX0pLHRoaXMuZ2V0Q29va2llcy5hcHBseSh0aGlzLEF0KX1zZXJpYWxpemUoQXQpe2xldCBtdD10aGlzLnN0b3JlLmNvbnN0cnVjdG9yLm5hbWU7Ik9iamVjdCI9PT1tdCYmKG10PW51bGwpO2NvbnN0IGh0PXt2ZXJzaW9uOmB0b3VnaC1jb29r''@;'; + put 'put ''aWVAJHtKfWAsc3RvcmVUeXBlOm10LHJlamVjdFB1YmxpY1N1ZmZpeGVzOiEhdGhpcy5yZWplY3RQdWJsaWNTdWZmaXhlcyxjb29raWVzOltdfTtpZighdGhpcy5zdG9yZS5nZXRBbGxDb29raWVzfHwiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5zdG9yZS5nZXRBbGxDb29raWVzKXJldHVybiBB''@;'; + put 'put ''dChuZXcgRXJyb3IoInN0b3JlIGRvZXMgbm90IHN1cHBvcnQgZ2V0QWxsQ29va2llcyBhbmQgY2Fubm90IGJlIHNlcmlhbGl6ZWQiKSk7dGhpcy5zdG9yZS5nZXRBbGxDb29raWVzKChCdCxvbik9PkJ0P0F0KEJ0KTooaHQuY29va2llcz1vbi5tYXAoX3Q9PihkZWxldGUoX3Q9X3QgaW5zdGFu''@;'; + put 'put ''Y2VvZiAkZT9fdC50b0pTT04oKTpfdCkuY3JlYXRpb25JbmRleCxfdCkpLEF0KG51bGwsaHQpKSl9dG9KU09OKCl7cmV0dXJuIHRoaXMuc2VyaWFsaXplU3luYygpfV9pbXBvcnRDb29raWVzKEF0LG10KXtsZXQgaHQ9QXQuY29va2llcztpZighaHR8fCFBcnJheS5pc0FycmF5KGh0KSlyZXR1''@;'; + put 'put ''cm4gbXQobmV3IEVycm9yKCJzZXJpYWxpemVkIGphciBoYXMgbm8gY29va2llcyBhcnJheSIpKTtodD1odC5zbGljZSgpO2NvbnN0IEJ0PW9uPT57aWYob24pcmV0dXJuIG10KG9uKTtpZighaHQubGVuZ3RoKXJldHVybiBtdChvbix0aGlzKTtsZXQgX3Q7dHJ5e190PUNlKGh0LnNoaWZ0KCkp''@;'; + put 'put ''fWNhdGNoKHR0KXtyZXR1cm4gbXQodHQpfWlmKG51bGw9PT1fdClyZXR1cm4gQnQobnVsbCk7dGhpcy5zdG9yZS5wdXRDb29raWUoX3QsQnQpfTtCdCgpfWNsb25lKEF0LG10KXsxPT09YXJndW1lbnRzLmxlbmd0aCYmKG10PUF0LEF0PW51bGwpLHRoaXMuc2VyaWFsaXplKChodCxCdCk9Pntp''@;'; + put 'put ''ZihodClyZXR1cm4gbXQoaHQpO2d0LmRlc2VyaWFsaXplKEJ0LEF0LG10KX0pfWNsb25lU3luYyhBdCl7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX2Nsb25lU3luYygpO2lmKCFBdC5zeW5jaHJvbm91cyl0aHJvdyBuZXcgRXJyb3IoIkNvb2tpZUphciBjbG9uZSBkZXN0''@;'; + put 'put ''aW5hdGlvbiBzdG9yZSBpcyBub3Qgc3luY2hyb25vdXM7IHVzZSBhc3luYyBBUEkgaW5zdGVhZC4iKTtyZXR1cm4gdGhpcy5fY2xvbmVTeW5jKEF0KX1yZW1vdmVBbGxDb29raWVzKEF0KXtjb25zdCBtdD10aGlzLnN0b3JlO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBtdC5yZW1vdmVBbGxDb29r''@;'; + put 'put ''aWVzJiZtdC5yZW1vdmVBbGxDb29raWVzIT09Ti5wcm90b3R5cGUucmVtb3ZlQWxsQ29va2llcylyZXR1cm4gbXQucmVtb3ZlQWxsQ29va2llcyhBdCk7bXQuZ2V0QWxsQ29va2llcygoaHQsQnQpPT57aWYoaHQpcmV0dXJuIEF0KGh0KTtpZigwPT09QnQubGVuZ3RoKXJldHVybiBBdChudWxs''@;'; + put 'put ''KTtsZXQgb249MDtjb25zdCBfdD1bXTtmdW5jdGlvbiB0dChldCl7aWYoZXQmJl90LnB1c2goZXQpLG9uKyssb249PT1CdC5sZW5ndGgpcmV0dXJuIEF0KF90Lmxlbmd0aD9fdFswXTpudWxsKX1CdC5mb3JFYWNoKGV0PT57bXQucmVtb3ZlQ29va2llKGV0LmRvbWFpbixldC5wYXRoLGV0Lmtl''@;'; + put 'put ''eSx0dCl9KX0pfXN0YXRpYyBkZXNlcmlhbGl6ZShBdCxtdCxodCl7bGV0IEJ0O2lmKDMhPT1hcmd1bWVudHMubGVuZ3RoJiYoaHQ9bXQsbXQ9bnVsbCksInN0cmluZyI9PXR5cGVvZiBBdCl7aWYoQnQ9eWUoQXQpLEJ0IGluc3RhbmNlb2YgRXJyb3IpcmV0dXJuIGh0KEJ0KX1lbHNlIEJ0PUF0''@;'; + put 'put ''O2NvbnN0IG9uPW5ldyBndChtdCxCdC5yZWplY3RQdWJsaWNTdWZmaXhlcyk7b24uX2ltcG9ydENvb2tpZXMoQnQsX3Q9PntpZihfdClyZXR1cm4gaHQoX3QpO2h0KG51bGwsb24pfSl9c3RhdGljIGRlc2VyaWFsaXplU3luYyhBdCxtdCl7Y29uc3QgaHQ9InN0cmluZyI9PXR5cGVvZiBBdD9K''@;'; + put 'put ''U09OLnBhcnNlKEF0KTpBdCxCdD1uZXcgZ3QobXQsaHQucmVqZWN0UHVibGljU3VmZml4ZXMpO2lmKCFCdC5zdG9yZS5zeW5jaHJvbm91cyl0aHJvdyBuZXcgRXJyb3IoIkNvb2tpZUphciBzdG9yZSBpcyBub3Qgc3luY2hyb25vdXM7IHVzZSBhc3luYyBBUEkgaW5zdGVhZC4iKTtyZXR1cm4g''@;'; + put 'put ''QnQuX2ltcG9ydENvb2tpZXNTeW5jKGh0KSxCdH19ZnVuY3Rpb24gd3QodnQpe3JldHVybiBmdW5jdGlvbiguLi5BdCl7aWYoIXRoaXMuc3RvcmUuc3luY2hyb25vdXMpdGhyb3cgbmV3IEVycm9yKCJDb29raWVKYXIgc3RvcmUgaXMgbm90IHN5bmNocm9ub3VzOyB1c2UgYXN5bmMgQVBJIGlu''@;'; + put 'put ''c3RlYWQuIik7bGV0IG10LGh0O2lmKHRoaXNbdnRdKC4uLkF0LChCdCxvbik9PnttdD1CdCxodD1vbn0pLG10KXRocm93IG10O3JldHVybiBodH19Z3QuZnJvbUpTT049Z3QuZGVzZXJpYWxpemVTeW5jLFsiX2ltcG9ydENvb2tpZXMiLCJjbG9uZSIsImdldENvb2tpZXMiLCJnZXRDb29raWVT''@;'; + put 'put ''dHJpbmciLCJnZXRTZXRDb29raWVTdHJpbmdzIiwicmVtb3ZlQWxsQ29va2llcyIsInNlcmlhbGl6ZSIsInNldENvb2tpZSJdLmZvckVhY2godnQ9PntndC5wcm90b3R5cGVbdnRdPXNlKGd0LnByb3RvdHlwZVt2dF0pfSksZ3QuZGVzZXJpYWxpemU9c2UoZ3QuZGVzZXJpYWxpemUpLFEudmVy''@;'; + put 'put ''c2lvbj1KLFEuQ29va2llSmFyPWd0LFEuQ29va2llPSRlLFEuU3RvcmU9TixRLk1lbW9yeUNvb2tpZVN0b3JlPWVlLFEucGFyc2VEYXRlPXRlLFEuZm9ybWF0RGF0ZT14LFEucGFyc2U9RixRLmZyb21KU09OPUNlLFEuZG9tYWluTWF0Y2g9VixRLmRlZmF1bHRQYXRoPVQsUS5wYXRoTWF0Y2g9''@;'; + put 'put ''cSxRLmdldFB1YmxpY1N1ZmZpeD1XLmdldFB1YmxpY1N1ZmZpeCxRLmNvb2tpZUNvbXBhcmU9RGUsUS5wZXJtdXRlRG9tYWluPVooNzMyNCkucGVybXV0ZURvbWFpbixRLnBlcm11dGVQYXRoPWZ1bmN0aW9uKHZ0KXtpZigiLyI9PT12dClyZXR1cm5bIi8iXTtjb25zdCBBdD1bdnRdO2Zvcig7''@;'; + put 'put ''dnQubGVuZ3RoPjE7KXtjb25zdCBtdD12dC5sYXN0SW5kZXhPZigiLyIpO2lmKDA9PT1tdClicmVhazt2dD12dC5zdWJzdHIoMCxtdCksQXQucHVzaCh2dCl9cmV0dXJuIEF0LnB1c2goIi8iKSxBdH0sUS5jYW5vbmljYWxEb21haW49UCxRLlByZWZpeFNlY3VyaXR5RW51bT1FZX0sNTc2MToo''@;'; + put 'put ''VSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0e2Zyb21DYWxsYmFjazppZX09Wig3MDQxKSxsZT1aKDIyMjQpLnksWT1aKDczMjQpLnBlcm11dGVEb21haW4sVz1aKDg5NzEpLlUsTj1aKDk1MzkpO2NsYXNzIGVlIGV4dGVuZHMgbGV7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuc3luY2hy''@;'; + put 'put ''b25vdXM9ITAsdGhpcy5pZHg9e30sTi5pbnNwZWN0LmN1c3RvbSYmKHRoaXNbTi5pbnNwZWN0LmN1c3RvbV09dGhpcy5pbnNwZWN0KX1pbnNwZWN0KCl7cmV0dXJuYHsgaWR4OiAke04uaW5zcGVjdCh0aGlzLmlkeCwhMSwyKX0gfWB9ZmluZENvb2tpZShKLHNlLG9lLGNlKXtyZXR1cm4gY2Uo''@;'; + put 'put ''bnVsbCx0aGlzLmlkeFtKXSYmdGhpcy5pZHhbSl1bc2VdP3RoaXMuaWR4W0pdW3NlXVtvZV18fG51bGw6dm9pZCAwKX1maW5kQ29va2llcyhKLHNlLG9lLGNlKXtjb25zdCBkZT1bXTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygb2UmJihjZT1vZSxvZT0hMSksIUopcmV0dXJuIGNlKG51bGwsW10p''@;'; + put 'put ''O2xldCB2ZTt2ZT1zZT9mdW5jdGlvbihTZSl7T2JqZWN0LmtleXMoU2UpLmZvckVhY2goSWU9PntpZihXKHNlLEllKSl7Y29uc3QgVGU9U2VbSWVdO2Zvcihjb25zdCBFZSBpbiBUZSlkZS5wdXNoKFRlW0VlXSl9fSl9OmZ1bmN0aW9uKFNlKXtmb3IoY29uc3QgSWUgaW4gU2Upe2NvbnN0IFRl''@;'; + put 'put ''PVNlW0llXTtmb3IoY29uc3QgRWUgaW4gVGUpZGUucHVzaChUZVtFZV0pfX07Y29uc3QgQWU9WShKLG9lKXx8W0pdLGtlPXRoaXMuaWR4O0FlLmZvckVhY2goU2U9Pntjb25zdCBJZT1rZVtTZV07SWUmJnZlKEllKX0pLGNlKG51bGwsZGUpfXB1dENvb2tpZShKLHNlKXt0aGlzLmlkeFtKLmRv''@;'; + put 'put ''bWFpbl18fCh0aGlzLmlkeFtKLmRvbWFpbl09e30pLHRoaXMuaWR4W0ouZG9tYWluXVtKLnBhdGhdfHwodGhpcy5pZHhbSi5kb21haW5dW0oucGF0aF09e30pLHRoaXMuaWR4W0ouZG9tYWluXVtKLnBhdGhdW0oua2V5XT1KLHNlKG51bGwpfXVwZGF0ZUNvb2tpZShKLHNlLG9lKXt0aGlzLnB1''@;'; + put 'put ''dENvb2tpZShzZSxvZSl9cmVtb3ZlQ29va2llKEosc2Usb2UsY2Upe3RoaXMuaWR4W0pdJiZ0aGlzLmlkeFtKXVtzZV0mJnRoaXMuaWR4W0pdW3NlXVtvZV0mJmRlbGV0ZSB0aGlzLmlkeFtKXVtzZV1bb2VdLGNlKG51bGwpfXJlbW92ZUNvb2tpZXMoSixzZSxvZSl7cmV0dXJuIHRoaXMuaWR4''@;'; + put 'put ''W0pdJiYoc2U/ZGVsZXRlIHRoaXMuaWR4W0pdW3NlXTpkZWxldGUgdGhpcy5pZHhbSl0pLG9lKG51bGwpfXJlbW92ZUFsbENvb2tpZXMoSil7cmV0dXJuIHRoaXMuaWR4PXt9LEoobnVsbCl9Z2V0QWxsQ29va2llcyhKKXtjb25zdCBzZT1bXSxvZT10aGlzLmlkeDtPYmplY3Qua2V5cyhvZSku''@;'; + put 'put ''Zm9yRWFjaChjZT0+e09iamVjdC5rZXlzKG9lW2NlXSkuZm9yRWFjaChkZT0+e09iamVjdC5rZXlzKG9lW2NlXVtkZV0pLmZvckVhY2godmU9PntudWxsIT09dmUmJnNlLnB1c2gob2VbY2VdW2RlXVt2ZV0pfSl9KX0pLHNlLnNvcnQoKGNlLGRlKT0+KGNlLmNyZWF0aW9uSW5kZXh8fDApLShk''@;'; + put 'put ''ZS5jcmVhdGlvbkluZGV4fHwwKSksSihudWxsLHNlKX19WyJmaW5kQ29va2llIiwiZmluZENvb2tpZXMiLCJwdXRDb29raWUiLCJ1cGRhdGVDb29raWUiLCJyZW1vdmVDb29raWUiLCJyZW1vdmVDb29raWVzIiwicmVtb3ZlQWxsQ29va2llcyIsImdldEFsbENvb2tpZXMiXS5mb3JFYWNoKHE9''@;'; + put 'put ''PntlZVtxXT1pZShlZS5wcm90b3R5cGVbcV0pfSksUS5tPWVlfSw4OTcxOihVLFEpPT57InVzZSBzdHJpY3QiO1EuVT1mdW5jdGlvbihaLGllKXtyZXR1cm4gaWU9PT1afHwwPT09Wi5pbmRleE9mKGllKSYmKCIvIj09PWllLnN1YnN0cigtMSl8fCIvIj09PVouc3Vic3RyKGllLmxlbmd0aCwx''@;'; + put 'put ''KSl9fSw3MzI0OihVLFEsWik9PnsidXNlIHN0cmljdCI7Y29uc3QgaWU9Wig3NTIpLGxlPVsibG9jYWwiXTtRLnBlcm11dGVEb21haW49ZnVuY3Rpb24oWSxXKXtsZXQgTj1udWxsO2lmKFcpe2NvbnN0IHNlPVkuc3BsaXQoIi4iKTtOPWxlLmluY2x1ZGVzKHNlW3NlLmxlbmd0aC0xXSk/YCR7''@;'; + put 'put ''c2Vbc2UubGVuZ3RoLTJdfS4ke3NlW3NlLmxlbmd0aC0xXX1gOmllLmdldFB1YmxpY1N1ZmZpeChZKX1lbHNlIE49aWUuZ2V0UHVibGljU3VmZml4KFkpO2lmKCFOKXJldHVybiBudWxsO2lmKE49PVkpcmV0dXJuW1ldO2NvbnN0IGVlPVkuc2xpY2UoMCwtKE4ubGVuZ3RoKzEpKS5zcGxpdCgi''@;'; + put 'put ''LiIpLnJldmVyc2UoKTtsZXQgcT1OO2NvbnN0IEo9W3FdO2Zvcig7ZWUubGVuZ3RoOylxPWAke2VlLnNoaWZ0KCl9LiR7cX1gLEoucHVzaChxKTtyZXR1cm4gSn19LDc1MjooVSxRLFopPT57InVzZSBzdHJpY3QiO2NvbnN0IGllPVooNjI0NCk7US5nZXRQdWJsaWNTdWZmaXg9ZnVuY3Rpb24o''@;'; + put 'put ''bGUpe3JldHVybiBpZS5nZXQobGUpfX0sMjIyNDooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtRLnk9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN5bmNocm9ub3VzPSExfWZpbmRDb29raWUoWixpZSxsZSxZKXt0aHJvdyBuZXcgRXJyb3IoImZpbmRDb29raWUgaXMgbm90IGltcGxlbWVudGVkIil9''@;'; + put 'put ''ZmluZENvb2tpZXMoWixpZSxsZSxZKXt0aHJvdyBuZXcgRXJyb3IoImZpbmRDb29raWVzIGlzIG5vdCBpbXBsZW1lbnRlZCIpfXB1dENvb2tpZShaLGllKXt0aHJvdyBuZXcgRXJyb3IoInB1dENvb2tpZSBpcyBub3QgaW1wbGVtZW50ZWQiKX11cGRhdGVDb29raWUoWixpZSxsZSl7dGhyb3cg''@;'; + put 'put ''bmV3IEVycm9yKCJ1cGRhdGVDb29raWUgaXMgbm90IGltcGxlbWVudGVkIil9cmVtb3ZlQ29va2llKFosaWUsbGUsWSl7dGhyb3cgbmV3IEVycm9yKCJyZW1vdmVDb29raWUgaXMgbm90IGltcGxlbWVudGVkIil9cmVtb3ZlQ29va2llcyhaLGllLGxlKXt0aHJvdyBuZXcgRXJyb3IoInJlbW92''@;'; + put 'put ''ZUNvb2tpZXMgaXMgbm90IGltcGxlbWVudGVkIil9cmVtb3ZlQWxsQ29va2llcyhaKXt0aHJvdyBuZXcgRXJyb3IoInJlbW92ZUFsbENvb2tpZXMgaXMgbm90IGltcGxlbWVudGVkIil9Z2V0QWxsQ29va2llcyhaKXt0aHJvdyBuZXcgRXJyb3IoImdldEFsbENvb2tpZXMgaXMgbm90IGltcGxl''@;'; + put 'put ''bWVudGVkICh0aGVyZWZvcmUgamFyIGNhbm5vdCBiZSBzZXJpYWxpemVkKSIpfX19LDQ1NjpVPT57VS5leHBvcnRzPSI0LjAuMCJ9LDcwNDE6KFUsUSk9PnsidXNlIHN0cmljdCI7US5mcm9tQ2FsbGJhY2s9ZnVuY3Rpb24oWil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlv''@;'; + put 'put ''bigpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aC0xXSlyZXR1cm4gbmV3IFByb21pc2UoKGllLGxlKT0+e2FyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoXT0oWSxXKT0+e2lmKFkpcmV0dXJuIGxlKFkpO2llKFcpfSxhcmd1bWVudHMubGVuZ3RoKyss''@;'; + put 'put ''Wi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KTtaLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sIm5hbWUiLHt2YWx1ZTpaLm5hbWV9KX0sUS5mcm9tUHJvbWlzZT1mdW5jdGlvbihaKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKCl7Y29uc3QgaWU9YXJndW1lbnRzW2FyZ3Vt''@;'; + put 'put ''ZW50cy5sZW5ndGgtMV07aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGllKXJldHVybiBaLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtaLmFwcGx5KHRoaXMsYXJndW1lbnRzKS50aGVuKGxlPT5pZShudWxsLGxlKSxpZSl9LCJuYW1lIix7dmFsdWU6Wi5uYW1lfSl9fSw2NzI6ZnVuY3Rpb24oVSxRLFop''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gaWU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24ocSl7Zm9yKHZhciBKLHNlPTEsb2U9YXJndW1lbnRzLmxlbmd0aDtzZTxvZTtzZSsrKWZvcih2YXIgY2UgaW4gSj1hcmd1bWVudHNbc2Vd''@;'; + put 'put ''KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChKLGNlKSYmKHFbY2VdPUpbY2VdKTtyZXR1cm4gcX0saWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxsZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24ocSxKLHNlLG9lKXtyZXR1cm4gbmV3KHNlfHwoc2U9UHJvbWlz''@;'; + put 'put ''ZSkpKGZ1bmN0aW9uKGNlLGRlKXtmdW5jdGlvbiB2ZShTZSl7dHJ5e2tlKG9lLm5leHQoU2UpKX1jYXRjaChJZSl7ZGUoSWUpfX1mdW5jdGlvbiBBZShTZSl7dHJ5e2tlKG9lLnRocm93KFNlKSl9Y2F0Y2goSWUpe2RlKEllKX19ZnVuY3Rpb24ga2UoU2Upe3ZhciBJZTtTZS5kb25lP2NlKFNl''@;'; + put 'put ''LnZhbHVlKTooSWU9U2UudmFsdWUsSWUgaW5zdGFuY2VvZiBzZT9JZTpuZXcgc2UoZnVuY3Rpb24oVGUpe1RlKEllKX0pKS50aGVuKHZlLEFlKX1rZSgob2U9b2UuYXBwbHkocSxKfHxbXSkpLm5leHQoKSl9KX0sWT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihxLEope3ZhciBz''@;'; + put 'put ''ZSxvZSxjZSxkZSx2ZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZjZVswXSl0aHJvdyBjZVsxXTtyZXR1cm4gY2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gZGU9e25leHQ6QWUoMCksdGhyb3c6QWUoMSkscmV0dXJuOkFlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9s''@;'; + put 'put ''JiYoZGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksZGU7ZnVuY3Rpb24gQWUoa2Upe3JldHVybiBmdW5jdGlvbihTZSl7cmV0dXJuIGZ1bmN0aW9uKEllKXtpZihzZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcu''@;'; + put 'put ''Iik7Zm9yKDt2ZTspdHJ5e2lmKHNlPTEsb2UmJihjZT0yJkllWzBdP29lLnJldHVybjpJZVswXT9vZS50aHJvd3x8KChjZT1vZS5yZXR1cm4pJiZjZS5jYWxsKG9lKSwwKTpvZS5uZXh0KSYmIShjZT1jZS5jYWxsKG9lLEllWzFdKSkuZG9uZSlyZXR1cm4gY2U7c3dpdGNoKG9lPTAsY2UmJihJ''@;'; + put 'put ''ZT1bMiZJZVswXSxjZS52YWx1ZV0pLEllWzBdKXtjYXNlIDA6Y2FzZSAxOmNlPUllO2JyZWFrO2Nhc2UgNDpyZXR1cm4gdmUubGFiZWwrKyx7dmFsdWU6SWVbMV0sZG9uZTohMX07Y2FzZSA1OnZlLmxhYmVsKyssb2U9SWVbMV0sSWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpJZT12ZS5vcHMucG9w''@;'; + put 'put ''KCksdmUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGNlPShjZT12ZS50cnlzKS5sZW5ndGg+MCYmY2VbY2UubGVuZ3RoLTFdKXx8NiE9PUllWzBdJiYyIT09SWVbMF0pKXt2ZT0wO2NvbnRpbnVlfWlmKDM9PT1JZVswXSYmKCFjZXx8SWVbMV0+Y2VbMF0mJkllWzFdPGNlWzNd''@;'; + put 'put ''KSl7dmUubGFiZWw9SWVbMV07YnJlYWt9aWYoNj09PUllWzBdJiZ2ZS5sYWJlbDxjZVsxXSl7dmUubGFiZWw9Y2VbMV0sY2U9SWU7YnJlYWt9aWYoY2UmJnZlLmxhYmVsPGNlWzJdKXt2ZS5sYWJlbD1jZVsyXSx2ZS5vcHMucHVzaChJZSk7YnJlYWt9Y2VbMl0mJnZlLm9wcy5wb3AoKSx2ZS50''@;'; + put 'put ''cnlzLnBvcCgpO2NvbnRpbnVlfUllPUouY2FsbChxLHZlKX1jYXRjaChUZSl7SWU9WzYsVGVdLG9lPTB9ZmluYWxseXtzZT1jZT0wfWlmKDUmSWVbMF0pdGhyb3cgSWVbMV07cmV0dXJue3ZhbHVlOkllWzBdP0llWzFdOnZvaWQgMCxkb25lOiEwfX0oW2tlLFNlXSl9fX07T2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuQ29udGV4dE1hbmFnZXI9dm9pZCAwO3ZhciBXPVooNTkyOCksTj1aKDk3NzgpLGVlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcShKLHNlKXt0aGlzLnNlcnZlclVybD1KLHRoaXMucmVxdWVzdENsaWVudD1zZSx0aGlzLmRlZmF1''@;'; + put 'put ''bHRDb21wdXRlQ29udGV4dHM9WyJDQVMgRm9ybWF0cyBzZXJ2aWNlIGNvbXB1dGUgY29udGV4dCIsIkRhdGEgTWluaW5nIGNvbXB1dGUgY29udGV4dCIsIkltcG9ydCA5IHNlcnZpY2UgY29tcHV0ZSBjb250ZXh0IiwiU0FTIEpvYiBFeGVjdXRpb24gY29tcHV0ZSBjb250ZXh0IiwiU0FTIE1v''@;'; + put 'put ''ZGVsIE1hbmFnZXIgY29tcHV0ZSBjb250ZXh0IiwiU0FTIFN0dWRpbyBjb21wdXRlIGNvbnRleHQiLCJTQVMgVmlzdWFsIEZvcmVjYXN0aW5nIGNvbXB1dGUgY29udGV4dCJdLHRoaXMuZGVmYXVsdExhdW5jaGVyQ29udGV4dHM9WyJDQVMgRm9ybWF0cyBzZXJ2aWNlIGxhdW5jaGVyIGNvbnRl''@;'; + put 'put ''eHQiLCJEYXRhIE1pbmluZyBsYXVuY2hlciBjb250ZXh0IiwiSW1wb3J0IDkgc2VydmljZSBsYXVuY2hlciBjb250ZXh0IiwiSm9iIEZsb3cgRXhlY3V0aW9uIGxhdW5jaGVyIGNvbnRleHQiLCJTQVMgSm9iIEV4ZWN1dGlvbiBsYXVuY2hlciBjb250ZXh0IiwiU0FTIE1vZGVsIE1hbmFnZXIg''@;'; + put 'put ''bGF1bmNoZXIgY29udGV4dCIsIlNBUyBTdHVkaW8gbGF1bmNoZXIgY29udGV4dCIsIlNBUyBWaXN1YWwgRm9yZWNhc3RpbmcgbGF1bmNoZXIgY29udGV4dCJdLEomJigwLFcuaXNVcmwpKEopfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocS5wcm90b3R5cGUsImdldERlZmF1bHRDb21w''@;'; + put 'put ''dXRlQ29udGV4dHMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWZhdWx0Q29tcHV0ZUNvbnRleHRzfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShxLnByb3RvdHlwZSwiZ2V0RGVmYXVsdExhdW5jaGVyQ29udGV4dHMiLHtnZXQ6''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWZhdWx0TGF1bmNoZXJDb250ZXh0c30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxxLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dHM9ZnVuY3Rpb24oSil7cmV0dXJuIGxlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciBzZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKG9lKXtzd2l0Y2gob2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHM/bGltaXQ9MTAwMDAiKSxKKS5jYXRjaChmdW5jdGlvbihj''@;'; + put 'put ''ZSl7dGhyb3coMCxOLnByZWZpeE1lc3NhZ2UpKGNlLCJFcnJvciB3aGlsZSBnZXR0aW5nIGNvbXB1dGUgY29udGV4dHMuICIpfSldO2Nhc2UgMTpyZXR1cm5bMiwoKHNlPW9lLnNlbnQoKS5yZXN1bHQpJiZzZS5pdGVtcz9zZS5pdGVtczpbXSkubWFwKGZ1bmN0aW9uKGNlKXtyZXR1cm57Y3Jl''@;'; + put 'put ''YXRlZEJ5OmNlLmNyZWF0ZWRCeSxpZDpjZS5pZCxuYW1lOmNlLm5hbWUsdmVyc2lvbjpjZS52ZXJzaW9uLGF0dHJpYnV0ZXM6e319fSldfX0pfSl9LHEucHJvdG90eXBlLmdldExhdW5jaGVyQ29udGV4dHM9ZnVuY3Rpb24oSil7cmV0dXJuIGxlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlv''@;'; + put 'put ''bigpe3ZhciBzZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKG9lKXtzd2l0Y2gob2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2xhdW5jaGVyL2NvbnRleHRzP2xpbWl0PTEwMDAwIiksSikuY2F0Y2goZnVu''@;'; + put 'put ''Y3Rpb24oY2Upe3Rocm93KDAsTi5wcmVmaXhNZXNzYWdlKShjZSwiRXJyb3Igd2hpbGUgZ2V0dGluZyBsYXVuY2hlciBjb250ZXh0cy4gIil9KV07Y2FzZSAxOnJldHVyblsyLCgoc2U9b2Uuc2VudCgpLnJlc3VsdCkmJnNlLml0ZW1zP3NlLml0ZW1zOltdKS5tYXAoZnVuY3Rpb24oY2Upe3Jl''@;'; + put 'put ''dHVybntjcmVhdGVkQnk6Y2UuY3JlYXRlZEJ5LGlkOmNlLmlkLG5hbWU6Y2UubmFtZSx2ZXJzaW9uOmNlLnZlcnNpb24sYXR0cmlidXRlczp7fX19KV19fSl9KX0scS5wcm90b3R5cGUuY3JlYXRlQ29tcHV0ZUNvbnRleHQ9ZnVuY3Rpb24oSixzZSxvZSxjZSxkZSx2ZSl7cmV0dXJuIGxlKHRo''@;'; + put 'put ''aXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBBZSxrZSxTZSxJZSxUZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKEVlKXtzd2l0Y2goRWUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy52YWxpZGF0ZUNvbnRleHROYW1lKEopLHRoaXMuaXNEZWZhdWx0Q29udGV4dChKLHRoaXMuZGVm''@;'; + put 'put ''YXVsdENvbXB1dGVDb250ZXh0cywiQ29tcHV0ZSBjb250ZXh0ICciLmNvbmNhdChKLCInIGFscmVhZHkgZXhpc3RzLiIpKSxbNCx0aGlzLmdldENvbXB1dGVDb250ZXh0cyhkZSldO2Nhc2UgMTppZihFZS5zZW50KCkuZmluZChmdW5jdGlvbihoZSl7cmV0dXJuIGhlLm5hbWU9PT1KfSkpdGhy''@;'; + put 'put ''b3cgbmV3IEVycm9yKCJDb21wdXRlIGNvbnRleHQgJyIuY29uY2F0KEosIicgYWxyZWFkeSBleGlzdHMuIikpO3JldHVybiBzZT90aGlzLmRlZmF1bHRMYXVuY2hlckNvbnRleHRzLmluY2x1ZGVzKHNlKT9bMyw0XTpbNCx0aGlzLmdldExhdW5jaGVyQ29udGV4dHMoZGUpXTpbMyw0XTtjYXNl''@;'; + put 'put ''IDI6cmV0dXJuIEVlLnNlbnQoKS5maW5kKGZ1bmN0aW9uKGhlKXtyZXR1cm4gaGUubmFtZT09PXNlfSk/WzMsNF06KEFlPSJUaGUgbGF1bmNoZXIgY29udGV4dCBmb3IgIi5jb25jYXQoc2UpLFs0LHRoaXMuY3JlYXRlTGF1bmNoZXJDb250ZXh0KHNlLEFlLCJkaXJlY3QiLGRlKS5jYXRjaChm''@;'; + put 'put ''dW5jdGlvbihoZSl7dGhyb3cgbmV3IEVycm9yKCJFcnJvciB3aGlsZSBjcmVhdGluZyBsYXVuY2hlciBjb250ZXh0LiAiLmNvbmNhdChoZSkpfSldKTtjYXNlIDM6aWYoIShrZT1FZS5zZW50KCkpfHwha2UubmFtZSl0aHJvdyBuZXcgRXJyb3IoIkVycm9yIHdoaWxlIGNyZWF0aW5nIGxhdW5j''@;'; + put 'put ''aGVyIGNvbnRleHQuIik7c2U9a2UubmFtZSxFZS5sYWJlbD00O2Nhc2UgNDpyZXR1cm4gU2U9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sZGUmJihTZS5BdXRob3JpemF0aW9uPSJCZWFyZXIgIi5jb25jYXQoZGUpKSxJZT17cmV1c2VTZXJ2ZXJQcm9jZXNzZXM6ITB9LG9l''@;'; + put 'put ''JiYoSWU9aWUoaWUoe30sSWUpLHtydW5TZXJ2ZXJBczpvZX0pKSxUZT17bmFtZTpKLGxhdW5jaENvbnRleHQ6e2NvbnRleHROYW1lOnNlfHwiIn0sYXR0cmlidXRlczpJZX0sdmUmJnZlLmxlbmd0aD9UZS5hdXRob3JpemVkVXNlcnM9dmU6VGUuYXV0aG9yaXplQWxsQXV0aGVudGljYXRlZFVz''@;'; + put 'put ''ZXJzPSEwLGNlJiYoVGUuZW52aXJvbm1lbnQ9e2F1dG9FeGVjTGluZXM6Y2V9KSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9jb21wdXRlL2NvbnRleHRzIiksVGUsZGUpLmNhdGNoKGZ1bmN0aW9uKGhlKXt0aHJvdygwLE4ucHJlZml4TWVz''@;'; + put 'put ''c2FnZSkoaGUsIkVycm9yIHdoaWxlIGNyZWF0aW5nIGNvbXB1dGUgY29udGV4dC4gIil9KV07Y2FzZSA1OnJldHVyblsyLEVlLnNlbnQoKS5yZXN1bHRdfX0pfSl9LHEucHJvdG90eXBlLmNyZWF0ZUxhdW5jaGVyQ29udGV4dD1mdW5jdGlvbihKLHNlLG9lLGNlKXtyZXR1cm4gdm9pZCAwPT09''@;'; + put 'put ''b2UmJihvZT0iZGlyZWN0IiksbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGRlLHZlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oQWUpe3N3aXRjaChBZS5sYWJlbCl7Y2FzZSAwOmlmKCFKKXRocm93IG5ldyBFcnJvcigiQ29udGV4dCBuYW1lIGlzIHJlcXVpcmVkLiIpO3Jl''@;'; + put 'put ''dHVybiB0aGlzLmlzRGVmYXVsdENvbnRleHQoSix0aGlzLmRlZmF1bHRMYXVuY2hlckNvbnRleHRzLCJMYXVuY2hlciBjb250ZXh0ICciLmNvbmNhdChKLCInIGFscmVhZHkgZXhpc3RzLiIpKSxbNCx0aGlzLmdldExhdW5jaGVyQ29udGV4dHMoY2UpXTtjYXNlIDE6aWYoQWUuc2VudCgpLmZp''@;'; + put 'put ''bmQoZnVuY3Rpb24oa2Upe3JldHVybiBrZS5uYW1lPT09Sn0pKXRocm93IG5ldyBFcnJvcigiTGF1bmNoZXIgY29udGV4dCAnIi5jb25jYXQoSiwiJyBhbHJlYWR5IGV4aXN0cy4iKSk7cmV0dXJuIGRlPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNlJiYoZGUuQXV0aG9y''@;'; + put 'put ''aXphdGlvbj0iQmVhcmVyICIuY29uY2F0KGNlKSksdmU9e25hbWU6SixkZXNjcmlwdGlvbjpzZSxsYXVuY2hUeXBlOm9lfSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9sYXVuY2hlci9jb250ZXh0cyIpLHZlLGNlKS5jYXRjaChmdW5jdGlv''@;'; + put 'put ''bihrZSl7dGhyb3coMCxOLnByZWZpeE1lc3NhZ2UpKGtlLCJFcnJvciB3aGlsZSBjcmVhdGluZyBsYXVuY2hlciBjb250ZXh0LiAiKX0pXTtjYXNlIDI6cmV0dXJuWzIsQWUuc2VudCgpLnJlc3VsdF19fSl9KX0scS5wcm90b3R5cGUuZWRpdENvbXB1dGVDb250ZXh0PWZ1bmN0aW9uKEosc2Us''@;'; + put 'put ''b2Upe3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgY2UsZGUsdmUsQWU7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihrZSl7c3dpdGNoKGtlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMudmFsaWRhdGVDb250ZXh0TmFtZShKKSx0aGlzLmlzRGVmYXVsdENvbnRl''@;'; + put 'put ''eHQoSix0aGlzLmRlZmF1bHRDb21wdXRlQ29udGV4dHMsIkVkaXRpbmcgZGVmYXVsdCBTQVMgY29tcHV0ZSBjb250ZXh0cyBpcyBub3QgYWxsb3dlZC4iLCEwKSxbNCx0aGlzLmdldENvbXB1dGVDb250ZXh0QnlOYW1lKEosb2UpXTtjYXNlIDE6cmV0dXJuKGNlPWtlLnNlbnQoKSk/WzMsM106''@;'; + put 'put ''WzQsdGhpcy5nZXRDb21wdXRlQ29udGV4dEJ5SWQoc2UuaWQsb2UpXTtjYXNlIDI6Y2U9a2Uuc2VudCgpLGtlLmxhYmVsPTM7Y2FzZSAzOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvY29tcHV0ZS9jb250ZXh0cy8iKS5jb25jYXQo''@;'; + put 'put ''Y2UuaWQpLG9lKS5jYXRjaChmdW5jdGlvbihTZSl7dGhyb3cgU2UmJjQwND09PVNlLnN0YXR1cz9uZXcgRXJyb3IoIlRoZSBjb250ZXh0ICciLmNvbmNhdChKLCInIHdhcyBub3QgZm91bmQgb24gdGhpcyBzZXJ2ZXIuIikpOlNlfSldO2Nhc2UgNDpyZXR1cm4gZGU9a2Uuc2VudCgpLEFlPWRl''@;'; + put 'put ''LmV0YWcsWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnB1dCgiL2NvbXB1dGUvY29udGV4dHMvIi5jb25jYXQoKHZlPWRlLnJlc3VsdCkuaWQpLGllKGllKGllKHt9LHZlKSxzZSkse2F0dHJpYnV0ZXM6aWUoaWUoe30sdmUuYXR0cmlidXRlcyksc2UuYXR0cmlidXRlcyl9KSxvZSx7IklmLU1hdGNo''@;'; + put 'put ''IjpBZX0pXTtjYXNlIDU6cmV0dXJuWzIsa2Uuc2VudCgpXX19KX0pfSxxLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dEJ5TmFtZT1mdW5jdGlvbihKLHNlKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG9lO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oY2Up''@;'; + put 'put ''e3N3aXRjaChjZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCcvY29tcHV0ZS9jb250ZXh0cz9maWx0ZXI9ZXEobmFtZSwgIicpLmNvbmNhdChKLCciKScpLHNlKS5jYXRjaChmdW5jdGlvbihkZSl7dGhyb3co''@;'; + put 'put ''MCxOLnByZWZpeE1lc3NhZ2UpKGRlLCJFcnJvciB3aGlsZSBnZXR0aW5nIGNvbXB1dGUgY29udGV4dCBieSBuYW1lLiAiKX0pXTtjYXNlIDE6aWYoIShvZT1jZS5zZW50KCkucmVzdWx0KXx8IW9lLml0ZW1zfHwhb2UuaXRlbXMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiVGhlIGNvbnRleHQg''@;'; + put 'put ''JyIuY29uY2F0KEosIicgd2FzIG5vdCBmb3VuZCBhdCAnIikuY29uY2F0KHRoaXMuc2VydmVyVXJsLCInLiIpKTtyZXR1cm5bMixvZS5pdGVtc1swXV19fSl9KX0scS5wcm90b3R5cGUuZ2V0Q29tcHV0ZUNvbnRleHRCeUlkPWZ1bmN0aW9uKEosc2Upe3JldHVybiBsZSh0aGlzLHZvaWQgMCx2''@;'; + put 'put ''b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKG9lKXtzd2l0Y2gob2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHMvIikuY29uY2F0KEopLHNlKS5jYXRj''@;'; + put 'put ''aChmdW5jdGlvbihjZSl7dGhyb3coMCxOLnByZWZpeE1lc3NhZ2UpKGNlLCJFcnJvciB3aGlsZSBnZXR0aW5nIGNvbXB1dGUgY29udGV4dCBieSBpZC4gIil9KV07Y2FzZSAxOnJldHVyblsyLG9lLnNlbnQoKS5yZXN1bHRdfX0pfSl9LHEucHJvdG90eXBlLmdldEV4ZWN1dGFibGVDb250ZXh0''@;'; + put 'put ''cz1mdW5jdGlvbihKLHNlKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG9lLGNlLGRlLHZlLEFlLGtlLFNlLFRlLEVlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oaGUpe3N3aXRjaChoZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVu''@;'; + put 'put ''dC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvY29tcHV0ZS9jb250ZXh0cz9saW1pdD0xMDAwMCIpLG51bGw9PXNlP3ZvaWQgMDpzZS5hY2Nlc3NfdG9rZW4pLmNhdGNoKGZ1bmN0aW9uKE8pe3Rocm93KDAsTi5wcmVmaXhNZXNzYWdlKShPLCJFcnJvciB3aGlsZSBmZXRjaGluZyBj''@;'; + put 'put ''b21wdXRlIGNvbnRleHRzLiIpfSldO2Nhc2UgMTpvZT1oZS5zZW50KCkucmVzdWx0LGRlPVtdLHZlPShjZT1vZS5pdGVtc3x8W10pLm1hcChmdW5jdGlvbihPKXt2YXIgej1bIiVwdXQgJj1zeXN1c2VyaWQ7Il07cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEooInRlc3QtIi5jb25jYXQoTy5u''@;'; + put 'put ''YW1lKSx6LE8ubmFtZSxzZSxudWxsLCExLCEwLCEwKS5jYXRjaChmdW5jdGlvbihuZSl7cmV0dXJuIG5lfSl9fSksQWU9W10sa2U9MCxTZT12ZSxoZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4ga2U8U2UubGVuZ3RoPyhFZT0oVGU9QWUpLnB1c2gsWzQsKDAsU2Vba2VdKSgpXSk6WzMsNV07Y2Fz''@;'; + put 'put ''ZSAzOkVlLmFwcGx5KFRlLFtoZS5zZW50KCldKSxoZS5sYWJlbD00O2Nhc2UgNDpyZXR1cm4ga2UrKyxbMywyXTtjYXNlIDU6cmV0dXJuIEFlLmZvckVhY2goZnVuY3Rpb24oTyx6KXtpZihPJiZPLmxvZyl0cnl7dmFyIHRlPSIiLHg9Ty5sb2cuc3BsaXQoIlxuIikuZmluZChmdW5jdGlvbihQ''@;'; + put 'put ''KXtyZXR1cm4gUC5zdGFydHNXaXRoKCJTWVNVU0VSSUQ9Iil9KTt4JiYodGU9eC5yZXBsYWNlKCJTWVNVU0VSSUQ9IiwiIiksZGUucHVzaCh7Y3JlYXRlZEJ5OmNlW3pdLmNyZWF0ZWRCeSxpZDpjZVt6XS5pZCxuYW1lOmNlW3pdLm5hbWUsdmVyc2lvbjpjZVt6XS52ZXJzaW9uLGF0dHJpYnV0''@;'; + put 'put ''ZXM6e3N5c1VzZXJJZDp0ZX19KSl9Y2F0Y2goUCl7dGhyb3cgUH19KSxbMixkZV19fSl9KX0scS5wcm90b3R5cGUuZGVsZXRlQ29tcHV0ZUNvbnRleHQ9ZnVuY3Rpb24oSixzZSl7cmV0dXJuIGxlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBvZSxjZTtyZXR1cm4gWSh0aGlz''@;'; + put 'put ''LGZ1bmN0aW9uKGRlKXtzd2l0Y2goZGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy52YWxpZGF0ZUNvbnRleHROYW1lKEopLHRoaXMuaXNEZWZhdWx0Q29udGV4dChKLHRoaXMuZGVmYXVsdENvbXB1dGVDb250ZXh0cywiRGVsZXRpbmcgZGVmYXVsdCBTQVMgY29tcHV0ZSBjb250ZXh0cyBp''@;'; + put 'put ''cyBub3QgYWxsb3dlZC4iLCEwKSxvZT17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxzZSYmKG9lLkF1dGhvcml6YXRpb249IkJlYXJlciAiLmNvbmNhdChzZSkpLFs0LHRoaXMuZ2V0Q29tcHV0ZUNvbnRleHRCeU5hbWUoSixzZSldO2Nhc2UgMTpyZXR1cm4gY2U9ZGUuc2Vu''@;'; + put 'put ''dCgpLFs0LHRoaXMucmVxdWVzdENsaWVudC5kZWxldGUoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvY29tcHV0ZS9jb250ZXh0cy8iKS5jb25jYXQoY2UuaWQpLHNlKV07Y2FzZSAyOnJldHVyblsyLGRlLnNlbnQoKV19fSl9KX0scS5wcm90b3R5cGUudmFsaWRhdGVDb250ZXh0TmFtZT1m''@;'; + put 'put ''dW5jdGlvbihKKXtpZighSil0aHJvdyBuZXcgRXJyb3IoIkNvbnRleHQgbmFtZSBpcyByZXF1aXJlZC4iKX0scS5wcm90b3R5cGUuaXNEZWZhdWx0Q29udGV4dD1mdW5jdGlvbihKLHNlLG9lLGNlKXtpZih2b2lkIDA9PT1zZSYmKHNlPXRoaXMuZGVmYXVsdENvbXB1dGVDb250ZXh0cyksdm9p''@;'; + put 'put ''ZCAwPT09b2UmJihvZT0iIiksdm9pZCAwPT09Y2UmJihjZT0hMSksc2UuaW5jbHVkZXMoSikpdGhyb3cgbmV3IEVycm9yKCIiLmNvbmNhdChvZSkuY29uY2F0KGNlPyJcbkRlZmF1bHQgY29udGV4dHM6IitzZS5tYXAoZnVuY3Rpb24oZGUsdmUpe3JldHVybiJcbiIuY29uY2F0KHZlKzEsIi4g''@;'; + put 'put ''IikuY29uY2F0KGRlKX0pOiIiKSl9LHF9KCk7US5Db250ZXh0TWFuYWdlcj1lZX0sODMwNjpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24ob2UsY2UsZGUsdmUpe3JldHVybiBuZXcoZGV8fChkZT1Qcm9taXNlKSkoZnVu''@;'; + put 'put ''Y3Rpb24oQWUsa2Upe2Z1bmN0aW9uIFNlKEVlKXt0cnl7VGUodmUubmV4dChFZSkpfWNhdGNoKGhlKXtrZShoZSl9fWZ1bmN0aW9uIEllKEVlKXt0cnl7VGUodmUudGhyb3coRWUpKX1jYXRjaChoZSl7a2UoaGUpfX1mdW5jdGlvbiBUZShFZSl7dmFyIGhlO0VlLmRvbmU/QWUoRWUudmFsdWUp''@;'; + put 'put ''OihoZT1FZS52YWx1ZSxoZSBpbnN0YW5jZW9mIGRlP2hlOm5ldyBkZShmdW5jdGlvbihPKXtPKGhlKX0pKS50aGVuKFNlLEllKX1UZSgodmU9dmUuYXBwbHkob2UsY2V8fFtdKSkubmV4dCgpKX0pfSxsZT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihvZSxjZSl7dmFyIGRlLHZl''@;'; + put 'put ''LEFlLGtlLFNlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkFlWzBdKXRocm93IEFlWzFdO3JldHVybiBBZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBrZT17bmV4dDpJZSgwKSx0aHJvdzpJZSgxKSxyZXR1cm46SWUoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihr''@;'; + put 'put ''ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxrZTtmdW5jdGlvbiBJZShUZSl7cmV0dXJuIGZ1bmN0aW9uKEVlKXtyZXR1cm4gZnVuY3Rpb24oaGUpe2lmKGRlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtm''@;'; + put 'put ''b3IoO1NlOyl0cnl7aWYoZGU9MSx2ZSYmKEFlPTImaGVbMF0/dmUucmV0dXJuOmhlWzBdP3ZlLnRocm93fHwoKEFlPXZlLnJldHVybikmJkFlLmNhbGwodmUpLDApOnZlLm5leHQpJiYhKEFlPUFlLmNhbGwodmUsaGVbMV0pKS5kb25lKXJldHVybiBBZTtzd2l0Y2godmU9MCxBZSYmKGhlPVsy''@;'; + put 'put ''JmhlWzBdLEFlLnZhbHVlXSksaGVbMF0pe2Nhc2UgMDpjYXNlIDE6QWU9aGU7YnJlYWs7Y2FzZSA0OnJldHVybiBTZS5sYWJlbCsrLHt2YWx1ZTpoZVsxXSxkb25lOiExfTtjYXNlIDU6U2UubGFiZWwrKyx2ZT1oZVsxXSxoZT1bMF07Y29udGludWU7Y2FzZSA3OmhlPVNlLm9wcy5wb3AoKSxT''@;'; + put 'put ''ZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoQWU9KEFlPVNlLnRyeXMpLmxlbmd0aD4wJiZBZVtBZS5sZW5ndGgtMV0pfHw2IT09aGVbMF0mJjIhPT1oZVswXSkpe1NlPTA7Y29udGludWV9aWYoMz09PWhlWzBdJiYoIUFlfHxoZVsxXT5BZVswXSYmaGVbMV08QWVbM10pKXtT''@;'; + put 'put ''ZS5sYWJlbD1oZVsxXTticmVha31pZig2PT09aGVbMF0mJlNlLmxhYmVsPEFlWzFdKXtTZS5sYWJlbD1BZVsxXSxBZT1oZTticmVha31pZihBZSYmU2UubGFiZWw8QWVbMl0pe1NlLmxhYmVsPUFlWzJdLFNlLm9wcy5wdXNoKGhlKTticmVha31BZVsyXSYmU2Uub3BzLnBvcCgpLFNlLnRyeXMu''@;'; + put 'put ''cG9wKCk7Y29udGludWV9aGU9Y2UuY2FsbChvZSxTZSl9Y2F0Y2goTyl7aGU9WzYsT10sdmU9MH1maW5hbGx5e2RlPUFlPTB9aWYoNSZoZVswXSl0aHJvdyBoZVsxXTtyZXR1cm57dmFsdWU6aGVbMF0/aGVbMV06dm9pZCAwLGRvbmU6ITB9fShbVGUsRWVdKX19fSxZPXRoaXMmJnRoaXMuX19z''@;'; + put 'put ''cHJlYWRBcnJheXx8ZnVuY3Rpb24ob2UsY2UsZGUpe2lmKGRlfHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIHZlLEFlPTAsa2U9Y2UubGVuZ3RoO0FlPGtlO0FlKyspIXZlJiZBZSBpbiBjZXx8KHZlfHwodmU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoY2UsMCxBZSkpLHZlW0Fl''@;'; + put 'put ''XT1jZVtBZV0pO3JldHVybiBvZS5jb25jYXQodmV8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGNlKSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLlNBUzlBcGlDbGllbnQ9dm9pZCAwO3ZhciBXPVooNzc1NyksTj1aKDYyMzApLGVlPVoo''@;'; + put 'put ''Nzk1KSxxPVooNTkyOCksSj1mdW5jdGlvbigpe2Z1bmN0aW9uIG9lKGNlLGRlLHZlKXt0aGlzLnNlcnZlclVybD1jZSx0aGlzLmpvYnNQYXRoPWRlLGNlJiYoMCxxLmlzVXJsKShjZSksdGhpcy5yZXF1ZXN0Q2xpZW50PW5ldyBlZS5TYXM5UmVxdWVzdENsaWVudChjZSx2ZSl9cmV0dXJuIG9l''@;'; + put 'put ''LnByb3RvdHlwZS5nZXRDb25maWc9ZnVuY3Rpb24oKXtyZXR1cm57c2VydmVyVXJsOnRoaXMuc2VydmVyVXJsfX0sb2UucHJvdG90eXBlLnNldENvbmZpZz1mdW5jdGlvbihjZSl7Y2UmJih0aGlzLnNlcnZlclVybD1jZSl9LG9lLnByb3RvdHlwZS5leGVjdXRlU2NyaXB0PWZ1bmN0aW9uKGNl''@;'; + put 'put ''LGRlLHZlKXtyZXR1cm4gaWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEFlLGtlLFNlLEllLFRlLEVlLGhlO3JldHVybiBsZSh0aGlzLGZ1bmN0aW9uKE8pe3N3aXRjaChPLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmxvZ2luKGRlLHZlLHRo''@;'; + put 'put ''aXMuam9ic1BhdGgpXTtjYXNlIDE6cmV0dXJuIE8uc2VudCgpLEFlPVsiZGF0YSBfbnVsbF87IiwiZmlsZSBfd2Vib3V0OyIsInB1dCAnRXhlY3V0ZWQgc2FzanMgcnVuJzsiLCJydW47Il0sa2U9c2UoWShZKFtdLGNlLCEwKSxBZSwhMCkuam9pbigiXG4iKSksU2U9Ii9Vc2VyIEZvbGRlcnMv''@;'; + put 'put ''Ii5jb25jYXQoZGUsIi9NeSBGb2xkZXIvc2FzanMvcnVubmVyIiksSWU9Im11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSIra2UuZ2V0Qm91bmRhcnkoKSxUZT1rZS5nZXRMZW5ndGhTeW5jKCksRWU9eyJjYWNoZS1jb250cm9sIjoibm8tY2FjaGUiLEFjY2VwdDoiKi8qIiwiQ29udGVu''@;'; + put 'put ''dC1UeXBlIjpJZSwiQ29udGVudC1MZW5ndGgiOlRlLENvbm5lY3Rpb246ImtlZXAtYWxpdmUifSxoZT0iIi5jb25jYXQodGhpcy5qb2JzUGF0aCwiLz8iKS5jb25jYXQoIl9wcm9ncmFtPSIrU2UrIiZfZGVidWc9bG9nIiksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoaGUsa2Usdm9pZCAw''@;'; + put 'put ''LEllLEVlKV07Y2FzZSAyOnJldHVyblsyLE8uc2VudCgpLnJlc3VsdF19fSl9KX0sb2V9KCk7US5TQVM5QXBpQ2xpZW50PUo7dmFyIHNlPWZ1bmN0aW9uKG9lKXt2YXIgY2U9bmV3IE4sZGU9InNhc2pzLWV4ZWN1dGUtc2FzOS0iLmNvbmNhdCgoMCxXLmdlbmVyYXRlVGltZXN0YW1wKSgiIiks''@;'; + put 'put ''Ii5zYXMiKTtyZXR1cm4gY2UuYXBwZW5kKGRlLG9lLHtmaWxlbmFtZTpkZSxjb250ZW50VHlwZToidGV4dC9wbGFpbiJ9KSxjZX19LDk4MjE6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KSxsZT1aKDUxMDgpLFk9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0''@;'; + put 'put ''aW9uKEVlLGhlLE8seil7cmV0dXJuIG5ldyhPfHwoTz1Qcm9taXNlKSkoZnVuY3Rpb24obmUsdGUpe2Z1bmN0aW9uIHgoVCl7dHJ5e1Yoei5uZXh0KFQpKX1jYXRjaChTKXt0ZShTKX19ZnVuY3Rpb24gUChUKXt0cnl7Vih6LnRocm93KFQpKX1jYXRjaChTKXt0ZShTKX19ZnVuY3Rpb24gVihU''@;'; + put 'put ''KXt2YXIgUztULmRvbmU/bmUoVC52YWx1ZSk6KFM9VC52YWx1ZSxTIGluc3RhbmNlb2YgTz9TOm5ldyBPKGZ1bmN0aW9uKEYpe0YoUyl9KSkudGhlbih4LFApfVYoKHo9ei5hcHBseShFZSxoZXx8W10pKS5uZXh0KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oRWUs''@;'; + put 'put ''aGUpe3ZhciBPLHosbmUsdGUseD17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZuZVswXSl0aHJvdyBuZVsxXTtyZXR1cm4gbmVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gdGU9e25leHQ6UCgwKSx0aHJvdzpQKDEpLHJldHVybjpQKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3lt''@;'; + put 'put ''Ym9sJiYodGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksdGU7ZnVuY3Rpb24gUChWKXtyZXR1cm4gZnVuY3Rpb24oVCl7cmV0dXJuIGZ1bmN0aW9uKFMpe2lmKE8pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIp''@;'; + put 'put ''O2Zvcig7eDspdHJ5e2lmKE89MSx6JiYobmU9MiZTWzBdP3oucmV0dXJuOlNbMF0/ei50aHJvd3x8KChuZT16LnJldHVybikmJm5lLmNhbGwoeiksMCk6ei5uZXh0KSYmIShuZT1uZS5jYWxsKHosU1sxXSkpLmRvbmUpcmV0dXJuIG5lO3N3aXRjaCh6PTAsbmUmJihTPVsyJlNbMF0sbmUudmFs''@;'; + put 'put ''dWVdKSxTWzBdKXtjYXNlIDA6Y2FzZSAxOm5lPVM7YnJlYWs7Y2FzZSA0OnJldHVybiB4LmxhYmVsKysse3ZhbHVlOlNbMV0sZG9uZTohMX07Y2FzZSA1OngubGFiZWwrKyx6PVNbMV0sUz1bMF07Y29udGludWU7Y2FzZSA3OlM9eC5vcHMucG9wKCkseC50cnlzLnBvcCgpO2NvbnRpbnVlO2Rl''@;'; + put 'put ''ZmF1bHQ6aWYoISgobmU9KG5lPXgudHJ5cykubGVuZ3RoPjAmJm5lW25lLmxlbmd0aC0xXSl8fDYhPT1TWzBdJiYyIT09U1swXSkpe3g9MDtjb250aW51ZX1pZigzPT09U1swXSYmKCFuZXx8U1sxXT5uZVswXSYmU1sxXTxuZVszXSkpe3gubGFiZWw9U1sxXTticmVha31pZig2PT09U1swXSYm''@;'; + put 'put ''eC5sYWJlbDxuZVsxXSl7eC5sYWJlbD1uZVsxXSxuZT1TO2JyZWFrfWlmKG5lJiZ4LmxhYmVsPG5lWzJdKXt4LmxhYmVsPW5lWzJdLHgub3BzLnB1c2goUyk7YnJlYWt9bmVbMl0mJngub3BzLnBvcCgpLHgudHJ5cy5wb3AoKTtjb250aW51ZX1TPWhlLmNhbGwoRWUseCl9Y2F0Y2goRil7Uz1b''@;'; + put 'put ''NixGXSx6PTB9ZmluYWxseXtPPW5lPTB9aWYoNSZTWzBdKXRocm93IFNbMV07cmV0dXJue3ZhbHVlOlNbMF0/U1sxXTp2b2lkIDAsZG9uZTohMH19KFtWLFRdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5TQVNWaXlhQXBpQ2xpZW50PXZv''@;'; + put 'put ''aWQgMDt2YXIgTj1aKDU5MjgpLGVlPVooNjIzMCkscT1aKDEzOTUpLEo9Wig2OTAzKSxzZT1aKDY3Miksb2U9Wig5MDk3KSxjZT1aKDk3NzgpLGRlPVooMTM0MyksdmU9Wig3MDQpLEFlPVooNjQ5Niksa2U9Wig1NDAxKSxTZT1aKDM1NjkpLEllPVooMzY2KSxUZT1mdW5jdGlvbigpe2Z1bmN0''@;'; + put 'put ''aW9uIEVlKGhlLE8seixuZSl7dGhpcy5zZXJ2ZXJVcmw9aGUsdGhpcy5yb290Rm9sZGVyTmFtZT1PLHRoaXMuY29udGV4dE5hbWU9eix0aGlzLnJlcXVlc3RDbGllbnQ9bmUsdGhpcy5fZGVidWc9ITEsdGhpcy5zZXNzaW9uTWFuYWdlcj1uZXcgSi5TZXNzaW9uTWFuYWdlcih0aGlzLnNlcnZl''@;'; + put 'put ''clVybCx0aGlzLmNvbnRleHROYW1lLHRoaXMucmVxdWVzdENsaWVudCksdGhpcy5jb250ZXh0TWFuYWdlcj1uZXcgc2UuQ29udGV4dE1hbmFnZXIodGhpcy5zZXJ2ZXJVcmwsdGhpcy5yZXF1ZXN0Q2xpZW50KSx0aGlzLmZvbGRlck1hcD1uZXcgTWFwLGhlJiYoMCxOLmlzVXJsKShoZSl9cmV0''@;'; + put 'put ''dXJuIEVlLnByb3RvdHlwZS5hcHBlbmRSZXF1ZXN0PWZ1bmN0aW9uKGhlLE8seil7dGhpcy5yZXF1ZXN0Q2xpZW50LmFwcGVuZFJlcXVlc3QoaGUsTyx6KX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEVlLnByb3RvdHlwZSwiZGVidWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVi''@;'; + put 'put ''dWd9LHNldDpmdW5jdGlvbihoZSl7dGhpcy5fZGVidWc9aGUsdGhpcy5zZXNzaW9uTWFuYWdlciYmKHRoaXMuc2Vzc2lvbk1hbmFnZXIuZGVidWc9aGUpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLEVlLnByb3RvdHlwZS5nZXRKb2JzSW5Gb2xkZXI9ZnVuY3Rpb24oaGUpe3Jl''@;'; + put 'put ''dHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBPO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm4gTz0oMCxOLmlzUmVsYXRpdmVQYXRoKShoZSk/IiIuY29uY2F0KHRoaXMucm9vdEZvbGRlck5hbWUsIi8iKS5jb25j''@;'; + put 'put ''YXQoaGUpOmhlLHRoaXMuZm9sZGVyTWFwLmdldChPKT9bMix0aGlzLmZvbGRlck1hcC5nZXQoTyldOls0LHRoaXMucG9wdWxhdGVGb2xkZXJNYXAoTyldO2Nhc2UgMTpyZXR1cm4gei5zZW50KCksWzIsdGhpcy5mb2xkZXJNYXAuZ2V0KE8pXX19KX0pfSxFZS5wcm90b3R5cGUuZ2V0Q29uZmln''@;'; + put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJue3NlcnZlclVybDp0aGlzLnNlcnZlclVybCxyb290Rm9sZGVyTmFtZTp0aGlzLnJvb3RGb2xkZXJOYW1lfX0sRWUucHJvdG90eXBlLnNldENvbmZpZz1mdW5jdGlvbihoZSxPKXtoZSYmKHRoaXMuc2VydmVyVXJsPWhlKSxPJiYodGhpcy5yb290Rm9sZGVyTmFt''@;'; + put 'put ''ZT1PKX0sRWUucHJvdG90eXBlLmdldENvbXB1dGVDb250ZXh0cz1mdW5jdGlvbihoZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihPKXtzd2l0Y2goTy5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuY29udGV4dE1hbmFn''@;'; + put 'put ''ZXIuZ2V0Q29tcHV0ZUNvbnRleHRzKGhlKV07Y2FzZSAxOnJldHVyblsyLE8uc2VudCgpXX19KX0pfSxFZS5wcm90b3R5cGUuZ2V0RGVmYXVsdENvbXB1dGVDb250ZXh0cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRleHRNYW5hZ2VyLmdldERlZmF1bHRDb21wdXRlQ29udGV4dHN9LEVl''@;'; + put 'put ''LnByb3RvdHlwZS5nZXRMYXVuY2hlckNvbnRleHRzPWZ1bmN0aW9uKGhlKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKE8pe3N3aXRjaChPLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5jb250ZXh0TWFuYWdlci5nZXRM''@;'; + put 'put ''YXVuY2hlckNvbnRleHRzKGhlKV07Y2FzZSAxOnJldHVyblsyLE8uc2VudCgpXX19KX0pfSxFZS5wcm90b3R5cGUuZ2V0RXhlY3V0YWJsZUNvbnRleHRzPWZ1bmN0aW9uKGhlKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgTztyZXR1cm4gVyh0aGlzLGZ1bmN0''@;'; + put 'put ''aW9uKHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuIE89dGhpcy5leGVjdXRlU2NyaXB0LmJpbmQodGhpcyksWzQsdGhpcy5jb250ZXh0TWFuYWdlci5nZXRFeGVjdXRhYmxlQ29udGV4dHMoTyxoZSldO2Nhc2UgMTpyZXR1cm5bMix6LnNlbnQoKV19fSl9KX0sRWUucHJvdG90eXBl''@;'; + put 'put ''LmNyZWF0ZVNlc3Npb249ZnVuY3Rpb24oaGUsTyl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHosbmUsdGU7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih4KXtzd2l0Y2goeC5sYWJlbCl7Y2FzZSAwOnJldHVybiB6PXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRp''@;'; + put 'put ''b24vanNvbiJ9LE8mJih6LkF1dGhvcml6YXRpb249IkJlYXJlciAiLmNvbmNhdChPKSksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiL2NvbXB1dGUvY29udGV4dHM/bGltaXQ9MTAwMDAiLE8pXTtjYXNlIDE6aWYobmU9eC5zZW50KCkucmVzdWx0LCEodGU9bmUuaXRlbXMmJm5lLml0ZW1z''@;'; + put 'put ''Lmxlbmd0aD9uZS5pdGVtcy5maW5kKGZ1bmN0aW9uKFApe3JldHVybiBQLm5hbWU9PT1oZX0pOm51bGwpKXRocm93IG5ldyBFcnJvcigiRXhlY3V0aW9uIGNvbnRleHQgIi5jb25jYXQoaGUsIiBub3QgZm91bmQuIikpO3JldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KCIvY29tcHV0''@;'; + put 'put ''ZS9jb250ZXh0cy8iLmNvbmNhdCh0ZS5pZCwiL3Nlc3Npb25zIikse30sTyldO2Nhc2UgMjpyZXR1cm5bMix4LnNlbnQoKS5yZXN1bHRdfX0pfSl9LEVlLnByb3RvdHlwZS5jcmVhdGVDb21wdXRlQ29udGV4dD1mdW5jdGlvbihoZSxPLHosbmUsdGUseCl7cmV0dXJuIFkodGhpcyx2b2lkIDAs''@;'; + put 'put ''dm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihQKXtzd2l0Y2goUC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuY29udGV4dE1hbmFnZXIuY3JlYXRlQ29tcHV0ZUNvbnRleHQoaGUsTyx6LG5lLHRlLHgpXTtjYXNlIDE6cmV0dXJuWzIsUC5zZW50KCldfX0pfSl9''@;'; + put 'put ''LEVlLnByb3RvdHlwZS5jcmVhdGVMYXVuY2hlckNvbnRleHQ9ZnVuY3Rpb24oaGUsTyx6LG5lKXtyZXR1cm4gdm9pZCAwPT09eiYmKHo9ImRpcmVjdCIpLFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih0ZSl7c3dpdGNoKHRlLmxhYmVsKXtj''@;'; + put 'put ''YXNlIDA6cmV0dXJuWzQsdGhpcy5jb250ZXh0TWFuYWdlci5jcmVhdGVMYXVuY2hlckNvbnRleHQoaGUsTyx6LG5lKV07Y2FzZSAxOnJldHVyblsyLHRlLnNlbnQoKV19fSl9KX0sRWUucHJvdG90eXBlLmVkaXRDb21wdXRlQ29udGV4dD1mdW5jdGlvbihoZSxPLHope3JldHVybiBZKHRoaXMs''@;'; + put 'put ''dm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRjaChuZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuY29udGV4dE1hbmFnZXIuZWRpdENvbXB1dGVDb250ZXh0KGhlLE8seildO2Nhc2UgMTpyZXR1cm5bMixuZS5zZW50KCldfX0pfSl9''@;'; + put 'put ''LEVlLnByb3RvdHlwZS5kZWxldGVDb21wdXRlQ29udGV4dD1mdW5jdGlvbihoZSxPKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5jb250ZXh0TWFuYWdl''@;'; + put 'put ''ci5kZWxldGVDb21wdXRlQ29udGV4dChoZSxPKV07Y2FzZSAxOnJldHVyblsyLHouc2VudCgpXX19KX0pfSxFZS5wcm90b3R5cGUuZXhlY3V0ZVNjcmlwdD1mdW5jdGlvbihoZSxPLHosbmUsdGUseCxQLFYsVCxTLEYpe3JldHVybiB2b2lkIDA9PT10ZSYmKHRlPW51bGwpLHZvaWQgMD09PXgm''@;'; + put 'put ''Jih4PSExKSx2b2lkIDA9PT1QJiYoUD0hMSksdm9pZCAwPT09ViYmKFY9ITApLHZvaWQgMD09PVMmJihTPSExKSxZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeWUpe3JldHVyblsyLCgwLGtlLmV4ZWN1dGVTY3JpcHQpKHRoaXMucmVxdWVz''@;'; + put 'put ''dENsaWVudCx0aGlzLnNlc3Npb25NYW5hZ2VyLHRoaXMucm9vdEZvbGRlck5hbWUsaGUsTyx6LG5lLHRlLHgsUCxWLFQsUyxGKV19KX0pfSxFZS5wcm90b3R5cGUuZ2V0Rm9sZGVyPWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBX''@;'; + put 'put ''KHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9Ii5jb25jYXQoaGUpLE8pLnRoZW4oZnVuY3Rpb24obmUpe3JldHVybiBuZS5yZXN1bHR9KV07Y2FzZSAxOnJl''@;'; + put 'put ''dHVyblsyLHouc2VudCgpXX19KX0pfSxFZS5wcm90b3R5cGUuY3JlYXRlRmlsZT1mdW5jdGlvbihoZSxPLHosbmUsdGUpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB4LFA7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihWKXtzd2l0Y2goVi5sYWJlbCl7Y2FzZSAw''@;'; + put 'put ''OmlmKCF6JiYhbmUpdGhyb3cgbmV3IEVycm9yKCJQYXRoIG9yIFVSSSBvZiB0aGUgcGFyZW50IGZvbGRlciBpcyByZXF1aXJlZC4iKTtyZXR1cm4gbmV8fCF6P1szLDJdOls0LHRoaXMuZ2V0Rm9sZGVyVXJpKHosdGUpXTtjYXNlIDE6bmU9Vi5zZW50KCksVi5sYWJlbD0yO2Nhc2UgMjpyZXR1''@;'; + put 'put ''cm4geD17QWNjZXB0OiJhcHBsaWNhdGlvbi92bmQuc2FzLmZpbGUranNvbiIsIkNvbnRlbnQtRGlzcG9zaXRpb24iOidmaWxlbmFtZT0iJy5jb25jYXQoaGUsJyI7Jyl9LChQPW5ldyBlZSkuYXBwZW5kKCJmaWxlIixPLGhlKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiL2ZpbGVzL2Zp''@;'; + put 'put ''bGVzP3BhcmVudEZvbGRlclVyaT0iLmNvbmNhdChuZSwiJnR5cGVEZWZOYW1lPWZpbGUjcmF3VXBsb2FkIiksUCx0ZSwibXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9IitQLl9ib3VuZGFyeSx4KV07Y2FzZSAzOnJldHVyblsyLFYuc2VudCgpLnJlc3VsdF19fSl9KX0sRWUucHJvdG90''@;'; + put 'put ''eXBlLmNyZWF0ZUZvbGRlcj1mdW5jdGlvbihoZSxPLHosbmUsdGUpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB4LFAsVixULEY7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih5ZSl7c3dpdGNoKHllLmxhYmVsKXtjYXNlIDA6aWYoeD1pZS5sb2dnZXJ8fGxlLCFP''@;'; + put 'put ''JiYheil0aHJvdyBuZXcgRXJyb3IoIlBhdGggb3IgVVJJIG9mIHRoZSBwYXJlbnQgZm9sZGVyIGlzIHJlcXVpcmVkLiIpO3JldHVybiB6fHwhTz9bMyw2XTpbNCx0aGlzLmdldEZvbGRlclVyaShPLG5lKV07Y2FzZSAxOmlmKHo9eWUuc2VudCgpKXJldHVyblszLDNdO2lmKHguaW5mbygiUGFy''@;'; + put 'put ''ZW50IGZvbGRlciBhdCBwYXRoICciLmNvbmNhdChPLCInIGlzIG5vdCBwcmVzZW50LiIpKSxQPU8uc3Vic3RyaW5nKDAsTy5sYXN0SW5kZXhPZigiLyIpKSxWPSIiLmNvbmNhdChPLnNwbGl0KCIvIikucG9wKCkpLCIiPT09UCl0aHJvdyBuZXcgcS5Sb290Rm9sZGVyTm90Rm91bmRFcnJvcihP''@;'; + put 'put ''LHRoaXMuc2VydmVyVXJsLG5lKTtyZXR1cm4geC5pbmZvKCJDcmVhdGluZyBwYXJlbnQgZm9sZGVyOlxuJyIuY29uY2F0KFYsIicgaW4gJyIpLmNvbmNhdChQLCInIikpLFs0LHRoaXMuY3JlYXRlRm9sZGVyKFYsUCx2b2lkIDAsbmUpXTtjYXNlIDI6cmV0dXJuIFQ9eWUuc2VudCgpLHguaW5m''@;'; + put 'put ''bygiUGFyZW50IGZvbGRlciAnIi5jb25jYXQoViwiJyBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgY3JlYXRlZC4iKSksej0iL2ZvbGRlcnMvZm9sZGVycy8iLmNvbmNhdChULmlkKSxbMyw2XTtjYXNlIDM6cmV0dXJuIHRlJiZuZT9bNCx0aGlzLmdldEZvbGRlclVyaShPKyIvIitoZSxuZSldOlsz''@;'; + put 'put ''LDZdO2Nhc2UgNDpyZXR1cm4geWUuc2VudCgpP1s0LHRoaXMuZGVsZXRlRm9sZGVyKE8rIi8iK2hlLG5lKV06WzMsNl07Y2FzZSA1OnllLnNlbnQoKSx5ZS5sYWJlbD02O2Nhc2UgNjpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiL2ZvbGRlcnMvZm9sZGVycz9wYXJlbnRGb2xk''@;'; + put 'put ''ZXJVcmk9Ii5jb25jYXQoeikse25hbWU6aGUsdHlwZToiZm9sZGVyIn0sbmUpXTtjYXNlIDc6cmV0dXJuIEY9eWUuc2VudCgpLnJlc3VsdCxbNCx0aGlzLnBvcHVsYXRlRm9sZGVyTWFwKCIiLmNvbmNhdChPLCIvIikuY29uY2F0KGhlKSxuZSldO2Nhc2UgODpyZXR1cm4geWUuc2VudCgpLFsy''@;'; + put 'put ''LEZdfX0pfSl9LEVlLnByb3RvdHlwZS5jcmVhdGVKb2JEZWZpbml0aW9uPWZ1bmN0aW9uKGhlLE8seixuZSx0ZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih4KXtzd2l0Y2goeC5sYWJlbCl7Y2FzZSAwOmlmKCF6JiYhbmUp''@;'; + put 'put ''dGhyb3cgbmV3IEVycm9yKCJQYXRoIHRvIG9yIFVSSSBvZiB0aGUgcGFyZW50IGZvbGRlciBpcyByZXF1aXJlZC4iKTtyZXR1cm4gbmV8fCF6P1szLDJdOls0LHRoaXMuZ2V0Rm9sZGVyVXJpKHosdGUpXTtjYXNlIDE6bmU9eC5zZW50KCkseC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bNCx0aGlz''@;'; + put 'put ''LnJlcXVlc3RDbGllbnQucG9zdCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9qb2JEZWZpbml0aW9ucy9kZWZpbml0aW9ucz9wYXJlbnRGb2xkZXJVcmk9IikuY29uY2F0KG5lKSx7bmFtZTpoZSxwYXJhbWV0ZXJzOlt7bmFtZToiX2FkZGplc2JlZ2luZW5kbWFjcm9zIix0eXBlOiJDSEFS''@;'; + put 'put ''QUNURVIiLGRlZmF1bHRWYWx1ZToiZmFsc2UifV0sdHlwZToiQ29tcHV0ZSIsY29kZTpPfSx0ZSldO2Nhc2UgMzpyZXR1cm5bMix4LnNlbnQoKV19fSl9KX0sRWUucHJvdG90eXBlLmdldEF1dGhDb2RlPWZ1bmN0aW9uKGhlKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24o''@;'; + put 'put ''KXt2YXIgTyx6PXRoaXM7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihuZSl7c3dpdGNoKG5lLmxhYmVsKXtjYXNlIDA6cmV0dXJuIE89IiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvU0FTTG9nb24vb2F1dGgvYXV0aG9yaXplP2NsaWVudF9pZD0iKS5jb25jYXQoaGUsIiZyZXNwb25zZV90eXBl''@;'; + put 'put ''PWNvZGUiKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KE8sdm9pZCAwLCJ0ZXh0L3BsYWluIikudGhlbihmdW5jdGlvbih0ZSl7cmV0dXJuIHRlLnJlc3VsdH0pLnRoZW4oZnVuY3Rpb24odGUpe3JldHVybiBZKHosdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB4LFAsVixUO3JldHVy''@;'; + put 'put ''biBXKHRoaXMsZnVuY3Rpb24oUyl7c3dpdGNoKFMubGFiZWwpe2Nhc2UgMDpyZXR1cm4geD0iIiwoMCxvZS5pc0F1dGhvcml6ZUZvcm1SZXF1aXJlZCkodGUpP1s0LHRoaXMucmVxdWVzdENsaWVudC5hdXRob3JpemUodGUpXTpbMywyXTtjYXNlIDE6cmV0dXJuIFA9Uy5zZW50KCksVj1QLnNw''@;'; + put 'put ''bGl0KCI8Ym9keT4iKVsxXS5zcGxpdCgiPC9ib2R5PiIpWzBdLChUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9VixbMix4PVQucXVlcnlTZWxlY3RvcigiLmluZm9ib3ggaDQiKS5pbm5lclRleHRdO2Nhc2UgMjpyZXR1cm4gVj10ZS5zcGxpdCgiPGJvZHk+Iilb''@;'; + put 'put ''MV0uc3BsaXQoIjwvYm9keT4iKVswXSwoVD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPVYsVCYmKHg9VC5xdWVyeVNlbGVjdG9yKCIuaW5mb2JveCBoNCIpLmlubmVyVGV4dCksWzIseF19fSl9KX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9KV07Y2Fz''@;'; + put 'put ''ZSAxOnJldHVyblsyLG5lLnNlbnQoKV19fSl9KX0sRWUucHJvdG90eXBlLmdldEFjY2Vzc1Rva2VuPWZ1bmN0aW9uKGhlLE8seil7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihuZSl7cmV0dXJuWzIsKDAsU2UuZ2V0QWNjZXNz''@;'; + put 'put ''VG9rZW5Gb3JWaXlhKSh0aGlzLnJlcXVlc3RDbGllbnQsaGUsTyx6KV19KX0pfSxFZS5wcm90b3R5cGUucmVmcmVzaFRva2Vucz1mdW5jdGlvbihoZSxPLHope3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24obmUpe3JldHVyblsy''@;'; + put 'put ''LCgwLEllLnJlZnJlc2hUb2tlbnNGb3JWaXlhKSh0aGlzLnJlcXVlc3RDbGllbnQsaGUsTyx6KV19KX0pfSxFZS5wcm90b3R5cGUuZGVsZXRlQ2xpZW50PWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6LG5lO3JldHVybiBXKHRoaXMs''@;'; + put 'put ''ZnVuY3Rpb24odGUpe3N3aXRjaCh0ZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB6PXRoaXMuc2VydmVyVXJsKyIvb2F1dGgvY2xpZW50cy8iLmNvbmNhdChoZSksbmU9e30sTyYmKG5lLkF1dGhvcml6YXRpb249IkJlYXJlciAiLmNvbmNhdChPKSksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmRlbGV0''@;'; + put 'put ''ZSh6LE8pXTtjYXNlIDE6cmV0dXJuWzIsdGUuc2VudCgpLnJlc3VsdF19fSl9KX0sRWUucHJvdG90eXBlLmV4ZWN1dGVDb21wdXRlSm9iPWZ1bmN0aW9uKGhlLE8seixuZSx0ZSx4LFAsVixULFMpe3JldHVybiB2b2lkIDA9PT14JiYoeD0hMCksdm9pZCAwPT09UCYmKFA9ITEpLHZvaWQgMD09''@;'; + put 'put ''PVQmJihUPSExKSxZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBGLHllLENlLERlLFBlLFFlLCRlLGd0LHd0LHZ0LEF0O3JldHVybiBXKHRoaXMsZnVuY3Rpb24obXQpe3N3aXRjaChtdC5sYWJlbCl7Y2FzZSAwOnJldHVybiBGPSh0ZXx8e30pLmFjY2Vzc190b2tlbix0ZT9b''@;'; + put 'put ''NCwoMCx2ZS5nZXRUb2tlbnMpKHRoaXMucmVxdWVzdENsaWVudCx0ZSldOlszLDJdO2Nhc2UgMTpGPW10LnNlbnQoKS5hY2Nlc3NfdG9rZW4sbXQubGFiZWw9MjtjYXNlIDI6aWYoKDAsTi5pc1JlbGF0aXZlUGF0aCkoaGUpJiYhdGhpcy5yb290Rm9sZGVyTmFtZSl0aHJvdyBuZXcgRXJyb3Io''@;'; + put 'put ''IlJlbGF0aXZlIHBhdGhzIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgc3BlY2lmeWluZyBhIHJvb3QgZm9sZGVyIG5hbWUiKTtyZXR1cm4geWU9aGUuc3BsaXQoIi8iKSxDZT15ZS5wb3AoKSxEZT15ZS5qb2luKCIvIiksUGU9KDAsTi5pc1JlbGF0aXZlUGF0aCkoaGUpPyIiLmNvbmNhdCh0aGlz''@;'; + put 'put ''LnJvb3RGb2xkZXJOYW1lLCIvIikuY29uY2F0KERlKTpEZSxbNCx0aGlzLnBvcHVsYXRlRm9sZGVyTWFwKFBlLEYpLmNhdGNoKGZ1bmN0aW9uKGh0KXt0aHJvdygwLGNlLnByZWZpeE1lc3NhZ2UpKGh0LCJFcnJvciB3aGlsZSBwb3B1bGF0aW5nIGZvbGRlciBtYXAuICIpfSldO2Nhc2UgMzpp''@;'; + put 'put ''ZihtdC5zZW50KCksIShRZT10aGlzLmZvbGRlck1hcC5nZXQoUGUpKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBmb2xkZXIgJyIuY29uY2F0KFBlLCInIHdhcyBub3QgZm91bmQgb24gJyIpLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiJyIpKTtpZighKCRlPW51bGw9PVFlP3ZvaWQgMDpRZS5maW5k''@;'; + put 'put ''KGZ1bmN0aW9uKGh0KXtyZXR1cm4gaHQubmFtZT09PUNlfSkpKXRocm93IG5ldyBFcnJvcigiSm9iIHdhcyBub3QgZm91bmQuIik7aWYoZ3Q9bnVsbD09JGU/dm9pZCAwOiRlLmNvZGUpcmV0dXJuWzMsNV07aWYoISh3dD1udWxsPT0kZT92b2lkIDA6JGUubGlua3MuZmluZChmdW5jdGlvbiho''@;'; + put 'put ''dCl7cmV0dXJuImdldFJlc291cmNlIj09PWh0LnJlbH0pKSl0aHJvdyBuZXcgRXJyb3IoIlVSSSBvZiBqb2IgZGVmaW5pdGlvbiB3YXMgbm90IGZvdW5kLiIpO3JldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsKS5jb25jYXQod3QuaHJlZiks''@;'; + put 'put ''RikuY2F0Y2goZnVuY3Rpb24oaHQpe3Rocm93KDAsY2UucHJlZml4TWVzc2FnZSkoaHQsIkVycm9yIHdoaWxlIGdldHRpbmcgam9iIGRlZmluaXRpb24uICIpfSldO2Nhc2UgNDp2dD1tdC5zZW50KCkucmVzdWx0LCRlLmNvZGU9Z3Q9dnQuY29kZSxtdC5sYWJlbD01O2Nhc2UgNTpyZXR1cm4g''@;'; + put 'put ''Z3R8fChndD0iIiksQXQ9Z3QucmVwbGFjZSgvXHJcbi9nLCJcbiIpLnNwbGl0KCJcbiIpLFs0LHRoaXMuZXhlY3V0ZVNjcmlwdChoZSxBdCxPLHRlLG5lLHosUCx4LFYsVCxTKV07Y2FzZSA2OnJldHVyblsyLG10LnNlbnQoKV19fSl9KX0sRWUucHJvdG90eXBlLmV4ZWN1dGVKb2I9ZnVuY3Rp''@;'; + put 'put ''b24oaGUsTyx6LG5lLHRlKXt2YXIgeCxQLFY7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFQsUyxGLHllLENlLERlLFBlLFFlLCRlLGd0LHd0LHZ0LEF0LG10LGh0LEJ0LG9uLF90LHR0O3JldHVybiBXKHRoaXMsZnVuY3Rpb24oZXQpe3N3aXRjaChldC5sYWJl''@;'; + put 'put ''bCl7Y2FzZSAwOnJldHVybiBUPSh0ZXx8e30pLmFjY2Vzc190b2tlbix0ZT9bNCwoMCx2ZS5nZXRUb2tlbnMpKHRoaXMucmVxdWVzdENsaWVudCx0ZSldOlszLDJdO2Nhc2UgMTpUPWV0LnNlbnQoKS5hY2Nlc3NfdG9rZW4sZXQubGFiZWw9MjtjYXNlIDI6aWYoKDAsTi5pc1JlbGF0aXZlUGF0''@;'; + put 'put ''aCkoaGUpJiYhdGhpcy5yb290Rm9sZGVyTmFtZSl0aHJvdyBuZXcgRXJyb3IoIlJlbGF0aXZlIHBhdGhzIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgc3BlY2lmeWluZyBhIHJvb3QgZm9sZGVyIG5hbWUuIik7cmV0dXJuIFM9aGUuc3BsaXQoIi8iKSxGPVMucG9wKCkseWU9Uy5qb2luKCIvIiks''@;'; + put 'put ''Q2U9KDAsTi5pc1JlbGF0aXZlUGF0aCkoaGUpPyIiLmNvbmNhdCh0aGlzLnJvb3RGb2xkZXJOYW1lLCIvIikuY29uY2F0KHllKTp5ZSxbNCx0aGlzLnBvcHVsYXRlRm9sZGVyTWFwKENlLFQpXTtjYXNlIDM6aWYoZXQuc2VudCgpLCEoRGU9dGhpcy5mb2xkZXJNYXAuZ2V0KENlKSkpdGhyb3cg''@;'; + put 'put ''bmV3IEVycm9yKCJUaGUgZm9sZGVyICciLmNvbmNhdChDZSwiJyB3YXMgbm90IGZvdW5kIG9uICciKS5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIicuIikpO3JldHVybiBQZT1udWxsPT1EZT92b2lkIDA6RGUuZmluZChmdW5jdGlvbihhdCl7cmV0dXJuIGF0Lm5hbWU9PT1GfSksUWU9W10sbmUm''@;'; + put 'put ''Jk9iamVjdC5rZXlzKG5lKS5sZW5ndGg/WzQsdGhpcy51cGxvYWRUYWJsZXMobmUsVCldOlszLDVdO2Nhc2UgNDpRZT1ldC5zZW50KCksZXQubGFiZWw9NTtjYXNlIDU6aWYoIVBlKXRocm93IG5ldyBFcnJvcigiSm9iIHdhcyBub3QgZm91bmQuIik7cmV0dXJuICRlPW51bGw9PT0oeD1udWxs''@;'; + put 'put ''PT1QZT92b2lkIDA6UGUubGlua3MuZmluZChmdW5jdGlvbihhdCl7cmV0dXJuImdldFJlc291cmNlIj09PWF0LnJlbH0pKXx8dm9pZCAwPT09eD92b2lkIDA6eC5ocmVmLFs0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsKS5jb25jYXQoJGUpLFQpXTtj''@;'; + put 'put ''YXNlIDY6cmV0dXJuIGd0PWV0LnNlbnQoKS5yZXN1bHQsd3Q9e19jb250ZXh0TmFtZTpPLF9wcm9ncmFtOiIiLmNvbmNhdChDZSwiLyIpLmNvbmNhdChGKSxfd2ViaW5fZmlsZV9jb3VudDpRZS5sZW5ndGgsX09NSVRKU09OTElTVElORzohMCxfT01JVEpTT05MT0c6ITAsX09NSVRTRVNTSU9O''@;'; + put 'put ''UkVTVUxUUzohMCxfT01JVFRFWFRMSVNUSU5HOiEwLF9PTUlUVEVYVExPRzohMH0seiYmKHd0Ll9PTUlUVEVYVExPRz0iZmFsc2UiLHd0Ll9PTUlUU0VTU0lPTlJFU1VMVFM9ImZhbHNlIix3dC5fREVCVUc9MTMxKSxRZS5mb3JFYWNoKGZ1bmN0aW9uKGF0LEx0KXt3dFsiX3dlYmluX2ZpbGV1''@;'; + put 'put ''cmkiLmNvbmNhdChMdCsxKV09Ii9maWxlcy9maWxlcy8iLmNvbmNhdChhdC5maWxlLmlkKSx3dFsiX3dlYmluX25hbWUiLmNvbmNhdChMdCsxKV09YXQudGFibGVOYW1lfSksdnQ9e25hbWU6ImV4ZWMtIi5jb25jYXQoRiksZGVzY3JpcHRpb246IlBvd2VyZWQgYnkgU0FTanMiLGpvYkRlZmlu''@;'; + put 'put ''aXRpb246Z3QsYXJndW1lbnRzOnd0fSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9qb2JFeGVjdXRpb24vam9icz9fYWN0aW9uPXdhaXQiKSx2dCxUKV07Y2FzZSA3OnJldHVybiBBdD1ldC5zZW50KCkucmVzdWx0LFs0LHRoaXMucG9sbEpv''@;'; + put 'put ''YlN0YXRlKEF0LHRlKS5jYXRjaChmdW5jdGlvbihhdCl7dGhyb3coMCxjZS5wcmVmaXhNZXNzYWdlKShhdCwiRXJyb3Igd2hpbGUgcG9sbGluZyBqb2Igc3RhdHVzLiAiKX0pXTtjYXNlIDg6cmV0dXJuIG10PWV0LnNlbnQoKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0''@;'; + put 'put ''aGlzLnNlcnZlclVybCwiL2pvYkV4ZWN1dGlvbi9qb2JzLyIpLmNvbmNhdChBdC5pZCksVCldO2Nhc2UgOTpyZXR1cm4gaHQ9ZXQuc2VudCgpLnJlc3VsdCxfdD1odC5yZXN1bHRzWyJfd2Vib3V0Lmpzb24iXSx0dD1odC5saW5rcy5maW5kKGZ1bmN0aW9uKGF0KXtyZXR1cm4ibG9nIj09PWF0''@;'; + put 'put ''LnJlbH0pLF90P1s0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsKS5jb25jYXQoX3QsIi9jb250ZW50IiksVCwidGV4dC9wbGFpbiIpXTpbMywxMV07Y2FzZSAxMDpCdD1ldC5zZW50KCksZXQubGFiZWw9MTE7Y2FzZSAxMTpyZXR1cm4geiYmdHQ/WzQs''@;'; + put 'put ''dGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwpLmNvbmNhdCh0dC5ocmVmLCIvY29udGVudCIpLFQpLnRoZW4oZnVuY3Rpb24oYXQpe3JldHVybiBhdC5yZXN1bHQuaXRlbXMubWFwKGZ1bmN0aW9uKEx0KXtyZXR1cm4gTHQubGluZX0pLmpvaW4oIlxuIil9''@;'; + put 'put ''KV06WzMsMTNdO2Nhc2UgMTI6b249ZXQuc2VudCgpLGV0LmxhYmVsPTEzO2Nhc2UgMTM6aWYoImZhaWxlZCI9PT1tdCl0aHJvdyBuZXcgcS5Kb2JFeGVjdXRpb25FcnJvcihudWxsPT09KFA9aHQuZXJyb3IpfHx2b2lkIDA9PT1QP3ZvaWQgMDpQLmVycm9yQ29kZSxudWxsPT09KFY9aHQuZXJy''@;'; + put 'put ''b3IpfHx2b2lkIDA9PT1WP3ZvaWQgMDpWLm1lc3NhZ2Usb24pO3JldHVyblsyLHtyZXN1bHQ6bnVsbD09QnQ/dm9pZCAwOkJ0LnJlc3VsdCxsb2c6b259XX19KX0pfSxFZS5wcm90b3R5cGUucG9wdWxhdGVGb2xkZXJNYXA9ZnVuY3Rpb24oaGUsTyl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9p''@;'; + put 'put ''ZCAwLGZ1bmN0aW9uKCl7dmFyIHosdGUseDtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKFYpe3N3aXRjaChWLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHo9KDAsTi5pc1JlbGF0aXZlUGF0aCkoaGUpPyIiLmNvbmNhdCh0aGlzLnJvb3RGb2xkZXJOYW1lLCIvIikuY29uY2F0KGhlKTpoZSx0aGlzLmZv''@;'; + put 'put ''bGRlck1hcC5nZXQoeik/WzJdOls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KCIvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9Iit6KSxPKS5jYXRjaChmdW5jdGlvbihUKXt0aHJvdygwLGNlLnByZWZpeE1lc3NhZ2UpKFQsIkVycm9yIHdoaWxlIGdldHRpbmcgZm9sZGVy''@;'; + put 'put ''LiAiKX0pXTtjYXNlIDE6aWYoISh0ZT1WLnNlbnQoKS5yZXN1bHQpKXRocm93IG5ldyBFcnJvcigiVGhlIHBhdGggIi5jb25jYXQoeiwiIGRvZXMgbm90IGV4aXN0IG9uICIpLmNvbmNhdCh0aGlzLnNlcnZlclVybCkpO3JldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIi9mb2xkZXJz''@;'; + put 'put ''L2ZvbGRlcnMvIi5jb25jYXQodGUuaWQsIi9tZW1iZXJzP2xpbWl0PSIpLmNvbmNhdCh0ZS5tZW1iZXJDb3VudDw1MDA/NTAwOnRlLm1lbWJlckNvdW50KSxPKS5jYXRjaChmdW5jdGlvbihUKXt0aHJvdygwLGNlLnByZWZpeE1lc3NhZ2UpKFQsIkVycm9yIHdoaWxlIGdldHRpbmcgbWVtYmVy''@;'; + put 'put ''cy4gIil9KV07Y2FzZSAyOnJldHVybiB4PVYuc2VudCgpLnJlc3VsdCx0aGlzLmZvbGRlck1hcC5zZXQoeix4Lml0ZW1zKSxbMl19fSl9KX0sRWUucHJvdG90eXBlLnBvbGxKb2JTdGF0ZT1mdW5jdGlvbihoZSxPLHope3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiBXKHRoaXMsZnVuY3Rpb24obmUpe3JldHVyblsyLCgwLGRlLnBvbGxKb2JTdGF0ZSkodGhpcy5yZXF1ZXN0Q2xpZW50LGhlLHRoaXMuZGVidWcsTyx6KV19KX0pfSxFZS5wcm90b3R5cGUudXBsb2FkVGFibGVzPWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQg''@;'; + put 'put ''MCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeil7cmV0dXJuWzIsKDAsQWUudXBsb2FkVGFibGVzKSh0aGlzLnJlcXVlc3RDbGllbnQsaGUsTyldfSl9KX0sRWUucHJvdG90eXBlLmdldEZvbGRlckRldGFpbHM9ZnVuY3Rpb24oaGUsTyl7cmV0dXJuIFkodGhpcyx2b2lkIDAs''@;'; + put 'put ''dm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHosbmU7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih0ZSl7c3dpdGNoKHRlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHo9KDAsTi5pc1VyaSkoaGUpP2hlOiIvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9Ii5jb25jYXQoaGUpLFs0LHRoaXMucmVxdWVzdENs''@;'; + put 'put ''aWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsKS5jb25jYXQoeiksTykuY2F0Y2goZnVuY3Rpb24oeCl7aWYoeCBpbnN0YW5jZW9mIHEuQ2VydGlmaWNhdGVFcnJvcil0aHJvdyB4O3JldHVybntyZXN1bHQ6bnVsbH19KV07Y2FzZSAxOnJldHVybihuZT10ZS5zZW50KCkucmVzdWx0''@;'; + put 'put ''KT9bMixuZV06WzIsdm9pZCAwXX19KX0pfSxFZS5wcm90b3R5cGUuZ2V0Rm9sZGVyVXJpPWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6O3JldHVybiBXKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRjaChuZS5sYWJlbCl7Y2FzZSAwOnJl''@;'; + put 'put ''dHVybls0LHRoaXMuZ2V0Rm9sZGVyRGV0YWlscyhoZSxPKV07Y2FzZSAxOnJldHVybih6PW5lLnNlbnQoKSk/WzIsIi9mb2xkZXJzL2ZvbGRlcnMvIi5jb25jYXQoei5pZCldOlsyLHZvaWQgMF19fSl9KX0sRWUucHJvdG90eXBlLmdldFJlY3ljbGVCaW5Vcmk9ZnVuY3Rpb24oaGUpe3JldHVy''@;'; + put 'put ''biBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBPO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCkuY29uY2F0KCIvZm9sZGVycy9m''@;'; + put 'put ''b2xkZXJzL0BteVJlY3ljbGVCaW4iKSxoZSkuY2F0Y2goZnVuY3Rpb24obmUpe2lmKG5lIGluc3RhbmNlb2YgcS5DZXJ0aWZpY2F0ZUVycm9yKXRocm93IG5lO3JldHVybntyZXN1bHQ6bnVsbH19KV07Y2FzZSAxOnJldHVybihPPXouc2VudCgpLnJlc3VsdCk/WzIsIi9mb2xkZXJzL2ZvbGRl''@;'; + put 'put ''cnMvIi5jb25jYXQoTy5pZCldOlsyLHZvaWQgMF19fSl9KX0sRWUucHJvdG90eXBlLmdldENvbXB1dGVDb250ZXh0QnlOYW1lPWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHoubGFi''@;'; + put 'put ''ZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmNvbnRleHRNYW5hZ2VyLmdldENvbXB1dGVDb250ZXh0QnlOYW1lKGhlLE8pXTtjYXNlIDE6cmV0dXJuWzIsei5zZW50KCldfX0pfSl9LEVlLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dEJ5SWQ9ZnVuY3Rpb24oaGUsTyl7cmV0dXJuIFkodGhp''@;'; + put 'put ''cyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih6KXtzd2l0Y2goei5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuY29udGV4dE1hbmFnZXIuZ2V0Q29tcHV0ZUNvbnRleHRCeUlkKGhlLE8pXTtjYXNlIDE6cmV0dXJuWzIsei5zZW50KCldfX0pfSl9''@;'; + put 'put ''LEVlLnByb3RvdHlwZS5saXN0Rm9sZGVyPWZ1bmN0aW9uKGhlLE8seil7cmV0dXJuIHZvaWQgMD09PXomJih6PTIwKSxZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuZSx0ZSx4O3JldHVybiBXKHRoaXMsZnVuY3Rpb24oUCl7c3dpdGNoKFAubGFiZWwpe2Nhc2UgMDpyZXR1''@;'; + put 'put ''cm4oMCxOLmlzVXJpKShoZSk/KHRlPWhlLFszLDNdKTpbMywxXTtjYXNlIDE6cmV0dXJuWzQsdGhpcy5nZXRGb2xkZXJVcmkoaGUsTyldO2Nhc2UgMjp0ZT1QLnNlbnQoKSxQLmxhYmVsPTM7Y2FzZSAzOnJldHVybiBuZT10ZSxbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0''@;'; + put 'put ''aGlzLnNlcnZlclVybCkuY29uY2F0KG5lLCIvbWVtYmVycz9saW1pdD0iKS5jb25jYXQoeiksTyldO2Nhc2UgNDpyZXR1cm4oeD1QLnNlbnQoKS5yZXN1bHQpJiZ4Lml0ZW1zP1syLHguaXRlbXMubWFwKGZ1bmN0aW9uKFYpe3JldHVybiBWLm5hbWV9KV06WzIsW11dfX0pfSl9LEVlLnByb3Rv''@;'; + put 'put ''dHlwZS5tb3ZlRm9sZGVyPWZ1bmN0aW9uKGhlLE8seixuZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHRlLHgsUCxWLFQsUztyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKEYpe3N3aXRjaChGLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRlPWhlLnNwbGl0KCIvIiku''@;'; + put 'put ''cG9wKCksWzQsdGhpcy5nZXRGb2xkZXJEZXRhaWxzKE8sbmUpXTtjYXNlIDE6cmV0dXJuIEYuc2VudCgpP3o9dGU6KCh4PU8uc3BsaXQoIi8iKSkuc3BsaWNlKHgubGVuZ3RoLTEsMSksTz14LmpvaW4oIi8iKSksWzQsdGhpcy5nZXRGb2xkZXJVcmkoaGUsbmUpXTtjYXNlIDI6cmV0dXJuIFA9''@;'; + put 'put ''Ri5zZW50KCksWzQsdGhpcy5nZXRGb2xkZXJVcmkoTyxuZSldO2Nhc2UgMzpyZXR1cm4gVj1GLnNlbnQoKSxQPyhUPW51bGw9PVA/dm9pZCAwOlAuc3BsaXQoIi8iKS5wb3AoKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQucGF0Y2goIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsKS5jb25jYXQoUCks''@;'; + put 'put ''e2lkOlQsbmFtZTp6LHBhcmVudEZvbGRlclVyaTpWfSxuZSkuY2F0Y2goZnVuY3Rpb24oeWUpe3Rocm93IHllLmNvZGUmJiJFTk9URk9VTkQiPT09eWUuY29kZT97Ym9keTp7bWVzc2FnZToiRm9sZGVyICciLmNvbmNhdChoZS5zcGxpdCgiLyIpLnBvcCgpLCInIHdhcyBub3QgZm91bmQuIil9''@;'; + put 'put ''fTp5ZX0pXSk6WzIsdm9pZCAwXTtjYXNlIDQ6cmV0dXJuKFM9Ri5zZW50KCkucmVzdWx0KT9bMixTXTpbMix2b2lkIDBdfX0pfSl9LEVlLnByb3RvdHlwZS5kZWxldGVGb2xkZXI9ZnVuY3Rpb24oaGUsTyl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHosbmUs''@;'; + put 'put ''dGUseDtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKFYpe3N3aXRjaChWLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5nZXRSZWN5Y2xlQmluVXJpKE8pXTtjYXNlIDE6cmV0dXJuIHo9Vi5zZW50KCksbmU9aGUuc3BsaXQoIi8iKS5wb3AoKXx8IiIsdGU9bmV3IERhdGUseD10ZS50b0xvY2Fs''@;'; + put 'put ''ZURhdGVTdHJpbmcoKSsiICIrdGUudG9Mb2NhbGVUaW1lU3RyaW5nKCksWzQsdGhpcy5tb3ZlRm9sZGVyKGhlLHosbmUrIiAiK3gsTyldO2Nhc2UgMjpyZXR1cm5bMixWLnNlbnQoKV19fSl9KX0sRWV9KCk7US5TQVNWaXlhQXBpQ2xpZW50PVRlfSw1OTU2OmZ1bmN0aW9uKFUsUSxaKXsidXNl''@;'; + put 'put ''IHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIGllPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKFRlKXtmb3IodmFyIEVlLGhlPTEsTz1hcmd1bWVudHMubGVuZ3RoO2hlPE87aGUrKylmb3IodmFyIHogaW4gRWU9YXJndW1lbnRzW2hlXSlPYmpl''@;'; + put 'put ''Y3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRWUseikmJihUZVt6XT1FZVt6XSk7cmV0dXJuIFRlfSxpZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGxlPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihUZSxFZSxoZSxPKXtyZXR1cm4gbmV3KGhlfHwoaGU9UHJvbWlzZSkp''@;'; + put 'put ''KGZ1bmN0aW9uKHosbmUpe2Z1bmN0aW9uIHRlKFYpe3RyeXtQKE8ubmV4dChWKSl9Y2F0Y2goVCl7bmUoVCl9fWZ1bmN0aW9uIHgoVil7dHJ5e1AoTy50aHJvdyhWKSl9Y2F0Y2goVCl7bmUoVCl9fWZ1bmN0aW9uIFAoVil7dmFyIFQ7Vi5kb25lP3ooVi52YWx1ZSk6KFQ9Vi52YWx1ZSxUIGlu''@;'; + put 'put ''c3RhbmNlb2YgaGU/VDpuZXcgaGUoZnVuY3Rpb24oUyl7UyhUKX0pKS50aGVuKHRlLHgpfVAoKE89Ty5hcHBseShUZSxFZXx8W10pKS5uZXh0KCkpfSl9LFk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oVGUsRWUpe3ZhciBoZSxPLHosbmUsdGU9e2xhYmVsOjAsc2VudDpmdW5j''@;'; + put 'put ''dGlvbigpe2lmKDEmelswXSl0aHJvdyB6WzFdO3JldHVybiB6WzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG5lPXtuZXh0OngoMCksdGhyb3c6eCgxKSxyZXR1cm46eCgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKG5lW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdGhpc30pLG5lO2Z1bmN0aW9uIHgoUCl7cmV0dXJuIGZ1bmN0aW9uKFYpe3JldHVybiBmdW5jdGlvbihUKXtpZihoZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDt0ZTspdHJ5e2lmKGhlPTEsTyYmKHo9MiZUWzBdP08ucmV0''@;'; + put 'put ''dXJuOlRbMF0/Ty50aHJvd3x8KCh6PU8ucmV0dXJuKSYmei5jYWxsKE8pLDApOk8ubmV4dCkmJiEoej16LmNhbGwoTyxUWzFdKSkuZG9uZSlyZXR1cm4gejtzd2l0Y2goTz0wLHomJihUPVsyJlRbMF0sei52YWx1ZV0pLFRbMF0pe2Nhc2UgMDpjYXNlIDE6ej1UO2JyZWFrO2Nhc2UgNDpyZXR1''@;'; + put 'put ''cm4gdGUubGFiZWwrKyx7dmFsdWU6VFsxXSxkb25lOiExfTtjYXNlIDU6dGUubGFiZWwrKyxPPVRbMV0sVD1bMF07Y29udGludWU7Y2FzZSA3OlQ9dGUub3BzLnBvcCgpLHRlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKCh6PSh6PXRlLnRyeXMpLmxlbmd0aD4wJiZ6W3oubGVu''@;'; + put 'put ''Z3RoLTFdKXx8NiE9PVRbMF0mJjIhPT1UWzBdKSl7dGU9MDtjb250aW51ZX1pZigzPT09VFswXSYmKCF6fHxUWzFdPnpbMF0mJlRbMV08elszXSkpe3RlLmxhYmVsPVRbMV07YnJlYWt9aWYoNj09PVRbMF0mJnRlLmxhYmVsPHpbMV0pe3RlLmxhYmVsPXpbMV0sej1UO2JyZWFrfWlmKHomJnRl''@;'; + put 'put ''LmxhYmVsPHpbMl0pe3RlLmxhYmVsPXpbMl0sdGUub3BzLnB1c2goVCk7YnJlYWt9elsyXSYmdGUub3BzLnBvcCgpLHRlLnRyeXMucG9wKCk7Y29udGludWV9VD1FZS5jYWxsKFRlLHRlKX1jYXRjaChTKXtUPVs2LFNdLE89MH1maW5hbGx5e2hlPXo9MH1pZig1JlRbMF0pdGhyb3cgVFsxXTty''@;'; + put 'put ''ZXR1cm57dmFsdWU6VFswXT9UWzFdOnZvaWQgMCxkb25lOiEwfX0oW1AsVl0pfX19LFc9dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihUZSxFZSxoZSl7aWYoaGV8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgTyx6PTAsbmU9RWUubGVuZ3RoO3o8bmU7eisrKSFPJiZ6''@;'; + put 'put ''IGluIEVlfHwoT3x8KE89QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoRWUsMCx6KSksT1t6XT1FZVt6XSk7cmV0dXJuIFRlLmNvbmNhdChPfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChFZSkpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7''@;'; + put 'put ''dmFyIE49Wig1OTI4KSxlZT1aKDEyMzApLHE9Wig5ODIxKSxKPVooODMwNiksc2U9WigzNDY3KSxvZT1aKDE1MjcpLGNlPVooMzkwMCksZGU9Wig0NTg4KSx2ZT1aKDM2MDIpLEFlPVooODIxNyksa2U9WigxMzk1KSxTZT17c2VydmVyVXJsOiIiLHBhdGhTQVNKUzoiL1NBU2pzQXBpL3N0cC9l''@;'; + put 'put ''eGVjdXRlIixwYXRoU0FTOToiL1NBU1N0b3JlZFByb2Nlc3MvZG8iLHBhdGhTQVNWaXlhOiIvU0FTSm9iRXhlY3V0aW9uIixhcHBMb2M6Ii9QdWJsaWMvc2VlZGFwcCIsc2VydmVyVHlwZTpjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWEsZGVidWc6ITEsY29udGV4dE5hbWU6IlNBUyBKb2IgRXhlY3V0''@;'; + put 'put ''aW9uIGNvbXB1dGUgY29udGV4dCIsdXNlQ29tcHV0ZUFwaTpudWxsLGxvZ2luTWVjaGFuaXNtOmVlLkxvZ2luTWVjaGFuaXNtLkRlZmF1bHR9LEllPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gVGUoRWUpe3ZhciBoZT10aGlzO3RoaXMuc2FzanNDb25maWc9bmV3IGVlLlNBU2pzQ29uZmlnLHRoaXMu''@;'; + put 'put ''am9ic1BhdGg9IiIsdGhpcy5zYXNWaXlhQXBpQ2xpZW50PW51bGwsdGhpcy5zYXM5QXBpQ2xpZW50PW51bGwsdGhpcy5zYXNKU0FwaUNsaWVudD1udWxsLHRoaXMuZmlsZVVwbG9hZGVyPW51bGwsdGhpcy5hdXRoTWFuYWdlcj1udWxsLHRoaXMucmVxdWVzdENsaWVudD1udWxsLHRoaXMud2Vi''@;'; + put 'put ''Sm9iRXhlY3V0b3I9bnVsbCx0aGlzLmNvbXB1dGVKb2JFeGVjdXRvcj1udWxsLHRoaXMuamVzSm9iRXhlY3V0b3I9bnVsbCx0aGlzLnNhczlKb2JFeGVjdXRvcj1udWxsLHRoaXMucmVzZW5kV2FpdGluZ1JlcXVlc3RzPWZ1bmN0aW9uKCl7cmV0dXJuIGxlKGhlLHZvaWQgMCx2b2lkIDAsZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgTyx6LG5lLHRlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNoKHgubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxudWxsPT09KE89dGhpcy53ZWJKb2JFeGVjdXRvcil8fHZvaWQgMD09PU8/dm9pZCAwOk8ucmVzZW5kV2FpdGluZ1JlcXVlc3RzKCldO2Nhc2UgMTpy''@;'; + put 'put ''ZXR1cm4geC5zZW50KCksWzQsbnVsbD09PSh6PXRoaXMuY29tcHV0ZUpvYkV4ZWN1dG9yKXx8dm9pZCAwPT09ej92b2lkIDA6ei5yZXNlbmRXYWl0aW5nUmVxdWVzdHMoKV07Y2FzZSAyOnJldHVybiB4LnNlbnQoKSxbNCxudWxsPT09KG5lPXRoaXMuamVzSm9iRXhlY3V0b3IpfHx2b2lkIDA9''@;'; + put 'put ''PT1uZT92b2lkIDA6bmUucmVzZW5kV2FpdGluZ1JlcXVlc3RzKCldO2Nhc2UgMzpyZXR1cm4geC5zZW50KCksWzQsbnVsbD09PSh0ZT10aGlzLmZpbGVVcGxvYWRlcil8fHZvaWQgMD09PXRlP3ZvaWQgMDp0ZS5yZXNlbmRXYWl0aW5nUmVxdWVzdHMoKV07Y2FzZSA0OnJldHVybiB4LnNlbnQo''@;'; + put 'put ''KSxbMl19fSl9KX0sdGhpcy5zYXNqc0NvbmZpZz1pZShpZSh7fSxTZSksRWUpLHRoaXMuc2V0dXBDb25maWd1cmF0aW9uKCl9cmV0dXJuIFRlLnByb3RvdHlwZS5nZXRDc3JmVG9rZW49ZnVuY3Rpb24oRWUpe3ZhciBoZTtyZXR1cm4gdm9pZCAwPT09RWUmJihFZT0iZ2VuZXJhbCIpLG51bGw9''@;'; + put 'put ''PT0oaGU9dGhpcy5yZXF1ZXN0Q2xpZW50KXx8dm9pZCAwPT09aGU/dm9pZCAwOmhlLmdldENzcmZUb2tlbihFZSl9LFRlLnByb3RvdHlwZS5leGVjdXRlU2NyaXB0U0FTOT1mdW5jdGlvbihFZSxoZSxPKXt2YXIgejtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIFkodGhpcyxmdW5jdGlvbihuZSl7c3dpdGNoKG5lLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImV4ZWN1dGVTY3JpcHRTQVM5IixbY2UuU2VydmVyVHlwZS5TYXM5XSksWzQsbnVsbD09PSh6PXRoaXMuc2FzOUFwaUNsaWVudCl8fHZvaWQgMD09PXo/''@;'; + put 'put ''dm9pZCAwOnouZXhlY3V0ZVNjcmlwdChFZSxoZSxPKV07Y2FzZSAxOnJldHVyblsyLG5lLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmV4ZWN1dGVTY3JpcHRTQVNqcz1mdW5jdGlvbihFZSxoZSl7dmFyIE87cmV0dXJuIGxlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biBZKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZXhlY3V0ZVNjcmlwdFNBU0pTIixbY2UuU2VydmVyVHlwZS5TYXNqc10pLFs0LG51bGw9PT0oTz10aGlzLnNhc0pTQXBpQ2xpZW50KXx8dm9pZCAwPT09Tz92''@;'; + put 'put ''b2lkIDA6Ty5leGVjdXRlU2NyaXB0KEVlLGhlKV07Y2FzZSAxOnJldHVyblsyLHouc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuZXhlY3V0ZVNjcmlwdFNBU1ZpeWE9ZnVuY3Rpb24oRWUsaGUsTyx6LG5lKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IFkodGhpcyxmdW5jdGlvbih0ZSl7c3dpdGNoKHRlLmxhYmVsKXtjYXNlIDA6aWYodGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZXhlY3V0ZVNjcmlwdFNBU1ZpeWEiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSwhKE89T3x8dGhpcy5zYXNqc0NvbmZpZy5jb250ZXh0TmFtZSkpdGhyb3cgbmV3''@;'; + put 'put ''IEVycm9yKCJDb250ZXh0IG5hbWUgaXMgdW5kZWZpbmVkLiBQbGVhc2Ugc2V0IGEgYGNvbnRleHROYW1lYCBpbiB5b3VyIFNBU2pzIG9yIG92ZXJyaWRlIGNvbmZpZy4iKTtyZXR1cm5bNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZXhlY3V0ZVNjcmlwdChFZSxoZSxPLHosbnVsbCxuZXx8dGhp''@;'; + put 'put ''cy5zYXNqc0NvbmZpZy5kZWJ1ZyldO2Nhc2UgMTpyZXR1cm5bMix0ZS5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dHM9ZnVuY3Rpb24oRWUpe3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGhl''@;'; + put 'put ''KXtzd2l0Y2goaGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0Q29tcHV0ZUNvbnRleHRzIixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldENvbXB1dGVDb250ZXh0cyhFZSldO2Nhc2UgMTpyZXR1cm5b''@;'; + put 'put ''MixoZS5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5nZXRMYXVuY2hlckNvbnRleHRzPWZ1bmN0aW9uKEVlKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihoZSl7c3dpdGNoKGhlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRo''@;'; + put 'put ''aXMuaXNNZXRob2RTdXBwb3J0ZWQoImdldExhdW5jaGVyQ29udGV4dHMiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0TGF1bmNoZXJDb250ZXh0cyhFZSldO2Nhc2UgMTpyZXR1cm5bMixoZS5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5n''@;'; + put 'put ''ZXREZWZhdWx0Q29tcHV0ZUNvbnRleHRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImdldERlZmF1bHRDb21wdXRlQ29udGV4dHMiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0RGVmYXVsdENvbXB1dGVDb250ZXh0''@;'; + put 'put ''cygpfSxUZS5wcm90b3R5cGUuZ2V0RXhlY3V0YWJsZUNvbnRleHRzPWZ1bmN0aW9uKEVlKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihoZSl7c3dpdGNoKGhlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RT''@;'; + put 'put ''dXBwb3J0ZWQoImdldEV4ZWN1dGFibGVDb250ZXh0cyIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRFeGVjdXRhYmxlQ29udGV4dHMoRWUpXTtjYXNlIDE6cmV0dXJuWzIsaGUuc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuY3JlYXRlQ29t''@;'; + put 'put ''cHV0ZUNvbnRleHQ9ZnVuY3Rpb24oRWUsaGUsTyx6LG5lLHRlKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih4KXtzd2l0Y2goeC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJjcmVhdGVD''@;'; + put 'put ''b21wdXRlQ29udGV4dCIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5jcmVhdGVDb21wdXRlQ29udGV4dChFZSxoZSxPLHosbmUsdGUpXTtjYXNlIDE6cmV0dXJuWzIseC5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5jcmVhdGVMYXVuY2hlckNv''@;'; + put 'put ''bnRleHQ9ZnVuY3Rpb24oRWUsaGUsTyx6KXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihuZSl7c3dpdGNoKG5lLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImNyZWF0ZUxhdW5jaGVyQ29u''@;'; + put 'put ''dGV4dCIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5jcmVhdGVMYXVuY2hlckNvbnRleHQoRWUsaGUsTyx6KV07Y2FzZSAxOnJldHVyblsyLG5lLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmVkaXRDb21wdXRlQ29udGV4dD1mdW5jdGlvbihF''@;'; + put 'put ''ZSxoZSxPKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih6KXtzd2l0Y2goei5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJlZGl0Q29tcHV0ZUNvbnRleHQiLFtjZS5TZXJ2ZXJUeXBlLlNh''@;'; + put 'put ''c1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZWRpdENvbXB1dGVDb250ZXh0KEVlLGhlLE8pXTtjYXNlIDE6cmV0dXJuWzIsei5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5kZWxldGVDb21wdXRlQ29udGV4dD1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIGxlKHRoaXMsdm9pZCAw''@;'; + put 'put ''LHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oTyl7c3dpdGNoKE8ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZGVsZXRlQ29tcHV0ZUNvbnRleHQiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlD''@;'; + put 'put ''bGllbnQuZGVsZXRlQ29tcHV0ZUNvbnRleHQoRWUsaGUpXTtjYXNlIDE6cmV0dXJuWzIsTy5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dEJ5TmFtZT1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIGxlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biBZKHRoaXMsZnVuY3Rpb24oTyl7c3dpdGNoKE8ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0Q29tcHV0ZUNvbnRleHRCeU5hbWUiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0Q29tcHV0ZUNvbnRl''@;'; + put 'put ''eHRCeU5hbWUoRWUsaGUpXTtjYXNlIDE6cmV0dXJuWzIsTy5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dEJ5SWQ9ZnVuY3Rpb24oRWUsaGUpe3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKE8p''@;'; + put 'put ''e3N3aXRjaChPLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImdldENvbXB1dGVDb250ZXh0QnlJZCIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRDb21wdXRlQ29udGV4dEJ5SWQoRWUsaGUpXTtjYXNlIDE6''@;'; + put 'put ''cmV0dXJuWzIsTy5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5jcmVhdGVTZXNzaW9uPWZ1bmN0aW9uKEVlLGhlKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihPKXtzd2l0Y2goTy5sYWJlbCl7Y2FzZSAwOnJldHVybiB0''@;'; + put 'put ''aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJjcmVhdGVTZXNzaW9uIixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmNyZWF0ZVNlc3Npb24oRWUsaGUpXTtjYXNlIDE6cmV0dXJuWzIsTy5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5jcmVhdGVGb2xk''@;'; + put 'put ''ZXI9ZnVuY3Rpb24oRWUsaGUsTyx6LG5lLHRlKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih4KXtzd2l0Y2goeC5sYWJlbCl7Y2FzZSAwOnJldHVybiBuZT9bNCxuZS5jcmVhdGVGb2xkZXIoRWUsaGUsTyx6KV06WzMsMl07''@;'; + put 'put ''Y2FzZSAxOmNhc2UgMzpyZXR1cm5bMix4LnNlbnQoKV07Y2FzZSAyOnJldHVybls0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5jcmVhdGVGb2xkZXIoRWUsaGUsTyx6LHRlKV19fSl9KX0sVGUucHJvdG90eXBlLmNyZWF0ZUZpbGU9ZnVuY3Rpb24oRWUsaGUsTyx6LG5lLHRlKXtyZXR1cm4gbGUo''@;'; + put 'put ''dGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih4KXtzd2l0Y2goeC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0ZT9bNCx0ZS5jcmVhdGVGaWxlKEVlLGhlLE8seixuZSldOlszLDJdO2Nhc2UgMTpjYXNlIDM6cmV0dXJuWzIseC5zZW50KCldO2Nhc2Ug''@;'; + put 'put ''MjpyZXR1cm5bNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuY3JlYXRlRmlsZShFZSxoZSxPLHosbmUpXX19KX0pfSxUZS5wcm90b3R5cGUuZ2V0Rm9sZGVyPWZ1bmN0aW9uKEVlLGhlKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlv''@;'; + put 'put ''bihPKXtzd2l0Y2goTy5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRGb2xkZXIiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0Rm9sZGVyKEVlLGhlKV07Y2FzZSAxOnJldHVyblsyLE8uc2VudCgpXX19''@;'; + put 'put ''KX0pfSxUZS5wcm90b3R5cGUuZGVsZXRlRm9sZGVyPWZ1bmN0aW9uKEVlLGhlKXt2YXIgTztyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih6KXtzd2l0Y2goei5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3Vw''@;'; + put 'put ''cG9ydGVkKCJkZWxldGVGb2xkZXIiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCxudWxsPT09KE89dGhpcy5zYXNWaXlhQXBpQ2xpZW50KXx8dm9pZCAwPT09Tz92b2lkIDA6Ty5kZWxldGVGb2xkZXIoRWUsaGUpXTtjYXNlIDE6cmV0dXJuWzIsei5zZW50KCldfX0pfSl9LFRlLnByb3Rv''@;'; + put 'put ''dHlwZS5saXN0Rm9sZGVyPWZ1bmN0aW9uKEVlLGhlLE8pe3ZhciB6O3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKG5lKXtzd2l0Y2gobmUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgibGlz''@;'; + put 'put ''dEZvbGRlciIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LG51bGw9PT0oej10aGlzLnNhc1ZpeWFBcGlDbGllbnQpfHx2b2lkIDA9PT16P3ZvaWQgMDp6Lmxpc3RGb2xkZXIoRWUsaGUsTyldO2Nhc2UgMTpyZXR1cm5bMixuZS5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5tb3ZlRm9s''@;'; + put 'put ''ZGVyPWZ1bmN0aW9uKEVlLGhlLE8seil7dmFyIG5lO3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHRlKXtzd2l0Y2godGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgibW92ZUZvbGRlciIs''@;'; + put 'put ''W2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LG51bGw9PT0obmU9dGhpcy5zYXNWaXlhQXBpQ2xpZW50KXx8dm9pZCAwPT09bmU/dm9pZCAwOm5lLm1vdmVGb2xkZXIoRWUsaGUsTyx6KV07Y2FzZSAxOnJldHVyblsyLHRlLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmNyZWF0ZUpvYkRl''@;'; + put 'put ''ZmluaXRpb249ZnVuY3Rpb24oRWUsaGUsTyx6LG5lLHRlKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih4KXtzd2l0Y2goeC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJjcmVhdGVKb2JE''@;'; + put 'put ''ZWZpbml0aW9uIixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksdGU/WzQsdGUuY3JlYXRlSm9iRGVmaW5pdGlvbihFZSxoZSxPLHosbmUpXTpbMywyXTtjYXNlIDE6Y2FzZSAzOnJldHVyblsyLHguc2VudCgpXTtjYXNlIDI6cmV0dXJuWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmNyZWF0ZUpv''@;'; + put 'put ''YkRlZmluaXRpb24oRWUsaGUsTyx6LG5lKV19fSl9KX0sVGUucHJvdG90eXBlLmdldEF1dGhDb2RlPWZ1bmN0aW9uKEVlKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihoZSl7c3dpdGNoKGhlLmxhYmVsKXtjYXNlIDA6cmV0''@;'; + put 'put ''dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImdldEF1dGhDb2RlIixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldEF1dGhDb2RlKEVlKV07Y2FzZSAxOnJldHVyblsyLGhlLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmdldEFjY2Vzc1Rv''@;'; + put 'put ''a2VuPWZ1bmN0aW9uKEVlLGhlLE8pe3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImdldEFjY2Vzc1Rva2VuIixbY2UuU2Vy''@;'; + put 'put ''dmVyVHlwZS5TYXNWaXlhLGNlLlNlcnZlclR5cGUuU2FzanNdKSx0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGUhPT1jZS5TZXJ2ZXJUeXBlLlNhc2pzP1szLDJdOls0LHRoaXMuc2FzSlNBcGlDbGllbnQuZ2V0QWNjZXNzVG9rZW4oRWUsTyldO2Nhc2UgMTpjYXNlIDM6cmV0dXJuWzIsei5z''@;'; + put 'put ''ZW50KCldO2Nhc2UgMjpyZXR1cm5bNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0QWNjZXNzVG9rZW4oRWUsaGUsTyldfX0pfSl9LFRlLnByb3RvdHlwZS5yZWZyZXNoVG9rZW5zPWZ1bmN0aW9uKEVlLGhlLE8pe3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gWSh0aGlzLGZ1bmN0aW9uKHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoInJlZnJlc2hUb2tlbnMiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWEsY2UuU2VydmVyVHlwZS5TYXNqc10pLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSE9''@;'; + put 'put ''PWNlLlNlcnZlclR5cGUuU2FzanM/WzMsMl06WzQsdGhpcy5zYXNKU0FwaUNsaWVudC5yZWZyZXNoVG9rZW5zKE8pXTtjYXNlIDE6Y2FzZSAzOnJldHVyblsyLHouc2VudCgpXTtjYXNlIDI6cmV0dXJuWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LnJlZnJlc2hUb2tlbnMoRWUsaGUsTyldfX0p''@;'; + put 'put ''fSl9LFRlLnByb3RvdHlwZS5kZWxldGVDbGllbnQ9ZnVuY3Rpb24oRWUsaGUpe3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKE8pe3N3aXRjaChPLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQo''@;'; + put 'put ''ImRlbGV0ZUNsaWVudCIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5kZWxldGVDbGllbnQoRWUsaGUpXTtjYXNlIDE6cmV0dXJuWzIsTy5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5nZXRTYXNqc0NvbmZpZz1mdW5jdGlvbigpe3JldHVybiB0''@;'; + put 'put ''aGlzLnNhc2pzQ29uZmlnfSxUZS5wcm90b3R5cGUuZ2V0VXNlck5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdXRoTWFuYWdlci51c2VyTmFtZX0sVGUucHJvdG90eXBlLnNldFNBU2pzQ29uZmlnPWZ1bmN0aW9uKEVlKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihoZSl7cmV0dXJuIHRoaXMuc2FzanNDb25maWc9aWUoaWUoe30sdGhpcy5zYXNqc0NvbmZpZyksRWUpLHRoaXMuc2V0dXBDb25maWd1cmF0aW9uKCksWzJdfSl9KX0sVGUucHJvdG90eXBlLnNldERlYnVnU3RhdGU9ZnVuY3Rpb24oRWUpe3RoaXMu''@;'; + put 'put ''c2FzanNDb25maWcuZGVidWc9RWUsdGhpcy5zYXNWaXlhQXBpQ2xpZW50JiYodGhpcy5zYXNWaXlhQXBpQ2xpZW50LmRlYnVnPUVlKX0sVGUucHJvdG90eXBlLmNoZWNrU2Vzc2lvbj1mdW5jdGlvbigpe3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0''@;'; + put 'put ''aGlzLGZ1bmN0aW9uKEVlKXtyZXR1cm5bMix0aGlzLmF1dGhNYW5hZ2VyLmNoZWNrU2Vzc2lvbigpXX0pfSl9LFRlLnByb3RvdHlwZS5sb2dJbj1mdW5jdGlvbihFZSxoZSxPLHope3JldHVybiB2b2lkIDA9PT16JiYoej17fSksbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIFkodGhpcyxmdW5jdGlvbihuZSl7aWYodGhpcy5zYXNqc0NvbmZpZy5sb2dpbk1lY2hhbmlzbT09PWVlLkxvZ2luTWVjaGFuaXNtLkRlZmF1bHQpe2lmKCFFZXx8IWhlKXRocm93IG5ldyBFcnJvcigiQSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXJlIHJlcXVpcmVkIHdoZW4gdXNpbmcg''@;'; + put 'put ''dGhlIGRlZmF1bHQgbG9naW4gbWVjaGFuaXNtLiIpO3JldHVyblsyLHRoaXMuYXV0aE1hbmFnZXIubG9nSW4oRWUsaGUpXX1pZigidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdyl0aHJvdyBuZXcgRXJyb3IoIlRoZSByZWRpcmVjdGVkIGxvZ2luIG1lY2hhbmlzbSBpcyBvbmx5IGF2YWlsYWJs''@;'; + put 'put ''ZSBmb3IgdXNlIGluIHRoZSBicm93c2VyLiIpO3JldHVyblsyLHRoaXMuYXV0aE1hbmFnZXIucmVkaXJlY3RlZExvZ0luKHopXX0pfSl9LFRlLnByb3RvdHlwZS5sb2dPdXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdXRoTWFuYWdlci5sb2dPdXQoKX0sVGUucHJvdG90eXBlLnVwbG9hZEZp''@;'; + put 'put ''bGU9ZnVuY3Rpb24oRWUsaGUsTyx6LG5lKXtyZXR1cm4gdm9pZCAwPT09eiYmKHo9e30pLGxlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNoKHgubGFiZWwpe2Nhc2UgMDpyZXR1cm4gej1pZShpZSh7fSx0aGlzLnNhc2pzQ29u''@;'; + put 'put ''ZmlnKSx6KSxbNCx0aGlzLmZpbGVVcGxvYWRlci5leGVjdXRlKEVlLHtmaWxlczpoZSxwYXJhbXM6T30seixuZSldO2Nhc2UgMTpyZXR1cm5bMix4LnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLnJlcXVlc3Q9ZnVuY3Rpb24oRWUsaGUsTyx6LG5lLHRlKXtyZXR1cm4gdm9pZCAwPT09TyYm''@;'; + put 'put ''KE89e30pLHZvaWQgMD09PXRlJiYodGU9W10pLGxlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB4O3JldHVybiBZKHRoaXMsZnVuY3Rpb24oUCl7c3dpdGNoKFAubGFiZWwpe2Nhc2UgMDpyZXR1cm4gTz1pZShpZSh7fSx0aGlzLnNhc2pzQ29uZmlnKSxPKSwoeD0oMCxOLnZh''@;'; + put 'put ''bGlkYXRlSW5wdXQpKGhlKSkuc3RhdHVzP08uc2VydmVyVHlwZSE9PWNlLlNlcnZlclR5cGUuU2FzanM/WzMsMl06WzQsdGhpcy53ZWJKb2JFeGVjdXRvci5leGVjdXRlKEVlLGhlLE8seixuZSx0ZSldOlszLDEyXTtjYXNlIDE6Y2FzZSAzOmNhc2UgNTpjYXNlIDg6Y2FzZSAxMDpyZXR1cm5b''@;'; + put 'put ''MixQLnNlbnQoKV07Y2FzZSAyOnJldHVybiBPLnNlcnZlclR5cGUhPT1jZS5TZXJ2ZXJUeXBlLlNhc1ZpeWF8fG51bGw9PU8udXNlQ29tcHV0ZUFwaT9bMyw3XTpPLnVzZUNvbXB1dGVBcGk/WzQsdGhpcy5jb21wdXRlSm9iRXhlY3V0b3IuZXhlY3V0ZShFZSxoZSxPLHosbmUpXTpbMyw0XTtj''@;'; + put 'put ''YXNlIDQ6cmV0dXJuIE8uY29udGV4dE5hbWV8fChPPWllKGllKHt9LE8pLHtjb250ZXh0TmFtZToiU0FTIEpvYiBFeGVjdXRpb24gY29tcHV0ZSBjb250ZXh0In0pKSxbNCx0aGlzLmplc0pvYkV4ZWN1dG9yLmV4ZWN1dGUoRWUsaGUsTyx6LG5lLHRlKV07Y2FzZSA2OnJldHVyblszLDExXTtj''@;'; + put 'put ''YXNlIDc6cmV0dXJuIE8uc2VydmVyVHlwZT09PWNlLlNlcnZlclR5cGUuU2FzOSYmTy51c2VybmFtZSYmTy5wYXNzd29yZD9bNCx0aGlzLnNhczlKb2JFeGVjdXRvci5leGVjdXRlKEVlLGhlLE8pXTpbMyw5XTtjYXNlIDk6cmV0dXJuWzQsdGhpcy53ZWJKb2JFeGVjdXRvci5leGVjdXRlKEVl''@;'; + put 'put ''LGhlLE8seixuZSx0ZSldO2Nhc2UgMTE6cmV0dXJuWzMsMTNdO2Nhc2UgMTI6cmV0dXJuWzIsUHJvbWlzZS5yZWplY3QobmV3IGtlLkVycm9yUmVzcG9uc2UoeC5tc2cpKV07Y2FzZSAxMzpyZXR1cm5bMl19fSl9KX0sVGUucHJvdG90eXBlLmRlcGxveVNlcnZpY2VQYWNrPWZ1bmN0aW9uKEVl''@;'; + put 'put ''LGhlLE8seixuZSl7cmV0dXJuIHZvaWQgMD09PW5lJiYobmU9ITEpLGxlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0ZSx4O3JldHVybiBZKHRoaXMsZnVuY3Rpb24oVil7c3dpdGNoKFYubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZGVw''@;'; + put 'put ''bG95U2VydmljZVBhY2siLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSx0ZT1udWxsLE98fGhlPyhPfHwoTz10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCksaGV8fChoZT10aGlzLnNhc2pzQ29uZmlnLmFwcExvYyksdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlw''@;'; + put 'put ''ZS5TYXNWaXlhPyh0ZT1uZXcgcS5TQVNWaXlhQXBpQ2xpZW50KE8saGUsdGhpcy5zYXNqc0NvbmZpZy5jb250ZXh0TmFtZSx0aGlzLnJlcXVlc3RDbGllbnQpKS5kZWJ1Zz10aGlzLnNhc2pzQ29uZmlnLmRlYnVnOnRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PWNlLlNlcnZlclR5cGUu''@;'; + put 'put ''U2FzOSYmKHRlPW5ldyBKLlNBUzlBcGlDbGllbnQoTyx0aGlzLmpvYnNQYXRoLHRoaXMuc2FzanNDb25maWcuaHR0cHNBZ2VudE9wdGlvbnMpKSk6KHg9bnVsbCx0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9PT1jZS5TZXJ2ZXJUeXBlLlNhc1ZpeWE/eD10aGlzLnNhc1ZpeWFBcGlDbGll''@;'; + put 'put ''bnQuZ2V0Q29uZmlnKCk6dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXM5JiYoeD10aGlzLnNhczlBcGlDbGllbnQuZ2V0Q29uZmlnKCkpLE89eC5zZXJ2ZXJVcmwsaGU9eC5yb290Rm9sZGVyTmFtZSksRWUubWVtYmVyc1swXS5tZW1iZXJzJiZFZS5tZW1i''@;'; + put 'put ''ZXJzWzBdLm1lbWJlcnMuc29ydChmdW5jdGlvbihUKXtyZXR1cm4iZm9sZGVyIj09PVQudHlwZT8tMToxfSksWzQsdGhpcy5jcmVhdGVGb2xkZXJzQW5kU2VydmljZXMoaGUsRWUubWVtYmVycyx6LHRlLG5lKV07Y2FzZSAxOnJldHVybiBWLnNlbnQoKSxbMl19fSl9KX0sVGUucHJvdG90eXBl''@;'; + put 'put ''LmRlcGxveVRvU0FTanM9ZnVuY3Rpb24oRWUsaGUsTyl7dmFyIHo7cmV0dXJuIGxlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRjaChuZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBoZXx8KGhlPXRoaXMuc2FzanNDb25maWcuYXBw''@;'; + put 'put ''TG9jKSxbNCxudWxsPT09KHo9dGhpcy5zYXNKU0FwaUNsaWVudCl8fHZvaWQgMD09PXo/dm9pZCAwOnouZGVwbG95KEVlLGhlLE8pXTtjYXNlIDE6cmV0dXJuWzIsbmUuc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuZXhlY3V0ZUpvYlNBU2pzPWZ1bmN0aW9uKEVlLGhlKXt2YXIgTztyZXR1''@;'; + put 'put ''cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih6KXtzd2l0Y2goei5sYWJlbCl7Y2FzZSAwOnJldHVybls0LG51bGw9PT0oTz10aGlzLnNhc0pTQXBpQ2xpZW50KXx8dm9pZCAwPT09Tz92b2lkIDA6Ty5leGVjdXRlSm9iKEVlLGhlKV07''@;'; + put 'put ''Y2FzZSAxOnJldHVyblsyLHouc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuc3RhcnRDb21wdXRlSm9iPWZ1bmN0aW9uKEVlLGhlLE8seixuZSx0ZSx4LFApe3ZhciBWO3JldHVybiB2b2lkIDA9PT1PJiYoTz17fSksdm9pZCAwPT09eCYmKHg9ITEpLGxlKHRoaXMsdm9pZCAwLHZvaWQgMCxm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oVCl7aWYoTz1pZShpZSh7fSx0aGlzLnNhc2pzQ29uZmlnKSxPKSx0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJzdGFydENvbXB1dGVKb2IiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSwhTy5jb250ZXh0TmFtZSl0aHJvdyBuZXcgRXJy''@;'; + put 'put ''b3IoIkNvbnRleHQgbmFtZSBpcyB1bmRlZmluZWQuIFBsZWFzZSBzZXQgYSBgY29udGV4dE5hbWVgIGluIHlvdXIgU0FTanMgb3Igb3ZlcnJpZGUgY29uZmlnLiIpO3JldHVyblsyLG51bGw9PT0oVj10aGlzLnNhc1ZpeWFBcGlDbGllbnQpfHx2b2lkIDA9PT1WP3ZvaWQgMDpWLmV4ZWN1dGVD''@;'; + put 'put ''b21wdXRlSm9iKEVlLE8uY29udGV4dE5hbWUsTy5kZWJ1ZyxoZSx6LCEhbmUsITEsdGUseCxQKV19KX0pfSxUZS5wcm90b3R5cGUuZmV0Y2hMb2dGaWxlQ29udGVudD1mdW5jdGlvbihFZSxoZSl7cmV0dXJuIGxlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMs''@;'; + put 'put ''ZnVuY3Rpb24oTyl7c3dpdGNoKE8ubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KEVlLGhlKS50aGVuKGZ1bmN0aW9uKHope2lmKCF6KXJldHVybiBQcm9taXNlLnJlamVjdChuZXcga2UuRXJyb3JSZXNwb25zZSgiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgbG9n''@;'; + put 'put ''LiBSZXNwb25zZSB3YXMgbm90IHByb3ZpZGVkLiIpKTt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHoucmVzdWx0KX1jYXRjaChuZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBrZS5FcnJvclJlc3BvbnNlKCJFcnJvciB3aGlsZSBmZXRjaGluZyBsb2cuIFRoZSByZXN1bHQgaXMgbm90''@;'; + put 'put ''IHZhbGlkLiIsbmUpKX19KV07Y2FzZSAxOnJldHVyblsyLE8uc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuZ2V0U2FzUmVxdWVzdHM9ZnVuY3Rpb24oKXtyZXR1cm4gVyhbXSx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0UmVxdWVzdHMoKSwhMCkuc29ydChOLmNvbXBhcmVUaW1lc3RhbXBzKX0s''@;'; + put 'put ''VGUucHJvdG90eXBlLmNsZWFyU2FzUmVxdWVzdHM9ZnVuY3Rpb24oKXt0aGlzLnJlcXVlc3RDbGllbnQuY2xlYXJSZXF1ZXN0cygpfSxUZS5wcm90b3R5cGUuc2V0dXBDb25maWd1cmF0aW9uPWZ1bmN0aW9uKCl7aWYodm9pZCAwPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmx8fCIiPT09''@;'; + put 'put ''dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwpaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBsb2NhdGlvbil7dmFyIEVlPSIiLmNvbmNhdChsb2NhdGlvbi5wcm90b2NvbCwiLy8iKS5jb25jYXQobG9jYXRpb24uaG9zdG5hbWUpO2xvY2F0aW9uLnBvcnQmJihFZT0iIi5jb25jYXQoRWUsIjoiKS5j''@;'; + put 'put ''b25jYXQobG9jYXRpb24ucG9ydCkpLHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsPUVlfWVsc2UgdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmw9IiI7Ii8iPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwuc2xpY2UoLTEpJiYodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmw9dGhpcy5z''@;'; + put 'put ''YXNqc0NvbmZpZy5zZXJ2ZXJVcmwuc2xpY2UoMCwtMSkpLHRoaXMucmVxdWVzdENsaWVudD90aGlzLnJlcXVlc3RDbGllbnQuc2V0Q29uZmlnKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzanNDb25maWcuaHR0cHNBZ2VudE9wdGlvbnMpOnRoaXMucmVxdWVzdENsaWVudD1u''@;'; + put 'put ''ZXcodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXNqcz92ZS5TYXNqc1JlcXVlc3RDbGllbnQ6ZGUuUmVxdWVzdENsaWVudCkodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5odHRwc0FnZW50T3B0aW9ucyx0aGlzLnNhc2pz''@;'; + put 'put ''Q29uZmlnLnJlcXVlc3RIaXN0b3J5TGltaXQpLHRoaXMuam9ic1BhdGg9dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXNWaXlhP3RoaXMuc2FzanNDb25maWcucGF0aFNBU1ZpeWE6dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlw''@;'; + put 'put ''ZS5TYXM5P3RoaXMuc2FzanNDb25maWcucGF0aFNBUzk6dGhpcy5zYXNqc0NvbmZpZy5wYXRoU0FTSlMsdGhpcy5hdXRoTWFuYWdlcj1uZXcgb2UuQXV0aE1hbmFnZXIodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlLHRoaXMucmVxdWVzdENs''@;'; + put 'put ''aWVudCx0aGlzLnJlc2VuZFdhaXRpbmdSZXF1ZXN0cyksdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXNWaXlhJiYodGhpcy5zYXNWaXlhQXBpQ2xpZW50P3RoaXMuc2FzVml5YUFwaUNsaWVudC5zZXRDb25maWcodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJV''@;'; + put 'put ''cmwsdGhpcy5zYXNqc0NvbmZpZy5hcHBMb2MpOnRoaXMuc2FzVml5YUFwaUNsaWVudD1uZXcgcS5TQVNWaXlhQXBpQ2xpZW50KHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzanNDb25maWcuYXBwTG9jLHRoaXMuc2FzanNDb25maWcuY29udGV4dE5hbWUsdGhpcy5yZXF1ZXN0''@;'; + put 'put ''Q2xpZW50KSx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZGVidWc9dGhpcy5zYXNqc0NvbmZpZy5kZWJ1ZyksdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXM5JiYodGhpcy5zYXM5QXBpQ2xpZW50P3RoaXMuc2FzOUFwaUNsaWVudC5zZXRDb25maWcodGhpcy5z''@;'; + put 'put ''YXNqc0NvbmZpZy5zZXJ2ZXJVcmwpOnRoaXMuc2FzOUFwaUNsaWVudD1uZXcgSi5TQVM5QXBpQ2xpZW50KHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuam9ic1BhdGgsdGhpcy5zYXNqc0NvbmZpZy5odHRwc0FnZW50T3B0aW9ucykpLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlw''@;'; + put 'put ''ZT09PWNlLlNlcnZlclR5cGUuU2FzanMmJih0aGlzLnNhc0pTQXBpQ2xpZW50fHwodGhpcy5zYXNKU0FwaUNsaWVudD1uZXcgc2UuU0FTanNBcGlDbGllbnQodGhpcy5yZXF1ZXN0Q2xpZW50KSkpLHRoaXMuZmlsZVVwbG9hZGVyPW5ldyBBZS5GaWxlVXBsb2FkZXIodGhpcy5zYXNqc0NvbmZp''@;'; + put 'put ''Zy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlLHRoaXMuam9ic1BhdGgsdGhpcy5yZXF1ZXN0Q2xpZW50KSx0aGlzLndlYkpvYkV4ZWN1dG9yPW5ldyBBZS5XZWJKb2JFeGVjdXRvcih0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCx0aGlzLnNhc2pzQ29uZmlnLnNlcnZl''@;'; + put 'put ''clR5cGUsdGhpcy5qb2JzUGF0aCx0aGlzLnJlcXVlc3RDbGllbnQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50KSx0aGlzLnNhczlKb2JFeGVjdXRvcj1uZXcgQWUuU2FzOUpvYkV4ZWN1dG9yKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSx0aGlz''@;'; + put 'put ''LmpvYnNQYXRoLHRoaXMucmVxdWVzdENsaWVudCx0aGlzLnNhc2pzQ29uZmlnLmh0dHBzQWdlbnRPcHRpb25zKSx0aGlzLmNvbXB1dGVKb2JFeGVjdXRvcj1uZXcgQWUuQ29tcHV0ZUpvYkV4ZWN1dG9yKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzVml5YUFwaUNsaWVudCks''@;'; + put 'put ''dGhpcy5qZXNKb2JFeGVjdXRvcj1uZXcgQWUuSmVzSm9iRXhlY3V0b3IodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNWaXlhQXBpQ2xpZW50KX0sVGUucHJvdG90eXBlLmNyZWF0ZUZvbGRlcnNBbmRTZXJ2aWNlcz1mdW5jdGlvbihFZSxoZSxPLHosbmUpe3JldHVybiBsZSh0''@;'; + put 'put ''aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdGU9dGhpcztyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHgpe3N3aXRjaCh4LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsKDAsTi5hc3luY0ZvckVhY2gpKGhlLGZ1bmN0aW9uKFApe3JldHVybiBsZSh0ZSx2b2lkIDAsdm9pZCAwLGZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihWKXtzd2l0Y2goVi5sYWJlbCl7Y2FzZSAwOnN3aXRjaChQLnR5cGUpe2Nhc2UiZm9sZGVyIjpyZXR1cm5bMywxXTtjYXNlImZpbGUiOnJldHVyblszLDNdO2Nhc2Uic2VydmljZSI6cmV0dXJuWzMsNV19cmV0dXJuWzMsN107Y2FzZSAxOnJl''@;'; + put 'put ''dHVybls0LHRoaXMuY3JlYXRlRm9sZGVyKFAubmFtZSxFZSx2b2lkIDAsTyx6LG5lKV07Y2FzZSAyOnJldHVybiBWLnNlbnQoKSxbMyw4XTtjYXNlIDM6cmV0dXJuWzQsdGhpcy5jcmVhdGVGaWxlKFAubmFtZSxQLmNvZGUsRWUsdm9pZCAwLE8seildO2Nhc2UgNDpyZXR1cm4gVi5zZW50KCks''@;'; + put 'put ''WzMsOF07Y2FzZSA1OnJldHVybls0LHRoaXMuY3JlYXRlSm9iRGVmaW5pdGlvbihQLm5hbWUsUC5jb2RlLEVlLHZvaWQgMCxPLHopXTtjYXNlIDY6cmV0dXJuIFYuc2VudCgpLFszLDhdO2Nhc2UgNzp0aHJvdyBuZXcgRXJyb3IoIlVuaWRlbnRpZmllZCBtZW1iZXIgJyIuY29uY2F0KFAubmFt''@;'; + put 'put ''ZSwiJyBwcm92aWRlZC4iKSk7Y2FzZSA4OnJldHVybiJmb2xkZXIiPT09UC50eXBlJiZQLm1lbWJlcnMmJlAubWVtYmVycy5sZW5ndGg/WzQsdGhpcy5jcmVhdGVGb2xkZXJzQW5kU2VydmljZXMoIiIuY29uY2F0KEVlLCIvIikuY29uY2F0KFAubmFtZSksUC5tZW1iZXJzLE8seixuZSldOlsz''@;'; + put 'put ''LDEwXTtjYXNlIDk6Vi5zZW50KCksVi5sYWJlbD0xMDtjYXNlIDEwOnJldHVyblsyXX19KX0pfSldO2Nhc2UgMTpyZXR1cm4geC5zZW50KCksWzJdfX0pfSl9LFRlLnByb3RvdHlwZS5pc01ldGhvZFN1cHBvcnRlZD1mdW5jdGlvbihFZSxoZSl7aWYoIXRoaXMuc2FzanNDb25maWcuc2VydmVy''@;'; + put 'put ''VHlwZXx8IWhlLmluY2x1ZGVzKHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSkpdGhyb3cgbmV3IEVycm9yKCJNZXRob2QgJyIuY29uY2F0KEVlLCInIGlzIG9ubHkgc3VwcG9ydGVkIG9uICIpLmNvbmNhdChoZS5qb2luKCIsICIpLCIgc2VydmVycy4iKSl9LFRlfSgpO1EuZGVmYXVsdD1J''@;'; + put 'put ''ZX0sMzQ2NzpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3JldHVybiBuZXcoY2V8fChjZT1Qcm9taXNlKSkoZnVuY3Rpb24odmUsQWUpe2Z1bmN0aW9uIGtlKFRlKXt0cnl7SWUoZGUubmV4dChU''@;'; + put 'put ''ZSkpfWNhdGNoKEVlKXtBZShFZSl9fWZ1bmN0aW9uIFNlKFRlKXt0cnl7SWUoZGUudGhyb3coVGUpKX1jYXRjaChFZSl7QWUoRWUpfX1mdW5jdGlvbiBJZShUZSl7dmFyIEVlO1RlLmRvbmU/dmUoVGUudmFsdWUpOihFZT1UZS52YWx1ZSxFZSBpbnN0YW5jZW9mIGNlP0VlOm5ldyBjZShmdW5j''@;'; + put 'put ''dGlvbihoZSl7aGUoRWUpfSkpLnRoZW4oa2UsU2UpfUllKChkZT1kZS5hcHBseShzZSxvZXx8W10pKS5uZXh0KCkpfSl9LGxlPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKHNlLG9lKXt2YXIgY2UsZGUsdmUsQWUsa2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmdmVb''@;'; + put 'put ''MF0pdGhyb3cgdmVbMV07cmV0dXJuIHZlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIEFlPXtuZXh0OlNlKDApLHRocm93OlNlKDEpLHJldHVybjpTZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKEFlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30p''@;'; + put 'put ''LEFlO2Z1bmN0aW9uIFNlKEllKXtyZXR1cm4gZnVuY3Rpb24oVGUpe3JldHVybiBmdW5jdGlvbihFZSl7aWYoY2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7a2U7KXRyeXtpZihjZT0xLGRlJiYodmU9MiZFZVswXT9kZS5yZXR1''@;'; + put 'put ''cm46RWVbMF0/ZGUudGhyb3d8fCgodmU9ZGUucmV0dXJuKSYmdmUuY2FsbChkZSksMCk6ZGUubmV4dCkmJiEodmU9dmUuY2FsbChkZSxFZVsxXSkpLmRvbmUpcmV0dXJuIHZlO3N3aXRjaChkZT0wLHZlJiYoRWU9WzImRWVbMF0sdmUudmFsdWVdKSxFZVswXSl7Y2FzZSAwOmNhc2UgMTp2ZT1F''@;'; + put 'put ''ZTticmVhaztjYXNlIDQ6cmV0dXJuIGtlLmxhYmVsKysse3ZhbHVlOkVlWzFdLGRvbmU6ITF9O2Nhc2UgNTprZS5sYWJlbCsrLGRlPUVlWzFdLEVlPVswXTtjb250aW51ZTtjYXNlIDc6RWU9a2Uub3BzLnBvcCgpLGtlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKCh2ZT0odmU9''@;'; + put 'put ''a2UudHJ5cykubGVuZ3RoPjAmJnZlW3ZlLmxlbmd0aC0xXSl8fDYhPT1FZVswXSYmMiE9PUVlWzBdKSl7a2U9MDtjb250aW51ZX1pZigzPT09RWVbMF0mJighdmV8fEVlWzFdPnZlWzBdJiZFZVsxXTx2ZVszXSkpe2tlLmxhYmVsPUVlWzFdO2JyZWFrfWlmKDY9PT1FZVswXSYma2UubGFiZWw8''@;'; + put 'put ''dmVbMV0pe2tlLmxhYmVsPXZlWzFdLHZlPUVlO2JyZWFrfWlmKHZlJiZrZS5sYWJlbDx2ZVsyXSl7a2UubGFiZWw9dmVbMl0sa2Uub3BzLnB1c2goRWUpO2JyZWFrfXZlWzJdJiZrZS5vcHMucG9wKCksa2UudHJ5cy5wb3AoKTtjb250aW51ZX1FZT1vZS5jYWxsKHNlLGtlKX1jYXRjaChoZSl7''@;'; + put 'put ''RWU9WzYsaGVdLGRlPTB9ZmluYWxseXtjZT12ZT0wfWlmKDUmRWVbMF0pdGhyb3cgRWVbMV07cmV0dXJue3ZhbHVlOkVlWzBdP0VlWzFdOnZvaWQgMCxkb25lOiEwfX0oW0llLFRlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU0FTanNB''@;'; + put 'put ''cGlDbGllbnQ9dm9pZCAwO3ZhciBZPVooMzkwMCksVz1aKDU3KSxOPVooMjQ5KSxlZT1aKDU5MjgpLHE9Wig3MDQpLEo9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzZShvZSl7dGhpcy5yZXF1ZXN0Q2xpZW50PW9lfXJldHVybiBzZS5wcm90b3R5cGUuZGVwbG95PWZ1bmN0aW9uKG9lLGNlLGRlKXty''@;'; + put 'put ''ZXR1cm4gaWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHZlLEFlO3JldHVybiBsZSh0aGlzLGZ1bmN0aW9uKGtlKXtzd2l0Y2goa2UubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdmU9KGRlfHx7fSkuYWNjZXNzX3Rva2VuLGRlP1s0LCgwLHEuZ2V0VG9rZW5zKSh0aGlzLnJlcXVl''@;'; + put 'put ''c3RDbGllbnQsZGUsWS5TZXJ2ZXJUeXBlLlNhc2pzKV06WzMsMl07Y2FzZSAxOnZlPWtlLnNlbnQoKS5hY2Nlc3NfdG9rZW4sa2UubGFiZWw9MjtjYXNlIDI6cmV0dXJuIG9lLmFwcExvYz1vZS5hcHBMb2N8fGNlLFs0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KCJTQVNqc0FwaS9kcml2ZS9k''@;'; + put 'put ''ZXBsb3kiLG9lLHZlLHZvaWQgMCx7fSx7bWF4Q29udGVudExlbmd0aDoxLzAsbWF4Qm9keUxlbmd0aDoxLzB9KV07Y2FzZSAzOnJldHVybiBBZT1rZS5zZW50KCkucmVzdWx0LFsyLFByb21pc2UucmVzb2x2ZShBZSldfX0pfSl9LHNlLnByb3RvdHlwZS5leGVjdXRlSm9iPWZ1bmN0aW9uKG9l''@;'; + put 'put ''LGNlKXtyZXR1cm4gaWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHZlO3JldHVybiBsZSh0aGlzLGZ1bmN0aW9uKEFlKXtzd2l0Y2goQWUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiU0FTanNBcGkvc3RwL2V4ZWN1dGUiLG9lLGNl''@;'; + put 'put ''P2NlLmFjY2Vzc190b2tlbjp2b2lkIDApXTtjYXNlIDE6cmV0dXJuIHZlPUFlLnNlbnQoKS5yZXN1bHQsT2JqZWN0LmtleXModmUpLmluY2x1ZGVzKCJfd2Vib3V0IikmJih2ZS5fd2Vib3V0PSgwLGVlLnBhcnNlV2Vib3V0UmVzcG9uc2UpKHZlLl93ZWJvdXQpKSxbMixQcm9taXNlLnJlc29s''@;'; + put 'put ''dmUodmUpXX19KX0pfSxzZS5wcm90b3R5cGUuZXhlY3V0ZVNjcmlwdD1mdW5jdGlvbihvZSxjZSl7cmV0dXJuIGllKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBkZSx2ZTtyZXR1cm4gbGUodGhpcyxmdW5jdGlvbihBZSl7c3dpdGNoKEFlLmxhYmVsKXtjYXNlIDA6cmV0dXJu''@;'; + put 'put ''IGRlPShjZXx8e30pLmFjY2Vzc190b2tlbixjZT9bNCwoMCxxLmdldFRva2VucykodGhpcy5yZXF1ZXN0Q2xpZW50LGNlLFkuU2VydmVyVHlwZS5TYXNqcyldOlszLDJdO2Nhc2UgMTpkZT1BZS5zZW50KCkuYWNjZXNzX3Rva2VuLEFlLmxhYmVsPTI7Y2FzZSAyOnJldHVybiB2ZT0iIixbNCx0''@;'; + put 'put ''aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiU0FTanNBcGkvY29kZS9leGVjdXRlIix7Y29kZTpvZX0sZGUpLnRoZW4oZnVuY3Rpb24oa2Upe3ZhciBTZTtudWxsIT09KFNlPWtlLnJlc3VsdCkmJnZvaWQgMCE9PVNlJiZTZS5sb2cmJih2ZT1rZS5yZXN1bHQubG9nLm1hcChmdW5jdGlvbihJZSl7''@;'; + put 'put ''cmV0dXJuIEllLmxpbmV9KS5qb2luKCJcbiIpKX0pLmNhdGNoKGZ1bmN0aW9uKGtlKXt2ZT1rZX0pXTtjYXNlIDM6cmV0dXJuIEFlLnNlbnQoKSxbMix2ZV19fSl9KX0sc2UucHJvdG90eXBlLmdldEFjY2Vzc1Rva2VuPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4gaWUodGhpcyx2b2lkIDAsdm9p''@;'; + put 'put ''ZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIGxlKHRoaXMsZnVuY3Rpb24oZGUpe3JldHVyblsyLCgwLFcuZ2V0QWNjZXNzVG9rZW5Gb3JTYXNqcykodGhpcy5yZXF1ZXN0Q2xpZW50LG9lLGNlKV19KX0pfSxzZS5wcm90b3R5cGUucmVmcmVzaFRva2Vucz1mdW5jdGlvbihvZSl7cmV0dXJuIGllKHRo''@;'; + put 'put ''aXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzLGZ1bmN0aW9uKGNlKXtyZXR1cm5bMiwoMCxOLnJlZnJlc2hUb2tlbnNGb3JTYXNqcykodGhpcy5yZXF1ZXN0Q2xpZW50LG9lKV19KX0pfSxzZX0oKTtRLlNBU2pzQXBpQ2xpZW50PUp9LDY5MDM6ZnVuY3Rpb24oVSxR''@;'; + put 'put ''LFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KSxsZT1aKDUxMDgpLFk9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKHNlLG9lLGNlLGRlKXtyZXR1cm4gbmV3KGNlfHwoY2U9UHJvbWlzZSkpKGZ1bmN0aW9uKHZlLEFlKXtmdW5jdGlvbiBrZShUZSl7dHJ5e0llKGRlLm5leHQo''@;'; + put 'put ''VGUpKX1jYXRjaChFZSl7QWUoRWUpfX1mdW5jdGlvbiBTZShUZSl7dHJ5e0llKGRlLnRocm93KFRlKSl9Y2F0Y2goRWUpe0FlKEVlKX19ZnVuY3Rpb24gSWUoVGUpe3ZhciBFZTtUZS5kb25lP3ZlKFRlLnZhbHVlKTooRWU9VGUudmFsdWUsRWUgaW5zdGFuY2VvZiBjZT9FZTpuZXcgY2UoZnVu''@;'; + put 'put ''Y3Rpb24oaGUpe2hlKEVlKX0pKS50aGVuKGtlLFNlKX1JZSgoZGU9ZGUuYXBwbHkoc2Usb2V8fFtdKSkubmV4dCgpKX0pfSxXPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKHNlLG9lKXt2YXIgY2UsZGUsdmUsQWUsa2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmdmVb''@;'; + put 'put ''MF0pdGhyb3cgdmVbMV07cmV0dXJuIHZlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIEFlPXtuZXh0OlNlKDApLHRocm93OlNlKDEpLHJldHVybjpTZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKEFlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30p''@;'; + put 'put ''LEFlO2Z1bmN0aW9uIFNlKEllKXtyZXR1cm4gZnVuY3Rpb24oVGUpe3JldHVybiBmdW5jdGlvbihFZSl7aWYoY2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7a2U7KXRyeXtpZihjZT0xLGRlJiYodmU9MiZFZVswXT9kZS5yZXR1''@;'; + put 'put ''cm46RWVbMF0/ZGUudGhyb3d8fCgodmU9ZGUucmV0dXJuKSYmdmUuY2FsbChkZSksMCk6ZGUubmV4dCkmJiEodmU9dmUuY2FsbChkZSxFZVsxXSkpLmRvbmUpcmV0dXJuIHZlO3N3aXRjaChkZT0wLHZlJiYoRWU9WzImRWVbMF0sdmUudmFsdWVdKSxFZVswXSl7Y2FzZSAwOmNhc2UgMTp2ZT1F''@;'; + put 'put ''ZTticmVhaztjYXNlIDQ6cmV0dXJuIGtlLmxhYmVsKysse3ZhbHVlOkVlWzFdLGRvbmU6ITF9O2Nhc2UgNTprZS5sYWJlbCsrLGRlPUVlWzFdLEVlPVswXTtjb250aW51ZTtjYXNlIDc6RWU9a2Uub3BzLnBvcCgpLGtlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKCh2ZT0odmU9''@;'; + put 'put ''a2UudHJ5cykubGVuZ3RoPjAmJnZlW3ZlLmxlbmd0aC0xXSl8fDYhPT1FZVswXSYmMiE9PUVlWzBdKSl7a2U9MDtjb250aW51ZX1pZigzPT09RWVbMF0mJighdmV8fEVlWzFdPnZlWzBdJiZFZVsxXTx2ZVszXSkpe2tlLmxhYmVsPUVlWzFdO2JyZWFrfWlmKDY9PT1FZVswXSYma2UubGFiZWw8''@;'; + put 'put ''dmVbMV0pe2tlLmxhYmVsPXZlWzFdLHZlPUVlO2JyZWFrfWlmKHZlJiZrZS5sYWJlbDx2ZVsyXSl7a2UubGFiZWw9dmVbMl0sa2Uub3BzLnB1c2goRWUpO2JyZWFrfXZlWzJdJiZrZS5vcHMucG9wKCksa2UudHJ5cy5wb3AoKTtjb250aW51ZX1FZT1vZS5jYWxsKHNlLGtlKX1jYXRjaChoZSl7''@;'; + put 'put ''RWU9WzYsaGVdLGRlPTB9ZmluYWxseXtjZT12ZT0wfWlmKDUmRWVbMF0pdGhyb3cgRWVbMV07cmV0dXJue3ZhbHVlOkVlWzBdP0VlWzFdOnZvaWQgMCxkb25lOiEwfX0oW0llLFRlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU2Vzc2lv''@;'; + put 'put ''bk1hbmFnZXI9dm9pZCAwO3ZhciBOPVooMTM5NSksZWU9Wig1OTI4KSxxPVooOTc3OCksSj1mdW5jdGlvbigpe2Z1bmN0aW9uIHNlKG9lLGNlLGRlKXt0aGlzLnNlcnZlclVybD1vZSx0aGlzLmNvbnRleHROYW1lPWNlLHRoaXMucmVxdWVzdENsaWVudD1kZSx0aGlzLmxvZ2dlZEVycm9ycz1b''@;'; + put 'put ''XSx0aGlzLnNlc3Npb25zPVtdLHRoaXMuY3VycmVudENvbnRleHQ9bnVsbCx0aGlzLl9kZWJ1Zz0hMSx0aGlzLnByaW50ZWRTZXNzaW9uU3RhdGU9e3ByaW50ZWQ6ITEsc3RhdGU6IiJ9LG9lJiYoMCxlZS5pc1VybCkob2UpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2UucHJvdG90''@;'; + put 'put ''eXBlLCJkZWJ1ZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWJ1Z30sc2V0OmZ1bmN0aW9uKG9lKXt0aGlzLl9kZWJ1Zz1vZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxzZS5wcm90b3R5cGUuZ2V0U2Vzc2lvbj1mdW5jdGlvbihvZSl7cmV0dXJuIFkodGhpcyx2''@;'; + put 'put ''b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGNlLGRlO3JldHVybiBXKHRoaXMsZnVuY3Rpb24odmUpe3N3aXRjaCh2ZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuY3JlYXRlU2Vzc2lvbnMob2UpXTtjYXNlIDE6cmV0dXJuIHZlLnNlbnQoKSxbNCx0aGlzLmNyZWF0ZUFuZFdhaXRG''@;'; + put 'put ''b3JTZXNzaW9uKG9lKV07Y2FzZSAyOnJldHVybiB2ZS5zZW50KCksY2U9dGhpcy5zZXNzaW9ucy5wb3AoKSxkZT0oKG5ldyBEYXRlKS5nZXRUaW1lKCktbmV3IERhdGUoY2UuY3JlYXRpb25UaW1lU3RhbXApLmdldFRpbWUoKSkvMWUzLCFjZS5hdHRyaWJ1dGVzfHxkZT49Y2UuYXR0cmlidXRl''@;'; + put 'put ''cy5zZXNzaW9uSW5hY3RpdmVUaW1lb3V0P1s0LHRoaXMuY3JlYXRlU2Vzc2lvbnMob2UpXTpbMyw0XTtjYXNlIDM6cmV0dXJuIHZlLnNlbnQoKSxbMix0aGlzLnNlc3Npb25zLnBvcCgpXTtjYXNlIDQ6cmV0dXJuWzIsY2VdfX0pfSl9LHNlLnByb3RvdHlwZS5jbGVhclNlc3Npb249ZnVuY3Rp''@;'; + put 'put ''b24ob2UsY2Upe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBkZT10aGlzO3JldHVybiBXKHRoaXMsZnVuY3Rpb24odmUpe3N3aXRjaCh2ZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5kZWxldGUoIi9jb21wdXRlL3Nlc3Npb25z''@;'; + put 'put ''LyIuY29uY2F0KG9lKSxjZSkudGhlbihmdW5jdGlvbigpe2RlLnNlc3Npb25zPWRlLnNlc3Npb25zLmZpbHRlcihmdW5jdGlvbihBZSl7cmV0dXJuIEFlLmlkIT09b2V9KX0pLmNhdGNoKGZ1bmN0aW9uKEFlKXt0aHJvdygwLHEucHJlZml4TWVzc2FnZSkoQWUsIkVycm9yIHdoaWxlIGRlbGV0''@;'; + put 'put ''aW5nIHNlc3Npb24uICIpfSldO2Nhc2UgMTpyZXR1cm5bMix2ZS5zZW50KCldfX0pfSl9LHNlLnByb3RvdHlwZS5jcmVhdGVTZXNzaW9ucz1mdW5jdGlvbihvZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGNlPXRoaXM7cmV0dXJuIFcodGhpcyxmdW5jdGlv''@;'; + put 'put ''bihkZSl7c3dpdGNoKGRlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuc2Vzc2lvbnMubGVuZ3RoP1szLDRdOnRoaXMuY3VycmVudENvbnRleHQ/WzMsMl06WzQsdGhpcy5zZXRDdXJyZW50Q29udGV4dChvZSkuY2F0Y2goZnVuY3Rpb24odmUpe3Rocm93IHZlfSldO2Nhc2UgMTpkZS5zZW50''@;'; + put 'put ''KCksZGUubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzQsKDAsZWUuYXN5bmNGb3JFYWNoKShuZXcgQXJyYXkoMSksZnVuY3Rpb24oKXtyZXR1cm4gWShjZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHZlO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oQWUpe3N3aXRjaChBZS5sYWJlbCl7Y2Fz''@;'; + put 'put ''ZSAwOnJldHVybls0LHRoaXMuY3JlYXRlQW5kV2FpdEZvclNlc3Npb24ob2UpLmNhdGNoKGZ1bmN0aW9uKGtlKXt0aHJvdyBrZX0pXTtjYXNlIDE6cmV0dXJuIHZlPUFlLnNlbnQoKSx0aGlzLnNlc3Npb25zLnB1c2godmUpLFsyXX19KX0pfSkuY2F0Y2goZnVuY3Rpb24odmUpe3Rocm93IHZl''@;'; + put 'put ''fSldO2Nhc2UgMzpkZS5zZW50KCksZGUubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LHNlLnByb3RvdHlwZS5jcmVhdGVBbmRXYWl0Rm9yU2Vzc2lvbj1mdW5jdGlvbihvZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGNlLGRlO3JldHVybiBXKHRo''@;'; + put 'put ''aXMsZnVuY3Rpb24oQWUpe3N3aXRjaChBZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHMvIikuY29uY2F0KHRoaXMuY3VycmVudENvbnRleHQuaWQsIi9zZXNzaW9ucyIpLHt9''@;'; + put 'put ''LG9lKS5jYXRjaChmdW5jdGlvbihrZSl7dGhyb3cga2V9KV07Y2FzZSAxOnJldHVybiBjZT1BZS5zZW50KCksWzQsdGhpcy53YWl0Rm9yU2Vzc2lvbihkZT1jZS5yZXN1bHQsY2UuZXRhZyxvZSldO2Nhc2UgMjpyZXR1cm4gQWUuc2VudCgpLHRoaXMuc2Vzc2lvbnMucHVzaChkZSksWzIsZGVd''@;'; + put 'put ''fX0pfSl9LHNlLnByb3RvdHlwZS5zZXRDdXJyZW50Q29udGV4dD1mdW5jdGlvbihvZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGNlLHZlLEFlPXRoaXM7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihrZSl7c3dpdGNoKGtlLmxhYmVsKXtjYXNlIDA6cmV0dXJu''@;'; + put 'put ''IHRoaXMuY3VycmVudENvbnRleHQ/WzMsMl06WzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9jb21wdXRlL2NvbnRleHRzP2xpbWl0PTEwMDAwIiksb2UpLmNhdGNoKGZ1bmN0aW9uKFNlKXt0aHJvdyBTZX0pXTtjYXNlIDE6aWYoY2U9a2Uuc2Vu''@;'; + put 'put ''dCgpLnJlc3VsdCwhKHZlPShjZSYmY2UuaXRlbXMmJmNlLml0ZW1zLmxlbmd0aD9jZS5pdGVtczpbXSkuZmluZChmdW5jdGlvbihTZSl7cmV0dXJuIFNlLm5hbWU9PT1BZS5jb250ZXh0TmFtZX0pKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBjb250ZXh0ICciLmNvbmNhdCh0aGlzLmNvbnRleHRO''@;'; + put 'put ''YW1lLCInIHdhcyBub3QgZm91bmQgb24gdGhlIHNlcnZlciAiKS5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi4iKSk7dGhpcy5jdXJyZW50Q29udGV4dD12ZSxQcm9taXNlLnJlc29sdmUoKSxrZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMl19fSl9KX0sc2UucHJvdG90eXBlLmdldEhlYWRlcnM9''@;'; + put 'put ''ZnVuY3Rpb24ob2Upe3ZhciBjZT17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifTtyZXR1cm4gb2UmJihjZS5BdXRob3JpemF0aW9uPSJCZWFyZXIgIi5jb25jYXQob2UpKSxjZX0sc2UucHJvdG90eXBlLndhaXRGb3JTZXNzaW9uPWZ1bmN0aW9uKG9lLGNlLGRlKXt2YXIgdmU7''@;'; + put 'put ''cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEFlLGtlLFNlLEllLEVlLGhlO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oTyl7c3dpdGNoKE8ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gQWU9aWUubG9nZ2VyfHxsZSxrZT1vZS5zdGF0ZSxTZT1vZS5saW5rcy5maW5kKGZ1''@;'; + put 'put ''bmN0aW9uKHope3JldHVybiJzdGF0ZSI9PT16LnJlbH0pLCJwZW5kaW5nIiE9PWtlJiYicnVubmluZyIhPT1rZSYmIiIhPT1rZT9bMyw2XTpTZT8odGhpcy5kZWJ1ZyYmIXRoaXMucHJpbnRlZFNlc3Npb25TdGF0ZS5wcmludGVkJiYoQWUuaW5mbygiUG9sbGluZzogIi5jb25jYXQodGhpcy5z''@;'; + put 'put ''ZXJ2ZXJVcmwrU2UuaHJlZikpLHRoaXMucHJpbnRlZFNlc3Npb25TdGF0ZS5wcmludGVkPSEwKSxbNCx0aGlzLmdldFNlc3Npb25TdGF0ZSgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwpLmNvbmNhdChTZS5ocmVmLCI/d2FpdD0zMCIpLGNlLGRlKS5jYXRjaChmdW5jdGlvbih6KXt0aHJvdygw''@;'; + put 'put ''LHEucHJlZml4TWVzc2FnZSkoeiwiRXJyb3Igd2hpbGUgZ2V0dGluZyBzZXNzaW9uIHN0YXRlLiIpfSldKTpbMyw0XTtjYXNlIDE6cmV0dXJuIEllPU8uc2VudCgpLEVlPUllLnJlc3BvbnNlU3RhdHVzLGtlPUllLnJlc3VsdC50cmltKCksdGhpcy5kZWJ1ZyYmdGhpcy5wcmludGVkU2Vzc2lv''@;'; + put 'put ''blN0YXRlLnN0YXRlIT09a2UmJihBZS5pbmZvKCJDdXJyZW50IHNlc3Npb24gc3RhdGUgaXMgJyIuY29uY2F0KGtlLCInIikpLHRoaXMucHJpbnRlZFNlc3Npb25TdGF0ZS5zdGF0ZT1rZSx0aGlzLnByaW50ZWRTZXNzaW9uU3RhdGUucHJpbnRlZD0hMSksa2U/WzMsM106KGhlPW5ldyBOLk5v''@;'; + put 'put ''U2Vzc2lvblN0YXRlRXJyb3IoRWUsdGhpcy5zZXJ2ZXJVcmwrU2UuaHJlZixudWxsPT09KHZlPW9lLmxpbmtzLmZpbmQoZnVuY3Rpb24oeil7cmV0dXJuImxvZyI9PT16LnJlbH0pKXx8dm9pZCAwPT09dmU/dm9pZCAwOnZlLmhyZWYpLHRoaXMubG9nZ2VkRXJyb3JzLmZpbmQoZnVuY3Rpb24o''@;'; + put 'put ''eil7cmV0dXJuIHouc2VydmVyUmVzcG9uc2VTdGF0dXM9PT1oZS5zZXJ2ZXJSZXNwb25zZVN0YXR1c30pfHwodGhpcy5sb2dnZWRFcnJvcnMucHVzaChoZSksQWUuaW5mbyhoZS5tZXNzYWdlKSksWzQsdGhpcy53YWl0Rm9yU2Vzc2lvbihvZSxjZSxkZSldKTtjYXNlIDI6cmV0dXJuWzIsTy5z''@;'; + put 'put ''ZW50KCldO2Nhc2UgMzpjYXNlIDY6cmV0dXJuIHRoaXMubG9nZ2VkRXJyb3JzPVtdLFsyLGtlXTtjYXNlIDQ6dGhyb3ciRXJyb3Igd2hpbGUgZ2V0dGluZyBzZXNzaW9uIHN0YXRlIGxpbmsuIjtjYXNlIDU6cmV0dXJuWzMsN107Y2FzZSA3OnJldHVyblsyXX19KX0pfSxzZS5wcm90b3R5cGUu''@;'; + put 'put ''Z2V0U2Vzc2lvblN0YXRlPWZ1bmN0aW9uKG9lLGNlLGRlKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKHZlKXtzd2l0Y2godmUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KG9lLGRlLCJ0''@;'; + put 'put ''ZXh0L3BsYWluIix7IklmLU5vbmUtTWF0Y2giOmNlfSkudGhlbihmdW5jdGlvbihBZSl7cmV0dXJue3Jlc3VsdDpBZS5yZXN1bHQscmVzcG9uc2VTdGF0dXM6QWUuc3RhdHVzfX0pLmNhdGNoKGZ1bmN0aW9uKEFlKXt0aHJvdyBBZX0pXTtjYXNlIDE6cmV0dXJuWzIsdmUuc2VudCgpXX19KX0p''@;'; + put 'put ''fSxzZS5wcm90b3R5cGUuZ2V0VmFyaWFibGU9ZnVuY3Rpb24ob2UsY2UsZGUpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24odmUpe3N3aXRjaCh2ZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5n''@;'; + put 'put ''ZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvY29tcHV0ZS9zZXNzaW9ucy8iKS5jb25jYXQob2UsIi92YXJpYWJsZXMvIikuY29uY2F0KGNlKSxkZSkuY2F0Y2goZnVuY3Rpb24oQWUpe3Rocm93KDAscS5wcmVmaXhNZXNzYWdlKShBZSwiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgc2Vzc2lv''@;'; + put 'put ''biB2YXJpYWJsZSAnIi5jb25jYXQoY2UsIicuIikpfSldO2Nhc2UgMTpyZXR1cm5bMix2ZS5zZW50KCldfX0pfSl9LHNlfSgpO1EuU2Vzc2lvbk1hbmFnZXI9Sn0sNTQwMTpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpLGxlPVooNTEwOCksWT10aGlzJiZ0aGlz''@;'; + put 'put ''Ll9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBZPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKEFlKXtmb3IodmFyIGtlLFNlPTEsSWU9YXJndW1lbnRzLmxlbmd0aDtTZTxJZTtTZSsrKWZvcih2YXIgVGUgaW4ga2U9YXJndW1lbnRzW1NlXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3Bl''@;'; + put 'put ''cnR5LmNhbGwoa2UsVGUpJiYoQWVbVGVdPWtlW1RlXSk7cmV0dXJuIEFlfSxZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sVz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oQWUsa2UsU2UsSWUpe3JldHVybiBuZXcoU2V8fChTZT1Qcm9taXNlKSkoZnVuY3Rpb24oVGUsRWUpe2Z1bmN0''@;'; + put 'put ''aW9uIGhlKG5lKXt0cnl7eihJZS5uZXh0KG5lKSl9Y2F0Y2godGUpe0VlKHRlKX19ZnVuY3Rpb24gTyhuZSl7dHJ5e3ooSWUudGhyb3cobmUpKX1jYXRjaCh0ZSl7RWUodGUpfX1mdW5jdGlvbiB6KG5lKXt2YXIgdGU7bmUuZG9uZT9UZShuZS52YWx1ZSk6KHRlPW5lLnZhbHVlLHRlIGluc3Rh''@;'; + put 'put ''bmNlb2YgU2U/dGU6bmV3IFNlKGZ1bmN0aW9uKHgpe3godGUpfSkpLnRoZW4oaGUsTyl9eigoSWU9SWUuYXBwbHkoQWUsa2V8fFtdKSkubmV4dCgpKX0pfSxOPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKEFlLGtlKXt2YXIgU2UsSWUsVGUsRWUsaGU9e2xhYmVsOjAsc2VudDpm''@;'; + put 'put ''dW5jdGlvbigpe2lmKDEmVGVbMF0pdGhyb3cgVGVbMV07cmV0dXJuIFRlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIEVlPXtuZXh0Ok8oMCksdGhyb3c6TygxKSxyZXR1cm46TygyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKEVlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4gdGhpc30pLEVlO2Z1bmN0aW9uIE8oeil7cmV0dXJuIGZ1bmN0aW9uKG5lKXtyZXR1cm4gZnVuY3Rpb24odGUpe2lmKFNlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2hlOyl0cnl7aWYoU2U9MSxJZSYmKFRlPTIm''@;'; + put 'put ''dGVbMF0/SWUucmV0dXJuOnRlWzBdP0llLnRocm93fHwoKFRlPUllLnJldHVybikmJlRlLmNhbGwoSWUpLDApOkllLm5leHQpJiYhKFRlPVRlLmNhbGwoSWUsdGVbMV0pKS5kb25lKXJldHVybiBUZTtzd2l0Y2goSWU9MCxUZSYmKHRlPVsyJnRlWzBdLFRlLnZhbHVlXSksdGVbMF0pe2Nhc2Ug''@;'; + put 'put ''MDpjYXNlIDE6VGU9dGU7YnJlYWs7Y2FzZSA0OnJldHVybiBoZS5sYWJlbCsrLHt2YWx1ZTp0ZVsxXSxkb25lOiExfTtjYXNlIDU6aGUubGFiZWwrKyxJZT10ZVsxXSx0ZT1bMF07Y29udGludWU7Y2FzZSA3OnRlPWhlLm9wcy5wb3AoKSxoZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6''@;'; + put 'put ''aWYoISgoVGU9KFRlPWhlLnRyeXMpLmxlbmd0aD4wJiZUZVtUZS5sZW5ndGgtMV0pfHw2IT09dGVbMF0mJjIhPT10ZVswXSkpe2hlPTA7Y29udGludWV9aWYoMz09PXRlWzBdJiYoIVRlfHx0ZVsxXT5UZVswXSYmdGVbMV08VGVbM10pKXtoZS5sYWJlbD10ZVsxXTticmVha31pZig2PT09dGVb''@;'; + put 'put ''MF0mJmhlLmxhYmVsPFRlWzFdKXtoZS5sYWJlbD1UZVsxXSxUZT10ZTticmVha31pZihUZSYmaGUubGFiZWw8VGVbMl0pe2hlLmxhYmVsPVRlWzJdLGhlLm9wcy5wdXNoKHRlKTticmVha31UZVsyXSYmaGUub3BzLnBvcCgpLGhlLnRyeXMucG9wKCk7Y29udGludWV9dGU9a2UuY2FsbChBZSxo''@;'; + put 'put ''ZSl9Y2F0Y2goeCl7dGU9WzYseF0sSWU9MH1maW5hbGx5e1NlPVRlPTB9aWYoNSZ0ZVswXSl0aHJvdyB0ZVsxXTtyZXR1cm57dmFsdWU6dGVbMF0/dGVbMV06dm9pZCAwLGRvbmU6ITB9fShbeixuZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9''@;'; + put 'put ''KSxRLmV4ZWN1dGVTY3JpcHQ9dm9pZCAwO3ZhciBlZT1aKDc3NTcpLHE9Wig5Nzc4KSxKPVooMzYwNyksc2U9Wig3MDQpLG9lPVooNTkyOCksY2U9Wig3MTQpLGRlPVooMTM0MyksdmU9Wig2NDk2KTtRLmV4ZWN1dGVTY3JpcHQ9ZnVuY3Rpb24gQWUoa2UsU2UsSWUsVGUsRWUsaGUsTyx6LG5l''@;'; + put 'put ''LHRlLHgsUCxWLFQpe3ZhciBTLEY7cmV0dXJuIHZvaWQgMD09PXomJih6PW51bGwpLHZvaWQgMD09PW5lJiYobmU9ITEpLHZvaWQgMD09PXRlJiYodGU9ITEpLHZvaWQgMD09PXgmJih4PSEwKSx2b2lkIDA9PT1WJiYoVj0hMSksVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIg''@;'; + put 'put ''eWUsQ2UsRGUsUGUsUWUsJGUsZ3Qsd3QsdnQsQXQsbXQsaHQsQnQsb24sX3QsdHQsZXQsYXQsTHQsQ3QsZnQsSHQsR2UsVWU9dGhpcztyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKHl0KXtzd2l0Y2goeXQubGFiZWwpe2Nhc2UgMDpyZXR1cm4geWU9KE98fHt9KS5hY2Nlc3NfdG9rZW4sTz9bNCwo''@;'; + put 'put ''MCxzZS5nZXRUb2tlbnMpKGtlLE8pXTpbMywyXTtjYXNlIDE6eWU9eXQuc2VudCgpLmFjY2Vzc190b2tlbix5dC5sYWJlbD0yO2Nhc2UgMjpDZT1pZS5sb2dnZXJ8fGxlLHl0LmxhYmVsPTM7Y2FzZSAzOnJldHVybiB5dC50cnlzLnB1c2goWzMsMTksLDIwXSksRGU9dm9pZCAwLFs0LFNlLmdl''@;'; + put 'put ''dFNlc3Npb24oeWUpLmNhdGNoKGZ1bmN0aW9uKGp0KXt0aHJvdygwLHEucHJlZml4TWVzc2FnZSkoanQsIkVycm9yIHdoaWxlIGdldHRpbmcgc2Vzc2lvbi4gIil9KV07Y2FzZSA0OnJldHVybiBQZT15dC5zZW50KCksRGU9UGUuaWQsVj9bNCxTZS5nZXRWYXJpYWJsZShEZSwiU1lTSk9CSUQi''@;'; + put 'put ''LHllKS5jYXRjaChmdW5jdGlvbihqdCl7dGhyb3coMCxxLnByZWZpeE1lc3NhZ2UpKGp0LCJFcnJvciB3aGlsZSBnZXR0aW5nIHNlc3Npb24gdmFyaWFibGUuICIpfSldOlszLDZdO2Nhc2UgNTooUWU9eXQuc2VudCgpLnJlc3VsdCkmJlFlLnZhbHVlJiYoJGU9SWU/VGUuc3BsaXQoSWUpLmpv''@;'; + put 'put ''aW4oIiIpLnJlcGxhY2UoL15cLy8sIiIpOlRlLChpZS5sb2dnZXJ8fGxlKS5pbmZvKCJUcmlnZ2VyZWQgJyIuY29uY2F0KCRlLCInIHdpdGggUElEICIpLmNvbmNhdChRZS52YWx1ZSwiIGF0ICIpLmNvbmNhdCgoMCxlZS50aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTKSgpKSkpLHl0LmxhYmVs''@;'; + put 'put ''PTY7Y2FzZSA2OnJldHVybiBndD17X2NvbnRleHROYW1lOmhlLF9PTUlUSlNPTkxJU1RJTkc6ITAsX09NSVRKU09OTE9HOiEwLF9PTUlUU0VTU0lPTlJFU1VMVFM6ITAsX09NSVRURVhUTElTVElORzohMCxfT01JVFRFWFRMT0c6ITB9LG5lJiYoZ3QuX09NSVRURVhUTE9HPSExLGd0Ll9PTUlU''@;'; + put 'put ''U0VTU0lPTlJFU1VMVFM9ITEpLHd0PXZvaWQgMCwoMCxvZS5pc1JlbGF0aXZlUGF0aCkoVGUpP3d0PSJleGVjLSIuY29uY2F0KFRlLmluY2x1ZGVzKCIvIik/VGUuc3BsaXQoIi8iKVsxXTpUZSk6KHZ0PVRlLnNwbGl0KCIvIiksd3Q9dnQucG9wKCkpLEF0PXtTWVNfSkVTX0pPQl9VUkk6IiIs''@;'; + put 'put ''X3Byb2dyYW06KDAsb2UuaXNSZWxhdGl2ZVBhdGgpKFRlKT9JZSsiLyIrVGU6VGV9LFQmJihBdD1ZKFkoe30sQXQpLFQpKSxuZSYmKEF0PVkoWSh7fSxBdCkse19ERUJVRzoxMzF9KSksbXQ9W10sej9KU09OLnN0cmluZ2lmeSh6KS5pbmNsdWRlcygiOyIpP1s0LCgwLHZlLnVwbG9hZFRhYmxl''@;'; + put 'put ''cykoa2Useix5ZSkuY2F0Y2goZnVuY3Rpb24oanQpe3Rocm93KDAscS5wcmVmaXhNZXNzYWdlKShqdCwiRXJyb3Igd2hpbGUgdXBsb2FkaW5nIHRhYmxlcy4gIil9KV06WzMsOF06WzMsOV07Y2FzZSA3OnJldHVybiBtdD15dC5zZW50KCksQXQuX3dlYmluX2ZpbGVfY291bnQ9bXQubGVuZ3Ro''@;'; + put 'put ''LG10LmZvckVhY2goZnVuY3Rpb24oanQsUXQpe0F0WyJfd2ViaW5fZmlsZXVyaSIuY29uY2F0KFF0KzEpXT0iL2ZpbGVzL2ZpbGVzLyIuY29uY2F0KGp0LmZpbGUuaWQpLEF0WyJfd2ViaW5fbmFtZSIuY29uY2F0KFF0KzEpXT1qdC50YWJsZU5hbWV9KSxbMyw5XTtjYXNlIDg6QXQ9WShZKHt9''@;'; + put 'put ''LEF0KSwoMCxjZS5mb3JtYXREYXRhRm9yUmVxdWVzdCkoeikpLHl0LmxhYmVsPTk7Y2FzZSA5OnJldHVybiBodD17bmFtZTp3dCxkZXNjcmlwdGlvbjoiUG93ZXJlZCBieSBTQVNqcyIsY29kZTpFZSx2YXJpYWJsZXM6QXQsYXJndW1lbnRzOmd0fSxbNCxrZS5wb3N0KCIvY29tcHV0ZS9zZXNz''@;'; + put 'put ''aW9ucy8iLmNvbmNhdChEZSwiL2pvYnMiKSxodCx5ZSkuY2F0Y2goZnVuY3Rpb24oanQpe3Rocm93KDAscS5wcmVmaXhNZXNzYWdlKShqdCwiRXJyb3Igd2hpbGUgcG9zdGluZyBqb2IuICIpfSldO2Nhc2UgMTA6cmV0dXJuIEJ0PXl0LnNlbnQoKSxvbj1CdC5yZXN1bHQseD8obmUmJihDZS5p''@;'; + put 'put ''bmZvKCJKb2IgaGFzIGJlZW4gc3VibWl0dGVkIGZvciAnIi5jb25jYXQod3QsIicuIikpLENlLmluZm8oIllvdSBjYW4gbW9uaXRvciB0aGUgam9iIHByb2dyZXNzIGF0ICciLmNvbmNhdChrZS5nZXRCYXNlVXJsKCkpLmNvbmNhdChvbi5saW5rcy5maW5kKGZ1bmN0aW9uKGp0KXtyZXR1cm4i''@;'; + put 'put ''c3RhdGUiPT09anQucmVsfSkuaHJlZiwiJy4iKSkpLFs0LCgwLGRlLnBvbGxKb2JTdGF0ZSkoa2Usb24sbmUsTyxQKS5jYXRjaChmdW5jdGlvbihqdCl7cmV0dXJuIFcoVWUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBRdCxnbixkbix5bixsbixObjtyZXR1cm4gTih0aGlzLGZ1bmN0''@;'; + put 'put ''aW9uKGJuKXtzd2l0Y2goYm4ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gUXQ9bnVsbD09PShsbj1udWxsPT1qdD92b2lkIDA6anQucmVzcG9uc2UpfHx2b2lkIDA9PT1sbj92b2lkIDA6bG4uZGF0YSxnbj0vZXJyPVswLTldKiwvLmV4ZWMoUXQpLCI1MTEzIiE9PShudWxsPT09KE5uPW51bGw9PWdu''@;'; + put 'put ''P3ZvaWQgMDpnblswXSl8fHZvaWQgMD09PU5uP3ZvaWQgMDpObi5zbGljZSg0LC0xKSk/WzMsMl06KGRuPW9uLmxpbmtzLmZpbmQoZnVuY3Rpb24oZXIpe3JldHVybiJ1cCI9PT1lci5yZWx9KS5ocmVmKyIvbG9nIix5bj1qdCxbNCwoMCxvZS5mZXRjaExvZ0J5Q2h1bmtzKShrZSx5ZSxkbiwx''@;'; + put 'put ''ZTYpXSk7Y2FzZSAxOnluLmxvZz1ibi5zZW50KCksYm4ubGFiZWw9MjtjYXNlIDI6dGhyb3coMCxxLnByZWZpeE1lc3NhZ2UpKGp0LCJFcnJvciB3aGlsZSBwb2xsaW5nIGpvYiBzdGF0dXMuICIpfX0pfSl9KV0pOlsyLFBlXTtjYXNlIDExOnJldHVybiBfdD15dC5zZW50KCksTz9bNCwoMCxz''@;'; + put 'put ''ZS5nZXRUb2tlbnMpKGtlLE8pXTpbMywxM107Y2FzZSAxMjp5ZT15dC5zZW50KCkuYWNjZXNzX3Rva2VuLHl0LmxhYmVsPTEzO2Nhc2UgMTM6cmV0dXJuWzQsa2UuZ2V0KCIvY29tcHV0ZS9zZXNzaW9ucy8iLmNvbmNhdChEZSwiL2pvYnMvIikuY29uY2F0KG9uLmlkKSx5ZSkuY2F0Y2goZnVu''@;'; + put 'put ''Y3Rpb24oanQpe3Rocm93KDAscS5wcmVmaXhNZXNzYWdlKShqdCwiRXJyb3Igd2hpbGUgZ2V0dGluZyBqb2IuICIpfSldO2Nhc2UgMTQ6cmV0dXJuIHR0PXl0LnNlbnQoKS5yZXN1bHQsZXQ9dm9pZCAwLGF0PSIiLEx0PXR0LmxpbmtzLmZpbmQoZnVuY3Rpb24oanQpe3JldHVybiJsb2ciPT09''@;'; + put 'put ''anQucmVsfSksbmUmJkx0PyhDdD0iIi5jb25jYXQoTHQuaHJlZiwiL2NvbnRlbnQiKSxmdD1udWxsIT09KEY9bnVsbD09PShTPXR0LmxvZ1N0YXRpc3RpY3MpfHx2b2lkIDA9PT1TP3ZvaWQgMDpTLmxpbmVDb3VudCkmJnZvaWQgMCE9PUY/RjoxZTYsWzQsKDAsb2UuZmV0Y2hMb2dCeUNodW5r''@;'; + put 'put ''cykoa2UseWUsQ3QsZnQpXSk6WzMsMTZdO2Nhc2UgMTU6YXQ9eXQuc2VudCgpLHl0LmxhYmVsPTE2O2Nhc2UgMTY6aWYoImZhaWxlZCI9PT1fdHx8ImVycm9yIj09PV90KXRocm93IG5ldyBKLkNvbXB1dGVKb2JFeGVjdXRpb25FcnJvcih0dCxhdCk7cmV0dXJuIHRlPyhIdD0iL2NvbXB1dGUv''@;'; + put 'put ''c2Vzc2lvbnMvIi5jb25jYXQoRGUsIi9maWxlcmVmcy9fd2Vib3V0L2NvbnRlbnQiKSxbNCxrZS5nZXQoSHQseWUsInRleHQvcGxhaW4iKS5jYXRjaChmdW5jdGlvbihqdCl7cmV0dXJuIFcoVWUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBRdCxnbixkbix5bjtyZXR1cm4gTih0aGlz''@;'; + put 'put ''LGZ1bmN0aW9uKGxuKXtzd2l0Y2gobG4ubGFiZWwpe2Nhc2UgMDpyZXR1cm4ganQgaW5zdGFuY2VvZiBKLk5vdEZvdW5kRXJyb3ImJkx0PyhRdD0iIi5jb25jYXQoTHQuaHJlZiwiL2NvbnRlbnQiKSxnbj1udWxsIT09KHluPW51bGw9PT0oZG49dHQubG9nU3RhdGlzdGljcyl8fHZvaWQgMD09''@;'; + put 'put ''PWRuP3ZvaWQgMDpkbi5saW5lQ291bnQpJiZ2b2lkIDAhPT15bj95bjoxZTYsWzQsKDAsb2UuZmV0Y2hMb2dCeUNodW5rcykoa2UseWUsUXQsZ24pXSk6WzMsMl07Y2FzZSAxOnJldHVybiBhdD1sbi5zZW50KCksWzIsUHJvbWlzZS5yZWplY3Qoe3N0YXR1czo1MDAsbG9nOmF0fSldO2Nhc2Ug''@;'; + put 'put ''MjpyZXR1cm5bMix7cmVzdWx0OkpTT04uc3RyaW5naWZ5KGp0KX1dfX0pfSl9KV0pOlsyLHtqb2I6dHQsbG9nOmF0fV07Y2FzZSAxNzpyZXR1cm4gZXQ9eXQuc2VudCgpLFs0LFNlLmNsZWFyU2Vzc2lvbihEZSx5ZSkuY2F0Y2goZnVuY3Rpb24oanQpe3Rocm93KDAscS5wcmVmaXhNZXNzYWdl''@;'; + put 'put ''KShqdCwiRXJyb3Igd2hpbGUgY2xlYXJpbmcgc2Vzc2lvbi4gIil9KV07Y2FzZSAxODpyZXR1cm4geXQuc2VudCgpLFsyLHtyZXN1bHQ6bnVsbD09ZXQ/dm9pZCAwOmV0LnJlc3VsdCxsb2c6YXR9XTtjYXNlIDE5OmlmKDQwND09PShHZT15dC5zZW50KCkpLnN0YXR1cylyZXR1cm5bMixBZShr''@;'; + put 'put ''ZSxTZSxJZSxUZSxFZSxoZSxPLHosbmUsITEsITApXTt0aHJvdygwLHEucHJlZml4TWVzc2FnZSkoR2UsIkVycm9yIHdoaWxlIGV4ZWN1dGluZyBzY3JpcHQuICIpO2Nhc2UgMjA6cmV0dXJuWzJdfX0pfSl9fSw3NDU4OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPVooNDE1''@;'; + put 'put ''NSksbGU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGVlLHEsSixzZSl7cmV0dXJuIG5ldyhKfHwoSj1Qcm9taXNlKSkoZnVuY3Rpb24ob2UsY2Upe2Z1bmN0aW9uIGRlKGtlKXt0cnl7QWUoc2UubmV4dChrZSkpfWNhdGNoKFNlKXtjZShTZSl9fWZ1bmN0aW9uIHZlKGtlKXt0cnl7''@;'; + put 'put ''QWUoc2UudGhyb3coa2UpKX1jYXRjaChTZSl7Y2UoU2UpfX1mdW5jdGlvbiBBZShrZSl7dmFyIFNlO2tlLmRvbmU/b2Uoa2UudmFsdWUpOihTZT1rZS52YWx1ZSxTZSBpbnN0YW5jZW9mIEo/U2U6bmV3IEooZnVuY3Rpb24oSWUpe0llKFNlKX0pKS50aGVuKGRlLHZlKX1BZSgoc2U9c2UuYXBw''@;'; + put 'put ''bHkoZWUscXx8W10pKS5uZXh0KCkpfSl9LFk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZWUscSl7dmFyIEosc2Usb2UsY2UsZGU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb2VbMF0pdGhyb3cgb2VbMV07cmV0dXJuIG9lWzFdfSx0cnlzOltdLG9wczpbXX07cmV0''@;'; + put 'put ''dXJuIGNlPXtuZXh0OnZlKDApLHRocm93OnZlKDEpLHJldHVybjp2ZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGNlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGNlO2Z1bmN0aW9uIHZlKEFlKXtyZXR1cm4gZnVuY3Rpb24oa2Upe3JldHVybiBm''@;'; + put 'put ''dW5jdGlvbihTZSl7aWYoSil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtkZTspdHJ5e2lmKEo9MSxzZSYmKG9lPTImU2VbMF0/c2UucmV0dXJuOlNlWzBdP3NlLnRocm93fHwoKG9lPXNlLnJldHVybikmJm9lLmNhbGwoc2UpLDAp''@;'; + put 'put ''OnNlLm5leHQpJiYhKG9lPW9lLmNhbGwoc2UsU2VbMV0pKS5kb25lKXJldHVybiBvZTtzd2l0Y2goc2U9MCxvZSYmKFNlPVsyJlNlWzBdLG9lLnZhbHVlXSksU2VbMF0pe2Nhc2UgMDpjYXNlIDE6b2U9U2U7YnJlYWs7Y2FzZSA0OnJldHVybiBkZS5sYWJlbCsrLHt2YWx1ZTpTZVsxXSxkb25l''@;'; + put 'put ''OiExfTtjYXNlIDU6ZGUubGFiZWwrKyxzZT1TZVsxXSxTZT1bMF07Y29udGludWU7Y2FzZSA3OlNlPWRlLm9wcy5wb3AoKSxkZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgob2U9KG9lPWRlLnRyeXMpLmxlbmd0aD4wJiZvZVtvZS5sZW5ndGgtMV0pfHw2IT09U2VbMF0mJjIh''@;'; + put 'put ''PT1TZVswXSkpe2RlPTA7Y29udGludWV9aWYoMz09PVNlWzBdJiYoIW9lfHxTZVsxXT5vZVswXSYmU2VbMV08b2VbM10pKXtkZS5sYWJlbD1TZVsxXTticmVha31pZig2PT09U2VbMF0mJmRlLmxhYmVsPG9lWzFdKXtkZS5sYWJlbD1vZVsxXSxvZT1TZTticmVha31pZihvZSYmZGUubGFiZWw8''@;'; + put 'put ''b2VbMl0pe2RlLmxhYmVsPW9lWzJdLGRlLm9wcy5wdXNoKFNlKTticmVha31vZVsyXSYmZGUub3BzLnBvcCgpLGRlLnRyeXMucG9wKCk7Y29udGludWV9U2U9cS5jYWxsKGVlLGRlKX1jYXRjaChJZSl7U2U9WzYsSWVdLHNlPTB9ZmluYWxseXtKPW9lPTB9aWYoNSZTZVswXSl0aHJvdyBTZVsx''@;'; + put 'put ''XTtyZXR1cm57dmFsdWU6U2VbMF0/U2VbMV06dm9pZCAwLGRvbmU6ITB9fShbQWUsa2VdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5nZXRGaWxlU3RyZWFtPXZvaWQgMDt2YXIgVz1aKDI5NzUpLE49Wig3NzU3KTtRLmdldEZpbGVTdHJl''@;'; + put 'put ''YW09ZnVuY3Rpb24oZWUscSl7cmV0dXJuIGxlKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEosc2Usb2UsY2UsZGU7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih2ZSl7c3dpdGNoKHZlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEo9WigyOTc1KS5jcmVhdGVXcml0ZVN0cmVhbSxz''@;'; + put 'put ''ZT1xfHxpZS5jd2QoKSxbNCwoMCxXLmlzRm9sZGVyKShzZSldO2Nhc2UgMTpyZXR1cm4gdmUuc2VudCgpPyhvZT0iIi5jb25jYXQoZWUubmFtZXx8ImpvYiIsIi0iKS5jb25jYXQoKDAsTi5nZW5lcmF0ZVRpbWVzdGFtcCkoKSwiLmxvZyIpLGNlPVooMjUyMCksZGU9Y2Uuam9pbihxfHxpZS5j''@;'; + put 'put ''d2QoKSxvZSksWzQsSihkZSldKTpbMywzXTtjYXNlIDI6Y2FzZSA0OnJldHVyblsyLHZlLnNlbnQoKV07Y2FzZSAzOnJldHVybls0LEooc2UpXX19KX0pfX0sMTM0MzpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpLGxlPVooNTEwOCksWT10aGlzJiZ0aGlzLl9f''@;'; + put 'put ''YXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBZPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGRlKXtmb3IodmFyIHZlLEFlPTEsa2U9YXJndW1lbnRzLmxlbmd0aDtBZTxrZTtBZSsrKWZvcih2YXIgU2UgaW4gdmU9YXJndW1lbnRzW0FlXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5''@;'; + put 'put ''LmNhbGwodmUsU2UpJiYoZGVbU2VdPXZlW1NlXSk7cmV0dXJuIGRlfSxZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sVz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZGUsdmUsQWUsa2Upe3JldHVybiBuZXcoQWV8fChBZT1Qcm9taXNlKSkoZnVuY3Rpb24oU2UsSWUpe2Z1bmN0aW9u''@;'; + put 'put ''IFRlKE8pe3RyeXtoZShrZS5uZXh0KE8pKX1jYXRjaCh6KXtJZSh6KX19ZnVuY3Rpb24gRWUoTyl7dHJ5e2hlKGtlLnRocm93KE8pKX1jYXRjaCh6KXtJZSh6KX19ZnVuY3Rpb24gaGUoTyl7dmFyIHo7Ty5kb25lP1NlKE8udmFsdWUpOih6PU8udmFsdWUseiBpbnN0YW5jZW9mIEFlP3o6bmV3''@;'; + put 'put ''IEFlKGZ1bmN0aW9uKG5lKXtuZSh6KX0pKS50aGVuKFRlLEVlKX1oZSgoa2U9a2UuYXBwbHkoZGUsdmV8fFtdKSkubmV4dCgpKX0pfSxOPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGRlLHZlKXt2YXIgQWUsa2UsU2UsSWUsVGU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lm''@;'; + put 'put ''KDEmU2VbMF0pdGhyb3cgU2VbMV07cmV0dXJuIFNlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIEllPXtuZXh0OkVlKDApLHRocm93OkVlKDEpLHJldHVybjpFZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKEllW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''dGhpc30pLEllO2Z1bmN0aW9uIEVlKGhlKXtyZXR1cm4gZnVuY3Rpb24oTyl7cmV0dXJuIGZ1bmN0aW9uKHope2lmKEFlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO1RlOyl0cnl7aWYoQWU9MSxrZSYmKFNlPTImelswXT9rZS5y''@;'; + put 'put ''ZXR1cm46elswXT9rZS50aHJvd3x8KChTZT1rZS5yZXR1cm4pJiZTZS5jYWxsKGtlKSwwKTprZS5uZXh0KSYmIShTZT1TZS5jYWxsKGtlLHpbMV0pKS5kb25lKXJldHVybiBTZTtzd2l0Y2goa2U9MCxTZSYmKHo9WzImelswXSxTZS52YWx1ZV0pLHpbMF0pe2Nhc2UgMDpjYXNlIDE6U2U9ejti''@;'; + put 'put ''cmVhaztjYXNlIDQ6cmV0dXJuIFRlLmxhYmVsKysse3ZhbHVlOnpbMV0sZG9uZTohMX07Y2FzZSA1OlRlLmxhYmVsKyssa2U9elsxXSx6PVswXTtjb250aW51ZTtjYXNlIDc6ej1UZS5vcHMucG9wKCksVGUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKFNlPShTZT1UZS50cnlz''@;'; + put 'put ''KS5sZW5ndGg+MCYmU2VbU2UubGVuZ3RoLTFdKXx8NiE9PXpbMF0mJjIhPT16WzBdKSl7VGU9MDtjb250aW51ZX1pZigzPT09elswXSYmKCFTZXx8elsxXT5TZVswXSYmelsxXTxTZVszXSkpe1RlLmxhYmVsPXpbMV07YnJlYWt9aWYoNj09PXpbMF0mJlRlLmxhYmVsPFNlWzFdKXtUZS5sYWJl''@;'; + put 'put ''bD1TZVsxXSxTZT16O2JyZWFrfWlmKFNlJiZUZS5sYWJlbDxTZVsyXSl7VGUubGFiZWw9U2VbMl0sVGUub3BzLnB1c2goeik7YnJlYWt9U2VbMl0mJlRlLm9wcy5wb3AoKSxUZS50cnlzLnBvcCgpO2NvbnRpbnVlfXo9dmUuY2FsbChkZSxUZSl9Y2F0Y2gobmUpe3o9WzYsbmVdLGtlPTB9Zmlu''@;'; + put 'put ''YWxseXtBZT1TZT0wfWlmKDUmelswXSl0aHJvdyB6WzFdO3JldHVybnt2YWx1ZTp6WzBdP3pbMV06dm9pZCAwLGRvbmU6ITB9fShbaGUsT10pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnBvbGxKb2JTdGF0ZT12b2lkIDA7dmFyIGVlPVoo''@;'; + put 'put ''NzA0KSxxPVooMTM5NSksSj1aKDU5MjgpO1EucG9sbEpvYlN0YXRlPWZ1bmN0aW9uKGRlLHZlLEFlLGtlLFNlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgSWUsVGUsRWUsaGUsTyx6LG5lO3JldHVybiBOKHRoaXMsZnVuY3Rpb24odGUpe3N3aXRjaCh0ZS5s''@;'; + put 'put ''YWJlbCl7Y2FzZSAwOmlmKEllPWllLmxvZ2dlcnx8bGUsU2U9WShZKHt9LHttYXhQb2xsQ291bnQ6MWUzLHBvbGxJbnRlcnZhbDozMDAsc3RyZWFtTG9nOiExfSksU2V8fHt9KSwhKFRlPXZlLmxpbmtzLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuInN0YXRlIj09PXgucmVsfSkpKXRocm93IG5l''@;'; + put 'put ''dyBFcnJvcigiSm9iIHN0YXRlIGxpbmsgd2FzIG5vdCBmb3VuZC4iKTtyZXR1cm5bNCxzZShkZSx2ZSwiIixBZSxrZSkuY2F0Y2goZnVuY3Rpb24oeCl7cmV0dXJuIEllLmVycm9yKCJFcnJvciBmZXRjaGluZyBqb2Igc3RhdGUgZnJvbSAiLmNvbmNhdChUZS5ocmVmLCIuIFN0YXJ0aW5nIHBv''@;'; + put 'put ''bGwsIGFzc3VtaW5nIGpvYiB0byBiZSBydW5uaW5nLiIpLHgpLCJ1bmF2YWlsYWJsZSJ9KV07Y2FzZSAxOnJldHVybiBFZT10ZS5zZW50KCksaGU9MCwiY29tcGxldGVkIj09PUVlP1syLFByb21pc2UucmVzb2x2ZShFZSldOlNlLnN0cmVhbUxvZyYmKDAsSi5pc05vZGUpKCk/WzQsKDAsWig3''@;'; + put 'put ''NDU4KS5nZXRGaWxlU3RyZWFtKSh2ZSxTZS5sb2dGb2xkZXJQYXRoKV06WzMsM107Y2FzZSAyOk89dGUuc2VudCgpLHRlLmxhYmVsPTM7Y2FzZSAzOnJldHVybls0LGNlKGRlLHZlLEVlLEFlLGhlLGtlLFkoWSh7fSxTZSkse21heFBvbGxDb3VudDpTZS5tYXhQb2xsQ291bnQ8PTEwMD9TZS5t''@;'; + put 'put ''YXhQb2xsQ291bnQ6MTAwfSksTyldO2Nhc2UgNDpyZXR1cm4gej10ZS5zZW50KCksaGU9ei5wb2xsQ291bnQsIW9lKEVlPXouc3RhdGUpfHxoZT49U2UubWF4UG9sbENvdW50P1syLEVlXToobmU9e21heFBvbGxDb3VudDoxNDQwLHBvbGxJbnRlcnZhbDo2ZTQsc3RyZWFtTG9nOiExfSxTZSYm''@;'; + put 'put ''KG5lLnN0cmVhbUxvZz1TZS5zdHJlYW1Mb2csbmUubG9nRm9sZGVyUGF0aD1TZS5sb2dGb2xkZXJQYXRoKSxbNCxjZShkZSx2ZSxFZSxBZSxoZSxrZSxuZSxPKV0pO2Nhc2UgNTpyZXR1cm4gej10ZS5zZW50KCksRWU9ei5zdGF0ZSxoZT16LnBvbGxDb3VudCxPJiZPLmVuZCgpLFsyLEVlXX19''@;'; + put 'put ''KX0pfTt2YXIgc2U9ZnVuY3Rpb24oZGUsdmUsQWUsa2UsU2Upe3JldHVybiBXKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEllLFRlO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oRWUpe3N3aXRjaChFZS5sYWJlbCl7Y2FzZSAwOmlmKCEoSWU9dmUubGlua3MuZmluZChmdW5j''@;'; + put 'put ''dGlvbihoZSl7cmV0dXJuInN0YXRlIj09PWhlLnJlbH0pKSl0aHJvdyBuZXcgRXJyb3IoIkpvYiBzdGF0ZSBsaW5rIHdhcyBub3QgZm91bmQuIik7cmV0dXJuIG9lKEFlKT8oVGU9dm9pZCAwLFNlP1s0LCgwLGVlLmdldFRva2VucykoZGUsU2UpXTpbMywyXSk6WzMsNF07Y2FzZSAxOlRlPUVl''@;'; + put 'put ''LnNlbnQoKSxFZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bNCxkZS5nZXQoIiIuY29uY2F0KEllLmhyZWYsIj9fYWN0aW9uPXdhaXQmd2FpdD0zMDAiKSxudWxsPT1UZT92b2lkIDA6VGUuYWNjZXNzX3Rva2VuLCJ0ZXh0L3BsYWluIix7fSxrZSkuY2F0Y2goZnVuY3Rpb24oaGUpe3Rocm93IG5l''@;'; + put 'put ''dyBxLkpvYlN0YXRlUG9sbEVycm9yKHZlLmlkLGhlKX0pXTtjYXNlIDM6cmV0dXJuWzIsRWUuc2VudCgpLnJlc3VsdC50cmltKCldO2Nhc2UgNDpyZXR1cm5bMixBZV19fSl9KX0sb2U9ZnVuY3Rpb24oZGUpe3JldHVybiJydW5uaW5nIj09PWRlfHwiIj09PWRlfHwicGVuZGluZyI9PT1kZXx8''@;'; + put 'put ''InVuYXZhaWxhYmxlIj09PWRlfSxjZT1mdW5jdGlvbihkZSx2ZSxBZSxrZSxTZSxJZSxUZSxFZSl7cmV0dXJuIFcodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaGUsTyx6LG5lLHRlLHgsUCxWLFQsUyxGLHllLENlLERlLFBlO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oUWUp''@;'; + put 'put ''e3N3aXRjaChRZS5sYWJlbCl7Y2FzZSAwOmlmKGhlPTMwMCxPPTFlMyx6PTUsbmU9MCx0ZT1BZSx4PSIiLFA9MCxWPWllLmxvZ2dlcnx8bGUsVGUmJihoZT1UZS5wb2xsSW50ZXJ2YWx8fGhlLE89VGUubWF4UG9sbENvdW50fHxPKSwhKFQ9dmUubGlua3MuZmluZChmdW5jdGlvbigkZSl7cmV0''@;'; + put 'put ''dXJuInN0YXRlIj09PSRlLnJlbH0pKSl0aHJvdyBuZXcgRXJyb3IoIkpvYiBzdGF0ZSBsaW5rIHdhcyBub3QgZm91bmQuIik7UWUubGFiZWw9MTtjYXNlIDE6cmV0dXJuIG9lKHRlKSYmU2U8PU8/WzQsc2UoZGUsdmUsdGUsa2UsSWUpLmNhdGNoKGZ1bmN0aW9uKCRlKXtpZihuZSsrLFNlPj1P''@;'; + put 'put ''fHxuZT49eil0aHJvdyAkZTtyZXR1cm4gVi5lcnJvcigiRXJyb3IgZmV0Y2hpbmcgam9iIHN0YXRlIGZyb20gIi5jb25jYXQoVC5ocmVmLCIuIFJlc3VtaW5nIHBvbGwsIGFzc3VtaW5nIGpvYiB0byBiZSBydW5uaW5nLiIpLCRlKSwidW5hdmFpbGFibGUifSldOlszLDhdO2Nhc2UgMjpyZXR1''@;'; + put 'put ''cm4gdGU9UWUuc2VudCgpLFNlKyssUz12ZS5saW5rcy5maW5kKGZ1bmN0aW9uKCRlKXtyZXR1cm4ic2VsZiI9PT0kZS5yZWx9KS5ocmVmLG51bGwhPVRlJiZUZS5zdHJlYW1Mb2c/WzQsZGUuZ2V0KFMsbnVsbD09SWU/dm9pZCAwOkllLmFjY2Vzc190b2tlbildOlszLDZdO2Nhc2UgMzpyZXR1''@;'; + put 'put ''cm4gRj1RZS5zZW50KCkucmVzdWx0LHllPW51bGwhPT0oUGU9bnVsbD09PShEZT1GLmxvZ1N0YXRpc3RpY3MpfHx2b2lkIDA9PT1EZT92b2lkIDA6RGUubGluZUNvdW50KSYmdm9pZCAwIT09UGU/UGU6MWU2LChDZT0oKDAsSi5pc05vZGUpKCk/WigyMDgwKTp7c2F2ZUxvZzpudWxsfSkuc2F2''@;'; + put 'put ''ZUxvZyk/WzQsQ2UodmUsZGUsUCx5ZSxFZSxudWxsPT1JZT92b2lkIDA6SWUuYWNjZXNzX3Rva2VuKV06WzMsNV07Y2FzZSA0OlFlLnNlbnQoKSxRZS5sYWJlbD01O2Nhc2UgNTpQKz15ZSxRZS5sYWJlbD02O2Nhc2UgNjpyZXR1cm4ga2UmJnghPT10ZSYmKFYuaW5mbygiUG9sbGluZzogIi5j''@;'; + put 'put ''b25jYXQoZGUuZ2V0QmFzZVVybCgpK1MsIi9zdGF0ZSIpKSxWLmluZm8oIkN1cnJlbnQgam9iIHN0YXRlOiAiLmNvbmNhdCh0ZSkpLHg9dGUpLCJ1bmF2YWlsYWJsZSIhPXRlJiZuZT4wJiYobmU9MCksWzQsKDAsSi5kZWxheSkoaGUpXTtjYXNlIDc6cmV0dXJuIFFlLnNlbnQoKSxbMywxXTtj''@;'; + put 'put ''YXNlIDg6cmV0dXJuWzIse3N0YXRlOnRlLHBvbGxDb3VudDpTZX1dfX0pfSl9fSwyMDgwOmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPVooNDE1NSksbGU9Wig1MTA4KSxZPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihxLEosc2Usb2Upe3JldHVybiBuZXcoc2V8''@;'; + put 'put ''fChzZT1Qcm9taXNlKSkoZnVuY3Rpb24oY2UsZGUpe2Z1bmN0aW9uIHZlKFNlKXt0cnl7a2Uob2UubmV4dChTZSkpfWNhdGNoKEllKXtkZShJZSl9fWZ1bmN0aW9uIEFlKFNlKXt0cnl7a2Uob2UudGhyb3coU2UpKX1jYXRjaChJZSl7ZGUoSWUpfX1mdW5jdGlvbiBrZShTZSl7dmFyIEllO1Nl''@;'; + put 'put ''LmRvbmU/Y2UoU2UudmFsdWUpOihJZT1TZS52YWx1ZSxJZSBpbnN0YW5jZW9mIHNlP0llOm5ldyBzZShmdW5jdGlvbihUZSl7VGUoSWUpfSkpLnRoZW4odmUsQWUpfWtlKChvZT1vZS5hcHBseShxLEp8fFtdKSkubmV4dCgpKX0pfSxXPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9u''@;'; + put 'put ''KHEsSil7dmFyIHNlLG9lLGNlLGRlLHZlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmNlWzBdKXRocm93IGNlWzFdO3JldHVybiBjZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBkZT17bmV4dDpBZSgwKSx0aHJvdzpBZSgxKSxyZXR1cm46QWUoMil9LCJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiBTeW1ib2wmJihkZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxkZTtmdW5jdGlvbiBBZShrZSl7cmV0dXJuIGZ1bmN0aW9uKFNlKXtyZXR1cm4gZnVuY3Rpb24oSWUpe2lmKHNlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5''@;'; + put 'put ''IGV4ZWN1dGluZy4iKTtmb3IoO3ZlOyl0cnl7aWYoc2U9MSxvZSYmKGNlPTImSWVbMF0/b2UucmV0dXJuOkllWzBdP29lLnRocm93fHwoKGNlPW9lLnJldHVybikmJmNlLmNhbGwob2UpLDApOm9lLm5leHQpJiYhKGNlPWNlLmNhbGwob2UsSWVbMV0pKS5kb25lKXJldHVybiBjZTtzd2l0Y2go''@;'; + put 'put ''b2U9MCxjZSYmKEllPVsyJkllWzBdLGNlLnZhbHVlXSksSWVbMF0pe2Nhc2UgMDpjYXNlIDE6Y2U9SWU7YnJlYWs7Y2FzZSA0OnJldHVybiB2ZS5sYWJlbCsrLHt2YWx1ZTpJZVsxXSxkb25lOiExfTtjYXNlIDU6dmUubGFiZWwrKyxvZT1JZVsxXSxJZT1bMF07Y29udGludWU7Y2FzZSA3Okll''@;'; + put 'put ''PXZlLm9wcy5wb3AoKSx2ZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoY2U9KGNlPXZlLnRyeXMpLmxlbmd0aD4wJiZjZVtjZS5sZW5ndGgtMV0pfHw2IT09SWVbMF0mJjIhPT1JZVswXSkpe3ZlPTA7Y29udGludWV9aWYoMz09PUllWzBdJiYoIWNlfHxJZVsxXT5jZVswXSYm''@;'; + put 'put ''SWVbMV08Y2VbM10pKXt2ZS5sYWJlbD1JZVsxXTticmVha31pZig2PT09SWVbMF0mJnZlLmxhYmVsPGNlWzFdKXt2ZS5sYWJlbD1jZVsxXSxjZT1JZTticmVha31pZihjZSYmdmUubGFiZWw8Y2VbMl0pe3ZlLmxhYmVsPWNlWzJdLHZlLm9wcy5wdXNoKEllKTticmVha31jZVsyXSYmdmUub3Bz''@;'; + put 'put ''LnBvcCgpLHZlLnRyeXMucG9wKCk7Y29udGludWV9SWU9Si5jYWxsKHEsdmUpfWNhdGNoKFRlKXtJZT1bNixUZV0sb2U9MH1maW5hbGx5e3NlPWNlPTB9aWYoNSZJZVswXSl0aHJvdyBJZVsxXTtyZXR1cm57dmFsdWU6SWVbMF0/SWVbMV06dm9pZCAwLGRvbmU6ITB9fShba2UsU2VdKX19fTtP''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5zYXZlTG9nPXZvaWQgMDt2YXIgTj1aKDU5MjgpLGVlPVooNjEzMSk7US5zYXZlTG9nPWZ1bmN0aW9uKHEsSixzZSxvZSxjZSxkZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7''@;'; + put 'put ''dmFyIHZlLEFlLGtlO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oU2Upe3N3aXRjaChTZS5sYWJlbCl7Y2FzZSAwOmlmKCFkZSl0aHJvdyBuZXcgRXJyb3IoIkxvZ3MgZm9yIGpvYiAiLmNvbmNhdChxLmlkLCIgY2Fubm90IGJlIGZldGNoZWQgd2l0aG91dCBhIHZhbGlkIGFjY2VzcyB0b2tlbi4i''@;'; + put 'put ''KSk7aWYoIWNlKXRocm93IG5ldyBFcnJvcigiTG9ncyBmb3Igam9iICIuY29uY2F0KHEuaWQsIiBjYW5ub3QgYmUgd3JpdHRlbiB3aXRob3V0IGEgdmFsaWQgd3JpdGUgc3RyZWFtLiIpKTtpZih2ZT1pZS5sb2dnZXJ8fGxlLCEoQWU9cS5saW5rcy5maW5kKGZ1bmN0aW9uKEllKXtyZXR1cm4i''@;'; + put 'put ''bG9nIj09PUllLnJlbH0pKSl0aHJvdyBuZXcgRXJyb3IoIkxvZyBVUkwgZm9yIGpvYiAiLmNvbmNhdChxLmlkLCIgd2FzIG5vdCBmb3VuZC4iKSk7cmV0dXJuWzQsKDAsTi5mZXRjaExvZykoSixkZSwiIi5jb25jYXQoQWUuaHJlZiwiL2NvbnRlbnQiKSxzZSxvZSldO2Nhc2UgMTpyZXR1cm4g''@;'; + put 'put ''a2U9U2Uuc2VudCgpLHZlLmluZm8oIldyaXRpbmcgbG9ncyB0byAiLmNvbmNhdChjZS5wYXRoKSksWzQsKDAsZWUud3JpdGVTdHJlYW0pKGNlLGtlfHwiIildO2Nhc2UgMjpyZXR1cm4gU2Uuc2VudCgpLFsyXX19KX0pfX0sNjQ5NjpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBp''@;'; + put 'put ''ZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oTixlZSxxLEope3JldHVybiBuZXcocXx8KHE9UHJvbWlzZSkpKGZ1bmN0aW9uKHNlLG9lKXtmdW5jdGlvbiBjZShBZSl7dHJ5e3ZlKEoubmV4dChBZSkpfWNhdGNoKGtlKXtvZShrZSl9fWZ1bmN0aW9uIGRlKEFlKXt0cnl7dmUoSi50''@;'; + put 'put ''aHJvdyhBZSkpfWNhdGNoKGtlKXtvZShrZSl9fWZ1bmN0aW9uIHZlKEFlKXt2YXIga2U7QWUuZG9uZT9zZShBZS52YWx1ZSk6KGtlPUFlLnZhbHVlLGtlIGluc3RhbmNlb2YgcT9rZTpuZXcgcShmdW5jdGlvbihTZSl7U2Uoa2UpfSkpLnRoZW4oY2UsZGUpfXZlKChKPUouYXBwbHkoTixlZXx8''@;'; + put 'put ''W10pKS5uZXh0KCkpfSl9LGxlPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKE4sZWUpe3ZhciBxLEosc2Usb2UsY2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmc2VbMF0pdGhyb3cgc2VbMV07cmV0dXJuIHNlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG9lPXtu''@;'; + put 'put ''ZXh0OmRlKDApLHRocm93OmRlKDEpLHJldHVybjpkZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKG9lW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG9lO2Z1bmN0aW9uIGRlKHZlKXtyZXR1cm4gZnVuY3Rpb24oQWUpe3JldHVybiBmdW5jdGlvbihr''@;'; + put 'put ''ZSl7aWYocSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtjZTspdHJ5e2lmKHE9MSxKJiYoc2U9MiZrZVswXT9KLnJldHVybjprZVswXT9KLnRocm93fHwoKHNlPUoucmV0dXJuKSYmc2UuY2FsbChKKSwwKTpKLm5leHQpJiYhKHNl''@;'; + put 'put ''PXNlLmNhbGwoSixrZVsxXSkpLmRvbmUpcmV0dXJuIHNlO3N3aXRjaChKPTAsc2UmJihrZT1bMiZrZVswXSxzZS52YWx1ZV0pLGtlWzBdKXtjYXNlIDA6Y2FzZSAxOnNlPWtlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gY2UubGFiZWwrKyx7dmFsdWU6a2VbMV0sZG9uZTohMX07Y2FzZSA1OmNlLmxh''@;'; + put 'put ''YmVsKyssSj1rZVsxXSxrZT1bMF07Y29udGludWU7Y2FzZSA3OmtlPWNlLm9wcy5wb3AoKSxjZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoc2U9KHNlPWNlLnRyeXMpLmxlbmd0aD4wJiZzZVtzZS5sZW5ndGgtMV0pfHw2IT09a2VbMF0mJjIhPT1rZVswXSkpe2NlPTA7Y29u''@;'; + put 'put ''dGludWV9aWYoMz09PWtlWzBdJiYoIXNlfHxrZVsxXT5zZVswXSYma2VbMV08c2VbM10pKXtjZS5sYWJlbD1rZVsxXTticmVha31pZig2PT09a2VbMF0mJmNlLmxhYmVsPHNlWzFdKXtjZS5sYWJlbD1zZVsxXSxzZT1rZTticmVha31pZihzZSYmY2UubGFiZWw8c2VbMl0pe2NlLmxhYmVsPXNl''@;'; + put 'put ''WzJdLGNlLm9wcy5wdXNoKGtlKTticmVha31zZVsyXSYmY2Uub3BzLnBvcCgpLGNlLnRyeXMucG9wKCk7Y29udGludWV9a2U9ZWUuY2FsbChOLGNlKX1jYXRjaChTZSl7a2U9WzYsU2VdLEo9MH1maW5hbGx5e3E9c2U9MH1pZig1JmtlWzBdKXRocm93IGtlWzFdO3JldHVybnt2YWx1ZTprZVsw''@;'; + put 'put ''XT9rZVsxXTp2b2lkIDAsZG9uZTohMH19KFt2ZSxBZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnVwbG9hZFRhYmxlcz12b2lkIDA7dmFyIFk9Wig5Nzc4KSxXPVooMjQwMik7US51cGxvYWRUYWJsZXM9ZnVuY3Rpb24oTixlZSxxKXty''@;'; + put 'put ''ZXR1cm4gaWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEosc2Usb2UsY2UsZGUsdmUsQWU7cmV0dXJuIGxlKHRoaXMsZnVuY3Rpb24oa2Upe3N3aXRjaChrZS5sYWJlbCl7Y2FzZSAwOmZvcihvZSBpbiBKPVtdLHNlPVtdLGVlKXNlLnB1c2gob2UpO2NlPTAsa2UubGFiZWw9''@;'; + put 'put ''MTtjYXNlIDE6aWYoIShjZTxzZS5sZW5ndGgpKXJldHVyblszLDRdO2lmKCJFUlJPUjogTEFSR0UgU1RSSU5HIExFTkdUSCI9PT0odmU9KDAsVy5jb252ZXJ0VG9DU1YpKGVlLGRlPXNlW2NlXSkpKXRocm93IG5ldyBFcnJvcigiVGhlIG1heCBsZW5ndGggb2YgYSBzdHJpbmcgdmFsdWUgaW4g''@;'; + put 'put ''U0FTanMgaXMgMzI3NjUgY2hhcmFjdGVycy4iKTtyZXR1cm5bNCxOLnVwbG9hZEZpbGUoIi9maWxlcy9maWxlcyNyYXdVcGxvYWQiLHZlLHEpLmNhdGNoKGZ1bmN0aW9uKFNlKXt0aHJvdygwLFkucHJlZml4TWVzc2FnZSkoU2UsIkVycm9yIHdoaWxlIHVwbG9hZGluZyBmaWxlLiAiKX0pXTtj''@;'; + put 'put ''YXNlIDI6QWU9a2Uuc2VudCgpLEoucHVzaCh7dGFibGVOYW1lOmRlLGZpbGU6QWUucmVzdWx0fSksa2UubGFiZWw9MztjYXNlIDM6cmV0dXJuIGNlKyssWzMsMV07Y2FzZSA0OnJldHVyblsyLEpdfX0pfSl9fSw2MTMxOmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBaPXRoaXMmJnRo''@;'; + put 'put ''aXMuX19hd2FpdGVyfHxmdW5jdGlvbihsZSxZLFcsTil7cmV0dXJuIG5ldyhXfHwoVz1Qcm9taXNlKSkoZnVuY3Rpb24oZWUscSl7ZnVuY3Rpb24gSihjZSl7dHJ5e29lKE4ubmV4dChjZSkpfWNhdGNoKGRlKXtxKGRlKX19ZnVuY3Rpb24gc2UoY2Upe3RyeXtvZShOLnRocm93KGNlKSl9Y2F0''@;'; + put 'put ''Y2goZGUpe3EoZGUpfX1mdW5jdGlvbiBvZShjZSl7dmFyIGRlO2NlLmRvbmU/ZWUoY2UudmFsdWUpOihkZT1jZS52YWx1ZSxkZSBpbnN0YW5jZW9mIFc/ZGU6bmV3IFcoZnVuY3Rpb24odmUpe3ZlKGRlKX0pKS50aGVuKEosc2UpfW9lKChOPU4uYXBwbHkobGUsWXx8W10pKS5uZXh0KCkpfSl9''@;'; + put 'put ''LGllPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGxlLFkpe3ZhciBXLE4sZWUscSxKPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmVlWzBdKXRocm93IGVlWzFdO3JldHVybiBlZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBxPXtuZXh0OnNlKDApLHRocm93OnNl''@;'; + put 'put ''KDEpLHJldHVybjpzZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSkscTtmdW5jdGlvbiBzZShvZSl7cmV0dXJuIGZ1bmN0aW9uKGNlKXtyZXR1cm4gZnVuY3Rpb24oZGUpe2lmKFcpdGhyb3cgbmV3IFR5''@;'; + put 'put ''cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7SjspdHJ5e2lmKFc9MSxOJiYoZWU9MiZkZVswXT9OLnJldHVybjpkZVswXT9OLnRocm93fHwoKGVlPU4ucmV0dXJuKSYmZWUuY2FsbChOKSwwKTpOLm5leHQpJiYhKGVlPWVlLmNhbGwoTixkZVsxXSkpLmRv''@;'; + put 'put ''bmUpcmV0dXJuIGVlO3N3aXRjaChOPTAsZWUmJihkZT1bMiZkZVswXSxlZS52YWx1ZV0pLGRlWzBdKXtjYXNlIDA6Y2FzZSAxOmVlPWRlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gSi5sYWJlbCsrLHt2YWx1ZTpkZVsxXSxkb25lOiExfTtjYXNlIDU6Si5sYWJlbCsrLE49ZGVbMV0sZGU9WzBdO2Nv''@;'; + put 'put ''bnRpbnVlO2Nhc2UgNzpkZT1KLm9wcy5wb3AoKSxKLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChlZT0oZWU9Si50cnlzKS5sZW5ndGg+MCYmZWVbZWUubGVuZ3RoLTFdKXx8NiE9PWRlWzBdJiYyIT09ZGVbMF0pKXtKPTA7Y29udGludWV9aWYoMz09PWRlWzBdJiYoIWVlfHxk''@;'; + put 'put ''ZVsxXT5lZVswXSYmZGVbMV08ZWVbM10pKXtKLmxhYmVsPWRlWzFdO2JyZWFrfWlmKDY9PT1kZVswXSYmSi5sYWJlbDxlZVsxXSl7Si5sYWJlbD1lZVsxXSxlZT1kZTticmVha31pZihlZSYmSi5sYWJlbDxlZVsyXSl7Si5sYWJlbD1lZVsyXSxKLm9wcy5wdXNoKGRlKTticmVha31lZVsyXSYm''@;'; + put 'put ''Si5vcHMucG9wKCksSi50cnlzLnBvcCgpO2NvbnRpbnVlfWRlPVkuY2FsbChsZSxKKX1jYXRjaCh2ZSl7ZGU9WzYsdmVdLE49MH1maW5hbGx5e1c9ZWU9MH1pZig1JmRlWzBdKXRocm93IGRlWzFdO3JldHVybnt2YWx1ZTpkZVswXT9kZVsxXTp2b2lkIDAsZG9uZTohMH19KFtvZSxjZV0pfX19''@;'; + put 'put ''O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLndyaXRlU3RyZWFtPXZvaWQgMCxRLndyaXRlU3RyZWFtPWZ1bmN0aW9uKGxlLFkpe3JldHVybiBaKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIGllKHRoaXMsZnVuY3Rpb24o''@;'; + put 'put ''Vyl7cmV0dXJuWzIsbGUud3JpdGUoWSsiXG4iLGZ1bmN0aW9uKE4pe3JldHVybiBOP1Byb21pc2UucmVqZWN0KE4pOlByb21pc2UucmVzb2x2ZSgpfSldfSl9KX19LDI4NTE6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig1MTA4KSxsZT10aGlzJiZ0aGlzLl9fYXdhaXRl''@;'; + put 'put ''cnx8ZnVuY3Rpb24oZGUsdmUsQWUsa2Upe3JldHVybiBuZXcoQWV8fChBZT1Qcm9taXNlKSkoZnVuY3Rpb24oU2UsSWUpe2Z1bmN0aW9uIFRlKE8pe3RyeXtoZShrZS5uZXh0KE8pKX1jYXRjaCh6KXtJZSh6KX19ZnVuY3Rpb24gRWUoTyl7dHJ5e2hlKGtlLnRocm93KE8pKX1jYXRjaCh6KXtJ''@;'; + put 'put ''ZSh6KX19ZnVuY3Rpb24gaGUoTyl7dmFyIHo7Ty5kb25lP1NlKE8udmFsdWUpOih6PU8udmFsdWUseiBpbnN0YW5jZW9mIEFlP3o6bmV3IEFlKGZ1bmN0aW9uKG5lKXtuZSh6KX0pKS50aGVuKFRlLEVlKX1oZSgoa2U9a2UuYXBwbHkoZGUsdmV8fFtdKSkubmV4dCgpKX0pfSxZPXRoaXMmJnRo''@;'; + put 'put ''aXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGRlLHZlKXt2YXIgQWUsa2UsU2UsSWUsVGU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmU2VbMF0pdGhyb3cgU2VbMV07cmV0dXJuIFNlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIEllPXtuZXh0OkVlKDApLHRocm93OkVlKDEpLHJl''@;'; + put 'put ''dHVybjpFZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKEllW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLEllO2Z1bmN0aW9uIEVlKGhlKXtyZXR1cm4gZnVuY3Rpb24oTyl7cmV0dXJuIGZ1bmN0aW9uKHope2lmKEFlKXRocm93IG5ldyBUeXBlRXJy''@;'; + put 'put ''b3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO1RlOyl0cnl7aWYoQWU9MSxrZSYmKFNlPTImelswXT9rZS5yZXR1cm46elswXT9rZS50aHJvd3x8KChTZT1rZS5yZXR1cm4pJiZTZS5jYWxsKGtlKSwwKTprZS5uZXh0KSYmIShTZT1TZS5jYWxsKGtlLHpbMV0pKS5k''@;'; + put 'put ''b25lKXJldHVybiBTZTtzd2l0Y2goa2U9MCxTZSYmKHo9WzImelswXSxTZS52YWx1ZV0pLHpbMF0pe2Nhc2UgMDpjYXNlIDE6U2U9ejticmVhaztjYXNlIDQ6cmV0dXJuIFRlLmxhYmVsKysse3ZhbHVlOnpbMV0sZG9uZTohMX07Y2FzZSA1OlRlLmxhYmVsKyssa2U9elsxXSx6PVswXTtjb250''@;'; + put 'put ''aW51ZTtjYXNlIDc6ej1UZS5vcHMucG9wKCksVGUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKFNlPShTZT1UZS50cnlzKS5sZW5ndGg+MCYmU2VbU2UubGVuZ3RoLTFdKXx8NiE9PXpbMF0mJjIhPT16WzBdKSl7VGU9MDtjb250aW51ZX1pZigzPT09elswXSYmKCFTZXx8elsx''@;'; + put 'put ''XT5TZVswXSYmelsxXTxTZVszXSkpe1RlLmxhYmVsPXpbMV07YnJlYWt9aWYoNj09PXpbMF0mJlRlLmxhYmVsPFNlWzFdKXtUZS5sYWJlbD1TZVsxXSxTZT16O2JyZWFrfWlmKFNlJiZUZS5sYWJlbDxTZVsyXSl7VGUubGFiZWw9U2VbMl0sVGUub3BzLnB1c2goeik7YnJlYWt9U2VbMl0mJlRl''@;'; + put 'put ''Lm9wcy5wb3AoKSxUZS50cnlzLnBvcCgpO2NvbnRpbnVlfXo9dmUuY2FsbChkZSxUZSl9Y2F0Y2gobmUpe3o9WzYsbmVdLGtlPTB9ZmluYWxseXtBZT1TZT0wfWlmKDUmelswXSl0aHJvdyB6WzFdO3JldHVybnt2YWx1ZTp6WzBdP3pbMV06dm9pZCAwLGRvbmU6ITB9fShbaGUsT10pfX19O09i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkF1dGhNYW5hZ2VyPXZvaWQgMDt2YXIgVz1aKDM5MDApLE49Wig1OTI4KSxlZT1aKDU0MTgpLHE9Wig0NTgyKSxKPVooNjU0Nyksc2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkZSh2ZSxBZSxrZSxTZSl7dmFy''@;'; + put 'put ''IEllPXRoaXM7dGhpcy5zZXJ2ZXJVcmw9dmUsdGhpcy5zZXJ2ZXJUeXBlPUFlLHRoaXMucmVxdWVzdENsaWVudD1rZSx0aGlzLmxvZ2luQ2FsbGJhY2s9U2UsdGhpcy51c2VyTmFtZT0iIix0aGlzLnJlZGlyZWN0ZWRMb2dpblVybD0iL1NBU0xvZ29uL2hvbWUiLHRoaXMuZXh0cmFjdFVzZXJO''@;'; + put 'put ''YW1lPWZ1bmN0aW9uKFRlKXtzd2l0Y2goSWUuc2VydmVyVHlwZSl7Y2FzZSBXLlNlcnZlclR5cGUuU2FzVml5YTpyZXR1cm4gbnVsbD09VGU/dm9pZCAwOlRlLmlkO2Nhc2UgVy5TZXJ2ZXJUeXBlLlNhczk6dmFyIEVlPW51bGw9PVRlP3ZvaWQgMDpUZS5tYXRjaCgvInRpdGxlIjoiTG9nIE9m''@;'; + put 'put ''ZiBbMC0xYS16QS1aIF0qIi8pLGhlPW51bGw9PUVlP3ZvaWQgMDpFZVswXS5zbGljZSgxNywtMSk7cmV0dXJuIGhlLmluY2x1ZGVzKCIgIik/aGUuc3BsaXQoIiAiKS5tYXAoZnVuY3Rpb24oTyl7cmV0dXJuIE8uc2xpY2UoMCwzKS50b0xvd2VyQ2FzZSgpfSkuam9pbigiIik6aGU7Y2FzZSBX''@;'; + put 'put ''LlNlcnZlclR5cGUuU2FzanM6cmV0dXJuIG51bGw9PVRlP3ZvaWQgMDpUZS51c2VybmFtZTtkZWZhdWx0OnJldHVybiBpZS5lcnJvcigiU2VydmVyIFR5cGUgbm90IGZvdW5kIGluIGV4dHJhY3RVc2VyTmFtZSBmdW5jdGlvbiIpLCIifX0sdGhpcy5zZXRMb2dpblVybD1mdW5jdGlvbihUZSl7''@;'; + put 'put ''dmFyIEVlPVRlWzFdLnJlcGxhY2UoL1w/LiovLCIiKTtpZigiLyI9PT1FZVswXSl7RWU9RWUuc3Vic3RyKDEpO3ZhciBoZT1JZS5zZXJ2ZXJVcmw/IiIuY29uY2F0KEllLnNlcnZlclVybCwiLyIpLmNvbmNhdChFZSk6IiIuY29uY2F0KEVlKTtJZS5sb2dpblVybD1JZS5zZXJ2ZXJUeXBlPT09''@;'; + put 'put ''Vy5TZXJ2ZXJUeXBlLlNhc1ZpeWE/aGU6aGUucmVwbGFjZSgiLmRvIiwiIil9fSx0aGlzLmxvZ2luVXJsPSIvU0FTTG9nb24vbG9naW4iLHRoaXMubG9nb3V0VXJsPXRoaXMuc2VydmVyVHlwZT09PVcuU2VydmVyVHlwZS5TYXM5PyIvU0FTTG9nb24vbG9nb3V0PyI6dGhpcy5zZXJ2ZXJUeXBl''@;'; + put 'put ''PT09Vy5TZXJ2ZXJUeXBlLlNhc1ZpeWE/Ii9TQVNMb2dvbi9sb2dvdXQuZG8/IjoiL1NBU0xvZ29uL2xvZ291dCJ9cmV0dXJuIGRlLnByb3RvdHlwZS5yZWRpcmVjdGVkTG9nSW49ZnVuY3Rpb24odmUpe3ZhciBBZT12ZS5vbkxvZ2dlZE91dDtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAw''@;'; + put 'put ''LGZ1bmN0aW9uKCl7dmFyIGtlLEllLFRlLEVlLGhlLE87cmV0dXJuIFkodGhpcyxmdW5jdGlvbih6KXtzd2l0Y2goei5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuZmV0Y2hVc2VyTmFtZSgpXTtjYXNlIDE6cmV0dXJuIGtlPXouc2VudCgpLEllPWtlLnVzZXJOYW1lLGtlLmlzTG9nZ2Vk''@;'; + put 'put ''SW4/WzQsdGhpcy5sb2dpbkNhbGxiYWNrKCldOlszLDNdO2Nhc2UgMjpyZXR1cm4gei5zZW50KCksWzIse2lzTG9nZ2VkSW46ITAsdXNlck5hbWU6SWV9XTtjYXNlIDM6cmV0dXJuWzQsKDAsZWUub3BlbldlYlBhZ2UpKHRoaXMucmVkaXJlY3RlZExvZ2luVXJsLCJTQVNMb2dvbiIse3dpZHRo''@;'; + put 'put ''OjUwMCxoZWlnaHQ6NjAwfSxBZSldO2Nhc2UgNDpyZXR1cm4oVGU9ei5zZW50KCkpP3RoaXMuc2VydmVyVHlwZSE9PVcuU2VydmVyVHlwZS5TYXNWaXlhP1szLDZdOls0LCgwLEoudmVyaWZ5U2FzVml5YUxvZ2luKShUZSldOlsyLHtpc0xvZ2dlZEluOiExLHVzZXJOYW1lOiIifV07Y2FzZSA1''@;'; + put 'put ''OnJldHVybiBoZT16LnNlbnQoKSxbMyw4XTtjYXNlIDY6cmV0dXJuWzQsKDAscS52ZXJpZnlTYXM5TG9naW4pKFRlKV07Y2FzZSA3OmhlPXouc2VudCgpLHoubGFiZWw9ODtjYXNlIDg6cmV0dXJuIEVlPWhlLmlzTG9nZ2VkSW4sVGUuY2xvc2UoKSxFZT90aGlzLnNlcnZlclR5cGUhPT1XLlNl''@;'; + put 'put ''cnZlclR5cGUuU2FzOT9bMywxMF06WzQsdGhpcy5wZXJmb3JtQ0FTU2VjdXJpdHlDaGVjaygpXTpbMywxM107Y2FzZSA5Onouc2VudCgpLHoubGFiZWw9MTA7Y2FzZSAxMDpyZXR1cm5bNCx0aGlzLmZldGNoVXNlck5hbWUoKV07Y2FzZSAxMTpyZXR1cm4gTz16LnNlbnQoKS51c2VyTmFtZSxb''@;'; + put 'put ''NCx0aGlzLmxvZ2luQ2FsbGJhY2soKV07Y2FzZSAxMjpyZXR1cm4gei5zZW50KCksWzIse2lzTG9nZ2VkSW46ITAsdXNlck5hbWU6T31dO2Nhc2UgMTM6cmV0dXJuWzIse2lzTG9nZ2VkSW46ITEsdXNlck5hbWU6IiJ9XX19KX0pfSxkZS5wcm90b3R5cGUubG9nSW49ZnVuY3Rpb24odmUsQWUp''@;'; + put 'put ''e3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIga2UsU2UsVGUsRWUsaGUsTyx6LG5lO3JldHVybiBZKHRoaXMsZnVuY3Rpb24odGUpe3N3aXRjaCh0ZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBrZT17X3NlcnZpY2U6ImRlZmF1bHQiLHVzZXJuYW1lOnZlLHBhc3N3''@;'; + put 'put ''b3JkOkFlfSxbNCx0aGlzLmNoZWNrU2Vzc2lvbigpXTtjYXNlIDE6cmV0dXJuIFNlPXRlLnNlbnQoKSxUZT1TZS5sb2dpbkZvcm0sRWU9U2UudXNlck5hbWUsU2UuaXNMb2dnZWRJbj9FZSE9PWtlLnVzZXJuYW1lP1szLDNdOls0LHRoaXMubG9naW5DYWxsYmFjaygpXTpbMyw3XTtjYXNlIDI6''@;'; + put 'put ''cmV0dXJuIHRlLnNlbnQoKSx0aGlzLnVzZXJOYW1lPUVlLFsyLHtpc0xvZ2dlZEluOiEwLHVzZXJOYW1lOnRoaXMudXNlck5hbWV9XTtjYXNlIDM6cmV0dXJuWzQsdGhpcy5sb2dPdXQoKV07Y2FzZSA0OnJldHVybiB0ZS5zZW50KCksWzQsdGhpcy5nZXROZXdMb2dpbkZvcm0oKV07Y2FzZSA1''@;'; + put 'put ''OlRlPXRlLnNlbnQoKSx0ZS5sYWJlbD02O2Nhc2UgNjpyZXR1cm5bMyw4XTtjYXNlIDc6dGhpcy51c2VyTmFtZT0iIix0ZS5sYWJlbD04O2Nhc2UgODpyZXR1cm5bNCx0aGlzLnNlbmRMb2dpblJlcXVlc3QoVGUsa2UpXTtjYXNlIDk6cmV0dXJuIGhlPXRlLnNlbnQoKSwoTz1jZSh0aGlzLnNl''@;'; + put 'put ''cnZlclR5cGUsaGUpKT9bMywxNF06b2UoaGUpP1s0LHRoaXMuZ2V0TG9naW5Gb3JtKGhlKV06WzMsMTJdO2Nhc2UgMTA6cmV0dXJuIHo9dGUuc2VudCgpLFs0LHRoaXMuc2VuZExvZ2luUmVxdWVzdCh6LGtlKV07Y2FzZSAxMTpoZT10ZS5zZW50KCksdGUubGFiZWw9MTI7Y2FzZSAxMjpyZXR1''@;'; + put 'put ''cm5bNCx0aGlzLmNoZWNrU2Vzc2lvbigpXTtjYXNlIDEzOnJldHVybiBuZT10ZS5zZW50KCksKE89bmUuaXNMb2dnZWRJbikmJih0aGlzLnVzZXJOYW1lPW5lLnVzZXJOYW1lKSxbMywxNV07Y2FzZSAxNDp0aGlzLnVzZXJOYW1lPWtlLnVzZXJuYW1lLHRlLmxhYmVsPTE1O2Nhc2UgMTU6cmV0''@;'; + put 'put ''dXJuIE8/dGhpcy5zZXJ2ZXJUeXBlIT09Vy5TZXJ2ZXJUeXBlLlNhczk/WzMsMTddOls0LHRoaXMucGVyZm9ybUNBU1NlY3VyaXR5Q2hlY2soKV06WzMsMThdO2Nhc2UgMTY6dGUuc2VudCgpLHRlLmxhYmVsPTE3O2Nhc2UgMTc6cmV0dXJuIHRoaXMubG9naW5DYWxsYmFjaygpLFszLDE5XTtj''@;'; + put 'put ''YXNlIDE4OnRoaXMudXNlck5hbWU9IiIsdGUubGFiZWw9MTk7Y2FzZSAxOTpyZXR1cm5bMix7aXNMb2dnZWRJbjpPLHVzZXJOYW1lOnRoaXMudXNlck5hbWV9XX19KX0pfSxkZS5wcm90b3R5cGUucGVyZm9ybUNBU1NlY3VyaXR5Q2hlY2s9ZnVuY3Rpb24oKXtyZXR1cm4gbGUodGhpcyx2b2lk''@;'; + put 'put ''IDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHZlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oQWUpe3N3aXRjaChBZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB2ZT0iIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9TQVNTdG9yZWRQcm9jZXNzL2pfc3ByaW5nX2Nhc19zZWN1cml0eV9jaGVjayIpLFs0''@;'; + put 'put ''LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIi9TQVNMb2dvbi9sb2dpbj9zZXJ2aWNlPSIuY29uY2F0KHZlKSx2b2lkIDApXTtjYXNlIDE6cmV0dXJuIEFlLnNlbnQoKSxbMl19fSl9KX0sZGUucHJvdG90eXBlLnNlbmRMb2dpblJlcXVlc3Q9ZnVuY3Rpb24odmUsQWUpe3JldHVybiBsZSh0aGlz''@;'; + put 'put ''LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgSWUsVGU7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihFZSl7c3dpdGNoKEVlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuc2VydmVyVHlwZSE9PVcuU2VydmVyVHlwZS5TYXNqcz9bMywyXTpbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCh0''@;'; + put 'put ''aGlzLmxvZ2luVXJsLHt1c2VybmFtZTpBZS51c2VybmFtZSxwYXNzd29yZDpBZS5wYXNzd29yZH0sdm9pZCAwKV07Y2FzZSAxOmNhc2UgMzpyZXR1cm5bMixFZS5zZW50KCkucmVzdWx0XTtjYXNlIDI6Zm9yKEllIGluIHZlKUFlW0llXT12ZVtJZV07cmV0dXJuIFRlPSgwLE4uc2VyaWFsaXpl''@;'; + put 'put ''KShBZSksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QodGhpcy5sb2dpblVybCxUZSx2b2lkIDAsInRleHQvcGxhaW4iLHsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIixBY2NlcHQ6IiovKiJ9KV19fSl9KX0sZGUucHJvdG90eXBlLmNoZWNrU2Vz''@;'; + put 'put ''c2lvbj1mdW5jdGlvbigpe3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdmUsQWUsa2UsU2U7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihJZSl7c3dpdGNoKEllLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5mZXRjaFVzZXJOYW1lKCldO2Nhc2UgMTpyZXR1''@;'; + put 'put ''cm4gdmU9SWUuc2VudCgpLGtlPXZlLnVzZXJOYW1lLFNlPW51bGwsKEFlPXZlLmlzTG9nZ2VkSW4pP1szLDRdOls0LHRoaXMubG9nT3V0KCldO2Nhc2UgMjpyZXR1cm4gSWUuc2VudCgpLFs0LHRoaXMuZ2V0TmV3TG9naW5Gb3JtKCldO2Nhc2UgMzpTZT1JZS5zZW50KCksSWUubGFiZWw9NDtj''@;'; + put 'put ''YXNlIDQ6cmV0dXJuWzIsUHJvbWlzZS5yZXNvbHZlKHtpc0xvZ2dlZEluOkFlLHVzZXJOYW1lOmtlLnRvTG93ZXJDYXNlKCksbG9naW5Gb3JtOlNlfSldfX0pfSl9LGRlLnByb3RvdHlwZS5nZXROZXdMb2dpbkZvcm09ZnVuY3Rpb24oKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1''@;'; + put 'put ''bmN0aW9uKCl7dmFyIHZlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oQWUpe3N3aXRjaChBZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLnNlcnZlclR5cGU9PT1XLlNlcnZlclR5cGUuU2FzanM/WzIsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiLyIsdm9pZCAwKS50aGVuKGZ1bmN0aW9uKGtl''@;'; + put 'put ''KXt2YXIgU2UsVGU9bnVsbD09PShTZT0vPHNjcmlwdD5kb2N1bWVudC5jb29raWUgPSAnKFhTUkYtVE9LRU49Lio7IE1heC1BZ2U9ODY0MDA7IFNhbWVTaXRlPVN0cmljdDsgUGF0aD1cLzspJzxcL3NjcmlwdD4vLmV4ZWMoa2UucmVzdWx0KSl8fHZvaWQgMD09PVNlP3ZvaWQgMDpTZVsxXTtU''@;'; + put 'put ''ZSYmKGRvY3VtZW50LmNvb2tpZT1UZSl9KV06WzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCh0aGlzLmxvZ2luVXJsLnJlcGxhY2UoIi5kbyIsIiIpLHZvaWQgMCwidGV4dC9wbGFpbiIpXTtjYXNlIDE6cmV0dXJuIHZlPUFlLnNlbnQoKS5yZXN1bHQsWzQsdGhpcy5nZXRMb2dpbkZvcm0odmUp''@;'; + put 'put ''XTtjYXNlIDI6cmV0dXJuWzIsQWUuc2VudCgpXX19KX0pfSxkZS5wcm90b3R5cGUuZmV0Y2hVc2VyTmFtZT1mdW5jdGlvbigpe3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdmUsQWUsa2UsU2U7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihJZSl7c3dpdGNoKEll''@;'; + put 'put ''LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHZlPSIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCx0aGlzLnNlcnZlclR5cGU9PT1XLlNlcnZlclR5cGUuU2FzVml5YT8iL2lkZW50aXRpZXMvdXNlcnMvQGN1cnJlbnRVc2VyIjp0aGlzLnNlcnZlclR5cGU9PT1XLlNlcnZlclR5cGUuU2FzOT8iL1NBU1N0''@;'; + put 'put ''b3JlZFByb2Nlc3MiOiIvU0FTanNBcGkvc2Vzc2lvbiIpLFs0LHRoaXMucmVxdWVzdENsaWVudC5nZXQodmUsdm9pZCAwLCJ0ZXh0L3BsYWluIikuY2F0Y2goZnVuY3Rpb24oVGUpe3JldHVybntyZXN1bHQ6ImF1dGhFcnIifX0pXTtjYXNlIDE6cmV0dXJuIEFlPUllLnNlbnQoKS5yZXN1bHQs''@;'; + put 'put ''U2U9KGtlPSJhdXRoRXJyIiE9PUFlKT90aGlzLmV4dHJhY3RVc2VyTmFtZShBZSk6IiIsa2U/WzMsM106WzQsdGhpcy5sb2dPdXQoKV07Y2FzZSAyOkllLnNlbnQoKSxJZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMix7aXNMb2dnZWRJbjprZSx1c2VyTmFtZTpTZX1dfX0pfSl9LGRlLnByb3Rv''@;'; + put 'put ''dHlwZS5nZXRMb2dpbkZvcm09ZnVuY3Rpb24odmUpe3ZhciBBZT0vPGZvcm0uK2FjdGlvbj0iKC4qTG9nb25bXiJdKikuKj4vLmV4ZWModmUpLGtlPXt9O2lmKEFlJiZBZS5sZW5ndGgpe3RoaXMuc2V0TG9naW5VcmwoQWUpO3ZhciBTZT12ZS5tYXRjaCgvPGlucHV0LioiaGlkZGVuIltePl0q''@;'; + put 'put ''Pi9nKTtTZSYmU2UuZm9yRWFjaChmdW5jdGlvbihJZSl7dmFyIFRlPUllLm1hdGNoKC9uYW1lPSIoW14iXSopIlxzdmFsdWU9IihbXiJdKikvKTtUZSYmVGUubGVuZ3RoJiYoa2VbVGVbMV1dPVRlWzJdKX0pfXJldHVybiBPYmplY3Qua2V5cyhrZSkubGVuZ3RoP2tlOm51bGx9LGRlLnByb3Rv''@;'; + put 'put ''dHlwZS5sb2dPdXQ9ZnVuY3Rpb24oKXtyZXR1cm4gbGUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih2ZSl7cmV0dXJuIHRoaXMucmVxdWVzdENsaWVudC5jbGVhckNzcmZUb2tlbnMoKSxbMix0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KHRoaXMu''@;'; + put 'put ''bG9nb3V0VXJsLHZvaWQgMCkudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSldfSl9KX0sZGV9KCk7US5BdXRoTWFuYWdlcj1zZTt2YXIgb2U9ZnVuY3Rpb24oZGUpe3JldHVybi9BbiBlcnJvciBvY2N1cnJlZCB3aGlsZSB0aGUgc3lzdGVtIHdhcyB2ZXJpZnlpbmcgeW91ciBjcmVkZW50aWFs''@;'; + put 'put ''cy4gUGxlYXNlIGVudGVyIHlvdXIgY3JlZGVudGlhbHMgYWdhaW4uL2dtLnRlc3QoZGUpfSxjZT1mdW5jdGlvbihkZSx2ZSl7cmV0dXJuIGRlPT09Vy5TZXJ2ZXJUeXBlLlNhc2pzP251bGw9PXZlP3ZvaWQgMDp2ZS5sb2dnZWRpbjovWW91IGhhdmUgc2lnbmVkIGluL2dtLnRlc3QodmUpfX0s''@;'; + put 'put ''NTc6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKFcsTixlZSxxKXtyZXR1cm4gbmV3KGVlfHwoZWU9UHJvbWlzZSkpKGZ1bmN0aW9uKEosc2Upe2Z1bmN0aW9uIG9lKHZlKXt0cnl7ZGUocS5uZXh0KHZlKSl9Y2F0Y2go''@;'; + put 'put ''QWUpe3NlKEFlKX19ZnVuY3Rpb24gY2UodmUpe3RyeXtkZShxLnRocm93KHZlKSl9Y2F0Y2goQWUpe3NlKEFlKX19ZnVuY3Rpb24gZGUodmUpe3ZhciBBZTt2ZS5kb25lP0oodmUudmFsdWUpOihBZT12ZS52YWx1ZSxBZSBpbnN0YW5jZW9mIGVlP0FlOm5ldyBlZShmdW5jdGlvbihrZSl7a2Uo''@;'; + put 'put ''QWUpfSkpLnRoZW4ob2UsY2UpfWRlKChxPXEuYXBwbHkoVyxOfHxbXSkpLm5leHQoKSl9KX0sbGU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oVyxOKXt2YXIgZWUscSxKLHNlLG9lPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkpbMF0pdGhyb3cgSlsxXTtyZXR1cm4g''@;'; + put 'put ''SlsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBzZT17bmV4dDpjZSgwKSx0aHJvdzpjZSgxKSxyZXR1cm46Y2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihzZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxzZTtmdW5jdGlvbiBjZShkZSl7cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uKHZlKXtyZXR1cm4gZnVuY3Rpb24oQWUpe2lmKGVlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO29lOyl0cnl7aWYoZWU9MSxxJiYoSj0yJkFlWzBdP3EucmV0dXJuOkFlWzBdP3EudGhyb3d8fCgoSj1xLnJl''@;'; + put 'put ''dHVybikmJkouY2FsbChxKSwwKTpxLm5leHQpJiYhKEo9Si5jYWxsKHEsQWVbMV0pKS5kb25lKXJldHVybiBKO3N3aXRjaChxPTAsSiYmKEFlPVsyJkFlWzBdLEoudmFsdWVdKSxBZVswXSl7Y2FzZSAwOmNhc2UgMTpKPUFlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gb2UubGFiZWwrKyx7dmFsdWU6''@;'; + put 'put ''QWVbMV0sZG9uZTohMX07Y2FzZSA1Om9lLmxhYmVsKysscT1BZVsxXSxBZT1bMF07Y29udGludWU7Y2FzZSA3OkFlPW9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoSj0oSj1vZS50cnlzKS5sZW5ndGg+MCYmSltKLmxlbmd0aC0xXSl8fDYhPT1BZVsw''@;'; + put 'put ''XSYmMiE9PUFlWzBdKSl7b2U9MDtjb250aW51ZX1pZigzPT09QWVbMF0mJighSnx8QWVbMV0+SlswXSYmQWVbMV08SlszXSkpe29lLmxhYmVsPUFlWzFdO2JyZWFrfWlmKDY9PT1BZVswXSYmb2UubGFiZWw8SlsxXSl7b2UubGFiZWw9SlsxXSxKPUFlO2JyZWFrfWlmKEomJm9lLmxhYmVsPEpb''@;'; + put 'put ''Ml0pe29lLmxhYmVsPUpbMl0sb2Uub3BzLnB1c2goQWUpO2JyZWFrfUpbMl0mJm9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlfUFlPU4uY2FsbChXLG9lKX1jYXRjaChrZSl7QWU9WzYsa2VdLHE9MH1maW5hbGx5e2VlPUo9MH1pZig1JkFlWzBdKXRocm93IEFlWzFdO3JldHVy''@;'; + put 'put ''bnt2YWx1ZTpBZVswXT9BZVsxXTp2b2lkIDAsZG9uZTohMH19KFtkZSx2ZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdldEFjY2Vzc1Rva2VuRm9yU2FzanM9dm9pZCAwO3ZhciBZPVooOTc3OCk7US5nZXRBY2Nlc3NUb2tlbkZvclNh''@;'; + put 'put ''c2pzPWZ1bmN0aW9uKFcsTixlZSl7cmV0dXJuIGllKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzLGZ1bmN0aW9uKEope3N3aXRjaChKLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsVy5wb3N0KCIvU0FTanNBcGkvYXV0aC90b2tlbiIse2NsaWVudElkOk4sY29k''@;'; + put 'put ''ZTplZX0sdm9pZCAwKS50aGVuKGZ1bmN0aW9uKHNlKXt2YXIgb2U9c2UucmVzdWx0O3JldHVybnthY2Nlc3NfdG9rZW46b2UuYWNjZXNzVG9rZW4scmVmcmVzaF90b2tlbjpvZS5yZWZyZXNoVG9rZW59fSkuY2F0Y2goZnVuY3Rpb24oc2Upe3Rocm93KDAsWS5wcmVmaXhNZXNzYWdlKShzZSwi''@;'; + put 'put ''RXJyb3Igd2hpbGUgZ2V0dGluZyBhY2Nlc3MgdG9rZW4uICIpfSldO2Nhc2UgMTpyZXR1cm5bMixKLnNlbnQoKV19fSl9KX19LDM1Njk6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig4NzY0KS5CdWZmZXIsbGU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGVl''@;'; + put 'put ''LHEsSixzZSl7cmV0dXJuIG5ldyhKfHwoSj1Qcm9taXNlKSkoZnVuY3Rpb24ob2UsY2Upe2Z1bmN0aW9uIGRlKGtlKXt0cnl7QWUoc2UubmV4dChrZSkpfWNhdGNoKFNlKXtjZShTZSl9fWZ1bmN0aW9uIHZlKGtlKXt0cnl7QWUoc2UudGhyb3coa2UpKX1jYXRjaChTZSl7Y2UoU2UpfX1mdW5j''@;'; + put 'put ''dGlvbiBBZShrZSl7dmFyIFNlO2tlLmRvbmU/b2Uoa2UudmFsdWUpOihTZT1rZS52YWx1ZSxTZSBpbnN0YW5jZW9mIEo/U2U6bmV3IEooZnVuY3Rpb24oSWUpe0llKFNlKX0pKS50aGVuKGRlLHZlKX1BZSgoc2U9c2UuYXBwbHkoZWUscXx8W10pKS5uZXh0KCkpfSl9LFk9dGhpcyYmdGhpcy5f''@;'; + put 'put ''X2dlbmVyYXRvcnx8ZnVuY3Rpb24oZWUscSl7dmFyIEosc2Usb2UsY2UsZGU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb2VbMF0pdGhyb3cgb2VbMV07cmV0dXJuIG9lWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGNlPXtuZXh0OnZlKDApLHRocm93OnZlKDEpLHJldHVybjp2''@;'; + put 'put ''ZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGNlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGNlO2Z1bmN0aW9uIHZlKEFlKXtyZXR1cm4gZnVuY3Rpb24oa2Upe3JldHVybiBmdW5jdGlvbihTZSl7aWYoSil0aHJvdyBuZXcgVHlwZUVycm9yKCJH''@;'; + put 'put ''ZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtkZTspdHJ5e2lmKEo9MSxzZSYmKG9lPTImU2VbMF0/c2UucmV0dXJuOlNlWzBdP3NlLnRocm93fHwoKG9lPXNlLnJldHVybikmJm9lLmNhbGwoc2UpLDApOnNlLm5leHQpJiYhKG9lPW9lLmNhbGwoc2UsU2VbMV0pKS5kb25l''@;'; + put 'put ''KXJldHVybiBvZTtzd2l0Y2goc2U9MCxvZSYmKFNlPVsyJlNlWzBdLG9lLnZhbHVlXSksU2VbMF0pe2Nhc2UgMDpjYXNlIDE6b2U9U2U7YnJlYWs7Y2FzZSA0OnJldHVybiBkZS5sYWJlbCsrLHt2YWx1ZTpTZVsxXSxkb25lOiExfTtjYXNlIDU6ZGUubGFiZWwrKyxzZT1TZVsxXSxTZT1bMF07''@;'; + put 'put ''Y29udGludWU7Y2FzZSA3OlNlPWRlLm9wcy5wb3AoKSxkZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgob2U9KG9lPWRlLnRyeXMpLmxlbmd0aD4wJiZvZVtvZS5sZW5ndGgtMV0pfHw2IT09U2VbMF0mJjIhPT1TZVswXSkpe2RlPTA7Y29udGludWV9aWYoMz09PVNlWzBdJiYo''@;'; + put 'put ''IW9lfHxTZVsxXT5vZVswXSYmU2VbMV08b2VbM10pKXtkZS5sYWJlbD1TZVsxXTticmVha31pZig2PT09U2VbMF0mJmRlLmxhYmVsPG9lWzFdKXtkZS5sYWJlbD1vZVsxXSxvZT1TZTticmVha31pZihvZSYmZGUubGFiZWw8b2VbMl0pe2RlLmxhYmVsPW9lWzJdLGRlLm9wcy5wdXNoKFNlKTti''@;'; + put 'put ''cmVha31vZVsyXSYmZGUub3BzLnBvcCgpLGRlLnRyeXMucG9wKCk7Y29udGludWV9U2U9cS5jYWxsKGVlLGRlKX1jYXRjaChJZSl7U2U9WzYsSWVdLHNlPTB9ZmluYWxseXtKPW9lPTB9aWYoNSZTZVswXSl0aHJvdyBTZVsxXTtyZXR1cm57dmFsdWU6U2VbMF0/U2VbMV06dm9pZCAwLGRvbmU6''@;'; + put 'put ''ITB9fShbQWUsa2VdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5nZXRBY2Nlc3NUb2tlbkZvclZpeWE9dm9pZCAwO3ZhciBXPVooOTc3OCksTj1aKDEzOTUpO1EuZ2V0QWNjZXNzVG9rZW5Gb3JWaXlhPWZ1bmN0aW9uKGVlLHEsSixzZSl7''@;'; + put 'put ''cmV0dXJuIGxlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBvZSxjZSxkZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHZlKXtzd2l0Y2godmUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gb2U9dm9pZCAwPT09aWU/YnRvYShxKyI6IitKKTppZS5mcm9tKHErIjoiK0opLnRvU3RyaW5n''@;'; + put 'put ''KCJiYXNlNjQiKSxjZT17QXV0aG9yaXphdGlvbjoiQmFzaWMgIitvZSxBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifSxkZT1uZXcgVVJMU2VhcmNoUGFyYW1zKHtncmFudF90eXBlOiJhdXRob3JpemF0aW9uX2NvZGUiLGNvZGU6c2V9KSxbNCxlZS5wb3N0KCIvU0FTTG9nb24vb2F1dGgvdG9r''@;'; + put 'put ''ZW4iLGRlLHZvaWQgMCwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIixjZSkudGhlbihmdW5jdGlvbihBZSl7cmV0dXJuIEFlLnJlc3VsdH0pLmNhdGNoKGZ1bmN0aW9uKEFlKXt0aHJvdyBBZSBpbnN0YW5jZW9mIE4uQ2VydGlmaWNhdGVFcnJvcj9BZTooMCxXLnByZWZpeE1l''@;'; + put 'put ''c3NhZ2UpKEFlLCJFcnJvciB3aGlsZSBnZXR0aW5nIGFjY2VzcyB0b2tlbi4gIil9KV07Y2FzZSAxOnJldHVyblsyLHZlLnNlbnQoKV19fSl9KX19LDcwNDpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpLGxlPVooNTEwOCksWT10aGlzJiZ0aGlzLl9fYXdhaXRl''@;'; + put 'put ''cnx8ZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3JldHVybiBuZXcoY2V8fChjZT1Qcm9taXNlKSkoZnVuY3Rpb24odmUsQWUpe2Z1bmN0aW9uIGtlKFRlKXt0cnl7SWUoZGUubmV4dChUZSkpfWNhdGNoKEVlKXtBZShFZSl9fWZ1bmN0aW9uIFNlKFRlKXt0cnl7SWUoZGUudGhyb3coVGUpKX1jYXRj''@;'; + put 'put ''aChFZSl7QWUoRWUpfX1mdW5jdGlvbiBJZShUZSl7dmFyIEVlO1RlLmRvbmU/dmUoVGUudmFsdWUpOihFZT1UZS52YWx1ZSxFZSBpbnN0YW5jZW9mIGNlP0VlOm5ldyBjZShmdW5jdGlvbihoZSl7aGUoRWUpfSkpLnRoZW4oa2UsU2UpfUllKChkZT1kZS5hcHBseShzZSxvZXx8W10pKS5uZXh0''@;'; + put 'put ''KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oc2Usb2Upe3ZhciBjZSxkZSx2ZSxBZSxrZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZ2ZVswXSl0aHJvdyB2ZVsxXTtyZXR1cm4gdmVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gQWU9e25leHQ6U2Uo''@;'; + put 'put ''MCksdGhyb3c6U2UoMSkscmV0dXJuOlNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoQWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksQWU7ZnVuY3Rpb24gU2UoSWUpe3JldHVybiBmdW5jdGlvbihUZSl7cmV0dXJuIGZ1bmN0aW9uKEVlKXtpZihj''@;'; + put 'put ''ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtrZTspdHJ5e2lmKGNlPTEsZGUmJih2ZT0yJkVlWzBdP2RlLnJldHVybjpFZVswXT9kZS50aHJvd3x8KCh2ZT1kZS5yZXR1cm4pJiZ2ZS5jYWxsKGRlKSwwKTpkZS5uZXh0KSYmISh2''@;'; + put 'put ''ZT12ZS5jYWxsKGRlLEVlWzFdKSkuZG9uZSlyZXR1cm4gdmU7c3dpdGNoKGRlPTAsdmUmJihFZT1bMiZFZVswXSx2ZS52YWx1ZV0pLEVlWzBdKXtjYXNlIDA6Y2FzZSAxOnZlPUVlO2JyZWFrO2Nhc2UgNDpyZXR1cm4ga2UubGFiZWwrKyx7dmFsdWU6RWVbMV0sZG9uZTohMX07Y2FzZSA1Omtl''@;'; + put 'put ''LmxhYmVsKyssZGU9RWVbMV0sRWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpFZT1rZS5vcHMucG9wKCksa2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKHZlPSh2ZT1rZS50cnlzKS5sZW5ndGg+MCYmdmVbdmUubGVuZ3RoLTFdKXx8NiE9PUVlWzBdJiYyIT09RWVbMF0pKXtrZT0w''@;'; + put 'put ''O2NvbnRpbnVlfWlmKDM9PT1FZVswXSYmKCF2ZXx8RWVbMV0+dmVbMF0mJkVlWzFdPHZlWzNdKSl7a2UubGFiZWw9RWVbMV07YnJlYWt9aWYoNj09PUVlWzBdJiZrZS5sYWJlbDx2ZVsxXSl7a2UubGFiZWw9dmVbMV0sdmU9RWU7YnJlYWt9aWYodmUmJmtlLmxhYmVsPHZlWzJdKXtrZS5sYWJl''@;'; + put 'put ''bD12ZVsyXSxrZS5vcHMucHVzaChFZSk7YnJlYWt9dmVbMl0mJmtlLm9wcy5wb3AoKSxrZS50cnlzLnBvcCgpO2NvbnRpbnVlfUVlPW9lLmNhbGwoc2Usa2UpfWNhdGNoKGhlKXtFZT1bNixoZV0sZGU9MH1maW5hbGx5e2NlPXZlPTB9aWYoNSZFZVswXSl0aHJvdyBFZVsxXTtyZXR1cm57dmFs''@;'; + put 'put ''dWU6RWVbMF0/RWVbMV06dm9pZCAwLGRvbmU6ITB9fShbSWUsVGVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5nZXRUb2tlbnM9dm9pZCAwO3ZhciBOPVooNjc5OSksZWU9WigzOTAwKSxxPVooMzY2KSxKPVooMjQ5KTtRLmdldFRva2Vu''@;'; + put 'put ''cz1mdW5jdGlvbihzZSxvZSxjZSl7cmV0dXJuIHZvaWQgMD09PWNlJiYoY2U9ZWUuU2VydmVyVHlwZS5TYXNWaXlhKSxZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBkZSx2ZSxBZSxrZSxTZSxUZSxFZTtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKGhlKXtzd2l0Y2goaGUubGFi''@;'; + put 'put ''ZWwpe2Nhc2UgMDppZihkZT1pZS5sb2dnZXJ8fGxlLEFlPW9lLnJlZnJlc2hfdG9rZW4sa2U9b2UuY2xpZW50LFNlPW9lLnNlY3JldCwhKDAsTi5pc0FjY2Vzc1Rva2VuRXhwaXJpbmcpKHZlPW9lLmFjY2Vzc190b2tlbikmJiEoMCxOLmlzUmVmcmVzaFRva2VuRXhwaXJpbmcpKEFlKSlyZXR1''@;'; + put 'put ''cm5bMyw1XTtpZigoMCxOLmhhc1Rva2VuRXhwaXJlZCkoQWUpKXRocm93IGRlLmVycm9yKCJVbmFibGUgdG8gb2J0YWluIG5ldyBhY2Nlc3MgdG9rZW4uIFlvdXIgcmVmcmVzaCB0b2tlbiBoYXMgZXhwaXJlZC4iKSxuZXcgRXJyb3IoIlVuYWJsZSB0byBvYnRhaW4gbmV3IGFjY2VzcyB0b2tl''@;'; + put 'put ''bi4gWW91ciByZWZyZXNoIHRva2VuIGhhcyBleHBpcmVkLiIpO3JldHVybiBkZS5pbmZvKCJSZWZyZXNoaW5nIGFjY2VzcyBhbmQgcmVmcmVzaCB0b2tlbnMuIiksY2UhPT1lZS5TZXJ2ZXJUeXBlLlNhc1ZpeWE/WzMsMl06WzQsKDAscS5yZWZyZXNoVG9rZW5zRm9yVml5YSkoc2Usa2UsU2Us''@;'; + put 'put ''QWUpXTtjYXNlIDE6cmV0dXJuIEVlPWhlLnNlbnQoKSxbMyw0XTtjYXNlIDI6cmV0dXJuWzQsKDAsSi5yZWZyZXNoVG9rZW5zRm9yU2FzanMpKHNlLEFlKV07Y2FzZSAzOkVlPWhlLnNlbnQoKSxoZS5sYWJlbD00O2Nhc2UgNDp2ZT0oVGU9RWUpLmFjY2Vzc190b2tlbixBZT1UZS5yZWZyZXNo''@;'; + put 'put ''X3Rva2VuLGhlLmxhYmVsPTU7Y2FzZSA1OnJldHVyblsyLHthY2Nlc3NfdG9rZW46dmUscmVmcmVzaF90b2tlbjpBZSxjbGllbnQ6a2Usc2VjcmV0OlNlfV19fSl9KX19LDE1Mjc6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8''@;'; + put 'put ''fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKFksVyxOLGVlKXt2b2lkIDA9PT1lZSYmKGVlPU4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShZLGVlLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXW05dfX0pfTpmdW5jdGlvbihZLFcsTixlZSl7dm9pZCAwPT09ZWUmJihlZT1O''@;'; + put 'put ''KSxZW2VlXT1XW05dfSksbGU9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKFksVyl7Zm9yKHZhciBOIGluIFkpImRlZmF1bHQiPT09Tnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFcsTil8fGllKFcsWSxOKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEs''@;'; + put 'put ''Il9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGxlKFooMjg1MSksUSksbGUoWig5MDk3KSxRKSxsZShaKDkxNjYpLFEpfSw5MDk3OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmlzQXV0aG9yaXplRm9ybVJlcXVp''@;'; + put 'put ''cmVkPXZvaWQgMCxRLmlzQXV0aG9yaXplRm9ybVJlcXVpcmVkPWZ1bmN0aW9uKFope3JldHVybi88Zm9ybS4rYWN0aW9uPSIoLipMb2dvblwvb2F1dGhcL2F1dGhvcml6ZVteIl0qKS4qPi9nbS50ZXN0KFopfX0sOTE2NjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5pc0xvZ0luUmVxdWlyZWQ9dm9pZCAwLFEuaXNMb2dJblJlcXVpcmVkPWZ1bmN0aW9uKFope3JldHVybi88Zm9ybS4rYWN0aW9uPSIoLipMb2dvblteIl0qKS4qPi9nbS50ZXN0KFopfX0sNTQxODpmdW5jdGlvbihVLFEsWil7InVzZSBz''@;'; + put 'put ''dHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oTixlZSxxLEope3JldHVybiBuZXcocXx8KHE9UHJvbWlzZSkpKGZ1bmN0aW9uKHNlLG9lKXtmdW5jdGlvbiBjZShBZSl7dHJ5e3ZlKEoubmV4dChBZSkpfWNhdGNoKGtlKXtvZShrZSl9fWZ1bmN0aW9uIGRlKEFl''@;'; + put 'put ''KXt0cnl7dmUoSi50aHJvdyhBZSkpfWNhdGNoKGtlKXtvZShrZSl9fWZ1bmN0aW9uIHZlKEFlKXt2YXIga2U7QWUuZG9uZT9zZShBZS52YWx1ZSk6KGtlPUFlLnZhbHVlLGtlIGluc3RhbmNlb2YgcT9rZTpuZXcgcShmdW5jdGlvbihTZSl7U2Uoa2UpfSkpLnRoZW4oY2UsZGUpfXZlKChKPUou''@;'; + put 'put ''YXBwbHkoTixlZXx8W10pKS5uZXh0KCkpfSl9LGxlPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKE4sZWUpe3ZhciBxLEosc2Usb2UsY2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmc2VbMF0pdGhyb3cgc2VbMV07cmV0dXJuIHNlWzFdfSx0cnlzOltdLG9wczpbXX07''@;'; + put 'put ''cmV0dXJuIG9lPXtuZXh0OmRlKDApLHRocm93OmRlKDEpLHJldHVybjpkZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKG9lW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG9lO2Z1bmN0aW9uIGRlKHZlKXtyZXR1cm4gZnVuY3Rpb24oQWUpe3JldHVy''@;'; + put 'put ''biBmdW5jdGlvbihrZSl7aWYocSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtjZTspdHJ5e2lmKHE9MSxKJiYoc2U9MiZrZVswXT9KLnJldHVybjprZVswXT9KLnRocm93fHwoKHNlPUoucmV0dXJuKSYmc2UuY2FsbChKKSwwKTpK''@;'; + put 'put ''Lm5leHQpJiYhKHNlPXNlLmNhbGwoSixrZVsxXSkpLmRvbmUpcmV0dXJuIHNlO3N3aXRjaChKPTAsc2UmJihrZT1bMiZrZVswXSxzZS52YWx1ZV0pLGtlWzBdKXtjYXNlIDA6Y2FzZSAxOnNlPWtlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gY2UubGFiZWwrKyx7dmFsdWU6a2VbMV0sZG9uZTohMX07''@;'; + put 'put ''Y2FzZSA1OmNlLmxhYmVsKyssSj1rZVsxXSxrZT1bMF07Y29udGludWU7Y2FzZSA3OmtlPWNlLm9wcy5wb3AoKSxjZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoc2U9KHNlPWNlLnRyeXMpLmxlbmd0aD4wJiZzZVtzZS5sZW5ndGgtMV0pfHw2IT09a2VbMF0mJjIhPT1rZVsw''@;'; + put 'put ''XSkpe2NlPTA7Y29udGludWV9aWYoMz09PWtlWzBdJiYoIXNlfHxrZVsxXT5zZVswXSYma2VbMV08c2VbM10pKXtjZS5sYWJlbD1rZVsxXTticmVha31pZig2PT09a2VbMF0mJmNlLmxhYmVsPHNlWzFdKXtjZS5sYWJlbD1zZVsxXSxzZT1rZTticmVha31pZihzZSYmY2UubGFiZWw8c2VbMl0p''@;'; + put 'put ''e2NlLmxhYmVsPXNlWzJdLGNlLm9wcy5wdXNoKGtlKTticmVha31zZVsyXSYmY2Uub3BzLnBvcCgpLGNlLnRyeXMucG9wKCk7Y29udGludWV9a2U9ZWUuY2FsbChOLGNlKX1jYXRjaChTZSl7a2U9WzYsU2VdLEo9MH1maW5hbGx5e3E9c2U9MH1pZig1JmtlWzBdKXRocm93IGtlWzFdO3JldHVy''@;'; + put 'put ''bnt2YWx1ZTprZVswXT9rZVsxXTp2b2lkIDAsZG9uZTohMH19KFt2ZSxBZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLm9wZW5XZWJQYWdlPXZvaWQgMDt2YXIgWT1aKDEyMTApLFc9e3dpZHRoOjUwMCxoZWlnaHQ6NjAwfTtRLm9wZW5X''@;'; + put 'put ''ZWJQYWdlPWZ1bmN0aW9uKE4sZWUscSxKKXtyZXR1cm4gdm9pZCAwPT09ZWUmJihlZT0iIiksdm9pZCAwPT09cSYmKHE9VyksaWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHNlLG9lLGNlLGRlLHZlO3JldHVybiBsZSh0aGlzLGZ1bmN0aW9uKEFlKXtzd2l0Y2goQWUubGFi''@;'; + put 'put ''ZWwpe2Nhc2UgMDpyZXR1cm4gc2U9cS53aWR0aCxvZT1xLmhlaWdodCxjZT1zY3JlZW4ud2lkdGgvMi1zZS8yLGRlPXNjcmVlbi5oZWlnaHQvMi1vZS8yLCh2ZT13aW5kb3cub3BlbihOLGVlLCJ0b29sYmFyPTAsbG9jYXRpb249MCxtZW51YmFyPTAsd2lkdGg9Ii5jb25jYXQoc2UsIixoZWln''@;'; + put 'put ''aHQ9IikuY29uY2F0KG9lLCIsbGVmdD0iKS5jb25jYXQoY2UsIix0b3A9IikuY29uY2F0KGRlKSkpP1szLDJdOls0LChudWxsIT1KP0o6WS5vcGVuTG9naW5Qcm9tcHQpKCldO2Nhc2UgMTpyZXR1cm5bMixBZS5zZW50KCk/d2luZG93Lm9wZW4oTixlZSwidG9vbGJhcj0wLGxvY2F0aW9uPTAs''@;'; + put 'put ''bWVudWJhcj0wLHdpZHRoPSIuY29uY2F0KHNlLCIsaGVpZ2h0PSIpLmNvbmNhdChvZSwiLGxlZnQ9IikuY29uY2F0KGNlLCIsdG9wPSIpLmNvbmNhdChkZSkpOm51bGxdO2Nhc2UgMjpyZXR1cm5bMix2ZV19fSl9KX19LDI0OTpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10''@;'; + put 'put ''aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oVyxOLGVlLHEpe3JldHVybiBuZXcoZWV8fChlZT1Qcm9taXNlKSkoZnVuY3Rpb24oSixzZSl7ZnVuY3Rpb24gb2UodmUpe3RyeXtkZShxLm5leHQodmUpKX1jYXRjaChBZSl7c2UoQWUpfX1mdW5jdGlvbiBjZSh2ZSl7dHJ5e2RlKHEudGhy''@;'; + put 'put ''b3codmUpKX1jYXRjaChBZSl7c2UoQWUpfX1mdW5jdGlvbiBkZSh2ZSl7dmFyIEFlO3ZlLmRvbmU/Sih2ZS52YWx1ZSk6KEFlPXZlLnZhbHVlLEFlIGluc3RhbmNlb2YgZWU/QWU6bmV3IGVlKGZ1bmN0aW9uKGtlKXtrZShBZSl9KSkudGhlbihvZSxjZSl9ZGUoKHE9cS5hcHBseShXLE58fFtd''@;'; + put 'put ''KSkubmV4dCgpKX0pfSxsZT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihXLE4pe3ZhciBlZSxxLEosc2Usb2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmSlswXSl0aHJvdyBKWzFdO3JldHVybiBKWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHNlPXtuZXh0OmNl''@;'; + put 'put ''KDApLHRocm93OmNlKDEpLHJldHVybjpjZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHNlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHNlO2Z1bmN0aW9uIGNlKGRlKXtyZXR1cm4gZnVuY3Rpb24odmUpe3JldHVybiBmdW5jdGlvbihBZSl7aWYo''@;'; + put 'put ''ZWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7b2U7KXRyeXtpZihlZT0xLHEmJihKPTImQWVbMF0/cS5yZXR1cm46QWVbMF0/cS50aHJvd3x8KChKPXEucmV0dXJuKSYmSi5jYWxsKHEpLDApOnEubmV4dCkmJiEoSj1KLmNhbGwo''@;'; + put 'put ''cSxBZVsxXSkpLmRvbmUpcmV0dXJuIEo7c3dpdGNoKHE9MCxKJiYoQWU9WzImQWVbMF0sSi52YWx1ZV0pLEFlWzBdKXtjYXNlIDA6Y2FzZSAxOko9QWU7YnJlYWs7Y2FzZSA0OnJldHVybiBvZS5sYWJlbCsrLHt2YWx1ZTpBZVsxXSxkb25lOiExfTtjYXNlIDU6b2UubGFiZWwrKyxxPUFlWzFd''@;'; + put 'put ''LEFlPVswXTtjb250aW51ZTtjYXNlIDc6QWU9b2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChKPShKPW9lLnRyeXMpLmxlbmd0aD4wJiZKW0oubGVuZ3RoLTFdKXx8NiE9PUFlWzBdJiYyIT09QWVbMF0pKXtvZT0wO2NvbnRpbnVlfWlmKDM9PT1BZVsw''@;'; + put 'put ''XSYmKCFKfHxBZVsxXT5KWzBdJiZBZVsxXTxKWzNdKSl7b2UubGFiZWw9QWVbMV07YnJlYWt9aWYoNj09PUFlWzBdJiZvZS5sYWJlbDxKWzFdKXtvZS5sYWJlbD1KWzFdLEo9QWU7YnJlYWt9aWYoSiYmb2UubGFiZWw8SlsyXSl7b2UubGFiZWw9SlsyXSxvZS5vcHMucHVzaChBZSk7YnJlYWt9''@;'; + put 'put ''SlsyXSYmb2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWV9QWU9Ti5jYWxsKFcsb2UpfWNhdGNoKGtlKXtBZT1bNixrZV0scT0wfWZpbmFsbHl7ZWU9Sj0wfWlmKDUmQWVbMF0pdGhyb3cgQWVbMV07cmV0dXJue3ZhbHVlOkFlWzBdP0FlWzFdOnZvaWQgMCxkb25lOiEwfX0oW2Rl''@;'; + put 'put ''LHZlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucmVmcmVzaFRva2Vuc0ZvclNhc2pzPXZvaWQgMDt2YXIgWT1aKDk3NzgpO1EucmVmcmVzaFRva2Vuc0ZvclNhc2pzPWZ1bmN0aW9uKFcsTil7cmV0dXJuIGllKHRoaXMsdm9pZCAwLHZv''@;'; + put 'put ''aWQgMCxmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzLGZ1bmN0aW9uKHEpe3N3aXRjaChxLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsVy5wb3N0KCIvU0FTanNBcGkvYXV0aC9yZWZyZXNoIix2b2lkIDAsdm9pZCAwLHZvaWQgMCx7QXV0aG9yaXphdGlvbjoiQmVhcmVyICIrTn0pLnRoZW4oZnVu''@;'; + put 'put ''Y3Rpb24oSil7dmFyIHNlPUoucmVzdWx0O3JldHVybnthY2Nlc3NfdG9rZW46c2UuYWNjZXNzVG9rZW4scmVmcmVzaF90b2tlbjpzZS5yZWZyZXNoVG9rZW59fSkuY2F0Y2goZnVuY3Rpb24oSil7dGhyb3coMCxZLnByZWZpeE1lc3NhZ2UpKEosIkVycm9yIHdoaWxlIHJlZnJlc2hpbmcgdG9r''@;'; + put 'put ''ZW5zOiAiKX0pXTtjYXNlIDE6cmV0dXJuWzIscS5zZW50KCldfX0pfSl9fSwzNjY6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig4NzY0KS5CdWZmZXIsbGU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGVlLHEsSixzZSl7cmV0dXJuIG5ldyhKfHwoSj1Qcm9t''@;'; + put 'put ''aXNlKSkoZnVuY3Rpb24ob2UsY2Upe2Z1bmN0aW9uIGRlKGtlKXt0cnl7QWUoc2UubmV4dChrZSkpfWNhdGNoKFNlKXtjZShTZSl9fWZ1bmN0aW9uIHZlKGtlKXt0cnl7QWUoc2UudGhyb3coa2UpKX1jYXRjaChTZSl7Y2UoU2UpfX1mdW5jdGlvbiBBZShrZSl7dmFyIFNlO2tlLmRvbmU/b2Uo''@;'; + put 'put ''a2UudmFsdWUpOihTZT1rZS52YWx1ZSxTZSBpbnN0YW5jZW9mIEo/U2U6bmV3IEooZnVuY3Rpb24oSWUpe0llKFNlKX0pKS50aGVuKGRlLHZlKX1BZSgoc2U9c2UuYXBwbHkoZWUscXx8W10pKS5uZXh0KCkpfSl9LFk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZWUscSl7dmFy''@;'; + put 'put ''IEosc2Usb2UsY2UsZGU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb2VbMF0pdGhyb3cgb2VbMV07cmV0dXJuIG9lWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGNlPXtuZXh0OnZlKDApLHRocm93OnZlKDEpLHJldHVybjp2ZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJv''@;'; + put 'put ''bCYmKGNlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGNlO2Z1bmN0aW9uIHZlKEFlKXtyZXR1cm4gZnVuY3Rpb24oa2Upe3JldHVybiBmdW5jdGlvbihTZSl7aWYoSil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcu''@;'; + put 'put ''Iik7Zm9yKDtkZTspdHJ5e2lmKEo9MSxzZSYmKG9lPTImU2VbMF0/c2UucmV0dXJuOlNlWzBdP3NlLnRocm93fHwoKG9lPXNlLnJldHVybikmJm9lLmNhbGwoc2UpLDApOnNlLm5leHQpJiYhKG9lPW9lLmNhbGwoc2UsU2VbMV0pKS5kb25lKXJldHVybiBvZTtzd2l0Y2goc2U9MCxvZSYmKFNl''@;'; + put 'put ''PVsyJlNlWzBdLG9lLnZhbHVlXSksU2VbMF0pe2Nhc2UgMDpjYXNlIDE6b2U9U2U7YnJlYWs7Y2FzZSA0OnJldHVybiBkZS5sYWJlbCsrLHt2YWx1ZTpTZVsxXSxkb25lOiExfTtjYXNlIDU6ZGUubGFiZWwrKyxzZT1TZVsxXSxTZT1bMF07Y29udGludWU7Y2FzZSA3OlNlPWRlLm9wcy5wb3Ao''@;'; + put 'put ''KSxkZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgob2U9KG9lPWRlLnRyeXMpLmxlbmd0aD4wJiZvZVtvZS5sZW5ndGgtMV0pfHw2IT09U2VbMF0mJjIhPT1TZVswXSkpe2RlPTA7Y29udGludWV9aWYoMz09PVNlWzBdJiYoIW9lfHxTZVsxXT5vZVswXSYmU2VbMV08b2VbM10p''@;'; + put 'put ''KXtkZS5sYWJlbD1TZVsxXTticmVha31pZig2PT09U2VbMF0mJmRlLmxhYmVsPG9lWzFdKXtkZS5sYWJlbD1vZVsxXSxvZT1TZTticmVha31pZihvZSYmZGUubGFiZWw8b2VbMl0pe2RlLmxhYmVsPW9lWzJdLGRlLm9wcy5wdXNoKFNlKTticmVha31vZVsyXSYmZGUub3BzLnBvcCgpLGRlLnRy''@;'; + put 'put ''eXMucG9wKCk7Y29udGludWV9U2U9cS5jYWxsKGVlLGRlKX1jYXRjaChJZSl7U2U9WzYsSWVdLHNlPTB9ZmluYWxseXtKPW9lPTB9aWYoNSZTZVswXSl0aHJvdyBTZVsxXTtyZXR1cm57dmFsdWU6U2VbMF0/U2VbMV06dm9pZCAwLGRvbmU6ITB9fShbQWUsa2VdKX19fTtPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5yZWZyZXNoVG9rZW5zRm9yVml5YT12b2lkIDA7dmFyIFc9Wig5Nzc4KSxOPVooNjIzMCk7US5yZWZyZXNoVG9rZW5zRm9yVml5YT1mdW5jdGlvbihlZSxxLEosc2Upe3JldHVybiBsZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgb2UsY2UsZGU7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih2ZSl7c3dpdGNoKHZlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIG9lPXZvaWQgMD09PWllP2J0b2EocSsiOiIrSik6aWUuZnJvbShxKyI6IitKKS50b1N0cmluZygiYmFzZTY0IiksY2U9e0F1dGhvcml6YXRpb246IkJh''@;'; + put 'put ''c2ljICIrb2V9LChkZT0idW5kZWZpbmVkIj09dHlwZW9mIEZvcm1EYXRhP25ldyBOOm5ldyBGb3JtRGF0YSkuYXBwZW5kKCJncmFudF90eXBlIiwicmVmcmVzaF90b2tlbiIpLGRlLmFwcGVuZCgicmVmcmVzaF90b2tlbiIsc2UpLFs0LGVlLnBvc3QoIi9TQVNMb2dvbi9vYXV0aC90b2tlbiIs''@;'; + put 'put ''ZGUsdm9pZCAwLCJtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0iK2RlLl9ib3VuZGFyeSxjZSkudGhlbihmdW5jdGlvbihBZSl7cmV0dXJuIEFlLnJlc3VsdH0pLmNhdGNoKGZ1bmN0aW9uKEFlKXt0aHJvdygwLFcucHJlZml4TWVzc2FnZSkoQWUsIkVycm9yIHdoaWxlIHJlZnJlc2hp''@;'; + put 'put ''bmcgdG9rZW5zOiAiKX0pXTtjYXNlIDE6cmV0dXJuWzIsdmUuc2VudCgpXX19KX0pfX0sNDU4MjpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oVyxOLGVlLHEpe3JldHVybiBuZXcoZWV8fChlZT1Qcm9taXNlKSkoZnVu''@;'; + put 'put ''Y3Rpb24oSixzZSl7ZnVuY3Rpb24gb2UodmUpe3RyeXtkZShxLm5leHQodmUpKX1jYXRjaChBZSl7c2UoQWUpfX1mdW5jdGlvbiBjZSh2ZSl7dHJ5e2RlKHEudGhyb3codmUpKX1jYXRjaChBZSl7c2UoQWUpfX1mdW5jdGlvbiBkZSh2ZSl7dmFyIEFlO3ZlLmRvbmU/Sih2ZS52YWx1ZSk6KEFl''@;'; + put 'put ''PXZlLnZhbHVlLEFlIGluc3RhbmNlb2YgZWU/QWU6bmV3IGVlKGZ1bmN0aW9uKGtlKXtrZShBZSl9KSkudGhlbihvZSxjZSl9ZGUoKHE9cS5hcHBseShXLE58fFtdKSkubmV4dCgpKX0pfSxsZT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihXLE4pe3ZhciBlZSxxLEosc2Usb2U9''@;'; + put 'put ''e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmSlswXSl0aHJvdyBKWzFdO3JldHVybiBKWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHNlPXtuZXh0OmNlKDApLHRocm93OmNlKDEpLHJldHVybjpjZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHNlW1N5bWJvbC5pdGVy''@;'; + put 'put ''YXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHNlO2Z1bmN0aW9uIGNlKGRlKXtyZXR1cm4gZnVuY3Rpb24odmUpe3JldHVybiBmdW5jdGlvbihBZSl7aWYoZWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7b2U7KXRyeXtp''@;'; + put 'put ''ZihlZT0xLHEmJihKPTImQWVbMF0/cS5yZXR1cm46QWVbMF0/cS50aHJvd3x8KChKPXEucmV0dXJuKSYmSi5jYWxsKHEpLDApOnEubmV4dCkmJiEoSj1KLmNhbGwocSxBZVsxXSkpLmRvbmUpcmV0dXJuIEo7c3dpdGNoKHE9MCxKJiYoQWU9WzImQWVbMF0sSi52YWx1ZV0pLEFlWzBdKXtjYXNl''@;'; + put 'put ''IDA6Y2FzZSAxOko9QWU7YnJlYWs7Y2FzZSA0OnJldHVybiBvZS5sYWJlbCsrLHt2YWx1ZTpBZVsxXSxkb25lOiExfTtjYXNlIDU6b2UubGFiZWwrKyxxPUFlWzFdLEFlPVswXTtjb250aW51ZTtjYXNlIDc6QWU9b2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDpp''@;'; + put 'put ''ZighKChKPShKPW9lLnRyeXMpLmxlbmd0aD4wJiZKW0oubGVuZ3RoLTFdKXx8NiE9PUFlWzBdJiYyIT09QWVbMF0pKXtvZT0wO2NvbnRpbnVlfWlmKDM9PT1BZVswXSYmKCFKfHxBZVsxXT5KWzBdJiZBZVsxXTxKWzNdKSl7b2UubGFiZWw9QWVbMV07YnJlYWt9aWYoNj09PUFlWzBdJiZvZS5s''@;'; + put 'put ''YWJlbDxKWzFdKXtvZS5sYWJlbD1KWzFdLEo9QWU7YnJlYWt9aWYoSiYmb2UubGFiZWw8SlsyXSl7b2UubGFiZWw9SlsyXSxvZS5vcHMucHVzaChBZSk7YnJlYWt9SlsyXSYmb2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWV9QWU9Ti5jYWxsKFcsb2UpfWNhdGNoKGtlKXtBZT1b''@;'; + put 'put ''NixrZV0scT0wfWZpbmFsbHl7ZWU9Sj0wfWlmKDUmQWVbMF0pdGhyb3cgQWVbMV07cmV0dXJue3ZhbHVlOkFlWzBdP0FlWzFdOnZvaWQgMCxkb25lOiEwfX0oW2RlLHZlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEudmVyaWZ5U2FzOUxv''@;'; + put 'put ''Z2luPXZvaWQgMDt2YXIgWT1aKDU5MjgpO1EudmVyaWZ5U2FzOUxvZ2luPWZ1bmN0aW9uKFcpe3JldHVybiBpZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgTixlZSxxO3JldHVybiBsZSh0aGlzLGZ1bmN0aW9uKEope3N3aXRjaChKLmxhYmVsKXtjYXNlIDA6Tj0hMSxlZT1u''@;'; + put 'put ''ZXcgRGF0ZSxxPTAsSi5sYWJlbD0xO2Nhc2UgMTpyZXR1cm5bNCwoMCxZLmRlbGF5KSgxZTMpXTtjYXNlIDI6aWYoSi5zZW50KCksVy5jbG9zZWQpcmV0dXJuWzMsNF07Tj1XLndpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCJTQVNMb2dvbiIpJiZXLndpbmRvdy5kb2N1bWVudC5ib2R5''@;'; + put 'put ''LmlubmVyVGV4dC5pbmNsdWRlcygiWW91IGhhdmUgc2lnbmVkIGluLiIpLHE9KChuZXcgRGF0ZSkudmFsdWVPZigpLWVlLnZhbHVlT2YoKSkvMWUzLEoubGFiZWw9MztjYXNlIDM6aWYoIU4mJnE8MzAwKXJldHVyblszLDFdO0oubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzIse2lzTG9nZ2VkSW46''@;'; + put 'put ''Tn1dfX0pfSl9fSw2NTQ3OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihXLE4sZWUscSl7cmV0dXJuIG5ldyhlZXx8KGVlPVByb21pc2UpKShmdW5jdGlvbihKLHNlKXtmdW5jdGlvbiBvZSh2ZSl7dHJ5e2RlKHEubmV4''@;'; + put 'put ''dCh2ZSkpfWNhdGNoKEFlKXtzZShBZSl9fWZ1bmN0aW9uIGNlKHZlKXt0cnl7ZGUocS50aHJvdyh2ZSkpfWNhdGNoKEFlKXtzZShBZSl9fWZ1bmN0aW9uIGRlKHZlKXt2YXIgQWU7dmUuZG9uZT9KKHZlLnZhbHVlKTooQWU9dmUudmFsdWUsQWUgaW5zdGFuY2VvZiBlZT9BZTpuZXcgZWUoZnVu''@;'; + put 'put ''Y3Rpb24oa2Upe2tlKEFlKX0pKS50aGVuKG9lLGNlKX1kZSgocT1xLmFwcGx5KFcsTnx8W10pKS5uZXh0KCkpfSl9LGxlPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKFcsTil7dmFyIGVlLHEsSixzZSxvZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZKWzBdKXRocm93''@;'; + put 'put ''IEpbMV07cmV0dXJuIEpbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gc2U9e25leHQ6Y2UoMCksdGhyb3c6Y2UoMSkscmV0dXJuOmNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoc2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksc2U7ZnVuY3Rp''@;'; + put 'put ''b24gY2UoZGUpe3JldHVybiBmdW5jdGlvbih2ZSl7cmV0dXJuIGZ1bmN0aW9uKEFlKXtpZihlZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtvZTspdHJ5e2lmKGVlPTEscSYmKEo9MiZBZVswXT9xLnJldHVybjpBZVswXT9xLnRo''@;'; + put 'put ''cm93fHwoKEo9cS5yZXR1cm4pJiZKLmNhbGwocSksMCk6cS5uZXh0KSYmIShKPUouY2FsbChxLEFlWzFdKSkuZG9uZSlyZXR1cm4gSjtzd2l0Y2gocT0wLEomJihBZT1bMiZBZVswXSxKLnZhbHVlXSksQWVbMF0pe2Nhc2UgMDpjYXNlIDE6Sj1BZTticmVhaztjYXNlIDQ6cmV0dXJuIG9lLmxh''@;'; + put 'put ''YmVsKysse3ZhbHVlOkFlWzFdLGRvbmU6ITF9O2Nhc2UgNTpvZS5sYWJlbCsrLHE9QWVbMV0sQWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpBZT1vZS5vcHMucG9wKCksb2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKEo9KEo9b2UudHJ5cykubGVuZ3RoPjAmJkpbSi5sZW5ndGgt''@;'; + put 'put ''MV0pfHw2IT09QWVbMF0mJjIhPT1BZVswXSkpe29lPTA7Y29udGludWV9aWYoMz09PUFlWzBdJiYoIUp8fEFlWzFdPkpbMF0mJkFlWzFdPEpbM10pKXtvZS5sYWJlbD1BZVsxXTticmVha31pZig2PT09QWVbMF0mJm9lLmxhYmVsPEpbMV0pe29lLmxhYmVsPUpbMV0sSj1BZTticmVha31pZihK''@;'; + put 'put ''JiZvZS5sYWJlbDxKWzJdKXtvZS5sYWJlbD1KWzJdLG9lLm9wcy5wdXNoKEFlKTticmVha31KWzJdJiZvZS5vcHMucG9wKCksb2UudHJ5cy5wb3AoKTtjb250aW51ZX1BZT1OLmNhbGwoVyxvZSl9Y2F0Y2goa2Upe0FlPVs2LGtlXSxxPTB9ZmluYWxseXtlZT1KPTB9aWYoNSZBZVswXSl0aHJv''@;'; + put 'put ''dyBBZVsxXTtyZXR1cm57dmFsdWU6QWVbMF0/QWVbMV06dm9pZCAwLGRvbmU6ITB9fShbZGUsdmVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5pc0xvZ2dlZEluU0FTVklZQT1RLnZlcmlmeVNhc1ZpeWFMb2dpbj12b2lkIDA7dmFyIFk9''@;'; + put 'put ''Wig1OTI4KTtRLnZlcmlmeVNhc1ZpeWFMb2dpbj1mdW5jdGlvbihXKXt2YXIgTixlZTtyZXR1cm4gaWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHEsSixzZSxvZTtyZXR1cm4gbGUodGhpcyxmdW5jdGlvbihjZSl7c3dpdGNoKGNlLmxhYmVsKXtjYXNlIDA6cT0hMSxKPW5l''@;'; + put 'put ''dyBEYXRlLHNlPTAsY2UubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzQsKDAsWS5kZWxheSkoMWUzKV07Y2FzZSAyOmlmKGNlLnNlbnQoKSxXLmNsb3NlZClyZXR1cm5bMyw0XTtxPSgwLFEuaXNMb2dnZWRJblNBU1ZJWUEpKCksc2U9KChuZXcgRGF0ZSkudmFsdWVPZigpLUoudmFsdWVPZigpKS8x''@;'; + put 'put ''ZTMsY2UubGFiZWw9MztjYXNlIDM6aWYoIXEmJnNlPDMwMClyZXR1cm5bMywxXTtjZS5sYWJlbD00O2Nhc2UgNDpvZT0hMSxKPW5ldyBEYXRlLGNlLmxhYmVsPTU7Y2FzZSA1OnJldHVybls0LCgwLFkuZGVsYXkpKDFlMyldO2Nhc2UgNjppZihjZS5zZW50KCksVy5jbG9zZWQpcmV0dXJuWzMs''@;'; + put 'put ''OF07b2U9Vy53aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygiU0FTTG9nb24iKXx8KG51bGw9PT0oZWU9bnVsbD09PShOPVcud2luZG93LmRvY3VtZW50LmJvZHkpfHx2b2lkIDA9PT1OP3ZvaWQgMDpOLmlubmVyVGV4dCl8fHZvaWQgMD09PWVlP3ZvaWQgMDplZS5pbmNsdWRlcygiWW91''@;'; + put 'put ''IGhhdmUgc2lnbmVkIGluLiIpKSxzZT0oKG5ldyBEYXRlKS52YWx1ZU9mKCktSi52YWx1ZU9mKCkpLzFlMyxjZS5sYWJlbD03O2Nhc2UgNzppZighb2UmJnNlPDMwMClyZXR1cm5bMyw1XTtjZS5sYWJlbD04O2Nhc2UgODpyZXR1cm5bMix7aXNMb2dnZWRJbjpxJiZvZX1dfX0pfSl9LFEuaXNM''@;'; + put 'put ''b2dnZWRJblNBU1ZJWUE9ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuY29va2llLmluY2x1ZGVzKCJDdXJyZW50LVVzZXIiKSYmZG9jdW1lbnQuY29va2llLmluY2x1ZGVzKCJ1c2VySWQiKX19LDQwMzc6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwi''@;'; + put 'put ''X19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5nZW5lcmF0ZUZpbGVVcGxvYWRGb3JtPXZvaWQgMDt2YXIgaWU9Wig2MjMwKSxsZT1aKDI0MDIpO1EuZ2VuZXJhdGVGaWxlVXBsb2FkRm9ybT1mdW5jdGlvbihZLFcpe2Zvcih2YXIgTiBpbiBXKWlmKEFycmF5LmlzQXJyYXkoV1tOXSkpe3ZhciBl''@;'; + put 'put ''ZT1OLHE9KDAsbGUuY29udmVydFRvQ1NWKShXLE4pO2lmKCJFUlJPUjogTEFSR0UgU1RSSU5HIExFTkdUSCI9PT1xKXRocm93IG5ldyBFcnJvcigiVGhlIG1heCBsZW5ndGggb2YgYSBzdHJpbmcgdmFsdWUgaW4gU0FTanMgaXMgMzI3NjUgY2hhcmFjdGVycy4iKTtpZigidW5kZWZpbmVkIj09''@;'; + put 'put ''dHlwZW9mIEZvcm1EYXRhJiZZIGluc3RhbmNlb2YgaWUpWS5hcHBlbmQoZWUscSx7ZmlsZW5hbWU6IiIuY29uY2F0KGVlLCIuY3N2IiksY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2NzdiJ9KTtlbHNle3ZhciBKPW5ldyBCbG9iKFtxXSx7dHlwZToiYXBwbGljYXRpb24vY3N2In0pO1kuYXBw''@;'; + put 'put ''ZW5kKGVlLEosIiIuY29uY2F0KGVlLCIuY3N2IikpfX1yZXR1cm4gWX19LDIxNzA6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5nZW5lcmF0ZVRhYmxlVXBsb2FkRm9ybT12b2lkIDA7dmFyIGllPVooMjQw''@;'; + put 'put ''MiksbGU9Wig0Nzk5KTtRLmdlbmVyYXRlVGFibGVVcGxvYWRGb3JtPWZ1bmN0aW9uKFksVyl7dmFyIE49W10sZWU9e30scT0wO2Zvcih2YXIgSiBpbiBXKXtxKyssKDAsaWUuaXNGb3JtYXRzVGFibGUpKEopfHxOLnB1c2goSik7dmFyIHNlPSgwLGllLmNvbnZlcnRUb0NTVikoVyxKKTtpZigi''@;'; + put 'put ''RVJST1I6IExBUkdFIFNUUklORyBMRU5HVEgiPT09c2UpdGhyb3cgbmV3IEVycm9yKCJUaGUgbWF4IGxlbmd0aCBvZiBhIHN0cmluZyB2YWx1ZSBpbiBTQVNqcyBpcyAzMjc2NSBjaGFyYWN0ZXJzLiIpO3NlLmxlbmd0aD4xNmUzPygwLGxlLnNwbGl0Q2h1bmtzKShzZSkubWFwKGZ1bmN0aW9u''@;'; + put 'put ''KG9lKXtZLmFwcGVuZCgic2FzanMiLmNvbmNhdChxLCJkYXRhIiksb2UpfSk6ZWVbInNhc2pzIi5jb25jYXQocSwiZGF0YSIpXT1zZX1yZXR1cm4gZWUuc2FzanNfdGFibGVzPU4uam9pbigiICIpLHtmb3JtRGF0YTpZLHJlcXVlc3RQYXJhbXM6ZWV9fX0sMzYwNzpmdW5jdGlvbihVLFEsWil7''@;'; + put 'put ''InVzZSBzdHJpY3QiO3ZhciBpZT10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oVyxOLGVlLHEpe3ZvaWQgMD09PXEmJihxPWVlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVyxxLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBO''@;'; + put 'put ''W2VlXX19KX06ZnVuY3Rpb24oVyxOLGVlLHEpe3ZvaWQgMD09PXEmJihxPWVlKSxXW3FdPU5bZWVdfSksbGU9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKFcsTil7Zm9yKHZhciBlZSBpbiBXKSJkZWZhdWx0Ij09PWVlfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5''@;'; + put 'put ''LmNhbGwoTixlZSl8fGllKE4sVyxlZSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgWT1aKDU5NTYpO2xlKFooMTIzMCksUSksbGUoWigxMzk1KSxRKSxsZShaKDk4MjEpLFEpLGxlKFooODMwNiksUSksUS5kZWZhdWx0PVkuZGVmYXVsdH0s''@;'; + put 'put ''MTU3MDpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZSxsZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGllPWZ1bmN0aW9uKEosc2Upe3JldHVybihpZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24ob2UsY2Up''@;'; + put 'put ''e29lLl9fcHJvdG9fXz1jZX18fGZ1bmN0aW9uKG9lLGNlKXtmb3IodmFyIGRlIGluIGNlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjZSxkZSkmJihvZVtkZV09Y2VbZGVdKX0pKEosc2UpfSxmdW5jdGlvbihKLHNlKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygc2UmJm51''@;'; + put 'put ''bGwhPT1zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKHNlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBvZSgpe3RoaXMuY29uc3RydWN0b3I9Sn1pZShKLHNlKSxKLnByb3RvdHlwZT1udWxsPT09c2U/T2JqZWN0''@;'; + put 'put ''LmNyZWF0ZShzZSk6KG9lLnByb3RvdHlwZT1zZS5wcm90b3R5cGUsbmV3IG9lKX0pLFk9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKEosc2Usb2UsY2Upe3JldHVybiBuZXcob2V8fChvZT1Qcm9taXNlKSkoZnVuY3Rpb24oZGUsdmUpe2Z1bmN0aW9uIEFlKEllKXt0cnl7U2UoY2Uu''@;'; + put 'put ''bmV4dChJZSkpfWNhdGNoKFRlKXt2ZShUZSl9fWZ1bmN0aW9uIGtlKEllKXt0cnl7U2UoY2UudGhyb3coSWUpKX1jYXRjaChUZSl7dmUoVGUpfX1mdW5jdGlvbiBTZShJZSl7dmFyIFRlO0llLmRvbmU/ZGUoSWUudmFsdWUpOihUZT1JZS52YWx1ZSxUZSBpbnN0YW5jZW9mIG9lP1RlOm5ldyBv''@;'; + put 'put ''ZShmdW5jdGlvbihFZSl7RWUoVGUpfSkpLnRoZW4oQWUsa2UpfVNlKChjZT1jZS5hcHBseShKLHNlfHxbXSkpLm5leHQoKSl9KX0sVz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihKLHNlKXt2YXIgb2UsY2UsZGUsdmUsQWU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEm''@;'; + put 'put ''ZGVbMF0pdGhyb3cgZGVbMV07cmV0dXJuIGRlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHZlPXtuZXh0OmtlKDApLHRocm93OmtlKDEpLHJldHVybjprZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHZlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; + put 'put ''c30pLHZlO2Z1bmN0aW9uIGtlKFNlKXtyZXR1cm4gZnVuY3Rpb24oSWUpe3JldHVybiBmdW5jdGlvbihUZSl7aWYob2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7QWU7KXRyeXtpZihvZT0xLGNlJiYoZGU9MiZUZVswXT9jZS5y''@;'; + put 'put ''ZXR1cm46VGVbMF0/Y2UudGhyb3d8fCgoZGU9Y2UucmV0dXJuKSYmZGUuY2FsbChjZSksMCk6Y2UubmV4dCkmJiEoZGU9ZGUuY2FsbChjZSxUZVsxXSkpLmRvbmUpcmV0dXJuIGRlO3N3aXRjaChjZT0wLGRlJiYoVGU9WzImVGVbMF0sZGUudmFsdWVdKSxUZVswXSl7Y2FzZSAwOmNhc2UgMTpk''@;'; + put 'put ''ZT1UZTticmVhaztjYXNlIDQ6cmV0dXJuIEFlLmxhYmVsKysse3ZhbHVlOlRlWzFdLGRvbmU6ITF9O2Nhc2UgNTpBZS5sYWJlbCsrLGNlPVRlWzFdLFRlPVswXTtjb250aW51ZTtjYXNlIDc6VGU9QWUub3BzLnBvcCgpLEFlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChkZT0o''@;'; + put 'put ''ZGU9QWUudHJ5cykubGVuZ3RoPjAmJmRlW2RlLmxlbmd0aC0xXSl8fDYhPT1UZVswXSYmMiE9PVRlWzBdKSl7QWU9MDtjb250aW51ZX1pZigzPT09VGVbMF0mJighZGV8fFRlWzFdPmRlWzBdJiZUZVsxXTxkZVszXSkpe0FlLmxhYmVsPVRlWzFdO2JyZWFrfWlmKDY9PT1UZVswXSYmQWUubGFi''@;'; + put 'put ''ZWw8ZGVbMV0pe0FlLmxhYmVsPWRlWzFdLGRlPVRlO2JyZWFrfWlmKGRlJiZBZS5sYWJlbDxkZVsyXSl7QWUubGFiZWw9ZGVbMl0sQWUub3BzLnB1c2goVGUpO2JyZWFrfWRlWzJdJiZBZS5vcHMucG9wKCksQWUudHJ5cy5wb3AoKTtjb250aW51ZX1UZT1zZS5jYWxsKEosQWUpfWNhdGNoKEVl''@;'; + put 'put ''KXtUZT1bNixFZV0sY2U9MH1maW5hbGx5e29lPWRlPTB9aWYoNSZUZVswXSl0aHJvdyBUZVsxXTtyZXR1cm57dmFsdWU6VGVbMF0/VGVbMV06dm9pZCAwLGRvbmU6ITB9fShbU2UsSWVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5Db21w''@;'; + put 'put ''dXRlSm9iRXhlY3V0b3I9dm9pZCAwO3ZhciBOPVooMzkwMCksZWU9WigxMzk1KSxxPWZ1bmN0aW9uKEope2Z1bmN0aW9uIHNlKG9lLGNlKXt2YXIgZGU9Si5jYWxsKHRoaXMsb2UsTi5TZXJ2ZXJUeXBlLlNhc1ZpeWEpfHx0aGlzO3JldHVybiBkZS5zYXNWaXlhQXBpQ2xpZW50PWNlLGRlfXJl''@;'; + put 'put ''dHVybiBsZShzZSxKKSxzZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihvZSxjZSxkZSx2ZSxBZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGtlLEllPXRoaXM7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihUZSl7cmV0dXJuIGtlPXZlfHxmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiBQcm9taXNlLnJlc29sdmUoKX0sWzIsbmV3IFByb21pc2UoZnVuY3Rpb24oRWUsaGUpe3ZhciBPO251bGw9PT0oTz1JZS5zYXNWaXlhQXBpQ2xpZW50KXx8dm9pZCAwPT09T3x8Ty5leGVjdXRlQ29tcHV0ZUpvYihvZSxkZS5jb250ZXh0TmFtZSxkZS5kZWJ1ZyxjZSxBZSwhMCwh''@;'; + put 'put ''MCkudGhlbihmdW5jdGlvbih6KXtJZS5zYXNWaXlhQXBpQ2xpZW50LmFwcGVuZFJlcXVlc3QoeixvZSxkZS5kZWJ1ZyksRWUoei5yZXN1bHQpfSkuY2F0Y2goZnVuY3Rpb24oeil7cmV0dXJuIFkoSWUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuZT10aGlzO3JldHVybiBXKHRoaXMs''@;'; + put 'put ''ZnVuY3Rpb24odGUpe3N3aXRjaCh0ZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB6IGluc3RhbmNlb2YgZWUuQ29tcHV0ZUpvYkV4ZWN1dGlvbkVycm9yJiYodGhpcy5zYXNWaXlhQXBpQ2xpZW50LmFwcGVuZFJlcXVlc3QoeixvZSxkZS5kZWJ1ZyksaGUobmV3IGVlLkVycm9yUmVzcG9uc2UobnVs''@;'; + put 'put ''bD09ej92b2lkIDA6ei5tZXNzYWdlLHopKSkseiBpbnN0YW5jZW9mIGVlLkxvZ2luUmVxdWlyZWRFcnJvcj8odGhpcy5hcHBlbmRXYWl0aW5nUmVxdWVzdChmdW5jdGlvbigpe3JldHVybiBuZS5leGVjdXRlKG9lLGNlLGRlLHZlKS50aGVuKGZ1bmN0aW9uKHgpe0VlKHgpfSxmdW5jdGlvbih4''@;'; + put 'put ''KXtoZSh4KX0pfSksWzQsa2UoKV0pOlszLDJdO2Nhc2UgMTpyZXR1cm4gdGUuc2VudCgpLFszLDNdO2Nhc2UgMjpoZShuZXcgZWUuRXJyb3JSZXNwb25zZShudWxsPT16P3ZvaWQgMDp6Lm1lc3NhZ2UseikpLHRlLmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfSl9KV19KX0pfSxzZX0o''@;'; + put 'put ''Wig2MTE4KS5CYXNlSm9iRXhlY3V0b3IpO1EuQ29tcHV0ZUpvYkV4ZWN1dG9yPXF9LDM0OTE6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsbGU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpZT1mdW5jdGlvbihzZSxvZSl7cmV0dXJuKGllPU9iamVjdC5zZXRQcm90b3R5cGVP''@;'; + put 'put ''Znx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihjZSxkZSl7Y2UuX19wcm90b19fPWRlfXx8ZnVuY3Rpb24oY2UsZGUpe2Zvcih2YXIgdmUgaW4gZGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRlLHZlKSYmKGNlW3ZlXT1kZVt2ZV0pfSko''@;'; + put 'put ''c2Usb2UpfSxmdW5jdGlvbihzZSxvZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG9lJiZudWxsIT09b2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhvZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gY2UoKXt0aGlz''@;'; + put 'put ''LmNvbnN0cnVjdG9yPXNlfWllKHNlLG9lKSxzZS5wcm90b3R5cGU9bnVsbD09PW9lP09iamVjdC5jcmVhdGUob2UpOihjZS5wcm90b3R5cGU9b2UucHJvdG90eXBlLG5ldyBjZSl9KSxZPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihzZSxvZSxjZSxkZSl7cmV0dXJuIG5ldyhjZXx8''@;'; + put 'put ''KGNlPVByb21pc2UpKShmdW5jdGlvbih2ZSxBZSl7ZnVuY3Rpb24ga2UoVGUpe3RyeXtJZShkZS5uZXh0KFRlKSl9Y2F0Y2goRWUpe0FlKEVlKX19ZnVuY3Rpb24gU2UoVGUpe3RyeXtJZShkZS50aHJvdyhUZSkpfWNhdGNoKEVlKXtBZShFZSl9fWZ1bmN0aW9uIEllKFRlKXt2YXIgRWU7VGUu''@;'; + put 'put ''ZG9uZT92ZShUZS52YWx1ZSk6KEVlPVRlLnZhbHVlLEVlIGluc3RhbmNlb2YgY2U/RWU6bmV3IGNlKGZ1bmN0aW9uKGhlKXtoZShFZSl9KSkudGhlbihrZSxTZSl9SWUoKGRlPWRlLmFwcGx5KHNlLG9lfHxbXSkpLm5leHQoKSl9KX0sVz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlv''@;'; + put 'put ''bihzZSxvZSl7dmFyIGNlLGRlLHZlLEFlLGtlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJnZlWzBdKXRocm93IHZlWzFdO3JldHVybiB2ZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBBZT17bmV4dDpTZSgwKSx0aHJvdzpTZSgxKSxyZXR1cm46U2UoMil9LCJmdW5jdGlvbiI9''@;'; + put 'put ''PXR5cGVvZiBTeW1ib2wmJihBZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxBZTtmdW5jdGlvbiBTZShJZSl7cmV0dXJuIGZ1bmN0aW9uKFRlKXtyZXR1cm4gZnVuY3Rpb24oRWUpe2lmKGNlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJl''@;'; + put 'put ''YWR5IGV4ZWN1dGluZy4iKTtmb3IoO2tlOyl0cnl7aWYoY2U9MSxkZSYmKHZlPTImRWVbMF0/ZGUucmV0dXJuOkVlWzBdP2RlLnRocm93fHwoKHZlPWRlLnJldHVybikmJnZlLmNhbGwoZGUpLDApOmRlLm5leHQpJiYhKHZlPXZlLmNhbGwoZGUsRWVbMV0pKS5kb25lKXJldHVybiB2ZTtzd2l0''@;'; + put 'put ''Y2goZGU9MCx2ZSYmKEVlPVsyJkVlWzBdLHZlLnZhbHVlXSksRWVbMF0pe2Nhc2UgMDpjYXNlIDE6dmU9RWU7YnJlYWs7Y2FzZSA0OnJldHVybiBrZS5sYWJlbCsrLHt2YWx1ZTpFZVsxXSxkb25lOiExfTtjYXNlIDU6a2UubGFiZWwrKyxkZT1FZVsxXSxFZT1bMF07Y29udGludWU7Y2FzZSA3''@;'; + put 'put ''OkVlPWtlLm9wcy5wb3AoKSxrZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgodmU9KHZlPWtlLnRyeXMpLmxlbmd0aD4wJiZ2ZVt2ZS5sZW5ndGgtMV0pfHw2IT09RWVbMF0mJjIhPT1FZVswXSkpe2tlPTA7Y29udGludWV9aWYoMz09PUVlWzBdJiYoIXZlfHxFZVsxXT52ZVsw''@;'; + put 'put ''XSYmRWVbMV08dmVbM10pKXtrZS5sYWJlbD1FZVsxXTticmVha31pZig2PT09RWVbMF0mJmtlLmxhYmVsPHZlWzFdKXtrZS5sYWJlbD12ZVsxXSx2ZT1FZTticmVha31pZih2ZSYma2UubGFiZWw8dmVbMl0pe2tlLmxhYmVsPXZlWzJdLGtlLm9wcy5wdXNoKEVlKTticmVha312ZVsyXSYma2Uu''@;'; + put 'put ''b3BzLnBvcCgpLGtlLnRyeXMucG9wKCk7Y29udGludWV9RWU9b2UuY2FsbChzZSxrZSl9Y2F0Y2goaGUpe0VlPVs2LGhlXSxkZT0wfWZpbmFsbHl7Y2U9dmU9MH1pZig1JkVlWzBdKXRocm93IEVlWzFdO3JldHVybnt2YWx1ZTpFZVswXT9FZVsxXTp2b2lkIDAsZG9uZTohMH19KFtJZSxUZV0p''@;'; + put 'put ''fX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkZpbGVVcGxvYWRlcj12b2lkIDA7dmFyIE49Wig1OTI4KSxlZT1aKDEzOTUpLHE9WigzOTAwKSxKPWZ1bmN0aW9uKHNlKXtmdW5jdGlvbiBvZShjZSxkZSx2ZSxBZSl7dmFyIGtlPXNlLmNhbGwo''@;'; + put 'put ''dGhpcyxjZSxkZSl8fHRoaXM7cmV0dXJuIGtlLmpvYnNQYXRoPXZlLGtlLnJlcXVlc3RDbGllbnQ9QWUsa2V9cmV0dXJuIGxlKG9lLHNlKSxvZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihjZSxkZSx2ZSxBZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IGtlLFNlLEllLFRlLEVlLGhlLE8seixuZSx0ZSx4LFAsVixTPXRoaXM7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihGKXtpZihTZT1kZS5wYXJhbXMsSWU9QWV8fGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfSxudWxsPT0oa2U9ZGUuZmlsZXMpfHwha2UubGVuZ3RoKXRocm93''@;'; + put 'put ''IG5ldyBlZS5FcnJvclJlc3BvbnNlKCJBdCBsZWFzdCBvbmUgZmlsZSBtdXN0IGJlIHByb3ZpZGVkLiIpO2lmKCFjZXx8IiI9PT1jZSl0aHJvdyBuZXcgZWUuRXJyb3JSZXNwb25zZSgic2FzSm9iIG11c3QgYmUgcHJvdmlkZWQuIik7Zm9yKEVlIGluIFRlPSIiLFNlKVNlLmhhc093blByb3Bl''@;'; + put 'put ''cnR5KEVlKSYmKFRlKz0iJiIuY29uY2F0KEVlLCI9IikuY29uY2F0KFNlW0VlXSkpO2ZvcihoZT12ZS5hcHBMb2M/dmUuYXBwTG9jLnJlcGxhY2UoL1wvPyQvLCIvIikrY2UucmVwbGFjZSgvXlwvLywiIik6Y2UsTz0iIi5jb25jYXQodGhpcy5qb2JzUGF0aCwiLz8iKS5jb25jYXQoIl9wcm9n''@;'; + put 'put ''cmFtPSIraGUpLmNvbmNhdChUZSksej1uZXcgRm9ybURhdGEsbmU9MCx0ZT1rZTtuZTx0ZS5sZW5ndGg7bmUrKyl6LmFwcGVuZCgiZmlsZSIsKHg9dGVbbmVdKS5maWxlLHguZmlsZU5hbWUpO3JldHVybihQPXRoaXMucmVxdWVzdENsaWVudC5nZXRDc3JmVG9rZW4oImZpbGUiKSkmJnouYXBw''@;'; + put 'put ''ZW5kKCJfY3NyZiIsUC52YWx1ZSksdmUuZGVidWcmJnouYXBwZW5kKCJfZGVidWciLCIxMzEiKSx2ZS5zZXJ2ZXJUeXBlPT09cS5TZXJ2ZXJUeXBlLlNhc1ZpeWEmJnZlLmNvbnRleHROYW1lJiZ6LmFwcGVuZCgiX2NvbnRleHRuYW1lIix2ZS5jb250ZXh0TmFtZSksVj17ImNhY2hlLWNvbnRy''@;'; + put 'put ''b2wiOiJuby1jYWNoZSIsQWNjZXB0OiIqLyoiLCJDb250ZW50LVR5cGUiOiJ0ZXh0L3BsYWluIn0sWzIsbmV3IFByb21pc2UoZnVuY3Rpb24oeWUsQ2Upe1MucmVxdWVzdENsaWVudC5wb3N0KE8seix2b2lkIDAsImFwcGxpY2F0aW9uL2pzb24iLFYpLnRoZW4oZnVuY3Rpb24oRGUpe3JldHVy''@;'; + put 'put ''biBZKFMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBQZSxRZTtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKCRlKXtzd2l0Y2goJGUubGFiZWwpe2Nhc2UgMDppZih0aGlzLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChEZSxjZSx2ZS5kZWJ1ZyksUGU9RGUucmVzdWx0LCF2ZS5kZWJ1''@;'; + put 'put ''ZylyZXR1cm5bMyw2XTtzd2l0Y2godGhpcy5zZXJ2ZXJUeXBlKXtjYXNlIHEuU2VydmVyVHlwZS5TYXNWaXlhOnJldHVyblszLDFdO2Nhc2UgcS5TZXJ2ZXJUeXBlLlNhczk6cmV0dXJuWzMsM107Y2FzZSBxLlNlcnZlclR5cGUuU2FzanM6cmV0dXJuWzMsNF19cmV0dXJuWzMsNV07Y2FzZSAx''@;'; + put 'put ''OnJldHVybls0LCgwLE4ucGFyc2VTYXNWaXlhRGVidWdSZXNwb25zZSkoRGUucmVzdWx0LHRoaXMucmVxdWVzdENsaWVudCx2ZS5zZXJ2ZXJVcmwpXTtjYXNlIDI6cmV0dXJuIFBlPSRlLnNlbnQoKSxbMyw1XTtjYXNlIDM6cmV0dXJuIFBlPSJzdHJpbmciPT10eXBlb2YgRGUucmVzdWx0Pygw''@;'; + put 'put ''LE4ucGFyc2VXZWJvdXRSZXNwb25zZSkoRGUucmVzdWx0LE8pOkRlLnJlc3VsdCxbMyw1XTtjYXNlIDQ6cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBEZS5yZXN1bHQuX3dlYm91dD9QZT1EZS5yZXN1bHQuX3dlYm91dDooUWU9KDAsTi5wYXJzZVdlYm91dFJlc3BvbnNlKShEZS5yZXN1bHQuX3dl''@;'; + put 'put ''Ym91dCxPKSxQZT0oMCxOLmdldFZhbGlkSnNvbikoUWUpKSxbMyw1XTtjYXNlIDU6cmV0dXJuWzMsN107Y2FzZSA2OlBlPXRoaXMuc2VydmVyVHlwZT09PXEuU2VydmVyVHlwZS5TYXNqcz8oMCxOLmdldFZhbGlkSnNvbikoRGUucmVzdWx0Ll93ZWJvdXQpOiJzdHJpbmciPT10eXBlb2YgRGUu''@;'; + put 'put ''cmVzdWx0PygwLE4uZ2V0VmFsaWRKc29uKShEZS5yZXN1bHQpOkRlLnJlc3VsdCwkZS5sYWJlbD03O2Nhc2UgNzpyZXR1cm4geWUoUGUpLFsyXX19KX0pfSkuY2F0Y2goZnVuY3Rpb24oRGUpe3JldHVybiBZKFMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBQZT10aGlzO3JldHVybiBX''@;'; + put 'put ''KHRoaXMsZnVuY3Rpb24oUWUpe3N3aXRjaChRZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBEZSBpbnN0YW5jZW9mIGVlLkpvYkV4ZWN1dGlvbkVycm9yJiYodGhpcy5yZXF1ZXN0Q2xpZW50LmFwcGVuZFJlcXVlc3QoRGUsY2UsdmUuZGVidWcpLENlKG5ldyBlZS5FcnJvclJlc3BvbnNlKG51bGw9''@;'; + put 'put ''PURlP3ZvaWQgMDpEZS5tZXNzYWdlLERlKSkpLERlIGluc3RhbmNlb2YgZWUuTG9naW5SZXF1aXJlZEVycm9yPyh0aGlzLmFwcGVuZFdhaXRpbmdSZXF1ZXN0KGZ1bmN0aW9uKCl7cmV0dXJuIFBlLmV4ZWN1dGUoY2UsZGUsdmUsQWUpLnRoZW4oZnVuY3Rpb24oJGUpe3llKCRlKX0sZnVuY3Rp''@;'; + put 'put ''b24oJGUpe0NlKCRlKX0pfSksWzQsSWUoKV0pOlszLDJdO2Nhc2UgMTpyZXR1cm4gUWUuc2VudCgpLFszLDNdO2Nhc2UgMjpDZShuZXcgZWUuRXJyb3JSZXNwb25zZSgiRmlsZSB1cGxvYWQgcmVxdWVzdCBmYWlsZWQuIixEZSkpLFFlLmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfSl9''@;'; + put 'put ''KV19KX0pfSxvZX0oWig2MTE4KS5CYXNlSm9iRXhlY3V0b3IpO1EuRmlsZVVwbG9hZGVyPUp9LDQ0NDY6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsbGU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpZT1mdW5jdGlvbihvZSxjZSl7cmV0dXJuKGllPU9iamVjdC5zZXRQcm90''@;'; + put 'put ''b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihkZSx2ZSl7ZGUuX19wcm90b19fPXZlfXx8ZnVuY3Rpb24oZGUsdmUpe2Zvcih2YXIgQWUgaW4gdmUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZlLEFlKSYmKGRlW0FlXT12ZVtB''@;'; + put 'put ''ZV0pfSkob2UsY2UpfSxmdW5jdGlvbihvZSxjZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGNlJiZudWxsIT09Y2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhjZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gZGUo''@;'; + put 'put ''KXt0aGlzLmNvbnN0cnVjdG9yPW9lfWllKG9lLGNlKSxvZS5wcm90b3R5cGU9bnVsbD09PWNlP09iamVjdC5jcmVhdGUoY2UpOihkZS5wcm90b3R5cGU9Y2UucHJvdG90eXBlLG5ldyBkZSl9KSxZPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihvZSxjZSxkZSx2ZSl7cmV0dXJuIG5l''@;'; + put 'put ''dyhkZXx8KGRlPVByb21pc2UpKShmdW5jdGlvbihBZSxrZSl7ZnVuY3Rpb24gU2UoRWUpe3RyeXtUZSh2ZS5uZXh0KEVlKSl9Y2F0Y2goaGUpe2tlKGhlKX19ZnVuY3Rpb24gSWUoRWUpe3RyeXtUZSh2ZS50aHJvdyhFZSkpfWNhdGNoKGhlKXtrZShoZSl9fWZ1bmN0aW9uIFRlKEVlKXt2YXIg''@;'; + put 'put ''aGU7RWUuZG9uZT9BZShFZS52YWx1ZSk6KGhlPUVlLnZhbHVlLGhlIGluc3RhbmNlb2YgZGU/aGU6bmV3IGRlKGZ1bmN0aW9uKE8pe08oaGUpfSkpLnRoZW4oU2UsSWUpfVRlKCh2ZT12ZS5hcHBseShvZSxjZXx8W10pKS5uZXh0KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVu''@;'; + put 'put ''Y3Rpb24ob2UsY2Upe3ZhciBkZSx2ZSxBZSxrZSxTZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZBZVswXSl0aHJvdyBBZVsxXTtyZXR1cm4gQWVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4ga2U9e25leHQ6SWUoMCksdGhyb3c6SWUoMSkscmV0dXJuOkllKDIpfSwiZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YgU3ltYm9sJiYoa2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksa2U7ZnVuY3Rpb24gSWUoVGUpe3JldHVybiBmdW5jdGlvbihFZSl7cmV0dXJuIGZ1bmN0aW9uKGhlKXtpZihkZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMg''@;'; + put 'put ''YWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtTZTspdHJ5e2lmKGRlPTEsdmUmJihBZT0yJmhlWzBdP3ZlLnJldHVybjpoZVswXT92ZS50aHJvd3x8KChBZT12ZS5yZXR1cm4pJiZBZS5jYWxsKHZlKSwwKTp2ZS5uZXh0KSYmIShBZT1BZS5jYWxsKHZlLGhlWzFdKSkuZG9uZSlyZXR1cm4gQWU7''@;'; + put 'put ''c3dpdGNoKHZlPTAsQWUmJihoZT1bMiZoZVswXSxBZS52YWx1ZV0pLGhlWzBdKXtjYXNlIDA6Y2FzZSAxOkFlPWhlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gU2UubGFiZWwrKyx7dmFsdWU6aGVbMV0sZG9uZTohMX07Y2FzZSA1OlNlLmxhYmVsKyssdmU9aGVbMV0saGU9WzBdO2NvbnRpbnVlO2Nh''@;'; + put 'put ''c2UgNzpoZT1TZS5vcHMucG9wKCksU2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKEFlPShBZT1TZS50cnlzKS5sZW5ndGg+MCYmQWVbQWUubGVuZ3RoLTFdKXx8NiE9PWhlWzBdJiYyIT09aGVbMF0pKXtTZT0wO2NvbnRpbnVlfWlmKDM9PT1oZVswXSYmKCFBZXx8aGVbMV0+''@;'; + put 'put ''QWVbMF0mJmhlWzFdPEFlWzNdKSl7U2UubGFiZWw9aGVbMV07YnJlYWt9aWYoNj09PWhlWzBdJiZTZS5sYWJlbDxBZVsxXSl7U2UubGFiZWw9QWVbMV0sQWU9aGU7YnJlYWt9aWYoQWUmJlNlLmxhYmVsPEFlWzJdKXtTZS5sYWJlbD1BZVsyXSxTZS5vcHMucHVzaChoZSk7YnJlYWt9QWVbMl0m''@;'; + put 'put ''JlNlLm9wcy5wb3AoKSxTZS50cnlzLnBvcCgpO2NvbnRpbnVlfWhlPWNlLmNhbGwob2UsU2UpfWNhdGNoKE8pe2hlPVs2LE9dLHZlPTB9ZmluYWxseXtkZT1BZT0wfWlmKDUmaGVbMF0pdGhyb3cgaGVbMV07cmV0dXJue3ZhbHVlOmhlWzBdP2hlWzFdOnZvaWQgMCxkb25lOiEwfX0oW1RlLEVl''@;'; + put 'put ''XSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuSmVzSm9iRXhlY3V0b3I9dm9pZCAwO3ZhciBOPVooMzkwMCksZWU9WigxMzk1KSxxPVooNjExOCksSj1aKDU5MjgpLHNlPWZ1bmN0aW9uKG9lKXtmdW5jdGlvbiBjZShkZSx2ZSl7dmFyIEFl''@;'; + put 'put ''PW9lLmNhbGwodGhpcyxkZSxOLlNlcnZlclR5cGUuU2FzVml5YSl8fHRoaXM7cmV0dXJuIEFlLnNhc1ZpeWFBcGlDbGllbnQ9dmUsQWV9cmV0dXJuIGxlKGNlLG9lKSxjZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihkZSx2ZSxBZSxrZSxTZSxJZSl7cmV0dXJuIHZvaWQgMD09PUllJiYo''@;'; + put 'put ''SWU9W10pLFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFRlLGhlPXRoaXM7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihPKXtyZXR1cm4gVGU9a2V8fGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfSxbMixuZXcgUHJvbWlzZShmdW5jdGlvbih6LG5lKXt2YXIg''@;'; + put 'put ''dGU7bnVsbD09PSh0ZT1oZS5zYXNWaXlhQXBpQ2xpZW50KXx8dm9pZCAwPT09dGV8fHRlLmV4ZWN1dGVKb2IoZGUsQWUuY29udGV4dE5hbWUsQWUuZGVidWcsdmUsU2UpLnRoZW4oZnVuY3Rpb24oeCl7aGUuc2FzVml5YUFwaUNsaWVudC5hcHBlbmRSZXF1ZXN0KHgsZGUsQWUuZGVidWcpO3Zh''@;'; + put 'put ''ciBQPSgwLEouYXBwZW5kRXh0cmFSZXNwb25zZUF0dHJpYnV0ZXMpKHgsSWUpO3ooUCl9KS5jYXRjaChmdW5jdGlvbih4KXtyZXR1cm4gWShoZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFA9dGhpcztyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKFYpe3N3aXRjaChWLmxhYmVsKXtjYXNl''@;'; + put 'put ''IDA6cmV0dXJuIHggaW5zdGFuY2VvZiBlZS5Kb2JFeGVjdXRpb25FcnJvciYmKHRoaXMuc2FzVml5YUFwaUNsaWVudC5hcHBlbmRSZXF1ZXN0KHgsZGUsQWUuZGVidWcpLG5lKG5ldyBlZS5FcnJvclJlc3BvbnNlKG51bGw9PXg/dm9pZCAwOngubWVzc2FnZSx4KSkpLHggaW5zdGFuY2VvZiBl''@;'; + put 'put ''ZS5Mb2dpblJlcXVpcmVkRXJyb3I/KHRoaXMuYXBwZW5kV2FpdGluZ1JlcXVlc3QoZnVuY3Rpb24oKXtyZXR1cm4gUC5leGVjdXRlKGRlLHZlLEFlLGtlLFNlLEllKS50aGVuKGZ1bmN0aW9uKFQpe3ooVCl9LGZ1bmN0aW9uKFQpe25lKFQpfSl9KSxbNCxUZSgpXSk6WzMsMl07Y2FzZSAxOnJl''@;'; + put 'put ''dHVybiBWLnNlbnQoKSxbMywzXTtjYXNlIDI6bmUobmV3IGVlLkVycm9yUmVzcG9uc2UobnVsbD09eD92b2lkIDA6eC5tZXNzYWdlLHgpKSxWLmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfSl9KV19KX0pfSxjZX0ocS5CYXNlSm9iRXhlY3V0b3IpO1EuSmVzSm9iRXhlY3V0b3I9c2V9''@;'; + put 'put ''LDYxMTg6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKE4sZWUscSxKKXtyZXR1cm4gbmV3KHF8fChxPVByb21pc2UpKShmdW5jdGlvbihzZSxvZSl7ZnVuY3Rpb24gY2UoQWUpe3RyeXt2ZShKLm5leHQoQWUpKX1jYXRj''@;'; + put 'put ''aChrZSl7b2Uoa2UpfX1mdW5jdGlvbiBkZShBZSl7dHJ5e3ZlKEoudGhyb3coQWUpKX1jYXRjaChrZSl7b2Uoa2UpfX1mdW5jdGlvbiB2ZShBZSl7dmFyIGtlO0FlLmRvbmU/c2UoQWUudmFsdWUpOihrZT1BZS52YWx1ZSxrZSBpbnN0YW5jZW9mIHE/a2U6bmV3IHEoZnVuY3Rpb24oU2Upe1Nl''@;'; + put 'put ''KGtlKX0pKS50aGVuKGNlLGRlKX12ZSgoSj1KLmFwcGx5KE4sZWV8fFtdKSkubmV4dCgpKX0pfSxsZT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihOLGVlKXt2YXIgcSxKLHNlLG9lLGNlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJnNlWzBdKXRocm93IHNlWzFdO3Jl''@;'; + put 'put ''dHVybiBzZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBvZT17bmV4dDpkZSgwKSx0aHJvdzpkZSgxKSxyZXR1cm46ZGUoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihvZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvZTtmdW5jdGlvbiBkZSh2''@;'; + put 'put ''ZSl7cmV0dXJuIGZ1bmN0aW9uKEFlKXtyZXR1cm4gZnVuY3Rpb24oa2Upe2lmKHEpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7Y2U7KXRyeXtpZihxPTEsSiYmKHNlPTIma2VbMF0/Si5yZXR1cm46a2VbMF0/Si50aHJvd3x8KChz''@;'; + put 'put ''ZT1KLnJldHVybikmJnNlLmNhbGwoSiksMCk6Si5uZXh0KSYmIShzZT1zZS5jYWxsKEosa2VbMV0pKS5kb25lKXJldHVybiBzZTtzd2l0Y2goSj0wLHNlJiYoa2U9WzIma2VbMF0sc2UudmFsdWVdKSxrZVswXSl7Y2FzZSAwOmNhc2UgMTpzZT1rZTticmVhaztjYXNlIDQ6cmV0dXJuIGNlLmxh''@;'; + put 'put ''YmVsKysse3ZhbHVlOmtlWzFdLGRvbmU6ITF9O2Nhc2UgNTpjZS5sYWJlbCsrLEo9a2VbMV0sa2U9WzBdO2NvbnRpbnVlO2Nhc2UgNzprZT1jZS5vcHMucG9wKCksY2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKHNlPShzZT1jZS50cnlzKS5sZW5ndGg+MCYmc2Vbc2UubGVu''@;'; + put 'put ''Z3RoLTFdKXx8NiE9PWtlWzBdJiYyIT09a2VbMF0pKXtjZT0wO2NvbnRpbnVlfWlmKDM9PT1rZVswXSYmKCFzZXx8a2VbMV0+c2VbMF0mJmtlWzFdPHNlWzNdKSl7Y2UubGFiZWw9a2VbMV07YnJlYWt9aWYoNj09PWtlWzBdJiZjZS5sYWJlbDxzZVsxXSl7Y2UubGFiZWw9c2VbMV0sc2U9a2U7''@;'; + put 'put ''YnJlYWt9aWYoc2UmJmNlLmxhYmVsPHNlWzJdKXtjZS5sYWJlbD1zZVsyXSxjZS5vcHMucHVzaChrZSk7YnJlYWt9c2VbMl0mJmNlLm9wcy5wb3AoKSxjZS50cnlzLnBvcCgpO2NvbnRpbnVlfWtlPWVlLmNhbGwoTixjZSl9Y2F0Y2goU2Upe2tlPVs2LFNlXSxKPTB9ZmluYWxseXtxPXNlPTB9''@;'; + put 'put ''aWYoNSZrZVswXSl0aHJvdyBrZVsxXTtyZXR1cm57dmFsdWU6a2VbMF0/a2VbMV06dm9pZCAwLGRvbmU6ITB9fShbdmUsQWVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5CYXNlSm9iRXhlY3V0b3I9dm9pZCAwO3ZhciBZPVooNTkyOCks''@;'; + put 'put ''Vz1mdW5jdGlvbigpe2Z1bmN0aW9uIE4oZWUscSl7dmFyIEo9dGhpczt0aGlzLnNlcnZlclVybD1lZSx0aGlzLnNlcnZlclR5cGU9cSx0aGlzLndhaXRpbmdSZXF1ZXN0cz1bXSx0aGlzLnJlc2VuZFdhaXRpbmdSZXF1ZXN0cz1mdW5jdGlvbigpe3JldHVybiBpZShKLHZvaWQgMCx2b2lkIDAs''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgc2U9dGhpcztyZXR1cm4gbGUodGhpcyxmdW5jdGlvbihvZSl7c3dpdGNoKG9lLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsKDAsWS5hc3luY0ZvckVhY2gpKHRoaXMud2FpdGluZ1JlcXVlc3RzLGZ1bmN0aW9uKGNlKXtyZXR1cm4gaWUoc2Usdm9pZCAwLHZvaWQgMCxm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiBsZSh0aGlzLGZ1bmN0aW9uKGRlKXtzd2l0Y2goZGUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxjZSgpXTtjYXNlIDE6cmV0dXJuIGRlLnNlbnQoKSxbMl19fSl9KX0pXTtjYXNlIDE6cmV0dXJuIG9lLnNlbnQoKSx0aGlzLndhaXRpbmdSZXF1ZXN0cz1bXSxbMl19''@;'; + put 'put ''fSl9KX19cmV0dXJuIE4ucHJvdG90eXBlLmFwcGVuZFdhaXRpbmdSZXF1ZXN0PWZ1bmN0aW9uKGVlKXt0aGlzLndhaXRpbmdSZXF1ZXN0cy5wdXNoKGVlKX0sTn0oKTtRLkJhc2VKb2JFeGVjdXRvcj1XfSwyNjkzOmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllLGxlPXRoaXMm''@;'; + put 'put ''JnRoaXMuX19leHRlbmRzfHwoaWU9ZnVuY3Rpb24odmUsQWUpe3JldHVybihpZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oa2UsU2Upe2tlLl9fcHJvdG9fXz1TZX18fGZ1bmN0aW9uKGtlLFNlKXtmb3IodmFyIEllIGlu''@;'; + put 'put ''IFNlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChTZSxJZSkmJihrZVtJZV09U2VbSWVdKX0pKHZlLEFlKX0sZnVuY3Rpb24odmUsQWUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBBZSYmbnVsbCE9PUFlKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFs''@;'; + put 'put ''dWUgIitTdHJpbmcoQWUpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIGtlKCl7dGhpcy5jb25zdHJ1Y3Rvcj12ZX1pZSh2ZSxBZSksdmUucHJvdG90eXBlPW51bGw9PT1BZT9PYmplY3QuY3JlYXRlKEFlKTooa2UucHJvdG90eXBlPUFlLnByb3RvdHlwZSxuZXcg''@;'; + put 'put ''a2UpfSksWT10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBZPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHZlKXtmb3IodmFyIEFlLGtlPTEsU2U9YXJndW1lbnRzLmxlbmd0aDtrZTxTZTtrZSsrKWZvcih2YXIgSWUgaW4gQWU9YXJndW1lbnRzW2tlXSlPYmplY3QucHJv''@;'; + put 'put ''dG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQWUsSWUpJiYodmVbSWVdPUFlW0llXSk7cmV0dXJuIHZlfSxZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sVz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odmUsQWUsa2UsU2Upe3JldHVybiBuZXcoa2V8fChrZT1Qcm9taXNlKSkoZnVu''@;'; + put 'put ''Y3Rpb24oSWUsVGUpe2Z1bmN0aW9uIEVlKHope3RyeXtPKFNlLm5leHQoeikpfWNhdGNoKG5lKXtUZShuZSl9fWZ1bmN0aW9uIGhlKHope3RyeXtPKFNlLnRocm93KHopKX1jYXRjaChuZSl7VGUobmUpfX1mdW5jdGlvbiBPKHope3ZhciBuZTt6LmRvbmU/SWUoei52YWx1ZSk6KG5lPXoudmFs''@;'; + put 'put ''dWUsbmUgaW5zdGFuY2VvZiBrZT9uZTpuZXcga2UoZnVuY3Rpb24odGUpe3RlKG5lKX0pKS50aGVuKEVlLGhlKX1PKChTZT1TZS5hcHBseSh2ZSxBZXx8W10pKS5uZXh0KCkpfSl9LE49dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24odmUsQWUpe3ZhciBrZSxTZSxJZSxUZSxFZT17''@;'; + put 'put ''bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZJZVswXSl0aHJvdyBJZVsxXTtyZXR1cm4gSWVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gVGU9e25leHQ6aGUoMCksdGhyb3c6aGUoMSkscmV0dXJuOmhlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoVGVbU3ltYm9sLml0''@;'; + put 'put ''ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksVGU7ZnVuY3Rpb24gaGUoTyl7cmV0dXJuIGZ1bmN0aW9uKHope3JldHVybiBmdW5jdGlvbihuZSl7aWYoa2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7RWU7KXRyeXtp''@;'; + put 'put ''ZihrZT0xLFNlJiYoSWU9MiZuZVswXT9TZS5yZXR1cm46bmVbMF0/U2UudGhyb3d8fCgoSWU9U2UucmV0dXJuKSYmSWUuY2FsbChTZSksMCk6U2UubmV4dCkmJiEoSWU9SWUuY2FsbChTZSxuZVsxXSkpLmRvbmUpcmV0dXJuIEllO3N3aXRjaChTZT0wLEllJiYobmU9WzImbmVbMF0sSWUudmFs''@;'; + put 'put ''dWVdKSxuZVswXSl7Y2FzZSAwOmNhc2UgMTpJZT1uZTticmVhaztjYXNlIDQ6cmV0dXJuIEVlLmxhYmVsKysse3ZhbHVlOm5lWzFdLGRvbmU6ITF9O2Nhc2UgNTpFZS5sYWJlbCsrLFNlPW5lWzFdLG5lPVswXTtjb250aW51ZTtjYXNlIDc6bmU9RWUub3BzLnBvcCgpLEVlLnRyeXMucG9wKCk7''@;'; + put 'put ''Y29udGludWU7ZGVmYXVsdDppZighKChJZT0oSWU9RWUudHJ5cykubGVuZ3RoPjAmJkllW0llLmxlbmd0aC0xXSl8fDYhPT1uZVswXSYmMiE9PW5lWzBdKSl7RWU9MDtjb250aW51ZX1pZigzPT09bmVbMF0mJighSWV8fG5lWzFdPkllWzBdJiZuZVsxXTxJZVszXSkpe0VlLmxhYmVsPW5lWzFd''@;'; + put 'put ''O2JyZWFrfWlmKDY9PT1uZVswXSYmRWUubGFiZWw8SWVbMV0pe0VlLmxhYmVsPUllWzFdLEllPW5lO2JyZWFrfWlmKEllJiZFZS5sYWJlbDxJZVsyXSl7RWUubGFiZWw9SWVbMl0sRWUub3BzLnB1c2gobmUpO2JyZWFrfUllWzJdJiZFZS5vcHMucG9wKCksRWUudHJ5cy5wb3AoKTtjb250aW51''@;'; + put 'put ''ZX1uZT1BZS5jYWxsKHZlLEVlKX1jYXRjaCh0ZSl7bmU9WzYsdGVdLFNlPTB9ZmluYWxseXtrZT1JZT0wfWlmKDUmbmVbMF0pdGhyb3cgbmVbMV07cmV0dXJue3ZhbHVlOm5lWzBdP25lWzFdOnZvaWQgMCxkb25lOiEwfX0oW08sel0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2Vz''@;'; + put 'put ''TW9kdWxlIix7dmFsdWU6ITB9KSxRLlNhczlKb2JFeGVjdXRvcj12b2lkIDA7dmFyIGVlPVooNjIzMCkscT1aKDEzOTUpLEo9Wig1OTI4KSxzZT1aKDYxMTgpLG9lPVooNzk1KSxjZT1mdW5jdGlvbih2ZSl7ZnVuY3Rpb24gQWUoa2UsU2UsSWUsVGUsRWUpe3ZhciBoZT12ZS5jYWxsKHRoaXMs''@;'; + put 'put ''a2UsU2UpfHx0aGlzO3JldHVybiBoZS5qb2JzUGF0aD1JZSxoZS5yZXF1ZXN0Q2xpZW50PVRlLGhlLnNhczlSZXF1ZXN0Q2xpZW50PW5ldyBvZS5TYXM5UmVxdWVzdENsaWVudChrZSxFZSksaGV9cmV0dXJuIGxlKEFlLHZlKSxBZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihrZSxTZSxJ''@;'; + put 'put ''ZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFRlLEVlLGhlLE8seixuZSx0ZT10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNoKHgubGFiZWwpe2Nhc2UgMDppZihUZT0oMCxKLmlzUmVsYXRpdmVQYXRoKShrZSkmJkllLmFwcExvYz9JZS5h''@;'; + put 'put ''cHBMb2MucmVwbGFjZSgvXC8/JC8sIi8iKStrZS5yZXBsYWNlKC9eXC8vLCIiKTprZSxFZT0iIi5jb25jYXQoSWUuc2VydmVyVXJsKS5jb25jYXQodGhpcy5qb2JzUGF0aCwiPyIpLmNvbmNhdCgiX3Byb2dyYW09IitUZSksRWU9IiIuY29uY2F0KEVlKS5jb25jYXQoSWUudXNlcm5hbWUmJkll''@;'; + put 'put ''LnBhc3N3b3JkPyImX3VzZXJuYW1lPSIrSWUudXNlcm5hbWUrIiZfcGFzc3dvcmQ9IitJZS5wYXNzd29yZDoiIiksRWU9IiIuY29uY2F0KEVlKS5jb25jYXQoSWUuZGVidWc/IiZfZGVidWc9MTMxIjoiIiksaGU9WSh7fSx0aGlzLmdldFJlcXVlc3RQYXJhbXMoSWUpKSxPPW5ldyBlZSxTZSl0''@;'; + put 'put ''cnl7Tz1kZShPLFNlKX1jYXRjaChQKXtyZXR1cm5bMixQcm9taXNlLnJlamVjdChuZXcgcS5FcnJvclJlc3BvbnNlKG51bGw9PVA/dm9pZCAwOlAubWVzc2FnZSxQKSldfWVsc2UgU2U9IiI7Zm9yKHogaW4gaGUpaGUuaGFzT3duUHJvcGVydHkoeikmJk8uYXBwZW5kKHosaGVbel0pO3JldHVy''@;'; + put 'put ''bls0LHRoaXMuc2FzOVJlcXVlc3RDbGllbnQubG9naW4oSWUudXNlcm5hbWUsSWUucGFzc3dvcmQsdGhpcy5qb2JzUGF0aCldO2Nhc2UgMTpyZXR1cm4geC5zZW50KCksbmU9U2UmJk9iamVjdC5rZXlzKFNlKS5sZW5ndGg/Im11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSIrTy5fYm91''@;'; + put 'put ''bmRhcnk6InRleHQvcGxhaW4iLFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKFAsVil7cmV0dXJuIHRlLnNhczlSZXF1ZXN0Q2xpZW50LnBvc3QoRWUsTyx2b2lkIDAsbmUse0FjY2VwdDoiKi8qIixDb25uZWN0aW9uOiJLZWVwLUFsaXZlIn0pLnRoZW4oZnVuY3Rpb24oVCl7dGUucmVxdWVzdENs''@;'; + put 'put ''aWVudC5hcHBlbmRSZXF1ZXN0KFQsa2UsSWUuZGVidWcpLFAoVCl9KS5jYXRjaChmdW5jdGlvbihUKXt2YXIgUz1UO1QucmVzdWx0JiYiIiE9PVQucmVzdWx0P1M9VC5yZXN1bHQ6VC5tZXNzYWdlJiYoUz1ULm1lc3NhZ2UpLHRlLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChTLGtlLEll''@;'; + put 'put ''LmRlYnVnKSxWKG5ldyBxLkVycm9yUmVzcG9uc2UobnVsbD09VD92b2lkIDA6VC5tZXNzYWdlLFQpKX0pfSldfX0pfSl9LEFlLnByb3RvdHlwZS5nZXRSZXF1ZXN0UGFyYW1zPWZ1bmN0aW9uKGtlKXt2YXIgU2U9e307cmV0dXJuIGtlLmRlYnVnJiYoU2UuX2RlYnVnPTEzMSksU2V9LEFlfShz''@;'; + put 'put ''ZS5CYXNlSm9iRXhlY3V0b3IpO1EuU2FzOUpvYkV4ZWN1dG9yPWNlO3ZhciBkZT1mdW5jdGlvbih2ZSxBZSl7Zm9yKHZhciBrZSBpbiBBZSl7dmFyIFNlPWtlLEllPSgwLEouY29udmVydFRvQ1NWKShBZSxrZSk7aWYoIkVSUk9SOiBMQVJHRSBTVFJJTkcgTEVOR1RIIj09PUllKXRocm93IG5l''@;'; + put 'put ''dyBFcnJvcigiVGhlIG1heCBsZW5ndGggb2YgYSBzdHJpbmcgdmFsdWUgaW4gU0FTanMgaXMgMzI3NjUgY2hhcmFjdGVycy4iKTt2ZS5hcHBlbmQoU2UsSWUse2ZpbGVuYW1lOiIiLmNvbmNhdChTZSwiLmNzdiIpLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9jc3YifSl9cmV0dXJuIHZlfX0s''@;'; + put 'put ''NjA4NDpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZSxsZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGllPWZ1bmN0aW9uKGtlLFNlKXtyZXR1cm4oaWU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKEllLFRl''@;'; + put 'put ''KXtJZS5fX3Byb3RvX189VGV9fHxmdW5jdGlvbihJZSxUZSl7Zm9yKHZhciBFZSBpbiBUZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVGUsRWUpJiYoSWVbRWVdPVRlW0VlXSl9KShrZSxTZSl9LGZ1bmN0aW9uKGtlLFNlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgU2Um''@;'; + put 'put ''Jm51bGwhPT1TZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFNlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBJZSgpe3RoaXMuY29uc3RydWN0b3I9a2V9aWUoa2UsU2UpLGtlLnByb3RvdHlwZT1udWxsPT09U2U/''@;'; + put 'put ''T2JqZWN0LmNyZWF0ZShTZSk6KEllLnByb3RvdHlwZT1TZS5wcm90b3R5cGUsbmV3IEllKX0pLFk9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gWT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihrZSl7Zm9yKHZhciBTZSxJZT0xLFRlPWFyZ3VtZW50cy5sZW5ndGg7SWU8''@;'; + put 'put ''VGU7SWUrKylmb3IodmFyIEVlIGluIFNlPWFyZ3VtZW50c1tJZV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFNlLEVlKSYmKGtlW0VlXT1TZVtFZV0pO3JldHVybiBrZX0sWS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFc9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0''@;'; + put 'put ''aW9uKGtlLFNlLEllLFRlKXtyZXR1cm4gbmV3KEllfHwoSWU9UHJvbWlzZSkpKGZ1bmN0aW9uKEVlLGhlKXtmdW5jdGlvbiBPKHRlKXt0cnl7bmUoVGUubmV4dCh0ZSkpfWNhdGNoKHgpe2hlKHgpfX1mdW5jdGlvbiB6KHRlKXt0cnl7bmUoVGUudGhyb3codGUpKX1jYXRjaCh4KXtoZSh4KX19''@;'; + put 'put ''ZnVuY3Rpb24gbmUodGUpe3ZhciB4O3RlLmRvbmU/RWUodGUudmFsdWUpOih4PXRlLnZhbHVlLHggaW5zdGFuY2VvZiBJZT94Om5ldyBJZShmdW5jdGlvbihQKXtQKHgpfSkpLnRoZW4oTyx6KX1uZSgoVGU9VGUuYXBwbHkoa2UsU2V8fFtdKSkubmV4dCgpKX0pfSxOPXRoaXMmJnRoaXMuX19n''@;'; + put 'put ''ZW5lcmF0b3J8fGZ1bmN0aW9uKGtlLFNlKXt2YXIgSWUsVGUsRWUsaGUsTz17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZFZVswXSl0aHJvdyBFZVsxXTtyZXR1cm4gRWVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gaGU9e25leHQ6eigwKSx0aHJvdzp6KDEpLHJldHVybjp6KDIp''@;'; + put 'put ''fSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoaGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaGU7ZnVuY3Rpb24geihuZSl7cmV0dXJuIGZ1bmN0aW9uKHRlKXtyZXR1cm4gZnVuY3Rpb24oeCl7aWYoSWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJh''@;'; + put 'put ''dG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7TzspdHJ5e2lmKEllPTEsVGUmJihFZT0yJnhbMF0/VGUucmV0dXJuOnhbMF0/VGUudGhyb3d8fCgoRWU9VGUucmV0dXJuKSYmRWUuY2FsbChUZSksMCk6VGUubmV4dCkmJiEoRWU9RWUuY2FsbChUZSx4WzFdKSkuZG9uZSlyZXR1cm4g''@;'; + put 'put ''RWU7c3dpdGNoKFRlPTAsRWUmJih4PVsyJnhbMF0sRWUudmFsdWVdKSx4WzBdKXtjYXNlIDA6Y2FzZSAxOkVlPXg7YnJlYWs7Y2FzZSA0OnJldHVybiBPLmxhYmVsKysse3ZhbHVlOnhbMV0sZG9uZTohMX07Y2FzZSA1Ok8ubGFiZWwrKyxUZT14WzFdLHg9WzBdO2NvbnRpbnVlO2Nhc2UgNzp4''@;'; + put 'put ''PU8ub3BzLnBvcCgpLE8udHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKEVlPShFZT1PLnRyeXMpLmxlbmd0aD4wJiZFZVtFZS5sZW5ndGgtMV0pfHw2IT09eFswXSYmMiE9PXhbMF0pKXtPPTA7Y29udGludWV9aWYoMz09PXhbMF0mJighRWV8fHhbMV0+RWVbMF0mJnhbMV08RWVb''@;'; + put 'put ''M10pKXtPLmxhYmVsPXhbMV07YnJlYWt9aWYoNj09PXhbMF0mJk8ubGFiZWw8RWVbMV0pe08ubGFiZWw9RWVbMV0sRWU9eDticmVha31pZihFZSYmTy5sYWJlbDxFZVsyXSl7Ty5sYWJlbD1FZVsyXSxPLm9wcy5wdXNoKHgpO2JyZWFrfUVlWzJdJiZPLm9wcy5wb3AoKSxPLnRyeXMucG9wKCk7''@;'; + put 'put ''Y29udGludWV9eD1TZS5jYWxsKGtlLE8pfWNhdGNoKFApe3g9WzYsUF0sVGU9MH1maW5hbGx5e0llPUVlPTB9aWYoNSZ4WzBdKXRocm93IHhbMV07cmV0dXJue3ZhbHVlOnhbMF0/eFsxXTp2b2lkIDAsZG9uZTohMH19KFtuZSx0ZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2Vz''@;'; + put 'put ''TW9kdWxlIix7dmFsdWU6ITB9KSxRLldlYkpvYkV4ZWN1dG9yPXZvaWQgMDt2YXIgZWU9Wig2MjMwKSxxPVooMzkwMCksSj1aKDEzOTUpLHNlPVooNDAzNyksb2U9WigyMTcwKSxjZT1aKDU5MjgpLGRlPVooNjExOCksdmU9WigyODEzKSxBZT1mdW5jdGlvbihrZSl7ZnVuY3Rpb24gU2UoSWUs''@;'; + put 'put ''VGUsRWUsaGUsTyl7dmFyIHo9a2UuY2FsbCh0aGlzLEllLFRlKXx8dGhpcztyZXR1cm4gei5qb2JzUGF0aD1FZSx6LnJlcXVlc3RDbGllbnQ9aGUsei5zYXNWaXlhQXBpQ2xpZW50PU8sen1yZXR1cm4gbGUoU2Usa2UpLFNlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKEllLFRlLEVlLGhl''@;'; + put 'put ''LE8seil7cmV0dXJuIHZvaWQgMD09PXomJih6PVtdKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuZSx0ZSx4LFAsVixULFMsRix5ZSxEZSxQZSxRZSxndD10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24od3Qpe3N3aXRjaCh3dC5sYWJlbCl7Y2FzZSAwOmlmKG5lPWhl''@;'; + put 'put ''LHRlPSgwLGNlLmlzUmVsYXRpdmVQYXRoKShJZSkmJkVlLmFwcExvYz9FZS5hcHBMb2MucmVwbGFjZSgvXC8/JC8sIi8iKStJZS5yZXBsYWNlKC9eXC8vLCIiKTpJZSx4PSIiLmNvbmNhdChFZS5zZXJ2ZXJVcmwpLmNvbmNhdCh0aGlzLmpvYnNQYXRoLCIvPyIpLmNvbmNhdCgiX3Byb2dyYW09''@;'; + put 'put ''Iit0ZSksRWUuc2VydmVyVHlwZSE9PXEuU2VydmVyVHlwZS5TYXNWaXlhKXJldHVyblszLDVdO1A9dm9pZCAwLHd0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiB3dC50cnlzLnB1c2goWzEsMywsNF0pLFs0LHRoaXMuZ2V0Sm9iVXJpKEllKV07Y2FzZSAyOnJldHVybiBQPXd0LnNlbnQoKSxbMyw0''@;'; + put 'put ''XTtjYXNlIDM6cmV0dXJuIFY9d3Quc2VudCgpLFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHZ0LEF0KXtyZXR1cm4gVyhndCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG10PXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihodCl7c3dpdGNoKGh0LmxhYmVsKXtjYXNlIDA6cmV0dXJu''@;'; + put 'put ''IFYgaW5zdGFuY2VvZiBKLkxvZ2luUmVxdWlyZWRFcnJvcj8odGhpcy5hcHBlbmRXYWl0aW5nUmVxdWVzdChmdW5jdGlvbigpe3JldHVybiBtdC5leGVjdXRlKEllLFRlLEVlLGhlLE8seikudGhlbihmdW5jdGlvbihCdCl7dnQoQnQpfSxmdW5jdGlvbihCdCl7QXQoQnQpfSl9KSxuZT9bNCxu''@;'; + put 'put ''ZSgpXTpbMywyXSk6WzMsM107Y2FzZSAxOmh0LnNlbnQoKSxodC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMyw0XTtjYXNlIDM6QXQobmV3IEouRXJyb3JSZXNwb25zZShudWxsPT1WP3ZvaWQgMDpWLm1lc3NhZ2UsVikpLGh0LmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyXX19KX0pfSldO2Nhc2Ug''@;'; + put 'put ''NDp4Kz1QLmxlbmd0aD4wPyImX2pvYj0iK1A6IiIsUC5sZW5ndGg+MCYmKHg9KHgrPSImX2pvYj0iK1ApLnJlcGxhY2UoIl9wcm9ncmFtPSIsIl9fcHJvZ3JhbT0iKSkseCs9RWUuY29udGV4dE5hbWUmJiEvXHMvLnRlc3QoRWUuY29udGV4dE5hbWUpPyImX2NvbnRleHRuYW1lPSIuY29uY2F0''@;'; + put 'put ''KEVlLmNvbnRleHROYW1lKToiIix3dC5sYWJlbD01O2Nhc2UgNTppZihUPVkoe30sdGhpcy5nZXRSZXF1ZXN0UGFyYW1zKEVlKSksUz0idW5kZWZpbmVkIj09dHlwZW9mIEZvcm1EYXRhP25ldyBlZTpuZXcgRm9ybURhdGEsVGUpaWYoRj1KU09OLnN0cmluZ2lmeShUZSksRWUuc2VydmVyVHlw''@;'; + put 'put ''ZT09PXEuU2VydmVyVHlwZS5TYXM5fHxFZS5zZXJ2ZXJUeXBlPT09cS5TZXJ2ZXJUeXBlLlNhc2pzfHxGLmxlbmd0aD41ZTV8fEYuaW5jbHVkZXMoIjsiKSl0cnl7Uz0oMCxzZS5nZW5lcmF0ZUZpbGVVcGxvYWRGb3JtKShTLFRlKX1jYXRjaCh2dCl7cmV0dXJuWzIsUHJvbWlzZS5yZWplY3Qo''@;'; + put 'put ''bmV3IEouRXJyb3JSZXNwb25zZShudWxsPT12dD92b2lkIDA6dnQubWVzc2FnZSx2dCkpXX1lbHNlIHRyeXt5ZT0oMCxvZS5nZW5lcmF0ZVRhYmxlVXBsb2FkRm9ybSkoUyxUZSksRGU9eWUucmVxdWVzdFBhcmFtcyxTPXllLmZvcm1EYXRhLFQ9WShZKHt9LFQpLERlKX1jYXRjaCh2dCl7cmV0''@;'; + put 'put ''dXJuWzIsUHJvbWlzZS5yZWplY3QobmV3IEouRXJyb3JSZXNwb25zZShudWxsPT12dD92b2lkIDA6dnQubWVzc2FnZSx2dCkpXX1mb3IoUGUgaW4gVClULmhhc093blByb3BlcnR5KFBlKSYmUy5hcHBlbmQoUGUsVFtQZV0pO3JldHVybiBRZT1TIGluc3RhbmNlb2YgZWUmJiJ1bmRlZmluZWQi''@;'; + put 'put ''PT10eXBlb2YgRm9ybURhdGE/Im11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSIuY29uY2F0KFMuZ2V0Qm91bmRhcnkoKSk6dm9pZCAwLFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHZ0LEF0KXtndC5yZXF1ZXN0Q2xpZW50LnBvc3QoeCxTLG51bGw9PU8/dm9pZCAwOk8uYWNjZXNzX3Rv''@;'; + put 'put ''a2VuLFFlKS50aGVuKGZ1bmN0aW9uKG10KXtyZXR1cm4gVyhndCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGh0LEJ0LG9uLF90LHR0O3JldHVybiBOKHRoaXMsZnVuY3Rpb24oZXQpe3N3aXRjaChldC5sYWJlbCl7Y2FzZSAwOmlmKGh0PXRoaXMuc2VydmVyVHlwZT09PXEuU2VydmVy''@;'; + put 'put ''VHlwZS5TYXNqcz9tdC5yZXN1bHQubG9nLm1hcChmdW5jdGlvbihhdCl7cmV0dXJuIGF0LmxpbmV9KS5qb2luKCJcbiIpOm10LnJlc3VsdC5sb2csQnQ9dGhpcy5zZXJ2ZXJUeXBlPT09cS5TZXJ2ZXJUeXBlLlNhc2pzP3tyZXN1bHQ6bXQucmVzdWx0Ll93ZWJvdXQsbG9nOmh0fTptdCx0aGlz''@;'; + put 'put ''LnNlcnZlclR5cGU9PT1xLlNlcnZlclR5cGUuU2FzanMmJm10LnJlc3VsdC5fd2Vib3V0Lmxlbmd0aDwxKXRocm93IG5ldyBKLkpvYkV4ZWN1dGlvbkVycm9yKDAsIk5vIHdlYm91dCB3YXMgcmV0dXJuZWQgYnkgam9iICIuY29uY2F0KHRlLCIuIFNlcnZlciB0eXBlIGlzIFNBU0pTIGFuZCB0''@;'; + put 'put ''aGUgY2FsbGluZyBmdW5jdGlvbiBpcyBXZWJKb2JFeGVjdXRvci4gUGxlYXNlIGNoZWNrIHRoZSBTQVMgbG9nIGZvciBtb3JlIGluZm8uIiksaHQpO2lmKHRoaXMucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KEJ0LEllLEVlLmRlYnVnKSxvbj1tdC5yZXN1bHQsIUVlLmRlYnVnKXJldHVy''@;'; + put 'put ''blszLDZdO3N3aXRjaCh0aGlzLnNlcnZlclR5cGUpe2Nhc2UgcS5TZXJ2ZXJUeXBlLlNhc1ZpeWE6cmV0dXJuWzMsMV07Y2FzZSBxLlNlcnZlclR5cGUuU2FzOTpyZXR1cm5bMywzXTtjYXNlIHEuU2VydmVyVHlwZS5TYXNqczpyZXR1cm5bMyw0XX1yZXR1cm5bMyw1XTtjYXNlIDE6cmV0dXJu''@;'; + put 'put ''WzQsKDAsY2UucGFyc2VTYXNWaXlhRGVidWdSZXNwb25zZSkobXQucmVzdWx0LHRoaXMucmVxdWVzdENsaWVudCx0aGlzLnNlcnZlclVybCldO2Nhc2UgMjpyZXR1cm4gb249ZXQuc2VudCgpLFszLDVdO2Nhc2UgMzpyZXR1cm4gb249InN0cmluZyI9PXR5cGVvZiBtdC5yZXN1bHQ/KDAsdmUu''@;'; + put 'put ''cGFyc2VXZWJvdXRSZXNwb25zZSkobXQucmVzdWx0LHgpOm10LnJlc3VsdCxbMyw1XTtjYXNlIDQ6cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBtdC5yZXN1bHQuX3dlYm91dD9vbj1tdC5yZXN1bHQuX3dlYm91dDooX3Q9KDAsdmUucGFyc2VXZWJvdXRSZXNwb25zZSkobXQucmVzdWx0Ll93ZWJv''@;'; + put 'put ''dXQseCksb249KDAsY2UuZ2V0VmFsaWRKc29uKShfdCkpLFszLDVdO2Nhc2UgNTpyZXR1cm5bMyw3XTtjYXNlIDY6dGhpcy5zZXJ2ZXJUeXBlPT09cS5TZXJ2ZXJUeXBlLlNhc2pzJiYob249KDAsY2UuZ2V0VmFsaWRKc29uKShtdC5yZXN1bHQuX3dlYm91dCkpLGV0LmxhYmVsPTc7Y2FzZSA3''@;'; + put 'put ''OnJldHVybiB0dD0oMCxjZS5hcHBlbmRFeHRyYVJlc3BvbnNlQXR0cmlidXRlcykoe3Jlc3VsdDpvbixsb2c6aHR9LHopLHZ0KHR0KSxbMl19fSl9KX0pLmNhdGNoKGZ1bmN0aW9uKG10KXtyZXR1cm4gVyhndCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGh0PXRoaXM7cmV0dXJuIE4o''@;'; + put 'put ''dGhpcyxmdW5jdGlvbihCdCl7c3dpdGNoKEJ0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIG10IGluc3RhbmNlb2YgSi5Kb2JFeGVjdXRpb25FcnJvciYmKHRoaXMucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KG10LEllLEVlLmRlYnVnKSxBdChuZXcgSi5FcnJvclJlc3BvbnNlKG51bGw9PW10''@;'; + put 'put ''P3ZvaWQgMDptdC5tZXNzYWdlLG10KSkpLG10IGluc3RhbmNlb2YgSi5Mb2dpblJlcXVpcmVkRXJyb3I/KGhlfHxBdChuZXcgSi5FcnJvclJlc3BvbnNlKCJSZXF1ZXN0IGlzIG5vdCBhdXRoZW50aWNhdGVkLiBNYWtlIHN1cmUgLmVudiBmaWxlIGV4aXN0cyB3aXRoIHZhbGlkIGNyZWRlbnRp''@;'; + put 'put ''YWxzLiIsbXQpKSx0aGlzLmFwcGVuZFdhaXRpbmdSZXF1ZXN0KGZ1bmN0aW9uKCl7cmV0dXJuIGh0LmV4ZWN1dGUoSWUsVGUsRWUsaGUsTyx6KS50aGVuKGZ1bmN0aW9uKG9uKXt2dChvbil9LGZ1bmN0aW9uKG9uKXtBdChvbil9KX0pLG5lP1s0LG5lKCldOlszLDJdKTpbMywzXTtjYXNlIDE6''@;'; + put 'put ''QnQuc2VudCgpLEJ0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblszLDRdO2Nhc2UgMzpBdChuZXcgSi5FcnJvclJlc3BvbnNlKG51bGw9PW10P3ZvaWQgMDptdC5tZXNzYWdlLG10KSksQnQubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9KX0pXX19KX0pfSxTZS5wcm90b3R5cGUuZ2V0Sm9i''@;'; + put 'put ''VXJpPWZ1bmN0aW9uKEllKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgVGUsRWUsaGUsTyx6LG5lO3JldHVybiBOKHRoaXMsZnVuY3Rpb24odGUpe3N3aXRjaCh0ZS5sYWJlbCl7Y2FzZSAwOmlmKCF0aGlzLnNhc1ZpeWFBcGlDbGllbnQpcmV0dXJuWzIsIiJd''@;'; + put 'put ''O2lmKFRlPSIiLCgwLGNlLmlzUmVsYXRpdmVQYXRoKShJZSk/KE89SWUuc3BsaXQoIi8iKSxFZT1PLmxlbmd0aD4xP09bMF06IiIsaGU9Ty5sZW5ndGg+MT9PWzFdOiIiKTooTz1JZS5zcGxpdCgiLyIpLGhlPU8ucG9wKCl8fCIiLEVlPU8uam9pbigiLyIpKSwhaGUpdGhyb3cgbmV3IEVycm9y''@;'; + put 'put ''KCJKb2IgbmFtZSBpcyBlbXB0eSwgbnVsbCBvciB1bmRlZmluZWQuIik7cmV0dXJuWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldEpvYnNJbkZvbGRlcihFZSldO2Nhc2UgMTpyZXR1cm4oej10ZS5zZW50KCkpJiYobmU9ei5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWU9PT1oZSYm''@;'; + put 'put ''ImpvYkRlZmluaXRpb24iPT09eC5jb250ZW50VHlwZX0pKSYmKFRlPW5lLnVyaSksWzIsVGVdfX0pfSl9LFNlLnByb3RvdHlwZS5nZXRSZXF1ZXN0UGFyYW1zPWZ1bmN0aW9uKEllKXt2YXIgVGU9e307cmV0dXJuIEllLmRlYnVnJiYoVGUuX29taXR0ZXh0bG9nPSJmYWxzZSIsVGUuX29taXRz''@;'; + put 'put ''ZXNzaW9ucmVzdWx0cz0iZmFsc2UiLFRlLl9kZWJ1Zz0xMzEpLFRlfSxTZS5wcm90b3R5cGUucGFyc2VTQVM5RXJyb3JSZXNwb25zZT1mdW5jdGlvbihJZSl7dmFyIFRlPUllLnNwbGl0KCJcbiIpLEVlPVtdLGhlPS0xO1RlLm1hcChmdW5jdGlvbih6LG5lKXt6LnRvTG93ZXJDYXNlKCkuaW5j''@;'; + put 'put ''bHVkZXMoImVycm9yIikmJiF6LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoInRoaXMgcmVxdWVzdCBjb21wbGV0ZWQgd2l0aCBlcnJvcnMuIikmJi0xPT09aGUmJihoZT1uZSl9KTtmb3IodmFyIE89aGUtMTA7Tzw9aGUrMTA7TysrKUVlLnB1c2goVGVbT10pO3JldHVybiBFZS5qb2luKCIsICIp''@;'; + put 'put ''fSxTZX0oZGUuQmFzZUpvYkV4ZWN1dG9yKTtRLldlYkpvYkV4ZWN1dG9yPUFlfSw4MjE3OmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihZLFcsTixlZSl7dm9pZCAwPT09ZWUmJihl''@;'; + put 'put ''ZT1OKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWSxlZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1tOXX19KX06ZnVuY3Rpb24oWSxXLE4sZWUpe3ZvaWQgMD09PWVlJiYoZWU9TiksWVtlZV09V1tOXX0pLGxlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlv''@;'; + put 'put ''bihZLFcpe2Zvcih2YXIgTiBpbiBZKSJkZWZhdWx0Ij09PU58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLE4pfHxpZShXLFksTil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxsZShaKDE1NzApLFEpLGxlKFooMzQ5MSks''@;'; + put 'put ''USksbGUoWig0NDQ2KSxRKSxsZShaKDYxMTgpLFEpLGxlKFooMjY5MyksUSksbGUoWig2MDg0KSxRKX0sNDU4ODpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZT1aKDQxNTUpLGxlPVooNTEwOCksWT10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBZPU9i''@;'; + put 'put ''amVjdC5hc3NpZ258fGZ1bmN0aW9uKFNlKXtmb3IodmFyIEllLFRlPTEsRWU9YXJndW1lbnRzLmxlbmd0aDtUZTxFZTtUZSsrKWZvcih2YXIgaGUgaW4gSWU9YXJndW1lbnRzW1RlXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSWUsaGUpJiYoU2VbaGVdPUllW2hlXSk7''@;'; + put 'put ''cmV0dXJuIFNlfSxZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sVz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oU2UsSWUsVGUsRWUpe3JldHVybiBuZXcoVGV8fChUZT1Qcm9taXNlKSkoZnVuY3Rpb24oaGUsTyl7ZnVuY3Rpb24geih4KXt0cnl7dGUoRWUubmV4dCh4KSl9Y2F0Y2go''@;'; + put 'put ''UCl7TyhQKX19ZnVuY3Rpb24gbmUoeCl7dHJ5e3RlKEVlLnRocm93KHgpKX1jYXRjaChQKXtPKFApfX1mdW5jdGlvbiB0ZSh4KXt2YXIgUDt4LmRvbmU/aGUoeC52YWx1ZSk6KFA9eC52YWx1ZSxQIGluc3RhbmNlb2YgVGU/UDpuZXcgVGUoZnVuY3Rpb24oVil7VihQKX0pKS50aGVuKHosbmUp''@;'; + put 'put ''fXRlKChFZT1FZS5hcHBseShTZSxJZXx8W10pKS5uZXh0KCkpfSl9LE49dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oU2UsSWUpe3ZhciBUZSxFZSxoZSxPLHo9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmaGVbMF0pdGhyb3cgaGVbMV07cmV0dXJuIGhlWzFdfSx0cnlz''@;'; + put 'put ''OltdLG9wczpbXX07cmV0dXJuIE89e25leHQ6bmUoMCksdGhyb3c6bmUoMSkscmV0dXJuOm5lKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoT1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxPO2Z1bmN0aW9uIG5lKHRlKXtyZXR1cm4gZnVuY3Rpb24o''@;'; + put 'put ''eCl7cmV0dXJuIGZ1bmN0aW9uKFApe2lmKFRlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3o7KXRyeXtpZihUZT0xLEVlJiYoaGU9MiZQWzBdP0VlLnJldHVybjpQWzBdP0VlLnRocm93fHwoKGhlPUVlLnJldHVybikmJmhlLmNh''@;'; + put 'put ''bGwoRWUpLDApOkVlLm5leHQpJiYhKGhlPWhlLmNhbGwoRWUsUFsxXSkpLmRvbmUpcmV0dXJuIGhlO3N3aXRjaChFZT0wLGhlJiYoUD1bMiZQWzBdLGhlLnZhbHVlXSksUFswXSl7Y2FzZSAwOmNhc2UgMTpoZT1QO2JyZWFrO2Nhc2UgNDpyZXR1cm4gei5sYWJlbCsrLHt2YWx1ZTpQWzFdLGRv''@;'; + put 'put ''bmU6ITF9O2Nhc2UgNTp6LmxhYmVsKyssRWU9UFsxXSxQPVswXTtjb250aW51ZTtjYXNlIDc6UD16Lm9wcy5wb3AoKSx6LnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChoZT0oaGU9ei50cnlzKS5sZW5ndGg+MCYmaGVbaGUubGVuZ3RoLTFdKXx8NiE9PVBbMF0mJjIhPT1QWzBd''@;'; + put 'put ''KSl7ej0wO2NvbnRpbnVlfWlmKDM9PT1QWzBdJiYoIWhlfHxQWzFdPmhlWzBdJiZQWzFdPGhlWzNdKSl7ei5sYWJlbD1QWzFdO2JyZWFrfWlmKDY9PT1QWzBdJiZ6LmxhYmVsPGhlWzFdKXt6LmxhYmVsPWhlWzFdLGhlPVA7YnJlYWt9aWYoaGUmJnoubGFiZWw8aGVbMl0pe3oubGFiZWw9aGVb''@;'; + put 'put ''Ml0sei5vcHMucHVzaChQKTticmVha31oZVsyXSYmei5vcHMucG9wKCksei50cnlzLnBvcCgpO2NvbnRpbnVlfVA9SWUuY2FsbChTZSx6KX1jYXRjaChWKXtQPVs2LFZdLEVlPTB9ZmluYWxseXtUZT1oZT0wfWlmKDUmUFswXSl0aHJvdyBQWzFdO3JldHVybnt2YWx1ZTpQWzBdP1BbMV06dm9p''@;'; + put 'put ''ZCAwLGRvbmU6ITB9fShbdGUseF0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnRocm93SWZFcnJvcj1RLlJlcXVlc3RDbGllbnQ9dm9pZCAwO3ZhciBlZT1aKDgzNzMpLHE9WigxNTI3KSxKPVooMTM5NSksc2U9WigyODEzKSxvZT1aKDk3''@;'; + put 'put ''NzgpLGNlPVooOTUyNiksZGU9Wig1OTI4KSx2ZT1aKDEwMDUpLEFlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gU2UoSWUsVGUsRWUpe3ZhciBoZT10aGlzO3RoaXMuYmFzZVVybD1JZSx0aGlzLnJlcXVlc3RzPVtdLHRoaXMucmVxdWVzdHNMaW1pdD0xMCx0aGlzLmNzcmZUb2tlbj17aGVhZGVyTmFt''@;'; + put 'put ''ZToiIix2YWx1ZToiIn0sdGhpcy5nZXRSZXF1ZXN0cz1mdW5jdGlvbigpe3JldHVybiBoZS5yZXF1ZXN0c30sdGhpcy5jbGVhclJlcXVlc3RzPWZ1bmN0aW9uKCl7aGUucmVxdWVzdHM9W119LHRoaXMuYXV0aG9yaXplPWZ1bmN0aW9uKE8pe3JldHVybiBXKGhlLHZvaWQgMCx2b2lkIDAsZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgeixuZSx0ZSx4LFAsVixULFMsRix5ZSxDZSxEZTtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKFBlKXtzd2l0Y2goUGUubGFiZWwpe2Nhc2UgMDpmb3IobmU9e30sdGU9Ty5zcGxpdCgiPGJvZHk+IilbMV0uc3BsaXQoIjwvYm9keT4iKVswXSwoeD1kb2N1bWVudC5jcmVhdGVF''@;'; + put 'put ''bGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPXRlLFA9eC5xdWVyeVNlbGVjdG9yKCIjYXBwbGljYXRpb25fYXV0aG9yaXphdGlvbiIpLHo9UD90aGlzLmJhc2VVcmwrUC5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpOm51bGwsVj1udWxsPT1QP3ZvaWQgMDpQLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0''@;'; + put 'put ''IiksVD0wLFM9VjtUPFMubGVuZ3RoO1QrKykidXNlcl9vYXV0aF9hcHByb3ZhbCI9PT0oRj1TW1RdKS5uYW1lJiYoRi52YWx1ZT0idHJ1ZSIpLG5lW0YubmFtZV09Ri52YWx1ZTtmb3IoRGUgaW4oeWU9T2JqZWN0LmtleXMobmUpLmZpbmQoZnVuY3Rpb24oUWUpe3JldHVybiBudWxsPT1RZT92''@;'; + put 'put ''b2lkIDA6UWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygiY3NyZiIpfSkpJiYodGhpcy5jc3JmVG9rZW4udmFsdWU9bmVbeWVdLHRoaXMuY3NyZlRva2VuLmhlYWRlck5hbWU9dGhpcy5jc3JmVG9rZW4uaGVhZGVyTmFtZXx8IngtY3NyZi10b2tlbiIpLENlPW5ldyBGb3JtRGF0YSxuZSluZS5o''@;'; + put 'put ''YXNPd25Qcm9wZXJ0eShEZSkmJkNlLmFwcGVuZChEZSxuZVtEZV0pO2lmKCF6KXRocm93IG5ldyBFcnJvcigiQXV0aCBGb3JtIFVSTCBpcyBudWxsIG9yIHVuZGVmaW5lZC4iKTtyZXR1cm5bNCx0aGlzLmh0dHBDbGllbnQucG9zdCh6LENlLHtyZXNwb25zZVR5cGU6InRleHQiLGhlYWRlcnM6''@;'; + put 'put ''e0FjY2VwdDoiKi8qIiwiQ29udGVudC1UeXBlIjoidGV4dC9wbGFpbiJ9fSkudGhlbihmdW5jdGlvbihRZSl7cmV0dXJuIFFlLmRhdGF9KS5jYXRjaChmdW5jdGlvbihRZSl7KGllLmxvZ2dlcnx8bGUpLmVycm9yKFFlKX0pXTtjYXNlIDE6cmV0dXJuWzIsUGUuc2VudCgpXX19KX0pfSx0aGlz''@;'; + put 'put ''LmdldEhlYWRlcnM9ZnVuY3Rpb24oTyx6KXt2YXIgbmU9e307cmV0dXJuImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIhPT16JiYobmVbIkNvbnRlbnQtVHlwZSJdPXopLG5lLkFjY2VwdD0iYXBwbGljYXRpb24vanNvbiI9PT16PyJhcHBsaWNhdGlvbi9qc29uIjoiKi8qIixP''@;'; + put 'put ''JiYobmUuQXV0aG9yaXphdGlvbj0iQmVhcmVyICIuY29uY2F0KE8pKSxoZS5jc3JmVG9rZW4uaGVhZGVyTmFtZSYmaGUuY3NyZlRva2VuLnZhbHVlJiYobmVbaGUuY3NyZlRva2VuLmhlYWRlck5hbWVdPWhlLmNzcmZUb2tlbi52YWx1ZSksbmV9LHRoaXMucGFyc2VBbmRTZXRGaWxlVXBsb2Fk''@;'; + put 'put ''Q3NyZlRva2VuPWZ1bmN0aW9uKE8pe3ZhciB6PWhlLnBhcnNlQ3NyZlRva2VuKE8pO3omJihoZS5maWxlVXBsb2FkQ3NyZlRva2VuPXopfSx0aGlzLnBhcnNlQW5kU2V0Q3NyZlRva2VuPWZ1bmN0aW9uKE8pe3ZhciB6PWhlLnBhcnNlQ3NyZlRva2VuKE8pO3omJihoZS5jc3JmVG9rZW49eil9''@;'; + put 'put ''LHRoaXMucGFyc2VDc3JmVG9rZW49ZnVuY3Rpb24oTyl7dmFyIHosbmU9bnVsbD09PSh6PU8uaGVhZGVyc1sieC1jc3JmLWhlYWRlciJdKXx8dm9pZCAwPT09ej92b2lkIDA6ei50b0xvd2VyQ2FzZSgpO2lmKG5lKXJldHVybntoZWFkZXJOYW1lOm5lLHZhbHVlOk8uaGVhZGVyc1tuZV18fCIi''@;'; + put 'put ''fX0sdGhpcy5oYW5kbGVFcnJvcj1mdW5jdGlvbihPLHosbmUpe3JldHVybiB2b2lkIDA9PT1uZSYmKG5lPSExKSxXKGhlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdGUseDtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKFApe3N3aXRjaChQLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRlPU8u''@;'; + put 'put ''cmVzcG9uc2UsTyBpbnN0YW5jZW9mIEouQXV0aG9yaXplRXJyb3I/WzQsdGhpcy5odHRwQ2xpZW50LmdldChPLmNvbmZpcm1Vcmwse3Jlc3BvbnNlVHlwZToidGV4dCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6InRleHQvcGxhaW4iLEFjY2VwdDoiKi8qIn19KS5jYXRjaChmdW5jdGlvbihW''@;'; + put 'put ''KXt0aHJvdygwLG9lLnByZWZpeE1lc3NhZ2UpKFYsIkVycm9yIHdoaWxlIGdldHRpbmcgZXJyb3IgY29uZmlybVVybC4gIil9KV06WzMsNV07Y2FzZSAxOnJldHVybiB4PVAuc2VudCgpLCgwLHEuaXNBdXRob3JpemVGb3JtUmVxdWlyZWQpKG51bGw9PXg/dm9pZCAwOnguZGF0YSk/WzQsdGhp''@;'; + put 'put ''cy5hdXRob3JpemUoeC5kYXRhKS5jYXRjaChmdW5jdGlvbihWKXt0aHJvdygwLG9lLnByZWZpeE1lc3NhZ2UpKFYsIkVycm9yIHdoaWxlIGF1dGhvcml6aW5nIHJlcXVlc3QuICIpfSldOlszLDNdO2Nhc2UgMjpQLnNlbnQoKSxQLmxhYmVsPTM7Y2FzZSAzOnJldHVybls0LHooKS5jYXRjaChm''@;'; + put 'put ''dW5jdGlvbihWKXt0aHJvdygwLG9lLnByZWZpeE1lc3NhZ2UpKFYsIkVycm9yIHdoaWxlIGV4ZWN1dGluZyBjYWxsYmFjayBpbiBoYW5kbGVFcnJvci4gIil9KV07Y2FzZSA0OnJldHVyblsyLFAuc2VudCgpXTtjYXNlIDU6aWYoTyBpbnN0YW5jZW9mIEouTG9naW5SZXF1aXJlZEVycm9yKXRo''@;'; + put 'put ''cm93IHRoaXMuY2xlYXJDc3JmVG9rZW5zKCksTztyZXR1cm4gTyBpbnN0YW5jZW9mIHZlLkludmFsaWRTQVNqc0NzcmZFcnJvcj9bNCx0aGlzLmh0dHBDbGllbnQuZ2V0KCIvIix7d2l0aENyZWRlbnRpYWxzOiEwfSkudGhlbihmdW5jdGlvbihWKXt2YXIgVCxTPW51bGw9PT0oVD0vPHNjcmlw''@;'; + put 'put ''dD5kb2N1bWVudC5jb29raWUgPSAnKFhTUkYtVE9LRU49Lio7IE1heC1BZ2U9ODY0MDA7IFNhbWVTaXRlPVN0cmljdDsgUGF0aD1cLzspJzxcL3NjcmlwdD4vLmV4ZWMoVi5kYXRhKSl8fHZvaWQgMD09PVQ/dm9pZCAwOlRbMV07UyYmKGRvY3VtZW50LmNvb2tpZT1TKX0pLmNhdGNoKGZ1bmN0''@;'; + put 'put ''aW9uKFYpe3Rocm93KDAsb2UucHJlZml4TWVzc2FnZSkoViwiRXJyb3Igd2hpbGUgcmUtZmV0Y2hpbmcgQ1NSRiB0b2tlbi4iKX0pXTpbMyw4XTtjYXNlIDY6cmV0dXJuIFAuc2VudCgpLFs0LHooKS5jYXRjaChmdW5jdGlvbihWKXt0aHJvdygwLG9lLnByZWZpeE1lc3NhZ2UpKFYsIkVycm9y''@;'; + put 'put ''IHdoaWxlIGV4ZWN1dGluZyBjYWxsYmFjayBpbiBoYW5kbGVFcnJvci4gIil9KV07Y2FzZSA3OnJldHVyblsyLFAuc2VudCgpXTtjYXNlIDg6cmV0dXJuIDQwMyE9PShudWxsPT10ZT92b2lkIDA6dGUuc3RhdHVzKSYmNDQ5IT09KG51bGw9PXRlP3ZvaWQgMDp0ZS5zdGF0dXMpP1szLDExXToo''@;'; + put 'put ''dGhpcy5wYXJzZUFuZFNldENzcmZUb2tlbih0ZSksdGhpcy5jc3JmVG9rZW4uaGVhZGVyTmFtZSYmdGhpcy5jc3JmVG9rZW4udmFsdWU/WzQseigpLmNhdGNoKGZ1bmN0aW9uKFYpe3Rocm93KDAsb2UucHJlZml4TWVzc2FnZSkoViwiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIGNhbGxiYWNrIGlu''@;'; + put 'put ''IGhhbmRsZUVycm9yLiAiKX0pXTpbMywxMF0pO2Nhc2UgOTpyZXR1cm5bMixQLnNlbnQoKV07Y2FzZSAxMDp0aHJvdyBPO2Nhc2UgMTE6aWYoNDA0PT09KG51bGw9PXRlP3ZvaWQgMDp0ZS5zdGF0dXMpKXRocm93IG5ldyBKLk5vdEZvdW5kRXJyb3IodGUuY29uZmlnLnVybCk7aWYoNTAyPT09''@;'; + put 'put ''KG51bGw9PXRlP3ZvaWQgMDp0ZS5zdGF0dXMpKXtpZihuZSl0aHJvdyBuZXcgSi5JbnRlcm5hbFNlcnZlckVycm9yO3JldHVyblsyXX1QLmxhYmVsPTEyO2Nhc2UgMTI6dGhyb3cgTy5pc0F4aW9zRXJyb3ImJiJVTkFCTEVfVE9fVkVSSUZZX0xFQUZfU0lHTkFUVVJFIj09PU8uY29kZT9uZXcg''@;'; + put 'put ''Si5DZXJ0aWZpY2F0ZUVycm9yKE8ubWVzc2FnZSk6Ty5tZXNzYWdlP086KDAsb2UucHJlZml4TWVzc2FnZSkoTywiRXJyb3Igd2hpbGUgaGFuZGxpbmcgZXJyb3IuICIpfX0pfSl9LHRoaXMuY3JlYXRlSHR0cENsaWVudChJZSxUZSksRWUmJih0aGlzLnJlcXVlc3RzTGltaXQ9RWUpfXJldHVy''@;'; + put 'put ''biBTZS5wcm90b3R5cGUuc2V0Q29uZmlnPWZ1bmN0aW9uKEllLFRlKXt0aGlzLmNyZWF0ZUh0dHBDbGllbnQoSWUsVGUpfSxTZS5wcm90b3R5cGUuc2F2ZUxvY2FsU3RvcmFnZVRva2VuPWZ1bmN0aW9uKEllLFRlKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiYWNjZXNzVG9rZW4iLEllKSxsb2Nh''@;'; + put 'put ''bFN0b3JhZ2Uuc2V0SXRlbSgicmVmcmVzaFRva2VuIixUZSl9LFNlLnByb3RvdHlwZS5nZXRDc3JmVG9rZW49ZnVuY3Rpb24oSWUpe3JldHVybiB2b2lkIDA9PT1JZSYmKEllPSJnZW5lcmFsIiksImZpbGUiPT09SWU/dGhpcy5maWxlVXBsb2FkQ3NyZlRva2VuOnRoaXMuY3NyZlRva2VufSxT''@;'; + put 'put ''ZS5wcm90b3R5cGUuY2xlYXJDc3JmVG9rZW5zPWZ1bmN0aW9uKCl7dGhpcy5jc3JmVG9rZW49e2hlYWRlck5hbWU6IiIsdmFsdWU6IiJ9LHRoaXMuZmlsZVVwbG9hZENzcmZUb2tlbj17aGVhZGVyTmFtZToiIix2YWx1ZToiIn19LFNlLnByb3RvdHlwZS5jbGVhckxvY2FsU3RvcmFnZVRva2Vu''@;'; + put 'put ''cz1mdW5jdGlvbigpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJhY2Nlc3NUb2tlbiIsIiIpLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJyZWZyZXNoVG9rZW4iLCIiKX0sU2UucHJvdG90eXBlLmdldEJhc2VVcmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmRlZmF1bHRzLmJhc2VV''@;'; + put 'put ''Ukx8fCIifSxTZS5wcm90b3R5cGUuYXBwZW5kUmVxdWVzdD1mdW5jdGlvbihJZSxUZSxFZSl7dmFyIGhlLE8sej0iIixuZT0iIix0ZT1udWxsO2lmKEVlKWlmKG51bGwhPUllJiZJZS5sb2cpej0oMCxkZS5wYXJzZVNvdXJjZUNvZGUpKEllLmxvZyksbmU9KDAsZGUucGFyc2VHZW5lcmF0ZWRD''@;'; + put 'put ''b2RlKShJZS5sb2cpLHRlPW51bGwhPUllJiZJZS5yZXN1bHQ/SWUucmVzdWx0LldPUks6SWUubG9nO2Vsc2UgaWYobnVsbCE9PShoZT1udWxsPT1JZT92b2lkIDA6SWUucmVzdWx0KSYmdm9pZCAwIT09aGUmJmhlLmxvZyl7dmFyIHg9IiI7InN0cmluZyIhPXR5cGVvZiB4JiYoeD1JZS5yZXN1''@;'; + put 'put ''bHQubG9nLm1hcChmdW5jdGlvbihWKXtyZXR1cm4gVi5saW5lfSkuam9pbigiXG4iKSksej0oMCxkZS5wYXJzZVNvdXJjZUNvZGUpKHgpLG5lPSgwLGRlLnBhcnNlR2VuZXJhdGVkQ29kZSkoeCksdGU9bnVsbCE9PShPPW51bGw9PUllP3ZvaWQgMDpJZS5yZXN1bHQpJiZ2b2lkIDAhPT1PJiZP''@;'; + put 'put ''Ll93ZWJvdXQ/SWUucmVzdWx0Ll93ZWJvdXQuV09SSzp4fWVsc2UgbnVsbCE9SWUmJkllLnJlc3VsdCYmKHo9KDAsZGUucGFyc2VTb3VyY2VDb2RlKShJZS5yZXN1bHQpLG5lPSgwLGRlLnBhcnNlR2VuZXJhdGVkQ29kZSkoSWUucmVzdWx0KSx0ZT1JZS5yZXN1bHQuV09SSyk7dmFyIFA9InN0''@;'; + put 'put ''cmluZyI9PXR5cGVvZihudWxsPT1JZT92b2lkIDA6SWUucmVzdWx0KT9udWxsPT1JZT92b2lkIDA6SWUucmVzdWx0OkpTT04uc3RyaW5naWZ5KG51bGw9PUllP3ZvaWQgMDpJZS5yZXN1bHQsbnVsbCwyKTt0aGlzLnJlcXVlc3RzLnB1c2goe2xvZ0ZpbGU6KG51bGw9PUllP3ZvaWQgMDpJZS5s''@;'; + put 'put ''b2cpfHxQfHxJZSxzZXJ2aWNlTGluazpUZSx0aW1lc3RhbXA6bmV3IERhdGUsc291cmNlQ29kZTp6LGdlbmVyYXRlZENvZGU6bmUsU0FTV09SSzp0ZX0pLHRoaXMucmVxdWVzdHMubGVuZ3RoPnRoaXMucmVxdWVzdHNMaW1pdCYmdGhpcy5yZXF1ZXN0cy5zcGxpY2UoMCwxKX0sU2UucHJvdG90''@;'; + put 'put ''eXBlLmdldD1mdW5jdGlvbihJZSxUZSxFZSxoZSxPKXtyZXR1cm4gdm9pZCAwPT09RWUmJihFZT0iYXBwbGljYXRpb24vanNvbiIpLHZvaWQgMD09PWhlJiYoaGU9e30pLHZvaWQgMD09PU8mJihPPSExKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6LG5lLHRlPXRoaXM7''@;'; + put 'put ''cmV0dXJuIE4odGhpcyxmdW5jdGlvbih4KXtyZXR1cm4gej1ZKFkoe30sdGhpcy5nZXRIZWFkZXJzKFRlLEVlKSksaGUpLG5lPXtoZWFkZXJzOnoscmVzcG9uc2VUeXBlOiJ0ZXh0L3BsYWluIj09PUVlPyJ0ZXh0IjoianNvbiIsd2l0aENyZWRlbnRpYWxzOiEwfSwidGV4dC9wbGFpbiI9PT1F''@;'; + put 'put ''ZSYmKG5lLnRyYW5zZm9ybVJlc3BvbnNlPXZvaWQgMCksWzIsdGhpcy5odHRwQ2xpZW50LmdldChJZSxuZSkudGhlbihmdW5jdGlvbihQKXtyZXR1cm4oMCxRLnRocm93SWZFcnJvcikoUCksdGUucGFyc2VSZXNwb25zZShQKX0pLmNhdGNoKGZ1bmN0aW9uKFApe3JldHVybiBXKHRlLHZvaWQg''@;'; + put 'put ''MCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgVj10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oVCl7c3dpdGNoKFQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmhhbmRsZUVycm9yKFAsZnVuY3Rpb24oKXtyZXR1cm4gVi5nZXQoSWUsVGUsRWUsaGUpLmNhdGNoKGZ1bmN0aW9uKFMpe3Ro''@;'; + put 'put ''cm93KDAsb2UucHJlZml4TWVzc2FnZSkoUywiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIGhhbmRsZSBlcnJvciBjYWxsYmFjay4gIil9KX0sTyldO2Nhc2UgMTpyZXR1cm5bMixULnNlbnQoKV19fSl9KX0pXX0pfSl9LFNlLnByb3RvdHlwZS5wb3N0PWZ1bmN0aW9uKEllLFRlLEVlLGhlLE8seil7''@;'; + put 'put ''cmV0dXJuIHZvaWQgMD09PWhlJiYoaGU9ImFwcGxpY2F0aW9uL2pzb24iKSx2b2lkIDA9PT1PJiYoTz17fSksdm9pZCAwPT09eiYmKHo9e30pLFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG5lLHRlPXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbih4KXtyZXR1cm4gbmU9''@;'; + put 'put ''WShZKHt9LHRoaXMuZ2V0SGVhZGVycyhFZSxoZSkpLE8pLFsyLHRoaXMuaHR0cENsaWVudC5wb3N0KEllLFRlLFkoe2hlYWRlcnM6bmUsd2l0aENyZWRlbnRpYWxzOiEwfSx6KSkudGhlbihmdW5jdGlvbihQKXtyZXR1cm4oMCxRLnRocm93SWZFcnJvcikoUCksdGUucGFyc2VSZXNwb25zZShQ''@;'; + put 'put ''KX0pLmNhdGNoKGZ1bmN0aW9uKFApe3JldHVybiBXKHRlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgVj10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oVCl7c3dpdGNoKFQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmhhbmRsZUVycm9yKFAsZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''Vi5wb3N0KEllLFRlLEVlLGhlLE8pfSldO2Nhc2UgMTpyZXR1cm5bMixULnNlbnQoKV19fSl9KX0pXX0pfSl9LFNlLnByb3RvdHlwZS5wdXQ9ZnVuY3Rpb24oSWUsVGUsRWUsaGUpe3JldHVybiB2b2lkIDA9PT1oZSYmKGhlPXt9KSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciBPLHo9dGhpcztyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKG5lKXtyZXR1cm4gTz1ZKFkoe30sdGhpcy5nZXRIZWFkZXJzKEVlLCJhcHBsaWNhdGlvbi9qc29uIikpLGhlKSxbMix0aGlzLmh0dHBDbGllbnQucHV0KEllLFRlLHtoZWFkZXJzOk8sd2l0aENyZWRlbnRpYWxzOiEwfSkudGhlbihm''@;'; + put 'put ''dW5jdGlvbih0ZSl7cmV0dXJuKDAsUS50aHJvd0lmRXJyb3IpKHRlKSx6LnBhcnNlUmVzcG9uc2UodGUpfSkuY2F0Y2goZnVuY3Rpb24odGUpe3JldHVybiBXKHosdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB4PXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihQKXtzd2l0Y2goUC5s''@;'; + put 'put ''YWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuaGFuZGxlRXJyb3IodGUsZnVuY3Rpb24oKXtyZXR1cm4geC5wdXQoSWUsVGUsRWUsaGUpfSldO2Nhc2UgMTpyZXR1cm5bMixQLnNlbnQoKV19fSl9KX0pXX0pfSl9LFNlLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oSWUsVGUpe3JldHVybiBX''@;'; + put 'put ''KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBFZSxoZT10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oTyl7cmV0dXJuIEVlPXRoaXMuZ2V0SGVhZGVycyhUZSwiYXBwbGljYXRpb24vanNvbiIpLFsyLHRoaXMuaHR0cENsaWVudC5kZWxldGUoSWUse2hlYWRlcnM6RWUsd2l0''@;'; + put 'put ''aENyZWRlbnRpYWxzOiEwfSkudGhlbihmdW5jdGlvbih6KXtyZXR1cm4oMCxRLnRocm93SWZFcnJvcikoeiksaGUucGFyc2VSZXNwb25zZSh6KX0pLmNhdGNoKGZ1bmN0aW9uKHope3JldHVybiBXKGhlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbmU9dGhpcztyZXR1cm4gTih0aGlz''@;'; + put 'put ''LGZ1bmN0aW9uKHRlKXtzd2l0Y2godGUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmhhbmRsZUVycm9yKHosZnVuY3Rpb24oKXtyZXR1cm4gbmUuZGVsZXRlKEllLFRlKX0pXTtjYXNlIDE6cmV0dXJuWzIsdGUuc2VudCgpXX19KX0pfSldfSl9KX0sU2UucHJvdG90eXBlLnBhdGNoPWZ1''@;'; + put 'put ''bmN0aW9uKEllLFRlLEVlKXtyZXR1cm4gdm9pZCAwPT09VGUmJihUZT17fSksVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaGUsTz10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oeil7cmV0dXJuIGhlPXRoaXMuZ2V0SGVhZGVycyhFZSwiYXBwbGljYXRpb24vanNvbiIp''@;'; + put 'put ''LFsyLHRoaXMuaHR0cENsaWVudC5wYXRjaChJZSxUZSx7aGVhZGVyczpoZSx3aXRoQ3JlZGVudGlhbHM6ITB9KS50aGVuKGZ1bmN0aW9uKG5lKXtyZXR1cm4oMCxRLnRocm93SWZFcnJvcikobmUpLE8ucGFyc2VSZXNwb25zZShuZSl9KS5jYXRjaChmdW5jdGlvbihuZSl7cmV0dXJuIFcoTyx2''@;'; + put 'put ''b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHRlPXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbih4KXtzd2l0Y2goeC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuaGFuZGxlRXJyb3IobmUsZnVuY3Rpb24oKXtyZXR1cm4gdGUucGF0Y2goSWUsVGUsRWUpfSldO2Nhc2UgMTpyZXR1''@;'; + put 'put ''cm5bMix4LnNlbnQoKV19fSl9KX0pXX0pfSl9LFNlLnByb3RvdHlwZS51cGxvYWRGaWxlPWZ1bmN0aW9uKEllLFRlLEVlKXt2YXIgaGU7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIE8seixuZTtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKHRlKXtzd2l0Y2godGUu''@;'; + put 'put ''bGFiZWwpe2Nhc2UgMDpPPXRoaXMuZ2V0SGVhZGVycyhFZSwiYXBwbGljYXRpb24vanNvbiIpLCEobnVsbD09PShoZT10aGlzLmZpbGVVcGxvYWRDc3JmVG9rZW4pfHx2b2lkIDA9PT1oZSkmJmhlLnZhbHVlJiYoT1t0aGlzLmZpbGVVcGxvYWRDc3JmVG9rZW4uaGVhZGVyTmFtZV09dGhpcy5m''@;'; + put 'put ''aWxlVXBsb2FkQ3NyZlRva2VuLnZhbHVlKSx0ZS5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdGUudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCx0aGlzLmh0dHBDbGllbnQucG9zdChJZSxUZSx7aGVhZGVyczpPLHRyYW5zZm9ybVJlcXVlc3Q6ZnVuY3Rpb24oeCl7cmV0dXJuIHh9fSldO2Nhc2UgMjpy''@;'; + put 'put ''ZXR1cm5bMix7cmVzdWx0OihuZT10ZS5zZW50KCkpLmRhdGEsZXRhZzpuZS5oZWFkZXJzLmV0YWd9XTtjYXNlIDM6aWYoej10ZS5zZW50KCksNDAzPT09KG51bGw9PShuZT16LnJlc3BvbnNlKT92b2lkIDA6bmUuc3RhdHVzKXx8NDQ5PT09KG51bGw9PW5lP3ZvaWQgMDpuZS5zdGF0dXMpKXtp''@;'; + put 'put ''Zih0aGlzLnBhcnNlQW5kU2V0RmlsZVVwbG9hZENzcmZUb2tlbihuZSksdGhpcy5maWxlVXBsb2FkQ3NyZlRva2VuKXJldHVyblsyLHRoaXMudXBsb2FkRmlsZShJZSxUZSxFZSldO3Rocm93IHp9dGhyb3cgejtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LFNlLnByb3RvdHlwZS5wYXJzZVJlc3Bv''@;'; + put 'put ''bnNlPWZ1bmN0aW9uKEllKXt2YXIgVGUsRWU9bnVsbCE9SWUmJkllLmhlYWRlcnM/SWUuaGVhZGVycy5ldGFnOiIiLGhlPSExO3RyeXtUZT0ic3RyaW5nIj09dHlwZW9mIEllLmRhdGE/SlNPTi5wYXJzZShJZS5kYXRhKTpJZS5kYXRhfWNhdGNoKHope3RyeXtUZT1KU09OLnBhcnNlKCgwLHNl''@;'; + put 'put ''LnBhcnNlV2Vib3V0UmVzcG9uc2UpKEllLmRhdGEpKX1jYXRjaChuZSl7VGU9SWUuZGF0YX1oZT0hMH12YXIgTz17cmVzdWx0OlRlLGV0YWc6RWUsc3RhdHVzOkllLnN0YXR1c307cmV0dXJuIGhlJiYoTy5sb2c9SWUuZGF0YSksT30sU2UucHJvdG90eXBlLmNyZWF0ZUh0dHBDbGllbnQ9ZnVu''@;'; + put 'put ''Y3Rpb24oSWUsVGUpe3ZhciBFZT1UZT9uZXcgZWUuQWdlbnQoVGUpOnZvaWQgMDt0aGlzLmh0dHBDbGllbnQ9KDAsZGUuY3JlYXRlQXhpb3NJbnN0YW5jZSkoSWUsRWUpLHRoaXMuaHR0cENsaWVudC5kZWZhdWx0cy52YWxpZGF0ZVN0YXR1cz1mdW5jdGlvbihoZSl7cmV0dXJuIGhlPj0yMDAm''@;'; + put 'put ''JmhlPD00MDF9fSxTZX0oKTtRLlJlcXVlc3RDbGllbnQ9QWUsUS50aHJvd0lmRXJyb3I9ZnVuY3Rpb24oU2Upe3ZhciBJZSxUZSxFZSxoZSxPLHosbmU7c3dpdGNoKFNlLnN0YXR1cyl7Y2FzZSA0MDA6aWYoIm9iamVjdCI9PXR5cGVvZiBTZS5kYXRhJiYiaW52YWxpZF9ncmFudCI9PT1TZS5k''@;'; + put 'put ''YXRhLmVycm9yKXRocm93IG5ldyBKLkxvZ2luUmVxdWlyZWRFcnJvcihTZS5kYXRhKTtpZigic3RyaW5nIj09dHlwZW9mIFNlLmRhdGEmJiJpbnZhbGlkIGNzcmYgdG9rZW4hIj09PVNlLmRhdGEudG9Mb3dlckNhc2UoKSl0aHJvdyBuZXcgdmUuSW52YWxpZFNBU2pzQ3NyZkVycm9yO2JyZWFr''@;'; + put 'put ''O2Nhc2UgNDAxOnRocm93Im9iamVjdCI9PXR5cGVvZiBTZS5kYXRhP25ldyBKLkxvZ2luUmVxdWlyZWRFcnJvcihTZS5kYXRhKTpuZXcgSi5Mb2dpblJlcXVpcmVkRXJyb3J9aWYobnVsbCE9PShUZT1udWxsPT09KEllPVNlLmRhdGEpfHx2b2lkIDA9PT1JZT92b2lkIDA6SWUuZW50aXR5SUQp''@;'; + put 'put ''JiZ2b2lkIDAhPT1UZSYmVGUuaW5jbHVkZXMoImxvZ2luIikpdGhyb3cgbmV3IEouTG9naW5SZXF1aXJlZEVycm9yO2lmKCJzdHJpbmciPT10eXBlb2YgU2UuZGF0YSYmKDAscS5pc0F1dGhvcml6ZUZvcm1SZXF1aXJlZCkoU2UuZGF0YSkpdGhyb3cgbmV3IEouQXV0aG9yaXplRXJyb3IoIkF1''@;'; + put 'put ''dGhvcml6YXRpb24gcmVxdWlyZWQiLFNlLnJlcXVlc3QucmVzcG9uc2VVUkwpO2lmKCJzdHJpbmciPT10eXBlb2YgU2UuZGF0YSYmKDAscS5pc0xvZ0luUmVxdWlyZWQpKFNlLmRhdGEpJiYobnVsbD09PShoZT1udWxsPT09KEVlPVNlLmNvbmZpZyl8fHZvaWQgMD09PUVlP3ZvaWQgMDpFZS51''@;'; + put 'put ''cmwpfHx2b2lkIDA9PT1oZXx8IWhlLmluY2x1ZGVzKCIvU0FTTG9nb24vbG9naW4iKSkpdGhyb3cgbmV3IEouTG9naW5SZXF1aXJlZEVycm9yO2lmKG51bGwhPT0oTz1TZS5kYXRhKSYmdm9pZCAwIT09TyYmTy5hdXRoX3JlcXVlc3QpdGhyb3cgbmV3IEouQXV0aG9yaXplRXJyb3IoU2UuZGF0''@;'; + put 'put ''YS5tZXNzYWdlLFNlLnJlcXVlc3QucmVzcG9uc2VVUkwpO2lmKG51bGwhPT0obmU9bnVsbD09PSh6PVNlLmNvbmZpZyl8fHZvaWQgMD09PXo/dm9pZCAwOnoudXJsKSYmdm9pZCAwIT09bmUmJm5lLmluY2x1ZGVzKCJzYXNBdXRoRXJyb3IiKSl0aHJvdyBuZXcgY2UuU0FTOUF1dGhFcnJvcjt2''@;'; + put 'put ''YXIgeD1rZShTZS5kYXRhKTtpZih4KXRocm93IHh9O3ZhciBrZT1mdW5jdGlvbihTZSl7aWYoIVNlKXJldHVybiBudWxsO3RyeXt2YXIgSWU9SlNPTi5wYXJzZShudWxsPT1TZT92b2lkIDA6U2UucmVwbGFjZSgvW1xuXHJdL2csIiAiKSk7aWYoSWUuZXJyb3JDb2RlJiZJZS5tZXNzYWdlKXJl''@;'; + put 'put ''dHVybiBuZXcgSi5Kb2JFeGVjdXRpb25FcnJvcihJZS5lcnJvckNvZGUsSWUubWVzc2FnZSxudWxsPT1TZT92b2lkIDA6U2UucmVwbGFjZSgvW1xuXHJdL2csIiAiKSl9Y2F0Y2godGUpe310cnl7aWYobnVsbCE9U2UmJlNlLmluY2x1ZGVzKCd7ImVycm9yQ29kZScpJiYoej1TZS5zcGxpdCgn''@;'; + put 'put ''eyJlcnJvckNvZGUnKSkubGVuZ3RoPjEpe3ZhciBUZT0neyJlcnJvckNvZGUnK3pbMV0uc3BsaXQoJyJ9JylbMF0rJyJ9JyxFZT1KU09OLnBhcnNlKFRlLnJlcGxhY2UoL1tcblxyXS9nLCIgIikpO3JldHVybiBuZXcgSi5Kb2JFeGVjdXRpb25FcnJvcihFZS5lcnJvckNvZGUsRWUubWVzc2Fn''@;'; + put 'put ''ZSxudWxsPT1TZT92b2lkIDA6U2UucmVwbGFjZSgvW1xuXHJdL2csIlxuIikpfX1jYXRjaCh0ZSl7fXRyeXtpZihudWxsIT1TZSYmU2UubWF0Y2goL3N0b3JlZCBwcm9jZXNzIG5vdCBmb3VuZDogL2kpJiYoej1TZS5zcGxpdCgvc3RvcmVkIHByb2Nlc3Mgbm90IGZvdW5kOiAvaSkpLmxlbmd0''@;'; + put 'put ''aD4xKXt2YXIgaGU9elsxXS5zcGxpdCgiPGk+IilbMV0uc3BsaXQoIjwvaT4iKVswXSxPPSJTdG9yZWQgcHJvY2VzcyBub3QgZm91bmQ6ICIuY29uY2F0KGhlKTtyZXR1cm4gbmV3IEouSm9iRXhlY3V0aW9uRXJyb3IoNTAwLE8sIiIpfX1jYXRjaCh0ZSl7fXRyeXt2YXIgejtpZigobnVsbD09''@;'; + put 'put ''U2V8fCFTZS5tYXRjaCgvPj53ZWJvdXRCRUdJTjw8LykpJiZudWxsIT1TZSYmU2UubWF0Y2goL1N0b3JlZCBQcm9jZXNzIEVycm9yL2kpJiZudWxsIT1TZSYmU2UubWF0Y2goL1RoaXMgcmVxdWVzdCBjb21wbGV0ZWQgd2l0aCBlcnJvcnMuL2kpJiYoej1TZS5zcGxpdCgiPGgyPlNBUyBMb2c8''@;'; + put 'put ''L2gyPiIpKS5sZW5ndGg+MSl7dmFyIG5lPXpbMV0uc3BsaXQoIjxwcmU+IilbMV0uc3BsaXQoIjwvcHJlPiIpWzBdO3JldHVybiBuZXcgSi5Kb2JFeGVjdXRpb25FcnJvcig1MDAsTz0iVGhpcyByZXF1ZXN0IGNvbXBsZXRlZCB3aXRoIGVycm9ycy4iLG5lKX19Y2F0Y2godGUpe31yZXR1cm4g''@;'; + put 'put ''bnVsbH19LDc5NTpmdW5jdGlvbihVLFEsWil7InVzZSBzdHJpY3QiO3ZhciBpZSxsZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGllPWZ1bmN0aW9uKGNlLGRlKXtyZXR1cm4oaWU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9u''@;'; + put 'put ''KHZlLEFlKXt2ZS5fX3Byb3RvX189QWV9fHxmdW5jdGlvbih2ZSxBZSl7Zm9yKHZhciBrZSBpbiBBZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQWUsa2UpJiYodmVba2VdPUFlW2tlXSl9KShjZSxkZSl9LGZ1bmN0aW9uKGNlLGRlKXtpZigiZnVuY3Rpb24iIT10eXBl''@;'; + put 'put ''b2YgZGUmJm51bGwhPT1kZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKGRlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiB2ZSgpe3RoaXMuY29uc3RydWN0b3I9Y2V9aWUoY2UsZGUpLGNlLnByb3RvdHlwZT1udWxs''@;'; + put 'put ''PT09ZGU/T2JqZWN0LmNyZWF0ZShkZSk6KHZlLnByb3RvdHlwZT1kZS5wcm90b3R5cGUsbmV3IHZlKX0pLFk9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gWT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihjZSl7Zm9yKHZhciBkZSx2ZT0xLEFlPWFyZ3VtZW50cy5sZW5n''@;'; + put 'put ''dGg7dmU8QWU7dmUrKylmb3IodmFyIGtlIGluIGRlPWFyZ3VtZW50c1t2ZV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRlLGtlKSYmKGNlW2tlXT1kZVtrZV0pO3JldHVybiBjZX0sWS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFc9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8''@;'; + put 'put ''fGZ1bmN0aW9uKGNlLGRlLHZlLEFlKXtyZXR1cm4gbmV3KHZlfHwodmU9UHJvbWlzZSkpKGZ1bmN0aW9uKGtlLFNlKXtmdW5jdGlvbiBJZShoZSl7dHJ5e0VlKEFlLm5leHQoaGUpKX1jYXRjaChPKXtTZShPKX19ZnVuY3Rpb24gVGUoaGUpe3RyeXtFZShBZS50aHJvdyhoZSkpfWNhdGNoKE8p''@;'; + put 'put ''e1NlKE8pfX1mdW5jdGlvbiBFZShoZSl7dmFyIE87aGUuZG9uZT9rZShoZS52YWx1ZSk6KE89aGUudmFsdWUsTyBpbnN0YW5jZW9mIHZlP086bmV3IHZlKGZ1bmN0aW9uKHope3ooTyl9KSkudGhlbihJZSxUZSl9RWUoKEFlPUFlLmFwcGx5KGNlLGRlfHxbXSkpLm5leHQoKSl9KX0sTj10aGlz''@;'; + put 'put ''JiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihjZSxkZSl7dmFyIHZlLEFlLGtlLFNlLEllPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmtlWzBdKXRocm93IGtlWzFdO3JldHVybiBrZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBTZT17bmV4dDpUZSgwKSx0aHJvdzpUZSgx''@;'; + put 'put ''KSxyZXR1cm46VGUoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihTZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxTZTtmdW5jdGlvbiBUZShFZSl7cmV0dXJuIGZ1bmN0aW9uKGhlKXtyZXR1cm4gZnVuY3Rpb24oTyl7aWYodmUpdGhyb3cgbmV3IFR5''@;'; + put 'put ''cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7SWU7KXRyeXtpZih2ZT0xLEFlJiYoa2U9MiZPWzBdP0FlLnJldHVybjpPWzBdP0FlLnRocm93fHwoKGtlPUFlLnJldHVybikmJmtlLmNhbGwoQWUpLDApOkFlLm5leHQpJiYhKGtlPWtlLmNhbGwoQWUsT1sx''@;'; + put 'put ''XSkpLmRvbmUpcmV0dXJuIGtlO3N3aXRjaChBZT0wLGtlJiYoTz1bMiZPWzBdLGtlLnZhbHVlXSksT1swXSl7Y2FzZSAwOmNhc2UgMTprZT1PO2JyZWFrO2Nhc2UgNDpyZXR1cm4gSWUubGFiZWwrKyx7dmFsdWU6T1sxXSxkb25lOiExfTtjYXNlIDU6SWUubGFiZWwrKyxBZT1PWzFdLE89WzBd''@;'; + put 'put ''O2NvbnRpbnVlO2Nhc2UgNzpPPUllLm9wcy5wb3AoKSxJZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoa2U9KGtlPUllLnRyeXMpLmxlbmd0aD4wJiZrZVtrZS5sZW5ndGgtMV0pfHw2IT09T1swXSYmMiE9PU9bMF0pKXtJZT0wO2NvbnRpbnVlfWlmKDM9PT1PWzBdJiYoIWtl''@;'; + put 'put ''fHxPWzFdPmtlWzBdJiZPWzFdPGtlWzNdKSl7SWUubGFiZWw9T1sxXTticmVha31pZig2PT09T1swXSYmSWUubGFiZWw8a2VbMV0pe0llLmxhYmVsPWtlWzFdLGtlPU87YnJlYWt9aWYoa2UmJkllLmxhYmVsPGtlWzJdKXtJZS5sYWJlbD1rZVsyXSxJZS5vcHMucHVzaChPKTticmVha31rZVsy''@;'; + put 'put ''XSYmSWUub3BzLnBvcCgpLEllLnRyeXMucG9wKCk7Y29udGludWV9Tz1kZS5jYWxsKGNlLEllKX1jYXRjaCh6KXtPPVs2LHpdLEFlPTB9ZmluYWxseXt2ZT1rZT0wfWlmKDUmT1swXSl0aHJvdyBPWzFdO3JldHVybnt2YWx1ZTpPWzBdP09bMV06dm9pZCAwLGRvbmU6ITB9fShbRWUsaGVdKX19''@;'; + put 'put ''fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5TYXM5UmVxdWVzdENsaWVudD12b2lkIDA7dmFyIGVlPVooODIyNCkscT1aKDc4NTcpLEo9Wig5Nzc4KSxzZT1aKDQ1ODgpLG9lPWZ1bmN0aW9uKGNlKXtmdW5jdGlvbiBkZSh2ZSxBZSl7dmFyIGtl''@;'; + put 'put ''PWNlLmNhbGwodGhpcyx2ZSxBZSl8fHRoaXM7cmV0dXJuIGtlLmh0dHBDbGllbnQuZGVmYXVsdHMubWF4UmVkaXJlY3RzPTAsa2UuaHR0cENsaWVudC5kZWZhdWx0cy52YWxpZGF0ZVN0YXR1cz1mdW5jdGlvbihTZSl7cmV0dXJuIFNlPj0yMDAmJlNlPDMwM30sZWUuZGVmYXVsdCYmKCgwLGVl''@;'; + put 'put ''LmRlZmF1bHQpKGtlLmh0dHBDbGllbnQpLGtlLmh0dHBDbGllbnQuZGVmYXVsdHMuamFyPW5ldyBxLkNvb2tpZUphciksa2V9cmV0dXJuIGxlKGRlLGNlKSxkZS5wcm90b3R5cGUubG9naW49ZnVuY3Rpb24odmUsQWUsa2Upe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigp''@;'; + put 'put ''e3ZhciBTZTtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKEllKXtzd2l0Y2goSWUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gU2U9Ii9Vc2VyIEZvbGRlcnMvIi5jb25jYXQodmUsIi9NeSBGb2xkZXIvc2FzanMvcnVubmVyIiksdGhpcy5odHRwQ2xpZW50LmRlZmF1bHRzLmphcj8odGhpcy5odHRwQ2xp''@;'; + put 'put ''ZW50LmRlZmF1bHRzLmphci5yZW1vdmVBbGxDb29raWVzKCksWzQsdGhpcy5nZXQoIiIuY29uY2F0KGtlLCI/X3Byb2dyYW09IikuY29uY2F0KFNlLCImX3VzZXJuYW1lPSIpLmNvbmNhdCh2ZSwiJl9wYXNzd29yZD0iKS5jb25jYXQoQWUpLHZvaWQgMCwidGV4dC9wbGFpbiIpXSk6WzMsMl07''@;'; + put 'put ''Y2FzZSAxOkllLnNlbnQoKSxJZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMl19fSl9KX0sZGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih2ZSxBZSxrZSxTZSxJZSl7cmV0dXJuIHZvaWQgMD09PWtlJiYoa2U9ImFwcGxpY2F0aW9uL2pzb24iKSx2b2lkIDA9PT1TZSYmKFNlPXt9KSx2b2lkIDA9''@;'; + put 'put ''PT1JZSYmKEllPSExKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBUZSxFZSxoZT10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oTyl7cmV0dXJuIFRlPVkoWSh7fSx0aGlzLmdldEhlYWRlcnMoQWUsa2UpKSxTZSksRWU9e2hlYWRlcnM6VGUscmVzcG9uc2VUeXBlOiJ0''@;'; + put 'put ''ZXh0L3BsYWluIj09PWtlPyJ0ZXh0IjoianNvbiIsd2l0aENyZWRlbnRpYWxzOiEwfSwidGV4dC9wbGFpbiI9PT1rZSYmKEVlLnRyYW5zZm9ybVJlc3BvbnNlPXZvaWQgMCksWzIsdGhpcy5odHRwQ2xpZW50LmdldCh2ZSxFZSkudGhlbihmdW5jdGlvbih6KXtyZXR1cm4gMzAyPT09ei5zdGF0''@;'; + put 'put ''dXM/aGUuZ2V0KHouaGVhZGVycy5sb2NhdGlvbixBZSxrZSk6KCgwLHNlLnRocm93SWZFcnJvcikoeiksaGUucGFyc2VSZXNwb25zZSh6KSl9KS5jYXRjaChmdW5jdGlvbih6KXtyZXR1cm4gVyhoZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG5lPXRoaXM7cmV0dXJuIE4odGhpcyxm''@;'; + put 'put ''dW5jdGlvbih0ZSl7c3dpdGNoKHRlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5oYW5kbGVFcnJvcih6LGZ1bmN0aW9uKCl7cmV0dXJuIG5lLmdldCh2ZSxBZSxrZSxTZSkuY2F0Y2goZnVuY3Rpb24oeCl7dGhyb3coMCxKLnByZWZpeE1lc3NhZ2UpKHgsIkVycm9yIHdoaWxlIGV4ZWN1''@;'; + put 'put ''dGluZyBoYW5kbGUgZXJyb3IgY2FsbGJhY2suICIpfSl9LEllKS5jYXRjaChmdW5jdGlvbih4KXt0aHJvdygwLEoucHJlZml4TWVzc2FnZSkoeCwiRXJyb3Igd2hpbGUgaGFuZGxpbmcgZXJyb3IuICIpfSldO2Nhc2UgMTpyZXR1cm5bMix0ZS5zZW50KCldfX0pfSl9KV19KX0pfSxkZS5wcm90''@;'; + put 'put ''b3R5cGUucG9zdD1mdW5jdGlvbih2ZSxBZSxrZSxTZSxJZSl7cmV0dXJuIHZvaWQgMD09PVNlJiYoU2U9ImFwcGxpY2F0aW9uL2pzb24iKSx2b2lkIDA9PT1JZSYmKEllPXt9KSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBUZSxFZT10aGlzO3JldHVybiBOKHRoaXMsZnVu''@;'; + put 'put ''Y3Rpb24oaGUpe3JldHVybiBUZT1ZKFkoe30sdGhpcy5nZXRIZWFkZXJzKGtlLFNlKSksSWUpLFsyLHRoaXMuaHR0cENsaWVudC5wb3N0KHZlLEFlLHtoZWFkZXJzOlRlLHdpdGhDcmVkZW50aWFsczohMH0pLnRoZW4oZnVuY3Rpb24oTyl7cmV0dXJuIFcoRWUsdm9pZCAwLHZvaWQgMCxmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm4gMzAyIT09Ty5zdGF0dXM/WzMsMl06WzQsdGhpcy5nZXQoTy5oZWFkZXJzLmxvY2F0aW9uLHZvaWQgMCxTZSxJZSldO2Nhc2UgMTpyZXR1cm5bMix6LnNlbnQoKV07Y2FzZSAyOnJl''@;'; + put 'put ''dHVybigwLHNlLnRocm93SWZFcnJvcikoTyksWzIsdGhpcy5wYXJzZVJlc3BvbnNlKE8pXX19KX0pfSkuY2F0Y2goZnVuY3Rpb24oTyl7cmV0dXJuIFcoRWUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6PXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihuZSl7c3dpdGNoKG5lLmxh''@;'; + put 'put ''YmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5oYW5kbGVFcnJvcihPLGZ1bmN0aW9uKCl7cmV0dXJuIHoucG9zdCh2ZSxBZSxrZSxTZSxJZSl9KV07Y2FzZSAxOnJldHVyblsyLG5lLnNlbnQoKV19fSl9KX0pXX0pfSl9LGRlfShzZS5SZXF1ZXN0Q2xpZW50KTtRLlNhczlSZXF1ZXN0Q2xpZW50''@;'; + put 'put ''PW9lfSwzNjAyOmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllLGxlPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaWU9ZnVuY3Rpb24oVyxOKXtyZXR1cm4oaWU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGVl''@;'; + put 'put ''LHEpe2VlLl9fcHJvdG9fXz1xfXx8ZnVuY3Rpb24oZWUscSl7Zm9yKHZhciBKIGluIHEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHEsSikmJihlZVtKXT1xW0pdKX0pKFcsTil9LGZ1bmN0aW9uKFcsTil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIE4mJm51bGwhPT1OKXRo''@;'; + put 'put ''cm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoTikrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gZWUoKXt0aGlzLmNvbnN0cnVjdG9yPVd9aWUoVyxOKSxXLnByb3RvdHlwZT1udWxsPT09Tj9PYmplY3QuY3JlYXRlKE4pOihl''@;'; + put 'put ''ZS5wcm90b3R5cGU9Ti5wcm90b3R5cGUsbmV3IGVlKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLlNhc2pzUmVxdWVzdENsaWVudD12b2lkIDA7dmFyIFk9ZnVuY3Rpb24oVyl7ZnVuY3Rpb24gTigpe3ZhciBlZT1udWxsIT09VyYmVy5hcHBs''@;'; + put 'put ''eSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIGVlLmdldEhlYWRlcnM9ZnVuY3Rpb24ocSxKKXt2YXIgc2Usb2U9e307cmV0dXJuImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIhPT1KJiYob2VbIkNvbnRlbnQtVHlwZSJdPUopLG9lLkFjY2VwdD0iYXBwbGljYXRpb24v''@;'; + put 'put ''anNvbiI9PT1KP0o6IiovKiIscXx8InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3d8fChxPW51bGwhPT0oc2U9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImFjY2Vzc1Rva2VuIikpJiZ2b2lkIDAhPT1zZT9zZTp2b2lkIDApLHEmJihvZS5BdXRob3JpemF0aW9uPSJCZWFyZXIgIi5jb25jYXQocSkp''@;'; + put 'put ''LG9lfSxlZX1yZXR1cm4gbGUoTixXKSxOfShaKDQ1ODgpLlJlcXVlc3RDbGllbnQpO1EuU2FzanNSZXF1ZXN0Q2xpZW50PVl9LDQ3MDooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDQ2NjY6KFUsUSk9PnsidXNl''@;'; + put 'put ''IHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw2MTc3OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sNTc2NjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDQ5NzU6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSwyMTU6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw0NzgyOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sNDE2ODooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01v''@;'; + put 'put ''ZHVsZSIse3ZhbHVlOiEwfSl9LDg1MTY6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSwzMTUzOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6''@;'; + put 'put ''ITB9KX0sNTg0MTooVSxRKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgWixsZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5Mb2dpbk1lY2hhbmlzbT1RLlNBU2pzQ29uZmlnPXZvaWQgMCxRLlNBU2pzQ29uZmlnPWZ1bmN0aW9uKCl7dGhpcy5zZXJ2ZXJV''@;'; + put 'put ''cmw9IiIsdGhpcy5wYXRoU0FTSlM9IiIsdGhpcy5wYXRoU0FTOT0iIix0aGlzLnBhdGhTQVNWaXlhPSIiLHRoaXMuYXBwTG9jPSIiLHRoaXMuc2VydmVyVHlwZT1udWxsLHRoaXMuZGVidWc9ITAsdGhpcy5jb250ZXh0TmFtZT0iIix0aGlzLnVzZUNvbXB1dGVBcGk9bnVsbCx0aGlzLmxvZ2lu''@;'; + put 'put ''TWVjaGFuaXNtPVouRGVmYXVsdCx0aGlzLnJlcXVlc3RIaXN0b3J5TGltaXQ9MTB9LChsZT1aPVEuTG9naW5NZWNoYW5pc218fChRLkxvZ2luTWVjaGFuaXNtPXt9KSkuRGVmYXVsdD0iRGVmYXVsdCIsbGUuUmVkaXJlY3RlZD0iUmVkaXJlY3RlZCJ9LDI0OTM6KFUsUSk9PnsidXNlIHN0cmlj''@;'; + put 'put ''dCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw2MDM4OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sOTQ5MzooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDg2NTA6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSwxMjQ6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFosaWU9dGhpcyYmdGhp''@;'; + put 'put ''cy5fX2V4dGVuZHN8fChaPWZ1bmN0aW9uKFksVyl7cmV0dXJuKFo9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sZWUpe04uX19wcm90b19fPWVlfXx8ZnVuY3Rpb24oTixlZSl7Zm9yKHZhciBxIGluIGVlKU9iamVjdC5w''@;'; + put 'put ''cm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxxKSYmKE5bcV09ZWVbcV0pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVyYmbnVsbCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5v''@;'; + put 'put ''dCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ZfVooWSxXKSxZLnByb3RvdHlwZT1udWxsPT09Vz9PYmplY3QuY3JlYXRlKFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19l''@;'; + put 'put ''c01vZHVsZSIse3ZhbHVlOiEwfSksUS5BdXRob3JpemVFcnJvcj12b2lkIDA7dmFyIGxlPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFcoTixlZSl7dmFyIHE9WS5jYWxsKHRoaXMsTil8fHRoaXM7cmV0dXJuIHEubWVzc2FnZT1OLHEuY29uZmlybVVybD1lZSxxLm5hbWU9IkF1dGhvcml6ZUVycm9y''@;'; + put 'put ''IixPYmplY3Quc2V0UHJvdG90eXBlT2YocSxXLnByb3RvdHlwZSkscX1yZXR1cm4gaWUoVyxZKSxXfShFcnJvcik7US5BdXRob3JpemVFcnJvcj1sZX0sOTQ2NTpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgWixpZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFo9ZnVuY3Rpb24oWSxX''@;'; + put 'put ''KXtyZXR1cm4oWj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oTixlZSl7Ti5fX3Byb3RvX189ZWV9fHxmdW5jdGlvbihOLGVlKXtmb3IodmFyIHEgaW4gZWUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxs''@;'; + put 'put ''KGVlLHEpJiYoTltxXT1lZVtxXSl9KShZLFcpfSxmdW5jdGlvbihZLFcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXJiZudWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1''@;'; + put 'put ''bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9WihZLFcpLFkucHJvdG90eXBlPW51bGw9PT1XP09iamVjdC5jcmVhdGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkNlcnRp''@;'; + put 'put ''ZmljYXRlRXJyb3I9dm9pZCAwO3ZhciBsZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKE4pe3ZhciBlZT1ZLmNhbGwodGhpcywiIi5jb25jYXQoTiwiXG5QbGVhc2UgdmlzaXQgdGhlIGxpbmsgYmVsb3cgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gb24gdGhpcyBpc3N1ZTpcbi0gIikuY29uY2F0''@;'; + put 'put ''KCJodHRwczovL2dpdGh1Yi5jb20vc2FzanMvY2xpL2lzc3Vlcy8xMTgxI2lzc3VlY29tbWVudC0xMDkwNjM4NTg0IiwiXG4iKSl8fHRoaXM7cmV0dXJuIGVlLm5hbWU9IkNlcnRpZmljYXRlRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihlZSxXLnByb3RvdHlwZSksZWV9cmV0dXJuIGll''@;'; + put 'put ''KFcsWSksV30oRXJyb3IpO1EuQ2VydGlmaWNhdGVFcnJvcj1sZX0sNTI2NzpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgWixpZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFo9ZnVuY3Rpb24oWSxXKXtyZXR1cm4oWj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119''@;'; + put 'put ''aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oTixlZSl7Ti5fX3Byb3RvX189ZWV9fHxmdW5jdGlvbihOLGVlKXtmb3IodmFyIHEgaW4gZWUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVlLHEpJiYoTltxXT1lZVtxXSl9KShZLFcpfSxmdW5jdGlvbihZLFcpe2lmKCJm''@;'; + put 'put ''dW5jdGlvbiIhPXR5cGVvZiBXJiZudWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9WihZLFcpLFkucHJvdG90eXBl''@;'; + put 'put ''PW51bGw9PT1XP09iamVjdC5jcmVhdGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkNvbXB1dGVKb2JFeGVjdXRpb25FcnJvcj12b2lkIDA7dmFyIGxlPWZ1bmN0aW9uKFkpe2Z1''@;'; + put 'put ''bmN0aW9uIFcoTixlZSl7dmFyIHE9WS5jYWxsKHRoaXMsIkVycm9yOiBKb2IgZXhlY3V0aW9uIGZhaWxlZCIpfHx0aGlzO3JldHVybiBxLmpvYj1OLHEubG9nPWVlLHEubmFtZT0iQ29tcHV0ZUpvYkV4ZWN1dGlvbkVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YocSxXLnByb3RvdHlwZSks''@;'; + put 'put ''cX1yZXR1cm4gaWUoVyxZKSxXfShFcnJvcik7US5Db21wdXRlSm9iRXhlY3V0aW9uRXJyb3I9bGV9LDkyMzI6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuRXJyb3JSZXNwb25zZT12b2lkIDAsUS5FcnJvclJl''@;'; + put 'put ''c3BvbnNlPWZ1bmN0aW9uKGllLGxlLFkpe3ZhciBXPWxlO2lmKCJvYmplY3QiIT10eXBlb2YgbGUpdHJ5e1c9SlNPTi5wYXJzZShsZSl9Y2F0Y2goTil7WT1sZSxXPSIifXRoaXMuZXJyb3I9e21lc3NhZ2U6aWUsZGV0YWlsczpXLHJhdzpZfX19LDUxMDk6ZnVuY3Rpb24oVSxRKXsidXNlIHN0''@;'; + put 'put ''cmljdCI7dmFyIFosaWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChaPWZ1bmN0aW9uKFksVyl7cmV0dXJuKFo9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sZWUpe04uX19wcm90b19fPWVlfXx8ZnVuY3Rpb24oTixlZSl7''@;'; + put 'put ''Zm9yKHZhciBxIGluIGVlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxxKSYmKE5bcV09ZWVbcV0pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVyYmbnVsbCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2''@;'; + put 'put ''YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ZfVooWSxXKSxZLnByb3RvdHlwZT1udWxsPT09Vz9PYmplY3QuY3JlYXRlKFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmpl''@;'; + put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5JbnRlcm5hbFNlcnZlckVycm9yPXZvaWQgMDt2YXIgbGU9ZnVuY3Rpb24oWSl7ZnVuY3Rpb24gVygpe3ZhciBOPVkuY2FsbCh0aGlzLCJFcnJvcjogSW50ZXJuYWwgc2VydmVyIGVycm9yLiIpfHx0aGlzO3Jl''@;'; + put 'put ''dHVybiBOLm5hbWU9IkludGVybmFsU2VydmVyRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihOLFcucHJvdG90eXBlKSxOfXJldHVybiBpZShXLFkpLFd9KEVycm9yKTtRLkludGVybmFsU2VydmVyRXJyb3I9bGV9LDU1MTg6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFosaWU9''@;'; + put 'put ''dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChaPWZ1bmN0aW9uKFksVyl7cmV0dXJuKFo9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sZWUpe04uX19wcm90b19fPWVlfXx8ZnVuY3Rpb24oTixlZSl7Zm9yKHZhciBxIGluIGVl''@;'; + put 'put ''KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxxKSYmKE5bcV09ZWVbcV0pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVyYmbnVsbCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhX''@;'; + put 'put ''KSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ZfVooWSxXKSxZLnByb3RvdHlwZT1udWxsPT09Vz9PYmplY3QuY3JlYXRlKFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5JbnZhbGlkSnNvbkVycm9yPXZvaWQgMDt2YXIgbGU9ZnVuY3Rpb24oWSl7ZnVuY3Rpb24gVygpe3ZhciBOPVkuY2FsbCh0aGlzLCJFcnJvcjogaW52YWxpZCBKc29uIHN0cmluZyIpfHx0aGlzO3JldHVybiBOLm5hbWU9IkludmFsaWRK''@;'; + put 'put ''c29uRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihOLFcucHJvdG90eXBlKSxOfXJldHVybiBpZShXLFkpLFd9KEVycm9yKTtRLkludmFsaWRKc29uRXJyb3I9bGV9LDEwMDU6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFosaWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChaPWZ1''@;'; + put 'put ''bmN0aW9uKFksVyl7cmV0dXJuKFo9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sZWUpe04uX19wcm90b19fPWVlfXx8ZnVuY3Rpb24oTixlZSl7Zm9yKHZhciBxIGluIGVlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJv''@;'; + put 'put ''cGVydHkuY2FsbChlZSxxKSYmKE5bcV09ZWVbcV0pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVyYmbnVsbCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9y''@;'; + put 'put ''IG51bGwiKTtmdW5jdGlvbiBOKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ZfVooWSxXKSxZLnByb3RvdHlwZT1udWxsPT09Vz9PYmplY3QuY3JlYXRlKFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEw''@;'; + put 'put ''fSksUS5JbnZhbGlkU0FTanNDc3JmRXJyb3I9dm9pZCAwO3ZhciBsZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKCl7dmFyIE49dGhpcztyZXR1cm4oTj1ZLmNhbGwodGhpcywiQXV0aCBlcnJvcjogIi5jb25jYXQoIkludmFsaWQgQ1NSRiB0b2tlbiEiKSl8fHRoaXMpLm5hbWU9IkludmFsaWRT''@;'; + put 'put ''QVNqc0NzcmZFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKE4sVy5wcm90b3R5cGUpLE59cmV0dXJuIGllKFcsWSksV30oRXJyb3IpO1EuSW52YWxpZFNBU2pzQ3NyZkVycm9yPWxlfSw4NTMxOmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBaLGllPXRoaXMmJnRoaXMuX19leHRl''@;'; + put 'put ''bmRzfHwoWj1mdW5jdGlvbihZLFcpe3JldHVybihaPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihOLGVlKXtOLl9fcHJvdG9fXz1lZX18fGZ1bmN0aW9uKE4sZWUpe2Zvcih2YXIgcSBpbiBlZSlPYmplY3QucHJvdG90eXBl''@;'; + put 'put ''Lmhhc093blByb3BlcnR5LmNhbGwoZWUscSkmJihOW3FdPWVlW3FdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoVykrIiBpcyBub3QgYSBjb25z''@;'; + put 'put ''dHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1aKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUi''@;'; + put 'put ''LHt2YWx1ZTohMH0pLFEuSm9iRXhlY3V0aW9uRXJyb3I9dm9pZCAwO3ZhciBsZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKE4sZWUscSl7dmFyIEo9WS5jYWxsKHRoaXMsIkVycm9yIENvZGUgIi5jb25jYXQoTiwiOiAiKS5jb25jYXQoZWUpKXx8dGhpcztyZXR1cm4gSi5lcnJvckNvZGU9TixK''@;'; + put 'put ''LmVycm9yTWVzc2FnZT1lZSxKLnJlc3VsdD1xLEoubmFtZT0iSm9iRXhlY3V0aW9uRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihKLFcucHJvdG90eXBlKSxKfXJldHVybiBpZShXLFkpLFd9KEVycm9yKTtRLkpvYkV4ZWN1dGlvbkVycm9yPWxlfSw5MDc5OmZ1bmN0aW9uKFUsUSl7InVz''@;'; + put 'put ''ZSBzdHJpY3QiO3ZhciBaLGllPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoWj1mdW5jdGlvbihZLFcpe3JldHVybihaPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihOLGVlKXtOLl9fcHJvdG9fXz1lZX18fGZ1bmN0aW9uKE4s''@;'; + put 'put ''ZWUpe2Zvcih2YXIgcSBpbiBlZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWUscSkmJihOW3FdPWVlW3FdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVu''@;'; + put 'put ''ZHMgdmFsdWUgIitTdHJpbmcoVykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1aKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuSm9iU3RhdGVQb2xsRXJyb3I9dm9pZCAwO3ZhciBsZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKE4sZWUpe3ZhciBxPVkuY2FsbCh0aGlzLCJFcnJvciB3aGlsZSBwb2xsaW5nIGpvYiBzdGF0ZSBmb3Ig''@;'; + put 'put ''am9iICIuY29uY2F0KE4sIjogIikuY29uY2F0KGVlLm1lc3NhZ2V8fGVlKSl8fHRoaXM7cmV0dXJuIHEub3JpZ2luYWxFcnJvcj1lZSxxLm5hbWU9IkpvYlN0YXRlUG9sbEVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YocSxXLnByb3RvdHlwZSkscX1yZXR1cm4gaWUoVyxZKSxXfShFcnJv''@;'; + put 'put ''cik7US5Kb2JTdGF0ZVBvbGxFcnJvcj1sZX0sMzA5NjpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgWixpZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFo9ZnVuY3Rpb24oWSxXKXtyZXR1cm4oWj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBB''@;'; + put 'put ''cnJheSYmZnVuY3Rpb24oTixlZSl7Ti5fX3Byb3RvX189ZWV9fHxmdW5jdGlvbihOLGVlKXtmb3IodmFyIHEgaW4gZWUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVlLHEpJiYoTltxXT1lZVtxXSl9KShZLFcpfSxmdW5jdGlvbihZLFcpe2lmKCJmdW5jdGlvbiIhPXR5''@;'; + put 'put ''cGVvZiBXJiZudWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9WihZLFcpLFkucHJvdG90eXBlPW51bGw9PT1XP09i''@;'; + put 'put ''amVjdC5jcmVhdGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkpzb25QYXJzZUFycmF5RXJyb3I9dm9pZCAwO3ZhciBsZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKCl7dmFyIE49''@;'; + put 'put ''WS5jYWxsKHRoaXMsIkNhbiBub3QgcGFyc2UgYXJyYXkgb2JqZWN0IHRvIGpzb24uIil8fHRoaXM7cmV0dXJuIE4ubmFtZT0iSnNvblBhcnNlQXJyYXlFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKE4sVy5wcm90b3R5cGUpLE59cmV0dXJuIGllKFcsWSksV30oRXJyb3IpO1EuSnNvblBh''@;'; + put 'put ''cnNlQXJyYXlFcnJvcj1sZX0sNjc0MzpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgWixpZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFo9ZnVuY3Rpb24oWSxXKXtyZXR1cm4oWj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVu''@;'; + put 'put ''Y3Rpb24oTixlZSl7Ti5fX3Byb3RvX189ZWV9fHxmdW5jdGlvbihOLGVlKXtmb3IodmFyIHEgaW4gZWUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVlLHEpJiYoTltxXT1lZVtxXSl9KShZLFcpfSxmdW5jdGlvbihZLFcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXJiZu''@;'; + put 'put ''dWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9WihZLFcpLFkucHJvdG90eXBlPW51bGw9PT1XP09iamVjdC5jcmVh''@;'; + put 'put ''dGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkxvZ2luUmVxdWlyZWRFcnJvcj12b2lkIDA7dmFyIGxlPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFcoTil7dmFyIGVlPXRoaXMscT1O''@;'; + put 'put ''P0pTT04uc3RyaW5naWZ5KE4sbnVsbCwyKToiWW91IG11c3QgYmUgbG9nZ2VkIGluIHRvIGFjY2VzcyB0aGlzIHJlc291cmNlIjtyZXR1cm4oZWU9WS5jYWxsKHRoaXMsIkF1dGggZXJyb3I6ICIuY29uY2F0KHEpKXx8dGhpcykubmFtZT0iTG9naW5SZXF1aXJlZEVycm9yIixPYmplY3Quc2V0''@;'; + put 'put ''UHJvdG90eXBlT2YoZWUsVy5wcm90b3R5cGUpLGVlfXJldHVybiBpZShXLFkpLFd9KEVycm9yKTtRLkxvZ2luUmVxdWlyZWRFcnJvcj1sZX0sNzg2NDpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgWixpZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFo9ZnVuY3Rpb24oWSxXKXtyZXR1''@;'; + put 'put ''cm4oWj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oTixlZSl7Ti5fX3Byb3RvX189ZWV9fHxmdW5jdGlvbihOLGVlKXtmb3IodmFyIHEgaW4gZWUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVlLHEp''@;'; + put 'put ''JiYoTltxXT1lZVtxXSl9KShZLFcpfSxmdW5jdGlvbihZLFcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXJiZudWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9u''@;'; + put 'put ''IE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9WihZLFcpLFkucHJvdG90eXBlPW51bGw9PT1XP09iamVjdC5jcmVhdGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLk5vU2Vzc2lvblN0''@;'; + put 'put ''YXRlRXJyb3I9dm9pZCAwO3ZhciBsZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKE4sZWUscSl7dmFyIEo9WS5jYWxsKHRoaXMsIkNvdWxkIG5vdCBnZXQgc2Vzc2lvbiBzdGF0ZS4gU2VydmVyIHJlc3BvbmRlZCB3aXRoICIuY29uY2F0KE4sIiB3aGlsc3QgY2hlY2tpbmcgc3RhdGU6ICIpLmNv''@;'; + put 'put ''bmNhdChlZSkpfHx0aGlzO3JldHVybiBKLnNlcnZlclJlc3BvbnNlU3RhdHVzPU4sSi5zZXNzaW9uU3RhdGVVcmw9ZWUsSi5sb2dVcmw9cSxKLm5hbWU9Ik5vU2Vzc2lvblN0YXR1cyIsT2JqZWN0LnNldFByb3RvdHlwZU9mKEosVy5wcm90b3R5cGUpLEp9cmV0dXJuIGllKFcsWSksV30oRXJy''@;'; + put 'put ''b3IpO1EuTm9TZXNzaW9uU3RhdGVFcnJvcj1sZX0sOTU3NzpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgWixpZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KFo9ZnVuY3Rpb24oWSxXKXtyZXR1cm4oWj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2Vv''@;'; + put 'put ''ZiBBcnJheSYmZnVuY3Rpb24oTixlZSl7Ti5fX3Byb3RvX189ZWV9fHxmdW5jdGlvbihOLGVlKXtmb3IodmFyIHEgaW4gZWUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVlLHEpJiYoTltxXT1lZVtxXSl9KShZLFcpfSxmdW5jdGlvbihZLFcpe2lmKCJmdW5jdGlvbiIh''@;'; + put 'put ''PXR5cGVvZiBXJiZudWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9WihZLFcpLFkucHJvdG90eXBlPW51bGw9PT1X''@;'; + put 'put ''P09iamVjdC5jcmVhdGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLk5vdEZvdW5kRXJyb3I9dm9pZCAwO3ZhciBsZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKE4pe3ZhciBlZT1Z''@;'; + put 'put ''LmNhbGwodGhpcywiRXJyb3I6IFJlc291cmNlIGF0ICIuY29uY2F0KE4sIiB3YXMgbm90IGZvdW5kIikpfHx0aGlzO3JldHVybiBlZS51cmw9TixlZS5uYW1lPSJOb3RGb3VuZEVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YoZWUsVy5wcm90b3R5cGUpLGVlfXJldHVybiBpZShXLFkpLFd9''@;'; + put 'put ''KEVycm9yKTtRLk5vdEZvdW5kRXJyb3I9bGV9LDkyNzk6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsbGU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChpZT1mdW5jdGlvbihOLGVlKXtyZXR1cm4oaWU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3Rh''@;'; + put 'put ''bmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHEsSil7cS5fX3Byb3RvX189Sn18fGZ1bmN0aW9uKHEsSil7Zm9yKHZhciBzZSBpbiBKKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChKLHNlKSYmKHFbc2VdPUpbc2VdKX0pKE4sZWUpfSxmdW5jdGlvbihOLGVlKXtpZigiZnVuY3Rp''@;'; + put 'put ''b24iIT10eXBlb2YgZWUmJm51bGwhPT1lZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKGVlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBxKCl7dGhpcy5jb25zdHJ1Y3Rvcj1OfWllKE4sZWUpLE4ucHJvdG90eXBl''@;'; + put 'put ''PW51bGw9PT1lZT9PYmplY3QuY3JlYXRlKGVlKToocS5wcm90b3R5cGU9ZWUucHJvdG90eXBlLG5ldyBxKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLlJvb3RGb2xkZXJOb3RGb3VuZEVycm9yPXZvaWQgMDt2YXIgWT1aKDY3OTkpLFc9ZnVu''@;'; + put 'put ''Y3Rpb24oTil7ZnVuY3Rpb24gZWUocSxKLHNlKXt2YXIgb2U9dGhpcyxjZT0iUm9vdCBmb2xkZXIgIi5jb25jYXQocSwiIHdhcyBub3QgZm91bmQuIikrIlxuUGxlYXNlIGNoZWNrICIuY29uY2F0KEosIi9TQVNEcml2ZS4iKSsiXG5JZiB0aGUgZm9sZGVyIERPRVMgZXhpc3QgdGhlbiBpdCBp''@;'; + put 'put ''cyBsaWtlbHkgYSBwZXJtaXNzaW9uIHByb2JsZW0uXG4iO2lmKHNlKXt2YXIgZGU9KDAsWS5kZWNvZGVUb2tlbikoc2UpLnNjb3BlO2NlKz0iWW91ciBhY2Nlc3MgdG9rZW4gY29udGFpbnMgdGhlIGZvbGxvd2luZyBzY29wZXM6XG4iKyhkZT1kZS5tYXAoZnVuY3Rpb24odmUpe3JldHVybiIq''@;'; + put 'put ''ICIrdmV9KSkuam9pbigiXG4iKX1yZXR1cm4ob2U9Ti5jYWxsKHRoaXMsY2UpfHx0aGlzKS5uYW1lPSJSb290Rm9sZGVyTm90Rm91bmRFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKG9lLGVlLnByb3RvdHlwZSksb2V9cmV0dXJuIGxlKGVlLE4pLGVlfShFcnJvcik7US5Sb290Rm9sZGVy''@;'; + put 'put ''Tm90Rm91bmRFcnJvcj1XfSw5NTI2OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBaLGllPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoWj1mdW5jdGlvbihZLFcpe3JldHVybihaPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5j''@;'; + put 'put ''dGlvbihOLGVlKXtOLl9fcHJvdG9fXz1lZX18fGZ1bmN0aW9uKE4sZWUpe2Zvcih2YXIgcSBpbiBlZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWUscSkmJihOW3FdPWVlW3FdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51''@;'; + put 'put ''bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoVykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1aKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0''@;'; + put 'put ''ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU0FTOUF1dGhFcnJvcj12b2lkIDA7dmFyIGxlPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFcoKXt2YXIgTj1ZLmNhbGwodGhpcywiVGhl''@;'; + put 'put ''IGNyZWRlbnRpYWxzIHlvdSBwcm92aWRlZCBjYW5ub3QgYmUgYXV0aGVudGljYXRlZC4gUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCBzZXQgb2YgY3JlZGVudGlhbHMuIil8fHRoaXM7cmV0dXJuIE4ubmFtZT0iQXV0aG9yaXplRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihOLFcucHJvdG90''@;'; + put 'put ''eXBlKSxOfXJldHVybiBpZShXLFkpLFd9KEVycm9yKTtRLlNBUzlBdXRoRXJyb3I9bGV9LDg4NzU6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFosaWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChaPWZ1bmN0aW9uKFksVyl7cmV0dXJuKFo9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7''@;'; + put 'put ''X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sZWUpe04uX19wcm90b19fPWVlfXx8ZnVuY3Rpb24oTixlZSl7Zm9yKHZhciBxIGluIGVlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZSxxKSYmKE5bcV09ZWVbcV0pfSkoWSxXKX0sZnVuY3Rp''@;'; + put 'put ''b24oWSxXKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVyYmbnVsbCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ZfVooWSxX''@;'; + put 'put ''KSxZLnByb3RvdHlwZT1udWxsPT09Vz9PYmplY3QuY3JlYXRlKFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5XZWJvdXRSZXNwb25zZUVycm9yPXZvaWQgMDt2YXIgbGU9ZnVuY3Rp''@;'; + put 'put ''b24oWSl7ZnVuY3Rpb24gVyhOKXt2YXIgZWU9WS5jYWxsKHRoaXMsIkVycm9yOiBlcnJvciB3aGlsZSBwYXJzaW5nIHJlc3BvbnNlIGZyb20gIi5jb25jYXQoTikpfHx0aGlzO3JldHVybiBlZS51cmw9TixlZS5uYW1lPSJXZWJvdXRSZXNwb25zZUVycm9yIixPYmplY3Quc2V0UHJvdG90eXBl''@;'; + put 'put ''T2YoZWUsVy5wcm90b3R5cGUpLGVlfXJldHVybiBpZShXLFkpLFd9KEVycm9yKTtRLldlYm91dFJlc3BvbnNlRXJyb3I9bGV9LDEzOTU6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9u''@;'; + put 'put ''KFksVyxOLGVlKXt2b2lkIDA9PT1lZSYmKGVlPU4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShZLGVlLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXW05dfX0pfTpmdW5jdGlvbihZLFcsTixlZSl7dm9pZCAwPT09ZWUmJihlZT1OKSxZW2VlXT1XW05dfSksbGU9dGhpcyYm''@;'; + put 'put ''dGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKFksVyl7Zm9yKHZhciBOIGluIFkpImRlZmF1bHQiPT09Tnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFcsTil8fGllKFcsWSxOKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0p''@;'; + put 'put ''LGxlKFooMTI0KSxRKSxsZShaKDk0NjUpLFEpLGxlKFooNTI2NyksUSksbGUoWig5MjMyKSxRKSxsZShaKDUxMDkpLFEpLGxlKFooNTUxOCksUSksbGUoWig4NTMxKSxRKSxsZShaKDkwNzkpLFEpLGxlKFooMzA5NiksUSksbGUoWig2NzQzKSxRKSxsZShaKDc4NjQpLFEpLGxlKFooOTU3Nyks''@;'; + put 'put ''USksbGUoWig5Mjc5KSxRKSxsZShaKDg4NzUpLFEpfSwxMjMwOmZ1bmN0aW9uKFUsUSxaKXsidXNlIHN0cmljdCI7dmFyIGllPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihZLFcsTixlZSl7dm9pZCAwPT09ZWUmJihlZT1OKSxPYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydHkoWSxlZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1tOXX19KX06ZnVuY3Rpb24oWSxXLE4sZWUpe3ZvaWQgMD09PWVlJiYoZWU9TiksWVtlZV09V1tOXX0pLGxlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihZLFcpe2Zvcih2YXIg''@;'; + put 'put ''TiBpbiBZKSJkZWZhdWx0Ij09PU58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLE4pfHxpZShXLFksTil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxsZShaKDQ3MCksUSksbGUoWig0NjY2KSxRKSxsZShaKDQ5NzUpLFEp''@;'; + put 'put ''LGxlKFooNTc2NiksUSksbGUoWigyMTUpLFEpLGxlKFooNDc4MiksUSksbGUoWig0MTY4KSxRKSxsZShaKDg1MTYpLFEpLGxlKFooNTg0MSksUSksbGUoWigyNDkzKSxRKSxsZShaKDYwMzgpLFEpLGxlKFooOTQ5MyksUSksbGUoWigzMTUzKSxRKSxsZShaKDg2NTApLFEpLGxlKFooNjE3Nyks''@;'; + put 'put ''USl9LDMzMDI6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIFo9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gWj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihZKXtmb3IodmFyIFcsTj0xLGVlPWFyZ3VtZW50cy5sZW5ndGg7TjxlZTtOKyspZm9yKHZhciBxIGlu''@;'; + put 'put ''IFc9YXJndW1lbnRzW05dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLHEpJiYoWVtxXT1XW3FdKTtyZXR1cm4gWX0sWi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGllPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihZLFcsTixlZSl7cmV0dXJuIG5ldyhOfHwo''@;'; + put 'put ''Tj1Qcm9taXNlKSkoZnVuY3Rpb24ocSxKKXtmdW5jdGlvbiBzZShkZSl7dHJ5e2NlKGVlLm5leHQoZGUpKX1jYXRjaCh2ZSl7Sih2ZSl9fWZ1bmN0aW9uIG9lKGRlKXt0cnl7Y2UoZWUudGhyb3coZGUpKX1jYXRjaCh2ZSl7Sih2ZSl9fWZ1bmN0aW9uIGNlKGRlKXt2YXIgdmU7ZGUuZG9uZT9x''@;'; + put 'put ''KGRlLnZhbHVlKToodmU9ZGUudmFsdWUsdmUgaW5zdGFuY2VvZiBOP3ZlOm5ldyBOKGZ1bmN0aW9uKEFlKXtBZSh2ZSl9KSkudGhlbihzZSxvZSl9Y2UoKGVlPWVlLmFwcGx5KFksV3x8W10pKS5uZXh0KCkpfSl9LGxlPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKFksVyl7dmFy''@;'; + put 'put ''IE4sZWUscSxKLHNlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJnFbMF0pdGhyb3cgcVsxXTtyZXR1cm4gcVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBKPXtuZXh0Om9lKDApLHRocm93Om9lKDEpLHJldHVybjpvZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKEpb''@;'; + put 'put ''U3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksSjtmdW5jdGlvbiBvZShjZSl7cmV0dXJuIGZ1bmN0aW9uKGRlKXtyZXR1cm4gZnVuY3Rpb24odmUpe2lmKE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7''@;'; + put 'put ''c2U7KXRyeXtpZihOPTEsZWUmJihxPTImdmVbMF0/ZWUucmV0dXJuOnZlWzBdP2VlLnRocm93fHwoKHE9ZWUucmV0dXJuKSYmcS5jYWxsKGVlKSwwKTplZS5uZXh0KSYmIShxPXEuY2FsbChlZSx2ZVsxXSkpLmRvbmUpcmV0dXJuIHE7c3dpdGNoKGVlPTAscSYmKHZlPVsyJnZlWzBdLHEudmFs''@;'; + put 'put ''dWVdKSx2ZVswXSl7Y2FzZSAwOmNhc2UgMTpxPXZlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gc2UubGFiZWwrKyx7dmFsdWU6dmVbMV0sZG9uZTohMX07Y2FzZSA1OnNlLmxhYmVsKyssZWU9dmVbMV0sdmU9WzBdO2NvbnRpbnVlO2Nhc2UgNzp2ZT1zZS5vcHMucG9wKCksc2UudHJ5cy5wb3AoKTtj''@;'; + put 'put ''b250aW51ZTtkZWZhdWx0OmlmKCEoKHE9KHE9c2UudHJ5cykubGVuZ3RoPjAmJnFbcS5sZW5ndGgtMV0pfHw2IT09dmVbMF0mJjIhPT12ZVswXSkpe3NlPTA7Y29udGludWV9aWYoMz09PXZlWzBdJiYoIXF8fHZlWzFdPnFbMF0mJnZlWzFdPHFbM10pKXtzZS5sYWJlbD12ZVsxXTticmVha31p''@;'; + put 'put ''Zig2PT09dmVbMF0mJnNlLmxhYmVsPHFbMV0pe3NlLmxhYmVsPXFbMV0scT12ZTticmVha31pZihxJiZzZS5sYWJlbDxxWzJdKXtzZS5sYWJlbD1xWzJdLHNlLm9wcy5wdXNoKHZlKTticmVha31xWzJdJiZzZS5vcHMucG9wKCksc2UudHJ5cy5wb3AoKTtjb250aW51ZX12ZT1XLmNhbGwoWSxz''@;'; + put 'put ''ZSl9Y2F0Y2goQWUpe3ZlPVs2LEFlXSxlZT0wfWZpbmFsbHl7Tj1xPTB9aWYoNSZ2ZVswXSl0aHJvdyB2ZVsxXTtyZXR1cm57dmFsdWU6dmVbMF0/dmVbMV06dm9pZCAwLGRvbmU6ITB9fShbY2UsZGVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEw''@;'; + put 'put ''fSksUS5hcHBlbmRFeHRyYVJlc3BvbnNlQXR0cmlidXRlcz12b2lkIDAsUS5hcHBlbmRFeHRyYVJlc3BvbnNlQXR0cmlidXRlcz1mdW5jdGlvbihZLFcpe3JldHVybiBpZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgTixlZTtyZXR1cm4gbGUodGhpcyxmdW5jdGlvbihxKXty''@;'; + put 'put ''ZXR1cm4gTj17fSxudWxsIT1XJiZXLmxlbmd0aD8oZWU9Vy5yZWR1Y2UoZnVuY3Rpb24oSixzZSl7cmV0dXJuIEpbc2VdPVlbc2VdLEp9LHt9KSxOPVooe3Jlc3VsdDpZLnJlc3VsdH0sZWUpKTpOPVkucmVzdWx0LFsyLE5dfSl9KX19LDc5MjI6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7''@;'; + put 'put ''dmFyIFo9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGxlLFksVyxOKXtyZXR1cm4gbmV3KFd8fChXPVByb21pc2UpKShmdW5jdGlvbihlZSxxKXtmdW5jdGlvbiBKKGNlKXt0cnl7b2UoTi5uZXh0KGNlKSl9Y2F0Y2goZGUpe3EoZGUpfX1mdW5jdGlvbiBzZShjZSl7dHJ5e29lKE4u''@;'; + put 'put ''dGhyb3coY2UpKX1jYXRjaChkZSl7cShkZSl9fWZ1bmN0aW9uIG9lKGNlKXt2YXIgZGU7Y2UuZG9uZT9lZShjZS52YWx1ZSk6KGRlPWNlLnZhbHVlLGRlIGluc3RhbmNlb2YgVz9kZTpuZXcgVyhmdW5jdGlvbih2ZSl7dmUoZGUpfSkpLnRoZW4oSixzZSl9b2UoKE49Ti5hcHBseShsZSxZfHxb''@;'; + put 'put ''XSkpLm5leHQoKSl9KX0saWU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24obGUsWSl7dmFyIFcsTixlZSxxLEo9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmZWVbMF0pdGhyb3cgZWVbMV07cmV0dXJuIGVlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHE9e25leHQ6''@;'; + put 'put ''c2UoMCksdGhyb3c6c2UoMSkscmV0dXJuOnNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYocVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxxO2Z1bmN0aW9uIHNlKG9lKXtyZXR1cm4gZnVuY3Rpb24oY2Upe3JldHVybiBmdW5jdGlvbihkZSl7aWYo''@;'; + put 'put ''Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtKOyl0cnl7aWYoVz0xLE4mJihlZT0yJmRlWzBdP04ucmV0dXJuOmRlWzBdP04udGhyb3d8fCgoZWU9Ti5yZXR1cm4pJiZlZS5jYWxsKE4pLDApOk4ubmV4dCkmJiEoZWU9ZWUuY2Fs''@;'; + put 'put ''bChOLGRlWzFdKSkuZG9uZSlyZXR1cm4gZWU7c3dpdGNoKE49MCxlZSYmKGRlPVsyJmRlWzBdLGVlLnZhbHVlXSksZGVbMF0pe2Nhc2UgMDpjYXNlIDE6ZWU9ZGU7YnJlYWs7Y2FzZSA0OnJldHVybiBKLmxhYmVsKysse3ZhbHVlOmRlWzFdLGRvbmU6ITF9O2Nhc2UgNTpKLmxhYmVsKyssTj1k''@;'; + put 'put ''ZVsxXSxkZT1bMF07Y29udGludWU7Y2FzZSA3OmRlPUoub3BzLnBvcCgpLEoudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGVlPShlZT1KLnRyeXMpLmxlbmd0aD4wJiZlZVtlZS5sZW5ndGgtMV0pfHw2IT09ZGVbMF0mJjIhPT1kZVswXSkpe0o9MDtjb250aW51ZX1pZigzPT09''@;'; + put 'put ''ZGVbMF0mJighZWV8fGRlWzFdPmVlWzBdJiZkZVsxXTxlZVszXSkpe0oubGFiZWw9ZGVbMV07YnJlYWt9aWYoNj09PWRlWzBdJiZKLmxhYmVsPGVlWzFdKXtKLmxhYmVsPWVlWzFdLGVlPWRlO2JyZWFrfWlmKGVlJiZKLmxhYmVsPGVlWzJdKXtKLmxhYmVsPWVlWzJdLEoub3BzLnB1c2goZGUp''@;'; + put 'put ''O2JyZWFrfWVlWzJdJiZKLm9wcy5wb3AoKSxKLnRyeXMucG9wKCk7Y29udGludWV9ZGU9WS5jYWxsKGxlLEopfWNhdGNoKHZlKXtkZT1bNix2ZV0sTj0wfWZpbmFsbHl7Vz1lZT0wfWlmKDUmZGVbMF0pdGhyb3cgZGVbMV07cmV0dXJue3ZhbHVlOmRlWzBdP2RlWzFdOnZvaWQgMCxkb25lOiEw''@;'; + put 'put ''fX0oW29lLGNlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuYXN5bmNGb3JFYWNoPXZvaWQgMCxRLmFzeW5jRm9yRWFjaD1mdW5jdGlvbihsZSxZKXtyZXR1cm4gWih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgVztyZXR1''@;'; + put 'put ''cm4gaWUodGhpcyxmdW5jdGlvbihOKXtzd2l0Y2goTi5sYWJlbCl7Y2FzZSAwOlc9MCxOLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBXPGxlLmxlbmd0aD9bNCxZKGxlW1ddLFcsbGUpXTpbMyw0XTtjYXNlIDI6Ti5zZW50KCksTi5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gVysrLFszLDFdO2Nhc2Ug''@;'; + put 'put ''NDpyZXR1cm5bMl19fSl9KX19LDM3OTM6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuY29tcGFyZVRpbWVzdGFtcHM9dm9pZCAwLFEuY29tcGFyZVRpbWVzdGFtcHM9ZnVuY3Rpb24oWixpZSl7cmV0dXJuIGll''@;'; + put 'put ''LnRpbWVzdGFtcC5nZXRUaW1lKCktWi50aW1lc3RhbXAuZ2V0VGltZSgpfX0sMjQwMjooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDUxMDgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmlzRm9ybWF0c1RhYmxlPVEuY29udmVydFRv''@;'; + put 'put ''Q1NWPXZvaWQgMDt2YXIgbGU9Wig2NDY3KSxZPVooOTc3OCk7US5jb252ZXJ0VG9DU1Y9ZnVuY3Rpb24oTixlZSl7dmFyIHE7aWYoIU5bZWVdKXRocm93KDAsWS5wcmVmaXhNZXNzYWdlKSgiTm8gdGFibGUgcHJvdmlkZWQgdG8gYmUgY29udmVydGVkIHRvIENTVi4iLCJFcnJvciB3aGlsZSBj''@;'; + put 'put ''b252ZXJ0aW5nIHRvIENTVi4gIik7dmFyIEo9TltlZV07aWYoIUFycmF5LmlzQXJyYXkoSikpcmV0dXJuIiI7dmFyIHNlLG9lPW51bGw9PT0ocT1OWyIkIi5jb25jYXQoZWUpXSl8fHZvaWQgMD09PXE/dm9pZCAwOnEuZm9ybWF0cyxjZT1bXSxkZT0hMTtvZSYmKGNlPU9iamVjdC5rZXlzKG9l''@;'; + put 'put ''KS5tYXAoZnVuY3Rpb24oQWUpe3JldHVybiIiLmNvbmNhdChBZSwiOiIpLmNvbmNhdChvZVtBZV0pfSkpO3ZhciB2ZT1PYmplY3Qua2V5cyhKWzBdKTtyZXR1cm4gdmUuZm9yRWFjaChmdW5jdGlvbihBZSl7aWYoIW9lfHwhT2JqZWN0LmtleXMob2UpLmluY2x1ZGVzKEFlKSl7dmFyIGtlPSEx''@;'; + put 'put ''LFNlPSExO2lmKEouZm9yRWFjaChmdW5jdGlvbihPKXtudWxsPT09T1tBZV18fCJudW1iZXIiPT10eXBlb2YgT1tBZV0/a2U9ITA6InN0cmluZyI9PXR5cGVvZiBPW0FlXSYmKDAsbGUuaXNTcGVjaWFsTWlzc2luZykoT1tBZV0pJiYoU2U9ITApfSksa2UmJlNlKWNlLnB1c2goIiIuY29uY2F0''@;'; + put 'put ''KEFlLCI6YmVzdC4iKSksb2V8fChvZT17fSksb2VbQWVdPSJiZXN0LiI7ZWxzZXt2YXIgSWU9bnVsbCxUZT0hMSxFZT0tMSxoZT1KLm1hcChmdW5jdGlvbihPLHope2lmKE9bQWVdfHwiIj09PU9bQWVdKXtJZT9UZXx8KEVlPShUZT0oIiI9PT1PW0FlXXx8InN0cmluZyI9PXR5cGVvZiBPW0Fl''@;'; + put 'put ''XT8iY2hhcnMiOiJudW1iZXIiKSE9PUllKT96KzE6LTEpOkllPSIiPT09T1tBZV18fCJzdHJpbmciPT10eXBlb2YgT1tBZV0/ImNoYXJzIjoibnVtYmVyIjt2YXIgdGU9dm9pZCAwO3JldHVybiJzdHJpbmciPT10eXBlb2YgT1tBZV0mJih0ZT1XKE9bQWVdKSksdGV9fSkuc29ydChmdW5jdGlv''@;'; + put 'put ''bihPLHope3JldHVybiB6LU99KVswXTtoZSYmaGU+MzI3NjUmJihkZT0hMCksVGUmJmllLmVycm9yKCJSb3cgKCIuY29uY2F0KEVlLCIpLCBDb2x1bW4gKCIpLmNvbmNhdChBZSwiKSBoYXMgbWl4ZWQgdHlwZXM6IEVSUk9SIikpLGNlLnB1c2goIiIuY29uY2F0KEFlLCI6IikuY29uY2F0KCJj''@;'; + put 'put ''aGFycyI9PT1JZT8iJGNoYXIiOiIiKS5jb25jYXQoaGV8fCgiY2hhcnMiPT09SWU/IjEiOiJiZXN0IiksIi4iKSl9fX0pLG9lJiYoY2U9Y2Uuc29ydChmdW5jdGlvbihBZSxrZSl7cmV0dXJuIHZlLmluZGV4T2YoQWUucmVwbGFjZSgvOi4qLywiIikpLXZlLmluZGV4T2Yoa2UucmVwbGFjZSgv''@;'; + put 'put ''Oi4qLywiIikpfSkpLGRlPyJFUlJPUjogTEFSR0UgU1RSSU5HIExFTkdUSCI6KHNlPUoubWFwKGZ1bmN0aW9uKEFlKXtyZXR1cm4gT2JqZWN0LmtleXMoQWUpLm1hcChmdW5jdGlvbihrZSxTZSl7dmFyIEllLFRlPUFlW2tlXTtpZigibnVtYmVyIj09dHlwZW9mIFRlKXJldHVybiBUZTtpZihJ''@;'; + put 'put ''ZT1udWxsPT09VGU/IiI6VGUsb2UmJiJiZXN0LiI9PT1vZVtrZV0pe2lmKEllJiYhKDAsbGUuaXNTcGVjaWFsTWlzc2luZykoSWUpKXRocm93IG5ldyBFcnJvcigiQSBTcGVjaWFsIG1pc3NpbmcgdmFsdWUgY2FuIG9ubHkgYmUgYSBzaW5nbGUgY2hhcmFjdGVyIGZyb20gJ0EnIHRvICdaJywg''@;'; + put 'put ''J18nLCAnLlthLXpdJywgJy5fJyIpO3ZhciBFZT1JZS5pbmNsdWRlcygiLiIpPyIiOiIuIjtyZXR1cm4iIi5jb25jYXQoRWUpLmNvbmNhdChJZS50b0xvd2VyQ2FzZSgpKX1yZXR1cm4gSWU9SWUucmVwbGFjZSgvIi9nLCciIicpLChJZT0nIicuY29uY2F0KEllLCciJykpLnN1YnN0cmluZygx''@;'; + put 'put ''LEllLmxlbmd0aC0xKS5zZWFyY2goLyhcdHxcbnxccnwsfFwnfFwiKS9nbSk8MCYmKEllPUllLnN1YnN0cmluZygxLEllLmxlbmd0aC0xKSksIiI9PT0oSWU9SWUucmVwbGFjZSgvXHJcbi9nbSwiXG4iKSkmJmNlW1NlXS5pbmNsdWRlcygiYmVzdCIpJiYoSWU9Ii4iKSxJZX0pLmpvaW4oIiwi''@;'; + put 'put ''KX0pLGNlLmpvaW4oIiwiKS5yZXBsYWNlKC8sL2csIiAiKSsiXHJcbiIrc2Uuam9pbigiXHJcbiIpKX0sUS5pc0Zvcm1hdHNUYWJsZT1mdW5jdGlvbihOKXtyZXR1cm4vXlwkLiovLnRlc3QoTil9O3ZhciBXPWZ1bmN0aW9uKE4pe2Zvcih2YXIgZWU9Ti5sZW5ndGgscT1OLmxlbmd0aC0xO3E+''@;'; + put 'put ''PTA7cS0tKXt2YXIgSj1OLmNoYXJDb2RlQXQocSk7Sj4xMjcmJko8PTIwNDc/ZWUrKzpKPjIwNDcmJko8PTY1NTM1JiYoZWUrPTIpLEo+PTU2MzIwJiZKPD01NzM0MyYmcS0tfXJldHVybiBlZX19LDYxMTY6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwi''@;'; + put 'put ''X19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5jcmVhdGVBeGlvc0luc3RhbmNlPXZvaWQgMDt2YXIgaWU9Wig5NjY5KTtRLmNyZWF0ZUF4aW9zSW5zdGFuY2U9ZnVuY3Rpb24obGUsWSl7cmV0dXJuIGllLmRlZmF1bHQuY3JlYXRlKHtiYXNlVVJMOmxlLGh0dHBzQWdlbnQ6WX0pfX0sOTgyNToo''@;'; + put 'put ''VSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5kZWxheT12b2lkIDAsUS5kZWxheT1mdW5jdGlvbihaKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oaWUpe3JldHVybiBzZXRUaW1lb3V0KGllLFopfSl9fSw5''@;'; + put 'put ''OTA6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KSxsZT1aKDUxMDgpLFk9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGVlLHEsSixzZSl7cmV0dXJuIG5ldyhKfHwoSj1Qcm9taXNlKSkoZnVuY3Rpb24ob2UsY2Upe2Z1bmN0aW9uIGRlKGtlKXt0cnl7''@;'; + put 'put ''QWUoc2UubmV4dChrZSkpfWNhdGNoKFNlKXtjZShTZSl9fWZ1bmN0aW9uIHZlKGtlKXt0cnl7QWUoc2UudGhyb3coa2UpKX1jYXRjaChTZSl7Y2UoU2UpfX1mdW5jdGlvbiBBZShrZSl7dmFyIFNlO2tlLmRvbmU/b2Uoa2UudmFsdWUpOihTZT1rZS52YWx1ZSxTZSBpbnN0YW5jZW9mIEo/U2U6''@;'; + put 'put ''bmV3IEooZnVuY3Rpb24oSWUpe0llKFNlKX0pKS50aGVuKGRlLHZlKX1BZSgoc2U9c2UuYXBwbHkoZWUscXx8W10pKS5uZXh0KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZWUscSl7dmFyIEosc2Usb2UsY2UsZGU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lm''@;'; + put 'put ''KDEmb2VbMF0pdGhyb3cgb2VbMV07cmV0dXJuIG9lWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGNlPXtuZXh0OnZlKDApLHRocm93OnZlKDEpLHJldHVybjp2ZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGNlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''dGhpc30pLGNlO2Z1bmN0aW9uIHZlKEFlKXtyZXR1cm4gZnVuY3Rpb24oa2Upe3JldHVybiBmdW5jdGlvbihTZSl7aWYoSil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtkZTspdHJ5e2lmKEo9MSxzZSYmKG9lPTImU2VbMF0/c2Uu''@;'; + put 'put ''cmV0dXJuOlNlWzBdP3NlLnRocm93fHwoKG9lPXNlLnJldHVybikmJm9lLmNhbGwoc2UpLDApOnNlLm5leHQpJiYhKG9lPW9lLmNhbGwoc2UsU2VbMV0pKS5kb25lKXJldHVybiBvZTtzd2l0Y2goc2U9MCxvZSYmKFNlPVsyJlNlWzBdLG9lLnZhbHVlXSksU2VbMF0pe2Nhc2UgMDpjYXNlIDE6''@;'; + put 'put ''b2U9U2U7YnJlYWs7Y2FzZSA0OnJldHVybiBkZS5sYWJlbCsrLHt2YWx1ZTpTZVsxXSxkb25lOiExfTtjYXNlIDU6ZGUubGFiZWwrKyxzZT1TZVsxXSxTZT1bMF07Y29udGludWU7Y2FzZSA3OlNlPWRlLm9wcy5wb3AoKSxkZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgob2U9''@;'; + put 'put ''KG9lPWRlLnRyeXMpLmxlbmd0aD4wJiZvZVtvZS5sZW5ndGgtMV0pfHw2IT09U2VbMF0mJjIhPT1TZVswXSkpe2RlPTA7Y29udGludWV9aWYoMz09PVNlWzBdJiYoIW9lfHxTZVsxXT5vZVswXSYmU2VbMV08b2VbM10pKXtkZS5sYWJlbD1TZVsxXTticmVha31pZig2PT09U2VbMF0mJmRlLmxh''@;'; + put 'put ''YmVsPG9lWzFdKXtkZS5sYWJlbD1vZVsxXSxvZT1TZTticmVha31pZihvZSYmZGUubGFiZWw8b2VbMl0pe2RlLmxhYmVsPW9lWzJdLGRlLm9wcy5wdXNoKFNlKTticmVha31vZVsyXSYmZGUub3BzLnBvcCgpLGRlLnRyeXMucG9wKCk7Y29udGludWV9U2U9cS5jYWxsKGVlLGRlKX1jYXRjaChJ''@;'; + put 'put ''ZSl7U2U9WzYsSWVdLHNlPTB9ZmluYWxseXtKPW9lPTB9aWYoNSZTZVswXSl0aHJvdyBTZVsxXTtyZXR1cm57dmFsdWU6U2VbMF0/U2VbMV06dm9pZCAwLGRvbmU6ITB9fShbQWUsa2VdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5mZXRj''@;'; + put 'put ''aExvZz1RLmZldGNoTG9nQnlDaHVua3M9dm9pZCAwO3ZhciBOPVooOTc3OCk7US5mZXRjaExvZ0J5Q2h1bmtzPWZ1bmN0aW9uKGVlLHEsSixzZSl7cmV0dXJuIFkodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKG9lKXtzd2l0Y2gob2UubGFi''@;'; + put 'put ''ZWwpe2Nhc2UgMDpyZXR1cm5bNCwoMCxRLmZldGNoTG9nKShlZSxxLEosMCxzZSldO2Nhc2UgMTpyZXR1cm5bMixvZS5zZW50KCldfX0pfSl9LFEuZmV0Y2hMb2c9ZnVuY3Rpb24oZWUscSxKLHNlLG9lKXtyZXR1cm4gWSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBjZSxk''@;'; + put 'put ''ZSx2ZSxBZSxrZTtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKFNlKXtzd2l0Y2goU2UubGFiZWwpe2Nhc2UgMDpjZT1pZS5sb2dnZXJ8fGxlLGRlPSIiLHZlPW9lPDFlND9vZToxZTQsU2UubGFiZWw9MTtjYXNlIDE6cmV0dXJuIGNlLmluZm8oIkZldGNoaW5nIGxvZ3MgZnJvbSBsaW5lIG5vOiAi''@;'; + put 'put ''LmNvbmNhdChzZSsxLCIgdG8gIikuY29uY2F0KHNlK3ZlLCIgb2YgIikuY29uY2F0KG9lLCIuIikpLFs0LGVlLmdldCgiIi5jb25jYXQoSiwiP3N0YXJ0PSIpLmNvbmNhdChzZSwiJmxpbWl0PSIpLmNvbmNhdCh2ZSkscSkudGhlbihmdW5jdGlvbihJZSl7cmV0dXJuIEllLnJlc3VsdH0pLmNh''@;'; + put 'put ''dGNoKGZ1bmN0aW9uKEllKXt0aHJvdygwLE4ucHJlZml4TWVzc2FnZSkoSWUsIkVycm9yIHdoaWxlIGdldHRpbmcgbG9nLiAiKX0pXTtjYXNlIDI6aWYoMD09PShBZT1TZS5zZW50KCkpLml0ZW1zLmxlbmd0aClyZXR1cm5bMyw0XTtrZT1BZS5pdGVtcy5tYXAoZnVuY3Rpb24oSWUpe3JldHVy''@;'; + put 'put ''biBJZS5saW5lfSkuam9pbigiXG4iKSxkZSs9a2Usc2UrPXZlLFNlLmxhYmVsPTM7Y2FzZSAzOmlmKHNlPG9lKXJldHVyblszLDFdO1NlLmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyLGRlXX19KX0pfX0sNzE0OihVLFEsWik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEs''@;'; + put 'put ''Il9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZm9ybWF0RGF0YUZvclJlcXVlc3Q9dm9pZCAwO3ZhciBpZT1aKDI0MDIpLGxlPVooNDc5OSk7US5mb3JtYXREYXRhRm9yUmVxdWVzdD1mdW5jdGlvbihZKXt2YXIgVz1bXSxOPTAsZWU9e307Zm9yKHZhciBxIGluIFkpaWYoISgwLGllLmlzRm9y''@;'; + put 'put ''bWF0c1RhYmxlKShxKXx8IU9iamVjdC5rZXlzKFkpLmluY2x1ZGVzKHEucmVwbGFjZSgvXlwkLywiIikpKXtOKyssKDAsaWUuaXNGb3JtYXRzVGFibGUpKHEpfHxXLnB1c2gocSk7dmFyIEo9KDAsaWUuY29udmVydFRvQ1NWKShZLHEpO2lmKCJFUlJPUjogTEFSR0UgU1RSSU5HIExFTkdUSCI9''@;'; + put 'put ''PT1KKXRocm93IG5ldyBFcnJvcigiVGhlIG1heCBsZW5ndGggb2YgYSBzdHJpbmcgdmFsdWUgaW4gU0FTanMgaXMgMzI3NjUgY2hhcmFjdGVycy4iKTtpZihKLmxlbmd0aD4xNmUzKXt2YXIgc2U9KDAsbGUuc3BsaXRDaHVua3MpKEopO2VlWyJzYXNqcyIuY29uY2F0KE4sImRhdGEwIildPXNl''@;'; + put 'put ''Lmxlbmd0aCxzZS5mb3JFYWNoKGZ1bmN0aW9uKG9lLGNlKXtlZVsic2FzanMiLmNvbmNhdChOLCJkYXRhIikuY29uY2F0KGNlKzEpXT1vZX0pfWVsc2UgZWVbInNhc2pzIi5jb25jYXQoTiwiZGF0YSIpXT1KfXJldHVybiBlZS5zYXNqc190YWJsZXM9Vy5qb2luKCIgIiksZWV9fSwxODg0OihV''@;'; + put 'put ''LFEsWik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZ2V0VmFsaWRKc29uPXZvaWQgMDt2YXIgaWU9WigxMzk1KTtRLmdldFZhbGlkSnNvbj1mdW5jdGlvbihsZSl7dHJ5e2lmKG51bGw9PWxlKXRocm93IG5ldyBpZS5J''@;'; + put 'put ''bnZhbGlkSnNvbkVycm9yO2lmKEFycmF5LmlzQXJyYXkobGUpKXRocm93IG5ldyBpZS5Kc29uUGFyc2VBcnJheUVycm9yO3JldHVybiJvYmplY3QiPT10eXBlb2YgbGU/bGU6IiI9PT1sZT97fTpKU09OLnBhcnNlKGxlKX1jYXRjaChZKXt0aHJvdyBZIGluc3RhbmNlb2YgaWUuSnNvblBhcnNl''@;'; + put 'put ''QXJyYXlFcnJvcj9ZOm5ldyBpZS5JbnZhbGlkSnNvbkVycm9yfX19LDU5Mjg6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKFksVyxOLGVlKXt2b2lkIDA9PT1lZSYmKGVlPU4pLE9i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShZLGVlLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXW05dfX0pfTpmdW5jdGlvbihZLFcsTixlZSl7dm9pZCAwPT09ZWUmJihlZT1OKSxZW2VlXT1XW05dfSksbGU9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKFksVyl7''@;'; + put 'put ''Zm9yKHZhciBOIGluIFkpImRlZmF1bHQiPT09Tnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFcsTil8fGllKFcsWSxOKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGxlKFooMzMwMiksUSksbGUoWig3OTIyKSxRKSxsZSha''@;'; + put 'put ''KDM3OTMpLFEpLGxlKFooMjQwMiksUSksbGUoWig2MTE2KSxRKSxsZShaKDk4MjUpLFEpLGxlKFooOTkwKSxRKSxsZShaKDE4ODQpLFEpLGxlKFooNDI0MyksUSksbGUoWigyNTcpLFEpLGxlKFooMiksUSksbGUoWigyNjE1KSxRKSxsZShaKDI5MjApLFEpLGxlKFooMjQyMiksUSksbGUoWigz''@;'; + put 'put ''MSksUSksbGUoWig2NTE1KSxRKSxsZShaKDY0MTYpLFEpLGxlKFooMjgxMyksUSksbGUoWig5ODk2KSxRKSxsZShaKDQ3OTkpLFEpLGxlKFooNDUxNiksUSl9LDQyNDM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig0MTU1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01v''@;'; + put 'put ''ZHVsZSIse3ZhbHVlOiEwfSksUS5pc05vZGU9dm9pZCAwLFEuaXNOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PWllJiZudWxsIT1pZS52ZXJzaW9ucyYmbnVsbCE9aWUudmVyc2lvbnMubm9kZX19LDI1NzooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHko''@;'; + put 'put ''USwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5pc1JlbGF0aXZlUGF0aD12b2lkIDAsUS5pc1JlbGF0aXZlUGF0aD1mdW5jdGlvbihaKXtyZXR1cm4hIVomJiFaLnN0YXJ0c1dpdGgoIi8iKX19LDI6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNN''@;'; + put 'put ''b2R1bGUiLHt2YWx1ZTohMH0pLFEuaXNVcmk9dm9pZCAwLFEuaXNVcmk9ZnVuY3Rpb24oWil7cmV0dXJuL15cL2ZvbGRlcnNcL2ZvbGRlcnNcLy8udGVzdChaKX19LDI2MTU6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZToh''@;'; + put 'put ''MH0pLFEuaXNVcmw9dm9pZCAwLFEuaXNVcmw9ZnVuY3Rpb24oWil7dHJ5e3ZhciBpZT1uZXcgVVJMKFopO2lmKCFbImh0dHA6IiwiaHR0cHM6Il0uaW5jbHVkZXMoaWUucHJvdG9jb2wpKXJldHVybiExfWNhdGNoKGxlKXtyZXR1cm4hMX1yZXR1cm4hMH19LDEyMTA6ZnVuY3Rpb24oVSxRKXsi''@;'; + put 'put ''dXNlIHN0cmljdCI7dmFyIFoscSxpZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24ocSxKLHNlLG9lKXtyZXR1cm4gbmV3KHNlfHwoc2U9UHJvbWlzZSkpKGZ1bmN0aW9uKGNlLGRlKXtmdW5jdGlvbiB2ZShTZSl7dHJ5e2tlKG9lLm5leHQoU2UpKX1jYXRjaChJZSl7ZGUoSWUpfX1m''@;'; + put 'put ''dW5jdGlvbiBBZShTZSl7dHJ5e2tlKG9lLnRocm93KFNlKSl9Y2F0Y2goSWUpe2RlKEllKX19ZnVuY3Rpb24ga2UoU2Upe3ZhciBJZTtTZS5kb25lP2NlKFNlLnZhbHVlKTooSWU9U2UudmFsdWUsSWUgaW5zdGFuY2VvZiBzZT9JZTpuZXcgc2UoZnVuY3Rpb24oVGUpe1RlKEllKX0pKS50aGVu''@;'; + put 'put ''KHZlLEFlKX1rZSgob2U9b2UuYXBwbHkocSxKfHxbXSkpLm5leHQoKSl9KX0sbGU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24ocSxKKXt2YXIgc2Usb2UsY2UsZGUsdmU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmY2VbMF0pdGhyb3cgY2VbMV07cmV0dXJuIGNlWzFd''@;'; + put 'put ''fSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGRlPXtuZXh0OkFlKDApLHRocm93OkFlKDEpLHJldHVybjpBZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGRlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGRlO2Z1bmN0aW9uIEFlKGtlKXtyZXR1cm4g''@;'; + put 'put ''ZnVuY3Rpb24oU2Upe3JldHVybiBmdW5jdGlvbihJZSl7aWYoc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7dmU7KXRyeXtpZihzZT0xLG9lJiYoY2U9MiZJZVswXT9vZS5yZXR1cm46SWVbMF0/b2UudGhyb3d8fCgoY2U9b2Uu''@;'; + put 'put ''cmV0dXJuKSYmY2UuY2FsbChvZSksMCk6b2UubmV4dCkmJiEoY2U9Y2UuY2FsbChvZSxJZVsxXSkpLmRvbmUpcmV0dXJuIGNlO3N3aXRjaChvZT0wLGNlJiYoSWU9WzImSWVbMF0sY2UudmFsdWVdKSxJZVswXSl7Y2FzZSAwOmNhc2UgMTpjZT1JZTticmVhaztjYXNlIDQ6cmV0dXJuIHZlLmxh''@;'; + put 'put ''YmVsKysse3ZhbHVlOkllWzFdLGRvbmU6ITF9O2Nhc2UgNTp2ZS5sYWJlbCsrLG9lPUllWzFdLEllPVswXTtjb250aW51ZTtjYXNlIDc6SWU9dmUub3BzLnBvcCgpLHZlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChjZT0oY2U9dmUudHJ5cykubGVuZ3RoPjAmJmNlW2NlLmxl''@;'; + put 'put ''bmd0aC0xXSl8fDYhPT1JZVswXSYmMiE9PUllWzBdKSl7dmU9MDtjb250aW51ZX1pZigzPT09SWVbMF0mJighY2V8fEllWzFdPmNlWzBdJiZJZVsxXTxjZVszXSkpe3ZlLmxhYmVsPUllWzFdO2JyZWFrfWlmKDY9PT1JZVswXSYmdmUubGFiZWw8Y2VbMV0pe3ZlLmxhYmVsPWNlWzFdLGNlPUll''@;'; + put 'put ''O2JyZWFrfWlmKGNlJiZ2ZS5sYWJlbDxjZVsyXSl7dmUubGFiZWw9Y2VbMl0sdmUub3BzLnB1c2goSWUpO2JyZWFrfWNlWzJdJiZ2ZS5vcHMucG9wKCksdmUudHJ5cy5wb3AoKTtjb250aW51ZX1JZT1KLmNhbGwocSx2ZSl9Y2F0Y2goVGUpe0llPVs2LFRlXSxvZT0wfWZpbmFsbHl7c2U9Y2U9''@;'; + put 'put ''MH1pZig1JkllWzBdKXRocm93IEllWzFdO3JldHVybnt2YWx1ZTpJZVswXT9JZVsxXTp2b2lkIDAsZG9uZTohMH19KFtrZSxTZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLm9wZW5Mb2dpblByb21wdD12b2lkIDAsKHE9Wnx8KFo9e30p''@;'; + put 'put ''KS5zdHlsZXM9InNhc2pzQWRhcHRlclN0eWxlcyIscS5vdmVybGF5PSJzYXNqc0FkYXB0ZXJMb2dpblByb21wdEJHIixxLmRpYWxvZz0ic2FzanNBZGFwdGVyTG9naW5Qcm9tcHQiO3ZhciBZPSJzYXNqcy1hZGFwdGVyIixXPXtwb3BVcDoiIi5jb25jYXQoWSwicG9wVXAiKSxwb3BVcEJHOiIi''@;'; + put 'put ''LmNvbmNhdChZLCJwb3BVcEJHIil9O1Eub3BlbkxvZ2luUHJvbXB0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHEpe3JldHVybiBpZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBKLHNlLG9lLGNlLGRlLHZlLEFlLGtlO3JldHVybiBsZSh0aGlz''@;'; + put 'put ''LGZ1bmN0aW9uKFNlKXtyZXR1cm4oSj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5pZD1aLnN0eWxlcyxKLmlubmVyVGV4dD1lZSwoc2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlkPVoub3ZlcmxheSxzZS5jbGFzc0xpc3QuYWRkKFcucG9wVXBCRyksKG9lPWRv''@;'; + put 'put ''Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pZD1aLmRpYWxvZyxvZS5jbGFzc0xpc3QuYWRkKFcucG9wVXApLChjZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoMSIpKS5pbm5lclRleHQ9IlNlc3Npb24gRXhwaXJlZCEiLG9lLmFwcGVuZENoaWxkKGNlKSxkZT1kb2N1bWVudC5jcmVh''@;'; + put 'put ''dGVFbGVtZW50KCJkaXYiKSwodmU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKS5pbm5lclRleHQ9IllvdSBuZWVkIHRvIHJlbG9naW4sIGNsaWNrIE9LIHRvIGxvZ2luLiIsZGUuYXBwZW5kQ2hpbGQodmUpLG9lLmFwcGVuZENoaWxkKGRlKSwoQWU9ZG9jdW1lbnQuY3JlYXRlRWxl''@;'; + put 'put ''bWVudCgiYnV0dG9uIikpLmNsYXNzTGlzdC5hZGQoImNhbmNlbCIpLEFlLmlubmVyVGV4dD0iQ2FuY2VsIixBZS5vbmNsaWNrPWZ1bmN0aW9uKCl7TigpLHEoITEpfSxvZS5hcHBlbmRDaGlsZChBZSksKGtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpKS5jbGFzc0xpc3QuYWRk''@;'; + put 'put ''KCJjb25maXJtIiksa2UuaW5uZXJUZXh0PSJPayIsa2Uub25jbGljaz1mdW5jdGlvbigpe04oKSxxKCEwKX0sb2UuYXBwZW5kQ2hpbGQoa2UpLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChKKSxkb2N1bWVudC5ib2R5LmFw''@;'; + put 'put ''cGVuZENoaWxkKHNlKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG9lKSxbMl19KX0pfSl9O3ZhciBOPWZ1bmN0aW9uKCl7T2JqZWN0LnZhbHVlcyhaKS5mb3JFYWNoKGZ1bmN0aW9uKHEpe3ZhciBKLHNlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHEpO251bGw9PT0oSj1udWxsPT1zZT92''@;'; + put 'put ''b2lkIDA6c2UucGFyZW50Tm9kZSl8fHZvaWQgMD09PUp8fEoucmVtb3ZlQ2hpbGQoc2UpfSksZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iYXV0byJ9LGVlPSJcbi4iLmNvbmNhdChXLnBvcFVwQkcsIiAsXG4uIikuY29uY2F0KFcucG9wVXAsIiB7XG4gIHotaW5kZXg6IDEwMDAwO1xu''@;'; + put 'put ''fVxuLiIpLmNvbmNhdChXLnBvcFVwLCIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9w''@;'; + put 'put ''OiA0MCU7XG4gIGxlZnQ6IDUwJTtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LWZhbWlseTogJ1BUIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB6LWluZGV4OiA5OTk7XG4gIG92ZXJmbG93OiBo''@;'; + put 'put ''aWRkZW47XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUw''@;'; + put 'put ''JSk7XG59XG4uIikuY29uY2F0KFcucG9wVXAsIiA+IGgxIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDVweDtcbiAgbWluLWhlaWdodDogNDBw''@;'; + put 'put ''eDtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIGJvcmRlci13aWR0aDogNXB4O1xu''@;'; + put 'put ''ICBib3JkZXItY29sb3I6IGJsYWNrO1xufVxuLiIpLmNvbmNhdChXLnBvcFVwLCIgPiBkaXYge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLTEwOHB4KTtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAg''@;'; + put 'put ''LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDUlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNjY2M7XG4gIGJvcmRlci1zdHlsZTog''@;'; + put 'put ''bm9uZSBub25lIHNvbGlkIG5vbmU7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLiIpLmNvbmNhdChXLnBvcFVwLCIgPiBkaXYgPiBzcGFuIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94''@;'; + put 'put ''O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDEwOHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4uIikuY29uY2F0KFcu''@;'; + put 'put ''cG9wVXAsIiAuY2FuY2VsIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uIikuY29uY2F0KFcucG9wVXAsIiAuY29uZmlybSB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi4iKS5jb25jYXQoVy5wb3BVcCwiID4gYnV0dG9uIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gt''@;'; + put 'put ''c2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDUwJTtcbiAgYm9yZGVyOiAxcHggbm9uZSAjY2NjO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7''@;'; + put 'put ''XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEsIDEsIDEsIDAuMik7XG59XG4uIikuY29uY2F0KFcucG9wVXAsIiA+IGJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbi4iKS5jb25jYXQo''@;'; + put 'put ''Vy5wb3BVcEJHLCIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgb3BhY2l0eTogMC45NTtcbiAgei1pbmRl''@;'; + put 'put ''eDogNTA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCgjMDM3OGNkLCAjMDEyMDM2KTtcbn1cbiIpfSwyOTIwOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLm5lZWRzUmV0cnk9dm9pZCAw''@;'; + put 'put ''LFEubmVlZHNSZXRyeT1mdW5jdGlvbihaKXtyZXR1cm4hIVomJihaLmluY2x1ZGVzKCciZXJyb3JDb2RlIjo0MDMnKSYmWi5pbmNsdWRlcygiX2NzcmYiKSYmWi5pbmNsdWRlcygiWC1DU1JGLVRPS0VOIil8fFouaW5jbHVkZXMoJyJzdGF0dXMiOjQwMycpJiZaLmluY2x1ZGVzKCciZXJyb3Ii''@;'; + put 'put ''OiJGb3JiaWRkZW4iJyl8fFouaW5jbHVkZXMoJyJzdGF0dXMiOjQ0OScpJiZaLmluY2x1ZGVzKCJBdXRoZW50aWNhdGlvbiBzdWNjZXNzLCByZXRyeSBvcmlnaW5hbCByZXF1ZXN0IikpfX0sMjQyMjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01v''@;'; + put 'put ''ZHVsZSIse3ZhbHVlOiEwfSksUS5wYXJzZUdlbmVyYXRlZENvZGU9dm9pZCAwLFEucGFyc2VHZW5lcmF0ZWRDb2RlPWZ1bmN0aW9uKFope3JldHVybiBaLnNwbGl0KCJcbiIpLmZpbHRlcihmdW5jdGlvbihpZSl7cmV0dXJuIGllLnRyaW0oKS5zdGFydHNXaXRoKCJNUFJJTlQiKX0pLmpvaW4o''@;'; + put 'put ''IlxyXG4iKX19LDMxOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNTEwOCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucGFyc2VTYXNWaXlhTG9nPXZvaWQgMCxRLnBhcnNlU2FzVml5YUxvZz1mdW5jdGlvbihsZSl7dmFyIFk7dHJ5''@;'; + put 'put ''e1k9bGUuaXRlbXM/bGUuaXRlbXMubWFwKGZ1bmN0aW9uKFcpe3JldHVybiBXLmxpbmV9KS5qb2luKCJcbiIpOkpTT04uc3RyaW5naWZ5KGxlKX1jYXRjaChXKXtpZS5lcnJvcigiQW4gZXJyb3IgaGFzIG9jY3VycmVkIHdoaWxlIHBhcnNpbmcgdGhlIGxvZyByZXNwb25zZSIsVyksWT1sZX1y''@;'; + put 'put ''ZXR1cm4gWX19LDY1MTU6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucGFyc2VTb3VyY2VDb2RlPXZvaWQgMCxRLnBhcnNlU291cmNlQ29kZT1mdW5jdGlvbihaKXtyZXR1cm4gWi5zcGxpdCgiXG4iKS5maWx0''@;'; + put 'put ''ZXIoZnVuY3Rpb24oaWUpe3JldHVybiBpZS50cmltKCkuc3Vic3RyaW5nKDAsMTApLnRyaW1TdGFydCgpLm1hdGNoKC9eXGQvKX0pLmpvaW4oIlxyXG4iKX19LDY0MTY6ZnVuY3Rpb24oVSxRLFopeyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKFcs''@;'; + put 'put ''TixlZSxxKXtyZXR1cm4gbmV3KGVlfHwoZWU9UHJvbWlzZSkpKGZ1bmN0aW9uKEosc2Upe2Z1bmN0aW9uIG9lKHZlKXt0cnl7ZGUocS5uZXh0KHZlKSl9Y2F0Y2goQWUpe3NlKEFlKX19ZnVuY3Rpb24gY2UodmUpe3RyeXtkZShxLnRocm93KHZlKSl9Y2F0Y2goQWUpe3NlKEFlKX19ZnVuY3Rp''@;'; + put 'put ''b24gZGUodmUpe3ZhciBBZTt2ZS5kb25lP0oodmUudmFsdWUpOihBZT12ZS52YWx1ZSxBZSBpbnN0YW5jZW9mIGVlP0FlOm5ldyBlZShmdW5jdGlvbihrZSl7a2UoQWUpfSkpLnRoZW4ob2UsY2UpfWRlKChxPXEuYXBwbHkoVyxOfHxbXSkpLm5leHQoKSl9KX0sbGU9dGhpcyYmdGhpcy5fX2dl''@;'; + put 'put ''bmVyYXRvcnx8ZnVuY3Rpb24oVyxOKXt2YXIgZWUscSxKLHNlLG9lPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkpbMF0pdGhyb3cgSlsxXTtyZXR1cm4gSlsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBzZT17bmV4dDpjZSgwKSx0aHJvdzpjZSgxKSxyZXR1cm46Y2UoMil9LCJm''@;'; + put 'put ''dW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihzZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxzZTtmdW5jdGlvbiBjZShkZSl7cmV0dXJuIGZ1bmN0aW9uKHZlKXtyZXR1cm4gZnVuY3Rpb24oQWUpe2lmKGVlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRv''@;'; + put 'put ''ciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO29lOyl0cnl7aWYoZWU9MSxxJiYoSj0yJkFlWzBdP3EucmV0dXJuOkFlWzBdP3EudGhyb3d8fCgoSj1xLnJldHVybikmJkouY2FsbChxKSwwKTpxLm5leHQpJiYhKEo9Si5jYWxsKHEsQWVbMV0pKS5kb25lKXJldHVybiBKO3N3aXRjaChx''@;'; + put 'put ''PTAsSiYmKEFlPVsyJkFlWzBdLEoudmFsdWVdKSxBZVswXSl7Y2FzZSAwOmNhc2UgMTpKPUFlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gb2UubGFiZWwrKyx7dmFsdWU6QWVbMV0sZG9uZTohMX07Y2FzZSA1Om9lLmxhYmVsKysscT1BZVsxXSxBZT1bMF07Y29udGludWU7Y2FzZSA3OkFlPW9lLm9w''@;'; + put 'put ''cy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoSj0oSj1vZS50cnlzKS5sZW5ndGg+MCYmSltKLmxlbmd0aC0xXSl8fDYhPT1BZVswXSYmMiE9PUFlWzBdKSl7b2U9MDtjb250aW51ZX1pZigzPT09QWVbMF0mJighSnx8QWVbMV0+SlswXSYmQWVbMV08SlszXSkp''@;'; + put 'put ''e29lLmxhYmVsPUFlWzFdO2JyZWFrfWlmKDY9PT1BZVswXSYmb2UubGFiZWw8SlsxXSl7b2UubGFiZWw9SlsxXSxKPUFlO2JyZWFrfWlmKEomJm9lLmxhYmVsPEpbMl0pe29lLmxhYmVsPUpbMl0sb2Uub3BzLnB1c2goQWUpO2JyZWFrfUpbMl0mJm9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgp''@;'; + put 'put ''O2NvbnRpbnVlfUFlPU4uY2FsbChXLG9lKX1jYXRjaChrZSl7QWU9WzYsa2VdLHE9MH1maW5hbGx5e2VlPUo9MH1pZig1JkFlWzBdKXRocm93IEFlWzFdO3JldHVybnt2YWx1ZTpBZVswXT9BZVsxXTp2b2lkIDAsZG9uZTohMH19KFtkZSx2ZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShR''@;'; + put 'put ''LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnBhcnNlU2FzVml5YURlYnVnUmVzcG9uc2U9dm9pZCAwO3ZhciBZPVooNTkyOCk7US5wYXJzZVNhc1ZpeWFEZWJ1Z1Jlc3BvbnNlPWZ1bmN0aW9uKFcsTixlZSl7cmV0dXJuIGllKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IHEsSjtyZXR1cm4gbGUodGhpcyxmdW5jdGlvbihzZSl7aWYocT1XLnNwbGl0KC88aWZyYW1lIHN0eWxlPSJ3aWR0aDogOTklOyBoZWlnaHQ6IDUwMHB4IiBzcmM9Inw8aWZyYW1lIHN0eWxlPSJ3aWR0aDogOTklOyBoZWlnaHQ6IDUwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOkNhbnZhczsiIHNy''@;'; + put 'put ''Yz0vKVsxXSwhKEo9cT9xLnNwbGl0KC8iPjxcL2lmcmFtZT58PjxcL2lmcmFtZT4vKVswXTpudWxsKSl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHdlYm91dCBmaWxlIFVSTC4iKTtyZXR1cm5bMixOLmdldChlZStKLHZvaWQgMCwidGV4dC9wbGFpbiIpLnRoZW4oZnVuY3Rpb24o''@;'; + put 'put ''b2Upe3JldHVybigwLFkuZ2V0VmFsaWRKc29uKShvZS5yZXN1bHQpfSldfSl9KX19LDI4MTM6KFUsUSxaKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWU9Wig1MTA4KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5wYXJzZVdlYm91dFJlc3BvbnNlPXZv''@;'; + put 'put ''aWQgMDt2YXIgbGU9WigxMzk1KTtRLnBhcnNlV2Vib3V0UmVzcG9uc2U9ZnVuY3Rpb24oWSxXKXt2YXIgTj0iIjtpZihZLmluY2x1ZGVzKCI+PndlYm91dEJFR0lOPDwiKSl0cnl7Tj1ZLnNwbGl0KCI+PndlYm91dEJFR0lOPDwiKVsxXS5zcGxpdCgiPj53ZWJvdXRFTkQ8PCIpWzBdfWNhdGNo''@;'; + put 'put ''KGVlKXtpZihXKXRocm93IG5ldyBsZS5XZWJvdXRSZXNwb25zZUVycm9yKFcpO049IiIsaWUuZXJyb3IoZWUpfXJldHVybiBOfX0sOTg5NjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5zZXJpYWxpemU9dm9p''@;'; + put 'put ''ZCAwLFEuc2VyaWFsaXplPWZ1bmN0aW9uKFope3ZhciBpZT1bXTtmb3IodmFyIGxlIGluIFopaWYoWi5oYXNPd25Qcm9wZXJ0eShsZSkpaWYoWltsZV1pbnN0YW5jZW9mIEFycmF5KWZvcih2YXIgWT0wLFc9WltsZV0ubGVuZ3RoO1k8VztZKyspaWUucHVzaChlbmNvZGVVUklDb21wb25lbnQo''@;'; + put 'put ''bGUpKyI9IitlbmNvZGVVUklDb21wb25lbnQoWltsZV1bWV0pKTtlbHNlIGllLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGxlKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFpbbGVdKSk7cmV0dXJuIGllLmpvaW4oIiYiKX19LDQ3OTk6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuc3BsaXRDaHVua3M9dm9pZCAwLFEuc3BsaXRDaHVua3M9ZnVuY3Rpb24oWil7Zm9yKHZhciBsZT1NYXRoLmNlaWwoWi5sZW5ndGgvMTZlMyksWT1uZXcgQXJyYXkobGUpLFc9MCxOPTA7VzxsZTsrK1csTis9MTZlMylZW1dd''@;'; + put 'put ''PVouc3Vic3RyKE4sMTZlMyk7cmV0dXJuIFl9fSw0NTE2OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnZhbGlkYXRlSW5wdXQ9US5JTlZBTElEX1RBQkxFX1NUUlVDVFVSRT1RLk1PUkVfSU5GTz12b2lkIDAs''@;'; + put 'put ''US5NT1JFX0lORk89IkZvciBtb3JlIGluZm8gc2VlIGh0dHBzOi8vc2FzanMuaW8vc2FzanMtYWRhcHRlci8jcmVxdWVzdC1yZXNwb25zZSIsUS5JTlZBTElEX1RBQkxFX1NUUlVDVFVSRT0iUGFyYW1ldGVyIGRhdGEgY29udGFpbnMgaW52YWxpZCB0YWJsZSBzdHJ1Y3R1cmUuICIuY29uY2F0''@;'; + put 'put ''KFEuTU9SRV9JTkZPKSxRLnZhbGlkYXRlSW5wdXQ9ZnVuY3Rpb24oaWUpe2lmKG51bGw9PT1pZSlyZXR1cm57c3RhdHVzOiEwLG1zZzoiIn07aWYoIm9iamVjdCIhPT1aKGllKSlyZXR1cm57c3RhdHVzOiExLG1zZzpRLklOVkFMSURfVEFCTEVfU1RSVUNUVVJFfTt2YXIgbGU9ZnVuY3Rpb24o''@;'; + put 'put ''b2Upe3JldHVybiBvZS5tYXRjaCgvXlwkLiovKSYmT2JqZWN0LmtleXMoaWUpLmluY2x1ZGVzKG9lLnJlcGxhY2UoL15cJC8sIiIpKX07Zm9yKHZhciBZIGluIGllKXtpZighWS5tYXRjaCgvXlthLXpBLVpfXS8pJiYhbGUoWSkpcmV0dXJue3N0YXR1czohMSxtc2c6IkZpcnN0IGxldHRlciBv''@;'; + put 'put ''ZiB0YWJsZSBzaG91bGQgYmUgYWxwaGFiZXQgb3IgdW5kZXJzY29yZS4ifTtpZighWS5tYXRjaCgvXlthLXpBLVpfXVthLXpBLVowLTlfXSokLykmJiFsZShZKSlyZXR1cm57c3RhdHVzOiExLG1zZzoiVGFibGUgbmFtZSBzaG91bGQgYmUgYWxwaGFudW1lcmljLiJ9O2lmKFkubGVuZ3RoPjMy''@;'; + put 'put ''KXJldHVybntzdGF0dXM6ITEsbXNnOiJNYXhpbXVtIGxlbmd0aCBmb3IgdGFibGUgbmFtZSBjb3VsZCBiZSAzMiBjaGFyYWN0ZXJzLiJ9O2lmKCJBcnJheSIhPT1aKGllW1ldKSYmIWxlKFkpKXJldHVybntzdGF0dXM6ITEsbXNnOlEuSU5WQUxJRF9UQUJMRV9TVFJVQ1RVUkV9O2Zvcih2YXIg''@;'; + put 'put ''Vz0wLE49aWVbWV07VzxOLmxlbmd0aDtXKyspe3ZhciBlZT1OW1ddO2lmKCJvYmplY3QiIT09WihlZSkpcmV0dXJue3N0YXR1czohMSxtc2c6IlRhYmxlICIuY29uY2F0KFksIiBjb250YWlucyBpbnZhbGlkIHN0cnVjdHVyZS4gIikuY29uY2F0KFEuTU9SRV9JTkZPKX07Zm9yKHZhciBxPTAs''@;'; + put 'put ''Sj1PYmplY3Qua2V5cyhlZSk7cTxKLmxlbmd0aDtxKyspe3ZhciBzZT1KW3FdO2lmKHZvaWQgMD09PWVlW3NlXSlyZXR1cm57c3RhdHVzOiExLG1zZzoiQSByb3cgaW4gdGFibGUgIi5jb25jYXQoWSwiIGNvbnRhaW5zIGludmFsaWQgdmFsdWUuIENhbid0IGFzc2lnbiB1bmRlZmluZWQgdG8g''@;'; + put 'put ''IikuY29uY2F0KHNlLCIuIil9fX19cmV0dXJue3N0YXR1czohMCxtc2c6IiJ9fTt2YXIgWj1mdW5jdGlvbihpZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoaWUpPyJBcnJheSI6dHlwZW9mIGllfX0sODk4MTooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtRLmZyb21DYWxsYmFjaz1mdW5jdGlvbihaKXty''@;'; + put 'put ''ZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKC4uLmllKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgaWVbaWUubGVuZ3RoLTFdKXJldHVybiBuZXcgUHJvbWlzZSgobGUsWSk9PntaLmNhbGwodGhpcywuLi5pZSwoVyxOKT0+bnVsbCE9Vz9ZKFcpOmxlKE4pKX0pO1ouYXBwbHko''@;'; + put 'put ''dGhpcyxpZSl9LCJuYW1lIix7dmFsdWU6Wi5uYW1lfSl9LFEuZnJvbVByb21pc2U9ZnVuY3Rpb24oWil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlvbiguLi5pZSl7Y29uc3QgbGU9aWVbaWUubGVuZ3RoLTFdO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBsZSlyZXR1cm4gWi5h''@;'; + put 'put ''cHBseSh0aGlzLGllKTtaLmFwcGx5KHRoaXMsaWUuc2xpY2UoMCwtMSkpLnRoZW4oWT0+bGUobnVsbCxZKSxsZSl9LCJuYW1lIix7dmFsdWU6Wi5uYW1lfSl9fSwyNTExOmZ1bmN0aW9uKFUsUSxaKXt2YXIgaWU7VT1aLm5tZChVKSxmdW5jdGlvbihsZSl7dmFyIFcsTj0yMTQ3NDgzNjQ3LHE9''@;'; + put 'put ''L154bi0tLyxKPS9bXlx4MjAtXHg3RV0vLHNlPS9bXHgyRVx1MzAwMlx1RkYwRVx1RkY2MV0vZyxvZT17b3ZlcmZsb3c6Ik92ZXJmbG93OiBpbnB1dCBuZWVkcyB3aWRlciBpbnRlZ2VycyB0byBwcm9jZXNzIiwibm90LWJhc2ljIjoiSWxsZWdhbCBpbnB1dCA+PSAweDgwIChub3QgYSBiYXNp''@;'; + put 'put ''YyBjb2RlIHBvaW50KSIsImludmFsaWQtaW5wdXQiOiJJbnZhbGlkIGlucHV0In0sY2U9TWF0aC5mbG9vcixkZT1TdHJpbmcuZnJvbUNoYXJDb2RlO2Z1bmN0aW9uIHZlKHope3Rocm93IFJhbmdlRXJyb3Iob2Vbel0pfWZ1bmN0aW9uIEFlKHosbmUpe2Zvcih2YXIgdGU9ei5sZW5ndGgseD1b''@;'; + put 'put ''XTt0ZS0tOyl4W3RlXT1uZSh6W3RlXSk7cmV0dXJuIHh9ZnVuY3Rpb24ga2UoeixuZSl7dmFyIHRlPXouc3BsaXQoIkAiKSx4PSIiO3JldHVybiB0ZS5sZW5ndGg+MSYmKHg9dGVbMF0rIkAiLHo9dGVbMV0pLHgrQWUoKHo9ei5yZXBsYWNlKHNlLCIuIikpLnNwbGl0KCIuIiksbmUpLmpvaW4o''@;'; + put 'put ''Ii4iKX1mdW5jdGlvbiBTZSh6KXtmb3IodmFyIG5lLHRlLHg9W10sUD0wLFY9ei5sZW5ndGg7UDxWOykobmU9ei5jaGFyQ29kZUF0KFArKykpPj01NTI5NiYmbmU8PTU2MzE5JiZQPFY/NTYzMjA9PSg2NDUxMiYodGU9ei5jaGFyQ29kZUF0KFArKykpKT94LnB1c2goKCgxMDIzJm5lKTw8MTAp''@;'; + put 'put ''KygxMDIzJnRlKSs2NTUzNik6KHgucHVzaChuZSksUC0tKTp4LnB1c2gobmUpO3JldHVybiB4fWZ1bmN0aW9uIEllKHope3JldHVybiBBZSh6LGZ1bmN0aW9uKG5lKXt2YXIgdGU9IiI7cmV0dXJuIG5lPjY1NTM1JiYodGUrPWRlKChuZS09NjU1MzYpPj4+MTAmMTAyM3w1NTI5NiksbmU9NTYz''@;'; + put 'put ''MjB8MTAyMyZuZSksdGUrZGUobmUpfSkuam9pbigiIil9ZnVuY3Rpb24gVGUoeixuZSl7cmV0dXJuIHorMjIrNzUqKHo8MjYpLSgoMCE9bmUpPDw1KX1mdW5jdGlvbiBFZSh6LG5lLHRlKXt2YXIgeD0wO2Zvcih6PXRlP2NlKHovNzAwKTp6Pj4xLHorPWNlKHovbmUpO3o+NDU1O3grPTM2KXo9''@;'; + put 'put ''Y2Uoei8zNSk7cmV0dXJuIGNlKHgrMzYqei8oeiszOCkpfWZ1bmN0aW9uIGhlKHope3ZhciBuZSx0ZSx4LFAsVixULFMsRix5ZSxDZSxEZSxQZT1bXSxRZT16Lmxlbmd0aCwkZT0wLGd0PTEyOCx3dD03Mjtmb3IoKHRlPXoubGFzdEluZGV4T2YoIi0iKSk8MCYmKHRlPTApLHg9MDt4PHRlOysr''@;'; + put 'put ''eCl6LmNoYXJDb2RlQXQoeCk+PTEyOCYmdmUoIm5vdC1iYXNpYyIpLFBlLnB1c2goei5jaGFyQ29kZUF0KHgpKTtmb3IoUD10ZT4wP3RlKzE6MDtQPFFlOyl7Zm9yKFY9JGUsVD0xLFM9MzY7UD49UWUmJnZlKCJpbnZhbGlkLWlucHV0IiksKChGPShEZT16LmNoYXJDb2RlQXQoUCsrKSktNDg8''@;'; + put 'put ''MTA/RGUtMjI6RGUtNjU8MjY/RGUtNjU6RGUtOTc8MjY/RGUtOTc6MzYpPj0zNnx8Rj5jZSgoTi0kZSkvVCkpJiZ2ZSgib3ZlcmZsb3ciKSwkZSs9RipULCEoRjwoeWU9Uzw9d3Q/MTpTPj13dCsyNj8yNjpTLXd0KSk7Uys9MzYpVD5jZShOLyhDZT0zNi15ZSkpJiZ2ZSgib3ZlcmZsb3ciKSxU''@;'; + put 'put ''Kj1DZTt3dD1FZSgkZS1WLG5lPVBlLmxlbmd0aCsxLDA9PVYpLGNlKCRlL25lKT5OLWd0JiZ2ZSgib3ZlcmZsb3ciKSxndCs9Y2UoJGUvbmUpLCRlJT1uZSxQZS5zcGxpY2UoJGUrKywwLGd0KX1yZXR1cm4gSWUoUGUpfWZ1bmN0aW9uIE8oeil7dmFyIG5lLHRlLHgsUCxWLFQsUyxGLHllLENl''@;'; + put 'put ''LERlLFBlLFFlLCRlLGd0LHd0PVtdO2ZvcihQZT0oej1TZSh6KSkubGVuZ3RoLG5lPTEyOCx0ZT0wLFY9NzIsVD0wO1Q8UGU7KytUKShEZT16W1RdKTwxMjgmJnd0LnB1c2goZGUoRGUpKTtmb3IoeD1QPXd0Lmxlbmd0aCxQJiZ3dC5wdXNoKCItIik7eDxQZTspe2ZvcihTPU4sVD0wO1Q8UGU7''@;'; + put 'put ''KytUKShEZT16W1RdKT49bmUmJkRlPFMmJihTPURlKTtmb3IoUy1uZT5jZSgoTi10ZSkvKFFlPXgrMSkpJiZ2ZSgib3ZlcmZsb3ciKSx0ZSs9KFMtbmUpKlFlLG5lPVMsVD0wO1Q8UGU7KytUKWlmKChEZT16W1RdKTxuZSYmKyt0ZT5OJiZ2ZSgib3ZlcmZsb3ciKSxEZT09bmUpe2ZvcihGPXRl''@;'; + put 'put ''LHllPTM2OyEoRjwoQ2U9eWU8PVY/MTp5ZT49VisyNj8yNjp5ZS1WKSk7eWUrPTM2KXd0LnB1c2goZGUoVGUoQ2UrKGd0PUYtQ2UpJSgkZT0zNi1DZSksMCkpKSxGPWNlKGd0LyRlKTt3dC5wdXNoKGRlKFRlKEYsMCkpKSxWPUVlKHRlLFFlLHg9PVApLHRlPTAsKyt4fSsrdGUsKytuZX1yZXR1''@;'; + put 'put ''cm4gd3Quam9pbigiIil9Vz17dmVyc2lvbjoiMS4zLjIiLHVjczI6e2RlY29kZTpTZSxlbmNvZGU6SWV9LGRlY29kZTpoZSxlbmNvZGU6Tyx0b0FTQ0lJOmZ1bmN0aW9uKHope3JldHVybiBrZSh6LGZ1bmN0aW9uKG5lKXtyZXR1cm4gSi50ZXN0KG5lKT8ieG4tLSIrTyhuZSk6bmV9KX0sdG9V''@;'; + put 'put ''bmljb2RlOmZ1bmN0aW9uKHope3JldHVybiBrZSh6LGZ1bmN0aW9uKG5lKXtyZXR1cm4gcS50ZXN0KG5lKT9oZShuZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpKTpuZX0pfX0sdm9pZCAwPT09KGllPWZ1bmN0aW9uKCl7cmV0dXJuIFd9LmNhbGwoUSxaLFEsVSkpfHwoVS5leHBvcnRzPWllKX0o''@;'; + put 'put ''KX0sODU3NTooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBpZT1aKDI1MTEpLGxlPVooMjUwMik7ZnVuY3Rpb24gWSgpe3RoaXMucHJvdG9jb2w9bnVsbCx0aGlzLnNsYXNoZXM9bnVsbCx0aGlzLmF1dGg9bnVsbCx0aGlzLmhvc3Q9bnVsbCx0aGlzLnBvcnQ9bnVsbCx0aGlzLmhvc3RuYW1l''@;'; + put 'put ''PW51bGwsdGhpcy5oYXNoPW51bGwsdGhpcy5zZWFyY2g9bnVsbCx0aGlzLnF1ZXJ5PW51bGwsdGhpcy5wYXRobmFtZT1udWxsLHRoaXMucGF0aD1udWxsLHRoaXMuaHJlZj1udWxsfVEuUWM9SWU7dmFyIFc9L14oW2EtejAtOS4rLV0rOikvaSxOPS86WzAtOV0qJC8sZWU9L14oXC9cLz8oPyFc''@;'; + put 'put ''LylbXlw/XHNdKikoXD9bXlxzXSopPyQvLHE9WyJ7IiwifSIsInwiLCJcXCIsIl4iLCJgIl0uY29uY2F0KFsiPCIsIj4iLCciJywiYCIsIiAiLCJcciIsIlxuIiwiXHQiXSksSj1bIiciXS5jb25jYXQocSksc2U9WyIlIiwiLyIsIj8iLCI7IiwiIyJdLmNvbmNhdChKKSxvZT1bIi8iLCI/Iiwi''@;'; + put 'put ''IyJdLGNlPS9eWythLXowLTlBLVpfLV17MCw2M30kLyxkZT0vXihbK2EtejAtOUEtWl8tXXswLDYzfSkoLiopJC8sdmU9e2phdmFzY3JpcHQ6ITAsImphdmFzY3JpcHQ6IjohMH0sQWU9e2phdmFzY3JpcHQ6ITAsImphdmFzY3JpcHQ6IjohMH0sa2U9e2h0dHA6ITAsaHR0cHM6ITAsZnRwOiEw''@;'; + put 'put ''LGdvcGhlcjohMCxmaWxlOiEwLCJodHRwOiI6ITAsImh0dHBzOiI6ITAsImZ0cDoiOiEwLCJnb3BoZXI6IjohMCwiZmlsZToiOiEwfSxTZT1aKDc2NzMpO2Z1bmN0aW9uIEllKFRlLEVlLGhlKXtpZihUZSYmbGUuaXNPYmplY3QoVGUpJiZUZSBpbnN0YW5jZW9mIFkpcmV0dXJuIFRlO3ZhciBP''@;'; + put 'put ''PW5ldyBZO3JldHVybiBPLnBhcnNlKFRlLEVlLGhlKSxPfVkucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKFRlLEVlLGhlKXtpZighbGUuaXNTdHJpbmcoVGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIlBhcmFtZXRlciAndXJsJyBtdXN0IGJlIGEgc3RyaW5nLCBub3QgIit0eXBlb2YgVGUpO3Zh''@;'; + put 'put ''ciBPPVRlLmluZGV4T2YoIj8iKSx6PS0xIT09TyYmTzxUZS5pbmRleE9mKCIjIik/Ij8iOiIjIixuZT1UZS5zcGxpdCh6KTtuZVswXT1uZVswXS5yZXBsYWNlKC9cXC9nLCIvIik7dmFyIHRlPVRlPW5lLmpvaW4oeik7aWYodGU9dGUudHJpbSgpLCFoZSYmMT09PVRlLnNwbGl0KCIjIikubGVu''@;'; + put 'put ''Z3RoKXt2YXIgeD1lZS5leGVjKHRlKTtpZih4KXJldHVybiB0aGlzLnBhdGg9dGUsdGhpcy5ocmVmPXRlLHRoaXMucGF0aG5hbWU9eFsxXSx4WzJdPyh0aGlzLnNlYXJjaD14WzJdLHRoaXMucXVlcnk9RWU/U2UucGFyc2UodGhpcy5zZWFyY2guc3Vic3RyKDEpKTp0aGlzLnNlYXJjaC5zdWJz''@;'; + put 'put ''dHIoMSkpOkVlJiYodGhpcy5zZWFyY2g9IiIsdGhpcy5xdWVyeT17fSksdGhpc312YXIgUD1XLmV4ZWModGUpO2lmKFApe3ZhciBWPShQPVBbMF0pLnRvTG93ZXJDYXNlKCk7dGhpcy5wcm90b2NvbD1WLHRlPXRlLnN1YnN0cihQLmxlbmd0aCl9aWYoaGV8fFB8fHRlLm1hdGNoKC9eXC9cL1te''@;'; + put 'put ''QFwvXStAW15AXC9dKy8pKXt2YXIgVD0iLy8iPT09dGUuc3Vic3RyKDAsMik7IVR8fFAmJkFlW1BdfHwodGU9dGUuc3Vic3RyKDIpLHRoaXMuc2xhc2hlcz0hMCl9aWYoIUFlW1BdJiYoVHx8UCYmIWtlW1BdKSl7Zm9yKHZhciBTLEYseWU9LTEsQ2U9MDtDZTxvZS5sZW5ndGg7Q2UrKyktMSE9''@;'; + put 'put ''PShEZT10ZS5pbmRleE9mKG9lW0NlXSkpJiYoLTE9PT15ZXx8RGU8eWUpJiYoeWU9RGUpO2ZvcigtMSE9PShGPS0xPT09eWU/dGUubGFzdEluZGV4T2YoIkAiKTp0ZS5sYXN0SW5kZXhPZigiQCIseWUpKSYmKFM9dGUuc2xpY2UoMCxGKSx0ZT10ZS5zbGljZShGKzEpLHRoaXMuYXV0aD1kZWNv''@;'; + put 'put ''ZGVVUklDb21wb25lbnQoUykpLHllPS0xLENlPTA7Q2U8c2UubGVuZ3RoO0NlKyspe3ZhciBEZTstMSE9PShEZT10ZS5pbmRleE9mKHNlW0NlXSkpJiYoLTE9PT15ZXx8RGU8eWUpJiYoeWU9RGUpfS0xPT09eWUmJih5ZT10ZS5sZW5ndGgpLHRoaXMuaG9zdD10ZS5zbGljZSgwLHllKSx0ZT10''@;'; + put 'put ''ZS5zbGljZSh5ZSksdGhpcy5wYXJzZUhvc3QoKSx0aGlzLmhvc3RuYW1lPXRoaXMuaG9zdG5hbWV8fCIiO3ZhciBQZT0iWyI9PT10aGlzLmhvc3RuYW1lWzBdJiYiXSI9PT10aGlzLmhvc3RuYW1lW3RoaXMuaG9zdG5hbWUubGVuZ3RoLTFdO2lmKCFQZSlmb3IodmFyIFFlPXRoaXMuaG9zdG5h''@;'; + put 'put ''bWUuc3BsaXQoL1wuLyksJGU9KENlPTAsUWUubGVuZ3RoKTtDZTwkZTtDZSsrKXt2YXIgZ3Q9UWVbQ2VdO2lmKGd0JiYhZ3QubWF0Y2goY2UpKXtmb3IodmFyIHd0PSIiLHZ0PTAsQXQ9Z3QubGVuZ3RoO3Z0PEF0O3Z0KyspZ3QuY2hhckNvZGVBdCh2dCk+MTI3P3d0Kz0ieCI6d3QrPWd0W3Z0''@;'; + put 'put ''XTtpZighd3QubWF0Y2goY2UpKXt2YXIgbXQ9UWUuc2xpY2UoMCxDZSksaHQ9UWUuc2xpY2UoQ2UrMSksQnQ9Z3QubWF0Y2goZGUpO0J0JiYobXQucHVzaChCdFsxXSksaHQudW5zaGlmdChCdFsyXSkpLGh0Lmxlbmd0aCYmKHRlPSIvIitodC5qb2luKCIuIikrdGUpLHRoaXMuaG9zdG5hbWU9''@;'; + put 'put ''bXQuam9pbigiLiIpO2JyZWFrfX19dGhpcy5ob3N0bmFtZT10aGlzLmhvc3RuYW1lLmxlbmd0aD4yNTU/IiI6dGhpcy5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpLFBlfHwodGhpcy5ob3N0bmFtZT1pZS50b0FTQ0lJKHRoaXMuaG9zdG5hbWUpKTt2YXIgb249dGhpcy5wb3J0PyI6Iit0aGlzLnBv''@;'; + put 'put ''cnQ6IiI7dGhpcy5ob3N0PSh0aGlzLmhvc3RuYW1lfHwiIikrb24sdGhpcy5ocmVmKz10aGlzLmhvc3QsUGUmJih0aGlzLmhvc3RuYW1lPXRoaXMuaG9zdG5hbWUuc3Vic3RyKDEsdGhpcy5ob3N0bmFtZS5sZW5ndGgtMiksIi8iIT09dGVbMF0mJih0ZT0iLyIrdGUpKX1pZighdmVbVl0pZm9y''@;'; + put 'put ''KENlPTAsJGU9Si5sZW5ndGg7Q2U8JGU7Q2UrKyl7dmFyIHR0PUpbQ2VdO2lmKC0xIT09dGUuaW5kZXhPZih0dCkpe3ZhciBldD1lbmNvZGVVUklDb21wb25lbnQodHQpO2V0PT09dHQmJihldD1lc2NhcGUodHQpKSx0ZT10ZS5zcGxpdCh0dCkuam9pbihldCl9fXZhciBhdD10ZS5pbmRleE9m''@;'; + put 'put ''KCIjIik7LTEhPT1hdCYmKHRoaXMuaGFzaD10ZS5zdWJzdHIoYXQpLHRlPXRlLnNsaWNlKDAsYXQpKTt2YXIgTHQ9dGUuaW5kZXhPZigiPyIpO3JldHVybi0xIT09THQ/KHRoaXMuc2VhcmNoPXRlLnN1YnN0cihMdCksdGhpcy5xdWVyeT10ZS5zdWJzdHIoTHQrMSksRWUmJih0aGlzLnF1ZXJ5''@;'; + put 'put ''PVNlLnBhcnNlKHRoaXMucXVlcnkpKSx0ZT10ZS5zbGljZSgwLEx0KSk6RWUmJih0aGlzLnNlYXJjaD0iIix0aGlzLnF1ZXJ5PXt9KSx0ZSYmKHRoaXMucGF0aG5hbWU9dGUpLGtlW1ZdJiZ0aGlzLmhvc3RuYW1lJiYhdGhpcy5wYXRobmFtZSYmKHRoaXMucGF0aG5hbWU9Ii8iKSwodGhpcy5w''@;'; + put 'put ''YXRobmFtZXx8dGhpcy5zZWFyY2gpJiYodGhpcy5wYXRoPShvbj10aGlzLnBhdGhuYW1lfHwiIikrKHRoaXMuc2VhcmNofHwiIikpLHRoaXMuaHJlZj10aGlzLmZvcm1hdCgpLHRoaXN9LFkucHJvdG90eXBlLmZvcm1hdD1mdW5jdGlvbigpe3ZhciBUZT10aGlzLmF1dGh8fCIiO1RlJiYoVGU9''@;'; + put 'put ''KFRlPWVuY29kZVVSSUNvbXBvbmVudChUZSkpLnJlcGxhY2UoLyUzQS9pLCI6IiksVGUrPSJAIik7dmFyIEVlPXRoaXMucHJvdG9jb2x8fCIiLGhlPXRoaXMucGF0aG5hbWV8fCIiLE89dGhpcy5oYXNofHwiIix6PSExLG5lPSIiO3RoaXMuaG9zdD96PVRlK3RoaXMuaG9zdDp0aGlzLmhvc3Ru''@;'; + put 'put ''YW1lJiYoej1UZSsoLTE9PT10aGlzLmhvc3RuYW1lLmluZGV4T2YoIjoiKT90aGlzLmhvc3RuYW1lOiJbIit0aGlzLmhvc3RuYW1lKyJdIiksdGhpcy5wb3J0JiYoeis9IjoiK3RoaXMucG9ydCkpLHRoaXMucXVlcnkmJmxlLmlzT2JqZWN0KHRoaXMucXVlcnkpJiZPYmplY3Qua2V5cyh0aGlz''@;'; + put 'put ''LnF1ZXJ5KS5sZW5ndGgmJihuZT1TZS5zdHJpbmdpZnkodGhpcy5xdWVyeSkpO3ZhciB0ZT10aGlzLnNlYXJjaHx8bmUmJiI/IituZXx8IiI7cmV0dXJuIEVlJiYiOiIhPT1FZS5zdWJzdHIoLTEpJiYoRWUrPSI6IiksdGhpcy5zbGFzaGVzfHwoIUVlfHxrZVtFZV0pJiYhMSE9PXo/KHo9Ii8v''@;'; + put 'put ''Iisoenx8IiIpLGhlJiYiLyIhPT1oZS5jaGFyQXQoMCkmJihoZT0iLyIraGUpKTp6fHwoej0iIiksTyYmIiMiIT09Ty5jaGFyQXQoMCkmJihPPSIjIitPKSx0ZSYmIj8iIT09dGUuY2hhckF0KDApJiYodGU9Ij8iK3RlKSxFZSt6KyhoZT1oZS5yZXBsYWNlKC9bPyNdL2csZnVuY3Rpb24oeCl7''@;'; + put 'put ''cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX0pKSsodGU9dGUucmVwbGFjZSgiIyIsIiUyMyIpKStPfSxZLnByb3RvdHlwZS5yZXNvbHZlPWZ1bmN0aW9uKFRlKXtyZXR1cm4gdGhpcy5yZXNvbHZlT2JqZWN0KEllKFRlLCExLCEwKSkuZm9ybWF0KCl9LFkucHJvdG90eXBlLnJlc29sdmVP''@;'; + put 'put ''YmplY3Q9ZnVuY3Rpb24oVGUpe2lmKGxlLmlzU3RyaW5nKFRlKSl7dmFyIEVlPW5ldyBZO0VlLnBhcnNlKFRlLCExLCEwKSxUZT1FZX1mb3IodmFyIGhlPW5ldyBZLE89T2JqZWN0LmtleXModGhpcyksej0wO3o8Ty5sZW5ndGg7eisrKXt2YXIgbmU9T1t6XTtoZVtuZV09dGhpc1tuZV19aWYo''@;'; + put 'put ''aGUuaGFzaD1UZS5oYXNoLCIiPT09VGUuaHJlZilyZXR1cm4gaGUuaHJlZj1oZS5mb3JtYXQoKSxoZTtpZihUZS5zbGFzaGVzJiYhVGUucHJvdG9jb2wpe2Zvcih2YXIgdGU9T2JqZWN0LmtleXMoVGUpLHg9MDt4PHRlLmxlbmd0aDt4Kyspe3ZhciBQPXRlW3hdOyJwcm90b2NvbCIhPT1QJiYo''@;'; + put 'put ''aGVbUF09VGVbUF0pfXJldHVybiBrZVtoZS5wcm90b2NvbF0mJmhlLmhvc3RuYW1lJiYhaGUucGF0aG5hbWUmJihoZS5wYXRoPWhlLnBhdGhuYW1lPSIvIiksaGUuaHJlZj1oZS5mb3JtYXQoKSxoZX1pZihUZS5wcm90b2NvbCYmVGUucHJvdG9jb2whPT1oZS5wcm90b2NvbCl7aWYoIWtlW1Rl''@;'; + put 'put ''LnByb3RvY29sXSl7Zm9yKHZhciBWPU9iamVjdC5rZXlzKFRlKSxUPTA7VDxWLmxlbmd0aDtUKyspe3ZhciBTPVZbVF07aGVbU109VGVbU119cmV0dXJuIGhlLmhyZWY9aGUuZm9ybWF0KCksaGV9aWYoaGUucHJvdG9jb2w9VGUucHJvdG9jb2wsVGUuaG9zdHx8QWVbVGUucHJvdG9jb2xdKWhl''@;'; + put 'put ''LnBhdGhuYW1lPVRlLnBhdGhuYW1lO2Vsc2V7Zm9yKHZhciBGPShUZS5wYXRobmFtZXx8IiIpLnNwbGl0KCIvIik7Ri5sZW5ndGgmJiEoVGUuaG9zdD1GLnNoaWZ0KCkpOyk7VGUuaG9zdHx8KFRlLmhvc3Q9IiIpLFRlLmhvc3RuYW1lfHwoVGUuaG9zdG5hbWU9IiIpLCIiIT09RlswXSYmRi51''@;'; + put 'put ''bnNoaWZ0KCIiKSxGLmxlbmd0aDwyJiZGLnVuc2hpZnQoIiIpLGhlLnBhdGhuYW1lPUYuam9pbigiLyIpfXJldHVybiBoZS5zZWFyY2g9VGUuc2VhcmNoLGhlLnF1ZXJ5PVRlLnF1ZXJ5LGhlLmhvc3Q9VGUuaG9zdHx8IiIsaGUuYXV0aD1UZS5hdXRoLGhlLmhvc3RuYW1lPVRlLmhvc3RuYW1l''@;'; + put 'put ''fHxUZS5ob3N0LGhlLnBvcnQ9VGUucG9ydCwoaGUucGF0aG5hbWV8fGhlLnNlYXJjaCkmJihoZS5wYXRoPShoZS5wYXRobmFtZXx8IiIpKyhoZS5zZWFyY2h8fCIiKSksaGUuc2xhc2hlcz1oZS5zbGFzaGVzfHxUZS5zbGFzaGVzLGhlLmhyZWY9aGUuZm9ybWF0KCksaGV9dmFyIERlPWhlLnBh''@;'; + put 'put ''dGhuYW1lJiYiLyI9PT1oZS5wYXRobmFtZS5jaGFyQXQoMCksUGU9VGUuaG9zdHx8VGUucGF0aG5hbWUmJiIvIj09PVRlLnBhdGhuYW1lLmNoYXJBdCgwKSxRZT1QZXx8RGV8fGhlLmhvc3QmJlRlLnBhdGhuYW1lLCRlPVFlLGd0PWhlLnBhdGhuYW1lJiZoZS5wYXRobmFtZS5zcGxpdCgiLyIp''@;'; + put 'put ''fHxbXSx3dD0oRj1UZS5wYXRobmFtZSYmVGUucGF0aG5hbWUuc3BsaXQoIi8iKXx8W10saGUucHJvdG9jb2wmJiFrZVtoZS5wcm90b2NvbF0pO2lmKHd0JiYoaGUuaG9zdG5hbWU9IiIsaGUucG9ydD1udWxsLGhlLmhvc3QmJigiIj09PWd0WzBdP2d0WzBdPWhlLmhvc3Q6Z3QudW5zaGlmdCho''@;'; + put 'put ''ZS5ob3N0KSksaGUuaG9zdD0iIixUZS5wcm90b2NvbCYmKFRlLmhvc3RuYW1lPW51bGwsVGUucG9ydD1udWxsLFRlLmhvc3QmJigiIj09PUZbMF0/RlswXT1UZS5ob3N0OkYudW5zaGlmdChUZS5ob3N0KSksVGUuaG9zdD1udWxsKSxRZT1RZSYmKCIiPT09RlswXXx8IiI9PT1ndFswXSkpLFBl''@;'; + put 'put ''KWhlLmhvc3Q9VGUuaG9zdHx8IiI9PT1UZS5ob3N0P1RlLmhvc3Q6aGUuaG9zdCxoZS5ob3N0bmFtZT1UZS5ob3N0bmFtZXx8IiI9PT1UZS5ob3N0bmFtZT9UZS5ob3N0bmFtZTpoZS5ob3N0bmFtZSxoZS5zZWFyY2g9VGUuc2VhcmNoLGhlLnF1ZXJ5PVRlLnF1ZXJ5LGd0PUY7ZWxzZSBpZihG''@;'; + put 'put ''Lmxlbmd0aClndHx8KGd0PVtdKSxndC5wb3AoKSxndD1ndC5jb25jYXQoRiksaGUuc2VhcmNoPVRlLnNlYXJjaCxoZS5xdWVyeT1UZS5xdWVyeTtlbHNlIGlmKCFsZS5pc051bGxPclVuZGVmaW5lZChUZS5zZWFyY2gpKXJldHVybiB3dCYmKGhlLmhvc3RuYW1lPWhlLmhvc3Q9Z3Quc2hpZnQo''@;'; + put 'put ''KSwoQnQ9ISEoaGUuaG9zdCYmaGUuaG9zdC5pbmRleE9mKCJAIik+MCkmJmhlLmhvc3Quc3BsaXQoIkAiKSkmJihoZS5hdXRoPUJ0LnNoaWZ0KCksaGUuaG9zdD1oZS5ob3N0bmFtZT1CdC5zaGlmdCgpKSksaGUuc2VhcmNoPVRlLnNlYXJjaCxoZS5xdWVyeT1UZS5xdWVyeSxsZS5pc051bGwo''@;'; + put 'put ''aGUucGF0aG5hbWUpJiZsZS5pc051bGwoaGUuc2VhcmNoKXx8KGhlLnBhdGg9KGhlLnBhdGhuYW1lP2hlLnBhdGhuYW1lOiIiKSsoaGUuc2VhcmNoP2hlLnNlYXJjaDoiIikpLGhlLmhyZWY9aGUuZm9ybWF0KCksaGU7aWYoIWd0Lmxlbmd0aClyZXR1cm4gaGUucGF0aG5hbWU9bnVsbCxoZS5w''@;'; + put 'put ''YXRoPWhlLnNlYXJjaD8iLyIraGUuc2VhcmNoOm51bGwsaGUuaHJlZj1oZS5mb3JtYXQoKSxoZTtmb3IodmFyIHZ0PWd0LnNsaWNlKC0xKVswXSxBdD0oaGUuaG9zdHx8VGUuaG9zdHx8Z3QubGVuZ3RoPjEpJiYoIi4iPT09dnR8fCIuLiI9PT12dCl8fCIiPT09dnQsbXQ9MCxodD1ndC5sZW5n''@;'; + put 'put ''dGg7aHQ+PTA7aHQtLSkiLiI9PT0odnQ9Z3RbaHRdKT9ndC5zcGxpY2UoaHQsMSk6Ii4uIj09PXZ0PyhndC5zcGxpY2UoaHQsMSksbXQrKyk6bXQmJihndC5zcGxpY2UoaHQsMSksbXQtLSk7aWYoIVFlJiYhJGUpZm9yKDttdC0tO210KWd0LnVuc2hpZnQoIi4uIik7IVFlfHwiIj09PWd0WzBd''@;'; + put 'put ''fHxndFswXSYmIi8iPT09Z3RbMF0uY2hhckF0KDApfHxndC51bnNoaWZ0KCIiKSxBdCYmIi8iIT09Z3Quam9pbigiLyIpLnN1YnN0cigtMSkmJmd0LnB1c2goIiIpO3ZhciBCdCxvbj0iIj09PWd0WzBdfHxndFswXSYmIi8iPT09Z3RbMF0uY2hhckF0KDApO3JldHVybiB3dCYmKGhlLmhvc3Ru''@;'; + put 'put ''YW1lPWhlLmhvc3Q9b24/IiI6Z3QubGVuZ3RoP2d0LnNoaWZ0KCk6IiIsKEJ0PSEhKGhlLmhvc3QmJmhlLmhvc3QuaW5kZXhPZigiQCIpPjApJiZoZS5ob3N0LnNwbGl0KCJAIikpJiYoaGUuYXV0aD1CdC5zaGlmdCgpLGhlLmhvc3Q9aGUuaG9zdG5hbWU9QnQuc2hpZnQoKSkpLChRZT1RZXx8''@;'; + put 'put ''aGUuaG9zdCYmZ3QubGVuZ3RoKSYmIW9uJiZndC51bnNoaWZ0KCIiKSxndC5sZW5ndGg/aGUucGF0aG5hbWU9Z3Quam9pbigiLyIpOihoZS5wYXRobmFtZT1udWxsLGhlLnBhdGg9bnVsbCksbGUuaXNOdWxsKGhlLnBhdGhuYW1lKSYmbGUuaXNOdWxsKGhlLnNlYXJjaCl8fChoZS5wYXRoPSho''@;'; + put 'put ''ZS5wYXRobmFtZT9oZS5wYXRobmFtZToiIikrKGhlLnNlYXJjaD9oZS5zZWFyY2g6IiIpKSxoZS5hdXRoPVRlLmF1dGh8fGhlLmF1dGgsaGUuc2xhc2hlcz1oZS5zbGFzaGVzfHxUZS5zbGFzaGVzLGhlLmhyZWY9aGUuZm9ybWF0KCksaGV9LFkucHJvdG90eXBlLnBhcnNlSG9zdD1mdW5jdGlv''@;'; + put 'put ''bigpe3ZhciBUZT10aGlzLmhvc3QsRWU9Ti5leGVjKFRlKTtFZSYmKCI6IiE9PShFZT1FZVswXSkmJih0aGlzLnBvcnQ9RWUuc3Vic3RyKDEpKSxUZT1UZS5zdWJzdHIoMCxUZS5sZW5ndGgtRWUubGVuZ3RoKSksVGUmJih0aGlzLmhvc3RuYW1lPVRlKX19LDI1MDI6VT0+eyJ1c2Ugc3RyaWN0''@;'; + put 'put ''IjtVLmV4cG9ydHM9e2lzU3RyaW5nOmZ1bmN0aW9uKFEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgUX0saXNPYmplY3Q6ZnVuY3Rpb24oUSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBRJiZudWxsIT09UX0saXNOdWxsOmZ1bmN0aW9uKFEpe3JldHVybiBudWxsPT09UX0saXNOdWxsT3JVbmRl''@;'; + put 'put ''ZmluZWQ6ZnVuY3Rpb24oUSl7cmV0dXJuIG51bGw9PVF9fX0sNDkyNzooVSxRLFopPT57dmFyIGllPVooNTEwOCk7ZnVuY3Rpb24gbGUoWSl7dHJ5e2lmKCFaLmcubG9jYWxTdG9yYWdlKXJldHVybiExfWNhdGNoKE4pe3JldHVybiExfXZhciBXPVouZy5sb2NhbFN0b3JhZ2VbWV07cmV0dXJu''@;'; + put 'put ''IG51bGwhPVcmJiJ0cnVlIj09PVN0cmluZyhXKS50b0xvd2VyQ2FzZSgpfVUuZXhwb3J0cz1mdW5jdGlvbihZLFcpe2lmKGxlKCJub0RlcHJlY2F0aW9uIikpcmV0dXJuIFk7dmFyIE49ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIU4pe2lmKGxlKCJ0aHJvd0RlcHJlY2F0aW9uIikpdGhyb3cg''@;'; + put 'put ''bmV3IEVycm9yKFcpO2xlKCJ0cmFjZURlcHJlY2F0aW9uIik/aWUudHJhY2UoVyk6aWUud2FybihXKSxOPSEwfXJldHVybiBZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fSwzODQ6VT0+e1UuZXhwb3J0cz1mdW5jdGlvbihRKXtyZXR1cm4gUSYmIm9iamVjdCI9PXR5cGVvZiBRJiYiZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YgUS5jb3B5JiYiZnVuY3Rpb24iPT10eXBlb2YgUS5maWxsJiYiZnVuY3Rpb24iPT10eXBlb2YgUS5yZWFkVUludDh9fSw1OTU1OihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooMjU4NCksbGU9Wig4NjYyKSxZPVooNjQzMCksVz1aKDU2OTIpO2Z1bmN0aW9uIE4o''@;'; + put 'put ''eWUpe3JldHVybiB5ZS5jYWxsLmJpbmQoeWUpfXZhciBlZT0idW5kZWZpbmVkIiE9dHlwZW9mIEJpZ0ludCxxPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sLEo9TihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKSxzZT1OKE51bWJlci5wcm90b3R5cGUudmFsdWVPZiksb2U9TihTdHJpbmcu''@;'; + put 'put ''cHJvdG90eXBlLnZhbHVlT2YpLGNlPU4oQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZik7aWYoZWUpdmFyIGRlPU4oQmlnSW50LnByb3RvdHlwZS52YWx1ZU9mKTtpZihxKXZhciB2ZT1OKFN5bWJvbC5wcm90b3R5cGUudmFsdWVPZik7ZnVuY3Rpb24gQWUoeWUsQ2Upe2lmKCJvYmplY3QiIT10''@;'; + put 'put ''eXBlb2YgeWUpcmV0dXJuITE7dHJ5e3JldHVybiBDZSh5ZSksITB9Y2F0Y2goRGUpe3JldHVybiExfX1mdW5jdGlvbiBrZSh5ZSl7cmV0dXJuIltvYmplY3QgTWFwXSI9PT1KKHllKX1mdW5jdGlvbiBTZSh5ZSl7cmV0dXJuIltvYmplY3QgU2V0XSI9PT1KKHllKX1mdW5jdGlvbiBJZSh5ZSl7''@;'; + put 'put ''cmV0dXJuIltvYmplY3QgV2Vha01hcF0iPT09Sih5ZSl9ZnVuY3Rpb24gVGUoeWUpe3JldHVybiJbb2JqZWN0IFdlYWtTZXRdIj09PUooeWUpfWZ1bmN0aW9uIEVlKHllKXtyZXR1cm4iW29iamVjdCBBcnJheUJ1ZmZlcl0iPT09Sih5ZSl9ZnVuY3Rpb24gaGUoeWUpe3JldHVybiJ1bmRlZmlu''@;'; + put 'put ''ZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJihFZS53b3JraW5nP0VlKHllKTp5ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKX1mdW5jdGlvbiBPKHllKXtyZXR1cm4iW29iamVjdCBEYXRhVmlld10iPT09Sih5ZSl9ZnVuY3Rpb24geih5ZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBEYXRh''@;'; + put 'put ''VmlldyYmKE8ud29ya2luZz9PKHllKTp5ZSBpbnN0YW5jZW9mIERhdGFWaWV3KX1RLmlzQXJndW1lbnRzT2JqZWN0PWllLFEuaXNHZW5lcmF0b3JGdW5jdGlvbj1sZSxRLmlzVHlwZWRBcnJheT1XLFEuaXNQcm9taXNlPWZ1bmN0aW9uKHllKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFBy''@;'; + put 'put ''b21pc2UmJnllIGluc3RhbmNlb2YgUHJvbWlzZXx8bnVsbCE9PXllJiYib2JqZWN0Ij09dHlwZW9mIHllJiYiZnVuY3Rpb24iPT10eXBlb2YgeWUudGhlbiYmImZ1bmN0aW9uIj09dHlwZW9mIHllLmNhdGNofSxRLmlzQXJyYXlCdWZmZXJWaWV3PWZ1bmN0aW9uKHllKXtyZXR1cm4idW5kZWZp''@;'; + put 'put ''bmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZBcnJheUJ1ZmZlci5pc1ZpZXc/QXJyYXlCdWZmZXIuaXNWaWV3KHllKTpXKHllKXx8eih5ZSl9LFEuaXNVaW50OEFycmF5PWZ1bmN0aW9uKHllKXtyZXR1cm4iVWludDhBcnJheSI9PT1ZKHllKX0sUS5pc1VpbnQ4Q2xhbXBlZEFycmF5PWZ1bmN0''@;'; + put 'put ''aW9uKHllKXtyZXR1cm4iVWludDhDbGFtcGVkQXJyYXkiPT09WSh5ZSl9LFEuaXNVaW50MTZBcnJheT1mdW5jdGlvbih5ZSl7cmV0dXJuIlVpbnQxNkFycmF5Ij09PVkoeWUpfSxRLmlzVWludDMyQXJyYXk9ZnVuY3Rpb24oeWUpe3JldHVybiJVaW50MzJBcnJheSI9PT1ZKHllKX0sUS5pc0lu''@;'; + put 'put ''dDhBcnJheT1mdW5jdGlvbih5ZSl7cmV0dXJuIkludDhBcnJheSI9PT1ZKHllKX0sUS5pc0ludDE2QXJyYXk9ZnVuY3Rpb24oeWUpe3JldHVybiJJbnQxNkFycmF5Ij09PVkoeWUpfSxRLmlzSW50MzJBcnJheT1mdW5jdGlvbih5ZSl7cmV0dXJuIkludDMyQXJyYXkiPT09WSh5ZSl9LFEuaXNG''@;'; + put 'put ''bG9hdDMyQXJyYXk9ZnVuY3Rpb24oeWUpe3JldHVybiJGbG9hdDMyQXJyYXkiPT09WSh5ZSl9LFEuaXNGbG9hdDY0QXJyYXk9ZnVuY3Rpb24oeWUpe3JldHVybiJGbG9hdDY0QXJyYXkiPT09WSh5ZSl9LFEuaXNCaWdJbnQ2NEFycmF5PWZ1bmN0aW9uKHllKXtyZXR1cm4iQmlnSW50NjRBcnJh''@;'; + put 'put ''eSI9PT1ZKHllKX0sUS5pc0JpZ1VpbnQ2NEFycmF5PWZ1bmN0aW9uKHllKXtyZXR1cm4iQmlnVWludDY0QXJyYXkiPT09WSh5ZSl9LGtlLndvcmtpbmc9InVuZGVmaW5lZCIhPXR5cGVvZiBNYXAmJmtlKG5ldyBNYXApLFEuaXNNYXA9ZnVuY3Rpb24oeWUpe3JldHVybiJ1bmRlZmluZWQiIT10''@;'; + put 'put ''eXBlb2YgTWFwJiYoa2Uud29ya2luZz9rZSh5ZSk6eWUgaW5zdGFuY2VvZiBNYXApfSxTZS53b3JraW5nPSJ1bmRlZmluZWQiIT10eXBlb2YgU2V0JiZTZShuZXcgU2V0KSxRLmlzU2V0PWZ1bmN0aW9uKHllKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFNldCYmKFNlLndvcmtpbmc/U2Uo''@;'; + put 'put ''eWUpOnllIGluc3RhbmNlb2YgU2V0KX0sSWUud29ya2luZz0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYWtNYXAmJkllKG5ldyBXZWFrTWFwKSxRLmlzV2Vha01hcD1mdW5jdGlvbih5ZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBXZWFrTWFwJiYoSWUud29ya2luZz9JZSh5ZSk6eWUgaW5z''@;'; + put 'put ''dGFuY2VvZiBXZWFrTWFwKX0sVGUud29ya2luZz0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYWtTZXQmJlRlKG5ldyBXZWFrU2V0KSxRLmlzV2Vha1NldD1mdW5jdGlvbih5ZSl7cmV0dXJuIFRlKHllKX0sRWUud29ya2luZz0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZFZShuZXcg''@;'; + put 'put ''QXJyYXlCdWZmZXIpLFEuaXNBcnJheUJ1ZmZlcj1oZSxPLndvcmtpbmc9InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmInVuZGVmaW5lZCIhPXR5cGVvZiBEYXRhVmlldyYmTyhuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDEpLDAsMSkpLFEuaXNEYXRhVmlldz16O3ZhciBu''@;'; + put 'put ''ZT0idW5kZWZpbmVkIiE9dHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyP1NoYXJlZEFycmF5QnVmZmVyOnZvaWQgMDtmdW5jdGlvbiB0ZSh5ZSl7cmV0dXJuIltvYmplY3QgU2hhcmVkQXJyYXlCdWZmZXJdIj09PUooeWUpfWZ1bmN0aW9uIHgoeWUpe3JldHVybiB2b2lkIDAhPT1uZSYmKHZvaWQg''@;'; + put 'put ''MD09PXRlLndvcmtpbmcmJih0ZS53b3JraW5nPXRlKG5ldyBuZSkpLHRlLndvcmtpbmc/dGUoeWUpOnllIGluc3RhbmNlb2YgbmUpfWZ1bmN0aW9uIFAoeWUpe3JldHVybiBBZSh5ZSxzZSl9ZnVuY3Rpb24gVih5ZSl7cmV0dXJuIEFlKHllLG9lKX1mdW5jdGlvbiBUKHllKXtyZXR1cm4gQWUo''@;'; + put 'put ''eWUsY2UpfWZ1bmN0aW9uIFMoeWUpe3JldHVybiBlZSYmQWUoeWUsZGUpfWZ1bmN0aW9uIEYoeWUpe3JldHVybiBxJiZBZSh5ZSx2ZSl9US5pc1NoYXJlZEFycmF5QnVmZmVyPXgsUS5pc0FzeW5jRnVuY3Rpb249ZnVuY3Rpb24oeWUpe3JldHVybiJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIj09''@;'; + put 'put ''PUooeWUpfSxRLmlzTWFwSXRlcmF0b3I9ZnVuY3Rpb24oeWUpe3JldHVybiJbb2JqZWN0IE1hcCBJdGVyYXRvcl0iPT09Sih5ZSl9LFEuaXNTZXRJdGVyYXRvcj1mdW5jdGlvbih5ZSl7cmV0dXJuIltvYmplY3QgU2V0IEl0ZXJhdG9yXSI9PT1KKHllKX0sUS5pc0dlbmVyYXRvck9iamVjdD1m''@;'; + put 'put ''dW5jdGlvbih5ZSl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSI9PT1KKHllKX0sUS5pc1dlYkFzc2VtYmx5Q29tcGlsZWRNb2R1bGU9ZnVuY3Rpb24oeWUpe3JldHVybiJbb2JqZWN0IFdlYkFzc2VtYmx5Lk1vZHVsZV0iPT09Sih5ZSl9LFEuaXNOdW1iZXJPYmplY3Q9UCxRLmlzU3RyaW5n''@;'; + put 'put ''T2JqZWN0PVYsUS5pc0Jvb2xlYW5PYmplY3Q9VCxRLmlzQmlnSW50T2JqZWN0PVMsUS5pc1N5bWJvbE9iamVjdD1GLFEuaXNCb3hlZFByaW1pdGl2ZT1mdW5jdGlvbih5ZSl7cmV0dXJuIFAoeWUpfHxWKHllKXx8VCh5ZSl8fFMoeWUpfHxGKHllKX0sUS5pc0FueUFycmF5QnVmZmVyPWZ1bmN0''@;'; + put 'put ''aW9uKHllKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXkmJihoZSh5ZSl8fHgoeWUpKX0sWyJpc1Byb3h5IiwiaXNFeHRlcm5hbCIsImlzTW9kdWxlTmFtZXNwYWNlT2JqZWN0Il0uZm9yRWFjaChmdW5jdGlvbih5ZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEseWUse2Vu''@;'; + put 'put ''dW1lcmFibGU6ITEsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoeWUrIiBpcyBub3Qgc3VwcG9ydGVkIGluIHVzZXJsYW5kIil9fSl9KX0sOTUzOTooVSxRLFopPT57dmFyIGllPVooNDE1NSksbGU9Wig1MTA4KSxZPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzfHxm''@;'; + put 'put ''dW5jdGlvbihDZSl7Zm9yKHZhciBEZT1PYmplY3Qua2V5cyhDZSksUGU9e30sUWU9MDtRZTxEZS5sZW5ndGg7UWUrKylQZVtEZVtRZV1dPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoQ2UsRGVbUWVdKTtyZXR1cm4gUGV9LFc9LyVbc2RqJV0vZztRLmZvcm1hdD1mdW5jdGlvbihD''@;'; + put 'put ''ZSl7aWYoIVRlKENlKSl7Zm9yKHZhciBEZT1bXSxQZT0wO1BlPGFyZ3VtZW50cy5sZW5ndGg7UGUrKylEZS5wdXNoKEooYXJndW1lbnRzW1BlXSkpO3JldHVybiBEZS5qb2luKCIgIil9UGU9MTtmb3IodmFyIFFlPWFyZ3VtZW50cywkZT1RZS5sZW5ndGgsZ3Q9U3RyaW5nKENlKS5yZXBsYWNl''@;'; + put 'put ''KFcsZnVuY3Rpb24odnQpe2lmKCIlJSI9PT12dClyZXR1cm4iJSI7aWYoUGU+PSRlKXJldHVybiB2dDtzd2l0Y2godnQpe2Nhc2UiJXMiOnJldHVybiBTdHJpbmcoUWVbUGUrK10pO2Nhc2UiJWQiOnJldHVybiBOdW1iZXIoUWVbUGUrK10pO2Nhc2UiJWoiOnRyeXtyZXR1cm4gSlNPTi5zdHJp''@;'; + put 'put ''bmdpZnkoUWVbUGUrK10pfWNhdGNoKEF0KXtyZXR1cm4iW0NpcmN1bGFyXSJ9ZGVmYXVsdDpyZXR1cm4gdnR9fSksd3Q9UWVbUGVdO1BlPCRlO3d0PVFlWysrUGVdKVNlKHd0KXx8IU8od3QpP2d0Kz0iICIrd3Q6Z3QrPSIgIitKKHd0KTtyZXR1cm4gZ3R9LFEuZGVwcmVjYXRlPWZ1bmN0aW9u''@;'; + put 'put ''KENlLERlKXtpZih2b2lkIDAhPT1pZSYmITA9PT1pZS5ub0RlcHJlY2F0aW9uKXJldHVybiBDZTtpZih2b2lkIDA9PT1pZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gUS5kZXByZWNhdGUoQ2UsRGUpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dmFyIFBlPSExO3JldHVybiBmdW5jdGlvbigp''@;'; + put 'put ''e2lmKCFQZSl7aWYoaWUudGhyb3dEZXByZWNhdGlvbil0aHJvdyBuZXcgRXJyb3IoRGUpO2llLnRyYWNlRGVwcmVjYXRpb24/bGUudHJhY2UoRGUpOmxlLmVycm9yKERlKSxQZT0hMH1yZXR1cm4gQ2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfX07dmFyIE49e30sZWU9L14kLztpZihpZS5lbnYu''@;'; + put 'put ''Tk9ERV9ERUJVRyl7dmFyIHE9aWUuZW52Lk5PREVfREVCVUc7cT1xLnJlcGxhY2UoL1t8XFx7fSgpW1xdXiQrPy5dL2csIlxcJCYiKS5yZXBsYWNlKC9cKi9nLCIuKiIpLnJlcGxhY2UoLywvZywiJHxeIikudG9VcHBlckNhc2UoKSxlZT1uZXcgUmVnRXhwKCJeIitxKyIkIiwiaSIpfWZ1bmN0''@;'; + put 'put ''aW9uIEooQ2UsRGUpe3ZhciBQZT17c2VlbjpbXSxzdHlsaXplOm9lfTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD49MyYmKFBlLmRlcHRoPWFyZ3VtZW50c1syXSksYXJndW1lbnRzLmxlbmd0aD49NCYmKFBlLmNvbG9ycz1hcmd1bWVudHNbM10pLGtlKERlKT9QZS5zaG93SGlkZGVuPURlOkRl''@;'; + put 'put ''JiZRLl9leHRlbmQoUGUsRGUpLEVlKFBlLnNob3dIaWRkZW4pJiYoUGUuc2hvd0hpZGRlbj0hMSksRWUoUGUuZGVwdGgpJiYoUGUuZGVwdGg9MiksRWUoUGUuY29sb3JzKSYmKFBlLmNvbG9ycz0hMSksRWUoUGUuY3VzdG9tSW5zcGVjdCkmJihQZS5jdXN0b21JbnNwZWN0PSEwKSxQZS5jb2xv''@;'; + put 'put ''cnMmJihQZS5zdHlsaXplPXNlKSxjZShQZSxDZSxQZS5kZXB0aCl9ZnVuY3Rpb24gc2UoQ2UsRGUpe3ZhciBQZT1KLnN0eWxlc1tEZV07cmV0dXJuIFBlPyJceDFiWyIrSi5jb2xvcnNbUGVdWzBdKyJtIitDZSsiXHgxYlsiK0ouY29sb3JzW1BlXVsxXSsibSI6Q2V9ZnVuY3Rpb24gb2UoQ2Us''@;'; + put 'put ''RGUpe3JldHVybiBDZX1mdW5jdGlvbiBjZShDZSxEZSxQZSl7aWYoQ2UuY3VzdG9tSW5zcGVjdCYmRGUmJnRlKERlLmluc3BlY3QpJiZEZS5pbnNwZWN0IT09US5pbnNwZWN0JiYoIURlLmNvbnN0cnVjdG9yfHxEZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUhPT1EZSkpe3ZhciBRZT1EZS5pbnNw''@;'; + put 'put ''ZWN0KFBlLENlKTtyZXR1cm4gVGUoUWUpfHwoUWU9Y2UoQ2UsUWUsUGUpKSxRZX12YXIgJGU9ZnVuY3Rpb24ob24sX3Qpe2lmKEVlKF90KSlyZXR1cm4gb24uc3R5bGl6ZSgidW5kZWZpbmVkIiwidW5kZWZpbmVkIik7aWYoVGUoX3QpKXt2YXIgdHQ9IiciK0pTT04uc3RyaW5naWZ5KF90KS5y''@;'; + put 'put ''ZXBsYWNlKC9eInwiJC9nLCIiKS5yZXBsYWNlKC8nL2csIlxcJyIpLnJlcGxhY2UoL1xcIi9nLCciJykrIiciO3JldHVybiBvbi5zdHlsaXplKHR0LCJzdHJpbmciKX1yZXR1cm4gSWUoX3QpP29uLnN0eWxpemUoIiIrX3QsIm51bWJlciIpOmtlKF90KT9vbi5zdHlsaXplKCIiK190LCJib29s''@;'; + put 'put ''ZWFuIik6U2UoX3QpP29uLnN0eWxpemUoIm51bGwiLCJudWxsIik6dm9pZCAwfShDZSxEZSk7aWYoJGUpcmV0dXJuICRlO3ZhciBfdCxndD1PYmplY3Qua2V5cyhEZSksd3Q9KF90PXt9LGd0LmZvckVhY2goZnVuY3Rpb24odHQsZXQpe190W3R0XT0hMH0pLF90KTtpZihDZS5zaG93SGlkZGVu''@;'; + put 'put ''JiYoZ3Q9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoRGUpKSxuZShEZSkmJihndC5pbmRleE9mKCJtZXNzYWdlIik+PTB8fGd0LmluZGV4T2YoImRlc2NyaXB0aW9uIik+PTApKXJldHVybiBkZShEZSk7aWYoMD09PWd0Lmxlbmd0aCl7aWYodGUoRGUpKXJldHVybiBDZS5zdHlsaXplKCJb''@;'; + put 'put ''RnVuY3Rpb24iKyhEZS5uYW1lPyI6ICIrRGUubmFtZToiIikrIl0iLCJzcGVjaWFsIik7aWYoaGUoRGUpKXJldHVybiBDZS5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChEZSksInJlZ2V4cCIpO2lmKHooRGUpKXJldHVybiBDZS5zdHlsaXplKERhdGUucHJvdG90eXBl''@;'; + put 'put ''LnRvU3RyaW5nLmNhbGwoRGUpLCJkYXRlIik7aWYobmUoRGUpKXJldHVybiBkZShEZSl9dmFyIEF0LG10PSIiLGh0PSExLEJ0PVsieyIsIn0iXTtyZXR1cm4gQWUoRGUpJiYoaHQ9ITAsQnQ9WyJbIiwiXSJdKSx0ZShEZSkmJihtdD0iIFtGdW5jdGlvbiIrKERlLm5hbWU/IjogIitEZS5uYW1l''@;'; + put 'put ''OiIiKSsiXSIpLGhlKERlKSYmKG10PSIgIitSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoRGUpKSx6KERlKSYmKG10PSIgIitEYXRlLnByb3RvdHlwZS50b1VUQ1N0cmluZy5jYWxsKERlKSksbmUoRGUpJiYobXQ9IiAiK2RlKERlKSksMCE9PWd0Lmxlbmd0aHx8aHQmJjAhPURlLmxl''@;'; + put 'put ''bmd0aD9QZTwwP2hlKERlKT9DZS5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChEZSksInJlZ2V4cCIpOkNlLnN0eWxpemUoIltPYmplY3RdIiwic3BlY2lhbCIpOihDZS5zZWVuLnB1c2goRGUpLEF0PWh0P2Z1bmN0aW9uKG9uLF90LHR0LGV0LGF0KXtmb3IodmFyIEx0''@;'; + put 'put ''PVtdLEN0PTAsZnQ9X3QubGVuZ3RoO0N0PGZ0OysrQ3QpUyhfdCxTdHJpbmcoQ3QpKT9MdC5wdXNoKHZlKG9uLF90LHR0LGV0LFN0cmluZyhDdCksITApKTpMdC5wdXNoKCIiKTtyZXR1cm4gYXQuZm9yRWFjaChmdW5jdGlvbihIdCl7SHQubWF0Y2goL15cZCskLyl8fEx0LnB1c2godmUob24s''@;'; + put 'put ''X3QsdHQsZXQsSHQsITApKX0pLEx0fShDZSxEZSxQZSx3dCxndCk6Z3QubWFwKGZ1bmN0aW9uKG9uKXtyZXR1cm4gdmUoQ2UsRGUsUGUsd3Qsb24saHQpfSksQ2Uuc2Vlbi5wb3AoKSxmdW5jdGlvbihvbixfdCx0dCl7cmV0dXJuIG9uLnJlZHVjZShmdW5jdGlvbihldCxhdCl7cmV0dXJuIGF0''@;'; + put 'put ''LmluZGV4T2YoIlxuIiksZXQrYXQucmVwbGFjZSgvXHUwMDFiXFtcZFxkP20vZywiIikubGVuZ3RoKzF9LDApPjYwP3R0WzBdKygiIj09PV90PyIiOl90KyJcbiAiKSsiICIrb24uam9pbigiLFxuICAiKSsiICIrdHRbMV06dHRbMF0rX3QrIiAiK29uLmpvaW4oIiwgIikrIiAiK3R0WzFdfShB''@;'; + put 'put ''dCxtdCxCdCkpOkJ0WzBdK210K0J0WzFdfWZ1bmN0aW9uIGRlKENlKXtyZXR1cm4iWyIrRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQ2UpKyJdIn1mdW5jdGlvbiB2ZShDZSxEZSxQZSxRZSwkZSxndCl7dmFyIHd0LHZ0LEF0O2lmKChBdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj''@;'; + put 'put ''cmlwdG9yKERlLCRlKXx8e3ZhbHVlOkRlWyRlXX0pLmdldD92dD1DZS5zdHlsaXplKEF0LnNldD8iW0dldHRlci9TZXR0ZXJdIjoiW0dldHRlcl0iLCJzcGVjaWFsIik6QXQuc2V0JiYodnQ9Q2Uuc3R5bGl6ZSgiW1NldHRlcl0iLCJzcGVjaWFsIikpLFMoUWUsJGUpfHwod3Q9IlsiKyRlKyJd''@;'; + put 'put ''IiksdnR8fChDZS5zZWVuLmluZGV4T2YoQXQudmFsdWUpPDA/KHZ0PVNlKFBlKT9jZShDZSxBdC52YWx1ZSxudWxsKTpjZShDZSxBdC52YWx1ZSxQZS0xKSkuaW5kZXhPZigiXG4iKT4tMSYmKHZ0PWd0P3Z0LnNwbGl0KCJcbiIpLm1hcChmdW5jdGlvbihtdCl7cmV0dXJuIiAgIittdH0pLmpv''@;'; + put 'put ''aW4oIlxuIikuc3Vic3RyKDIpOiJcbiIrdnQuc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKG10KXtyZXR1cm4iICAgIittdH0pLmpvaW4oIlxuIikpOnZ0PUNlLnN0eWxpemUoIltDaXJjdWxhcl0iLCJzcGVjaWFsIikpLEVlKHd0KSl7aWYoZ3QmJiRlLm1hdGNoKC9eXGQrJC8pKXJldHVybiB2''@;'; + put 'put ''dDsod3Q9SlNPTi5zdHJpbmdpZnkoIiIrJGUpKS5tYXRjaCgvXiIoW2EtekEtWl9dW2EtekEtWl8wLTldKikiJC8pPyh3dD13dC5zdWJzdHIoMSx3dC5sZW5ndGgtMiksd3Q9Q2Uuc3R5bGl6ZSh3dCwibmFtZSIpKTood3Q9d3QucmVwbGFjZSgvJy9nLCJcXCciKS5yZXBsYWNlKC9cXCIvZywn''@;'; + put 'put ''IicpLnJlcGxhY2UoLyheInwiJCkvZywiJyIpLHd0PUNlLnN0eWxpemUod3QsInN0cmluZyIpKX1yZXR1cm4gd3QrIjogIit2dH1mdW5jdGlvbiBBZShDZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoQ2UpfWZ1bmN0aW9uIGtlKENlKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBDZX1mdW5jdGlv''@;'; + put 'put ''biBTZShDZSl7cmV0dXJuIG51bGw9PT1DZX1mdW5jdGlvbiBJZShDZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBDZX1mdW5jdGlvbiBUZShDZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBDZX1mdW5jdGlvbiBFZShDZSl7cmV0dXJuIHZvaWQgMD09PUNlfWZ1bmN0aW9uIGhlKENlKXtyZXR1''@;'; + put 'put ''cm4gTyhDZSkmJiJbb2JqZWN0IFJlZ0V4cF0iPT09eChDZSl9ZnVuY3Rpb24gTyhDZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBDZSYmbnVsbCE9PUNlfWZ1bmN0aW9uIHooQ2Upe3JldHVybiBPKENlKSYmIltvYmplY3QgRGF0ZV0iPT09eChDZSl9ZnVuY3Rpb24gbmUoQ2Upe3JldHVybiBP''@;'; + put 'put ''KENlKSYmKCJbb2JqZWN0IEVycm9yXSI9PT14KENlKXx8Q2UgaW5zdGFuY2VvZiBFcnJvcil9ZnVuY3Rpb24gdGUoQ2Upe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBDZX1mdW5jdGlvbiB4KENlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKENlKX1mdW5jdGlvbiBQ''@;'; + put 'put ''KENlKXtyZXR1cm4gQ2U8MTA/IjAiK0NlLnRvU3RyaW5nKDEwKTpDZS50b1N0cmluZygxMCl9US5kZWJ1Z2xvZz1mdW5jdGlvbihDZSl7aWYoQ2U9Q2UudG9VcHBlckNhc2UoKSwhTltDZV0paWYoZWUudGVzdChDZSkpe3ZhciBEZT1pZS5waWQ7TltDZV09ZnVuY3Rpb24oKXt2YXIgUGU9US5m''@;'; + put 'put ''b3JtYXQuYXBwbHkoUSxhcmd1bWVudHMpO2xlLmVycm9yKCIlcyAlZDogJXMiLENlLERlLFBlKX19ZWxzZSBOW0NlXT1mdW5jdGlvbigpe307cmV0dXJuIE5bQ2VdfSxRLmluc3BlY3Q9SixKLmNvbG9ycz17Ym9sZDpbMSwyMl0saXRhbGljOlszLDIzXSx1bmRlcmxpbmU6WzQsMjRdLGludmVy''@;'; + put 'put ''c2U6WzcsMjddLHdoaXRlOlszNywzOV0sZ3JleTpbOTAsMzldLGJsYWNrOlszMCwzOV0sYmx1ZTpbMzQsMzldLGN5YW46WzM2LDM5XSxncmVlbjpbMzIsMzldLG1hZ2VudGE6WzM1LDM5XSxyZWQ6WzMxLDM5XSx5ZWxsb3c6WzMzLDM5XX0sSi5zdHlsZXM9e3NwZWNpYWw6ImN5YW4iLG51bWJl''@;'; + put 'put ''cjoieWVsbG93Iixib29sZWFuOiJ5ZWxsb3ciLHVuZGVmaW5lZDoiZ3JleSIsbnVsbDoiYm9sZCIsc3RyaW5nOiJncmVlbiIsZGF0ZToibWFnZW50YSIscmVnZXhwOiJyZWQifSxRLnR5cGVzPVooNTk1NSksUS5pc0FycmF5PUFlLFEuaXNCb29sZWFuPWtlLFEuaXNOdWxsPVNlLFEuaXNOdWxs''@;'; + put 'put ''T3JVbmRlZmluZWQ9ZnVuY3Rpb24oQ2Upe3JldHVybiBudWxsPT1DZX0sUS5pc051bWJlcj1JZSxRLmlzU3RyaW5nPVRlLFEuaXNTeW1ib2w9ZnVuY3Rpb24oQ2Upe3JldHVybiJzeW1ib2wiPT10eXBlb2YgQ2V9LFEuaXNVbmRlZmluZWQ9RWUsUS5pc1JlZ0V4cD1oZSxRLnR5cGVzLmlzUmVn''@;'; + put 'put ''RXhwPWhlLFEuaXNPYmplY3Q9TyxRLmlzRGF0ZT16LFEudHlwZXMuaXNEYXRlPXosUS5pc0Vycm9yPW5lLFEudHlwZXMuaXNOYXRpdmVFcnJvcj1uZSxRLmlzRnVuY3Rpb249dGUsUS5pc1ByaW1pdGl2ZT1mdW5jdGlvbihDZSl7cmV0dXJuIG51bGw9PT1DZXx8ImJvb2xlYW4iPT10eXBlb2Yg''@;'; + put 'put ''Q2V8fCJudW1iZXIiPT10eXBlb2YgQ2V8fCJzdHJpbmciPT10eXBlb2YgQ2V8fCJzeW1ib2wiPT10eXBlb2YgQ2V8fHZvaWQgMD09PUNlfSxRLmlzQnVmZmVyPVooMzg0KTt2YXIgVj1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIs''@;'; + put 'put ''Ik5vdiIsIkRlYyJdO2Z1bmN0aW9uIFQoKXt2YXIgQ2U9bmV3IERhdGUsRGU9W1AoQ2UuZ2V0SG91cnMoKSksUChDZS5nZXRNaW51dGVzKCkpLFAoQ2UuZ2V0U2Vjb25kcygpKV0uam9pbigiOiIpO3JldHVybltDZS5nZXREYXRlKCksVltDZS5nZXRNb250aCgpXSxEZV0uam9pbigiICIpfWZ1''@;'; + put 'put ''bmN0aW9uIFMoQ2UsRGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQ2UsRGUpfVEubG9nPWZ1bmN0aW9uKCl7bGUubG9nKCIlcyAtICVzIixUKCksUS5mb3JtYXQuYXBwbHkoUSxhcmd1bWVudHMpKX0sUS5pbmhlcml0cz1aKDU3MTcpLFEuX2V4dGVuZD1m''@;'; + put 'put ''dW5jdGlvbihDZSxEZSl7aWYoIURlfHwhTyhEZSkpcmV0dXJuIENlO2Zvcih2YXIgUGU9T2JqZWN0LmtleXMoRGUpLFFlPVBlLmxlbmd0aDtRZS0tOylDZVtQZVtRZV1dPURlW1BlW1FlXV07cmV0dXJuIENlfTt2YXIgRj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbD9TeW1ib2woInV0aWwu''@;'; + put 'put ''cHJvbWlzaWZ5LmN1c3RvbSIpOnZvaWQgMDtmdW5jdGlvbiB5ZShDZSxEZSl7aWYoIUNlKXt2YXIgUGU9bmV3IEVycm9yKCJQcm9taXNlIHdhcyByZWplY3RlZCB3aXRoIGEgZmFsc3kgdmFsdWUiKTtQZS5yZWFzb249Q2UsQ2U9UGV9cmV0dXJuIERlKENlKX1RLnByb21pc2lmeT1mdW5jdGlv''@;'; + put 'put ''bihDZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIENlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAib3JpZ2luYWwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbicpO2lmKEYmJkNlW0ZdKXt2YXIgRGU7aWYoImZ1bmN0aW9uIiE9dHlwZW9mKERlPUNlW0ZdKSl0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCdUaGUgInV0aWwucHJvbWlzaWZ5LmN1c3RvbSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uJyk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEZSxGLHt2YWx1ZTpEZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLERl''@;'; + put 'put ''fWZ1bmN0aW9uIERlKCl7Zm9yKHZhciBQZSxRZSwkZT1uZXcgUHJvbWlzZShmdW5jdGlvbih2dCxBdCl7UGU9dnQsUWU9QXR9KSxndD1bXSx3dD0wO3d0PGFyZ3VtZW50cy5sZW5ndGg7d3QrKylndC5wdXNoKGFyZ3VtZW50c1t3dF0pO2d0LnB1c2goZnVuY3Rpb24odnQsQXQpe3Z0P1FlKHZ0''@;'; + put 'put ''KTpQZShBdCl9KTt0cnl7Q2UuYXBwbHkodGhpcyxndCl9Y2F0Y2godnQpe1FlKHZ0KX1yZXR1cm4gJGV9cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihEZSxPYmplY3QuZ2V0UHJvdG90eXBlT2YoQ2UpKSxGJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoRGUsRix7dmFsdWU6RGUsZW51bWVy''@;'; + put 'put ''YWJsZTohMSx3cml0YWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhEZSxZKENlKSl9LFEucHJvbWlzaWZ5LmN1c3RvbT1GLFEuY2FsbGJhY2tpZnk9ZnVuY3Rpb24oQ2Upe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBDZSl0aHJvdyBuZXcgVHlwZUVycm9y''@;'; + put 'put ''KCdUaGUgIm9yaWdpbmFsIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24nKTtmdW5jdGlvbiBEZSgpe2Zvcih2YXIgUGU9W10sUWU9MDtRZTxhcmd1bWVudHMubGVuZ3RoO1FlKyspUGUucHVzaChhcmd1bWVudHNbUWVdKTt2YXIgJGU9UGUucG9wKCk7aWYoImZ1bmN0aW9uIiE9''@;'; + put 'put ''dHlwZW9mICRlKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBsYXN0IGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbiIpO3ZhciBndD10aGlzLHd0PWZ1bmN0aW9uKCl7cmV0dXJuICRlLmFwcGx5KGd0LGFyZ3VtZW50cyl9O0NlLmFwcGx5KHRoaXMsUGUpLnRoZW4oZnVuY3Rpb24o''@;'; + put 'put ''dnQpe2llLm5leHRUaWNrKHd0LmJpbmQobnVsbCxudWxsLHZ0KSl9LGZ1bmN0aW9uKHZ0KXtpZS5uZXh0VGljayh5ZS5iaW5kKG51bGwsdnQsd3QpKX0pfXJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoRGUsT2JqZWN0LmdldFByb3RvdHlwZU9mKENlKSksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnRpZXMoRGUsWShDZSkpLERlfX0sNDgxOihVLFEsWik9PnshZnVuY3Rpb24oaWUpeyJ1c2Ugc3RyaWN0IjtpZS5leHBvcnRzLmlzX3VyaT1ZLGllLmV4cG9ydHMuaXNfaHR0cF91cmk9VyxpZS5leHBvcnRzLmlzX2h0dHBzX3VyaT1OLGllLmV4cG9ydHMuaXNfd2ViX3VyaT1lZSxpZS5leHBv''@;'; + put 'put ''cnRzLmlzVXJpPVksaWUuZXhwb3J0cy5pc0h0dHBVcmk9VyxpZS5leHBvcnRzLmlzSHR0cHNVcmk9TixpZS5leHBvcnRzLmlzV2ViVXJpPWVlO3ZhciBsZT1mdW5jdGlvbihxKXtyZXR1cm4gcS5tYXRjaCgvKD86KFteOlwvPyNdKyk6KT8oPzpcL1wvKFteXC8/I10qKSk/KFtePyNdKikoPzpc''@;'; + put 'put ''PyhbXiNdKikpPyg/OiMoLiopKT8vKX07ZnVuY3Rpb24gWShxKXtpZihxJiYhL1teYS16MC05XDpcL1w/XCNcW1xdXEBcIVwkXCZcJ1woXClcKlwrXCxcO1w9XC5cLVxfXH5cJV0vaS50ZXN0KHEpJiYhLyVbXjAtOWEtZl0vaS50ZXN0KHEpJiYhLyVbMC05YS1mXSg6P1teMC05YS1mXXwkKS9p''@;'; + put 'put ''LnRlc3QocSkpe3ZhciBKLHNlLG9lLGNlLGRlLHZlPSIiLEFlPSIiO2lmKHZlPShKPWxlKHEpKVsxXSxzZT1KWzJdLG9lPUpbM10sY2U9Sls0XSxkZT1KWzVdLHZlJiZ2ZS5sZW5ndGgmJm9lLmxlbmd0aD49MCl7aWYoc2UmJnNlLmxlbmd0aCl7aWYoMCE9PW9lLmxlbmd0aCYmIS9eXC8vLnRl''@;'; + put 'put ''c3Qob2UpKXJldHVybn1lbHNlIGlmKC9eXC9cLy8udGVzdChvZSkpcmV0dXJuO2lmKC9eW2Etel1bYS16MC05XCtcLVwuXSokLy50ZXN0KHZlLnRvTG93ZXJDYXNlKCkpKXJldHVybiBBZSs9dmUrIjoiLHNlJiZzZS5sZW5ndGgmJihBZSs9Ii8vIitzZSksQWUrPW9lLGNlJiZjZS5sZW5ndGgm''@;'; + put 'put ''JihBZSs9Ij8iK2NlKSxkZSYmZGUubGVuZ3RoJiYoQWUrPSIjIitkZSksQWV9fX1mdW5jdGlvbiBXKHEsSil7aWYoWShxKSl7dmFyIHNlLG9lLGNlLGRlLHZlPSIiLEFlPSIiLGtlPSIiLFNlPSIiO2lmKHZlPShzZT1sZShxKSlbMV0sQWU9c2VbMl0sb2U9c2VbM10sY2U9c2VbNF0sZGU9c2Vb''@;'; + put 'put ''NV0sdmUpe2lmKEope2lmKCJodHRwcyIhPXZlLnRvTG93ZXJDYXNlKCkpcmV0dXJufWVsc2UgaWYoImh0dHAiIT12ZS50b0xvd2VyQ2FzZSgpKXJldHVybjtpZihBZSlyZXR1cm4vOihcZCspJC8udGVzdChBZSkmJihrZT1BZS5tYXRjaCgvOihcZCspJC8pWzBdLEFlPUFlLnJlcGxhY2UoLzpc''@;'; + put 'put ''ZCskLywiIikpLFNlKz12ZSsiOiIsU2UrPSIvLyIrQWUsa2UmJihTZSs9a2UpLFNlKz1vZSxjZSYmY2UubGVuZ3RoJiYoU2UrPSI/IitjZSksZGUmJmRlLmxlbmd0aCYmKFNlKz0iIyIrZGUpLFNlfX19ZnVuY3Rpb24gTihxKXtyZXR1cm4gVyhxLCEwKX1mdW5jdGlvbiBlZShxKXtyZXR1cm4g''@;'; + put 'put ''VyhxKXx8TihxKX19KFU9Wi5ubWQoVSkpfSw2NDMwOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooNDAyOSksbGU9WigzMDgzKSxZPVooMTkyNCksVz1ZKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIiksTj1aKDY0MTApKCksZWU9InVuZGVmaW5lZCI9PXR5cGVvZiBnbG9iYWxU''@;'; + put 'put ''aGlzP1ouZzpnbG9iYWxUaGlzLHE9bGUoKSxKPVkoIlN0cmluZy5wcm90b3R5cGUuc2xpY2UiKSxzZT17fSxvZT1aKDg4MiksY2U9T2JqZWN0LmdldFByb3RvdHlwZU9mO04mJm9lJiZjZSYmaWUocSxmdW5jdGlvbih2ZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGVlW3ZlXSl7dmFyIEFlPW5l''@;'; + put 'put ''dyBlZVt2ZV07aWYoU3ltYm9sLnRvU3RyaW5nVGFnIGluIEFlKXt2YXIga2U9Y2UoQWUpLFNlPW9lKGtlLFN5bWJvbC50b1N0cmluZ1RhZyk7aWYoIVNlKXt2YXIgSWU9Y2Uoa2UpO1NlPW9lKEllLFN5bWJvbC50b1N0cmluZ1RhZyl9c2VbdmVdPVNlLmdldH19fSk7dmFyIGRlPVooNTY5Mik7''@;'; + put 'put ''VS5leHBvcnRzPWZ1bmN0aW9uKHZlKXtyZXR1cm4hIWRlKHZlKSYmKE4mJlN5bWJvbC50b1N0cmluZ1RhZyBpbiB2ZT8oQWU9dmUsa2U9ITEsaWUoc2UsZnVuY3Rpb24oU2UsSWUpe2lmKCFrZSl0cnl7dmFyIFRlPVNlLmNhbGwoQWUpO1RlPT09SWUmJihrZT1UZSl9Y2F0Y2goRWUpe319KSxr''@;'; + put 'put ''ZSk6SihXKHZlKSw4LC0xKSk7dmFyIEFlLGtlfX0sMjQ3OTpVPT57VS5leHBvcnRzPWZ1bmN0aW9uIFEoWixpZSl7aWYoWiYmaWUpcmV0dXJuIFEoWikoaWUpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBaKXRocm93IG5ldyBUeXBlRXJyb3IoIm5lZWQgd3JhcHBlciBmdW5jdGlvbiIpO3JldHVy''@;'; + put 'put ''biBPYmplY3Qua2V5cyhaKS5mb3JFYWNoKGZ1bmN0aW9uKFkpe2xlW1ldPVpbWV19KSxsZTtmdW5jdGlvbiBsZSgpe2Zvcih2YXIgWT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCksVz0wO1c8WS5sZW5ndGg7VysrKVlbV109YXJndW1lbnRzW1ddO3ZhciBOPVouYXBwbHkodGhpcyxZKSxl''@;'; + put 'put ''ZT1ZW1kubGVuZ3RoLTFdO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBOJiZOIT09ZWUmJk9iamVjdC5rZXlzKGVlKS5mb3JFYWNoKGZ1bmN0aW9uKHEpe05bcV09ZWVbcV19KSxOfX19LDk1MDooKT0+e30sNjYwMTooKT0+e30sOTIxNDooKT0+e30sODYyMzooKT0+e30sNzc0ODooKT0+e30s''@;'; + put 'put ''NTU2ODooKT0+e30sMjUzNTooKT0+e30sMzcxMDooKT0+e30sNTQ0MzooKT0+e30sNDEyOTooKT0+e30sNjYxOTooKT0+e30sNzEwODooKT0+e30sMjM2MTooKT0+e30sNDYxNjooKT0+e30sNzIxNzooKT0+e30sODM3MzooKT0+e30sMzA4MzooVSxRLFopPT57InVzZSBzdHJpY3QiO3ZhciBp''@;'; + put 'put ''ZT1bIkJpZ0ludDY0QXJyYXkiLCJCaWdVaW50NjRBcnJheSIsIkZsb2F0MzJBcnJheSIsIkZsb2F0NjRBcnJheSIsIkludDE2QXJyYXkiLCJJbnQzMkFycmF5IiwiSW50OEFycmF5IiwiVWludDE2QXJyYXkiLCJVaW50MzJBcnJheSIsIlVpbnQ4QXJyYXkiLCJVaW50OENsYW1wZWRBcnJheSJd''@;'; + put 'put ''LGxlPSJ1bmRlZmluZWQiPT10eXBlb2YgZ2xvYmFsVGhpcz9aLmc6Z2xvYmFsVGhpcztVLmV4cG9ydHM9ZnVuY3Rpb24oKXtmb3IodmFyIFk9W10sVz0wO1c8aWUubGVuZ3RoO1crKykiZnVuY3Rpb24iPT10eXBlb2YgbGVbaWVbV11dJiYoWVtZLmxlbmd0aF09aWVbV10pO3JldHVybiBZfX0s''@;'; + put 'put ''ODgyOihVLFEsWik9PnsidXNlIHN0cmljdCI7dmFyIGllPVooMjEwKSgiJU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IlIiwhMCk7aWYoaWUpdHJ5e2llKFtdLCJsZW5ndGgiKX1jYXRjaChsZSl7aWU9bnVsbH1VLmV4cG9ydHM9aWV9LDQ5NDY6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4''@;'; + put 'put ''cG9ydHM9SlNPTi5wYXJzZSgneyJhZXMtMTI4LWVjYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjAsIm1vZGUiOiJFQ0IiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTE5Mi1lY2IiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjowLCJtb2RlIjoiRUNCIiwidHlwZSI6ImJs''@;'; + put 'put ''b2NrIn0sImFlcy0yNTYtZWNiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MCwibW9kZSI6IkVDQiIsInR5cGUiOiJibG9jayJ9LCJhZXMtMTI4LWNiYyI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlcy0x''@;'; + put 'put ''OTItY2JjIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTI1Ni1jYmMiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNCQyIsInR5cGUiOiJibG9jayJ9LCJhZXMxMjgiOnsiY2lwaGVy''@;'; + put 'put ''IjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNCQyIsInR5cGUiOiJibG9jayJ9LCJhZXMxOTIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNCQyIsInR5cGUiOiJibG9jayJ9LCJhZXMyNTYiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2''@;'; + put 'put ''IjoxNiwibW9kZSI6IkNCQyIsInR5cGUiOiJibG9jayJ9LCJhZXMtMTI4LWNmYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0ZCIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTkyLWNmYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2Rl''@;'; + put 'put ''IjoiQ0ZCIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0ZCIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTI4LWNmYjgiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNGQjgi''@;'; + put 'put ''LCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItY2ZiOCI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiQ0ZCOCIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTI1Ni1jZmI4Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDRkI4IiwidHlw''@;'; + put 'put ''ZSI6InN0cmVhbSJ9LCJhZXMtMTI4LWNmYjEiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNGQjEiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItY2ZiMSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiQ0ZCMSIsInR5cGUiOiJz''@;'; + put 'put ''dHJlYW0ifSwiYWVzLTI1Ni1jZmIxIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDRkIxIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTI4LW9mYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiT0ZCIiwidHlwZSI6InN0cmVhbSJ9''@;'; + put 'put ''LCJhZXMtMTkyLW9mYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiT0ZCIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMjU2LW9mYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiT0ZCIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTI4''@;'; + put 'put ''LWN0ciI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ1RSIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTkyLWN0ciI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiQ1RSIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMjU2LWN0ciI6eyJj''@;'; + put 'put ''aXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ1RSIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTI4LWdjbSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjEyLCJtb2RlIjoiR0NNIiwidHlwZSI6ImF1dGgifSwiYWVzLTE5Mi1nY20iOnsiY2lwaGVyIjoiQUVT''@;'; + put 'put ''Iiwia2V5IjoxOTIsIml2IjoxMiwibW9kZSI6IkdDTSIsInR5cGUiOiJhdXRoIn0sImFlcy0yNTYtZ2NtIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTIsIm1vZGUiOiJHQ00iLCJ0eXBlIjoiYXV0aCJ9fScpfSw1MjA3OlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPUpTT04u''@;'; + put 'put ''cGFyc2UoJ3sic2hhMjI0V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGEyMjQiLCJpZCI6IjMwMmQzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwNDA1MDAwNDFjIn0sIlJTQS1TSEEyMjQiOnsic2lnbiI6ImVjZHNhL3JzYSIsImhhc2giOiJzaGEyMjQiLCJpZCI6''@;'; + put 'put ''IjMwMmQzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwNDA1MDAwNDFjIn0sInNoYTI1NldpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDQyMCJ9LCJSU0EtU0hBMjU2Ijp7InNpZ24i''@;'; + put 'put ''OiJlY2RzYS9yc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDQyMCJ9LCJzaGEzODRXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiMzA0MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQw''@;'; + put 'put ''MjAyMDUwMDA0MzAifSwiUlNBLVNIQTM4NCI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiMzA0MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAyMDUwMDA0MzAifSwic2hhNTEyV2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGE1MTIi''@;'; + put 'put ''LCJpZCI6IjMwNTEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMzA1MDAwNDQwIn0sIlJTQS1TSEE1MTIiOnsic2lnbiI6ImVjZHNhL3JzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IjMwNTEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMzA1MDAwNDQwIn0sIlJTQS1TSEExIjp7InNpZ24iOiJy''@;'; + put 'put ''c2EiLCJoYXNoIjoic2hhMSIsImlkIjoiMzAyMTMwMDkwNjA1MmIwZTAzMDIxYTA1MDAwNDE0In0sImVjZHNhLXdpdGgtU0hBMSI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiIn0sInNoYTI1NiI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIifSwi''@;'; + put 'put ''c2hhMjI0Ijp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGEyMjQiLCJpZCI6IiJ9LCJzaGEzODQiOnsic2lnbiI6ImVjZHNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiIn0sInNoYTUxMiI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIifSwiRFNBLVNIQSI6eyJzaWdu''@;'; + put 'put ''IjoiZHNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IiJ9LCJEU0EtU0hBMSI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IiJ9LCJEU0EiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwiRFNBLVdJVEgtU0hBMjI0Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hh''@;'; + put 'put ''MjI0IiwiaWQiOiIifSwiRFNBLVNIQTIyNCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiIn0sIkRTQS1XSVRILVNIQTI1NiI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiIn0sIkRTQS1TSEEyNTYiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEyNTYi''@;'; + put 'put ''LCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEEzODQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IiJ9LCJEU0EtU0hBMzg0Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIifSwiRFNBLVdJVEgtU0hBNTEyIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhNTEy''@;'; + put 'put ''IiwiaWQiOiIifSwiRFNBLVNIQTUxMiI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiIn0sIkRTQS1SSVBFTUQxNjAiOnsic2lnbiI6ImRzYSIsImhhc2giOiJybWQxNjAiLCJpZCI6IiJ9LCJyaXBlbWQxNjBXaXRoUlNBIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoicm1kMTYw''@;'; + put 'put ''IiwiaWQiOiIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTQifSwiUlNBLVJJUEVNRDE2MCI6eyJzaWduIjoicnNhIiwiaGFzaCI6InJtZDE2MCIsImlkIjoiMzAyMTMwMDkwNjA1MmIyNDAzMDIwMTA1MDAwNDE0In0sIm1kNVdpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJo''@;'; + put 'put ''YXNoIjoibWQ1IiwiaWQiOiIzMDIwMzAwYzA2MDgyYTg2NDg4NmY3MGQwMjA1MDUwMDA0MTAifSwiUlNBLU1ENSI6eyJzaWduIjoicnNhIiwiaGFzaCI6Im1kNSIsImlkIjoiMzAyMDMwMGMwNjA4MmE4NjQ4ODZmNzBkMDIwNTA1MDAwNDEwIn19Jyl9LDEzMDg6VT0+eyJ1c2Ugc3RyaWN0IjtV''@;'; + put 'put ''LmV4cG9ydHM9SlNPTi5wYXJzZSgneyIxLjMuMTMyLjAuMTAiOiJzZWNwMjU2azEiLCIxLjMuMTMyLjAuMzMiOiJwMjI0IiwiMS4yLjg0MC4xMDA0NS4zLjEuMSI6InAxOTIiLCIxLjIuODQwLjEwMDQ1LjMuMS43IjoicDI1NiIsIjEuMy4xMzIuMC4zNCI6InAzODQiLCIxLjMuMTMyLjAuMzUi''@;'; + put 'put ''OiJwNTIxIn0nKX0sMzIwODpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1KU09OLnBhcnNlKCd7Ik9fUkRPTkxZIjowLCJPX1dST05MWSI6MSwiT19SRFdSIjoyLCJTX0lGTVQiOjYxNDQwLCJTX0lGUkVHIjozMjc2OCwiU19JRkRJUiI6MTYzODQsIlNfSUZDSFIiOjgxOTIsIlNfSUZCTEsi''@;'; + put 'put ''OjI0NTc2LCJTX0lGSUZPIjo0MDk2LCJTX0lGTE5LIjo0MDk2MCwiU19JRlNPQ0siOjQ5MTUyLCJPX0NSRUFUIjo1MTIsIk9fRVhDTCI6MjA0OCwiT19OT0NUVFkiOjEzMTA3MiwiT19UUlVOQyI6MTAyNCwiT19BUFBFTkQiOjgsIk9fRElSRUNUT1JZIjoxMDQ4NTc2LCJPX05PRk9MTE9XIjoy''@;'; + put 'put ''NTYsIk9fU1lOQyI6MTI4LCJPX1NZTUxJTksiOjIwOTcxNTIsIk9fTk9OQkxPQ0siOjQsIlNfSVJXWFUiOjQ0OCwiU19JUlVTUiI6MjU2LCJTX0lXVVNSIjoxMjgsIlNfSVhVU1IiOjY0LCJTX0lSV1hHIjo1NiwiU19JUkdSUCI6MzIsIlNfSVdHUlAiOjE2LCJTX0lYR1JQIjo4LCJTX0lSV1hP''@;'; + put 'put ''Ijo3LCJTX0lST1RIIjo0LCJTX0lXT1RIIjoyLCJTX0lYT1RIIjoxLCJFMkJJRyI6NywiRUFDQ0VTIjoxMywiRUFERFJJTlVTRSI6NDgsIkVBRERSTk9UQVZBSUwiOjQ5LCJFQUZOT1NVUFBPUlQiOjQ3LCJFQUdBSU4iOjM1LCJFQUxSRUFEWSI6MzcsIkVCQURGIjo5LCJFQkFETVNHIjo5NCwi''@;'; + put 'put ''RUJVU1kiOjE2LCJFQ0FOQ0VMRUQiOjg5LCJFQ0hJTEQiOjEwLCJFQ09OTkFCT1JURUQiOjUzLCJFQ09OTlJFRlVTRUQiOjYxLCJFQ09OTlJFU0VUIjo1NCwiRURFQURMSyI6MTEsIkVERVNUQUREUlJFUSI6MzksIkVET00iOjMzLCJFRFFVT1QiOjY5LCJFRVhJU1QiOjE3LCJFRkFVTFQiOjE0''@;'; + put 'put ''LCJFRkJJRyI6MjcsIkVIT1NUVU5SRUFDSCI6NjUsIkVJRFJNIjo5MCwiRUlMU0VRIjo5MiwiRUlOUFJPR1JFU1MiOjM2LCJFSU5UUiI6NCwiRUlOVkFMIjoyMiwiRUlPIjo1LCJFSVNDT05OIjo1NiwiRUlTRElSIjoyMSwiRUxPT1AiOjYyLCJFTUZJTEUiOjI0LCJFTUxJTksiOjMxLCJFTVNH''@;'; + put 'put ''U0laRSI6NDAsIkVNVUxUSUhPUCI6OTUsIkVOQU1FVE9PTE9ORyI6NjMsIkVORVRET1dOIjo1MCwiRU5FVFJFU0VUIjo1MiwiRU5FVFVOUkVBQ0giOjUxLCJFTkZJTEUiOjIzLCJFTk9CVUZTIjo1NSwiRU5PREFUQSI6OTYsIkVOT0RFViI6MTksIkVOT0VOVCI6MiwiRU5PRVhFQyI6OCwiRU5P''@;'; + put 'put ''TENLIjo3NywiRU5PTElOSyI6OTcsIkVOT01FTSI6MTIsIkVOT01TRyI6OTEsIkVOT1BST1RPT1BUIjo0MiwiRU5PU1BDIjoyOCwiRU5PU1IiOjk4LCJFTk9TVFIiOjk5LCJFTk9TWVMiOjc4LCJFTk9UQ09OTiI6NTcsIkVOT1RESVIiOjIwLCJFTk9URU1QVFkiOjY2LCJFTk9UU09DSyI6Mzgs''@;'; + put 'put ''IkVOT1RTVVAiOjQ1LCJFTk9UVFkiOjI1LCJFTlhJTyI6NiwiRU9QTk9UU1VQUCI6MTAyLCJFT1ZFUkZMT1ciOjg0LCJFUEVSTSI6MSwiRVBJUEUiOjMyLCJFUFJPVE8iOjEwMCwiRVBST1RPTk9TVVBQT1JUIjo0MywiRVBST1RPVFlQRSI6NDEsIkVSQU5HRSI6MzQsIkVST0ZTIjozMCwiRVNQ''@;'; + put 'put ''SVBFIjoyOSwiRVNSQ0giOjMsIkVTVEFMRSI6NzAsIkVUSU1FIjoxMDEsIkVUSU1FRE9VVCI6NjAsIkVUWFRCU1kiOjI2LCJFV09VTERCTE9DSyI6MzUsIkVYREVWIjoxOCwiU0lHSFVQIjoxLCJTSUdJTlQiOjIsIlNJR1FVSVQiOjMsIlNJR0lMTCI6NCwiU0lHVFJBUCI6NSwiU0lHQUJSVCI6''@;'; + put 'put ''NiwiU0lHSU9UIjo2LCJTSUdCVVMiOjEwLCJTSUdGUEUiOjgsIlNJR0tJTEwiOjksIlNJR1VTUjEiOjMwLCJTSUdTRUdWIjoxMSwiU0lHVVNSMiI6MzEsIlNJR1BJUEUiOjEzLCJTSUdBTFJNIjoxNCwiU0lHVEVSTSI6MTUsIlNJR0NITEQiOjIwLCJTSUdDT05UIjoxOSwiU0lHU1RPUCI6MTcs''@;'; + put 'put ''IlNJR1RTVFAiOjE4LCJTSUdUVElOIjoyMSwiU0lHVFRPVSI6MjIsIlNJR1VSRyI6MTYsIlNJR1hDUFUiOjI0LCJTSUdYRlNaIjoyNSwiU0lHVlRBTFJNIjoyNiwiU0lHUFJPRiI6MjcsIlNJR1dJTkNIIjoyOCwiU0lHSU8iOjIzLCJTSUdTWVMiOjEyLCJTU0xfT1BfQUxMIjoyMTQ3NDg2NzE5''@;'; + put 'put ''LCJTU0xfT1BfQUxMT1dfVU5TQUZFX0xFR0FDWV9SRU5FR09USUFUSU9OIjoyNjIxNDQsIlNTTF9PUF9DSVBIRVJfU0VSVkVSX1BSRUZFUkVOQ0UiOjQxOTQzMDQsIlNTTF9PUF9DSVNDT19BTllDT05ORUNUIjozMjc2OCwiU1NMX09QX0NPT0tJRV9FWENIQU5HRSI6ODE5MiwiU1NMX09QX0NS''@;'; + put 'put ''WVBUT1BST19UTFNFWFRfQlVHIjoyMTQ3NDgzNjQ4LCJTU0xfT1BfRE9OVF9JTlNFUlRfRU1QVFlfRlJBR01FTlRTIjoyMDQ4LCJTU0xfT1BfRVBIRU1FUkFMX1JTQSI6MCwiU1NMX09QX0xFR0FDWV9TRVJWRVJfQ09OTkVDVCI6NCwiU1NMX09QX01JQ1JPU09GVF9CSUdfU1NMVjNfQlVGRkVS''@;'; + put 'put ''IjozMiwiU1NMX09QX01JQ1JPU09GVF9TRVNTX0lEX0JVRyI6MSwiU1NMX09QX01TSUVfU1NMVjJfUlNBX1BBRERJTkciOjAsIlNTTF9PUF9ORVRTQ0FQRV9DQV9ETl9CVUciOjUzNjg3MDkxMiwiU1NMX09QX05FVFNDQVBFX0NIQUxMRU5HRV9CVUciOjIsIlNTTF9PUF9ORVRTQ0FQRV9ERU1P''@;'; + put 'put ''X0NJUEhFUl9DSEFOR0VfQlVHIjoxMDczNzQxODI0LCJTU0xfT1BfTkVUU0NBUEVfUkVVU0VfQ0lQSEVSX0NIQU5HRV9CVUciOjgsIlNTTF9PUF9OT19DT01QUkVTU0lPTiI6MTMxMDcyLCJTU0xfT1BfTk9fUVVFUllfTVRVIjo0MDk2LCJTU0xfT1BfTk9fU0VTU0lPTl9SRVNVTVBUSU9OX09O''@;'; + put 'put ''X1JFTkVHT1RJQVRJT04iOjY1NTM2LCJTU0xfT1BfTk9fU1NMdjIiOjE2Nzc3MjE2LCJTU0xfT1BfTk9fU1NMdjMiOjMzNTU0NDMyLCJTU0xfT1BfTk9fVElDS0VUIjoxNjM4NCwiU1NMX09QX05PX1RMU3YxIjo2NzEwODg2NCwiU1NMX09QX05PX1RMU3YxXzEiOjI2ODQzNTQ1NiwiU1NMX09Q''@;'; + put 'put ''X05PX1RMU3YxXzIiOjEzNDIxNzcyOCwiU1NMX09QX1BLQ1MxX0NIRUNLXzEiOjAsIlNTTF9PUF9QS0NTMV9DSEVDS18yIjowLCJTU0xfT1BfU0lOR0xFX0RIX1VTRSI6MTA0ODU3NiwiU1NMX09QX1NJTkdMRV9FQ0RIX1VTRSI6NTI0Mjg4LCJTU0xfT1BfU1NMRUFZXzA4MF9DTElFTlRfREhf''@;'; + put 'put ''QlVHIjoxMjgsIlNTTF9PUF9TU0xSRUYyX1JFVVNFX0NFUlRfVFlQRV9CVUciOjAsIlNTTF9PUF9UTFNfQkxPQ0tfUEFERElOR19CVUciOjUxMiwiU1NMX09QX1RMU19ENV9CVUciOjI1NiwiU1NMX09QX1RMU19ST0xMQkFDS19CVUciOjgzODg2MDgsIkVOR0lORV9NRVRIT0RfRFNBIjoyLCJF''@;'; + put 'put ''TkdJTkVfTUVUSE9EX0RIIjo0LCJFTkdJTkVfTUVUSE9EX1JBTkQiOjgsIkVOR0lORV9NRVRIT0RfRUNESCI6MTYsIkVOR0lORV9NRVRIT0RfRUNEU0EiOjMyLCJFTkdJTkVfTUVUSE9EX0NJUEhFUlMiOjY0LCJFTkdJTkVfTUVUSE9EX0RJR0VTVFMiOjEyOCwiRU5HSU5FX01FVEhPRF9TVE9S''@;'; + put 'put ''RSI6MjU2LCJFTkdJTkVfTUVUSE9EX1BLRVlfTUVUSFMiOjUxMiwiRU5HSU5FX01FVEhPRF9QS0VZX0FTTjFfTUVUSFMiOjEwMjQsIkVOR0lORV9NRVRIT0RfQUxMIjo2NTUzNSwiRU5HSU5FX01FVEhPRF9OT05FIjowLCJESF9DSEVDS19QX05PVF9TQUZFX1BSSU1FIjoyLCJESF9DSEVDS19Q''@;'; + put 'put ''X05PVF9QUklNRSI6MSwiREhfVU5BQkxFX1RPX0NIRUNLX0dFTkVSQVRPUiI6NCwiREhfTk9UX1NVSVRBQkxFX0dFTkVSQVRPUiI6OCwiTlBOX0VOQUJMRUQiOjEsIlJTQV9QS0NTMV9QQURESU5HIjoxLCJSU0FfU1NMVjIzX1BBRERJTkciOjIsIlJTQV9OT19QQURESU5HIjozLCJSU0FfUEtD''@;'; + put 'put ''UzFfT0FFUF9QQURESU5HIjo0LCJSU0FfWDkzMV9QQURESU5HIjo1LCJSU0FfUEtDUzFfUFNTX1BBRERJTkciOjYsIlBPSU5UX0NPTlZFUlNJT05fQ09NUFJFU1NFRCI6MiwiUE9JTlRfQ09OVkVSU0lPTl9VTkNPTVBSRVNTRUQiOjQsIlBPSU5UX0NPTlZFUlNJT05fSFlCUklEIjo2LCJGX09L''@;'; + put 'put ''IjowLCJSX09LIjo0LCJXX09LIjoyLCJYX09LIjoxLCJVVl9VRFBfUkVVU0VBRERSIjo0fScpfSw5Nzk5OlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPUpTT04ucGFyc2UoJ3sibW9kcDEiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRj''@;'; + put 'put ''NjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2M2EzNjIwZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2Rw''@;'; + put 'put ''MiI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFj''@;'; + put 'put ''MjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTY1MzgxZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwNSI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5''@;'; + put 'put ''MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNi''@;'; + put 'put ''NmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJj''@;'; + put 'put ''OTgwNGYxNzQ2YzA4Y2EyMzczMjdmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAxNCI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRk''@;'; + put 'put ''ZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0''@;'; + put 'put ''ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZm''@;'; + put 'put ''NGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFjYWE2OGZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE1Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFj''@;'; + put 'put ''ZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5''@;'; + put 'put ''ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2''@;'; + put 'put ''MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJl''@;'; + put 'put ''ZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4''@;'; + put 'put ''ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTNhZDJjYWZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE2Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJl''@;'; + put 'put ''YTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNl''@;'; + put 'put ''NDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAz''@;'; + put 'put ''OWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcw''@;'; + put 'put ''Zjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2Uw''@;'; + put 'put ''ZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNh''@;'; + put 'put ''MjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwNjMxOTlmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAxNyI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZm''@;'; + put 'put ''ZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5''@;'; + put 'put ''YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5''@;'; + put 'put ''NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFk''@;'; + put 'put ''MzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIx''@;'; + put 'put ''ODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0''@;'; + put 'put ''NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJlN2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0''@;'; + put 'put ''ZGY0MzVjOTM0MDI4NDkyMzZjM2ZhYjRkMjdjNzAyNmMxZDRkY2IyNjAyNjQ2ZGVjOTc1MWU3NjNkYmEzN2JkZjhmZjk0MDZhZDllNTMwZWU1ZGIzODJmNDEzMDAxYWViMDZhNTNlZDkwMjdkODMxMTc5NzI3YjA4NjVhODkxOGRhM2VkYmViY2Y5YjE0ZWQ0NGNlNmNiYWNlZDRiYjFiZGI3ZjE0''@;'; + put 'put ''NDdlNmNjMjU0YjMzMjA1MTUxMmJkN2FmNDI2ZmI4ZjQwMTM3OGNkMmJmNTk4M2NhMDFjNjRiOTJlY2YwMzJlYTE1ZDE3MjFkMDNmNDgyZDdjZTZlNzRmZWY2ZDU1ZTcwMmY0Njk4MGM4MmI1YTg0MDMxOTAwYjFjOWU1OWU3Yzk3ZmJlYzdlOGYzMjNhOTdhN2UzNmNjODhiZTBmMWQ0NWI3ZmY1''@;'; + put 'put ''ODVhYzU0YmQ0MDdiMjJiNDE1NGFhY2M4ZjZkN2ViZjQ4ZTFkODE0Y2M1ZWQyMGY4MDM3ZTBhNzk3MTVlZWYyOWJlMzI4MDZhMWQ1OGJiN2M1ZGE3NmY1NTBhYTNkOGExZmJmZjBlYjE5Y2NiMWEzMTNkNTVjZGE1NmM5ZWMyZWYyOTYzMjM4N2ZlOGQ3NmUzYzA0NjgwNDNlOGY2NjNmNDg2MGVl''@;'; + put 'put ''MTJiZjJkNWIwYjc0NzRkNmU2OTRmOTFlNmRjYzQwMjRmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAxOCI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRh''@;'; + put 'put ''MDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhh''@;'; + put 'put ''MTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2Ey''@;'; + put 'put ''OGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJm''@;'; + put 'put ''NWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIw''@;'; + put 'put ''YTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJl''@;'; + put 'put ''N2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDI4NDkyMzZjM2ZhYjRkMjdjNzAyNmMxZDRkY2IyNjAyNjQ2ZGVjOTc1MWU3NjNkYmEzN2JkZjhmZjk0MDZhZDllNTMwZWU1''@;'; + put 'put ''ZGIzODJmNDEzMDAxYWViMDZhNTNlZDkwMjdkODMxMTc5NzI3YjA4NjVhODkxOGRhM2VkYmViY2Y5YjE0ZWQ0NGNlNmNiYWNlZDRiYjFiZGI3ZjE0NDdlNmNjMjU0YjMzMjA1MTUxMmJkN2FmNDI2ZmI4ZjQwMTM3OGNkMmJmNTk4M2NhMDFjNjRiOTJlY2YwMzJlYTE1ZDE3MjFkMDNmNDgyZDdj''@;'; + put 'put ''ZTZlNzRmZWY2ZDU1ZTcwMmY0Njk4MGM4MmI1YTg0MDMxOTAwYjFjOWU1OWU3Yzk3ZmJlYzdlOGYzMjNhOTdhN2UzNmNjODhiZTBmMWQ0NWI3ZmY1ODVhYzU0YmQ0MDdiMjJiNDE1NGFhY2M4ZjZkN2ViZjQ4ZTFkODE0Y2M1ZWQyMGY4MDM3ZTBhNzk3MTVlZWYyOWJlMzI4MDZhMWQ1OGJiN2M1''@;'; + put 'put ''ZGE3NmY1NTBhYTNkOGExZmJmZjBlYjE5Y2NiMWEzMTNkNTVjZGE1NmM5ZWMyZWYyOTYzMjM4N2ZlOGQ3NmUzYzA0NjgwNDNlOGY2NjNmNDg2MGVlMTJiZjJkNWIwYjc0NzRkNmU2OTRmOTFlNmRiZTExNTk3NGEzOTI2ZjEyZmVlNWU0Mzg3NzdjYjZhOTMyZGY4Y2Q4YmVjNGQwNzNiOTMxYmEz''@;'; + put 'put ''YmM4MzJiNjhkOWRkMzAwNzQxZmE3YmY4YWZjNDdlZDI1NzZmNjkzNmJhNDI0NjYzYWFiNjM5YzVhZTRmNTY4MzQyM2I0NzQyYmYxYzk3ODIzOGYxNmNiZTM5ZDY1MmRlM2ZkYjhiZWZjODQ4YWQ5MjIyMjJlMDRhNDAzN2MwNzEzZWI1N2E4MWEyM2YwYzczNDczZmM2NDZjZWEzMDZiNGJjYmM4''@;'; + put 'put ''ODYyZjgzODVkZGZhOWQ0YjdmYTJjMDg3ZTg3OTY4MzMwM2VkNWJkZDNhMDYyYjNjZjViM2EyNzhhNjZkMmExM2Y4M2Y0NGY4MmRkZjMxMGVlMDc0YWI2YTM2NDU5N2U4OTlhMDI1NWRjMTY0ZjMxY2M1MDg0Njg1MWRmOWFiNDgxOTVkZWQ3ZWExYjFkNTEwYmQ3ZWU3NGQ3M2ZhZjM2YmMzMWVj''@;'; + put 'put ''ZmEyNjgzNTkwNDZmNGViODc5ZjkyNDAwOTQzOGI0ODFjNmNkNzg4OWEwMDJlZDVlZTM4MmJjOTE5MGRhNmZjMDI2ZTQ3OTU1OGU0NDc1Njc3ZTlhYTllMzA1MGUyNzY1Njk0ZGZjODFmNTZlODgwYjk2ZTcxNjBjOTgwZGQ5OGVkZDNkZmZmZmZmZmZmZmZmZmZmZmYifX0nKX0sODU5NzpVPT57''@;'; + put 'put ''InVzZSBzdHJpY3QiO1UuZXhwb3J0cz17aTg6IjYuNS40In19LDI1NjI6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9SlNPTi5wYXJzZSgneyIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4xIjoiYWVzLTEyOC1lY2IiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yIjoiYWVzLTEyOC1jYmMiLCIyLjE2''@;'; + put 'put ''Ljg0MC4xLjEwMS4zLjQuMS4zIjoiYWVzLTEyOC1vZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40IjoiYWVzLTEyOC1jZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMSI6ImFlcy0xOTItZWNiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjIiOiJhZXMtMTkyLWNiYyIsIjIuMTYuODQwLjEu''@;'; + put 'put ''MTAxLjMuNC4xLjIzIjoiYWVzLTE5Mi1vZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yNCI6ImFlcy0xOTItY2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDEiOiJhZXMtMjU2LWVjYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQyIjoiYWVzLTI1Ni1jYmMiLCIyLjE2Ljg0MC4xLjEwMS4z''@;'; + put 'put ''LjQuMS40MyI6ImFlcy0yNTYtb2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDQiOiJhZXMtMjU2LWNmYiJ9Jyl9LDM3MDQ6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9SlNPTi5wYXJzZSgnWyJhYyIsImNvbS5hYyIsImVkdS5hYyIsImdvdi5hYyIsIm5ldC5hYyIsIm1pbC5hYyIsIm9y''@;'; + put 'put ''Zy5hYyIsImFkIiwibm9tLmFkIiwiYWUiLCJjby5hZSIsIm5ldC5hZSIsIm9yZy5hZSIsInNjaC5hZSIsImFjLmFlIiwiZ292LmFlIiwibWlsLmFlIiwiYWVybyIsImFjY2lkZW50LWludmVzdGlnYXRpb24uYWVybyIsImFjY2lkZW50LXByZXZlbnRpb24uYWVybyIsImFlcm9iYXRpYy5hZXJv''@;'; + put 'put ''IiwiYWVyb2NsdWIuYWVybyIsImFlcm9kcm9tZS5hZXJvIiwiYWdlbnRzLmFlcm8iLCJhaXJjcmFmdC5hZXJvIiwiYWlybGluZS5hZXJvIiwiYWlycG9ydC5hZXJvIiwiYWlyLXN1cnZlaWxsYW5jZS5hZXJvIiwiYWlydHJhZmZpYy5hZXJvIiwiYWlyLXRyYWZmaWMtY29udHJvbC5hZXJvIiwi''@;'; + put 'put ''YW1idWxhbmNlLmFlcm8iLCJhbXVzZW1lbnQuYWVybyIsImFzc29jaWF0aW9uLmFlcm8iLCJhdXRob3IuYWVybyIsImJhbGxvb25pbmcuYWVybyIsImJyb2tlci5hZXJvIiwiY2FhLmFlcm8iLCJjYXJnby5hZXJvIiwiY2F0ZXJpbmcuYWVybyIsImNlcnRpZmljYXRpb24uYWVybyIsImNoYW1w''@;'; + put 'put ''aW9uc2hpcC5hZXJvIiwiY2hhcnRlci5hZXJvIiwiY2l2aWxhdmlhdGlvbi5hZXJvIiwiY2x1Yi5hZXJvIiwiY29uZmVyZW5jZS5hZXJvIiwiY29uc3VsdGFudC5hZXJvIiwiY29uc3VsdGluZy5hZXJvIiwiY29udHJvbC5hZXJvIiwiY291bmNpbC5hZXJvIiwiY3Jldy5hZXJvIiwiZGVzaWdu''@;'; + put 'put ''LmFlcm8iLCJkZ2NhLmFlcm8iLCJlZHVjYXRvci5hZXJvIiwiZW1lcmdlbmN5LmFlcm8iLCJlbmdpbmUuYWVybyIsImVuZ2luZWVyLmFlcm8iLCJlbnRlcnRhaW5tZW50LmFlcm8iLCJlcXVpcG1lbnQuYWVybyIsImV4Y2hhbmdlLmFlcm8iLCJleHByZXNzLmFlcm8iLCJmZWRlcmF0aW9uLmFl''@;'; + put 'put ''cm8iLCJmbGlnaHQuYWVybyIsImZyZWlnaHQuYWVybyIsImZ1ZWwuYWVybyIsImdsaWRpbmcuYWVybyIsImdvdmVybm1lbnQuYWVybyIsImdyb3VuZGhhbmRsaW5nLmFlcm8iLCJncm91cC5hZXJvIiwiaGFuZ2dsaWRpbmcuYWVybyIsImhvbWVidWlsdC5hZXJvIiwiaW5zdXJhbmNlLmFlcm8i''@;'; + put 'put ''LCJqb3VybmFsLmFlcm8iLCJqb3VybmFsaXN0LmFlcm8iLCJsZWFzaW5nLmFlcm8iLCJsb2dpc3RpY3MuYWVybyIsIm1hZ2F6aW5lLmFlcm8iLCJtYWludGVuYW5jZS5hZXJvIiwibWVkaWEuYWVybyIsIm1pY3JvbGlnaHQuYWVybyIsIm1vZGVsbGluZy5hZXJvIiwibmF2aWdhdGlvbi5hZXJv''@;'; + put 'put ''IiwicGFyYWNodXRpbmcuYWVybyIsInBhcmFnbGlkaW5nLmFlcm8iLCJwYXNzZW5nZXItYXNzb2NpYXRpb24uYWVybyIsInBpbG90LmFlcm8iLCJwcmVzcy5hZXJvIiwicHJvZHVjdGlvbi5hZXJvIiwicmVjcmVhdGlvbi5hZXJvIiwicmVwYm9keS5hZXJvIiwicmVzLmFlcm8iLCJyZXNlYXJj''@;'; + put 'put ''aC5hZXJvIiwicm90b3JjcmFmdC5hZXJvIiwic2FmZXR5LmFlcm8iLCJzY2llbnRpc3QuYWVybyIsInNlcnZpY2VzLmFlcm8iLCJzaG93LmFlcm8iLCJza3lkaXZpbmcuYWVybyIsInNvZnR3YXJlLmFlcm8iLCJzdHVkZW50LmFlcm8iLCJ0cmFkZXIuYWVybyIsInRyYWRpbmcuYWVybyIsInRy''@;'; + put 'put ''YWluZXIuYWVybyIsInVuaW9uLmFlcm8iLCJ3b3JraW5nZ3JvdXAuYWVybyIsIndvcmtzLmFlcm8iLCJhZiIsImdvdi5hZiIsImNvbS5hZiIsIm9yZy5hZiIsIm5ldC5hZiIsImVkdS5hZiIsImFnIiwiY29tLmFnIiwib3JnLmFnIiwibmV0LmFnIiwiY28uYWciLCJub20uYWciLCJhaSIsIm9m''@;'; + put 'put ''Zi5haSIsImNvbS5haSIsIm5ldC5haSIsIm9yZy5haSIsImFsIiwiY29tLmFsIiwiZWR1LmFsIiwiZ292LmFsIiwibWlsLmFsIiwibmV0LmFsIiwib3JnLmFsIiwiYW0iLCJjby5hbSIsImNvbS5hbSIsImNvbW11bmUuYW0iLCJuZXQuYW0iLCJvcmcuYW0iLCJhbyIsImVkLmFvIiwiZ3YuYW8i''@;'; + put 'put ''LCJvZy5hbyIsImNvLmFvIiwicGIuYW8iLCJpdC5hbyIsImFxIiwiYXIiLCJjb20uYXIiLCJlZHUuYXIiLCJnb2IuYXIiLCJnb3YuYXIiLCJpbnQuYXIiLCJtaWwuYXIiLCJtdXNpY2EuYXIiLCJuZXQuYXIiLCJvcmcuYXIiLCJ0dXIuYXIiLCJhcnBhIiwiZTE2NC5hcnBhIiwiaW4tYWRkci5h''@;'; + put 'put ''cnBhIiwiaXA2LmFycGEiLCJpcmlzLmFycGEiLCJ1cmkuYXJwYSIsInVybi5hcnBhIiwiYXMiLCJnb3YuYXMiLCJhc2lhIiwiYXQiLCJhYy5hdCIsImNvLmF0IiwiZ3YuYXQiLCJvci5hdCIsImF1IiwiY29tLmF1IiwibmV0LmF1Iiwib3JnLmF1IiwiZWR1LmF1IiwiZ292LmF1IiwiYXNuLmF1''@;'; + put 'put ''IiwiaWQuYXUiLCJpbmZvLmF1IiwiY29uZi5hdSIsIm96LmF1IiwiYWN0LmF1IiwibnN3LmF1IiwibnQuYXUiLCJxbGQuYXUiLCJzYS5hdSIsInRhcy5hdSIsInZpYy5hdSIsIndhLmF1IiwiYWN0LmVkdS5hdSIsImNhdGhvbGljLmVkdS5hdSIsIm5zdy5lZHUuYXUiLCJudC5lZHUuYXUiLCJx''@;'; + put 'put ''bGQuZWR1LmF1Iiwic2EuZWR1LmF1IiwidGFzLmVkdS5hdSIsInZpYy5lZHUuYXUiLCJ3YS5lZHUuYXUiLCJxbGQuZ292LmF1Iiwic2EuZ292LmF1IiwidGFzLmdvdi5hdSIsInZpYy5nb3YuYXUiLCJ3YS5nb3YuYXUiLCJlZHVjYXRpb24udGFzLmVkdS5hdSIsInNjaG9vbHMubnN3LmVkdS5h''@;'; + put 'put ''dSIsImF3IiwiY29tLmF3IiwiYXgiLCJheiIsImNvbS5heiIsIm5ldC5heiIsImludC5heiIsImdvdi5heiIsIm9yZy5heiIsImVkdS5heiIsImluZm8uYXoiLCJwcC5heiIsIm1pbC5heiIsIm5hbWUuYXoiLCJwcm8uYXoiLCJiaXouYXoiLCJiYSIsImNvbS5iYSIsImVkdS5iYSIsImdvdi5i''@;'; + put 'put ''YSIsIm1pbC5iYSIsIm5ldC5iYSIsIm9yZy5iYSIsImJiIiwiYml6LmJiIiwiY28uYmIiLCJjb20uYmIiLCJlZHUuYmIiLCJnb3YuYmIiLCJpbmZvLmJiIiwibmV0LmJiIiwib3JnLmJiIiwic3RvcmUuYmIiLCJ0di5iYiIsIiouYmQiLCJiZSIsImFjLmJlIiwiYmYiLCJnb3YuYmYiLCJiZyIs''@;'; + put 'put ''ImEuYmciLCJiLmJnIiwiYy5iZyIsImQuYmciLCJlLmJnIiwiZi5iZyIsImcuYmciLCJoLmJnIiwiaS5iZyIsImouYmciLCJrLmJnIiwibC5iZyIsIm0uYmciLCJuLmJnIiwiby5iZyIsInAuYmciLCJxLmJnIiwici5iZyIsInMuYmciLCJ0LmJnIiwidS5iZyIsInYuYmciLCJ3LmJnIiwieC5i''@;'; + put 'put ''ZyIsInkuYmciLCJ6LmJnIiwiMC5iZyIsIjEuYmciLCIyLmJnIiwiMy5iZyIsIjQuYmciLCI1LmJnIiwiNi5iZyIsIjcuYmciLCI4LmJnIiwiOS5iZyIsImJoIiwiY29tLmJoIiwiZWR1LmJoIiwibmV0LmJoIiwib3JnLmJoIiwiZ292LmJoIiwiYmkiLCJjby5iaSIsImNvbS5iaSIsImVkdS5i''@;'; + put 'put ''aSIsIm9yLmJpIiwib3JnLmJpIiwiYml6IiwiYmoiLCJhc3NvLmJqIiwiYmFycmVhdS5iaiIsImdvdXYuYmoiLCJibSIsImNvbS5ibSIsImVkdS5ibSIsImdvdi5ibSIsIm5ldC5ibSIsIm9yZy5ibSIsImJuIiwiY29tLmJuIiwiZWR1LmJuIiwiZ292LmJuIiwibmV0LmJuIiwib3JnLmJuIiwi''@;'; + put 'put ''Ym8iLCJjb20uYm8iLCJlZHUuYm8iLCJnb2IuYm8iLCJpbnQuYm8iLCJvcmcuYm8iLCJuZXQuYm8iLCJtaWwuYm8iLCJ0di5ibyIsIndlYi5ibyIsImFjYWRlbWlhLmJvIiwiYWdyby5ibyIsImFydGUuYm8iLCJibG9nLmJvIiwiYm9saXZpYS5ibyIsImNpZW5jaWEuYm8iLCJjb29wZXJhdGl2''@;'; + put 'put ''YS5ibyIsImRlbW9jcmFjaWEuYm8iLCJkZXBvcnRlLmJvIiwiZWNvbG9naWEuYm8iLCJlY29ub21pYS5ibyIsImVtcHJlc2EuYm8iLCJpbmRpZ2VuYS5ibyIsImluZHVzdHJpYS5ibyIsImluZm8uYm8iLCJtZWRpY2luYS5ibyIsIm1vdmltaWVudG8uYm8iLCJtdXNpY2EuYm8iLCJuYXR1cmFs''@;'; + put 'put ''LmJvIiwibm9tYnJlLmJvIiwibm90aWNpYXMuYm8iLCJwYXRyaWEuYm8iLCJwb2xpdGljYS5ibyIsInByb2Zlc2lvbmFsLmJvIiwicGx1cmluYWNpb25hbC5ibyIsInB1ZWJsby5ibyIsInJldmlzdGEuYm8iLCJzYWx1ZC5ibyIsInRlY25vbG9naWEuYm8iLCJ0a3NhdC5ibyIsInRyYW5zcG9y''@;'; + put 'put ''dGUuYm8iLCJ3aWtpLmJvIiwiYnIiLCI5Z3VhY3UuYnIiLCJhYmMuYnIiLCJhZG0uYnIiLCJhZHYuYnIiLCJhZ3IuYnIiLCJhanUuYnIiLCJhbS5iciIsImFuYW5pLmJyIiwiYXBhcmVjaWRhLmJyIiwiYXJxLmJyIiwiYXJ0LmJyIiwiYXRvLmJyIiwiYi5iciIsImJhcnVlcmkuYnIiLCJiZWxl''@;'; + put 'put ''bS5iciIsImJoei5iciIsImJpby5iciIsImJsb2cuYnIiLCJibWQuYnIiLCJib2F2aXN0YS5iciIsImJzYi5iciIsImNhbXBpbmFncmFuZGUuYnIiLCJjYW1waW5hcy5iciIsImNheGlhcy5iciIsImNpbS5iciIsImNuZy5iciIsImNudC5iciIsImNvbS5iciIsImNvbnRhZ2VtLmJyIiwiY29v''@;'; + put 'put ''cC5iciIsImNyaS5iciIsImN1aWFiYS5iciIsImN1cml0aWJhLmJyIiwiZGVmLmJyIiwiZWNuLmJyIiwiZWNvLmJyIiwiZWR1LmJyIiwiZW1wLmJyIiwiZW5nLmJyIiwiZXNwLmJyIiwiZXRjLmJyIiwiZXRpLmJyIiwiZmFyLmJyIiwiZmVpcmEuYnIiLCJmbG9nLmJyIiwiZmxvcmlwYS5iciIs''@;'; + put 'put ''ImZtLmJyIiwiZm5kLmJyIiwiZm9ydGFsLmJyIiwiZm90LmJyIiwiZm96LmJyIiwiZnN0LmJyIiwiZzEyLmJyIiwiZ2dmLmJyIiwiZ29pYW5pYS5iciIsImdvdi5iciIsImFjLmdvdi5iciIsImFsLmdvdi5iciIsImFtLmdvdi5iciIsImFwLmdvdi5iciIsImJhLmdvdi5iciIsImNlLmdvdi5i''@;'; + put 'put ''ciIsImRmLmdvdi5iciIsImVzLmdvdi5iciIsImdvLmdvdi5iciIsIm1hLmdvdi5iciIsIm1nLmdvdi5iciIsIm1zLmdvdi5iciIsIm10Lmdvdi5iciIsInBhLmdvdi5iciIsInBiLmdvdi5iciIsInBlLmdvdi5iciIsInBpLmdvdi5iciIsInByLmdvdi5iciIsInJqLmdvdi5iciIsInJuLmdv''@;'; + put 'put ''di5iciIsInJvLmdvdi5iciIsInJyLmdvdi5iciIsInJzLmdvdi5iciIsInNjLmdvdi5iciIsInNlLmdvdi5iciIsInNwLmdvdi5iciIsInRvLmdvdi5iciIsImdydS5iciIsImltYi5iciIsImluZC5iciIsImluZi5iciIsImphYi5iciIsImphbXBhLmJyIiwiamRmLmJyIiwiam9pbnZpbGxl''@;'; + put 'put ''LmJyIiwiam9yLmJyIiwianVzLmJyIiwibGVnLmJyIiwibGVsLmJyIiwibG9uZHJpbmEuYnIiLCJtYWNhcGEuYnIiLCJtYWNlaW8uYnIiLCJtYW5hdXMuYnIiLCJtYXJpbmdhLmJyIiwibWF0LmJyIiwibWVkLmJyIiwibWlsLmJyIiwibW9yZW5hLmJyIiwibXAuYnIiLCJtdXMuYnIiLCJuYXRh''@;'; + put 'put ''bC5iciIsIm5ldC5iciIsIm5pdGVyb2kuYnIiLCIqLm5vbS5iciIsIm5vdC5iciIsIm50ci5iciIsIm9kby5iciIsIm9uZy5iciIsIm9yZy5iciIsIm9zYXNjby5iciIsInBhbG1hcy5iciIsInBvYS5iciIsInBwZy5iciIsInByby5iciIsInBzYy5iciIsInBzaS5iciIsInB2aC5iciIsInFz''@;'; + put 'put ''bC5iciIsInJhZGlvLmJyIiwicmVjLmJyIiwicmVjaWZlLmJyIiwicmliZWlyYW8uYnIiLCJyaW8uYnIiLCJyaW9icmFuY28uYnIiLCJyaW9wcmV0by5iciIsInNhbHZhZG9yLmJyIiwic2FtcGEuYnIiLCJzYW50YW1hcmlhLmJyIiwic2FudG9hbmRyZS5iciIsInNhb2Jlcm5hcmRvLmJyIiwi''@;'; + put 'put ''c2FvZ29uY2EuYnIiLCJzamMuYnIiLCJzbGcuYnIiLCJzbHouYnIiLCJzb3JvY2FiYS5iciIsInNydi5iciIsInRheGkuYnIiLCJ0Yy5iciIsInRlby5iciIsInRoZS5iciIsInRtcC5iciIsInRyZC5iciIsInR1ci5iciIsInR2LmJyIiwidWRpLmJyIiwidmV0LmJyIiwidml4LmJyIiwidmxv''@;'; + put 'put ''Zy5iciIsIndpa2kuYnIiLCJ6bGcuYnIiLCJicyIsImNvbS5icyIsIm5ldC5icyIsIm9yZy5icyIsImVkdS5icyIsImdvdi5icyIsImJ0IiwiY29tLmJ0IiwiZWR1LmJ0IiwiZ292LmJ0IiwibmV0LmJ0Iiwib3JnLmJ0IiwiYnYiLCJidyIsImNvLmJ3Iiwib3JnLmJ3IiwiYnkiLCJnb3YuYnki''@;'; + put 'put ''LCJtaWwuYnkiLCJjb20uYnkiLCJvZi5ieSIsImJ6IiwiY29tLmJ6IiwibmV0LmJ6Iiwib3JnLmJ6IiwiZWR1LmJ6IiwiZ292LmJ6IiwiY2EiLCJhYi5jYSIsImJjLmNhIiwibWIuY2EiLCJuYi5jYSIsIm5mLmNhIiwibmwuY2EiLCJucy5jYSIsIm50LmNhIiwibnUuY2EiLCJvbi5jYSIsInBl''@;'; + put 'put ''LmNhIiwicWMuY2EiLCJzay5jYSIsInlrLmNhIiwiZ2MuY2EiLCJjYXQiLCJjYyIsImNkIiwiZ292LmNkIiwiY2YiLCJjZyIsImNoIiwiY2kiLCJvcmcuY2kiLCJvci5jaSIsImNvbS5jaSIsImNvLmNpIiwiZWR1LmNpIiwiZWQuY2kiLCJhYy5jaSIsIm5ldC5jaSIsImdvLmNpIiwiYXNzby5j''@;'; + put 'put ''aSIsImFceGU5cm9wb3J0LmNpIiwiaW50LmNpIiwicHJlc3NlLmNpIiwibWQuY2kiLCJnb3V2LmNpIiwiKi5jayIsIiF3d3cuY2siLCJjbCIsImFwcmVuZGVtYXMuY2wiLCJjby5jbCIsImdvYi5jbCIsImdvdi5jbCIsIm1pbC5jbCIsImNtIiwiY28uY20iLCJjb20uY20iLCJnb3YuY20iLCJu''@;'; + put 'put ''ZXQuY20iLCJjbiIsImFjLmNuIiwiY29tLmNuIiwiZWR1LmNuIiwiZ292LmNuIiwibmV0LmNuIiwib3JnLmNuIiwibWlsLmNuIiwiXHU1MTZjXHU1M2Y4LmNuIiwiXHU3ZjUxXHU3ZWRjLmNuIiwiXHU3ZGIyXHU3ZDYxLmNuIiwiYWguY24iLCJiai5jbiIsImNxLmNuIiwiZmouY24iLCJnZC5j''@;'; + put 'put ''biIsImdzLmNuIiwiZ3ouY24iLCJneC5jbiIsImhhLmNuIiwiaGIuY24iLCJoZS5jbiIsImhpLmNuIiwiaGwuY24iLCJobi5jbiIsImpsLmNuIiwianMuY24iLCJqeC5jbiIsImxuLmNuIiwibm0uY24iLCJueC5jbiIsInFoLmNuIiwic2MuY24iLCJzZC5jbiIsInNoLmNuIiwic24uY24iLCJz''@;'; + put 'put ''eC5jbiIsInRqLmNuIiwieGouY24iLCJ4ei5jbiIsInluLmNuIiwiemouY24iLCJoay5jbiIsIm1vLmNuIiwidHcuY24iLCJjbyIsImFydHMuY28iLCJjb20uY28iLCJlZHUuY28iLCJmaXJtLmNvIiwiZ292LmNvIiwiaW5mby5jbyIsImludC5jbyIsIm1pbC5jbyIsIm5ldC5jbyIsIm5vbS5j''@;'; + put 'put ''byIsIm9yZy5jbyIsInJlYy5jbyIsIndlYi5jbyIsImNvbSIsImNvb3AiLCJjciIsImFjLmNyIiwiY28uY3IiLCJlZC5jciIsImZpLmNyIiwiZ28uY3IiLCJvci5jciIsInNhLmNyIiwiY3UiLCJjb20uY3UiLCJlZHUuY3UiLCJvcmcuY3UiLCJuZXQuY3UiLCJnb3YuY3UiLCJpbmYuY3UiLCJj''@;'; + put 'put ''diIsImN3IiwiY29tLmN3IiwiZWR1LmN3IiwibmV0LmN3Iiwib3JnLmN3IiwiY3giLCJnb3YuY3giLCJjeSIsImFjLmN5IiwiYml6LmN5IiwiY29tLmN5IiwiZWtsb2dlcy5jeSIsImdvdi5jeSIsImx0ZC5jeSIsIm5hbWUuY3kiLCJuZXQuY3kiLCJvcmcuY3kiLCJwYXJsaWFtZW50LmN5Iiwi''@;'; + put 'put ''cHJlc3MuY3kiLCJwcm8uY3kiLCJ0bS5jeSIsImN6IiwiZGUiLCJkaiIsImRrIiwiZG0iLCJjb20uZG0iLCJuZXQuZG0iLCJvcmcuZG0iLCJlZHUuZG0iLCJnb3YuZG0iLCJkbyIsImFydC5kbyIsImNvbS5kbyIsImVkdS5kbyIsImdvYi5kbyIsImdvdi5kbyIsIm1pbC5kbyIsIm5ldC5kbyIs''@;'; + put 'put ''Im9yZy5kbyIsInNsZC5kbyIsIndlYi5kbyIsImR6IiwiY29tLmR6Iiwib3JnLmR6IiwibmV0LmR6IiwiZ292LmR6IiwiZWR1LmR6IiwiYXNzby5keiIsInBvbC5keiIsImFydC5keiIsImVjIiwiY29tLmVjIiwiaW5mby5lYyIsIm5ldC5lYyIsImZpbi5lYyIsImsxMi5lYyIsIm1lZC5lYyIs''@;'; + put 'put ''InByby5lYyIsIm9yZy5lYyIsImVkdS5lYyIsImdvdi5lYyIsImdvYi5lYyIsIm1pbC5lYyIsImVkdSIsImVlIiwiZWR1LmVlIiwiZ292LmVlIiwicmlpay5lZSIsImxpYi5lZSIsIm1lZC5lZSIsImNvbS5lZSIsInByaS5lZSIsImFpcC5lZSIsIm9yZy5lZSIsImZpZS5lZSIsImVnIiwiY29t''@;'; + put 'put ''LmVnIiwiZWR1LmVnIiwiZXVuLmVnIiwiZ292LmVnIiwibWlsLmVnIiwibmFtZS5lZyIsIm5ldC5lZyIsIm9yZy5lZyIsInNjaS5lZyIsIiouZXIiLCJlcyIsImNvbS5lcyIsIm5vbS5lcyIsIm9yZy5lcyIsImdvYi5lcyIsImVkdS5lcyIsImV0IiwiY29tLmV0IiwiZ292LmV0Iiwib3JnLmV0''@;'; + put 'put ''IiwiZWR1LmV0IiwiYml6LmV0IiwibmFtZS5ldCIsImluZm8uZXQiLCJuZXQuZXQiLCJldSIsImZpIiwiYWxhbmQuZmkiLCJmaiIsImFjLmZqIiwiYml6LmZqIiwiY29tLmZqIiwiZ292LmZqIiwiaW5mby5maiIsIm1pbC5maiIsIm5hbWUuZmoiLCJuZXQuZmoiLCJvcmcuZmoiLCJwcm8uZmoi''@;'; + put 'put ''LCIqLmZrIiwiZm0iLCJmbyIsImZyIiwiYXNzby5mciIsImNvbS5mciIsImdvdXYuZnIiLCJub20uZnIiLCJwcmQuZnIiLCJ0bS5mciIsImFlcm9wb3J0LmZyIiwiYXZvY2F0LmZyIiwiYXZvdWVzLmZyIiwiY2NpLmZyIiwiY2hhbWJhZ3JpLmZyIiwiY2hpcnVyZ2llbnMtZGVudGlzdGVzLmZy''@;'; + put 'put ''IiwiZXhwZXJ0cy1jb21wdGFibGVzLmZyIiwiZ2VvbWV0cmUtZXhwZXJ0LmZyIiwiZ3JldGEuZnIiLCJodWlzc2llci1qdXN0aWNlLmZyIiwibWVkZWNpbi5mciIsIm5vdGFpcmVzLmZyIiwicGhhcm1hY2llbi5mciIsInBvcnQuZnIiLCJ2ZXRlcmluYWlyZS5mciIsImdhIiwiZ2IiLCJnZCIs''@;'; + put 'put ''ImdlIiwiY29tLmdlIiwiZWR1LmdlIiwiZ292LmdlIiwib3JnLmdlIiwibWlsLmdlIiwibmV0LmdlIiwicHZ0LmdlIiwiZ2YiLCJnZyIsImNvLmdnIiwibmV0LmdnIiwib3JnLmdnIiwiZ2giLCJjb20uZ2giLCJlZHUuZ2giLCJnb3YuZ2giLCJvcmcuZ2giLCJtaWwuZ2giLCJnaSIsImNvbS5n''@;'; + put 'put ''aSIsImx0ZC5naSIsImdvdi5naSIsIm1vZC5naSIsImVkdS5naSIsIm9yZy5naSIsImdsIiwiY28uZ2wiLCJjb20uZ2wiLCJlZHUuZ2wiLCJuZXQuZ2wiLCJvcmcuZ2wiLCJnbSIsImduIiwiYWMuZ24iLCJjb20uZ24iLCJlZHUuZ24iLCJnb3YuZ24iLCJvcmcuZ24iLCJuZXQuZ24iLCJnb3Yi''@;'; + put 'put ''LCJncCIsImNvbS5ncCIsIm5ldC5ncCIsIm1vYmkuZ3AiLCJlZHUuZ3AiLCJvcmcuZ3AiLCJhc3NvLmdwIiwiZ3EiLCJnciIsImNvbS5nciIsImVkdS5nciIsIm5ldC5nciIsIm9yZy5nciIsImdvdi5nciIsImdzIiwiZ3QiLCJjb20uZ3QiLCJlZHUuZ3QiLCJnb2IuZ3QiLCJpbmQuZ3QiLCJt''@;'; + put 'put ''aWwuZ3QiLCJuZXQuZ3QiLCJvcmcuZ3QiLCJndSIsImNvbS5ndSIsImVkdS5ndSIsImdvdi5ndSIsImd1YW0uZ3UiLCJpbmZvLmd1IiwibmV0Lmd1Iiwib3JnLmd1Iiwid2ViLmd1IiwiZ3ciLCJneSIsImNvLmd5IiwiY29tLmd5IiwiZWR1Lmd5IiwiZ292Lmd5IiwibmV0Lmd5Iiwib3JnLmd5''@;'; + put 'put ''IiwiaGsiLCJjb20uaGsiLCJlZHUuaGsiLCJnb3YuaGsiLCJpZHYuaGsiLCJuZXQuaGsiLCJvcmcuaGsiLCJcdTUxNmNcdTUzZjguaGsiLCJcdTY1NTlcdTgwYjIuaGsiLCJcdTY1NGVcdTgwYjIuaGsiLCJcdTY1M2ZcdTVlOWMuaGsiLCJcdTUwMGJcdTRlYmEuaGsiLCJcdTRlMmFcdTRlYmEu''@;'; + put 'put ''aGsiLCJcdTdiODdcdTRlYmEuaGsiLCJcdTdkYjJcdTdlZGMuaGsiLCJcdTdmNTFcdTdlZGMuaGsiLCJcdTdlYzRcdTdlNTQuaGsiLCJcdTdkYjJcdTdkNjEuaGsiLCJcdTdmNTFcdTdkNjEuaGsiLCJcdTdlYzRcdTdlYzcuaGsiLCJcdTdkNDRcdTdlNTQuaGsiLCJcdTdkNDRcdTdlYzcuaGsi''@;'; + put 'put ''LCJobSIsImhuIiwiY29tLmhuIiwiZWR1LmhuIiwib3JnLmhuIiwibmV0LmhuIiwibWlsLmhuIiwiZ29iLmhuIiwiaHIiLCJpei5ociIsImZyb20uaHIiLCJuYW1lLmhyIiwiY29tLmhyIiwiaHQiLCJjb20uaHQiLCJzaG9wLmh0IiwiZmlybS5odCIsImluZm8uaHQiLCJhZHVsdC5odCIsIm5l''@;'; + put 'put ''dC5odCIsInByby5odCIsIm9yZy5odCIsIm1lZC5odCIsImFydC5odCIsImNvb3AuaHQiLCJwb2wuaHQiLCJhc3NvLmh0IiwiZWR1Lmh0IiwicmVsLmh0IiwiZ291di5odCIsInBlcnNvLmh0IiwiaHUiLCJjby5odSIsImluZm8uaHUiLCJvcmcuaHUiLCJwcml2Lmh1Iiwic3BvcnQuaHUiLCJ0''@;'; + put 'put ''bS5odSIsIjIwMDAuaHUiLCJhZ3Jhci5odSIsImJvbHQuaHUiLCJjYXNpbm8uaHUiLCJjaXR5Lmh1IiwiZXJvdGljYS5odSIsImVyb3Rpa2EuaHUiLCJmaWxtLmh1IiwiZm9ydW0uaHUiLCJnYW1lcy5odSIsImhvdGVsLmh1IiwiaW5nYXRsYW4uaHUiLCJqb2dhc3ouaHUiLCJrb255dmVsby5o''@;'; + put 'put ''dSIsImxha2FzLmh1IiwibWVkaWEuaHUiLCJuZXdzLmh1IiwicmVrbGFtLmh1Iiwic2V4Lmh1Iiwic2hvcC5odSIsInN1bGkuaHUiLCJzemV4Lmh1IiwidG96c2RlLmh1IiwidXRhemFzLmh1IiwidmlkZW8uaHUiLCJpZCIsImFjLmlkIiwiYml6LmlkIiwiY28uaWQiLCJkZXNhLmlkIiwiZ28u''@;'; + put 'put ''aWQiLCJtaWwuaWQiLCJteS5pZCIsIm5ldC5pZCIsIm9yLmlkIiwicG9ucGVzLmlkIiwic2NoLmlkIiwid2ViLmlkIiwiaWUiLCJnb3YuaWUiLCJpbCIsImFjLmlsIiwiY28uaWwiLCJnb3YuaWwiLCJpZGYuaWwiLCJrMTIuaWwiLCJtdW5pLmlsIiwibmV0LmlsIiwib3JnLmlsIiwiaW0iLCJh''@;'; + put 'put ''Yy5pbSIsImNvLmltIiwiY29tLmltIiwibHRkLmNvLmltIiwibmV0LmltIiwib3JnLmltIiwicGxjLmNvLmltIiwidHQuaW0iLCJ0di5pbSIsImluIiwiY28uaW4iLCJmaXJtLmluIiwibmV0LmluIiwib3JnLmluIiwiZ2VuLmluIiwiaW5kLmluIiwibmljLmluIiwiYWMuaW4iLCJlZHUuaW4i''@;'; + put 'put ''LCJyZXMuaW4iLCJnb3YuaW4iLCJtaWwuaW4iLCJpbmZvIiwiaW50IiwiZXUuaW50IiwiaW8iLCJjb20uaW8iLCJpcSIsImdvdi5pcSIsImVkdS5pcSIsIm1pbC5pcSIsImNvbS5pcSIsIm9yZy5pcSIsIm5ldC5pcSIsImlyIiwiYWMuaXIiLCJjby5pciIsImdvdi5pciIsImlkLmlyIiwibmV0''@;'; + put 'put ''LmlyIiwib3JnLmlyIiwic2NoLmlyIiwiXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2LmlyIiwiXHUwNjI3XHUwNjRhXHUwNjMxXHUwNjI3XHUwNjQ2LmlyIiwiaXMiLCJuZXQuaXMiLCJjb20uaXMiLCJlZHUuaXMiLCJnb3YuaXMiLCJvcmcuaXMiLCJpbnQuaXMiLCJpdCIsImdvdi5p''@;'; + put 'put ''dCIsImVkdS5pdCIsImFici5pdCIsImFicnV6em8uaXQiLCJhb3N0YS12YWxsZXkuaXQiLCJhb3N0YXZhbGxleS5pdCIsImJhcy5pdCIsImJhc2lsaWNhdGEuaXQiLCJjYWwuaXQiLCJjYWxhYnJpYS5pdCIsImNhbS5pdCIsImNhbXBhbmlhLml0IiwiZW1pbGlhLXJvbWFnbmEuaXQiLCJlbWls''@;'; + put 'put ''aWFyb21hZ25hLml0IiwiZW1yLml0IiwiZnJpdWxpLXYtZ2l1bGlhLml0IiwiZnJpdWxpLXZlLWdpdWxpYS5pdCIsImZyaXVsaS12ZWdpdWxpYS5pdCIsImZyaXVsaS12ZW5lemlhLWdpdWxpYS5pdCIsImZyaXVsaS12ZW5lemlhZ2l1bGlhLml0IiwiZnJpdWxpLXZnaXVsaWEuaXQiLCJmcml1''@;'; + put 'put ''bGl2LWdpdWxpYS5pdCIsImZyaXVsaXZlLWdpdWxpYS5pdCIsImZyaXVsaXZlZ2l1bGlhLml0IiwiZnJpdWxpdmVuZXppYS1naXVsaWEuaXQiLCJmcml1bGl2ZW5lemlhZ2l1bGlhLml0IiwiZnJpdWxpdmdpdWxpYS5pdCIsImZ2Zy5pdCIsImxhei5pdCIsImxhemlvLml0IiwibGlnLml0Iiwi''@;'; + put 'put ''bGlndXJpYS5pdCIsImxvbS5pdCIsImxvbWJhcmRpYS5pdCIsImxvbWJhcmR5Lml0IiwibHVjYW5pYS5pdCIsIm1hci5pdCIsIm1hcmNoZS5pdCIsIm1vbC5pdCIsIm1vbGlzZS5pdCIsInBpZWRtb250Lml0IiwicGllbW9udGUuaXQiLCJwbW4uaXQiLCJwdWcuaXQiLCJwdWdsaWEuaXQiLCJz''@;'; + put 'put ''YXIuaXQiLCJzYXJkZWduYS5pdCIsInNhcmRpbmlhLml0Iiwic2ljLml0Iiwic2ljaWxpYS5pdCIsInNpY2lseS5pdCIsInRhYS5pdCIsInRvcy5pdCIsInRvc2NhbmEuaXQiLCJ0cmVudGluLXN1ZC10aXJvbC5pdCIsInRyZW50aW4tc1x4ZmNkLXRpcm9sLml0IiwidHJlbnRpbi1zdWR0aXJv''@;'; + put 'put ''bC5pdCIsInRyZW50aW4tc1x4ZmNkdGlyb2wuaXQiLCJ0cmVudGluLXN1ZWQtdGlyb2wuaXQiLCJ0cmVudGluLXN1ZWR0aXJvbC5pdCIsInRyZW50aW5vLWEtYWRpZ2UuaXQiLCJ0cmVudGluby1hYWRpZ2UuaXQiLCJ0cmVudGluby1hbHRvLWFkaWdlLml0IiwidHJlbnRpbm8tYWx0b2FkaWdl''@;'; + put 'put ''Lml0IiwidHJlbnRpbm8tcy10aXJvbC5pdCIsInRyZW50aW5vLXN0aXJvbC5pdCIsInRyZW50aW5vLXN1ZC10aXJvbC5pdCIsInRyZW50aW5vLXNceGZjZC10aXJvbC5pdCIsInRyZW50aW5vLXN1ZHRpcm9sLml0IiwidHJlbnRpbm8tc1x4ZmNkdGlyb2wuaXQiLCJ0cmVudGluby1zdWVkLXRp''@;'; + put 'put ''cm9sLml0IiwidHJlbnRpbm8tc3VlZHRpcm9sLml0IiwidHJlbnRpbm8uaXQiLCJ0cmVudGlub2EtYWRpZ2UuaXQiLCJ0cmVudGlub2FhZGlnZS5pdCIsInRyZW50aW5vYWx0by1hZGlnZS5pdCIsInRyZW50aW5vYWx0b2FkaWdlLml0IiwidHJlbnRpbm9zLXRpcm9sLml0IiwidHJlbnRpbm9z''@;'; + put 'put ''dGlyb2wuaXQiLCJ0cmVudGlub3N1ZC10aXJvbC5pdCIsInRyZW50aW5vc1x4ZmNkLXRpcm9sLml0IiwidHJlbnRpbm9zdWR0aXJvbC5pdCIsInRyZW50aW5vc1x4ZmNkdGlyb2wuaXQiLCJ0cmVudGlub3N1ZWQtdGlyb2wuaXQiLCJ0cmVudGlub3N1ZWR0aXJvbC5pdCIsInRyZW50aW5zdWQt''@;'; + put 'put ''dGlyb2wuaXQiLCJ0cmVudGluc1x4ZmNkLXRpcm9sLml0IiwidHJlbnRpbnN1ZHRpcm9sLml0IiwidHJlbnRpbnNceGZjZHRpcm9sLml0IiwidHJlbnRpbnN1ZWQtdGlyb2wuaXQiLCJ0cmVudGluc3VlZHRpcm9sLml0IiwidHVzY2FueS5pdCIsInVtYi5pdCIsInVtYnJpYS5pdCIsInZhbC1k''@;'; + put 'put ''LWFvc3RhLml0IiwidmFsLWRhb3N0YS5pdCIsInZhbGQtYW9zdGEuaXQiLCJ2YWxkYW9zdGEuaXQiLCJ2YWxsZS1hb3N0YS5pdCIsInZhbGxlLWQtYW9zdGEuaXQiLCJ2YWxsZS1kYW9zdGEuaXQiLCJ2YWxsZWFvc3RhLml0IiwidmFsbGVkLWFvc3RhLml0IiwidmFsbGVkYW9zdGEuaXQiLCJ2''@;'; + put 'put ''YWxsZWUtYW9zdGUuaXQiLCJ2YWxsXHhlOWUtYW9zdGUuaXQiLCJ2YWxsZWUtZC1hb3N0ZS5pdCIsInZhbGxceGU5ZS1kLWFvc3RlLml0IiwidmFsbGVlYW9zdGUuaXQiLCJ2YWxsXHhlOWVhb3N0ZS5pdCIsInZhbGxlZWRhb3N0ZS5pdCIsInZhbGxceGU5ZWRhb3N0ZS5pdCIsInZhby5pdCIs''@;'; + put 'put ''InZkYS5pdCIsInZlbi5pdCIsInZlbmV0by5pdCIsImFnLml0IiwiYWdyaWdlbnRvLml0IiwiYWwuaXQiLCJhbGVzc2FuZHJpYS5pdCIsImFsdG8tYWRpZ2UuaXQiLCJhbHRvYWRpZ2UuaXQiLCJhbi5pdCIsImFuY29uYS5pdCIsImFuZHJpYS1iYXJsZXR0YS10cmFuaS5pdCIsImFuZHJpYS10''@;'; + put 'put ''cmFuaS1iYXJsZXR0YS5pdCIsImFuZHJpYWJhcmxldHRhdHJhbmkuaXQiLCJhbmRyaWF0cmFuaWJhcmxldHRhLml0IiwiYW8uaXQiLCJhb3N0YS5pdCIsImFvc3RlLml0IiwiYXAuaXQiLCJhcS5pdCIsImFxdWlsYS5pdCIsImFyLml0IiwiYXJlenpvLml0IiwiYXNjb2xpLXBpY2Vuby5pdCIs''@;'; + put 'put ''ImFzY29saXBpY2Vuby5pdCIsImFzdGkuaXQiLCJhdC5pdCIsImF2Lml0IiwiYXZlbGxpbm8uaXQiLCJiYS5pdCIsImJhbHNhbi1zdWR0aXJvbC5pdCIsImJhbHNhbi1zXHhmY2R0aXJvbC5pdCIsImJhbHNhbi1zdWVkdGlyb2wuaXQiLCJiYWxzYW4uaXQiLCJiYXJpLml0IiwiYmFybGV0dGEt''@;'; + put 'put ''dHJhbmktYW5kcmlhLml0IiwiYmFybGV0dGF0cmFuaWFuZHJpYS5pdCIsImJlbGx1bm8uaXQiLCJiZW5ldmVudG8uaXQiLCJiZXJnYW1vLml0IiwiYmcuaXQiLCJiaS5pdCIsImJpZWxsYS5pdCIsImJsLml0IiwiYm4uaXQiLCJiby5pdCIsImJvbG9nbmEuaXQiLCJib2x6YW5vLWFsdG9hZGln''@;'; + put 'put ''ZS5pdCIsImJvbHphbm8uaXQiLCJib3plbi1zdWR0aXJvbC5pdCIsImJvemVuLXNceGZjZHRpcm9sLml0IiwiYm96ZW4tc3VlZHRpcm9sLml0IiwiYm96ZW4uaXQiLCJici5pdCIsImJyZXNjaWEuaXQiLCJicmluZGlzaS5pdCIsImJzLml0IiwiYnQuaXQiLCJidWxzYW4tc3VkdGlyb2wuaXQi''@;'; + put 'put ''LCJidWxzYW4tc1x4ZmNkdGlyb2wuaXQiLCJidWxzYW4tc3VlZHRpcm9sLml0IiwiYnVsc2FuLml0IiwiYnouaXQiLCJjYS5pdCIsImNhZ2xpYXJpLml0IiwiY2FsdGFuaXNzZXR0YS5pdCIsImNhbXBpZGFuby1tZWRpby5pdCIsImNhbXBpZGFub21lZGlvLml0IiwiY2FtcG9iYXNzby5pdCIs''@;'; + put 'put ''ImNhcmJvbmlhLWlnbGVzaWFzLml0IiwiY2FyYm9uaWFpZ2xlc2lhcy5pdCIsImNhcnJhcmEtbWFzc2EuaXQiLCJjYXJyYXJhbWFzc2EuaXQiLCJjYXNlcnRhLml0IiwiY2F0YW5pYS5pdCIsImNhdGFuemFyby5pdCIsImNiLml0IiwiY2UuaXQiLCJjZXNlbmEtZm9ybGkuaXQiLCJjZXNlbmEt''@;'; + put 'put ''Zm9ybFx4ZWMuaXQiLCJjZXNlbmFmb3JsaS5pdCIsImNlc2VuYWZvcmxceGVjLml0IiwiY2guaXQiLCJjaGlldGkuaXQiLCJjaS5pdCIsImNsLml0IiwiY24uaXQiLCJjby5pdCIsImNvbW8uaXQiLCJjb3NlbnphLml0IiwiY3IuaXQiLCJjcmVtb25hLml0IiwiY3JvdG9uZS5pdCIsImNzLml0''@;'; + put 'put ''IiwiY3QuaXQiLCJjdW5lby5pdCIsImN6Lml0IiwiZGVsbC1vZ2xpYXN0cmEuaXQiLCJkZWxsb2dsaWFzdHJhLml0IiwiZW4uaXQiLCJlbm5hLml0IiwiZmMuaXQiLCJmZS5pdCIsImZlcm1vLml0IiwiZmVycmFyYS5pdCIsImZnLml0IiwiZmkuaXQiLCJmaXJlbnplLml0IiwiZmxvcmVuY2Uu''@;'; + put 'put ''aXQiLCJmbS5pdCIsImZvZ2dpYS5pdCIsImZvcmxpLWNlc2VuYS5pdCIsImZvcmxceGVjLWNlc2VuYS5pdCIsImZvcmxpY2VzZW5hLml0IiwiZm9ybFx4ZWNjZXNlbmEuaXQiLCJmci5pdCIsImZyb3Npbm9uZS5pdCIsImdlLml0IiwiZ2Vub2EuaXQiLCJnZW5vdmEuaXQiLCJnby5pdCIsImdv''@;'; + put 'put ''cml6aWEuaXQiLCJnci5pdCIsImdyb3NzZXRvLml0IiwiaWdsZXNpYXMtY2FyYm9uaWEuaXQiLCJpZ2xlc2lhc2NhcmJvbmlhLml0IiwiaW0uaXQiLCJpbXBlcmlhLml0IiwiaXMuaXQiLCJpc2VybmlhLml0Iiwia3IuaXQiLCJsYS1zcGV6aWEuaXQiLCJsYXF1aWxhLml0IiwibGFzcGV6aWEu''@;'; + put 'put ''aXQiLCJsYXRpbmEuaXQiLCJsYy5pdCIsImxlLml0IiwibGVjY2UuaXQiLCJsZWNjby5pdCIsImxpLml0IiwibGl2b3Juby5pdCIsImxvLml0IiwibG9kaS5pdCIsImx0Lml0IiwibHUuaXQiLCJsdWNjYS5pdCIsIm1hY2VyYXRhLml0IiwibWFudG92YS5pdCIsIm1hc3NhLWNhcnJhcmEuaXQi''@;'; + put 'put ''LCJtYXNzYWNhcnJhcmEuaXQiLCJtYXRlcmEuaXQiLCJtYi5pdCIsIm1jLml0IiwibWUuaXQiLCJtZWRpby1jYW1waWRhbm8uaXQiLCJtZWRpb2NhbXBpZGFuby5pdCIsIm1lc3NpbmEuaXQiLCJtaS5pdCIsIm1pbGFuLml0IiwibWlsYW5vLml0IiwibW4uaXQiLCJtby5pdCIsIm1vZGVuYS5p''@;'; + put 'put ''dCIsIm1vbnphLWJyaWFuemEuaXQiLCJtb256YS1lLWRlbGxhLWJyaWFuemEuaXQiLCJtb256YS5pdCIsIm1vbnphYnJpYW56YS5pdCIsIm1vbnphZWJyaWFuemEuaXQiLCJtb256YWVkZWxsYWJyaWFuemEuaXQiLCJtcy5pdCIsIm10Lml0IiwibmEuaXQiLCJuYXBsZXMuaXQiLCJuYXBvbGku''@;'; + put 'put ''aXQiLCJuby5pdCIsIm5vdmFyYS5pdCIsIm51Lml0IiwibnVvcm8uaXQiLCJvZy5pdCIsIm9nbGlhc3RyYS5pdCIsIm9sYmlhLXRlbXBpby5pdCIsIm9sYmlhdGVtcGlvLml0Iiwib3IuaXQiLCJvcmlzdGFuby5pdCIsIm90Lml0IiwicGEuaXQiLCJwYWRvdmEuaXQiLCJwYWR1YS5pdCIsInBh''@;'; + put 'put ''bGVybW8uaXQiLCJwYXJtYS5pdCIsInBhdmlhLml0IiwicGMuaXQiLCJwZC5pdCIsInBlLml0IiwicGVydWdpYS5pdCIsInBlc2Fyby11cmJpbm8uaXQiLCJwZXNhcm91cmJpbm8uaXQiLCJwZXNjYXJhLml0IiwicGcuaXQiLCJwaS5pdCIsInBpYWNlbnphLml0IiwicGlzYS5pdCIsInBpc3Rv''@;'; + put 'put ''aWEuaXQiLCJwbi5pdCIsInBvLml0IiwicG9yZGVub25lLml0IiwicG90ZW56YS5pdCIsInByLml0IiwicHJhdG8uaXQiLCJwdC5pdCIsInB1Lml0IiwicHYuaXQiLCJwei5pdCIsInJhLml0IiwicmFndXNhLml0IiwicmF2ZW5uYS5pdCIsInJjLml0IiwicmUuaXQiLCJyZWdnaW8tY2FsYWJy''@;'; + put 'put ''aWEuaXQiLCJyZWdnaW8tZW1pbGlhLml0IiwicmVnZ2lvY2FsYWJyaWEuaXQiLCJyZWdnaW9lbWlsaWEuaXQiLCJyZy5pdCIsInJpLml0IiwicmlldGkuaXQiLCJyaW1pbmkuaXQiLCJybS5pdCIsInJuLml0Iiwicm8uaXQiLCJyb21hLml0Iiwicm9tZS5pdCIsInJvdmlnby5pdCIsInNhLml0''@;'; + put 'put ''Iiwic2FsZXJuby5pdCIsInNhc3NhcmkuaXQiLCJzYXZvbmEuaXQiLCJzaS5pdCIsInNpZW5hLml0Iiwic2lyYWN1c2EuaXQiLCJzby5pdCIsInNvbmRyaW8uaXQiLCJzcC5pdCIsInNyLml0Iiwic3MuaXQiLCJzdWVkdGlyb2wuaXQiLCJzXHhmY2R0aXJvbC5pdCIsInN2Lml0IiwidGEuaXQi''@;'; + put 'put ''LCJ0YXJhbnRvLml0IiwidGUuaXQiLCJ0ZW1waW8tb2xiaWEuaXQiLCJ0ZW1waW9vbGJpYS5pdCIsInRlcmFtby5pdCIsInRlcm5pLml0IiwidG4uaXQiLCJ0by5pdCIsInRvcmluby5pdCIsInRwLml0IiwidHIuaXQiLCJ0cmFuaS1hbmRyaWEtYmFybGV0dGEuaXQiLCJ0cmFuaS1iYXJsZXR0''@;'; + put 'put ''YS1hbmRyaWEuaXQiLCJ0cmFuaWFuZHJpYWJhcmxldHRhLml0IiwidHJhbmliYXJsZXR0YWFuZHJpYS5pdCIsInRyYXBhbmkuaXQiLCJ0cmVudG8uaXQiLCJ0cmV2aXNvLml0IiwidHJpZXN0ZS5pdCIsInRzLml0IiwidHVyaW4uaXQiLCJ0di5pdCIsInVkLml0IiwidWRpbmUuaXQiLCJ1cmJp''@;'; + put 'put ''bm8tcGVzYXJvLml0IiwidXJiaW5vcGVzYXJvLml0IiwidmEuaXQiLCJ2YXJlc2UuaXQiLCJ2Yi5pdCIsInZjLml0IiwidmUuaXQiLCJ2ZW5lemlhLml0IiwidmVuaWNlLml0IiwidmVyYmFuaWEuaXQiLCJ2ZXJjZWxsaS5pdCIsInZlcm9uYS5pdCIsInZpLml0Iiwidmliby12YWxlbnRpYS5p''@;'; + put 'put ''dCIsInZpYm92YWxlbnRpYS5pdCIsInZpY2VuemEuaXQiLCJ2aXRlcmJvLml0IiwidnIuaXQiLCJ2cy5pdCIsInZ0Lml0IiwidnYuaXQiLCJqZSIsImNvLmplIiwibmV0LmplIiwib3JnLmplIiwiKi5qbSIsImpvIiwiY29tLmpvIiwib3JnLmpvIiwibmV0LmpvIiwiZWR1LmpvIiwic2NoLmpv''@;'; + put 'put ''IiwiZ292LmpvIiwibWlsLmpvIiwibmFtZS5qbyIsImpvYnMiLCJqcCIsImFjLmpwIiwiYWQuanAiLCJjby5qcCIsImVkLmpwIiwiZ28uanAiLCJnci5qcCIsImxnLmpwIiwibmUuanAiLCJvci5qcCIsImFpY2hpLmpwIiwiYWtpdGEuanAiLCJhb21vcmkuanAiLCJjaGliYS5qcCIsImVoaW1l''@;'; + put 'put ''LmpwIiwiZnVrdWkuanAiLCJmdWt1b2thLmpwIiwiZnVrdXNoaW1hLmpwIiwiZ2lmdS5qcCIsImd1bm1hLmpwIiwiaGlyb3NoaW1hLmpwIiwiaG9ra2FpZG8uanAiLCJoeW9nby5qcCIsImliYXJha2kuanAiLCJpc2hpa2F3YS5qcCIsIml3YXRlLmpwIiwia2FnYXdhLmpwIiwia2Fnb3NoaW1h''@;'; + put 'put ''LmpwIiwia2FuYWdhd2EuanAiLCJrb2NoaS5qcCIsImt1bWFtb3RvLmpwIiwia3lvdG8uanAiLCJtaWUuanAiLCJtaXlhZ2kuanAiLCJtaXlhemFraS5qcCIsIm5hZ2Fuby5qcCIsIm5hZ2FzYWtpLmpwIiwibmFyYS5qcCIsIm5paWdhdGEuanAiLCJvaXRhLmpwIiwib2theWFtYS5qcCIsIm9r''@;'; + put 'put ''aW5hd2EuanAiLCJvc2FrYS5qcCIsInNhZ2EuanAiLCJzYWl0YW1hLmpwIiwic2hpZ2EuanAiLCJzaGltYW5lLmpwIiwic2hpenVva2EuanAiLCJ0b2NoaWdpLmpwIiwidG9rdXNoaW1hLmpwIiwidG9reW8uanAiLCJ0b3R0b3JpLmpwIiwidG95YW1hLmpwIiwid2FrYXlhbWEuanAiLCJ5YW1h''@;'; + put 'put ''Z2F0YS5qcCIsInlhbWFndWNoaS5qcCIsInlhbWFuYXNoaS5qcCIsIlx1NjgwM1x1NjcyOC5qcCIsIlx1NjExYlx1NzdlNS5qcCIsIlx1NjExYlx1NWE5Yi5qcCIsIlx1NTE3NVx1NWVhYi5qcCIsIlx1NzE4YVx1NjcyYy5qcCIsIlx1ODMyOFx1NTdjZS5qcCIsIlx1NTMxN1x1NmQ3N1x1OTA1''@;'; + put 'put ''My5qcCIsIlx1NTM0M1x1ODQ0OS5qcCIsIlx1NTQ4Y1x1NmI0Y1x1NWM3MS5qcCIsIlx1OTU3N1x1NWQwZS5qcCIsIlx1OTU3N1x1OTFjZS5qcCIsIlx1NjViMFx1NmY1Zi5qcCIsIlx1OTc1Mlx1NjhlZS5qcCIsIlx1OTc1OVx1NWNhMS5qcCIsIlx1Njc3MVx1NGVhYy5qcCIsIlx1NzdmM1x1''@;'; + put 'put ''NWRkZC5qcCIsIlx1NTdmY1x1NzM4OS5qcCIsIlx1NGUwOVx1OTFjZC5qcCIsIlx1NGVhY1x1OTBmZC5qcCIsIlx1NGY1MFx1OGNjMC5qcCIsIlx1NTkyN1x1NTIwNi5qcCIsIlx1NTkyN1x1OTYyYS5qcCIsIlx1NTk0OFx1ODI2Zi5qcCIsIlx1NWJhZVx1NTdjZS5qcCIsIlx1NWJhZVx1NWQw''@;'; + put 'put ''ZS5qcCIsIlx1NWJjY1x1NWM3MS5qcCIsIlx1NWM3MVx1NTNlMy5qcCIsIlx1NWM3MVx1NWY2Mi5qcCIsIlx1NWM3MVx1NjhhOC5qcCIsIlx1NWNhOVx1NjI0Yi5qcCIsIlx1NWM5MFx1OTYxYy5qcCIsIlx1NWNhMVx1NWM3MS5qcCIsIlx1NWNmNlx1NjgzOS5qcCIsIlx1NWU4M1x1NWNmNi5q''@;'; + put 'put ''cCIsIlx1NWZiM1x1NWNmNi5qcCIsIlx1NmM5Nlx1N2UwNC5qcCIsIlx1NmVjYlx1OGNjMC5qcCIsIlx1Nzk1ZVx1NTk0OFx1NWRkZC5qcCIsIlx1Nzk4Zlx1NGU5NS5qcCIsIlx1Nzk4Zlx1NWNhMS5qcCIsIlx1Nzk4Zlx1NWNmNi5qcCIsIlx1NzljYlx1NzUzMC5qcCIsIlx1N2ZhNFx1OTlh''@;'; + put 'put ''Yy5qcCIsIlx1OTk5OVx1NWRkZC5qcCIsIlx1OWFkOFx1NzdlNS5qcCIsIlx1OWNlNVx1NTNkNi5qcCIsIlx1OWU3Zlx1NTE1MFx1NWNmNi5qcCIsIioua2F3YXNha2kuanAiLCIqLmtpdGFreXVzaHUuanAiLCIqLmtvYmUuanAiLCIqLm5hZ295YS5qcCIsIiouc2FwcG9yby5qcCIsIiouc2Vu''@;'; + put 'put ''ZGFpLmpwIiwiKi55b2tvaGFtYS5qcCIsIiFjaXR5Lmthd2FzYWtpLmpwIiwiIWNpdHkua2l0YWt5dXNodS5qcCIsIiFjaXR5LmtvYmUuanAiLCIhY2l0eS5uYWdveWEuanAiLCIhY2l0eS5zYXBwb3JvLmpwIiwiIWNpdHkuc2VuZGFpLmpwIiwiIWNpdHkueW9rb2hhbWEuanAiLCJhaXNhaS5h''@;'; + put 'put ''aWNoaS5qcCIsImFtYS5haWNoaS5qcCIsImFuam8uYWljaGkuanAiLCJhc3VrZS5haWNoaS5qcCIsImNoaXJ5dS5haWNoaS5qcCIsImNoaXRhLmFpY2hpLmpwIiwiZnVzby5haWNoaS5qcCIsImdhbWFnb3JpLmFpY2hpLmpwIiwiaGFuZGEuYWljaGkuanAiLCJoYXp1LmFpY2hpLmpwIiwiaGVr''@;'; + put 'put ''aW5hbi5haWNoaS5qcCIsImhpZ2FzaGl1cmEuYWljaGkuanAiLCJpY2hpbm9taXlhLmFpY2hpLmpwIiwiaW5hemF3YS5haWNoaS5qcCIsImludXlhbWEuYWljaGkuanAiLCJpc3NoaWtpLmFpY2hpLmpwIiwiaXdha3VyYS5haWNoaS5qcCIsImthbmllLmFpY2hpLmpwIiwia2FyaXlhLmFpY2hp''@;'; + put 'put ''LmpwIiwia2FzdWdhaS5haWNoaS5qcCIsImtpcmEuYWljaGkuanAiLCJraXlvc3UuYWljaGkuanAiLCJrb21ha2kuYWljaGkuanAiLCJrb25hbi5haWNoaS5qcCIsImtvdGEuYWljaGkuanAiLCJtaWhhbWEuYWljaGkuanAiLCJtaXlvc2hpLmFpY2hpLmpwIiwibmlzaGlvLmFpY2hpLmpwIiwi''@;'; + put 'put ''bmlzc2hpbi5haWNoaS5qcCIsIm9idS5haWNoaS5qcCIsIm9ndWNoaS5haWNoaS5qcCIsIm9oYXJ1LmFpY2hpLmpwIiwib2themFraS5haWNoaS5qcCIsIm93YXJpYXNhaGkuYWljaGkuanAiLCJzZXRvLmFpY2hpLmpwIiwic2hpa2F0c3UuYWljaGkuanAiLCJzaGluc2hpcm8uYWljaGkuanAi''@;'; + put 'put ''LCJzaGl0YXJhLmFpY2hpLmpwIiwidGFoYXJhLmFpY2hpLmpwIiwidGFrYWhhbWEuYWljaGkuanAiLCJ0b2Jpc2hpbWEuYWljaGkuanAiLCJ0b2VpLmFpY2hpLmpwIiwidG9nby5haWNoaS5qcCIsInRva2FpLmFpY2hpLmpwIiwidG9rb25hbWUuYWljaGkuanAiLCJ0b3lvYWtlLmFpY2hpLmpw''@;'; + put 'put ''IiwidG95b2hhc2hpLmFpY2hpLmpwIiwidG95b2thd2EuYWljaGkuanAiLCJ0b3lvbmUuYWljaGkuanAiLCJ0b3lvdGEuYWljaGkuanAiLCJ0c3VzaGltYS5haWNoaS5qcCIsInlhdG9taS5haWNoaS5qcCIsImFraXRhLmFraXRhLmpwIiwiZGFpc2VuLmFraXRhLmpwIiwiZnVqaXNhdG8uYWtp''@;'; + put 'put ''dGEuanAiLCJnb2pvbWUuYWtpdGEuanAiLCJoYWNoaXJvZ2F0YS5ha2l0YS5qcCIsImhhcHBvdS5ha2l0YS5qcCIsImhpZ2FzaGluYXJ1c2UuYWtpdGEuanAiLCJob25qby5ha2l0YS5qcCIsImhvbmp5by5ha2l0YS5qcCIsImlrYXdhLmFraXRhLmpwIiwia2FtaWtvYW5pLmFraXRhLmpwIiwi''@;'; + put 'put ''a2FtaW9rYS5ha2l0YS5qcCIsImthdGFnYW1pLmFraXRhLmpwIiwia2F6dW5vLmFraXRhLmpwIiwia2l0YWFraXRhLmFraXRhLmpwIiwia29zYWthLmFraXRhLmpwIiwia3lvd2EuYWtpdGEuanAiLCJtaXNhdG8uYWtpdGEuanAiLCJtaXRhbmUuYWtpdGEuanAiLCJtb3JpeW9zaGkuYWtpdGEu''@;'; + put 'put ''anAiLCJuaWthaG8uYWtpdGEuanAiLCJub3NoaXJvLmFraXRhLmpwIiwib2RhdGUuYWtpdGEuanAiLCJvZ2EuYWtpdGEuanAiLCJvZ2F0YS5ha2l0YS5qcCIsInNlbWJva3UuYWtpdGEuanAiLCJ5b2tvdGUuYWtpdGEuanAiLCJ5dXJpaG9uam8uYWtpdGEuanAiLCJhb21vcmkuYW9tb3JpLmpw''@;'; + put 'put ''IiwiZ29ub2hlLmFvbW9yaS5qcCIsImhhY2hpbm9oZS5hb21vcmkuanAiLCJoYXNoaWthbWkuYW9tb3JpLmpwIiwiaGlyYW5haS5hb21vcmkuanAiLCJoaXJvc2FraS5hb21vcmkuanAiLCJpdGF5YW5hZ2kuYW9tb3JpLmpwIiwia3Vyb2lzaGkuYW9tb3JpLmpwIiwibWlzYXdhLmFvbW9yaS5q''@;'; + put 'put ''cCIsIm11dHN1LmFvbW9yaS5qcCIsIm5ha2Fkb21hcmkuYW9tb3JpLmpwIiwibm9oZWppLmFvbW9yaS5qcCIsIm9pcmFzZS5hb21vcmkuanAiLCJvd2FuaS5hb21vcmkuanAiLCJyb2t1bm9oZS5hb21vcmkuanAiLCJzYW5ub2hlLmFvbW9yaS5qcCIsInNoaWNoaW5vaGUuYW9tb3JpLmpwIiwi''@;'; + put 'put ''c2hpbmdvLmFvbW9yaS5qcCIsInRha2tvLmFvbW9yaS5qcCIsInRvd2FkYS5hb21vcmkuanAiLCJ0c3VnYXJ1LmFvbW9yaS5qcCIsInRzdXJ1dGEuYW9tb3JpLmpwIiwiYWJpa28uY2hpYmEuanAiLCJhc2FoaS5jaGliYS5qcCIsImNob25hbi5jaGliYS5qcCIsImNob3NlaS5jaGliYS5qcCIs''@;'; + put 'put ''ImNob3NoaS5jaGliYS5qcCIsImNodW8uY2hpYmEuanAiLCJmdW5hYmFzaGkuY2hpYmEuanAiLCJmdXR0c3UuY2hpYmEuanAiLCJoYW5hbWlnYXdhLmNoaWJhLmpwIiwiaWNoaWhhcmEuY2hpYmEuanAiLCJpY2hpa2F3YS5jaGliYS5qcCIsImljaGlub21peWEuY2hpYmEuanAiLCJpbnphaS5j''@;'; + put 'put ''aGliYS5qcCIsImlzdW1pLmNoaWJhLmpwIiwia2FtYWdheWEuY2hpYmEuanAiLCJrYW1vZ2F3YS5jaGliYS5qcCIsImthc2hpd2EuY2hpYmEuanAiLCJrYXRvcmkuY2hpYmEuanAiLCJrYXRzdXVyYS5jaGliYS5qcCIsImtpbWl0c3UuY2hpYmEuanAiLCJraXNhcmF6dS5jaGliYS5qcCIsImtv''@;'; + put 'put ''emFraS5jaGliYS5qcCIsImt1anVrdXJpLmNoaWJhLmpwIiwia3lvbmFuLmNoaWJhLmpwIiwibWF0c3Vkby5jaGliYS5qcCIsIm1pZG9yaS5jaGliYS5qcCIsIm1paGFtYS5jaGliYS5qcCIsIm1pbmFtaWJvc28uY2hpYmEuanAiLCJtb2JhcmEuY2hpYmEuanAiLCJtdXRzdXphd2EuY2hpYmEu''@;'; + put 'put ''anAiLCJuYWdhcmEuY2hpYmEuanAiLCJuYWdhcmV5YW1hLmNoaWJhLmpwIiwibmFyYXNoaW5vLmNoaWJhLmpwIiwibmFyaXRhLmNoaWJhLmpwIiwibm9kYS5jaGliYS5qcCIsIm9hbWlzaGlyYXNhdG8uY2hpYmEuanAiLCJvbWlnYXdhLmNoaWJhLmpwIiwib25qdWt1LmNoaWJhLmpwIiwib3Rh''@;'; + put 'put ''a2kuY2hpYmEuanAiLCJzYWthZS5jaGliYS5qcCIsInNha3VyYS5jaGliYS5qcCIsInNoaW1vZnVzYS5jaGliYS5qcCIsInNoaXJha28uY2hpYmEuanAiLCJzaGlyb2kuY2hpYmEuanAiLCJzaGlzdWkuY2hpYmEuanAiLCJzb2RlZ2F1cmEuY2hpYmEuanAiLCJzb3NhLmNoaWJhLmpwIiwidGFr''@;'; + put 'put ''by5jaGliYS5qcCIsInRhdGV5YW1hLmNoaWJhLmpwIiwidG9nYW5lLmNoaWJhLmpwIiwidG9obm9zaG8uY2hpYmEuanAiLCJ0b21pc2F0by5jaGliYS5qcCIsInVyYXlhc3UuY2hpYmEuanAiLCJ5YWNoaW1hdGEuY2hpYmEuanAiLCJ5YWNoaXlvLmNoaWJhLmpwIiwieW9rYWljaGliYS5jaGli''@;'; + put 'put ''YS5qcCIsInlva29zaGliYWhpa2FyaS5jaGliYS5qcCIsInlvdHN1a2FpZG8uY2hpYmEuanAiLCJhaW5hbi5laGltZS5qcCIsImhvbmFpLmVoaW1lLmpwIiwiaWthdGEuZWhpbWUuanAiLCJpbWFiYXJpLmVoaW1lLmpwIiwiaXlvLmVoaW1lLmpwIiwia2FtaWppbWEuZWhpbWUuanAiLCJraWhv''@;'; + put 'put ''a3UuZWhpbWUuanAiLCJrdW1ha29nZW4uZWhpbWUuanAiLCJtYXNha2kuZWhpbWUuanAiLCJtYXRzdW5vLmVoaW1lLmpwIiwibWF0c3V5YW1hLmVoaW1lLmpwIiwibmFtaWthdGEuZWhpbWUuanAiLCJuaWloYW1hLmVoaW1lLmpwIiwib3p1LmVoaW1lLmpwIiwic2Fpam8uZWhpbWUuanAiLCJz''@;'; + put 'put ''ZWl5by5laGltZS5qcCIsInNoaWtva3VjaHVvLmVoaW1lLmpwIiwidG9iZS5laGltZS5qcCIsInRvb24uZWhpbWUuanAiLCJ1Y2hpa28uZWhpbWUuanAiLCJ1d2FqaW1hLmVoaW1lLmpwIiwieWF3YXRhaGFtYS5laGltZS5qcCIsImVjaGl6ZW4uZnVrdWkuanAiLCJlaWhlaWppLmZ1a3VpLmpw''@;'; + put 'put ''IiwiZnVrdWkuZnVrdWkuanAiLCJpa2VkYS5mdWt1aS5qcCIsImthdHN1eWFtYS5mdWt1aS5qcCIsIm1paGFtYS5mdWt1aS5qcCIsIm1pbmFtaWVjaGl6ZW4uZnVrdWkuanAiLCJvYmFtYS5mdWt1aS5qcCIsIm9oaS5mdWt1aS5qcCIsIm9uby5mdWt1aS5qcCIsInNhYmFlLmZ1a3VpLmpwIiwi''@;'; + put 'put ''c2FrYWkuZnVrdWkuanAiLCJ0YWthaGFtYS5mdWt1aS5qcCIsInRzdXJ1Z2EuZnVrdWkuanAiLCJ3YWthc2EuZnVrdWkuanAiLCJhc2hpeWEuZnVrdW9rYS5qcCIsImJ1emVuLmZ1a3Vva2EuanAiLCJjaGlrdWdvLmZ1a3Vva2EuanAiLCJjaGlrdWhvLmZ1a3Vva2EuanAiLCJjaGlrdWpvLmZ1''@;'; + put 'put ''a3Vva2EuanAiLCJjaGlrdXNoaW5vLmZ1a3Vva2EuanAiLCJjaGlrdXplbi5mdWt1b2thLmpwIiwiY2h1by5mdWt1b2thLmpwIiwiZGF6YWlmdS5mdWt1b2thLmpwIiwiZnVrdWNoaS5mdWt1b2thLmpwIiwiaGFrYXRhLmZ1a3Vva2EuanAiLCJoaWdhc2hpLmZ1a3Vva2EuanAiLCJoaXJva2F3''@;'; + put 'put ''YS5mdWt1b2thLmpwIiwiaGlzYXlhbWEuZnVrdW9rYS5qcCIsImlpenVrYS5mdWt1b2thLmpwIiwiaW5hdHN1a2kuZnVrdW9rYS5qcCIsImthaG8uZnVrdW9rYS5qcCIsImthc3VnYS5mdWt1b2thLmpwIiwia2FzdXlhLmZ1a3Vva2EuanAiLCJrYXdhcmEuZnVrdW9rYS5qcCIsImtlaXNlbi5m''@;'; + put 'put ''dWt1b2thLmpwIiwia29nYS5mdWt1b2thLmpwIiwia3VyYXRlLmZ1a3Vva2EuanAiLCJrdXJvZ2kuZnVrdW9rYS5qcCIsImt1cnVtZS5mdWt1b2thLmpwIiwibWluYW1pLmZ1a3Vva2EuanAiLCJtaXlha28uZnVrdW9rYS5qcCIsIm1peWFtYS5mdWt1b2thLmpwIiwibWl5YXdha2EuZnVrdW9r''@;'; + put 'put ''YS5qcCIsIm1penVtYWtpLmZ1a3Vva2EuanAiLCJtdW5ha2F0YS5mdWt1b2thLmpwIiwibmFrYWdhd2EuZnVrdW9rYS5qcCIsIm5ha2FtYS5mdWt1b2thLmpwIiwibmlzaGkuZnVrdW9rYS5qcCIsIm5vZ2F0YS5mdWt1b2thLmpwIiwib2dvcmkuZnVrdW9rYS5qcCIsIm9rYWdha2kuZnVrdW9r''@;'; + put 'put ''YS5qcCIsIm9rYXdhLmZ1a3Vva2EuanAiLCJva2kuZnVrdW9rYS5qcCIsIm9tdXRhLmZ1a3Vva2EuanAiLCJvbmdhLmZ1a3Vva2EuanAiLCJvbm9qby5mdWt1b2thLmpwIiwib3RvLmZ1a3Vva2EuanAiLCJzYWlnYXdhLmZ1a3Vva2EuanAiLCJzYXNhZ3VyaS5mdWt1b2thLmpwIiwic2hpbmd1''@;'; + put 'put ''LmZ1a3Vva2EuanAiLCJzaGlueW9zaGl0b21pLmZ1a3Vva2EuanAiLCJzaG9uYWkuZnVrdW9rYS5qcCIsInNvZWRhLmZ1a3Vva2EuanAiLCJzdWUuZnVrdW9rYS5qcCIsInRhY2hpYXJhaS5mdWt1b2thLmpwIiwidGFnYXdhLmZ1a3Vva2EuanAiLCJ0YWthdGEuZnVrdW9rYS5qcCIsInRvaG8u''@;'; + put 'put ''ZnVrdW9rYS5qcCIsInRveW90c3UuZnVrdW9rYS5qcCIsInRzdWlraS5mdWt1b2thLmpwIiwidWtpaGEuZnVrdW9rYS5qcCIsInVtaS5mdWt1b2thLmpwIiwidXN1aS5mdWt1b2thLmpwIiwieWFtYWRhLmZ1a3Vva2EuanAiLCJ5YW1lLmZ1a3Vva2EuanAiLCJ5YW5hZ2F3YS5mdWt1b2thLmpw''@;'; + put 'put ''IiwieXVrdWhhc2hpLmZ1a3Vva2EuanAiLCJhaXp1YmFuZ2UuZnVrdXNoaW1hLmpwIiwiYWl6dW1pc2F0by5mdWt1c2hpbWEuanAiLCJhaXp1d2FrYW1hdHN1LmZ1a3VzaGltYS5qcCIsImFzYWthd2EuZnVrdXNoaW1hLmpwIiwiYmFuZGFpLmZ1a3VzaGltYS5qcCIsImRhdGUuZnVrdXNoaW1h''@;'; + put 'put ''LmpwIiwiZnVrdXNoaW1hLmZ1a3VzaGltYS5qcCIsImZ1cnVkb25vLmZ1a3VzaGltYS5qcCIsImZ1dGFiYS5mdWt1c2hpbWEuanAiLCJoYW5hd2EuZnVrdXNoaW1hLmpwIiwiaGlnYXNoaS5mdWt1c2hpbWEuanAiLCJoaXJhdGEuZnVrdXNoaW1hLmpwIiwiaGlyb25vLmZ1a3VzaGltYS5qcCIs''@;'; + put 'put ''ImlpdGF0ZS5mdWt1c2hpbWEuanAiLCJpbmF3YXNoaXJvLmZ1a3VzaGltYS5qcCIsImlzaGlrYXdhLmZ1a3VzaGltYS5qcCIsIml3YWtpLmZ1a3VzaGltYS5qcCIsIml6dW1pemFraS5mdWt1c2hpbWEuanAiLCJrYWdhbWlpc2hpLmZ1a3VzaGltYS5qcCIsImthbmV5YW1hLmZ1a3VzaGltYS5q''@;'; + put 'put ''cCIsImthd2FtYXRhLmZ1a3VzaGltYS5qcCIsImtpdGFrYXRhLmZ1a3VzaGltYS5qcCIsImtpdGFzaGlvYmFyYS5mdWt1c2hpbWEuanAiLCJrb29yaS5mdWt1c2hpbWEuanAiLCJrb3JpeWFtYS5mdWt1c2hpbWEuanAiLCJrdW5pbWkuZnVrdXNoaW1hLmpwIiwibWloYXJ1LmZ1a3VzaGltYS5q''@;'; + put 'put ''cCIsIm1pc2hpbWEuZnVrdXNoaW1hLmpwIiwibmFtaWUuZnVrdXNoaW1hLmpwIiwibmFuZ28uZnVrdXNoaW1hLmpwIiwibmlzaGlhaXp1LmZ1a3VzaGltYS5qcCIsIm5pc2hpZ28uZnVrdXNoaW1hLmpwIiwib2t1bWEuZnVrdXNoaW1hLmpwIiwib21vdGVnby5mdWt1c2hpbWEuanAiLCJvbm8u''@;'; + put 'put ''ZnVrdXNoaW1hLmpwIiwib3RhbWEuZnVrdXNoaW1hLmpwIiwic2FtZWdhd2EuZnVrdXNoaW1hLmpwIiwic2hpbW9nby5mdWt1c2hpbWEuanAiLCJzaGlyYWthd2EuZnVrdXNoaW1hLmpwIiwic2hvd2EuZnVrdXNoaW1hLmpwIiwic29tYS5mdWt1c2hpbWEuanAiLCJzdWthZ2F3YS5mdWt1c2hp''@;'; + put 'put ''bWEuanAiLCJ0YWlzaGluLmZ1a3VzaGltYS5qcCIsInRhbWFrYXdhLmZ1a3VzaGltYS5qcCIsInRhbmFndXJhLmZ1a3VzaGltYS5qcCIsInRlbmVpLmZ1a3VzaGltYS5qcCIsInlhYnVraS5mdWt1c2hpbWEuanAiLCJ5YW1hdG8uZnVrdXNoaW1hLmpwIiwieWFtYXRzdXJpLmZ1a3VzaGltYS5q''@;'; + put 'put ''cCIsInlhbmFpenUuZnVrdXNoaW1hLmpwIiwieXVnYXdhLmZ1a3VzaGltYS5qcCIsImFucGFjaGkuZ2lmdS5qcCIsImVuYS5naWZ1LmpwIiwiZ2lmdS5naWZ1LmpwIiwiZ2luYW4uZ2lmdS5qcCIsImdvZG8uZ2lmdS5qcCIsImd1am8uZ2lmdS5qcCIsImhhc2hpbWEuZ2lmdS5qcCIsImhpY2hp''@;'; + put 'put ''c28uZ2lmdS5qcCIsImhpZGEuZ2lmdS5qcCIsImhpZ2FzaGlzaGlyYWthd2EuZ2lmdS5qcCIsImliaWdhd2EuZ2lmdS5qcCIsImlrZWRhLmdpZnUuanAiLCJrYWthbWlnYWhhcmEuZ2lmdS5qcCIsImthbmkuZ2lmdS5qcCIsImthc2FoYXJhLmdpZnUuanAiLCJrYXNhbWF0c3UuZ2lmdS5qcCIs''@;'; + put 'put ''Imthd2F1ZS5naWZ1LmpwIiwia2l0YWdhdGEuZ2lmdS5qcCIsIm1pbm8uZ2lmdS5qcCIsIm1pbm9rYW1vLmdpZnUuanAiLCJtaXRha2UuZ2lmdS5qcCIsIm1penVuYW1pLmdpZnUuanAiLCJtb3Rvc3UuZ2lmdS5qcCIsIm5ha2F0c3VnYXdhLmdpZnUuanAiLCJvZ2FraS5naWZ1LmpwIiwic2Fr''@;'; + put 'put ''YWhvZ2kuZ2lmdS5qcCIsInNla2kuZ2lmdS5qcCIsInNla2lnYWhhcmEuZ2lmdS5qcCIsInNoaXJha2F3YS5naWZ1LmpwIiwidGFqaW1pLmdpZnUuanAiLCJ0YWtheWFtYS5naWZ1LmpwIiwidGFydWkuZ2lmdS5qcCIsInRva2kuZ2lmdS5qcCIsInRvbWlrYS5naWZ1LmpwIiwid2Fub3VjaGku''@;'; + put 'put ''Z2lmdS5qcCIsInlhbWFnYXRhLmdpZnUuanAiLCJ5YW90c3UuZ2lmdS5qcCIsInlvcm8uZ2lmdS5qcCIsImFubmFrYS5ndW5tYS5qcCIsImNoaXlvZGEuZ3VubWEuanAiLCJmdWppb2thLmd1bm1hLmpwIiwiaGlnYXNoaWFnYXRzdW1hLmd1bm1hLmpwIiwiaXNlc2FraS5ndW5tYS5qcCIsIml0''@;'; + put 'put ''YWt1cmEuZ3VubWEuanAiLCJrYW5uYS5ndW5tYS5qcCIsImthbnJhLmd1bm1hLmpwIiwia2F0YXNoaW5hLmd1bm1hLmpwIiwia2F3YWJhLmd1bm1hLmpwIiwia2lyeXUuZ3VubWEuanAiLCJrdXNhdHN1Lmd1bm1hLmpwIiwibWFlYmFzaGkuZ3VubWEuanAiLCJtZWl3YS5ndW5tYS5qcCIsIm1p''@;'; + put 'put ''ZG9yaS5ndW5tYS5qcCIsIm1pbmFrYW1pLmd1bm1hLmpwIiwibmFnYW5vaGFyYS5ndW5tYS5qcCIsIm5ha2Fub2pvLmd1bm1hLmpwIiwibmFubW9rdS5ndW5tYS5qcCIsIm51bWF0YS5ndW5tYS5qcCIsIm9penVtaS5ndW5tYS5qcCIsIm9yYS5ndW5tYS5qcCIsIm90YS5ndW5tYS5qcCIsInNo''@;'; + put 'put ''aWJ1a2F3YS5ndW5tYS5qcCIsInNoaW1vbml0YS5ndW5tYS5qcCIsInNoaW50by5ndW5tYS5qcCIsInNob3dhLmd1bm1hLmpwIiwidGFrYXNha2kuZ3VubWEuanAiLCJ0YWtheWFtYS5ndW5tYS5qcCIsInRhbWFtdXJhLmd1bm1hLmpwIiwidGF0ZWJheWFzaGkuZ3VubWEuanAiLCJ0b21pb2th''@;'; + put 'put ''Lmd1bm1hLmpwIiwidHN1a2l5b25vLmd1bm1hLmpwIiwidHN1bWFnb2kuZ3VubWEuanAiLCJ1ZW5vLmd1bm1hLmpwIiwieW9zaGlva2EuZ3VubWEuanAiLCJhc2FtaW5hbWkuaGlyb3NoaW1hLmpwIiwiZGFpd2EuaGlyb3NoaW1hLmpwIiwiZXRhamltYS5oaXJvc2hpbWEuanAiLCJmdWNodS5o''@;'; + put 'put ''aXJvc2hpbWEuanAiLCJmdWt1eWFtYS5oaXJvc2hpbWEuanAiLCJoYXRzdWthaWNoaS5oaXJvc2hpbWEuanAiLCJoaWdhc2hpaGlyb3NoaW1hLmhpcm9zaGltYS5qcCIsImhvbmdvLmhpcm9zaGltYS5qcCIsImppbnNla2lrb2dlbi5oaXJvc2hpbWEuanAiLCJrYWl0YS5oaXJvc2hpbWEuanAi''@;'; + put 'put ''LCJrdWkuaGlyb3NoaW1hLmpwIiwia3VtYW5vLmhpcm9zaGltYS5qcCIsImt1cmUuaGlyb3NoaW1hLmpwIiwibWloYXJhLmhpcm9zaGltYS5qcCIsIm1peW9zaGkuaGlyb3NoaW1hLmpwIiwibmFrYS5oaXJvc2hpbWEuanAiLCJvbm9taWNoaS5oaXJvc2hpbWEuanAiLCJvc2FraWthbWlqaW1h''@;'; + put 'put ''Lmhpcm9zaGltYS5qcCIsIm90YWtlLmhpcm9zaGltYS5qcCIsInNha2EuaGlyb3NoaW1hLmpwIiwic2VyYS5oaXJvc2hpbWEuanAiLCJzZXJhbmlzaGkuaGlyb3NoaW1hLmpwIiwic2hpbmljaGkuaGlyb3NoaW1hLmpwIiwic2hvYmFyYS5oaXJvc2hpbWEuanAiLCJ0YWtlaGFyYS5oaXJvc2hp''@;'; + put 'put ''bWEuanAiLCJhYmFzaGlyaS5ob2trYWlkby5qcCIsImFiaXJhLmhva2thaWRvLmpwIiwiYWliZXRzdS5ob2trYWlkby5qcCIsImFrYWJpcmEuaG9ra2FpZG8uanAiLCJha2tlc2hpLmhva2thaWRvLmpwIiwiYXNhaGlrYXdhLmhva2thaWRvLmpwIiwiYXNoaWJldHN1Lmhva2thaWRvLmpwIiwi''@;'; + put 'put ''YXNob3JvLmhva2thaWRvLmpwIiwiYXNzYWJ1Lmhva2thaWRvLmpwIiwiYXRzdW1hLmhva2thaWRvLmpwIiwiYmliYWkuaG9ra2FpZG8uanAiLCJiaWVpLmhva2thaWRvLmpwIiwiYmlmdWthLmhva2thaWRvLmpwIiwiYmlob3JvLmhva2thaWRvLmpwIiwiYmlyYXRvcmkuaG9ra2FpZG8uanAi''@;'; + put 'put ''LCJjaGlwcHViZXRzdS5ob2trYWlkby5qcCIsImNoaXRvc2UuaG9ra2FpZG8uanAiLCJkYXRlLmhva2thaWRvLmpwIiwiZWJldHN1Lmhva2thaWRvLmpwIiwiZW1iZXRzdS5ob2trYWlkby5qcCIsImVuaXdhLmhva2thaWRvLmpwIiwiZXJpbW8uaG9ra2FpZG8uanAiLCJlc2FuLmhva2thaWRv''@;'; + put 'put ''LmpwIiwiZXNhc2hpLmhva2thaWRvLmpwIiwiZnVrYWdhd2EuaG9ra2FpZG8uanAiLCJmdWt1c2hpbWEuaG9ra2FpZG8uanAiLCJmdXJhbm8uaG9ra2FpZG8uanAiLCJmdXJ1YmlyYS5ob2trYWlkby5qcCIsImhhYm9yby5ob2trYWlkby5qcCIsImhha29kYXRlLmhva2thaWRvLmpwIiwiaGFt''@;'; + put 'put ''YXRvbmJldHN1Lmhva2thaWRvLmpwIiwiaGlkYWthLmhva2thaWRvLmpwIiwiaGlnYXNoaWthZ3VyYS5ob2trYWlkby5qcCIsImhpZ2FzaGlrYXdhLmhva2thaWRvLmpwIiwiaGlyb28uaG9ra2FpZG8uanAiLCJob2t1cnl1Lmhva2thaWRvLmpwIiwiaG9rdXRvLmhva2thaWRvLmpwIiwiaG9u''@;'; + put 'put ''YmV0c3UuaG9ra2FpZG8uanAiLCJob3Jva2FuYWkuaG9ra2FpZG8uanAiLCJob3Jvbm9iZS5ob2trYWlkby5qcCIsImlrZWRhLmhva2thaWRvLmpwIiwiaW1ha2FuZS5ob2trYWlkby5qcCIsImlzaGlrYXJpLmhva2thaWRvLmpwIiwiaXdhbWl6YXdhLmhva2thaWRvLmpwIiwiaXdhbmFpLmhv''@;'; + put 'put ''a2thaWRvLmpwIiwia2FtaWZ1cmFuby5ob2trYWlkby5qcCIsImthbWlrYXdhLmhva2thaWRvLmpwIiwia2FtaXNoaWhvcm8uaG9ra2FpZG8uanAiLCJrYW1pc3VuYWdhd2EuaG9ra2FpZG8uanAiLCJrYW1vZW5haS5ob2trYWlkby5qcCIsImtheWFiZS5ob2trYWlkby5qcCIsImtlbWJ1Y2hp''@;'; + put 'put ''Lmhva2thaWRvLmpwIiwia2lrb25haS5ob2trYWlkby5qcCIsImtpbW9iZXRzdS5ob2trYWlkby5qcCIsImtpdGFoaXJvc2hpbWEuaG9ra2FpZG8uanAiLCJraXRhbWkuaG9ra2FpZG8uanAiLCJraXlvc2F0by5ob2trYWlkby5qcCIsImtvc2hpbWl6dS5ob2trYWlkby5qcCIsImt1bm5lcHB1''@;'; + put 'put ''Lmhva2thaWRvLmpwIiwia3VyaXlhbWEuaG9ra2FpZG8uanAiLCJrdXJvbWF0c3VuYWkuaG9ra2FpZG8uanAiLCJrdXNoaXJvLmhva2thaWRvLmpwIiwia3V0Y2hhbi5ob2trYWlkby5qcCIsImt5b3dhLmhva2thaWRvLmpwIiwibWFzaGlrZS5ob2trYWlkby5qcCIsIm1hdHN1bWFlLmhva2th''@;'; + put 'put ''aWRvLmpwIiwibWlrYXNhLmhva2thaWRvLmpwIiwibWluYW1pZnVyYW5vLmhva2thaWRvLmpwIiwibW9tYmV0c3UuaG9ra2FpZG8uanAiLCJtb3NldXNoaS5ob2trYWlkby5qcCIsIm11a2F3YS5ob2trYWlkby5qcCIsIm11cm9yYW4uaG9ra2FpZG8uanAiLCJuYWllLmhva2thaWRvLmpwIiwi''@;'; + put 'put ''bmFrYWdhd2EuaG9ra2FpZG8uanAiLCJuYWthc2F0c3VuYWkuaG9ra2FpZG8uanAiLCJuYWthdG9tYmV0c3UuaG9ra2FpZG8uanAiLCJuYW5hZS5ob2trYWlkby5qcCIsIm5hbnBvcm8uaG9ra2FpZG8uanAiLCJuYXlvcm8uaG9ra2FpZG8uanAiLCJuZW11cm8uaG9ra2FpZG8uanAiLCJuaWlr''@;'; + put 'put ''YXBwdS5ob2trYWlkby5qcCIsIm5pa2kuaG9ra2FpZG8uanAiLCJuaXNoaW9rb3BwZS5ob2trYWlkby5qcCIsIm5vYm9yaWJldHN1Lmhva2thaWRvLmpwIiwibnVtYXRhLmhva2thaWRvLmpwIiwib2JpaGlyby5ob2trYWlkby5qcCIsIm9iaXJhLmhva2thaWRvLmpwIiwib2tldG8uaG9ra2Fp''@;'; + put 'put ''ZG8uanAiLCJva29wcGUuaG9ra2FpZG8uanAiLCJvdGFydS5ob2trYWlkby5qcCIsIm90b2JlLmhva2thaWRvLmpwIiwib3RvZnVrZS5ob2trYWlkby5qcCIsIm90b2luZXBwdS5ob2trYWlkby5qcCIsIm91bXUuaG9ra2FpZG8uanAiLCJvem9yYS5ob2trYWlkby5qcCIsInBpcHB1Lmhva2th''@;'; + put 'put ''aWRvLmpwIiwicmFua29zaGkuaG9ra2FpZG8uanAiLCJyZWJ1bi5ob2trYWlkby5qcCIsInJpa3ViZXRzdS5ob2trYWlkby5qcCIsInJpc2hpcmkuaG9ra2FpZG8uanAiLCJyaXNoaXJpZnVqaS5ob2trYWlkby5qcCIsInNhcm9tYS5ob2trYWlkby5qcCIsInNhcnVmdXRzdS5ob2trYWlkby5q''@;'; + put 'put ''cCIsInNoYWtvdGFuLmhva2thaWRvLmpwIiwic2hhcmkuaG9ra2FpZG8uanAiLCJzaGliZWNoYS5ob2trYWlkby5qcCIsInNoaWJldHN1Lmhva2thaWRvLmpwIiwic2hpa2FiZS5ob2trYWlkby5qcCIsInNoaWthb2kuaG9ra2FpZG8uanAiLCJzaGltYW1ha2kuaG9ra2FpZG8uanAiLCJzaGlt''@;'; + put 'put ''aXp1Lmhva2thaWRvLmpwIiwic2hpbW9rYXdhLmhva2thaWRvLmpwIiwic2hpbnNoaW5vdHN1Lmhva2thaWRvLmpwIiwic2hpbnRva3UuaG9ra2FpZG8uanAiLCJzaGlyYW51a2EuaG9ra2FpZG8uanAiLCJzaGlyYW9pLmhva2thaWRvLmpwIiwic2hpcml1Y2hpLmhva2thaWRvLmpwIiwic29i''@;'; + put 'put ''ZXRzdS5ob2trYWlkby5qcCIsInN1bmFnYXdhLmhva2thaWRvLmpwIiwidGFpa2kuaG9ra2FpZG8uanAiLCJ0YWthc3UuaG9ra2FpZG8uanAiLCJ0YWtpa2F3YS5ob2trYWlkby5qcCIsInRha2lub3VlLmhva2thaWRvLmpwIiwidGVzaGlrYWdhLmhva2thaWRvLmpwIiwidG9iZXRzdS5ob2tr''@;'; + put 'put ''YWlkby5qcCIsInRvaG1hLmhva2thaWRvLmpwIiwidG9tYWtvbWFpLmhva2thaWRvLmpwIiwidG9tYXJpLmhva2thaWRvLmpwIiwidG95YS5ob2trYWlkby5qcCIsInRveWFrby5ob2trYWlkby5qcCIsInRveW90b21pLmhva2thaWRvLmpwIiwidG95b3VyYS5ob2trYWlkby5qcCIsInRzdWJl''@;'; + put 'put ''dHN1Lmhva2thaWRvLmpwIiwidHN1a2lnYXRhLmhva2thaWRvLmpwIiwidXJha2F3YS5ob2trYWlkby5qcCIsInVyYXVzdS5ob2trYWlkby5qcCIsInVyeXUuaG9ra2FpZG8uanAiLCJ1dGFzaGluYWkuaG9ra2FpZG8uanAiLCJ3YWtrYW5haS5ob2trYWlkby5qcCIsIndhc3NhbXUuaG9ra2Fp''@;'; + put 'put ''ZG8uanAiLCJ5YWt1bW8uaG9ra2FpZG8uanAiLCJ5b2ljaGkuaG9ra2FpZG8uanAiLCJhaW9pLmh5b2dvLmpwIiwiYWthc2hpLmh5b2dvLmpwIiwiYWtvLmh5b2dvLmpwIiwiYW1hZ2FzYWtpLmh5b2dvLmpwIiwiYW9nYWtpLmh5b2dvLmpwIiwiYXNhZ28uaHlvZ28uanAiLCJhc2hpeWEuaHlv''@;'; + put 'put ''Z28uanAiLCJhd2FqaS5oeW9nby5qcCIsImZ1a3VzYWtpLmh5b2dvLmpwIiwiZ29zaGlraS5oeW9nby5qcCIsImhhcmltYS5oeW9nby5qcCIsImhpbWVqaS5oeW9nby5qcCIsImljaGlrYXdhLmh5b2dvLmpwIiwiaW5hZ2F3YS5oeW9nby5qcCIsIml0YW1pLmh5b2dvLmpwIiwia2Frb2dhd2Eu''@;'; + put 'put ''aHlvZ28uanAiLCJrYW1pZ29yaS5oeW9nby5qcCIsImthbWlrYXdhLmh5b2dvLmpwIiwia2FzYWkuaHlvZ28uanAiLCJrYXN1Z2EuaHlvZ28uanAiLCJrYXdhbmlzaGkuaHlvZ28uanAiLCJtaWtpLmh5b2dvLmpwIiwibWluYW1pYXdhamkuaHlvZ28uanAiLCJuaXNoaW5vbWl5YS5oeW9nby5q''@;'; + put 'put ''cCIsIm5pc2hpd2FraS5oeW9nby5qcCIsIm9uby5oeW9nby5qcCIsInNhbmRhLmh5b2dvLmpwIiwic2FubmFuLmh5b2dvLmpwIiwic2FzYXlhbWEuaHlvZ28uanAiLCJzYXlvLmh5b2dvLmpwIiwic2hpbmd1Lmh5b2dvLmpwIiwic2hpbm9uc2VuLmh5b2dvLmpwIiwic2hpc28uaHlvZ28uanAi''@;'; + put 'put ''LCJzdW1vdG8uaHlvZ28uanAiLCJ0YWlzaGkuaHlvZ28uanAiLCJ0YWthLmh5b2dvLmpwIiwidGFrYXJhenVrYS5oeW9nby5qcCIsInRha2FzYWdvLmh5b2dvLmpwIiwidGFraW5vLmh5b2dvLmpwIiwidGFtYmEuaHlvZ28uanAiLCJ0YXRzdW5vLmh5b2dvLmpwIiwidG95b29rYS5oeW9nby5q''@;'; + put 'put ''cCIsInlhYnUuaHlvZ28uanAiLCJ5YXNoaXJvLmh5b2dvLmpwIiwieW9rYS5oeW9nby5qcCIsInlva2F3YS5oeW9nby5qcCIsImFtaS5pYmFyYWtpLmpwIiwiYXNhaGkuaWJhcmFraS5qcCIsImJhbmRvLmliYXJha2kuanAiLCJjaGlrdXNlaS5pYmFyYWtpLmpwIiwiZGFpZ28uaWJhcmFraS5q''@;'; + put 'put ''cCIsImZ1amlzaGlyby5pYmFyYWtpLmpwIiwiaGl0YWNoaS5pYmFyYWtpLmpwIiwiaGl0YWNoaW5ha2EuaWJhcmFraS5qcCIsImhpdGFjaGlvbWl5YS5pYmFyYWtpLmpwIiwiaGl0YWNoaW90YS5pYmFyYWtpLmpwIiwiaWJhcmFraS5pYmFyYWtpLmpwIiwiaW5hLmliYXJha2kuanAiLCJpbmFz''@;'; + put 'put ''aGlraS5pYmFyYWtpLmpwIiwiaXRha28uaWJhcmFraS5qcCIsIml3YW1hLmliYXJha2kuanAiLCJqb3NvLmliYXJha2kuanAiLCJrYW1pc3UuaWJhcmFraS5qcCIsImthc2FtYS5pYmFyYWtpLmpwIiwia2FzaGltYS5pYmFyYWtpLmpwIiwia2FzdW1pZ2F1cmEuaWJhcmFraS5qcCIsImtvZ2Eu''@;'; + put 'put ''aWJhcmFraS5qcCIsIm1paG8uaWJhcmFraS5qcCIsIm1pdG8uaWJhcmFraS5qcCIsIm1vcml5YS5pYmFyYWtpLmpwIiwibmFrYS5pYmFyYWtpLmpwIiwibmFtZWdhdGEuaWJhcmFraS5qcCIsIm9hcmFpLmliYXJha2kuanAiLCJvZ2F3YS5pYmFyYWtpLmpwIiwib21pdGFtYS5pYmFyYWtpLmpw''@;'; + put 'put ''Iiwicnl1Z2FzYWtpLmliYXJha2kuanAiLCJzYWthaS5pYmFyYWtpLmpwIiwic2FrdXJhZ2F3YS5pYmFyYWtpLmpwIiwic2hpbW9kYXRlLmliYXJha2kuanAiLCJzaGltb3RzdW1hLmliYXJha2kuanAiLCJzaGlyb3NhdG8uaWJhcmFraS5qcCIsInNvd2EuaWJhcmFraS5qcCIsInN1aWZ1Lmli''@;'; + put 'put ''YXJha2kuanAiLCJ0YWthaGFnaS5pYmFyYWtpLmpwIiwidGFtYXRzdWt1cmkuaWJhcmFraS5qcCIsInRva2FpLmliYXJha2kuanAiLCJ0b21vYmUuaWJhcmFraS5qcCIsInRvbmUuaWJhcmFraS5qcCIsInRvcmlkZS5pYmFyYWtpLmpwIiwidHN1Y2hpdXJhLmliYXJha2kuanAiLCJ0c3VrdWJh''@;'; + put 'put ''LmliYXJha2kuanAiLCJ1Y2hpaGFyYS5pYmFyYWtpLmpwIiwidXNoaWt1LmliYXJha2kuanAiLCJ5YWNoaXlvLmliYXJha2kuanAiLCJ5YW1hZ2F0YS5pYmFyYWtpLmpwIiwieWF3YXJhLmliYXJha2kuanAiLCJ5dWtpLmliYXJha2kuanAiLCJhbmFtaXp1LmlzaGlrYXdhLmpwIiwiaGFrdWku''@;'; + put 'put ''aXNoaWthd2EuanAiLCJoYWt1c2FuLmlzaGlrYXdhLmpwIiwia2FnYS5pc2hpa2F3YS5qcCIsImthaG9rdS5pc2hpa2F3YS5qcCIsImthbmF6YXdhLmlzaGlrYXdhLmpwIiwia2F3YWtpdGEuaXNoaWthd2EuanAiLCJrb21hdHN1LmlzaGlrYXdhLmpwIiwibmFrYW5vdG8uaXNoaWthd2EuanAi''@;'; + put 'put ''LCJuYW5hby5pc2hpa2F3YS5qcCIsIm5vbWkuaXNoaWthd2EuanAiLCJub25vaWNoaS5pc2hpa2F3YS5qcCIsIm5vdG8uaXNoaWthd2EuanAiLCJzaGlrYS5pc2hpa2F3YS5qcCIsInN1enUuaXNoaWthd2EuanAiLCJ0c3ViYXRhLmlzaGlrYXdhLmpwIiwidHN1cnVnaS5pc2hpa2F3YS5qcCIs''@;'; + put 'put ''InVjaGluYWRhLmlzaGlrYXdhLmpwIiwid2FqaW1hLmlzaGlrYXdhLmpwIiwiZnVkYWkuaXdhdGUuanAiLCJmdWppc2F3YS5pd2F0ZS5qcCIsImhhbmFtYWtpLml3YXRlLmpwIiwiaGlyYWl6dW1pLml3YXRlLmpwIiwiaGlyb25vLml3YXRlLmpwIiwiaWNoaW5vaGUuaXdhdGUuanAiLCJpY2hp''@;'; + put 'put ''bm9zZWtpLml3YXRlLmpwIiwiaXdhaXp1bWkuaXdhdGUuanAiLCJpd2F0ZS5pd2F0ZS5qcCIsImpvYm9qaS5pd2F0ZS5qcCIsImthbWFpc2hpLml3YXRlLmpwIiwia2FuZWdhc2FraS5pd2F0ZS5qcCIsImthcnVtYWkuaXdhdGUuanAiLCJrYXdhaS5pd2F0ZS5qcCIsImtpdGFrYW1pLml3YXRl''@;'; + put 'put ''LmpwIiwia3VqaS5pd2F0ZS5qcCIsImt1bm9oZS5pd2F0ZS5qcCIsImt1enVtYWtpLml3YXRlLmpwIiwibWl5YWtvLml3YXRlLmpwIiwibWl6dXNhd2EuaXdhdGUuanAiLCJtb3Jpb2thLml3YXRlLmpwIiwibmlub2hlLml3YXRlLmpwIiwibm9kYS5pd2F0ZS5qcCIsIm9mdW5hdG8uaXdhdGUu''@;'; + put 'put ''anAiLCJvc2h1Lml3YXRlLmpwIiwib3RzdWNoaS5pd2F0ZS5qcCIsInJpa3V6ZW50YWthdGEuaXdhdGUuanAiLCJzaGl3YS5pd2F0ZS5qcCIsInNoaXp1a3Vpc2hpLml3YXRlLmpwIiwic3VtaXRhLml3YXRlLmpwIiwidGFub2hhdGEuaXdhdGUuanAiLCJ0b25vLml3YXRlLmpwIiwieWFoYWJh''@;'; + put 'put ''Lml3YXRlLmpwIiwieWFtYWRhLml3YXRlLmpwIiwiYXlhZ2F3YS5rYWdhd2EuanAiLCJoaWdhc2hpa2FnYXdhLmthZ2F3YS5qcCIsImthbm9uamkua2FnYXdhLmpwIiwia290b2hpcmEua2FnYXdhLmpwIiwibWFubm8ua2FnYXdhLmpwIiwibWFydWdhbWUua2FnYXdhLmpwIiwibWl0b3lvLmth''@;'; + put 'put ''Z2F3YS5qcCIsIm5hb3NoaW1hLmthZ2F3YS5qcCIsInNhbnVraS5rYWdhd2EuanAiLCJ0YWRvdHN1LmthZ2F3YS5qcCIsInRha2FtYXRzdS5rYWdhd2EuanAiLCJ0b25vc2hvLmthZ2F3YS5qcCIsInVjaGlub21pLmthZ2F3YS5qcCIsInV0YXp1LmthZ2F3YS5qcCIsInplbnRzdWppLmthZ2F3''@;'; + put 'put ''YS5qcCIsImFrdW5lLmthZ29zaGltYS5qcCIsImFtYW1pLmthZ29zaGltYS5qcCIsImhpb2tpLmthZ29zaGltYS5qcCIsImlzYS5rYWdvc2hpbWEuanAiLCJpc2VuLmthZ29zaGltYS5qcCIsIml6dW1pLmthZ29zaGltYS5qcCIsImthZ29zaGltYS5rYWdvc2hpbWEuanAiLCJrYW5veWEua2Fn''@;'; + put 'put ''b3NoaW1hLmpwIiwia2F3YW5hYmUua2Fnb3NoaW1hLmpwIiwia2lua28ua2Fnb3NoaW1hLmpwIiwia291eWFtYS5rYWdvc2hpbWEuanAiLCJtYWt1cmF6YWtpLmthZ29zaGltYS5qcCIsIm1hdHN1bW90by5rYWdvc2hpbWEuanAiLCJtaW5hbWl0YW5lLmthZ29zaGltYS5qcCIsIm5ha2F0YW5l''@;'; + put 'put ''LmthZ29zaGltYS5qcCIsIm5pc2hpbm9vbW90ZS5rYWdvc2hpbWEuanAiLCJzYXRzdW1hc2VuZGFpLmthZ29zaGltYS5qcCIsInNvby5rYWdvc2hpbWEuanAiLCJ0YXJ1bWl6dS5rYWdvc2hpbWEuanAiLCJ5dXN1aS5rYWdvc2hpbWEuanAiLCJhaWthd2Eua2FuYWdhd2EuanAiLCJhdHN1Z2ku''@;'; + put 'put ''a2FuYWdhd2EuanAiLCJheWFzZS5rYW5hZ2F3YS5qcCIsImNoaWdhc2FraS5rYW5hZ2F3YS5qcCIsImViaW5hLmthbmFnYXdhLmpwIiwiZnVqaXNhd2Eua2FuYWdhd2EuanAiLCJoYWRhbm8ua2FuYWdhd2EuanAiLCJoYWtvbmUua2FuYWdhd2EuanAiLCJoaXJhdHN1a2Eua2FuYWdhd2EuanAi''@;'; + put 'put ''LCJpc2VoYXJhLmthbmFnYXdhLmpwIiwia2Fpc2VpLmthbmFnYXdhLmpwIiwia2FtYWt1cmEua2FuYWdhd2EuanAiLCJraXlva2F3YS5rYW5hZ2F3YS5qcCIsIm1hdHN1ZGEua2FuYWdhd2EuanAiLCJtaW5hbWlhc2hpZ2FyYS5rYW5hZ2F3YS5qcCIsIm1pdXJhLmthbmFnYXdhLmpwIiwibmFr''@;'; + put 'put ''YWkua2FuYWdhd2EuanAiLCJuaW5vbWl5YS5rYW5hZ2F3YS5qcCIsIm9kYXdhcmEua2FuYWdhd2EuanAiLCJvaS5rYW5hZ2F3YS5qcCIsIm9pc28ua2FuYWdhd2EuanAiLCJzYWdhbWloYXJhLmthbmFnYXdhLmpwIiwic2FtdWthd2Eua2FuYWdhd2EuanAiLCJ0c3VrdWkua2FuYWdhd2EuanAi''@;'; + put 'put ''LCJ5YW1ha2l0YS5rYW5hZ2F3YS5qcCIsInlhbWF0by5rYW5hZ2F3YS5qcCIsInlva29zdWthLmthbmFnYXdhLmpwIiwieXVnYXdhcmEua2FuYWdhd2EuanAiLCJ6YW1hLmthbmFnYXdhLmpwIiwienVzaGkua2FuYWdhd2EuanAiLCJha2kua29jaGkuanAiLCJnZWlzZWkua29jaGkuanAiLCJo''@;'; + put 'put ''aWRha2Eua29jaGkuanAiLCJoaWdhc2hpdHN1bm8ua29jaGkuanAiLCJpbm8ua29jaGkuanAiLCJrYWdhbWkua29jaGkuanAiLCJrYW1pLmtvY2hpLmpwIiwia2l0YWdhd2Eua29jaGkuanAiLCJrb2NoaS5rb2NoaS5qcCIsIm1paGFyYS5rb2NoaS5qcCIsIm1vdG95YW1hLmtvY2hpLmpwIiwi''@;'; + put 'put ''bXVyb3RvLmtvY2hpLmpwIiwibmFoYXJpLmtvY2hpLmpwIiwibmFrYW11cmEua29jaGkuanAiLCJuYW5rb2t1LmtvY2hpLmpwIiwibmlzaGl0b3NhLmtvY2hpLmpwIiwibml5b2RvZ2F3YS5rb2NoaS5qcCIsIm9jaGkua29jaGkuanAiLCJva2F3YS5rb2NoaS5qcCIsIm90b3lvLmtvY2hpLmpw''@;'; + put 'put ''Iiwib3RzdWtpLmtvY2hpLmpwIiwic2FrYXdhLmtvY2hpLmpwIiwic3VrdW1vLmtvY2hpLmpwIiwic3VzYWtpLmtvY2hpLmpwIiwidG9zYS5rb2NoaS5qcCIsInRvc2FzaGltaXp1LmtvY2hpLmpwIiwidG95by5rb2NoaS5qcCIsInRzdW5vLmtvY2hpLmpwIiwidW1hamkua29jaGkuanAiLCJ5''@;'; + put 'put ''YXN1ZGEua29jaGkuanAiLCJ5dXN1aGFyYS5rb2NoaS5qcCIsImFtYWt1c2Eua3VtYW1vdG8uanAiLCJhcmFvLmt1bWFtb3RvLmpwIiwiYXNvLmt1bWFtb3RvLmpwIiwiY2hveW8ua3VtYW1vdG8uanAiLCJneW9rdXRvLmt1bWFtb3RvLmpwIiwia2FtaWFtYWt1c2Eua3VtYW1vdG8uanAiLCJr''@;'; + put 'put ''aWt1Y2hpLmt1bWFtb3RvLmpwIiwia3VtYW1vdG8ua3VtYW1vdG8uanAiLCJtYXNoaWtpLmt1bWFtb3RvLmpwIiwibWlmdW5lLmt1bWFtb3RvLmpwIiwibWluYW1hdGEua3VtYW1vdG8uanAiLCJtaW5hbWlvZ3VuaS5rdW1hbW90by5qcCIsIm5hZ2FzdS5rdW1hbW90by5qcCIsIm5pc2hpaGFy''@;'; + put 'put ''YS5rdW1hbW90by5qcCIsIm9ndW5pLmt1bWFtb3RvLmpwIiwib3p1Lmt1bWFtb3RvLmpwIiwic3Vtb3RvLmt1bWFtb3RvLmpwIiwidGFrYW1vcmkua3VtYW1vdG8uanAiLCJ1a2kua3VtYW1vdG8uanAiLCJ1dG8ua3VtYW1vdG8uanAiLCJ5YW1hZ2Eua3VtYW1vdG8uanAiLCJ5YW1hdG8ua3Vt''@;'; + put 'put ''YW1vdG8uanAiLCJ5YXRzdXNoaXJvLmt1bWFtb3RvLmpwIiwiYXlhYmUua3lvdG8uanAiLCJmdWt1Y2hpeWFtYS5reW90by5qcCIsImhpZ2FzaGl5YW1hLmt5b3RvLmpwIiwiaWRlLmt5b3RvLmpwIiwiaW5lLmt5b3RvLmpwIiwiam95by5reW90by5qcCIsImthbWVva2Eua3lvdG8uanAiLCJr''@;'; + put 'put ''YW1vLmt5b3RvLmpwIiwia2l0YS5reW90by5qcCIsImtpenUua3lvdG8uanAiLCJrdW1peWFtYS5reW90by5qcCIsImt5b3RhbWJhLmt5b3RvLmpwIiwia3lvdGFuYWJlLmt5b3RvLmpwIiwia3lvdGFuZ28ua3lvdG8uanAiLCJtYWl6dXJ1Lmt5b3RvLmpwIiwibWluYW1pLmt5b3RvLmpwIiwi''@;'; + put 'put ''bWluYW1peWFtYXNoaXJvLmt5b3RvLmpwIiwibWl5YXp1Lmt5b3RvLmpwIiwibXVrby5reW90by5qcCIsIm5hZ2Fva2FreW8ua3lvdG8uanAiLCJuYWthZ3lvLmt5b3RvLmpwIiwibmFudGFuLmt5b3RvLmpwIiwib3lhbWF6YWtpLmt5b3RvLmpwIiwic2FreW8ua3lvdG8uanAiLCJzZWlrYS5r''@;'; + put 'put ''eW90by5qcCIsInRhbmFiZS5reW90by5qcCIsInVqaS5reW90by5qcCIsInVqaXRhd2FyYS5reW90by5qcCIsIndhenVrYS5reW90by5qcCIsInlhbWFzaGluYS5reW90by5qcCIsInlhd2F0YS5reW90by5qcCIsImFzYWhpLm1pZS5qcCIsImluYWJlLm1pZS5qcCIsImlzZS5taWUuanAiLCJr''@;'; + put 'put ''YW1leWFtYS5taWUuanAiLCJrYXdhZ29lLm1pZS5qcCIsImtpaG8ubWllLmpwIiwia2lzb3Nha2kubWllLmpwIiwia2l3YS5taWUuanAiLCJrb21vbm8ubWllLmpwIiwia3VtYW5vLm1pZS5qcCIsImt1d2FuYS5taWUuanAiLCJtYXRzdXNha2EubWllLmpwIiwibWVpd2EubWllLmpwIiwibWlo''@;'; + put 'put ''YW1hLm1pZS5qcCIsIm1pbmFtaWlzZS5taWUuanAiLCJtaXN1Z2kubWllLmpwIiwibWl5YW1hLm1pZS5qcCIsIm5hYmFyaS5taWUuanAiLCJzaGltYS5taWUuanAiLCJzdXp1a2EubWllLmpwIiwidGFkby5taWUuanAiLCJ0YWlraS5taWUuanAiLCJ0YWtpLm1pZS5qcCIsInRhbWFraS5taWUu''@;'; + put 'put ''anAiLCJ0b2JhLm1pZS5qcCIsInRzdS5taWUuanAiLCJ1ZG9uby5taWUuanAiLCJ1cmVzaGluby5taWUuanAiLCJ3YXRhcmFpLm1pZS5qcCIsInlva2thaWNoaS5taWUuanAiLCJmdXJ1a2F3YS5taXlhZ2kuanAiLCJoaWdhc2hpbWF0c3VzaGltYS5taXlhZ2kuanAiLCJpc2hpbm9tYWtpLm1p''@;'; + put 'put ''eWFnaS5qcCIsIml3YW51bWEubWl5YWdpLmpwIiwia2FrdWRhLm1peWFnaS5qcCIsImthbWkubWl5YWdpLmpwIiwia2F3YXNha2kubWl5YWdpLmpwIiwibWFydW1vcmkubWl5YWdpLmpwIiwibWF0c3VzaGltYS5taXlhZ2kuanAiLCJtaW5hbWlzYW5yaWt1Lm1peWFnaS5qcCIsIm1pc2F0by5t''@;'; + put 'put ''aXlhZ2kuanAiLCJtdXJhdGEubWl5YWdpLmpwIiwibmF0b3JpLm1peWFnaS5qcCIsIm9nYXdhcmEubWl5YWdpLmpwIiwib2hpcmEubWl5YWdpLmpwIiwib25hZ2F3YS5taXlhZ2kuanAiLCJvc2FraS5taXlhZ2kuanAiLCJyaWZ1Lm1peWFnaS5qcCIsInNlbWluZS5taXlhZ2kuanAiLCJzaGli''@;'; + put 'put ''YXRhLm1peWFnaS5qcCIsInNoaWNoaWthc2h1a3UubWl5YWdpLmpwIiwic2hpa2FtYS5taXlhZ2kuanAiLCJzaGlvZ2FtYS5taXlhZ2kuanAiLCJzaGlyb2lzaGkubWl5YWdpLmpwIiwidGFnYWpvLm1peWFnaS5qcCIsInRhaXdhLm1peWFnaS5qcCIsInRvbWUubWl5YWdpLmpwIiwidG9taXlh''@;'; + put 'put ''Lm1peWFnaS5qcCIsIndha3V5YS5taXlhZ2kuanAiLCJ3YXRhcmkubWl5YWdpLmpwIiwieWFtYW1vdG8ubWl5YWdpLmpwIiwiemFvLm1peWFnaS5qcCIsImF5YS5taXlhemFraS5qcCIsImViaW5vLm1peWF6YWtpLmpwIiwiZ29rYXNlLm1peWF6YWtpLmpwIiwiaHl1Z2EubWl5YXpha2kuanAi''@;'; + put 'put ''LCJrYWRvZ2F3YS5taXlhemFraS5qcCIsImthd2FtaW5hbWkubWl5YXpha2kuanAiLCJraWpvLm1peWF6YWtpLmpwIiwia2l0YWdhd2EubWl5YXpha2kuanAiLCJraXRha2F0YS5taXlhemFraS5qcCIsImtpdGF1cmEubWl5YXpha2kuanAiLCJrb2JheWFzaGkubWl5YXpha2kuanAiLCJrdW5p''@;'; + put 'put ''dG9taS5taXlhemFraS5qcCIsImt1c2hpbWEubWl5YXpha2kuanAiLCJtaW1hdGEubWl5YXpha2kuanAiLCJtaXlha29ub2pvLm1peWF6YWtpLmpwIiwibWl5YXpha2kubWl5YXpha2kuanAiLCJtb3JvdHN1a2EubWl5YXpha2kuanAiLCJuaWNoaW5hbi5taXlhemFraS5qcCIsIm5pc2hpbWVy''@;'; + put 'put ''YS5taXlhemFraS5qcCIsIm5vYmVva2EubWl5YXpha2kuanAiLCJzYWl0by5taXlhemFraS5qcCIsInNoaWliYS5taXlhemFraS5qcCIsInNoaW50b21pLm1peWF6YWtpLmpwIiwidGFrYWhhcnUubWl5YXpha2kuanAiLCJ0YWthbmFiZS5taXlhemFraS5qcCIsInRha2F6YWtpLm1peWF6YWtp''@;'; + put 'put ''LmpwIiwidHN1bm8ubWl5YXpha2kuanAiLCJhY2hpLm5hZ2Fuby5qcCIsImFnZW1hdHN1Lm5hZ2Fuby5qcCIsImFuYW4ubmFnYW5vLmpwIiwiYW9raS5uYWdhbm8uanAiLCJhc2FoaS5uYWdhbm8uanAiLCJhenVtaW5vLm5hZ2Fuby5qcCIsImNoaWt1aG9rdS5uYWdhbm8uanAiLCJjaGlrdW1h''@;'; + put 'put ''Lm5hZ2Fuby5qcCIsImNoaW5vLm5hZ2Fuby5qcCIsImZ1amltaS5uYWdhbm8uanAiLCJoYWt1YmEubmFnYW5vLmpwIiwiaGFyYS5uYWdhbm8uanAiLCJoaXJheWEubmFnYW5vLmpwIiwiaWlkYS5uYWdhbm8uanAiLCJpaWppbWEubmFnYW5vLmpwIiwiaWl5YW1hLm5hZ2Fuby5qcCIsImlpenVu''@;'; + put 'put ''YS5uYWdhbm8uanAiLCJpa2VkYS5uYWdhbm8uanAiLCJpa3VzYWthLm5hZ2Fuby5qcCIsImluYS5uYWdhbm8uanAiLCJrYXJ1aXphd2EubmFnYW5vLmpwIiwia2F3YWthbWkubmFnYW5vLmpwIiwia2lzby5uYWdhbm8uanAiLCJraXNvZnVrdXNoaW1hLm5hZ2Fuby5qcCIsImtpdGFhaWtpLm5h''@;'; + put 'put ''Z2Fuby5qcCIsImtvbWFnYW5lLm5hZ2Fuby5qcCIsImtvbW9yby5uYWdhbm8uanAiLCJtYXRzdWthd2EubmFnYW5vLmpwIiwibWF0c3Vtb3RvLm5hZ2Fuby5qcCIsIm1pYXNhLm5hZ2Fuby5qcCIsIm1pbmFtaWFpa2kubmFnYW5vLmpwIiwibWluYW1pbWFraS5uYWdhbm8uanAiLCJtaW5hbWlt''@;'; + put 'put ''aW5vd2EubmFnYW5vLmpwIiwibWlub3dhLm5hZ2Fuby5qcCIsIm1peWFkYS5uYWdhbm8uanAiLCJtaXlvdGEubmFnYW5vLmpwIiwibW9jaGl6dWtpLm5hZ2Fuby5qcCIsIm5hZ2Fuby5uYWdhbm8uanAiLCJuYWdhd2EubmFnYW5vLmpwIiwibmFnaXNvLm5hZ2Fuby5qcCIsIm5ha2FnYXdhLm5h''@;'; + put 'put ''Z2Fuby5qcCIsIm5ha2Fuby5uYWdhbm8uanAiLCJub3phd2FvbnNlbi5uYWdhbm8uanAiLCJvYnVzZS5uYWdhbm8uanAiLCJvZ2F3YS5uYWdhbm8uanAiLCJva2F5YS5uYWdhbm8uanAiLCJvbWFjaGkubmFnYW5vLmpwIiwib21pLm5hZ2Fuby5qcCIsIm9va3V3YS5uYWdhbm8uanAiLCJvb3No''@;'; + put 'put ''aWthLm5hZ2Fuby5qcCIsIm90YWtpLm5hZ2Fuby5qcCIsIm90YXJpLm5hZ2Fuby5qcCIsInNha2FlLm5hZ2Fuby5qcCIsInNha2FraS5uYWdhbm8uanAiLCJzYWt1Lm5hZ2Fuby5qcCIsInNha3Voby5uYWdhbm8uanAiLCJzaGltb3N1d2EubmFnYW5vLmpwIiwic2hpbmFub21hY2hpLm5hZ2Fu''@;'; + put 'put ''by5qcCIsInNoaW9qaXJpLm5hZ2Fuby5qcCIsInN1d2EubmFnYW5vLmpwIiwic3V6YWthLm5hZ2Fuby5qcCIsInRha2FnaS5uYWdhbm8uanAiLCJ0YWthbW9yaS5uYWdhbm8uanAiLCJ0YWtheWFtYS5uYWdhbm8uanAiLCJ0YXRlc2hpbmEubmFnYW5vLmpwIiwidGF0c3Vuby5uYWdhbm8uanAi''@;'; + put 'put ''LCJ0b2dha3VzaGkubmFnYW5vLmpwIiwidG9ndXJhLm5hZ2Fuby5qcCIsInRvbWkubmFnYW5vLmpwIiwidWVkYS5uYWdhbm8uanAiLCJ3YWRhLm5hZ2Fuby5qcCIsInlhbWFnYXRhLm5hZ2Fuby5qcCIsInlhbWFub3VjaGkubmFnYW5vLmpwIiwieWFzYWthLm5hZ2Fuby5qcCIsInlhc3Vva2Eu''@;'; + put 'put ''bmFnYW5vLmpwIiwiY2hpaml3YS5uYWdhc2FraS5qcCIsImZ1dHN1Lm5hZ2FzYWtpLmpwIiwiZ290by5uYWdhc2FraS5qcCIsImhhc2FtaS5uYWdhc2FraS5qcCIsImhpcmFkby5uYWdhc2FraS5qcCIsImlraS5uYWdhc2FraS5qcCIsImlzYWhheWEubmFnYXNha2kuanAiLCJrYXdhdGFuYS5u''@;'; + put 'put ''YWdhc2FraS5qcCIsImt1Y2hpbm90c3UubmFnYXNha2kuanAiLCJtYXRzdXVyYS5uYWdhc2FraS5qcCIsIm5hZ2FzYWtpLm5hZ2FzYWtpLmpwIiwib2JhbWEubmFnYXNha2kuanAiLCJvbXVyYS5uYWdhc2FraS5qcCIsIm9zZXRvLm5hZ2FzYWtpLmpwIiwic2Fpa2FpLm5hZ2FzYWtpLmpwIiwi''@;'; + put 'put ''c2FzZWJvLm5hZ2FzYWtpLmpwIiwic2VpaGkubmFnYXNha2kuanAiLCJzaGltYWJhcmEubmFnYXNha2kuanAiLCJzaGlua2FtaWdvdG8ubmFnYXNha2kuanAiLCJ0b2dpdHN1Lm5hZ2FzYWtpLmpwIiwidHN1c2hpbWEubmFnYXNha2kuanAiLCJ1bnplbi5uYWdhc2FraS5qcCIsImFuZG8ubmFy''@;'; + put 'put ''YS5qcCIsImdvc2UubmFyYS5qcCIsImhlZ3VyaS5uYXJhLmpwIiwiaGlnYXNoaXlvc2hpbm8ubmFyYS5qcCIsImlrYXJ1Z2EubmFyYS5qcCIsImlrb21hLm5hcmEuanAiLCJrYW1pa2l0YXlhbWEubmFyYS5qcCIsImthbm1ha2kubmFyYS5qcCIsImthc2hpYmEubmFyYS5qcCIsImthc2hpaGFy''@;'; + put 'put ''YS5uYXJhLmpwIiwia2F0c3VyYWdpLm5hcmEuanAiLCJrYXdhaS5uYXJhLmpwIiwia2F3YWthbWkubmFyYS5qcCIsImthd2FuaXNoaS5uYXJhLmpwIiwia29yeW8ubmFyYS5qcCIsImt1cm90YWtpLm5hcmEuanAiLCJtaXRzdWUubmFyYS5qcCIsIm1peWFrZS5uYXJhLmpwIiwibmFyYS5uYXJh''@;'; + put 'put ''LmpwIiwibm9zZWdhd2EubmFyYS5qcCIsIm9qaS5uYXJhLmpwIiwib3VkYS5uYXJhLmpwIiwib3lvZG8ubmFyYS5qcCIsInNha3VyYWkubmFyYS5qcCIsInNhbmdvLm5hcmEuanAiLCJzaGltb2ljaGkubmFyYS5qcCIsInNoaW1va2l0YXlhbWEubmFyYS5qcCIsInNoaW5qby5uYXJhLmpwIiwi''@;'; + put 'put ''c29uaS5uYXJhLmpwIiwidGFrYXRvcmkubmFyYS5qcCIsInRhd2FyYW1vdG8ubmFyYS5qcCIsInRlbmthd2EubmFyYS5qcCIsInRlbnJpLm5hcmEuanAiLCJ1ZGEubmFyYS5qcCIsInlhbWF0b2tvcml5YW1hLm5hcmEuanAiLCJ5YW1hdG90YWthZGEubmFyYS5qcCIsInlhbWF6b2UubmFyYS5q''@;'; + put 'put ''cCIsInlvc2hpbm8ubmFyYS5qcCIsImFnYS5uaWlnYXRhLmpwIiwiYWdhbm8ubmlpZ2F0YS5qcCIsImdvc2VuLm5paWdhdGEuanAiLCJpdG9pZ2F3YS5uaWlnYXRhLmpwIiwiaXp1bW96YWtpLm5paWdhdGEuanAiLCJqb2V0c3UubmlpZ2F0YS5qcCIsImthbW8ubmlpZ2F0YS5qcCIsImthcml3''@;'; + put 'put ''YS5uaWlnYXRhLmpwIiwia2FzaGl3YXpha2kubmlpZ2F0YS5qcCIsIm1pbmFtaXVvbnVtYS5uaWlnYXRhLmpwIiwibWl0c3VrZS5uaWlnYXRhLmpwIiwibXVpa2EubmlpZ2F0YS5qcCIsIm11cmFrYW1pLm5paWdhdGEuanAiLCJteW9rby5uaWlnYXRhLmpwIiwibmFnYW9rYS5uaWlnYXRhLmpw''@;'; + put 'put ''IiwibmlpZ2F0YS5uaWlnYXRhLmpwIiwib2ppeWEubmlpZ2F0YS5qcCIsIm9taS5uaWlnYXRhLmpwIiwic2Fkby5uaWlnYXRhLmpwIiwic2Fuam8ubmlpZ2F0YS5qcCIsInNlaXJvLm5paWdhdGEuanAiLCJzZWlyb3UubmlpZ2F0YS5qcCIsInNla2lrYXdhLm5paWdhdGEuanAiLCJzaGliYXRh''@;'; + put 'put ''Lm5paWdhdGEuanAiLCJ0YWdhbWkubmlpZ2F0YS5qcCIsInRhaW5haS5uaWlnYXRhLmpwIiwidG9jaGlvLm5paWdhdGEuanAiLCJ0b2thbWFjaGkubmlpZ2F0YS5qcCIsInRzdWJhbWUubmlpZ2F0YS5qcCIsInRzdW5hbi5uaWlnYXRhLmpwIiwidW9udW1hLm5paWdhdGEuanAiLCJ5YWhpa28u''@;'; + put 'put ''bmlpZ2F0YS5qcCIsInlvaXRhLm5paWdhdGEuanAiLCJ5dXphd2EubmlpZ2F0YS5qcCIsImJlcHB1Lm9pdGEuanAiLCJidW5nb29uby5vaXRhLmpwIiwiYnVuZ290YWthZGEub2l0YS5qcCIsImhhc2FtYS5vaXRhLmpwIiwiaGlqaS5vaXRhLmpwIiwiaGltZXNoaW1hLm9pdGEuanAiLCJoaXRh''@;'; + put 'put ''Lm9pdGEuanAiLCJrYW1pdHN1ZS5vaXRhLmpwIiwia29rb25vZS5vaXRhLmpwIiwia3VqdS5vaXRhLmpwIiwia3VuaXNha2kub2l0YS5qcCIsImt1c3Uub2l0YS5qcCIsIm9pdGEub2l0YS5qcCIsInNhaWtpLm9pdGEuanAiLCJ0YWtldGEub2l0YS5qcCIsInRzdWt1bWkub2l0YS5qcCIsInVz''@;'; + put 'put ''YS5vaXRhLmpwIiwidXN1a2kub2l0YS5qcCIsInl1ZnUub2l0YS5qcCIsImFrYWl3YS5va2F5YW1hLmpwIiwiYXNha3VjaGkub2theWFtYS5qcCIsImJpemVuLm9rYXlhbWEuanAiLCJoYXlhc2hpbWEub2theWFtYS5qcCIsImliYXJhLm9rYXlhbWEuanAiLCJrYWdhbWluby5va2F5YW1hLmpw''@;'; + put 'put ''Iiwia2FzYW9rYS5va2F5YW1hLmpwIiwia2liaWNodW8ub2theWFtYS5qcCIsImt1bWVuYW4ub2theWFtYS5qcCIsImt1cmFzaGlraS5va2F5YW1hLmpwIiwibWFuaXdhLm9rYXlhbWEuanAiLCJtaXNha2kub2theWFtYS5qcCIsIm5hZ2kub2theWFtYS5qcCIsIm5paW1pLm9rYXlhbWEuanAi''@;'; + put 'put ''LCJuaXNoaWF3YWt1cmEub2theWFtYS5qcCIsIm9rYXlhbWEub2theWFtYS5qcCIsInNhdG9zaG8ub2theWFtYS5qcCIsInNldG91Y2hpLm9rYXlhbWEuanAiLCJzaGluam8ub2theWFtYS5qcCIsInNob28ub2theWFtYS5qcCIsInNvamEub2theWFtYS5qcCIsInRha2FoYXNoaS5va2F5YW1h''@;'; + put 'put ''LmpwIiwidGFtYW5vLm9rYXlhbWEuanAiLCJ0c3V5YW1hLm9rYXlhbWEuanAiLCJ3YWtlLm9rYXlhbWEuanAiLCJ5YWthZ2Uub2theWFtYS5qcCIsImFndW5pLm9raW5hd2EuanAiLCJnaW5vd2FuLm9raW5hd2EuanAiLCJnaW5vemEub2tpbmF3YS5qcCIsImd1c2hpa2FtaS5va2luYXdhLmpw''@;'; + put 'put ''IiwiaGFlYmFydS5va2luYXdhLmpwIiwiaGlnYXNoaS5va2luYXdhLmpwIiwiaGlyYXJhLm9raW5hd2EuanAiLCJpaGV5YS5va2luYXdhLmpwIiwiaXNoaWdha2kub2tpbmF3YS5qcCIsImlzaGlrYXdhLm9raW5hd2EuanAiLCJpdG9tYW4ub2tpbmF3YS5qcCIsIml6ZW5hLm9raW5hd2EuanAi''@;'; + put 'put ''LCJrYWRlbmEub2tpbmF3YS5qcCIsImtpbi5va2luYXdhLmpwIiwia2l0YWRhaXRvLm9raW5hd2EuanAiLCJraXRhbmFrYWd1c3VrdS5va2luYXdhLmpwIiwia3VtZWppbWEub2tpbmF3YS5qcCIsImt1bmlnYW1pLm9raW5hd2EuanAiLCJtaW5hbWlkYWl0by5va2luYXdhLmpwIiwibW90b2J1''@;'; + put 'put ''Lm9raW5hd2EuanAiLCJuYWdvLm9raW5hd2EuanAiLCJuYWhhLm9raW5hd2EuanAiLCJuYWthZ3VzdWt1Lm9raW5hd2EuanAiLCJuYWtpamluLm9raW5hd2EuanAiLCJuYW5qby5va2luYXdhLmpwIiwibmlzaGloYXJhLm9raW5hd2EuanAiLCJvZ2ltaS5va2luYXdhLmpwIiwib2tpbmF3YS5v''@;'; + put 'put ''a2luYXdhLmpwIiwib25uYS5va2luYXdhLmpwIiwic2hpbW9qaS5va2luYXdhLmpwIiwidGFrZXRvbWkub2tpbmF3YS5qcCIsInRhcmFtYS5va2luYXdhLmpwIiwidG9rYXNoaWtpLm9raW5hd2EuanAiLCJ0b21pZ3VzdWt1Lm9raW5hd2EuanAiLCJ0b25ha2kub2tpbmF3YS5qcCIsInVyYXNv''@;'; + put 'put ''ZS5va2luYXdhLmpwIiwidXJ1bWEub2tpbmF3YS5qcCIsInlhZXNlLm9raW5hd2EuanAiLCJ5b21pdGFuLm9raW5hd2EuanAiLCJ5b25hYmFydS5va2luYXdhLmpwIiwieW9uYWd1bmkub2tpbmF3YS5qcCIsInphbWFtaS5va2luYXdhLmpwIiwiYWJlbm8ub3Nha2EuanAiLCJjaGloYXlhYWth''@;'; + put 'put ''c2FrYS5vc2FrYS5qcCIsImNodW8ub3Nha2EuanAiLCJkYWl0by5vc2FrYS5qcCIsImZ1amlpZGVyYS5vc2FrYS5qcCIsImhhYmlraW5vLm9zYWthLmpwIiwiaGFubmFuLm9zYWthLmpwIiwiaGlnYXNoaW9zYWthLm9zYWthLmpwIiwiaGlnYXNoaXN1bWl5b3NoaS5vc2FrYS5qcCIsImhpZ2Fz''@;'; + put 'put ''aGl5b2RvZ2F3YS5vc2FrYS5qcCIsImhpcmFrYXRhLm9zYWthLmpwIiwiaWJhcmFraS5vc2FrYS5qcCIsImlrZWRhLm9zYWthLmpwIiwiaXp1bWkub3Nha2EuanAiLCJpenVtaW90c3Uub3Nha2EuanAiLCJpenVtaXNhbm8ub3Nha2EuanAiLCJrYWRvbWEub3Nha2EuanAiLCJrYWl6dWthLm9z''@;'; + put 'put ''YWthLmpwIiwia2FuYW4ub3Nha2EuanAiLCJrYXNoaXdhcmEub3Nha2EuanAiLCJrYXRhbm8ub3Nha2EuanAiLCJrYXdhY2hpbmFnYW5vLm9zYWthLmpwIiwia2lzaGl3YWRhLm9zYWthLmpwIiwia2l0YS5vc2FrYS5qcCIsImt1bWF0b3JpLm9zYWthLmpwIiwibWF0c3ViYXJhLm9zYWthLmpw''@;'; + put 'put ''IiwibWluYXRvLm9zYWthLmpwIiwibWlub2gub3Nha2EuanAiLCJtaXNha2kub3Nha2EuanAiLCJtb3JpZ3VjaGkub3Nha2EuanAiLCJuZXlhZ2F3YS5vc2FrYS5qcCIsIm5pc2hpLm9zYWthLmpwIiwibm9zZS5vc2FrYS5qcCIsIm9zYWthc2F5YW1hLm9zYWthLmpwIiwic2FrYWkub3Nha2Eu''@;'; + put 'put ''anAiLCJzYXlhbWEub3Nha2EuanAiLCJzZW5uYW4ub3Nha2EuanAiLCJzZXR0c3Uub3Nha2EuanAiLCJzaGlqb25hd2F0ZS5vc2FrYS5qcCIsInNoaW1hbW90by5vc2FrYS5qcCIsInN1aXRhLm9zYWthLmpwIiwidGFkYW9rYS5vc2FrYS5qcCIsInRhaXNoaS5vc2FrYS5qcCIsInRhamlyaS5v''@;'; + put 'put ''c2FrYS5qcCIsInRha2Fpc2hpLm9zYWthLmpwIiwidGFrYXRzdWtpLm9zYWthLmpwIiwidG9uZGFiYXlhc2hpLm9zYWthLmpwIiwidG95b25ha2Eub3Nha2EuanAiLCJ0b3lvbm8ub3Nha2EuanAiLCJ5YW8ub3Nha2EuanAiLCJhcmlha2Uuc2FnYS5qcCIsImFyaXRhLnNhZ2EuanAiLCJmdWt1''@;'; + put 'put ''ZG9taS5zYWdhLmpwIiwiZ2Vua2FpLnNhZ2EuanAiLCJoYW1hdGFtYS5zYWdhLmpwIiwiaGl6ZW4uc2FnYS5qcCIsImltYXJpLnNhZ2EuanAiLCJrYW1pbWluZS5zYWdhLmpwIiwia2FuemFraS5zYWdhLmpwIiwia2FyYXRzdS5zYWdhLmpwIiwia2FzaGltYS5zYWdhLmpwIiwia2l0YWdhdGEu''@;'; + put 'put ''c2FnYS5qcCIsImtpdGFoYXRhLnNhZ2EuanAiLCJraXlhbWEuc2FnYS5qcCIsImtvdWhva3Uuc2FnYS5qcCIsImt5dXJhZ2kuc2FnYS5qcCIsIm5pc2hpYXJpdGEuc2FnYS5qcCIsIm9naS5zYWdhLmpwIiwib21hY2hpLnNhZ2EuanAiLCJvdWNoaS5zYWdhLmpwIiwic2FnYS5zYWdhLmpwIiwi''@;'; + put 'put ''c2hpcm9pc2hpLnNhZ2EuanAiLCJ0YWt1LnNhZ2EuanAiLCJ0YXJhLnNhZ2EuanAiLCJ0b3N1LnNhZ2EuanAiLCJ5b3NoaW5vZ2FyaS5zYWdhLmpwIiwiYXJha2F3YS5zYWl0YW1hLmpwIiwiYXNha2Euc2FpdGFtYS5qcCIsImNoaWNoaWJ1LnNhaXRhbWEuanAiLCJmdWppbWkuc2FpdGFtYS5q''@;'; + put 'put ''cCIsImZ1amltaW5vLnNhaXRhbWEuanAiLCJmdWtheWEuc2FpdGFtYS5qcCIsImhhbm5vLnNhaXRhbWEuanAiLCJoYW55dS5zYWl0YW1hLmpwIiwiaGFzdWRhLnNhaXRhbWEuanAiLCJoYXRvZ2F5YS5zYWl0YW1hLmpwIiwiaGF0b3lhbWEuc2FpdGFtYS5qcCIsImhpZGFrYS5zYWl0YW1hLmpw''@;'; + put 'put ''IiwiaGlnYXNoaWNoaWNoaWJ1LnNhaXRhbWEuanAiLCJoaWdhc2hpbWF0c3V5YW1hLnNhaXRhbWEuanAiLCJob25qby5zYWl0YW1hLmpwIiwiaW5hLnNhaXRhbWEuanAiLCJpcnVtYS5zYWl0YW1hLmpwIiwiaXdhdHN1a2kuc2FpdGFtYS5qcCIsImthbWlpenVtaS5zYWl0YW1hLmpwIiwia2Ft''@;'; + put 'put ''aWthd2Euc2FpdGFtYS5qcCIsImthbWlzYXRvLnNhaXRhbWEuanAiLCJrYXN1a2FiZS5zYWl0YW1hLmpwIiwia2F3YWdvZS5zYWl0YW1hLmpwIiwia2F3YWd1Y2hpLnNhaXRhbWEuanAiLCJrYXdhamltYS5zYWl0YW1hLmpwIiwia2F6by5zYWl0YW1hLmpwIiwia2l0YW1vdG8uc2FpdGFtYS5q''@;'; + put 'put ''cCIsImtvc2hpZ2F5YS5zYWl0YW1hLmpwIiwia291bm9zdS5zYWl0YW1hLmpwIiwia3VraS5zYWl0YW1hLmpwIiwia3VtYWdheWEuc2FpdGFtYS5qcCIsIm1hdHN1YnVzaGkuc2FpdGFtYS5qcCIsIm1pbmFuby5zYWl0YW1hLmpwIiwibWlzYXRvLnNhaXRhbWEuanAiLCJtaXlhc2hpcm8uc2Fp''@;'; + put 'put ''dGFtYS5qcCIsIm1peW9zaGkuc2FpdGFtYS5qcCIsIm1vcm95YW1hLnNhaXRhbWEuanAiLCJuYWdhdG9yby5zYWl0YW1hLmpwIiwibmFtZWdhd2Euc2FpdGFtYS5qcCIsIm5paXphLnNhaXRhbWEuanAiLCJvZ2Fuby5zYWl0YW1hLmpwIiwib2dhd2Euc2FpdGFtYS5qcCIsIm9nb3NlLnNhaXRh''@;'; + put 'put ''bWEuanAiLCJva2VnYXdhLnNhaXRhbWEuanAiLCJvbWl5YS5zYWl0YW1hLmpwIiwib3Rha2kuc2FpdGFtYS5qcCIsInJhbnphbi5zYWl0YW1hLmpwIiwicnlva2FtaS5zYWl0YW1hLmpwIiwic2FpdGFtYS5zYWl0YW1hLmpwIiwic2FrYWRvLnNhaXRhbWEuanAiLCJzYXR0ZS5zYWl0YW1hLmpw''@;'; + put 'put ''Iiwic2F5YW1hLnNhaXRhbWEuanAiLCJzaGlraS5zYWl0YW1hLmpwIiwic2hpcmFva2Euc2FpdGFtYS5qcCIsInNva2Euc2FpdGFtYS5qcCIsInN1Z2l0by5zYWl0YW1hLmpwIiwidG9kYS5zYWl0YW1hLmpwIiwidG9raWdhd2Euc2FpdGFtYS5qcCIsInRva29yb3phd2Euc2FpdGFtYS5qcCIs''@;'; + put 'put ''InRzdXJ1Z2FzaGltYS5zYWl0YW1hLmpwIiwidXJhd2Euc2FpdGFtYS5qcCIsIndhcmFiaS5zYWl0YW1hLmpwIiwieWFzaGlvLnNhaXRhbWEuanAiLCJ5b2tvemUuc2FpdGFtYS5qcCIsInlvbm8uc2FpdGFtYS5qcCIsInlvcmlpLnNhaXRhbWEuanAiLCJ5b3NoaWRhLnNhaXRhbWEuanAiLCJ5''@;'; + put 'put ''b3NoaWthd2Euc2FpdGFtYS5qcCIsInlvc2hpbWkuc2FpdGFtYS5qcCIsImFpc2hvLnNoaWdhLmpwIiwiZ2Ftby5zaGlnYS5qcCIsImhpZ2FzaGlvbWkuc2hpZ2EuanAiLCJoaWtvbmUuc2hpZ2EuanAiLCJrb2thLnNoaWdhLmpwIiwia29uYW4uc2hpZ2EuanAiLCJrb3NlaS5zaGlnYS5qcCIs''@;'; + put 'put ''ImtvdG8uc2hpZ2EuanAiLCJrdXNhdHN1LnNoaWdhLmpwIiwibWFpYmFyYS5zaGlnYS5qcCIsIm1vcml5YW1hLnNoaWdhLmpwIiwibmFnYWhhbWEuc2hpZ2EuanAiLCJuaXNoaWF6YWkuc2hpZ2EuanAiLCJub3RvZ2F3YS5zaGlnYS5qcCIsIm9taWhhY2hpbWFuLnNoaWdhLmpwIiwib3RzdS5z''@;'; + put 'put ''aGlnYS5qcCIsInJpdHRvLnNoaWdhLmpwIiwicnl1b2guc2hpZ2EuanAiLCJ0YWthc2hpbWEuc2hpZ2EuanAiLCJ0YWthdHN1a2kuc2hpZ2EuanAiLCJ0b3JhaGltZS5zaGlnYS5qcCIsInRveW9zYXRvLnNoaWdhLmpwIiwieWFzdS5zaGlnYS5qcCIsImFrYWdpLnNoaW1hbmUuanAiLCJhbWEu''@;'; + put 'put ''c2hpbWFuZS5qcCIsImdvdHN1LnNoaW1hbmUuanAiLCJoYW1hZGEuc2hpbWFuZS5qcCIsImhpZ2FzaGlpenVtby5zaGltYW5lLmpwIiwiaGlrYXdhLnNoaW1hbmUuanAiLCJoaWtpbWkuc2hpbWFuZS5qcCIsIml6dW1vLnNoaW1hbmUuanAiLCJrYWtpbm9raS5zaGltYW5lLmpwIiwibWFzdWRh''@;'; + put 'put ''LnNoaW1hbmUuanAiLCJtYXRzdWUuc2hpbWFuZS5qcCIsIm1pc2F0by5zaGltYW5lLmpwIiwibmlzaGlub3NoaW1hLnNoaW1hbmUuanAiLCJvaGRhLnNoaW1hbmUuanAiLCJva2lub3NoaW1hLnNoaW1hbmUuanAiLCJva3VpenVtby5zaGltYW5lLmpwIiwic2hpbWFuZS5zaGltYW5lLmpwIiwi''@;'; + put 'put ''dGFtYXl1LnNoaW1hbmUuanAiLCJ0c3V3YW5vLnNoaW1hbmUuanAiLCJ1bm5hbi5zaGltYW5lLmpwIiwieWFrdW1vLnNoaW1hbmUuanAiLCJ5YXN1Z2kuc2hpbWFuZS5qcCIsInlhdHN1a2Euc2hpbWFuZS5qcCIsImFyYWkuc2hpenVva2EuanAiLCJhdGFtaS5zaGl6dW9rYS5qcCIsImZ1amku''@;'; + put 'put ''c2hpenVva2EuanAiLCJmdWppZWRhLnNoaXp1b2thLmpwIiwiZnVqaWthd2Euc2hpenVva2EuanAiLCJmdWppbm9taXlhLnNoaXp1b2thLmpwIiwiZnVrdXJvaS5zaGl6dW9rYS5qcCIsImdvdGVtYmEuc2hpenVva2EuanAiLCJoYWliYXJhLnNoaXp1b2thLmpwIiwiaGFtYW1hdHN1LnNoaXp1''@;'; + put 'put ''b2thLmpwIiwiaGlnYXNoaWl6dS5zaGl6dW9rYS5qcCIsIml0by5zaGl6dW9rYS5qcCIsIml3YXRhLnNoaXp1b2thLmpwIiwiaXp1LnNoaXp1b2thLmpwIiwiaXp1bm9rdW5pLnNoaXp1b2thLmpwIiwia2FrZWdhd2Euc2hpenVva2EuanAiLCJrYW5uYW1pLnNoaXp1b2thLmpwIiwia2F3YW5l''@;'; + put 'put ''aG9uLnNoaXp1b2thLmpwIiwia2F3YXp1LnNoaXp1b2thLmpwIiwia2lrdWdhd2Euc2hpenVva2EuanAiLCJrb3NhaS5zaGl6dW9rYS5qcCIsIm1ha2lub2hhcmEuc2hpenVva2EuanAiLCJtYXRzdXpha2kuc2hpenVva2EuanAiLCJtaW5hbWlpenUuc2hpenVva2EuanAiLCJtaXNoaW1hLnNo''@;'; + put 'put ''aXp1b2thLmpwIiwibW9yaW1hY2hpLnNoaXp1b2thLmpwIiwibmlzaGlpenUuc2hpenVva2EuanAiLCJudW1henUuc2hpenVva2EuanAiLCJvbWFlemFraS5zaGl6dW9rYS5qcCIsInNoaW1hZGEuc2hpenVva2EuanAiLCJzaGltaXp1LnNoaXp1b2thLmpwIiwic2hpbW9kYS5zaGl6dW9rYS5q''@;'; + put 'put ''cCIsInNoaXp1b2thLnNoaXp1b2thLmpwIiwic3Vzb25vLnNoaXp1b2thLmpwIiwieWFpenUuc2hpenVva2EuanAiLCJ5b3NoaWRhLnNoaXp1b2thLmpwIiwiYXNoaWthZ2EudG9jaGlnaS5qcCIsImJhdG8udG9jaGlnaS5qcCIsImhhZ2EudG9jaGlnaS5qcCIsImljaGlrYWkudG9jaGlnaS5q''@;'; + put 'put ''cCIsIml3YWZ1bmUudG9jaGlnaS5qcCIsImthbWlub2thd2EudG9jaGlnaS5qcCIsImthbnVtYS50b2NoaWdpLmpwIiwia2FyYXN1eWFtYS50b2NoaWdpLmpwIiwia3Vyb2lzby50b2NoaWdpLmpwIiwibWFzaGlrby50b2NoaWdpLmpwIiwibWlidS50b2NoaWdpLmpwIiwibW9rYS50b2NoaWdp''@;'; + put 'put ''LmpwIiwibW90ZWdpLnRvY2hpZ2kuanAiLCJuYXN1LnRvY2hpZ2kuanAiLCJuYXN1c2hpb2JhcmEudG9jaGlnaS5qcCIsIm5pa2tvLnRvY2hpZ2kuanAiLCJuaXNoaWthdGEudG9jaGlnaS5qcCIsIm5vZ2kudG9jaGlnaS5qcCIsIm9oaXJhLnRvY2hpZ2kuanAiLCJvaHRhd2FyYS50b2NoaWdp''@;'; + put 'put ''LmpwIiwib3lhbWEudG9jaGlnaS5qcCIsInNha3VyYS50b2NoaWdpLmpwIiwic2Fuby50b2NoaWdpLmpwIiwic2hpbW90c3VrZS50b2NoaWdpLmpwIiwic2hpb3lhLnRvY2hpZ2kuanAiLCJ0YWthbmV6YXdhLnRvY2hpZ2kuanAiLCJ0b2NoaWdpLnRvY2hpZ2kuanAiLCJ0c3VnYS50b2NoaWdp''@;'; + put 'put ''LmpwIiwidWppaWUudG9jaGlnaS5qcCIsInV0c3Vub21peWEudG9jaGlnaS5qcCIsInlhaXRhLnRvY2hpZ2kuanAiLCJhaXp1bWkudG9rdXNoaW1hLmpwIiwiYW5hbi50b2t1c2hpbWEuanAiLCJpY2hpYmEudG9rdXNoaW1hLmpwIiwiaXRhbm8udG9rdXNoaW1hLmpwIiwia2FpbmFuLnRva3Vz''@;'; + put 'put ''aGltYS5qcCIsImtvbWF0c3VzaGltYS50b2t1c2hpbWEuanAiLCJtYXRzdXNoaWdlLnRva3VzaGltYS5qcCIsIm1pbWEudG9rdXNoaW1hLmpwIiwibWluYW1pLnRva3VzaGltYS5qcCIsIm1peW9zaGkudG9rdXNoaW1hLmpwIiwibXVnaS50b2t1c2hpbWEuanAiLCJuYWthZ2F3YS50b2t1c2hp''@;'; + put 'put ''bWEuanAiLCJuYXJ1dG8udG9rdXNoaW1hLmpwIiwic2FuYWdvY2hpLnRva3VzaGltYS5qcCIsInNoaXNoaWt1aS50b2t1c2hpbWEuanAiLCJ0b2t1c2hpbWEudG9rdXNoaW1hLmpwIiwid2FqaWtpLnRva3VzaGltYS5qcCIsImFkYWNoaS50b2t5by5qcCIsImFraXJ1bm8udG9reW8uanAiLCJh''@;'; + put 'put ''a2lzaGltYS50b2t5by5qcCIsImFvZ2FzaGltYS50b2t5by5qcCIsImFyYWthd2EudG9reW8uanAiLCJidW5reW8udG9reW8uanAiLCJjaGl5b2RhLnRva3lvLmpwIiwiY2hvZnUudG9reW8uanAiLCJjaHVvLnRva3lvLmpwIiwiZWRvZ2F3YS50b2t5by5qcCIsImZ1Y2h1LnRva3lvLmpwIiwi''@;'; + put 'put ''ZnVzc2EudG9reW8uanAiLCJoYWNoaWpvLnRva3lvLmpwIiwiaGFjaGlvamkudG9reW8uanAiLCJoYW11cmEudG9reW8uanAiLCJoaWdhc2hpa3VydW1lLnRva3lvLmpwIiwiaGlnYXNoaW11cmF5YW1hLnRva3lvLmpwIiwiaGlnYXNoaXlhbWF0by50b2t5by5qcCIsImhpbm8udG9reW8uanAi''@;'; + put 'put ''LCJoaW5vZGUudG9reW8uanAiLCJoaW5vaGFyYS50b2t5by5qcCIsImluYWdpLnRva3lvLmpwIiwiaXRhYmFzaGkudG9reW8uanAiLCJrYXRzdXNoaWthLnRva3lvLmpwIiwia2l0YS50b2t5by5qcCIsImtpeW9zZS50b2t5by5qcCIsImtvZGFpcmEudG9reW8uanAiLCJrb2dhbmVpLnRva3lv''@;'; + put 'put ''LmpwIiwia29rdWJ1bmppLnRva3lvLmpwIiwia29tYWUudG9reW8uanAiLCJrb3RvLnRva3lvLmpwIiwia291enVzaGltYS50b2t5by5qcCIsImt1bml0YWNoaS50b2t5by5qcCIsIm1hY2hpZGEudG9reW8uanAiLCJtZWd1cm8udG9reW8uanAiLCJtaW5hdG8udG9reW8uanAiLCJtaXRha2Eu''@;'; + put 'put ''dG9reW8uanAiLCJtaXp1aG8udG9reW8uanAiLCJtdXNhc2hpbXVyYXlhbWEudG9reW8uanAiLCJtdXNhc2hpbm8udG9reW8uanAiLCJuYWthbm8udG9reW8uanAiLCJuZXJpbWEudG9reW8uanAiLCJvZ2FzYXdhcmEudG9reW8uanAiLCJva3V0YW1hLnRva3lvLmpwIiwib21lLnRva3lvLmpw''@;'; + put 'put ''Iiwib3NoaW1hLnRva3lvLmpwIiwib3RhLnRva3lvLmpwIiwic2V0YWdheWEudG9reW8uanAiLCJzaGlidXlhLnRva3lvLmpwIiwic2hpbmFnYXdhLnRva3lvLmpwIiwic2hpbmp1a3UudG9reW8uanAiLCJzdWdpbmFtaS50b2t5by5qcCIsInN1bWlkYS50b2t5by5qcCIsInRhY2hpa2F3YS50''@;'; + put 'put ''b2t5by5qcCIsInRhaXRvLnRva3lvLmpwIiwidGFtYS50b2t5by5qcCIsInRvc2hpbWEudG9reW8uanAiLCJjaGl6dS50b3R0b3JpLmpwIiwiaGluby50b3R0b3JpLmpwIiwia2F3YWhhcmEudG90dG9yaS5qcCIsImtvZ2UudG90dG9yaS5qcCIsImtvdG91cmEudG90dG9yaS5qcCIsIm1pc2Fz''@;'; + put 'put ''YS50b3R0b3JpLmpwIiwibmFuYnUudG90dG9yaS5qcCIsIm5pY2hpbmFuLnRvdHRvcmkuanAiLCJzYWthaW1pbmF0by50b3R0b3JpLmpwIiwidG90dG9yaS50b3R0b3JpLmpwIiwid2FrYXNhLnRvdHRvcmkuanAiLCJ5YXp1LnRvdHRvcmkuanAiLCJ5b25hZ28udG90dG9yaS5qcCIsImFzYWhp''@;'; + put 'put ''LnRveWFtYS5qcCIsImZ1Y2h1LnRveWFtYS5qcCIsImZ1a3VtaXRzdS50b3lhbWEuanAiLCJmdW5haGFzaGkudG95YW1hLmpwIiwiaGltaS50b3lhbWEuanAiLCJpbWl6dS50b3lhbWEuanAiLCJpbmFtaS50b3lhbWEuanAiLCJqb2hhbmEudG95YW1hLmpwIiwia2FtaWljaGkudG95YW1hLmpw''@;'; + put 'put ''Iiwia3Vyb2JlLnRveWFtYS5qcCIsIm5ha2FuaWlrYXdhLnRveWFtYS5qcCIsIm5hbWVyaWthd2EudG95YW1hLmpwIiwibmFudG8udG95YW1hLmpwIiwibnl1emVuLnRveWFtYS5qcCIsIm95YWJlLnRveWFtYS5qcCIsInRhaXJhLnRveWFtYS5qcCIsInRha2Fva2EudG95YW1hLmpwIiwidGF0''@;'; + put 'put ''ZXlhbWEudG95YW1hLmpwIiwidG9nYS50b3lhbWEuanAiLCJ0b25hbWkudG95YW1hLmpwIiwidG95YW1hLnRveWFtYS5qcCIsInVuYXp1a2kudG95YW1hLmpwIiwidW96dS50b3lhbWEuanAiLCJ5YW1hZGEudG95YW1hLmpwIiwiYXJpZGEud2FrYXlhbWEuanAiLCJhcmlkYWdhd2Eud2FrYXlh''@;'; + put 'put ''bWEuanAiLCJnb2JvLndha2F5YW1hLmpwIiwiaGFzaGltb3RvLndha2F5YW1hLmpwIiwiaGlkYWthLndha2F5YW1hLmpwIiwiaGlyb2dhd2Eud2FrYXlhbWEuanAiLCJpbmFtaS53YWtheWFtYS5qcCIsIml3YWRlLndha2F5YW1hLmpwIiwia2FpbmFuLndha2F5YW1hLmpwIiwia2FtaXRvbmRh''@;'; + put 'put ''Lndha2F5YW1hLmpwIiwia2F0c3VyYWdpLndha2F5YW1hLmpwIiwia2ltaW5vLndha2F5YW1hLmpwIiwia2lub2thd2Eud2FrYXlhbWEuanAiLCJraXRheWFtYS53YWtheWFtYS5qcCIsImtveWEud2FrYXlhbWEuanAiLCJrb3phLndha2F5YW1hLmpwIiwia296YWdhd2Eud2FrYXlhbWEuanAi''@;'; + put 'put ''LCJrdWRveWFtYS53YWtheWFtYS5qcCIsImt1c2hpbW90by53YWtheWFtYS5qcCIsIm1paGFtYS53YWtheWFtYS5qcCIsIm1pc2F0by53YWtheWFtYS5qcCIsIm5hY2hpa2F0c3V1cmEud2FrYXlhbWEuanAiLCJzaGluZ3Uud2FrYXlhbWEuanAiLCJzaGlyYWhhbWEud2FrYXlhbWEuanAiLCJ0''@;'; + put 'put ''YWlqaS53YWtheWFtYS5qcCIsInRhbmFiZS53YWtheWFtYS5qcCIsIndha2F5YW1hLndha2F5YW1hLmpwIiwieXVhc2Eud2FrYXlhbWEuanAiLCJ5dXJhLndha2F5YW1hLmpwIiwiYXNhaGkueWFtYWdhdGEuanAiLCJmdW5hZ2F0YS55YW1hZ2F0YS5qcCIsImhpZ2FzaGluZS55YW1hZ2F0YS5q''@;'; + put 'put ''cCIsImlpZGUueWFtYWdhdGEuanAiLCJrYWhva3UueWFtYWdhdGEuanAiLCJrYW1pbm95YW1hLnlhbWFnYXRhLmpwIiwia2FuZXlhbWEueWFtYWdhdGEuanAiLCJrYXdhbmlzaGkueWFtYWdhdGEuanAiLCJtYW11cm9nYXdhLnlhbWFnYXRhLmpwIiwibWlrYXdhLnlhbWFnYXRhLmpwIiwibXVy''@;'; + put 'put ''YXlhbWEueWFtYWdhdGEuanAiLCJuYWdhaS55YW1hZ2F0YS5qcCIsIm5ha2F5YW1hLnlhbWFnYXRhLmpwIiwibmFueW8ueWFtYWdhdGEuanAiLCJuaXNoaWthd2EueWFtYWdhdGEuanAiLCJvYmFuYXphd2EueWFtYWdhdGEuanAiLCJvZS55YW1hZ2F0YS5qcCIsIm9ndW5pLnlhbWFnYXRhLmpw''@;'; + put 'put ''Iiwib2hrdXJhLnlhbWFnYXRhLmpwIiwib2lzaGlkYS55YW1hZ2F0YS5qcCIsInNhZ2FlLnlhbWFnYXRhLmpwIiwic2FrYXRhLnlhbWFnYXRhLmpwIiwic2FrZWdhd2EueWFtYWdhdGEuanAiLCJzaGluam8ueWFtYWdhdGEuanAiLCJzaGlyYXRha2EueWFtYWdhdGEuanAiLCJzaG9uYWkueWFt''@;'; + put 'put ''YWdhdGEuanAiLCJ0YWthaGF0YS55YW1hZ2F0YS5qcCIsInRlbmRvLnlhbWFnYXRhLmpwIiwidG96YXdhLnlhbWFnYXRhLmpwIiwidHN1cnVva2EueWFtYWdhdGEuanAiLCJ5YW1hZ2F0YS55YW1hZ2F0YS5qcCIsInlhbWFub2JlLnlhbWFnYXRhLmpwIiwieW9uZXphd2EueWFtYWdhdGEuanAi''@;'; + put 'put ''LCJ5dXphLnlhbWFnYXRhLmpwIiwiYWJ1LnlhbWFndWNoaS5qcCIsImhhZ2kueWFtYWd1Y2hpLmpwIiwiaGlrYXJpLnlhbWFndWNoaS5qcCIsImhvZnUueWFtYWd1Y2hpLmpwIiwiaXdha3VuaS55YW1hZ3VjaGkuanAiLCJrdWRhbWF0c3UueWFtYWd1Y2hpLmpwIiwibWl0b3UueWFtYWd1Y2hp''@;'; + put 'put ''LmpwIiwibmFnYXRvLnlhbWFndWNoaS5qcCIsIm9zaGltYS55YW1hZ3VjaGkuanAiLCJzaGltb25vc2VraS55YW1hZ3VjaGkuanAiLCJzaHVuYW4ueWFtYWd1Y2hpLmpwIiwidGFidXNlLnlhbWFndWNoaS5qcCIsInRva3V5YW1hLnlhbWFndWNoaS5qcCIsInRveW90YS55YW1hZ3VjaGkuanAi''@;'; + put 'put ''LCJ1YmUueWFtYWd1Y2hpLmpwIiwieXV1LnlhbWFndWNoaS5qcCIsImNodW8ueWFtYW5hc2hpLmpwIiwiZG9zaGkueWFtYW5hc2hpLmpwIiwiZnVlZnVraS55YW1hbmFzaGkuanAiLCJmdWppa2F3YS55YW1hbmFzaGkuanAiLCJmdWppa2F3YWd1Y2hpa28ueWFtYW5hc2hpLmpwIiwiZnVqaXlv''@;'; + put 'put ''c2hpZGEueWFtYW5hc2hpLmpwIiwiaGF5YWthd2EueWFtYW5hc2hpLmpwIiwiaG9rdXRvLnlhbWFuYXNoaS5qcCIsImljaGlrYXdhbWlzYXRvLnlhbWFuYXNoaS5qcCIsImthaS55YW1hbmFzaGkuanAiLCJrb2Z1LnlhbWFuYXNoaS5qcCIsImtvc2h1LnlhbWFuYXNoaS5qcCIsImtvc3VnZS55''@;'; + put 'put ''YW1hbmFzaGkuanAiLCJtaW5hbWktYWxwcy55YW1hbmFzaGkuanAiLCJtaW5vYnUueWFtYW5hc2hpLmpwIiwibmFrYW1pY2hpLnlhbWFuYXNoaS5qcCIsIm5hbmJ1LnlhbWFuYXNoaS5qcCIsIm5hcnVzYXdhLnlhbWFuYXNoaS5qcCIsIm5pcmFzYWtpLnlhbWFuYXNoaS5qcCIsIm5pc2hpa2F0''@;'; + put 'put ''c3VyYS55YW1hbmFzaGkuanAiLCJvc2hpbm8ueWFtYW5hc2hpLmpwIiwib3RzdWtpLnlhbWFuYXNoaS5qcCIsInNob3dhLnlhbWFuYXNoaS5qcCIsInRhYmF5YW1hLnlhbWFuYXNoaS5qcCIsInRzdXJ1LnlhbWFuYXNoaS5qcCIsInVlbm9oYXJhLnlhbWFuYXNoaS5qcCIsInlhbWFuYWtha28u''@;'; + put 'put ''eWFtYW5hc2hpLmpwIiwieWFtYW5hc2hpLnlhbWFuYXNoaS5qcCIsImtlIiwiYWMua2UiLCJjby5rZSIsImdvLmtlIiwiaW5mby5rZSIsIm1lLmtlIiwibW9iaS5rZSIsIm5lLmtlIiwib3Iua2UiLCJzYy5rZSIsImtnIiwib3JnLmtnIiwibmV0LmtnIiwiY29tLmtnIiwiZWR1LmtnIiwiZ292''@;'; + put 'put ''LmtnIiwibWlsLmtnIiwiKi5raCIsImtpIiwiZWR1LmtpIiwiYml6LmtpIiwibmV0LmtpIiwib3JnLmtpIiwiZ292LmtpIiwiaW5mby5raSIsImNvbS5raSIsImttIiwib3JnLmttIiwibm9tLmttIiwiZ292LmttIiwicHJkLmttIiwidG0ua20iLCJlZHUua20iLCJtaWwua20iLCJhc3Mua20i''@;'; + put 'put ''LCJjb20ua20iLCJjb29wLmttIiwiYXNzby5rbSIsInByZXNzZS5rbSIsIm1lZGVjaW4ua20iLCJub3RhaXJlcy5rbSIsInBoYXJtYWNpZW5zLmttIiwidmV0ZXJpbmFpcmUua20iLCJnb3V2LmttIiwia24iLCJuZXQua24iLCJvcmcua24iLCJlZHUua24iLCJnb3Yua24iLCJrcCIsImNvbS5r''@;'; + put 'put ''cCIsImVkdS5rcCIsImdvdi5rcCIsIm9yZy5rcCIsInJlcC5rcCIsInRyYS5rcCIsImtyIiwiYWMua3IiLCJjby5rciIsImVzLmtyIiwiZ28ua3IiLCJocy5rciIsImtnLmtyIiwibWlsLmtyIiwibXMua3IiLCJuZS5rciIsIm9yLmtyIiwicGUua3IiLCJyZS5rciIsInNjLmtyIiwiYnVzYW4u''@;'; + put 'put ''a3IiLCJjaHVuZ2J1ay5rciIsImNodW5nbmFtLmtyIiwiZGFlZ3Uua3IiLCJkYWVqZW9uLmtyIiwiZ2FuZ3dvbi5rciIsImd3YW5nanUua3IiLCJneWVvbmdidWsua3IiLCJneWVvbmdnaS5rciIsImd5ZW9uZ25hbS5rciIsImluY2hlb24ua3IiLCJqZWp1LmtyIiwiamVvbmJ1ay5rciIsImpl''@;'; + put 'put ''b25uYW0ua3IiLCJzZW91bC5rciIsInVsc2FuLmtyIiwia3ciLCJjb20ua3ciLCJlZHUua3ciLCJlbWIua3ciLCJnb3Yua3ciLCJpbmQua3ciLCJuZXQua3ciLCJvcmcua3ciLCJreSIsImVkdS5reSIsImdvdi5reSIsImNvbS5reSIsIm9yZy5reSIsIm5ldC5reSIsImt6Iiwib3JnLmt6Iiwi''@;'; + put 'put ''ZWR1Lmt6IiwibmV0Lmt6IiwiZ292Lmt6IiwibWlsLmt6IiwiY29tLmt6IiwibGEiLCJpbnQubGEiLCJuZXQubGEiLCJpbmZvLmxhIiwiZWR1LmxhIiwiZ292LmxhIiwicGVyLmxhIiwiY29tLmxhIiwib3JnLmxhIiwibGIiLCJjb20ubGIiLCJlZHUubGIiLCJnb3YubGIiLCJuZXQubGIiLCJv''@;'; + put 'put ''cmcubGIiLCJsYyIsImNvbS5sYyIsIm5ldC5sYyIsImNvLmxjIiwib3JnLmxjIiwiZWR1LmxjIiwiZ292LmxjIiwibGkiLCJsayIsImdvdi5sayIsInNjaC5sayIsIm5ldC5sayIsImludC5sayIsImNvbS5sayIsIm9yZy5sayIsImVkdS5sayIsIm5nby5sayIsInNvYy5sayIsIndlYi5sayIs''@;'; + put 'put ''Imx0ZC5sayIsImFzc24ubGsiLCJncnAubGsiLCJob3RlbC5sayIsImFjLmxrIiwibHIiLCJjb20ubHIiLCJlZHUubHIiLCJnb3YubHIiLCJvcmcubHIiLCJuZXQubHIiLCJscyIsImFjLmxzIiwiYml6LmxzIiwiY28ubHMiLCJlZHUubHMiLCJnb3YubHMiLCJpbmZvLmxzIiwibmV0LmxzIiwi''@;'; + put 'put ''b3JnLmxzIiwic2MubHMiLCJsdCIsImdvdi5sdCIsImx1IiwibHYiLCJjb20ubHYiLCJlZHUubHYiLCJnb3YubHYiLCJvcmcubHYiLCJtaWwubHYiLCJpZC5sdiIsIm5ldC5sdiIsImFzbi5sdiIsImNvbmYubHYiLCJseSIsImNvbS5seSIsIm5ldC5seSIsImdvdi5seSIsInBsYy5seSIsImVk''@;'; + put 'put ''dS5seSIsInNjaC5seSIsIm1lZC5seSIsIm9yZy5seSIsImlkLmx5IiwibWEiLCJjby5tYSIsIm5ldC5tYSIsImdvdi5tYSIsIm9yZy5tYSIsImFjLm1hIiwicHJlc3MubWEiLCJtYyIsInRtLm1jIiwiYXNzby5tYyIsIm1kIiwibWUiLCJjby5tZSIsIm5ldC5tZSIsIm9yZy5tZSIsImVkdS5t''@;'; + put 'put ''ZSIsImFjLm1lIiwiZ292Lm1lIiwiaXRzLm1lIiwicHJpdi5tZSIsIm1nIiwib3JnLm1nIiwibm9tLm1nIiwiZ292Lm1nIiwicHJkLm1nIiwidG0ubWciLCJlZHUubWciLCJtaWwubWciLCJjb20ubWciLCJjby5tZyIsIm1oIiwibWlsIiwibWsiLCJjb20ubWsiLCJvcmcubWsiLCJuZXQubWsi''@;'; + put 'put ''LCJlZHUubWsiLCJnb3YubWsiLCJpbmYubWsiLCJuYW1lLm1rIiwibWwiLCJjb20ubWwiLCJlZHUubWwiLCJnb3V2Lm1sIiwiZ292Lm1sIiwibmV0Lm1sIiwib3JnLm1sIiwicHJlc3NlLm1sIiwiKi5tbSIsIm1uIiwiZ292Lm1uIiwiZWR1Lm1uIiwib3JnLm1uIiwibW8iLCJjb20ubW8iLCJu''@;'; + put 'put ''ZXQubW8iLCJvcmcubW8iLCJlZHUubW8iLCJnb3YubW8iLCJtb2JpIiwibXAiLCJtcSIsIm1yIiwiZ292Lm1yIiwibXMiLCJjb20ubXMiLCJlZHUubXMiLCJnb3YubXMiLCJuZXQubXMiLCJvcmcubXMiLCJtdCIsImNvbS5tdCIsImVkdS5tdCIsIm5ldC5tdCIsIm9yZy5tdCIsIm11IiwiY29t''@;'; + put 'put ''Lm11IiwibmV0Lm11Iiwib3JnLm11IiwiZ292Lm11IiwiYWMubXUiLCJjby5tdSIsIm9yLm11IiwibXVzZXVtIiwiYWNhZGVteS5tdXNldW0iLCJhZ3JpY3VsdHVyZS5tdXNldW0iLCJhaXIubXVzZXVtIiwiYWlyZ3VhcmQubXVzZXVtIiwiYWxhYmFtYS5tdXNldW0iLCJhbGFza2EubXVzZXVt''@;'; + put 'put ''IiwiYW1iZXIubXVzZXVtIiwiYW1idWxhbmNlLm11c2V1bSIsImFtZXJpY2FuLm11c2V1bSIsImFtZXJpY2FuYS5tdXNldW0iLCJhbWVyaWNhbmFudGlxdWVzLm11c2V1bSIsImFtZXJpY2FuYXJ0Lm11c2V1bSIsImFtc3RlcmRhbS5tdXNldW0iLCJhbmQubXVzZXVtIiwiYW5uZWZyYW5rLm11''@;'; + put 'put ''c2V1bSIsImFudGhyby5tdXNldW0iLCJhbnRocm9wb2xvZ3kubXVzZXVtIiwiYW50aXF1ZXMubXVzZXVtIiwiYXF1YXJpdW0ubXVzZXVtIiwiYXJib3JldHVtLm11c2V1bSIsImFyY2hhZW9sb2dpY2FsLm11c2V1bSIsImFyY2hhZW9sb2d5Lm11c2V1bSIsImFyY2hpdGVjdHVyZS5tdXNldW0i''@;'; + put 'put ''LCJhcnQubXVzZXVtIiwiYXJ0YW5kZGVzaWduLm11c2V1bSIsImFydGNlbnRlci5tdXNldW0iLCJhcnRkZWNvLm11c2V1bSIsImFydGVkdWNhdGlvbi5tdXNldW0iLCJhcnRnYWxsZXJ5Lm11c2V1bSIsImFydHMubXVzZXVtIiwiYXJ0c2FuZGNyYWZ0cy5tdXNldW0iLCJhc21hdGFydC5tdXNl''@;'; + put 'put ''dW0iLCJhc3Nhc3NpbmF0aW9uLm11c2V1bSIsImFzc2lzaS5tdXNldW0iLCJhc3NvY2lhdGlvbi5tdXNldW0iLCJhc3Ryb25vbXkubXVzZXVtIiwiYXRsYW50YS5tdXNldW0iLCJhdXN0aW4ubXVzZXVtIiwiYXVzdHJhbGlhLm11c2V1bSIsImF1dG9tb3RpdmUubXVzZXVtIiwiYXZpYXRpb24u''@;'; + put 'put ''bXVzZXVtIiwiYXhpcy5tdXNldW0iLCJiYWRham96Lm11c2V1bSIsImJhZ2hkYWQubXVzZXVtIiwiYmFobi5tdXNldW0iLCJiYWxlLm11c2V1bSIsImJhbHRpbW9yZS5tdXNldW0iLCJiYXJjZWxvbmEubXVzZXVtIiwiYmFzZWJhbGwubXVzZXVtIiwiYmFzZWwubXVzZXVtIiwiYmF0aHMubXVz''@;'; + put 'put ''ZXVtIiwiYmF1ZXJuLm11c2V1bSIsImJlYXV4YXJ0cy5tdXNldW0iLCJiZWVsZGVuZ2VsdWlkLm11c2V1bSIsImJlbGxldnVlLm11c2V1bSIsImJlcmdiYXUubXVzZXVtIiwiYmVya2VsZXkubXVzZXVtIiwiYmVybGluLm11c2V1bSIsImJlcm4ubXVzZXVtIiwiYmlibGUubXVzZXVtIiwiYmls''@;'; + put 'put ''YmFvLm11c2V1bSIsImJpbGwubXVzZXVtIiwiYmlyZGFydC5tdXNldW0iLCJiaXJ0aHBsYWNlLm11c2V1bSIsImJvbm4ubXVzZXVtIiwiYm9zdG9uLm11c2V1bSIsImJvdGFuaWNhbC5tdXNldW0iLCJib3RhbmljYWxnYXJkZW4ubXVzZXVtIiwiYm90YW5pY2dhcmRlbi5tdXNldW0iLCJib3Rh''@;'; + put 'put ''bnkubXVzZXVtIiwiYnJhbmR5d2luZXZhbGxleS5tdXNldW0iLCJicmFzaWwubXVzZXVtIiwiYnJpc3RvbC5tdXNldW0iLCJicml0aXNoLm11c2V1bSIsImJyaXRpc2hjb2x1bWJpYS5tdXNldW0iLCJicm9hZGNhc3QubXVzZXVtIiwiYnJ1bmVsLm11c2V1bSIsImJydXNzZWwubXVzZXVtIiwi''@;'; + put 'put ''YnJ1c3NlbHMubXVzZXVtIiwiYnJ1eGVsbGVzLm11c2V1bSIsImJ1aWxkaW5nLm11c2V1bSIsImJ1cmdob2YubXVzZXVtIiwiYnVzLm11c2V1bSIsImJ1c2hleS5tdXNldW0iLCJjYWRhcXVlcy5tdXNldW0iLCJjYWxpZm9ybmlhLm11c2V1bSIsImNhbWJyaWRnZS5tdXNldW0iLCJjYW4ubXVz''@;'; + put 'put ''ZXVtIiwiY2FuYWRhLm11c2V1bSIsImNhcGVicmV0b24ubXVzZXVtIiwiY2Fycmllci5tdXNldW0iLCJjYXJ0b29uYXJ0Lm11c2V1bSIsImNhc2FkZWxhbW9uZWRhLm11c2V1bSIsImNhc3RsZS5tdXNldW0iLCJjYXN0cmVzLm11c2V1bSIsImNlbHRpYy5tdXNldW0iLCJjZW50ZXIubXVzZXVt''@;'; + put 'put ''IiwiY2hhdHRhbm9vZ2EubXVzZXVtIiwiY2hlbHRlbmhhbS5tdXNldW0iLCJjaGVzYXBlYWtlYmF5Lm11c2V1bSIsImNoaWNhZ28ubXVzZXVtIiwiY2hpbGRyZW4ubXVzZXVtIiwiY2hpbGRyZW5zLm11c2V1bSIsImNoaWxkcmVuc2dhcmRlbi5tdXNldW0iLCJjaGlyb3ByYWN0aWMubXVzZXVt''@;'; + put 'put ''IiwiY2hvY29sYXRlLm11c2V1bSIsImNocmlzdGlhbnNidXJnLm11c2V1bSIsImNpbmNpbm5hdGkubXVzZXVtIiwiY2luZW1hLm11c2V1bSIsImNpcmN1cy5tdXNldW0iLCJjaXZpbGlzYXRpb24ubXVzZXVtIiwiY2l2aWxpemF0aW9uLm11c2V1bSIsImNpdmlsd2FyLm11c2V1bSIsImNsaW50''@;'; + put 'put ''b24ubXVzZXVtIiwiY2xvY2subXVzZXVtIiwiY29hbC5tdXNldW0iLCJjb2FzdGFsZGVmZW5jZS5tdXNldW0iLCJjb2R5Lm11c2V1bSIsImNvbGR3YXIubXVzZXVtIiwiY29sbGVjdGlvbi5tdXNldW0iLCJjb2xvbmlhbHdpbGxpYW1zYnVyZy5tdXNldW0iLCJjb2xvcmFkb3BsYXRlYXUubXVz''@;'; + put 'put ''ZXVtIiwiY29sdW1iaWEubXVzZXVtIiwiY29sdW1idXMubXVzZXVtIiwiY29tbXVuaWNhdGlvbi5tdXNldW0iLCJjb21tdW5pY2F0aW9ucy5tdXNldW0iLCJjb21tdW5pdHkubXVzZXVtIiwiY29tcHV0ZXIubXVzZXVtIiwiY29tcHV0ZXJoaXN0b3J5Lm11c2V1bSIsImNvbXVuaWNhXHhlN1x4''@;'; + put 'put ''ZjVlcy5tdXNldW0iLCJjb250ZW1wb3JhcnkubXVzZXVtIiwiY29udGVtcG9yYXJ5YXJ0Lm11c2V1bSIsImNvbnZlbnQubXVzZXVtIiwiY29wZW5oYWdlbi5tdXNldW0iLCJjb3Jwb3JhdGlvbi5tdXNldW0iLCJjb3JyZWlvcy1lLXRlbGVjb211bmljYVx4ZTdceGY1ZXMubXVzZXVtIiwiY29y''@;'; + put 'put ''dmV0dGUubXVzZXVtIiwiY29zdHVtZS5tdXNldW0iLCJjb3VudHJ5ZXN0YXRlLm11c2V1bSIsImNvdW50eS5tdXNldW0iLCJjcmFmdHMubXVzZXVtIiwiY3JhbmJyb29rLm11c2V1bSIsImNyZWF0aW9uLm11c2V1bSIsImN1bHR1cmFsLm11c2V1bSIsImN1bHR1cmFsY2VudGVyLm11c2V1bSIs''@;'; + put 'put ''ImN1bHR1cmUubXVzZXVtIiwiY3liZXIubXVzZXVtIiwiY3ltcnUubXVzZXVtIiwiZGFsaS5tdXNldW0iLCJkYWxsYXMubXVzZXVtIiwiZGF0YWJhc2UubXVzZXVtIiwiZGRyLm11c2V1bSIsImRlY29yYXRpdmVhcnRzLm11c2V1bSIsImRlbGF3YXJlLm11c2V1bSIsImRlbG1lbmhvcnN0Lm11''@;'; + put 'put ''c2V1bSIsImRlbm1hcmsubXVzZXVtIiwiZGVwb3QubXVzZXVtIiwiZGVzaWduLm11c2V1bSIsImRldHJvaXQubXVzZXVtIiwiZGlub3NhdXIubXVzZXVtIiwiZGlzY292ZXJ5Lm11c2V1bSIsImRvbGxzLm11c2V1bSIsImRvbm9zdGlhLm11c2V1bSIsImR1cmhhbS5tdXNldW0iLCJlYXN0YWZy''@;'; + put 'put ''aWNhLm11c2V1bSIsImVhc3Rjb2FzdC5tdXNldW0iLCJlZHVjYXRpb24ubXVzZXVtIiwiZWR1Y2F0aW9uYWwubXVzZXVtIiwiZWd5cHRpYW4ubXVzZXVtIiwiZWlzZW5iYWhuLm11c2V1bSIsImVsYnVyZy5tdXNldW0iLCJlbHZlbmRyZWxsLm11c2V1bSIsImVtYnJvaWRlcnkubXVzZXVtIiwi''@;'; + put 'put ''ZW5jeWNsb3BlZGljLm11c2V1bSIsImVuZ2xhbmQubXVzZXVtIiwiZW50b21vbG9neS5tdXNldW0iLCJlbnZpcm9ubWVudC5tdXNldW0iLCJlbnZpcm9ubWVudGFsY29uc2VydmF0aW9uLm11c2V1bSIsImVwaWxlcHN5Lm11c2V1bSIsImVzc2V4Lm11c2V1bSIsImVzdGF0ZS5tdXNldW0iLCJl''@;'; + put 'put ''dGhub2xvZ3kubXVzZXVtIiwiZXhldGVyLm11c2V1bSIsImV4aGliaXRpb24ubXVzZXVtIiwiZmFtaWx5Lm11c2V1bSIsImZhcm0ubXVzZXVtIiwiZmFybWVxdWlwbWVudC5tdXNldW0iLCJmYXJtZXJzLm11c2V1bSIsImZhcm1zdGVhZC5tdXNldW0iLCJmaWVsZC5tdXNldW0iLCJmaWd1ZXJl''@;'; + put 'put ''cy5tdXNldW0iLCJmaWxhdGVsaWEubXVzZXVtIiwiZmlsbS5tdXNldW0iLCJmaW5lYXJ0Lm11c2V1bSIsImZpbmVhcnRzLm11c2V1bSIsImZpbmxhbmQubXVzZXVtIiwiZmxhbmRlcnMubXVzZXVtIiwiZmxvcmlkYS5tdXNldW0iLCJmb3JjZS5tdXNldW0iLCJmb3J0bWlzc291bGEubXVzZXVt''@;'; + put 'put ''IiwiZm9ydHdvcnRoLm11c2V1bSIsImZvdW5kYXRpb24ubXVzZXVtIiwiZnJhbmNhaXNlLm11c2V1bSIsImZyYW5rZnVydC5tdXNldW0iLCJmcmFuemlza2FuZXIubXVzZXVtIiwiZnJlZW1hc29ucnkubXVzZXVtIiwiZnJlaWJ1cmcubXVzZXVtIiwiZnJpYm91cmcubXVzZXVtIiwiZnJvZy5t''@;'; + put 'put ''dXNldW0iLCJmdW5kYWNpby5tdXNldW0iLCJmdXJuaXR1cmUubXVzZXVtIiwiZ2FsbGVyeS5tdXNldW0iLCJnYXJkZW4ubXVzZXVtIiwiZ2F0ZXdheS5tdXNldW0iLCJnZWVsdmluY2subXVzZXVtIiwiZ2Vtb2xvZ2ljYWwubXVzZXVtIiwiZ2VvbG9neS5tdXNldW0iLCJnZW9yZ2lhLm11c2V1''@;'; + put 'put ''bSIsImdpZXNzZW4ubXVzZXVtIiwiZ2xhcy5tdXNldW0iLCJnbGFzcy5tdXNldW0iLCJnb3JnZS5tdXNldW0iLCJncmFuZHJhcGlkcy5tdXNldW0iLCJncmF6Lm11c2V1bSIsImd1ZXJuc2V5Lm11c2V1bSIsImhhbGxvZmZhbWUubXVzZXVtIiwiaGFtYnVyZy5tdXNldW0iLCJoYW5kc29uLm11''@;'; + put 'put ''c2V1bSIsImhhcnZlc3RjZWxlYnJhdGlvbi5tdXNldW0iLCJoYXdhaWkubXVzZXVtIiwiaGVhbHRoLm11c2V1bSIsImhlaW1hdHVuZHVocmVuLm11c2V1bSIsImhlbGxhcy5tdXNldW0iLCJoZWxzaW5raS5tdXNldW0iLCJoZW1ieWdkc2ZvcmJ1bmQubXVzZXVtIiwiaGVyaXRhZ2UubXVzZXVt''@;'; + put 'put ''IiwiaGlzdG9pcmUubXVzZXVtIiwiaGlzdG9yaWNhbC5tdXNldW0iLCJoaXN0b3JpY2Fsc29jaWV0eS5tdXNldW0iLCJoaXN0b3JpY2hvdXNlcy5tdXNldW0iLCJoaXN0b3Jpc2NoLm11c2V1bSIsImhpc3RvcmlzY2hlcy5tdXNldW0iLCJoaXN0b3J5Lm11c2V1bSIsImhpc3RvcnlvZnNjaWVu''@;'; + put 'put ''Y2UubXVzZXVtIiwiaG9yb2xvZ3kubXVzZXVtIiwiaG91c2UubXVzZXVtIiwiaHVtYW5pdGllcy5tdXNldW0iLCJpbGx1c3RyYXRpb24ubXVzZXVtIiwiaW1hZ2VhbmRzb3VuZC5tdXNldW0iLCJpbmRpYW4ubXVzZXVtIiwiaW5kaWFuYS5tdXNldW0iLCJpbmRpYW5hcG9saXMubXVzZXVtIiwi''@;'; + put 'put ''aW5kaWFubWFya2V0Lm11c2V1bSIsImludGVsbGlnZW5jZS5tdXNldW0iLCJpbnRlcmFjdGl2ZS5tdXNldW0iLCJpcmFxLm11c2V1bSIsImlyb24ubXVzZXVtIiwiaXNsZW9mbWFuLm11c2V1bSIsImphbWlzb24ubXVzZXVtIiwiamVmZmVyc29uLm11c2V1bSIsImplcnVzYWxlbS5tdXNldW0i''@;'; + put 'put ''LCJqZXdlbHJ5Lm11c2V1bSIsImpld2lzaC5tdXNldW0iLCJqZXdpc2hhcnQubXVzZXVtIiwiamZrLm11c2V1bSIsImpvdXJuYWxpc20ubXVzZXVtIiwianVkYWljYS5tdXNldW0iLCJqdWR5Z2FybGFuZC5tdXNldW0iLCJqdWVkaXNjaGVzLm11c2V1bSIsImp1aWYubXVzZXVtIiwia2FyYXRl''@;'; + put 'put ''Lm11c2V1bSIsImthcmlrYXR1ci5tdXNldW0iLCJraWRzLm11c2V1bSIsImtvZWJlbmhhdm4ubXVzZXVtIiwia29lbG4ubXVzZXVtIiwia3Vuc3QubXVzZXVtIiwia3Vuc3RzYW1tbHVuZy5tdXNldW0iLCJrdW5zdHVuZGRlc2lnbi5tdXNldW0iLCJsYWJvci5tdXNldW0iLCJsYWJvdXIubXVz''@;'; + put 'put ''ZXVtIiwibGFqb2xsYS5tdXNldW0iLCJsYW5jYXNoaXJlLm11c2V1bSIsImxhbmRlcy5tdXNldW0iLCJsYW5zLm11c2V1bSIsImxceGU0bnMubXVzZXVtIiwibGFyc3Nvbi5tdXNldW0iLCJsZXdpc21pbGxlci5tdXNldW0iLCJsaW5jb2xuLm11c2V1bSIsImxpbnoubXVzZXVtIiwibGl2aW5n''@;'; + put 'put ''Lm11c2V1bSIsImxpdmluZ2hpc3RvcnkubXVzZXVtIiwibG9jYWxoaXN0b3J5Lm11c2V1bSIsImxvbmRvbi5tdXNldW0iLCJsb3NhbmdlbGVzLm11c2V1bSIsImxvdXZyZS5tdXNldW0iLCJsb3lhbGlzdC5tdXNldW0iLCJsdWNlcm5lLm11c2V1bSIsImx1eGVtYm91cmcubXVzZXVtIiwibHV6''@;'; + put 'put ''ZXJuLm11c2V1bSIsIm1hZC5tdXNldW0iLCJtYWRyaWQubXVzZXVtIiwibWFsbG9yY2EubXVzZXVtIiwibWFuY2hlc3Rlci5tdXNldW0iLCJtYW5zaW9uLm11c2V1bSIsIm1hbnNpb25zLm11c2V1bSIsIm1hbngubXVzZXVtIiwibWFyYnVyZy5tdXNldW0iLCJtYXJpdGltZS5tdXNldW0iLCJt''@;'; + put 'put ''YXJpdGltby5tdXNldW0iLCJtYXJ5bGFuZC5tdXNldW0iLCJtYXJ5bGh1cnN0Lm11c2V1bSIsIm1lZGlhLm11c2V1bSIsIm1lZGljYWwubXVzZXVtIiwibWVkaXppbmhpc3RvcmlzY2hlcy5tdXNldW0iLCJtZWVyZXMubXVzZXVtIiwibWVtb3JpYWwubXVzZXVtIiwibWVzYXZlcmRlLm11c2V1''@;'; + put 'put ''bSIsIm1pY2hpZ2FuLm11c2V1bSIsIm1pZGF0bGFudGljLm11c2V1bSIsIm1pbGl0YXJ5Lm11c2V1bSIsIm1pbGwubXVzZXVtIiwibWluZXJzLm11c2V1bSIsIm1pbmluZy5tdXNldW0iLCJtaW5uZXNvdGEubXVzZXVtIiwibWlzc2lsZS5tdXNldW0iLCJtaXNzb3VsYS5tdXNldW0iLCJtb2Rl''@;'; + put 'put ''cm4ubXVzZXVtIiwibW9tYS5tdXNldW0iLCJtb25leS5tdXNldW0iLCJtb25tb3V0aC5tdXNldW0iLCJtb250aWNlbGxvLm11c2V1bSIsIm1vbnRyZWFsLm11c2V1bSIsIm1vc2Nvdy5tdXNldW0iLCJtb3RvcmN5Y2xlLm11c2V1bSIsIm11ZW5jaGVuLm11c2V1bSIsIm11ZW5zdGVyLm11c2V1''@;'; + put 'put ''bSIsIm11bGhvdXNlLm11c2V1bSIsIm11bmNpZS5tdXNldW0iLCJtdXNlZXQubXVzZXVtIiwibXVzZXVtY2VudGVyLm11c2V1bSIsIm11c2V1bXZlcmVuaWdpbmcubXVzZXVtIiwibXVzaWMubXVzZXVtIiwibmF0aW9uYWwubXVzZXVtIiwibmF0aW9uYWxmaXJlYXJtcy5tdXNldW0iLCJuYXRp''@;'; + put 'put ''b25hbGhlcml0YWdlLm11c2V1bSIsIm5hdGl2ZWFtZXJpY2FuLm11c2V1bSIsIm5hdHVyYWxoaXN0b3J5Lm11c2V1bSIsIm5hdHVyYWxoaXN0b3J5bXVzZXVtLm11c2V1bSIsIm5hdHVyYWxzY2llbmNlcy5tdXNldW0iLCJuYXR1cmUubXVzZXVtIiwibmF0dXJoaXN0b3Jpc2NoZXMubXVzZXVt''@;'; + put 'put ''IiwibmF0dXVyd2V0ZW5zY2hhcHBlbi5tdXNldW0iLCJuYXVtYnVyZy5tdXNldW0iLCJuYXZhbC5tdXNldW0iLCJuZWJyYXNrYS5tdXNldW0iLCJuZXVlcy5tdXNldW0iLCJuZXdoYW1wc2hpcmUubXVzZXVtIiwibmV3amVyc2V5Lm11c2V1bSIsIm5ld21leGljby5tdXNldW0iLCJuZXdwb3J0''@;'; + put 'put ''Lm11c2V1bSIsIm5ld3NwYXBlci5tdXNldW0iLCJuZXd5b3JrLm11c2V1bSIsIm5pZXBjZS5tdXNldW0iLCJub3Jmb2xrLm11c2V1bSIsIm5vcnRoLm11c2V1bSIsIm5ydy5tdXNldW0iLCJueWMubXVzZXVtIiwibnlueS5tdXNldW0iLCJvY2Vhbm9ncmFwaGljLm11c2V1bSIsIm9jZWFub2dy''@;'; + put 'put ''YXBoaXF1ZS5tdXNldW0iLCJvbWFoYS5tdXNldW0iLCJvbmxpbmUubXVzZXVtIiwib250YXJpby5tdXNldW0iLCJvcGVuYWlyLm11c2V1bSIsIm9yZWdvbi5tdXNldW0iLCJvcmVnb250cmFpbC5tdXNldW0iLCJvdGFnby5tdXNldW0iLCJveGZvcmQubXVzZXVtIiwicGFjaWZpYy5tdXNldW0i''@;'; + put 'put ''LCJwYWRlcmJvcm4ubXVzZXVtIiwicGFsYWNlLm11c2V1bSIsInBhbGVvLm11c2V1bSIsInBhbG1zcHJpbmdzLm11c2V1bSIsInBhbmFtYS5tdXNldW0iLCJwYXJpcy5tdXNldW0iLCJwYXNhZGVuYS5tdXNldW0iLCJwaGFybWFjeS5tdXNldW0iLCJwaGlsYWRlbHBoaWEubXVzZXVtIiwicGhp''@;'; + put 'put ''bGFkZWxwaGlhYXJlYS5tdXNldW0iLCJwaGlsYXRlbHkubXVzZXVtIiwicGhvZW5peC5tdXNldW0iLCJwaG90b2dyYXBoeS5tdXNldW0iLCJwaWxvdHMubXVzZXVtIiwicGl0dHNidXJnaC5tdXNldW0iLCJwbGFuZXRhcml1bS5tdXNldW0iLCJwbGFudGF0aW9uLm11c2V1bSIsInBsYW50cy5t''@;'; + put 'put ''dXNldW0iLCJwbGF6YS5tdXNldW0iLCJwb3J0YWwubXVzZXVtIiwicG9ydGxhbmQubXVzZXVtIiwicG9ydGxsaWdhdC5tdXNldW0iLCJwb3N0cy1hbmQtdGVsZWNvbW11bmljYXRpb25zLm11c2V1bSIsInByZXNlcnZhdGlvbi5tdXNldW0iLCJwcmVzaWRpby5tdXNldW0iLCJwcmVzcy5tdXNl''@;'; + put 'put ''dW0iLCJwcm9qZWN0Lm11c2V1bSIsInB1YmxpYy5tdXNldW0iLCJwdWJvbC5tdXNldW0iLCJxdWViZWMubXVzZXVtIiwicmFpbHJvYWQubXVzZXVtIiwicmFpbHdheS5tdXNldW0iLCJyZXNlYXJjaC5tdXNldW0iLCJyZXNpc3RhbmNlLm11c2V1bSIsInJpb2RlamFuZWlyby5tdXNldW0iLCJy''@;'; + put 'put ''b2NoZXN0ZXIubXVzZXVtIiwicm9ja2FydC5tdXNldW0iLCJyb21hLm11c2V1bSIsInJ1c3NpYS5tdXNldW0iLCJzYWludGxvdWlzLm11c2V1bSIsInNhbGVtLm11c2V1bSIsInNhbHZhZG9yZGFsaS5tdXNldW0iLCJzYWx6YnVyZy5tdXNldW0iLCJzYW5kaWVnby5tdXNldW0iLCJzYW5mcmFu''@;'; + put 'put ''Y2lzY28ubXVzZXVtIiwic2FudGFiYXJiYXJhLm11c2V1bSIsInNhbnRhY3J1ei5tdXNldW0iLCJzYW50YWZlLm11c2V1bSIsInNhc2thdGNoZXdhbi5tdXNldW0iLCJzYXR4Lm11c2V1bSIsInNhdmFubmFoZ2EubXVzZXVtIiwic2NobGVzaXNjaGVzLm11c2V1bSIsInNjaG9lbmJydW5uLm11''@;'; + put 'put ''c2V1bSIsInNjaG9rb2xhZGVuLm11c2V1bSIsInNjaG9vbC5tdXNldW0iLCJzY2h3ZWl6Lm11c2V1bSIsInNjaWVuY2UubXVzZXVtIiwic2NpZW5jZWFuZGhpc3RvcnkubXVzZXVtIiwic2NpZW5jZWFuZGluZHVzdHJ5Lm11c2V1bSIsInNjaWVuY2VjZW50ZXIubXVzZXVtIiwic2NpZW5jZWNl''@;'; + put 'put ''bnRlcnMubXVzZXVtIiwic2NpZW5jZS1maWN0aW9uLm11c2V1bSIsInNjaWVuY2VoaXN0b3J5Lm11c2V1bSIsInNjaWVuY2VzLm11c2V1bSIsInNjaWVuY2VzbmF0dXJlbGxlcy5tdXNldW0iLCJzY290bGFuZC5tdXNldW0iLCJzZWFwb3J0Lm11c2V1bSIsInNldHRsZW1lbnQubXVzZXVtIiwi''@;'; + put 'put ''c2V0dGxlcnMubXVzZXVtIiwic2hlbGwubXVzZXVtIiwic2hlcmJyb29rZS5tdXNldW0iLCJzaWJlbmlrLm11c2V1bSIsInNpbGsubXVzZXVtIiwic2tpLm11c2V1bSIsInNrb2xlLm11c2V1bSIsInNvY2lldHkubXVzZXVtIiwic29sb2duZS5tdXNldW0iLCJzb3VuZGFuZHZpc2lvbi5tdXNl''@;'; + put 'put ''dW0iLCJzb3V0aGNhcm9saW5hLm11c2V1bSIsInNvdXRod2VzdC5tdXNldW0iLCJzcGFjZS5tdXNldW0iLCJzcHkubXVzZXVtIiwic3F1YXJlLm11c2V1bSIsInN0YWR0Lm11c2V1bSIsInN0YWxiYW5zLm11c2V1bSIsInN0YXJuYmVyZy5tdXNldW0iLCJzdGF0ZS5tdXNldW0iLCJzdGF0ZW9m''@;'; + put 'put ''ZGVsYXdhcmUubXVzZXVtIiwic3RhdGlvbi5tdXNldW0iLCJzdGVhbS5tdXNldW0iLCJzdGVpZXJtYXJrLm11c2V1bSIsInN0am9obi5tdXNldW0iLCJzdG9ja2hvbG0ubXVzZXVtIiwic3RwZXRlcnNidXJnLm11c2V1bSIsInN0dXR0Z2FydC5tdXNldW0iLCJzdWlzc2UubXVzZXVtIiwic3Vy''@;'; + put 'put ''Z2VvbnNoYWxsLm11c2V1bSIsInN1cnJleS5tdXNldW0iLCJzdml6emVyYS5tdXNldW0iLCJzd2VkZW4ubXVzZXVtIiwic3lkbmV5Lm11c2V1bSIsInRhbmsubXVzZXVtIiwidGNtLm11c2V1bSIsInRlY2hub2xvZ3kubXVzZXVtIiwidGVsZWtvbW11bmlrYXRpb24ubXVzZXVtIiwidGVsZXZp''@;'; + put 'put ''c2lvbi5tdXNldW0iLCJ0ZXhhcy5tdXNldW0iLCJ0ZXh0aWxlLm11c2V1bSIsInRoZWF0ZXIubXVzZXVtIiwidGltZS5tdXNldW0iLCJ0aW1la2VlcGluZy5tdXNldW0iLCJ0b3BvbG9neS5tdXNldW0iLCJ0b3Jpbm8ubXVzZXVtIiwidG91Y2gubXVzZXVtIiwidG93bi5tdXNldW0iLCJ0cmFu''@;'; + put 'put ''c3BvcnQubXVzZXVtIiwidHJlZS5tdXNldW0iLCJ0cm9sbGV5Lm11c2V1bSIsInRydXN0Lm11c2V1bSIsInRydXN0ZWUubXVzZXVtIiwidWhyZW4ubXVzZXVtIiwidWxtLm11c2V1bSIsInVuZGVyc2VhLm11c2V1bSIsInVuaXZlcnNpdHkubXVzZXVtIiwidXNhLm11c2V1bSIsInVzYW50aXF1''@;'; + put 'put ''ZXMubXVzZXVtIiwidXNhcnRzLm11c2V1bSIsInVzY291bnRyeWVzdGF0ZS5tdXNldW0iLCJ1c2N1bHR1cmUubXVzZXVtIiwidXNkZWNvcmF0aXZlYXJ0cy5tdXNldW0iLCJ1c2dhcmRlbi5tdXNldW0iLCJ1c2hpc3RvcnkubXVzZXVtIiwidXNodWFpYS5tdXNldW0iLCJ1c2xpdmluZ2hpc3Rv''@;'; + put 'put ''cnkubXVzZXVtIiwidXRhaC5tdXNldW0iLCJ1dmljLm11c2V1bSIsInZhbGxleS5tdXNldW0iLCJ2YW50YWEubXVzZXVtIiwidmVyc2FpbGxlcy5tdXNldW0iLCJ2aWtpbmcubXVzZXVtIiwidmlsbGFnZS5tdXNldW0iLCJ2aXJnaW5pYS5tdXNldW0iLCJ2aXJ0dWFsLm11c2V1bSIsInZpcnR1''@;'; + put 'put ''ZWwubXVzZXVtIiwidmxhYW5kZXJlbi5tdXNldW0iLCJ2b2xrZW5rdW5kZS5tdXNldW0iLCJ3YWxlcy5tdXNldW0iLCJ3YWxsb25pZS5tdXNldW0iLCJ3YXIubXVzZXVtIiwid2FzaGluZ3RvbmRjLm11c2V1bSIsIndhdGNoYW5kY2xvY2subXVzZXVtIiwid2F0Y2gtYW5kLWNsb2NrLm11c2V1''@;'; + put 'put ''bSIsIndlc3Rlcm4ubXVzZXVtIiwid2VzdGZhbGVuLm11c2V1bSIsIndoYWxpbmcubXVzZXVtIiwid2lsZGxpZmUubXVzZXVtIiwid2lsbGlhbXNidXJnLm11c2V1bSIsIndpbmRtaWxsLm11c2V1bSIsIndvcmtzaG9wLm11c2V1bSIsInlvcmsubXVzZXVtIiwieW9ya3NoaXJlLm11c2V1bSIs''@;'; + put 'put ''Inlvc2VtaXRlLm11c2V1bSIsInlvdXRoLm11c2V1bSIsInpvb2xvZ2ljYWwubXVzZXVtIiwiem9vbG9neS5tdXNldW0iLCJcdTA1ZDlcdTA1ZThcdTA1ZDVcdTA1ZTlcdTA1ZGNcdTA1ZDlcdTA1ZGQubXVzZXVtIiwiXHUwNDM4XHUwNDNhXHUwNDNlXHUwNDNjLm11c2V1bSIsIm12IiwiYWVy''@;'; + put 'put ''by5tdiIsImJpei5tdiIsImNvbS5tdiIsImNvb3AubXYiLCJlZHUubXYiLCJnb3YubXYiLCJpbmZvLm12IiwiaW50Lm12IiwibWlsLm12IiwibXVzZXVtLm12IiwibmFtZS5tdiIsIm5ldC5tdiIsIm9yZy5tdiIsInByby5tdiIsIm13IiwiYWMubXciLCJiaXoubXciLCJjby5tdyIsImNvbS5t''@;'; + put 'put ''dyIsImNvb3AubXciLCJlZHUubXciLCJnb3YubXciLCJpbnQubXciLCJtdXNldW0ubXciLCJuZXQubXciLCJvcmcubXciLCJteCIsImNvbS5teCIsIm9yZy5teCIsImdvYi5teCIsImVkdS5teCIsIm5ldC5teCIsIm15IiwiY29tLm15IiwibmV0Lm15Iiwib3JnLm15IiwiZ292Lm15IiwiZWR1''@;'; + put 'put ''Lm15IiwibWlsLm15IiwibmFtZS5teSIsIm16IiwiYWMubXoiLCJhZHYubXoiLCJjby5teiIsImVkdS5teiIsImdvdi5teiIsIm1pbC5teiIsIm5ldC5teiIsIm9yZy5teiIsIm5hIiwiaW5mby5uYSIsInByby5uYSIsIm5hbWUubmEiLCJzY2hvb2wubmEiLCJvci5uYSIsImRyLm5hIiwidXMu''@;'; + put 'put ''bmEiLCJteC5uYSIsImNhLm5hIiwiaW4ubmEiLCJjYy5uYSIsInR2Lm5hIiwid3MubmEiLCJtb2JpLm5hIiwiY28ubmEiLCJjb20ubmEiLCJvcmcubmEiLCJuYW1lIiwibmMiLCJhc3NvLm5jIiwibm9tLm5jIiwibmUiLCJuZXQiLCJuZiIsImNvbS5uZiIsIm5ldC5uZiIsInBlci5uZiIsInJl''@;'; + put 'put ''Yy5uZiIsIndlYi5uZiIsImFydHMubmYiLCJmaXJtLm5mIiwiaW5mby5uZiIsIm90aGVyLm5mIiwic3RvcmUubmYiLCJuZyIsImNvbS5uZyIsImVkdS5uZyIsImdvdi5uZyIsImkubmciLCJtaWwubmciLCJtb2JpLm5nIiwibmFtZS5uZyIsIm5ldC5uZyIsIm9yZy5uZyIsInNjaC5uZyIsIm5p''@;'; + put 'put ''IiwiYWMubmkiLCJiaXoubmkiLCJjby5uaSIsImNvbS5uaSIsImVkdS5uaSIsImdvYi5uaSIsImluLm5pIiwiaW5mby5uaSIsImludC5uaSIsIm1pbC5uaSIsIm5ldC5uaSIsIm5vbS5uaSIsIm9yZy5uaSIsIndlYi5uaSIsIm5sIiwibm8iLCJmaHMubm8iLCJ2Z3Mubm8iLCJmeWxrZXNiaWJs''@;'; + put 'put ''Lm5vIiwiZm9sa2ViaWJsLm5vIiwibXVzZXVtLm5vIiwiaWRyZXR0Lm5vIiwicHJpdi5ubyIsIm1pbC5ubyIsInN0YXQubm8iLCJkZXAubm8iLCJrb21tdW5lLm5vIiwiaGVyYWQubm8iLCJhYS5ubyIsImFoLm5vIiwiYnUubm8iLCJmbS5ubyIsImhsLm5vIiwiaG0ubm8iLCJqYW4tbWF5ZW4u''@;'; + put 'put ''bm8iLCJtci5ubyIsIm5sLm5vIiwibnQubm8iLCJvZi5ubyIsIm9sLm5vIiwib3Nsby5ubyIsInJsLm5vIiwic2Yubm8iLCJzdC5ubyIsInN2YWxiYXJkLm5vIiwidG0ubm8iLCJ0ci5ubyIsInZhLm5vIiwidmYubm8iLCJncy5hYS5ubyIsImdzLmFoLm5vIiwiZ3MuYnUubm8iLCJncy5mbS5u''@;'; + put 'put ''byIsImdzLmhsLm5vIiwiZ3MuaG0ubm8iLCJncy5qYW4tbWF5ZW4ubm8iLCJncy5tci5ubyIsImdzLm5sLm5vIiwiZ3MubnQubm8iLCJncy5vZi5ubyIsImdzLm9sLm5vIiwiZ3Mub3Nsby5ubyIsImdzLnJsLm5vIiwiZ3Muc2Yubm8iLCJncy5zdC5ubyIsImdzLnN2YWxiYXJkLm5vIiwiZ3Mu''@;'; + put 'put ''dG0ubm8iLCJncy50ci5ubyIsImdzLnZhLm5vIiwiZ3MudmYubm8iLCJha3JlaGFtbi5ubyIsIlx4ZTVrcmVoYW1uLm5vIiwiYWxnYXJkLm5vIiwiXHhlNWxnXHhlNXJkLm5vIiwiYXJuYS5ubyIsImJydW11bmRkYWwubm8iLCJicnluZS5ubyIsImJyb25ub3lzdW5kLm5vIiwiYnJceGY4bm5c''@;'; + put 'put ''eGY4eXN1bmQubm8iLCJkcm9iYWsubm8iLCJkclx4ZjhiYWsubm8iLCJlZ2Vyc3VuZC5ubyIsImZldHN1bmQubm8iLCJmbG9yby5ubyIsImZsb3JceGY4Lm5vIiwiZnJlZHJpa3N0YWQubm8iLCJob2trc3VuZC5ubyIsImhvbmVmb3NzLm5vIiwiaFx4ZjhuZWZvc3Mubm8iLCJqZXNzaGVpbS5u''@;'; + put 'put ''byIsImpvcnBlbGFuZC5ubyIsImpceGY4cnBlbGFuZC5ubyIsImtpcmtlbmVzLm5vIiwia29wZXJ2aWsubm8iLCJrcm9rc3RhZGVsdmEubm8iLCJsYW5nZXZhZy5ubyIsImxhbmdldlx4ZTVnLm5vIiwibGVpcnZpay5ubyIsIm1qb25kYWxlbi5ubyIsIm1qXHhmOG5kYWxlbi5ubyIsIm1vLWkt''@;'; + put 'put ''cmFuYS5ubyIsIm1vc2pvZW4ubm8iLCJtb3NqXHhmOGVuLm5vIiwibmVzb2RkdGFuZ2VuLm5vIiwib3JrYW5nZXIubm8iLCJvc295cm8ubm8iLCJvc1x4Zjh5cm8ubm8iLCJyYWhvbHQubm8iLCJyXHhlNWhvbHQubm8iLCJzYW5kbmVzc2pvZW4ubm8iLCJzYW5kbmVzc2pceGY4ZW4ubm8iLCJz''@;'; + put 'put ''a2Vkc21va29yc2V0Lm5vIiwic2xhdHR1bS5ubyIsInNwamVsa2F2aWsubm8iLCJzdGF0aGVsbGUubm8iLCJzdGF2ZXJuLm5vIiwic3Rqb3JkYWxzaGFsc2VuLm5vIiwic3RqXHhmOHJkYWxzaGFsc2VuLm5vIiwidGFuYW5nZXIubm8iLCJ0cmFuYnkubm8iLCJ2b3NzZXZhbmdlbi5ubyIsImFm''@;'; + put 'put ''am9yZC5ubyIsIlx4ZTVmam9yZC5ubyIsImFnZGVuZXMubm8iLCJhbC5ubyIsIlx4ZTVsLm5vIiwiYWxlc3VuZC5ubyIsIlx4ZTVsZXN1bmQubm8iLCJhbHN0YWhhdWcubm8iLCJhbHRhLm5vIiwiXHhlMWx0XHhlMS5ubyIsImFsYWhlYWRqdS5ubyIsIlx4ZTFsYWhlYWRqdS5ubyIsImFsdmRh''@;'; + put 'put ''bC5ubyIsImFtbGkubm8iLCJceGU1bWxpLm5vIiwiYW1vdC5ubyIsIlx4ZTVtb3Qubm8iLCJhbmRlYnUubm8iLCJhbmRveS5ubyIsImFuZFx4Zjh5Lm5vIiwiYW5kYXN1b2xvLm5vIiwiYXJkYWwubm8iLCJceGU1cmRhbC5ubyIsImFyZW1hcmsubm8iLCJhcmVuZGFsLm5vIiwiXHhlNXMubm8i''@;'; + put 'put ''LCJhc2VyYWwubm8iLCJceGU1c2VyYWwubm8iLCJhc2tlci5ubyIsImFza2ltLm5vIiwiYXNrdm9sbC5ubyIsImFza295Lm5vIiwiYXNrXHhmOHkubm8iLCJhc25lcy5ubyIsIlx4ZTVzbmVzLm5vIiwiYXVkbmVkYWxuLm5vIiwiYXVrcmEubm8iLCJhdXJlLm5vIiwiYXVybGFuZC5ubyIsImF1''@;'; + put 'put ''cnNrb2ctaG9sYW5kLm5vIiwiYXVyc2tvZy1oXHhmOGxhbmQubm8iLCJhdXN0ZXZvbGwubm8iLCJhdXN0cmhlaW0ubm8iLCJhdmVyb3kubm8iLCJhdmVyXHhmOHkubm8iLCJiYWxlc3RyYW5kLm5vIiwiYmFsbGFuZ2VuLm5vIiwiYmFsYXQubm8iLCJiXHhlMWxceGUxdC5ubyIsImJhbHNmam9y''@;'; + put 'put ''ZC5ubyIsImJhaGNjYXZ1b3RuYS5ubyIsImJceGUxaGNjYXZ1b3RuYS5ubyIsImJhbWJsZS5ubyIsImJhcmR1Lm5vIiwiYmVhcmR1Lm5vIiwiYmVpYXJuLm5vIiwiYmFqZGRhci5ubyIsImJceGUxamRkYXIubm8iLCJiYWlkYXIubm8iLCJiXHhlMWlkXHhlMXIubm8iLCJiZXJnLm5vIiwiYmVy''@;'; + put 'put ''Z2VuLm5vIiwiYmVybGV2YWcubm8iLCJiZXJsZXZceGU1Zy5ubyIsImJlYXJhbHZhaGtpLm5vIiwiYmVhcmFsdlx4ZTFoa2kubm8iLCJiaW5kYWwubm8iLCJiaXJrZW5lcy5ubyIsImJqYXJrb3kubm8iLCJiamFya1x4Zjh5Lm5vIiwiYmplcmtyZWltLm5vIiwiYmp1Z24ubm8iLCJib2RvLm5v''@;'; + put 'put ''IiwiYm9kXHhmOC5ubyIsImJhZGFkZGphLm5vIiwiYlx4ZTVkXHhlNWRkalx4ZTUubm8iLCJidWRlamp1Lm5vIiwiYm9rbi5ubyIsImJyZW1hbmdlci5ubyIsImJyb25ub3kubm8iLCJiclx4Zjhublx4Zjh5Lm5vIiwiYnlnbGFuZC5ubyIsImJ5a2xlLm5vIiwiYmFydW0ubm8iLCJiXHhlNnJ1''@;'; + put 'put ''bS5ubyIsImJvLnRlbGVtYXJrLm5vIiwiYlx4ZjgudGVsZW1hcmsubm8iLCJiby5ub3JkbGFuZC5ubyIsImJceGY4Lm5vcmRsYW5kLm5vIiwiYmlldmF0Lm5vIiwiYmlldlx4ZTF0Lm5vIiwiYm9tbG8ubm8iLCJiXHhmOG1sby5ubyIsImJhdHNmam9yZC5ubyIsImJceGU1dHNmam9yZC5ubyIs''@;'; + put 'put ''ImJhaGNhdnVvdG5hLm5vIiwiYlx4ZTFoY2F2dW90bmEubm8iLCJkb3ZyZS5ubyIsImRyYW1tZW4ubm8iLCJkcmFuZ2VkYWwubm8iLCJkeXJveS5ubyIsImR5clx4Zjh5Lm5vIiwiZG9ubmEubm8iLCJkXHhmOG5uYS5ubyIsImVpZC5ubyIsImVpZGZqb3JkLm5vIiwiZWlkc2Jlcmcubm8iLCJl''@;'; + put 'put ''aWRza29nLm5vIiwiZWlkc3ZvbGwubm8iLCJlaWdlcnN1bmQubm8iLCJlbHZlcnVtLm5vIiwiZW5lYmFray5ubyIsImVuZ2VyZGFsLm5vIiwiZXRuZS5ubyIsImV0bmVkYWwubm8iLCJldmVuZXMubm8iLCJldmVuYXNzaS5ubyIsImV2ZW5ceGUxXHUwMTYxXHUwMTYxaS5ubyIsImV2amUtb2ct''@;'; + put 'put ''aG9ybm5lcy5ubyIsImZhcnN1bmQubm8iLCJmYXVza2Uubm8iLCJmdW9zc2tvLm5vIiwiZnVvaXNrdS5ubyIsImZlZGplLm5vIiwiZmV0Lm5vIiwiZmlubm95Lm5vIiwiZmlublx4Zjh5Lm5vIiwiZml0amFyLm5vIiwiZmphbGVyLm5vIiwiZmplbGwubm8iLCJmbGFrc3RhZC5ubyIsImZsYXRh''@;'; + put 'put ''bmdlci5ubyIsImZsZWtrZWZqb3JkLm5vIiwiZmxlc2Jlcmcubm8iLCJmbG9yYS5ubyIsImZsYS5ubyIsImZsXHhlNS5ubyIsImZvbGxkYWwubm8iLCJmb3JzYW5kLm5vIiwiZm9zbmVzLm5vIiwiZnJlaS5ubyIsImZyb2duLm5vIiwiZnJvbGFuZC5ubyIsImZyb3N0YS5ubyIsImZyYW5hLm5v''@;'; + put 'put ''IiwiZnJceGU2bmEubm8iLCJmcm95YS5ubyIsImZyXHhmOHlhLm5vIiwiZnVzYS5ubyIsImZ5cmVzZGFsLm5vIiwiZm9yZGUubm8iLCJmXHhmOHJkZS5ubyIsImdhbXZpay5ubyIsImdhbmdhdmlpa2Eubm8iLCJnXHhlMVx1MDE0Ymdhdmlpa2Eubm8iLCJnYXVsYXIubm8iLCJnYXVzZGFsLm5v''@;'; + put 'put ''IiwiZ2lsZGVza2FsLm5vIiwiZ2lsZGVza1x4ZTVsLm5vIiwiZ2lza2Uubm8iLCJnamVtbmVzLm5vIiwiZ2plcmRydW0ubm8iLCJnamVyc3RhZC5ubyIsImdqZXNkYWwubm8iLCJnam92aWsubm8iLCJnalx4Zjh2aWsubm8iLCJnbG9wcGVuLm5vIiwiZ29sLm5vIiwiZ3Jhbi5ubyIsImdyYW5l''@;'; + put 'put ''Lm5vIiwiZ3JhbnZpbi5ubyIsImdyYXRhbmdlbi5ubyIsImdyaW1zdGFkLm5vIiwiZ3Jvbmcubm8iLCJrcmFhbmdoa2Uubm8iLCJrclx4ZTVhbmdoa2Uubm8iLCJncnVlLm5vIiwiZ3VsZW4ubm8iLCJoYWRzZWwubm8iLCJoYWxkZW4ubm8iLCJoYWxzYS5ubyIsImhhbWFyLm5vIiwiaGFtYXJv''@;'; + put 'put ''eS5ubyIsImhhYm1lci5ubyIsImhceGUxYm1lci5ubyIsImhhcG1pci5ubyIsImhceGUxcG1pci5ubyIsImhhbW1lcmZlc3Qubm8iLCJoYW1tYXJmZWFzdGEubm8iLCJoXHhlMW1tXHhlMXJmZWFzdGEubm8iLCJoYXJhbS5ubyIsImhhcmVpZC5ubyIsImhhcnN0YWQubm8iLCJoYXN2aWsubm8i''@;'; + put 'put ''LCJha25vbHVva3RhLm5vIiwiXHhlMWtcdTAxNGJvbHVva3RhLm5vIiwiaGF0dGZqZWxsZGFsLm5vIiwiYWFyYm9ydGUubm8iLCJoYXVnZXN1bmQubm8iLCJoZW1uZS5ubyIsImhlbW5lcy5ubyIsImhlbXNlZGFsLm5vIiwiaGVyb3kubW9yZS1vZy1yb21zZGFsLm5vIiwiaGVyXHhmOHkubVx4''@;'; + put 'put ''ZjhyZS1vZy1yb21zZGFsLm5vIiwiaGVyb3kubm9yZGxhbmQubm8iLCJoZXJceGY4eS5ub3JkbGFuZC5ubyIsImhpdHJhLm5vIiwiaGphcnRkYWwubm8iLCJoamVsbWVsYW5kLm5vIiwiaG9ib2wubm8iLCJob2JceGY4bC5ubyIsImhvZi5ubyIsImhvbC5ubyIsImhvbGUubm8iLCJob2xtZXN0''@;'; + put 'put ''cmFuZC5ubyIsImhvbHRhbGVuLm5vIiwiaG9sdFx4ZTVsZW4ubm8iLCJob3JuaW5kYWwubm8iLCJob3J0ZW4ubm8iLCJodXJkYWwubm8iLCJodXJ1bS5ubyIsImh2YWxlci5ubyIsImh5bGxlc3RhZC5ubyIsImhhZ2Vib3N0YWQubm8iLCJoXHhlNmdlYm9zdGFkLm5vIiwiaG95YW5nZXIubm8i''@;'; + put 'put ''LCJoXHhmOHlhbmdlci5ubyIsImhveWxhbmRldC5ubyIsImhceGY4eWxhbmRldC5ubyIsImhhLm5vIiwiaFx4ZTUubm8iLCJpYmVzdGFkLm5vIiwiaW5kZXJveS5ubyIsImluZGVyXHhmOHkubm8iLCJpdmVsYW5kLm5vIiwiamV2bmFrZXIubm8iLCJqb25kYWwubm8iLCJqb2xzdGVyLm5vIiwi''@;'; + put 'put ''alx4Zjhsc3Rlci5ubyIsImthcmFzam9rLm5vIiwia2FyYXNqb2hrYS5ubyIsImtceGUxclx4ZTFcdTAxNjFqb2hrYS5ubyIsImthcmxzb3kubm8iLCJnYWxzYS5ubyIsImdceGUxbHNceGUxLm5vIiwia2FybW95Lm5vIiwia2FybVx4Zjh5Lm5vIiwia2F1dG9rZWluby5ubyIsImd1b3ZkYWdl''@;'; + put 'put ''YWlkbnUubm8iLCJrbGVwcC5ubyIsImtsYWJ1Lm5vIiwia2xceGU2YnUubm8iLCJrb25nc2Jlcmcubm8iLCJrb25nc3Zpbmdlci5ubyIsImtyYWdlcm8ubm8iLCJrcmFnZXJceGY4Lm5vIiwia3Jpc3RpYW5zYW5kLm5vIiwia3Jpc3RpYW5zdW5kLm5vIiwia3JvZHNoZXJhZC5ubyIsImtyXHhm''@;'; + put 'put ''OGRzaGVyYWQubm8iLCJrdmFsc3VuZC5ubyIsInJhaGtrZXJhdmp1Lm5vIiwiclx4ZTFoa2tlclx4ZTF2anUubm8iLCJrdmFtLm5vIiwia3ZpbmVzZGFsLm5vIiwia3Zpbm5oZXJhZC5ubyIsImt2aXRlc2VpZC5ubyIsImt2aXRzb3kubm8iLCJrdml0c1x4Zjh5Lm5vIiwia3ZhZmpvcmQubm8i''@;'; + put 'put ''LCJrdlx4ZTZmam9yZC5ubyIsImdpZWh0YXZ1b2F0bmEubm8iLCJrdmFuYW5nZW4ubm8iLCJrdlx4ZTZuYW5nZW4ubm8iLCJuYXZ1b3RuYS5ubyIsIm5ceGUxdnVvdG5hLm5vIiwia2Fmam9yZC5ubyIsImtceGU1ZmpvcmQubm8iLCJnYWl2dW90bmEubm8iLCJnXHhlMWl2dW90bmEubm8iLCJs''@;'; + put 'put ''YXJ2aWsubm8iLCJsYXZhbmdlbi5ubyIsImxhdmFnaXMubm8iLCJsb2FiYXQubm8iLCJsb2FiXHhlMXQubm8iLCJsZWJlc2J5Lm5vIiwiZGF2dmVzaWlkYS5ubyIsImxlaWthbmdlci5ubyIsImxlaXJmam9yZC5ubyIsImxla2Eubm8iLCJsZWtzdmlrLm5vIiwibGVudmlrLm5vIiwibGVhbmdh''@;'; + put 'put ''dmlpa2Eubm8iLCJsZWFcdTAxNGJnYXZpaWthLm5vIiwibGVzamEubm8iLCJsZXZhbmdlci5ubyIsImxpZXIubm8iLCJsaWVybmUubm8iLCJsaWxsZWhhbW1lci5ubyIsImxpbGxlc2FuZC5ubyIsImxpbmRlc25lcy5ubyIsImxpbmRhcy5ubyIsImxpbmRceGU1cy5ubyIsImxvbS5ubyIsImxv''@;'; + put 'put ''cHBhLm5vIiwibGFocHBpLm5vIiwibFx4ZTFocHBpLm5vIiwibHVuZC5ubyIsImx1bm5lci5ubyIsImx1cm95Lm5vIiwibHVyXHhmOHkubm8iLCJsdXN0ZXIubm8iLCJseW5nZGFsLm5vIiwibHluZ2VuLm5vIiwiaXZndS5ubyIsImxhcmRhbC5ubyIsImxlcmRhbC5ubyIsImxceGU2cmRhbC5u''@;'; + put 'put ''byIsImxvZGluZ2VuLm5vIiwibFx4ZjhkaW5nZW4ubm8iLCJsb3JlbnNrb2cubm8iLCJsXHhmOHJlbnNrb2cubm8iLCJsb3Rlbi5ubyIsImxceGY4dGVuLm5vIiwibWFsdmlrLm5vIiwibWFzb3kubm8iLCJtXHhlNXNceGY4eS5ubyIsIm11b3NhdC5ubyIsIm11b3NceGUxdC5ubyIsIm1hbmRh''@;'; + put 'put ''bC5ubyIsIm1hcmtlci5ubyIsIm1hcm5hcmRhbC5ubyIsIm1hc2Zqb3JkZW4ubm8iLCJtZWxhbmQubm8iLCJtZWxkYWwubm8iLCJtZWxodXMubm8iLCJtZWxveS5ubyIsIm1lbFx4Zjh5Lm5vIiwibWVyYWtlci5ubyIsIm1lclx4ZTVrZXIubm8iLCJtb2FyZWtlLm5vIiwibW9ceGU1cmVrZS5u''@;'; + put 'put ''byIsIm1pZHN1bmQubm8iLCJtaWR0cmUtZ2F1bGRhbC5ubyIsIm1vZGFsZW4ubm8iLCJtb2R1bS5ubyIsIm1vbGRlLm5vIiwibW9za2VuZXMubm8iLCJtb3NzLm5vIiwibW9zdmlrLm5vIiwibWFsc2Vsdi5ubyIsIm1ceGU1bHNlbHYubm8iLCJtYWxhdHZ1b3BtaS5ubyIsIm1ceGUxbGF0dnVv''@;'; + put 'put ''cG1pLm5vIiwibmFtZGFsc2VpZC5ubyIsImFlanJpZS5ubyIsIm5hbXNvcy5ubyIsIm5hbXNza29nYW4ubm8iLCJuYWFtZXNqZXZ1ZW1pZS5ubyIsIm5ceGU1XHhlNW1lc2pldnVlbWllLm5vIiwibGFha2VzdnVlbWllLm5vIiwibmFubmVzdGFkLm5vIiwibmFydmlrLm5vIiwibmFydmlpa2Eu''@;'; + put 'put ''bm8iLCJuYXVzdGRhbC5ubyIsIm5lZHJlLWVpa2VyLm5vIiwibmVzLmFrZXJzaHVzLm5vIiwibmVzLmJ1c2tlcnVkLm5vIiwibmVzbmEubm8iLCJuZXNvZGRlbi5ubyIsIm5lc3NlYnkubm8iLCJ1bmphcmdhLm5vIiwidW5qXHhlMXJnYS5ubyIsIm5lc3NldC5ubyIsIm5pc3NlZGFsLm5vIiwi''@;'; + put 'put ''bml0dGVkYWwubm8iLCJub3JkLWF1cmRhbC5ubyIsIm5vcmQtZnJvbi5ubyIsIm5vcmQtb2RhbC5ubyIsIm5vcmRkYWwubm8iLCJub3Jka2FwcC5ubyIsImRhdnZlbmphcmdhLm5vIiwiZGF2dmVualx4ZTFyZ2Eubm8iLCJub3JkcmUtbGFuZC5ubyIsIm5vcmRyZWlzYS5ubyIsInJhaXNhLm5v''@;'; + put 'put ''Iiwiclx4ZTFpc2Eubm8iLCJub3JlLW9nLXV2ZGFsLm5vIiwibm90b2RkZW4ubm8iLCJuYXJveS5ubyIsIm5ceGU2clx4Zjh5Lm5vIiwibm90dGVyb3kubm8iLCJuXHhmOHR0ZXJceGY4eS5ubyIsIm9kZGEubm8iLCJva3NuZXMubm8iLCJceGY4a3NuZXMubm8iLCJvcHBkYWwubm8iLCJvcHBl''@;'; + put 'put ''Z2FyZC5ubyIsIm9wcGVnXHhlNXJkLm5vIiwib3JrZGFsLm5vIiwib3JsYW5kLm5vIiwiXHhmOHJsYW5kLm5vIiwib3Jza29nLm5vIiwiXHhmOHJza29nLm5vIiwib3JzdGEubm8iLCJceGY4cnN0YS5ubyIsIm9zLmhlZG1hcmsubm8iLCJvcy5ob3JkYWxhbmQubm8iLCJvc2VuLm5vIiwib3N0''@;'; + put 'put ''ZXJveS5ubyIsIm9zdGVyXHhmOHkubm8iLCJvc3RyZS10b3Rlbi5ubyIsIlx4ZjhzdHJlLXRvdGVuLm5vIiwib3ZlcmhhbGxhLm5vIiwib3ZyZS1laWtlci5ubyIsIlx4Zjh2cmUtZWlrZXIubm8iLCJveWVyLm5vIiwiXHhmOHllci5ubyIsIm95Z2FyZGVuLm5vIiwiXHhmOHlnYXJkZW4ubm8i''@;'; + put 'put ''LCJveXN0cmUtc2xpZHJlLm5vIiwiXHhmOHlzdHJlLXNsaWRyZS5ubyIsInBvcnNhbmdlci5ubyIsInBvcnNhbmd1Lm5vIiwicG9yc1x4ZTFcdTAxNGJndS5ubyIsInBvcnNncnVubi5ubyIsInJhZG95Lm5vIiwicmFkXHhmOHkubm8iLCJyYWtrZXN0YWQubm8iLCJyYW5hLm5vIiwicnVvdmF0''@;'; + put 'put ''Lm5vIiwicmFuZGFiZXJnLm5vIiwicmF1bWEubm8iLCJyZW5kYWxlbi5ubyIsInJlbm5lYnUubm8iLCJyZW5uZXNveS5ubyIsInJlbm5lc1x4Zjh5Lm5vIiwicmluZGFsLm5vIiwicmluZ2VidS5ubyIsInJpbmdlcmlrZS5ubyIsInJpbmdzYWtlci5ubyIsInJpc3NhLm5vIiwicmlzb3Iubm8i''@;'; + put 'put ''LCJyaXNceGY4ci5ubyIsInJvYW4ubm8iLCJyb2xsYWcubm8iLCJyeWdnZS5ubyIsInJhbGluZ2VuLm5vIiwiclx4ZTZsaW5nZW4ubm8iLCJyb2RveS5ubyIsInJceGY4ZFx4Zjh5Lm5vIiwicm9tc2tvZy5ubyIsInJceGY4bXNrb2cubm8iLCJyb3Jvcy5ubyIsInJceGY4cm9zLm5vIiwicm9z''@;'; + put 'put ''dC5ubyIsInJceGY4c3Qubm8iLCJyb3lrZW4ubm8iLCJyXHhmOHlrZW4ubm8iLCJyb3lydmlrLm5vIiwiclx4Zjh5cnZpay5ubyIsInJhZGUubm8iLCJyXHhlNWRlLm5vIiwic2FsYW5nZW4ubm8iLCJzaWVsbGFrLm5vIiwic2FsdGRhbC5ubyIsInNhbGF0Lm5vIiwic1x4ZTFsXHhlMXQubm8i''@;'; + put 'put ''LCJzXHhlMWxhdC5ubyIsInNhbW5hbmdlci5ubyIsInNhbmRlLm1vcmUtb2ctcm9tc2RhbC5ubyIsInNhbmRlLm1ceGY4cmUtb2ctcm9tc2RhbC5ubyIsInNhbmRlLnZlc3Rmb2xkLm5vIiwic2FuZGVmam9yZC5ubyIsInNhbmRuZXMubm8iLCJzYW5kb3kubm8iLCJzYW5kXHhmOHkubm8iLCJz''@;'; + put 'put ''YXJwc2Jvcmcubm8iLCJzYXVkYS5ubyIsInNhdWhlcmFkLm5vIiwic2VsLm5vIiwic2VsYnUubm8iLCJzZWxqZS5ubyIsInNlbGpvcmQubm8iLCJzaWdkYWwubm8iLCJzaWxqYW4ubm8iLCJzaXJkYWwubm8iLCJza2F1bi5ubyIsInNrZWRzbW8ubm8iLCJza2kubm8iLCJza2llbi5ubyIsInNr''@;'; + put 'put ''aXB0dmV0Lm5vIiwic2tqZXJ2b3kubm8iLCJza2plcnZceGY4eS5ubyIsInNraWVydmEubm8iLCJza2llcnZceGUxLm5vIiwic2tqYWsubm8iLCJza2pceGU1ay5ubyIsInNrb2RqZS5ubyIsInNrYW5sYW5kLm5vIiwic2tceGU1bmxhbmQubm8iLCJza2FuaXQubm8iLCJza1x4ZTFuaXQubm8i''@;'; + put 'put ''LCJzbW9sYS5ubyIsInNtXHhmOGxhLm5vIiwic25pbGxmam9yZC5ubyIsInNuYXNhLm5vIiwic25ceGU1c2Eubm8iLCJzbm9hc2Eubm8iLCJzbmFhc2Uubm8iLCJzblx4ZTVhc2Uubm8iLCJzb2duZGFsLm5vIiwic29rbmRhbC5ubyIsInNvbGEubm8iLCJzb2x1bmQubm8iLCJzb25nZGFsZW4u''@;'; + put 'put ''bm8iLCJzb3J0bGFuZC5ubyIsInNweWRlYmVyZy5ubyIsInN0YW5nZS5ubyIsInN0YXZhbmdlci5ubyIsInN0ZWlnZW4ubm8iLCJzdGVpbmtqZXIubm8iLCJzdGpvcmRhbC5ubyIsInN0alx4ZjhyZGFsLm5vIiwic3Rva2tlLm5vIiwic3Rvci1lbHZkYWwubm8iLCJzdG9yZC5ubyIsInN0b3Jk''@;'; + put 'put ''YWwubm8iLCJzdG9yZmpvcmQubm8iLCJvbWFzdnVvdG5hLm5vIiwic3RyYW5kLm5vIiwic3RyYW5kYS5ubyIsInN0cnluLm5vIiwic3VsYS5ubyIsInN1bGRhbC5ubyIsInN1bmQubm8iLCJzdW5uZGFsLm5vIiwic3VybmFkYWwubm8iLCJzdmVpby5ubyIsInN2ZWx2aWsubm8iLCJzeWtreWx2''@;'; + put 'put ''ZW4ubm8iLCJzb2duZS5ubyIsInNceGY4Z25lLm5vIiwic29tbmEubm8iLCJzXHhmOG1uYS5ubyIsInNvbmRyZS1sYW5kLm5vIiwic1x4ZjhuZHJlLWxhbmQubm8iLCJzb3ItYXVyZGFsLm5vIiwic1x4ZjhyLWF1cmRhbC5ubyIsInNvci1mcm9uLm5vIiwic1x4ZjhyLWZyb24ubm8iLCJzb3It''@;'; + put 'put ''b2RhbC5ubyIsInNceGY4ci1vZGFsLm5vIiwic29yLXZhcmFuZ2VyLm5vIiwic1x4ZjhyLXZhcmFuZ2VyLm5vIiwibWF0dGEtdmFyamphdC5ubyIsIm1ceGUxdHRhLXZceGUxcmpqYXQubm8iLCJzb3Jmb2xkLm5vIiwic1x4ZjhyZm9sZC5ubyIsInNvcnJlaXNhLm5vIiwic1x4ZjhycmVpc2Eu''@;'; + put 'put ''bm8iLCJzb3J1bS5ubyIsInNceGY4cnVtLm5vIiwidGFuYS5ubyIsImRlYXRudS5ubyIsInRpbWUubm8iLCJ0aW5ndm9sbC5ubyIsInRpbm4ubm8iLCJ0amVsZHN1bmQubm8iLCJkaWVsZGRhbnVvcnJpLm5vIiwidGpvbWUubm8iLCJ0alx4ZjhtZS5ubyIsInRva2tlLm5vIiwidG9sZ2Eubm8i''@;'; + put 'put ''LCJ0b3Jza2VuLm5vIiwidHJhbm95Lm5vIiwidHJhblx4Zjh5Lm5vIiwidHJvbXNvLm5vIiwidHJvbXNceGY4Lm5vIiwidHJvbXNhLm5vIiwicm9tc2Eubm8iLCJ0cm9uZGhlaW0ubm8iLCJ0cm9hbmRpbi5ubyIsInRyeXNpbC5ubyIsInRyYW5hLm5vIiwidHJceGU2bmEubm8iLCJ0cm9nc3Rh''@;'; + put 'put ''ZC5ubyIsInRyXHhmOGdzdGFkLm5vIiwidHZlZGVzdHJhbmQubm8iLCJ0eWRhbC5ubyIsInR5bnNldC5ubyIsInR5c2Zqb3JkLm5vIiwiZGl2dGFzdnVvZG5hLm5vIiwiZGl2dHRhc3Z1b3RuYS5ubyIsInR5c25lcy5ubyIsInR5c3Zhci5ubyIsInR5c3ZceGU2ci5ubyIsInRvbnNiZXJnLm5v''@;'; + put 'put ''IiwidFx4Zjhuc2Jlcmcubm8iLCJ1bGxlbnNha2VyLm5vIiwidWxsZW5zdmFuZy5ubyIsInVsdmlrLm5vIiwidXRzaXJhLm5vIiwidmFkc28ubm8iLCJ2YWRzXHhmOC5ubyIsImNhaGNlc3VvbG8ubm8iLCJcdTAxMGRceGUxaGNlc3VvbG8ubm8iLCJ2YWtzZGFsLm5vIiwidmFsbGUubm8iLCJ2''@;'; + put 'put ''YW5nLm5vIiwidmFueWx2ZW4ubm8iLCJ2YXJkby5ubyIsInZhcmRceGY4Lm5vIiwidmFyZ2dhdC5ubyIsInZceGUxcmdnXHhlMXQubm8iLCJ2ZWZzbi5ubyIsInZhYXBzdGUubm8iLCJ2ZWdhLm5vIiwidmVnYXJzaGVpLm5vIiwidmVnXHhlNXJzaGVpLm5vIiwidmVubmVzbGEubm8iLCJ2ZXJk''@;'; + put 'put ''YWwubm8iLCJ2ZXJyYW4ubm8iLCJ2ZXN0Ynkubm8iLCJ2ZXN0bmVzLm5vIiwidmVzdHJlLXNsaWRyZS5ubyIsInZlc3RyZS10b3Rlbi5ubyIsInZlc3R2YWdveS5ubyIsInZlc3R2XHhlNWdceGY4eS5ubyIsInZldmVsc3RhZC5ubyIsInZpay5ubyIsInZpa25hLm5vIiwidmluZGFmam9yZC5u''@;'; + put 'put ''byIsInZvbGRhLm5vIiwidm9zcy5ubyIsInZhcm95Lm5vIiwidlx4ZTZyXHhmOHkubm8iLCJ2YWdhbi5ubyIsInZceGU1Z2FuLm5vIiwidm9hZ2F0Lm5vIiwidmFnc295Lm5vIiwidlx4ZTVnc1x4Zjh5Lm5vIiwidmFnYS5ubyIsInZceGU1Z1x4ZTUubm8iLCJ2YWxlci5vc3Rmb2xkLm5vIiwi''@;'; + put 'put ''dlx4ZTVsZXIuXHhmOHN0Zm9sZC5ubyIsInZhbGVyLmhlZG1hcmsubm8iLCJ2XHhlNWxlci5oZWRtYXJrLm5vIiwiKi5ucCIsIm5yIiwiYml6Lm5yIiwiaW5mby5uciIsImdvdi5uciIsImVkdS5uciIsIm9yZy5uciIsIm5ldC5uciIsImNvbS5uciIsIm51IiwibnoiLCJhYy5ueiIsImNvLm56''@;'; + put 'put ''IiwiY3JpLm56IiwiZ2Vlay5ueiIsImdlbi5ueiIsImdvdnQubnoiLCJoZWFsdGgubnoiLCJpd2kubnoiLCJraXdpLm56IiwibWFvcmkubnoiLCJtaWwubnoiLCJtXHUwMTAxb3JpLm56IiwibmV0Lm56Iiwib3JnLm56IiwicGFybGlhbWVudC5ueiIsInNjaG9vbC5ueiIsIm9tIiwiY28ub20i''@;'; + put 'put ''LCJjb20ub20iLCJlZHUub20iLCJnb3Yub20iLCJtZWQub20iLCJtdXNldW0ub20iLCJuZXQub20iLCJvcmcub20iLCJwcm8ub20iLCJvbmlvbiIsIm9yZyIsInBhIiwiYWMucGEiLCJnb2IucGEiLCJjb20ucGEiLCJvcmcucGEiLCJzbGQucGEiLCJlZHUucGEiLCJuZXQucGEiLCJpbmcucGEi''@;'; + put 'put ''LCJhYm8ucGEiLCJtZWQucGEiLCJub20ucGEiLCJwZSIsImVkdS5wZSIsImdvYi5wZSIsIm5vbS5wZSIsIm1pbC5wZSIsIm9yZy5wZSIsImNvbS5wZSIsIm5ldC5wZSIsInBmIiwiY29tLnBmIiwib3JnLnBmIiwiZWR1LnBmIiwiKi5wZyIsInBoIiwiY29tLnBoIiwibmV0LnBoIiwib3JnLnBo''@;'; + put 'put ''IiwiZ292LnBoIiwiZWR1LnBoIiwibmdvLnBoIiwibWlsLnBoIiwiaS5waCIsInBrIiwiY29tLnBrIiwibmV0LnBrIiwiZWR1LnBrIiwib3JnLnBrIiwiZmFtLnBrIiwiYml6LnBrIiwid2ViLnBrIiwiZ292LnBrIiwiZ29iLnBrIiwiZ29rLnBrIiwiZ29uLnBrIiwiZ29wLnBrIiwiZ29zLnBr''@;'; + put 'put ''IiwiaW5mby5wayIsInBsIiwiY29tLnBsIiwibmV0LnBsIiwib3JnLnBsIiwiYWlkLnBsIiwiYWdyby5wbCIsImF0bS5wbCIsImF1dG8ucGwiLCJiaXoucGwiLCJlZHUucGwiLCJnbWluYS5wbCIsImdzbS5wbCIsImluZm8ucGwiLCJtYWlsLnBsIiwibWlhc3RhLnBsIiwibWVkaWEucGwiLCJt''@;'; + put 'put ''aWwucGwiLCJuaWVydWNob21vc2NpLnBsIiwibm9tLnBsIiwicGMucGwiLCJwb3dpYXQucGwiLCJwcml2LnBsIiwicmVhbGVzdGF0ZS5wbCIsInJlbC5wbCIsInNleC5wbCIsInNob3AucGwiLCJza2xlcC5wbCIsInNvcy5wbCIsInN6a29sYS5wbCIsInRhcmdpLnBsIiwidG0ucGwiLCJ0b3Vy''@;'; + put 'put ''aXNtLnBsIiwidHJhdmVsLnBsIiwidHVyeXN0eWthLnBsIiwiZ292LnBsIiwiYXAuZ292LnBsIiwiaWMuZ292LnBsIiwiaXMuZ292LnBsIiwidXMuZ292LnBsIiwia21wc3AuZ292LnBsIiwia3Bwc3AuZ292LnBsIiwia3dwc3AuZ292LnBsIiwicHNwLmdvdi5wbCIsIndza3IuZ292LnBsIiwi''@;'; + put 'put ''a3dwLmdvdi5wbCIsIm13Lmdvdi5wbCIsInVnLmdvdi5wbCIsInVtLmdvdi5wbCIsInVtaWcuZ292LnBsIiwidWdpbS5nb3YucGwiLCJ1cG93Lmdvdi5wbCIsInV3Lmdvdi5wbCIsInN0YXJvc3R3by5nb3YucGwiLCJwYS5nb3YucGwiLCJwby5nb3YucGwiLCJwc3NlLmdvdi5wbCIsInB1cC5n''@;'; + put 'put ''b3YucGwiLCJyemd3Lmdvdi5wbCIsInNhLmdvdi5wbCIsInNvLmdvdi5wbCIsInNyLmdvdi5wbCIsIndzYS5nb3YucGwiLCJza28uZ292LnBsIiwidXpzLmdvdi5wbCIsIndpaWguZ292LnBsIiwid2luYi5nb3YucGwiLCJwaW5iLmdvdi5wbCIsIndpb3MuZ292LnBsIiwid2l0ZC5nb3YucGwi''@;'; + put 'put ''LCJ3em1pdXcuZ292LnBsIiwicGl3Lmdvdi5wbCIsIndpdy5nb3YucGwiLCJncml3Lmdvdi5wbCIsIndpZi5nb3YucGwiLCJvdW0uZ292LnBsIiwic2RuLmdvdi5wbCIsInpwLmdvdi5wbCIsInVwcG8uZ292LnBsIiwibXVwLmdvdi5wbCIsInd1b3ouZ292LnBsIiwia29uc3VsYXQuZ292LnBs''@;'; + put 'put ''Iiwib2lybS5nb3YucGwiLCJhdWd1c3Rvdy5wbCIsImJhYmlhLWdvcmEucGwiLCJiZWR6aW4ucGwiLCJiZXNraWR5LnBsIiwiYmlhbG93aWV6YS5wbCIsImJpYWx5c3Rvay5wbCIsImJpZWxhd2EucGwiLCJiaWVzemN6YWR5LnBsIiwiYm9sZXNsYXdpZWMucGwiLCJieWRnb3N6Y3oucGwiLCJi''@;'; + put 'put ''eXRvbS5wbCIsImNpZXN6eW4ucGwiLCJjemVsYWR6LnBsIiwiY3plc3QucGwiLCJkbHVnb2xla2EucGwiLCJlbGJsYWcucGwiLCJlbGsucGwiLCJnbG9nb3cucGwiLCJnbmllem5vLnBsIiwiZ29ybGljZS5wbCIsImdyYWpld28ucGwiLCJpbGF3YS5wbCIsImphd29yem5vLnBsIiwiamVsZW5p''@;'; + put 'put ''YS1nb3JhLnBsIiwiamdvcmEucGwiLCJrYWxpc3oucGwiLCJrYXppbWllcnotZG9sbnkucGwiLCJrYXJwYWN6LnBsIiwia2FydHV6eS5wbCIsImthc3p1YnkucGwiLCJrYXRvd2ljZS5wbCIsImtlcG5vLnBsIiwia2V0cnp5bi5wbCIsImtsb2R6a28ucGwiLCJrb2JpZXJ6eWNlLnBsIiwia29s''@;'; + put 'put ''b2JyemVnLnBsIiwia29uaW4ucGwiLCJrb25za293b2xhLnBsIiwia3V0bm8ucGwiLCJsYXB5LnBsIiwibGVib3JrLnBsIiwibGVnbmljYS5wbCIsImxlemFqc2sucGwiLCJsaW1hbm93YS5wbCIsImxvbXphLnBsIiwibG93aWN6LnBsIiwibHViaW4ucGwiLCJsdWtvdy5wbCIsIm1hbGJvcmsu''@;'; + put 'put ''cGwiLCJtYWxvcG9sc2thLnBsIiwibWF6b3dzemUucGwiLCJtYXp1cnkucGwiLCJtaWVsZWMucGwiLCJtaWVsbm8ucGwiLCJtcmFnb3dvLnBsIiwibmFrbG8ucGwiLCJub3dhcnVkYS5wbCIsIm55c2EucGwiLCJvbGF3YS5wbCIsIm9sZWNrby5wbCIsIm9sa3Vzei5wbCIsIm9sc3p0eW4ucGwi''@;'; + put 'put ''LCJvcG9jem5vLnBsIiwib3BvbGUucGwiLCJvc3Ryb2RhLnBsIiwib3N0cm9sZWthLnBsIiwib3N0cm93aWVjLnBsIiwib3N0cm93d2xrcC5wbCIsInBpbGEucGwiLCJwaXN6LnBsIiwicG9kaGFsZS5wbCIsInBvZGxhc2llLnBsIiwicG9sa293aWNlLnBsIiwicG9tb3J6ZS5wbCIsInBvbW9y''@;'; + put 'put ''c2tpZS5wbCIsInByb2Nob3dpY2UucGwiLCJwcnVzemtvdy5wbCIsInByemV3b3Jzay5wbCIsInB1bGF3eS5wbCIsInJhZG9tLnBsIiwicmF3YS1tYXoucGwiLCJyeWJuaWsucGwiLCJyemVzem93LnBsIiwic2Fub2sucGwiLCJzZWpueS5wbCIsInNsYXNrLnBsIiwic2x1cHNrLnBsIiwic29z''@;'; + put 'put ''bm93aWVjLnBsIiwic3RhbG93YS13b2xhLnBsIiwic2tvY3pvdy5wbCIsInN0YXJhY2hvd2ljZS5wbCIsInN0YXJnYXJkLnBsIiwic3V3YWxraS5wbCIsInN3aWRuaWNhLnBsIiwic3dpZWJvZHppbi5wbCIsInN3aW5vdWpzY2llLnBsIiwic3pjemVjaW4ucGwiLCJzemN6eXRuby5wbCIsInRh''@;'; + put 'put ''cm5vYnJ6ZWcucGwiLCJ0Z29yeS5wbCIsInR1cmVrLnBsIiwidHljaHkucGwiLCJ1c3RrYS5wbCIsIndhbGJyenljaC5wbCIsIndhcm1pYS5wbCIsIndhcnN6YXdhLnBsIiwid2F3LnBsIiwid2Vncm93LnBsIiwid2llbHVuLnBsIiwid2xvY2wucGwiLCJ3bG9jbGF3ZWsucGwiLCJ3b2R6aXNs''@;'; + put 'put ''YXcucGwiLCJ3b2xvbWluLnBsIiwid3JvY2xhdy5wbCIsInphY2hwb21vci5wbCIsInphZ2FuLnBsIiwiemFyb3cucGwiLCJ6Z29yYS5wbCIsInpnb3J6ZWxlYy5wbCIsInBtIiwicG4iLCJnb3YucG4iLCJjby5wbiIsIm9yZy5wbiIsImVkdS5wbiIsIm5ldC5wbiIsInBvc3QiLCJwciIsImNv''@;'; + put 'put ''bS5wciIsIm5ldC5wciIsIm9yZy5wciIsImdvdi5wciIsImVkdS5wciIsImlzbGEucHIiLCJwcm8ucHIiLCJiaXoucHIiLCJpbmZvLnByIiwibmFtZS5wciIsImVzdC5wciIsInByb2YucHIiLCJhYy5wciIsInBybyIsImFhYS5wcm8iLCJhY2EucHJvIiwiYWNjdC5wcm8iLCJhdm9jYXQucHJv''@;'; + put 'put ''IiwiYmFyLnBybyIsImNwYS5wcm8iLCJlbmcucHJvIiwianVyLnBybyIsImxhdy5wcm8iLCJtZWQucHJvIiwicmVjaHQucHJvIiwicHMiLCJlZHUucHMiLCJnb3YucHMiLCJzZWMucHMiLCJwbG8ucHMiLCJjb20ucHMiLCJvcmcucHMiLCJuZXQucHMiLCJwdCIsIm5ldC5wdCIsImdvdi5wdCIs''@;'; + put 'put ''Im9yZy5wdCIsImVkdS5wdCIsImludC5wdCIsInB1YmwucHQiLCJjb20ucHQiLCJub21lLnB0IiwicHciLCJjby5wdyIsIm5lLnB3Iiwib3IucHciLCJlZC5wdyIsImdvLnB3IiwiYmVsYXUucHciLCJweSIsImNvbS5weSIsImNvb3AucHkiLCJlZHUucHkiLCJnb3YucHkiLCJtaWwucHkiLCJu''@;'; + put 'put ''ZXQucHkiLCJvcmcucHkiLCJxYSIsImNvbS5xYSIsImVkdS5xYSIsImdvdi5xYSIsIm1pbC5xYSIsIm5hbWUucWEiLCJuZXQucWEiLCJvcmcucWEiLCJzY2gucWEiLCJyZSIsImFzc28ucmUiLCJjb20ucmUiLCJub20ucmUiLCJybyIsImFydHMucm8iLCJjb20ucm8iLCJmaXJtLnJvIiwiaW5m''@;'; + put 'put ''by5ybyIsIm5vbS5ybyIsIm50LnJvIiwib3JnLnJvIiwicmVjLnJvIiwic3RvcmUucm8iLCJ0bS5ybyIsInd3dy5ybyIsInJzIiwiYWMucnMiLCJjby5ycyIsImVkdS5ycyIsImdvdi5ycyIsImluLnJzIiwib3JnLnJzIiwicnUiLCJydyIsImFjLnJ3IiwiY28ucnciLCJjb29wLnJ3IiwiZ292''@;'; + put 'put ''LnJ3IiwibWlsLnJ3IiwibmV0LnJ3Iiwib3JnLnJ3Iiwic2EiLCJjb20uc2EiLCJuZXQuc2EiLCJvcmcuc2EiLCJnb3Yuc2EiLCJtZWQuc2EiLCJwdWIuc2EiLCJlZHUuc2EiLCJzY2guc2EiLCJzYiIsImNvbS5zYiIsImVkdS5zYiIsImdvdi5zYiIsIm5ldC5zYiIsIm9yZy5zYiIsInNjIiwi''@;'; + put 'put ''Y29tLnNjIiwiZ292LnNjIiwibmV0LnNjIiwib3JnLnNjIiwiZWR1LnNjIiwic2QiLCJjb20uc2QiLCJuZXQuc2QiLCJvcmcuc2QiLCJlZHUuc2QiLCJtZWQuc2QiLCJ0di5zZCIsImdvdi5zZCIsImluZm8uc2QiLCJzZSIsImEuc2UiLCJhYy5zZSIsImIuc2UiLCJiZC5zZSIsImJyYW5kLnNl''@;'; + put 'put ''IiwiYy5zZSIsImQuc2UiLCJlLnNlIiwiZi5zZSIsImZoLnNlIiwiZmhzay5zZSIsImZodi5zZSIsImcuc2UiLCJoLnNlIiwiaS5zZSIsImsuc2UiLCJrb21mb3JiLnNlIiwia29tbXVuYWxmb3JidW5kLnNlIiwia29tdnV4LnNlIiwibC5zZSIsImxhbmJpYi5zZSIsIm0uc2UiLCJuLnNlIiwi''@;'; + put 'put ''bmF0dXJicnVrc2d5bW4uc2UiLCJvLnNlIiwib3JnLnNlIiwicC5zZSIsInBhcnRpLnNlIiwicHAuc2UiLCJwcmVzcy5zZSIsInIuc2UiLCJzLnNlIiwidC5zZSIsInRtLnNlIiwidS5zZSIsIncuc2UiLCJ4LnNlIiwieS5zZSIsInouc2UiLCJzZyIsImNvbS5zZyIsIm5ldC5zZyIsIm9yZy5z''@;'; + put 'put ''ZyIsImdvdi5zZyIsImVkdS5zZyIsInBlci5zZyIsInNoIiwiY29tLnNoIiwibmV0LnNoIiwiZ292LnNoIiwib3JnLnNoIiwibWlsLnNoIiwic2kiLCJzaiIsInNrIiwic2wiLCJjb20uc2wiLCJuZXQuc2wiLCJlZHUuc2wiLCJnb3Yuc2wiLCJvcmcuc2wiLCJzbSIsInNuIiwiYXJ0LnNuIiwi''@;'; + put 'put ''Y29tLnNuIiwiZWR1LnNuIiwiZ291di5zbiIsIm9yZy5zbiIsInBlcnNvLnNuIiwidW5pdi5zbiIsInNvIiwiY29tLnNvIiwiZWR1LnNvIiwiZ292LnNvIiwibWUuc28iLCJuZXQuc28iLCJvcmcuc28iLCJzciIsInNzIiwiYml6LnNzIiwiY29tLnNzIiwiZWR1LnNzIiwiZ292LnNzIiwibmV0''@;'; + put 'put ''LnNzIiwib3JnLnNzIiwic3QiLCJjby5zdCIsImNvbS5zdCIsImNvbnN1bGFkby5zdCIsImVkdS5zdCIsImVtYmFpeGFkYS5zdCIsImdvdi5zdCIsIm1pbC5zdCIsIm5ldC5zdCIsIm9yZy5zdCIsInByaW5jaXBlLnN0Iiwic2FvdG9tZS5zdCIsInN0b3JlLnN0Iiwic3UiLCJzdiIsImNvbS5z''@;'; + put 'put ''diIsImVkdS5zdiIsImdvYi5zdiIsIm9yZy5zdiIsInJlZC5zdiIsInN4IiwiZ292LnN4Iiwic3kiLCJlZHUuc3kiLCJnb3Yuc3kiLCJuZXQuc3kiLCJtaWwuc3kiLCJjb20uc3kiLCJvcmcuc3kiLCJzeiIsImNvLnN6IiwiYWMuc3oiLCJvcmcuc3oiLCJ0YyIsInRkIiwidGVsIiwidGYiLCJ0''@;'; + put 'put ''ZyIsInRoIiwiYWMudGgiLCJjby50aCIsImdvLnRoIiwiaW4udGgiLCJtaS50aCIsIm5ldC50aCIsIm9yLnRoIiwidGoiLCJhYy50aiIsImJpei50aiIsImNvLnRqIiwiY29tLnRqIiwiZWR1LnRqIiwiZ28udGoiLCJnb3YudGoiLCJpbnQudGoiLCJtaWwudGoiLCJuYW1lLnRqIiwibmV0LnRq''@;'; + put 'put ''IiwibmljLnRqIiwib3JnLnRqIiwidGVzdC50aiIsIndlYi50aiIsInRrIiwidGwiLCJnb3YudGwiLCJ0bSIsImNvbS50bSIsImNvLnRtIiwib3JnLnRtIiwibmV0LnRtIiwibm9tLnRtIiwiZ292LnRtIiwibWlsLnRtIiwiZWR1LnRtIiwidG4iLCJjb20udG4iLCJlbnMudG4iLCJmaW4udG4i''@;'; + put 'put ''LCJnb3YudG4iLCJpbmQudG4iLCJpbnRsLnRuIiwibmF0LnRuIiwibmV0LnRuIiwib3JnLnRuIiwiaW5mby50biIsInBlcnNvLnRuIiwidG91cmlzbS50biIsImVkdW5ldC50biIsInJucnQudG4iLCJybnMudG4iLCJybnUudG4iLCJtaW5jb20udG4iLCJhZ3JpbmV0LnRuIiwiZGVmZW5zZS50''@;'; + put 'put ''biIsInR1cmVuLnRuIiwidG8iLCJjb20udG8iLCJnb3YudG8iLCJuZXQudG8iLCJvcmcudG8iLCJlZHUudG8iLCJtaWwudG8iLCJ0ciIsImF2LnRyIiwiYmJzLnRyIiwiYmVsLnRyIiwiYml6LnRyIiwiY29tLnRyIiwiZHIudHIiLCJlZHUudHIiLCJnZW4udHIiLCJnb3YudHIiLCJpbmZvLnRy''@;'; + put 'put ''IiwibWlsLnRyIiwiazEyLnRyIiwia2VwLnRyIiwibmFtZS50ciIsIm5ldC50ciIsIm9yZy50ciIsInBvbC50ciIsInRlbC50ciIsInRzay50ciIsInR2LnRyIiwid2ViLnRyIiwibmMudHIiLCJnb3YubmMudHIiLCJ0dCIsImNvLnR0IiwiY29tLnR0Iiwib3JnLnR0IiwibmV0LnR0IiwiYml6''@;'; + put 'put ''LnR0IiwiaW5mby50dCIsInByby50dCIsImludC50dCIsImNvb3AudHQiLCJqb2JzLnR0IiwibW9iaS50dCIsInRyYXZlbC50dCIsIm11c2V1bS50dCIsImFlcm8udHQiLCJuYW1lLnR0IiwiZ292LnR0IiwiZWR1LnR0IiwidHYiLCJ0dyIsImVkdS50dyIsImdvdi50dyIsIm1pbC50dyIsImNv''@;'; + put 'put ''bS50dyIsIm5ldC50dyIsIm9yZy50dyIsImlkdi50dyIsImdhbWUudHciLCJlYml6LnR3IiwiY2x1Yi50dyIsIlx1N2RiMlx1OGRlZi50dyIsIlx1N2Q0NFx1N2U1NC50dyIsIlx1NTU0Nlx1Njk2ZC50dyIsInR6IiwiYWMudHoiLCJjby50eiIsImdvLnR6IiwiaG90ZWwudHoiLCJpbmZvLnR6''@;'; + put 'put ''IiwibWUudHoiLCJtaWwudHoiLCJtb2JpLnR6IiwibmUudHoiLCJvci50eiIsInNjLnR6IiwidHYudHoiLCJ1YSIsImNvbS51YSIsImVkdS51YSIsImdvdi51YSIsImluLnVhIiwibmV0LnVhIiwib3JnLnVhIiwiY2hlcmthc3N5LnVhIiwiY2hlcmthc3kudWEiLCJjaGVybmlnb3YudWEiLCJj''@;'; + put 'put ''aGVybmloaXYudWEiLCJjaGVybml2dHNpLnVhIiwiY2hlcm5vdnRzeS51YSIsImNrLnVhIiwiY24udWEiLCJjci51YSIsImNyaW1lYS51YSIsImN2LnVhIiwiZG4udWEiLCJkbmVwcm9wZXRyb3Zzay51YSIsImRuaXByb3BldHJvdnNrLnVhIiwiZG9taW5pYy51YSIsImRvbmV0c2sudWEiLCJk''@;'; + put 'put ''cC51YSIsImlmLnVhIiwiaXZhbm8tZnJhbmtpdnNrLnVhIiwia2gudWEiLCJraGFya2l2LnVhIiwia2hhcmtvdi51YSIsImtoZXJzb24udWEiLCJraG1lbG5pdHNraXkudWEiLCJraG1lbG55dHNreWkudWEiLCJraWV2LnVhIiwia2lyb3ZvZ3JhZC51YSIsImttLnVhIiwia3IudWEiLCJrcnlt''@;'; + put 'put ''LnVhIiwia3MudWEiLCJrdi51YSIsImt5aXYudWEiLCJsZy51YSIsImx0LnVhIiwibHVnYW5zay51YSIsImx1dHNrLnVhIiwibHYudWEiLCJsdml2LnVhIiwibWsudWEiLCJteWtvbGFpdi51YSIsIm5pa29sYWV2LnVhIiwib2QudWEiLCJvZGVzYS51YSIsIm9kZXNzYS51YSIsInBsLnVhIiwi''@;'; + put 'put ''cG9sdGF2YS51YSIsInJpdm5lLnVhIiwicm92bm8udWEiLCJydi51YSIsInNiLnVhIiwic2ViYXN0b3BvbC51YSIsInNldmFzdG9wb2wudWEiLCJzbS51YSIsInN1bXkudWEiLCJ0ZS51YSIsInRlcm5vcGlsLnVhIiwidXoudWEiLCJ1emhnb3JvZC51YSIsInZpbm5pY2EudWEiLCJ2aW5ueXRz''@;'; + put 'put ''aWEudWEiLCJ2bi51YSIsInZvbHluLnVhIiwieWFsdGEudWEiLCJ6YXBvcml6aHpoZS51YSIsInphcG9yaXpoemhpYS51YSIsInpoaXRvbWlyLnVhIiwiemh5dG9teXIudWEiLCJ6cC51YSIsInp0LnVhIiwidWciLCJjby51ZyIsIm9yLnVnIiwiYWMudWciLCJzYy51ZyIsImdvLnVnIiwibmUu''@;'; + put 'put ''dWciLCJjb20udWciLCJvcmcudWciLCJ1ayIsImFjLnVrIiwiY28udWsiLCJnb3YudWsiLCJsdGQudWsiLCJtZS51ayIsIm5ldC51ayIsIm5ocy51ayIsIm9yZy51ayIsInBsYy51ayIsInBvbGljZS51ayIsIiouc2NoLnVrIiwidXMiLCJkbmkudXMiLCJmZWQudXMiLCJpc2EudXMiLCJraWRz''@;'; + put 'put ''LnVzIiwibnNuLnVzIiwiYWsudXMiLCJhbC51cyIsImFyLnVzIiwiYXMudXMiLCJhei51cyIsImNhLnVzIiwiY28udXMiLCJjdC51cyIsImRjLnVzIiwiZGUudXMiLCJmbC51cyIsImdhLnVzIiwiZ3UudXMiLCJoaS51cyIsImlhLnVzIiwiaWQudXMiLCJpbC51cyIsImluLnVzIiwia3MudXMi''@;'; + put 'put ''LCJreS51cyIsImxhLnVzIiwibWEudXMiLCJtZC51cyIsIm1lLnVzIiwibWkudXMiLCJtbi51cyIsIm1vLnVzIiwibXMudXMiLCJtdC51cyIsIm5jLnVzIiwibmQudXMiLCJuZS51cyIsIm5oLnVzIiwibmoudXMiLCJubS51cyIsIm52LnVzIiwibnkudXMiLCJvaC51cyIsIm9rLnVzIiwib3Iu''@;'; + put 'put ''dXMiLCJwYS51cyIsInByLnVzIiwicmkudXMiLCJzYy51cyIsInNkLnVzIiwidG4udXMiLCJ0eC51cyIsInV0LnVzIiwidmkudXMiLCJ2dC51cyIsInZhLnVzIiwid2EudXMiLCJ3aS51cyIsInd2LnVzIiwid3kudXMiLCJrMTIuYWsudXMiLCJrMTIuYWwudXMiLCJrMTIuYXIudXMiLCJrMTIu''@;'; + put 'put ''YXMudXMiLCJrMTIuYXoudXMiLCJrMTIuY2EudXMiLCJrMTIuY28udXMiLCJrMTIuY3QudXMiLCJrMTIuZGMudXMiLCJrMTIuZGUudXMiLCJrMTIuZmwudXMiLCJrMTIuZ2EudXMiLCJrMTIuZ3UudXMiLCJrMTIuaWEudXMiLCJrMTIuaWQudXMiLCJrMTIuaWwudXMiLCJrMTIuaW4udXMiLCJr''@;'; + put 'put ''MTIua3MudXMiLCJrMTIua3kudXMiLCJrMTIubGEudXMiLCJrMTIubWEudXMiLCJrMTIubWQudXMiLCJrMTIubWUudXMiLCJrMTIubWkudXMiLCJrMTIubW4udXMiLCJrMTIubW8udXMiLCJrMTIubXMudXMiLCJrMTIubXQudXMiLCJrMTIubmMudXMiLCJrMTIubmUudXMiLCJrMTIubmgudXMi''@;'; + put 'put ''LCJrMTIubmoudXMiLCJrMTIubm0udXMiLCJrMTIubnYudXMiLCJrMTIubnkudXMiLCJrMTIub2gudXMiLCJrMTIub2sudXMiLCJrMTIub3IudXMiLCJrMTIucGEudXMiLCJrMTIucHIudXMiLCJrMTIucmkudXMiLCJrMTIuc2MudXMiLCJrMTIudG4udXMiLCJrMTIudHgudXMiLCJrMTIudXQu''@;'; + put 'put ''dXMiLCJrMTIudmkudXMiLCJrMTIudnQudXMiLCJrMTIudmEudXMiLCJrMTIud2EudXMiLCJrMTIud2kudXMiLCJrMTIud3kudXMiLCJjYy5hay51cyIsImNjLmFsLnVzIiwiY2MuYXIudXMiLCJjYy5hcy51cyIsImNjLmF6LnVzIiwiY2MuY2EudXMiLCJjYy5jby51cyIsImNjLmN0LnVzIiwi''@;'; + put 'put ''Y2MuZGMudXMiLCJjYy5kZS51cyIsImNjLmZsLnVzIiwiY2MuZ2EudXMiLCJjYy5ndS51cyIsImNjLmhpLnVzIiwiY2MuaWEudXMiLCJjYy5pZC51cyIsImNjLmlsLnVzIiwiY2MuaW4udXMiLCJjYy5rcy51cyIsImNjLmt5LnVzIiwiY2MubGEudXMiLCJjYy5tYS51cyIsImNjLm1kLnVzIiwi''@;'; + put 'put ''Y2MubWUudXMiLCJjYy5taS51cyIsImNjLm1uLnVzIiwiY2MubW8udXMiLCJjYy5tcy51cyIsImNjLm10LnVzIiwiY2MubmMudXMiLCJjYy5uZC51cyIsImNjLm5lLnVzIiwiY2MubmgudXMiLCJjYy5uai51cyIsImNjLm5tLnVzIiwiY2MubnYudXMiLCJjYy5ueS51cyIsImNjLm9oLnVzIiwi''@;'; + put 'put ''Y2Mub2sudXMiLCJjYy5vci51cyIsImNjLnBhLnVzIiwiY2MucHIudXMiLCJjYy5yaS51cyIsImNjLnNjLnVzIiwiY2Muc2QudXMiLCJjYy50bi51cyIsImNjLnR4LnVzIiwiY2MudXQudXMiLCJjYy52aS51cyIsImNjLnZ0LnVzIiwiY2MudmEudXMiLCJjYy53YS51cyIsImNjLndpLnVzIiwi''@;'; + put 'put ''Y2Mud3YudXMiLCJjYy53eS51cyIsImxpYi5hay51cyIsImxpYi5hbC51cyIsImxpYi5hci51cyIsImxpYi5hcy51cyIsImxpYi5hei51cyIsImxpYi5jYS51cyIsImxpYi5jby51cyIsImxpYi5jdC51cyIsImxpYi5kYy51cyIsImxpYi5mbC51cyIsImxpYi5nYS51cyIsImxpYi5ndS51cyIs''@;'; + put 'put ''ImxpYi5oaS51cyIsImxpYi5pYS51cyIsImxpYi5pZC51cyIsImxpYi5pbC51cyIsImxpYi5pbi51cyIsImxpYi5rcy51cyIsImxpYi5reS51cyIsImxpYi5sYS51cyIsImxpYi5tYS51cyIsImxpYi5tZC51cyIsImxpYi5tZS51cyIsImxpYi5taS51cyIsImxpYi5tbi51cyIsImxpYi5tby51''@;'; + put 'put ''cyIsImxpYi5tcy51cyIsImxpYi5tdC51cyIsImxpYi5uYy51cyIsImxpYi5uZC51cyIsImxpYi5uZS51cyIsImxpYi5uaC51cyIsImxpYi5uai51cyIsImxpYi5ubS51cyIsImxpYi5udi51cyIsImxpYi5ueS51cyIsImxpYi5vaC51cyIsImxpYi5vay51cyIsImxpYi5vci51cyIsImxpYi5w''@;'; + put 'put ''YS51cyIsImxpYi5wci51cyIsImxpYi5yaS51cyIsImxpYi5zYy51cyIsImxpYi5zZC51cyIsImxpYi50bi51cyIsImxpYi50eC51cyIsImxpYi51dC51cyIsImxpYi52aS51cyIsImxpYi52dC51cyIsImxpYi52YS51cyIsImxpYi53YS51cyIsImxpYi53aS51cyIsImxpYi53eS51cyIsInB2''@;'; + put 'put ''dC5rMTIubWEudXMiLCJjaHRyLmsxMi5tYS51cyIsInBhcm9jaC5rMTIubWEudXMiLCJhbm4tYXJib3IubWkudXMiLCJjb2cubWkudXMiLCJkc3QubWkudXMiLCJlYXRvbi5taS51cyIsImdlbi5taS51cyIsIm11cy5taS51cyIsInRlYy5taS51cyIsIndhc2h0ZW5hdy5taS51cyIsInV5Iiwi''@;'; + put 'put ''Y29tLnV5IiwiZWR1LnV5IiwiZ3ViLnV5IiwibWlsLnV5IiwibmV0LnV5Iiwib3JnLnV5IiwidXoiLCJjby51eiIsImNvbS51eiIsIm5ldC51eiIsIm9yZy51eiIsInZhIiwidmMiLCJjb20udmMiLCJuZXQudmMiLCJvcmcudmMiLCJnb3YudmMiLCJtaWwudmMiLCJlZHUudmMiLCJ2ZSIsImFy''@;'; + put 'put ''dHMudmUiLCJjby52ZSIsImNvbS52ZSIsImUxMi52ZSIsImVkdS52ZSIsImZpcm0udmUiLCJnb2IudmUiLCJnb3YudmUiLCJpbmZvLnZlIiwiaW50LnZlIiwibWlsLnZlIiwibmV0LnZlIiwib3JnLnZlIiwicmVjLnZlIiwic3RvcmUudmUiLCJ0ZWMudmUiLCJ3ZWIudmUiLCJ2ZyIsInZpIiwi''@;'; + put 'put ''Y28udmkiLCJjb20udmkiLCJrMTIudmkiLCJuZXQudmkiLCJvcmcudmkiLCJ2biIsImNvbS52biIsIm5ldC52biIsIm9yZy52biIsImVkdS52biIsImdvdi52biIsImludC52biIsImFjLnZuIiwiYml6LnZuIiwiaW5mby52biIsIm5hbWUudm4iLCJwcm8udm4iLCJoZWFsdGgudm4iLCJ2dSIs''@;'; + put 'put ''ImNvbS52dSIsImVkdS52dSIsIm5ldC52dSIsIm9yZy52dSIsIndmIiwid3MiLCJjb20ud3MiLCJuZXQud3MiLCJvcmcud3MiLCJnb3Yud3MiLCJlZHUud3MiLCJ5dCIsIlx1MDYyN1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYyN1x1MDYyYSIsIlx1MDU3MFx1MDU2MVx1MDU3NSIsIlx1MDlhY1x1''@;'; + put 'put ''MDliZVx1MDk4Mlx1MDliMlx1MDliZSIsIlx1MDQzMVx1MDQzMyIsIlx1MDQzMVx1MDQzNVx1MDQzYiIsIlx1NGUyZFx1NTZmZCIsIlx1NGUyZFx1NTcwYiIsIlx1MDYyN1x1MDY0NFx1MDYyY1x1MDYzMlx1MDYyN1x1MDYyNlx1MDYzMSIsIlx1MDY0NVx1MDYzNVx1MDYzMSIsIlx1MDQzNVx1''@;'; + put 'put ''MDQ0ZSIsIlx1MDNiNVx1MDNjNSIsIlx1MDY0NVx1MDY0OFx1MDYzMVx1MDY0YVx1MDYyYVx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyNyIsIlx1MTBkMlx1MTBkNCIsIlx1MDNiNVx1MDNiYiIsIlx1OTk5OVx1NmUyZiIsIlx1NTE2Y1x1NTNmOC5cdTk5OTlcdTZlMmYiLCJcdTY1NTlcdTgwYjIu''@;'; + put 'put ''XHU5OTk5XHU2ZTJmIiwiXHU2NTNmXHU1ZTljLlx1OTk5OVx1NmUyZiIsIlx1NTAwYlx1NGViYS5cdTk5OTlcdTZlMmYiLCJcdTdkYjJcdTdkNjEuXHU5OTk5XHU2ZTJmIiwiXHU3ZDQ0XHU3ZTU0Llx1OTk5OVx1NmUyZiIsIlx1MGNhZFx1MGNiZVx1MGNiMFx1MGNhNCIsIlx1MGIyZFx1MGIz''@;'; + put 'put ''ZVx1MGIzMFx1MGIyNCIsIlx1MDlhZFx1MDliZVx1MDlmMFx1MDlhNCIsIlx1MDkyZFx1MDkzZVx1MDkzMFx1MDkyNFx1MDkyZVx1MDk0ZCIsIlx1MDkyZFx1MDkzZVx1MDkzMFx1MDk0Ylx1MDkyNCIsIlx1MDY4MFx1MDYyN1x1MDYzMVx1MDYyYSIsIlx1MGQyZFx1MGQzZVx1MGQzMFx1MGQy''@;'; + put 'put ''NFx1MGQwMiIsIlx1MDkyZFx1MDkzZVx1MDkzMFx1MDkyNCIsIlx1MDYyOFx1MDYyN1x1MDYzMVx1MDYyYSIsIlx1MDYyOFx1MDZiZVx1MDYyN1x1MDYzMVx1MDYyYSIsIlx1MGMyZFx1MGMzZVx1MGMzMFx1MGMyNFx1MGM0ZCIsIlx1MGFhZFx1MGFiZVx1MGFiMFx1MGFhNCIsIlx1MGEyZFx1''@;'; + put 'put ''MGEzZVx1MGEzMFx1MGEyNCIsIlx1MDlhZFx1MDliZVx1MDliMFx1MDlhNCIsIlx1MGI4N1x1MGJhOFx1MGJjZFx1MGJhNFx1MGJiZlx1MGJhZlx1MGJiZSIsIlx1MDYyN1x1MDZjY1x1MDYzMVx1MDYyN1x1MDY0NiIsIlx1MDYyN1x1MDY0YVx1MDYzMVx1MDYyN1x1MDY0NiIsIlx1MDYzOVx1''@;'; + put 'put ''MDYzMVx1MDYyN1x1MDY0MiIsIlx1MDYyN1x1MDY0NFx1MDYyN1x1MDYzMVx1MDYyZlx1MDY0NiIsIlx1ZDU1Y1x1YWQ2ZCIsIlx1MDQ5Ylx1MDQzMFx1MDQzNyIsIlx1MGRiZFx1MGQ4Mlx1MGQ5YVx1MGRjZiIsIlx1MGI4N1x1MGJiMlx1MGI5OVx1MGJjZFx1MGI5NVx1MGJjOCIsIlx1MDYy''@;'; + put 'put ''N1x1MDY0NFx1MDY0NVx1MDYzYVx1MDYzMVx1MDYyOCIsIlx1MDQzY1x1MDQzYVx1MDQzNCIsIlx1MDQzY1x1MDQzZVx1MDQzZCIsIlx1NmZiM1x1OTU4MCIsIlx1NmZiM1x1OTVlOCIsIlx1MDY0NVx1MDY0NFx1MDY0YVx1MDYzM1x1MDY0YVx1MDYyNyIsIlx1MDYzOVx1MDY0NVx1MDYyN1x1''@;'; + put 'put ''MDY0NiIsIlx1MDY3ZVx1MDYyN1x1MDZhOVx1MDYzM1x1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDY3ZVx1MDYyN1x1MDY0M1x1MDYzM1x1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDY0MVx1MDY0NFx1MDYzM1x1MDYzN1x1MDY0YVx1MDY0NiIsIlx1MDQ0MVx1MDQ0MFx1MDQzMSIsIlx1MDQzZlx1''@;'; + put 'put ''MDQ0MC5cdTA0NDFcdTA0NDBcdTA0MzEiLCJcdTA0M2VcdTA0NDBcdTA0MzMuXHUwNDQxXHUwNDQwXHUwNDMxIiwiXHUwNDNlXHUwNDMxXHUwNDQwLlx1MDQ0MVx1MDQ0MFx1MDQzMSIsIlx1MDQzZVx1MDQzNC5cdTA0NDFcdTA0NDBcdTA0MzEiLCJcdTA0NDNcdTA0M2ZcdTA0NDAuXHUwNDQx''@;'; + put 'put ''XHUwNDQwXHUwNDMxIiwiXHUwNDMwXHUwNDNhLlx1MDQ0MVx1MDQ0MFx1MDQzMSIsIlx1MDQ0MFx1MDQ0NCIsIlx1MDY0Mlx1MDYzN1x1MDYzMSIsIlx1MDYyN1x1MDY0NFx1MDYzM1x1MDYzOVx1MDY0OFx1MDYyZlx1MDY0YVx1MDYyOSIsIlx1MDYyN1x1MDY0NFx1MDYzM1x1MDYzOVx1MDY0''@;'; + put 'put ''OFx1MDYyZlx1MDZjY1x1MDYyOSIsIlx1MDYyN1x1MDY0NFx1MDYzM1x1MDYzOVx1MDY0OFx1MDYyZlx1MDZjY1x1MDZjMyIsIlx1MDYyN1x1MDY0NFx1MDYzM1x1MDYzOVx1MDY0OFx1MDYyZlx1MDY0YVx1MDY0NyIsIlx1MDYzM1x1MDY0OFx1MDYyZlx1MDYyN1x1MDY0NiIsIlx1NjViMFx1''@;'; + put 'put ''NTJhMFx1NTc2MSIsIlx1MGI5YVx1MGJiZlx1MGI5OVx1MGJjZFx1MGI5NVx1MGJhYVx1MGJjZFx1MGJhYVx1MGJjMlx1MGJiMFx1MGJjZCIsIlx1MDYzM1x1MDY0OFx1MDYzMVx1MDY0YVx1MDYyOSIsIlx1MDYzM1x1MDY0OFx1MDYzMVx1MDY0YVx1MDYyNyIsIlx1MGU0NFx1MGUxN1x1MGUy''@;'; + put 'put ''MiIsIlx1MGUyOFx1MGUzNlx1MGUwMVx1MGUyOVx1MGUzMi5cdTBlNDRcdTBlMTdcdTBlMjIiLCJcdTBlMThcdTBlMzhcdTBlMjNcdTBlMDFcdTBlMzRcdTBlMDguXHUwZTQ0XHUwZTE3XHUwZTIyIiwiXHUwZTIzXHUwZTMxXHUwZTEwXHUwZTFhXHUwZTMyXHUwZTI1Llx1MGU0NFx1MGUxN1x1''@;'; + put 'put ''MGUyMiIsIlx1MGUxN1x1MGUyYlx1MGUzMlx1MGUyMy5cdTBlNDRcdTBlMTdcdTBlMjIiLCJcdTBlNDBcdTBlMTlcdTBlNDdcdTBlMTUuXHUwZTQ0XHUwZTE3XHUwZTIyIiwiXHUwZTJkXHUwZTA3XHUwZTA0XHUwZTRjXHUwZTAxXHUwZTIzLlx1MGU0NFx1MGUxN1x1MGUyMiIsIlx1MDYyYVx1''@;'; + put 'put ''MDY0OFx1MDY0Nlx1MDYzMyIsIlx1NTNmMFx1NzA2MyIsIlx1NTNmMFx1NmU3ZSIsIlx1ODFmYVx1NzA2MyIsIlx1MDQ0M1x1MDQzYVx1MDQ0MCIsIlx1MDYyN1x1MDY0NFx1MDY0YVx1MDY0NVx1MDY0NiIsInh4eCIsIioueWUiLCJhYy56YSIsImFncmljLnphIiwiYWx0LnphIiwiY28uemEi''@;'; + put 'put ''LCJlZHUuemEiLCJnb3YuemEiLCJncm9uZGFyLnphIiwibGF3LnphIiwibWlsLnphIiwibmV0LnphIiwibmdvLnphIiwibmljLnphIiwibmlzLnphIiwibm9tLnphIiwib3JnLnphIiwic2Nob29sLnphIiwidG0uemEiLCJ3ZWIuemEiLCJ6bSIsImFjLnptIiwiYml6LnptIiwiY28uem0iLCJj''@;'; + put 'put ''b20uem0iLCJlZHUuem0iLCJnb3Yuem0iLCJpbmZvLnptIiwibWlsLnptIiwibmV0LnptIiwib3JnLnptIiwic2NoLnptIiwienciLCJhYy56dyIsImNvLnp3IiwiZ292Lnp3IiwibWlsLnp3Iiwib3JnLnp3IiwiYWFhIiwiYWFycCIsImFiYXJ0aCIsImFiYiIsImFiYm90dCIsImFiYnZpZSIs''@;'; + put 'put ''ImFiYyIsImFibGUiLCJhYm9nYWRvIiwiYWJ1ZGhhYmkiLCJhY2FkZW15IiwiYWNjZW50dXJlIiwiYWNjb3VudGFudCIsImFjY291bnRhbnRzIiwiYWNvIiwiYWN0b3IiLCJhZGFjIiwiYWRzIiwiYWR1bHQiLCJhZWciLCJhZXRuYSIsImFmYW1pbHljb21wYW55IiwiYWZsIiwiYWZyaWNhIiwi''@;'; + put 'put ''YWdha2hhbiIsImFnZW5jeSIsImFpZyIsImFpZ28iLCJhaXJidXMiLCJhaXJmb3JjZSIsImFpcnRlbCIsImFrZG4iLCJhbGZhcm9tZW8iLCJhbGliYWJhIiwiYWxpcGF5IiwiYWxsZmluYW56IiwiYWxsc3RhdGUiLCJhbGx5IiwiYWxzYWNlIiwiYWxzdG9tIiwiYW1hem9uIiwiYW1lcmljYW5l''@;'; + put 'put ''eHByZXNzIiwiYW1lcmljYW5mYW1pbHkiLCJhbWV4IiwiYW1mYW0iLCJhbWljYSIsImFtc3RlcmRhbSIsImFuYWx5dGljcyIsImFuZHJvaWQiLCJhbnF1YW4iLCJhbnoiLCJhb2wiLCJhcGFydG1lbnRzIiwiYXBwIiwiYXBwbGUiLCJhcXVhcmVsbGUiLCJhcmFiIiwiYXJhbWNvIiwiYXJjaGki''@;'; + put 'put ''LCJhcm15IiwiYXJ0IiwiYXJ0ZSIsImFzZGEiLCJhc3NvY2lhdGVzIiwiYXRobGV0YSIsImF0dG9ybmV5IiwiYXVjdGlvbiIsImF1ZGkiLCJhdWRpYmxlIiwiYXVkaW8iLCJhdXNwb3N0IiwiYXV0aG9yIiwiYXV0byIsImF1dG9zIiwiYXZpYW5jYSIsImF3cyIsImF4YSIsImF6dXJlIiwiYmFi''@;'; + put 'put ''eSIsImJhaWR1IiwiYmFuYW1leCIsImJhbmFuYXJlcHVibGljIiwiYmFuZCIsImJhbmsiLCJiYXIiLCJiYXJjZWxvbmEiLCJiYXJjbGF5Y2FyZCIsImJhcmNsYXlzIiwiYmFyZWZvb3QiLCJiYXJnYWlucyIsImJhc2ViYWxsIiwiYmFza2V0YmFsbCIsImJhdWhhdXMiLCJiYXllcm4iLCJiYmMi''@;'; + put 'put ''LCJiYnQiLCJiYnZhIiwiYmNnIiwiYmNuIiwiYmVhdHMiLCJiZWF1dHkiLCJiZWVyIiwiYmVudGxleSIsImJlcmxpbiIsImJlc3QiLCJiZXN0YnV5IiwiYmV0IiwiYmhhcnRpIiwiYmlibGUiLCJiaWQiLCJiaWtlIiwiYmluZyIsImJpbmdvIiwiYmlvIiwiYmxhY2siLCJibGFja2ZyaWRheSIs''@;'; + put 'put ''ImJsb2NrYnVzdGVyIiwiYmxvZyIsImJsb29tYmVyZyIsImJsdWUiLCJibXMiLCJibXciLCJibnBwYXJpYmFzIiwiYm9hdHMiLCJib2VocmluZ2VyIiwiYm9mYSIsImJvbSIsImJvbmQiLCJib28iLCJib29rIiwiYm9va2luZyIsImJvc2NoIiwiYm9zdGlrIiwiYm9zdG9uIiwiYm90IiwiYm91''@;'; + put 'put ''dGlxdWUiLCJib3giLCJicmFkZXNjbyIsImJyaWRnZXN0b25lIiwiYnJvYWR3YXkiLCJicm9rZXIiLCJicm90aGVyIiwiYnJ1c3NlbHMiLCJidWRhcGVzdCIsImJ1Z2F0dGkiLCJidWlsZCIsImJ1aWxkZXJzIiwiYnVzaW5lc3MiLCJidXkiLCJidXp6IiwiYnpoIiwiY2FiIiwiY2FmZSIsImNh''@;'; + put 'put ''bCIsImNhbGwiLCJjYWx2aW5rbGVpbiIsImNhbSIsImNhbWVyYSIsImNhbXAiLCJjYW5jZXJyZXNlYXJjaCIsImNhbm9uIiwiY2FwZXRvd24iLCJjYXBpdGFsIiwiY2FwaXRhbG9uZSIsImNhciIsImNhcmF2YW4iLCJjYXJkcyIsImNhcmUiLCJjYXJlZXIiLCJjYXJlZXJzIiwiY2FycyIsImNh''@;'; + put 'put ''c2EiLCJjYXNlIiwiY2FzZWloIiwiY2FzaCIsImNhc2lubyIsImNhdGVyaW5nIiwiY2F0aG9saWMiLCJjYmEiLCJjYm4iLCJjYnJlIiwiY2JzIiwiY2ViIiwiY2VudGVyIiwiY2VvIiwiY2VybiIsImNmYSIsImNmZCIsImNoYW5lbCIsImNoYW5uZWwiLCJjaGFyaXR5IiwiY2hhc2UiLCJjaGF0''@;'; + put 'put ''IiwiY2hlYXAiLCJjaGludGFpIiwiY2hyaXN0bWFzIiwiY2hyb21lIiwiY2h1cmNoIiwiY2lwcmlhbmkiLCJjaXJjbGUiLCJjaXNjbyIsImNpdGFkZWwiLCJjaXRpIiwiY2l0aWMiLCJjaXR5IiwiY2l0eWVhdHMiLCJjbGFpbXMiLCJjbGVhbmluZyIsImNsaWNrIiwiY2xpbmljIiwiY2xpbmlx''@;'; + put 'put ''dWUiLCJjbG90aGluZyIsImNsb3VkIiwiY2x1YiIsImNsdWJtZWQiLCJjb2FjaCIsImNvZGVzIiwiY29mZmVlIiwiY29sbGVnZSIsImNvbG9nbmUiLCJjb21jYXN0IiwiY29tbWJhbmsiLCJjb21tdW5pdHkiLCJjb21wYW55IiwiY29tcGFyZSIsImNvbXB1dGVyIiwiY29tc2VjIiwiY29uZG9z''@;'; + put 'put ''IiwiY29uc3RydWN0aW9uIiwiY29uc3VsdGluZyIsImNvbnRhY3QiLCJjb250cmFjdG9ycyIsImNvb2tpbmciLCJjb29raW5nY2hhbm5lbCIsImNvb2wiLCJjb3JzaWNhIiwiY291bnRyeSIsImNvdXBvbiIsImNvdXBvbnMiLCJjb3Vyc2VzIiwiY3BhIiwiY3JlZGl0IiwiY3JlZGl0Y2FyZCIs''@;'; + put 'put ''ImNyZWRpdHVuaW9uIiwiY3JpY2tldCIsImNyb3duIiwiY3JzIiwiY3J1aXNlIiwiY3J1aXNlcyIsImNzYyIsImN1aXNpbmVsbGEiLCJjeW1ydSIsImN5b3UiLCJkYWJ1ciIsImRhZCIsImRhbmNlIiwiZGF0YSIsImRhdGUiLCJkYXRpbmciLCJkYXRzdW4iLCJkYXkiLCJkY2xrIiwiZGRzIiwi''@;'; + put 'put ''ZGVhbCIsImRlYWxlciIsImRlYWxzIiwiZGVncmVlIiwiZGVsaXZlcnkiLCJkZWxsIiwiZGVsb2l0dGUiLCJkZWx0YSIsImRlbW9jcmF0IiwiZGVudGFsIiwiZGVudGlzdCIsImRlc2kiLCJkZXNpZ24iLCJkZXYiLCJkaGwiLCJkaWFtb25kcyIsImRpZXQiLCJkaWdpdGFsIiwiZGlyZWN0Iiwi''@;'; + put 'put ''ZGlyZWN0b3J5IiwiZGlzY291bnQiLCJkaXNjb3ZlciIsImRpc2giLCJkaXkiLCJkbnAiLCJkb2NzIiwiZG9jdG9yIiwiZG9nIiwiZG9tYWlucyIsImRvdCIsImRvd25sb2FkIiwiZHJpdmUiLCJkdHYiLCJkdWJhaSIsImR1Y2siLCJkdW5sb3AiLCJkdXBvbnQiLCJkdXJiYW4iLCJkdmFnIiwi''@;'; + put 'put ''ZHZyIiwiZWFydGgiLCJlYXQiLCJlY28iLCJlZGVrYSIsImVkdWNhdGlvbiIsImVtYWlsIiwiZW1lcmNrIiwiZW5lcmd5IiwiZW5naW5lZXIiLCJlbmdpbmVlcmluZyIsImVudGVycHJpc2VzIiwiZXBzb24iLCJlcXVpcG1lbnQiLCJlcmljc3NvbiIsImVybmkiLCJlc3EiLCJlc3RhdGUiLCJl''@;'; + put 'put ''c3VyYW5jZSIsImV0aXNhbGF0IiwiZXVyb3Zpc2lvbiIsImV1cyIsImV2ZW50cyIsImV4Y2hhbmdlIiwiZXhwZXJ0IiwiZXhwb3NlZCIsImV4cHJlc3MiLCJleHRyYXNwYWNlIiwiZmFnZSIsImZhaWwiLCJmYWlyd2luZHMiLCJmYWl0aCIsImZhbWlseSIsImZhbiIsImZhbnMiLCJmYXJtIiwi''@;'; + put 'put ''ZmFybWVycyIsImZhc2hpb24iLCJmYXN0IiwiZmVkZXgiLCJmZWVkYmFjayIsImZlcnJhcmkiLCJmZXJyZXJvIiwiZmlhdCIsImZpZGVsaXR5IiwiZmlkbyIsImZpbG0iLCJmaW5hbCIsImZpbmFuY2UiLCJmaW5hbmNpYWwiLCJmaXJlIiwiZmlyZXN0b25lIiwiZmlybWRhbGUiLCJmaXNoIiwi''@;'; + put 'put ''ZmlzaGluZyIsImZpdCIsImZpdG5lc3MiLCJmbGlja3IiLCJmbGlnaHRzIiwiZmxpciIsImZsb3Jpc3QiLCJmbG93ZXJzIiwiZmx5IiwiZm9vIiwiZm9vZCIsImZvb2RuZXR3b3JrIiwiZm9vdGJhbGwiLCJmb3JkIiwiZm9yZXgiLCJmb3JzYWxlIiwiZm9ydW0iLCJmb3VuZGF0aW9uIiwiZm94''@;'; + put 'put ''IiwiZnJlZSIsImZyZXNlbml1cyIsImZybCIsImZyb2dhbnMiLCJmcm9udGRvb3IiLCJmcm9udGllciIsImZ0ciIsImZ1aml0c3UiLCJmdWppeGVyb3giLCJmdW4iLCJmdW5kIiwiZnVybml0dXJlIiwiZnV0Ym9sIiwiZnlpIiwiZ2FsIiwiZ2FsbGVyeSIsImdhbGxvIiwiZ2FsbHVwIiwiZ2Ft''@;'; + put 'put ''ZSIsImdhbWVzIiwiZ2FwIiwiZ2FyZGVuIiwiZ2F5IiwiZ2JpeiIsImdkbiIsImdlYSIsImdlbnQiLCJnZW50aW5nIiwiZ2VvcmdlIiwiZ2dlZSIsImdpZnQiLCJnaWZ0cyIsImdpdmVzIiwiZ2l2aW5nIiwiZ2xhZGUiLCJnbGFzcyIsImdsZSIsImdsb2JhbCIsImdsb2JvIiwiZ21haWwiLCJn''@;'; + put 'put ''bWJoIiwiZ21vIiwiZ214IiwiZ29kYWRkeSIsImdvbGQiLCJnb2xkcG9pbnQiLCJnb2xmIiwiZ29vIiwiZ29vZHllYXIiLCJnb29nIiwiZ29vZ2xlIiwiZ29wIiwiZ290IiwiZ3JhaW5nZXIiLCJncmFwaGljcyIsImdyYXRpcyIsImdyZWVuIiwiZ3JpcGUiLCJncm9jZXJ5IiwiZ3JvdXAiLCJn''@;'; + put 'put ''dWFyZGlhbiIsImd1Y2NpIiwiZ3VnZSIsImd1aWRlIiwiZ3VpdGFycyIsImd1cnUiLCJoYWlyIiwiaGFtYnVyZyIsImhhbmdvdXQiLCJoYXVzIiwiaGJvIiwiaGRmYyIsImhkZmNiYW5rIiwiaGVhbHRoIiwiaGVhbHRoY2FyZSIsImhlbHAiLCJoZWxzaW5raSIsImhlcmUiLCJoZXJtZXMiLCJo''@;'; + put 'put ''Z3R2IiwiaGlwaG9wIiwiaGlzYW1pdHN1IiwiaGl0YWNoaSIsImhpdiIsImhrdCIsImhvY2tleSIsImhvbGRpbmdzIiwiaG9saWRheSIsImhvbWVkZXBvdCIsImhvbWVnb29kcyIsImhvbWVzIiwiaG9tZXNlbnNlIiwiaG9uZGEiLCJob3JzZSIsImhvc3BpdGFsIiwiaG9zdCIsImhvc3Rpbmci''@;'; + put 'put ''LCJob3QiLCJob3RlbGVzIiwiaG90ZWxzIiwiaG90bWFpbCIsImhvdXNlIiwiaG93IiwiaHNiYyIsImh1Z2hlcyIsImh5YXR0IiwiaHl1bmRhaSIsImlibSIsImljYmMiLCJpY2UiLCJpY3UiLCJpZWVlIiwiaWZtIiwiaWthbm8iLCJpbWFtYXQiLCJpbWRiIiwiaW1tbyIsImltbW9iaWxpZW4i''@;'; + put 'put ''LCJpbmMiLCJpbmR1c3RyaWVzIiwiaW5maW5pdGkiLCJpbmciLCJpbmsiLCJpbnN0aXR1dGUiLCJpbnN1cmFuY2UiLCJpbnN1cmUiLCJpbnRlbCIsImludGVybmF0aW9uYWwiLCJpbnR1aXQiLCJpbnZlc3RtZW50cyIsImlwaXJhbmdhIiwiaXJpc2giLCJpc21haWxpIiwiaXN0IiwiaXN0YW5i''@;'; + put 'put ''dWwiLCJpdGF1IiwiaXR2IiwiaXZlY28iLCJqYWd1YXIiLCJqYXZhIiwiamNiIiwiamNwIiwiamVlcCIsImpldHp0IiwiamV3ZWxyeSIsImppbyIsImpsbCIsImptcCIsImpuaiIsImpvYnVyZyIsImpvdCIsImpveSIsImpwbW9yZ2FuIiwianBycyIsImp1ZWdvcyIsImp1bmlwZXIiLCJrYXVm''@;'; + put 'put ''ZW4iLCJrZGRpIiwia2Vycnlob3RlbHMiLCJrZXJyeWxvZ2lzdGljcyIsImtlcnJ5cHJvcGVydGllcyIsImtmaCIsImtpYSIsImtpbSIsImtpbmRlciIsImtpbmRsZSIsImtpdGNoZW4iLCJraXdpIiwia29lbG4iLCJrb21hdHN1Iiwia29zaGVyIiwia3BtZyIsImtwbiIsImtyZCIsImtyZWQi''@;'; + put 'put ''LCJrdW9rZ3JvdXAiLCJreW90byIsImxhY2FpeGEiLCJsYW1ib3JnaGluaSIsImxhbWVyIiwibGFuY2FzdGVyIiwibGFuY2lhIiwibGFuZCIsImxhbmRyb3ZlciIsImxhbnhlc3MiLCJsYXNhbGxlIiwibGF0IiwibGF0aW5vIiwibGF0cm9iZSIsImxhdyIsImxhd3llciIsImxkcyIsImxlYXNl''@;'; + put 'put ''IiwibGVjbGVyYyIsImxlZnJhayIsImxlZ2FsIiwibGVnbyIsImxleHVzIiwibGdidCIsImxpZGwiLCJsaWZlIiwibGlmZWluc3VyYW5jZSIsImxpZmVzdHlsZSIsImxpZ2h0aW5nIiwibGlrZSIsImxpbGx5IiwibGltaXRlZCIsImxpbW8iLCJsaW5jb2xuIiwibGluZGUiLCJsaW5rIiwibGlw''@;'; + put 'put ''c3kiLCJsaXZlIiwibGl2aW5nIiwibGl4aWwiLCJsbGMiLCJsbHAiLCJsb2FuIiwibG9hbnMiLCJsb2NrZXIiLCJsb2N1cyIsImxvZnQiLCJsb2wiLCJsb25kb24iLCJsb3R0ZSIsImxvdHRvIiwibG92ZSIsImxwbCIsImxwbGZpbmFuY2lhbCIsImx0ZCIsImx0ZGEiLCJsdW5kYmVjayIsImx1''@;'; + put 'put ''cGluIiwibHV4ZSIsImx1eHVyeSIsIm1hY3lzIiwibWFkcmlkIiwibWFpZiIsIm1haXNvbiIsIm1ha2V1cCIsIm1hbiIsIm1hbmFnZW1lbnQiLCJtYW5nbyIsIm1hcCIsIm1hcmtldCIsIm1hcmtldGluZyIsIm1hcmtldHMiLCJtYXJyaW90dCIsIm1hcnNoYWxscyIsIm1hc2VyYXRpIiwibWF0''@;'; + put 'put ''dGVsIiwibWJhIiwibWNraW5zZXkiLCJtZWQiLCJtZWRpYSIsIm1lZXQiLCJtZWxib3VybmUiLCJtZW1lIiwibWVtb3JpYWwiLCJtZW4iLCJtZW51IiwibWVyY2ttc2QiLCJtZXRsaWZlIiwibWlhbWkiLCJtaWNyb3NvZnQiLCJtaW5pIiwibWludCIsIm1pdCIsIm1pdHN1YmlzaGkiLCJtbGIi''@;'; + put 'put ''LCJtbHMiLCJtbWEiLCJtb2JpbGUiLCJtb2RhIiwibW9lIiwibW9pIiwibW9tIiwibW9uYXNoIiwibW9uZXkiLCJtb25zdGVyIiwibW9ybW9uIiwibW9ydGdhZ2UiLCJtb3Njb3ciLCJtb3RvIiwibW90b3JjeWNsZXMiLCJtb3YiLCJtb3ZpZSIsIm1zZCIsIm10biIsIm10ciIsIm11dHVhbCIs''@;'; + put 'put ''Im5hYiIsIm5hZGV4IiwibmFnb3lhIiwibmF0aW9ud2lkZSIsIm5hdHVyYSIsIm5hdnkiLCJuYmEiLCJuZWMiLCJuZXRiYW5rIiwibmV0ZmxpeCIsIm5ldHdvcmsiLCJuZXVzdGFyIiwibmV3IiwibmV3aG9sbGFuZCIsIm5ld3MiLCJuZXh0IiwibmV4dGRpcmVjdCIsIm5leHVzIiwibmZsIiwi''@;'; + put 'put ''bmdvIiwibmhrIiwibmljbyIsIm5pa2UiLCJuaWtvbiIsIm5pbmphIiwibmlzc2FuIiwibmlzc2F5Iiwibm9raWEiLCJub3J0aHdlc3Rlcm5tdXR1YWwiLCJub3J0b24iLCJub3ciLCJub3dydXoiLCJub3d0diIsIm5yYSIsIm5ydyIsIm50dCIsIm55YyIsIm9iaSIsIm9ic2VydmVyIiwib2Zm''@;'; + put 'put ''Iiwib2ZmaWNlIiwib2tpbmF3YSIsIm9sYXlhbiIsIm9sYXlhbmdyb3VwIiwib2xkbmF2eSIsIm9sbG8iLCJvbWVnYSIsIm9uZSIsIm9uZyIsIm9ubCIsIm9ubGluZSIsIm9ueW91cnNpZGUiLCJvb28iLCJvcGVuIiwib3JhY2xlIiwib3JhbmdlIiwib3JnYW5pYyIsIm9yaWdpbnMiLCJvc2Fr''@;'; + put 'put ''YSIsIm90c3VrYSIsIm90dCIsIm92aCIsInBhZ2UiLCJwYW5hc29uaWMiLCJwYXJpcyIsInBhcnMiLCJwYXJ0bmVycyIsInBhcnRzIiwicGFydHkiLCJwYXNzYWdlbnMiLCJwYXkiLCJwY2N3IiwicGV0IiwicGZpemVyIiwicGhhcm1hY3kiLCJwaGQiLCJwaGlsaXBzIiwicGhvbmUiLCJwaG90''@;'; + put 'put ''byIsInBob3RvZ3JhcGh5IiwicGhvdG9zIiwicGh5c2lvIiwicGljcyIsInBpY3RldCIsInBpY3R1cmVzIiwicGlkIiwicGluIiwicGluZyIsInBpbmsiLCJwaW9uZWVyIiwicGl6emEiLCJwbGFjZSIsInBsYXkiLCJwbGF5c3RhdGlvbiIsInBsdW1iaW5nIiwicGx1cyIsInBuYyIsInBvaGwi''@;'; + put 'put ''LCJwb2tlciIsInBvbGl0aWUiLCJwb3JuIiwicHJhbWVyaWNhIiwicHJheGkiLCJwcmVzcyIsInByaW1lIiwicHJvZCIsInByb2R1Y3Rpb25zIiwicHJvZiIsInByb2dyZXNzaXZlIiwicHJvbW8iLCJwcm9wZXJ0aWVzIiwicHJvcGVydHkiLCJwcm90ZWN0aW9uIiwicHJ1IiwicHJ1ZGVudGlh''@;'; + put 'put ''bCIsInB1YiIsInB3YyIsInFwb24iLCJxdWViZWMiLCJxdWVzdCIsInF2YyIsInJhY2luZyIsInJhZGlvIiwicmFpZCIsInJlYWQiLCJyZWFsZXN0YXRlIiwicmVhbHRvciIsInJlYWx0eSIsInJlY2lwZXMiLCJyZWQiLCJyZWRzdG9uZSIsInJlZHVtYnJlbGxhIiwicmVoYWIiLCJyZWlzZSIs''@;'; + put 'put ''InJlaXNlbiIsInJlaXQiLCJyZWxpYW5jZSIsInJlbiIsInJlbnQiLCJyZW50YWxzIiwicmVwYWlyIiwicmVwb3J0IiwicmVwdWJsaWNhbiIsInJlc3QiLCJyZXN0YXVyYW50IiwicmV2aWV3IiwicmV2aWV3cyIsInJleHJvdGgiLCJyaWNoIiwicmljaGFyZGxpIiwicmljb2giLCJyaWdodGF0''@;'; + put 'put ''aG9tZSIsInJpbCIsInJpbyIsInJpcCIsInJtaXQiLCJyb2NoZXIiLCJyb2NrcyIsInJvZGVvIiwicm9nZXJzIiwicm9vbSIsInJzdnAiLCJydWdieSIsInJ1aHIiLCJydW4iLCJyd2UiLCJyeXVreXUiLCJzYWFybGFuZCIsInNhZmUiLCJzYWZldHkiLCJzYWt1cmEiLCJzYWxlIiwic2Fsb24i''@;'; + put 'put ''LCJzYW1zY2x1YiIsInNhbXN1bmciLCJzYW5kdmlrIiwic2FuZHZpa2Nvcm9tYW50Iiwic2Fub2ZpIiwic2FwIiwic2FybCIsInNhcyIsInNhdmUiLCJzYXhvIiwic2JpIiwic2JzIiwic2NhIiwic2NiIiwic2NoYWVmZmxlciIsInNjaG1pZHQiLCJzY2hvbGFyc2hpcHMiLCJzY2hvb2wiLCJz''@;'; + put 'put ''Y2h1bGUiLCJzY2h3YXJ6Iiwic2NpZW5jZSIsInNjam9obnNvbiIsInNjb3IiLCJzY290Iiwic2VhcmNoIiwic2VhdCIsInNlY3VyZSIsInNlY3VyaXR5Iiwic2VlayIsInNlbGVjdCIsInNlbmVyIiwic2VydmljZXMiLCJzZXMiLCJzZXZlbiIsInNldyIsInNleCIsInNleHkiLCJzZnIiLCJz''@;'; + put 'put ''aGFuZ3JpbGEiLCJzaGFycCIsInNoYXciLCJzaGVsbCIsInNoaWEiLCJzaGlrc2hhIiwic2hvZXMiLCJzaG9wIiwic2hvcHBpbmciLCJzaG91amkiLCJzaG93Iiwic2hvd3RpbWUiLCJzaHJpcmFtIiwic2lsayIsInNpbmEiLCJzaW5nbGVzIiwic2l0ZSIsInNraSIsInNraW4iLCJza3kiLCJz''@;'; + put 'put ''a3lwZSIsInNsaW5nIiwic21hcnQiLCJzbWlsZSIsInNuY2YiLCJzb2NjZXIiLCJzb2NpYWwiLCJzb2Z0YmFuayIsInNvZnR3YXJlIiwic29odSIsInNvbGFyIiwic29sdXRpb25zIiwic29uZyIsInNvbnkiLCJzb3kiLCJzcGEiLCJzcGFjZSIsInNwb3J0Iiwic3BvdCIsInNwcmVhZGJldHRp''@;'; + put 'put ''bmciLCJzcmwiLCJzdGFkYSIsInN0YXBsZXMiLCJzdGFyIiwic3RhdGViYW5rIiwic3RhdGVmYXJtIiwic3RjIiwic3RjZ3JvdXAiLCJzdG9ja2hvbG0iLCJzdG9yYWdlIiwic3RvcmUiLCJzdHJlYW0iLCJzdHVkaW8iLCJzdHVkeSIsInN0eWxlIiwic3Vja3MiLCJzdXBwbGllcyIsInN1cHBs''@;'; + put 'put ''eSIsInN1cHBvcnQiLCJzdXJmIiwic3VyZ2VyeSIsInN1enVraSIsInN3YXRjaCIsInN3aWZ0Y292ZXIiLCJzd2lzcyIsInN5ZG5leSIsInN5bWFudGVjIiwic3lzdGVtcyIsInRhYiIsInRhaXBlaSIsInRhbGsiLCJ0YW9iYW8iLCJ0YXJnZXQiLCJ0YXRhbW90b3JzIiwidGF0YXIiLCJ0YXR0''@;'; + put 'put ''b28iLCJ0YXgiLCJ0YXhpIiwidGNpIiwidGRrIiwidGVhbSIsInRlY2giLCJ0ZWNobm9sb2d5IiwidGVtYXNlayIsInRlbm5pcyIsInRldmEiLCJ0aGQiLCJ0aGVhdGVyIiwidGhlYXRyZSIsInRpYWEiLCJ0aWNrZXRzIiwidGllbmRhIiwidGlmZmFueSIsInRpcHMiLCJ0aXJlcyIsInRpcm9s''@;'; + put 'put ''IiwidGptYXh4IiwidGp4IiwidGttYXh4IiwidG1hbGwiLCJ0b2RheSIsInRva3lvIiwidG9vbHMiLCJ0b3AiLCJ0b3JheSIsInRvc2hpYmEiLCJ0b3RhbCIsInRvdXJzIiwidG93biIsInRveW90YSIsInRveXMiLCJ0cmFkZSIsInRyYWRpbmciLCJ0cmFpbmluZyIsInRyYXZlbCIsInRyYXZl''@;'; + put 'put ''bGNoYW5uZWwiLCJ0cmF2ZWxlcnMiLCJ0cmF2ZWxlcnNpbnN1cmFuY2UiLCJ0cnVzdCIsInRydiIsInR1YmUiLCJ0dWkiLCJ0dW5lcyIsInR1c2h1IiwidHZzIiwidWJhbmsiLCJ1YnMiLCJ1bmljb20iLCJ1bml2ZXJzaXR5IiwidW5vIiwidW9sIiwidXBzIiwidmFjYXRpb25zIiwidmFuYSIs''@;'; + put 'put ''InZhbmd1YXJkIiwidmVnYXMiLCJ2ZW50dXJlcyIsInZlcmlzaWduIiwidmVyc2ljaGVydW5nIiwidmV0IiwidmlhamVzIiwidmlkZW8iLCJ2aWciLCJ2aWtpbmciLCJ2aWxsYXMiLCJ2aW4iLCJ2aXAiLCJ2aXJnaW4iLCJ2aXNhIiwidmlzaW9uIiwidml2YSIsInZpdm8iLCJ2bGFhbmRlcmVu''@;'; + put 'put ''Iiwidm9ka2EiLCJ2b2xrc3dhZ2VuIiwidm9sdm8iLCJ2b3RlIiwidm90aW5nIiwidm90byIsInZveWFnZSIsInZ1ZWxvcyIsIndhbGVzIiwid2FsbWFydCIsIndhbHRlciIsIndhbmciLCJ3YW5nZ291Iiwid2F0Y2giLCJ3YXRjaGVzIiwid2VhdGhlciIsIndlYXRoZXJjaGFubmVsIiwid2Vi''@;'; + put 'put ''Y2FtIiwid2ViZXIiLCJ3ZWJzaXRlIiwid2VkIiwid2VkZGluZyIsIndlaWJvIiwid2VpciIsIndob3N3aG8iLCJ3aWVuIiwid2lraSIsIndpbGxpYW1oaWxsIiwid2luIiwid2luZG93cyIsIndpbmUiLCJ3aW5uZXJzIiwid21lIiwid29sdGVyc2tsdXdlciIsIndvb2RzaWRlIiwid29yayIs''@;'; + put 'put ''IndvcmtzIiwid29ybGQiLCJ3b3ciLCJ3dGMiLCJ3dGYiLCJ4Ym94IiwieGVyb3giLCJ4ZmluaXR5IiwieGlodWFuIiwieGluIiwiXHUwOTE1XHUwOTQ5XHUwOTJlIiwiXHUzMGJiXHUzMGZjXHUzMGViIiwiXHU0ZjViXHU1YzcxIiwiXHU2MTQ4XHU1NTg0IiwiXHU5NmM2XHU1NmUyIiwiXHU1''@;'; + put 'put ''NzI4XHU3ZWJmIiwiXHU1OTI3XHU0ZjE3XHU2YzdkXHU4ZjY2IiwiXHU3MGI5XHU3NzBiIiwiXHUwZTA0XHUwZTJkXHUwZTIxIiwiXHU1MTZiXHU1MzY2IiwiXHUwNjQ1XHUwNjQ4XHUwNjQyXHUwNjM5IiwiXHU1MTZjXHU3NmNhIiwiXHU1MTZjXHU1M2Y4IiwiXHU5OTk5XHU2ODNjXHU5MWNj''@;'; + put 'put ''XHU2MmM5IiwiXHU3ZjUxXHU3YWQ5IiwiXHU3OWZiXHU1MmE4IiwiXHU2MjExXHU3MjMxXHU0ZjYwIiwiXHUwNDNjXHUwNDNlXHUwNDQxXHUwNDNhXHUwNDMyXHUwNDMwIiwiXHUwNDNhXHUwNDMwXHUwNDQyXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDNhIiwiXHUwNDNlXHUwNDNkXHUwNDNiXHUw''@;'; + put 'put ''NDMwXHUwNDM5XHUwNDNkIiwiXHUwNDQxXHUwNDMwXHUwNDM5XHUwNDQyIiwiXHU4MDU0XHU5MDFhIiwiXHUwNWU3XHUwNWQ1XHUwNWRkIiwiXHU2NWY2XHU1YzFhIiwiXHU1ZmFlXHU1MzVhIiwiXHU2ZGUxXHU5YTZjXHU5NTIxIiwiXHUzMGQ1XHUzMGExXHUzMGMzXHUzMGI3XHUzMGU3XHUz''@;'; + put 'put ''MGYzIiwiXHUwNDNlXHUwNDQwXHUwNDMzIiwiXHUwOTI4XHUwOTQ3XHUwOTFmIiwiXHUzMGI5XHUzMGM4XHUzMGEyIiwiXHUzMGEyXHUzMGRlXHUzMGJlXHUzMGYzIiwiXHVjMGJjXHVjMTMxIiwiXHU1NTQ2XHU2ODA3IiwiXHU1NTQ2XHU1ZTk3IiwiXHU1NTQ2XHU1N2NlIiwiXHUwNDM0XHUw''@;'; + put 'put ''NDM1XHUwNDQyXHUwNDM4IiwiXHUzMGRkXHUzMGE0XHUzMGYzXHUzMGM4IiwiXHU2NWIwXHU5NWZiIiwiXHU1ZGU1XHU4ODRjIiwiXHU1YmI2XHU5NmZiIiwiXHUwNjQzXHUwNjQ4XHUwNjQ1IiwiXHU0ZTJkXHU2NTg3XHU3ZjUxIiwiXHU0ZTJkXHU0ZmUxIiwiXHU1YTMxXHU0ZTUwIiwiXHU4''@;'; + put 'put ''YzM3XHU2YjRjIiwiXHU5NmZiXHU4YTBhXHU3NmM4XHU3OWQxIiwiXHU4ZDJkXHU3MjY5IiwiXHUzMGFmXHUzMGU5XHUzMGE2XHUzMGM5IiwiXHU5MDFhXHU4Y2E5IiwiXHU3ZjUxXHU1ZTk3IiwiXHUwOTM4XHUwOTAyXHUwOTE3XHUwOTIwXHUwOTI4IiwiXHU5OTEwXHU1Mzg1IiwiXHU3ZjUx''@;'; + put 'put ''XHU3ZWRjIiwiXHUwNDNhXHUwNDNlXHUwNDNjIiwiXHU0ZTlhXHU5YTZjXHU5MDBhIiwiXHU4YmZhXHU1N2ZhXHU0ZTlhIiwiXHU5OGRmXHU1NGMxIiwiXHU5OGRlXHU1MjI5XHU2ZDY2IiwiXHU2MjRiXHU4ODY4IiwiXHU2MjRiXHU2NzNhIiwiXHUwNjI3XHUwNjMxXHUwNjI3XHUwNjQ1XHUw''@;'; + put 'put ''NjQzXHUwNjQ4IiwiXHUwNjI3XHUwNjQ0XHUwNjM5XHUwNjQ0XHUwNjRhXHUwNjI3XHUwNjQ2IiwiXHUwNjI3XHUwNjJhXHUwNjM1XHUwNjI3XHUwNjQ0XHUwNjI3XHUwNjJhIiwiXHUwNjI4XHUwNjI3XHUwNjMyXHUwNjI3XHUwNjMxIiwiXHUwNjI3XHUwNjI4XHUwNjQ4XHUwNjM4XHUwNjI4''@;'; + put 'put ''XHUwNjRhIiwiXHUwNjQzXHUwNjI3XHUwNjJiXHUwNjQ4XHUwNjQ0XHUwNjRhXHUwNjQzIiwiXHUwNjQ3XHUwNjQ1XHUwNjMxXHUwNjI3XHUwNjQ3IiwiXHViMmY3XHVjZWY0IiwiXHU2NTNmXHU1ZTljIiwiXHUwNjM0XHUwNjI4XHUwNjQzXHUwNjI5IiwiXHUwNjI4XHUwNjRhXHUwNjJhXHUw''@;'; + put 'put ''NjQzIiwiXHUwNjM5XHUwNjMxXHUwNjI4IiwiXHU2NzNhXHU2Nzg0IiwiXHU3ZWM0XHU3ZWM3XHU2NzNhXHU2Nzg0IiwiXHU1MDY1XHU1ZWI3IiwiXHU2MmRiXHU4MDU4IiwiXHUwNDQwXHUwNDQzXHUwNDQxIiwiXHU3M2UwXHU1YjlkIiwiXHU1OTI3XHU2MmZmIiwiXHUzMDdmXHUzMDkzXHUz''@;'; + put 'put ''MDZhIiwiXHUzMGIwXHUzMGZjXHUzMGIwXHUzMGViIiwiXHU0ZTE2XHU3NTRjIiwiXHU2NmY4XHU3YzRkIiwiXHU3ZjUxXHU1NzQwIiwiXHViMmY3XHViMTM3IiwiXHUzMGIzXHUzMGUwIiwiXHU1OTI5XHU0ZTNiXHU2NTU5IiwiXHU2ZTM4XHU2MjBmIiwidmVybVx4ZjZnZW5zYmVyYXRlciIs''@;'; + put 'put ''InZlcm1ceGY2Z2Vuc2JlcmF0dW5nIiwiXHU0ZjAxXHU0ZTFhIiwiXHU0ZmUxXHU2MDZmIiwiXHU1NjA5XHU5MWNjXHU1OTI3XHU5MTUyXHU1ZTk3IiwiXHU1NjA5XHU5MWNjIiwiXHU1ZTdmXHU0ZTFjIiwiXHU2NTNmXHU1MmExIiwieHl6IiwieWFjaHRzIiwieWFob28iLCJ5YW1heHVuIiwi''@;'; + put 'put ''eWFuZGV4IiwieW9kb2Jhc2hpIiwieW9nYSIsInlva29oYW1hIiwieW91IiwieW91dHViZSIsInl1biIsInphcHBvcyIsInphcmEiLCJ6ZXJvIiwiemlwIiwiem9uZSIsInp1ZXJpY2giLCJjYy51YSIsImluZi51YSIsImx0ZC51YSIsImFkb2JlYWVtY2xvdWQuY29tIiwiYWRvYmVhZW1jbG91''@;'; + put 'put ''ZC5uZXQiLCIqLmRldi5hZG9iZWFlbWNsb3VkLmNvbSIsImJlZXAucGwiLCJiYXJzeS5jYSIsIiouY29tcHV0ZS5lc3RhdGUiLCIqLmFsY2VzLm5ldHdvcmsiLCJhbHRlcnZpc3RhLm9yZyIsImFsd2F5c2RhdGEubmV0IiwiY2xvdWRmcm9udC5uZXQiLCIqLmNvbXB1dGUuYW1hem9uYXdzLmNv''@;'; + put 'put ''bSIsIiouY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCIqLmNvbXB1dGUuYW1hem9uYXdzLmNvbS5jbiIsInVzLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiY24tbm9ydGgtMS5lYi5hbWF6b25hd3MuY29tLmNuIiwiY24tbm9ydGh3ZXN0LTEuZWIuYW1hem9uYXdzLmNvbS5jbiIsImVsYXN0aWNi''@;'; + put 'put ''ZWFuc3RhbGsuY29tIiwiYXAtbm9ydGhlYXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJhcC1ub3J0aGVhc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImFwLW5vcnRoZWFzdC0zLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwiYXAtc291dGgtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImFw''@;'; + put 'put ''LXNvdXRoZWFzdC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwiYXAtc291dGhlYXN0LTIuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJjYS1jZW50cmFsLTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJldS1jZW50cmFsLTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJldS13ZXN0LTEuZWxhc3RpY2Jl''@;'; + put 'put ''YW5zdGFsay5jb20iLCJldS13ZXN0LTIuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJldS13ZXN0LTMuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJzYS1lYXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJ1cy1lYXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJ1cy1lYXN0LTIuZWxhc3RpY2Jl''@;'; + put 'put ''YW5zdGFsay5jb20iLCJ1cy1nb3Ytd2VzdC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwidXMtd2VzdC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwidXMtd2VzdC0yLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwiKi5lbGIuYW1hem9uYXdzLmNvbSIsIiouZWxiLmFtYXpvbmF3cy5jb20uY24iLCJz''@;'; + put 'put ''My5hbWF6b25hd3MuY29tIiwiczMtYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy1hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hcC1zb3V0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtYXAtc291dGhlYXN0''@;'; + put 'put ''LTIuYW1hem9uYXdzLmNvbSIsInMzLWNhLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiczMtZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy1ldS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWV1LXdlc3QtMi5hbWF6b25hd3MuY29tIiwiczMtZXUtd2VzdC0zLmFtYXpvbmF3cy5j''@;'; + put 'put ''b20iLCJzMy1leHRlcm5hbC0xLmFtYXpvbmF3cy5jb20iLCJzMy1maXBzLXVzLWdvdi13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXNhLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtdXMtZ292LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtdXMtZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJz''@;'; + put 'put ''My11cy13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXVzLXdlc3QtMi5hbWF6b25hd3MuY29tIiwiczMuYXAtbm9ydGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsInMzLmNuLW5vcnRoLTEuYW1hem9uYXdzLmNvbS5jbiIsInMzLmNhLWNlbnRy''@;'; + put 'put ''YWwtMS5hbWF6b25hd3MuY29tIiwiczMuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy5ldS13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLmV1LXdlc3QtMy5hbWF6b25hd3MuY29tIiwiczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suYXAtbm9ydGhlYXN0''@;'; + put 'put ''LTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5hcC1zb3V0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFwLXNv''@;'; + put 'put ''dXRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suZXUt''@;'; + put 'put ''d2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suZXUtd2VzdC0zLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suc2EtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2sudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2sudXMtZWFzdC0yLmFt''@;'; + put 'put ''YXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLXVzLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS11cy13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtdXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20i''@;'; + put 'put ''LCJzMy13ZWJzaXRlLWFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLWFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS1zYS1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdl''@;'; + put 'put ''YnNpdGUuYXAtbm9ydGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuYXAtc291dGgtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5jYS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRl''@;'; + put 'put ''LmV1LXdlc3QtMi5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5ldS13ZXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJhbXN3Lm5sIiwidDNsM3AwcnQubmV0IiwidGVsZS5hbXVuZS5vcmciLCJhcGlnZWUuaW8iLCJvbi1hcHRpYmxl''@;'; + put 'put ''LmNvbSIsInVzZXIuYXNlaW5ldC5uZS5qcCIsImd2LnZjIiwiZC5ndi52YyIsInVzZXIucGFydHkuZXVzIiwicGltaWVudGEub3JnIiwicG9pdnJvbi5vcmciLCJwb3RhZ2VyLm9yZyIsInN3ZWV0cGVwcGVyLm9yZyIsIm15YXN1c3Rvci5jb20iLCJteWZyaXR6Lm5ldCIsIiouYXdkZXYuY2Ei''@;'; + put 'put ''LCIqLmFkdmlzb3Iud3MiLCJiLWRhdGEuaW8iLCJiYWNrcGxhbmVhcHAuaW8iLCJiYWxlbmEtZGV2aWNlcy5jb20iLCJhcHAuYmFuemFpY2xvdWQuaW8iLCJiZXRhaW5hYm94LmNvbSIsImJuci5sYSIsImJsYWNrYmF1ZGNkbi5uZXQiLCJib29tbGEubmV0IiwiYm94ZnVzZS5pbyIsInNxdWFy''@;'; + put 'put ''ZTcuY2giLCJicGxhY2VkLmNvbSIsImJwbGFjZWQuZGUiLCJzcXVhcmU3LmRlIiwiYnBsYWNlZC5uZXQiLCJzcXVhcmU3Lm5ldCIsImJyb3dzZXJzYWZldHltYXJrLmlvIiwidWswLmJpZ3YuaW8iLCJkaC5ieXRlbWFyay5jby51ayIsInZtLmJ5dGVtYXJrLmNvLnVrIiwibXljZC5ldSIsImNh''@;'; + put 'put ''cnJkLmNvIiwiY3JkLmNvIiwidXd1LmFpIiwiYWUub3JnIiwiYXIuY29tIiwiYnIuY29tIiwiY24uY29tIiwiY29tLmRlIiwiY29tLnNlIiwiZGUuY29tIiwiZXUuY29tIiwiZ2IuY29tIiwiZ2IubmV0IiwiaHUuY29tIiwiaHUubmV0IiwianAubmV0IiwianBuLmNvbSIsImtyLmNvbSIsIm1l''@;'; + put 'put ''eC5jb20iLCJuby5jb20iLCJxYy5jb20iLCJydS5jb20iLCJzYS5jb20iLCJzZS5uZXQiLCJ1ay5jb20iLCJ1ay5uZXQiLCJ1cy5jb20iLCJ1eS5jb20iLCJ6YS5ieiIsInphLmNvbSIsImFmcmljYS5jb20iLCJnci5jb20iLCJpbi5uZXQiLCJ1cy5vcmciLCJjby5jb20iLCJjLmxhIiwiY2Vy''@;'; + put 'put ''dG1nci5vcmciLCJ4ZW5hcHBvbmF6dXJlLmNvbSIsImRpc2NvdXJzZS5ncm91cCIsImRpc2NvdXJzZS50ZWFtIiwidmlydHVlZWxkb21laW4ubmwiLCJjbGV2ZXJhcHBzLmlvIiwiKi5sY2wuZGV2IiwiKi5zdGcuZGV2IiwiYzY2Lm1lIiwiY2xvdWQ2Ni53cyIsImNsb3VkNjYuem9uZSIsImpk''@;'; + put 'put ''ZXZjbG91ZC5jb20iLCJ3cGRldmNsb3VkLmNvbSIsImNsb3VkYWNjZXNzLmhvc3QiLCJmcmVlc2l0ZS5ob3N0IiwiY2xvdWRhY2Nlc3MubmV0IiwiY2xvdWRjb250cm9sbGVkLmNvbSIsImNsb3VkY29udHJvbGFwcC5jb20iLCJjbG91ZGVyYS5zaXRlIiwidHJ5Y2xvdWRmbGFyZS5jb20iLCJ3''@;'; + put 'put ''b3JrZXJzLmRldiIsInduZXh0LmFwcCIsImNvLmNhIiwiKi5vdGFwLmNvIiwiY28uY3oiLCJjLmNkbjc3Lm9yZyIsImNkbjc3LXNzbC5uZXQiLCJyLmNkbjc3Lm5ldCIsInJzYy5jZG43Ny5vcmciLCJzc2wub3JpZ2luLmNkbjc3LXNlY3VyZS5vcmciLCJjbG91ZG5zLmFzaWEiLCJjbG91ZG5z''@;'; + put 'put ''LmJpeiIsImNsb3VkbnMuY2x1YiIsImNsb3VkbnMuY2MiLCJjbG91ZG5zLmV1IiwiY2xvdWRucy5pbiIsImNsb3VkbnMuaW5mbyIsImNsb3VkbnMub3JnIiwiY2xvdWRucy5wcm8iLCJjbG91ZG5zLnB3IiwiY2xvdWRucy51cyIsImNsb3VkZWl0eS5uZXQiLCJjbnB5LmdkbiIsImNvLm5sIiwi''@;'; + put 'put ''Y28ubm8iLCJ3ZWJob3N0aW5nLmJlIiwiaG9zdGluZy1jbHVzdGVyLm5sIiwiYWMucnUiLCJlZHUucnUiLCJnb3YucnUiLCJpbnQucnUiLCJtaWwucnUiLCJ0ZXN0LnJ1IiwiZHluLmNvc2lkbnMuZGUiLCJkeW5hbWlzY2hlcy1kbnMuZGUiLCJkbnN1cGRhdGVyLmRlIiwiaW50ZXJuZXQtZG5z''@;'; + put 'put ''LmRlIiwibC1vLWctaS1uLmRlIiwiZHluYW1pYy1kbnMuaW5mbyIsImZlc3RlLWlwLm5ldCIsImtueC1zZXJ2ZXIubmV0Iiwic3RhdGljLWFjY2Vzcy5uZXQiLCJyZWFsbS5jeiIsIiouY3J5cHRvbm9taWMubmV0IiwiY3VwY2FrZS5pcyIsIiouY3VzdG9tZXItb2NpLmNvbSIsIioub2NpLmN1''@;'; + put 'put ''c3RvbWVyLW9jaS5jb20iLCIqLm9jcC5jdXN0b21lci1vY2kuY29tIiwiKi5vY3MuY3VzdG9tZXItb2NpLmNvbSIsImN5b24ubGluayIsImN5b24uc2l0ZSIsImRhcGxpZS5tZSIsImxvY2FsaG9zdC5kYXBsaWUubWUiLCJkYXR0b2xvY2FsLmNvbSIsImRhdHRvcmVsYXkuY29tIiwiZGF0dG93''@;'; + put 'put ''ZWIuY29tIiwibXlkYXR0by5jb20iLCJkYXR0b2xvY2FsLm5ldCIsIm15ZGF0dG8ubmV0IiwiYml6LmRrIiwiY28uZGsiLCJmaXJtLmRrIiwicmVnLmRrIiwic3RvcmUuZGsiLCIqLmRhcHBzLmVhcnRoIiwiKi5ienouZGFwcHMuZWFydGgiLCJidWlsdHdpdGhkYXJrLmNvbSIsImVkZ2VzdGFj''@;'; + put 'put ''ay5tZSIsImRlYmlhbi5uZXQiLCJkZWR5bi5pbyIsImRuc2hvbWUuZGUiLCJvbmxpbmUudGgiLCJzaG9wLnRoIiwiZHJheWRkbnMuY29tIiwiZHJlYW1ob3N0ZXJzLmNvbSIsIm15ZHJvYm8uY29tIiwiZHJ1ZC5pbyIsImRydWQudXMiLCJkdWNrZG5zLm9yZyIsImR5LmZpIiwidHVuay5vcmci''@;'; + put 'put ''LCJkeW5kbnMtYXQtaG9tZS5jb20iLCJkeW5kbnMtYXQtd29yay5jb20iLCJkeW5kbnMtYmxvZy5jb20iLCJkeW5kbnMtZnJlZS5jb20iLCJkeW5kbnMtaG9tZS5jb20iLCJkeW5kbnMtaXAuY29tIiwiZHluZG5zLW1haWwuY29tIiwiZHluZG5zLW9mZmljZS5jb20iLCJkeW5kbnMtcGljcy5j''@;'; + put 'put ''b20iLCJkeW5kbnMtcmVtb3RlLmNvbSIsImR5bmRucy1zZXJ2ZXIuY29tIiwiZHluZG5zLXdlYi5jb20iLCJkeW5kbnMtd2lraS5jb20iLCJkeW5kbnMtd29yay5jb20iLCJkeW5kbnMuYml6IiwiZHluZG5zLmluZm8iLCJkeW5kbnMub3JnIiwiZHluZG5zLnR2IiwiYXQtYmFuZC1jYW1wLm5l''@;'; + put 'put ''dCIsImF0aC5jeCIsImJhcnJlbC1vZi1rbm93bGVkZ2UuaW5mbyIsImJhcnJlbGwtb2Yta25vd2xlZGdlLmluZm8iLCJiZXR0ZXItdGhhbi50diIsImJsb2dkbnMuY29tIiwiYmxvZ2Rucy5uZXQiLCJibG9nZG5zLm9yZyIsImJsb2dzaXRlLm9yZyIsImJvbGRseWdvaW5nbm93aGVyZS5vcmci''@;'; + put 'put ''LCJicm9rZS1pdC5uZXQiLCJidXlzaG91c2VzLm5ldCIsImNlY2hpcmUuY29tIiwiZG5zYWxpYXMuY29tIiwiZG5zYWxpYXMubmV0IiwiZG5zYWxpYXMub3JnIiwiZG5zZG9qby5jb20iLCJkbnNkb2pvLm5ldCIsImRuc2Rvam8ub3JnIiwiZG9lcy1pdC5uZXQiLCJkb2VzbnRleGlzdC5jb20i''@;'; + put 'put ''LCJkb2VzbnRleGlzdC5vcmciLCJkb250ZXhpc3QuY29tIiwiZG9udGV4aXN0Lm5ldCIsImRvbnRleGlzdC5vcmciLCJkb29tZG5zLmNvbSIsImRvb21kbnMub3JnIiwiZHZyZG5zLm9yZyIsImR5bi1vLXNhdXIuY29tIiwiZHluYWxpYXMuY29tIiwiZHluYWxpYXMubmV0IiwiZHluYWxpYXMu''@;'; + put 'put ''b3JnIiwiZHluYXRob21lLm5ldCIsImR5bmRucy53cyIsImVuZG9maW50ZXJuZXQubmV0IiwiZW5kb2ZpbnRlcm5ldC5vcmciLCJlbmRvZnRoZWludGVybmV0Lm9yZyIsImVzdC1hLWxhLW1haXNvbi5jb20iLCJlc3QtYS1sYS1tYXNpb24uY29tIiwiZXN0LWxlLXBhdHJvbi5jb20iLCJlc3Qt''@;'; + put 'put ''bW9uLWJsb2d1ZXVyLmNvbSIsImZvci1iZXR0ZXIuYml6IiwiZm9yLW1vcmUuYml6IiwiZm9yLW91ci5pbmZvIiwiZm9yLXNvbWUuYml6IiwiZm9yLXRoZS5iaXoiLCJmb3Jnb3QuaGVyLm5hbWUiLCJmb3Jnb3QuaGlzLm5hbWUiLCJmcm9tLWFrLmNvbSIsImZyb20tYWwuY29tIiwiZnJvbS1h''@;'; + put 'put ''ci5jb20iLCJmcm9tLWF6Lm5ldCIsImZyb20tY2EuY29tIiwiZnJvbS1jby5uZXQiLCJmcm9tLWN0LmNvbSIsImZyb20tZGMuY29tIiwiZnJvbS1kZS5jb20iLCJmcm9tLWZsLmNvbSIsImZyb20tZ2EuY29tIiwiZnJvbS1oaS5jb20iLCJmcm9tLWlhLmNvbSIsImZyb20taWQuY29tIiwiZnJv''@;'; + put 'put ''bS1pbC5jb20iLCJmcm9tLWluLmNvbSIsImZyb20ta3MuY29tIiwiZnJvbS1reS5jb20iLCJmcm9tLWxhLm5ldCIsImZyb20tbWEuY29tIiwiZnJvbS1tZC5jb20iLCJmcm9tLW1lLm9yZyIsImZyb20tbWkuY29tIiwiZnJvbS1tbi5jb20iLCJmcm9tLW1vLmNvbSIsImZyb20tbXMuY29tIiwi''@;'; + put 'put ''ZnJvbS1tdC5jb20iLCJmcm9tLW5jLmNvbSIsImZyb20tbmQuY29tIiwiZnJvbS1uZS5jb20iLCJmcm9tLW5oLmNvbSIsImZyb20tbmouY29tIiwiZnJvbS1ubS5jb20iLCJmcm9tLW52LmNvbSIsImZyb20tbnkubmV0IiwiZnJvbS1vaC5jb20iLCJmcm9tLW9rLmNvbSIsImZyb20tb3IuY29t''@;'; + put 'put ''IiwiZnJvbS1wYS5jb20iLCJmcm9tLXByLmNvbSIsImZyb20tcmkuY29tIiwiZnJvbS1zYy5jb20iLCJmcm9tLXNkLmNvbSIsImZyb20tdG4uY29tIiwiZnJvbS10eC5jb20iLCJmcm9tLXV0LmNvbSIsImZyb20tdmEuY29tIiwiZnJvbS12dC5jb20iLCJmcm9tLXdhLmNvbSIsImZyb20td2ku''@;'; + put 'put ''Y29tIiwiZnJvbS13di5jb20iLCJmcm9tLXd5LmNvbSIsImZ0cGFjY2Vzcy5jYyIsImZ1ZXR0ZXJ0ZGFzbmV0ei5kZSIsImdhbWUtaG9zdC5vcmciLCJnYW1lLXNlcnZlci5jYyIsImdldG15aXAuY29tIiwiZ2V0cy1pdC5uZXQiLCJnby5keW5kbnMub3JnIiwiZ290ZG5zLmNvbSIsImdvdGRu''@;'; + put 'put ''cy5vcmciLCJncm9rcy10aGUuaW5mbyIsImdyb2tzLXRoaXMuaW5mbyIsImhhbS1yYWRpby1vcC5uZXQiLCJoZXJlLWZvci1tb3JlLmluZm8iLCJob2JieS1zaXRlLmNvbSIsImhvYmJ5LXNpdGUub3JnIiwiaG9tZS5keW5kbnMub3JnIiwiaG9tZWRucy5vcmciLCJob21lZnRwLm5ldCIsImhv''@;'; + put 'put ''bWVmdHAub3JnIiwiaG9tZWlwLm5ldCIsImhvbWVsaW51eC5jb20iLCJob21lbGludXgubmV0IiwiaG9tZWxpbnV4Lm9yZyIsImhvbWV1bml4LmNvbSIsImhvbWV1bml4Lm5ldCIsImhvbWV1bml4Lm9yZyIsImlhbWFsbGFtYS5jb20iLCJpbi10aGUtYmFuZC5uZXQiLCJpcy1hLWFuYXJjaGlz''@;'; + put 'put ''dC5jb20iLCJpcy1hLWJsb2dnZXIuY29tIiwiaXMtYS1ib29ra2VlcGVyLmNvbSIsImlzLWEtYnJ1aW5zZmFuLm9yZyIsImlzLWEtYnVsbHMtZmFuLmNvbSIsImlzLWEtY2FuZGlkYXRlLm9yZyIsImlzLWEtY2F0ZXJlci5jb20iLCJpcy1hLWNlbHRpY3NmYW4ub3JnIiwiaXMtYS1jaGVmLmNv''@;'; + put 'put ''bSIsImlzLWEtY2hlZi5uZXQiLCJpcy1hLWNoZWYub3JnIiwiaXMtYS1jb25zZXJ2YXRpdmUuY29tIiwiaXMtYS1jcGEuY29tIiwiaXMtYS1jdWJpY2xlLXNsYXZlLmNvbSIsImlzLWEtZGVtb2NyYXQuY29tIiwiaXMtYS1kZXNpZ25lci5jb20iLCJpcy1hLWRvY3Rvci5jb20iLCJpcy1hLWZp''@;'; + put 'put ''bmFuY2lhbGFkdmlzb3IuY29tIiwiaXMtYS1nZWVrLmNvbSIsImlzLWEtZ2Vlay5uZXQiLCJpcy1hLWdlZWsub3JnIiwiaXMtYS1ncmVlbi5jb20iLCJpcy1hLWd1cnUuY29tIiwiaXMtYS1oYXJkLXdvcmtlci5jb20iLCJpcy1hLWh1bnRlci5jb20iLCJpcy1hLWtuaWdodC5vcmciLCJpcy1h''@;'; + put 'put ''LWxhbmRzY2FwZXIuY29tIiwiaXMtYS1sYXd5ZXIuY29tIiwiaXMtYS1saWJlcmFsLmNvbSIsImlzLWEtbGliZXJ0YXJpYW4uY29tIiwiaXMtYS1saW51eC11c2VyLm9yZyIsImlzLWEtbGxhbWEuY29tIiwiaXMtYS1tdXNpY2lhbi5jb20iLCJpcy1hLW5hc2NhcmZhbi5jb20iLCJpcy1hLW51''@;'; + put 'put ''cnNlLmNvbSIsImlzLWEtcGFpbnRlci5jb20iLCJpcy1hLXBhdHNmYW4ub3JnIiwiaXMtYS1wZXJzb25hbHRyYWluZXIuY29tIiwiaXMtYS1waG90b2dyYXBoZXIuY29tIiwiaXMtYS1wbGF5ZXIuY29tIiwiaXMtYS1yZXB1YmxpY2FuLmNvbSIsImlzLWEtcm9ja3N0YXIuY29tIiwiaXMtYS1z''@;'; + put 'put ''b2NpYWxpc3QuY29tIiwiaXMtYS1zb3hmYW4ub3JnIiwiaXMtYS1zdHVkZW50LmNvbSIsImlzLWEtdGVhY2hlci5jb20iLCJpcy1hLXRlY2hpZS5jb20iLCJpcy1hLXRoZXJhcGlzdC5jb20iLCJpcy1hbi1hY2NvdW50YW50LmNvbSIsImlzLWFuLWFjdG9yLmNvbSIsImlzLWFuLWFjdHJlc3Mu''@;'; + put 'put ''Y29tIiwiaXMtYW4tYW5hcmNoaXN0LmNvbSIsImlzLWFuLWFydGlzdC5jb20iLCJpcy1hbi1lbmdpbmVlci5jb20iLCJpcy1hbi1lbnRlcnRhaW5lci5jb20iLCJpcy1ieS51cyIsImlzLWNlcnRpZmllZC5jb20iLCJpcy1mb3VuZC5vcmciLCJpcy1nb25lLmNvbSIsImlzLWludG8tYW5pbWUu''@;'; + put 'put ''Y29tIiwiaXMtaW50by1jYXJzLmNvbSIsImlzLWludG8tY2FydG9vbnMuY29tIiwiaXMtaW50by1nYW1lcy5jb20iLCJpcy1sZWV0LmNvbSIsImlzLWxvc3Qub3JnIiwiaXMtbm90LWNlcnRpZmllZC5jb20iLCJpcy1zYXZlZC5vcmciLCJpcy1zbGljay5jb20iLCJpcy11YmVybGVldC5jb20i''@;'; + put 'put ''LCJpcy12ZXJ5LWJhZC5vcmciLCJpcy12ZXJ5LWV2aWwub3JnIiwiaXMtdmVyeS1nb29kLm9yZyIsImlzLXZlcnktbmljZS5vcmciLCJpcy12ZXJ5LXN3ZWV0Lm9yZyIsImlzLXdpdGgtdGhlYmFuZC5jb20iLCJpc2EtZ2Vlay5jb20iLCJpc2EtZ2Vlay5uZXQiLCJpc2EtZ2Vlay5vcmciLCJp''@;'; + put 'put ''c2EtaG9ja2V5bnV0LmNvbSIsImlzc21hcnRlcnRoYW55b3UuY29tIiwiaXN0ZWluZ2Vlay5kZSIsImlzdG1laW4uZGUiLCJraWNrcy1hc3MubmV0Iiwia2lja3MtYXNzLm9yZyIsImtub3dzaXRhbGwuaW5mbyIsImxhbmQtNC1zYWxlLnVzIiwibGVidGltbmV0ei5kZSIsImxlaXR1bmdzZW4u''@;'; + put 'put ''ZGUiLCJsaWtlcy1waWUuY29tIiwibGlrZXNjYW5keS5jb20iLCJtZXJzZWluZS5udSIsIm1pbmUubnUiLCJtaXNjb25mdXNlZC5vcmciLCJteXBldHMud3MiLCJteXBob3Rvcy5jYyIsIm5lYXQtdXJsLmNvbSIsIm9mZmljZS1vbi10aGUubmV0Iiwib24tdGhlLXdlYi50diIsInBvZHpvbmUu''@;'; + put 'put ''bmV0IiwicG9kem9uZS5vcmciLCJyZWFkbXlibG9nLm9yZyIsInNhdmVzLXRoZS13aGFsZXMuY29tIiwic2NyYXBwZXItc2l0ZS5uZXQiLCJzY3JhcHBpbmcuY2MiLCJzZWxmaXAuYml6Iiwic2VsZmlwLmNvbSIsInNlbGZpcC5pbmZvIiwic2VsZmlwLm5ldCIsInNlbGZpcC5vcmciLCJzZWxs''@;'; + put 'put ''cy1mb3ItbGVzcy5jb20iLCJzZWxscy1mb3ItdS5jb20iLCJzZWxscy1pdC5uZXQiLCJzZWxsc3lvdXJob21lLm9yZyIsInNlcnZlYmJzLmNvbSIsInNlcnZlYmJzLm5ldCIsInNlcnZlYmJzLm9yZyIsInNlcnZlZnRwLm5ldCIsInNlcnZlZnRwLm9yZyIsInNlcnZlZ2FtZS5vcmciLCJzaGFj''@;'; + put 'put ''a25ldC5udSIsInNpbXBsZS11cmwuY29tIiwic3BhY2UtdG8tcmVudC5jb20iLCJzdHVmZi00LXNhbGUub3JnIiwic3R1ZmYtNC1zYWxlLnVzIiwidGVhY2hlcy15b2dhLmNvbSIsInRocnVoZXJlLm5ldCIsInRyYWV1bXRnZXJhZGUuZGUiLCJ3ZWJob3AuYml6Iiwid2ViaG9wLmluZm8iLCJ3''@;'; + put 'put ''ZWJob3AubmV0Iiwid2ViaG9wLm9yZyIsIndvcnNlLXRoYW4udHYiLCJ3cml0ZXN0aGlzYmxvZy5jb20iLCJkZG5zcy5kZSIsImR5bi5kZG5zcy5kZSIsImR5bmRucy5kZG5zcy5kZSIsImR5bmRuczEuZGUiLCJkeW4taXAyNC5kZSIsImhvbWUtd2Vic2VydmVyLmRlIiwiZHluLmhvbWUtd2Vi''@;'; + put 'put ''c2VydmVyLmRlIiwibXlob21lLXNlcnZlci5kZSIsImRkbnNzLm9yZyIsImRlZmluaW1hLm5ldCIsImRlZmluaW1hLmlvIiwiYmNpLmRuc3RyYWNlLnBybyIsImRkbnNmcmVlLmNvbSIsImRkbnNnZWVrLmNvbSIsImdpaXplLmNvbSIsImdsZWV6ZS5jb20iLCJrb3pvdy5jb20iLCJsb3NleW91''@;'; + put 'put ''cmlwLmNvbSIsIm9vZ3V5LmNvbSIsInRoZXdvcmtwYy5jb20iLCJjYXNhY2FtLm5ldCIsImR5bnUubmV0IiwiYWNjZXNzY2FtLm9yZyIsImNhbWR2ci5vcmciLCJmcmVlZGRucy5vcmciLCJteXdpcmUub3JnIiwid2VicmVkaXJlY3Qub3JnIiwibXlkZG5zLnJvY2tzIiwiYmxvZ3NpdGUueHl6''@;'; + put 'put ''IiwiZHludjYubmV0IiwiZTQuY3oiLCJlbi1yb290LmZyIiwibXl0dWxlYXAuY29tIiwib25yZWQub25lIiwic3RhZ2luZy5vbnJlZC5vbmUiLCJlbm9uaWMuaW8iLCJjdXN0b21lci5lbm9uaWMuaW8iLCJldS5vcmciLCJhbC5ldS5vcmciLCJhc3NvLmV1Lm9yZyIsImF0LmV1Lm9yZyIsImF1''@;'; + put 'put ''LmV1Lm9yZyIsImJlLmV1Lm9yZyIsImJnLmV1Lm9yZyIsImNhLmV1Lm9yZyIsImNkLmV1Lm9yZyIsImNoLmV1Lm9yZyIsImNuLmV1Lm9yZyIsImN5LmV1Lm9yZyIsImN6LmV1Lm9yZyIsImRlLmV1Lm9yZyIsImRrLmV1Lm9yZyIsImVkdS5ldS5vcmciLCJlZS5ldS5vcmciLCJlcy5ldS5vcmci''@;'; + put 'put ''LCJmaS5ldS5vcmciLCJmci5ldS5vcmciLCJnci5ldS5vcmciLCJoci5ldS5vcmciLCJodS5ldS5vcmciLCJpZS5ldS5vcmciLCJpbC5ldS5vcmciLCJpbi5ldS5vcmciLCJpbnQuZXUub3JnIiwiaXMuZXUub3JnIiwiaXQuZXUub3JnIiwianAuZXUub3JnIiwia3IuZXUub3JnIiwibHQuZXUu''@;'; + put 'put ''b3JnIiwibHUuZXUub3JnIiwibHYuZXUub3JnIiwibWMuZXUub3JnIiwibWUuZXUub3JnIiwibWsuZXUub3JnIiwibXQuZXUub3JnIiwibXkuZXUub3JnIiwibmV0LmV1Lm9yZyIsIm5nLmV1Lm9yZyIsIm5sLmV1Lm9yZyIsIm5vLmV1Lm9yZyIsIm56LmV1Lm9yZyIsInBhcmlzLmV1Lm9yZyIs''@;'; + put 'put ''InBsLmV1Lm9yZyIsInB0LmV1Lm9yZyIsInEtYS5ldS5vcmciLCJyby5ldS5vcmciLCJydS5ldS5vcmciLCJzZS5ldS5vcmciLCJzaS5ldS5vcmciLCJzay5ldS5vcmciLCJ0ci5ldS5vcmciLCJ1ay5ldS5vcmciLCJ1cy5ldS5vcmciLCJldS0xLmV2ZW5ub2RlLmNvbSIsImV1LTIuZXZlbm5v''@;'; + put 'put ''ZGUuY29tIiwiZXUtMy5ldmVubm9kZS5jb20iLCJldS00LmV2ZW5ub2RlLmNvbSIsInVzLTEuZXZlbm5vZGUuY29tIiwidXMtMi5ldmVubm9kZS5jb20iLCJ1cy0zLmV2ZW5ub2RlLmNvbSIsInVzLTQuZXZlbm5vZGUuY29tIiwidHdtYWlsLmNjIiwidHdtYWlsLm5ldCIsInR3bWFpbC5vcmci''@;'; + put 'put ''LCJteW1haWxlci5jb20udHciLCJ1cmwudHciLCJhcHBzLmZic2J4LmNvbSIsInJ1Lm5ldCIsImFkeWdleWEucnUiLCJiYXNoa2lyaWEucnUiLCJiaXIucnUiLCJjYmcucnUiLCJjb20ucnUiLCJkYWdlc3Rhbi5ydSIsImdyb3pueS5ydSIsImthbG15a2lhLnJ1Iiwia3VzdGFuYWkucnUiLCJt''@;'; + put 'put ''YXJpbmUucnUiLCJtb3Jkb3ZpYS5ydSIsIm1zay5ydSIsIm15dGlzLnJ1IiwibmFsY2hpay5ydSIsIm5vdi5ydSIsInB5YXRpZ29yc2sucnUiLCJzcGIucnUiLCJ2bGFkaWthdmthei5ydSIsInZsYWRpbWlyLnJ1IiwiYWJraGF6aWEuc3UiLCJhZHlnZXlhLnN1IiwiYWt0eXViaW5zay5zdSIs''@;'; + put 'put ''ImFya2hhbmdlbHNrLnN1IiwiYXJtZW5pYS5zdSIsImFzaGdhYmFkLnN1IiwiYXplcmJhaWphbi5zdSIsImJhbGFzaG92LnN1IiwiYmFzaGtpcmlhLnN1IiwiYnJ5YW5zay5zdSIsImJ1a2hhcmEuc3UiLCJjaGlta2VudC5zdSIsImRhZ2VzdGFuLnN1IiwiZWFzdC1rYXpha2hzdGFuLnN1Iiwi''@;'; + put 'put ''ZXhuZXQuc3UiLCJnZW9yZ2lhLnN1IiwiZ3Jvem55LnN1IiwiaXZhbm92by5zdSIsImphbWJ5bC5zdSIsImthbG15a2lhLnN1Iiwia2FsdWdhLnN1Iiwia2FyYWNvbC5zdSIsImthcmFnYW5kYS5zdSIsImthcmVsaWEuc3UiLCJraGFrYXNzaWEuc3UiLCJrcmFzbm9kYXIuc3UiLCJrdXJnYW4u''@;'; + put 'put ''c3UiLCJrdXN0YW5haS5zdSIsImxlbnVnLnN1IiwibWFuZ3lzaGxhay5zdSIsIm1vcmRvdmlhLnN1IiwibXNrLnN1IiwibXVybWFuc2suc3UiLCJuYWxjaGlrLnN1IiwibmF2b2kuc3UiLCJub3J0aC1rYXpha2hzdGFuLnN1Iiwibm92LnN1Iiwib2JuaW5zay5zdSIsInBlbnphLnN1IiwicG9r''@;'; + put 'put ''cm92c2suc3UiLCJzb2NoaS5zdSIsInNwYi5zdSIsInRhc2hrZW50LnN1IiwidGVybWV6LnN1IiwidG9nbGlhdHRpLnN1IiwidHJvaXRzay5zdSIsInRzZWxpbm9ncmFkLnN1IiwidHVsYS5zdSIsInR1dmEuc3UiLCJ2bGFkaWthdmthei5zdSIsInZsYWRpbWlyLnN1Iiwidm9sb2dkYS5zdSIs''@;'; + put 'put ''ImNoYW5uZWxzZHZyLm5ldCIsInUuY2hhbm5lbHNkdnIubmV0IiwiZmFzdGx5LXRlcnJhcml1bS5jb20iLCJmYXN0bHlsYi5uZXQiLCJtYXAuZmFzdGx5bGIubmV0IiwiZnJlZXRscy5mYXN0bHkubmV0IiwibWFwLmZhc3RseS5uZXQiLCJhLnByb2QuZmFzdGx5Lm5ldCIsImdsb2JhbC5wcm9k''@;'; + put 'put ''LmZhc3RseS5uZXQiLCJhLnNzbC5mYXN0bHkubmV0IiwiYi5zc2wuZmFzdGx5Lm5ldCIsImdsb2JhbC5zc2wuZmFzdGx5Lm5ldCIsImZhc3RwYW5lbC5kaXJlY3QiLCJmYXN0dnBzLXNlcnZlci5jb20iLCJmaGFwcC54eXoiLCJmZWRvcmFpbmZyYWNsb3VkLm9yZyIsImZlZG9yYXBlb3BsZS5v''@;'; + put 'put ''cmciLCJjbG91ZC5mZWRvcmFwcm9qZWN0Lm9yZyIsImFwcC5vcy5mZWRvcmFwcm9qZWN0Lm9yZyIsImFwcC5vcy5zdGcuZmVkb3JhcHJvamVjdC5vcmciLCJteWRvYmlzcy5jb20iLCJmaWxlZ2Vhci5tZSIsImZpbGVnZWFyLWF1Lm1lIiwiZmlsZWdlYXItZGUubWUiLCJmaWxlZ2Vhci1nYi5t''@;'; + put 'put ''ZSIsImZpbGVnZWFyLWllLm1lIiwiZmlsZWdlYXItanAubWUiLCJmaWxlZ2Vhci1zZy5tZSIsImZpcmViYXNlYXBwLmNvbSIsImZseW5uaHViLmNvbSIsImZseW5uaG9zdGluZy5uZXQiLCIwZS52YyIsImZyZWVib3gtb3MuY29tIiwiZnJlZWJveG9zLmNvbSIsImZieC1vcy5mciIsImZieG9z''@;'; + put 'put ''LmZyIiwiZnJlZWJveC1vcy5mciIsImZyZWVib3hvcy5mciIsImZyZWVkZXNrdG9wLm9yZyIsIiouZnV0dXJlY21zLmF0IiwiKi5leC5mdXR1cmVjbXMuYXQiLCIqLmluLmZ1dHVyZWNtcy5hdCIsImZ1dHVyZWhvc3RpbmcuYXQiLCJmdXR1cmVtYWlsaW5nLmF0IiwiKi5leC5vcnRzaW5mby5h''@;'; + put 'put ''dCIsIioua3VuZGVuLm9ydHNpbmZvLmF0IiwiKi5zdGF0aWNzLmNsb3VkIiwic2VydmljZS5nb3YudWsiLCJnZWhpcm4ubmUuanAiLCJ1c2VyY29udGVudC5qcCIsImdlbnRhcHBzLmNvbSIsImxhYi5tcyIsImdpdGh1Yi5pbyIsImdpdGh1YnVzZXJjb250ZW50LmNvbSIsImdpdGxhYi5pbyIs''@;'; + put 'put ''ImdsaXRjaC5tZSIsImxvbGlwb3AuaW8iLCJjbG91ZGFwcHMuZGlnaXRhbCIsImxvbmRvbi5jbG91ZGFwcHMuZGlnaXRhbCIsImhvbWVvZmZpY2UuZ292LnVrIiwicm8uaW0iLCJzaG9wLnJvIiwiZ29pcC5kZSIsInJ1bi5hcHAiLCJhLnJ1bi5hcHAiLCJ3ZWIuYXBwIiwiKi4wZW1tLmNvbSIs''@;'; + put 'put ''ImFwcHNwb3QuY29tIiwiKi5yLmFwcHNwb3QuY29tIiwiYmxvZ3Nwb3QuYWUiLCJibG9nc3BvdC5hbCIsImJsb2dzcG90LmFtIiwiYmxvZ3Nwb3QuYmEiLCJibG9nc3BvdC5iZSIsImJsb2dzcG90LmJnIiwiYmxvZ3Nwb3QuYmoiLCJibG9nc3BvdC5jYSIsImJsb2dzcG90LmNmIiwiYmxvZ3Nw''@;'; + put 'put ''b3QuY2giLCJibG9nc3BvdC5jbCIsImJsb2dzcG90LmNvLmF0IiwiYmxvZ3Nwb3QuY28uaWQiLCJibG9nc3BvdC5jby5pbCIsImJsb2dzcG90LmNvLmtlIiwiYmxvZ3Nwb3QuY28ubnoiLCJibG9nc3BvdC5jby51ayIsImJsb2dzcG90LmNvLnphIiwiYmxvZ3Nwb3QuY29tIiwiYmxvZ3Nwb3Qu''@;'; + put 'put ''Y29tLmFyIiwiYmxvZ3Nwb3QuY29tLmF1IiwiYmxvZ3Nwb3QuY29tLmJyIiwiYmxvZ3Nwb3QuY29tLmJ5IiwiYmxvZ3Nwb3QuY29tLmNvIiwiYmxvZ3Nwb3QuY29tLmN5IiwiYmxvZ3Nwb3QuY29tLmVlIiwiYmxvZ3Nwb3QuY29tLmVnIiwiYmxvZ3Nwb3QuY29tLmVzIiwiYmxvZ3Nwb3QuY29t''@;'; + put 'put ''Lm10IiwiYmxvZ3Nwb3QuY29tLm5nIiwiYmxvZ3Nwb3QuY29tLnRyIiwiYmxvZ3Nwb3QuY29tLnV5IiwiYmxvZ3Nwb3QuY3YiLCJibG9nc3BvdC5jeiIsImJsb2dzcG90LmRlIiwiYmxvZ3Nwb3QuZGsiLCJibG9nc3BvdC5maSIsImJsb2dzcG90LmZyIiwiYmxvZ3Nwb3QuZ3IiLCJibG9nc3Bv''@;'; + put 'put ''dC5oayIsImJsb2dzcG90LmhyIiwiYmxvZ3Nwb3QuaHUiLCJibG9nc3BvdC5pZSIsImJsb2dzcG90LmluIiwiYmxvZ3Nwb3QuaXMiLCJibG9nc3BvdC5pdCIsImJsb2dzcG90LmpwIiwiYmxvZ3Nwb3Qua3IiLCJibG9nc3BvdC5saSIsImJsb2dzcG90Lmx0IiwiYmxvZ3Nwb3QubHUiLCJibG9n''@;'; + put 'put ''c3BvdC5tZCIsImJsb2dzcG90Lm1rIiwiYmxvZ3Nwb3QubXIiLCJibG9nc3BvdC5teCIsImJsb2dzcG90Lm15IiwiYmxvZ3Nwb3QubmwiLCJibG9nc3BvdC5ubyIsImJsb2dzcG90LnBlIiwiYmxvZ3Nwb3QucHQiLCJibG9nc3BvdC5xYSIsImJsb2dzcG90LnJlIiwiYmxvZ3Nwb3Qucm8iLCJi''@;'; + put 'put ''bG9nc3BvdC5ycyIsImJsb2dzcG90LnJ1IiwiYmxvZ3Nwb3Quc2UiLCJibG9nc3BvdC5zZyIsImJsb2dzcG90LnNpIiwiYmxvZ3Nwb3Quc2siLCJibG9nc3BvdC5zbiIsImJsb2dzcG90LnRkIiwiYmxvZ3Nwb3QudHciLCJibG9nc3BvdC51ZyIsImJsb2dzcG90LnZuIiwiY2xvdWRmdW5jdGlv''@;'; + put 'put ''bnMubmV0IiwiY2xvdWQuZ29vZyIsImNvZGVzcG90LmNvbSIsImdvb2dsZWFwaXMuY29tIiwiZ29vZ2xlY29kZS5jb20iLCJwYWdlc3BlZWRtb2JpbGl6ZXIuY29tIiwicHVibGlzaHByb3h5LmNvbSIsIndpdGhnb29nbGUuY29tIiwid2l0aHlvdXR1YmUuY29tIiwiYXdzbXBwbC5jb20iLCJm''@;'; + put 'put ''aW4uY2kiLCJmcmVlLmhyIiwiY2FhLmxpIiwidWEucnMiLCJjb25mLnNlIiwiaHMuem9uZSIsImhzLnJ1biIsImhhc2hiYW5nLnNoIiwiaGFzdXJhLmFwcCIsImhhc3VyYS1hcHAuaW8iLCJoZXBmb3JnZS5vcmciLCJoZXJva3VhcHAuY29tIiwiaGVyb2t1c3NsLmNvbSIsIm15cmF2ZW5kYi5j''@;'; + put 'put ''b20iLCJyYXZlbmRiLmNvbW11bml0eSIsInJhdmVuZGIubWUiLCJkZXZlbG9wbWVudC5ydW4iLCJyYXZlbmRiLnJ1biIsImJwbC5iaXoiLCJvcnguYml6IiwibmcuY2l0eSIsImJpei5nbCIsIm5nLmluayIsImNvbC5uZyIsImZpcm0ubmciLCJnZW4ubmciLCJsdGQubmciLCJuZ28ubmciLCJu''@;'; + put 'put ''Zy5zY2hvb2wiLCJzY2guc28iLCJoXHhlNGtraW5lbi5maSIsIioubW9vbnNjYWxlLmlvIiwibW9vbnNjYWxlLm5ldCIsImlraS5maSIsImR5bi1iZXJsaW4uZGUiLCJpbi1iZXJsaW4uZGUiLCJpbi1icmIuZGUiLCJpbi1idXR0ZXIuZGUiLCJpbi1kc2wuZGUiLCJpbi1kc2wubmV0IiwiaW4t''@;'; + put 'put ''ZHNsLm9yZyIsImluLXZwbi5kZSIsImluLXZwbi5uZXQiLCJpbi12cG4ub3JnIiwiYml6LmF0IiwiaW5mby5hdCIsImluZm8uY3giLCJhYy5sZWcuYnIiLCJhbC5sZWcuYnIiLCJhbS5sZWcuYnIiLCJhcC5sZWcuYnIiLCJiYS5sZWcuYnIiLCJjZS5sZWcuYnIiLCJkZi5sZWcuYnIiLCJlcy5s''@;'; + put 'put ''ZWcuYnIiLCJnby5sZWcuYnIiLCJtYS5sZWcuYnIiLCJtZy5sZWcuYnIiLCJtcy5sZWcuYnIiLCJtdC5sZWcuYnIiLCJwYS5sZWcuYnIiLCJwYi5sZWcuYnIiLCJwZS5sZWcuYnIiLCJwaS5sZWcuYnIiLCJwci5sZWcuYnIiLCJyai5sZWcuYnIiLCJybi5sZWcuYnIiLCJyby5sZWcuYnIiLCJy''@;'; + put 'put ''ci5sZWcuYnIiLCJycy5sZWcuYnIiLCJzYy5sZWcuYnIiLCJzZS5sZWcuYnIiLCJzcC5sZWcuYnIiLCJ0by5sZWcuYnIiLCJwaXhvbGluby5jb20iLCJpcGlmb255Lm5ldCIsIm1laW4taXNlcnYuZGUiLCJ0ZXN0LWlzZXJ2LmRlIiwiaXNlcnYuZGV2IiwiaW9iYi5uZXQiLCJteWppbm8ucnUi''@;'; + put 'put ''LCIqLmhvc3RpbmcubXlqaW5vLnJ1IiwiKi5sYW5kaW5nLm15amluby5ydSIsIiouc3BlY3RydW0ubXlqaW5vLnJ1IiwiKi52cHMubXlqaW5vLnJ1IiwiKi50cml0b24uem9uZSIsIiouY25zLmpveWVudC5jb20iLCJqcy5vcmciLCJrYWFzLmdnIiwia2hwbGF5Lm5sIiwia2V5bWFjaGluZS5k''@;'; + put 'put ''ZSIsImtpbmdob3N0Lm5ldCIsInVuaTUubmV0Iiwia25pZ2h0cG9pbnQuc3lzdGVtcyIsIm95YS50byIsImNvLmtyZCIsImVkdS5rcmQiLCJnaXQtcmVwb3MuZGUiLCJsY3ViZS1zZXJ2ZXIuZGUiLCJzdm4tcmVwb3MuZGUiLCJsZWFkcGFnZXMuY28iLCJscGFnZXMuY28iLCJscHVzZXJjb250''@;'; + put 'put ''ZW50LmNvbSIsImxlbHV4LnNpdGUiLCJjby5idXNpbmVzcyIsImNvLmVkdWNhdGlvbiIsImNvLmV2ZW50cyIsImNvLmZpbmFuY2lhbCIsImNvLm5ldHdvcmsiLCJjby5wbGFjZSIsImNvLnRlY2hub2xvZ3kiLCJhcHAubG1wbS5jb20iLCJsaW5raXRvb2xzLnNwYWNlIiwibGlua3lhcmQuY2xv''@;'; + put 'put ''dWQiLCJsaW5reWFyZC1jbG91ZC5jaCIsIm1lbWJlcnMubGlub2RlLmNvbSIsIm5vZGViYWxhbmNlci5saW5vZGUuY29tIiwid2UuYnMiLCJsb2dpbmxpbmUuYXBwIiwibG9naW5saW5lLmRldiIsImxvZ2lubGluZS5pbyIsImxvZ2lubGluZS5zZXJ2aWNlcyIsImxvZ2lubGluZS5zaXRlIiwi''@;'; + put 'put ''a3Jhc25pay5wbCIsImxlY3puYS5wbCIsImx1YmFydG93LnBsIiwibHVibGluLnBsIiwicG9uaWF0b3dhLnBsIiwic3dpZG5pay5wbCIsInVrbHVncy5vcmciLCJnbHVnLm9yZy51ayIsImx1Zy5vcmcudWsiLCJsdWdzLm9yZy51ayIsImJhcnN5LmJnIiwiYmFyc3kuY28udWsiLCJiYXJzeW9u''@;'; + put 'put ''bGluZS5jby51ayIsImJhcnN5Y2VudGVyLmNvbSIsImJhcnN5b25saW5lLmNvbSIsImJhcnN5LmNsdWIiLCJiYXJzeS5kZSIsImJhcnN5LmV1IiwiYmFyc3kuaW4iLCJiYXJzeS5pbmZvIiwiYmFyc3kuaW8iLCJiYXJzeS5tZSIsImJhcnN5Lm1lbnUiLCJiYXJzeS5tb2JpIiwiYmFyc3kubmV0''@;'; + put 'put ''IiwiYmFyc3kub25saW5lIiwiYmFyc3kub3JnIiwiYmFyc3kucHJvIiwiYmFyc3kucHViIiwiYmFyc3kuc2hvcCIsImJhcnN5LnNpdGUiLCJiYXJzeS5zdXBwb3J0IiwiYmFyc3kudWsiLCIqLm1hZ2VudG9zaXRlLmNsb3VkIiwibWF5Zmlyc3QuaW5mbyIsIm1heWZpcnN0Lm9yZyIsImhiLmNs''@;'; + put 'put ''ZG1haWwucnUiLCJtaW5pc2VydmVyLmNvbSIsIm1lbXNldC5uZXQiLCJjbG91ZC5tZXRhY2VudHJ1bS5jeiIsImN1c3RvbS5tZXRhY2VudHJ1bS5jeiIsImZsdC5jbG91ZC5tdW5pLmN6IiwidXNyLmNsb3VkLm11bmkuY3oiLCJtZXRlb3JhcHAuY29tIiwiZXUubWV0ZW9yYXBwLmNvbSIsImNv''@;'; + put 'put ''LnBsIiwiYXp1cmVjb250YWluZXIuaW8iLCJhenVyZXdlYnNpdGVzLm5ldCIsImF6dXJlLW1vYmlsZS5uZXQiLCJjbG91ZGFwcC5uZXQiLCJtb3ppbGxhLWlvdC5vcmciLCJibW9hdHRhY2htZW50cy5vcmciLCJuZXQucnUiLCJvcmcucnUiLCJwcC5ydSIsInVpLm5hYnUuY2FzYSIsInBvbnku''@;'; + put 'put ''Y2x1YiIsIm9mLmZhc2hpb24iLCJvbi5mYXNoaW9uIiwib2YuZm9vdGJhbGwiLCJpbi5sb25kb24iLCJvZi5sb25kb24iLCJmb3IubWVuIiwiYW5kLm1vbSIsImZvci5tb20iLCJmb3Iub25lIiwiZm9yLnNhbGUiLCJvZi53b3JrIiwidG8ud29yayIsIm5jdHUubWUiLCJiaXRiYWxsb29uLmNv''@;'; + put 'put ''bSIsIm5ldGxpZnkuY29tIiwiNHUuY29tIiwibmdyb2suaW8iLCJuaC1zZXJ2LmNvLnVrIiwibmZzaG9zdC5jb20iLCJkbnNraW5nLmNoIiwibXlwaS5jbyIsIm40dC5jbyIsIjAwMXd3dy5jb20iLCJkZG5zbGl2ZS5jb20iLCJteWlwaG9zdC5jb20iLCJmb3J1bXouaW5mbyIsIjE2LWIuaXQi''@;'; + put 'put ''LCIzMi1iLml0IiwiNjQtYi5pdCIsInNvdW5kY2FzdC5tZSIsInRjcDQubWUiLCJkbnN1cC5uZXQiLCJoaWNhbS5uZXQiLCJub3ctZG5zLm5ldCIsIm93bmlwLm5ldCIsInZwbmRucy5uZXQiLCJkeW5zZXJ2Lm9yZyIsIm5vdy1kbnMub3JnIiwieDQ0My5wdyIsIm5vdy1kbnMudG9wIiwibnRk''@;'; + put 'put ''bGwudG9wIiwiZnJlZWRkbnMudXMiLCJjcmFmdGluZy54eXoiLCJ6YXB0by54eXoiLCJuc3VwZGF0ZS5pbmZvIiwibmVyZHBvbC5vdmgiLCJibG9nc3l0ZS5jb20iLCJicmFzaWxpYS5tZSIsImNhYmxlLW1vZGVtLm9yZyIsImNpc2NvZnJlYWsuY29tIiwiY29sbGVnZWZhbi5vcmciLCJjb3Vj''@;'; + put 'put ''aHBvdGF0b2ZyaWVzLm9yZyIsImRhbW5zZXJ2ZXIuY29tIiwiZGRucy5tZSIsImRpdGNoeW91cmlwLmNvbSIsImRuc2Zvci5tZSIsImRuc2lza2lua3kuY29tIiwiZHZyY2FtLmluZm8iLCJkeW5ucy5jb20iLCJlYXRpbmctb3JnYW5pYy5uZXQiLCJmYW50YXN5bGVhZ3VlLmNjIiwiZ2Vla2dh''@;'; + put 'put ''bGF4eS5jb20iLCJnb2xmZmFuLnVzIiwiaGVhbHRoLWNhcmVyZWZvcm0uY29tIiwiaG9tZXNlY3VyaXR5bWFjLmNvbSIsImhvbWVzZWN1cml0eXBjLmNvbSIsImhvcHRvLm1lIiwiaWxvdmVjb2xsZWdlLmluZm8iLCJsb2dpbnRvLm1lIiwibWxiZmFuLm9yZyIsIm1tYWZhbi5iaXoiLCJteWFj''@;'; + put 'put ''dGl2ZWRpcmVjdG9yeS5jb20iLCJteWRpc3NlbnQubmV0IiwibXllZmZlY3QubmV0IiwibXltZWRpYXBjLm5ldCIsIm15cHN4Lm5ldCIsIm15c2VjdXJpdHljYW1lcmEuY29tIiwibXlzZWN1cml0eWNhbWVyYS5uZXQiLCJteXNlY3VyaXR5Y2FtZXJhLm9yZyIsIm5ldC1mcmVha3MuY29tIiwi''@;'; + put 'put ''bmZsZmFuLm9yZyIsIm5obGZhbi5uZXQiLCJuby1pcC5jYSIsIm5vLWlwLmNvLnVrIiwibm8taXAubmV0Iiwibm9pcC51cyIsIm9udGhld2lmaS5jb20iLCJwZ2FmYW4ubmV0IiwicG9pbnQydGhpcy5jb20iLCJwb2ludHRvLnVzIiwicHJpdmF0aXplaGVhbHRoaW5zdXJhbmNlLm5ldCIsInF1''@;'; + put 'put ''aWNrc3l0ZXMuY29tIiwicmVhZC1ib29rcy5vcmciLCJzZWN1cml0eXRhY3RpY3MuY29tIiwic2VydmVleGNoYW5nZS5jb20iLCJzZXJ2ZWh1bW91ci5jb20iLCJzZXJ2ZXAycC5jb20iLCJzZXJ2ZXNhcmNhc20uY29tIiwic3R1ZmZ0b3JlYWQuY29tIiwidWZjZmFuLm9yZyIsInVudXN1YWxw''@;'; + put 'put ''ZXJzb24uY29tIiwid29ya2lzYm9yaW5nLmNvbSIsIjN1dGlsaXRpZXMuY29tIiwiYm91bmNlbWUubmV0IiwiZGRucy5uZXQiLCJkZG5za2luZy5jb20iLCJnb3RkbnMuY2giLCJob3B0by5vcmciLCJteWZ0cC5iaXoiLCJteWZ0cC5vcmciLCJteXZuYy5jb20iLCJuby1pcC5iaXoiLCJuby1p''@;'; + put 'put ''cC5pbmZvIiwibm8taXAub3JnIiwibm9pcC5tZSIsInJlZGlyZWN0bWUubmV0Iiwic2VydmViZWVyLmNvbSIsInNlcnZlYmxvZy5uZXQiLCJzZXJ2ZWNvdW50ZXJzdHJpa2UuY29tIiwic2VydmVmdHAuY29tIiwic2VydmVnYW1lLmNvbSIsInNlcnZlaGFsZmxpZmUuY29tIiwic2VydmVodHRw''@;'; + put 'put ''LmNvbSIsInNlcnZlaXJjLmNvbSIsInNlcnZlbWluZWNyYWZ0Lm5ldCIsInNlcnZlbXAzLmNvbSIsInNlcnZlcGljcy5jb20iLCJzZXJ2ZXF1YWtlLmNvbSIsInN5dGVzLm5ldCIsIndlYmhvcC5tZSIsInphcHRvLm9yZyIsInN0YWdlLm5vZGVhcnQuaW8iLCJub2R1bS5jbyIsIm5vZHVtLmlv''@;'; + put 'put ''IiwicGNsb3VkLmhvc3QiLCJueWMubW4iLCJub20uYWUiLCJub20uYWYiLCJub20uYWkiLCJub20uYWwiLCJueW0uYnkiLCJub20uYnoiLCJueW0uYnoiLCJub20uY2wiLCJueW0uZWMiLCJub20uZ2QiLCJub20uZ2UiLCJub20uZ2wiLCJueW0uZ3IiLCJub20uZ3QiLCJueW0uZ3kiLCJueW0u''@;'; + put 'put ''aGsiLCJub20uaG4iLCJueW0uaWUiLCJub20uaW0iLCJub20ua2UiLCJueW0ua3oiLCJueW0ubGEiLCJueW0ubGMiLCJub20ubGkiLCJueW0ubGkiLCJueW0ubHQiLCJueW0ubHUiLCJub20ubHYiLCJueW0ubWUiLCJub20ubWsiLCJueW0ubW4iLCJueW0ubXgiLCJub20ubnUiLCJueW0ubnoi''@;'; + put 'put ''LCJueW0ucGUiLCJueW0ucHQiLCJub20ucHciLCJub20ucWEiLCJueW0ucm8iLCJub20ucnMiLCJub20uc2kiLCJueW0uc2siLCJub20uc3QiLCJueW0uc3UiLCJueW0uc3giLCJub20udGoiLCJueW0udHciLCJub20udWciLCJub20udXkiLCJub20udmMiLCJub20udmciLCJzdGF0aWMub2Jz''@;'; + put 'put ''ZXJ2YWJsZXVzZXJjb250ZW50LmNvbSIsImN5YS5nZyIsImNsb3VkeWNsdXN0ZXIubmV0IiwibmlkLmlvIiwib3BlbmNyYWZ0Lmhvc3RpbmciLCJvcGVyYXVuaXRlLmNvbSIsInNreWdlYXJhcHAuY29tIiwib3V0c3lzdGVtc2Nsb3VkLmNvbSIsIm93bnByb3ZpZGVyLmNvbSIsIm93bi5wbSIs''@;'; + put 'put ''Im94LnJzIiwib3kubGMiLCJwZ2ZvZy5jb20iLCJwYWdlZnJvbnRhcHAuY29tIiwiYXJ0LnBsIiwiZ2xpd2ljZS5wbCIsImtyYWtvdy5wbCIsInBvem5hbi5wbCIsIndyb2MucGwiLCJ6YWtvcGFuZS5wbCIsInBhbnRoZW9uc2l0ZS5pbyIsImdvdHBhbnRoZW9uLmNvbSIsIm15cGVwLmxpbmsi''@;'; + put 'put ''LCJwZXJzcGVjdGEuY2xvdWQiLCJvbi13ZWIuZnIiLCIqLnBsYXRmb3JtLnNoIiwiKi5wbGF0Zm9ybXNoLnNpdGUiLCJkeW41My5pbyIsImNvLmJuIiwieGVuLnByZ21yLmNvbSIsInByaXYuYXQiLCJwcnZjeS5wYWdlIiwiKi5kd2ViLmxpbmsiLCJwcm90b25ldC5pbyIsImNoaXJ1cmdpZW5z''@;'; + put 'put ''LWRlbnRpc3Rlcy1lbi1mcmFuY2UuZnIiLCJieWVuLnNpdGUiLCJwdWJ0bHMub3JnIiwicXVhbGlmaW9hcHAuY29tIiwicWJ1c2VyLmNvbSIsImluc3RhbnRjbG91ZC5jbiIsInJhcy5ydSIsInFhMi5jb20iLCJxY3guaW8iLCIqLnN5cy5xY3guaW8iLCJkZXYtbXlxbmFwY2xvdWQuY29tIiwi''@;'; + put 'put ''YWxwaGEtbXlxbmFwY2xvdWQuY29tIiwibXlxbmFwY2xvdWQuY29tIiwiKi5xdWlwZWxlbWVudHMuY29tIiwidmFwb3IuY2xvdWQiLCJ2YXBvcmNsb3VkLmlvIiwicmFja21hemUuY29tIiwicmFja21hemUubmV0IiwiKi5vbi1rM3MuaW8iLCIqLm9uLXJhbmNoZXIuY2xvdWQiLCIqLm9uLXJp''@;'; + put 'put ''by5pbyIsInJlYWR0aGVkb2NzLmlvIiwicmhjbG91ZC5jb20iLCJhcHAucmVuZGVyLmNvbSIsIm9ucmVuZGVyLmNvbSIsInJlcGwuY28iLCJyZXBsLnJ1biIsInJlc2luZGV2aWNlLmlvIiwiZGV2aWNlcy5yZXNpbnN0YWdpbmcuaW8iLCJoemMuaW8iLCJ3ZWxsYmVpbmd6b25lLmV1IiwicHRw''@;'; + put 'put ''bHVzLmZpdCIsIndlbGxiZWluZ3pvbmUuY28udWsiLCJnaXQtcGFnZXMucml0LmVkdSIsInNhbmRjYXRzLmlvIiwibG9nb2lwLmRlIiwibG9nb2lwLmNvbSIsInNjaG9rb2tla3MubmV0IiwiZ292LnNjb3QiLCJzY3J5c2VjLmNvbSIsImZpcmV3YWxsLWdhdGV3YXkuY29tIiwiZmlyZXdhbGwt''@;'; + put 'put ''Z2F0ZXdheS5kZSIsIm15LWdhdGV3YXkuZGUiLCJteS1yb3V0ZXIuZGUiLCJzcGRucy5kZSIsInNwZG5zLmV1IiwiZmlyZXdhbGwtZ2F0ZXdheS5uZXQiLCJteS1maXJld2FsbC5vcmciLCJteWZpcmV3YWxsLm9yZyIsInNwZG5zLm9yZyIsInNlbnNlZXJpbmcubmV0IiwiYml6LnVhIiwiY28u''@;'; + put 'put ''dWEiLCJwcC51YSIsInNoaWZ0ZWRpdC5pbyIsIm15c2hvcGJsb2Nrcy5jb20iLCJzaG9waXRzaXRlLmNvbSIsIm1vLXNpZW1lbnMuaW8iLCIxa2FwcC5jb20iLCJhcHBjaGl6aS5jb20iLCJhcHBsaW56aS5jb20iLCJzaW5hYXBwLmNvbSIsInZpcHNpbmFhcHAuY29tIiwic2l0ZWxlYWYubmV0''@;'; + put 'put ''IiwiYm91bnR5LWZ1bGwuY29tIiwiYWxwaGEuYm91bnR5LWZ1bGwuY29tIiwiYmV0YS5ib3VudHktZnVsbC5jb20iLCJzdGFja2hlcm8tbmV0d29yay5jb20iLCJzdGF0aWMubGFuZCIsImRldi5zdGF0aWMubGFuZCIsInNpdGVzLnN0YXRpYy5sYW5kIiwiYXBwcy5sYWlyLmlvIiwiKi5zdG9s''@;'; + put 'put ''b3MuaW8iLCJzcGFjZWtpdC5pbyIsImN1c3RvbWVyLnNwZWVkcGFydG5lci5kZSIsImFwaS5zdGRsaWIuY29tIiwic3RvcmouZmFybSIsInV0d2VudGUuaW8iLCJzb2Muc3JjZi5uZXQiLCJ1c2VyLnNyY2YubmV0IiwidGVtcC1kbnMuY29tIiwiYXBwbGljYXRpb25jbG91ZC5pbyIsInNjYXBw''@;'; + put 'put ''LmlvIiwiKi5zNXkuaW8iLCIqLnNlbnNpb3NpdGUuY2xvdWQiLCJzeW5jbG91ZC5pdCIsImRpc2tzdGF0aW9uLm1lIiwiZHNjbG91ZC5iaXoiLCJkc2Nsb3VkLm1lIiwiZHNjbG91ZC5tb2JpIiwiZHNteW5hcy5jb20iLCJkc215bmFzLm5ldCIsImRzbXluYXMub3JnIiwiZmFtaWx5ZHMuY29t''@;'; + put 'put ''IiwiZmFtaWx5ZHMubmV0IiwiZmFtaWx5ZHMub3JnIiwiaTIzNC5tZSIsIm15ZHMubWUiLCJzeW5vbG9neS5tZSIsInZwbnBsdXMudG8iLCJkaXJlY3QucXVpY2tjb25uZWN0LnRvIiwidGFpZnVuLWRucy5kZSIsImdkYS5wbCIsImdkYW5zay5wbCIsImdkeW5pYS5wbCIsIm1lZC5wbCIsInNv''@;'; + put 'put ''cG90LnBsIiwiZWR1Z2l0Lm9yZyIsInRlbGViaXQuYXBwIiwidGVsZWJpdC5pbyIsIioudGVsZWJpdC54eXoiLCJnd2lkZGxlLmNvLnVrIiwidGhpbmdkdXN0ZGF0YS5jb20iLCJjdXN0LmRldi50aGluZ2R1c3QuaW8iLCJjdXN0LmRpc3JlYy50aGluZ2R1c3QuaW8iLCJjdXN0LnByb2QudGhp''@;'; + put 'put ''bmdkdXN0LmlvIiwiY3VzdC50ZXN0aW5nLnRoaW5nZHVzdC5pbyIsImFydm8ubmV0d29yayIsImF6aW11dGgubmV0d29yayIsImJsb3hjbXMuY29tIiwidG93bm5ld3Mtc3RhZ2luZy5jb20iLCIxMmhwLmF0IiwiMml4LmF0IiwiNGxpbWEuYXQiLCJsaW1hLWNpdHkuYXQiLCIxMmhwLmNoIiwi''@;'; + put 'put ''Mml4LmNoIiwiNGxpbWEuY2giLCJsaW1hLWNpdHkuY2giLCJ0cmFmZmljcGxleC5jbG91ZCIsImRlLmNvb2wiLCIxMmhwLmRlIiwiMml4LmRlIiwiNGxpbWEuZGUiLCJsaW1hLWNpdHkuZGUiLCIxMzM3LnBpY3R1cmVzIiwiY2xhbi5yaXAiLCJsaW1hLWNpdHkucm9ja3MiLCJ3ZWJzcGFjZS5y''@;'; + put 'put ''b2NrcyIsImxpbWEuem9uZSIsIioudHJhbnN1cmwuYmUiLCIqLnRyYW5zdXJsLmV1IiwiKi50cmFuc3VybC5ubCIsInR1eGZhbWlseS5vcmciLCJkZC1kbnMuZGUiLCJkaXNrc3RhdGlvbi5ldSIsImRpc2tzdGF0aW9uLm9yZyIsImRyYXktZG5zLmRlIiwiZHJheWRucy5kZSIsImR5bi12cG4u''@;'; + put 'put ''ZGUiLCJkeW52cG4uZGUiLCJtZWluLXZpZ29yLmRlIiwibXktdmlnb3IuZGUiLCJteS13YW4uZGUiLCJzeW5vLWRzLmRlIiwic3lub2xvZ3ktZGlza3N0YXRpb24uZGUiLCJzeW5vbG9neS1kcy5kZSIsInViZXIuc3BhY2UiLCIqLnViZXJzcGFjZS5kZSIsImhrLmNvbSIsImhrLm9yZyIsImx0''@;'; + put 'put ''ZC5oayIsImluYy5oayIsInZpcnR1YWx1c2VyLmRlIiwidmlydHVhbC11c2VyLmRlIiwidXJvd24uY2xvdWQiLCJkbnN1cGRhdGUuaW5mbyIsImxpYi5kZS51cyIsIjIwMzguaW8iLCJyb3V0ZXIubWFuYWdlbWVudCIsInYtaW5mby5pbmZvIiwidm9vcmxvcGVyLmNsb3VkIiwidi51YSIsIndh''@;'; + put 'put ''ZmZsZWNlbGwuY29tIiwiKi53ZWJoYXJlLmRldiIsIndlZGVwbG95LmlvIiwid2VkZXBsb3kubWUiLCJ3ZWRlcGxveS5zaCIsInJlbW90ZXdkLmNvbSIsIndtZmxhYnMub3JnIiwibXlmb3J1bS5jb21tdW5pdHkiLCJjb21tdW5pdHktcHJvLmRlIiwiZGlza3Vzc2lvbnNiZXJlaWNoLmRlIiwi''@;'; + put 'put ''Y29tbXVuaXR5LXByby5uZXQiLCJtZWluZm9ydW0ubmV0IiwiaGFsZi5ob3N0IiwieG5iYXkuY29tIiwidTIueG5iYXkuY29tIiwidTItbG9jYWwueG5iYXkuY29tIiwiY2lzdHJvbi5ubCIsImRlbW9uLm5sIiwieHM0YWxsLnNwYWNlIiwieWFuZGV4Y2xvdWQubmV0Iiwic3RvcmFnZS55YW5k''@;'; + put 'put ''ZXhjbG91ZC5uZXQiLCJ3ZWJzaXRlLnlhbmRleGNsb3VkLm5ldCIsIm9mZmljaWFsLmFjYWRlbXkiLCJ5b2xhc2l0ZS5jb20iLCJ5Ym8uZmFpdGgiLCJ5b21iby5tZSIsImhvbWVsaW5rLm9uZSIsInliby5wYXJ0eSIsInliby5yZXZpZXciLCJ5Ym8uc2NpZW5jZSIsInliby50cmFkZSIsIm5v''@;'; + put 'put ''aG9zdC5tZSIsIm5vaG8uc3QiLCJ6YS5uZXQiLCJ6YS5vcmciLCJub3cuc2giLCJic3MuZGVzaWduIiwiYmFzaWNzZXJ2ZXIuaW8iLCJ2aXJ0dWFsc2VydmVyLmlvIiwiZW50ZXJwcmlzZWNsb3VkLm51Il0nKX19LEU9e307ZnVuY3Rpb24gTWUoVSl7dmFyIFE9RVtVXTtpZih2b2lkIDAhPT1R''@;'; + put 'put ''KXJldHVybiBRLmV4cG9ydHM7dmFyIFo9RVtVXT17aWQ6VSxsb2FkZWQ6ITEsZXhwb3J0czp7fX07cmV0dXJuIEJbVV0uY2FsbChaLmV4cG9ydHMsWixaLmV4cG9ydHMsTWUpLFoubG9hZGVkPSEwLFouZXhwb3J0c31yZXR1cm4gTWUuZD0oVSxRKT0+e2Zvcih2YXIgWiBpbiBRKU1lLm8oUSxa''@;'; + put 'put ''KSYmIU1lLm8oVSxaKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KFUsWix7ZW51bWVyYWJsZTohMCxnZXQ6UVtaXX0pfSxNZS5nPWZ1bmN0aW9uKCl7aWYoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzKXJldHVybiBnbG9iYWxUaGlzO3RyeXtyZXR1cm4gdGhpc3x8bmV3IEZ1bmN0aW9uKCJy''@;'; + put 'put ''ZXR1cm4gdGhpcyIpKCl9Y2F0Y2goVSl7aWYoIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvd319KCksTWUubz0oVSxRKT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsUSksTWUucj1VPT57InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJv''@;'; + put 'put ''bC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KFUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShVLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sTWUubm1kPVU9PihVLnBhdGhzPVtdLFUuY2hpbGRyZW58fChVLmNo''@;'; + put 'put ''aWxkcmVuPVtdKSxVKSxNZSgzNjA3KX0pKCl9LDI5NzQ4OmZ1bmN0aW9uKFhlLEplLEwpeyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKFope3JldHVybiBaJiZaLl9fZXNNb2R1bGU/Wjp7ZGVmYXVsdDpafX07T2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KEplLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKZS5pc1NwZWNpYWxNaXNzaW5nPUplLmNob2ljZVZhbGlkYXRvcj1KZS5jb25maXJtYXRpb25WYWxpZGF0b3I9SmUudXJsVmFsaWRhdG9yPXZvaWQgMDt2YXIgQj1tZShMKDczMzkzKSk7SmUudXJsVmFsaWRhdG9yPWZ1bmN0aW9u''@;'; + put 'put ''KFosaWUpe3JldHVybiEhQi5kZWZhdWx0LmlzSHR0cFVyaShaKXx8ISFCLmRlZmF1bHQuaXNIdHRwc1VyaShaKXx8IiI9PT1afHxpZX0sSmUuY29uZmlybWF0aW9uVmFsaWRhdG9yPWZ1bmN0aW9uKFope3JldHVybiEwPT09Wnx8ITE9PT1afSxKZS5jaG9pY2VWYWxpZGF0b3I9ZnVuY3Rpb24o''@;'; + put 'put ''WixpZSxsZSl7cmV0dXJuIFo+MCYmWjw9aWV8fGxlfSxKZS5pc1NwZWNpYWxNaXNzaW5nPWZ1bmN0aW9uKFope3JldHVybigic3RyaW5nIiE9dHlwZW9mIFp8fCFaLmluY2x1ZGVzKCIuLiIpKSYmbmV3IFJlZ0V4cCgiXihcXC4pP1thLXpfLl17MX0kIiwiaSIpLnRlc3QoWil9fSwyNTg1OToo''@;'; + put 'put ''WGUsSmUpPT57InVzZSBzdHJpY3QiO3ZhciBCO0plLkQ9dm9pZCAwLChCPUplLkR8fChKZS5EPXt9KSkuU2FzVml5YT0iU0FTVklZQSIsQi5TYXM5PSJTQVM5IixCLlNhc2pzPSJTQVNKUyJ9LDM2NjI1OihYZSxKZSk9PnsidXNlIHN0cmljdCI7SmUuUj12b2lkIDAsSmUuUj1mdW5jdGlvbihC''@;'; + put 'put ''LEUsTWUpe2lmKHZvaWQgMD09PUUmJihFPTEpLHZvaWQgMD09PU1lJiYoTWU9MTA5OTUxMTYyNzc3NiksMD09PUIpcmV0dXJuIjAgQiI7Qj1CPk1lP01lOkI7dmFyIFo9RTwwPzA6RSxpZT1NYXRoLmZsb29yKE1hdGgubG9nKEIpL01hdGgubG9nKDEwMjQpKTtyZXR1cm4oQi9NYXRoLnBvdygx''@;'; + put 'put ''MDI0LGllKSkudG9GaXhlZChaKSsiICIrWyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiXVtpZV19fSw1MzM5OTpmdW5jdGlvbihYZSl7dmFyIEplPXt2ZXJzaW9uOiIxLjE1LjAifTtKZVs0MzddPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0''@;'; + put 'put ''XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFy''@;'; + put 'put ''c3R1dnd4eXp7fH1+XHg3Zlx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVceGVjXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx4ZmZceGQ2XHhkY1x4YTJceGEzXHhhNVx1MjBhN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFc''@;'; + put 'put ''eGYxXHhkMVx4YWFceGJhXHhiZlx1MjMxMFx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1''@;'; + put 'put ''MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5''@;'; + put 'put ''MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1''@;'; + put 'put ''MjA3Zlx4YjJcdTI1YTBceGEwIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVs2MjBdPWZ1bmN0aW9uKCl7Zm9yKHZhciBM''@;'; + put 'put ''PSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5P''@;'; + put 'put ''UFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx1MDEwNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx1MDEwN1x4YzRcdTAxMDRcdTAxMThcdTAxMTlcdTAxNDJceGY0XHhmNlx1MDEwNlx4ZmJceGY5XHUw''@;'; + put 'put ''MTVhXHhkNlx4ZGNceGEyXHUwMTQxXHhhNVx1MDE1Ylx1MDE5Mlx1MDE3OVx1MDE3Ylx4ZjNceGQzXHUwMTQ0XHUwMTQzXHUwMTdhXHUwMTdjXHhiZlx1MjMxMFx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1''@;'; + put 'put ''MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1''@;'; + put 'put ''OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5''@;'; + put 'put ''XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtF''@;'; + put 'put ''XT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVs3MzddPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgx''@;'; + put 'put ''Ylx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5''@;'; + put 'put ''OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1''@;'; + put 'put ''MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNjMlx1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1''@;'; + put 'put ''Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1''@;'; + put 'put ''MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNjOVx1MDNhY1x1MDNhZFx1MDNhZVx1MDNjYVx1MDNhZlx1MDNjY1x1MDNjZFx1MDNjYlx1MDNjZVx1MDM4Nlx1MDM4OFx1MDM4OVx1MDM4YVx1MDM4Y1x1MDM4ZVx1MDM4Zlx4YjFcdTIyNjVcdTIyNjRcdTAzYWFcdTAzYWJc''@;'; + put 'put ''eGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19''@;'; + put 'put ''KCksSmVbODUwXT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8w''@;'; + put 'put ''MTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHhlY1x4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4''@;'; + put 'put ''ZjZceGYyXHhmYlx4ZjlceGZmXHhkNlx4ZGNceGY4XHhhM1x4ZDhceGQ3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHhhZVx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx4YzFceGMyXHhjMFx4YTlcdTI1NjNc''@;'; + put 'put ''dTI1NTFcdTI1NTdcdTI1NWRceGEyXHhhNVx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x4ZTNceGMzXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx4ZjBceGQwXHhjYVx4Y2JceGM4XHUwMTMxXHhjZFx4Y2VceGNmXHUyNTE4''@;'; + put 'put ''XHUyNTBjXHUyNTg4XHUyNTg0XHhhNlx4Y2NcdTI1ODBceGQzXHhkZlx4ZDRceGQyXHhmNVx4ZDVceGI1XHhmZVx4ZGVceGRhXHhkYlx4ZDlceGZkXHhkZFx4YWZceGI0XHhhZFx4YjFcdTIwMTdceGJlXHhiNlx4YTdceGY3XHhiOFx4YjBceGE4XHhiN1x4YjlceGIzXHhiMlx1MjVhMFx4YTAi''@;'; + put 'put ''LG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzg1Ml09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgw''@;'; + put 'put ''NFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2Bh''@;'; + put 'put ''YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjN1x4ZmNceGU5XHhlMlx4ZTRcdTAxNmZcdTAxMDdceGU3XHUwMTQyXHhlYlx1MDE1MFx1MDE1MVx4ZWVcdTAxNzlceGM0XHUwMTA2XHhjOVx1MDEzOVx1MDEzYVx4ZjRceGY2XHUwMTNkXHUwMTNlXHUwMTVhXHUwMTViXHhkNlx4''@;'; + put 'put ''ZGNcdTAxNjRcdTAxNjVcdTAxNDFceGQ3XHUwMTBkXHhlMVx4ZWRceGYzXHhmYVx1MDEwNFx1MDEwNVx1MDE3ZFx1MDE3ZVx1MDExOFx1MDExOVx4YWNcdTAxN2FcdTAxMGNcdTAxNWZceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx4YzFceGMyXHUwMTFhXHUwMTVlXHUy''@;'; + put 'put ''NTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUwMTdiXHUwMTdjXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUwMTAyXHUwMTAzXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx1MDExMVx1MDExMFx1MDEwZVx4Y2JcdTAxMGZcdTAx''@;'; + put 'put ''NDdceGNkXHhjZVx1MDExYlx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MDE2Mlx1MDE2ZVx1MjU4MFx4ZDNceGRmXHhkNFx1MDE0M1x1MDE0NFx1MDE0OFx1MDE2MFx1MDE2MVx1MDE1NFx4ZGFcdTAxNTVcdTAxNzBceGZkXHhkZFx1MDE2M1x4YjRceGFkXHUwMmRkXHUwMmRiXHUwMmM3XHUw''@;'; + put 'put ''MmQ4XHhhN1x4ZjdceGI4XHhiMFx4YThcdTAyZDlcdTAxNzFcdTAxNThcdTAxNTlcdTI1YTBceGEwIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIs''@;'; + put 'put ''ZGVjOm1lfX0oKSxKZVs4NTddPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJico''@;'; + put 'put ''KSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVcdTAxMzFceGM0XHhjNVx4YzlceGU2''@;'; + put 'put ''XHhjNlx4ZjRceGY2XHhmMlx4ZmJceGY5XHUwMTMwXHhkNlx4ZGNceGY4XHhhM1x4ZDhcdTAxNWVcdTAxNWZceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFcdTAxMWVcdTAxMWZceGJmXHhhZVx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx4YzFc''@;'; + put 'put ''eGMyXHhjMFx4YTlcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRceGEyXHhhNVx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x4ZTNceGMzXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx4YmFceGFhXHhjYVx4Y2JceGM4XHVmZmZk''@;'; + put 'put ''XHhjZFx4Y2VceGNmXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHhhNlx4Y2NcdTI1ODBceGQzXHhkZlx4ZDRceGQyXHhmNVx4ZDVceGI1XHVmZmZkXHhkN1x4ZGFceGRiXHhkOVx4ZWNceGZmXHhhZlx4YjRceGFkXHhiMVx1ZmZmZFx4YmVceGI2XHhhN1x4ZjdceGI4XHhiMFx4YThceGI3XHhi''@;'; + put 'put ''OVx4YjNceGIyXHUyNWEwXHhhMCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbODYxXT1mdW5jdGlvbigpe2Zvcih2YXIg''@;'; + put 'put ''TD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1O''@;'; + put 'put ''T1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZDBceGYwXHhkZVx4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGZlXHhmYlx4ZGRceGZkXHhkNlx4ZGNceGY4''@;'; + put 'put ''XHhhM1x4ZDhcdTIwYTdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhjMVx4Y2RceGQzXHhkYVx4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRc''@;'; + put 'put ''dTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1''@;'; + put 'put ''NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBc''@;'; + put 'put ''dTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRl''@;'; + put 'put ''YzptZX19KCksSmVbODY1XT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkq''@;'; + put 'put ''KywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHhlY1x4YzRceGM1XHhjOVx4ZTZceGM2''@;'; + put 'put ''XHhmNFx4ZjZceGYyXHhmYlx4ZjlceGZmXHhkNlx4ZGNceGY4XHhhM1x4ZDhcdTIwYTdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4YTRcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJc''@;'; + put 'put ''dTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1''@;'; + put 'put ''NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNi''@;'; + put 'put ''NVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09''@;'; + put 'put ''RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbODY2XT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5''@;'; + put 'put ''XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0''@;'; + put 'put ''MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFc''@;'; + put 'put ''dTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1''@;'; + put 'put ''NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFc''@;'; + put 'put ''dTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdTA0MDFcdTA0NTFcdTA0MDRcdTA0NTRcdTA0''@;'; + put 'put ''MDdcdTA0NTdcdTA0MGVcdTA0NWVceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjExNlx4YTRcdTI1YTBceGEwIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5j''@;'; + put 'put ''OkIsZGVjOm1lfX0oKSxKZVs4NzRdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQl''@;'; + put 'put ''JicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAyNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTBcdTBlMDFcdTBlMDJcdTBlMDNcdTBlMDRcdTBlMDVcdTBlMDZcdTBl''@;'; + put 'put ''MDdcdTBlMDhcdTBlMDlcdTBlMGFcdTBlMGJcdTBlMGNcdTBlMGRcdTBlMGVcdTBlMGZcdTBlMTBcdTBlMTFcdTBlMTJcdTBlMTNcdTBlMTRcdTBlMTVcdTBlMTZcdTBlMTdcdTBlMThcdTBlMTlcdTBlMWFcdTBlMWJcdTBlMWNcdTBlMWRcdTBlMWVcdTBlMWZcdTBlMjBcdTBlMjFcdTBlMjJc''@;'; + put 'put ''dTBlMjNcdTBlMjRcdTBlMjVcdTBlMjZcdTBlMjdcdTBlMjhcdTBlMjlcdTBlMmFcdTBlMmJcdTBlMmNcdTBlMmRcdTBlMmVcdTBlMmZcdTBlMzBcdTBlMzFcdTBlMzJcdTBlMzNcdTBlMzRcdTBlMzVcdTBlMzZcdTBlMzdcdTBlMzhcdTBlMzlcdTBlM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdTBlM2ZcdTBlNDBcdTBlNDFcdTBlNDJcdTBlNDNcdTBlNDRcdTBlNDVcdTBlNDZcdTBlNDdcdTBlNDhcdTBlNDlcdTBlNGFcdTBlNGJcdTBlNGNcdTBlNGRcdTBlNGVcdTBlNGZcdTBlNTBcdTBlNTFcdTBlNTJcdTBlNTNcdTBlNTRcdTBlNTVcdTBlNTZcdTBlNTdcdTBlNThcdTBlNTlc''@;'; + put 'put ''dTBlNWFcdTBlNWJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzg5NV09ZnVu''@;'; + put 'put ''Y3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+''@;'; + put 'put ''P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUwMTBjXHhmY1x4ZTlcdTAxMGZceGU0XHUwMTBlXHUwMTY0XHUwMTBkXHUwMTFiXHUwMTFhXHUwMTM5XHhjZFx1MDEzZVx1MDFlYVx4YzRceGMxXHhjOVx1MDE3ZVx1''@;'; + put 'put ''MDE3ZFx4ZjRceGY2XHhkM1x1MDE2Zlx4ZGFceGZkXHhkNlx4ZGNcdTAxNjBcdTAxM2RceGRkXHUwMTU4XHUwMTY1XHhlMVx4ZWRceGYzXHhmYVx1MDE0OFx1MDE0N1x1MDE2ZVx4ZDRcdTAxNjFcdTAxNTlcdTAxNTVcdTAxNTRceGJjXHhhN1x4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUy''@;'; + put 'put ''NTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZj''@;'; + put 'put ''XHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlc''@;'; + put 'put ''dTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVB''@;'; + put 'put ''dChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzkzMl09ZnVuY3Rpb24oKXt2YXIgRSxMPVtdLG1lPXt9LEI9W107Zm9yKEJbMF09IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVc''@;'; + put 'put ''eDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5c''@;'; + put 'put ''eDdmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZjYxXHVmZjYyXHVmZjYzXHVmZjY0XHVmZjY1XHVmZjY2XHVmZjY3XHVmZjY4XHVmZjY5XHVmZjZhXHVmZjZiXHVmZjZjXHVmZjZkXHVmZjZlXHVmZjZmXHVmZjcwXHVmZjcxXHVmZjcyXHVmZjczXHVmZjc0XHVmZjc1XHVm''@;'; + put 'put ''Zjc2XHVmZjc3XHVmZjc4XHVmZjc5XHVmZjdhXHVmZjdiXHVmZjdjXHVmZjdkXHVmZjdlXHVmZjdmXHVmZjgwXHVmZjgxXHVmZjgyXHVmZjgzXHVmZjg0XHVmZjg1XHVmZjg2XHVmZjg3XHVmZjg4XHVmZjg5XHVmZjhhXHVmZjhiXHVmZjhjXHVmZjhkXHVmZjhlXHVmZjhmXHVmZjkwXHVmZjkx''@;'; + put 'put ''XHVmZjkyXHVmZjkzXHVmZjk0XHVmZjk1XHVmZjk2XHVmZjk3XHVmZjk4XHVmZjk5XHVmZjlhXHVmZjliXHVmZjljXHVmZjlkXHVmZjllXHVmZjlmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMF1bRV0uY2hh''@;'; + put 'put ''ckNvZGVBdCgwKSYmKG1lW0JbMF1bRV1dPTArRSxMWzArRV09QlswXVtFXSk7Zm9yKEJbMTI5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDAwXHUzMDAxXHUzMDAyXHVmZjBjXHVmZjBlXHUzMGZiXHVmZjFhXHVmZjFiXHVmZjFm''@;'; + put 'put ''XHVmZjAxXHUzMDliXHUzMDljXHhiNFx1ZmY0MFx4YThcdWZmM2VcdWZmZTNcdWZmM2ZcdTMwZmRcdTMwZmVcdTMwOWRcdTMwOWVcdTMwMDNcdTRlZGRcdTMwMDVcdTMwMDZcdTMwMDdcdTMwZmNcdTIwMTVcdTIwMTBcdWZmMGZcdWZmM2NcdWZmNWVcdTIyMjVcdWZmNWNcdTIwMjZcdTIwMjVc''@;'; + put 'put ''dTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdWZmMDhcdWZmMDlcdTMwMTRcdTMwMTVcdWZmM2JcdWZmM2RcdWZmNWJcdWZmNWRcdTMwMDhcdTMwMDlcdTMwMGFcdTMwMGJcdTMwMGNcdTMwMGRcdTMwMGVcdTMwMGZcdTMwMTBcdTMwMTFcdWZmMGJcdWZmMGRceGIxXHhkN1x1ZmZmZFx4ZjdcdWZm''@;'; + put 'put ''MWRcdTIyNjBcdWZmMWNcdWZmMWVcdTIyNjZcdTIyNjdcdTIyMWVcdTIyMzRcdTI2NDJcdTI2NDBceGIwXHUyMDMyXHUyMDMzXHUyMTAzXHVmZmU1XHVmZjA0XHVmZmUwXHVmZmUxXHVmZjA1XHVmZjAzXHVmZjA2XHVmZjBhXHVmZjIwXHhhN1x1MjYwNlx1MjYwNVx1MjVjYlx1MjVjZlx1MjVj''@;'; + put 'put ''ZVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViM1x1MjViMlx1MjViZFx1MjViY1x1MjAzYlx1MzAxMlx1MjE5Mlx1MjE5MFx1MjE5MVx1MjE5M1x1MzAxM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjIwOFx1''@;'; + put 'put ''MjIwYlx1MjI4Nlx1MjI4N1x1MjI4Mlx1MjI4M1x1MjIyYVx1MjIyOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjIyN1x1MjIyOFx1ZmZlMlx1MjFkMlx1MjFkNFx1MjIwMFx1MjIwM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjIyMFx1MjJhNVx1MjMxMlx1MjIwMlx1MjIwN1x1MjI2MVx1MjI1Mlx1MjI2YVx1MjI2Ylx1MjIxYVx1MjIzZFx1MjIxZFx1MjIzNVx1MjIyYlx1MjIyY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''MjEyYlx1MjAzMFx1MjY2Zlx1MjY2ZFx1MjY2YVx1MjAyMFx1MjAyMVx4YjZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI1ZWZcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMjldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEyOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1l''@;'; + put 'put ''W0JbMTI5XVtFXV09MzMwMjQrRSxMWzMzMDI0K0VdPUJbMTI5XVtFXSk7Zm9yKEJbMTMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZjEwXHVmZjExXHVmZjEyXHVmZjEzXHVmZjE0XHVmZjE1XHVmZjE2XHVmZjE3XHVmZjE4XHVmZjE5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZjIxXHVmZjIyXHVmZjIzXHVmZjI0XHVmZjI1''@;'; + put 'put ''XHVmZjI2XHVmZjI3XHVmZjI4XHVmZjI5XHVmZjJhXHVmZjJiXHVmZjJjXHVmZjJkXHVmZjJlXHVmZjJmXHVmZjMwXHVmZjMxXHVmZjMyXHVmZjMzXHVmZjM0XHVmZjM1XHVmZjM2XHVmZjM3XHVmZjM4XHVmZjM5XHVmZjNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZjQxXHVmZjQyXHVmZjQzXHVmZjQ0XHVmZjQ1XHVmZjQ2XHVmZjQ3XHVmZjQ4XHVmZjQ5XHVmZjRhXHVmZjRiXHVmZjRjXHVmZjRkXHVmZjRlXHVmZjRmXHVmZjUwXHVmZjUxXHVmZjUyXHVmZjUzXHVmZjU0XHVmZjU1XHVmZjU2XHVmZjU3XHVmZjU4XHVmZjU5XHVmZjVhXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHUzMDQxXHUzMDQyXHUzMDQzXHUzMDQ0XHUzMDQ1XHUzMDQ2XHUzMDQ3XHUzMDQ4XHUzMDQ5XHUzMDRhXHUzMDRiXHUzMDRjXHUzMDRkXHUzMDRlXHUzMDRmXHUzMDUwXHUzMDUxXHUzMDUyXHUzMDUzXHUzMDU0XHUzMDU1XHUzMDU2XHUzMDU3XHUzMDU4XHUz''@;'; + put 'put ''MDU5XHUzMDVhXHUzMDViXHUzMDVjXHUzMDVkXHUzMDVlXHUzMDVmXHUzMDYwXHUzMDYxXHUzMDYyXHUzMDYzXHUzMDY0XHUzMDY1XHUzMDY2XHUzMDY3XHUzMDY4XHUzMDY5XHUzMDZhXHUzMDZiXHUzMDZjXHUzMDZkXHUzMDZlXHUzMDZmXHUzMDcwXHUzMDcxXHUzMDcyXHUzMDczXHUzMDc0''@;'; + put 'put ''XHUzMDc1XHUzMDc2XHUzMDc3XHUzMDc4XHUzMDc5XHUzMDdhXHUzMDdiXHUzMDdjXHUzMDdkXHUzMDdlXHUzMDdmXHUzMDgwXHUzMDgxXHUzMDgyXHUzMDgzXHUzMDg0XHUzMDg1XHUzMDg2XHUzMDg3XHUzMDg4XHUzMDg5XHUzMDhhXHUzMDhiXHUzMDhjXHUzMDhkXHUzMDhlXHUzMDhmXHUz''@;'; + put 'put ''MDkwXHUzMDkxXHUzMDkyXHUzMDkzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTMwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzBdW0VdLmNoYXJD''@;'; + put 'put ''b2RlQXQoMCkmJihtZVtCWzEzMF1bRV1dPTMzMjgwK0UsTFszMzI4MCtFXT1CWzEzMF1bRV0pO2ZvcihCWzEzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzBhMVx1MzBhMlx1MzBhM1x1MzBhNFx1MzBhNVx1MzBhNlx1MzBhN1x1''@;'; + put 'put ''MzBhOFx1MzBhOVx1MzBhYVx1MzBhYlx1MzBhY1x1MzBhZFx1MzBhZVx1MzBhZlx1MzBiMFx1MzBiMVx1MzBiMlx1MzBiM1x1MzBiNFx1MzBiNVx1MzBiNlx1MzBiN1x1MzBiOFx1MzBiOVx1MzBiYVx1MzBiYlx1MzBiY1x1MzBiZFx1MzBiZVx1MzBiZlx1MzBjMFx1MzBjMVx1MzBjMlx1MzBj''@;'; + put 'put ''M1x1MzBjNFx1MzBjNVx1MzBjNlx1MzBjN1x1MzBjOFx1MzBjOVx1MzBjYVx1MzBjYlx1MzBjY1x1MzBjZFx1MzBjZVx1MzBjZlx1MzBkMFx1MzBkMVx1MzBkMlx1MzBkM1x1MzBkNFx1MzBkNVx1MzBkNlx1MzBkN1x1MzBkOFx1MzBkOVx1MzBkYVx1MzBkYlx1MzBkY1x1MzBkZFx1MzBkZVx1''@;'; + put 'put ''MzBkZlx1ZmZmZFx1MzBlMFx1MzBlMVx1MzBlMlx1MzBlM1x1MzBlNFx1MzBlNVx1MzBlNlx1MzBlN1x1MzBlOFx1MzBlOVx1MzBlYVx1MzBlYlx1MzBlY1x1MzBlZFx1MzBlZVx1MzBlZlx1MzBmMFx1MzBmMVx1MzBmMlx1MzBmM1x1MzBmNFx1MzBmNVx1MzBmNlx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1''@;'; + put 'put ''MDNhOFx1MDNhOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNj''@;'; + put 'put ''M1x1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJb''@;'; + put 'put ''MTMxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzFdW0VdXT0zMzUzNitFLExbMzM1MzYrRV09QlsxMzFdW0VdKTtmb3IoQlsxMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRc''@;'; + put 'put ''dTA0MTVcdTA0MDFcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0''@;'; + put 'put ''MmZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0NTFcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2Fc''@;'; + put 'put ''dTA0M2JcdTA0M2NcdTA0M2RcdWZmZmRcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI1MDBcdTI1MDJcdTI1MGNcdTI1MTBcdTI1MThcdTI1MTRcdTI1MWNcdTI1MmNcdTI1MjRcdTI1MzRcdTI1M2NcdTI1MDFcdTI1MDNcdTI1MGZcdTI1MTNcdTI1MWJcdTI1MTdcdTI1MjNcdTI1MzNcdTI1MmJc''@;'; + put 'put ''dTI1M2JcdTI1NGJcdTI1MjBcdTI1MmZcdTI1MjhcdTI1MzdcdTI1M2ZcdTI1MWRcdTI1MzBcdTI1MjVcdTI1MzhcdTI1NDJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzJdLmxlbmd0aDsr''@;'; + put 'put ''K0UpNjU1MzMhPT1CWzEzMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTMyXVtFXV09MzM3OTIrRSxMWzMzNzkyK0VdPUJbMTMyXVtFXSk7Zm9yKEJbMTM1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyNDYwXHUyNDYxXHUyNDYy''@;'; + put 'put ''XHUyNDYzXHUyNDY0XHUyNDY1XHUyNDY2XHUyNDY3XHUyNDY4XHUyNDY5XHUyNDZhXHUyNDZiXHUyNDZjXHUyNDZkXHUyNDZlXHUyNDZmXHUyNDcwXHUyNDcxXHUyNDcyXHUyNDczXHUyMTYwXHUyMTYxXHUyMTYyXHUyMTYzXHUyMTY0XHUyMTY1XHUyMTY2XHUyMTY3XHUyMTY4XHUyMTY5XHVm''@;'; + put 'put ''ZmZkXHUzMzQ5XHUzMzE0XHUzMzIyXHUzMzRkXHUzMzE4XHUzMzI3XHUzMzAzXHUzMzM2XHUzMzUxXHUzMzU3XHUzMzBkXHUzMzI2XHUzMzIzXHUzMzJiXHUzMzRhXHUzMzNiXHUzMzljXHUzMzlkXHUzMzllXHUzMzhlXHUzMzhmXHUzM2M0XHUzM2ExXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMzdiXHVmZmZkXHUzMDFkXHUzMDFmXHUyMTE2XHUzM2NkXHUyMTIxXHUzMmE0XHUzMmE1XHUzMmE2XHUzMmE3XHUzMmE4XHUzMjMxXHUzMjMyXHUzMjM5XHUzMzdlXHUzMzdkXHUzMzdjXHUyMjUyXHUyMjYxXHUyMjJiXHUyMjJlXHUyMjExXHUy''@;'; + put 'put ''MjFhXHUyMmE1XHUyMjIwXHUyMjFmXHUyMmJmXHUyMjM1XHUyMjI5XHUyMjJhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJb''@;'; + put 'put ''MTM1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzNV1bRV1dPTM0NTYwK0UsTFszNDU2MCtFXT1CWzEzNV1bRV0pO2ZvcihCWzEzNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGU5Y1x1NTUxNlx1NWEwM1x1OTYzZlx1NTRjMFx1NjExYlx1NjMyOFx1NTlmNlx1OTAyMlx1ODQ3NVx1ODMxY1x1N2E1MFx1NjBhYVx1NjNlMVx1NmUyNVx1NjVl''@;'; + put 'put ''ZFx1ODQ2Nlx1ODJhNlx1OWJmNVx1Njg5M1x1NTcyN1x1NjVhMVx1NjI3MVx1NWI5Ylx1NTlkMFx1ODY3Ylx1OThmNFx1N2Q2Mlx1N2RiZVx1OWI4ZVx1NjIxNlx1N2M5Zlx1ODhiN1x1NWI4OVx1NWViNVx1NjMwOVx1NjY5N1x1Njg0OFx1OTVjN1x1OTc4ZFx1Njc0Zlx1NGVlNVx1NGYwYVx1''@;'; + put 'put ''NGY0ZFx1NGY5ZFx1NTA0OVx1NTZmMlx1NTkzN1x1NTlkNFx1NWEwMVx1NWMwOVx1NjBkZlx1NjEwZlx1NjE3MFx1NjYxM1x1NjkwNVx1NzBiYVx1NzU0Zlx1NzU3MFx1NzlmYlx1N2RhZFx1N2RlZlx1ODBjM1x1ODQwZVx1ODg2M1x1OGIwMlx1OTA1NVx1OTA3YVx1NTMzYlx1NGU5NVx1NGVh''@;'; + put 'put ''NVx1NTdkZlx1ODBiMlx1OTBjMVx1NzhlZlx1NGUwMFx1NThmMVx1NmVhMlx1OTAzOFx1N2EzMlx1ODMyOFx1ODI4Ylx1OWMyZlx1NTE0MVx1NTM3MFx1NTRiZFx1NTRlMVx1NTZlMFx1NTlmYlx1NWYxNVx1OThmMlx1NmRlYlx1ODBlNFx1ODUyZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQo''@;'; + put 'put ''IiIpLEU9MDtFIT1CWzEzNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzZdW0VdXT0zNDgxNitFLExbMzQ4MTYrRV09QlsxMzZdW0VdKTtmb3IoQlsxMzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdTk2NjJcdTk2NzBcdTk2YTBcdTk3ZmJcdTU0MGJcdTUzZjNcdTViODdcdTcwY2ZcdTdmYmRcdThmYzJcdTk2ZThcdTUzNmZcdTlkNWNcdTdhYmFcdTRlMTFcdTc4OTNcdTgxZmNcdTZlMjZcdTU2MThcdTU1MDRcdTZiMWRcdTg1MWFcdTljM2JcdTU5ZTVcdTUzYTlcdTZkNjZc''@;'; + put 'put ''dTc0ZGNcdTk1OGZcdTU2NDJcdTRlOTFcdTkwNGJcdTk2ZjJcdTgzNGZcdTk5MGNcdTUzZTFcdTU1YjZcdTViMzBcdTVmNzFcdTY2MjBcdTY2ZjNcdTY4MDRcdTZjMzhcdTZjZjNcdTZkMjlcdTc0NWJcdTc2YzhcdTdhNGVcdTk4MzRcdTgyZjFcdTg4NWJcdThhNjBcdTkyZWRcdTZkYjJcdTc1''@;'; + put 'put ''YWJcdTc2Y2FcdTk5YzVcdTYwYTZcdThiMDFcdThkOGFcdTk1YjJcdTY5OGVcdTUzYWRcdTUxODZcdWZmZmRcdTU3MTJcdTU4MzBcdTU5NDRcdTViYjRcdTVlZjZcdTYwMjhcdTYzYTlcdTYzZjRcdTZjYmZcdTZmMTRcdTcwOGVcdTcxMTRcdTcxNTlcdTcxZDVcdTczM2ZcdTdlMDFcdTgyNzZc''@;'; + put 'put ''dTgyZDFcdTg1OTdcdTkwNjBcdTkyNWJcdTlkMWJcdTU4NjlcdTY1YmNcdTZjNWFcdTc1MjVcdTUxZjlcdTU5MmVcdTU5NjVcdTVmODBcdTVmZGNcdTYyYmNcdTY1ZmFcdTZhMmFcdTZiMjdcdTZiYjRcdTczOGJcdTdmYzFcdTg5NTZcdTlkMmNcdTlkMGVcdTllYzRcdTVjYTFcdTZjOTZcdTgz''@;'; + put 'put ''N2JcdTUxMDRcdTVjNGJcdTYxYjZcdTgxYzZcdTY4NzZcdTcyNjFcdTRlNTlcdTRmZmFcdTUzNzhcdTYwNjlcdTZlMjlcdTdhNGZcdTk3ZjNcdTRlMGJcdTUzMTZcdTRlZWVcdTRmNTVcdTRmM2RcdTRmYTFcdTRmNzNcdTUyYTBcdTUzZWZcdTU2MDlcdTU5MGZcdTVhYzFcdTViYjZcdTViZTFc''@;'; + put 'put ''dTc5ZDFcdTY2ODdcdTY3OWNcdTY3YjZcdTZiNGNcdTZjYjNcdTcwNmJcdTczYzJcdTc5OGRcdTc5YmVcdTdhM2NcdTdiODdcdTgyYjFcdTgyZGJcdTgzMDRcdTgzNzdcdTgzZWZcdTgzZDNcdTg3NjZcdThhYjJcdTU2MjlcdThjYThcdThmZTZcdTkwNGVcdTk3MWVcdTg2OGFcdTRmYzRcdTVj''@;'; + put 'put ''ZThcdTYyMTFcdTcyNTlcdTc1M2JcdTgxZTVcdTgyYmRcdTg2ZmVcdThjYzBcdTk2YzVcdTk5MTNcdTk5ZDVcdTRlY2JcdTRmMWFcdTg5ZTNcdTU2ZGVcdTU4NGFcdTU4Y2FcdTVlZmJcdTVmZWJcdTYwMmFcdTYwOTRcdTYwNjJcdTYxZDBcdTYyMTJcdTYyZDBcdTY1MzlcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM3XVtFXV09MzUwNzIrRSxMWzM1MDcyK0VdPUJbMTM3XVtFXSk7Zm9yKEJbMTM4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5YjQxXHU2NjY2XHU2OGIwXHU2ZDc3XHU3MDcwXHU3NTRjXHU3Njg2XHU3ZDc1XHU4MmE1XHU4N2Y5XHU5NThiXHU5NjhlXHU4YzlkXHU1MWYxXHU1MmJlXHU1OTE2XHU1NGIzXHU1YmIzXHU1ZDE2XHU2MTY4XHU2OTgyXHU2ZGFmXHU3ODhkXHU4NGNi''@;'; + put 'put ''XHU4ODU3XHU4YTcyXHU5M2E3XHU5YWI4XHU2ZDZjXHU5OWE4XHU4NmQ5XHU1N2EzXHU2N2ZmXHU4NmNlXHU5MjBlXHU1MjgzXHU1Njg3XHU1NDA0XHU1ZWQzXHU2MmUxXHU2NGI5XHU2ODNjXHU2ODM4XHU2YmJiXHU3MzcyXHU3OGJhXHU3YTZiXHU4OTlhXHU4OWQyXHU4ZDZiXHU4ZjAzXHU5''@;'; + put 'put ''MGVkXHU5NWEzXHU5Njk0XHU5NzY5XHU1YjY2XHU1Y2IzXHU2OTdkXHU5ODRkXHU5ODRlXHU2MzliXHU3YjIwXHU2YTJiXHVmZmZkXHU2YTdmXHU2OGI2XHU5YzBkXHU2ZjVmXHU1MjcyXHU1NTlkXHU2MDcwXHU2MmVjXHU2ZDNiXHU2ZTA3XHU2ZWQxXHU4NDViXHU4OTEwXHU4ZjQ0XHU0ZTE0''@;'; + put 'put ''XHU5YzM5XHU1M2Y2XHU2OTFiXHU2YTNhXHU5Nzg0XHU2ODJhXHU1MTVjXHU3YWMzXHU4NGIyXHU5MWRjXHU5MzhjXHU1NjViXHU5ZDI4XHU2ODIyXHU4MzA1XHU4NDMxXHU3Y2E1XHU1MjA4XHU4MmM1XHU3NGU2XHU0ZTdlXHU0ZjgzXHU1MWEwXHU1YmQyXHU1MjBhXHU1MmQ4XHU1MmU3XHU1''@;'; + put 'put ''ZGZiXHU1NTlhXHU1ODJhXHU1OWU2XHU1YjhjXHU1Yjk4XHU1YmRiXHU1ZTcyXHU1ZTc5XHU2MGEzXHU2MTFmXHU2MTYzXHU2MWJlXHU2M2RiXHU2NTYyXHU2N2QxXHU2ODUzXHU2OGZhXHU2YjNlXHU2YjUzXHU2YzU3XHU2ZjIyXHU2Zjk3XHU2ZjQ1XHU3NGIwXHU3NTE4XHU3NmUzXHU3NzBi''@;'; + put 'put ''XHU3YWZmXHU3YmExXHU3YzIxXHU3ZGU5XHU3ZjM2XHU3ZmYwXHU4MDlkXHU4MjY2XHU4MzllXHU4OWIzXHU4YWNjXHU4Y2FiXHU5MDg0XHU5NDUxXHU5NTkzXHU5NTkxXHU5NWEyXHU5NjY1XHU5N2QzXHU5OTI4XHU4MjE4XHU0ZTM4XHU1NDJiXHU1Y2I4XHU1ZGNjXHU3M2E5XHU3NjRjXHU3''@;'; + put 'put ''NzNjXHU1Y2E5XHU3ZmViXHU4ZDBiXHU5NmMxXHU5ODExXHU5ODU0XHU5ODU4XHU0ZjAxXHU0ZjBlXHU1MzcxXHU1NTljXHU1NjY4XHU1N2ZhXHU1OTQ3XHU1YjA5XHU1YmM0XHU1YzkwXHU1ZTBjXHU1ZTdlXHU1ZmNjXHU2M2VlXHU2NzNhXHU2NWQ3XHU2NWUyXHU2NzFmXHU2OGNiXHU2OGM0''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzOF1bRV1dPTM1MzI4K0UsTFszNTMyOCtFXT1CWzEzOF1bRV0pO2ZvcihCWzEzOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmE1Zlx1NWUzMFx1NmJjNVx1NmMxN1x1NmM3ZFx1NzU3Zlx1Nzk0OFx1NWI2M1x1N2EwMFx1N2QwMFx1NWZiZFx1ODk4Zlx1OGExOFx1OGNiNFx1OGQ3N1x1OGVjY1x1OGYxZFx1OThlMlx1OWEwZVx1OWIzY1x1NGU4MFx1NTA3''@;'; + put 'put ''ZFx1NTEwMFx1NTk5M1x1NWI5Y1x1NjIyZlx1NjI4MFx1NjRlY1x1NmIzYVx1NzJhMFx1NzU5MVx1Nzk0N1x1N2ZhOVx1ODdmYlx1OGFiY1x1OGI3MFx1NjNhY1x1ODNjYVx1OTdhMFx1NTQwOVx1NTQwM1x1NTVhYlx1Njg1NFx1NmE1OFx1OGE3MFx1NzgyN1x1Njc3NVx1OWVjZFx1NTM3NFx1''@;'; + put 'put ''NWJhMlx1ODExYVx1ODY1MFx1OTAwNlx1NGUxOFx1NGU0NVx1NGVjN1x1NGYxMVx1NTNjYVx1NTQzOFx1NWJhZVx1NWYxM1x1NjAyNVx1NjU1MVx1ZmZmZFx1NjczZFx1NmM0Mlx1NmM3Mlx1NmNlM1x1NzA3OFx1NzQwM1x1N2E3Nlx1N2FhZVx1N2IwOFx1N2QxYVx1N2NmZVx1N2Q2Nlx1NjVl''@;'; + put 'put ''N1x1NzI1Ylx1NTNiYlx1NWM0NVx1NWRlOFx1NjJkMlx1NjJlMFx1NjMxOVx1NmUyMFx1ODY1YVx1OGEzMVx1OGRkZFx1OTJmOFx1NmYwMVx1NzlhNlx1OWI1YVx1NGVhOFx1NGVhYlx1NGVhY1x1NGY5Ylx1NGZhMFx1NTBkMVx1NTE0N1x1N2FmNlx1NTE3MVx1NTFmNlx1NTM1NFx1NTMyMVx1''@;'; + put 'put ''NTM3Zlx1NTNlYlx1NTVhY1x1NTg4M1x1NWNlMVx1NWYzN1x1NWY0YVx1NjAyZlx1NjA1MFx1NjA2ZFx1NjMxZlx1NjU1OVx1NmE0Ylx1NmNjMVx1NzJjMlx1NzJlZFx1NzdlZlx1ODBmOFx1ODEwNVx1ODIwOFx1ODU0ZVx1OTBmN1x1OTNlMVx1OTdmZlx1OTk1N1x1OWE1YVx1NGVmMFx1NTFk''@;'; + put 'put ''ZFx1NWMyZFx1NjY4MVx1Njk2ZFx1NWM0MFx1NjZmMlx1Njk3NVx1NzM4OVx1Njg1MFx1N2M4MVx1NTBjNVx1NTJlNFx1NTc0N1x1NWRmZVx1OTMyNlx1NjVhNFx1NmIyM1x1NmIzZFx1NzQzNFx1Nzk4MVx1NzliZFx1N2I0Ylx1N2RjYVx1ODJiOVx1ODNjY1x1ODg3Zlx1ODk1Zlx1OGIzOVx1''@;'; + put 'put ''OGZkMVx1OTFkMVx1NTQxZlx1OTI4MFx1NGU1ZFx1NTAzNlx1NTNlNVx1NTMzYVx1NzJkN1x1NzM5Nlx1NzdlOVx1ODJlNlx1OGVhZlx1OTljNlx1OTljOFx1OTlkMlx1NTE3N1x1NjExYVx1ODY1ZVx1NTViMFx1N2E3YVx1NTA3Nlx1NWJkM1x1OTA0N1x1OTY4NVx1NGUzMlx1NmFkYlx1OTFl''@;'; + put 'put ''N1x1NWM1MVx1NWM0OFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzldW0VdXT0zNTU4NCtFLExbMzU1ODQrRV09QlsxMzldW0VdKTtmb3IoQlsxNDBdPSJcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYzOThcdTdhOWZcdTZjOTNcdTk3NzRcdThmNjFcdTdhYWFcdTcxOGFcdTk2ODhcdTdjODJcdTY4MTdcdTdlNzBcdTY4NTFcdTkzNmNcdTUyZjJcdTU0MWJcdTg1YWJcdThhMTNcdTdmYTRcdThlY2RcdTkw''@;'; + put 'put ''ZTFcdTUzNjZcdTg4ODhcdTc5NDFcdTRmYzJcdTUwYmVcdTUyMTFcdTUxNDRcdTU1NTNcdTU3MmRcdTczZWFcdTU3OGJcdTU5NTFcdTVmNjJcdTVmODRcdTYwNzVcdTYxNzZcdTYxNjdcdTYxYTlcdTYzYjJcdTY0M2FcdTY1NmNcdTY2NmZcdTY4NDJcdTZlMTNcdTc1NjZcdTdhM2RcdTdjZmJc''@;'; + put 'put ''dTdkNGNcdTdkOTlcdTdlNGJcdTdmNmJcdTgzMGVcdTgzNGFcdTg2Y2RcdThhMDhcdThhNjNcdThiNjZcdThlZmRcdTk4MWFcdTlkOGZcdTgyYjhcdThmY2VcdTliZThcdWZmZmRcdTUyODdcdTYyMWZcdTY0ODNcdTZmYzBcdTk2OTlcdTY4NDFcdTUwOTFcdTZiMjBcdTZjN2FcdTZmNTRcdTdh''@;'; + put 'put ''NzRcdTdkNTBcdTg4NDBcdThhMjNcdTY3MDhcdTRlZjZcdTUwMzlcdTUwMjZcdTUwNjVcdTUxN2NcdTUyMzhcdTUyNjNcdTU1YTdcdTU3MGZcdTU4MDVcdTVhY2NcdTVlZmFcdTYxYjJcdTYxZjhcdTYyZjNcdTYzNzJcdTY5MWNcdTZhMjlcdTcyN2RcdTcyYWNcdTczMmVcdTc4MTRcdTc4NmZc''@;'; + put 'put ''dTdkNzlcdTc3MGNcdTgwYTlcdTg5OGJcdThiMTlcdThjZTJcdThlZDJcdTkwNjNcdTkzNzVcdTk2N2FcdTk4NTVcdTlhMTNcdTllNzhcdTUxNDNcdTUzOWZcdTUzYjNcdTVlN2JcdTVmMjZcdTZlMWJcdTZlOTBcdTczODRcdTczZmVcdTdkNDNcdTgyMzdcdThhMDBcdThhZmFcdTk2NTBcdTRl''@;'; + put 'put ''NGVcdTUwMGJcdTUzZTRcdTU0N2NcdTU2ZmFcdTU5ZDFcdTViNjRcdTVkZjFcdTVlYWJcdTVmMjdcdTYyMzhcdTY1NDVcdTY3YWZcdTZlNTZcdTcyZDBcdTdjY2FcdTg4YjRcdTgwYTFcdTgwZTFcdTgzZjBcdTg2NGVcdThhODdcdThkZThcdTkyMzdcdTk2YzdcdTk4NjdcdTlmMTNcdTRlOTRc''@;'; + put 'put ''dTRlOTJcdTRmMGRcdTUzNDhcdTU0NDlcdTU0M2VcdTVhMmZcdTVmOGNcdTVmYTFcdTYwOWZcdTY4YTdcdTZhOGVcdTc0NWFcdTc4ODFcdThhOWVcdThhYTRcdThiNzdcdTkxOTBcdTRlNWVcdTliYzlcdTRlYTRcdTRmN2NcdTRmYWZcdTUwMTlcdTUwMTZcdTUxNDlcdTUxNmNcdTUyOWZcdTUy''@;'; + put 'put ''YjlcdTUyZmVcdTUzOWFcdTUzZTNcdTU0MTFcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQwXVtFXV09MzU4NDArRSxMWzM1ODQwK0VdPUJbMTQwXVtFXSk7Zm9yKEJb''@;'; + put 'put ''MTQxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NDBlXHU1NTg5XHU1NzUxXHU1N2EyXHU1OTdkXHU1YjU0XHU1YjVkXHU1YjhmXHU1ZGU1XHU1ZGU3XHU1ZGY3XHU1ZTc4XHU1ZTgzXHU1ZTlhXHU1ZWI3XHU1ZjE4XHU2MDUyXHU2''@;'; + put 'put ''MTRjXHU2Mjk3XHU2MmQ4XHU2M2E3XHU2NTNiXHU2NjAyXHU2NjQzXHU2NmY0XHU2NzZkXHU2ODIxXHU2ODk3XHU2OWNiXHU2YzVmXHU2ZDJhXHU2ZDY5XHU2ZTJmXHU2ZTlkXHU3NTMyXHU3Njg3XHU3ODZjXHU3YTNmXHU3Y2UwXHU3ZDA1XHU3ZDE4XHU3ZDVlXHU3ZGIxXHU4MDE1XHU4MDAz''@;'; + put 'put ''XHU4MGFmXHU4MGIxXHU4MTU0XHU4MThmXHU4MjJhXHU4MzUyXHU4ODRjXHU4ODYxXHU4YjFiXHU4Y2EyXHU4Y2ZjXHU5MGNhXHU5MTc1XHU5MjcxXHU3ODNmXHU5MmZjXHU5NWE0XHU5NjRkXHVmZmZkXHU5ODA1XHU5OTk5XHU5YWQ4XHU5ZDNiXHU1MjViXHU1MmFiXHU1M2Y3XHU1NDA4XHU1''@;'; + put 'put ''OGQ1XHU2MmY3XHU2ZmUwXHU4YzZhXHU4ZjVmXHU5ZWI5XHU1MTRiXHU1MjNiXHU1NDRhXHU1NmZkXHU3YTQwXHU5MTc3XHU5ZDYwXHU5ZWQyXHU3MzQ0XHU2ZjA5XHU4MTcwXHU3NTExXHU1ZmZkXHU2MGRhXHU5YWE4XHU3MmRiXHU4ZmJjXHU2YjY0XHU5ODAzXHU0ZWNhXHU1NmYwXHU1NzY0''@;'; + put 'put ''XHU1OGJlXHU1YTVhXHU2MDY4XHU2MWM3XHU2NjBmXHU2NjA2XHU2ODM5XHU2OGIxXHU2ZGY3XHU3NWQ1XHU3ZDNhXHU4MjZlXHU5YjQyXHU0ZTliXHU0ZjUwXHU1M2M5XHU1NTA2XHU1ZDZmXHU1ZGU2XHU1ZGVlXHU2N2ZiXHU2Yzk5XHU3NDczXHU3ODAyXHU4YTUwXHU5Mzk2XHU4OGRmXHU1''@;'; + put 'put ''NzUwXHU1ZWE3XHU2MzJiXHU1MGI1XHU1MGFjXHU1MThkXHU2NzAwXHU1NGM5XHU1ODVlXHU1OWJiXHU1YmIwXHU1ZjY5XHU2MjRkXHU2M2ExXHU2ODNkXHU2YjczXHU2ZTA4XHU3MDdkXHU5MWM3XHU3MjgwXHU3ODE1XHU3ODI2XHU3OTZkXHU2NThlXHU3ZDMwXHU4M2RjXHU4OGMxXHU4ZjA5''@;'; + put 'put ''XHU5NjliXHU1MjY0XHU1NzI4XHU2NzUwXHU3ZjZhXHU4Y2ExXHU1MWI0XHU1NzQyXHU5NjJhXHU1ODNhXHU2OThhXHU4MGI0XHU1NGIyXHU1ZDBlXHU1N2ZjXHU3ODk1XHU5ZGZhXHU0ZjVjXHU1MjRhXHU1NDhiXHU2NDNlXHU2NjI4XHU2NzE0XHU2N2Y1XHU3YTg0XHU3YjU2XHU3ZDIyXHU5''@;'; + put 'put ''MzJmXHU2ODVjXHU5YmFkXHU3YjM5XHU1MzE5XHU1MThhXHU1MjM3XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0MV1bRV1dPTM2MDk2K0UsTFszNjA5NitFXT1CWzE0''@;'; + put 'put ''MV1bRV0pO2ZvcihCWzE0Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWJkZlx1NjJmNlx1NjRhZVx1NjRlNlx1NjcyZFx1NmJiYVx1ODVhOVx1OTZkMVx1NzY5MFx1OWJkNlx1NjM0Y1x1OTMwNlx1OWJhYlx1NzZiZlx1NjY1Mlx1''@;'; + put 'put ''NGUwOVx1NTA5OFx1NTNjMlx1NWM3MVx1NjBlOFx1NjQ5Mlx1NjU2M1x1Njg1Zlx1NzFlNlx1NzNjYVx1NzUyM1x1N2I5N1x1N2U4Mlx1ODY5NVx1OGI4M1x1OGNkYlx1OTE3OFx1OTkxMFx1NjVhY1x1NjZhYlx1NmI4Ylx1NGVkNVx1NGVkNFx1NGYzYVx1NGY3Zlx1NTIzYVx1NTNmOFx1NTNm''@;'; + put 'put ''Mlx1NTVlM1x1NTZkYlx1NThlYlx1NTljYlx1NTljOVx1NTlmZlx1NWI1MFx1NWM0ZFx1NWUwMlx1NWUyYlx1NWZkN1x1NjAxZFx1NjMwN1x1NjUyZlx1NWI1Y1x1NjVhZlx1NjViZFx1NjVlOFx1Njc5ZFx1NmI2Mlx1ZmZmZFx1NmI3Ylx1NmMwZlx1NzM0NVx1Nzk0OVx1NzljMVx1N2NmOFx1''@;'; + put 'put ''N2QxOVx1N2QyYlx1ODBhMlx1ODEwMlx1ODFmM1x1ODk5Nlx1OGE1ZVx1OGE2OVx1OGE2Nlx1OGE4Y1x1OGFlZVx1OGNjN1x1OGNkY1x1OTZjY1x1OThmY1x1NmI2Zlx1NGU4Ylx1NGYzY1x1NGY4ZFx1NTE1MFx1NWI1N1x1NWJmYVx1NjE0OFx1NjMwMVx1NjY0Mlx1NmIyMVx1NmVjYlx1NmNi''@;'; + put 'put ''Ylx1NzIzZVx1NzRiZFx1NzVkNFx1NzhjMVx1NzkzYVx1ODAwY1x1ODAzM1x1ODFlYVx1ODQ5NFx1OGY5ZVx1NmM1MFx1OWU3Zlx1NWYwZlx1OGI1OFx1OWQyYlx1N2FmYVx1OGVmOFx1NWI4ZFx1OTZlYlx1NGUwM1x1NTNmMVx1NTdmN1x1NTkzMVx1NWFjOVx1NWJhNFx1NjA4OVx1NmU3Zlx1''@;'; + put 'put ''NmYwNlx1NzViZVx1OGNlYVx1NWI5Zlx1ODUwMFx1N2JlMFx1NTA3Mlx1NjdmNFx1ODI5ZFx1NWM2MVx1ODU0YVx1N2UxZVx1ODIwZVx1NTE5OVx1NWMwNFx1NjM2OFx1OGQ2Nlx1NjU5Y1x1NzE2ZVx1NzkzZVx1N2QxN1x1ODAwNVx1OGIxZFx1OGVjYVx1OTA2ZVx1ODZjN1x1OTBhYVx1NTAx''@;'; + put 'put ''Zlx1NTJmYVx1NWMzYVx1Njc1M1x1NzA3Y1x1NzIzNVx1OTE0Y1x1OTFjOFx1OTMyYlx1ODJlNVx1NWJjMlx1NWYzMVx1NjBmOVx1NGUzYlx1NTNkNlx1NWI4OFx1NjI0Ylx1NjczMVx1NmI4YVx1NzJlOVx1NzNlMFx1N2EyZVx1ODE2Ylx1OGRhM1x1OTE1Mlx1OTk5Nlx1NTExMlx1NTNkN1x1''@;'; + put 'put ''NTQ2YVx1NWJmZlx1NjM4OFx1NmEzOVx1N2RhY1x1OTcwMFx1NTZkYVx1NTNjZVx1NTQ2OFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDJdW0VdXT0zNjM1MitFLExb''@;'; + put 'put ''MzYzNTIrRV09QlsxNDJdW0VdKTtmb3IoQlsxNDNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTViOTdcdTVjMzFcdTVkZGVcdTRmZWVcdTYxMDFcdTYyZmVcdTZkMzJcdTc5YzBcdTc5Y2JcdTdkNDJcdTdlNGRcdTdmZDJcdTgxZWRc''@;'; + put 'put ''dTgyMWZcdTg0OTBcdTg4NDZcdTg5NzJcdThiOTBcdThlNzRcdThmMmZcdTkwMzFcdTkxNGJcdTkxNmNcdTk2YzZcdTkxOWNcdTRlYzBcdTRmNGZcdTUxNDVcdTUzNDFcdTVmOTNcdTYyMGVcdTY3ZDRcdTZjNDFcdTZlMGJcdTczNjNcdTdlMjZcdTkxY2RcdTkyODNcdTUzZDRcdTU5MTlcdTVi''@;'; + put 'put ''YmZcdTZkZDFcdTc5NWRcdTdlMmVcdTdjOWJcdTU4N2VcdTcxOWZcdTUxZmFcdTg4NTNcdThmZjBcdTRmY2FcdTVjZmJcdTY2MjVcdTc3YWNcdTdhZTNcdTgyMWNcdTk5ZmZcdTUxYzZcdTVmYWFcdTY1ZWNcdTY5NmZcdTZiODlcdTZkZjNcdWZmZmRcdTZlOTZcdTZmNjRcdTc2ZmVcdTdkMTRc''@;'; + put 'put ''dTVkZTFcdTkwNzVcdTkxODdcdTk4MDZcdTUxZTZcdTUyMWRcdTYyNDBcdTY2OTFcdTY2ZDlcdTZlMWFcdTVlYjZcdTdkZDJcdTdmNzJcdTY2ZjhcdTg1YWZcdTg1ZjdcdThhZjhcdTUyYTlcdTUzZDlcdTU5NzNcdTVlOGZcdTVmOTBcdTYwNTVcdTkyZTRcdTk2NjRcdTUwYjdcdTUxMWZcdTUy''@;'; + put 'put ''ZGRcdTUzMjBcdTUzNDdcdTUzZWNcdTU0ZThcdTU1NDZcdTU1MzFcdTU2MTdcdTU5NjhcdTU5YmVcdTVhM2NcdTViYjVcdTVjMDZcdTVjMGZcdTVjMTFcdTVjMWFcdTVlODRcdTVlOGFcdTVlZTBcdTVmNzBcdTYyN2ZcdTYyODRcdTYyZGJcdTYzOGNcdTYzNzdcdTY2MDdcdTY2MGNcdTY2MmRc''@;'; + put 'put ''dTY2NzZcdTY3N2VcdTY4YTJcdTZhMWZcdTZhMzVcdTZjYmNcdTZkODhcdTZlMDlcdTZlNThcdTcxM2NcdTcxMjZcdTcxNjdcdTc1YzdcdTc3MDFcdTc4NWRcdTc5MDFcdTc5NjVcdTc5ZjBcdTdhZTBcdTdiMTFcdTdjYTdcdTdkMzlcdTgwOTZcdTgzZDZcdTg0OGJcdTg1NDlcdTg4NWRcdTg4''@;'; + put 'put ''ZjNcdThhMWZcdThhM2NcdThhNTRcdThhNzNcdThjNjFcdThjZGVcdTkxYTRcdTkyNjZcdTkzN2VcdTk0MThcdTk2OWNcdTk3OThcdTRlMGFcdTRlMDhcdTRlMWVcdTRlNTdcdTUxOTdcdTUyNzBcdTU3Y2VcdTU4MzRcdTU4Y2NcdTViMjJcdTVlMzhcdTYwYzVcdTY0ZmVcdTY3NjFcdTY3NTZc''@;'; + put 'put ''dTZkNDRcdTcyYjZcdTc1NzNcdTdhNjNcdTg0YjhcdThiNzJcdTkxYjhcdTkzMjBcdTU2MzFcdTU3ZjRcdTk4ZmVcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQzXVtF''@;'; + put 'put ''XV09MzY2MDgrRSxMWzM2NjA4K0VdPUJbMTQzXVtFXSk7Zm9yKEJbMTQ0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MmVkXHU2OTBkXHU2Yjk2XHU3MWVkXHU3ZTU0XHU4MDc3XHU4MjcyXHU4OWU2XHU5OGRmXHU4NzU1XHU4ZmIx''@;'; + put 'put ''XHU1YzNiXHU0ZjM4XHU0ZmUxXHU0ZmI1XHU1NTA3XHU1YTIwXHU1YmRkXHU1YmU5XHU1ZmMzXHU2MTRlXHU2MzJmXHU2NWIwXHU2NjRiXHU2OGVlXHU2OTliXHU2ZDc4XHU2ZGYxXHU3NTMzXHU3NWI5XHU3NzFmXHU3OTVlXHU3OWU2XHU3ZDMzXHU4MWUzXHU4MmFmXHU4NWFhXHU4OWFhXHU4''@;'; + put 'put ''YTNhXHU4ZWFiXHU4ZjliXHU5MDMyXHU5MWRkXHU5NzA3XHU0ZWJhXHU0ZWMxXHU1MjAzXHU1ODc1XHU1OGVjXHU1YzBiXHU3NTFhXHU1YzNkXHU4MTRlXHU4YTBhXHU4ZmM1XHU5NjYzXHU5NzZkXHU3YjI1XHU4YWNmXHU5ODA4XHU5MTYyXHU1NmYzXHU1M2E4XHVmZmZkXHU5MDE3XHU1NDM5''@;'; + put 'put ''XHU1NzgyXHU1ZTI1XHU2M2E4XHU2YzM0XHU3MDhhXHU3NzYxXHU3YzhiXHU3ZmUwXHU4ODcwXHU5MDQyXHU5MTU0XHU5MzEwXHU5MzE4XHU5NjhmXHU3NDVlXHU5YWM0XHU1ZDA3XHU1ZDY5XHU2NTcwXHU2N2EyXHU4ZGE4XHU5NmRiXHU2MzZlXHU2NzQ5XHU2OTE5XHU4M2M1XHU5ODE3XHU5''@;'; + put 'put ''NmMwXHU4OGZlXHU2Zjg0XHU2NDdhXHU1YmY4XHU0ZTE2XHU3MDJjXHU3NTVkXHU2NjJmXHU1MWM0XHU1MjM2XHU1MmUyXHU1OWQzXHU1ZjgxXHU2MDI3XHU2MjEwXHU2NTNmXHU2NTc0XHU2NjFmXHU2Njc0XHU2OGYyXHU2ODE2XHU2YjYzXHU2ZTA1XHU3MjcyXHU3NTFmXHU3NmRiXHU3Y2Jl''@;'; + put 'put ''XHU4MDU2XHU1OGYwXHU4OGZkXHU4OTdmXHU4YWEwXHU4YTkzXHU4YWNiXHU5MDFkXHU5MTkyXHU5NzUyXHU5NzU5XHU2NTg5XHU3YTBlXHU4MTA2XHU5NmJiXHU1ZTJkXHU2MGRjXHU2MjFhXHU2NWE1XHU2NjE0XHU2NzkwXHU3N2YzXHU3YTRkXHU3YzRkXHU3ZTNlXHU4MTBhXHU4Y2FjXHU4''@;'; + put 'put ''ZDY0XHU4ZGUxXHU4ZTVmXHU3OGE5XHU1MjA3XHU2MmQ5XHU2M2E1XHU2NDQyXHU2Mjk4XHU4YTJkXHU3YTgzXHU3YmMwXHU4YWFjXHU5NmVhXHU3ZDc2XHU4MjBjXHU4NzQ5XHU0ZWQ5XHU1MTQ4XHU1MzQzXHU1MzYwXHU1YmEzXHU1YzAyXHU1YzE2XHU1ZGRkXHU2MjI2XHU2MjQ3XHU2NGIw''@;'; + put 'put ''XHU2ODEzXHU2ODM0XHU2Y2M5XHU2ZDQ1XHU2ZDE3XHU2N2QzXHU2ZjVjXHU3MTRlXHU3MTdkXHU2NWNiXHU3YTdmXHU3YmFkXHU3ZGRhXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDRdW0VdLmNoYXJDb2RlQXQoMCkm''@;'; + put 'put ''JihtZVtCWzE0NF1bRV1dPTM2ODY0K0UsTFszNjg2NCtFXT1CWzE0NF1bRV0pO2ZvcihCWzE0NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2U0YVx1N2ZhOFx1ODE3YVx1ODIxYlx1ODIzOVx1ODVhNlx1OGE2ZVx1OGNjZVx1OGRm''@;'; + put 'put ''NVx1OTA3OFx1OTA3N1x1OTJhZFx1OTI5MVx1OTU4M1x1OWJhZVx1NTI0ZFx1NTU4NFx1NmYzOFx1NzEzNlx1NTE2OFx1Nzk4NVx1N2U1NVx1ODFiM1x1N2NjZVx1NTY0Y1x1NTg1MVx1NWNhOFx1NjNhYVx1NjZmZVx1NjZmZFx1Njk1YVx1NzJkOVx1NzU4Zlx1NzU4ZVx1NzkwZVx1Nzk1Nlx1''@;'; + put 'put ''NzlkZlx1N2M5N1x1N2QyMFx1N2Q0NFx1ODYwN1x1OGEzNFx1OTYzYlx1OTA2MVx1OWYyMFx1NTBlN1x1NTI3NVx1NTNjY1x1NTNlMlx1NTAwOVx1NTVhYVx1NThlZVx1NTk0Zlx1NzIzZFx1NWI4Ylx1NWM2NFx1NTMxZFx1NjBlM1x1NjBmM1x1NjM1Y1x1NjM4M1x1NjMzZlx1NjNiYlx1ZmZm''@;'; + put 'put ''ZFx1NjRjZFx1NjVlOVx1NjZmOVx1NWRlM1x1NjljZFx1NjlmZFx1NmYxNVx1NzFlNVx1NGU4OVx1NzVlOVx1NzZmOFx1N2E5M1x1N2NkZlx1N2RjZlx1N2Q5Y1x1ODA2MVx1ODM0OVx1ODM1OFx1ODQ2Y1x1ODRiY1x1ODVmYlx1ODhjNVx1OGQ3MFx1OTAwMVx1OTA2ZFx1OTM5N1x1OTcxY1x1''@;'; + put 'put ''OWExMlx1NTBjZlx1NTg5N1x1NjE4ZVx1ODFkM1x1ODUzNVx1OGQwOFx1OTAyMFx1NGZjM1x1NTA3NFx1NTI0N1x1NTM3M1x1NjA2Zlx1NjM0OVx1Njc1Zlx1NmUyY1x1OGRiM1x1OTAxZlx1NGZkN1x1NWM1ZVx1OGNjYVx1NjVjZlx1N2Q5YVx1NTM1Mlx1ODg5Nlx1NTE3Nlx1NjNjM1x1NWI1''@;'; + put 'put ''OFx1NWI2Ylx1NWMwYVx1NjQwZFx1Njc1MVx1OTA1Y1x1NGVkNlx1NTkxYVx1NTkyYVx1NmM3MFx1OGE1MVx1NTUzZVx1NTgxNVx1NTlhNVx1NjBmMFx1NjI1M1x1NjdjMVx1ODIzNVx1Njk1NVx1OTY0MFx1OTljNFx1OWEyOFx1NGY1M1x1NTgwNlx1NWJmZVx1ODAxMFx1NWNiMVx1NWUyZlx1''@;'; + put 'put ''NWY4NVx1NjAyMFx1NjE0Ylx1NjIzNFx1NjZmZlx1NmNmMFx1NmVkZVx1ODBjZVx1ODE3Zlx1ODJkNFx1ODg4Ylx1OGNiOFx1OTAwMFx1OTAyZVx1OTY4YVx1OWVkYlx1OWJkYlx1NGVlM1x1NTNmMFx1NTkyN1x1N2IyY1x1OTE4ZFx1OTg0Y1x1OWRmOVx1NmVkZFx1NzAyN1x1NTM1M1x1NTU0''@;'; + put 'put ''NFx1NWI4NVx1NjI1OFx1NjI5ZVx1NjJkM1x1NmNhMlx1NmZlZlx1NzQyMlx1OGExN1x1OTQzOFx1NmZjMVx1OGFmZVx1ODMzOFx1NTFlN1x1ODZmOFx1NTNlYVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ1XVtFXS5j''@;'; + put 'put ''aGFyQ29kZUF0KDApJiYobWVbQlsxNDVdW0VdXT0zNzEyMCtFLExbMzcxMjArRV09QlsxNDVdW0VdKTtmb3IoQlsxNDZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUzZTlcdTRmNDZcdTkwNTRcdThmYjBcdTU5NmFcdTgxMzFcdTVk''@;'; + put 'put ''ZmRcdTdhZWFcdThmYmZcdTY4ZGFcdThjMzdcdTcyZjhcdTljNDhcdTZhM2RcdThhYjBcdTRlMzlcdTUzNThcdTU2MDZcdTU3NjZcdTYyYzVcdTYzYTJcdTY1ZTZcdTZiNGVcdTZkZTFcdTZlNWJcdTcwYWRcdTc3ZWRcdTdhZWZcdTdiYWFcdTdkYmJcdTgwM2RcdTgwYzZcdTg2Y2JcdThhOTVc''@;'; + put 'put ''dTkzNWJcdTU2ZTNcdTU4YzdcdTVmM2VcdTY1YWRcdTY2OTZcdTZhODBcdTZiYjVcdTc1MzdcdThhYzdcdTUwMjRcdTc3ZTVcdTU3MzBcdTVmMWJcdTYwNjVcdTY2N2FcdTZjNjBcdTc1ZjRcdTdhMWFcdTdmNmVcdTgxZjRcdTg3MThcdTkwNDVcdTk5YjNcdTdiYzlcdTc1NWNcdTdhZjlcdTdi''@;'; + put 'put ''NTFcdTg0YzRcdWZmZmRcdTkwMTBcdTc5ZTlcdTdhOTJcdTgzMzZcdTVhZTFcdTc3NDBcdTRlMmRcdTRlZjJcdTViOTlcdTVmZTBcdTYyYmRcdTY2M2NcdTY3ZjFcdTZjZThcdTg2NmJcdTg4NzdcdThhM2JcdTkxNGVcdTkyZjNcdTk5ZDBcdTZhMTdcdTcwMjZcdTczMmFcdTgyZTdcdTg0NTdc''@;'; + put 'put ''dThjYWZcdTRlMDFcdTUxNDZcdTUxY2JcdTU1OGJcdTViZjVcdTVlMTZcdTVlMzNcdTVlODFcdTVmMTRcdTVmMzVcdTVmNmJcdTVmYjRcdTYxZjJcdTYzMTFcdTY2YTJcdTY3MWRcdTZmNmVcdTcyNTJcdTc1M2FcdTc3M2FcdTgwNzRcdTgxMzlcdTgxNzhcdTg3NzZcdThhYmZcdThhZGNcdThk''@;'; + put 'put ''ODVcdThkZjNcdTkyOWFcdTk1NzdcdTk4MDJcdTljZTVcdTUyYzVcdTYzNTdcdTc2ZjRcdTY3MTVcdTZjODhcdTczY2RcdThjYzNcdTkzYWVcdTk2NzNcdTZkMjVcdTU4OWNcdTY5MGVcdTY5Y2NcdThmZmRcdTkzOWFcdTc1ZGJcdTkwMWFcdTU4NWFcdTY4MDJcdTYzYjRcdTY5ZmJcdTRmNDNc''@;'; + put 'put ''dTZmMmNcdTY3ZDhcdThmYmJcdTg1MjZcdTdkYjRcdTkzNTRcdTY5M2ZcdTZmNzBcdTU3NmFcdTU4ZjdcdTViMmNcdTdkMmNcdTcyMmFcdTU0MGFcdTkxZTNcdTlkYjRcdTRlYWRcdTRmNGVcdTUwNWNcdTUwNzVcdTUyNDNcdThjOWVcdTU0NDhcdTU4MjRcdTViOWFcdTVlMWRcdTVlOTVcdTVl''@;'; + put 'put ''YWRcdTVlZjdcdTVmMWZcdTYwOGNcdTYyYjVcdTYzM2FcdTYzZDBcdTY4YWZcdTZjNDBcdTc4ODdcdTc5OGVcdTdhMGJcdTdkZTBcdTgyNDdcdThhMDJcdThhZTZcdThlNDRcdTkwMTNcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDZdLmxlbmd0aDsrK0UpNjU1MzMh''@;'; + put 'put ''PT1CWzE0Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ2XVtFXV09MzczNzYrRSxMWzM3Mzc2K0VdPUJbMTQ2XVtFXSk7Zm9yKEJbMTQ3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MGI4XHU5MTJkXHU5MWQ4XHU5ZjBlXHU2''@;'; + put 'put ''Y2U1XHU2NDU4XHU2NGUyXHU2NTc1XHU2ZWY0XHU3Njg0XHU3YjFiXHU5MDY5XHU5M2QxXHU2ZWJhXHU1NGYyXHU1ZmI5XHU2NGE0XHU4ZjRkXHU4ZmVkXHU5MjQ0XHU1MTc4XHU1ODZiXHU1OTI5XHU1YzU1XHU1ZTk3XHU2ZGZiXHU3ZThmXHU3NTFjXHU4Y2JjXHU4ZWUyXHU5ODViXHU3MGI5''@;'; + put 'put ''XHU0ZjFkXHU2YmJmXHU2ZmIxXHU3NTMwXHU5NmZiXHU1MTRlXHU1NDEwXHU1ODM1XHU1ODU3XHU1OWFjXHU1YzYwXHU1ZjkyXHU2NTk3XHU2NzVjXHU2ZTIxXHU3NjdiXHU4M2RmXHU4Y2VkXHU5MDE0XHU5MGZkXHU5MzRkXHU3ODI1XHU3ODNhXHU1MmFhXHU1ZWE2XHU1NzFmXHU1OTc0XHU2''@;'; + put 'put ''MDEyXHU1MDEyXHU1MTVhXHU1MWFjXHVmZmZkXHU1MWNkXHU1MjAwXHU1NTEwXHU1ODU0XHU1ODU4XHU1OTU3XHU1Yjk1XHU1Y2Y2XHU1ZDhiXHU2MGJjXHU2Mjk1XHU2NDJkXHU2NzcxXHU2ODQzXHU2OGJjXHU2OGRmXHU3NmQ3XHU2ZGQ4XHU2ZTZmXHU2ZDliXHU3MDZmXHU3MWM4XHU1ZjUz''@;'; + put 'put ''XHU3NWQ4XHU3OTc3XHU3YjQ5XHU3YjU0XHU3YjUyXHU3Y2Q2XHU3ZDcxXHU1MjMwXHU4NDYzXHU4NTY5XHU4NWU0XHU4YTBlXHU4YjA0XHU4YzQ2XHU4ZTBmXHU5MDAzXHU5MDBmXHU5NDE5XHU5Njc2XHU5ODJkXHU5YTMwXHU5NWQ4XHU1MGNkXHU1MmQ1XHU1NDBjXHU1ODAyXHU1YzBlXHU2''@;'; + put 'put ''MWE3XHU2NDllXHU2ZDFlXHU3N2IzXHU3YWU1XHU4MGY0XHU4NDA0XHU5MDUzXHU5Mjg1XHU1Y2UwXHU5ZDA3XHU1MzNmXHU1Zjk3XHU1ZmIzXHU2ZDljXHU3Mjc5XHU3NzYzXHU3OWJmXHU3YmU0XHU2YmQyXHU3MmVjXHU4YWFkXHU2ODAzXHU2YTYxXHU1MWY4XHU3YTgxXHU2OTM0XHU1YzRh''@;'; + put 'put ''XHU5Y2Y2XHU4MmViXHU1YmM1XHU5MTQ5XHU3MDFlXHU1Njc4XHU1YzZmXHU2MGM3XHU2NTY2XHU2YzhjXHU4YzVhXHU5MDQxXHU5ODEzXHU1NDUxXHU2NmM3XHU5MjBkXHU1OTQ4XHU5MGEzXHU1MTg1XHU0ZTRkXHU1MWVhXHU4NTk5XHU4YjBlXHU3MDU4XHU2MzdhXHU5MzRiXHU2OTYyXHU5''@;'; + put 'put ''OWI0XHU3ZTA0XHU3NTc3XHU1MzU3XHU2OTYwXHU4ZWRmXHU5NmUzXHU2YzVkXHU0ZThjXHU1YzNjXHU1ZjEwXHU4ZmU5XHU1MzAyXHU4Y2QxXHU4MDg5XHU4Njc5XHU1ZWZmXHU2NWU1XHU0ZTczXHU1MTY1XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ3XS5sZW5n''@;'; + put 'put ''dGg7KytFKTY1NTMzIT09QlsxNDddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0N11bRV1dPTM3NjMyK0UsTFszNzYzMitFXT1CWzE0N11bRV0pO2ZvcihCWzE0OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTk4Mlx1NWMzZlx1''@;'; + put 'put ''OTdlZVx1NGVmYlx1NTk4YVx1NWZjZFx1OGE4ZFx1NmZlMVx1NzliMFx1Nzk2Mlx1NWJlN1x1ODQ3MVx1NzMyYlx1NzFiMVx1NWU3NFx1NWZmNVx1NjM3Ylx1NjQ5YVx1NzFjM1x1N2M5OFx1NGU0M1x1NWVmY1x1NGU0Ylx1NTdkY1x1NTZhMlx1NjBhOVx1NmZjM1x1N2QwZFx1ODBmZFx1ODEz''@;'; + put 'put ''M1x1ODFiZlx1OGZiMlx1ODk5N1x1ODZhNFx1NWRmNFx1NjI4YVx1NjRhZFx1ODk4N1x1Njc3N1x1NmNlMlx1NmQzZVx1NzQzNlx1NzgzNFx1NWE0Nlx1N2Y3NVx1ODJhZFx1OTlhY1x1NGZmM1x1NWVjM1x1NjJkZFx1NjM5Mlx1NjU1N1x1Njc2Zlx1NzZjM1x1NzI0Y1x1ODBjY1x1ODBiYVx1''@;'; + put 'put ''OGYyOVx1OTE0ZFx1NTAwZFx1NTdmOVx1NWE5Mlx1Njg4NVx1ZmZmZFx1Njk3M1x1NzE2NFx1NzJmZFx1OGNiN1x1NThmMlx1OGNlMFx1OTY2YVx1OTAxOVx1ODc3Zlx1NzllNFx1NzdlN1x1ODQyOVx1NGYyZlx1NTI2NVx1NTM1YVx1NjJjZFx1NjdjZlx1NmNjYVx1NzY3ZFx1N2I5NFx1N2M5''@;'; + put 'put ''NVx1ODIzNlx1ODU4NFx1OGZlYlx1NjZkZFx1NmYyMFx1NzIwNlx1N2UxYlx1ODNhYlx1OTljMVx1OWVhNlx1NTFmZFx1N2JiMVx1Nzg3Mlx1N2JiOFx1ODA4N1x1N2I0OFx1NmFlOFx1NWU2MVx1ODA4Y1x1NzU1MVx1NzU2MFx1NTE2Ylx1OTI2Mlx1NmU4Y1x1NzY3YVx1OTE5N1x1OWFlYVx1''@;'; + put 'put ''NGYxMFx1N2Y3MFx1NjI5Y1x1N2I0Zlx1OTVhNVx1OWNlOVx1NTY3YVx1NTg1OVx1ODZlNFx1OTZiY1x1NGYzNFx1NTIyNFx1NTM0YVx1NTNjZFx1NTNkYlx1NWUwNlx1NjQyY1x1NjU5MVx1Njc3Zlx1NmMzZVx1NmM0ZVx1NzI0OFx1NzJhZlx1NzNlZFx1NzU1NFx1N2U0MVx1ODIyY1x1ODVl''@;'; + put 'put ''OVx1OGNhOVx1N2JjNFx1OTFjNlx1NzE2OVx1OTgxMlx1OThlZlx1NjMzZFx1NjY2OVx1NzU2YVx1NzZlNFx1NzhkMFx1ODU0M1x1ODZlZVx1NTMyYVx1NTM1MVx1NTQyNlx1NTk4M1x1NWU4N1x1NWY3Y1x1NjBiMlx1NjI0OVx1NjI3OVx1NjJhYlx1NjU5MFx1NmJkNFx1NmNjY1x1NzViMlx1''@;'; + put 'put ''NzZhZVx1Nzg5MVx1NzlkOFx1N2RjYlx1N2Y3N1x1ODBhNVx1ODhhYlx1OGFiOVx1OGNiYlx1OTA3Zlx1OTc1ZVx1OThkYlx1NmEwYlx1N2MzOFx1NTA5OVx1NWMzZVx1NWZhZVx1Njc4N1x1NmJkOFx1NzQzNVx1NzcwOVx1N2Y4ZVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtF''@;'; + put 'put ''IT1CWzE0OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDhdW0VdXT0zNzg4OCtFLExbMzc4ODgrRV09QlsxNDhdW0VdKTtmb3IoQlsxNDldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dTlmM2JcdTY3Y2FcdTdhMTdcdTUzMzlcdTc1OGJcdTlhZWRcdTVmNjZcdTgxOWRcdTgzZjFcdTgwOThcdTVmM2NcdTVmYzVcdTc1NjJcdTdiNDZcdTkwM2NcdTY4NjdcdTU5ZWJcdTVhOWJcdTdkMTBcdTc2N2VcdThiMmNcdTRmZjVcdTVmNmFcdTZhMTlcdTZjMzdcdTZmMDJcdTc0ZTJcdTc5''@;'; + put 'put ''NjhcdTg4NjhcdThhNTVcdThjNzlcdTVlZGZcdTYzY2ZcdTc1YzVcdTc5ZDJcdTgyZDdcdTkzMjhcdTkyZjJcdTg0OWNcdTg2ZWRcdTljMmRcdTU0YzFcdTVmNmNcdTY1OGNcdTZkNWNcdTcwMTVcdThjYTdcdThjZDNcdTk4M2JcdTY1NGZcdTc0ZjZcdTRlMGRcdTRlZDhcdTU3ZTBcdTU5MmJc''@;'; + put 'put ''dTVhNjZcdTViY2NcdTUxYThcdTVlMDNcdTVlOWNcdTYwMTZcdTYyNzZcdTY1NzdcdWZmZmRcdTY1YTdcdTY2NmVcdTZkNmVcdTcyMzZcdTdiMjZcdTgxNTBcdTgxOWFcdTgyOTlcdThiNWNcdThjYTBcdThjZTZcdThkNzRcdTk2MWNcdTk2NDRcdTRmYWVcdTY0YWJcdTZiNjZcdTgyMWVcdTg0''@;'; + put 'put ''NjFcdTg1NmFcdTkwZThcdTVjMDFcdTY5NTNcdTk4YThcdTg0N2FcdTg1NTdcdTRmMGZcdTUyNmZcdTVmYTlcdTVlNDVcdTY3MGRcdTc5OGZcdTgxNzlcdTg5MDdcdTg5ODZcdTZkZjVcdTVmMTdcdTYyNTVcdTZjYjhcdTRlY2ZcdTcyNjlcdTliOTJcdTUyMDZcdTU0M2JcdTU2NzRcdTU4YjNc''@;'; + put 'put ''dTYxYTRcdTYyNmVcdTcxMWFcdTU5NmVcdTdjODlcdTdjZGVcdTdkMWJcdTk2ZjBcdTY1ODdcdTgwNWVcdTRlMTlcdTRmNzVcdTUxNzVcdTU4NDBcdTVlNjNcdTVlNzNcdTVmMGFcdTY3YzRcdTRlMjZcdTg1M2RcdTk1ODlcdTk2NWJcdTdjNzNcdTk4MDFcdTUwZmJcdTU4YzFcdTc2NTZcdTc4''@;'; + put 'put ''YTdcdTUyMjVcdTc3YTVcdTg1MTFcdTdiODZcdTUwNGZcdTU5MDlcdTcyNDdcdTdiYzdcdTdkZThcdThmYmFcdThmZDRcdTkwNGRcdTRmYmZcdTUyYzlcdTVhMjlcdTVmMDFcdTk3YWRcdTRmZGRcdTgyMTdcdTkyZWFcdTU3MDNcdTYzNTVcdTZiNjlcdTc1MmJcdTg4ZGNcdThmMTRcdTdhNDJc''@;'; + put 'put ''dTUyZGZcdTU4OTNcdTYxNTVcdTYyMGFcdTY2YWVcdTZiY2RcdTdjM2ZcdTgzZTlcdTUwMjNcdTRmZjhcdTUzMDVcdTU0NDZcdTU4MzFcdTU5NDlcdTViOWRcdTVjZjBcdTVjZWZcdTVkMjlcdTVlOTZcdTYyYjFcdTYzNjdcdTY1M2VcdTY1YjlcdTY3MGJcdWZmZmRcdWZmZmRcdWZmZmQiLnNw''@;'; + put 'put ''bGl0KCIiKSxFPTA7RSE9QlsxNDldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ5XVtFXV09MzgxNDQrRSxMWzM4MTQ0K0VdPUJbMTQ5XVtFXSk7Zm9yKEJbMTUwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHU2Y2Q1XHU2Y2UxXHU3MGY5XHU3ODMyXHU3ZTJiXHU4MGRlXHU4MmIzXHU4NDBjXHU4NGVjXHU4NzAyXHU4OTEyXHU4YTJhXHU4YzRhXHU5MGE2XHU5MmQyXHU5OGZkXHU5Y2YzXHU5ZDZjXHU0ZTRmXHU0ZWExXHU1MDhkXHU1MjU2XHU1NzRhXHU1OWE4XHU1ZTNkXHU1''@;'; + put 'put ''ZmQ4XHU1ZmQ5XHU2MjNmXHU2NmI0XHU2NzFiXHU2N2QwXHU2OGQyXHU1MTkyXHU3ZDIxXHU4MGFhXHU4MWE4XHU4YjAwXHU4YzhjXHU4Y2JmXHU5MjdlXHU5NjMyXHU1NDIwXHU5ODJjXHU1MzE3XHU1MGQ1XHU1MzVjXHU1OGE4XHU2NGIyXHU2NzM0XHU3MjY3XHU3NzY2XHU3YTQ2XHU5MWU2''@;'; + put 'put ''XHU1MmMzXHU2Y2ExXHU2Yjg2XHU1ODAwXHU1ZTRjXHU1OTU0XHU2NzJjXHU3ZmZiXHU1MWUxXHU3NmM2XHVmZmZkXHU2NDY5XHU3OGU4XHU5YjU0XHU5ZWJiXHU1N2NiXHU1OWI5XHU2NjI3XHU2NzlhXHU2YmNlXHU1NGU5XHU2OWQ5XHU1ZTU1XHU4MTljXHU2Nzk1XHU5YmFhXHU2N2ZlXHU5''@;'; + put 'put ''YzUyXHU2ODVkXHU0ZWE2XHU0ZmUzXHU1M2M4XHU2MmI5XHU2NzJiXHU2Y2FiXHU4ZmM0XHU0ZmFkXHU3ZTZkXHU5ZWJmXHU0ZTA3XHU2MTYyXHU2ZTgwXHU2ZjJiXHU4NTEzXHU1NDczXHU2NzJhXHU5YjQ1XHU1ZGYzXHU3Yjk1XHU1Y2FjXHU1YmM2XHU4NzFjXHU2ZTRhXHU4NGQxXHU3YTE0''@;'; + put 'put ''XHU4MTA4XHU1OTk5XHU3YzhkXHU2YzExXHU3NzIwXHU1MmQ5XHU1OTIyXHU3MTIxXHU3MjVmXHU3N2RiXHU5NzI3XHU5ZDYxXHU2OTBiXHU1YTdmXHU1YTE4XHU1MWE1XHU1NDBkXHU1NDdkXHU2NjBlXHU3NmRmXHU4ZmY3XHU5Mjk4XHU5Y2Y0XHU1OWVhXHU3MjVkXHU2ZWM1XHU1MTRkXHU2''@;'; + put 'put ''OGM5XHU3ZGJmXHU3ZGVjXHU5NzYyXHU5ZWJhXHU2NDc4XHU2YTIxXHU4MzAyXHU1OTg0XHU1YjVmXHU2YmRiXHU3MzFiXHU3NmYyXHU3ZGIyXHU4MDE3XHU4NDk5XHU1MTMyXHU2NzI4XHU5ZWQ5XHU3NmVlXHU2NzYyXHU1MmZmXHU5OTA1XHU1YzI0XHU2MjNiXHU3YzdlXHU4Y2IwXHU1NTRm''@;'; + put 'put ''XHU2MGI2XHU3ZDBiXHU5NTgwXHU1MzAxXHU0ZTVmXHU1MWI2XHU1OTFjXHU3MjNhXHU4MDM2XHU5MWNlXHU1ZjI1XHU3N2UyXHU1Mzg0XHU1Zjc5XHU3ZDA0XHU4NWFjXHU4YTMzXHU4ZThkXHU5NzU2XHU2N2YzXHU4NWFlXHU5NDUzXHU2MTA5XHU2MTA4XHU2Y2I5XHU3NjUyXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTUwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1MF1bRV1dPTM4NDAwK0UsTFszODQwMCtFXT1CWzE1MF1bRV0pO2ZvcihCWzE1MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGFlZFx1OGYzOFx1NTUyZlx1NGY1MVx1NTEyYVx1NTJjN1x1NTNjYlx1NWJhNVx1NWU3ZFx1NjBhMFx1NjE4Mlx1NjNkNlx1NjcwOVx1NjdkYVx1NmU2N1x1NmQ4Y1x1NzMzNlx1NzMzN1x1NzUzMVx1Nzk1MFx1ODhkNVx1OGE5OFx1OTA0YVx1''@;'; + put 'put ''OTA5MVx1OTBmNVx1OTZjNFx1ODc4ZFx1NTkxNVx1NGU4OFx1NGY1OVx1NGUwZVx1OGE4OVx1OGYzZlx1OTgxMFx1NTBhZFx1NWU3Y1x1NTk5Nlx1NWJiOVx1NWViOFx1NjNkYVx1NjNmYVx1NjRjMVx1NjZkY1x1Njk0YVx1NjlkOFx1NmQwYlx1NmViNlx1NzE5NFx1NzUyOFx1N2FhZlx1N2Y4''@;'; + put 'put ''YVx1ODAwMFx1ODQ0OVx1ODRjOVx1ODk4MVx1OGIyMVx1OGUwYVx1OTA2NVx1OTY3ZFx1OTkwYVx1NjE3ZVx1NjI5MVx1NmIzMlx1ZmZmZFx1NmM4M1x1NmQ3NFx1N2ZjY1x1N2ZmY1x1NmRjMFx1N2Y4NVx1ODdiYVx1ODhmOFx1Njc2NVx1ODNiMVx1OTgzY1x1OTZmN1x1NmQxYlx1N2Q2MVx1''@;'; + put 'put ''ODQzZFx1OTE2YVx1NGU3MVx1NTM3NVx1NWQ1MFx1NmIwNFx1NmZlYlx1ODVjZFx1ODYyZFx1ODlhN1x1NTIyOVx1NTQwZlx1NWM2NVx1Njc0ZVx1NjhhOFx1NzQwNlx1NzQ4M1x1NzVlMlx1ODhjZlx1ODhlMVx1OTFjY1x1OTZlMlx1OTY3OFx1NWY4Ylx1NzM4N1x1N2FjYlx1ODQ0ZVx1NjNh''@;'; + put 'put ''MFx1NzU2NVx1NTI4OVx1NmQ0MVx1NmU5Y1x1NzQwOVx1NzU1OVx1Nzg2Ylx1N2M5Mlx1OTY4Nlx1N2FkY1x1OWY4ZFx1NGZiNlx1NjE2ZVx1NjVjNVx1ODY1Y1x1NGU4Nlx1NGVhZVx1NTBkYVx1NGUyMVx1NTFjY1x1NWJlZVx1NjU5OVx1Njg4MVx1NmRiY1x1NzMxZlx1NzY0Mlx1NzdhZFx1''@;'; + put 'put ''N2ExY1x1N2NlN1x1ODI2Zlx1OGFkMlx1OTA3Y1x1OTFjZlx1OTY3NVx1OTgxOFx1NTI5Ylx1N2RkMVx1NTAyYlx1NTM5OFx1Njc5N1x1NmRjYlx1NzFkMFx1NzQzM1x1ODFlOFx1OGYyYVx1OTZhM1x1OWM1N1x1OWU5Zlx1NzQ2MFx1NTg0MVx1NmQ5OVx1N2QyZlx1OTg1ZVx1NGVlNFx1NGYz''@;'; + put 'put ''Nlx1NGY4Ylx1NTFiN1x1NTJiMVx1NWRiYVx1NjAxY1x1NzNiMlx1NzkzY1x1ODJkM1x1OTIzNFx1OTZiN1x1OTZmNlx1OTcwYVx1OWU5N1x1OWY2Mlx1NjZhNlx1NmI3NFx1NTIxN1x1NTJhM1x1NzBjOFx1ODhjMlx1NWVjOVx1NjA0Ylx1NjE5MFx1NmYyM1x1NzE0OVx1N2MzZVx1N2RmNFx1''@;'; + put 'put ''ODA2Zlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTUxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTFdW0VdXT0zODY1NitFLExbMzg2NTYrRV09QlsxNTFdW0VdKTtmb3IoQlsxNTJdPSJcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg0ZWVcdTkwMjNcdTkzMmNcdTU0NDJcdTliNmZcdTZhZDNcdTcwODlcdThjYzJcdThkZWZcdTk3MzJcdTUyYjRcdTVhNDFcdTVlY2FcdTVmMDRcdTY3MTdcdTY5N2NcdTY5OTRcdTZkNmFcdTZmMGZcdTcyNjJcdTcyZmNc''@;'; + put 'put ''dTdiZWRcdTgwMDFcdTgwN2VcdTg3NGJcdTkwY2VcdTUxNmRcdTllOTNcdTc5ODRcdTgwOGJcdTkzMzJcdThhZDZcdTUwMmRcdTU0OGNcdThhNzFcdTZiNmFcdThjYzRcdTgxMDdcdTYwZDFcdTY3YTBcdTlkZjJcdTRlOTlcdTRlOThcdTljMTBcdThhNmJcdTg1YzFcdTg1NjhcdTY5MDBcdTZl''@;'; + put 'put ''N2VcdTc4OTdcdTgxNTVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVmMGNcdTRlMTBcdTRlMTVcdTRlMmFcdTRlMzFcdTRlMzZcdTRlM2NcdTRlM2ZcdTRl''@;'; + put 'put ''NDJcdTRlNTZcdTRlNThcdTRlODJcdTRlODVcdThjNmJcdTRlOGFcdTgyMTJcdTVmMGRcdTRlOGVcdTRlOWVcdTRlOWZcdTRlYTBcdTRlYTJcdTRlYjBcdTRlYjNcdTRlYjZcdTRlY2VcdTRlY2RcdTRlYzRcdTRlYzZcdTRlYzJcdTRlZDdcdTRlZGVcdTRlZWRcdTRlZGZcdTRlZjdcdTRmMDlc''@;'; + put 'put ''dTRmNWFcdTRmMzBcdTRmNWJcdTRmNWRcdTRmNTdcdTRmNDdcdTRmNzZcdTRmODhcdTRmOGZcdTRmOThcdTRmN2JcdTRmNjlcdTRmNzBcdTRmOTFcdTRmNmZcdTRmODZcdTRmOTZcdTUxMThcdTRmZDRcdTRmZGZcdTRmY2VcdTRmZDhcdTRmZGJcdTRmZDFcdTRmZGFcdTRmZDBcdTRmZTRcdTRm''@;'; + put 'put ''ZTVcdTUwMWFcdTUwMjhcdTUwMTRcdTUwMmFcdTUwMjVcdTUwMDVcdTRmMWNcdTRmZjZcdTUwMjFcdTUwMjlcdTUwMmNcdTRmZmVcdTRmZWZcdTUwMTFcdTUwMDZcdTUwNDNcdTUwNDdcdTY3MDNcdTUwNTVcdTUwNTBcdTUwNDhcdTUwNWFcdTUwNTZcdTUwNmNcdTUwNzhcdTUwODBcdTUwOWFc''@;'; + put 'put ''dTUwODVcdTUwYjRcdTUwYjJcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTUyXVtFXV09Mzg5MTIrRSxMWzM4OTEyK0VdPUJbMTUyXVtFXSk7Zm9yKEJbMTUzXT0iXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MGM5XHU1MGNhXHU1MGIzXHU1MGMyXHU1MGQ2XHU1MGRlXHU1MGU1XHU1MGVkXHU1MGUzXHU1MGVlXHU1MGY5XHU1MGY1XHU1MTA5XHU1MTAxXHU1MTAyXHU1MTE2XHU1MTE1XHU1MTE0XHU1MTFh''@;'; + put 'put ''XHU1MTIxXHU1MTNhXHU1MTM3XHU1MTNjXHU1MTNiXHU1MTNmXHU1MTQwXHU1MTUyXHU1MTRjXHU1MTU0XHU1MTYyXHU3YWY4XHU1MTY5XHU1MTZhXHU1MTZlXHU1MTgwXHU1MTgyXHU1NmQ4XHU1MThjXHU1MTg5XHU1MThmXHU1MTkxXHU1MTkzXHU1MTk1XHU1MTk2XHU1MWE0XHU1MWE2XHU1''@;'; + put 'put ''MWEyXHU1MWE5XHU1MWFhXHU1MWFiXHU1MWIzXHU1MWIxXHU1MWIyXHU1MWIwXHU1MWI1XHU1MWJkXHU1MWM1XHU1MWM5XHU1MWRiXHU1MWUwXHU4NjU1XHU1MWU5XHU1MWVkXHVmZmZkXHU1MWYwXHU1MWY1XHU1MWZlXHU1MjA0XHU1MjBiXHU1MjE0XHU1MjBlXHU1MjI3XHU1MjJhXHU1MjJl''@;'; + put 'put ''XHU1MjMzXHU1MjM5XHU1MjRmXHU1MjQ0XHU1MjRiXHU1MjRjXHU1MjVlXHU1MjU0XHU1MjZhXHU1Mjc0XHU1MjY5XHU1MjczXHU1MjdmXHU1MjdkXHU1MjhkXHU1Mjk0XHU1MjkyXHU1MjcxXHU1Mjg4XHU1MjkxXHU4ZmE4XHU4ZmE3XHU1MmFjXHU1MmFkXHU1MmJjXHU1MmI1XHU1MmMxXHU1''@;'; + put 'put ''MmNkXHU1MmQ3XHU1MmRlXHU1MmUzXHU1MmU2XHU5OGVkXHU1MmUwXHU1MmYzXHU1MmY1XHU1MmY4XHU1MmY5XHU1MzA2XHU1MzA4XHU3NTM4XHU1MzBkXHU1MzEwXHU1MzBmXHU1MzE1XHU1MzFhXHU1MzIzXHU1MzJmXHU1MzMxXHU1MzMzXHU1MzM4XHU1MzQwXHU1MzQ2XHU1MzQ1XHU0ZTE3''@;'; + put 'put ''XHU1MzQ5XHU1MzRkXHU1MWQ2XHU1MzVlXHU1MzY5XHU1MzZlXHU1OTE4XHU1MzdiXHU1Mzc3XHU1MzgyXHU1Mzk2XHU1M2EwXHU1M2E2XHU1M2E1XHU1M2FlXHU1M2IwXHU1M2I2XHU1M2MzXHU3YzEyXHU5NmQ5XHU1M2RmXHU2NmZjXHU3MWVlXHU1M2VlXHU1M2U4XHU1M2VkXHU1M2ZhXHU1''@;'; + put 'put ''NDAxXHU1NDNkXHU1NDQwXHU1NDJjXHU1NDJkXHU1NDNjXHU1NDJlXHU1NDM2XHU1NDI5XHU1NDFkXHU1NDRlXHU1NDhmXHU1NDc1XHU1NDhlXHU1NDVmXHU1NDcxXHU1NDc3XHU1NDcwXHU1NDkyXHU1NDdiXHU1NDgwXHU1NDc2XHU1NDg0XHU1NDkwXHU1NDg2XHU1NGM3XHU1NGEyXHU1NGI4''@;'; + put 'put ''XHU1NGE1XHU1NGFjXHU1NGM0XHU1NGM4XHU1NGE4XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTUzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1M11bRV1dPTM5MTY4K0UsTFszOTE2OCtFXT1CWzE1M11bRV0pO2Zv''@;'; + put 'put ''cihCWzE1NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTRhYlx1NTRjMlx1NTRhNFx1NTRiZVx1NTRiY1x1NTRkOFx1NTRlNVx1NTRlNlx1NTUwZlx1NTUxNFx1NTRmZFx1NTRlZVx1NTRlZFx1NTRmYVx1NTRlMlx1NTUzOVx1NTU0''@;'; + put 'put ''MFx1NTU2M1x1NTU0Y1x1NTUyZVx1NTU1Y1x1NTU0NVx1NTU1Nlx1NTU1N1x1NTUzOFx1NTUzM1x1NTU1ZFx1NTU5OVx1NTU4MFx1NTRhZlx1NTU4YVx1NTU5Zlx1NTU3Ylx1NTU3ZVx1NTU5OFx1NTU5ZVx1NTVhZVx1NTU3Y1x1NTU4M1x1NTVhOVx1NTU4N1x1NTVhOFx1NTVkYVx1NTVjNVx1''@;'; + put 'put ''NTVkZlx1NTVjNFx1NTVkY1x1NTVlNFx1NTVkNFx1NTYxNFx1NTVmN1x1NTYxNlx1NTVmZVx1NTVmZFx1NTYxYlx1NTVmOVx1NTY0ZVx1NTY1MFx1NzFkZlx1NTYzNFx1NTYzNlx1NTYzMlx1NTYzOFx1ZmZmZFx1NTY2Ylx1NTY2NFx1NTYyZlx1NTY2Y1x1NTY2YVx1NTY4Nlx1NTY4MFx1NTY4''@;'; + put 'put ''YVx1NTZhMFx1NTY5NFx1NTY4Zlx1NTZhNVx1NTZhZVx1NTZiNlx1NTZiNFx1NTZjMlx1NTZiY1x1NTZjMVx1NTZjM1x1NTZjMFx1NTZjOFx1NTZjZVx1NTZkMVx1NTZkM1x1NTZkN1x1NTZlZVx1NTZmOVx1NTcwMFx1NTZmZlx1NTcwNFx1NTcwOVx1NTcwOFx1NTcwYlx1NTcwZFx1NTcxM1x1''@;'; + put 'put ''NTcxOFx1NTcxNlx1NTVjN1x1NTcxY1x1NTcyNlx1NTczN1x1NTczOFx1NTc0ZVx1NTczYlx1NTc0MFx1NTc0Zlx1NTc2OVx1NTdjMFx1NTc4OFx1NTc2MVx1NTc3Zlx1NTc4OVx1NTc5M1x1NTdhMFx1NTdiM1x1NTdhNFx1NTdhYVx1NTdiMFx1NTdjM1x1NTdjNlx1NTdkNFx1NTdkMlx1NTdk''@;'; + put 'put ''M1x1NTgwYVx1NTdkNlx1NTdlM1x1NTgwYlx1NTgxOVx1NTgxZFx1NTg3Mlx1NTgyMVx1NTg2Mlx1NTg0Ylx1NTg3MFx1NmJjMFx1NTg1Mlx1NTgzZFx1NTg3OVx1NTg4NVx1NThiOVx1NTg5Zlx1NThhYlx1NThiYVx1NThkZVx1NThiYlx1NThiOFx1NThhZVx1NThjNVx1NThkM1x1NThkMVx1''@;'; + put 'put ''NThkN1x1NThkOVx1NThkOFx1NThlNVx1NThkY1x1NThlNFx1NThkZlx1NThlZlx1NThmYVx1NThmOVx1NThmYlx1NThmY1x1NThmZFx1NTkwMlx1NTkwYVx1NTkxMFx1NTkxYlx1NjhhNlx1NTkyNVx1NTkyY1x1NTkyZFx1NTkzMlx1NTkzOFx1NTkzZVx1N2FkMlx1NTk1NVx1NTk1MFx1NTk0''@;'; + put 'put ''ZVx1NTk1YVx1NTk1OFx1NTk2Mlx1NTk2MFx1NTk2N1x1NTk2Y1x1NTk2OVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTRdW0VdXT0zOTQyNCtFLExbMzk0MjQrRV09''@;'; + put 'put ''QlsxNTRdW0VdKTtmb3IoQlsxNTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU5NzhcdTU5ODFcdTU5OWRcdTRmNWVcdTRmYWJcdTU5YTNcdTU5YjJcdTU5YzZcdTU5ZThcdTU5ZGNcdTU5OGRcdTU5ZDlcdTU5ZGFcdTVhMjVcdTVh''@;'; + put 'put ''MWZcdTVhMTFcdTVhMWNcdTVhMDlcdTVhMWFcdTVhNDBcdTVhNmNcdTVhNDlcdTVhMzVcdTVhMzZcdTVhNjJcdTVhNmFcdTVhOWFcdTVhYmNcdTVhYmVcdTVhY2JcdTVhYzJcdTVhYmRcdTVhZTNcdTVhZDdcdTVhZTZcdTVhZTlcdTVhZDZcdTVhZmFcdTVhZmJcdTViMGNcdTViMGJcdTViMTZc''@;'; + put 'put ''dTViMzJcdTVhZDBcdTViMmFcdTViMzZcdTViM2VcdTViNDNcdTViNDVcdTViNDBcdTViNTFcdTViNTVcdTViNWFcdTViNWJcdTViNjVcdTViNjlcdTViNzBcdTViNzNcdTViNzVcdTViNzhcdTY1ODhcdTViN2FcdTViODBcdWZmZmRcdTViODNcdTViYTZcdTViYjhcdTViYzNcdTViYzdcdTVi''@;'; + put 'put ''YzlcdTViZDRcdTViZDBcdTViZTRcdTViZTZcdTViZTJcdTViZGVcdTViZTVcdTViZWJcdTViZjBcdTViZjZcdTViZjNcdTVjMDVcdTVjMDdcdTVjMDhcdTVjMGRcdTVjMTNcdTVjMjBcdTVjMjJcdTVjMjhcdTVjMzhcdTVjMzlcdTVjNDFcdTVjNDZcdTVjNGVcdTVjNTNcdTVjNTBcdTVjNGZc''@;'; + put 'put ''dTViNzFcdTVjNmNcdTVjNmVcdTRlNjJcdTVjNzZcdTVjNzlcdTVjOGNcdTVjOTFcdTVjOTRcdTU5OWJcdTVjYWJcdTVjYmJcdTVjYjZcdTVjYmNcdTVjYjdcdTVjYzVcdTVjYmVcdTVjYzdcdTVjZDlcdTVjZTlcdTVjZmRcdTVjZmFcdTVjZWRcdTVkOGNcdTVjZWFcdTVkMGJcdTVkMTVcdTVk''@;'; + put 'put ''MTdcdTVkNWNcdTVkMWZcdTVkMWJcdTVkMTFcdTVkMTRcdTVkMjJcdTVkMWFcdTVkMTlcdTVkMThcdTVkNGNcdTVkNTJcdTVkNGVcdTVkNGJcdTVkNmNcdTVkNzNcdTVkNzZcdTVkODdcdTVkODRcdTVkODJcdTVkYTJcdTVkOWRcdTVkYWNcdTVkYWVcdTVkYmRcdTVkOTBcdTVkYjdcdTVkYmNc''@;'; + put 'put ''dTVkYzlcdTVkY2RcdTVkZDNcdTVkZDJcdTVkZDZcdTVkZGJcdTVkZWJcdTVkZjJcdTVkZjVcdTVlMGJcdTVlMWFcdTVlMTlcdTVlMTFcdTVlMWJcdTVlMzZcdTVlMzdcdTVlNDRcdTVlNDNcdTVlNDBcdTVlNGVcdTVlNTdcdTVlNTRcdTVlNWZcdTVlNjJcdTVlNjRcdTVlNDdcdTVlNzVcdTVl''@;'; + put 'put ''NzZcdTVlN2FcdTllYmNcdTVlN2ZcdTVlYTBcdTVlYzFcdTVlYzJcdTVlYzhcdTVlZDBcdTVlY2ZcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU1XVtFXV09Mzk2ODAr''@;'; + put 'put ''RSxMWzM5NjgwK0VdPUJbMTU1XVtFXSk7Zm9yKEJbMTU2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZWQ2XHU1ZWUzXHU1ZWRkXHU1ZWRhXHU1ZWRiXHU1ZWUyXHU1ZWUxXHU1ZWU4XHU1ZWU5XHU1ZWVjXHU1ZWYxXHU1ZWYzXHU1''@;'; + put 'put ''ZWYwXHU1ZWY0XHU1ZWY4XHU1ZWZlXHU1ZjAzXHU1ZjA5XHU1ZjVkXHU1ZjVjXHU1ZjBiXHU1ZjExXHU1ZjE2XHU1ZjI5XHU1ZjJkXHU1ZjM4XHU1ZjQxXHU1ZjQ4XHU1ZjRjXHU1ZjRlXHU1ZjJmXHU1ZjUxXHU1ZjU2XHU1ZjU3XHU1ZjU5XHU1ZjYxXHU1ZjZkXHU1ZjczXHU1Zjc3XHU1Zjgz''@;'; + put 'put ''XHU1ZjgyXHU1ZjdmXHU1ZjhhXHU1Zjg4XHU1ZjkxXHU1Zjg3XHU1ZjllXHU1Zjk5XHU1Zjk4XHU1ZmEwXHU1ZmE4XHU1ZmFkXHU1ZmJjXHU1ZmQ2XHU1ZmZiXHU1ZmU0XHU1ZmY4XHU1ZmYxXHU1ZmRkXHU2MGIzXHU1ZmZmXHU2MDIxXHU2MDYwXHVmZmZkXHU2MDE5XHU2MDEwXHU2MDI5XHU2''@;'; + put 'put ''MDBlXHU2MDMxXHU2MDFiXHU2MDE1XHU2MDJiXHU2MDI2XHU2MDBmXHU2MDNhXHU2MDVhXHU2MDQxXHU2MDZhXHU2MDc3XHU2MDVmXHU2MDRhXHU2MDQ2XHU2MDRkXHU2MDYzXHU2MDQzXHU2MDY0XHU2MDQyXHU2MDZjXHU2MDZiXHU2MDU5XHU2MDgxXHU2MDhkXHU2MGU3XHU2MDgzXHU2MDlh''@;'; + put 'put ''XHU2MDg0XHU2MDliXHU2MDk2XHU2MDk3XHU2MDkyXHU2MGE3XHU2MDhiXHU2MGUxXHU2MGI4XHU2MGUwXHU2MGQzXHU2MGI0XHU1ZmYwXHU2MGJkXHU2MGM2XHU2MGI1XHU2MGQ4XHU2MTRkXHU2MTE1XHU2MTA2XHU2MGY2XHU2MGY3XHU2MTAwXHU2MGY0XHU2MGZhXHU2MTAzXHU2MTIxXHU2''@;'; + put 'put ''MGZiXHU2MGYxXHU2MTBkXHU2MTBlXHU2MTQ3XHU2MTNlXHU2MTI4XHU2MTI3XHU2MTRhXHU2MTNmXHU2MTNjXHU2MTJjXHU2MTM0XHU2MTNkXHU2MTQyXHU2MTQ0XHU2MTczXHU2MTc3XHU2MTU4XHU2MTU5XHU2MTVhXHU2MTZiXHU2MTc0XHU2MTZmXHU2MTY1XHU2MTcxXHU2MTVmXHU2MTVk''@;'; + put 'put ''XHU2MTUzXHU2MTc1XHU2MTk5XHU2MTk2XHU2MTg3XHU2MWFjXHU2MTk0XHU2MTlhXHU2MThhXHU2MTkxXHU2MWFiXHU2MWFlXHU2MWNjXHU2MWNhXHU2MWM5XHU2MWY3XHU2MWM4XHU2MWMzXHU2MWM2XHU2MWJhXHU2MWNiXHU3Zjc5XHU2MWNkXHU2MWU2XHU2MWUzXHU2MWY2XHU2MWZhXHU2''@;'; + put 'put ''MWY0XHU2MWZmXHU2MWZkXHU2MWZjXHU2MWZlXHU2MjAwXHU2MjA4XHU2MjA5XHU2MjBkXHU2MjBjXHU2MjE0XHU2MjFiXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1''@;'; + put 'put ''Nl1bRV1dPTM5OTM2K0UsTFszOTkzNitFXT1CWzE1Nl1bRV0pO2ZvcihCWzE1N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjIxZVx1NjIyMVx1NjIyYVx1NjIyZVx1NjIzMFx1NjIzMlx1NjIzM1x1NjI0MVx1NjI0ZVx1NjI1ZVx1''@;'; + put 'put ''NjI2M1x1NjI1Ylx1NjI2MFx1NjI2OFx1NjI3Y1x1NjI4Mlx1NjI4OVx1NjI3ZVx1NjI5Mlx1NjI5M1x1NjI5Nlx1NjJkNFx1NjI4M1x1NjI5NFx1NjJkN1x1NjJkMVx1NjJiYlx1NjJjZlx1NjJmZlx1NjJjNlx1NjRkNFx1NjJjOFx1NjJkY1x1NjJjY1x1NjJjYVx1NjJjMlx1NjJjN1x1NjI5''@;'; + put 'put ''Ylx1NjJjOVx1NjMwY1x1NjJlZVx1NjJmMVx1NjMyN1x1NjMwMlx1NjMwOFx1NjJlZlx1NjJmNVx1NjM1MFx1NjMzZVx1NjM0ZFx1NjQxY1x1NjM0Zlx1NjM5Nlx1NjM4ZVx1NjM4MFx1NjNhYlx1NjM3Nlx1NjNhM1x1NjM4Zlx1NjM4OVx1NjM5Zlx1NjNiNVx1NjM2Ylx1ZmZmZFx1NjM2OVx1''@;'; + put 'put ''NjNiZVx1NjNlOVx1NjNjMFx1NjNjNlx1NjNlM1x1NjNjOVx1NjNkMlx1NjNmNlx1NjNjNFx1NjQxNlx1NjQzNFx1NjQwNlx1NjQxM1x1NjQyNlx1NjQzNlx1NjUxZFx1NjQxN1x1NjQyOFx1NjQwZlx1NjQ2N1x1NjQ2Zlx1NjQ3Nlx1NjQ0ZVx1NjUyYVx1NjQ5NVx1NjQ5M1x1NjRhNVx1NjRh''@;'; + put 'put ''OVx1NjQ4OFx1NjRiY1x1NjRkYVx1NjRkMlx1NjRjNVx1NjRjN1x1NjRiYlx1NjRkOFx1NjRjMlx1NjRmMVx1NjRlN1x1ODIwOVx1NjRlMFx1NjRlMVx1NjJhY1x1NjRlM1x1NjRlZlx1NjUyY1x1NjRmNlx1NjRmNFx1NjRmMlx1NjRmYVx1NjUwMFx1NjRmZFx1NjUxOFx1NjUxY1x1NjUwNVx1''@;'; + put 'put ''NjUyNFx1NjUyM1x1NjUyYlx1NjUzNFx1NjUzNVx1NjUzN1x1NjUzNlx1NjUzOFx1NzU0Ylx1NjU0OFx1NjU1Nlx1NjU1NVx1NjU0ZFx1NjU1OFx1NjU1ZVx1NjU1ZFx1NjU3Mlx1NjU3OFx1NjU4Mlx1NjU4M1x1OGI4YVx1NjU5Ylx1NjU5Zlx1NjVhYlx1NjViN1x1NjVjM1x1NjVjNlx1NjVj''@;'; + put 'put ''MVx1NjVjNFx1NjVjY1x1NjVkMlx1NjVkYlx1NjVkOVx1NjVlMFx1NjVlMVx1NjVmMVx1Njc3Mlx1NjYwYVx1NjYwM1x1NjVmYlx1Njc3M1x1NjYzNVx1NjYzNlx1NjYzNFx1NjYxY1x1NjY0Zlx1NjY0NFx1NjY0OVx1NjY0MVx1NjY1ZVx1NjY1ZFx1NjY2NFx1NjY2N1x1NjY2OFx1NjY1Zlx1''@;'; + put 'put ''NjY2Mlx1NjY3MFx1NjY4M1x1NjY4OFx1NjY4ZVx1NjY4OVx1NjY4NFx1NjY5OFx1NjY5ZFx1NjZjMVx1NjZiOVx1NjZjOVx1NjZiZVx1NjZiY1x1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU3XVtFXS5jaGFyQ29kZUF0''@;'; + put 'put ''KDApJiYobWVbQlsxNTddW0VdXT00MDE5MitFLExbNDAxOTIrRV09QlsxNTddW0VdKTtmb3IoQlsxNThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY2YzRcdTY2YjhcdTY2ZDZcdTY2ZGFcdTY2ZTBcdTY2M2ZcdTY2ZTZcdTY2ZTlc''@;'; + put 'put ''dTY2ZjBcdTY2ZjVcdTY2ZjdcdTY3MGZcdTY3MTZcdTY3MWVcdTY3MjZcdTY3MjdcdTk3MzhcdTY3MmVcdTY3M2ZcdTY3MzZcdTY3NDFcdTY3MzhcdTY3MzdcdTY3NDZcdTY3NWVcdTY3NjBcdTY3NTlcdTY3NjNcdTY3NjRcdTY3ODlcdTY3NzBcdTY3YTlcdTY3N2NcdTY3NmFcdTY3OGNcdTY3''@;'; + put 'put ''OGJcdTY3YTZcdTY3YTFcdTY3ODVcdTY3YjdcdTY3ZWZcdTY3YjRcdTY3ZWNcdTY3YjNcdTY3ZTlcdTY3YjhcdTY3ZTRcdTY3ZGVcdTY3ZGRcdTY3ZTJcdTY3ZWVcdTY3YjlcdTY3Y2VcdTY3YzZcdTY3ZTdcdTZhOWNcdTY4MWVcdTY4NDZcdTY4MjlcdTY4NDBcdTY4NGRcdTY4MzJcdTY4NGVc''@;'; + put 'put ''dWZmZmRcdTY4YjNcdTY4MmJcdTY4NTlcdTY4NjNcdTY4NzdcdTY4N2ZcdTY4OWZcdTY4OGZcdTY4YWRcdTY4OTRcdTY4OWRcdTY4OWJcdTY4ODNcdTZhYWVcdTY4YjlcdTY4NzRcdTY4YjVcdTY4YTBcdTY4YmFcdTY5MGZcdTY4OGRcdTY4N2VcdTY5MDFcdTY4Y2FcdTY5MDhcdTY4ZDhcdTY5''@;'; + put 'put ''MjJcdTY5MjZcdTY4ZTFcdTY5MGNcdTY4Y2RcdTY4ZDRcdTY4ZTdcdTY4ZDVcdTY5MzZcdTY5MTJcdTY5MDRcdTY4ZDdcdTY4ZTNcdTY5MjVcdTY4ZjlcdTY4ZTBcdTY4ZWZcdTY5MjhcdTY5MmFcdTY5MWFcdTY5MjNcdTY5MjFcdTY4YzZcdTY5NzlcdTY5NzdcdTY5NWNcdTY5NzhcdTY5NmJc''@;'; + put 'put ''dTY5NTRcdTY5N2VcdTY5NmVcdTY5MzlcdTY5NzRcdTY5M2RcdTY5NTlcdTY5MzBcdTY5NjFcdTY5NWVcdTY5NWRcdTY5ODFcdTY5NmFcdTY5YjJcdTY5YWVcdTY5ZDBcdTY5YmZcdTY5YzFcdTY5ZDNcdTY5YmVcdTY5Y2VcdTViZThcdTY5Y2FcdTY5ZGRcdTY5YmJcdTY5YzNcdTY5YTdcdTZh''@;'; + put 'put ''MmVcdTY5OTFcdTY5YTBcdTY5OWNcdTY5OTVcdTY5YjRcdTY5ZGVcdTY5ZThcdTZhMDJcdTZhMWJcdTY5ZmZcdTZiMGFcdTY5ZjlcdTY5ZjJcdTY5ZTdcdTZhMDVcdTY5YjFcdTZhMWVcdTY5ZWRcdTZhMTRcdTY5ZWJcdTZhMGFcdTZhMTJcdTZhYzFcdTZhMjNcdTZhMTNcdTZhNDRcdTZhMGNc''@;'; + put 'put ''dTZhNzJcdTZhMzZcdTZhNzhcdTZhNDdcdTZhNjJcdTZhNTlcdTZhNjZcdTZhNDhcdTZhMzhcdTZhMjJcdTZhOTBcdTZhOGRcdTZhYTBcdTZhODRcdTZhYTJcdTZhYTNcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNThdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1OF1b''@;'; + put 'put ''RV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU4XVtFXV09NDA0NDgrRSxMWzQwNDQ4K0VdPUJbMTU4XVtFXSk7Zm9yKEJbMTU5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YTk3XHU4NjE3XHU2YWJiXHU2YWMzXHU2YWMyXHU2YWI4''@;'; + put 'put ''XHU2YWIzXHU2YWFjXHU2YWRlXHU2YWQxXHU2YWRmXHU2YWFhXHU2YWRhXHU2YWVhXHU2YWZiXHU2YjA1XHU4NjE2XHU2YWZhXHU2YjEyXHU2YjE2XHU5YjMxXHU2YjFmXHU2YjM4XHU2YjM3XHU3NmRjXHU2YjM5XHU5OGVlXHU2YjQ3XHU2YjQzXHU2YjQ5XHU2YjUwXHU2YjU5XHU2YjU0XHU2''@;'; + put 'put ''YjViXHU2YjVmXHU2YjYxXHU2Yjc4XHU2Yjc5XHU2YjdmXHU2YjgwXHU2Yjg0XHU2YjgzXHU2YjhkXHU2Yjk4XHU2Yjk1XHU2YjllXHU2YmE0XHU2YmFhXHU2YmFiXHU2YmFmXHU2YmIyXHU2YmIxXHU2YmIzXHU2YmI3XHU2YmJjXHU2YmM2XHU2YmNiXHU2YmQzXHU2YmRmXHU2YmVjXHU2YmVi''@;'; + put 'put ''XHU2YmYzXHU2YmVmXHVmZmZkXHU5ZWJlXHU2YzA4XHU2YzEzXHU2YzE0XHU2YzFiXHU2YzI0XHU2YzIzXHU2YzVlXHU2YzU1XHU2YzYyXHU2YzZhXHU2YzgyXHU2YzhkXHU2YzlhXHU2YzgxXHU2YzliXHU2YzdlXHU2YzY4XHU2YzczXHU2YzkyXHU2YzkwXHU2Y2M0XHU2Y2YxXHU2Y2QzXHU2''@;'; + put 'put ''Y2JkXHU2Y2Q3XHU2Y2M1XHU2Y2RkXHU2Y2FlXHU2Y2IxXHU2Y2JlXHU2Y2JhXHU2Y2RiXHU2Y2VmXHU2Y2Q5XHU2Y2VhXHU2ZDFmXHU4ODRkXHU2ZDM2XHU2ZDJiXHU2ZDNkXHU2ZDM4XHU2ZDE5XHU2ZDM1XHU2ZDMzXHU2ZDEyXHU2ZDBjXHU2ZDYzXHU2ZDkzXHU2ZDY0XHU2ZDVhXHU2ZDc5''@;'; + put 'put ''XHU2ZDU5XHU2ZDhlXHU2ZDk1XHU2ZmU0XHU2ZDg1XHU2ZGY5XHU2ZTE1XHU2ZTBhXHU2ZGI1XHU2ZGM3XHU2ZGU2XHU2ZGI4XHU2ZGM2XHU2ZGVjXHU2ZGRlXHU2ZGNjXHU2ZGU4XHU2ZGQyXHU2ZGM1XHU2ZGZhXHU2ZGQ5XHU2ZGU0XHU2ZGQ1XHU2ZGVhXHU2ZGVlXHU2ZTJkXHU2ZTZlXHU2''@;'; + put 'put ''ZTJlXHU2ZTE5XHU2ZTcyXHU2ZTVmXHU2ZTNlXHU2ZTIzXHU2ZTZiXHU2ZTJiXHU2ZTc2XHU2ZTRkXHU2ZTFmXHU2ZTQzXHU2ZTNhXHU2ZTRlXHU2ZTI0XHU2ZWZmXHU2ZTFkXHU2ZTM4XHU2ZTgyXHU2ZWFhXHU2ZTk4XHU2ZWM5XHU2ZWI3XHU2ZWQzXHU2ZWJkXHU2ZWFmXHU2ZWM0XHU2ZWIy''@;'; + put 'put ''XHU2ZWQ0XHU2ZWQ1XHU2ZThmXHU2ZWE1XHU2ZWMyXHU2ZTlmXHU2ZjQxXHU2ZjExXHU3MDRjXHU2ZWVjXHU2ZWY4XHU2ZWZlXHU2ZjNmXHU2ZWYyXHU2ZjMxXHU2ZWVmXHU2ZjMyXHU2ZWNjXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU5XS5sZW5ndGg7KytFKTY1''@;'; + put 'put ''NTMzIT09QlsxNTldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1OV1bRV1dPTQwNzA0K0UsTFs0MDcwNCtFXT1CWzE1OV1bRV0pO2ZvcihCWzIyNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmYzZVx1NmYxM1x1NmVmN1x1NmY4''@;'; + put 'put ''Nlx1NmY3YVx1NmY3OFx1NmY4MVx1NmY4MFx1NmY2Zlx1NmY1Ylx1NmZmM1x1NmY2ZFx1NmY4Mlx1NmY3Y1x1NmY1OFx1NmY4ZVx1NmY5MVx1NmZjMlx1NmY2Nlx1NmZiM1x1NmZhM1x1NmZhMVx1NmZhNFx1NmZiOVx1NmZjNlx1NmZhYVx1NmZkZlx1NmZkNVx1NmZlY1x1NmZkNFx1NmZkOFx1''@;'; + put 'put ''NmZmMVx1NmZlZVx1NmZkYlx1NzAwOVx1NzAwYlx1NmZmYVx1NzAxMVx1NzAwMVx1NzAwZlx1NmZmZVx1NzAxYlx1NzAxYVx1NmY3NFx1NzAxZFx1NzAxOFx1NzAxZlx1NzAzMFx1NzAzZVx1NzAzMlx1NzA1MVx1NzA2M1x1NzA5OVx1NzA5Mlx1NzBhZlx1NzBmMVx1NzBhY1x1NzBiOFx1NzBi''@;'; + put 'put ''M1x1NzBhZVx1NzBkZlx1NzBjYlx1NzBkZFx1ZmZmZFx1NzBkOVx1NzEwOVx1NzBmZFx1NzExY1x1NzExOVx1NzE2NVx1NzE1NVx1NzE4OFx1NzE2Nlx1NzE2Mlx1NzE0Y1x1NzE1Nlx1NzE2Y1x1NzE4Zlx1NzFmYlx1NzE4NFx1NzE5NVx1NzFhOFx1NzFhY1x1NzFkN1x1NzFiOVx1NzFiZVx1''@;'; + put 'put ''NzFkMlx1NzFjOVx1NzFkNFx1NzFjZVx1NzFlMFx1NzFlY1x1NzFlN1x1NzFmNVx1NzFmY1x1NzFmOVx1NzFmZlx1NzIwZFx1NzIxMFx1NzIxYlx1NzIyOFx1NzIyZFx1NzIyY1x1NzIzMFx1NzIzMlx1NzIzYlx1NzIzY1x1NzIzZlx1NzI0MFx1NzI0Nlx1NzI0Ylx1NzI1OFx1NzI3NFx1NzI3''@;'; + put 'put ''ZVx1NzI4Mlx1NzI4MVx1NzI4N1x1NzI5Mlx1NzI5Nlx1NzJhMlx1NzJhN1x1NzJiOVx1NzJiMlx1NzJjM1x1NzJjNlx1NzJjNFx1NzJjZVx1NzJkMlx1NzJlMlx1NzJlMFx1NzJlMVx1NzJmOVx1NzJmN1x1NTAwZlx1NzMxN1x1NzMwYVx1NzMxY1x1NzMxNlx1NzMxZFx1NzMzNFx1NzMyZlx1''@;'; + put 'put ''NzMyOVx1NzMyNVx1NzMzZVx1NzM0ZVx1NzM0Zlx1OWVkOFx1NzM1N1x1NzM2YVx1NzM2OFx1NzM3MFx1NzM3OFx1NzM3NVx1NzM3Ylx1NzM3YVx1NzNjOFx1NzNiM1x1NzNjZVx1NzNiYlx1NzNjMFx1NzNlNVx1NzNlZVx1NzNkZVx1NzRhMlx1NzQwNVx1NzQ2Zlx1NzQyNVx1NzNmOFx1NzQz''@;'; + put 'put ''Mlx1NzQzYVx1NzQ1NVx1NzQzZlx1NzQ1Zlx1NzQ1OVx1NzQ0MVx1NzQ1Y1x1NzQ2OVx1NzQ3MFx1NzQ2M1x1NzQ2YVx1NzQ3Nlx1NzQ3ZVx1NzQ4Ylx1NzQ5ZVx1NzRhN1x1NzRjYVx1NzRjZlx1NzRkNFx1NzNmMVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNF0u''@;'; + put 'put ''bGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjRdW0VdXT01NzM0NCtFLExbNTczNDQrRV09QlsyMjRdW0VdKTtmb3IoQlsyMjVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0ZTBcdTc0''@;'; + put 'put ''ZTNcdTc0ZTdcdTc0ZTlcdTc0ZWVcdTc0ZjJcdTc0ZjBcdTc0ZjFcdTc0ZjhcdTc0ZjdcdTc1MDRcdTc1MDNcdTc1MDVcdTc1MGNcdTc1MGVcdTc1MGRcdTc1MTVcdTc1MTNcdTc1MWVcdTc1MjZcdTc1MmNcdTc1M2NcdTc1NDRcdTc1NGRcdTc1NGFcdTc1NDlcdTc1NWJcdTc1NDZcdTc1NWFc''@;'; + put 'put ''dTc1NjlcdTc1NjRcdTc1NjdcdTc1NmJcdTc1NmRcdTc1NzhcdTc1NzZcdTc1ODZcdTc1ODdcdTc1NzRcdTc1OGFcdTc1ODlcdTc1ODJcdTc1OTRcdTc1OWFcdTc1OWRcdTc1YTVcdTc1YTNcdTc1YzJcdTc1YjNcdTc1YzNcdTc1YjVcdTc1YmRcdTc1YjhcdTc1YmNcdTc1YjFcdTc1Y2RcdTc1''@;'; + put 'put ''Y2FcdTc1ZDJcdTc1ZDlcdTc1ZTNcdTc1ZGVcdTc1ZmVcdTc1ZmZcdWZmZmRcdTc1ZmNcdTc2MDFcdTc1ZjBcdTc1ZmFcdTc1ZjJcdTc1ZjNcdTc2MGJcdTc2MGRcdTc2MDlcdTc2MWZcdTc2MjdcdTc2MjBcdTc2MjFcdTc2MjJcdTc2MjRcdTc2MzRcdTc2MzBcdTc2M2JcdTc2NDdcdTc2NDhc''@;'; + put 'put ''dTc2NDZcdTc2NWNcdTc2NThcdTc2NjFcdTc2NjJcdTc2NjhcdTc2NjlcdTc2NmFcdTc2NjdcdTc2NmNcdTc2NzBcdTc2NzJcdTc2NzZcdTc2NzhcdTc2N2NcdTc2ODBcdTc2ODNcdTc2ODhcdTc2OGJcdTc2OGVcdTc2OTZcdTc2OTNcdTc2OTlcdTc2OWFcdTc2YjBcdTc2YjRcdTc2YjhcdTc2''@;'; + put 'put ''YjlcdTc2YmFcdTc2YzJcdTc2Y2RcdTc2ZDZcdTc2ZDJcdTc2ZGVcdTc2ZTFcdTc2ZTVcdTc2ZTdcdTc2ZWFcdTg2MmZcdTc2ZmJcdTc3MDhcdTc3MDdcdTc3MDRcdTc3MjlcdTc3MjRcdTc3MWVcdTc3MjVcdTc3MjZcdTc3MWJcdTc3MzdcdTc3MzhcdTc3NDdcdTc3NWFcdTc3NjhcdTc3NmJc''@;'; + put 'put ''dTc3NWJcdTc3NjVcdTc3N2ZcdTc3N2VcdTc3NzlcdTc3OGVcdTc3OGJcdTc3OTFcdTc3YTBcdTc3OWVcdTc3YjBcdTc3YjZcdTc3YjlcdTc3YmZcdTc3YmNcdTc3YmRcdTc3YmJcdTc3YzdcdTc3Y2RcdTc3ZDdcdTc3ZGFcdTc3ZGNcdTc3ZTNcdTc3ZWVcdTc3ZmNcdTc4MGNcdTc4MTJcdTc5''@;'; + put 'put ''MjZcdTc4MjBcdTc5MmFcdTc4NDVcdTc4OGVcdTc4NzRcdTc4ODZcdTc4N2NcdTc4OWFcdTc4OGNcdTc4YTNcdTc4YjVcdTc4YWFcdTc4YWZcdTc4ZDFcdTc4YzZcdTc4Y2JcdTc4ZDRcdTc4YmVcdTc4YmNcdTc4YzVcdTc4Y2FcdTc4ZWNcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxF''@;'; + put 'put ''PTA7RSE9QlsyMjVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI1XVtFXV09NTc2MDArRSxMWzU3NjAwK0VdPUJbMjI1XVtFXSk7Zm9yKEJbMjI2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHU3OGU3XHU3OGRhXHU3OGZkXHU3OGY0XHU3OTA3XHU3OTEyXHU3OTExXHU3OTE5XHU3OTJjXHU3OTJiXHU3OTQwXHU3OTYwXHU3OTU3XHU3OTVmXHU3OTVhXHU3OTU1XHU3OTUzXHU3OTdhXHU3OTdmXHU3OThhXHU3OTlkXHU3OWE3XHU5ZjRiXHU3OWFhXHU3OWFlXHU3OWIzXHU3OWI5''@;'; + put 'put ''XHU3OWJhXHU3OWM5XHU3OWQ1XHU3OWU3XHU3OWVjXHU3OWUxXHU3OWUzXHU3YTA4XHU3YTBkXHU3YTE4XHU3YTE5XHU3YTIwXHU3YTFmXHU3OTgwXHU3YTMxXHU3YTNiXHU3YTNlXHU3YTM3XHU3YTQzXHU3YTU3XHU3YTQ5XHU3YTYxXHU3YTYyXHU3YTY5XHU5ZjlkXHU3YTcwXHU3YTc5XHU3''@;'; + put 'put ''YTdkXHU3YTg4XHU3YTk3XHU3YTk1XHU3YTk4XHU3YTk2XHU3YWE5XHU3YWM4XHU3YWIwXHVmZmZkXHU3YWI2XHU3YWM1XHU3YWM0XHU3YWJmXHU5MDgzXHU3YWM3XHU3YWNhXHU3YWNkXHU3YWNmXHU3YWQ1XHU3YWQzXHU3YWQ5XHU3YWRhXHU3YWRkXHU3YWUxXHU3YWUyXHU3YWU2XHU3YWVk''@;'; + put 'put ''XHU3YWYwXHU3YjAyXHU3YjBmXHU3YjBhXHU3YjA2XHU3YjMzXHU3YjE4XHU3YjE5XHU3YjFlXHU3YjM1XHU3YjI4XHU3YjM2XHU3YjUwXHU3YjdhXHU3YjA0XHU3YjRkXHU3YjBiXHU3YjRjXHU3YjQ1XHU3Yjc1XHU3YjY1XHU3Yjc0XHU3YjY3XHU3YjcwXHU3YjcxXHU3YjZjXHU3YjZlXHU3''@;'; + put 'put ''YjlkXHU3Yjk4XHU3YjlmXHU3YjhkXHU3YjljXHU3YjlhXHU3YjhiXHU3YjkyXHU3YjhmXHU3YjVkXHU3Yjk5XHU3YmNiXHU3YmMxXHU3YmNjXHU3YmNmXHU3YmI0XHU3YmM2XHU3YmRkXHU3YmU5XHU3YzExXHU3YzE0XHU3YmU2XHU3YmU1XHU3YzYwXHU3YzAwXHU3YzA3XHU3YzEzXHU3YmYz''@;'; + put 'put ''XHU3YmY3XHU3YzE3XHU3YzBkXHU3YmY2XHU3YzIzXHU3YzI3XHU3YzJhXHU3YzFmXHU3YzM3XHU3YzJiXHU3YzNkXHU3YzRjXHU3YzQzXHU3YzU0XHU3YzRmXHU3YzQwXHU3YzUwXHU3YzU4XHU3YzVmXHU3YzY0XHU3YzU2XHU3YzY1XHU3YzZjXHU3Yzc1XHU3YzgzXHU3YzkwXHU3Y2E0XHU3''@;'; + put 'put ''Y2FkXHU3Y2EyXHU3Y2FiXHU3Y2ExXHU3Y2E4XHU3Y2IzXHU3Y2IyXHU3Y2IxXHU3Y2FlXHU3Y2I5XHU3Y2JkXHU3Y2MwXHU3Y2M1XHU3Y2MyXHU3Y2Q4XHU3Y2QyXHU3Y2RjXHU3Y2UyXHU5YjNiXHU3Y2VmXHU3Y2YyXHU3Y2Y0XHU3Y2Y2XHU3Y2ZhXHU3ZDA2XHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''Ii5zcGxpdCgiIiksRT0wO0UhPUJbMjI2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNl1bRV1dPTU3ODU2K0UsTFs1Nzg1NitFXT1CWzIyNl1bRV0pO2ZvcihCWzIyN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1N2QwMlx1N2QxY1x1N2QxNVx1N2QwYVx1N2Q0NVx1N2Q0Ylx1N2QyZVx1N2QzMlx1N2QzZlx1N2QzNVx1N2Q0Nlx1N2Q3M1x1N2Q1Nlx1N2Q0ZVx1N2Q3Mlx1N2Q2OFx1N2Q2ZVx1N2Q0Zlx1N2Q2M1x1N2Q5M1x1N2Q4OVx1N2Q1Ylx1N2Q4Zlx1N2Q3ZFx1N2Q5''@;'; + put 'put ''Ylx1N2RiYVx1N2RhZVx1N2RhM1x1N2RiNVx1N2RjN1x1N2RiZFx1N2RhYlx1N2UzZFx1N2RhMlx1N2RhZlx1N2RkY1x1N2RiOFx1N2Q5Zlx1N2RiMFx1N2RkOFx1N2RkZFx1N2RlNFx1N2RkZVx1N2RmYlx1N2RmMlx1N2RlMVx1N2UwNVx1N2UwYVx1N2UyM1x1N2UyMVx1N2UxMlx1N2UzMVx1''@;'; + put 'put ''N2UxZlx1N2UwOVx1N2UwYlx1N2UyMlx1N2U0Nlx1N2U2Nlx1N2UzYlx1N2UzNVx1N2UzOVx1N2U0M1x1N2UzN1x1ZmZmZFx1N2UzMlx1N2UzYVx1N2U2N1x1N2U1ZFx1N2U1Nlx1N2U1ZVx1N2U1OVx1N2U1YVx1N2U3OVx1N2U2YVx1N2U2OVx1N2U3Y1x1N2U3Ylx1N2U4M1x1N2RkNVx1N2U3''@;'; + put 'put ''ZFx1OGZhZVx1N2U3Zlx1N2U4OFx1N2U4OVx1N2U4Y1x1N2U5Mlx1N2U5MFx1N2U5M1x1N2U5NFx1N2U5Nlx1N2U4ZVx1N2U5Ylx1N2U5Y1x1N2YzOFx1N2YzYVx1N2Y0NVx1N2Y0Y1x1N2Y0ZFx1N2Y0ZVx1N2Y1MFx1N2Y1MVx1N2Y1NVx1N2Y1NFx1N2Y1OFx1N2Y1Zlx1N2Y2MFx1N2Y2OFx1''@;'; + put 'put ''N2Y2OVx1N2Y2N1x1N2Y3OFx1N2Y4Mlx1N2Y4Nlx1N2Y4M1x1N2Y4OFx1N2Y4N1x1N2Y4Y1x1N2Y5NFx1N2Y5ZVx1N2Y5ZFx1N2Y5YVx1N2ZhM1x1N2ZhZlx1N2ZiMlx1N2ZiOVx1N2ZhZVx1N2ZiNlx1N2ZiOFx1OGI3MVx1N2ZjNVx1N2ZjNlx1N2ZjYVx1N2ZkNVx1N2ZkNFx1N2ZlMVx1N2Zl''@;'; + put 'put ''Nlx1N2ZlOVx1N2ZmM1x1N2ZmOVx1OThkY1x1ODAwNlx1ODAwNFx1ODAwYlx1ODAxMlx1ODAxOFx1ODAxOVx1ODAxY1x1ODAyMVx1ODAyOFx1ODAzZlx1ODAzYlx1ODA0YVx1ODA0Nlx1ODA1Mlx1ODA1OFx1ODA1YVx1ODA1Zlx1ODA2Mlx1ODA2OFx1ODA3M1x1ODA3Mlx1ODA3MFx1ODA3Nlx1''@;'; + put 'put ''ODA3OVx1ODA3ZFx1ODA3Zlx1ODA4NFx1ODA4Nlx1ODA4NVx1ODA5Ylx1ODA5M1x1ODA5YVx1ODBhZFx1NTE5MFx1ODBhY1x1ODBkYlx1ODBlNVx1ODBkOVx1ODBkZFx1ODBjNFx1ODBkYVx1ODBkNlx1ODEwOVx1ODBlZlx1ODBmMVx1ODExYlx1ODEyOVx1ODEyM1x1ODEyZlx1ODE0Ylx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjddW0VdXT01ODExMitFLExbNTgxMTIrRV09QlsyMjddW0VdKTtmb3IoQlsyMjhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk2OGJcdTgxNDZcdTgxM2VcdTgxNTNcdTgxNTFcdTgwZmNcdTgxNzFcdTgxNmVcdTgxNjVcdTgxNjZcdTgxNzRcdTgxODNcdTgxODhcdTgxOGFcdTgxODBcdTgxODJcdTgxYTBcdTgxOTVcdTgxYTRcdTgxYTNcdTgxNWZcdTgxOTNcdTgx''@;'; + put 'put ''YTlcdTgxYjBcdTgxYjVcdTgxYmVcdTgxYjhcdTgxYmRcdTgxYzBcdTgxYzJcdTgxYmFcdTgxYzlcdTgxY2RcdTgxZDFcdTgxZDlcdTgxZDhcdTgxYzhcdTgxZGFcdTgxZGZcdTgxZTBcdTgxZTdcdTgxZmFcdTgxZmJcdTgxZmVcdTgyMDFcdTgyMDJcdTgyMDVcdTgyMDdcdTgyMGFcdTgyMGRc''@;'; + put 'put ''dTgyMTBcdTgyMTZcdTgyMjlcdTgyMmJcdTgyMzhcdTgyMzNcdTgyNDBcdTgyNTlcdTgyNThcdTgyNWRcdTgyNWFcdTgyNWZcdTgyNjRcdWZmZmRcdTgyNjJcdTgyNjhcdTgyNmFcdTgyNmJcdTgyMmVcdTgyNzFcdTgyNzdcdTgyNzhcdTgyN2VcdTgyOGRcdTgyOTJcdTgyYWJcdTgyOWZcdTgy''@;'; + put 'put ''YmJcdTgyYWNcdTgyZTFcdTgyZTNcdTgyZGZcdTgyZDJcdTgyZjRcdTgyZjNcdTgyZmFcdTgzOTNcdTgzMDNcdTgyZmJcdTgyZjlcdTgyZGVcdTgzMDZcdTgyZGNcdTgzMDlcdTgyZDlcdTgzMzVcdTgzMzRcdTgzMTZcdTgzMzJcdTgzMzFcdTgzNDBcdTgzMzlcdTgzNTBcdTgzNDVcdTgzMmZc''@;'; + put 'put ''dTgzMmJcdTgzMTdcdTgzMThcdTgzODVcdTgzOWFcdTgzYWFcdTgzOWZcdTgzYTJcdTgzOTZcdTgzMjNcdTgzOGVcdTgzODdcdTgzOGFcdTgzN2NcdTgzYjVcdTgzNzNcdTgzNzVcdTgzYTBcdTgzODlcdTgzYThcdTgzZjRcdTg0MTNcdTgzZWJcdTgzY2VcdTgzZmRcdTg0MDNcdTgzZDhcdTg0''@;'; + put 'put ''MGJcdTgzYzFcdTgzZjdcdTg0MDdcdTgzZTBcdTgzZjJcdTg0MGRcdTg0MjJcdTg0MjBcdTgzYmRcdTg0MzhcdTg1MDZcdTgzZmJcdTg0NmRcdTg0MmFcdTg0M2NcdTg1NWFcdTg0ODRcdTg0NzdcdTg0NmJcdTg0YWRcdTg0NmVcdTg0ODJcdTg0NjlcdTg0NDZcdTg0MmNcdTg0NmZcdTg0Nzlc''@;'; + put 'put ''dTg0MzVcdTg0Y2FcdTg0NjJcdTg0YjlcdTg0YmZcdTg0OWZcdTg0ZDlcdTg0Y2RcdTg0YmJcdTg0ZGFcdTg0ZDBcdTg0YzFcdTg0YzZcdTg0ZDZcdTg0YTFcdTg1MjFcdTg0ZmZcdTg0ZjRcdTg1MTdcdTg1MThcdTg1MmNcdTg1MWZcdTg1MTVcdTg1MTRcdTg0ZmNcdTg1NDBcdTg1NjNcdTg1''@;'; + put 'put ''NThcdTg1NDhcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI4XVtFXV09NTgzNjgrRSxMWzU4MzY4K0VdPUJbMjI4XVtFXSk7Zm9yKEJbMjI5XT0iXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NTQxXHU4NjAyXHU4NTRiXHU4NTU1XHU4NTgwXHU4NWE0XHU4NTg4XHU4NTkxXHU4NThhXHU4NWE4XHU4NTZkXHU4NTk0XHU4NTliXHU4NWVhXHU4NTg3XHU4NTljXHU4NTc3XHU4NTdlXHU4NTkwXHU4NWM5XHU4''@;'; + put 'put ''NWJhXHU4NWNmXHU4NWI5XHU4NWQwXHU4NWQ1XHU4NWRkXHU4NWU1XHU4NWRjXHU4NWY5XHU4NjBhXHU4NjEzXHU4NjBiXHU4NWZlXHU4NWZhXHU4NjA2XHU4NjIyXHU4NjFhXHU4NjMwXHU4NjNmXHU4NjRkXHU0ZTU1XHU4NjU0XHU4NjVmXHU4NjY3XHU4NjcxXHU4NjkzXHU4NmEzXHU4NmE5''@;'; + put 'put ''XHU4NmFhXHU4NjhiXHU4NjhjXHU4NmI2XHU4NmFmXHU4NmM0XHU4NmM2XHU4NmIwXHU4NmM5XHU4ODIzXHU4NmFiXHU4NmQ0XHU4NmRlXHU4NmU5XHU4NmVjXHVmZmZkXHU4NmRmXHU4NmRiXHU4NmVmXHU4NzEyXHU4NzA2XHU4NzA4XHU4NzAwXHU4NzAzXHU4NmZiXHU4NzExXHU4NzA5XHU4''@;'; + put 'put ''NzBkXHU4NmY5XHU4NzBhXHU4NzM0XHU4NzNmXHU4NzM3XHU4NzNiXHU4NzI1XHU4NzI5XHU4NzFhXHU4NzYwXHU4NzVmXHU4Nzc4XHU4NzRjXHU4NzRlXHU4Nzc0XHU4NzU3XHU4NzY4XHU4NzZlXHU4NzU5XHU4NzUzXHU4NzYzXHU4NzZhXHU4ODA1XHU4N2EyXHU4NzlmXHU4NzgyXHU4N2Fm''@;'; + put 'put ''XHU4N2NiXHU4N2JkXHU4N2MwXHU4N2QwXHU5NmQ2XHU4N2FiXHU4N2M0XHU4N2IzXHU4N2M3XHU4N2M2XHU4N2JiXHU4N2VmXHU4N2YyXHU4N2UwXHU4ODBmXHU4ODBkXHU4N2ZlXHU4N2Y2XHU4N2Y3XHU4ODBlXHU4N2QyXHU4ODExXHU4ODE2XHU4ODE1XHU4ODIyXHU4ODIxXHU4ODMxXHU4''@;'; + put 'put ''ODM2XHU4ODM5XHU4ODI3XHU4ODNiXHU4ODQ0XHU4ODQyXHU4ODUyXHU4ODU5XHU4ODVlXHU4ODYyXHU4ODZiXHU4ODgxXHU4ODdlXHU4ODllXHU4ODc1XHU4ODdkXHU4OGI1XHU4ODcyXHU4ODgyXHU4ODk3XHU4ODkyXHU4OGFlXHU4ODk5XHU4OGEyXHU4ODhkXHU4OGE0XHU4OGIwXHU4OGJm''@;'; + put 'put ''XHU4OGIxXHU4OGMzXHU4OGM0XHU4OGQ0XHU4OGQ4XHU4OGQ5XHU4OGRkXHU4OGY5XHU4OTAyXHU4OGZjXHU4OGY0XHU4OGU4XHU4OGYyXHU4OTA0XHU4OTBjXHU4OTBhXHU4OTEzXHU4OTQzXHU4OTFlXHU4OTI1XHU4OTJhXHU4OTJiXHU4OTQxXHU4OTQ0XHU4OTNiXHU4OTM2XHU4OTM4XHU4''@;'; + put 'put ''OTRjXHU4OTFkXHU4OTYwXHU4OTVlXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyOV1bRV1dPTU4NjI0K0UsTFs1ODYyNCtFXT1CWzIyOV1bRV0pO2ZvcihCWzIzMF09''@;'; + put 'put ''Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODk2Nlx1ODk2NFx1ODk2ZFx1ODk2YVx1ODk2Zlx1ODk3NFx1ODk3N1x1ODk3ZVx1ODk4M1x1ODk4OFx1ODk4YVx1ODk5M1x1ODk5OFx1ODlhMVx1ODlhOVx1ODlhNlx1ODlhY1x1ODlhZlx1''@;'; + put 'put ''ODliMlx1ODliYVx1ODliZFx1ODliZlx1ODljMFx1ODlkYVx1ODlkY1x1ODlkZFx1ODllN1x1ODlmNFx1ODlmOFx1OGEwM1x1OGExNlx1OGExMFx1OGEwY1x1OGExYlx1OGExZFx1OGEyNVx1OGEzNlx1OGE0MVx1OGE1Ylx1OGE1Mlx1OGE0Nlx1OGE0OFx1OGE3Y1x1OGE2ZFx1OGE2Y1x1OGE2''@;'; + put 'put ''Mlx1OGE4NVx1OGE4Mlx1OGE4NFx1OGFhOFx1OGFhMVx1OGE5MVx1OGFhNVx1OGFhNlx1OGE5YVx1OGFhM1x1OGFjNFx1OGFjZFx1OGFjMlx1OGFkYVx1OGFlYlx1OGFmM1x1OGFlN1x1ZmZmZFx1OGFlNFx1OGFmMVx1OGIxNFx1OGFlMFx1OGFlMlx1OGFmN1x1OGFkZVx1OGFkYlx1OGIwY1x1''@;'; + put 'put ''OGIwN1x1OGIxYVx1OGFlMVx1OGIxNlx1OGIxMFx1OGIxN1x1OGIyMFx1OGIzM1x1OTdhYlx1OGIyNlx1OGIyYlx1OGIzZVx1OGIyOFx1OGI0MVx1OGI0Y1x1OGI0Zlx1OGI0ZVx1OGI0OVx1OGI1Nlx1OGI1Ylx1OGI1YVx1OGI2Ylx1OGI1Zlx1OGI2Y1x1OGI2Zlx1OGI3NFx1OGI3ZFx1OGI4''@;'; + put 'put ''MFx1OGI4Y1x1OGI4ZVx1OGI5Mlx1OGI5M1x1OGI5Nlx1OGI5OVx1OGI5YVx1OGMzYVx1OGM0MVx1OGMzZlx1OGM0OFx1OGM0Y1x1OGM0ZVx1OGM1MFx1OGM1NVx1OGM2Mlx1OGM2Y1x1OGM3OFx1OGM3YVx1OGM4Mlx1OGM4OVx1OGM4NVx1OGM4YVx1OGM4ZFx1OGM4ZVx1OGM5NFx1OGM3Y1x1''@;'; + put 'put ''OGM5OFx1NjIxZFx1OGNhZFx1OGNhYVx1OGNiZFx1OGNiMlx1OGNiM1x1OGNhZVx1OGNiNlx1OGNjOFx1OGNjMVx1OGNlNFx1OGNlM1x1OGNkYVx1OGNmZFx1OGNmYVx1OGNmYlx1OGQwNFx1OGQwNVx1OGQwYVx1OGQwN1x1OGQwZlx1OGQwZFx1OGQxMFx1OWY0ZVx1OGQxM1x1OGNjZFx1OGQx''@;'; + put 'put ''NFx1OGQxNlx1OGQ2N1x1OGQ2ZFx1OGQ3MVx1OGQ3M1x1OGQ4MVx1OGQ5OVx1OGRjMlx1OGRiZVx1OGRiYVx1OGRjZlx1OGRkYVx1OGRkNlx1OGRjY1x1OGRkYlx1OGRjYlx1OGRlYVx1OGRlYlx1OGRkZlx1OGRlM1x1OGRmY1x1OGUwOFx1OGUwOVx1OGRmZlx1OGUxZFx1OGUxZVx1OGUxMFx1''@;'; + put 'put ''OGUxZlx1OGU0Mlx1OGUzNVx1OGUzMFx1OGUzNFx1OGU0YVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzBdW0VdXT01ODg4MCtFLExbNTg4ODArRV09QlsyMzBdW0Vd''@;'; + put 'put ''KTtmb3IoQlsyMzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThlNDdcdThlNDlcdThlNGNcdThlNTBcdThlNDhcdThlNTlcdThlNjRcdThlNjBcdThlMmFcdThlNjNcdThlNTVcdThlNzZcdThlNzJcdThlN2NcdThlODFcdThlODdc''@;'; + put 'put ''dThlODVcdThlODRcdThlOGJcdThlOGFcdThlOTNcdThlOTFcdThlOTRcdThlOTlcdThlYWFcdThlYTFcdThlYWNcdThlYjBcdThlYzZcdThlYjFcdThlYmVcdThlYzVcdThlYzhcdThlY2JcdThlZGJcdThlZTNcdThlZmNcdThlZmJcdThlZWJcdThlZmVcdThmMGFcdThmMDVcdThmMTVcdThm''@;'; + put 'put ''MTJcdThmMTlcdThmMTNcdThmMWNcdThmMWZcdThmMWJcdThmMGNcdThmMjZcdThmMzNcdThmM2JcdThmMzlcdThmNDVcdThmNDJcdThmM2VcdThmNGNcdThmNDlcdThmNDZcdThmNGVcdThmNTdcdThmNWNcdWZmZmRcdThmNjJcdThmNjNcdThmNjRcdThmOWNcdThmOWZcdThmYTNcdThmYWRc''@;'; + put 'put ''dThmYWZcdThmYjdcdThmZGFcdThmZTVcdThmZTJcdThmZWFcdThmZWZcdTkwODdcdThmZjRcdTkwMDVcdThmZjlcdThmZmFcdTkwMTFcdTkwMTVcdTkwMjFcdTkwMGRcdTkwMWVcdTkwMTZcdTkwMGJcdTkwMjdcdTkwMzZcdTkwMzVcdTkwMzlcdThmZjhcdTkwNGZcdTkwNTBcdTkwNTFcdTkw''@;'; + put 'put ''NTJcdTkwMGVcdTkwNDlcdTkwM2VcdTkwNTZcdTkwNThcdTkwNWVcdTkwNjhcdTkwNmZcdTkwNzZcdTk2YThcdTkwNzJcdTkwODJcdTkwN2RcdTkwODFcdTkwODBcdTkwOGFcdTkwODlcdTkwOGZcdTkwYThcdTkwYWZcdTkwYjFcdTkwYjVcdTkwZTJcdTkwZTRcdTYyNDhcdTkwZGJcdTkxMDJc''@;'; + put 'put ''dTkxMTJcdTkxMTlcdTkxMzJcdTkxMzBcdTkxNGFcdTkxNTZcdTkxNThcdTkxNjNcdTkxNjVcdTkxNjlcdTkxNzNcdTkxNzJcdTkxOGJcdTkxODlcdTkxODJcdTkxYTJcdTkxYWJcdTkxYWZcdTkxYWFcdTkxYjVcdTkxYjRcdTkxYmFcdTkxYzBcdTkxYzFcdTkxYzlcdTkxY2JcdTkxZDBcdTkx''@;'; + put 'put ''ZDZcdTkxZGZcdTkxZTFcdTkxZGJcdTkxZmNcdTkxZjVcdTkxZjZcdTkyMWVcdTkxZmZcdTkyMTRcdTkyMmNcdTkyMTVcdTkyMTFcdTkyNWVcdTkyNTdcdTkyNDVcdTkyNDlcdTkyNjRcdTkyNDhcdTkyOTVcdTkyM2ZcdTkyNGJcdTkyNTBcdTkyOWNcdTkyOTZcdTkyOTNcdTkyOWJcdTkyNWFc''@;'; + put 'put ''dTkyY2ZcdTkyYjlcdTkyYjdcdTkyZTlcdTkzMGZcdTkyZmFcdTkzNDRcdTkzMmVcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMxXVtFXV09NTkxMzYrRSxMWzU5MTM2''@;'; + put 'put ''K0VdPUJbMjMxXVtFXSk7Zm9yKEJbMjMyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MzE5XHU5MzIyXHU5MzFhXHU5MzIzXHU5MzNhXHU5MzM1XHU5MzNiXHU5MzVjXHU5MzYwXHU5MzdjXHU5MzZlXHU5MzU2XHU5M2IwXHU5M2Fj''@;'; + put 'put ''XHU5M2FkXHU5Mzk0XHU5M2I5XHU5M2Q2XHU5M2Q3XHU5M2U4XHU5M2U1XHU5M2Q4XHU5M2MzXHU5M2RkXHU5M2QwXHU5M2M4XHU5M2U0XHU5NDFhXHU5NDE0XHU5NDEzXHU5NDAzXHU5NDA3XHU5NDEwXHU5NDM2XHU5NDJiXHU5NDM1XHU5NDIxXHU5NDNhXHU5NDQxXHU5NDUyXHU5NDQ0XHU5''@;'; + put 'put ''NDViXHU5NDYwXHU5NDYyXHU5NDVlXHU5NDZhXHU5MjI5XHU5NDcwXHU5NDc1XHU5NDc3XHU5NDdkXHU5NDVhXHU5NDdjXHU5NDdlXHU5NDgxXHU5NDdmXHU5NTgyXHU5NTg3XHU5NThhXHU5NTk0XHU5NTk2XHU5NTk4XHU5NTk5XHVmZmZkXHU5NWEwXHU5NWE4XHU5NWE3XHU5NWFkXHU5NWJj''@;'; + put 'put ''XHU5NWJiXHU5NWI5XHU5NWJlXHU5NWNhXHU2ZmY2XHU5NWMzXHU5NWNkXHU5NWNjXHU5NWQ1XHU5NWQ0XHU5NWQ2XHU5NWRjXHU5NWUxXHU5NWU1XHU5NWUyXHU5NjIxXHU5NjI4XHU5NjJlXHU5NjJmXHU5NjQyXHU5NjRjXHU5NjRmXHU5NjRiXHU5Njc3XHU5NjVjXHU5NjVlXHU5NjVkXHU5''@;'; + put 'put ''NjVmXHU5NjY2XHU5NjcyXHU5NjZjXHU5NjhkXHU5Njk4XHU5Njk1XHU5Njk3XHU5NmFhXHU5NmE3XHU5NmIxXHU5NmIyXHU5NmIwXHU5NmI0XHU5NmI2XHU5NmI4XHU5NmI5XHU5NmNlXHU5NmNiXHU5NmM5XHU5NmNkXHU4OTRkXHU5NmRjXHU5NzBkXHU5NmQ1XHU5NmY5XHU5NzA0XHU5NzA2''@;'; + put 'put ''XHU5NzA4XHU5NzEzXHU5NzBlXHU5NzExXHU5NzBmXHU5NzE2XHU5NzE5XHU5NzI0XHU5NzJhXHU5NzMwXHU5NzM5XHU5NzNkXHU5NzNlXHU5NzQ0XHU5NzQ2XHU5NzQ4XHU5NzQyXHU5NzQ5XHU5NzVjXHU5NzYwXHU5NzY0XHU5NzY2XHU5NzY4XHU1MmQyXHU5NzZiXHU5NzcxXHU5Nzc5XHU5''@;'; + put 'put ''Nzg1XHU5NzdjXHU5NzgxXHU5NzdhXHU5Nzg2XHU5NzhiXHU5NzhmXHU5NzkwXHU5NzljXHU5N2E4XHU5N2E2XHU5N2EzXHU5N2IzXHU5N2I0XHU5N2MzXHU5N2M2XHU5N2M4XHU5N2NiXHU5N2RjXHU5N2VkXHU5ZjRmXHU5N2YyXHU3YWRmXHU5N2Y2XHU5N2Y1XHU5ODBmXHU5ODBjXHU5ODM4''@;'; + put 'put ''XHU5ODI0XHU5ODIxXHU5ODM3XHU5ODNkXHU5ODQ2XHU5ODRmXHU5ODRiXHU5ODZiXHU5ODZmXHU5ODcwXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzMl1bRV1dPTU5''@;'; + put 'put ''MzkyK0UsTFs1OTM5MitFXT1CWzIzMl1bRV0pO2ZvcihCWzIzM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTg3MVx1OTg3NFx1OTg3M1x1OThhYVx1OThhZlx1OThiMVx1OThiNlx1OThjNFx1OThjM1x1OThjNlx1OThlOVx1OThl''@;'; + put 'put ''Ylx1OTkwM1x1OTkwOVx1OTkxMlx1OTkxNFx1OTkxOFx1OTkyMVx1OTkxZFx1OTkxZVx1OTkyNFx1OTkyMFx1OTkyY1x1OTkyZVx1OTkzZFx1OTkzZVx1OTk0Mlx1OTk0OVx1OTk0NVx1OTk1MFx1OTk0Ylx1OTk1MVx1OTk1Mlx1OTk0Y1x1OTk1NVx1OTk5N1x1OTk5OFx1OTlhNVx1OTlhZFx1''@;'; + put 'put ''OTlhZVx1OTliY1x1OTlkZlx1OTlkYlx1OTlkZFx1OTlkOFx1OTlkMVx1OTllZFx1OTllZVx1OTlmMVx1OTlmMlx1OTlmYlx1OTlmOFx1OWEwMVx1OWEwZlx1OWEwNVx1OTllMlx1OWExOVx1OWEyYlx1OWEzN1x1OWE0NVx1OWE0Mlx1OWE0MFx1OWE0M1x1ZmZmZFx1OWEzZVx1OWE1NVx1OWE0''@;'; + put 'put ''ZFx1OWE1Ylx1OWE1N1x1OWE1Zlx1OWE2Mlx1OWE2NVx1OWE2NFx1OWE2OVx1OWE2Ylx1OWE2YVx1OWFhZFx1OWFiMFx1OWFiY1x1OWFjMFx1OWFjZlx1OWFkMVx1OWFkM1x1OWFkNFx1OWFkZVx1OWFkZlx1OWFlMlx1OWFlM1x1OWFlNlx1OWFlZlx1OWFlYlx1OWFlZVx1OWFmNFx1OWFmMVx1''@;'; + put 'put ''OWFmN1x1OWFmYlx1OWIwNlx1OWIxOFx1OWIxYVx1OWIxZlx1OWIyMlx1OWIyM1x1OWIyNVx1OWIyN1x1OWIyOFx1OWIyOVx1OWIyYVx1OWIyZVx1OWIyZlx1OWIzMlx1OWI0NFx1OWI0M1x1OWI0Zlx1OWI0ZFx1OWI0ZVx1OWI1MVx1OWI1OFx1OWI3NFx1OWI5M1x1OWI4M1x1OWI5MVx1OWI5''@;'; + put 'put ''Nlx1OWI5N1x1OWI5Zlx1OWJhMFx1OWJhOFx1OWJiNFx1OWJjMFx1OWJjYVx1OWJiOVx1OWJjNlx1OWJjZlx1OWJkMVx1OWJkMlx1OWJlM1x1OWJlMlx1OWJlNFx1OWJkNFx1OWJlMVx1OWMzYVx1OWJmMlx1OWJmMVx1OWJmMFx1OWMxNVx1OWMxNFx1OWMwOVx1OWMxM1x1OWMwY1x1OWMwNlx1''@;'; + put 'put ''OWMwOFx1OWMxMlx1OWMwYVx1OWMwNFx1OWMyZVx1OWMxYlx1OWMyNVx1OWMyNFx1OWMyMVx1OWMzMFx1OWM0N1x1OWMzMlx1OWM0Nlx1OWMzZVx1OWM1YVx1OWM2MFx1OWM2N1x1OWM3Nlx1OWM3OFx1OWNlN1x1OWNlY1x1OWNmMFx1OWQwOVx1OWQwOFx1OWNlYlx1OWQwM1x1OWQwNlx1OWQy''@;'; + put 'put ''YVx1OWQyNlx1OWRhZlx1OWQyM1x1OWQxZlx1OWQ0NFx1OWQxNVx1OWQxMlx1OWQ0MVx1OWQzZlx1OWQzZVx1OWQ0Nlx1OWQ0OFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVb''@;'; + put 'put ''QlsyMzNdW0VdXT01OTY0OCtFLExbNTk2NDgrRV09QlsyMzNdW0VdKTtmb3IoQlsyMzRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlkNWRcdTlkNWVcdTlkNjRcdTlkNTFcdTlkNTBcdTlkNTlcdTlkNzJcdTlkODlcdTlkODdcdTlk''@;'; + put 'put ''YWJcdTlkNmZcdTlkN2FcdTlkOWFcdTlkYTRcdTlkYTlcdTlkYjJcdTlkYzRcdTlkYzFcdTlkYmJcdTlkYjhcdTlkYmFcdTlkYzZcdTlkY2ZcdTlkYzJcdTlkZDlcdTlkZDNcdTlkZjhcdTlkZTZcdTlkZWRcdTlkZWZcdTlkZmRcdTllMWFcdTllMWJcdTllMWVcdTllNzVcdTllNzlcdTllN2Rc''@;'; + put 'put ''dTllODFcdTllODhcdTllOGJcdTllOGNcdTllOTJcdTllOTVcdTllOTFcdTllOWRcdTllYTVcdTllYTlcdTllYjhcdTllYWFcdTllYWRcdTk3NjFcdTllY2NcdTllY2VcdTllY2ZcdTllZDBcdTllZDRcdTllZGNcdTllZGVcdTllZGRcdTllZTBcdTllZTVcdTllZThcdTllZWZcdWZmZmRcdTll''@;'; + put 'put ''ZjRcdTllZjZcdTllZjdcdTllZjlcdTllZmJcdTllZmNcdTllZmRcdTlmMDdcdTlmMDhcdTc2YjdcdTlmMTVcdTlmMjFcdTlmMmNcdTlmM2VcdTlmNGFcdTlmNTJcdTlmNTRcdTlmNjNcdTlmNWZcdTlmNjBcdTlmNjFcdTlmNjZcdTlmNjdcdTlmNmNcdTlmNmFcdTlmNzdcdTlmNzJcdTlmNzZc''@;'; + put 'put ''dTlmOTVcdTlmOWNcdTlmYTBcdTU4MmZcdTY5YzdcdTkwNTlcdTc0NjRcdTUxZGNcdTcxOTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzNF1bRV0uY2hhckNv''@;'; + put 'put ''ZGVBdCgwKSYmKG1lW0JbMjM0XVtFXV09NTk5MDQrRSxMWzU5OTA0K0VdPUJbMjM0XVtFXSk7Zm9yKEJbMjM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZThhXHU4OTFjXHU5MzQ4XHU5Mjg4XHU4NGRjXHU0ZmM5XHU3MGJiXHU2''@;'; + put 'put ''NjMxXHU2OGM4XHU5MmY5XHU2NmZiXHU1ZjQ1XHU0ZTI4XHU0ZWUxXHU0ZWZjXHU0ZjAwXHU0ZjAzXHU0ZjM5XHU0ZjU2XHU0ZjkyXHU0ZjhhXHU0ZjlhXHU0Zjk0XHU0ZmNkXHU1MDQwXHU1MDIyXHU0ZmZmXHU1MDFlXHU1MDQ2XHU1MDcwXHU1MDQyXHU1MDk0XHU1MGY0XHU1MGQ4XHU1MTRh''@;'; + put 'put ''XHU1MTY0XHU1MTlkXHU1MWJlXHU1MWVjXHU1MjE1XHU1MjljXHU1MmE2XHU1MmMwXHU1MmRiXHU1MzAwXHU1MzA3XHU1MzI0XHU1MzcyXHU1MzkzXHU1M2IyXHU1M2RkXHVmYTBlXHU1NDljXHU1NDhhXHU1NGE5XHU1NGZmXHU1NTg2XHU1NzU5XHU1NzY1XHU1N2FjXHU1N2M4XHU1N2M3XHVm''@;'; + put 'put ''YTBmXHVmZmZkXHVmYTEwXHU1ODllXHU1OGIyXHU1OTBiXHU1OTUzXHU1OTViXHU1OTVkXHU1OTYzXHU1OWE0XHU1OWJhXHU1YjU2XHU1YmMwXHU3NTJmXHU1YmQ4XHU1YmVjXHU1YzFlXHU1Y2E2XHU1Y2JhXHU1Y2Y1XHU1ZDI3XHU1ZDUzXHVmYTExXHU1ZDQyXHU1ZDZkXHU1ZGI4XHU1ZGI5''@;'; + put 'put ''XHU1ZGQwXHU1ZjIxXHU1ZjM0XHU1ZjY3XHU1ZmI3XHU1ZmRlXHU2MDVkXHU2MDg1XHU2MDhhXHU2MGRlXHU2MGQ1XHU2MTIwXHU2MGYyXHU2MTExXHU2MTM3XHU2MTMwXHU2MTk4XHU2MjEzXHU2MmE2XHU2M2Y1XHU2NDYwXHU2NDlkXHU2NGNlXHU2NTRlXHU2NjAwXHU2NjE1XHU2NjNiXHU2''@;'; + put 'put ''NjA5XHU2NjJlXHU2NjFlXHU2NjI0XHU2NjY1XHU2NjU3XHU2NjU5XHVmYTEyXHU2NjczXHU2Njk5XHU2NmEwXHU2NmIyXHU2NmJmXHU2NmZhXHU2NzBlXHVmOTI5XHU2NzY2XHU2N2JiXHU2ODUyXHU2N2MwXHU2ODAxXHU2ODQ0XHU2OGNmXHVmYTEzXHU2OTY4XHVmYTE0XHU2OTk4XHU2OWUy''@;'; + put 'put ''XHU2YTMwXHU2YTZiXHU2YTQ2XHU2YTczXHU2YTdlXHU2YWUyXHU2YWU0XHU2YmQ2XHU2YzNmXHU2YzVjXHU2Yzg2XHU2YzZmXHU2Y2RhXHU2ZDA0XHU2ZDg3XHU2ZDZmXHU2ZDk2XHU2ZGFjXHU2ZGNmXHU2ZGY4XHU2ZGYyXHU2ZGZjXHU2ZTM5XHU2ZTVjXHU2ZTI3XHU2ZTNjXHU2ZWJmXHU2''@;'; + put 'put ''Zjg4XHU2ZmI1XHU2ZmY1XHU3MDA1XHU3MDA3XHU3MDI4XHU3MDg1XHU3MGFiXHU3MTBmXHU3MTA0XHU3MTVjXHU3MTQ2XHU3MTQ3XHVmYTE1XHU3MWMxXHU3MWZlXHU3MmIxXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM3XS5sZW5ndGg7KytFKTY1NTMzIT09Qlsy''@;'; + put 'put ''MzddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzN11bRV1dPTYwNjcyK0UsTFs2MDY3MitFXT1CWzIzN11bRV0pO2ZvcihCWzIzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzJiZVx1NzMyNFx1ZmExNlx1NzM3N1x1NzNiZFx1''@;'; + put 'put ''NzNjOVx1NzNkNlx1NzNlM1x1NzNkMlx1NzQwN1x1NzNmNVx1NzQyNlx1NzQyYVx1NzQyOVx1NzQyZVx1NzQ2Mlx1NzQ4OVx1NzQ5Zlx1NzUwMVx1NzU2Zlx1NzY4Mlx1NzY5Y1x1NzY5ZVx1NzY5Ylx1NzZhNlx1ZmExN1x1Nzc0Nlx1NTJhZlx1NzgyMVx1Nzg0ZVx1Nzg2NFx1Nzg3YVx1Nzkz''@;'; + put 'put ''MFx1ZmExOFx1ZmExOVx1ZmExYVx1Nzk5NFx1ZmExYlx1Nzk5Ylx1N2FkMVx1N2FlN1x1ZmExY1x1N2FlYlx1N2I5ZVx1ZmExZFx1N2Q0OFx1N2Q1Y1x1N2RiN1x1N2RhMFx1N2RkNlx1N2U1Mlx1N2Y0N1x1N2ZhMVx1ZmExZVx1ODMwMVx1ODM2Mlx1ODM3Zlx1ODNjN1x1ODNmNlx1ODQ0OFx1''@;'; + put 'put ''ODRiNFx1ODU1M1x1ODU1OVx1ZmZmZFx1ODU2Ylx1ZmExZlx1ODViMFx1ZmEyMFx1ZmEyMVx1ODgwN1x1ODhmNVx1OGExMlx1OGEzN1x1OGE3OVx1OGFhN1x1OGFiZVx1OGFkZlx1ZmEyMlx1OGFmNlx1OGI1M1x1OGI3Zlx1OGNmMFx1OGNmNFx1OGQxMlx1OGQ3Nlx1ZmEyM1x1OGVjZlx1ZmEy''@;'; + put 'put ''NFx1ZmEyNVx1OTA2N1x1OTBkZVx1ZmEyNlx1OTExNVx1OTEyN1x1OTFkYVx1OTFkN1x1OTFkZVx1OTFlZFx1OTFlZVx1OTFlNFx1OTFlNVx1OTIwNlx1OTIxMFx1OTIwYVx1OTIzYVx1OTI0MFx1OTIzY1x1OTI0ZVx1OTI1OVx1OTI1MVx1OTIzOVx1OTI2N1x1OTJhN1x1OTI3N1x1OTI3OFx1''@;'; + put 'put ''OTJlN1x1OTJkN1x1OTJkOVx1OTJkMFx1ZmEyN1x1OTJkNVx1OTJlMFx1OTJkM1x1OTMyNVx1OTMyMVx1OTJmYlx1ZmEyOFx1OTMxZVx1OTJmZlx1OTMxZFx1OTMwMlx1OTM3MFx1OTM1N1x1OTNhNFx1OTNjNlx1OTNkZVx1OTNmOFx1OTQzMVx1OTQ0NVx1OTQ0OFx1OTU5Mlx1ZjlkY1x1ZmEy''@;'; + put 'put ''OVx1OTY5ZFx1OTZhZlx1OTczM1x1OTczYlx1OTc0M1x1OTc0ZFx1OTc0Zlx1OTc1MVx1OTc1NVx1OTg1N1x1OTg2NVx1ZmEyYVx1ZmEyYlx1OTkyN1x1ZmEyY1x1OTk5ZVx1OWE0ZVx1OWFkOVx1OWFkY1x1OWI3NVx1OWI3Mlx1OWI4Zlx1OWJiMVx1OWJiYlx1OWMwMFx1OWQ3MFx1OWQ2Ylx1''@;'; + put 'put ''ZmEyZFx1OWUxOVx1OWVkMVx1ZmZmZFx1ZmZmZFx1MjE3MFx1MjE3MVx1MjE3Mlx1MjE3M1x1MjE3NFx1MjE3NVx1MjE3Nlx1MjE3N1x1MjE3OFx1MjE3OVx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzOF0ubGVuZ3RoOysr''@;'; + put 'put ''RSk2NTUzMyE9PUJbMjM4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzhdW0VdXT02MDkyOCtFLExbNjA5MjgrRV09QlsyMzhdW0VdKTtmb3IoQlsyNTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIxNzBcdTIxNzFcdTIxNzJc''@;'; + put 'put ''dTIxNzNcdTIxNzRcdTIxNzVcdTIxNzZcdTIxNzdcdTIxNzhcdTIxNzlcdTIxNjBcdTIxNjFcdTIxNjJcdTIxNjNcdTIxNjRcdTIxNjVcdTIxNjZcdTIxNjdcdTIxNjhcdTIxNjlcdWZmZTJcdWZmZTRcdWZmMDdcdWZmMDJcdTMyMzFcdTIxMTZcdTIxMjFcdTIyMzVcdTdlOGFcdTg5MWNcdTkz''@;'; + put 'put ''NDhcdTkyODhcdTg0ZGNcdTRmYzlcdTcwYmJcdTY2MzFcdTY4YzhcdTkyZjlcdTY2ZmJcdTVmNDVcdTRlMjhcdTRlZTFcdTRlZmNcdTRmMDBcdTRmMDNcdTRmMzlcdTRmNTZcdTRmOTJcdTRmOGFcdTRmOWFcdTRmOTRcdTRmY2RcdTUwNDBcdTUwMjJcdTRmZmZcdTUwMWVcdTUwNDZcdTUwNzBc''@;'; + put 'put ''dTUwNDJcdTUwOTRcdTUwZjRcdTUwZDhcdTUxNGFcdWZmZmRcdTUxNjRcdTUxOWRcdTUxYmVcdTUxZWNcdTUyMTVcdTUyOWNcdTUyYTZcdTUyYzBcdTUyZGJcdTUzMDBcdTUzMDdcdTUzMjRcdTUzNzJcdTUzOTNcdTUzYjJcdTUzZGRcdWZhMGVcdTU0OWNcdTU0OGFcdTU0YTlcdTU0ZmZcdTU1''@;'; + put 'put ''ODZcdTU3NTlcdTU3NjVcdTU3YWNcdTU3YzhcdTU3YzdcdWZhMGZcdWZhMTBcdTU4OWVcdTU4YjJcdTU5MGJcdTU5NTNcdTU5NWJcdTU5NWRcdTU5NjNcdTU5YTRcdTU5YmFcdTViNTZcdTViYzBcdTc1MmZcdTViZDhcdTViZWNcdTVjMWVcdTVjYTZcdTVjYmFcdTVjZjVcdTVkMjdcdTVkNTNc''@;'; + put 'put ''dWZhMTFcdTVkNDJcdTVkNmRcdTVkYjhcdTVkYjlcdTVkZDBcdTVmMjFcdTVmMzRcdTVmNjdcdTVmYjdcdTVmZGVcdTYwNWRcdTYwODVcdTYwOGFcdTYwZGVcdTYwZDVcdTYxMjBcdTYwZjJcdTYxMTFcdTYxMzdcdTYxMzBcdTYxOThcdTYyMTNcdTYyYTZcdTYzZjVcdTY0NjBcdTY0OWRcdTY0''@;'; + put 'put ''Y2VcdTY1NGVcdTY2MDBcdTY2MTVcdTY2M2JcdTY2MDlcdTY2MmVcdTY2MWVcdTY2MjRcdTY2NjVcdTY2NTdcdTY2NTlcdWZhMTJcdTY2NzNcdTY2OTlcdTY2YTBcdTY2YjJcdTY2YmZcdTY2ZmFcdTY3MGVcdWY5MjlcdTY3NjZcdTY3YmJcdTY4NTJcdTY3YzBcdTY4MDFcdTY4NDRcdTY4Y2Zc''@;'; + put 'put ''dWZhMTNcdTY5NjhcdWZhMTRcdTY5OThcdTY5ZTJcdTZhMzBcdTZhNmJcdTZhNDZcdTZhNzNcdTZhN2VcdTZhZTJcdTZhZTRcdTZiZDZcdTZjM2ZcdTZjNWNcdTZjODZcdTZjNmZcdTZjZGFcdTZkMDRcdTZkODdcdTZkNmZcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9Qlsy''@;'; + put 'put ''NTBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI1MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjUwXVtFXV09NjRlMytFLExbNjRlMytFXT1CWzI1MF1bRV0pO2ZvcihCWzI1MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmQ5Nlx1''@;'; + put 'put ''NmRhY1x1NmRjZlx1NmRmOFx1NmRmMlx1NmRmY1x1NmUzOVx1NmU1Y1x1NmUyN1x1NmUzY1x1NmViZlx1NmY4OFx1NmZiNVx1NmZmNVx1NzAwNVx1NzAwN1x1NzAyOFx1NzA4NVx1NzBhYlx1NzEwZlx1NzEwNFx1NzE1Y1x1NzE0Nlx1NzE0N1x1ZmExNVx1NzFjMVx1NzFmZVx1NzJiMVx1NzJi''@;'; + put 'put ''ZVx1NzMyNFx1ZmExNlx1NzM3N1x1NzNiZFx1NzNjOVx1NzNkNlx1NzNlM1x1NzNkMlx1NzQwN1x1NzNmNVx1NzQyNlx1NzQyYVx1NzQyOVx1NzQyZVx1NzQ2Mlx1NzQ4OVx1NzQ5Zlx1NzUwMVx1NzU2Zlx1NzY4Mlx1NzY5Y1x1NzY5ZVx1NzY5Ylx1NzZhNlx1ZmExN1x1Nzc0Nlx1NTJhZlx1''@;'; + put 'put ''NzgyMVx1Nzg0ZVx1Nzg2NFx1Nzg3YVx1NzkzMFx1ZmExOFx1ZmExOVx1ZmZmZFx1ZmExYVx1Nzk5NFx1ZmExYlx1Nzk5Ylx1N2FkMVx1N2FlN1x1ZmExY1x1N2FlYlx1N2I5ZVx1ZmExZFx1N2Q0OFx1N2Q1Y1x1N2RiN1x1N2RhMFx1N2RkNlx1N2U1Mlx1N2Y0N1x1N2ZhMVx1ZmExZVx1ODMw''@;'; + put 'put ''MVx1ODM2Mlx1ODM3Zlx1ODNjN1x1ODNmNlx1ODQ0OFx1ODRiNFx1ODU1M1x1ODU1OVx1ODU2Ylx1ZmExZlx1ODViMFx1ZmEyMFx1ZmEyMVx1ODgwN1x1ODhmNVx1OGExMlx1OGEzN1x1OGE3OVx1OGFhN1x1OGFiZVx1OGFkZlx1ZmEyMlx1OGFmNlx1OGI1M1x1OGI3Zlx1OGNmMFx1OGNmNFx1''@;'; + put 'put ''OGQxMlx1OGQ3Nlx1ZmEyM1x1OGVjZlx1ZmEyNFx1ZmEyNVx1OTA2N1x1OTBkZVx1ZmEyNlx1OTExNVx1OTEyN1x1OTFkYVx1OTFkN1x1OTFkZVx1OTFlZFx1OTFlZVx1OTFlNFx1OTFlNVx1OTIwNlx1OTIxMFx1OTIwYVx1OTIzYVx1OTI0MFx1OTIzY1x1OTI0ZVx1OTI1OVx1OTI1MVx1OTIz''@;'; + put 'put ''OVx1OTI2N1x1OTJhN1x1OTI3N1x1OTI3OFx1OTJlN1x1OTJkN1x1OTJkOVx1OTJkMFx1ZmEyN1x1OTJkNVx1OTJlMFx1OTJkM1x1OTMyNVx1OTMyMVx1OTJmYlx1ZmEyOFx1OTMxZVx1OTJmZlx1OTMxZFx1OTMwMlx1OTM3MFx1OTM1N1x1OTNhNFx1OTNjNlx1OTNkZVx1OTNmOFx1OTQzMVx1''@;'; + put 'put ''OTQ0NVx1OTQ0OFx1OTU5Mlx1ZjlkY1x1ZmEyOVx1OTY5ZFx1OTZhZlx1OTczM1x1OTczYlx1OTc0M1x1OTc0ZFx1OTc0Zlx1OTc1MVx1OTc1NVx1OTg1N1x1OTg2NVx1ZmEyYVx1ZmEyYlx1OTkyN1x1ZmEyY1x1OTk5ZVx1OWE0ZVx1OWFkOVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIp''@;'; + put 'put ''LEU9MDtFIT1CWzI1MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjUxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTFdW0VdXT02NDI1NitFLExbNjQyNTYrRV09QlsyNTFdW0VdKTtmb3IoQlsyNTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdTlhZGNcdTliNzVcdTliNzJcdTliOGZcdTliYjFcdTliYmJcdTljMDBcdTlkNzBcdTlkNmJcdWZhMmRcdTllMTlcdTllZDFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI1Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjUyXVtFXV09NjQ1MTIrRSxMWzY0NTEyK0VdPUJbMjUyXVtFXSk7cmV0dXJue2VuYzptZSxkZWM6TH19KCksSmVbOTM2XT1mdW5jdGlvbigpe3ZhciBF''@;'; + put 'put ''LEw9W10sbWU9e30sQj1bXTtmb3IoQlswXT0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2''@;'; + put 'put ''Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTIwYWNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlswXS5sZW5ndGg7KytFKTY1NTMzIT09QlswXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlswXVtFXV09MCtFLExbMCtFXT1CWzBdW0VdKTtmb3IoQlsxMjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRlMDJcdTRlMDRcdTRlMDVcdTRlMDZcdTRlMGZcdTRlMTJcdTRlMTdcdTRlMWZcdTRlMjBcdTRlMjFcdTRlMjNcdTRlMjZcdTRlMjlcdTRlMmVcdTRlMmZcdTRlMzFcdTRlMzNcdTRlMzVcdTRlMzdcdTRlM2NcdTRlNDBcdTRlNDFcdTRlNDJcdTRlNDRc''@;'; + put 'put ''dTRlNDZcdTRlNGFcdTRlNTFcdTRlNTVcdTRlNTdcdTRlNWFcdTRlNWJcdTRlNjJcdTRlNjNcdTRlNjRcdTRlNjVcdTRlNjdcdTRlNjhcdTRlNmFcdTRlNmJcdTRlNmNcdTRlNmRcdTRlNmVcdTRlNmZcdTRlNzJcdTRlNzRcdTRlNzVcdTRlNzZcdTRlNzdcdTRlNzhcdTRlNzlcdTRlN2FcdTRl''@;'; + put 'put ''N2JcdTRlN2NcdTRlN2RcdTRlN2ZcdTRlODBcdTRlODFcdTRlODJcdTRlODNcdTRlODRcdTRlODVcdTRlODdcdTRlOGFcdWZmZmRcdTRlOTBcdTRlOTZcdTRlOTdcdTRlOTlcdTRlOWNcdTRlOWRcdTRlOWVcdTRlYTNcdTRlYWFcdTRlYWZcdTRlYjBcdTRlYjFcdTRlYjRcdTRlYjZcdTRlYjdc''@;'; + put 'put ''dTRlYjhcdTRlYjlcdTRlYmNcdTRlYmRcdTRlYmVcdTRlYzhcdTRlY2NcdTRlY2ZcdTRlZDBcdTRlZDJcdTRlZGFcdTRlZGJcdTRlZGNcdTRlZTBcdTRlZTJcdTRlZTZcdTRlZTdcdTRlZTlcdTRlZWRcdTRlZWVcdTRlZWZcdTRlZjFcdTRlZjRcdTRlZjhcdTRlZjlcdTRlZmFcdTRlZmNcdTRl''@;'; + put 'put ''ZmVcdTRmMDBcdTRmMDJcdTRmMDNcdTRmMDRcdTRmMDVcdTRmMDZcdTRmMDdcdTRmMDhcdTRmMGJcdTRmMGNcdTRmMTJcdTRmMTNcdTRmMTRcdTRmMTVcdTRmMTZcdTRmMWNcdTRmMWRcdTRmMjFcdTRmMjNcdTRmMjhcdTRmMjlcdTRmMmNcdTRmMmRcdTRmMmVcdTRmMzFcdTRmMzNcdTRmMzVc''@;'; + put 'put ''dTRmMzdcdTRmMzlcdTRmM2JcdTRmM2VcdTRmM2ZcdTRmNDBcdTRmNDFcdTRmNDJcdTRmNDRcdTRmNDVcdTRmNDdcdTRmNDhcdTRmNDlcdTRmNGFcdTRmNGJcdTRmNGNcdTRmNTJcdTRmNTRcdTRmNTZcdTRmNjFcdTRmNjJcdTRmNjZcdTRmNjhcdTRmNmFcdTRmNmJcdTRmNmRcdTRmNmVcdTRm''@;'; + put 'put ''NzFcdTRmNzJcdTRmNzVcdTRmNzdcdTRmNzhcdTRmNzlcdTRmN2FcdTRmN2RcdTRmODBcdTRmODFcdTRmODJcdTRmODVcdTRmODZcdTRmODdcdTRmOGFcdTRmOGNcdTRmOGVcdTRmOTBcdTRmOTJcdTRmOTNcdTRmOTVcdTRmOTZcdTRmOThcdTRmOTlcdTRmOWFcdTRmOWNcdTRmOWVcdTRmOWZc''@;'; + put 'put ''dTRmYTFcdTRmYTJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMjldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEyOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTI5XVtFXV09MzMwMjQrRSxMWzMzMDI0K0VdPUJbMTI5XVtFXSk7Zm9yKEJbMTMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZmE0XHU0ZmFiXHU0ZmFkXHU0ZmIwXHU0ZmIxXHU0ZmIyXHU0ZmIzXHU0ZmI0XHU0ZmI2XHU0ZmI3XHU0ZmI4XHU0ZmI5XHU0ZmJhXHU0ZmJiXHU0ZmJjXHU0ZmJkXHU0ZmJlXHU0ZmMwXHU0ZmMxXHU0ZmMyXHU0ZmM2XHU0ZmM3''@;'; + put 'put ''XHU0ZmM4XHU0ZmM5XHU0ZmNiXHU0ZmNjXHU0ZmNkXHU0ZmQyXHU0ZmQzXHU0ZmQ0XHU0ZmQ1XHU0ZmQ2XHU0ZmQ5XHU0ZmRiXHU0ZmUwXHU0ZmUyXHU0ZmU0XHU0ZmU1XHU0ZmU3XHU0ZmViXHU0ZmVjXHU0ZmYwXHU0ZmYyXHU0ZmY0XHU0ZmY1XHU0ZmY2XHU0ZmY3XHU0ZmY5XHU0ZmZiXHU0''@;'; + put 'put ''ZmZjXHU0ZmZkXHU0ZmZmXHU1MDAwXHU1MDAxXHU1MDAyXHU1MDAzXHU1MDA0XHU1MDA1XHU1MDA2XHU1MDA3XHU1MDA4XHU1MDA5XHU1MDBhXHVmZmZkXHU1MDBiXHU1MDBlXHU1MDEwXHU1MDExXHU1MDEzXHU1MDE1XHU1MDE2XHU1MDE3XHU1MDFiXHU1MDFkXHU1MDFlXHU1MDIwXHU1MDIy''@;'; + put 'put ''XHU1MDIzXHU1MDI0XHU1MDI3XHU1MDJiXHU1MDJmXHU1MDMwXHU1MDMxXHU1MDMyXHU1MDMzXHU1MDM0XHU1MDM1XHU1MDM2XHU1MDM3XHU1MDM4XHU1MDM5XHU1MDNiXHU1MDNkXHU1MDNmXHU1MDQwXHU1MDQxXHU1MDQyXHU1MDQ0XHU1MDQ1XHU1MDQ2XHU1MDQ5XHU1MDRhXHU1MDRiXHU1''@;'; + put 'put ''MDRkXHU1MDUwXHU1MDUxXHU1MDUyXHU1MDUzXHU1MDU0XHU1MDU2XHU1MDU3XHU1MDU4XHU1MDU5XHU1MDViXHU1MDVkXHU1MDVlXHU1MDVmXHU1MDYwXHU1MDYxXHU1MDYyXHU1MDYzXHU1MDY0XHU1MDY2XHU1MDY3XHU1MDY4XHU1MDY5XHU1MDZhXHU1MDZiXHU1MDZkXHU1MDZlXHU1MDZm''@;'; + put 'put ''XHU1MDcwXHU1MDcxXHU1MDcyXHU1MDczXHU1MDc0XHU1MDc1XHU1MDc4XHU1MDc5XHU1MDdhXHU1MDdjXHU1MDdkXHU1MDgxXHU1MDgyXHU1MDgzXHU1MDg0XHU1MDg2XHU1MDg3XHU1MDg5XHU1MDhhXHU1MDhiXHU1MDhjXHU1MDhlXHU1MDhmXHU1MDkwXHU1MDkxXHU1MDkyXHU1MDkzXHU1''@;'; + put 'put ''MDk0XHU1MDk1XHU1MDk2XHU1MDk3XHU1MDk4XHU1MDk5XHU1MDlhXHU1MDliXHU1MDljXHU1MDlkXHU1MDllXHU1MDlmXHU1MGEwXHU1MGExXHU1MGEyXHU1MGE0XHU1MGE2XHU1MGFhXHU1MGFiXHU1MGFkXHU1MGFlXHU1MGFmXHU1MGIwXHU1MGIxXHU1MGIzXHU1MGI0XHU1MGI1XHU1MGI2''@;'; + put 'put ''XHU1MGI3XHU1MGI4XHU1MGI5XHU1MGJjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTMwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzMF1bRV1dPTMzMjgwK0UsTFszMzI4MCtFXT1CWzEzMF1bRV0pO2ZvcihCWzEzMV09Ilx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTBiZFx1NTBiZVx1NTBiZlx1NTBjMFx1NTBjMVx1NTBjMlx1NTBjM1x1NTBjNFx1NTBjNVx1NTBjNlx1NTBjN1x1NTBjOFx1NTBjOVx1NTBjYVx1NTBjYlx1NTBjY1x1NTBjZFx1NTBjZVx1NTBkMFx1NTBk''@;'; + put 'put ''MVx1NTBkMlx1NTBkM1x1NTBkNFx1NTBkNVx1NTBkN1x1NTBkOFx1NTBkOVx1NTBkYlx1NTBkY1x1NTBkZFx1NTBkZVx1NTBkZlx1NTBlMFx1NTBlMVx1NTBlMlx1NTBlM1x1NTBlNFx1NTBlNVx1NTBlOFx1NTBlOVx1NTBlYVx1NTBlYlx1NTBlZlx1NTBmMFx1NTBmMVx1NTBmMlx1NTBmNFx1''@;'; + put 'put ''NTBmNlx1NTBmN1x1NTBmOFx1NTBmOVx1NTBmYVx1NTBmY1x1NTBmZFx1NTBmZVx1NTBmZlx1NTEwMFx1NTEwMVx1NTEwMlx1NTEwM1x1NTEwNFx1NTEwNVx1NTEwOFx1ZmZmZFx1NTEwOVx1NTEwYVx1NTEwY1x1NTEwZFx1NTEwZVx1NTEwZlx1NTExMFx1NTExMVx1NTExM1x1NTExNFx1NTEx''@;'; + put 'put ''NVx1NTExNlx1NTExN1x1NTExOFx1NTExOVx1NTExYVx1NTExYlx1NTExY1x1NTExZFx1NTExZVx1NTExZlx1NTEyMFx1NTEyMlx1NTEyM1x1NTEyNFx1NTEyNVx1NTEyNlx1NTEyN1x1NTEyOFx1NTEyOVx1NTEyYVx1NTEyYlx1NTEyY1x1NTEyZFx1NTEyZVx1NTEyZlx1NTEzMFx1NTEzMVx1''@;'; + put 'put ''NTEzMlx1NTEzM1x1NTEzNFx1NTEzNVx1NTEzNlx1NTEzN1x1NTEzOFx1NTEzOVx1NTEzYVx1NTEzYlx1NTEzY1x1NTEzZFx1NTEzZVx1NTE0Mlx1NTE0N1x1NTE0YVx1NTE0Y1x1NTE0ZVx1NTE0Zlx1NTE1MFx1NTE1Mlx1NTE1M1x1NTE1N1x1NTE1OFx1NTE1OVx1NTE1Ylx1NTE1ZFx1NTE1''@;'; + put 'put ''ZVx1NTE1Zlx1NTE2MFx1NTE2MVx1NTE2M1x1NTE2NFx1NTE2Nlx1NTE2N1x1NTE2OVx1NTE2YVx1NTE2Zlx1NTE3Mlx1NTE3YVx1NTE3ZVx1NTE3Zlx1NTE4M1x1NTE4NFx1NTE4Nlx1NTE4N1x1NTE4YVx1NTE4Ylx1NTE4ZVx1NTE4Zlx1NTE5MFx1NTE5MVx1NTE5M1x1NTE5NFx1NTE5OFx1''@;'; + put 'put ''NTE5YVx1NTE5ZFx1NTE5ZVx1NTE5Zlx1NTFhMVx1NTFhM1x1NTFhNlx1NTFhN1x1NTFhOFx1NTFhOVx1NTFhYVx1NTFhZFx1NTFhZVx1NTFiNFx1NTFiOFx1NTFiOVx1NTFiYVx1NTFiZVx1NTFiZlx1NTFjMVx1NTFjMlx1NTFjM1x1NTFjNVx1NTFjOFx1NTFjYVx1NTFjZFx1NTFjZVx1NTFk''@;'; + put 'put ''MFx1NTFkMlx1NTFkM1x1NTFkNFx1NTFkNVx1NTFkNlx1NTFkN1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTMxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzFdW0VdXT0zMzUzNitFLExbMzM1MzYrRV09QlsxMzFdW0VdKTtmb3IoQlsx''@;'; + put 'put ''MzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUxZDhcdTUxZDlcdTUxZGFcdTUxZGNcdTUxZGVcdTUxZGZcdTUxZTJcdTUxZTNcdTUxZTVcdTUxZTZcdTUxZTdcdTUxZThcdTUxZTlcdTUxZWFcdTUxZWNcdTUxZWVcdTUxZjFcdTUx''@;'; + put 'put ''ZjJcdTUxZjRcdTUxZjdcdTUxZmVcdTUyMDRcdTUyMDVcdTUyMDlcdTUyMGJcdTUyMGNcdTUyMGZcdTUyMTBcdTUyMTNcdTUyMTRcdTUyMTVcdTUyMWNcdTUyMWVcdTUyMWZcdTUyMjFcdTUyMjJcdTUyMjNcdTUyMjVcdTUyMjZcdTUyMjdcdTUyMmFcdTUyMmNcdTUyMmZcdTUyMzFcdTUyMzJc''@;'; + put 'put ''dTUyMzRcdTUyMzVcdTUyM2NcdTUyM2VcdTUyNDRcdTUyNDVcdTUyNDZcdTUyNDdcdTUyNDhcdTUyNDlcdTUyNGJcdTUyNGVcdTUyNGZcdTUyNTJcdTUyNTNcdTUyNTVcdTUyNTdcdTUyNThcdWZmZmRcdTUyNTlcdTUyNWFcdTUyNWJcdTUyNWRcdTUyNWZcdTUyNjBcdTUyNjJcdTUyNjNcdTUy''@;'; + put 'put ''NjRcdTUyNjZcdTUyNjhcdTUyNmJcdTUyNmNcdTUyNmRcdTUyNmVcdTUyNzBcdTUyNzFcdTUyNzNcdTUyNzRcdTUyNzVcdTUyNzZcdTUyNzdcdTUyNzhcdTUyNzlcdTUyN2FcdTUyN2JcdTUyN2NcdTUyN2VcdTUyODBcdTUyODNcdTUyODRcdTUyODVcdTUyODZcdTUyODdcdTUyODlcdTUyOGFc''@;'; + put 'put ''dTUyOGJcdTUyOGNcdTUyOGRcdTUyOGVcdTUyOGZcdTUyOTFcdTUyOTJcdTUyOTRcdTUyOTVcdTUyOTZcdTUyOTdcdTUyOThcdTUyOTlcdTUyOWFcdTUyOWNcdTUyYTRcdTUyYTVcdTUyYTZcdTUyYTdcdTUyYWVcdTUyYWZcdTUyYjBcdTUyYjRcdTUyYjVcdTUyYjZcdTUyYjdcdTUyYjhcdTUy''@;'; + put 'put ''YjlcdTUyYmFcdTUyYmJcdTUyYmNcdTUyYmRcdTUyYzBcdTUyYzFcdTUyYzJcdTUyYzRcdTUyYzVcdTUyYzZcdTUyYzhcdTUyY2FcdTUyY2NcdTUyY2RcdTUyY2VcdTUyY2ZcdTUyZDFcdTUyZDNcdTUyZDRcdTUyZDVcdTUyZDdcdTUyZDlcdTUyZGFcdTUyZGJcdTUyZGNcdTUyZGRcdTUyZGVc''@;'; + put 'put ''dTUyZTBcdTUyZTFcdTUyZTJcdTUyZTNcdTUyZTVcdTUyZTZcdTUyZTdcdTUyZThcdTUyZTlcdTUyZWFcdTUyZWJcdTUyZWNcdTUyZWRcdTUyZWVcdTUyZWZcdTUyZjFcdTUyZjJcdTUyZjNcdTUyZjRcdTUyZjVcdTUyZjZcdTUyZjdcdTUyZjhcdTUyZmJcdTUyZmNcdTUyZmRcdTUzMDFcdTUz''@;'; + put 'put ''MDJcdTUzMDNcdTUzMDRcdTUzMDdcdTUzMDlcdTUzMGFcdTUzMGJcdTUzMGNcdTUzMGVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTMyXVtFXV09MzM3OTIrRSxMWzMzNzkyK0VdPUJbMTMy''@;'; + put 'put ''XVtFXSk7Zm9yKEJbMTMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MzExXHU1MzEyXHU1MzEzXHU1MzE0XHU1MzE4XHU1MzFiXHU1MzFjXHU1MzFlXHU1MzFmXHU1MzIyXHU1MzI0XHU1MzI1XHU1MzI3XHU1MzI4XHU1MzI5XHU1''@;'; + put 'put ''MzJiXHU1MzJjXHU1MzJkXHU1MzJmXHU1MzMwXHU1MzMxXHU1MzMyXHU1MzMzXHU1MzM0XHU1MzM1XHU1MzM2XHU1MzM3XHU1MzM4XHU1MzNjXHU1MzNkXHU1MzQwXHU1MzQyXHU1MzQ0XHU1MzQ2XHU1MzRiXHU1MzRjXHU1MzRkXHU1MzUwXHU1MzU0XHU1MzU4XHU1MzU5XHU1MzViXHU1MzVk''@;'; + put 'put ''XHU1MzY1XHU1MzY4XHU1MzZhXHU1MzZjXHU1MzZkXHU1MzcyXHU1Mzc2XHU1Mzc5XHU1MzdiXHU1MzdjXHU1MzdkXHU1MzdlXHU1MzgwXHU1MzgxXHU1MzgzXHU1Mzg3XHU1Mzg4XHU1MzhhXHU1MzhlXHU1MzhmXHVmZmZkXHU1MzkwXHU1MzkxXHU1MzkyXHU1MzkzXHU1Mzk0XHU1Mzk2XHU1''@;'; + put 'put ''Mzk3XHU1Mzk5XHU1MzliXHU1MzljXHU1MzllXHU1M2EwXHU1M2ExXHU1M2E0XHU1M2E3XHU1M2FhXHU1M2FiXHU1M2FjXHU1M2FkXHU1M2FmXHU1M2IwXHU1M2IxXHU1M2IyXHU1M2IzXHU1M2I0XHU1M2I1XHU1M2I3XHU1M2I4XHU1M2I5XHU1M2JhXHU1M2JjXHU1M2JkXHU1M2JlXHU1M2Mw''@;'; + put 'put ''XHU1M2MzXHU1M2M0XHU1M2M1XHU1M2M2XHU1M2M3XHU1M2NlXHU1M2NmXHU1M2QwXHU1M2QyXHU1M2QzXHU1M2Q1XHU1M2RhXHU1M2RjXHU1M2RkXHU1M2RlXHU1M2UxXHU1M2UyXHU1M2U3XHU1M2Y0XHU1M2ZhXHU1M2ZlXHU1M2ZmXHU1NDAwXHU1NDAyXHU1NDA1XHU1NDA3XHU1NDBiXHU1''@;'; + put 'put ''NDE0XHU1NDE4XHU1NDE5XHU1NDFhXHU1NDFjXHU1NDIyXHU1NDI0XHU1NDI1XHU1NDJhXHU1NDMwXHU1NDMzXHU1NDM2XHU1NDM3XHU1NDNhXHU1NDNkXHU1NDNmXHU1NDQxXHU1NDQyXHU1NDQ0XHU1NDQ1XHU1NDQ3XHU1NDQ5XHU1NDRjXHU1NDRkXHU1NDRlXHU1NDRmXHU1NDUxXHU1NDVh''@;'; + put 'put ''XHU1NDVkXHU1NDVlXHU1NDVmXHU1NDYwXHU1NDYxXHU1NDYzXHU1NDY1XHU1NDY3XHU1NDY5XHU1NDZhXHU1NDZiXHU1NDZjXHU1NDZkXHU1NDZlXHU1NDZmXHU1NDcwXHU1NDc0XHU1NDc5XHU1NDdhXHU1NDdlXHU1NDdmXHU1NDgxXHU1NDgzXHU1NDg1XHU1NDg3XHU1NDg4XHU1NDg5XHU1''@;'; + put 'put ''NDhhXHU1NDhkXHU1NDkxXHU1NDkzXHU1NDk3XHU1NDk4XHU1NDljXHU1NDllXHU1NDlmXHU1NGEwXHU1NGExXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTMzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzM11bRV1dPTM0MDQ4K0UsTFsz''@;'; + put 'put ''NDA0OCtFXT1CWzEzM11bRV0pO2ZvcihCWzEzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTRhMlx1NTRhNVx1NTRhZVx1NTRiMFx1NTRiMlx1NTRiNVx1NTRiNlx1NTRiN1x1NTRiOVx1NTRiYVx1NTRiY1x1NTRiZVx1NTRjM1x1''@;'; + put 'put ''NTRjNVx1NTRjYVx1NTRjYlx1NTRkNlx1NTRkOFx1NTRkYlx1NTRlMFx1NTRlMVx1NTRlMlx1NTRlM1x1NTRlNFx1NTRlYlx1NTRlY1x1NTRlZlx1NTRmMFx1NTRmMVx1NTRmNFx1NTRmNVx1NTRmNlx1NTRmN1x1NTRmOFx1NTRmOVx1NTRmYlx1NTRmZVx1NTUwMFx1NTUwMlx1NTUwM1x1NTUw''@;'; + put 'put ''NFx1NTUwNVx1NTUwOFx1NTUwYVx1NTUwYlx1NTUwY1x1NTUwZFx1NTUwZVx1NTUxMlx1NTUxM1x1NTUxNVx1NTUxNlx1NTUxN1x1NTUxOFx1NTUxOVx1NTUxYVx1NTUxY1x1NTUxZFx1NTUxZVx1NTUxZlx1NTUyMVx1NTUyNVx1NTUyNlx1ZmZmZFx1NTUyOFx1NTUyOVx1NTUyYlx1NTUyZFx1''@;'; + put 'put ''NTUzMlx1NTUzNFx1NTUzNVx1NTUzNlx1NTUzOFx1NTUzOVx1NTUzYVx1NTUzYlx1NTUzZFx1NTU0MFx1NTU0Mlx1NTU0NVx1NTU0N1x1NTU0OFx1NTU0Ylx1NTU0Y1x1NTU0ZFx1NTU0ZVx1NTU0Zlx1NTU1MVx1NTU1Mlx1NTU1M1x1NTU1NFx1NTU1N1x1NTU1OFx1NTU1OVx1NTU1YVx1NTU1''@;'; + put 'put ''Ylx1NTU1ZFx1NTU1ZVx1NTU1Zlx1NTU2MFx1NTU2Mlx1NTU2M1x1NTU2OFx1NTU2OVx1NTU2Ylx1NTU2Zlx1NTU3MFx1NTU3MVx1NTU3Mlx1NTU3M1x1NTU3NFx1NTU3OVx1NTU3YVx1NTU3ZFx1NTU3Zlx1NTU4NVx1NTU4Nlx1NTU4Y1x1NTU4ZFx1NTU4ZVx1NTU5MFx1NTU5Mlx1NTU5M1x1''@;'; + put 'put ''NTU5NVx1NTU5Nlx1NTU5N1x1NTU5YVx1NTU5Ylx1NTU5ZVx1NTVhMFx1NTVhMVx1NTVhMlx1NTVhM1x1NTVhNFx1NTVhNVx1NTVhNlx1NTVhOFx1NTVhOVx1NTVhYVx1NTVhYlx1NTVhY1x1NTVhZFx1NTVhZVx1NTVhZlx1NTViMFx1NTViMlx1NTViNFx1NTViNlx1NTViOFx1NTViYVx1NTVi''@;'; + put 'put ''Y1x1NTViZlx1NTVjMFx1NTVjMVx1NTVjMlx1NTVjM1x1NTVjNlx1NTVjN1x1NTVjOFx1NTVjYVx1NTVjYlx1NTVjZVx1NTVjZlx1NTVkMFx1NTVkNVx1NTVkN1x1NTVkOFx1NTVkOVx1NTVkYVx1NTVkYlx1NTVkZVx1NTVlMFx1NTVlMlx1NTVlN1x1NTVlOVx1NTVlZFx1NTVlZVx1NTVmMFx1''@;'; + put 'put ''NTVmMVx1NTVmNFx1NTVmNlx1NTVmOFx1NTVmOVx1NTVmYVx1NTVmYlx1NTVmY1x1NTVmZlx1NTYwMlx1NTYwM1x1NTYwNFx1NTYwNVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzRdW0Vd''@;'; + put 'put ''XT0zNDMwNCtFLExbMzQzMDQrRV09QlsxMzRdW0VdKTtmb3IoQlsxMzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU2MDZcdTU2MDdcdTU2MGFcdTU2MGJcdTU2MGRcdTU2MTBcdTU2MTFcdTU2MTJcdTU2MTNcdTU2MTRcdTU2MTVc''@;'; + put 'put ''dTU2MTZcdTU2MTdcdTU2MTlcdTU2MWFcdTU2MWNcdTU2MWRcdTU2MjBcdTU2MjFcdTU2MjJcdTU2MjVcdTU2MjZcdTU2MjhcdTU2MjlcdTU2MmFcdTU2MmJcdTU2MmVcdTU2MmZcdTU2MzBcdTU2MzNcdTU2MzVcdTU2MzdcdTU2MzhcdTU2M2FcdTU2M2NcdTU2M2RcdTU2M2VcdTU2NDBcdTU2''@;'; + put 'put ''NDFcdTU2NDJcdTU2NDNcdTU2NDRcdTU2NDVcdTU2NDZcdTU2NDdcdTU2NDhcdTU2NDlcdTU2NGFcdTU2NGJcdTU2NGZcdTU2NTBcdTU2NTFcdTU2NTJcdTU2NTNcdTU2NTVcdTU2NTZcdTU2NWFcdTU2NWJcdTU2NWRcdTU2NWVcdTU2NWZcdTU2NjBcdTU2NjFcdWZmZmRcdTU2NjNcdTU2NjVc''@;'; + put 'put ''dTU2NjZcdTU2NjdcdTU2NmRcdTU2NmVcdTU2NmZcdTU2NzBcdTU2NzJcdTU2NzNcdTU2NzRcdTU2NzVcdTU2NzdcdTU2NzhcdTU2NzlcdTU2N2FcdTU2N2RcdTU2N2VcdTU2N2ZcdTU2ODBcdTU2ODFcdTU2ODJcdTU2ODNcdTU2ODRcdTU2ODdcdTU2ODhcdTU2ODlcdTU2OGFcdTU2OGJcdTU2''@;'; + put 'put ''OGNcdTU2OGRcdTU2OTBcdTU2OTFcdTU2OTJcdTU2OTRcdTU2OTVcdTU2OTZcdTU2OTdcdTU2OThcdTU2OTlcdTU2OWFcdTU2OWJcdTU2OWNcdTU2OWRcdTU2OWVcdTU2OWZcdTU2YTBcdTU2YTFcdTU2YTJcdTU2YTRcdTU2YTVcdTU2YTZcdTU2YTdcdTU2YThcdTU2YTlcdTU2YWFcdTU2YWJc''@;'; + put 'put ''dTU2YWNcdTU2YWRcdTU2YWVcdTU2YjBcdTU2YjFcdTU2YjJcdTU2YjNcdTU2YjRcdTU2YjVcdTU2YjZcdTU2YjhcdTU2YjlcdTU2YmFcdTU2YmJcdTU2YmRcdTU2YmVcdTU2YmZcdTU2YzBcdTU2YzFcdTU2YzJcdTU2YzNcdTU2YzRcdTU2YzVcdTU2YzZcdTU2YzdcdTU2YzhcdTU2YzlcdTU2''@;'; + put 'put ''Y2JcdTU2Y2NcdTU2Y2RcdTU2Y2VcdTU2Y2ZcdTU2ZDBcdTU2ZDFcdTU2ZDJcdTU2ZDNcdTU2ZDVcdTU2ZDZcdTU2ZDhcdTU2ZDlcdTU2ZGNcdTU2ZTNcdTU2ZTVcdTU2ZTZcdTU2ZTdcdTU2ZThcdTU2ZTlcdTU2ZWFcdTU2ZWNcdTU2ZWVcdTU2ZWZcdTU2ZjJcdTU2ZjNcdTU2ZjZcdTU2Zjdc''@;'; + put 'put ''dTU2ZjhcdTU2ZmJcdTU2ZmNcdTU3MDBcdTU3MDFcdTU3MDJcdTU3MDVcdTU3MDdcdTU3MGJcdTU3MGNcdTU3MGRcdTU3MGVcdTU3MGZcdTU3MTBcdTU3MTFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzNV1bRV0uY2hhckNvZGVBdCgwKSYm''@;'; + put 'put ''KG1lW0JbMTM1XVtFXV09MzQ1NjArRSxMWzM0NTYwK0VdPUJbMTM1XVtFXSk7Zm9yKEJbMTM2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NzEyXHU1NzEzXHU1NzE0XHU1NzE1XHU1NzE2XHU1NzE3XHU1NzE4XHU1NzE5XHU1NzFh''@;'; + put 'put ''XHU1NzFiXHU1NzFkXHU1NzFlXHU1NzIwXHU1NzIxXHU1NzIyXHU1NzI0XHU1NzI1XHU1NzI2XHU1NzI3XHU1NzJiXHU1NzMxXHU1NzMyXHU1NzM0XHU1NzM1XHU1NzM2XHU1NzM3XHU1NzM4XHU1NzNjXHU1NzNkXHU1NzNmXHU1NzQxXHU1NzQzXHU1NzQ0XHU1NzQ1XHU1NzQ2XHU1NzQ4XHU1''@;'; + put 'put ''NzQ5XHU1NzRiXHU1NzUyXHU1NzUzXHU1NzU0XHU1NzU1XHU1NzU2XHU1NzU4XHU1NzU5XHU1NzYyXHU1NzYzXHU1NzY1XHU1NzY3XHU1NzZjXHU1NzZlXHU1NzcwXHU1NzcxXHU1NzcyXHU1Nzc0XHU1Nzc1XHU1Nzc4XHU1Nzc5XHU1NzdhXHU1NzdkXHU1NzdlXHU1NzdmXHU1NzgwXHVmZmZk''@;'; + put 'put ''XHU1NzgxXHU1Nzg3XHU1Nzg4XHU1Nzg5XHU1NzhhXHU1NzhkXHU1NzhlXHU1NzhmXHU1NzkwXHU1NzkxXHU1Nzk0XHU1Nzk1XHU1Nzk2XHU1Nzk3XHU1Nzk4XHU1Nzk5XHU1NzlhXHU1NzljXHU1NzlkXHU1NzllXHU1NzlmXHU1N2E1XHU1N2E4XHU1N2FhXHU1N2FjXHU1N2FmXHU1N2IwXHU1''@;'; + put 'put ''N2IxXHU1N2IzXHU1N2I1XHU1N2I2XHU1N2I3XHU1N2I5XHU1N2JhXHU1N2JiXHU1N2JjXHU1N2JkXHU1N2JlXHU1N2JmXHU1N2MwXHU1N2MxXHU1N2M0XHU1N2M1XHU1N2M2XHU1N2M3XHU1N2M4XHU1N2M5XHU1N2NhXHU1N2NjXHU1N2NkXHU1N2QwXHU1N2QxXHU1N2QzXHU1N2Q2XHU1N2Q3''@;'; + put 'put ''XHU1N2RiXHU1N2RjXHU1N2RlXHU1N2UxXHU1N2UyXHU1N2UzXHU1N2U1XHU1N2U2XHU1N2U3XHU1N2U4XHU1N2U5XHU1N2VhXHU1N2ViXHU1N2VjXHU1N2VlXHU1N2YwXHU1N2YxXHU1N2YyXHU1N2YzXHU1N2Y1XHU1N2Y2XHU1N2Y3XHU1N2ZiXHU1N2ZjXHU1N2ZlXHU1N2ZmXHU1ODAxXHU1''@;'; + put 'put ''ODAzXHU1ODA0XHU1ODA1XHU1ODA4XHU1ODA5XHU1ODBhXHU1ODBjXHU1ODBlXHU1ODBmXHU1ODEwXHU1ODEyXHU1ODEzXHU1ODE0XHU1ODE2XHU1ODE3XHU1ODE4XHU1ODFhXHU1ODFiXHU1ODFjXHU1ODFkXHU1ODFmXHU1ODIyXHU1ODIzXHU1ODI1XHU1ODI2XHU1ODI3XHU1ODI4XHU1ODI5''@;'; + put 'put ''XHU1ODJiXHU1ODJjXHU1ODJkXHU1ODJlXHU1ODJmXHU1ODMxXHU1ODMyXHU1ODMzXHU1ODM0XHU1ODM2XHU1ODM3XHU1ODM4XHU1ODM5XHU1ODNhXHU1ODNiXHU1ODNjXHU1ODNkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzZdW0VdLmNo''@;'; + put 'put ''YXJDb2RlQXQoMCkmJihtZVtCWzEzNl1bRV1dPTM0ODE2K0UsTFszNDgxNitFXT1CWzEzNl1bRV0pO2ZvcihCWzEzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTgzZVx1NTgzZlx1NTg0MFx1NTg0MVx1NTg0Mlx1NTg0M1x1NTg0''@;'; + put 'put ''NVx1NTg0Nlx1NTg0N1x1NTg0OFx1NTg0OVx1NTg0YVx1NTg0Ylx1NTg0ZVx1NTg0Zlx1NTg1MFx1NTg1Mlx1NTg1M1x1NTg1NVx1NTg1Nlx1NTg1N1x1NTg1OVx1NTg1YVx1NTg1Ylx1NTg1Y1x1NTg1ZFx1NTg1Zlx1NTg2MFx1NTg2MVx1NTg2Mlx1NTg2M1x1NTg2NFx1NTg2Nlx1NTg2N1x1''@;'; + put 'put ''NTg2OFx1NTg2OVx1NTg2YVx1NTg2ZFx1NTg2ZVx1NTg2Zlx1NTg3MFx1NTg3MVx1NTg3Mlx1NTg3M1x1NTg3NFx1NTg3NVx1NTg3Nlx1NTg3N1x1NTg3OFx1NTg3OVx1NTg3YVx1NTg3Ylx1NTg3Y1x1NTg3ZFx1NTg3Zlx1NTg4Mlx1NTg4NFx1NTg4Nlx1NTg4N1x1NTg4OFx1NTg4YVx1NTg4''@;'; + put 'put ''Ylx1NTg4Y1x1ZmZmZFx1NTg4ZFx1NTg4ZVx1NTg4Zlx1NTg5MFx1NTg5MVx1NTg5NFx1NTg5NVx1NTg5Nlx1NTg5N1x1NTg5OFx1NTg5Ylx1NTg5Y1x1NTg5ZFx1NThhMFx1NThhMVx1NThhMlx1NThhM1x1NThhNFx1NThhNVx1NThhNlx1NThhN1x1NThhYVx1NThhYlx1NThhY1x1NThhZFx1''@;'; + put 'put ''NThhZVx1NThhZlx1NThiMFx1NThiMVx1NThiMlx1NThiM1x1NThiNFx1NThiNVx1NThiNlx1NThiN1x1NThiOFx1NThiOVx1NThiYVx1NThiYlx1NThiZFx1NThiZVx1NThiZlx1NThjMFx1NThjMlx1NThjM1x1NThjNFx1NThjNlx1NThjN1x1NThjOFx1NThjOVx1NThjYVx1NThjYlx1NThj''@;'; + put 'put ''Y1x1NThjZFx1NThjZVx1NThjZlx1NThkMFx1NThkMlx1NThkM1x1NThkNFx1NThkNlx1NThkN1x1NThkOFx1NThkOVx1NThkYVx1NThkYlx1NThkY1x1NThkZFx1NThkZVx1NThkZlx1NThlMFx1NThlMVx1NThlMlx1NThlM1x1NThlNVx1NThlNlx1NThlN1x1NThlOFx1NThlOVx1NThlYVx1''@;'; + put 'put ''NThlZFx1NThlZlx1NThmMVx1NThmMlx1NThmNFx1NThmNVx1NThmN1x1NThmOFx1NThmYVx1NThmYlx1NThmY1x1NThmZFx1NThmZVx1NThmZlx1NTkwMFx1NTkwMVx1NTkwM1x1NTkwNVx1NTkwNlx1NTkwOFx1NTkwOVx1NTkwYVx1NTkwYlx1NTkwY1x1NTkwZVx1NTkxMFx1NTkxMVx1NTkx''@;'; + put 'put ''Mlx1NTkxM1x1NTkxN1x1NTkxOFx1NTkxYlx1NTkxZFx1NTkxZVx1NTkyMFx1NTkyMVx1NTkyMlx1NTkyM1x1NTkyNlx1NTkyOFx1NTkyY1x1NTkzMFx1NTkzMlx1NTkzM1x1NTkzNVx1NTkzNlx1NTkzYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzN10ubGVuZ3RoOysrRSk2NTUzMyE9''@;'; + put 'put ''PUJbMTM3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzddW0VdXT0zNTA3MitFLExbMzUwNzIrRV09QlsxMzddW0VdKTtmb3IoQlsxMzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU5M2RcdTU5M2VcdTU5M2ZcdTU5NDBcdTU5''@;'; + put 'put ''NDNcdTU5NDVcdTU5NDZcdTU5NGFcdTU5NGNcdTU5NGRcdTU5NTBcdTU5NTJcdTU5NTNcdTU5NTlcdTU5NWJcdTU5NWNcdTU5NWRcdTU5NWVcdTU5NWZcdTU5NjFcdTU5NjNcdTU5NjRcdTU5NjZcdTU5NjdcdTU5NjhcdTU5NjlcdTU5NmFcdTU5NmJcdTU5NmNcdTU5NmRcdTU5NmVcdTU5NmZc''@;'; + put 'put ''dTU5NzBcdTU5NzFcdTU5NzJcdTU5NzVcdTU5NzdcdTU5N2FcdTU5N2JcdTU5N2NcdTU5N2VcdTU5N2ZcdTU5ODBcdTU5ODVcdTU5ODlcdTU5OGJcdTU5OGNcdTU5OGVcdTU5OGZcdTU5OTBcdTU5OTFcdTU5OTRcdTU5OTVcdTU5OThcdTU5OWFcdTU5OWJcdTU5OWNcdTU5OWRcdTU5OWZcdTU5''@;'; + put 'put ''YTBcdTU5YTFcdTU5YTJcdTU5YTZcdWZmZmRcdTU5YTdcdTU5YWNcdTU5YWRcdTU5YjBcdTU5YjFcdTU5YjNcdTU5YjRcdTU5YjVcdTU5YjZcdTU5YjdcdTU5YjhcdTU5YmFcdTU5YmNcdTU5YmRcdTU5YmZcdTU5YzBcdTU5YzFcdTU5YzJcdTU5YzNcdTU5YzRcdTU5YzVcdTU5YzdcdTU5Yzhc''@;'; + put 'put ''dTU5YzlcdTU5Y2NcdTU5Y2RcdTU5Y2VcdTU5Y2ZcdTU5ZDVcdTU5ZDZcdTU5ZDlcdTU5ZGJcdTU5ZGVcdTU5ZGZcdTU5ZTBcdTU5ZTFcdTU5ZTJcdTU5ZTRcdTU5ZTZcdTU5ZTdcdTU5ZTlcdTU5ZWFcdTU5ZWJcdTU5ZWRcdTU5ZWVcdTU5ZWZcdTU5ZjBcdTU5ZjFcdTU5ZjJcdTU5ZjNcdTU5''@;'; + put 'put ''ZjRcdTU5ZjVcdTU5ZjZcdTU5ZjdcdTU5ZjhcdTU5ZmFcdTU5ZmNcdTU5ZmRcdTU5ZmVcdTVhMDBcdTVhMDJcdTVhMGFcdTVhMGJcdTVhMGRcdTVhMGVcdTVhMGZcdTVhMTBcdTVhMTJcdTVhMTRcdTVhMTVcdTVhMTZcdTVhMTdcdTVhMTlcdTVhMWFcdTVhMWJcdTVhMWRcdTVhMWVcdTVhMjFc''@;'; + put 'put ''dTVhMjJcdTVhMjRcdTVhMjZcdTVhMjdcdTVhMjhcdTVhMmFcdTVhMmJcdTVhMmNcdTVhMmRcdTVhMmVcdTVhMmZcdTVhMzBcdTVhMzNcdTVhMzVcdTVhMzdcdTVhMzhcdTVhMzlcdTVhM2FcdTVhM2JcdTVhM2RcdTVhM2VcdTVhM2ZcdTVhNDFcdTVhNDJcdTVhNDNcdTVhNDRcdTVhNDVcdTVh''@;'; + put 'put ''NDdcdTVhNDhcdTVhNGJcdTVhNGNcdTVhNGRcdTVhNGVcdTVhNGZcdTVhNTBcdTVhNTFcdTVhNTJcdTVhNTNcdTVhNTRcdTVhNTZcdTVhNTdcdTVhNThcdTVhNTlcdTVhNWJcdTVhNWNcdTVhNWRcdTVhNWVcdTVhNWZcdTVhNjBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzhdLmxlbmd0''@;'; + put 'put ''aDsrK0UpNjU1MzMhPT1CWzEzOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM4XVtFXV09MzUzMjgrRSxMWzM1MzI4K0VdPUJbMTM4XVtFXSk7Zm9yKEJbMTM5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YTYxXHU1YTYzXHU1''@;'; + put 'put ''YTY0XHU1YTY1XHU1YTY2XHU1YTY4XHU1YTY5XHU1YTZiXHU1YTZjXHU1YTZkXHU1YTZlXHU1YTZmXHU1YTcwXHU1YTcxXHU1YTcyXHU1YTczXHU1YTc4XHU1YTc5XHU1YTdiXHU1YTdjXHU1YTdkXHU1YTdlXHU1YTgwXHU1YTgxXHU1YTgyXHU1YTgzXHU1YTg0XHU1YTg1XHU1YTg2XHU1YTg3''@;'; + put 'put ''XHU1YTg4XHU1YTg5XHU1YThhXHU1YThiXHU1YThjXHU1YThkXHU1YThlXHU1YThmXHU1YTkwXHU1YTkxXHU1YTkzXHU1YTk0XHU1YTk1XHU1YTk2XHU1YTk3XHU1YTk4XHU1YTk5XHU1YTljXHU1YTlkXHU1YTllXHU1YTlmXHU1YWEwXHU1YWExXHU1YWEyXHU1YWEzXHU1YWE0XHU1YWE1XHU1''@;'; + put 'put ''YWE2XHU1YWE3XHU1YWE4XHU1YWE5XHU1YWFiXHU1YWFjXHVmZmZkXHU1YWFkXHU1YWFlXHU1YWFmXHU1YWIwXHU1YWIxXHU1YWI0XHU1YWI2XHU1YWI3XHU1YWI5XHU1YWJhXHU1YWJiXHU1YWJjXHU1YWJkXHU1YWJmXHU1YWMwXHU1YWMzXHU1YWM0XHU1YWM1XHU1YWM2XHU1YWM3XHU1YWM4''@;'; + put 'put ''XHU1YWNhXHU1YWNiXHU1YWNkXHU1YWNlXHU1YWNmXHU1YWQwXHU1YWQxXHU1YWQzXHU1YWQ1XHU1YWQ3XHU1YWQ5XHU1YWRhXHU1YWRiXHU1YWRkXHU1YWRlXHU1YWRmXHU1YWUyXHU1YWU0XHU1YWU1XHU1YWU3XHU1YWU4XHU1YWVhXHU1YWVjXHU1YWVkXHU1YWVlXHU1YWVmXHU1YWYwXHU1''@;'; + put 'put ''YWYyXHU1YWYzXHU1YWY0XHU1YWY1XHU1YWY2XHU1YWY3XHU1YWY4XHU1YWY5XHU1YWZhXHU1YWZiXHU1YWZjXHU1YWZkXHU1YWZlXHU1YWZmXHU1YjAwXHU1YjAxXHU1YjAyXHU1YjAzXHU1YjA0XHU1YjA1XHU1YjA2XHU1YjA3XHU1YjA4XHU1YjBhXHU1YjBiXHU1YjBjXHU1YjBkXHU1YjBl''@;'; + put 'put ''XHU1YjBmXHU1YjEwXHU1YjExXHU1YjEyXHU1YjEzXHU1YjE0XHU1YjE1XHU1YjE4XHU1YjE5XHU1YjFhXHU1YjFiXHU1YjFjXHU1YjFkXHU1YjFlXHU1YjFmXHU1YjIwXHU1YjIxXHU1YjIyXHU1YjIzXHU1YjI0XHU1YjI1XHU1YjI2XHU1YjI3XHU1YjI4XHU1YjI5XHU1YjJhXHU1YjJiXHU1''@;'; + put 'put ''YjJjXHU1YjJkXHU1YjJlXHU1YjJmXHU1YjMwXHU1YjMxXHU1YjMzXHU1YjM1XHU1YjM2XHU1YjM4XHU1YjM5XHU1YjNhXHU1YjNiXHU1YjNjXHU1YjNkXHU1YjNlXHU1YjNmXHU1YjQxXHU1YjQyXHU1YjQzXHU1YjQ0XHU1YjQ1XHU1YjQ2XHU1YjQ3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0Uh''@;'; + put 'put ''PUJbMTM5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzOV1bRV1dPTM1NTg0K0UsTFszNTU4NCtFXT1CWzEzOV1bRV0pO2ZvcihCWzE0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''NWI0OFx1NWI0OVx1NWI0YVx1NWI0Ylx1NWI0Y1x1NWI0ZFx1NWI0ZVx1NWI0Zlx1NWI1Mlx1NWI1Nlx1NWI1ZVx1NWI2MFx1NWI2MVx1NWI2N1x1NWI2OFx1NWI2Ylx1NWI2ZFx1NWI2ZVx1NWI2Zlx1NWI3Mlx1NWI3NFx1NWI3Nlx1NWI3N1x1NWI3OFx1NWI3OVx1NWI3Ylx1NWI3Y1x1NWI3''@;'; + put 'put ''ZVx1NWI3Zlx1NWI4Mlx1NWI4Nlx1NWI4YVx1NWI4ZFx1NWI4ZVx1NWI5MFx1NWI5MVx1NWI5Mlx1NWI5NFx1NWI5Nlx1NWI5Zlx1NWJhN1x1NWJhOFx1NWJhOVx1NWJhY1x1NWJhZFx1NWJhZVx1NWJhZlx1NWJiMVx1NWJiMlx1NWJiN1x1NWJiYVx1NWJiYlx1NWJiY1x1NWJjMFx1NWJjMVx1''@;'; + put 'put ''NWJjM1x1NWJjOFx1NWJjOVx1NWJjYVx1NWJjYlx1NWJjZFx1NWJjZVx1NWJjZlx1ZmZmZFx1NWJkMVx1NWJkNFx1NWJkNVx1NWJkNlx1NWJkN1x1NWJkOFx1NWJkOVx1NWJkYVx1NWJkYlx1NWJkY1x1NWJlMFx1NWJlMlx1NWJlM1x1NWJlNlx1NWJlN1x1NWJlOVx1NWJlYVx1NWJlYlx1NWJl''@;'; + put 'put ''Y1x1NWJlZFx1NWJlZlx1NWJmMVx1NWJmMlx1NWJmM1x1NWJmNFx1NWJmNVx1NWJmNlx1NWJmN1x1NWJmZFx1NWJmZVx1NWMwMFx1NWMwMlx1NWMwM1x1NWMwNVx1NWMwN1x1NWMwOFx1NWMwYlx1NWMwY1x1NWMwZFx1NWMwZVx1NWMxMFx1NWMxMlx1NWMxM1x1NWMxN1x1NWMxOVx1NWMxYlx1''@;'; + put 'put ''NWMxZVx1NWMxZlx1NWMyMFx1NWMyMVx1NWMyM1x1NWMyNlx1NWMyOFx1NWMyOVx1NWMyYVx1NWMyYlx1NWMyZFx1NWMyZVx1NWMyZlx1NWMzMFx1NWMzMlx1NWMzM1x1NWMzNVx1NWMzNlx1NWMzN1x1NWM0M1x1NWM0NFx1NWM0Nlx1NWM0N1x1NWM0Y1x1NWM0ZFx1NWM1Mlx1NWM1M1x1NWM1''@;'; + put 'put ''NFx1NWM1Nlx1NWM1N1x1NWM1OFx1NWM1YVx1NWM1Ylx1NWM1Y1x1NWM1ZFx1NWM1Zlx1NWM2Mlx1NWM2NFx1NWM2N1x1NWM2OFx1NWM2OVx1NWM2YVx1NWM2Ylx1NWM2Y1x1NWM2ZFx1NWM3MFx1NWM3Mlx1NWM3M1x1NWM3NFx1NWM3NVx1NWM3Nlx1NWM3N1x1NWM3OFx1NWM3Ylx1NWM3Y1x1''@;'; + put 'put ''NWM3ZFx1NWM3ZVx1NWM4MFx1NWM4M1x1NWM4NFx1NWM4NVx1NWM4Nlx1NWM4N1x1NWM4OVx1NWM4YVx1NWM4Ylx1NWM4ZVx1NWM4Zlx1NWM5Mlx1NWM5M1x1NWM5NVx1NWM5ZFx1NWM5ZVx1NWM5Zlx1NWNhMFx1NWNhMVx1NWNhNFx1NWNhNVx1NWNhNlx1NWNhN1x1NWNhOFx1ZmZmZCIuc3Bs''@;'; + put 'put ''aXQoIiIpLEU9MDtFIT1CWzE0MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDBdW0VdXT0zNTg0MCtFLExbMzU4NDArRV09QlsxNDBdW0VdKTtmb3IoQlsxNDFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdTVjYWFcdTVjYWVcdTVjYWZcdTVjYjBcdTVjYjJcdTVjYjRcdTVjYjZcdTVjYjlcdTVjYmFcdTVjYmJcdTVjYmNcdTVjYmVcdTVjYzBcdTVjYzJcdTVjYzNcdTVjYzVcdTVjYzZcdTVjYzdcdTVjYzhcdTVjYzlcdTVjY2FcdTVjY2NcdTVjY2RcdTVjY2VcdTVjY2ZcdTVj''@;'; + put 'put ''ZDBcdTVjZDFcdTVjZDNcdTVjZDRcdTVjZDVcdTVjZDZcdTVjZDdcdTVjZDhcdTVjZGFcdTVjZGJcdTVjZGNcdTVjZGRcdTVjZGVcdTVjZGZcdTVjZTBcdTVjZTJcdTVjZTNcdTVjZTdcdTVjZTlcdTVjZWJcdTVjZWNcdTVjZWVcdTVjZWZcdTVjZjFcdTVjZjJcdTVjZjNcdTVjZjRcdTVjZjVc''@;'; + put 'put ''dTVjZjZcdTVjZjdcdTVjZjhcdTVjZjlcdTVjZmFcdTVjZmNcdTVjZmRcdTVjZmVcdTVjZmZcdTVkMDBcdWZmZmRcdTVkMDFcdTVkMDRcdTVkMDVcdTVkMDhcdTVkMDlcdTVkMGFcdTVkMGJcdTVkMGNcdTVkMGRcdTVkMGZcdTVkMTBcdTVkMTFcdTVkMTJcdTVkMTNcdTVkMTVcdTVkMTdcdTVk''@;'; + put 'put ''MThcdTVkMTlcdTVkMWFcdTVkMWNcdTVkMWRcdTVkMWZcdTVkMjBcdTVkMjFcdTVkMjJcdTVkMjNcdTVkMjVcdTVkMjhcdTVkMmFcdTVkMmJcdTVkMmNcdTVkMmZcdTVkMzBcdTVkMzFcdTVkMzJcdTVkMzNcdTVkMzVcdTVkMzZcdTVkMzdcdTVkMzhcdTVkMzlcdTVkM2FcdTVkM2JcdTVkM2Nc''@;'; + put 'put ''dTVkM2ZcdTVkNDBcdTVkNDFcdTVkNDJcdTVkNDNcdTVkNDRcdTVkNDVcdTVkNDZcdTVkNDhcdTVkNDlcdTVkNGRcdTVkNGVcdTVkNGZcdTVkNTBcdTVkNTFcdTVkNTJcdTVkNTNcdTVkNTRcdTVkNTVcdTVkNTZcdTVkNTdcdTVkNTlcdTVkNWFcdTVkNWNcdTVkNWVcdTVkNWZcdTVkNjBcdTVk''@;'; + put 'put ''NjFcdTVkNjJcdTVkNjNcdTVkNjRcdTVkNjVcdTVkNjZcdTVkNjdcdTVkNjhcdTVkNmFcdTVkNmRcdTVkNmVcdTVkNzBcdTVkNzFcdTVkNzJcdTVkNzNcdTVkNzVcdTVkNzZcdTVkNzdcdTVkNzhcdTVkNzlcdTVkN2FcdTVkN2JcdTVkN2NcdTVkN2RcdTVkN2VcdTVkN2ZcdTVkODBcdTVkODFc''@;'; + put 'put ''dTVkODNcdTVkODRcdTVkODVcdTVkODZcdTVkODdcdTVkODhcdTVkODlcdTVkOGFcdTVkOGJcdTVkOGNcdTVkOGRcdTVkOGVcdTVkOGZcdTVkOTBcdTVkOTFcdTVkOTJcdTVkOTNcdTVkOTRcdTVkOTVcdTVkOTZcdTVkOTdcdTVkOThcdTVkOWFcdTVkOWJcdTVkOWNcdTVkOWVcdTVkOWZcdTVk''@;'; + put 'put ''YTBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQxXVtFXV09MzYwOTYrRSxMWzM2MDk2K0VdPUJbMTQxXVtFXSk7Zm9yKEJbMTQyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZGExXHU1ZGEyXHU1ZGEzXHU1ZGE0XHU1ZGE1XHU1ZGE2XHU1ZGE3XHU1ZGE4XHU1ZGE5XHU1ZGFhXHU1ZGFiXHU1ZGFjXHU1ZGFkXHU1ZGFlXHU1ZGFmXHU1ZGIwXHU1ZGIxXHU1ZGIyXHU1ZGIzXHU1ZGI0XHU1ZGI1XHU1ZGI2XHU1ZGI4XHU1''@;'; + put 'put ''ZGI5XHU1ZGJhXHU1ZGJiXHU1ZGJjXHU1ZGJkXHU1ZGJlXHU1ZGJmXHU1ZGMwXHU1ZGMxXHU1ZGMyXHU1ZGMzXHU1ZGM0XHU1ZGM2XHU1ZGM3XHU1ZGM4XHU1ZGM5XHU1ZGNhXHU1ZGNiXHU1ZGNjXHU1ZGNlXHU1ZGNmXHU1ZGQwXHU1ZGQxXHU1ZGQyXHU1ZGQzXHU1ZGQ0XHU1ZGQ1XHU1ZGQ2''@;'; + put 'put ''XHU1ZGQ3XHU1ZGQ4XHU1ZGQ5XHU1ZGRhXHU1ZGRjXHU1ZGRmXHU1ZGUwXHU1ZGUzXHU1ZGU0XHU1ZGVhXHU1ZGVjXHU1ZGVkXHVmZmZkXHU1ZGYwXHU1ZGY1XHU1ZGY2XHU1ZGY4XHU1ZGY5XHU1ZGZhXHU1ZGZiXHU1ZGZjXHU1ZGZmXHU1ZTAwXHU1ZTA0XHU1ZTA3XHU1ZTA5XHU1ZTBhXHU1''@;'; + put 'put ''ZTBiXHU1ZTBkXHU1ZTBlXHU1ZTEyXHU1ZTEzXHU1ZTE3XHU1ZTFlXHU1ZTFmXHU1ZTIwXHU1ZTIxXHU1ZTIyXHU1ZTIzXHU1ZTI0XHU1ZTI1XHU1ZTI4XHU1ZTI5XHU1ZTJhXHU1ZTJiXHU1ZTJjXHU1ZTJmXHU1ZTMwXHU1ZTMyXHU1ZTMzXHU1ZTM0XHU1ZTM1XHU1ZTM2XHU1ZTM5XHU1ZTNh''@;'; + put 'put ''XHU1ZTNlXHU1ZTNmXHU1ZTQwXHU1ZTQxXHU1ZTQzXHU1ZTQ2XHU1ZTQ3XHU1ZTQ4XHU1ZTQ5XHU1ZTRhXHU1ZTRiXHU1ZTRkXHU1ZTRlXHU1ZTRmXHU1ZTUwXHU1ZTUxXHU1ZTUyXHU1ZTUzXHU1ZTU2XHU1ZTU3XHU1ZTU4XHU1ZTU5XHU1ZTVhXHU1ZTVjXHU1ZTVkXHU1ZTVmXHU1ZTYwXHU1''@;'; + put 'put ''ZTYzXHU1ZTY0XHU1ZTY1XHU1ZTY2XHU1ZTY3XHU1ZTY4XHU1ZTY5XHU1ZTZhXHU1ZTZiXHU1ZTZjXHU1ZTZkXHU1ZTZlXHU1ZTZmXHU1ZTcwXHU1ZTcxXHU1ZTc1XHU1ZTc3XHU1ZTc5XHU1ZTdlXHU1ZTgxXHU1ZTgyXHU1ZTgzXHU1ZTg1XHU1ZTg4XHU1ZTg5XHU1ZThjXHU1ZThkXHU1ZThl''@;'; + put 'put ''XHU1ZTkyXHU1ZTk4XHU1ZTliXHU1ZTlkXHU1ZWExXHU1ZWEyXHU1ZWEzXHU1ZWE0XHU1ZWE4XHU1ZWE5XHU1ZWFhXHU1ZWFiXHU1ZWFjXHU1ZWFlXHU1ZWFmXHU1ZWIwXHU1ZWIxXHU1ZWIyXHU1ZWI0XHU1ZWJhXHU1ZWJiXHU1ZWJjXHU1ZWJkXHU1ZWJmXHU1ZWMwXHU1ZWMxXHU1ZWMyXHU1''@;'; + put 'put ''ZWMzXHU1ZWM0XHU1ZWM1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0Ml1bRV1dPTM2MzUyK0UsTFszNjM1MitFXT1CWzE0Ml1bRV0pO2ZvcihCWzE0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWVjNlx1NWVjN1x1NWVjOFx1NWVjYlx1NWVjY1x1NWVjZFx1NWVjZVx1NWVjZlx1NWVkMFx1NWVkNFx1NWVkNVx1NWVkN1x1NWVkOFx1NWVkOVx1NWVkYVx1NWVkY1x1NWVkZFx1NWVkZVx1NWVkZlx1NWVlMFx1NWVlMVx1''@;'; + put 'put ''NWVlMlx1NWVlM1x1NWVlNFx1NWVlNVx1NWVlNlx1NWVlN1x1NWVlOVx1NWVlYlx1NWVlY1x1NWVlZFx1NWVlZVx1NWVlZlx1NWVmMFx1NWVmMVx1NWVmMlx1NWVmM1x1NWVmNVx1NWVmOFx1NWVmOVx1NWVmYlx1NWVmY1x1NWVmZFx1NWYwNVx1NWYwNlx1NWYwN1x1NWYwOVx1NWYwY1x1NWYw''@;'; + put 'put ''ZFx1NWYwZVx1NWYxMFx1NWYxMlx1NWYxNFx1NWYxNlx1NWYxOVx1NWYxYVx1NWYxY1x1NWYxZFx1NWYxZVx1NWYyMVx1NWYyMlx1NWYyM1x1NWYyNFx1ZmZmZFx1NWYyOFx1NWYyYlx1NWYyY1x1NWYyZVx1NWYzMFx1NWYzMlx1NWYzM1x1NWYzNFx1NWYzNVx1NWYzNlx1NWYzN1x1NWYzOFx1''@;'; + put 'put ''NWYzYlx1NWYzZFx1NWYzZVx1NWYzZlx1NWY0MVx1NWY0Mlx1NWY0M1x1NWY0NFx1NWY0NVx1NWY0Nlx1NWY0N1x1NWY0OFx1NWY0OVx1NWY0YVx1NWY0Ylx1NWY0Y1x1NWY0ZFx1NWY0ZVx1NWY0Zlx1NWY1MVx1NWY1NFx1NWY1OVx1NWY1YVx1NWY1Ylx1NWY1Y1x1NWY1ZVx1NWY1Zlx1NWY2''@;'; + put 'put ''MFx1NWY2M1x1NWY2NVx1NWY2N1x1NWY2OFx1NWY2Ylx1NWY2ZVx1NWY2Zlx1NWY3Mlx1NWY3NFx1NWY3NVx1NWY3Nlx1NWY3OFx1NWY3YVx1NWY3ZFx1NWY3ZVx1NWY3Zlx1NWY4M1x1NWY4Nlx1NWY4ZFx1NWY4ZVx1NWY4Zlx1NWY5MVx1NWY5M1x1NWY5NFx1NWY5Nlx1NWY5YVx1NWY5Ylx1''@;'; + put 'put ''NWY5ZFx1NWY5ZVx1NWY5Zlx1NWZhMFx1NWZhMlx1NWZhM1x1NWZhNFx1NWZhNVx1NWZhNlx1NWZhN1x1NWZhOVx1NWZhYlx1NWZhY1x1NWZhZlx1NWZiMFx1NWZiMVx1NWZiMlx1NWZiM1x1NWZiNFx1NWZiNlx1NWZiOFx1NWZiOVx1NWZiYVx1NWZiYlx1NWZiZVx1NWZiZlx1NWZjMFx1NWZj''@;'; + put 'put ''MVx1NWZjMlx1NWZjN1x1NWZjOFx1NWZjYVx1NWZjYlx1NWZjZVx1NWZkM1x1NWZkNFx1NWZkNVx1NWZkYVx1NWZkYlx1NWZkY1x1NWZkZVx1NWZkZlx1NWZlMlx1NWZlM1x1NWZlNVx1NWZlNlx1NWZlOFx1NWZlOVx1NWZlY1x1NWZlZlx1NWZmMFx1NWZmMlx1NWZmM1x1NWZmNFx1NWZmNlx1''@;'; + put 'put ''NWZmN1x1NWZmOVx1NWZmYVx1NWZmY1x1NjAwN1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDNdW0VdXT0zNjYwOCtFLExbMzY2MDgrRV09QlsxNDNdW0VdKTtmb3IoQlsxNDRdPSJcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwMDhcdTYwMDlcdTYwMGJcdTYwMGNcdTYwMTBcdTYwMTFcdTYwMTNcdTYwMTdcdTYwMThcdTYwMWFcdTYwMWVcdTYwMWZcdTYwMjJcdTYwMjNcdTYwMjRcdTYwMmNcdTYwMmRcdTYwMmVcdTYwMzBc''@;'; + put 'put ''dTYwMzFcdTYwMzJcdTYwMzNcdTYwMzRcdTYwMzZcdTYwMzdcdTYwMzhcdTYwMzlcdTYwM2FcdTYwM2RcdTYwM2VcdTYwNDBcdTYwNDRcdTYwNDVcdTYwNDZcdTYwNDdcdTYwNDhcdTYwNDlcdTYwNGFcdTYwNGNcdTYwNGVcdTYwNGZcdTYwNTFcdTYwNTNcdTYwNTRcdTYwNTZcdTYwNTdcdTYw''@;'; + put 'put ''NThcdTYwNWJcdTYwNWNcdTYwNWVcdTYwNWZcdTYwNjBcdTYwNjFcdTYwNjVcdTYwNjZcdTYwNmVcdTYwNzFcdTYwNzJcdTYwNzRcdTYwNzVcdTYwNzdcdTYwN2VcdTYwODBcdWZmZmRcdTYwODFcdTYwODJcdTYwODVcdTYwODZcdTYwODdcdTYwODhcdTYwOGFcdTYwOGJcdTYwOGVcdTYwOGZc''@;'; + put 'put ''dTYwOTBcdTYwOTFcdTYwOTNcdTYwOTVcdTYwOTdcdTYwOThcdTYwOTlcdTYwOWNcdTYwOWVcdTYwYTFcdTYwYTJcdTYwYTRcdTYwYTVcdTYwYTdcdTYwYTlcdTYwYWFcdTYwYWVcdTYwYjBcdTYwYjNcdTYwYjVcdTYwYjZcdTYwYjdcdTYwYjlcdTYwYmFcdTYwYmRcdTYwYmVcdTYwYmZcdTYw''@;'; + put 'put ''YzBcdTYwYzFcdTYwYzJcdTYwYzNcdTYwYzRcdTYwYzdcdTYwYzhcdTYwYzlcdTYwY2NcdTYwY2RcdTYwY2VcdTYwY2ZcdTYwZDBcdTYwZDJcdTYwZDNcdTYwZDRcdTYwZDZcdTYwZDdcdTYwZDlcdTYwZGJcdTYwZGVcdTYwZTFcdTYwZTJcdTYwZTNcdTYwZTRcdTYwZTVcdTYwZWFcdTYwZjFc''@;'; + put 'put ''dTYwZjJcdTYwZjVcdTYwZjdcdTYwZjhcdTYwZmJcdTYwZmNcdTYwZmRcdTYwZmVcdTYwZmZcdTYxMDJcdTYxMDNcdTYxMDRcdTYxMDVcdTYxMDdcdTYxMGFcdTYxMGJcdTYxMGNcdTYxMTBcdTYxMTFcdTYxMTJcdTYxMTNcdTYxMTRcdTYxMTZcdTYxMTdcdTYxMThcdTYxMTlcdTYxMWJcdTYx''@;'; + put 'put ''MWNcdTYxMWRcdTYxMWVcdTYxMjFcdTYxMjJcdTYxMjVcdTYxMjhcdTYxMjlcdTYxMmFcdTYxMmNcdTYxMmRcdTYxMmVcdTYxMmZcdTYxMzBcdTYxMzFcdTYxMzJcdTYxMzNcdTYxMzRcdTYxMzVcdTYxMzZcdTYxMzdcdTYxMzhcdTYxMzlcdTYxM2FcdTYxM2JcdTYxM2NcdTYxM2RcdTYxM2Vc''@;'; + put 'put ''dTYxNDBcdTYxNDFcdTYxNDJcdTYxNDNcdTYxNDRcdTYxNDVcdTYxNDZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ0XVtFXV09MzY4NjQrRSxMWzM2ODY0K0VdPUJbMTQ0XVtFXSk7Zm9y''@;'; + put 'put ''KEJbMTQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MTQ3XHU2MTQ5XHU2MTRiXHU2MTRkXHU2MTRmXHU2MTUwXHU2MTUyXHU2MTUzXHU2MTU0XHU2MTU2XHU2MTU3XHU2MTU4XHU2MTU5XHU2MTVhXHU2MTViXHU2MTVjXHU2MTVl''@;'; + put 'put ''XHU2MTVmXHU2MTYwXHU2MTYxXHU2MTYzXHU2MTY0XHU2MTY1XHU2MTY2XHU2MTY5XHU2MTZhXHU2MTZiXHU2MTZjXHU2MTZkXHU2MTZlXHU2MTZmXHU2MTcxXHU2MTcyXHU2MTczXHU2MTc0XHU2MTc2XHU2MTc4XHU2MTc5XHU2MTdhXHU2MTdiXHU2MTdjXHU2MTdkXHU2MTdlXHU2MTdmXHU2''@;'; + put 'put ''MTgwXHU2MTgxXHU2MTgyXHU2MTgzXHU2MTg0XHU2MTg1XHU2MTg2XHU2MTg3XHU2MTg4XHU2MTg5XHU2MThhXHU2MThjXHU2MThkXHU2MThmXHU2MTkwXHU2MTkxXHU2MTkyXHU2MTkzXHU2MTk1XHVmZmZkXHU2MTk2XHU2MTk3XHU2MTk4XHU2MTk5XHU2MTlhXHU2MTliXHU2MTljXHU2MTll''@;'; + put 'put ''XHU2MTlmXHU2MWEwXHU2MWExXHU2MWEyXHU2MWEzXHU2MWE0XHU2MWE1XHU2MWE2XHU2MWFhXHU2MWFiXHU2MWFkXHU2MWFlXHU2MWFmXHU2MWIwXHU2MWIxXHU2MWIyXHU2MWIzXHU2MWI0XHU2MWI1XHU2MWI2XHU2MWI4XHU2MWI5XHU2MWJhXHU2MWJiXHU2MWJjXHU2MWJkXHU2MWJmXHU2''@;'; + put 'put ''MWMwXHU2MWMxXHU2MWMzXHU2MWM0XHU2MWM1XHU2MWM2XHU2MWM3XHU2MWM5XHU2MWNjXHU2MWNkXHU2MWNlXHU2MWNmXHU2MWQwXHU2MWQzXHU2MWQ1XHU2MWQ2XHU2MWQ3XHU2MWQ4XHU2MWQ5XHU2MWRhXHU2MWRiXHU2MWRjXHU2MWRkXHU2MWRlXHU2MWRmXHU2MWUwXHU2MWUxXHU2MWUy''@;'; + put 'put ''XHU2MWUzXHU2MWU0XHU2MWU1XHU2MWU3XHU2MWU4XHU2MWU5XHU2MWVhXHU2MWViXHU2MWVjXHU2MWVkXHU2MWVlXHU2MWVmXHU2MWYwXHU2MWYxXHU2MWYyXHU2MWYzXHU2MWY0XHU2MWY2XHU2MWY3XHU2MWY4XHU2MWY5XHU2MWZhXHU2MWZiXHU2MWZjXHU2MWZkXHU2MWZlXHU2MjAwXHU2''@;'; + put 'put ''MjAxXHU2MjAyXHU2MjAzXHU2MjA0XHU2MjA1XHU2MjA3XHU2MjA5XHU2MjEzXHU2MjE0XHU2MjE5XHU2MjFjXHU2MjFkXHU2MjFlXHU2MjIwXHU2MjIzXHU2MjI2XHU2MjI3XHU2MjI4XHU2MjI5XHU2MjJiXHU2MjJkXHU2MjJmXHU2MjMwXHU2MjMxXHU2MjMyXHU2MjM1XHU2MjM2XHU2MjM4''@;'; + put 'put ''XHU2MjM5XHU2MjNhXHU2MjNiXHU2MjNjXHU2MjQyXHU2MjQ0XHU2MjQ1XHU2MjQ2XHU2MjRhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0NV1bRV1dPTM3MTIwK0UsTFszNzEyMCtFXT1C''@;'; + put 'put ''WzE0NV1bRV0pO2ZvcihCWzE0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjI0Zlx1NjI1MFx1NjI1NVx1NjI1Nlx1NjI1N1x1NjI1OVx1NjI1YVx1NjI1Y1x1NjI1ZFx1NjI1ZVx1NjI1Zlx1NjI2MFx1NjI2MVx1NjI2Mlx1NjI2''@;'; + put 'put ''NFx1NjI2NVx1NjI2OFx1NjI3MVx1NjI3Mlx1NjI3NFx1NjI3NVx1NjI3N1x1NjI3OFx1NjI3YVx1NjI3Ylx1NjI3ZFx1NjI4MVx1NjI4Mlx1NjI4M1x1NjI4NVx1NjI4Nlx1NjI4N1x1NjI4OFx1NjI4Ylx1NjI4Y1x1NjI4ZFx1NjI4ZVx1NjI4Zlx1NjI5MFx1NjI5NFx1NjI5OVx1NjI5Y1x1''@;'; + put 'put ''NjI5ZFx1NjI5ZVx1NjJhM1x1NjJhNlx1NjJhN1x1NjJhOVx1NjJhYVx1NjJhZFx1NjJhZVx1NjJhZlx1NjJiMFx1NjJiMlx1NjJiM1x1NjJiNFx1NjJiNlx1NjJiN1x1NjJiOFx1NjJiYVx1NjJiZVx1NjJjMFx1NjJjMVx1ZmZmZFx1NjJjM1x1NjJjYlx1NjJjZlx1NjJkMVx1NjJkNVx1NjJk''@;'; + put 'put ''ZFx1NjJkZVx1NjJlMFx1NjJlMVx1NjJlNFx1NjJlYVx1NjJlYlx1NjJmMFx1NjJmMlx1NjJmNVx1NjJmOFx1NjJmOVx1NjJmYVx1NjJmYlx1NjMwMFx1NjMwM1x1NjMwNFx1NjMwNVx1NjMwNlx1NjMwYVx1NjMwYlx1NjMwY1x1NjMwZFx1NjMwZlx1NjMxMFx1NjMxMlx1NjMxM1x1NjMxNFx1''@;'; + put 'put ''NjMxNVx1NjMxN1x1NjMxOFx1NjMxOVx1NjMxY1x1NjMyNlx1NjMyN1x1NjMyOVx1NjMyY1x1NjMyZFx1NjMyZVx1NjMzMFx1NjMzMVx1NjMzM1x1NjMzNFx1NjMzNVx1NjMzNlx1NjMzN1x1NjMzOFx1NjMzYlx1NjMzY1x1NjMzZVx1NjMzZlx1NjM0MFx1NjM0MVx1NjM0NFx1NjM0N1x1NjM0''@;'; + put 'put ''OFx1NjM0YVx1NjM1MVx1NjM1Mlx1NjM1M1x1NjM1NFx1NjM1Nlx1NjM1N1x1NjM1OFx1NjM1OVx1NjM1YVx1NjM1Ylx1NjM1Y1x1NjM1ZFx1NjM2MFx1NjM2NFx1NjM2NVx1NjM2Nlx1NjM2OFx1NjM2YVx1NjM2Ylx1NjM2Y1x1NjM2Zlx1NjM3MFx1NjM3Mlx1NjM3M1x1NjM3NFx1NjM3NVx1''@;'; + put 'put ''NjM3OFx1NjM3OVx1NjM3Y1x1NjM3ZFx1NjM3ZVx1NjM3Zlx1NjM4MVx1NjM4M1x1NjM4NFx1NjM4NVx1NjM4Nlx1NjM4Ylx1NjM4ZFx1NjM5MVx1NjM5M1x1NjM5NFx1NjM5NVx1NjM5N1x1NjM5OVx1NjM5YVx1NjM5Ylx1NjM5Y1x1NjM5ZFx1NjM5ZVx1NjM5Zlx1NjNhMVx1NjNhNFx1NjNh''@;'; + put 'put ''Nlx1NjNhYlx1NjNhZlx1NjNiMVx1NjNiMlx1NjNiNVx1NjNiNlx1NjNiOVx1NjNiYlx1NjNiZFx1NjNiZlx1NjNjMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDZdW0VdXT0zNzM3NitF''@;'; + put 'put ''LExbMzczNzYrRV09QlsxNDZdW0VdKTtmb3IoQlsxNDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYzYzFcdTYzYzJcdTYzYzNcdTYzYzVcdTYzYzdcdTYzYzhcdTYzY2FcdTYzY2JcdTYzY2NcdTYzZDFcdTYzZDNcdTYzZDRcdTYz''@;'; + put 'put ''ZDVcdTYzZDdcdTYzZDhcdTYzZDlcdTYzZGFcdTYzZGJcdTYzZGNcdTYzZGRcdTYzZGZcdTYzZTJcdTYzZTRcdTYzZTVcdTYzZTZcdTYzZTdcdTYzZThcdTYzZWJcdTYzZWNcdTYzZWVcdTYzZWZcdTYzZjBcdTYzZjFcdTYzZjNcdTYzZjVcdTYzZjdcdTYzZjlcdTYzZmFcdTYzZmJcdTYzZmNc''@;'; + put 'put ''dTYzZmVcdTY0MDNcdTY0MDRcdTY0MDZcdTY0MDdcdTY0MDhcdTY0MDlcdTY0MGFcdTY0MGRcdTY0MGVcdTY0MTFcdTY0MTJcdTY0MTVcdTY0MTZcdTY0MTdcdTY0MThcdTY0MTlcdTY0MWFcdTY0MWRcdTY0MWZcdTY0MjJcdTY0MjNcdTY0MjRcdWZmZmRcdTY0MjVcdTY0MjdcdTY0MjhcdTY0''@;'; + put 'put ''MjlcdTY0MmJcdTY0MmVcdTY0MmZcdTY0MzBcdTY0MzFcdTY0MzJcdTY0MzNcdTY0MzVcdTY0MzZcdTY0MzdcdTY0MzhcdTY0MzlcdTY0M2JcdTY0M2NcdTY0M2VcdTY0NDBcdTY0NDJcdTY0NDNcdTY0NDlcdTY0NGJcdTY0NGNcdTY0NGRcdTY0NGVcdTY0NGZcdTY0NTBcdTY0NTFcdTY0NTNc''@;'; + put 'put ''dTY0NTVcdTY0NTZcdTY0NTdcdTY0NTlcdTY0NWFcdTY0NWJcdTY0NWNcdTY0NWRcdTY0NWZcdTY0NjBcdTY0NjFcdTY0NjJcdTY0NjNcdTY0NjRcdTY0NjVcdTY0NjZcdTY0NjhcdTY0NmFcdTY0NmJcdTY0NmNcdTY0NmVcdTY0NmZcdTY0NzBcdTY0NzFcdTY0NzJcdTY0NzNcdTY0NzRcdTY0''@;'; + put 'put ''NzVcdTY0NzZcdTY0NzdcdTY0N2JcdTY0N2NcdTY0N2RcdTY0N2VcdTY0N2ZcdTY0ODBcdTY0ODFcdTY0ODNcdTY0ODZcdTY0ODhcdTY0ODlcdTY0OGFcdTY0OGJcdTY0OGNcdTY0OGRcdTY0OGVcdTY0OGZcdTY0OTBcdTY0OTNcdTY0OTRcdTY0OTdcdTY0OThcdTY0OWFcdTY0OWJcdTY0OWNc''@;'; + put 'put ''dTY0OWRcdTY0OWZcdTY0YTBcdTY0YTFcdTY0YTJcdTY0YTNcdTY0YTVcdTY0YTZcdTY0YTdcdTY0YThcdTY0YWFcdTY0YWJcdTY0YWZcdTY0YjFcdTY0YjJcdTY0YjNcdTY0YjRcdTY0YjZcdTY0YjlcdTY0YmJcdTY0YmRcdTY0YmVcdTY0YmZcdTY0YzFcdTY0YzNcdTY0YzRcdTY0YzZcdTY0''@;'; + put 'put ''YzdcdTY0YzhcdTY0YzlcdTY0Y2FcdTY0Y2JcdTY0Y2NcdTY0Y2ZcdTY0ZDFcdTY0ZDNcdTY0ZDRcdTY0ZDVcdTY0ZDZcdTY0ZDlcdTY0ZGFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ3''@;'; + put 'put ''XVtFXV09Mzc2MzIrRSxMWzM3NjMyK0VdPUJbMTQ3XVtFXSk7Zm9yKEJbMTQ4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NGRiXHU2NGRjXHU2NGRkXHU2NGRmXHU2NGUwXHU2NGUxXHU2NGUzXHU2NGU1XHU2NGU3XHU2NGU4XHU2''@;'; + put 'put ''NGU5XHU2NGVhXHU2NGViXHU2NGVjXHU2NGVkXHU2NGVlXHU2NGVmXHU2NGYwXHU2NGYxXHU2NGYyXHU2NGYzXHU2NGY0XHU2NGY1XHU2NGY2XHU2NGY3XHU2NGY4XHU2NGY5XHU2NGZhXHU2NGZiXHU2NGZjXHU2NGZkXHU2NGZlXHU2NGZmXHU2NTAxXHU2NTAyXHU2NTAzXHU2NTA0XHU2NTA1''@;'; + put 'put ''XHU2NTA2XHU2NTA3XHU2NTA4XHU2NTBhXHU2NTBiXHU2NTBjXHU2NTBkXHU2NTBlXHU2NTBmXHU2NTEwXHU2NTExXHU2NTEzXHU2NTE0XHU2NTE1XHU2NTE2XHU2NTE3XHU2NTE5XHU2NTFhXHU2NTFiXHU2NTFjXHU2NTFkXHU2NTFlXHU2NTFmXHU2NTIwXHU2NTIxXHVmZmZkXHU2NTIyXHU2''@;'; + put 'put ''NTIzXHU2NTI0XHU2NTI2XHU2NTI3XHU2NTI4XHU2NTI5XHU2NTJhXHU2NTJjXHU2NTJkXHU2NTMwXHU2NTMxXHU2NTMyXHU2NTMzXHU2NTM3XHU2NTNhXHU2NTNjXHU2NTNkXHU2NTQwXHU2NTQxXHU2NTQyXHU2NTQzXHU2NTQ0XHU2NTQ2XHU2NTQ3XHU2NTRhXHU2NTRiXHU2NTRkXHU2NTRl''@;'; + put 'put ''XHU2NTUwXHU2NTUyXHU2NTUzXHU2NTU0XHU2NTU3XHU2NTU4XHU2NTVhXHU2NTVjXHU2NTVmXHU2NTYwXHU2NTYxXHU2NTY0XHU2NTY1XHU2NTY3XHU2NTY4XHU2NTY5XHU2NTZhXHU2NTZkXHU2NTZlXHU2NTZmXHU2NTcxXHU2NTczXHU2NTc1XHU2NTc2XHU2NTc4XHU2NTc5XHU2NTdhXHU2''@;'; + put 'put ''NTdiXHU2NTdjXHU2NTdkXHU2NTdlXHU2NTdmXHU2NTgwXHU2NTgxXHU2NTgyXHU2NTgzXHU2NTg0XHU2NTg1XHU2NTg2XHU2NTg4XHU2NTg5XHU2NThhXHU2NThkXHU2NThlXHU2NThmXHU2NTkyXHU2NTk0XHU2NTk1XHU2NTk2XHU2NTk4XHU2NTlhXHU2NTlkXHU2NTllXHU2NWEwXHU2NWEy''@;'; + put 'put ''XHU2NWEzXHU2NWE2XHU2NWE4XHU2NWFhXHU2NWFjXHU2NWFlXHU2NWIxXHU2NWIyXHU2NWIzXHU2NWI0XHU2NWI1XHU2NWI2XHU2NWI3XHU2NWI4XHU2NWJhXHU2NWJiXHU2NWJlXHU2NWJmXHU2NWMwXHU2NWMyXHU2NWM3XHU2NWM4XHU2NWM5XHU2NWNhXHU2NWNkXHU2NWQwXHU2NWQxXHU2''@;'; + put 'put ''NWQzXHU2NWQ0XHU2NWQ1XHU2NWQ4XHU2NWQ5XHU2NWRhXHU2NWRiXHU2NWRjXHU2NWRkXHU2NWRlXHU2NWRmXHU2NWUxXHU2NWUzXHU2NWU0XHU2NWVhXHU2NWViXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDhdW0VdLmNoYXJDb2RlQXQo''@;'; + put 'put ''MCkmJihtZVtCWzE0OF1bRV1dPTM3ODg4K0UsTFszNzg4OCtFXT1CWzE0OF1bRV0pO2ZvcihCWzE0OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjVmMlx1NjVmM1x1NjVmNFx1NjVmNVx1NjVmOFx1NjVmOVx1NjVmYlx1NjVmY1x1''@;'; + put 'put ''NjVmZFx1NjVmZVx1NjVmZlx1NjYwMVx1NjYwNFx1NjYwNVx1NjYwN1x1NjYwOFx1NjYwOVx1NjYwYlx1NjYwZFx1NjYxMFx1NjYxMVx1NjYxMlx1NjYxNlx1NjYxN1x1NjYxOFx1NjYxYVx1NjYxYlx1NjYxY1x1NjYxZVx1NjYyMVx1NjYyMlx1NjYyM1x1NjYyNFx1NjYyNlx1NjYyOVx1NjYy''@;'; + put 'put ''YVx1NjYyYlx1NjYyY1x1NjYyZVx1NjYzMFx1NjYzMlx1NjYzM1x1NjYzN1x1NjYzOFx1NjYzOVx1NjYzYVx1NjYzYlx1NjYzZFx1NjYzZlx1NjY0MFx1NjY0Mlx1NjY0NFx1NjY0NVx1NjY0Nlx1NjY0N1x1NjY0OFx1NjY0OVx1NjY0YVx1NjY0ZFx1NjY0ZVx1NjY1MFx1NjY1MVx1NjY1OFx1''@;'; + put 'put ''ZmZmZFx1NjY1OVx1NjY1Ylx1NjY1Y1x1NjY1ZFx1NjY1ZVx1NjY2MFx1NjY2Mlx1NjY2M1x1NjY2NVx1NjY2N1x1NjY2OVx1NjY2YVx1NjY2Ylx1NjY2Y1x1NjY2ZFx1NjY3MVx1NjY3Mlx1NjY3M1x1NjY3NVx1NjY3OFx1NjY3OVx1NjY3Ylx1NjY3Y1x1NjY3ZFx1NjY3Zlx1NjY4MFx1NjY4''@;'; + put 'put ''MVx1NjY4M1x1NjY4NVx1NjY4Nlx1NjY4OFx1NjY4OVx1NjY4YVx1NjY4Ylx1NjY4ZFx1NjY4ZVx1NjY4Zlx1NjY5MFx1NjY5Mlx1NjY5M1x1NjY5NFx1NjY5NVx1NjY5OFx1NjY5OVx1NjY5YVx1NjY5Ylx1NjY5Y1x1NjY5ZVx1NjY5Zlx1NjZhMFx1NjZhMVx1NjZhMlx1NjZhM1x1NjZhNFx1''@;'; + put 'put ''NjZhNVx1NjZhNlx1NjZhOVx1NjZhYVx1NjZhYlx1NjZhY1x1NjZhZFx1NjZhZlx1NjZiMFx1NjZiMVx1NjZiMlx1NjZiM1x1NjZiNVx1NjZiNlx1NjZiN1x1NjZiOFx1NjZiYVx1NjZiYlx1NjZiY1x1NjZiZFx1NjZiZlx1NjZjMFx1NjZjMVx1NjZjMlx1NjZjM1x1NjZjNFx1NjZjNVx1NjZj''@;'; + put 'put ''Nlx1NjZjN1x1NjZjOFx1NjZjOVx1NjZjYVx1NjZjYlx1NjZjY1x1NjZjZFx1NjZjZVx1NjZjZlx1NjZkMFx1NjZkMVx1NjZkMlx1NjZkM1x1NjZkNFx1NjZkNVx1NjZkNlx1NjZkN1x1NjZkOFx1NjZkYVx1NjZkZVx1NjZkZlx1NjZlMFx1NjZlMVx1NjZlMlx1NjZlM1x1NjZlNFx1NjZlNVx1''@;'; + put 'put ''NjZlN1x1NjZlOFx1NjZlYVx1NjZlYlx1NjZlY1x1NjZlZFx1NjZlZVx1NjZlZlx1NjZmMVx1NjZmNVx1NjZmNlx1NjZmOFx1NjZmYVx1NjZmYlx1NjZmZFx1NjcwMVx1NjcwMlx1NjcwM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ5XVtF''@;'; + put 'put ''XS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDldW0VdXT0zODE0NCtFLExbMzgxNDQrRV09QlsxNDldW0VdKTtmb3IoQlsxNTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY3MDRcdTY3MDVcdTY3MDZcdTY3MDdcdTY3MGNcdTY3MGVc''@;'; + put 'put ''dTY3MGZcdTY3MTFcdTY3MTJcdTY3MTNcdTY3MTZcdTY3MThcdTY3MTlcdTY3MWFcdTY3MWNcdTY3MWVcdTY3MjBcdTY3MjFcdTY3MjJcdTY3MjNcdTY3MjRcdTY3MjVcdTY3MjdcdTY3MjlcdTY3MmVcdTY3MzBcdTY3MzJcdTY3MzNcdTY3MzZcdTY3MzdcdTY3MzhcdTY3MzlcdTY3M2JcdTY3''@;'; + put 'put ''M2NcdTY3M2VcdTY3M2ZcdTY3NDFcdTY3NDRcdTY3NDVcdTY3NDdcdTY3NGFcdTY3NGJcdTY3NGRcdTY3NTJcdTY3NTRcdTY3NTVcdTY3NTdcdTY3NThcdTY3NTlcdTY3NWFcdTY3NWJcdTY3NWRcdTY3NjJcdTY3NjNcdTY3NjRcdTY3NjZcdTY3NjdcdTY3NmJcdTY3NmNcdTY3NmVcdTY3NzFc''@;'; + put 'put ''dTY3NzRcdTY3NzZcdWZmZmRcdTY3NzhcdTY3NzlcdTY3N2FcdTY3N2JcdTY3N2RcdTY3ODBcdTY3ODJcdTY3ODNcdTY3ODVcdTY3ODZcdTY3ODhcdTY3OGFcdTY3OGNcdTY3OGRcdTY3OGVcdTY3OGZcdTY3OTFcdTY3OTJcdTY3OTNcdTY3OTRcdTY3OTZcdTY3OTlcdTY3OWJcdTY3OWZcdTY3''@;'; + put 'put ''YTBcdTY3YTFcdTY3YTRcdTY3YTZcdTY3YTlcdTY3YWNcdTY3YWVcdTY3YjFcdTY3YjJcdTY3YjRcdTY3YjlcdTY3YmFcdTY3YmJcdTY3YmNcdTY3YmRcdTY3YmVcdTY3YmZcdTY3YzBcdTY3YzJcdTY3YzVcdTY3YzZcdTY3YzdcdTY3YzhcdTY3YzlcdTY3Y2FcdTY3Y2JcdTY3Y2NcdTY3Y2Rc''@;'; + put 'put ''dTY3Y2VcdTY3ZDVcdTY3ZDZcdTY3ZDdcdTY3ZGJcdTY3ZGZcdTY3ZTFcdTY3ZTNcdTY3ZTRcdTY3ZTZcdTY3ZTdcdTY3ZThcdTY3ZWFcdTY3ZWJcdTY3ZWRcdTY3ZWVcdTY3ZjJcdTY3ZjVcdTY3ZjZcdTY3ZjdcdTY3ZjhcdTY3ZjlcdTY3ZmFcdTY3ZmJcdTY3ZmNcdTY3ZmVcdTY4MDFcdTY4''@;'; + put 'put ''MDJcdTY4MDNcdTY4MDRcdTY4MDZcdTY4MGRcdTY4MTBcdTY4MTJcdTY4MTRcdTY4MTVcdTY4MThcdTY4MTlcdTY4MWFcdTY4MWJcdTY4MWNcdTY4MWVcdTY4MWZcdTY4MjBcdTY4MjJcdTY4MjNcdTY4MjRcdTY4MjVcdTY4MjZcdTY4MjdcdTY4MjhcdTY4MmJcdTY4MmNcdTY4MmRcdTY4MmVc''@;'; + put 'put ''dTY4MmZcdTY4MzBcdTY4MzFcdTY4MzRcdTY4MzVcdTY4MzZcdTY4M2FcdTY4M2JcdTY4M2ZcdTY4NDdcdTY4NGJcdTY4NGRcdTY4NGZcdTY4NTJcdTY4NTZcdTY4NTdcdTY4NThcdTY4NTlcdTY4NWFcdTY4NWJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTBdLmxlbmd0aDsrK0UpNjU1''@;'; + put 'put ''MzMhPT1CWzE1MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTUwXVtFXV09Mzg0MDArRSxMWzM4NDAwK0VdPUJbMTUwXVtFXSk7Zm9yKEJbMTUxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ODVjXHU2ODVkXHU2ODVlXHU2ODVm''@;'; + put 'put ''XHU2ODZhXHU2ODZjXHU2ODZkXHU2ODZlXHU2ODZmXHU2ODcwXHU2ODcxXHU2ODcyXHU2ODczXHU2ODc1XHU2ODc4XHU2ODc5XHU2ODdhXHU2ODdiXHU2ODdjXHU2ODdkXHU2ODdlXHU2ODdmXHU2ODgwXHU2ODgyXHU2ODg0XHU2ODg3XHU2ODg4XHU2ODg5XHU2ODhhXHU2ODhiXHU2ODhjXHU2''@;'; + put 'put ''ODhkXHU2ODhlXHU2ODkwXHU2ODkxXHU2ODkyXHU2ODk0XHU2ODk1XHU2ODk2XHU2ODk4XHU2ODk5XHU2ODlhXHU2ODliXHU2ODljXHU2ODlkXHU2ODllXHU2ODlmXHU2OGEwXHU2OGExXHU2OGEzXHU2OGE0XHU2OGE1XHU2OGE5XHU2OGFhXHU2OGFiXHU2OGFjXHU2OGFlXHU2OGIxXHU2OGIy''@;'; + put 'put ''XHU2OGI0XHU2OGI2XHU2OGI3XHU2OGI4XHVmZmZkXHU2OGI5XHU2OGJhXHU2OGJiXHU2OGJjXHU2OGJkXHU2OGJlXHU2OGJmXHU2OGMxXHU2OGMzXHU2OGM0XHU2OGM1XHU2OGM2XHU2OGM3XHU2OGM4XHU2OGNhXHU2OGNjXHU2OGNlXHU2OGNmXHU2OGQwXHU2OGQxXHU2OGQzXHU2OGQ0XHU2''@;'; + put 'put ''OGQ2XHU2OGQ3XHU2OGQ5XHU2OGRiXHU2OGRjXHU2OGRkXHU2OGRlXHU2OGRmXHU2OGUxXHU2OGUyXHU2OGU0XHU2OGU1XHU2OGU2XHU2OGU3XHU2OGU4XHU2OGU5XHU2OGVhXHU2OGViXHU2OGVjXHU2OGVkXHU2OGVmXHU2OGYyXHU2OGYzXHU2OGY0XHU2OGY2XHU2OGY3XHU2OGY4XHU2OGZi''@;'; + put 'put ''XHU2OGZkXHU2OGZlXHU2OGZmXHU2OTAwXHU2OTAyXHU2OTAzXHU2OTA0XHU2OTA2XHU2OTA3XHU2OTA4XHU2OTA5XHU2OTBhXHU2OTBjXHU2OTBmXHU2OTExXHU2OTEzXHU2OTE0XHU2OTE1XHU2OTE2XHU2OTE3XHU2OTE4XHU2OTE5XHU2OTFhXHU2OTFiXHU2OTFjXHU2OTFkXHU2OTFlXHU2''@;'; + put 'put ''OTIxXHU2OTIyXHU2OTIzXHU2OTI1XHU2OTI2XHU2OTI3XHU2OTI4XHU2OTI5XHU2OTJhXHU2OTJiXHU2OTJjXHU2OTJlXHU2OTJmXHU2OTMxXHU2OTMyXHU2OTMzXHU2OTM1XHU2OTM2XHU2OTM3XHU2OTM4XHU2OTNhXHU2OTNiXHU2OTNjXHU2OTNlXHU2OTQwXHU2OTQxXHU2OTQzXHU2OTQ0''@;'; + put 'put ''XHU2OTQ1XHU2OTQ2XHU2OTQ3XHU2OTQ4XHU2OTQ5XHU2OTRhXHU2OTRiXHU2OTRjXHU2OTRkXHU2OTRlXHU2OTRmXHU2OTUwXHU2OTUxXHU2OTUyXHU2OTUzXHU2OTU1XHU2OTU2XHU2OTU4XHU2OTU5XHU2OTViXHU2OTVjXHU2OTVmXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTUxXS5s''@;'; + put 'put ''ZW5ndGg7KytFKTY1NTMzIT09QlsxNTFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1MV1bRV1dPTM4NjU2K0UsTFszODY1NitFXT1CWzE1MV1bRV0pO2ZvcihCWzE1Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Njk2MVx1Njk2''@;'; + put 'put ''Mlx1Njk2NFx1Njk2NVx1Njk2N1x1Njk2OFx1Njk2OVx1Njk2YVx1Njk2Y1x1Njk2ZFx1Njk2Zlx1Njk3MFx1Njk3Mlx1Njk3M1x1Njk3NFx1Njk3NVx1Njk3Nlx1Njk3YVx1Njk3Ylx1Njk3ZFx1Njk3ZVx1Njk3Zlx1Njk4MVx1Njk4M1x1Njk4NVx1Njk4YVx1Njk4Ylx1Njk4Y1x1Njk4ZVx1''@;'; + put 'put ''Njk4Zlx1Njk5MFx1Njk5MVx1Njk5Mlx1Njk5M1x1Njk5Nlx1Njk5N1x1Njk5OVx1Njk5YVx1Njk5ZFx1Njk5ZVx1Njk5Zlx1NjlhMFx1NjlhMVx1NjlhMlx1NjlhM1x1NjlhNFx1NjlhNVx1NjlhNlx1NjlhOVx1NjlhYVx1NjlhY1x1NjlhZVx1NjlhZlx1NjliMFx1NjliMlx1NjliM1x1Njli''@;'; + put 'put ''NVx1NjliNlx1NjliOFx1NjliOVx1NjliYVx1NjliY1x1NjliZFx1ZmZmZFx1NjliZVx1NjliZlx1NjljMFx1NjljMlx1NjljM1x1NjljNFx1NjljNVx1NjljNlx1NjljN1x1NjljOFx1NjljOVx1NjljYlx1NjljZFx1NjljZlx1NjlkMVx1NjlkMlx1NjlkM1x1NjlkNVx1NjlkNlx1NjlkN1x1''@;'; + put 'put ''NjlkOFx1NjlkOVx1NjlkYVx1NjlkY1x1NjlkZFx1NjlkZVx1NjllMVx1NjllMlx1NjllM1x1NjllNFx1NjllNVx1NjllNlx1NjllN1x1NjllOFx1NjllOVx1NjllYVx1NjllYlx1NjllY1x1NjllZVx1NjllZlx1NjlmMFx1NjlmMVx1NjlmM1x1NjlmNFx1NjlmNVx1NjlmNlx1NjlmN1x1Njlm''@;'; + put 'put ''OFx1NjlmOVx1NjlmYVx1NjlmYlx1NjlmY1x1NjlmZVx1NmEwMFx1NmEwMVx1NmEwMlx1NmEwM1x1NmEwNFx1NmEwNVx1NmEwNlx1NmEwN1x1NmEwOFx1NmEwOVx1NmEwYlx1NmEwY1x1NmEwZFx1NmEwZVx1NmEwZlx1NmExMFx1NmExMVx1NmExMlx1NmExM1x1NmExNFx1NmExNVx1NmExNlx1''@;'; + put 'put ''NmExOVx1NmExYVx1NmExYlx1NmExY1x1NmExZFx1NmExZVx1NmEyMFx1NmEyMlx1NmEyM1x1NmEyNFx1NmEyNVx1NmEyNlx1NmEyN1x1NmEyOVx1NmEyYlx1NmEyY1x1NmEyZFx1NmEyZVx1NmEzMFx1NmEzMlx1NmEzM1x1NmEzNFx1NmEzNlx1NmEzN1x1NmEzOFx1NmEzOVx1NmEzYVx1NmEz''@;'; + put 'put ''Ylx1NmEzY1x1NmEzZlx1NmE0MFx1NmE0MVx1NmE0Mlx1NmE0M1x1NmE0NVx1NmE0Nlx1NmE0OFx1NmE0OVx1NmE0YVx1NmE0Ylx1NmE0Y1x1NmE0ZFx1NmE0ZVx1NmE0Zlx1NmE1MVx1NmE1Mlx1NmE1M1x1NmE1NFx1NmE1NVx1NmE1Nlx1NmE1N1x1NmE1YVx1ZmZmZCIuc3BsaXQoIiIpLEU9''@;'; + put 'put ''MDtFIT1CWzE1Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTUyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTJdW0VdXT0zODkxMitFLExbMzg5MTIrRV09QlsxNTJdW0VdKTtmb3IoQlsxNTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdTZhNWNcdTZhNWRcdTZhNWVcdTZhNWZcdTZhNjBcdTZhNjJcdTZhNjNcdTZhNjRcdTZhNjZcdTZhNjdcdTZhNjhcdTZhNjlcdTZhNmFcdTZhNmJcdTZhNmNcdTZhNmRcdTZhNmVcdTZhNmZcdTZhNzBcdTZhNzJcdTZhNzNcdTZhNzRcdTZhNzVcdTZhNzZcdTZhNzdcdTZhNzhcdTZhN2Fc''@;'; + put 'put ''dTZhN2JcdTZhN2RcdTZhN2VcdTZhN2ZcdTZhODFcdTZhODJcdTZhODNcdTZhODVcdTZhODZcdTZhODdcdTZhODhcdTZhODlcdTZhOGFcdTZhOGJcdTZhOGNcdTZhOGRcdTZhOGZcdTZhOTJcdTZhOTNcdTZhOTRcdTZhOTVcdTZhOTZcdTZhOThcdTZhOTlcdTZhOWFcdTZhOWJcdTZhOWNcdTZh''@;'; + put 'put ''OWRcdTZhOWVcdTZhOWZcdTZhYTFcdTZhYTJcdTZhYTNcdTZhYTRcdTZhYTVcdTZhYTZcdWZmZmRcdTZhYTdcdTZhYThcdTZhYWFcdTZhYWRcdTZhYWVcdTZhYWZcdTZhYjBcdTZhYjFcdTZhYjJcdTZhYjNcdTZhYjRcdTZhYjVcdTZhYjZcdTZhYjdcdTZhYjhcdTZhYjlcdTZhYmFcdTZhYmJc''@;'; + put 'put ''dTZhYmNcdTZhYmRcdTZhYmVcdTZhYmZcdTZhYzBcdTZhYzFcdTZhYzJcdTZhYzNcdTZhYzRcdTZhYzVcdTZhYzZcdTZhYzdcdTZhYzhcdTZhYzlcdTZhY2FcdTZhY2JcdTZhY2NcdTZhY2RcdTZhY2VcdTZhY2ZcdTZhZDBcdTZhZDFcdTZhZDJcdTZhZDNcdTZhZDRcdTZhZDVcdTZhZDZcdTZh''@;'; + put 'put ''ZDdcdTZhZDhcdTZhZDlcdTZhZGFcdTZhZGJcdTZhZGNcdTZhZGRcdTZhZGVcdTZhZGZcdTZhZTBcdTZhZTFcdTZhZTJcdTZhZTNcdTZhZTRcdTZhZTVcdTZhZTZcdTZhZTdcdTZhZThcdTZhZTlcdTZhZWFcdTZhZWJcdTZhZWNcdTZhZWRcdTZhZWVcdTZhZWZcdTZhZjBcdTZhZjFcdTZhZjJc''@;'; + put 'put ''dTZhZjNcdTZhZjRcdTZhZjVcdTZhZjZcdTZhZjdcdTZhZjhcdTZhZjlcdTZhZmFcdTZhZmJcdTZhZmNcdTZhZmRcdTZhZmVcdTZhZmZcdTZiMDBcdTZiMDFcdTZiMDJcdTZiMDNcdTZiMDRcdTZiMDVcdTZiMDZcdTZiMDdcdTZiMDhcdTZiMDlcdTZiMGFcdTZiMGJcdTZiMGNcdTZiMGRcdTZi''@;'; + put 'put ''MGVcdTZiMGZcdTZiMTBcdTZiMTFcdTZiMTJcdTZiMTNcdTZiMTRcdTZiMTVcdTZiMTZcdTZiMTdcdTZiMThcdTZiMTlcdTZiMWFcdTZiMWJcdTZiMWNcdTZiMWRcdTZiMWVcdTZiMWZcdTZiMjVcdTZiMjZcdTZiMjhcdTZiMjlcdTZiMmFcdTZiMmJcdTZiMmNcdTZiMmRcdTZiMmVcdWZmZmQi''@;'; + put 'put ''LnNwbGl0KCIiKSxFPTA7RSE9QlsxNTNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTUzXVtFXV09MzkxNjgrRSxMWzM5MTY4K0VdPUJbMTUzXVtFXSk7Zm9yKEJbMTU0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHU2YjJmXHU2YjMwXHU2YjMxXHU2YjMzXHU2YjM0XHU2YjM1XHU2YjM2XHU2YjM4XHU2YjNiXHU2YjNjXHU2YjNkXHU2YjNmXHU2YjQwXHU2YjQxXHU2YjQyXHU2YjQ0XHU2YjQ1XHU2YjQ4XHU2YjRhXHU2YjRiXHU2YjRkXHU2YjRlXHU2YjRmXHU2YjUwXHU2YjUx''@;'; + put 'put ''XHU2YjUyXHU2YjUzXHU2YjU0XHU2YjU1XHU2YjU2XHU2YjU3XHU2YjU4XHU2YjVhXHU2YjViXHU2YjVjXHU2YjVkXHU2YjVlXHU2YjVmXHU2YjYwXHU2YjYxXHU2YjY4XHU2YjY5XHU2YjZiXHU2YjZjXHU2YjZkXHU2YjZlXHU2YjZmXHU2YjcwXHU2YjcxXHU2YjcyXHU2YjczXHU2Yjc0XHU2''@;'; + put 'put ''Yjc1XHU2Yjc2XHU2Yjc3XHU2Yjc4XHU2YjdhXHU2YjdkXHU2YjdlXHU2YjdmXHU2YjgwXHU2Yjg1XHU2Yjg4XHVmZmZkXHU2YjhjXHU2YjhlXHU2YjhmXHU2YjkwXHU2YjkxXHU2Yjk0XHU2Yjk1XHU2Yjk3XHU2Yjk4XHU2Yjk5XHU2YjljXHU2YjlkXHU2YjllXHU2YjlmXHU2YmEwXHU2YmEy''@;'; + put 'put ''XHU2YmEzXHU2YmE0XHU2YmE1XHU2YmE2XHU2YmE3XHU2YmE4XHU2YmE5XHU2YmFiXHU2YmFjXHU2YmFkXHU2YmFlXHU2YmFmXHU2YmIwXHU2YmIxXHU2YmIyXHU2YmI2XHU2YmI4XHU2YmI5XHU2YmJhXHU2YmJiXHU2YmJjXHU2YmJkXHU2YmJlXHU2YmMwXHU2YmMzXHU2YmM0XHU2YmM2XHU2''@;'; + put 'put ''YmM3XHU2YmM4XHU2YmM5XHU2YmNhXHU2YmNjXHU2YmNlXHU2YmQwXHU2YmQxXHU2YmQ4XHU2YmRhXHU2YmRjXHU2YmRkXHU2YmRlXHU2YmRmXHU2YmUwXHU2YmUyXHU2YmUzXHU2YmU0XHU2YmU1XHU2YmU2XHU2YmU3XHU2YmU4XHU2YmU5XHU2YmVjXHU2YmVkXHU2YmVlXHU2YmYwXHU2YmYx''@;'; + put 'put ''XHU2YmYyXHU2YmY0XHU2YmY2XHU2YmY3XHU2YmY4XHU2YmZhXHU2YmZiXHU2YmZjXHU2YmZlXHU2YmZmXHU2YzAwXHU2YzAxXHU2YzAyXHU2YzAzXHU2YzA0XHU2YzA4XHU2YzA5XHU2YzBhXHU2YzBiXHU2YzBjXHU2YzBlXHU2YzEyXHU2YzE3XHU2YzFjXHU2YzFkXHU2YzFlXHU2YzIwXHU2''@;'; + put 'put ''YzIzXHU2YzI1XHU2YzJiXHU2YzJjXHU2YzJkXHU2YzMxXHU2YzMzXHU2YzM2XHU2YzM3XHU2YzM5XHU2YzNhXHU2YzNiXHU2YzNjXHU2YzNlXHU2YzNmXHU2YzQzXHU2YzQ0XHU2YzQ1XHU2YzQ4XHU2YzRiXHU2YzRjXHU2YzRkXHU2YzRlXHU2YzRmXHU2YzUxXHU2YzUyXHU2YzUzXHU2YzU2''@;'; + put 'put ''XHU2YzU4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1NF1bRV1dPTM5NDI0K0UsTFszOTQyNCtFXT1CWzE1NF1bRV0pO2ZvcihCWzE1NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmM1OVx1NmM1YVx1NmM2Mlx1NmM2M1x1NmM2NVx1NmM2Nlx1NmM2N1x1NmM2Ylx1NmM2Y1x1NmM2ZFx1NmM2ZVx1NmM2Zlx1NmM3MVx1NmM3M1x1NmM3NVx1NmM3N1x1NmM3OFx1NmM3YVx1NmM3Ylx1NmM3Y1x1NmM3Zlx1NmM4MFx1NmM4''@;'; + put 'put ''NFx1NmM4N1x1NmM4YVx1NmM4Ylx1NmM4ZFx1NmM4ZVx1NmM5MVx1NmM5Mlx1NmM5NVx1NmM5Nlx1NmM5N1x1NmM5OFx1NmM5YVx1NmM5Y1x1NmM5ZFx1NmM5ZVx1NmNhMFx1NmNhMlx1NmNhOFx1NmNhY1x1NmNhZlx1NmNiMFx1NmNiNFx1NmNiNVx1NmNiNlx1NmNiN1x1NmNiYVx1NmNjMFx1''@;'; + put 'put ''NmNjMVx1NmNjMlx1NmNjM1x1NmNjNlx1NmNjN1x1NmNjOFx1NmNjYlx1NmNjZFx1NmNjZVx1NmNjZlx1NmNkMVx1NmNkMlx1NmNkOFx1ZmZmZFx1NmNkOVx1NmNkYVx1NmNkY1x1NmNkZFx1NmNkZlx1NmNlNFx1NmNlNlx1NmNlN1x1NmNlOVx1NmNlY1x1NmNlZFx1NmNmMlx1NmNmNFx1NmNm''@;'; + put 'put ''OVx1NmNmZlx1NmQwMFx1NmQwMlx1NmQwM1x1NmQwNVx1NmQwNlx1NmQwOFx1NmQwOVx1NmQwYVx1NmQwZFx1NmQwZlx1NmQxMFx1NmQxMVx1NmQxM1x1NmQxNFx1NmQxNVx1NmQxNlx1NmQxOFx1NmQxY1x1NmQxZFx1NmQxZlx1NmQyMFx1NmQyMVx1NmQyMlx1NmQyM1x1NmQyNFx1NmQyNlx1''@;'; + put 'put ''NmQyOFx1NmQyOVx1NmQyY1x1NmQyZFx1NmQyZlx1NmQzMFx1NmQzNFx1NmQzNlx1NmQzN1x1NmQzOFx1NmQzYVx1NmQzZlx1NmQ0MFx1NmQ0Mlx1NmQ0NFx1NmQ0OVx1NmQ0Y1x1NmQ1MFx1NmQ1NVx1NmQ1Nlx1NmQ1N1x1NmQ1OFx1NmQ1Ylx1NmQ1ZFx1NmQ1Zlx1NmQ2MVx1NmQ2Mlx1NmQ2''@;'; + put 'put ''NFx1NmQ2NVx1NmQ2N1x1NmQ2OFx1NmQ2Ylx1NmQ2Y1x1NmQ2ZFx1NmQ3MFx1NmQ3MVx1NmQ3Mlx1NmQ3M1x1NmQ3NVx1NmQ3Nlx1NmQ3OVx1NmQ3YVx1NmQ3Ylx1NmQ3ZFx1NmQ3ZVx1NmQ3Zlx1NmQ4MFx1NmQ4MVx1NmQ4M1x1NmQ4NFx1NmQ4Nlx1NmQ4N1x1NmQ4YVx1NmQ4Ylx1NmQ4ZFx1''@;'; + put 'put ''NmQ4Zlx1NmQ5MFx1NmQ5Mlx1NmQ5Nlx1NmQ5N1x1NmQ5OFx1NmQ5OVx1NmQ5YVx1NmQ5Y1x1NmRhMlx1NmRhNVx1NmRhY1x1NmRhZFx1NmRiMFx1NmRiMVx1NmRiM1x1NmRiNFx1NmRiNlx1NmRiN1x1NmRiOVx1NmRiYVx1NmRiYlx1NmRiY1x1NmRiZFx1NmRiZVx1NmRjMVx1NmRjMlx1NmRj''@;'; + put 'put ''M1x1NmRjOFx1NmRjOVx1NmRjYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTVdW0VdXT0zOTY4MCtFLExbMzk2ODArRV09QlsxNTVdW0VdKTtmb3IoQlsxNTZdPSJcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZkY2RcdTZkY2VcdTZkY2ZcdTZkZDBcdTZkZDJcdTZkZDNcdTZkZDRcdTZkZDVcdTZkZDdcdTZkZGFcdTZkZGJcdTZkZGNcdTZkZGZcdTZkZTJcdTZkZTNcdTZkZTVcdTZkZTdcdTZkZThcdTZkZTlcdTZkZWFcdTZk''@;'; + put 'put ''ZWRcdTZkZWZcdTZkZjBcdTZkZjJcdTZkZjRcdTZkZjVcdTZkZjZcdTZkZjhcdTZkZmFcdTZkZmRcdTZkZmVcdTZkZmZcdTZlMDBcdTZlMDFcdTZlMDJcdTZlMDNcdTZlMDRcdTZlMDZcdTZlMDdcdTZlMDhcdTZlMDlcdTZlMGJcdTZlMGZcdTZlMTJcdTZlMTNcdTZlMTVcdTZlMThcdTZlMTlc''@;'; + put 'put ''dTZlMWJcdTZlMWNcdTZlMWVcdTZlMWZcdTZlMjJcdTZlMjZcdTZlMjdcdTZlMjhcdTZlMmFcdTZlMmNcdTZlMmVcdTZlMzBcdTZlMzFcdTZlMzNcdTZlMzVcdWZmZmRcdTZlMzZcdTZlMzdcdTZlMzlcdTZlM2JcdTZlM2NcdTZlM2RcdTZlM2VcdTZlM2ZcdTZlNDBcdTZlNDFcdTZlNDJcdTZl''@;'; + put 'put ''NDVcdTZlNDZcdTZlNDdcdTZlNDhcdTZlNDlcdTZlNGFcdTZlNGJcdTZlNGNcdTZlNGZcdTZlNTBcdTZlNTFcdTZlNTJcdTZlNTVcdTZlNTdcdTZlNTlcdTZlNWFcdTZlNWNcdTZlNWRcdTZlNWVcdTZlNjBcdTZlNjFcdTZlNjJcdTZlNjNcdTZlNjRcdTZlNjVcdTZlNjZcdTZlNjdcdTZlNjhc''@;'; + put 'put ''dTZlNjlcdTZlNmFcdTZlNmNcdTZlNmRcdTZlNmZcdTZlNzBcdTZlNzFcdTZlNzJcdTZlNzNcdTZlNzRcdTZlNzVcdTZlNzZcdTZlNzdcdTZlNzhcdTZlNzlcdTZlN2FcdTZlN2JcdTZlN2NcdTZlN2RcdTZlODBcdTZlODFcdTZlODJcdTZlODRcdTZlODdcdTZlODhcdTZlOGFcdTZlOGJcdTZl''@;'; + put 'put ''OGNcdTZlOGRcdTZlOGVcdTZlOTFcdTZlOTJcdTZlOTNcdTZlOTRcdTZlOTVcdTZlOTZcdTZlOTdcdTZlOTlcdTZlOWFcdTZlOWJcdTZlOWRcdTZlOWVcdTZlYTBcdTZlYTFcdTZlYTNcdTZlYTRcdTZlYTZcdTZlYThcdTZlYTlcdTZlYWJcdTZlYWNcdTZlYWRcdTZlYWVcdTZlYjBcdTZlYjNc''@;'; + put 'put ''dTZlYjVcdTZlYjhcdTZlYjlcdTZlYmNcdTZlYmVcdTZlYmZcdTZlYzBcdTZlYzNcdTZlYzRcdTZlYzVcdTZlYzZcdTZlYzhcdTZlYzlcdTZlY2FcdTZlY2NcdTZlY2RcdTZlY2VcdTZlZDBcdTZlZDJcdTZlZDZcdTZlZDhcdTZlZDlcdTZlZGJcdTZlZGNcdTZlZGRcdTZlZTNcdTZlZTdcdTZl''@;'; + put 'put ''ZWFcdTZlZWJcdTZlZWNcdTZlZWRcdTZlZWVcdTZlZWZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU2XVtFXV09Mzk5MzYrRSxMWzM5OTM2K0VdPUJbMTU2XVtFXSk7Zm9yKEJbMTU3XT0i''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZWYwXHU2ZWYxXHU2ZWYyXHU2ZWYzXHU2ZWY1XHU2ZWY2XHU2ZWY3XHU2ZWY4XHU2ZWZhXHU2ZWZiXHU2ZWZjXHU2ZWZkXHU2ZWZlXHU2ZWZmXHU2ZjAwXHU2ZjAxXHU2ZjAzXHU2ZjA0XHU2''@;'; + put 'put ''ZjA1XHU2ZjA3XHU2ZjA4XHU2ZjBhXHU2ZjBiXHU2ZjBjXHU2ZjBkXHU2ZjBlXHU2ZjEwXHU2ZjExXHU2ZjEyXHU2ZjE2XHU2ZjE3XHU2ZjE4XHU2ZjE5XHU2ZjFhXHU2ZjFiXHU2ZjFjXHU2ZjFkXHU2ZjFlXHU2ZjFmXHU2ZjIxXHU2ZjIyXHU2ZjIzXHU2ZjI1XHU2ZjI2XHU2ZjI3XHU2ZjI4''@;'; + put 'put ''XHU2ZjJjXHU2ZjJlXHU2ZjMwXHU2ZjMyXHU2ZjM0XHU2ZjM1XHU2ZjM3XHU2ZjM4XHU2ZjM5XHU2ZjNhXHU2ZjNiXHU2ZjNjXHU2ZjNkXHU2ZjNmXHU2ZjQwXHU2ZjQxXHU2ZjQyXHVmZmZkXHU2ZjQzXHU2ZjQ0XHU2ZjQ1XHU2ZjQ4XHU2ZjQ5XHU2ZjRhXHU2ZjRjXHU2ZjRlXHU2ZjRmXHU2''@;'; + put 'put ''ZjUwXHU2ZjUxXHU2ZjUyXHU2ZjUzXHU2ZjU0XHU2ZjU1XHU2ZjU2XHU2ZjU3XHU2ZjU5XHU2ZjVhXHU2ZjViXHU2ZjVkXHU2ZjVmXHU2ZjYwXHU2ZjYxXHU2ZjYzXHU2ZjY0XHU2ZjY1XHU2ZjY3XHU2ZjY4XHU2ZjY5XHU2ZjZhXHU2ZjZiXHU2ZjZjXHU2ZjZmXHU2ZjcwXHU2ZjcxXHU2Zjcz''@;'; + put 'put ''XHU2Zjc1XHU2Zjc2XHU2Zjc3XHU2Zjc5XHU2ZjdiXHU2ZjdkXHU2ZjdlXHU2ZjdmXHU2ZjgwXHU2ZjgxXHU2ZjgyXHU2ZjgzXHU2Zjg1XHU2Zjg2XHU2Zjg3XHU2ZjhhXHU2ZjhiXHU2ZjhmXHU2ZjkwXHU2ZjkxXHU2ZjkyXHU2ZjkzXHU2Zjk0XHU2Zjk1XHU2Zjk2XHU2Zjk3XHU2Zjk4XHU2''@;'; + put 'put ''Zjk5XHU2ZjlhXHU2ZjliXHU2ZjlkXHU2ZjllXHU2ZjlmXHU2ZmEwXHU2ZmEyXHU2ZmEzXHU2ZmE0XHU2ZmE1XHU2ZmE2XHU2ZmE4XHU2ZmE5XHU2ZmFhXHU2ZmFiXHU2ZmFjXHU2ZmFkXHU2ZmFlXHU2ZmFmXHU2ZmIwXHU2ZmIxXHU2ZmIyXHU2ZmI0XHU2ZmI1XHU2ZmI3XHU2ZmI4XHU2ZmJh''@;'; + put 'put ''XHU2ZmJiXHU2ZmJjXHU2ZmJkXHU2ZmJlXHU2ZmJmXHU2ZmMxXHU2ZmMzXHU2ZmM0XHU2ZmM1XHU2ZmM2XHU2ZmM3XHU2ZmM4XHU2ZmNhXHU2ZmNiXHU2ZmNjXHU2ZmNkXHU2ZmNlXHU2ZmNmXHU2ZmQwXHU2ZmQzXHU2ZmQ0XHU2ZmQ1XHU2ZmQ2XHU2ZmQ3XHU2ZmQ4XHU2ZmQ5XHU2ZmRhXHU2''@;'; + put 'put ''ZmRiXHU2ZmRjXHU2ZmRkXHU2ZmRmXHU2ZmUyXHU2ZmUzXHU2ZmU0XHU2ZmU1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1N11bRV1dPTQwMTkyK0UsTFs0MDE5MitFXT1CWzE1N11bRV0p''@;'; + put 'put ''O2ZvcihCWzE1OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmZlNlx1NmZlN1x1NmZlOFx1NmZlOVx1NmZlYVx1NmZlYlx1NmZlY1x1NmZlZFx1NmZmMFx1NmZmMVx1NmZmMlx1NmZmM1x1NmZmNFx1NmZmNVx1NmZmNlx1NmZmN1x1''@;'; + put 'put ''NmZmOFx1NmZmOVx1NmZmYVx1NmZmYlx1NmZmY1x1NmZmZFx1NmZmZVx1NmZmZlx1NzAwMFx1NzAwMVx1NzAwMlx1NzAwM1x1NzAwNFx1NzAwNVx1NzAwNlx1NzAwN1x1NzAwOFx1NzAwOVx1NzAwYVx1NzAwYlx1NzAwY1x1NzAwZFx1NzAwZVx1NzAwZlx1NzAxMFx1NzAxMlx1NzAxM1x1NzAx''@;'; + put 'put ''NFx1NzAxNVx1NzAxNlx1NzAxN1x1NzAxOFx1NzAxOVx1NzAxY1x1NzAxZFx1NzAxZVx1NzAxZlx1NzAyMFx1NzAyMVx1NzAyMlx1NzAyNFx1NzAyNVx1NzAyNlx1NzAyN1x1NzAyOFx1NzAyOVx1NzAyYVx1ZmZmZFx1NzAyYlx1NzAyY1x1NzAyZFx1NzAyZVx1NzAyZlx1NzAzMFx1NzAzMVx1''@;'; + put 'put ''NzAzMlx1NzAzM1x1NzAzNFx1NzAzNlx1NzAzN1x1NzAzOFx1NzAzYVx1NzAzYlx1NzAzY1x1NzAzZFx1NzAzZVx1NzAzZlx1NzA0MFx1NzA0MVx1NzA0Mlx1NzA0M1x1NzA0NFx1NzA0NVx1NzA0Nlx1NzA0N1x1NzA0OFx1NzA0OVx1NzA0YVx1NzA0Ylx1NzA0ZFx1NzA0ZVx1NzA1MFx1NzA1''@;'; + put 'put ''MVx1NzA1Mlx1NzA1M1x1NzA1NFx1NzA1NVx1NzA1Nlx1NzA1N1x1NzA1OFx1NzA1OVx1NzA1YVx1NzA1Ylx1NzA1Y1x1NzA1ZFx1NzA1Zlx1NzA2MFx1NzA2MVx1NzA2Mlx1NzA2M1x1NzA2NFx1NzA2NVx1NzA2Nlx1NzA2N1x1NzA2OFx1NzA2OVx1NzA2YVx1NzA2ZVx1NzA3MVx1NzA3Mlx1''@;'; + put 'put ''NzA3M1x1NzA3NFx1NzA3N1x1NzA3OVx1NzA3YVx1NzA3Ylx1NzA3ZFx1NzA4MVx1NzA4Mlx1NzA4M1x1NzA4NFx1NzA4Nlx1NzA4N1x1NzA4OFx1NzA4Ylx1NzA4Y1x1NzA4ZFx1NzA4Zlx1NzA5MFx1NzA5MVx1NzA5M1x1NzA5N1x1NzA5OFx1NzA5YVx1NzA5Ylx1NzA5ZVx1NzA5Zlx1NzBh''@;'; + put 'put ''MFx1NzBhMVx1NzBhMlx1NzBhM1x1NzBhNFx1NzBhNVx1NzBhNlx1NzBhN1x1NzBhOFx1NzBhOVx1NzBhYVx1NzBiMFx1NzBiMlx1NzBiNFx1NzBiNVx1NzBiNlx1NzBiYVx1NzBiZVx1NzBiZlx1NzBjNFx1NzBjNVx1NzBjNlx1NzBjN1x1NzBjOVx1NzBjYlx1NzBjY1x1NzBjZFx1NzBjZVx1''@;'; + put 'put ''NzBjZlx1NzBkMFx1NzBkMVx1NzBkMlx1NzBkM1x1NzBkNFx1NzBkNVx1NzBkNlx1NzBkN1x1NzBkYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNThdW0VdXT00MDQ0OCtFLExbNDA0NDgr''@;'; + put 'put ''RV09QlsxNThdW0VdKTtmb3IoQlsxNTldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcwZGNcdTcwZGRcdTcwZGVcdTcwZTBcdTcwZTFcdTcwZTJcdTcwZTNcdTcwZTVcdTcwZWFcdTcwZWVcdTcwZjBcdTcwZjFcdTcwZjJcdTcwZjNc''@;'; + put 'put ''dTcwZjRcdTcwZjVcdTcwZjZcdTcwZjhcdTcwZmFcdTcwZmJcdTcwZmNcdTcwZmVcdTcwZmZcdTcxMDBcdTcxMDFcdTcxMDJcdTcxMDNcdTcxMDRcdTcxMDVcdTcxMDZcdTcxMDdcdTcxMDhcdTcxMGJcdTcxMGNcdTcxMGRcdTcxMGVcdTcxMGZcdTcxMTFcdTcxMTJcdTcxMTRcdTcxMTdcdTcx''@;'; + put 'put ''MWJcdTcxMWNcdTcxMWRcdTcxMWVcdTcxMWZcdTcxMjBcdTcxMjFcdTcxMjJcdTcxMjNcdTcxMjRcdTcxMjVcdTcxMjdcdTcxMjhcdTcxMjlcdTcxMmFcdTcxMmJcdTcxMmNcdTcxMmRcdTcxMmVcdTcxMzJcdTcxMzNcdTcxMzRcdWZmZmRcdTcxMzVcdTcxMzdcdTcxMzhcdTcxMzlcdTcxM2Fc''@;'; + put 'put ''dTcxM2JcdTcxM2NcdTcxM2RcdTcxM2VcdTcxM2ZcdTcxNDBcdTcxNDFcdTcxNDJcdTcxNDNcdTcxNDRcdTcxNDZcdTcxNDdcdTcxNDhcdTcxNDlcdTcxNGJcdTcxNGRcdTcxNGZcdTcxNTBcdTcxNTFcdTcxNTJcdTcxNTNcdTcxNTRcdTcxNTVcdTcxNTZcdTcxNTdcdTcxNThcdTcxNTlcdTcx''@;'; + put 'put ''NWFcdTcxNWJcdTcxNWRcdTcxNWZcdTcxNjBcdTcxNjFcdTcxNjJcdTcxNjNcdTcxNjVcdTcxNjlcdTcxNmFcdTcxNmJcdTcxNmNcdTcxNmRcdTcxNmZcdTcxNzBcdTcxNzFcdTcxNzRcdTcxNzVcdTcxNzZcdTcxNzdcdTcxNzlcdTcxN2JcdTcxN2NcdTcxN2VcdTcxN2ZcdTcxODBcdTcxODFc''@;'; + put 'put ''dTcxODJcdTcxODNcdTcxODVcdTcxODZcdTcxODdcdTcxODhcdTcxODlcdTcxOGJcdTcxOGNcdTcxOGRcdTcxOGVcdTcxOTBcdTcxOTFcdTcxOTJcdTcxOTNcdTcxOTVcdTcxOTZcdTcxOTdcdTcxOWFcdTcxOWJcdTcxOWNcdTcxOWRcdTcxOWVcdTcxYTFcdTcxYTJcdTcxYTNcdTcxYTRcdTcx''@;'; + put 'put ''YTVcdTcxYTZcdTcxYTdcdTcxYTlcdTcxYWFcdTcxYWJcdTcxYWRcdTcxYWVcdTcxYWZcdTcxYjBcdTcxYjFcdTcxYjJcdTcxYjRcdTcxYjZcdTcxYjdcdTcxYjhcdTcxYmFcdTcxYmJcdTcxYmNcdTcxYmRcdTcxYmVcdTcxYmZcdTcxYzBcdTcxYzFcdTcxYzJcdTcxYzRcdTcxYzVcdTcxYzZc''@;'; + put 'put ''dTcxYzdcdTcxYzhcdTcxYzlcdTcxY2FcdTcxY2JcdTcxY2NcdTcxY2RcdTcxY2ZcdTcxZDBcdTcxZDFcdTcxZDJcdTcxZDNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU5XVtFXV09NDA3''@;'; + put 'put ''MDQrRSxMWzQwNzA0K0VdPUJbMTU5XVtFXSk7Zm9yKEJbMTYwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MWQ2XHU3MWQ3XHU3MWQ4XHU3MWQ5XHU3MWRhXHU3MWRiXHU3MWRjXHU3MWRkXHU3MWRlXHU3MWRmXHU3MWUxXHU3MWUy''@;'; + put 'put ''XHU3MWUzXHU3MWU0XHU3MWU2XHU3MWU4XHU3MWU5XHU3MWVhXHU3MWViXHU3MWVjXHU3MWVkXHU3MWVmXHU3MWYwXHU3MWYxXHU3MWYyXHU3MWYzXHU3MWY0XHU3MWY1XHU3MWY2XHU3MWY3XHU3MWY4XHU3MWZhXHU3MWZiXHU3MWZjXHU3MWZkXHU3MWZlXHU3MWZmXHU3MjAwXHU3MjAxXHU3''@;'; + put 'put ''MjAyXHU3MjAzXHU3MjA0XHU3MjA1XHU3MjA3XHU3MjA4XHU3MjA5XHU3MjBhXHU3MjBiXHU3MjBjXHU3MjBkXHU3MjBlXHU3MjBmXHU3MjEwXHU3MjExXHU3MjEyXHU3MjEzXHU3MjE0XHU3MjE1XHU3MjE2XHU3MjE3XHU3MjE4XHU3MjE5XHU3MjFhXHVmZmZkXHU3MjFiXHU3MjFjXHU3MjFl''@;'; + put 'put ''XHU3MjFmXHU3MjIwXHU3MjIxXHU3MjIyXHU3MjIzXHU3MjI0XHU3MjI1XHU3MjI2XHU3MjI3XHU3MjI5XHU3MjJiXHU3MjJkXHU3MjJlXHU3MjJmXHU3MjMyXHU3MjMzXHU3MjM0XHU3MjNhXHU3MjNjXHU3MjNlXHU3MjQwXHU3MjQxXHU3MjQyXHU3MjQzXHU3MjQ0XHU3MjQ1XHU3MjQ2XHU3''@;'; + put 'put ''MjQ5XHU3MjRhXHU3MjRiXHU3MjRlXHU3MjRmXHU3MjUwXHU3MjUxXHU3MjUzXHU3MjU0XHU3MjU1XHU3MjU3XHU3MjU4XHU3MjVhXHU3MjVjXHU3MjVlXHU3MjYwXHU3MjYzXHU3MjY0XHU3MjY1XHU3MjY4XHU3MjZhXHU3MjZiXHU3MjZjXHU3MjZkXHU3MjcwXHU3MjcxXHU3MjczXHU3Mjc0''@;'; + put 'put ''XHU3Mjc2XHU3Mjc3XHU3Mjc4XHU3MjdiXHU3MjdjXHU3MjdkXHU3MjgyXHU3MjgzXHU3Mjg1XHU3Mjg2XHU3Mjg3XHU3Mjg4XHU3Mjg5XHU3MjhjXHU3MjhlXHU3MjkwXHU3MjkxXHU3MjkzXHU3Mjk0XHU3Mjk1XHU3Mjk2XHU3Mjk3XHU3Mjk4XHU3Mjk5XHU3MjlhXHU3MjliXHU3MjljXHU3''@;'; + put 'put ''MjlkXHU3MjllXHU3MmEwXHU3MmExXHU3MmEyXHU3MmEzXHU3MmE0XHU3MmE1XHU3MmE2XHU3MmE3XHU3MmE4XHU3MmE5XHU3MmFhXHU3MmFiXHU3MmFlXHU3MmIxXHU3MmIyXHU3MmIzXHU3MmI1XHU3MmJhXHU3MmJiXHU3MmJjXHU3MmJkXHU3MmJlXHU3MmJmXHU3MmMwXHU3MmM1XHU3MmM2''@;'; + put 'put ''XHU3MmM3XHU3MmM5XHU3MmNhXHU3MmNiXHU3MmNjXHU3MmNmXHU3MmQxXHU3MmQzXHU3MmQ0XHU3MmQ1XHU3MmQ2XHU3MmQ4XHU3MmRhXHU3MmRiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtC''@;'; + put 'put ''WzE2MF1bRV1dPTQwOTYwK0UsTFs0MDk2MCtFXT1CWzE2MF1bRV0pO2ZvcihCWzE2MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzAwMFx1MzAwMVx1MzAwMlx4YjdcdTAyYzlcdTAyYzdceGE4XHUzMDAzXHUzMDA1XHUyMDE0XHVmZjVlXHUyMDE2XHUyMDI2XHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDE0XHUzMDE1XHUzMDA4XHUzMDA5XHUzMDBhXHUzMDBiXHUz''@;'; + put 'put ''MDBjXHUzMDBkXHUzMDBlXHUzMDBmXHUzMDE2XHUzMDE3XHUzMDEwXHUzMDExXHhiMVx4ZDdceGY3XHUyMjM2XHUyMjI3XHUyMjI4XHUyMjExXHUyMjBmXHUyMjJhXHUyMjI5XHUyMjA4XHUyMjM3XHUyMjFhXHUyMmE1XHUyMjI1XHUyMjIwXHUyMzEyXHUyMjk5XHUyMjJiXHUyMjJlXHUyMjYx''@;'; + put 'put ''XHUyMjRjXHUyMjQ4XHUyMjNkXHUyMjFkXHUyMjYwXHUyMjZlXHUyMjZmXHUyMjY0XHUyMjY1XHUyMjFlXHUyMjM1XHUyMjM0XHUyNjQyXHUyNjQwXHhiMFx1MjAzMlx1MjAzM1x1MjEwM1x1ZmYwNFx4YTRcdWZmZTBcdWZmZTFcdTIwMzBceGE3XHUyMTE2XHUyNjA2XHUyNjA1XHUyNWNiXHUy''@;'; + put 'put ''NWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyMDNiXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUzMDEzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2''@;'; + put 'put ''MV1bRV1dPTQxMjE2K0UsTFs0MTIxNitFXT1CWzE2MV1bRV0pO2ZvcihCWzE2Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjE3MFx1MjE3MVx1MjE3Mlx1MjE3M1x1MjE3NFx1MjE3NVx1MjE3Nlx1MjE3N1x1MjE3OFx1MjE3OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjQ4OFx1MjQ4OVx1MjQ4YVx1MjQ4Ylx1MjQ4Y1x1MjQ4ZFx1MjQ4ZVx1''@;'; + put 'put ''MjQ4Zlx1MjQ5MFx1MjQ5MVx1MjQ5Mlx1MjQ5M1x1MjQ5NFx1MjQ5NVx1MjQ5Nlx1MjQ5N1x1MjQ5OFx1MjQ5OVx1MjQ5YVx1MjQ5Ylx1MjQ3NFx1MjQ3NVx1MjQ3Nlx1MjQ3N1x1MjQ3OFx1MjQ3OVx1MjQ3YVx1MjQ3Ylx1MjQ3Y1x1MjQ3ZFx1MjQ3ZVx1MjQ3Zlx1MjQ4MFx1MjQ4MVx1MjQ4''@;'; + put 'put ''Mlx1MjQ4M1x1MjQ4NFx1MjQ4NVx1MjQ4Nlx1MjQ4N1x1MjQ2MFx1MjQ2MVx1MjQ2Mlx1MjQ2M1x1MjQ2NFx1MjQ2NVx1MjQ2Nlx1MjQ2N1x1MjQ2OFx1MjQ2OVx1ZmZmZFx1ZmZmZFx1MzIyMFx1MzIyMVx1MzIyMlx1MzIyM1x1MzIyNFx1MzIyNVx1MzIyNlx1MzIyN1x1MzIyOFx1MzIyOVx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2NFx1MjE2NVx1MjE2Nlx1MjE2N1x1MjE2OFx1MjE2OVx1MjE2YVx1MjE2Ylx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYyXVtFXS5jaGFyQ29kZUF0''@;'; + put 'put ''KDApJiYobWVbQlsxNjJdW0VdXT00MTQ3MitFLExbNDE0NzIrRV09QlsxNjJdW0VdKTtmb3IoQlsxNjNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmMDFcdWZmMDJcdWZmMDNcdWZmZTVcdWZmMDVcdWZmMDZcdWZmMDdcdWZmMDhcdWZmMDlcdWZmMGFcdWZmMGJcdWZmMGNcdWZmMGRcdWZmMGVcdWZmMGZcdWZmMTBcdWZmMTFcdWZmMTJcdWZmMTNcdWZmMTRcdWZmMTVc''@;'; + put 'put ''dWZmMTZcdWZmMTdcdWZmMThcdWZmMTlcdWZmMWFcdWZmMWJcdWZmMWNcdWZmMWRcdWZmMWVcdWZmMWZcdWZmMjBcdWZmMjFcdWZmMjJcdWZmMjNcdWZmMjRcdWZmMjVcdWZmMjZcdWZmMjdcdWZmMjhcdWZmMjlcdWZmMmFcdWZmMmJcdWZmMmNcdWZmMmRcdWZmMmVcdWZmMmZcdWZmMzBcdWZm''@;'; + put 'put ''MzFcdWZmMzJcdWZmMzNcdWZmMzRcdWZmMzVcdWZmMzZcdWZmMzdcdWZmMzhcdWZmMzlcdWZmM2FcdWZmM2JcdWZmM2NcdWZmM2RcdWZmM2VcdWZmM2ZcdWZmNDBcdWZmNDFcdWZmNDJcdWZmNDNcdWZmNDRcdWZmNDVcdWZmNDZcdWZmNDdcdWZmNDhcdWZmNDlcdWZmNGFcdWZmNGJcdWZmNGNc''@;'; + put 'put ''dWZmNGRcdWZmNGVcdWZmNGZcdWZmNTBcdWZmNTFcdWZmNTJcdWZmNTNcdWZmNTRcdWZmNTVcdWZmNTZcdWZmNTdcdWZmNThcdWZmNTlcdWZmNWFcdWZmNWJcdWZmNWNcdWZmNWRcdWZmZTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2M11b''@;'; + put 'put ''RV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTYzXVtFXV09NDE3MjgrRSxMWzQxNzI4K0VdPUJbMTYzXVtFXSk7Zm9yKEJbMTY0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDQxXHUzMDQyXHUzMDQzXHUzMDQ0XHUzMDQ1XHUzMDQ2XHUzMDQ3XHUzMDQ4XHUzMDQ5XHUzMDRhXHUzMDRiXHUzMDRjXHUzMDRkXHUzMDRlXHUzMDRmXHUzMDUwXHUzMDUxXHUzMDUyXHUzMDUz''@;'; + put 'put ''XHUzMDU0XHUzMDU1XHUzMDU2XHUzMDU3XHUzMDU4XHUzMDU5XHUzMDVhXHUzMDViXHUzMDVjXHUzMDVkXHUzMDVlXHUzMDVmXHUzMDYwXHUzMDYxXHUzMDYyXHUzMDYzXHUzMDY0XHUzMDY1XHUzMDY2XHUzMDY3XHUzMDY4XHUzMDY5XHUzMDZhXHUzMDZiXHUzMDZjXHUzMDZkXHUzMDZlXHUz''@;'; + put 'put ''MDZmXHUzMDcwXHUzMDcxXHUzMDcyXHUzMDczXHUzMDc0XHUzMDc1XHUzMDc2XHUzMDc3XHUzMDc4XHUzMDc5XHUzMDdhXHUzMDdiXHUzMDdjXHUzMDdkXHUzMDdlXHUzMDdmXHUzMDgwXHUzMDgxXHUzMDgyXHUzMDgzXHUzMDg0XHUzMDg1XHUzMDg2XHUzMDg3XHUzMDg4XHUzMDg5XHUzMDhh''@;'; + put 'put ''XHUzMDhiXHUzMDhjXHUzMDhkXHUzMDhlXHUzMDhmXHUzMDkwXHUzMDkxXHUzMDkyXHUzMDkzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY0XS5sZW5ndGg7KytFKTY1''@;'; + put 'put ''NTMzIT09QlsxNjRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2NF1bRV1dPTQxOTg0K0UsTFs0MTk4NCtFXT1CWzE2NF1bRV0pO2ZvcihCWzE2NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzBhMVx1MzBhMlx1MzBhM1x1MzBhNFx1MzBhNVx1MzBhNlx1MzBhN1x1MzBhOFx1MzBhOVx1MzBhYVx1MzBhYlx1MzBhY1x1MzBhZFx1MzBhZVx1MzBhZlx1MzBiMFx1MzBi''@;'; + put 'put ''MVx1MzBiMlx1MzBiM1x1MzBiNFx1MzBiNVx1MzBiNlx1MzBiN1x1MzBiOFx1MzBiOVx1MzBiYVx1MzBiYlx1MzBiY1x1MzBiZFx1MzBiZVx1MzBiZlx1MzBjMFx1MzBjMVx1MzBjMlx1MzBjM1x1MzBjNFx1MzBjNVx1MzBjNlx1MzBjN1x1MzBjOFx1MzBjOVx1MzBjYVx1MzBjYlx1MzBjY1x1''@;'; + put 'put ''MzBjZFx1MzBjZVx1MzBjZlx1MzBkMFx1MzBkMVx1MzBkMlx1MzBkM1x1MzBkNFx1MzBkNVx1MzBkNlx1MzBkN1x1MzBkOFx1MzBkOVx1MzBkYVx1MzBkYlx1MzBkY1x1MzBkZFx1MzBkZVx1MzBkZlx1MzBlMFx1MzBlMVx1MzBlMlx1MzBlM1x1MzBlNFx1MzBlNVx1MzBlNlx1MzBlN1x1MzBl''@;'; + put 'put ''OFx1MzBlOVx1MzBlYVx1MzBlYlx1MzBlY1x1MzBlZFx1MzBlZVx1MzBlZlx1MzBmMFx1MzBmMVx1MzBmMlx1MzBmM1x1MzBmNFx1MzBmNVx1MzBmNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2NV0u''@;'; + put 'put ''bGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjVdW0VdXT00MjI0MCtFLExbNDIyNDArRV09QlsxNjVdW0VdKTtmb3IoQlsxNjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAz''@;'; + put 'put ''OWZcdTAzYTBcdTAzYTFcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFc''@;'; + put 'put ''dTAzYmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzNcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZlMzVcdWZlMzZcdWZlMzlcdWZlM2FcdWZlM2ZcdWZlNDBcdWZl''@;'; + put 'put ''M2RcdWZlM2VcdWZlNDFcdWZlNDJcdWZlNDNcdWZlNDRcdWZmZmRcdWZmZmRcdWZlM2JcdWZlM2NcdWZlMzdcdWZlMzhcdWZlMzFcdWZmZmRcdWZlMzNcdWZlMzRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxF''@;'; + put 'put ''PTA7RSE9QlsxNjZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY2XVtFXV09NDI0OTYrRSxMWzQyNDk2K0VdPUJbMTY2XVtFXSk7Zm9yKEJbMTY3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDAxXHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUw''@;'; + put 'put ''NDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDUxXHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUw''@;'; + put 'put ''NDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''Ii5zcGxpdCgiIiksRT0wO0UhPUJbMTY3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2N11bRV1dPTQyNzUyK0UsTFs0Mjc1MitFXT1CWzE2N11bRV0pO2ZvcihCWzE2OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1MDJjYVx1MDJjYlx1MDJkOVx1MjAxM1x1MjAxNVx1MjAyNVx1MjAzNVx1MjEwNVx1MjEwOVx1MjE5Nlx1MjE5N1x1MjE5OFx1MjE5OVx1MjIxNVx1MjIxZlx1MjIyM1x1MjI1Mlx1MjI2Nlx1MjI2N1x1MjJiZlx1MjU1MFx1MjU1MVx1MjU1Mlx1MjU1M1x1MjU1''@;'; + put 'put ''NFx1MjU1NVx1MjU1Nlx1MjU1N1x1MjU1OFx1MjU1OVx1MjU1YVx1MjU1Ylx1MjU1Y1x1MjU1ZFx1MjU1ZVx1MjU1Zlx1MjU2MFx1MjU2MVx1MjU2Mlx1MjU2M1x1MjU2NFx1MjU2NVx1MjU2Nlx1MjU2N1x1MjU2OFx1MjU2OVx1MjU2YVx1MjU2Ylx1MjU2Y1x1MjU2ZFx1MjU2ZVx1MjU2Zlx1''@;'; + put 'put ''MjU3MFx1MjU3MVx1MjU3Mlx1MjU3M1x1MjU4MVx1MjU4Mlx1MjU4M1x1MjU4NFx1MjU4NVx1MjU4Nlx1MjU4N1x1ZmZmZFx1MjU4OFx1MjU4OVx1MjU4YVx1MjU4Ylx1MjU4Y1x1MjU4ZFx1MjU4ZVx1MjU4Zlx1MjU5M1x1MjU5NFx1MjU5NVx1MjViY1x1MjViZFx1MjVlMlx1MjVlM1x1MjVl''@;'; + put 'put ''NFx1MjVlNVx1MjYwOVx1MjI5NVx1MzAxMlx1MzAxZFx1MzAxZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDEwMVx4ZTFcdTAxY2VceGUwXHUwMTEzXHhlOVx1MDExYlx4ZThcdTAxMmJceGVkXHUwMWQwXHhlY1x1''@;'; + put 'put ''MDE0ZFx4ZjNcdTAxZDJceGYyXHUwMTZiXHhmYVx1MDFkNFx4ZjlcdTAxZDZcdTAxZDhcdTAxZGFcdTAxZGNceGZjXHhlYVx1MDI1MVx1ZmZmZFx1MDE0NFx1MDE0OFx1ZmZmZFx1MDI2MVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzEwNVx1MzEwNlx1MzEwN1x1MzEwOFx1MzEwOVx1MzEw''@;'; + put 'put ''YVx1MzEwYlx1MzEwY1x1MzEwZFx1MzEwZVx1MzEwZlx1MzExMFx1MzExMVx1MzExMlx1MzExM1x1MzExNFx1MzExNVx1MzExNlx1MzExN1x1MzExOFx1MzExOVx1MzExYVx1MzExYlx1MzExY1x1MzExZFx1MzExZVx1MzExZlx1MzEyMFx1MzEyMVx1MzEyMlx1MzEyM1x1MzEyNFx1MzEyNVx1''@;'; + put 'put ''MzEyNlx1MzEyN1x1MzEyOFx1MzEyOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIp''@;'; + put 'put ''LEU9MDtFIT1CWzE2OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjhdW0VdXT00MzAwOCtFLExbNDMwMDgrRV09QlsxNjhdW0VdKTtmb3IoQlsxNjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdTMwMjFcdTMwMjJcdTMwMjNcdTMwMjRcdTMwMjVcdTMwMjZcdTMwMjdcdTMwMjhcdTMwMjlcdTMyYTNcdTMzOGVcdTMzOGZcdTMzOWNcdTMzOWRcdTMzOWVcdTMzYTFcdTMzYzRcdTMzY2VcdTMzZDFcdTMzZDJcdTMzZDVcdWZlMzBcdWZmZTJcdWZmZTRcdWZmZmRcdTIxMjFcdTMy''@;'; + put 'put ''MzFcdWZmZmRcdTIwMTBcdWZmZmRcdWZmZmRcdWZmZmRcdTMwZmNcdTMwOWJcdTMwOWNcdTMwZmRcdTMwZmVcdTMwMDZcdTMwOWRcdTMwOWVcdWZlNDlcdWZlNGFcdWZlNGJcdWZlNGNcdWZlNGRcdWZlNGVcdWZlNGZcdWZlNTBcdWZlNTFcdWZlNTJcdWZlNTRcdWZlNTVcdWZlNTZcdWZlNTdc''@;'; + put 'put ''dWZlNTlcdWZlNWFcdWZlNWJcdWZlNWNcdWZlNWRcdWZlNWVcdWZlNWZcdWZlNjBcdWZlNjFcdWZmZmRcdWZlNjJcdWZlNjNcdWZlNjRcdWZlNjVcdWZlNjZcdWZlNjhcdWZlNjlcdWZlNmFcdWZlNmJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwMDdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI1MDBcdTI1MDFcdTI1MDJcdTI1MDNcdTI1MDRcdTI1MDVcdTI1MDZcdTI1MDdcdTI1MDhc''@;'; + put 'put ''dTI1MDlcdTI1MGFcdTI1MGJcdTI1MGNcdTI1MGRcdTI1MGVcdTI1MGZcdTI1MTBcdTI1MTFcdTI1MTJcdTI1MTNcdTI1MTRcdTI1MTVcdTI1MTZcdTI1MTdcdTI1MThcdTI1MTlcdTI1MWFcdTI1MWJcdTI1MWNcdTI1MWRcdTI1MWVcdTI1MWZcdTI1MjBcdTI1MjFcdTI1MjJcdTI1MjNcdTI1''@;'; + put 'put ''MjRcdTI1MjVcdTI1MjZcdTI1MjdcdTI1MjhcdTI1MjlcdTI1MmFcdTI1MmJcdTI1MmNcdTI1MmRcdTI1MmVcdTI1MmZcdTI1MzBcdTI1MzFcdTI1MzJcdTI1MzNcdTI1MzRcdTI1MzVcdTI1MzZcdTI1MzdcdTI1MzhcdTI1MzlcdTI1M2FcdTI1M2JcdTI1M2NcdTI1M2RcdTI1M2VcdTI1M2Zc''@;'; + put 'put ''dTI1NDBcdTI1NDFcdTI1NDJcdTI1NDNcdTI1NDRcdTI1NDVcdTI1NDZcdTI1NDdcdTI1NDhcdTI1NDlcdTI1NGFcdTI1NGJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY5XVtFXV09NDMyNjQrRSxMWzQzMjY0K0VdPUJbMTY5XVtFXSk7Zm9yKEJbMTcwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHU3MmRjXHU3MmRkXHU3MmRmXHU3MmUyXHU3MmUzXHU3MmU0XHU3MmU1XHU3MmU2XHU3MmU3XHU3MmVhXHU3MmViXHU3MmY1XHU3MmY2XHU3MmY5XHU3MmZkXHU3MmZlXHU3MmZmXHU3MzAwXHU3MzAyXHU3MzA0XHU3MzA1XHU3MzA2XHU3MzA3XHU3MzA4XHU3''@;'; + put 'put ''MzA5XHU3MzBiXHU3MzBjXHU3MzBkXHU3MzBmXHU3MzEwXHU3MzExXHU3MzEyXHU3MzE0XHU3MzE4XHU3MzE5XHU3MzFhXHU3MzFmXHU3MzIwXHU3MzIzXHU3MzI0XHU3MzI2XHU3MzI3XHU3MzI4XHU3MzJkXHU3MzJmXHU3MzMwXHU3MzMyXHU3MzMzXHU3MzM1XHU3MzM2XHU3MzNhXHU3MzNi''@;'; + put 'put ''XHU3MzNjXHU3MzNkXHU3MzQwXHU3MzQxXHU3MzQyXHU3MzQzXHU3MzQ0XHU3MzQ1XHU3MzQ2XHU3MzQ3XHU3MzQ4XHVmZmZkXHU3MzQ5XHU3MzRhXHU3MzRiXHU3MzRjXHU3MzRlXHU3MzRmXHU3MzUxXHU3MzUzXHU3MzU0XHU3MzU1XHU3MzU2XHU3MzU4XHU3MzU5XHU3MzVhXHU3MzViXHU3''@;'; + put 'put ''MzVjXHU3MzVkXHU3MzVlXHU3MzVmXHU3MzYxXHU3MzYyXHU3MzYzXHU3MzY0XHU3MzY1XHU3MzY2XHU3MzY3XHU3MzY4XHU3MzY5XHU3MzZhXHU3MzZiXHU3MzZlXHU3MzcwXHU3MzcxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTcwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3MF1bRV1dPTQzNTIwK0UsTFs0MzUyMCtFXT1CWzE3MF1bRV0pO2ZvcihCWzE3MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzM3Mlx1NzM3M1x1NzM3NFx1NzM3NVx1NzM3Nlx1NzM3N1x1NzM3OFx1NzM3OVx1NzM3YVx1NzM3Ylx1NzM3Y1x1NzM3ZFx1NzM3Zlx1NzM4MFx1NzM4MVx1NzM4Mlx1NzM4M1x1NzM4NVx1NzM4Nlx1NzM4OFx1NzM4YVx1NzM4Y1x1''@;'; + put 'put ''NzM4ZFx1NzM4Zlx1NzM5MFx1NzM5Mlx1NzM5M1x1NzM5NFx1NzM5NVx1NzM5N1x1NzM5OFx1NzM5OVx1NzM5YVx1NzM5Y1x1NzM5ZFx1NzM5ZVx1NzNhMFx1NzNhMVx1NzNhM1x1NzNhNFx1NzNhNVx1NzNhNlx1NzNhN1x1NzNhOFx1NzNhYVx1NzNhY1x1NzNhZFx1NzNiMVx1NzNiNFx1NzNi''@;'; + put 'put ''NVx1NzNiNlx1NzNiOFx1NzNiOVx1NzNiY1x1NzNiZFx1NzNiZVx1NzNiZlx1NzNjMVx1NzNjM1x1NzNjNFx1NzNjNVx1NzNjNlx1NzNjN1x1ZmZmZFx1NzNjYlx1NzNjY1x1NzNjZVx1NzNkMlx1NzNkM1x1NzNkNFx1NzNkNVx1NzNkNlx1NzNkN1x1NzNkOFx1NzNkYVx1NzNkYlx1NzNkY1x1''@;'; + put 'put ''NzNkZFx1NzNkZlx1NzNlMVx1NzNlMlx1NzNlM1x1NzNlNFx1NzNlNlx1NzNlOFx1NzNlYVx1NzNlYlx1NzNlY1x1NzNlZVx1NzNlZlx1NzNmMFx1NzNmMVx1NzNmM1x1NzNmNFx1NzNmNVx1NzNmNlx1NzNmN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTcxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzFdW0VdXT00Mzc3NitFLExbNDM3NzYrRV09QlsxNzFdW0VdKTtmb3IoQlsxNzJdPSJcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTczZjhcdTczZjlcdTczZmFcdTczZmJcdTczZmNcdTczZmRcdTczZmVcdTczZmZcdTc0MDBcdTc0MDFcdTc0MDJcdTc0MDRcdTc0MDdcdTc0MDhcdTc0MGJcdTc0MGNcdTc0MGRcdTc0MGVcdTc0MTFcdTc0MTJc''@;'; + put 'put ''dTc0MTNcdTc0MTRcdTc0MTVcdTc0MTZcdTc0MTdcdTc0MThcdTc0MTlcdTc0MWNcdTc0MWRcdTc0MWVcdTc0MWZcdTc0MjBcdTc0MjFcdTc0MjNcdTc0MjRcdTc0MjdcdTc0MjlcdTc0MmJcdTc0MmRcdTc0MmZcdTc0MzFcdTc0MzJcdTc0MzdcdTc0MzhcdTc0MzlcdTc0M2FcdTc0M2JcdTc0''@;'; + put 'put ''M2RcdTc0M2VcdTc0M2ZcdTc0NDBcdTc0NDJcdTc0NDNcdTc0NDRcdTc0NDVcdTc0NDZcdTc0NDdcdTc0NDhcdTc0NDlcdTc0NGFcdTc0NGJcdTc0NGNcdTc0NGRcdWZmZmRcdTc0NGVcdTc0NGZcdTc0NTBcdTc0NTFcdTc0NTJcdTc0NTNcdTc0NTRcdTc0NTZcdTc0NThcdTc0NWRcdTc0NjBc''@;'; + put 'put ''dTc0NjFcdTc0NjJcdTc0NjNcdTc0NjRcdTc0NjVcdTc0NjZcdTc0NjdcdTc0NjhcdTc0NjlcdTc0NmFcdTc0NmJcdTc0NmNcdTc0NmVcdTc0NmZcdTc0NzFcdTc0NzJcdTc0NzNcdTc0NzRcdTc0NzVcdTc0NzhcdTc0NzlcdTc0N2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTcyXVtFXV09NDQwMzIrRSxMWzQ0MDMyK0VdPUJbMTcyXVtFXSk7Zm9yKEJbMTcz''@;'; + put 'put ''XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NDdiXHU3NDdjXHU3NDdkXHU3NDdmXHU3NDgyXHU3NDg0XHU3NDg1XHU3NDg2XHU3NDg4XHU3NDg5XHU3NDhhXHU3NDhjXHU3NDhkXHU3NDhmXHU3NDkxXHU3NDkyXHU3NDkzXHU3NDk0''@;'; + put 'put ''XHU3NDk1XHU3NDk2XHU3NDk3XHU3NDk4XHU3NDk5XHU3NDlhXHU3NDliXHU3NDlkXHU3NDlmXHU3NGEwXHU3NGExXHU3NGEyXHU3NGEzXHU3NGE0XHU3NGE1XHU3NGE2XHU3NGFhXHU3NGFiXHU3NGFjXHU3NGFkXHU3NGFlXHU3NGFmXHU3NGIwXHU3NGIxXHU3NGIyXHU3NGIzXHU3NGI0XHU3''@;'; + put 'put ''NGI1XHU3NGI2XHU3NGI3XHU3NGI4XHU3NGI5XHU3NGJiXHU3NGJjXHU3NGJkXHU3NGJlXHU3NGJmXHU3NGMwXHU3NGMxXHU3NGMyXHU3NGMzXHU3NGM0XHU3NGM1XHU3NGM2XHU3NGM3XHVmZmZkXHU3NGM4XHU3NGM5XHU3NGNhXHU3NGNiXHU3NGNjXHU3NGNkXHU3NGNlXHU3NGNmXHU3NGQw''@;'; + put 'put ''XHU3NGQxXHU3NGQzXHU3NGQ0XHU3NGQ1XHU3NGQ2XHU3NGQ3XHU3NGQ4XHU3NGQ5XHU3NGRhXHU3NGRiXHU3NGRkXHU3NGRmXHU3NGUxXHU3NGU1XHU3NGU3XHU3NGU4XHU3NGU5XHU3NGVhXHU3NGViXHU3NGVjXHU3NGVkXHU3NGYwXHU3NGYxXHU3NGYyXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTczXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3M11bRV1dPTQ0Mjg4K0UsTFs0NDI4OCtFXT1CWzE3M11b''@;'; + put 'put ''RV0pO2ZvcihCWzE3NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzRmM1x1NzRmNVx1NzRmOFx1NzRmOVx1NzRmYVx1NzRmYlx1NzRmY1x1NzRmZFx1NzRmZVx1NzUwMFx1NzUwMVx1NzUwMlx1NzUwM1x1NzUwNVx1NzUwNlx1NzUw''@;'; + put 'put ''N1x1NzUwOFx1NzUwOVx1NzUwYVx1NzUwYlx1NzUwY1x1NzUwZVx1NzUxMFx1NzUxMlx1NzUxNFx1NzUxNVx1NzUxNlx1NzUxN1x1NzUxYlx1NzUxZFx1NzUxZVx1NzUyMFx1NzUyMVx1NzUyMlx1NzUyM1x1NzUyNFx1NzUyNlx1NzUyN1x1NzUyYVx1NzUyZVx1NzUzNFx1NzUzNlx1NzUzOVx1''@;'; + put 'put ''NzUzY1x1NzUzZFx1NzUzZlx1NzU0MVx1NzU0Mlx1NzU0M1x1NzU0NFx1NzU0Nlx1NzU0N1x1NzU0OVx1NzU0YVx1NzU0ZFx1NzU1MFx1NzU1MVx1NzU1Mlx1NzU1M1x1NzU1NVx1NzU1Nlx1NzU1N1x1NzU1OFx1ZmZmZFx1NzU1ZFx1NzU1ZVx1NzU1Zlx1NzU2MFx1NzU2MVx1NzU2Mlx1NzU2''@;'; + put 'put ''M1x1NzU2NFx1NzU2N1x1NzU2OFx1NzU2OVx1NzU2Ylx1NzU2Y1x1NzU2ZFx1NzU2ZVx1NzU2Zlx1NzU3MFx1NzU3MVx1NzU3M1x1NzU3NVx1NzU3Nlx1NzU3N1x1NzU3YVx1NzU3Ylx1NzU3Y1x1NzU3ZFx1NzU3ZVx1NzU4MFx1NzU4MVx1NzU4Mlx1NzU4NFx1NzU4NVx1NzU4N1x1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzRdW0VdXT00NDU0NCtFLExbNDQ1''@;'; + put 'put ''NDQrRV09QlsxNzRdW0VdKTtmb3IoQlsxNzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc1ODhcdTc1ODlcdTc1OGFcdTc1OGNcdTc1OGRcdTc1OGVcdTc1OTBcdTc1OTNcdTc1OTVcdTc1OThcdTc1OWJcdTc1OWNcdTc1OWVcdTc1''@;'; + put 'put ''YTJcdTc1YTZcdTc1YTdcdTc1YThcdTc1YTlcdTc1YWFcdTc1YWRcdTc1YjZcdTc1YjdcdTc1YmFcdTc1YmJcdTc1YmZcdTc1YzBcdTc1YzFcdTc1YzZcdTc1Y2JcdTc1Y2NcdTc1Y2VcdTc1Y2ZcdTc1ZDBcdTc1ZDFcdTc1ZDNcdTc1ZDdcdTc1ZDlcdTc1ZGFcdTc1ZGNcdTc1ZGRcdTc1ZGZc''@;'; + put 'put ''dTc1ZTBcdTc1ZTFcdTc1ZTVcdTc1ZTlcdTc1ZWNcdTc1ZWRcdTc1ZWVcdTc1ZWZcdTc1ZjJcdTc1ZjNcdTc1ZjVcdTc1ZjZcdTc1ZjdcdTc1ZjhcdTc1ZmFcdTc1ZmJcdTc1ZmRcdTc1ZmVcdTc2MDJcdTc2MDRcdTc2MDZcdTc2MDdcdWZmZmRcdTc2MDhcdTc2MDlcdTc2MGJcdTc2MGRcdTc2''@;'; + put 'put ''MGVcdTc2MGZcdTc2MTFcdTc2MTJcdTc2MTNcdTc2MTRcdTc2MTZcdTc2MWFcdTc2MWNcdTc2MWRcdTc2MWVcdTc2MjFcdTc2MjNcdTc2MjdcdTc2MjhcdTc2MmNcdTc2MmVcdTc2MmZcdTc2MzFcdTc2MzJcdTc2MzZcdTc2MzdcdTc2MzlcdTc2M2FcdTc2M2JcdTc2M2RcdTc2NDFcdTc2NDJc''@;'; + put 'put ''dTc2NDRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc1XVtFXV09''@;'; + put 'put ''NDQ4MDArRSxMWzQ0ODAwK0VdPUJbMTc1XVtFXSk7Zm9yKEJbMTc2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NjQ1XHU3NjQ2XHU3NjQ3XHU3NjQ4XHU3NjQ5XHU3NjRhXHU3NjRiXHU3NjRlXHU3NjRmXHU3NjUwXHU3NjUxXHU3''@;'; + put 'put ''NjUyXHU3NjUzXHU3NjU1XHU3NjU3XHU3NjU4XHU3NjU5XHU3NjVhXHU3NjViXHU3NjVkXHU3NjVmXHU3NjYwXHU3NjYxXHU3NjYyXHU3NjY0XHU3NjY1XHU3NjY2XHU3NjY3XHU3NjY4XHU3NjY5XHU3NjZhXHU3NjZjXHU3NjZkXHU3NjZlXHU3NjcwXHU3NjcxXHU3NjcyXHU3NjczXHU3Njc0''@;'; + put 'put ''XHU3Njc1XHU3Njc2XHU3Njc3XHU3Njc5XHU3NjdhXHU3NjdjXHU3NjdmXHU3NjgwXHU3NjgxXHU3NjgzXHU3Njg1XHU3Njg5XHU3NjhhXHU3NjhjXHU3NjhkXHU3NjhmXHU3NjkwXHU3NjkyXHU3Njk0XHU3Njk1XHU3Njk3XHU3Njk4XHU3NjlhXHU3NjliXHVmZmZkXHU3NjljXHU3NjlkXHU3''@;'; + put 'put ''NjllXHU3NjlmXHU3NmEwXHU3NmExXHU3NmEyXHU3NmEzXHU3NmE1XHU3NmE2XHU3NmE3XHU3NmE4XHU3NmE5XHU3NmFhXHU3NmFiXHU3NmFjXHU3NmFkXHU3NmFmXHU3NmIwXHU3NmIzXHU3NmI1XHU3NmI2XHU3NmI3XHU3NmI4XHU3NmI5XHU3NmJhXHU3NmJiXHU3NmJjXHU3NmJkXHU3NmJl''@;'; + put 'put ''XHU3NmMwXHU3NmMxXHU3NmMzXHU1NTRhXHU5NjNmXHU1N2MzXHU2MzI4XHU1NGNlXHU1NTA5XHU1NGMwXHU3NjkxXHU3NjRjXHU4NTNjXHU3N2VlXHU4MjdlXHU3ODhkXHU3MjMxXHU5Njk4XHU5NzhkXHU2YzI4XHU1Yjg5XHU0ZmZhXHU2MzA5XHU2Njk3XHU1Y2I4XHU4MGZhXHU2ODQ4XHU4''@;'; + put 'put ''MGFlXHU2NjAyXHU3NmNlXHU1MWY5XHU2NTU2XHU3MWFjXHU3ZmYxXHU4ODg0XHU1MGIyXHU1OTY1XHU2MWNhXHU2ZmIzXHU4MmFkXHU2MzRjXHU2MjUyXHU1M2VkXHU1NDI3XHU3YjA2XHU1MTZiXHU3NWE0XHU1ZGY0XHU2MmQ0XHU4ZGNiXHU5Nzc2XHU2MjhhXHU4MDE5XHU1NzVkXHU5NzM4''@;'; + put 'put ''XHU3ZjYyXHU3MjM4XHU3NjdkXHU2N2NmXHU3NjdlXHU2NDQ2XHU0ZjcwXHU4ZDI1XHU2MmRjXHU3YTE3XHU2NTkxXHU3M2VkXHU2NDJjXHU2MjczXHU4MjJjXHU5ODgxXHU2NzdmXHU3MjQ4XHU2MjZlXHU2MmNjXHU0ZjM0XHU3NGUzXHU1MzRhXHU1MjllXHU3ZWNhXHU5MGE2XHU1ZTJlXHU2''@;'; + put 'put ''ODg2XHU2OTljXHU4MTgwXHU3ZWQxXHU2OGQyXHU3OGM1XHU4NjhjXHU5NTUxXHU1MDhkXHU4YzI0XHU4MmRlXHU4MGRlXHU1MzA1XHU4OTEyXHU1MjY1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzZdW0VdLmNoYXJDb2RlQXQoMCkmJiht''@;'; + put 'put ''ZVtCWzE3Nl1bRV1dPTQ1MDU2K0UsTFs0NTA1NitFXT1CWzE3Nl1bRV0pO2ZvcihCWzE3N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzZjNFx1NzZjN1x1NzZjOVx1NzZjYlx1NzZjY1x1NzZkM1x1NzZkNVx1NzZkOVx1NzZkYVx1''@;'; + put 'put ''NzZkY1x1NzZkZFx1NzZkZVx1NzZlMFx1NzZlMVx1NzZlMlx1NzZlM1x1NzZlNFx1NzZlNlx1NzZlN1x1NzZlOFx1NzZlOVx1NzZlYVx1NzZlYlx1NzZlY1x1NzZlZFx1NzZmMFx1NzZmM1x1NzZmNVx1NzZmNlx1NzZmN1x1NzZmYVx1NzZmYlx1NzZmZFx1NzZmZlx1NzcwMFx1NzcwMlx1Nzcw''@;'; + put 'put ''M1x1NzcwNVx1NzcwNlx1NzcwYVx1NzcwY1x1NzcwZVx1NzcwZlx1NzcxMFx1NzcxMVx1NzcxMlx1NzcxM1x1NzcxNFx1NzcxNVx1NzcxNlx1NzcxN1x1NzcxOFx1NzcxYlx1NzcxY1x1NzcxZFx1NzcxZVx1NzcyMVx1NzcyM1x1NzcyNFx1NzcyNVx1NzcyN1x1NzcyYVx1NzcyYlx1ZmZmZFx1''@;'; + put 'put ''NzcyY1x1NzcyZVx1NzczMFx1NzczMVx1NzczMlx1NzczM1x1NzczNFx1NzczOVx1NzczYlx1NzczZFx1NzczZVx1NzczZlx1Nzc0Mlx1Nzc0NFx1Nzc0NVx1Nzc0Nlx1Nzc0OFx1Nzc0OVx1Nzc0YVx1Nzc0Ylx1Nzc0Y1x1Nzc0ZFx1Nzc0ZVx1Nzc0Zlx1Nzc1Mlx1Nzc1M1x1Nzc1NFx1Nzc1''@;'; + put 'put ''NVx1Nzc1Nlx1Nzc1N1x1Nzc1OFx1Nzc1OVx1Nzc1Y1x1ODU4NFx1OTZmOVx1NGZkZFx1NTgyMVx1OTk3MVx1NWI5ZFx1NjJiMVx1NjJhNVx1NjZiNFx1OGM3OVx1OWM4ZFx1NzIwNlx1Njc2Zlx1Nzg5MVx1NjBiMlx1NTM1MVx1NTMxN1x1OGY4OFx1ODBjY1x1OGQxZFx1OTRhMVx1NTAwZFx1''@;'; + put 'put ''NzJjOFx1NTkwN1x1NjBlYlx1NzExOVx1ODhhYlx1NTk1NFx1ODJlZlx1NjcyY1x1N2IyOFx1NWQyOVx1N2VmN1x1NzUyZFx1NmNmNVx1OGU2Nlx1OGZmOFx1OTAzY1x1OWYzYlx1NmJkNFx1OTExOVx1N2IxNFx1NWY3Y1x1NzhhN1x1ODRkNlx1ODUzZFx1NmJkNVx1NmJkOVx1NmJkNlx1NWUw''@;'; + put 'put ''MVx1NWU4N1x1NzVmOVx1OTVlZFx1NjU1ZFx1NWYwYVx1NWZjNVx1OGY5Zlx1NThjMVx1ODFjMlx1OTA3Zlx1OTY1Ylx1OTdhZFx1OGZiOVx1N2YxNlx1OGQyY1x1NjI0MVx1NGZiZlx1NTNkOFx1NTM1ZVx1OGZhOFx1OGZhOVx1OGZhYlx1OTA0ZFx1NjgwN1x1NWY2YVx1ODE5OFx1ODg2OFx1''@;'; + put 'put ''OWNkNlx1NjE4Ylx1NTIyYlx1NzYyYVx1NWY2Y1x1NjU4Y1x1NmZkMlx1NmVlOFx1NWJiZVx1NjQ0OFx1NTE3NVx1NTFiMFx1NjdjNFx1NGUxOVx1NzljOVx1OTk3Y1x1NzBiM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc3XVtFXS5jaGFy''@;'; + put 'put ''Q29kZUF0KDApJiYobWVbQlsxNzddW0VdXT00NTMxMitFLExbNDUzMTIrRV09QlsxNzddW0VdKTtmb3IoQlsxNzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc3NWRcdTc3NWVcdTc3NWZcdTc3NjBcdTc3NjRcdTc3NjdcdTc3Njlc''@;'; + put 'put ''dTc3NmFcdTc3NmRcdTc3NmVcdTc3NmZcdTc3NzBcdTc3NzFcdTc3NzJcdTc3NzNcdTc3NzRcdTc3NzVcdTc3NzZcdTc3NzdcdTc3NzhcdTc3N2FcdTc3N2JcdTc3N2NcdTc3ODFcdTc3ODJcdTc3ODNcdTc3ODZcdTc3ODdcdTc3ODhcdTc3ODlcdTc3OGFcdTc3OGJcdTc3OGZcdTc3OTBcdTc3''@;'; + put 'put ''OTNcdTc3OTRcdTc3OTVcdTc3OTZcdTc3OTdcdTc3OThcdTc3OTlcdTc3OWFcdTc3OWJcdTc3OWNcdTc3OWRcdTc3OWVcdTc3YTFcdTc3YTNcdTc3YTRcdTc3YTZcdTc3YThcdTc3YWJcdTc3YWRcdTc3YWVcdTc3YWZcdTc3YjFcdTc3YjJcdTc3YjRcdTc3YjZcdTc3YjdcdTc3YjhcdTc3Yjlc''@;'; + put 'put ''dTc3YmFcdWZmZmRcdTc3YmNcdTc3YmVcdTc3YzBcdTc3YzFcdTc3YzJcdTc3YzNcdTc3YzRcdTc3YzVcdTc3YzZcdTc3YzdcdTc3YzhcdTc3YzlcdTc3Y2FcdTc3Y2JcdTc3Y2NcdTc3Y2VcdTc3Y2ZcdTc3ZDBcdTc3ZDFcdTc3ZDJcdTc3ZDNcdTc3ZDRcdTc3ZDVcdTc3ZDZcdTc3ZDhcdTc3''@;'; + put 'put ''ZDlcdTc3ZGFcdTc3ZGRcdTc3ZGVcdTc3ZGZcdTc3ZTBcdTc3ZTFcdTc3ZTRcdTc1YzVcdTVlNzZcdTczYmJcdTgzZTBcdTY0YWRcdTYyZThcdTk0YjVcdTZjZTJcdTUzNWFcdTUyYzNcdTY0MGZcdTk0YzJcdTdiOTRcdTRmMmZcdTVlMWJcdTgyMzZcdTgxMTZcdTgxOGFcdTZlMjRcdTZjY2Fc''@;'; + put 'put ''dTlhNzNcdTYzNTVcdTUzNWNcdTU0ZmFcdTg4NjVcdTU3ZTBcdTRlMGRcdTVlMDNcdTZiNjVcdTdjM2ZcdTkwZThcdTYwMTZcdTY0ZTZcdTczMWNcdTg4YzFcdTY3NTBcdTYyNGRcdThkMjJcdTc3NmNcdThlMjlcdTkxYzdcdTVmNjlcdTgzZGNcdTg1MjFcdTk5MTBcdTUzYzJcdTg2OTVcdTZi''@;'; + put 'put ''OGJcdTYwZWRcdTYwZThcdTcwN2ZcdTgyY2RcdTgyMzFcdTRlZDNcdTZjYTdcdTg1Y2ZcdTY0Y2RcdTdjZDlcdTY5ZmRcdTY2ZjlcdTgzNDlcdTUzOTVcdTdiNTZcdTRmYTdcdTUxOGNcdTZkNGJcdTVjNDJcdThlNmRcdTYzZDJcdTUzYzlcdTgzMmNcdTgzMzZcdTY3ZTVcdTc4YjRcdTY0M2Rc''@;'; + put 'put ''dTViZGZcdTVjOTRcdTVkZWVcdThiZTdcdTYyYzZcdTY3ZjRcdThjN2FcdTY0MDBcdTYzYmFcdTg3NDlcdTk5OGJcdThjMTdcdTdmMjBcdTk0ZjJcdTRlYTdcdTk2MTBcdTk4YTRcdTY2MGNcdTczMTZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzhdLmxlbmd0aDsrK0UpNjU1MzMhPT1C''@;'; + put 'put ''WzE3OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc4XVtFXV09NDU1NjgrRSxMWzQ1NTY4K0VdPUJbMTc4XVtFXSk7Zm9yKEJbMTc5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3N2U2XHU3N2U4XHU3N2VhXHU3N2VmXHU3N2Yw''@;'; + put 'put ''XHU3N2YxXHU3N2YyXHU3N2Y0XHU3N2Y1XHU3N2Y3XHU3N2Y5XHU3N2ZhXHU3N2ZiXHU3N2ZjXHU3ODAzXHU3ODA0XHU3ODA1XHU3ODA2XHU3ODA3XHU3ODA4XHU3ODBhXHU3ODBiXHU3ODBlXHU3ODBmXHU3ODEwXHU3ODEzXHU3ODE1XHU3ODE5XHU3ODFiXHU3ODFlXHU3ODIwXHU3ODIxXHU3''@;'; + put 'put ''ODIyXHU3ODI0XHU3ODI4XHU3ODJhXHU3ODJiXHU3ODJlXHU3ODJmXHU3ODMxXHU3ODMyXHU3ODMzXHU3ODM1XHU3ODM2XHU3ODNkXHU3ODNmXHU3ODQxXHU3ODQyXHU3ODQzXHU3ODQ0XHU3ODQ2XHU3ODQ4XHU3ODQ5XHU3ODRhXHU3ODRiXHU3ODRkXHU3ODRmXHU3ODUxXHU3ODUzXHU3ODU0''@;'; + put 'put ''XHU3ODU4XHU3ODU5XHU3ODVhXHVmZmZkXHU3ODViXHU3ODVjXHU3ODVlXHU3ODVmXHU3ODYwXHU3ODYxXHU3ODYyXHU3ODYzXHU3ODY0XHU3ODY1XHU3ODY2XHU3ODY3XHU3ODY4XHU3ODY5XHU3ODZmXHU3ODcwXHU3ODcxXHU3ODcyXHU3ODczXHU3ODc0XHU3ODc1XHU3ODc2XHU3ODc4XHU3''@;'; + put 'put ''ODc5XHU3ODdhXHU3ODdiXHU3ODdkXHU3ODdlXHU3ODdmXHU3ODgwXHU3ODgxXHU3ODgyXHU3ODgzXHU1NzNhXHU1YzFkXHU1ZTM4XHU5NTdmXHU1MDdmXHU4MGEwXHU1MzgyXHU2NTVlXHU3NTQ1XHU1NTMxXHU1MDIxXHU4ZDg1XHU2Mjg0XHU5NDllXHU2NzFkXHU1NjMyXHU2ZjZlXHU1ZGUy''@;'; + put 'put ''XHU1NDM1XHU3MDkyXHU4ZjY2XHU2MjZmXHU2NGE0XHU2M2EzXHU1ZjdiXHU2Zjg4XHU5MGY0XHU4MWUzXHU4ZmIwXHU1YzE4XHU2NjY4XHU1ZmYxXHU2Yzg5XHU5NjQ4XHU4ZDgxXHU4ODZjXHU2NDkxXHU3OWYwXHU1N2NlXHU2YTU5XHU2MjEwXHU1NDQ4XHU0ZTU4XHU3YTBiXHU2MGU5XHU2''@;'; + put 'put ''Zjg0XHU4YmRhXHU2MjdmXHU5MDFlXHU5YThiXHU3OWU0XHU1NDAzXHU3NWY0XHU2MzAxXHU1MzE5XHU2YzYwXHU4ZmRmXHU1ZjFiXHU5YTcwXHU4MDNiXHU5ZjdmXHU0Zjg4XHU1YzNhXHU4ZDY0XHU3ZmM1XHU2NWE1XHU3MGJkXHU1MTQ1XHU1MWIyXHU4NjZiXHU1ZDA3XHU1YmEwXHU2MmJk''@;'; + put 'put ''XHU5MTZjXHU3NTc0XHU4ZTBjXHU3YTIwXHU2MTAxXHU3Yjc5XHU0ZWM3XHU3ZWY4XHU3Nzg1XHU0ZTExXHU4MWVkXHU1MjFkXHU1MWZhXHU2YTcxXHU1M2E4XHU4ZTg3XHU5NTA0XHU5NmNmXHU2ZWMxXHU5NjY0XHU2OTVhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc5XS5sZW5ndGg7''@;'; + put 'put ''KytFKTY1NTMzIT09QlsxNzldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3OV1bRV1dPTQ1ODI0K0UsTFs0NTgyNCtFXT1CWzE3OV1bRV0pO2ZvcihCWzE4MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Nzg4NFx1Nzg4NVx1Nzg4''@;'; + put 'put ''Nlx1Nzg4OFx1Nzg4YVx1Nzg4Ylx1Nzg4Zlx1Nzg5MFx1Nzg5Mlx1Nzg5NFx1Nzg5NVx1Nzg5Nlx1Nzg5OVx1Nzg5ZFx1Nzg5ZVx1NzhhMFx1NzhhMlx1NzhhNFx1NzhhNlx1NzhhOFx1NzhhOVx1NzhhYVx1NzhhYlx1NzhhY1x1NzhhZFx1NzhhZVx1NzhhZlx1NzhiNVx1NzhiNlx1NzhiN1x1''@;'; + put 'put ''NzhiOFx1NzhiYVx1NzhiYlx1NzhiY1x1NzhiZFx1NzhiZlx1NzhjMFx1NzhjMlx1NzhjM1x1NzhjNFx1NzhjNlx1NzhjN1x1NzhjOFx1NzhjY1x1NzhjZFx1NzhjZVx1NzhjZlx1NzhkMVx1NzhkMlx1NzhkM1x1NzhkNlx1NzhkN1x1NzhkOFx1NzhkYVx1NzhkYlx1NzhkY1x1NzhkZFx1Nzhk''@;'; + put 'put ''ZVx1NzhkZlx1NzhlMFx1NzhlMVx1NzhlMlx1NzhlM1x1ZmZmZFx1NzhlNFx1NzhlNVx1NzhlNlx1NzhlN1x1NzhlOVx1NzhlYVx1NzhlYlx1NzhlZFx1NzhlZVx1NzhlZlx1NzhmMFx1NzhmMVx1NzhmM1x1NzhmNVx1NzhmNlx1NzhmOFx1NzhmOVx1NzhmYlx1NzhmY1x1NzhmZFx1NzhmZVx1''@;'; + put 'put ''NzhmZlx1NzkwMFx1NzkwMlx1NzkwM1x1NzkwNFx1NzkwNlx1NzkwN1x1NzkwOFx1NzkwOVx1NzkwYVx1NzkwYlx1NzkwY1x1Nzg0MFx1NTBhOFx1NzdkN1x1NjQxMFx1ODllNlx1NTkwNFx1NjNlM1x1NWRkZFx1N2E3Zlx1NjkzZFx1NGYyMFx1ODIzOVx1NTU5OFx1NGUzMlx1NzVhZVx1N2E5''@;'; + put 'put ''N1x1NWU2Mlx1NWU4YVx1OTVlZlx1NTIxYlx1NTQzOVx1NzA4YVx1NjM3Nlx1OTUyNFx1NTc4Mlx1NjYyNVx1NjkzZlx1OTE4N1x1NTUwN1x1NmRmM1x1N2VhZlx1ODgyMlx1NjIzM1x1N2VmMFx1NzViNVx1ODMyOFx1NzhjMVx1OTZjY1x1OGY5ZVx1NjE0OFx1NzRmN1x1OGJjZFx1NmI2NFx1''@;'; + put 'put ''NTIzYVx1OGQ1MFx1NmIyMVx1ODA2YVx1ODQ3MVx1NTZmMVx1NTMwNlx1NGVjZVx1NGUxYlx1NTFkMVx1N2M5N1x1OTE4Ylx1N2MwN1x1NGZjM1x1OGU3Zlx1N2JlMVx1N2E5Y1x1NjQ2N1x1NWQxNFx1NTBhY1x1ODEwNlx1NzYwMVx1N2NiOVx1NmRlY1x1N2ZlMFx1Njc1MVx1NWI1OFx1NWJm''@;'; + put 'put ''OFx1NzhjYlx1NjRhZVx1NjQxM1x1NjNhYVx1NjMyYlx1OTUxOVx1NjQyZFx1OGZiZVx1N2I1NFx1NzYyOVx1NjI1M1x1NTkyN1x1NTQ0Nlx1NmI3OVx1NTBhM1x1NjIzNFx1NWUyNlx1NmI4Nlx1NGVlM1x1OGQzN1x1ODg4Ylx1NWY4NVx1OTAyZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1C''@;'; + put 'put ''WzE4MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODBdW0VdXT00NjA4MCtFLExbNDYwODArRV09QlsxODBdW0VdKTtmb3IoQlsxODFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5''@;'; + put 'put ''MGRcdTc5MGVcdTc5MGZcdTc5MTBcdTc5MTFcdTc5MTJcdTc5MTRcdTc5MTVcdTc5MTZcdTc5MTdcdTc5MThcdTc5MTlcdTc5MWFcdTc5MWJcdTc5MWNcdTc5MWRcdTc5MWZcdTc5MjBcdTc5MjFcdTc5MjJcdTc5MjNcdTc5MjVcdTc5MjZcdTc5MjdcdTc5MjhcdTc5MjlcdTc5MmFcdTc5MmJc''@;'; + put 'put ''dTc5MmNcdTc5MmRcdTc5MmVcdTc5MmZcdTc5MzBcdTc5MzFcdTc5MzJcdTc5MzNcdTc5MzVcdTc5MzZcdTc5MzdcdTc5MzhcdTc5MzlcdTc5M2RcdTc5M2ZcdTc5NDJcdTc5NDNcdTc5NDRcdTc5NDVcdTc5NDdcdTc5NGFcdTc5NGJcdTc5NGNcdTc5NGRcdTc5NGVcdTc5NGZcdTc5NTBcdTc5''@;'; + put 'put ''NTFcdTc5NTJcdTc5NTRcdTc5NTVcdTc5NThcdTc5NTlcdTc5NjFcdTc5NjNcdWZmZmRcdTc5NjRcdTc5NjZcdTc5NjlcdTc5NmFcdTc5NmJcdTc5NmNcdTc5NmVcdTc5NzBcdTc5NzFcdTc5NzJcdTc5NzNcdTc5NzRcdTc5NzVcdTc5NzZcdTc5NzlcdTc5N2JcdTc5N2NcdTc5N2RcdTc5N2Vc''@;'; + put 'put ''dTc5N2ZcdTc5ODJcdTc5ODNcdTc5ODZcdTc5ODdcdTc5ODhcdTc5ODlcdTc5OGJcdTc5OGNcdTc5OGRcdTc5OGVcdTc5OTBcdTc5OTFcdTc5OTJcdTYwMjBcdTgwM2RcdTYyYzVcdTRlMzlcdTUzNTVcdTkwZjhcdTYzYjhcdTgwYzZcdTY1ZTZcdTZjMmVcdTRmNDZcdTYwZWVcdTZkZTFcdThi''@;'; + put 'put ''ZGVcdTVmMzlcdTg2Y2JcdTVmNTNcdTYzMjFcdTUxNWFcdTgzNjFcdTY4NjNcdTUyMDBcdTYzNjNcdThlNDhcdTUwMTJcdTVjOWJcdTc5NzdcdTViZmNcdTUyMzBcdTdhM2JcdTYwYmNcdTkwNTNcdTc2ZDdcdTVmYjdcdTVmOTdcdTc2ODRcdThlNmNcdTcwNmZcdTc2N2JcdTdiNDlcdTc3YWFc''@;'; + put 'put ''dTUxZjNcdTkwOTNcdTU4MjRcdTRmNGVcdTZlZjRcdThmZWFcdTY1NGNcdTdiMWJcdTcyYzRcdTZkYTRcdTdmZGZcdTVhZTFcdTYyYjVcdTVlOTVcdTU3MzBcdTg0ODJcdTdiMmNcdTVlMWRcdTVmMWZcdTkwMTJcdTdmMTRcdTk4YTBcdTYzODJcdTZlYzdcdTc4OThcdTcwYjlcdTUxNzhcdTk3''@;'; + put 'put ''NWJcdTU3YWJcdTc1MzVcdTRmNDNcdTc1MzhcdTVlOTdcdTYwZTZcdTU5NjBcdTZkYzBcdTZiYmZcdTc4ODlcdTUzZmNcdTk2ZDVcdTUxY2JcdTUyMDFcdTYzODlcdTU0MGFcdTk0OTNcdThjMDNcdThkY2NcdTcyMzlcdTc4OWZcdTg3NzZcdThmZWRcdThjMGRcdTUzZTBcdWZmZmQiLnNwbGl0''@;'; + put 'put ''KCIiKSxFPTA7RSE9QlsxODFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgxXVtFXV09NDYzMzYrRSxMWzQ2MzM2K0VdPUJbMTgxXVtFXSk7Zm9yKEJbMTgyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHU3OTkzXHU3OTk0XHU3OTk1XHU3OTk2XHU3OTk3XHU3OTk4XHU3OTk5XHU3OTliXHU3OTljXHU3OTlkXHU3OTllXHU3OTlmXHU3OWEwXHU3OWExXHU3OWEyXHU3OWEzXHU3OWE0XHU3OWE1XHU3OWE2XHU3OWE4XHU3OWE5XHU3OWFhXHU3OWFiXHU3OWFjXHU3OWFkXHU3OWFl''@;'; + put 'put ''XHU3OWFmXHU3OWIwXHU3OWIxXHU3OWIyXHU3OWI0XHU3OWI1XHU3OWI2XHU3OWI3XHU3OWI4XHU3OWJjXHU3OWJmXHU3OWMyXHU3OWM0XHU3OWM1XHU3OWM3XHU3OWM4XHU3OWNhXHU3OWNjXHU3OWNlXHU3OWNmXHU3OWQwXHU3OWQzXHU3OWQ0XHU3OWQ2XHU3OWQ3XHU3OWQ5XHU3OWRhXHU3''@;'; + put 'put ''OWRiXHU3OWRjXHU3OWRkXHU3OWRlXHU3OWUwXHU3OWUxXHU3OWUyXHU3OWU1XHU3OWU4XHU3OWVhXHVmZmZkXHU3OWVjXHU3OWVlXHU3OWYxXHU3OWYyXHU3OWYzXHU3OWY0XHU3OWY1XHU3OWY2XHU3OWY3XHU3OWY5XHU3OWZhXHU3OWZjXHU3OWZlXHU3OWZmXHU3YTAxXHU3YTA0XHU3YTA1''@;'; + put 'put ''XHU3YTA3XHU3YTA4XHU3YTA5XHU3YTBhXHU3YTBjXHU3YTBmXHU3YTEwXHU3YTExXHU3YTEyXHU3YTEzXHU3YTE1XHU3YTE2XHU3YTE4XHU3YTE5XHU3YTFiXHU3YTFjXHU0ZTAxXHU3NmVmXHU1M2VlXHU5NDg5XHU5ODc2XHU5ZjBlXHU5NTJkXHU1YjlhXHU4YmEyXHU0ZTIyXHU0ZTFjXHU1''@;'; + put 'put ''MWFjXHU4NDYzXHU2MWMyXHU1MmE4XHU2ODBiXHU0Zjk3XHU2MDZiXHU1MWJiXHU2ZDFlXHU1MTVjXHU2Mjk2XHU2NTk3XHU5NjYxXHU4YzQ2XHU5MDE3XHU3NWQ4XHU5MGZkXHU3NzYzXHU2YmQyXHU3MjhhXHU3MmVjXHU4YmZiXHU1ODM1XHU3Nzc5XHU4ZDRjXHU2NzVjXHU5NTQwXHU4MDlh''@;'; + put 'put ''XHU1ZWE2XHU2ZTIxXHU1OTkyXHU3YWVmXHU3N2VkXHU5NTNiXHU2YmI1XHU2NWFkXHU3ZjBlXHU1ODA2XHU1MTUxXHU5NjFmXHU1YmY5XHU1OGE5XHU1NDI4XHU4ZTcyXHU2NTY2XHU5ODdmXHU1NmU0XHU5NDlkXHU3NmZlXHU5MDQxXHU2Mzg3XHU1NGM2XHU1OTFhXHU1OTNhXHU1NzliXHU4''@;'; + put 'put ''ZWIyXHU2NzM1XHU4ZGZhXHU4MjM1XHU1MjQxXHU2MGYwXHU1ODE1XHU4NmZlXHU1Y2U4XHU5ZTQ1XHU0ZmM0XHU5ODlkXHU4YmI5XHU1YTI1XHU2MDc2XHU1Mzg0XHU2MjdjXHU5MDRmXHU5MTAyXHU5OTdmXHU2MDY5XHU4MDBjXHU1MTNmXHU4MDMzXHU1YzE0XHU5OTc1XHU2ZDMxXHU0ZThj''@;'; + put 'put ''XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4Ml1bRV1dPTQ2NTkyK0UsTFs0NjU5MitFXT1CWzE4Ml1bRV0pO2ZvcihCWzE4M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2ExZFx1N2ExZlx1N2EyMVx1N2EyMlx1N2EyNFx1N2EyNVx1N2EyNlx1N2EyN1x1N2EyOFx1N2EyOVx1N2EyYVx1N2EyYlx1N2EyY1x1N2EyZFx1N2EyZVx1N2EyZlx1N2EzMFx1N2EzMVx1N2EzMlx1N2EzNFx1N2EzNVx1N2EzNlx1N2EzOFx1N2Ez''@;'; + put 'put ''YVx1N2EzZVx1N2E0MFx1N2E0MVx1N2E0Mlx1N2E0M1x1N2E0NFx1N2E0NVx1N2E0N1x1N2E0OFx1N2E0OVx1N2E0YVx1N2E0Ylx1N2E0Y1x1N2E0ZFx1N2E0ZVx1N2E0Zlx1N2E1MFx1N2E1Mlx1N2E1M1x1N2E1NFx1N2E1NVx1N2E1Nlx1N2E1OFx1N2E1OVx1N2E1YVx1N2E1Ylx1N2E1Y1x1''@;'; + put 'put ''N2E1ZFx1N2E1ZVx1N2E1Zlx1N2E2MFx1N2E2MVx1N2E2Mlx1N2E2M1x1N2E2NFx1N2E2NVx1N2E2Nlx1N2E2N1x1N2E2OFx1ZmZmZFx1N2E2OVx1N2E2YVx1N2E2Ylx1N2E2Y1x1N2E2ZFx1N2E2ZVx1N2E2Zlx1N2E3MVx1N2E3Mlx1N2E3M1x1N2E3NVx1N2E3Ylx1N2E3Y1x1N2E3ZFx1N2E3''@;'; + put 'put ''ZVx1N2E4Mlx1N2E4NVx1N2E4N1x1N2E4OVx1N2E4YVx1N2E4Ylx1N2E4Y1x1N2E4ZVx1N2E4Zlx1N2E5MFx1N2E5M1x1N2E5NFx1N2E5OVx1N2E5YVx1N2E5Ylx1N2E5ZVx1N2FhMVx1N2FhMlx1OGQzMFx1NTNkMVx1N2Y1YVx1N2I0Zlx1NGYxMFx1NGU0Zlx1OTYwMFx1NmNkNVx1NzNkMFx1''@;'; + put 'put ''ODVlOVx1NWUwNlx1NzU2YVx1N2ZmYlx1NmEwYVx1NzdmZVx1OTQ5Mlx1N2U0MVx1NTFlMVx1NzBlNlx1NTNjZFx1OGZkNFx1ODMwM1x1OGQyOVx1NzJhZlx1OTk2ZFx1NmNkYlx1NTc0YVx1ODJiM1x1NjViOVx1ODBhYVx1NjIzZlx1OTYzMlx1NTlhOFx1NGVmZlx1OGJiZlx1N2ViYVx1NjUz''@;'; + put 'put ''ZVx1ODNmMlx1OTc1ZVx1NTU2MVx1OThkZVx1ODBhNVx1NTMyYVx1OGJmZFx1NTQyMFx1ODBiYVx1NWU5Zlx1NmNiOFx1OGQzOVx1ODJhY1x1OTE1YVx1NTQyOVx1NmMxYlx1NTIwNlx1N2ViN1x1NTc1Zlx1NzExYVx1NmM3ZVx1N2M4OVx1NTk0Ylx1NGVmZFx1NWZmZlx1NjEyNFx1N2NhYVx1''@;'; + put 'put ''NGUzMFx1NWMwMVx1NjdhYlx1ODcwMlx1NWNmMFx1OTUwYlx1OThjZVx1NzVhZlx1NzBmZFx1OTAyMlx1NTFhZlx1N2YxZFx1OGJiZFx1NTk0OVx1NTFlNFx1NGY1Ylx1NTQyNlx1NTkyYlx1NjU3N1x1ODBhNFx1NWI3NVx1NjI3Nlx1NjJjMlx1OGY5MFx1NWU0NVx1NmMxZlx1N2IyNlx1NGYw''@;'; + put 'put ''Zlx1NGZkOFx1NjcwZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODNdW0VdXT00Njg0OCtFLExbNDY4NDgrRV09QlsxODNdW0VdKTtmb3IoQlsxODRdPSJcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdhYTNcdTdhYTRcdTdhYTdcdTdhYTlcdTdhYWFcdTdhYWJcdTdhYWVcdTdhYWZcdTdhYjBcdTdhYjFcdTdhYjJcdTdhYjRcdTdhYjVcdTdhYjZcdTdhYjdcdTdhYjhcdTdhYjlcdTdhYmFcdTdhYmJcdTdhYmNcdTdhYmRcdTdh''@;'; + put 'put ''YmVcdTdhYzBcdTdhYzFcdTdhYzJcdTdhYzNcdTdhYzRcdTdhYzVcdTdhYzZcdTdhYzdcdTdhYzhcdTdhYzlcdTdhY2FcdTdhY2NcdTdhY2RcdTdhY2VcdTdhY2ZcdTdhZDBcdTdhZDFcdTdhZDJcdTdhZDNcdTdhZDRcdTdhZDVcdTdhZDdcdTdhZDhcdTdhZGFcdTdhZGJcdTdhZGNcdTdhZGRc''@;'; + put 'put ''dTdhZTFcdTdhZTJcdTdhZTRcdTdhZTdcdTdhZThcdTdhZTlcdTdhZWFcdTdhZWJcdTdhZWNcdTdhZWVcdTdhZjBcdTdhZjFcdTdhZjJcdTdhZjNcdWZmZmRcdTdhZjRcdTdhZjVcdTdhZjZcdTdhZjdcdTdhZjhcdTdhZmJcdTdhZmNcdTdhZmVcdTdiMDBcdTdiMDFcdTdiMDJcdTdiMDVcdTdi''@;'; + put 'put ''MDdcdTdiMDlcdTdiMGNcdTdiMGRcdTdiMGVcdTdiMTBcdTdiMTJcdTdiMTNcdTdiMTZcdTdiMTdcdTdiMThcdTdiMWFcdTdiMWNcdTdiMWRcdTdiMWZcdTdiMjFcdTdiMjJcdTdiMjNcdTdiMjdcdTdiMjlcdTdiMmRcdTZkNmVcdTZkYWFcdTc5OGZcdTg4YjFcdTVmMTdcdTc1MmJcdTYyOWFc''@;'; + put 'put ''dThmODVcdTRmZWZcdTkxZGNcdTY1YTdcdTgxMmZcdTgxNTFcdTVlOWNcdTgxNTBcdThkNzRcdTUyNmZcdTg5ODZcdThkNGJcdTU5MGRcdTUwODVcdTRlZDhcdTk2MWNcdTcyMzZcdTgxNzlcdThkMWZcdTViY2NcdThiYTNcdTk2NDRcdTU5ODdcdTdmMWFcdTU0OTBcdTU2NzZcdTU2MGVcdThi''@;'; + put 'put ''ZTVcdTY1MzlcdTY5ODJcdTk0OTlcdTc2ZDZcdTZlODlcdTVlNzJcdTc1MThcdTY3NDZcdTY3ZDFcdTdhZmZcdTgwOWRcdThkNzZcdTYxMWZcdTc5YzZcdTY1NjJcdThkNjNcdTUxODhcdTUyMWFcdTk0YTJcdTdmMzhcdTgwOWJcdTdlYjJcdTVjOTdcdTZlMmZcdTY3NjBcdTdiZDlcdTc2OGJc''@;'; + put 'put ''dTlhZDhcdTgxOGZcdTdmOTRcdTdjZDVcdTY0MWVcdTk1NTBcdTdhM2ZcdTU0NGFcdTU0ZTVcdTZiNGNcdTY0MDFcdTYyMDhcdTllM2RcdTgwZjNcdTc1OTlcdTUyNzJcdTk3NjlcdTg0NWJcdTY4M2NcdTg2ZTRcdTk2MDFcdTk2OTRcdTk0ZWNcdTRlMmFcdTU0MDRcdTdlZDlcdTY4MzlcdThk''@;'; + put 'put ''ZGZcdTgwMTVcdTY2ZjRcdTVlOWFcdTdmYjlcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg0XVtFXV09NDcxMDQrRSxMWzQ3MTA0K0VdPUJbMTg0XVtFXSk7Zm9yKEJbMTg1XT0iXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YjJmXHU3YjMwXHU3YjMyXHU3YjM0XHU3YjM1XHU3YjM2XHU3YjM3XHU3YjM5XHU3YjNiXHU3YjNkXHU3YjNmXHU3YjQwXHU3YjQxXHU3YjQyXHU3YjQzXHU3YjQ0XHU3YjQ2XHU3YjQ4XHU3YjRhXHU3''@;'; + put 'put ''YjRkXHU3YjRlXHU3YjUzXHU3YjU1XHU3YjU3XHU3YjU5XHU3YjVjXHU3YjVlXHU3YjVmXHU3YjYxXHU3YjYzXHU3YjY0XHU3YjY1XHU3YjY2XHU3YjY3XHU3YjY4XHU3YjY5XHU3YjZhXHU3YjZiXHU3YjZjXHU3YjZkXHU3YjZmXHU3YjcwXHU3YjczXHU3Yjc0XHU3Yjc2XHU3Yjc4XHU3Yjdh''@;'; + put 'put ''XHU3YjdjXHU3YjdkXHU3YjdmXHU3YjgxXHU3YjgyXHU3YjgzXHU3Yjg0XHU3Yjg2XHU3Yjg3XHU3Yjg4XHU3Yjg5XHU3YjhhXHU3YjhiXHU3YjhjXHU3YjhlXHU3YjhmXHVmZmZkXHU3YjkxXHU3YjkyXHU3YjkzXHU3Yjk2XHU3Yjk4XHU3Yjk5XHU3YjlhXHU3YjliXHU3YjllXHU3YjlmXHU3''@;'; + put 'put ''YmEwXHU3YmEzXHU3YmE0XHU3YmE1XHU3YmFlXHU3YmFmXHU3YmIwXHU3YmIyXHU3YmIzXHU3YmI1XHU3YmI2XHU3YmI3XHU3YmI5XHU3YmJhXHU3YmJiXHU3YmJjXHU3YmJkXHU3YmJlXHU3YmJmXHU3YmMwXHU3YmMyXHU3YmMzXHU3YmM0XHU1N2MyXHU4MDNmXHU2ODk3XHU1ZGU1XHU2NTNi''@;'; + put 'put ''XHU1MjlmXHU2MDZkXHU5ZjlhXHU0ZjliXHU4ZWFjXHU1MTZjXHU1YmFiXHU1ZjEzXHU1ZGU5XHU2YzVlXHU2MmYxXHU4ZDIxXHU1MTcxXHU5NGE5XHU1MmZlXHU2YzlmXHU4MmRmXHU3MmQ3XHU1N2EyXHU2Nzg0XHU4ZDJkXHU1OTFmXHU4ZjljXHU4M2M3XHU1NDk1XHU3YjhkXHU0ZjMwXHU2''@;'; + put 'put ''Y2JkXHU1YjY0XHU1OWQxXHU5ZjEzXHU1M2U0XHU4NmNhXHU5YWE4XHU4YzM3XHU4MGExXHU2NTQ1XHU5ODdlXHU1NmZhXHU5NmM3XHU1MjJlXHU3NGRjXHU1MjUwXHU1YmUxXHU2MzAyXHU4OTAyXHU0ZTU2XHU2MmQwXHU2MDJhXHU2OGZhXHU1MTczXHU1Yjk4XHU1MWEwXHU4OWMyXHU3YmEx''@;'; + put 'put ''XHU5OTg2XHU3ZjUwXHU2MGVmXHU3MDRjXHU4ZDJmXHU1MTQ5XHU1ZTdmXHU5MDFiXHU3NDcwXHU4OWM0XHU1NzJkXHU3ODQ1XHU1ZjUyXHU5ZjlmXHU5NWZhXHU4ZjY4XHU5YjNjXHU4YmUxXHU3Njc4XHU2ODQyXHU2N2RjXHU4ZGVhXHU4ZDM1XHU1MjNkXHU4ZjhhXHU2ZWRhXHU2OGNkXHU5''@;'; + put 'put ''NTA1XHU5MGVkXHU1NmZkXHU2NzljXHU4OGY5XHU4ZmM3XHU1NGM4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4NV1bRV1dPTQ3MzYwK0UsTFs0NzM2MCtFXT1CWzE4NV1bRV0pO2ZvcihC''@;'; + put 'put ''WzE4Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2JjNVx1N2JjOFx1N2JjOVx1N2JjYVx1N2JjYlx1N2JjZFx1N2JjZVx1N2JjZlx1N2JkMFx1N2JkMlx1N2JkNFx1N2JkNVx1N2JkNlx1N2JkN1x1N2JkOFx1N2JkYlx1N2JkY1x1''@;'; + put 'put ''N2JkZVx1N2JkZlx1N2JlMFx1N2JlMlx1N2JlM1x1N2JlNFx1N2JlN1x1N2JlOFx1N2JlOVx1N2JlYlx1N2JlY1x1N2JlZFx1N2JlZlx1N2JmMFx1N2JmMlx1N2JmM1x1N2JmNFx1N2JmNVx1N2JmNlx1N2JmOFx1N2JmOVx1N2JmYVx1N2JmYlx1N2JmZFx1N2JmZlx1N2MwMFx1N2MwMVx1N2Mw''@;'; + put 'put ''Mlx1N2MwM1x1N2MwNFx1N2MwNVx1N2MwNlx1N2MwOFx1N2MwOVx1N2MwYVx1N2MwZFx1N2MwZVx1N2MxMFx1N2MxMVx1N2MxMlx1N2MxM1x1N2MxNFx1N2MxNVx1N2MxN1x1N2MxOFx1N2MxOVx1ZmZmZFx1N2MxYVx1N2MxYlx1N2MxY1x1N2MxZFx1N2MxZVx1N2MyMFx1N2MyMVx1N2MyMlx1''@;'; + put 'put ''N2MyM1x1N2MyNFx1N2MyNVx1N2MyOFx1N2MyOVx1N2MyYlx1N2MyY1x1N2MyZFx1N2MyZVx1N2MyZlx1N2MzMFx1N2MzMVx1N2MzMlx1N2MzM1x1N2MzNFx1N2MzNVx1N2MzNlx1N2MzN1x1N2MzOVx1N2MzYVx1N2MzYlx1N2MzY1x1N2MzZFx1N2MzZVx1N2M0Mlx1OWFiOFx1NWI2OVx1NmQ3''@;'; + put 'put ''N1x1NmMyNlx1NGVhNVx1NWJiM1x1OWE4N1x1OTE2M1x1NjFhOFx1OTBhZlx1OTdlOVx1NTQyYlx1NmRiNVx1NWJkMlx1NTFmZFx1NTU4YVx1N2Y1NVx1N2ZmMFx1NjRiY1x1NjM0ZFx1NjVmMVx1NjFiZVx1NjA4ZFx1NzEwYVx1NmM1N1x1NmM0OVx1NTkyZlx1Njc2ZFx1ODIyYVx1NThkNVx1''@;'; + put 'put ''NTY4ZVx1OGM2YVx1NmJlYlx1OTBkZFx1NTk3ZFx1ODAxN1x1NTNmN1x1NmQ2OVx1NTQ3NVx1NTU5ZFx1ODM3N1x1ODNjZlx1NjgzOFx1NzliZVx1NTQ4Y1x1NGY1NVx1NTQwOFx1NzZkMlx1OGM4OVx1OTYwMlx1NmNiM1x1NmRiOFx1OGQ2Ylx1ODkxMFx1OWU2NFx1OGQzYVx1NTYzZlx1OWVk''@;'; + put 'put ''MVx1NzVkNVx1NWY4OFx1NzJlMFx1NjA2OFx1NTRmY1x1NGVhOFx1NmEyYVx1ODg2MVx1NjA1Mlx1OGY3MFx1NTRjNFx1NzBkOFx1ODY3OVx1OWUzZlx1NmQyYVx1NWI4Zlx1NWYxOFx1N2VhMlx1NTU4OVx1NGZhZlx1NzMzNFx1NTQzY1x1NTM5YVx1NTAxOVx1NTQwZVx1NTQ3Y1x1NGU0ZVx1''@;'; + put 'put ''NWZmZFx1NzQ1YVx1NThmNlx1ODQ2Ylx1ODBlMVx1ODc3NFx1NzJkMFx1N2NjYVx1NmU1Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODZdW0VdXT00NzYxNitFLExbNDc2MTYrRV09Qlsx''@;'; + put 'put ''ODZdW0VdKTtmb3IoQlsxODddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdjNDNcdTdjNDRcdTdjNDVcdTdjNDZcdTdjNDdcdTdjNDhcdTdjNDlcdTdjNGFcdTdjNGJcdTdjNGNcdTdjNGVcdTdjNGZcdTdjNTBcdTdjNTFcdTdjNTJc''@;'; + put 'put ''dTdjNTNcdTdjNTRcdTdjNTVcdTdjNTZcdTdjNTdcdTdjNThcdTdjNTlcdTdjNWFcdTdjNWJcdTdjNWNcdTdjNWRcdTdjNWVcdTdjNWZcdTdjNjBcdTdjNjFcdTdjNjJcdTdjNjNcdTdjNjRcdTdjNjVcdTdjNjZcdTdjNjdcdTdjNjhcdTdjNjlcdTdjNmFcdTdjNmJcdTdjNmNcdTdjNmRcdTdj''@;'; + put 'put ''NmVcdTdjNmZcdTdjNzBcdTdjNzFcdTdjNzJcdTdjNzVcdTdjNzZcdTdjNzdcdTdjNzhcdTdjNzlcdTdjN2FcdTdjN2VcdTdjN2ZcdTdjODBcdTdjODFcdTdjODJcdTdjODNcdTdjODRcdTdjODVcdTdjODZcdTdjODdcdWZmZmRcdTdjODhcdTdjOGFcdTdjOGJcdTdjOGNcdTdjOGRcdTdjOGVc''@;'; + put 'put ''dTdjOGZcdTdjOTBcdTdjOTNcdTdjOTRcdTdjOTZcdTdjOTlcdTdjOWFcdTdjOWJcdTdjYTBcdTdjYTFcdTdjYTNcdTdjYTZcdTdjYTdcdTdjYThcdTdjYTlcdTdjYWJcdTdjYWNcdTdjYWRcdTdjYWZcdTdjYjBcdTdjYjRcdTdjYjVcdTdjYjZcdTdjYjdcdTdjYjhcdTdjYmFcdTdjYmJcdTVm''@;'; + put 'put ''MjdcdTg2NGVcdTU1MmNcdTYyYTRcdTRlOTJcdTZjYWFcdTYyMzdcdTgyYjFcdTU0ZDdcdTUzNGVcdTczM2VcdTZlZDFcdTc1M2JcdTUyMTJcdTUzMTZcdThiZGRcdTY5ZDBcdTVmOGFcdTYwMDBcdTZkZWVcdTU3NGZcdTZiMjJcdTczYWZcdTY4NTNcdThmZDhcdTdmMTNcdTYzNjJcdTYwYTNc''@;'; + put 'put ''dTU1MjRcdTc1ZWFcdThjNjJcdTcxMTVcdTZkYTNcdTViYTZcdTVlN2JcdTgzNTJcdTYxNGNcdTllYzRcdTc4ZmFcdTg3NTdcdTdjMjdcdTc2ODdcdTUxZjBcdTYwZjZcdTcxNGNcdTY2NDNcdTVlNGNcdTYwNGRcdThjMGVcdTcwNzBcdTYzMjVcdThmODlcdTVmYmRcdTYwNjJcdTg2ZDRcdTU2''@;'; + put 'put ''ZGVcdTZiYzFcdTYwOTRcdTYxNjdcdTUzNDlcdTYwZTBcdTY2NjZcdThkM2ZcdTc5ZmRcdTRmMWFcdTcwZTlcdTZjNDdcdThiYjNcdThiZjJcdTdlZDhcdTgzNjRcdTY2MGZcdTVhNWFcdTliNDJcdTZkNTFcdTZkZjdcdThjNDFcdTZkM2JcdTRmMTlcdTcwNmJcdTgzYjdcdTYyMTZcdTYwZDFc''@;'; + put 'put ''dTk3MGRcdThkMjdcdTc5NzhcdTUxZmJcdTU3M2VcdTU3ZmFcdTY3M2FcdTc1NzhcdTdhM2RcdTc5ZWZcdTdiOTVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg3XVtFXV09NDc4NzIrRSxM''@;'; + put 'put ''WzQ3ODcyK0VdPUJbMTg3XVtFXSk7Zm9yKEJbMTg4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Y2JmXHU3Y2MwXHU3Y2MyXHU3Y2MzXHU3Y2M0XHU3Y2M2XHU3Y2M5XHU3Y2NiXHU3Y2NlXHU3Y2NmXHU3Y2QwXHU3Y2QxXHU3Y2Qy''@;'; + put 'put ''XHU3Y2QzXHU3Y2Q0XHU3Y2Q4XHU3Y2RhXHU3Y2RiXHU3Y2RkXHU3Y2RlXHU3Y2UxXHU3Y2UyXHU3Y2UzXHU3Y2U0XHU3Y2U1XHU3Y2U2XHU3Y2U3XHU3Y2U5XHU3Y2VhXHU3Y2ViXHU3Y2VjXHU3Y2VkXHU3Y2VlXHU3Y2YwXHU3Y2YxXHU3Y2YyXHU3Y2YzXHU3Y2Y0XHU3Y2Y1XHU3Y2Y2XHU3''@;'; + put 'put ''Y2Y3XHU3Y2Y5XHU3Y2ZhXHU3Y2ZjXHU3Y2ZkXHU3Y2ZlXHU3Y2ZmXHU3ZDAwXHU3ZDAxXHU3ZDAyXHU3ZDAzXHU3ZDA0XHU3ZDA1XHU3ZDA2XHU3ZDA3XHU3ZDA4XHU3ZDA5XHU3ZDBiXHU3ZDBjXHU3ZDBkXHU3ZDBlXHU3ZDBmXHU3ZDEwXHVmZmZkXHU3ZDExXHU3ZDEyXHU3ZDEzXHU3ZDE0''@;'; + put 'put ''XHU3ZDE1XHU3ZDE2XHU3ZDE3XHU3ZDE4XHU3ZDE5XHU3ZDFhXHU3ZDFiXHU3ZDFjXHU3ZDFkXHU3ZDFlXHU3ZDFmXHU3ZDIxXHU3ZDIzXHU3ZDI0XHU3ZDI1XHU3ZDI2XHU3ZDI4XHU3ZDI5XHU3ZDJhXHU3ZDJjXHU3ZDJkXHU3ZDJlXHU3ZDMwXHU3ZDMxXHU3ZDMyXHU3ZDMzXHU3ZDM0XHU3''@;'; + put 'put ''ZDM1XHU3ZDM2XHU4MDhjXHU5OTY1XHU4ZmY5XHU2ZmMwXHU4YmE1XHU5ZTIxXHU1OWVjXHU3ZWU5XHU3ZjA5XHU1NDA5XHU2NzgxXHU2OGQ4XHU4ZjkxXHU3YzRkXHU5NmM2XHU1M2NhXHU2MDI1XHU3NWJlXHU2YzcyXHU1MzczXHU1YWM5XHU3ZWE3XHU2MzI0XHU1MWUwXHU4MTBhXHU1ZGYx''@;'; + put 'put ''XHU4NGRmXHU2MjgwXHU1MTgwXHU1YjYzXHU0ZjBlXHU3OTZkXHU1MjQyXHU2MGI4XHU2ZDRlXHU1YmM0XHU1YmMyXHU4YmExXHU4YmIwXHU2NWUyXHU1ZmNjXHU5NjQ1XHU1OTkzXHU3ZWU3XHU3ZWFhXHU1NjA5XHU2N2I3XHU1OTM5XHU0ZjczXHU1YmI2XHU1MmEwXHU4MzVhXHU5ODhhXHU4''@;'; + put 'put ''ZDNlXHU3NTMyXHU5NGJlXHU1MDQ3XHU3YTNjXHU0ZWY3XHU2N2I2XHU5YTdlXHU1YWMxXHU2YjdjXHU3NmQxXHU1NzVhXHU1YzE2XHU3YjNhXHU5NWY0XHU3MTRlXHU1MTdjXHU4MGE5XHU4MjcwXHU1OTc4XHU3ZjA0XHU4MzI3XHU2OGMwXHU2N2VjXHU3OGIxXHU3ODc3XHU2MmUzXHU2MzYx''@;'; + put 'put ''XHU3YjgwXHU0ZmVkXHU1MjZhXHU1MWNmXHU4MzUwXHU2OWRiXHU5Mjc0XHU4ZGY1XHU4ZDMxXHU4OWMxXHU5NTJlXHU3YmFkXHU0ZWY2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4OF1b''@;'; + put 'put ''RV1dPTQ4MTI4K0UsTFs0ODEyOCtFXT1CWzE4OF1bRV0pO2ZvcihCWzE4OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2QzN1x1N2QzOFx1N2QzOVx1N2QzYVx1N2QzYlx1N2QzY1x1N2QzZFx1N2QzZVx1N2QzZlx1N2Q0MFx1N2Q0''@;'; + put 'put ''MVx1N2Q0Mlx1N2Q0M1x1N2Q0NFx1N2Q0NVx1N2Q0Nlx1N2Q0N1x1N2Q0OFx1N2Q0OVx1N2Q0YVx1N2Q0Ylx1N2Q0Y1x1N2Q0ZFx1N2Q0ZVx1N2Q0Zlx1N2Q1MFx1N2Q1MVx1N2Q1Mlx1N2Q1M1x1N2Q1NFx1N2Q1NVx1N2Q1Nlx1N2Q1N1x1N2Q1OFx1N2Q1OVx1N2Q1YVx1N2Q1Ylx1N2Q1Y1x1''@;'; + put 'put ''N2Q1ZFx1N2Q1ZVx1N2Q1Zlx1N2Q2MFx1N2Q2MVx1N2Q2Mlx1N2Q2M1x1N2Q2NFx1N2Q2NVx1N2Q2Nlx1N2Q2N1x1N2Q2OFx1N2Q2OVx1N2Q2YVx1N2Q2Ylx1N2Q2Y1x1N2Q2ZFx1N2Q2Zlx1N2Q3MFx1N2Q3MVx1N2Q3Mlx1N2Q3M1x1N2Q3NFx1N2Q3NVx1N2Q3Nlx1ZmZmZFx1N2Q3OFx1N2Q3''@;'; + put 'put ''OVx1N2Q3YVx1N2Q3Ylx1N2Q3Y1x1N2Q3ZFx1N2Q3ZVx1N2Q3Zlx1N2Q4MFx1N2Q4MVx1N2Q4Mlx1N2Q4M1x1N2Q4NFx1N2Q4NVx1N2Q4Nlx1N2Q4N1x1N2Q4OFx1N2Q4OVx1N2Q4YVx1N2Q4Ylx1N2Q4Y1x1N2Q4ZFx1N2Q4ZVx1N2Q4Zlx1N2Q5MFx1N2Q5MVx1N2Q5Mlx1N2Q5M1x1N2Q5NFx1''@;'; + put 'put ''N2Q5NVx1N2Q5Nlx1N2Q5N1x1N2Q5OFx1NTA2NVx1ODIzMFx1NTI1MVx1OTk2Zlx1NmUxMFx1NmU4NVx1NmRhN1x1NWVmYVx1NTBmNVx1NTlkY1x1NWMwNlx1NmQ0Nlx1NmM1Zlx1NzU4Nlx1ODQ4Ylx1Njg2OFx1NTk1Nlx1OGJiMlx1NTMyMFx1OTE3MVx1OTY0ZFx1ODU0OVx1NjkxMlx1Nzkw''@;'; + put 'put ''MVx1NzEyNlx1ODBmNlx1NGVhNFx1OTBjYVx1NmQ0N1x1OWE4NFx1NWEwN1x1NTZiY1x1NjQwNVx1OTRmMFx1NzdlYlx1NGZhNVx1ODExYVx1NzJlMVx1ODlkMlx1OTk3YVx1N2YzNFx1N2VkZVx1NTI3Zlx1NjU1OVx1OTE3NVx1OGY3Zlx1OGY4M1x1NTNlYlx1N2E5Nlx1NjNlZFx1NjNhNVx1''@;'; + put 'put ''NzY4Nlx1NzlmOFx1ODg1N1x1OTYzNlx1NjIyYVx1NTJhYlx1ODI4Mlx1Njg1NFx1Njc3MFx1NjM3N1x1Nzc2Ylx1N2FlZFx1NmQwMVx1N2VkM1x1ODllM1x1NTlkMFx1NjIxMlx1ODVjOVx1ODJhNVx1NzU0Y1x1NTAxZlx1NGVjYlx1NzVhNVx1OGJlYlx1NWM0YVx1NWRmZVx1N2I0Ylx1NjVh''@;'; + put 'put ''NFx1OTFkMVx1NGVjYVx1NmQyNVx1ODk1Zlx1N2QyN1x1OTUyNlx1NGVjNVx1OGMyOFx1OGZkYlx1OTc3M1x1NjY0Ylx1Nzk4MVx1OGZkMVx1NzBlY1x1NmQ3OFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg5XVtFXS5jaGFyQ29kZUF0KDAp''@;'; + put 'put ''JiYobWVbQlsxODldW0VdXT00ODM4NCtFLExbNDgzODQrRV09QlsxODldW0VdKTtmb3IoQlsxOTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdkOTlcdTdkOWFcdTdkOWJcdTdkOWNcdTdkOWRcdTdkOWVcdTdkOWZcdTdkYTBcdTdk''@;'; + put 'put ''YTFcdTdkYTJcdTdkYTNcdTdkYTRcdTdkYTVcdTdkYTdcdTdkYThcdTdkYTlcdTdkYWFcdTdkYWJcdTdkYWNcdTdkYWRcdTdkYWZcdTdkYjBcdTdkYjFcdTdkYjJcdTdkYjNcdTdkYjRcdTdkYjVcdTdkYjZcdTdkYjdcdTdkYjhcdTdkYjlcdTdkYmFcdTdkYmJcdTdkYmNcdTdkYmRcdTdkYmVc''@;'; + put 'put ''dTdkYmZcdTdkYzBcdTdkYzFcdTdkYzJcdTdkYzNcdTdkYzRcdTdkYzVcdTdkYzZcdTdkYzdcdTdkYzhcdTdkYzlcdTdkY2FcdTdkY2JcdTdkY2NcdTdkY2RcdTdkY2VcdTdkY2ZcdTdkZDBcdTdkZDFcdTdkZDJcdTdkZDNcdTdkZDRcdTdkZDVcdTdkZDZcdTdkZDdcdTdkZDhcdTdkZDlcdWZm''@;'; + put 'put ''ZmRcdTdkZGFcdTdkZGJcdTdkZGNcdTdkZGRcdTdkZGVcdTdkZGZcdTdkZTBcdTdkZTFcdTdkZTJcdTdkZTNcdTdkZTRcdTdkZTVcdTdkZTZcdTdkZTdcdTdkZThcdTdkZTlcdTdkZWFcdTdkZWJcdTdkZWNcdTdkZWRcdTdkZWVcdTdkZWZcdTdkZjBcdTdkZjFcdTdkZjJcdTdkZjNcdTdkZjRc''@;'; + put 'put ''dTdkZjVcdTdkZjZcdTdkZjdcdTdkZjhcdTdkZjlcdTdkZmFcdTVjM2RcdTUyYjJcdTgzNDZcdTUxNjJcdTgzMGVcdTc3NWJcdTY2NzZcdTljYjhcdTRlYWNcdTYwY2FcdTdjYmVcdTdjYjNcdTdlY2ZcdTRlOTVcdThiNjZcdTY2NmZcdTk4ODhcdTk3NTlcdTU4ODNcdTY1NmNcdTk1NWNcdTVm''@;'; + put 'put ''ODRcdTc1YzlcdTk3NTZcdTdhZGZcdTdhZGVcdTUxYzBcdTcwYWZcdTdhOThcdTYzZWFcdTdhNzZcdTdlYTBcdTczOTZcdTk3ZWRcdTRlNDVcdTcwNzhcdTRlNWRcdTkxNTJcdTUzYTlcdTY1NTFcdTY1ZTdcdTgxZmNcdTgyMDVcdTU0OGVcdTVjMzFcdTc1OWFcdTk3YTBcdTYyZDhcdTcyZDlc''@;'; + put 'put ''dTc1YmRcdTVjNDVcdTlhNzlcdTgzY2FcdTVjNDBcdTU0ODBcdTc3ZTlcdTRlM2VcdTZjYWVcdTgwNWFcdTYyZDJcdTYzNmVcdTVkZThcdTUxNzdcdThkZGRcdThlMWVcdTk1MmZcdTRmZjFcdTUzZTVcdTYwZTdcdTcwYWNcdTUyNjdcdTYzNTBcdTllNDNcdTVhMWZcdTUwMjZcdTc3MzdcdTUz''@;'; + put 'put ''NzdcdTdlZTJcdTY0ODVcdTY1MmJcdTYyODlcdTYzOThcdTUwMTRcdTcyMzVcdTg5YzlcdTUxYjNcdThiYzBcdTdlZGRcdTU3NDdcdTgzY2NcdTk0YTdcdTUxOWJcdTU0MWJcdTVjZmJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5MF1bRV0u''@;'; + put 'put ''Y2hhckNvZGVBdCgwKSYmKG1lW0JbMTkwXVtFXV09NDg2NDArRSxMWzQ4NjQwK0VdPUJbMTkwXVtFXSk7Zm9yKEJbMTkxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZGZiXHU3ZGZjXHU3ZGZkXHU3ZGZlXHU3ZGZmXHU3ZTAwXHU3''@;'; + put 'put ''ZTAxXHU3ZTAyXHU3ZTAzXHU3ZTA0XHU3ZTA1XHU3ZTA2XHU3ZTA3XHU3ZTA4XHU3ZTA5XHU3ZTBhXHU3ZTBiXHU3ZTBjXHU3ZTBkXHU3ZTBlXHU3ZTBmXHU3ZTEwXHU3ZTExXHU3ZTEyXHU3ZTEzXHU3ZTE0XHU3ZTE1XHU3ZTE2XHU3ZTE3XHU3ZTE4XHU3ZTE5XHU3ZTFhXHU3ZTFiXHU3ZTFj''@;'; + put 'put ''XHU3ZTFkXHU3ZTFlXHU3ZTFmXHU3ZTIwXHU3ZTIxXHU3ZTIyXHU3ZTIzXHU3ZTI0XHU3ZTI1XHU3ZTI2XHU3ZTI3XHU3ZTI4XHU3ZTI5XHU3ZTJhXHU3ZTJiXHU3ZTJjXHU3ZTJkXHU3ZTJlXHU3ZTJmXHU3ZTMwXHU3ZTMxXHU3ZTMyXHU3ZTMzXHU3ZTM0XHU3ZTM1XHU3ZTM2XHU3ZTM3XHU3''@;'; + put 'put ''ZTM4XHU3ZTM5XHVmZmZkXHU3ZTNhXHU3ZTNjXHU3ZTNkXHU3ZTNlXHU3ZTNmXHU3ZTQwXHU3ZTQyXHU3ZTQzXHU3ZTQ0XHU3ZTQ1XHU3ZTQ2XHU3ZTQ4XHU3ZTQ5XHU3ZTRhXHU3ZTRiXHU3ZTRjXHU3ZTRkXHU3ZTRlXHU3ZTRmXHU3ZTUwXHU3ZTUxXHU3ZTUyXHU3ZTUzXHU3ZTU0XHU3ZTU1''@;'; + put 'put ''XHU3ZTU2XHU3ZTU3XHU3ZTU4XHU3ZTU5XHU3ZTVhXHU3ZTViXHU3ZTVjXHU3ZTVkXHU0ZmNhXHU3YWUzXHU2ZDVhXHU5MGUxXHU5YThmXHU1NTgwXHU1NDk2XHU1MzYxXHU1NGFmXHU1ZjAwXHU2M2U5XHU2OTc3XHU1MWVmXHU2MTY4XHU1MjBhXHU1ODJhXHU1MmQ4XHU1NzRlXHU3ODBkXHU3''@;'; + put 'put ''NzBiXHU1ZWI3XHU2MTc3XHU3Y2UwXHU2MjViXHU2Mjk3XHU0ZWEyXHU3MDk1XHU4MDAzXHU2MmY3XHU3MGU0XHU5NzYwXHU1Nzc3XHU4MmRiXHU2N2VmXHU2OGY1XHU3OGQ1XHU5ODk3XHU3OWQxXHU1OGYzXHU1NGIzXHU1M2VmXHU2ZTM0XHU1MTRiXHU1MjNiXHU1YmEyXHU4YmZlXHU4MGFm''@;'; + put 'put ''XHU1NTQzXHU1N2E2XHU2MDczXHU1NzUxXHU1NDJkXHU3YTdhXHU2MDUwXHU1YjU0XHU2M2E3XHU2MmEwXHU1M2UzXHU2MjYzXHU1YmM3XHU2N2FmXHU1NGVkXHU3YTlmXHU4MmU2XHU5MTc3XHU1ZTkzXHU4OGU0XHU1OTM4XHU1N2FlXHU2MzBlXHU4ZGU4XHU4MGVmXHU1NzU3XHU3Yjc3XHU0''@;'; + put 'put ''ZmE5XHU1ZmViXHU1YmJkXHU2YjNlXHU1MzIxXHU3YjUwXHU3MmMyXHU2ODQ2XHU3N2ZmXHU3NzM2XHU2NWY3XHU1MWI1XHU0ZThmXHU3NmQ0XHU1Y2JmXHU3YWE1XHU4NDc1XHU1OTRlXHU5YjQxXHU1MDgwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkxXS5sZW5ndGg7KytFKTY1NTMz''@;'; + put 'put ''IT09QlsxOTFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5MV1bRV1dPTQ4ODk2K0UsTFs0ODg5NitFXT1CWzE5MV1bRV0pO2ZvcihCWzE5Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2U1ZVx1N2U1Zlx1N2U2MFx1N2U2MVx1''@;'; + put 'put ''N2U2Mlx1N2U2M1x1N2U2NFx1N2U2NVx1N2U2Nlx1N2U2N1x1N2U2OFx1N2U2OVx1N2U2YVx1N2U2Ylx1N2U2Y1x1N2U2ZFx1N2U2ZVx1N2U2Zlx1N2U3MFx1N2U3MVx1N2U3Mlx1N2U3M1x1N2U3NFx1N2U3NVx1N2U3Nlx1N2U3N1x1N2U3OFx1N2U3OVx1N2U3YVx1N2U3Ylx1N2U3Y1x1N2U3''@;'; + put 'put ''ZFx1N2U3ZVx1N2U3Zlx1N2U4MFx1N2U4MVx1N2U4M1x1N2U4NFx1N2U4NVx1N2U4Nlx1N2U4N1x1N2U4OFx1N2U4OVx1N2U4YVx1N2U4Ylx1N2U4Y1x1N2U4ZFx1N2U4ZVx1N2U4Zlx1N2U5MFx1N2U5MVx1N2U5Mlx1N2U5M1x1N2U5NFx1N2U5NVx1N2U5Nlx1N2U5N1x1N2U5OFx1N2U5OVx1''@;'; + put 'put ''N2U5YVx1N2U5Y1x1N2U5ZFx1N2U5ZVx1ZmZmZFx1N2VhZVx1N2ViNFx1N2ViYlx1N2ViY1x1N2VkNlx1N2VlNFx1N2VlY1x1N2VmOVx1N2YwYVx1N2YxMFx1N2YxZVx1N2YzN1x1N2YzOVx1N2YzYlx1N2YzY1x1N2YzZFx1N2YzZVx1N2YzZlx1N2Y0MFx1N2Y0MVx1N2Y0M1x1N2Y0Nlx1N2Y0''@;'; + put 'put ''N1x1N2Y0OFx1N2Y0OVx1N2Y0YVx1N2Y0Ylx1N2Y0Y1x1N2Y0ZFx1N2Y0ZVx1N2Y0Zlx1N2Y1Mlx1N2Y1M1x1OTk4OFx1NjEyN1x1NmU4M1x1NTc2NFx1NjYwNlx1NjM0Nlx1NTZmMFx1NjJlY1x1NjI2OVx1NWVkM1x1OTYxNFx1NTc4M1x1NjJjOVx1NTU4N1x1ODcyMVx1ODE0YVx1OGZhM1x1''@;'; + put 'put ''NTU2Nlx1ODNiMVx1Njc2NVx1OGQ1Nlx1ODRkZFx1NWE2YVx1NjgwZlx1NjJlNlx1N2JlZVx1OTYxMVx1NTE3MFx1NmY5Y1x1OGMzMFx1NjNmZFx1ODljOFx1NjFkMlx1N2YwNlx1NzBjMlx1NmVlNVx1NzQwNVx1Njk5NFx1NzJmY1x1NWVjYVx1OTBjZVx1NjcxN1x1NmQ2YVx1NjM1ZVx1NTJi''@;'; + put 'put ''M1x1NzI2Mlx1ODAwMVx1NGY2Y1x1NTllNVx1OTE2YVx1NzBkOVx1NmQ5ZFx1NTJkMlx1NGU1MFx1OTZmN1x1OTU2ZFx1ODU3ZVx1NzhjYVx1N2QyZlx1NTEyMVx1NTc5Mlx1NjRjMlx1ODA4Ylx1N2M3Ylx1NmNlYVx1NjhmMVx1Njk1ZVx1NTFiN1x1NTM5OFx1NjhhOFx1NzI4MVx1OWVjZVx1''@;'; + put 'put ''N2JmMVx1NzJmOFx1NzliYlx1NmYxM1x1NzQwNlx1Njc0ZVx1OTFjY1x1OWNhNFx1NzkzY1x1ODM4OVx1ODM1NFx1NTQwZlx1NjgxN1x1NGUzZFx1NTM4OVx1NTJiMVx1NzgzZVx1NTM4Nlx1NTIyOVx1NTA4OFx1NGY4Ylx1NGZkMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5Ml0ubGVu''@;'; + put 'put ''Z3RoOysrRSk2NTUzMyE9PUJbMTkyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTJdW0VdXT00OTE1MitFLExbNDkxNTIrRV09QlsxOTJdW0VdKTtmb3IoQlsxOTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdmNTZcdTdmNTlc''@;'; + put 'put ''dTdmNWJcdTdmNWNcdTdmNWRcdTdmNWVcdTdmNjBcdTdmNjNcdTdmNjRcdTdmNjVcdTdmNjZcdTdmNjdcdTdmNmJcdTdmNmNcdTdmNmRcdTdmNmZcdTdmNzBcdTdmNzNcdTdmNzVcdTdmNzZcdTdmNzdcdTdmNzhcdTdmN2FcdTdmN2JcdTdmN2NcdTdmN2RcdTdmN2ZcdTdmODBcdTdmODJcdTdm''@;'; + put 'put ''ODNcdTdmODRcdTdmODVcdTdmODZcdTdmODdcdTdmODhcdTdmODlcdTdmOGJcdTdmOGRcdTdmOGZcdTdmOTBcdTdmOTFcdTdmOTJcdTdmOTNcdTdmOTVcdTdmOTZcdTdmOTdcdTdmOThcdTdmOTlcdTdmOWJcdTdmOWNcdTdmYTBcdTdmYTJcdTdmYTNcdTdmYTVcdTdmYTZcdTdmYThcdTdmYTlc''@;'; + put 'put ''dTdmYWFcdTdmYWJcdTdmYWNcdTdmYWRcdTdmYWVcdTdmYjFcdWZmZmRcdTdmYjNcdTdmYjRcdTdmYjVcdTdmYjZcdTdmYjdcdTdmYmFcdTdmYmJcdTdmYmVcdTdmYzBcdTdmYzJcdTdmYzNcdTdmYzRcdTdmYzZcdTdmYzdcdTdmYzhcdTdmYzlcdTdmY2JcdTdmY2RcdTdmY2ZcdTdmZDBcdTdm''@;'; + put 'put ''ZDFcdTdmZDJcdTdmZDNcdTdmZDZcdTdmZDdcdTdmZDlcdTdmZGFcdTdmZGJcdTdmZGNcdTdmZGRcdTdmZGVcdTdmZTJcdTdmZTNcdTc1ZTJcdTdhY2JcdTdjOTJcdTZjYTVcdTk2YjZcdTUyOWJcdTc0ODNcdTU0ZTlcdTRmZTlcdTgwNTRcdTgzYjJcdThmZGVcdTk1NzBcdTVlYzlcdTYwMWNc''@;'; + put 'put ''dTZkOWZcdTVlMThcdTY1NWJcdTgxMzhcdTk0ZmVcdTYwNGJcdTcwYmNcdTdlYzNcdTdjYWVcdTUxYzlcdTY4ODFcdTdjYjFcdTgyNmZcdTRlMjRcdThmODZcdTkxY2ZcdTY2N2VcdTRlYWVcdThjMDVcdTY0YTlcdTgwNGFcdTUwZGFcdTc1OTdcdTcxY2VcdTViZTVcdThmYmRcdTZmNjZcdTRl''@;'; + put 'put ''ODZcdTY0ODJcdTk1NjNcdTVlZDZcdTY1OTlcdTUyMTdcdTg4YzJcdTcwYzhcdTUyYTNcdTczMGVcdTc0MzNcdTY3OTdcdTc4ZjdcdTk3MTZcdTRlMzRcdTkwYmJcdTljZGVcdTZkY2JcdTUxZGJcdThkNDFcdTU0MWRcdTYyY2VcdTczYjJcdTgzZjFcdTk2ZjZcdTlmODRcdTk0YzNcdTRmMzZc''@;'; + put 'put ''dTdmOWFcdTUxY2NcdTcwNzVcdTk2NzVcdTVjYWRcdTk4ODZcdTUzZTZcdTRlZTRcdTZlOWNcdTc0MDlcdTY5YjRcdTc4NmJcdTk5OGZcdTc1NTlcdTUyMThcdTc2MjRcdTZkNDFcdTY3ZjNcdTUxNmRcdTlmOTlcdTgwNGJcdTU0OTlcdTdiM2NcdTdhYmZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7''@;'; + put 'put ''RSE9QlsxOTNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTkzXVtFXV09NDk0MDgrRSxMWzQ5NDA4K0VdPUJbMTkzXVtFXSk7Zm9yKEJbMTk0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHU3ZmU0XHU3ZmU3XHU3ZmU4XHU3ZmVhXHU3ZmViXHU3ZmVjXHU3ZmVkXHU3ZmVmXHU3ZmYyXHU3ZmY0XHU3ZmY1XHU3ZmY2XHU3ZmY3XHU3ZmY4XHU3ZmY5XHU3ZmZhXHU3ZmZkXHU3ZmZlXHU3ZmZmXHU4MDAyXHU4MDA3XHU4MDA4XHU4MDA5XHU4MDBhXHU4MDBlXHU4MDBmXHU4MDExXHU4''@;'; + put 'put ''MDEzXHU4MDFhXHU4MDFiXHU4MDFkXHU4MDFlXHU4MDFmXHU4MDIxXHU4MDIzXHU4MDI0XHU4MDJiXHU4MDJjXHU4MDJkXHU4MDJlXHU4MDJmXHU4MDMwXHU4MDMyXHU4MDM0XHU4MDM5XHU4MDNhXHU4MDNjXHU4MDNlXHU4MDQwXHU4MDQxXHU4MDQ0XHU4MDQ1XHU4MDQ3XHU4MDQ4XHU4MDQ5''@;'; + put 'put ''XHU4MDRlXHU4MDRmXHU4MDUwXHU4MDUxXHU4MDUzXHU4MDU1XHU4MDU2XHU4MDU3XHVmZmZkXHU4MDU5XHU4MDViXHU4MDVjXHU4MDVkXHU4MDVlXHU4MDVmXHU4MDYwXHU4MDYxXHU4MDYyXHU4MDYzXHU4MDY0XHU4MDY1XHU4MDY2XHU4MDY3XHU4MDY4XHU4MDZiXHU4MDZjXHU4MDZkXHU4''@;'; + put 'put ''MDZlXHU4MDZmXHU4MDcwXHU4MDcyXHU4MDczXHU4MDc0XHU4MDc1XHU4MDc2XHU4MDc3XHU4MDc4XHU4MDc5XHU4MDdhXHU4MDdiXHU4MDdjXHU4MDdkXHU5Njg2XHU1Nzg0XHU2MmUyXHU5NjQ3XHU2OTdjXHU1YTA0XHU2NDAyXHU3YmQzXHU2ZjBmXHU5NjRiXHU4MmE2XHU1MzYyXHU5ODg1''@;'; + put 'put ''XHU1ZTkwXHU3MDg5XHU2M2IzXHU1MzY0XHU4NjRmXHU5YzgxXHU5ZTkzXHU3ODhjXHU5NzMyXHU4ZGVmXHU4ZDQyXHU5ZTdmXHU2ZjVlXHU3OTg0XHU1ZjU1XHU5NjQ2XHU2MjJlXHU5YTc0XHU1NDE1XHU5NGRkXHU0ZmEzXHU2NWM1XHU1YzY1XHU1YzYxXHU3ZjE1XHU4NjUxXHU2YzJmXHU1''@;'; + put 'put ''ZjhiXHU3Mzg3XHU2ZWU0XHU3ZWZmXHU1Y2U2XHU2MzFiXHU1YjZhXHU2ZWU2XHU1Mzc1XHU0ZTcxXHU2M2EwXHU3NTY1XHU2MmExXHU4ZjZlXHU0ZjI2XHU0ZWQxXHU2Y2E2XHU3ZWI2XHU4YmJhXHU4NDFkXHU4N2JhXHU3ZjU3XHU5MDNiXHU5NTIzXHU3YmE5XHU5YWExXHU4OGY4XHU4NDNk''@;'; + put 'put ''XHU2ZDFiXHU5YTg2XHU3ZWRjXHU1OTg4XHU5ZWJiXHU3MzliXHU3ODAxXHU4NjgyXHU5YTZjXHU5YTgyXHU1NjFiXHU1NDE3XHU1N2NiXHU0ZTcwXHU5ZWE2XHU1MzU2XHU4ZmM4XHU4MTA5XHU3NzkyXHU5OTkyXHU4NmVlXHU2ZWUxXHU4NTEzXHU2NmZjXHU2MTYyXHU2ZjJiXHVmZmZkIi5z''@;'; + put 'put ''cGxpdCgiIiksRT0wO0UhPUJbMTk0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5NF1bRV1dPTQ5NjY0K0UsTFs0OTY2NCtFXT1CWzE5NF1bRV0pO2ZvcihCWzE5NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ODA3ZVx1ODA4MVx1ODA4Mlx1ODA4NVx1ODA4OFx1ODA4YVx1ODA4ZFx1ODA4ZVx1ODA4Zlx1ODA5MFx1ODA5MVx1ODA5Mlx1ODA5NFx1ODA5NVx1ODA5N1x1ODA5OVx1ODA5ZVx1ODBhM1x1ODBhNlx1ODBhN1x1ODBhOFx1ODBhY1x1ODBiMFx1ODBiM1x1ODBiNVx1''@;'; + put 'put ''ODBiNlx1ODBiOFx1ODBiOVx1ODBiYlx1ODBjNVx1ODBjN1x1ODBjOFx1ODBjOVx1ODBjYVx1ODBjYlx1ODBjZlx1ODBkMFx1ODBkMVx1ODBkMlx1ODBkM1x1ODBkNFx1ODBkNVx1ODBkOFx1ODBkZlx1ODBlMFx1ODBlMlx1ODBlM1x1ODBlNlx1ODBlZVx1ODBmNVx1ODBmN1x1ODBmOVx1ODBm''@;'; + put 'put ''Ylx1ODBmZVx1ODBmZlx1ODEwMFx1ODEwMVx1ODEwM1x1ODEwNFx1ODEwNVx1ODEwN1x1ODEwOFx1ODEwYlx1ZmZmZFx1ODEwY1x1ODExNVx1ODExN1x1ODExOVx1ODExYlx1ODExY1x1ODExZFx1ODExZlx1ODEyMFx1ODEyMVx1ODEyMlx1ODEyM1x1ODEyNFx1ODEyNVx1ODEyNlx1ODEyN1x1''@;'; + put 'put ''ODEyOFx1ODEyOVx1ODEyYVx1ODEyYlx1ODEyZFx1ODEyZVx1ODEzMFx1ODEzM1x1ODEzNFx1ODEzNVx1ODEzN1x1ODEzOVx1ODEzYVx1ODEzYlx1ODEzY1x1ODEzZFx1ODEzZlx1OGMyOVx1ODI5Mlx1ODMyYlx1NzZmMlx1NmMxM1x1NWZkOVx1ODNiZFx1NzMyYlx1ODMwNVx1OTUxYVx1NmJk''@;'; + put 'put ''Ylx1NzdkYlx1OTRjNlx1NTM2Zlx1ODMwMlx1NTE5Mlx1NWUzZFx1OGM4Y1x1OGQzOFx1NGU0OFx1NzNhYlx1Njc5YVx1Njg4NVx1OTE3Nlx1OTcwOVx1NzE2NFx1NmNhMVx1NzcwOVx1NWE5Mlx1OTU0MVx1NmJjZlx1N2Y4ZVx1NjYyN1x1NWJkMFx1NTliOVx1NWE5YVx1OTVlOFx1OTVmN1x1''@;'; + put 'put ''NGVlY1x1ODQwY1x1ODQ5OVx1NmFhY1x1NzZkZlx1OTUzMFx1NzMxYlx1NjhhNlx1NWI1Zlx1NzcyZlx1OTE5YVx1OTc2MVx1N2NkY1x1OGZmN1x1OGMxY1x1NWYyNVx1N2M3M1x1NzlkOFx1ODljNVx1NmNjY1x1ODcxY1x1NWJjNlx1NWU0Mlx1NjhjOVx1NzcyMFx1N2VmNVx1NTE5NVx1NTE0''@;'; + put 'put ''ZFx1NTJjOVx1NWEyOVx1N2YwNVx1OTc2Mlx1ODJkN1x1NjNjZlx1Nzc4NFx1ODVkMFx1NzlkMlx1NmUzYVx1NWU5OVx1NTk5OVx1ODUxMVx1NzA2ZFx1NmMxMVx1NjJiZlx1NzZiZlx1NjU0Zlx1NjBhZlx1OTVmZFx1NjYwZVx1ODc5Zlx1OWUyM1x1OTRlZFx1NTQwZFx1NTQ3ZFx1OGMyY1x1''@;'; + put 'put ''NjQ3OFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTVdW0VdXT00OTkyMCtFLExbNDk5MjArRV09QlsxOTVdW0VdKTtmb3IoQlsxOTZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgxNDBcdTgxNDFcdTgxNDJcdTgxNDNcdTgxNDRcdTgxNDVcdTgxNDdcdTgxNDlcdTgxNGRcdTgxNGVcdTgxNGZcdTgxNTJcdTgxNTZcdTgxNTdcdTgxNThcdTgxNWJcdTgxNWNcdTgxNWRcdTgxNWVcdTgxNWZcdTgxNjFcdTgxNjJcdTgxNjNc''@;'; + put 'put ''dTgxNjRcdTgxNjZcdTgxNjhcdTgxNmFcdTgxNmJcdTgxNmNcdTgxNmZcdTgxNzJcdTgxNzNcdTgxNzVcdTgxNzZcdTgxNzdcdTgxNzhcdTgxODFcdTgxODNcdTgxODRcdTgxODVcdTgxODZcdTgxODdcdTgxODlcdTgxOGJcdTgxOGNcdTgxOGRcdTgxOGVcdTgxOTBcdTgxOTJcdTgxOTNcdTgx''@;'; + put 'put ''OTRcdTgxOTVcdTgxOTZcdTgxOTdcdTgxOTlcdTgxOWFcdTgxOWVcdTgxOWZcdTgxYTBcdTgxYTFcdTgxYTJcdTgxYTRcdTgxYTVcdWZmZmRcdTgxYTdcdTgxYTlcdTgxYWJcdTgxYWNcdTgxYWRcdTgxYWVcdTgxYWZcdTgxYjBcdTgxYjFcdTgxYjJcdTgxYjRcdTgxYjVcdTgxYjZcdTgxYjdc''@;'; + put 'put ''dTgxYjhcdTgxYjlcdTgxYmNcdTgxYmRcdTgxYmVcdTgxYmZcdTgxYzRcdTgxYzVcdTgxYzdcdTgxYzhcdTgxYzlcdTgxY2JcdTgxY2RcdTgxY2VcdTgxY2ZcdTgxZDBcdTgxZDFcdTgxZDJcdTgxZDNcdTY0NzlcdTg2MTFcdTZhMjFcdTgxOWNcdTc4ZThcdTY0NjlcdTliNTRcdTYyYjlcdTY3''@;'; + put 'put ''MmJcdTgzYWJcdTU4YThcdTllZDhcdTZjYWJcdTZmMjBcdTViZGVcdTk2NGNcdThjMGJcdTcyNWZcdTY3ZDBcdTYyYzdcdTcyNjFcdTRlYTlcdTU5YzZcdTZiY2RcdTU4OTNcdTY2YWVcdTVlNTVcdTUyZGZcdTYxNTVcdTY3MjhcdTc2ZWVcdTc3NjZcdTcyNjdcdTdhNDZcdTYyZmZcdTU0ZWFc''@;'; + put 'put ''dTU0NTBcdTk0YTBcdTkwYTNcdTVhMWNcdTdlYjNcdTZjMTZcdTRlNDNcdTU5NzZcdTgwMTBcdTU5NDhcdTUzNTdcdTc1MzdcdTk2YmVcdTU2Y2FcdTYzMjBcdTgxMTFcdTYwN2NcdTk1ZjlcdTZkZDZcdTU0NjJcdTk5ODFcdTUxODVcdTVhZTlcdTgwZmRcdTU5YWVcdTk3MTNcdTUwMmFcdTZj''@;'; + put 'put ''ZTVcdTVjM2NcdTYyZGZcdTRmNjBcdTUzM2ZcdTgxN2JcdTkwMDZcdTZlYmFcdTg1MmJcdTYyYzhcdTVlNzRcdTc4YmVcdTY0YjVcdTYzN2JcdTVmZjVcdTVhMThcdTkxN2ZcdTllMWZcdTVjM2ZcdTYzNGZcdTgwNDJcdTViN2RcdTU1NmVcdTk1NGFcdTk1NGRcdTZkODVcdTYwYThcdTY3ZTBc''@;'; + put 'put ''dTcyZGVcdTUxZGRcdTViODFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk2XVtFXV09NTAxNzYrRSxMWzUwMTc2K0VdPUJbMTk2XVtFXSk7Zm9yKEJbMTk3XT0iXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MWQ0XHU4MWQ1XHU4MWQ2XHU4MWQ3XHU4MWQ4XHU4MWQ5XHU4MWRhXHU4MWRiXHU4MWRjXHU4MWRkXHU4MWRlXHU4MWRmXHU4MWUwXHU4MWUxXHU4MWUyXHU4MWU0XHU4MWU1XHU4MWU2XHU4MWU4XHU4MWU5XHU4MWVi''@;'; + put 'put ''XHU4MWVlXHU4MWVmXHU4MWYwXHU4MWYxXHU4MWYyXHU4MWY1XHU4MWY2XHU4MWY3XHU4MWY4XHU4MWY5XHU4MWZhXHU4MWZkXHU4MWZmXHU4MjAzXHU4MjA3XHU4MjA4XHU4MjA5XHU4MjBhXHU4MjBiXHU4MjBlXHU4MjBmXHU4MjExXHU4MjEzXHU4MjE1XHU4MjE2XHU4MjE3XHU4MjE4XHU4''@;'; + put 'put ''MjE5XHU4MjFhXHU4MjFkXHU4MjIwXHU4MjI0XHU4MjI1XHU4MjI2XHU4MjI3XHU4MjI5XHU4MjJlXHU4MjMyXHU4MjNhXHU4MjNjXHU4MjNkXHU4MjNmXHVmZmZkXHU4MjQwXHU4MjQxXHU4MjQyXHU4MjQzXHU4MjQ1XHU4MjQ2XHU4MjQ4XHU4MjRhXHU4MjRjXHU4MjRkXHU4MjRlXHU4MjUw''@;'; + put 'put ''XHU4MjUxXHU4MjUyXHU4MjUzXHU4MjU0XHU4MjU1XHU4MjU2XHU4MjU3XHU4MjU5XHU4MjViXHU4MjVjXHU4MjVkXHU4MjVlXHU4MjYwXHU4MjYxXHU4MjYyXHU4MjYzXHU4MjY0XHU4MjY1XHU4MjY2XHU4MjY3XHU4MjY5XHU2MmU3XHU2Y2RlXHU3MjViXHU2MjZkXHU5NGFlXHU3ZWJkXHU4''@;'; + put 'put ''MTEzXHU2ZDUzXHU1MTljXHU1ZjA0XHU1OTc0XHU1MmFhXHU2MDEyXHU1OTczXHU2Njk2XHU4NjUwXHU3NTlmXHU2MzJhXHU2MWU2XHU3Y2VmXHU4YmZhXHU1NGU2XHU2YjI3XHU5ZTI1XHU2YmI0XHU4NWQ1XHU1NDU1XHU1MDc2XHU2Y2E0XHU1NTZhXHU4ZGI0XHU3MjJjXHU1ZTE1XHU2MDE1''@;'; + put 'put ''XHU3NDM2XHU2MmNkXHU2MzkyXHU3MjRjXHU1Zjk4XHU2ZTQzXHU2ZDNlXHU2NTAwXHU2ZjU4XHU3NmQ4XHU3OGQwXHU3NmZjXHU3NTU0XHU1MjI0XHU1M2RiXHU0ZTUzXHU1ZTllXHU2NWMxXHU4MDJhXHU4MGQ2XHU2MjliXHU1NDg2XHU1MjI4XHU3MGFlXHU4ODhkXHU4ZGQxXHU2Y2UxXHU1''@;'; + put 'put ''NDc4XHU4MGRhXHU1N2Y5XHU4OGY0XHU4ZDU0XHU5NjZhXHU5MTRkXHU0ZjY5XHU2YzliXHU1NWI3XHU3NmM2XHU3ODMwXHU2MmE4XHU3MGY5XHU2ZjhlXHU1ZjZkXHU4NGVjXHU2OGRhXHU3ODdjXHU3YmY3XHU4MWE4XHU2NzBiXHU5ZTRmXHU2MzY3XHU3OGIwXHU1NzZmXHU3ODEyXHU5NzM5''@;'; + put 'put ''XHU2Mjc5XHU2MmFiXHU1Mjg4XHU3NDM1XHU2YmQ3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5N11bRV1dPTUwNDMyK0UsTFs1MDQzMitFXT1CWzE5N11bRV0pO2ZvcihCWzE5OF09Ilx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODI2YVx1ODI2Ylx1ODI2Y1x1ODI2ZFx1ODI3MVx1ODI3NVx1ODI3Nlx1ODI3N1x1ODI3OFx1ODI3Ylx1ODI3Y1x1ODI4MFx1ODI4MVx1ODI4M1x1ODI4NVx1ODI4Nlx1ODI4N1x1ODI4OVx1ODI4''@;'; + put 'put ''Y1x1ODI5MFx1ODI5M1x1ODI5NFx1ODI5NVx1ODI5Nlx1ODI5YVx1ODI5Ylx1ODI5ZVx1ODJhMFx1ODJhMlx1ODJhM1x1ODJhN1x1ODJiMlx1ODJiNVx1ODJiNlx1ODJiYVx1ODJiYlx1ODJiY1x1ODJiZlx1ODJjMFx1ODJjMlx1ODJjM1x1ODJjNVx1ODJjNlx1ODJjOVx1ODJkMFx1ODJkNlx1''@;'; + put 'put ''ODJkOVx1ODJkYVx1ODJkZFx1ODJlMlx1ODJlN1x1ODJlOFx1ODJlOVx1ODJlYVx1ODJlY1x1ODJlZFx1ODJlZVx1ODJmMFx1ODJmMlx1ODJmM1x1ODJmNVx1ODJmNlx1ODJmOFx1ZmZmZFx1ODJmYVx1ODJmY1x1ODJmZFx1ODJmZVx1ODJmZlx1ODMwMFx1ODMwYVx1ODMwYlx1ODMwZFx1ODMx''@;'; + put 'put ''MFx1ODMxMlx1ODMxM1x1ODMxNlx1ODMxOFx1ODMxOVx1ODMxZFx1ODMxZVx1ODMxZlx1ODMyMFx1ODMyMVx1ODMyMlx1ODMyM1x1ODMyNFx1ODMyNVx1ODMyNlx1ODMyOVx1ODMyYVx1ODMyZVx1ODMzMFx1ODMzMlx1ODMzN1x1ODMzYlx1ODMzZFx1NTU2NFx1ODEzZVx1NzViMlx1NzZhZVx1''@;'; + put 'put ''NTMzOVx1NzVkZVx1NTBmYlx1NWM0MVx1OGI2Y1x1N2JjN1x1NTA0Zlx1NzI0N1x1OWE5N1x1OThkOFx1NmYwMlx1NzRlMlx1Nzk2OFx1NjQ4N1x1NzdhNVx1NjJmY1x1OTg5MVx1OGQyYlx1NTRjMVx1ODA1OFx1NGU1Mlx1NTc2YVx1ODJmOVx1ODQwZFx1NWU3M1x1NTFlZFx1NzRmNlx1OGJj''@;'; + put 'put ''NFx1NWM0Zlx1NTc2MVx1NmNmY1x1OTg4N1x1NWE0Nlx1NzgzNFx1OWI0NFx1OGZlYlx1N2M5NVx1NTI1Nlx1NjI1MVx1OTRmYVx1NGVjNlx1ODM4Nlx1ODQ2MVx1ODNlOVx1ODRiMlx1NTdkNFx1NjczNFx1NTcwM1x1NjY2ZVx1NmQ2Nlx1OGMzMVx1NjZkZFx1NzAxMVx1NjcxZlx1NmIzYVx1''@;'; + put 'put ''NjgxNlx1NjIxYVx1NTliYlx1NGUwM1x1NTFjNFx1NmYwNlx1NjdkMlx1NmM4Zlx1NTE3Nlx1NjhjYlx1NTk0N1x1NmI2N1x1NzU2Nlx1NWQwZVx1ODExMFx1OWY1MFx1NjVkN1x1Nzk0OFx1Nzk0MVx1OWE5MVx1OGQ3N1x1NWM4Mlx1NGU1ZVx1NGYwMVx1NTQyZlx1NTk1MVx1NzgwY1x1NTY2''@;'; + put 'put ''OFx1NmMxNFx1OGZjNFx1NWYwM1x1NmM3ZFx1NmNlM1x1OGJhYlx1NjM5MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOThdW0VdXT01MDY4OCtFLExbNTA2ODgrRV09QlsxOThdW0VdKTtm''@;'; + put 'put ''b3IoQlsxOTldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgzM2VcdTgzM2ZcdTgzNDFcdTgzNDJcdTgzNDRcdTgzNDVcdTgzNDhcdTgzNGFcdTgzNGJcdTgzNGNcdTgzNGRcdTgzNGVcdTgzNTNcdTgzNTVcdTgzNTZcdTgzNTdcdTgz''@;'; + put 'put ''NThcdTgzNTlcdTgzNWRcdTgzNjJcdTgzNzBcdTgzNzFcdTgzNzJcdTgzNzNcdTgzNzRcdTgzNzVcdTgzNzZcdTgzNzlcdTgzN2FcdTgzN2VcdTgzN2ZcdTgzODBcdTgzODFcdTgzODJcdTgzODNcdTgzODRcdTgzODdcdTgzODhcdTgzOGFcdTgzOGJcdTgzOGNcdTgzOGRcdTgzOGZcdTgzOTBc''@;'; + put 'put ''dTgzOTFcdTgzOTRcdTgzOTVcdTgzOTZcdTgzOTdcdTgzOTlcdTgzOWFcdTgzOWRcdTgzOWZcdTgzYTFcdTgzYTJcdTgzYTNcdTgzYTRcdTgzYTVcdTgzYTZcdTgzYTdcdTgzYWNcdTgzYWRcdTgzYWVcdWZmZmRcdTgzYWZcdTgzYjVcdTgzYmJcdTgzYmVcdTgzYmZcdTgzYzJcdTgzYzNcdTgz''@;'; + put 'put ''YzRcdTgzYzZcdTgzYzhcdTgzYzlcdTgzY2JcdTgzY2RcdTgzY2VcdTgzZDBcdTgzZDFcdTgzZDJcdTgzZDNcdTgzZDVcdTgzZDdcdTgzZDlcdTgzZGFcdTgzZGJcdTgzZGVcdTgzZTJcdTgzZTNcdTgzZTRcdTgzZTZcdTgzZTdcdTgzZThcdTgzZWJcdTgzZWNcdTgzZWRcdTYwNzBcdTZkM2Rc''@;'; + put 'put ''dTcyNzVcdTYyNjZcdTk0OGVcdTk0YzVcdTUzNDNcdThmYzFcdTdiN2VcdTRlZGZcdThjMjZcdTRlN2VcdTllZDRcdTk0YjFcdTk0YjNcdTUyNGRcdTZmNWNcdTkwNjNcdTZkNDVcdThjMzRcdTU4MTFcdTVkNGNcdTZiMjBcdTZiNDlcdTY3YWFcdTU0NWJcdTgxNTRcdTdmOGNcdTU4OTlcdTg1''@;'; + put 'put ''MzdcdTVmM2FcdTYyYTJcdTZhNDdcdTk1MzlcdTY1NzJcdTYwODRcdTY4NjVcdTc3YTdcdTRlNTRcdTRmYThcdTVkZTdcdTk3OThcdTY0YWNcdTdmZDhcdTVjZWRcdTRmY2ZcdTdhOGRcdTUyMDdcdTgzMDRcdTRlMTRcdTYwMmZcdTdhODNcdTk0YTZcdTRmYjVcdTRlYjJcdTc5ZTZcdTc0MzRc''@;'; + put 'put ''dTUyZTRcdTgyYjlcdTY0ZDJcdTc5YmRcdTViZGRcdTZjODFcdTk3NTJcdThmN2JcdTZjMjJcdTUwM2VcdTUzN2ZcdTZlMDVcdTY0Y2VcdTY2NzRcdTZjMzBcdTYwYzVcdTk4NzdcdThiZjdcdTVlODZcdTc0M2NcdTdhNzdcdTc5Y2JcdTRlMThcdTkwYjFcdTc0MDNcdTZjNDJcdTU2ZGFcdTkx''@;'; + put 'put ''NGJcdTZjYzVcdThkOGJcdTUzM2FcdTg2YzZcdTY2ZjJcdThlYWZcdTVjNDhcdTlhNzFcdTZlMjBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk5XVtFXV09NTA5NDQrRSxMWzUwOTQ0K0Vd''@;'; + put 'put ''PUJbMTk5XVtFXSk7Zm9yKEJbMjAwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4M2VlXHU4M2VmXHU4M2YzXHU4M2Y0XHU4M2Y1XHU4M2Y2XHU4M2Y3XHU4M2ZhXHU4M2ZiXHU4M2ZjXHU4M2ZlXHU4M2ZmXHU4NDAwXHU4NDAyXHU4''@;'; + put 'put ''NDA1XHU4NDA3XHU4NDA4XHU4NDA5XHU4NDBhXHU4NDEwXHU4NDEyXHU4NDEzXHU4NDE0XHU4NDE1XHU4NDE2XHU4NDE3XHU4NDE5XHU4NDFhXHU4NDFiXHU4NDFlXHU4NDFmXHU4NDIwXHU4NDIxXHU4NDIyXHU4NDIzXHU4NDI5XHU4NDJhXHU4NDJiXHU4NDJjXHU4NDJkXHU4NDJlXHU4NDJm''@;'; + put 'put ''XHU4NDMwXHU4NDMyXHU4NDMzXHU4NDM0XHU4NDM1XHU4NDM2XHU4NDM3XHU4NDM5XHU4NDNhXHU4NDNiXHU4NDNlXHU4NDNmXHU4NDQwXHU4NDQxXHU4NDQyXHU4NDQzXHU4NDQ0XHU4NDQ1XHU4NDQ3XHU4NDQ4XHU4NDQ5XHVmZmZkXHU4NDRhXHU4NDRiXHU4NDRjXHU4NDRkXHU4NDRlXHU4''@;'; + put 'put ''NDRmXHU4NDUwXHU4NDUyXHU4NDUzXHU4NDU0XHU4NDU1XHU4NDU2XHU4NDU4XHU4NDVkXHU4NDVlXHU4NDVmXHU4NDYwXHU4NDYyXHU4NDY0XHU4NDY1XHU4NDY2XHU4NDY3XHU4NDY4XHU4NDZhXHU4NDZlXHU4NDZmXHU4NDcwXHU4NDcyXHU4NDc0XHU4NDc3XHU4NDc5XHU4NDdiXHU4NDdj''@;'; + put 'put ''XHU1M2Q2XHU1YTM2XHU5ZjhiXHU4ZGEzXHU1M2JiXHU1NzA4XHU5OGE3XHU2NzQzXHU5MTliXHU2Y2M5XHU1MTY4XHU3NWNhXHU2MmYzXHU3MmFjXHU1MjM4XHU1MjlkXHU3ZjNhXHU3MDk0XHU3NjM4XHU1Mzc0XHU5ZTRhXHU2OWI3XHU3ODZlXHU5NmMwXHU4OGQ5XHU3ZmE0XHU3MTM2XHU3''@;'; + put 'put ''MWMzXHU1MTg5XHU2N2QzXHU3NGU0XHU1OGU0XHU2NTE4XHU1NmI3XHU4YmE5XHU5OTc2XHU2MjcwXHU3ZWQ1XHU2MGY5XHU3MGVkXHU1OGVjXHU0ZWMxXHU0ZWJhXHU1ZmNkXHU5N2U3XHU0ZWZiXHU4YmE0XHU1MjAzXHU1OThhXHU3ZWFiXHU2MjU0XHU0ZWNkXHU2NWU1XHU2MjBlXHU4MzM4''@;'; + put 'put ''XHU4NGM5XHU4MzYzXHU4NzhkXHU3MTk0XHU2ZWI2XHU1YmI5XHU3ZWQyXHU1MTk3XHU2M2M5XHU2N2Q0XHU4MDg5XHU4MzM5XHU4ODE1XHU1MTEyXHU1YjdhXHU1OTgyXHU4ZmIxXHU0ZTczXHU2YzVkXHU1MTY1XHU4OTI1XHU4ZjZmXHU5NjJlXHU4NTRhXHU3NDVlXHU5NTEwXHU5NWYwXHU2''@;'; + put 'put ''ZGE2XHU4MmU1XHU1ZjMxXHU2NDkyXHU2ZDEyXHU4NDI4XHU4MTZlXHU5Y2MzXHU1ODVlXHU4ZDViXHU0ZTA5XHU1M2MxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwMF1bRV1dPTUxMjAw''@;'; + put 'put ''K0UsTFs1MTIwMCtFXT1CWzIwMF1bRV0pO2ZvcihCWzIwMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODQ3ZFx1ODQ3ZVx1ODQ3Zlx1ODQ4MFx1ODQ4MVx1ODQ4M1x1ODQ4NFx1ODQ4NVx1ODQ4Nlx1ODQ4YVx1ODQ4ZFx1ODQ4Zlx1''@;'; + put 'put ''ODQ5MFx1ODQ5MVx1ODQ5Mlx1ODQ5M1x1ODQ5NFx1ODQ5NVx1ODQ5Nlx1ODQ5OFx1ODQ5YVx1ODQ5Ylx1ODQ5ZFx1ODQ5ZVx1ODQ5Zlx1ODRhMFx1ODRhMlx1ODRhM1x1ODRhNFx1ODRhNVx1ODRhNlx1ODRhN1x1ODRhOFx1ODRhOVx1ODRhYVx1ODRhYlx1ODRhY1x1ODRhZFx1ODRhZVx1ODRi''@;'; + put 'put ''MFx1ODRiMVx1ODRiM1x1ODRiNVx1ODRiNlx1ODRiN1x1ODRiYlx1ODRiY1x1ODRiZVx1ODRjMFx1ODRjMlx1ODRjM1x1ODRjNVx1ODRjNlx1ODRjN1x1ODRjOFx1ODRjYlx1ODRjY1x1ODRjZVx1ODRjZlx1ODRkMlx1ODRkNFx1ODRkNVx1ODRkN1x1ZmZmZFx1ODRkOFx1ODRkOVx1ODRkYVx1''@;'; + put 'put ''ODRkYlx1ODRkY1x1ODRkZVx1ODRlMVx1ODRlMlx1ODRlNFx1ODRlN1x1ODRlOFx1ODRlOVx1ODRlYVx1ODRlYlx1ODRlZFx1ODRlZVx1ODRlZlx1ODRmMVx1ODRmMlx1ODRmM1x1ODRmNFx1ODRmNVx1ODRmNlx1ODRmN1x1ODRmOFx1ODRmOVx1ODRmYVx1ODRmYlx1ODRmZFx1ODRmZVx1ODUw''@;'; + put 'put ''MFx1ODUwMVx1ODUwMlx1NGYxZVx1NjU2M1x1Njg1MVx1NTVkM1x1NGUyN1x1NjQxNFx1OWE5YVx1NjI2Ylx1NWFjMlx1NzQ1Zlx1ODI3Mlx1NmRhOVx1NjhlZVx1NTBlN1x1ODM4ZVx1NzgwMlx1Njc0MFx1NTIzOVx1NmM5OVx1N2ViMVx1NTBiYlx1NTU2NVx1NzE1ZVx1N2I1Ylx1NjY1Mlx1''@;'; + put 'put ''NzNjYVx1ODJlYlx1Njc0OVx1NWM3MVx1NTIyMFx1NzE3ZFx1ODg2Ylx1OTVlYVx1OTY1NVx1NjRjNVx1OGQ2MVx1ODFiM1x1NTU4NFx1NmM1NVx1NjI0N1x1N2YyZVx1NTg5Mlx1NGYyNFx1NTU0Nlx1OGQ0Zlx1NjY0Y1x1NGUwYVx1NWMxYVx1ODhmM1x1NjhhMlx1NjM0ZVx1N2EwZFx1NzBl''@;'; + put 'put ''N1x1ODI4ZFx1NTJmYVx1OTdmNlx1NWMxMVx1NTRlOFx1OTBiNVx1N2VjZFx1NTk2Mlx1OGQ0YVx1ODZjN1x1ODIwY1x1ODIwZFx1OGQ2Nlx1NjQ0NFx1NWMwNFx1NjE1MVx1NmQ4OVx1NzkzZVx1OGJiZVx1NzgzN1x1NzUzM1x1NTQ3Ylx1NGYzOFx1OGVhYlx1NmRmMVx1NWEyMFx1N2VjNVx1''@;'; + put 'put ''Nzk1ZVx1NmM4OFx1NWJhMVx1NWE3Nlx1NzUxYVx1ODBiZVx1NjE0ZVx1NmUxN1x1NThmMFx1NzUxZlx1NzUyNVx1NzI3Mlx1NTM0N1x1N2VmM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjAxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsy''@;'; + put 'put ''MDFdW0VdXT01MTQ1NitFLExbNTE0NTYrRV09QlsyMDFdW0VdKTtmb3IoQlsyMDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1MDNcdTg1MDRcdTg1MDVcdTg1MDZcdTg1MDdcdTg1MDhcdTg1MDlcdTg1MGFcdTg1MGJcdTg1MGRc''@;'; + put 'put ''dTg1MGVcdTg1MGZcdTg1MTBcdTg1MTJcdTg1MTRcdTg1MTVcdTg1MTZcdTg1MThcdTg1MTlcdTg1MWJcdTg1MWNcdTg1MWRcdTg1MWVcdTg1MjBcdTg1MjJcdTg1MjNcdTg1MjRcdTg1MjVcdTg1MjZcdTg1MjdcdTg1MjhcdTg1MjlcdTg1MmFcdTg1MmRcdTg1MmVcdTg1MmZcdTg1MzBcdTg1''@;'; + put 'put ''MzFcdTg1MzJcdTg1MzNcdTg1MzRcdTg1MzVcdTg1MzZcdTg1M2VcdTg1M2ZcdTg1NDBcdTg1NDFcdTg1NDJcdTg1NDRcdTg1NDVcdTg1NDZcdTg1NDdcdTg1NGJcdTg1NGNcdTg1NGRcdTg1NGVcdTg1NGZcdTg1NTBcdTg1NTFcdTg1NTJcdTg1NTNcdTg1NTRcdTg1NTVcdWZmZmRcdTg1NTdc''@;'; + put 'put ''dTg1NThcdTg1NWFcdTg1NWJcdTg1NWNcdTg1NWRcdTg1NWZcdTg1NjBcdTg1NjFcdTg1NjJcdTg1NjNcdTg1NjVcdTg1NjZcdTg1NjdcdTg1NjlcdTg1NmFcdTg1NmJcdTg1NmNcdTg1NmRcdTg1NmVcdTg1NmZcdTg1NzBcdTg1NzFcdTg1NzNcdTg1NzVcdTg1NzZcdTg1NzdcdTg1NzhcdTg1''@;'; + put 'put ''N2NcdTg1N2RcdTg1N2ZcdTg1ODBcdTg1ODFcdTc3MDFcdTc2ZGJcdTUyNjlcdTgwZGNcdTU3MjNcdTVlMDhcdTU5MzFcdTcyZWVcdTY1YmRcdTZlN2ZcdThiZDdcdTVjMzhcdTg2NzFcdTUzNDFcdTc3ZjNcdTYyZmVcdTY1ZjZcdTRlYzBcdTk4ZGZcdTg2ODBcdTViOWVcdThiYzZcdTUzZjJc''@;'; + put 'put ''dTc3ZTJcdTRmN2ZcdTVjNGVcdTlhNzZcdTU5Y2JcdTVmMGZcdTc5M2FcdTU4ZWJcdTRlMTZcdTY3ZmZcdTRlOGJcdTYyZWRcdThhOTNcdTkwMWRcdTUyYmZcdTY2MmZcdTU1ZGNcdTU2NmNcdTkwMDJcdTRlZDVcdTRmOGRcdTkxY2FcdTk5NzBcdTZjMGZcdTVlMDJcdTYwNDNcdTViYTRcdTg5''@;'; + put 'put ''YzZcdThiZDVcdTY1MzZcdTYyNGJcdTk5OTZcdTViODhcdTViZmZcdTYzODhcdTU1MmVcdTUzZDdcdTc2MjZcdTUxN2RcdTg1MmNcdTY3YTJcdTY4YjNcdTZiOGFcdTYyOTJcdThmOTNcdTUzZDRcdTgyMTJcdTZkZDFcdTc1OGZcdTRlNjZcdThkNGVcdTViNzBcdTcxOWZcdTg1YWZcdTY2OTFc''@;'; + put 'put ''dTY2ZDlcdTdmNzJcdTg3MDBcdTllY2RcdTlmMjBcdTVjNWVcdTY3MmZcdThmZjBcdTY4MTFcdTY3NWZcdTYyMGRcdTdhZDZcdTU4ODVcdTVlYjZcdTY1NzBcdTZmMzFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwMl1bRV0uY2hhckNvZGVB''@;'; + put 'put ''dCgwKSYmKG1lW0JbMjAyXVtFXV09NTE3MTIrRSxMWzUxNzEyK0VdPUJbMjAyXVtFXSk7Zm9yKEJbMjAzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NTgyXHU4NTgzXHU4NTg2XHU4NTg4XHU4NTg5XHU4NThhXHU4NThiXHU4NThj''@;'; + put 'put ''XHU4NThkXHU4NThlXHU4NTkwXHU4NTkxXHU4NTkyXHU4NTkzXHU4NTk0XHU4NTk1XHU4NTk2XHU4NTk3XHU4NTk4XHU4NTk5XHU4NTlhXHU4NTlkXHU4NTllXHU4NTlmXHU4NWEwXHU4NWExXHU4NWEyXHU4NWEzXHU4NWE1XHU4NWE2XHU4NWE3XHU4NWE5XHU4NWFiXHU4NWFjXHU4NWFkXHU4''@;'; + put 'put ''NWIxXHU4NWIyXHU4NWIzXHU4NWI0XHU4NWI1XHU4NWI2XHU4NWI4XHU4NWJhXHU4NWJiXHU4NWJjXHU4NWJkXHU4NWJlXHU4NWJmXHU4NWMwXHU4NWMyXHU4NWMzXHU4NWM0XHU4NWM1XHU4NWM2XHU4NWM3XHU4NWM4XHU4NWNhXHU4NWNiXHU4NWNjXHU4NWNkXHU4NWNlXHU4NWQxXHU4NWQy''@;'; + put 'put ''XHVmZmZkXHU4NWQ0XHU4NWQ2XHU4NWQ3XHU4NWQ4XHU4NWQ5XHU4NWRhXHU4NWRiXHU4NWRkXHU4NWRlXHU4NWRmXHU4NWUwXHU4NWUxXHU4NWUyXHU4NWUzXHU4NWU1XHU4NWU2XHU4NWU3XHU4NWU4XHU4NWVhXHU4NWViXHU4NWVjXHU4NWVkXHU4NWVlXHU4NWVmXHU4NWYwXHU4NWYxXHU4''@;'; + put 'put ''NWYyXHU4NWYzXHU4NWY0XHU4NWY1XHU4NWY2XHU4NWY3XHU4NWY4XHU2MDU1XHU1MjM3XHU4MDBkXHU2NDU0XHU4ODcwXHU3NTI5XHU1ZTA1XHU2ODEzXHU2MmY0XHU5NzFjXHU1M2NjXHU3MjNkXHU4YzAxXHU2YzM0XHU3NzYxXHU3YTBlXHU1NDJlXHU3N2FjXHU5ODdhXHU4MjFjXHU4YmY0''@;'; + put 'put ''XHU3ODU1XHU2NzE0XHU3MGMxXHU2NWFmXHU2NDk1XHU1NjM2XHU2MDFkXHU3OWMxXHU1M2Y4XHU0ZTFkXHU2YjdiXHU4MDg2XHU1YmZhXHU1NWUzXHU1NmRiXHU0ZjNhXHU0ZjNjXHU5OTcyXHU1ZGYzXHU2NzdlXHU4MDM4XHU2MDAyXHU5ODgyXHU5MDAxXHU1YjhiXHU4YmJjXHU4YmY1XHU2''@;'; + put 'put ''NDFjXHU4MjU4XHU2NGRlXHU1NWZkXHU4MmNmXHU5MTY1XHU0ZmQ3XHU3ZDIwXHU5MDFmXHU3YzlmXHU1MGYzXHU1ODUxXHU2ZWFmXHU1YmJmXHU4YmM5XHU4MDgzXHU5MTc4XHU4NDljXHU3Yjk3XHU4NjdkXHU5NjhiXHU5NjhmXHU3ZWU1XHU5YWQzXHU3ODhlXHU1YzgxXHU3YTU3XHU5MDQy''@;'; + put 'put ''XHU5NmE3XHU3OTVmXHU1YjU5XHU2MzVmXHU3YjBiXHU4NGQxXHU2OGFkXHU1NTA2XHU3ZjI5XHU3NDEwXHU3ZDIyXHU5NTAxXHU2MjQwXHU1ODRjXHU0ZWQ2XHU1YjgzXHU1OTc5XHU1ODU0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDNd''@;'; + put 'put ''W0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwM11bRV1dPTUxOTY4K0UsTFs1MTk2OCtFXT1CWzIwM11bRV0pO2ZvcihCWzIwNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODVmOVx1ODVmYVx1ODVmY1x1ODVmZFx1ODVmZVx1ODYw''@;'; + put 'put ''MFx1ODYwMVx1ODYwMlx1ODYwM1x1ODYwNFx1ODYwNlx1ODYwN1x1ODYwOFx1ODYwOVx1ODYwYVx1ODYwYlx1ODYwY1x1ODYwZFx1ODYwZVx1ODYwZlx1ODYxMFx1ODYxMlx1ODYxM1x1ODYxNFx1ODYxNVx1ODYxN1x1ODYxOFx1ODYxOVx1ODYxYVx1ODYxYlx1ODYxY1x1ODYxZFx1ODYxZVx1''@;'; + put 'put ''ODYxZlx1ODYyMFx1ODYyMVx1ODYyMlx1ODYyM1x1ODYyNFx1ODYyNVx1ODYyNlx1ODYyOFx1ODYyYVx1ODYyYlx1ODYyY1x1ODYyZFx1ODYyZVx1ODYyZlx1ODYzMFx1ODYzMVx1ODYzMlx1ODYzM1x1ODYzNFx1ODYzNVx1ODYzNlx1ODYzN1x1ODYzOVx1ODYzYVx1ODYzYlx1ODYzZFx1ODYz''@;'; + put 'put ''ZVx1ODYzZlx1ODY0MFx1ZmZmZFx1ODY0MVx1ODY0Mlx1ODY0M1x1ODY0NFx1ODY0NVx1ODY0Nlx1ODY0N1x1ODY0OFx1ODY0OVx1ODY0YVx1ODY0Ylx1ODY0Y1x1ODY1Mlx1ODY1M1x1ODY1NVx1ODY1Nlx1ODY1N1x1ODY1OFx1ODY1OVx1ODY1Ylx1ODY1Y1x1ODY1ZFx1ODY1Zlx1ODY2MFx1''@;'; + put 'put ''ODY2MVx1ODY2M1x1ODY2NFx1ODY2NVx1ODY2Nlx1ODY2N1x1ODY2OFx1ODY2OVx1ODY2YVx1NzM2ZFx1NjMxZVx1OGU0Ylx1OGUwZlx1ODBjZVx1ODJkNFx1NjJhY1x1NTNmMFx1NmNmMFx1OTE1ZVx1NTkyYVx1NjAwMVx1NmM3MFx1NTc0ZFx1NjQ0YVx1OGQyYVx1NzYyYlx1NmVlOVx1NTc1''@;'; + put 'put ''Ylx1NmE4MFx1NzVmMFx1NmY2ZFx1OGMyZFx1OGMwOFx1NTc2Nlx1NmJlZlx1ODg5Mlx1NzhiM1x1NjNhMlx1NTNmOVx1NzBhZFx1NmM2NFx1NTg1OFx1NjQyYVx1NTgwMlx1NjhlMFx1ODE5Ylx1NTUxMFx1N2NkNlx1NTAxOFx1OGViYVx1NmRjY1x1OGQ5Zlx1NzBlYlx1NjM4Zlx1NmQ5Ylx1''@;'; + put 'put ''NmVkNFx1N2VlNlx1ODQwNFx1Njg0M1x1OTAwM1x1NmRkOFx1OTY3Nlx1OGJhOFx1NTk1N1x1NzI3OVx1ODVlNFx1ODE3ZVx1NzViY1x1OGE4YVx1NjhhZlx1NTI1NFx1OGUyMlx1OTUxMVx1NjNkMFx1OTg5OFx1OGU0NFx1NTU3Y1x1NGY1M1x1NjZmZlx1NTY4Zlx1NjBkNVx1NmQ5NVx1NTI0''@;'; + put 'put ''M1x1NWM0OVx1NTkyOVx1NmRmYlx1NTg2Ylx1NzUzMFx1NzUxY1x1NjA2Y1x1ODIxNFx1ODE0Nlx1NjMxMVx1Njc2MVx1OGZlMlx1NzczYVx1OGRmM1x1OGQzNFx1OTRjMVx1NWUxNlx1NTM4NVx1NTQyY1x1NzBjM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwNF0ubGVuZ3RoOysrRSk2''@;'; + put 'put ''NTUzMyE9PUJbMjA0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDRdW0VdXT01MjIyNCtFLExbNTIyMjQrRV09QlsyMDRdW0VdKTtmb3IoQlsyMDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg2NmRcdTg2NmZcdTg2NzBcdTg2''@;'; + put 'put ''NzJcdTg2NzNcdTg2NzRcdTg2NzVcdTg2NzZcdTg2NzdcdTg2NzhcdTg2ODNcdTg2ODRcdTg2ODVcdTg2ODZcdTg2ODdcdTg2ODhcdTg2ODlcdTg2OGVcdTg2OGZcdTg2OTBcdTg2OTFcdTg2OTJcdTg2OTRcdTg2OTZcdTg2OTdcdTg2OThcdTg2OTlcdTg2OWFcdTg2OWJcdTg2OWVcdTg2OWZc''@;'; + put 'put ''dTg2YTBcdTg2YTFcdTg2YTJcdTg2YTVcdTg2YTZcdTg2YWJcdTg2YWRcdTg2YWVcdTg2YjJcdTg2YjNcdTg2YjdcdTg2YjhcdTg2YjlcdTg2YmJcdTg2YmNcdTg2YmRcdTg2YmVcdTg2YmZcdTg2YzFcdTg2YzJcdTg2YzNcdTg2YzVcdTg2YzhcdTg2Y2NcdTg2Y2RcdTg2ZDJcdTg2ZDNcdTg2''@;'; + put 'put ''ZDVcdTg2ZDZcdTg2ZDdcdTg2ZGFcdTg2ZGNcdWZmZmRcdTg2ZGRcdTg2ZTBcdTg2ZTFcdTg2ZTJcdTg2ZTNcdTg2ZTVcdTg2ZTZcdTg2ZTdcdTg2ZThcdTg2ZWFcdTg2ZWJcdTg2ZWNcdTg2ZWZcdTg2ZjVcdTg2ZjZcdTg2ZjdcdTg2ZmFcdTg2ZmJcdTg2ZmNcdTg2ZmRcdTg2ZmZcdTg3MDFc''@;'; + put 'put ''dTg3MDRcdTg3MDVcdTg3MDZcdTg3MGJcdTg3MGNcdTg3MGVcdTg3MGZcdTg3MTBcdTg3MTFcdTg3MTRcdTg3MTZcdTZjNDBcdTVlZjdcdTUwNWNcdTRlYWRcdTVlYWRcdTYzM2FcdTgyNDdcdTkwMWFcdTY4NTBcdTkxNmVcdTc3YjNcdTU0MGNcdTk0ZGNcdTVmNjRcdTdhZTVcdTY4NzZcdTYz''@;'; + put 'put ''NDVcdTdiNTJcdTdlZGZcdTc1ZGJcdTUwNzdcdTYyOTVcdTU5MzRcdTkwMGZcdTUxZjhcdTc5YzNcdTdhODFcdTU2ZmVcdTVmOTJcdTkwMTRcdTZkODJcdTVjNjBcdTU3MWZcdTU0MTBcdTUxNTRcdTZlNGRcdTU2ZTJcdTYzYThcdTk4OTNcdTgxN2ZcdTg3MTVcdTg5MmFcdTkwMDBcdTU0MWVc''@;'; + put 'put ''dTVjNmZcdTgxYzBcdTYyZDZcdTYyNThcdTgxMzFcdTllMzVcdTk2NDBcdTlhNmVcdTlhN2NcdTY5MmRcdTU5YTVcdTYyZDNcdTU1M2VcdTYzMTZcdTU0YzdcdTg2ZDlcdTZkM2NcdTVhMDNcdTc0ZTZcdTg4OWNcdTZiNmFcdTU5MTZcdThjNGNcdTVmMmZcdTZlN2VcdTczYTlcdTk4N2RcdTRl''@;'; + put 'put ''MzhcdTcwZjdcdTViOGNcdTc4OTdcdTYzM2RcdTY2NWFcdTc2OTZcdTYwY2JcdTViOWJcdTVhNDlcdTRlMDdcdTgxNTVcdTZjNmFcdTczOGJcdTRlYTFcdTY3ODlcdTdmNTFcdTVmODBcdTY1ZmFcdTY3MWJcdTVmZDhcdTU5ODRcdTVhMDFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDVd''@;'; + put 'put ''Lmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA1XVtFXV09NTI0ODArRSxMWzUyNDgwK0VdPUJbMjA1XVtFXSk7Zm9yKEJbMjA2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NzE5XHU4''@;'; + put 'put ''NzFiXHU4NzFkXHU4NzFmXHU4NzIwXHU4NzI0XHU4NzI2XHU4NzI3XHU4NzI4XHU4NzJhXHU4NzJiXHU4NzJjXHU4NzJkXHU4NzJmXHU4NzMwXHU4NzMyXHU4NzMzXHU4NzM1XHU4NzM2XHU4NzM4XHU4NzM5XHU4NzNhXHU4NzNjXHU4NzNkXHU4NzQwXHU4NzQxXHU4NzQyXHU4NzQzXHU4NzQ0''@;'; + put 'put ''XHU4NzQ1XHU4NzQ2XHU4NzRhXHU4NzRiXHU4NzRkXHU4NzRmXHU4NzUwXHU4NzUxXHU4NzUyXHU4NzU0XHU4NzU1XHU4NzU2XHU4NzU4XHU4NzVhXHU4NzViXHU4NzVjXHU4NzVkXHU4NzVlXHU4NzVmXHU4NzYxXHU4NzYyXHU4NzY2XHU4NzY3XHU4NzY4XHU4NzY5XHU4NzZhXHU4NzZiXHU4''@;'; + put 'put ''NzZjXHU4NzZkXHU4NzZmXHU4NzcxXHU4NzcyXHU4NzczXHU4Nzc1XHVmZmZkXHU4Nzc3XHU4Nzc4XHU4Nzc5XHU4NzdhXHU4NzdmXHU4NzgwXHU4NzgxXHU4Nzg0XHU4Nzg2XHU4Nzg3XHU4Nzg5XHU4NzhhXHU4NzhjXHU4NzhlXHU4NzhmXHU4NzkwXHU4NzkxXHU4NzkyXHU4Nzk0XHU4Nzk1''@;'; + put 'put ''XHU4Nzk2XHU4Nzk4XHU4Nzk5XHU4NzlhXHU4NzliXHU4NzljXHU4NzlkXHU4NzllXHU4N2EwXHU4N2ExXHU4N2EyXHU4N2EzXHU4N2E0XHU1ZGNkXHU1ZmFlXHU1MzcxXHU5N2U2XHU4ZmRkXHU2ODQ1XHU1NmY0XHU1NTJmXHU2MGRmXHU0ZTNhXHU2ZjRkXHU3ZWY0XHU4MmM3XHU4NDBlXHU1''@;'; + put 'put ''OWQ0XHU0ZjFmXHU0ZjJhXHU1YzNlXHU3ZWFjXHU2NzJhXHU4NTFhXHU1NDczXHU3NTRmXHU4MGMzXHU1NTgyXHU5YjRmXHU0ZjRkXHU2ZTJkXHU4YzEzXHU1YzA5XHU2MTcwXHU1MzZiXHU3NjFmXHU2ZTI5XHU4NjhhXHU2NTg3XHU5NWZiXHU3ZWI5XHU1NDNiXHU3YTMzXHU3ZDBhXHU5NWVl''@;'; + put 'put ''XHU1NWUxXHU3ZmMxXHU3NGVlXHU2MzFkXHU4NzE3XHU2ZGExXHU3YTlkXHU2MjExXHU2NWExXHU1MzY3XHU2M2UxXHU2YzgzXHU1ZGViXHU1NDVjXHU5NGE4XHU0ZTRjXHU2YzYxXHU4YmVjXHU1YzRiXHU2NWUwXHU4MjljXHU2OGE3XHU1NDNlXHU1NDM0XHU2YmNiXHU2YjY2XHU0ZTk0XHU2''@;'; + put 'put ''MzQyXHU1MzQ4XHU4MjFlXHU0ZjBkXHU0ZmFlXHU1NzVlXHU2MjBhXHU5NmZlXHU2NjY0XHU3MjY5XHU1MmZmXHU1MmExXHU2MDlmXHU4YmVmXHU2NjE0XHU3MTk5XHU2NzkwXHU4OTdmXHU3ODUyXHU3N2ZkXHU2NjcwXHU1NjNiXHU1NDM4XHU5NTIxXHU3MjdhXHVmZmZkIi5zcGxpdCgiIiks''@;'; + put 'put ''RT0wO0UhPUJbMjA2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwNl1bRV1dPTUyNzM2K0UsTFs1MjczNitFXT1CWzIwNl1bRV0pO2ZvcihCWzIwN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ODdhNVx1ODdhNlx1ODdhN1x1ODdhOVx1ODdhYVx1ODdhZVx1ODdiMFx1ODdiMVx1ODdiMlx1ODdiNFx1ODdiNlx1ODdiN1x1ODdiOFx1ODdiOVx1ODdiYlx1ODdiY1x1ODdiZVx1ODdiZlx1ODdjMVx1ODdjMlx1ODdjM1x1ODdjNFx1ODdjNVx1ODdjN1x1ODdjOFx1ODdjOVx1ODdj''@;'; + put 'put ''Y1x1ODdjZFx1ODdjZVx1ODdjZlx1ODdkMFx1ODdkNFx1ODdkNVx1ODdkNlx1ODdkN1x1ODdkOFx1ODdkOVx1ODdkYVx1ODdkY1x1ODdkZFx1ODdkZVx1ODdkZlx1ODdlMVx1ODdlMlx1ODdlM1x1ODdlNFx1ODdlNlx1ODdlN1x1ODdlOFx1ODdlOVx1ODdlYlx1ODdlY1x1ODdlZFx1ODdlZlx1''@;'; + put 'put ''ODdmMFx1ODdmMVx1ODdmMlx1ODdmM1x1ODdmNFx1ODdmNVx1ODdmNlx1ODdmN1x1ODdmOFx1ZmZmZFx1ODdmYVx1ODdmYlx1ODdmY1x1ODdmZFx1ODdmZlx1ODgwMFx1ODgwMVx1ODgwMlx1ODgwNFx1ODgwNVx1ODgwNlx1ODgwN1x1ODgwOFx1ODgwOVx1ODgwYlx1ODgwY1x1ODgwZFx1ODgw''@;'; + put 'put ''ZVx1ODgwZlx1ODgxMFx1ODgxMVx1ODgxMlx1ODgxNFx1ODgxN1x1ODgxOFx1ODgxOVx1ODgxYVx1ODgxY1x1ODgxZFx1ODgxZVx1ODgxZlx1ODgyMFx1ODgyM1x1N2EwMFx1NjA2Zlx1NWUwY1x1NjA4OVx1ODE5ZFx1NTkxNVx1NjBkY1x1NzE4NFx1NzBlZlx1NmVhYVx1NmM1MFx1NzI4MFx1''@;'; + put 'put ''NmE4NFx1ODhhZFx1NWUyZFx1NGU2MFx1NWFiM1x1NTU5Y1x1OTRlM1x1NmQxN1x1N2NmYlx1OTY5OVx1NjIwZlx1N2VjNlx1Nzc4ZVx1ODY3ZVx1NTMyM1x1OTcxZVx1OGY5Nlx1NjY4N1x1NWNlMVx1NGZhMFx1NzJlZFx1NGUwYlx1NTNhNlx1NTkwZlx1NTQxM1x1NjM4MFx1OTUyOFx1NTE0''@;'; + put 'put ''OFx1NGVkOVx1OWM5Y1x1N2VhNFx1NTRiOFx1OGQyNFx1ODg1NFx1ODIzN1x1OTVmMlx1NmQ4ZVx1NWYyNlx1NWFjY1x1NjYzZVx1OTY2OVx1NzNiMFx1NzMyZVx1NTNiZlx1ODE3YVx1OTk4NVx1N2ZhMVx1NWJhYVx1OTY3N1x1OTY1MFx1N2ViZlx1NzZmOFx1NTNhMlx1OTU3Nlx1OTk5OVx1''@;'; + put 'put ''N2JiMVx1ODk0NFx1NmU1OFx1NGU2MVx1N2ZkNFx1Nzk2NVx1OGJlNlx1NjBmM1x1NTRjZFx1NGVhYlx1OTg3OVx1NWRmN1x1NmE2MVx1NTBjZlx1NTQxMVx1OGM2MVx1ODQyN1x1Nzg1ZFx1OTcwNFx1NTI0YVx1NTRlZVx1NTZhM1x1OTUwMFx1NmQ4OFx1NWJiNVx1NmRjNlx1NjY1M1x1ZmZm''@;'; + put 'put ''ZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDddW0VdXT01Mjk5MitFLExbNTI5OTIrRV09QlsyMDddW0VdKTtmb3IoQlsyMDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdTg4MjRcdTg4MjVcdTg4MjZcdTg4MjdcdTg4MjhcdTg4MjlcdTg4MmFcdTg4MmJcdTg4MmNcdTg4MmRcdTg4MmVcdTg4MmZcdTg4MzBcdTg4MzFcdTg4MzNcdTg4MzRcdTg4MzVcdTg4MzZcdTg4MzdcdTg4MzhcdTg4M2FcdTg4M2JcdTg4M2RcdTg4M2VcdTg4''@;'; + put 'put ''M2ZcdTg4NDFcdTg4NDJcdTg4NDNcdTg4NDZcdTg4NDdcdTg4NDhcdTg4NDlcdTg4NGFcdTg4NGJcdTg4NGVcdTg4NGZcdTg4NTBcdTg4NTFcdTg4NTJcdTg4NTNcdTg4NTVcdTg4NTZcdTg4NThcdTg4NWFcdTg4NWJcdTg4NWNcdTg4NWRcdTg4NWVcdTg4NWZcdTg4NjBcdTg4NjZcdTg4Njdc''@;'; + put 'put ''dTg4NmFcdTg4NmRcdTg4NmZcdTg4NzFcdTg4NzNcdTg4NzRcdTg4NzVcdTg4NzZcdTg4NzhcdTg4NzlcdTg4N2FcdWZmZmRcdTg4N2JcdTg4N2NcdTg4ODBcdTg4ODNcdTg4ODZcdTg4ODdcdTg4ODlcdTg4OGFcdTg4OGNcdTg4OGVcdTg4OGZcdTg4OTBcdTg4OTFcdTg4OTNcdTg4OTRcdTg4''@;'; + put 'put ''OTVcdTg4OTdcdTg4OThcdTg4OTlcdTg4OWFcdTg4OWJcdTg4OWRcdTg4OWVcdTg4OWZcdTg4YTBcdTg4YTFcdTg4YTNcdTg4YTVcdTg4YTZcdTg4YTdcdTg4YThcdTg4YTlcdTg4YWFcdTVjMGZcdTViNWRcdTY4MjFcdTgwOTZcdTU1NzhcdTdiMTFcdTY1NDhcdTY5NTRcdTRlOWJcdTZiNDdc''@;'; + put 'put ''dTg3NGVcdTk3OGJcdTUzNGZcdTYzMWZcdTY0M2FcdTkwYWFcdTY1OWNcdTgwYzFcdThjMTBcdTUxOTlcdTY4YjBcdTUzNzhcdTg3ZjlcdTYxYzhcdTZjYzRcdTZjZmJcdThjMjJcdTVjNTFcdTg1YWFcdTgyYWZcdTk1MGNcdTZiMjNcdThmOWJcdTY1YjBcdTVmZmJcdTVmYzNcdTRmZTFcdTg4''@;'; + put 'put ''NDVcdTY2MWZcdTgxNjVcdTczMjlcdTYwZmFcdTUxNzRcdTUyMTFcdTU3OGJcdTVmNjJcdTkwYTJcdTg4NGNcdTkxOTJcdTVlNzhcdTY3NGZcdTYwMjdcdTU5ZDNcdTUxNDRcdTUxZjZcdTgwZjhcdTUzMDhcdTZjNzlcdTk2YzRcdTcxOGFcdTRmMTFcdTRmZWVcdTdmOWVcdTY3M2RcdTU1YzVc''@;'; + put 'put ''dTk1MDhcdTc5YzBcdTg4OTZcdTdlZTNcdTU4OWZcdTYyMGNcdTk3MDBcdTg2NWFcdTU2MThcdTk4N2JcdTVmOTBcdThiYjhcdTg0YzRcdTkxNTdcdTUzZDlcdTY1ZWRcdTVlOGZcdTc1NWNcdTYwNjRcdTdkNmVcdTVhN2ZcdTdlZWFcdTdlZWRcdThmNjlcdTU1YTdcdTViYTNcdTYwYWNcdTY1''@;'; + put 'put ''Y2JcdTczODRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA4XVtFXV09NTMyNDgrRSxMWzUzMjQ4K0VdPUJbMjA4XVtFXSk7Zm9yKEJbMjA5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OGFjXHU4OGFlXHU4OGFmXHU4OGIwXHU4OGIyXHU4OGIzXHU4OGI0XHU4OGI1XHU4OGI2XHU4OGI4XHU4OGI5XHU4OGJhXHU4OGJiXHU4OGJkXHU4OGJlXHU4OGJmXHU4OGMwXHU4OGMzXHU4OGM0XHU4OGM3XHU4OGM4XHU4OGNhXHU4''@;'; + put 'put ''OGNiXHU4OGNjXHU4OGNkXHU4OGNmXHU4OGQwXHU4OGQxXHU4OGQzXHU4OGQ2XHU4OGQ3XHU4OGRhXHU4OGRiXHU4OGRjXHU4OGRkXHU4OGRlXHU4OGUwXHU4OGUxXHU4OGU2XHU4OGU3XHU4OGU5XHU4OGVhXHU4OGViXHU4OGVjXHU4OGVkXHU4OGVlXHU4OGVmXHU4OGYyXHU4OGY1XHU4OGY2''@;'; + put 'put ''XHU4OGY3XHU4OGZhXHU4OGZiXHU4OGZkXHU4OGZmXHU4OTAwXHU4OTAxXHU4OTAzXHU4OTA0XHU4OTA1XHU4OTA2XHU4OTA3XHU4OTA4XHVmZmZkXHU4OTA5XHU4OTBiXHU4OTBjXHU4OTBkXHU4OTBlXHU4OTBmXHU4OTExXHU4OTE0XHU4OTE1XHU4OTE2XHU4OTE3XHU4OTE4XHU4OTFjXHU4''@;'; + put 'put ''OTFkXHU4OTFlXHU4OTFmXHU4OTIwXHU4OTIyXHU4OTIzXHU4OTI0XHU4OTI2XHU4OTI3XHU4OTI4XHU4OTI5XHU4OTJjXHU4OTJkXHU4OTJlXHU4OTJmXHU4OTMxXHU4OTMyXHU4OTMzXHU4OTM1XHU4OTM3XHU5MDA5XHU3NjYzXHU3NzI5XHU3ZWRhXHU5Nzc0XHU4NTliXHU1YjY2XHU3YTc0''@;'; + put 'put ''XHU5NmVhXHU4ODQwXHU1MmNiXHU3MThmXHU1ZmFhXHU2NWVjXHU4YmUyXHU1YmZiXHU5YTZmXHU1ZGUxXHU2Yjg5XHU2YzViXHU4YmFkXHU4YmFmXHU5MDBhXHU4ZmM1XHU1MzhiXHU2MmJjXHU5ZTI2XHU5ZTJkXHU1NDQwXHU0ZTJiXHU4MmJkXHU3MjU5XHU4NjljXHU1ZDE2XHU4ODU5XHU2''@;'; + put 'put ''ZGFmXHU5NmM1XHU1NGQxXHU0ZTlhXHU4YmI2XHU3MTA5XHU1NGJkXHU5NjA5XHU3MGRmXHU2ZGY5XHU3NmQwXHU0ZTI1XHU3ODE0XHU4NzEyXHU1Y2E5XHU1ZWY2XHU4YTAwXHU5ODljXHU5NjBlXHU3MDhlXHU2Y2JmXHU1OTQ0XHU2M2E5XHU3NzNjXHU4ODRkXHU2ZjE0XHU4MjczXHU1ODMw''@;'; + put 'put ''XHU3MWQ1XHU1MzhjXHU3ODFhXHU5NmMxXHU1NTAxXHU1ZjY2XHU3MTMwXHU1YmI0XHU4YzFhXHU5YThjXHU2YjgzXHU1OTJlXHU5ZTJmXHU3OWU3XHU2NzY4XHU2MjZjXHU0ZjZmXHU3NWExXHU3ZjhhXHU2ZDBiXHU5NjMzXHU2YzI3XHU0ZWYwXHU3NWQyXHU1MTdiXHU2ODM3XHU2ZjNlXHU5''@;'; + put 'put ''MDgwXHU4MTcwXHU1OTk2XHU3NDc2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwOV1bRV1dPTUzNTA0K0UsTFs1MzUwNCtFXT1CWzIwOV1bRV0pO2ZvcihCWzIxMF09Ilx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODkzOFx1ODkzOVx1ODkzYVx1ODkzYlx1ODkzY1x1ODkzZFx1ODkzZVx1ODkzZlx1ODk0MFx1ODk0Mlx1ODk0M1x1ODk0NVx1ODk0Nlx1ODk0N1x1ODk0OFx1ODk0OVx1ODk0YVx1ODk0Ylx1ODk0Y1x1ODk0ZFx1''@;'; + put 'put ''ODk0ZVx1ODk0Zlx1ODk1MFx1ODk1MVx1ODk1Mlx1ODk1M1x1ODk1NFx1ODk1NVx1ODk1Nlx1ODk1N1x1ODk1OFx1ODk1OVx1ODk1YVx1ODk1Ylx1ODk1Y1x1ODk1ZFx1ODk2MFx1ODk2MVx1ODk2Mlx1ODk2M1x1ODk2NFx1ODk2NVx1ODk2N1x1ODk2OFx1ODk2OVx1ODk2YVx1ODk2Ylx1ODk2''@;'; + put 'put ''Y1x1ODk2ZFx1ODk2ZVx1ODk2Zlx1ODk3MFx1ODk3MVx1ODk3Mlx1ODk3M1x1ODk3NFx1ODk3NVx1ODk3Nlx1ODk3N1x1ODk3OFx1ODk3OVx1ODk3YVx1ODk3Y1x1ZmZmZFx1ODk3ZFx1ODk3ZVx1ODk4MFx1ODk4Mlx1ODk4NFx1ODk4NVx1ODk4N1x1ODk4OFx1ODk4OVx1ODk4YVx1ODk4Ylx1''@;'; + put 'put ''ODk4Y1x1ODk4ZFx1ODk4ZVx1ODk4Zlx1ODk5MFx1ODk5MVx1ODk5Mlx1ODk5M1x1ODk5NFx1ODk5NVx1ODk5Nlx1ODk5N1x1ODk5OFx1ODk5OVx1ODk5YVx1ODk5Ylx1ODk5Y1x1ODk5ZFx1ODk5ZVx1ODk5Zlx1ODlhMFx1ODlhMVx1NjQ0N1x1NWMyN1x1OTA2NVx1N2E5MVx1OGMyM1x1NTlk''@;'; + put 'put ''YVx1NTRhY1x1ODIwMFx1ODM2Zlx1ODk4MVx1ODAwMFx1NjkzMFx1NTY0ZVx1ODAzNlx1NzIzN1x1OTFjZVx1NTFiNlx1NGU1Zlx1OTg3NVx1NjM5Nlx1NGUxYVx1NTNmNlx1NjZmM1x1ODE0Ylx1NTkxY1x1NmRiMlx1NGUwMFx1NThmOVx1NTMzYlx1NjNkNlx1OTRmMVx1NGY5ZFx1NGYwYVx1''@;'; + put 'put ''ODg2M1x1OTg5MFx1NTkzN1x1OTA1N1x1NzlmYlx1NGVlYVx1ODBmMFx1NzU5MVx1NmM4Mlx1NWI5Y1x1NTllOFx1NWY1ZFx1NjkwNVx1ODY4MVx1NTAxYVx1NWRmMlx1NGU1OVx1NzdlM1x1NGVlNVx1ODI3YVx1NjI5MVx1NjYxM1x1OTA5MVx1NWM3OVx1NGViZlx1NWY3OVx1ODFjNlx1OTAz''@;'; + put 'put ''OFx1ODA4NFx1NzVhYlx1NGVhNlx1ODhkNFx1NjEwZlx1NmJjNVx1NWZjNlx1NGU0OVx1NzZjYVx1NmVhMlx1OGJlM1x1OGJhZVx1OGMwYVx1OGJkMVx1NWYwMlx1N2ZmY1x1N2ZjY1x1N2VjZVx1ODMzNVx1ODM2Ylx1NTZlMFx1NmJiN1x1OTdmM1x1OTYzNFx1NTlmYlx1NTQxZlx1OTRmNlx1''@;'; + put 'put ''NmRlYlx1NWJjNVx1OTk2ZVx1NWMzOVx1NWYxNVx1OTY5MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTBdW0VdXT01Mzc2MCtFLExbNTM3NjArRV09QlsyMTBdW0VdKTtmb3IoQlsyMTFd''@;'; + put 'put ''PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg5YTJcdTg5YTNcdTg5YTRcdTg5YTVcdTg5YTZcdTg5YTdcdTg5YThcdTg5YTlcdTg5YWFcdTg5YWJcdTg5YWNcdTg5YWRcdTg5YWVcdTg5YWZcdTg5YjBcdTg5YjFcdTg5YjJcdTg5YjNc''@;'; + put 'put ''dTg5YjRcdTg5YjVcdTg5YjZcdTg5YjdcdTg5YjhcdTg5YjlcdTg5YmFcdTg5YmJcdTg5YmNcdTg5YmRcdTg5YmVcdTg5YmZcdTg5YzBcdTg5YzNcdTg5Y2RcdTg5ZDNcdTg5ZDRcdTg5ZDVcdTg5ZDdcdTg5ZDhcdTg5ZDlcdTg5ZGJcdTg5ZGRcdTg5ZGZcdTg5ZTBcdTg5ZTFcdTg5ZTJcdTg5''@;'; + put 'put ''ZTRcdTg5ZTdcdTg5ZThcdTg5ZTlcdTg5ZWFcdTg5ZWNcdTg5ZWRcdTg5ZWVcdTg5ZjBcdTg5ZjFcdTg5ZjJcdTg5ZjRcdTg5ZjVcdTg5ZjZcdTg5ZjdcdTg5ZjhcdTg5ZjlcdTg5ZmFcdWZmZmRcdTg5ZmJcdTg5ZmNcdTg5ZmRcdTg5ZmVcdTg5ZmZcdThhMDFcdThhMDJcdThhMDNcdThhMDRc''@;'; + put 'put ''dThhMDVcdThhMDZcdThhMDhcdThhMDlcdThhMGFcdThhMGJcdThhMGNcdThhMGRcdThhMGVcdThhMGZcdThhMTBcdThhMTFcdThhMTJcdThhMTNcdThhMTRcdThhMTVcdThhMTZcdThhMTdcdThhMThcdThhMTlcdThhMWFcdThhMWJcdThhMWNcdThhMWRcdTUzNzBcdTgyZjFcdTZhMzFcdTVh''@;'; + put 'put ''NzRcdTllNzBcdTVlOTRcdTdmMjhcdTgzYjlcdTg0MjRcdTg0MjVcdTgzNjdcdTg3NDdcdThmY2VcdThkNjJcdTc2YzhcdTVmNzFcdTk4OTZcdTc4NmNcdTY2MjBcdTU0ZGZcdTYyZTVcdTRmNjNcdTgxYzNcdTc1YzhcdTVlYjhcdTk2Y2RcdThlMGFcdTg2ZjlcdTU0OGZcdTZjZjNcdTZkOGNc''@;'; + put 'put ''dTZjMzhcdTYwN2ZcdTUyYzdcdTc1MjhcdTVlN2RcdTRmMThcdTYwYTBcdTVmZTdcdTVjMjRcdTc1MzFcdTkwYWVcdTk0YzBcdTcyYjlcdTZjYjlcdTZlMzhcdTkxNDlcdTY3MDlcdTUzY2JcdTUzZjNcdTRmNTFcdTkxYzlcdThiZjFcdTUzYzhcdTVlN2NcdThmYzJcdTZkZTRcdTRlOGVcdTc2''@;'; + put 'put ''YzJcdTY5ODZcdTg2NWVcdTYxMWFcdTgyMDZcdTRmNTlcdTRmZGVcdTkwM2VcdTljN2NcdTYxMDlcdTZlMWRcdTZlMTRcdTk2ODVcdTRlODhcdTVhMzFcdTk2ZThcdTRlMGVcdTVjN2ZcdTc5YjlcdTViODdcdThiZWRcdTdmYmRcdTczODlcdTU3ZGZcdTgyOGJcdTkwYzFcdTU0MDFcdTkwNDdc''@;'; + put 'put ''dTU1YmJcdTVjZWFcdTVmYTFcdTYxMDhcdTZiMzJcdTcyZjFcdTgwYjJcdThhODlcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjExXVtFXV09NTQwMTYrRSxMWzU0MDE2K0VdPUJbMjExXVtF''@;'; + put 'put ''XSk7Zm9yKEJbMjEyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YTFlXHU4YTFmXHU4YTIwXHU4YTIxXHU4YTIyXHU4YTIzXHU4YTI0XHU4YTI1XHU4YTI2XHU4YTI3XHU4YTI4XHU4YTI5XHU4YTJhXHU4YTJiXHU4YTJjXHU4YTJk''@;'; + put 'put ''XHU4YTJlXHU4YTJmXHU4YTMwXHU4YTMxXHU4YTMyXHU4YTMzXHU4YTM0XHU4YTM1XHU4YTM2XHU4YTM3XHU4YTM4XHU4YTM5XHU4YTNhXHU4YTNiXHU4YTNjXHU4YTNkXHU4YTNmXHU4YTQwXHU4YTQxXHU4YTQyXHU4YTQzXHU4YTQ0XHU4YTQ1XHU4YTQ2XHU4YTQ3XHU4YTQ5XHU4YTRhXHU4''@;'; + put 'put ''YTRiXHU4YTRjXHU4YTRkXHU4YTRlXHU4YTRmXHU4YTUwXHU4YTUxXHU4YTUyXHU4YTUzXHU4YTU0XHU4YTU1XHU4YTU2XHU4YTU3XHU4YTU4XHU4YTU5XHU4YTVhXHU4YTViXHU4YTVjXHU4YTVkXHU4YTVlXHVmZmZkXHU4YTVmXHU4YTYwXHU4YTYxXHU4YTYyXHU4YTYzXHU4YTY0XHU4YTY1''@;'; + put 'put ''XHU4YTY2XHU4YTY3XHU4YTY4XHU4YTY5XHU4YTZhXHU4YTZiXHU4YTZjXHU4YTZkXHU4YTZlXHU4YTZmXHU4YTcwXHU4YTcxXHU4YTcyXHU4YTczXHU4YTc0XHU4YTc1XHU4YTc2XHU4YTc3XHU4YTc4XHU4YTdhXHU4YTdiXHU4YTdjXHU4YTdkXHU4YTdlXHU4YTdmXHU4YTgwXHU2ZDc0XHU1''@;'; + put 'put ''YmQzXHU4OGQ1XHU5ODg0XHU4YzZiXHU5YTZkXHU5ZTMzXHU2ZTBhXHU1MWE0XHU1MTQzXHU1N2EzXHU4ODgxXHU1MzlmXHU2M2Y0XHU4Zjk1XHU1NmVkXHU1NDU4XHU1NzA2XHU3MzNmXHU2ZTkwXHU3ZjE4XHU4ZmRjXHU4MmQxXHU2MTNmXHU2MDI4XHU5NjYyXHU2NmYwXHU3ZWE2XHU4ZDhh''@;'; + put 'put ''XHU4ZGMzXHU5NGE1XHU1Y2IzXHU3Y2E0XHU2NzA4XHU2MGE2XHU5NjA1XHU4MDE4XHU0ZTkxXHU5MGU3XHU1MzAwXHU5NjY4XHU1MTQxXHU4ZmQwXHU4NTc0XHU5MTVkXHU2NjU1XHU5N2Y1XHU1YjU1XHU1MzFkXHU3ODM4XHU2NzQyXHU2ODNkXHU1NGM5XHU3MDdlXHU1YmIwXHU4ZjdkXHU1''@;'; + put 'put ''MThkXHU1NzI4XHU1NGIxXHU2NTEyXHU2NjgyXHU4ZDVlXHU4ZDQzXHU4MTBmXHU4NDZjXHU5MDZkXHU3Y2RmXHU1MWZmXHU4NWZiXHU2N2EzXHU2NWU5XHU2ZmExXHU4NmE0XHU4ZTgxXHU1NjZhXHU5MDIwXHU3NjgyXHU3MDc2XHU3MWU1XHU4ZDIzXHU2MmU5XHU1MjE5XHU2Y2ZkXHU4ZDNj''@;'; + put 'put ''XHU2MDBlXHU1ODllXHU2MThlXHU2NmZlXHU4ZDYwXHU2MjRlXHU1NWIzXHU2ZTIzXHU2NzJkXHU4ZjY3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjEyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxMl1bRV1dPTU0MjcyK0UsTFs1NDI3''@;'; + put 'put ''MitFXT1CWzIxMl1bRV0pO2ZvcihCWzIxM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGE4MVx1OGE4Mlx1OGE4M1x1OGE4NFx1OGE4NVx1OGE4Nlx1OGE4N1x1OGE4OFx1OGE4Ylx1OGE4Y1x1OGE4ZFx1OGE4ZVx1OGE4Zlx1OGE5''@;'; + put 'put ''MFx1OGE5MVx1OGE5Mlx1OGE5NFx1OGE5NVx1OGE5Nlx1OGE5N1x1OGE5OFx1OGE5OVx1OGE5YVx1OGE5Ylx1OGE5Y1x1OGE5ZFx1OGE5ZVx1OGE5Zlx1OGFhMFx1OGFhMVx1OGFhMlx1OGFhM1x1OGFhNFx1OGFhNVx1OGFhNlx1OGFhN1x1OGFhOFx1OGFhOVx1OGFhYVx1OGFhYlx1OGFhY1x1''@;'; + put 'put ''OGFhZFx1OGFhZVx1OGFhZlx1OGFiMFx1OGFiMVx1OGFiMlx1OGFiM1x1OGFiNFx1OGFiNVx1OGFiNlx1OGFiN1x1OGFiOFx1OGFiOVx1OGFiYVx1OGFiYlx1OGFiY1x1OGFiZFx1OGFiZVx1OGFiZlx1OGFjMFx1OGFjMVx1OGFjMlx1ZmZmZFx1OGFjM1x1OGFjNFx1OGFjNVx1OGFjNlx1OGFj''@;'; + put 'put ''N1x1OGFjOFx1OGFjOVx1OGFjYVx1OGFjYlx1OGFjY1x1OGFjZFx1OGFjZVx1OGFjZlx1OGFkMFx1OGFkMVx1OGFkMlx1OGFkM1x1OGFkNFx1OGFkNVx1OGFkNlx1OGFkN1x1OGFkOFx1OGFkOVx1OGFkYVx1OGFkYlx1OGFkY1x1OGFkZFx1OGFkZVx1OGFkZlx1OGFlMFx1OGFlMVx1OGFlMlx1''@;'; + put 'put ''OGFlM1x1OTRlMVx1OTVmOFx1NzcyOFx1NjgwNVx1NjlhOFx1NTQ4Ylx1NGU0ZFx1NzBiOFx1OGJjOFx1NjQ1OFx1NjU4Ylx1NWI4NVx1N2E4NFx1NTAzYVx1NWJlOFx1NzdiYlx1NmJlMVx1OGE3OVx1N2M5OFx1NmNiZVx1NzZjZlx1NjVhOVx1OGY5N1x1NWQyZFx1NWM1NVx1ODYzOFx1Njgw''@;'; + put 'put ''OFx1NTM2MFx1NjIxOFx1N2FkOVx1NmU1Ylx1N2VmZFx1NmExZlx1N2FlMFx1NWY3MFx1NmYzM1x1NWYyMFx1NjM4Y1x1NmRhOFx1Njc1Nlx1NGUwOFx1NWUxMFx1OGQyNlx1NGVkN1x1ODBjMFx1NzYzNFx1OTY5Y1x1NjJkYlx1NjYyZFx1NjI3ZVx1NmNiY1x1OGQ3NVx1NzE2N1x1N2Y2OVx1''@;'; + put 'put ''NTE0Nlx1ODA4N1x1NTNlY1x1OTA2ZVx1NjI5OFx1NTRmMlx1ODZmMFx1OGY5OVx1ODAwNVx1OTUxN1x1ODUxN1x1OGZkOVx1NmQ1OVx1NzNjZFx1NjU5Zlx1NzcxZlx1NzUwNFx1NzgyN1x1ODFmYlx1OGQxZVx1OTQ4OFx1NGZhNlx1Njc5NVx1NzViOVx1OGJjYVx1OTcwN1x1NjMyZlx1OTU0''@;'; + put 'put ''N1x1OTYzNVx1ODRiOFx1NjMyM1x1Nzc0MVx1NWY4MVx1NzJmMFx1NGU4OVx1NjAxNFx1NjU3NFx1NjJlZlx1NmI2M1x1NjUzZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTNdW0VdXT01''@;'; + put 'put ''NDUyOCtFLExbNTQ1MjgrRV09QlsyMTNdW0VdKTtmb3IoQlsyMTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThhZTRcdThhZTVcdThhZTZcdThhZTdcdThhZThcdThhZTlcdThhZWFcdThhZWJcdThhZWNcdThhZWRcdThhZWVcdThh''@;'; + put 'put ''ZWZcdThhZjBcdThhZjFcdThhZjJcdThhZjNcdThhZjRcdThhZjVcdThhZjZcdThhZjdcdThhZjhcdThhZjlcdThhZmFcdThhZmJcdThhZmNcdThhZmRcdThhZmVcdThhZmZcdThiMDBcdThiMDFcdThiMDJcdThiMDNcdThiMDRcdThiMDVcdThiMDZcdThiMDhcdThiMDlcdThiMGFcdThiMGJc''@;'; + put 'put ''dThiMGNcdThiMGRcdThiMGVcdThiMGZcdThiMTBcdThiMTFcdThiMTJcdThiMTNcdThiMTRcdThiMTVcdThiMTZcdThiMTdcdThiMThcdThiMTlcdThiMWFcdThiMWJcdThiMWNcdThiMWRcdThiMWVcdThiMWZcdThiMjBcdThiMjFcdThiMjJcdThiMjNcdWZmZmRcdThiMjRcdThiMjVcdThi''@;'; + put 'put ''MjdcdThiMjhcdThiMjlcdThiMmFcdThiMmJcdThiMmNcdThiMmRcdThiMmVcdThiMmZcdThiMzBcdThiMzFcdThiMzJcdThiMzNcdThiMzRcdThiMzVcdThiMzZcdThiMzdcdThiMzhcdThiMzlcdThiM2FcdThiM2JcdThiM2NcdThiM2RcdThiM2VcdThiM2ZcdThiNDBcdThiNDFcdThiNDJc''@;'; + put 'put ''dThiNDNcdThiNDRcdThiNDVcdTVlMjdcdTc1YzdcdTkwZDFcdThiYzFcdTgyOWRcdTY3OWRcdTY1MmZcdTU0MzFcdTg3MThcdTc3ZTVcdTgwYTJcdTgxMDJcdTZjNDFcdTRlNGJcdTdlYzdcdTgwNGNcdTc2ZjRcdTY5MGRcdTZiOTZcdTYyNjdcdTUwM2NcdTRmODRcdTU3NDBcdTYzMDdcdTZi''@;'; + put 'put ''NjJcdThkYmVcdTUzZWFcdTY1ZThcdTdlYjhcdTVmZDdcdTYzMWFcdTYzYjdcdTgxZjNcdTgxZjRcdTdmNmVcdTVlMWNcdTVjZDlcdTUyMzZcdTY2N2FcdTc5ZTlcdTdhMWFcdThkMjhcdTcwOTlcdTc1ZDRcdTZlZGVcdTZjYmJcdTdhOTJcdTRlMmRcdTc2YzVcdTVmZTBcdTk0OWZcdTg4Nzdc''@;'; + put 'put ''dTdlYzhcdTc5Y2RcdTgwYmZcdTkxY2RcdTRlZjJcdTRmMTdcdTgyMWZcdTU0NjhcdTVkZGVcdTZkMzJcdThiY2NcdTdjYTVcdThmNzRcdTgwOThcdTVlMWFcdTU0OTJcdTc2YjFcdTViOTlcdTY2M2NcdTlhYTRcdTczZTBcdTY4MmFcdTg2ZGJcdTY3MzFcdTczMmFcdThiZjhcdThiZGJcdTkw''@;'; + put 'put ''MTBcdTdhZjlcdTcwZGJcdTcxNmVcdTYyYzRcdTc3YTlcdTU2MzFcdTRlM2JcdTg0NTdcdTY3ZjFcdTUyYTlcdTg2YzBcdThkMmVcdTk0ZjhcdTdiNTFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxNF1bRV0uY2hhckNvZGVBdCgwKSYmKG1l''@;'; + put 'put ''W0JbMjE0XVtFXV09NTQ3ODQrRSxMWzU0Nzg0K0VdPUJbMjE0XVtFXSk7Zm9yKEJbMjE1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YjQ2XHU4YjQ3XHU4YjQ4XHU4YjQ5XHU4YjRhXHU4YjRiXHU4YjRjXHU4YjRkXHU4YjRlXHU4''@;'; + put 'put ''YjRmXHU4YjUwXHU4YjUxXHU4YjUyXHU4YjUzXHU4YjU0XHU4YjU1XHU4YjU2XHU4YjU3XHU4YjU4XHU4YjU5XHU4YjVhXHU4YjViXHU4YjVjXHU4YjVkXHU4YjVlXHU4YjVmXHU4YjYwXHU4YjYxXHU4YjYyXHU4YjYzXHU4YjY0XHU4YjY1XHU4YjY3XHU4YjY4XHU4YjY5XHU4YjZhXHU4YjZi''@;'; + put 'put ''XHU4YjZkXHU4YjZlXHU4YjZmXHU4YjcwXHU4YjcxXHU4YjcyXHU4YjczXHU4Yjc0XHU4Yjc1XHU4Yjc2XHU4Yjc3XHU4Yjc4XHU4Yjc5XHU4YjdhXHU4YjdiXHU4YjdjXHU4YjdkXHU4YjdlXHU4YjdmXHU4YjgwXHU4YjgxXHU4YjgyXHU4YjgzXHU4Yjg0XHU4Yjg1XHU4Yjg2XHVmZmZkXHU4''@;'; + put 'put ''Yjg3XHU4Yjg4XHU4Yjg5XHU4YjhhXHU4YjhiXHU4YjhjXHU4YjhkXHU4YjhlXHU4YjhmXHU4YjkwXHU4YjkxXHU4YjkyXHU4YjkzXHU4Yjk0XHU4Yjk1XHU4Yjk2XHU4Yjk3XHU4Yjk4XHU4Yjk5XHU4YjlhXHU4YjliXHU4YjljXHU4YjlkXHU4YjllXHU4YjlmXHU4YmFjXHU4YmIxXHU4YmJi''@;'; + put 'put ''XHU4YmM3XHU4YmQwXHU4YmVhXHU4YzA5XHU4YzFlXHU0ZjRmXHU2Y2U4XHU3OTVkXHU5YTdiXHU2MjkzXHU3MjJhXHU2MmZkXHU0ZTEzXHU3ODE2XHU4ZjZjXHU2NGIwXHU4ZDVhXHU3YmM2XHU2ODY5XHU1ZTg0XHU4OGM1XHU1OTg2XHU2NDllXHU1OGVlXHU3MmI2XHU2OTBlXHU5NTI1XHU4''@;'; + put 'put ''ZmZkXHU4ZDU4XHU1NzYwXHU3ZjAwXHU4YzA2XHU1MWM2XHU2MzQ5XHU2MmQ5XHU1MzUzXHU2ODRjXHU3NDIyXHU4MzAxXHU5MTRjXHU1NTQ0XHU3NzQwXHU3MDdjXHU2ZDRhXHU1MTc5XHU1NGE4XHU4ZDQ0XHU1OWZmXHU2ZWNiXHU2ZGM0XHU1YjVjXHU3ZDJiXHU0ZWQ0XHU3YzdkXHU2ZWQz''@;'; + put 'put ''XHU1YjUwXHU4MWVhXHU2ZTBkXHU1YjU3XHU5YjAzXHU2OGQ1XHU4ZTJhXHU1Yjk3XHU3ZWZjXHU2MDNiXHU3ZWI1XHU5MGI5XHU4ZDcwXHU1OTRmXHU2M2NkXHU3OWRmXHU4ZGIzXHU1MzUyXHU2NWNmXHU3OTU2XHU4YmM1XHU5NjNiXHU3ZWM0XHU5NGJiXHU3ZTgyXHU1NjM0XHU5MTg5XHU2''@;'; + put 'put ''NzAwXHU3ZjZhXHU1YzBhXHU5MDc1XHU2NjI4XHU1ZGU2XHU0ZjUwXHU2N2RlXHU1MDVhXHU0ZjVjXHU1NzUwXHU1ZWE3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTVdW0VdLmNoYXJD''@;'; + put 'put ''b2RlQXQoMCkmJihtZVtCWzIxNV1bRV1dPTU1MDQwK0UsTFs1NTA0MCtFXT1CWzIxNV1bRV0pO2ZvcihCWzIxNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGMzOFx1OGMzOVx1OGMzYVx1OGMzYlx1OGMzY1x1OGMzZFx1OGMzZVx1''@;'; + put 'put ''OGMzZlx1OGM0MFx1OGM0Mlx1OGM0M1x1OGM0NFx1OGM0NVx1OGM0OFx1OGM0YVx1OGM0Ylx1OGM0ZFx1OGM0ZVx1OGM0Zlx1OGM1MFx1OGM1MVx1OGM1Mlx1OGM1M1x1OGM1NFx1OGM1Nlx1OGM1N1x1OGM1OFx1OGM1OVx1OGM1Ylx1OGM1Y1x1OGM1ZFx1OGM1ZVx1OGM1Zlx1OGM2MFx1OGM2''@;'; + put 'put ''M1x1OGM2NFx1OGM2NVx1OGM2Nlx1OGM2N1x1OGM2OFx1OGM2OVx1OGM2Y1x1OGM2ZFx1OGM2ZVx1OGM2Zlx1OGM3MFx1OGM3MVx1OGM3Mlx1OGM3NFx1OGM3NVx1OGM3Nlx1OGM3N1x1OGM3Ylx1OGM3Y1x1OGM3ZFx1OGM3ZVx1OGM3Zlx1OGM4MFx1OGM4MVx1OGM4M1x1OGM4NFx1OGM4Nlx1''@;'; + put 'put ''OGM4N1x1ZmZmZFx1OGM4OFx1OGM4Ylx1OGM4ZFx1OGM4ZVx1OGM4Zlx1OGM5MFx1OGM5MVx1OGM5Mlx1OGM5M1x1OGM5NVx1OGM5Nlx1OGM5N1x1OGM5OVx1OGM5YVx1OGM5Ylx1OGM5Y1x1OGM5ZFx1OGM5ZVx1OGM5Zlx1OGNhMFx1OGNhMVx1OGNhMlx1OGNhM1x1OGNhNFx1OGNhNVx1OGNh''@;'; + put 'put ''Nlx1OGNhN1x1OGNhOFx1OGNhOVx1OGNhYVx1OGNhYlx1OGNhY1x1OGNhZFx1NGU4ZFx1NGUwY1x1NTE0MFx1NGUxMFx1NWVmZlx1NTM0NVx1NGUxNVx1NGU5OFx1NGUxZVx1OWIzMlx1NWI2Y1x1NTY2OVx1NGUyOFx1NzliYVx1NGUzZlx1NTMxNVx1NGU0N1x1NTkyZFx1NzIzYlx1NTM2ZVx1''@;'; + put 'put ''NmMxMFx1NTZkZlx1ODBlNFx1OTk5N1x1NmJkM1x1Nzc3ZVx1OWYxN1x1NGUzNlx1NGU5Zlx1OWYxMFx1NGU1Y1x1NGU2OVx1NGU5M1x1ODI4OFx1NWI1Ylx1NTU2Y1x1NTYwZlx1NGVjNFx1NTM4ZFx1NTM5ZFx1NTNhM1x1NTNhNVx1NTNhZVx1OTc2NVx1OGQ1ZFx1NTMxYVx1NTNmNVx1NTMy''@;'; + put 'put ''Nlx1NTMyZVx1NTMzZVx1OGQ1Y1x1NTM2Nlx1NTM2M1x1NTIwMlx1NTIwOFx1NTIwZVx1NTIyZFx1NTIzM1x1NTIzZlx1NTI0MFx1NTI0Y1x1NTI1ZVx1NTI2MVx1NTI1Y1x1ODRhZlx1NTI3ZFx1NTI4Mlx1NTI4MVx1NTI5MFx1NTI5M1x1NTE4Mlx1N2Y1NFx1NGViYlx1NGVjM1x1NGVjOVx1''@;'; + put 'put ''NGVjMlx1NGVlOFx1NGVlMVx1NGVlYlx1NGVkZVx1NGYxYlx1NGVmM1x1NGYyMlx1NGY2NFx1NGVmNVx1NGYyNVx1NGYyN1x1NGYwOVx1NGYyYlx1NGY1ZVx1NGY2N1x1NjUzOFx1NGY1YVx1NGY1ZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJb''@;'; + put 'put ''MjE2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTZdW0VdXT01NTI5NitFLExbNTUyOTYrRV09QlsyMTZdW0VdKTtmb3IoQlsyMTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThjYWVcdThjYWZcdThjYjBcdThjYjFcdThjYjJc''@;'; + put 'put ''dThjYjNcdThjYjRcdThjYjVcdThjYjZcdThjYjdcdThjYjhcdThjYjlcdThjYmFcdThjYmJcdThjYmNcdThjYmRcdThjYmVcdThjYmZcdThjYzBcdThjYzFcdThjYzJcdThjYzNcdThjYzRcdThjYzVcdThjYzZcdThjYzdcdThjYzhcdThjYzlcdThjY2FcdThjY2JcdThjY2NcdThjY2RcdThj''@;'; + put 'put ''Y2VcdThjY2ZcdThjZDBcdThjZDFcdThjZDJcdThjZDNcdThjZDRcdThjZDVcdThjZDZcdThjZDdcdThjZDhcdThjZDlcdThjZGFcdThjZGJcdThjZGNcdThjZGRcdThjZGVcdThjZGZcdThjZTBcdThjZTFcdThjZTJcdThjZTNcdThjZTRcdThjZTVcdThjZTZcdThjZTdcdThjZThcdThjZTlc''@;'; + put 'put ''dThjZWFcdThjZWJcdThjZWNcdWZmZmRcdThjZWRcdThjZWVcdThjZWZcdThjZjBcdThjZjFcdThjZjJcdThjZjNcdThjZjRcdThjZjVcdThjZjZcdThjZjdcdThjZjhcdThjZjlcdThjZmFcdThjZmJcdThjZmNcdThjZmRcdThjZmVcdThjZmZcdThkMDBcdThkMDFcdThkMDJcdThkMDNcdThk''@;'; + put 'put ''MDRcdThkMDVcdThkMDZcdThkMDdcdThkMDhcdThkMDlcdThkMGFcdThkMGJcdThkMGNcdThkMGRcdTRmNWZcdTRmNTdcdTRmMzJcdTRmM2RcdTRmNzZcdTRmNzRcdTRmOTFcdTRmODlcdTRmODNcdTRmOGZcdTRmN2VcdTRmN2JcdTRmYWFcdTRmN2NcdTRmYWNcdTRmOTRcdTRmZTZcdTRmZThc''@;'; + put 'put ''dTRmZWFcdTRmYzVcdTRmZGFcdTRmZTNcdTRmZGNcdTRmZDFcdTRmZGZcdTRmZjhcdTUwMjlcdTUwNGNcdTRmZjNcdTUwMmNcdTUwMGZcdTUwMmVcdTUwMmRcdTRmZmVcdTUwMWNcdTUwMGNcdTUwMjVcdTUwMjhcdTUwN2VcdTUwNDNcdTUwNTVcdTUwNDhcdTUwNGVcdTUwNmNcdTUwN2JcdTUw''@;'; + put 'put ''YTVcdTUwYTdcdTUwYTlcdTUwYmFcdTUwZDZcdTUxMDZcdTUwZWRcdTUwZWNcdTUwZTZcdTUwZWVcdTUxMDdcdTUxMGJcdTRlZGRcdTZjM2RcdTRmNThcdTRmNjVcdTRmY2VcdTlmYTBcdTZjNDZcdTdjNzRcdTUxNmVcdTVkZmRcdTllYzlcdTk5OThcdTUxODFcdTU5MTRcdTUyZjlcdTUzMGRc''@;'; + put 'put ''dThhMDdcdTUzMTBcdTUxZWJcdTU5MTlcdTUxNTVcdTRlYTBcdTUxNTZcdTRlYjNcdTg4NmVcdTg4YTRcdTRlYjVcdTgxMTRcdTg4ZDJcdTc5ODBcdTViMzRcdTg4MDNcdTdmYjhcdTUxYWJcdTUxYjFcdTUxYmRcdTUxYmNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTddLmxlbmd0aDsr''@;'; + put 'put ''K0UpNjU1MzMhPT1CWzIxN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE3XVtFXV09NTU1NTIrRSxMWzU1NTUyK0VdPUJbMjE3XVtFXSk7Zm9yKEJbMjE4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZDBlXHU4ZDBmXHU4ZDEw''@;'; + put 'put ''XHU4ZDExXHU4ZDEyXHU4ZDEzXHU4ZDE0XHU4ZDE1XHU4ZDE2XHU4ZDE3XHU4ZDE4XHU4ZDE5XHU4ZDFhXHU4ZDFiXHU4ZDFjXHU4ZDIwXHU4ZDUxXHU4ZDUyXHU4ZDU3XHU4ZDVmXHU4ZDY1XHU4ZDY4XHU4ZDY5XHU4ZDZhXHU4ZDZjXHU4ZDZlXHU4ZDZmXHU4ZDcxXHU4ZDcyXHU4ZDc4XHU4''@;'; + put 'put ''ZDc5XHU4ZDdhXHU4ZDdiXHU4ZDdjXHU4ZDdkXHU4ZDdlXHU4ZDdmXHU4ZDgwXHU4ZDgyXHU4ZDgzXHU4ZDg2XHU4ZDg3XHU4ZDg4XHU4ZDg5XHU4ZDhjXHU4ZDhkXHU4ZDhlXHU4ZDhmXHU4ZDkwXHU4ZDkyXHU4ZDkzXHU4ZDk1XHU4ZDk2XHU4ZDk3XHU4ZDk4XHU4ZDk5XHU4ZDlhXHU4ZDli''@;'; + put 'put ''XHU4ZDljXHU4ZDlkXHU4ZDllXHU4ZGEwXHU4ZGExXHVmZmZkXHU4ZGEyXHU4ZGE0XHU4ZGE1XHU4ZGE2XHU4ZGE3XHU4ZGE4XHU4ZGE5XHU4ZGFhXHU4ZGFiXHU4ZGFjXHU4ZGFkXHU4ZGFlXHU4ZGFmXHU4ZGIwXHU4ZGIyXHU4ZGI2XHU4ZGI3XHU4ZGI5XHU4ZGJiXHU4ZGJkXHU4ZGMwXHU4''@;'; + put 'put ''ZGMxXHU4ZGMyXHU4ZGM1XHU4ZGM3XHU4ZGM4XHU4ZGM5XHU4ZGNhXHU4ZGNkXHU4ZGQwXHU4ZGQyXHU4ZGQzXHU4ZGQ0XHU1MWM3XHU1MTk2XHU1MWEyXHU1MWE1XHU4YmEwXHU4YmE2XHU4YmE3XHU4YmFhXHU4YmI0XHU4YmI1XHU4YmI3XHU4YmMyXHU4YmMzXHU4YmNiXHU4YmNmXHU4YmNl''@;'; + put 'put ''XHU4YmQyXHU4YmQzXHU4YmQ0XHU4YmQ2XHU4YmQ4XHU4YmQ5XHU4YmRjXHU4YmRmXHU4YmUwXHU4YmU0XHU4YmU4XHU4YmU5XHU4YmVlXHU4YmYwXHU4YmYzXHU4YmY2XHU4YmY5XHU4YmZjXHU4YmZmXHU4YzAwXHU4YzAyXHU4YzA0XHU4YzA3XHU4YzBjXHU4YzBmXHU4YzExXHU4YzEyXHU4''@;'; + put 'put ''YzE0XHU4YzE1XHU4YzE2XHU4YzE5XHU4YzFiXHU4YzE4XHU4YzFkXHU4YzFmXHU4YzIwXHU4YzIxXHU4YzI1XHU4YzI3XHU4YzJhXHU4YzJiXHU4YzJlXHU4YzJmXHU4YzMyXHU4YzMzXHU4YzM1XHU4YzM2XHU1MzY5XHU1MzdhXHU5NjFkXHU5NjIyXHU5NjIxXHU5NjMxXHU5NjJhXHU5NjNk''@;'; + put 'put ''XHU5NjNjXHU5NjQyXHU5NjQ5XHU5NjU0XHU5NjVmXHU5NjY3XHU5NjZjXHU5NjcyXHU5Njc0XHU5Njg4XHU5NjhkXHU5Njk3XHU5NmIwXHU5MDk3XHU5MDliXHU5MDlkXHU5MDk5XHU5MGFjXHU5MGExXHU5MGI0XHU5MGIzXHU5MGI2XHU5MGJhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJb''@;'; + put 'put ''MjE4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMThdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxOF1bRV1dPTU1ODA4K0UsTFs1NTgwOCtFXT1CWzIxOF1bRV0pO2ZvcihCWzIxOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGRk''@;'; + put 'put ''NVx1OGRkOFx1OGRkOVx1OGRkY1x1OGRlMFx1OGRlMVx1OGRlMlx1OGRlNVx1OGRlNlx1OGRlN1x1OGRlOVx1OGRlZFx1OGRlZVx1OGRmMFx1OGRmMVx1OGRmMlx1OGRmNFx1OGRmNlx1OGRmY1x1OGRmZVx1OGRmZlx1OGUwMFx1OGUwMVx1OGUwMlx1OGUwM1x1OGUwNFx1OGUwNlx1OGUwN1x1''@;'; + put 'put ''OGUwOFx1OGUwYlx1OGUwZFx1OGUwZVx1OGUxMFx1OGUxMVx1OGUxMlx1OGUxM1x1OGUxNVx1OGUxNlx1OGUxN1x1OGUxOFx1OGUxOVx1OGUxYVx1OGUxYlx1OGUxY1x1OGUyMFx1OGUyMVx1OGUyNFx1OGUyNVx1OGUyNlx1OGUyN1x1OGUyOFx1OGUyYlx1OGUyZFx1OGUzMFx1OGUzMlx1OGUz''@;'; + put 'put ''M1x1OGUzNFx1OGUzNlx1OGUzN1x1OGUzOFx1OGUzYlx1OGUzY1x1OGUzZVx1ZmZmZFx1OGUzZlx1OGU0M1x1OGU0NVx1OGU0Nlx1OGU0Y1x1OGU0ZFx1OGU0ZVx1OGU0Zlx1OGU1MFx1OGU1M1x1OGU1NFx1OGU1NVx1OGU1Nlx1OGU1N1x1OGU1OFx1OGU1YVx1OGU1Ylx1OGU1Y1x1OGU1ZFx1''@;'; + put 'put ''OGU1ZVx1OGU1Zlx1OGU2MFx1OGU2MVx1OGU2Mlx1OGU2M1x1OGU2NFx1OGU2NVx1OGU2N1x1OGU2OFx1OGU2YVx1OGU2Ylx1OGU2ZVx1OGU3MVx1OTBiOFx1OTBiMFx1OTBjZlx1OTBjNVx1OTBiZVx1OTBkMFx1OTBjNFx1OTBjN1x1OTBkM1x1OTBlNlx1OTBlMlx1OTBkY1x1OTBkN1x1OTBk''@;'; + put 'put ''Ylx1OTBlYlx1OTBlZlx1OTBmZVx1OTEwNFx1OTEyMlx1OTExZVx1OTEyM1x1OTEzMVx1OTEyZlx1OTEzOVx1OTE0M1x1OTE0Nlx1NTIwZFx1NTk0Mlx1NTJhMlx1NTJhY1x1NTJhZFx1NTJiZVx1NTRmZlx1NTJkMFx1NTJkNlx1NTJmMFx1NTNkZlx1NzFlZVx1NzdjZFx1NWVmNFx1NTFmNVx1''@;'; + put 'put ''NTFmY1x1OWIyZlx1NTNiNlx1NWYwMVx1NzU1YVx1NWRlZlx1NTc0Y1x1NTdhOVx1NTdhMVx1NTg3ZVx1NThiY1x1NThjNVx1NThkMVx1NTcyOVx1NTcyY1x1NTcyYVx1NTczM1x1NTczOVx1NTcyZVx1NTcyZlx1NTc1Y1x1NTczYlx1NTc0Mlx1NTc2OVx1NTc4NVx1NTc2Ylx1NTc4Nlx1NTc3''@;'; + put 'put ''Y1x1NTc3Ylx1NTc2OFx1NTc2ZFx1NTc3Nlx1NTc3M1x1NTdhZFx1NTdhNFx1NTc4Y1x1NTdiMlx1NTdjZlx1NTdhN1x1NTdiNFx1NTc5M1x1NTdhMFx1NTdkNVx1NTdkOFx1NTdkYVx1NTdkOVx1NTdkMlx1NTdiOFx1NTdmNFx1NTdlZlx1NTdmOFx1NTdlNFx1NTdkZFx1ZmZmZCIuc3BsaXQo''@;'; + put 'put ''IiIpLEU9MDtFIT1CWzIxOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTldW0VdXT01NjA2NCtFLExbNTYwNjQrRV09QlsyMTldW0VdKTtmb3IoQlsyMjBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdThlNzNcdThlNzVcdThlNzdcdThlNzhcdThlNzlcdThlN2FcdThlN2JcdThlN2RcdThlN2VcdThlODBcdThlODJcdThlODNcdThlODRcdThlODZcdThlODhcdThlODlcdThlOGFcdThlOGJcdThlOGNcdThlOGRcdThlOGVcdThlOTFcdThlOTJcdThlOTNcdThlOTVcdThlOTZc''@;'; + put 'put ''dThlOTdcdThlOThcdThlOTlcdThlOWFcdThlOWJcdThlOWRcdThlOWZcdThlYTBcdThlYTFcdThlYTJcdThlYTNcdThlYTRcdThlYTVcdThlYTZcdThlYTdcdThlYThcdThlYTlcdThlYWFcdThlYWRcdThlYWVcdThlYjBcdThlYjFcdThlYjNcdThlYjRcdThlYjVcdThlYjZcdThlYjdcdThl''@;'; + put 'put ''YjhcdThlYjlcdThlYmJcdThlYmNcdThlYmRcdThlYmVcdThlYmZcdThlYzBcdThlYzFcdThlYzJcdWZmZmRcdThlYzNcdThlYzRcdThlYzVcdThlYzZcdThlYzdcdThlYzhcdThlYzlcdThlY2FcdThlY2JcdThlY2NcdThlY2RcdThlY2ZcdThlZDBcdThlZDFcdThlZDJcdThlZDNcdThlZDRc''@;'; + put 'put ''dThlZDVcdThlZDZcdThlZDdcdThlZDhcdThlZDlcdThlZGFcdThlZGJcdThlZGNcdThlZGRcdThlZGVcdThlZGZcdThlZTBcdThlZTFcdThlZTJcdThlZTNcdThlZTRcdTU4MGJcdTU4MGRcdTU3ZmRcdTU3ZWRcdTU4MDBcdTU4MWVcdTU4MTlcdTU4NDRcdTU4MjBcdTU4NjVcdTU4NmNcdTU4''@;'; + put 'put ''ODFcdTU4ODlcdTU4OWFcdTU4ODBcdTk5YThcdTlmMTlcdTYxZmZcdTgyNzlcdTgyN2RcdTgyN2ZcdTgyOGZcdTgyOGFcdTgyYThcdTgyODRcdTgyOGVcdTgyOTFcdTgyOTdcdTgyOTlcdTgyYWJcdTgyYjhcdTgyYmVcdTgyYjBcdTgyYzhcdTgyY2FcdTgyZTNcdTgyOThcdTgyYjdcdTgyYWVc''@;'; + put 'put ''dTgyY2JcdTgyY2NcdTgyYzFcdTgyYTlcdTgyYjRcdTgyYTFcdTgyYWFcdTgyOWZcdTgyYzRcdTgyY2VcdTgyYTRcdTgyZTFcdTgzMDlcdTgyZjdcdTgyZTRcdTgzMGZcdTgzMDdcdTgyZGNcdTgyZjRcdTgyZDJcdTgyZDhcdTgzMGNcdTgyZmJcdTgyZDNcdTgzMTFcdTgzMWFcdTgzMDZcdTgz''@;'; + put 'put ''MTRcdTgzMTVcdTgyZTBcdTgyZDVcdTgzMWNcdTgzNTFcdTgzNWJcdTgzNWNcdTgzMDhcdTgzOTJcdTgzM2NcdTgzMzRcdTgzMzFcdTgzOWJcdTgzNWVcdTgzMmZcdTgzNGZcdTgzNDdcdTgzNDNcdTgzNWZcdTgzNDBcdTgzMTdcdTgzNjBcdTgzMmRcdTgzM2FcdTgzMzNcdTgzNjZcdTgzNjVc''@;'; + put 'put ''dWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIwXVtFXV09NTYzMjArRSxMWzU2MzIwK0VdPUJbMjIwXVtFXSk7Zm9yKEJbMjIxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZWU1XHU4ZWU2XHU4ZWU3XHU4ZWU4XHU4ZWU5XHU4ZWVhXHU4ZWViXHU4ZWVjXHU4ZWVkXHU4ZWVlXHU4ZWVmXHU4ZWYwXHU4ZWYxXHU4ZWYyXHU4ZWYzXHU4ZWY0XHU4ZWY1XHU4ZWY2XHU4ZWY3XHU4ZWY4XHU4ZWY5XHU4ZWZhXHU4ZWZiXHU4ZWZj''@;'; + put 'put ''XHU4ZWZkXHU4ZWZlXHU4ZWZmXHU4ZjAwXHU4ZjAxXHU4ZjAyXHU4ZjAzXHU4ZjA0XHU4ZjA1XHU4ZjA2XHU4ZjA3XHU4ZjA4XHU4ZjA5XHU4ZjBhXHU4ZjBiXHU4ZjBjXHU4ZjBkXHU4ZjBlXHU4ZjBmXHU4ZjEwXHU4ZjExXHU4ZjEyXHU4ZjEzXHU4ZjE0XHU4ZjE1XHU4ZjE2XHU4ZjE3XHU4''@;'; + put 'put ''ZjE4XHU4ZjE5XHU4ZjFhXHU4ZjFiXHU4ZjFjXHU4ZjFkXHU4ZjFlXHU4ZjFmXHU4ZjIwXHU4ZjIxXHU4ZjIyXHU4ZjIzXHVmZmZkXHU4ZjI0XHU4ZjI1XHU4ZjI2XHU4ZjI3XHU4ZjI4XHU4ZjI5XHU4ZjJhXHU4ZjJiXHU4ZjJjXHU4ZjJkXHU4ZjJlXHU4ZjJmXHU4ZjMwXHU4ZjMxXHU4ZjMy''@;'; + put 'put ''XHU4ZjMzXHU4ZjM0XHU4ZjM1XHU4ZjM2XHU4ZjM3XHU4ZjM4XHU4ZjM5XHU4ZjNhXHU4ZjNiXHU4ZjNjXHU4ZjNkXHU4ZjNlXHU4ZjNmXHU4ZjQwXHU4ZjQxXHU4ZjQyXHU4ZjQzXHU4ZjQ0XHU4MzY4XHU4MzFiXHU4MzY5XHU4MzZjXHU4MzZhXHU4MzZkXHU4MzZlXHU4M2IwXHU4Mzc4XHU4''@;'; + put 'put ''M2IzXHU4M2I0XHU4M2EwXHU4M2FhXHU4MzkzXHU4MzljXHU4Mzg1XHU4MzdjXHU4M2I2XHU4M2E5XHU4MzdkXHU4M2I4XHU4MzdiXHU4Mzk4XHU4MzllXHU4M2E4XHU4M2JhXHU4M2JjXHU4M2MxXHU4NDAxXHU4M2U1XHU4M2Q4XHU1ODA3XHU4NDE4XHU4NDBiXHU4M2RkXHU4M2ZkXHU4M2Q2''@;'; + put 'put ''XHU4NDFjXHU4NDM4XHU4NDExXHU4NDA2XHU4M2Q0XHU4M2RmXHU4NDBmXHU4NDAzXHU4M2Y4XHU4M2Y5XHU4M2VhXHU4M2M1XHU4M2MwXHU4NDI2XHU4M2YwXHU4M2UxXHU4NDVjXHU4NDUxXHU4NDVhXHU4NDU5XHU4NDczXHU4NDg3XHU4NDg4XHU4NDdhXHU4NDg5XHU4NDc4XHU4NDNjXHU4''@;'; + put 'put ''NDQ2XHU4NDY5XHU4NDc2XHU4NDhjXHU4NDhlXHU4NDMxXHU4NDZkXHU4NGMxXHU4NGNkXHU4NGQwXHU4NGU2XHU4NGJkXHU4NGQzXHU4NGNhXHU4NGJmXHU4NGJhXHU4NGUwXHU4NGExXHU4NGI5XHU4NGI0XHU4NDk3XHU4NGU1XHU4NGUzXHU4NTBjXHU3NTBkXHU4NTM4XHU4NGYwXHU4NTM5''@;'; + put 'put ''XHU4NTFmXHU4NTNhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjIxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyMV1bRV1dPTU2NTc2K0UsTFs1NjU3NitFXT1CWzIyMV1bRV0pO2ZvcihCWzIyMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGY0NVx1OGY0Nlx1OGY0N1x1OGY0OFx1OGY0OVx1OGY0YVx1OGY0Ylx1OGY0Y1x1OGY0ZFx1OGY0ZVx1OGY0Zlx1OGY1MFx1OGY1MVx1OGY1Mlx1OGY1M1x1OGY1NFx1OGY1NVx1OGY1Nlx1OGY1N1x1OGY1OFx1OGY1OVx1OGY1''@;'; + put 'put ''YVx1OGY1Ylx1OGY1Y1x1OGY1ZFx1OGY1ZVx1OGY1Zlx1OGY2MFx1OGY2MVx1OGY2Mlx1OGY2M1x1OGY2NFx1OGY2NVx1OGY2YVx1OGY4MFx1OGY4Y1x1OGY5Mlx1OGY5ZFx1OGZhMFx1OGZhMVx1OGZhMlx1OGZhNFx1OGZhNVx1OGZhNlx1OGZhN1x1OGZhYVx1OGZhY1x1OGZhZFx1OGZhZVx1''@;'; + put 'put ''OGZhZlx1OGZiMlx1OGZiM1x1OGZiNFx1OGZiNVx1OGZiN1x1OGZiOFx1OGZiYVx1OGZiYlx1OGZiY1x1OGZiZlx1OGZjMFx1OGZjM1x1OGZjNlx1ZmZmZFx1OGZjOVx1OGZjYVx1OGZjYlx1OGZjY1x1OGZjZFx1OGZjZlx1OGZkMlx1OGZkNlx1OGZkN1x1OGZkYVx1OGZlMFx1OGZlMVx1OGZl''@;'; + put 'put ''M1x1OGZlN1x1OGZlY1x1OGZlZlx1OGZmMVx1OGZmMlx1OGZmNFx1OGZmNVx1OGZmNlx1OGZmYVx1OGZmYlx1OGZmY1x1OGZmZVx1OGZmZlx1OTAwN1x1OTAwOFx1OTAwY1x1OTAwZVx1OTAxM1x1OTAxNVx1OTAxOFx1ODU1Nlx1ODUzYlx1ODRmZlx1ODRmY1x1ODU1OVx1ODU0OFx1ODU2OFx1''@;'; + put 'put ''ODU2NFx1ODU1ZVx1ODU3YVx1NzdhMlx1ODU0M1x1ODU3Mlx1ODU3Ylx1ODVhNFx1ODVhOFx1ODU4N1x1ODU4Zlx1ODU3OVx1ODVhZVx1ODU5Y1x1ODU4NVx1ODViOVx1ODViN1x1ODViMFx1ODVkM1x1ODVjMVx1ODVkY1x1ODVmZlx1ODYyN1x1ODYwNVx1ODYyOVx1ODYxNlx1ODYzY1x1NWVm''@;'; + put 'put ''ZVx1NWYwOFx1NTkzY1x1NTk0MVx1ODAzN1x1NTk1NVx1NTk1YVx1NTk1OFx1NTMwZlx1NWMyMlx1NWMyNVx1NWMyY1x1NWMzNFx1NjI0Y1x1NjI2YVx1NjI5Zlx1NjJiYlx1NjJjYVx1NjJkYVx1NjJkN1x1NjJlZVx1NjMyMlx1NjJmNlx1NjMzOVx1NjM0Ylx1NjM0M1x1NjNhZFx1NjNmNlx1''@;'; + put 'put ''NjM3MVx1NjM3YVx1NjM4ZVx1NjNiNFx1NjM2ZFx1NjNhY1x1NjM4YVx1NjM2OVx1NjNhZVx1NjNiY1x1NjNmMlx1NjNmOFx1NjNlMFx1NjNmZlx1NjNjNFx1NjNkZVx1NjNjZVx1NjQ1Mlx1NjNjNlx1NjNiZVx1NjQ0NVx1NjQ0MVx1NjQwYlx1NjQxYlx1NjQyMFx1NjQwY1x1NjQyNlx1NjQy''@;'; + put 'put ''MVx1NjQ1ZVx1NjQ4NFx1NjQ2ZFx1NjQ5Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjJdW0VdXT01NjgzMitFLExbNTY4MzIrRV09QlsyMjJdW0VdKTtmb3IoQlsyMjNdPSJcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkwMTlcdTkwMWNcdTkwMjNcdTkwMjRcdTkwMjVcdTkwMjdcdTkwMjhcdTkwMjlcdTkwMmFcdTkwMmJcdTkwMmNcdTkwMzBcdTkwMzFcdTkwMzJcdTkwMzNcdTkwMzRcdTkwMzdcdTkwMzlcdTkwM2FcdTkw''@;'; + put 'put ''M2RcdTkwM2ZcdTkwNDBcdTkwNDNcdTkwNDVcdTkwNDZcdTkwNDhcdTkwNDlcdTkwNGFcdTkwNGJcdTkwNGNcdTkwNGVcdTkwNTRcdTkwNTVcdTkwNTZcdTkwNTlcdTkwNWFcdTkwNWNcdTkwNWRcdTkwNWVcdTkwNWZcdTkwNjBcdTkwNjFcdTkwNjRcdTkwNjZcdTkwNjdcdTkwNjlcdTkwNmFc''@;'; + put 'put ''dTkwNmJcdTkwNmNcdTkwNmZcdTkwNzBcdTkwNzFcdTkwNzJcdTkwNzNcdTkwNzZcdTkwNzdcdTkwNzhcdTkwNzlcdTkwN2FcdTkwN2JcdTkwN2NcdTkwN2VcdTkwODFcdWZmZmRcdTkwODRcdTkwODVcdTkwODZcdTkwODdcdTkwODlcdTkwOGFcdTkwOGNcdTkwOGRcdTkwOGVcdTkwOGZcdTkw''@;'; + put 'put ''OTBcdTkwOTJcdTkwOTRcdTkwOTZcdTkwOThcdTkwOWFcdTkwOWNcdTkwOWVcdTkwOWZcdTkwYTBcdTkwYTRcdTkwYTVcdTkwYTdcdTkwYThcdTkwYTlcdTkwYWJcdTkwYWRcdTkwYjJcdTkwYjdcdTkwYmNcdTkwYmRcdTkwYmZcdTkwYzBcdTY0N2FcdTY0YjdcdTY0YjhcdTY0OTlcdTY0YmFc''@;'; + put 'put ''dTY0YzBcdTY0ZDBcdTY0ZDdcdTY0ZTRcdTY0ZTJcdTY1MDlcdTY1MjVcdTY1MmVcdTVmMGJcdTVmZDJcdTc1MTlcdTVmMTFcdTUzNWZcdTUzZjFcdTUzZmRcdTUzZTlcdTUzZThcdTUzZmJcdTU0MTJcdTU0MTZcdTU0MDZcdTU0NGJcdTU0NTJcdTU0NTNcdTU0NTRcdTU0NTZcdTU0NDNcdTU0''@;'; + put 'put ''MjFcdTU0NTdcdTU0NTlcdTU0MjNcdTU0MzJcdTU0ODJcdTU0OTRcdTU0NzdcdTU0NzFcdTU0NjRcdTU0OWFcdTU0OWJcdTU0ODRcdTU0NzZcdTU0NjZcdTU0OWRcdTU0ZDBcdTU0YWRcdTU0YzJcdTU0YjRcdTU0ZDJcdTU0YTdcdTU0YTZcdTU0ZDNcdTU0ZDRcdTU0NzJcdTU0YTNcdTU0ZDVc''@;'; + put 'put ''dTU0YmJcdTU0YmZcdTU0Y2NcdTU0ZDlcdTU0ZGFcdTU0ZGNcdTU0YTlcdTU0YWFcdTU0YTRcdTU0ZGRcdTU0Y2ZcdTU0ZGVcdTU1MWJcdTU0ZTdcdTU1MjBcdTU0ZmRcdTU1MTRcdTU0ZjNcdTU1MjJcdTU1MjNcdTU1MGZcdTU1MTFcdTU1MjdcdTU1MmFcdTU1NjdcdTU1OGZcdTU1YjVcdTU1''@;'; + put 'put ''NDlcdTU1NmRcdTU1NDFcdTU1NTVcdTU1M2ZcdTU1NTBcdTU1M2NcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIzXVtFXV09NTcwODgrRSxMWzU3MDg4K0VdPUJbMjIzXVtFXSk7Zm9yKEJb''@;'; + put 'put ''MjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MGMyXHU5MGMzXHU5MGM2XHU5MGM4XHU5MGM5XHU5MGNiXHU5MGNjXHU5MGNkXHU5MGQyXHU5MGQ0XHU5MGQ1XHU5MGQ2XHU5MGQ4XHU5MGQ5XHU5MGRhXHU5MGRlXHU5MGRmXHU5''@;'; + put 'put ''MGUwXHU5MGUzXHU5MGU0XHU5MGU1XHU5MGU5XHU5MGVhXHU5MGVjXHU5MGVlXHU5MGYwXHU5MGYxXHU5MGYyXHU5MGYzXHU5MGY1XHU5MGY2XHU5MGY3XHU5MGY5XHU5MGZhXHU5MGZiXHU5MGZjXHU5MGZmXHU5MTAwXHU5MTAxXHU5MTAzXHU5MTA1XHU5MTA2XHU5MTA3XHU5MTA4XHU5MTA5''@;'; + put 'put ''XHU5MTBhXHU5MTBiXHU5MTBjXHU5MTBkXHU5MTBlXHU5MTBmXHU5MTEwXHU5MTExXHU5MTEyXHU5MTEzXHU5MTE0XHU5MTE1XHU5MTE2XHU5MTE3XHU5MTE4XHU5MTFhXHU5MTFiXHU5MTFjXHVmZmZkXHU5MTFkXHU5MTFmXHU5MTIwXHU5MTIxXHU5MTI0XHU5MTI1XHU5MTI2XHU5MTI3XHU5''@;'; + put 'put ''MTI4XHU5MTI5XHU5MTJhXHU5MTJiXHU5MTJjXHU5MTJkXHU5MTJlXHU5MTMwXHU5MTMyXHU5MTMzXHU5MTM0XHU5MTM1XHU5MTM2XHU5MTM3XHU5MTM4XHU5MTNhXHU5MTNiXHU5MTNjXHU5MTNkXHU5MTNlXHU5MTNmXHU5MTQwXHU5MTQxXHU5MTQyXHU5MTQ0XHU1NTM3XHU1NTU2XHU1NTc1''@;'; + put 'put ''XHU1NTc2XHU1NTc3XHU1NTMzXHU1NTMwXHU1NTVjXHU1NThiXHU1NWQyXHU1NTgzXHU1NWIxXHU1NWI5XHU1NTg4XHU1NTgxXHU1NTlmXHU1NTdlXHU1NWQ2XHU1NTkxXHU1NTdiXHU1NWRmXHU1NWJkXHU1NWJlXHU1NTk0XHU1NTk5XHU1NWVhXHU1NWY3XHU1NWM5XHU1NjFmXHU1NWQxXHU1''@;'; + put 'put ''NWViXHU1NWVjXHU1NWQ0XHU1NWU2XHU1NWRkXHU1NWM0XHU1NWVmXHU1NWU1XHU1NWYyXHU1NWYzXHU1NWNjXHU1NWNkXHU1NWU4XHU1NWY1XHU1NWU0XHU4Zjk0XHU1NjFlXHU1NjA4XHU1NjBjXHU1NjAxXHU1NjI0XHU1NjIzXHU1NWZlXHU1NjAwXHU1NjI3XHU1NjJkXHU1NjU4XHU1NjM5''@;'; + put 'put ''XHU1NjU3XHU1NjJjXHU1NjRkXHU1NjYyXHU1NjU5XHU1NjVjXHU1NjRjXHU1NjU0XHU1Njg2XHU1NjY0XHU1NjcxXHU1NjZiXHU1NjdiXHU1NjdjXHU1Njg1XHU1NjkzXHU1NmFmXHU1NmQ0XHU1NmQ3XHU1NmRkXHU1NmUxXHU1NmY1XHU1NmViXHU1NmY5XHU1NmZmXHU1NzA0XHU1NzBhXHU1''@;'; + put 'put ''NzA5XHU1NzFjXHU1ZTBmXHU1ZTE5XHU1ZTE0XHU1ZTExXHU1ZTMxXHU1ZTNiXHU1ZTNjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNF1bRV1dPTU3MzQ0K0UsTFs1NzM0NCtFXT1CWzIy''@;'; + put 'put ''NF1bRV0pO2ZvcihCWzIyNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTE0NVx1OTE0N1x1OTE0OFx1OTE1MVx1OTE1M1x1OTE1NFx1OTE1NVx1OTE1Nlx1OTE1OFx1OTE1OVx1OTE1Ylx1OTE1Y1x1OTE1Zlx1OTE2MFx1OTE2Nlx1''@;'; + put 'put ''OTE2N1x1OTE2OFx1OTE2Ylx1OTE2ZFx1OTE3M1x1OTE3YVx1OTE3Ylx1OTE3Y1x1OTE4MFx1OTE4MVx1OTE4Mlx1OTE4M1x1OTE4NFx1OTE4Nlx1OTE4OFx1OTE4YVx1OTE4ZVx1OTE4Zlx1OTE5M1x1OTE5NFx1OTE5NVx1OTE5Nlx1OTE5N1x1OTE5OFx1OTE5OVx1OTE5Y1x1OTE5ZFx1OTE5''@;'; + put 'put ''ZVx1OTE5Zlx1OTFhMFx1OTFhMVx1OTFhNFx1OTFhNVx1OTFhNlx1OTFhN1x1OTFhOFx1OTFhOVx1OTFhYlx1OTFhY1x1OTFiMFx1OTFiMVx1OTFiMlx1OTFiM1x1OTFiNlx1OTFiN1x1OTFiOFx1OTFiOVx1OTFiYlx1ZmZmZFx1OTFiY1x1OTFiZFx1OTFiZVx1OTFiZlx1OTFjMFx1OTFjMVx1''@;'; + put 'put ''OTFjMlx1OTFjM1x1OTFjNFx1OTFjNVx1OTFjNlx1OTFjOFx1OTFjYlx1OTFkMFx1OTFkMlx1OTFkM1x1OTFkNFx1OTFkNVx1OTFkNlx1OTFkN1x1OTFkOFx1OTFkOVx1OTFkYVx1OTFkYlx1OTFkZFx1OTFkZVx1OTFkZlx1OTFlMFx1OTFlMVx1OTFlMlx1OTFlM1x1OTFlNFx1OTFlNVx1NWUz''@;'; + put 'put ''N1x1NWU0NFx1NWU1NFx1NWU1Ylx1NWU1ZVx1NWU2MVx1NWM4Y1x1NWM3YVx1NWM4ZFx1NWM5MFx1NWM5Nlx1NWM4OFx1NWM5OFx1NWM5OVx1NWM5MVx1NWM5YVx1NWM5Y1x1NWNiNVx1NWNhMlx1NWNiZFx1NWNhY1x1NWNhYlx1NWNiMVx1NWNhM1x1NWNjMVx1NWNiN1x1NWNjNFx1NWNkMlx1''@;'; + put 'put ''NWNlNFx1NWNjYlx1NWNlNVx1NWQwMlx1NWQwM1x1NWQyN1x1NWQyNlx1NWQyZVx1NWQyNFx1NWQxZVx1NWQwNlx1NWQxYlx1NWQ1OFx1NWQzZVx1NWQzNFx1NWQzZFx1NWQ2Y1x1NWQ1Ylx1NWQ2Zlx1NWQ1ZFx1NWQ2Ylx1NWQ0Ylx1NWQ0YVx1NWQ2OVx1NWQ3NFx1NWQ4Mlx1NWQ5OVx1NWQ5''@;'; + put 'put ''ZFx1OGM3M1x1NWRiN1x1NWRjNVx1NWY3M1x1NWY3N1x1NWY4Mlx1NWY4N1x1NWY4OVx1NWY4Y1x1NWY5NVx1NWY5OVx1NWY5Y1x1NWZhOFx1NWZhZFx1NWZiNVx1NWZiY1x1ODg2Mlx1NWY2MVx1NzJhZFx1NzJiMFx1NzJiNFx1NzJiN1x1NzJiOFx1NzJjM1x1NzJjMVx1NzJjZVx1NzJjZFx1''@;'; + put 'put ''NzJkMlx1NzJlOFx1NzJlZlx1NzJlOVx1NzJmMlx1NzJmNFx1NzJmN1x1NzMwMVx1NzJmM1x1NzMwM1x1NzJmYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjVdW0VdXT01NzYwMCtFLExb''@;'; + put 'put ''NTc2MDArRV09QlsyMjVdW0VdKTtmb3IoQlsyMjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkxZTZcdTkxZTdcdTkxZThcdTkxZTlcdTkxZWFcdTkxZWJcdTkxZWNcdTkxZWRcdTkxZWVcdTkxZWZcdTkxZjBcdTkxZjFcdTkxZjJc''@;'; + put 'put ''dTkxZjNcdTkxZjRcdTkxZjVcdTkxZjZcdTkxZjdcdTkxZjhcdTkxZjlcdTkxZmFcdTkxZmJcdTkxZmNcdTkxZmRcdTkxZmVcdTkxZmZcdTkyMDBcdTkyMDFcdTkyMDJcdTkyMDNcdTkyMDRcdTkyMDVcdTkyMDZcdTkyMDdcdTkyMDhcdTkyMDlcdTkyMGFcdTkyMGJcdTkyMGNcdTkyMGRcdTky''@;'; + put 'put ''MGVcdTkyMGZcdTkyMTBcdTkyMTFcdTkyMTJcdTkyMTNcdTkyMTRcdTkyMTVcdTkyMTZcdTkyMTdcdTkyMThcdTkyMTlcdTkyMWFcdTkyMWJcdTkyMWNcdTkyMWRcdTkyMWVcdTkyMWZcdTkyMjBcdTkyMjFcdTkyMjJcdTkyMjNcdTkyMjRcdWZmZmRcdTkyMjVcdTkyMjZcdTkyMjdcdTkyMjhc''@;'; + put 'put ''dTkyMjlcdTkyMmFcdTkyMmJcdTkyMmNcdTkyMmRcdTkyMmVcdTkyMmZcdTkyMzBcdTkyMzFcdTkyMzJcdTkyMzNcdTkyMzRcdTkyMzVcdTkyMzZcdTkyMzdcdTkyMzhcdTkyMzlcdTkyM2FcdTkyM2JcdTkyM2NcdTkyM2RcdTkyM2VcdTkyM2ZcdTkyNDBcdTkyNDFcdTkyNDJcdTkyNDNcdTky''@;'; + put 'put ''NDRcdTkyNDVcdTcyZmJcdTczMTdcdTczMTNcdTczMjFcdTczMGFcdTczMWVcdTczMWRcdTczMTVcdTczMjJcdTczMzlcdTczMjVcdTczMmNcdTczMzhcdTczMzFcdTczNTBcdTczNGRcdTczNTdcdTczNjBcdTczNmNcdTczNmZcdTczN2VcdTgyMWJcdTU5MjVcdTk4ZTdcdTU5MjRcdTU5MDJc''@;'; + put 'put ''dTk5NjNcdTk5NjdcdTk5NjhcdTk5NjlcdTk5NmFcdTk5NmJcdTk5NmNcdTk5NzRcdTk5NzdcdTk5N2RcdTk5ODBcdTk5ODRcdTk5ODdcdTk5OGFcdTk5OGRcdTk5OTBcdTk5OTFcdTk5OTNcdTk5OTRcdTk5OTVcdTVlODBcdTVlOTFcdTVlOGJcdTVlOTZcdTVlYTVcdTVlYTBcdTVlYjlcdTVl''@;'; + put 'put ''YjVcdTVlYmVcdTVlYjNcdThkNTNcdTVlZDJcdTVlZDFcdTVlZGJcdTVlZThcdTVlZWFcdTgxYmFcdTVmYzRcdTVmYzlcdTVmZDZcdTVmY2ZcdTYwMDNcdTVmZWVcdTYwMDRcdTVmZTFcdTVmZTRcdTVmZmVcdTYwMDVcdTYwMDZcdTVmZWFcdTVmZWRcdTVmZjhcdTYwMTlcdTYwMzVcdTYwMjZc''@;'; + put 'put ''dTYwMWJcdTYwMGZcdTYwMGRcdTYwMjlcdTYwMmJcdTYwMGFcdTYwM2ZcdTYwMjFcdTYwNzhcdTYwNzlcdTYwN2JcdTYwN2FcdTYwNDJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI2XVtF''@;'; + put 'put ''XV09NTc4NTYrRSxMWzU3ODU2K0VdPUJbMjI2XVtFXSk7Zm9yKEJbMjI3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MjQ2XHU5MjQ3XHU5MjQ4XHU5MjQ5XHU5MjRhXHU5MjRiXHU5MjRjXHU5MjRkXHU5MjRlXHU5MjRmXHU5MjUw''@;'; + put 'put ''XHU5MjUxXHU5MjUyXHU5MjUzXHU5MjU0XHU5MjU1XHU5MjU2XHU5MjU3XHU5MjU4XHU5MjU5XHU5MjVhXHU5MjViXHU5MjVjXHU5MjVkXHU5MjVlXHU5MjVmXHU5MjYwXHU5MjYxXHU5MjYyXHU5MjYzXHU5MjY0XHU5MjY1XHU5MjY2XHU5MjY3XHU5MjY4XHU5MjY5XHU5MjZhXHU5MjZiXHU5''@;'; + put 'put ''MjZjXHU5MjZkXHU5MjZlXHU5MjZmXHU5MjcwXHU5MjcxXHU5MjcyXHU5MjczXHU5Mjc1XHU5Mjc2XHU5Mjc3XHU5Mjc4XHU5Mjc5XHU5MjdhXHU5MjdiXHU5MjdjXHU5MjdkXHU5MjdlXHU5MjdmXHU5MjgwXHU5MjgxXHU5MjgyXHU5MjgzXHU5Mjg0XHU5Mjg1XHVmZmZkXHU5Mjg2XHU5Mjg3''@;'; + put 'put ''XHU5Mjg4XHU5Mjg5XHU5MjhhXHU5MjhiXHU5MjhjXHU5MjhkXHU5MjhmXHU5MjkwXHU5MjkxXHU5MjkyXHU5MjkzXHU5Mjk0XHU5Mjk1XHU5Mjk2XHU5Mjk3XHU5Mjk4XHU5Mjk5XHU5MjlhXHU5MjliXHU5MjljXHU5MjlkXHU5MjllXHU5MjlmXHU5MmEwXHU5MmExXHU5MmEyXHU5MmEzXHU5''@;'; + put 'put ''MmE0XHU5MmE1XHU5MmE2XHU5MmE3XHU2MDZhXHU2MDdkXHU2MDk2XHU2MDlhXHU2MGFkXHU2MDlkXHU2MDgzXHU2MDkyXHU2MDhjXHU2MDliXHU2MGVjXHU2MGJiXHU2MGIxXHU2MGRkXHU2MGQ4XHU2MGM2XHU2MGRhXHU2MGI0XHU2MTIwXHU2MTI2XHU2MTE1XHU2MTIzXHU2MGY0XHU2MTAw''@;'; + put 'put ''XHU2MTBlXHU2MTJiXHU2MTRhXHU2MTc1XHU2MWFjXHU2MTk0XHU2MWE3XHU2MWI3XHU2MWQ0XHU2MWY1XHU1ZmRkXHU5NmIzXHU5NWU5XHU5NWViXHU5NWYxXHU5NWYzXHU5NWY1XHU5NWY2XHU5NWZjXHU5NWZlXHU5NjAzXHU5NjA0XHU5NjA2XHU5NjA4XHU5NjBhXHU5NjBiXHU5NjBjXHU5''@;'; + put 'put ''NjBkXHU5NjBmXHU5NjEyXHU5NjE1XHU5NjE2XHU5NjE3XHU5NjE5XHU5NjFhXHU0ZTJjXHU3MjNmXHU2MjE1XHU2YzM1XHU2YzU0XHU2YzVjXHU2YzRhXHU2Y2EzXHU2Yzg1XHU2YzkwXHU2Yzk0XHU2YzhjXHU2YzY4XHU2YzY5XHU2Yzc0XHU2Yzc2XHU2Yzg2XHU2Y2E5XHU2Y2QwXHU2Y2Q0''@;'; + put 'put ''XHU2Y2FkXHU2Y2Y3XHU2Y2Y4XHU2Y2YxXHU2Y2Q3XHU2Y2IyXHU2Y2UwXHU2Y2Q2XHU2Y2ZhXHU2Y2ViXHU2Y2VlXHU2Y2IxXHU2Y2QzXHU2Y2VmXHU2Y2ZlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjddW0VdLmNoYXJDb2RlQXQoMCkm''@;'; + put 'put ''JihtZVtCWzIyN11bRV1dPTU4MTEyK0UsTFs1ODExMitFXT1CWzIyN11bRV0pO2ZvcihCWzIyOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTJhOFx1OTJhOVx1OTJhYVx1OTJhYlx1OTJhY1x1OTJhZFx1OTJhZlx1OTJiMFx1OTJi''@;'; + put 'put ''MVx1OTJiMlx1OTJiM1x1OTJiNFx1OTJiNVx1OTJiNlx1OTJiN1x1OTJiOFx1OTJiOVx1OTJiYVx1OTJiYlx1OTJiY1x1OTJiZFx1OTJiZVx1OTJiZlx1OTJjMFx1OTJjMVx1OTJjMlx1OTJjM1x1OTJjNFx1OTJjNVx1OTJjNlx1OTJjN1x1OTJjOVx1OTJjYVx1OTJjYlx1OTJjY1x1OTJjZFx1''@;'; + put 'put ''OTJjZVx1OTJjZlx1OTJkMFx1OTJkMVx1OTJkMlx1OTJkM1x1OTJkNFx1OTJkNVx1OTJkNlx1OTJkN1x1OTJkOFx1OTJkOVx1OTJkYVx1OTJkYlx1OTJkY1x1OTJkZFx1OTJkZVx1OTJkZlx1OTJlMFx1OTJlMVx1OTJlMlx1OTJlM1x1OTJlNFx1OTJlNVx1OTJlNlx1OTJlN1x1OTJlOFx1ZmZm''@;'; + put 'put ''ZFx1OTJlOVx1OTJlYVx1OTJlYlx1OTJlY1x1OTJlZFx1OTJlZVx1OTJlZlx1OTJmMFx1OTJmMVx1OTJmMlx1OTJmM1x1OTJmNFx1OTJmNVx1OTJmNlx1OTJmN1x1OTJmOFx1OTJmOVx1OTJmYVx1OTJmYlx1OTJmY1x1OTJmZFx1OTJmZVx1OTJmZlx1OTMwMFx1OTMwMVx1OTMwMlx1OTMwM1x1''@;'; + put 'put ''OTMwNFx1OTMwNVx1OTMwNlx1OTMwN1x1OTMwOFx1OTMwOVx1NmQzOVx1NmQyN1x1NmQwY1x1NmQ0M1x1NmQ0OFx1NmQwN1x1NmQwNFx1NmQxOVx1NmQwZVx1NmQyYlx1NmQ0ZFx1NmQyZVx1NmQzNVx1NmQxYVx1NmQ0Zlx1NmQ1Mlx1NmQ1NFx1NmQzM1x1NmQ5MVx1NmQ2Zlx1NmQ5ZVx1NmRh''@;'; + put 'put ''MFx1NmQ1ZVx1NmQ5M1x1NmQ5NFx1NmQ1Y1x1NmQ2MFx1NmQ3Y1x1NmQ2M1x1NmUxYVx1NmRjN1x1NmRjNVx1NmRkZVx1NmUwZVx1NmRiZlx1NmRlMFx1NmUxMVx1NmRlNlx1NmRkZFx1NmRkOVx1NmUxNlx1NmRhYlx1NmUwY1x1NmRhZVx1NmUyYlx1NmU2ZVx1NmU0ZVx1NmU2Ylx1NmViMlx1''@;'; + put 'put ''NmU1Zlx1NmU4Nlx1NmU1M1x1NmU1NFx1NmUzMlx1NmUyNVx1NmU0NFx1NmVkZlx1NmViMVx1NmU5OFx1NmVlMFx1NmYyZFx1NmVlMlx1NmVhNVx1NmVhN1x1NmViZFx1NmViYlx1NmViN1x1NmVkN1x1NmViNFx1NmVjZlx1NmU4Zlx1NmVjMlx1NmU5Zlx1NmY2Mlx1NmY0Nlx1NmY0N1x1NmYy''@;'; + put 'put ''NFx1NmYxNVx1NmVmOVx1NmYyZlx1NmYzNlx1NmY0Ylx1NmY3NFx1NmYyYVx1NmYwOVx1NmYyOVx1NmY4OVx1NmY4ZFx1NmY4Y1x1NmY3OFx1NmY3Mlx1NmY3Y1x1NmY3YVx1NmZkMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI4XVtFXS5j''@;'; + put 'put ''aGFyQ29kZUF0KDApJiYobWVbQlsyMjhdW0VdXT01ODM2OCtFLExbNTgzNjgrRV09QlsyMjhdW0VdKTtmb3IoQlsyMjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzMGFcdTkzMGJcdTkzMGNcdTkzMGRcdTkzMGVcdTkzMGZcdTkz''@;'; + put 'put ''MTBcdTkzMTFcdTkzMTJcdTkzMTNcdTkzMTRcdTkzMTVcdTkzMTZcdTkzMTdcdTkzMThcdTkzMTlcdTkzMWFcdTkzMWJcdTkzMWNcdTkzMWRcdTkzMWVcdTkzMWZcdTkzMjBcdTkzMjFcdTkzMjJcdTkzMjNcdTkzMjRcdTkzMjVcdTkzMjZcdTkzMjdcdTkzMjhcdTkzMjlcdTkzMmFcdTkzMmJc''@;'; + put 'put ''dTkzMmNcdTkzMmRcdTkzMmVcdTkzMmZcdTkzMzBcdTkzMzFcdTkzMzJcdTkzMzNcdTkzMzRcdTkzMzVcdTkzMzZcdTkzMzdcdTkzMzhcdTkzMzlcdTkzM2FcdTkzM2JcdTkzM2NcdTkzM2RcdTkzM2ZcdTkzNDBcdTkzNDFcdTkzNDJcdTkzNDNcdTkzNDRcdTkzNDVcdTkzNDZcdTkzNDdcdTkz''@;'; + put 'put ''NDhcdTkzNDlcdWZmZmRcdTkzNGFcdTkzNGJcdTkzNGNcdTkzNGRcdTkzNGVcdTkzNGZcdTkzNTBcdTkzNTFcdTkzNTJcdTkzNTNcdTkzNTRcdTkzNTVcdTkzNTZcdTkzNTdcdTkzNThcdTkzNTlcdTkzNWFcdTkzNWJcdTkzNWNcdTkzNWRcdTkzNWVcdTkzNWZcdTkzNjBcdTkzNjFcdTkzNjJc''@;'; + put 'put ''dTkzNjNcdTkzNjRcdTkzNjVcdTkzNjZcdTkzNjdcdTkzNjhcdTkzNjlcdTkzNmJcdTZmYzlcdTZmYTdcdTZmYjlcdTZmYjZcdTZmYzJcdTZmZTFcdTZmZWVcdTZmZGVcdTZmZTBcdTZmZWZcdTcwMWFcdTcwMjNcdTcwMWJcdTcwMzlcdTcwMzVcdTcwNGZcdTcwNWVcdTViODBcdTViODRcdTVi''@;'; + put 'put ''OTVcdTViOTNcdTViYTVcdTViYjhcdTc1MmZcdTlhOWVcdTY0MzRcdTViZTRcdTViZWVcdTg5MzBcdTViZjBcdThlNDdcdThiMDdcdThmYjZcdThmZDNcdThmZDVcdThmZTVcdThmZWVcdThmZTRcdThmZTlcdThmZTZcdThmZjNcdThmZThcdTkwMDVcdTkwMDRcdTkwMGJcdTkwMjZcdTkwMTFc''@;'; + put 'put ''dTkwMGRcdTkwMTZcdTkwMjFcdTkwMzVcdTkwMzZcdTkwMmRcdTkwMmZcdTkwNDRcdTkwNTFcdTkwNTJcdTkwNTBcdTkwNjhcdTkwNThcdTkwNjJcdTkwNWJcdTY2YjlcdTkwNzRcdTkwN2RcdTkwODJcdTkwODhcdTkwODNcdTkwOGJcdTVmNTBcdTVmNTdcdTVmNTZcdTVmNThcdTVjM2JcdTU0''@;'; + put 'put ''YWJcdTVjNTBcdTVjNTlcdTViNzFcdTVjNjNcdTVjNjZcdTdmYmNcdTVmMmFcdTVmMjlcdTVmMmRcdTgyNzRcdTVmM2NcdTliM2JcdTVjNmVcdTU5ODFcdTU5ODNcdTU5OGRcdTU5YTlcdTU5YWFcdTU5YTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjldLmxlbmd0aDsrK0UpNjU1MzMh''@;'; + put 'put ''PT1CWzIyOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI5XVtFXV09NTg2MjQrRSxMWzU4NjI0K0VdPUJbMjI5XVtFXSk7Zm9yKEJbMjMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MzZjXHU5MzZkXHU5MzZlXHU5MzZmXHU5''@;'; + put 'put ''MzcwXHU5MzcxXHU5MzcyXHU5MzczXHU5Mzc0XHU5Mzc1XHU5Mzc2XHU5Mzc3XHU5Mzc4XHU5Mzc5XHU5MzdhXHU5MzdiXHU5MzdjXHU5MzdkXHU5MzdlXHU5MzdmXHU5MzgwXHU5MzgxXHU5MzgyXHU5MzgzXHU5Mzg0XHU5Mzg1XHU5Mzg2XHU5Mzg3XHU5Mzg4XHU5Mzg5XHU5MzhhXHU5Mzhi''@;'; + put 'put ''XHU5MzhjXHU5MzhkXHU5MzhlXHU5MzkwXHU5MzkxXHU5MzkyXHU5MzkzXHU5Mzk0XHU5Mzk1XHU5Mzk2XHU5Mzk3XHU5Mzk4XHU5Mzk5XHU5MzlhXHU5MzliXHU5MzljXHU5MzlkXHU5MzllXHU5MzlmXHU5M2EwXHU5M2ExXHU5M2EyXHU5M2EzXHU5M2E0XHU5M2E1XHU5M2E2XHU5M2E3XHU5''@;'; + put 'put ''M2E4XHU5M2E5XHU5M2FhXHU5M2FiXHVmZmZkXHU5M2FjXHU5M2FkXHU5M2FlXHU5M2FmXHU5M2IwXHU5M2IxXHU5M2IyXHU5M2IzXHU5M2I0XHU5M2I1XHU5M2I2XHU5M2I3XHU5M2I4XHU5M2I5XHU5M2JhXHU5M2JiXHU5M2JjXHU5M2JkXHU5M2JlXHU5M2JmXHU5M2MwXHU5M2MxXHU5M2My''@;'; + put 'put ''XHU5M2MzXHU5M2M0XHU5M2M1XHU5M2M2XHU5M2M3XHU5M2M4XHU5M2M5XHU5M2NiXHU5M2NjXHU5M2NkXHU1OTk3XHU1OWNhXHU1OWFiXHU1OTllXHU1OWE0XHU1OWQyXHU1OWIyXHU1OWFmXHU1OWQ3XHU1OWJlXHU1YTA1XHU1YTA2XHU1OWRkXHU1YTA4XHU1OWUzXHU1OWQ4XHU1OWY5XHU1''@;'; + put 'put ''YTBjXHU1YTA5XHU1YTMyXHU1YTM0XHU1YTExXHU1YTIzXHU1YTEzXHU1YTQwXHU1YTY3XHU1YTRhXHU1YTU1XHU1YTNjXHU1YTYyXHU1YTc1XHU4MGVjXHU1YWFhXHU1YTliXHU1YTc3XHU1YTdhXHU1YWJlXHU1YWViXHU1YWIyXHU1YWQyXHU1YWQ0XHU1YWI4XHU1YWUwXHU1YWUzXHU1YWYx''@;'; + put 'put ''XHU1YWQ2XHU1YWU2XHU1YWQ4XHU1YWRjXHU1YjA5XHU1YjE3XHU1YjE2XHU1YjMyXHU1YjM3XHU1YjQwXHU1YzE1XHU1YzFjXHU1YjVhXHU1YjY1XHU1YjczXHU1YjUxXHU1YjUzXHU1YjYyXHU5YTc1XHU5YTc3XHU5YTc4XHU5YTdhXHU5YTdmXHU5YTdkXHU5YTgwXHU5YTgxXHU5YTg1XHU5''@;'; + put 'put ''YTg4XHU5YThhXHU5YTkwXHU5YTkyXHU5YTkzXHU5YTk2XHU5YTk4XHU5YTliXHU5YTljXHU5YTlkXHU5YTlmXHU5YWEwXHU5YWEyXHU5YWEzXHU5YWE1XHU5YWE3XHU3ZTlmXHU3ZWExXHU3ZWEzXHU3ZWE1XHU3ZWE4XHU3ZWE5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMwXS5sZW5n''@;'; + put 'put ''dGg7KytFKTY1NTMzIT09QlsyMzBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzMF1bRV1dPTU4ODgwK0UsTFs1ODg4MCtFXT1CWzIzMF1bRV0pO2ZvcihCWzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTNjZVx1OTNjZlx1''@;'; + put 'put ''OTNkMFx1OTNkMVx1OTNkMlx1OTNkM1x1OTNkNFx1OTNkNVx1OTNkN1x1OTNkOFx1OTNkOVx1OTNkYVx1OTNkYlx1OTNkY1x1OTNkZFx1OTNkZVx1OTNkZlx1OTNlMFx1OTNlMVx1OTNlMlx1OTNlM1x1OTNlNFx1OTNlNVx1OTNlNlx1OTNlN1x1OTNlOFx1OTNlOVx1OTNlYVx1OTNlYlx1OTNl''@;'; + put 'put ''Y1x1OTNlZFx1OTNlZVx1OTNlZlx1OTNmMFx1OTNmMVx1OTNmMlx1OTNmM1x1OTNmNFx1OTNmNVx1OTNmNlx1OTNmN1x1OTNmOFx1OTNmOVx1OTNmYVx1OTNmYlx1OTNmY1x1OTNmZFx1OTNmZVx1OTNmZlx1OTQwMFx1OTQwMVx1OTQwMlx1OTQwM1x1OTQwNFx1OTQwNVx1OTQwNlx1OTQwN1x1''@;'; + put 'put ''OTQwOFx1OTQwOVx1OTQwYVx1OTQwYlx1OTQwY1x1OTQwZFx1ZmZmZFx1OTQwZVx1OTQwZlx1OTQxMFx1OTQxMVx1OTQxMlx1OTQxM1x1OTQxNFx1OTQxNVx1OTQxNlx1OTQxN1x1OTQxOFx1OTQxOVx1OTQxYVx1OTQxYlx1OTQxY1x1OTQxZFx1OTQxZVx1OTQxZlx1OTQyMFx1OTQyMVx1OTQy''@;'; + put 'put ''Mlx1OTQyM1x1OTQyNFx1OTQyNVx1OTQyNlx1OTQyN1x1OTQyOFx1OTQyOVx1OTQyYVx1OTQyYlx1OTQyY1x1OTQyZFx1OTQyZVx1N2VhZFx1N2ViMFx1N2ViZVx1N2VjMFx1N2VjMVx1N2VjMlx1N2VjOVx1N2VjYlx1N2VjY1x1N2VkMFx1N2VkNFx1N2VkN1x1N2VkYlx1N2VlMFx1N2VlMVx1''@;'; + put 'put ''N2VlOFx1N2VlYlx1N2VlZVx1N2VlZlx1N2VmMVx1N2VmMlx1N2YwZFx1N2VmNlx1N2VmYVx1N2VmYlx1N2VmZVx1N2YwMVx1N2YwMlx1N2YwM1x1N2YwN1x1N2YwOFx1N2YwYlx1N2YwY1x1N2YwZlx1N2YxMVx1N2YxMlx1N2YxN1x1N2YxOVx1N2YxY1x1N2YxYlx1N2YxZlx1N2YyMVx1N2Yy''@;'; + put 'put ''Mlx1N2YyM1x1N2YyNFx1N2YyNVx1N2YyNlx1N2YyN1x1N2YyYVx1N2YyYlx1N2YyY1x1N2YyZFx1N2YyZlx1N2YzMFx1N2YzMVx1N2YzMlx1N2YzM1x1N2YzNVx1NWU3YVx1NzU3Zlx1NWRkYlx1NzUzZVx1OTA5NVx1NzM4ZVx1NzM5MVx1NzNhZVx1NzNhMlx1NzM5Zlx1NzNjZlx1NzNjMlx1''@;'; + put 'put ''NzNkMVx1NzNiN1x1NzNiM1x1NzNjMFx1NzNjOVx1NzNjOFx1NzNlNVx1NzNkOVx1OTg3Y1x1NzQwYVx1NzNlOVx1NzNlN1x1NzNkZVx1NzNiYVx1NzNmMlx1NzQwZlx1NzQyYVx1NzQ1Ylx1NzQyNlx1NzQyNVx1NzQyOFx1NzQzMFx1NzQyZVx1NzQyY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtF''@;'; + put 'put ''IT1CWzIzMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzFdW0VdXT01OTEzNitFLExbNTkxMzYrRV09QlsyMzFdW0VdKTtmb3IoQlsyMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dTk0MmZcdTk0MzBcdTk0MzFcdTk0MzJcdTk0MzNcdTk0MzRcdTk0MzVcdTk0MzZcdTk0MzdcdTk0MzhcdTk0MzlcdTk0M2FcdTk0M2JcdTk0M2NcdTk0M2RcdTk0M2ZcdTk0NDBcdTk0NDFcdTk0NDJcdTk0NDNcdTk0NDRcdTk0NDVcdTk0NDZcdTk0NDdcdTk0NDhcdTk0NDlcdTk0NGFcdTk0''@;'; + put 'put ''NGJcdTk0NGNcdTk0NGRcdTk0NGVcdTk0NGZcdTk0NTBcdTk0NTFcdTk0NTJcdTk0NTNcdTk0NTRcdTk0NTVcdTk0NTZcdTk0NTdcdTk0NThcdTk0NTlcdTk0NWFcdTk0NWJcdTk0NWNcdTk0NWRcdTk0NWVcdTk0NWZcdTk0NjBcdTk0NjFcdTk0NjJcdTk0NjNcdTk0NjRcdTk0NjVcdTk0NjZc''@;'; + put 'put ''dTk0NjdcdTk0NjhcdTk0NjlcdTk0NmFcdTk0NmNcdTk0NmRcdTk0NmVcdTk0NmZcdWZmZmRcdTk0NzBcdTk0NzFcdTk0NzJcdTk0NzNcdTk0NzRcdTk0NzVcdTk0NzZcdTk0NzdcdTk0NzhcdTk0NzlcdTk0N2FcdTk0N2JcdTk0N2NcdTk0N2RcdTk0N2VcdTk0N2ZcdTk0ODBcdTk0ODFcdTk0''@;'; + put 'put ''ODJcdTk0ODNcdTk0ODRcdTk0OTFcdTk0OTZcdTk0OThcdTk0YzdcdTk0Y2ZcdTk0ZDNcdTk0ZDRcdTk0ZGFcdTk0ZTZcdTk0ZmJcdTk1MWNcdTk1MjBcdTc0MWJcdTc0MWFcdTc0NDFcdTc0NWNcdTc0NTdcdTc0NTVcdTc0NTlcdTc0NzdcdTc0NmRcdTc0N2VcdTc0OWNcdTc0OGVcdTc0ODBc''@;'; + put 'put ''dTc0ODFcdTc0ODdcdTc0OGJcdTc0OWVcdTc0YThcdTc0YTlcdTc0OTBcdTc0YTdcdTc0ZDJcdTc0YmFcdTk3ZWFcdTk3ZWJcdTk3ZWNcdTY3NGNcdTY3NTNcdTY3NWVcdTY3NDhcdTY3NjlcdTY3YTVcdTY3ODdcdTY3NmFcdTY3NzNcdTY3OThcdTY3YTdcdTY3NzVcdTY3YThcdTY3OWVcdTY3''@;'; + put 'put ''YWRcdTY3OGJcdTY3NzdcdTY3N2NcdTY3ZjBcdTY4MDlcdTY3ZDhcdTY4MGFcdTY3ZTlcdTY3YjBcdTY4MGNcdTY3ZDlcdTY3YjVcdTY3ZGFcdTY3YjNcdTY3ZGRcdTY4MDBcdTY3YzNcdTY3YjhcdTY3ZTJcdTY4MGVcdTY3YzFcdTY3ZmRcdTY4MzJcdTY4MzNcdTY4NjBcdTY4NjFcdTY4NGVc''@;'; + put 'put ''dTY4NjJcdTY4NDRcdTY4NjRcdTY4ODNcdTY4MWRcdTY4NTVcdTY4NjZcdTY4NDFcdTY4NjdcdTY4NDBcdTY4M2VcdTY4NGFcdTY4NDlcdTY4MjlcdTY4YjVcdTY4OGZcdTY4NzRcdTY4NzdcdTY4OTNcdTY4NmJcdTY4YzJcdTY5NmVcdTY4ZmNcdTY5MWZcdTY5MjBcdTY4ZjlcdWZmZmQiLnNw''@;'; + put 'put ''bGl0KCIiKSxFPTA7RSE9QlsyMzJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMyXVtFXV09NTkzOTIrRSxMWzU5MzkyK0VdPUJbMjMyXVtFXSk7Zm9yKEJbMjMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHU5NTI3XHU5NTMzXHU5NTNkXHU5NTQzXHU5NTQ4XHU5NTRiXHU5NTU1XHU5NTVhXHU5NTYwXHU5NTZlXHU5NTc0XHU5NTc1XHU5NTc3XHU5NTc4XHU5NTc5XHU5NTdhXHU5NTdiXHU5NTdjXHU5NTdkXHU5NTdlXHU5NTgwXHU5NTgxXHU5NTgyXHU5NTgzXHU5NTg0XHU5''@;'; + put 'put ''NTg1XHU5NTg2XHU5NTg3XHU5NTg4XHU5NTg5XHU5NThhXHU5NThiXHU5NThjXHU5NThkXHU5NThlXHU5NThmXHU5NTkwXHU5NTkxXHU5NTkyXHU5NTkzXHU5NTk0XHU5NTk1XHU5NTk2XHU5NTk3XHU5NTk4XHU5NTk5XHU5NTlhXHU5NTliXHU5NTljXHU5NTlkXHU5NTllXHU5NTlmXHU5NWEw''@;'; + put 'put ''XHU5NWExXHU5NWEyXHU5NWEzXHU5NWE0XHU5NWE1XHU5NWE2XHU5NWE3XHU5NWE4XHU5NWE5XHU5NWFhXHVmZmZkXHU5NWFiXHU5NWFjXHU5NWFkXHU5NWFlXHU5NWFmXHU5NWIwXHU5NWIxXHU5NWIyXHU5NWIzXHU5NWI0XHU5NWI1XHU5NWI2XHU5NWI3XHU5NWI4XHU5NWI5XHU5NWJhXHU5''@;'; + put 'put ''NWJiXHU5NWJjXHU5NWJkXHU5NWJlXHU5NWJmXHU5NWMwXHU5NWMxXHU5NWMyXHU5NWMzXHU5NWM0XHU5NWM1XHU5NWM2XHU5NWM3XHU5NWM4XHU5NWM5XHU5NWNhXHU5NWNiXHU2OTI0XHU2OGYwXHU2OTBiXHU2OTAxXHU2OTU3XHU2OGUzXHU2OTEwXHU2OTcxXHU2OTM5XHU2OTYwXHU2OTQy''@;'; + put 'put ''XHU2OTVkXHU2OTg0XHU2OTZiXHU2OTgwXHU2OTk4XHU2OTc4XHU2OTM0XHU2OWNjXHU2OTg3XHU2OTg4XHU2OWNlXHU2OTg5XHU2OTY2XHU2OTYzXHU2OTc5XHU2OTliXHU2OWE3XHU2OWJiXHU2OWFiXHU2OWFkXHU2OWQ0XHU2OWIxXHU2OWMxXHU2OWNhXHU2OWRmXHU2OTk1XHU2OWUwXHU2''@;'; + put 'put ''OThkXHU2OWZmXHU2YTJmXHU2OWVkXHU2YTE3XHU2YTE4XHU2YTY1XHU2OWYyXHU2YTQ0XHU2YTNlXHU2YWEwXHU2YTUwXHU2YTViXHU2YTM1XHU2YThlXHU2YTc5XHU2YTNkXHU2YTI4XHU2YTU4XHU2YTdjXHU2YTkxXHU2YTkwXHU2YWE5XHU2YTk3XHU2YWFiXHU3MzM3XHU3MzUyXHU2Yjgx''@;'; + put 'put ''XHU2YjgyXHU2Yjg3XHU2Yjg0XHU2YjkyXHU2YjkzXHU2YjhkXHU2YjlhXHU2YjliXHU2YmExXHU2YmFhXHU4ZjZiXHU4ZjZkXHU4ZjcxXHU4ZjcyXHU4ZjczXHU4Zjc1XHU4Zjc2XHU4Zjc4XHU4Zjc3XHU4Zjc5XHU4ZjdhXHU4ZjdjXHU4ZjdlXHU4ZjgxXHU4ZjgyXHU4Zjg0XHU4Zjg3XHU4''@;'; + put 'put ''ZjhiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzM11bRV1dPTU5NjQ4K0UsTFs1OTY0OCtFXT1CWzIzM11bRV0pO2ZvcihCWzIzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTVjY1x1OTVjZFx1OTVjZVx1OTVjZlx1OTVkMFx1OTVkMVx1OTVkMlx1OTVkM1x1OTVkNFx1OTVkNVx1OTVkNlx1OTVkN1x1OTVkOFx1OTVkOVx1OTVkYVx1OTVkYlx1OTVkY1x1OTVkZFx1OTVkZVx1OTVkZlx1OTVlMFx1OTVlMVx1OTVlMlx1''@;'; + put 'put ''OTVlM1x1OTVlNFx1OTVlNVx1OTVlNlx1OTVlN1x1OTVlY1x1OTVmZlx1OTYwN1x1OTYxM1x1OTYxOFx1OTYxYlx1OTYxZVx1OTYyMFx1OTYyM1x1OTYyNFx1OTYyNVx1OTYyNlx1OTYyN1x1OTYyOFx1OTYyOVx1OTYyYlx1OTYyY1x1OTYyZFx1OTYyZlx1OTYzMFx1OTYzN1x1OTYzOFx1OTYz''@;'; + put 'put ''OVx1OTYzYVx1OTYzZVx1OTY0MVx1OTY0M1x1OTY0YVx1OTY0ZVx1OTY0Zlx1OTY1MVx1OTY1Mlx1OTY1M1x1OTY1Nlx1OTY1N1x1ZmZmZFx1OTY1OFx1OTY1OVx1OTY1YVx1OTY1Y1x1OTY1ZFx1OTY1ZVx1OTY2MFx1OTY2M1x1OTY2NVx1OTY2Nlx1OTY2Ylx1OTY2ZFx1OTY2ZVx1OTY2Zlx1''@;'; + put 'put ''OTY3MFx1OTY3MVx1OTY3M1x1OTY3OFx1OTY3OVx1OTY3YVx1OTY3Ylx1OTY3Y1x1OTY3ZFx1OTY3ZVx1OTY3Zlx1OTY4MFx1OTY4MVx1OTY4Mlx1OTY4M1x1OTY4NFx1OTY4N1x1OTY4OVx1OTY4YVx1OGY4ZFx1OGY4ZVx1OGY4Zlx1OGY5OFx1OGY5YVx1OGVjZVx1NjIwYlx1NjIxN1x1NjIx''@;'; + put 'put ''Ylx1NjIxZlx1NjIyMlx1NjIyMVx1NjIyNVx1NjIyNFx1NjIyY1x1ODFlN1x1NzRlZlx1NzRmNFx1NzRmZlx1NzUwZlx1NzUxMVx1NzUxM1x1NjUzNFx1NjVlZVx1NjVlZlx1NjVmMFx1NjYwYVx1NjYxOVx1Njc3Mlx1NjYwM1x1NjYxNVx1NjYwMFx1NzA4NVx1NjZmN1x1NjYxZFx1NjYzNFx1''@;'; + put 'put ''NjYzMVx1NjYzNlx1NjYzNVx1ODAwNlx1NjY1Zlx1NjY1NFx1NjY0MVx1NjY0Zlx1NjY1Nlx1NjY2MVx1NjY1N1x1NjY3N1x1NjY4NFx1NjY4Y1x1NjZhN1x1NjY5ZFx1NjZiZVx1NjZkYlx1NjZkY1x1NjZlNlx1NjZlOVx1OGQzMlx1OGQzM1x1OGQzNlx1OGQzYlx1OGQzZFx1OGQ0MFx1OGQ0''@;'; + put 'put ''NVx1OGQ0Nlx1OGQ0OFx1OGQ0OVx1OGQ0N1x1OGQ0ZFx1OGQ1NVx1OGQ1OVx1ODljN1x1ODljYVx1ODljYlx1ODljY1x1ODljZVx1ODljZlx1ODlkMFx1ODlkMVx1NzI2ZVx1NzI5Zlx1NzI1ZFx1NzI2Nlx1NzI2Zlx1NzI3ZVx1NzI3Zlx1NzI4NFx1NzI4Ylx1NzI4ZFx1NzI4Zlx1NzI5Mlx1''@;'; + put 'put ''NjMwOFx1NjMzMlx1NjNiMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzRdW0VdXT01OTkwNCtFLExbNTk5MDQrRV09QlsyMzRdW0VdKTtmb3IoQlsyMzVdPSJcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk2OGNcdTk2OGVcdTk2OTFcdTk2OTJcdTk2OTNcdTk2OTVcdTk2OTZcdTk2OWFcdTk2OWJcdTk2OWRcdTk2OWVcdTk2OWZcdTk2YTBcdTk2YTFcdTk2YTJcdTk2YTNcdTk2YTRcdTk2YTVcdTk2YTZcdTk2YThcdTk2YTlc''@;'; + put 'put ''dTk2YWFcdTk2YWJcdTk2YWNcdTk2YWRcdTk2YWVcdTk2YWZcdTk2YjFcdTk2YjJcdTk2YjRcdTk2YjVcdTk2YjdcdTk2YjhcdTk2YmFcdTk2YmJcdTk2YmZcdTk2YzJcdTk2YzNcdTk2YzhcdTk2Y2FcdTk2Y2JcdTk2ZDBcdTk2ZDFcdTk2ZDNcdTk2ZDRcdTk2ZDZcdTk2ZDdcdTk2ZDhcdTk2''@;'; + put 'put ''ZDlcdTk2ZGFcdTk2ZGJcdTk2ZGNcdTk2ZGRcdTk2ZGVcdTk2ZGZcdTk2ZTFcdTk2ZTJcdTk2ZTNcdTk2ZTRcdTk2ZTVcdTk2ZTZcdTk2ZTdcdTk2ZWJcdWZmZmRcdTk2ZWNcdTk2ZWRcdTk2ZWVcdTk2ZjBcdTk2ZjFcdTk2ZjJcdTk2ZjRcdTk2ZjVcdTk2ZjhcdTk2ZmFcdTk2ZmJcdTk2ZmNc''@;'; + put 'put ''dTk2ZmRcdTk2ZmZcdTk3MDJcdTk3MDNcdTk3MDVcdTk3MGFcdTk3MGJcdTk3MGNcdTk3MTBcdTk3MTFcdTk3MTJcdTk3MTRcdTk3MTVcdTk3MTdcdTk3MThcdTk3MTlcdTk3MWFcdTk3MWJcdTk3MWRcdTk3MWZcdTk3MjBcdTY0M2ZcdTY0ZDhcdTgwMDRcdTZiZWFcdTZiZjNcdTZiZmRcdTZi''@;'; + put 'put ''ZjVcdTZiZjlcdTZjMDVcdTZjMDdcdTZjMDZcdTZjMGRcdTZjMTVcdTZjMThcdTZjMTlcdTZjMWFcdTZjMjFcdTZjMjlcdTZjMjRcdTZjMmFcdTZjMzJcdTY1MzVcdTY1NTVcdTY1NmJcdTcyNGRcdTcyNTJcdTcyNTZcdTcyMzBcdTg2NjJcdTUyMTZcdTgwOWZcdTgwOWNcdTgwOTNcdTgwYmNc''@;'; + put 'put ''dTY3MGFcdTgwYmRcdTgwYjFcdTgwYWJcdTgwYWRcdTgwYjRcdTgwYjdcdTgwZTdcdTgwZThcdTgwZTlcdTgwZWFcdTgwZGJcdTgwYzJcdTgwYzRcdTgwZDlcdTgwY2RcdTgwZDdcdTY3MTBcdTgwZGRcdTgwZWJcdTgwZjFcdTgwZjRcdTgwZWRcdTgxMGRcdTgxMGVcdTgwZjJcdTgwZmNcdTY3''@;'; + put 'put ''MTVcdTgxMTJcdThjNWFcdTgxMzZcdTgxMWVcdTgxMmNcdTgxMThcdTgxMzJcdTgxNDhcdTgxNGNcdTgxNTNcdTgxNzRcdTgxNTlcdTgxNWFcdTgxNzFcdTgxNjBcdTgxNjlcdTgxN2NcdTgxN2RcdTgxNmRcdTgxNjdcdTU4NGRcdTVhYjVcdTgxODhcdTgxODJcdTgxOTFcdTZlZDVcdTgxYTNc''@;'; + put 'put ''dTgxYWFcdTgxY2NcdTY3MjZcdTgxY2FcdTgxYmJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM1XVtFXV09NjAxNjArRSxMWzYwMTYwK0VdPUJbMjM1XVtFXSk7Zm9yKEJbMjM2XT0iXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NzIxXHU5NzIyXHU5NzIzXHU5NzI0XHU5NzI1XHU5NzI2XHU5NzI3XHU5NzI4XHU5NzI5XHU5NzJiXHU5NzJjXHU5NzJlXHU5NzJmXHU5NzMxXHU5NzMzXHU5NzM0XHU5NzM1XHU5NzM2XHU5NzM3''@;'; + put 'put ''XHU5NzNhXHU5NzNiXHU5NzNjXHU5NzNkXHU5NzNmXHU5NzQwXHU5NzQxXHU5NzQyXHU5NzQzXHU5NzQ0XHU5NzQ1XHU5NzQ2XHU5NzQ3XHU5NzQ4XHU5NzQ5XHU5NzRhXHU5NzRiXHU5NzRjXHU5NzRkXHU5NzRlXHU5NzRmXHU5NzUwXHU5NzUxXHU5NzU0XHU5NzU1XHU5NzU3XHU5NzU4XHU5''@;'; + put 'put ''NzVhXHU5NzVjXHU5NzVkXHU5NzVmXHU5NzYzXHU5NzY0XHU5NzY2XHU5NzY3XHU5NzY4XHU5NzZhXHU5NzZiXHU5NzZjXHU5NzZkXHU5NzZlXHU5NzZmXHU5NzcwXHU5NzcxXHVmZmZkXHU5NzcyXHU5Nzc1XHU5Nzc3XHU5Nzc4XHU5Nzc5XHU5NzdhXHU5NzdiXHU5NzdkXHU5NzdlXHU5Nzdm''@;'; + put 'put ''XHU5NzgwXHU5NzgxXHU5NzgyXHU5NzgzXHU5Nzg0XHU5Nzg2XHU5Nzg3XHU5Nzg4XHU5Nzg5XHU5NzhhXHU5NzhjXHU5NzhlXHU5NzhmXHU5NzkwXHU5NzkzXHU5Nzk1XHU5Nzk2XHU5Nzk3XHU5Nzk5XHU5NzlhXHU5NzliXHU5NzljXHU5NzlkXHU4MWMxXHU4MWE2XHU2YjI0XHU2YjM3XHU2''@;'; + put 'put ''YjM5XHU2YjQzXHU2YjQ2XHU2YjU5XHU5OGQxXHU5OGQyXHU5OGQzXHU5OGQ1XHU5OGQ5XHU5OGRhXHU2YmIzXHU1ZjQwXHU2YmMyXHU4OWYzXHU2NTkwXHU5ZjUxXHU2NTkzXHU2NWJjXHU2NWM2XHU2NWM0XHU2NWMzXHU2NWNjXHU2NWNlXHU2NWQyXHU2NWQ2XHU3MDgwXHU3MDljXHU3MDk2''@;'; + put 'put ''XHU3MDlkXHU3MGJiXHU3MGMwXHU3MGI3XHU3MGFiXHU3MGIxXHU3MGU4XHU3MGNhXHU3MTEwXHU3MTEzXHU3MTE2XHU3MTJmXHU3MTMxXHU3MTczXHU3MTVjXHU3MTY4XHU3MTQ1XHU3MTcyXHU3MTRhXHU3MTc4XHU3MTdhXHU3MTk4XHU3MWIzXHU3MWI1XHU3MWE4XHU3MWEwXHU3MWUwXHU3''@;'; + put 'put ''MWQ0XHU3MWU3XHU3MWY5XHU3MjFkXHU3MjI4XHU3MDZjXHU3MTE4XHU3MTY2XHU3MWI5XHU2MjNlXHU2MjNkXHU2MjQzXHU2MjQ4XHU2MjQ5XHU3OTNiXHU3OTQwXHU3OTQ2XHU3OTQ5XHU3OTViXHU3OTVjXHU3OTUzXHU3OTVhXHU3OTYyXHU3OTU3XHU3OTYwXHU3OTZmXHU3OTY3XHU3OTdh''@;'; + put 'put ''XHU3OTg1XHU3OThhXHU3OTlhXHU3OWE3XHU3OWIzXHU1ZmQxXHU1ZmQwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzNl1bRV1dPTYwNDE2K0UsTFs2MDQxNitFXT1CWzIzNl1bRV0pO2Zv''@;'; + put 'put ''cihCWzIzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTc5ZVx1OTc5Zlx1OTdhMVx1OTdhMlx1OTdhNFx1OTdhNVx1OTdhNlx1OTdhN1x1OTdhOFx1OTdhOVx1OTdhYVx1OTdhY1x1OTdhZVx1OTdiMFx1OTdiMVx1OTdiM1x1OTdi''@;'; + put 'put ''NVx1OTdiNlx1OTdiN1x1OTdiOFx1OTdiOVx1OTdiYVx1OTdiYlx1OTdiY1x1OTdiZFx1OTdiZVx1OTdiZlx1OTdjMFx1OTdjMVx1OTdjMlx1OTdjM1x1OTdjNFx1OTdjNVx1OTdjNlx1OTdjN1x1OTdjOFx1OTdjOVx1OTdjYVx1OTdjYlx1OTdjY1x1OTdjZFx1OTdjZVx1OTdjZlx1OTdkMFx1''@;'; + put 'put ''OTdkMVx1OTdkMlx1OTdkM1x1OTdkNFx1OTdkNVx1OTdkNlx1OTdkN1x1OTdkOFx1OTdkOVx1OTdkYVx1OTdkYlx1OTdkY1x1OTdkZFx1OTdkZVx1OTdkZlx1OTdlMFx1OTdlMVx1OTdlMlx1OTdlM1x1ZmZmZFx1OTdlNFx1OTdlNVx1OTdlOFx1OTdlZVx1OTdlZlx1OTdmMFx1OTdmMVx1OTdm''@;'; + put 'put ''Mlx1OTdmNFx1OTdmN1x1OTdmOFx1OTdmOVx1OTdmYVx1OTdmYlx1OTdmY1x1OTdmZFx1OTdmZVx1OTdmZlx1OTgwMFx1OTgwMVx1OTgwMlx1OTgwM1x1OTgwNFx1OTgwNVx1OTgwNlx1OTgwN1x1OTgwOFx1OTgwOVx1OTgwYVx1OTgwYlx1OTgwY1x1OTgwZFx1OTgwZVx1NjAzY1x1NjA1ZFx1''@;'; + put 'put ''NjA1YVx1NjA2N1x1NjA0MVx1NjA1OVx1NjA2M1x1NjBhYlx1NjEwNlx1NjEwZFx1NjE1ZFx1NjFhOVx1NjE5ZFx1NjFjYlx1NjFkMVx1NjIwNlx1ODA4MFx1ODA3Zlx1NmM5M1x1NmNmNlx1NmRmY1x1NzdmNlx1NzdmOFx1NzgwMFx1NzgwOVx1NzgxN1x1NzgxOFx1NzgxMVx1NjVhYlx1Nzgy''@;'; + put 'put ''ZFx1NzgxY1x1NzgxZFx1NzgzOVx1NzgzYVx1NzgzYlx1NzgxZlx1NzgzY1x1NzgyNVx1NzgyY1x1NzgyM1x1NzgyOVx1Nzg0ZVx1Nzg2ZFx1Nzg1Nlx1Nzg1N1x1NzgyNlx1Nzg1MFx1Nzg0N1x1Nzg0Y1x1Nzg2YVx1Nzg5Ylx1Nzg5M1x1Nzg5YVx1Nzg4N1x1Nzg5Y1x1NzhhMVx1NzhhM1x1''@;'; + put 'put ''NzhiMlx1NzhiOVx1NzhhNVx1NzhkNFx1NzhkOVx1NzhjOVx1NzhlY1x1NzhmMlx1NzkwNVx1NzhmNFx1NzkxM1x1NzkyNFx1NzkxZVx1NzkzNFx1OWY5Ylx1OWVmOVx1OWVmYlx1OWVmY1x1NzZmMVx1NzcwNFx1NzcwZFx1NzZmOVx1NzcwN1x1NzcwOFx1NzcxYVx1NzcyMlx1NzcxOVx1Nzcy''@;'; + put 'put ''ZFx1NzcyNlx1NzczNVx1NzczOFx1Nzc1MFx1Nzc1MVx1Nzc0N1x1Nzc0M1x1Nzc1YVx1Nzc2OFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzddW0VdXT02MDY3MitFLExbNjA2NzIrRV09''@;'; + put 'put ''QlsyMzddW0VdKTtmb3IoQlsyMzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk4MGZcdTk4MTBcdTk4MTFcdTk4MTJcdTk4MTNcdTk4MTRcdTk4MTVcdTk4MTZcdTk4MTdcdTk4MThcdTk4MTlcdTk4MWFcdTk4MWJcdTk4MWNcdTk4''@;'; + put 'put ''MWRcdTk4MWVcdTk4MWZcdTk4MjBcdTk4MjFcdTk4MjJcdTk4MjNcdTk4MjRcdTk4MjVcdTk4MjZcdTk4MjdcdTk4MjhcdTk4MjlcdTk4MmFcdTk4MmJcdTk4MmNcdTk4MmRcdTk4MmVcdTk4MmZcdTk4MzBcdTk4MzFcdTk4MzJcdTk4MzNcdTk4MzRcdTk4MzVcdTk4MzZcdTk4MzdcdTk4Mzhc''@;'; + put 'put ''dTk4MzlcdTk4M2FcdTk4M2JcdTk4M2NcdTk4M2RcdTk4M2VcdTk4M2ZcdTk4NDBcdTk4NDFcdTk4NDJcdTk4NDNcdTk4NDRcdTk4NDVcdTk4NDZcdTk4NDdcdTk4NDhcdTk4NDlcdTk4NGFcdTk4NGJcdTk4NGNcdTk4NGRcdWZmZmRcdTk4NGVcdTk4NGZcdTk4NTBcdTk4NTFcdTk4NTJcdTk4''@;'; + put 'put ''NTNcdTk4NTRcdTk4NTVcdTk4NTZcdTk4NTdcdTk4NThcdTk4NTlcdTk4NWFcdTk4NWJcdTk4NWNcdTk4NWRcdTk4NWVcdTk4NWZcdTk4NjBcdTk4NjFcdTk4NjJcdTk4NjNcdTk4NjRcdTk4NjVcdTk4NjZcdTk4NjdcdTk4NjhcdTk4NjlcdTk4NmFcdTk4NmJcdTk4NmNcdTk4NmRcdTk4NmVc''@;'; + put 'put ''dTc3NjJcdTc3NjVcdTc3N2ZcdTc3OGRcdTc3N2RcdTc3ODBcdTc3OGNcdTc3OTFcdTc3OWZcdTc3YTBcdTc3YjBcdTc3YjVcdTc3YmRcdTc1M2FcdTc1NDBcdTc1NGVcdTc1NGJcdTc1NDhcdTc1NWJcdTc1NzJcdTc1NzlcdTc1ODNcdTdmNThcdTdmNjFcdTdmNWZcdThhNDhcdTdmNjhcdTdm''@;'; + put 'put ''NzRcdTdmNzFcdTdmNzlcdTdmODFcdTdmN2VcdTc2Y2RcdTc2ZTVcdTg4MzJcdTk0ODVcdTk0ODZcdTk0ODdcdTk0OGJcdTk0OGFcdTk0OGNcdTk0OGRcdTk0OGZcdTk0OTBcdTk0OTRcdTk0OTdcdTk0OTVcdTk0OWFcdTk0OWJcdTk0OWNcdTk0YTNcdTk0YTRcdTk0YWJcdTk0YWFcdTk0YWRc''@;'; + put 'put ''dTk0YWNcdTk0YWZcdTk0YjBcdTk0YjJcdTk0YjRcdTk0YjZcdTk0YjdcdTk0YjhcdTk0YjlcdTk0YmFcdTk0YmNcdTk0YmRcdTk0YmZcdTk0YzRcdTk0YzhcdTk0YzlcdTk0Y2FcdTk0Y2JcdTk0Y2NcdTk0Y2RcdTk0Y2VcdTk0ZDBcdTk0ZDFcdTk0ZDJcdTk0ZDVcdTk0ZDZcdTk0ZDdcdTk0''@;'; + put 'put ''ZDlcdTk0ZDhcdTk0ZGJcdTk0ZGVcdTk0ZGZcdTk0ZTBcdTk0ZTJcdTk0ZTRcdTk0ZTVcdTk0ZTdcdTk0ZThcdTk0ZWFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM4XVtFXV09NjA5Mjgr''@;'; + put 'put ''RSxMWzYwOTI4K0VdPUJbMjM4XVtFXSk7Zm9yKEJbMjM5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ODZmXHU5ODcwXHU5ODcxXHU5ODcyXHU5ODczXHU5ODc0XHU5ODhiXHU5ODhlXHU5ODkyXHU5ODk1XHU5ODk5XHU5OGEzXHU5''@;'; + put 'put ''OGE4XHU5OGE5XHU5OGFhXHU5OGFiXHU5OGFjXHU5OGFkXHU5OGFlXHU5OGFmXHU5OGIwXHU5OGIxXHU5OGIyXHU5OGIzXHU5OGI0XHU5OGI1XHU5OGI2XHU5OGI3XHU5OGI4XHU5OGI5XHU5OGJhXHU5OGJiXHU5OGJjXHU5OGJkXHU5OGJlXHU5OGJmXHU5OGMwXHU5OGMxXHU5OGMyXHU5OGMz''@;'; + put 'put ''XHU5OGM0XHU5OGM1XHU5OGM2XHU5OGM3XHU5OGM4XHU5OGM5XHU5OGNhXHU5OGNiXHU5OGNjXHU5OGNkXHU5OGNmXHU5OGQwXHU5OGQ0XHU5OGQ2XHU5OGQ3XHU5OGRiXHU5OGRjXHU5OGRkXHU5OGUwXHU5OGUxXHU5OGUyXHU5OGUzXHU5OGU0XHVmZmZkXHU5OGU1XHU5OGU2XHU5OGU5XHU5''@;'; + put 'put ''OGVhXHU5OGViXHU5OGVjXHU5OGVkXHU5OGVlXHU5OGVmXHU5OGYwXHU5OGYxXHU5OGYyXHU5OGYzXHU5OGY0XHU5OGY1XHU5OGY2XHU5OGY3XHU5OGY4XHU5OGY5XHU5OGZhXHU5OGZiXHU5OGZjXHU5OGZkXHU5OGZlXHU5OGZmXHU5OTAwXHU5OTAxXHU5OTAyXHU5OTAzXHU5OTA0XHU5OTA1''@;'; + put 'put ''XHU5OTA2XHU5OTA3XHU5NGU5XHU5NGViXHU5NGVlXHU5NGVmXHU5NGYzXHU5NGY0XHU5NGY1XHU5NGY3XHU5NGY5XHU5NGZjXHU5NGZkXHU5NGZmXHU5NTAzXHU5NTAyXHU5NTA2XHU5NTA3XHU5NTA5XHU5NTBhXHU5NTBkXHU5NTBlXHU5NTBmXHU5NTEyXHU5NTEzXHU5NTE0XHU5NTE1XHU5''@;'; + put 'put ''NTE2XHU5NTE4XHU5NTFiXHU5NTFkXHU5NTFlXHU5NTFmXHU5NTIyXHU5NTJhXHU5NTJiXHU5NTI5XHU5NTJjXHU5NTMxXHU5NTMyXHU5NTM0XHU5NTM2XHU5NTM3XHU5NTM4XHU5NTNjXHU5NTNlXHU5NTNmXHU5NTQyXHU5NTM1XHU5NTQ0XHU5NTQ1XHU5NTQ2XHU5NTQ5XHU5NTRjXHU5NTRl''@;'; + put 'put ''XHU5NTRmXHU5NTUyXHU5NTUzXHU5NTU0XHU5NTU2XHU5NTU3XHU5NTU4XHU5NTU5XHU5NTViXHU5NTVlXHU5NTVmXHU5NTVkXHU5NTYxXHU5NTYyXHU5NTY0XHU5NTY1XHU5NTY2XHU5NTY3XHU5NTY4XHU5NTY5XHU5NTZhXHU5NTZiXHU5NTZjXHU5NTZmXHU5NTcxXHU5NTcyXHU5NTczXHU5''@;'; + put 'put ''NTNhXHU3N2U3XHU3N2VjXHU5NmM5XHU3OWQ1XHU3OWVkXHU3OWUzXHU3OWViXHU3YTA2XHU1ZDQ3XHU3YTAzXHU3YTAyXHU3YTFlXHU3YTE0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIz''@;'; + put 'put ''OV1bRV1dPTYxMTg0K0UsTFs2MTE4NCtFXT1CWzIzOV1bRV0pO2ZvcihCWzI0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTkwOFx1OTkwOVx1OTkwYVx1OTkwYlx1OTkwY1x1OTkwZVx1OTkwZlx1OTkxMVx1OTkxMlx1OTkxM1x1''@;'; + put 'put ''OTkxNFx1OTkxNVx1OTkxNlx1OTkxN1x1OTkxOFx1OTkxOVx1OTkxYVx1OTkxYlx1OTkxY1x1OTkxZFx1OTkxZVx1OTkxZlx1OTkyMFx1OTkyMVx1OTkyMlx1OTkyM1x1OTkyNFx1OTkyNVx1OTkyNlx1OTkyN1x1OTkyOFx1OTkyOVx1OTkyYVx1OTkyYlx1OTkyY1x1OTkyZFx1OTkyZlx1OTkz''@;'; + put 'put ''MFx1OTkzMVx1OTkzMlx1OTkzM1x1OTkzNFx1OTkzNVx1OTkzNlx1OTkzN1x1OTkzOFx1OTkzOVx1OTkzYVx1OTkzYlx1OTkzY1x1OTkzZFx1OTkzZVx1OTkzZlx1OTk0MFx1OTk0MVx1OTk0Mlx1OTk0M1x1OTk0NFx1OTk0NVx1OTk0Nlx1OTk0N1x1OTk0OFx1OTk0OVx1ZmZmZFx1OTk0YVx1''@;'; + put 'put ''OTk0Ylx1OTk0Y1x1OTk0ZFx1OTk0ZVx1OTk0Zlx1OTk1MFx1OTk1MVx1OTk1Mlx1OTk1M1x1OTk1Nlx1OTk1N1x1OTk1OFx1OTk1OVx1OTk1YVx1OTk1Ylx1OTk1Y1x1OTk1ZFx1OTk1ZVx1OTk1Zlx1OTk2MFx1OTk2MVx1OTk2Mlx1OTk2NFx1OTk2Nlx1OTk3M1x1OTk3OFx1OTk3OVx1OTk3''@;'; + put 'put ''Ylx1OTk3ZVx1OTk4Mlx1OTk4M1x1OTk4OVx1N2EzOVx1N2EzN1x1N2E1MVx1OWVjZlx1OTlhNVx1N2E3MFx1NzY4OFx1NzY4ZVx1NzY5M1x1NzY5OVx1NzZhNFx1NzRkZVx1NzRlMFx1NzUyY1x1OWUyMFx1OWUyMlx1OWUyOFx1OWUyOVx1OWUyYVx1OWUyYlx1OWUyY1x1OWUzMlx1OWUzMVx1''@;'; + put 'put ''OWUzNlx1OWUzOFx1OWUzN1x1OWUzOVx1OWUzYVx1OWUzZVx1OWU0MVx1OWU0Mlx1OWU0NFx1OWU0Nlx1OWU0N1x1OWU0OFx1OWU0OVx1OWU0Ylx1OWU0Y1x1OWU0ZVx1OWU1MVx1OWU1NVx1OWU1N1x1OWU1YVx1OWU1Ylx1OWU1Y1x1OWU1ZVx1OWU2M1x1OWU2Nlx1OWU2N1x1OWU2OFx1OWU2''@;'; + put 'put ''OVx1OWU2YVx1OWU2Ylx1OWU2Y1x1OWU3MVx1OWU2ZFx1OWU3M1x1NzU5Mlx1NzU5NFx1NzU5Nlx1NzVhMFx1NzU5ZFx1NzVhY1x1NzVhM1x1NzViM1x1NzViNFx1NzViOFx1NzVjNFx1NzViMVx1NzViMFx1NzVjM1x1NzVjMlx1NzVkNlx1NzVjZFx1NzVlM1x1NzVlOFx1NzVlNlx1NzVlNFx1''@;'; + put 'put ''NzVlYlx1NzVlN1x1NzYwM1x1NzVmMVx1NzVmY1x1NzVmZlx1NzYxMFx1NzYwMFx1NzYwNVx1NzYwY1x1NzYxN1x1NzYwYVx1NzYyNVx1NzYxOFx1NzYxNVx1NzYxOVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQwXVtFXS5jaGFyQ29kZUF0''@;'; + put 'put ''KDApJiYobWVbQlsyNDBdW0VdXT02MTQ0MCtFLExbNjE0NDArRV09QlsyNDBdW0VdKTtmb3IoQlsyNDFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk5OGNcdTk5OGVcdTk5OWFcdTk5OWJcdTk5OWNcdTk5OWRcdTk5OWVcdTk5OWZc''@;'; + put 'put ''dTk5YTBcdTk5YTFcdTk5YTJcdTk5YTNcdTk5YTRcdTk5YTZcdTk5YTdcdTk5YTlcdTk5YWFcdTk5YWJcdTk5YWNcdTk5YWRcdTk5YWVcdTk5YWZcdTk5YjBcdTk5YjFcdTk5YjJcdTk5YjNcdTk5YjRcdTk5YjVcdTk5YjZcdTk5YjdcdTk5YjhcdTk5YjlcdTk5YmFcdTk5YmJcdTk5YmNcdTk5''@;'; + put 'put ''YmRcdTk5YmVcdTk5YmZcdTk5YzBcdTk5YzFcdTk5YzJcdTk5YzNcdTk5YzRcdTk5YzVcdTk5YzZcdTk5YzdcdTk5YzhcdTk5YzlcdTk5Y2FcdTk5Y2JcdTk5Y2NcdTk5Y2RcdTk5Y2VcdTk5Y2ZcdTk5ZDBcdTk5ZDFcdTk5ZDJcdTk5ZDNcdTk5ZDRcdTk5ZDVcdTk5ZDZcdTk5ZDdcdTk5ZDhc''@;'; + put 'put ''dWZmZmRcdTk5ZDlcdTk5ZGFcdTk5ZGJcdTk5ZGNcdTk5ZGRcdTk5ZGVcdTk5ZGZcdTk5ZTBcdTk5ZTFcdTk5ZTJcdTk5ZTNcdTk5ZTRcdTk5ZTVcdTk5ZTZcdTk5ZTdcdTk5ZThcdTk5ZTlcdTk5ZWFcdTk5ZWJcdTk5ZWNcdTk5ZWRcdTk5ZWVcdTk5ZWZcdTk5ZjBcdTk5ZjFcdTk5ZjJcdTk5''@;'; + put 'put ''ZjNcdTk5ZjRcdTk5ZjVcdTk5ZjZcdTk5ZjdcdTk5ZjhcdTk5ZjlcdTc2MWJcdTc2M2NcdTc2MjJcdTc2MjBcdTc2NDBcdTc2MmRcdTc2MzBcdTc2M2ZcdTc2MzVcdTc2NDNcdTc2M2VcdTc2MzNcdTc2NGRcdTc2NWVcdTc2NTRcdTc2NWNcdTc2NTZcdTc2NmJcdTc2NmZcdTdmY2FcdTdhZTZc''@;'; + put 'put ''dTdhNzhcdTdhNzlcdTdhODBcdTdhODZcdTdhODhcdTdhOTVcdTdhYTZcdTdhYTBcdTdhYWNcdTdhYThcdTdhYWRcdTdhYjNcdTg4NjRcdTg4NjlcdTg4NzJcdTg4N2RcdTg4N2ZcdTg4ODJcdTg4YTJcdTg4YzZcdTg4YjdcdTg4YmNcdTg4YzlcdTg4ZTJcdTg4Y2VcdTg4ZTNcdTg4ZTVcdTg4''@;'; + put 'put ''ZjFcdTg5MWFcdTg4ZmNcdTg4ZThcdTg4ZmVcdTg4ZjBcdTg5MjFcdTg5MTlcdTg5MTNcdTg5MWJcdTg5MGFcdTg5MzRcdTg5MmJcdTg5MzZcdTg5NDFcdTg5NjZcdTg5N2JcdTc1OGJcdTgwZTVcdTc2YjJcdTc2YjRcdTc3ZGNcdTgwMTJcdTgwMTRcdTgwMTZcdTgwMWNcdTgwMjBcdTgwMjJc''@;'; + put 'put ''dTgwMjVcdTgwMjZcdTgwMjdcdTgwMjlcdTgwMjhcdTgwMzFcdTgwMGJcdTgwMzVcdTgwNDNcdTgwNDZcdTgwNGRcdTgwNTJcdTgwNjlcdTgwNzFcdTg5ODNcdTk4NzhcdTk4ODBcdTk4ODNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0MV1b''@;'; + put 'put ''RV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQxXVtFXV09NjE2OTYrRSxMWzYxNjk2K0VdPUJbMjQxXVtFXSk7Zm9yKEJbMjQyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5OWZhXHU5OWZiXHU5OWZjXHU5OWZkXHU5OWZlXHU5OWZm''@;'; + put 'put ''XHU5YTAwXHU5YTAxXHU5YTAyXHU5YTAzXHU5YTA0XHU5YTA1XHU5YTA2XHU5YTA3XHU5YTA4XHU5YTA5XHU5YTBhXHU5YTBiXHU5YTBjXHU5YTBkXHU5YTBlXHU5YTBmXHU5YTEwXHU5YTExXHU5YTEyXHU5YTEzXHU5YTE0XHU5YTE1XHU5YTE2XHU5YTE3XHU5YTE4XHU5YTE5XHU5YTFhXHU5''@;'; + put 'put ''YTFiXHU5YTFjXHU5YTFkXHU5YTFlXHU5YTFmXHU5YTIwXHU5YTIxXHU5YTIyXHU5YTIzXHU5YTI0XHU5YTI1XHU5YTI2XHU5YTI3XHU5YTI4XHU5YTI5XHU5YTJhXHU5YTJiXHU5YTJjXHU5YTJkXHU5YTJlXHU5YTJmXHU5YTMwXHU5YTMxXHU5YTMyXHU5YTMzXHU5YTM0XHU5YTM1XHU5YTM2''@;'; + put 'put ''XHU5YTM3XHU5YTM4XHVmZmZkXHU5YTM5XHU5YTNhXHU5YTNiXHU5YTNjXHU5YTNkXHU5YTNlXHU5YTNmXHU5YTQwXHU5YTQxXHU5YTQyXHU5YTQzXHU5YTQ0XHU5YTQ1XHU5YTQ2XHU5YTQ3XHU5YTQ4XHU5YTQ5XHU5YTRhXHU5YTRiXHU5YTRjXHU5YTRkXHU5YTRlXHU5YTRmXHU5YTUwXHU5''@;'; + put 'put ''YTUxXHU5YTUyXHU5YTUzXHU5YTU0XHU5YTU1XHU5YTU2XHU5YTU3XHU5YTU4XHU5YTU5XHU5ODg5XHU5ODhjXHU5ODhkXHU5ODhmXHU5ODk0XHU5ODlhXHU5ODliXHU5ODllXHU5ODlmXHU5OGExXHU5OGEyXHU5OGE1XHU5OGE2XHU4NjRkXHU4NjU0XHU4NjZjXHU4NjZlXHU4NjdmXHU4Njdh''@;'; + put 'put ''XHU4NjdjXHU4NjdiXHU4NmE4XHU4NjhkXHU4NjhiXHU4NmFjXHU4NjlkXHU4NmE3XHU4NmEzXHU4NmFhXHU4NjkzXHU4NmE5XHU4NmI2XHU4NmM0XHU4NmI1XHU4NmNlXHU4NmIwXHU4NmJhXHU4NmIxXHU4NmFmXHU4NmM5XHU4NmNmXHU4NmI0XHU4NmU5XHU4NmYxXHU4NmYyXHU4NmVkXHU4''@;'; + put 'put ''NmYzXHU4NmQwXHU4NzEzXHU4NmRlXHU4NmY0XHU4NmRmXHU4NmQ4XHU4NmQxXHU4NzAzXHU4NzA3XHU4NmY4XHU4NzA4XHU4NzBhXHU4NzBkXHU4NzA5XHU4NzIzXHU4NzNiXHU4NzFlXHU4NzI1XHU4NzJlXHU4NzFhXHU4NzNlXHU4NzQ4XHU4NzM0XHU4NzMxXHU4NzI5XHU4NzM3XHU4NzNm''@;'; + put 'put ''XHU4NzgyXHU4NzIyXHU4NzdkXHU4NzdlXHU4NzdiXHU4NzYwXHU4NzcwXHU4NzRjXHU4NzZlXHU4NzhiXHU4NzUzXHU4NzYzXHU4NzdjXHU4NzY0XHU4NzU5XHU4NzY1XHU4NzkzXHU4N2FmXHU4N2E4XHU4N2QyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQyXS5sZW5ndGg7KytFKTY1''@;'; + put 'put ''NTMzIT09QlsyNDJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0Ml1bRV1dPTYxOTUyK0UsTFs2MTk1MitFXT1CWzI0Ml1bRV0pO2ZvcihCWzI0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWE1YVx1OWE1Ylx1OWE1Y1x1OWE1''@;'; + put 'put ''ZFx1OWE1ZVx1OWE1Zlx1OWE2MFx1OWE2MVx1OWE2Mlx1OWE2M1x1OWE2NFx1OWE2NVx1OWE2Nlx1OWE2N1x1OWE2OFx1OWE2OVx1OWE2YVx1OWE2Ylx1OWE3Mlx1OWE4M1x1OWE4OVx1OWE4ZFx1OWE4ZVx1OWE5NFx1OWE5NVx1OWE5OVx1OWFhNlx1OWFhOVx1OWFhYVx1OWFhYlx1OWFhY1x1''@;'; + put 'put ''OWFhZFx1OWFhZVx1OWFhZlx1OWFiMlx1OWFiM1x1OWFiNFx1OWFiNVx1OWFiOVx1OWFiYlx1OWFiZFx1OWFiZVx1OWFiZlx1OWFjM1x1OWFjNFx1OWFjNlx1OWFjN1x1OWFjOFx1OWFjOVx1OWFjYVx1OWFjZFx1OWFjZVx1OWFjZlx1OWFkMFx1OWFkMlx1OWFkNFx1OWFkNVx1OWFkNlx1OWFk''@;'; + put 'put ''N1x1OWFkOVx1OWFkYVx1OWFkYlx1OWFkY1x1ZmZmZFx1OWFkZFx1OWFkZVx1OWFlMFx1OWFlMlx1OWFlM1x1OWFlNFx1OWFlNVx1OWFlN1x1OWFlOFx1OWFlOVx1OWFlYVx1OWFlY1x1OWFlZVx1OWFmMFx1OWFmMVx1OWFmMlx1OWFmM1x1OWFmNFx1OWFmNVx1OWFmNlx1OWFmN1x1OWFmOFx1''@;'; + put 'put ''OWFmYVx1OWFmY1x1OWFmZFx1OWFmZVx1OWFmZlx1OWIwMFx1OWIwMVx1OWIwMlx1OWIwNFx1OWIwNVx1OWIwNlx1ODdjNlx1ODc4OFx1ODc4NVx1ODdhZFx1ODc5N1x1ODc4M1x1ODdhYlx1ODdlNVx1ODdhY1x1ODdiNVx1ODdiM1x1ODdjYlx1ODdkM1x1ODdiZFx1ODdkMVx1ODdjMFx1ODdj''@;'; + put 'put ''YVx1ODdkYlx1ODdlYVx1ODdlMFx1ODdlZVx1ODgxNlx1ODgxM1x1ODdmZVx1ODgwYVx1ODgxYlx1ODgyMVx1ODgzOVx1ODgzY1x1N2YzNlx1N2Y0Mlx1N2Y0NFx1N2Y0NVx1ODIxMFx1N2FmYVx1N2FmZFx1N2IwOFx1N2IwM1x1N2IwNFx1N2IxNVx1N2IwYVx1N2IyYlx1N2IwZlx1N2I0N1x1''@;'; + put 'put ''N2IzOFx1N2IyYVx1N2IxOVx1N2IyZVx1N2IzMVx1N2IyMFx1N2IyNVx1N2IyNFx1N2IzM1x1N2IzZVx1N2IxZVx1N2I1OFx1N2I1YVx1N2I0NVx1N2I3NVx1N2I0Y1x1N2I1ZFx1N2I2MFx1N2I2ZVx1N2I3Ylx1N2I2Mlx1N2I3Mlx1N2I3MVx1N2I5MFx1N2JhNlx1N2JhN1x1N2JiOFx1N2Jh''@;'; + put 'put ''Y1x1N2I5ZFx1N2JhOFx1N2I4NVx1N2JhYVx1N2I5Y1x1N2JhMlx1N2JhYlx1N2JiNFx1N2JkMVx1N2JjMVx1N2JjY1x1N2JkZFx1N2JkYVx1N2JlNVx1N2JlNlx1N2JlYVx1N2MwY1x1N2JmZVx1N2JmY1x1N2MwZlx1N2MxNlx1N2MwYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0M10u''@;'; + put 'put ''bGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDNdW0VdXT02MjIwOCtFLExbNjIyMDgrRV09QlsyNDNdW0VdKTtmb3IoQlsyNDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliMDdcdTli''@;'; + put 'put ''MDlcdTliMGFcdTliMGJcdTliMGNcdTliMGRcdTliMGVcdTliMTBcdTliMTFcdTliMTJcdTliMTRcdTliMTVcdTliMTZcdTliMTdcdTliMThcdTliMTlcdTliMWFcdTliMWJcdTliMWNcdTliMWRcdTliMWVcdTliMjBcdTliMjFcdTliMjJcdTliMjRcdTliMjVcdTliMjZcdTliMjdcdTliMjhc''@;'; + put 'put ''dTliMjlcdTliMmFcdTliMmJcdTliMmNcdTliMmRcdTliMmVcdTliMzBcdTliMzFcdTliMzNcdTliMzRcdTliMzVcdTliMzZcdTliMzdcdTliMzhcdTliMzlcdTliM2FcdTliM2RcdTliM2VcdTliM2ZcdTliNDBcdTliNDZcdTliNGFcdTliNGJcdTliNGNcdTliNGVcdTliNTBcdTliNTJcdTli''@;'; + put 'put ''NTNcdTliNTVcdTliNTZcdTliNTdcdTliNThcdTliNTlcdTliNWFcdWZmZmRcdTliNWJcdTliNWNcdTliNWRcdTliNWVcdTliNWZcdTliNjBcdTliNjFcdTliNjJcdTliNjNcdTliNjRcdTliNjVcdTliNjZcdTliNjdcdTliNjhcdTliNjlcdTliNmFcdTliNmJcdTliNmNcdTliNmRcdTliNmVc''@;'; + put 'put ''dTliNmZcdTliNzBcdTliNzFcdTliNzJcdTliNzNcdTliNzRcdTliNzVcdTliNzZcdTliNzdcdTliNzhcdTliNzlcdTliN2FcdTliN2JcdTdjMWZcdTdjMmFcdTdjMjZcdTdjMzhcdTdjNDFcdTdjNDBcdTgxZmVcdTgyMDFcdTgyMDJcdTgyMDRcdTgxZWNcdTg4NDRcdTgyMjFcdTgyMjJcdTgy''@;'; + put 'put ''MjNcdTgyMmRcdTgyMmZcdTgyMjhcdTgyMmJcdTgyMzhcdTgyM2JcdTgyMzNcdTgyMzRcdTgyM2VcdTgyNDRcdTgyNDlcdTgyNGJcdTgyNGZcdTgyNWFcdTgyNWZcdTgyNjhcdTg4N2VcdTg4ODVcdTg4ODhcdTg4ZDhcdTg4ZGZcdTg5NWVcdTdmOWRcdTdmOWZcdTdmYTdcdTdmYWZcdTdmYjBc''@;'; + put 'put ''dTdmYjJcdTdjN2NcdTY1NDlcdTdjOTFcdTdjOWRcdTdjOWNcdTdjOWVcdTdjYTJcdTdjYjJcdTdjYmNcdTdjYmRcdTdjYzFcdTdjYzdcdTdjY2NcdTdjY2RcdTdjYzhcdTdjYzVcdTdjZDdcdTdjZThcdTgyNmVcdTY2YThcdTdmYmZcdTdmY2VcdTdmZDVcdTdmZTVcdTdmZTFcdTdmZTZcdTdm''@;'; + put 'put ''ZTlcdTdmZWVcdTdmZjNcdTdjZjhcdTdkNzdcdTdkYTZcdTdkYWVcdTdlNDdcdTdlOWJcdTllYjhcdTllYjRcdThkNzNcdThkODRcdThkOTRcdThkOTFcdThkYjFcdThkNjdcdThkNmRcdThjNDdcdThjNDlcdTkxNGFcdTkxNTBcdTkxNGVcdTkxNGZcdTkxNjRcdWZmZmQiLnNwbGl0KCIiKSxF''@;'; + put 'put ''PTA7RSE9QlsyNDRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ0XVtFXV09NjI0NjQrRSxMWzYyNDY0K0VdPUJbMjQ0XVtFXSk7Zm9yKEJbMjQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHU5YjdjXHU5YjdkXHU5YjdlXHU5YjdmXHU5YjgwXHU5YjgxXHU5YjgyXHU5YjgzXHU5Yjg0XHU5Yjg1XHU5Yjg2XHU5Yjg3XHU5Yjg4XHU5Yjg5XHU5YjhhXHU5YjhiXHU5YjhjXHU5YjhkXHU5YjhlXHU5YjhmXHU5YjkwXHU5YjkxXHU5YjkyXHU5YjkzXHU5Yjk0XHU5Yjk1XHU5Yjk2''@;'; + put 'put ''XHU5Yjk3XHU5Yjk4XHU5Yjk5XHU5YjlhXHU5YjliXHU5YjljXHU5YjlkXHU5YjllXHU5YjlmXHU5YmEwXHU5YmExXHU5YmEyXHU5YmEzXHU5YmE0XHU5YmE1XHU5YmE2XHU5YmE3XHU5YmE4XHU5YmE5XHU5YmFhXHU5YmFiXHU5YmFjXHU5YmFkXHU5YmFlXHU5YmFmXHU5YmIwXHU5YmIxXHU5''@;'; + put 'put ''YmIyXHU5YmIzXHU5YmI0XHU5YmI1XHU5YmI2XHU5YmI3XHU5YmI4XHU5YmI5XHU5YmJhXHVmZmZkXHU5YmJiXHU5YmJjXHU5YmJkXHU5YmJlXHU5YmJmXHU5YmMwXHU5YmMxXHU5YmMyXHU5YmMzXHU5YmM0XHU5YmM1XHU5YmM2XHU5YmM3XHU5YmM4XHU5YmM5XHU5YmNhXHU5YmNiXHU5YmNj''@;'; + put 'put ''XHU5YmNkXHU5YmNlXHU5YmNmXHU5YmQwXHU5YmQxXHU5YmQyXHU5YmQzXHU5YmQ0XHU5YmQ1XHU5YmQ2XHU5YmQ3XHU5YmQ4XHU5YmQ5XHU5YmRhXHU5YmRiXHU5MTYyXHU5MTYxXHU5MTcwXHU5MTY5XHU5MTZmXHU5MTdkXHU5MTdlXHU5MTcyXHU5MTc0XHU5MTc5XHU5MThjXHU5MTg1XHU5''@;'; + put 'put ''MTkwXHU5MThkXHU5MTkxXHU5MWEyXHU5MWEzXHU5MWFhXHU5MWFkXHU5MWFlXHU5MWFmXHU5MWI1XHU5MWI0XHU5MWJhXHU4YzU1XHU5ZTdlXHU4ZGI4XHU4ZGViXHU4ZTA1XHU4ZTU5XHU4ZTY5XHU4ZGI1XHU4ZGJmXHU4ZGJjXHU4ZGJhXHU4ZGM0XHU4ZGQ2XHU4ZGQ3XHU4ZGRhXHU4ZGRl''@;'; + put 'put ''XHU4ZGNlXHU4ZGNmXHU4ZGRiXHU4ZGM2XHU4ZGVjXHU4ZGY3XHU4ZGY4XHU4ZGUzXHU4ZGY5XHU4ZGZiXHU4ZGU0XHU4ZTA5XHU4ZGZkXHU4ZTE0XHU4ZTFkXHU4ZTFmXHU4ZTJjXHU4ZTJlXHU4ZTIzXHU4ZTJmXHU4ZTNhXHU4ZTQwXHU4ZTM5XHU4ZTM1XHU4ZTNkXHU4ZTMxXHU4ZTQ5XHU4''@;'; + put 'put ''ZTQxXHU4ZTQyXHU4ZTUxXHU4ZTUyXHU4ZTRhXHU4ZTcwXHU4ZTc2XHU4ZTdjXHU4ZTZmXHU4ZTc0XHU4ZTg1XHU4ZThmXHU4ZTk0XHU4ZTkwXHU4ZTljXHU4ZTllXHU4Yzc4XHU4YzgyXHU4YzhhXHU4Yzg1XHU4Yzk4XHU4Yzk0XHU2NTliXHU4OWQ2XHU4OWRlXHU4OWRhXHU4OWRjXHVmZmZk''@;'; + put 'put ''Ii5zcGxpdCgiIiksRT0wO0UhPUJbMjQ1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0NV1bRV1dPTYyNzIwK0UsTFs2MjcyMCtFXT1CWzI0NV1bRV0pO2ZvcihCWzI0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1OWJkY1x1OWJkZFx1OWJkZVx1OWJkZlx1OWJlMFx1OWJlMVx1OWJlMlx1OWJlM1x1OWJlNFx1OWJlNVx1OWJlNlx1OWJlN1x1OWJlOFx1OWJlOVx1OWJlYVx1OWJlYlx1OWJlY1x1OWJlZFx1OWJlZVx1OWJlZlx1OWJmMFx1OWJmMVx1OWJmMlx1OWJmM1x1OWJm''@;'; + put 'put ''NFx1OWJmNVx1OWJmNlx1OWJmN1x1OWJmOFx1OWJmOVx1OWJmYVx1OWJmYlx1OWJmY1x1OWJmZFx1OWJmZVx1OWJmZlx1OWMwMFx1OWMwMVx1OWMwMlx1OWMwM1x1OWMwNFx1OWMwNVx1OWMwNlx1OWMwN1x1OWMwOFx1OWMwOVx1OWMwYVx1OWMwYlx1OWMwY1x1OWMwZFx1OWMwZVx1OWMwZlx1''@;'; + put 'put ''OWMxMFx1OWMxMVx1OWMxMlx1OWMxM1x1OWMxNFx1OWMxNVx1OWMxNlx1OWMxN1x1OWMxOFx1OWMxOVx1OWMxYVx1ZmZmZFx1OWMxYlx1OWMxY1x1OWMxZFx1OWMxZVx1OWMxZlx1OWMyMFx1OWMyMVx1OWMyMlx1OWMyM1x1OWMyNFx1OWMyNVx1OWMyNlx1OWMyN1x1OWMyOFx1OWMyOVx1OWMy''@;'; + put 'put ''YVx1OWMyYlx1OWMyY1x1OWMyZFx1OWMyZVx1OWMyZlx1OWMzMFx1OWMzMVx1OWMzMlx1OWMzM1x1OWMzNFx1OWMzNVx1OWMzNlx1OWMzN1x1OWMzOFx1OWMzOVx1OWMzYVx1OWMzYlx1ODllNVx1ODllYlx1ODllZlx1OGEzZVx1OGIyNlx1OTc1M1x1OTZlOVx1OTZmM1x1OTZlZlx1OTcwNlx1''@;'; + put 'put ''OTcwMVx1OTcwOFx1OTcwZlx1OTcwZVx1OTcyYVx1OTcyZFx1OTczMFx1OTczZVx1OWY4MFx1OWY4M1x1OWY4NVx1OWY4Nlx1OWY4N1x1OWY4OFx1OWY4OVx1OWY4YVx1OWY4Y1x1OWVmZVx1OWYwYlx1OWYwZFx1OTZiOVx1OTZiY1x1OTZiZFx1OTZjZVx1OTZkMlx1NzdiZlx1OTZlMFx1OTI4''@;'; + put 'put ''ZVx1OTJhZVx1OTJjOFx1OTMzZVx1OTM2YVx1OTNjYVx1OTM4Zlx1OTQzZVx1OTQ2Ylx1OWM3Zlx1OWM4Mlx1OWM4NVx1OWM4Nlx1OWM4N1x1OWM4OFx1N2EyM1x1OWM4Ylx1OWM4ZVx1OWM5MFx1OWM5MVx1OWM5Mlx1OWM5NFx1OWM5NVx1OWM5YVx1OWM5Ylx1OWM5ZVx1OWM5Zlx1OWNhMFx1''@;'; + put 'put ''OWNhMVx1OWNhMlx1OWNhM1x1OWNhNVx1OWNhNlx1OWNhN1x1OWNhOFx1OWNhOVx1OWNhYlx1OWNhZFx1OWNhZVx1OWNiMFx1OWNiMVx1OWNiMlx1OWNiM1x1OWNiNFx1OWNiNVx1OWNiNlx1OWNiN1x1OWNiYVx1OWNiYlx1OWNiY1x1OWNiZFx1OWNjNFx1OWNjNVx1OWNjNlx1OWNjN1x1OWNj''@;'; + put 'put ''YVx1OWNjYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDZdW0VdXT02Mjk3NitFLExbNjI5NzYrRV09QlsyNDZdW0VdKTtmb3IoQlsyNDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTljM2NcdTljM2RcdTljM2VcdTljM2ZcdTljNDBcdTljNDFcdTljNDJcdTljNDNcdTljNDRcdTljNDVcdTljNDZcdTljNDdcdTljNDhcdTljNDlcdTljNGFcdTljNGJcdTljNGNcdTljNGRcdTljNGVcdTljNGZcdTljNTBcdTljNTFcdTlj''@;'; + put 'put ''NTJcdTljNTNcdTljNTRcdTljNTVcdTljNTZcdTljNTdcdTljNThcdTljNTlcdTljNWFcdTljNWJcdTljNWNcdTljNWRcdTljNWVcdTljNWZcdTljNjBcdTljNjFcdTljNjJcdTljNjNcdTljNjRcdTljNjVcdTljNjZcdTljNjdcdTljNjhcdTljNjlcdTljNmFcdTljNmJcdTljNmNcdTljNmRc''@;'; + put 'put ''dTljNmVcdTljNmZcdTljNzBcdTljNzFcdTljNzJcdTljNzNcdTljNzRcdTljNzVcdTljNzZcdTljNzdcdTljNzhcdTljNzlcdTljN2FcdWZmZmRcdTljN2JcdTljN2RcdTljN2VcdTljODBcdTljODNcdTljODRcdTljODlcdTljOGFcdTljOGNcdTljOGZcdTljOTNcdTljOTZcdTljOTdcdTlj''@;'; + put 'put ''OThcdTljOTlcdTljOWRcdTljYWFcdTljYWNcdTljYWZcdTljYjlcdTljYmVcdTljYmZcdTljYzBcdTljYzFcdTljYzJcdTljYzhcdTljYzlcdTljZDFcdTljZDJcdTljZGFcdTljZGJcdTljZTBcdTljZTFcdTljY2NcdTljY2RcdTljY2VcdTljY2ZcdTljZDBcdTljZDNcdTljZDRcdTljZDVc''@;'; + put 'put ''dTljZDdcdTljZDhcdTljZDlcdTljZGNcdTljZGRcdTljZGZcdTljZTJcdTk3N2NcdTk3ODVcdTk3OTFcdTk3OTJcdTk3OTRcdTk3YWZcdTk3YWJcdTk3YTNcdTk3YjJcdTk3YjRcdTlhYjFcdTlhYjBcdTlhYjdcdTllNThcdTlhYjZcdTlhYmFcdTlhYmNcdTlhYzFcdTlhYzBcdTlhYzVcdTlh''@;'; + put 'put ''YzJcdTlhY2JcdTlhY2NcdTlhZDFcdTliNDVcdTliNDNcdTliNDdcdTliNDlcdTliNDhcdTliNGRcdTliNTFcdTk4ZThcdTk5MGRcdTk5MmVcdTk5NTVcdTk5NTRcdTlhZGZcdTlhZTFcdTlhZTZcdTlhZWZcdTlhZWJcdTlhZmJcdTlhZWRcdTlhZjlcdTliMDhcdTliMGZcdTliMTNcdTliMWZc''@;'; + put 'put ''dTliMjNcdTllYmRcdTllYmVcdTdlM2JcdTllODJcdTllODdcdTllODhcdTllOGJcdTllOTJcdTkzZDZcdTllOWRcdTllOWZcdTllZGJcdTllZGNcdTllZGRcdTllZTBcdTllZGZcdTllZTJcdTllZTlcdTllZTdcdTllZTVcdTllZWFcdTllZWZcdTlmMjJcdTlmMmNcdTlmMmZcdTlmMzlcdTlm''@;'; + put 'put ''MzdcdTlmM2RcdTlmM2VcdTlmNDRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ3XVtFXV09NjMyMzIrRSxMWzYzMjMyK0VdPUJbMjQ3XVtFXSk7Zm9yKEJbMjQ4XT0iXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5Y2UzXHU5Y2U0XHU5Y2U1XHU5Y2U2XHU5Y2U3XHU5Y2U4XHU5Y2U5XHU5Y2VhXHU5Y2ViXHU5Y2VjXHU5Y2VkXHU5Y2VlXHU5Y2VmXHU5Y2YwXHU5Y2YxXHU5Y2YyXHU5Y2YzXHU5Y2Y0XHU5Y2Y1XHU5Y2Y2XHU5''@;'; + put 'put ''Y2Y3XHU5Y2Y4XHU5Y2Y5XHU5Y2ZhXHU5Y2ZiXHU5Y2ZjXHU5Y2ZkXHU5Y2ZlXHU5Y2ZmXHU5ZDAwXHU5ZDAxXHU5ZDAyXHU5ZDAzXHU5ZDA0XHU5ZDA1XHU5ZDA2XHU5ZDA3XHU5ZDA4XHU5ZDA5XHU5ZDBhXHU5ZDBiXHU5ZDBjXHU5ZDBkXHU5ZDBlXHU5ZDBmXHU5ZDEwXHU5ZDExXHU5ZDEy''@;'; + put 'put ''XHU5ZDEzXHU5ZDE0XHU5ZDE1XHU5ZDE2XHU5ZDE3XHU5ZDE4XHU5ZDE5XHU5ZDFhXHU5ZDFiXHU5ZDFjXHU5ZDFkXHU5ZDFlXHU5ZDFmXHU5ZDIwXHU5ZDIxXHVmZmZkXHU5ZDIyXHU5ZDIzXHU5ZDI0XHU5ZDI1XHU5ZDI2XHU5ZDI3XHU5ZDI4XHU5ZDI5XHU5ZDJhXHU5ZDJiXHU5ZDJjXHU5''@;'; + put 'put ''ZDJkXHU5ZDJlXHU5ZDJmXHU5ZDMwXHU5ZDMxXHU5ZDMyXHU5ZDMzXHU5ZDM0XHU5ZDM1XHU5ZDM2XHU5ZDM3XHU5ZDM4XHU5ZDM5XHU5ZDNhXHU5ZDNiXHU5ZDNjXHU5ZDNkXHU5ZDNlXHU5ZDNmXHU5ZDQwXHU5ZDQxXHU5ZDQyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0OF1bRV1dPTYzNDg4K0UsTFs2MzQ4OCtFXT1CWzI0OF1bRV0pO2ZvcihCWzI0OV09''@;'; + put 'put ''Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWQ0M1x1OWQ0NFx1OWQ0NVx1OWQ0Nlx1OWQ0N1x1OWQ0OFx1OWQ0OVx1OWQ0YVx1OWQ0Ylx1OWQ0Y1x1OWQ0ZFx1OWQ0ZVx1OWQ0Zlx1OWQ1MFx1OWQ1MVx1OWQ1Mlx1OWQ1M1x1OWQ1NFx1''@;'; + put 'put ''OWQ1NVx1OWQ1Nlx1OWQ1N1x1OWQ1OFx1OWQ1OVx1OWQ1YVx1OWQ1Ylx1OWQ1Y1x1OWQ1ZFx1OWQ1ZVx1OWQ1Zlx1OWQ2MFx1OWQ2MVx1OWQ2Mlx1OWQ2M1x1OWQ2NFx1OWQ2NVx1OWQ2Nlx1OWQ2N1x1OWQ2OFx1OWQ2OVx1OWQ2YVx1OWQ2Ylx1OWQ2Y1x1OWQ2ZFx1OWQ2ZVx1OWQ2Zlx1OWQ3''@;'; + put 'put ''MFx1OWQ3MVx1OWQ3Mlx1OWQ3M1x1OWQ3NFx1OWQ3NVx1OWQ3Nlx1OWQ3N1x1OWQ3OFx1OWQ3OVx1OWQ3YVx1OWQ3Ylx1OWQ3Y1x1OWQ3ZFx1OWQ3ZVx1OWQ3Zlx1OWQ4MFx1OWQ4MVx1ZmZmZFx1OWQ4Mlx1OWQ4M1x1OWQ4NFx1OWQ4NVx1OWQ4Nlx1OWQ4N1x1OWQ4OFx1OWQ4OVx1OWQ4YVx1''@;'; + put 'put ''OWQ4Ylx1OWQ4Y1x1OWQ4ZFx1OWQ4ZVx1OWQ4Zlx1OWQ5MFx1OWQ5MVx1OWQ5Mlx1OWQ5M1x1OWQ5NFx1OWQ5NVx1OWQ5Nlx1OWQ5N1x1OWQ5OFx1OWQ5OVx1OWQ5YVx1OWQ5Ylx1OWQ5Y1x1OWQ5ZFx1OWQ5ZVx1OWQ5Zlx1OWRhMFx1OWRhMVx1OWRhMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDldW0VdXT02Mzc0NCtFLExbNjM3NDQrRV09QlsyNDldW0Vd''@;'; + put 'put ''KTtmb3IoQlsyNTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlkYTNcdTlkYTRcdTlkYTVcdTlkYTZcdTlkYTdcdTlkYThcdTlkYTlcdTlkYWFcdTlkYWJcdTlkYWNcdTlkYWRcdTlkYWVcdTlkYWZcdTlkYjBcdTlkYjFcdTlkYjJc''@;'; + put 'put ''dTlkYjNcdTlkYjRcdTlkYjVcdTlkYjZcdTlkYjdcdTlkYjhcdTlkYjlcdTlkYmFcdTlkYmJcdTlkYmNcdTlkYmRcdTlkYmVcdTlkYmZcdTlkYzBcdTlkYzFcdTlkYzJcdTlkYzNcdTlkYzRcdTlkYzVcdTlkYzZcdTlkYzdcdTlkYzhcdTlkYzlcdTlkY2FcdTlkY2JcdTlkY2NcdTlkY2RcdTlk''@;'; + put 'put ''Y2VcdTlkY2ZcdTlkZDBcdTlkZDFcdTlkZDJcdTlkZDNcdTlkZDRcdTlkZDVcdTlkZDZcdTlkZDdcdTlkZDhcdTlkZDlcdTlkZGFcdTlkZGJcdTlkZGNcdTlkZGRcdTlkZGVcdTlkZGZcdTlkZTBcdTlkZTFcdWZmZmRcdTlkZTJcdTlkZTNcdTlkZTRcdTlkZTVcdTlkZTZcdTlkZTdcdTlkZThc''@;'; + put 'put ''dTlkZTlcdTlkZWFcdTlkZWJcdTlkZWNcdTlkZWRcdTlkZWVcdTlkZWZcdTlkZjBcdTlkZjFcdTlkZjJcdTlkZjNcdTlkZjRcdTlkZjVcdTlkZjZcdTlkZjdcdTlkZjhcdTlkZjlcdTlkZmFcdTlkZmJcdTlkZmNcdTlkZmRcdTlkZmVcdTlkZmZcdTllMDBcdTllMDFcdTllMDJcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNTBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI1MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjUwXVtFXV09NjRlMytFLExbNjRlMytF''@;'; + put 'put ''XT1CWzI1MF1bRV0pO2ZvcihCWzI1MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWUwM1x1OWUwNFx1OWUwNVx1OWUwNlx1OWUwN1x1OWUwOFx1OWUwOVx1OWUwYVx1OWUwYlx1OWUwY1x1OWUwZFx1OWUwZVx1OWUwZlx1OWUxMFx1''@;'; + put 'put ''OWUxMVx1OWUxMlx1OWUxM1x1OWUxNFx1OWUxNVx1OWUxNlx1OWUxN1x1OWUxOFx1OWUxOVx1OWUxYVx1OWUxYlx1OWUxY1x1OWUxZFx1OWUxZVx1OWUyNFx1OWUyN1x1OWUyZVx1OWUzMFx1OWUzNFx1OWUzYlx1OWUzY1x1OWU0MFx1OWU0ZFx1OWU1MFx1OWU1Mlx1OWU1M1x1OWU1NFx1OWU1''@;'; + put 'put ''Nlx1OWU1OVx1OWU1ZFx1OWU1Zlx1OWU2MFx1OWU2MVx1OWU2Mlx1OWU2NVx1OWU2ZVx1OWU2Zlx1OWU3Mlx1OWU3NFx1OWU3NVx1OWU3Nlx1OWU3N1x1OWU3OFx1OWU3OVx1OWU3YVx1OWU3Ylx1OWU3Y1x1OWU3ZFx1OWU4MFx1ZmZmZFx1OWU4MVx1OWU4M1x1OWU4NFx1OWU4NVx1OWU4Nlx1''@;'; + put 'put ''OWU4OVx1OWU4YVx1OWU4Y1x1OWU4ZFx1OWU4ZVx1OWU4Zlx1OWU5MFx1OWU5MVx1OWU5NFx1OWU5NVx1OWU5Nlx1OWU5N1x1OWU5OFx1OWU5OVx1OWU5YVx1OWU5Ylx1OWU5Y1x1OWU5ZVx1OWVhMFx1OWVhMVx1OWVhMlx1OWVhM1x1OWVhNFx1OWVhNVx1OWVhN1x1OWVhOFx1OWVhOVx1OWVh''@;'; + put 'put ''YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjUxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTFdW0VdXT02NDI1''@;'; + put 'put ''NitFLExbNjQyNTYrRV09QlsyNTFdW0VdKTtmb3IoQlsyNTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTllYWJcdTllYWNcdTllYWRcdTllYWVcdTllYWZcdTllYjBcdTllYjFcdTllYjJcdTllYjNcdTllYjVcdTllYjZcdTllYjdc''@;'; + put 'put ''dTllYjlcdTllYmFcdTllYmNcdTllYmZcdTllYzBcdTllYzFcdTllYzJcdTllYzNcdTllYzVcdTllYzZcdTllYzdcdTllYzhcdTllY2FcdTllY2JcdTllY2NcdTllZDBcdTllZDJcdTllZDNcdTllZDVcdTllZDZcdTllZDdcdTllZDlcdTllZGFcdTllZGVcdTllZTFcdTllZTNcdTllZTRcdTll''@;'; + put 'put ''ZTZcdTllZThcdTllZWJcdTllZWNcdTllZWRcdTllZWVcdTllZjBcdTllZjFcdTllZjJcdTllZjNcdTllZjRcdTllZjVcdTllZjZcdTllZjdcdTllZjhcdTllZmFcdTllZmRcdTllZmZcdTlmMDBcdTlmMDFcdTlmMDJcdTlmMDNcdTlmMDRcdTlmMDVcdWZmZmRcdTlmMDZcdTlmMDdcdTlmMDhc''@;'; + put 'put ''dTlmMDlcdTlmMGFcdTlmMGNcdTlmMGZcdTlmMTFcdTlmMTJcdTlmMTRcdTlmMTVcdTlmMTZcdTlmMThcdTlmMWFcdTlmMWJcdTlmMWNcdTlmMWRcdTlmMWVcdTlmMWZcdTlmMjFcdTlmMjNcdTlmMjRcdTlmMjVcdTlmMjZcdTlmMjdcdTlmMjhcdTlmMjlcdTlmMmFcdTlmMmJcdTlmMmRcdTlm''@;'; + put 'put ''MmVcdTlmMzBcdTlmMzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI1Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0Jb''@;'; + put 'put ''MjUyXVtFXV09NjQ1MTIrRSxMWzY0NTEyK0VdPUJbMjUyXVtFXSk7Zm9yKEJbMjUzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZjMyXHU5ZjMzXHU5ZjM0XHU5ZjM1XHU5ZjM2XHU5ZjM4XHU5ZjNhXHU5ZjNjXHU5ZjNmXHU5ZjQw''@;'; + put 'put ''XHU5ZjQxXHU5ZjQyXHU5ZjQzXHU5ZjQ1XHU5ZjQ2XHU5ZjQ3XHU5ZjQ4XHU5ZjQ5XHU5ZjRhXHU5ZjRiXHU5ZjRjXHU5ZjRkXHU5ZjRlXHU5ZjRmXHU5ZjUyXHU5ZjUzXHU5ZjU0XHU5ZjU1XHU5ZjU2XHU5ZjU3XHU5ZjU4XHU5ZjU5XHU5ZjVhXHU5ZjViXHU5ZjVjXHU5ZjVkXHU5ZjVlXHU5''@;'; + put 'put ''ZjVmXHU5ZjYwXHU5ZjYxXHU5ZjYyXHU5ZjYzXHU5ZjY0XHU5ZjY1XHU5ZjY2XHU5ZjY3XHU5ZjY4XHU5ZjY5XHU5ZjZhXHU5ZjZiXHU5ZjZjXHU5ZjZkXHU5ZjZlXHU5ZjZmXHU5ZjcwXHU5ZjcxXHU5ZjcyXHU5ZjczXHU5Zjc0XHU5Zjc1XHU5Zjc2XHU5Zjc3XHU5Zjc4XHVmZmZkXHU5Zjc5''@;'; + put 'put ''XHU5ZjdhXHU5ZjdiXHU5ZjdjXHU5ZjdkXHU5ZjdlXHU5ZjgxXHU5ZjgyXHU5ZjhkXHU5ZjhlXHU5ZjhmXHU5ZjkwXHU5ZjkxXHU5ZjkyXHU5ZjkzXHU5Zjk0XHU5Zjk1XHU5Zjk2XHU5Zjk3XHU5Zjk4XHU5ZjljXHU5ZjlkXHU5ZjllXHU5ZmExXHU5ZmEyXHU5ZmEzXHU5ZmE0XHU5ZmE1XHVm''@;'; + put 'put ''OTJjXHVmOTc5XHVmOTk1XHVmOWU3XHVmOWYxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjUzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNTNdW0VdLmNoYXJDb2Rl''@;'; + put 'put ''QXQoMCkmJihtZVtCWzI1M11bRV1dPTY0NzY4K0UsTFs2NDc2OCtFXT1CWzI1M11bRV0pO2ZvcihCWzI1NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmEwY1x1ZmEwZFx1ZmEwZVx1ZmEwZlx1ZmExMVx1ZmExM1x1ZmExNFx1ZmEx''@;'; + put 'put ''OFx1ZmExZlx1ZmEyMFx1ZmEyMVx1ZmEyM1x1ZmEyNFx1ZmEyN1x1ZmEyOFx1ZmEyOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjU0''@;'; + put 'put ''XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTRdW0VdXT02NTAyNCtFLExbNjUwMjQrRV09QlsyNTRdW0VdKTtyZXR1cm57ZW5jOm1lLGRlYzpMfX0oKSxKZVs5NDldPWZ1bmN0aW9uKCl7dmFyIEUsTD1bXSxtZT17fSxCPVtdO2ZvcihCWzBdPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgw''@;'; + put 'put ''Nlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hp''@;'; + put 'put ''amtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzBdLmxlbmd0aDsr''@;'; + put 'put ''K0UpNjU1MzMhPT1CWzBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzBdW0VdXT0wK0UsTFswK0VdPUJbMF1bRV0pO2ZvcihCWzEyOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWMwMlx1YWMwM1x1YWMwNVx1YWMwNlx1''@;'; + put 'put ''YWMwYlx1YWMwY1x1YWMwZFx1YWMwZVx1YWMwZlx1YWMxOFx1YWMxZVx1YWMxZlx1YWMyMVx1YWMyMlx1YWMyM1x1YWMyNVx1YWMyNlx1YWMyN1x1YWMyOFx1YWMyOVx1YWMyYVx1YWMyYlx1YWMyZVx1YWMzMlx1YWMzM1x1YWMzNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1YWMzNVx1YWMzNlx1YWMzN1x1YWMzYVx1YWMzYlx1YWMzZFx1YWMzZVx1YWMzZlx1YWM0MVx1YWM0Mlx1YWM0M1x1YWM0NFx1YWM0NVx1YWM0Nlx1YWM0N1x1YWM0OFx1YWM0OVx1YWM0YVx1YWM0Y1x1YWM0ZVx1YWM0Zlx1YWM1MFx1YWM1MVx1YWM1Mlx1YWM1M1x1YWM1NVx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWM1Nlx1YWM1N1x1YWM1OVx1YWM1YVx1YWM1Ylx1YWM1ZFx1YWM1ZVx1YWM1Zlx1YWM2MFx1YWM2MVx1YWM2Mlx1YWM2M1x1YWM2NFx1YWM2NVx1YWM2Nlx1YWM2N1x1YWM2OFx1YWM2OVx1YWM2YVx1YWM2Ylx1YWM2Y1x1YWM2ZFx1YWM2''@;'; + put 'put ''ZVx1YWM2Zlx1YWM3Mlx1YWM3M1x1YWM3NVx1YWM3Nlx1YWM3OVx1YWM3Ylx1YWM3Y1x1YWM3ZFx1YWM3ZVx1YWM3Zlx1YWM4Mlx1YWM4N1x1YWM4OFx1YWM4ZFx1YWM4ZVx1YWM4Zlx1YWM5MVx1YWM5Mlx1YWM5M1x1YWM5NVx1YWM5Nlx1YWM5N1x1YWM5OFx1YWM5OVx1YWM5YVx1YWM5Ylx1''@;'; + put 'put ''YWM5ZVx1YWNhMlx1YWNhM1x1YWNhNFx1YWNhNVx1YWNhNlx1YWNhN1x1YWNhYlx1YWNhZFx1YWNhZVx1YWNiMVx1YWNiMlx1YWNiM1x1YWNiNFx1YWNiNVx1YWNiNlx1YWNiN1x1YWNiYVx1YWNiZVx1YWNiZlx1YWNjMFx1YWNjMlx1YWNjM1x1YWNjNVx1YWNjNlx1YWNjN1x1YWNjOVx1YWNj''@;'; + put 'put ''YVx1YWNjYlx1YWNjZFx1YWNjZVx1YWNjZlx1YWNkMFx1YWNkMVx1YWNkMlx1YWNkM1x1YWNkNFx1YWNkNlx1YWNkOFx1YWNkOVx1YWNkYVx1YWNkYlx1YWNkY1x1YWNkZFx1YWNkZVx1YWNkZlx1YWNlMlx1YWNlM1x1YWNlNVx1YWNlNlx1YWNlOVx1YWNlYlx1YWNlZFx1YWNlZVx1YWNmMlx1''@;'; + put 'put ''YWNmNFx1YWNmN1x1YWNmOFx1YWNmOVx1YWNmYVx1YWNmYlx1YWNmZVx1YWNmZlx1YWQwMVx1YWQwMlx1YWQwM1x1YWQwNVx1YWQwN1x1YWQwOFx1YWQwOVx1YWQwYVx1YWQwYlx1YWQwZVx1YWQxMFx1YWQxMlx1YWQxM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEyOV0ubGVuZ3RoOysr''@;'; + put 'put ''RSk2NTUzMyE9PUJbMTI5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMjldW0VdXT0zMzAyNCtFLExbMzMwMjQrRV09QlsxMjldW0VdKTtmb3IoQlsxMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWFkMTRcdWFkMTVc''@;'; + put 'put ''dWFkMTZcdWFkMTdcdWFkMTlcdWFkMWFcdWFkMWJcdWFkMWRcdWFkMWVcdWFkMWZcdWFkMjFcdWFkMjJcdWFkMjNcdWFkMjRcdWFkMjVcdWFkMjZcdWFkMjdcdWFkMjhcdWFkMmFcdWFkMmJcdWFkMmVcdWFkMmZcdWFkMzBcdWFkMzFcdWFkMzJcdWFkMzNcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWFkMzZcdWFkMzdcdWFkMzlcdWFkM2FcdWFkM2JcdWFkM2RcdWFkM2VcdWFkM2ZcdWFkNDBcdWFkNDFcdWFkNDJcdWFkNDNcdWFkNDZcdWFkNDhcdWFkNGFcdWFkNGJcdWFkNGNcdWFkNGRcdWFkNGVcdWFkNGZcdWFkNTFcdWFkNTJcdWFkNTNcdWFkNTVcdWFkNTZc''@;'; + put 'put ''dWFkNTdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWFkNTlcdWFkNWFcdWFkNWJcdWFkNWNcdWFkNWRcdWFkNWVcdWFkNWZcdWFkNjBcdWFkNjJcdWFkNjRcdWFkNjVcdWFkNjZcdWFkNjdcdWFkNjhcdWFkNjlcdWFkNmFcdWFkNmJcdWFkNmVcdWFkNmZcdWFkNzFcdWFk''@;'; + put 'put ''NzJcdWFkNzdcdWFkNzhcdWFkNzlcdWFkN2FcdWFkN2VcdWFkODBcdWFkODNcdWFkODRcdWFkODVcdWFkODZcdWFkODdcdWFkOGFcdWFkOGJcdWFkOGRcdWFkOGVcdWFkOGZcdWFkOTFcdWFkOTJcdWFkOTNcdWFkOTRcdWFkOTVcdWFkOTZcdWFkOTdcdWFkOThcdWFkOTlcdWFkOWFcdWFkOWJc''@;'; + put 'put ''dWFkOWVcdWFkOWZcdWFkYTBcdWFkYTFcdWFkYTJcdWFkYTNcdWFkYTVcdWFkYTZcdWFkYTdcdWFkYThcdWFkYTlcdWFkYWFcdWFkYWJcdWFkYWNcdWFkYWRcdWFkYWVcdWFkYWZcdWFkYjBcdWFkYjFcdWFkYjJcdWFkYjNcdWFkYjRcdWFkYjVcdWFkYjZcdWFkYjhcdWFkYjlcdWFkYmFcdWFk''@;'; + put 'put ''YmJcdWFkYmNcdWFkYmRcdWFkYmVcdWFkYmZcdWFkYzJcdWFkYzNcdWFkYzVcdWFkYzZcdWFkYzdcdWFkYzlcdWFkY2FcdWFkY2JcdWFkY2NcdWFkY2RcdWFkY2VcdWFkY2ZcdWFkZDJcdWFkZDRcdWFkZDVcdWFkZDZcdWFkZDdcdWFkZDhcdWFkZDlcdWFkZGFcdWFkZGJcdWFkZGRcdWFkZGVc''@;'; + put 'put ''dWFkZGZcdWFkZTFcdWFkZTJcdWFkZTNcdWFkZTVcdWFkZTZcdWFkZTdcdWFkZThcdWFkZTlcdWFkZWFcdWFkZWJcdWFkZWNcdWFkZWRcdWFkZWVcdWFkZWZcdWFkZjBcdWFkZjFcdWFkZjJcdWFkZjNcdWFkZjRcdWFkZjVcdWFkZjZcdWFkZjdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9Qlsx''@;'; + put 'put ''MzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTMwXVtFXV09MzMyODArRSxMWzMzMjgwK0VdPUJbMTMwXVtFXSk7Zm9yKEJbMTMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVhZGZhXHVhZGZiXHVhZGZkXHVhZGZlXHVhZTAyXHVhZTAzXHVhZTA0XHVhZTA1XHVhZTA2XHVhZTA3XHVhZTBhXHVhZTBjXHVhZTBlXHVhZTBmXHVhZTEwXHVhZTExXHVhZTEyXHVhZTEzXHVhZTE1XHVhZTE2XHVhZTE3XHVhZTE4XHVhZTE5XHVhZTFhXHVhZTFiXHVhZTFjXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhZTFkXHVhZTFlXHVhZTFmXHVhZTIwXHVhZTIxXHVhZTIyXHVhZTIzXHVhZTI0XHVhZTI1XHVhZTI2XHVhZTI3XHVhZTI4XHVhZTI5XHVhZTJhXHVhZTJiXHVhZTJjXHVhZTJkXHVhZTJlXHVhZTJmXHVhZTMyXHVhZTMzXHVhZTM1XHVhZTM2''@;'; + put 'put ''XHVhZTM5XHVhZTNiXHVhZTNjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhZTNkXHVhZTNlXHVhZTNmXHVhZTQyXHVhZTQ0XHVhZTQ3XHVhZTQ4XHVhZTQ5XHVhZTRiXHVhZTRmXHVhZTUxXHVhZTUyXHVhZTUzXHVhZTU1XHVhZTU3XHVhZTU4XHVhZTU5XHVhZTVhXHVh''@;'; + put 'put ''ZTViXHVhZTVlXHVhZTYyXHVhZTYzXHVhZTY0XHVhZTY2XHVhZTY3XHVhZTZhXHVhZTZiXHVhZTZkXHVhZTZlXHVhZTZmXHVhZTcxXHVhZTcyXHVhZTczXHVhZTc0XHVhZTc1XHVhZTc2XHVhZTc3XHVhZTdhXHVhZTdlXHVhZTdmXHVhZTgwXHVhZTgxXHVhZTgyXHVhZTgzXHVhZTg2XHVhZTg3''@;'; + put 'put ''XHVhZTg4XHVhZTg5XHVhZThhXHVhZThiXHVhZThkXHVhZThlXHVhZThmXHVhZTkwXHVhZTkxXHVhZTkyXHVhZTkzXHVhZTk0XHVhZTk1XHVhZTk2XHVhZTk3XHVhZTk4XHVhZTk5XHVhZTlhXHVhZTliXHVhZTljXHVhZTlkXHVhZTllXHVhZTlmXHVhZWEwXHVhZWExXHVhZWEyXHVhZWEzXHVh''@;'; + put 'put ''ZWE0XHVhZWE1XHVhZWE2XHVhZWE3XHVhZWE4XHVhZWE5XHVhZWFhXHVhZWFiXHVhZWFjXHVhZWFkXHVhZWFlXHVhZWFmXHVhZWIwXHVhZWIxXHVhZWIyXHVhZWIzXHVhZWI0XHVhZWI1XHVhZWI2XHVhZWI3XHVhZWI4XHVhZWI5XHVhZWJhXHVhZWJiXHVhZWJmXHVhZWMxXHVhZWMyXHVhZWMz''@;'; + put 'put ''XHVhZWM1XHVhZWM2XHVhZWM3XHVhZWM4XHVhZWM5XHVhZWNhXHVhZWNiXHVhZWNlXHVhZWQyXHVhZWQzXHVhZWQ0XHVhZWQ1XHVhZWQ2XHVhZWQ3XHVhZWRhXHVhZWRiXHVhZWRkXHVhZWRlXHVhZWRmXHVhZWUwXHVhZWUxXHVhZWUyXHVhZWUzXHVhZWU0XHVhZWU1XHVmZmZkIi5zcGxpdCgi''@;'; + put 'put ''IiksRT0wO0UhPUJbMTMxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzMV1bRV1dPTMzNTM2K0UsTFszMzUzNitFXT1CWzEzMV1bRV0pO2ZvcihCWzEzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1YWVlNlx1YWVlN1x1YWVlOVx1YWVlYVx1YWVlY1x1YWVlZVx1YWVlZlx1YWVmMFx1YWVmMVx1YWVmMlx1YWVmM1x1YWVmNVx1YWVmNlx1YWVmN1x1YWVmOVx1YWVmYVx1YWVmYlx1YWVmZFx1YWVmZVx1YWVmZlx1YWYwMFx1YWYwMVx1YWYwMlx1YWYwM1x1YWYwNFx1''@;'; + put 'put ''YWYwNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWYwNlx1YWYwOVx1YWYwYVx1YWYwYlx1YWYwY1x1YWYwZVx1YWYwZlx1YWYxMVx1YWYxMlx1YWYxM1x1YWYxNFx1YWYxNVx1YWYxNlx1YWYxN1x1YWYxOFx1YWYxOVx1YWYxYVx1YWYxYlx1YWYxY1x1YWYxZFx1YWYx''@;'; + put 'put ''ZVx1YWYxZlx1YWYyMFx1YWYyMVx1YWYyMlx1YWYyM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWYyNFx1YWYyNVx1YWYyNlx1YWYyN1x1YWYyOFx1YWYyOVx1YWYyYVx1YWYyYlx1YWYyZVx1YWYyZlx1YWYzMVx1YWYzM1x1YWYzNVx1YWYzNlx1YWYzN1x1YWYzOFx1''@;'; + put 'put ''YWYzOVx1YWYzYVx1YWYzYlx1YWYzZVx1YWY0MFx1YWY0NFx1YWY0NVx1YWY0Nlx1YWY0N1x1YWY0YVx1YWY0Ylx1YWY0Y1x1YWY0ZFx1YWY0ZVx1YWY0Zlx1YWY1MVx1YWY1Mlx1YWY1M1x1YWY1NFx1YWY1NVx1YWY1Nlx1YWY1N1x1YWY1OFx1YWY1OVx1YWY1YVx1YWY1Ylx1YWY1ZVx1YWY1''@;'; + put 'put ''Zlx1YWY2MFx1YWY2MVx1YWY2Mlx1YWY2M1x1YWY2Nlx1YWY2N1x1YWY2OFx1YWY2OVx1YWY2YVx1YWY2Ylx1YWY2Y1x1YWY2ZFx1YWY2ZVx1YWY2Zlx1YWY3MFx1YWY3MVx1YWY3Mlx1YWY3M1x1YWY3NFx1YWY3NVx1YWY3Nlx1YWY3N1x1YWY3OFx1YWY3YVx1YWY3Ylx1YWY3Y1x1YWY3ZFx1''@;'; + put 'put ''YWY3ZVx1YWY3Zlx1YWY4MVx1YWY4Mlx1YWY4M1x1YWY4NVx1YWY4Nlx1YWY4N1x1YWY4OVx1YWY4YVx1YWY4Ylx1YWY4Y1x1YWY4ZFx1YWY4ZVx1YWY4Zlx1YWY5Mlx1YWY5M1x1YWY5NFx1YWY5Nlx1YWY5N1x1YWY5OFx1YWY5OVx1YWY5YVx1YWY5Ylx1YWY5ZFx1YWY5ZVx1YWY5Zlx1YWZh''@;'; + put 'put ''MFx1YWZhMVx1YWZhMlx1YWZhM1x1YWZhNFx1YWZhNVx1YWZhNlx1YWZhN1x1YWZhOFx1YWZhOVx1YWZhYVx1YWZhYlx1YWZhY1x1YWZhZFx1YWZhZVx1YWZhZlx1YWZiMFx1YWZiMVx1YWZiMlx1YWZiM1x1YWZiNFx1YWZiNVx1YWZiNlx1YWZiN1x1YWZiYVx1YWZiYlx1YWZiZFx1YWZiZVx1''@;'; + put 'put ''ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTMyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzJdW0VdXT0zMzc5MitFLExbMzM3OTIrRV09QlsxMzJdW0VdKTtmb3IoQlsxMzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWFmYmZcdWFmYzFcdWFmYzJcdWFmYzNcdWFmYzRcdWFmYzVcdWFmYzZcdWFmY2FcdWFmY2NcdWFmY2ZcdWFmZDBcdWFmZDFcdWFmZDJcdWFmZDNcdWFmZDVcdWFmZDZcdWFmZDdcdWFmZDhcdWFmZDlcdWFmZGFcdWFmZGJcdWFmZGRcdWFmZGVc''@;'; + put 'put ''dWFmZGZcdWFmZTBcdWFmZTFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWFmZTJcdWFmZTNcdWFmZTRcdWFmZTVcdWFmZTZcdWFmZTdcdWFmZWFcdWFmZWJcdWFmZWNcdWFmZWRcdWFmZWVcdWFmZWZcdWFmZjJcdWFmZjNcdWFmZjVcdWFmZjZcdWFmZjdcdWFmZjlcdWFm''@;'; + put 'put ''ZmFcdWFmZmJcdWFmZmNcdWFmZmRcdWFmZmVcdWFmZmZcdWIwMDJcdWIwMDNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIwMDVcdWIwMDZcdWIwMDdcdWIwMDhcdWIwMDlcdWIwMGFcdWIwMGJcdWIwMGRcdWIwMGVcdWIwMGZcdWIwMTFcdWIwMTJcdWIwMTNcdWIwMTVc''@;'; + put 'put ''dWIwMTZcdWIwMTdcdWIwMThcdWIwMTlcdWIwMWFcdWIwMWJcdWIwMWVcdWIwMWZcdWIwMjBcdWIwMjFcdWIwMjJcdWIwMjNcdWIwMjRcdWIwMjVcdWIwMjZcdWIwMjdcdWIwMjlcdWIwMmFcdWIwMmJcdWIwMmNcdWIwMmRcdWIwMmVcdWIwMmZcdWIwMzBcdWIwMzFcdWIwMzJcdWIwMzNcdWIw''@;'; + put 'put ''MzRcdWIwMzVcdWIwMzZcdWIwMzdcdWIwMzhcdWIwMzlcdWIwM2FcdWIwM2JcdWIwM2NcdWIwM2RcdWIwM2VcdWIwM2ZcdWIwNDBcdWIwNDFcdWIwNDJcdWIwNDNcdWIwNDZcdWIwNDdcdWIwNDlcdWIwNGJcdWIwNGRcdWIwNGZcdWIwNTBcdWIwNTFcdWIwNTJcdWIwNTZcdWIwNThcdWIwNWFc''@;'; + put 'put ''dWIwNWJcdWIwNWNcdWIwNWVcdWIwNWZcdWIwNjBcdWIwNjFcdWIwNjJcdWIwNjNcdWIwNjRcdWIwNjVcdWIwNjZcdWIwNjdcdWIwNjhcdWIwNjlcdWIwNmFcdWIwNmJcdWIwNmNcdWIwNmRcdWIwNmVcdWIwNmZcdWIwNzBcdWIwNzFcdWIwNzJcdWIwNzNcdWIwNzRcdWIwNzVcdWIwNzZcdWIw''@;'; + put 'put ''NzdcdWIwNzhcdWIwNzlcdWIwN2FcdWIwN2JcdWIwN2VcdWIwN2ZcdWIwODFcdWIwODJcdWIwODNcdWIwODVcdWIwODZcdWIwODdcdWIwODhcdWIwODlcdWIwOGFcdWIwOGJcdWIwOGVcdWIwOTBcdWIwOTJcdWIwOTNcdWIwOTRcdWIwOTVcdWIwOTZcdWIwOTdcdWIwOWJcdWIwOWRcdWIwOWVc''@;'; + put 'put ''dWIwYTNcdWIwYTRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTMzXVtFXV09MzQwNDgrRSxMWzM0MDQ4K0VdPUJbMTMzXVtFXSk7Zm9yKEJbMTM0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMGE1XHViMGE2XHViMGE3XHViMGFhXHViMGIwXHViMGIyXHViMGI2XHViMGI3XHViMGI5XHViMGJhXHViMGJiXHViMGJkXHViMGJlXHViMGJmXHViMGMwXHViMGMxXHViMGMyXHViMGMzXHViMGM2XHViMGNhXHViMGNi''@;'; + put 'put ''XHViMGNjXHViMGNkXHViMGNlXHViMGNmXHViMGQyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMGQzXHViMGQ1XHViMGQ2XHViMGQ3XHViMGQ5XHViMGRhXHViMGRiXHViMGRjXHViMGRkXHViMGRlXHViMGRmXHViMGUxXHViMGUyXHViMGUzXHViMGU0XHViMGU2XHVi''@;'; + put 'put ''MGU3XHViMGU4XHViMGU5XHViMGVhXHViMGViXHViMGVjXHViMGVkXHViMGVlXHViMGVmXHViMGYwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMGYxXHViMGYyXHViMGYzXHViMGY0XHViMGY1XHViMGY2XHViMGY3XHViMGY4XHViMGY5XHViMGZhXHViMGZiXHViMGZj''@;'; + put 'put ''XHViMGZkXHViMGZlXHViMGZmXHViMTAwXHViMTAxXHViMTAyXHViMTAzXHViMTA0XHViMTA1XHViMTA2XHViMTA3XHViMTBhXHViMTBkXHViMTBlXHViMTBmXHViMTExXHViMTE0XHViMTE1XHViMTE2XHViMTE3XHViMTFhXHViMTFlXHViMTFmXHViMTIwXHViMTIxXHViMTIyXHViMTI2XHVi''@;'; + put 'put ''MTI3XHViMTI5XHViMTJhXHViMTJiXHViMTJkXHViMTJlXHViMTJmXHViMTMwXHViMTMxXHViMTMyXHViMTMzXHViMTM2XHViMTNhXHViMTNiXHViMTNjXHViMTNkXHViMTNlXHViMTNmXHViMTQyXHViMTQzXHViMTQ1XHViMTQ2XHViMTQ3XHViMTQ5XHViMTRhXHViMTRiXHViMTRjXHViMTRk''@;'; + put 'put ''XHViMTRlXHViMTRmXHViMTUyXHViMTUzXHViMTU2XHViMTU3XHViMTU5XHViMTVhXHViMTViXHViMTVkXHViMTVlXHViMTVmXHViMTYxXHViMTYyXHViMTYzXHViMTY0XHViMTY1XHViMTY2XHViMTY3XHViMTY4XHViMTY5XHViMTZhXHViMTZiXHViMTZjXHViMTZkXHViMTZlXHViMTZmXHVi''@;'; + put 'put ''MTcwXHViMTcxXHViMTcyXHViMTczXHViMTc0XHViMTc1XHViMTc2XHViMTc3XHViMTdhXHViMTdiXHViMTdkXHViMTdlXHViMTdmXHViMTgxXHViMTgzXHViMTg0XHViMTg1XHViMTg2XHViMTg3XHViMThhXHViMThjXHViMThlXHViMThmXHViMTkwXHViMTkxXHViMTk1XHViMTk2XHViMTk3''@;'; + put 'put ''XHViMTk5XHViMTlhXHViMTliXHViMTlkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzNF1bRV1dPTM0MzA0K0UsTFszNDMwNCtFXT1CWzEzNF1bRV0pO2ZvcihCWzEzNV09Ilx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjE5ZVx1YjE5Zlx1YjFhMFx1YjFhMVx1YjFhMlx1YjFhM1x1YjFhNFx1YjFhNVx1YjFhNlx1YjFhN1x1YjFhOVx1YjFhYVx1YjFhYlx1YjFhY1x1YjFhZFx1YjFhZVx1YjFhZlx1YjFiMFx1YjFi''@;'; + put 'put ''MVx1YjFiMlx1YjFiM1x1YjFiNFx1YjFiNVx1YjFiNlx1YjFiN1x1YjFiOFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjFiOVx1YjFiYVx1YjFiYlx1YjFiY1x1YjFiZFx1YjFiZVx1YjFiZlx1YjFjMFx1YjFjMVx1YjFjMlx1YjFjM1x1YjFjNFx1YjFjNVx1YjFjNlx1''@;'; + put 'put ''YjFjN1x1YjFjOFx1YjFjOVx1YjFjYVx1YjFjYlx1YjFjZFx1YjFjZVx1YjFjZlx1YjFkMVx1YjFkMlx1YjFkM1x1YjFkNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjFkNlx1YjFkN1x1YjFkOFx1YjFkOVx1YjFkYVx1YjFkYlx1YjFkZVx1YjFlMFx1YjFlMVx1YjFl''@;'; + put 'put ''Mlx1YjFlM1x1YjFlNFx1YjFlNVx1YjFlNlx1YjFlN1x1YjFlYVx1YjFlYlx1YjFlZFx1YjFlZVx1YjFlZlx1YjFmMVx1YjFmMlx1YjFmM1x1YjFmNFx1YjFmNVx1YjFmNlx1YjFmN1x1YjFmOFx1YjFmYVx1YjFmY1x1YjFmZVx1YjFmZlx1YjIwMFx1YjIwMVx1YjIwMlx1YjIwM1x1YjIwNlx1''@;'; + put 'put ''YjIwN1x1YjIwOVx1YjIwYVx1YjIwZFx1YjIwZVx1YjIwZlx1YjIxMFx1YjIxMVx1YjIxMlx1YjIxM1x1YjIxNlx1YjIxOFx1YjIxYVx1YjIxYlx1YjIxY1x1YjIxZFx1YjIxZVx1YjIxZlx1YjIyMVx1YjIyMlx1YjIyM1x1YjIyNFx1YjIyNVx1YjIyNlx1YjIyN1x1YjIyOFx1YjIyOVx1YjIy''@;'; + put 'put ''YVx1YjIyYlx1YjIyY1x1YjIyZFx1YjIyZVx1YjIyZlx1YjIzMFx1YjIzMVx1YjIzMlx1YjIzM1x1YjIzNVx1YjIzNlx1YjIzN1x1YjIzOFx1YjIzOVx1YjIzYVx1YjIzYlx1YjIzZFx1YjIzZVx1YjIzZlx1YjI0MFx1YjI0MVx1YjI0Mlx1YjI0M1x1YjI0NFx1YjI0NVx1YjI0Nlx1YjI0N1x1''@;'; + put 'put ''YjI0OFx1YjI0OVx1YjI0YVx1YjI0Ylx1YjI0Y1x1YjI0ZFx1YjI0ZVx1YjI0Zlx1YjI1MFx1YjI1MVx1YjI1Mlx1YjI1M1x1YjI1NFx1YjI1NVx1YjI1Nlx1YjI1N1x1YjI1OVx1YjI1YVx1YjI1Ylx1YjI1ZFx1YjI1ZVx1YjI1Zlx1YjI2MVx1YjI2Mlx1YjI2M1x1YjI2NFx1YjI2NVx1YjI2''@;'; + put 'put ''Nlx1YjI2N1x1YjI2YVx1YjI2Ylx1YjI2Y1x1YjI2ZFx1YjI2ZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzVdW0VdXT0zNDU2MCtFLExbMzQ1NjArRV09QlsxMzVdW0VdKTtmb3IoQlsx''@;'; + put 'put ''MzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIyNmZcdWIyNzBcdWIyNzFcdWIyNzJcdWIyNzNcdWIyNzZcdWIyNzdcdWIyNzhcdWIyNzlcdWIyN2FcdWIyN2JcdWIyN2RcdWIyN2VcdWIyN2ZcdWIyODBcdWIyODFcdWIy''@;'; + put 'put ''ODJcdWIyODNcdWIyODZcdWIyODdcdWIyODhcdWIyOGFcdWIyOGJcdWIyOGNcdWIyOGRcdWIyOGVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIyOGZcdWIyOTJcdWIyOTNcdWIyOTVcdWIyOTZcdWIyOTdcdWIyOWJcdWIyOWNcdWIyOWRcdWIyOWVcdWIyOWZcdWIyYTJc''@;'; + put 'put ''dWIyYTRcdWIyYTdcdWIyYThcdWIyYTlcdWIyYWJcdWIyYWRcdWIyYWVcdWIyYWZcdWIyYjFcdWIyYjJcdWIyYjNcdWIyYjVcdWIyYjZcdWIyYjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIyYjhcdWIyYjlcdWIyYmFcdWIyYmJcdWIyYmNcdWIyYmRcdWIyYmVcdWIy''@;'; + put 'put ''YmZcdWIyYzBcdWIyYzFcdWIyYzJcdWIyYzNcdWIyYzRcdWIyYzVcdWIyYzZcdWIyYzdcdWIyY2FcdWIyY2JcdWIyY2RcdWIyY2VcdWIyY2ZcdWIyZDFcdWIyZDNcdWIyZDRcdWIyZDVcdWIyZDZcdWIyZDdcdWIyZGFcdWIyZGNcdWIyZGVcdWIyZGZcdWIyZTBcdWIyZTFcdWIyZTNcdWIyZTdc''@;'; + put 'put ''dWIyZTlcdWIyZWFcdWIyZjBcdWIyZjFcdWIyZjJcdWIyZjZcdWIyZmNcdWIyZmRcdWIyZmVcdWIzMDJcdWIzMDNcdWIzMDVcdWIzMDZcdWIzMDdcdWIzMDlcdWIzMGFcdWIzMGJcdWIzMGNcdWIzMGRcdWIzMGVcdWIzMGZcdWIzMTJcdWIzMTZcdWIzMTdcdWIzMThcdWIzMTlcdWIzMWFcdWIz''@;'; + put 'put ''MWJcdWIzMWRcdWIzMWVcdWIzMWZcdWIzMjBcdWIzMjFcdWIzMjJcdWIzMjNcdWIzMjRcdWIzMjVcdWIzMjZcdWIzMjdcdWIzMjhcdWIzMjlcdWIzMmFcdWIzMmJcdWIzMmNcdWIzMmRcdWIzMmVcdWIzMmZcdWIzMzBcdWIzMzFcdWIzMzJcdWIzMzNcdWIzMzRcdWIzMzVcdWIzMzZcdWIzMzdc''@;'; + put 'put ''dWIzMzhcdWIzMzlcdWIzM2FcdWIzM2JcdWIzM2NcdWIzM2RcdWIzM2VcdWIzM2ZcdWIzNDBcdWIzNDFcdWIzNDJcdWIzNDNcdWIzNDRcdWIzNDVcdWIzNDZcdWIzNDdcdWIzNDhcdWIzNDlcdWIzNGFcdWIzNGJcdWIzNGNcdWIzNGRcdWIzNGVcdWIzNGZcdWIzNTBcdWIzNTFcdWIzNTJcdWIz''@;'; + put 'put ''NTNcdWIzNTdcdWIzNTlcdWIzNWFcdWIzNWRcdWIzNjBcdWIzNjFcdWIzNjJcdWIzNjNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM2XVtFXV09MzQ4MTYrRSxMWzM0ODE2K0VdPUJbMTM2''@;'; + put 'put ''XVtFXSk7Zm9yKEJbMTM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMzY2XHViMzY4XHViMzZhXHViMzZjXHViMzZkXHViMzZmXHViMzcyXHViMzczXHViMzc1XHViMzc2XHViMzc3XHViMzc5XHViMzdhXHViMzdiXHVi''@;'; + put 'put ''MzdjXHViMzdkXHViMzdlXHViMzdmXHViMzgyXHViMzg2XHViMzg3XHViMzg4XHViMzg5XHViMzhhXHViMzhiXHViMzhkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMzhlXHViMzhmXHViMzkxXHViMzkyXHViMzkzXHViMzk1XHViMzk2XHViMzk3XHViMzk4XHViMzk5''@;'; + put 'put ''XHViMzlhXHViMzliXHViMzljXHViMzlkXHViMzllXHViMzlmXHViM2EyXHViM2EzXHViM2E0XHViM2E1XHViM2E2XHViM2E3XHViM2E5XHViM2FhXHViM2FiXHViM2FkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViM2FlXHViM2FmXHViM2IwXHViM2IxXHViM2IyXHVi''@;'; + put 'put ''M2IzXHViM2I0XHViM2I1XHViM2I2XHViM2I3XHViM2I4XHViM2I5XHViM2JhXHViM2JiXHViM2JjXHViM2JkXHViM2JlXHViM2JmXHViM2MwXHViM2MxXHViM2MyXHViM2MzXHViM2M2XHViM2M3XHViM2M5XHViM2NhXHViM2NkXHViM2NmXHViM2QxXHViM2QyXHViM2QzXHViM2Q2XHViM2Q4''@;'; + put 'put ''XHViM2RhXHViM2RjXHViM2RlXHViM2RmXHViM2UxXHViM2UyXHViM2UzXHViM2U1XHViM2U2XHViM2U3XHViM2U5XHViM2VhXHViM2ViXHViM2VjXHViM2VkXHViM2VlXHViM2VmXHViM2YwXHViM2YxXHViM2YyXHViM2YzXHViM2Y0XHViM2Y1XHViM2Y2XHViM2Y3XHViM2Y4XHViM2Y5XHVi''@;'; + put 'put ''M2ZhXHViM2ZiXHViM2ZkXHViM2ZlXHViM2ZmXHViNDAwXHViNDAxXHViNDAyXHViNDAzXHViNDA0XHViNDA1XHViNDA2XHViNDA3XHViNDA4XHViNDA5XHViNDBhXHViNDBiXHViNDBjXHViNDBkXHViNDBlXHViNDBmXHViNDExXHViNDEyXHViNDEzXHViNDE0XHViNDE1XHViNDE2XHViNDE3''@;'; + put 'put ''XHViNDE5XHViNDFhXHViNDFiXHViNDFkXHViNDFlXHViNDFmXHViNDIxXHViNDIyXHViNDIzXHViNDI0XHViNDI1XHViNDI2XHViNDI3XHViNDJhXHViNDJjXHViNDJkXHViNDJlXHViNDJmXHViNDMwXHViNDMxXHViNDMyXHViNDMzXHViNDM1XHViNDM2XHViNDM3XHViNDM4XHViNDM5XHVi''@;'; + put 'put ''NDNhXHViNDNiXHViNDNjXHViNDNkXHViNDNlXHViNDNmXHViNDQwXHViNDQxXHViNDQyXHViNDQzXHViNDQ0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzN11bRV1dPTM1MDcyK0UsTFsz''@;'; + put 'put ''NTA3MitFXT1CWzEzN11bRV0pO2ZvcihCWzEzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjQ0NVx1YjQ0Nlx1YjQ0N1x1YjQ0OFx1YjQ0OVx1YjQ0YVx1YjQ0Ylx1YjQ0Y1x1YjQ0ZFx1YjQ0ZVx1YjQ0Zlx1YjQ1Mlx1''@;'; + put 'put ''YjQ1M1x1YjQ1NVx1YjQ1Nlx1YjQ1N1x1YjQ1OVx1YjQ1YVx1YjQ1Ylx1YjQ1Y1x1YjQ1ZFx1YjQ1ZVx1YjQ1Zlx1YjQ2Mlx1YjQ2NFx1YjQ2Nlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjQ2N1x1YjQ2OFx1YjQ2OVx1YjQ2YVx1YjQ2Ylx1YjQ2ZFx1YjQ2ZVx1YjQ2''@;'; + put 'put ''Zlx1YjQ3MFx1YjQ3MVx1YjQ3Mlx1YjQ3M1x1YjQ3NFx1YjQ3NVx1YjQ3Nlx1YjQ3N1x1YjQ3OFx1YjQ3OVx1YjQ3YVx1YjQ3Ylx1YjQ3Y1x1YjQ3ZFx1YjQ3ZVx1YjQ3Zlx1YjQ4MVx1YjQ4Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjQ4M1x1YjQ4NFx1YjQ4NVx1''@;'; + put 'put ''YjQ4Nlx1YjQ4N1x1YjQ4OVx1YjQ4YVx1YjQ4Ylx1YjQ4Y1x1YjQ4ZFx1YjQ4ZVx1YjQ4Zlx1YjQ5MFx1YjQ5MVx1YjQ5Mlx1YjQ5M1x1YjQ5NFx1YjQ5NVx1YjQ5Nlx1YjQ5N1x1YjQ5OFx1YjQ5OVx1YjQ5YVx1YjQ5Ylx1YjQ5Y1x1YjQ5ZVx1YjQ5Zlx1YjRhMFx1YjRhMVx1YjRhMlx1YjRh''@;'; + put 'put ''M1x1YjRhNVx1YjRhNlx1YjRhN1x1YjRhOVx1YjRhYVx1YjRhYlx1YjRhZFx1YjRhZVx1YjRhZlx1YjRiMFx1YjRiMVx1YjRiMlx1YjRiM1x1YjRiNFx1YjRiNlx1YjRiOFx1YjRiYVx1YjRiYlx1YjRiY1x1YjRiZFx1YjRiZVx1YjRiZlx1YjRjMVx1YjRjMlx1YjRjM1x1YjRjNVx1YjRjNlx1''@;'; + put 'put ''YjRjN1x1YjRjOVx1YjRjYVx1YjRjYlx1YjRjY1x1YjRjZFx1YjRjZVx1YjRjZlx1YjRkMVx1YjRkMlx1YjRkM1x1YjRkNFx1YjRkNlx1YjRkN1x1YjRkOFx1YjRkOVx1YjRkYVx1YjRkYlx1YjRkZVx1YjRkZlx1YjRlMVx1YjRlMlx1YjRlNVx1YjRlN1x1YjRlOFx1YjRlOVx1YjRlYVx1YjRl''@;'; + put 'put ''Ylx1YjRlZVx1YjRmMFx1YjRmMlx1YjRmM1x1YjRmNFx1YjRmNVx1YjRmNlx1YjRmN1x1YjRmOVx1YjRmYVx1YjRmYlx1YjRmY1x1YjRmZFx1YjRmZVx1YjRmZlx1YjUwMFx1YjUwMVx1YjUwMlx1YjUwM1x1YjUwNFx1YjUwNVx1YjUwNlx1YjUwN1x1YjUwOFx1YjUwOVx1YjUwYVx1YjUwYlx1''@;'; + put 'put ''YjUwY1x1YjUwZFx1YjUwZVx1YjUwZlx1YjUxMFx1YjUxMVx1YjUxMlx1YjUxM1x1YjUxNlx1YjUxN1x1YjUxOVx1YjUxYVx1YjUxZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzhdW0Vd''@;'; + put 'put ''XT0zNTMyOCtFLExbMzUzMjgrRV09QlsxMzhdW0VdKTtmb3IoQlsxMzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI1MWVcdWI1MWZcdWI1MjBcdWI1MjFcdWI1MjJcdWI1MjNcdWI1MjZcdWI1MmJcdWI1MmNcdWI1MmRc''@;'; + put 'put ''dWI1MmVcdWI1MmZcdWI1MzJcdWI1MzNcdWI1MzVcdWI1MzZcdWI1MzdcdWI1MzlcdWI1M2FcdWI1M2JcdWI1M2NcdWI1M2RcdWI1M2VcdWI1M2ZcdWI1NDJcdWI1NDZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI1NDdcdWI1NDhcdWI1NDlcdWI1NGFcdWI1NGVcdWI1''@;'; + put 'put ''NGZcdWI1NTFcdWI1NTJcdWI1NTNcdWI1NTVcdWI1NTZcdWI1NTdcdWI1NThcdWI1NTlcdWI1NWFcdWI1NWJcdWI1NWVcdWI1NjJcdWI1NjNcdWI1NjRcdWI1NjVcdWI1NjZcdWI1NjdcdWI1NjhcdWI1NjlcdWI1NmFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI1NmJc''@;'; + put 'put ''dWI1NmNcdWI1NmRcdWI1NmVcdWI1NmZcdWI1NzBcdWI1NzFcdWI1NzJcdWI1NzNcdWI1NzRcdWI1NzVcdWI1NzZcdWI1NzdcdWI1NzhcdWI1NzlcdWI1N2FcdWI1N2JcdWI1N2NcdWI1N2RcdWI1N2VcdWI1N2ZcdWI1ODBcdWI1ODFcdWI1ODJcdWI1ODNcdWI1ODRcdWI1ODVcdWI1ODZcdWI1''@;'; + put 'put ''ODdcdWI1ODhcdWI1ODlcdWI1OGFcdWI1OGJcdWI1OGNcdWI1OGRcdWI1OGVcdWI1OGZcdWI1OTBcdWI1OTFcdWI1OTJcdWI1OTNcdWI1OTRcdWI1OTVcdWI1OTZcdWI1OTdcdWI1OThcdWI1OTlcdWI1OWFcdWI1OWJcdWI1OWNcdWI1OWRcdWI1OWVcdWI1OWZcdWI1YTJcdWI1YTNcdWI1YTVc''@;'; + put 'put ''dWI1YTZcdWI1YTdcdWI1YTlcdWI1YWNcdWI1YWRcdWI1YWVcdWI1YWZcdWI1YjJcdWI1YjZcdWI1YjdcdWI1YjhcdWI1YjlcdWI1YmFcdWI1YmVcdWI1YmZcdWI1YzFcdWI1YzJcdWI1YzNcdWI1YzVcdWI1YzZcdWI1YzdcdWI1YzhcdWI1YzlcdWI1Y2FcdWI1Y2JcdWI1Y2VcdWI1ZDJcdWI1''@;'; + put 'put ''ZDNcdWI1ZDRcdWI1ZDVcdWI1ZDZcdWI1ZDdcdWI1ZDlcdWI1ZGFcdWI1ZGJcdWI1ZGNcdWI1ZGRcdWI1ZGVcdWI1ZGZcdWI1ZTBcdWI1ZTFcdWI1ZTJcdWI1ZTNcdWI1ZTRcdWI1ZTVcdWI1ZTZcdWI1ZTdcdWI1ZThcdWI1ZTlcdWI1ZWFcdWI1ZWJcdWI1ZWRcdWI1ZWVcdWI1ZWZcdWI1ZjBc''@;'; + put 'put ''dWI1ZjFcdWI1ZjJcdWI1ZjNcdWI1ZjRcdWI1ZjVcdWI1ZjZcdWI1ZjdcdWI1ZjhcdWI1ZjlcdWI1ZmFcdWI1ZmJcdWI1ZmNcdWI1ZmRcdWI1ZmVcdWI1ZmZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzOV1bRV0uY2hhckNvZGVBdCgwKSYm''@;'; + put 'put ''KG1lW0JbMTM5XVtFXV09MzU1ODQrRSxMWzM1NTg0K0VdPUJbMTM5XVtFXSk7Zm9yKEJbMTQwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNjAwXHViNjAxXHViNjAyXHViNjAzXHViNjA0XHViNjA1XHViNjA2XHViNjA3''@;'; + put 'put ''XHViNjA4XHViNjA5XHViNjBhXHViNjBiXHViNjBjXHViNjBkXHViNjBlXHViNjBmXHViNjEyXHViNjEzXHViNjE1XHViNjE2XHViNjE3XHViNjE5XHViNjFhXHViNjFiXHViNjFjXHViNjFkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNjFlXHViNjFmXHViNjIwXHVi''@;'; + put 'put ''NjIxXHViNjIyXHViNjIzXHViNjI0XHViNjI2XHViNjI3XHViNjI4XHViNjI5XHViNjJhXHViNjJiXHViNjJkXHViNjJlXHViNjJmXHViNjMwXHViNjMxXHViNjMyXHViNjMzXHViNjM1XHViNjM2XHViNjM3XHViNjM4XHViNjM5XHViNjNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHViNjNiXHViNjNjXHViNjNkXHViNjNlXHViNjNmXHViNjQwXHViNjQxXHViNjQyXHViNjQzXHViNjQ0XHViNjQ1XHViNjQ2XHViNjQ3XHViNjQ5XHViNjRhXHViNjRiXHViNjRjXHViNjRkXHViNjRlXHViNjRmXHViNjUwXHViNjUxXHViNjUyXHViNjUzXHViNjU0XHViNjU1XHVi''@;'; + put 'put ''NjU2XHViNjU3XHViNjU4XHViNjU5XHViNjVhXHViNjViXHViNjVjXHViNjVkXHViNjVlXHViNjVmXHViNjYwXHViNjYxXHViNjYyXHViNjYzXHViNjY1XHViNjY2XHViNjY3XHViNjY5XHViNjZhXHViNjZiXHViNjZjXHViNjZkXHViNjZlXHViNjZmXHViNjcwXHViNjcxXHViNjcyXHViNjcz''@;'; + put 'put ''XHViNjc0XHViNjc1XHViNjc2XHViNjc3XHViNjc4XHViNjc5XHViNjdhXHViNjdiXHViNjdjXHViNjdkXHViNjdlXHViNjdmXHViNjgwXHViNjgxXHViNjgyXHViNjgzXHViNjg0XHViNjg1XHViNjg2XHViNjg3XHViNjg4XHViNjg5XHViNjhhXHViNjhiXHViNjhjXHViNjhkXHViNjhlXHVi''@;'; + put 'put ''NjhmXHViNjkwXHViNjkxXHViNjkyXHViNjkzXHViNjk0XHViNjk1XHViNjk2XHViNjk3XHViNjk4XHViNjk5XHViNjlhXHViNjliXHViNjllXHViNjlmXHViNmExXHViNmEyXHViNmEzXHViNmE1XHViNmE2XHViNmE3XHViNmE4XHViNmE5XHViNmFhXHViNmFkXHViNmFlXHViNmFmXHViNmIw''@;'; + put 'put ''XHViNmIyXHViNmIzXHViNmI0XHViNmI1XHViNmI2XHViNmI3XHViNmI4XHViNmI5XHViNmJhXHViNmJiXHViNmJjXHViNmJkXHViNmJlXHViNmJmXHViNmMwXHViNmMxXHViNmMyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDBdW0VdLmNo''@;'; + put 'put ''YXJDb2RlQXQoMCkmJihtZVtCWzE0MF1bRV1dPTM1ODQwK0UsTFszNTg0MCtFXT1CWzE0MF1bRV0pO2ZvcihCWzE0MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjZjM1x1YjZjNFx1YjZjNVx1YjZjNlx1YjZjN1x1YjZj''@;'; + put 'put ''OFx1YjZjOVx1YjZjYVx1YjZjYlx1YjZjY1x1YjZjZFx1YjZjZVx1YjZjZlx1YjZkMFx1YjZkMVx1YjZkMlx1YjZkM1x1YjZkNVx1YjZkNlx1YjZkN1x1YjZkOFx1YjZkOVx1YjZkYVx1YjZkYlx1YjZkY1x1YjZkZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjZkZVx1''@;'; + put 'put ''YjZkZlx1YjZlMFx1YjZlMVx1YjZlMlx1YjZlM1x1YjZlNFx1YjZlNVx1YjZlNlx1YjZlN1x1YjZlOFx1YjZlOVx1YjZlYVx1YjZlYlx1YjZlY1x1YjZlZFx1YjZlZVx1YjZlZlx1YjZmMVx1YjZmMlx1YjZmM1x1YjZmNVx1YjZmNlx1YjZmN1x1YjZmOVx1YjZmYVx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjZmYlx1YjZmY1x1YjZmZFx1YjZmZVx1YjZmZlx1YjcwMlx1YjcwM1x1YjcwNFx1YjcwNlx1YjcwN1x1YjcwOFx1YjcwOVx1YjcwYVx1YjcwYlx1YjcwY1x1YjcwZFx1YjcwZVx1YjcwZlx1YjcxMFx1YjcxMVx1YjcxMlx1YjcxM1x1YjcxNFx1YjcxNVx1''@;'; + put 'put ''YjcxNlx1YjcxN1x1YjcxOFx1YjcxOVx1YjcxYVx1YjcxYlx1YjcxY1x1YjcxZFx1YjcxZVx1YjcxZlx1YjcyMFx1YjcyMVx1YjcyMlx1YjcyM1x1YjcyNFx1YjcyNVx1YjcyNlx1YjcyN1x1YjcyYVx1YjcyYlx1YjcyZFx1YjcyZVx1YjczMVx1YjczMlx1YjczM1x1YjczNFx1YjczNVx1Yjcz''@;'; + put 'put ''Nlx1YjczN1x1YjczYVx1YjczY1x1YjczZFx1YjczZVx1YjczZlx1Yjc0MFx1Yjc0MVx1Yjc0Mlx1Yjc0M1x1Yjc0NVx1Yjc0Nlx1Yjc0N1x1Yjc0OVx1Yjc0YVx1Yjc0Ylx1Yjc0ZFx1Yjc0ZVx1Yjc0Zlx1Yjc1MFx1Yjc1MVx1Yjc1Mlx1Yjc1M1x1Yjc1Nlx1Yjc1N1x1Yjc1OFx1Yjc1OVx1''@;'; + put 'put ''Yjc1YVx1Yjc1Ylx1Yjc1Y1x1Yjc1ZFx1Yjc1ZVx1Yjc1Zlx1Yjc2MVx1Yjc2Mlx1Yjc2M1x1Yjc2NVx1Yjc2Nlx1Yjc2N1x1Yjc2OVx1Yjc2YVx1Yjc2Ylx1Yjc2Y1x1Yjc2ZFx1Yjc2ZVx1Yjc2Zlx1Yjc3Mlx1Yjc3NFx1Yjc3Nlx1Yjc3N1x1Yjc3OFx1Yjc3OVx1Yjc3YVx1Yjc3Ylx1Yjc3''@;'; + put 'put ''ZVx1Yjc3Zlx1Yjc4MVx1Yjc4Mlx1Yjc4M1x1Yjc4NVx1Yjc4Nlx1Yjc4N1x1Yjc4OFx1Yjc4OVx1Yjc4YVx1Yjc4Ylx1Yjc4ZVx1Yjc5M1x1Yjc5NFx1Yjc5NVx1Yjc5YVx1Yjc5Ylx1Yjc5ZFx1Yjc5ZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0MV0ubGVuZ3RoOysrRSk2NTUzMyE9''@;'; + put 'put ''PUJbMTQxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDFdW0VdXT0zNjA5NitFLExbMzYwOTYrRV09QlsxNDFdW0VdKTtmb3IoQlsxNDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI3OWZcdWI3YTFcdWI3YTJcdWI3''@;'; + put 'put ''YTNcdWI3YTRcdWI3YTVcdWI3YTZcdWI3YTdcdWI3YWFcdWI3YWVcdWI3YWZcdWI3YjBcdWI3YjFcdWI3YjJcdWI3YjNcdWI3YjZcdWI3YjdcdWI3YjlcdWI3YmFcdWI3YmJcdWI3YmNcdWI3YmRcdWI3YmVcdWI3YmZcdWI3YzBcdWI3YzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWI3YzJcdWI3YzNcdWI3YzRcdWI3YzVcdWI3YzZcdWI3YzhcdWI3Y2FcdWI3Y2JcdWI3Y2NcdWI3Y2RcdWI3Y2VcdWI3Y2ZcdWI3ZDBcdWI3ZDFcdWI3ZDJcdWI3ZDNcdWI3ZDRcdWI3ZDVcdWI3ZDZcdWI3ZDdcdWI3ZDhcdWI3ZDlcdWI3ZGFcdWI3ZGJcdWI3ZGNcdWI3ZGRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI3ZGVcdWI3ZGZcdWI3ZTBcdWI3ZTFcdWI3ZTJcdWI3ZTNcdWI3ZTRcdWI3ZTVcdWI3ZTZcdWI3ZTdcdWI3ZThcdWI3ZTlcdWI3ZWFcdWI3ZWJcdWI3ZWVcdWI3ZWZcdWI3ZjFcdWI3ZjJcdWI3ZjNcdWI3ZjVcdWI3ZjZcdWI3Zjdc''@;'; + put 'put ''dWI3ZjhcdWI3ZjlcdWI3ZmFcdWI3ZmJcdWI3ZmVcdWI4MDJcdWI4MDNcdWI4MDRcdWI4MDVcdWI4MDZcdWI4MGFcdWI4MGJcdWI4MGRcdWI4MGVcdWI4MGZcdWI4MTFcdWI4MTJcdWI4MTNcdWI4MTRcdWI4MTVcdWI4MTZcdWI4MTdcdWI4MWFcdWI4MWNcdWI4MWVcdWI4MWZcdWI4MjBcdWI4''@;'; + put 'put ''MjFcdWI4MjJcdWI4MjNcdWI4MjZcdWI4MjdcdWI4MjlcdWI4MmFcdWI4MmJcdWI4MmRcdWI4MmVcdWI4MmZcdWI4MzBcdWI4MzFcdWI4MzJcdWI4MzNcdWI4MzZcdWI4M2FcdWI4M2JcdWI4M2NcdWI4M2RcdWI4M2VcdWI4M2ZcdWI4NDFcdWI4NDJcdWI4NDNcdWI4NDVcdWI4NDZcdWI4NDdc''@;'; + put 'put ''dWI4NDhcdWI4NDlcdWI4NGFcdWI4NGJcdWI4NGNcdWI4NGRcdWI4NGVcdWI4NGZcdWI4NTBcdWI4NTJcdWI4NTRcdWI4NTVcdWI4NTZcdWI4NTdcdWI4NThcdWI4NTlcdWI4NWFcdWI4NWJcdWI4NWVcdWI4NWZcdWI4NjFcdWI4NjJcdWI4NjNcdWI4NjVcdWI4NjZcdWI4NjdcdWI4NjhcdWI4''@;'; + put 'put ''NjlcdWI4NmFcdWI4NmJcdWI4NmVcdWI4NzBcdWI4NzJcdWI4NzNcdWI4NzRcdWI4NzVcdWI4NzZcdWI4NzdcdWI4NzlcdWI4N2FcdWI4N2JcdWI4N2RcdWI4N2VcdWI4N2ZcdWI4ODBcdWI4ODFcdWI4ODJcdWI4ODNcdWI4ODRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDJdLmxlbmd0''@;'; + put 'put ''aDsrK0UpNjU1MzMhPT1CWzE0Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQyXVtFXV09MzYzNTIrRSxMWzM2MzUyK0VdPUJbMTQyXVtFXSk7Zm9yKEJbMTQzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViODg1XHVi''@;'; + put 'put ''ODg2XHViODg3XHViODg4XHViODg5XHViODhhXHViODhiXHViODhjXHViODhlXHViODhmXHViODkwXHViODkxXHViODkyXHViODkzXHViODk0XHViODk1XHViODk2XHViODk3XHViODk4XHViODk5XHViODlhXHViODliXHViODljXHViODlkXHViODllXHViODlmXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHViOGEwXHViOGExXHViOGEyXHViOGEzXHViOGE0XHViOGE1XHViOGE2XHViOGE3XHViOGE5XHViOGFhXHViOGFiXHViOGFjXHViOGFkXHViOGFlXHViOGFmXHViOGIxXHViOGIyXHViOGIzXHViOGI1XHViOGI2XHViOGI3XHViOGI5XHViOGJhXHViOGJiXHVi''@;'; + put 'put ''OGJjXHViOGJkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViOGJlXHViOGJmXHViOGMyXHViOGM0XHViOGM2XHViOGM3XHViOGM4XHViOGM5XHViOGNhXHViOGNiXHViOGNkXHViOGNlXHViOGNmXHViOGQxXHViOGQyXHViOGQzXHViOGQ1XHViOGQ2XHViOGQ3XHViOGQ4''@;'; + put 'put ''XHViOGQ5XHViOGRhXHViOGRiXHViOGRjXHViOGRlXHViOGUwXHViOGUyXHViOGUzXHViOGU0XHViOGU1XHViOGU2XHViOGU3XHViOGVhXHViOGViXHViOGVkXHViOGVlXHViOGVmXHViOGYxXHViOGYyXHViOGYzXHViOGY0XHViOGY1XHViOGY2XHViOGY3XHViOGZhXHViOGZjXHViOGZlXHVi''@;'; + put 'put ''OGZmXHViOTAwXHViOTAxXHViOTAyXHViOTAzXHViOTA1XHViOTA2XHViOTA3XHViOTA4XHViOTA5XHViOTBhXHViOTBiXHViOTBjXHViOTBkXHViOTBlXHViOTBmXHViOTEwXHViOTExXHViOTEyXHViOTEzXHViOTE0XHViOTE1XHViOTE2XHViOTE3XHViOTE5XHViOTFhXHViOTFiXHViOTFj''@;'; + put 'put ''XHViOTFkXHViOTFlXHViOTFmXHViOTIxXHViOTIyXHViOTIzXHViOTI0XHViOTI1XHViOTI2XHViOTI3XHViOTI4XHViOTI5XHViOTJhXHViOTJiXHViOTJjXHViOTJkXHViOTJlXHViOTJmXHViOTMwXHViOTMxXHViOTMyXHViOTMzXHViOTM0XHViOTM1XHViOTM2XHViOTM3XHViOTM4XHVi''@;'; + put 'put ''OTM5XHViOTNhXHViOTNiXHViOTNlXHViOTNmXHViOTQxXHViOTQyXHViOTQzXHViOTQ1XHViOTQ2XHViOTQ3XHViOTQ4XHViOTQ5XHViOTRhXHViOTRiXHViOTRkXHViOTRlXHViOTUwXHViOTUyXHViOTUzXHViOTU0XHViOTU1XHViOTU2XHViOTU3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0Uh''@;'; + put 'put ''PUJbMTQzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0M11bRV1dPTM2NjA4K0UsTFszNjYwOCtFXT1CWzE0M11bRV0pO2ZvcihCWzE0NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1Yjk1YVx1Yjk1Ylx1Yjk1ZFx1Yjk1ZVx1Yjk1Zlx1Yjk2MVx1Yjk2Mlx1Yjk2M1x1Yjk2NFx1Yjk2NVx1Yjk2Nlx1Yjk2N1x1Yjk2YVx1Yjk2Y1x1Yjk2ZVx1Yjk2Zlx1Yjk3MFx1Yjk3MVx1Yjk3Mlx1Yjk3M1x1Yjk3Nlx1Yjk3N1x1Yjk3OVx1Yjk3YVx1Yjk3Ylx1Yjk3ZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yjk3ZVx1Yjk3Zlx1Yjk4MFx1Yjk4MVx1Yjk4Mlx1Yjk4M1x1Yjk4Nlx1Yjk4OFx1Yjk4Ylx1Yjk4Y1x1Yjk4Zlx1Yjk5MFx1Yjk5MVx1Yjk5Mlx1Yjk5M1x1Yjk5NFx1Yjk5NVx1Yjk5Nlx1Yjk5N1x1Yjk5OFx1Yjk5OVx1Yjk5YVx1''@;'; + put 'put ''Yjk5Ylx1Yjk5Y1x1Yjk5ZFx1Yjk5ZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yjk5Zlx1YjlhMFx1YjlhMVx1YjlhMlx1YjlhM1x1YjlhNFx1YjlhNVx1YjlhNlx1YjlhN1x1YjlhOFx1YjlhOVx1YjlhYVx1YjlhYlx1YjlhZVx1YjlhZlx1YjliMVx1YjliMlx1Yjli''@;'; + put 'put ''M1x1YjliNVx1YjliNlx1YjliN1x1YjliOFx1YjliOVx1YjliYVx1YjliYlx1YjliZVx1YjljMFx1YjljMlx1YjljM1x1YjljNFx1YjljNVx1YjljNlx1YjljN1x1YjljYVx1YjljYlx1YjljZFx1YjlkM1x1YjlkNFx1YjlkNVx1YjlkNlx1YjlkN1x1YjlkYVx1YjlkY1x1YjlkZlx1YjllMFx1''@;'; + put 'put ''YjllMlx1YjllNlx1YjllN1x1YjllOVx1YjllYVx1YjllYlx1YjllZFx1YjllZVx1YjllZlx1YjlmMFx1YjlmMVx1YjlmMlx1YjlmM1x1YjlmNlx1YjlmYlx1YjlmY1x1YjlmZFx1YjlmZVx1YjlmZlx1YmEwMlx1YmEwM1x1YmEwNFx1YmEwNVx1YmEwNlx1YmEwN1x1YmEwOVx1YmEwYVx1YmEw''@;'; + put 'put ''Ylx1YmEwY1x1YmEwZFx1YmEwZVx1YmEwZlx1YmExMFx1YmExMVx1YmExMlx1YmExM1x1YmExNFx1YmExNlx1YmExN1x1YmExOFx1YmExOVx1YmExYVx1YmExYlx1YmExY1x1YmExZFx1YmExZVx1YmExZlx1YmEyMFx1YmEyMVx1YmEyMlx1YmEyM1x1YmEyNFx1YmEyNVx1YmEyNlx1YmEyN1x1''@;'; + put 'put ''YmEyOFx1YmEyOVx1YmEyYVx1YmEyYlx1YmEyY1x1YmEyZFx1YmEyZVx1YmEyZlx1YmEzMFx1YmEzMVx1YmEzMlx1YmEzM1x1YmEzNFx1YmEzNVx1YmEzNlx1YmEzN1x1YmEzYVx1YmEzYlx1YmEzZFx1YmEzZVx1YmEzZlx1YmE0MVx1YmE0M1x1YmE0NFx1YmE0NVx1YmE0Nlx1ZmZmZCIuc3Bs''@;'; + put 'put ''aXQoIiIpLEU9MDtFIT1CWzE0NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDRdW0VdXT0zNjg2NCtFLExbMzY4NjQrRV09QlsxNDRdW0VdKTtmb3IoQlsxNDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWJhNDdcdWJhNGFcdWJhNGNcdWJhNGZcdWJhNTBcdWJhNTFcdWJhNTJcdWJhNTZcdWJhNTdcdWJhNTlcdWJhNWFcdWJhNWJcdWJhNWRcdWJhNWVcdWJhNWZcdWJhNjBcdWJhNjFcdWJhNjJcdWJhNjNcdWJhNjZcdWJhNmFcdWJhNmJcdWJhNmNcdWJhNmRcdWJh''@;'; + put 'put ''NmVcdWJhNmZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJhNzJcdWJhNzNcdWJhNzVcdWJhNzZcdWJhNzdcdWJhNzlcdWJhN2FcdWJhN2JcdWJhN2NcdWJhN2RcdWJhN2VcdWJhN2ZcdWJhODBcdWJhODFcdWJhODJcdWJhODZcdWJhODhcdWJhODlcdWJhOGFcdWJhOGJc''@;'; + put 'put ''dWJhOGRcdWJhOGVcdWJhOGZcdWJhOTBcdWJhOTFcdWJhOTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJhOTNcdWJhOTRcdWJhOTVcdWJhOTZcdWJhOTdcdWJhOThcdWJhOTlcdWJhOWFcdWJhOWJcdWJhOWNcdWJhOWRcdWJhOWVcdWJhOWZcdWJhYTBcdWJhYTFcdWJh''@;'; + put 'put ''YTJcdWJhYTNcdWJhYTRcdWJhYTVcdWJhYTZcdWJhYTdcdWJhYWFcdWJhYWRcdWJhYWVcdWJhYWZcdWJhYjFcdWJhYjNcdWJhYjRcdWJhYjVcdWJhYjZcdWJhYjdcdWJhYmFcdWJhYmNcdWJhYmVcdWJhYmZcdWJhYzBcdWJhYzFcdWJhYzJcdWJhYzNcdWJhYzVcdWJhYzZcdWJhYzdcdWJhYzlc''@;'; + put 'put ''dWJhY2FcdWJhY2JcdWJhY2NcdWJhY2RcdWJhY2VcdWJhY2ZcdWJhZDBcdWJhZDFcdWJhZDJcdWJhZDNcdWJhZDRcdWJhZDVcdWJhZDZcdWJhZDdcdWJhZGFcdWJhZGJcdWJhZGNcdWJhZGRcdWJhZGVcdWJhZGZcdWJhZTBcdWJhZTFcdWJhZTJcdWJhZTNcdWJhZTRcdWJhZTVcdWJhZTZcdWJh''@;'; + put 'put ''ZTdcdWJhZThcdWJhZTlcdWJhZWFcdWJhZWJcdWJhZWNcdWJhZWRcdWJhZWVcdWJhZWZcdWJhZjBcdWJhZjFcdWJhZjJcdWJhZjNcdWJhZjRcdWJhZjVcdWJhZjZcdWJhZjdcdWJhZjhcdWJhZjlcdWJhZmFcdWJhZmJcdWJhZmRcdWJhZmVcdWJhZmZcdWJiMDFcdWJiMDJcdWJiMDNcdWJiMDVc''@;'; + put 'put ''dWJiMDZcdWJiMDdcdWJiMDhcdWJiMDlcdWJiMGFcdWJiMGJcdWJiMGNcdWJiMGVcdWJiMTBcdWJiMTJcdWJiMTNcdWJiMTRcdWJiMTVcdWJiMTZcdWJiMTdcdWJiMTlcdWJiMWFcdWJiMWJcdWJiMWRcdWJiMWVcdWJiMWZcdWJiMjFcdWJiMjJcdWJiMjNcdWJiMjRcdWJiMjVcdWJiMjZcdWJi''@;'; + put 'put ''MjdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ1XVtFXV09MzcxMjArRSxMWzM3MTIwK0VdPUJbMTQ1XVtFXSk7Zm9yKEJbMTQ2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViYjI4XHViYjJhXHViYjJjXHViYjJkXHViYjJlXHViYjJmXHViYjMwXHViYjMxXHViYjMyXHViYjMzXHViYjM3XHViYjM5XHViYjNhXHViYjNmXHViYjQwXHViYjQxXHViYjQyXHViYjQzXHViYjQ2XHViYjQ4XHViYjRhXHViYjRiXHVi''@;'; + put 'put ''YjRjXHViYjRlXHViYjUxXHViYjUyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViYjUzXHViYjU1XHViYjU2XHViYjU3XHViYjU5XHViYjVhXHViYjViXHViYjVjXHViYjVkXHViYjVlXHViYjVmXHViYjYwXHViYjYyXHViYjY0XHViYjY1XHViYjY2XHViYjY3XHViYjY4''@;'; + put 'put ''XHViYjY5XHViYjZhXHViYjZiXHViYjZkXHViYjZlXHViYjZmXHViYjcwXHViYjcxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViYjcyXHViYjczXHViYjc0XHViYjc1XHViYjc2XHViYjc3XHViYjc4XHViYjc5XHViYjdhXHViYjdiXHViYjdjXHViYjdkXHViYjdlXHVi''@;'; + put 'put ''YjdmXHViYjgwXHViYjgxXHViYjgyXHViYjgzXHViYjg0XHViYjg1XHViYjg2XHViYjg3XHViYjg5XHViYjhhXHViYjhiXHViYjhkXHViYjhlXHViYjhmXHViYjkxXHViYjkyXHViYjkzXHViYjk0XHViYjk1XHViYjk2XHViYjk3XHViYjk4XHViYjk5XHViYjlhXHViYjliXHViYjljXHViYjlk''@;'; + put 'put ''XHViYjllXHViYjlmXHViYmEwXHViYmExXHViYmEyXHViYmEzXHViYmE1XHViYmE2XHViYmE3XHViYmE5XHViYmFhXHViYmFiXHViYmFkXHViYmFlXHViYmFmXHViYmIwXHViYmIxXHViYmIyXHViYmIzXHViYmI1XHViYmI2XHViYmI4XHViYmI5XHViYmJhXHViYmJiXHViYmJjXHViYmJkXHVi''@;'; + put 'put ''YmJlXHViYmJmXHViYmMxXHViYmMyXHViYmMzXHViYmM1XHViYmM2XHViYmM3XHViYmM5XHViYmNhXHViYmNiXHViYmNjXHViYmNkXHViYmNlXHViYmNmXHViYmQxXHViYmQyXHViYmQ0XHViYmQ1XHViYmQ2XHViYmQ3XHViYmQ4XHViYmQ5XHViYmRhXHViYmRiXHViYmRjXHViYmRkXHViYmRl''@;'; + put 'put ''XHViYmRmXHViYmUwXHViYmUxXHViYmUyXHViYmUzXHViYmU0XHViYmU1XHViYmU2XHViYmU3XHViYmU4XHViYmU5XHViYmVhXHViYmViXHViYmVjXHViYmVkXHViYmVlXHViYmVmXHViYmYwXHViYmYxXHViYmYyXHViYmYzXHViYmY0XHViYmY1XHViYmY2XHViYmY3XHViYmZhXHViYmZiXHVi''@;'; + put 'put ''YmZkXHViYmZlXHViYzAxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0Nl1bRV1dPTM3Mzc2K0UsTFszNzM3NitFXT1CWzE0Nl1bRV0pO2ZvcihCWzE0N109Ilx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmMwM1x1YmMwNFx1YmMwNVx1YmMwNlx1YmMwN1x1YmMwYVx1YmMwZVx1YmMxMFx1YmMxMlx1YmMxM1x1YmMxOVx1YmMxYVx1YmMyMFx1YmMyMVx1YmMyMlx1YmMyM1x1YmMyNlx1YmMyOFx1YmMyYVx1YmMyYlx1''@;'; + put 'put ''YmMyY1x1YmMyZVx1YmMyZlx1YmMzMlx1YmMzM1x1YmMzNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmMzNlx1YmMzN1x1YmMzOVx1YmMzYVx1YmMzYlx1YmMzY1x1YmMzZFx1YmMzZVx1YmMzZlx1YmM0Mlx1YmM0Nlx1YmM0N1x1YmM0OFx1YmM0YVx1YmM0Ylx1YmM0''@;'; + put 'put ''ZVx1YmM0Zlx1YmM1MVx1YmM1Mlx1YmM1M1x1YmM1NFx1YmM1NVx1YmM1Nlx1YmM1N1x1YmM1OFx1YmM1OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmM1YVx1YmM1Ylx1YmM1Y1x1YmM1ZVx1YmM1Zlx1YmM2MFx1YmM2MVx1YmM2Mlx1YmM2M1x1YmM2NFx1YmM2NVx1''@;'; + put 'put ''YmM2Nlx1YmM2N1x1YmM2OFx1YmM2OVx1YmM2YVx1YmM2Ylx1YmM2Y1x1YmM2ZFx1YmM2ZVx1YmM2Zlx1YmM3MFx1YmM3MVx1YmM3Mlx1YmM3M1x1YmM3NFx1YmM3NVx1YmM3Nlx1YmM3N1x1YmM3OFx1YmM3OVx1YmM3YVx1YmM3Ylx1YmM3Y1x1YmM3ZFx1YmM3ZVx1YmM3Zlx1YmM4MFx1YmM4''@;'; + put 'put ''MVx1YmM4Mlx1YmM4M1x1YmM4Nlx1YmM4N1x1YmM4OVx1YmM4YVx1YmM4ZFx1YmM4Zlx1YmM5MFx1YmM5MVx1YmM5Mlx1YmM5M1x1YmM5Nlx1YmM5OFx1YmM5Ylx1YmM5Y1x1YmM5ZFx1YmM5ZVx1YmM5Zlx1YmNhMlx1YmNhM1x1YmNhNVx1YmNhNlx1YmNhOVx1YmNhYVx1YmNhYlx1YmNhY1x1''@;'; + put 'put ''YmNhZFx1YmNhZVx1YmNhZlx1YmNiMlx1YmNiNlx1YmNiN1x1YmNiOFx1YmNiOVx1YmNiYVx1YmNiYlx1YmNiZVx1YmNiZlx1YmNjMVx1YmNjMlx1YmNjM1x1YmNjNVx1YmNjNlx1YmNjN1x1YmNjOFx1YmNjOVx1YmNjYVx1YmNjYlx1YmNjY1x1YmNjZVx1YmNkMlx1YmNkM1x1YmNkNFx1YmNk''@;'; + put 'put ''Nlx1YmNkN1x1YmNkOVx1YmNkYVx1YmNkYlx1YmNkZFx1YmNkZVx1YmNkZlx1YmNlMFx1YmNlMVx1YmNlMlx1YmNlM1x1YmNlNFx1YmNlNVx1YmNlNlx1YmNlN1x1YmNlOFx1YmNlOVx1YmNlYVx1YmNlYlx1YmNlY1x1YmNlZFx1YmNlZVx1YmNlZlx1YmNmMFx1YmNmMVx1YmNmMlx1YmNmM1x1''@;'; + put 'put ''YmNmN1x1YmNmOVx1YmNmYVx1YmNmYlx1YmNmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDddW0VdXT0zNzYzMitFLExbMzc2MzIrRV09QlsxNDddW0VdKTtmb3IoQlsxNDhdPSJcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJjZmVcdWJjZmZcdWJkMDBcdWJkMDFcdWJkMDJcdWJkMDNcdWJkMDZcdWJkMDhcdWJkMGFcdWJkMGJcdWJkMGNcdWJkMGRcdWJkMGVcdWJkMGZcdWJkMTFcdWJkMTJcdWJkMTNcdWJkMTVc''@;'; + put 'put ''dWJkMTZcdWJkMTdcdWJkMThcdWJkMTlcdWJkMWFcdWJkMWJcdWJkMWNcdWJkMWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJkMWVcdWJkMWZcdWJkMjBcdWJkMjFcdWJkMjJcdWJkMjNcdWJkMjVcdWJkMjZcdWJkMjdcdWJkMjhcdWJkMjlcdWJkMmFcdWJkMmJcdWJk''@;'; + put 'put ''MmRcdWJkMmVcdWJkMmZcdWJkMzBcdWJkMzFcdWJkMzJcdWJkMzNcdWJkMzRcdWJkMzVcdWJkMzZcdWJkMzdcdWJkMzhcdWJkMzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJkM2FcdWJkM2JcdWJkM2NcdWJkM2RcdWJkM2VcdWJkM2ZcdWJkNDFcdWJkNDJcdWJkNDNc''@;'; + put 'put ''dWJkNDRcdWJkNDVcdWJkNDZcdWJkNDdcdWJkNGFcdWJkNGJcdWJkNGRcdWJkNGVcdWJkNGZcdWJkNTFcdWJkNTJcdWJkNTNcdWJkNTRcdWJkNTVcdWJkNTZcdWJkNTdcdWJkNWFcdWJkNWJcdWJkNWNcdWJkNWRcdWJkNWVcdWJkNWZcdWJkNjBcdWJkNjFcdWJkNjJcdWJkNjNcdWJkNjVcdWJk''@;'; + put 'put ''NjZcdWJkNjdcdWJkNjlcdWJkNmFcdWJkNmJcdWJkNmNcdWJkNmRcdWJkNmVcdWJkNmZcdWJkNzBcdWJkNzFcdWJkNzJcdWJkNzNcdWJkNzRcdWJkNzVcdWJkNzZcdWJkNzdcdWJkNzhcdWJkNzlcdWJkN2FcdWJkN2JcdWJkN2NcdWJkN2RcdWJkN2VcdWJkN2ZcdWJkODJcdWJkODNcdWJkODVc''@;'; + put 'put ''dWJkODZcdWJkOGJcdWJkOGNcdWJkOGRcdWJkOGVcdWJkOGZcdWJkOTJcdWJkOTRcdWJkOTZcdWJkOTdcdWJkOThcdWJkOWJcdWJkOWRcdWJkOWVcdWJkOWZcdWJkYTBcdWJkYTFcdWJkYTJcdWJkYTNcdWJkYTVcdWJkYTZcdWJkYTdcdWJkYThcdWJkYTlcdWJkYWFcdWJkYWJcdWJkYWNcdWJk''@;'; + put 'put ''YWRcdWJkYWVcdWJkYWZcdWJkYjFcdWJkYjJcdWJkYjNcdWJkYjRcdWJkYjVcdWJkYjZcdWJkYjdcdWJkYjlcdWJkYmFcdWJkYmJcdWJkYmNcdWJkYmRcdWJkYmVcdWJkYmZcdWJkYzBcdWJkYzFcdWJkYzJcdWJkYzNcdWJkYzRcdWJkYzVcdWJkYzZcdWJkYzdcdWJkYzhcdWJkYzlcdWJkY2Fc''@;'; + put 'put ''dWJkY2JcdWJkY2NcdWJkY2RcdWJkY2VcdWJkY2ZcdWJkZDBcdWJkZDFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ4XVtFXV09Mzc4ODgrRSxMWzM3ODg4K0VdPUJbMTQ4XVtFXSk7Zm9y''@;'; + put 'put ''KEJbMTQ5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViZGQyXHViZGQzXHViZGQ2XHViZGQ3XHViZGQ5XHViZGRhXHViZGRiXHViZGRkXHViZGRlXHViZGRmXHViZGUwXHViZGUxXHViZGUyXHViZGUzXHViZGU0XHViZGU1''@;'; + put 'put ''XHViZGU2XHViZGU3XHViZGU4XHViZGVhXHViZGViXHViZGVjXHViZGVkXHViZGVlXHViZGVmXHViZGYxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViZGYyXHViZGYzXHViZGY1XHViZGY2XHViZGY3XHViZGY5XHViZGZhXHViZGZiXHViZGZjXHViZGZkXHViZGZlXHVi''@;'; + put 'put ''ZGZmXHViZTAxXHViZTAyXHViZTA0XHViZTA2XHViZTA3XHViZTA4XHViZTA5XHViZTBhXHViZTBiXHViZTBlXHViZTBmXHViZTExXHViZTEyXHViZTEzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViZTE1XHViZTE2XHViZTE3XHViZTE4XHViZTE5XHViZTFhXHViZTFi''@;'; + put 'put ''XHViZTFlXHViZTIwXHViZTIxXHViZTIyXHViZTIzXHViZTI0XHViZTI1XHViZTI2XHViZTI3XHViZTI4XHViZTI5XHViZTJhXHViZTJiXHViZTJjXHViZTJkXHViZTJlXHViZTJmXHViZTMwXHViZTMxXHViZTMyXHViZTMzXHViZTM0XHViZTM1XHViZTM2XHViZTM3XHViZTM4XHViZTM5XHVi''@;'; + put 'put ''ZTNhXHViZTNiXHViZTNjXHViZTNkXHViZTNlXHViZTNmXHViZTQwXHViZTQxXHViZTQyXHViZTQzXHViZTQ2XHViZTQ3XHViZTQ5XHViZTRhXHViZTRiXHViZTRkXHViZTRmXHViZTUwXHViZTUxXHViZTUyXHViZTUzXHViZTU2XHViZTU4XHViZTVjXHViZTVkXHViZTVlXHViZTVmXHViZTYy''@;'; + put 'put ''XHViZTYzXHViZTY1XHViZTY2XHViZTY3XHViZTY5XHViZTZiXHViZTZjXHViZTZkXHViZTZlXHViZTZmXHViZTcyXHViZTc2XHViZTc3XHViZTc4XHViZTc5XHViZTdhXHViZTdlXHViZTdmXHViZTgxXHViZTgyXHViZTgzXHViZTg1XHViZTg2XHViZTg3XHViZTg4XHViZTg5XHViZThhXHVi''@;'; + put 'put ''ZThiXHViZThlXHViZTkyXHViZTkzXHViZTk0XHViZTk1XHViZTk2XHViZTk3XHViZTlhXHViZTliXHViZTljXHViZTlkXHViZTllXHViZTlmXHViZWEwXHViZWExXHViZWEyXHViZWEzXHViZWE0XHViZWE1XHViZWE2XHViZWE3XHViZWE5XHViZWFhXHViZWFiXHViZWFjXHViZWFkXHViZWFl''@;'; + put 'put ''XHViZWFmXHViZWIwXHViZWIxXHViZWIyXHViZWIzXHViZWI0XHViZWI1XHViZWI2XHViZWI3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0OV1bRV1dPTM4MTQ0K0UsTFszODE0NCtFXT1C''@;'; + put 'put ''WzE0OV1bRV0pO2ZvcihCWzE1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmViOFx1YmViOVx1YmViYVx1YmViYlx1YmViY1x1YmViZFx1YmViZVx1YmViZlx1YmVjMFx1YmVjMVx1YmVjMlx1YmVjM1x1YmVjNFx1YmVj''@;'; + put 'put ''NVx1YmVjNlx1YmVjN1x1YmVjOFx1YmVjOVx1YmVjYVx1YmVjYlx1YmVjY1x1YmVjZFx1YmVjZVx1YmVjZlx1YmVkMlx1YmVkM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmVkNVx1YmVkNlx1YmVkOVx1YmVkYVx1YmVkYlx1YmVkY1x1YmVkZFx1YmVkZVx1YmVkZlx1''@;'; + put 'put ''YmVlMVx1YmVlMlx1YmVlNlx1YmVlN1x1YmVlOFx1YmVlOVx1YmVlYVx1YmVlYlx1YmVlZFx1YmVlZVx1YmVlZlx1YmVmMFx1YmVmMVx1YmVmMlx1YmVmM1x1YmVmNFx1YmVmNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmVmNlx1YmVmN1x1YmVmOFx1YmVmOVx1YmVm''@;'; + put 'put ''YVx1YmVmYlx1YmVmY1x1YmVmZFx1YmVmZVx1YmVmZlx1YmYwMFx1YmYwMlx1YmYwM1x1YmYwNFx1YmYwNVx1YmYwNlx1YmYwN1x1YmYwYVx1YmYwYlx1YmYwY1x1YmYwZFx1YmYwZVx1YmYwZlx1YmYxMFx1YmYxMVx1YmYxMlx1YmYxM1x1YmYxNFx1YmYxNVx1YmYxNlx1YmYxN1x1YmYxYVx1''@;'; + put 'put ''YmYxZVx1YmYxZlx1YmYyMFx1YmYyMVx1YmYyMlx1YmYyM1x1YmYyNFx1YmYyNVx1YmYyNlx1YmYyN1x1YmYyOFx1YmYyOVx1YmYyYVx1YmYyYlx1YmYyY1x1YmYyZFx1YmYyZVx1YmYyZlx1YmYzMFx1YmYzMVx1YmYzMlx1YmYzM1x1YmYzNFx1YmYzNVx1YmYzNlx1YmYzN1x1YmYzOFx1YmYz''@;'; + put 'put ''OVx1YmYzYVx1YmYzYlx1YmYzY1x1YmYzZFx1YmYzZVx1YmYzZlx1YmY0Mlx1YmY0M1x1YmY0NVx1YmY0Nlx1YmY0N1x1YmY0OVx1YmY0YVx1YmY0Ylx1YmY0Y1x1YmY0ZFx1YmY0ZVx1YmY0Zlx1YmY1Mlx1YmY1M1x1YmY1NFx1YmY1Nlx1YmY1N1x1YmY1OFx1YmY1OVx1YmY1YVx1YmY1Ylx1''@;'; + put 'put ''YmY1Y1x1YmY1ZFx1YmY1ZVx1YmY1Zlx1YmY2MFx1YmY2MVx1YmY2Mlx1YmY2M1x1YmY2NFx1YmY2NVx1YmY2Nlx1YmY2N1x1YmY2OFx1YmY2OVx1YmY2YVx1YmY2Ylx1YmY2Y1x1YmY2ZFx1YmY2ZVx1YmY2Zlx1YmY3MFx1YmY3MVx1YmY3Mlx1YmY3M1x1YmY3NFx1YmY3NVx1YmY3Nlx1YmY3''@;'; + put 'put ''N1x1YmY3OFx1YmY3OVx1YmY3YVx1YmY3Ylx1YmY3Y1x1YmY3ZFx1YmY3ZVx1YmY3Zlx1YmY4MFx1YmY4MVx1YmY4Mlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTUwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTBdW0VdXT0zODQwMCtF''@;'; + put 'put ''LExbMzg0MDArRV09QlsxNTBdW0VdKTtmb3IoQlsxNTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJmODNcdWJmODRcdWJmODVcdWJmODZcdWJmODdcdWJmODhcdWJmODlcdWJmOGFcdWJmOGJcdWJmOGNcdWJmOGRcdWJm''@;'; + put 'put ''OGVcdWJmOGZcdWJmOTBcdWJmOTFcdWJmOTJcdWJmOTNcdWJmOTVcdWJmOTZcdWJmOTdcdWJmOThcdWJmOTlcdWJmOWFcdWJmOWJcdWJmOWNcdWJmOWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJmOWVcdWJmOWZcdWJmYTBcdWJmYTFcdWJmYTJcdWJmYTNcdWJmYTRc''@;'; + put 'put ''dWJmYTVcdWJmYTZcdWJmYTdcdWJmYThcdWJmYTlcdWJmYWFcdWJmYWJcdWJmYWNcdWJmYWRcdWJmYWVcdWJmYWZcdWJmYjFcdWJmYjJcdWJmYjNcdWJmYjRcdWJmYjVcdWJmYjZcdWJmYjdcdWJmYjhcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJmYjlcdWJmYmFcdWJm''@;'; + put 'put ''YmJcdWJmYmNcdWJmYmRcdWJmYmVcdWJmYmZcdWJmYzBcdWJmYzFcdWJmYzJcdWJmYzNcdWJmYzRcdWJmYzZcdWJmYzdcdWJmYzhcdWJmYzlcdWJmY2FcdWJmY2JcdWJmY2VcdWJmY2ZcdWJmZDFcdWJmZDJcdWJmZDNcdWJmZDVcdWJmZDZcdWJmZDdcdWJmZDhcdWJmZDlcdWJmZGFcdWJmZGJc''@;'; + put 'put ''dWJmZGRcdWJmZGVcdWJmZTBcdWJmZTJcdWJmZTNcdWJmZTRcdWJmZTVcdWJmZTZcdWJmZTdcdWJmZThcdWJmZTlcdWJmZWFcdWJmZWJcdWJmZWNcdWJmZWRcdWJmZWVcdWJmZWZcdWJmZjBcdWJmZjFcdWJmZjJcdWJmZjNcdWJmZjRcdWJmZjVcdWJmZjZcdWJmZjdcdWJmZjhcdWJmZjlcdWJm''@;'; + put 'put ''ZmFcdWJmZmJcdWJmZmNcdWJmZmRcdWJmZmVcdWJmZmZcdWMwMDBcdWMwMDFcdWMwMDJcdWMwMDNcdWMwMDRcdWMwMDVcdWMwMDZcdWMwMDdcdWMwMDhcdWMwMDlcdWMwMGFcdWMwMGJcdWMwMGNcdWMwMGRcdWMwMGVcdWMwMGZcdWMwMTBcdWMwMTFcdWMwMTJcdWMwMTNcdWMwMTRcdWMwMTVc''@;'; + put 'put ''dWMwMTZcdWMwMTdcdWMwMThcdWMwMTlcdWMwMWFcdWMwMWJcdWMwMWNcdWMwMWRcdWMwMWVcdWMwMWZcdWMwMjBcdWMwMjFcdWMwMjJcdWMwMjNcdWMwMjRcdWMwMjVcdWMwMjZcdWMwMjdcdWMwMjhcdWMwMjlcdWMwMmFcdWMwMmJcdWMwMmNcdWMwMmRcdWMwMmVcdWMwMmZcdWMwMzBcdWMw''@;'; + put 'put ''MzFcdWMwMzJcdWMwMzNcdWMwMzRcdWMwMzVcdWMwMzZcdWMwMzdcdWMwMzhcdWMwMzlcdWMwM2FcdWMwM2JcdWMwM2RcdWMwM2VcdWMwM2ZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTUx''@;'; + put 'put ''XVtFXV09Mzg2NTYrRSxMWzM4NjU2K0VdPUJbMTUxXVtFXSk7Zm9yKEJbMTUyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjMDQwXHVjMDQxXHVjMDQyXHVjMDQzXHVjMDQ0XHVjMDQ1XHVjMDQ2XHVjMDQ3XHVjMDQ4XHVj''@;'; + put 'put ''MDQ5XHVjMDRhXHVjMDRiXHVjMDRjXHVjMDRkXHVjMDRlXHVjMDRmXHVjMDUwXHVjMDUyXHVjMDUzXHVjMDU0XHVjMDU1XHVjMDU2XHVjMDU3XHVjMDU5XHVjMDVhXHVjMDViXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjMDVkXHVjMDVlXHVjMDVmXHVjMDYxXHVjMDYy''@;'; + put 'put ''XHVjMDYzXHVjMDY0XHVjMDY1XHVjMDY2XHVjMDY3XHVjMDZhXHVjMDZiXHVjMDZjXHVjMDZkXHVjMDZlXHVjMDZmXHVjMDcwXHVjMDcxXHVjMDcyXHVjMDczXHVjMDc0XHVjMDc1XHVjMDc2XHVjMDc3XHVjMDc4XHVjMDc5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVj''@;'; + put 'put ''MDdhXHVjMDdiXHVjMDdjXHVjMDdkXHVjMDdlXHVjMDdmXHVjMDgwXHVjMDgxXHVjMDgyXHVjMDgzXHVjMDg0XHVjMDg1XHVjMDg2XHVjMDg3XHVjMDg4XHVjMDg5XHVjMDhhXHVjMDhiXHVjMDhjXHVjMDhkXHVjMDhlXHVjMDhmXHVjMDkyXHVjMDkzXHVjMDk1XHVjMDk2XHVjMDk3XHVjMDk5''@;'; + put 'put ''XHVjMDlhXHVjMDliXHVjMDljXHVjMDlkXHVjMDllXHVjMDlmXHVjMGEyXHVjMGE0XHVjMGE2XHVjMGE3XHVjMGE4XHVjMGE5XHVjMGFhXHVjMGFiXHVjMGFlXHVjMGIxXHVjMGIyXHVjMGI3XHVjMGI4XHVjMGI5XHVjMGJhXHVjMGJiXHVjMGJlXHVjMGMyXHVjMGMzXHVjMGM0XHVjMGM2XHVj''@;'; + put 'put ''MGM3XHVjMGNhXHVjMGNiXHVjMGNkXHVjMGNlXHVjMGNmXHVjMGQxXHVjMGQyXHVjMGQzXHVjMGQ0XHVjMGQ1XHVjMGQ2XHVjMGQ3XHVjMGRhXHVjMGRlXHVjMGRmXHVjMGUwXHVjMGUxXHVjMGUyXHVjMGUzXHVjMGU2XHVjMGU3XHVjMGU5XHVjMGVhXHVjMGViXHVjMGVkXHVjMGVlXHVjMGVm''@;'; + put 'put ''XHVjMGYwXHVjMGYxXHVjMGYyXHVjMGYzXHVjMGY2XHVjMGY4XHVjMGZhXHVjMGZiXHVjMGZjXHVjMGZkXHVjMGZlXHVjMGZmXHVjMTAxXHVjMTAyXHVjMTAzXHVjMTA1XHVjMTA2XHVjMTA3XHVjMTA5XHVjMTBhXHVjMTBiXHVjMTBjXHVjMTBkXHVjMTBlXHVjMTBmXHVjMTExXHVjMTEyXHVj''@;'; + put 'put ''MTEzXHVjMTE0XHVjMTE2XHVjMTE3XHVjMTE4XHVjMTE5XHVjMTFhXHVjMTFiXHVjMTIxXHVjMTIyXHVjMTI1XHVjMTI4XHVjMTI5XHVjMTJhXHVjMTJiXHVjMTJlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTUyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTJdW0VdLmNoYXJDb2RlQXQo''@;'; + put 'put ''MCkmJihtZVtCWzE1Ml1bRV1dPTM4OTEyK0UsTFszODkxMitFXT1CWzE1Ml1bRV0pO2ZvcihCWzE1M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzEzMlx1YzEzM1x1YzEzNFx1YzEzNVx1YzEzN1x1YzEzYVx1YzEzYlx1''@;'; + put 'put ''YzEzZFx1YzEzZVx1YzEzZlx1YzE0MVx1YzE0Mlx1YzE0M1x1YzE0NFx1YzE0NVx1YzE0Nlx1YzE0N1x1YzE0YVx1YzE0ZVx1YzE0Zlx1YzE1MFx1YzE1MVx1YzE1Mlx1YzE1M1x1YzE1Nlx1YzE1N1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzE1OVx1YzE1YVx1YzE1''@;'; + put 'put ''Ylx1YzE1ZFx1YzE1ZVx1YzE1Zlx1YzE2MFx1YzE2MVx1YzE2Mlx1YzE2M1x1YzE2Nlx1YzE2YVx1YzE2Ylx1YzE2Y1x1YzE2ZFx1YzE2ZVx1YzE2Zlx1YzE3MVx1YzE3Mlx1YzE3M1x1YzE3NVx1YzE3Nlx1YzE3N1x1YzE3OVx1YzE3YVx1YzE3Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1YzE3Y1x1YzE3ZFx1YzE3ZVx1YzE3Zlx1YzE4MFx1YzE4MVx1YzE4Mlx1YzE4M1x1YzE4NFx1YzE4Nlx1YzE4N1x1YzE4OFx1YzE4OVx1YzE4YVx1YzE4Ylx1YzE4Zlx1YzE5MVx1YzE5Mlx1YzE5M1x1YzE5NVx1YzE5N1x1YzE5OFx1YzE5OVx1YzE5YVx1YzE5Ylx1YzE5''@;'; + put 'put ''ZVx1YzFhMFx1YzFhMlx1YzFhM1x1YzFhNFx1YzFhNlx1YzFhN1x1YzFhYVx1YzFhYlx1YzFhZFx1YzFhZVx1YzFhZlx1YzFiMVx1YzFiMlx1YzFiM1x1YzFiNFx1YzFiNVx1YzFiNlx1YzFiN1x1YzFiOFx1YzFiOVx1YzFiYVx1YzFiYlx1YzFiY1x1YzFiZVx1YzFiZlx1YzFjMFx1YzFjMVx1''@;'; + put 'put ''YzFjMlx1YzFjM1x1YzFjNVx1YzFjNlx1YzFjN1x1YzFjOVx1YzFjYVx1YzFjYlx1YzFjZFx1YzFjZVx1YzFjZlx1YzFkMFx1YzFkMVx1YzFkMlx1YzFkM1x1YzFkNVx1YzFkNlx1YzFkOVx1YzFkYVx1YzFkYlx1YzFkY1x1YzFkZFx1YzFkZVx1YzFkZlx1YzFlMVx1YzFlMlx1YzFlM1x1YzFl''@;'; + put 'put ''NVx1YzFlNlx1YzFlN1x1YzFlOVx1YzFlYVx1YzFlYlx1YzFlY1x1YzFlZFx1YzFlZVx1YzFlZlx1YzFmMlx1YzFmNFx1YzFmNVx1YzFmNlx1YzFmN1x1YzFmOFx1YzFmOVx1YzFmYVx1YzFmYlx1YzFmZVx1YzFmZlx1YzIwMVx1YzIwMlx1YzIwM1x1YzIwNVx1YzIwNlx1YzIwN1x1YzIwOFx1''@;'; + put 'put ''YzIwOVx1YzIwYVx1YzIwYlx1YzIwZVx1YzIxMFx1YzIxMlx1YzIxM1x1YzIxNFx1YzIxNVx1YzIxNlx1YzIxN1x1YzIxYVx1YzIxYlx1YzIxZFx1YzIxZVx1YzIyMVx1YzIyMlx1YzIyM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTUzXVtF''@;'; + put 'put ''XS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTNdW0VdXT0zOTE2OCtFLExbMzkxNjgrRV09QlsxNTNdW0VdKTtmb3IoQlsxNTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMyMjRcdWMyMjVcdWMyMjZcdWMyMjdcdWMyMmFc''@;'; + put 'put ''dWMyMmNcdWMyMmVcdWMyMzBcdWMyMzNcdWMyMzVcdWMyMzZcdWMyMzdcdWMyMzhcdWMyMzlcdWMyM2FcdWMyM2JcdWMyM2NcdWMyM2RcdWMyM2VcdWMyM2ZcdWMyNDBcdWMyNDFcdWMyNDJcdWMyNDNcdWMyNDRcdWMyNDVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMy''@;'; + put 'put ''NDZcdWMyNDdcdWMyNDlcdWMyNGFcdWMyNGJcdWMyNGNcdWMyNGRcdWMyNGVcdWMyNGZcdWMyNTJcdWMyNTNcdWMyNTVcdWMyNTZcdWMyNTdcdWMyNTlcdWMyNWFcdWMyNWJcdWMyNWNcdWMyNWRcdWMyNWVcdWMyNWZcdWMyNjFcdWMyNjJcdWMyNjNcdWMyNjRcdWMyNjZcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMyNjdcdWMyNjhcdWMyNjlcdWMyNmFcdWMyNmJcdWMyNmVcdWMyNmZcdWMyNzFcdWMyNzJcdWMyNzNcdWMyNzVcdWMyNzZcdWMyNzdcdWMyNzhcdWMyNzlcdWMyN2FcdWMyN2JcdWMyN2VcdWMyODBcdWMyODJcdWMyODNcdWMyODRcdWMyODVcdWMy''@;'; + put 'put ''ODZcdWMyODdcdWMyOGFcdWMyOGJcdWMyOGNcdWMyOGRcdWMyOGVcdWMyOGZcdWMyOTFcdWMyOTJcdWMyOTNcdWMyOTRcdWMyOTVcdWMyOTZcdWMyOTdcdWMyOTlcdWMyOWFcdWMyOWNcdWMyOWVcdWMyOWZcdWMyYTBcdWMyYTFcdWMyYTJcdWMyYTNcdWMyYTZcdWMyYTdcdWMyYTlcdWMyYWFc''@;'; + put 'put ''dWMyYWJcdWMyYWVcdWMyYWZcdWMyYjBcdWMyYjFcdWMyYjJcdWMyYjNcdWMyYjZcdWMyYjhcdWMyYmFcdWMyYmJcdWMyYmNcdWMyYmRcdWMyYmVcdWMyYmZcdWMyYzBcdWMyYzFcdWMyYzJcdWMyYzNcdWMyYzRcdWMyYzVcdWMyYzZcdWMyYzdcdWMyYzhcdWMyYzlcdWMyY2FcdWMyY2JcdWMy''@;'; + put 'put ''Y2NcdWMyY2RcdWMyY2VcdWMyY2ZcdWMyZDBcdWMyZDFcdWMyZDJcdWMyZDNcdWMyZDRcdWMyZDVcdWMyZDZcdWMyZDdcdWMyZDhcdWMyZDlcdWMyZGFcdWMyZGJcdWMyZGVcdWMyZGZcdWMyZTFcdWMyZTJcdWMyZTVcdWMyZTZcdWMyZTdcdWMyZThcdWMyZTlcdWMyZWFcdWMyZWVcdWMyZjBc''@;'; + put 'put ''dWMyZjJcdWMyZjNcdWMyZjRcdWMyZjVcdWMyZjdcdWMyZmFcdWMyZmRcdWMyZmVcdWMyZmZcdWMzMDFcdWMzMDJcdWMzMDNcdWMzMDRcdWMzMDVcdWMzMDZcdWMzMDdcdWMzMGFcdWMzMGJcdWMzMGVcdWMzMGZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTRdLmxlbmd0aDsrK0UpNjU1''@;'; + put 'put ''MzMhPT1CWzE1NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU0XVtFXV09Mzk0MjQrRSxMWzM5NDI0K0VdPUJbMTU0XVtFXSk7Zm9yKEJbMTU1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjMzEwXHVjMzExXHVjMzEy''@;'; + put 'put ''XHVjMzE2XHVjMzE3XHVjMzE5XHVjMzFhXHVjMzFiXHVjMzFkXHVjMzFlXHVjMzFmXHVjMzIwXHVjMzIxXHVjMzIyXHVjMzIzXHVjMzI2XHVjMzI3XHVjMzJhXHVjMzJiXHVjMzJjXHVjMzJkXHVjMzJlXHVjMzJmXHVjMzMwXHVjMzMxXHVjMzMyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVjMzMzXHVjMzM0XHVjMzM1XHVjMzM2XHVjMzM3XHVjMzM4XHVjMzM5XHVjMzNhXHVjMzNiXHVjMzNjXHVjMzNkXHVjMzNlXHVjMzNmXHVjMzQwXHVjMzQxXHVjMzQyXHVjMzQzXHVjMzQ0XHVjMzQ2XHVjMzQ3XHVjMzQ4XHVjMzQ5XHVjMzRhXHVjMzRiXHVjMzRjXHVjMzRk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjMzRlXHVjMzRmXHVjMzUwXHVjMzUxXHVjMzUyXHVjMzUzXHVjMzU0XHVjMzU1XHVjMzU2XHVjMzU3XHVjMzU4XHVjMzU5XHVjMzVhXHVjMzViXHVjMzVjXHVjMzVkXHVjMzVlXHVjMzVmXHVjMzYwXHVjMzYxXHVjMzYyXHVj''@;'; + put 'put ''MzYzXHVjMzY0XHVjMzY1XHVjMzY2XHVjMzY3XHVjMzZhXHVjMzZiXHVjMzZkXHVjMzZlXHVjMzZmXHVjMzcxXHVjMzczXHVjMzc0XHVjMzc1XHVjMzc2XHVjMzc3XHVjMzdhXHVjMzdiXHVjMzdlXHVjMzdmXHVjMzgwXHVjMzgxXHVjMzgyXHVjMzgzXHVjMzg1XHVjMzg2XHVjMzg3XHVjMzg5''@;'; + put 'put ''XHVjMzhhXHVjMzhiXHVjMzhkXHVjMzhlXHVjMzhmXHVjMzkwXHVjMzkxXHVjMzkyXHVjMzkzXHVjMzk0XHVjMzk1XHVjMzk2XHVjMzk3XHVjMzk4XHVjMzk5XHVjMzlhXHVjMzliXHVjMzljXHVjMzlkXHVjMzllXHVjMzlmXHVjM2EwXHVjM2ExXHVjM2EyXHVjM2EzXHVjM2E0XHVjM2E1XHVj''@;'; + put 'put ''M2E2XHVjM2E3XHVjM2E4XHVjM2E5XHVjM2FhXHVjM2FiXHVjM2FjXHVjM2FkXHVjM2FlXHVjM2FmXHVjM2IwXHVjM2IxXHVjM2IyXHVjM2IzXHVjM2I0XHVjM2I1XHVjM2I2XHVjM2I3XHVjM2I4XHVjM2I5XHVjM2JhXHVjM2JiXHVjM2JjXHVjM2JkXHVjM2JlXHVjM2JmXHVjM2MxXHVjM2My''@;'; + put 'put ''XHVjM2MzXHVjM2M0XHVjM2M1XHVjM2M2XHVjM2M3XHVjM2M4XHVjM2M5XHVjM2NhXHVjM2NiXHVjM2NjXHVjM2NkXHVjM2NlXHVjM2NmXHVjM2QwXHVjM2QxXHVjM2QyXHVjM2QzXHVjM2Q0XHVjM2Q1XHVjM2Q2XHVjM2Q3XHVjM2RhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU1XS5s''@;'; + put 'put ''ZW5ndGg7KytFKTY1NTMzIT09QlsxNTVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1NV1bRV1dPTM5NjgwK0UsTFszOTY4MCtFXT1CWzE1NV1bRV0pO2ZvcihCWzE1Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzNk''@;'; + put 'put ''Ylx1YzNkZFx1YzNkZVx1YzNlMVx1YzNlM1x1YzNlNFx1YzNlNVx1YzNlNlx1YzNlN1x1YzNlYVx1YzNlYlx1YzNlY1x1YzNlZVx1YzNlZlx1YzNmMFx1YzNmMVx1YzNmMlx1YzNmM1x1YzNmNlx1YzNmN1x1YzNmOVx1YzNmYVx1YzNmYlx1YzNmY1x1YzNmZFx1YzNmZVx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzNmZlx1YzQwMFx1YzQwMVx1YzQwMlx1YzQwM1x1YzQwNFx1YzQwNVx1YzQwNlx1YzQwN1x1YzQwOVx1YzQwYVx1YzQwYlx1YzQwY1x1YzQwZFx1YzQwZVx1YzQwZlx1YzQxMVx1YzQxMlx1YzQxM1x1YzQxNFx1YzQxNVx1YzQxNlx1YzQxN1x1YzQx''@;'; + put 'put ''OFx1YzQxOVx1YzQxYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzQxYlx1YzQxY1x1YzQxZFx1YzQxZVx1YzQxZlx1YzQyMFx1YzQyMVx1YzQyMlx1YzQyM1x1YzQyNVx1YzQyNlx1YzQyN1x1YzQyOFx1YzQyOVx1YzQyYVx1YzQyYlx1YzQyZFx1YzQyZVx1YzQyZlx1''@;'; + put 'put ''YzQzMVx1YzQzMlx1YzQzM1x1YzQzNVx1YzQzNlx1YzQzN1x1YzQzOFx1YzQzOVx1YzQzYVx1YzQzYlx1YzQzZVx1YzQzZlx1YzQ0MFx1YzQ0MVx1YzQ0Mlx1YzQ0M1x1YzQ0NFx1YzQ0NVx1YzQ0Nlx1YzQ0N1x1YzQ0OVx1YzQ0YVx1YzQ0Ylx1YzQ0Y1x1YzQ0ZFx1YzQ0ZVx1YzQ0Zlx1YzQ1''@;'; + put 'put ''MFx1YzQ1MVx1YzQ1Mlx1YzQ1M1x1YzQ1NFx1YzQ1NVx1YzQ1Nlx1YzQ1N1x1YzQ1OFx1YzQ1OVx1YzQ1YVx1YzQ1Ylx1YzQ1Y1x1YzQ1ZFx1YzQ1ZVx1YzQ1Zlx1YzQ2MFx1YzQ2MVx1YzQ2Mlx1YzQ2M1x1YzQ2Nlx1YzQ2N1x1YzQ2OVx1YzQ2YVx1YzQ2Ylx1YzQ2ZFx1YzQ2ZVx1YzQ2Zlx1''@;'; + put 'put ''YzQ3MFx1YzQ3MVx1YzQ3Mlx1YzQ3M1x1YzQ3Nlx1YzQ3N1x1YzQ3OFx1YzQ3YVx1YzQ3Ylx1YzQ3Y1x1YzQ3ZFx1YzQ3ZVx1YzQ3Zlx1YzQ4MVx1YzQ4Mlx1YzQ4M1x1YzQ4NFx1YzQ4NVx1YzQ4Nlx1YzQ4N1x1YzQ4OFx1YzQ4OVx1YzQ4YVx1YzQ4Ylx1YzQ4Y1x1YzQ4ZFx1YzQ4ZVx1YzQ4''@;'; + put 'put ''Zlx1YzQ5MFx1YzQ5MVx1YzQ5Mlx1YzQ5M1x1YzQ5NVx1YzQ5Nlx1YzQ5N1x1YzQ5OFx1YzQ5OVx1YzQ5YVx1YzQ5Ylx1YzQ5ZFx1YzQ5ZVx1YzQ5Zlx1YzRhMFx1YzRhMVx1YzRhMlx1YzRhM1x1YzRhNFx1YzRhNVx1YzRhNlx1YzRhN1x1YzRhOFx1YzRhOVx1ZmZmZCIuc3BsaXQoIiIpLEU9''@;'; + put 'put ''MDtFIT1CWzE1Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTZdW0VdXT0zOTkzNitFLExbMzk5MzYrRV09QlsxNTZdW0VdKTtmb3IoQlsxNTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWM0YWFcdWM0YWJcdWM0YWNcdWM0YWRcdWM0YWVcdWM0YWZcdWM0YjBcdWM0YjFcdWM0YjJcdWM0YjNcdWM0YjRcdWM0YjVcdWM0YjZcdWM0YjdcdWM0YjlcdWM0YmFcdWM0YmJcdWM0YmRcdWM0YmVcdWM0YmZcdWM0YzBcdWM0YzFcdWM0YzJcdWM0YzNcdWM0YzRcdWM0YzVc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM0YzZcdWM0YzdcdWM0YzhcdWM0YzlcdWM0Y2FcdWM0Y2JcdWM0Y2NcdWM0Y2RcdWM0Y2VcdWM0Y2ZcdWM0ZDBcdWM0ZDFcdWM0ZDJcdWM0ZDNcdWM0ZDRcdWM0ZDVcdWM0ZDZcdWM0ZDdcdWM0ZDhcdWM0ZDlcdWM0ZGFcdWM0''@;'; + put 'put ''ZGJcdWM0ZGNcdWM0ZGRcdWM0ZGVcdWM0ZGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM0ZTBcdWM0ZTFcdWM0ZTJcdWM0ZTNcdWM0ZTRcdWM0ZTVcdWM0ZTZcdWM0ZTdcdWM0ZThcdWM0ZWFcdWM0ZWJcdWM0ZWNcdWM0ZWRcdWM0ZWVcdWM0ZWZcdWM0ZjJcdWM0ZjNc''@;'; + put 'put ''dWM0ZjVcdWM0ZjZcdWM0ZjdcdWM0ZjlcdWM0ZmJcdWM0ZmNcdWM0ZmRcdWM0ZmVcdWM1MDJcdWM1MDNcdWM1MDRcdWM1MDVcdWM1MDZcdWM1MDdcdWM1MDhcdWM1MDlcdWM1MGFcdWM1MGJcdWM1MGRcdWM1MGVcdWM1MGZcdWM1MTFcdWM1MTJcdWM1MTNcdWM1MTVcdWM1MTZcdWM1MTdcdWM1''@;'; + put 'put ''MThcdWM1MTlcdWM1MWFcdWM1MWJcdWM1MWRcdWM1MWVcdWM1MWZcdWM1MjBcdWM1MjFcdWM1MjJcdWM1MjNcdWM1MjRcdWM1MjVcdWM1MjZcdWM1MjdcdWM1MmFcdWM1MmJcdWM1MmRcdWM1MmVcdWM1MmZcdWM1MzFcdWM1MzJcdWM1MzNcdWM1MzRcdWM1MzVcdWM1MzZcdWM1MzdcdWM1M2Fc''@;'; + put 'put ''dWM1M2NcdWM1M2VcdWM1M2ZcdWM1NDBcdWM1NDFcdWM1NDJcdWM1NDNcdWM1NDZcdWM1NDdcdWM1NGJcdWM1NGZcdWM1NTBcdWM1NTFcdWM1NTJcdWM1NTZcdWM1NWFcdWM1NWJcdWM1NWNcdWM1NWZcdWM1NjJcdWM1NjNcdWM1NjVcdWM1NjZcdWM1NjdcdWM1NjlcdWM1NmFcdWM1NmJcdWM1''@;'; + put 'put ''NmNcdWM1NmRcdWM1NmVcdWM1NmZcdWM1NzJcdWM1NzZcdWM1NzdcdWM1NzhcdWM1NzlcdWM1N2FcdWM1N2JcdWM1N2VcdWM1N2ZcdWM1ODFcdWM1ODJcdWM1ODNcdWM1ODVcdWM1ODZcdWM1ODhcdWM1ODlcdWM1OGFcdWM1OGJcdWM1OGVcdWM1OTBcdWM1OTJcdWM1OTNcdWM1OTRcdWZmZmQi''@;'; + put 'put ''LnNwbGl0KCIiKSxFPTA7RSE9QlsxNTddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU3XVtFXV09NDAxOTIrRSxMWzQwMTkyK0VdPUJbMTU3XVtFXSk7Zm9yKEJbMTU4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNTk2XHVjNTk5XHVjNTlhXHVjNTliXHVjNTlkXHVjNTllXHVjNTlmXHVjNWExXHVjNWEyXHVjNWEzXHVjNWE0XHVjNWE1XHVjNWE2XHVjNWE3XHVjNWE4XHVjNWFhXHVjNWFiXHVjNWFjXHVjNWFkXHVjNWFlXHVjNWFmXHVjNWIwXHVjNWIxXHVjNWIy''@;'; + put 'put ''XHVjNWIzXHVjNWI2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNWI3XHVjNWJhXHVjNWJmXHVjNWMwXHVjNWMxXHVjNWMyXHVjNWMzXHVjNWNiXHVjNWNkXHVjNWNmXHVjNWQyXHVjNWQzXHVjNWQ1XHVjNWQ2XHVjNWQ3XHVjNWQ5XHVjNWRhXHVjNWRiXHVjNWRjXHVj''@;'; + put 'put ''NWRkXHVjNWRlXHVjNWRmXHVjNWUyXHVjNWU0XHVjNWU2XHVjNWU3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNWU4XHVjNWU5XHVjNWVhXHVjNWViXHVjNWVmXHVjNWYxXHVjNWYyXHVjNWYzXHVjNWY1XHVjNWY4XHVjNWY5XHVjNWZhXHVjNWZiXHVjNjAyXHVjNjAz''@;'; + put 'put ''XHVjNjA0XHVjNjA5XHVjNjBhXHVjNjBiXHVjNjBkXHVjNjBlXHVjNjBmXHVjNjExXHVjNjEyXHVjNjEzXHVjNjE0XHVjNjE1XHVjNjE2XHVjNjE3XHVjNjFhXHVjNjFkXHVjNjFlXHVjNjFmXHVjNjIwXHVjNjIxXHVjNjIyXHVjNjIzXHVjNjI2XHVjNjI3XHVjNjI5XHVjNjJhXHVjNjJiXHVj''@;'; + put 'put ''NjJmXHVjNjMxXHVjNjMyXHVjNjM2XHVjNjM4XHVjNjNhXHVjNjNjXHVjNjNkXHVjNjNlXHVjNjNmXHVjNjQyXHVjNjQzXHVjNjQ1XHVjNjQ2XHVjNjQ3XHVjNjQ5XHVjNjRhXHVjNjRiXHVjNjRjXHVjNjRkXHVjNjRlXHVjNjRmXHVjNjUyXHVjNjU2XHVjNjU3XHVjNjU4XHVjNjU5XHVjNjVh''@;'; + put 'put ''XHVjNjViXHVjNjVlXHVjNjVmXHVjNjYxXHVjNjYyXHVjNjYzXHVjNjY0XHVjNjY1XHVjNjY2XHVjNjY3XHVjNjY4XHVjNjY5XHVjNjZhXHVjNjZiXHVjNjZkXHVjNjZlXHVjNjcwXHVjNjcyXHVjNjczXHVjNjc0XHVjNjc1XHVjNjc2XHVjNjc3XHVjNjdhXHVjNjdiXHVjNjdkXHVjNjdlXHVj''@;'; + put 'put ''NjdmXHVjNjgxXHVjNjgyXHVjNjgzXHVjNjg0XHVjNjg1XHVjNjg2XHVjNjg3XHVjNjhhXHVjNjhjXHVjNjhlXHVjNjhmXHVjNjkwXHVjNjkxXHVjNjkyXHVjNjkzXHVjNjk2XHVjNjk3XHVjNjk5XHVjNjlhXHVjNjliXHVjNjlkXHVjNjllXHVjNjlmXHVjNmEwXHVjNmExXHVjNmEyXHVjNmEz''@;'; + put 'put ''XHVjNmE2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNThdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1OF1bRV1dPTQwNDQ4K0UsTFs0MDQ0OCtFXT1CWzE1OF1bRV0pO2ZvcihCWzE1OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzZhOFx1YzZhYVx1YzZhYlx1YzZhY1x1YzZhZFx1YzZhZVx1YzZhZlx1YzZiMlx1YzZiM1x1YzZiNVx1YzZiNlx1YzZiN1x1YzZiYlx1YzZiY1x1YzZiZFx1YzZiZVx1YzZiZlx1YzZjMlx1YzZjNFx1YzZjNlx1YzZjN1x1YzZj''@;'; + put 'put ''OFx1YzZjOVx1YzZjYVx1YzZjYlx1YzZjZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzZjZlx1YzZkMVx1YzZkMlx1YzZkM1x1YzZkNVx1YzZkNlx1YzZkN1x1YzZkOFx1YzZkOVx1YzZkYVx1YzZkYlx1YzZkZVx1YzZkZlx1YzZlMlx1YzZlM1x1YzZlNFx1YzZlNVx1''@;'; + put 'put ''YzZlNlx1YzZlN1x1YzZlYVx1YzZlYlx1YzZlZFx1YzZlZVx1YzZlZlx1YzZmMVx1YzZmMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzZmM1x1YzZmNFx1YzZmNVx1YzZmNlx1YzZmN1x1YzZmYVx1YzZmYlx1YzZmY1x1YzZmZVx1YzZmZlx1YzcwMFx1YzcwMVx1Yzcw''@;'; + put 'put ''Mlx1YzcwM1x1YzcwNlx1YzcwN1x1YzcwOVx1YzcwYVx1YzcwYlx1YzcwZFx1YzcwZVx1YzcwZlx1YzcxMFx1YzcxMVx1YzcxMlx1YzcxM1x1YzcxNlx1YzcxOFx1YzcxYVx1YzcxYlx1YzcxY1x1YzcxZFx1YzcxZVx1YzcxZlx1YzcyMlx1YzcyM1x1YzcyNVx1YzcyNlx1YzcyN1x1YzcyOVx1''@;'; + put 'put ''YzcyYVx1YzcyYlx1YzcyY1x1YzcyZFx1YzcyZVx1YzcyZlx1YzczMlx1YzczNFx1YzczNlx1YzczOFx1YzczOVx1YzczYVx1YzczYlx1YzczZVx1YzczZlx1Yzc0MVx1Yzc0Mlx1Yzc0M1x1Yzc0NVx1Yzc0Nlx1Yzc0N1x1Yzc0OFx1Yzc0OVx1Yzc0Ylx1Yzc0ZVx1Yzc1MFx1Yzc1OVx1Yzc1''@;'; + put 'put ''YVx1Yzc1Ylx1Yzc1ZFx1Yzc1ZVx1Yzc1Zlx1Yzc2MVx1Yzc2Mlx1Yzc2M1x1Yzc2NFx1Yzc2NVx1Yzc2Nlx1Yzc2N1x1Yzc2OVx1Yzc2YVx1Yzc2Y1x1Yzc2ZFx1Yzc2ZVx1Yzc2Zlx1Yzc3MFx1Yzc3MVx1Yzc3Mlx1Yzc3M1x1Yzc3Nlx1Yzc3N1x1Yzc3OVx1Yzc3YVx1Yzc3Ylx1Yzc3Zlx1''@;'; + put 'put ''Yzc4MFx1Yzc4MVx1Yzc4Mlx1Yzc4Nlx1Yzc4Ylx1Yzc4Y1x1Yzc4ZFx1Yzc4Zlx1Yzc5Mlx1Yzc5M1x1Yzc5NVx1Yzc5OVx1Yzc5Ylx1Yzc5Y1x1Yzc5ZFx1Yzc5ZVx1Yzc5Zlx1YzdhMlx1YzdhN1x1YzdhOFx1YzdhOVx1YzdhYVx1YzdhYlx1YzdhZVx1YzdhZlx1YzdiMVx1YzdiMlx1Yzdi''@;'; + put 'put ''M1x1YzdiNVx1YzdiNlx1YzdiN1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTldW0VdXT00MDcwNCtFLExbNDA3MDQrRV09QlsxNTldW0VdKTtmb3IoQlsxNjBdPSJcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM3YjhcdWM3YjlcdWM3YmFcdWM3YmJcdWM3YmVcdWM3YzJcdWM3YzNcdWM3YzRcdWM3YzVcdWM3YzZcdWM3YzdcdWM3Y2FcdWM3Y2JcdWM3Y2RcdWM3Y2ZcdWM3ZDFcdWM3ZDJcdWM3ZDNcdWM3ZDRcdWM3''@;'; + put 'put ''ZDVcdWM3ZDZcdWM3ZDdcdWM3ZDlcdWM3ZGFcdWM3ZGJcdWM3ZGNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM3ZGVcdWM3ZGZcdWM3ZTBcdWM3ZTFcdWM3ZTJcdWM3ZTNcdWM3ZTVcdWM3ZTZcdWM3ZTdcdWM3ZTlcdWM3ZWFcdWM3ZWJcdWM3ZWRcdWM3ZWVcdWM3ZWZc''@;'; + put 'put ''dWM3ZjBcdWM3ZjFcdWM3ZjJcdWM3ZjNcdWM3ZjRcdWM3ZjVcdWM3ZjZcdWM3ZjdcdWM3ZjhcdWM3ZjlcdWM3ZmFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM3ZmJcdWM3ZmNcdWM3ZmRcdWM3ZmVcdWM3ZmZcdWM4MDJcdWM4MDNcdWM4MDVcdWM4MDZcdWM4MDdcdWM4''@;'; + put 'put ''MDlcdWM4MGJcdWM4MGNcdWM4MGRcdWM4MGVcdWM4MGZcdWM4MTJcdWM4MTRcdWM4MTdcdWM4MThcdWM4MTlcdWM4MWFcdWM4MWJcdWM4MWVcdWM4MWZcdWM4MjFcdWM4MjJcdWM4MjNcdWM4MjVcdWM4MjZcdWM4MjdcdWM4MjhcdWM4MjlcdWM4MmFcdWM4MmJcdWM4MmVcdWM4MzBcdWM4MzJc''@;'; + put 'put ''dWM4MzNcdWM4MzRcdWM4MzVcdWM4MzZcdWM4MzdcdWM4MzlcdWM4M2FcdWM4M2JcdWM4M2RcdWM4M2VcdWM4M2ZcdWM4NDFcdWM4NDJcdWM4NDNcdWM4NDRcdWM4NDVcdWM4NDZcdWM4NDdcdWM4NGFcdWM4NGJcdWM4NGVcdWM4NGZcdWM4NTBcdWM4NTFcdWM4NTJcdWM4NTNcdWM4NTVcdWM4''@;'; + put 'put ''NTZcdWM4NTdcdWM4NThcdWM4NTlcdWM4NWFcdWM4NWJcdWM4NWNcdWM4NWRcdWM4NWVcdWM4NWZcdWM4NjBcdWM4NjFcdWM4NjJcdWM4NjNcdWM4NjRcdWM4NjVcdWM4NjZcdWM4NjdcdWM4NjhcdWM4NjlcdWM4NmFcdWM4NmJcdWM4NmNcdWM4NmRcdWM4NmVcdWM4NmZcdWM4NzJcdWM4NzNc''@;'; + put 'put ''dWM4NzVcdWM4NzZcdWM4NzdcdWM4NzlcdWM4N2JcdWM4N2NcdWM4N2RcdWM4N2VcdWM4N2ZcdWM4ODJcdWM4ODRcdWM4ODhcdWM4ODlcdWM4OGFcdWM4OGVcdWM4OGZcdWM4OTBcdWM4OTFcdWM4OTJcdWM4OTNcdWM4OTVcdWM4OTZcdWM4OTdcdWM4OThcdWM4OTlcdWM4OWFcdWM4OWJcdWM4''@;'; + put 'put ''OWNcdWM4OWVcdWM4YTBcdWM4YTJcdWM4YTNcdWM4YTRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTYwXVtFXV09NDA5NjArRSxMWzQwOTYwK0VdPUJbMTYwXVtFXSk7Zm9yKEJbMTYxXT0i''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjOGE1XHVjOGE2XHVjOGE3XHVjOGE5XHVjOGFhXHVjOGFiXHVjOGFjXHVjOGFkXHVjOGFlXHVjOGFmXHVjOGIwXHVjOGIxXHVjOGIyXHVjOGIzXHVjOGI0XHVjOGI1XHVjOGI2XHVj''@;'; + put 'put ''OGI3XHVjOGI4XHVjOGI5XHVjOGJhXHVjOGJiXHVjOGJlXHVjOGJmXHVjOGMwXHVjOGMxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjOGMyXHVjOGMzXHVjOGM1XHVjOGM2XHVjOGM3XHVjOGM5XHVjOGNhXHVjOGNiXHVjOGNkXHVjOGNlXHVjOGNmXHVjOGQwXHVjOGQx''@;'; + put 'put ''XHVjOGQyXHVjOGQzXHVjOGQ2XHVjOGQ4XHVjOGRhXHVjOGRiXHVjOGRjXHVjOGRkXHVjOGRlXHVjOGRmXHVjOGUyXHVjOGUzXHVjOGU1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjOGU2XHVjOGU3XHVjOGU4XHVjOGU5XHVjOGVhXHVjOGViXHVjOGVjXHVjOGVkXHVj''@;'; + put 'put ''OGVlXHVjOGVmXHVjOGYwXHVjOGYxXHVjOGYyXHVjOGYzXHVjOGY0XHVjOGY2XHVjOGY3XHVjOGY4XHVjOGY5XHVjOGZhXHVjOGZiXHVjOGZlXHVjOGZmXHVjOTAxXHVjOTAyXHVjOTAzXHVjOTA3XHVjOTA4XHVjOTA5XHVjOTBhXHVjOTBiXHVjOTBlXHUzMDAwXHUzMDAxXHUzMDAyXHhiN1x1''@;'; + put 'put ''MjAyNVx1MjAyNlx4YThcdTMwMDNceGFkXHUyMDE1XHUyMjI1XHVmZjNjXHUyMjNjXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDE0XHUzMDE1XHUzMDA4XHUzMDA5XHUzMDBhXHUzMDBiXHUzMDBjXHUzMDBkXHUzMDBlXHUzMDBmXHUzMDEwXHUzMDExXHhiMVx4ZDdceGY3XHUyMjYwXHUy''@;'; + put 'put ''MjY0XHUyMjY1XHUyMjFlXHUyMjM0XHhiMFx1MjAzMlx1MjAzM1x1MjEwM1x1MjEyYlx1ZmZlMFx1ZmZlMVx1ZmZlNVx1MjY0Mlx1MjY0MFx1MjIyMFx1MjJhNVx1MjMxMlx1MjIwMlx1MjIwN1x1MjI2MVx1MjI1Mlx4YTdcdTIwM2JcdTI2MDZcdTI2MDVcdTI1Y2JcdTI1Y2ZcdTI1Y2VcdTI1''@;'; + put 'put ''YzdcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YjNcdTI1YjJcdTI1YmRcdTI1YmNcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTIxOTRcdTMwMTNcdTIyNmFcdTIyNmJcdTIyMWFcdTIyM2RcdTIyMWRcdTIyMzVcdTIyMmJcdTIyMmNcdTIyMDhcdTIyMGJcdTIyODZcdTIyODdcdTIyODJcdTIyODNc''@;'; + put 'put ''dTIyMmFcdTIyMjlcdTIyMjdcdTIyMjhcdWZmZTJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTYxXVtFXV09NDEyMTYrRSxMWzQxMjE2K0VdPUJbMTYxXVtFXSk7Zm9yKEJbMTYyXT0iXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjOTEwXHVjOTEyXHVjOTEzXHVjOTE0XHVjOTE1XHVjOTE2XHVjOTE3XHVjOTE5XHVjOTFhXHVjOTFiXHVjOTFjXHVjOTFkXHVjOTFlXHVjOTFmXHVjOTIwXHVjOTIxXHVjOTIyXHVjOTIz''@;'; + put 'put ''XHVjOTI0XHVjOTI1XHVjOTI2XHVjOTI3XHVjOTI4XHVjOTI5XHVjOTJhXHVjOTJiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjOTJkXHVjOTJlXHVjOTJmXHVjOTMwXHVjOTMxXHVjOTMyXHVjOTMzXHVjOTM1XHVjOTM2XHVjOTM3XHVjOTM4XHVjOTM5XHVjOTNhXHVj''@;'; + put 'put ''OTNiXHVjOTNjXHVjOTNkXHVjOTNlXHVjOTNmXHVjOTQwXHVjOTQxXHVjOTQyXHVjOTQzXHVjOTQ0XHVjOTQ1XHVjOTQ2XHVjOTQ3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjOTQ4XHVjOTQ5XHVjOTRhXHVjOTRiXHVjOTRjXHVjOTRkXHVjOTRlXHVjOTRmXHVjOTUy''@;'; + put 'put ''XHVjOTUzXHVjOTU1XHVjOTU2XHVjOTU3XHVjOTU5XHVjOTVhXHVjOTViXHVjOTVjXHVjOTVkXHVjOTVlXHVjOTVmXHVjOTYyXHVjOTY0XHVjOTY1XHVjOTY2XHVjOTY3XHVjOTY4XHVjOTY5XHVjOTZhXHVjOTZiXHVjOTZkXHVjOTZlXHVjOTZmXHUyMWQyXHUyMWQ0XHUyMjAwXHUyMjAzXHhi''@;'; + put 'put ''NFx1ZmY1ZVx1MDJjN1x1MDJkOFx1MDJkZFx1MDJkYVx1MDJkOVx4YjhcdTAyZGJceGExXHhiZlx1MDJkMFx1MjIyZVx1MjIxMVx1MjIwZlx4YTRcdTIxMDlcdTIwMzBcdTI1YzFcdTI1YzBcdTI1YjdcdTI1YjZcdTI2NjRcdTI2NjBcdTI2NjFcdTI2NjVcdTI2NjdcdTI2NjNcdTIyOTlcdTI1''@;'; + put 'put ''YzhcdTI1YTNcdTI1ZDBcdTI1ZDFcdTI1OTJcdTI1YTRcdTI1YTVcdTI1YThcdTI1YTdcdTI1YTZcdTI1YTlcdTI2NjhcdTI2MGZcdTI2MGVcdTI2MWNcdTI2MWVceGI2XHUyMDIwXHUyMDIxXHUyMTk1XHUyMTk3XHUyMTk5XHUyMTk2XHUyMTk4XHUyNjZkXHUyNjY5XHUyNjZhXHUyNjZjXHUz''@;'; + put 'put ''MjdmXHUzMjFjXHUyMTE2XHUzM2M3XHUyMTIyXHUzM2MyXHUzM2Q4XHUyMTIxXHUyMGFjXHhhZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjJdW0VdXT00MTQ3MitFLExbNDE0NzIrRV09QlsxNjJdW0VdKTtmb3IoQlsxNjNdPSJcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5NzFcdWM5NzJcdWM5NzNcdWM5NzVcdWM5NzZcdWM5NzdcdWM5NzhcdWM5NzlcdWM5N2FcdWM5N2JcdWM5N2RcdWM5N2VcdWM5N2ZcdWM5ODBcdWM5ODFcdWM5ODJcdWM5ODNcdWM5ODRc''@;'; + put 'put ''dWM5ODVcdWM5ODZcdWM5ODdcdWM5OGFcdWM5OGJcdWM5OGRcdWM5OGVcdWM5OGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5OTFcdWM5OTJcdWM5OTNcdWM5OTRcdWM5OTVcdWM5OTZcdWM5OTdcdWM5OWFcdWM5OWNcdWM5OWVcdWM5OWZcdWM5YTBcdWM5YTFcdWM5''@;'; + put 'put ''YTJcdWM5YTNcdWM5YTRcdWM5YTVcdWM5YTZcdWM5YTdcdWM5YThcdWM5YTlcdWM5YWFcdWM5YWJcdWM5YWNcdWM5YWRcdWM5YWVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5YWZcdWM5YjBcdWM5YjFcdWM5YjJcdWM5YjNcdWM5YjRcdWM5YjVcdWM5YjZcdWM5Yjdc''@;'; + put 'put ''dWM5YjhcdWM5YjlcdWM5YmFcdWM5YmJcdWM5YmNcdWM5YmRcdWM5YmVcdWM5YmZcdWM5YzJcdWM5YzNcdWM5YzVcdWM5YzZcdWM5YzlcdWM5Y2JcdWM5Y2NcdWM5Y2RcdWM5Y2VcdWM5Y2ZcdWM5ZDJcdWM5ZDRcdWM5ZDdcdWM5ZDhcdWM5ZGJcdWZmMDFcdWZmMDJcdWZmMDNcdWZmMDRcdWZm''@;'; + put 'put ''MDVcdWZmMDZcdWZmMDdcdWZmMDhcdWZmMDlcdWZmMGFcdWZmMGJcdWZmMGNcdWZmMGRcdWZmMGVcdWZmMGZcdWZmMTBcdWZmMTFcdWZmMTJcdWZmMTNcdWZmMTRcdWZmMTVcdWZmMTZcdWZmMTdcdWZmMThcdWZmMTlcdWZmMWFcdWZmMWJcdWZmMWNcdWZmMWRcdWZmMWVcdWZmMWZcdWZmMjBc''@;'; + put 'put ''dWZmMjFcdWZmMjJcdWZmMjNcdWZmMjRcdWZmMjVcdWZmMjZcdWZmMjdcdWZmMjhcdWZmMjlcdWZmMmFcdWZmMmJcdWZmMmNcdWZmMmRcdWZmMmVcdWZmMmZcdWZmMzBcdWZmMzFcdWZmMzJcdWZmMzNcdWZmMzRcdWZmMzVcdWZmMzZcdWZmMzdcdWZmMzhcdWZmMzlcdWZmM2FcdWZmM2JcdWZm''@;'; + put 'put ''ZTZcdWZmM2RcdWZmM2VcdWZmM2ZcdWZmNDBcdWZmNDFcdWZmNDJcdWZmNDNcdWZmNDRcdWZmNDVcdWZmNDZcdWZmNDdcdWZmNDhcdWZmNDlcdWZmNGFcdWZmNGJcdWZmNGNcdWZmNGRcdWZmNGVcdWZmNGZcdWZmNTBcdWZmNTFcdWZmNTJcdWZmNTNcdWZmNTRcdWZmNTVcdWZmNTZcdWZmNTdc''@;'; + put 'put ''dWZmNThcdWZmNTlcdWZmNWFcdWZmNWJcdWZmNWNcdWZmNWRcdWZmZTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTYzXVtFXV09NDE3MjgrRSxMWzQxNzI4K0VdPUJbMTYzXVtFXSk7Zm9y''@;'; + put 'put ''KEJbMTY0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjOWRlXHVjOWRmXHVjOWUxXHVjOWUzXHVjOWU1XHVjOWU2XHVjOWU4XHVjOWU5XHVjOWVhXHVjOWViXHVjOWVlXHVjOWYyXHVjOWYzXHVjOWY0XHVjOWY1XHVjOWY2''@;'; + put 'put ''XHVjOWY3XHVjOWZhXHVjOWZiXHVjOWZkXHVjOWZlXHVjOWZmXHVjYTAxXHVjYTAyXHVjYTAzXHVjYTA0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYTA1XHVjYTA2XHVjYTA3XHVjYTBhXHVjYTBlXHVjYTBmXHVjYTEwXHVjYTExXHVjYTEyXHVjYTEzXHVjYTE1XHVj''@;'; + put 'put ''YTE2XHVjYTE3XHVjYTE5XHVjYTFhXHVjYTFiXHVjYTFjXHVjYTFkXHVjYTFlXHVjYTFmXHVjYTIwXHVjYTIxXHVjYTIyXHVjYTIzXHVjYTI0XHVjYTI1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYTI2XHVjYTI3XHVjYTI4XHVjYTJhXHVjYTJiXHVjYTJjXHVjYTJk''@;'; + put 'put ''XHVjYTJlXHVjYTJmXHVjYTMwXHVjYTMxXHVjYTMyXHVjYTMzXHVjYTM0XHVjYTM1XHVjYTM2XHVjYTM3XHVjYTM4XHVjYTM5XHVjYTNhXHVjYTNiXHVjYTNjXHVjYTNkXHVjYTNlXHVjYTNmXHVjYTQwXHVjYTQxXHVjYTQyXHVjYTQzXHVjYTQ0XHVjYTQ1XHVjYTQ2XHUzMTMxXHUzMTMyXHUz''@;'; + put 'put ''MTMzXHUzMTM0XHUzMTM1XHUzMTM2XHUzMTM3XHUzMTM4XHUzMTM5XHUzMTNhXHUzMTNiXHUzMTNjXHUzMTNkXHUzMTNlXHUzMTNmXHUzMTQwXHUzMTQxXHUzMTQyXHUzMTQzXHUzMTQ0XHUzMTQ1XHUzMTQ2XHUzMTQ3XHUzMTQ4XHUzMTQ5XHUzMTRhXHUzMTRiXHUzMTRjXHUzMTRkXHUzMTRl''@;'; + put 'put ''XHUzMTRmXHUzMTUwXHUzMTUxXHUzMTUyXHUzMTUzXHUzMTU0XHUzMTU1XHUzMTU2XHUzMTU3XHUzMTU4XHUzMTU5XHUzMTVhXHUzMTViXHUzMTVjXHUzMTVkXHUzMTVlXHUzMTVmXHUzMTYwXHUzMTYxXHUzMTYyXHUzMTYzXHUzMTY0XHUzMTY1XHUzMTY2XHUzMTY3XHUzMTY4XHUzMTY5XHUz''@;'; + put 'put ''MTZhXHUzMTZiXHUzMTZjXHUzMTZkXHUzMTZlXHUzMTZmXHUzMTcwXHUzMTcxXHUzMTcyXHUzMTczXHUzMTc0XHUzMTc1XHUzMTc2XHUzMTc3XHUzMTc4XHUzMTc5XHUzMTdhXHUzMTdiXHUzMTdjXHUzMTdkXHUzMTdlXHUzMTdmXHUzMTgwXHUzMTgxXHUzMTgyXHUzMTgzXHUzMTg0XHUzMTg1''@;'; + put 'put ''XHUzMTg2XHUzMTg3XHUzMTg4XHUzMTg5XHUzMThhXHUzMThiXHUzMThjXHUzMThkXHUzMThlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2NF1bRV1dPTQxOTg0K0UsTFs0MTk4NCtFXT1C''@;'; + put 'put ''WzE2NF1bRV0pO2ZvcihCWzE2NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2E0N1x1Y2E0OFx1Y2E0OVx1Y2E0YVx1Y2E0Ylx1Y2E0ZVx1Y2E0Zlx1Y2E1MVx1Y2E1Mlx1Y2E1M1x1Y2E1NVx1Y2E1Nlx1Y2E1N1x1Y2E1''@;'; + put 'put ''OFx1Y2E1OVx1Y2E1YVx1Y2E1Ylx1Y2E1ZVx1Y2E2Mlx1Y2E2M1x1Y2E2NFx1Y2E2NVx1Y2E2Nlx1Y2E2N1x1Y2E2OVx1Y2E2YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2E2Ylx1Y2E2Y1x1Y2E2ZFx1Y2E2ZVx1Y2E2Zlx1Y2E3MFx1Y2E3MVx1Y2E3Mlx1Y2E3M1x1''@;'; + put 'put ''Y2E3NFx1Y2E3NVx1Y2E3Nlx1Y2E3N1x1Y2E3OFx1Y2E3OVx1Y2E3YVx1Y2E3Ylx1Y2E3Y1x1Y2E3ZVx1Y2E3Zlx1Y2E4MFx1Y2E4MVx1Y2E4Mlx1Y2E4M1x1Y2E4NVx1Y2E4Nlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2E4N1x1Y2E4OFx1Y2E4OVx1Y2E4YVx1Y2E4''@;'; + put 'put ''Ylx1Y2E4Y1x1Y2E4ZFx1Y2E4ZVx1Y2E4Zlx1Y2E5MFx1Y2E5MVx1Y2E5Mlx1Y2E5M1x1Y2E5NFx1Y2E5NVx1Y2E5Nlx1Y2E5N1x1Y2E5OVx1Y2E5YVx1Y2E5Ylx1Y2E5Y1x1Y2E5ZFx1Y2E5ZVx1Y2E5Zlx1Y2FhMFx1Y2FhMVx1Y2FhMlx1Y2FhM1x1Y2FhNFx1Y2FhNVx1Y2FhNlx1Y2FhN1x1''@;'; + put 'put ''MjE3MFx1MjE3MVx1MjE3Mlx1MjE3M1x1MjE3NFx1MjE3NVx1MjE3Nlx1MjE3N1x1MjE3OFx1MjE3OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2NFx1MjE2NVx1MjE2Nlx1MjE2N1x1MjE2OFx1MjE2OVx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1''@;'; + put 'put ''MDNhOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNj''@;'; + put 'put ''NFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjVdW0VdXT00MjI0MCtF''@;'; + put 'put ''LExbNDIyNDArRV09QlsxNjVdW0VdKTtmb3IoQlsxNjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNhYThcdWNhYTlcdWNhYWFcdWNhYWJcdWNhYWNcdWNhYWRcdWNhYWVcdWNhYWZcdWNhYjBcdWNhYjFcdWNhYjJcdWNh''@;'; + put 'put ''YjNcdWNhYjRcdWNhYjVcdWNhYjZcdWNhYjdcdWNhYjhcdWNhYjlcdWNhYmFcdWNhYmJcdWNhYmVcdWNhYmZcdWNhYzFcdWNhYzJcdWNhYzNcdWNhYzVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNhYzZcdWNhYzdcdWNhYzhcdWNhYzlcdWNhY2FcdWNhY2JcdWNhY2Vc''@;'; + put 'put ''dWNhZDBcdWNhZDJcdWNhZDRcdWNhZDVcdWNhZDZcdWNhZDdcdWNhZGFcdWNhZGJcdWNhZGNcdWNhZGRcdWNhZGVcdWNhZGZcdWNhZTFcdWNhZTJcdWNhZTNcdWNhZTRcdWNhZTVcdWNhZTZcdWNhZTdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNhZThcdWNhZTlcdWNh''@;'; + put 'put ''ZWFcdWNhZWJcdWNhZWRcdWNhZWVcdWNhZWZcdWNhZjBcdWNhZjFcdWNhZjJcdWNhZjNcdWNhZjVcdWNhZjZcdWNhZjdcdWNhZjhcdWNhZjlcdWNhZmFcdWNhZmJcdWNhZmNcdWNhZmRcdWNhZmVcdWNhZmZcdWNiMDBcdWNiMDFcdWNiMDJcdWNiMDNcdWNiMDRcdWNiMDVcdWNiMDZcdWNiMDdc''@;'; + put 'put ''dWNiMDlcdWNiMGFcdTI1MDBcdTI1MDJcdTI1MGNcdTI1MTBcdTI1MThcdTI1MTRcdTI1MWNcdTI1MmNcdTI1MjRcdTI1MzRcdTI1M2NcdTI1MDFcdTI1MDNcdTI1MGZcdTI1MTNcdTI1MWJcdTI1MTdcdTI1MjNcdTI1MzNcdTI1MmJcdTI1M2JcdTI1NGJcdTI1MjBcdTI1MmZcdTI1MjhcdTI1''@;'; + put 'put ''MzdcdTI1M2ZcdTI1MWRcdTI1MzBcdTI1MjVcdTI1MzhcdTI1NDJcdTI1MTJcdTI1MTFcdTI1MWFcdTI1MTlcdTI1MTZcdTI1MTVcdTI1MGVcdTI1MGRcdTI1MWVcdTI1MWZcdTI1MjFcdTI1MjJcdTI1MjZcdTI1MjdcdTI1MjlcdTI1MmFcdTI1MmRcdTI1MmVcdTI1MzFcdTI1MzJcdTI1MzVc''@;'; + put 'put ''dTI1MzZcdTI1MzlcdTI1M2FcdTI1M2RcdTI1M2VcdTI1NDBcdTI1NDFcdTI1NDNcdTI1NDRcdTI1NDVcdTI1NDZcdTI1NDdcdTI1NDhcdTI1NDlcdTI1NGFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY2''@;'; + put 'put ''XVtFXV09NDI0OTYrRSxMWzQyNDk2K0VdPUJbMTY2XVtFXSk7Zm9yKEJbMTY3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYjBiXHVjYjBjXHVjYjBkXHVjYjBlXHVjYjBmXHVjYjExXHVjYjEyXHVjYjEzXHVjYjE1XHVj''@;'; + put 'put ''YjE2XHVjYjE3XHVjYjE5XHVjYjFhXHVjYjFiXHVjYjFjXHVjYjFkXHVjYjFlXHVjYjFmXHVjYjIyXHVjYjIzXHVjYjI0XHVjYjI1XHVjYjI2XHVjYjI3XHVjYjI4XHVjYjI5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYjJhXHVjYjJiXHVjYjJjXHVjYjJkXHVjYjJl''@;'; + put 'put ''XHVjYjJmXHVjYjMwXHVjYjMxXHVjYjMyXHVjYjMzXHVjYjM0XHVjYjM1XHVjYjM2XHVjYjM3XHVjYjM4XHVjYjM5XHVjYjNhXHVjYjNiXHVjYjNjXHVjYjNkXHVjYjNlXHVjYjNmXHVjYjQwXHVjYjQyXHVjYjQzXHVjYjQ0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVj''@;'; + put 'put ''YjQ1XHVjYjQ2XHVjYjQ3XHVjYjRhXHVjYjRiXHVjYjRkXHVjYjRlXHVjYjRmXHVjYjUxXHVjYjUyXHVjYjUzXHVjYjU0XHVjYjU1XHVjYjU2XHVjYjU3XHVjYjVhXHVjYjViXHVjYjVjXHVjYjVlXHVjYjVmXHVjYjYwXHVjYjYxXHVjYjYyXHVjYjYzXHVjYjY1XHVjYjY2XHVjYjY3XHVjYjY4''@;'; + put 'put ''XHVjYjY5XHVjYjZhXHVjYjZiXHVjYjZjXHUzMzk1XHUzMzk2XHUzMzk3XHUyMTEzXHUzMzk4XHUzM2M0XHUzM2EzXHUzM2E0XHUzM2E1XHUzM2E2XHUzMzk5XHUzMzlhXHUzMzliXHUzMzljXHUzMzlkXHUzMzllXHUzMzlmXHUzM2EwXHUzM2ExXHUzM2EyXHUzM2NhXHUzMzhkXHUzMzhlXHUz''@;'; + put 'put ''MzhmXHUzM2NmXHUzMzg4XHUzMzg5XHUzM2M4XHUzM2E3XHUzM2E4XHUzM2IwXHUzM2IxXHUzM2IyXHUzM2IzXHUzM2I0XHUzM2I1XHUzM2I2XHUzM2I3XHUzM2I4XHUzM2I5XHUzMzgwXHUzMzgxXHUzMzgyXHUzMzgzXHUzMzg0XHUzM2JhXHUzM2JiXHUzM2JjXHUzM2JkXHUzM2JlXHUzM2Jm''@;'; + put 'put ''XHUzMzkwXHUzMzkxXHUzMzkyXHUzMzkzXHUzMzk0XHUyMTI2XHUzM2MwXHUzM2MxXHUzMzhhXHUzMzhiXHUzMzhjXHUzM2Q2XHUzM2M1XHUzM2FkXHUzM2FlXHUzM2FmXHUzM2RiXHUzM2E5XHUzM2FhXHUzM2FiXHUzM2FjXHUzM2RkXHUzM2QwXHUzM2QzXHUzM2MzXHUzM2M5XHUzM2RjXHUz''@;'; + put 'put ''M2M2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjddW0VdLmNoYXJDb2RlQXQo''@;'; + put 'put ''MCkmJihtZVtCWzE2N11bRV1dPTQyNzUyK0UsTFs0Mjc1MitFXT1CWzE2N11bRV0pO2ZvcihCWzE2OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2I2ZFx1Y2I2ZVx1Y2I2Zlx1Y2I3MFx1Y2I3MVx1Y2I3Mlx1Y2I3M1x1''@;'; + put 'put ''Y2I3NFx1Y2I3NVx1Y2I3Nlx1Y2I3N1x1Y2I3YVx1Y2I3Ylx1Y2I3Y1x1Y2I3ZFx1Y2I3ZVx1Y2I3Zlx1Y2I4MFx1Y2I4MVx1Y2I4Mlx1Y2I4M1x1Y2I4NFx1Y2I4NVx1Y2I4Nlx1Y2I4N1x1Y2I4OFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2I4OVx1Y2I4YVx1Y2I4''@;'; + put 'put ''Ylx1Y2I4Y1x1Y2I4ZFx1Y2I4ZVx1Y2I4Zlx1Y2I5MFx1Y2I5MVx1Y2I5Mlx1Y2I5M1x1Y2I5NFx1Y2I5NVx1Y2I5Nlx1Y2I5N1x1Y2I5OFx1Y2I5OVx1Y2I5YVx1Y2I5Ylx1Y2I5ZFx1Y2I5ZVx1Y2I5Zlx1Y2JhMFx1Y2JhMVx1Y2JhMlx1Y2JhM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1Y2JhNFx1Y2JhNVx1Y2JhNlx1Y2JhN1x1Y2JhOFx1Y2JhOVx1Y2JhYVx1Y2JhYlx1Y2JhY1x1Y2JhZFx1Y2JhZVx1Y2JhZlx1Y2JiMFx1Y2JiMVx1Y2JiMlx1Y2JiM1x1Y2JiNFx1Y2JiNVx1Y2JiNlx1Y2JiN1x1Y2JiOVx1Y2JiYVx1Y2JiYlx1Y2JiY1x1Y2JiZFx1Y2Ji''@;'; + put 'put ''ZVx1Y2JiZlx1Y2JjMFx1Y2JjMVx1Y2JjMlx1Y2JjM1x1Y2JjNFx4YzZceGQwXHhhYVx1MDEyNlx1ZmZmZFx1MDEzMlx1ZmZmZFx1MDEzZlx1MDE0MVx4ZDhcdTAxNTJceGJhXHhkZVx1MDE2Nlx1MDE0YVx1ZmZmZFx1MzI2MFx1MzI2MVx1MzI2Mlx1MzI2M1x1MzI2NFx1MzI2NVx1MzI2Nlx1''@;'; + put 'put ''MzI2N1x1MzI2OFx1MzI2OVx1MzI2YVx1MzI2Ylx1MzI2Y1x1MzI2ZFx1MzI2ZVx1MzI2Zlx1MzI3MFx1MzI3MVx1MzI3Mlx1MzI3M1x1MzI3NFx1MzI3NVx1MzI3Nlx1MzI3N1x1MzI3OFx1MzI3OVx1MzI3YVx1MzI3Ylx1MjRkMFx1MjRkMVx1MjRkMlx1MjRkM1x1MjRkNFx1MjRkNVx1MjRk''@;'; + put 'put ''Nlx1MjRkN1x1MjRkOFx1MjRkOVx1MjRkYVx1MjRkYlx1MjRkY1x1MjRkZFx1MjRkZVx1MjRkZlx1MjRlMFx1MjRlMVx1MjRlMlx1MjRlM1x1MjRlNFx1MjRlNVx1MjRlNlx1MjRlN1x1MjRlOFx1MjRlOVx1MjQ2MFx1MjQ2MVx1MjQ2Mlx1MjQ2M1x1MjQ2NFx1MjQ2NVx1MjQ2Nlx1MjQ2N1x1''@;'; + put 'put ''MjQ2OFx1MjQ2OVx1MjQ2YVx1MjQ2Ylx1MjQ2Y1x1MjQ2ZFx1MjQ2ZVx4YmRcdTIxNTNcdTIxNTRceGJjXHhiZVx1MjE1Ylx1MjE1Y1x1MjE1ZFx1MjE1ZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY4XVtFXS5jaGFyQ29kZUF0KDApJiYo''@;'; + put 'put ''bWVbQlsxNjhdW0VdXT00MzAwOCtFLExbNDMwMDgrRV09QlsxNjhdW0VdKTtmb3IoQlsxNjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNiYzVcdWNiYzZcdWNiYzdcdWNiYzhcdWNiYzlcdWNiY2FcdWNiY2JcdWNiY2Nc''@;'; + put 'put ''dWNiY2RcdWNiY2VcdWNiY2ZcdWNiZDBcdWNiZDFcdWNiZDJcdWNiZDNcdWNiZDVcdWNiZDZcdWNiZDdcdWNiZDhcdWNiZDlcdWNiZGFcdWNiZGJcdWNiZGNcdWNiZGRcdWNiZGVcdWNiZGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNiZTBcdWNiZTFcdWNiZTJcdWNi''@;'; + put 'put ''ZTNcdWNiZTVcdWNiZTZcdWNiZThcdWNiZWFcdWNiZWJcdWNiZWNcdWNiZWRcdWNiZWVcdWNiZWZcdWNiZjBcdWNiZjFcdWNiZjJcdWNiZjNcdWNiZjRcdWNiZjVcdWNiZjZcdWNiZjdcdWNiZjhcdWNiZjlcdWNiZmFcdWNiZmJcdWNiZmNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWNiZmRcdWNiZmVcdWNiZmZcdWNjMDBcdWNjMDFcdWNjMDJcdWNjMDNcdWNjMDRcdWNjMDVcdWNjMDZcdWNjMDdcdWNjMDhcdWNjMDlcdWNjMGFcdWNjMGJcdWNjMGVcdWNjMGZcdWNjMTFcdWNjMTJcdWNjMTNcdWNjMTVcdWNjMTZcdWNjMTdcdWNjMThcdWNjMTlcdWNjMWFcdWNj''@;'; + put 'put ''MWJcdWNjMWVcdWNjMWZcdWNjMjBcdWNjMjNcdWNjMjRceGU2XHUwMTExXHhmMFx1MDEyN1x1MDEzMVx1MDEzM1x1MDEzOFx1MDE0MFx1MDE0Mlx4ZjhcdTAxNTNceGRmXHhmZVx1MDE2N1x1MDE0Ylx1MDE0OVx1MzIwMFx1MzIwMVx1MzIwMlx1MzIwM1x1MzIwNFx1MzIwNVx1MzIwNlx1MzIw''@;'; + put 'put ''N1x1MzIwOFx1MzIwOVx1MzIwYVx1MzIwYlx1MzIwY1x1MzIwZFx1MzIwZVx1MzIwZlx1MzIxMFx1MzIxMVx1MzIxMlx1MzIxM1x1MzIxNFx1MzIxNVx1MzIxNlx1MzIxN1x1MzIxOFx1MzIxOVx1MzIxYVx1MzIxYlx1MjQ5Y1x1MjQ5ZFx1MjQ5ZVx1MjQ5Zlx1MjRhMFx1MjRhMVx1MjRhMlx1''@;'; + put 'put ''MjRhM1x1MjRhNFx1MjRhNVx1MjRhNlx1MjRhN1x1MjRhOFx1MjRhOVx1MjRhYVx1MjRhYlx1MjRhY1x1MjRhZFx1MjRhZVx1MjRhZlx1MjRiMFx1MjRiMVx1MjRiMlx1MjRiM1x1MjRiNFx1MjRiNVx1MjQ3NFx1MjQ3NVx1MjQ3Nlx1MjQ3N1x1MjQ3OFx1MjQ3OVx1MjQ3YVx1MjQ3Ylx1MjQ3''@;'; + put 'put ''Y1x1MjQ3ZFx1MjQ3ZVx1MjQ3Zlx1MjQ4MFx1MjQ4MVx1MjQ4Mlx4YjlceGIyXHhiM1x1MjA3NFx1MjA3Zlx1MjA4MVx1MjA4Mlx1MjA4M1x1MjA4NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVb''@;'; + put 'put ''QlsxNjldW0VdXT00MzI2NCtFLExbNDMyNjQrRV09QlsxNjldW0VdKTtmb3IoQlsxNzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNjMjVcdWNjMjZcdWNjMmFcdWNjMmJcdWNjMmRcdWNjMmZcdWNjMzFcdWNjMzJcdWNj''@;'; + put 'put ''MzNcdWNjMzRcdWNjMzVcdWNjMzZcdWNjMzdcdWNjM2FcdWNjM2ZcdWNjNDBcdWNjNDFcdWNjNDJcdWNjNDNcdWNjNDZcdWNjNDdcdWNjNDlcdWNjNGFcdWNjNGJcdWNjNGRcdWNjNGVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNjNGZcdWNjNTBcdWNjNTFcdWNjNTJc''@;'; + put 'put ''dWNjNTNcdWNjNTZcdWNjNWFcdWNjNWJcdWNjNWNcdWNjNWRcdWNjNWVcdWNjNWZcdWNjNjFcdWNjNjJcdWNjNjNcdWNjNjVcdWNjNjdcdWNjNjlcdWNjNmFcdWNjNmJcdWNjNmNcdWNjNmRcdWNjNmVcdWNjNmZcdWNjNzFcdWNjNzJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWNjNzNcdWNjNzRcdWNjNzZcdWNjNzdcdWNjNzhcdWNjNzlcdWNjN2FcdWNjN2JcdWNjN2NcdWNjN2RcdWNjN2VcdWNjN2ZcdWNjODBcdWNjODFcdWNjODJcdWNjODNcdWNjODRcdWNjODVcdWNjODZcdWNjODdcdWNjODhcdWNjODlcdWNjOGFcdWNjOGJcdWNjOGNcdWNjOGRcdWNjOGVc''@;'; + put 'put ''dWNjOGZcdWNjOTBcdWNjOTFcdWNjOTJcdWNjOTNcdTMwNDFcdTMwNDJcdTMwNDNcdTMwNDRcdTMwNDVcdTMwNDZcdTMwNDdcdTMwNDhcdTMwNDlcdTMwNGFcdTMwNGJcdTMwNGNcdTMwNGRcdTMwNGVcdTMwNGZcdTMwNTBcdTMwNTFcdTMwNTJcdTMwNTNcdTMwNTRcdTMwNTVcdTMwNTZcdTMw''@;'; + put 'put ''NTdcdTMwNThcdTMwNTlcdTMwNWFcdTMwNWJcdTMwNWNcdTMwNWRcdTMwNWVcdTMwNWZcdTMwNjBcdTMwNjFcdTMwNjJcdTMwNjNcdTMwNjRcdTMwNjVcdTMwNjZcdTMwNjdcdTMwNjhcdTMwNjlcdTMwNmFcdTMwNmJcdTMwNmNcdTMwNmRcdTMwNmVcdTMwNmZcdTMwNzBcdTMwNzFcdTMwNzJc''@;'; + put 'put ''dTMwNzNcdTMwNzRcdTMwNzVcdTMwNzZcdTMwNzdcdTMwNzhcdTMwNzlcdTMwN2FcdTMwN2JcdTMwN2NcdTMwN2RcdTMwN2VcdTMwN2ZcdTMwODBcdTMwODFcdTMwODJcdTMwODNcdTMwODRcdTMwODVcdTMwODZcdTMwODdcdTMwODhcdTMwODlcdTMwOGFcdTMwOGJcdTMwOGNcdTMwOGRcdTMw''@;'; + put 'put ''OGVcdTMwOGZcdTMwOTBcdTMwOTFcdTMwOTJcdTMwOTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3MF1bRV0uY2hhckNv''@;'; + put 'put ''ZGVBdCgwKSYmKG1lW0JbMTcwXVtFXV09NDM1MjArRSxMWzQzNTIwK0VdPUJbMTcwXVtFXSk7Zm9yKEJbMTcxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYzk0XHVjYzk1XHVjYzk2XHVjYzk3XHVjYzlhXHVjYzliXHVj''@;'; + put 'put ''YzlkXHVjYzllXHVjYzlmXHVjY2ExXHVjY2EyXHVjY2EzXHVjY2E0XHVjY2E1XHVjY2E2XHVjY2E3XHVjY2FhXHVjY2FlXHVjY2FmXHVjY2IwXHVjY2IxXHVjY2IyXHVjY2IzXHVjY2I2XHVjY2I3XHVjY2I5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjY2JhXHVjY2Ji''@;'; + put 'put ''XHVjY2JkXHVjY2JlXHVjY2JmXHVjY2MwXHVjY2MxXHVjY2MyXHVjY2MzXHVjY2M2XHVjY2M4XHVjY2NhXHVjY2NiXHVjY2NjXHVjY2NkXHVjY2NlXHVjY2NmXHVjY2QxXHVjY2QyXHVjY2QzXHVjY2Q1XHVjY2Q2XHVjY2Q3XHVjY2Q4XHVjY2Q5XHVjY2RhXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVjY2RiXHVjY2RjXHVjY2RkXHVjY2RlXHVjY2RmXHVjY2UwXHVjY2UxXHVjY2UyXHVjY2UzXHVjY2U1XHVjY2U2XHVjY2U3XHVjY2U4XHVjY2U5XHVjY2VhXHVjY2ViXHVjY2VkXHVjY2VlXHVjY2VmXHVjY2YxXHVjY2YyXHVjY2YzXHVjY2Y0XHVjY2Y1XHVjY2Y2''@;'; + put 'put ''XHVjY2Y3XHVjY2Y4XHVjY2Y5XHVjY2ZhXHVjY2ZiXHVjY2ZjXHVjY2ZkXHUzMGExXHUzMGEyXHUzMGEzXHUzMGE0XHUzMGE1XHUzMGE2XHUzMGE3XHUzMGE4XHUzMGE5XHUzMGFhXHUzMGFiXHUzMGFjXHUzMGFkXHUzMGFlXHUzMGFmXHUzMGIwXHUzMGIxXHUzMGIyXHUzMGIzXHUzMGI0XHUz''@;'; + put 'put ''MGI1XHUzMGI2XHUzMGI3XHUzMGI4XHUzMGI5XHUzMGJhXHUzMGJiXHUzMGJjXHUzMGJkXHUzMGJlXHUzMGJmXHUzMGMwXHUzMGMxXHUzMGMyXHUzMGMzXHUzMGM0XHUzMGM1XHUzMGM2XHUzMGM3XHUzMGM4XHUzMGM5XHUzMGNhXHUzMGNiXHUzMGNjXHUzMGNkXHUzMGNlXHUzMGNmXHUzMGQw''@;'; + put 'put ''XHUzMGQxXHUzMGQyXHUzMGQzXHUzMGQ0XHUzMGQ1XHUzMGQ2XHUzMGQ3XHUzMGQ4XHUzMGQ5XHUzMGRhXHUzMGRiXHUzMGRjXHUzMGRkXHUzMGRlXHUzMGRmXHUzMGUwXHUzMGUxXHUzMGUyXHUzMGUzXHUzMGU0XHUzMGU1XHUzMGU2XHUzMGU3XHUzMGU4XHUzMGU5XHUzMGVhXHUzMGViXHUz''@;'; + put 'put ''MGVjXHUzMGVkXHUzMGVlXHUzMGVmXHUzMGYwXHUzMGYxXHUzMGYyXHUzMGYzXHUzMGY0XHUzMGY1XHUzMGY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTcxXS5sZW5ndGg7KytFKTY1NTMzIT09Qlsx''@;'; + put 'put ''NzFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3MV1bRV1dPTQzNzc2K0UsTFs0Mzc3NitFXT1CWzE3MV1bRV0pO2ZvcihCWzE3Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2NmZVx1Y2NmZlx1Y2QwMFx1Y2QwMlx1''@;'; + put 'put ''Y2QwM1x1Y2QwNFx1Y2QwNVx1Y2QwNlx1Y2QwN1x1Y2QwYVx1Y2QwYlx1Y2QwZFx1Y2QwZVx1Y2QwZlx1Y2QxMVx1Y2QxMlx1Y2QxM1x1Y2QxNFx1Y2QxNVx1Y2QxNlx1Y2QxN1x1Y2QxYVx1Y2QxY1x1Y2QxZVx1Y2QxZlx1Y2QyMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1Y2QyMVx1Y2QyMlx1Y2QyM1x1Y2QyNVx1Y2QyNlx1Y2QyN1x1Y2QyOVx1Y2QyYVx1Y2QyYlx1Y2QyZFx1Y2QyZVx1Y2QyZlx1Y2QzMFx1Y2QzMVx1Y2QzMlx1Y2QzM1x1Y2QzNFx1Y2QzNVx1Y2QzNlx1Y2QzN1x1Y2QzOFx1Y2QzYVx1Y2QzYlx1Y2QzY1x1Y2QzZFx1Y2QzZVx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2QzZlx1Y2Q0MFx1Y2Q0MVx1Y2Q0Mlx1Y2Q0M1x1Y2Q0NFx1Y2Q0NVx1Y2Q0Nlx1Y2Q0N1x1Y2Q0OFx1Y2Q0OVx1Y2Q0YVx1Y2Q0Ylx1Y2Q0Y1x1Y2Q0ZFx1Y2Q0ZVx1Y2Q0Zlx1Y2Q1MFx1Y2Q1MVx1Y2Q1Mlx1Y2Q1M1x1Y2Q1NFx1Y2Q1''@;'; + put 'put ''NVx1Y2Q1Nlx1Y2Q1N1x1Y2Q1OFx1Y2Q1OVx1Y2Q1YVx1Y2Q1Ylx1Y2Q1ZFx1Y2Q1ZVx1Y2Q1Zlx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQwMVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1''@;'; + put 'put ''MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQ1MVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1''@;'; + put 'put ''MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3Ml0ubGVuZ3RoOysr''@;'; + put 'put ''RSk2NTUzMyE9PUJbMTcyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzJdW0VdXT00NDAzMitFLExbNDQwMzIrRV09QlsxNzJdW0VdKTtmb3IoQlsxNzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNkNjFcdWNkNjJc''@;'; + put 'put ''dWNkNjNcdWNkNjVcdWNkNjZcdWNkNjdcdWNkNjhcdWNkNjlcdWNkNmFcdWNkNmJcdWNkNmVcdWNkNzBcdWNkNzJcdWNkNzNcdWNkNzRcdWNkNzVcdWNkNzZcdWNkNzdcdWNkNzlcdWNkN2FcdWNkN2JcdWNkN2NcdWNkN2RcdWNkN2VcdWNkN2ZcdWNkODBcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWNkODFcdWNkODJcdWNkODNcdWNkODRcdWNkODVcdWNkODZcdWNkODdcdWNkODlcdWNkOGFcdWNkOGJcdWNkOGNcdWNkOGRcdWNkOGVcdWNkOGZcdWNkOTBcdWNkOTFcdWNkOTJcdWNkOTNcdWNkOTZcdWNkOTdcdWNkOTlcdWNkOWFcdWNkOWJcdWNkOWRcdWNkOWVc''@;'; + put 'put ''dWNkOWZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNkYTBcdWNkYTFcdWNkYTJcdWNkYTNcdWNkYTZcdWNkYThcdWNkYWFcdWNkYWJcdWNkYWNcdWNkYWRcdWNkYWVcdWNkYWZcdWNkYjFcdWNkYjJcdWNkYjNcdWNkYjRcdWNkYjVcdWNkYjZcdWNkYjdcdWNkYjhcdWNk''@;'; + put 'put ''YjlcdWNkYmFcdWNkYmJcdWNkYmNcdWNkYmRcdWNkYmVcdWNkYmZcdWNkYzBcdWNkYzFcdWNkYzJcdWNkYzNcdWNkYzVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9Qlsx''@;'; + put 'put ''NzNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTczXVtFXV09NDQyODgrRSxMWzQ0Mjg4K0VdPUJbMTczXVtFXSk7Zm9yKEJbMTc0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVjZGM2XHVjZGM3XHVjZGM4XHVjZGM5XHVjZGNhXHVjZGNiXHVjZGNkXHVjZGNlXHVjZGNmXHVjZGQxXHVjZGQyXHVjZGQzXHVjZGQ0XHVjZGQ1XHVjZGQ2XHVjZGQ3XHVjZGQ4XHVjZGQ5XHVjZGRhXHVjZGRiXHVjZGRjXHVjZGRkXHVjZGRlXHVjZGRmXHVjZGUwXHVjZGUxXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZGUyXHVjZGUzXHVjZGU0XHVjZGU1XHVjZGU2XHVjZGU3XHVjZGU5XHVjZGVhXHVjZGViXHVjZGVkXHVjZGVlXHVjZGVmXHVjZGYxXHVjZGYyXHVjZGYzXHVjZGY0XHVjZGY1XHVjZGY2XHVjZGY3XHVjZGZhXHVjZGZjXHVjZGZlXHVjZGZm''@;'; + put 'put ''XHVjZTAwXHVjZTAxXHVjZTAyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTAzXHVjZTA1XHVjZTA2XHVjZTA3XHVjZTA5XHVjZTBhXHVjZTBiXHVjZTBkXHVjZTBlXHVjZTBmXHVjZTEwXHVjZTExXHVjZTEyXHVjZTEzXHVjZTE1XHVjZTE2XHVjZTE3XHVjZTE4XHVj''@;'; + put 'put ''ZTFhXHVjZTFiXHVjZTFjXHVjZTFkXHVjZTFlXHVjZTFmXHVjZTIyXHVjZTIzXHVjZTI1XHVjZTI2XHVjZTI3XHVjZTI5XHVjZTJhXHVjZTJiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgi''@;'; + put 'put ''IiksRT0wO0UhPUJbMTc0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3NF1bRV1dPTQ0NTQ0K0UsTFs0NDU0NCtFXT1CWzE3NF1bRV0pO2ZvcihCWzE3NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1Y2UyY1x1Y2UyZFx1Y2UyZVx1Y2UyZlx1Y2UzMlx1Y2UzNFx1Y2UzNlx1Y2UzN1x1Y2UzOFx1Y2UzOVx1Y2UzYVx1Y2UzYlx1Y2UzY1x1Y2UzZFx1Y2UzZVx1Y2UzZlx1Y2U0MFx1Y2U0MVx1Y2U0Mlx1Y2U0M1x1Y2U0NFx1Y2U0NVx1Y2U0Nlx1Y2U0N1x1Y2U0OFx1''@;'; + put 'put ''Y2U0OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2U0YVx1Y2U0Ylx1Y2U0Y1x1Y2U0ZFx1Y2U0ZVx1Y2U0Zlx1Y2U1MFx1Y2U1MVx1Y2U1Mlx1Y2U1M1x1Y2U1NFx1Y2U1NVx1Y2U1Nlx1Y2U1N1x1Y2U1YVx1Y2U1Ylx1Y2U1ZFx1Y2U1ZVx1Y2U2Mlx1Y2U2M1x1Y2U2''@;'; + put 'put ''NFx1Y2U2NVx1Y2U2Nlx1Y2U2N1x1Y2U2YVx1Y2U2Y1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2U2ZVx1Y2U2Zlx1Y2U3MFx1Y2U3MVx1Y2U3Mlx1Y2U3M1x1Y2U3Nlx1Y2U3N1x1Y2U3OVx1Y2U3YVx1Y2U3Ylx1Y2U3ZFx1Y2U3ZVx1Y2U3Zlx1Y2U4MFx1Y2U4MVx1''@;'; + put 'put ''Y2U4Mlx1Y2U4M1x1Y2U4Nlx1Y2U4OFx1Y2U4YVx1Y2U4Ylx1Y2U4Y1x1Y2U4ZFx1Y2U4ZVx1Y2U4Zlx1Y2U5Mlx1Y2U5M1x1Y2U5NVx1Y2U5Nlx1Y2U5N1x1Y2U5OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzVdW0VdXT00NDgwMCtFLExbNDQ4MDArRV09QlsxNzVdW0VdKTtmb3IoQlsxNzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNlOWFcdWNlOWJcdWNlOWNcdWNlOWRcdWNlOWVcdWNlOWZcdWNlYTJcdWNlYTZcdWNlYTdcdWNlYThcdWNlYTlcdWNlYWFcdWNlYWJcdWNlYWVcdWNlYWZcdWNlYjBcdWNlYjFcdWNlYjJcdWNlYjNcdWNlYjRcdWNlYjVcdWNlYjZcdWNlYjdc''@;'; + put 'put ''dWNlYjhcdWNlYjlcdWNlYmFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNlYmJcdWNlYmNcdWNlYmRcdWNlYmVcdWNlYmZcdWNlYzBcdWNlYzJcdWNlYzNcdWNlYzRcdWNlYzVcdWNlYzZcdWNlYzdcdWNlYzhcdWNlYzlcdWNlY2FcdWNlY2JcdWNlY2NcdWNlY2RcdWNl''@;'; + put 'put ''Y2VcdWNlY2ZcdWNlZDBcdWNlZDFcdWNlZDJcdWNlZDNcdWNlZDRcdWNlZDVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNlZDZcdWNlZDdcdWNlZDhcdWNlZDlcdWNlZGFcdWNlZGJcdWNlZGNcdWNlZGRcdWNlZGVcdWNlZGZcdWNlZTBcdWNlZTFcdWNlZTJcdWNlZTNc''@;'; + put 'put ''dWNlZTZcdWNlZTdcdWNlZTlcdWNlZWFcdWNlZWRcdWNlZWVcdWNlZWZcdWNlZjBcdWNlZjFcdWNlZjJcdWNlZjNcdWNlZjZcdWNlZmFcdWNlZmJcdWNlZmNcdWNlZmRcdWNlZmVcdWNlZmZcdWFjMDBcdWFjMDFcdWFjMDRcdWFjMDdcdWFjMDhcdWFjMDlcdWFjMGFcdWFjMTBcdWFjMTFcdWFj''@;'; + put 'put ''MTJcdWFjMTNcdWFjMTRcdWFjMTVcdWFjMTZcdWFjMTdcdWFjMTlcdWFjMWFcdWFjMWJcdWFjMWNcdWFjMWRcdWFjMjBcdWFjMjRcdWFjMmNcdWFjMmRcdWFjMmZcdWFjMzBcdWFjMzFcdWFjMzhcdWFjMzlcdWFjM2NcdWFjNDBcdWFjNGJcdWFjNGRcdWFjNTRcdWFjNThcdWFjNWNcdWFjNzBc''@;'; + put 'put ''dWFjNzFcdWFjNzRcdWFjNzdcdWFjNzhcdWFjN2FcdWFjODBcdWFjODFcdWFjODNcdWFjODRcdWFjODVcdWFjODZcdWFjODlcdWFjOGFcdWFjOGJcdWFjOGNcdWFjOTBcdWFjOTRcdWFjOWNcdWFjOWRcdWFjOWZcdWFjYTBcdWFjYTFcdWFjYThcdWFjYTlcdWFjYWFcdWFjYWNcdWFjYWZcdWFj''@;'; + put 'put ''YjBcdWFjYjhcdWFjYjlcdWFjYmJcdWFjYmNcdWFjYmRcdWFjYzFcdWFjYzRcdWFjYzhcdWFjY2NcdWFjZDVcdWFjZDdcdWFjZTBcdWFjZTFcdWFjZTRcdWFjZTdcdWFjZThcdWFjZWFcdWFjZWNcdWFjZWZcdWFjZjBcdWFjZjFcdWFjZjNcdWFjZjVcdWFjZjZcdWFjZmNcdWFjZmRcdWFkMDBc''@;'; + put 'put ''dWFkMDRcdWFkMDZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc2XVtFXV09NDUwNTYrRSxMWzQ1MDU2K0VdPUJbMTc2XVtFXSk7Zm9yKEJbMTc3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjAyXHVjZjAzXHVjZjA1XHVjZjA2XHVjZjA3XHVjZjA5XHVjZjBhXHVjZjBiXHVjZjBjXHVjZjBkXHVjZjBlXHVjZjBmXHVjZjEyXHVjZjE0XHVjZjE2XHVjZjE3XHVjZjE4XHVjZjE5XHVjZjFhXHVjZjFiXHVjZjFk''@;'; + put 'put ''XHVjZjFlXHVjZjFmXHVjZjIxXHVjZjIyXHVjZjIzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjI1XHVjZjI2XHVjZjI3XHVjZjI4XHVjZjI5XHVjZjJhXHVjZjJiXHVjZjJlXHVjZjMyXHVjZjMzXHVjZjM0XHVjZjM1XHVjZjM2XHVjZjM3XHVjZjM5XHVjZjNhXHVj''@;'; + put 'put ''ZjNiXHVjZjNjXHVjZjNkXHVjZjNlXHVjZjNmXHVjZjQwXHVjZjQxXHVjZjQyXHVjZjQzXHVjZjQ0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjQ1XHVjZjQ2XHVjZjQ3XHVjZjQ4XHVjZjQ5XHVjZjRhXHVjZjRiXHVjZjRjXHVjZjRkXHVjZjRlXHVjZjRmXHVjZjUw''@;'; + put 'put ''XHVjZjUxXHVjZjUyXHVjZjUzXHVjZjU2XHVjZjU3XHVjZjU5XHVjZjVhXHVjZjViXHVjZjVkXHVjZjVlXHVjZjVmXHVjZjYwXHVjZjYxXHVjZjYyXHVjZjYzXHVjZjY2XHVjZjY4XHVjZjZhXHVjZjZiXHVjZjZjXHVhZDBjXHVhZDBkXHVhZDBmXHVhZDExXHVhZDE4XHVhZDFjXHVhZDIwXHVh''@;'; + put 'put ''ZDI5XHVhZDJjXHVhZDJkXHVhZDM0XHVhZDM1XHVhZDM4XHVhZDNjXHVhZDQ0XHVhZDQ1XHVhZDQ3XHVhZDQ5XHVhZDUwXHVhZDU0XHVhZDU4XHVhZDYxXHVhZDYzXHVhZDZjXHVhZDZkXHVhZDcwXHVhZDczXHVhZDc0XHVhZDc1XHVhZDc2XHVhZDdiXHVhZDdjXHVhZDdkXHVhZDdmXHVhZDgx''@;'; + put 'put ''XHVhZDgyXHVhZDg4XHVhZDg5XHVhZDhjXHVhZDkwXHVhZDljXHVhZDlkXHVhZGE0XHVhZGI3XHVhZGMwXHVhZGMxXHVhZGM0XHVhZGM4XHVhZGQwXHVhZGQxXHVhZGQzXHVhZGRjXHVhZGUwXHVhZGU0XHVhZGY4XHVhZGY5XHVhZGZjXHVhZGZmXHVhZTAwXHVhZTAxXHVhZTA4XHVhZTA5XHVh''@;'; + put 'put ''ZTBiXHVhZTBkXHVhZTE0XHVhZTMwXHVhZTMxXHVhZTM0XHVhZTM3XHVhZTM4XHVhZTNhXHVhZTQwXHVhZTQxXHVhZTQzXHVhZTQ1XHVhZTQ2XHVhZTRhXHVhZTRjXHVhZTRkXHVhZTRlXHVhZTUwXHVhZTU0XHVhZTU2XHVhZTVjXHVhZTVkXHVhZTVmXHVhZTYwXHVhZTYxXHVhZTY1XHVhZTY4''@;'; + put 'put ''XHVhZTY5XHVhZTZjXHVhZTcwXHVhZTc4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3N11bRV1dPTQ1MzEyK0UsTFs0NTMxMitFXT1CWzE3N11bRV0pO2ZvcihCWzE3OF09Ilx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2Y2ZFx1Y2Y2ZVx1Y2Y2Zlx1Y2Y3Mlx1Y2Y3M1x1Y2Y3NVx1Y2Y3Nlx1Y2Y3N1x1Y2Y3OVx1Y2Y3YVx1Y2Y3Ylx1Y2Y3Y1x1Y2Y3ZFx1Y2Y3ZVx1Y2Y3Zlx1Y2Y4MVx1Y2Y4Mlx1Y2Y4M1x1Y2Y4''@;'; + put 'put ''NFx1Y2Y4Nlx1Y2Y4N1x1Y2Y4OFx1Y2Y4OVx1Y2Y4YVx1Y2Y4Ylx1Y2Y4ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2Y4ZVx1Y2Y4Zlx1Y2Y5MFx1Y2Y5MVx1Y2Y5Mlx1Y2Y5M1x1Y2Y5NFx1Y2Y5NVx1Y2Y5Nlx1Y2Y5N1x1Y2Y5OFx1Y2Y5OVx1Y2Y5YVx1Y2Y5Ylx1''@;'; + put 'put ''Y2Y5Y1x1Y2Y5ZFx1Y2Y5ZVx1Y2Y5Zlx1Y2ZhMFx1Y2ZhMlx1Y2ZhM1x1Y2ZhNFx1Y2ZhNVx1Y2ZhNlx1Y2ZhN1x1Y2ZhOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2ZhYVx1Y2ZhYlx1Y2ZhY1x1Y2ZhZFx1Y2ZhZVx1Y2ZhZlx1Y2ZiMVx1Y2ZiMlx1Y2ZiM1x1Y2Zi''@;'; + put 'put ''NFx1Y2ZiNVx1Y2ZiNlx1Y2ZiN1x1Y2ZiOFx1Y2ZiOVx1Y2ZiYVx1Y2ZiYlx1Y2ZiY1x1Y2ZiZFx1Y2ZiZVx1Y2ZiZlx1Y2ZjMFx1Y2ZjMVx1Y2ZjMlx1Y2ZjM1x1Y2ZjNVx1Y2ZjNlx1Y2ZjN1x1Y2ZjOFx1Y2ZjOVx1Y2ZjYVx1Y2ZjYlx1YWU3OVx1YWU3Ylx1YWU3Y1x1YWU3ZFx1YWU4NFx1''@;'; + put 'put ''YWU4NVx1YWU4Y1x1YWViY1x1YWViZFx1YWViZVx1YWVjMFx1YWVjNFx1YWVjY1x1YWVjZFx1YWVjZlx1YWVkMFx1YWVkMVx1YWVkOFx1YWVkOVx1YWVkY1x1YWVlOFx1YWVlYlx1YWVlZFx1YWVmNFx1YWVmOFx1YWVmY1x1YWYwN1x1YWYwOFx1YWYwZFx1YWYxMFx1YWYyY1x1YWYyZFx1YWYz''@;'; + put 'put ''MFx1YWYzMlx1YWYzNFx1YWYzY1x1YWYzZFx1YWYzZlx1YWY0MVx1YWY0Mlx1YWY0M1x1YWY0OFx1YWY0OVx1YWY1MFx1YWY1Y1x1YWY1ZFx1YWY2NFx1YWY2NVx1YWY3OVx1YWY4MFx1YWY4NFx1YWY4OFx1YWY5MFx1YWY5MVx1YWY5NVx1YWY5Y1x1YWZiOFx1YWZiOVx1YWZiY1x1YWZjMFx1''@;'; + put 'put ''YWZjN1x1YWZjOFx1YWZjOVx1YWZjYlx1YWZjZFx1YWZjZVx1YWZkNFx1YWZkY1x1YWZlOFx1YWZlOVx1YWZmMFx1YWZmMVx1YWZmNFx1YWZmOFx1YjAwMFx1YjAwMVx1YjAwNFx1YjAwY1x1YjAxMFx1YjAxNFx1YjAxY1x1YjAxZFx1YjAyOFx1YjA0NFx1YjA0NVx1YjA0OFx1YjA0YVx1YjA0''@;'; + put 'put ''Y1x1YjA0ZVx1YjA1M1x1YjA1NFx1YjA1NVx1YjA1N1x1YjA1OVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzhdW0VdXT00NTU2OCtFLExbNDU1NjgrRV09QlsxNzhdW0VdKTtmb3IoQlsx''@;'; + put 'put ''NzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNmY2NcdWNmY2RcdWNmY2VcdWNmY2ZcdWNmZDBcdWNmZDFcdWNmZDJcdWNmZDNcdWNmZDRcdWNmZDVcdWNmZDZcdWNmZDdcdWNmZDhcdWNmZDlcdWNmZGFcdWNmZGJcdWNm''@;'; + put 'put ''ZGNcdWNmZGRcdWNmZGVcdWNmZGZcdWNmZTJcdWNmZTNcdWNmZTVcdWNmZTZcdWNmZTdcdWNmZTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNmZWFcdWNmZWJcdWNmZWNcdWNmZWRcdWNmZWVcdWNmZWZcdWNmZjJcdWNmZjRcdWNmZjZcdWNmZjdcdWNmZjhcdWNmZjlc''@;'; + put 'put ''dWNmZmFcdWNmZmJcdWNmZmRcdWNmZmVcdWNmZmZcdWQwMDFcdWQwMDJcdWQwMDNcdWQwMDVcdWQwMDZcdWQwMDdcdWQwMDhcdWQwMDlcdWQwMGFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQwMGJcdWQwMGNcdWQwMGRcdWQwMGVcdWQwMGZcdWQwMTBcdWQwMTJcdWQw''@;'; + put 'put ''MTNcdWQwMTRcdWQwMTVcdWQwMTZcdWQwMTdcdWQwMTlcdWQwMWFcdWQwMWJcdWQwMWNcdWQwMWRcdWQwMWVcdWQwMWZcdWQwMjBcdWQwMjFcdWQwMjJcdWQwMjNcdWQwMjRcdWQwMjVcdWQwMjZcdWQwMjdcdWQwMjhcdWQwMjlcdWQwMmFcdWQwMmJcdWQwMmNcdWIwNWRcdWIwN2NcdWIwN2Rc''@;'; + put 'put ''dWIwODBcdWIwODRcdWIwOGNcdWIwOGRcdWIwOGZcdWIwOTFcdWIwOThcdWIwOTlcdWIwOWFcdWIwOWNcdWIwOWZcdWIwYTBcdWIwYTFcdWIwYTJcdWIwYThcdWIwYTlcdWIwYWJcdWIwYWNcdWIwYWRcdWIwYWVcdWIwYWZcdWIwYjFcdWIwYjNcdWIwYjRcdWIwYjVcdWIwYjhcdWIwYmNcdWIw''@;'; + put 'put ''YzRcdWIwYzVcdWIwYzdcdWIwYzhcdWIwYzlcdWIwZDBcdWIwZDFcdWIwZDRcdWIwZDhcdWIwZTBcdWIwZTVcdWIxMDhcdWIxMDlcdWIxMGJcdWIxMGNcdWIxMTBcdWIxMTJcdWIxMTNcdWIxMThcdWIxMTlcdWIxMWJcdWIxMWNcdWIxMWRcdWIxMjNcdWIxMjRcdWIxMjVcdWIxMjhcdWIxMmNc''@;'; + put 'put ''dWIxMzRcdWIxMzVcdWIxMzdcdWIxMzhcdWIxMzlcdWIxNDBcdWIxNDFcdWIxNDRcdWIxNDhcdWIxNTBcdWIxNTFcdWIxNTRcdWIxNTVcdWIxNThcdWIxNWNcdWIxNjBcdWIxNzhcdWIxNzlcdWIxN2NcdWIxODBcdWIxODJcdWIxODhcdWIxODlcdWIxOGJcdWIxOGRcdWIxOTJcdWIxOTNcdWIx''@;'; + put 'put ''OTRcdWIxOThcdWIxOWNcdWIxYThcdWIxY2NcdWIxZDBcdWIxZDRcdWIxZGNcdWIxZGRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc5XVtFXV09NDU4MjQrRSxMWzQ1ODI0K0VdPUJbMTc5''@;'; + put 'put ''XVtFXSk7Zm9yKEJbMTgwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMDJlXHVkMDJmXHVkMDMwXHVkMDMxXHVkMDMyXHVkMDMzXHVkMDM2XHVkMDM3XHVkMDM5XHVkMDNhXHVkMDNiXHVkMDNkXHVkMDNlXHVkMDNmXHVk''@;'; + put 'put ''MDQwXHVkMDQxXHVkMDQyXHVkMDQzXHVkMDQ2XHVkMDQ4XHVkMDRhXHVkMDRiXHVkMDRjXHVkMDRkXHVkMDRlXHVkMDRmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMDUxXHVkMDUyXHVkMDUzXHVkMDU1XHVkMDU2XHVkMDU3XHVkMDU5XHVkMDVhXHVkMDViXHVkMDVj''@;'; + put 'put ''XHVkMDVkXHVkMDVlXHVkMDVmXHVkMDYxXHVkMDYyXHVkMDYzXHVkMDY0XHVkMDY1XHVkMDY2XHVkMDY3XHVkMDY4XHVkMDY5XHVkMDZhXHVkMDZiXHVkMDZlXHVkMDZmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMDcxXHVkMDcyXHVkMDczXHVkMDc1XHVkMDc2XHVk''@;'; + put 'put ''MDc3XHVkMDc4XHVkMDc5XHVkMDdhXHVkMDdiXHVkMDdlXHVkMDdmXHVkMDgwXHVkMDgyXHVkMDgzXHVkMDg0XHVkMDg1XHVkMDg2XHVkMDg3XHVkMDg4XHVkMDg5XHVkMDhhXHVkMDhiXHVkMDhjXHVkMDhkXHVkMDhlXHVkMDhmXHVkMDkwXHVkMDkxXHVkMDkyXHVkMDkzXHVkMDk0XHViMWRm''@;'; + put 'put ''XHViMWU4XHViMWU5XHViMWVjXHViMWYwXHViMWY5XHViMWZiXHViMWZkXHViMjA0XHViMjA1XHViMjA4XHViMjBiXHViMjBjXHViMjE0XHViMjE1XHViMjE3XHViMjE5XHViMjIwXHViMjM0XHViMjNjXHViMjU4XHViMjVjXHViMjYwXHViMjY4XHViMjY5XHViMjc0XHViMjc1XHViMjdjXHVi''@;'; + put 'put ''Mjg0XHViMjg1XHViMjg5XHViMjkwXHViMjkxXHViMjk0XHViMjk4XHViMjk5XHViMjlhXHViMmEwXHViMmExXHViMmEzXHViMmE1XHViMmE2XHViMmFhXHViMmFjXHViMmIwXHViMmI0XHViMmM4XHViMmM5XHViMmNjXHViMmQwXHViMmQyXHViMmQ4XHViMmQ5XHViMmRiXHViMmRkXHViMmUy''@;'; + put 'put ''XHViMmU0XHViMmU1XHViMmU2XHViMmU4XHViMmViXHViMmVjXHViMmVkXHViMmVlXHViMmVmXHViMmYzXHViMmY0XHViMmY1XHViMmY3XHViMmY4XHViMmY5XHViMmZhXHViMmZiXHViMmZmXHViMzAwXHViMzAxXHViMzA0XHViMzA4XHViMzEwXHViMzExXHViMzEzXHViMzE0XHViMzE1XHVi''@;'; + put 'put ''MzFjXHViMzU0XHViMzU1XHViMzU2XHViMzU4XHViMzViXHViMzVjXHViMzVlXHViMzVmXHViMzY0XHViMzY1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4MF1bRV1dPTQ2MDgwK0UsTFs0''@;'; + put 'put ''NjA4MCtFXT1CWzE4MF1bRV0pO2ZvcihCWzE4MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDA5NVx1ZDA5Nlx1ZDA5N1x1ZDA5OFx1ZDA5OVx1ZDA5YVx1ZDA5Ylx1ZDA5Y1x1ZDA5ZFx1ZDA5ZVx1ZDA5Zlx1ZDBhMFx1''@;'; + put 'put ''ZDBhMVx1ZDBhMlx1ZDBhM1x1ZDBhNlx1ZDBhN1x1ZDBhOVx1ZDBhYVx1ZDBhYlx1ZDBhZFx1ZDBhZVx1ZDBhZlx1ZDBiMFx1ZDBiMVx1ZDBiMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDBiM1x1ZDBiNlx1ZDBiOFx1ZDBiYVx1ZDBiYlx1ZDBiY1x1ZDBiZFx1ZDBi''@;'; + put 'put ''ZVx1ZDBiZlx1ZDBjMlx1ZDBjM1x1ZDBjNVx1ZDBjNlx1ZDBjN1x1ZDBjYVx1ZDBjYlx1ZDBjY1x1ZDBjZFx1ZDBjZVx1ZDBjZlx1ZDBkMlx1ZDBkNlx1ZDBkN1x1ZDBkOFx1ZDBkOVx1ZDBkYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDBkYlx1ZDBkZVx1ZDBkZlx1''@;'; + put 'put ''ZDBlMVx1ZDBlMlx1ZDBlM1x1ZDBlNVx1ZDBlNlx1ZDBlN1x1ZDBlOFx1ZDBlOVx1ZDBlYVx1ZDBlYlx1ZDBlZVx1ZDBmMlx1ZDBmM1x1ZDBmNFx1ZDBmNVx1ZDBmNlx1ZDBmN1x1ZDBmOVx1ZDBmYVx1ZDBmYlx1ZDBmY1x1ZDBmZFx1ZDBmZVx1ZDBmZlx1ZDEwMFx1ZDEwMVx1ZDEwMlx1ZDEw''@;'; + put 'put ''M1x1ZDEwNFx1YjM2N1x1YjM2OVx1YjM2Ylx1YjM2ZVx1YjM3MFx1YjM3MVx1YjM3NFx1YjM3OFx1YjM4MFx1YjM4MVx1YjM4M1x1YjM4NFx1YjM4NVx1YjM4Y1x1YjM5MFx1YjM5NFx1YjNhMFx1YjNhMVx1YjNhOFx1YjNhY1x1YjNjNFx1YjNjNVx1YjNjOFx1YjNjYlx1YjNjY1x1YjNjZVx1''@;'; + put 'put ''YjNkMFx1YjNkNFx1YjNkNVx1YjNkN1x1YjNkOVx1YjNkYlx1YjNkZFx1YjNlMFx1YjNlNFx1YjNlOFx1YjNmY1x1YjQxMFx1YjQxOFx1YjQxY1x1YjQyMFx1YjQyOFx1YjQyOVx1YjQyYlx1YjQzNFx1YjQ1MFx1YjQ1MVx1YjQ1NFx1YjQ1OFx1YjQ2MFx1YjQ2MVx1YjQ2M1x1YjQ2NVx1YjQ2''@;'; + put 'put ''Y1x1YjQ4MFx1YjQ4OFx1YjQ5ZFx1YjRhNFx1YjRhOFx1YjRhY1x1YjRiNVx1YjRiN1x1YjRiOVx1YjRjMFx1YjRjNFx1YjRjOFx1YjRkMFx1YjRkNVx1YjRkY1x1YjRkZFx1YjRlMFx1YjRlM1x1YjRlNFx1YjRlNlx1YjRlY1x1YjRlZFx1YjRlZlx1YjRmMVx1YjRmOFx1YjUxNFx1YjUxNVx1''@;'; + put 'put ''YjUxOFx1YjUxYlx1YjUxY1x1YjUyNFx1YjUyNVx1YjUyN1x1YjUyOFx1YjUyOVx1YjUyYVx1YjUzMFx1YjUzMVx1YjUzNFx1YjUzOFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODFdW0Vd''@;'; + put 'put ''XT00NjMzNitFLExbNDYzMzYrRV09QlsxODFdW0VdKTtmb3IoQlsxODJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQxMDVcdWQxMDZcdWQxMDdcdWQxMDhcdWQxMDlcdWQxMGFcdWQxMGJcdWQxMGNcdWQxMGVcdWQxMGZc''@;'; + put 'put ''dWQxMTBcdWQxMTFcdWQxMTJcdWQxMTNcdWQxMTRcdWQxMTVcdWQxMTZcdWQxMTdcdWQxMThcdWQxMTlcdWQxMWFcdWQxMWJcdWQxMWNcdWQxMWRcdWQxMWVcdWQxMWZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQxMjBcdWQxMjFcdWQxMjJcdWQxMjNcdWQxMjRcdWQx''@;'; + put 'put ''MjVcdWQxMjZcdWQxMjdcdWQxMjhcdWQxMjlcdWQxMmFcdWQxMmJcdWQxMmNcdWQxMmRcdWQxMmVcdWQxMmZcdWQxMzJcdWQxMzNcdWQxMzVcdWQxMzZcdWQxMzdcdWQxMzlcdWQxM2JcdWQxM2NcdWQxM2RcdWQxM2VcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQxM2Zc''@;'; + put 'put ''dWQxNDJcdWQxNDZcdWQxNDdcdWQxNDhcdWQxNDlcdWQxNGFcdWQxNGJcdWQxNGVcdWQxNGZcdWQxNTFcdWQxNTJcdWQxNTNcdWQxNTVcdWQxNTZcdWQxNTdcdWQxNThcdWQxNTlcdWQxNWFcdWQxNWJcdWQxNWVcdWQxNjBcdWQxNjJcdWQxNjNcdWQxNjRcdWQxNjVcdWQxNjZcdWQxNjdcdWQx''@;'; + put 'put ''NjlcdWQxNmFcdWQxNmJcdWQxNmRcdWI1NDBcdWI1NDFcdWI1NDNcdWI1NDRcdWI1NDVcdWI1NGJcdWI1NGNcdWI1NGRcdWI1NTBcdWI1NTRcdWI1NWNcdWI1NWRcdWI1NWZcdWI1NjBcdWI1NjFcdWI1YTBcdWI1YTFcdWI1YTRcdWI1YThcdWI1YWFcdWI1YWJcdWI1YjBcdWI1YjFcdWI1YjNc''@;'; + put 'put ''dWI1YjRcdWI1YjVcdWI1YmJcdWI1YmNcdWI1YmRcdWI1YzBcdWI1YzRcdWI1Y2NcdWI1Y2RcdWI1Y2ZcdWI1ZDBcdWI1ZDFcdWI1ZDhcdWI1ZWNcdWI2MTBcdWI2MTFcdWI2MTRcdWI2MThcdWI2MjVcdWI2MmNcdWI2MzRcdWI2NDhcdWI2NjRcdWI2NjhcdWI2OWNcdWI2OWRcdWI2YTBcdWI2''@;'; + put 'put ''YTRcdWI2YWJcdWI2YWNcdWI2YjFcdWI2ZDRcdWI2ZjBcdWI2ZjRcdWI2ZjhcdWI3MDBcdWI3MDFcdWI3MDVcdWI3MjhcdWI3MjlcdWI3MmNcdWI3MmZcdWI3MzBcdWI3MzhcdWI3MzlcdWI3M2JcdWI3NDRcdWI3NDhcdWI3NGNcdWI3NTRcdWI3NTVcdWI3NjBcdWI3NjRcdWI3NjhcdWI3NzBc''@;'; + put 'put ''dWI3NzFcdWI3NzNcdWI3NzVcdWI3N2NcdWI3N2RcdWI3ODBcdWI3ODRcdWI3OGNcdWI3OGRcdWI3OGZcdWI3OTBcdWI3OTFcdWI3OTJcdWI3OTZcdWI3OTdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4Ml1bRV0uY2hhckNvZGVBdCgwKSYm''@;'; + put 'put ''KG1lW0JbMTgyXVtFXV09NDY1OTIrRSxMWzQ2NTkyK0VdPUJbMTgyXVtFXSk7Zm9yKEJbMTgzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMTZlXHVkMTZmXHVkMTcwXHVkMTcxXHVkMTcyXHVkMTczXHVkMTc0XHVkMTc1''@;'; + put 'put ''XHVkMTc2XHVkMTc3XHVkMTc4XHVkMTc5XHVkMTdhXHVkMTdiXHVkMTdkXHVkMTdlXHVkMTdmXHVkMTgwXHVkMTgxXHVkMTgyXHVkMTgzXHVkMTg1XHVkMTg2XHVkMTg3XHVkMTg5XHVkMThhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMThiXHVkMThjXHVkMThkXHVk''@;'; + put 'put ''MThlXHVkMThmXHVkMTkwXHVkMTkxXHVkMTkyXHVkMTkzXHVkMTk0XHVkMTk1XHVkMTk2XHVkMTk3XHVkMTk4XHVkMTk5XHVkMTlhXHVkMTliXHVkMTljXHVkMTlkXHVkMTllXHVkMTlmXHVkMWEyXHVkMWEzXHVkMWE1XHVkMWE2XHVkMWE3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVkMWE5XHVkMWFhXHVkMWFiXHVkMWFjXHVkMWFkXHVkMWFlXHVkMWFmXHVkMWIyXHVkMWI0XHVkMWI2XHVkMWI3XHVkMWI4XHVkMWI5XHVkMWJiXHVkMWJkXHVkMWJlXHVkMWJmXHVkMWMxXHVkMWMyXHVkMWMzXHVkMWM0XHVkMWM1XHVkMWM2XHVkMWM3XHVkMWM4XHVkMWM5XHVk''@;'; + put 'put ''MWNhXHVkMWNiXHVkMWNjXHVkMWNkXHVkMWNlXHVkMWNmXHViNzk4XHViNzk5XHViNzljXHViN2EwXHViN2E4XHViN2E5XHViN2FiXHViN2FjXHViN2FkXHViN2I0XHViN2I1XHViN2I4XHViN2M3XHViN2M5XHViN2VjXHViN2VkXHViN2YwXHViN2Y0XHViN2ZjXHViN2ZkXHViN2ZmXHViODAw''@;'; + put 'put ''XHViODAxXHViODA3XHViODA4XHViODA5XHViODBjXHViODEwXHViODE4XHViODE5XHViODFiXHViODFkXHViODI0XHViODI1XHViODI4XHViODJjXHViODM0XHViODM1XHViODM3XHViODM4XHViODM5XHViODQwXHViODQ0XHViODUxXHViODUzXHViODVjXHViODVkXHViODYwXHViODY0XHVi''@;'; + put 'put ''ODZjXHViODZkXHViODZmXHViODcxXHViODc4XHViODdjXHViODhkXHViOGE4XHViOGIwXHViOGI0XHViOGI4XHViOGMwXHViOGMxXHViOGMzXHViOGM1XHViOGNjXHViOGQwXHViOGQ0XHViOGRkXHViOGRmXHViOGUxXHViOGU4XHViOGU5XHViOGVjXHViOGYwXHViOGY4XHViOGY5XHViOGZi''@;'; + put 'put ''XHViOGZkXHViOTA0XHViOTE4XHViOTIwXHViOTNjXHViOTNkXHViOTQwXHViOTQ0XHViOTRjXHViOTRmXHViOTUxXHViOTU4XHViOTU5XHViOTVjXHViOTYwXHViOTY4XHViOTY5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODNdW0VdLmNo''@;'; + put 'put ''YXJDb2RlQXQoMCkmJihtZVtCWzE4M11bRV1dPTQ2ODQ4K0UsTFs0Njg0OCtFXT1CWzE4M11bRV0pO2ZvcihCWzE4NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDFkMFx1ZDFkMVx1ZDFkMlx1ZDFkM1x1ZDFkNFx1ZDFk''@;'; + put 'put ''NVx1ZDFkNlx1ZDFkN1x1ZDFkOVx1ZDFkYVx1ZDFkYlx1ZDFkY1x1ZDFkZFx1ZDFkZVx1ZDFkZlx1ZDFlMFx1ZDFlMVx1ZDFlMlx1ZDFlM1x1ZDFlNFx1ZDFlNVx1ZDFlNlx1ZDFlN1x1ZDFlOFx1ZDFlOVx1ZDFlYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDFlYlx1''@;'; + put 'put ''ZDFlY1x1ZDFlZFx1ZDFlZVx1ZDFlZlx1ZDFmMFx1ZDFmMVx1ZDFmMlx1ZDFmM1x1ZDFmNVx1ZDFmNlx1ZDFmN1x1ZDFmOVx1ZDFmYVx1ZDFmYlx1ZDFmY1x1ZDFmZFx1ZDFmZVx1ZDFmZlx1ZDIwMFx1ZDIwMVx1ZDIwMlx1ZDIwM1x1ZDIwNFx1ZDIwNVx1ZDIwNlx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDIwOFx1ZDIwYVx1ZDIwYlx1ZDIwY1x1ZDIwZFx1ZDIwZVx1ZDIwZlx1ZDIxMVx1ZDIxMlx1ZDIxM1x1ZDIxNFx1ZDIxNVx1ZDIxNlx1ZDIxN1x1ZDIxOFx1ZDIxOVx1ZDIxYVx1ZDIxYlx1ZDIxY1x1ZDIxZFx1ZDIxZVx1ZDIxZlx1ZDIyMFx1ZDIyMVx1''@;'; + put 'put ''ZDIyMlx1ZDIyM1x1ZDIyNFx1ZDIyNVx1ZDIyNlx1ZDIyN1x1ZDIyOFx1ZDIyOVx1Yjk2Ylx1Yjk2ZFx1Yjk3NFx1Yjk3NVx1Yjk3OFx1Yjk3Y1x1Yjk4NFx1Yjk4NVx1Yjk4N1x1Yjk4OVx1Yjk4YVx1Yjk4ZFx1Yjk4ZVx1YjlhY1x1YjlhZFx1YjliMFx1YjliNFx1YjliY1x1YjliZFx1Yjli''@;'; + put 'put ''Zlx1YjljMVx1YjljOFx1YjljOVx1YjljY1x1YjljZVx1YjljZlx1YjlkMFx1YjlkMVx1YjlkMlx1YjlkOFx1YjlkOVx1YjlkYlx1YjlkZFx1YjlkZVx1YjllMVx1YjllM1x1YjllNFx1YjllNVx1YjllOFx1YjllY1x1YjlmNFx1YjlmNVx1YjlmN1x1YjlmOFx1YjlmOVx1YjlmYVx1YmEwMFx1''@;'; + put 'put ''YmEwMVx1YmEwOFx1YmExNVx1YmEzOFx1YmEzOVx1YmEzY1x1YmE0MFx1YmE0Mlx1YmE0OFx1YmE0OVx1YmE0Ylx1YmE0ZFx1YmE0ZVx1YmE1M1x1YmE1NFx1YmE1NVx1YmE1OFx1YmE1Y1x1YmE2NFx1YmE2NVx1YmE2N1x1YmE2OFx1YmE2OVx1YmE3MFx1YmE3MVx1YmE3NFx1YmE3OFx1YmE4''@;'; + put 'put ''M1x1YmE4NFx1YmE4NVx1YmE4N1x1YmE4Y1x1YmFhOFx1YmFhOVx1YmFhYlx1YmFhY1x1YmFiMFx1YmFiMlx1YmFiOFx1YmFiOVx1YmFiYlx1YmFiZFx1YmFjNFx1YmFjOFx1YmFkOFx1YmFkOVx1YmFmY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4NF0ubGVuZ3RoOysrRSk2NTUzMyE9''@;'; + put 'put ''PUJbMTg0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODRdW0VdXT00NzEwNCtFLExbNDcxMDQrRV09QlsxODRdW0VdKTtmb3IoQlsxODVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyMmFcdWQyMmJcdWQyMmVcdWQy''@;'; + put 'put ''MmZcdWQyMzFcdWQyMzJcdWQyMzNcdWQyMzVcdWQyMzZcdWQyMzdcdWQyMzhcdWQyMzlcdWQyM2FcdWQyM2JcdWQyM2VcdWQyNDBcdWQyNDJcdWQyNDNcdWQyNDRcdWQyNDVcdWQyNDZcdWQyNDdcdWQyNDlcdWQyNGFcdWQyNGJcdWQyNGNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWQyNGRcdWQyNGVcdWQyNGZcdWQyNTBcdWQyNTFcdWQyNTJcdWQyNTNcdWQyNTRcdWQyNTVcdWQyNTZcdWQyNTdcdWQyNThcdWQyNTlcdWQyNWFcdWQyNWJcdWQyNWRcdWQyNWVcdWQyNWZcdWQyNjBcdWQyNjFcdWQyNjJcdWQyNjNcdWQyNjVcdWQyNjZcdWQyNjdcdWQyNjhcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyNjlcdWQyNmFcdWQyNmJcdWQyNmNcdWQyNmRcdWQyNmVcdWQyNmZcdWQyNzBcdWQyNzFcdWQyNzJcdWQyNzNcdWQyNzRcdWQyNzVcdWQyNzZcdWQyNzdcdWQyNzhcdWQyNzlcdWQyN2FcdWQyN2JcdWQyN2NcdWQyN2RcdWQyN2Vc''@;'; + put 'put ''dWQyN2ZcdWQyODJcdWQyODNcdWQyODVcdWQyODZcdWQyODdcdWQyODlcdWQyOGFcdWQyOGJcdWQyOGNcdWJiMDBcdWJiMDRcdWJiMGRcdWJiMGZcdWJiMTFcdWJiMThcdWJiMWNcdWJiMjBcdWJiMjlcdWJiMmJcdWJiMzRcdWJiMzVcdWJiMzZcdWJiMzhcdWJiM2JcdWJiM2NcdWJiM2RcdWJi''@;'; + put 'put ''M2VcdWJiNDRcdWJiNDVcdWJiNDdcdWJiNDlcdWJiNGRcdWJiNGZcdWJiNTBcdWJiNTRcdWJiNThcdWJiNjFcdWJiNjNcdWJiNmNcdWJiODhcdWJiOGNcdWJiOTBcdWJiYTRcdWJiYThcdWJiYWNcdWJiYjRcdWJiYjdcdWJiYzBcdWJiYzRcdWJiYzhcdWJiZDBcdWJiZDNcdWJiZjhcdWJiZjlc''@;'; + put 'put ''dWJiZmNcdWJiZmZcdWJjMDBcdWJjMDJcdWJjMDhcdWJjMDlcdWJjMGJcdWJjMGNcdWJjMGRcdWJjMGZcdWJjMTFcdWJjMTRcdWJjMTVcdWJjMTZcdWJjMTdcdWJjMThcdWJjMWJcdWJjMWNcdWJjMWRcdWJjMWVcdWJjMWZcdWJjMjRcdWJjMjVcdWJjMjdcdWJjMjlcdWJjMmRcdWJjMzBcdWJj''@;'; + put 'put ''MzFcdWJjMzRcdWJjMzhcdWJjNDBcdWJjNDFcdWJjNDNcdWJjNDRcdWJjNDVcdWJjNDlcdWJjNGNcdWJjNGRcdWJjNTBcdWJjNWRcdWJjODRcdWJjODVcdWJjODhcdWJjOGJcdWJjOGNcdWJjOGVcdWJjOTRcdWJjOTVcdWJjOTdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODVdLmxlbmd0''@;'; + put 'put ''aDsrK0UpNjU1MzMhPT1CWzE4NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg1XVtFXV09NDczNjArRSxMWzQ3MzYwK0VdPUJbMTg1XVtFXSk7Zm9yKEJbMTg2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMjhkXHVk''@;'; + put 'put ''MjhlXHVkMjhmXHVkMjkyXHVkMjkzXHVkMjk0XHVkMjk2XHVkMjk3XHVkMjk4XHVkMjk5XHVkMjlhXHVkMjliXHVkMjlkXHVkMjllXHVkMjlmXHVkMmExXHVkMmEyXHVkMmEzXHVkMmE1XHVkMmE2XHVkMmE3XHVkMmE4XHVkMmE5XHVkMmFhXHVkMmFiXHVkMmFkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVkMmFlXHVkMmFmXHVkMmIwXHVkMmIyXHVkMmIzXHVkMmI0XHVkMmI1XHVkMmI2XHVkMmI3XHVkMmJhXHVkMmJiXHVkMmJkXHVkMmJlXHVkMmMxXHVkMmMzXHVkMmM0XHVkMmM1XHVkMmM2XHVkMmM3XHVkMmNhXHVkMmNjXHVkMmNkXHVkMmNlXHVkMmNmXHVk''@;'; + put 'put ''MmQwXHVkMmQxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMmQyXHVkMmQzXHVkMmQ1XHVkMmQ2XHVkMmQ3XHVkMmQ5XHVkMmRhXHVkMmRiXHVkMmRkXHVkMmRlXHVkMmRmXHVkMmUwXHVkMmUxXHVkMmUyXHVkMmUzXHVkMmU2XHVkMmU3XHVkMmU4XHVkMmU5XHVkMmVh''@;'; + put 'put ''XHVkMmViXHVkMmVjXHVkMmVkXHVkMmVlXHVkMmVmXHVkMmYyXHVkMmYzXHVkMmY1XHVkMmY2XHVkMmY3XHVkMmY5XHVkMmZhXHViYzk5XHViYzlhXHViY2EwXHViY2ExXHViY2E0XHViY2E3XHViY2E4XHViY2IwXHViY2IxXHViY2IzXHViY2I0XHViY2I1XHViY2JjXHViY2JkXHViY2MwXHVi''@;'; + put 'put ''Y2M0XHViY2NkXHViY2NmXHViY2QwXHViY2QxXHViY2Q1XHViY2Q4XHViY2RjXHViY2Y0XHViY2Y1XHViY2Y2XHViY2Y4XHViY2ZjXHViZDA0XHViZDA1XHViZDA3XHViZDA5XHViZDEwXHViZDE0XHViZDI0XHViZDJjXHViZDQwXHViZDQ4XHViZDQ5XHViZDRjXHViZDUwXHViZDU4XHViZDU5''@;'; + put 'put ''XHViZDY0XHViZDY4XHViZDgwXHViZDgxXHViZDg0XHViZDg3XHViZDg4XHViZDg5XHViZDhhXHViZDkwXHViZDkxXHViZDkzXHViZDk1XHViZDk5XHViZDlhXHViZDljXHViZGE0XHViZGIwXHViZGI4XHViZGQ0XHViZGQ1XHViZGQ4XHViZGRjXHViZGU5XHViZGYwXHViZGY0XHViZGY4XHVi''@;'; + put 'put ''ZTAwXHViZTAzXHViZTA1XHViZTBjXHViZTBkXHViZTEwXHViZTE0XHViZTFjXHViZTFkXHViZTFmXHViZTQ0XHViZTQ1XHViZTQ4XHViZTRjXHViZTRlXHViZTU0XHViZTU1XHViZTU3XHViZTU5XHViZTVhXHViZTViXHViZTYwXHViZTYxXHViZTY0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0Uh''@;'; + put 'put ''PUJbMTg2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4Nl1bRV1dPTQ3NjE2K0UsTFs0NzYxNitFXT1CWzE4Nl1bRV0pO2ZvcihCWzE4N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZDJmYlx1ZDJmY1x1ZDJmZFx1ZDJmZVx1ZDJmZlx1ZDMwMlx1ZDMwNFx1ZDMwNlx1ZDMwN1x1ZDMwOFx1ZDMwOVx1ZDMwYVx1ZDMwYlx1ZDMwZlx1ZDMxMVx1ZDMxMlx1ZDMxM1x1ZDMxNVx1ZDMxN1x1ZDMxOFx1ZDMxOVx1ZDMxYVx1ZDMxYlx1ZDMxZVx1ZDMyMlx1ZDMyM1x1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDMyNFx1ZDMyNlx1ZDMyN1x1ZDMyYVx1ZDMyYlx1ZDMyZFx1ZDMyZVx1ZDMyZlx1ZDMzMVx1ZDMzMlx1ZDMzM1x1ZDMzNFx1ZDMzNVx1ZDMzNlx1ZDMzN1x1ZDMzYVx1ZDMzZVx1ZDMzZlx1ZDM0MFx1ZDM0MVx1ZDM0Mlx1ZDM0M1x1''@;'; + put 'put ''ZDM0Nlx1ZDM0N1x1ZDM0OFx1ZDM0OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDM0YVx1ZDM0Ylx1ZDM0Y1x1ZDM0ZFx1ZDM0ZVx1ZDM0Zlx1ZDM1MFx1ZDM1MVx1ZDM1Mlx1ZDM1M1x1ZDM1NFx1ZDM1NVx1ZDM1Nlx1ZDM1N1x1ZDM1OFx1ZDM1OVx1ZDM1YVx1ZDM1''@;'; + put 'put ''Ylx1ZDM1Y1x1ZDM1ZFx1ZDM1ZVx1ZDM1Zlx1ZDM2MFx1ZDM2MVx1ZDM2Mlx1ZDM2M1x1ZDM2NFx1ZDM2NVx1ZDM2Nlx1ZDM2N1x1ZDM2OFx1ZDM2OVx1YmU2OFx1YmU2YVx1YmU3MFx1YmU3MVx1YmU3M1x1YmU3NFx1YmU3NVx1YmU3Ylx1YmU3Y1x1YmU3ZFx1YmU4MFx1YmU4NFx1YmU4Y1x1''@;'; + put 'put ''YmU4ZFx1YmU4Zlx1YmU5MFx1YmU5MVx1YmU5OFx1YmU5OVx1YmVhOFx1YmVkMFx1YmVkMVx1YmVkNFx1YmVkN1x1YmVkOFx1YmVlMFx1YmVlM1x1YmVlNFx1YmVlNVx1YmVlY1x1YmYwMVx1YmYwOFx1YmYwOVx1YmYxOFx1YmYxOVx1YmYxYlx1YmYxY1x1YmYxZFx1YmY0MFx1YmY0MVx1YmY0''@;'; + put 'put ''NFx1YmY0OFx1YmY1MFx1YmY1MVx1YmY1NVx1YmY5NFx1YmZiMFx1YmZjNVx1YmZjY1x1YmZjZFx1YmZkMFx1YmZkNFx1YmZkY1x1YmZkZlx1YmZlMVx1YzAzY1x1YzA1MVx1YzA1OFx1YzA1Y1x1YzA2MFx1YzA2OFx1YzA2OVx1YzA5MFx1YzA5MVx1YzA5NFx1YzA5OFx1YzBhMFx1YzBhMVx1''@;'; + put 'put ''YzBhM1x1YzBhNVx1YzBhY1x1YzBhZFx1YzBhZlx1YzBiMFx1YzBiM1x1YzBiNFx1YzBiNVx1YzBiNlx1YzBiY1x1YzBiZFx1YzBiZlx1YzBjMFx1YzBjMVx1YzBjNVx1YzBjOFx1YzBjOVx1YzBjY1x1YzBkMFx1YzBkOFx1YzBkOVx1YzBkYlx1YzBkY1x1YzBkZFx1YzBlNFx1ZmZmZCIuc3Bs''@;'; + put 'put ''aXQoIiIpLEU9MDtFIT1CWzE4N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODddW0VdXT00Nzg3MitFLExbNDc4NzIrRV09QlsxODddW0VdKTtmb3IoQlsxODhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWQzNmFcdWQzNmJcdWQzNmNcdWQzNmRcdWQzNmVcdWQzNmZcdWQzNzBcdWQzNzFcdWQzNzJcdWQzNzNcdWQzNzRcdWQzNzVcdWQzNzZcdWQzNzdcdWQzNzhcdWQzNzlcdWQzN2FcdWQzN2JcdWQzN2VcdWQzN2ZcdWQzODFcdWQzODJcdWQzODNcdWQzODVcdWQz''@;'; + put 'put ''ODZcdWQzODdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQzODhcdWQzODlcdWQzOGFcdWQzOGJcdWQzOGVcdWQzOTJcdWQzOTNcdWQzOTRcdWQzOTVcdWQzOTZcdWQzOTdcdWQzOWFcdWQzOWJcdWQzOWRcdWQzOWVcdWQzOWZcdWQzYTFcdWQzYTJcdWQzYTNcdWQzYTRc''@;'; + put 'put ''dWQzYTVcdWQzYTZcdWQzYTdcdWQzYWFcdWQzYWNcdWQzYWVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQzYWZcdWQzYjBcdWQzYjFcdWQzYjJcdWQzYjNcdWQzYjVcdWQzYjZcdWQzYjdcdWQzYjlcdWQzYmFcdWQzYmJcdWQzYmRcdWQzYmVcdWQzYmZcdWQzYzBcdWQz''@;'; + put 'put ''YzFcdWQzYzJcdWQzYzNcdWQzYzZcdWQzYzdcdWQzY2FcdWQzY2JcdWQzY2NcdWQzY2RcdWQzY2VcdWQzY2ZcdWQzZDFcdWQzZDJcdWQzZDNcdWQzZDRcdWQzZDVcdWQzZDZcdWMwZTVcdWMwZThcdWMwZWNcdWMwZjRcdWMwZjVcdWMwZjdcdWMwZjlcdWMxMDBcdWMxMDRcdWMxMDhcdWMxMTBc''@;'; + put 'put ''dWMxMTVcdWMxMWNcdWMxMWRcdWMxMWVcdWMxMWZcdWMxMjBcdWMxMjNcdWMxMjRcdWMxMjZcdWMxMjdcdWMxMmNcdWMxMmRcdWMxMmZcdWMxMzBcdWMxMzFcdWMxMzZcdWMxMzhcdWMxMzlcdWMxM2NcdWMxNDBcdWMxNDhcdWMxNDlcdWMxNGJcdWMxNGNcdWMxNGRcdWMxNTRcdWMxNTVcdWMx''@;'; + put 'put ''NThcdWMxNWNcdWMxNjRcdWMxNjVcdWMxNjdcdWMxNjhcdWMxNjlcdWMxNzBcdWMxNzRcdWMxNzhcdWMxODVcdWMxOGNcdWMxOGRcdWMxOGVcdWMxOTBcdWMxOTRcdWMxOTZcdWMxOWNcdWMxOWRcdWMxOWZcdWMxYTFcdWMxYTVcdWMxYThcdWMxYTlcdWMxYWNcdWMxYjBcdWMxYmRcdWMxYzRc''@;'; + put 'put ''dWMxYzhcdWMxY2NcdWMxZDRcdWMxZDdcdWMxZDhcdWMxZTBcdWMxZTRcdWMxZThcdWMxZjBcdWMxZjFcdWMxZjNcdWMxZmNcdWMxZmRcdWMyMDBcdWMyMDRcdWMyMGNcdWMyMGRcdWMyMGZcdWMyMTFcdWMyMThcdWMyMTlcdWMyMWNcdWMyMWZcdWMyMjBcdWMyMjhcdWMyMjlcdWMyMmJcdWMy''@;'; + put 'put ''MmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg4XVtFXV09NDgxMjgrRSxMWzQ4MTI4K0VdPUJbMTg4XVtFXSk7Zm9yKEJbMTg5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkM2Q3XHVkM2Q5XHVkM2RhXHVkM2RiXHVkM2RjXHVkM2RkXHVkM2RlXHVkM2RmXHVkM2UwXHVkM2UyXHVkM2U0XHVkM2U1XHVkM2U2XHVkM2U3XHVkM2U4XHVkM2U5XHVkM2VhXHVkM2ViXHVkM2VlXHVkM2VmXHVkM2YxXHVkM2YyXHVk''@;'; + put 'put ''M2YzXHVkM2Y1XHVkM2Y2XHVkM2Y3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkM2Y4XHVkM2Y5XHVkM2ZhXHVkM2ZiXHVkM2ZlXHVkNDAwXHVkNDAyXHVkNDAzXHVkNDA0XHVkNDA1XHVkNDA2XHVkNDA3XHVkNDA5XHVkNDBhXHVkNDBiXHVkNDBjXHVkNDBkXHVkNDBl''@;'; + put 'put ''XHVkNDBmXHVkNDEwXHVkNDExXHVkNDEyXHVkNDEzXHVkNDE0XHVkNDE1XHVkNDE2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDE3XHVkNDE4XHVkNDE5XHVkNDFhXHVkNDFiXHVkNDFjXHVkNDFlXHVkNDFmXHVkNDIwXHVkNDIxXHVkNDIyXHVkNDIzXHVkNDI0XHVk''@;'; + put 'put ''NDI1XHVkNDI2XHVkNDI3XHVkNDI4XHVkNDI5XHVkNDJhXHVkNDJiXHVkNDJjXHVkNDJkXHVkNDJlXHVkNDJmXHVkNDMwXHVkNDMxXHVkNDMyXHVkNDMzXHVkNDM0XHVkNDM1XHVkNDM2XHVkNDM3XHVjMjJmXHVjMjMxXHVjMjMyXHVjMjM0XHVjMjQ4XHVjMjUwXHVjMjUxXHVjMjU0XHVjMjU4''@;'; + put 'put ''XHVjMjYwXHVjMjY1XHVjMjZjXHVjMjZkXHVjMjcwXHVjMjc0XHVjMjdjXHVjMjdkXHVjMjdmXHVjMjgxXHVjMjg4XHVjMjg5XHVjMjkwXHVjMjk4XHVjMjliXHVjMjlkXHVjMmE0XHVjMmE1XHVjMmE4XHVjMmFjXHVjMmFkXHVjMmI0XHVjMmI1XHVjMmI3XHVjMmI5XHVjMmRjXHVjMmRkXHVj''@;'; + put 'put ''MmUwXHVjMmUzXHVjMmU0XHVjMmViXHVjMmVjXHVjMmVkXHVjMmVmXHVjMmYxXHVjMmY2XHVjMmY4XHVjMmY5XHVjMmZiXHVjMmZjXHVjMzAwXHVjMzA4XHVjMzA5XHVjMzBjXHVjMzBkXHVjMzEzXHVjMzE0XHVjMzE1XHVjMzE4XHVjMzFjXHVjMzI0XHVjMzI1XHVjMzI4XHVjMzI5XHVjMzQ1''@;'; + put 'put ''XHVjMzY4XHVjMzY5XHVjMzZjXHVjMzcwXHVjMzcyXHVjMzc4XHVjMzc5XHVjMzdjXHVjMzdkXHVjMzg0XHVjMzg4XHVjMzhjXHVjM2MwXHVjM2Q4XHVjM2Q5XHVjM2RjXHVjM2RmXHVjM2UwXHVjM2UyXHVjM2U4XHVjM2U5XHVjM2VkXHVjM2Y0XHVjM2Y1XHVjM2Y4XHVjNDA4XHVjNDEwXHVj''@;'; + put 'put ''NDI0XHVjNDJjXHVjNDMwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4OV1bRV1dPTQ4Mzg0K0UsTFs0ODM4NCtFXT1CWzE4OV1bRV0pO2ZvcihCWzE5MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDQzOFx1ZDQzOVx1ZDQzYVx1ZDQzYlx1ZDQzY1x1ZDQzZFx1ZDQzZVx1ZDQzZlx1ZDQ0MVx1ZDQ0Mlx1ZDQ0M1x1ZDQ0NVx1ZDQ0Nlx1ZDQ0N1x1ZDQ0OFx1ZDQ0OVx1ZDQ0YVx1ZDQ0Ylx1ZDQ0Y1x1ZDQ0ZFx1''@;'; + put 'put ''ZDQ0ZVx1ZDQ0Zlx1ZDQ1MFx1ZDQ1MVx1ZDQ1Mlx1ZDQ1M1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDQ1NFx1ZDQ1NVx1ZDQ1Nlx1ZDQ1N1x1ZDQ1OFx1ZDQ1OVx1ZDQ1YVx1ZDQ1Ylx1ZDQ1ZFx1ZDQ1ZVx1ZDQ1Zlx1ZDQ2MVx1ZDQ2Mlx1ZDQ2M1x1ZDQ2NVx1ZDQ2''@;'; + put 'put ''Nlx1ZDQ2N1x1ZDQ2OFx1ZDQ2OVx1ZDQ2YVx1ZDQ2Ylx1ZDQ2Y1x1ZDQ2ZVx1ZDQ3MFx1ZDQ3MVx1ZDQ3Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDQ3M1x1ZDQ3NFx1ZDQ3NVx1ZDQ3Nlx1ZDQ3N1x1ZDQ3YVx1ZDQ3Ylx1ZDQ3ZFx1ZDQ3ZVx1ZDQ4MVx1ZDQ4M1x1''@;'; + put 'put ''ZDQ4NFx1ZDQ4NVx1ZDQ4Nlx1ZDQ4N1x1ZDQ4YVx1ZDQ4Y1x1ZDQ4ZVx1ZDQ4Zlx1ZDQ5MFx1ZDQ5MVx1ZDQ5Mlx1ZDQ5M1x1ZDQ5NVx1ZDQ5Nlx1ZDQ5N1x1ZDQ5OFx1ZDQ5OVx1ZDQ5YVx1ZDQ5Ylx1ZDQ5Y1x1ZDQ5ZFx1YzQzNFx1YzQzY1x1YzQzZFx1YzQ0OFx1YzQ2NFx1YzQ2NVx1YzQ2''@;'; + put 'put ''OFx1YzQ2Y1x1YzQ3NFx1YzQ3NVx1YzQ3OVx1YzQ4MFx1YzQ5NFx1YzQ5Y1x1YzRiOFx1YzRiY1x1YzRlOVx1YzRmMFx1YzRmMVx1YzRmNFx1YzRmOFx1YzRmYVx1YzRmZlx1YzUwMFx1YzUwMVx1YzUwY1x1YzUxMFx1YzUxNFx1YzUxY1x1YzUyOFx1YzUyOVx1YzUyY1x1YzUzMFx1YzUzOFx1''@;'; + put 'put ''YzUzOVx1YzUzYlx1YzUzZFx1YzU0NFx1YzU0NVx1YzU0OFx1YzU0OVx1YzU0YVx1YzU0Y1x1YzU0ZFx1YzU0ZVx1YzU1M1x1YzU1NFx1YzU1NVx1YzU1N1x1YzU1OFx1YzU1OVx1YzU1ZFx1YzU1ZVx1YzU2MFx1YzU2MVx1YzU2NFx1YzU2OFx1YzU3MFx1YzU3MVx1YzU3M1x1YzU3NFx1YzU3''@;'; + put 'put ''NVx1YzU3Y1x1YzU3ZFx1YzU4MFx1YzU4NFx1YzU4N1x1YzU4Y1x1YzU4ZFx1YzU4Zlx1YzU5MVx1YzU5NVx1YzU5N1x1YzU5OFx1YzU5Y1x1YzVhMFx1YzVhOVx1YzViNFx1YzViNVx1YzViOFx1YzViOVx1YzViYlx1YzViY1x1YzViZFx1YzViZVx1YzVjNFx1YzVjNVx1YzVjNlx1YzVjN1x1''@;'; + put 'put ''YzVjOFx1YzVjOVx1YzVjYVx1YzVjY1x1YzVjZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTBdW0VdXT00ODY0MCtFLExbNDg2NDArRV09QlsxOTBdW0VdKTtmb3IoQlsxOTFdPSJcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ0OWVcdWQ0OWZcdWQ0YTBcdWQ0YTFcdWQ0YTJcdWQ0YTNcdWQ0YTRcdWQ0YTVcdWQ0YTZcdWQ0YTdcdWQ0YThcdWQ0YWFcdWQ0YWJcdWQ0YWNcdWQ0YWRcdWQ0YWVcdWQ0YWZcdWQ0YjBc''@;'; + put 'put ''dWQ0YjFcdWQ0YjJcdWQ0YjNcdWQ0YjRcdWQ0YjVcdWQ0YjZcdWQ0YjdcdWQ0YjhcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ0YjlcdWQ0YmFcdWQ0YmJcdWQ0YmNcdWQ0YmRcdWQ0YmVcdWQ0YmZcdWQ0YzBcdWQ0YzFcdWQ0YzJcdWQ0YzNcdWQ0YzRcdWQ0YzVcdWQ0''@;'; + put 'put ''YzZcdWQ0YzdcdWQ0YzhcdWQ0YzlcdWQ0Y2FcdWQ0Y2JcdWQ0Y2RcdWQ0Y2VcdWQ0Y2ZcdWQ0ZDFcdWQ0ZDJcdWQ0ZDNcdWQ0ZDVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ0ZDZcdWQ0ZDdcdWQ0ZDhcdWQ0ZDlcdWQ0ZGFcdWQ0ZGJcdWQ0ZGRcdWQ0ZGVcdWQ0ZTBc''@;'; + put 'put ''dWQ0ZTFcdWQ0ZTJcdWQ0ZTNcdWQ0ZTRcdWQ0ZTVcdWQ0ZTZcdWQ0ZTdcdWQ0ZTlcdWQ0ZWFcdWQ0ZWJcdWQ0ZWRcdWQ0ZWVcdWQ0ZWZcdWQ0ZjFcdWQ0ZjJcdWQ0ZjNcdWQ0ZjRcdWQ0ZjVcdWQ0ZjZcdWQ0ZjdcdWQ0ZjlcdWQ0ZmFcdWQ0ZmNcdWM1ZDBcdWM1ZDFcdWM1ZDRcdWM1ZDhcdWM1''@;'; + put 'put ''ZTBcdWM1ZTFcdWM1ZTNcdWM1ZTVcdWM1ZWNcdWM1ZWRcdWM1ZWVcdWM1ZjBcdWM1ZjRcdWM1ZjZcdWM1ZjdcdWM1ZmNcdWM1ZmRcdWM1ZmVcdWM1ZmZcdWM2MDBcdWM2MDFcdWM2MDVcdWM2MDZcdWM2MDdcdWM2MDhcdWM2MGNcdWM2MTBcdWM2MThcdWM2MTlcdWM2MWJcdWM2MWNcdWM2MjRc''@;'; + put 'put ''dWM2MjVcdWM2MjhcdWM2MmNcdWM2MmRcdWM2MmVcdWM2MzBcdWM2MzNcdWM2MzRcdWM2MzVcdWM2MzdcdWM2MzlcdWM2M2JcdWM2NDBcdWM2NDFcdWM2NDRcdWM2NDhcdWM2NTBcdWM2NTFcdWM2NTNcdWM2NTRcdWM2NTVcdWM2NWNcdWM2NWRcdWM2NjBcdWM2NmNcdWM2NmZcdWM2NzFcdWM2''@;'; + put 'put ''NzhcdWM2NzlcdWM2N2NcdWM2ODBcdWM2ODhcdWM2ODlcdWM2OGJcdWM2OGRcdWM2OTRcdWM2OTVcdWM2OThcdWM2OWNcdWM2YTRcdWM2YTVcdWM2YTdcdWM2YTlcdWM2YjBcdWM2YjFcdWM2YjRcdWM2YjhcdWM2YjlcdWM2YmFcdWM2YzBcdWM2YzFcdWM2YzNcdWM2YzVcdWM2Y2NcdWM2Y2Rc''@;'; + put 'put ''dWM2ZDBcdWM2ZDRcdWM2ZGNcdWM2ZGRcdWM2ZTBcdWM2ZTFcdWM2ZThcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTkxXVtFXV09NDg4OTYrRSxMWzQ4ODk2K0VdPUJbMTkxXVtFXSk7Zm9y''@;'; + put 'put ''KEJbMTkyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNGZlXHVkNGZmXHVkNTAwXHVkNTAxXHVkNTAyXHVkNTAzXHVkNTA1XHVkNTA2XHVkNTA3XHVkNTA5XHVkNTBhXHVkNTBiXHVkNTBkXHVkNTBlXHVkNTBmXHVkNTEw''@;'; + put 'put ''XHVkNTExXHVkNTEyXHVkNTEzXHVkNTE2XHVkNTE4XHVkNTE5XHVkNTFhXHVkNTFiXHVkNTFjXHVkNTFkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNTFlXHVkNTFmXHVkNTIwXHVkNTIxXHVkNTIyXHVkNTIzXHVkNTI0XHVkNTI1XHVkNTI2XHVkNTI3XHVkNTI4XHVk''@;'; + put 'put ''NTI5XHVkNTJhXHVkNTJiXHVkNTJjXHVkNTJkXHVkNTJlXHVkNTJmXHVkNTMwXHVkNTMxXHVkNTMyXHVkNTMzXHVkNTM0XHVkNTM1XHVkNTM2XHVkNTM3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNTM4XHVkNTM5XHVkNTNhXHVkNTNiXHVkNTNlXHVkNTNmXHVkNTQx''@;'; + put 'put ''XHVkNTQyXHVkNTQzXHVkNTQ1XHVkNTQ2XHVkNTQ3XHVkNTQ4XHVkNTQ5XHVkNTRhXHVkNTRiXHVkNTRlXHVkNTUwXHVkNTUyXHVkNTUzXHVkNTU0XHVkNTU1XHVkNTU2XHVkNTU3XHVkNTVhXHVkNTViXHVkNTVkXHVkNTVlXHVkNTVmXHVkNTYxXHVkNTYyXHVkNTYzXHVjNmU5XHVjNmVjXHVj''@;'; + put 'put ''NmYwXHVjNmY4XHVjNmY5XHVjNmZkXHVjNzA0XHVjNzA1XHVjNzA4XHVjNzBjXHVjNzE0XHVjNzE1XHVjNzE3XHVjNzE5XHVjNzIwXHVjNzIxXHVjNzI0XHVjNzI4XHVjNzMwXHVjNzMxXHVjNzMzXHVjNzM1XHVjNzM3XHVjNzNjXHVjNzNkXHVjNzQwXHVjNzQ0XHVjNzRhXHVjNzRjXHVjNzRk''@;'; + put 'put ''XHVjNzRmXHVjNzUxXHVjNzUyXHVjNzUzXHVjNzU0XHVjNzU1XHVjNzU2XHVjNzU3XHVjNzU4XHVjNzVjXHVjNzYwXHVjNzY4XHVjNzZiXHVjNzc0XHVjNzc1XHVjNzc4XHVjNzdjXHVjNzdkXHVjNzdlXHVjNzgzXHVjNzg0XHVjNzg1XHVjNzg3XHVjNzg4XHVjNzg5XHVjNzhhXHVjNzhlXHVj''@;'; + put 'put ''NzkwXHVjNzkxXHVjNzk0XHVjNzk2XHVjNzk3XHVjNzk4XHVjNzlhXHVjN2EwXHVjN2ExXHVjN2EzXHVjN2E0XHVjN2E1XHVjN2E2XHVjN2FjXHVjN2FkXHVjN2IwXHVjN2I0XHVjN2JjXHVjN2JkXHVjN2JmXHVjN2MwXHVjN2MxXHVjN2M4XHVjN2M5XHVjN2NjXHVjN2NlXHVjN2QwXHVjN2Q4''@;'; + put 'put ''XHVjN2RkXHVjN2U0XHVjN2U4XHVjN2VjXHVjODAwXHVjODAxXHVjODA0XHVjODA4XHVjODBhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5Ml1bRV1dPTQ5MTUyK0UsTFs0OTE1MitFXT1C''@;'; + put 'put ''WzE5Ml1bRV0pO2ZvcihCWzE5M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDU2NFx1ZDU2Nlx1ZDU2N1x1ZDU2YVx1ZDU2Y1x1ZDU2ZVx1ZDU2Zlx1ZDU3MFx1ZDU3MVx1ZDU3Mlx1ZDU3M1x1ZDU3Nlx1ZDU3N1x1ZDU3''@;'; + put 'put ''OVx1ZDU3YVx1ZDU3Ylx1ZDU3ZFx1ZDU3ZVx1ZDU3Zlx1ZDU4MFx1ZDU4MVx1ZDU4Mlx1ZDU4M1x1ZDU4Nlx1ZDU4YVx1ZDU4Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDU4Y1x1ZDU4ZFx1ZDU4ZVx1ZDU4Zlx1ZDU5MVx1ZDU5Mlx1ZDU5M1x1ZDU5NFx1ZDU5NVx1''@;'; + put 'put ''ZDU5Nlx1ZDU5N1x1ZDU5OFx1ZDU5OVx1ZDU5YVx1ZDU5Ylx1ZDU5Y1x1ZDU5ZFx1ZDU5ZVx1ZDU5Zlx1ZDVhMFx1ZDVhMVx1ZDVhMlx1ZDVhM1x1ZDVhNFx1ZDVhNlx1ZDVhN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDVhOFx1ZDVhOVx1ZDVhYVx1ZDVhYlx1ZDVh''@;'; + put 'put ''Y1x1ZDVhZFx1ZDVhZVx1ZDVhZlx1ZDViMFx1ZDViMVx1ZDViMlx1ZDViM1x1ZDViNFx1ZDViNVx1ZDViNlx1ZDViN1x1ZDViOFx1ZDViOVx1ZDViYVx1ZDViYlx1ZDViY1x1ZDViZFx1ZDViZVx1ZDViZlx1ZDVjMFx1ZDVjMVx1ZDVjMlx1ZDVjM1x1ZDVjNFx1ZDVjNVx1ZDVjNlx1ZDVjN1x1''@;'; + put 'put ''YzgxMFx1YzgxMVx1YzgxM1x1YzgxNVx1YzgxNlx1YzgxY1x1YzgxZFx1YzgyMFx1YzgyNFx1YzgyY1x1YzgyZFx1YzgyZlx1YzgzMVx1YzgzOFx1YzgzY1x1Yzg0MFx1Yzg0OFx1Yzg0OVx1Yzg0Y1x1Yzg0ZFx1Yzg1NFx1Yzg3MFx1Yzg3MVx1Yzg3NFx1Yzg3OFx1Yzg3YVx1Yzg4MFx1Yzg4''@;'; + put 'put ''MVx1Yzg4M1x1Yzg4NVx1Yzg4Nlx1Yzg4N1x1Yzg4Ylx1Yzg4Y1x1Yzg4ZFx1Yzg5NFx1Yzg5ZFx1Yzg5Zlx1YzhhMVx1YzhhOFx1YzhiY1x1YzhiZFx1YzhjNFx1YzhjOFx1YzhjY1x1YzhkNFx1YzhkNVx1YzhkN1x1YzhkOVx1YzhlMFx1YzhlMVx1YzhlNFx1YzhmNVx1YzhmY1x1YzhmZFx1''@;'; + put 'put ''YzkwMFx1YzkwNFx1YzkwNVx1YzkwNlx1YzkwY1x1YzkwZFx1YzkwZlx1YzkxMVx1YzkxOFx1YzkyY1x1YzkzNFx1Yzk1MFx1Yzk1MVx1Yzk1NFx1Yzk1OFx1Yzk2MFx1Yzk2MVx1Yzk2M1x1Yzk2Y1x1Yzk3MFx1Yzk3NFx1Yzk3Y1x1Yzk4OFx1Yzk4OVx1Yzk4Y1x1Yzk5MFx1Yzk5OFx1Yzk5''@;'; + put 'put ''OVx1Yzk5Ylx1Yzk5ZFx1YzljMFx1YzljMVx1YzljNFx1YzljN1x1YzljOFx1YzljYVx1YzlkMFx1YzlkMVx1YzlkM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTNdW0VdXT00OTQwOCtF''@;'; + put 'put ''LExbNDk0MDgrRV09QlsxOTNdW0VdKTtmb3IoQlsxOTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ1Y2FcdWQ1Y2JcdWQ1Y2RcdWQ1Y2VcdWQ1Y2ZcdWQ1ZDFcdWQ1ZDNcdWQ1ZDRcdWQ1ZDVcdWQ1ZDZcdWQ1ZDdcdWQ1''@;'; + put 'put ''ZGFcdWQ1ZGNcdWQ1ZGVcdWQ1ZGZcdWQ1ZTBcdWQ1ZTFcdWQ1ZTJcdWQ1ZTNcdWQ1ZTZcdWQ1ZTdcdWQ1ZTlcdWQ1ZWFcdWQ1ZWJcdWQ1ZWRcdWQ1ZWVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ1ZWZcdWQ1ZjBcdWQ1ZjFcdWQ1ZjJcdWQ1ZjNcdWQ1ZjZcdWQ1Zjhc''@;'; + put 'put ''dWQ1ZmFcdWQ1ZmJcdWQ1ZmNcdWQ1ZmRcdWQ1ZmVcdWQ1ZmZcdWQ2MDJcdWQ2MDNcdWQ2MDVcdWQ2MDZcdWQ2MDdcdWQ2MDlcdWQ2MGFcdWQ2MGJcdWQ2MGNcdWQ2MGRcdWQ2MGVcdWQ2MGZcdWQ2MTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ2MTZcdWQ2MTdcdWQ2''@;'; + put 'put ''MThcdWQ2MTlcdWQ2MWFcdWQ2MWJcdWQ2MWRcdWQ2MWVcdWQ2MWZcdWQ2MjFcdWQ2MjJcdWQ2MjNcdWQ2MjVcdWQ2MjZcdWQ2MjdcdWQ2MjhcdWQ2MjlcdWQ2MmFcdWQ2MmJcdWQ2MmNcdWQ2MmVcdWQ2MmZcdWQ2MzBcdWQ2MzFcdWQ2MzJcdWQ2MzNcdWQ2MzRcdWQ2MzVcdWQ2MzZcdWQ2Mzdc''@;'; + put 'put ''dWQ2M2FcdWQ2M2JcdWM5ZDVcdWM5ZDZcdWM5ZDlcdWM5ZGFcdWM5ZGNcdWM5ZGRcdWM5ZTBcdWM5ZTJcdWM5ZTRcdWM5ZTdcdWM5ZWNcdWM5ZWRcdWM5ZWZcdWM5ZjBcdWM5ZjFcdWM5ZjhcdWM5ZjlcdWM5ZmNcdWNhMDBcdWNhMDhcdWNhMDlcdWNhMGJcdWNhMGNcdWNhMGRcdWNhMTRcdWNh''@;'; + put 'put ''MThcdWNhMjlcdWNhNGNcdWNhNGRcdWNhNTBcdWNhNTRcdWNhNWNcdWNhNWRcdWNhNWZcdWNhNjBcdWNhNjFcdWNhNjhcdWNhN2RcdWNhODRcdWNhOThcdWNhYmNcdWNhYmRcdWNhYzBcdWNhYzRcdWNhY2NcdWNhY2RcdWNhY2ZcdWNhZDFcdWNhZDNcdWNhZDhcdWNhZDlcdWNhZTBcdWNhZWNc''@;'; + put 'put ''dWNhZjRcdWNiMDhcdWNiMTBcdWNiMTRcdWNiMThcdWNiMjBcdWNiMjFcdWNiNDFcdWNiNDhcdWNiNDlcdWNiNGNcdWNiNTBcdWNiNThcdWNiNTlcdWNiNWRcdWNiNjRcdWNiNzhcdWNiNzlcdWNiOWNcdWNiYjhcdWNiZDRcdWNiZTRcdWNiZTdcdWNiZTlcdWNjMGNcdWNjMGRcdWNjMTBcdWNj''@;'; + put 'put ''MTRcdWNjMWNcdWNjMWRcdWNjMjFcdWNjMjJcdWNjMjdcdWNjMjhcdWNjMjlcdWNjMmNcdWNjMmVcdWNjMzBcdWNjMzhcdWNjMzlcdWNjM2JcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk0''@;'; + put 'put ''XVtFXV09NDk2NjQrRSxMWzQ5NjY0K0VdPUJbMTk0XVtFXSk7Zm9yKEJbMTk1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNjNkXHVkNjNlXHVkNjNmXHVkNjQxXHVkNjQyXHVkNjQzXHVkNjQ0XHVkNjQ2XHVkNjQ3XHVk''@;'; + put 'put ''NjRhXHVkNjRjXHVkNjRlXHVkNjRmXHVkNjUwXHVkNjUyXHVkNjUzXHVkNjU2XHVkNjU3XHVkNjU5XHVkNjVhXHVkNjViXHVkNjVkXHVkNjVlXHVkNjVmXHVkNjYwXHVkNjYxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNjYyXHVkNjYzXHVkNjY0XHVkNjY1XHVkNjY2''@;'; + put 'put ''XHVkNjY4XHVkNjZhXHVkNjZiXHVkNjZjXHVkNjZkXHVkNjZlXHVkNjZmXHVkNjcyXHVkNjczXHVkNjc1XHVkNjc2XHVkNjc3XHVkNjc4XHVkNjc5XHVkNjdhXHVkNjdiXHVkNjdjXHVkNjdkXHVkNjdlXHVkNjdmXHVkNjgwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVk''@;'; + put 'put ''NjgxXHVkNjgyXHVkNjg0XHVkNjg2XHVkNjg3XHVkNjg4XHVkNjg5XHVkNjhhXHVkNjhiXHVkNjhlXHVkNjhmXHVkNjkxXHVkNjkyXHVkNjkzXHVkNjk1XHVkNjk2XHVkNjk3XHVkNjk4XHVkNjk5XHVkNjlhXHVkNjliXHVkNjljXHVkNjllXHVkNmEwXHVkNmEyXHVkNmEzXHVkNmE0XHVkNmE1''@;'; + put 'put ''XHVkNmE2XHVkNmE3XHVkNmE5XHVkNmFhXHVjYzNjXHVjYzNkXHVjYzNlXHVjYzQ0XHVjYzQ1XHVjYzQ4XHVjYzRjXHVjYzU0XHVjYzU1XHVjYzU3XHVjYzU4XHVjYzU5XHVjYzYwXHVjYzY0XHVjYzY2XHVjYzY4XHVjYzcwXHVjYzc1XHVjYzk4XHVjYzk5XHVjYzljXHVjY2EwXHVjY2E4XHVj''@;'; + put 'put ''Y2E5XHVjY2FiXHVjY2FjXHVjY2FkXHVjY2I0XHVjY2I1XHVjY2I4XHVjY2JjXHVjY2M0XHVjY2M1XHVjY2M3XHVjY2M5XHVjY2QwXHVjY2Q0XHVjY2U0XHVjY2VjXHVjY2YwXHVjZDAxXHVjZDA4XHVjZDA5XHVjZDBjXHVjZDEwXHVjZDE4XHVjZDE5XHVjZDFiXHVjZDFkXHVjZDI0XHVjZDI4''@;'; + put 'put ''XHVjZDJjXHVjZDM5XHVjZDVjXHVjZDYwXHVjZDY0XHVjZDZjXHVjZDZkXHVjZDZmXHVjZDcxXHVjZDc4XHVjZDg4XHVjZDk0XHVjZDk1XHVjZDk4XHVjZDljXHVjZGE0XHVjZGE1XHVjZGE3XHVjZGE5XHVjZGIwXHVjZGM0XHVjZGNjXHVjZGQwXHVjZGU4XHVjZGVjXHVjZGYwXHVjZGY4XHVj''@;'; + put 'put ''ZGY5XHVjZGZiXHVjZGZkXHVjZTA0XHVjZTA4XHVjZTBjXHVjZTE0XHVjZTE5XHVjZTIwXHVjZTIxXHVjZTI0XHVjZTI4XHVjZTMwXHVjZTMxXHVjZTMzXHVjZTM1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTVdW0VdLmNoYXJDb2RlQXQo''@;'; + put 'put ''MCkmJihtZVtCWzE5NV1bRV1dPTQ5OTIwK0UsTFs0OTkyMCtFXT1CWzE5NV1bRV0pO2ZvcihCWzE5Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDZhYlx1ZDZhZFx1ZDZhZVx1ZDZhZlx1ZDZiMVx1ZDZiMlx1ZDZiM1x1''@;'; + put 'put ''ZDZiNFx1ZDZiNVx1ZDZiNlx1ZDZiN1x1ZDZiOFx1ZDZiYVx1ZDZiY1x1ZDZiZFx1ZDZiZVx1ZDZiZlx1ZDZjMFx1ZDZjMVx1ZDZjMlx1ZDZjM1x1ZDZjNlx1ZDZjN1x1ZDZjOVx1ZDZjYVx1ZDZjYlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDZjZFx1ZDZjZVx1ZDZj''@;'; + put 'put ''Zlx1ZDZkMFx1ZDZkMlx1ZDZkM1x1ZDZkNVx1ZDZkNlx1ZDZkOFx1ZDZkYVx1ZDZkYlx1ZDZkY1x1ZDZkZFx1ZDZkZVx1ZDZkZlx1ZDZlMVx1ZDZlMlx1ZDZlM1x1ZDZlNVx1ZDZlNlx1ZDZlN1x1ZDZlOVx1ZDZlYVx1ZDZlYlx1ZDZlY1x1ZDZlZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZDZlZVx1ZDZlZlx1ZDZmMVx1ZDZmMlx1ZDZmM1x1ZDZmNFx1ZDZmNlx1ZDZmN1x1ZDZmOFx1ZDZmOVx1ZDZmYVx1ZDZmYlx1ZDZmZVx1ZDZmZlx1ZDcwMVx1ZDcwMlx1ZDcwM1x1ZDcwNVx1ZDcwNlx1ZDcwN1x1ZDcwOFx1ZDcwOVx1ZDcwYVx1ZDcwYlx1ZDcwY1x1ZDcw''@;'; + put 'put ''ZFx1ZDcwZVx1ZDcwZlx1ZDcxMFx1ZDcxMlx1ZDcxM1x1ZDcxNFx1Y2U1OFx1Y2U1OVx1Y2U1Y1x1Y2U1Zlx1Y2U2MFx1Y2U2MVx1Y2U2OFx1Y2U2OVx1Y2U2Ylx1Y2U2ZFx1Y2U3NFx1Y2U3NVx1Y2U3OFx1Y2U3Y1x1Y2U4NFx1Y2U4NVx1Y2U4N1x1Y2U4OVx1Y2U5MFx1Y2U5MVx1Y2U5NFx1''@;'; + put 'put ''Y2U5OFx1Y2VhMFx1Y2VhMVx1Y2VhM1x1Y2VhNFx1Y2VhNVx1Y2VhY1x1Y2VhZFx1Y2VjMVx1Y2VlNFx1Y2VlNVx1Y2VlOFx1Y2VlYlx1Y2VlY1x1Y2VmNFx1Y2VmNVx1Y2VmN1x1Y2VmOFx1Y2VmOVx1Y2YwMFx1Y2YwMVx1Y2YwNFx1Y2YwOFx1Y2YxMFx1Y2YxMVx1Y2YxM1x1Y2YxNVx1Y2Yx''@;'; + put 'put ''Y1x1Y2YyMFx1Y2YyNFx1Y2YyY1x1Y2YyZFx1Y2YyZlx1Y2YzMFx1Y2YzMVx1Y2YzOFx1Y2Y1NFx1Y2Y1NVx1Y2Y1OFx1Y2Y1Y1x1Y2Y2NFx1Y2Y2NVx1Y2Y2N1x1Y2Y2OVx1Y2Y3MFx1Y2Y3MVx1Y2Y3NFx1Y2Y3OFx1Y2Y4MFx1Y2Y4NVx1Y2Y4Y1x1Y2ZhMVx1Y2ZhOFx1Y2ZiMFx1Y2ZjNFx1''@;'; + put 'put ''Y2ZlMFx1Y2ZlMVx1Y2ZlNFx1Y2ZlOFx1Y2ZmMFx1Y2ZmMVx1Y2ZmM1x1Y2ZmNVx1Y2ZmY1x1ZDAwMFx1ZDAwNFx1ZDAxMVx1ZDAxOFx1ZDAyZFx1ZDAzNFx1ZDAzNVx1ZDAzOFx1ZDAzY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk2XVtF''@;'; + put 'put ''XS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTZdW0VdXT01MDE3NitFLExbNTAxNzYrRV09QlsxOTZdW0VdKTtmb3IoQlsxOTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ3MTVcdWQ3MTZcdWQ3MTdcdWQ3MWFcdWQ3MWJc''@;'; + put 'put ''dWQ3MWRcdWQ3MWVcdWQ3MWZcdWQ3MjFcdWQ3MjJcdWQ3MjNcdWQ3MjRcdWQ3MjVcdWQ3MjZcdWQ3MjdcdWQ3MmFcdWQ3MmNcdWQ3MmVcdWQ3MmZcdWQ3MzBcdWQ3MzFcdWQ3MzJcdWQ3MzNcdWQ3MzZcdWQ3MzdcdWQ3MzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ3''@;'; + put 'put ''M2FcdWQ3M2JcdWQ3M2RcdWQ3M2VcdWQ3M2ZcdWQ3NDBcdWQ3NDFcdWQ3NDJcdWQ3NDNcdWQ3NDVcdWQ3NDZcdWQ3NDhcdWQ3NGFcdWQ3NGJcdWQ3NGNcdWQ3NGRcdWQ3NGVcdWQ3NGZcdWQ3NTJcdWQ3NTNcdWQ3NTVcdWQ3NWFcdWQ3NWJcdWQ3NWNcdWQ3NWRcdWQ3NWVcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ3NWZcdWQ3NjJcdWQ3NjRcdWQ3NjZcdWQ3NjdcdWQ3NjhcdWQ3NmFcdWQ3NmJcdWQ3NmRcdWQ3NmVcdWQ3NmZcdWQ3NzFcdWQ3NzJcdWQ3NzNcdWQ3NzVcdWQ3NzZcdWQ3NzdcdWQ3NzhcdWQ3NzlcdWQ3N2FcdWQ3N2JcdWQ3N2VcdWQ3N2ZcdWQ3''@;'; + put 'put ''ODBcdWQ3ODJcdWQ3ODNcdWQ3ODRcdWQ3ODVcdWQ3ODZcdWQ3ODdcdWQ3OGFcdWQ3OGJcdWQwNDRcdWQwNDVcdWQwNDdcdWQwNDlcdWQwNTBcdWQwNTRcdWQwNThcdWQwNjBcdWQwNmNcdWQwNmRcdWQwNzBcdWQwNzRcdWQwN2NcdWQwN2RcdWQwODFcdWQwYTRcdWQwYTVcdWQwYThcdWQwYWNc''@;'; + put 'put ''dWQwYjRcdWQwYjVcdWQwYjdcdWQwYjlcdWQwYzBcdWQwYzFcdWQwYzRcdWQwYzhcdWQwYzlcdWQwZDBcdWQwZDFcdWQwZDNcdWQwZDRcdWQwZDVcdWQwZGNcdWQwZGRcdWQwZTBcdWQwZTRcdWQwZWNcdWQwZWRcdWQwZWZcdWQwZjBcdWQwZjFcdWQwZjhcdWQxMGRcdWQxMzBcdWQxMzFcdWQx''@;'; + put 'put ''MzRcdWQxMzhcdWQxM2FcdWQxNDBcdWQxNDFcdWQxNDNcdWQxNDRcdWQxNDVcdWQxNGNcdWQxNGRcdWQxNTBcdWQxNTRcdWQxNWNcdWQxNWRcdWQxNWZcdWQxNjFcdWQxNjhcdWQxNmNcdWQxN2NcdWQxODRcdWQxODhcdWQxYTBcdWQxYTFcdWQxYTRcdWQxYThcdWQxYjBcdWQxYjFcdWQxYjNc''@;'; + put 'put ''dWQxYjVcdWQxYmFcdWQxYmNcdWQxYzBcdWQxZDhcdWQxZjRcdWQxZjhcdWQyMDdcdWQyMDlcdWQyMTBcdWQyMmNcdWQyMmRcdWQyMzBcdWQyMzRcdWQyM2NcdWQyM2RcdWQyM2ZcdWQyNDFcdWQyNDhcdWQyNWNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTddLmxlbmd0aDsrK0UpNjU1''@;'; + put 'put ''MzMhPT1CWzE5N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk3XVtFXV09NTA0MzIrRSxMWzUwNDMyK0VdPUJbMTk3XVtFXSk7Zm9yKEJbMTk4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNzhkXHVkNzhlXHVkNzhm''@;'; + put 'put ''XHVkNzkxXHVkNzkyXHVkNzkzXHVkNzk0XHVkNzk1XHVkNzk2XHVkNzk3XHVkNzlhXHVkNzljXHVkNzllXHVkNzlmXHVkN2EwXHVkN2ExXHVkN2EyXHVkN2EzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMjY0XHVkMjgwXHVkMjgxXHVkMjg0XHVkMjg4XHVkMjkwXHVkMjkxXHVkMjk1XHVkMjljXHVkMmEwXHVkMmE0XHVkMmFjXHVkMmIxXHVkMmI4XHVkMmI5XHVkMmJjXHVkMmJm''@;'; + put 'put ''XHVkMmMwXHVkMmMyXHVkMmM4XHVkMmM5XHVkMmNiXHVkMmQ0XHVkMmQ4XHVkMmRjXHVkMmU0XHVkMmU1XHVkMmYwXHVkMmYxXHVkMmY0XHVkMmY4XHVkMzAwXHVkMzAxXHVkMzAzXHVkMzA1XHVkMzBjXHVkMzBkXHVkMzBlXHVkMzEwXHVkMzE0XHVkMzE2XHVkMzFjXHVkMzFkXHVkMzFmXHVk''@;'; + put 'put ''MzIwXHVkMzIxXHVkMzI1XHVkMzI4XHVkMzI5XHVkMzJjXHVkMzMwXHVkMzM4XHVkMzM5XHVkMzNiXHVkMzNjXHVkMzNkXHVkMzQ0XHVkMzQ1XHVkMzdjXHVkMzdkXHVkMzgwXHVkMzg0XHVkMzhjXHVkMzhkXHVkMzhmXHVkMzkwXHVkMzkxXHVkMzk4XHVkMzk5XHVkMzljXHVkM2EwXHVkM2E4''@;'; + put 'put ''XHVkM2E5XHVkM2FiXHVkM2FkXHVkM2I0XHVkM2I4XHVkM2JjXHVkM2M0XHVkM2M1XHVkM2M4XHVkM2M5XHVkM2QwXHVkM2Q4XHVkM2UxXHVkM2UzXHVkM2VjXHVkM2VkXHVkM2YwXHVkM2Y0XHVkM2ZjXHVkM2ZkXHVkM2ZmXHVkNDAxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk4XS5s''@;'; + put 'put ''ZW5ndGg7KytFKTY1NTMzIT09QlsxOThdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5OF1bRV1dPTUwNjg4K0UsTFs1MDY4OCtFXT1CWzE5OF1bRV0pO2ZvcihCWzE5OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDQwOFx1ZDQxZFx1ZDQ0MFx1ZDQ0NFx1ZDQ1Y1x1ZDQ2MFx1ZDQ2NFx1ZDQ2ZFx1ZDQ2Zlx1ZDQ3OFx1ZDQ3OVx1ZDQ3Y1x1ZDQ3Zlx1ZDQ4MFx1ZDQ4''@;'; + put 'put ''Mlx1ZDQ4OFx1ZDQ4OVx1ZDQ4Ylx1ZDQ4ZFx1ZDQ5NFx1ZDRhOVx1ZDRjY1x1ZDRkMFx1ZDRkNFx1ZDRkY1x1ZDRkZlx1ZDRlOFx1ZDRlY1x1ZDRmMFx1ZDRmOFx1ZDRmYlx1ZDRmZFx1ZDUwNFx1ZDUwOFx1ZDUwY1x1ZDUxNFx1ZDUxNVx1ZDUxN1x1ZDUzY1x1ZDUzZFx1ZDU0MFx1ZDU0NFx1''@;'; + put 'put ''ZDU0Y1x1ZDU0ZFx1ZDU0Zlx1ZDU1MVx1ZDU1OFx1ZDU1OVx1ZDU1Y1x1ZDU2MFx1ZDU2NVx1ZDU2OFx1ZDU2OVx1ZDU2Ylx1ZDU2ZFx1ZDU3NFx1ZDU3NVx1ZDU3OFx1ZDU3Y1x1ZDU4NFx1ZDU4NVx1ZDU4N1x1ZDU4OFx1ZDU4OVx1ZDU5MFx1ZDVhNVx1ZDVjOFx1ZDVjOVx1ZDVjY1x1ZDVk''@;'; + put 'put ''MFx1ZDVkMlx1ZDVkOFx1ZDVkOVx1ZDVkYlx1ZDVkZFx1ZDVlNFx1ZDVlNVx1ZDVlOFx1ZDVlY1x1ZDVmNFx1ZDVmNVx1ZDVmN1x1ZDVmOVx1ZDYwMFx1ZDYwMVx1ZDYwNFx1ZDYwOFx1ZDYxMFx1ZDYxMVx1ZDYxM1x1ZDYxNFx1ZDYxNVx1ZDYxY1x1ZDYyMFx1ZmZmZCIuc3BsaXQoIiIpLEU9''@;'; + put 'put ''MDtFIT1CWzE5OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTldW0VdXT01MDk0NCtFLExbNTA5NDQrRV09QlsxOTldW0VdKTtmb3IoQlsyMDBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ2MjRcdWQ2MmRcdWQ2MzhcdWQ2MzlcdWQ2M2NcdWQ2NDBcdWQ2NDVcdWQ2NDhcdWQ2NDlcdWQ2NGJcdWQ2NGRcdWQ2NTFcdWQ2''@;'; + put 'put ''NTRcdWQ2NTVcdWQ2NThcdWQ2NWNcdWQ2NjdcdWQ2NjlcdWQ2NzBcdWQ2NzFcdWQ2NzRcdWQ2ODNcdWQ2ODVcdWQ2OGNcdWQ2OGRcdWQ2OTBcdWQ2OTRcdWQ2OWRcdWQ2OWZcdWQ2YTFcdWQ2YThcdWQ2YWNcdWQ2YjBcdWQ2YjlcdWQ2YmJcdWQ2YzRcdWQ2YzVcdWQ2YzhcdWQ2Y2NcdWQ2ZDFc''@;'; + put 'put ''dWQ2ZDRcdWQ2ZDdcdWQ2ZDlcdWQ2ZTBcdWQ2ZTRcdWQ2ZThcdWQ2ZjBcdWQ2ZjVcdWQ2ZmNcdWQ2ZmRcdWQ3MDBcdWQ3MDRcdWQ3MTFcdWQ3MThcdWQ3MTlcdWQ3MWNcdWQ3MjBcdWQ3MjhcdWQ3MjlcdWQ3MmJcdWQ3MmRcdWQ3MzRcdWQ3MzVcdWQ3MzhcdWQ3M2NcdWQ3NDRcdWQ3NDdcdWQ3''@;'; + put 'put ''NDlcdWQ3NTBcdWQ3NTFcdWQ3NTRcdWQ3NTZcdWQ3NTdcdWQ3NThcdWQ3NTlcdWQ3NjBcdWQ3NjFcdWQ3NjNcdWQ3NjVcdWQ3NjlcdWQ3NmNcdWQ3NzBcdWQ3NzRcdWQ3N2NcdWQ3N2RcdWQ3ODFcdWQ3ODhcdWQ3ODlcdWQ3OGNcdWQ3OTBcdWQ3OThcdWQ3OTlcdWQ3OWJcdWQ3OWRcdWZmZmQi''@;'; + put 'put ''LnNwbGl0KCIiKSxFPTA7RSE9QlsyMDBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjAwXVtFXV09NTEyMDArRSxMWzUxMjAwK0VdPUJbMjAwXVtFXSk7Zm9yKEJbMjAyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZjNkXHU0ZjczXHU1MDQ3XHU1MGY5XHU1MmEwXHU1M2VmXHU1NDc1XHU1NGU1XHU1NjA5XHU1YWMxXHU1''@;'; + put 'put ''YmI2XHU2Njg3XHU2N2I2XHU2N2I3XHU2N2VmXHU2YjRjXHU3M2MyXHU3NWMyXHU3YTNjXHU4MmRiXHU4MzA0XHU4ODU3XHU4ODg4XHU4YTM2XHU4Y2M4XHU4ZGNmXHU4ZWZiXHU4ZmU2XHU5OWQ1XHU1MjNiXHU1Mzc0XHU1NDA0XHU2MDZhXHU2MTY0XHU2YmJjXHU3M2NmXHU4MTFhXHU4OWJh''@;'; + put 'put ''XHU4OWQyXHU5NWEzXHU0ZjgzXHU1MjBhXHU1OGJlXHU1OTc4XHU1OWU2XHU1ZTcyXHU1ZTc5XHU2MWM3XHU2M2MwXHU2NzQ2XHU2N2VjXHU2ODdmXHU2Zjk3XHU3NjRlXHU3NzBiXHU3OGY1XHU3YTA4XHU3YWZmXHU3YzIxXHU4MDlkXHU4MjZlXHU4MjcxXHU4YWViXHU5NTkzXHU0ZTZiXHU1''@;'; + put 'put ''NTlkXHU2NmY3XHU2ZTM0XHU3OGEzXHU3YWVkXHU4NDViXHU4OTEwXHU4NzRlXHU5N2E4XHU1MmQ4XHU1NzRlXHU1ODJhXHU1ZDRjXHU2MTFmXHU2MWJlXHU2MjIxXHU2NTYyXHU2N2QxXHU2YTQ0XHU2ZTFiXHU3NTE4XHU3NWIzXHU3NmUzXHU3N2IwXHU3ZDNhXHU5MGFmXHU5NDUxXHU5NDUy''@;'; + put 'put ''XHU5Zjk1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwMl1bRV1dPTUxNzEyK0UsTFs1MTcxMitFXT1CWzIwMl1bRV0pO2ZvcihCWzIwM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTMyM1x1NWNhY1x1NzUzMlx1ODBkYlx1OTI0MFx1OTU5OFx1NTI1Ylx1NTgwOFx1''@;'; + put 'put ''NTlkY1x1NWNhMVx1NWQxN1x1NWViN1x1NWYzYVx1NWY0YVx1NjE3N1x1NmM1Zlx1NzU3YVx1NzU4Nlx1N2NlMFx1N2Q3M1x1N2RiMVx1N2Y4Y1x1ODE1NFx1ODIyMVx1ODU5MVx1ODk0MVx1OGIxYlx1OTJmY1x1OTY0ZFx1OWM0N1x1NGVjYlx1NGVmN1x1NTAwYlx1NTFmMVx1NTg0Zlx1NjEz''@;'; + put 'put ''N1x1NjEzZVx1NjE2OFx1NjUzOVx1NjllYVx1NmYxMVx1NzVhNVx1NzY4Nlx1NzZkNlx1N2I4N1x1ODJhNVx1ODRjYlx1ZjkwMFx1OTNhN1x1OTU4Ylx1NTU4MFx1NWJhMlx1NTc1MVx1ZjkwMVx1N2NiM1x1N2ZiOVx1OTFiNVx1NTAyOFx1NTNiYlx1NWM0NVx1NWRlOFx1NjJkMlx1NjM2ZVx1''@;'; + put 'put ''NjRkYVx1NjRlN1x1NmUyMFx1NzBhY1x1Nzk1Ylx1OGRkZFx1OGUxZVx1ZjkwMlx1OTA3ZFx1OTI0NVx1OTJmOFx1NGU3ZVx1NGVmNlx1NTA2NVx1NWRmZVx1NWVmYVx1NjEwNlx1Njk1N1x1ODE3MVx1ODY1NFx1OGU0N1x1OTM3NVx1OWEyYlx1NGU1ZVx1NTA5MVx1Njc3MFx1Njg0MFx1NTEw''@;'; + put 'put ''OVx1NTI4ZFx1NTI5Mlx1NmFhMlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjAzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDNdW0VdXT01MTk2OCtFLExbNTE5NjgrRV09QlsyMDNdW0VdKTtmb3IoQlsyMDRdPSJcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc3YmNcdTkyMTBcdTllZDRcdTUyYWJcdTYwMmZcdThmZjJc''@;'; + put 'put ''dTUwNDhcdTYxYTlcdTYzZWRcdTY0Y2FcdTY4M2NcdTZhODRcdTZmYzBcdTgxODhcdTg5YTFcdTk2OTRcdTU4MDVcdTcyN2RcdTcyYWNcdTc1MDRcdTdkNzlcdTdlNmRcdTgwYTlcdTg5OGJcdThiNzRcdTkwNjNcdTlkNTFcdTYyODlcdTZjN2FcdTZmNTRcdTdkNTBcdTdmM2FcdThhMjNcdTUx''@;'; + put 'put ''N2NcdTYxNGFcdTdiOWRcdThiMTlcdTkyNTdcdTkzOGNcdTRlYWNcdTRmZDNcdTUwMWVcdTUwYmVcdTUxMDZcdTUyYzFcdTUyY2RcdTUzN2ZcdTU3NzBcdTU4ODNcdTVlOWFcdTVmOTFcdTYxNzZcdTYxYWNcdTY0Y2VcdTY1NmNcdTY2NmZcdTY2YmJcdTY2ZjRcdTY4OTdcdTZkODdcdTcwODVc''@;'; + put 'put ''dTcwZjFcdTc0OWZcdTc0YTVcdTc0Y2FcdTc1ZDlcdTc4NmNcdTc4ZWNcdTdhZGZcdTdhZjZcdTdkNDVcdTdkOTNcdTgwMTVcdTgwM2ZcdTgxMWJcdTgzOTZcdThiNjZcdThmMTVcdTkwMTVcdTkzZTFcdTk4MDNcdTk4MzhcdTlhNWFcdTliZThcdTRmYzJcdTU1NTNcdTU4M2FcdTU5NTFcdTVi''@;'; + put 'put ''NjNcdTVjNDZcdTYwYjhcdTYyMTJcdTY4NDJcdTY4YjBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwNF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA0XVtFXV09NTIyMjQrRSxMWzUyMjI0K0VdPUJbMjA0XVtFXSk7Zm9yKEJbMjA1XT0i''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OGU4XHU2ZWFhXHU3NTRjXHU3Njc4''@;'; + put 'put ''XHU3OGNlXHU3YTNkXHU3Y2ZiXHU3ZTZiXHU3ZTdjXHU4YTA4XHU4YWExXHU4YzNmXHU5NjhlXHU5ZGM0XHU1M2U0XHU1M2U5XHU1NDRhXHU1NDcxXHU1NmZhXHU1OWQxXHU1YjY0XHU1YzNiXHU1ZWFiXHU2MmY3XHU2NTM3XHU2NTQ1XHU2NTcyXHU2NmEwXHU2N2FmXHU2OWMxXHU2Y2JkXHU3''@;'; + put 'put ''NWZjXHU3NjkwXHU3NzdlXHU3YTNmXHU3Zjk0XHU4MDAzXHU4MGExXHU4MThmXHU4MmU2XHU4MmZkXHU4M2YwXHU4NWMxXHU4ODMxXHU4OGI0XHU4YWE1XHVmOTAzXHU4ZjljXHU5MzJlXHU5NmM3XHU5ODY3XHU5YWQ4XHU5ZjEzXHU1NGVkXHU2NTliXHU2NmYyXHU2ODhmXHU3YTQwXHU4YzM3''@;'; + put 'put ''XHU5ZDYwXHU1NmYwXHU1NzY0XHU1ZDExXHU2NjA2XHU2OGIxXHU2OGNkXHU2ZWZlXHU3NDI4XHU4ODllXHU5YmU0XHU2YzY4XHVmOTA0XHU5YWE4XHU0ZjliXHU1MTZjXHU1MTcxXHU1MjlmXHU1YjU0XHU1ZGU1XHU2MDUwXHU2MDZkXHU2MmYxXHU2M2E3XHU2NTNiXHU3M2Q5XHU3YTdhXHU4''@;'; + put 'put ''NmEzXHU4Y2EyXHU5NzhmXHU0ZTMyXHU1YmUxXHU2MjA4XHU2NzljXHU3NGRjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwNV1bRV1dPTUyNDgwK0UsTFs1MjQ4MCtFXT1CWzIwNV1bRV0p''@;'; + put 'put ''O2ZvcihCWzIwNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzlkMVx1ODNk''@;'; + put 'put ''M1x1OGE4N1x1OGFiMlx1OGRlOFx1OTA0ZVx1OTM0Ylx1OTg0Nlx1NWVkM1x1NjllOFx1ODVmZlx1OTBlZFx1ZjkwNVx1NTFhMFx1NWI5OFx1NWJlY1x1NjE2M1x1NjhmYVx1NmIzZVx1NzA0Y1x1NzQyZlx1NzRkOFx1N2JhMVx1N2Y1MFx1ODNjNVx1ODljMFx1OGNhYlx1OTVkY1x1OTkyOFx1''@;'; + put 'put ''NTIyZVx1NjA1ZFx1NjJlY1x1OTAwMlx1NGY4YVx1NTE0OVx1NTMyMVx1NThkOVx1NWVlM1x1NjZlMFx1NmQzOFx1NzA5YVx1NzJjMlx1NzNkNlx1N2I1MFx1ODBmMVx1OTQ1Ylx1NTM2Nlx1NjM5Ylx1N2Y2Ylx1NGU1Nlx1NTA4MFx1NTg0YVx1NThkZVx1NjAyYVx1NjEyN1x1NjJkMFx1Njlk''@;'; + put 'put ''MFx1OWI0MVx1NWI4Zlx1N2QxOFx1ODBiMVx1OGY1Zlx1NGVhNFx1NTBkMVx1NTRhY1x1NTVhY1x1NWIwY1x1NWRhMFx1NWRlN1x1NjUyYVx1NjU0ZVx1NjgyMVx1NmE0Ylx1NzJlMVx1NzY4ZVx1NzdlZlx1N2Q1ZVx1N2ZmOVx1ODFhMFx1ODU0ZVx1ODZkZlx1OGYwM1x1OGY0ZVx1OTBjYVx1''@;'; + put 'put ''OTkwM1x1OWE1NVx1OWJhYlx1NGUxOFx1NGU0NVx1NGU1ZFx1NGVjN1x1NGZmMVx1NTE3N1x1NTJmZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDZdW0VdXT01MjczNitFLExbNTI3MzYr''@;'; + put 'put ''RV09QlsyMDZdW0VdKTtmb3IoQlsyMDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdTUzNDBcdTUzZTNcdTUzZTVcdTU0OGVcdTU2MTRcdTU3NzVcdTU3YTJcdTViYzdcdTVkODdcdTVlZDBcdTYxZmNcdTYyZDhcdTY1NTFcdTY3YjhcdTY3ZTlcdTY5Y2JcdTZiNTBcdTZiYzZcdTZiZWNcdTZjNDJcdTZlOWRcdTcwNzhcdTcyZDdcdTczOTZcdTc0MDNcdTc3YmZcdTc3ZTlc''@;'; + put 'put ''dTdhNzZcdTdkN2ZcdTgwMDlcdTgxZmNcdTgyMDVcdTgyMGFcdTgyZGZcdTg4NjJcdThiMzNcdThjZmNcdThlYzBcdTkwMTFcdTkwYjFcdTkyNjRcdTkyYjZcdTk5ZDJcdTlhNDVcdTljZTlcdTlkZDdcdTlmOWNcdTU3MGJcdTVjNDBcdTgzY2FcdTk3YTBcdTk3YWJcdTllYjRcdTU0MWJcdTdh''@;'; + put 'put ''OThcdTdmYTRcdTg4ZDlcdThlY2RcdTkwZTFcdTU4MDBcdTVjNDhcdTYzOThcdTdhOWZcdTViYWVcdTVmMTNcdTdhNzlcdTdhYWVcdTgyOGVcdThlYWNcdTUwMjZcdTUyMzhcdTUyZjhcdTUzNzdcdTU3MDhcdTYyZjNcdTYzNzJcdTZiMGFcdTZkYzNcdTc3MzdcdTUzYTVcdTczNTdcdTg1Njhc''@;'; + put 'put ''dThlNzZcdTk1ZDVcdTY3M2FcdTZhYzNcdTZmNzBcdThhNmRcdThlY2NcdTk5NGJcdWY5MDZcdTY2NzdcdTZiNzhcdThjYjRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA3XVtFXV09NTI5''@;'; + put 'put ''OTIrRSxMWzUyOTkyK0VdPUJbMjA3XVtFXSk7Zm9yKEJbMjA4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHU5YjNjXHVmOTA3XHU1M2ViXHU1NzJkXHU1OTRlXHU2M2M2XHU2OWZiXHU3M2VhXHU3ODQ1XHU3YWJhXHU3YWM1XHU3Y2ZlXHU4NDc1XHU4OThmXHU4ZDczXHU5MDM1XHU5NWE4XHU1MmZiXHU1NzQ3XHU3NTQ3XHU3YjYwXHU4M2NjXHU5MjFlXHVmOTA4XHU2YTU4''@;'; + put 'put ''XHU1MTRiXHU1MjRiXHU1Mjg3XHU2MjFmXHU2OGQ4XHU2OTc1XHU5Njk5XHU1MGM1XHU1MmE0XHU1MmU0XHU2MWMzXHU2NWE0XHU2ODM5XHU2OWZmXHU3NDdlXHU3YjRiXHU4MmI5XHU4M2ViXHU4OWIyXHU4YjM5XHU4ZmQxXHU5OTQ5XHVmOTA5XHU0ZWNhXHU1OTk3XHU2NGQyXHU2NjExXHU2''@;'; + put 'put ''YThlXHU3NDM0XHU3OTgxXHU3OWJkXHU4MmE5XHU4ODdlXHU4ODdmXHU4OTVmXHVmOTBhXHU5MzI2XHU0ZjBiXHU1M2NhXHU2MDI1XHU2MjcxXHU2YzcyXHU3ZDFhXHU3ZDY2XHU0ZTk4XHU1MTYyXHU3N2RjXHU4MGFmXHU0ZjAxXHU0ZjBlXHU1MTc2XHU1MTgwXHU1NWRjXHU1NjY4XHU1NzNi''@;'; + put 'put ''XHU1N2ZhXHU1N2ZjXHU1OTE0XHU1OTQ3XHU1OTkzXHU1YmM0XHU1YzkwXHU1ZDBlXHU1ZGYxXHU1ZTdlXHU1ZmNjXHU2MjgwXHU2NWQ3XHU2NWUzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtC''@;'; + put 'put ''WzIwOF1bRV1dPTUzMjQ4K0UsTFs1MzI0OCtFXT1CWzIwOF1bRV0pO2ZvcihCWzIwOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjcxZVx1NjcxZlx1Njc1ZVx1NjhjYlx1NjhjNFx1NmE1Zlx1NmIzYVx1NmMyM1x1NmM3ZFx1NmM4Mlx1NmRjN1x1NzM5OFx1NzQyNlx1NzQyYVx1NzQ4Mlx1NzRhM1x1NzU3OFx1NzU3Zlx1Nzg4MVx1NzhlZlx1Nzk0MVx1Nzk0N1x1Nzk0''@;'; + put 'put ''OFx1Nzk3YVx1N2I5NVx1N2QwMFx1N2RiYVx1N2Y4OFx1ODAwNlx1ODAyZFx1ODA4Y1x1OGExOFx1OGI0Zlx1OGM0OFx1OGQ3N1x1OTMyMVx1OTMyNFx1OThlMlx1OTk1MVx1OWEwZVx1OWEwZlx1OWE2NVx1OWU5Mlx1N2RjYVx1NGY3Nlx1NTQwOVx1NjJlZVx1Njg1NFx1OTFkMVx1NTVhYlx1''@;'; + put 'put ''NTEzYVx1ZjkwYlx1ZjkwY1x1NWExY1x1NjFlNlx1ZjkwZFx1NjJjZlx1NjJmZlx1ZjkwZVx1ZjkwZlx1ZjkxMFx1ZjkxMVx1ZjkxMlx1ZjkxM1x1OTBhM1x1ZjkxNFx1ZjkxNVx1ZjkxNlx1ZjkxN1x1ZjkxOFx1OGFmZVx1ZjkxOVx1ZjkxYVx1ZjkxYlx1ZjkxY1x1NjY5Nlx1ZjkxZFx1NzE1''@;'; + put 'put ''Nlx1ZjkxZVx1ZjkxZlx1OTZlM1x1ZjkyMFx1NjM0Zlx1NjM3YVx1NTM1N1x1ZjkyMVx1Njc4Zlx1Njk2MFx1NmU3M1x1ZjkyMlx1NzUzN1x1ZjkyM1x1ZjkyNFx1ZjkyNVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA5XVtFXS5jaGFyQ29k''@;'; + put 'put ''ZUF0KDApJiYobWVbQlsyMDldW0VdXT01MzUwNCtFLExbNTM1MDQrRV09QlsyMDldW0VdKTtmb3IoQlsyMTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdkMGRcdWY5MjZcdWY5MjdcdTg4NzJcdTU2Y2FcdTVhMThcdWY5MjhcdWY5MjlcdWY5MmFcdWY5MmJcdWY5MmNcdTRlNDNcdWY5MmRcdTUxNjdcdTU5NDhcdTY3ZjBcdTgwMTBcdWY5MmVcdTU5NzNcdTVlNzRcdTY0''@;'; + put 'put ''OWFcdTc5Y2FcdTVmZjVcdTYwNmNcdTYyYzhcdTYzN2JcdTViZTdcdTViZDdcdTUyYWFcdWY5MmZcdTU5NzRcdTVmMjlcdTYwMTJcdWY5MzBcdWY5MzFcdWY5MzJcdTc0NTlcdWY5MzNcdWY5MzRcdWY5MzVcdWY5MzZcdWY5MzdcdWY5MzhcdTk5ZDFcdWY5MzlcdWY5M2FcdWY5M2JcdWY5M2Nc''@;'; + put 'put ''dWY5M2RcdWY5M2VcdWY5M2ZcdWY5NDBcdWY5NDFcdWY5NDJcdWY5NDNcdTZmYzNcdWY5NDRcdWY5NDVcdTgxYmZcdThmYjJcdTYwZjFcdWY5NDZcdWY5NDdcdTgxNjZcdWY5NDhcdWY5NDlcdTVjM2ZcdWY5NGFcdWY5NGJcdWY5NGNcdWY5NGRcdWY5NGVcdWY5NGZcdWY5NTBcdWY5NTFcdTVh''@;'; + put 'put ''ZTlcdThhMjVcdTY3N2JcdTdkMTBcdWY5NTJcdWY5NTNcdWY5NTRcdWY5NTVcdWY5NTZcdWY5NTdcdTgwZmRcdWY5NThcdWY5NTlcdTVjM2NcdTZjZTVcdTUzM2ZcdTZlYmFcdTU5MWFcdTgzMzZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIx''@;'; + put 'put ''MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjEwXVtFXV09NTM3NjArRSxMWzUzNzYwK0VdPUJbMjEwXVtFXSk7Zm9yKEJbMjExXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTM5XHU0ZWI2XHU0ZjQ2XHU1NWFlXHU1NzE4XHU1OGM3XHU1ZjU2XHU2NWI3XHU2NWU2XHU2YTgwXHU2YmI1XHU2ZTRkXHU3N2VkXHU3YWVmXHU3YzFlXHU3ZGRlXHU4NmNiXHU4ODkyXHU5''@;'; + put 'put ''MTMyXHU5MzViXHU2NGJiXHU2ZmJlXHU3MzdhXHU3NWI4XHU5MDU0XHU1NTU2XHU1NzRkXHU2MWJhXHU2NGQ0XHU2NmM3XHU2ZGUxXHU2ZTViXHU2ZjZkXHU2ZmI5XHU3NWYwXHU4MDQzXHU4MWJkXHU4NTQxXHU4OTgzXHU4YWM3XHU4YjVhXHU5MzFmXHU2YzkzXHU3NTUzXHU3YjU0XHU4ZTBm''@;'; + put 'put ''XHU5MDVkXHU1NTEwXHU1ODAyXHU1ODU4XHU1ZTYyXHU2MjA3XHU2NDllXHU2OGUwXHU3NTc2XHU3Y2Q2XHU4N2IzXHU5ZWU4XHU0ZWUzXHU1Nzg4XHU1NzZlXHU1OTI3XHU1YzBkXHU1Y2IxXHU1ZTM2XHU1Zjg1XHU2MjM0XHU2NGUxXHU3M2IzXHU4MWZhXHU4ODhiXHU4Y2I4XHU5NjhhXHU5''@;'; + put 'put ''ZWRiXHU1Yjg1XHU1ZmI3XHU2MGIzXHU1MDEyXHU1MjAwXHU1MjMwXHU1NzE2XHU1ODM1XHU1ODU3XHU1YzBlXHU1YzYwXHU1Y2Y2XHU1ZDhiXHU1ZWE2XHU1ZjkyXHU2MGJjXHU2MzExXHU2Mzg5XHU2NDE3XHU2ODQzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjExXS5sZW5ndGg7KytF''@;'; + put 'put ''KTY1NTMzIT09QlsyMTFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxMV1bRV1dPTU0MDE2K0UsTFs1NDAxNitFXT1CWzIxMV1bRV0pO2ZvcihCWzIxMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjhmOVx1NmFjMlx1NmRkOFx1NmUyMVx1NmVkNFx1NmZlNFx1NzFmZVx1NzZkY1x1Nzc3OVx1NzliMVx1N2EzYlx1ODQwNFx1ODlhOVx1OGNlZFx1OGRmM1x1OGU0OFx1''@;'; + put 'put ''OTAwM1x1OTAxNFx1OTA1M1x1OTBmZFx1OTM0ZFx1OTY3Nlx1OTdkY1x1NmJkMlx1NzAwNlx1NzI1OFx1NzJhMlx1NzM2OFx1Nzc2M1x1NzliZlx1N2JlNFx1N2U5Ylx1OGI4MFx1NThhOVx1NjBjN1x1NjU2Nlx1NjVmZFx1NjZiZVx1NmM4Y1x1NzExZVx1NzFjOVx1OGM1YVx1OTgxM1x1NGU2''@;'; + put 'put ''ZFx1N2E4MVx1NGVkZFx1NTFhY1x1NTFjZFx1NTJkNVx1NTQwY1x1NjFhN1x1Njc3MVx1Njg1MFx1NjhkZlx1NmQxZVx1NmY3Y1x1NzViY1x1NzdiM1x1N2FlNVx1ODBmNFx1ODQ2M1x1OTI4NVx1NTE1Y1x1NjU5N1x1Njc1Y1x1Njc5M1x1NzVkOFx1N2FjN1x1ODM3M1x1Zjk1YVx1OGM0Nlx1''@;'; + put 'put ''OTAxN1x1OTgyZFx1NWM2Zlx1ODFjMFx1ODI5YVx1OTA0MVx1OTA2Zlx1OTIwZFx1NWY5N1x1NWQ5ZFx1NmE1OVx1NzFjOFx1NzY3Ylx1N2I0OVx1ODVlNFx1OGIwNFx1OTEyN1x1OWEzMFx1NTU4N1x1NjFmNlx1Zjk1Ylx1NzY2OVx1N2Y4NVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIx''@;'; + put 'put ''Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTJdW0VdXT01NDI3MitFLExbNTQyNzIrRV09QlsyMTJdW0VdKTtmb3IoQlsyMTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg2M2ZcdTg3YmFcdTg4ZjhcdTkwOGZcdWY5NWNcdTZkMWJcdTcwZDlcdTczZGVcdTdkNjFcdTg0M2RcdWY5NWRcdTkxNmFcdTk5ZjFcdWY5NWVc''@;'; + put 'put ''dTRlODJcdTUzNzVcdTZiMDRcdTZiMTJcdTcwM2VcdTcyMWJcdTg2MmRcdTllMWVcdTUyNGNcdThmYTNcdTVkNTBcdTY0ZTVcdTY1MmNcdTZiMTZcdTZmZWJcdTdjNDNcdTdlOWNcdTg1Y2RcdTg5NjRcdTg5YmRcdTYyYzlcdTgxZDhcdTg4MWZcdTVlY2FcdTY3MTdcdTZkNmFcdTcyZmNcdTc0''@;'; + put 'put ''MDVcdTc0NmZcdTg3ODJcdTkwZGVcdTRmODZcdTVkMGRcdTVmYTBcdTg0MGFcdTUxYjdcdTYzYTBcdTc1NjVcdTRlYWVcdTUwMDZcdTUxNjlcdTUxYzlcdTY4ODFcdTZhMTFcdTdjYWVcdTdjYjFcdTdjZTdcdTgyNmZcdThhZDJcdThmMWJcdTkxY2ZcdTRmYjZcdTUxMzdcdTUyZjVcdTU0NDJc''@;'; + put 'put ''dTVlZWNcdTYxNmVcdTYyM2VcdTY1YzVcdTZhZGFcdTZmZmVcdTc5MmFcdTg1ZGNcdTg4MjNcdTk1YWRcdTlhNjJcdTlhNmFcdTllOTdcdTllY2VcdTUyOWJcdTY2YzZcdTZiNzdcdTcwMWRcdTc5MmJcdThmNjJcdTk3NDJcdTYxOTBcdTYyMDBcdTY1MjNcdTZmMjNcdWZmZmQiLnNwbGl0KCIi''@;'; + put 'put ''KSxFPTA7RSE9QlsyMTNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjEzXVtFXV09NTQ1MjgrRSxMWzU0NTI4K0VdPUJbMjEzXVtFXSk7Zm9yKEJbMjE0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MTQ5XHU3NDg5XHU3ZGY0XHU4MDZmXHU4NGVlXHU4ZjI2XHU5MDIzXHU5MzRhXHU1MWJkXHU1MjE3XHU1MmEzXHU2ZDBj''@;'; + put 'put ''XHU3MGM4XHU4OGMyXHU1ZWM5XHU2NTgyXHU2YmFlXHU2ZmMyXHU3YzNlXHU3Mzc1XHU0ZWU0XHU0ZjM2XHU1NmY5XHVmOTVmXHU1Y2JhXHU1ZGJhXHU2MDFjXHU3M2IyXHU3YjJkXHU3ZjlhXHU3ZmNlXHU4MDQ2XHU5MDFlXHU5MjM0XHU5NmY2XHU5NzQ4XHU5ODE4XHU5ZjYxXHU0ZjhiXHU2''@;'; + put 'put ''ZmE3XHU3OWFlXHU5MWI0XHU5NmI3XHU1MmRlXHVmOTYwXHU2NDg4XHU2NGM0XHU2YWQzXHU2ZjVlXHU3MDE4XHU3MjEwXHU3NmU3XHU4MDAxXHU4NjA2XHU4NjVjXHU4ZGVmXHU4ZjA1XHU5NzMyXHU5YjZmXHU5ZGZhXHU5ZTc1XHU3ODhjXHU3OTdmXHU3ZGEwXHU4M2M5XHU5MzA0XHU5ZTdm''@;'; + put 'put ''XHU5ZTkzXHU4YWQ2XHU1OGRmXHU1ZjA0XHU2NzI3XHU3MDI3XHU3NGNmXHU3YzYwXHU4MDdlXHU1MTIxXHU3MDI4XHU3MjYyXHU3OGNhXHU4Y2MyXHU4Y2RhXHU4Y2Y0XHU5NmY3XHU0ZTg2XHU1MGRhXHU1YmVlXHU1ZWQ2XHU2NTk5XHU3MWNlXHU3NjQyXHU3N2FkXHU4MDRhXHU4NGZjXHVm''@;'; + put 'put ''ZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxNF1bRV1dPTU0Nzg0K0UsTFs1NDc4NCtFXT1CWzIxNF1bRV0pO2ZvcihCWzIxNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTA3Y1x1OWIyN1x1OWY4ZFx1NThkOFx1NWE0MVx1NWM2Mlx1NmExM1x1NmRkYVx1NmYwZlx1NzYz''@;'; + put 'put ''Ylx1N2QyZlx1N2UzN1x1ODUxZVx1ODkzOFx1OTNlNFx1OTY0Ylx1NTI4OVx1NjVkMlx1NjdmM1x1NjliNFx1NmQ0MVx1NmU5Y1x1NzAwZlx1NzQwOVx1NzQ2MFx1NzU1OVx1NzYyNFx1Nzg2Ylx1OGIyY1x1OTg1ZVx1NTE2ZFx1NjIyZVx1OTY3OFx1NGY5Nlx1NTAyYlx1NWQxOVx1NmRlYVx1''@;'; + put 'put ''N2RiOFx1OGYyYVx1NWY4Ylx1NjE0NFx1NjgxN1x1Zjk2MVx1OTY4Nlx1NTJkMlx1ODA4Ylx1NTFkY1x1NTFjY1x1Njk1ZVx1N2ExY1x1N2RiZVx1ODNmMVx1OTY3NVx1NGZkYVx1NTIyOVx1NTM5OFx1NTQwZlx1NTUwZVx1NWM2NVx1NjBhN1x1Njc0ZVx1NjhhOFx1NmQ2Y1x1NzI4MVx1NzJm''@;'; + put 'put ''OFx1NzQwNlx1NzQ4M1x1Zjk2Mlx1NzVlMlx1N2M2Y1x1N2Y3OVx1N2ZiOFx1ODM4OVx1ODhjZlx1ODhlMVx1OTFjY1x1OTFkMFx1OTZlMlx1OWJjOVx1NTQxZFx1NmY3ZVx1NzFkMFx1NzQ5OFx1ODVmYVx1OGVhYVx1OTZhM1x1OWM1N1x1OWU5Zlx1Njc5N1x1NmRjYlx1NzQzM1x1ODFlOFx1''@;'; + put 'put ''OTcxNlx1NzgyY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTVdW0VdXT01NTA0MCtFLExbNTUwNDArRV09QlsyMTVdW0VdKTtmb3IoQlsyMTZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdhY2JcdTdiMjBcdTdjOTJcdTY0NjlcdTc0NmFcdTc1ZjJcdTc4YmNcdTc4''@;'; + put 'put ''ZThcdTk5YWNcdTliNTRcdTllYmJcdTViZGVcdTVlNTVcdTZmMjBcdTgxOWNcdTgzYWJcdTkwODhcdTRlMDdcdTUzNGRcdTVhMjlcdTVkZDJcdTVmNGVcdTYxNjJcdTYzM2RcdTY2NjlcdTY2ZmNcdTZlZmZcdTZmMmJcdTcwNjNcdTc3OWVcdTg0MmNcdTg1MTNcdTg4M2JcdThmMTNcdTk5NDVc''@;'; + put 'put ''dTljM2JcdTU1MWNcdTYyYjlcdTY3MmJcdTZjYWJcdTgzMDlcdTg5NmFcdTk3N2FcdTRlYTFcdTU5ODRcdTVmZDhcdTVmZDlcdTY3MWJcdTdkYjJcdTdmNTRcdTgyOTJcdTgzMmJcdTgzYmRcdThmMWVcdTkwOTlcdTU3Y2JcdTU5YjlcdTVhOTJcdTViZDBcdTY2MjdcdTY3OWFcdTY4ODVcdTZi''@;'; + put 'put ''Y2ZcdTcxNjRcdTdmNzVcdThjYjdcdThjZTNcdTkwODFcdTliNDVcdTgxMDhcdThjOGFcdTk2NGNcdTlhNDBcdTllYTVcdTViNWZcdTZjMTNcdTczMWJcdTc2ZjJcdTc2ZGZcdTg0MGNcdTUxYWFcdTg5OTNcdTUxNGRcdTUxOTVcdTUyYzlcdTY4YzlcdTZjOTRcdTc3MDRcdTc3MjBcdTdkYmZc''@;'; + put 'put ''dTdkZWNcdTk3NjJcdTllYjVcdTZlYzVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE2XVtFXV09NTUyOTYrRSxMWzU1Mjk2K0VdPUJbMjE2XVtFXSk7Zm9yKEJbMjE3XT0iXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NTExXHU1MWE1XHU1NDBkXHU1NDdkXHU2NjBlXHU2''@;'; + put 'put ''NjlkXHU2OTI3XHU2ZTlmXHU3NmJmXHU3NzkxXHU4MzE3XHU4NGMyXHU4NzlmXHU5MTY5XHU5Mjk4XHU5Y2Y0XHU4ODgyXHU0ZmFlXHU1MTkyXHU1MmRmXHU1OWM2XHU1ZTNkXHU2MTU1XHU2NDc4XHU2NDc5XHU2NmFlXHU2N2QwXHU2YTIxXHU2YmNkXHU2YmRiXHU3MjVmXHU3MjYxXHU3NDQx''@;'; + put 'put ''XHU3NzM4XHU3N2RiXHU4MDE3XHU4MmJjXHU4MzA1XHU4YjAwXHU4YjI4XHU4YzhjXHU2NzI4XHU2YzkwXHU3MjY3XHU3NmVlXHU3NzY2XHU3YTQ2XHU5ZGE5XHU2YjdmXHU2YzkyXHU1OTIyXHU2NzI2XHU4NDk5XHU1MzZmXHU1ODkzXHU1OTk5XHU1ZWRmXHU2M2NmXHU2NjM0XHU2NzczXHU2''@;'; + put 'put ''ZTNhXHU3MzJiXHU3YWQ3XHU4MmQ3XHU5MzI4XHU1MmQ5XHU1ZGViXHU2MWFlXHU2MWNiXHU2MjBhXHU2MmM3XHU2NGFiXHU2NWUwXHU2OTU5XHU2YjY2XHU2YmNiXHU3MTIxXHU3M2Y3XHU3NTVkXHU3ZTQ2XHU4MjFlXHU4MzAyXHU4NTZhXHU4YWEzXHU4Y2JmXHU5NzI3XHU5ZDYxXHU1OGE4''@;'; + put 'put ''XHU5ZWQ4XHU1MDExXHU1MjBlXHU1NDNiXHU1NTRmXHU2NTg3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxN11bRV1dPTU1NTUyK0UsTFs1NTU1MitFXT1CWzIxN11bRV0pO2ZvcihCWzIx''@;'; + put 'put ''OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmM3Nlx1N2QwYVx1N2QwYlx1''@;'; + put 'put ''ODA1ZVx1ODY4YVx1OTU4MFx1OTZlZlx1NTJmZlx1NmM5NVx1NzI2OVx1NTQ3M1x1NWE5YVx1NWMzZVx1NWQ0Ylx1NWY0Y1x1NWZhZVx1NjcyYVx1NjhiNlx1Njk2M1x1NmUzY1x1NmU0NFx1NzcwOVx1N2M3M1x1N2Y4ZVx1ODU4N1x1OGIwZVx1OGZmN1x1OTc2MVx1OWVmNFx1NWNiN1x1NjBi''@;'; + put 'put ''Nlx1NjEwZFx1NjFhYlx1NjU0Zlx1NjVmYlx1NjVmY1x1NmMxMVx1NmNlZlx1NzM5Zlx1NzNjOVx1N2RlMVx1OTU5NFx1NWJjNlx1ODcxY1x1OGIxMFx1NTI1ZFx1NTM1YVx1NjJjZFx1NjQwZlx1NjRiMlx1NjczNFx1NmEzOFx1NmNjYVx1NzNjMFx1NzQ5ZVx1N2I5NFx1N2M5NVx1N2UxYlx1''@;'; + put 'put ''ODE4YVx1ODIzNlx1ODU4NFx1OGZlYlx1OTZmOVx1OTljMVx1NGYzNFx1NTM0YVx1NTNjZFx1NTNkYlx1NjJjY1x1NjQyY1x1NjUwMFx1NjU5MVx1NjljM1x1NmNlZVx1NmY1OFx1NzNlZFx1NzU1NFx1NzYyMlx1NzZlNFx1NzZmY1x1NzhkMFx1NzhmYlx1NzkyY1x1N2Q0Nlx1ODIyY1x1ODdl''@;'; + put 'put ''MFx1OGZkNFx1OTgxMlx1OThlZlx1NTJjM1x1NjJkNFx1NjRhNVx1NmUyNFx1NmY1MVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMThdW0VdXT01NTgwOCtFLExbNTU4MDgrRV09QlsyMThd''@;'; + put 'put ''W0VdKTtmb3IoQlsyMTldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc2N2Nc''@;'; + put 'put ''dThkY2JcdTkxYjFcdTkyNjJcdTlhZWVcdTliNDNcdTUwMjNcdTUwOGRcdTU3NGFcdTU5YThcdTVjMjhcdTVlNDdcdTVmNzdcdTYyM2ZcdTY1M2VcdTY1YjlcdTY1YzFcdTY2MDlcdTY3OGJcdTY5OWNcdTZlYzJcdTc4YzVcdTdkMjFcdTgwYWFcdTgxODBcdTgyMmJcdTgyYjNcdTg0YTFcdTg2''@;'; + put 'put ''OGNcdThhMmFcdThiMTdcdTkwYTZcdTk2MzJcdTlmOTBcdTUwMGRcdTRmZjNcdWY5NjNcdTU3ZjlcdTVmOThcdTYyZGNcdTYzOTJcdTY3NmZcdTZlNDNcdTcxMTlcdTc2YzNcdTgwY2NcdTgwZGFcdTg4ZjRcdTg4ZjVcdTg5MTlcdThjZTBcdThmMjlcdTkxNGRcdTk2NmFcdTRmMmZcdTRmNzBc''@;'; + put 'put ''dTVlMWJcdTY3Y2ZcdTY4MjJcdTc2N2RcdTc2N2VcdTliNDRcdTVlNjFcdTZhMGFcdTcxNjlcdTcxZDRcdTc1NmFcdWY5NjRcdTdlNDFcdTg1NDNcdTg1ZTlcdTk4ZGNcdTRmMTBcdTdiNGZcdTdmNzBcdTk1YTVcdTUxZTFcdTVlMDZcdTY4YjVcdTZjM2VcdTZjNGVcdTZjZGJcdTcyYWZcdTdi''@;'; + put 'put ''YzRcdTgzMDNcdTZjZDVcdTc0M2FcdTUwZmJcdTUyODhcdTU4YzFcdTY0ZDhcdTZhOTdcdTc0YTdcdTc2NTZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE5XVtFXV09NTYwNjQrRSxMWzU2''@;'; + put 'put ''MDY0K0VdPUJbMjE5XVtFXSk7Zm9yKEJbMjIwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHU3OGE3XHU4NjE3XHU5NWUyXHU5NzM5XHVmOTY1XHU1MzVlXHU1ZjAxXHU4YjhhXHU4ZmE4XHU4ZmFmXHU5MDhhXHU1MjI1XHU3N2E1XHU5YzQ5XHU5ZjA4XHU0ZTE5XHU1MDAyXHU1MTc1XHU1YzViXHU1ZTc3XHU2NjFlXHU2NjNhXHU2N2M0XHU2OGM1XHU3MGIzXHU3NTAxXHU3''@;'; + put 'put ''NWM1XHU3OWM5XHU3YWRkXHU4ZjI3XHU5OTIwXHU5YTA4XHU0ZmRkXHU1ODIxXHU1ODMxXHU1YmY2XHU2NjZlXHU2YjY1XHU2ZDExXHU2ZTdhXHU2ZjdkXHU3M2U0XHU3NTJiXHU4M2U5XHU4OGRjXHU4OTEzXHU4YjVjXHU4ZjE0XHU0ZjBmXHU1MGQ1XHU1MzEwXHU1MzVjXHU1YjkzXHU1ZmE5''@;'; + put 'put ''XHU2NzBkXHU3OThmXHU4MTc5XHU4MzJmXHU4NTE0XHU4OTA3XHU4OTg2XHU4ZjM5XHU4ZjNiXHU5OWE1XHU5YzEyXHU2NzJjXHU0ZTc2XHU0ZmY4XHU1OTQ5XHU1YzAxXHU1Y2VmXHU1Y2YwXHU2MzY3XHU2OGQyXHU3MGZkXHU3MWEyXHU3NDJiXHU3ZTJiXHU4NGVjXHU4NzAyXHU5MDIyXHU5''@;'; + put 'put ''MmQyXHU5Y2YzXHU0ZTBkXHU0ZWQ4XHU0ZmVmXHU1MDg1XHU1MjU2XHU1MjZmXHU1NDI2XHU1NDkwXHU1N2UwXHU1OTJiXHU1YTY2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjIwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyMF1bRV1d''@;'; + put 'put ''PTU2MzIwK0UsTFs1NjMyMCtFXT1CWzIyMF1bRV0pO2ZvcihCWzIyMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWI1YVx1NWI3NVx1NWJjY1x1NWU5Y1x1Zjk2Nlx1NjI3Nlx1NjU3N1x1NjVhN1x1NmQ2ZVx1NmVhNVx1NzIzNlx1N2IyNlx1N2MzZlx1N2YzNlx1ODE1MFx1ODE1MVx1ODE5YVx1ODI0MFx1ODI5OVx1ODNhOVx1OGEwM1x1OGNhMFx1OGNlNlx1OGNmYlx1''@;'; + put 'put ''OGQ3NFx1OGRiYVx1OTBlOFx1OTFkY1x1OTYxY1x1OTY0NFx1OTlkOVx1OWNlN1x1NTMxN1x1NTIwNlx1NTQyOVx1NTY3NFx1NThiM1x1NTk1NFx1NTk2ZVx1NWZmZlx1NjFhNFx1NjI2ZVx1NjYxMFx1NmM3ZVx1NzExYVx1NzZjNlx1N2M4OVx1N2NkZVx1N2QxYlx1ODJhY1x1OGNjMVx1OTZm''@;'; + put 'put ''MFx1Zjk2N1x1NGY1Ylx1NWYxN1x1NWY3Zlx1NjJjMlx1NWQyOVx1NjcwYlx1NjhkYVx1Nzg3Y1x1N2U0M1x1OWQ2Y1x1NGUxNVx1NTA5OVx1NTMxNVx1NTMyYVx1NTM1MVx1NTk4M1x1NWE2Mlx1NWU4N1x1NjBiMlx1NjE4YVx1NjI0OVx1NjI3OVx1NjU5MFx1Njc4N1x1NjlhN1x1NmJkNFx1''@;'; + put 'put ''NmJkNlx1NmJkN1x1NmJkOFx1NmNiOFx1Zjk2OFx1NzQzNVx1NzVmYVx1NzgxMlx1Nzg5MVx1NzlkNVx1NzlkOFx1N2M4M1x1N2RjYlx1N2ZlMVx1ODBhNVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIxXVtFXS5jaGFyQ29kZUF0KDApJiYo''@;'; + put 'put ''bWVbQlsyMjFdW0VdXT01NjU3NitFLExbNTY1NzYrRV09QlsyMjFdW0VdKTtmb3IoQlsyMjJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgxM2VcdTgxYzJcdTgzZjJcdTg3MWFcdTg4ZThcdThhYjlcdThiNmNcdThjYmJcdTkxMTlcdTk3NWVcdTk4ZGJcdTlmM2JcdTU2YWNcdTViMmFcdTVmNmNcdTY1OGNcdTZhYjNcdTZiYWZcdTZkNWNcdTZmZjFcdTcwMTVcdTcyNWRc''@;'; + put 'put ''dTczYWRcdThjYTdcdThjZDNcdTk4M2JcdTYxOTFcdTZjMzdcdTgwNThcdTlhMDFcdTRlNGRcdTRlOGJcdTRlOWJcdTRlZDVcdTRmM2FcdTRmM2NcdTRmN2ZcdTRmZGZcdTUwZmZcdTUzZjJcdTUzZjhcdTU1MDZcdTU1ZTNcdTU2ZGJcdTU4ZWJcdTU5NjJcdTVhMTFcdTViZWJcdTViZmFcdTVj''@;'; + put 'put ''MDRcdTVkZjNcdTVlMmJcdTVmOTlcdTYwMWRcdTYzNjhcdTY1OWNcdTY1YWZcdTY3ZjZcdTY3ZmJcdTY4YWRcdTZiN2JcdTZjOTlcdTZjZDdcdTZlMjNcdTcwMDlcdTczNDVcdTc4MDJcdTc5M2VcdTc5NDBcdTc5NjBcdTc5YzFcdTdiZTlcdTdkMTdcdTdkNzJcdTgwODZcdTgyMGRcdTgzOGVc''@;'; + put 'put ''dTg0ZDFcdTg2YzdcdTg4ZGZcdThhNTBcdThhNWVcdThiMWRcdThjZGNcdThkNjZcdThmYWRcdTkwYWFcdTk4ZmNcdTk5ZGZcdTllOWRcdTUyNGFcdWY5NjlcdTY3MTRcdWY5NmFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyMl1bRV0uY2hh''@;'; + put 'put ''ckNvZGVBdCgwKSYmKG1lW0JbMjIyXVtFXV09NTY4MzIrRSxMWzU2ODMyK0VdPUJbMjIyXVtFXSk7Zm9yKEJbMjIzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MDk4XHU1MjJhXHU1YzcxXHU2NTYzXHU2YzU1XHU3M2NhXHU3NTIzXHU3NTlkXHU3Yjk3XHU4NDljXHU5MTc4XHU5NzMwXHU0ZTc3XHU2NDkyXHU2YmJhXHU3MTVlXHU4NWE5XHU0ZTA5XHVmOTZiXHU2NzQ5''@;'; + put 'put ''XHU2OGVlXHU2ZTE3XHU4MjlmXHU4NTE4XHU4ODZiXHU2M2Y3XHU2ZjgxXHU5MjEyXHU5OGFmXHU0ZTBhXHU1MGI3XHU1MGNmXHU1MTFmXHU1NTQ2XHU1NWFhXHU1NjE3XHU1YjQwXHU1YzE5XHU1Y2UwXHU1ZTM4XHU1ZThhXHU1ZWEwXHU1ZWMyXHU2MGYzXHU2ODUxXHU2YTYxXHU2ZTU4XHU3''@;'; + put 'put ''MjNkXHU3MjQwXHU3MmMwXHU3NmY4XHU3OTY1XHU3YmIxXHU3ZmQ0XHU4OGYzXHU4OWY0XHU4YTczXHU4YzYxXHU4Y2RlXHU5NzFjXHU1ODVlXHU3NGJkXHU4Y2ZkXHU1NWM3XHVmOTZjXHU3YTYxXHU3ZDIyXHU4MjcyXHU3MjcyXHU3NTFmXHU3NTI1XHVmOTZkXHU3YjE5XHU1ODg1XHU1OGZi''@;'; + put 'put ''XHU1ZGJjXHU1ZThmXHU1ZWI2XHU1ZjkwXHU2MDU1XHU2MjkyXHU2MzdmXHU2NTRkXHU2NjkxXHU2NmQ5XHU2NmY4XHU2ODE2XHU2OGYyXHU3MjgwXHU3NDVlXHU3YjZlXHU3ZDZlXHU3ZGQ2XHU3ZjcyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjIzXS5sZW5ndGg7KytFKTY1NTMzIT09''@;'; + put 'put ''QlsyMjNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyM11bRV1dPTU3MDg4K0UsTFs1NzA4OCtFXT1CWzIyM11bRV0pO2ZvcihCWzIyNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODBlNVx1ODIxMlx1ODVhZlx1ODk3Zlx1OGE5M1x1OTAxZFx1OTJlNFx1OWVjZFx1OWYyMFx1NTkxNVx1NTk2ZFx1NWUyZFx1NjBkY1x1NjYxNFx1NjY3M1x1Njc5MFx1NmM1MFx1NmRj''@;'; + put 'put ''NVx1NmY1Zlx1NzdmM1x1NzhhOVx1ODRjNlx1OTFjYlx1OTMyYlx1NGVkOVx1NTBjYVx1NTE0OFx1NTU4NFx1NWIwYlx1NWJhM1x1NjI0N1x1NjU3ZVx1NjVjYlx1NmUzMlx1NzE3ZFx1NzQwMVx1NzQ0NFx1NzQ4N1x1NzRiZlx1NzY2Y1x1NzlhYVx1N2RkYVx1N2U1NVx1N2ZhOFx1ODE3YVx1''@;'; + put 'put ''ODFiM1x1ODIzOVx1ODYxYVx1ODdlY1x1OGE3NVx1OGRlM1x1OTA3OFx1OTI5MVx1OTQyNVx1OTk0ZFx1OWJhZVx1NTM2OFx1NWM1MVx1Njk1NFx1NmNjNFx1NmQyOVx1NmUyYlx1ODIwY1x1ODU5Ylx1ODkzYlx1OGEyZFx1OGFhYVx1OTZlYVx1OWY2N1x1NTI2MVx1NjZiOVx1NmJiMlx1N2U5''@;'; + put 'put ''Nlx1ODdmZVx1OGQwZFx1OTU4M1x1OTY1ZFx1NjUxZFx1NmQ4OVx1NzFlZVx1Zjk2ZVx1NTdjZVx1NTlkM1x1NWJhY1x1NjAyN1x1NjBmYVx1NjIxMFx1NjYxZlx1NjY1Zlx1NzMyOVx1NzNmOVx1NzZkYlx1NzcwMVx1N2I2Y1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNF0ubGVuZ3Ro''@;'; + put 'put ''OysrRSk2NTUzMyE9PUJbMjI0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjRdW0VdXT01NzM0NCtFLExbNTczNDQrRV09QlsyMjRdW0VdKTtmb3IoQlsyMjVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgwNTZcdTgwNzJcdTgxNjVcdThhYTBcdTkxOTJcdTRlMTZcdTUyZTJcdTZiNzJcdTZkMTdcdTdhMDVcdTdiMzlcdTdkMzBcdWY5NmZcdThjYjBcdTUzZWNcdTU2''@;'; + put 'put ''MmZcdTU4NTFcdTViYjVcdTVjMGZcdTVjMTFcdTVkZTJcdTYyNDBcdTYzODNcdTY0MTRcdTY2MmRcdTY4YjNcdTZjYmNcdTZkODhcdTZlYWZcdTcwMWZcdTcwYTRcdTcxZDJcdTc1MjZcdTc1OGZcdTc1OGVcdTc2MTlcdTdiMTFcdTdiZTBcdTdjMmJcdTdkMjBcdTdkMzlcdTg1MmNcdTg1NmRc''@;'; + put 'put ''dTg2MDdcdThhMzRcdTkwMGRcdTkwNjFcdTkwYjVcdTkyYjdcdTk3ZjZcdTlhMzdcdTRmZDdcdTVjNmNcdTY3NWZcdTZkOTFcdTdjOWZcdTdlOGNcdThiMTZcdThkMTZcdTkwMWZcdTViNmJcdTVkZmRcdTY0MGRcdTg0YzBcdTkwNWNcdTk4ZTFcdTczODdcdTViOGJcdTYwOWFcdTY3N2VcdTZk''@;'; + put 'put ''ZGVcdThhMWZcdThhYTZcdTkwMDFcdTk4MGNcdTUyMzdcdWY5NzBcdTcwNTFcdTc4OGVcdTkzOTZcdTg4NzBcdTkxZDdcdTRmZWVcdTUzZDdcdTU1ZmRcdTU2ZGFcdTU3ODJcdTU4ZmRcdTVhYzJcdTViODhcdTVjYWJcdTVjYzBcdTVlMjVcdTYxMDFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9''@;'; + put 'put ''QlsyMjVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI1XVtFXV09NTc2MDArRSxMWzU3NjAwK0VdPUJbMjI1XVtFXSk7Zm9yKEJbMjI2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MjBkXHU2MjRiXHU2Mzg4XHU2NDFjXHU2NTM2XHU2NTc4XHU2YTM5XHU2YjhhXHU2YzM0XHU2ZDE5XHU2ZjMxXHU3MWU3XHU3MmU5XHU3''@;'; + put 'put ''Mzc4XHU3NDA3XHU3NGIyXHU3NjI2XHU3NzYxXHU3OWMwXHU3YTU3XHU3YWVhXHU3Y2I5XHU3ZDhmXHU3ZGFjXHU3ZTYxXHU3ZjllXHU4MTI5XHU4MzMxXHU4NDkwXHU4NGRhXHU4NWVhXHU4ODk2XHU4YWIwXHU4YjkwXHU4ZjM4XHU5MDQyXHU5MDgzXHU5MTZjXHU5Mjk2XHU5MmI5XHU5Njhi''@;'; + put 'put ''XHU5NmE3XHU5NmE4XHU5NmQ2XHU5NzAwXHU5ODA4XHU5OTk2XHU5YWQzXHU5YjFhXHU1M2Q0XHU1ODdlXHU1OTE5XHU1YjcwXHU1YmJmXHU2ZGQxXHU2ZjVhXHU3MTlmXHU3NDIxXHU3NGI5XHU4MDg1XHU4M2ZkXHU1ZGUxXHU1Zjg3XHU1ZmFhXHU2MDQyXHU2NWVjXHU2ODEyXHU2OTZmXHU2''@;'; + put 'put ''YTUzXHU2Yjg5XHU2ZDM1XHU2ZGYzXHU3M2UzXHU3NmZlXHU3N2FjXHU3YjRkXHU3ZDE0XHU4MTIzXHU4MjFjXHU4MzQwXHU4NGY0XHU4NTYzXHU4YTYyXHU4YWM0XHU5MTg3XHU5MzFlXHU5ODA2XHU5OWI0XHU2MjBjXHU4ODUzXHU4ZmYwXHU5MjY1XHU1ZDA3XHU1ZDI3XHVmZmZkIi5zcGxp''@;'; + put 'put ''dCgiIiksRT0wO0UhPUJbMjI2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNl1bRV1dPTU3ODU2K0UsTFs1Nzg1NitFXT1CWzIyNl1bRV0pO2ZvcihCWzIyN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWQ2OVx1NzQ1Zlx1ODE5ZFx1ODc2OFx1NmZkNVx1NjJmZVx1N2ZkMlx1ODkzNlx1ODk3Mlx1NGUxZVx1NGU1OFx1''@;'; + put 'put ''NTBlN1x1NTJkZFx1NTM0N1x1NjI3Zlx1NjYwN1x1N2U2OVx1ODgwNVx1OTY1ZVx1NGY4ZFx1NTMxOVx1NTYzNlx1NTljYlx1NWFhNFx1NWMzOFx1NWM0ZVx1NWM0ZFx1NWUwMlx1NWYxMVx1NjA0M1x1NjViZFx1NjYyZlx1NjY0Mlx1NjdiZVx1NjdmNFx1NzMxY1x1NzdlMlx1NzkzYVx1N2Zj''@;'; + put 'put ''NVx1ODQ5NFx1ODRjZFx1ODk5Nlx1OGE2Nlx1OGE2OVx1OGFlMVx1OGM1NVx1OGM3YVx1NTdmNFx1NWJkNFx1NWYwZlx1NjA2Zlx1NjJlZFx1NjkwZFx1NmI5Nlx1NmU1Y1x1NzE4NFx1N2JkMlx1ODc1NVx1OGI1OFx1OGVmZVx1OThkZlx1OThmZVx1NGYzOFx1NGY4MVx1NGZlMVx1NTQ3Ylx1''@;'; + put 'put ''NWEyMFx1NWJiOFx1NjEzY1x1NjViMFx1NjY2OFx1NzFmY1x1NzUzM1x1Nzk1ZVx1N2QzM1x1ODE0ZVx1ODFlM1x1ODM5OFx1ODVhYVx1ODVjZVx1ODcwM1x1OGEwYVx1OGVhYlx1OGY5Ylx1Zjk3MVx1OGZjNVx1NTkzMVx1NWJhNFx1NWJlNlx1NjA4OVx1NWJlOVx1NWMwYlx1NWZjM1x1NmM4''@;'; + put 'put ''MVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjddW0VdXT01ODExMitFLExbNTgxMTIrRV09QlsyMjddW0VdKTtmb3IoQlsyMjhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWY5NzJcdTZkZjFcdTcwMGJcdTc1MWFcdTgyYWZcdThhZjZcdTRlYzBcdTUzNDFcdWY5NzNc''@;'; + put 'put ''dTk2ZDlcdTZjMGZcdTRlOWVcdTRmYzRcdTUxNTJcdTU1NWVcdTVhMjVcdTVjZThcdTYyMTFcdTcyNTlcdTgyYmRcdTgzYWFcdTg2ZmVcdTg4NTlcdThhMWRcdTk2M2ZcdTk2YzVcdTk5MTNcdTlkMDlcdTlkNWRcdTU4MGFcdTVjYjNcdTVkYmRcdTVlNDRcdTYwZTFcdTYxMTVcdTYzZTFcdTZh''@;'; + put 'put ''MDJcdTZlMjVcdTkxMDJcdTkzNTRcdTk4NGVcdTljMTBcdTlmNzdcdTViODlcdTVjYjhcdTYzMDlcdTY2NGZcdTY4NDhcdTc3M2NcdTk2YzFcdTk3OGRcdTk4NTRcdTliOWZcdTY1YTFcdThiMDFcdThlY2JcdTk1YmNcdTU1MzVcdTVjYTlcdTVkZDZcdTVlYjVcdTY2OTdcdTc2NGNcdTgzZjRc''@;'; + put 'put ''dTk1YzdcdTU4ZDNcdTYyYmNcdTcyY2VcdTlkMjhcdTRlZjBcdTU5MmVcdTYwMGZcdTY2M2JcdTZiODNcdTc5ZTdcdTlkMjZcdTUzOTNcdTU0YzBcdTU3YzNcdTVkMTZcdTYxMWJcdTY2ZDZcdTZkYWZcdTc4OGRcdTgyN2VcdTk2OThcdTk3NDRcdTUzODRcdTYyN2NcdTYzOTZcdTZkYjJcdTdl''@;'; + put 'put ''MGFcdTgxNGJcdTk4NGRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI4XVtFXV09NTgzNjgrRSxMWzU4MzY4K0VdPUJbMjI4XVtFXSk7Zm9yKEJbMjI5XT0iXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YWZiXHU3ZjRjXHU5ZGFmXHU5ZTFhXHU0ZTVmXHU1MDNiXHU1MWI2''@;'; + put 'put ''XHU1OTFjXHU2MGY5XHU2M2Y2XHU2OTMwXHU3MjNhXHU4MDM2XHVmOTc0XHU5MWNlXHU1ZjMxXHVmOTc1XHVmOTc2XHU3ZDA0XHU4MmU1XHU4NDZmXHU4NGJiXHU4NWU1XHU4ZThkXHVmOTc3XHU0ZjZmXHVmOTc4XHVmOTc5XHU1OGU0XHU1YjQzXHU2MDU5XHU2M2RhXHU2NTE4XHU2NTZkXHU2''@;'; + put 'put ''Njk4XHVmOTdhXHU2OTRhXHU2YTIzXHU2ZDBiXHU3MDAxXHU3MTZjXHU3NWQyXHU3NjBkXHU3OWIzXHU3YTcwXHVmOTdiXHU3ZjhhXHVmOTdjXHU4OTQ0XHVmOTdkXHU4YjkzXHU5MWMwXHU5NjdkXHVmOTdlXHU5OTBhXHU1NzA0XHU1ZmExXHU2NWJjXHU2ZjAxXHU3NjAwXHU3OWE2XHU4YTll''@;'; + put 'put ''XHU5OWFkXHU5YjVhXHU5ZjZjXHU1MTA0XHU2MWI2XHU2MjkxXHU2YThkXHU4MWM2XHU1MDQzXHU1ODMwXHU1ZjY2XHU3MTA5XHU4YTAwXHU4YWZhXHU1YjdjXHU4NjE2XHU0ZmZhXHU1MTNjXHU1NmI0XHU1OTQ0XHU2M2E5XHU2ZGY5XHU1ZGFhXHU2OTZkXHU1MTg2XHU0ZTg4XHU0ZjU5XHVm''@;'; + put 'put ''OTdmXHVmOTgwXHVmOTgxXHU1OTgyXHVmOTgyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyOV1bRV1dPTU4NjI0K0UsTFs1ODYyNCtFXT1CWzIyOV1bRV0pO2ZvcihCWzIzMF09Ilx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Zjk4M1x1NmI1Zlx1NmM1ZFx1Zjk4NFx1NzRi''@;'; + put 'put ''NVx1NzkxNlx1Zjk4NVx1ODIwN1x1ODI0NVx1ODMzOVx1OGYzZlx1OGY1ZFx1Zjk4Nlx1OTkxOFx1Zjk4N1x1Zjk4OFx1Zjk4OVx1NGVhNlx1Zjk4YVx1NTdkZlx1NWY3OVx1NjYxM1x1Zjk4Ylx1Zjk4Y1x1NzVhYlx1N2U3OVx1OGI2Zlx1Zjk4ZFx1OTAwNlx1OWE1Ylx1NTZhNVx1NTgyN1x1''@;'; + put 'put ''NTlmOFx1NWExZlx1NWJiNFx1Zjk4ZVx1NWVmNlx1Zjk4Zlx1Zjk5MFx1NjM1MFx1NjMzYlx1Zjk5MVx1NjkzZFx1NmM4N1x1NmNiZlx1NmQ4ZVx1NmQ5M1x1NmRmNVx1NmYxNFx1Zjk5Mlx1NzBkZlx1NzEzNlx1NzE1OVx1Zjk5M1x1NzFjM1x1NzFkNVx1Zjk5NFx1Nzg0Zlx1Nzg2Zlx1Zjk5''@;'; + put 'put ''NVx1N2I3NVx1N2RlM1x1Zjk5Nlx1N2UyZlx1Zjk5N1x1ODg0ZFx1OGVkZlx1Zjk5OFx1Zjk5OVx1Zjk5YVx1OTI1Ylx1Zjk5Ylx1OWNmNlx1Zjk5Y1x1Zjk5ZFx1Zjk5ZVx1NjA4NVx1NmQ4NVx1Zjk5Zlx1NzFiMVx1ZjlhMFx1ZjlhMVx1OTViMVx1NTNhZFx1ZjlhMlx1ZjlhM1x1ZjlhNFx1''@;'; + put 'put ''NjdkM1x1ZjlhNVx1NzA4ZVx1NzEzMFx1NzQzMFx1ODI3Nlx1ODJkMlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzBdW0VdXT01ODg4MCtFLExbNTg4ODArRV09QlsyMzBdW0VdKTtmb3Io''@;'; + put 'put ''QlsyMzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWY5YTZcdTk1YmJcdTlh''@;'; + put 'put ''ZTVcdTllN2RcdTY2YzRcdWY5YTdcdTcxYzFcdTg0NDlcdWY5YThcdWY5YTlcdTU4NGJcdWY5YWFcdWY5YWJcdTVkYjhcdTVmNzFcdWY5YWNcdTY2MjBcdTY2OGVcdTY5NzlcdTY5YWVcdTZjMzhcdTZjZjNcdTZlMzZcdTZmNDFcdTZmZGFcdTcwMWJcdTcwMmZcdTcxNTBcdTcxZGZcdTczNzBc''@;'; + put 'put ''dWY5YWRcdTc0NWJcdWY5YWVcdTc0ZDRcdTc2YzhcdTdhNGVcdTdlOTNcdWY5YWZcdWY5YjBcdTgyZjFcdThhNjBcdThmY2VcdWY5YjFcdTkzNDhcdWY5YjJcdTk3MTlcdWY5YjNcdWY5YjRcdTRlNDJcdTUwMmFcdWY5YjVcdTUyMDhcdTUzZTFcdTY2ZjNcdTZjNmRcdTZmY2FcdTczMGFcdTc3''@;'; + put 'put ''N2ZcdTdhNjJcdTgyYWVcdTg1ZGRcdTg2MDJcdWY5YjZcdTg4ZDRcdThhNjNcdThiN2RcdThjNmJcdWY5YjdcdTkyYjNcdWY5YjhcdTk3MTNcdTk4MTBcdTRlOTRcdTRmMGRcdTRmYzlcdTUwYjJcdTUzNDhcdTU0M2VcdTU0MzNcdTU1ZGFcdTU4NjJcdTU4YmFcdTU5NjdcdTVhMWJcdTViZTRc''@;'; + put 'put ''dTYwOWZcdWY5YjlcdTYxY2FcdTY1NTZcdTY1ZmZcdTY2NjRcdTY4YTdcdTZjNWFcdTZmYjNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMxXVtFXV09NTkxMzYrRSxMWzU5MTM2K0VdPUJb''@;'; + put 'put ''MjMxXVtFXSk7Zm9yKEJbMjMyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3''@;'; + put 'put ''MGNmXHU3MWFjXHU3MzUyXHU3YjdkXHU4NzA4XHU4YWE0XHU5YzMyXHU5ZjA3XHU1YzRiXHU2YzgzXHU3MzQ0XHU3Mzg5XHU5MjNhXHU2ZWFiXHU3NDY1XHU3NjFmXHU3YTY5XHU3ZTE1XHU4NjBhXHU1MTQwXHU1OGM1XHU2NGMxXHU3NGVlXHU3NTE1XHU3NjcwXHU3ZmMxXHU5MDk1XHU5NmNk''@;'; + put 'put ''XHU5OTU0XHU2ZTI2XHU3NGU2XHU3YWE5XHU3YWFhXHU4MWU1XHU4NmQ5XHU4Nzc4XHU4YTFiXHU1YTQ5XHU1YjhjXHU1YjliXHU2OGExXHU2OTAwXHU2ZDYzXHU3M2E5XHU3NDEzXHU3NDJjXHU3ODk3XHU3ZGU5XHU3ZmViXHU4MTE4XHU4MTU1XHU4MzllXHU4YzRjXHU5NjJlXHU5ODExXHU2''@;'; + put 'put ''NmYwXHU1ZjgwXHU2NWZhXHU2Nzg5XHU2YzZhXHU3MzhiXHU1MDJkXHU1YTAzXHU2YjZhXHU3N2VlXHU1OTE2XHU1ZDZjXHU1ZGNkXHU3MzI1XHU3NTRmXHVmOWJhXHVmOWJiXHU1MGU1XHU1MWY5XHU1ODJmXHU1OTJkXHU1OTk2XHU1OWRhXHU1YmU1XHVmOWJjXHVmOWJkXHU1ZGEyXHU2MmQ3''@;'; + put 'put ''XHU2NDE2XHU2NDkzXHU2NGZlXHVmOWJlXHU2NmRjXHVmOWJmXHU2YTQ4XHVmOWMwXHU3MWZmXHU3NDY0XHVmOWMxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzMl1bRV1dPTU5MzkyK0Us''@;'; + put 'put ''TFs1OTM5MitFXT1CWzIzMl1bRV0pO2ZvcihCWzIzM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1N2E4OFx1N2FhZlx1N2U0N1x1N2U1ZVx1ODAwMFx1ODE3MFx1ZjljMlx1ODdlZlx1ODk4MVx1OGIyMFx1OTA1OVx1ZjljM1x1OTA4MFx1OTk1Mlx1NjE3ZVx1NmIzMlx1NmQ3NFx1N2UxZlx1ODkyNVx1OGZiMVx1NGZkMVx1NTBhZFx1NTE5N1x1NTJjN1x1NTdjN1x1NTg4''@;'; + put 'put ''OVx1NWJiOVx1NWViOFx1NjE0Mlx1Njk5NVx1NmQ4Y1x1NmU2N1x1NmViNlx1NzE5NFx1NzQ2Mlx1NzUyOFx1NzUyY1x1ODA3M1x1ODMzOFx1ODRjOVx1OGUwYVx1OTM5NFx1OTNkZVx1ZjljNFx1NGU4ZVx1NGY1MVx1NTA3Nlx1NTEyYVx1NTNjOFx1NTNjYlx1NTNmM1x1NWI4N1x1NWJkM1x1''@;'; + put 'put ''NWMyNFx1NjExYVx1NjE4Mlx1NjVmNFx1NzI1Ylx1NzM5N1x1NzQ0MFx1NzZjMlx1Nzk1MFx1Nzk5MVx1NzliOVx1N2QwNlx1N2ZiZFx1ODI4Ylx1ODVkNVx1ODY1ZVx1OGZjMlx1OTA0N1x1OTBmNVx1OTFlYVx1OTY4NVx1OTZlOFx1OTZlOVx1NTJkNlx1NWY2N1x1NjVlZFx1NjYzMVx1Njgy''@;'; + put 'put ''Zlx1NzE1Y1x1N2EzNlx1OTBjMVx1OTgwYVx1NGU5MVx1ZjljNVx1NmE1Mlx1NmI5ZVx1NmY5MFx1NzE4OVx1ODAxOFx1ODJiOFx1ODU1M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzNd''@;'; + put 'put ''W0VdXT01OTY0OCtFLExbNTk2NDgrRV09QlsyMzNdW0VdKTtmb3IoQlsyMzRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkwNGJcdTk2OTVcdTk2ZjJcdTk3ZmJcdTg1MWFcdTliMzFcdTRlOTBcdTcxOGFcdTk2YzRcdTUxNDNcdTUzOWZcdTU0ZTFcdTU3MTNcdTU3MTJcdTU3YTNcdTVhOWJcdTVhYzRcdTViYzNcdTYwMjhcdTYxM2ZcdTYzZjRcdTZjODVcdTZkMzlcdTZl''@;'; + put 'put ''NzJcdTZlOTBcdTcyMzBcdTczM2ZcdTc0NTdcdTgyZDFcdTg4ODFcdThmNDVcdTkwNjBcdWY5YzZcdTk2NjJcdTk4NThcdTlkMWJcdTY3MDhcdThkOGFcdTkyNWVcdTRmNGRcdTUwNDlcdTUwZGVcdTUzNzFcdTU3MGRcdTU5ZDRcdTVhMDFcdTVjMDlcdTYxNzBcdTY2OTBcdTZlMmRcdTcyMzJc''@;'; + put 'put ''dTc0NGJcdTdkZWZcdTgwYzNcdTg0MGVcdTg0NjZcdTg1M2ZcdTg3NWZcdTg4NWJcdTg5MThcdThiMDJcdTkwNTVcdTk3Y2JcdTliNGZcdTRlNzNcdTRmOTFcdTUxMTJcdTUxNmFcdWY5YzdcdTU1MmZcdTU1YTlcdTViN2FcdTViYTVcdTVlN2NcdTVlN2RcdTVlYmVcdTYwYTBcdTYwZGZcdTYx''@;'; + put 'put ''MDhcdTYxMDlcdTYzYzRcdTY1MzhcdTY3MDlcdWY5YzhcdTY3ZDRcdTY3ZGFcdWY5YzlcdTY5NjFcdTY5NjJcdTZjYjlcdTZkMjdcdWY5Y2FcdTZlMzhcdWY5Y2JcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzNF1bRV0uY2hhckNvZGVBdCgw''@;'; + put 'put ''KSYmKG1lW0JbMjM0XVtFXV09NTk5MDQrRSxMWzU5OTA0K0VdPUJbMjM0XVtFXSk7Zm9yKEJbMjM1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZmUxXHU3MzM2XHU3MzM3XHVmOWNjXHU3NDVjXHU3NTMxXHVmOWNkXHU3NjUyXHVmOWNlXHVmOWNmXHU3ZGFkXHU4MWZlXHU4NDM4XHU4OGQ1XHU4YTk4XHU4YWRiXHU4YWVkXHU4ZTMwXHU4ZTQyXHU5MDRhXHU5MDNlXHU5''@;'; + put 'put ''MDdhXHU5MTQ5XHU5MWM5XHU5MzZlXHVmOWQwXHVmOWQxXHU1ODA5XHVmOWQyXHU2YmQzXHU4MDg5XHU4MGIyXHVmOWQzXHVmOWQ0XHU1MTQxXHU1OTZiXHU1YzM5XHVmOWQ1XHVmOWQ2XHU2ZjY0XHU3M2E3XHU4MGU0XHU4ZDA3XHVmOWQ3XHU5MjE3XHU5NThmXHVmOWQ4XHVmOWQ5XHVmOWRh''@;'; + put 'put ''XHVmOWRiXHU4MDdmXHU2MjBlXHU3MDFjXHU3ZDY4XHU4NzhkXHVmOWRjXHU1N2EwXHU2MDY5XHU2MTQ3XHU2YmI3XHU4YWJlXHU5MjgwXHU5NmIxXHU0ZTU5XHU1NDFmXHU2ZGViXHU4NTJkXHU5NjcwXHU5N2YzXHU5OGVlXHU2M2Q2XHU2Y2UzXHU5MDkxXHU1MWRkXHU2MWM5XHU4MWJhXHU5''@;'; + put 'put ''ZGY5XHU0ZjlkXHU1MDFhXHU1MTAwXHU1YjljXHU2MTBmXHU2MWZmXHU2NGVjXHU2OTA1XHU2YmM1XHU3NTkxXHU3N2UzXHU3ZmE5XHU4MjY0XHU4NThmXHU4N2ZiXHU4ODYzXHU4YWJjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzVdW0Vd''@;'; + put 'put ''LmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzNV1bRV1dPTYwMTYwK0UsTFs2MDE2MCtFXT1CWzIzNV1bRV0pO2ZvcihCWzIzNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGI3MFx1OTFhYlx1NGU4Y1x1NGVlNVx1NGYwYVx1ZjlkZFx1ZjlkZVx1NTkzN1x1NTllOFx1ZjlkZlx1NWRmMlx1NWYxYlx1NWY1Ylx1NjAyMVx1ZjllMFx1ZjllMVx1ZjllMlx1ZjllM1x1NzIzZVx1''@;'; + put 'put ''NzNlNVx1ZjllNFx1NzU3MFx1NzVjZFx1ZjllNVx1NzlmYlx1ZjllNlx1ODAwY1x1ODAzM1x1ODA4NFx1ODJlMVx1ODM1MVx1ZjllN1x1ZjllOFx1OGNiZFx1OGNiM1x1OTA4N1x1ZjllOVx1ZjllYVx1OThmNFx1OTkwY1x1ZjllYlx1ZjllY1x1NzAzN1x1NzZjYVx1N2ZjYVx1N2ZjY1x1N2Zm''@;'; + put 'put ''Y1x1OGIxYVx1NGViYVx1NGVjMVx1NTIwM1x1NTM3MFx1ZjllZFx1NTRiZFx1NTZlMFx1NTlmYlx1NWJjNVx1NWYxNVx1NWZjZFx1NmU2ZVx1ZjllZVx1ZjllZlx1N2Q2YVx1ODMzNVx1ZjlmMFx1ODY5M1x1OGE4ZFx1ZjlmMVx1OTc2ZFx1OTc3N1x1ZjlmMlx1ZjlmM1x1NGUwMFx1NGY1YVx1''@;'; + put 'put ''NGY3ZVx1NThmOVx1NjVlNVx1NmVhMlx1OTAzOFx1OTNiMFx1OTliOVx1NGVmYlx1NThlY1x1NTk4YVx1NTlkOVx1NjA0MVx1ZjlmNFx1ZjlmNVx1N2ExNFx1ZjlmNlx1ODM0Zlx1OGNjM1x1NTE2NVx1NTM0NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzNl0ubGVuZ3RoOysrRSk2NTUz''@;'; + put 'put ''MyE9PUJbMjM2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzZdW0VdXT02MDQxNitFLExbNjA0MTYrRV09QlsyMzZdW0VdKTtmb3IoQlsyMzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWY5ZjdcdWY5ZjhcdWY5ZjlcdTRlY2RcdTUyNjlcdTViNTVcdTgyYmZcdTRlZDRcdTUyM2FcdTU0YThcdTU5YzlcdTU5ZmZcdTViNTBcdTViNTdcdTViNWNcdTYwNjNcdTYxNDhc''@;'; + put 'put ''dTZlY2JcdTcwOTlcdTcxNmVcdTczODZcdTc0ZjdcdTc1YjVcdTc4YzFcdTdkMmJcdTgwMDVcdTgxZWFcdTgzMjhcdTg1MTdcdTg1YzlcdThhZWVcdThjYzdcdTk2Y2NcdTRmNWNcdTUyZmFcdTU2YmNcdTY1YWJcdTY2MjhcdTcwN2NcdTcwYjhcdTcyMzVcdTdkYmRcdTgyOGRcdTkxNGNcdTk2''@;'; + put 'put ''YzBcdTlkNzJcdTViNzFcdTY4ZTdcdTZiOThcdTZmN2FcdTc2ZGVcdTVjOTFcdTY2YWJcdTZmNWJcdTdiYjRcdTdjMmFcdTg4MzZcdTk2ZGNcdTRlMDhcdTRlZDdcdTUzMjBcdTU4MzRcdTU4YmJcdTU4ZWZcdTU5NmNcdTVjMDdcdTVlMzNcdTVlODRcdTVmMzVcdTYzOGNcdTY2YjJcdTY3NTZc''@;'; + put 'put ''dTZhMWZcdTZhYTNcdTZiMGNcdTZmM2ZcdTcyNDZcdWY5ZmFcdTczNTBcdTc0OGJcdTdhZTBcdTdjYTdcdTgxNzhcdTgxZGZcdTgxZTdcdTgzOGFcdTg0NmNcdTg1MjNcdTg1OTRcdTg1Y2ZcdTg4ZGRcdThkMTNcdTkxYWNcdTk1NzdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzddLmxl''@;'; + put 'put ''bmd0aDsrK0UpNjU1MzMhPT1CWzIzN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM3XVtFXV09NjA2NzIrRSxMWzYwNjcyK0VdPUJbMjM3XVtFXSk7Zm9yKEJbMjM4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NjljXHU1MThkXHU1NGM5XHU1NzI4XHU1YmIwXHU2MjRkXHU2NzUwXHU2ODNkXHU2ODkzXHU2ZTNkXHU2ZWQzXHU3MDdkXHU3ZTIxXHU4OGMxXHU4Y2Ex''@;'; + put 'put ''XHU4ZjA5XHU5ZjRiXHU5ZjRlXHU3MjJkXHU3YjhmXHU4YWNkXHU5MzFhXHU0ZjQ3XHU0ZjRlXHU1MTMyXHU1NDgwXHU1OWQwXHU1ZTk1XHU2MmI1XHU2Nzc1XHU2OTZlXHU2YTE3XHU2Y2FlXHU2ZTFhXHU3MmQ5XHU3MzJhXHU3NWJkXHU3YmI4XHU3ZDM1XHU4MmU3XHU4M2Y5XHU4NDU3XHU4''@;'; + put 'put ''NWY3XHU4YTViXHU4Y2FmXHU4ZTg3XHU5MDE5XHU5MGI4XHU5NmNlXHU5ZjVmXHU1MmUzXHU1NDBhXHU1YWUxXHU1YmMyXHU2NDU4XHU2NTc1XHU2ZWY0XHU3MmM0XHVmOWZiXHU3Njg0XHU3YTRkXHU3YjFiXHU3YzRkXHU3ZTNlXHU3ZmRmXHU4MzdiXHU4YjJiXHU4Y2NhXHU4ZDY0XHU4ZGUx''@;'; + put 'put ''XHU4ZTVmXHU4ZmVhXHU4ZmY5XHU5MDY5XHU5M2QxXHU0ZjQzXHU0ZjdhXHU1MGIzXHU1MTY4XHU1MTc4XHU1MjRkXHU1MjZhXHU1ODYxXHU1ODdjXHU1OTYwXHU1YzA4XHU1YzU1XHU1ZWRiXHU2MDliXHU2MjMwXHU2ODEzXHU2YmJmXHU2YzA4XHU2ZmIxXHVmZmZkIi5zcGxpdCgiIiksRT0w''@;'; + put 'put ''O0UhPUJbMjM4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzOF1bRV1dPTYwOTI4K0UsTFs2MDkyOCtFXT1CWzIzOF1bRV0pO2ZvcihCWzIzOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzE0ZVx1NzQyMFx1NzUzMFx1NzUzOFx1NzU1MVx1NzY3Mlx1N2I0Y1x1N2I4Ylx1N2JhZFx1N2JjNlx1N2U4Zlx1OGE2ZVx1OGYz''@;'; + put 'put ''ZVx1OGY0OVx1OTIzZlx1OTI5M1x1OTMyMlx1OTQyYlx1OTZmYlx1OTg1YVx1OTg2Ylx1OTkxZVx1NTIwN1x1NjIyYVx1NjI5OFx1NmQ1OVx1NzY2NFx1N2FjYVx1N2JjMFx1N2Q3Nlx1NTM2MFx1NWNiZVx1NWU5N1x1NmYzOFx1NzBiOVx1N2M5OFx1OTcxMVx1OWI4ZVx1OWVkZVx1NjNhNVx1''@;'; + put 'put ''NjQ3YVx1ODc3Nlx1NGUwMVx1NGU5NVx1NGVhZFx1NTA1Y1x1NTA3NVx1NTQ0OFx1NTljM1x1NWI5YVx1NWU0MFx1NWVhZFx1NWVmN1x1NWY4MVx1NjBjNVx1NjMzYVx1NjUzZlx1NjU3NFx1NjVjY1x1NjY3Nlx1NjY3OFx1NjdmZVx1Njk2OFx1NmE4OVx1NmI2M1x1NmM0MFx1NmRjMFx1NmRl''@;'; + put 'put ''OFx1NmUxZlx1NmU1ZVx1NzAxZVx1NzBhMVx1NzM4ZVx1NzNmZFx1NzUzYVx1Nzc1Ylx1Nzg4N1x1Nzk4ZVx1N2EwYlx1N2E3ZFx1N2NiZVx1N2Q4ZVx1ODI0N1x1OGEwMlx1OGFlYVx1OGM5ZVx1OTEyZFx1OTE0YVx1OTFkOFx1OTI2Nlx1OTJjY1x1OTMyMFx1OTcwNlx1OTc1Nlx1ZmZmZCIu''@;'; + put 'put ''c3BsaXQoIiIpLEU9MDtFIT1CWzIzOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzldW0VdXT02MTE4NCtFLExbNjExODQrRV09QlsyMzldW0VdKTtmb3IoQlsyNDBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk3NWNcdTk4MDJcdTlmMGVcdTUyMzZcdTUyOTFcdTU1N2NcdTU4MjRcdTVlMWRcdTVmMWZcdTYwOGNcdTYz''@;'; + put 'put ''ZDBcdTY4YWZcdTZmZGZcdTc5NmRcdTdiMmNcdTgxY2RcdTg1YmFcdTg4ZmRcdThhZjhcdThlNDRcdTkxOGRcdTk2NjRcdTk2OWJcdTk3M2RcdTk4NGNcdTlmNGFcdTRmY2VcdTUxNDZcdTUxY2JcdTUyYTlcdTU2MzJcdTVmMTRcdTVmNmJcdTYzYWFcdTY0Y2RcdTY1ZTlcdTY2NDFcdTY2ZmFc''@;'; + put 'put ''dTY2ZjlcdTY3MWRcdTY4OWRcdTY4ZDdcdTY5ZmRcdTZmMTVcdTZmNmVcdTcxNjdcdTcxZTVcdTcyMmFcdTc0YWFcdTc3M2FcdTc5NTZcdTc5NWFcdTc5ZGZcdTdhMjBcdTdhOTVcdTdjOTdcdTdjZGZcdTdkNDRcdTdlNzBcdTgwODdcdTg1ZmJcdTg2YTRcdThhNTRcdThhYmZcdThkOTlcdThl''@;'; + put 'put ''ODFcdTkwMjBcdTkwNmRcdTkxZTNcdTk2M2JcdTk2ZDVcdTljZTVcdTY1Y2ZcdTdjMDdcdThkYjNcdTkzYzNcdTViNThcdTVjMGFcdTUzNTJcdTYyZDlcdTczMWRcdTUwMjdcdTViOTdcdTVmOWVcdTYwYjBcdTYxNmJcdTY4ZDVcdTZkZDlcdTc0MmVcdTdhMmVcdTdkNDJcdTdkOWNcdTdlMzFc''@;'; + put 'put ''dTgxNmJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQwXVtFXV09NjE0NDArRSxMWzYxNDQwK0VdPUJbMjQwXVtFXSk7Zm9yKEJbMjQxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZTJhXHU4ZTM1XHU5MzdlXHU5NDE4XHU0ZjUwXHU1NzUwXHU1ZGU2XHU1ZWE3XHU2''@;'; + put 'put ''MzJiXHU3ZjZhXHU0ZTNiXHU0ZjRmXHU0ZjhmXHU1MDVhXHU1OWRkXHU4MGM0XHU1NDZhXHU1NDY4XHU1NWZlXHU1OTRmXHU1Yjk5XHU1ZGRlXHU1ZWRhXHU2NjVkXHU2NzMxXHU2N2YxXHU2ODJhXHU2Y2U4XHU2ZDMyXHU2ZTRhXHU2ZjhkXHU3MGI3XHU3M2UwXHU3NTg3XHU3YzRjXHU3ZDAy''@;'; + put 'put ''XHU3ZDJjXHU3ZGEyXHU4MjFmXHU4NmRiXHU4YTNiXHU4YTg1XHU4ZDcwXHU4ZThhXHU4ZjMzXHU5MDMxXHU5MTRlXHU5MTUyXHU5NDQ0XHU5OWQwXHU3YWY5XHU3Y2E1XHU0ZmNhXHU1MTAxXHU1MWM2XHU1N2M4XHU1YmVmXHU1Y2ZiXHU2NjU5XHU2YTNkXHU2ZDVhXHU2ZTk2XHU2ZmVjXHU3''@;'; + put 'put ''MTBjXHU3NTZmXHU3YWUzXHU4ODIyXHU5MDIxXHU5MDc1XHU5NmNiXHU5OWZmXHU4MzAxXHU0ZTJkXHU0ZWYyXHU4ODQ2XHU5MWNkXHU1MzdkXHU2YWRiXHU2OTZiXHU2YzQxXHU4NDdhXHU1ODllXHU2MThlXHU2NmZlXHU2MmVmXHU3MGRkXHU3NTExXHU3NWM3XHU3ZTUyXHU4NGI4XHU4YjQ5''@;'; + put 'put ''XHU4ZDA4XHU0ZTRiXHU1M2VhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0MV1bRV1dPTYxNjk2K0UsTFs2MTY5NitFXT1CWzI0MV1bRV0pO2ZvcihCWzI0Ml09Ilx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTRhYlx1NTczMFx1NTc0MFx1NWZkN1x1NjMwMVx1NjMwN1x1''@;'; + put 'put ''NjQ2Zlx1NjUyZlx1NjVlOFx1NjY3YVx1Njc5ZFx1NjdiM1x1NmI2Mlx1NmM2MFx1NmM5YVx1NmYyY1x1NzdlNVx1NzgyNVx1Nzk0OVx1Nzk1N1x1N2QxOVx1ODBhMlx1ODEwMlx1ODFmM1x1ODI5ZFx1ODJiN1x1ODcxOFx1OGE4Y1x1ZjlmY1x1OGQwNFx1OGRiZVx1OTA3Mlx1NzZmNFx1N2Ex''@;'; + put 'put ''OVx1N2EzN1x1N2U1NFx1ODA3N1x1NTUwN1x1NTVkNFx1NTg3NVx1NjMyZlx1NjQyMlx1NjY0OVx1NjY0Ylx1Njg2ZFx1Njk5Ylx1NmI4NFx1NmQyNVx1NmViMVx1NzNjZFx1NzQ2OFx1NzRhMVx1NzU1Ylx1NzViOVx1NzZlMVx1NzcxZVx1Nzc4Ylx1NzllNlx1N2UwOVx1N2UxZFx1ODFmYlx1''@;'; + put 'put ''ODUyZlx1ODg5N1x1OGEzYVx1OGNkMVx1OGVlYlx1OGZiMFx1OTAzMlx1OTNhZFx1OTY2M1x1OTY3M1x1OTcwN1x1NGY4NFx1NTNmMVx1NTllYVx1NWFjOVx1NWUxOVx1Njg0ZVx1NzRjNlx1NzViZVx1NzllOVx1N2E5Mlx1ODFhM1x1ODZlZFx1OGNlYVx1OGRjY1x1OGZlZFx1NjU5Zlx1Njcx''@;'; + put 'put ''NVx1ZjlmZFx1NTdmN1x1NmY1N1x1N2RkZFx1OGYyZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDJdW0VdXT02MTk1MitFLExbNjE5NTIrRV09QlsyNDJdW0VdKTtmb3IoQlsyNDNdPSJc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzZjZcdTk2YzZcdTVmYjVcdTYxZjJc''@;'; + put 'put ''dTZmODRcdTRlMTRcdTRmOThcdTUwMWZcdTUzYzlcdTU1ZGZcdTVkNmZcdTVkZWVcdTZiMjFcdTZiNjRcdTc4Y2JcdTdiOWFcdWY5ZmVcdThlNDlcdThlY2FcdTkwNmVcdTYzNDlcdTY0M2VcdTc3NDBcdTdhODRcdTkzMmZcdTk0N2ZcdTlmNmFcdTY0YjBcdTZmYWZcdTcxZTZcdTc0YThcdTc0''@;'; + put 'put ''ZGFcdTdhYzRcdTdjMTJcdTdlODJcdTdjYjJcdTdlOThcdThiOWFcdThkMGFcdTk0N2RcdTk5MTBcdTk5NGNcdTUyMzlcdTViZGZcdTY0ZTZcdTY3MmRcdTdkMmVcdTUwZWRcdTUzYzNcdTU4NzlcdTYxNThcdTYxNTlcdTYxZmFcdTY1YWNcdTdhZDlcdThiOTJcdThiOTZcdTUwMDlcdTUwMjFc''@;'; + put 'put ''dTUyNzVcdTU1MzFcdTVhM2NcdTVlZTBcdTVmNzBcdTYxMzRcdTY1NWVcdTY2MGNcdTY2MzZcdTY2YTJcdTY5Y2RcdTZlYzRcdTZmMzJcdTczMTZcdTc2MjFcdTdhOTNcdTgxMzlcdTgyNTlcdTgzZDZcdTg0YmNcdTUwYjVcdTU3ZjBcdTViYzBcdTViZThcdTVmNjlcdTYzYTFcdTc4MjZcdTdk''@;'; + put 'put ''YjVcdTgzZGNcdTg1MjFcdTkxYzdcdTkxZjVcdTUxOGFcdTY3ZjVcdTdiNTZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQzXVtFXV09NjIyMDgrRSxMWzYyMjA4K0VdPUJbMjQzXVtFXSk7''@;'; + put 'put ''Zm9yKEJbMjQ0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4Y2FjXHU1MWM0''@;'; + put 'put ''XHU1OWJiXHU2MGJkXHU4NjU1XHU1MDFjXHVmOWZmXHU1MjU0XHU1YzNhXHU2MTdkXHU2MjFhXHU2MmQzXHU2NGYyXHU2NWE1XHU2ZWNjXHU3NjIwXHU4MTBhXHU4ZTYwXHU5NjVmXHU5NmJiXHU0ZWRmXHU1MzQzXHU1NTk4XHU1OTI5XHU1ZGRkXHU2NGM1XHU2Y2M5XHU2ZGZhXHU3Mzk0XHU3''@;'; + put 'put ''YTdmXHU4MjFiXHU4NWE2XHU4Y2U0XHU4ZTEwXHU5MDc3XHU5MWU3XHU5NWUxXHU5NjIxXHU5N2M2XHU1MWY4XHU1NGYyXHU1NTg2XHU1ZmI5XHU2NGE0XHU2Zjg4XHU3ZGI0XHU4ZjFmXHU4ZjRkXHU5NDM1XHU1MGM5XHU1YzE2XHU2Y2JlXHU2ZGZiXHU3NTFiXHU3N2JiXHU3YzNkXHU3YzY0''@;'; + put 'put ''XHU4YTc5XHU4YWMyXHU1ODFlXHU1OWJlXHU1ZTE2XHU2Mzc3XHU3MjUyXHU3NThhXHU3NzZiXHU4YWRjXHU4Y2JjXHU4ZjEyXHU1ZWYzXHU2Njc0XHU2ZGY4XHU4MDdkXHU4M2MxXHU4YWNiXHU5NzUxXHU5YmQ2XHVmYTAwXHU1MjQzXHU2NmZmXHU2ZDk1XHU2ZWVmXHU3ZGUwXHU4YWU2XHU5''@;'; + put 'put ''MDJlXHU5MDVlXHU5YWQ0XHU1MjFkXHU1MjdmXHU1NGU4XHU2MTk0XHU2Mjg0XHU2MmRiXHU2OGEyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0NF1bRV1dPTYyNDY0K0UsTFs2MjQ2NCtF''@;'; + put 'put ''XT1CWzI0NF1bRV0pO2ZvcihCWzI0NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1NjkxMlx1Njk1YVx1NmEzNVx1NzA5Mlx1NzEyNlx1Nzg1ZFx1NzkwMVx1NzkwZVx1NzlkMlx1N2EwZFx1ODA5Nlx1ODI3OFx1ODJkNVx1ODM0OVx1ODU0OVx1OGM4Mlx1OGQ4NVx1OTE2Mlx1OTE4Ylx1OTFhZVx1NGZjM1x1NTZkMVx1NzFlZFx1NzdkN1x1ODcwMFx1ODlmOFx1NWJmOFx1''@;'; + put 'put ''NWZkNlx1Njc1MVx1OTBhOFx1NTNlMlx1NTg1YVx1NWJmNVx1NjBhNFx1NjE4MVx1NjQ2MFx1N2UzZFx1ODA3MFx1ODUyNVx1OTI4M1x1NjRhZVx1NTBhY1x1NWQxNFx1NjcwMFx1NTg5Y1x1NjJiZFx1NjNhOFx1NjkwZVx1Njk3OFx1NmExZVx1NmU2Ylx1NzZiYVx1NzljYlx1ODJiYlx1ODQy''@;'; + put 'put ''OVx1OGFjZlx1OGRhOFx1OGZmZFx1OTExMlx1OTE0Ylx1OTE5Y1x1OTMxMFx1OTMxOFx1OTM5YVx1OTZkYlx1OWEzNlx1OWMwZFx1NGUxMVx1NzU1Y1x1Nzk1ZFx1N2FmYVx1N2I1MVx1N2JjOVx1N2UyZVx1ODRjNFx1OGU1OVx1OGU3NFx1OGVmOFx1OTAxMFx1NjYyNVx1NjkzZlx1NzQ0M1x1''@;'; + put 'put ''NTFmYVx1NjcyZVx1OWVkY1x1NTE0NVx1NWZlMFx1NmM5Nlx1ODdmMlx1ODg1ZFx1ODg3N1x1NjBiNFx1ODFiNVx1ODQwM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDVdW0VdXT02Mjcy''@;'; + put 'put ''MCtFLExbNjI3MjArRV09QlsyNDVdW0VdKTtmb3IoQlsyNDZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdThkMDVcdTUzZDZcdTU0MzlcdTU2MzRcdTVhMzZcdTVjMzFcdTcwOGFcdTdmZTBcdTgwNWFcdTgxMDZcdTgxZWRcdThkYTNcdTkxODlcdTlhNWZcdTlkZjJcdTUwNzRcdTRlYzRcdTUzYTBcdTYwZmJcdTZlMmNcdTVjNjRcdTRmODhcdTUwMjRcdTU1ZTRcdTVjZDlc''@;'; + put 'put ''dTVlNWZcdTYwNjVcdTY4OTRcdTZjYmJcdTZkYzRcdTcxYmVcdTc1ZDRcdTc1ZjRcdTc2NjFcdTdhMWFcdTdhNDlcdTdkYzdcdTdkZmJcdTdmNmVcdTgxZjRcdTg2YTlcdThmMWNcdTk2YzlcdTk5YjNcdTlmNTJcdTUyNDdcdTUyYzVcdTk4ZWRcdTg5YWFcdTRlMDNcdTY3ZDJcdTZmMDZcdTRm''@;'; + put 'put ''YjVcdTViZTJcdTY3OTVcdTZjODhcdTZkNzhcdTc0MWJcdTc4MjdcdTkxZGRcdTkzN2NcdTg3YzRcdTc5ZTRcdTdhMzFcdTVmZWJcdTRlZDZcdTU0YTRcdTU1M2VcdTU4YWVcdTU5YTVcdTYwZjBcdTYyNTNcdTYyZDZcdTY3MzZcdTY5NTVcdTgyMzVcdTk2NDBcdTk5YjFcdTk5ZGRcdTUwMmNc''@;'; + put 'put ''dTUzNTNcdTU1NDRcdTU3N2NcdWZhMDFcdTYyNThcdWZhMDJcdTY0ZTJcdTY2NmJcdTY3ZGRcdTZmYzFcdTZmZWZcdTc0MjJcdTc0MzhcdThhMTdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0Jb''@;'; + put 'put ''MjQ2XVtFXV09NjI5NzYrRSxMWzYyOTc2K0VdPUJbMjQ2XVtFXSk7Zm9yKEJbMjQ3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NDM4XHU1NDUxXHU1NjA2XHU1NzY2XHU1ZjQ4XHU2MTlhXHU2YjRlXHU3MDU4XHU3MGFkXHU3ZGJiXHU4YTk1XHU1OTZhXHU4MTJiXHU2M2EyXHU3NzA4XHU4MDNkXHU4Y2FhXHU1ODU0XHU2NDJkXHU2OWJiXHU1Yjk1XHU1ZTExXHU2ZTZm''@;'; + put 'put ''XHVmYTAzXHU4NTY5XHU1MTRjXHU1M2YwXHU1OTJhXHU2MDIwXHU2MTRiXHU2Yjg2XHU2YzcwXHU2Y2YwXHU3YjFlXHU4MGNlXHU4MmQ0XHU4ZGM2XHU5MGIwXHU5OGIxXHVmYTA0XHU2NGM3XHU2ZmE0XHU2NDkxXHU2NTA0XHU1MTRlXHU1NDEwXHU1NzFmXHU4YTBlXHU2MTVmXHU2ODc2XHVm''@;'; + put 'put ''YTA1XHU3NWRiXHU3YjUyXHU3ZDcxXHU5MDFhXHU1ODA2XHU2OWNjXHU4MTdmXHU4OTJhXHU5MDAwXHU5ODM5XHU1MDc4XHU1OTU3XHU1OWFjXHU2Mjk1XHU5MDBmXHU5YjJhXHU2MTVkXHU3Mjc5XHU5NWQ2XHU1NzYxXHU1YTQ2XHU1ZGY0XHU2MjhhXHU2NGFkXHU2NGZhXHU2Nzc3XHU2Y2Uy''@;'; + put 'put ''XHU2ZDNlXHU3MjJjXHU3NDM2XHU3ODM0XHU3Zjc3XHU4MmFkXHU4ZGRiXHU5ODE3XHU1MjI0XHU1NzQyXHU2NzdmXHU3MjQ4XHU3NGUzXHU4Y2E5XHU4ZmE2XHU5MjExXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDddW0VdLmNoYXJDb2Rl''@;'; + put 'put ''QXQoMCkmJihtZVtCWzI0N11bRV1dPTYzMjMyK0UsTFs2MzIzMitFXT1CWzI0N11bRV0pO2ZvcihCWzI0OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTYyYVx1NTE2Ylx1NTNlZFx1NjM0Y1x1NGY2OVx1NTUwNFx1NjA5Nlx1NjU1N1x1NmM5Ylx1NmQ3Zlx1NzI0Y1x1NzJmZFx1N2ExN1x1ODk4N1x1OGM5ZFx1NWY2ZFx1NmY4ZVx1NzBmOVx1ODFhOFx1NjEwZVx1NGZi''@;'; + put 'put ''Zlx1NTA0Zlx1NjI0MVx1NzI0N1x1N2JjN1x1N2RlOFx1N2ZlOVx1OTA0ZFx1OTdhZFx1OWExOVx1OGNiNlx1NTc2YVx1NWU3M1x1NjdiMFx1ODQwZFx1OGE1NVx1NTQyMFx1NWIxNlx1NWU2M1x1NWVlMlx1NWYwYVx1NjU4M1x1ODBiYVx1ODUzZFx1OTU4OVx1OTY1Ylx1NGY0OFx1NTMwNVx1''@;'; + put 'put ''NTMwZFx1NTMwZlx1NTQ4Nlx1NTRmYVx1NTcwM1x1NWUwM1x1NjAxNlx1NjI5Ylx1NjJiMVx1NjM1NVx1ZmEwNlx1NmNlMVx1NmQ2Nlx1NzViMVx1NzgzMlx1ODBkZVx1ODEyZlx1ODJkZVx1ODQ2MVx1ODRiMlx1ODg4ZFx1ODkxMlx1OTAwYlx1OTJlYVx1OThmZFx1OWI5MVx1NWU0NVx1NjZi''@;'; + put 'put ''NFx1NjZkZFx1NzAxMVx1NzIwNlx1ZmEwN1x1NGZmNVx1NTI3ZFx1NWY2YVx1NjE1M1x1Njc1M1x1NmExOVx1NmYwMlx1NzRlMlx1Nzk2OFx1ODg2OFx1OGM3OVx1OThjN1x1OThjNFx1OWE0M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ4''@;'; + put 'put ''XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDhdW0VdXT02MzQ4OCtFLExbNjM0ODgrRV09QlsyNDhdW0VdKTtmb3IoQlsyNDldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0YzFcdTdhMWZcdTY5NTNcdThhZjdcdThjNGFcdTk4YThcdTk5YWVcdTVmN2NcdTYyYWJcdTc1YjJcdTc2YWVcdTg4YWJcdTkwN2ZcdTk2NDJcdTUzMzlcdTVmM2NcdTVmYzVcdTZjY2NcdTcz''@;'; + put 'put ''Y2NcdTc1NjJcdTc1OGJcdTdiNDZcdTgyZmVcdTk5OWRcdTRlNGZcdTkwM2NcdTRlMGJcdTRmNTVcdTUzYTZcdTU5MGZcdTVlYzhcdTY2MzBcdTZjYjNcdTc0NTVcdTgzNzdcdTg3NjZcdThjYzBcdTkwNTBcdTk3MWVcdTljMTVcdTU4ZDFcdTViNzhcdTg2NTBcdThiMTRcdTlkYjRcdTViZDJc''@;'; + put 'put ''dTYwNjhcdTYwOGRcdTY1ZjFcdTZjNTdcdTZmMjJcdTZmYTNcdTcwMWFcdTdmNTVcdTdmZjBcdTk1OTFcdTk1OTJcdTk2NTBcdTk3ZDNcdTUyNzJcdThmNDRcdTUxZmRcdTU0MmJcdTU0YjhcdTU1NjNcdTU1OGFcdTZhYmJcdTZkYjVcdTdkZDhcdTgyNjZcdTkyOWNcdTk2NzdcdTllNzlcdTU0''@;'; + put 'put ''MDhcdTU0YzhcdTc2ZDJcdTg2ZTRcdTk1YTRcdTk1ZDRcdTk2NWNcdTRlYTJcdTRmMDlcdTU5ZWVcdTVhZTZcdTVkZjdcdTYwNTJcdTYyOTdcdTY3NmRcdTY4NDFcdTZjODZcdTZlMmZcdTdmMzhcdTgwOWJcdTgyMmFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDldLmxlbmd0aDsrK0Up''@;'; + put 'put ''NjU1MzMhPT1CWzI0OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ5XVtFXV09NjM3NDQrRSxMWzYzNzQ0K0VdPUJbMjQ5XVtFXSk7Zm9yKEJbMjUwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmYTA4XHVmYTA5XHU5ODA1XHU0ZWE1XHU1MDU1XHU1NGIzXHU1NzkzXHU1OTVhXHU1YjY5XHU1YmIzXHU2MWM4XHU2OTc3XHU2ZDc3XHU3MDIzXHU4N2Y5XHU4OWUzXHU4''@;'; + put 'put ''YTcyXHU4YWU3XHU5MDgyXHU5OWVkXHU5YWI4XHU1MmJlXHU2ODM4XHU1MDE2XHU1ZTc4XHU2NzRmXHU4MzQ3XHU4ODRjXHU0ZWFiXHU1NDExXHU1NmFlXHU3M2U2XHU5MTE1XHU5N2ZmXHU5OTA5XHU5OTU3XHU5OTk5XHU1NjUzXHU1ODlmXHU4NjViXHU4YTMxXHU2MWIyXHU2YWY2XHU3Mzdi''@;'; + put 'put ''XHU4ZWQyXHU2YjQ3XHU5NmFhXHU5YTU3XHU1OTU1XHU3MjAwXHU4ZDZiXHU5NzY5XHU0ZmQ0XHU1Y2Y0XHU1ZjI2XHU2MWY4XHU2NjViXHU2Y2ViXHU3MGFiXHU3Mzg0XHU3M2I5XHU3M2ZlXHU3NzI5XHU3NzRkXHU3ZDQzXHU3ZDYyXHU3ZTIzXHU4MjM3XHU4ODUyXHVmYTBhXHU4Y2UyXHU5''@;'; + put 'put ''MjQ5XHU5ODZmXHU1YjUxXHU3YTc0XHU4ODQwXHU5ODAxXHU1YWNjXHU0ZmUwXHU1MzU0XHU1OTNlXHU1Y2ZkXHU2MzNlXHU2ZDc5XHU3MmY5XHU4MTA1XHU4MTA3XHU4M2EyXHU5MmNmXHU5ODMwXHU0ZWE4XHU1MTQ0XHU1MjExXHU1NzhiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjUw''@;'; + put 'put ''XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNTBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI1MF1bRV1dPTY0ZTMrRSxMWzY0ZTMrRV09QlsyNTBdW0VdKTtmb3IoQlsyNTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVmNjJcdTZjYzJcdTZlY2VcdTcwMDVcdTcwNTBcdTcwYWZcdTcxOTJcdTczZTlcdTc0NjlcdTgzNGFcdTg3YTJcdTg4NjFcdTkwMDhcdTkwYTJcdTkz''@;'; + put 'put ''YTNcdTk5YThcdTUxNmVcdTVmNTdcdTYwZTBcdTYxNjdcdTY2YjNcdTg1NTlcdThlNGFcdTkxYWZcdTk3OGJcdTRlNGVcdTRlOTJcdTU0N2NcdTU4ZDVcdTU4ZmFcdTU5N2RcdTVjYjVcdTVmMjdcdTYyMzZcdTYyNDhcdTY2MGFcdTY2NjdcdTZiZWJcdTZkNjlcdTZkY2ZcdTZlNTZcdTZlZjhc''@;'; + put 'put ''dTZmOTRcdTZmZTBcdTZmZTlcdTcwNWRcdTcyZDBcdTc0MjVcdTc0NWFcdTc0ZTBcdTc2OTNcdTc5NWNcdTdjY2FcdTdlMWVcdTgwZTFcdTgyYTZcdTg0NmJcdTg0YmZcdTg2NGVcdTg2NWZcdTg3NzRcdThiNzdcdThjNmFcdTkzYWNcdTk4MDBcdTk4NjVcdTYwZDFcdTYyMTZcdTkxNzdcdTVh''@;'; + put 'put ''NWFcdTY2MGZcdTZkZjdcdTZlM2VcdTc0M2ZcdTliNDJcdTVmZmRcdTYwZGFcdTdiMGZcdTU0YzRcdTVmMThcdTZjNWVcdTZjZDNcdTZkMmFcdTcwZDhcdTdkMDVcdTg2NzlcdThhMGNcdTlkM2JcdTUzMTZcdTU0OGNcdTViMDVcdTZhM2FcdTcwNmJcdTc1NzVcdWZmZmQiLnNwbGl0KCIiKSxF''@;'; + put 'put ''PTA7RSE9QlsyNTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI1MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjUxXVtFXV09NjQyNTYrRSxMWzY0MjU2K0VdPUJbMjUxXVtFXSk7Zm9yKEJbMjUyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3OThkXHU3OWJlXHU4MmIxXHU4M2VmXHU4YTcxXHU4YjQxXHU4Y2E4XHU5Nzc0XHVmYTBiXHU2NGY0XHU2NTJiXHU3OGJhXHU3''@;'; + put 'put ''OGJiXHU3YTZiXHU0ZTM4XHU1NTlhXHU1OTUwXHU1YmE2XHU1ZTdiXHU2MGEzXHU2M2RiXHU2YjYxXHU2NjY1XHU2ODUzXHU2ZTE5XHU3MTY1XHU3NGIwXHU3ZDA4XHU5MDg0XHU5YTY5XHU5YzI1XHU2ZDNiXHU2ZWQxXHU3MzNlXHU4YzQxXHU5NWNhXHU1MWYwXHU1ZTRjXHU1ZmE4XHU2MDRk''@;'; + put 'put ''XHU2MGY2XHU2MTMwXHU2MTRjXHU2NjQzXHU2NjQ0XHU2OWE1XHU2Y2MxXHU2ZTVmXHU2ZWM5XHU2ZjYyXHU3MTRjXHU3NDljXHU3Njg3XHU3YmMxXHU3YzI3XHU4MzUyXHU4NzU3XHU5MDUxXHU5NjhkXHU5ZWMzXHU1MzJmXHU1NmRlXHU1ZWZiXHU1ZjhhXHU2MDYyXHU2MDk0XHU2MWY3XHU2''@;'; + put 'put ''NjY2XHU2NzAzXHU2YTljXHU2ZGVlXHU2ZmFlXHU3MDcwXHU3MzZhXHU3ZTZhXHU4MWJlXHU4MzM0XHU4NmQ0XHU4YWE4XHU4Y2M0XHU1MjgzXHU3MzcyXHU1Yjk2XHU2YTZiXHU5NDA0XHU1NGVlXHU1Njg2XHU1YjVkXHU2NTQ4XHU2NTg1XHU2NmM5XHU2ODlmXHU2ZDhkXHU2ZGM2XHVmZmZk''@;'; + put 'put ''Ii5zcGxpdCgiIiksRT0wO0UhPUJbMjUyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNTJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI1Ml1bRV1dPTY0NTEyK0UsTFs2NDUxMitFXT1CWzI1Ml1bRV0pO2ZvcihCWzI1M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzIzYlx1ODBiNFx1OTE3NVx1OWE0ZFx1NGZhZlx1NTAxOVx1NTM5YVx1NTQwZVx1NTQzY1x1NTU4OVx1''@;'; + put 'put ''NTVjNVx1NWUzZlx1NWY4Y1x1NjczZFx1NzE2Nlx1NzNkZFx1OTAwNVx1NTJkYlx1NTJmM1x1NTg2NFx1NThjZVx1NzEwNFx1NzE4Zlx1NzFmYlx1ODViMFx1OGExM1x1NjY4OFx1ODVhOFx1NTVhN1x1NjY4NFx1NzE0YVx1ODQzMVx1NTM0OVx1NTU5OVx1NmJjMVx1NWY1OVx1NWZiZFx1NjNl''@;'; + put 'put ''ZVx1NjY4OVx1NzE0N1x1OGFmMVx1OGYxZFx1OWViZVx1NGYxMVx1NjQzYVx1NzBjYlx1NzU2Nlx1ODY2N1x1NjA2NFx1OGI0ZVx1OWRmOFx1NTE0N1x1NTFmNlx1NTMwOFx1NmQzNlx1ODBmOFx1OWVkMVx1NjYxNVx1NmIyM1x1NzA5OFx1NzVkNVx1NTQwM1x1NWM3OVx1N2QwN1x1OGExNlx1''@;'; + put 'put ''NmIyMFx1NmIzZFx1NmI0Nlx1NTQzOFx1NjA3MFx1NmQzZFx1N2ZkNVx1ODIwOFx1NTBkNlx1NTFkZVx1NTU5Y1x1NTY2Ylx1NTZjZFx1NTllY1x1NWIwOVx1NWUwY1x1NjE5OVx1NjE5OFx1NjIzMVx1NjY1ZVx1NjZlNlx1NzE5OVx1NzFiOVx1NzFiYVx1NzJhN1x1NzlhN1x1N2EwMFx1N2Zi''@;'; + put 'put ''Mlx1OGE3MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjUzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTNdW0VdXT02NDc2OCtFLExbNjQ3NjgrRV09QlsyNTNdW0VdKTtyZXR1cm57ZW5jOm1lLGRlYzpMfX0oKSxKZVs5NTBdPWZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIEUsTD1bXSxtZT17fSxCPVtdO2ZvcihCWzBdPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSor''@;'; + put 'put ''LC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzBdW0VdXT0wK0UsTFswK0VdPUJbMF1bRV0pO2ZvcihCWzE2MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzAwMFx1ZmYwY1x1MzAwMVx1MzAwMlx1ZmYwZVx1MjAyN1x1ZmYxYlx1ZmYxYVx1ZmYxZlx1ZmYwMVx1ZmUzMFx1MjAyNlx1MjAyNVx1ZmU1MFx1ZmU1MVx1ZmU1Mlx4YjdcdWZlNTRcdWZlNTVcdWZlNTZcdWZlNTdcdWZmNWNcdTIw''@;'; + put 'put ''MTNcdWZlMzFcdTIwMTRcdWZlMzNcdTI1NzRcdWZlMzRcdWZlNGZcdWZmMDhcdWZmMDlcdWZlMzVcdWZlMzZcdWZmNWJcdWZmNWRcdWZlMzdcdWZlMzhcdTMwMTRcdTMwMTVcdWZlMzlcdWZlM2FcdTMwMTBcdTMwMTFcdWZlM2JcdWZlM2NcdTMwMGFcdTMwMGJcdWZlM2RcdWZlM2VcdTMwMDhc''@;'; + put 'put ''dTMwMDlcdWZlM2ZcdWZlNDBcdTMwMGNcdTMwMGRcdWZlNDFcdWZlNDJcdTMwMGVcdTMwMGZcdWZlNDNcdWZlNDRcdWZlNTlcdWZlNWFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZlNWJcdWZlNWNcdWZlNWRcdWZlNWVcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRc''@;'; + put 'put ''dTMwMWRcdTMwMWVcdTIwMzVcdTIwMzJcdWZmMDNcdWZmMDZcdWZmMGFcdTIwM2JceGE3XHUzMDAzXHUyNWNiXHUyNWNmXHUyNWIzXHUyNWIyXHUyNWNlXHUyNjA2XHUyNjA1XHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWJkXHUyNWJjXHUzMmEzXHUyMTA1XHhhZlx1ZmZlM1x1ZmYzZlx1''@;'; + put 'put ''MDJjZFx1ZmU0OVx1ZmU0YVx1ZmU0ZFx1ZmU0ZVx1ZmU0Ylx1ZmU0Y1x1ZmU1Zlx1ZmU2MFx1ZmU2MVx1ZmYwYlx1ZmYwZFx4ZDdceGY3XHhiMVx1MjIxYVx1ZmYxY1x1ZmYxZVx1ZmYxZFx1MjI2Nlx1MjI2N1x1MjI2MFx1MjIxZVx1MjI1Mlx1MjI2MVx1ZmU2Mlx1ZmU2M1x1ZmU2NFx1ZmU2''@;'; + put 'put ''NVx1ZmU2Nlx1ZmY1ZVx1MjIyOVx1MjIyYVx1MjJhNVx1MjIyMFx1MjIxZlx1MjJiZlx1MzNkMlx1MzNkMVx1MjIyYlx1MjIyZVx1MjIzNVx1MjIzNFx1MjY0MFx1MjY0Mlx1MjI5NVx1MjI5OVx1MjE5MVx1MjE5M1x1MjE5MFx1MjE5Mlx1MjE5Nlx1MjE5N1x1MjE5OVx1MjE5OFx1MjIyNVx1''@;'; + put 'put ''MjIyM1x1ZmYwZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjFdW0VdXT00MTIxNitFLExbNDEyMTYrRV09QlsxNjFdW0VdKTtmb3IoQlsxNjJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmM2NcdTIyMTVcdWZlNjhcdWZmMDRcdWZmZTVcdTMwMTJcdWZmZTBcdWZmZTFcdWZmMDVcdWZmMjBcdTIxMDNcdTIxMDlcdWZlNjlcdWZlNmFcdWZlNmJcdTMzZDVcdTMzOWNcdTMzOWRcdTMzOWVcdTMzY2VcdTMzYTFcdTMzOGVc''@;'; + put 'put ''dTMzOGZcdTMzYzRceGIwXHU1MTU5XHU1MTViXHU1MTVlXHU1MTVkXHU1MTYxXHU1MTYzXHU1NWU3XHU3NGU5XHU3Y2NlXHUyNTgxXHUyNTgyXHUyNTgzXHUyNTg0XHUyNTg1XHUyNTg2XHUyNTg3XHUyNTg4XHUyNThmXHUyNThlXHUyNThkXHUyNThjXHUyNThiXHUyNThhXHUyNTg5XHUyNTNj''@;'; + put 'put ''XHUyNTM0XHUyNTJjXHUyNTI0XHUyNTFjXHUyNTk0XHUyNTAwXHUyNTAyXHUyNTk1XHUyNTBjXHUyNTEwXHUyNTE0XHUyNTE4XHUyNTZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyNTZlXHUyNTcwXHUyNTZmXHUyNTUwXHUyNTVlXHUyNTZhXHUyNTYxXHUyNWUy''@;'; + put 'put ''XHUyNWUzXHUyNWU1XHUyNWU0XHUyNTcxXHUyNTcyXHUyNTczXHVmZjEwXHVmZjExXHVmZjEyXHVmZjEzXHVmZjE0XHVmZjE1XHVmZjE2XHVmZjE3XHVmZjE4XHVmZjE5XHUyMTYwXHUyMTYxXHUyMTYyXHUyMTYzXHUyMTY0XHUyMTY1XHUyMTY2XHUyMTY3XHUyMTY4XHUyMTY5XHUzMDIxXHUz''@;'; + put 'put ''MDIyXHUzMDIzXHUzMDI0XHUzMDI1XHUzMDI2XHUzMDI3XHUzMDI4XHUzMDI5XHU1MzQxXHU1MzQ0XHU1MzQ1XHVmZjIxXHVmZjIyXHVmZjIzXHVmZjI0XHVmZjI1XHVmZjI2XHVmZjI3XHVmZjI4XHVmZjI5XHVmZjJhXHVmZjJiXHVmZjJjXHVmZjJkXHVmZjJlXHVmZjJmXHVmZjMwXHVmZjMx''@;'; + put 'put ''XHVmZjMyXHVmZjMzXHVmZjM0XHVmZjM1XHVmZjM2XHVmZjM3XHVmZjM4XHVmZjM5XHVmZjNhXHVmZjQxXHVmZjQyXHVmZjQzXHVmZjQ0XHVmZjQ1XHVmZjQ2XHVmZjQ3XHVmZjQ4XHVmZjQ5XHVmZjRhXHVmZjRiXHVmZjRjXHVmZjRkXHVmZjRlXHVmZjRmXHVmZjUwXHVmZjUxXHVmZjUyXHVm''@;'; + put 'put ''ZjUzXHVmZjU0XHVmZjU1XHVmZjU2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2Ml1bRV1dPTQxNDcyK0UsTFs0MTQ3MitFXT1CWzE2Ml1bRV0pO2ZvcihCWzE2M109Ilx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmY1N1x1ZmY1OFx1ZmY1OVx1ZmY1YVx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1''@;'; + put 'put ''MDNhMVx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNjNFx1MDNj''@;'; + put 'put ''NVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1MzEwNVx1MzEwNlx1MzEwN1x1MzEwOFx1MzEwOVx1MzEwYVx1MzEwYlx1MzEwY1x1MzEwZFx1MzEwZVx1MzEwZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzExMFx1MzExMVx1MzExMlx1MzExM1x1MzExNFx1MzEx''@;'; + put 'put ''NVx1MzExNlx1MzExN1x1MzExOFx1MzExOVx1MzExYVx1MzExYlx1MzExY1x1MzExZFx1MzExZVx1MzExZlx1MzEyMFx1MzEyMVx1MzEyMlx1MzEyM1x1MzEyNFx1MzEyNVx1MzEyNlx1MzEyN1x1MzEyOFx1MzEyOVx1MDJkOVx1MDJjOVx1MDJjYVx1MDJjN1x1MDJjYlx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjBhY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjNdW0VdXT00MTcyOCtFLExbNDE3MjgrRV09QlsxNjNdW0VdKTtmb3IoQlsxNjRd''@;'; + put 'put ''PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRlMDBcdTRlNTlcdTRlMDFcdTRlMDNcdTRlNDNcdTRlNWRcdTRlODZcdTRlOGNcdTRlYmFcdTUxM2ZcdTUxNjVcdTUxNmJcdTUxZTBcdTUyMDBcdTUyMDFcdTUyOWJcdTUzMTVcdTUzNDFc''@;'; + put 'put ''dTUzNWNcdTUzYzhcdTRlMDlcdTRlMGJcdTRlMDhcdTRlMGFcdTRlMmJcdTRlMzhcdTUxZTFcdTRlNDVcdTRlNDhcdTRlNWZcdTRlNWVcdTRlOGVcdTRlYTFcdTUxNDBcdTUyMDNcdTUyZmFcdTUzNDNcdTUzYzlcdTUzZTNcdTU3MWZcdTU4ZWJcdTU5MTVcdTU5MjdcdTU5NzNcdTViNTBcdTVi''@;'; + put 'put ''NTFcdTViNTNcdTViZjhcdTVjMGZcdTVjMjJcdTVjMzhcdTVjNzFcdTVkZGRcdTVkZTVcdTVkZjFcdTVkZjJcdTVkZjNcdTVkZmVcdTVlNzJcdTVlZmVcdTVmMGJcdTVmMTNcdTYyNGRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRlMTFcdTRlMTBcdTRlMGRcdTRl''@;'; + put 'put ''MmRcdTRlMzBcdTRlMzlcdTRlNGJcdTVjMzlcdTRlODhcdTRlOTFcdTRlOTVcdTRlOTJcdTRlOTRcdTRlYTJcdTRlYzFcdTRlYzBcdTRlYzNcdTRlYzZcdTRlYzdcdTRlY2RcdTRlY2FcdTRlY2JcdTRlYzRcdTUxNDNcdTUxNDFcdTUxNjdcdTUxNmRcdTUxNmVcdTUxNmNcdTUxOTdcdTUxZjZc''@;'; + put 'put ''dTUyMDZcdTUyMDdcdTUyMDhcdTUyZmJcdTUyZmVcdTUyZmZcdTUzMTZcdTUzMzlcdTUzNDhcdTUzNDdcdTUzNDVcdTUzNWVcdTUzODRcdTUzY2JcdTUzY2FcdTUzY2RcdTU4ZWNcdTU5MjlcdTU5MmJcdTU5MmFcdTU5MmRcdTViNTRcdTVjMTFcdTVjMjRcdTVjM2FcdTVjNmZcdTVkZjRcdTVl''@;'; + put 'put ''N2JcdTVlZmZcdTVmMTRcdTVmMTVcdTVmYzNcdTYyMDhcdTYyMzZcdTYyNGJcdTYyNGVcdTY1MmZcdTY1ODdcdTY1OTdcdTY1YTRcdTY1YjlcdTY1ZTVcdTY2ZjBcdTY3MDhcdTY3MjhcdTZiMjBcdTZiNjJcdTZiNzlcdTZiY2JcdTZiZDRcdTZiZGJcdTZjMGZcdTZjMzRcdTcwNmJcdTcyMmFc''@;'; + put 'put ''dTcyMzZcdTcyM2JcdTcyNDdcdTcyNTlcdTcyNWJcdTcyYWNcdTczOGJcdTRlMTlcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY0XVtFXV09NDE5ODQrRSxMWzQxOTg0K0VdPUJbMTY0XVtF''@;'; + put 'put ''XSk7Zm9yKEJbMTY1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTE2XHU0ZTE1XHU0ZTE0XHU0ZTE4XHU0ZTNiXHU0ZTRkXHU0ZTRmXHU0ZTRlXHU0ZWU1XHU0ZWQ4XHU0ZWQ0XHU0ZWQ1XHU0ZWQ2XHU0ZWQ3XHU0ZWUzXHU0ZWU0''@;'; + put 'put ''XHU0ZWQ5XHU0ZWRlXHU1MTQ1XHU1MTQ0XHU1MTg5XHU1MThhXHU1MWFjXHU1MWY5XHU1MWZhXHU1MWY4XHU1MjBhXHU1MmEwXHU1MjlmXHU1MzA1XHU1MzA2XHU1MzE3XHU1MzFkXHU0ZWRmXHU1MzRhXHU1MzQ5XHU1MzYxXHU1MzYwXHU1MzZmXHU1MzZlXHU1M2JiXHU1M2VmXHU1M2U0XHU1''@;'; + put 'put ''M2YzXHU1M2VjXHU1M2VlXHU1M2U5XHU1M2U4XHU1M2ZjXHU1M2Y4XHU1M2Y1XHU1M2ViXHU1M2U2XHU1M2VhXHU1M2YyXHU1M2YxXHU1M2YwXHU1M2U1XHU1M2VkXHU1M2ZiXHU1NmRiXHU1NmRhXHU1OTE2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1OTJlXHU1''@;'; + put 'put ''OTMxXHU1OTc0XHU1OTc2XHU1YjU1XHU1YjgzXHU1YzNjXHU1ZGU4XHU1ZGU3XHU1ZGU2XHU1ZTAyXHU1ZTAzXHU1ZTczXHU1ZTdjXHU1ZjAxXHU1ZjE4XHU1ZjE3XHU1ZmM1XHU2MjBhXHU2MjUzXHU2MjU0XHU2MjUyXHU2MjUxXHU2NWE1XHU2NWU2XHU2NzJlXHU2NzJjXHU2NzJhXHU2NzJi''@;'; + put 'put ''XHU2NzJkXHU2YjYzXHU2YmNkXHU2YzExXHU2YzEwXHU2YzM4XHU2YzQxXHU2YzQwXHU2YzNlXHU3MmFmXHU3Mzg0XHU3Mzg5XHU3NGRjXHU3NGU2XHU3NTE4XHU3NTFmXHU3NTI4XHU3NTI5XHU3NTMwXHU3NTMxXHU3NTMyXHU3NTMzXHU3NThiXHU3NjdkXHU3NmFlXHU3NmJmXHU3NmVlXHU3''@;'; + put 'put ''N2RiXHU3N2UyXHU3N2YzXHU3OTNhXHU3OWJlXHU3YTc0XHU3YWNiXHU0ZTFlXHU0ZTFmXHU0ZTUyXHU0ZTUzXHU0ZTY5XHU0ZTk5XHU0ZWE0XHU0ZWE2XHU0ZWE1XHU0ZWZmXHU0ZjA5XHU0ZjE5XHU0ZjBhXHU0ZjE1XHU0ZjBkXHU0ZjEwXHU0ZjExXHU0ZjBmXHU0ZWYyXHU0ZWY2XHU0ZWZi''@;'; + put 'put ''XHU0ZWYwXHU0ZWYzXHU0ZWZkXHU0ZjAxXHU0ZjBiXHU1MTQ5XHU1MTQ3XHU1MTQ2XHU1MTQ4XHU1MTY4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2NV1bRV1dPTQyMjQwK0UsTFs0MjI0''@;'; + put 'put ''MCtFXT1CWzE2NV1bRV0pO2ZvcihCWzE2Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTE3MVx1NTE4ZFx1NTFiMFx1NTIxN1x1NTIxMVx1NTIxMlx1NTIwZVx1NTIxNlx1NTJhM1x1NTMwOFx1NTMyMVx1NTMyMFx1NTM3MFx1NTM3''@;'; + put 'put ''MVx1NTQwOVx1NTQwZlx1NTQwY1x1NTQwYVx1NTQxMFx1NTQwMVx1NTQwYlx1NTQwNFx1NTQxMVx1NTQwZFx1NTQwOFx1NTQwM1x1NTQwZVx1NTQwNlx1NTQxMlx1NTZlMFx1NTZkZVx1NTZkZFx1NTczM1x1NTczMFx1NTcyOFx1NTcyZFx1NTcyY1x1NTcyZlx1NTcyOVx1NTkxOVx1NTkxYVx1''@;'; + put 'put ''NTkzN1x1NTkzOFx1NTk4NFx1NTk3OFx1NTk4M1x1NTk3ZFx1NTk3OVx1NTk4Mlx1NTk4MVx1NWI1N1x1NWI1OFx1NWI4N1x1NWI4OFx1NWI4NVx1NWI4OVx1NWJmYVx1NWMxNlx1NWM3OVx1NWRkZVx1NWUwNlx1NWU3Nlx1NWU3NFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1NWYwZlx1NWYxYlx1NWZkOVx1NWZkNlx1NjIwZVx1NjIwY1x1NjIwZFx1NjIxMFx1NjI2M1x1NjI1Ylx1NjI1OFx1NjUzNlx1NjVlOVx1NjVlOFx1NjVlY1x1NjVlZFx1NjZmMlx1NjZmM1x1NjcwOVx1NjczZFx1NjczNFx1NjczMVx1NjczNVx1NmIyMVx1NmI2NFx1NmI3Ylx1NmMx''@;'; + put 'put ''Nlx1NmM1ZFx1NmM1N1x1NmM1OVx1NmM1Zlx1NmM2MFx1NmM1MFx1NmM1NVx1NmM2MVx1NmM1Ylx1NmM0ZFx1NmM0ZVx1NzA3MFx1NzI1Zlx1NzI1ZFx1NzY3ZVx1N2FmOVx1N2M3M1x1N2NmOFx1N2YzNlx1N2Y4YVx1N2ZiZFx1ODAwMVx1ODAwM1x1ODAwY1x1ODAxMlx1ODAzM1x1ODA3Zlx1''@;'; + put 'put ''ODA4OVx1ODA4Ylx1ODA4Y1x1ODFlM1x1ODFlYVx1ODFmM1x1ODFmY1x1ODIwY1x1ODIxYlx1ODIxZlx1ODI2ZVx1ODI3Mlx1ODI3ZVx1ODY2Ylx1ODg0MFx1ODg0Y1x1ODg2M1x1ODk3Zlx1OTYyMVx1NGUzMlx1NGVhOFx1NGY0ZFx1NGY0Zlx1NGY0N1x1NGY1N1x1NGY1ZVx1NGYzNFx1NGY1''@;'; + put 'put ''Ylx1NGY1NVx1NGYzMFx1NGY1MFx1NGY1MVx1NGYzZFx1NGYzYVx1NGYzOFx1NGY0M1x1NGY1NFx1NGYzY1x1NGY0Nlx1NGY2M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjZdW0VdXT00''@;'; + put 'put ''MjQ5NitFLExbNDI0OTYrRV09QlsxNjZdW0VdKTtmb3IoQlsxNjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRmNWNcdTRmNjBcdTRmMmZcdTRmNGVcdTRmMzZcdTRmNTlcdTRmNWRcdTRmNDhcdTRmNWFcdTUxNGNcdTUxNGJcdTUx''@;'; + put 'put ''NGRcdTUxNzVcdTUxYjZcdTUxYjdcdTUyMjVcdTUyMjRcdTUyMjlcdTUyMmFcdTUyMjhcdTUyYWJcdTUyYTlcdTUyYWFcdTUyYWNcdTUzMjNcdTUzNzNcdTUzNzVcdTU0MWRcdTU0MmRcdTU0MWVcdTU0M2VcdTU0MjZcdTU0NGVcdTU0MjdcdTU0NDZcdTU0NDNcdTU0MzNcdTU0NDhcdTU0NDJc''@;'; + put 'put ''dTU0MWJcdTU0MjlcdTU0NGFcdTU0MzlcdTU0M2JcdTU0MzhcdTU0MmVcdTU0MzVcdTU0MzZcdTU0MjBcdTU0M2NcdTU0NDBcdTU0MzFcdTU0MmJcdTU0MWZcdTU0MmNcdTU2ZWFcdTU2ZjBcdTU2ZTRcdTU2ZWJcdTU3NGFcdTU3NTFcdTU3NDBcdTU3NGRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdTU3NDdcdTU3NGVcdTU3M2VcdTU3NTBcdTU3NGZcdTU3M2JcdTU4ZWZcdTU5M2VcdTU5OWRcdTU5OTJcdTU5YThcdTU5OWVcdTU5YTNcdTU5OTlcdTU5OTZcdTU5OGRcdTU5YTRcdTU5OTNcdTU5OGFcdTU5YTVcdTViNWRcdTViNWNcdTViNWFcdTViNWJcdTVi''@;'; + put 'put ''OGNcdTViOGJcdTViOGZcdTVjMmNcdTVjNDBcdTVjNDFcdTVjM2ZcdTVjM2VcdTVjOTBcdTVjOTFcdTVjOTRcdTVjOGNcdTVkZWJcdTVlMGNcdTVlOGZcdTVlODdcdTVlOGFcdTVlZjdcdTVmMDRcdTVmMWZcdTVmNjRcdTVmNjJcdTVmNzdcdTVmNzlcdTVmZDhcdTVmY2NcdTVmZDdcdTVmY2Rc''@;'; + put 'put ''dTVmZjFcdTVmZWJcdTVmZjhcdTVmZWFcdTYyMTJcdTYyMTFcdTYyODRcdTYyOTdcdTYyOTZcdTYyODBcdTYyNzZcdTYyODlcdTYyNmRcdTYyOGFcdTYyN2NcdTYyN2VcdTYyNzlcdTYyNzNcdTYyOTJcdTYyNmZcdTYyOThcdTYyNmVcdTYyOTVcdTYyOTNcdTYyOTFcdTYyODZcdTY1MzlcdTY1''@;'; + put 'put ''M2JcdTY1MzhcdTY1ZjFcdTY2ZjRcdTY3NWZcdTY3NGVcdTY3NGZcdTY3NTBcdTY3NTFcdTY3NWNcdTY3NTZcdTY3NWVcdTY3NDlcdTY3NDZcdTY3NjBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2N11bRV0uY2hhckNvZGVBdCgwKSYmKG1l''@;'; + put 'put ''W0JbMTY3XVtFXV09NDI3NTIrRSxMWzQyNzUyK0VdPUJbMTY3XVtFXSk7Zm9yKEJbMTY4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NzUzXHU2NzU3XHU2YjY1XHU2YmNmXHU2YzQyXHU2YzVlXHU2Yzk5XHU2YzgxXHU2Yzg4XHU2''@;'; + put 'put ''Yzg5XHU2Yzg1XHU2YzliXHU2YzZhXHU2YzdhXHU2YzkwXHU2YzcwXHU2YzhjXHU2YzY4XHU2Yzk2XHU2YzkyXHU2YzdkXHU2YzgzXHU2YzcyXHU2YzdlXHU2Yzc0XHU2Yzg2XHU2Yzc2XHU2YzhkXHU2Yzk0XHU2Yzk4XHU2YzgyXHU3MDc2XHU3MDdjXHU3MDdkXHU3MDc4XHU3MjYyXHU3MjYx''@;'; + put 'put ''XHU3MjYwXHU3MmM0XHU3MmMyXHU3Mzk2XHU3NTJjXHU3NTJiXHU3NTM3XHU3NTM4XHU3NjgyXHU3NmVmXHU3N2UzXHU3OWMxXHU3OWMwXHU3OWJmXHU3YTc2XHU3Y2ZiXHU3ZjU1XHU4MDk2XHU4MDkzXHU4MDlkXHU4MDk4XHU4MDliXHU4MDlhXHU4MGIyXHU4MjZmXHU4MjkyXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MjhiXHU4MjhkXHU4OThiXHU4OWQyXHU4YTAwXHU4YzM3XHU4YzQ2XHU4YzU1XHU4YzlkXHU4ZDY0XHU4ZDcwXHU4ZGIzXHU4ZWFiXHU4ZWNhXHU4ZjliXHU4ZmIwXHU4ZmMyXHU4ZmM2XHU4ZmM1XHU4ZmM0XHU1ZGUxXHU5MDkxXHU5''@;'; + put 'put ''MGEyXHU5MGFhXHU5MGE2XHU5MGEzXHU5MTQ5XHU5MWM2XHU5MWNjXHU5NjMyXHU5NjJlXHU5NjMxXHU5NjJhXHU5NjJjXHU0ZTI2XHU0ZTU2XHU0ZTczXHU0ZThiXHU0ZTliXHU0ZTllXHU0ZWFiXHU0ZWFjXHU0ZjZmXHU0ZjlkXHU0ZjhkXHU0ZjczXHU0ZjdmXHU0ZjZjXHU0ZjliXHU0Zjhi''@;'; + put 'put ''XHU0Zjg2XHU0ZjgzXHU0ZjcwXHU0Zjc1XHU0Zjg4XHU0ZjY5XHU0ZjdiXHU0Zjk2XHU0ZjdlXHU0ZjhmXHU0ZjkxXHU0ZjdhXHU1MTU0XHU1MTUyXHU1MTU1XHU1MTY5XHU1MTc3XHU1MTc2XHU1MTc4XHU1MWJkXHU1MWZkXHU1MjNiXHU1MjM4XHU1MjM3XHU1MjNhXHU1MjMwXHU1MjJlXHU1''@;'; + put 'put ''MjM2XHU1MjQxXHU1MmJlXHU1MmJiXHU1MzUyXHU1MzU0XHU1MzUzXHU1MzUxXHU1MzY2XHU1Mzc3XHU1Mzc4XHU1Mzc5XHU1M2Q2XHU1M2Q0XHU1M2Q3XHU1NDczXHU1NDc1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjhdW0VdLmNoYXJD''@;'; + put 'put ''b2RlQXQoMCkmJihtZVtCWzE2OF1bRV1dPTQzMDA4K0UsTFs0MzAwOCtFXT1CWzE2OF1bRV0pO2ZvcihCWzE2OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTQ5Nlx1NTQ3OFx1NTQ5NVx1NTQ4MFx1NTQ3Ylx1NTQ3N1x1NTQ4NFx1''@;'; + put 'put ''NTQ5Mlx1NTQ4Nlx1NTQ3Y1x1NTQ5MFx1NTQ3MVx1NTQ3Nlx1NTQ4Y1x1NTQ5YVx1NTQ2Mlx1NTQ2OFx1NTQ4Ylx1NTQ3ZFx1NTQ4ZVx1NTZmYVx1NTc4M1x1NTc3N1x1NTc2YVx1NTc2OVx1NTc2MVx1NTc2Nlx1NTc2NFx1NTc3Y1x1NTkxY1x1NTk0OVx1NTk0N1x1NTk0OFx1NTk0NFx1NTk1''@;'; + put 'put ''NFx1NTliZVx1NTliYlx1NTlkNFx1NTliOVx1NTlhZVx1NTlkMVx1NTljNlx1NTlkMFx1NTljZFx1NTljYlx1NTlkM1x1NTljYVx1NTlhZlx1NTliM1x1NTlkMlx1NTljNVx1NWI1Zlx1NWI2NFx1NWI2M1x1NWI5N1x1NWI5YVx1NWI5OFx1NWI5Y1x1NWI5OVx1NWI5Ylx1NWMxYVx1NWM0OFx1''@;'; + put 'put ''NWM0NVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWM0Nlx1NWNiN1x1NWNhMVx1NWNiOFx1NWNhOVx1NWNhYlx1NWNiMVx1NWNiM1x1NWUxOFx1NWUxYVx1NWUxNlx1NWUxNVx1NWUxYlx1NWUxMVx1NWU3OFx1NWU5YVx1NWU5N1x1NWU5Y1x1NWU5NVx1NWU5Nlx1''@;'; + put 'put ''NWVmNlx1NWYyNlx1NWYyN1x1NWYyOVx1NWY4MFx1NWY4MVx1NWY3Zlx1NWY3Y1x1NWZkZFx1NWZlMFx1NWZmZFx1NWZmNVx1NWZmZlx1NjAwZlx1NjAxNFx1NjAyZlx1NjAzNVx1NjAxNlx1NjAyYVx1NjAxNVx1NjAyMVx1NjAyN1x1NjAyOVx1NjAyYlx1NjAxYlx1NjIxNlx1NjIxNVx1NjIz''@;'; + put 'put ''Zlx1NjIzZVx1NjI0MFx1NjI3Zlx1NjJjOVx1NjJjY1x1NjJjNFx1NjJiZlx1NjJjMlx1NjJiOVx1NjJkMlx1NjJkYlx1NjJhYlx1NjJkM1x1NjJkNFx1NjJjYlx1NjJjOFx1NjJhOFx1NjJiZFx1NjJiY1x1NjJkMFx1NjJkOVx1NjJjN1x1NjJjZFx1NjJiNVx1NjJkYVx1NjJiMVx1NjJkOFx1''@;'; + put 'put ''NjJkNlx1NjJkN1x1NjJjNlx1NjJhY1x1NjJjZVx1NjUzZVx1NjVhN1x1NjViY1x1NjVmYVx1NjYxNFx1NjYxM1x1NjYwY1x1NjYwNlx1NjYwMlx1NjYwZVx1NjYwMFx1NjYwZlx1NjYxNVx1NjYwYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJb''@;'; + put 'put ''MTY5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjldW0VdXT00MzI2NCtFLExbNDMyNjQrRV09QlsxNjldW0VdKTtmb3IoQlsxNzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY2MDdcdTY3MGRcdTY3MGJcdTY3NmRcdTY3OGJc''@;'; + put 'put ''dTY3OTVcdTY3NzFcdTY3OWNcdTY3NzNcdTY3NzdcdTY3ODdcdTY3OWRcdTY3OTdcdTY3NmZcdTY3NzBcdTY3N2ZcdTY3ODlcdTY3N2VcdTY3OTBcdTY3NzVcdTY3OWFcdTY3OTNcdTY3N2NcdTY3NmFcdTY3NzJcdTZiMjNcdTZiNjZcdTZiNjdcdTZiN2ZcdTZjMTNcdTZjMWJcdTZjZTNcdTZj''@;'; + put 'put ''ZThcdTZjZjNcdTZjYjFcdTZjY2NcdTZjZTVcdTZjYjNcdTZjYmRcdTZjYmVcdTZjYmNcdTZjZTJcdTZjYWJcdTZjZDVcdTZjZDNcdTZjYjhcdTZjYzRcdTZjYjlcdTZjYzFcdTZjYWVcdTZjZDdcdTZjYzVcdTZjZjFcdTZjYmZcdTZjYmJcdTZjZTFcdTZjZGJcdTZjY2FcdTZjYWNcdTZjZWZc''@;'; + put 'put ''dTZjZGNcdTZjZDZcdTZjZTBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcwOTVcdTcwOGVcdTcwOTJcdTcwOGFcdTcwOTlcdTcyMmNcdTcyMmRcdTcyMzhcdTcyNDhcdTcyNjdcdTcyNjlcdTcyYzBcdTcyY2VcdTcyZDlcdTcyZDdcdTcyZDBcdTczYTlcdTczYThc''@;'; + put 'put ''dTczOWZcdTczYWJcdTczYTVcdTc1M2RcdTc1OWRcdTc1OTlcdTc1OWFcdTc2ODRcdTc2YzJcdTc2ZjJcdTc2ZjRcdTc3ZTVcdTc3ZmRcdTc5M2VcdTc5NDBcdTc5NDFcdTc5YzlcdTc5YzhcdTdhN2FcdTdhNzlcdTdhZmFcdTdjZmVcdTdmNTRcdTdmOGNcdTdmOGJcdTgwMDVcdTgwYmFcdTgw''@;'; + put 'put ''YTVcdTgwYTJcdTgwYjFcdTgwYTFcdTgwYWJcdTgwYTlcdTgwYjRcdTgwYWFcdTgwYWZcdTgxZTVcdTgxZmVcdTgyMGRcdTgyYjNcdTgyOWRcdTgyOTlcdTgyYWRcdTgyYmRcdTgyOWZcdTgyYjlcdTgyYjFcdTgyYWNcdTgyYTVcdTgyYWZcdTgyYjhcdTgyYTNcdTgyYjBcdTgyYmVcdTgyYjdc''@;'; + put 'put ''dTg2NGVcdTg2NzFcdTUyMWRcdTg4NjhcdThlY2JcdThmY2VcdThmZDRcdThmZDFcdTkwYjVcdTkwYjhcdTkwYjFcdTkwYjZcdTkxYzdcdTkxZDFcdTk1NzdcdTk1ODBcdTk2MWNcdTk2NDBcdTk2M2ZcdTk2M2JcdTk2NDRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzBdLmxlbmd0aDsr''@;'; + put 'put ''K0UpNjU1MzMhPT1CWzE3MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTcwXVtFXV09NDM1MjArRSxMWzQzNTIwK0VdPUJbMTcwXVtFXSk7Zm9yKEJbMTcxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NjQyXHU5NmI5XHU5NmU4''@;'; + put 'put ''XHU5NzUyXHU5NzVlXHU0ZTlmXHU0ZWFkXHU0ZWFlXHU0ZmUxXHU0ZmI1XHU0ZmFmXHU0ZmJmXHU0ZmUwXHU0ZmQxXHU0ZmNmXHU0ZmRkXHU0ZmMzXHU0ZmI2XHU0ZmQ4XHU0ZmRmXHU0ZmNhXHU0ZmQ3XHU0ZmFlXHU0ZmQwXHU0ZmM0XHU0ZmMyXHU0ZmRhXHU0ZmNlXHU0ZmRlXHU0ZmI3XHU1''@;'; + put 'put ''MTU3XHU1MTkyXHU1MTkxXHU1MWEwXHU1MjRlXHU1MjQzXHU1MjRhXHU1MjRkXHU1MjRjXHU1MjRiXHU1MjQ3XHU1MmM3XHU1MmM5XHU1MmMzXHU1MmMxXHU1MzBkXHU1MzU3XHU1MzdiXHU1MzlhXHU1M2RiXHU1NGFjXHU1NGMwXHU1NGE4XHU1NGNlXHU1NGM5XHU1NGI4XHU1NGE2XHU1NGIz''@;'; + put 'put ''XHU1NGM3XHU1NGMyXHU1NGJkXHU1NGFhXHU1NGMxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGM0XHU1NGM4XHU1NGFmXHU1NGFiXHU1NGIxXHU1NGJiXHU1NGE5XHU1NGE3XHU1NGJmXHU1NmZmXHU1NzgyXHU1NzhiXHU1N2EwXHU1N2EzXHU1N2EyXHU1N2Nl''@;'; + put 'put ''XHU1N2FlXHU1NzkzXHU1OTU1XHU1OTUxXHU1OTRmXHU1OTRlXHU1OTUwXHU1OWRjXHU1OWQ4XHU1OWZmXHU1OWUzXHU1OWU4XHU1YTAzXHU1OWU1XHU1OWVhXHU1OWRhXHU1OWU2XHU1YTAxXHU1OWZiXHU1YjY5XHU1YmEzXHU1YmE2XHU1YmE0XHU1YmEyXHU1YmE1XHU1YzAxXHU1YzRlXHU1''@;'; + put 'put ''YzRmXHU1YzRkXHU1YzRiXHU1Y2Q5XHU1Y2QyXHU1ZGY3XHU1ZTFkXHU1ZTI1XHU1ZTFmXHU1ZTdkXHU1ZWEwXHU1ZWE2XHU1ZWZhXHU1ZjA4XHU1ZjJkXHU1ZjY1XHU1Zjg4XHU1Zjg1XHU1ZjhhXHU1ZjhiXHU1Zjg3XHU1ZjhjXHU1Zjg5XHU2MDEyXHU2MDFkXHU2MDIwXHU2MDI1XHU2MDBl''@;'; + put 'put ''XHU2MDI4XHU2MDRkXHU2MDcwXHU2MDY4XHU2MDYyXHU2MDQ2XHU2MDQzXHU2MDZjXHU2MDZiXHU2MDZhXHU2MDY0XHU2MjQxXHU2MmRjXHU2MzE2XHU2MzA5XHU2MmZjXHU2MmVkXHU2MzAxXHU2MmVlXHU2MmZkXHU2MzA3XHU2MmYxXHU2MmY3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJb''@;'; + put 'put ''MTcxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3MV1bRV1dPTQzNzc2K0UsTFs0Mzc3NitFXT1CWzE3MV1bRV0pO2ZvcihCWzE3Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjJl''@;'; + put 'put ''Zlx1NjJlY1x1NjJmZVx1NjJmNFx1NjMxMVx1NjMwMlx1NjUzZlx1NjU0NVx1NjVhYlx1NjViZFx1NjVlMlx1NjYyNVx1NjYyZFx1NjYyMFx1NjYyN1x1NjYyZlx1NjYxZlx1NjYyOFx1NjYzMVx1NjYyNFx1NjZmN1x1NjdmZlx1NjdkM1x1NjdmMVx1NjdkNFx1NjdkMFx1NjdlY1x1NjdiNlx1''@;'; + put 'put ''NjdhZlx1NjdmNVx1NjdlOVx1NjdlZlx1NjdjNFx1NjdkMVx1NjdiNFx1NjdkYVx1NjdlNVx1NjdiOFx1NjdjZlx1NjdkZVx1NjdmM1x1NjdiMFx1NjdkOVx1NjdlMlx1NjdkZFx1NjdkMlx1NmI2YVx1NmI4M1x1NmI4Nlx1NmJiNVx1NmJkMlx1NmJkN1x1NmMxZlx1NmNjOVx1NmQwYlx1NmQz''@;'; + put 'put ''Mlx1NmQyYVx1NmQ0MVx1NmQyNVx1NmQwY1x1NmQzMVx1NmQxZVx1NmQxN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmQzYlx1NmQzZFx1NmQzZVx1NmQzNlx1NmQxYlx1NmNmNVx1NmQzOVx1NmQyN1x1NmQzOFx1NmQyOVx1NmQyZVx1NmQzNVx1NmQwZVx1NmQy''@;'; + put 'put ''Ylx1NzBhYlx1NzBiYVx1NzBiM1x1NzBhY1x1NzBhZlx1NzBhZFx1NzBiOFx1NzBhZVx1NzBhNFx1NzIzMFx1NzI3Mlx1NzI2Zlx1NzI3NFx1NzJlOVx1NzJlMFx1NzJlMVx1NzNiN1x1NzNjYVx1NzNiYlx1NzNiMlx1NzNjZFx1NzNjMFx1NzNiM1x1NzUxYVx1NzUyZFx1NzU0Zlx1NzU0Y1x1''@;'; + put 'put ''NzU0ZVx1NzU0Ylx1NzVhYlx1NzVhNFx1NzVhNVx1NzVhMlx1NzVhM1x1NzY3OFx1NzY4Nlx1NzY4N1x1NzY4OFx1NzZjOFx1NzZjNlx1NzZjM1x1NzZjNVx1NzcwMVx1NzZmOVx1NzZmOFx1NzcwOVx1NzcwYlx1NzZmZVx1NzZmY1x1NzcwN1x1NzdkY1x1NzgwMlx1NzgxNFx1NzgwY1x1Nzgw''@;'; + put 'put ''ZFx1Nzk0Nlx1Nzk0OVx1Nzk0OFx1Nzk0N1x1NzliOVx1NzliYVx1NzlkMVx1NzlkMlx1NzljYlx1N2E3Zlx1N2E4MVx1N2FmZlx1N2FmZFx1N2M3ZFx1N2QwMlx1N2QwNVx1N2QwMFx1N2QwOVx1N2QwN1x1N2QwNFx1N2QwNlx1N2YzOFx1N2Y4ZVx1N2ZiZlx1ODAwNFx1ZmZmZCIuc3BsaXQo''@;'; + put 'put ''IiIpLEU9MDtFIT1CWzE3Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTcyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzJdW0VdXT00NDAzMitFLExbNDQwMzIrRV09QlsxNzJdW0VdKTtmb3IoQlsxNzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdTgwMTBcdTgwMGRcdTgwMTFcdTgwMzZcdTgwZDZcdTgwZTVcdTgwZGFcdTgwYzNcdTgwYzRcdTgwY2NcdTgwZTFcdTgwZGJcdTgwY2VcdTgwZGVcdTgwZTRcdTgwZGRcdTgxZjRcdTgyMjJcdTgyZTdcdTgzMDNcdTgzMDVcdTgyZTNcdTgyZGJcdTgyZTZcdTgzMDRcdTgyZTVc''@;'; + put 'put ''dTgzMDJcdTgzMDlcdTgyZDJcdTgyZDdcdTgyZjFcdTgzMDFcdTgyZGNcdTgyZDRcdTgyZDFcdTgyZGVcdTgyZDNcdTgyZGZcdTgyZWZcdTgzMDZcdTg2NTBcdTg2NzlcdTg2N2JcdTg2N2FcdTg4NGRcdTg4NmJcdTg5ODFcdTg5ZDRcdThhMDhcdThhMDJcdThhMDNcdThjOWVcdThjYTBcdThk''@;'; + put 'put ''NzRcdThkNzNcdThkYjRcdThlY2RcdThlY2NcdThmZjBcdThmZTZcdThmZTJcdThmZWFcdThmZTVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThmZWRcdThmZWJcdThmZTRcdThmZThcdTkwY2FcdTkwY2VcdTkwYzFcdTkwYzNcdTkxNGJcdTkxNGFcdTkxY2RcdTk1''@;'; + put 'put ''ODJcdTk2NTBcdTk2NGJcdTk2NGNcdTk2NGRcdTk3NjJcdTk3NjlcdTk3Y2JcdTk3ZWRcdTk3ZjNcdTk4MDFcdTk4YThcdTk4ZGJcdTk4ZGZcdTk5OTZcdTk5OTlcdTRlNThcdTRlYjNcdTUwMGNcdTUwMGRcdTUwMjNcdTRmZWZcdTUwMjZcdTUwMjVcdTRmZjhcdTUwMjlcdTUwMTZcdTUwMDZc''@;'; + put 'put ''dTUwM2NcdTUwMWZcdTUwMWFcdTUwMTJcdTUwMTFcdTRmZmFcdTUwMDBcdTUwMTRcdTUwMjhcdTRmZjFcdTUwMjFcdTUwMGJcdTUwMTlcdTUwMThcdTRmZjNcdTRmZWVcdTUwMmRcdTUwMmFcdTRmZmVcdTUwMmJcdTUwMDlcdTUxN2NcdTUxYTRcdTUxYTVcdTUxYTJcdTUxY2RcdTUxY2NcdTUx''@;'; + put 'put ''YzZcdTUxY2JcdTUyNTZcdTUyNWNcdTUyNTRcdTUyNWJcdTUyNWRcdTUzMmFcdTUzN2ZcdTUzOWZcdTUzOWRcdTUzZGZcdTU0ZThcdTU1MTBcdTU1MDFcdTU1MzdcdTU0ZmNcdTU0ZTVcdTU0ZjJcdTU1MDZcdTU0ZmFcdTU1MTRcdTU0ZTlcdTU0ZWRcdTU0ZTFcdTU1MDlcdTU0ZWVcdTU0ZWFc''@;'; + put 'put ''dWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTczXVtFXV09NDQyODgrRSxMWzQ0Mjg4K0VdPUJbMTczXVtFXSk7Zm9yKEJbMTc0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGU2XHU1NTI3XHU1NTA3XHU1NGZkXHU1NTBmXHU1NzAzXHU1NzA0XHU1N2MyXHU1N2Q0XHU1N2NiXHU1N2MzXHU1ODA5XHU1OTBmXHU1OTU3XHU1OTU4XHU1OTVhXHU1YTExXHU1YTE4XHU1YTFjXHU1YTFmXHU1YTFiXHU1YTEzXHU1OWVjXHU1YTIw''@;'; + put 'put ''XHU1YTIzXHU1YTI5XHU1YTI1XHU1YTBjXHU1YTA5XHU1YjZiXHU1YzU4XHU1YmIwXHU1YmIzXHU1YmI2XHU1YmI0XHU1YmFlXHU1YmI1XHU1YmI5XHU1YmI4XHU1YzA0XHU1YzUxXHU1YzU1XHU1YzUwXHU1Y2VkXHU1Y2ZkXHU1Y2ZiXHU1Y2VhXHU1Y2U4XHU1Y2YwXHU1Y2Y2XHU1ZDAxXHU1''@;'; + put 'put ''Y2Y0XHU1ZGVlXHU1ZTJkXHU1ZTJiXHU1ZWFiXHU1ZWFkXHU1ZWE3XHU1ZjMxXHU1ZjkyXHU1ZjkxXHU1ZjkwXHU2MDU5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDYzXHU2MDY1XHU2MDUwXHU2MDU1XHU2MDZkXHU2MDY5XHU2MDZmXHU2MDg0XHU2MDlmXHU2''@;'; + put 'put ''MDlhXHU2MDhkXHU2MDk0XHU2MDhjXHU2MDg1XHU2MDk2XHU2MjQ3XHU2MmYzXHU2MzA4XHU2MmZmXHU2MzRlXHU2MzNlXHU2MzJmXHU2MzU1XHU2MzQyXHU2MzQ2XHU2MzRmXHU2MzQ5XHU2MzNhXHU2MzUwXHU2MzNkXHU2MzJhXHU2MzJiXHU2MzI4XHU2MzRkXHU2MzRjXHU2NTQ4XHU2NTQ5''@;'; + put 'put ''XHU2NTk5XHU2NWMxXHU2NWM1XHU2NjQyXHU2NjQ5XHU2NjRmXHU2NjQzXHU2NjUyXHU2NjRjXHU2NjQ1XHU2NjQxXHU2NmY4XHU2NzE0XHU2NzE1XHU2NzE3XHU2ODIxXHU2ODM4XHU2ODQ4XHU2ODQ2XHU2ODUzXHU2ODM5XHU2ODQyXHU2ODU0XHU2ODI5XHU2OGIzXHU2ODE3XHU2ODRjXHU2''@;'; + put 'put ''ODUxXHU2ODNkXHU2N2Y0XHU2ODUwXHU2ODQwXHU2ODNjXHU2ODQzXHU2ODJhXHU2ODQ1XHU2ODEzXHU2ODE4XHU2ODQxXHU2YjhhXHU2Yjg5XHU2YmI3XHU2YzIzXHU2YzI3XHU2YzI4XHU2YzI2XHU2YzI0XHU2Y2YwXHU2ZDZhXHU2ZDk1XHU2ZDg4XHU2ZDg3XHU2ZDY2XHU2ZDc4XHU2ZDc3''@;'; + put 'put ''XHU2ZDU5XHU2ZDkzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3NF1bRV1dPTQ0NTQ0K0UsTFs0NDU0NCtFXT1CWzE3NF1bRV0pO2ZvcihCWzE3NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmQ2Y1x1NmQ4OVx1NmQ2ZVx1NmQ1YVx1NmQ3NFx1NmQ2OVx1NmQ4Y1x1NmQ4YVx1NmQ3OVx1NmQ4NVx1NmQ2NVx1NmQ5NFx1NzBjYVx1NzBkOFx1NzBlNFx1NzBkOVx1NzBjOFx1NzBjZlx1NzIzOVx1NzI3OVx1NzJmY1x1NzJm''@;'; + put 'put ''OVx1NzJmZFx1NzJmOFx1NzJmN1x1NzM4Nlx1NzNlZFx1NzQwOVx1NzNlZVx1NzNlMFx1NzNlYVx1NzNkZVx1NzU1NFx1NzU1ZFx1NzU1Y1x1NzU1YVx1NzU1OVx1NzViZVx1NzVjNVx1NzVjN1x1NzViMlx1NzViM1x1NzViZFx1NzViY1x1NzViOVx1NzVjMlx1NzViOFx1NzY4Ylx1NzZiMFx1''@;'; + put 'put ''NzZjYVx1NzZjZFx1NzZjZVx1NzcyOVx1NzcxZlx1NzcyMFx1NzcyOFx1NzdlOVx1NzgzMFx1NzgyN1x1NzgzOFx1NzgxZFx1NzgzNFx1NzgzN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzgyNVx1NzgyZFx1NzgyMFx1NzgxZlx1NzgzMlx1Nzk1NVx1Nzk1MFx1''@;'; + put 'put ''Nzk2MFx1Nzk1Zlx1Nzk1Nlx1Nzk1ZVx1Nzk1ZFx1Nzk1N1x1Nzk1YVx1NzllNFx1NzllM1x1NzllN1x1NzlkZlx1NzllNlx1NzllOVx1NzlkOFx1N2E4NFx1N2E4OFx1N2FkOVx1N2IwNlx1N2IxMVx1N2M4OVx1N2QyMVx1N2QxN1x1N2QwYlx1N2QwYVx1N2QyMFx1N2QyMlx1N2QxNFx1N2Qx''@;'; + put 'put ''MFx1N2QxNVx1N2QxYVx1N2QxY1x1N2QwZFx1N2QxOVx1N2QxYlx1N2YzYVx1N2Y1Zlx1N2Y5NFx1N2ZjNVx1N2ZjMVx1ODAwNlx1ODAxOFx1ODAxNVx1ODAxOVx1ODAxN1x1ODAzZFx1ODAzZlx1ODBmMVx1ODEwMlx1ODBmMFx1ODEwNVx1ODBlZFx1ODBmNFx1ODEwNlx1ODBmOFx1ODBmM1x1''@;'; + put 'put ''ODEwOFx1ODBmZFx1ODEwYVx1ODBmY1x1ODBlZlx1ODFlZFx1ODFlY1x1ODIwMFx1ODIxMFx1ODIyYVx1ODIyYlx1ODIyOFx1ODIyY1x1ODJiYlx1ODMyYlx1ODM1Mlx1ODM1NFx1ODM0YVx1ODMzOFx1ODM1MFx1ODM0OVx1ODMzNVx1ODMzNFx1ODM0Zlx1ODMzMlx1ODMzOVx1ODMzNlx1ODMx''@;'; + put 'put ''N1x1ODM0MFx1ODMzMVx1ODMyOFx1ODM0M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzVdW0VdXT00NDgwMCtFLExbNDQ4MDArRV09QlsxNzVdW0VdKTtmb3IoQlsxNzZdPSJcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg2NTRcdTg2OGFcdTg2YWFcdTg2OTNcdTg2YTRcdTg2YTlcdTg2OGNcdTg2YTNcdTg2OWNcdTg4NzBcdTg4NzdcdTg4ODFcdTg4ODJcdTg4N2RcdTg4NzlcdThhMThcdThhMTBcdThhMGVcdThhMGNcdThh''@;'; + put 'put ''MTVcdThhMGFcdThhMTdcdThhMTNcdThhMTZcdThhMGZcdThhMTFcdThjNDhcdThjN2FcdThjNzlcdThjYTFcdThjYTJcdThkNzdcdThlYWNcdThlZDJcdThlZDRcdThlY2ZcdThmYjFcdTkwMDFcdTkwMDZcdThmZjdcdTkwMDBcdThmZmFcdThmZjRcdTkwMDNcdThmZmRcdTkwMDVcdThmZjhc''@;'; + put 'put ''dTkwOTVcdTkwZTFcdTkwZGRcdTkwZTJcdTkxNTJcdTkxNGRcdTkxNGNcdTkxZDhcdTkxZGRcdTkxZDdcdTkxZGNcdTkxZDlcdTk1ODNcdTk2NjJcdTk2NjNcdTk2NjFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk2NWJcdTk2NWRcdTk2NjRcdTk2NThcdTk2NWVc''@;'; + put 'put ''dTk2YmJcdTk4ZTJcdTk5YWNcdTlhYThcdTlhZDhcdTliMjVcdTliMzJcdTliM2NcdTRlN2VcdTUwN2FcdTUwN2RcdTUwNWNcdTUwNDdcdTUwNDNcdTUwNGNcdTUwNWFcdTUwNDlcdTUwNjVcdTUwNzZcdTUwNGVcdTUwNTVcdTUwNzVcdTUwNzRcdTUwNzdcdTUwNGZcdTUwMGZcdTUwNmZcdTUw''@;'; + put 'put ''NmRcdTUxNWNcdTUxOTVcdTUxZjBcdTUyNmFcdTUyNmZcdTUyZDJcdTUyZDlcdTUyZDhcdTUyZDVcdTUzMTBcdTUzMGZcdTUzMTlcdTUzM2ZcdTUzNDBcdTUzM2VcdTUzYzNcdTY2ZmNcdTU1NDZcdTU1NmFcdTU1NjZcdTU1NDRcdTU1NWVcdTU1NjFcdTU1NDNcdTU1NGFcdTU1MzFcdTU1NTZc''@;'; + put 'put ''dTU1NGZcdTU1NTVcdTU1MmZcdTU1NjRcdTU1MzhcdTU1MmVcdTU1NWNcdTU1MmNcdTU1NjNcdTU1MzNcdTU1NDFcdTU1NTdcdTU3MDhcdTU3MGJcdTU3MDlcdTU3ZGZcdTU4MDVcdTU4MGFcdTU4MDZcdTU3ZTBcdTU3ZTRcdTU3ZmFcdTU4MDJcdTU4MzVcdTU3ZjdcdTU3ZjlcdTU5MjBcdTU5''@;'; + put 'put ''NjJcdTVhMzZcdTVhNDFcdTVhNDlcdTVhNjZcdTVhNmFcdTVhNDBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc2XVtFXV09NDUwNTYrRSxMWzQ1MDU2K0VdPUJbMTc2XVtFXSk7Zm9yKEJb''@;'; + put 'put ''MTc3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YTNjXHU1YTYyXHU1YTVhXHU1YTQ2XHU1YTRhXHU1YjcwXHU1YmM3XHU1YmM1XHU1YmM0XHU1YmMyXHU1YmJmXHU1YmM2XHU1YzA5XHU1YzA4XHU1YzA3XHU1YzYwXHU1YzVjXHU1''@;'; + put 'put ''YzVkXHU1ZDA3XHU1ZDA2XHU1ZDBlXHU1ZDFiXHU1ZDE2XHU1ZDIyXHU1ZDExXHU1ZDI5XHU1ZDE0XHU1ZDE5XHU1ZDI0XHU1ZDI3XHU1ZDE3XHU1ZGUyXHU1ZTM4XHU1ZTM2XHU1ZTMzXHU1ZTM3XHU1ZWI3XHU1ZWI4XHU1ZWI2XHU1ZWI1XHU1ZWJlXHU1ZjM1XHU1ZjM3XHU1ZjU3XHU1ZjZj''@;'; + put 'put ''XHU1ZjY5XHU1ZjZiXHU1Zjk3XHU1Zjk5XHU1ZjllXHU1Zjk4XHU1ZmExXHU1ZmEwXHU1ZjljXHU2MDdmXHU2MGEzXHU2MDg5XHU2MGEwXHU2MGE4XHU2MGNiXHU2MGI0XHU2MGU2XHU2MGJkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MGM1XHU2MGJiXHU2MGI1''@;'; + put 'put ''XHU2MGRjXHU2MGJjXHU2MGQ4XHU2MGQ1XHU2MGM2XHU2MGRmXHU2MGI4XHU2MGRhXHU2MGM3XHU2MjFhXHU2MjFiXHU2MjQ4XHU2M2EwXHU2M2E3XHU2MzcyXHU2Mzk2XHU2M2EyXHU2M2E1XHU2Mzc3XHU2MzY3XHU2Mzk4XHU2M2FhXHU2MzcxXHU2M2E5XHU2Mzg5XHU2MzgzXHU2MzliXHU2''@;'; + put 'put ''MzZiXHU2M2E4XHU2Mzg0XHU2Mzg4XHU2Mzk5XHU2M2ExXHU2M2FjXHU2MzkyXHU2MzhmXHU2MzgwXHU2MzdiXHU2MzY5XHU2MzY4XHU2MzdhXHU2NTVkXHU2NTU2XHU2NTUxXHU2NTU5XHU2NTU3XHU1NTVmXHU2NTRmXHU2NTU4XHU2NTU1XHU2NTU0XHU2NTljXHU2NTliXHU2NWFjXHU2NWNm''@;'; + put 'put ''XHU2NWNiXHU2NWNjXHU2NWNlXHU2NjVkXHU2NjVhXHU2NjY0XHU2NjY4XHU2NjY2XHU2NjVlXHU2NmY5XHU1MmQ3XHU2NzFiXHU2ODgxXHU2OGFmXHU2OGEyXHU2ODkzXHU2OGI1XHU2ODdmXHU2ODc2XHU2OGIxXHU2OGE3XHU2ODk3XHU2OGIwXHU2ODgzXHU2OGM0XHU2OGFkXHU2ODg2XHU2''@;'; + put 'put ''ODg1XHU2ODk0XHU2ODlkXHU2OGE4XHU2ODlmXHU2OGExXHU2ODgyXHU2YjMyXHU2YmJhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3N11bRV1dPTQ1MzEyK0UsTFs0NTMxMitFXT1CWzE3''@;'; + put 'put ''N11bRV0pO2ZvcihCWzE3OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmJlYlx1NmJlY1x1NmMyYlx1NmQ4ZVx1NmRiY1x1NmRmM1x1NmRkOVx1NmRiMlx1NmRlMVx1NmRjY1x1NmRlNFx1NmRmYlx1NmRmYVx1NmUwNVx1NmRjN1x1''@;'; + put 'put ''NmRjYlx1NmRhZlx1NmRkMVx1NmRhZVx1NmRkZVx1NmRmOVx1NmRiOFx1NmRmN1x1NmRmNVx1NmRjNVx1NmRkMlx1NmUxYVx1NmRiNVx1NmRkYVx1NmRlYlx1NmRkOFx1NmRlYVx1NmRmMVx1NmRlZVx1NmRlOFx1NmRjNlx1NmRjNFx1NmRhYVx1NmRlY1x1NmRiZlx1NmRlNlx1NzBmOVx1NzEw''@;'; + put 'put ''OVx1NzEwYVx1NzBmZFx1NzBlZlx1NzIzZFx1NzI3ZFx1NzI4MVx1NzMxY1x1NzMxYlx1NzMxNlx1NzMxM1x1NzMxOVx1NzM4N1x1NzQwNVx1NzQwYVx1NzQwM1x1NzQwNlx1NzNmZVx1NzQwZFx1NzRlMFx1NzRmNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzRm''@;'; + put 'put ''N1x1NzUxY1x1NzUyMlx1NzU2NVx1NzU2Nlx1NzU2Mlx1NzU3MFx1NzU4Zlx1NzVkNFx1NzVkNVx1NzViNVx1NzVjYVx1NzVjZFx1NzY4ZVx1NzZkNFx1NzZkMlx1NzZkYlx1NzczN1x1NzczZVx1NzczY1x1NzczNlx1NzczOFx1NzczYVx1Nzg2Ylx1Nzg0M1x1Nzg0ZVx1Nzk2NVx1Nzk2OFx1''@;'; + put 'put ''Nzk2ZFx1NzlmYlx1N2E5Mlx1N2E5NVx1N2IyMFx1N2IyOFx1N2IxYlx1N2IyY1x1N2IyNlx1N2IxOVx1N2IxZVx1N2IyZVx1N2M5Mlx1N2M5N1x1N2M5NVx1N2Q0Nlx1N2Q0M1x1N2Q3MVx1N2QyZVx1N2QzOVx1N2QzY1x1N2Q0MFx1N2QzMFx1N2QzM1x1N2Q0NFx1N2QyZlx1N2Q0Mlx1N2Qz''@;'; + put 'put ''Mlx1N2QzMVx1N2YzZFx1N2Y5ZVx1N2Y5YVx1N2ZjY1x1N2ZjZVx1N2ZkMlx1ODAxY1x1ODA0YVx1ODA0Nlx1ODEyZlx1ODExNlx1ODEyM1x1ODEyYlx1ODEyOVx1ODEzMFx1ODEyNFx1ODIwMlx1ODIzNVx1ODIzN1x1ODIzNlx1ODIzOVx1ODM4ZVx1ODM5ZVx1ODM5OFx1ODM3OFx1ODNhMlx1''@;'; + put 'put ''ODM5Nlx1ODNiZFx1ODNhYlx1ODM5Mlx1ODM4YVx1ODM5M1x1ODM4OVx1ODNhMFx1ODM3N1x1ODM3Ylx1ODM3Y1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzhdW0VdXT00NTU2OCtFLExb''@;'; + put 'put ''NDU1NjgrRV09QlsxNzhdW0VdKTtmb3IoQlsxNzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgzODZcdTgzYTdcdTg2NTVcdTVmNmFcdTg2YzdcdTg2YzBcdTg2YjZcdTg2YzRcdTg2YjVcdTg2YzZcdTg2Y2JcdTg2YjFcdTg2YWZc''@;'; + put 'put ''dTg2YzlcdTg4NTNcdTg4OWVcdTg4ODhcdTg4YWJcdTg4OTJcdTg4OTZcdTg4OGRcdTg4OGJcdTg5OTNcdTg5OGZcdThhMmFcdThhMWRcdThhMjNcdThhMjVcdThhMzFcdThhMmRcdThhMWZcdThhMWJcdThhMjJcdThjNDlcdThjNWFcdThjYTlcdThjYWNcdThjYWJcdThjYThcdThjYWFcdThj''@;'; + put 'put ''YTdcdThkNjdcdThkNjZcdThkYmVcdThkYmFcdThlZGJcdThlZGZcdTkwMTlcdTkwMGRcdTkwMWFcdTkwMTdcdTkwMjNcdTkwMWZcdTkwMWRcdTkwMTBcdTkwMTVcdTkwMWVcdTkwMjBcdTkwMGZcdTkwMjJcdTkwMTZcdTkwMWJcdTkwMTRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdTkwZThcdTkwZWRcdTkwZmRcdTkxNTdcdTkxY2VcdTkxZjVcdTkxZTZcdTkxZTNcdTkxZTdcdTkxZWRcdTkxZTlcdTk1ODlcdTk2NmFcdTk2NzVcdTk2NzNcdTk2NzhcdTk2NzBcdTk2NzRcdTk2NzZcdTk2NzdcdTk2NmNcdTk2YzBcdTk2ZWFcdTk2ZTlcdTdhZTBcdTdhZGZc''@;'; + put 'put ''dTk4MDJcdTk4MDNcdTliNWFcdTljZTVcdTllNzVcdTllN2ZcdTllYTVcdTllYmJcdTUwYTJcdTUwOGRcdTUwODVcdTUwOTlcdTUwOTFcdTUwODBcdTUwOTZcdTUwOThcdTUwOWFcdTY3MDBcdTUxZjFcdTUyNzJcdTUyNzRcdTUyNzVcdTUyNjlcdTUyZGVcdTUyZGRcdTUyZGJcdTUzNWFcdTUz''@;'; + put 'put ''YTVcdTU1N2JcdTU1ODBcdTU1YTdcdTU1N2NcdTU1OGFcdTU1OWRcdTU1OThcdTU1ODJcdTU1OWNcdTU1YWFcdTU1OTRcdTU1ODdcdTU1OGJcdTU1ODNcdTU1YjNcdTU1YWVcdTU1OWZcdTU1M2VcdTU1YjJcdTU1OWFcdTU1YmJcdTU1YWNcdTU1YjFcdTU1N2VcdTU1ODlcdTU1YWJcdTU1OTlc''@;'; + put 'put ''dTU3MGRcdTU4MmZcdTU4MmFcdTU4MzRcdTU4MjRcdTU4MzBcdTU4MzFcdTU4MjFcdTU4MWRcdTU4MjBcdTU4ZjlcdTU4ZmFcdTU5NjBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc5XVtF''@;'; + put 'put ''XV09NDU4MjQrRSxMWzQ1ODI0K0VdPUJbMTc5XVtFXSk7Zm9yKEJbMTgwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YTc3XHU1YTlhXHU1YTdmXHU1YTkyXHU1YTliXHU1YWE3XHU1YjczXHU1YjcxXHU1YmQyXHU1YmNjXHU1YmQz''@;'; + put 'put ''XHU1YmQwXHU1YzBhXHU1YzBiXHU1YzMxXHU1ZDRjXHU1ZDUwXHU1ZDM0XHU1ZDQ3XHU1ZGZkXHU1ZTQ1XHU1ZTNkXHU1ZTQwXHU1ZTQzXHU1ZTdlXHU1ZWNhXHU1ZWMxXHU1ZWMyXHU1ZWM0XHU1ZjNjXHU1ZjZkXHU1ZmE5XHU1ZmFhXHU1ZmE4XHU2MGQxXHU2MGUxXHU2MGIyXHU2MGI2XHU2''@;'; + put 'put ''MGUwXHU2MTFjXHU2MTIzXHU2MGZhXHU2MTE1XHU2MGYwXHU2MGZiXHU2MGY0XHU2MTY4XHU2MGYxXHU2MTBlXHU2MGY2XHU2MTA5XHU2MTAwXHU2MTEyXHU2MjFmXHU2MjQ5XHU2M2EzXHU2MzhjXHU2M2NmXHU2M2MwXHU2M2U5XHU2M2M5XHU2M2M2XHU2M2NkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2M2QyXHU2M2UzXHU2M2QwXHU2M2UxXHU2M2Q2XHU2M2VkXHU2M2VlXHU2Mzc2XHU2M2Y0XHU2M2VhXHU2M2RiXHU2NDUyXHU2M2RhXHU2M2Y5XHU2NTVlXHU2NTY2XHU2NTYyXHU2NTYzXHU2NTkxXHU2NTkwXHU2NWFmXHU2NjZlXHU2NjcwXHU2Njc0''@;'; + put 'put ''XHU2Njc2XHU2NjZmXHU2NjkxXHU2NjdhXHU2NjdlXHU2Njc3XHU2NmZlXHU2NmZmXHU2NzFmXHU2NzFkXHU2OGZhXHU2OGQ1XHU2OGUwXHU2OGQ4XHU2OGQ3XHU2OTA1XHU2OGRmXHU2OGY1XHU2OGVlXHU2OGU3XHU2OGY5XHU2OGQyXHU2OGYyXHU2OGUzXHU2OGNiXHU2OGNkXHU2OTBkXHU2''@;'; + put 'put ''OTEyXHU2OTBlXHU2OGM5XHU2OGRhXHU2OTZlXHU2OGZiXHU2YjNlXHU2YjNhXHU2YjNkXHU2Yjk4XHU2Yjk2XHU2YmJjXHU2YmVmXHU2YzJlXHU2YzJmXHU2YzJjXHU2ZTJmXHU2ZTM4XHU2ZTU0XHU2ZTIxXHU2ZTMyXHU2ZTY3XHU2ZTRhXHU2ZTIwXHU2ZTI1XHU2ZTIzXHU2ZTFiXHU2ZTVi''@;'; + put 'put ''XHU2ZTU4XHU2ZTI0XHU2ZTU2XHU2ZTZlXHU2ZTJkXHU2ZTI2XHU2ZTZmXHU2ZTM0XHU2ZTRkXHU2ZTNhXHU2ZTJjXHU2ZTQzXHU2ZTFkXHU2ZTNlXHU2ZWNiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODBdW0VdLmNoYXJDb2RlQXQoMCkm''@;'; + put 'put ''JihtZVtCWzE4MF1bRV1dPTQ2MDgwK0UsTFs0NjA4MCtFXT1CWzE4MF1bRV0pO2ZvcihCWzE4MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmU4OVx1NmUxOVx1NmU0ZVx1NmU2M1x1NmU0NFx1NmU3Mlx1NmU2OVx1NmU1Zlx1NzEx''@;'; + put 'put ''OVx1NzExYVx1NzEyNlx1NzEzMFx1NzEyMVx1NzEzNlx1NzE2ZVx1NzExY1x1NzI0Y1x1NzI4NFx1NzI4MFx1NzMzNlx1NzMyNVx1NzMzNFx1NzMyOVx1NzQzYVx1NzQyYVx1NzQzM1x1NzQyMlx1NzQyNVx1NzQzNVx1NzQzNlx1NzQzNFx1NzQyZlx1NzQxYlx1NzQyNlx1NzQyOFx1NzUyNVx1''@;'; + put 'put ''NzUyNlx1NzU2Ylx1NzU2YVx1NzVlMlx1NzVkYlx1NzVlM1x1NzVkOVx1NzVkOFx1NzVkZVx1NzVlMFx1NzY3Ylx1NzY3Y1x1NzY5Nlx1NzY5M1x1NzZiNFx1NzZkY1x1Nzc0Zlx1NzdlZFx1Nzg1ZFx1Nzg2Y1x1Nzg2Zlx1N2EwZFx1N2EwOFx1N2EwYlx1N2EwNVx1N2EwMFx1N2E5OFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2E5N1x1N2E5Nlx1N2FlNVx1N2FlM1x1N2I0OVx1N2I1Nlx1N2I0Nlx1N2I1MFx1N2I1Mlx1N2I1NFx1N2I0ZFx1N2I0Ylx1N2I0Zlx1N2I1MVx1N2M5Zlx1N2NhNVx1N2Q1ZVx1N2Q1MFx1N2Q2OFx1N2Q1NVx1N2QyYlx1N2Q2''@;'; + put 'put ''ZVx1N2Q3Mlx1N2Q2MVx1N2Q2Nlx1N2Q2Mlx1N2Q3MFx1N2Q3M1x1NTU4NFx1N2ZkNFx1N2ZkNVx1ODAwYlx1ODA1Mlx1ODA4NVx1ODE1NVx1ODE1NFx1ODE0Ylx1ODE1MVx1ODE0ZVx1ODEzOVx1ODE0Nlx1ODEzZVx1ODE0Y1x1ODE1M1x1ODE3NFx1ODIxMlx1ODIxY1x1ODNlOVx1ODQwM1x1''@;'; + put 'put ''ODNmOFx1ODQwZFx1ODNlMFx1ODNjNVx1ODQwYlx1ODNjMVx1ODNlZlx1ODNmMVx1ODNmNFx1ODQ1N1x1ODQwYVx1ODNmMFx1ODQwY1x1ODNjY1x1ODNmZFx1ODNmMlx1ODNjYVx1ODQzOFx1ODQwZVx1ODQwNFx1ODNkY1x1ODQwN1x1ODNkNFx1ODNkZlx1ODY1Ylx1ODZkZlx1ODZkOVx1ODZl''@;'; + put 'put ''ZFx1ODZkNFx1ODZkYlx1ODZlNFx1ODZkMFx1ODZkZVx1ODg1N1x1ODhjMVx1ODhjMlx1ODhiMVx1ODk4M1x1ODk5Nlx1OGEzYlx1OGE2MFx1OGE1NVx1OGE1ZVx1OGEzY1x1OGE0MVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgxXVtFXS5j''@;'; + put 'put ''aGFyQ29kZUF0KDApJiYobWVbQlsxODFdW0VdXT00NjMzNitFLExbNDYzMzYrRV09QlsxODFdW0VdKTtmb3IoQlsxODJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThhNTRcdThhNWJcdThhNTBcdThhNDZcdThhMzRcdThhM2FcdThh''@;'; + put 'put ''MzZcdThhNTZcdThjNjFcdThjODJcdThjYWZcdThjYmNcdThjYjNcdThjYmRcdThjYzFcdThjYmJcdThjYzBcdThjYjRcdThjYjdcdThjYjZcdThjYmZcdThjYjhcdThkOGFcdThkODVcdThkODFcdThkY2VcdThkZGRcdThkY2JcdThkZGFcdThkZDFcdThkY2NcdThkZGJcdThkYzZcdThlZmJc''@;'; + put 'put ''dThlZjhcdThlZmNcdThmOWNcdTkwMmVcdTkwMzVcdTkwMzFcdTkwMzhcdTkwMzJcdTkwMzZcdTkxMDJcdTkwZjVcdTkxMDlcdTkwZmVcdTkxNjNcdTkxNjVcdTkxY2ZcdTkyMTRcdTkyMTVcdTkyMjNcdTkyMDlcdTkyMWVcdTkyMGRcdTkyMTBcdTkyMDdcdTkyMTFcdTk1OTRcdTk1OGZcdTk1''@;'; + put 'put ''OGJcdTk1OTFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk1OTNcdTk1OTJcdTk1OGVcdTk2OGFcdTk2OGVcdTk2OGJcdTk2N2RcdTk2ODVcdTk2ODZcdTk2OGRcdTk2NzJcdTk2ODRcdTk2YzFcdTk2YzVcdTk2YzRcdTk2YzZcdTk2YzdcdTk2ZWZcdTk2ZjJcdTk3''@;'; + put 'put ''Y2NcdTk4MDVcdTk4MDZcdTk4MDhcdTk4ZTdcdTk4ZWFcdTk4ZWZcdTk4ZTlcdTk4ZjJcdTk4ZWRcdTk5YWVcdTk5YWRcdTllYzNcdTllY2RcdTllZDFcdTRlODJcdTUwYWRcdTUwYjVcdTUwYjJcdTUwYjNcdTUwYzVcdTUwYmVcdTUwYWNcdTUwYjdcdTUwYmJcdTUwYWZcdTUwYzdcdTUyN2Zc''@;'; + put 'put ''dTUyNzdcdTUyN2RcdTUyZGZcdTUyZTZcdTUyZTRcdTUyZTJcdTUyZTNcdTUzMmZcdTU1ZGZcdTU1ZThcdTU1ZDNcdTU1ZTZcdTU1Y2VcdTU1ZGNcdTU1YzdcdTU1ZDFcdTU1ZTNcdTU1ZTRcdTU1ZWZcdTU1ZGFcdTU1ZTFcdTU1YzVcdTU1YzZcdTU1ZTVcdTU1YzlcdTU3MTJcdTU3MTNcdTU4''@;'; + put 'put ''NWVcdTU4NTFcdTU4NThcdTU4NTdcdTU4NWFcdTU4NTRcdTU4NmJcdTU4NGNcdTU4NmRcdTU4NGFcdTU4NjJcdTU4NTJcdTU4NGJcdTU5NjdcdTVhYzFcdTVhYzlcdTVhY2NcdTVhYmVcdTVhYmRcdTVhYmNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODJdLmxlbmd0aDsrK0UpNjU1MzMh''@;'; + put 'put ''PT1CWzE4Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgyXVtFXV09NDY1OTIrRSxMWzQ2NTkyK0VdPUJbMTgyXVtFXSk7Zm9yKEJbMTgzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YWIzXHU1YWMyXHU1YWIyXHU1ZDY5XHU1''@;'; + put 'put ''ZDZmXHU1ZTRjXHU1ZTc5XHU1ZWM5XHU1ZWM4XHU1ZjEyXHU1ZjU5XHU1ZmFjXHU1ZmFlXHU2MTFhXHU2MTBmXHU2MTQ4XHU2MTFmXHU2MGYzXHU2MTFiXHU2MGY5XHU2MTAxXHU2MTA4XHU2MTRlXHU2MTRjXHU2MTQ0XHU2MTRkXHU2MTNlXHU2MTM0XHU2MTI3XHU2MTBkXHU2MTA2XHU2MTM3''@;'; + put 'put ''XHU2MjIxXHU2MjIyXHU2NDEzXHU2NDNlXHU2NDFlXHU2NDJhXHU2NDJkXHU2NDNkXHU2NDJjXHU2NDBmXHU2NDFjXHU2NDE0XHU2NDBkXHU2NDM2XHU2NDE2XHU2NDE3XHU2NDA2XHU2NTZjXHU2NTlmXHU2NWIwXHU2Njk3XHU2Njg5XHU2Njg3XHU2Njg4XHU2Njk2XHU2Njg0XHU2Njk4XHU2''@;'; + put 'put ''NjhkXHU2NzAzXHU2OTk0XHU2OTZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OTVhXHU2OTc3XHU2OTYwXHU2OTU0XHU2OTc1XHU2OTMwXHU2OTgyXHU2OTRhXHU2OTY4XHU2OTZiXHU2OTVlXHU2OTUzXHU2OTc5XHU2OTg2XHU2OTVkXHU2OTYzXHU2OTViXHU2''@;'; + put 'put ''YjQ3XHU2YjcyXHU2YmMwXHU2YmJmXHU2YmQzXHU2YmZkXHU2ZWEyXHU2ZWFmXHU2ZWQzXHU2ZWI2XHU2ZWMyXHU2ZTkwXHU2ZTlkXHU2ZWM3XHU2ZWM1XHU2ZWE1XHU2ZTk4XHU2ZWJjXHU2ZWJhXHU2ZWFiXHU2ZWQxXHU2ZTk2XHU2ZTljXHU2ZWM0XHU2ZWQ0XHU2ZWFhXHU2ZWE3XHU2ZWI0''@;'; + put 'put ''XHU3MTRlXHU3MTU5XHU3MTY5XHU3MTY0XHU3MTQ5XHU3MTY3XHU3MTVjXHU3MTZjXHU3MTY2XHU3MTRjXHU3MTY1XHU3MTVlXHU3MTQ2XHU3MTY4XHU3MTU2XHU3MjNhXHU3MjUyXHU3MzM3XHU3MzQ1XHU3MzNmXHU3MzNlXHU3NDZmXHU3NDVhXHU3NDU1XHU3NDVmXHU3NDVlXHU3NDQxXHU3''@;'; + put 'put ''NDNmXHU3NDU5XHU3NDViXHU3NDVjXHU3NTc2XHU3NTc4XHU3NjAwXHU3NWYwXHU3NjAxXHU3NWYyXHU3NWYxXHU3NWZhXHU3NWZmXHU3NWY0XHU3NWYzXHU3NmRlXHU3NmRmXHU3NzViXHU3NzZiXHU3NzY2XHU3NzVlXHU3NzYzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgzXS5sZW5n''@;'; + put 'put ''dGg7KytFKTY1NTMzIT09QlsxODNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4M11bRV1dPTQ2ODQ4K0UsTFs0Njg0OCtFXT1CWzE4M11bRV0pO2ZvcihCWzE4NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Nzc3OVx1Nzc2YVx1''@;'; + put 'put ''Nzc2Y1x1Nzc1Y1x1Nzc2NVx1Nzc2OFx1Nzc2Mlx1NzdlZVx1Nzg4ZVx1NzhiMFx1Nzg5N1x1Nzg5OFx1Nzg4Y1x1Nzg4OVx1Nzg3Y1x1Nzg5MVx1Nzg5M1x1Nzg3Zlx1Nzk3YVx1Nzk3Zlx1Nzk4MVx1ODQyY1x1NzliZFx1N2ExY1x1N2ExYVx1N2EyMFx1N2ExNFx1N2ExZlx1N2ExZVx1N2E5''@;'; + put 'put ''Zlx1N2FhMFx1N2I3N1x1N2JjMFx1N2I2MFx1N2I2ZVx1N2I2N1x1N2NiMVx1N2NiM1x1N2NiNVx1N2Q5M1x1N2Q3OVx1N2Q5MVx1N2Q4MVx1N2Q4Zlx1N2Q1Ylx1N2Y2ZVx1N2Y2OVx1N2Y2YVx1N2Y3Mlx1N2ZhOVx1N2ZhOFx1N2ZhNFx1ODA1Nlx1ODA1OFx1ODA4Nlx1ODA4NFx1ODE3MVx1''@;'; + put 'put ''ODE3MFx1ODE3OFx1ODE2NVx1ODE2ZVx1ODE3M1x1ODE2Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODE3OVx1ODE3YVx1ODE2Nlx1ODIwNVx1ODI0N1x1ODQ4Mlx1ODQ3N1x1ODQzZFx1ODQzMVx1ODQ3NVx1ODQ2Nlx1ODQ2Ylx1ODQ0OVx1ODQ2Y1x1ODQ1Ylx1''@;'; + put 'put ''ODQzY1x1ODQzNVx1ODQ2MVx1ODQ2M1x1ODQ2OVx1ODQ2ZFx1ODQ0Nlx1ODY1ZVx1ODY1Y1x1ODY1Zlx1ODZmOVx1ODcxM1x1ODcwOFx1ODcwN1x1ODcwMFx1ODZmZVx1ODZmYlx1ODcwMlx1ODcwM1x1ODcwNlx1ODcwYVx1ODg1OVx1ODhkZlx1ODhkNFx1ODhkOVx1ODhkY1x1ODhkOFx1ODhk''@;'; + put 'put ''ZFx1ODhlMVx1ODhjYVx1ODhkNVx1ODhkMlx1ODk5Y1x1ODllM1x1OGE2Ylx1OGE3Mlx1OGE3M1x1OGE2Nlx1OGE2OVx1OGE3MFx1OGE4N1x1OGE3Y1x1OGE2M1x1OGFhMFx1OGE3MVx1OGE4NVx1OGE2ZFx1OGE2Mlx1OGE2ZVx1OGE2Y1x1OGE3OVx1OGE3Ylx1OGEzZVx1OGE2OFx1OGM2Mlx1''@;'; + put 'put ''OGM4YVx1OGM4OVx1OGNjYVx1OGNjN1x1OGNjOFx1OGNjNFx1OGNiMlx1OGNjM1x1OGNjMlx1OGNjNVx1OGRlMVx1OGRkZlx1OGRlOFx1OGRlZlx1OGRmM1x1OGRmYVx1OGRlYVx1OGRlNFx1OGRlNlx1OGViMlx1OGYwM1x1OGYwOVx1OGVmZVx1OGYwYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtF''@;'; + put 'put ''IT1CWzE4NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODRdW0VdXT00NzEwNCtFLExbNDcxMDQrRV09QlsxODRdW0VdKTtmb3IoQlsxODVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dThmOWZcdThmYjJcdTkwNGJcdTkwNGFcdTkwNTNcdTkwNDJcdTkwNTRcdTkwM2NcdTkwNTVcdTkwNTBcdTkwNDdcdTkwNGZcdTkwNGVcdTkwNGRcdTkwNTFcdTkwM2VcdTkwNDFcdTkxMTJcdTkxMTdcdTkxNmNcdTkxNmFcdTkxNjlcdTkxYzlcdTkyMzdcdTkyNTdcdTkyMzhcdTkyM2RcdTky''@;'; + put 'put ''NDBcdTkyM2VcdTkyNWJcdTkyNGJcdTkyNjRcdTkyNTFcdTkyMzRcdTkyNDlcdTkyNGRcdTkyNDVcdTkyMzlcdTkyM2ZcdTkyNWFcdTk1OThcdTk2OThcdTk2OTRcdTk2OTVcdTk2Y2RcdTk2Y2JcdTk2YzlcdTk2Y2FcdTk2ZjdcdTk2ZmJcdTk2ZjlcdTk2ZjZcdTk3NTZcdTk3NzRcdTk3NzZc''@;'; + put 'put ''dTk4MTBcdTk4MTFcdTk4MTNcdTk4MGFcdTk4MTJcdTk4MGNcdTk4ZmNcdTk4ZjRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk4ZmRcdTk4ZmVcdTk5YjNcdTk5YjFcdTk5YjRcdTlhZTFcdTljZTlcdTllODJcdTlmMGVcdTlmMTNcdTlmMjBcdTUwZTdcdTUwZWVc''@;'; + put 'put ''dTUwZTVcdTUwZDZcdTUwZWRcdTUwZGFcdTUwZDVcdTUwY2ZcdTUwZDFcdTUwZjFcdTUwY2VcdTUwZTlcdTUxNjJcdTUxZjNcdTUyODNcdTUyODJcdTUzMzFcdTUzYWRcdTU1ZmVcdTU2MDBcdTU2MWJcdTU2MTdcdTU1ZmRcdTU2MTRcdTU2MDZcdTU2MDlcdTU2MGRcdTU2MGVcdTU1ZjdcdTU2''@;'; + put 'put ''MTZcdTU2MWZcdTU2MDhcdTU2MTBcdTU1ZjZcdTU3MThcdTU3MTZcdTU4NzVcdTU4N2VcdTU4ODNcdTU4OTNcdTU4OGFcdTU4NzlcdTU4ODVcdTU4N2RcdTU4ZmRcdTU5MjVcdTU5MjJcdTU5MjRcdTU5NmFcdTU5NjlcdTVhZTFcdTVhZTZcdTVhZTlcdTVhZDdcdTVhZDZcdTVhZDhcdTVhZTNc''@;'; + put 'put ''dTViNzVcdTViZGVcdTViZTdcdTViZTFcdTViZTVcdTViZTZcdTViZThcdTViZTJcdTViZTRcdTViZGZcdTVjMGRcdTVjNjJcdTVkODRcdTVkODdcdTVlNWJcdTVlNjNcdTVlNTVcdTVlNTdcdTVlNTRcdTVlZDNcdTVlZDZcdTVmMGFcdTVmNDZcdTVmNzBcdTVmYjlcdTYxNDdcdWZmZmQiLnNw''@;'; + put 'put ''bGl0KCIiKSxFPTA7RSE9QlsxODVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg1XVtFXV09NDczNjArRSxMWzQ3MzYwK0VdPUJbMTg1XVtFXSk7Zm9yKEJbMTg2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHU2MTNmXHU2MTRiXHU2MTc3XHU2MTYyXHU2MTYzXHU2MTVmXHU2MTVhXHU2MTU4XHU2MTc1XHU2MjJhXHU2NDg3XHU2NDU4XHU2NDU0XHU2NGE0XHU2NDc4XHU2NDVmXHU2NDdhXHU2NDUxXHU2NDY3XHU2NDM0XHU2NDZkXHU2NDdiXHU2NTcyXHU2NWExXHU2NWQ3XHU2''@;'; + put 'put ''NWQ2XHU2NmEyXHU2NmE4XHU2NjlkXHU2OTljXHU2OWE4XHU2OTk1XHU2OWMxXHU2OWFlXHU2OWQzXHU2OWNiXHU2OTliXHU2OWI3XHU2OWJiXHU2OWFiXHU2OWI0XHU2OWQwXHU2OWNkXHU2OWFkXHU2OWNjXHU2OWE2XHU2OWMzXHU2OWEzXHU2YjQ5XHU2YjRjXHU2YzMzXHU2ZjMzXHU2ZjE0''@;'; + put 'put ''XHU2ZWZlXHU2ZjEzXHU2ZWY0XHU2ZjI5XHU2ZjNlXHU2ZjIwXHU2ZjJjXHU2ZjBmXHU2ZjAyXHU2ZjIyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZWZmXHU2ZWVmXHU2ZjA2XHU2ZjMxXHU2ZjM4XHU2ZjMyXHU2ZjIzXHU2ZjE1XHU2ZjJiXHU2ZjJmXHU2Zjg4''@;'; + put 'put ''XHU2ZjJhXHU2ZWVjXHU2ZjAxXHU2ZWYyXHU2ZWNjXHU2ZWY3XHU3MTk0XHU3MTk5XHU3MTdkXHU3MThhXHU3MTg0XHU3MTkyXHU3MjNlXHU3MjkyXHU3Mjk2XHU3MzQ0XHU3MzUwXHU3NDY0XHU3NDYzXHU3NDZhXHU3NDcwXHU3NDZkXHU3NTA0XHU3NTkxXHU3NjI3XHU3NjBkXHU3NjBiXHU3''@;'; + put 'put ''NjA5XHU3NjEzXHU3NmUxXHU3NmUzXHU3Nzg0XHU3NzdkXHU3NzdmXHU3NzYxXHU3OGMxXHU3ODlmXHU3OGE3XHU3OGIzXHU3OGE5XHU3OGEzXHU3OThlXHU3OThmXHU3OThkXHU3YTJlXHU3YTMxXHU3YWFhXHU3YWE5XHU3YWVkXHU3YWVmXHU3YmExXHU3Yjk1XHU3YjhiXHU3Yjc1XHU3Yjk3''@;'; + put 'put ''XHU3YjlkXHU3Yjk0XHU3YjhmXHU3YmI4XHU3Yjg3XHU3Yjg0XHU3Y2I5XHU3Y2JkXHU3Y2JlXHU3ZGJiXHU3ZGIwXHU3ZDljXHU3ZGJkXHU3ZGJlXHU3ZGEwXHU3ZGNhXHU3ZGI0XHU3ZGIyXHU3ZGIxXHU3ZGJhXHU3ZGEyXHU3ZGJmXHU3ZGI1XHU3ZGI4XHU3ZGFkXHU3ZGQyXHU3ZGM3XHU3''@;'; + put 'put ''ZGFjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4Nl1bRV1dPTQ3NjE2K0UsTFs0NzYxNitFXT1CWzE4Nl1bRV0pO2ZvcihCWzE4N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2Y3MFx1N2ZlMFx1N2ZlMVx1N2ZkZlx1ODA1ZVx1ODA1YVx1ODA4N1x1ODE1MFx1ODE4MFx1ODE4Zlx1ODE4OFx1ODE4YVx1ODE3Zlx1ODE4Mlx1ODFlN1x1ODFmYVx1ODIwN1x1ODIxNFx1ODIxZVx1ODI0Ylx1ODRjOVx1ODRiZlx1ODRjNlx1''@;'; + put 'put ''ODRjNFx1ODQ5OVx1ODQ5ZVx1ODRiMlx1ODQ5Y1x1ODRjYlx1ODRiOFx1ODRjMFx1ODRkM1x1ODQ5MFx1ODRiY1x1ODRkMVx1ODRjYVx1ODczZlx1ODcxY1x1ODczYlx1ODcyMlx1ODcyNVx1ODczNFx1ODcxOFx1ODc1NVx1ODczN1x1ODcyOVx1ODhmM1x1ODkwMlx1ODhmNFx1ODhmOVx1ODhm''@;'; + put 'put ''OFx1ODhmZFx1ODhlOFx1ODkxYVx1ODhlZlx1OGFhNlx1OGE4Y1x1OGE5ZVx1OGFhM1x1OGE4ZFx1OGFhMVx1OGE5M1x1OGFhNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGFhYVx1OGFhNVx1OGFhOFx1OGE5OFx1OGE5MVx1OGE5YVx1OGFhN1x1OGM2YVx1OGM4''@;'; + put 'put ''ZFx1OGM4Y1x1OGNkM1x1OGNkMVx1OGNkMlx1OGQ2Ylx1OGQ5OVx1OGQ5NVx1OGRmY1x1OGYxNFx1OGYxMlx1OGYxNVx1OGYxM1x1OGZhM1x1OTA2MFx1OTA1OFx1OTA1Y1x1OTA2M1x1OTA1OVx1OTA1ZVx1OTA2Mlx1OTA1ZFx1OTA1Ylx1OTExOVx1OTExOFx1OTExZVx1OTE3NVx1OTE3OFx1''@;'; + put 'put ''OTE3N1x1OTE3NFx1OTI3OFx1OTI4MFx1OTI4NVx1OTI5OFx1OTI5Nlx1OTI3Ylx1OTI5M1x1OTI5Y1x1OTJhOFx1OTI3Y1x1OTI5MVx1OTVhMVx1OTVhOFx1OTVhOVx1OTVhM1x1OTVhNVx1OTVhNFx1OTY5OVx1OTY5Y1x1OTY5Ylx1OTZjY1x1OTZkMlx1OTcwMFx1OTc3Y1x1OTc4NVx1OTdm''@;'; + put 'put ''Nlx1OTgxN1x1OTgxOFx1OThhZlx1OThiMVx1OTkwM1x1OTkwNVx1OTkwY1x1OTkwOVx1OTljMVx1OWFhZlx1OWFiMFx1OWFlNlx1OWI0MVx1OWI0Mlx1OWNmNFx1OWNmNlx1OWNmM1x1OWViY1x1OWYzYlx1OWY0YVx1NTEwNFx1NTEwMFx1NTBmYlx1NTBmNVx1NTBmOVx1NTEwMlx1NTEwOFx1''@;'; + put 'put ''NTEwOVx1NTEwNVx1NTFkY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODddW0VdXT00Nzg3MitFLExbNDc4NzIrRV09QlsxODddW0VdKTtmb3IoQlsxODhdPSJcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUyODdcdTUyODhcdTUyODlcdTUyOGRcdTUyOGFcdTUyZjBcdTUzYjJcdTU2MmVcdTU2M2JcdTU2MzlcdTU2MzJcdTU2M2ZcdTU2MzRcdTU2MjlcdTU2NTNcdTU2NGVcdTU2NTdcdTU2NzRcdTU2MzZcdTU2MmZcdTU2MzBc''@;'; + put 'put ''dTU4ODBcdTU4OWZcdTU4OWVcdTU4YjNcdTU4OWNcdTU4YWVcdTU4YTlcdTU4YTZcdTU5NmRcdTViMDlcdTVhZmJcdTViMGJcdTVhZjVcdTViMGNcdTViMDhcdTViZWVcdTViZWNcdTViZTlcdTViZWJcdTVjNjRcdTVjNjVcdTVkOWRcdTVkOTRcdTVlNjJcdTVlNWZcdTVlNjFcdTVlZTJcdTVl''@;'; + put 'put ''ZGFcdTVlZGZcdTVlZGRcdTVlZTNcdTVlZTBcdTVmNDhcdTVmNzFcdTVmYjdcdTVmYjVcdTYxNzZcdTYxNjdcdTYxNmVcdTYxNWRcdTYxNTVcdTYxODJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYxN2NcdTYxNzBcdTYxNmJcdTYxN2VcdTYxYTdcdTYxOTBcdTYx''@;'; + put 'put ''YWJcdTYxOGVcdTYxYWNcdTYxOWFcdTYxYTRcdTYxOTRcdTYxYWVcdTYyMmVcdTY0NjlcdTY0NmZcdTY0NzlcdTY0OWVcdTY0YjJcdTY0ODhcdTY0OTBcdTY0YjBcdTY0YTVcdTY0OTNcdTY0OTVcdTY0YTlcdTY0OTJcdTY0YWVcdTY0YWRcdTY0YWJcdTY0OWFcdTY0YWNcdTY0OTlcdTY0YTJc''@;'; + put 'put ''dTY0YjNcdTY1NzVcdTY1NzdcdTY1NzhcdTY2YWVcdTY2YWJcdTY2YjRcdTY2YjFcdTZhMjNcdTZhMWZcdTY5ZThcdTZhMDFcdTZhMWVcdTZhMTlcdTY5ZmRcdTZhMjFcdTZhMTNcdTZhMGFcdTY5ZjNcdTZhMDJcdTZhMDVcdTY5ZWRcdTZhMTFcdTZiNTBcdTZiNGVcdTZiYTRcdTZiYzVcdTZi''@;'; + put 'put ''YzZcdTZmM2ZcdTZmN2NcdTZmODRcdTZmNTFcdTZmNjZcdTZmNTRcdTZmODZcdTZmNmRcdTZmNWJcdTZmNzhcdTZmNmVcdTZmOGVcdTZmN2FcdTZmNzBcdTZmNjRcdTZmOTdcdTZmNThcdTZlZDVcdTZmNmZcdTZmNjBcdTZmNWZcdTcxOWZcdTcxYWNcdTcxYjFcdTcxYThcdTcyNTZcdTcyOWJc''@;'; + put 'put ''dTczNGVcdTczNTdcdTc0NjlcdTc0OGJcdTc0ODNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg4XVtFXV09NDgxMjgrRSxMWzQ4MTI4K0VdPUJbMTg4XVtFXSk7Zm9yKEJbMTg5XT0iXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NDdlXHU3NDgwXHU3NTdmXHU3NjIwXHU3NjI5XHU3NjFmXHU3NjI0XHU3NjI2XHU3NjIxXHU3NjIyXHU3NjlhXHU3NmJhXHU3NmU0XHU3NzhlXHU3Nzg3XHU3NzhjXHU3NzkxXHU3NzhiXHU3OGNi''@;'; + put 'put ''XHU3OGM1XHU3OGJhXHU3OGNhXHU3OGJlXHU3OGQ1XHU3OGJjXHU3OGQwXHU3YTNmXHU3YTNjXHU3YTQwXHU3YTNkXHU3YTM3XHU3YTNiXHU3YWFmXHU3YWFlXHU3YmFkXHU3YmIxXHU3YmM0XHU3YmI0XHU3YmM2XHU3YmM3XHU3YmMxXHU3YmEwXHU3YmNjXHU3Y2NhXHU3ZGUwXHU3ZGY0XHU3''@;'; + put 'put ''ZGVmXHU3ZGZiXHU3ZGQ4XHU3ZGVjXHU3ZGRkXHU3ZGU4XHU3ZGUzXHU3ZGRhXHU3ZGRlXHU3ZGU5XHU3ZDllXHU3ZGQ5XHU3ZGYyXHU3ZGY5XHU3Zjc1XHU3Zjc3XHU3ZmFmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZmU5XHU4MDI2XHU4MTliXHU4MTljXHU4''@;'; + put 'put ''MTlkXHU4MWEwXHU4MTlhXHU4MTk4XHU4NTE3XHU4NTNkXHU4NTFhXHU4NGVlXHU4NTJjXHU4NTJkXHU4NTEzXHU4NTExXHU4NTIzXHU4NTIxXHU4NTE0XHU4NGVjXHU4NTI1XHU4NGZmXHU4NTA2XHU4NzgyXHU4Nzc0XHU4Nzc2XHU4NzYwXHU4NzY2XHU4Nzc4XHU4NzY4XHU4NzU5XHU4NzU3''@;'; + put 'put ''XHU4NzRjXHU4NzUzXHU4ODViXHU4ODVkXHU4OTEwXHU4OTA3XHU4OTEyXHU4OTEzXHU4OTE1XHU4OTBhXHU4YWJjXHU4YWQyXHU4YWM3XHU4YWM0XHU4YTk1XHU4YWNiXHU4YWY4XHU4YWIyXHU4YWM5XHU4YWMyXHU4YWJmXHU4YWIwXHU4YWQ2XHU4YWNkXHU4YWI2XHU4YWI5XHU4YWRiXHU4''@;'; + put 'put ''YzRjXHU4YzRlXHU4YzZjXHU4Y2UwXHU4Y2RlXHU4Y2U2XHU4Y2U0XHU4Y2VjXHU4Y2VkXHU4Y2UyXHU4Y2UzXHU4Y2RjXHU4Y2VhXHU4Y2UxXHU4ZDZkXHU4ZDlmXHU4ZGEzXHU4ZTJiXHU4ZTEwXHU4ZTFkXHU4ZTIyXHU4ZTBmXHU4ZTI5XHU4ZTFmXHU4ZTIxXHU4ZTFlXHU4ZWJhXHU4ZjFk''@;'; + put 'put ''XHU4ZjFiXHU4ZjFmXHU4ZjI5XHU4ZjI2XHU4ZjJhXHU4ZjFjXHU4ZjFlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4OV1bRV1dPTQ4Mzg0K0UsTFs0ODM4NCtFXT1CWzE4OV1bRV0pO2Zv''@;'; + put 'put ''cihCWzE5MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGYyNVx1OTA2OVx1OTA2ZVx1OTA2OFx1OTA2ZFx1OTA3N1x1OTEzMFx1OTEyZFx1OTEyN1x1OTEzMVx1OTE4N1x1OTE4OVx1OTE4Ylx1OTE4M1x1OTJjNVx1OTJiYlx1OTJi''@;'; + put 'put ''N1x1OTJlYVx1OTJhY1x1OTJlNFx1OTJjMVx1OTJiM1x1OTJiY1x1OTJkMlx1OTJjN1x1OTJmMFx1OTJiMlx1OTVhZFx1OTViMVx1OTcwNFx1OTcwNlx1OTcwN1x1OTcwOVx1OTc2MFx1OTc4ZFx1OTc4Ylx1OTc4Zlx1OTgyMVx1OTgyYlx1OTgxY1x1OThiM1x1OTkwYVx1OTkxM1x1OTkxMlx1''@;'; + put 'put ''OTkxOFx1OTlkZFx1OTlkMFx1OTlkZlx1OTlkYlx1OTlkMVx1OTlkNVx1OTlkMlx1OTlkOVx1OWFiN1x1OWFlZVx1OWFlZlx1OWIyN1x1OWI0NVx1OWI0NFx1OWI3N1x1OWI2Zlx1OWQwNlx1OWQwOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWQwM1x1OWVhOVx1''@;'; + put 'put ''OWViZVx1OWVjZVx1NThhOFx1OWY1Mlx1NTExMlx1NTExOFx1NTExNFx1NTExMFx1NTExNVx1NTE4MFx1NTFhYVx1NTFkZFx1NTI5MVx1NTI5M1x1NTJmM1x1NTY1OVx1NTY2Ylx1NTY3OVx1NTY2OVx1NTY2NFx1NTY3OFx1NTY2YVx1NTY2OFx1NTY2NVx1NTY3MVx1NTY2Zlx1NTY2Y1x1NTY2''@;'; + put 'put ''Mlx1NTY3Nlx1NThjMVx1NThiZVx1NThjN1x1NThjNVx1NTk2ZVx1NWIxZFx1NWIzNFx1NWI3OFx1NWJmMFx1NWMwZVx1NWY0YVx1NjFiMlx1NjE5MVx1NjFhOVx1NjE4YVx1NjFjZFx1NjFiNlx1NjFiZVx1NjFjYVx1NjFjOFx1NjIzMFx1NjRjNVx1NjRjMVx1NjRjYlx1NjRiYlx1NjRiY1x1''@;'; + put 'put ''NjRkYVx1NjRjNFx1NjRjN1x1NjRjMlx1NjRjZFx1NjRiZlx1NjRkMlx1NjRkNFx1NjRiZVx1NjU3NFx1NjZjNlx1NjZjOVx1NjZiOVx1NjZjNFx1NjZjN1x1NjZiOFx1NmEzZFx1NmEzOFx1NmEzYVx1NmE1OVx1NmE2Ylx1NmE1OFx1NmEzOVx1NmE0NFx1NmE2Mlx1NmE2MVx1NmE0Ylx1NmE0''@;'; + put 'put ''N1x1NmEzNVx1NmE1Zlx1NmE0OFx1NmI1OVx1NmI3N1x1NmMwNVx1NmZjMlx1NmZiMVx1NmZhMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTBdW0VdXT00ODY0MCtFLExbNDg2NDArRV09''@;'; + put 'put ''QlsxOTBdW0VdKTtmb3IoQlsxOTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZmYzNcdTZmYTRcdTZmYzFcdTZmYTdcdTZmYjNcdTZmYzBcdTZmYjlcdTZmYjZcdTZmYTZcdTZmYTBcdTZmYjRcdTcxYmVcdTcxYzlcdTcxZDBcdTcx''@;'; + put 'put ''ZDJcdTcxYzhcdTcxZDVcdTcxYjlcdTcxY2VcdTcxZDlcdTcxZGNcdTcxYzNcdTcxYzRcdTczNjhcdTc0OWNcdTc0YTNcdTc0OThcdTc0OWZcdTc0OWVcdTc0ZTJcdTc1MGNcdTc1MGRcdTc2MzRcdTc2MzhcdTc2M2FcdTc2ZTdcdTc2ZTVcdTc3YTBcdTc3OWVcdTc3OWZcdTc3YTVcdTc4ZThc''@;'; + put 'put ''dTc4ZGFcdTc4ZWNcdTc4ZTdcdTc5YTZcdTdhNGRcdTdhNGVcdTdhNDZcdTdhNGNcdTdhNGJcdTdhYmFcdTdiZDlcdTdjMTFcdTdiYzlcdTdiZTRcdTdiZGJcdTdiZTFcdTdiZTlcdTdiZTZcdTdjZDVcdTdjZDZcdTdlMGFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dTdlMTFcdTdlMDhcdTdlMWJcdTdlMjNcdTdlMWVcdTdlMWRcdTdlMDlcdTdlMTBcdTdmNzlcdTdmYjJcdTdmZjBcdTdmZjFcdTdmZWVcdTgwMjhcdTgxYjNcdTgxYTlcdTgxYThcdTgxZmJcdTgyMDhcdTgyNThcdTgyNTlcdTg1NGFcdTg1NTlcdTg1NDhcdTg1NjhcdTg1NjlcdTg1NDNcdTg1''@;'; + put 'put ''NDlcdTg1NmRcdTg1NmFcdTg1NWVcdTg3ODNcdTg3OWZcdTg3OWVcdTg3YTJcdTg3OGRcdTg4NjFcdTg5MmFcdTg5MzJcdTg5MjVcdTg5MmJcdTg5MjFcdTg5YWFcdTg5YTZcdThhZTZcdThhZmFcdThhZWJcdThhZjFcdThiMDBcdThhZGNcdThhZTdcdThhZWVcdThhZmVcdThiMDFcdThiMDJc''@;'; + put 'put ''dThhZjdcdThhZWRcdThhZjNcdThhZjZcdThhZmNcdThjNmJcdThjNmRcdThjOTNcdThjZjRcdThlNDRcdThlMzFcdThlMzRcdThlNDJcdThlMzlcdThlMzVcdThmM2JcdThmMmZcdThmMzhcdThmMzNcdThmYThcdThmYTZcdTkwNzVcdTkwNzRcdTkwNzhcdTkwNzJcdTkwN2NcdTkwN2FcdTkx''@;'; + put 'put ''MzRcdTkxOTJcdTkzMjBcdTkzMzZcdTkyZjhcdTkzMzNcdTkzMmZcdTkzMjJcdTkyZmNcdTkzMmJcdTkzMDRcdTkzMWFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTkxXVtFXV09NDg4OTYr''@;'; + put 'put ''RSxMWzQ4ODk2K0VdPUJbMTkxXVtFXSk7Zm9yKEJbMTkyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MzEwXHU5MzI2XHU5MzIxXHU5MzE1XHU5MzJlXHU5MzE5XHU5NWJiXHU5NmE3XHU5NmE4XHU5NmFhXHU5NmQ1XHU5NzBlXHU5''@;'; + put 'put ''NzExXHU5NzE2XHU5NzBkXHU5NzEzXHU5NzBmXHU5NzViXHU5NzVjXHU5NzY2XHU5Nzk4XHU5ODMwXHU5ODM4XHU5ODNiXHU5ODM3XHU5ODJkXHU5ODM5XHU5ODI0XHU5OTEwXHU5OTI4XHU5OTFlXHU5OTFiXHU5OTIxXHU5OTFhXHU5OWVkXHU5OWUyXHU5OWYxXHU5YWI4XHU5YWJjXHU5YWZi''@;'; + put 'put ''XHU5YWVkXHU5YjI4XHU5YjkxXHU5ZDE1XHU5ZDIzXHU5ZDI2XHU5ZDI4XHU5ZDEyXHU5ZDFiXHU5ZWQ4XHU5ZWQ0XHU5ZjhkXHU5ZjljXHU1MTJhXHU1MTFmXHU1MTIxXHU1MTMyXHU1MmY1XHU1NjhlXHU1NjgwXHU1NjkwXHU1Njg1XHU1Njg3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHU1NjhmXHU1OGQ1XHU1OGQzXHU1OGQxXHU1OGNlXHU1YjMwXHU1YjJhXHU1YjI0XHU1YjdhXHU1YzM3XHU1YzY4XHU1ZGJjXHU1ZGJhXHU1ZGJkXHU1ZGI4XHU1ZTZiXHU1ZjRjXHU1ZmJkXHU2MWM5XHU2MWMyXHU2MWM3XHU2MWU2XHU2MWNiXHU2MjMyXHU2MjM0XHU2''@;'; + put 'put ''NGNlXHU2NGNhXHU2NGQ4XHU2NGUwXHU2NGYwXHU2NGU2XHU2NGVjXHU2NGYxXHU2NGUyXHU2NGVkXHU2NTgyXHU2NTgzXHU2NmQ5XHU2NmQ2XHU2YTgwXHU2YTk0XHU2YTg0XHU2YWEyXHU2YTljXHU2YWRiXHU2YWEzXHU2YTdlXHU2YTk3XHU2YTkwXHU2YWEwXHU2YjVjXHU2YmFlXHU2YmRh''@;'; + put 'put ''XHU2YzA4XHU2ZmQ4XHU2ZmYxXHU2ZmRmXHU2ZmUwXHU2ZmRiXHU2ZmU0XHU2ZmViXHU2ZmVmXHU2ZjgwXHU2ZmVjXHU2ZmUxXHU2ZmU5XHU2ZmQ1XHU2ZmVlXHU2ZmYwXHU3MWU3XHU3MWRmXHU3MWVlXHU3MWU2XHU3MWU1XHU3MWVkXHU3MWVjXHU3MWY0XHU3MWUwXHU3MjM1XHU3MjQ2XHU3''@;'; + put 'put ''MzcwXHU3MzcyXHU3NGE5XHU3NGIwXHU3NGE2XHU3NGE4XHU3NjQ2XHU3NjQyXHU3NjRjXHU3NmVhXHU3N2IzXHU3N2FhXHU3N2IwXHU3N2FjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5''@;'; + put 'put ''Ml1bRV1dPTQ5MTUyK0UsTFs0OTE1MitFXT1CWzE5Ml1bRV0pO2ZvcihCWzE5M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzdhN1x1NzdhZFx1NzdlZlx1NzhmN1x1NzhmYVx1NzhmNFx1NzhlZlx1NzkwMVx1NzlhN1x1NzlhYVx1''@;'; + put 'put ''N2E1N1x1N2FiZlx1N2MwN1x1N2MwZFx1N2JmZVx1N2JmN1x1N2MwY1x1N2JlMFx1N2NlMFx1N2NkY1x1N2NkZVx1N2NlMlx1N2NkZlx1N2NkOVx1N2NkZFx1N2UyZVx1N2UzZVx1N2U0Nlx1N2UzN1x1N2UzMlx1N2U0M1x1N2UyYlx1N2UzZFx1N2UzMVx1N2U0NVx1N2U0MVx1N2UzNFx1N2Uz''@;'; + put 'put ''OVx1N2U0OFx1N2UzNVx1N2UzZlx1N2UyZlx1N2Y0NFx1N2ZmM1x1N2ZmY1x1ODA3MVx1ODA3Mlx1ODA3MFx1ODA2Zlx1ODA3M1x1ODFjNlx1ODFjM1x1ODFiYVx1ODFjMlx1ODFjMFx1ODFiZlx1ODFiZFx1ODFjOVx1ODFiZVx1ODFlOFx1ODIwOVx1ODI3MVx1ODVhYVx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU4NFx1ODU3ZVx1ODU5Y1x1ODU5MVx1ODU5NFx1ODVhZlx1ODU5Ylx1ODU4N1x1ODVhOFx1ODU4YVx1ODY2N1x1ODdjMFx1ODdkMVx1ODdiM1x1ODdkMlx1ODdjNlx1ODdhYlx1ODdiYlx1ODdiYVx1ODdjOFx1ODdjYlx1ODkzYlx1ODkzNlx1''@;'; + put 'put ''ODk0NFx1ODkzOFx1ODkzZFx1ODlhY1x1OGIwZVx1OGIxN1x1OGIxOVx1OGIxYlx1OGIwYVx1OGIyMFx1OGIxZFx1OGIwNFx1OGIxMFx1OGM0MVx1OGMzZlx1OGM3M1x1OGNmYVx1OGNmZFx1OGNmY1x1OGNmOFx1OGNmYlx1OGRhOFx1OGU0OVx1OGU0Ylx1OGU0OFx1OGU0YVx1OGY0NFx1OGYz''@;'; + put 'put ''ZVx1OGY0Mlx1OGY0NVx1OGYzZlx1OTA3Zlx1OTA3ZFx1OTA4NFx1OTA4MVx1OTA4Mlx1OTA4MFx1OTEzOVx1OTFhM1x1OTE5ZVx1OTE5Y1x1OTM0ZFx1OTM4Mlx1OTMyOFx1OTM3NVx1OTM0YVx1OTM2NVx1OTM0Ylx1OTMxOFx1OTM3ZVx1OTM2Y1x1OTM1Ylx1OTM3MFx1OTM1YVx1OTM1NFx1''@;'; + put 'put ''OTVjYVx1OTVjYlx1OTVjY1x1OTVjOFx1OTVjNlx1OTZiMVx1OTZiOFx1OTZkNlx1OTcxY1x1OTcxZVx1OTdhMFx1OTdkM1x1OTg0Nlx1OThiNlx1OTkzNVx1OWEwMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkzXVtFXS5jaGFyQ29kZUF0''@;'; + put 'put ''KDApJiYobWVbQlsxOTNdW0VdXT00OTQwOCtFLExbNDk0MDgrRV09QlsxOTNdW0VdKTtmb3IoQlsxOTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk5ZmZcdTliYWVcdTliYWJcdTliYWFcdTliYWRcdTlkM2JcdTlkM2ZcdTllOGJc''@;'; + put 'put ''dTllY2ZcdTllZGVcdTllZGNcdTllZGRcdTllZGJcdTlmM2VcdTlmNGJcdTUzZTJcdTU2OTVcdTU2YWVcdTU4ZDlcdTU4ZDhcdTViMzhcdTVmNWRcdTYxZTNcdTYyMzNcdTY0ZjRcdTY0ZjJcdTY0ZmVcdTY1MDZcdTY0ZmFcdTY0ZmJcdTY0ZjdcdTY1YjdcdTY2ZGNcdTY3MjZcdTZhYjNcdTZh''@;'; + put 'put ''YWNcdTZhYzNcdTZhYmJcdTZhYjhcdTZhYzJcdTZhYWVcdTZhYWZcdTZiNWZcdTZiNzhcdTZiYWZcdTcwMDlcdTcwMGJcdTZmZmVcdTcwMDZcdTZmZmFcdTcwMTFcdTcwMGZcdTcxZmJcdTcxZmNcdTcxZmVcdTcxZjhcdTczNzdcdTczNzVcdTc0YTdcdTc0YmZcdTc1MTVcdTc2NTZcdTc2NThc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc2NTJcdTc3YmRcdTc3YmZcdTc3YmJcdTc3YmNcdTc5MGVcdTc5YWVcdTdhNjFcdTdhNjJcdTdhNjBcdTdhYzRcdTdhYzVcdTdjMmJcdTdjMjdcdTdjMmFcdTdjMWVcdTdjMjNcdTdjMjFcdTdjZTdcdTdlNTRcdTdlNTVc''@;'; + put 'put ''dTdlNWVcdTdlNWFcdTdlNjFcdTdlNTJcdTdlNTlcdTdmNDhcdTdmZjlcdTdmZmJcdTgwNzdcdTgwNzZcdTgxY2RcdTgxY2ZcdTgyMGFcdTg1Y2ZcdTg1YTlcdTg1Y2RcdTg1ZDBcdTg1YzlcdTg1YjBcdTg1YmFcdTg1YjlcdTg1YTZcdTg3ZWZcdTg3ZWNcdTg3ZjJcdTg3ZTBcdTg5ODZcdTg5''@;'; + put 'put ''YjJcdTg5ZjRcdThiMjhcdThiMzlcdThiMmNcdThiMmJcdThjNTBcdThkMDVcdThlNTlcdThlNjNcdThlNjZcdThlNjRcdThlNWZcdThlNTVcdThlYzBcdThmNDlcdThmNGRcdTkwODdcdTkwODNcdTkwODhcdTkxYWJcdTkxYWNcdTkxZDBcdTkzOTRcdTkzOGFcdTkzOTZcdTkzYTJcdTkzYjNc''@;'; + put 'put ''dTkzYWVcdTkzYWNcdTkzYjBcdTkzOThcdTkzOWFcdTkzOTdcdTk1ZDRcdTk1ZDZcdTk1ZDBcdTk1ZDVcdTk2ZTJcdTk2ZGNcdTk2ZDlcdTk2ZGJcdTk2ZGVcdTk3MjRcdTk3YTNcdTk3YTZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5NF1b''@;'; + put 'put ''RV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk0XVtFXV09NDk2NjQrRSxMWzQ5NjY0K0VdPUJbMTk0XVtFXSk7Zm9yKEJbMTk1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5N2FkXHU5N2Y5XHU5ODRkXHU5ODRmXHU5ODRjXHU5ODRl''@;'; + put 'put ''XHU5ODUzXHU5OGJhXHU5OTNlXHU5OTNmXHU5OTNkXHU5OTJlXHU5OWE1XHU5YTBlXHU5YWMxXHU5YjAzXHU5YjA2XHU5YjRmXHU5YjRlXHU5YjRkXHU5YmNhXHU5YmM5XHU5YmZkXHU5YmM4XHU5YmMwXHU5ZDUxXHU5ZDVkXHU5ZDYwXHU5ZWUwXHU5ZjE1XHU5ZjJjXHU1MTMzXHU1NmE1XHU1''@;'; + put 'put ''OGRlXHU1OGRmXHU1OGUyXHU1YmY1XHU5ZjkwXHU1ZWVjXHU2MWYyXHU2MWY3XHU2MWY2XHU2MWY1XHU2NTAwXHU2NTBmXHU2NmUwXHU2NmRkXHU2YWU1XHU2YWRkXHU2YWRhXHU2YWQzXHU3MDFiXHU3MDFmXHU3MDI4XHU3MDFhXHU3MDFkXHU3MDE1XHU3MDE4XHU3MjA2XHU3MjBkXHU3MjU4''@;'; + put 'put ''XHU3MmEyXHU3Mzc4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MzdhXHU3NGJkXHU3NGNhXHU3NGUzXHU3NTg3XHU3NTg2XHU3NjVmXHU3NjYxXHU3N2M3XHU3OTE5XHU3OWIxXHU3YTZiXHU3YTY5XHU3YzNlXHU3YzNmXHU3YzM4XHU3YzNkXHU3YzM3XHU3YzQw''@;'; + put 'put ''XHU3ZTZiXHU3ZTZkXHU3ZTc5XHU3ZTY5XHU3ZTZhXHU3Zjg1XHU3ZTczXHU3ZmI2XHU3ZmI5XHU3ZmI4XHU4MWQ4XHU4NWU5XHU4NWRkXHU4NWVhXHU4NWQ1XHU4NWU0XHU4NWU1XHU4NWY3XHU4N2ZiXHU4ODA1XHU4ODBkXHU4N2Y5XHU4N2ZlXHU4OTYwXHU4OTVmXHU4OTU2XHU4OTVlXHU4''@;'; + put 'put ''YjQxXHU4YjVjXHU4YjU4XHU4YjQ5XHU4YjVhXHU4YjRlXHU4YjRmXHU4YjQ2XHU4YjU5XHU4ZDA4XHU4ZDBhXHU4ZTdjXHU4ZTcyXHU4ZTg3XHU4ZTc2XHU4ZTZjXHU4ZTdhXHU4ZTc0XHU4ZjU0XHU4ZjRlXHU4ZmFkXHU5MDhhXHU5MDhiXHU5MWIxXHU5MWFlXHU5M2UxXHU5M2QxXHU5M2Rm''@;'; + put 'put ''XHU5M2MzXHU5M2M4XHU5M2RjXHU5M2RkXHU5M2Q2XHU5M2UyXHU5M2NkXHU5M2Q4XHU5M2U0XHU5M2Q3XHU5M2U4XHU5NWRjXHU5NmI0XHU5NmUzXHU5NzJhXHU5NzI3XHU5NzYxXHU5N2RjXHU5N2ZiXHU5ODVlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk1XS5sZW5ndGg7KytFKTY1''@;'; + put 'put ''NTMzIT09QlsxOTVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5NV1bRV1dPTQ5OTIwK0UsTFs0OTkyMCtFXT1CWzE5NV1bRV0pO2ZvcihCWzE5Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTg1OFx1OTg1Ylx1OThiY1x1OTk0''@;'; + put 'put ''NVx1OTk0OVx1OWExNlx1OWExOVx1OWIwZFx1OWJlOFx1OWJlN1x1OWJkNlx1OWJkYlx1OWQ4OVx1OWQ2MVx1OWQ3Mlx1OWQ2YVx1OWQ2Y1x1OWU5Mlx1OWU5N1x1OWU5M1x1OWViNFx1NTJmOFx1NTZhOFx1NTZiN1x1NTZiNlx1NTZiNFx1NTZiY1x1NThlNFx1NWI0MFx1NWI0M1x1NWI3ZFx1''@;'; + put 'put ''NWJmNlx1NWRjOVx1NjFmOFx1NjFmYVx1NjUxOFx1NjUxNFx1NjUxOVx1NjZlNlx1NjcyN1x1NmFlY1x1NzAzZVx1NzAzMFx1NzAzMlx1NzIxMFx1NzM3Ylx1NzRjZlx1NzY2Mlx1NzY2NVx1NzkyNlx1NzkyYVx1NzkyY1x1NzkyYlx1N2FjN1x1N2FmNlx1N2M0Y1x1N2M0M1x1N2M0ZFx1N2Nl''@;'; + put 'put ''Zlx1N2NmMFx1OGZhZVx1N2U3ZFx1N2U3Y1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2U4Mlx1N2Y0Y1x1ODAwMFx1ODFkYVx1ODI2Nlx1ODVmYlx1ODVmOVx1ODYxMVx1ODVmYVx1ODYwNlx1ODYwYlx1ODYwN1x1ODYwYVx1ODgxNFx1ODgxNVx1ODk2NFx1ODli''@;'; + put 'put ''YVx1ODlmOFx1OGI3MFx1OGI2Y1x1OGI2Nlx1OGI2Zlx1OGI1Zlx1OGI2Ylx1OGQwZlx1OGQwZFx1OGU4OVx1OGU4MVx1OGU4NVx1OGU4Mlx1OTFiNFx1OTFjYlx1OTQxOFx1OTQwM1x1OTNmZFx1OTVlMVx1OTczMFx1OThjNFx1OTk1Mlx1OTk1MVx1OTlhOFx1OWEyYlx1OWEzMFx1OWEzN1x1''@;'; + put 'put ''OWEzNVx1OWMxM1x1OWMwZFx1OWU3OVx1OWViNVx1OWVlOFx1OWYyZlx1OWY1Zlx1OWY2M1x1OWY2MVx1NTEzN1x1NTEzOFx1NTZjMVx1NTZjMFx1NTZjMlx1NTkxNFx1NWM2Y1x1NWRjZFx1NjFmY1x1NjFmZVx1NjUxZFx1NjUxY1x1NjU5NVx1NjZlOVx1NmFmYlx1NmIwNFx1NmFmYVx1NmJi''@;'; + put 'put ''Mlx1NzA0Y1x1NzIxYlx1NzJhN1x1NzRkNlx1NzRkNFx1NzY2OVx1NzdkM1x1N2M1MFx1N2U4Zlx1N2U4Y1x1N2ZiY1x1ODYxN1x1ODYyZFx1ODYxYVx1ODgyM1x1ODgyMlx1ODgyMVx1ODgxZlx1ODk2YVx1ODk2Y1x1ODliZFx1OGI3NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5Nl0u''@;'; + put 'put ''bGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTZdW0VdXT01MDE3NitFLExbNTAxNzYrRV09QlsxOTZdW0VdKTtmb3IoQlsxOTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThiNzdcdThi''@;'; + put 'put ''N2RcdThkMTNcdThlOGFcdThlOGRcdThlOGJcdThmNWZcdThmYWZcdTkxYmFcdTk0MmVcdTk0MzNcdTk0MzVcdTk0M2FcdTk0MzhcdTk0MzJcdTk0MmJcdTk1ZTJcdTk3MzhcdTk3MzlcdTk3MzJcdTk3ZmZcdTk4NjdcdTk4NjVcdTk5NTdcdTlhNDVcdTlhNDNcdTlhNDBcdTlhM2VcdTlhY2Zc''@;'; + put 'put ''dTliNTRcdTliNTFcdTljMmRcdTljMjVcdTlkYWZcdTlkYjRcdTlkYzJcdTlkYjhcdTllOWRcdTllZWZcdTlmMTlcdTlmNWNcdTlmNjZcdTlmNjdcdTUxM2NcdTUxM2JcdTU2YzhcdTU2Y2FcdTU2YzlcdTViN2ZcdTVkZDRcdTVkZDJcdTVmNGVcdTYxZmZcdTY1MjRcdTZiMGFcdTZiNjFcdTcw''@;'; + put 'put ''NTFcdTcwNThcdTczODBcdTc0ZTRcdTc1OGFcdTc2NmVcdTc2NmNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5YjNcdTdjNjBcdTdjNWZcdTgwN2VcdTgwN2RcdTgxZGZcdTg5NzJcdTg5NmZcdTg5ZmNcdThiODBcdThkMTZcdThkMTdcdThlOTFcdThlOTNcdThm''@;'; + put 'put ''NjFcdTkxNDhcdTk0NDRcdTk0NTFcdTk0NTJcdTk3M2RcdTk3M2VcdTk3YzNcdTk3YzFcdTk4NmJcdTk5NTVcdTlhNTVcdTlhNGRcdTlhZDJcdTliMWFcdTljNDlcdTljMzFcdTljM2VcdTljM2JcdTlkZDNcdTlkZDdcdTlmMzRcdTlmNmNcdTlmNmFcdTlmOTRcdTU2Y2NcdTVkZDZcdTYyMDBc''@;'; + put 'put ''dTY1MjNcdTY1MmJcdTY1MmFcdTY2ZWNcdTZiMTBcdTc0ZGFcdTdhY2FcdTdjNjRcdTdjNjNcdTdjNjVcdTdlOTNcdTdlOTZcdTdlOTRcdTgxZTJcdTg2MzhcdTg2M2ZcdTg4MzFcdThiOGFcdTkwOTBcdTkwOGZcdTk0NjNcdTk0NjBcdTk0NjRcdTk3NjhcdTk4NmZcdTk5NWNcdTlhNWFcdTlh''@;'; + put 'put ''NWJcdTlhNTdcdTlhZDNcdTlhZDRcdTlhZDFcdTljNTRcdTljNTdcdTljNTZcdTlkZTVcdTllOWZcdTllZjRcdTU2ZDFcdTU4ZTlcdTY1MmNcdTcwNWVcdTc2NzFcdTc2NzJcdTc3ZDdcdTdmNTBcdTdmODhcdTg4MzZcdTg4MzlcdTg4NjJcdThiOTNcdThiOTJcdWZmZmQiLnNwbGl0KCIiKSxF''@;'; + put 'put ''PTA7RSE9QlsxOTddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk3XVtFXV09NTA0MzIrRSxMWzUwNDMyK0VdPUJbMTk3XVtFXSk7Zm9yKEJbMTk4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHU4Yjk2XHU4Mjc3XHU4ZDFiXHU5MWMwXHU5NDZhXHU5NzQyXHU5NzQ4XHU5NzQ0XHU5N2M2XHU5ODcwXHU5YTVmXHU5YjIyXHU5YjU4XHU5YzVmXHU5ZGY5XHU5ZGZhXHU5ZTdjXHU5ZTdkXHU5ZjA3XHU5Zjc3XHU5ZjcyXHU1ZWYzXHU2YjE2XHU3MDYzXHU3YzZjXHU3YzZlXHU4ODNi''@;'; + put 'put ''XHU4OWMwXHU4ZWExXHU5MWMxXHU5NDcyXHU5NDcwXHU5ODcxXHU5OTVlXHU5YWQ2XHU5YjIzXHU5ZWNjXHU3MDY0XHU3N2RhXHU4YjlhXHU5NDc3XHU5N2M5XHU5YTYyXHU5YTY1XHU3ZTljXHU4YjljXHU4ZWFhXHU5MWM1XHU5NDdkXHU5NDdlXHU5NDdjXHU5Yzc3XHU5Yzc4XHU5ZWY3XHU4''@;'; + put 'put ''YzU0XHU5NDdmXHU5ZTFhXHU3MjI4XHU5YTZhXHU5YjMxXHU5ZTFiXHU5ZTFlXHU3YzcyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''Ii5zcGxpdCgiIiksRT0wO0UhPUJbMTk4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOThdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5OF1bRV1dPTUwNjg4K0UsTFs1MDY4OCtFXT1CWzE5OF1bRV0pO2ZvcihCWzIwMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1NGU0Mlx1NGU1Y1x1NTFmNVx1NTMxYVx1NTM4Mlx1NGUwN1x1NGUwY1x1NGU0N1x1NGU4ZFx1NTZkN1x1ZmEwY1x1NWM2ZVx1NWY3M1x1NGUwZlx1NTE4N1x1NGUwZVx1NGUyZVx1NGU5M1x1NGVjMlx1NGVjOVx1NGVjOFx1NTE5OFx1NTJmY1x1NTM2Y1x1NTNi''@;'; + put 'put ''OVx1NTcyMFx1NTkwM1x1NTkyY1x1NWMxMFx1NWRmZlx1NjVlMVx1NmJiM1x1NmJjY1x1NmMxNFx1NzIzZlx1NGUzMVx1NGUzY1x1NGVlOFx1NGVkY1x1NGVlOVx1NGVlMVx1NGVkZFx1NGVkYVx1NTIwY1x1NTMxY1x1NTM0Y1x1NTcyMlx1NTcyM1x1NTkxN1x1NTkyZlx1NWI4MVx1NWI4NFx1''@;'; + put 'put ''NWMxMlx1NWMzYlx1NWM3NFx1NWM3M1x1NWUwNFx1NWU4MFx1NWU4Mlx1NWZjOVx1NjIwOVx1NjI1MFx1NmMxNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmMzNlx1NmM0M1x1NmMzZlx1NmMzYlx1NzJhZVx1NzJiMFx1NzM4YVx1NzliOFx1ODA4YVx1OTYxZVx1''@;'; + put 'put ''NGYwZVx1NGYxOFx1NGYyY1x1NGVmNVx1NGYxNFx1NGVmMVx1NGYwMFx1NGVmN1x1NGYwOFx1NGYxZFx1NGYwMlx1NGYwNVx1NGYyMlx1NGYxM1x1NGYwNFx1NGVmNFx1NGYxMlx1NTFiMVx1NTIxM1x1NTIwOVx1NTIxMFx1NTJhNlx1NTMyMlx1NTMxZlx1NTM0ZFx1NTM4YVx1NTQwN1x1NTZl''@;'; + put 'put ''MVx1NTZkZlx1NTcyZVx1NTcyYVx1NTczNFx1NTkzY1x1NTk4MFx1NTk3Y1x1NTk4NVx1NTk3Ylx1NTk3ZVx1NTk3N1x1NTk3Zlx1NWI1Nlx1NWMxNVx1NWMyNVx1NWM3Y1x1NWM3YVx1NWM3Ylx1NWM3ZVx1NWRkZlx1NWU3NVx1NWU4NFx1NWYwMlx1NWYxYVx1NWY3NFx1NWZkNVx1NWZkNFx1''@;'; + put 'put ''NWZjZlx1NjI1Y1x1NjI1ZVx1NjI2NFx1NjI2MVx1NjI2Nlx1NjI2Mlx1NjI1OVx1NjI2MFx1NjI1YVx1NjI2NVx1NjVlZlx1NjVlZVx1NjczZVx1NjczOVx1NjczOFx1NjczYlx1NjczYVx1NjczZlx1NjczY1x1NjczM1x1NmMxOFx1NmM0Nlx1NmM1Mlx1NmM1Y1x1NmM0Zlx1NmM0YVx1NmM1''@;'; + put 'put ''NFx1NmM0Ylx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjAxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDFdW0VdXT01MTQ1NitFLExbNTE0NTYrRV09QlsyMDFdW0VdKTtmb3IoQlsyMDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZjNGNcdTcwNzFcdTcyNWVcdTcyYjRcdTcyYjVcdTczOGVcdTc1MmFcdTc2N2ZcdTdhNzVcdTdmNTFcdTgyNzhcdTgyN2NcdTgyODBcdTgyN2RcdTgyN2ZcdTg2NGRcdTg5N2VcdTkwOTlcdTkwOTdcdTkwOThcdTkwOWJcdTkwOTRcdTk2''@;'; + put 'put ''MjJcdTk2MjRcdTk2MjBcdTk2MjNcdTRmNTZcdTRmM2JcdTRmNjJcdTRmNDlcdTRmNTNcdTRmNjRcdTRmM2VcdTRmNjdcdTRmNTJcdTRmNWZcdTRmNDFcdTRmNThcdTRmMmRcdTRmMzNcdTRmM2ZcdTRmNjFcdTUxOGZcdTUxYjlcdTUyMWNcdTUyMWVcdTUyMjFcdTUyYWRcdTUyYWVcdTUzMDlc''@;'; + put 'put ''dTUzNjNcdTUzNzJcdTUzOGVcdTUzOGZcdTU0MzBcdTU0MzdcdTU0MmFcdTU0NTRcdTU0NDVcdTU0MTlcdTU0MWNcdTU0MjVcdTU0MThcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0M2RcdTU0NGZcdTU0NDFcdTU0MjhcdTU0MjRcdTU0NDdcdTU2ZWVcdTU2ZTdc''@;'; + put 'put ''dTU2ZTVcdTU3NDFcdTU3NDVcdTU3NGNcdTU3NDlcdTU3NGJcdTU3NTJcdTU5MDZcdTU5NDBcdTU5YTZcdTU5OThcdTU5YTBcdTU5OTdcdTU5OGVcdTU5YTJcdTU5OTBcdTU5OGZcdTU5YTdcdTU5YTFcdTViOGVcdTViOTJcdTVjMjhcdTVjMmFcdTVjOGRcdTVjOGZcdTVjODhcdTVjOGJcdTVj''@;'; + put 'put ''ODlcdTVjOTJcdTVjOGFcdTVjODZcdTVjOTNcdTVjOTVcdTVkZTBcdTVlMGFcdTVlMGVcdTVlOGJcdTVlODlcdTVlOGNcdTVlODhcdTVlOGRcdTVmMDVcdTVmMWRcdTVmNzhcdTVmNzZcdTVmZDJcdTVmZDFcdTVmZDBcdTVmZWRcdTVmZThcdTVmZWVcdTVmZjNcdTVmZTFcdTVmZTRcdTVmZTNc''@;'; + put 'put ''dTVmZmFcdTVmZWZcdTVmZjdcdTVmZmJcdTYwMDBcdTVmZjRcdTYyM2FcdTYyODNcdTYyOGNcdTYyOGVcdTYyOGZcdTYyOTRcdTYyODdcdTYyNzFcdTYyN2JcdTYyN2FcdTYyNzBcdTYyODFcdTYyODhcdTYyNzdcdTYyN2RcdTYyNzJcdTYyNzRcdTY1MzdcdTY1ZjBcdTY1ZjRcdTY1ZjNcdTY1''@;'; + put 'put ''ZjJcdTY1ZjVcdTY3NDVcdTY3NDdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjAyXVtFXV09NTE3MTIrRSxMWzUxNzEyK0VdPUJbMjAyXVtFXSk7Zm9yKEJbMjAzXT0iXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NzU5XHU2NzU1XHU2NzRjXHU2NzQ4XHU2NzVkXHU2NzRkXHU2NzVhXHU2NzRiXHU2YmQwXHU2YzE5XHU2YzFhXHU2Yzc4XHU2YzY3XHU2YzZiXHU2Yzg0XHU2YzhiXHU2YzhmXHU2YzcxXHU2YzZmXHU2YzY5XHU2''@;'; + put 'put ''YzlhXHU2YzZkXHU2Yzg3XHU2Yzk1XHU2YzljXHU2YzY2XHU2YzczXHU2YzY1XHU2YzdiXHU2YzhlXHU3MDc0XHU3MDdhXHU3MjYzXHU3MmJmXHU3MmJkXHU3MmMzXHU3MmM2XHU3MmMxXHU3MmJhXHU3MmM1XHU3Mzk1XHU3Mzk3XHU3MzkzXHU3Mzk0XHU3MzkyXHU3NTNhXHU3NTM5XHU3NTk0''@;'; + put 'put ''XHU3NTk1XHU3NjgxXHU3OTNkXHU4MDM0XHU4MDk1XHU4MDk5XHU4MDkwXHU4MDkyXHU4MDljXHU4MjkwXHU4MjhmXHU4Mjg1XHU4MjhlXHU4MjkxXHU4MjkzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MjhhXHU4MjgzXHU4Mjg0XHU4Yzc4XHU4ZmM5XHU4ZmJm''@;'; + put 'put ''XHU5MDlmXHU5MGExXHU5MGE1XHU5MDllXHU5MGE3XHU5MGEwXHU5NjMwXHU5NjI4XHU5NjJmXHU5NjJkXHU0ZTMzXHU0Zjk4XHU0ZjdjXHU0Zjg1XHU0ZjdkXHU0ZjgwXHU0Zjg3XHU0Zjc2XHU0Zjc0XHU0Zjg5XHU0Zjg0XHU0Zjc3XHU0ZjRjXHU0Zjk3XHU0ZjZhXHU0ZjlhXHU0Zjc5XHU0''@;'; + put 'put ''ZjgxXHU0Zjc4XHU0ZjkwXHU0ZjljXHU0Zjk0XHU0ZjllXHU0ZjkyXHU0ZjgyXHU0Zjk1XHU0ZjZiXHU0ZjZlXHU1MTllXHU1MWJjXHU1MWJlXHU1MjM1XHU1MjMyXHU1MjMzXHU1MjQ2XHU1MjMxXHU1MmJjXHU1MzBhXHU1MzBiXHU1MzNjXHU1MzkyXHU1Mzk0XHU1NDg3XHU1NDdmXHU1NDgx''@;'; + put 'put ''XHU1NDkxXHU1NDgyXHU1NDg4XHU1NDZiXHU1NDdhXHU1NDdlXHU1NDY1XHU1NDZjXHU1NDc0XHU1NDY2XHU1NDhkXHU1NDZmXHU1NDYxXHU1NDYwXHU1NDk4XHU1NDYzXHU1NDY3XHU1NDY0XHU1NmY3XHU1NmY5XHU1NzZmXHU1NzcyXHU1NzZkXHU1NzZiXHU1NzcxXHU1NzcwXHU1Nzc2XHU1''@;'; + put 'put ''NzgwXHU1Nzc1XHU1NzdiXHU1NzczXHU1Nzc0XHU1NzYyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwM11bRV1dPTUxOTY4K0UsTFs1MTk2OCtFXT1CWzIwM11bRV0pO2ZvcihCWzIwNF09''@;'; + put 'put ''Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTc2OFx1NTc3ZFx1NTkwY1x1NTk0NVx1NTliNVx1NTliYVx1NTljZlx1NTljZVx1NTliMlx1NTljY1x1NTljMVx1NTliNlx1NTliY1x1NTljM1x1NTlkNlx1NTliMVx1NTliZFx1NTljMFx1''@;'; + put 'put ''NTljOFx1NTliNFx1NTljN1x1NWI2Mlx1NWI2NVx1NWI5M1x1NWI5NVx1NWM0NFx1NWM0N1x1NWNhZVx1NWNhNFx1NWNhMFx1NWNiNVx1NWNhZlx1NWNhOFx1NWNhY1x1NWM5Zlx1NWNhM1x1NWNhZFx1NWNhMlx1NWNhYVx1NWNhN1x1NWM5ZFx1NWNhNVx1NWNiNlx1NWNiMFx1NWNhNlx1NWUx''@;'; + put 'put ''N1x1NWUxNFx1NWUxOVx1NWYyOFx1NWYyMlx1NWYyM1x1NWYyNFx1NWY1NFx1NWY4Mlx1NWY3ZVx1NWY3ZFx1NWZkZVx1NWZlNVx1NjAyZFx1NjAyNlx1NjAxOVx1NjAzMlx1NjAwYlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjAzNFx1NjAwYVx1NjAxN1x1NjAz''@;'; + put 'put ''M1x1NjAxYVx1NjAxZVx1NjAyY1x1NjAyMlx1NjAwZFx1NjAxMFx1NjAyZVx1NjAxM1x1NjAxMVx1NjAwY1x1NjAwOVx1NjAxY1x1NjIxNFx1NjIzZFx1NjJhZFx1NjJiNFx1NjJkMVx1NjJiZVx1NjJhYVx1NjJiNlx1NjJjYVx1NjJhZVx1NjJiM1x1NjJhZlx1NjJiYlx1NjJhOVx1NjJiMFx1''@;'; + put 'put ''NjJiOFx1NjUzZFx1NjVhOFx1NjViYlx1NjYwOVx1NjVmY1x1NjYwNFx1NjYxMlx1NjYwOFx1NjVmYlx1NjYwM1x1NjYwYlx1NjYwZFx1NjYwNVx1NjVmZFx1NjYxMVx1NjYxMFx1NjZmNlx1NjcwYVx1Njc4NVx1Njc2Y1x1Njc4ZVx1Njc5Mlx1Njc3Nlx1Njc3Ylx1Njc5OFx1Njc4Nlx1Njc4''@;'; + put 'put ''NFx1Njc3NFx1Njc4ZFx1Njc4Y1x1Njc3YVx1Njc5Zlx1Njc5MVx1Njc5OVx1Njc4M1x1Njc3ZFx1Njc4MVx1Njc3OFx1Njc3OVx1Njc5NFx1NmIyNVx1NmI4MFx1NmI3ZVx1NmJkZVx1NmMxZFx1NmM5M1x1NmNlY1x1NmNlYlx1NmNlZVx1NmNkOVx1NmNiNlx1NmNkNFx1NmNhZFx1NmNlN1x1''@;'; + put 'put ''NmNiN1x1NmNkMFx1NmNjMlx1NmNiYVx1NmNjM1x1NmNjNlx1NmNlZFx1NmNmMlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDRdW0VdXT01MjIyNCtFLExbNTIyMjQrRV09QlsyMDRdW0Vd''@;'; + put 'put ''KTtmb3IoQlsyMDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZjZDJcdTZjZGRcdTZjYjRcdTZjOGFcdTZjOWRcdTZjODBcdTZjZGVcdTZjYzBcdTZkMzBcdTZjY2RcdTZjYzdcdTZjYjBcdTZjZjlcdTZjY2ZcdTZjZTlcdTZjZDFc''@;'; + put 'put ''dTcwOTRcdTcwOThcdTcwODVcdTcwOTNcdTcwODZcdTcwODRcdTcwOTFcdTcwOTZcdTcwODJcdTcwOWFcdTcwODNcdTcyNmFcdTcyZDZcdTcyY2JcdTcyZDhcdTcyYzlcdTcyZGNcdTcyZDJcdTcyZDRcdTcyZGFcdTcyY2NcdTcyZDFcdTczYTRcdTczYTFcdTczYWRcdTczYTZcdTczYTJcdTcz''@;'; + put 'put ''YTBcdTczYWNcdTczOWRcdTc0ZGRcdTc0ZThcdTc1M2ZcdTc1NDBcdTc1M2VcdTc1OGNcdTc1OThcdTc2YWZcdTc2ZjNcdTc2ZjFcdTc2ZjBcdTc2ZjVcdTc3ZjhcdTc3ZmNcdTc3ZjlcdTc3ZmJcdTc3ZmFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc3ZjdcdTc5''@;'; + put 'put ''NDJcdTc5M2ZcdTc5YzVcdTdhNzhcdTdhN2JcdTdhZmJcdTdjNzVcdTdjZmRcdTgwMzVcdTgwOGZcdTgwYWVcdTgwYTNcdTgwYjhcdTgwYjVcdTgwYWRcdTgyMjBcdTgyYTBcdTgyYzBcdTgyYWJcdTgyOWFcdTgyOThcdTgyOWJcdTgyYjVcdTgyYTdcdTgyYWVcdTgyYmNcdTgyOWVcdTgyYmFc''@;'; + put 'put ''dTgyYjRcdTgyYThcdTgyYTFcdTgyYTlcdTgyYzJcdTgyYTRcdTgyYzNcdTgyYjZcdTgyYTJcdTg2NzBcdTg2NmZcdTg2NmRcdTg2NmVcdThjNTZcdThmZDJcdThmY2JcdThmZDNcdThmY2RcdThmZDZcdThmZDVcdThmZDdcdTkwYjJcdTkwYjRcdTkwYWZcdTkwYjNcdTkwYjBcdTk2MzlcdTk2''@;'; + put 'put ''M2RcdTk2M2NcdTk2M2FcdTk2NDNcdTRmY2RcdTRmYzVcdTRmZDNcdTRmYjJcdTRmYzlcdTRmY2JcdTRmYzFcdTRmZDRcdTRmZGNcdTRmZDlcdTRmYmJcdTRmYjNcdTRmZGJcdTRmYzdcdTRmZDZcdTRmYmFcdTRmYzBcdTRmYjlcdTRmZWNcdTUyNDRcdTUyNDlcdTUyYzBcdTUyYzJcdTUzM2Rc''@;'; + put 'put ''dTUzN2NcdTUzOTdcdTUzOTZcdTUzOTlcdTUzOThcdTU0YmFcdTU0YTFcdTU0YWRcdTU0YTVcdTU0Y2ZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA1XVtFXV09NTI0ODArRSxMWzUyNDgw''@;'; + put 'put ''K0VdPUJbMjA1XVtFXSk7Zm9yKEJbMjA2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGMzXHU4MzBkXHU1NGI3XHU1NGFlXHU1NGQ2XHU1NGI2XHU1NGM1XHU1NGM2XHU1NGEwXHU1NDcwXHU1NGJjXHU1NGEyXHU1NGJlXHU1NDcy''@;'; + put 'put ''XHU1NGRlXHU1NGIwXHU1N2I1XHU1NzllXHU1NzlmXHU1N2E0XHU1NzhjXHU1Nzk3XHU1NzlkXHU1NzliXHU1Nzk0XHU1Nzk4XHU1NzhmXHU1Nzk5XHU1N2E1XHU1NzlhXHU1Nzk1XHU1OGY0XHU1OTBkXHU1OTUzXHU1OWUxXHU1OWRlXHU1OWVlXHU1YTAwXHU1OWYxXHU1OWRkXHU1OWZhXHU1''@;'; + put 'put ''OWZkXHU1OWZjXHU1OWY2XHU1OWU0XHU1OWYyXHU1OWY3XHU1OWRiXHU1OWU5XHU1OWYzXHU1OWY1XHU1OWUwXHU1OWZlXHU1OWY0XHU1OWVkXHU1YmE4XHU1YzRjXHU1Y2QwXHU1Y2Q4XHU1Y2NjXHU1Y2Q3XHU1Y2NiXHU1Y2RiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHU1Y2RlXHU1Y2RhXHU1Y2M5XHU1Y2M3XHU1Y2NhXHU1Y2Q2XHU1Y2QzXHU1Y2Q0XHU1Y2NmXHU1Y2M4XHU1Y2M2XHU1Y2NlXHU1Y2RmXHU1Y2Y4XHU1ZGY5XHU1ZTIxXHU1ZTIyXHU1ZTIzXHU1ZTIwXHU1ZTI0XHU1ZWIwXHU1ZWE0XHU1ZWEyXHU1ZTliXHU1ZWEzXHU1ZWE1XHU1ZjA3''@;'; + put 'put ''XHU1ZjJlXHU1ZjU2XHU1Zjg2XHU2MDM3XHU2MDM5XHU2MDU0XHU2MDcyXHU2MDVlXHU2MDQ1XHU2MDUzXHU2MDQ3XHU2MDQ5XHU2MDViXHU2MDRjXHU2MDQwXHU2MDQyXHU2MDVmXHU2MDI0XHU2MDQ0XHU2MDU4XHU2MDY2XHU2MDZlXHU2MjQyXHU2MjQzXHU2MmNmXHU2MzBkXHU2MzBiXHU2''@;'; + put 'put ''MmY1XHU2MzBlXHU2MzAzXHU2MmViXHU2MmY5XHU2MzBmXHU2MzBjXHU2MmY4XHU2MmY2XHU2MzAwXHU2MzEzXHU2MzE0XHU2MmZhXHU2MzE1XHU2MmZiXHU2MmYwXHU2NTQxXHU2NTQzXHU2NWFhXHU2NWJmXHU2NjM2XHU2NjIxXHU2NjMyXHU2NjM1XHU2NjFjXHU2NjI2XHU2NjIyXHU2NjMz''@;'; + put 'put ''XHU2NjJiXHU2NjNhXHU2NjFkXHU2NjM0XHU2NjM5XHU2NjJlXHU2NzBmXHU2NzEwXHU2N2MxXHU2N2YyXHU2N2M4XHU2N2JhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwNl1bRV1dPTUy''@;'; + put 'put ''NzM2K0UsTFs1MjczNitFXT1CWzIwNl1bRV0pO2ZvcihCWzIwN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjdkY1x1NjdiYlx1NjdmOFx1NjdkOFx1NjdjMFx1NjdiN1x1NjdjNVx1NjdlYlx1NjdlNFx1NjdkZlx1NjdiNVx1Njdj''@;'; + put 'put ''ZFx1NjdiM1x1NjdmN1x1NjdmNlx1NjdlZVx1NjdlM1x1NjdjMlx1NjdiOVx1NjdjZVx1NjdlN1x1NjdmMFx1NjdiMlx1NjdmY1x1NjdjNlx1NjdlZFx1NjdjY1x1NjdhZVx1NjdlNlx1NjdkYlx1NjdmYVx1NjdjOVx1NjdjYVx1NjdjM1x1NjdlYVx1NjdjYlx1NmIyOFx1NmI4Mlx1NmI4NFx1''@;'; + put 'put ''NmJiNlx1NmJkNlx1NmJkOFx1NmJlMFx1NmMyMFx1NmMyMVx1NmQyOFx1NmQzNFx1NmQyZFx1NmQxZlx1NmQzY1x1NmQzZlx1NmQxMlx1NmQwYVx1NmNkYVx1NmQzM1x1NmQwNFx1NmQxOVx1NmQzYVx1NmQxYVx1NmQxMVx1NmQwMFx1NmQxZFx1NmQ0Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1NmQwMVx1NmQxOFx1NmQzN1x1NmQwM1x1NmQwZlx1NmQ0MFx1NmQwN1x1NmQyMFx1NmQyY1x1NmQwOFx1NmQyMlx1NmQwOVx1NmQxMFx1NzBiN1x1NzA5Zlx1NzBiZVx1NzBiMVx1NzBiMFx1NzBhMVx1NzBiNFx1NzBiNVx1NzBhOVx1NzI0MVx1NzI0OVx1NzI0''@;'; + put 'put ''YVx1NzI2Y1x1NzI3MFx1NzI3M1x1NzI2ZVx1NzJjYVx1NzJlNFx1NzJlOFx1NzJlYlx1NzJkZlx1NzJlYVx1NzJlNlx1NzJlM1x1NzM4NVx1NzNjY1x1NzNjMlx1NzNjOFx1NzNjNVx1NzNiOVx1NzNiNlx1NzNiNVx1NzNiNFx1NzNlYlx1NzNiZlx1NzNjN1x1NzNiZVx1NzNjM1x1NzNjNlx1''@;'; + put 'put ''NzNiOFx1NzNjYlx1NzRlY1x1NzRlZVx1NzUyZVx1NzU0N1x1NzU0OFx1NzVhN1x1NzVhYVx1NzY3OVx1NzZjNFx1NzcwOFx1NzcwM1x1NzcwNFx1NzcwNVx1NzcwYVx1NzZmN1x1NzZmYlx1NzZmYVx1NzdlN1x1NzdlOFx1NzgwNlx1NzgxMVx1NzgxMlx1NzgwNVx1NzgxMFx1NzgwZlx1Nzgw''@;'; + put 'put ''ZVx1NzgwOVx1NzgwM1x1NzgxM1x1Nzk0YVx1Nzk0Y1x1Nzk0Ylx1Nzk0NVx1Nzk0NFx1NzlkNVx1NzljZFx1NzljZlx1NzlkNlx1NzljZVx1N2E4MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVb''@;'; + put 'put ''QlsyMDddW0VdXT01Mjk5MitFLExbNTI5OTIrRV09QlsyMDddW0VdKTtmb3IoQlsyMDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdhN2VcdTdhZDFcdTdiMDBcdTdiMDFcdTdjN2FcdTdjNzhcdTdjNzlcdTdjN2ZcdTdjODBcdTdj''@;'; + put 'put ''ODFcdTdkMDNcdTdkMDhcdTdkMDFcdTdmNThcdTdmOTFcdTdmOGRcdTdmYmVcdTgwMDdcdTgwMGVcdTgwMGZcdTgwMTRcdTgwMzdcdTgwZDhcdTgwYzdcdTgwZTBcdTgwZDFcdTgwYzhcdTgwYzJcdTgwZDBcdTgwYzVcdTgwZTNcdTgwZDlcdTgwZGNcdTgwY2FcdTgwZDVcdTgwYzlcdTgwY2Zc''@;'; + put 'put ''dTgwZDdcdTgwZTZcdTgwY2RcdTgxZmZcdTgyMjFcdTgyOTRcdTgyZDlcdTgyZmVcdTgyZjlcdTgzMDdcdTgyZThcdTgzMDBcdTgyZDVcdTgzM2FcdTgyZWJcdTgyZDZcdTgyZjRcdTgyZWNcdTgyZTFcdTgyZjJcdTgyZjVcdTgzMGNcdTgyZmJcdTgyZjZcdTgyZjBcdTgyZWFcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgyZTRcdTgyZTBcdTgyZmFcdTgyZjNcdTgyZWRcdTg2NzdcdTg2NzRcdTg2N2NcdTg2NzNcdTg4NDFcdTg4NGVcdTg4NjdcdTg4NmFcdTg4NjlcdTg5ZDNcdThhMDRcdThhMDdcdThkNzJcdThmZTNcdThmZTFcdThmZWVcdThmZTBcdTkw''@;'; + put 'put ''ZjFcdTkwYmRcdTkwYmZcdTkwZDVcdTkwYzVcdTkwYmVcdTkwYzdcdTkwY2JcdTkwYzhcdTkxZDRcdTkxZDNcdTk2NTRcdTk2NGZcdTk2NTFcdTk2NTNcdTk2NGFcdTk2NGVcdTUwMWVcdTUwMDVcdTUwMDdcdTUwMTNcdTUwMjJcdTUwMzBcdTUwMWJcdTRmZjVcdTRmZjRcdTUwMzNcdTUwMzdc''@;'; + put 'put ''dTUwMmNcdTRmZjZcdTRmZjdcdTUwMTdcdTUwMWNcdTUwMjBcdTUwMjdcdTUwMzVcdTUwMmZcdTUwMzFcdTUwMGVcdTUxNWFcdTUxOTRcdTUxOTNcdTUxY2FcdTUxYzRcdTUxYzVcdTUxYzhcdTUxY2VcdTUyNjFcdTUyNWFcdTUyNTJcdTUyNWVcdTUyNWZcdTUyNTVcdTUyNjJcdTUyY2RcdTUz''@;'; + put 'put ''MGVcdTUzOWVcdTU1MjZcdTU0ZTJcdTU1MTdcdTU1MTJcdTU0ZTdcdTU0ZjNcdTU0ZTRcdTU1MWFcdTU0ZmZcdTU1MDRcdTU1MDhcdTU0ZWJcdTU1MTFcdTU1MDVcdTU0ZjFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwOF1bRV0uY2hhckNv''@;'; + put 'put ''ZGVBdCgwKSYmKG1lW0JbMjA4XVtFXV09NTMyNDgrRSxMWzUzMjQ4K0VdPUJbMjA4XVtFXSk7Zm9yKEJbMjA5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NTBhXHU1NGZiXHU1NGY3XHU1NGY4XHU1NGUwXHU1NTBlXHU1NTAzXHU1''@;'; + put 'put ''NTBiXHU1NzAxXHU1NzAyXHU1N2NjXHU1ODMyXHU1N2Q1XHU1N2QyXHU1N2JhXHU1N2M2XHU1N2JkXHU1N2JjXHU1N2I4XHU1N2I2XHU1N2JmXHU1N2M3XHU1N2QwXHU1N2I5XHU1N2MxXHU1OTBlXHU1OTRhXHU1YTE5XHU1YTE2XHU1YTJkXHU1YTJlXHU1YTE1XHU1YTBmXHU1YTE3XHU1YTBh''@;'; + put 'put ''XHU1YTFlXHU1YTMzXHU1YjZjXHU1YmE3XHU1YmFkXHU1YmFjXHU1YzAzXHU1YzU2XHU1YzU0XHU1Y2VjXHU1Y2ZmXHU1Y2VlXHU1Y2YxXHU1Y2Y3XHU1ZDAwXHU1Y2Y5XHU1ZTI5XHU1ZTI4XHU1ZWE4XHU1ZWFlXHU1ZWFhXHU1ZWFjXHU1ZjMzXHU1ZjMwXHU1ZjY3XHU2MDVkXHU2MDVhXHU2''@;'; + put 'put ''MDY3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDQxXHU2MGEyXHU2MDg4XHU2MDgwXHU2MDkyXHU2MDgxXHU2MDlkXHU2MDgzXHU2MDk1XHU2MDliXHU2MDk3XHU2MDg3XHU2MDljXHU2MDhlXHU2MjE5XHU2MjQ2XHU2MmYyXHU2MzEwXHU2MzU2XHU2MzJjXHU2''@;'; + put 'put ''MzQ0XHU2MzQ1XHU2MzM2XHU2MzQzXHU2M2U0XHU2MzM5XHU2MzRiXHU2MzRhXHU2MzNjXHU2MzI5XHU2MzQxXHU2MzM0XHU2MzU4XHU2MzU0XHU2MzU5XHU2MzJkXHU2MzQ3XHU2MzMzXHU2MzVhXHU2MzUxXHU2MzM4XHU2MzU3XHU2MzQwXHU2MzQ4XHU2NTRhXHU2NTQ2XHU2NWM2XHU2NWMz''@;'; + put 'put ''XHU2NWM0XHU2NWMyXHU2NjRhXHU2NjVmXHU2NjQ3XHU2NjUxXHU2NzEyXHU2NzEzXHU2ODFmXHU2ODFhXHU2ODQ5XHU2ODMyXHU2ODMzXHU2ODNiXHU2ODRiXHU2ODRmXHU2ODE2XHU2ODMxXHU2ODFjXHU2ODM1XHU2ODJiXHU2ODJkXHU2ODJmXHU2ODRlXHU2ODQ0XHU2ODM0XHU2ODFkXHU2''@;'; + put 'put ''ODEyXHU2ODE0XHU2ODI2XHU2ODI4XHU2ODJlXHU2ODRkXHU2ODNhXHU2ODI1XHU2ODIwXHU2YjJjXHU2YjJmXHU2YjJkXHU2YjMxXHU2YjM0XHU2YjZkXHU4MDgyXHU2Yjg4XHU2YmU2XHU2YmU0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA5XS5sZW5ndGg7KytFKTY1NTMzIT09Qlsy''@;'; + put 'put ''MDldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwOV1bRV1dPTUzNTA0K0UsTFs1MzUwNCtFXT1CWzIwOV1bRV0pO2ZvcihCWzIxMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmJlOFx1NmJlM1x1NmJlMlx1NmJlN1x1NmMyNVx1''@;'; + put 'put ''NmQ3YVx1NmQ2M1x1NmQ2NFx1NmQ3Nlx1NmQwZFx1NmQ2MVx1NmQ5Mlx1NmQ1OFx1NmQ2Mlx1NmQ2ZFx1NmQ2Zlx1NmQ5MVx1NmQ4ZFx1NmRlZlx1NmQ3Zlx1NmQ4Nlx1NmQ1ZVx1NmQ2N1x1NmQ2MFx1NmQ5N1x1NmQ3MFx1NmQ3Y1x1NmQ1Zlx1NmQ4Mlx1NmQ5OFx1NmQyZlx1NmQ2OFx1NmQ4''@;'; + put 'put ''Ylx1NmQ3ZVx1NmQ4MFx1NmQ4NFx1NmQxNlx1NmQ4M1x1NmQ3Ylx1NmQ3ZFx1NmQ3NVx1NmQ5MFx1NzBkY1x1NzBkM1x1NzBkMVx1NzBkZFx1NzBjYlx1N2YzOVx1NzBlMlx1NzBkN1x1NzBkMlx1NzBkZVx1NzBlMFx1NzBkNFx1NzBjZFx1NzBjNVx1NzBjNlx1NzBjN1x1NzBkYVx1NzBjZVx1''@;'; + put 'put ''NzBlMVx1NzI0Mlx1NzI3OFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzI3N1x1NzI3Nlx1NzMwMFx1NzJmYVx1NzJmNFx1NzJmZVx1NzJmNlx1NzJmM1x1NzJmYlx1NzMwMVx1NzNkM1x1NzNkOVx1NzNlNVx1NzNkNlx1NzNiY1x1NzNlN1x1NzNlM1x1NzNlOVx1''@;'; + put 'put ''NzNkY1x1NzNkMlx1NzNkYlx1NzNkNFx1NzNkZFx1NzNkYVx1NzNkN1x1NzNkOFx1NzNlOFx1NzRkZVx1NzRkZlx1NzRmNFx1NzRmNVx1NzUyMVx1NzU1Ylx1NzU1Zlx1NzViMFx1NzVjMVx1NzViYlx1NzVjNFx1NzVjMFx1NzViZlx1NzViNlx1NzViYVx1NzY4YVx1NzZjOVx1NzcxZFx1Nzcx''@;'; + put 'put ''Ylx1NzcxMFx1NzcxM1x1NzcxMlx1NzcyM1x1NzcxMVx1NzcxNVx1NzcxOVx1NzcxYVx1NzcyMlx1NzcyN1x1NzgyM1x1NzgyY1x1NzgyMlx1NzgzNVx1NzgyZlx1NzgyOFx1NzgyZVx1NzgyYlx1NzgyMVx1NzgyOVx1NzgzM1x1NzgyYVx1NzgzMVx1Nzk1NFx1Nzk1Ylx1Nzk0Zlx1Nzk1Y1x1''@;'; + put 'put ''Nzk1M1x1Nzk1Mlx1Nzk1MVx1NzllYlx1NzllY1x1NzllMFx1NzllZVx1NzllZFx1NzllYVx1NzlkY1x1NzlkZVx1NzlkZFx1N2E4Nlx1N2E4OVx1N2E4NVx1N2E4Ylx1N2E4Y1x1N2E4YVx1N2E4N1x1N2FkOFx1N2IxMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxMF0ubGVuZ3RoOysr''@;'; + put 'put ''RSk2NTUzMyE9PUJbMjEwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTBdW0VdXT01Mzc2MCtFLExbNTM3NjArRV09QlsyMTBdW0VdKTtmb3IoQlsyMTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdiMDRcdTdiMTNcdTdiMDVc''@;'; + put 'put ''dTdiMGZcdTdiMDhcdTdiMGFcdTdiMGVcdTdiMDlcdTdiMTJcdTdjODRcdTdjOTFcdTdjOGFcdTdjOGNcdTdjODhcdTdjOGRcdTdjODVcdTdkMWVcdTdkMWRcdTdkMTFcdTdkMGVcdTdkMThcdTdkMTZcdTdkMTNcdTdkMWZcdTdkMTJcdTdkMGZcdTdkMGNcdTdmNWNcdTdmNjFcdTdmNWVcdTdm''@;'; + put 'put ''NjBcdTdmNWRcdTdmNWJcdTdmOTZcdTdmOTJcdTdmYzNcdTdmYzJcdTdmYzBcdTgwMTZcdTgwM2VcdTgwMzlcdTgwZmFcdTgwZjJcdTgwZjlcdTgwZjVcdTgxMDFcdTgwZmJcdTgxMDBcdTgyMDFcdTgyMmZcdTgyMjVcdTgzMzNcdTgzMmRcdTgzNDRcdTgzMTlcdTgzNTFcdTgzMjVcdTgzNTZc''@;'; + put 'put ''dTgzM2ZcdTgzNDFcdTgzMjZcdTgzMWNcdTgzMjJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgzNDJcdTgzNGVcdTgzMWJcdTgzMmFcdTgzMDhcdTgzM2NcdTgzNGRcdTgzMTZcdTgzMjRcdTgzMjBcdTgzMzdcdTgzMmZcdTgzMjlcdTgzNDdcdTgzNDVcdTgzNGNc''@;'; + put 'put ''dTgzNTNcdTgzMWVcdTgzMmNcdTgzNGJcdTgzMjdcdTgzNDhcdTg2NTNcdTg2NTJcdTg2YTJcdTg2YThcdTg2OTZcdTg2OGRcdTg2OTFcdTg2OWVcdTg2ODdcdTg2OTdcdTg2ODZcdTg2OGJcdTg2OWFcdTg2ODVcdTg2YTVcdTg2OTlcdTg2YTFcdTg2YTdcdTg2OTVcdTg2OThcdTg2OGVcdTg2''@;'; + put 'put ''OWRcdTg2OTBcdTg2OTRcdTg4NDNcdTg4NDRcdTg4NmRcdTg4NzVcdTg4NzZcdTg4NzJcdTg4ODBcdTg4NzFcdTg4N2ZcdTg4NmZcdTg4ODNcdTg4N2VcdTg4NzRcdTg4N2NcdThhMTJcdThjNDdcdThjNTdcdThjN2JcdThjYTRcdThjYTNcdThkNzZcdThkNzhcdThkYjVcdThkYjdcdThkYjZc''@;'; + put 'put ''dThlZDFcdThlZDNcdThmZmVcdThmZjVcdTkwMDJcdThmZmZcdThmZmJcdTkwMDRcdThmZmNcdThmZjZcdTkwZDZcdTkwZTBcdTkwZDlcdTkwZGFcdTkwZTNcdTkwZGZcdTkwZTVcdTkwZDhcdTkwZGJcdTkwZDdcdTkwZGNcdTkwZTRcdTkxNTBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9Qlsy''@;'; + put 'put ''MTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjExXVtFXV09NTQwMTYrRSxMWzU0MDE2K0VdPUJbMjExXVtFXSk7Zm9yKEJbMjEyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MTRl''@;'; + put 'put ''XHU5MTRmXHU5MWQ1XHU5MWUyXHU5MWRhXHU5NjVjXHU5NjVmXHU5NmJjXHU5OGUzXHU5YWRmXHU5YjJmXHU0ZTdmXHU1MDcwXHU1MDZhXHU1MDYxXHU1MDVlXHU1MDYwXHU1MDUzXHU1MDRiXHU1MDVkXHU1MDcyXHU1MDQ4XHU1MDRkXHU1MDQxXHU1MDViXHU1MDRhXHU1MDYyXHU1MDE1XHU1''@;'; + put 'put ''MDQ1XHU1MDVmXHU1MDY5XHU1MDZiXHU1MDYzXHU1MDY0XHU1MDQ2XHU1MDQwXHU1MDZlXHU1MDczXHU1MDU3XHU1MDUxXHU1MWQwXHU1MjZiXHU1MjZkXHU1MjZjXHU1MjZlXHU1MmQ2XHU1MmQzXHU1MzJkXHU1MzljXHU1NTc1XHU1NTc2XHU1NTNjXHU1NTRkXHU1NTUwXHU1NTM0XHU1NTJh''@;'; + put 'put ''XHU1NTUxXHU1NTYyXHU1NTM2XHU1NTM1XHU1NTMwXHU1NTUyXHU1NTQ1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NTBjXHU1NTMyXHU1NTY1XHU1NTRlXHU1NTM5XHU1NTQ4XHU1NTJkXHU1NTNiXHU1NTQwXHU1NTRiXHU1NzBhXHU1NzA3XHU1N2ZiXHU1ODE0''@;'; + put 'put ''XHU1N2UyXHU1N2Y2XHU1N2RjXHU1N2Y0XHU1ODAwXHU1N2VkXHU1N2ZkXHU1ODA4XHU1N2Y4XHU1ODBiXHU1N2YzXHU1N2NmXHU1ODA3XHU1N2VlXHU1N2UzXHU1N2YyXHU1N2U1XHU1N2VjXHU1N2UxXHU1ODBlXHU1N2ZjXHU1ODEwXHU1N2U3XHU1ODAxXHU1ODBjXHU1N2YxXHU1N2U5XHU1''@;'; + put 'put ''N2YwXHU1ODBkXHU1ODA0XHU1OTVjXHU1YTYwXHU1YTU4XHU1YTU1XHU1YTY3XHU1YTVlXHU1YTM4XHU1YTM1XHU1YTZkXHU1YTUwXHU1YTVmXHU1YTY1XHU1YTZjXHU1YTUzXHU1YTY0XHU1YTU3XHU1YTQzXHU1YTVkXHU1YTUyXHU1YTQ0XHU1YTViXHU1YTQ4XHU1YThlXHU1YTNlXHU1YTRk''@;'; + put 'put ''XHU1YTM5XHU1YTRjXHU1YTcwXHU1YTY5XHU1YTQ3XHU1YTUxXHU1YTU2XHU1YTQyXHU1YTVjXHU1YjcyXHU1YjZlXHU1YmMxXHU1YmMwXHU1YzU5XHU1ZDFlXHU1ZDBiXHU1ZDFkXHU1ZDFhXHU1ZDIwXHU1ZDBjXHU1ZDI4XHU1ZDBkXHU1ZDI2XHU1ZDI1XHU1ZDBmXHVmZmZkIi5zcGxpdCgi''@;'; + put 'put ''IiksRT0wO0UhPUJbMjEyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxMl1bRV1dPTU0MjcyK0UsTFs1NDI3MitFXT1CWzIxMl1bRV0pO2ZvcihCWzIxM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1NWQzMFx1NWQxMlx1NWQyM1x1NWQxZlx1NWQyZVx1NWUzZVx1NWUzNFx1NWViMVx1NWViNFx1NWViOVx1NWViMlx1NWViM1x1NWYzNlx1NWYzOFx1NWY5Ylx1NWY5Nlx1NWY5Zlx1NjA4YVx1NjA5MFx1NjA4Nlx1NjBiZVx1NjBiMFx1NjBiYVx1NjBkM1x1NjBkNFx1NjBjZlx1''@;'; + put 'put ''NjBlNFx1NjBkOVx1NjBkZFx1NjBjOFx1NjBiMVx1NjBkYlx1NjBiN1x1NjBjYVx1NjBiZlx1NjBjM1x1NjBjZFx1NjBjMFx1NjMzMlx1NjM2NVx1NjM4YVx1NjM4Mlx1NjM3ZFx1NjNiZFx1NjM5ZVx1NjNhZFx1NjM5ZFx1NjM5N1x1NjNhYlx1NjM4ZVx1NjM2Zlx1NjM4N1x1NjM5MFx1NjM2''@;'; + put 'put ''ZVx1NjNhZlx1NjM3NVx1NjM5Y1x1NjM2ZFx1NjNhZVx1NjM3Y1x1NjNhNFx1NjMzYlx1NjM5Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjM3OFx1NjM4NVx1NjM4MVx1NjM5MVx1NjM4ZFx1NjM3MFx1NjU1M1x1NjVjZFx1NjY2NVx1NjY2MVx1NjY1Ylx1NjY1''@;'; + put 'put ''OVx1NjY1Y1x1NjY2Mlx1NjcxOFx1Njg3OVx1Njg4N1x1Njg5MFx1Njg5Y1x1Njg2ZFx1Njg2ZVx1NjhhZVx1NjhhYlx1Njk1Nlx1Njg2Zlx1NjhhM1x1NjhhY1x1NjhhOVx1Njg3NVx1Njg3NFx1NjhiMlx1Njg4Zlx1Njg3N1x1Njg5Mlx1Njg3Y1x1Njg2Ylx1Njg3Mlx1NjhhYVx1Njg4MFx1''@;'; + put 'put ''Njg3MVx1Njg3ZVx1Njg5Ylx1Njg5Nlx1Njg4Ylx1NjhhMFx1Njg4OVx1NjhhNFx1Njg3OFx1Njg3Ylx1Njg5MVx1Njg4Y1x1Njg4YVx1Njg3ZFx1NmIzNlx1NmIzM1x1NmIzN1x1NmIzOFx1NmI5MVx1NmI4Zlx1NmI4ZFx1NmI4ZVx1NmI4Y1x1NmMyYVx1NmRjMFx1NmRhYlx1NmRiNFx1NmRi''@;'; + put 'put ''M1x1NmU3NFx1NmRhY1x1NmRlOVx1NmRlMlx1NmRiN1x1NmRmNlx1NmRkNFx1NmUwMFx1NmRjOFx1NmRlMFx1NmRkZlx1NmRkNlx1NmRiZVx1NmRlNVx1NmRkY1x1NmRkZFx1NmRkYlx1NmRmNFx1NmRjYVx1NmRiZFx1NmRlZFx1NmRmMFx1NmRiYVx1NmRkNVx1NmRjMlx1NmRjZlx1NmRjOVx1''@;'; + put 'put ''ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTNdW0VdXT01NDUyOCtFLExbNTQ1MjgrRV09QlsyMTNdW0VdKTtmb3IoQlsyMTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZkZDBcdTZkZjJcdTZkZDNcdTZkZmRcdTZkZDdcdTZkY2RcdTZkZTNcdTZkYmJcdTcwZmFcdTcxMGRcdTcwZjdcdTcxMTdcdTcwZjRcdTcxMGNcdTcwZjBcdTcxMDRcdTcwZjNcdTcxMTBcdTcwZmNcdTcwZmZcdTcxMDZcdTcxMTNcdTcxMDBcdTcwZjhc''@;'; + put 'put ''dTcwZjZcdTcxMGJcdTcxMDJcdTcxMGVcdTcyN2VcdTcyN2JcdTcyN2NcdTcyN2ZcdTczMWRcdTczMTdcdTczMDdcdTczMTFcdTczMThcdTczMGFcdTczMDhcdTcyZmZcdTczMGZcdTczMWVcdTczODhcdTczZjZcdTczZjhcdTczZjVcdTc0MDRcdTc0MDFcdTczZmRcdTc0MDdcdTc0MDBcdTcz''@;'; + put 'put ''ZmFcdTczZmNcdTczZmZcdTc0MGNcdTc0MGJcdTczZjRcdTc0MDhcdTc1NjRcdTc1NjNcdTc1Y2VcdTc1ZDJcdTc1Y2ZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc1Y2JcdTc1Y2NcdTc1ZDFcdTc1ZDBcdTc2OGZcdTc2ODlcdTc2ZDNcdTc3MzlcdTc3MmZcdTc3''@;'; + put 'put ''MmRcdTc3MzFcdTc3MzJcdTc3MzRcdTc3MzNcdTc3M2RcdTc3MjVcdTc3M2JcdTc3MzVcdTc4NDhcdTc4NTJcdTc4NDlcdTc4NGRcdTc4NGFcdTc4NGNcdTc4MjZcdTc4NDVcdTc4NTBcdTc5NjRcdTc5NjdcdTc5NjlcdTc5NmFcdTc5NjNcdTc5NmJcdTc5NjFcdTc5YmJcdTc5ZmFcdTc5Zjhc''@;'; + put 'put ''dTc5ZjZcdTc5ZjdcdTdhOGZcdTdhOTRcdTdhOTBcdTdiMzVcdTdiNDdcdTdiMzRcdTdiMjVcdTdiMzBcdTdiMjJcdTdiMjRcdTdiMzNcdTdiMThcdTdiMmFcdTdiMWRcdTdiMzFcdTdiMmJcdTdiMmRcdTdiMmZcdTdiMzJcdTdiMzhcdTdiMWFcdTdiMjNcdTdjOTRcdTdjOThcdTdjOTZcdTdj''@;'; + put 'put ''YTNcdTdkMzVcdTdkM2RcdTdkMzhcdTdkMzZcdTdkM2FcdTdkNDVcdTdkMmNcdTdkMjlcdTdkNDFcdTdkNDdcdTdkM2VcdTdkM2ZcdTdkNGFcdTdkM2JcdTdkMjhcdTdmNjNcdTdmOTVcdTdmOWNcdTdmOWRcdTdmOWJcdTdmY2FcdTdmY2JcdTdmY2RcdTdmZDBcdTdmZDFcdTdmYzdcdTdmY2Zc''@;'; + put 'put ''dTdmYzlcdTgwMWZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxNF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE0XVtFXV09NTQ3ODQrRSxMWzU0Nzg0K0VdPUJbMjE0XVtFXSk7Zm9yKEJbMjE1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MDFlXHU4MDFiXHU4MDQ3XHU4MDQzXHU4MDQ4XHU4MTE4XHU4MTI1XHU4MTE5XHU4MTFiXHU4MTJkXHU4MTFmXHU4MTJjXHU4MTFlXHU4MTIxXHU4MTE1XHU4MTI3XHU4MTFkXHU4MTIyXHU4MjExXHU4MjM4XHU4MjMzXHU4MjNh''@;'; + put 'put ''XHU4MjM0XHU4MjMyXHU4Mjc0XHU4MzkwXHU4M2EzXHU4M2E4XHU4MzhkXHU4MzdhXHU4MzczXHU4M2E0XHU4Mzc0XHU4MzhmXHU4MzgxXHU4Mzk1XHU4Mzk5XHU4Mzc1XHU4Mzk0XHU4M2E5XHU4MzdkXHU4MzgzXHU4MzhjXHU4MzlkXHU4MzliXHU4M2FhXHU4MzhiXHU4MzdlXHU4M2E1XHU4''@;'; + put 'put ''M2FmXHU4Mzg4XHU4Mzk3XHU4M2IwXHU4MzdmXHU4M2E2XHU4Mzg3XHU4M2FlXHU4Mzc2XHU4MzlhXHU4NjU5XHU4NjU2XHU4NmJmXHU4NmI3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NmMyXHU4NmMxXHU4NmM1XHU4NmJhXHU4NmIwXHU4NmM4XHU4NmI5XHU4''@;'; + put 'put ''NmIzXHU4NmI4XHU4NmNjXHU4NmI0XHU4NmJiXHU4NmJjXHU4NmMzXHU4NmJkXHU4NmJlXHU4ODUyXHU4ODg5XHU4ODk1XHU4OGE4XHU4OGEyXHU4OGFhXHU4ODlhXHU4ODkxXHU4OGExXHU4ODlmXHU4ODk4XHU4OGE3XHU4ODk5XHU4ODliXHU4ODk3XHU4OGE0XHU4OGFjXHU4ODhjXHU4ODkz''@;'; + put 'put ''XHU4ODhlXHU4OTgyXHU4OWQ2XHU4OWQ5XHU4OWQ1XHU4YTMwXHU4YTI3XHU4YTJjXHU4YTFlXHU4YzM5XHU4YzNiXHU4YzVjXHU4YzVkXHU4YzdkXHU4Y2E1XHU4ZDdkXHU4ZDdiXHU4ZDc5XHU4ZGJjXHU4ZGMyXHU4ZGI5XHU4ZGJmXHU4ZGMxXHU4ZWQ4XHU4ZWRlXHU4ZWRkXHU4ZWRjXHU4''@;'; + put 'put ''ZWQ3XHU4ZWUwXHU4ZWUxXHU5MDI0XHU5MDBiXHU5MDExXHU5MDFjXHU5MDBjXHU5MDIxXHU5MGVmXHU5MGVhXHU5MGYwXHU5MGY0XHU5MGYyXHU5MGYzXHU5MGQ0XHU5MGViXHU5MGVjXHU5MGU5XHU5MTU2XHU5MTU4XHU5MTVhXHU5MTUzXHU5MTU1XHU5MWVjXHU5MWY0XHU5MWYxXHU5MWYz''@;'; + put 'put ''XHU5MWY4XHU5MWU0XHU5MWY5XHU5MWVhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxNV1bRV1dPTU1MDQwK0UsTFs1NTA0MCtFXT1CWzIxNV1bRV0pO2ZvcihCWzIxNl09Ilx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTFlYlx1OTFmN1x1OTFlOFx1OTFlZVx1OTU3YVx1OTU4Nlx1OTU4OFx1OTY3Y1x1OTY2ZFx1OTY2Ylx1OTY3MVx1OTY2Zlx1OTZiZlx1OTc2YVx1OTgwNFx1OThlNVx1OTk5N1x1NTA5Ylx1NTA5NVx1NTA5''@;'; + put 'put ''NFx1NTA5ZVx1NTA4Ylx1NTBhM1x1NTA4M1x1NTA4Y1x1NTA4ZVx1NTA5ZFx1NTA2OFx1NTA5Y1x1NTA5Mlx1NTA4Mlx1NTA4N1x1NTE1Zlx1NTFkNFx1NTMxMlx1NTMxMVx1NTNhNFx1NTNhN1x1NTU5MVx1NTVhOFx1NTVhNVx1NTVhZFx1NTU3N1x1NTY0NVx1NTVhMlx1NTU5M1x1NTU4OFx1''@;'; + put 'put ''NTU4Zlx1NTViNVx1NTU4MVx1NTVhM1x1NTU5Mlx1NTVhNFx1NTU3ZFx1NTU4Y1x1NTVhNlx1NTU3Zlx1NTU5NVx1NTVhMVx1NTU4ZVx1NTcwY1x1NTgyOVx1NTgzN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTgxOVx1NTgxZVx1NTgyN1x1NTgyM1x1NTgyOFx1''@;'; + put 'put ''NTdmNVx1NTg0OFx1NTgyNVx1NTgxY1x1NTgxYlx1NTgzM1x1NTgzZlx1NTgzNlx1NTgyZVx1NTgzOVx1NTgzOFx1NTgyZFx1NTgyY1x1NTgzYlx1NTk2MVx1NWFhZlx1NWE5NFx1NWE5Zlx1NWE3YVx1NWFhMlx1NWE5ZVx1NWE3OFx1NWFhNlx1NWE3Y1x1NWFhNVx1NWFhY1x1NWE5NVx1NWFh''@;'; + put 'put ''ZVx1NWEzN1x1NWE4NFx1NWE4YVx1NWE5N1x1NWE4M1x1NWE4Ylx1NWFhOVx1NWE3Ylx1NWE3ZFx1NWE4Y1x1NWE5Y1x1NWE4Zlx1NWE5M1x1NWE5ZFx1NWJlYVx1NWJjZFx1NWJjYlx1NWJkNFx1NWJkMVx1NWJjYVx1NWJjZVx1NWMwY1x1NWMzMFx1NWQzN1x1NWQ0M1x1NWQ2Ylx1NWQ0MVx1''@;'; + put 'put ''NWQ0Ylx1NWQzZlx1NWQzNVx1NWQ1MVx1NWQ0ZVx1NWQ1NVx1NWQzM1x1NWQzYVx1NWQ1Mlx1NWQzZFx1NWQzMVx1NWQ1OVx1NWQ0Mlx1NWQzOVx1NWQ0OVx1NWQzOFx1NWQzY1x1NWQzMlx1NWQzNlx1NWQ0MFx1NWQ0NVx1NWU0NFx1NWU0MVx1NWY1OFx1NWZhNlx1NWZhNVx1NWZhYlx1NjBj''@;'; + put 'put ''OVx1NjBiOVx1NjBjY1x1NjBlMlx1NjBjZVx1NjBjNFx1NjExNFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTZdW0VdXT01NTI5NitFLExbNTUyOTYrRV09QlsyMTZdW0VdKTtmb3IoQlsy''@;'; + put 'put ''MTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwZjJcdTYxMGFcdTYxMTZcdTYxMDVcdTYwZjVcdTYxMTNcdTYwZjhcdTYwZmNcdTYwZmVcdTYwYzFcdTYxMDNcdTYxMThcdTYxMWRcdTYxMTBcdTYwZmZcdTYxMDRcdTYxMGJcdTYy''@;'; + put 'put ''NGFcdTYzOTRcdTYzYjFcdTYzYjBcdTYzY2VcdTYzZTVcdTYzZThcdTYzZWZcdTYzYzNcdTY0OWRcdTYzZjNcdTYzY2FcdTYzZTBcdTYzZjZcdTYzZDVcdTYzZjJcdTYzZjVcdTY0NjFcdTYzZGZcdTYzYmVcdTYzZGRcdTYzZGNcdTYzYzRcdTYzZDhcdTYzZDNcdTYzYzJcdTYzYzdcdTYzY2Nc''@;'; + put 'put ''dTYzY2JcdTYzYzhcdTYzZjBcdTYzZDdcdTYzZDlcdTY1MzJcdTY1NjdcdTY1NmFcdTY1NjRcdTY1NWNcdTY1NjhcdTY1NjVcdTY1OGNcdTY1OWRcdTY1OWVcdTY1YWVcdTY1ZDBcdTY1ZDJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY2N2NcdTY2NmNcdTY2N2Jc''@;'; + put 'put ''dTY2ODBcdTY2NzFcdTY2NzlcdTY2NmFcdTY2NzJcdTY3MDFcdTY5MGNcdTY4ZDNcdTY5MDRcdTY4ZGNcdTY5MmFcdTY4ZWNcdTY4ZWFcdTY4ZjFcdTY5MGZcdTY4ZDZcdTY4ZjdcdTY4ZWJcdTY4ZTRcdTY4ZjZcdTY5MTNcdTY5MTBcdTY4ZjNcdTY4ZTFcdTY5MDdcdTY4Y2NcdTY5MDhcdTY5''@;'; + put 'put ''NzBcdTY4YjRcdTY5MTFcdTY4ZWZcdTY4YzZcdTY5MTRcdTY4ZjhcdTY4ZDBcdTY4ZmRcdTY4ZmNcdTY4ZThcdTY5MGJcdTY5MGFcdTY5MTdcdTY4Y2VcdTY4YzhcdTY4ZGRcdTY4ZGVcdTY4ZTZcdTY4ZjRcdTY4ZDFcdTY5MDZcdTY4ZDRcdTY4ZTlcdTY5MTVcdTY5MjVcdTY4YzdcdTZiMzlc''@;'; + put 'put ''dTZiM2JcdTZiM2ZcdTZiM2NcdTZiOTRcdTZiOTdcdTZiOTlcdTZiOTVcdTZiYmRcdTZiZjBcdTZiZjJcdTZiZjNcdTZjMzBcdTZkZmNcdTZlNDZcdTZlNDdcdTZlMWZcdTZlNDlcdTZlODhcdTZlM2NcdTZlM2RcdTZlNDVcdTZlNjJcdTZlMmJcdTZlM2ZcdTZlNDFcdTZlNWRcdTZlNzNcdTZl''@;'; + put 'put ''MWNcdTZlMzNcdTZlNGJcdTZlNDBcdTZlNTFcdTZlM2JcdTZlMDNcdTZlMmVcdTZlNWVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE3XVtFXV09NTU1NTIrRSxMWzU1NTUyK0VdPUJbMjE3''@;'; + put 'put ''XVtFXSk7Zm9yKEJbMjE4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZTY4XHU2ZTVjXHU2ZTYxXHU2ZTMxXHU2ZTI4XHU2ZTYwXHU2ZTcxXHU2ZTZiXHU2ZTM5XHU2ZTIyXHU2ZTMwXHU2ZTUzXHU2ZTY1XHU2ZTI3XHU2ZTc4XHU2''@;'; + put 'put ''ZTY0XHU2ZTc3XHU2ZTU1XHU2ZTc5XHU2ZTUyXHU2ZTY2XHU2ZTM1XHU2ZTM2XHU2ZTVhXHU3MTIwXHU3MTFlXHU3MTJmXHU3MGZiXHU3MTJlXHU3MTMxXHU3MTIzXHU3MTI1XHU3MTIyXHU3MTMyXHU3MTFmXHU3MTI4XHU3MTNhXHU3MTFiXHU3MjRiXHU3MjVhXHU3Mjg4XHU3Mjg5XHU3Mjg2''@;'; + put 'put ''XHU3Mjg1XHU3MjhiXHU3MzEyXHU3MzBiXHU3MzMwXHU3MzIyXHU3MzMxXHU3MzMzXHU3MzI3XHU3MzMyXHU3MzJkXHU3MzI2XHU3MzIzXHU3MzM1XHU3MzBjXHU3NDJlXHU3NDJjXHU3NDMwXHU3NDJiXHU3NDE2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NDFh''@;'; + put 'put ''XHU3NDIxXHU3NDJkXHU3NDMxXHU3NDI0XHU3NDIzXHU3NDFkXHU3NDI5XHU3NDIwXHU3NDMyXHU3NGZiXHU3NTJmXHU3NTZmXHU3NTZjXHU3NWU3XHU3NWRhXHU3NWUxXHU3NWU2XHU3NWRkXHU3NWRmXHU3NWU0XHU3NWQ3XHU3Njk1XHU3NjkyXHU3NmRhXHU3NzQ2XHU3NzQ3XHU3NzQ0XHU3''@;'; + put 'put ''NzRkXHU3NzQ1XHU3NzRhXHU3NzRlXHU3NzRiXHU3NzRjXHU3N2RlXHU3N2VjXHU3ODYwXHU3ODY0XHU3ODY1XHU3ODVjXHU3ODZkXHU3ODcxXHU3ODZhXHU3ODZlXHU3ODcwXHU3ODY5XHU3ODY4XHU3ODVlXHU3ODYyXHU3OTc0XHU3OTczXHU3OTcyXHU3OTcwXHU3YTAyXHU3YTBhXHU3YTAz''@;'; + put 'put ''XHU3YTBjXHU3YTA0XHU3YTk5XHU3YWU2XHU3YWU0XHU3YjRhXHU3YjNiXHU3YjQ0XHU3YjQ4XHU3YjRjXHU3YjRlXHU3YjQwXHU3YjU4XHU3YjQ1XHU3Y2EyXHU3YzllXHU3Y2E4XHU3Y2ExXHU3ZDU4XHU3ZDZmXHU3ZDYzXHU3ZDUzXHU3ZDU2XHU3ZDY3XHU3ZDZhXHU3ZDRmXHU3ZDZkXHU3''@;'; + put 'put ''ZDVjXHU3ZDZiXHU3ZDUyXHU3ZDU0XHU3ZDY5XHU3ZDUxXHU3ZDVmXHU3ZDRlXHU3ZjNlXHU3ZjNmXHU3ZjY1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMThdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxOF1bRV1dPTU1ODA4K0UsTFs1''@;'; + put 'put ''NTgwOCtFXT1CWzIxOF1bRV0pO2ZvcihCWzIxOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2Y2Nlx1N2ZhMlx1N2ZhMFx1N2ZhMVx1N2ZkN1x1ODA1MVx1ODA0Zlx1ODA1MFx1ODBmZVx1ODBkNFx1ODE0M1x1ODE0YVx1ODE1Mlx1''@;'; + put 'put ''ODE0Zlx1ODE0N1x1ODEzZFx1ODE0ZFx1ODEzYVx1ODFlNlx1ODFlZVx1ODFmN1x1ODFmOFx1ODFmOVx1ODIwNFx1ODIzY1x1ODIzZFx1ODIzZlx1ODI3NVx1ODMzYlx1ODNjZlx1ODNmOVx1ODQyM1x1ODNjMFx1ODNlOFx1ODQxMlx1ODNlN1x1ODNlNFx1ODNmY1x1ODNmNlx1ODQxMFx1ODNj''@;'; + put 'put ''Nlx1ODNjOFx1ODNlYlx1ODNlM1x1ODNiZlx1ODQwMVx1ODNkZFx1ODNlNVx1ODNkOFx1ODNmZlx1ODNlMVx1ODNjYlx1ODNjZVx1ODNkNlx1ODNmNVx1ODNjOVx1ODQwOVx1ODQwZlx1ODNkZVx1ODQxMVx1ODQwNlx1ODNjMlx1ODNmM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ODNkNVx1ODNmYVx1ODNjN1x1ODNkMVx1ODNlYVx1ODQxM1x1ODNjM1x1ODNlY1x1ODNlZVx1ODNjNFx1ODNmYlx1ODNkN1x1ODNlMlx1ODQxYlx1ODNkYlx1ODNmZVx1ODZkOFx1ODZlMlx1ODZlNlx1ODZkM1x1ODZlM1x1ODZkYVx1ODZlYVx1ODZkZFx1ODZlYlx1ODZkY1x1''@;'; + put 'put ''ODZlY1x1ODZlOVx1ODZkN1x1ODZlOFx1ODZkMVx1ODg0OFx1ODg1Nlx1ODg1NVx1ODhiYVx1ODhkN1x1ODhiOVx1ODhiOFx1ODhjMFx1ODhiZVx1ODhiNlx1ODhiY1x1ODhiN1x1ODhiZFx1ODhiMlx1ODkwMVx1ODhjOVx1ODk5NVx1ODk5OFx1ODk5N1x1ODlkZFx1ODlkYVx1ODlkYlx1OGE0''@;'; + put 'put ''ZVx1OGE0ZFx1OGEzOVx1OGE1OVx1OGE0MFx1OGE1N1x1OGE1OFx1OGE0NFx1OGE0NVx1OGE1Mlx1OGE0OFx1OGE1MVx1OGE0YVx1OGE0Y1x1OGE0Zlx1OGM1Zlx1OGM4MVx1OGM4MFx1OGNiYVx1OGNiZVx1OGNiMFx1OGNiOVx1OGNiNVx1OGQ4NFx1OGQ4MFx1OGQ4OVx1OGRkOFx1OGRkM1x1''@;'; + put 'put ''OGRjZFx1OGRjN1x1OGRkNlx1OGRkY1x1OGRjZlx1OGRkNVx1OGRkOVx1OGRjOFx1OGRkN1x1OGRjNVx1OGVlZlx1OGVmN1x1OGVmYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTldW0Vd''@;'; + put 'put ''XT01NjA2NCtFLExbNTYwNjQrRV09QlsyMTldW0VdKTtmb3IoQlsyMjBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThlZjlcdThlZTZcdThlZWVcdThlZTVcdThlZjVcdThlZTdcdThlZThcdThlZjZcdThlZWJcdThlZjFcdThlZWNc''@;'; + put 'put ''dThlZjRcdThlZTlcdTkwMmRcdTkwMzRcdTkwMmZcdTkxMDZcdTkxMmNcdTkxMDRcdTkwZmZcdTkwZmNcdTkxMDhcdTkwZjlcdTkwZmJcdTkxMDFcdTkxMDBcdTkxMDdcdTkxMDVcdTkxMDNcdTkxNjFcdTkxNjRcdTkxNWZcdTkxNjJcdTkxNjBcdTkyMDFcdTkyMGFcdTkyMjVcdTkyMDNcdTky''@;'; + put 'put ''MWFcdTkyMjZcdTkyMGZcdTkyMGNcdTkyMDBcdTkyMTJcdTkxZmZcdTkxZmRcdTkyMDZcdTkyMDRcdTkyMjdcdTkyMDJcdTkyMWNcdTkyMjRcdTkyMTlcdTkyMTdcdTkyMDVcdTkyMTZcdTk1N2JcdTk1OGRcdTk1OGNcdTk1OTBcdTk2ODdcdTk2N2VcdTk2ODhcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk2ODlcdTk2ODNcdTk2ODBcdTk2YzJcdTk2YzhcdTk2YzNcdTk2ZjFcdTk2ZjBcdTk3NmNcdTk3NzBcdTk3NmVcdTk4MDdcdTk4YTlcdTk4ZWJcdTljZTZcdTllZjlcdTRlODNcdTRlODRcdTRlYjZcdTUwYmRcdTUwYmZcdTUwYzZcdTUwYWVcdTUwYzRc''@;'; + put 'put ''dTUwY2FcdTUwYjRcdTUwYzhcdTUwYzJcdTUwYjBcdTUwYzFcdTUwYmFcdTUwYjFcdTUwY2JcdTUwYzlcdTUwYjZcdTUwYjhcdTUxZDdcdTUyN2FcdTUyNzhcdTUyN2JcdTUyN2NcdTU1YzNcdTU1ZGJcdTU1Y2NcdTU1ZDBcdTU1Y2JcdTU1Y2FcdTU1ZGRcdTU1YzBcdTU1ZDRcdTU1YzRcdTU1''@;'; + put 'put ''ZTlcdTU1YmZcdTU1ZDJcdTU1OGRcdTU1Y2ZcdTU1ZDVcdTU1ZTJcdTU1ZDZcdTU1YzhcdTU1ZjJcdTU1Y2RcdTU1ZDlcdTU1YzJcdTU3MTRcdTU4NTNcdTU4NjhcdTU4NjRcdTU4NGZcdTU4NGRcdTU4NDlcdTU4NmZcdTU4NTVcdTU4NGVcdTU4NWRcdTU4NTlcdTU4NjVcdTU4NWJcdTU4M2Rc''@;'; + put 'put ''dTU4NjNcdTU4NzFcdTU4ZmNcdTVhYzdcdTVhYzRcdTVhY2JcdTVhYmFcdTVhYjhcdTVhYjFcdTVhYjVcdTVhYjBcdTVhYmZcdTVhYzhcdTVhYmJcdTVhYzZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyMF1bRV0uY2hhckNvZGVBdCgwKSYm''@;'; + put 'put ''KG1lW0JbMjIwXVtFXV09NTYzMjArRSxMWzU2MzIwK0VdPUJbMjIwXVtFXSk7Zm9yKEJbMjIxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YWI3XHU1YWMwXHU1YWNhXHU1YWI0XHU1YWI2XHU1YWNkXHU1YWI5XHU1YTkwXHU1YmQ2''@;'; + put 'put ''XHU1YmQ4XHU1YmQ5XHU1YzFmXHU1YzMzXHU1ZDcxXHU1ZDYzXHU1ZDRhXHU1ZDY1XHU1ZDcyXHU1ZDZjXHU1ZDVlXHU1ZDY4XHU1ZDY3XHU1ZDYyXHU1ZGYwXHU1ZTRmXHU1ZTRlXHU1ZTRhXHU1ZTRkXHU1ZTRiXHU1ZWM1XHU1ZWNjXHU1ZWM2XHU1ZWNiXHU1ZWM3XHU1ZjQwXHU1ZmFmXHU1''@;'; + put 'put ''ZmFkXHU2MGY3XHU2MTQ5XHU2MTRhXHU2MTJiXHU2MTQ1XHU2MTM2XHU2MTMyXHU2MTJlXHU2MTQ2XHU2MTJmXHU2MTRmXHU2MTI5XHU2MTQwXHU2MjIwXHU5MTY4XHU2MjIzXHU2MjI1XHU2MjI0XHU2M2M1XHU2M2YxXHU2M2ViXHU2NDEwXHU2NDEyXHU2NDA5XHU2NDIwXHU2NDI0XHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NDMzXHU2NDQzXHU2NDFmXHU2NDE1XHU2NDE4XHU2NDM5XHU2NDM3XHU2NDIyXHU2NDIzXHU2NDBjXHU2NDI2XHU2NDMwXHU2NDI4XHU2NDQxXHU2NDM1XHU2NDJmXHU2NDBhXHU2NDFhXHU2NDQwXHU2NDI1XHU2NDI3XHU2NDBi''@;'; + put 'put ''XHU2M2U3XHU2NDFiXHU2NDJlXHU2NDIxXHU2NDBlXHU2NTZmXHU2NTkyXHU2NWQzXHU2Njg2XHU2NjhjXHU2Njk1XHU2NjkwXHU2NjhiXHU2NjhhXHU2Njk5XHU2Njk0XHU2Njc4XHU2NzIwXHU2OTY2XHU2OTVmXHU2OTM4XHU2OTRlXHU2OTYyXHU2OTcxXHU2OTNmXHU2OTQ1XHU2OTZhXHU2''@;'; + put 'put ''OTM5XHU2OTQyXHU2OTU3XHU2OTU5XHU2OTdhXHU2OTQ4XHU2OTQ5XHU2OTM1XHU2OTZjXHU2OTMzXHU2OTNkXHU2OTY1XHU2OGYwXHU2OTc4XHU2OTM0XHU2OTY5XHU2OTQwXHU2OTZmXHU2OTQ0XHU2OTc2XHU2OTU4XHU2OTQxXHU2OTc0XHU2OTRjXHU2OTNiXHU2OTRiXHU2OTM3XHU2OTVj''@;'; + put 'put ''XHU2OTRmXHU2OTUxXHU2OTMyXHU2OTUyXHU2OTJmXHU2OTdiXHU2OTNjXHU2YjQ2XHU2YjQ1XHU2YjQzXHU2YjQyXHU2YjQ4XHU2YjQxXHU2YjliXHVmYTBkXHU2YmZiXHU2YmZjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjIxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjFdW0VdLmNo''@;'; + put 'put ''YXJDb2RlQXQoMCkmJihtZVtCWzIyMV1bRV1dPTU2NTc2K0UsTFs1NjU3NitFXT1CWzIyMV1bRV0pO2ZvcihCWzIyMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmJmOVx1NmJmN1x1NmJmOFx1NmU5Ylx1NmVkNlx1NmVjOFx1NmU4''@;'; + put 'put ''Zlx1NmVjMFx1NmU5Zlx1NmU5M1x1NmU5NFx1NmVhMFx1NmViMVx1NmViOVx1NmVjNlx1NmVkMlx1NmViZFx1NmVjMVx1NmU5ZVx1NmVjOVx1NmViN1x1NmViMFx1NmVjZFx1NmVhNlx1NmVjZlx1NmViMlx1NmViZVx1NmVjM1x1NmVkY1x1NmVkOFx1NmU5OVx1NmU5Mlx1NmU4ZVx1NmU4ZFx1''@;'; + put 'put ''NmVhNFx1NmVhMVx1NmViZlx1NmViM1x1NmVkMFx1NmVjYVx1NmU5N1x1NmVhZVx1NmVhM1x1NzE0N1x1NzE1NFx1NzE1Mlx1NzE2M1x1NzE2MFx1NzE0MVx1NzE1ZFx1NzE2Mlx1NzE3Mlx1NzE3OFx1NzE2YVx1NzE2MVx1NzE0Mlx1NzE1OFx1NzE0M1x1NzE0Ylx1NzE3MFx1NzE1Zlx1NzE1''@;'; + put 'put ''MFx1NzE1M1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzE0NFx1NzE0ZFx1NzE1YVx1NzI0Zlx1NzI4ZFx1NzI4Y1x1NzI5MVx1NzI5MFx1NzI4ZVx1NzMzY1x1NzM0Mlx1NzMzYlx1NzMzYVx1NzM0MFx1NzM0YVx1NzM0OVx1NzQ0NFx1NzQ0YVx1NzQ0Ylx1NzQ1''@;'; + put 'put ''Mlx1NzQ1MVx1NzQ1N1x1NzQ0MFx1NzQ0Zlx1NzQ1MFx1NzQ0ZVx1NzQ0Mlx1NzQ0Nlx1NzQ0ZFx1NzQ1NFx1NzRlMVx1NzRmZlx1NzRmZVx1NzRmZFx1NzUxZFx1NzU3OVx1NzU3N1x1Njk4M1x1NzVlZlx1NzYwZlx1NzYwM1x1NzVmN1x1NzVmZVx1NzVmY1x1NzVmOVx1NzVmOFx1NzYxMFx1''@;'; + put 'put ''NzVmYlx1NzVmNlx1NzVlZFx1NzVmNVx1NzVmZFx1NzY5OVx1NzZiNVx1NzZkZFx1Nzc1NVx1Nzc1Zlx1Nzc2MFx1Nzc1Mlx1Nzc1Nlx1Nzc1YVx1Nzc2OVx1Nzc2N1x1Nzc1NFx1Nzc1OVx1Nzc2ZFx1NzdlMFx1Nzg4N1x1Nzg5YVx1Nzg5NFx1Nzg4Zlx1Nzg4NFx1Nzg5NVx1Nzg4NVx1Nzg4''@;'; + put 'put ''Nlx1NzhhMVx1Nzg4M1x1Nzg3OVx1Nzg5OVx1Nzg4MFx1Nzg5Nlx1Nzg3Ylx1Nzk3Y1x1Nzk4Mlx1Nzk3ZFx1Nzk3OVx1N2ExMVx1N2ExOFx1N2ExOVx1N2ExMlx1N2ExN1x1N2ExNVx1N2EyMlx1N2ExM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyMl0ubGVuZ3RoOysrRSk2NTUzMyE9''@;'; + put 'put ''PUJbMjIyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjJdW0VdXT01NjgzMitFLExbNTY4MzIrRV09QlsyMjJdW0VdKTtmb3IoQlsyMjNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdhMWJcdTdhMTBcdTdhYTNcdTdhYTJcdTdh''@;'; + put 'put ''OWVcdTdhZWJcdTdiNjZcdTdiNjRcdTdiNmRcdTdiNzRcdTdiNjlcdTdiNzJcdTdiNjVcdTdiNzNcdTdiNzFcdTdiNzBcdTdiNjFcdTdiNzhcdTdiNzZcdTdiNjNcdTdjYjJcdTdjYjRcdTdjYWZcdTdkODhcdTdkODZcdTdkODBcdTdkOGRcdTdkN2ZcdTdkODVcdTdkN2FcdTdkOGVcdTdkN2Jc''@;'; + put 'put ''dTdkODNcdTdkN2NcdTdkOGNcdTdkOTRcdTdkODRcdTdkN2RcdTdkOTJcdTdmNmRcdTdmNmJcdTdmNjdcdTdmNjhcdTdmNmNcdTdmYTZcdTdmYTVcdTdmYTdcdTdmZGJcdTdmZGNcdTgwMjFcdTgxNjRcdTgxNjBcdTgxNzdcdTgxNWNcdTgxNjlcdTgxNWJcdTgxNjJcdTgxNzJcdTY3MjFcdTgx''@;'; + put 'put ''NWVcdTgxNzZcdTgxNjdcdTgxNmZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgxNDRcdTgxNjFcdTgyMWRcdTgyNDlcdTgyNDRcdTgyNDBcdTgyNDJcdTgyNDVcdTg0ZjFcdTg0M2ZcdTg0NTZcdTg0NzZcdTg0NzlcdTg0OGZcdTg0OGRcdTg0NjVcdTg0NTFcdTg0''@;'; + put 'put ''NDBcdTg0ODZcdTg0NjdcdTg0MzBcdTg0NGRcdTg0N2RcdTg0NWFcdTg0NTlcdTg0NzRcdTg0NzNcdTg0NWRcdTg1MDdcdTg0NWVcdTg0MzdcdTg0M2FcdTg0MzRcdTg0N2FcdTg0NDNcdTg0NzhcdTg0MzJcdTg0NDVcdTg0MjlcdTgzZDlcdTg0NGJcdTg0MmZcdTg0NDJcdTg0MmRcdTg0NWZc''@;'; + put 'put ''dTg0NzBcdTg0MzlcdTg0NGVcdTg0NGNcdTg0NTJcdTg0NmZcdTg0YzVcdTg0OGVcdTg0M2JcdTg0NDdcdTg0MzZcdTg0MzNcdTg0NjhcdTg0N2VcdTg0NDRcdTg0MmJcdTg0NjBcdTg0NTRcdTg0NmVcdTg0NTBcdTg3MGJcdTg3MDRcdTg2ZjdcdTg3MGNcdTg2ZmFcdTg2ZDZcdTg2ZjVcdTg3''@;'; + put 'put ''NGRcdTg2ZjhcdTg3MGVcdTg3MDlcdTg3MDFcdTg2ZjZcdTg3MGRcdTg3MDVcdTg4ZDZcdTg4Y2JcdTg4Y2RcdTg4Y2VcdTg4ZGVcdTg4ZGJcdTg4ZGFcdTg4Y2NcdTg4ZDBcdTg5ODVcdTg5OWJcdTg5ZGZcdTg5ZTVcdTg5ZTRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjNdLmxlbmd0''@;'; + put 'put ''aDsrK0UpNjU1MzMhPT1CWzIyM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIzXVtFXV09NTcwODgrRSxMWzU3MDg4K0VdPUJbMjIzXVtFXSk7Zm9yKEJbMjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OWUxXHU4OWUwXHU4''@;'; + put 'put ''OWUyXHU4OWRjXHU4OWU2XHU4YTc2XHU4YTg2XHU4YTdmXHU4YTYxXHU4YTNmXHU4YTc3XHU4YTgyXHU4YTg0XHU4YTc1XHU4YTgzXHU4YTgxXHU4YTc0XHU4YTdhXHU4YzNjXHU4YzRiXHU4YzRhXHU4YzY1XHU4YzY0XHU4YzY2XHU4Yzg2XHU4Yzg0XHU4Yzg1XHU4Y2NjXHU4ZDY4XHU4ZDY5''@;'; + put 'put ''XHU4ZDkxXHU4ZDhjXHU4ZDhlXHU4ZDhmXHU4ZDhkXHU4ZDkzXHU4ZDk0XHU4ZDkwXHU4ZDkyXHU4ZGYwXHU4ZGUwXHU4ZGVjXHU4ZGYxXHU4ZGVlXHU4ZGQwXHU4ZGU5XHU4ZGUzXHU4ZGUyXHU4ZGU3XHU4ZGYyXHU4ZGViXHU4ZGY0XHU4ZjA2XHU4ZWZmXHU4ZjAxXHU4ZjAwXHU4ZjA1XHU4''@;'; + put 'put ''ZjA3XHU4ZjA4XHU4ZjAyXHU4ZjBiXHU5MDUyXHU5MDNmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MDQ0XHU5MDQ5XHU5MDNkXHU5MTEwXHU5MTBkXHU5MTBmXHU5MTExXHU5MTE2XHU5MTE0XHU5MTBiXHU5MTBlXHU5MTZlXHU5MTZmXHU5MjQ4XHU5MjUyXHU5''@;'; + put 'put ''MjMwXHU5MjNhXHU5MjY2XHU5MjMzXHU5MjY1XHU5MjVlXHU5MjgzXHU5MjJlXHU5MjRhXHU5MjQ2XHU5MjZkXHU5MjZjXHU5MjRmXHU5MjYwXHU5MjY3XHU5MjZmXHU5MjM2XHU5MjYxXHU5MjcwXHU5MjMxXHU5MjU0XHU5MjYzXHU5MjUwXHU5MjcyXHU5MjRlXHU5MjUzXHU5MjRjXHU5MjU2''@;'; + put 'put ''XHU5MjMyXHU5NTlmXHU5NTljXHU5NTllXHU5NTliXHU5NjkyXHU5NjkzXHU5NjkxXHU5Njk3XHU5NmNlXHU5NmZhXHU5NmZkXHU5NmY4XHU5NmY1XHU5NzczXHU5Nzc3XHU5Nzc4XHU5NzcyXHU5ODBmXHU5ODBkXHU5ODBlXHU5OGFjXHU5OGY2XHU5OGY5XHU5OWFmXHU5OWIyXHU5OWIwXHU5''@;'; + put 'put ''OWI1XHU5YWFkXHU5YWFiXHU5YjViXHU5Y2VhXHU5Y2VkXHU5Y2U3XHU5ZTgwXHU5ZWZkXHU1MGU2XHU1MGQ0XHU1MGQ3XHU1MGU4XHU1MGYzXHU1MGRiXHU1MGVhXHU1MGRkXHU1MGU0XHU1MGQzXHU1MGVjXHU1MGYwXHU1MGVmXHU1MGUzXHU1MGUwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0Uh''@;'; + put 'put ''PUJbMjI0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNF1bRV1dPTU3MzQ0K0UsTFs1NzM0NCtFXT1CWzIyNF1bRV0pO2ZvcihCWzIyNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''NTFkOFx1NTI4MFx1NTI4MVx1NTJlOVx1NTJlYlx1NTMzMFx1NTNhY1x1NTYyN1x1NTYxNVx1NTYwY1x1NTYxMlx1NTVmY1x1NTYwZlx1NTYxY1x1NTYwMVx1NTYxM1x1NTYwMlx1NTVmYVx1NTYxZFx1NTYwNFx1NTVmZlx1NTVmOVx1NTg4OVx1NTg3Y1x1NTg5MFx1NTg5OFx1NTg4Nlx1NTg4''@;'; + put 'put ''MVx1NTg3Zlx1NTg3NFx1NTg4Ylx1NTg3YVx1NTg4N1x1NTg5MVx1NTg4ZVx1NTg3Nlx1NTg4Mlx1NTg4OFx1NTg3Ylx1NTg5NFx1NTg4Zlx1NThmZVx1NTk2Ylx1NWFkY1x1NWFlZVx1NWFlNVx1NWFkNVx1NWFlYVx1NWFkYVx1NWFlZFx1NWFlYlx1NWFmM1x1NWFlMlx1NWFlMFx1NWFkYlx1''@;'; + put 'put ''NWFlY1x1NWFkZVx1NWFkZFx1NWFkOVx1NWFlOFx1NWFkZlx1NWI3N1x1NWJlMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWJlM1x1NWM2M1x1NWQ4Mlx1NWQ4MFx1NWQ3ZFx1NWQ4Nlx1NWQ3YVx1NWQ4MVx1NWQ3N1x1NWQ4YVx1NWQ4OVx1NWQ4OFx1NWQ3ZVx1''@;'; + put 'put ''NWQ3Y1x1NWQ4ZFx1NWQ3OVx1NWQ3Zlx1NWU1OFx1NWU1OVx1NWU1M1x1NWVkOFx1NWVkMVx1NWVkN1x1NWVjZVx1NWVkY1x1NWVkNVx1NWVkOVx1NWVkMlx1NWVkNFx1NWY0NFx1NWY0M1x1NWY2Zlx1NWZiNlx1NjEyY1x1NjEyOFx1NjE0MVx1NjE1ZVx1NjE3MVx1NjE3M1x1NjE1Mlx1NjE1''@;'; + put 'put ''M1x1NjE3Mlx1NjE2Y1x1NjE4MFx1NjE3NFx1NjE1NFx1NjE3YVx1NjE1Ylx1NjE2NVx1NjEzYlx1NjE2YVx1NjE2MVx1NjE1Nlx1NjIyOVx1NjIyN1x1NjIyYlx1NjQyYlx1NjQ0ZFx1NjQ1Ylx1NjQ1ZFx1NjQ3NFx1NjQ3Nlx1NjQ3Mlx1NjQ3M1x1NjQ3ZFx1NjQ3NVx1NjQ2Nlx1NjRhNlx1''@;'; + put 'put ''NjQ0ZVx1NjQ4Mlx1NjQ1ZVx1NjQ1Y1x1NjQ0Ylx1NjQ1M1x1NjQ2MFx1NjQ1MFx1NjQ3Zlx1NjQzZlx1NjQ2Y1x1NjQ2Ylx1NjQ1OVx1NjQ2NVx1NjQ3N1x1NjU3M1x1NjVhMFx1NjZhMVx1NjZhMFx1NjY5Zlx1NjcwNVx1NjcwNFx1NjcyMlx1NjliMVx1NjliNlx1NjljOVx1ZmZmZCIuc3Bs''@;'; + put 'put ''aXQoIiIpLEU9MDtFIT1CWzIyNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjVdW0VdXT01NzYwMCtFLExbNTc2MDArRV09QlsyMjVdW0VdKTtmb3IoQlsyMjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdTY5YTBcdTY5Y2VcdTY5OTZcdTY5YjBcdTY5YWNcdTY5YmNcdTY5OTFcdTY5OTlcdTY5OGVcdTY5YTdcdTY5OGRcdTY5YTlcdTY5YmVcdTY5YWZcdTY5YmZcdTY5YzRcdTY5YmRcdTY5YTRcdTY5ZDRcdTY5YjlcdTY5Y2FcdTY5OWFcdTY5Y2ZcdTY5YjNcdTY5OTNcdTY5''@;'; + put 'put ''YWFcdTY5YTFcdTY5OWVcdTY5ZDlcdTY5OTdcdTY5OTBcdTY5YzJcdTY5YjVcdTY5YTVcdTY5YzZcdTZiNGFcdTZiNGRcdTZiNGJcdTZiOWVcdTZiOWZcdTZiYTBcdTZiYzNcdTZiYzRcdTZiZmVcdTZlY2VcdTZlZjVcdTZlZjFcdTZmMDNcdTZmMjVcdTZlZjhcdTZmMzdcdTZlZmJcdTZmMmVc''@;'; + put 'put ''dTZmMDlcdTZmNGVcdTZmMTlcdTZmMWFcdTZmMjdcdTZmMThcdTZmM2JcdTZmMTJcdTZlZWRcdTZmMGFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZmMzZcdTZmNzNcdTZlZjlcdTZlZWVcdTZmMmRcdTZmNDBcdTZmMzBcdTZmM2NcdTZmMzVcdTZlZWJcdTZmMDdc''@;'; + put 'put ''dTZmMGVcdTZmNDNcdTZmMDVcdTZlZmRcdTZlZjZcdTZmMzlcdTZmMWNcdTZlZmNcdTZmM2FcdTZmMWZcdTZmMGRcdTZmMWVcdTZmMDhcdTZmMjFcdTcxODdcdTcxOTBcdTcxODlcdTcxODBcdTcxODVcdTcxODJcdTcxOGZcdTcxN2JcdTcxODZcdTcxODFcdTcxOTdcdTcyNDRcdTcyNTNcdTcy''@;'; + put 'put ''OTdcdTcyOTVcdTcyOTNcdTczNDNcdTczNGRcdTczNTFcdTczNGNcdTc0NjJcdTc0NzNcdTc0NzFcdTc0NzVcdTc0NzJcdTc0NjdcdTc0NmVcdTc1MDBcdTc1MDJcdTc1MDNcdTc1N2RcdTc1OTBcdTc2MTZcdTc2MDhcdTc2MGNcdTc2MTVcdTc2MTFcdTc2MGFcdTc2MTRcdTc2YjhcdTc3ODFc''@;'; + put 'put ''dTc3N2NcdTc3ODVcdTc3ODJcdTc3NmVcdTc3ODBcdTc3NmZcdTc3N2VcdTc3ODNcdTc4YjJcdTc4YWFcdTc4YjRcdTc4YWRcdTc4YThcdTc4N2VcdTc4YWJcdTc4OWVcdTc4YTVcdTc4YTBcdTc4YWNcdTc4YTJcdTc4YTRcdTc5OThcdTc5OGFcdTc5OGJcdTc5OTZcdTc5OTVcdTc5OTRcdTc5''@;'; + put 'put ''OTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI2XVtFXV09NTc4NTYrRSxMWzU3ODU2K0VdPUJbMjI2XVtFXSk7Zm9yKEJbMjI3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3OTk3XHU3OTg4XHU3OTkyXHU3OTkwXHU3YTJiXHU3YTRhXHU3YTMwXHU3YTJmXHU3YTI4XHU3YTI2XHU3YWE4XHU3YWFiXHU3YWFjXHU3YWVlXHU3Yjg4XHU3YjljXHU3YjhhXHU3YjkxXHU3YjkwXHU3Yjk2XHU3YjhkXHU3YjhjXHU3YjliXHU3''@;'; + put 'put ''YjhlXHU3Yjg1XHU3Yjk4XHU1Mjg0XHU3Yjk5XHU3YmE0XHU3YjgyXHU3Y2JiXHU3Y2JmXHU3Y2JjXHU3Y2JhXHU3ZGE3XHU3ZGI3XHU3ZGMyXHU3ZGEzXHU3ZGFhXHU3ZGMxXHU3ZGMwXHU3ZGM1XHU3ZDlkXHU3ZGNlXHU3ZGM0XHU3ZGM2XHU3ZGNiXHU3ZGNjXHU3ZGFmXHU3ZGI5XHU3ZDk2''@;'; + put 'put ''XHU3ZGJjXHU3ZDlmXHU3ZGE2XHU3ZGFlXHU3ZGE5XHU3ZGExXHU3ZGM5XHU3ZjczXHU3ZmUyXHU3ZmUzXHU3ZmU1XHU3ZmRlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MDI0XHU4MDVkXHU4MDVjXHU4MTg5XHU4MTg2XHU4MTgzXHU4MTg3XHU4MThkXHU4MThj''@;'; + put 'put ''XHU4MThiXHU4MjE1XHU4NDk3XHU4NGE0XHU4NGExXHU4NDlmXHU4NGJhXHU4NGNlXHU4NGMyXHU4NGFjXHU4NGFlXHU4NGFiXHU4NGI5XHU4NGI0XHU4NGMxXHU4NGNkXHU4NGFhXHU4NDlhXHU4NGIxXHU4NGQwXHU4NDlkXHU4NGE3XHU4NGJiXHU4NGEyXHU4NDk0XHU4NGM3XHU4NGNjXHU4''@;'; + put 'put ''NDliXHU4NGE5XHU4NGFmXHU4NGE4XHU4NGQ2XHU4NDk4XHU4NGI2XHU4NGNmXHU4NGEwXHU4NGQ3XHU4NGQ0XHU4NGQyXHU4NGRiXHU4NGIwXHU4NDkxXHU4NjYxXHU4NzMzXHU4NzIzXHU4NzI4XHU4NzZiXHU4NzQwXHU4NzJlXHU4NzFlXHU4NzIxXHU4NzE5XHU4NzFiXHU4NzQzXHU4NzJj''@;'; + put 'put ''XHU4NzQxXHU4NzNlXHU4NzQ2XHU4NzIwXHU4NzMyXHU4NzJhXHU4NzJkXHU4NzNjXHU4NzEyXHU4NzNhXHU4NzMxXHU4NzM1XHU4NzQyXHU4NzI2XHU4NzI3XHU4NzM4XHU4NzI0XHU4NzFhXHU4NzMwXHU4NzExXHU4OGY3XHU4OGU3XHU4OGYxXHU4OGYyXHU4OGZhXHU4OGZlXHU4OGVlXHU4''@;'; + put 'put ''OGZjXHU4OGY2XHU4OGZiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyN11bRV1dPTU4MTEyK0UsTFs1ODExMitFXT1CWzIyN11bRV0pO2ZvcihCWzIyOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODhmMFx1ODhlY1x1ODhlYlx1ODk5ZFx1ODlhMVx1ODk5Zlx1ODk5ZVx1ODllOVx1ODllYlx1ODllOFx1OGFhYlx1OGE5OVx1OGE4Ylx1OGE5Mlx1OGE4Zlx1OGE5Nlx1OGMzZFx1OGM2OFx1OGM2OVx1OGNkNVx1OGNjZlx1''@;'; + put 'put ''OGNkN1x1OGQ5Nlx1OGUwOVx1OGUwMlx1OGRmZlx1OGUwZFx1OGRmZFx1OGUwYVx1OGUwM1x1OGUwN1x1OGUwNlx1OGUwNVx1OGRmZVx1OGUwMFx1OGUwNFx1OGYxMFx1OGYxMVx1OGYwZVx1OGYwZFx1OTEyM1x1OTExY1x1OTEyMFx1OTEyMlx1OTExZlx1OTExZFx1OTExYVx1OTEyNFx1OTEy''@;'; + put 'put ''MVx1OTExYlx1OTE3YVx1OTE3Mlx1OTE3OVx1OTE3M1x1OTJhNVx1OTJhNFx1OTI3Nlx1OTI5Ylx1OTI3YVx1OTJhMFx1OTI5NFx1OTJhYVx1OTI4ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTJhNlx1OTI5YVx1OTJhYlx1OTI3OVx1OTI5N1x1OTI3Zlx1OTJh''@;'; + put 'put ''M1x1OTJlZVx1OTI4ZVx1OTI4Mlx1OTI5NVx1OTJhMlx1OTI3ZFx1OTI4OFx1OTJhMVx1OTI4YVx1OTI4Nlx1OTI4Y1x1OTI5OVx1OTJhN1x1OTI3ZVx1OTI4N1x1OTJhOVx1OTI5ZFx1OTI4Ylx1OTIyZFx1OTY5ZVx1OTZhMVx1OTZmZlx1OTc1OFx1OTc3ZFx1OTc3YVx1OTc3ZVx1OTc4M1x1''@;'; + put 'put ''OTc4MFx1OTc4Mlx1OTc3Ylx1OTc4NFx1OTc4MVx1OTc3Zlx1OTdjZVx1OTdjZFx1OTgxNlx1OThhZFx1OThhZVx1OTkwMlx1OTkwMFx1OTkwN1x1OTk5ZFx1OTk5Y1x1OTljM1x1OTliOVx1OTliYlx1OTliYVx1OTljMlx1OTliZFx1OTljN1x1OWFiMVx1OWFlM1x1OWFlN1x1OWIzZVx1OWIz''@;'; + put 'put ''Zlx1OWI2MFx1OWI2MVx1OWI1Zlx1OWNmMVx1OWNmMlx1OWNmNVx1OWVhN1x1NTBmZlx1NTEwM1x1NTEzMFx1NTBmOFx1NTEwNlx1NTEwN1x1NTBmNlx1NTBmZVx1NTEwYlx1NTEwY1x1NTBmZFx1NTEwYVx1NTI4Ylx1NTI4Y1x1NTJmMVx1NTJlZlx1NTY0OFx1NTY0Mlx1NTY0Y1x1NTYzNVx1''@;'; + put 'put ''NTY0MVx1NTY0YVx1NTY0OVx1NTY0Nlx1NTY1OFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjhdW0VdXT01ODM2OCtFLExbNTgzNjgrRV09QlsyMjhdW0VdKTtmb3IoQlsyMjldPSJcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU2NWFcdTU2NDBcdTU2MzNcdTU2M2RcdTU2MmNcdTU2M2VcdTU2MzhcdTU2MmFcdTU2M2FcdTU3MWFcdTU4YWJcdTU4OWRcdTU4YjFcdTU4YTBcdTU4YTNcdTU4YWZcdTU4YWNcdTU4YTVcdTU4YTFc''@;'; + put 'put ''dTU4ZmZcdTVhZmZcdTVhZjRcdTVhZmRcdTVhZjdcdTVhZjZcdTViMDNcdTVhZjhcdTViMDJcdTVhZjlcdTViMDFcdTViMDdcdTViMDVcdTViMGZcdTVjNjdcdTVkOTlcdTVkOTdcdTVkOWZcdTVkOTJcdTVkYTJcdTVkOTNcdTVkOTVcdTVkYTBcdTVkOWNcdTVkYTFcdTVkOWFcdTVkOWVcdTVl''@;'; + put 'put ''NjlcdTVlNWRcdTVlNjBcdTVlNWNcdTdkZjNcdTVlZGJcdTVlZGVcdTVlZTFcdTVmNDlcdTVmYjJcdTYxOGJcdTYxODNcdTYxNzlcdTYxYjFcdTYxYjBcdTYxYTJcdTYxODlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYxOWJcdTYxOTNcdTYxYWZcdTYxYWRcdTYx''@;'; + put 'put ''OWZcdTYxOTJcdTYxYWFcdTYxYTFcdTYxOGRcdTYxNjZcdTYxYjNcdTYyMmRcdTY0NmVcdTY0NzBcdTY0OTZcdTY0YTBcdTY0ODVcdTY0OTdcdTY0OWNcdTY0OGZcdTY0OGJcdTY0OGFcdTY0OGNcdTY0YTNcdTY0OWZcdTY0NjhcdTY0YjFcdTY0OThcdTY1NzZcdTY1N2FcdTY1NzlcdTY1N2Jc''@;'; + put 'put ''dTY1YjJcdTY1YjNcdTY2YjVcdTY2YjBcdTY2YTlcdTY2YjJcdTY2YjdcdTY2YWFcdTY2YWZcdTZhMDBcdTZhMDZcdTZhMTdcdTY5ZTVcdTY5ZjhcdTZhMTVcdTY5ZjFcdTY5ZTRcdTZhMjBcdTY5ZmZcdTY5ZWNcdTY5ZTJcdTZhMWJcdTZhMWRcdTY5ZmVcdTZhMjdcdTY5ZjJcdTY5ZWVcdTZh''@;'; + put 'put ''MTRcdTY5ZjdcdTY5ZTdcdTZhNDBcdTZhMDhcdTY5ZTZcdTY5ZmJcdTZhMGRcdTY5ZmNcdTY5ZWJcdTZhMDlcdTZhMDRcdTZhMThcdTZhMjVcdTZhMGZcdTY5ZjZcdTZhMjZcdTZhMDdcdTY5ZjRcdTZhMTZcdTZiNTFcdTZiYTVcdTZiYTNcdTZiYTJcdTZiYTZcdTZjMDFcdTZjMDBcdTZiZmZc''@;'; + put 'put ''dTZjMDJcdTZmNDFcdTZmMjZcdTZmN2VcdTZmODdcdTZmYzZcdTZmOTJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI5XVtFXV09NTg2MjQrRSxMWzU4NjI0K0VdPUJbMjI5XVtFXSk7Zm9y''@;'; + put 'put ''KEJbMjMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZjhkXHU2Zjg5XHU2ZjhjXHU2ZjYyXHU2ZjRmXHU2Zjg1XHU2ZjVhXHU2Zjk2XHU2Zjc2XHU2ZjZjXHU2ZjgyXHU2ZjU1XHU2ZjcyXHU2ZjUyXHU2ZjUwXHU2ZjU3XHU2Zjk0''@;'; + put 'put ''XHU2ZjkzXHU2ZjVkXHU2ZjAwXHU2ZjYxXHU2ZjZiXHU2ZjdkXHU2ZjY3XHU2ZjkwXHU2ZjUzXHU2ZjhiXHU2ZjY5XHU2ZjdmXHU2Zjk1XHU2ZjYzXHU2Zjc3XHU2ZjZhXHU2ZjdiXHU3MWIyXHU3MWFmXHU3MTliXHU3MWIwXHU3MWEwXHU3MTlhXHU3MWE5XHU3MWI1XHU3MTlkXHU3MWE1XHU3''@;'; + put 'put ''MTllXHU3MWE0XHU3MWExXHU3MWFhXHU3MTljXHU3MWE3XHU3MWIzXHU3Mjk4XHU3MjlhXHU3MzU4XHU3MzUyXHU3MzVlXHU3MzVmXHU3MzYwXHU3MzVkXHU3MzViXHU3MzYxXHU3MzVhXHU3MzU5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MzYyXHU3NDg3XHU3''@;'; + put 'put ''NDg5XHU3NDhhXHU3NDg2XHU3NDgxXHU3NDdkXHU3NDg1XHU3NDg4XHU3NDdjXHU3NDc5XHU3NTA4XHU3NTA3XHU3NTdlXHU3NjI1XHU3NjFlXHU3NjE5XHU3NjFkXHU3NjFjXHU3NjIzXHU3NjFhXHU3NjI4XHU3NjFiXHU3NjljXHU3NjlkXHU3NjllXHU3NjliXHU3NzhkXHU3NzhmXHU3Nzg5''@;'; + put 'put ''XHU3Nzg4XHU3OGNkXHU3OGJiXHU3OGNmXHU3OGNjXHU3OGQxXHU3OGNlXHU3OGQ0XHU3OGM4XHU3OGMzXHU3OGM0XHU3OGM5XHU3OTlhXHU3OWExXHU3OWEwXHU3OTljXHU3OWEyXHU3OTliXHU2Yjc2XHU3YTM5XHU3YWIyXHU3YWI0XHU3YWIzXHU3YmI3XHU3YmNiXHU3YmJlXHU3YmFjXHU3''@;'; + put 'put ''YmNlXHU3YmFmXHU3YmI5XHU3YmNhXHU3YmI1XHU3Y2M1XHU3Y2M4XHU3Y2NjXHU3Y2NiXHU3ZGY3XHU3ZGRiXHU3ZGVhXHU3ZGU3XHU3ZGQ3XHU3ZGUxXHU3ZTAzXHU3ZGZhXHU3ZGU2XHU3ZGY2XHU3ZGYxXHU3ZGYwXHU3ZGVlXHU3ZGRmXHU3Zjc2XHU3ZmFjXHU3ZmIwXHU3ZmFkXHU3ZmVk''@;'; + put 'put ''XHU3ZmViXHU3ZmVhXHU3ZmVjXHU3ZmU2XHU3ZmU4XHU4MDY0XHU4MDY3XHU4MWEzXHU4MTlmXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzMF1bRV1dPTU4ODgwK0UsTFs1ODg4MCtFXT1C''@;'; + put 'put ''WzIzMF1bRV0pO2ZvcihCWzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODE5ZVx1ODE5NVx1ODFhMlx1ODE5OVx1ODE5N1x1ODIxNlx1ODI0Zlx1ODI1M1x1ODI1Mlx1ODI1MFx1ODI0ZVx1ODI1MVx1ODUyNFx1ODUzYlx1ODUw''@;'; + put 'put ''Zlx1ODUwMFx1ODUyOVx1ODUwZVx1ODUwOVx1ODUwZFx1ODUxZlx1ODUwYVx1ODUyN1x1ODUxY1x1ODRmYlx1ODUyYlx1ODRmYVx1ODUwOFx1ODUwY1x1ODRmNFx1ODUyYVx1ODRmMlx1ODUxNVx1ODRmN1x1ODRlYlx1ODRmM1x1ODRmY1x1ODUxMlx1ODRlYVx1ODRlOVx1ODUxNlx1ODRmZVx1''@;'; + put 'put ''ODUyOFx1ODUxZFx1ODUyZVx1ODUwMlx1ODRmZFx1ODUxZVx1ODRmNlx1ODUzMVx1ODUyNlx1ODRlN1x1ODRlOFx1ODRmMFx1ODRlZlx1ODRmOVx1ODUxOFx1ODUyMFx1ODUzMFx1ODUwYlx1ODUxOVx1ODUyZlx1ODY2Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ODc1Nlx1ODc2M1x1ODc2NFx1ODc3N1x1ODdlMVx1ODc3M1x1ODc1OFx1ODc1NFx1ODc1Ylx1ODc1Mlx1ODc2MVx1ODc1YVx1ODc1MVx1ODc1ZVx1ODc2ZFx1ODc2YVx1ODc1MFx1ODc0ZVx1ODc1Zlx1ODc1ZFx1ODc2Zlx1ODc2Y1x1ODc3YVx1ODc2ZVx1ODc1Y1x1ODc2NVx1ODc0Zlx1ODc3''@;'; + put 'put ''Ylx1ODc3NVx1ODc2Mlx1ODc2N1x1ODc2OVx1ODg1YVx1ODkwNVx1ODkwY1x1ODkxNFx1ODkwYlx1ODkxN1x1ODkxOFx1ODkxOVx1ODkwNlx1ODkxNlx1ODkxMVx1ODkwZVx1ODkwOVx1ODlhMlx1ODlhNFx1ODlhM1x1ODllZFx1ODlmMFx1ODllY1x1OGFjZlx1OGFjNlx1OGFiOFx1OGFkM1x1''@;'; + put 'put ''OGFkMVx1OGFkNFx1OGFkNVx1OGFiYlx1OGFkN1x1OGFiZVx1OGFjMFx1OGFjNVx1OGFkOFx1OGFjM1x1OGFiYVx1OGFiZFx1OGFkOVx1OGMzZVx1OGM0ZFx1OGM4Zlx1OGNlNVx1OGNkZlx1OGNkOVx1OGNlOFx1OGNkYVx1OGNkZFx1OGNlN1x1OGRhMFx1OGQ5Y1x1OGRhMVx1OGQ5Ylx1OGUy''@;'; + put 'put ''MFx1OGUyM1x1OGUyNVx1OGUyNFx1OGUyZVx1OGUxNVx1OGUxYlx1OGUxNlx1OGUxMVx1OGUxOVx1OGUyNlx1OGUyN1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzFdW0VdXT01OTEzNitF''@;'; + put 'put ''LExbNTkxMzYrRV09QlsyMzFdW0VdKTtmb3IoQlsyMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThlMTRcdThlMTJcdThlMThcdThlMTNcdThlMWNcdThlMTdcdThlMWFcdThmMmNcdThmMjRcdThmMThcdThmMWFcdThmMjBcdThm''@;'; + put 'put ''MjNcdThmMTZcdThmMTdcdTkwNzNcdTkwNzBcdTkwNmZcdTkwNjdcdTkwNmJcdTkxMmZcdTkxMmJcdTkxMjlcdTkxMmFcdTkxMzJcdTkxMjZcdTkxMmVcdTkxODVcdTkxODZcdTkxOGFcdTkxODFcdTkxODJcdTkxODRcdTkxODBcdTkyZDBcdTkyYzNcdTkyYzRcdTkyYzBcdTkyZDlcdTkyYjZc''@;'; + put 'put ''dTkyY2ZcdTkyZjFcdTkyZGZcdTkyZDhcdTkyZTlcdTkyZDdcdTkyZGRcdTkyY2NcdTkyZWZcdTkyYzJcdTkyZThcdTkyY2FcdTkyYzhcdTkyY2VcdTkyZTZcdTkyY2RcdTkyZDVcdTkyYzlcdTkyZTBcdTkyZGVcdTkyZTdcdTkyZDFcdTkyZDNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdTkyYjVcdTkyZTFcdTkyYzZcdTkyYjRcdTk1N2NcdTk1YWNcdTk1YWJcdTk1YWVcdTk1YjBcdTk2YTRcdTk2YTJcdTk2ZDNcdTk3MDVcdTk3MDhcdTk3MDJcdTk3NWFcdTk3OGFcdTk3OGVcdTk3ODhcdTk3ZDBcdTk3Y2ZcdTk4MWVcdTk4MWRcdTk4MjZcdTk4MjlcdTk4''@;'; + put 'put ''MjhcdTk4MjBcdTk4MWJcdTk4MjdcdTk4YjJcdTk5MDhcdTk4ZmFcdTk5MTFcdTk5MTRcdTk5MTZcdTk5MTdcdTk5MTVcdTk5ZGNcdTk5Y2RcdTk5Y2ZcdTk5ZDNcdTk5ZDRcdTk5Y2VcdTk5YzlcdTk5ZDZcdTk5ZDhcdTk5Y2JcdTk5ZDdcdTk5Y2NcdTlhYjNcdTlhZWNcdTlhZWJcdTlhZjNc''@;'; + put 'put ''dTlhZjJcdTlhZjFcdTliNDZcdTliNDNcdTliNjdcdTliNzRcdTliNzFcdTliNjZcdTliNzZcdTliNzVcdTliNzBcdTliNjhcdTliNjRcdTliNmNcdTljZmNcdTljZmFcdTljZmRcdTljZmZcdTljZjdcdTlkMDdcdTlkMDBcdTljZjlcdTljZmJcdTlkMDhcdTlkMDVcdTlkMDRcdTllODNcdTll''@;'; + put 'put ''ZDNcdTlmMGZcdTlmMTBcdTUxMWNcdTUxMTNcdTUxMTdcdTUxMWFcdTUxMTFcdTUxZGVcdTUzMzRcdTUzZTFcdTU2NzBcdTU2NjBcdTU2NmVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMy''@;'; + put 'put ''XVtFXV09NTkzOTIrRSxMWzU5MzkyK0VdPUJbMjMyXVtFXSk7Zm9yKEJbMjMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NjczXHU1NjY2XHU1NjYzXHU1NjZkXHU1NjcyXHU1NjVlXHU1Njc3XHU1NzFjXHU1NzFiXHU1OGM4XHU1''@;'; + put 'put ''OGJkXHU1OGM5XHU1OGJmXHU1OGJhXHU1OGMyXHU1OGJjXHU1OGM2XHU1YjE3XHU1YjE5XHU1YjFiXHU1YjIxXHU1YjE0XHU1YjEzXHU1YjEwXHU1YjE2XHU1YjI4XHU1YjFhXHU1YjIwXHU1YjFlXHU1YmVmXHU1ZGFjXHU1ZGIxXHU1ZGE5XHU1ZGE3XHU1ZGI1XHU1ZGIwXHU1ZGFlXHU1ZGFh''@;'; + put 'put ''XHU1ZGE4XHU1ZGIyXHU1ZGFkXHU1ZGFmXHU1ZGI0XHU1ZTY3XHU1ZTY4XHU1ZTY2XHU1ZTZmXHU1ZWU5XHU1ZWU3XHU1ZWU2XHU1ZWU4XHU1ZWU1XHU1ZjRiXHU1ZmJjXHU2MTlkXHU2MWE4XHU2MTk2XHU2MWM1XHU2MWI0XHU2MWM2XHU2MWMxXHU2MWNjXHU2MWJhXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MWJmXHU2MWI4XHU2MThjXHU2NGQ3XHU2NGQ2XHU2NGQwXHU2NGNmXHU2NGM5XHU2NGJkXHU2NDg5XHU2NGMzXHU2NGRiXHU2NGYzXHU2NGQ5XHU2NTMzXHU2NTdmXHU2NTdjXHU2NWEyXHU2NmM4XHU2NmJlXHU2NmMwXHU2NmNhXHU2NmNiXHU2''@;'; + put 'put ''NmNmXHU2NmJkXHU2NmJiXHU2NmJhXHU2NmNjXHU2NzIzXHU2YTM0XHU2YTY2XHU2YTQ5XHU2YTY3XHU2YTMyXHU2YTY4XHU2YTNlXHU2YTVkXHU2YTZkXHU2YTc2XHU2YTViXHU2YTUxXHU2YTI4XHU2YTVhXHU2YTNiXHU2YTNmXHU2YTQxXHU2YTZhXHU2YTY0XHU2YTUwXHU2YTRmXHU2YTU0''@;'; + put 'put ''XHU2YTZmXHU2YTY5XHU2YTYwXHU2YTNjXHU2YTVlXHU2YTU2XHU2YTU1XHU2YTRkXHU2YTRlXHU2YTQ2XHU2YjU1XHU2YjU0XHU2YjU2XHU2YmE3XHU2YmFhXHU2YmFiXHU2YmM4XHU2YmM3XHU2YzA0XHU2YzAzXHU2YzA2XHU2ZmFkXHU2ZmNiXHU2ZmEzXHU2ZmM3XHU2ZmJjXHU2ZmNlXHU2''@;'; + put 'put ''ZmM4XHU2ZjVlXHU2ZmM0XHU2ZmJkXHU2ZjllXHU2ZmNhXHU2ZmE4XHU3MDA0XHU2ZmE1XHU2ZmFlXHU2ZmJhXHU2ZmFjXHU2ZmFhXHU2ZmNmXHU2ZmJmXHU2ZmI4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzNdW0VdLmNoYXJDb2RlQXQo''@;'; + put 'put ''MCkmJihtZVtCWzIzM11bRV1dPTU5NjQ4K0UsTFs1OTY0OCtFXT1CWzIzM11bRV0pO2ZvcihCWzIzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmZhMlx1NmZjOVx1NmZhYlx1NmZjZFx1NmZhZlx1NmZiMlx1NmZiMFx1NzFjNVx1''@;'; + put 'put ''NzFjMlx1NzFiZlx1NzFiOFx1NzFkNlx1NzFjMFx1NzFjMVx1NzFjYlx1NzFkNFx1NzFjYVx1NzFjN1x1NzFjZlx1NzFiZFx1NzFkOFx1NzFiY1x1NzFjNlx1NzFkYVx1NzFkYlx1NzI5ZFx1NzI5ZVx1NzM2OVx1NzM2Nlx1NzM2N1x1NzM2Y1x1NzM2NVx1NzM2Ylx1NzM2YVx1NzQ3Zlx1NzQ5''@;'; + put 'put ''YVx1NzRhMFx1NzQ5NFx1NzQ5Mlx1NzQ5NVx1NzRhMVx1NzUwYlx1NzU4MFx1NzYyZlx1NzYyZFx1NzYzMVx1NzYzZFx1NzYzM1x1NzYzY1x1NzYzNVx1NzYzMlx1NzYzMFx1NzZiYlx1NzZlNlx1Nzc5YVx1Nzc5ZFx1NzdhMVx1Nzc5Y1x1Nzc5Ylx1NzdhMlx1NzdhM1x1Nzc5NVx1Nzc5OVx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Nzc5N1x1NzhkZFx1NzhlOVx1NzhlNVx1NzhlYVx1NzhkZVx1NzhlM1x1NzhkYlx1NzhlMVx1NzhlMlx1NzhlZFx1NzhkZlx1NzhlMFx1NzlhNFx1N2E0NFx1N2E0OFx1N2E0N1x1N2FiNlx1N2FiOFx1N2FiNVx1N2FiMVx1''@;'; + put 'put ''N2FiN1x1N2JkZVx1N2JlM1x1N2JlN1x1N2JkZFx1N2JkNVx1N2JlNVx1N2JkYVx1N2JlOFx1N2JmOVx1N2JkNFx1N2JlYVx1N2JlMlx1N2JkY1x1N2JlYlx1N2JkOFx1N2JkZlx1N2NkMlx1N2NkNFx1N2NkN1x1N2NkMFx1N2NkMVx1N2UxMlx1N2UyMVx1N2UxN1x1N2UwY1x1N2UxZlx1N2Uy''@;'; + put 'put ''MFx1N2UxM1x1N2UwZVx1N2UxY1x1N2UxNVx1N2UxYVx1N2UyMlx1N2UwYlx1N2UwZlx1N2UxNlx1N2UwZFx1N2UxNFx1N2UyNVx1N2UyNFx1N2Y0M1x1N2Y3Ylx1N2Y3Y1x1N2Y3YVx1N2ZiMVx1N2ZlZlx1ODAyYVx1ODAyOVx1ODA2Y1x1ODFiMVx1ODFhNlx1ODFhZVx1ODFiOVx1ODFiNVx1''@;'; + put 'put ''ODFhYlx1ODFiMFx1ODFhY1x1ODFiNFx1ODFiMlx1ODFiN1x1ODFhN1x1ODFmMlx1ODI1NVx1ODI1Nlx1ODI1N1x1ODU1Nlx1ODU0NVx1ODU2Ylx1ODU0ZFx1ODU1M1x1ODU2MVx1ODU1OFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM0XVtF''@;'; + put 'put ''XS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzRdW0VdXT01OTkwNCtFLExbNTk5MDQrRV09QlsyMzRdW0VdKTtmb3IoQlsyMzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1NDBcdTg1NDZcdTg1NjRcdTg1NDFcdTg1NjJcdTg1NDRc''@;'; + put 'put ''dTg1NTFcdTg1NDdcdTg1NjNcdTg1M2VcdTg1NWJcdTg1NzFcdTg1NGVcdTg1NmVcdTg1NzVcdTg1NTVcdTg1NjdcdTg1NjBcdTg1OGNcdTg1NjZcdTg1NWRcdTg1NTRcdTg1NjVcdTg1NmNcdTg2NjNcdTg2NjVcdTg2NjRcdTg3OWJcdTg3OGZcdTg3OTdcdTg3OTNcdTg3OTJcdTg3ODhcdTg3''@;'; + put 'put ''ODFcdTg3OTZcdTg3OThcdTg3NzlcdTg3ODdcdTg3YTNcdTg3ODVcdTg3OTBcdTg3OTFcdTg3OWRcdTg3ODRcdTg3OTRcdTg3OWNcdTg3OWFcdTg3ODlcdTg5MWVcdTg5MjZcdTg5MzBcdTg5MmRcdTg5MmVcdTg5MjdcdTg5MzFcdTg5MjJcdTg5MjlcdTg5MjNcdTg5MmZcdTg5MmNcdTg5MWZc''@;'; + put 'put ''dTg5ZjFcdThhZTBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThhZTJcdThhZjJcdThhZjRcdThhZjVcdThhZGRcdThiMTRcdThhZTRcdThhZGZcdThhZjBcdThhYzhcdThhZGVcdThhZTFcdThhZThcdThhZmZcdThhZWZcdThhZmJcdThjOTFcdThjOTJcdThjOTBc''@;'; + put 'put ''dThjZjVcdThjZWVcdThjZjFcdThjZjBcdThjZjNcdThkNmNcdThkNmVcdThkYTVcdThkYTdcdThlMzNcdThlM2VcdThlMzhcdThlNDBcdThlNDVcdThlMzZcdThlM2NcdThlM2RcdThlNDFcdThlMzBcdThlM2ZcdThlYmRcdThmMzZcdThmMmVcdThmMzVcdThmMzJcdThmMzlcdThmMzdcdThm''@;'; + put 'put ''MzRcdTkwNzZcdTkwNzlcdTkwN2JcdTkwODZcdTkwZmFcdTkxMzNcdTkxMzVcdTkxMzZcdTkxOTNcdTkxOTBcdTkxOTFcdTkxOGRcdTkxOGZcdTkzMjdcdTkzMWVcdTkzMDhcdTkzMWZcdTkzMDZcdTkzMGZcdTkzN2FcdTkzMzhcdTkzM2NcdTkzMWJcdTkzMjNcdTkzMTJcdTkzMDFcdTkzNDZc''@;'; + put 'put ''dTkzMmRcdTkzMGVcdTkzMGRcdTkyY2JcdTkzMWRcdTkyZmFcdTkzMjVcdTkzMTNcdTkyZjlcdTkyZjdcdTkzMzRcdTkzMDJcdTkzMjRcdTkyZmZcdTkzMjlcdTkzMzlcdTkzMzVcdTkzMmFcdTkzMTRcdTkzMGNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzVdLmxlbmd0aDsrK0UpNjU1''@;'; + put 'put ''MzMhPT1CWzIzNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM1XVtFXV09NjAxNjArRSxMWzYwMTYwK0VdPUJbMjM1XVtFXSk7Zm9yKEJbMjM2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MzBiXHU5MmZlXHU5MzA5XHU5MzAw''@;'; + put 'put ''XHU5MmZiXHU5MzE2XHU5NWJjXHU5NWNkXHU5NWJlXHU5NWI5XHU5NWJhXHU5NWI2XHU5NWJmXHU5NWI1XHU5NWJkXHU5NmE5XHU5NmQ0XHU5NzBiXHU5NzEyXHU5NzEwXHU5Nzk5XHU5Nzk3XHU5Nzk0XHU5N2YwXHU5N2Y4XHU5ODM1XHU5ODJmXHU5ODMyXHU5OTI0XHU5OTFmXHU5OTI3XHU5''@;'; + put 'put ''OTI5XHU5OTllXHU5OWVlXHU5OWVjXHU5OWU1XHU5OWU0XHU5OWYwXHU5OWUzXHU5OWVhXHU5OWU5XHU5OWU3XHU5YWI5XHU5YWJmXHU5YWI0XHU5YWJiXHU5YWY2XHU5YWZhXHU5YWY5XHU5YWY3XHU5YjMzXHU5YjgwXHU5Yjg1XHU5Yjg3XHU5YjdjXHU5YjdlXHU5YjdiXHU5YjgyXHU5Yjkz''@;'; + put 'put ''XHU5YjkyXHU5YjkwXHU5YjdhXHU5Yjk1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5YjdkXHU5Yjg4XHU5ZDI1XHU5ZDE3XHU5ZDIwXHU5ZDFlXHU5ZDE0XHU5ZDI5XHU5ZDFkXHU5ZDE4XHU5ZDIyXHU5ZDEwXHU5ZDE5XHU5ZDFmXHU5ZTg4XHU5ZTg2XHU5ZTg3''@;'; + put 'put ''XHU5ZWFlXHU5ZWFkXHU5ZWQ1XHU5ZWQ2XHU5ZWZhXHU5ZjEyXHU5ZjNkXHU1MTI2XHU1MTI1XHU1MTIyXHU1MTI0XHU1MTIwXHU1MTI5XHU1MmY0XHU1NjkzXHU1NjhjXHU1NjhkXHU1Njg2XHU1Njg0XHU1NjgzXHU1NjdlXHU1NjgyXHU1NjdmXHU1NjgxXHU1OGQ2XHU1OGQ0XHU1OGNmXHU1''@;'; + put 'put ''OGQyXHU1YjJkXHU1YjI1XHU1YjMyXHU1YjIzXHU1YjJjXHU1YjI3XHU1YjI2XHU1YjJmXHU1YjJlXHU1YjdiXHU1YmYxXHU1YmYyXHU1ZGI3XHU1ZTZjXHU1ZTZhXHU1ZmJlXHU1ZmJiXHU2MWMzXHU2MWI1XHU2MWJjXHU2MWU3XHU2MWUwXHU2MWU1XHU2MWU0XHU2MWU4XHU2MWRlXHU2NGVm''@;'; + put 'put ''XHU2NGU5XHU2NGUzXHU2NGViXHU2NGU0XHU2NGU4XHU2NTgxXHU2NTgwXHU2NWI2XHU2NWRhXHU2NmQyXHU2YThkXHU2YTk2XHU2YTgxXHU2YWE1XHU2YTg5XHU2YTlmXHU2YTliXHU2YWExXHU2YTllXHU2YTg3XHU2YTkzXHU2YThlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM2XS5s''@;'; + put 'put ''ZW5ndGg7KytFKTY1NTMzIT09QlsyMzZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzNl1bRV1dPTYwNDE2K0UsTFs2MDQxNitFXT1CWzIzNl1bRV0pO2ZvcihCWzIzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmE5NVx1NmE4''@;'; + put 'put ''M1x1NmFhOFx1NmFhNFx1NmE5MVx1NmE3Zlx1NmFhNlx1NmE5YVx1NmE4NVx1NmE4Y1x1NmE5Mlx1NmI1Ylx1NmJhZFx1NmMwOVx1NmZjY1x1NmZhOVx1NmZmNFx1NmZkNFx1NmZlM1x1NmZkY1x1NmZlZFx1NmZlN1x1NmZlNlx1NmZkZVx1NmZmMlx1NmZkZFx1NmZlMlx1NmZlOFx1NzFlMVx1''@;'; + put 'put ''NzFmMVx1NzFlOFx1NzFmMlx1NzFlNFx1NzFmMFx1NzFlMlx1NzM3M1x1NzM2ZVx1NzM2Zlx1NzQ5N1x1NzRiMlx1NzRhYlx1NzQ5MFx1NzRhYVx1NzRhZFx1NzRiMVx1NzRhNVx1NzRhZlx1NzUxMFx1NzUxMVx1NzUxMlx1NzUwZlx1NzU4NFx1NzY0M1x1NzY0OFx1NzY0OVx1NzY0N1x1NzZh''@;'; + put 'put ''NFx1NzZlOVx1NzdiNVx1NzdhYlx1NzdiMlx1NzdiN1x1NzdiNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzdiNFx1NzdiMVx1NzdhOFx1NzdmMFx1NzhmM1x1NzhmZFx1NzkwMlx1NzhmYlx1NzhmY1x1NzhmMlx1NzkwNVx1NzhmOVx1NzhmZVx1NzkwNFx1Nzlh''@;'; + put 'put ''Ylx1NzlhOFx1N2E1Y1x1N2E1Ylx1N2E1Nlx1N2E1OFx1N2E1NFx1N2E1YVx1N2FiZVx1N2FjMFx1N2FjMVx1N2MwNVx1N2MwZlx1N2JmMlx1N2MwMFx1N2JmZlx1N2JmYlx1N2MwZVx1N2JmNFx1N2MwYlx1N2JmM1x1N2MwMlx1N2MwOVx1N2MwM1x1N2MwMVx1N2JmOFx1N2JmZFx1N2MwNlx1''@;'; + put 'put ''N2JmMFx1N2JmMVx1N2MxMFx1N2MwYVx1N2NlOFx1N2UyZFx1N2UzY1x1N2U0Mlx1N2UzM1x1OTg0OFx1N2UzOFx1N2UyYVx1N2U0OVx1N2U0MFx1N2U0N1x1N2UyOVx1N2U0Y1x1N2UzMFx1N2UzYlx1N2UzNlx1N2U0NFx1N2UzYVx1N2Y0NVx1N2Y3Zlx1N2Y3ZVx1N2Y3ZFx1N2ZmNFx1N2Zm''@;'; + put 'put ''Mlx1ODAyY1x1ODFiYlx1ODFjNFx1ODFjY1x1ODFjYVx1ODFjNVx1ODFjN1x1ODFiY1x1ODFlOVx1ODI1Ylx1ODI1YVx1ODI1Y1x1ODU4M1x1ODU4MFx1ODU4Zlx1ODVhN1x1ODU5NVx1ODVhMFx1ODU4Ylx1ODVhM1x1ODU3Ylx1ODVhNFx1ODU5YVx1ODU5ZVx1ZmZmZCIuc3BsaXQoIiIpLEU9''@;'; + put 'put ''MDtFIT1CWzIzN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzddW0VdXT02MDY3MitFLExbNjA2NzIrRV09QlsyMzddW0VdKTtmb3IoQlsyMzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdTg1NzdcdTg1N2NcdTg1ODlcdTg1YTFcdTg1N2FcdTg1NzhcdTg1NTdcdTg1OGVcdTg1OTZcdTg1ODZcdTg1OGRcdTg1OTlcdTg1OWRcdTg1ODFcdTg1YTJcdTg1ODJcdTg1ODhcdTg1ODVcdTg1NzlcdTg1NzZcdTg1OThcdTg1OTBcdTg1OWZcdTg2NjhcdTg3YmVcdTg3YWFcdTg3YWRc''@;'; + put 'put ''dTg3YzVcdTg3YjBcdTg3YWNcdTg3YjlcdTg3YjVcdTg3YmNcdTg3YWVcdTg3YzlcdTg3YzNcdTg3YzJcdTg3Y2NcdTg3YjdcdTg3YWZcdTg3YzRcdTg3Y2FcdTg3YjRcdTg3YjZcdTg3YmZcdTg3YjhcdTg3YmRcdTg3ZGVcdTg3YjJcdTg5MzVcdTg5MzNcdTg5M2NcdTg5M2VcdTg5NDFcdTg5''@;'; + put 'put ''NTJcdTg5MzdcdTg5NDJcdTg5YWRcdTg5YWZcdTg5YWVcdTg5ZjJcdTg5ZjNcdThiMWVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThiMThcdThiMTZcdThiMTFcdThiMDVcdThiMGJcdThiMjJcdThiMGZcdThiMTJcdThiMTVcdThiMDdcdThiMGRcdThiMDhcdThi''@;'; + put 'put ''MDZcdThiMWNcdThiMTNcdThiMWFcdThjNGZcdThjNzBcdThjNzJcdThjNzFcdThjNmZcdThjOTVcdThjOTRcdThjZjlcdThkNmZcdThlNGVcdThlNGRcdThlNTNcdThlNTBcdThlNGNcdThlNDdcdThmNDNcdThmNDBcdTkwODVcdTkwN2VcdTkxMzhcdTkxOWFcdTkxYTJcdTkxOWJcdTkxOTlc''@;'; + put 'put ''dTkxOWZcdTkxYTFcdTkxOWRcdTkxYTBcdTkzYTFcdTkzODNcdTkzYWZcdTkzNjRcdTkzNTZcdTkzNDdcdTkzN2NcdTkzNThcdTkzNWNcdTkzNzZcdTkzNDlcdTkzNTBcdTkzNTFcdTkzNjBcdTkzNmRcdTkzOGZcdTkzNGNcdTkzNmFcdTkzNzlcdTkzNTdcdTkzNTVcdTkzNTJcdTkzNGZcdTkz''@;'; + put 'put ''NzFcdTkzNzdcdTkzN2JcdTkzNjFcdTkzNWVcdTkzNjNcdTkzNjdcdTkzODBcdTkzNGVcdTkzNTlcdTk1YzdcdTk1YzBcdTk1YzlcdTk1YzNcdTk1YzVcdTk1YjdcdTk2YWVcdTk2YjBcdTk2YWNcdTk3MjBcdTk3MWZcdTk3MThcdTk3MWRcdTk3MTlcdTk3OWFcdTk3YTFcdTk3OWNcdWZmZmQi''@;'; + put 'put ''LnNwbGl0KCIiKSxFPTA7RSE9QlsyMzhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM4XVtFXV09NjA5MjgrRSxMWzYwOTI4K0VdPUJbMjM4XVtFXSk7Zm9yKEJbMjM5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHU5NzllXHU5NzlkXHU5N2Q1XHU5N2Q0XHU5N2YxXHU5ODQxXHU5ODQ0XHU5ODRhXHU5ODQ5XHU5ODQ1XHU5ODQzXHU5OTI1XHU5OTJiXHU5OTJjXHU5OTJhXHU5OTMzXHU5OTMyXHU5OTJmXHU5OTJkXHU5OTMxXHU5OTMwXHU5OTk4XHU5OWEzXHU5OWExXHU5YTAy''@;'; + put 'put ''XHU5OWZhXHU5OWY0XHU5OWY3XHU5OWY5XHU5OWY4XHU5OWY2XHU5OWZiXHU5OWZkXHU5OWZlXHU5OWZjXHU5YTAzXHU5YWJlXHU5YWZlXHU5YWZkXHU5YjAxXHU5YWZjXHU5YjQ4XHU5YjlhXHU5YmE4XHU5YjllXHU5YjliXHU5YmE2XHU5YmExXHU5YmE1XHU5YmE0XHU5Yjg2XHU5YmEyXHU5''@;'; + put 'put ''YmEwXHU5YmFmXHU5ZDMzXHU5ZDQxXHU5ZDY3XHU5ZDM2XHU5ZDJlXHU5ZDJmXHU5ZDMxXHU5ZDM4XHU5ZDMwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZDQ1XHU5ZDQyXHU5ZDQzXHU5ZDNlXHU5ZDM3XHU5ZDQwXHU5ZDNkXHU3ZmY1XHU5ZDJkXHU5ZThhXHU5''@;'; + put 'put ''ZTg5XHU5ZThkXHU5ZWIwXHU5ZWM4XHU5ZWRhXHU5ZWZiXHU5ZWZmXHU5ZjI0XHU5ZjIzXHU5ZjIyXHU5ZjU0XHU5ZmEwXHU1MTMxXHU1MTJkXHU1MTJlXHU1Njk4XHU1NjljXHU1Njk3XHU1NjlhXHU1NjlkXHU1Njk5XHU1OTcwXHU1YjNjXHU1YzY5XHU1YzZhXHU1ZGMwXHU1ZTZkXHU1ZTZl''@;'; + put 'put ''XHU2MWQ4XHU2MWRmXHU2MWVkXHU2MWVlXHU2MWYxXHU2MWVhXHU2MWYwXHU2MWViXHU2MWQ2XHU2MWU5XHU2NGZmXHU2NTA0XHU2NGZkXHU2NGY4XHU2NTAxXHU2NTAzXHU2NGZjXHU2NTk0XHU2NWRiXHU2NmRhXHU2NmRiXHU2NmQ4XHU2YWM1XHU2YWI5XHU2YWJkXHU2YWUxXHU2YWM2XHU2''@;'; + put 'put ''YWJhXHU2YWI2XHU2YWI3XHU2YWM3XHU2YWI0XHU2YWFkXHU2YjVlXHU2YmM5XHU2YzBiXHU3MDA3XHU3MDBjXHU3MDBkXHU3MDAxXHU3MDA1XHU3MDE0XHU3MDBlXHU2ZmZmXHU3MDAwXHU2ZmZiXHU3MDI2XHU2ZmZjXHU2ZmY3XHU3MDBhXHU3MjAxXHU3MWZmXHU3MWY5XHU3MjAzXHU3MWZk''@;'; + put 'put ''XHU3Mzc2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzOV1bRV1dPTYxMTg0K0UsTFs2MTE4NCtFXT1CWzIzOV1bRV0pO2ZvcihCWzI0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzRiOFx1NzRjMFx1NzRiNVx1NzRjMVx1NzRiZVx1NzRiNlx1NzRiYlx1NzRjMlx1NzUxNFx1NzUxM1x1NzY1Y1x1NzY2NFx1NzY1OVx1NzY1MFx1NzY1M1x1NzY1N1x1NzY1YVx1NzZhNlx1NzZiZFx1NzZlY1x1NzdjMlx1NzdiYVx1Nzhm''@;'; + put 'put ''Zlx1NzkwY1x1NzkxM1x1NzkxNFx1NzkwOVx1NzkxMFx1NzkxMlx1NzkxMVx1NzlhZFx1NzlhY1x1N2E1Zlx1N2MxY1x1N2MyOVx1N2MxOVx1N2MyMFx1N2MxZlx1N2MyZFx1N2MxZFx1N2MyNlx1N2MyOFx1N2MyMlx1N2MyNVx1N2MzMFx1N2U1Y1x1N2U1MFx1N2U1Nlx1N2U2M1x1N2U1OFx1''@;'; + put 'put ''N2U2Mlx1N2U1Zlx1N2U1MVx1N2U2MFx1N2U1N1x1N2U1M1x1N2ZiNVx1N2ZiM1x1N2ZmN1x1N2ZmOFx1ODA3NVx1ODFkMVx1ODFkMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODFkMFx1ODI1Zlx1ODI1ZVx1ODViNFx1ODVjNlx1ODVjMFx1ODVjM1x1ODVjMlx1''@;'; + put 'put ''ODViM1x1ODViNVx1ODViZFx1ODVjN1x1ODVjNFx1ODViZlx1ODVjYlx1ODVjZVx1ODVjOFx1ODVjNVx1ODViMVx1ODViNlx1ODVkMlx1ODYyNFx1ODViOFx1ODViN1x1ODViZVx1ODY2OVx1ODdlN1x1ODdlNlx1ODdlMlx1ODdkYlx1ODdlYlx1ODdlYVx1ODdlNVx1ODdkZlx1ODdmM1x1ODdl''@;'; + put 'put ''NFx1ODdkNFx1ODdkY1x1ODdkM1x1ODdlZFx1ODdkOFx1ODdlM1x1ODdhNFx1ODdkN1x1ODdkOVx1ODgwMVx1ODdmNFx1ODdlOFx1ODdkZFx1ODk1M1x1ODk0Ylx1ODk0Zlx1ODk0Y1x1ODk0Nlx1ODk1MFx1ODk1MVx1ODk0OVx1OGIyYVx1OGIyN1x1OGIyM1x1OGIzM1x1OGIzMFx1OGIzNVx1''@;'; + put 'put ''OGI0N1x1OGIyZlx1OGIzY1x1OGIzZVx1OGIzMVx1OGIyNVx1OGIzN1x1OGIyNlx1OGIzNlx1OGIyZVx1OGIyNFx1OGIzYlx1OGIzZFx1OGIzYVx1OGM0Mlx1OGM3NVx1OGM5OVx1OGM5OFx1OGM5N1x1OGNmZVx1OGQwNFx1OGQwMlx1OGQwMFx1OGU1Y1x1OGU2Mlx1OGU2MFx1OGU1N1x1OGU1''@;'; + put 'put ''Nlx1OGU1ZVx1OGU2NVx1OGU2N1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDBdW0VdXT02MTQ0MCtFLExbNjE0NDArRV09QlsyNDBdW0VdKTtmb3IoQlsyNDFdPSJcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThlNWJcdThlNWFcdThlNjFcdThlNWRcdThlNjlcdThlNTRcdThmNDZcdThmNDdcdThmNDhcdThmNGJcdTkxMjhcdTkxM2FcdTkxM2JcdTkxM2VcdTkxYThcdTkxYTVcdTkxYTdcdTkxYWZcdTkxYWFcdTkzYjVcdTkz''@;'; + put 'put ''OGNcdTkzOTJcdTkzYjdcdTkzOWJcdTkzOWRcdTkzODlcdTkzYTdcdTkzOGVcdTkzYWFcdTkzOWVcdTkzYTZcdTkzOTVcdTkzODhcdTkzOTlcdTkzOWZcdTkzOGRcdTkzYjFcdTkzOTFcdTkzYjJcdTkzYTRcdTkzYThcdTkzYjRcdTkzYTNcdTkzYTVcdTk1ZDJcdTk1ZDNcdTk1ZDFcdTk2YjNc''@;'; + put 'put ''dTk2ZDdcdTk2ZGFcdTVkYzJcdTk2ZGZcdTk2ZDhcdTk2ZGRcdTk3MjNcdTk3MjJcdTk3MjVcdTk3YWNcdTk3YWVcdTk3YThcdTk3YWJcdTk3YTRcdTk3YWFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk3YTJcdTk3YTVcdTk3ZDdcdTk3ZDlcdTk3ZDZcdTk3ZDhc''@;'; + put 'put ''dTk3ZmFcdTk4NTBcdTk4NTFcdTk4NTJcdTk4YjhcdTk5NDFcdTk5M2NcdTk5M2FcdTlhMGZcdTlhMGJcdTlhMDlcdTlhMGRcdTlhMDRcdTlhMTFcdTlhMGFcdTlhMDVcdTlhMDdcdTlhMDZcdTlhYzBcdTlhZGNcdTliMDhcdTliMDRcdTliMDVcdTliMjlcdTliMzVcdTliNGFcdTliNGNcdTli''@;'; + put 'put ''NGJcdTliYzdcdTliYzZcdTliYzNcdTliYmZcdTliYzFcdTliYjVcdTliYjhcdTliZDNcdTliYjZcdTliYzRcdTliYjlcdTliYmRcdTlkNWNcdTlkNTNcdTlkNGZcdTlkNGFcdTlkNWJcdTlkNGJcdTlkNTlcdTlkNTZcdTlkNGNcdTlkNTdcdTlkNTJcdTlkNTRcdTlkNWZcdTlkNThcdTlkNWFc''@;'; + put 'put ''dTllOGVcdTllOGNcdTllZGZcdTlmMDFcdTlmMDBcdTlmMTZcdTlmMjVcdTlmMmJcdTlmMmFcdTlmMjlcdTlmMjhcdTlmNGNcdTlmNTVcdTUxMzRcdTUxMzVcdTUyOTZcdTUyZjdcdTUzYjRcdTU2YWJcdTU2YWRcdTU2YTZcdTU2YTdcdTU2YWFcdTU2YWNcdTU4ZGFcdTU4ZGRcdTU4ZGJcdTU5''@;'; + put 'put ''MTJcdTViM2RcdTViM2VcdTViM2ZcdTVkYzNcdTVlNzBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQxXVtFXV09NjE2OTYrRSxMWzYxNjk2K0VdPUJbMjQxXVtFXSk7Zm9yKEJbMjQyXT0i''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZmJmXHU2MWZiXHU2NTA3XHU2NTEwXHU2NTBkXHU2NTA5XHU2NTBjXHU2NTBlXHU2NTg0XHU2NWRlXHU2NWRkXHU2NmRlXHU2YWU3XHU2YWUwXHU2YWNjXHU2YWQxXHU2YWQ5XHU2YWNiXHU2''@;'; + put 'put ''YWRmXHU2YWRjXHU2YWQwXHU2YWViXHU2YWNmXHU2YWNkXHU2YWRlXHU2YjYwXHU2YmIwXHU2YzBjXHU3MDE5XHU3MDI3XHU3MDIwXHU3MDE2XHU3MDJiXHU3MDIxXHU3MDIyXHU3MDIzXHU3MDI5XHU3MDE3XHU3MDI0XHU3MDFjXHU3MDJhXHU3MjBjXHU3MjBhXHU3MjA3XHU3MjAyXHU3MjA1''@;'; + put 'put ''XHU3MmE1XHU3MmE2XHU3MmE0XHU3MmEzXHU3MmExXHU3NGNiXHU3NGM1XHU3NGI3XHU3NGMzXHU3NTE2XHU3NjYwXHU3N2M5XHU3N2NhXHU3N2M0XHU3N2YxXHU3OTFkXHU3OTFiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3OTIxXHU3OTFjXHU3OTE3XHU3OTFl''@;'; + put 'put ''XHU3OWIwXHU3YTY3XHU3YTY4XHU3YzMzXHU3YzNjXHU3YzM5XHU3YzJjXHU3YzNiXHU3Y2VjXHU3Y2VhXHU3ZTc2XHU3ZTc1XHU3ZTc4XHU3ZTcwXHU3ZTc3XHU3ZTZmXHU3ZTdhXHU3ZTcyXHU3ZTc0XHU3ZTY4XHU3ZjRiXHU3ZjRhXHU3ZjgzXHU3Zjg2XHU3ZmI3XHU3ZmZkXHU3ZmZlXHU4''@;'; + put 'put ''MDc4XHU4MWQ3XHU4MWQ1XHU4MjY0XHU4MjYxXHU4MjYzXHU4NWViXHU4NWYxXHU4NWVkXHU4NWQ5XHU4NWUxXHU4NWU4XHU4NWRhXHU4NWQ3XHU4NWVjXHU4NWYyXHU4NWY4XHU4NWQ4XHU4NWRmXHU4NWUzXHU4NWRjXHU4NWQxXHU4NWYwXHU4NWU2XHU4NWVmXHU4NWRlXHU4NWUyXHU4ODAw''@;'; + put 'put ''XHU4N2ZhXHU4ODAzXHU4N2Y2XHU4N2Y3XHU4ODA5XHU4ODBjXHU4ODBiXHU4ODA2XHU4N2ZjXHU4ODA4XHU4N2ZmXHU4ODBhXHU4ODAyXHU4OTYyXHU4OTVhXHU4OTViXHU4OTU3XHU4OTYxXHU4OTVjXHU4OTU4XHU4OTVkXHU4OTU5XHU4OTg4XHU4OWI3XHU4OWI2XHU4OWY2XHU4YjUwXHU4''@;'; + put 'put ''YjQ4XHU4YjRhXHU4YjQwXHU4YjUzXHU4YjU2XHU4YjU0XHU4YjRiXHU4YjU1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0Ml1bRV1dPTYxOTUyK0UsTFs2MTk1MitFXT1CWzI0Ml1bRV0p''@;'; + put 'put ''O2ZvcihCWzI0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGI1MVx1OGI0Mlx1OGI1Mlx1OGI1N1x1OGM0M1x1OGM3N1x1OGM3Nlx1OGM5YVx1OGQwNlx1OGQwN1x1OGQwOVx1OGRhY1x1OGRhYVx1OGRhZFx1OGRhYlx1OGU2ZFx1''@;'; + put 'put ''OGU3OFx1OGU3M1x1OGU2YVx1OGU2Zlx1OGU3Ylx1OGVjMlx1OGY1Mlx1OGY1MVx1OGY0Zlx1OGY1MFx1OGY1M1x1OGZiNFx1OTE0MFx1OTEzZlx1OTFiMFx1OTFhZFx1OTNkZVx1OTNjN1x1OTNjZlx1OTNjMlx1OTNkYVx1OTNkMFx1OTNmOVx1OTNlY1x1OTNjY1x1OTNkOVx1OTNhOVx1OTNl''@;'; + put 'put ''Nlx1OTNjYVx1OTNkNFx1OTNlZVx1OTNlM1x1OTNkNVx1OTNjNFx1OTNjZVx1OTNjMFx1OTNkMlx1OTNlN1x1OTU3ZFx1OTVkYVx1OTVkYlx1OTZlMVx1OTcyOVx1OTcyYlx1OTcyY1x1OTcyOFx1OTcyNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTdiM1x1OTdi''@;'; + put 'put ''N1x1OTdiNlx1OTdkZFx1OTdkZVx1OTdkZlx1OTg1Y1x1OTg1OVx1OTg1ZFx1OTg1N1x1OThiZlx1OThiZFx1OThiYlx1OThiZVx1OTk0OFx1OTk0N1x1OTk0M1x1OTlhNlx1OTlhN1x1OWExYVx1OWExNVx1OWEyNVx1OWExZFx1OWEyNFx1OWExYlx1OWEyMlx1OWEyMFx1OWEyN1x1OWEyM1x1''@;'; + put 'put ''OWExZVx1OWExY1x1OWExNFx1OWFjMlx1OWIwYlx1OWIwYVx1OWIwZVx1OWIwY1x1OWIzN1x1OWJlYVx1OWJlYlx1OWJlMFx1OWJkZVx1OWJlNFx1OWJlNlx1OWJlMlx1OWJmMFx1OWJkNFx1OWJkN1x1OWJlY1x1OWJkY1x1OWJkOVx1OWJlNVx1OWJkNVx1OWJlMVx1OWJkYVx1OWQ3N1x1OWQ4''@;'; + put 'put ''MVx1OWQ4YVx1OWQ4NFx1OWQ4OFx1OWQ3MVx1OWQ4MFx1OWQ3OFx1OWQ4Nlx1OWQ4Ylx1OWQ4Y1x1OWQ3ZFx1OWQ2Ylx1OWQ3NFx1OWQ3NVx1OWQ3MFx1OWQ2OVx1OWQ4NVx1OWQ3M1x1OWQ3Ylx1OWQ4Mlx1OWQ2Zlx1OWQ3OVx1OWQ3Zlx1OWQ4N1x1OWQ2OFx1OWU5NFx1OWU5MVx1OWVjMFx1''@;'; + put 'put ''OWVmY1x1OWYyZFx1OWY0MFx1OWY0MVx1OWY0ZFx1OWY1Nlx1OWY1N1x1OWY1OFx1NTMzN1x1NTZiMlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDNdW0VdXT02MjIwOCtFLExbNjIyMDgr''@;'; + put 'put ''RV09QlsyNDNdW0VdKTtmb3IoQlsyNDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU2YjVcdTU2YjNcdTU4ZTNcdTViNDVcdTVkYzZcdTVkYzdcdTVlZWVcdTVlZWZcdTVmYzBcdTVmYzFcdTYxZjlcdTY1MTdcdTY1MTZcdTY1MTVc''@;'; + put 'put ''dTY1MTNcdTY1ZGZcdTY2ZThcdTY2ZTNcdTY2ZTRcdTZhZjNcdTZhZjBcdTZhZWFcdTZhZThcdTZhZjlcdTZhZjFcdTZhZWVcdTZhZWZcdTcwM2NcdTcwMzVcdTcwMmZcdTcwMzdcdTcwMzRcdTcwMzFcdTcwNDJcdTcwMzhcdTcwM2ZcdTcwM2FcdTcwMzlcdTcwNDBcdTcwM2JcdTcwMzNcdTcw''@;'; + put 'put ''NDFcdTcyMTNcdTcyMTRcdTcyYThcdTczN2RcdTczN2NcdTc0YmFcdTc2YWJcdTc2YWFcdTc2YmVcdTc2ZWRcdTc3Y2NcdTc3Y2VcdTc3Y2ZcdTc3Y2RcdTc3ZjJcdTc5MjVcdTc5MjNcdTc5MjdcdTc5MjhcdTc5MjRcdTc5MjlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdTc5YjJcdTdhNmVcdTdhNmNcdTdhNmRcdTdhZjdcdTdjNDlcdTdjNDhcdTdjNGFcdTdjNDdcdTdjNDVcdTdjZWVcdTdlN2JcdTdlN2VcdTdlODFcdTdlODBcdTdmYmFcdTdmZmZcdTgwNzlcdTgxZGJcdTgxZDlcdTgyMGJcdTgyNjhcdTgyNjlcdTg2MjJcdTg1ZmZcdTg2MDFcdTg1ZmVc''@;'; + put 'put ''dTg2MWJcdTg2MDBcdTg1ZjZcdTg2MDRcdTg2MDlcdTg2MDVcdTg2MGNcdTg1ZmRcdTg4MTlcdTg4MTBcdTg4MTFcdTg4MTdcdTg4MTNcdTg4MTZcdTg5NjNcdTg5NjZcdTg5YjlcdTg5ZjdcdThiNjBcdThiNmFcdThiNWRcdThiNjhcdThiNjNcdThiNjVcdThiNjdcdThiNmRcdThkYWVcdThl''@;'; + put 'put ''ODZcdThlODhcdThlODRcdThmNTlcdThmNTZcdThmNTdcdThmNTVcdThmNThcdThmNWFcdTkwOGRcdTkxNDNcdTkxNDFcdTkxYjdcdTkxYjVcdTkxYjJcdTkxYjNcdTk0MGJcdTk0MTNcdTkzZmJcdTk0MjBcdTk0MGZcdTk0MTRcdTkzZmVcdTk0MTVcdTk0MTBcdTk0MjhcdTk0MTlcdTk0MGRc''@;'; + put 'put ''dTkzZjVcdTk0MDBcdTkzZjdcdTk0MDdcdTk0MGVcdTk0MTZcdTk0MTJcdTkzZmFcdTk0MDlcdTkzZjhcdTk0MGFcdTkzZmZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ0XVtFXV09NjI0''@;'; + put 'put ''NjQrRSxMWzYyNDY0K0VdPUJbMjQ0XVtFXSk7Zm9yKEJbMjQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5M2ZjXHU5NDBjXHU5M2Y2XHU5NDExXHU5NDA2XHU5NWRlXHU5NWUwXHU5NWRmXHU5NzJlXHU5NzJmXHU5N2I5XHU5N2Ji''@;'; + put 'put ''XHU5N2ZkXHU5N2ZlXHU5ODYwXHU5ODYyXHU5ODYzXHU5ODVmXHU5OGMxXHU5OGMyXHU5OTUwXHU5OTRlXHU5OTU5XHU5OTRjXHU5OTRiXHU5OTUzXHU5YTMyXHU5YTM0XHU5YTMxXHU5YTJjXHU5YTJhXHU5YTM2XHU5YTI5XHU5YTJlXHU5YTM4XHU5YTJkXHU5YWM3XHU5YWNhXHU5YWM2XHU5''@;'; + put 'put ''YjEwXHU5YjEyXHU5YjExXHU5YzBiXHU5YzA4XHU5YmY3XHU5YzA1XHU5YzEyXHU5YmY4XHU5YzQwXHU5YzA3XHU5YzBlXHU5YzA2XHU5YzE3XHU5YzE0XHU5YzA5XHU5ZDlmXHU5ZDk5XHU5ZGE0XHU5ZDlkXHU5ZDkyXHU5ZDk4XHU5ZDkwXHU5ZDliXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHU5ZGEwXHU5ZDk0XHU5ZDljXHU5ZGFhXHU5ZDk3XHU5ZGExXHU5ZDlhXHU5ZGEyXHU5ZGE4XHU5ZDllXHU5ZGEzXHU5ZGJmXHU5ZGE5XHU5ZDk2XHU5ZGE2XHU5ZGE3XHU5ZTk5XHU5ZTliXHU5ZTlhXHU5ZWU1XHU5ZWU0XHU5ZWU3XHU5ZWU2XHU5ZjMwXHU5ZjJl''@;'; + put 'put ''XHU5ZjViXHU5ZjYwXHU5ZjVlXHU5ZjVkXHU5ZjU5XHU5ZjkxXHU1MTNhXHU1MTM5XHU1Mjk4XHU1Mjk3XHU1NmMzXHU1NmJkXHU1NmJlXHU1YjQ4XHU1YjQ3XHU1ZGNiXHU1ZGNmXHU1ZWYxXHU2MWZkXHU2NTFiXHU2YjAyXHU2YWZjXHU2YjAzXHU2YWY4XHU2YjAwXHU3MDQzXHU3MDQ0XHU3''@;'; + put 'put ''MDRhXHU3MDQ4XHU3MDQ5XHU3MDQ1XHU3MDQ2XHU3MjFkXHU3MjFhXHU3MjE5XHU3MzdlXHU3NTE3XHU3NjZhXHU3N2QwXHU3OTJkXHU3OTMxXHU3OTJmXHU3YzU0XHU3YzUzXHU3Y2YyXHU3ZThhXHU3ZTg3XHU3ZTg4XHU3ZThiXHU3ZTg2XHU3ZThkXHU3ZjRkXHU3ZmJiXHU4MDMwXHU4MWRk''@;'; + put 'put ''XHU4NjE4XHU4NjJhXHU4NjI2XHU4NjFmXHU4NjIzXHU4NjFjXHU4NjE5XHU4NjI3XHU4NjJlXHU4NjIxXHU4NjIwXHU4NjI5XHU4NjFlXHU4NjI1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtC''@;'; + put 'put ''WzI0NV1bRV1dPTYyNzIwK0UsTFs2MjcyMCtFXT1CWzI0NV1bRV0pO2ZvcihCWzI0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODgyOVx1ODgxZFx1ODgxYlx1ODgyMFx1ODgyNFx1ODgxY1x1ODgyYlx1ODg0YVx1ODk2ZFx1ODk2''@;'; + put 'put ''OVx1ODk2ZVx1ODk2Ylx1ODlmYVx1OGI3OVx1OGI3OFx1OGI0NVx1OGI3YVx1OGI3Ylx1OGQxMFx1OGQxNFx1OGRhZlx1OGU4ZVx1OGU4Y1x1OGY1ZVx1OGY1Ylx1OGY1ZFx1OTE0Nlx1OTE0NFx1OTE0NVx1OTFiOVx1OTQzZlx1OTQzYlx1OTQzNlx1OTQyOVx1OTQzZFx1OTQzY1x1OTQzMFx1''@;'; + put 'put ''OTQzOVx1OTQyYVx1OTQzN1x1OTQyY1x1OTQ0MFx1OTQzMVx1OTVlNVx1OTVlNFx1OTVlM1x1OTczNVx1OTczYVx1OTdiZlx1OTdlMVx1OTg2NFx1OThjOVx1OThjNlx1OThjMFx1OTk1OFx1OTk1Nlx1OWEzOVx1OWEzZFx1OWE0Nlx1OWE0NFx1OWE0Mlx1OWE0MVx1OWEzYVx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWEzZlx1OWFjZFx1OWIxNVx1OWIxN1x1OWIxOFx1OWIxNlx1OWIzYVx1OWI1Mlx1OWMyYlx1OWMxZFx1OWMxY1x1OWMyY1x1OWMyM1x1OWMyOFx1OWMyOVx1OWMyNFx1OWMyMVx1OWRiN1x1OWRiNlx1OWRiY1x1OWRjMVx1OWRjN1x1OWRj''@;'; + put 'put ''YVx1OWRjZlx1OWRiZVx1OWRjNVx1OWRjM1x1OWRiYlx1OWRiNVx1OWRjZVx1OWRiOVx1OWRiYVx1OWRhY1x1OWRjOFx1OWRiMVx1OWRhZFx1OWRjY1x1OWRiM1x1OWRjZFx1OWRiMlx1OWU3YVx1OWU5Y1x1OWVlYlx1OWVlZVx1OWVlZFx1OWYxYlx1OWYxOFx1OWYxYVx1OWYzMVx1OWY0ZVx1''@;'; + put 'put ''OWY2NVx1OWY2NFx1OWY5Mlx1NGViOVx1NTZjNlx1NTZjNVx1NTZjYlx1NTk3MVx1NWI0Ylx1NWI0Y1x1NWRkNVx1NWRkMVx1NWVmMlx1NjUyMVx1NjUyMFx1NjUyNlx1NjUyMlx1NmIwYlx1NmIwOFx1NmIwOVx1NmMwZFx1NzA1NVx1NzA1Nlx1NzA1N1x1NzA1Mlx1NzIxZVx1NzIxZlx1NzJh''@;'; + put 'put ''OVx1NzM3Zlx1NzRkOFx1NzRkNVx1NzRkOVx1NzRkN1x1NzY2ZFx1NzZhZFx1NzkzNVx1NzliNFx1N2E3MFx1N2E3MVx1N2M1N1x1N2M1Y1x1N2M1OVx1N2M1Ylx1N2M1YVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ2XVtFXS5jaGFyQ29k''@;'; + put 'put ''ZUF0KDApJiYobWVbQlsyNDZdW0VdXT02Mjk3NitFLExbNjI5NzYrRV09QlsyNDZdW0VdKTtmb3IoQlsyNDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdjZjRcdTdjZjFcdTdlOTFcdTdmNGZcdTdmODdcdTgxZGVcdTgyNmJcdTg2''@;'; + put 'put ''MzRcdTg2MzVcdTg2MzNcdTg2MmNcdTg2MzJcdTg2MzZcdTg4MmNcdTg4MjhcdTg4MjZcdTg4MmFcdTg4MjVcdTg5NzFcdTg5YmZcdTg5YmVcdTg5ZmJcdThiN2VcdThiODRcdThiODJcdThiODZcdThiODVcdThiN2ZcdThkMTVcdThlOTVcdThlOTRcdThlOWFcdThlOTJcdThlOTBcdThlOTZc''@;'; + put 'put ''dThlOTdcdThmNjBcdThmNjJcdTkxNDdcdTk0NGNcdTk0NTBcdTk0NGFcdTk0NGJcdTk0NGZcdTk0NDdcdTk0NDVcdTk0NDhcdTk0NDlcdTk0NDZcdTk3M2ZcdTk3ZTNcdTk4NmFcdTk4NjlcdTk4Y2JcdTk5NTRcdTk5NWJcdTlhNGVcdTlhNTNcdTlhNTRcdTlhNGNcdTlhNGZcdTlhNDhcdTlh''@;'; + put 'put ''NGFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlhNDlcdTlhNTJcdTlhNTBcdTlhZDBcdTliMTlcdTliMmJcdTliM2JcdTliNTZcdTliNTVcdTljNDZcdTljNDhcdTljM2ZcdTljNDRcdTljMzlcdTljMzNcdTljNDFcdTljM2NcdTljMzdcdTljMzRcdTljMzJcdTlj''@;'; + put 'put ''M2RcdTljMzZcdTlkZGJcdTlkZDJcdTlkZGVcdTlkZGFcdTlkY2JcdTlkZDBcdTlkZGNcdTlkZDFcdTlkZGZcdTlkZTlcdTlkZDlcdTlkZDhcdTlkZDZcdTlkZjVcdTlkZDVcdTlkZGRcdTllYjZcdTllZjBcdTlmMzVcdTlmMzNcdTlmMzJcdTlmNDJcdTlmNmJcdTlmOTVcdTlmYTJcdTUxM2Rc''@;'; + put 'put ''dTUyOTlcdTU4ZThcdTU4ZTdcdTU5NzJcdTViNGRcdTVkZDhcdTg4MmZcdTVmNGZcdTYyMDFcdTYyMDNcdTYyMDRcdTY1MjlcdTY1MjVcdTY1OTZcdTY2ZWJcdTZiMTFcdTZiMTJcdTZiMGZcdTZiY2FcdTcwNWJcdTcwNWFcdTcyMjJcdTczODJcdTczODFcdTczODNcdTc2NzBcdTc3ZDRcdTdj''@;'; + put 'put ''NjdcdTdjNjZcdTdlOTVcdTgyNmNcdTg2M2FcdTg2NDBcdTg2MzlcdTg2M2NcdTg2MzFcdTg2M2JcdTg2M2VcdTg4MzBcdTg4MzJcdTg4MmVcdTg4MzNcdTg5NzZcdTg5NzRcdTg5NzNcdTg5ZmVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0''@;'; + put 'put ''N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ3XVtFXV09NjMyMzIrRSxMWzYzMjMyK0VdPUJbMjQ3XVtFXSk7Zm9yKEJbMjQ4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YjhjXHU4YjhlXHU4YjhiXHU4Yjg4XHU4YzQ1XHU4''@;'; + put 'put ''ZDE5XHU4ZTk4XHU4ZjY0XHU4ZjYzXHU5MWJjXHU5NDYyXHU5NDU1XHU5NDVkXHU5NDU3XHU5NDVlXHU5N2M0XHU5N2M1XHU5ODAwXHU5YTU2XHU5YTU5XHU5YjFlXHU5YjFmXHU5YjIwXHU5YzUyXHU5YzU4XHU5YzUwXHU5YzRhXHU5YzRkXHU5YzRiXHU5YzU1XHU5YzU5XHU5YzRjXHU5YzRl''@;'; + put 'put ''XHU5ZGZiXHU5ZGY3XHU5ZGVmXHU5ZGUzXHU5ZGViXHU5ZGY4XHU5ZGU0XHU5ZGY2XHU5ZGUxXHU5ZGVlXHU5ZGU2XHU5ZGYyXHU5ZGYwXHU5ZGUyXHU5ZGVjXHU5ZGY0XHU5ZGYzXHU5ZGU4XHU5ZGVkXHU5ZWMyXHU5ZWQwXHU5ZWYyXHU5ZWYzXHU5ZjA2XHU5ZjFjXHU5ZjM4XHU5ZjM3XHU5''@;'; + put 'put ''ZjM2XHU5ZjQzXHU5ZjRmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZjcxXHU5ZjcwXHU5ZjZlXHU5ZjZmXHU1NmQzXHU1NmNkXHU1YjRlXHU1YzZkXHU2NTJkXHU2NmVkXHU2NmVlXHU2YjEzXHU3MDVmXHU3MDYxXHU3MDVkXHU3MDYwXHU3MjIzXHU3NGRiXHU3''@;'; + put 'put ''NGU1XHU3N2Q1XHU3OTM4XHU3OWI3XHU3OWI2XHU3YzZhXHU3ZTk3XHU3Zjg5XHU4MjZkXHU4NjQzXHU4ODM4XHU4ODM3XHU4ODM1XHU4ODRiXHU4Yjk0XHU4Yjk1XHU4ZTllXHU4ZTlmXHU4ZWEwXHU4ZTlkXHU5MWJlXHU5MWJkXHU5MWMyXHU5NDZiXHU5NDY4XHU5NDY5XHU5NmU1XHU5NzQ2''@;'; + put 'put ''XHU5NzQzXHU5NzQ3XHU5N2M3XHU5N2U1XHU5YTVlXHU5YWQ1XHU5YjU5XHU5YzYzXHU5YzY3XHU5YzY2XHU5YzYyXHU5YzVlXHU5YzYwXHU5ZTAyXHU5ZGZlXHU5ZTA3XHU5ZTAzXHU5ZTA2XHU5ZTA1XHU5ZTAwXHU5ZTAxXHU5ZTA5XHU5ZGZmXHU5ZGZkXHU5ZTA0XHU5ZWEwXHU5ZjFlXHU5''@;'; + put 'put ''ZjQ2XHU5Zjc0XHU5Zjc1XHU5Zjc2XHU1NmQ0XHU2NTJlXHU2NWI4XHU2YjE4XHU2YjE5XHU2YjE3XHU2YjFhXHU3MDYyXHU3MjI2XHU3MmFhXHU3N2Q4XHU3N2Q5XHU3OTM5XHU3YzY5XHU3YzZiXHU3Y2Y2XHU3ZTlhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ4XS5sZW5ndGg7KytF''@;'; + put 'put ''KTY1NTMzIT09QlsyNDhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0OF1bRV1dPTYzNDg4K0UsTFs2MzQ4OCtFXT1CWzI0OF1bRV0pO2ZvcihCWzI0OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2U5OFx1N2U5Ylx1N2U5OVx1''@;'; + put 'put ''ODFlMFx1ODFlMVx1ODY0Nlx1ODY0N1x1ODY0OFx1ODk3OVx1ODk3YVx1ODk3Y1x1ODk3Ylx1ODlmZlx1OGI5OFx1OGI5OVx1OGVhNVx1OGVhNFx1OGVhM1x1OTQ2ZVx1OTQ2ZFx1OTQ2Zlx1OTQ3MVx1OTQ3M1x1OTc0OVx1OTg3Mlx1OTk1Zlx1OWM2OFx1OWM2ZVx1OWM2ZFx1OWUwYlx1OWUw''@;'; + put 'put ''ZFx1OWUxMFx1OWUwZlx1OWUxMlx1OWUxMVx1OWVhMVx1OWVmNVx1OWYwOVx1OWY0N1x1OWY3OFx1OWY3Ylx1OWY3YVx1OWY3OVx1NTcxZVx1NzA2Nlx1N2M2Zlx1ODgzY1x1OGRiMlx1OGVhNlx1OTFjM1x1OTQ3NFx1OTQ3OFx1OTQ3Nlx1OTQ3NVx1OWE2MFx1OWM3NFx1OWM3M1x1OWM3MVx1''@;'; + put 'put ''OWM3NVx1OWUxNFx1OWUxM1x1OWVmNlx1OWYwYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWZhNFx1NzA2OFx1NzA2NVx1N2NmN1x1ODY2YVx1ODgzZVx1ODgzZFx1ODgzZlx1OGI5ZVx1OGM5Y1x1OGVhOVx1OGVjOVx1OTc0Ylx1OTg3M1x1OTg3NFx1OThjY1x1''@;'; + put 'put ''OTk2MVx1OTlhYlx1OWE2NFx1OWE2Nlx1OWE2N1x1OWIyNFx1OWUxNVx1OWUxN1x1OWY0OFx1NjIwN1x1NmIxZVx1NzIyN1x1ODY0Y1x1OGVhOFx1OTQ4Mlx1OTQ4MFx1OTQ4MVx1OWE2OVx1OWE2OFx1OWIyZVx1OWUxOVx1NzIyOVx1ODY0Ylx1OGI5Zlx1OTQ4M1x1OWM3OVx1OWViN1x1NzY3''@;'; + put 'put ''NVx1OWE2Ylx1OWM3YVx1OWUxZFx1NzA2OVx1NzA2YVx1OWVhNFx1OWY3ZVx1OWY0OVx1OWY5OFx1Nzg4MVx1OTJiOVx1ODhjZlx1NThiYlx1NjA1Mlx1N2NhN1x1NWFmYVx1MjU1NFx1MjU2Nlx1MjU1N1x1MjU2MFx1MjU2Y1x1MjU2M1x1MjU1YVx1MjU2OVx1MjU1ZFx1MjU1Mlx1MjU2NFx1''@;'; + put 'put ''MjU1NVx1MjU1ZVx1MjU2YVx1MjU2MVx1MjU1OFx1MjU2N1x1MjU1Ylx1MjU1M1x1MjU2NVx1MjU1Nlx1MjU1Zlx1MjU2Ylx1MjU2Mlx1MjU1OVx1MjU2OFx1MjU1Y1x1MjU1MVx1MjU1MFx1MjU2ZFx1MjU2ZVx1MjU3MFx1MjU2Zlx1MjU5M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0''@;'; + put 'put ''OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDldW0VdXT02Mzc0NCtFLExbNjM3NDQrRV09QlsyNDldW0VdKTtyZXR1cm57ZW5jOm1lLGRlYzpMfX0oKSxKZVsxMjUwXT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0''@;'; + put 'put ''XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFi''@;'; + put 'put ''Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTIwYWNcdWZmZmRcdTIwMWFcdWZmZmRcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBcdTAxNjBcdTIwMzlcdTAxNWFcdTAxNjRcdTAxN2RcdTAxNzlcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJc''@;'; + put 'put ''dTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdTAxNjFcdTIwM2FcdTAxNWJcdTAxNjVcdTAxN2VcdTAxN2FceGEwXHUwMmM3XHUwMmQ4XHUwMTQxXHhhNFx1MDEwNFx4YTZceGE3XHhhOFx4YTlcdTAxNWVceGFiXHhhY1x4YWRceGFlXHUwMTdiXHhiMFx4YjFcdTAyZGJcdTAxNDJceGI0XHhiNVx4''@;'; + put 'put ''YjZceGI3XHhiOFx1MDEwNVx1MDE1Zlx4YmJcdTAxM2RcdTAyZGRcdTAxM2VcdTAxN2NcdTAxNTRceGMxXHhjMlx1MDEwMlx4YzRcdTAxMzlcdTAxMDZceGM3XHUwMTBjXHhjOVx1MDExOFx4Y2JcdTAxMWFceGNkXHhjZVx1MDEwZVx1MDExMFx1MDE0M1x1MDE0N1x4ZDNceGQ0XHUwMTUwXHhk''@;'; + put 'put ''Nlx4ZDdcdTAxNThcdTAxNmVceGRhXHUwMTcwXHhkY1x4ZGRcdTAxNjJceGRmXHUwMTU1XHhlMVx4ZTJcdTAxMDNceGU0XHUwMTNhXHUwMTA3XHhlN1x1MDEwZFx4ZTlcdTAxMTlceGViXHUwMTFiXHhlZFx4ZWVcdTAxMGZcdTAxMTFcdTAxNDRcdTAxNDhceGYzXHhmNFx1MDE1MVx4ZjZceGY3''@;'; + put 'put ''XHUwMTU5XHUwMTZmXHhmYVx1MDE3MVx4ZmNceGZkXHUwMTYzXHUwMmQ5IixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVsx''@;'; + put 'put ''MjUxXT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2''@;'; + put 'put ''Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTA0MDJcdTA0MDNcdTIwMWFcdTA0NTNcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTIwYWNcdTIwMzBcdTA0MDlcdTIwMzlcdTA0MGFcdTA0MGNcdTA0''@;'; + put 'put ''MGJcdTA0MGZcdTA0NTJcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdTA0NTlcdTIwM2FcdTA0NWFcdTA0NWNcdTA0NWJcdTA0NWZceGEwXHUwNDBlXHUwNDVlXHUwNDA4XHhhNFx1MDQ5MFx4YTZceGE3XHUwNDAxXHhhOVx1MDQwNFx4YWJc''@;'; + put 'put ''eGFjXHhhZFx4YWVcdTA0MDdceGIwXHhiMVx1MDQwNlx1MDQ1Nlx1MDQ5MVx4YjVceGI2XHhiN1x1MDQ1MVx1MjExNlx1MDQ1NFx4YmJcdTA0NThcdTA0MDVcdTA0NTVcdTA0NTdcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0''@;'; + put 'put ''MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVc''@;'; + put 'put ''dTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGYiLG1lPVtdLEI9''@;'; + put 'put ''e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzEyNTJdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgw''@;'; + put 'put ''Nlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hp''@;'; + put 'put ''amtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1Mlx1ZmZmZFx1MDE3ZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1''@;'; + put 'put ''MjAxNFx1MDJkY1x1MjEyMlx1MDE2MVx1MjAzYVx1MDE1M1x1ZmZmZFx1MDE3ZVx1MDE3OFx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJc''@;'; + put 'put ''eGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx4ZDBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHhkZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4''@;'; + put 'put ''ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYo''@;'; + put 'put ''QltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTI1M109ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1''@;'; + put 'put ''XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTky''@;'; + put 'put ''XHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHVmZmZkXHUyMDMwXHVmZmZkXHUyMDM5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIyXHVmZmZkXHUyMDNhXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHhhMFx1MDM4NVx1MDM4Nlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlcdWZmZmRceGFiXHhhY1x4YWRceGFlXHUyMDE1XHhiMFx4YjFceGIyXHhiM1x1MDM4NFx4YjVceGI2XHhiN1x1MDM4OFx1MDM4OVx1MDM4YVx4YmJcdTAzOGNceGJkXHUwMzhlXHUwMzhmXHUwMzkwXHUwMzkx''@;'; + put 'put ''XHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHVmZmZkXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHUwM2FhXHUwM2FiXHUwM2FjXHUw''@;'; + put 'put ''M2FkXHUwM2FlXHUwM2FmXHUwM2IwXHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MyXHUwM2MzXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4''@;'; + put 'put ''XHUwM2M5XHUwM2NhXHUwM2NiXHUwM2NjXHUwM2NkXHUwM2NlXHVmZmZkIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVsx''@;'; + put 'put ''MjU0XT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2''@;'; + put 'put ''Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdTAxNjBcdTIwMzlcdTAxNTJcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAyZGNcdTIxMjJcdTAxNjFcdTIwM2FcdTAxNTNcdWZmZmRcdWZmZmRcdTAxNzhceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVc''@;'; + put 'put ''eGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2ZcdTAxMWVceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3''@;'; + put 'put ''XHhkOFx4ZDlceGRhXHhkYlx4ZGNcdTAxMzBcdTAxNWVceGRmXHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx1MDExZlx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x1MDEzMVx1MDE1''@;'; + put 'put ''Zlx4ZmYiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzEyNTVdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAy''@;'; + put 'put ''XHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpb''@;'; + put 'put ''XFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1ZmZmZFx1MjAzOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAx''@;'; + put 'put ''ZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1ZmZmZFx1MjAzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTBceGExXHhhMlx4YTNcdTIwYWFceGE1XHhhNlx4YTdceGE4XHhhOVx4ZDdceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3''@;'; + put 'put ''XHhiOFx4YjlceGY3XHhiYlx4YmNceGJkXHhiZVx4YmZcdTA1YjBcdTA1YjFcdTA1YjJcdTA1YjNcdTA1YjRcdTA1YjVcdTA1YjZcdTA1YjdcdTA1YjhcdTA1YjlcdWZmZmRcdTA1YmJcdTA1YmNcdTA1YmRcdTA1YmVcdTA1YmZcdTA1YzBcdTA1YzFcdTA1YzJcdTA1YzNcdTA1ZjBcdTA1ZjFc''@;'; + put 'put ''dTA1ZjJcdTA1ZjNcdTA1ZjRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA1ZDBcdTA1ZDFcdTA1ZDJcdTA1ZDNcdTA1ZDRcdTA1ZDVcdTA1ZDZcdTA1ZDdcdTA1ZDhcdTA1ZDlcdTA1ZGFcdTA1ZGJcdTA1ZGNcdTA1ZGRcdTA1ZGVcdTA1ZGZcdTA1ZTBcdTA1''@;'; + put 'put ''ZTFcdTA1ZTJcdTA1ZTNcdTA1ZTRcdTA1ZTVcdTA1ZTZcdTA1ZTdcdTA1ZThcdTA1ZTlcdTA1ZWFcdWZmZmRcdWZmZmRcdTIwMGVcdTIwMGZcdWZmZmQiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1l''@;'; + put 'put ''W0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzEyNTZdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFh''@;'; + put 'put ''XHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1MDY3ZVx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1''@;'; + put 'put ''MjAyMVx1MDJjNlx1MjAzMFx1MDY3OVx1MjAzOVx1MDE1Mlx1MDY4Nlx1MDY5OFx1MDY4OFx1MDZhZlx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDZhOVx1MjEyMlx1MDY5MVx1MjAzYVx1MDE1M1x1MjAwY1x1MjAwZFx1MDZiYVx4YTBcdTA2MGNceGEyXHhh''@;'; + put 'put ''M1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx1MDZiZVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx1MDYxYlx4YmJceGJjXHhiZFx4YmVcdTA2MWZcdTA2YzFcdTA2MjFcdTA2MjJcdTA2MjNcdTA2MjRcdTA2MjVcdTA2MjZcdTA2''@;'; + put 'put ''MjdcdTA2MjhcdTA2MjlcdTA2MmFcdTA2MmJcdTA2MmNcdTA2MmRcdTA2MmVcdTA2MmZcdTA2MzBcdTA2MzFcdTA2MzJcdTA2MzNcdTA2MzRcdTA2MzVcdTA2MzZceGQ3XHUwNjM3XHUwNjM4XHUwNjM5XHUwNjNhXHUwNjQwXHUwNjQxXHUwNjQyXHUwNjQzXHhlMFx1MDY0NFx4ZTJcdTA2NDVc''@;'; + put 'put ''dTA2NDZcdTA2NDdcdTA2NDhceGU3XHhlOFx4ZTlceGVhXHhlYlx1MDY0OVx1MDY0YVx4ZWVceGVmXHUwNjRiXHUwNjRjXHUwNjRkXHUwNjRlXHhmNFx1MDY0Zlx1MDY1MFx4ZjdcdTA2NTFceGY5XHUwNjUyXHhmYlx4ZmNcdTIwMGVcdTIwMGZcdTA2ZDIiLG1lPVtdLEI9e30sRT0wO0UhPUwu''@;'; + put 'put ''bGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzEyNTddPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5c''@;'; + put 'put ''dlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1''@;'; + put 'put ''dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1MjAxYVx1ZmZmZFx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1ZmZmZFx1MjAzMFx1ZmZmZFx1MjAzOVx1ZmZmZFx4YThcdTAyYzdceGI4XHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIy''@;'; + put 'put ''XHVmZmZkXHUyMDNhXHVmZmZkXHhhZlx1MDJkYlx1ZmZmZFx4YTBcdWZmZmRceGEyXHhhM1x4YTRcdWZmZmRceGE2XHhhN1x4ZDhceGE5XHUwMTU2XHhhYlx4YWNceGFkXHhhZVx4YzZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4ZjhceGI5XHUwMTU3XHhiYlx4YmNceGJkXHhi''@;'; + put 'put ''ZVx4ZTZcdTAxMDRcdTAxMmVcdTAxMDBcdTAxMDZceGM0XHhjNVx1MDExOFx1MDExMlx1MDEwY1x4YzlcdTAxNzlcdTAxMTZcdTAxMjJcdTAxMzZcdTAxMmFcdTAxM2JcdTAxNjBcdTAxNDNcdTAxNDVceGQzXHUwMTRjXHhkNVx4ZDZceGQ3XHUwMTcyXHUwMTQxXHUwMTVhXHUwMTZhXHhkY1x1''@;'; + put 'put ''MDE3Ylx1MDE3ZFx4ZGZcdTAxMDVcdTAxMmZcdTAxMDFcdTAxMDdceGU0XHhlNVx1MDExOVx1MDExM1x1MDEwZFx4ZTlcdTAxN2FcdTAxMTdcdTAxMjNcdTAxMzdcdTAxMmJcdTAxM2NcdTAxNjFcdTAxNDRcdTAxNDZceGYzXHUwMTRkXHhmNVx4ZjZceGY3XHUwMTczXHUwMTQyXHUwMTViXHUw''@;'; + put 'put ''MTZiXHhmY1x1MDE3Y1x1MDE3ZVx1MDJkOSIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTI1OF09ZnVuY3Rpb24oKXtm''@;'; + put 'put ''b3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZH''@;'; + put 'put ''SElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHVmZmZkXHUyMDM5XHUwMTUyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUy''@;'; + put 'put ''MDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHVmZmZkXHUyMDNhXHUwMTUzXHVmZmZkXHVmZmZkXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4''@;'; + put 'put ''YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJcdTAxMDJceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx1MDMwMFx4Y2RceGNlXHhjZlx1MDExMFx4ZDFcdTAzMDlceGQzXHhkNFx1MDFhMFx4ZDZceGQ3XHhkOFx4ZDlc''@;'; + put 'put ''eGRhXHhkYlx4ZGNcdTAxYWZcdTAzMDNceGRmXHhlMFx4ZTFceGUyXHUwMTAzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJcdTAzMDFceGVkXHhlZVx4ZWZcdTAxMTFceGYxXHUwMzIzXHhmM1x4ZjRcdTAxYTFceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHUwMWIwXHUyMGFi''@;'; + put 'put ''XHhmZiIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMWU0XT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4''@;'; + put 'put ''MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xc''@;'; + put 'put ''XV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVmXHhmMVx4ZjNceGYyXHhmNFx4ZjZceGY1XHhmYVx4ZjlceGZiXHhm''@;'; + put 'put ''Y1x1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBceGM2XHhkOFx1MjIxZVx4YjFcdTIyNjRcdTIyNjVceGE1XHhiNVx1MjIwMlx1MjIxMVx1MjIwZlx1MDNjMFx1MjIyYlx4YWFceGJhXHUyMTI2XHhlNlx4ZjhceGJmXHhhMVx4''@;'; + put 'put ''YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBceGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHhmZlx1MDE3OFx1MjA0NFx4YTRcdTIwMzlcdTIwM2FcdWZiMDFcdWZiMDJcdTIwMjFc''@;'; + put 'put ''eGI3XHUyMDFhXHUyMDFlXHUyMDMwXHhjMlx4Y2FceGMxXHhjYlx4YzhceGNkXHhjZVx4Y2ZceGNjXHhkM1x4ZDRcdWZmZmRceGQyXHhkYVx4ZGJceGQ5XHUwMTMxXHUwMmM2XHUwMmRjXHhhZlx1MDJkOFx1MDJkOVx1MDJkYVx4YjhcdTAyZGRcdTAyZGJcdTAyYzciLG1lPVtdLEI9e30sRT0w''@;'; + put 'put ''O0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzEwMDA2XT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3''@;'; + put 'put ''XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1u''@;'; + put 'put ''b3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM0XHhiOVx4YjJceGM5XHhiM1x4ZDZceGRjXHUwMzg1XHhlMFx4ZTJceGU0XHUwMzg0XHhhOFx4ZTdceGU5XHhlOFx4ZWFceGViXHhhM1x1MjEyMlx4ZWVceGVmXHUyMDIyXHhiZFx1MjAzMFx4ZjRceGY2XHhhNlx4YWRceGY5XHhmYlx4ZmNcdTIwMjBc''@;'; + put 'put ''dTAzOTNcdTAzOTRcdTAzOThcdTAzOWJcdTAzOWVcdTAzYTBceGRmXHhhZVx4YTlcdTAzYTNcdTAzYWFceGE3XHUyMjYwXHhiMFx1MDM4N1x1MDM5MVx4YjFcdTIyNjRcdTIyNjVceGE1XHUwMzkyXHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk5XHUwMzlhXHUwMzljXHUwM2E2XHUwM2FiXHUwM2E4''@;'; + put 'put ''XHUwM2E5XHUwM2FjXHUwMzlkXHhhY1x1MDM5Zlx1MDNhMVx1MjI0OFx1MDNhNFx4YWJceGJiXHUyMDI2XHhhMFx1MDNhNVx1MDNhN1x1MDM4Nlx1MDM4OFx1MDE1M1x1MjAxM1x1MjAxNVx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTAzODlcdTAzOGFcdTAzOGNcdTAzOGVcdTAzYWRc''@;'; + put 'put ''dTAzYWVcdTAzYWZcdTAzY2NcdTAzOGZcdTAzY2RcdTAzYjFcdTAzYjJcdTAzYzhcdTAzYjRcdTAzYjVcdTAzYzZcdTAzYjNcdTAzYjdcdTAzYjlcdTAzYmVcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmZcdTAzYzBcdTAzY2VcdTAzYzFcdTAzYzNcdTAzYzRcdTAzYjhcdTAzYzlcdTAz''@;'; + put 'put ''YzJcdTAzYzdcdTAzYzVcdTAzYjZcdTAzY2FcdTAzY2JcdTAzOTBcdTAzYjBcdWZmZmQiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9''@;'; + put 'put ''fSgpLEplWzEwMDA3XT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywt''@;'; + put 'put ''Li8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNc''@;'; + put 'put ''dTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx1MDQwNlx4YWVceGE5XHUyMTIy''@;'; + put 'put ''XHUwNDAyXHUwNDUyXHUyMjYwXHUwNDAzXHUwNDUzXHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx1MDQ1Nlx4YjVcdTIyMDJcdTA0MDhcdTA0MDRcdTA0NTRcdTA0MDdcdTA0NTdcdTA0MDlcdTA0NTlcdTA0MGFcdTA0NWFcdTA0NThcdTA0MDVceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUyMjA2XHhh''@;'; + put 'put ''Ylx4YmJcdTIwMjZceGEwXHUwNDBiXHUwNDViXHUwNDBjXHUwNDVjXHUwNDU1XHUyMDEzXHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MjAxZVx1MDQwZVx1MDQ1ZVx1MDQwZlx1MDQ1Zlx1MjExNlx1MDQwMVx1MDQ1MVx1MDQ0Zlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1''@;'; + put 'put ''MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx4YTQi''@;'; + put 'put ''LG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzEwMDA4XT1mdW5jdGlvbigpe3ZhciBFLEw9W10sbWU9e30sQj1bXTtmb3Io''@;'; + put 'put ''QlswXT0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpL''@;'; + put 'put ''TE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceDgwXHVmOGQ4XHVmOGQ5XHVmOGRhXHVmOGRiXHVmOGRjXHVmOGRkXHVmOGRlXHVmOGRmXHVmOGUwXHVmOGUxXHVmOGUyXHVmOGUzXHVmOGU0XHVmOGU1XHVmOGU2XHVmOGU3XHVmOGU4XHVm''@;'; + put 'put ''OGU5XHVmOGVhXHVmOGViXHVmOGVjXHVmOGVkXHVmOGVlXHVmOGVmXHVmOGYwXHVmOGYxXHVmOGYyXHVmOGYzXHVmOGY0XHVmOGY1XHVmOGY2XHVmOGY3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmOGY4XHVmOGY5XHVmOGZhXHVmOGZiXHVmOGZjXHVmOGZkXHVmOGZlXHVmOGZmIi5z''@;'; + put 'put ''cGxpdCgiIiksRT0wO0UhPUJbMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMF1bRV1dPTArRSxMWzArRV09QlswXVtFXSk7Zm9yKEJbMTYxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDAwXHUzMDAxXHUzMDAyXHUzMGZiXHUwMmM5XHUwMmM3XHhhOFx1MzAwM1x1MzAwNVx1MjAxNVx1ZmY1ZVx1ZmZmZFx1MjAyNlx1MjAx''@;'; + put 'put ''OFx1MjAxOVx1MjAxY1x1MjAxZFx1MzAxNFx1MzAxNVx1MzAwOFx1MzAwOVx1MzAwYVx1MzAwYlx1MzAwY1x1MzAwZFx1MzAwZVx1MzAwZlx1MzAxNlx1MzAxN1x1MzAxMFx1MzAxMVx4YjFceGQ3XHhmN1x1MjIzNlx1MjIyN1x1MjIyOFx1MjIxMVx1MjIwZlx1MjIyYVx1MjIyOVx1MjIwOFx1''@;'; + put 'put ''MjIzN1x1MjIxYVx1MjJhNVx1MjIyNVx1MjIyMFx1MjMxMlx1MjI5OVx1MjIyYlx1MjIyZVx1MjI2MVx1MjI0Y1x1MjI0OFx1MjIzZFx1MjIxZFx1MjI2MFx1MjI2ZVx1MjI2Zlx1MjI2NFx1MjI2NVx1MjIxZVx1MjIzNVx1MjIzNFx1MjY0Mlx1MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNc''@;'; + put 'put ''dWZmMDRceGE0XHVmZmUwXHVmZmUxXHUyMDMwXHhhN1x1MjExNlx1MjYwNlx1MjYwNVx1MjVjYlx1MjVjZlx1MjVjZVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViM1x1MjViMlx1MjAzYlx1MjE5Mlx1MjE5MFx1MjE5MVx1MjE5M1x1MzAxM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1C''@;'; + put 'put ''WzE2MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjFdW0VdXT00MTIxNitFLExbNDEyMTYrRV09QlsxNjFdW0VdKTtmb3IoQlsxNjJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdTI0ODhcdTI0ODlcdTI0OGFcdTI0OGJcdTI0OGNcdTI0OGRcdTI0OGVcdTI0OGZcdTI0OTBcdTI0OTFcdTI0OTJcdTI0OTNcdTI0OTRcdTI0OTVcdTI0OTZcdTI0OTdcdTI0OThcdTI0OTlcdTI0OWFcdTI0OWJcdTI0NzRcdTI0NzVcdTI0NzZcdTI0NzdcdTI0Nzhc''@;'; + put 'put ''dTI0NzlcdTI0N2FcdTI0N2JcdTI0N2NcdTI0N2RcdTI0N2VcdTI0N2ZcdTI0ODBcdTI0ODFcdTI0ODJcdTI0ODNcdTI0ODRcdTI0ODVcdTI0ODZcdTI0ODdcdTI0NjBcdTI0NjFcdTI0NjJcdTI0NjNcdTI0NjRcdTI0NjVcdTI0NjZcdTI0NjdcdTI0NjhcdTI0NjlcdWZmZmRcdWZmZmRcdTMy''@;'; + put 'put ''MjBcdTMyMjFcdTMyMjJcdTMyMjNcdTMyMjRcdTMyMjVcdTMyMjZcdTMyMjdcdTMyMjhcdTMyMjlcdWZmZmRcdWZmZmRcdTIxNjBcdTIxNjFcdTIxNjJcdTIxNjNcdTIxNjRcdTIxNjVcdTIxNjZcdTIxNjdcdTIxNjhcdTIxNjlcdTIxNmFcdTIxNmJcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0''@;'; + put 'put ''KCIiKSxFPTA7RSE9QlsxNjJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTYyXVtFXV09NDE0NzIrRSxMWzQxNDcyK0VdPUJbMTYyXVtFXSk7Zm9yKEJbMTYzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZjAxXHVmZjAyXHVmZjAzXHVmZmU1XHVmZjA1XHVmZjA2XHVmZjA3XHVmZjA4XHVmZjA5XHVmZjBhXHVmZjBiXHVm''@;'; + put 'put ''ZjBjXHVmZjBkXHVmZjBlXHVmZjBmXHVmZjEwXHVmZjExXHVmZjEyXHVmZjEzXHVmZjE0XHVmZjE1XHVmZjE2XHVmZjE3XHVmZjE4XHVmZjE5XHVmZjFhXHVmZjFiXHVmZjFjXHVmZjFkXHVmZjFlXHVmZjFmXHVmZjIwXHVmZjIxXHVmZjIyXHVmZjIzXHVmZjI0XHVmZjI1XHVmZjI2XHVmZjI3''@;'; + put 'put ''XHVmZjI4XHVmZjI5XHVmZjJhXHVmZjJiXHVmZjJjXHVmZjJkXHVmZjJlXHVmZjJmXHVmZjMwXHVmZjMxXHVmZjMyXHVmZjMzXHVmZjM0XHVmZjM1XHVmZjM2XHVmZjM3XHVmZjM4XHVmZjM5XHVmZjNhXHVmZjNiXHVmZjNjXHVmZjNkXHVmZjNlXHVmZjNmXHVmZjQwXHVmZjQxXHVmZjQyXHVm''@;'; + put 'put ''ZjQzXHVmZjQ0XHVmZjQ1XHVmZjQ2XHVmZjQ3XHVmZjQ4XHVmZjQ5XHVmZjRhXHVmZjRiXHVmZjRjXHVmZjRkXHVmZjRlXHVmZjRmXHVmZjUwXHVmZjUxXHVmZjUyXHVmZjUzXHVmZjU0XHVmZjU1XHVmZjU2XHVmZjU3XHVmZjU4XHVmZjU5XHVmZjVhXHVmZjViXHVmZjVjXHVmZjVkXHVmZmUz''@;'; + put 'put ''XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2M11bRV1dPTQxNzI4K0UsTFs0MTcyOCtFXT1CWzE2M11bRV0pO2ZvcihCWzE2NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzA0MVx1MzA0Mlx1MzA0M1x1MzA0NFx1MzA0NVx1MzA0Nlx1MzA0N1x1MzA0OFx1MzA0OVx1''@;'; + put 'put ''MzA0YVx1MzA0Ylx1MzA0Y1x1MzA0ZFx1MzA0ZVx1MzA0Zlx1MzA1MFx1MzA1MVx1MzA1Mlx1MzA1M1x1MzA1NFx1MzA1NVx1MzA1Nlx1MzA1N1x1MzA1OFx1MzA1OVx1MzA1YVx1MzA1Ylx1MzA1Y1x1MzA1ZFx1MzA1ZVx1MzA1Zlx1MzA2MFx1MzA2MVx1MzA2Mlx1MzA2M1x1MzA2NFx1MzA2''@;'; + put 'put ''NVx1MzA2Nlx1MzA2N1x1MzA2OFx1MzA2OVx1MzA2YVx1MzA2Ylx1MzA2Y1x1MzA2ZFx1MzA2ZVx1MzA2Zlx1MzA3MFx1MzA3MVx1MzA3Mlx1MzA3M1x1MzA3NFx1MzA3NVx1MzA3Nlx1MzA3N1x1MzA3OFx1MzA3OVx1MzA3YVx1MzA3Ylx1MzA3Y1x1MzA3ZFx1MzA3ZVx1MzA3Zlx1MzA4MFx1''@;'; + put 'put ''MzA4MVx1MzA4Mlx1MzA4M1x1MzA4NFx1MzA4NVx1MzA4Nlx1MzA4N1x1MzA4OFx1MzA4OVx1MzA4YVx1MzA4Ylx1MzA4Y1x1MzA4ZFx1MzA4ZVx1MzA4Zlx1MzA5MFx1MzA5MVx1MzA5Mlx1MzA5M1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjRdW0VdXT00MTk4NCtFLExbNDE5ODQrRV09QlsxNjRdW0VdKTtmb3IoQlsxNjVdPSJcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwYTFcdTMwYTJcdTMwYTNcdTMwYTRcdTMwYTVcdTMwYTZcdTMwYTdc''@;'; + put 'put ''dTMwYThcdTMwYTlcdTMwYWFcdTMwYWJcdTMwYWNcdTMwYWRcdTMwYWVcdTMwYWZcdTMwYjBcdTMwYjFcdTMwYjJcdTMwYjNcdTMwYjRcdTMwYjVcdTMwYjZcdTMwYjdcdTMwYjhcdTMwYjlcdTMwYmFcdTMwYmJcdTMwYmNcdTMwYmRcdTMwYmVcdTMwYmZcdTMwYzBcdTMwYzFcdTMwYzJcdTMw''@;'; + put 'put ''YzNcdTMwYzRcdTMwYzVcdTMwYzZcdTMwYzdcdTMwYzhcdTMwYzlcdTMwY2FcdTMwY2JcdTMwY2NcdTMwY2RcdTMwY2VcdTMwY2ZcdTMwZDBcdTMwZDFcdTMwZDJcdTMwZDNcdTMwZDRcdTMwZDVcdTMwZDZcdTMwZDdcdTMwZDhcdTMwZDlcdTMwZGFcdTMwZGJcdTMwZGNcdTMwZGRcdTMwZGVc''@;'; + put 'put ''dTMwZGZcdTMwZTBcdTMwZTFcdTMwZTJcdTMwZTNcdTMwZTRcdTMwZTVcdTMwZTZcdTMwZTdcdTMwZThcdTMwZTlcdTMwZWFcdTMwZWJcdTMwZWNcdTMwZWRcdTMwZWVcdTMwZWZcdTMwZjBcdTMwZjFcdTMwZjJcdTMwZjNcdTMwZjRcdTMwZjVcdTMwZjZcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY1XVtFXV09NDIyNDArRSxMWzQyMjQwK0VdPUJbMTY1XVtFXSk7Zm9yKEJbMTY2XT0iXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1''@;'; + put 'put ''XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUw''@;'; + put 'put ''M2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2Nl1bRV1dPTQyNDk2K0UsTFs0MjQ5NitFXT1CWzE2Nl1bRV0pO2ZvcihC''@;'; + put 'put ''WzE2N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDQxMFx1MDQxMVx1MDQx''@;'; + put 'put ''Mlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQwMVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1''@;'; + put 'put ''MDQyZFx1MDQyZVx1MDQyZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQ1MVx1MDQzNlx1MDQzN1x1MDQz''@;'; + put 'put ''OFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjddW0VdXT00Mjc1MitFLExbNDI3NTIrRV09Qlsx''@;'; + put 'put ''NjddW0VdKTtmb3IoQlsxNjhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTAx''@;'; + put 'put ''MDFceGUxXHUwMWNlXHhlMFx1MDExM1x4ZTlcdTAxMWJceGU4XHUwMTJiXHhlZFx1MDFkMFx4ZWNcdTAxNGRceGYzXHUwMWQyXHhmMlx1MDE2Ylx4ZmFcdTAxZDRceGY5XHUwMWQ2XHUwMWQ4XHUwMWRhXHUwMWRjXHhmY1x4ZWFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMxMDVcdTMxMDZcdTMxMDdcdTMxMDhcdTMxMDlcdTMxMGFcdTMxMGJcdTMxMGNcdTMxMGRcdTMxMGVcdTMxMGZcdTMxMTBcdTMxMTFcdTMxMTJcdTMxMTNcdTMxMTRcdTMxMTVcdTMxMTZcdTMxMTdcdTMxMThcdTMxMTlcdTMxMWFcdTMxMWJcdTMx''@;'; + put 'put ''MWNcdTMxMWRcdTMxMWVcdTMxMWZcdTMxMjBcdTMxMjFcdTMxMjJcdTMxMjNcdTMxMjRcdTMxMjVcdTMxMjZcdTMxMjdcdTMxMjhcdTMxMjlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY4XVtFXV09NDMwMDgrRSxMWzQzMDA4K0VdPUJbMTY4XVtFXSk7Zm9y''@;'; + put 'put ''KEJbMTY5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHUyNTAwXHUyNTAxXHUyNTAyXHUyNTAzXHUyNTA0XHUyNTA1XHUyNTA2XHUyNTA3XHUyNTA4XHUyNTA5XHUyNTBhXHUyNTBiXHUyNTBjXHUyNTBkXHUyNTBlXHUyNTBmXHUyNTEwXHUyNTExXHUyNTEyXHUyNTEzXHUyNTE0XHUyNTE1XHUyNTE2XHUyNTE3XHUyNTE4XHUyNTE5XHUyNTFh''@;'; + put 'put ''XHUyNTFiXHUyNTFjXHUyNTFkXHUyNTFlXHUyNTFmXHUyNTIwXHUyNTIxXHUyNTIyXHUyNTIzXHUyNTI0XHUyNTI1XHUyNTI2XHUyNTI3XHUyNTI4XHUyNTI5XHUyNTJhXHUyNTJiXHUyNTJjXHUyNTJkXHUyNTJlXHUyNTJmXHUyNTMwXHUyNTMxXHUyNTMyXHUyNTMzXHUyNTM0XHUyNTM1XHUy''@;'; + put 'put ''NTM2XHUyNTM3XHUyNTM4XHUyNTM5XHUyNTNhXHUyNTNiXHUyNTNjXHUyNTNkXHUyNTNlXHUyNTNmXHUyNTQwXHUyNTQxXHUyNTQyXHUyNTQzXHUyNTQ0XHUyNTQ1XHUyNTQ2XHUyNTQ3XHUyNTQ4XHUyNTQ5XHUyNTRhXHUyNTRiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2OV1bRV1dPTQzMjY0K0UsTFs0MzI2NCtFXT1C''@;'; + put 'put ''WzE2OV1bRV0pO2ZvcihCWzE3Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''NTU0YVx1OTYzZlx1NTdjM1x1NjMyOFx1NTRjZVx1NTUwOVx1NTRjMFx1NzY5MVx1NzY0Y1x1ODUzY1x1NzdlZVx1ODI3ZVx1Nzg4ZFx1NzIzMVx1OTY5OFx1OTc4ZFx1NmMyOFx1NWI4OVx1NGZmYVx1NjMwOVx1NjY5N1x1NWNiOFx1ODBmYVx1Njg0OFx1ODBhZVx1NjYwMlx1NzZjZVx1NTFm''@;'; + put 'put ''OVx1NjU1Nlx1NzFhY1x1N2ZmMVx1ODg4NFx1NTBiMlx1NTk2NVx1NjFjYVx1NmZiM1x1ODJhZFx1NjM0Y1x1NjI1Mlx1NTNlZFx1NTQyN1x1N2IwNlx1NTE2Ylx1NzVhNFx1NWRmNFx1NjJkNFx1OGRjYlx1OTc3Nlx1NjI4YVx1ODAxOVx1NTc1ZFx1OTczOFx1N2Y2Mlx1NzIzOFx1NzY3ZFx1''@;'; + put 'put ''NjdjZlx1NzY3ZVx1NjQ0Nlx1NGY3MFx1OGQyNVx1NjJkY1x1N2ExN1x1NjU5MVx1NzNlZFx1NjQyY1x1NjI3M1x1ODIyY1x1OTg4MVx1Njc3Zlx1NzI0OFx1NjI2ZVx1NjJjY1x1NGYzNFx1NzRlM1x1NTM0YVx1NTI5ZVx1N2VjYVx1OTBhNlx1NWUyZVx1Njg4Nlx1Njk5Y1x1ODE4MFx1N2Vk''@;'; + put 'put ''MVx1NjhkMlx1NzhjNVx1ODY4Y1x1OTU1MVx1NTA4ZFx1OGMyNFx1ODJkZVx1ODBkZVx1NTMwNVx1ODkxMlx1NTI2NVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzZdW0VdXT00NTA1NitF''@;'; + put 'put ''LExbNDUwNTYrRV09QlsxNzZdW0VdKTtmb3IoQlsxNzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdTg1ODRcdTk2ZjlcdTRmZGRcdTU4MjFcdTk5NzFcdTViOWRcdTYyYjFcdTYyYTVcdTY2YjRcdThjNzlcdTljOGRcdTcyMDZcdTY3NmZcdTc4OTFcdTYwYjJcdTUzNTFcdTUzMTdcdThmODhcdTgwY2NcdThkMWRcdTk0YTFcdTUwMGRcdTcyYzhcdTU5MDdcdTYwZWJcdTcx''@;'; + put 'put ''MTlcdTg4YWJcdTU5NTRcdTgyZWZcdTY3MmNcdTdiMjhcdTVkMjlcdTdlZjdcdTc1MmRcdTZjZjVcdThlNjZcdThmZjhcdTkwM2NcdTlmM2JcdTZiZDRcdTkxMTlcdTdiMTRcdTVmN2NcdTc4YTdcdTg0ZDZcdTg1M2RcdTZiZDVcdTZiZDlcdTZiZDZcdTVlMDFcdTVlODdcdTc1ZjlcdTk1ZWRc''@;'; + put 'put ''dTY1NWRcdTVmMGFcdTVmYzVcdThmOWZcdTU4YzFcdTgxYzJcdTkwN2ZcdTk2NWJcdTk3YWRcdThmYjlcdTdmMTZcdThkMmNcdTYyNDFcdTRmYmZcdTUzZDhcdTUzNWVcdThmYThcdThmYTlcdThmYWJcdTkwNGRcdTY4MDdcdTVmNmFcdTgxOThcdTg4NjhcdTljZDZcdTYxOGJcdTUyMmJcdTc2''@;'; + put 'put ''MmFcdTVmNmNcdTY1OGNcdTZmZDJcdTZlZThcdTViYmVcdTY0NDhcdTUxNzVcdTUxYjBcdTY3YzRcdTRlMTlcdTc5YzlcdTk5N2NcdTcwYjNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc3''@;'; + put 'put ''XVtFXV09NDUzMTIrRSxMWzQ1MzEyK0VdPUJbMTc3XVtFXSk7Zm9yKEJbMTc4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NWM1XHU1ZTc2XHU3M2JiXHU4M2UwXHU2NGFkXHU2MmU4XHU5NGI1XHU2Y2UyXHU1MzVhXHU1MmMzXHU2NDBmXHU5NGMyXHU3Yjk0XHU0ZjJmXHU1ZTFiXHU4MjM2XHU4MTE2XHU4MThhXHU2ZTI0XHU2Y2NhXHU5YTczXHU2MzU1XHU1MzVjXHU1''@;'; + put 'put ''NGZhXHU4ODY1XHU1N2UwXHU0ZTBkXHU1ZTAzXHU2YjY1XHU3YzNmXHU5MGU4XHU2MDE2XHU2NGU2XHU3MzFjXHU4OGMxXHU2NzUwXHU2MjRkXHU4ZDIyXHU3NzZjXHU4ZTI5XHU5MWM3XHU1ZjY5XHU4M2RjXHU4NTIxXHU5OTEwXHU1M2MyXHU4Njk1XHU2YjhiXHU2MGVkXHU2MGU4XHU3MDdm''@;'; + put 'put ''XHU4MmNkXHU4MjMxXHU0ZWQzXHU2Y2E3XHU4NWNmXHU2NGNkXHU3Y2Q5XHU2OWZkXHU2NmY5XHU4MzQ5XHU1Mzk1XHU3YjU2XHU0ZmE3XHU1MThjXHU2ZDRiXHU1YzQyXHU4ZTZkXHU2M2QyXHU1M2M5XHU4MzJjXHU4MzM2XHU2N2U1XHU3OGI0XHU2NDNkXHU1YmRmXHU1Yzk0XHU1ZGVlXHU4''@;'; + put 'put ''YmU3XHU2MmM2XHU2N2Y0XHU4YzdhXHU2NDAwXHU2M2JhXHU4NzQ5XHU5OThiXHU4YzE3XHU3ZjIwXHU5NGYyXHU0ZWE3XHU5NjEwXHU5OGE0XHU2NjBjXHU3MzE2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzhdW0VdLmNoYXJDb2RlQXQo''@;'; + put 'put ''MCkmJihtZVtCWzE3OF1bRV1dPTQ1NTY4K0UsTFs0NTU2OCtFXT1CWzE3OF1bRV0pO2ZvcihCWzE3OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTczYVx1NWMxZFx1NWUzOFx1OTU3Zlx1NTA3Zlx1ODBhMFx1NTM4Mlx1NjU1ZVx1NzU0NVx1NTUzMVx1NTAyMVx1OGQ4NVx1NjI4NFx1OTQ5ZVx1NjcxZFx1NTYzMlx1NmY2ZVx1NWRlMlx1NTQzNVx1NzA5Mlx1OGY2Nlx1''@;'; + put 'put ''NjI2Zlx1NjRhNFx1NjNhM1x1NWY3Ylx1NmY4OFx1OTBmNFx1ODFlM1x1OGZiMFx1NWMxOFx1NjY2OFx1NWZmMVx1NmM4OVx1OTY0OFx1OGQ4MVx1ODg2Y1x1NjQ5MVx1NzlmMFx1NTdjZVx1NmE1OVx1NjIxMFx1NTQ0OFx1NGU1OFx1N2EwYlx1NjBlOVx1NmY4NFx1OGJkYVx1NjI3Zlx1OTAx''@;'; + put 'put ''ZVx1OWE4Ylx1NzllNFx1NTQwM1x1NzVmNFx1NjMwMVx1NTMxOVx1NmM2MFx1OGZkZlx1NWYxYlx1OWE3MFx1ODAzYlx1OWY3Zlx1NGY4OFx1NWMzYVx1OGQ2NFx1N2ZjNVx1NjVhNVx1NzBiZFx1NTE0NVx1NTFiMlx1ODY2Ylx1NWQwN1x1NWJhMFx1NjJiZFx1OTE2Y1x1NzU3NFx1OGUwY1x1''@;'; + put 'put ''N2EyMFx1NjEwMVx1N2I3OVx1NGVjN1x1N2VmOFx1Nzc4NVx1NGUxMVx1ODFlZFx1NTIxZFx1NTFmYVx1NmE3MVx1NTNhOFx1OGU4N1x1OTUwNFx1OTZjZlx1NmVjMVx1OTY2NFx1Njk1YVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc5XVtF''@;'; + put 'put ''XS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzldW0VdXT00NTgyNCtFLExbNDU4MjQrRV09QlsxNzldW0VdKTtmb3IoQlsxODBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc4NDBcdTUwYThcdTc3ZDdcdTY0MTBcdTg5ZTZcdTU5MDRcdTYzZTNcdTVkZGRcdTdhN2ZcdTY5M2RcdTRmMjBcdTgyMzlcdTU1OThcdTRlMzJcdTc1YWVcdTdhOTdcdTVlNjJcdTVlOGFcdTk1ZWZc''@;'; + put 'put ''dTUyMWJcdTU0MzlcdTcwOGFcdTYzNzZcdTk1MjRcdTU3ODJcdTY2MjVcdTY5M2ZcdTkxODdcdTU1MDdcdTZkZjNcdTdlYWZcdTg4MjJcdTYyMzNcdTdlZjBcdTc1YjVcdTgzMjhcdTc4YzFcdTk2Y2NcdThmOWVcdTYxNDhcdTc0ZjdcdThiY2RcdTZiNjRcdTUyM2FcdThkNTBcdTZiMjFcdTgw''@;'; + put 'put ''NmFcdTg0NzFcdTU2ZjFcdTUzMDZcdTRlY2VcdTRlMWJcdTUxZDFcdTdjOTdcdTkxOGJcdTdjMDdcdTRmYzNcdThlN2ZcdTdiZTFcdTdhOWNcdTY0NjdcdTVkMTRcdTUwYWNcdTgxMDZcdTc2MDFcdTdjYjlcdTZkZWNcdTdmZTBcdTY3NTFcdTViNThcdTViZjhcdTc4Y2JcdTY0YWVcdTY0MTNc''@;'; + put 'put ''dTYzYWFcdTYzMmJcdTk1MTlcdTY0MmRcdThmYmVcdTdiNTRcdTc2MjlcdTYyNTNcdTU5MjdcdTU0NDZcdTZiNzlcdTUwYTNcdTYyMzRcdTVlMjZcdTZiODZcdTRlZTNcdThkMzdcdTg4OGJcdTVmODVcdTkwMmVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODBdLmxlbmd0aDsrK0UpNjU1''@;'; + put 'put ''MzMhPT1CWzE4MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgwXVtFXV09NDYwODArRSxMWzQ2MDgwK0VdPUJbMTgwXVtFXSk7Zm9yKEJbMTgxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDIwXHU4MDNkXHU2MmM1XHU0ZTM5XHU1MzU1XHU5MGY4XHU2M2I4XHU4MGM2XHU2NWU2XHU2YzJlXHU0ZjQ2XHU2MGVlXHU2ZGUxXHU4YmRlXHU1ZjM5XHU4NmNiXHU1ZjUz''@;'; + put 'put ''XHU2MzIxXHU1MTVhXHU4MzYxXHU2ODYzXHU1MjAwXHU2MzYzXHU4ZTQ4XHU1MDEyXHU1YzliXHU3OTc3XHU1YmZjXHU1MjMwXHU3YTNiXHU2MGJjXHU5MDUzXHU3NmQ3XHU1ZmI3XHU1Zjk3XHU3Njg0XHU4ZTZjXHU3MDZmXHU3NjdiXHU3YjQ5XHU3N2FhXHU1MWYzXHU5MDkzXHU1ODI0XHU0''@;'; + put 'put ''ZjRlXHU2ZWY0XHU4ZmVhXHU2NTRjXHU3YjFiXHU3MmM0XHU2ZGE0XHU3ZmRmXHU1YWUxXHU2MmI1XHU1ZTk1XHU1NzMwXHU4NDgyXHU3YjJjXHU1ZTFkXHU1ZjFmXHU5MDEyXHU3ZjE0XHU5OGEwXHU2MzgyXHU2ZWM3XHU3ODk4XHU3MGI5XHU1MTc4XHU5NzViXHU1N2FiXHU3NTM1XHU0ZjQz''@;'; + put 'put ''XHU3NTM4XHU1ZTk3XHU2MGU2XHU1OTYwXHU2ZGMwXHU2YmJmXHU3ODg5XHU1M2ZjXHU5NmQ1XHU1MWNiXHU1MjAxXHU2Mzg5XHU1NDBhXHU5NDkzXHU4YzAzXHU4ZGNjXHU3MjM5XHU3ODlmXHU4Nzc2XHU4ZmVkXHU4YzBkXHU1M2UwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgxXS5s''@;'; + put 'put ''ZW5ndGg7KytFKTY1NTMzIT09QlsxODFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4MV1bRV1dPTQ2MzM2K0UsTFs0NjMzNitFXT1CWzE4MV1bRV0pO2ZvcihCWzE4Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGUwMVx1NzZlZlx1NTNlZVx1OTQ4OVx1OTg3Nlx1OWYwZVx1OTUyZFx1NWI5YVx1OGJhMlx1NGUyMlx1NGUxY1x1NTFhY1x1ODQ2M1x1NjFjMlx1NTJh''@;'; + put 'put ''OFx1NjgwYlx1NGY5N1x1NjA2Ylx1NTFiYlx1NmQxZVx1NTE1Y1x1NjI5Nlx1NjU5N1x1OTY2MVx1OGM0Nlx1OTAxN1x1NzVkOFx1OTBmZFx1Nzc2M1x1NmJkMlx1NzI4YVx1NzJlY1x1OGJmYlx1NTgzNVx1Nzc3OVx1OGQ0Y1x1Njc1Y1x1OTU0MFx1ODA5YVx1NWVhNlx1NmUyMVx1NTk5Mlx1''@;'; + put 'put ''N2FlZlx1NzdlZFx1OTUzYlx1NmJiNVx1NjVhZFx1N2YwZVx1NTgwNlx1NTE1MVx1OTYxZlx1NWJmOVx1NThhOVx1NTQyOFx1OGU3Mlx1NjU2Nlx1OTg3Zlx1NTZlNFx1OTQ5ZFx1NzZmZVx1OTA0MVx1NjM4N1x1NTRjNlx1NTkxYVx1NTkzYVx1NTc5Ylx1OGViMlx1NjczNVx1OGRmYVx1ODIz''@;'; + put 'put ''NVx1NTI0MVx1NjBmMFx1NTgxNVx1ODZmZVx1NWNlOFx1OWU0NVx1NGZjNFx1OTg5ZFx1OGJiOVx1NWEyNVx1NjA3Nlx1NTM4NFx1NjI3Y1x1OTA0Zlx1OTEwMlx1OTk3Zlx1NjA2OVx1ODAwY1x1NTEzZlx1ODAzM1x1NWMxNFx1OTk3NVx1NmQzMVx1NGU4Y1x1ZmZmZCIuc3BsaXQoIiIpLEU9''@;'; + put 'put ''MDtFIT1CWzE4Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODJdW0VdXT00NjU5MitFLExbNDY1OTIrRV09QlsxODJdW0VdKTtmb3IoQlsxODNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThkMzBcdTUzZDFcdTdmNWFcdTdiNGZcdTRmMTBcdTRlNGZcdTk2MDBcdTZjZDVcdTczZDBcdTg1ZTlcdTVlMDZcdTc1NmFcdTdm''@;'; + put 'put ''ZmJcdTZhMGFcdTc3ZmVcdTk0OTJcdTdlNDFcdTUxZTFcdTcwZTZcdTUzY2RcdThmZDRcdTgzMDNcdThkMjlcdTcyYWZcdTk5NmRcdTZjZGJcdTU3NGFcdTgyYjNcdTY1YjlcdTgwYWFcdTYyM2ZcdTk2MzJcdTU5YThcdTRlZmZcdThiYmZcdTdlYmFcdTY1M2VcdTgzZjJcdTk3NWVcdTU1NjFc''@;'; + put 'put ''dTk4ZGVcdTgwYTVcdTUzMmFcdThiZmRcdTU0MjBcdTgwYmFcdTVlOWZcdTZjYjhcdThkMzlcdTgyYWNcdTkxNWFcdTU0MjlcdTZjMWJcdTUyMDZcdTdlYjdcdTU3NWZcdTcxMWFcdTZjN2VcdTdjODlcdTU5NGJcdTRlZmRcdTVmZmZcdTYxMjRcdTdjYWFcdTRlMzBcdTVjMDFcdTY3YWJcdTg3''@;'; + put 'put ''MDJcdTVjZjBcdTk1MGJcdTk4Y2VcdTc1YWZcdTcwZmRcdTkwMjJcdTUxYWZcdTdmMWRcdThiYmRcdTU5NDlcdTUxZTRcdTRmNWJcdTU0MjZcdTU5MmJcdTY1NzdcdTgwYTRcdTViNzVcdTYyNzZcdTYyYzJcdThmOTBcdTVlNDVcdTZjMWZcdTdiMjZcdTRmMGZcdTRmZDhcdTY3MGRcdWZmZmQi''@;'; + put 'put ''LnNwbGl0KCIiKSxFPTA7RSE9QlsxODNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgzXVtFXV09NDY4NDgrRSxMWzQ2ODQ4K0VdPUJbMTgzXVtFXSk7Zm9yKEJbMTg0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDZlXHU2ZGFhXHU3OThmXHU4OGIxXHU1ZjE3XHU3NTJiXHU2MjlhXHU4Zjg1XHU0ZmVmXHU5MWRjXHU2''@;'; + put 'put ''NWE3XHU4MTJmXHU4MTUxXHU1ZTljXHU4MTUwXHU4ZDc0XHU1MjZmXHU4OTg2XHU4ZDRiXHU1OTBkXHU1MDg1XHU0ZWQ4XHU5NjFjXHU3MjM2XHU4MTc5XHU4ZDFmXHU1YmNjXHU4YmEzXHU5NjQ0XHU1OTg3XHU3ZjFhXHU1NDkwXHU1Njc2XHU1NjBlXHU4YmU1XHU2NTM5XHU2OTgyXHU5NDk5''@;'; + put 'put ''XHU3NmQ2XHU2ZTg5XHU1ZTcyXHU3NTE4XHU2NzQ2XHU2N2QxXHU3YWZmXHU4MDlkXHU4ZDc2XHU2MTFmXHU3OWM2XHU2NTYyXHU4ZDYzXHU1MTg4XHU1MjFhXHU5NGEyXHU3ZjM4XHU4MDliXHU3ZWIyXHU1Yzk3XHU2ZTJmXHU2NzYwXHU3YmQ5XHU3NjhiXHU5YWQ4XHU4MThmXHU3Zjk0XHU3''@;'; + put 'put ''Y2Q1XHU2NDFlXHU5NTUwXHU3YTNmXHU1NDRhXHU1NGU1XHU2YjRjXHU2NDAxXHU2MjA4XHU5ZTNkXHU4MGYzXHU3NTk5XHU1MjcyXHU5NzY5XHU4NDViXHU2ODNjXHU4NmU0XHU5NjAxXHU5Njk0XHU5NGVjXHU0ZTJhXHU1NDA0XHU3ZWQ5XHU2ODM5XHU4ZGRmXHU4MDE1XHU2NmY0XHU1ZTlh''@;'; + put 'put ''XHU3ZmI5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4NF1bRV1dPTQ3MTA0K0UsTFs0NzEwNCtFXT1CWzE4NF1bRV0pO2ZvcihCWzE4NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTdjMlx1ODAzZlx1Njg5N1x1NWRlNVx1NjUzYlx1NTI5Zlx1NjA2ZFx1OWY5YVx1''@;'; + put 'put ''NGY5Ylx1OGVhY1x1NTE2Y1x1NWJhYlx1NWYxM1x1NWRlOVx1NmM1ZVx1NjJmMVx1OGQyMVx1NTE3MVx1OTRhOVx1NTJmZVx1NmM5Zlx1ODJkZlx1NzJkN1x1NTdhMlx1Njc4NFx1OGQyZFx1NTkxZlx1OGY5Y1x1ODNjN1x1NTQ5NVx1N2I4ZFx1NGYzMFx1NmNiZFx1NWI2NFx1NTlkMVx1OWYx''@;'; + put 'put ''M1x1NTNlNFx1ODZjYVx1OWFhOFx1OGMzN1x1ODBhMVx1NjU0NVx1OTg3ZVx1NTZmYVx1OTZjN1x1NTIyZVx1NzRkY1x1NTI1MFx1NWJlMVx1NjMwMlx1ODkwMlx1NGU1Nlx1NjJkMFx1NjAyYVx1NjhmYVx1NTE3M1x1NWI5OFx1NTFhMFx1ODljMlx1N2JhMVx1OTk4Nlx1N2Y1MFx1NjBlZlx1''@;'; + put 'put ''NzA0Y1x1OGQyZlx1NTE0OVx1NWU3Zlx1OTAxYlx1NzQ3MFx1ODljNFx1NTcyZFx1Nzg0NVx1NWY1Mlx1OWY5Zlx1OTVmYVx1OGY2OFx1OWIzY1x1OGJlMVx1NzY3OFx1Njg0Mlx1NjdkY1x1OGRlYVx1OGQzNVx1NTIzZFx1OGY4YVx1NmVkYVx1NjhjZFx1OTUwNVx1OTBlZFx1NTZmZFx1Njc5''@;'; + put 'put ''Y1x1ODhmOVx1OGZjN1x1NTRjOFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODVdW0VdXT00NzM2MCtFLExbNDczNjArRV09QlsxODVdW0VdKTtmb3IoQlsxODZdPSJcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlhYjhcdTViNjlcdTZkNzdcdTZjMjZcdTRlYTVcdTViYjNc''@;'; + put 'put ''dTlhODdcdTkxNjNcdTYxYThcdTkwYWZcdTk3ZTlcdTU0MmJcdTZkYjVcdTViZDJcdTUxZmRcdTU1OGFcdTdmNTVcdTdmZjBcdTY0YmNcdTYzNGRcdTY1ZjFcdTYxYmVcdTYwOGRcdTcxMGFcdTZjNTdcdTZjNDlcdTU5MmZcdTY3NmRcdTgyMmFcdTU4ZDVcdTU2OGVcdThjNmFcdTZiZWJcdTkw''@;'; + put 'put ''ZGRcdTU5N2RcdTgwMTdcdTUzZjdcdTZkNjlcdTU0NzVcdTU1OWRcdTgzNzdcdTgzY2ZcdTY4MzhcdTc5YmVcdTU0OGNcdTRmNTVcdTU0MDhcdTc2ZDJcdThjODlcdTk2MDJcdTZjYjNcdTZkYjhcdThkNmJcdTg5MTBcdTllNjRcdThkM2FcdTU2M2ZcdTllZDFcdTc1ZDVcdTVmODhcdTcyZTBc''@;'; + put 'put ''dTYwNjhcdTU0ZmNcdTRlYThcdTZhMmFcdTg4NjFcdTYwNTJcdThmNzBcdTU0YzRcdTcwZDhcdTg2NzlcdTllM2ZcdTZkMmFcdTViOGZcdTVmMThcdTdlYTJcdTU1ODlcdTRmYWZcdTczMzRcdTU0M2NcdTUzOWFcdTUwMTlcdTU0MGVcdTU0N2NcdTRlNGVcdTVmZmRcdTc0NWFcdTU4ZjZcdTg0''@;'; + put 'put ''NmJcdTgwZTFcdTg3NzRcdTcyZDBcdTdjY2FcdTZlNTZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg2XVtFXV09NDc2MTYrRSxMWzQ3NjE2K0VdPUJbMTg2XVtFXSk7Zm9yKEJbMTg3XT0i''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZjI3XHU4NjRlXHU1NTJjXHU2MmE0''@;'; + put 'put ''XHU0ZTkyXHU2Y2FhXHU2MjM3XHU4MmIxXHU1NGQ3XHU1MzRlXHU3MzNlXHU2ZWQxXHU3NTNiXHU1MjEyXHU1MzE2XHU4YmRkXHU2OWQwXHU1ZjhhXHU2MDAwXHU2ZGVlXHU1NzRmXHU2YjIyXHU3M2FmXHU2ODUzXHU4ZmQ4XHU3ZjEzXHU2MzYyXHU2MGEzXHU1NTI0XHU3NWVhXHU4YzYyXHU3''@;'; + put 'put ''MTE1XHU2ZGEzXHU1YmE2XHU1ZTdiXHU4MzUyXHU2MTRjXHU5ZWM0XHU3OGZhXHU4NzU3XHU3YzI3XHU3Njg3XHU1MWYwXHU2MGY2XHU3MTRjXHU2NjQzXHU1ZTRjXHU2MDRkXHU4YzBlXHU3MDcwXHU2MzI1XHU4Zjg5XHU1ZmJkXHU2MDYyXHU4NmQ0XHU1NmRlXHU2YmMxXHU2MDk0XHU2MTY3''@;'; + put 'put ''XHU1MzQ5XHU2MGUwXHU2NjY2XHU4ZDNmXHU3OWZkXHU0ZjFhXHU3MGU5XHU2YzQ3XHU4YmIzXHU4YmYyXHU3ZWQ4XHU4MzY0XHU2NjBmXHU1YTVhXHU5YjQyXHU2ZDUxXHU2ZGY3XHU4YzQxXHU2ZDNiXHU0ZjE5XHU3MDZiXHU4M2I3XHU2MjE2XHU2MGQxXHU5NzBkXHU4ZDI3XHU3OTc4XHU1''@;'; + put 'put ''MWZiXHU1NzNlXHU1N2ZhXHU2NzNhXHU3NTc4XHU3YTNkXHU3OWVmXHU3Yjk1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4N11bRV1dPTQ3ODcyK0UsTFs0Nzg3MitFXT1CWzE4N11bRV0p''@;'; + put 'put ''O2ZvcihCWzE4OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODA4Y1x1OTk2''@;'; + put 'put ''NVx1OGZmOVx1NmZjMFx1OGJhNVx1OWUyMVx1NTllY1x1N2VlOVx1N2YwOVx1NTQwOVx1Njc4MVx1NjhkOFx1OGY5MVx1N2M0ZFx1OTZjNlx1NTNjYVx1NjAyNVx1NzViZVx1NmM3Mlx1NTM3M1x1NWFjOVx1N2VhN1x1NjMyNFx1NTFlMFx1ODEwYVx1NWRmMVx1ODRkZlx1NjI4MFx1NTE4MFx1''@;'; + put 'put ''NWI2M1x1NGYwZVx1Nzk2ZFx1NTI0Mlx1NjBiOFx1NmQ0ZVx1NWJjNFx1NWJjMlx1OGJhMVx1OGJiMFx1NjVlMlx1NWZjY1x1OTY0NVx1NTk5M1x1N2VlN1x1N2VhYVx1NTYwOVx1NjdiN1x1NTkzOVx1NGY3M1x1NWJiNlx1NTJhMFx1ODM1YVx1OTg4YVx1OGQzZVx1NzUzMlx1OTRiZVx1NTA0''@;'; + put 'put ''N1x1N2EzY1x1NGVmN1x1NjdiNlx1OWE3ZVx1NWFjMVx1NmI3Y1x1NzZkMVx1NTc1YVx1NWMxNlx1N2IzYVx1OTVmNFx1NzE0ZVx1NTE3Y1x1ODBhOVx1ODI3MFx1NTk3OFx1N2YwNFx1ODMyN1x1NjhjMFx1NjdlY1x1NzhiMVx1Nzg3N1x1NjJlM1x1NjM2MVx1N2I4MFx1NGZlZFx1NTI2YVx1''@;'; + put 'put ''NTFjZlx1ODM1MFx1NjlkYlx1OTI3NFx1OGRmNVx1OGQzMVx1ODljMVx1OTUyZVx1N2JhZFx1NGVmNlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODhdW0VdXT00ODEyOCtFLExbNDgxMjgr''@;'; + put 'put ''RV09QlsxODhdW0VdKTtmb3IoQlsxODldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdTUwNjVcdTgyMzBcdTUyNTFcdTk5NmZcdTZlMTBcdTZlODVcdTZkYTdcdTVlZmFcdTUwZjVcdTU5ZGNcdTVjMDZcdTZkNDZcdTZjNWZcdTc1ODZcdTg0OGJcdTY4NjhcdTU5NTZcdThiYjJcdTUzMjBcdTkxNzFcdTk2NGRcdTg1NDlcdTY5MTJcdTc5MDFcdTcxMjZcdTgwZjZcdTRlYTRc''@;'; + put 'put ''dTkwY2FcdTZkNDdcdTlhODRcdTVhMDdcdTU2YmNcdTY0MDVcdTk0ZjBcdTc3ZWJcdTRmYTVcdTgxMWFcdTcyZTFcdTg5ZDJcdTk5N2FcdTdmMzRcdTdlZGVcdTUyN2ZcdTY1NTlcdTkxNzVcdThmN2ZcdThmODNcdTUzZWJcdTdhOTZcdTYzZWRcdTYzYTVcdTc2ODZcdTc5ZjhcdTg4NTdcdTk2''@;'; + put 'put ''MzZcdTYyMmFcdTUyYWJcdTgyODJcdTY4NTRcdTY3NzBcdTYzNzdcdTc3NmJcdTdhZWRcdTZkMDFcdTdlZDNcdTg5ZTNcdTU5ZDBcdTYyMTJcdTg1YzlcdTgyYTVcdTc1NGNcdTUwMWZcdTRlY2JcdTc1YTVcdThiZWJcdTVjNGFcdTVkZmVcdTdiNGJcdTY1YTRcdTkxZDFcdTRlY2FcdTZkMjVc''@;'; + put 'put ''dTg5NWZcdTdkMjdcdTk1MjZcdTRlYzVcdThjMjhcdThmZGJcdTk3NzNcdTY2NGJcdTc5ODFcdThmZDFcdTcwZWNcdTZkNzhcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg5XVtFXV09NDgz''@;'; + put 'put ''ODQrRSxMWzQ4Mzg0K0VdPUJbMTg5XVtFXSk7Zm9yKEJbMTkwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHU1YzNkXHU1MmIyXHU4MzQ2XHU1MTYyXHU4MzBlXHU3NzViXHU2Njc2XHU5Y2I4XHU0ZWFjXHU2MGNhXHU3Y2JlXHU3Y2IzXHU3ZWNmXHU0ZTk1XHU4YjY2XHU2NjZmXHU5ODg4XHU5NzU5XHU1ODgzXHU2NTZjXHU5NTVjXHU1Zjg0XHU3NWM5XHU5NzU2XHU3YWRm''@;'; + put 'put ''XHU3YWRlXHU1MWMwXHU3MGFmXHU3YTk4XHU2M2VhXHU3YTc2XHU3ZWEwXHU3Mzk2XHU5N2VkXHU0ZTQ1XHU3MDc4XHU0ZTVkXHU5MTUyXHU1M2E5XHU2NTUxXHU2NWU3XHU4MWZjXHU4MjA1XHU1NDhlXHU1YzMxXHU3NTlhXHU5N2EwXHU2MmQ4XHU3MmQ5XHU3NWJkXHU1YzQ1XHU5YTc5XHU4''@;'; + put 'put ''M2NhXHU1YzQwXHU1NDgwXHU3N2U5XHU0ZTNlXHU2Y2FlXHU4MDVhXHU2MmQyXHU2MzZlXHU1ZGU4XHU1MTc3XHU4ZGRkXHU4ZTFlXHU5NTJmXHU0ZmYxXHU1M2U1XHU2MGU3XHU3MGFjXHU1MjY3XHU2MzUwXHU5ZTQzXHU1YTFmXHU1MDI2XHU3NzM3XHU1Mzc3XHU3ZWUyXHU2NDg1XHU2NTJi''@;'; + put 'put ''XHU2Mjg5XHU2Mzk4XHU1MDE0XHU3MjM1XHU4OWM5XHU1MWIzXHU4YmMwXHU3ZWRkXHU1NzQ3XHU4M2NjXHU5NGE3XHU1MTliXHU1NDFiXHU1Y2ZiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtC''@;'; + put 'put ''WzE5MF1bRV1dPTQ4NjQwK0UsTFs0ODY0MCtFXT1CWzE5MF1bRV0pO2ZvcihCWzE5MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGZjYVx1N2FlM1x1NmQ1YVx1OTBlMVx1OWE4Zlx1NTU4MFx1NTQ5Nlx1NTM2MVx1NTRhZlx1NWYwMFx1NjNlOVx1Njk3N1x1NTFlZlx1NjE2OFx1NTIwYVx1NTgyYVx1NTJkOFx1NTc0ZVx1NzgwZFx1NzcwYlx1NWViN1x1NjE3N1x1N2Nl''@;'; + put 'put ''MFx1NjI1Ylx1NjI5N1x1NGVhMlx1NzA5NVx1ODAwM1x1NjJmN1x1NzBlNFx1OTc2MFx1NTc3N1x1ODJkYlx1NjdlZlx1NjhmNVx1NzhkNVx1OTg5N1x1NzlkMVx1NThmM1x1NTRiM1x1NTNlZlx1NmUzNFx1NTE0Ylx1NTIzYlx1NWJhMlx1OGJmZVx1ODBhZlx1NTU0M1x1NTdhNlx1NjA3M1x1''@;'; + put 'put ''NTc1MVx1NTQyZFx1N2E3YVx1NjA1MFx1NWI1NFx1NjNhN1x1NjJhMFx1NTNlM1x1NjI2M1x1NWJjN1x1NjdhZlx1NTRlZFx1N2E5Zlx1ODJlNlx1OTE3N1x1NWU5M1x1ODhlNFx1NTkzOFx1NTdhZVx1NjMwZVx1OGRlOFx1ODBlZlx1NTc1N1x1N2I3N1x1NGZhOVx1NWZlYlx1NWJiZFx1NmIz''@;'; + put 'put ''ZVx1NTMyMVx1N2I1MFx1NzJjMlx1Njg0Nlx1NzdmZlx1NzczNlx1NjVmN1x1NTFiNVx1NGU4Zlx1NzZkNFx1NWNiZlx1N2FhNVx1ODQ3NVx1NTk0ZVx1OWI0MVx1NTA4MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkxXVtFXS5jaGFyQ29k''@;'; + put 'put ''ZUF0KDApJiYobWVbQlsxOTFdW0VdXT00ODg5NitFLExbNDg4OTYrRV09QlsxOTFdW0VdKTtmb3IoQlsxOTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk5ODhcdTYxMjdcdTZlODNcdTU3NjRcdTY2MDZcdTYzNDZcdTU2ZjBcdTYyZWNcdTYyNjlcdTVlZDNcdTk2MTRcdTU3ODNcdTYyYzlcdTU1ODdcdTg3MjFcdTgxNGFcdThmYTNcdTU1NjZcdTgzYjFcdTY3NjVcdThk''@;'; + put 'put ''NTZcdTg0ZGRcdTVhNmFcdTY4MGZcdTYyZTZcdTdiZWVcdTk2MTFcdTUxNzBcdTZmOWNcdThjMzBcdTYzZmRcdTg5YzhcdTYxZDJcdTdmMDZcdTcwYzJcdTZlZTVcdTc0MDVcdTY5OTRcdTcyZmNcdTVlY2FcdTkwY2VcdTY3MTdcdTZkNmFcdTYzNWVcdTUyYjNcdTcyNjJcdTgwMDFcdTRmNmNc''@;'; + put 'put ''dTU5ZTVcdTkxNmFcdTcwZDlcdTZkOWRcdTUyZDJcdTRlNTBcdTk2ZjdcdTk1NmRcdTg1N2VcdTc4Y2FcdTdkMmZcdTUxMjFcdTU3OTJcdTY0YzJcdTgwOGJcdTdjN2JcdTZjZWFcdTY4ZjFcdTY5NWVcdTUxYjdcdTUzOThcdTY4YThcdTcyODFcdTllY2VcdTdiZjFcdTcyZjhcdTc5YmJcdTZm''@;'; + put 'put ''MTNcdTc0MDZcdTY3NGVcdTkxY2NcdTljYTRcdTc5M2NcdTgzODlcdTgzNTRcdTU0MGZcdTY4MTdcdTRlM2RcdTUzODlcdTUyYjFcdTc4M2VcdTUzODZcdTUyMjlcdTUwODhcdTRmOGJcdTRmZDBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5''@;'; + put 'put ''Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTkyXVtFXV09NDkxNTIrRSxMWzQ5MTUyK0VdPUJbMTkyXVtFXSk7Zm9yKEJbMTkzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NWUyXHU3YWNiXHU3YzkyXHU2Y2E1XHU5NmI2XHU1MjliXHU3NDgzXHU1NGU5XHU0ZmU5XHU4MDU0XHU4M2IyXHU4ZmRlXHU5NTcwXHU1ZWM5XHU2MDFjXHU2ZDlmXHU1ZTE4XHU2NTViXHU4''@;'; + put 'put ''MTM4XHU5NGZlXHU2MDRiXHU3MGJjXHU3ZWMzXHU3Y2FlXHU1MWM5XHU2ODgxXHU3Y2IxXHU4MjZmXHU0ZTI0XHU4Zjg2XHU5MWNmXHU2NjdlXHU0ZWFlXHU4YzA1XHU2NGE5XHU4MDRhXHU1MGRhXHU3NTk3XHU3MWNlXHU1YmU1XHU4ZmJkXHU2ZjY2XHU0ZTg2XHU2NDgyXHU5NTYzXHU1ZWQ2''@;'; + put 'put ''XHU2NTk5XHU1MjE3XHU4OGMyXHU3MGM4XHU1MmEzXHU3MzBlXHU3NDMzXHU2Nzk3XHU3OGY3XHU5NzE2XHU0ZTM0XHU5MGJiXHU5Y2RlXHU2ZGNiXHU1MWRiXHU4ZDQxXHU1NDFkXHU2MmNlXHU3M2IyXHU4M2YxXHU5NmY2XHU5Zjg0XHU5NGMzXHU0ZjM2XHU3ZjlhXHU1MWNjXHU3MDc1XHU5''@;'; + put 'put ''Njc1XHU1Y2FkXHU5ODg2XHU1M2U2XHU0ZWU0XHU2ZTljXHU3NDA5XHU2OWI0XHU3ODZiXHU5OThmXHU3NTU5XHU1MjE4XHU3NjI0XHU2ZDQxXHU2N2YzXHU1MTZkXHU5Zjk5XHU4MDRiXHU1NDk5XHU3YjNjXHU3YWJmXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkzXS5sZW5ndGg7KytF''@;'; + put 'put ''KTY1NTMzIT09QlsxOTNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5M11bRV1dPTQ5NDA4K0UsTFs0OTQwOCtFXT1CWzE5M11bRV0pO2ZvcihCWzE5NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY4Nlx1NTc4NFx1NjJlMlx1OTY0N1x1Njk3Y1x1NWEwNFx1NjQwMlx1N2JkM1x1NmYwZlx1OTY0Ylx1ODJhNlx1NTM2Mlx1OTg4NVx1NWU5MFx1NzA4OVx1NjNiM1x1''@;'; + put 'put ''NTM2NFx1ODY0Zlx1OWM4MVx1OWU5M1x1Nzg4Y1x1OTczMlx1OGRlZlx1OGQ0Mlx1OWU3Zlx1NmY1ZVx1Nzk4NFx1NWY1NVx1OTY0Nlx1NjIyZVx1OWE3NFx1NTQxNVx1OTRkZFx1NGZhM1x1NjVjNVx1NWM2NVx1NWM2MVx1N2YxNVx1ODY1MVx1NmMyZlx1NWY4Ylx1NzM4N1x1NmVlNFx1N2Vm''@;'; + put 'put ''Zlx1NWNlNlx1NjMxYlx1NWI2YVx1NmVlNlx1NTM3NVx1NGU3MVx1NjNhMFx1NzU2NVx1NjJhMVx1OGY2ZVx1NGYyNlx1NGVkMVx1NmNhNlx1N2ViNlx1OGJiYVx1ODQxZFx1ODdiYVx1N2Y1N1x1OTAzYlx1OTUyM1x1N2JhOVx1OWFhMVx1ODhmOFx1ODQzZFx1NmQxYlx1OWE4Nlx1N2VkY1x1''@;'; + put 'put ''NTk4OFx1OWViYlx1NzM5Ylx1NzgwMVx1ODY4Mlx1OWE2Y1x1OWE4Mlx1NTYxYlx1NTQxN1x1NTdjYlx1NGU3MFx1OWVhNlx1NTM1Nlx1OGZjOFx1ODEwOVx1Nzc5Mlx1OTk5Mlx1ODZlZVx1NmVlMVx1ODUxM1x1NjZmY1x1NjE2Mlx1NmYyYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5''@;'; + put 'put ''NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTRdW0VdXT00OTY2NCtFLExbNDk2NjQrRV09QlsxOTRdW0VdKTtmb3IoQlsxOTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThjMjlcdTgyOTJcdTgzMmJcdTc2ZjJcdTZjMTNcdTVmZDlcdTgzYmRcdTczMmJcdTgzMDVcdTk1MWFcdTZiZGJcdTc3ZGJcdTk0YzZcdTUzNmZc''@;'; + put 'put ''dTgzMDJcdTUxOTJcdTVlM2RcdThjOGNcdThkMzhcdTRlNDhcdTczYWJcdTY3OWFcdTY4ODVcdTkxNzZcdTk3MDlcdTcxNjRcdTZjYTFcdTc3MDlcdTVhOTJcdTk1NDFcdTZiY2ZcdTdmOGVcdTY2MjdcdTViZDBcdTU5YjlcdTVhOWFcdTk1ZThcdTk1ZjdcdTRlZWNcdTg0MGNcdTg0OTlcdTZh''@;'; + put 'put ''YWNcdTc2ZGZcdTk1MzBcdTczMWJcdTY4YTZcdTViNWZcdTc3MmZcdTkxOWFcdTk3NjFcdTdjZGNcdThmZjdcdThjMWNcdTVmMjVcdTdjNzNcdTc5ZDhcdTg5YzVcdTZjY2NcdTg3MWNcdTViYzZcdTVlNDJcdTY4YzlcdTc3MjBcdTdlZjVcdTUxOTVcdTUxNGRcdTUyYzlcdTVhMjlcdTdmMDVc''@;'; + put 'put ''dTk3NjJcdTgyZDdcdTYzY2ZcdTc3ODRcdTg1ZDBcdTc5ZDJcdTZlM2FcdTVlOTlcdTU5OTlcdTg1MTFcdTcwNmRcdTZjMTFcdTYyYmZcdTc2YmZcdTY1NGZcdTYwYWZcdTk1ZmRcdTY2MGVcdTg3OWZcdTllMjNcdTk0ZWRcdTU0MGRcdTU0N2RcdThjMmNcdTY0NzhcdWZmZmQiLnNwbGl0KCIi''@;'; + put 'put ''KSxFPTA7RSE9QlsxOTVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk1XVtFXV09NDk5MjArRSxMWzQ5OTIwK0VdPUJbMTk1XVtFXSk7Zm9yKEJbMTk2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NDc5XHU4NjExXHU2YTIxXHU4MTljXHU3OGU4XHU2NDY5XHU5YjU0XHU2MmI5XHU2NzJiXHU4M2FiXHU1OGE4XHU5ZWQ4''@;'; + put 'put ''XHU2Y2FiXHU2ZjIwXHU1YmRlXHU5NjRjXHU4YzBiXHU3MjVmXHU2N2QwXHU2MmM3XHU3MjYxXHU0ZWE5XHU1OWM2XHU2YmNkXHU1ODkzXHU2NmFlXHU1ZTU1XHU1MmRmXHU2MTU1XHU2NzI4XHU3NmVlXHU3NzY2XHU3MjY3XHU3YTQ2XHU2MmZmXHU1NGVhXHU1NDUwXHU5NGEwXHU5MGEzXHU1''@;'; + put 'put ''YTFjXHU3ZWIzXHU2YzE2XHU0ZTQzXHU1OTc2XHU4MDEwXHU1OTQ4XHU1MzU3XHU3NTM3XHU5NmJlXHU1NmNhXHU2MzIwXHU4MTExXHU2MDdjXHU5NWY5XHU2ZGQ2XHU1NDYyXHU5OTgxXHU1MTg1XHU1YWU5XHU4MGZkXHU1OWFlXHU5NzEzXHU1MDJhXHU2Y2U1XHU1YzNjXHU2MmRmXHU0ZjYw''@;'; + put 'put ''XHU1MzNmXHU4MTdiXHU5MDA2XHU2ZWJhXHU4NTJiXHU2MmM4XHU1ZTc0XHU3OGJlXHU2NGI1XHU2MzdiXHU1ZmY1XHU1YTE4XHU5MTdmXHU5ZTFmXHU1YzNmXHU2MzRmXHU4MDQyXHU1YjdkXHU1NTZlXHU5NTRhXHU5NTRkXHU2ZDg1XHU2MGE4XHU2N2UwXHU3MmRlXHU1MWRkXHU1YjgxXHVm''@;'; + put 'put ''ZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5Nl1bRV1dPTUwMTc2K0UsTFs1MDE3NitFXT1CWzE5Nl1bRV0pO2ZvcihCWzE5N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjJlN1x1NmNkZVx1NzI1Ylx1NjI2ZFx1OTRhZVx1N2ViZFx1ODExM1x1NmQ1M1x1NTE5Y1x1NWYw''@;'; + put 'put ''NFx1NTk3NFx1NTJhYVx1NjAxMlx1NTk3M1x1NjY5Nlx1ODY1MFx1NzU5Zlx1NjMyYVx1NjFlNlx1N2NlZlx1OGJmYVx1NTRlNlx1NmIyN1x1OWUyNVx1NmJiNFx1ODVkNVx1NTQ1NVx1NTA3Nlx1NmNhNFx1NTU2YVx1OGRiNFx1NzIyY1x1NWUxNVx1NjAxNVx1NzQzNlx1NjJjZFx1NjM5Mlx1''@;'; + put 'put ''NzI0Y1x1NWY5OFx1NmU0M1x1NmQzZVx1NjUwMFx1NmY1OFx1NzZkOFx1NzhkMFx1NzZmY1x1NzU1NFx1NTIyNFx1NTNkYlx1NGU1M1x1NWU5ZVx1NjVjMVx1ODAyYVx1ODBkNlx1NjI5Ylx1NTQ4Nlx1NTIyOFx1NzBhZVx1ODg4ZFx1OGRkMVx1NmNlMVx1NTQ3OFx1ODBkYVx1NTdmOVx1ODhm''@;'; + put 'put ''NFx1OGQ1NFx1OTY2YVx1OTE0ZFx1NGY2OVx1NmM5Ylx1NTViN1x1NzZjNlx1NzgzMFx1NjJhOFx1NzBmOVx1NmY4ZVx1NWY2ZFx1ODRlY1x1NjhkYVx1Nzg3Y1x1N2JmN1x1ODFhOFx1NjcwYlx1OWU0Zlx1NjM2N1x1NzhiMFx1NTc2Zlx1NzgxMlx1OTczOVx1NjI3OVx1NjJhYlx1NTI4OFx1''@;'; + put 'put ''NzQzNVx1NmJkN1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTddW0VdXT01MDQzMitFLExbNTA0MzIrRV09QlsxOTddW0VdKTtmb3IoQlsxOThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU1NjRcdTgxM2VcdTc1YjJcdTc2YWVcdTUzMzlcdTc1ZGVcdTUwZmJcdTVj''@;'; + put 'put ''NDFcdThiNmNcdTdiYzdcdTUwNGZcdTcyNDdcdTlhOTdcdTk4ZDhcdTZmMDJcdTc0ZTJcdTc5NjhcdTY0ODdcdTc3YTVcdTYyZmNcdTk4OTFcdThkMmJcdTU0YzFcdTgwNThcdTRlNTJcdTU3NmFcdTgyZjlcdTg0MGRcdTVlNzNcdTUxZWRcdTc0ZjZcdThiYzRcdTVjNGZcdTU3NjFcdTZjZmNc''@;'; + put 'put ''dTk4ODdcdTVhNDZcdTc4MzRcdTliNDRcdThmZWJcdTdjOTVcdTUyNTZcdTYyNTFcdTk0ZmFcdTRlYzZcdTgzODZcdTg0NjFcdTgzZTlcdTg0YjJcdTU3ZDRcdTY3MzRcdTU3MDNcdTY2NmVcdTZkNjZcdThjMzFcdTY2ZGRcdTcwMTFcdTY3MWZcdTZiM2FcdTY4MTZcdTYyMWFcdTU5YmJcdTRl''@;'; + put 'put ''MDNcdTUxYzRcdTZmMDZcdTY3ZDJcdTZjOGZcdTUxNzZcdTY4Y2JcdTU5NDdcdTZiNjdcdTc1NjZcdTVkMGVcdTgxMTBcdTlmNTBcdTY1ZDdcdTc5NDhcdTc5NDFcdTlhOTFcdThkNzdcdTVjODJcdTRlNWVcdTRmMDFcdTU0MmZcdTU5NTFcdTc4MGNcdTU2NjhcdTZjMTRcdThmYzRcdTVmMDNc''@;'; + put 'put ''dTZjN2RcdTZjZTNcdThiYWJcdTYzOTBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOThdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk4XVtFXV09NTA2ODgrRSxMWzUwNjg4K0VdPUJbMTk4XVtFXSk7Zm9yKEJbMTk5XT0iXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDcwXHU2ZDNkXHU3Mjc1XHU2MjY2XHU5NDhlXHU5''@;'; + put 'put ''NGM1XHU1MzQzXHU4ZmMxXHU3YjdlXHU0ZWRmXHU4YzI2XHU0ZTdlXHU5ZWQ0XHU5NGIxXHU5NGIzXHU1MjRkXHU2ZjVjXHU5MDYzXHU2ZDQ1XHU4YzM0XHU1ODExXHU1ZDRjXHU2YjIwXHU2YjQ5XHU2N2FhXHU1NDViXHU4MTU0XHU3ZjhjXHU1ODk5XHU4NTM3XHU1ZjNhXHU2MmEyXHU2YTQ3''@;'; + put 'put ''XHU5NTM5XHU2NTcyXHU2MDg0XHU2ODY1XHU3N2E3XHU0ZTU0XHU0ZmE4XHU1ZGU3XHU5Nzk4XHU2NGFjXHU3ZmQ4XHU1Y2VkXHU0ZmNmXHU3YThkXHU1MjA3XHU4MzA0XHU0ZTE0XHU2MDJmXHU3YTgzXHU5NGE2XHU0ZmI1XHU0ZWIyXHU3OWU2XHU3NDM0XHU1MmU0XHU4MmI5XHU2NGQyXHU3''@;'; + put 'put ''OWJkXHU1YmRkXHU2YzgxXHU5NzUyXHU4ZjdiXHU2YzIyXHU1MDNlXHU1MzdmXHU2ZTA1XHU2NGNlXHU2Njc0XHU2YzMwXHU2MGM1XHU5ODc3XHU4YmY3XHU1ZTg2XHU3NDNjXHU3YTc3XHU3OWNiXHU0ZTE4XHU5MGIxXHU3NDAzXHU2YzQyXHU1NmRhXHU5MTRiXHU2Y2M1XHU4ZDhiXHU1MzNh''@;'; + put 'put ''XHU4NmM2XHU2NmYyXHU4ZWFmXHU1YzQ4XHU5YTcxXHU2ZTIwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5OV1bRV1dPTUwOTQ0K0UsTFs1MDk0NCtFXT1CWzE5OV1bRV0pO2ZvcihCWzIw''@;'; + put 'put ''MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTNkNlx1NWEzNlx1OWY4Ylx1''@;'; + put 'put ''OGRhM1x1NTNiYlx1NTcwOFx1OThhN1x1Njc0M1x1OTE5Ylx1NmNjOVx1NTE2OFx1NzVjYVx1NjJmM1x1NzJhY1x1NTIzOFx1NTI5ZFx1N2YzYVx1NzA5NFx1NzYzOFx1NTM3NFx1OWU0YVx1NjliN1x1Nzg2ZVx1OTZjMFx1ODhkOVx1N2ZhNFx1NzEzNlx1NzFjM1x1NTE4OVx1NjdkM1x1NzRl''@;'; + put 'put ''NFx1NThlNFx1NjUxOFx1NTZiN1x1OGJhOVx1OTk3Nlx1NjI3MFx1N2VkNVx1NjBmOVx1NzBlZFx1NThlY1x1NGVjMVx1NGViYVx1NWZjZFx1OTdlN1x1NGVmYlx1OGJhNFx1NTIwM1x1NTk4YVx1N2VhYlx1NjI1NFx1NGVjZFx1NjVlNVx1NjIwZVx1ODMzOFx1ODRjOVx1ODM2M1x1ODc4ZFx1''@;'; + put 'put ''NzE5NFx1NmViNlx1NWJiOVx1N2VkMlx1NTE5N1x1NjNjOVx1NjdkNFx1ODA4OVx1ODMzOVx1ODgxNVx1NTExMlx1NWI3YVx1NTk4Mlx1OGZiMVx1NGU3M1x1NmM1ZFx1NTE2NVx1ODkyNVx1OGY2Zlx1OTYyZVx1ODU0YVx1NzQ1ZVx1OTUxMFx1OTVmMFx1NmRhNlx1ODJlNVx1NWYzMVx1NjQ5''@;'; + put 'put ''Mlx1NmQxMlx1ODQyOFx1ODE2ZVx1OWNjM1x1NTg1ZVx1OGQ1Ylx1NGUwOVx1NTNjMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjAwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDBdW0VdXT01MTIwMCtFLExbNTEyMDArRV09QlsyMDBd''@;'; + put 'put ''W0VdKTtmb3IoQlsyMDFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRmMWVc''@;'; + put 'put ''dTY1NjNcdTY4NTFcdTU1ZDNcdTRlMjdcdTY0MTRcdTlhOWFcdTYyNmJcdTVhYzJcdTc0NWZcdTgyNzJcdTZkYTlcdTY4ZWVcdTUwZTdcdTgzOGVcdTc4MDJcdTY3NDBcdTUyMzlcdTZjOTlcdTdlYjFcdTUwYmJcdTU1NjVcdTcxNWVcdTdiNWJcdTY2NTJcdTczY2FcdTgyZWJcdTY3NDlcdTVj''@;'; + put 'put ''NzFcdTUyMjBcdTcxN2RcdTg4NmJcdTk1ZWFcdTk2NTVcdTY0YzVcdThkNjFcdTgxYjNcdTU1ODRcdTZjNTVcdTYyNDdcdTdmMmVcdTU4OTJcdTRmMjRcdTU1NDZcdThkNGZcdTY2NGNcdTRlMGFcdTVjMWFcdTg4ZjNcdTY4YTJcdTYzNGVcdTdhMGRcdTcwZTdcdTgyOGRcdTUyZmFcdTk3ZjZc''@;'; + put 'put ''dTVjMTFcdTU0ZThcdTkwYjVcdTdlY2RcdTU5NjJcdThkNGFcdTg2YzdcdTgyMGNcdTgyMGRcdThkNjZcdTY0NDRcdTVjMDRcdTYxNTFcdTZkODlcdTc5M2VcdThiYmVcdTc4MzdcdTc1MzNcdTU0N2JcdTRmMzhcdThlYWJcdTZkZjFcdTVhMjBcdTdlYzVcdTc5NWVcdTZjODhcdTViYTFcdTVh''@;'; + put 'put ''NzZcdTc1MWFcdTgwYmVcdTYxNGVcdTZlMTdcdTU4ZjBcdTc1MWZcdTc1MjVcdTcyNzJcdTUzNDdcdTdlZjNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjAxXVtFXV09NTE0NTYrRSxMWzUx''@;'; + put 'put ''NDU2K0VdPUJbMjAxXVtFXSk7Zm9yKEJbMjAyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHU3NzAxXHU3NmRiXHU1MjY5XHU4MGRjXHU1NzIzXHU1ZTA4XHU1OTMxXHU3MmVlXHU2NWJkXHU2ZTdmXHU4YmQ3XHU1YzM4XHU4NjcxXHU1MzQxXHU3N2YzXHU2MmZlXHU2NWY2XHU0ZWMwXHU5OGRmXHU4NjgwXHU1YjllXHU4YmM2XHU1M2YyXHU3N2UyXHU0ZjdmXHU1YzRlXHU5''@;'; + put 'put ''YTc2XHU1OWNiXHU1ZjBmXHU3OTNhXHU1OGViXHU0ZTE2XHU2N2ZmXHU0ZThiXHU2MmVkXHU4YTkzXHU5MDFkXHU1MmJmXHU2NjJmXHU1NWRjXHU1NjZjXHU5MDAyXHU0ZWQ1XHU0ZjhkXHU5MWNhXHU5OTcwXHU2YzBmXHU1ZTAyXHU2MDQzXHU1YmE0XHU4OWM2XHU4YmQ1XHU2NTM2XHU2MjRi''@;'; + put 'put ''XHU5OTk2XHU1Yjg4XHU1YmZmXHU2Mzg4XHU1NTJlXHU1M2Q3XHU3NjI2XHU1MTdkXHU4NTJjXHU2N2EyXHU2OGIzXHU2YjhhXHU2MjkyXHU4ZjkzXHU1M2Q0XHU4MjEyXHU2ZGQxXHU3NThmXHU0ZTY2XHU4ZDRlXHU1YjcwXHU3MTlmXHU4NWFmXHU2NjkxXHU2NmQ5XHU3ZjcyXHU4NzAwXHU5''@;'; + put 'put ''ZWNkXHU5ZjIwXHU1YzVlXHU2NzJmXHU4ZmYwXHU2ODExXHU2NzVmXHU2MjBkXHU3YWQ2XHU1ODg1XHU1ZWI2XHU2NTcwXHU2ZjMxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwMl1bRV1d''@;'; + put 'put ''PTUxNzEyK0UsTFs1MTcxMitFXT1CWzIwMl1bRV0pO2ZvcihCWzIwM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjA1NVx1NTIzN1x1ODAwZFx1NjQ1NFx1ODg3MFx1NzUyOVx1NWUwNVx1NjgxM1x1NjJmNFx1OTcxY1x1NTNjY1x1NzIzZFx1OGMwMVx1NmMzNFx1Nzc2MVx1N2EwZVx1NTQyZVx1NzdhY1x1OTg3YVx1ODIxY1x1OGJmNFx1Nzg1NVx1NjcxNFx1NzBjMVx1''@;'; + put 'put ''NjVhZlx1NjQ5NVx1NTYzNlx1NjAxZFx1NzljMVx1NTNmOFx1NGUxZFx1NmI3Ylx1ODA4Nlx1NWJmYVx1NTVlM1x1NTZkYlx1NGYzYVx1NGYzY1x1OTk3Mlx1NWRmM1x1Njc3ZVx1ODAzOFx1NjAwMlx1OTg4Mlx1OTAwMVx1NWI4Ylx1OGJiY1x1OGJmNVx1NjQxY1x1ODI1OFx1NjRkZVx1NTVm''@;'; + put 'put ''ZFx1ODJjZlx1OTE2NVx1NGZkN1x1N2QyMFx1OTAxZlx1N2M5Zlx1NTBmM1x1NTg1MVx1NmVhZlx1NWJiZlx1OGJjOVx1ODA4M1x1OTE3OFx1ODQ5Y1x1N2I5N1x1ODY3ZFx1OTY4Ylx1OTY4Zlx1N2VlNVx1OWFkM1x1Nzg4ZVx1NWM4MVx1N2E1N1x1OTA0Mlx1OTZhN1x1Nzk1Zlx1NWI1OVx1''@;'; + put 'put ''NjM1Zlx1N2IwYlx1ODRkMVx1NjhhZFx1NTUwNlx1N2YyOVx1NzQxMFx1N2QyMlx1OTUwMVx1NjI0MFx1NTg0Y1x1NGVkNlx1NWI4M1x1NTk3OVx1NTg1NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjAzXVtFXS5jaGFyQ29kZUF0KDApJiYo''@;'; + put 'put ''bWVbQlsyMDNdW0VdXT01MTk2OCtFLExbNTE5NjgrRV09QlsyMDNdW0VdKTtmb3IoQlsyMDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTczNmRcdTYzMWVcdThlNGJcdThlMGZcdTgwY2VcdTgyZDRcdTYyYWNcdTUzZjBcdTZjZjBcdTkxNWVcdTU5MmFcdTYwMDFcdTZjNzBcdTU3NGRcdTY0NGFcdThkMmFcdTc2MmJcdTZlZTlcdTU3NWJcdTZhODBcdTc1ZjBcdTZmNmRc''@;'; + put 'put ''dThjMmRcdThjMDhcdTU3NjZcdTZiZWZcdTg4OTJcdTc4YjNcdTYzYTJcdTUzZjlcdTcwYWRcdTZjNjRcdTU4NThcdTY0MmFcdTU4MDJcdTY4ZTBcdTgxOWJcdTU1MTBcdTdjZDZcdTUwMThcdThlYmFcdTZkY2NcdThkOWZcdTcwZWJcdTYzOGZcdTZkOWJcdTZlZDRcdTdlZTZcdTg0MDRcdTY4''@;'; + put 'put ''NDNcdTkwMDNcdTZkZDhcdTk2NzZcdThiYThcdTU5NTdcdTcyNzlcdTg1ZTRcdTgxN2VcdTc1YmNcdThhOGFcdTY4YWZcdTUyNTRcdThlMjJcdTk1MTFcdTYzZDBcdTk4OThcdThlNDRcdTU1N2NcdTRmNTNcdTY2ZmZcdTU2OGZcdTYwZDVcdTZkOTVcdTUyNDNcdTVjNDlcdTU5MjlcdTZkZmJc''@;'; + put 'put ''dTU4NmJcdTc1MzBcdTc1MWNcdTYwNmNcdTgyMTRcdTgxNDZcdTYzMTFcdTY3NjFcdThmZTJcdTc3M2FcdThkZjNcdThkMzRcdTk0YzFcdTVlMTZcdTUzODVcdTU0MmNcdTcwYzNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwNF1bRV0uY2hh''@;'; + put 'put ''ckNvZGVBdCgwKSYmKG1lW0JbMjA0XVtFXV09NTIyMjQrRSxMWzUyMjI0K0VdPUJbMjA0XVtFXSk7Zm9yKEJbMjA1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YzQwXHU1ZWY3XHU1MDVjXHU0ZWFkXHU1ZWFkXHU2MzNhXHU4MjQ3XHU5MDFhXHU2ODUwXHU5MTZlXHU3N2IzXHU1NDBjXHU5NGRjXHU1ZjY0XHU3YWU1XHU2ODc2XHU2MzQ1XHU3YjUyXHU3ZWRmXHU3NWRi''@;'; + put 'put ''XHU1MDc3XHU2Mjk1XHU1OTM0XHU5MDBmXHU1MWY4XHU3OWMzXHU3YTgxXHU1NmZlXHU1ZjkyXHU5MDE0XHU2ZDgyXHU1YzYwXHU1NzFmXHU1NDEwXHU1MTU0XHU2ZTRkXHU1NmUyXHU2M2E4XHU5ODkzXHU4MTdmXHU4NzE1XHU4OTJhXHU5MDAwXHU1NDFlXHU1YzZmXHU4MWMwXHU2MmQ2XHU2''@;'; + put 'put ''MjU4XHU4MTMxXHU5ZTM1XHU5NjQwXHU5YTZlXHU5YTdjXHU2OTJkXHU1OWE1XHU2MmQzXHU1NTNlXHU2MzE2XHU1NGM3XHU4NmQ5XHU2ZDNjXHU1YTAzXHU3NGU2XHU4ODljXHU2YjZhXHU1OTE2XHU4YzRjXHU1ZjJmXHU2ZTdlXHU3M2E5XHU5ODdkXHU0ZTM4XHU3MGY3XHU1YjhjXHU3ODk3''@;'; + put 'put ''XHU2MzNkXHU2NjVhXHU3Njk2XHU2MGNiXHU1YjliXHU1YTQ5XHU0ZTA3XHU4MTU1XHU2YzZhXHU3MzhiXHU0ZWExXHU2Nzg5XHU3ZjUxXHU1ZjgwXHU2NWZhXHU2NzFiXHU1ZmQ4XHU1OTg0XHU1YTAxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA1XS5sZW5ndGg7KytFKTY1NTMzIT09''@;'; + put 'put ''QlsyMDVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwNV1bRV1dPTUyNDgwK0UsTFs1MjQ4MCtFXT1CWzIwNV1bRV0pO2ZvcihCWzIwNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWRjZFx1NWZhZVx1NTM3MVx1OTdlNlx1OGZkZFx1Njg0NVx1NTZmNFx1NTUyZlx1NjBkZlx1NGUzYVx1NmY0ZFx1N2VmNFx1ODJjN1x1ODQwZVx1NTlkNFx1NGYxZlx1NGYyYVx1NWMz''@;'; + put 'put ''ZVx1N2VhY1x1NjcyYVx1ODUxYVx1NTQ3M1x1NzU0Zlx1ODBjM1x1NTU4Mlx1OWI0Zlx1NGY0ZFx1NmUyZFx1OGMxM1x1NWMwOVx1NjE3MFx1NTM2Ylx1NzYxZlx1NmUyOVx1ODY4YVx1NjU4N1x1OTVmYlx1N2ViOVx1NTQzYlx1N2EzM1x1N2QwYVx1OTVlZVx1NTVlMVx1N2ZjMVx1NzRlZVx1''@;'; + put 'put ''NjMxZFx1ODcxN1x1NmRhMVx1N2E5ZFx1NjIxMVx1NjVhMVx1NTM2N1x1NjNlMVx1NmM4M1x1NWRlYlx1NTQ1Y1x1OTRhOFx1NGU0Y1x1NmM2MVx1OGJlY1x1NWM0Ylx1NjVlMFx1ODI5Y1x1NjhhN1x1NTQzZVx1NTQzNFx1NmJjYlx1NmI2Nlx1NGU5NFx1NjM0Mlx1NTM0OFx1ODIxZVx1NGYw''@;'; + put 'put ''ZFx1NGZhZVx1NTc1ZVx1NjIwYVx1OTZmZVx1NjY2NFx1NzI2OVx1NTJmZlx1NTJhMVx1NjA5Zlx1OGJlZlx1NjYxNFx1NzE5OVx1Njc5MFx1ODk3Zlx1Nzg1Mlx1NzdmZFx1NjY3MFx1NTYzYlx1NTQzOFx1OTUyMVx1NzI3YVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwNl0ubGVuZ3Ro''@;'; + put 'put ''OysrRSk2NTUzMyE9PUJbMjA2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDZdW0VdXT01MjczNitFLExbNTI3MzYrRV09QlsyMDZdW0VdKTtmb3IoQlsyMDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdhMDBcdTYwNmZcdTVlMGNcdTYwODlcdTgxOWRcdTU5MTVcdTYwZGNcdTcxODRcdTcwZWZcdTZlYWFcdTZjNTBcdTcyODBcdTZhODRcdTg4YWRcdTVlMmRcdTRl''@;'; + put 'put ''NjBcdTVhYjNcdTU1OWNcdTk0ZTNcdTZkMTdcdTdjZmJcdTk2OTlcdTYyMGZcdTdlYzZcdTc3OGVcdTg2N2VcdTUzMjNcdTk3MWVcdThmOTZcdTY2ODdcdTVjZTFcdTRmYTBcdTcyZWRcdTRlMGJcdTUzYTZcdTU5MGZcdTU0MTNcdTYzODBcdTk1MjhcdTUxNDhcdTRlZDlcdTljOWNcdTdlYTRc''@;'; + put 'put ''dTU0YjhcdThkMjRcdTg4NTRcdTgyMzdcdTk1ZjJcdTZkOGVcdTVmMjZcdTVhY2NcdTY2M2VcdTk2NjlcdTczYjBcdTczMmVcdTUzYmZcdTgxN2FcdTk5ODVcdTdmYTFcdTViYWFcdTk2NzdcdTk2NTBcdTdlYmZcdTc2ZjhcdTUzYTJcdTk1NzZcdTk5OTlcdTdiYjFcdTg5NDRcdTZlNThcdTRl''@;'; + put 'put ''NjFcdTdmZDRcdTc5NjVcdThiZTZcdTYwZjNcdTU0Y2RcdTRlYWJcdTk4NzlcdTVkZjdcdTZhNjFcdTUwY2ZcdTU0MTFcdThjNjFcdTg0MjdcdTc4NWRcdTk3MDRcdTUyNGFcdTU0ZWVcdTU2YTNcdTk1MDBcdTZkODhcdTViYjVcdTZkYzZcdTY2NTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9''@;'; + put 'put ''QlsyMDddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA3XVtFXV09NTI5OTIrRSxMWzUyOTkyK0VdPUJbMjA3XVtFXSk7Zm9yKEJbMjA4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YzBmXHU1YjVkXHU2ODIxXHU4MDk2XHU1NTc4XHU3YjExXHU2NTQ4XHU2OTU0XHU0ZTliXHU2YjQ3XHU4NzRlXHU5NzhiXHU1MzRmXHU2''@;'; + put 'put ''MzFmXHU2NDNhXHU5MGFhXHU2NTljXHU4MGMxXHU4YzEwXHU1MTk5XHU2OGIwXHU1Mzc4XHU4N2Y5XHU2MWM4XHU2Y2M0XHU2Y2ZiXHU4YzIyXHU1YzUxXHU4NWFhXHU4MmFmXHU5NTBjXHU2YjIzXHU4ZjliXHU2NWIwXHU1ZmZiXHU1ZmMzXHU0ZmUxXHU4ODQ1XHU2NjFmXHU4MTY1XHU3MzI5''@;'; + put 'put ''XHU2MGZhXHU1MTc0XHU1MjExXHU1NzhiXHU1ZjYyXHU5MGEyXHU4ODRjXHU5MTkyXHU1ZTc4XHU2NzRmXHU2MDI3XHU1OWQzXHU1MTQ0XHU1MWY2XHU4MGY4XHU1MzA4XHU2Yzc5XHU5NmM0XHU3MThhXHU0ZjExXHU0ZmVlXHU3ZjllXHU2NzNkXHU1NWM1XHU5NTA4XHU3OWMwXHU4ODk2XHU3''@;'; + put 'put ''ZWUzXHU1ODlmXHU2MjBjXHU5NzAwXHU4NjVhXHU1NjE4XHU5ODdiXHU1ZjkwXHU4YmI4XHU4NGM0XHU5MTU3XHU1M2Q5XHU2NWVkXHU1ZThmXHU3NTVjXHU2MDY0XHU3ZDZlXHU1YTdmXHU3ZWVhXHU3ZWVkXHU4ZjY5XHU1NWE3XHU1YmEzXHU2MGFjXHU2NWNiXHU3Mzg0XHVmZmZkIi5zcGxp''@;'; + put 'put ''dCgiIiksRT0wO0UhPUJbMjA4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwOF1bRV1dPTUzMjQ4K0UsTFs1MzI0OCtFXT1CWzIwOF1bRV0pO2ZvcihCWzIwOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTAwOVx1NzY2M1x1NzcyOVx1N2VkYVx1OTc3NFx1ODU5Ylx1NWI2Nlx1N2E3NFx1OTZlYVx1ODg0MFx1NTJjYlx1''@;'; + put 'put ''NzE4Zlx1NWZhYVx1NjVlY1x1OGJlMlx1NWJmYlx1OWE2Zlx1NWRlMVx1NmI4OVx1NmM1Ylx1OGJhZFx1OGJhZlx1OTAwYVx1OGZjNVx1NTM4Ylx1NjJiY1x1OWUyNlx1OWUyZFx1NTQ0MFx1NGUyYlx1ODJiZFx1NzI1OVx1ODY5Y1x1NWQxNlx1ODg1OVx1NmRhZlx1OTZjNVx1NTRkMVx1NGU5''@;'; + put 'put ''YVx1OGJiNlx1NzEwOVx1NTRiZFx1OTYwOVx1NzBkZlx1NmRmOVx1NzZkMFx1NGUyNVx1NzgxNFx1ODcxMlx1NWNhOVx1NWVmNlx1OGEwMFx1OTg5Y1x1OTYwZVx1NzA4ZVx1NmNiZlx1NTk0NFx1NjNhOVx1NzczY1x1ODg0ZFx1NmYxNFx1ODI3M1x1NTgzMFx1NzFkNVx1NTM4Y1x1NzgxYVx1''@;'; + put 'put ''OTZjMVx1NTUwMVx1NWY2Nlx1NzEzMFx1NWJiNFx1OGMxYVx1OWE4Y1x1NmI4M1x1NTkyZVx1OWUyZlx1NzllN1x1Njc2OFx1NjI2Y1x1NGY2Zlx1NzVhMVx1N2Y4YVx1NmQwYlx1OTYzM1x1NmMyN1x1NGVmMFx1NzVkMlx1NTE3Ylx1NjgzN1x1NmYzZVx1OTA4MFx1ODE3MFx1NTk5Nlx1NzQ3''@;'; + put 'put ''Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDldW0VdXT01MzUwNCtFLExbNTM1MDQrRV09QlsyMDldW0VdKTtmb3IoQlsyMTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0NDdcdTVjMjdcdTkwNjVcdTdhOTFcdThjMjNcdTU5ZGFcdTU0YWNcdTgyMDBcdTgzNmZc''@;'; + put 'put ''dTg5ODFcdTgwMDBcdTY5MzBcdTU2NGVcdTgwMzZcdTcyMzdcdTkxY2VcdTUxYjZcdTRlNWZcdTk4NzVcdTYzOTZcdTRlMWFcdTUzZjZcdTY2ZjNcdTgxNGJcdTU5MWNcdTZkYjJcdTRlMDBcdTU4ZjlcdTUzM2JcdTYzZDZcdTk0ZjFcdTRmOWRcdTRmMGFcdTg4NjNcdTk4OTBcdTU5MzdcdTkw''@;'; + put 'put ''NTdcdTc5ZmJcdTRlZWFcdTgwZjBcdTc1OTFcdTZjODJcdTViOWNcdTU5ZThcdTVmNWRcdTY5MDVcdTg2ODFcdTUwMWFcdTVkZjJcdTRlNTlcdTc3ZTNcdTRlZTVcdTgyN2FcdTYyOTFcdTY2MTNcdTkwOTFcdTVjNzlcdTRlYmZcdTVmNzlcdTgxYzZcdTkwMzhcdTgwODRcdTc1YWJcdTRlYTZc''@;'; + put 'put ''dTg4ZDRcdTYxMGZcdTZiYzVcdTVmYzZcdTRlNDlcdTc2Y2FcdTZlYTJcdThiZTNcdThiYWVcdThjMGFcdThiZDFcdTVmMDJcdTdmZmNcdTdmY2NcdTdlY2VcdTgzMzVcdTgzNmJcdTU2ZTBcdTZiYjdcdTk3ZjNcdTk2MzRcdTU5ZmJcdTU0MWZcdTk0ZjZcdTZkZWJcdTViYzVcdTk5NmVcdTVj''@;'; + put 'put ''MzlcdTVmMTVcdTk2OTBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjEwXVtFXV09NTM3NjArRSxMWzUzNzYwK0VdPUJbMjEwXVtFXSk7Zm9yKEJbMjExXT0iXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MzcwXHU4MmYxXHU2YTMxXHU1YTc0XHU5ZTcwXHU1ZTk0XHU3ZjI4''@;'; + put 'put ''XHU4M2I5XHU4NDI0XHU4NDI1XHU4MzY3XHU4NzQ3XHU4ZmNlXHU4ZDYyXHU3NmM4XHU1ZjcxXHU5ODk2XHU3ODZjXHU2NjIwXHU1NGRmXHU2MmU1XHU0ZjYzXHU4MWMzXHU3NWM4XHU1ZWI4XHU5NmNkXHU4ZTBhXHU4NmY5XHU1NDhmXHU2Y2YzXHU2ZDhjXHU2YzM4XHU2MDdmXHU1MmM3XHU3''@;'; + put 'put ''NTI4XHU1ZTdkXHU0ZjE4XHU2MGEwXHU1ZmU3XHU1YzI0XHU3NTMxXHU5MGFlXHU5NGMwXHU3MmI5XHU2Y2I5XHU2ZTM4XHU5MTQ5XHU2NzA5XHU1M2NiXHU1M2YzXHU0ZjUxXHU5MWM5XHU4YmYxXHU1M2M4XHU1ZTdjXHU4ZmMyXHU2ZGU0XHU0ZThlXHU3NmMyXHU2OTg2XHU4NjVlXHU2MTFh''@;'; + put 'put ''XHU4MjA2XHU0ZjU5XHU0ZmRlXHU5MDNlXHU5YzdjXHU2MTA5XHU2ZTFkXHU2ZTE0XHU5Njg1XHU0ZTg4XHU1YTMxXHU5NmU4XHU0ZTBlXHU1YzdmXHU3OWI5XHU1Yjg3XHU4YmVkXHU3ZmJkXHU3Mzg5XHU1N2RmXHU4MjhiXHU5MGMxXHU1NDAxXHU5MDQ3XHU1NWJiXHU1Y2VhXHU1ZmExXHU2''@;'; + put 'put ''MTA4XHU2YjMyXHU3MmYxXHU4MGIyXHU4YTg5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjExXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxMV1bRV1dPTU0MDE2K0UsTFs1NDAxNitFXT1CWzIxMV1bRV0pO2ZvcihCWzIxMl09Ilx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmQ3NFx1NWJkM1x1ODhkNVx1OTg4NFx1OGM2''@;'; + put 'put ''Ylx1OWE2ZFx1OWUzM1x1NmUwYVx1NTFhNFx1NTE0M1x1NTdhM1x1ODg4MVx1NTM5Zlx1NjNmNFx1OGY5NVx1NTZlZFx1NTQ1OFx1NTcwNlx1NzMzZlx1NmU5MFx1N2YxOFx1OGZkY1x1ODJkMVx1NjEzZlx1NjAyOFx1OTY2Mlx1NjZmMFx1N2VhNlx1OGQ4YVx1OGRjM1x1OTRhNVx1NWNiM1x1''@;'; + put 'put ''N2NhNFx1NjcwOFx1NjBhNlx1OTYwNVx1ODAxOFx1NGU5MVx1OTBlN1x1NTMwMFx1OTY2OFx1NTE0MVx1OGZkMFx1ODU3NFx1OTE1ZFx1NjY1NVx1OTdmNVx1NWI1NVx1NTMxZFx1NzgzOFx1Njc0Mlx1NjgzZFx1NTRjOVx1NzA3ZVx1NWJiMFx1OGY3ZFx1NTE4ZFx1NTcyOFx1NTRiMVx1NjUx''@;'; + put 'put ''Mlx1NjY4Mlx1OGQ1ZVx1OGQ0M1x1ODEwZlx1ODQ2Y1x1OTA2ZFx1N2NkZlx1NTFmZlx1ODVmYlx1NjdhM1x1NjVlOVx1NmZhMVx1ODZhNFx1OGU4MVx1NTY2YVx1OTAyMFx1NzY4Mlx1NzA3Nlx1NzFlNVx1OGQyM1x1NjJlOVx1NTIxOVx1NmNmZFx1OGQzY1x1NjAwZVx1NTg5ZVx1NjE4ZVx1''@;'; + put 'put ''NjZmZVx1OGQ2MFx1NjI0ZVx1NTViM1x1NmUyM1x1NjcyZFx1OGY2N1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTJdW0VdXT01NDI3MitFLExbNTQyNzIrRV09QlsyMTJdW0VdKTtmb3Io''@;'; + put 'put ''QlsyMTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk0ZTFcdTk1ZjhcdTc3''@;'; + put 'put ''MjhcdTY4MDVcdTY5YThcdTU0OGJcdTRlNGRcdTcwYjhcdThiYzhcdTY0NThcdTY1OGJcdTViODVcdTdhODRcdTUwM2FcdTViZThcdTc3YmJcdTZiZTFcdThhNzlcdTdjOThcdTZjYmVcdTc2Y2ZcdTY1YTlcdThmOTdcdTVkMmRcdTVjNTVcdTg2MzhcdTY4MDhcdTUzNjBcdTYyMThcdTdhZDlc''@;'; + put 'put ''dTZlNWJcdTdlZmRcdTZhMWZcdTdhZTBcdTVmNzBcdTZmMzNcdTVmMjBcdTYzOGNcdTZkYThcdTY3NTZcdTRlMDhcdTVlMTBcdThkMjZcdTRlZDdcdTgwYzBcdTc2MzRcdTk2OWNcdTYyZGJcdTY2MmRcdTYyN2VcdTZjYmNcdThkNzVcdTcxNjdcdTdmNjlcdTUxNDZcdTgwODdcdTUzZWNcdTkw''@;'; + put 'put ''NmVcdTYyOThcdTU0ZjJcdTg2ZjBcdThmOTlcdTgwMDVcdTk1MTdcdTg1MTdcdThmZDlcdTZkNTlcdTczY2RcdTY1OWZcdTc3MWZcdTc1MDRcdTc4MjdcdTgxZmJcdThkMWVcdTk0ODhcdTRmYTZcdTY3OTVcdTc1YjlcdThiY2FcdTk3MDdcdTYzMmZcdTk1NDdcdTk2MzVcdTg0YjhcdTYzMjNc''@;'; + put 'put ''dTc3NDFcdTVmODFcdTcyZjBcdTRlODlcdTYwMTRcdTY1NzRcdTYyZWZcdTZiNjNcdTY1M2ZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjEzXVtFXV09NTQ1MjgrRSxMWzU0NTI4K0VdPUJb''@;'; + put 'put ''MjEzXVtFXSk7Zm9yKEJbMjE0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1''@;'; + put 'put ''ZTI3XHU3NWM3XHU5MGQxXHU4YmMxXHU4MjlkXHU2NzlkXHU2NTJmXHU1NDMxXHU4NzE4XHU3N2U1XHU4MGEyXHU4MTAyXHU2YzQxXHU0ZTRiXHU3ZWM3XHU4MDRjXHU3NmY0XHU2OTBkXHU2Yjk2XHU2MjY3XHU1MDNjXHU0Zjg0XHU1NzQwXHU2MzA3XHU2YjYyXHU4ZGJlXHU1M2VhXHU2NWU4''@;'; + put 'put ''XHU3ZWI4XHU1ZmQ3XHU2MzFhXHU2M2I3XHU4MWYzXHU4MWY0XHU3ZjZlXHU1ZTFjXHU1Y2Q5XHU1MjM2XHU2NjdhXHU3OWU5XHU3YTFhXHU4ZDI4XHU3MDk5XHU3NWQ0XHU2ZWRlXHU2Y2JiXHU3YTkyXHU0ZTJkXHU3NmM1XHU1ZmUwXHU5NDlmXHU4ODc3XHU3ZWM4XHU3OWNkXHU4MGJmXHU5''@;'; + put 'put ''MWNkXHU0ZWYyXHU0ZjE3XHU4MjFmXHU1NDY4XHU1ZGRlXHU2ZDMyXHU4YmNjXHU3Y2E1XHU4Zjc0XHU4MDk4XHU1ZTFhXHU1NDkyXHU3NmIxXHU1Yjk5XHU2NjNjXHU5YWE0XHU3M2UwXHU2ODJhXHU4NmRiXHU2NzMxXHU3MzJhXHU4YmY4XHU4YmRiXHU5MDEwXHU3YWY5XHU3MGRiXHU3MTZl''@;'; + put 'put ''XHU2MmM0XHU3N2E5XHU1NjMxXHU0ZTNiXHU4NDU3XHU2N2YxXHU1MmE5XHU4NmMwXHU4ZDJlXHU5NGY4XHU3YjUxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxNF1bRV1dPTU0Nzg0K0Us''@;'; + put 'put ''TFs1NDc4NCtFXT1CWzIxNF1bRV0pO2ZvcihCWzIxNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1NGY0Zlx1NmNlOFx1Nzk1ZFx1OWE3Ylx1NjI5M1x1NzIyYVx1NjJmZFx1NGUxM1x1NzgxNlx1OGY2Y1x1NjRiMFx1OGQ1YVx1N2JjNlx1Njg2OVx1NWU4NFx1ODhjNVx1NTk4Nlx1NjQ5ZVx1NThlZVx1NzJiNlx1NjkwZVx1OTUyNVx1OGZmZFx1OGQ1OFx1NTc2MFx1N2Yw''@;'; + put 'put ''MFx1OGMwNlx1NTFjNlx1NjM0OVx1NjJkOVx1NTM1M1x1Njg0Y1x1NzQyMlx1ODMwMVx1OTE0Y1x1NTU0NFx1Nzc0MFx1NzA3Y1x1NmQ0YVx1NTE3OVx1NTRhOFx1OGQ0NFx1NTlmZlx1NmVjYlx1NmRjNFx1NWI1Y1x1N2QyYlx1NGVkNFx1N2M3ZFx1NmVkM1x1NWI1MFx1ODFlYVx1NmUwZFx1''@;'; + put 'put ''NWI1N1x1OWIwM1x1NjhkNVx1OGUyYVx1NWI5N1x1N2VmY1x1NjAzYlx1N2ViNVx1OTBiOVx1OGQ3MFx1NTk0Zlx1NjNjZFx1NzlkZlx1OGRiM1x1NTM1Mlx1NjVjZlx1Nzk1Nlx1OGJjNVx1OTYzYlx1N2VjNFx1OTRiYlx1N2U4Mlx1NTYzNFx1OTE4OVx1NjcwMFx1N2Y2YVx1NWMwYVx1OTA3''@;'; + put 'put ''NVx1NjYyOFx1NWRlNlx1NGY1MFx1NjdkZVx1NTA1YVx1NGY1Y1x1NTc1MFx1NWVhN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTVd''@;'; + put 'put ''W0VdXT01NTA0MCtFLExbNTUwNDArRV09QlsyMTVdW0VdKTtmb3IoQlsyMTZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRlOGRcdTRlMGNcdTUxNDBcdTRlMTBcdTVlZmZcdTUzNDVcdTRlMTVcdTRlOThcdTRlMWVcdTliMzJcdTViNmNcdTU2NjlcdTRlMjhcdTc5YmFcdTRlM2ZcdTUzMTVcdTRlNDdcdTU5MmRcdTcyM2JcdTUzNmVcdTZjMTBcdTU2ZGZcdTgwZTRcdTk5''@;'; + put 'put ''OTdcdTZiZDNcdTc3N2VcdTlmMTdcdTRlMzZcdTRlOWZcdTlmMTBcdTRlNWNcdTRlNjlcdTRlOTNcdTgyODhcdTViNWJcdTU1NmNcdTU2MGZcdTRlYzRcdTUzOGRcdTUzOWRcdTUzYTNcdTUzYTVcdTUzYWVcdTk3NjVcdThkNWRcdTUzMWFcdTUzZjVcdTUzMjZcdTUzMmVcdTUzM2VcdThkNWNc''@;'; + put 'put ''dTUzNjZcdTUzNjNcdTUyMDJcdTUyMDhcdTUyMGVcdTUyMmRcdTUyMzNcdTUyM2ZcdTUyNDBcdTUyNGNcdTUyNWVcdTUyNjFcdTUyNWNcdTg0YWZcdTUyN2RcdTUyODJcdTUyODFcdTUyOTBcdTUyOTNcdTUxODJcdTdmNTRcdTRlYmJcdTRlYzNcdTRlYzlcdTRlYzJcdTRlZThcdTRlZTFcdTRl''@;'; + put 'put ''ZWJcdTRlZGVcdTRmMWJcdTRlZjNcdTRmMjJcdTRmNjRcdTRlZjVcdTRmMjVcdTRmMjdcdTRmMDlcdTRmMmJcdTRmNWVcdTRmNjdcdTY1MzhcdTRmNWFcdTRmNWRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxNl1bRV0uY2hhckNvZGVBdCgw''@;'; + put 'put ''KSYmKG1lW0JbMjE2XVtFXV09NTUyOTYrRSxMWzU1Mjk2K0VdPUJbMjE2XVtFXSk7Zm9yKEJbMjE3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZjVmXHU0ZjU3XHU0ZjMyXHU0ZjNkXHU0Zjc2XHU0Zjc0XHU0ZjkxXHU0Zjg5XHU0ZjgzXHU0ZjhmXHU0ZjdlXHU0ZjdiXHU0ZmFhXHU0ZjdjXHU0ZmFjXHU0Zjk0XHU0ZmU2XHU0ZmU4XHU0ZmVhXHU0ZmM1XHU0ZmRhXHU0''@;'; + put 'put ''ZmUzXHU0ZmRjXHU0ZmQxXHU0ZmRmXHU0ZmY4XHU1MDI5XHU1MDRjXHU0ZmYzXHU1MDJjXHU1MDBmXHU1MDJlXHU1MDJkXHU0ZmZlXHU1MDFjXHU1MDBjXHU1MDI1XHU1MDI4XHU1MDdlXHU1MDQzXHU1MDU1XHU1MDQ4XHU1MDRlXHU1MDZjXHU1MDdiXHU1MGE1XHU1MGE3XHU1MGE5XHU1MGJh''@;'; + put 'put ''XHU1MGQ2XHU1MTA2XHU1MGVkXHU1MGVjXHU1MGU2XHU1MGVlXHU1MTA3XHU1MTBiXHU0ZWRkXHU2YzNkXHU0ZjU4XHU0ZjY1XHU0ZmNlXHU5ZmEwXHU2YzQ2XHU3Yzc0XHU1MTZlXHU1ZGZkXHU5ZWM5XHU5OTk4XHU1MTgxXHU1OTE0XHU1MmY5XHU1MzBkXHU4YTA3XHU1MzEwXHU1MWViXHU1''@;'; + put 'put ''OTE5XHU1MTU1XHU0ZWEwXHU1MTU2XHU0ZWIzXHU4ODZlXHU4OGE0XHU0ZWI1XHU4MTE0XHU4OGQyXHU3OTgwXHU1YjM0XHU4ODAzXHU3ZmI4XHU1MWFiXHU1MWIxXHU1MWJkXHU1MWJjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTddW0Vd''@;'; + put 'put ''LmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxN11bRV1dPTU1NTUyK0UsTFs1NTU1MitFXT1CWzIxN11bRV0pO2ZvcihCWzIxOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTFjN1x1NTE5Nlx1NTFhMlx1NTFhNVx1OGJhMFx1OGJhNlx1OGJhN1x1OGJhYVx1OGJiNFx1OGJiNVx1OGJiN1x1OGJjMlx1OGJjM1x1OGJjYlx1OGJjZlx1OGJjZVx1OGJkMlx1OGJkM1x1OGJkNFx1''@;'; + put 'put ''OGJkNlx1OGJkOFx1OGJkOVx1OGJkY1x1OGJkZlx1OGJlMFx1OGJlNFx1OGJlOFx1OGJlOVx1OGJlZVx1OGJmMFx1OGJmM1x1OGJmNlx1OGJmOVx1OGJmY1x1OGJmZlx1OGMwMFx1OGMwMlx1OGMwNFx1OGMwN1x1OGMwY1x1OGMwZlx1OGMxMVx1OGMxMlx1OGMxNFx1OGMxNVx1OGMxNlx1OGMx''@;'; + put 'put ''OVx1OGMxYlx1OGMxOFx1OGMxZFx1OGMxZlx1OGMyMFx1OGMyMVx1OGMyNVx1OGMyN1x1OGMyYVx1OGMyYlx1OGMyZVx1OGMyZlx1OGMzMlx1OGMzM1x1OGMzNVx1OGMzNlx1NTM2OVx1NTM3YVx1OTYxZFx1OTYyMlx1OTYyMVx1OTYzMVx1OTYyYVx1OTYzZFx1OTYzY1x1OTY0Mlx1OTY0OVx1''@;'; + put 'put ''OTY1NFx1OTY1Zlx1OTY2N1x1OTY2Y1x1OTY3Mlx1OTY3NFx1OTY4OFx1OTY4ZFx1OTY5N1x1OTZiMFx1OTA5N1x1OTA5Ylx1OTA5ZFx1OTA5OVx1OTBhY1x1OTBhMVx1OTBiNFx1OTBiM1x1OTBiNlx1OTBiYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxOF0ubGVuZ3RoOysrRSk2NTUz''@;'; + put 'put ''MyE9PUJbMjE4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMThdW0VdXT01NTgwOCtFLExbNTU4MDgrRV09QlsyMThdW0VdKTtmb3IoQlsyMTldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkwYjhcdTkwYjBcdTkwY2ZcdTkwYzVcdTkwYmVcdTkwZDBcdTkwYzRcdTkwYzdcdTkwZDNcdTkwZTZcdTkwZTJcdTkwZGNcdTkwZDdcdTkwZGJcdTkwZWJcdTkwZWZcdTkwZmVc''@;'; + put 'put ''dTkxMDRcdTkxMjJcdTkxMWVcdTkxMjNcdTkxMzFcdTkxMmZcdTkxMzlcdTkxNDNcdTkxNDZcdTUyMGRcdTU5NDJcdTUyYTJcdTUyYWNcdTUyYWRcdTUyYmVcdTU0ZmZcdTUyZDBcdTUyZDZcdTUyZjBcdTUzZGZcdTcxZWVcdTc3Y2RcdTVlZjRcdTUxZjVcdTUxZmNcdTliMmZcdTUzYjZcdTVm''@;'; + put 'put ''MDFcdTc1NWFcdTVkZWZcdTU3NGNcdTU3YTlcdTU3YTFcdTU4N2VcdTU4YmNcdTU4YzVcdTU4ZDFcdTU3MjlcdTU3MmNcdTU3MmFcdTU3MzNcdTU3MzlcdTU3MmVcdTU3MmZcdTU3NWNcdTU3M2JcdTU3NDJcdTU3NjlcdTU3ODVcdTU3NmJcdTU3ODZcdTU3N2NcdTU3N2JcdTU3NjhcdTU3NmRc''@;'; + put 'put ''dTU3NzZcdTU3NzNcdTU3YWRcdTU3YTRcdTU3OGNcdTU3YjJcdTU3Y2ZcdTU3YTdcdTU3YjRcdTU3OTNcdTU3YTBcdTU3ZDVcdTU3ZDhcdTU3ZGFcdTU3ZDlcdTU3ZDJcdTU3YjhcdTU3ZjRcdTU3ZWZcdTU3ZjhcdTU3ZTRcdTU3ZGRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTldLmxl''@;'; + put 'put ''bmd0aDsrK0UpNjU1MzMhPT1CWzIxOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE5XVtFXV09NTYwNjQrRSxMWzU2MDY0K0VdPUJbMjE5XVtFXSk7Zm9yKEJbMjIwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ODBiXHU1ODBkXHU1N2ZkXHU1N2VkXHU1ODAwXHU1ODFlXHU1ODE5XHU1ODQ0XHU1ODIwXHU1ODY1XHU1ODZjXHU1ODgxXHU1ODg5XHU1ODlhXHU1ODgw''@;'; + put 'put ''XHU5OWE4XHU5ZjE5XHU2MWZmXHU4Mjc5XHU4MjdkXHU4MjdmXHU4MjhmXHU4MjhhXHU4MmE4XHU4Mjg0XHU4MjhlXHU4MjkxXHU4Mjk3XHU4Mjk5XHU4MmFiXHU4MmI4XHU4MmJlXHU4MmIwXHU4MmM4XHU4MmNhXHU4MmUzXHU4Mjk4XHU4MmI3XHU4MmFlXHU4MmNiXHU4MmNjXHU4MmMxXHU4''@;'; + put 'put ''MmE5XHU4MmI0XHU4MmExXHU4MmFhXHU4MjlmXHU4MmM0XHU4MmNlXHU4MmE0XHU4MmUxXHU4MzA5XHU4MmY3XHU4MmU0XHU4MzBmXHU4MzA3XHU4MmRjXHU4MmY0XHU4MmQyXHU4MmQ4XHU4MzBjXHU4MmZiXHU4MmQzXHU4MzExXHU4MzFhXHU4MzA2XHU4MzE0XHU4MzE1XHU4MmUwXHU4MmQ1''@;'; + put 'put ''XHU4MzFjXHU4MzUxXHU4MzViXHU4MzVjXHU4MzA4XHU4MzkyXHU4MzNjXHU4MzM0XHU4MzMxXHU4MzliXHU4MzVlXHU4MzJmXHU4MzRmXHU4MzQ3XHU4MzQzXHU4MzVmXHU4MzQwXHU4MzE3XHU4MzYwXHU4MzJkXHU4MzNhXHU4MzMzXHU4MzY2XHU4MzY1XHVmZmZkIi5zcGxpdCgiIiksRT0w''@;'; + put 'put ''O0UhPUJbMjIwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyMF1bRV1dPTU2MzIwK0UsTFs1NjMyMCtFXT1CWzIyMF1bRV0pO2ZvcihCWzIyMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODM2OFx1ODMxYlx1ODM2OVx1ODM2Y1x1ODM2YVx1ODM2ZFx1ODM2ZVx1ODNiMFx1ODM3OFx1ODNiM1x1ODNiNFx1ODNhMFx1ODNh''@;'; + put 'put ''YVx1ODM5M1x1ODM5Y1x1ODM4NVx1ODM3Y1x1ODNiNlx1ODNhOVx1ODM3ZFx1ODNiOFx1ODM3Ylx1ODM5OFx1ODM5ZVx1ODNhOFx1ODNiYVx1ODNiY1x1ODNjMVx1ODQwMVx1ODNlNVx1ODNkOFx1NTgwN1x1ODQxOFx1ODQwYlx1ODNkZFx1ODNmZFx1ODNkNlx1ODQxY1x1ODQzOFx1ODQxMVx1''@;'; + put 'put ''ODQwNlx1ODNkNFx1ODNkZlx1ODQwZlx1ODQwM1x1ODNmOFx1ODNmOVx1ODNlYVx1ODNjNVx1ODNjMFx1ODQyNlx1ODNmMFx1ODNlMVx1ODQ1Y1x1ODQ1MVx1ODQ1YVx1ODQ1OVx1ODQ3M1x1ODQ4N1x1ODQ4OFx1ODQ3YVx1ODQ4OVx1ODQ3OFx1ODQzY1x1ODQ0Nlx1ODQ2OVx1ODQ3Nlx1ODQ4''@;'; + put 'put ''Y1x1ODQ4ZVx1ODQzMVx1ODQ2ZFx1ODRjMVx1ODRjZFx1ODRkMFx1ODRlNlx1ODRiZFx1ODRkM1x1ODRjYVx1ODRiZlx1ODRiYVx1ODRlMFx1ODRhMVx1ODRiOVx1ODRiNFx1ODQ5N1x1ODRlNVx1ODRlM1x1ODUwY1x1NzUwZFx1ODUzOFx1ODRmMFx1ODUzOVx1ODUxZlx1ODUzYVx1ZmZmZCIu''@;'; + put 'put ''c3BsaXQoIiIpLEU9MDtFIT1CWzIyMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjFdW0VdXT01NjU3NitFLExbNTY1NzYrRV09QlsyMjFdW0VdKTtmb3IoQlsyMjJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1NTZcdTg1M2JcdTg0ZmZcdTg0ZmNcdTg1NTlcdTg1NDhcdTg1NjhcdTg1NjRcdTg1NWVcdTg1N2FcdTc3''@;'; + put 'put ''YTJcdTg1NDNcdTg1NzJcdTg1N2JcdTg1YTRcdTg1YThcdTg1ODdcdTg1OGZcdTg1NzlcdTg1YWVcdTg1OWNcdTg1ODVcdTg1YjlcdTg1YjdcdTg1YjBcdTg1ZDNcdTg1YzFcdTg1ZGNcdTg1ZmZcdTg2MjdcdTg2MDVcdTg2MjlcdTg2MTZcdTg2M2NcdTVlZmVcdTVmMDhcdTU5M2NcdTU5NDFc''@;'; + put 'put ''dTgwMzdcdTU5NTVcdTU5NWFcdTU5NThcdTUzMGZcdTVjMjJcdTVjMjVcdTVjMmNcdTVjMzRcdTYyNGNcdTYyNmFcdTYyOWZcdTYyYmJcdTYyY2FcdTYyZGFcdTYyZDdcdTYyZWVcdTYzMjJcdTYyZjZcdTYzMzlcdTYzNGJcdTYzNDNcdTYzYWRcdTYzZjZcdTYzNzFcdTYzN2FcdTYzOGVcdTYz''@;'; + put 'put ''YjRcdTYzNmRcdTYzYWNcdTYzOGFcdTYzNjlcdTYzYWVcdTYzYmNcdTYzZjJcdTYzZjhcdTYzZTBcdTYzZmZcdTYzYzRcdTYzZGVcdTYzY2VcdTY0NTJcdTYzYzZcdTYzYmVcdTY0NDVcdTY0NDFcdTY0MGJcdTY0MWJcdTY0MjBcdTY0MGNcdTY0MjZcdTY0MjFcdTY0NWVcdTY0ODRcdTY0NmRc''@;'; + put 'put ''dTY0OTZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIyXVtFXV09NTY4MzIrRSxMWzU2ODMyK0VdPUJbMjIyXVtFXSk7Zm9yKEJbMjIzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NDdhXHU2NGI3XHU2NGI4XHU2NDk5XHU2NGJhXHU2NGMwXHU2NGQwXHU2NGQ3XHU2''@;'; + put 'put ''NGU0XHU2NGUyXHU2NTA5XHU2NTI1XHU2NTJlXHU1ZjBiXHU1ZmQyXHU3NTE5XHU1ZjExXHU1MzVmXHU1M2YxXHU1M2ZkXHU1M2U5XHU1M2U4XHU1M2ZiXHU1NDEyXHU1NDE2XHU1NDA2XHU1NDRiXHU1NDUyXHU1NDUzXHU1NDU0XHU1NDU2XHU1NDQzXHU1NDIxXHU1NDU3XHU1NDU5XHU1NDIz''@;'; + put 'put ''XHU1NDMyXHU1NDgyXHU1NDk0XHU1NDc3XHU1NDcxXHU1NDY0XHU1NDlhXHU1NDliXHU1NDg0XHU1NDc2XHU1NDY2XHU1NDlkXHU1NGQwXHU1NGFkXHU1NGMyXHU1NGI0XHU1NGQyXHU1NGE3XHU1NGE2XHU1NGQzXHU1NGQ0XHU1NDcyXHU1NGEzXHU1NGQ1XHU1NGJiXHU1NGJmXHU1NGNjXHU1''@;'; + put 'put ''NGQ5XHU1NGRhXHU1NGRjXHU1NGE5XHU1NGFhXHU1NGE0XHU1NGRkXHU1NGNmXHU1NGRlXHU1NTFiXHU1NGU3XHU1NTIwXHU1NGZkXHU1NTE0XHU1NGYzXHU1NTIyXHU1NTIzXHU1NTBmXHU1NTExXHU1NTI3XHU1NTJhXHU1NTY3XHU1NThmXHU1NWI1XHU1NTQ5XHU1NTZkXHU1NTQxXHU1NTU1''@;'; + put 'put ''XHU1NTNmXHU1NTUwXHU1NTNjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjIzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyM11bRV1dPTU3MDg4K0UsTFs1NzA4OCtFXT1CWzIyM11bRV0pO2ZvcihCWzIyNF09Ilx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTUzN1x1NTU1Nlx1NTU3NVx1NTU3Nlx1NTU3N1x1NTUzM1x1''@;'; + put 'put ''NTUzMFx1NTU1Y1x1NTU4Ylx1NTVkMlx1NTU4M1x1NTViMVx1NTViOVx1NTU4OFx1NTU4MVx1NTU5Zlx1NTU3ZVx1NTVkNlx1NTU5MVx1NTU3Ylx1NTVkZlx1NTViZFx1NTViZVx1NTU5NFx1NTU5OVx1NTVlYVx1NTVmN1x1NTVjOVx1NTYxZlx1NTVkMVx1NTVlYlx1NTVlY1x1NTVkNFx1NTVl''@;'; + put 'put ''Nlx1NTVkZFx1NTVjNFx1NTVlZlx1NTVlNVx1NTVmMlx1NTVmM1x1NTVjY1x1NTVjZFx1NTVlOFx1NTVmNVx1NTVlNFx1OGY5NFx1NTYxZVx1NTYwOFx1NTYwY1x1NTYwMVx1NTYyNFx1NTYyM1x1NTVmZVx1NTYwMFx1NTYyN1x1NTYyZFx1NTY1OFx1NTYzOVx1NTY1N1x1NTYyY1x1NTY0ZFx1''@;'; + put 'put ''NTY2Mlx1NTY1OVx1NTY1Y1x1NTY0Y1x1NTY1NFx1NTY4Nlx1NTY2NFx1NTY3MVx1NTY2Ylx1NTY3Ylx1NTY3Y1x1NTY4NVx1NTY5M1x1NTZhZlx1NTZkNFx1NTZkN1x1NTZkZFx1NTZlMVx1NTZmNVx1NTZlYlx1NTZmOVx1NTZmZlx1NTcwNFx1NTcwYVx1NTcwOVx1NTcxY1x1NWUwZlx1NWUx''@;'; + put 'put ''OVx1NWUxNFx1NWUxMVx1NWUzMVx1NWUzYlx1NWUzY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjRdW0VdXT01NzM0NCtFLExbNTczNDQrRV09QlsyMjRdW0VdKTtmb3IoQlsyMjVdPSJc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVlMzdcdTVlNDRcdTVlNTRcdTVlNWJc''@;'; + put 'put ''dTVlNWVcdTVlNjFcdTVjOGNcdTVjN2FcdTVjOGRcdTVjOTBcdTVjOTZcdTVjODhcdTVjOThcdTVjOTlcdTVjOTFcdTVjOWFcdTVjOWNcdTVjYjVcdTVjYTJcdTVjYmRcdTVjYWNcdTVjYWJcdTVjYjFcdTVjYTNcdTVjYzFcdTVjYjdcdTVjYzRcdTVjZDJcdTVjZTRcdTVjY2JcdTVjZTVcdTVk''@;'; + put 'put ''MDJcdTVkMDNcdTVkMjdcdTVkMjZcdTVkMmVcdTVkMjRcdTVkMWVcdTVkMDZcdTVkMWJcdTVkNThcdTVkM2VcdTVkMzRcdTVkM2RcdTVkNmNcdTVkNWJcdTVkNmZcdTVkNWRcdTVkNmJcdTVkNGJcdTVkNGFcdTVkNjlcdTVkNzRcdTVkODJcdTVkOTlcdTVkOWRcdThjNzNcdTVkYjdcdTVkYzVc''@;'; + put 'put ''dTVmNzNcdTVmNzdcdTVmODJcdTVmODdcdTVmODlcdTVmOGNcdTVmOTVcdTVmOTlcdTVmOWNcdTVmYThcdTVmYWRcdTVmYjVcdTVmYmNcdTg4NjJcdTVmNjFcdTcyYWRcdTcyYjBcdTcyYjRcdTcyYjdcdTcyYjhcdTcyYzNcdTcyYzFcdTcyY2VcdTcyY2RcdTcyZDJcdTcyZThcdTcyZWZcdTcy''@;'; + put 'put ''ZTlcdTcyZjJcdTcyZjRcdTcyZjdcdTczMDFcdTcyZjNcdTczMDNcdTcyZmFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI1XVtFXV09NTc2MDArRSxMWzU3NjAwK0VdPUJbMjI1XVtFXSk7''@;'; + put 'put ''Zm9yKEJbMjI2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MmZiXHU3MzE3''@;'; + put 'put ''XHU3MzEzXHU3MzIxXHU3MzBhXHU3MzFlXHU3MzFkXHU3MzE1XHU3MzIyXHU3MzM5XHU3MzI1XHU3MzJjXHU3MzM4XHU3MzMxXHU3MzUwXHU3MzRkXHU3MzU3XHU3MzYwXHU3MzZjXHU3MzZmXHU3MzdlXHU4MjFiXHU1OTI1XHU5OGU3XHU1OTI0XHU1OTAyXHU5OTYzXHU5OTY3XHU5OTY4XHU5''@;'; + put 'put ''OTY5XHU5OTZhXHU5OTZiXHU5OTZjXHU5OTc0XHU5OTc3XHU5OTdkXHU5OTgwXHU5OTg0XHU5OTg3XHU5OThhXHU5OThkXHU5OTkwXHU5OTkxXHU5OTkzXHU5OTk0XHU5OTk1XHU1ZTgwXHU1ZTkxXHU1ZThiXHU1ZTk2XHU1ZWE1XHU1ZWEwXHU1ZWI5XHU1ZWI1XHU1ZWJlXHU1ZWIzXHU4ZDUz''@;'; + put 'put ''XHU1ZWQyXHU1ZWQxXHU1ZWRiXHU1ZWU4XHU1ZWVhXHU4MWJhXHU1ZmM0XHU1ZmM5XHU1ZmQ2XHU1ZmNmXHU2MDAzXHU1ZmVlXHU2MDA0XHU1ZmUxXHU1ZmU0XHU1ZmZlXHU2MDA1XHU2MDA2XHU1ZmVhXHU1ZmVkXHU1ZmY4XHU2MDE5XHU2MDM1XHU2MDI2XHU2MDFiXHU2MDBmXHU2MDBkXHU2''@;'; + put 'put ''MDI5XHU2MDJiXHU2MDBhXHU2MDNmXHU2MDIxXHU2MDc4XHU2MDc5XHU2MDdiXHU2MDdhXHU2MDQyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNl1bRV1dPTU3ODU2K0UsTFs1Nzg1NitF''@;'; + put 'put ''XT1CWzIyNl1bRV0pO2ZvcihCWzIyN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1NjA2YVx1NjA3ZFx1NjA5Nlx1NjA5YVx1NjBhZFx1NjA5ZFx1NjA4M1x1NjA5Mlx1NjA4Y1x1NjA5Ylx1NjBlY1x1NjBiYlx1NjBiMVx1NjBkZFx1NjBkOFx1NjBjNlx1NjBkYVx1NjBiNFx1NjEyMFx1NjEyNlx1NjExNVx1NjEyM1x1NjBmNFx1NjEwMFx1NjEwZVx1NjEyYlx1NjE0YVx1''@;'; + put 'put ''NjE3NVx1NjFhY1x1NjE5NFx1NjFhN1x1NjFiN1x1NjFkNFx1NjFmNVx1NWZkZFx1OTZiM1x1OTVlOVx1OTVlYlx1OTVmMVx1OTVmM1x1OTVmNVx1OTVmNlx1OTVmY1x1OTVmZVx1OTYwM1x1OTYwNFx1OTYwNlx1OTYwOFx1OTYwYVx1OTYwYlx1OTYwY1x1OTYwZFx1OTYwZlx1OTYxMlx1OTYx''@;'; + put 'put ''NVx1OTYxNlx1OTYxN1x1OTYxOVx1OTYxYVx1NGUyY1x1NzIzZlx1NjIxNVx1NmMzNVx1NmM1NFx1NmM1Y1x1NmM0YVx1NmNhM1x1NmM4NVx1NmM5MFx1NmM5NFx1NmM4Y1x1NmM2OFx1NmM2OVx1NmM3NFx1NmM3Nlx1NmM4Nlx1NmNhOVx1NmNkMFx1NmNkNFx1NmNhZFx1NmNmN1x1NmNmOFx1''@;'; + put 'put ''NmNmMVx1NmNkN1x1NmNiMlx1NmNlMFx1NmNkNlx1NmNmYVx1NmNlYlx1NmNlZVx1NmNiMVx1NmNkM1x1NmNlZlx1NmNmZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjddW0VdXT01ODEx''@;'; + put 'put ''MitFLExbNTgxMTIrRV09QlsyMjddW0VdKTtmb3IoQlsyMjhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdTZkMzlcdTZkMjdcdTZkMGNcdTZkNDNcdTZkNDhcdTZkMDdcdTZkMDRcdTZkMTlcdTZkMGVcdTZkMmJcdTZkNGRcdTZkMmVcdTZkMzVcdTZkMWFcdTZkNGZcdTZkNTJcdTZkNTRcdTZkMzNcdTZkOTFcdTZkNmZcdTZkOWVcdTZkYTBcdTZkNWVcdTZkOTNcdTZkOTRc''@;'; + put 'put ''dTZkNWNcdTZkNjBcdTZkN2NcdTZkNjNcdTZlMWFcdTZkYzdcdTZkYzVcdTZkZGVcdTZlMGVcdTZkYmZcdTZkZTBcdTZlMTFcdTZkZTZcdTZkZGRcdTZkZDlcdTZlMTZcdTZkYWJcdTZlMGNcdTZkYWVcdTZlMmJcdTZlNmVcdTZlNGVcdTZlNmJcdTZlYjJcdTZlNWZcdTZlODZcdTZlNTNcdTZl''@;'; + put 'put ''NTRcdTZlMzJcdTZlMjVcdTZlNDRcdTZlZGZcdTZlYjFcdTZlOThcdTZlZTBcdTZmMmRcdTZlZTJcdTZlYTVcdTZlYTdcdTZlYmRcdTZlYmJcdTZlYjdcdTZlZDdcdTZlYjRcdTZlY2ZcdTZlOGZcdTZlYzJcdTZlOWZcdTZmNjJcdTZmNDZcdTZmNDdcdTZmMjRcdTZmMTVcdTZlZjlcdTZmMmZc''@;'; + put 'put ''dTZmMzZcdTZmNGJcdTZmNzRcdTZmMmFcdTZmMDlcdTZmMjlcdTZmODlcdTZmOGRcdTZmOGNcdTZmNzhcdTZmNzJcdTZmN2NcdTZmN2FcdTZmZDFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0Jb''@;'; + put 'put ''MjI4XVtFXV09NTgzNjgrRSxMWzU4MzY4K0VdPUJbMjI4XVtFXSk7Zm9yKEJbMjI5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZmM5XHU2ZmE3XHU2ZmI5XHU2ZmI2XHU2ZmMyXHU2ZmUxXHU2ZmVlXHU2ZmRlXHU2ZmUwXHU2ZmVmXHU3MDFhXHU3MDIzXHU3MDFiXHU3MDM5XHU3MDM1XHU3MDRmXHU3MDVlXHU1YjgwXHU1Yjg0XHU1Yjk1XHU1YjkzXHU1YmE1XHU1YmI4''@;'; + put 'put ''XHU3NTJmXHU5YTllXHU2NDM0XHU1YmU0XHU1YmVlXHU4OTMwXHU1YmYwXHU4ZTQ3XHU4YjA3XHU4ZmI2XHU4ZmQzXHU4ZmQ1XHU4ZmU1XHU4ZmVlXHU4ZmU0XHU4ZmU5XHU4ZmU2XHU4ZmYzXHU4ZmU4XHU5MDA1XHU5MDA0XHU5MDBiXHU5MDI2XHU5MDExXHU5MDBkXHU5MDE2XHU5MDIxXHU5''@;'; + put 'put ''MDM1XHU5MDM2XHU5MDJkXHU5MDJmXHU5MDQ0XHU5MDUxXHU5MDUyXHU5MDUwXHU5MDY4XHU5MDU4XHU5MDYyXHU5MDViXHU2NmI5XHU5MDc0XHU5MDdkXHU5MDgyXHU5MDg4XHU5MDgzXHU5MDhiXHU1ZjUwXHU1ZjU3XHU1ZjU2XHU1ZjU4XHU1YzNiXHU1NGFiXHU1YzUwXHU1YzU5XHU1Yjcx''@;'; + put 'put ''XHU1YzYzXHU1YzY2XHU3ZmJjXHU1ZjJhXHU1ZjI5XHU1ZjJkXHU4Mjc0XHU1ZjNjXHU5YjNiXHU1YzZlXHU1OTgxXHU1OTgzXHU1OThkXHU1OWE5XHU1OWFhXHU1OWEzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjldW0VdLmNoYXJDb2Rl''@;'; + put 'put ''QXQoMCkmJihtZVtCWzIyOV1bRV1dPTU4NjI0K0UsTFs1ODYyNCtFXT1CWzIyOV1bRV0pO2ZvcihCWzIzMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTk5N1x1NTljYVx1NTlhYlx1NTk5ZVx1NTlhNFx1NTlkMlx1NTliMlx1NTlhZlx1NTlkN1x1NTliZVx1NWEwNVx1NWEwNlx1NTlkZFx1NWEwOFx1NTllM1x1NTlkOFx1NTlmOVx1NWEwY1x1NWEwOVx1NWEzMlx1NWEz''@;'; + put 'put ''NFx1NWExMVx1NWEyM1x1NWExM1x1NWE0MFx1NWE2N1x1NWE0YVx1NWE1NVx1NWEzY1x1NWE2Mlx1NWE3NVx1ODBlY1x1NWFhYVx1NWE5Ylx1NWE3N1x1NWE3YVx1NWFiZVx1NWFlYlx1NWFiMlx1NWFkMlx1NWFkNFx1NWFiOFx1NWFlMFx1NWFlM1x1NWFmMVx1NWFkNlx1NWFlNlx1NWFkOFx1''@;'; + put 'put ''NWFkY1x1NWIwOVx1NWIxN1x1NWIxNlx1NWIzMlx1NWIzN1x1NWI0MFx1NWMxNVx1NWMxY1x1NWI1YVx1NWI2NVx1NWI3M1x1NWI1MVx1NWI1M1x1NWI2Mlx1OWE3NVx1OWE3N1x1OWE3OFx1OWE3YVx1OWE3Zlx1OWE3ZFx1OWE4MFx1OWE4MVx1OWE4NVx1OWE4OFx1OWE4YVx1OWE5MFx1OWE5''@;'; + put 'put ''Mlx1OWE5M1x1OWE5Nlx1OWE5OFx1OWE5Ylx1OWE5Y1x1OWE5ZFx1OWE5Zlx1OWFhMFx1OWFhMlx1OWFhM1x1OWFhNVx1OWFhN1x1N2U5Zlx1N2VhMVx1N2VhM1x1N2VhNVx1N2VhOFx1N2VhOVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMw''@;'; + put 'put ''XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzBdW0VdXT01ODg4MCtFLExbNTg4ODArRV09QlsyMzBdW0VdKTtmb3IoQlsyMzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdlYWRcdTdlYjBcdTdlYmVcdTdlYzBcdTdlYzFcdTdlYzJcdTdlYzlcdTdlY2JcdTdlY2NcdTdlZDBcdTdlZDRcdTdlZDdcdTdlZGJcdTdlZTBcdTdlZTFcdTdlZThcdTdlZWJcdTdlZWVcdTdl''@;'; + put 'put ''ZWZcdTdlZjFcdTdlZjJcdTdmMGRcdTdlZjZcdTdlZmFcdTdlZmJcdTdlZmVcdTdmMDFcdTdmMDJcdTdmMDNcdTdmMDdcdTdmMDhcdTdmMGJcdTdmMGNcdTdmMGZcdTdmMTFcdTdmMTJcdTdmMTdcdTdmMTlcdTdmMWNcdTdmMWJcdTdmMWZcdTdmMjFcdTdmMjJcdTdmMjNcdTdmMjRcdTdmMjVc''@;'; + put 'put ''dTdmMjZcdTdmMjdcdTdmMmFcdTdmMmJcdTdmMmNcdTdmMmRcdTdmMmZcdTdmMzBcdTdmMzFcdTdmMzJcdTdmMzNcdTdmMzVcdTVlN2FcdTc1N2ZcdTVkZGJcdTc1M2VcdTkwOTVcdTczOGVcdTczOTFcdTczYWVcdTczYTJcdTczOWZcdTczY2ZcdTczYzJcdTczZDFcdTczYjdcdTczYjNcdTcz''@;'; + put 'put ''YzBcdTczYzlcdTczYzhcdTczZTVcdTczZDlcdTk4N2NcdTc0MGFcdTczZTlcdTczZTdcdTczZGVcdTczYmFcdTczZjJcdTc0MGZcdTc0MmFcdTc0NWJcdTc0MjZcdTc0MjVcdTc0MjhcdTc0MzBcdTc0MmVcdTc0MmNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzFdLmxlbmd0aDsrK0Up''@;'; + put 'put ''NjU1MzMhPT1CWzIzMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMxXVtFXV09NTkxMzYrRSxMWzU5MTM2K0VdPUJbMjMxXVtFXSk7Zm9yKEJbMjMyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NDFiXHU3NDFhXHU3NDQxXHU3NDVjXHU3NDU3XHU3NDU1XHU3NDU5XHU3NDc3XHU3NDZkXHU3NDdlXHU3NDljXHU3NDhlXHU3NDgwXHU3NDgxXHU3NDg3XHU3NDhiXHU3''@;'; + put 'put ''NDllXHU3NGE4XHU3NGE5XHU3NDkwXHU3NGE3XHU3NGQyXHU3NGJhXHU5N2VhXHU5N2ViXHU5N2VjXHU2NzRjXHU2NzUzXHU2NzVlXHU2NzQ4XHU2NzY5XHU2N2E1XHU2Nzg3XHU2NzZhXHU2NzczXHU2Nzk4XHU2N2E3XHU2Nzc1XHU2N2E4XHU2NzllXHU2N2FkXHU2NzhiXHU2Nzc3XHU2Nzdj''@;'; + put 'put ''XHU2N2YwXHU2ODA5XHU2N2Q4XHU2ODBhXHU2N2U5XHU2N2IwXHU2ODBjXHU2N2Q5XHU2N2I1XHU2N2RhXHU2N2IzXHU2N2RkXHU2ODAwXHU2N2MzXHU2N2I4XHU2N2UyXHU2ODBlXHU2N2MxXHU2N2ZkXHU2ODMyXHU2ODMzXHU2ODYwXHU2ODYxXHU2ODRlXHU2ODYyXHU2ODQ0XHU2ODY0XHU2''@;'; + put 'put ''ODgzXHU2ODFkXHU2ODU1XHU2ODY2XHU2ODQxXHU2ODY3XHU2ODQwXHU2ODNlXHU2ODRhXHU2ODQ5XHU2ODI5XHU2OGI1XHU2ODhmXHU2ODc0XHU2ODc3XHU2ODkzXHU2ODZiXHU2OGMyXHU2OTZlXHU2OGZjXHU2OTFmXHU2OTIwXHU2OGY5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMy''@;'; + put 'put ''XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzMl1bRV1dPTU5MzkyK0UsTFs1OTM5MitFXT1CWzIzMl1bRV0pO2ZvcihCWzIzM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjkyNFx1NjhmMFx1NjkwYlx1NjkwMVx1Njk1N1x1NjhlM1x1NjkxMFx1Njk3MVx1NjkzOVx1Njk2MFx1Njk0Mlx1Njk1ZFx1Njk4NFx1Njk2Ylx1''@;'; + put 'put ''Njk4MFx1Njk5OFx1Njk3OFx1NjkzNFx1NjljY1x1Njk4N1x1Njk4OFx1NjljZVx1Njk4OVx1Njk2Nlx1Njk2M1x1Njk3OVx1Njk5Ylx1NjlhN1x1NjliYlx1NjlhYlx1NjlhZFx1NjlkNFx1NjliMVx1NjljMVx1NjljYVx1NjlkZlx1Njk5NVx1NjllMFx1Njk4ZFx1NjlmZlx1NmEyZlx1Njll''@;'; + put 'put ''ZFx1NmExN1x1NmExOFx1NmE2NVx1NjlmMlx1NmE0NFx1NmEzZVx1NmFhMFx1NmE1MFx1NmE1Ylx1NmEzNVx1NmE4ZVx1NmE3OVx1NmEzZFx1NmEyOFx1NmE1OFx1NmE3Y1x1NmE5MVx1NmE5MFx1NmFhOVx1NmE5N1x1NmFhYlx1NzMzN1x1NzM1Mlx1NmI4MVx1NmI4Mlx1NmI4N1x1NmI4NFx1''@;'; + put 'put ''NmI5Mlx1NmI5M1x1NmI4ZFx1NmI5YVx1NmI5Ylx1NmJhMVx1NmJhYVx1OGY2Ylx1OGY2ZFx1OGY3MVx1OGY3Mlx1OGY3M1x1OGY3NVx1OGY3Nlx1OGY3OFx1OGY3N1x1OGY3OVx1OGY3YVx1OGY3Y1x1OGY3ZVx1OGY4MVx1OGY4Mlx1OGY4NFx1OGY4N1x1OGY4Ylx1ZmZmZCIuc3BsaXQoIiIp''@;'; + put 'put ''LEU9MDtFIT1CWzIzM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzNdW0VdXT01OTY0OCtFLExbNTk2NDgrRV09QlsyMzNdW0VdKTtmb3IoQlsyMzRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThmOGRcdThmOGVcdThmOGZcdThmOThcdThmOWFcdThlY2VcdTYyMGJcdTYyMTdcdTYyMWJcdTYyMWZcdTYyMjJcdTYyMjFc''@;'; + put 'put ''dTYyMjVcdTYyMjRcdTYyMmNcdTgxZTdcdTc0ZWZcdTc0ZjRcdTc0ZmZcdTc1MGZcdTc1MTFcdTc1MTNcdTY1MzRcdTY1ZWVcdTY1ZWZcdTY1ZjBcdTY2MGFcdTY2MTlcdTY3NzJcdTY2MDNcdTY2MTVcdTY2MDBcdTcwODVcdTY2ZjdcdTY2MWRcdTY2MzRcdTY2MzFcdTY2MzZcdTY2MzVcdTgw''@;'; + put 'put ''MDZcdTY2NWZcdTY2NTRcdTY2NDFcdTY2NGZcdTY2NTZcdTY2NjFcdTY2NTdcdTY2NzdcdTY2ODRcdTY2OGNcdTY2YTdcdTY2OWRcdTY2YmVcdTY2ZGJcdTY2ZGNcdTY2ZTZcdTY2ZTlcdThkMzJcdThkMzNcdThkMzZcdThkM2JcdThkM2RcdThkNDBcdThkNDVcdThkNDZcdThkNDhcdThkNDlc''@;'; + put 'put ''dThkNDdcdThkNGRcdThkNTVcdThkNTlcdTg5YzdcdTg5Y2FcdTg5Y2JcdTg5Y2NcdTg5Y2VcdTg5Y2ZcdTg5ZDBcdTg5ZDFcdTcyNmVcdTcyOWZcdTcyNWRcdTcyNjZcdTcyNmZcdTcyN2VcdTcyN2ZcdTcyODRcdTcyOGJcdTcyOGRcdTcyOGZcdTcyOTJcdTYzMDhcdTYzMzJcdTYzYjBcdWZm''@;'; + put 'put ''ZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzNF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM0XVtFXV09NTk5MDQrRSxMWzU5OTA0K0VdPUJbMjM0XVtFXSk7Zm9yKEJbMjM1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NDNmXHU2NGQ4XHU4MDA0XHU2YmVhXHU2YmYzXHU2YmZkXHU2YmY1XHU2YmY5XHU2YzA1XHU2YzA3''@;'; + put 'put ''XHU2YzA2XHU2YzBkXHU2YzE1XHU2YzE4XHU2YzE5XHU2YzFhXHU2YzIxXHU2YzI5XHU2YzI0XHU2YzJhXHU2YzMyXHU2NTM1XHU2NTU1XHU2NTZiXHU3MjRkXHU3MjUyXHU3MjU2XHU3MjMwXHU4NjYyXHU1MjE2XHU4MDlmXHU4MDljXHU4MDkzXHU4MGJjXHU2NzBhXHU4MGJkXHU4MGIxXHU4''@;'; + put 'put ''MGFiXHU4MGFkXHU4MGI0XHU4MGI3XHU4MGU3XHU4MGU4XHU4MGU5XHU4MGVhXHU4MGRiXHU4MGMyXHU4MGM0XHU4MGQ5XHU4MGNkXHU4MGQ3XHU2NzEwXHU4MGRkXHU4MGViXHU4MGYxXHU4MGY0XHU4MGVkXHU4MTBkXHU4MTBlXHU4MGYyXHU4MGZjXHU2NzE1XHU4MTEyXHU4YzVhXHU4MTM2''@;'; + put 'put ''XHU4MTFlXHU4MTJjXHU4MTE4XHU4MTMyXHU4MTQ4XHU4MTRjXHU4MTUzXHU4MTc0XHU4MTU5XHU4MTVhXHU4MTcxXHU4MTYwXHU4MTY5XHU4MTdjXHU4MTdkXHU4MTZkXHU4MTY3XHU1ODRkXHU1YWI1XHU4MTg4XHU4MTgyXHU4MTkxXHU2ZWQ1XHU4MWEzXHU4MWFhXHU4MWNjXHU2NzI2XHU4''@;'; + put 'put ''MWNhXHU4MWJiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzNV1bRV1dPTYwMTYwK0UsTFs2MDE2MCtFXT1CWzIzNV1bRV0pO2ZvcihCWzIzNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODFjMVx1ODFhNlx1NmIyNFx1NmIzN1x1NmIzOVx1NmI0M1x1NmI0Nlx1NmI1''@;'; + put 'put ''OVx1OThkMVx1OThkMlx1OThkM1x1OThkNVx1OThkOVx1OThkYVx1NmJiM1x1NWY0MFx1NmJjMlx1ODlmM1x1NjU5MFx1OWY1MVx1NjU5M1x1NjViY1x1NjVjNlx1NjVjNFx1NjVjM1x1NjVjY1x1NjVjZVx1NjVkMlx1NjVkNlx1NzA4MFx1NzA5Y1x1NzA5Nlx1NzA5ZFx1NzBiYlx1NzBjMFx1''@;'; + put 'put ''NzBiN1x1NzBhYlx1NzBiMVx1NzBlOFx1NzBjYVx1NzExMFx1NzExM1x1NzExNlx1NzEyZlx1NzEzMVx1NzE3M1x1NzE1Y1x1NzE2OFx1NzE0NVx1NzE3Mlx1NzE0YVx1NzE3OFx1NzE3YVx1NzE5OFx1NzFiM1x1NzFiNVx1NzFhOFx1NzFhMFx1NzFlMFx1NzFkNFx1NzFlN1x1NzFmOVx1NzIx''@;'; + put 'put ''ZFx1NzIyOFx1NzA2Y1x1NzExOFx1NzE2Nlx1NzFiOVx1NjIzZVx1NjIzZFx1NjI0M1x1NjI0OFx1NjI0OVx1NzkzYlx1Nzk0MFx1Nzk0Nlx1Nzk0OVx1Nzk1Ylx1Nzk1Y1x1Nzk1M1x1Nzk1YVx1Nzk2Mlx1Nzk1N1x1Nzk2MFx1Nzk2Zlx1Nzk2N1x1Nzk3YVx1Nzk4NVx1Nzk4YVx1Nzk5YVx1''@;'; + put 'put ''NzlhN1x1NzliM1x1NWZkMVx1NWZkMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzZdW0VdXT02MDQxNitFLExbNjA0MTYrRV09QlsyMzZdW0VdKTtmb3IoQlsyMzddPSJcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwM2NcdTYwNWRcdTYwNWFcdTYwNjdcdTYwNDFcdTYw''@;'; + put 'put ''NTlcdTYwNjNcdTYwYWJcdTYxMDZcdTYxMGRcdTYxNWRcdTYxYTlcdTYxOWRcdTYxY2JcdTYxZDFcdTYyMDZcdTgwODBcdTgwN2ZcdTZjOTNcdTZjZjZcdTZkZmNcdTc3ZjZcdTc3ZjhcdTc4MDBcdTc4MDlcdTc4MTdcdTc4MThcdTc4MTFcdTY1YWJcdTc4MmRcdTc4MWNcdTc4MWRcdTc4Mzlc''@;'; + put 'put ''dTc4M2FcdTc4M2JcdTc4MWZcdTc4M2NcdTc4MjVcdTc4MmNcdTc4MjNcdTc4MjlcdTc4NGVcdTc4NmRcdTc4NTZcdTc4NTdcdTc4MjZcdTc4NTBcdTc4NDdcdTc4NGNcdTc4NmFcdTc4OWJcdTc4OTNcdTc4OWFcdTc4ODdcdTc4OWNcdTc4YTFcdTc4YTNcdTc4YjJcdTc4YjlcdTc4YTVcdTc4''@;'; + put 'put ''ZDRcdTc4ZDlcdTc4YzlcdTc4ZWNcdTc4ZjJcdTc5MDVcdTc4ZjRcdTc5MTNcdTc5MjRcdTc5MWVcdTc5MzRcdTlmOWJcdTllZjlcdTllZmJcdTllZmNcdTc2ZjFcdTc3MDRcdTc3MGRcdTc2ZjlcdTc3MDdcdTc3MDhcdTc3MWFcdTc3MjJcdTc3MTlcdTc3MmRcdTc3MjZcdTc3MzVcdTc3Mzhc''@;'; + put 'put ''dTc3NTBcdTc3NTFcdTc3NDdcdTc3NDNcdTc3NWFcdTc3NjhcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM3XVtFXV09NjA2NzIrRSxMWzYwNjcyK0VdPUJbMjM3XVtFXSk7Zm9yKEJbMjM4''@;'; + put 'put ''XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NzYyXHU3NzY1XHU3NzdmXHU3''@;'; + put 'put ''NzhkXHU3NzdkXHU3NzgwXHU3NzhjXHU3NzkxXHU3NzlmXHU3N2EwXHU3N2IwXHU3N2I1XHU3N2JkXHU3NTNhXHU3NTQwXHU3NTRlXHU3NTRiXHU3NTQ4XHU3NTViXHU3NTcyXHU3NTc5XHU3NTgzXHU3ZjU4XHU3ZjYxXHU3ZjVmXHU4YTQ4XHU3ZjY4XHU3Zjc0XHU3ZjcxXHU3Zjc5XHU3Zjgx''@;'; + put 'put ''XHU3ZjdlXHU3NmNkXHU3NmU1XHU4ODMyXHU5NDg1XHU5NDg2XHU5NDg3XHU5NDhiXHU5NDhhXHU5NDhjXHU5NDhkXHU5NDhmXHU5NDkwXHU5NDk0XHU5NDk3XHU5NDk1XHU5NDlhXHU5NDliXHU5NDljXHU5NGEzXHU5NGE0XHU5NGFiXHU5NGFhXHU5NGFkXHU5NGFjXHU5NGFmXHU5NGIwXHU5''@;'; + put 'put ''NGIyXHU5NGI0XHU5NGI2XHU5NGI3XHU5NGI4XHU5NGI5XHU5NGJhXHU5NGJjXHU5NGJkXHU5NGJmXHU5NGM0XHU5NGM4XHU5NGM5XHU5NGNhXHU5NGNiXHU5NGNjXHU5NGNkXHU5NGNlXHU5NGQwXHU5NGQxXHU5NGQyXHU5NGQ1XHU5NGQ2XHU5NGQ3XHU5NGQ5XHU5NGQ4XHU5NGRiXHU5NGRl''@;'; + put 'put ''XHU5NGRmXHU5NGUwXHU5NGUyXHU5NGU0XHU5NGU1XHU5NGU3XHU5NGU4XHU5NGVhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzOF1bRV1dPTYwOTI4K0UsTFs2MDkyOCtFXT1CWzIzOF1b''@;'; + put 'put ''RV0pO2ZvcihCWzIzOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTRlOVx1''@;'; + put 'put ''OTRlYlx1OTRlZVx1OTRlZlx1OTRmM1x1OTRmNFx1OTRmNVx1OTRmN1x1OTRmOVx1OTRmY1x1OTRmZFx1OTRmZlx1OTUwM1x1OTUwMlx1OTUwNlx1OTUwN1x1OTUwOVx1OTUwYVx1OTUwZFx1OTUwZVx1OTUwZlx1OTUxMlx1OTUxM1x1OTUxNFx1OTUxNVx1OTUxNlx1OTUxOFx1OTUxYlx1OTUx''@;'; + put 'put ''ZFx1OTUxZVx1OTUxZlx1OTUyMlx1OTUyYVx1OTUyYlx1OTUyOVx1OTUyY1x1OTUzMVx1OTUzMlx1OTUzNFx1OTUzNlx1OTUzN1x1OTUzOFx1OTUzY1x1OTUzZVx1OTUzZlx1OTU0Mlx1OTUzNVx1OTU0NFx1OTU0NVx1OTU0Nlx1OTU0OVx1OTU0Y1x1OTU0ZVx1OTU0Zlx1OTU1Mlx1OTU1M1x1''@;'; + put 'put ''OTU1NFx1OTU1Nlx1OTU1N1x1OTU1OFx1OTU1OVx1OTU1Ylx1OTU1ZVx1OTU1Zlx1OTU1ZFx1OTU2MVx1OTU2Mlx1OTU2NFx1OTU2NVx1OTU2Nlx1OTU2N1x1OTU2OFx1OTU2OVx1OTU2YVx1OTU2Ylx1OTU2Y1x1OTU2Zlx1OTU3MVx1OTU3Mlx1OTU3M1x1OTUzYVx1NzdlN1x1NzdlY1x1OTZj''@;'; + put 'put ''OVx1NzlkNVx1NzllZFx1NzllM1x1NzllYlx1N2EwNlx1NWQ0N1x1N2EwM1x1N2EwMlx1N2ExZVx1N2ExNFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzldW0VdXT02MTE4NCtFLExbNjEx''@;'; + put 'put ''ODQrRV09QlsyMzldW0VdKTtmb3IoQlsyNDBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdTdhMzlcdTdhMzdcdTdhNTFcdTllY2ZcdTk5YTVcdTdhNzBcdTc2ODhcdTc2OGVcdTc2OTNcdTc2OTlcdTc2YTRcdTc0ZGVcdTc0ZTBcdTc1MmNcdTllMjBcdTllMjJcdTllMjhcdTllMjlcdTllMmFcdTllMmJcdTllMmNcdTllMzJcdTllMzFcdTllMzZcdTllMzhcdTllMzdcdTll''@;'; + put 'put ''MzlcdTllM2FcdTllM2VcdTllNDFcdTllNDJcdTllNDRcdTllNDZcdTllNDdcdTllNDhcdTllNDlcdTllNGJcdTllNGNcdTllNGVcdTllNTFcdTllNTVcdTllNTdcdTllNWFcdTllNWJcdTllNWNcdTllNWVcdTllNjNcdTllNjZcdTllNjdcdTllNjhcdTllNjlcdTllNmFcdTllNmJcdTllNmNc''@;'; + put 'put ''dTllNzFcdTllNmRcdTllNzNcdTc1OTJcdTc1OTRcdTc1OTZcdTc1YTBcdTc1OWRcdTc1YWNcdTc1YTNcdTc1YjNcdTc1YjRcdTc1YjhcdTc1YzRcdTc1YjFcdTc1YjBcdTc1YzNcdTc1YzJcdTc1ZDZcdTc1Y2RcdTc1ZTNcdTc1ZThcdTc1ZTZcdTc1ZTRcdTc1ZWJcdTc1ZTdcdTc2MDNcdTc1''@;'; + put 'put ''ZjFcdTc1ZmNcdTc1ZmZcdTc2MTBcdTc2MDBcdTc2MDVcdTc2MGNcdTc2MTdcdTc2MGFcdTc2MjVcdTc2MThcdTc2MTVcdTc2MTlcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQwXVtFXV09''@;'; + put 'put ''NjE0NDArRSxMWzYxNDQwK0VdPUJbMjQwXVtFXSk7Zm9yKEJbMjQxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHU3NjFiXHU3NjNjXHU3NjIyXHU3NjIwXHU3NjQwXHU3NjJkXHU3NjMwXHU3NjNmXHU3NjM1XHU3NjQzXHU3NjNlXHU3NjMzXHU3NjRkXHU3NjVlXHU3NjU0XHU3NjVjXHU3NjU2XHU3NjZiXHU3NjZmXHU3ZmNhXHU3YWU2XHU3YTc4XHU3YTc5XHU3YTgwXHU3''@;'; + put 'put ''YTg2XHU3YTg4XHU3YTk1XHU3YWE2XHU3YWEwXHU3YWFjXHU3YWE4XHU3YWFkXHU3YWIzXHU4ODY0XHU4ODY5XHU4ODcyXHU4ODdkXHU4ODdmXHU4ODgyXHU4OGEyXHU4OGM2XHU4OGI3XHU4OGJjXHU4OGM5XHU4OGUyXHU4OGNlXHU4OGUzXHU4OGU1XHU4OGYxXHU4OTFhXHU4OGZjXHU4OGU4''@;'; + put 'put ''XHU4OGZlXHU4OGYwXHU4OTIxXHU4OTE5XHU4OTEzXHU4OTFiXHU4OTBhXHU4OTM0XHU4OTJiXHU4OTM2XHU4OTQxXHU4OTY2XHU4OTdiXHU3NThiXHU4MGU1XHU3NmIyXHU3NmI0XHU3N2RjXHU4MDEyXHU4MDE0XHU4MDE2XHU4MDFjXHU4MDIwXHU4MDIyXHU4MDI1XHU4MDI2XHU4MDI3XHU4''@;'; + put 'put ''MDI5XHU4MDI4XHU4MDMxXHU4MDBiXHU4MDM1XHU4MDQzXHU4MDQ2XHU4MDRkXHU4MDUyXHU4MDY5XHU4MDcxXHU4OTgzXHU5ODc4XHU5ODgwXHU5ODgzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDFdW0VdLmNoYXJDb2RlQXQoMCkmJiht''@;'; + put 'put ''ZVtCWzI0MV1bRV1dPTYxNjk2K0UsTFs2MTY5NitFXT1CWzI0MV1bRV0pO2ZvcihCWzI0Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTg4OVx1OTg4Y1x1OTg4ZFx1OTg4Zlx1OTg5NFx1OTg5YVx1OTg5Ylx1OTg5ZVx1OTg5Zlx1OThhMVx1OThhMlx1OThhNVx1OThhNlx1ODY0ZFx1ODY1NFx1ODY2Y1x1ODY2ZVx1ODY3Zlx1ODY3YVx1ODY3Y1x1ODY3Ylx1ODZhOFx1''@;'; + put 'put ''ODY4ZFx1ODY4Ylx1ODZhY1x1ODY5ZFx1ODZhN1x1ODZhM1x1ODZhYVx1ODY5M1x1ODZhOVx1ODZiNlx1ODZjNFx1ODZiNVx1ODZjZVx1ODZiMFx1ODZiYVx1ODZiMVx1ODZhZlx1ODZjOVx1ODZjZlx1ODZiNFx1ODZlOVx1ODZmMVx1ODZmMlx1ODZlZFx1ODZmM1x1ODZkMFx1ODcxM1x1ODZk''@;'; + put 'put ''ZVx1ODZmNFx1ODZkZlx1ODZkOFx1ODZkMVx1ODcwM1x1ODcwN1x1ODZmOFx1ODcwOFx1ODcwYVx1ODcwZFx1ODcwOVx1ODcyM1x1ODczYlx1ODcxZVx1ODcyNVx1ODcyZVx1ODcxYVx1ODczZVx1ODc0OFx1ODczNFx1ODczMVx1ODcyOVx1ODczN1x1ODczZlx1ODc4Mlx1ODcyMlx1ODc3ZFx1''@;'; + put 'put ''ODc3ZVx1ODc3Ylx1ODc2MFx1ODc3MFx1ODc0Y1x1ODc2ZVx1ODc4Ylx1ODc1M1x1ODc2M1x1ODc3Y1x1ODc2NFx1ODc1OVx1ODc2NVx1ODc5M1x1ODdhZlx1ODdhOFx1ODdkMlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQyXVtFXS5jaGFy''@;'; + put 'put ''Q29kZUF0KDApJiYobWVbQlsyNDJdW0VdXT02MTk1MitFLExbNjE5NTIrRV09QlsyNDJdW0VdKTtmb3IoQlsyNDNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg3YzZcdTg3ODhcdTg3ODVcdTg3YWRcdTg3OTdcdTg3ODNcdTg3YWJcdTg3ZTVcdTg3YWNcdTg3YjVcdTg3YjNcdTg3Y2JcdTg3ZDNcdTg3YmRcdTg3ZDFcdTg3YzBcdTg3Y2FcdTg3ZGJcdTg3ZWFcdTg3ZTBc''@;'; + put 'put ''dTg3ZWVcdTg4MTZcdTg4MTNcdTg3ZmVcdTg4MGFcdTg4MWJcdTg4MjFcdTg4MzlcdTg4M2NcdTdmMzZcdTdmNDJcdTdmNDRcdTdmNDVcdTgyMTBcdTdhZmFcdTdhZmRcdTdiMDhcdTdiMDNcdTdiMDRcdTdiMTVcdTdiMGFcdTdiMmJcdTdiMGZcdTdiNDdcdTdiMzhcdTdiMmFcdTdiMTlcdTdi''@;'; + put 'put ''MmVcdTdiMzFcdTdiMjBcdTdiMjVcdTdiMjRcdTdiMzNcdTdiM2VcdTdiMWVcdTdiNThcdTdiNWFcdTdiNDVcdTdiNzVcdTdiNGNcdTdiNWRcdTdiNjBcdTdiNmVcdTdiN2JcdTdiNjJcdTdiNzJcdTdiNzFcdTdiOTBcdTdiYTZcdTdiYTdcdTdiYjhcdTdiYWNcdTdiOWRcdTdiYThcdTdiODVc''@;'; + put 'put ''dTdiYWFcdTdiOWNcdTdiYTJcdTdiYWJcdTdiYjRcdTdiZDFcdTdiYzFcdTdiY2NcdTdiZGRcdTdiZGFcdTdiZTVcdTdiZTZcdTdiZWFcdTdjMGNcdTdiZmVcdTdiZmNcdTdjMGZcdTdjMTZcdTdjMGJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDNdLmxlbmd0aDsrK0UpNjU1MzMhPT1C''@;'; + put 'put ''WzI0M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQzXVtFXV09NjIyMDgrRSxMWzYyMjA4K0VdPUJbMjQzXVtFXSk7Zm9yKEJbMjQ0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YzFmXHU3YzJhXHU3YzI2XHU3YzM4XHU3YzQxXHU3YzQwXHU4MWZlXHU4MjAxXHU4MjAyXHU4MjA0XHU4MWVjXHU4ODQ0XHU4MjIxXHU4MjIyXHU4MjIzXHU4MjJkXHU4MjJmXHU4MjI4''@;'; + put 'put ''XHU4MjJiXHU4MjM4XHU4MjNiXHU4MjMzXHU4MjM0XHU4MjNlXHU4MjQ0XHU4MjQ5XHU4MjRiXHU4MjRmXHU4MjVhXHU4MjVmXHU4MjY4XHU4ODdlXHU4ODg1XHU4ODg4XHU4OGQ4XHU4OGRmXHU4OTVlXHU3ZjlkXHU3ZjlmXHU3ZmE3XHU3ZmFmXHU3ZmIwXHU3ZmIyXHU3YzdjXHU2NTQ5XHU3''@;'; + put 'put ''YzkxXHU3YzlkXHU3YzljXHU3YzllXHU3Y2EyXHU3Y2IyXHU3Y2JjXHU3Y2JkXHU3Y2MxXHU3Y2M3XHU3Y2NjXHU3Y2NkXHU3Y2M4XHU3Y2M1XHU3Y2Q3XHU3Y2U4XHU4MjZlXHU2NmE4XHU3ZmJmXHU3ZmNlXHU3ZmQ1XHU3ZmU1XHU3ZmUxXHU3ZmU2XHU3ZmU5XHU3ZmVlXHU3ZmYzXHU3Y2Y4''@;'; + put 'put ''XHU3ZDc3XHU3ZGE2XHU3ZGFlXHU3ZTQ3XHU3ZTliXHU5ZWI4XHU5ZWI0XHU4ZDczXHU4ZDg0XHU4ZDk0XHU4ZDkxXHU4ZGIxXHU4ZDY3XHU4ZDZkXHU4YzQ3XHU4YzQ5XHU5MTRhXHU5MTUwXHU5MTRlXHU5MTRmXHU5MTY0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ0XS5sZW5ndGg7''@;'; + put 'put ''KytFKTY1NTMzIT09QlsyNDRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0NF1bRV1dPTYyNDY0K0UsTFs2MjQ2NCtFXT1CWzI0NF1bRV0pO2ZvcihCWzI0NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTE2Mlx1OTE2MVx1OTE3MFx1OTE2OVx1OTE2Zlx1OTE3ZFx1OTE3ZVx1OTE3Mlx1OTE3NFx1OTE3OVx1OTE4Y1x1OTE4NVx1OTE5MFx1OTE4ZFx1OTE5MVx1OTFh''@;'; + put 'put ''Mlx1OTFhM1x1OTFhYVx1OTFhZFx1OTFhZVx1OTFhZlx1OTFiNVx1OTFiNFx1OTFiYVx1OGM1NVx1OWU3ZVx1OGRiOFx1OGRlYlx1OGUwNVx1OGU1OVx1OGU2OVx1OGRiNVx1OGRiZlx1OGRiY1x1OGRiYVx1OGRjNFx1OGRkNlx1OGRkN1x1OGRkYVx1OGRkZVx1OGRjZVx1OGRjZlx1OGRkYlx1''@;'; + put 'put ''OGRjNlx1OGRlY1x1OGRmN1x1OGRmOFx1OGRlM1x1OGRmOVx1OGRmYlx1OGRlNFx1OGUwOVx1OGRmZFx1OGUxNFx1OGUxZFx1OGUxZlx1OGUyY1x1OGUyZVx1OGUyM1x1OGUyZlx1OGUzYVx1OGU0MFx1OGUzOVx1OGUzNVx1OGUzZFx1OGUzMVx1OGU0OVx1OGU0MVx1OGU0Mlx1OGU1MVx1OGU1''@;'; + put 'put ''Mlx1OGU0YVx1OGU3MFx1OGU3Nlx1OGU3Y1x1OGU2Zlx1OGU3NFx1OGU4NVx1OGU4Zlx1OGU5NFx1OGU5MFx1OGU5Y1x1OGU5ZVx1OGM3OFx1OGM4Mlx1OGM4YVx1OGM4NVx1OGM5OFx1OGM5NFx1NjU5Ylx1ODlkNlx1ODlkZVx1ODlkYVx1ODlkY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1C''@;'; + put 'put ''WzI0NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDVdW0VdXT02MjcyMCtFLExbNjI3MjArRV09QlsyNDVdW0VdKTtmb3IoQlsyNDZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg5ZTVcdTg5ZWJcdTg5ZWZcdThhM2VcdThiMjZcdTk3NTNcdTk2ZTlcdTk2ZjNcdTk2ZWZcdTk3MDZcdTk3MDFcdTk3MDhcdTk3MGZcdTk3''@;'; + put 'put ''MGVcdTk3MmFcdTk3MmRcdTk3MzBcdTk3M2VcdTlmODBcdTlmODNcdTlmODVcdTlmODZcdTlmODdcdTlmODhcdTlmODlcdTlmOGFcdTlmOGNcdTllZmVcdTlmMGJcdTlmMGRcdTk2YjlcdTk2YmNcdTk2YmRcdTk2Y2VcdTk2ZDJcdTc3YmZcdTk2ZTBcdTkyOGVcdTkyYWVcdTkyYzhcdTkzM2Vc''@;'; + put 'put ''dTkzNmFcdTkzY2FcdTkzOGZcdTk0M2VcdTk0NmJcdTljN2ZcdTljODJcdTljODVcdTljODZcdTljODdcdTljODhcdTdhMjNcdTljOGJcdTljOGVcdTljOTBcdTljOTFcdTljOTJcdTljOTRcdTljOTVcdTljOWFcdTljOWJcdTljOWVcdTljOWZcdTljYTBcdTljYTFcdTljYTJcdTljYTNcdTlj''@;'; + put 'put ''YTVcdTljYTZcdTljYTdcdTljYThcdTljYTlcdTljYWJcdTljYWRcdTljYWVcdTljYjBcdTljYjFcdTljYjJcdTljYjNcdTljYjRcdTljYjVcdTljYjZcdTljYjdcdTljYmFcdTljYmJcdTljYmNcdTljYmRcdTljYzRcdTljYzVcdTljYzZcdTljYzdcdTljY2FcdTljY2JcdWZmZmQiLnNwbGl0''@;'; + put 'put ''KCIiKSxFPTA7RSE9QlsyNDZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ2XVtFXV09NjI5NzYrRSxMWzYyOTc2K0VdPUJbMjQ2XVtFXSk7Zm9yKEJbMjQ3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5Y2NjXHU5Y2NkXHU5Y2NlXHU5Y2NmXHU5Y2QwXHU5Y2QzXHU5Y2Q0XHU5Y2Q1XHU5Y2Q3XHU5Y2Q4XHU5Y2Q5XHU5''@;'; + put 'put ''Y2RjXHU5Y2RkXHU5Y2RmXHU5Y2UyXHU5NzdjXHU5Nzg1XHU5NzkxXHU5NzkyXHU5Nzk0XHU5N2FmXHU5N2FiXHU5N2EzXHU5N2IyXHU5N2I0XHU5YWIxXHU5YWIwXHU5YWI3XHU5ZTU4XHU5YWI2XHU5YWJhXHU5YWJjXHU5YWMxXHU5YWMwXHU5YWM1XHU5YWMyXHU5YWNiXHU5YWNjXHU5YWQx''@;'; + put 'put ''XHU5YjQ1XHU5YjQzXHU5YjQ3XHU5YjQ5XHU5YjQ4XHU5YjRkXHU5YjUxXHU5OGU4XHU5OTBkXHU5OTJlXHU5OTU1XHU5OTU0XHU5YWRmXHU5YWUxXHU5YWU2XHU5YWVmXHU5YWViXHU5YWZiXHU5YWVkXHU5YWY5XHU5YjA4XHU5YjBmXHU5YjEzXHU5YjFmXHU5YjIzXHU5ZWJkXHU5ZWJlXHU3''@;'; + put 'put ''ZTNiXHU5ZTgyXHU5ZTg3XHU5ZTg4XHU5ZThiXHU5ZTkyXHU5M2Q2XHU5ZTlkXHU5ZTlmXHU5ZWRiXHU5ZWRjXHU5ZWRkXHU5ZWUwXHU5ZWRmXHU5ZWUyXHU5ZWU5XHU5ZWU3XHU5ZWU1XHU5ZWVhXHU5ZWVmXHU5ZjIyXHU5ZjJjXHU5ZjJmXHU5ZjM5XHU5ZjM3XHU5ZjNkXHU5ZjNlXHU5ZjQ0''@;'; + put 'put ''XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0N11bRV1dPTYzMjMyK0UsTFs2MzIzMitFXT1CWzI0N11bRV0pO3JldHVybntlbmM6bWUsZGVjOkx9fSgpLEplWzEwMDI5XT1mdW5jdGlvbigp''@;'; + put 'put ''e2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RF''@;'; + put 'put ''RkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM0XHUwMTAwXHUwMTAxXHhjOVx1MDEwNFx4ZDZceGRjXHhlMVx1MDEwNVx1MDEwY1x4ZTRcdTAxMGRcdTAxMDZcdTAxMDdceGU5XHUwMTc5XHUwMTdhXHUwMTBlXHhlZFx1MDEw''@;'; + put 'put ''Zlx1MDExMlx1MDExM1x1MDExNlx4ZjNcdTAxMTdceGY0XHhmNlx4ZjVceGZhXHUwMTFhXHUwMTFiXHhmY1x1MjAyMFx4YjBcdTAxMThceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJcdTAxMTlceGE4XHUyMjYwXHUwMTIzXHUwMTJlXHUwMTJmXHUwMTJhXHUyMjY0XHUyMjY1''@;'; + put 'put ''XHUwMTJiXHUwMTM2XHUyMjAyXHUyMjExXHUwMTQyXHUwMTNiXHUwMTNjXHUwMTNkXHUwMTNlXHUwMTM5XHUwMTNhXHUwMTQ1XHUwMTQ2XHUwMTQzXHhhY1x1MjIxYVx1MDE0NFx1MDE0N1x1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx1MDE0OFx1MDE1MFx4ZDVcdTAxNTFcdTAxNGNcdTIwMTNc''@;'; + put 'put ''dTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHUwMTRkXHUwMTU0XHUwMTU1XHUwMTU4XHUyMDM5XHUyMDNhXHUwMTU5XHUwMTU2XHUwMTU3XHUwMTYwXHUyMDFhXHUyMDFlXHUwMTYxXHUwMTVhXHUwMTViXHhjMVx1MDE2NFx1MDE2NVx4Y2RcdTAxN2RcdTAxN2VcdTAx''@;'; + put 'put ''NmFceGQzXHhkNFx1MDE2Ylx1MDE2ZVx4ZGFcdTAxNmZcdTAxNzBcdTAxNzFcdTAxNzJcdTAxNzNceGRkXHhmZFx1MDEzN1x1MDE3Ylx1MDE0MVx1MDE3Y1x1MDEyMlx1MDJjNyIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNo''@;'; + put 'put ''YXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTAwNzldPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZc''@;'; + put 'put ''eDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNc''@;'; + put 'put ''eGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4ZWRceGVjXHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHhkZFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBceGM2''@;'; + put 'put ''XHhkOFx1MjIxZVx4YjFcdTIyNjRcdTIyNjVceGE1XHhiNVx1MjIwMlx1MjIxMVx1MjIwZlx1MDNjMFx1MjIyYlx4YWFceGJhXHUyMTI2XHhlNlx4ZjhceGJmXHhhMVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBceGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNc''@;'; + put 'put ''dTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHhmZlx1MDE3OFx1MjA0NFx4YTRceGQwXHhmMFx4ZGVceGZlXHhmZFx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRh''@;'; + put 'put ''XHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUwMmRhXHhiOFx1MDJkZFx1MDJkYlx1MDJjNyIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7''@;'; + put 'put ''cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTAwODFdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgx''@;'; + put 'put ''ZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhl''@;'; + put 'put ''OVx4ZThceGVhXHhlYlx4ZWRceGVjXHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHUyMDIwXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4''@;'; + put 'put ''YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAx''@;'; + put 'put ''OFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUwMTFlXHUwMTFmXHUwMTMwXHUwMTMxXHUwMTVlXHUwMTVmXHUyMDIxXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhjY1x4ZDNceGQ0XHVmZmZkXHhkMlx4ZGFceGRiXHhkOVx1ZmZmZFx1''@;'; + put 'put ''MDJjNlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3IixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVj''@;'; + put 'put ''Om1lfX0oKSxKZVsyODU5MV09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygp''@;'; + put 'put ''KissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5''@;'; + put 'put ''Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJi''@;'; + put 'put ''XHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2ZceGQwXHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHhkZFx4ZGVceGRmXHhlMFx4ZTFceGUyXHhlM1x4ZTRc''@;'; + put 'put ''eGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx4ZjBceGYxXHhmMlx4ZjNceGY0XHhmNVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNceGZkXHhmZVx4ZmYiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYm''@;'; + put 'put ''KEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLFhlLmV4cG9ydHMmJiJ1bmRlZmluZWQiPT10eXBlb2YgRE9fTk9UX0VYUE9SVF9DT0RFUEFHRSYmKFhlLmV4cG9ydHM9SmUpLGZ1bmN0aW9uKEwsbWUpeyJ1c2Ugc3RyaWN0IjtpZih2''@;'; + put 'put ''b2lkIDA9PT1KZSl7dmFyIEI9SmU7WGUuZXhwb3J0cyYmInVuZGVmaW5lZCI9PXR5cGVvZiBET19OT1RfRVhQT1JUX0NPREVQQUdFP1hlLmV4cG9ydHM9bWUoQik6TC5jcHRhYmxlPW1lKEIpfWVsc2UgSmU9bWUoSmUpfSh0aGlzLGZ1bmN0aW9uKEwpeyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9ezEy''@;'; + put 'put ''MDA6InV0ZjE2bGUiLDEyMDE6InV0ZjE2YmUiLDEyZTM6InV0ZjMybGUiLDEyMDAxOiJ1dGYzMmJlIiwxNjk2OToidXRmNjRsZSIsMjAxMjc6ImFzY2lpIiw2NWUzOiJ1dGY3Iiw2NTAwMToidXRmOCJ9LEI9Wzg3NCwxMjUwLDEyNTEsMTI1MiwxMjUzLDEyNTQsMTI1NSwxMjU2LDFlNF0sRT1b''@;'; + put 'put ''OTMyLDkzNiw5NDksOTUwXSxNZT1bNjUwMDFdLFU9e30sUT17fSxaPXt9LGllPXt9LGxlPWZ1bmN0aW9uKFYpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKFYpfSxZPWZ1bmN0aW9uKFYpe3JldHVybiBWLmNoYXJDb2RlQXQoMCl9LFc9InVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXIsTj1m''@;'; + put 'put ''dW5jdGlvbigpe307aWYoVyl7dmFyIGVlPSFCdWZmZXIuZnJvbTtpZighZWUpdHJ5e0J1ZmZlci5mcm9tKCJmb28iLCJ1dGY4Iil9Y2F0Y2goUCl7ZWU9ITB9Tj1lZT9mdW5jdGlvbihQLFYpe3JldHVybiBWP25ldyBCdWZmZXIoUCxWKTpuZXcgQnVmZmVyKFApfTpCdWZmZXIuZnJvbS5iaW5k''@;'; + put 'put ''KEJ1ZmZlciksQnVmZmVyLmFsbG9jVW5zYWZlfHwoQnVmZmVyLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKFApe3JldHVybiBuZXcgQnVmZmVyKFApfSk7dmFyIHE9MTAyNCxKPUJ1ZmZlci5hbGxvY1Vuc2FmZShxKSxvZT1mdW5jdGlvbihWKXt2YXIgVD1mdW5jdGlvbihWKXtmb3IodmFyIFQ9QnVm''@;'; + put 'put ''ZmVyLmFsbG9jVW5zYWZlKDY1NTM2KSxTPTA7Uzw2NTUzNjsrK1MpVFtTXT0wO2Zvcih2YXIgRj1PYmplY3Qua2V5cyhWKSx5ZT1GLmxlbmd0aCxDZT0wLERlPUZbQ2VdO0NlPHllOysrQ2UpIShEZT1GW0NlXSl8fChUW0RlLmNoYXJDb2RlQXQoMCldPVZbRGVdKTtyZXR1cm4gVH0oTFtWXS5l''@;'; + put 'put ''bmMpO3JldHVybiBmdW5jdGlvbihGLHllKXt2YXIgRGUsQ2U9Ri5sZW5ndGgsUGU9MCxRZT0wLCRlPTAsZ3Q9MDtpZigic3RyaW5nIj09dHlwZW9mIEYpZm9yKERlPUJ1ZmZlci5hbGxvY1Vuc2FmZShDZSksUGU9MDtQZTxDZTsrK1BlKURlW1BlXT1UW0YuY2hhckNvZGVBdChQZSldO2Vsc2Ug''@;'; + put 'put ''aWYoQnVmZmVyLmlzQnVmZmVyKEYpKXtmb3IoRGU9QnVmZmVyLmFsbG9jVW5zYWZlKDIqQ2UpLFFlPTAsUGU9MDtQZTxDZTsrK1BlKSgkZT1GW1BlXSk8MTI4P0RlW1FlKytdPVRbJGVdOiRlPDIyND8oRGVbUWUrK109VFsoKDMxJiRlKTw8NikrKDYzJkZbUGUrMV0pXSwrK1BlKTokZTwyNDA/''@;'; + put 'put ''KERlW1FlKytdPVRbKCgxNSYkZSk8PDEyKSsoKDYzJkZbUGUrMV0pPDw2KSsoNjMmRltQZSsyXSldLFBlKz0yKTooZ3Q9KCg3JiRlKTw8MTgpKygoNjMmRltQZSsxXSk8PDEyKSsoKDYzJkZbUGUrMl0pPDw2KSsoNjMmRltQZSszXSksUGUrPTMsZ3Q8NjU1MzY/RGVbUWUrK109VFtndF06KERl''@;'; + put 'put ''W1FlKytdPVRbNTUyOTYrKChndC09NjU1MzYpPj4xMCYxMDIzKV0sRGVbUWUrK109VFs1NjMyMCsoMTAyMyZndCldKSk7RGU9RGUuc2xpY2UoMCxRZSl9ZWxzZSBmb3IoRGU9QnVmZmVyLmFsbG9jVW5zYWZlKENlKSxQZT0wO1BlPENlOysrUGUpRGVbUGVdPVRbRltQZV0uY2hhckNvZGVBdCgw''@;'; + put 'put ''KV07cmV0dXJuIHllJiYiYnVmIiE9PXllPyJhcnIiIT09eWU/RGUudG9TdHJpbmcoImJpbmFyeSIpOltdLnNsaWNlLmNhbGwoRGUpOkRlfX0sY2U9ZnVuY3Rpb24oVil7dmFyIFQ9TFtWXS5kZWMsUz1CdWZmZXIuYWxsb2NVbnNhZmUoMTMxMDcyKSxGPTAseWU9IiI7Zm9yKEY9MDtGPFQubGVu''@;'; + put 'put ''Z3RoOysrRilpZih5ZT1UW0ZdKXt2YXIgQ2U9eWUuY2hhckNvZGVBdCgwKTtTWzIqRl09MjU1JkNlLFNbMipGKzFdPUNlPj44fXJldHVybiBmdW5jdGlvbihQZSl7dmFyIFFlPVBlLmxlbmd0aCwkZT0wLGd0PTA7aWYoMipRZT5xJiYocT0yKlFlLEo9QnVmZmVyLmFsbG9jVW5zYWZlKHEpKSxC''@;'; + put 'put ''dWZmZXIuaXNCdWZmZXIoUGUpKWZvcigkZT0wOyRlPFFlOyRlKyspSlsyKiRlXT1TW2d0PTIqUGVbJGVdXSxKWzIqJGUrMV09U1tndCsxXTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgUGUpZm9yKCRlPTA7JGU8UWU7JGUrKylndD0yKlBlLmNoYXJDb2RlQXQoJGUpLEpbMiokZV09U1tndF0s''@;'; + put 'put ''SlsyKiRlKzFdPVNbZ3QrMV07ZWxzZSBmb3IoJGU9MDskZTxRZTskZSsrKUpbMiokZV09U1tndD0yKlBlWyRlXV0sSlsyKiRlKzFdPVNbZ3QrMV07cmV0dXJuIEouc2xpY2UoMCwyKlFlKS50b1N0cmluZygidWNzMiIpfX0sZGU9ZnVuY3Rpb24oVil7Zm9yKHZhciBUPUxbVl0uZW5jLFM9QnVm''@;'; + put 'put ''ZmVyLmFsbG9jVW5zYWZlKDEzMTA3MiksRj0wO0Y8MTMxMDcyOysrRilTW0ZdPTA7Zm9yKHZhciB5ZT1PYmplY3Qua2V5cyhUKSxDZT0wLERlPXllW0NlXTtDZTx5ZS5sZW5ndGg7KytDZSlpZihEZT15ZVtDZV0pe3ZhciBQZT1EZS5jaGFyQ29kZUF0KDApO1NbMipQZV09MjU1JlRbRGVdLFNb''@;'; + put 'put ''MipQZSsxXT1UW0RlXT4+OH1yZXR1cm4gZnVuY3Rpb24oJGUsZ3Qpe3ZhciB3dD0kZS5sZW5ndGgsdnQ9QnVmZmVyLmFsbG9jVW5zYWZlKDIqd3QpLEF0PTAsbXQ9MCxodD0wLEJ0PTAsb249MDtpZigic3RyaW5nIj09dHlwZW9mICRlKXtmb3IoQXQ9QnQ9MDtBdDx3dDsrK0F0KW10PTIqJGUu''@;'; + put 'put ''Y2hhckNvZGVBdChBdCksdnRbQnQrK109U1ttdCsxXXx8U1ttdF0sU1ttdCsxXT4wJiYodnRbQnQrK109U1ttdF0pO3Z0PXZ0LnNsaWNlKDAsQnQpfWVsc2UgaWYoQnVmZmVyLmlzQnVmZmVyKCRlKSl7Zm9yKEF0PUJ0PTA7QXQ8d3Q7KytBdCkob249JGVbQXRdKTwxMjg/bXQ9b246b248MjI0''@;'; + put 'put ''PyhtdD0oKDMxJm9uKTw8NikrKDYzJiRlW0F0KzFdKSwrK0F0KTpvbjwyNDA/KG10PSgoMTUmb24pPDwxMikrKCg2MyYkZVtBdCsxXSk8PDYpKyg2MyYkZVtBdCsyXSksQXQrPTIpOihtdD0oKDcmb24pPDwxOCkrKCg2MyYkZVtBdCsxXSk8PDEyKSsoKDYzJiRlW0F0KzJdKTw8NikrKDYzJiRl''@;'; + put 'put ''W0F0KzNdKSxBdCs9MyksbXQ8NjU1MzY/KHZ0W0J0KytdPVNbMSsobXQqPTIpXXx8U1ttdF0sU1ttdCsxXT4wJiYodnRbQnQrK109U1ttdF0pKToodnRbQnQrK109U1sxKyhtdD0yKig1NTI5NisoKGh0PW10LTY1NTM2KT4+MTAmMTAyMykpKV18fFNbbXRdLFNbbXQrMV0+MCYmKHZ0W0J0Kytd''@;'; + put 'put ''PVNbbXRdKSx2dFtCdCsrXT1TWzErKG10PTIqKDU2MzIwKygxMDIzJmh0KSkpXXx8U1ttdF0sU1ttdCsxXT4wJiYodnRbQnQrK109U1ttdF0pKTt2dD12dC5zbGljZSgwLEJ0KX1lbHNlIGZvcihBdD1CdD0wO0F0PHd0O0F0KyspbXQ9MiokZVtBdF0uY2hhckNvZGVBdCgwKSx2dFtCdCsrXT1T''@;'; + put 'put ''W210KzFdfHxTW210XSxTW210KzFdPjAmJih2dFtCdCsrXT1TW210XSk7cmV0dXJuIGd0JiYiYnVmIiE9PWd0PyJhcnIiIT09Z3Q/dnQudG9TdHJpbmcoImJpbmFyeSIpOltdLnNsaWNlLmNhbGwodnQpOnZ0fX0sdmU9ZnVuY3Rpb24oVil7dmFyIHllLFQ9TFtWXS5kZWMsUz1CdWZmZXIuYWxs''@;'; + put 'put ''b2NVbnNhZmUoMTMxMDcyKSxGPTAsQ2U9MCxEZT0wLFBlPTA7Zm9yKFBlPTA7UGU8NjU1MzY7KytQZSlTWzIqUGVdPTI1NSxTWzIqUGUrMV09MjUzO2ZvcihGPTA7RjxULmxlbmd0aDsrK0YpISh5ZT1UW0ZdKXx8KENlPXllLmNoYXJDb2RlQXQoMCksU1tEZT0yKkZdPTI1NSZDZSxTW0RlKzFd''@;'; + put 'put ''PUNlPj44KTtyZXR1cm4gZnVuY3Rpb24oJGUpe3ZhciBndD0kZS5sZW5ndGgsd3Q9QnVmZmVyLmFsbG9jVW5zYWZlKDIqZ3QpLHZ0PTAsQXQ9MCxtdD0wO2lmKEJ1ZmZlci5pc0J1ZmZlcigkZSkpZm9yKHZ0PTA7dnQ8Z3Q7dnQrKykyNTU9PT1TW0F0PTIqJGVbdnRdXSYmMjUzPT09U1tBdCsx''@;'; + put 'put ''XSYmKEF0PTIqKCgkZVt2dF08PDgpKyRlW3Z0KzFdKSwrK3Z0KSx3dFttdCsrXT1TW0F0XSx3dFttdCsrXT1TW0F0KzFdO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiAkZSlmb3IodnQ9MDt2dDxndDt2dCsrKUF0PTIqJGUuY2hhckNvZGVBdCh2dCksMjU1PT09U1tBdF0mJjI1Mz09PVNbQXQr''@;'; + put 'put ''MV0mJihBdD0yKigoJGUuY2hhckNvZGVBdCh2dCk8PDgpKyRlLmNoYXJDb2RlQXQodnQrMSkpLCsrdnQpLHd0W210KytdPVNbQXRdLHd0W210KytdPVNbQXQrMV07ZWxzZSBmb3IodnQ9MDt2dDxndDt2dCsrKTI1NT09PVNbQXQ9MiokZVt2dF1dJiYyNTM9PT1TW0F0KzFdJiYoQXQ9MiooKCRl''@;'; + put 'put ''W3Z0XTw8OCkrJGVbdnQrMV0pLCsrdnQpLHd0W210KytdPVNbQXRdLHd0W210KytdPVNbQXQrMV07cmV0dXJuIHd0LnNsaWNlKDAsbXQpLnRvU3RyaW5nKCJ1Y3MyIil9fTtVWzY1MDAxXT1mdW5jdGlvbiBQKFYpe2lmKCJzdHJpbmciPT10eXBlb2YgVilyZXR1cm4gUChWLnNwbGl0KCIiKS5t''@;'; + put 'put ''YXAoWSkpO3ZhciBUPVYubGVuZ3RoLFM9MCxGPTA7NCpUPnEmJihxPTQqVCxKPUJ1ZmZlci5hbGxvY1Vuc2FmZShxKSk7dmFyIHllPTA7VD49MyYmMjM5PT1WWzBdJiYxODc9PVZbMV0mJjE5MT09VlsyXSYmKHllPTMpO2Zvcih2YXIgQ2U9MSxEZT0wLFBlPTA7eWU8VDt5ZSs9Q2UpQ2U9MSwo''@;'; + put 'put ''UGU9Vlt5ZV0pPDEyOD9TPVBlOlBlPDIyND8oUz02NCooMzEmUGUpKyg2MyZWW3llKzFdKSxDZT0yKTpQZTwyNDA/KFM9KCgxNSZQZSk8PDEyKSs2NCooNjMmVlt5ZSsxXSkrKDYzJlZbeWUrMl0pLENlPTMpOihTPTI2MjE0NCooNyZQZSkrKCg2MyZWW3llKzFdKTw8MTIpKzY0Kig2MyZWW3ll''@;'; + put 'put ''KzJdKSsoNjMmVlt5ZSszXSksQ2U9NCksUzw2NTUzNj8oSltEZSsrXT0yNTUmUyxKW0RlKytdPVM+PjgpOihGPTU1Mjk2KygoUy09NjU1MzYpPj4xMCYxMDIzKSxTPTU2MzIwKygxMDIzJlMpLEpbRGUrK109MjU1JkYsSltEZSsrXT1GPj4+OCxKW0RlKytdPTI1NSZTLEpbRGUrK109Uz4+Pjgm''@;'; + put 'put ''MjU1KTtyZXR1cm4gSi5zbGljZSgwLERlKS50b1N0cmluZygidWNzMiIpfSxRWzY1MDAxXT1mdW5jdGlvbihWLFQpe2lmKFcmJkJ1ZmZlci5pc0J1ZmZlcihWKSlyZXR1cm4gVCYmImJ1ZiIhPT1UPyJhcnIiIT09VD9WLnRvU3RyaW5nKCJiaW5hcnkiKTpbXS5zbGljZS5jYWxsKFYpOlY7dmFy''@;'; + put 'put ''IFM9Vi5sZW5ndGgsRj0wLHllPTAsQ2U9MCxEZT0ic3RyaW5nIj09dHlwZW9mIFY7NCpTPnEmJihxPTQqUyxKPUJ1ZmZlci5hbGxvY1Vuc2FmZShxKSk7Zm9yKHZhciBQZT0wO1BlPFM7KytQZSkoRj1EZT9WLmNoYXJDb2RlQXQoUGUpOlZbUGVdLmNoYXJDb2RlQXQoMCkpPD0xMjc/SltDZSsr''@;'; + put 'put ''XT1GOkY8PTIwNDc/KEpbQ2UrK109MTkyKyhGPj42KSxKW0NlKytdPTEyOCsoNjMmRikpOkY+PTU1Mjk2JiZGPD01NzM0Mz8oRi09NTUyOTYsKytQZSx5ZT0oRGU/Vi5jaGFyQ29kZUF0KFBlKTpWW1BlXS5jaGFyQ29kZUF0KDApKS01NjMyMCsoRjw8MTApLEpbQ2UrK109MjQwKyh5ZT4+PjE4''@;'; + put 'put ''JjcpLEpbQ2UrK109MTQ0Kyh5ZT4+PjEyJjYzKSxKW0NlKytdPTEyOCsoeWU+Pj42JjYzKSxKW0NlKytdPTEyOCsoNjMmeWUpKTooSltDZSsrXT0yMjQrKEY+PjEyKSxKW0NlKytdPTEyOCsoRj4+NiY2MyksSltDZSsrXT0xMjgrKDYzJkYpKTtyZXR1cm4gVCYmImJ1ZiIhPT1UPyJhcnIiIT09''@;'; + put 'put ''VD9KLnNsaWNlKDAsQ2UpLnRvU3RyaW5nKCJiaW5hcnkiKTpbXS5zbGljZS5jYWxsKEosMCxDZSk6Si5zbGljZSgwLENlKX19dmFyIEFlPWZ1bmN0aW9uKCl7aWYoVyl7aWYoWltCWzBdXSlyZXR1cm47dmFyIFY9MCxUPTA7Zm9yKFY9MDtWPEIubGVuZ3RoOysrVilMW1Q9QltWXV0mJihaW1Rd''@;'; + put 'put ''PWNlKFQpLGllW1RdPW9lKFQpKTtmb3IoVj0wO1Y8RS5sZW5ndGg7KytWKUxbVD1FW1ZdXSYmKFpbVF09dmUoVCksaWVbVF09ZGUoVCkpO2ZvcihWPTA7VjxNZS5sZW5ndGg7KytWKVVbVD1NZVtWXV0mJihaW1RdPVVbVF0pLFFbVF0mJihpZVtUXT1RW1RdKX19LGtlPWZ1bmN0aW9uKFAsVil7''@;'; + put 'put ''cmV0dXJuIiJ9LFNlPWZ1bmN0aW9uKFYpe2RlbGV0ZSBaW1ZdLGRlbGV0ZSBpZVtWXX0sVGU9e2VuY2FjaGU6QWUsZGVjYWNoZTpmdW5jdGlvbigpe2lmKFcpe2lmKCFaW0JbMF1dKXJldHVybjtCLmZvckVhY2goU2UpLEUuZm9yRWFjaChTZSksTWUuZm9yRWFjaChTZSl9Tz1rZSx6PTB9LHNi''@;'; + put 'put ''Y3M6QixkYmNzOkV9O0FlKCk7dmFyIEVlPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixPPWtlLHo9MDtyZXR1cm4gTC51dGlscz17ZGVjb2RlOmZ1bmN0aW9uIFAoVixUKXt2YXIgUztpZihTPVpbVl0pcmV0dXJuIFMo''@;'; + put 'put ''VCk7aWYoInN0cmluZyI9PXR5cGVvZiBUKXJldHVybiBQKFYsVC5zcGxpdCgiIikubWFwKFkpKTt2YXIgdnQsRj1ULmxlbmd0aCx5ZT1uZXcgQXJyYXkoRiksQ2U9IiIsRGU9MCxQZT0wLFFlPTEsJGU9MCxndD0wLHd0PUxbVl0sQXQ9IiI7aWYod3QmJih2dD13dC5kZWMpKWZvcihQZT0wO1Bl''@;'; + put 'put ''PEY7UGUrPVFlKXtpZihRZT0yLChDZT12dFsoVFtQZV08PDgpK1RbUGUrMV1dKXx8KFFlPTEsQ2U9dnRbVFtQZV1dKSwhQ2UpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgY29kZTogIitUW1BlXSsiICIrVFtQZStRZS0xXSsiICIrUGUrIiAiK1FlKyIgIit2dFtUW1BlXV0pO3llWyRl''@;'; + put 'put ''KytdPUNlfWVsc2V7aWYoIShBdD1tZVtWXSkpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgQ1A6ICIrVik7c3dpdGNoKEF0KXtjYXNlInV0ZjgiOmZvcihGPj0zJiYyMzk9PVRbMF0mJjE4Nz09VFsxXSYmMTkxPT1UWzJdJiYoUGU9Myk7UGU8RjtQZSs9UWUpUWU9MSxUW1BlXTwxMjg/''@;'; + put 'put ''RGU9VFtQZV06VFtQZV08MjI0PyhEZT02NCooMzEmVFtQZV0pKyg2MyZUW1BlKzFdKSxRZT0yKTpUW1BlXTwyNDA/KERlPSgoMTUmVFtQZV0pPDwxMikrNjQqKDYzJlRbUGUrMV0pKyg2MyZUW1BlKzJdKSxRZT0zKTooRGU9MjYyMTQ0Kig3JlRbUGVdKSsoKDYzJlRbUGUrMV0pPDwxMikrNjQq''@;'; + put 'put ''KDYzJlRbUGUrMl0pKyg2MyZUW1BlKzNdKSxRZT00KSxEZTw2NTUzNnx8KGd0PTU1Mjk2KygoRGUtPTY1NTM2KT4+MTAmMTAyMyksRGU9NTYzMjArKDEwMjMmRGUpLHllWyRlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoZ3QpKSx5ZVskZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKERlKTticmVh''@;'; + put 'put ''aztjYXNlImFzY2lpIjppZihXJiZCdWZmZXIuaXNCdWZmZXIoVCkpcmV0dXJuIFQudG9TdHJpbmcoQXQpO2ZvcihQZT0wO1BlPEY7UGUrKyl5ZVtQZV09U3RyaW5nLmZyb21DaGFyQ29kZShUW1BlXSk7JGU9RjticmVhaztjYXNlInV0ZjE2bGUiOmlmKEY+PTImJjI1NT09VFswXSYmMjU0PT1U''@;'; + put 'put ''WzFdJiYoUGU9MiksVyYmQnVmZmVyLmlzQnVmZmVyKFQpKXJldHVybiBULnRvU3RyaW5nKEF0KTtmb3IoUWU9MjtQZSsxPEY7UGUrPVFlKXllWyRlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoKFRbUGUrMV08PDgpK1RbUGVdKTticmVhaztjYXNlInV0ZjE2YmUiOmZvcihGPj0yJiYyNTQ9PVRb''@;'; + put 'put ''MF0mJjI1NT09VFsxXSYmKFBlPTIpLFFlPTI7UGUrMTxGO1BlKz1RZSl5ZVskZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKChUW1BlXTw8OCkrVFtQZSsxXSk7YnJlYWs7Y2FzZSJ1dGYzMmxlIjpmb3IoRj49NCYmMjU1PT1UWzBdJiYyNTQ9PVRbMV0mJjA9PT1UWzJdJiYwPT09VFszXSYmKFBl''@;'; + put 'put ''PTQpLFFlPTQ7UGU8RjtQZSs9UWUpKERlPShUW1BlKzNdPDwyNCkrKFRbUGUrMl08PDE2KSsoVFtQZSsxXTw8OCkrVFtQZV0pPjY1NTM1PyhEZS09NjU1MzYseWVbJGUrK109U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NisoRGU+PjEwJjEwMjMpKSx5ZVskZSsrXT1TdHJpbmcuZnJvbUNoYXJD''@;'; + put 'put ''b2RlKDU2MzIwKygxMDIzJkRlKSkpOnllWyRlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoRGUpO2JyZWFrO2Nhc2UidXRmMzJiZSI6Zm9yKEY+PTQmJjI1NT09VFszXSYmMjU0PT1UWzJdJiYwPT09VFsxXSYmMD09PVRbMF0mJihQZT00KSxRZT00O1BlPEY7UGUrPVFlKShEZT0oVFtQZV08PDI0''@;'; + put 'put ''KSsoVFtQZSsxXTw8MTYpKyhUW1BlKzJdPDw4KStUW1BlKzNdKT42NTUzNT8oRGUtPTY1NTM2LHllWyRlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKERlPj4xMCYxMDIzKSkseWVbJGUrK109U3RyaW5nLmZyb21DaGFyQ29kZSg1NjMyMCsoMTAyMyZEZSkpKTp5ZVskZSsrXT1TdHJp''@;'; + put 'put ''bmcuZnJvbUNoYXJDb2RlKERlKTticmVhaztjYXNlInV0ZjciOmZvcihGPj00JiY0Mz09VFswXSYmNDc9PVRbMV0mJjExOD09VFsyXSYmKEY+PTUmJjU2PT1UWzNdJiY0NT09VFs0XT9QZT01Oig1Nj09VFszXXx8NTc9PVRbM118fDQzPT1UWzNdfHw0Nz09VFszXSkmJihQZT00KSk7UGU8RjtQ''@;'; + put 'put ''ZSs9UWUpaWYoNDM9PT1UW1BlXSlpZihRZT0xLDQ1IT09VFtQZSsxXSl7Zm9yKDtTdHJpbmcuZnJvbUNoYXJDb2RlKFRbUGUrUWVdKS5tYXRjaCgvW0EtWmEtejAtOStcL10vKTspUWUrKzt2YXIgbXQ9MDs0NT09PVRbUGUrUWVdJiYoKytRZSxtdD0xKTtmb3IodmFyIGh0PVtdLEJ0PSIiLGV0''@;'; + put 'put ''PTAsYXQ9MCxMdD0wLEN0PTAsZnQ9MTtmdDxRZS1tdCYmKGV0PUVlLmluZGV4T2YoU3RyaW5nLmZyb21DaGFyQ29kZShUW1BlK2Z0KytdKSksYXQ9RWUuaW5kZXhPZihTdHJpbmcuZnJvbUNoYXJDb2RlKFRbUGUrZnQrK10pKSxodC5wdXNoKGV0PDwyfGF0Pj40KSwtMSE9PShMdD1FZS5pbmRl''@;'; + put 'put ''eE9mKFN0cmluZy5mcm9tQ2hhckNvZGUoVFtQZStmdCsrXSkpKSYmKGh0LnB1c2goKDE1JmF0KTw8NHxMdD4+MiksLTEhPT0oQ3Q9RWUuaW5kZXhPZihTdHJpbmcuZnJvbUNoYXJDb2RlKFRbUGUrZnQrK10pKSkpKTspQ3Q8NjQmJmh0LnB1c2goKDMmTHQpPDw2fEN0KTtmb3IoQnQ9UCgxMjAx''@;'; + put 'put ''LGh0KSxmdD0wO2Z0PEJ0Lmxlbmd0aDsrK2Z0KXllWyRlKytdPUJ0LmNoYXJBdChmdCl9ZWxzZSBRZT0yLHllWyRlKytdPSIrIjtlbHNlIFFlPTEseWVbJGUrK109U3RyaW5nLmZyb21DaGFyQ29kZShUW1BlXSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIG1h''@;'; + put 'put ''Z2ljOiAiK1YrIiAiK21lW1ZdKX19cmV0dXJuIHllLnNsaWNlKDAsJGUpLmpvaW4oIiIpfSxlbmNvZGU6ZnVuY3Rpb24gUChWLFQsUyl7aWYoVj09PXomJk8pcmV0dXJuIE8oVCxTKTtpZihpZVtWXSlyZXR1cm4oTz1pZVt6PVZdKShULFMpO1cmJkJ1ZmZlci5pc0J1ZmZlcihUKSYmKFQ9VC50''@;'; + put 'put ''b1N0cmluZygidXRmOCIpKTt2YXIgZ3QsRj1ULmxlbmd0aCx5ZT1XP0J1ZmZlci5hbGxvY1Vuc2FmZSg0KkYpOltdLENlPTAsRGU9MCxQZT0wLFFlPTAsJGU9TFtWXSx3dD0iIix2dD0ic3RyaW5nIj09dHlwZW9mIFQ7aWYoJGUmJihndD0kZS5lbmMpKWZvcihEZT0wO0RlPEY7KytEZSwrK1Bl''@;'; + put 'put ''KShDZT1ndFt2dD9ULmNoYXJBdChEZSk6VFtEZV1dKT4yNTU/KHllW1BlXT1DZT4+OCx5ZVsrK1BlXT0yNTUmQ2UpOnllW1BlXT0yNTUmQ2U7ZWxzZXtpZighKHd0PW1lW1ZdKSl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBDUDogIitWKTtzd2l0Y2god3Qpe2Nhc2UidXRmOCI6aWYo''@;'; + put 'put ''VyYmdnQpe1BlPSh5ZT1OKFQsd3QpKS5sZW5ndGg7YnJlYWt9Zm9yKERlPTA7RGU8RjsrK0RlLCsrUGUpKENlPXZ0P1QuY2hhckNvZGVBdChEZSk6VFtEZV0uY2hhckNvZGVBdCgwKSk8PTEyNz95ZVtQZV09Q2U6Q2U8PTIwNDc/KHllW1BlXT0xOTIrKENlPj42KSx5ZVsrK1BlXT0xMjgrKDYz''@;'; + put 'put ''JkNlKSk6Q2U+PTU1Mjk2JiZDZTw9NTczNDM/KENlLT01NTI5NixRZT0odnQ/VC5jaGFyQ29kZUF0KCsrRGUpOlRbKytEZV0uY2hhckNvZGVBdCgwKSktNTYzMjArKENlPDwxMCkseWVbUGVdPTI0MCsoUWU+Pj4xOCY3KSx5ZVsrK1BlXT0xNDQrKFFlPj4+MTImNjMpLHllWysrUGVdPTEyOCso''@;'; + put 'put ''UWU+Pj42JjYzKSx5ZVsrK1BlXT0xMjgrKDYzJlFlKSk6KHllW1BlXT0yMjQrKENlPj4xMikseWVbKytQZV09MTI4KyhDZT4+NiY2MykseWVbKytQZV09MTI4Kyg2MyZDZSkpO2JyZWFrO2Nhc2UiYXNjaWkiOmlmKFcmJiJzdHJpbmciPT10eXBlb2YgVCl7UGU9KHllPU4oVCx3dCkpLmxlbmd0''@;'; + put 'put ''aDticmVha31mb3IoRGU9MDtEZTxGOysrRGUsKytQZSl7aWYoISgoQ2U9dnQ/VC5jaGFyQ29kZUF0KERlKTpUW0RlXS5jaGFyQ29kZUF0KDApKTw9MTI3KSl0aHJvdyBuZXcgRXJyb3IoImJhZCBhc2NpaSAiK0NlKTt5ZVtQZV09Q2V9YnJlYWs7Y2FzZSJ1dGYxNmxlIjppZihXJiYic3RyaW5n''@;'; + put 'put ''Ij09dHlwZW9mIFQpe1BlPSh5ZT1OKFQsd3QpKS5sZW5ndGg7YnJlYWt9Zm9yKERlPTA7RGU8RjsrK0RlKUNlPXZ0P1QuY2hhckNvZGVBdChEZSk6VFtEZV0uY2hhckNvZGVBdCgwKSx5ZVtQZSsrXT0yNTUmQ2UseWVbUGUrK109Q2U+Pjg7YnJlYWs7Y2FzZSJ1dGYxNmJlIjpmb3IoRGU9MDtE''@;'; + put 'put ''ZTxGOysrRGUpQ2U9dnQ/VC5jaGFyQ29kZUF0KERlKTpUW0RlXS5jaGFyQ29kZUF0KDApLHllW1BlKytdPUNlPj44LHllW1BlKytdPTI1NSZDZTticmVhaztjYXNlInV0ZjMybGUiOmZvcihEZT0wO0RlPEY7KytEZSkoQ2U9dnQ/VC5jaGFyQ29kZUF0KERlKTpUW0RlXS5jaGFyQ29kZUF0KDAp''@;'; + put 'put ''KT49NTUyOTYmJkNlPD01NzM0MyYmKENlPTY1NTM2KyhDZS01NTI5Njw8MTApKyhUWysrRGVdLmNoYXJDb2RlQXQoMCktNTYzMjApKSx5ZVtQZSsrXT0yNTUmQ2UseWVbUGUrK109MjU1JihDZT4+PTgpLHllW1BlKytdPTI1NSYoQ2U+Pj04KSx5ZVtQZSsrXT0yNTUmKENlPj49OCk7YnJlYWs7''@;'; + put 'put ''Y2FzZSJ1dGYzMmJlIjpmb3IoRGU9MDtEZTxGOysrRGUpKENlPXZ0P1QuY2hhckNvZGVBdChEZSk6VFtEZV0uY2hhckNvZGVBdCgwKSk+PTU1Mjk2JiZDZTw9NTczNDMmJihDZT02NTUzNisoQ2UtNTUyOTY8PDEwKSsoVFsrK0RlXS5jaGFyQ29kZUF0KDApLTU2MzIwKSkseWVbUGUrM109MjU1''@;'; + put 'put ''JkNlLHllW1BlKzJdPTI1NSYoQ2U+Pj04KSx5ZVtQZSsxXT0yNTUmKENlPj49OCkseWVbUGVdPTI1NSYoQ2U+Pj04KSxQZSs9NDticmVhaztjYXNlInV0ZjciOmZvcihEZT0wO0RlPEY7RGUrKyl7dmFyIEF0PXZ0P1QuY2hhckF0KERlKTpUW0RlXS5jaGFyQXQoMCk7aWYoIisiIT09QXQpaWYo''@;'; + put 'put ''IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JygpLC0uLzo/Ii5pbmRleE9mKEF0KT4tMSl5ZVtQZSsrXT1BdC5jaGFyQ29kZUF0KDApO2Vsc2V7dmFyIG10PVAoMTIwMSxBdCk7eWVbUGUrK109NDMseWVbUGUrK109RWUuY2hh''@;'; + put 'put ''ckNvZGVBdChtdFswXT4+MikseWVbUGUrK109RWUuY2hhckNvZGVBdCgoKDMmbXRbMF0pPDw0KSsoKG10WzFdfHwwKT4+NCkpLHllW1BlKytdPUVlLmNoYXJDb2RlQXQoKCgxNSZtdFsxXSk8PDIpKygobXRbMl18fDApPj42KSkseWVbUGUrK109NDV9ZWxzZSB5ZVtQZSsrXT00Myx5ZVtQZSsr''@;'; + put 'put ''XT00NX1icmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgbWFnaWM6ICIrVisiICIrbWVbVl0pfX1yZXR1cm4geWU9eWUuc2xpY2UoMCxQZSksVz9TJiYiYnVmIiE9PVM/ImFyciIhPT1TP3llLnRvU3RyaW5nKCJiaW5hcnkiKTpbXS5zbGljZS5jYWxsKHllKTp5ZToi''@;'; + put 'put ''c3RyIj09Uz95ZS5tYXAobGUpLmpvaW4oIiIpOnllfSxoYXNjcDpmdW5jdGlvbihWKXtyZXR1cm4hKCFMW1ZdJiYhbWVbVl0pfSxtYWdpYzptZSxjYWNoZTpUZX0sTH0pfSw2OTk2MzooWGUsSmUpPT57dmFyIEwsbWUsQjshZnVuY3Rpb24oRSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBET19O''@;'; + put 'put ''T1RfRVhQT1JUX0pTWklQKVhlLmV4cG9ydHM9RSgpO2Vsc2UgaWYoInVuZGVmaW5lZCI9PXR5cGVvZiBET19OT1RfRVhQT1JUX0pTWklQKUpTWmlwU3luYz1FKCksbWU9W10sdm9pZCAwIT09KEI9ImZ1bmN0aW9uIj09dHlwZW9mKEw9RSk/TC5hcHBseShKZSxtZSk6TCkmJihYZS5leHBvcnRz''@;'; + put 'put ''PUIpO2Vsc2V7dmFyIE1lOyJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9NZT1nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P01lPXdpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9NZT1nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiAkJiYkLmdsb2Jh''@;'; + put 'put ''bD9NZT0kLmdsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJihNZT1zZWxmKSxNZS5KU1ppcFN5bmM9RSgpfX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gUShaLGllLGxlKXtmdW5jdGlvbiBZKGVlLHEpe2lmKCFpZVtlZV0pe2lmKCFaW2VlXSl7aWYoVylyZXR1cm4gVyhlZSwh''@;'; + put 'put ''MCk7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrZWUrIiciKX12YXIgc2U9aWVbZWVdPXtleHBvcnRzOnt9fTtaW2VlXVswXS5jYWxsKHNlLmV4cG9ydHMsZnVuY3Rpb24ob2Upe3JldHVybiBZKFpbZWVdWzFdW29lXXx8b2UpfSxzZSxzZS5leHBvcnRzLFEsWixpZSxs''@;'; + put 'put ''ZSl9cmV0dXJuIGllW2VlXS5leHBvcnRzfWZvcih2YXIgVz12b2lkIDAsTj0wO048bGUubGVuZ3RoO04rKylZKGxlW05dKTtyZXR1cm4gWX0oezE6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBsZT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9w''@;'; + put 'put ''cXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iO2llLmVuY29kZT1mdW5jdGlvbihZLFcpe2Zvcih2YXIgZWUscSxKLHNlLG9lLGNlLGRlLE49IiIsdmU9MDt2ZTxZLmxlbmd0aDspc2U9KGVlPVkuY2hhckNvZGVBdCh2ZSsrKSk+PjIsb2U9KDMmZWUpPDw0fChxPVkuY2hhckNvZGVBdCh2ZSsrKSk+''@;'; + put 'put ''PjQsY2U9KDE1JnEpPDwyfChKPVkuY2hhckNvZGVBdCh2ZSsrKSk+PjYsZGU9NjMmSixpc05hTihxKT9jZT1kZT02NDppc05hTihKKSYmKGRlPTY0KSxOPU4rbGUuY2hhckF0KHNlKStsZS5jaGFyQXQob2UpK2xlLmNoYXJBdChjZSkrbGUuY2hhckF0KGRlKTtyZXR1cm4gTn0saWUuZGVjb2Rl''@;'; + put 'put ''PWZ1bmN0aW9uKFksVyl7dmFyIHEsSixzZSxvZSxjZSxkZSxOPSIiLHZlPTA7Zm9yKFk9WS5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywiIik7dmU8WS5sZW5ndGg7KXNlPWxlLmluZGV4T2YoWS5jaGFyQXQodmUrKykpLHE9KDE1JihvZT1sZS5pbmRleE9mKFkuY2hhckF0KHZlKysp''@;'; + put 'put ''KSkpPDw0fChjZT1sZS5pbmRleE9mKFkuY2hhckF0KHZlKyspKSk+PjIsSj0oMyZjZSk8PDZ8KGRlPWxlLmluZGV4T2YoWS5jaGFyQXQodmUrKykpKSxOKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHNlPDwyfG9lPj40KSw2NCE9Y2UmJihOKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHEpKSw2NCE9ZGUm''@;'; + put 'put ''JihOKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEopKTtyZXR1cm4gTn19LHt9XSwyOltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsZSgpe3RoaXMuY29tcHJlc3NlZFNpemU9MCx0aGlzLnVuY29tcHJlc3NlZFNpemU9MCx0aGlzLmNyYzMyPTAsdGhpcy5jb21wcmVzc2lv''@;'; + put 'put ''bk1ldGhvZD1udWxsLHRoaXMuY29tcHJlc3NlZENvbnRlbnQ9bnVsbH1sZS5wcm90b3R5cGU9e2dldENvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZ2V0Q29tcHJlc3NlZENvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH19LFouZXhwb3J0cz1sZX0se31dLDM6W2Z1bmN0aW9u''@;'; + put 'put ''KFEsWixpZSl7InVzZSBzdHJpY3QiO2llLlNUT1JFPXttYWdpYzoiXDBcMCIsY29tcHJlc3M6ZnVuY3Rpb24obGUpe3JldHVybiBsZX0sdW5jb21wcmVzczpmdW5jdGlvbihsZSl7cmV0dXJuIGxlfSxjb21wcmVzc0lucHV0VHlwZTpudWxsLHVuY29tcHJlc3NJbnB1dFR5cGU6bnVsbH0saWUu''@;'; + put 'put ''REVGTEFURT1RKCIuL2ZsYXRlIil9LHsiLi9mbGF0ZSI6OH1dLDQ6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBsZT1RKCIuL3V0aWxzIiksWT1bMCwxOTk2OTU5ODk0LDM5OTM5MTk3ODgsMjU2NzUyNDc5NCwxMjQ2MzQxMzcsMTg4NjA1NzYxNSwzOTE1NjIxNjg1LDI2NTcz''@;'; + put 'put ''OTIwMzUsMjQ5MjY4Mjc0LDIwNDQ1MDgzMjQsMzc3MjExNTIzMCwyNTQ3MTc3ODY0LDE2Mjk0MTk5NSwyMTI1NTYxMDIxLDM4ODc2MDcwNDcsMjQyODQ0NDA0OSw0OTg1MzY1NDgsMTc4OTkyNzY2Niw0MDg5MDE2NjQ4LDIyMjcwNjEyMTQsNDUwNTQ4ODYxLDE4NDMyNTg2MDMsNDEwNzU4MDc1''@;'; + put 'put ''MywyMjExNjc3NjM5LDMyNTg4Mzk5MCwxNjg0Nzc3MTUyLDQyNTExMjIwNDIsMjMyMTkyNjYzNiwzMzU2MzM0ODcsMTY2MTM2NTQ2NSw0MTk1MzAyNzU1LDIzNjYxMTUzMTcsOTk3MDczMDk2LDEyODE5NTM4ODYsMzU3OTg1NTMzMiwyNzI0Njg4MjQyLDEwMDY4ODgxNDUsMTI1ODYwNzY4Nywz''@;'; + put 'put ''NTI0MTAxNjI5LDI3Njg5NDI0NDMsOTAxMDk3NzIyLDExMTkwMDA2ODQsMzY4NjUxNzIwNiwyODk4MDY1NzI4LDg1MzA0NDQ1MSwxMTcyMjY2MTAxLDM3MDUwMTU3NTksMjg4MjYxNjY2NSw2NTE3Njc5ODAsMTM3MzUwMzU0NiwzMzY5NTU0MzA0LDMyMTgxMDQ1OTgsNTY1NTA3MjUzLDE0NTQ2''@;'; + put 'put ''MjE3MzEsMzQ4NTExMTcwNSwzMDk5NDM2MzAzLDY3MTI2Njk3NCwxNTk0MTk4MDI0LDMzMjI3MzA5MzAsMjk3MDM0NzgxMiw3OTU4MzU1MjcsMTQ4MzIzMDIyNSwzMjQ0MzY3Mjc1LDMwNjAxNDk1NjUsMTk5NDE0NjE5MiwzMTE1ODUzNCwyNTYzOTA3NzcyLDQwMjM3MTc5MzAsMTkwNzQ1OTQ2''@;'; + put 'put ''NSwxMTI2MzcyMTUsMjY4MDE1MzI1MywzOTA0NDI3MDU5LDIwMTM3NzYyOTAsMjUxNzIyMDM2LDI1MTcyMTUzNzQsMzc3NTgzMDA0MCwyMTM3NjU2NzYzLDE0MTM3NjgxMywyNDM5Mjc3NzE5LDM4NjUyNzEyOTcsMTgwMjE5NTQ0NCw0NzY4NjQ4NjYsMjIzODAwMTM2OCw0MDY2NTA4ODc4LDE4''@;'; + put 'put ''MTIzNzA5MjUsNDUzMDkyNzMxLDIxODE2MjUwMjUsNDExMTQ1MTIyMywxNzA2MDg4OTAyLDMxNDA0MjcwNCwyMzQ0NTMyMjAyLDQyNDAwMTc1MzIsMTY1ODY1ODI3MSwzNjY2MTk5NzcsMjM2MjY3MDMyMyw0MjI0OTk0NDA1LDEzMDM1MzU5NjAsOTg0OTYxNDg2LDI3NDcwMDcwOTIsMzU2OTAz''@;'; + put 'put ''NzUzOCwxMjU2MTcwODE3LDEwMzc2MDQzMTEsMjc2NTIxMDczMywzNTU0MDc5OTk1LDExMzEwMTQ1MDYsODc5Njc5OTk2LDI5MDkyNDM0NjIsMzY2Mzc3MTg1NiwxMTQxMTI0NDY3LDg1NTg0MjI3NywyODUyODAxNjMxLDM3MDg2NDg2NDksMTM0MjUzMzk0OCw2NTQ0NTkzMDYsMzE4ODM5NjA0''@;'; + put 'put ''OCwzMzczMDE1MTc0LDE0NjY0Nzk5MDksNTQ0MTc5NjM1LDMxMTA1MjM5MTMsMzQ2MjUyMjAxNSwxNTkxNjcxMDU0LDcwMjEzODc3NiwyOTY2NDYwNDUwLDMzNTI3OTk0MTIsMTUwNDkxODgwNyw3ODM1NTE4NzMsMzA4MjY0MDQ0MywzMjMzNDQyOTg5LDM5ODgyOTIzODQsMjU5NjI1NDY0Niw2''@;'; + put 'put ''MjMxNzA2OCwxOTU3ODEwODQyLDM5Mzk4NDU5NDUsMjY0NzgxNjExMSw4MTQ3MDk5NywxOTQzODAzNTIzLDM4MTQ5MTg5MzAsMjQ4OTU5NjgwNCwyMjUyNzQ0MzAsMjA1Mzc5MDM3NiwzODI2MTc1NzU1LDI0NjY5MDYwMTMsMTY3ODE2NzQzLDIwOTc2NTEzNzcsNDAyNzU1MjU4MCwyMjY1NDkw''@;'; + put 'put ''Mzg2LDUwMzQ0NDA3MiwxNzYyMDUwODE0LDQxNTA0MTcyNDUsMjE1NDEyOTM1NSw0MjY1MjIyMjUsMTg1MjUwNzg3OSw0Mjc1MzEzNTI2LDIzMTIzMTc5MjAsMjgyNzUzNjI2LDE3NDI1NTU4NTIsNDE4OTcwODE0MywyMzk0ODc3OTQ1LDM5NzkxNzc2MywxNjIyMTgzNjM3LDM2MDQzOTA4ODgs''@;'; + put 'put ''MjcxNDg2NjU1OCw5NTM3Mjk3MzIsMTM0MDA3NjYyNiwzNTE4NzE5OTg1LDI3OTczNjA5OTksMTA2ODgyODM4MSwxMjE5NjM4ODU5LDM2MjQ3NDE4NTAsMjkzNjY3NTE0OCw5MDYxODU0NjIsMTA5MDgxMjUxMiwzNzQ3NjcyMDAzLDI4MjUzNzk2NjksODI5MzI5MTM1LDExODEzMzUxNjEsMzQx''@;'; + put 'put ''MjE3NzgwNCwzMTYwODM0ODQyLDYyODA4NTQwOCwxMzgyNjA1MzY2LDM0MjMzNjkxMDksMzEzODA3ODQ2Nyw1NzA1NjIyMzMsMTQyNjQwMDgxNSwzMzE3MzE2NTQyLDI5OTg3MzM2MDgsNzMzMjM5OTU0LDE1NTUyNjE5NTYsMzI2ODkzNTU5MSwzMDUwMzYwNjI1LDc1MjQ1OTQwMywxNTQxMzIw''@;'; + put 'put ''MjIxLDI2MDcwNzE5MjAsMzk2NTk3MzAzMCwxOTY5OTIyOTcyLDQwNzM1NDk4LDI2MTc4MzcyMjUsMzk0MzU3NzE1MSwxOTEzMDg3ODc3LDgzOTA4MzcxLDI1MTIzNDE2MzQsMzgwMzc0MDY5MiwyMDc1MjA4NjIyLDIxMzI2MTExMiwyNDYzMjcyNjAzLDM4NTU5OTAyODUsMjA5NDg1NDA3MSwx''@;'; + put 'put ''OTg5NTg4ODEsMjI2MjAyOTAxMiw0MDU3MjYwNjEwLDE3NTkzNTk5OTIsNTM0NDE0MTkwLDIxNzY3MTg1NDEsNDEzOTMyOTExNSwxODczODM2MDAxLDQxNDY2NDU2NywyMjgyMjQ4OTM0LDQyNzkyMDAzNjgsMTcxMTY4NDU1NCwyODUyODExMTYsMjQwNTgwMTcyNyw0MTY3MjE2NzQ1LDE2MzQ0''@;'; + put 'put ''Njc3OTUsMzc2MjI5NzAxLDI2ODUwNjc4OTYsMzYwODAwNzQwNiwxMzA4OTE4NjEyLDk1NjU0MzkzOCwyODA4NTU1MTA1LDM0OTU5NTgyNjMsMTIzMTYzNjMwMSwxMDQ3NDI3MDM1LDI5MzI5NTk4MTgsMzY1NDcwMzgzNiwxMDg4MzU5MjcwLDkzNjkxOGUzLDI4NDc3MTQ4OTksMzczNjgzNzgy''@;'; + put 'put ''OSwxMjAyOTAwODYzLDgxNzIzMzg5NywzMTgzMzQyMTA4LDM0MDEyMzcxMzAsMTQwNDI3NzU1Miw2MTU4MTgxNTAsMzEzNDIwNzQ5MywzNDUzNDIxMjAzLDE0MjM4NTc0NDksNjAxNDUwNDMxLDMwMDk4Mzc2MTQsMzI5NDcxMDQ1NiwxNTY3MTAzNzQ2LDcxMTkyODcyNCwzMDIwNjY4NDcxLDMy''@;'; + put 'put ''NzIzODAwNjUsMTUxMDMzNDIzNSw3NTUxNjcxMTddO1ouZXhwb3J0cz1mdW5jdGlvbihOLGVlKXtpZih2b2lkIDA9PT1OfHwhTi5sZW5ndGgpcmV0dXJuIDA7dmFyIHE9InN0cmluZyIhPT1sZS5nZXRUeXBlT2YoTik7dm9pZCAwPT09ZWUmJihlZT0wKTt2YXIgb2U9MDtlZV49LTE7Zm9yKHZh''@;'; + put 'put ''ciBjZT0wLGRlPU4ubGVuZ3RoO2NlPGRlO2NlKyspb2U9cT9OW2NlXTpOLmNoYXJDb2RlQXQoY2UpLGVlPWVlPj4+OF5ZWzI1NSYoZWVeb2UpXTtyZXR1cm4tMV5lZX19LHsiLi91dGlscyI6MjF9XSw1OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbGU9USgiLi91dGlscyIp''@;'; + put 'put ''O2Z1bmN0aW9uIFkoVyl7dGhpcy5kYXRhPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLmluZGV4PTB9WS5wcm90b3R5cGU9e2NoZWNrT2Zmc2V0OmZ1bmN0aW9uKFcpe3RoaXMuY2hlY2tJbmRleCh0aGlzLmluZGV4K1cpfSxjaGVja0luZGV4OmZ1bmN0aW9uKFcpe2lmKHRoaXMubGVuZ3RoPFd8''@;'; + put 'put ''fFc8MCl0aHJvdyBuZXcgRXJyb3IoIkVuZCBvZiBkYXRhIHJlYWNoZWQgKGRhdGEgbGVuZ3RoID0gIit0aGlzLmxlbmd0aCsiLCBhc2tlZCBpbmRleCA9ICIrVysiKS4gQ29ycnVwdGVkIHppcCA/Iil9LHNldEluZGV4OmZ1bmN0aW9uKFcpe3RoaXMuY2hlY2tJbmRleChXKSx0aGlzLmluZGV4''@;'; + put 'put ''PVd9LHNraXA6ZnVuY3Rpb24oVyl7dGhpcy5zZXRJbmRleCh0aGlzLmluZGV4K1cpfSxieXRlQXQ6ZnVuY3Rpb24oVyl7fSxyZWFkSW50OmZ1bmN0aW9uKFcpe3ZhciBlZSxOPTA7Zm9yKHRoaXMuY2hlY2tPZmZzZXQoVyksZWU9dGhpcy5pbmRleCtXLTE7ZWU+PXRoaXMuaW5kZXg7ZWUtLSlO''@;'; + put 'put ''PShOPDw4KSt0aGlzLmJ5dGVBdChlZSk7cmV0dXJuIHRoaXMuaW5kZXgrPVcsTn0scmVhZFN0cmluZzpmdW5jdGlvbihXKXtyZXR1cm4gbGUudHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy5yZWFkRGF0YShXKSl9LHJlYWREYXRhOmZ1bmN0aW9uKFcpe30sbGFzdEluZGV4T2ZTaWduYXR1cmU6''@;'; + put 'put ''ZnVuY3Rpb24oVyl7fSxyZWFkRGF0ZTpmdW5jdGlvbigpe3ZhciBXPXRoaXMucmVhZEludCg0KTtyZXR1cm4gbmV3IERhdGUoMTk4MCsoVz4+MjUmMTI3KSwoVz4+MjEmMTUpLTEsVz4+MTYmMzEsVz4+MTEmMzEsVz4+NSY2MywoMzEmVyk8PDEpfX0sWi5leHBvcnRzPVl9LHsiLi91dGlscyI6''@;'; + put 'put ''MjF9XSw2OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0IjtpZS5iYXNlNjQ9ITEsaWUuYmluYXJ5PSExLGllLmRpcj0hMSxpZS5jcmVhdGVGb2xkZXJzPSExLGllLmRhdGU9bnVsbCxpZS5jb21wcmVzc2lvbj1udWxsLGllLmNvbW1lbnQ9bnVsbH0se31dLDc6W2Z1bmN0aW9uKFEsWixp''@;'; + put 'put ''ZSl7InVzZSBzdHJpY3QiO3ZhciBsZT1RKCIuL3V0aWxzIik7aWUuc3RyaW5nMmJpbmFyeT1mdW5jdGlvbihZKXtyZXR1cm4gbGUuc3RyaW5nMmJpbmFyeShZKX0saWUuc3RyaW5nMlVpbnQ4QXJyYXk9ZnVuY3Rpb24oWSl7cmV0dXJuIGxlLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixZKX0s''@;'; + put 'put ''aWUudWludDhBcnJheTJTdHJpbmc9ZnVuY3Rpb24oWSl7cmV0dXJuIGxlLnRyYW5zZm9ybVRvKCJzdHJpbmciLFkpfSxpZS5zdHJpbmcyQmxvYj1mdW5jdGlvbihZKXt2YXIgVz1sZS50cmFuc2Zvcm1UbygiYXJyYXlidWZmZXIiLFkpO3JldHVybiBsZS5hcnJheUJ1ZmZlcjJCbG9iKFcpfSxp''@;'; + put 'put ''ZS5hcnJheUJ1ZmZlcjJCbG9iPWZ1bmN0aW9uKFkpe3JldHVybiBsZS5hcnJheUJ1ZmZlcjJCbG9iKFkpfSxpZS50cmFuc2Zvcm1Ubz1mdW5jdGlvbihZLFcpe3JldHVybiBsZS50cmFuc2Zvcm1UbyhZLFcpfSxpZS5nZXRUeXBlT2Y9ZnVuY3Rpb24oWSl7cmV0dXJuIGxlLmdldFR5cGVPZihZ''@;'; + put 'put ''KX0saWUuY2hlY2tTdXBwb3J0PWZ1bmN0aW9uKFkpe3JldHVybiBsZS5jaGVja1N1cHBvcnQoWSl9LGllLk1BWF9WQUxVRV8xNkJJVFM9bGUuTUFYX1ZBTFVFXzE2QklUUyxpZS5NQVhfVkFMVUVfMzJCSVRTPWxlLk1BWF9WQUxVRV8zMkJJVFMsaWUucHJldHR5PWZ1bmN0aW9uKFkpe3JldHVy''@;'; + put 'put ''biBsZS5wcmV0dHkoWSl9LGllLmZpbmRDb21wcmVzc2lvbj1mdW5jdGlvbihZKXtyZXR1cm4gbGUuZmluZENvbXByZXNzaW9uKFkpfSxpZS5pc1JlZ0V4cD1mdW5jdGlvbihZKXtyZXR1cm4gbGUuaXNSZWdFeHAoWSl9fSx7Ii4vdXRpbHMiOjIxfV0sODpbZnVuY3Rpb24oUSxaLGllKXsidXNl''@;'; + put 'put ''IHN0cmljdCI7dmFyIGxlPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50MTZBcnJheSYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50MzJBcnJheSxZPVEoInBha28iKTtpZS51bmNvbXByZXNzSW5wdXRUeXBlPWxlPyJ1aW50OGFycmF5Ijoi''@;'; + put 'put ''YXJyYXkiLGllLmNvbXByZXNzSW5wdXRUeXBlPWxlPyJ1aW50OGFycmF5IjoiYXJyYXkiLGllLm1hZ2ljPSJcYlwwIixpZS5jb21wcmVzcz1mdW5jdGlvbihXKXtyZXR1cm4gWS5kZWZsYXRlUmF3KFcpfSxpZS51bmNvbXByZXNzPWZ1bmN0aW9uKFcpe3JldHVybiBZLmluZmxhdGVSYXcoVyl9''@;'; + put 'put ''fSx7cGFrbzoyNH1dLDk6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBsZT1RKCIuL2Jhc2U2NCIpO2Z1bmN0aW9uIFkoVyxOKXtpZighKHRoaXMgaW5zdGFuY2VvZiBZKSlyZXR1cm4gbmV3IFkoVyxOKTt0aGlzLmZpbGVzPXt9LHRoaXMuY29tbWVudD1udWxsLHRoaXMucm9v''@;'; + put 'put ''dD0iIixXJiZ0aGlzLmxvYWQoVyxOKSx0aGlzLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGVlPW5ldyBZO2Zvcih2YXIgcSBpbiB0aGlzKSJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzW3FdJiYoZWVbcV09dGhpc1txXSk7cmV0dXJuIGVlfX0oWS5wcm90b3R5cGU9USgiLi9vYmplY3QiKSkubG9hZD1R''@;'; + put 'put ''KCIuL2xvYWQiKSxZLnN1cHBvcnQ9USgiLi9zdXBwb3J0IiksWS5kZWZhdWx0cz1RKCIuL2RlZmF1bHRzIiksWS51dGlscz1RKCIuL2RlcHJlY2F0ZWRQdWJsaWNVdGlscyIpLFkuYmFzZTY0PXtlbmNvZGU6ZnVuY3Rpb24oVyl7cmV0dXJuIGxlLmVuY29kZShXKX0sZGVjb2RlOmZ1bmN0aW9u''@;'; + put 'put ''KFcpe3JldHVybiBsZS5kZWNvZGUoVyl9fSxZLmNvbXByZXNzaW9ucz1RKCIuL2NvbXByZXNzaW9ucyIpLFouZXhwb3J0cz1ZfSx7Ii4vYmFzZTY0IjoxLCIuL2NvbXByZXNzaW9ucyI6MywiLi9kZWZhdWx0cyI6NiwiLi9kZXByZWNhdGVkUHVibGljVXRpbHMiOjcsIi4vbG9hZCI6MTAsIi4v''@;'; + put 'put ''b2JqZWN0IjoxMywiLi9zdXBwb3J0IjoxN31dLDEwOltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbGU9USgiLi9iYXNlNjQiKSxZPVEoIi4vemlwRW50cmllcyIpO1ouZXhwb3J0cz1mdW5jdGlvbihXLE4pe3ZhciBlZSxxLEosc2U7Zm9yKChOPU58fHt9KS5iYXNlNjQmJihX''@;'; + put 'put ''PWxlLmRlY29kZShXKSksZWU9KHE9bmV3IFkoVyxOKSkuZmlsZXMsSj0wO0o8ZWUubGVuZ3RoO0orKyl0aGlzLmZpbGUoKHNlPWVlW0pdKS5maWxlTmFtZSxzZS5kZWNvbXByZXNzZWQse2JpbmFyeTohMCxvcHRpbWl6ZWRCaW5hcnlTdHJpbmc6ITAsZGF0ZTpzZS5kYXRlLGRpcjpzZS5kaXIs''@;'; + put 'put ''Y29tbWVudDpzZS5maWxlQ29tbWVudC5sZW5ndGg/c2UuZmlsZUNvbW1lbnQ6bnVsbCxjcmVhdGVGb2xkZXJzOk4uY3JlYXRlRm9sZGVyc30pO3JldHVybiBxLnppcENvbW1lbnQubGVuZ3RoJiYodGhpcy5jb21tZW50PXEuemlwQ29tbWVudCksdGhpc319LHsiLi9iYXNlNjQiOjEsIi4vemlw''@;'; + put 'put ''RW50cmllcyI6MjJ9XSwxMTpbZnVuY3Rpb24oUSxaLGllKXsoZnVuY3Rpb24obGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgWT1mdW5jdGlvbigpe307aWYodm9pZCAwIT09bGUpe3ZhciBXPSFsZS5mcm9tO2lmKCFXKXRyeXtsZS5mcm9tKCJmb28iLCJ1dGY4Iil9Y2F0Y2goTil7Vz0hMH1ZPVc/ZnVu''@;'; + put 'put ''Y3Rpb24oTixlZSl7cmV0dXJuIGVlP25ldyBsZShOLGVlKTpuZXcgbGUoTil9OmxlLmZyb20uYmluZChsZSksbGUuYWxsb2N8fChsZS5hbGxvYz1mdW5jdGlvbihOKXtyZXR1cm4gbmV3IGxlKE4pfSl9Wi5leHBvcnRzPWZ1bmN0aW9uKE4sZWUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgTj9s''@;'; + put 'put ''ZS5hbGxvYyhOKTpZKE4sZWUpfSxaLmV4cG9ydHMudGVzdD1mdW5jdGlvbihOKXtyZXR1cm4gbGUuaXNCdWZmZXIoTil9fSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgQnVmZmVyP0J1ZmZlcjp2b2lkIDApfSx7fV0sMTI6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3Zh''@;'; + put 'put ''ciBsZT1RKCIuL3VpbnQ4QXJyYXlSZWFkZXIiKTtmdW5jdGlvbiBZKFcpe3RoaXMuZGF0YT1XLHRoaXMubGVuZ3RoPXRoaXMuZGF0YS5sZW5ndGgsdGhpcy5pbmRleD0wfShZLnByb3RvdHlwZT1uZXcgbGUpLnJlYWREYXRhPWZ1bmN0aW9uKFcpe3RoaXMuY2hlY2tPZmZzZXQoVyk7dmFyIE49''@;'; + put 'put ''dGhpcy5kYXRhLnNsaWNlKHRoaXMuaW5kZXgsdGhpcy5pbmRleCtXKTtyZXR1cm4gdGhpcy5pbmRleCs9VyxOfSxaLmV4cG9ydHM9WX0seyIuL3VpbnQ4QXJyYXlSZWFkZXIiOjE4fV0sMTM6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBsZT1RKCIuL3N1cHBvcnQiKSxZPVEo''@;'; + put 'put ''Ii4vdXRpbHMiKSxXPVEoIi4vY3JjMzIiKSxOPVEoIi4vc2lnbmF0dXJlIiksZWU9USgiLi9kZWZhdWx0cyIpLHE9USgiLi9iYXNlNjQiKSxKPVEoIi4vY29tcHJlc3Npb25zIiksc2U9USgiLi9jb21wcmVzc2VkT2JqZWN0Iiksb2U9USgiLi9ub2RlQnVmZmVyIiksY2U9USgiLi91dGY4Iiks''@;'; + put 'put ''ZGU9USgiLi9zdHJpbmdXcml0ZXIiKSx2ZT1RKCIuL3VpbnQ4QXJyYXlXcml0ZXIiKSxBZT1mdW5jdGlvbihWKXtpZihWLl9kYXRhIGluc3RhbmNlb2Ygc2UmJihWLl9kYXRhPVYuX2RhdGEuZ2V0Q29udGVudCgpLFYub3B0aW9ucy5iaW5hcnk9ITAsVi5vcHRpb25zLmJhc2U2ND0hMSwidWlu''@;'; + put 'put ''dDhhcnJheSI9PT1ZLmdldFR5cGVPZihWLl9kYXRhKSkpe3ZhciBUPVYuX2RhdGE7Vi5fZGF0YT1uZXcgVWludDhBcnJheShULmxlbmd0aCksMCE9PVQubGVuZ3RoJiZWLl9kYXRhLnNldChULDApfXJldHVybiBWLl9kYXRhfSxrZT1mdW5jdGlvbihWKXt2YXIgVD1BZShWKTtyZXR1cm4ic3Ry''@;'; + put 'put ''aW5nIj09PVkuZ2V0VHlwZU9mKFQpPyFWLm9wdGlvbnMuYmluYXJ5JiZsZS5ub2RlYnVmZmVyP29lKFQsInV0Zi04Iik6Vi5hc0JpbmFyeSgpOlR9LFNlPWZ1bmN0aW9uKFYpe3ZhciBUPUFlKHRoaXMpO3JldHVybiBudWxsPT1UPyIiOih0aGlzLm9wdGlvbnMuYmFzZTY0JiYoVD1xLmRlY29k''@;'; + put 'put ''ZShUKSksVD1WJiZ0aGlzLm9wdGlvbnMuYmluYXJ5P1AudXRmOGRlY29kZShUKTpZLnRyYW5zZm9ybVRvKCJzdHJpbmciLFQpLCFWJiYhdGhpcy5vcHRpb25zLmJpbmFyeSYmKFQ9WS50cmFuc2Zvcm1Ubygic3RyaW5nIixQLnV0ZjhlbmNvZGUoVCkpKSxUKX0sSWU9ZnVuY3Rpb24oVixULFMp''@;'; + put 'put ''e3RoaXMubmFtZT1WLHRoaXMuZGlyPVMuZGlyLHRoaXMuZGF0ZT1TLmRhdGUsdGhpcy5jb21tZW50PVMuY29tbWVudCx0aGlzLl9kYXRhPVQsdGhpcy5vcHRpb25zPVMsdGhpcy5faW5pdGlhbE1ldGFkYXRhPXtkaXI6Uy5kaXIsZGF0ZTpTLmRhdGV9fTtJZS5wcm90b3R5cGU9e2FzVGV4dDpm''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiBTZS5jYWxsKHRoaXMsITApfSxhc0JpbmFyeTpmdW5jdGlvbigpe3JldHVybiBTZS5jYWxsKHRoaXMsITEpfSxhc05vZGVCdWZmZXI6ZnVuY3Rpb24oKXt2YXIgVj1rZSh0aGlzKTtyZXR1cm4gWS50cmFuc2Zvcm1Ubygibm9kZWJ1ZmZlciIsVil9LGFzVWludDhB''@;'; + put 'put ''cnJheTpmdW5jdGlvbigpe3ZhciBWPWtlKHRoaXMpO3JldHVybiBZLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixWKX0sYXNBcnJheUJ1ZmZlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFzVWludDhBcnJheSgpLmJ1ZmZlcn19O3ZhciBUZT1mdW5jdGlvbihWLFQpe3ZhciBGLFM9IiI7Zm9y''@;'; + put 'put ''KEY9MDtGPFQ7RisrKVMrPVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JlYpLFY+Pj49ODtyZXR1cm4gU30sRWU9ZnVuY3Rpb24oKXt2YXIgVCxTLFY9e307Zm9yKFQ9MDtUPGFyZ3VtZW50cy5sZW5ndGg7VCsrKWZvcihTIGluIGFyZ3VtZW50c1tUXSlhcmd1bWVudHNbVF0uaGFzT3duUHJvcGVy''@;'; + put 'put ''dHkoUykmJnZvaWQgMD09PVZbU10mJihWW1NdPWFyZ3VtZW50c1tUXVtTXSk7cmV0dXJuIFZ9LE89ZnVuY3Rpb24oVixULFMpe3ZhciB5ZSxGPVkuZ2V0VHlwZU9mKFQpO2lmKFM9ZnVuY3Rpb24oVil7cmV0dXJuITA9PT0oVj1WfHx7fSkuYmFzZTY0JiZudWxsPT1WLmJpbmFyeSYmKFYuYmlu''@;'; + put 'put ''YXJ5PSEwKSwoVj1FZShWLGVlKSkuZGF0ZT1WLmRhdGV8fG5ldyBEYXRlLG51bGwhPT1WLmNvbXByZXNzaW9uJiYoVi5jb21wcmVzc2lvbj1WLmNvbXByZXNzaW9uLnRvVXBwZXJDYXNlKCkpLFZ9KFMpLFMuY3JlYXRlRm9sZGVycyYmKHllPXooVikpJiZuZS5jYWxsKHRoaXMseWUsITApLFMu''@;'; + put 'put ''ZGlyfHxudWxsPT1UKVMuYmFzZTY0PSExLFMuYmluYXJ5PSExLFQ9bnVsbDtlbHNlIGlmKCJzdHJpbmciPT09RilTLmJpbmFyeSYmIVMuYmFzZTY0JiYhMCE9PVMub3B0aW1pemVkQmluYXJ5U3RyaW5nJiYoVD1ZLnN0cmluZzJiaW5hcnkoVCkpO2Vsc2V7aWYoUy5iYXNlNjQ9ITEsUy5iaW5h''@;'; + put 'put ''cnk9ITAsIShGfHxUIGluc3RhbmNlb2Ygc2UpKXRocm93IG5ldyBFcnJvcigiVGhlIGRhdGEgb2YgJyIrVisiJyBpcyBpbiBhbiB1bnN1cHBvcnRlZCBmb3JtYXQgISIpOyJhcnJheWJ1ZmZlciI9PT1GJiYoVD1ZLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixUKSl9dmFyIENlPW5ldyBJZShW''@;'; + put 'put ''LFQsUyk7cmV0dXJuIHRoaXMuZmlsZXNbVl09Q2UsQ2V9LHo9ZnVuY3Rpb24oVil7Ii8iPT1WLnNsaWNlKC0xKSYmKFY9Vi5zdWJzdHJpbmcoMCxWLmxlbmd0aC0xKSk7dmFyIFQ9Vi5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBUPjA/Vi5zdWJzdHJpbmcoMCxUKToiIn0sbmU9ZnVuY3Rpb24o''@;'; + put 'put ''VixUKXtyZXR1cm4iLyIhPVYuc2xpY2UoLTEpJiYoVis9Ii8iKSxUPXZvaWQgMCE9PVQmJlQsdGhpcy5maWxlc1tWXXx8Ty5jYWxsKHRoaXMsVixudWxsLHtkaXI6ITAsY3JlYXRlRm9sZGVyczpUfSksdGhpcy5maWxlc1tWXX0sdGU9ZnVuY3Rpb24oVixUKXt2YXIgRixTPW5ldyBzZTtyZXR1''@;'; + put 'put ''cm4gVi5fZGF0YSBpbnN0YW5jZW9mIHNlPyhTLnVuY29tcHJlc3NlZFNpemU9Vi5fZGF0YS51bmNvbXByZXNzZWRTaXplLFMuY3JjMzI9Vi5fZGF0YS5jcmMzMiwwPT09Uy51bmNvbXByZXNzZWRTaXplfHxWLmRpcj8oVD1KLlNUT1JFLFMuY29tcHJlc3NlZENvbnRlbnQ9IiIsUy5jcmMzMj0w''@;'; + put 'put ''KTpWLl9kYXRhLmNvbXByZXNzaW9uTWV0aG9kPT09VC5tYWdpYz9TLmNvbXByZXNzZWRDb250ZW50PVYuX2RhdGEuZ2V0Q29tcHJlc3NlZENvbnRlbnQoKTooRj1WLl9kYXRhLmdldENvbnRlbnQoKSxTLmNvbXByZXNzZWRDb250ZW50PVQuY29tcHJlc3MoWS50cmFuc2Zvcm1UbyhULmNvbXBy''@;'; + put 'put ''ZXNzSW5wdXRUeXBlLEYpKSkpOigoIShGPWtlKFYpKXx8MD09PUYubGVuZ3RofHxWLmRpcikmJihUPUouU1RPUkUsRj0iIiksUy51bmNvbXByZXNzZWRTaXplPUYubGVuZ3RoLFMuY3JjMzI9VyhGKSxTLmNvbXByZXNzZWRDb250ZW50PVQuY29tcHJlc3MoWS50cmFuc2Zvcm1UbyhULmNvbXBy''@;'; + put 'put ''ZXNzSW5wdXRUeXBlLEYpKSksUy5jb21wcmVzc2VkU2l6ZT1TLmNvbXByZXNzZWRDb250ZW50Lmxlbmd0aCxTLmNvbXByZXNzaW9uTWV0aG9kPVQubWFnaWMsU30seD1mdW5jdGlvbihWLFQsUyxGKXt2YXIgd3QsdnQsQnQsb24sQ2U9WS50cmFuc2Zvcm1Ubygic3RyaW5nIixjZS51dGY4ZW5j''@;'; + put 'put ''b2RlKFQubmFtZSkpLERlPVQuY29tbWVudHx8IiIsUGU9WS50cmFuc2Zvcm1Ubygic3RyaW5nIixjZS51dGY4ZW5jb2RlKERlKSksUWU9Q2UubGVuZ3RoIT09VC5uYW1lLmxlbmd0aCwkZT1QZS5sZW5ndGghPT1EZS5sZW5ndGgsZ3Q9VC5vcHRpb25zLEF0PSIiLG10PSIiLGh0PSIiO0J0PVQu''@;'; + put 'put ''X2luaXRpYWxNZXRhZGF0YS5kaXIhPT1ULmRpcj9ULmRpcjpndC5kaXIsd3Q9KG9uPVQuX2luaXRpYWxNZXRhZGF0YS5kYXRlIT09VC5kYXRlP1QuZGF0ZTpndC5kYXRlKS5nZXRIb3VycygpLHd0PDw9Nix3dHw9b24uZ2V0TWludXRlcygpLHd0PDw9NSx3dHw9b24uZ2V0U2Vjb25kcygpLzIs''@;'; + put 'put ''dnQ9b24uZ2V0RnVsbFllYXIoKS0xOTgwLHZ0PDw9NCx2dHw9b24uZ2V0TW9udGgoKSsxLHZ0PDw9NSx2dHw9b24uZ2V0RGF0ZSgpLFFlJiYobXQ9VGUoMSwxKStUZShXKENlKSw0KStDZSxBdCs9InVwIitUZShtdC5sZW5ndGgsMikrbXQpLCRlJiYoaHQ9VGUoMSwxKStUZSh0aGlzLmNyYzMy''@;'; + put 'put ''KFBlKSw0KStQZSxBdCs9InVjIitUZShodC5sZW5ndGgsMikraHQpO3ZhciBfdD0iIjtyZXR1cm4gX3QrPSJcblwwIixfdCs9UWV8fCRlPyJcMFxiIjoiXDBcMCIsX3QrPVMuY29tcHJlc3Npb25NZXRob2QsX3QrPVRlKHd0LDIpLF90Kz1UZSh2dCwyKSxfdCs9VGUoUy5jcmMzMiw0KSxfdCs9''@;'; + put 'put ''VGUoUy5jb21wcmVzc2VkU2l6ZSw0KSxfdCs9VGUoUy51bmNvbXByZXNzZWRTaXplLDQpLF90Kz1UZShDZS5sZW5ndGgsMiksX3QrPVRlKEF0Lmxlbmd0aCwyKSx7ZmlsZVJlY29yZDpOLkxPQ0FMX0ZJTEVfSEVBREVSK190K0NlK0F0LGRpclJlY29yZDpOLkNFTlRSQUxfRklMRV9IRUFERVIr''@;'; + put 'put ''Ilx4MTRcMCIrX3QrVGUoUGUubGVuZ3RoLDIpKyJcMFwwXDBcMCIrKCEwPT09QnQ/Ilx4MTBcMFwwXDAiOiJcMFwwXDBcMCIpK1RlKEYsNCkrQ2UrQXQrUGUsY29tcHJlc3NlZE9iamVjdDpTfX0sUD17bG9hZDpmdW5jdGlvbihWLFQpe3Rocm93IG5ldyBFcnJvcigiTG9hZCBtZXRob2QgaXMg''@;'; + put 'put ''bm90IGRlZmluZWQuIElzIHRoZSBmaWxlIGpzemlwLWxvYWQuanMgaW5jbHVkZWQgPyIpfSxmaWx0ZXI6ZnVuY3Rpb24oVil7dmFyIFMsRix5ZSxDZSxUPVtdO2ZvcihTIGluIHRoaXMuZmlsZXMpIXRoaXMuZmlsZXMuaGFzT3duUHJvcGVydHkoUyl8fChDZT1uZXcgSWUoKHllPXRoaXMuZmls''@;'; + put 'put ''ZXNbU10pLm5hbWUseWUuX2RhdGEsRWUoeWUub3B0aW9ucykpLEY9Uy5zbGljZSh0aGlzLnJvb3QubGVuZ3RoLFMubGVuZ3RoKSxTLnNsaWNlKDAsdGhpcy5yb290Lmxlbmd0aCk9PT10aGlzLnJvb3QmJlYoRixDZSkmJlQucHVzaChDZSkpO3JldHVybiBUfSxmaWxlOmZ1bmN0aW9uKFYsVCxT''@;'; + put 'put ''KXtpZigxPT09YXJndW1lbnRzLmxlbmd0aCl7aWYoWS5pc1JlZ0V4cChWKSl7dmFyIEY9VjtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oeWUsQ2Upe3JldHVybiFDZS5kaXImJkYudGVzdCh5ZSl9KX1yZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oeWUsQ2Upe3JldHVybiFDZS5kaXIm''@;'; + put 'put ''JnllPT09Vn0pWzBdfHxudWxsfXJldHVybiBPLmNhbGwodGhpcyxWPXRoaXMucm9vdCtWLFQsUyksdGhpc30sZm9sZGVyOmZ1bmN0aW9uKFYpe2lmKCFWKXJldHVybiB0aGlzO2lmKFkuaXNSZWdFeHAoVikpcmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKHllLENlKXtyZXR1cm4gQ2UuZGly''@;'; + put 'put ''JiZWLnRlc3QoeWUpfSk7dmFyIFM9bmUuY2FsbCh0aGlzLHRoaXMucm9vdCtWKSxGPXRoaXMuY2xvbmUoKTtyZXR1cm4gRi5yb290PVMubmFtZSxGfSxyZW1vdmU6ZnVuY3Rpb24oVil7dmFyIFQ9dGhpcy5maWxlc1tWPXRoaXMucm9vdCtWXTtpZihUfHwoIi8iIT1WLnNsaWNlKC0xKSYmKFYr''@;'; + put 'put ''PSIvIiksVD10aGlzLmZpbGVzW1ZdKSxUJiYhVC5kaXIpZGVsZXRlIHRoaXMuZmlsZXNbVl07ZWxzZSBmb3IodmFyIFM9dGhpcy5maWx0ZXIoZnVuY3Rpb24oeWUsQ2Upe3JldHVybiBDZS5uYW1lLnNsaWNlKDAsVi5sZW5ndGgpPT09Vn0pLEY9MDtGPFMubGVuZ3RoO0YrKylkZWxldGUgdGhp''@;'; + put 'put ''cy5maWxlc1tTW0ZdLm5hbWVdO3JldHVybiB0aGlzfSxnZW5lcmF0ZTpmdW5jdGlvbihWKXtWPUVlKFZ8fHt9LHtiYXNlNjQ6ITAsY29tcHJlc3Npb246IlNUT1JFIix0eXBlOiJiYXNlNjQiLGNvbW1lbnQ6bnVsbH0pLFkuY2hlY2tTdXBwb3J0KFYudHlwZSk7dmFyIHllLENlLEF0LFQ9W10s''@;'; + put 'put ''Uz0wLEY9MCxEZT1ZLnRyYW5zZm9ybVRvKCJzdHJpbmciLHRoaXMudXRmOGVuY29kZShWLmNvbW1lbnR8fHRoaXMuY29tbWVudHx8IiIpKTtmb3IodmFyIFBlIGluIHRoaXMuZmlsZXMpaWYodGhpcy5maWxlcy5oYXNPd25Qcm9wZXJ0eShQZSkpe3ZhciBRZT10aGlzLmZpbGVzW1BlXSwkZT1R''@;'; + put 'put ''ZS5vcHRpb25zLmNvbXByZXNzaW9ufHxWLmNvbXByZXNzaW9uLnRvVXBwZXJDYXNlKCksZ3Q9SlskZV07aWYoIWd0KXRocm93IG5ldyBFcnJvcigkZSsiIGlzIG5vdCBhIHZhbGlkIGNvbXByZXNzaW9uIG1ldGhvZCAhIik7dmFyIHd0PXRlLmNhbGwodGhpcyxRZSxndCksdnQ9eC5jYWxsKHRo''@;'; + put 'put ''aXMsUGUsUWUsd3QsUyk7Uys9dnQuZmlsZVJlY29yZC5sZW5ndGgrd3QuY29tcHJlc3NlZFNpemUsRis9dnQuZGlyUmVjb3JkLmxlbmd0aCxULnB1c2godnQpfUF0PU4uQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKyJcMFwwXDBcMCIrVGUoVC5sZW5ndGgsMikrVGUoVC5sZW5ndGgsMikrVGUoRiw0''@;'; + put 'put ''KStUZShTLDQpK1RlKERlLmxlbmd0aCwyKStEZTt2YXIgbXQ9Vi50eXBlLnRvTG93ZXJDYXNlKCk7Zm9yKHllPSJ1aW50OGFycmF5Ij09PW10fHwiYXJyYXlidWZmZXIiPT09bXR8fCJibG9iIj09PW10fHwibm9kZWJ1ZmZlciI9PT1tdD9uZXcgdmUoUytGK0F0Lmxlbmd0aCk6bmV3IGRlKFMr''@;'; + put 'put ''RitBdC5sZW5ndGgpLENlPTA7Q2U8VC5sZW5ndGg7Q2UrKyl5ZS5hcHBlbmQoVFtDZV0uZmlsZVJlY29yZCkseWUuYXBwZW5kKFRbQ2VdLmNvbXByZXNzZWRPYmplY3QuY29tcHJlc3NlZENvbnRlbnQpO2ZvcihDZT0wO0NlPFQubGVuZ3RoO0NlKyspeWUuYXBwZW5kKFRbQ2VdLmRpclJlY29y''@;'; + put 'put ''ZCk7eWUuYXBwZW5kKEF0KTt2YXIgaHQ9eWUuZmluYWxpemUoKTtzd2l0Y2goVi50eXBlLnRvTG93ZXJDYXNlKCkpe2Nhc2UidWludDhhcnJheSI6Y2FzZSJhcnJheWJ1ZmZlciI6Y2FzZSJub2RlYnVmZmVyIjpyZXR1cm4gWS50cmFuc2Zvcm1UbyhWLnR5cGUudG9Mb3dlckNhc2UoKSxodCk7''@;'; + put 'put ''Y2FzZSJibG9iIjpyZXR1cm4gWS5hcnJheUJ1ZmZlcjJCbG9iKFkudHJhbnNmb3JtVG8oImFycmF5YnVmZmVyIixodCkpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gVi5iYXNlNjQ/cS5lbmNvZGUoaHQpOmh0O2RlZmF1bHQ6cmV0dXJuIGh0fX0sY3JjMzI6ZnVuY3Rpb24oVixUKXtyZXR1cm4gVyhW''@;'; + put 'put ''LFQpfSx1dGY4ZW5jb2RlOmZ1bmN0aW9uKFYpe3JldHVybiBZLnRyYW5zZm9ybVRvKCJzdHJpbmciLGNlLnV0ZjhlbmNvZGUoVikpfSx1dGY4ZGVjb2RlOmZ1bmN0aW9uKFYpe3JldHVybiBjZS51dGY4ZGVjb2RlKFYpfX07Wi5leHBvcnRzPVB9LHsiLi9iYXNlNjQiOjEsIi4vY29tcHJlc3Nl''@;'; + put 'put ''ZE9iamVjdCI6MiwiLi9jb21wcmVzc2lvbnMiOjMsIi4vY3JjMzIiOjQsIi4vZGVmYXVsdHMiOjYsIi4vbm9kZUJ1ZmZlciI6MTEsIi4vc2lnbmF0dXJlIjoxNCwiLi9zdHJpbmdXcml0ZXIiOjE2LCIuL3N1cHBvcnQiOjE3LCIuL3VpbnQ4QXJyYXlXcml0ZXIiOjE5LCIuL3V0ZjgiOjIwLCIu''@;'; + put 'put ''L3V0aWxzIjoyMX1dLDE0OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0IjtpZS5MT0NBTF9GSUxFX0hFQURFUj0iUEtceDAzXHgwNCIsaWUuQ0VOVFJBTF9GSUxFX0hFQURFUj0iUEtceDAxXHgwMiIsaWUuQ0VOVFJBTF9ESVJFQ1RPUllfRU5EPSJQS1x4MDVceDA2IixpZS5aSVA2NF9D''@;'; + put 'put ''RU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SPSJQS1x4MDZceDA3IixpZS5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQ9IlBLXHgwNlx4MDYiLGllLkRBVEFfREVTQ1JJUFRPUj0iUEtceDA3XGIifSx7fV0sMTU6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBsZT1RKCIuL2Rh''@;'; + put 'put ''dGFSZWFkZXIiKSxZPVEoIi4vdXRpbHMiKTtmdW5jdGlvbiBXKE4sZWUpe3RoaXMuZGF0YT1OLGVlfHwodGhpcy5kYXRhPVkuc3RyaW5nMmJpbmFyeSh0aGlzLmRhdGEpKSx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoLHRoaXMuaW5kZXg9MH0oVy5wcm90b3R5cGU9bmV3IGxlKS5ieXRl''@;'; + put 'put ''QXQ9ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMuZGF0YS5jaGFyQ29kZUF0KE4pfSxXLnByb3RvdHlwZS5sYXN0SW5kZXhPZlNpZ25hdHVyZT1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5kYXRhLmxhc3RJbmRleE9mKE4pfSxXLnByb3RvdHlwZS5yZWFkRGF0YT1mdW5jdGlvbihOKXt0aGlzLmNo''@;'; + put 'put ''ZWNrT2Zmc2V0KE4pO3ZhciBlZT10aGlzLmRhdGEuc2xpY2UodGhpcy5pbmRleCx0aGlzLmluZGV4K04pO3JldHVybiB0aGlzLmluZGV4Kz1OLGVlfSxaLmV4cG9ydHM9V30seyIuL2RhdGFSZWFkZXIiOjUsIi4vdXRpbHMiOjIxfV0sMTY6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3Qi''@;'; + put 'put ''O3ZhciBsZT1RKCIuL3V0aWxzIiksWT1mdW5jdGlvbigpe3RoaXMuZGF0YT1bXX07WS5wcm90b3R5cGU9e2FwcGVuZDpmdW5jdGlvbihXKXtXPWxlLnRyYW5zZm9ybVRvKCJzdHJpbmciLFcpLHRoaXMuZGF0YS5wdXNoKFcpfSxmaW5hbGl6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEu''@;'; + put 'put ''am9pbigiIil9fSxaLmV4cG9ydHM9WX0seyIuL3V0aWxzIjoyMX1dLDE3OltmdW5jdGlvbihRLFosaWUpeyhmdW5jdGlvbihsZSl7InVzZSBzdHJpY3QiO2lmKGllLmJhc2U2ND0hMCxpZS5hcnJheT0hMCxpZS5zdHJpbmc9ITAsaWUuYXJyYXlidWZmZXI9InVuZGVmaW5lZCIhPXR5cGVvZiBB''@;'; + put 'put ''cnJheUJ1ZmZlciYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5LGllLm5vZGVidWZmZXI9dm9pZCAwIT09bGUsaWUudWludDhhcnJheT0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXksInVuZGVmaW5lZCI9PXR5cGVvZiBBcnJheUJ1ZmZlcilpZS5ibG9iPSExO2Vsc2V7dmFy''@;'; + put 'put ''IFk9bmV3IEFycmF5QnVmZmVyKDApO3RyeXtpZS5ibG9iPTA9PT1uZXcgQmxvYihbWV0se3R5cGU6ImFwcGxpY2F0aW9uL3ppcCJ9KS5zaXplfWNhdGNoKGVlKXt0cnl7dmFyIE49bmV3KHdpbmRvdy5CbG9iQnVpbGRlcnx8d2luZG93LldlYktpdEJsb2JCdWlsZGVyfHx3aW5kb3cuTW96Qmxv''@;'; + put 'put ''YkJ1aWxkZXJ8fHdpbmRvdy5NU0Jsb2JCdWlsZGVyKTtOLmFwcGVuZChZKSxpZS5ibG9iPTA9PT1OLmdldEJsb2IoImFwcGxpY2F0aW9uL3ppcCIpLnNpemV9Y2F0Y2gocSl7aWUuYmxvYj0hMX19fX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIEJ1ZmZlcj9CdWZmZXI6dm9pZCAw''@;'; + put 'put ''KX0se31dLDE4OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbGU9USgiLi9kYXRhUmVhZGVyIik7ZnVuY3Rpb24gWShXKXtXJiYodGhpcy5kYXRhPVcsdGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aCx0aGlzLmluZGV4PTApfShZLnByb3RvdHlwZT1uZXcgbGUpLmJ5dGVB''@;'; + put 'put ''dD1mdW5jdGlvbihXKXtyZXR1cm4gdGhpcy5kYXRhW1ddfSxZLnByb3RvdHlwZS5sYXN0SW5kZXhPZlNpZ25hdHVyZT1mdW5jdGlvbihXKXtmb3IodmFyIE49Vy5jaGFyQ29kZUF0KDApLGVlPVcuY2hhckNvZGVBdCgxKSxxPVcuY2hhckNvZGVBdCgyKSxKPVcuY2hhckNvZGVBdCgzKSxzZT10''@;'; + put 'put ''aGlzLmxlbmd0aC00O3NlPj0wOy0tc2UpaWYodGhpcy5kYXRhW3NlXT09PU4mJnRoaXMuZGF0YVtzZSsxXT09PWVlJiZ0aGlzLmRhdGFbc2UrMl09PT1xJiZ0aGlzLmRhdGFbc2UrM109PT1KKXJldHVybiBzZTtyZXR1cm4tMX0sWS5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oVyl7aWYo''@;'; + put 'put ''dGhpcy5jaGVja09mZnNldChXKSwwPT09VylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7dmFyIE49dGhpcy5kYXRhLnN1YmFycmF5KHRoaXMuaW5kZXgsdGhpcy5pbmRleCtXKTtyZXR1cm4gdGhpcy5pbmRleCs9VyxOfSxaLmV4cG9ydHM9WX0seyIuL2RhdGFSZWFkZXIiOjV9XSwxOTpbZnVu''@;'; + put 'put ''Y3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIGxlPVEoIi4vdXRpbHMiKSxZPWZ1bmN0aW9uKFcpe3RoaXMuZGF0YT1uZXcgVWludDhBcnJheShXKSx0aGlzLmluZGV4PTB9O1kucHJvdG90eXBlPXthcHBlbmQ6ZnVuY3Rpb24oVyl7MCE9PVcubGVuZ3RoJiYoVz1sZS50cmFuc2Zvcm1U''@;'; + put 'put ''bygidWludDhhcnJheSIsVyksdGhpcy5kYXRhLnNldChXLHRoaXMuaW5kZXgpLHRoaXMuaW5kZXgrPVcubGVuZ3RoKX0sZmluYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhfX0sWi5leHBvcnRzPVl9LHsiLi91dGlscyI6MjF9XSwyMDpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0''@;'; + put 'put ''cmljdCI7Zm9yKHZhciBsZT1RKCIuL3V0aWxzIiksWT1RKCIuL3N1cHBvcnQiKSxXPVEoIi4vbm9kZUJ1ZmZlciIpLE49bmV3IEFycmF5KDI1NiksZWU9MDtlZTwyNTY7ZWUrKylOW2VlXT1lZT49MjUyPzY6ZWU+PTI0OD81OmVlPj0yNDA/NDplZT49MjI0PzM6ZWU+PTE5Mj8yOjE7TlsyNTRd''@;'; + put 'put ''PU5bMjU0XT0xO3ZhciBKPWZ1bmN0aW9uKG9lLGNlKXt2YXIgZGU7Zm9yKChjZT1jZXx8b2UubGVuZ3RoKT5vZS5sZW5ndGgmJihjZT1vZS5sZW5ndGgpLGRlPWNlLTE7ZGU+PTAmJjEyOD09KDE5MiZvZVtkZV0pOylkZS0tO3JldHVybiBkZTwwfHwwPT09ZGU/Y2U6ZGUrTltvZVtkZV1dPmNl''@;'; + put 'put ''P2RlOmNlfSxzZT1mdW5jdGlvbihvZSl7dmFyIGRlLHZlLEFlLGtlLFNlPW9lLmxlbmd0aCxJZT1uZXcgQXJyYXkoMipTZSk7Zm9yKHZlPTAsZGU9MDtkZTxTZTspaWYoKEFlPW9lW2RlKytdKTwxMjgpSWVbdmUrK109QWU7ZWxzZSBpZigoa2U9TltBZV0pPjQpSWVbdmUrK109NjU1MzMsZGUr''@;'; + put 'put ''PWtlLTE7ZWxzZXtmb3IoQWUmPTI9PT1rZT8zMTozPT09a2U/MTU6NztrZT4xJiZkZTxTZTspQWU9QWU8PDZ8NjMmb2VbZGUrK10sa2UtLTtrZT4xP0llW3ZlKytdPTY1NTMzOkFlPDY1NTM2P0llW3ZlKytdPUFlOihJZVt2ZSsrXT01NTI5NnwoQWUtPTY1NTM2KT4+MTAmMTAyMyxJZVt2ZSsr''@;'; + put 'put ''XT01NjMyMHwxMDIzJkFlKX1yZXR1cm4gSWUubGVuZ3RoIT09dmUmJihJZS5zdWJhcnJheT9JZT1JZS5zdWJhcnJheSgwLHZlKTpJZS5sZW5ndGg9dmUpLGxlLmFwcGx5RnJvbUNoYXJDb2RlKEllKX07aWUudXRmOGVuY29kZT1mdW5jdGlvbihjZSl7cmV0dXJuIFkubm9kZWJ1ZmZlcj9XKGNl''@;'; + put 'put ''LCJ1dGYtOCIpOmZ1bmN0aW9uKG9lKXt2YXIgY2UsZGUsdmUsQWUsa2UsU2U9b2UubGVuZ3RoLEllPTA7Zm9yKEFlPTA7QWU8U2U7QWUrKyk1NTI5Nj09KDY0NTEyJihkZT1vZS5jaGFyQ29kZUF0KEFlKSkpJiZBZSsxPFNlJiY1NjMyMD09KDY0NTEyJih2ZT1vZS5jaGFyQ29kZUF0KEFlKzEp''@;'; + put 'put ''KSkmJihkZT02NTUzNisoZGUtNTUyOTY8PDEwKSsodmUtNTYzMjApLEFlKyspLEllKz1kZTwxMjg/MTpkZTwyMDQ4PzI6ZGU8NjU1MzY/Mzo0O2ZvcihjZT1ZLnVpbnQ4YXJyYXk/bmV3IFVpbnQ4QXJyYXkoSWUpOm5ldyBBcnJheShJZSksa2U9MCxBZT0wO2tlPEllO0FlKyspNTUyOTY9PSg2''@;'; + put 'put ''NDUxMiYoZGU9b2UuY2hhckNvZGVBdChBZSkpKSYmQWUrMTxTZSYmNTYzMjA9PSg2NDUxMiYodmU9b2UuY2hhckNvZGVBdChBZSsxKSkpJiYoZGU9NjU1MzYrKGRlLTU1Mjk2PDwxMCkrKHZlLTU2MzIwKSxBZSsrKSxkZTwxMjg/Y2Vba2UrK109ZGU6ZGU8MjA0OD8oY2Vba2UrK109MTkyfGRl''@;'; + put 'put ''Pj4+NixjZVtrZSsrXT0xMjh8NjMmZGUpOmRlPDY1NTM2PyhjZVtrZSsrXT0yMjR8ZGU+Pj4xMixjZVtrZSsrXT0xMjh8ZGU+Pj42JjYzLGNlW2tlKytdPTEyOHw2MyZkZSk6KGNlW2tlKytdPTI0MHxkZT4+PjE4LGNlW2tlKytdPTEyOHxkZT4+PjEyJjYzLGNlW2tlKytdPTEyOHxkZT4+PjYm''@;'; + put 'put ''NjMsY2Vba2UrK109MTI4fDYzJmRlKTtyZXR1cm4gY2V9KGNlKX0saWUudXRmOGRlY29kZT1mdW5jdGlvbihjZSl7aWYoWS5ub2RlYnVmZmVyKXJldHVybiBsZS50cmFuc2Zvcm1Ubygibm9kZWJ1ZmZlciIsY2UpLnRvU3RyaW5nKCJ1dGYtOCIpO2Zvcih2YXIgZGU9W10sdmU9MCxBZT0oY2U9''@;'; + put 'put ''bGUudHJhbnNmb3JtVG8oWS51aW50OGFycmF5PyJ1aW50OGFycmF5IjoiYXJyYXkiLGNlKSkubGVuZ3RoO3ZlPEFlOyl7dmFyIFNlPUooY2UsTWF0aC5taW4odmUrNjU1MzYsQWUpKTtkZS5wdXNoKHNlKFkudWludDhhcnJheT9jZS5zdWJhcnJheSh2ZSxTZSk6Y2Uuc2xpY2UodmUsU2UpKSks''@;'; + put 'put ''dmU9U2V9cmV0dXJuIGRlLmpvaW4oIiIpfX0seyIuL25vZGVCdWZmZXIiOjExLCIuL3N1cHBvcnQiOjE3LCIuL3V0aWxzIjoyMX1dLDIxOltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbGU9USgiLi9zdXBwb3J0IiksWT1RKCIuL2NvbXByZXNzaW9ucyIpLFc9USgiLi9ub2Rl''@;'; + put 'put ''QnVmZmVyIik7ZnVuY3Rpb24gTihvZSl7cmV0dXJuIG9lfWZ1bmN0aW9uIGVlKG9lLGNlKXtmb3IodmFyIGRlPTA7ZGU8b2UubGVuZ3RoOysrZGUpY2VbZGVdPTI1NSZvZS5jaGFyQ29kZUF0KGRlKTtyZXR1cm4gY2V9ZnVuY3Rpb24gcShvZSl7dmFyIGNlPTY1NTM2LGRlPVtdLHZlPW9lLmxl''@;'; + put 'put ''bmd0aCxBZT1pZS5nZXRUeXBlT2Yob2UpLGtlPTAsU2U9ITA7dHJ5e3N3aXRjaChBZSl7Y2FzZSJ1aW50OGFycmF5IjpTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoMCkpO2JyZWFrO2Nhc2Uibm9kZWJ1ZmZlciI6U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBs''@;'; + put 'put ''eShudWxsLFcoMCkpfX1jYXRjaChFZSl7U2U9ITF9aWYoIVNlKXtmb3IodmFyIEllPSIiLFRlPTA7VGU8b2UubGVuZ3RoO1RlKyspSWUrPVN0cmluZy5mcm9tQ2hhckNvZGUob2VbVGVdKTtyZXR1cm4gSWV9Zm9yKDtrZTx2ZSYmY2U+MTspdHJ5e2RlLnB1c2goU3RyaW5nLmZyb21DaGFyQ29k''@;'; + put 'put ''ZS5hcHBseShudWxsLCJhcnJheSI9PT1BZXx8Im5vZGVidWZmZXIiPT09QWU/b2Uuc2xpY2Uoa2UsTWF0aC5taW4oa2UrY2UsdmUpKTpvZS5zdWJhcnJheShrZSxNYXRoLm1pbihrZStjZSx2ZSkpKSksa2UrPWNlfWNhdGNoKEVlKXtjZT1NYXRoLmZsb29yKGNlLzIpfXJldHVybiBkZS5qb2lu''@;'; + put 'put ''KCIiKX1mdW5jdGlvbiBKKG9lLGNlKXtmb3IodmFyIGRlPTA7ZGU8b2UubGVuZ3RoO2RlKyspY2VbZGVdPW9lW2RlXTtyZXR1cm4gY2V9aWUuc3RyaW5nMmJpbmFyeT1mdW5jdGlvbihvZSl7Zm9yKHZhciBjZT0iIixkZT0wO2RlPG9lLmxlbmd0aDtkZSsrKWNlKz1TdHJpbmcuZnJvbUNoYXJD''@;'; + put 'put ''b2RlKDI1NSZvZS5jaGFyQ29kZUF0KGRlKSk7cmV0dXJuIGNlfSxpZS5hcnJheUJ1ZmZlcjJCbG9iPWZ1bmN0aW9uKG9lKXtpZS5jaGVja1N1cHBvcnQoImJsb2IiKTt0cnl7cmV0dXJuIG5ldyBCbG9iKFtvZV0se3R5cGU6ImFwcGxpY2F0aW9uL3ppcCJ9KX1jYXRjaCh2ZSl7dHJ5e3ZhciBk''@;'; + put 'put ''ZT1uZXcod2luZG93LkJsb2JCdWlsZGVyfHx3aW5kb3cuV2ViS2l0QmxvYkJ1aWxkZXJ8fHdpbmRvdy5Nb3pCbG9iQnVpbGRlcnx8d2luZG93Lk1TQmxvYkJ1aWxkZXIpO3JldHVybiBkZS5hcHBlbmQob2UpLGRlLmdldEJsb2IoImFwcGxpY2F0aW9uL3ppcCIpfWNhdGNoKEFlKXt0aHJvdyBu''@;'; + put 'put ''ZXcgRXJyb3IoIkJ1ZyA6IGNhbid0IGNvbnN0cnVjdCB0aGUgQmxvYi4iKX19fSxpZS5hcHBseUZyb21DaGFyQ29kZT1xO3ZhciBzZT17fTtzZS5zdHJpbmc9e3N0cmluZzpOLGFycmF5OmZ1bmN0aW9uKG9lKXtyZXR1cm4gZWUob2UsbmV3IEFycmF5KG9lLmxlbmd0aCkpfSxhcnJheWJ1ZmZl''@;'; + put 'put ''cjpmdW5jdGlvbihvZSl7cmV0dXJuIHNlLnN0cmluZy51aW50OGFycmF5KG9lKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24ob2Upe3JldHVybiBlZShvZSxuZXcgVWludDhBcnJheShvZS5sZW5ndGgpKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihvZSl7cmV0dXJuIGVlKG9lLFcob2UubGVu''@;'; + put 'put ''Z3RoKSl9fSxzZS5hcnJheT17c3RyaW5nOnEsYXJyYXk6TixhcnJheWJ1ZmZlcjpmdW5jdGlvbihvZSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KG9lKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24ob2Upe3JldHVybiBuZXcgVWludDhBcnJheShvZSl9LG5vZGVidWZmZXI6ZnVuY3Rpb24o''@;'; + put 'put ''b2Upe3JldHVybiBXKG9lKX19LHNlLmFycmF5YnVmZmVyPXtzdHJpbmc6ZnVuY3Rpb24ob2Upe3JldHVybiBxKG5ldyBVaW50OEFycmF5KG9lKSl9LGFycmF5OmZ1bmN0aW9uKG9lKXtyZXR1cm4gSihuZXcgVWludDhBcnJheShvZSksbmV3IEFycmF5KG9lLmJ5dGVMZW5ndGgpKX0sYXJyYXli''@;'; + put 'put ''dWZmZXI6Tix1aW50OGFycmF5OmZ1bmN0aW9uKG9lKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkob2UpfSxub2RlYnVmZmVyOmZ1bmN0aW9uKG9lKXtyZXR1cm4gVyhuZXcgVWludDhBcnJheShvZSkpfX0sc2UudWludDhhcnJheT17c3RyaW5nOnEsYXJyYXk6ZnVuY3Rpb24ob2Upe3JldHVybiBK''@;'; + put 'put ''KG9lLG5ldyBBcnJheShvZS5sZW5ndGgpKX0sYXJyYXlidWZmZXI6ZnVuY3Rpb24ob2Upe3JldHVybiBvZS5idWZmZXJ9LHVpbnQ4YXJyYXk6Tixub2RlYnVmZmVyOmZ1bmN0aW9uKG9lKXtyZXR1cm4gVyhvZSl9fSxzZS5ub2RlYnVmZmVyPXtzdHJpbmc6cSxhcnJheTpmdW5jdGlvbihvZSl7''@;'; + put 'put ''cmV0dXJuIEoob2UsbmV3IEFycmF5KG9lLmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihvZSl7cmV0dXJuIHNlLm5vZGVidWZmZXIudWludDhhcnJheShvZSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKG9lKXtyZXR1cm4gSihvZSxuZXcgVWludDhBcnJheShvZS5sZW5ndGgp''@;'; + put 'put ''KX0sbm9kZWJ1ZmZlcjpOfSxpZS50cmFuc2Zvcm1Ubz1mdW5jdGlvbihvZSxjZSl7aWYoY2V8fChjZT0iIiksIW9lKXJldHVybiBjZTtpZS5jaGVja1N1cHBvcnQob2UpO3ZhciBkZT1pZS5nZXRUeXBlT2YoY2UpO3JldHVybiBzZVtkZV1bb2VdKGNlKX0saWUuZ2V0VHlwZU9mPWZ1bmN0aW9u''@;'; + put 'put ''KG9lKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG9lPyJzdHJpbmciOiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2UpPyJhcnJheSI6bGUubm9kZWJ1ZmZlciYmVy50ZXN0KG9lKT8ibm9kZWJ1ZmZlciI6bGUudWludDhhcnJheSYmb2UgaW5zdGFu''@;'; + put 'put ''Y2VvZiBVaW50OEFycmF5PyJ1aW50OGFycmF5IjpsZS5hcnJheWJ1ZmZlciYmb2UgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj8iYXJyYXlidWZmZXIiOnZvaWQgMH0saWUuY2hlY2tTdXBwb3J0PWZ1bmN0aW9uKG9lKXtpZighbGVbb2UudG9Mb3dlckNhc2UoKV0pdGhyb3cgbmV3IEVycm9yKG9l''@;'; + put 'put ''KyIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIiKX0saWUuTUFYX1ZBTFVFXzE2QklUUz02NTUzNSxpZS5NQVhfVkFMVUVfMzJCSVRTPS0xLGllLnByZXR0eT1mdW5jdGlvbihvZSl7dmFyIGRlLHZlLGNlPSIiO2Zvcih2ZT0wO3ZlPChvZXx8IiIpLmxlbmd0aDt2ZSsrKWNlKz0i''@;'; + put 'put ''XFx4IisoKGRlPW9lLmNoYXJDb2RlQXQodmUpKTwxNj8iMCI6IiIpK2RlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiBjZX0saWUuZmluZENvbXByZXNzaW9uPWZ1bmN0aW9uKG9lKXtmb3IodmFyIGNlIGluIFkpaWYoWS5oYXNPd25Qcm9wZXJ0eShjZSkmJllbY2VdLm1hZ2lj''@;'; + put 'put ''PT09b2UpcmV0dXJuIFlbY2VdO3JldHVybiBudWxsfSxpZS5pc1JlZ0V4cD1mdW5jdGlvbihvZSl7cmV0dXJuIltvYmplY3QgUmVnRXhwXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2UpfX0seyIuL2NvbXByZXNzaW9ucyI6MywiLi9ub2RlQnVmZmVyIjoxMSwiLi9zdXBw''@;'; + put 'put ''b3J0IjoxN31dLDIyOltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbGU9USgiLi9zdHJpbmdSZWFkZXIiKSxZPVEoIi4vbm9kZUJ1ZmZlclJlYWRlciIpLFc9USgiLi91aW50OEFycmF5UmVhZGVyIiksTj1RKCIuL3V0aWxzIiksZWU9USgiLi9zaWduYXR1cmUiKSxxPVEoIi4v''@;'; + put 'put ''emlwRW50cnkiKSxKPVEoIi4vc3VwcG9ydCIpLHNlPVEoIi4vb2JqZWN0Iik7ZnVuY3Rpb24gb2UoY2UsZGUpe3RoaXMuZmlsZXM9W10sdGhpcy5sb2FkT3B0aW9ucz1kZSxjZSYmdGhpcy5sb2FkKGNlKX1vZS5wcm90b3R5cGU9e2NoZWNrU2lnbmF0dXJlOmZ1bmN0aW9uKGNlKXt2YXIgZGU9''@;'; + put 'put ''dGhpcy5yZWFkZXIucmVhZFN0cmluZyg0KTtpZihkZSE9PWNlKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCBvciBidWcgOiB1bmV4cGVjdGVkIHNpZ25hdHVyZSAoIitOLnByZXR0eShkZSkrIiwgZXhwZWN0ZWQgIitOLnByZXR0eShjZSkrIikiKX0scmVhZEJsb2NrRW5kT2ZDZW50''@;'; + put 'put ''cmFsOmZ1bmN0aW9uKCl7dGhpcy5kaXNrTnVtYmVyPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNrPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhp''@;'; + put 'put ''cy5jZW50cmFsRGlyUmVjb3Jkcz10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclNpemU9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLnppcENvbW1lbnRMZW5ndGg9dGhpcy5yZWFkZXIu''@;'; + put 'put ''cmVhZEludCgyKSx0aGlzLnppcENvbW1lbnQ9dGhpcy5yZWFkZXIucmVhZFN0cmluZyh0aGlzLnppcENvbW1lbnRMZW5ndGgpLHRoaXMuemlwQ29tbWVudD1zZS51dGY4ZGVjb2RlKHRoaXMuemlwQ29tbWVudCl9LHJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dGhpcy56''@;'; + put 'put ''aXA2NEVuZE9mQ2VudHJhbFNpemU9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLnZlcnNpb25NYWRlQnk9dGhpcy5yZWFkZXIucmVhZFN0cmluZygyKSx0aGlzLnZlcnNpb25OZWVkZWQ9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmRpc2tOdW1iZXI9dGhpcy5yZWFkZXIucmVhZElu''@;'; + put 'put ''dCg0KSx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5jZW50cmFsRGlyUmVjb3Jkc09uVGhpc0Rpc2s9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5j''@;'; + put 'put ''ZW50cmFsRGlyU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpck9mZnNldD10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuemlwNjRFeHRlbnNpYmxlRGF0YT17fTtmb3IodmFyIHZlLEFlLGtlLGNlPXRoaXMuemlwNjRFbmRPZkNlbnRyYWxTaXplLTQ0OzA8Y2U7''@;'; + put 'put ''KXZlPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksQWU9dGhpcy5yZWFkZXIucmVhZEludCg0KSxrZT10aGlzLnJlYWRlci5yZWFkU3RyaW5nKEFlKSx0aGlzLnppcDY0RXh0ZW5zaWJsZURhdGFbdmVdPXtpZDp2ZSxsZW5ndGg6QWUsdmFsdWU6a2V9fSxyZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJh''@;'; + put 'put ''bExvY2F0b3I6ZnVuY3Rpb24oKXtpZih0aGlzLmRpc2tXaXRoWmlwNjRDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXI9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmRpc2tzQ291bnQ9dGhpcy5y''@;'; + put 'put ''ZWFkZXIucmVhZEludCg0KSx0aGlzLmRpc2tzQ291bnQ+MSl0aHJvdyBuZXcgRXJyb3IoIk11bHRpLXZvbHVtZXMgemlwIGFyZSBub3Qgc3VwcG9ydGVkIil9LHJlYWRMb2NhbEZpbGVzOmZ1bmN0aW9uKCl7dmFyIGNlLGRlO2ZvcihjZT0wO2NlPHRoaXMuZmlsZXMubGVuZ3RoO2NlKyspdGhp''@;'; + put 'put ''cy5yZWFkZXIuc2V0SW5kZXgoKGRlPXRoaXMuZmlsZXNbY2VdKS5sb2NhbEhlYWRlck9mZnNldCksdGhpcy5jaGVja1NpZ25hdHVyZShlZS5MT0NBTF9GSUxFX0hFQURFUiksZGUucmVhZExvY2FsUGFydCh0aGlzLnJlYWRlciksZGUuaGFuZGxlVVRGOCgpfSxyZWFkQ2VudHJhbERpcjpmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciBjZTtmb3IodGhpcy5yZWFkZXIuc2V0SW5kZXgodGhpcy5jZW50cmFsRGlyT2Zmc2V0KTt0aGlzLnJlYWRlci5yZWFkU3RyaW5nKDQpPT09ZWUuQ0VOVFJBTF9GSUxFX0hFQURFUjspKGNlPW5ldyBxKHt6aXA2NDp0aGlzLnppcDY0fSx0aGlzLmxvYWRPcHRpb25zKSkucmVh''@;'; + put 'put ''ZENlbnRyYWxQYXJ0KHRoaXMucmVhZGVyKSx0aGlzLmZpbGVzLnB1c2goY2UpfSxyZWFkRW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dmFyIGNlPXRoaXMucmVhZGVyLmxhc3RJbmRleE9mU2lnbmF0dXJlKGVlLkNFTlRSQUxfRElSRUNUT1JZX0VORCk7aWYoLTE9PT1jZSl0aHJvdyBuZXcgRXJy''@;'; + put 'put ''b3IoIkNvcnJ1cHRlZCB6aXAgOiBjYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSIpO2lmKHRoaXMucmVhZGVyLnNldEluZGV4KGNlKSx0aGlzLmNoZWNrU2lnbmF0dXJlKGVlLkNFTlRSQUxfRElSRUNUT1JZX0VORCksdGhpcy5yZWFkQmxvY2tFbmRPZkNlbnRyYWwoKSx0aGlz''@;'; + put 'put ''LmRpc2tOdW1iZXI9PT1OLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9PT1OLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNrPT09Ti5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzPT09''@;'; + put 'put ''Ti5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJTaXplPT09Ti5NQVhfVkFMVUVfMzJCSVRTfHx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9PT1OLk1BWF9WQUxVRV8zMkJJVFMpe2lmKHRoaXMuemlwNjQ9ITAsLTE9PT0oY2U9dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1cmUo''@;'; + put 'put ''ZWUuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUikpKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IGNhbid0IGZpbmQgdGhlIFpJUDY0IGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSBsb2NhdG9yIik7dGhpcy5yZWFkZXIuc2V0SW5kZXgoY2UpLHRoaXMuY2hlY2tTaWdu''@;'; + put 'put ''YXR1cmUoZWUuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUiksdGhpcy5yZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbExvY2F0b3IoKSx0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXIpLHRoaXMuY2hlY2tTaWduYXR1cmUo''@;'; + put 'put ''ZWUuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKSx0aGlzLnJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsKCl9fSxwcmVwYXJlUmVhZGVyOmZ1bmN0aW9uKGNlKXt2YXIgZGU9Ti5nZXRUeXBlT2YoY2UpO3RoaXMucmVhZGVyPSJzdHJpbmciIT09ZGV8fEoudWludDhhcnJheT8ibm9kZWJ1''@;'; + put 'put ''ZmZlciI9PT1kZT9uZXcgWShjZSk6bmV3IFcoTi50cmFuc2Zvcm1UbygidWludDhhcnJheSIsY2UpKTpuZXcgbGUoY2UsdGhpcy5sb2FkT3B0aW9ucy5vcHRpbWl6ZWRCaW5hcnlTdHJpbmcpfSxsb2FkOmZ1bmN0aW9uKGNlKXt0aGlzLnByZXBhcmVSZWFkZXIoY2UpLHRoaXMucmVhZEVuZE9m''@;'; + put 'put ''Q2VudHJhbCgpLHRoaXMucmVhZENlbnRyYWxEaXIoKSx0aGlzLnJlYWRMb2NhbEZpbGVzKCl9fSxaLmV4cG9ydHM9b2V9LHsiLi9ub2RlQnVmZmVyUmVhZGVyIjoxMiwiLi9vYmplY3QiOjEzLCIuL3NpZ25hdHVyZSI6MTQsIi4vc3RyaW5nUmVhZGVyIjoxNSwiLi9zdXBwb3J0IjoxNywiLi91''@;'; + put 'put ''aW50OEFycmF5UmVhZGVyIjoxOCwiLi91dGlscyI6MjEsIi4vemlwRW50cnkiOjIzfV0sMjM6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBsZT1RKCIuL3N0cmluZ1JlYWRlciIpLFk9USgiLi91dGlscyIpLFc9USgiLi9jb21wcmVzc2VkT2JqZWN0IiksTj1RKCIuL29iamVj''@;'; + put 'put ''dCIpO2Z1bmN0aW9uIGVlKHEsSil7dGhpcy5vcHRpb25zPXEsdGhpcy5sb2FkT3B0aW9ucz1KfWVlLnByb3RvdHlwZT17aXNFbmNyeXB0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy5iaXRGbGFnKX0sdXNlVVRGODpmdW5jdGlvbigpe3JldHVybiAyMDQ4PT0oMjA0OCZ0aGlzLmJp''@;'; + put 'put ''dEZsYWcpfSxwcmVwYXJlQ29tcHJlc3NlZENvbnRlbnQ6ZnVuY3Rpb24ocSxKLHNlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgb2U9cS5pbmRleDtxLnNldEluZGV4KEopO3ZhciBjZT1xLnJlYWREYXRhKHNlKTtyZXR1cm4gcS5zZXRJbmRleChvZSksY2V9fSxwcmVwYXJlQ29udGVudDpmdW5j''@;'; + put 'put ''dGlvbihxLEosc2Usb2UsY2Upe3JldHVybiBmdW5jdGlvbigpe3ZhciBkZT1ZLnRyYW5zZm9ybVRvKG9lLnVuY29tcHJlc3NJbnB1dFR5cGUsdGhpcy5nZXRDb21wcmVzc2VkQ29udGVudCgpKSx2ZT1vZS51bmNvbXByZXNzKGRlKTtpZih2ZS5sZW5ndGghPT1jZSl0aHJvdyBuZXcgRXJyb3Io''@;'; + put 'put ''IkJ1ZyA6IHVuY29tcHJlc3NlZCBkYXRhIHNpemUgbWlzbWF0Y2giKTtyZXR1cm4gdmV9fSxyZWFkTG9jYWxQYXJ0OmZ1bmN0aW9uKHEpe3ZhciBKLHNlO2lmKHEuc2tpcCgyMiksdGhpcy5maWxlTmFtZUxlbmd0aD1xLnJlYWRJbnQoMiksc2U9cS5yZWFkSW50KDIpLHRoaXMuZmlsZU5hbWU9''@;'; + put 'put ''cS5yZWFkU3RyaW5nKHRoaXMuZmlsZU5hbWVMZW5ndGgpLHEuc2tpcChzZSksLTE9PXRoaXMuY29tcHJlc3NlZFNpemV8fC0xPT10aGlzLnVuY29tcHJlc3NlZFNpemUpdGhyb3cgbmV3IEVycm9yKCJCdWcgb3IgY29ycnVwdGVkIHppcCA6IGRpZG4ndCBnZXQgZW5vdWdoIGluZm9ybWF0aW9u''@;'; + put 'put ''cyBmcm9tIHRoZSBjZW50cmFsIGRpcmVjdG9yeSAoY29tcHJlc3NlZFNpemUgPT0gLTEgfHwgdW5jb21wcmVzc2VkU2l6ZSA9PSAtMSkiKTtpZihudWxsPT09KEo9WS5maW5kQ29tcHJlc3Npb24odGhpcy5jb21wcmVzc2lvbk1ldGhvZCkpKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHpp''@;'; + put 'put ''cCA6IGNvbXByZXNzaW9uICIrWS5wcmV0dHkodGhpcy5jb21wcmVzc2lvbk1ldGhvZCkrIiB1bmtub3duIChpbm5lciBmaWxlIDogIit0aGlzLmZpbGVOYW1lKyIpIik7aWYodGhpcy5kZWNvbXByZXNzZWQ9bmV3IFcsdGhpcy5kZWNvbXByZXNzZWQuY29tcHJlc3NlZFNpemU9dGhpcy5jb21w''@;'; + put 'put ''cmVzc2VkU2l6ZSx0aGlzLmRlY29tcHJlc3NlZC51bmNvbXByZXNzZWRTaXplPXRoaXMudW5jb21wcmVzc2VkU2l6ZSx0aGlzLmRlY29tcHJlc3NlZC5jcmMzMj10aGlzLmNyYzMyLHRoaXMuZGVjb21wcmVzc2VkLmNvbXByZXNzaW9uTWV0aG9kPXRoaXMuY29tcHJlc3Npb25NZXRob2QsdGhp''@;'; + put 'put ''cy5kZWNvbXByZXNzZWQuZ2V0Q29tcHJlc3NlZENvbnRlbnQ9dGhpcy5wcmVwYXJlQ29tcHJlc3NlZENvbnRlbnQocSxxLmluZGV4LHRoaXMuY29tcHJlc3NlZFNpemUsSiksdGhpcy5kZWNvbXByZXNzZWQuZ2V0Q29udGVudD10aGlzLnByZXBhcmVDb250ZW50KHEscS5pbmRleCx0aGlzLmNv''@;'; + put 'put ''bXByZXNzZWRTaXplLEosdGhpcy51bmNvbXByZXNzZWRTaXplKSx0aGlzLmxvYWRPcHRpb25zLmNoZWNrQ1JDMzImJih0aGlzLmRlY29tcHJlc3NlZD1ZLnRyYW5zZm9ybVRvKCJzdHJpbmciLHRoaXMuZGVjb21wcmVzc2VkLmdldENvbnRlbnQoKSksTi5jcmMzMih0aGlzLmRlY29tcHJlc3Nl''@;'; + put 'put ''ZCkhPT10aGlzLmNyYzMyKSl0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgOiBDUkMzMiBtaXNtYXRjaCIpfSxyZWFkQ2VudHJhbFBhcnQ6ZnVuY3Rpb24ocSl7aWYodGhpcy52ZXJzaW9uTWFkZUJ5PXEucmVhZFN0cmluZygyKSx0aGlzLnZlcnNpb25OZWVkZWQ9cS5yZWFkSW50KDIp''@;'; + put 'put ''LHRoaXMuYml0RmxhZz1xLnJlYWRJbnQoMiksdGhpcy5jb21wcmVzc2lvbk1ldGhvZD1xLnJlYWRTdHJpbmcoMiksdGhpcy5kYXRlPXEucmVhZERhdGUoKSx0aGlzLmNyYzMyPXEucmVhZEludCg0KSx0aGlzLmNvbXByZXNzZWRTaXplPXEucmVhZEludCg0KSx0aGlzLnVuY29tcHJlc3NlZFNp''@;'; + put 'put ''emU9cS5yZWFkSW50KDQpLHRoaXMuZmlsZU5hbWVMZW5ndGg9cS5yZWFkSW50KDIpLHRoaXMuZXh0cmFGaWVsZHNMZW5ndGg9cS5yZWFkSW50KDIpLHRoaXMuZmlsZUNvbW1lbnRMZW5ndGg9cS5yZWFkSW50KDIpLHRoaXMuZGlza051bWJlclN0YXJ0PXEucmVhZEludCgyKSx0aGlzLmludGVy''@;'; + put 'put ''bmFsRmlsZUF0dHJpYnV0ZXM9cS5yZWFkSW50KDIpLHRoaXMuZXh0ZXJuYWxGaWxlQXR0cmlidXRlcz1xLnJlYWRJbnQoNCksdGhpcy5sb2NhbEhlYWRlck9mZnNldD1xLnJlYWRJbnQoNCksdGhpcy5pc0VuY3J5cHRlZCgpKXRocm93IG5ldyBFcnJvcigiRW5jcnlwdGVkIHppcCBhcmUgbm90''@;'; + put 'put ''IHN1cHBvcnRlZCIpO3RoaXMuZmlsZU5hbWU9cS5yZWFkU3RyaW5nKHRoaXMuZmlsZU5hbWVMZW5ndGgpLHRoaXMucmVhZEV4dHJhRmllbGRzKHEpLHRoaXMucGFyc2VaSVA2NEV4dHJhRmllbGQocSksdGhpcy5maWxlQ29tbWVudD1xLnJlYWRTdHJpbmcodGhpcy5maWxlQ29tbWVudExlbmd0''@;'; + put 'put ''aCksdGhpcy5kaXI9ISEoMTYmdGhpcy5leHRlcm5hbEZpbGVBdHRyaWJ1dGVzKX0scGFyc2VaSVA2NEV4dHJhRmllbGQ6ZnVuY3Rpb24ocSl7aWYodGhpcy5leHRyYUZpZWxkc1sxXSl7dmFyIEo9bmV3IGxlKHRoaXMuZXh0cmFGaWVsZHNbMV0udmFsdWUpO3RoaXMudW5jb21wcmVzc2VkU2l6''@;'; + put 'put ''ZT09PVkuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMudW5jb21wcmVzc2VkU2l6ZT1KLnJlYWRJbnQoOCkpLHRoaXMuY29tcHJlc3NlZFNpemU9PT1ZLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLmNvbXByZXNzZWRTaXplPUoucmVhZEludCg4KSksdGhpcy5sb2NhbEhlYWRlck9mZnNldD09PVku''@;'; + put 'put ''TUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMubG9jYWxIZWFkZXJPZmZzZXQ9Si5yZWFkSW50KDgpKSx0aGlzLmRpc2tOdW1iZXJTdGFydD09PVkuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMuZGlza051bWJlclN0YXJ0PUoucmVhZEludCg0KSl9fSxyZWFkRXh0cmFGaWVsZHM6ZnVuY3Rpb24ocSl7''@;'; + put 'put ''dmFyIHNlLG9lLGNlLEo9cS5pbmRleDtmb3IodGhpcy5leHRyYUZpZWxkcz10aGlzLmV4dHJhRmllbGRzfHx7fTtxLmluZGV4PEordGhpcy5leHRyYUZpZWxkc0xlbmd0aDspc2U9cS5yZWFkSW50KDIpLG9lPXEucmVhZEludCgyKSxjZT1xLnJlYWRTdHJpbmcob2UpLHRoaXMuZXh0cmFGaWVs''@;'; + put 'put ''ZHNbc2VdPXtpZDpzZSxsZW5ndGg6b2UsdmFsdWU6Y2V9fSxoYW5kbGVVVEY4OmZ1bmN0aW9uKCl7aWYodGhpcy51c2VVVEY4KCkpdGhpcy5maWxlTmFtZT1OLnV0ZjhkZWNvZGUodGhpcy5maWxlTmFtZSksdGhpcy5maWxlQ29tbWVudD1OLnV0ZjhkZWNvZGUodGhpcy5maWxlQ29tbWVudCk7''@;'; + put 'put ''ZWxzZXt2YXIgcT10aGlzLmZpbmRFeHRyYUZpZWxkVW5pY29kZVBhdGgoKTtudWxsIT09cSYmKHRoaXMuZmlsZU5hbWU9cSk7dmFyIEo9dGhpcy5maW5kRXh0cmFGaWVsZFVuaWNvZGVDb21tZW50KCk7bnVsbCE9PUomJih0aGlzLmZpbGVDb21tZW50PUopfX0sZmluZEV4dHJhRmllbGRVbmlj''@;'; + put 'put ''b2RlUGF0aDpmdW5jdGlvbigpe3ZhciBxPXRoaXMuZXh0cmFGaWVsZHNbMjg3ODldO2lmKHEpe3ZhciBKPW5ldyBsZShxLnZhbHVlKTtyZXR1cm4gMSE9PUoucmVhZEludCgxKXx8Ti5jcmMzMih0aGlzLmZpbGVOYW1lKSE9PUoucmVhZEludCg0KT9udWxsOk4udXRmOGRlY29kZShKLnJlYWRT''@;'; + put 'put ''dHJpbmcocS5sZW5ndGgtNSkpfXJldHVybiBudWxsfSxmaW5kRXh0cmFGaWVsZFVuaWNvZGVDb21tZW50OmZ1bmN0aW9uKCl7dmFyIHE9dGhpcy5leHRyYUZpZWxkc1syNTQ2MV07aWYocSl7dmFyIEo9bmV3IGxlKHEudmFsdWUpO3JldHVybiAxIT09Si5yZWFkSW50KDEpfHxOLmNyYzMyKHRo''@;'; + put 'put ''aXMuZmlsZUNvbW1lbnQpIT09Si5yZWFkSW50KDQpP251bGw6Ti51dGY4ZGVjb2RlKEoucmVhZFN0cmluZyhxLmxlbmd0aC01KSl9cmV0dXJuIG51bGx9fSxaLmV4cG9ydHM9ZWV9LHsiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL29iamVjdCI6MTMsIi4vc3RyaW5nUmVhZGVyIjoxNSwiLi91''@;'; + put 'put ''dGlscyI6MjF9XSwyNDpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIGVlPXt9OygwLFEoIi4vbGliL3V0aWxzL2NvbW1vbiIpLmFzc2lnbikoZWUsUSgiLi9saWIvZGVmbGF0ZSIpLFEoIi4vbGliL2luZmxhdGUiKSxRKCIuL2xpYi96bGliL2NvbnN0YW50cyIpKSxaLmV4cG9y''@;'; + put 'put ''dHM9ZWV9LHsiLi9saWIvZGVmbGF0ZSI6MjUsIi4vbGliL2luZmxhdGUiOjI2LCIuL2xpYi91dGlscy9jb21tb24iOjI3LCIuL2xpYi96bGliL2NvbnN0YW50cyI6MzB9XSwyNTpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIGxlPVEoIi4vemxpYi9kZWZsYXRlLmpzIiksWT1R''@;'; + put 'put ''KCIuL3V0aWxzL2NvbW1vbiIpLFc9USgiLi91dGlscy9zdHJpbmdzIiksTj1RKCIuL3psaWIvbWVzc2FnZXMiKSxlZT1RKCIuL3psaWIvenN0cmVhbSIpLEFlPWZ1bmN0aW9uKFRlKXt0aGlzLm9wdGlvbnM9WS5hc3NpZ24oe2xldmVsOi0xLG1ldGhvZDo4LGNodW5rU2l6ZToxNjM4NCx3aW5k''@;'; + put 'put ''b3dCaXRzOjE1LG1lbUxldmVsOjgsc3RyYXRlZ3k6MCx0bzoiIn0sVGV8fHt9KTt2YXIgRWU9dGhpcy5vcHRpb25zO0VlLnJhdyYmRWUud2luZG93Qml0cz4wP0VlLndpbmRvd0JpdHM9LUVlLndpbmRvd0JpdHM6RWUuZ3ppcCYmRWUud2luZG93Qml0cz4wJiZFZS53aW5kb3dCaXRzPDE2JiYo''@;'; + put 'put ''RWUud2luZG93Qml0cys9MTYpLHRoaXMuZXJyPTAsdGhpcy5tc2c9IiIsdGhpcy5lbmRlZD0hMSx0aGlzLmNodW5rcz1bXSx0aGlzLnN0cm09bmV3IGVlLHRoaXMuc3RybS5hdmFpbF9vdXQ9MDt2YXIgaGU9bGUuZGVmbGF0ZUluaXQyKHRoaXMuc3RybSxFZS5sZXZlbCxFZS5tZXRob2QsRWUu''@;'; + put 'put ''d2luZG93Qml0cyxFZS5tZW1MZXZlbCxFZS5zdHJhdGVneSk7aWYoMCE9PWhlKXRocm93IG5ldyBFcnJvcihOW2hlXSk7RWUuaGVhZGVyJiZsZS5kZWZsYXRlU2V0SGVhZGVyKHRoaXMuc3RybSxFZS5oZWFkZXIpfTtmdW5jdGlvbiBrZShUZSxFZSl7dmFyIGhlPW5ldyBBZShFZSk7aWYoaGUu''@;'; + put 'put ''cHVzaChUZSwhMCksaGUuZXJyKXRocm93IGhlLm1zZztyZXR1cm4gaGUucmVzdWx0fUFlLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKFRlLEVlKXt2YXIgeixuZSxoZT10aGlzLnN0cm0sTz10aGlzLm9wdGlvbnMuY2h1bmtTaXplO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7bmU9RWU9PT1+fkVl''@;'; + put 'put ''P0VlOiEwPT09RWU/NDowLGhlLmlucHV0PSJzdHJpbmciPT10eXBlb2YgVGU/Vy5zdHJpbmcyYnVmKFRlKTpUZSxoZS5uZXh0X2luPTAsaGUuYXZhaWxfaW49aGUuaW5wdXQubGVuZ3RoO2Rve2lmKDA9PT1oZS5hdmFpbF9vdXQmJihoZS5vdXRwdXQ9bmV3IFkuQnVmOChPKSxoZS5uZXh0X291''@;'; + put 'put ''dD0wLGhlLmF2YWlsX291dD1PKSwxIT09KHo9bGUuZGVmbGF0ZShoZSxuZSkpJiYwIT09eilyZXR1cm4gdGhpcy5vbkVuZCh6KSx0aGlzLmVuZGVkPSEwLCExOygwPT09aGUuYXZhaWxfb3V0fHwwPT09aGUuYXZhaWxfaW4mJjQ9PT1uZSkmJnRoaXMub25EYXRhKCJzdHJpbmciPT09dGhpcy5v''@;'; + put 'put ''cHRpb25zLnRvP1cuYnVmMmJpbnN0cmluZyhZLnNocmlua0J1ZihoZS5vdXRwdXQsaGUubmV4dF9vdXQpKTpZLnNocmlua0J1ZihoZS5vdXRwdXQsaGUubmV4dF9vdXQpKX13aGlsZSgoaGUuYXZhaWxfaW4+MHx8MD09PWhlLmF2YWlsX291dCkmJjEhPT16KTtyZXR1cm4gNCE9PW5lfHwoej1s''@;'; + put 'put ''ZS5kZWZsYXRlRW5kKHRoaXMuc3RybSksdGhpcy5vbkVuZCh6KSx0aGlzLmVuZGVkPSEwLDA9PT16KX0sQWUucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihUZSl7dGhpcy5jaHVua3MucHVzaChUZSl9LEFlLnByb3RvdHlwZS5vbkVuZD1mdW5jdGlvbihUZSl7MD09PVRlJiYodGhpcy5yZXN1''@;'; + put 'put ''bHQ9InN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/dGhpcy5jaHVua3Muam9pbigiIik6WS5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9VGUsdGhpcy5tc2c9dGhpcy5zdHJtLm1zZ30saWUuRGVmbGF0ZT1BZSxpZS5kZWZsYXRlPWtlLGllLmRl''@;'; + put 'put ''ZmxhdGVSYXc9ZnVuY3Rpb24gU2UoVGUsRWUpe3JldHVybihFZT1FZXx8e30pLnJhdz0hMCxrZShUZSxFZSl9LGllLmd6aXA9ZnVuY3Rpb24gSWUoVGUsRWUpe3JldHVybihFZT1FZXx8e30pLmd6aXA9ITAsa2UoVGUsRWUpfX0seyIuL3V0aWxzL2NvbW1vbiI6MjcsIi4vdXRpbHMvc3RyaW5n''@;'; + put 'put ''cyI6MjgsIi4vemxpYi9kZWZsYXRlLmpzIjozMiwiLi96bGliL21lc3NhZ2VzIjozNywiLi96bGliL3pzdHJlYW0iOjM5fV0sMjY6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBsZT1RKCIuL3psaWIvaW5mbGF0ZS5qcyIpLFk9USgiLi91dGlscy9jb21tb24iKSxXPVEoIi4v''@;'; + put 'put ''dXRpbHMvc3RyaW5ncyIpLE49USgiLi96bGliL2NvbnN0YW50cyIpLGVlPVEoIi4vemxpYi9tZXNzYWdlcyIpLHE9USgiLi96bGliL3pzdHJlYW0iKSxKPVEoIi4vemxpYi9nemhlYWRlciIpLHNlPWZ1bmN0aW9uKGRlKXt0aGlzLm9wdGlvbnM9WS5hc3NpZ24oe2NodW5rU2l6ZToxNjM4NCx3''@;'; + put 'put ''aW5kb3dCaXRzOjAsdG86IiJ9LGRlfHx7fSk7dmFyIHZlPXRoaXMub3B0aW9uczt2ZS5yYXcmJnZlLndpbmRvd0JpdHM+PTAmJnZlLndpbmRvd0JpdHM8MTYmJih2ZS53aW5kb3dCaXRzPS12ZS53aW5kb3dCaXRzLDA9PT12ZS53aW5kb3dCaXRzJiYodmUud2luZG93Qml0cz0tMTUpKSx2ZS53''@;'; + put 'put ''aW5kb3dCaXRzPj0wJiZ2ZS53aW5kb3dCaXRzPDE2JiYhKGRlJiZkZS53aW5kb3dCaXRzKSYmKHZlLndpbmRvd0JpdHMrPTMyKSx2ZS53aW5kb3dCaXRzPjE1JiZ2ZS53aW5kb3dCaXRzPDQ4JiYwPT0oMTUmdmUud2luZG93Qml0cykmJih2ZS53aW5kb3dCaXRzfD0xNSksdGhpcy5lcnI9MCx0''@;'; + put 'put ''aGlzLm1zZz0iIix0aGlzLmVuZGVkPSExLHRoaXMuY2h1bmtzPVtdLHRoaXMuc3RybT1uZXcgcSx0aGlzLnN0cm0uYXZhaWxfb3V0PTA7dmFyIEFlPWxlLmluZmxhdGVJbml0Mih0aGlzLnN0cm0sdmUud2luZG93Qml0cyk7aWYoQWUhPT1OLlpfT0spdGhyb3cgbmV3IEVycm9yKGVlW0FlXSk7''@;'; + put 'put ''dGhpcy5oZWFkZXI9bmV3IEosbGUuaW5mbGF0ZUdldEhlYWRlcih0aGlzLnN0cm0sdGhpcy5oZWFkZXIpfTtmdW5jdGlvbiBvZShkZSx2ZSl7dmFyIEFlPW5ldyBzZSh2ZSk7aWYoQWUucHVzaChkZSwhMCksQWUuZXJyKXRocm93IEFlLm1zZztyZXR1cm4gQWUucmVzdWx0fXNlLnByb3RvdHlw''@;'; + put 'put ''ZS5wdXNoPWZ1bmN0aW9uKGRlLHZlKXt2YXIgU2UsSWUsVGUsRWUsaGUsQWU9dGhpcy5zdHJtLGtlPXRoaXMub3B0aW9ucy5jaHVua1NpemU7aWYodGhpcy5lbmRlZClyZXR1cm4hMTtJZT12ZT09PX5+dmU/dmU6ITA9PT12ZT9OLlpfRklOSVNIOk4uWl9OT19GTFVTSCxBZS5pbnB1dD0ic3Ry''@;'; + put 'put ''aW5nIj09dHlwZW9mIGRlP1cuYmluc3RyaW5nMmJ1ZihkZSk6ZGUsQWUubmV4dF9pbj0wLEFlLmF2YWlsX2luPUFlLmlucHV0Lmxlbmd0aDtkb3tpZigwPT09QWUuYXZhaWxfb3V0JiYoQWUub3V0cHV0PW5ldyBZLkJ1Zjgoa2UpLEFlLm5leHRfb3V0PTAsQWUuYXZhaWxfb3V0PWtlKSwoU2U9''@;'; + put 'put ''bGUuaW5mbGF0ZShBZSxOLlpfTk9fRkxVU0gpKSE9PU4uWl9TVFJFQU1fRU5EJiZTZSE9PU4uWl9PSylyZXR1cm4gdGhpcy5vbkVuZChTZSksdGhpcy5lbmRlZD0hMCwhMTtBZS5uZXh0X291dCYmKDA9PT1BZS5hdmFpbF9vdXR8fFNlPT09Ti5aX1NUUkVBTV9FTkR8fDA9PT1BZS5hdmFpbF9p''@;'; + put 'put ''biYmSWU9PT1OLlpfRklOSVNIKSYmKCJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvPyhUZT1XLnV0Zjhib3JkZXIoQWUub3V0cHV0LEFlLm5leHRfb3V0KSxFZT1BZS5uZXh0X291dC1UZSxoZT1XLmJ1ZjJzdHJpbmcoQWUub3V0cHV0LFRlKSxBZS5uZXh0X291dD1FZSxBZS5hdmFpbF9vdXQ9''@;'; + put 'put ''a2UtRWUsRWUmJlkuYXJyYXlTZXQoQWUub3V0cHV0LEFlLm91dHB1dCxUZSxFZSwwKSx0aGlzLm9uRGF0YShoZSkpOnRoaXMub25EYXRhKFkuc2hyaW5rQnVmKEFlLm91dHB1dCxBZS5uZXh0X291dCkpKX13aGlsZShBZS5hdmFpbF9pbj4wJiZTZSE9PU4uWl9TVFJFQU1fRU5EKTtyZXR1cm4g''@;'; + put 'put ''U2U9PT1OLlpfU1RSRUFNX0VORCYmKEllPU4uWl9GSU5JU0gpLEllIT09Ti5aX0ZJTklTSHx8KFNlPWxlLmluZmxhdGVFbmQodGhpcy5zdHJtKSx0aGlzLm9uRW5kKFNlKSx0aGlzLmVuZGVkPSEwLFNlPT09Ti5aX09LKX0sc2UucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihkZSl7dGhpcy5j''@;'; + put 'put ''aHVua3MucHVzaChkZSl9LHNlLnByb3RvdHlwZS5vbkVuZD1mdW5jdGlvbihkZSl7ZGU9PT1OLlpfT0smJih0aGlzLnJlc3VsdD0ic3RyaW5nIj09PXRoaXMub3B0aW9ucy50bz90aGlzLmNodW5rcy5qb2luKCIiKTpZLmZsYXR0ZW5DaHVua3ModGhpcy5jaHVua3MpKSx0aGlzLmNodW5rcz1b''@;'; + put 'put ''XSx0aGlzLmVycj1kZSx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfSxpZS5JbmZsYXRlPXNlLGllLmluZmxhdGU9b2UsaWUuaW5mbGF0ZVJhdz1mdW5jdGlvbiBjZShkZSx2ZSl7cmV0dXJuKHZlPXZlfHx7fSkucmF3PSEwLG9lKGRlLHZlKX0saWUudW5nemlwPW9lfSx7Ii4vdXRpbHMvY29tbW9u''@;'; + put 'put ''IjoyNywiLi91dGlscy9zdHJpbmdzIjoyOCwiLi96bGliL2NvbnN0YW50cyI6MzAsIi4vemxpYi9nemhlYWRlciI6MzMsIi4vemxpYi9pbmZsYXRlLmpzIjozNSwiLi96bGliL21lc3NhZ2VzIjozNywiLi96bGliL3pzdHJlYW0iOjM5fV0sMjc6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJp''@;'; + put 'put ''Y3QiO3ZhciBsZT0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDE2QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgSW50MzJBcnJheTtpZS5hc3NpZ249ZnVuY3Rpb24oTil7Zm9yKHZhciBlZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2Fs''@;'; + put 'put ''bChhcmd1bWVudHMsMSk7ZWUubGVuZ3RoOyl7dmFyIHE9ZWUuc2hpZnQoKTtpZihxKXtpZigib2JqZWN0IiE9dHlwZW9mIHEpdGhyb3cgbmV3IFR5cGVFcnJvcihxKyJtdXN0IGJlIG5vbi1vYmplY3QiKTtmb3IodmFyIEogaW4gcSlxLmhhc093blByb3BlcnR5KEopJiYoTltKXT1xW0pdKX19''@;'; + put 'put ''cmV0dXJuIE59LGllLnNocmlua0J1Zj1mdW5jdGlvbihOLGVlKXtyZXR1cm4gTi5sZW5ndGg9PT1lZT9OOk4uc3ViYXJyYXk/Ti5zdWJhcnJheSgwLGVlKTooTi5sZW5ndGg9ZWUsTil9O3ZhciBZPXthcnJheVNldDpmdW5jdGlvbihOLGVlLHEsSixzZSl7aWYoZWUuc3ViYXJyYXkmJk4uc3Vi''@;'; + put 'put ''YXJyYXkpTi5zZXQoZWUuc3ViYXJyYXkocSxxK0opLHNlKTtlbHNlIGZvcih2YXIgb2U9MDtvZTxKO29lKyspTltzZStvZV09ZWVbcStvZV19LGZsYXR0ZW5DaHVua3M6ZnVuY3Rpb24oTil7dmFyIGVlLHEsSixzZSxvZSxjZTtmb3IoSj0wLGVlPTAscT1OLmxlbmd0aDtlZTxxO2VlKyspSis9''@;'; + put 'put ''TltlZV0ubGVuZ3RoO2ZvcihjZT1uZXcgVWludDhBcnJheShKKSxzZT0wLGVlPTAscT1OLmxlbmd0aDtlZTxxO2VlKyspY2Uuc2V0KG9lPU5bZWVdLHNlKSxzZSs9b2UubGVuZ3RoO3JldHVybiBjZX19LFc9e2FycmF5U2V0OmZ1bmN0aW9uKE4sZWUscSxKLHNlKXtmb3IodmFyIG9lPTA7b2U8''@;'; + put 'put ''SjtvZSsrKU5bc2Urb2VdPWVlW3Erb2VdfSxmbGF0dGVuQ2h1bmtzOmZ1bmN0aW9uKE4pe3JldHVybltdLmNvbmNhdC5hcHBseShbXSxOKX19O2llLnNldFR5cGVkPWZ1bmN0aW9uKE4pe04/KGllLkJ1Zjg9VWludDhBcnJheSxpZS5CdWYxNj1VaW50MTZBcnJheSxpZS5CdWYzMj1JbnQzMkFy''@;'; + put 'put ''cmF5LGllLmFzc2lnbihpZSxZKSk6KGllLkJ1Zjg9QXJyYXksaWUuQnVmMTY9QXJyYXksaWUuQnVmMzI9QXJyYXksaWUuYXNzaWduKGllLFcpKX0saWUuc2V0VHlwZWQobGUpfSx7fV0sMjg6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO3ZhciBsZT1RKCIuL2NvbW1vbiIpLFk9ITAs''@;'; + put 'put ''Vz0hMDt0cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLFswXSl9Y2F0Y2goSil7WT0hMX10cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDEpKX1jYXRjaChKKXtXPSExfWZvcih2YXIgTj1uZXcgbGUuQnVmOCgyNTYpLGVlPTA7ZWU8MjU2''@;'; + put 'put ''O2VlKyspTltlZV09ZWU+PTI1Mj82OmVlPj0yNDg/NTplZT49MjQwPzQ6ZWU+PTIyND8zOmVlPj0xOTI/MjoxO2Z1bmN0aW9uIHEoSixzZSl7aWYoc2U8NjU1MzcmJihKLnN1YmFycmF5JiZXfHwhSi5zdWJhcnJheSYmWSkpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxs''@;'; + put 'put ''ZS5zaHJpbmtCdWYoSixzZSkpO2Zvcih2YXIgb2U9IiIsY2U9MDtjZTxzZTtjZSsrKW9lKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEpbY2VdKTtyZXR1cm4gb2V9TlsyNTRdPU5bMjU0XT0xLGllLnN0cmluZzJidWY9ZnVuY3Rpb24oSil7dmFyIHNlLG9lLGNlLGRlLHZlLEFlPUoubGVuZ3RoLGtl''@;'; + put 'put ''PTA7Zm9yKGRlPTA7ZGU8QWU7ZGUrKyk1NTI5Nj09KDY0NTEyJihvZT1KLmNoYXJDb2RlQXQoZGUpKSkmJmRlKzE8QWUmJjU2MzIwPT0oNjQ1MTImKGNlPUouY2hhckNvZGVBdChkZSsxKSkpJiYob2U9NjU1MzYrKG9lLTU1Mjk2PDwxMCkrKGNlLTU2MzIwKSxkZSsrKSxrZSs9b2U8MTI4PzE6''@;'; + put 'put ''b2U8MjA0OD8yOm9lPDY1NTM2PzM6NDtmb3Ioc2U9bmV3IGxlLkJ1Zjgoa2UpLHZlPTAsZGU9MDt2ZTxrZTtkZSsrKTU1Mjk2PT0oNjQ1MTImKG9lPUouY2hhckNvZGVBdChkZSkpKSYmZGUrMTxBZSYmNTYzMjA9PSg2NDUxMiYoY2U9Si5jaGFyQ29kZUF0KGRlKzEpKSkmJihvZT02NTUzNiso''@;'; + put 'put ''b2UtNTUyOTY8PDEwKSsoY2UtNTYzMjApLGRlKyspLG9lPDEyOD9zZVt2ZSsrXT1vZTpvZTwyMDQ4PyhzZVt2ZSsrXT0xOTJ8b2U+Pj42LHNlW3ZlKytdPTEyOHw2MyZvZSk6b2U8NjU1MzY/KHNlW3ZlKytdPTIyNHxvZT4+PjEyLHNlW3ZlKytdPTEyOHxvZT4+PjYmNjMsc2VbdmUrK109MTI4''@;'; + put 'put ''fDYzJm9lKTooc2VbdmUrK109MjQwfG9lPj4+MTgsc2VbdmUrK109MTI4fG9lPj4+MTImNjMsc2VbdmUrK109MTI4fG9lPj4+NiY2MyxzZVt2ZSsrXT0xMjh8NjMmb2UpO3JldHVybiBzZX0saWUuYnVmMmJpbnN0cmluZz1mdW5jdGlvbihKKXtyZXR1cm4gcShKLEoubGVuZ3RoKX0saWUuYmlu''@;'; + put 'put ''c3RyaW5nMmJ1Zj1mdW5jdGlvbihKKXtmb3IodmFyIHNlPW5ldyBsZS5CdWY4KEoubGVuZ3RoKSxvZT0wLGNlPXNlLmxlbmd0aDtvZTxjZTtvZSsrKXNlW29lXT1KLmNoYXJDb2RlQXQob2UpO3JldHVybiBzZX0saWUuYnVmMnN0cmluZz1mdW5jdGlvbihKLHNlKXt2YXIgb2UsY2UsZGUsdmUs''@;'; + put 'put ''QWU9c2V8fEoubGVuZ3RoLGtlPW5ldyBBcnJheSgyKkFlKTtmb3IoY2U9MCxvZT0wO29lPEFlOylpZigoZGU9SltvZSsrXSk8MTI4KWtlW2NlKytdPWRlO2Vsc2UgaWYoKHZlPU5bZGVdKT40KWtlW2NlKytdPTY1NTMzLG9lKz12ZS0xO2Vsc2V7Zm9yKGRlJj0yPT09dmU/MzE6Mz09PXZlPzE1''@;'; + put 'put ''Ojc7dmU+MSYmb2U8QWU7KWRlPWRlPDw2fDYzJkpbb2UrK10sdmUtLTt2ZT4xP2tlW2NlKytdPTY1NTMzOmRlPDY1NTM2P2tlW2NlKytdPWRlOihrZVtjZSsrXT01NTI5NnwoZGUtPTY1NTM2KT4+MTAmMTAyMyxrZVtjZSsrXT01NjMyMHwxMDIzJmRlKX1yZXR1cm4gcShrZSxjZSl9LGllLnV0''@;'; + put 'put ''Zjhib3JkZXI9ZnVuY3Rpb24oSixzZSl7dmFyIG9lO2Zvcigoc2U9c2V8fEoubGVuZ3RoKT5KLmxlbmd0aCYmKHNlPUoubGVuZ3RoKSxvZT1zZS0xO29lPj0wJiYxMjg9PSgxOTImSltvZV0pOylvZS0tO3JldHVybiBvZTwwfHwwPT09b2U/c2U6b2UrTltKW29lXV0+c2U/b2U6c2V9fSx7Ii4v''@;'; + put 'put ''Y29tbW9uIjoyN31dLDI5OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0IjtaLmV4cG9ydHM9ZnVuY3Rpb24gbGUoWSxXLE4sZWUpe2Zvcih2YXIgcT02NTUzNSZZfDAsSj1ZPj4+MTYmNjU1MzV8MCxzZT0wOzAhPT1OOyl7Ti09c2U9Tj4yZTM/MmUzOk47ZG97Sj1KKyhxPXErV1tlZSsr''@;'; + put 'put ''XXwwKXwwfXdoaWxlKC0tc2UpO3ElPTY1NTIxLEolPTY1NTIxfXJldHVybiBxfEo8PDE2fDB9fSx7fV0sMzA6W2Z1bmN0aW9uKFEsWixpZSl7Wi5leHBvcnRzPXtaX05PX0ZMVVNIOjAsWl9QQVJUSUFMX0ZMVVNIOjEsWl9TWU5DX0ZMVVNIOjIsWl9GVUxMX0ZMVVNIOjMsWl9GSU5JU0g6NCxa''@;'; + put 'put ''X0JMT0NLOjUsWl9UUkVFUzo2LFpfT0s6MCxaX1NUUkVBTV9FTkQ6MSxaX05FRURfRElDVDoyLFpfRVJSTk86LTEsWl9TVFJFQU1fRVJST1I6LTIsWl9EQVRBX0VSUk9SOi0zLFpfQlVGX0VSUk9SOi01LFpfTk9fQ09NUFJFU1NJT046MCxaX0JFU1RfU1BFRUQ6MSxaX0JFU1RfQ09NUFJFU1NJ''@;'; + put 'put ''T046OSxaX0RFRkFVTFRfQ09NUFJFU1NJT046LTEsWl9GSUxURVJFRDoxLFpfSFVGRk1BTl9PTkxZOjIsWl9STEU6MyxaX0ZJWEVEOjQsWl9ERUZBVUxUX1NUUkFURUdZOjAsWl9CSU5BUlk6MCxaX1RFWFQ6MSxaX1VOS05PV046MixaX0RFRkxBVEVEOjh9fSx7fV0sMzE6W2Z1bmN0aW9uKFEs''@;'; + put 'put ''WixpZSl7InVzZSBzdHJpY3QiO3ZhciBZPWZ1bmN0aW9uIGxlKCl7Zm9yKHZhciBOLGVlPVtdLHE9MDtxPDI1NjtxKyspe049cTtmb3IodmFyIEo9MDtKPDg7SisrKU49MSZOPzM5ODgyOTIzODReTj4+PjE6Tj4+PjE7ZWVbcV09Tn1yZXR1cm4gZWV9KCk7Wi5leHBvcnRzPWZ1bmN0aW9uIFco''@;'; + put 'put ''TixlZSxxLEope3ZhciBzZT1ZLG9lPUorcTtOXj0tMTtmb3IodmFyIGNlPUo7Y2U8b2U7Y2UrKylOPU4+Pj44XnNlWzI1NSYoTl5lZVtjZV0pXTtyZXR1cm4tMV5OfX0se31dLDMyOltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbGU9USgiLi4vdXRpbHMvY29tbW9uIiksWT1R''@;'; + put 'put ''KCIuL3RyZWVzIiksVz1RKCIuL2FkbGVyMzIiKSxOPVEoIi4vY3JjMzIiKSxlZT1RKCIuL21lc3NhZ2VzIiksZ3Q9MjYyO2Z1bmN0aW9uIGZ0KE50LHNuKXtyZXR1cm4gTnQubXNnPWVlW3NuXSxzbn1mdW5jdGlvbiBIdChOdCl7cmV0dXJuKE50PDwxKS0oTnQ+ND85OjApfWZ1bmN0aW9uIEdl''@;'; + put 'put ''KE50KXtmb3IodmFyIHNuPU50Lmxlbmd0aDstLXNuPj0wOylOdFtzbl09MH1mdW5jdGlvbiBVZShOdCl7dmFyIHNuPU50LnN0YXRlLFVuPXNuLnBlbmRpbmc7VW4+TnQuYXZhaWxfb3V0JiYoVW49TnQuYXZhaWxfb3V0KSwwIT09VW4mJihsZS5hcnJheVNldChOdC5vdXRwdXQsc24ucGVuZGlu''@;'; + put 'put ''Z19idWYsc24ucGVuZGluZ19vdXQsVW4sTnQubmV4dF9vdXQpLE50Lm5leHRfb3V0Kz1Vbixzbi5wZW5kaW5nX291dCs9VW4sTnQudG90YWxfb3V0Kz1VbixOdC5hdmFpbF9vdXQtPVVuLHNuLnBlbmRpbmctPVVuLDA9PT1zbi5wZW5kaW5nJiYoc24ucGVuZGluZ19vdXQ9MCkpfWZ1bmN0aW9u''@;'; + put 'put ''IHl0KE50LHNuKXtZLl90cl9mbHVzaF9ibG9jayhOdCxOdC5ibG9ja19zdGFydD49MD9OdC5ibG9ja19zdGFydDotMSxOdC5zdHJzdGFydC1OdC5ibG9ja19zdGFydCxzbiksTnQuYmxvY2tfc3RhcnQ9TnQuc3Ryc3RhcnQsVWUoTnQuc3RybSl9ZnVuY3Rpb24ganQoTnQsc24pe050LnBlbmRp''@;'; + put 'put ''bmdfYnVmW050LnBlbmRpbmcrK109c259ZnVuY3Rpb24gUXQoTnQsc24pe050LnBlbmRpbmdfYnVmW050LnBlbmRpbmcrK109c24+Pj44JjI1NSxOdC5wZW5kaW5nX2J1ZltOdC5wZW5kaW5nKytdPTI1NSZzbn1mdW5jdGlvbiBnbihOdCxzbixVbix3bil7dmFyIHRuPU50LmF2YWlsX2luO3Jl''@;'; + put 'put ''dHVybiB0bj53biYmKHRuPXduKSwwPT09dG4/MDooTnQuYXZhaWxfaW4tPXRuLGxlLmFycmF5U2V0KHNuLE50LmlucHV0LE50Lm5leHRfaW4sdG4sVW4pLDE9PT1OdC5zdGF0ZS53cmFwP050LmFkbGVyPVcoTnQuYWRsZXIsc24sdG4sVW4pOjI9PT1OdC5zdGF0ZS53cmFwJiYoTnQuYWRsZXI9''@;'; + put 'put ''TihOdC5hZGxlcixzbix0bixVbikpLE50Lm5leHRfaW4rPXRuLE50LnRvdGFsX2luKz10bix0bil9ZnVuY3Rpb24gZG4oTnQsc24pe3ZhciB0bix6bixVbj1OdC5tYXhfY2hhaW5fbGVuZ3RoLHduPU50LnN0cnN0YXJ0LFRyPU50LnByZXZfbGVuZ3RoLEJuPU50Lm5pY2VfbWF0Y2gsa3I9TnQu''@;'; + put 'put ''c3Ryc3RhcnQ+TnQud19zaXplLWd0P050LnN0cnN0YXJ0LShOdC53X3NpemUtZ3QpOjAsbW49TnQud2luZG93LHVuPU50LndfbWFzayxjbj1OdC5wcmV2LF9uPU50LnN0cnN0YXJ0KzI1OCxHdD1tblt3bitUci0xXSxrbj1tblt3bitUcl07TnQucHJldl9sZW5ndGg+PU50Lmdvb2RfbWF0Y2gm''@;'; + put 'put ''JihVbj4+PTIpLEJuPk50Lmxvb2thaGVhZCYmKEJuPU50Lmxvb2thaGVhZCk7ZG97aWYobW5bKHRuPXNuKStUcl09PT1rbiYmbW5bdG4rVHItMV09PT1HdCYmbW5bdG5dPT09bW5bd25dJiZtblsrK3RuXT09PW1uW3duKzFdKXt3bis9Mix0bisrO2Rve313aGlsZShtblsrK3duXT09PW1uWysr''@;'; + put 'put ''dG5dJiZtblsrK3duXT09PW1uWysrdG5dJiZtblsrK3duXT09PW1uWysrdG5dJiZtblsrK3duXT09PW1uWysrdG5dJiZtblsrK3duXT09PW1uWysrdG5dJiZtblsrK3duXT09PW1uWysrdG5dJiZtblsrK3duXT09PW1uWysrdG5dJiZtblsrK3duXT09PW1uWysrdG5dJiZ3bjxfbik7aWYoem49''@;'; + put 'put ''MjU4LShfbi13biksd249X24tMjU4LHpuPlRyKXtpZihOdC5tYXRjaF9zdGFydD1zbixUcj16bix6bj49Qm4pYnJlYWs7R3Q9bW5bd24rVHItMV0sa249bW5bd24rVHJdfX19d2hpbGUoKHNuPWNuW3NuJnVuXSk+a3ImJjAhPS0tVW4pO3JldHVybiBUcjw9TnQubG9va2FoZWFkP1RyOk50Lmxv''@;'; + put 'put ''b2thaGVhZH1mdW5jdGlvbiB5bihOdCl7dmFyIFVuLHduLHRuLHpuLFRyLHNuPU50Lndfc2l6ZTtkb3tpZih6bj1OdC53aW5kb3dfc2l6ZS1OdC5sb29rYWhlYWQtTnQuc3Ryc3RhcnQsTnQuc3Ryc3RhcnQ+PXNuKyhzbi1ndCkpe2xlLmFycmF5U2V0KE50LndpbmRvdyxOdC53aW5kb3csc24s''@;'; + put 'put ''c24sMCksTnQubWF0Y2hfc3RhcnQtPXNuLE50LnN0cnN0YXJ0LT1zbixOdC5ibG9ja19zdGFydC09c24sVW49d249TnQuaGFzaF9zaXplO2Rve3RuPU50LmhlYWRbLS1Vbl0sTnQuaGVhZFtVbl09dG4+PXNuP3RuLXNuOjB9d2hpbGUoLS13bik7VW49d249c247ZG97dG49TnQucHJldlstLVVu''@;'; + put 'put ''XSxOdC5wcmV2W1VuXT10bj49c24/dG4tc246MH13aGlsZSgtLXduKTt6bis9c259aWYoMD09PU50LnN0cm0uYXZhaWxfaW4pYnJlYWs7aWYod249Z24oTnQuc3RybSxOdC53aW5kb3csTnQuc3Ryc3RhcnQrTnQubG9va2FoZWFkLHpuKSxOdC5sb29rYWhlYWQrPXduLE50Lmxvb2thaGVhZCtO''@;'; + put 'put ''dC5pbnNlcnQ+PTMpZm9yKE50Lmluc19oPU50LndpbmRvd1tUcj1OdC5zdHJzdGFydC1OdC5pbnNlcnRdLE50Lmluc19oPShOdC5pbnNfaDw8TnQuaGFzaF9zaGlmdF5OdC53aW5kb3dbVHIrMV0pJk50Lmhhc2hfbWFzaztOdC5pbnNlcnQmJihOdC5pbnNfaD0oTnQuaW5zX2g8PE50Lmhhc2hf''@;'; + put 'put ''c2hpZnReTnQud2luZG93W1RyKzMtMV0pJk50Lmhhc2hfbWFzayxOdC5wcmV2W1RyJk50LndfbWFza109TnQuaGVhZFtOdC5pbnNfaF0sTnQuaGVhZFtOdC5pbnNfaF09VHIsVHIrKyxOdC5pbnNlcnQtLSwhKE50Lmxvb2thaGVhZCtOdC5pbnNlcnQ8MykpOyk7fXdoaWxlKE50Lmxvb2thaGVh''@;'; + put 'put ''ZDxndCYmMCE9PU50LnN0cm0uYXZhaWxfaW4pfWZ1bmN0aW9uIE5uKE50LHNuKXtmb3IodmFyIFVuLHduOzspe2lmKE50Lmxvb2thaGVhZDxndCl7aWYoeW4oTnQpLE50Lmxvb2thaGVhZDxndCYmMD09PXNuKXJldHVybiAxO2lmKDA9PT1OdC5sb29rYWhlYWQpYnJlYWt9aWYoVW49MCxOdC5s''@;'; + put 'put ''b29rYWhlYWQ+PTMmJihOdC5pbnNfaD0oTnQuaW5zX2g8PE50Lmhhc2hfc2hpZnReTnQud2luZG93W050LnN0cnN0YXJ0KzMtMV0pJk50Lmhhc2hfbWFzayxVbj1OdC5wcmV2W050LnN0cnN0YXJ0Jk50LndfbWFza109TnQuaGVhZFtOdC5pbnNfaF0sTnQuaGVhZFtOdC5pbnNfaF09TnQuc3Ry''@;'; + put 'put ''c3RhcnQpLDAhPT1VbiYmTnQuc3Ryc3RhcnQtVW48PU50Lndfc2l6ZS1ndCYmKE50Lm1hdGNoX2xlbmd0aD1kbihOdCxVbikpLE50Lm1hdGNoX2xlbmd0aD49MylpZih3bj1ZLl90cl90YWxseShOdCxOdC5zdHJzdGFydC1OdC5tYXRjaF9zdGFydCxOdC5tYXRjaF9sZW5ndGgtMyksTnQubG9v''@;'; + put 'put ''a2FoZWFkLT1OdC5tYXRjaF9sZW5ndGgsTnQubWF0Y2hfbGVuZ3RoPD1OdC5tYXhfbGF6eV9tYXRjaCYmTnQubG9va2FoZWFkPj0zKXtOdC5tYXRjaF9sZW5ndGgtLTtkb3tOdC5zdHJzdGFydCsrLE50Lmluc19oPShOdC5pbnNfaDw8TnQuaGFzaF9zaGlmdF5OdC53aW5kb3dbTnQuc3Ryc3Rh''@;'; + put 'put ''cnQrMy0xXSkmTnQuaGFzaF9tYXNrLFVuPU50LnByZXZbTnQuc3Ryc3RhcnQmTnQud19tYXNrXT1OdC5oZWFkW050Lmluc19oXSxOdC5oZWFkW050Lmluc19oXT1OdC5zdHJzdGFydH13aGlsZSgwIT0tLU50Lm1hdGNoX2xlbmd0aCk7TnQuc3Ryc3RhcnQrK31lbHNlIE50LnN0cnN0YXJ0Kz1O''@;'; + put 'put ''dC5tYXRjaF9sZW5ndGgsTnQubWF0Y2hfbGVuZ3RoPTAsTnQuaW5zX2g9TnQud2luZG93W050LnN0cnN0YXJ0XSxOdC5pbnNfaD0oTnQuaW5zX2g8PE50Lmhhc2hfc2hpZnReTnQud2luZG93W050LnN0cnN0YXJ0KzFdKSZOdC5oYXNoX21hc2s7ZWxzZSB3bj1ZLl90cl90YWxseShOdCwwLE50''@;'; + put 'put ''LndpbmRvd1tOdC5zdHJzdGFydF0pLE50Lmxvb2thaGVhZC0tLE50LnN0cnN0YXJ0Kys7aWYod24mJih5dChOdCwhMSksMD09PU50LnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gMX1yZXR1cm4gTnQuaW5zZXJ0PU50LnN0cnN0YXJ0PDI/TnQuc3Ryc3RhcnQ6Miw0PT09c24/KHl0KE50LCEwKSww''@;'; + put 'put ''PT09TnQuc3RybS5hdmFpbF9vdXQ/Mzo0KTpOdC5sYXN0X2xpdCYmKHl0KE50LCExKSwwPT09TnQuc3RybS5hdmFpbF9vdXQpPzE6Mn1mdW5jdGlvbiBibihOdCxzbil7Zm9yKHZhciBVbix3bix0bjs7KXtpZihOdC5sb29rYWhlYWQ8Z3Qpe2lmKHluKE50KSxOdC5sb29rYWhlYWQ8Z3QmJjA9''@;'; + put 'put ''PT1zbilyZXR1cm4gMTtpZigwPT09TnQubG9va2FoZWFkKWJyZWFrfWlmKFVuPTAsTnQubG9va2FoZWFkPj0zJiYoTnQuaW5zX2g9KE50Lmluc19oPDxOdC5oYXNoX3NoaWZ0Xk50LndpbmRvd1tOdC5zdHJzdGFydCszLTFdKSZOdC5oYXNoX21hc2ssVW49TnQucHJldltOdC5zdHJzdGFydCZO''@;'; + put 'put ''dC53X21hc2tdPU50LmhlYWRbTnQuaW5zX2hdLE50LmhlYWRbTnQuaW5zX2hdPU50LnN0cnN0YXJ0KSxOdC5wcmV2X2xlbmd0aD1OdC5tYXRjaF9sZW5ndGgsTnQucHJldl9tYXRjaD1OdC5tYXRjaF9zdGFydCxOdC5tYXRjaF9sZW5ndGg9MiwwIT09VW4mJk50LnByZXZfbGVuZ3RoPE50Lm1h''@;'; + put 'put ''eF9sYXp5X21hdGNoJiZOdC5zdHJzdGFydC1Vbjw9TnQud19zaXplLWd0JiYoTnQubWF0Y2hfbGVuZ3RoPWRuKE50LFVuKSxOdC5tYXRjaF9sZW5ndGg8PTUmJigxPT09TnQuc3RyYXRlZ3l8fDM9PT1OdC5tYXRjaF9sZW5ndGgmJk50LnN0cnN0YXJ0LU50Lm1hdGNoX3N0YXJ0PjQwOTYpJiYo''@;'; + put 'put ''TnQubWF0Y2hfbGVuZ3RoPTIpKSxOdC5wcmV2X2xlbmd0aD49MyYmTnQubWF0Y2hfbGVuZ3RoPD1OdC5wcmV2X2xlbmd0aCl7dG49TnQuc3Ryc3RhcnQrTnQubG9va2FoZWFkLTMsd249WS5fdHJfdGFsbHkoTnQsTnQuc3Ryc3RhcnQtMS1OdC5wcmV2X21hdGNoLE50LnByZXZfbGVuZ3RoLTMp''@;'; + put 'put ''LE50Lmxvb2thaGVhZC09TnQucHJldl9sZW5ndGgtMSxOdC5wcmV2X2xlbmd0aC09Mjtkb3srK050LnN0cnN0YXJ0PD10biYmKE50Lmluc19oPShOdC5pbnNfaDw8TnQuaGFzaF9zaGlmdF5OdC53aW5kb3dbTnQuc3Ryc3RhcnQrMy0xXSkmTnQuaGFzaF9tYXNrLFVuPU50LnByZXZbTnQuc3Ry''@;'; + put 'put ''c3RhcnQmTnQud19tYXNrXT1OdC5oZWFkW050Lmluc19oXSxOdC5oZWFkW050Lmluc19oXT1OdC5zdHJzdGFydCl9d2hpbGUoMCE9LS1OdC5wcmV2X2xlbmd0aCk7aWYoTnQubWF0Y2hfYXZhaWxhYmxlPTAsTnQubWF0Y2hfbGVuZ3RoPTIsTnQuc3Ryc3RhcnQrKyx3biYmKHl0KE50LCExKSww''@;'; + put 'put ''PT09TnQuc3RybS5hdmFpbF9vdXQpKXJldHVybiAxfWVsc2UgaWYoTnQubWF0Y2hfYXZhaWxhYmxlKXtpZigod249WS5fdHJfdGFsbHkoTnQsMCxOdC53aW5kb3dbTnQuc3Ryc3RhcnQtMV0pKSYmeXQoTnQsITEpLE50LnN0cnN0YXJ0KyssTnQubG9va2FoZWFkLS0sMD09PU50LnN0cm0uYXZh''@;'; + put 'put ''aWxfb3V0KXJldHVybiAxfWVsc2UgTnQubWF0Y2hfYXZhaWxhYmxlPTEsTnQuc3Ryc3RhcnQrKyxOdC5sb29rYWhlYWQtLX1yZXR1cm4gTnQubWF0Y2hfYXZhaWxhYmxlJiYod249WS5fdHJfdGFsbHkoTnQsMCxOdC53aW5kb3dbTnQuc3Ryc3RhcnQtMV0pLE50Lm1hdGNoX2F2YWlsYWJsZT0w''@;'; + put 'put ''KSxOdC5pbnNlcnQ9TnQuc3Ryc3RhcnQ8Mj9OdC5zdHJzdGFydDoyLDQ9PT1zbj8oeXQoTnQsITApLDA9PT1OdC5zdHJtLmF2YWlsX291dD8zOjQpOk50Lmxhc3RfbGl0JiYoeXQoTnQsITEpLDA9PT1OdC5zdHJtLmF2YWlsX291dCk/MToyfXZhciBGcixYbj1mdW5jdGlvbihOdCxzbixVbix3''@;'; + put 'put ''bix0bil7dGhpcy5nb29kX2xlbmd0aD1OdCx0aGlzLm1heF9sYXp5PXNuLHRoaXMubmljZV9sZW5ndGg9VW4sdGhpcy5tYXhfY2hhaW49d24sdGhpcy5mdW5jPXRufTtmdW5jdGlvbiBxdCgpe3RoaXMuc3RybT1udWxsLHRoaXMuc3RhdHVzPTAsdGhpcy5wZW5kaW5nX2J1Zj1udWxsLHRoaXMu''@;'; + put 'put ''cGVuZGluZ19idWZfc2l6ZT0wLHRoaXMucGVuZGluZ19vdXQ9MCx0aGlzLnBlbmRpbmc9MCx0aGlzLndyYXA9MCx0aGlzLmd6aGVhZD1udWxsLHRoaXMuZ3ppbmRleD0wLHRoaXMubWV0aG9kPTgsdGhpcy5sYXN0X2ZsdXNoPS0xLHRoaXMud19zaXplPTAsdGhpcy53X2JpdHM9MCx0aGlzLndf''@;'; + put 'put ''bWFzaz0wLHRoaXMud2luZG93PW51bGwsdGhpcy53aW5kb3dfc2l6ZT0wLHRoaXMucHJldj1udWxsLHRoaXMuaGVhZD1udWxsLHRoaXMuaW5zX2g9MCx0aGlzLmhhc2hfc2l6ZT0wLHRoaXMuaGFzaF9iaXRzPTAsdGhpcy5oYXNoX21hc2s9MCx0aGlzLmhhc2hfc2hpZnQ9MCx0aGlzLmJsb2Nr''@;'; + put 'put ''X3N0YXJ0PTAsdGhpcy5tYXRjaF9sZW5ndGg9MCx0aGlzLnByZXZfbWF0Y2g9MCx0aGlzLm1hdGNoX2F2YWlsYWJsZT0wLHRoaXMuc3Ryc3RhcnQ9MCx0aGlzLm1hdGNoX3N0YXJ0PTAsdGhpcy5sb29rYWhlYWQ9MCx0aGlzLnByZXZfbGVuZ3RoPTAsdGhpcy5tYXhfY2hhaW5fbGVuZ3RoPTAs''@;'; + put 'put ''dGhpcy5tYXhfbGF6eV9tYXRjaD0wLHRoaXMubGV2ZWw9MCx0aGlzLnN0cmF0ZWd5PTAsdGhpcy5nb29kX21hdGNoPTAsdGhpcy5uaWNlX21hdGNoPTAsdGhpcy5keW5fbHRyZWU9bmV3IGxlLkJ1ZjE2KDExNDYpLHRoaXMuZHluX2R0cmVlPW5ldyBsZS5CdWYxNigxMjIpLHRoaXMuYmxfdHJl''@;'; + put 'put ''ZT1uZXcgbGUuQnVmMTYoNzgpLEdlKHRoaXMuZHluX2x0cmVlKSxHZSh0aGlzLmR5bl9kdHJlZSksR2UodGhpcy5ibF90cmVlKSx0aGlzLmxfZGVzYz1udWxsLHRoaXMuZF9kZXNjPW51bGwsdGhpcy5ibF9kZXNjPW51bGwsdGhpcy5ibF9jb3VudD1uZXcgbGUuQnVmMTYoMTYpLHRoaXMuaGVh''@;'; + put 'put ''cD1uZXcgbGUuQnVmMTYoNTczKSxHZSh0aGlzLmhlYXApLHRoaXMuaGVhcF9sZW49MCx0aGlzLmhlYXBfbWF4PTAsdGhpcy5kZXB0aD1uZXcgbGUuQnVmMTYoNTczKSxHZSh0aGlzLmRlcHRoKSx0aGlzLmxfYnVmPTAsdGhpcy5saXRfYnVmc2l6ZT0wLHRoaXMubGFzdF9saXQ9MCx0aGlzLmRf''@;'; + put 'put ''YnVmPTAsdGhpcy5vcHRfbGVuPTAsdGhpcy5zdGF0aWNfbGVuPTAsdGhpcy5tYXRjaGVzPTAsdGhpcy5pbnNlcnQ9MCx0aGlzLmJpX2J1Zj0wLHRoaXMuYmlfdmFsaWQ9MH1mdW5jdGlvbiBwcihOdCl7dmFyIHNuO3JldHVybiBOdCYmTnQuc3RhdGU/KE50LnRvdGFsX2luPU50LnRvdGFsX291''@;'; + put 'put ''dD0wLE50LmRhdGFfdHlwZT0yLChzbj1OdC5zdGF0ZSkucGVuZGluZz0wLHNuLnBlbmRpbmdfb3V0PTAsc24ud3JhcDwwJiYoc24ud3JhcD0tc24ud3JhcCksc24uc3RhdHVzPXNuLndyYXA/NDI6MTEzLE50LmFkbGVyPTI9PT1zbi53cmFwPzA6MSxzbi5sYXN0X2ZsdXNoPTAsWS5fdHJfaW5p''@;'; + put 'put ''dChzbiksMCk6ZnQoTnQsLTIpfWZ1bmN0aW9uIG5yKE50KXt2YXIgc249cHIoTnQpO3JldHVybiAwPT09c24mJmZ1bmN0aW9uIHhyKE50KXtOdC53aW5kb3dfc2l6ZT0yKk50Lndfc2l6ZSxHZShOdC5oZWFkKSxOdC5tYXhfbGF6eV9tYXRjaD1GcltOdC5sZXZlbF0ubWF4X2xhenksTnQuZ29v''@;'; + put 'put ''ZF9tYXRjaD1GcltOdC5sZXZlbF0uZ29vZF9sZW5ndGgsTnQubmljZV9tYXRjaD1GcltOdC5sZXZlbF0ubmljZV9sZW5ndGgsTnQubWF4X2NoYWluX2xlbmd0aD1GcltOdC5sZXZlbF0ubWF4X2NoYWluLE50LnN0cnN0YXJ0PTAsTnQuYmxvY2tfc3RhcnQ9MCxOdC5sb29rYWhlYWQ9MCxOdC5p''@;'; + put 'put ''bnNlcnQ9MCxOdC5tYXRjaF9sZW5ndGg9TnQucHJldl9sZW5ndGg9MixOdC5tYXRjaF9hdmFpbGFibGU9MCxOdC5pbnNfaD0wfShOdC5zdGF0ZSksc259ZnVuY3Rpb24gcW4oTnQsc24sVW4sd24sdG4sem4pe2lmKCFOdClyZXR1cm4tMjt2YXIgVHI9MTtpZigtMT09PXNuJiYoc249Niksd248''@;'; + put 'put ''MD8oVHI9MCx3bj0td24pOnduPjE1JiYoVHI9Mix3bi09MTYpLHRuPDF8fHRuPjl8fDghPT1Vbnx8d248OHx8d24+MTV8fHNuPDB8fHNuPjl8fHpuPDB8fHpuPjQpcmV0dXJuIGZ0KE50LC0yKTs4PT09d24mJih3bj05KTt2YXIgQm49bmV3IHF0O3JldHVybiBOdC5zdGF0ZT1CbixCbi5zdHJt''@;'; + put 'put ''PU50LEJuLndyYXA9VHIsQm4uZ3poZWFkPW51bGwsQm4ud19iaXRzPXduLEJuLndfc2l6ZT0xPDxCbi53X2JpdHMsQm4ud19tYXNrPUJuLndfc2l6ZS0xLEJuLmhhc2hfYml0cz10bis3LEJuLmhhc2hfc2l6ZT0xPDxCbi5oYXNoX2JpdHMsQm4uaGFzaF9tYXNrPUJuLmhhc2hfc2l6ZS0xLEJu''@;'; + put 'put ''Lmhhc2hfc2hpZnQ9fn4oKEJuLmhhc2hfYml0cyszLTEpLzMpLEJuLndpbmRvdz1uZXcgbGUuQnVmOCgyKkJuLndfc2l6ZSksQm4uaGVhZD1uZXcgbGUuQnVmMTYoQm4uaGFzaF9zaXplKSxCbi5wcmV2PW5ldyBsZS5CdWYxNihCbi53X3NpemUpLEJuLmxpdF9idWZzaXplPTE8PHRuKzYsQm4u''@;'; + put 'put ''cGVuZGluZ19idWZfc2l6ZT00KkJuLmxpdF9idWZzaXplLEJuLnBlbmRpbmdfYnVmPW5ldyBsZS5CdWY4KEJuLnBlbmRpbmdfYnVmX3NpemUpLEJuLmRfYnVmPUJuLmxpdF9idWZzaXplPj4xLEJuLmxfYnVmPTMqQm4ubGl0X2J1ZnNpemUsQm4ubGV2ZWw9c24sQm4uc3RyYXRlZ3k9em4sQm4u''@;'; + put 'put ''bWV0aG9kPVVuLG5yKE50KX1Gcj1bbmV3IFhuKDAsMCwwLDAsZnVuY3Rpb24gbG4oTnQsc24pe3ZhciBVbj02NTUzNTtmb3IoVW4+TnQucGVuZGluZ19idWZfc2l6ZS01JiYoVW49TnQucGVuZGluZ19idWZfc2l6ZS01KTs7KXtpZihOdC5sb29rYWhlYWQ8PTEpe2lmKHluKE50KSwwPT09TnQu''@;'; + put 'put ''bG9va2FoZWFkJiYwPT09c24pcmV0dXJuIDE7aWYoMD09PU50Lmxvb2thaGVhZClicmVha31OdC5zdHJzdGFydCs9TnQubG9va2FoZWFkLE50Lmxvb2thaGVhZD0wO3ZhciB3bj1OdC5ibG9ja19zdGFydCtVbjtpZigoMD09PU50LnN0cnN0YXJ0fHxOdC5zdHJzdGFydD49d24pJiYoTnQubG9v''@;'; + put 'put ''a2FoZWFkPU50LnN0cnN0YXJ0LXduLE50LnN0cnN0YXJ0PXduLHl0KE50LCExKSwwPT09TnQuc3RybS5hdmFpbF9vdXQpfHxOdC5zdHJzdGFydC1OdC5ibG9ja19zdGFydD49TnQud19zaXplLWd0JiYoeXQoTnQsITEpLDA9PT1OdC5zdHJtLmF2YWlsX291dCkpcmV0dXJuIDF9cmV0dXJuIE50''@;'; + put 'put ''Lmluc2VydD0wLDQ9PT1zbj8oeXQoTnQsITApLDA9PT1OdC5zdHJtLmF2YWlsX291dD8zOjQpOihOdC5zdHJzdGFydD5OdC5ibG9ja19zdGFydCYmeXQoTnQsITEpLDEpfSksbmV3IFhuKDQsNCw4LDQsTm4pLG5ldyBYbig0LDUsMTYsOCxObiksbmV3IFhuKDQsNiwzMiwzMixObiksbmV3IFhu''@;'; + put 'put ''KDQsNCwxNiwxNixibiksbmV3IFhuKDgsMTYsMzIsMzIsYm4pLG5ldyBYbig4LDE2LDEyOCwxMjgsYm4pLG5ldyBYbig4LDMyLDEyOCwyNTYsYm4pLG5ldyBYbigzMiwxMjgsMjU4LDEwMjQsYm4pLG5ldyBYbigzMiwyNTgsMjU4LDQwOTYsYm4pXSxpZS5kZWZsYXRlSW5pdD1mdW5jdGlvbiBX''@;'; + put 'put ''dChOdCxzbil7cmV0dXJuIHFuKE50LHNuLDgsMTUsOCwwKX0saWUuZGVmbGF0ZUluaXQyPXFuLGllLmRlZmxhdGVSZXNldD1ucixpZS5kZWZsYXRlUmVzZXRLZWVwPXByLGllLmRlZmxhdGVTZXRIZWFkZXI9ZnVuY3Rpb24gQW4oTnQsc24pe3JldHVybiBOdCYmTnQuc3RhdGUmJjI9PT1OdC5z''@;'; + put 'put ''dGF0ZS53cmFwPyhOdC5zdGF0ZS5nemhlYWQ9c24sMCk6LTJ9LGllLmRlZmxhdGU9ZnVuY3Rpb24gcG4oTnQsc24pe3ZhciBVbix3bix0bix6bjtpZighTnR8fCFOdC5zdGF0ZXx8c24+NXx8c248MClyZXR1cm4gTnQ/ZnQoTnQsLTIpOi0yO2lmKHduPU50LnN0YXRlLCFOdC5vdXRwdXR8fCFO''@;'; + put 'put ''dC5pbnB1dCYmMCE9PU50LmF2YWlsX2lufHw2NjY9PT13bi5zdGF0dXMmJjQhPT1zbilyZXR1cm4gZnQoTnQsMD09PU50LmF2YWlsX291dD8tNTotMik7aWYod24uc3RybT1OdCxVbj13bi5sYXN0X2ZsdXNoLHduLmxhc3RfZmx1c2g9c24sNDI9PT13bi5zdGF0dXMpaWYoMj09PXduLndyYXAp''@;'; + put 'put ''TnQuYWRsZXI9MCxqdCh3biwzMSksanQod24sMTM5KSxqdCh3biw4KSx3bi5nemhlYWQ/KGp0KHduLCh3bi5nemhlYWQudGV4dD8xOjApKyh3bi5nemhlYWQuaGNyYz8yOjApKyh3bi5nemhlYWQuZXh0cmE/NDowKSsod24uZ3poZWFkLm5hbWU/ODowKSsod24uZ3poZWFkLmNvbW1lbnQ/MTY6''@;'; + put 'put ''MCkpLGp0KHduLDI1NSZ3bi5nemhlYWQudGltZSksanQod24sd24uZ3poZWFkLnRpbWU+PjgmMjU1KSxqdCh3bix3bi5nemhlYWQudGltZT4+MTYmMjU1KSxqdCh3bix3bi5nemhlYWQudGltZT4+MjQmMjU1KSxqdCh3biw5PT09d24ubGV2ZWw/Mjp3bi5zdHJhdGVneT49Mnx8d24ubGV2ZWw8''@;'; + put 'put ''Mj80OjApLGp0KHduLDI1NSZ3bi5nemhlYWQub3MpLHduLmd6aGVhZC5leHRyYSYmd24uZ3poZWFkLmV4dHJhLmxlbmd0aCYmKGp0KHduLDI1NSZ3bi5nemhlYWQuZXh0cmEubGVuZ3RoKSxqdCh3bix3bi5nemhlYWQuZXh0cmEubGVuZ3RoPj44JjI1NSkpLHduLmd6aGVhZC5oY3JjJiYoTnQu''@;'; + put 'put ''YWRsZXI9TihOdC5hZGxlcix3bi5wZW5kaW5nX2J1Zix3bi5wZW5kaW5nLDApKSx3bi5nemluZGV4PTAsd24uc3RhdHVzPTY5KTooanQod24sMCksanQod24sMCksanQod24sMCksanQod24sMCksanQod24sMCksanQod24sOT09PXduLmxldmVsPzI6d24uc3RyYXRlZ3k+PTJ8fHduLmxldmVs''@;'; + put 'put ''PDI/NDowKSxqdCh3biwzKSx3bi5zdGF0dXM9MTEzKTtlbHNle3ZhciBUcj04Kyh3bi53X2JpdHMtODw8NCk8PDg7VHJ8PSh3bi5zdHJhdGVneT49Mnx8d24ubGV2ZWw8Mj8wOnduLmxldmVsPDY/MTo2PT09d24ubGV2ZWw/MjozKTw8NiwwIT09d24uc3Ryc3RhcnQmJihUcnw9MzIpLFRyKz0z''@;'; + put 'put ''MS1UciUzMSx3bi5zdGF0dXM9MTEzLFF0KHduLFRyKSwwIT09d24uc3Ryc3RhcnQmJihRdCh3bixOdC5hZGxlcj4+PjE2KSxRdCh3biw2NTUzNSZOdC5hZGxlcikpLE50LmFkbGVyPTF9aWYoNjk9PT13bi5zdGF0dXMpaWYod24uZ3poZWFkLmV4dHJhKXtmb3IodG49d24ucGVuZGluZzt3bi5n''@;'; + put 'put ''emluZGV4PCg2NTUzNSZ3bi5nemhlYWQuZXh0cmEubGVuZ3RoKSYmKHduLnBlbmRpbmchPT13bi5wZW5kaW5nX2J1Zl9zaXplfHwod24uZ3poZWFkLmhjcmMmJnduLnBlbmRpbmc+dG4mJihOdC5hZGxlcj1OKE50LmFkbGVyLHduLnBlbmRpbmdfYnVmLHduLnBlbmRpbmctdG4sdG4pKSxVZShO''@;'; + put 'put ''dCksdG49d24ucGVuZGluZyx3bi5wZW5kaW5nIT09d24ucGVuZGluZ19idWZfc2l6ZSkpOylqdCh3biwyNTUmd24uZ3poZWFkLmV4dHJhW3duLmd6aW5kZXhdKSx3bi5nemluZGV4Kys7d24uZ3poZWFkLmhjcmMmJnduLnBlbmRpbmc+dG4mJihOdC5hZGxlcj1OKE50LmFkbGVyLHduLnBlbmRp''@;'; + put 'put ''bmdfYnVmLHduLnBlbmRpbmctdG4sdG4pKSx3bi5nemluZGV4PT09d24uZ3poZWFkLmV4dHJhLmxlbmd0aCYmKHduLmd6aW5kZXg9MCx3bi5zdGF0dXM9NzMpfWVsc2Ugd24uc3RhdHVzPTczO2lmKDczPT09d24uc3RhdHVzKWlmKHduLmd6aGVhZC5uYW1lKXt0bj13bi5wZW5kaW5nO2Rve2lm''@;'; + put 'put ''KHduLnBlbmRpbmc9PT13bi5wZW5kaW5nX2J1Zl9zaXplJiYod24uZ3poZWFkLmhjcmMmJnduLnBlbmRpbmc+dG4mJihOdC5hZGxlcj1OKE50LmFkbGVyLHduLnBlbmRpbmdfYnVmLHduLnBlbmRpbmctdG4sdG4pKSxVZShOdCksdG49d24ucGVuZGluZyx3bi5wZW5kaW5nPT09d24ucGVuZGlu''@;'; + put 'put ''Z19idWZfc2l6ZSkpe3puPTE7YnJlYWt9em49d24uZ3ppbmRleDx3bi5nemhlYWQubmFtZS5sZW5ndGg/MjU1JnduLmd6aGVhZC5uYW1lLmNoYXJDb2RlQXQod24uZ3ppbmRleCsrKTowLGp0KHduLHpuKX13aGlsZSgwIT09em4pO3duLmd6aGVhZC5oY3JjJiZ3bi5wZW5kaW5nPnRuJiYoTnQu''@;'; + put 'put ''YWRsZXI9TihOdC5hZGxlcix3bi5wZW5kaW5nX2J1Zix3bi5wZW5kaW5nLXRuLHRuKSksMD09PXpuJiYod24uZ3ppbmRleD0wLHduLnN0YXR1cz05MSl9ZWxzZSB3bi5zdGF0dXM9OTE7aWYoOTE9PT13bi5zdGF0dXMpaWYod24uZ3poZWFkLmNvbW1lbnQpe3RuPXduLnBlbmRpbmc7ZG97aWYo''@;'; + put 'put ''d24ucGVuZGluZz09PXduLnBlbmRpbmdfYnVmX3NpemUmJih3bi5nemhlYWQuaGNyYyYmd24ucGVuZGluZz50biYmKE50LmFkbGVyPU4oTnQuYWRsZXIsd24ucGVuZGluZ19idWYsd24ucGVuZGluZy10bix0bikpLFVlKE50KSx0bj13bi5wZW5kaW5nLHduLnBlbmRpbmc9PT13bi5wZW5kaW5n''@;'; + put 'put ''X2J1Zl9zaXplKSl7em49MTticmVha316bj13bi5nemluZGV4PHduLmd6aGVhZC5jb21tZW50Lmxlbmd0aD8yNTUmd24uZ3poZWFkLmNvbW1lbnQuY2hhckNvZGVBdCh3bi5nemluZGV4KyspOjAsanQod24sem4pfXdoaWxlKDAhPT16bik7d24uZ3poZWFkLmhjcmMmJnduLnBlbmRpbmc+dG4m''@;'; + put 'put ''JihOdC5hZGxlcj1OKE50LmFkbGVyLHduLnBlbmRpbmdfYnVmLHduLnBlbmRpbmctdG4sdG4pKSwwPT09em4mJih3bi5zdGF0dXM9MTAzKX1lbHNlIHduLnN0YXR1cz0xMDM7aWYoMTAzPT09d24uc3RhdHVzJiYod24uZ3poZWFkLmhjcmM/KHduLnBlbmRpbmcrMj53bi5wZW5kaW5nX2J1Zl9z''@;'; + put 'put ''aXplJiZVZShOdCksd24ucGVuZGluZysyPD13bi5wZW5kaW5nX2J1Zl9zaXplJiYoanQod24sMjU1Jk50LmFkbGVyKSxqdCh3bixOdC5hZGxlcj4+OCYyNTUpLE50LmFkbGVyPTAsd24uc3RhdHVzPTExMykpOnduLnN0YXR1cz0xMTMpLDAhPT13bi5wZW5kaW5nKXtpZihVZShOdCksMD09PU50''@;'; + put 'put ''LmF2YWlsX291dClyZXR1cm4gd24ubGFzdF9mbHVzaD0tMSwwfWVsc2UgaWYoMD09PU50LmF2YWlsX2luJiZIdChzbik8PUh0KFVuKSYmNCE9PXNuKXJldHVybiBmdChOdCwtNSk7aWYoNjY2PT09d24uc3RhdHVzJiYwIT09TnQuYXZhaWxfaW4pcmV0dXJuIGZ0KE50LC01KTtpZigwIT09TnQu''@;'; + put 'put ''YXZhaWxfaW58fDAhPT13bi5sb29rYWhlYWR8fDAhPT1zbiYmNjY2IT09d24uc3RhdHVzKXt2YXIga3I9Mj09PXduLnN0cmF0ZWd5P2Z1bmN0aW9uIHNyKE50LHNuKXtmb3IodmFyIFVuOzspe2lmKDA9PT1OdC5sb29rYWhlYWQmJih5bihOdCksMD09PU50Lmxvb2thaGVhZCkpe2lmKDA9PT1z''@;'; + put 'put ''bilyZXR1cm4gMTticmVha31pZihOdC5tYXRjaF9sZW5ndGg9MCxVbj1ZLl90cl90YWxseShOdCwwLE50LndpbmRvd1tOdC5zdHJzdGFydF0pLE50Lmxvb2thaGVhZC0tLE50LnN0cnN0YXJ0KyssVW4mJih5dChOdCwhMSksMD09PU50LnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gMX1yZXR1cm4g''@;'; + put 'put ''TnQuaW5zZXJ0PTAsND09PXNuPyh5dChOdCwhMCksMD09PU50LnN0cm0uYXZhaWxfb3V0PzM6NCk6TnQubGFzdF9saXQmJih5dChOdCwhMSksMD09PU50LnN0cm0uYXZhaWxfb3V0KT8xOjJ9KHduLHNuKTozPT09d24uc3RyYXRlZ3k/ZnVuY3Rpb24gZXIoTnQsc24pe2Zvcih2YXIgVW4sd24s''@;'; + put 'put ''dG4sem4sVHI9TnQud2luZG93Ozspe2lmKE50Lmxvb2thaGVhZDw9MjU4KXtpZih5bihOdCksTnQubG9va2FoZWFkPD0yNTgmJjA9PT1zbilyZXR1cm4gMTtpZigwPT09TnQubG9va2FoZWFkKWJyZWFrfWlmKE50Lm1hdGNoX2xlbmd0aD0wLE50Lmxvb2thaGVhZD49MyYmTnQuc3Ryc3RhcnQ+''@;'; + put 'put ''MCYmKHduPVRyW3RuPU50LnN0cnN0YXJ0LTFdKT09PVRyWysrdG5dJiZ3bj09PVRyWysrdG5dJiZ3bj09PVRyWysrdG5dKXt6bj1OdC5zdHJzdGFydCsyNTg7ZG97fXdoaWxlKHduPT09VHJbKyt0bl0mJnduPT09VHJbKyt0bl0mJnduPT09VHJbKyt0bl0mJnduPT09VHJbKyt0bl0mJnduPT09''@;'; + put 'put ''VHJbKyt0bl0mJnduPT09VHJbKyt0bl0mJnduPT09VHJbKyt0bl0mJnduPT09VHJbKyt0bl0mJnRuPHpuKTtOdC5tYXRjaF9sZW5ndGg9MjU4LSh6bi10biksTnQubWF0Y2hfbGVuZ3RoPk50Lmxvb2thaGVhZCYmKE50Lm1hdGNoX2xlbmd0aD1OdC5sb29rYWhlYWQpfWlmKE50Lm1hdGNoX2xl''@;'; + put 'put ''bmd0aD49Mz8oVW49WS5fdHJfdGFsbHkoTnQsMSxOdC5tYXRjaF9sZW5ndGgtMyksTnQubG9va2FoZWFkLT1OdC5tYXRjaF9sZW5ndGgsTnQuc3Ryc3RhcnQrPU50Lm1hdGNoX2xlbmd0aCxOdC5tYXRjaF9sZW5ndGg9MCk6KFVuPVkuX3RyX3RhbGx5KE50LDAsTnQud2luZG93W050LnN0cnN0''@;'; + put 'put ''YXJ0XSksTnQubG9va2FoZWFkLS0sTnQuc3Ryc3RhcnQrKyksVW4mJih5dChOdCwhMSksMD09PU50LnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gMX1yZXR1cm4gTnQuaW5zZXJ0PTAsND09PXNuPyh5dChOdCwhMCksMD09PU50LnN0cm0uYXZhaWxfb3V0PzM6NCk6TnQubGFzdF9saXQmJih5dChO''@;'; + put 'put ''dCwhMSksMD09PU50LnN0cm0uYXZhaWxfb3V0KT8xOjJ9KHduLHNuKTpGclt3bi5sZXZlbF0uZnVuYyh3bixzbik7aWYoKDM9PT1rcnx8ND09PWtyKSYmKHduLnN0YXR1cz02NjYpLDE9PT1rcnx8Mz09PWtyKXJldHVybiAwPT09TnQuYXZhaWxfb3V0JiYod24ubGFzdF9mbHVzaD0tMSksMDtp''@;'; + put 'put ''ZigyPT09a3ImJigxPT09c24/WS5fdHJfYWxpZ24od24pOjUhPT1zbiYmKFkuX3RyX3N0b3JlZF9ibG9jayh3biwwLDAsITEpLDM9PT1zbiYmKEdlKHduLmhlYWQpLDA9PT13bi5sb29rYWhlYWQmJih3bi5zdHJzdGFydD0wLHduLmJsb2NrX3N0YXJ0PTAsd24uaW5zZXJ0PTApKSksVWUoTnQp''@;'; + put 'put ''LDA9PT1OdC5hdmFpbF9vdXQpKXJldHVybiB3bi5sYXN0X2ZsdXNoPS0xLDB9cmV0dXJuIDQhPT1zbj8wOnduLndyYXA8PTA/MTooMj09PXduLndyYXA/KGp0KHduLDI1NSZOdC5hZGxlciksanQod24sTnQuYWRsZXI+PjgmMjU1KSxqdCh3bixOdC5hZGxlcj4+MTYmMjU1KSxqdCh3bixOdC5h''@;'; + put 'put ''ZGxlcj4+MjQmMjU1KSxqdCh3biwyNTUmTnQudG90YWxfaW4pLGp0KHduLE50LnRvdGFsX2luPj44JjI1NSksanQod24sTnQudG90YWxfaW4+PjE2JjI1NSksanQod24sTnQudG90YWxfaW4+PjI0JjI1NSkpOihRdCh3bixOdC5hZGxlcj4+PjE2KSxRdCh3biw2NTUzNSZOdC5hZGxlcikpLFVl''@;'; + put 'put ''KE50KSx3bi53cmFwPjAmJih3bi53cmFwPS13bi53cmFwKSwwIT09d24ucGVuZGluZz8wOjEpfSxpZS5kZWZsYXRlRW5kPWZ1bmN0aW9uIEtuKE50KXt2YXIgc247cmV0dXJuIE50JiZOdC5zdGF0ZT80MiE9PShzbj1OdC5zdGF0ZS5zdGF0dXMpJiY2OSE9PXNuJiY3MyE9PXNuJiY5MSE9PXNu''@;'; + put 'put ''JiYxMDMhPT1zbiYmMTEzIT09c24mJjY2NiE9PXNuP2Z0KE50LC0yKTooTnQuc3RhdGU9bnVsbCwxMTM9PT1zbj9mdChOdCwtMyk6MCk6LTJ9LGllLmRlZmxhdGVJbmZvPSJwYWtvIGRlZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0seyIuLi91dGlscy9jb21tb24iOjI3LCIuL2FkbGVy''@;'; + put 'put ''MzIiOjI5LCIuL2NyYzMyIjozMSwiLi9tZXNzYWdlcyI6MzcsIi4vdHJlZXMiOjM4fV0sMzM6W2Z1bmN0aW9uKFEsWixpZSl7InVzZSBzdHJpY3QiO1ouZXhwb3J0cz1mdW5jdGlvbiBsZSgpe3RoaXMudGV4dD0wLHRoaXMudGltZT0wLHRoaXMueGZsYWdzPTAsdGhpcy5vcz0wLHRoaXMuZXh0''@;'; + put 'put ''cmE9bnVsbCx0aGlzLmV4dHJhX2xlbj0wLHRoaXMubmFtZT0iIix0aGlzLmNvbW1lbnQ9IiIsdGhpcy5oY3JjPTAsdGhpcy5kb25lPSExfX0se31dLDM0OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0IjtaLmV4cG9ydHM9ZnVuY3Rpb24oTixlZSl7dmFyIHEsSixzZSxvZSxjZSxkZSx2''@;'; + put 'put ''ZSxBZSxrZSxTZSxJZSxUZSxFZSxoZSxPLHosbmUsdGUseCxQLFYsVCxTLEYseWU7Rj1OLmlucHV0LHNlPShKPU4ubmV4dF9pbikrKE4uYXZhaWxfaW4tNSkseWU9Ti5vdXRwdXQsY2U9KG9lPU4ubmV4dF9vdXQpLShlZS1OLmF2YWlsX291dCksZGU9b2UrKE4uYXZhaWxfb3V0LTI1NyksdmU9''@;'; + put 'put ''KHE9Ti5zdGF0ZSkuZG1heCxBZT1xLndzaXplLGtlPXEud2hhdmUsU2U9cS53bmV4dCxJZT1xLndpbmRvdyxUZT1xLmhvbGQsRWU9cS5iaXRzLGhlPXEubGVuY29kZSxPPXEuZGlzdGNvZGUsej0oMTw8cS5sZW5iaXRzKS0xLG5lPSgxPDxxLmRpc3RiaXRzKS0xO2U6ZG97RWU8MTUmJihUZSs9''@;'; + put 'put ''RltKKytdPDxFZSxUZSs9RltKKytdPDwoRWUrPTgpLEVlKz04KSx0ZT1oZVtUZSZ6XTt0OmZvcig7Oyl7aWYoVGU+Pj49eD10ZT4+PjI0LEVlLT14LDA9PSh4PXRlPj4+MTYmMjU1KSl5ZVtvZSsrXT02NTUzNSZ0ZTtlbHNle2lmKCEoMTYmeCkpe2lmKDA9PSg2NCZ4KSl7dGU9aGVbKDY1NTM1''@;'; + put 'put ''JnRlKSsoVGUmKDE8PHgpLTEpXTtjb250aW51ZSB0fWlmKDMyJngpe3EubW9kZT0xMjticmVhayBlfU4ubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLHEubW9kZT0zMDticmVhayBlfVA9NjU1MzUmdGUsKHgmPTE1KSYmKEVlPHgmJihUZSs9RltKKytdPDxFZSxFZSs9OCksUCs9''@;'; + put 'put ''VGUmKDE8PHgpLTEsVGU+Pj49eCxFZS09eCksRWU8MTUmJihUZSs9RltKKytdPDxFZSxUZSs9RltKKytdPDwoRWUrPTgpLEVlKz04KSx0ZT1PW1RlJm5lXTtuOmZvcig7Oyl7aWYoVGU+Pj49eD10ZT4+PjI0LEVlLT14LCEoMTYmKHg9dGU+Pj4xNiYyNTUpKSl7aWYoMD09KDY0JngpKXt0ZT1P''@;'; + put 'put ''Wyg2NTUzNSZ0ZSkrKFRlJigxPDx4KS0xKV07Y29udGludWUgbn1OLm1zZz0iaW52YWxpZCBkaXN0YW5jZSBjb2RlIixxLm1vZGU9MzA7YnJlYWsgZX1pZihWPTY1NTM1JnRlLEVlPCh4Jj0xNSkmJihUZSs9RltKKytdPDxFZSwoRWUrPTgpPHgmJihUZSs9RltKKytdPDxFZSxFZSs9OCkpLChW''@;'; + put 'put ''Kz1UZSYoMTw8eCktMSk+dmUpe04ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIscS5tb2RlPTMwO2JyZWFrIGV9aWYoVGU+Pj49eCxFZS09eCxWPih4PW9lLWNlKSl7aWYoKHg9Vi14KT5rZSYmcS5zYW5lKXtOLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2si''@;'; + put 'put ''LHEubW9kZT0zMDticmVhayBlfWlmKFQ9MCxTPUllLDA9PT1TZSl7aWYoVCs9QWUteCx4PFApe1AtPXg7ZG97eWVbb2UrK109SWVbVCsrXX13aGlsZSgtLXgpO1Q9b2UtVixTPXllfX1lbHNlIGlmKFNlPHgpe2lmKFQrPUFlK1NlLXgsKHgtPVNlKTxQKXtQLT14O2Rve3llW29lKytdPUllW1Qr''@;'; + put 'put ''K119d2hpbGUoLS14KTtpZihUPTAsU2U8UCl7UC09eD1TZTtkb3t5ZVtvZSsrXT1JZVtUKytdfXdoaWxlKC0teCk7VD1vZS1WLFM9eWV9fX1lbHNlIGlmKFQrPVNlLXgseDxQKXtQLT14O2Rve3llW29lKytdPUllW1QrK119d2hpbGUoLS14KTtUPW9lLVYsUz15ZX1mb3IoO1A+MjspeWVbb2Ur''@;'; + put 'put ''K109U1tUKytdLHllW29lKytdPVNbVCsrXSx5ZVtvZSsrXT1TW1QrK10sUC09MztQJiYoeWVbb2UrK109U1tUKytdLFA+MSYmKHllW29lKytdPVNbVCsrXSkpfWVsc2V7VD1vZS1WO2Rve3llW29lKytdPXllW1QrK10seWVbb2UrK109eWVbVCsrXSx5ZVtvZSsrXT15ZVtUKytdLFAtPTN9d2hp''@;'; + put 'put ''bGUoUD4yKTtQJiYoeWVbb2UrK109eWVbVCsrXSxQPjEmJih5ZVtvZSsrXT15ZVtUKytdKSl9YnJlYWt9fWJyZWFrfX13aGlsZShKPHNlJiZvZTxkZSk7VGUmPSgxPDwoRWUtPShQPUVlPj4zKTw8MykpLTEsTi5uZXh0X2luPUotPVAsTi5uZXh0X291dD1vZSxOLmF2YWlsX2luPUo8c2U/c2Ut''@;'; + put 'put ''Sis1OjUtKEotc2UpLE4uYXZhaWxfb3V0PW9lPGRlP2RlLW9lKzI1NzoyNTctKG9lLWRlKSxxLmhvbGQ9VGUscS5iaXRzPUVlfX0se31dLDM1OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbGU9USgiLi4vdXRpbHMvY29tbW9uIiksWT1RKCIuL2FkbGVyMzIiKSxXPVEoIi4v''@;'; + put 'put ''Y3JjMzIiKSxOPVEoIi4vaW5mZmFzdCIpLGVlPVEoIi4vaW5mdHJlZXMiKTtmdW5jdGlvbiBRdChBbil7cmV0dXJuKEFuPj4+MjQmMjU1KSsoQW4+Pj44JjY1MjgwKSsoKDY1MjgwJkFuKTw8OCkrKCgyNTUmQW4pPDwyNCl9ZnVuY3Rpb24gZ24oKXt0aGlzLm1vZGU9MCx0aGlzLmxhc3Q9ITEs''@;'; + put 'put ''dGhpcy53cmFwPTAsdGhpcy5oYXZlZGljdD0hMSx0aGlzLmZsYWdzPTAsdGhpcy5kbWF4PTAsdGhpcy5jaGVjaz0wLHRoaXMudG90YWw9MCx0aGlzLmhlYWQ9bnVsbCx0aGlzLndiaXRzPTAsdGhpcy53c2l6ZT0wLHRoaXMud2hhdmU9MCx0aGlzLnduZXh0PTAsdGhpcy53aW5kb3c9bnVsbCx0''@;'; + put 'put ''aGlzLmhvbGQ9MCx0aGlzLmJpdHM9MCx0aGlzLmxlbmd0aD0wLHRoaXMub2Zmc2V0PTAsdGhpcy5leHRyYT0wLHRoaXMubGVuY29kZT1udWxsLHRoaXMuZGlzdGNvZGU9bnVsbCx0aGlzLmxlbmJpdHM9MCx0aGlzLmRpc3RiaXRzPTAsdGhpcy5uY29kZT0wLHRoaXMubmxlbj0wLHRoaXMubmRp''@;'; + put 'put ''c3Q9MCx0aGlzLmhhdmU9MCx0aGlzLm5leHQ9bnVsbCx0aGlzLmxlbnM9bmV3IGxlLkJ1ZjE2KDMyMCksdGhpcy53b3JrPW5ldyBsZS5CdWYxNigyODgpLHRoaXMubGVuZHluPW51bGwsdGhpcy5kaXN0ZHluPW51bGwsdGhpcy5zYW5lPTAsdGhpcy5iYWNrPTAsdGhpcy53YXM9MH1mdW5jdGlv''@;'; + put 'put ''biBkbihBbil7dmFyIHFuO3JldHVybiBBbiYmQW4uc3RhdGU/KEFuLnRvdGFsX2luPUFuLnRvdGFsX291dD0ocW49QW4uc3RhdGUpLnRvdGFsPTAsQW4ubXNnPSIiLHFuLndyYXAmJihBbi5hZGxlcj0xJnFuLndyYXApLHFuLm1vZGU9MSxxbi5sYXN0PTAscW4uaGF2ZWRpY3Q9MCxxbi5kbWF4''@;'; + put 'put ''PTMyNzY4LHFuLmhlYWQ9bnVsbCxxbi5ob2xkPTAscW4uYml0cz0wLHFuLmxlbmNvZGU9cW4ubGVuZHluPW5ldyBsZS5CdWYzMig4NTIpLHFuLmRpc3Rjb2RlPXFuLmRpc3RkeW49bmV3IGxlLkJ1ZjMyKDU5MikscW4uc2FuZT0xLHFuLmJhY2s9LTEsMCk6LTJ9ZnVuY3Rpb24geW4oQW4pe3Zh''@;'; + put 'put ''ciBxbjtyZXR1cm4gQW4mJkFuLnN0YXRlPygocW49QW4uc3RhdGUpLndzaXplPTAscW4ud2hhdmU9MCxxbi53bmV4dD0wLGRuKEFuKSk6LTJ9ZnVuY3Rpb24gbG4oQW4scW4pe3ZhciBXdCxwbjtyZXR1cm4hQW58fCFBbi5zdGF0ZXx8KHBuPUFuLnN0YXRlLHFuPDA/KFd0PTAscW49LXFuKToo''@;'; + put 'put ''V3Q9MSsocW4+PjQpLHFuPDQ4JiYocW4mPTE1KSkscW4mJihxbjw4fHxxbj4xNSkpPy0yOihudWxsIT09cG4ud2luZG93JiZwbi53Yml0cyE9PXFuJiYocG4ud2luZG93PW51bGwpLHBuLndyYXA9V3QscG4ud2JpdHM9cW4seW4oQW4pKX1mdW5jdGlvbiBObihBbixxbil7dmFyIFd0LHBuO3Jl''@;'; + put 'put ''dHVybiBBbj8ocG49bmV3IGduLEFuLnN0YXRlPXBuLHBuLndpbmRvdz1udWxsLDAhPT0oV3Q9bG4oQW4scW4pKSYmKEFuLnN0YXRlPW51bGwpLFd0KTotMn12YXIgc3IsWG4sZXI9ITA7ZnVuY3Rpb24gRnIoQW4pe2lmKGVyKXt2YXIgcW47Zm9yKHNyPW5ldyBsZS5CdWYzMig1MTIpLFhuPW5l''@;'; + put 'put ''dyBsZS5CdWYzMigzMikscW49MDtxbjwxNDQ7KUFuLmxlbnNbcW4rK109ODtmb3IoO3FuPDI1NjspQW4ubGVuc1txbisrXT05O2Zvcig7cW48MjgwOylBbi5sZW5zW3FuKytdPTc7Zm9yKDtxbjwyODg7KUFuLmxlbnNbcW4rK109ODtmb3IoZWUoMSxBbi5sZW5zLDAsMjg4LHNyLDAsQW4ud29y''@;'; + put 'put ''ayx7Yml0czo5fSkscW49MDtxbjwzMjspQW4ubGVuc1txbisrXT01O2VlKDIsQW4ubGVucywwLDMyLFhuLDAsQW4ud29yayx7Yml0czo1fSksZXI9ITF9QW4ubGVuY29kZT1zcixBbi5sZW5iaXRzPTksQW4uZGlzdGNvZGU9WG4sQW4uZGlzdGJpdHM9NX1pZS5pbmZsYXRlUmVzZXQ9eW4saWUu''@;'; + put 'put ''aW5mbGF0ZVJlc2V0Mj1sbixpZS5pbmZsYXRlUmVzZXRLZWVwPWRuLGllLmluZmxhdGVJbml0PWZ1bmN0aW9uIGJuKEFuKXtyZXR1cm4gTm4oQW4sMTUpfSxpZS5pbmZsYXRlSW5pdDI9Tm4saWUuaW5mbGF0ZT1mdW5jdGlvbiBxdChBbixxbil7dmFyIFd0LHBuLEtuLE50LHNuLFVuLHduLHRu''@;'; + put 'put ''LHpuLFRyLEJuLGtyLG1uLHVuLF9uLEd0LGtuLFZuLGVuLEluLEpuLG9yLEtyLFZyLGNuPTAsZ3I9bmV3IGxlLkJ1ZjgoNCksaWk9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdO2lmKCFBbnx8IUFuLnN0YXRlfHwhQW4ub3V0cHV0fHwhQW4uaW5wdXQm''@;'; + put 'put ''JjAhPT1Bbi5hdmFpbF9pbilyZXR1cm4tMjsxMj09PShXdD1Bbi5zdGF0ZSkubW9kZSYmKFd0Lm1vZGU9MTMpLHNuPUFuLm5leHRfb3V0LEtuPUFuLm91dHB1dCxOdD1Bbi5uZXh0X2luLHBuPUFuLmlucHV0LHRuPVd0LmhvbGQsem49V3QuYml0cyxUcj1Vbj1Bbi5hdmFpbF9pbixCbj13bj1B''@;'; + put 'put ''bi5hdmFpbF9vdXQsb3I9MDtlOmZvcig7Oylzd2l0Y2goV3QubW9kZSl7Y2FzZSAxOmlmKDA9PT1XdC53cmFwKXtXdC5tb2RlPTEzO2JyZWFrfWZvcig7em48MTY7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9aWYoMiZXdC53cmFwJiYzNTYxNT09PXRu''@;'; + put 'put ''KXtXdC5jaGVjaz0wLGdyWzBdPTI1NSZ0bixnclsxXT10bj4+PjgmMjU1LFd0LmNoZWNrPVcoV3QuY2hlY2ssZ3IsMiwwKSx0bj0wLHpuPTAsV3QubW9kZT0yO2JyZWFrfWlmKFd0LmZsYWdzPTAsV3QuaGVhZCYmKFd0LmhlYWQuZG9uZT0hMSksISgxJld0LndyYXApfHwoKCgyNTUmdG4pPDw4''@;'; + put 'put ''KSsodG4+PjgpKSUzMSl7QW4ubXNnPSJpbmNvcnJlY3QgaGVhZGVyIGNoZWNrIixXdC5tb2RlPTMwO2JyZWFrfWlmKDghPSgxNSZ0bikpe0FuLm1zZz0idW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QiLFd0Lm1vZGU9MzA7YnJlYWt9aWYoem4tPTQsSm49OCsoMTUmKHRuPj4+PTQpKSwwPT09''@;'; + put 'put ''V3Qud2JpdHMpV3Qud2JpdHM9Sm47ZWxzZSBpZihKbj5XdC53Yml0cyl7QW4ubXNnPSJpbnZhbGlkIHdpbmRvdyBzaXplIixXdC5tb2RlPTMwO2JyZWFrfVd0LmRtYXg9MTw8Sm4sQW4uYWRsZXI9V3QuY2hlY2s9MSxXdC5tb2RlPTUxMiZ0bj8xMDoxMix0bj0wLHpuPTA7YnJlYWs7Y2FzZSAy''@;'; + put 'put ''OmZvcig7em48MTY7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9aWYoV3QuZmxhZ3M9dG4sOCE9KDI1NSZXdC5mbGFncykpe0FuLm1zZz0idW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QiLFd0Lm1vZGU9MzA7YnJlYWt9aWYoNTczNDQmV3QuZmxhZ3Mp''@;'; + put 'put ''e0FuLm1zZz0idW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0IixXdC5tb2RlPTMwO2JyZWFrfVd0LmhlYWQmJihXdC5oZWFkLnRleHQ9dG4+PjgmMSksNTEyJld0LmZsYWdzJiYoZ3JbMF09MjU1JnRuLGdyWzFdPXRuPj4+OCYyNTUsV3QuY2hlY2s9VyhXdC5jaGVjayxnciwyLDApKSx0bj0wLHpu''@;'; + put 'put ''PTAsV3QubW9kZT0zO2Nhc2UgMzpmb3IoO3puPDMyOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fVd0LmhlYWQmJihXdC5oZWFkLnRpbWU9dG4pLDUxMiZXdC5mbGFncyYmKGdyWzBdPTI1NSZ0bixnclsxXT10bj4+PjgmMjU1LGdyWzJdPXRuPj4+MTYm''@;'; + put 'put ''MjU1LGdyWzNdPXRuPj4+MjQmMjU1LFd0LmNoZWNrPVcoV3QuY2hlY2ssZ3IsNCwwKSksdG49MCx6bj0wLFd0Lm1vZGU9NDtjYXNlIDQ6Zm9yKDt6bjwxNjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1XdC5oZWFkJiYoV3QuaGVhZC54ZmxhZ3M9MjU1''@;'; + put 'put ''JnRuLFd0LmhlYWQub3M9dG4+PjgpLDUxMiZXdC5mbGFncyYmKGdyWzBdPTI1NSZ0bixnclsxXT10bj4+PjgmMjU1LFd0LmNoZWNrPVcoV3QuY2hlY2ssZ3IsMiwwKSksdG49MCx6bj0wLFd0Lm1vZGU9NTtjYXNlIDU6aWYoMTAyNCZXdC5mbGFncyl7Zm9yKDt6bjwxNjspe2lmKDA9PT1Vbili''@;'; + put 'put ''cmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1XdC5sZW5ndGg9dG4sV3QuaGVhZCYmKFd0LmhlYWQuZXh0cmFfbGVuPXRuKSw1MTImV3QuZmxhZ3MmJihnclswXT0yNTUmdG4sZ3JbMV09dG4+Pj44JjI1NSxXdC5jaGVjaz1XKFd0LmNoZWNrLGdyLDIsMCkpLHRuPTAsem49MH1l''@;'; + put 'put ''bHNlIFd0LmhlYWQmJihXdC5oZWFkLmV4dHJhPW51bGwpO1d0Lm1vZGU9NjtjYXNlIDY6aWYoMTAyNCZXdC5mbGFncyYmKChrcj1XdC5sZW5ndGgpPlVuJiYoa3I9VW4pLGtyJiYoV3QuaGVhZCYmKEpuPVd0LmhlYWQuZXh0cmFfbGVuLVd0Lmxlbmd0aCxXdC5oZWFkLmV4dHJhfHwoV3QuaGVh''@;'; + put 'put ''ZC5leHRyYT1uZXcgQXJyYXkoV3QuaGVhZC5leHRyYV9sZW4pKSxsZS5hcnJheVNldChXdC5oZWFkLmV4dHJhLHBuLE50LGtyLEpuKSksNTEyJld0LmZsYWdzJiYoV3QuY2hlY2s9VyhXdC5jaGVjayxwbixrcixOdCkpLFVuLT1rcixOdCs9a3IsV3QubGVuZ3RoLT1rciksV3QubGVuZ3RoKSli''@;'; + put 'put ''cmVhayBlO1d0Lmxlbmd0aD0wLFd0Lm1vZGU9NztjYXNlIDc6aWYoMjA0OCZXdC5mbGFncyl7aWYoMD09PVVuKWJyZWFrIGU7a3I9MDtkb3tKbj1wbltOdCtrcisrXSxXdC5oZWFkJiZKbiYmV3QubGVuZ3RoPDY1NTM2JiYoV3QuaGVhZC5uYW1lKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEpuKSl9''@;'; + put 'put ''d2hpbGUoSm4mJmtyPFVuKTtpZig1MTImV3QuZmxhZ3MmJihXdC5jaGVjaz1XKFd0LmNoZWNrLHBuLGtyLE50KSksVW4tPWtyLE50Kz1rcixKbilicmVhayBlfWVsc2UgV3QuaGVhZCYmKFd0LmhlYWQubmFtZT1udWxsKTtXdC5sZW5ndGg9MCxXdC5tb2RlPTg7Y2FzZSA4OmlmKDQwOTYmV3Qu''@;'; + put 'put ''ZmxhZ3Mpe2lmKDA9PT1VbilicmVhayBlO2tyPTA7ZG97Sm49cG5bTnQra3IrK10sV3QuaGVhZCYmSm4mJld0Lmxlbmd0aDw2NTUzNiYmKFd0LmhlYWQuY29tbWVudCs9U3RyaW5nLmZyb21DaGFyQ29kZShKbikpfXdoaWxlKEpuJiZrcjxVbik7aWYoNTEyJld0LmZsYWdzJiYoV3QuY2hlY2s9''@;'; + put 'put ''VyhXdC5jaGVjayxwbixrcixOdCkpLFVuLT1rcixOdCs9a3IsSm4pYnJlYWsgZX1lbHNlIFd0LmhlYWQmJihXdC5oZWFkLmNvbW1lbnQ9bnVsbCk7V3QubW9kZT05O2Nhc2UgOTppZig1MTImV3QuZmxhZ3Mpe2Zvcig7em48MTY7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsr''@;'; + put 'put ''XTw8em4sem4rPTh9aWYodG4hPT0oNjU1MzUmV3QuY2hlY2spKXtBbi5tc2c9ImhlYWRlciBjcmMgbWlzbWF0Y2giLFd0Lm1vZGU9MzA7YnJlYWt9dG49MCx6bj0wfVd0LmhlYWQmJihXdC5oZWFkLmhjcmM9V3QuZmxhZ3M+PjkmMSxXdC5oZWFkLmRvbmU9ITApLEFuLmFkbGVyPVd0LmNoZWNr''@;'; + put 'put ''PTAsV3QubW9kZT0xMjticmVhaztjYXNlIDEwOmZvcig7em48MzI7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9QW4uYWRsZXI9V3QuY2hlY2s9UXQodG4pLHRuPTAsem49MCxXdC5tb2RlPTExO2Nhc2UgMTE6aWYoMD09PVd0LmhhdmVkaWN0KXJldHVy''@;'; + put 'put ''biBBbi5uZXh0X291dD1zbixBbi5hdmFpbF9vdXQ9d24sQW4ubmV4dF9pbj1OdCxBbi5hdmFpbF9pbj1VbixXdC5ob2xkPXRuLFd0LmJpdHM9em4sMjtBbi5hZGxlcj1XdC5jaGVjaz0xLFd0Lm1vZGU9MTI7Y2FzZSAxMjppZig1PT09cW58fDY9PT1xbilicmVhayBlO2Nhc2UgMTM6aWYoV3Qu''@;'; + put 'put ''bGFzdCl7dG4+Pj49NyZ6bix6bi09NyZ6bixXdC5tb2RlPTI3O2JyZWFrfWZvcig7em48Mzspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1zd2l0Y2goV3QubGFzdD0xJnRuLHpuLT0xLDMmKHRuPj4+PTEpKXtjYXNlIDA6V3QubW9kZT0xNDticmVhaztj''@;'; + put 'put ''YXNlIDE6aWYoRnIoV3QpLFd0Lm1vZGU9MjAsNj09PXFuKXt0bj4+Pj0yLHpuLT0yO2JyZWFrIGV9YnJlYWs7Y2FzZSAyOld0Lm1vZGU9MTc7YnJlYWs7Y2FzZSAzOkFuLm1zZz0iaW52YWxpZCBibG9jayB0eXBlIixXdC5tb2RlPTMwfXRuPj4+PTIsem4tPTI7YnJlYWs7Y2FzZSAxNDpmb3Io''@;'; + put 'put ''dG4+Pj49NyZ6bix6bi09NyZ6bjt6bjwzMjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1pZigoNjU1MzUmdG4pIT0odG4+Pj4xNl42NTUzNSkpe0FuLm1zZz0iaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocyIsV3QubW9kZT0zMDticmVha31pZihX''@;'; + put 'put ''dC5sZW5ndGg9NjU1MzUmdG4sdG49MCx6bj0wLFd0Lm1vZGU9MTUsNj09PXFuKWJyZWFrIGU7Y2FzZSAxNTpXdC5tb2RlPTE2O2Nhc2UgMTY6aWYoa3I9V3QubGVuZ3RoKXtpZihrcj5VbiYmKGtyPVVuKSxrcj53biYmKGtyPXduKSwwPT09a3IpYnJlYWsgZTtsZS5hcnJheVNldChLbixwbixO''@;'; + put 'put ''dCxrcixzbiksVW4tPWtyLE50Kz1rcix3bi09a3Isc24rPWtyLFd0Lmxlbmd0aC09a3I7YnJlYWt9V3QubW9kZT0xMjticmVhaztjYXNlIDE3OmZvcig7em48MTQ7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9aWYoV3Qubmxlbj0yNTcrKDMxJnRuKSx6''@;'; + put 'put ''bi09NSxXdC5uZGlzdD0xKygzMSYodG4+Pj49NSkpLHpuLT01LFd0Lm5jb2RlPTQrKDE1Jih0bj4+Pj01KSksdG4+Pj49NCx6bi09NCxXdC5ubGVuPjI4Nnx8V3QubmRpc3Q+MzApe0FuLm1zZz0idG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMiLFd0Lm1vZGU9MzA7YnJlYWt9''@;'; + put 'put ''V3QuaGF2ZT0wLFd0Lm1vZGU9MTg7Y2FzZSAxODpmb3IoO1d0LmhhdmU8V3QubmNvZGU7KXtmb3IoO3puPDM7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9V3QubGVuc1tpaVtXdC5oYXZlKytdXT03JnRuLHRuPj4+PTMsem4tPTN9Zm9yKDtXdC5oYXZl''@;'; + put 'put ''PDE5OylXdC5sZW5zW2lpW1d0LmhhdmUrK11dPTA7aWYoV3QubGVuY29kZT1XdC5sZW5keW4sV3QubGVuYml0cz03LG9yPWVlKDAsV3QubGVucywwLDE5LFd0LmxlbmNvZGUsMCxXdC53b3JrLEtyPXtiaXRzOld0LmxlbmJpdHN9KSxXdC5sZW5iaXRzPUtyLmJpdHMsb3Ipe0FuLm1zZz0iaW52''@;'; + put 'put ''YWxpZCBjb2RlIGxlbmd0aHMgc2V0IixXdC5tb2RlPTMwO2JyZWFrfVd0LmhhdmU9MCxXdC5tb2RlPTE5O2Nhc2UgMTk6Zm9yKDtXdC5oYXZlPFd0Lm5sZW4rV3QubmRpc3Q7KXtmb3IoO0d0PShjbj1XdC5sZW5jb2RlW3RuJigxPDxXdC5sZW5iaXRzKS0xXSk+Pj4xNiYyNTUsa249NjU1MzUm''@;'; + put 'put ''Y24sISgoX249Y24+Pj4yNCk8PXpuKTspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1pZihrbjwxNil0bj4+Pj1fbix6bi09X24sV3QubGVuc1tXdC5oYXZlKytdPWtuO2Vsc2V7aWYoMTY9PT1rbil7Zm9yKFZyPV9uKzI7em48VnI7KXtpZigwPT09VW4p''@;'; + put 'put ''YnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9aWYodG4+Pj49X24sem4tPV9uLDA9PT1XdC5oYXZlKXtBbi5tc2c9ImludmFsaWQgYml0IGxlbmd0aCByZXBlYXQiLFd0Lm1vZGU9MzA7YnJlYWt9Sm49V3QubGVuc1tXdC5oYXZlLTFdLGtyPTMrKDMmdG4pLHRuPj4+PTIsem4t''@;'; + put 'put ''PTJ9ZWxzZSBpZigxNz09PWtuKXtmb3IoVnI9X24rMzt6bjxWcjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH16bi09X24sSm49MCxrcj0zKyg3Jih0bj4+Pj1fbikpLHRuPj4+PTMsem4tPTN9ZWxzZXtmb3IoVnI9X24rNzt6bjxWcjspe2lmKDA9PT1V''@;'; + put 'put ''bilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH16bi09X24sSm49MCxrcj0xMSsoMTI3Jih0bj4+Pj1fbikpLHRuPj4+PTcsem4tPTd9aWYoV3QuaGF2ZStrcj5XdC5ubGVuK1d0Lm5kaXN0KXtBbi5tc2c9ImludmFsaWQgYml0IGxlbmd0aCByZXBlYXQiLFd0Lm1vZGU9MzA7''@;'; + put 'put ''YnJlYWt9Zm9yKDtrci0tOylXdC5sZW5zW1d0LmhhdmUrK109Sm59fWlmKDMwPT09V3QubW9kZSlicmVhaztpZigwPT09V3QubGVuc1syNTZdKXtBbi5tc2c9ImludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jayIsV3QubW9kZT0zMDticmVha31pZihXdC5sZW5iaXRzPTksb3I9''@;'; + put 'put ''ZWUoMSxXdC5sZW5zLDAsV3QubmxlbixXdC5sZW5jb2RlLDAsV3Qud29yayxLcj17Yml0czpXdC5sZW5iaXRzfSksV3QubGVuYml0cz1Lci5iaXRzLG9yKXtBbi5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldCIsV3QubW9kZT0zMDticmVha31pZihXdC5kaXN0Yml0cz02LFd0LmRp''@;'; + put 'put ''c3Rjb2RlPVd0LmRpc3RkeW4sb3I9ZWUoMixXdC5sZW5zLFd0Lm5sZW4sV3QubmRpc3QsV3QuZGlzdGNvZGUsMCxXdC53b3JrLEtyPXtiaXRzOld0LmRpc3RiaXRzfSksV3QuZGlzdGJpdHM9S3IuYml0cyxvcil7QW4ubXNnPSJpbnZhbGlkIGRpc3RhbmNlcyBzZXQiLFd0Lm1vZGU9MzA7YnJl''@;'; + put 'put ''YWt9aWYoV3QubW9kZT0yMCw2PT09cW4pYnJlYWsgZTtjYXNlIDIwOld0Lm1vZGU9MjE7Y2FzZSAyMTppZihVbj49NiYmd24+PTI1OCl7QW4ubmV4dF9vdXQ9c24sQW4uYXZhaWxfb3V0PXduLEFuLm5leHRfaW49TnQsQW4uYXZhaWxfaW49VW4sV3QuaG9sZD10bixXdC5iaXRzPXpuLE4oQW4s''@;'; + put 'put ''Qm4pLHNuPUFuLm5leHRfb3V0LEtuPUFuLm91dHB1dCx3bj1Bbi5hdmFpbF9vdXQsTnQ9QW4ubmV4dF9pbixwbj1Bbi5pbnB1dCxVbj1Bbi5hdmFpbF9pbix0bj1XdC5ob2xkLHpuPVd0LmJpdHMsMTI9PT1XdC5tb2RlJiYoV3QuYmFjaz0tMSk7YnJlYWt9Zm9yKFd0LmJhY2s9MDtHdD0oY249''@;'; + put 'put ''V3QubGVuY29kZVt0biYoMTw8V3QubGVuYml0cyktMV0pPj4+MTYmMjU1LGtuPTY1NTM1JmNuLCEoKF9uPWNuPj4+MjQpPD16bik7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9aWYoR3QmJjA9PSgyNDAmR3QpKXtmb3IoVm49X24sZW49R3QsSW49a247''@;'; + put 'put ''R3Q9KGNuPVd0LmxlbmNvZGVbSW4rKCh0biYoMTw8Vm4rZW4pLTEpPj5WbildKT4+PjE2JjI1NSxrbj02NTUzNSZjbiwhKFZuKyhfbj1jbj4+PjI0KTw9em4pOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fXRuPj4+PVZuLHpuLT1WbixXdC5iYWNrKz1W''@;'; + put 'put ''bn1pZih0bj4+Pj1fbix6bi09X24sV3QuYmFjays9X24sV3QubGVuZ3RoPWtuLDA9PT1HdCl7V3QubW9kZT0yNjticmVha31pZigzMiZHdCl7V3QuYmFjaz0tMSxXdC5tb2RlPTEyO2JyZWFrfWlmKDY0Jkd0KXtBbi5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZSIsV3QubW9kZT0z''@;'; + put 'put ''MDticmVha31XdC5leHRyYT0xNSZHdCxXdC5tb2RlPTIyO2Nhc2UgMjI6aWYoV3QuZXh0cmEpe2ZvcihWcj1XdC5leHRyYTt6bjxWcjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1XdC5sZW5ndGgrPXRuJigxPDxXdC5leHRyYSktMSx0bj4+Pj1XdC5l''@;'; + put 'put ''eHRyYSx6bi09V3QuZXh0cmEsV3QuYmFjays9V3QuZXh0cmF9V3Qud2FzPVd0Lmxlbmd0aCxXdC5tb2RlPTIzO2Nhc2UgMjM6Zm9yKDtHdD0oY249V3QuZGlzdGNvZGVbdG4mKDE8PFd0LmRpc3RiaXRzKS0xXSk+Pj4xNiYyNTUsa249NjU1MzUmY24sISgoX249Y24+Pj4yNCk8PXpuKTspe2lm''@;'; + put 'put ''KDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1pZigwPT0oMjQwJkd0KSl7Zm9yKFZuPV9uLGVuPUd0LEluPWtuO0d0PShjbj1XdC5kaXN0Y29kZVtJbisoKHRuJigxPDxWbitlbiktMSk+PlZuKV0pPj4+MTYmMjU1LGtuPTY1NTM1JmNuLCEoVm4rKF9uPWNuPj4+''@;'; + put 'put ''MjQpPD16bik7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9dG4+Pj49Vm4sem4tPVZuLFd0LmJhY2srPVZufWlmKHRuPj4+PV9uLHpuLT1fbixXdC5iYWNrKz1fbiw2NCZHdCl7QW4ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLFd0Lm1vZGU9MzA7''@;'; + put 'put ''YnJlYWt9V3Qub2Zmc2V0PWtuLFd0LmV4dHJhPTE1Jkd0LFd0Lm1vZGU9MjQ7Y2FzZSAyNDppZihXdC5leHRyYSl7Zm9yKFZyPVd0LmV4dHJhO3puPFZyOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fVd0Lm9mZnNldCs9dG4mKDE8PFd0LmV4dHJhKS0x''@;'; + put 'put ''LHRuPj4+PVd0LmV4dHJhLHpuLT1XdC5leHRyYSxXdC5iYWNrKz1XdC5leHRyYX1pZihXdC5vZmZzZXQ+V3QuZG1heCl7QW4ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsV3QubW9kZT0zMDticmVha31XdC5tb2RlPTI1O2Nhc2UgMjU6aWYoMD09PXduKWJyZWFrIGU7aWYo''@;'; + put 'put ''V3Qub2Zmc2V0Pihrcj1Cbi13bikpe2lmKChrcj1XdC5vZmZzZXQta3IpPld0LndoYXZlJiZXdC5zYW5lKXtBbi5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixXdC5tb2RlPTMwO2JyZWFrfW1uPWtyPld0LnduZXh0P1d0LndzaXplLShrci09V3Qud25leHQpOld0LnduZXh0''@;'; + put 'put ''LWtyLGtyPld0Lmxlbmd0aCYmKGtyPVd0Lmxlbmd0aCksdW49V3Qud2luZG93fWVsc2UgdW49S24sbW49c24tV3Qub2Zmc2V0LGtyPVd0Lmxlbmd0aDtrcj53biYmKGtyPXduKSx3bi09a3IsV3QubGVuZ3RoLT1rcjtkb3tLbltzbisrXT11blttbisrXX13aGlsZSgtLWtyKTswPT09V3QubGVu''@;'; + put 'put ''Z3RoJiYoV3QubW9kZT0yMSk7YnJlYWs7Y2FzZSAyNjppZigwPT09d24pYnJlYWsgZTtLbltzbisrXT1XdC5sZW5ndGgsd24tLSxXdC5tb2RlPTIxO2JyZWFrO2Nhc2UgMjc6aWYoV3Qud3JhcCl7Zm9yKDt6bjwzMjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG58PXBuW050KytdPDx6bix6''@;'; + put 'put ''bis9OH1pZihBbi50b3RhbF9vdXQrPUJuLT13bixXdC50b3RhbCs9Qm4sQm4mJihBbi5hZGxlcj1XdC5jaGVjaz1XdC5mbGFncz9XKFd0LmNoZWNrLEtuLEJuLHNuLUJuKTpZKFd0LmNoZWNrLEtuLEJuLHNuLUJuKSksQm49d24sKFd0LmZsYWdzP3RuOlF0KHRuKSkhPT1XdC5jaGVjayl7QW4u''@;'; + put 'put ''bXNnPSJpbmNvcnJlY3QgZGF0YSBjaGVjayIsV3QubW9kZT0zMDticmVha310bj0wLHpuPTB9V3QubW9kZT0yODtjYXNlIDI4OmlmKFd0LndyYXAmJld0LmZsYWdzKXtmb3IoO3puPDMyOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fWlmKHRuIT09KDQy''@;'; + put 'put ''OTQ5NjcyOTUmV3QudG90YWwpKXtBbi5tc2c9ImluY29ycmVjdCBsZW5ndGggY2hlY2siLFd0Lm1vZGU9MzA7YnJlYWt9dG49MCx6bj0wfVd0Lm1vZGU9Mjk7Y2FzZSAyOTpvcj0xO2JyZWFrIGU7Y2FzZSAzMDpvcj0tMzticmVhayBlO2Nhc2UgMzE6cmV0dXJuLTQ7ZGVmYXVsdDpyZXR1cm4t''@;'; + put 'put ''Mn1yZXR1cm4gQW4ubmV4dF9vdXQ9c24sQW4uYXZhaWxfb3V0PXduLEFuLm5leHRfaW49TnQsQW4uYXZhaWxfaW49VW4sV3QuaG9sZD10bixXdC5iaXRzPXpuLChXdC53c2l6ZXx8Qm4hPT1Bbi5hdmFpbF9vdXQmJld0Lm1vZGU8MzAmJihXdC5tb2RlPDI3fHw0IT09cW4pKSYmZnVuY3Rpb24g''@;'; + put 'put ''eHIoQW4scW4sV3QscG4pe3ZhciBLbixOdD1Bbi5zdGF0ZTtyZXR1cm4gbnVsbD09PU50LndpbmRvdyYmKE50LndzaXplPTE8PE50LndiaXRzLE50LnduZXh0PTAsTnQud2hhdmU9MCxOdC53aW5kb3c9bmV3IGxlLkJ1ZjgoTnQud3NpemUpKSxwbj49TnQud3NpemU/KGxlLmFycmF5U2V0KE50''@;'; + put 'put ''LndpbmRvdyxxbixXdC1OdC53c2l6ZSxOdC53c2l6ZSwwKSxOdC53bmV4dD0wLE50LndoYXZlPU50LndzaXplKTooKEtuPU50LndzaXplLU50LnduZXh0KT5wbiYmKEtuPXBuKSxsZS5hcnJheVNldChOdC53aW5kb3cscW4sV3QtcG4sS24sTnQud25leHQpLChwbi09S24pPyhsZS5hcnJheVNl''@;'; + put 'put ''dChOdC53aW5kb3cscW4sV3QtcG4scG4sMCksTnQud25leHQ9cG4sTnQud2hhdmU9TnQud3NpemUpOihOdC53bmV4dCs9S24sTnQud25leHQ9PT1OdC53c2l6ZSYmKE50LnduZXh0PTApLE50LndoYXZlPE50LndzaXplJiYoTnQud2hhdmUrPUtuKSkpLDB9KEFuLEFuLm91dHB1dCxBbi5uZXh0''@;'; + put 'put ''X291dCxCbi1Bbi5hdmFpbF9vdXQpPyhXdC5tb2RlPTMxLC00KTooQm4tPUFuLmF2YWlsX291dCxBbi50b3RhbF9pbis9VHItPUFuLmF2YWlsX2luLEFuLnRvdGFsX291dCs9Qm4sV3QudG90YWwrPUJuLFd0LndyYXAmJkJuJiYoQW4uYWRsZXI9V3QuY2hlY2s9V3QuZmxhZ3M/VyhXdC5jaGVj''@;'; + put 'put ''ayxLbixCbixBbi5uZXh0X291dC1Cbik6WShXdC5jaGVjayxLbixCbixBbi5uZXh0X291dC1CbikpLEFuLmRhdGFfdHlwZT1XdC5iaXRzKyhXdC5sYXN0PzY0OjApKygxMj09PVd0Lm1vZGU/MTI4OjApKygyMD09PVd0Lm1vZGV8fDE1PT09V3QubW9kZT8yNTY6MCksKDA9PT1UciYmMD09PUJu''@;'; + put 'put ''fHw0PT09cW4pJiYwPT09b3ImJihvcj0tNSksb3IpfSxpZS5pbmZsYXRlRW5kPWZ1bmN0aW9uIHByKEFuKXtpZighQW58fCFBbi5zdGF0ZSlyZXR1cm4tMjt2YXIgcW49QW4uc3RhdGU7cmV0dXJuIHFuLndpbmRvdyYmKHFuLndpbmRvdz1udWxsKSxBbi5zdGF0ZT1udWxsLDB9LGllLmluZmxh''@;'; + put 'put ''dGVHZXRIZWFkZXI9ZnVuY3Rpb24gbnIoQW4scW4pe3ZhciBXdDtyZXR1cm4gQW4mJkFuLnN0YXRlJiYwIT0oMiYoV3Q9QW4uc3RhdGUpLndyYXApPyhXdC5oZWFkPXFuLHFuLmRvbmU9ITEsMCk6LTJ9LGllLmluZmxhdGVJbmZvPSJwYWtvIGluZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3Qp''@;'; + put 'put ''In0seyIuLi91dGlscy9jb21tb24iOjI3LCIuL2FkbGVyMzIiOjI5LCIuL2NyYzMyIjozMSwiLi9pbmZmYXN0IjozNCwiLi9pbmZ0cmVlcyI6MzZ9XSwzNjpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7dmFyIGxlPVEoIi4uL3V0aWxzL2NvbW1vbiIpLHNlPVszLDQsNSw2LDcsOCw5''@;'; + put 'put ''LDEwLDExLDEzLDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4LDAsMF0sb2U9WzE2LDE2LDE2LDE2LDE2LDE2LDE2LDE2LDE3LDE3LDE3LDE3LDE4LDE4LDE4LDE4LDE5LDE5LDE5LDE5LDIwLDIwLDIwLDIwLDIxLDIxLDIxLDIx''@;'; + put 'put ''LDE2LDcyLDc4XSxjZT1bMSwyLDMsNCw1LDcsOSwxMywxNywyNSwzMyw0OSw2NSw5NywxMjksMTkzLDI1NywzODUsNTEzLDc2OSwxMDI1LDE1MzcsMjA0OSwzMDczLDQwOTcsNjE0NSw4MTkzLDEyMjg5LDE2Mzg1LDI0NTc3LDAsMF0sZGU9WzE2LDE2LDE2LDE2LDE3LDE3LDE4LDE4LDE5LDE5''@;'; + put 'put ''LDIwLDIwLDIxLDIxLDIyLDIyLDIzLDIzLDI0LDI0LDI1LDI1LDI2LDI2LDI3LDI3LDI4LDI4LDI5LDI5LDY0LDY0XTtaLmV4cG9ydHM9ZnVuY3Rpb24oQWUsa2UsU2UsSWUsVGUsRWUsaGUsTyl7dmFyIERlLFBlLFFlLCRlLGd0LEF0LF90LHR0LGV0LHo9Ty5iaXRzLG5lPTAsdGU9MCx4PTAs''@;'; + put 'put ''UD0wLFY9MCxUPTAsUz0wLEY9MCx5ZT0wLENlPTAsd3Q9bnVsbCx2dD0wLG10PW5ldyBsZS5CdWYxNigxNiksaHQ9bmV3IGxlLkJ1ZjE2KDE2KSxCdD1udWxsLG9uPTA7Zm9yKG5lPTA7bmU8PTE1O25lKyspbXRbbmVdPTA7Zm9yKHRlPTA7dGU8SWU7dGUrKyltdFtrZVtTZSt0ZV1dKys7Zm9y''@;'; + put 'put ''KFY9eixQPTE1O1A+PTEmJjA9PT1tdFtQXTtQLS0pO2lmKFY+UCYmKFY9UCksMD09PVApcmV0dXJuIFRlW0VlKytdPTIwOTcxNTIwLFRlW0VlKytdPTIwOTcxNTIwLE8uYml0cz0xLDA7Zm9yKHg9MTt4PFAmJjA9PT1tdFt4XTt4KyspO2ZvcihWPHgmJihWPXgpLEY9MSxuZT0xO25lPD0xNTtu''@;'; + put 'put ''ZSsrKWlmKEY8PD0xLChGLT1tdFtuZV0pPDApcmV0dXJuLTE7aWYoRj4wJiYoMD09PUFlfHwxIT09UCkpcmV0dXJuLTE7Zm9yKGh0WzFdPTAsbmU9MTtuZTwxNTtuZSsrKWh0W25lKzFdPWh0W25lXSttdFtuZV07Zm9yKHRlPTA7dGU8SWU7dGUrKykwIT09a2VbU2UrdGVdJiYoaGVbaHRba2Vb''@;'; + put 'put ''U2UrdGVdXSsrXT10ZSk7aWYoMD09PUFlPyh3dD1CdD1oZSxBdD0xOSk6MT09PUFlPyh3dD1zZSx2dC09MjU3LEJ0PW9lLG9uLT0yNTcsQXQ9MjU2KTood3Q9Y2UsQnQ9ZGUsQXQ9LTEpLENlPTAsdGU9MCxuZT14LGd0PUVlLFQ9VixTPTAsUWU9LTEsJGU9KHllPTE8PFYpLTEsMT09PUFlJiZ5''@;'; + put 'put ''ZT44NTJ8fDI9PT1BZSYmeWU+NTkyKXJldHVybiAxO2Zvcig7Oyl7X3Q9bmUtUyxoZVt0ZV08QXQ/KHR0PTAsZXQ9aGVbdGVdKTpoZVt0ZV0+QXQ/KHR0PUJ0W29uK2hlW3RlXV0sZXQ9d3RbdnQraGVbdGVdXSk6KHR0PTk2LGV0PTApLERlPTE8PG5lLVMseD1QZT0xPDxUO2Rve1RlW2d0KyhD''@;'; + put 'put ''ZT4+UykrKFBlLT1EZSldPV90PDwyNHx0dDw8MTZ8ZXR8MH13aGlsZSgwIT09UGUpO2ZvcihEZT0xPDxuZS0xO0NlJkRlOylEZT4+PTE7aWYoMCE9PURlPyhDZSY9RGUtMSxDZSs9RGUpOkNlPTAsdGUrKywwPT0tLW10W25lXSl7aWYobmU9PT1QKWJyZWFrO25lPWtlW1NlK2hlW3RlXV19aWYo''@;'; + put 'put ''bmU+ViYmKENlJiRlKSE9PVFlKXtmb3IoMD09PVMmJihTPVYpLGd0Kz14LEY9MTw8KFQ9bmUtUyk7VCtTPFAmJiEoKEYtPW10W1QrU10pPD0wKTspVCsrLEY8PD0xO2lmKHllKz0xPDxULDE9PT1BZSYmeWU+ODUyfHwyPT09QWUmJnllPjU5MilyZXR1cm4gMTtUZVtRZT1DZSYkZV09Vjw8MjR8''@;'; + put 'put ''VDw8MTZ8Z3QtRWV8MH19cmV0dXJuIDAhPT1DZSYmKFRlW2d0K0NlXT1uZS1TPDwyNHw2NDw8MTZ8MCksTy5iaXRzPVYsMH19LHsiLi4vdXRpbHMvY29tbW9uIjoyN31dLDM3OltmdW5jdGlvbihRLFosaWUpeyJ1c2Ugc3RyaWN0IjtaLmV4cG9ydHM9ezI6Im5lZWQgZGljdGlvbmFyeSIsMToi''@;'; + put 'put ''c3RyZWFtIGVuZCIsMDoiIiwiLTEiOiJmaWxlIGVycm9yIiwiLTIiOiJzdHJlYW0gZXJyb3IiLCItMyI6ImRhdGEgZXJyb3IiLCItNCI6Imluc3VmZmljaWVudCBtZW1vcnkiLCItNSI6ImJ1ZmZlciBlcnJvciIsIi02IjoiaW5jb21wYXRpYmxlIHZlcnNpb24ifX0se31dLDM4OltmdW5jdGlv''@;'; + put 'put ''bihRLFosaWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbGU9USgiLi4vdXRpbHMvY29tbW9uIik7ZnVuY3Rpb24gcShxdCl7Zm9yKHZhciBwcj1xdC5sZW5ndGg7LS1wcj49MDspcXRbcHJdPTB9dmFyIFA9WzAsMCwwLDAsMCwwLDAsMCwxLDEsMSwxLDIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1''@;'; + put 'put ''LDUsMF0sVj1bMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxM10sVD1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDMsN10sUz1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQs''@;'; + put 'put ''MSwxNV0seWU9bmV3IEFycmF5KDU3Nik7cSh5ZSk7dmFyIENlPW5ldyBBcnJheSg2MCk7cShDZSk7dmFyIERlPW5ldyBBcnJheSg1MTIpO3EoRGUpO3ZhciBQZT1uZXcgQXJyYXkoMjU2KTtxKFBlKTt2YXIgUWU9bmV3IEFycmF5KDI5KTtxKFFlKTt2YXIgJGU9bmV3IEFycmF5KDMwKTtxKCRl''@;'; + put 'put ''KTt2YXIgd3QsdnQsQXQsZ3Q9ZnVuY3Rpb24ocXQscHIsbnIsQW4scW4pe3RoaXMuc3RhdGljX3RyZWU9cXQsdGhpcy5leHRyYV9iaXRzPXByLHRoaXMuZXh0cmFfYmFzZT1ucix0aGlzLmVsZW1zPUFuLHRoaXMubWF4X2xlbmd0aD1xbix0aGlzLmhhc19zdHJlZT1xdCYmcXQubGVuZ3RofSxt''@;'; + put 'put ''dD1mdW5jdGlvbihxdCxwcil7dGhpcy5keW5fdHJlZT1xdCx0aGlzLm1heF9jb2RlPTAsdGhpcy5zdGF0X2Rlc2M9cHJ9O2Z1bmN0aW9uIGh0KHF0KXtyZXR1cm4gcXQ8MjU2P0RlW3F0XTpEZVsyNTYrKHF0Pj4+NyldfWZ1bmN0aW9uIEJ0KHF0LHByKXtxdC5wZW5kaW5nX2J1ZltxdC5wZW5k''@;'; + put 'put ''aW5nKytdPTI1NSZwcixxdC5wZW5kaW5nX2J1ZltxdC5wZW5kaW5nKytdPXByPj4+OCYyNTV9ZnVuY3Rpb24gb24ocXQscHIsbnIpe3F0LmJpX3ZhbGlkPjE2LW5yPyhxdC5iaV9idWZ8PXByPDxxdC5iaV92YWxpZCY2NTUzNSxCdChxdCxxdC5iaV9idWYpLHF0LmJpX2J1Zj1wcj4+MTYtcXQu''@;'; + put 'put ''YmlfdmFsaWQscXQuYmlfdmFsaWQrPW5yLTE2KToocXQuYmlfYnVmfD1wcjw8cXQuYmlfdmFsaWQmNjU1MzUscXQuYmlfdmFsaWQrPW5yKX1mdW5jdGlvbiBfdChxdCxwcixucil7b24ocXQsbnJbMipwcl0sbnJbMipwcisxXSl9ZnVuY3Rpb24gdHQocXQscHIpe3ZhciBucj0wO2Rve25yfD0x''@;'; + put 'put ''JnF0LHF0Pj4+PTEsbnI8PD0xfXdoaWxlKC0tcHI+MCk7cmV0dXJuIG5yPj4+MX1mdW5jdGlvbiBMdChxdCxwcixucil7dmFyIFd0LHBuLEFuPW5ldyBBcnJheSgxNikscW49MDtmb3IoV3Q9MTtXdDw9MTU7V3QrKylBbltXdF09cW49cW4rbnJbV3QtMV08PDE7Zm9yKHBuPTA7cG48PXByO3Bu''@;'; + put 'put ''Kyspe3ZhciBLbj1xdFsyKnBuKzFdOzAhPT1LbiYmKHF0WzIqcG5dPXR0KEFuW0tuXSsrLEtuKSl9fWZ1bmN0aW9uIGZ0KHF0KXt2YXIgcHI7Zm9yKHByPTA7cHI8Mjg2O3ByKyspcXQuZHluX2x0cmVlWzIqcHJdPTA7Zm9yKHByPTA7cHI8MzA7cHIrKylxdC5keW5fZHRyZWVbMipwcl09MDtm''@;'; + put 'put ''b3IocHI9MDtwcjwxOTtwcisrKXF0LmJsX3RyZWVbMipwcl09MDtxdC5keW5fbHRyZWVbNTEyXT0xLHF0Lm9wdF9sZW49cXQuc3RhdGljX2xlbj0wLHF0Lmxhc3RfbGl0PXF0Lm1hdGNoZXM9MH1mdW5jdGlvbiBIdChxdCl7cXQuYmlfdmFsaWQ+OD9CdChxdCxxdC5iaV9idWYpOnF0LmJpX3Zh''@;'; + put 'put ''bGlkPjAmJihxdC5wZW5kaW5nX2J1ZltxdC5wZW5kaW5nKytdPXF0LmJpX2J1ZikscXQuYmlfYnVmPTAscXQuYmlfdmFsaWQ9MH1mdW5jdGlvbiBVZShxdCxwcixucixBbil7dmFyIHFuPTIqcHIsV3Q9MipucjtyZXR1cm4gcXRbcW5dPHF0W1d0XXx8cXRbcW5dPT09cXRbV3RdJiZBbltwcl08''@;'; + put 'put ''PUFuW25yXX1mdW5jdGlvbiB5dChxdCxwcixucil7Zm9yKHZhciBBbj1xdC5oZWFwW25yXSxxbj1ucjw8MTtxbjw9cXQuaGVhcF9sZW4mJihxbjxxdC5oZWFwX2xlbiYmVWUocHIscXQuaGVhcFtxbisxXSxxdC5oZWFwW3FuXSxxdC5kZXB0aCkmJnFuKyssIVVlKHByLEFuLHF0LmhlYXBbcW5d''@;'; + put 'put ''LHF0LmRlcHRoKSk7KXF0LmhlYXBbbnJdPXF0LmhlYXBbcW5dLG5yPXFuLHFuPDw9MTtxdC5oZWFwW25yXT1Bbn1mdW5jdGlvbiBqdChxdCxwcixucil7dmFyIEFuLHFuLHBuLEtuLFd0PTA7aWYoMCE9PXF0Lmxhc3RfbGl0KWRve0FuPXF0LnBlbmRpbmdfYnVmW3F0LmRfYnVmKzIqV3RdPDw4''@;'; + put 'put ''fHF0LnBlbmRpbmdfYnVmW3F0LmRfYnVmKzIqV3QrMV0scW49cXQucGVuZGluZ19idWZbcXQubF9idWYrV3RdLFd0KyssMD09PUFuP190KHF0LHFuLHByKTooX3QocXQsKHBuPVBlW3FuXSkrMjU2KzEscHIpLDAhPT0oS249UFtwbl0pJiZvbihxdCxxbi09UWVbcG5dLEtuKSxfdChxdCxwbj1o''@;'; + put 'put ''dCgtLUFuKSxuciksMCE9PShLbj1WW3BuXSkmJm9uKHF0LEFuLT0kZVtwbl0sS24pKX13aGlsZShXdDxxdC5sYXN0X2xpdCk7X3QocXQsMjU2LHByKX1mdW5jdGlvbiBRdChxdCxwcil7dmFyIHBuLEtuLHNuLG5yPXByLmR5bl90cmVlLEFuPXByLnN0YXRfZGVzYy5zdGF0aWNfdHJlZSxxbj1w''@;'; + put 'put ''ci5zdGF0X2Rlc2MuaGFzX3N0cmVlLFd0PXByLnN0YXRfZGVzYy5lbGVtcyxOdD0tMTtmb3IocXQuaGVhcF9sZW49MCxxdC5oZWFwX21heD01NzMscG49MDtwbjxXdDtwbisrKTAhPT1uclsyKnBuXT8ocXQuaGVhcFsrK3F0LmhlYXBfbGVuXT1OdD1wbixxdC5kZXB0aFtwbl09MCk6bnJbMipw''@;'; + put 'put ''bisxXT0wO2Zvcig7cXQuaGVhcF9sZW48MjspbnJbMiooc249cXQuaGVhcFsrK3F0LmhlYXBfbGVuXT1OdDwyPysrTnQ6MCldPTEscXQuZGVwdGhbc25dPTAscXQub3B0X2xlbi0tLHFuJiYocXQuc3RhdGljX2xlbi09QW5bMipzbisxXSk7Zm9yKHByLm1heF9jb2RlPU50LHBuPXF0LmhlYXBf''@;'; + put 'put ''bGVuPj4xO3BuPj0xO3BuLS0peXQocXQsbnIscG4pO3NuPVd0O2Rve3BuPXF0LmhlYXBbMV0scXQuaGVhcFsxXT1xdC5oZWFwW3F0LmhlYXBfbGVuLS1dLHl0KHF0LG5yLDEpLEtuPXF0LmhlYXBbMV0scXQuaGVhcFstLXF0LmhlYXBfbWF4XT1wbixxdC5oZWFwWy0tcXQuaGVhcF9tYXhdPUtu''@;'; + put 'put ''LG5yWzIqc25dPW5yWzIqcG5dK25yWzIqS25dLHF0LmRlcHRoW3NuXT0ocXQuZGVwdGhbcG5dPj1xdC5kZXB0aFtLbl0/cXQuZGVwdGhbcG5dOnF0LmRlcHRoW0tuXSkrMSxuclsyKnBuKzFdPW5yWzIqS24rMV09c24scXQuaGVhcFsxXT1zbisrLHl0KHF0LG5yLDEpfXdoaWxlKHF0LmhlYXBf''@;'; + put 'put ''bGVuPj0yKTtxdC5oZWFwWy0tcXQuaGVhcF9tYXhdPXF0LmhlYXBbMV0sZnVuY3Rpb24gYXQocXQscHIpe3ZhciBzbixVbix3bix0bix6bixUcixucj1wci5keW5fdHJlZSxBbj1wci5tYXhfY29kZSxxbj1wci5zdGF0X2Rlc2Muc3RhdGljX3RyZWUsV3Q9cHIuc3RhdF9kZXNjLmhhc19zdHJl''@;'; + put 'put ''ZSxwbj1wci5zdGF0X2Rlc2MuZXh0cmFfYml0cyxLbj1wci5zdGF0X2Rlc2MuZXh0cmFfYmFzZSxOdD1wci5zdGF0X2Rlc2MubWF4X2xlbmd0aCxCbj0wO2Zvcih0bj0wO3RuPD0xNTt0bisrKXF0LmJsX2NvdW50W3RuXT0wO2ZvcihuclsyKnF0LmhlYXBbcXQuaGVhcF9tYXhdKzFdPTAsc249''@;'; + put 'put ''cXQuaGVhcF9tYXgrMTtzbjw1NzM7c24rKykodG49bnJbMipuclsyKihVbj1xdC5oZWFwW3NuXSkrMV0rMV0rMSk+TnQmJih0bj1OdCxCbisrKSxuclsyKlVuKzFdPXRuLCEoVW4+QW4pJiYocXQuYmxfY291bnRbdG5dKyssem49MCxVbj49S24mJih6bj1wbltVbi1Lbl0pLHF0Lm9wdF9sZW4r''@;'; + put 'put ''PShUcj1uclsyKlVuXSkqKHRuK3puKSxXdCYmKHF0LnN0YXRpY19sZW4rPVRyKihxblsyKlVuKzFdK3puKSkpO2lmKDAhPT1Cbil7ZG97Zm9yKHRuPU50LTE7MD09PXF0LmJsX2NvdW50W3RuXTspdG4tLTtxdC5ibF9jb3VudFt0bl0tLSxxdC5ibF9jb3VudFt0bisxXSs9MixxdC5ibF9jb3Vu''@;'; + put 'put ''dFtOdF0tLSxCbi09Mn13aGlsZShCbj4wKTtmb3IodG49TnQ7MCE9PXRuO3RuLS0pZm9yKFVuPXF0LmJsX2NvdW50W3RuXTswIT09VW47KSEoKHduPXF0LmhlYXBbLS1zbl0pPkFuKSYmKG5yWzIqd24rMV0hPT10biYmKHF0Lm9wdF9sZW4rPSh0bi1uclsyKnduKzFdKSpuclsyKnduXSxuclsy''@;'; + put 'put ''KnduKzFdPXRuKSxVbi0tKX19KHF0LHByKSxMdChucixOdCxxdC5ibF9jb3VudCl9ZnVuY3Rpb24gZ24ocXQscHIsbnIpe3ZhciBBbixXdCxxbj0tMSxwbj1wclsxXSxLbj0wLE50PTcsc249NDtmb3IoMD09PXBuJiYoTnQ9MTM4LHNuPTMpLHByWzIqKG5yKzEpKzFdPTY1NTM1LEFuPTA7QW48''@;'; + put 'put ''PW5yO0FuKyspV3Q9cG4scG49cHJbMiooQW4rMSkrMV0sISgrK0tuPE50JiZXdD09PXBuKSYmKEtuPHNuP3F0LmJsX3RyZWVbMipXdF0rPUtuOjAhPT1XdD8oV3QhPT1xbiYmcXQuYmxfdHJlZVsyKld0XSsrLHF0LmJsX3RyZWVbMzJdKyspOktuPD0xMD9xdC5ibF90cmVlWzM0XSsrOnF0LmJs''@;'; + put 'put ''X3RyZWVbMzZdKyssS249MCxxbj1XdCwwPT09cG4/KE50PTEzOCxzbj0zKTpXdD09PXBuPyhOdD02LHNuPTMpOihOdD03LHNuPTQpKX1mdW5jdGlvbiBkbihxdCxwcixucil7dmFyIEFuLFd0LHFuPS0xLHBuPXByWzFdLEtuPTAsTnQ9Nyxzbj00O2ZvcigwPT09cG4mJihOdD0xMzgsc249Myks''@;'; + put 'put ''QW49MDtBbjw9bnI7QW4rKylpZihXdD1wbixwbj1wclsyKihBbisxKSsxXSwhKCsrS248TnQmJld0PT09cG4pKXtpZihLbjxzbilkb3tfdChxdCxXdCxxdC5ibF90cmVlKX13aGlsZSgwIT0tLUtuKTtlbHNlIDAhPT1XdD8oV3QhPT1xbiYmKF90KHF0LFd0LHF0LmJsX3RyZWUpLEtuLS0pLF90''@;'; + put 'put ''KHF0LDE2LHF0LmJsX3RyZWUpLG9uKHF0LEtuLTMsMikpOktuPD0xMD8oX3QocXQsMTcscXQuYmxfdHJlZSksb24ocXQsS24tMywzKSk6KF90KHF0LDE4LHF0LmJsX3RyZWUpLG9uKHF0LEtuLTExLDcpKTtLbj0wLHFuPVd0LDA9PT1wbj8oTnQ9MTM4LHNuPTMpOld0PT09cG4/KE50PTYsc249''@;'; + put 'put ''Myk6KE50PTcsc249NCl9fXZhciBibj0hMTtmdW5jdGlvbiBzcihxdCxwcixucixBbil7b24ocXQsMCsoQW4/MTowKSwzKSxmdW5jdGlvbiBHZShxdCxwcixucixBbil7SHQocXQpLEFuJiYoQnQocXQsbnIpLEJ0KHF0LH5ucikpLGxlLmFycmF5U2V0KHF0LnBlbmRpbmdfYnVmLHF0LndpbmRv''@;'; + put 'put ''dyxwcixucixxdC5wZW5kaW5nKSxxdC5wZW5kaW5nKz1ucn0ocXQscHIsbnIsITApfWllLl90cl9pbml0PWZ1bmN0aW9uIGVyKHF0KXtibnx8KGZ1bmN0aW9uIEN0KCl7dmFyIHF0LHByLG5yLEFuLHFuLFd0PW5ldyBBcnJheSgxNik7Zm9yKG5yPTAsQW49MDtBbjwyODtBbisrKWZvcihRZVtB''@;'; + put 'put ''bl09bnIscXQ9MDtxdDwxPDxQW0FuXTtxdCsrKVBlW25yKytdPUFuO2ZvcihQZVtuci0xXT1Bbixxbj0wLEFuPTA7QW48MTY7QW4rKylmb3IoJGVbQW5dPXFuLHF0PTA7cXQ8MTw8VltBbl07cXQrKylEZVtxbisrXT1Bbjtmb3IocW4+Pj03O0FuPDMwO0FuKyspZm9yKCRlW0FuXT1xbjw8Nyxx''@;'; + put 'put ''dD0wO3F0PDE8PFZbQW5dLTc7cXQrKylEZVsyNTYrcW4rK109QW47Zm9yKHByPTA7cHI8PTE1O3ByKyspV3RbcHJdPTA7Zm9yKHF0PTA7cXQ8PTE0MzspeWVbMipxdCsxXT04LHF0KyssV3RbOF0rKztmb3IoO3F0PD0yNTU7KXllWzIqcXQrMV09OSxxdCsrLFd0WzldKys7Zm9yKDtxdDw9Mjc5''@;'; + put 'put ''Oyl5ZVsyKnF0KzFdPTcscXQrKyxXdFs3XSsrO2Zvcig7cXQ8PTI4NzspeWVbMipxdCsxXT04LHF0KyssV3RbOF0rKztmb3IoTHQoeWUsMjg3LFd0KSxxdD0wO3F0PDMwO3F0KyspQ2VbMipxdCsxXT01LENlWzIqcXRdPXR0KHF0LDUpO3d0PW5ldyBndCh5ZSxQLDI1NywyODYsMTUpLHZ0PW5l''@;'; + put 'put ''dyBndChDZSxWLDAsMzAsMTUpLEF0PW5ldyBndChuZXcgQXJyYXkoMCksVCwwLDE5LDcpfSgpLGJuPSEwKSxxdC5sX2Rlc2M9bmV3IG10KHF0LmR5bl9sdHJlZSx3dCkscXQuZF9kZXNjPW5ldyBtdChxdC5keW5fZHRyZWUsdnQpLHF0LmJsX2Rlc2M9bmV3IG10KHF0LmJsX3RyZWUsQXQpLHF0''@;'; + put 'put ''LmJpX2J1Zj0wLHF0LmJpX3ZhbGlkPTAsZnQocXQpfSxpZS5fdHJfc3RvcmVkX2Jsb2NrPXNyLGllLl90cl9mbHVzaF9ibG9jaz1mdW5jdGlvbiBGcihxdCxwcixucixBbil7dmFyIHFuLFd0LHBuPTA7cXQubGV2ZWw+MD8oMj09PXF0LnN0cm0uZGF0YV90eXBlJiYocXQuc3RybS5kYXRhX3R5''@;'; + put 'put ''cGU9ZnVuY3Rpb24gTm4ocXQpe3ZhciBucixwcj00MDkzNjI0NDQ3O2Zvcihucj0wO25yPD0zMTtucisrLHByPj4+PTEpaWYoMSZwciYmMCE9PXF0LmR5bl9sdHJlZVsyKm5yXSlyZXR1cm4gMDtpZigwIT09cXQuZHluX2x0cmVlWzE4XXx8MCE9PXF0LmR5bl9sdHJlZVsyMF18fDAhPT1xdC5k''@;'; + put 'put ''eW5fbHRyZWVbMjZdKXJldHVybiAxO2Zvcihucj0zMjtucjwyNTY7bnIrKylpZigwIT09cXQuZHluX2x0cmVlWzIqbnJdKXJldHVybiAxO3JldHVybiAwfShxdCkpLFF0KHF0LHF0LmxfZGVzYyksUXQocXQscXQuZF9kZXNjKSxwbj1mdW5jdGlvbiB5bihxdCl7dmFyIHByO2ZvcihnbihxdCxx''@;'; + put 'put ''dC5keW5fbHRyZWUscXQubF9kZXNjLm1heF9jb2RlKSxnbihxdCxxdC5keW5fZHRyZWUscXQuZF9kZXNjLm1heF9jb2RlKSxRdChxdCxxdC5ibF9kZXNjKSxwcj0xODtwcj49MyYmMD09PXF0LmJsX3RyZWVbMipTW3ByXSsxXTtwci0tKTtyZXR1cm4gcXQub3B0X2xlbis9MyoocHIrMSkrNSs1''@;'; + put 'put ''KzQscHJ9KHF0KSwoV3Q9cXQuc3RhdGljX2xlbiszKzc+Pj4zKTw9KHFuPXF0Lm9wdF9sZW4rMys3Pj4+MykmJihxbj1XdCkpOnFuPVd0PW5yKzUsbnIrNDw9cW4mJi0xIT09cHI/c3IocXQscHIsbnIsQW4pOjQ9PT1xdC5zdHJhdGVneXx8V3Q9PT1xbj8ob24ocXQsMisoQW4/MTowKSwzKSxq''@;'; + put 'put ''dChxdCx5ZSxDZSkpOihvbihxdCw0KyhBbj8xOjApLDMpLGZ1bmN0aW9uIGxuKHF0LHByLG5yLEFuKXt2YXIgcW47Zm9yKG9uKHF0LHByLTI1Nyw1KSxvbihxdCxuci0xLDUpLG9uKHF0LEFuLTQsNCkscW49MDtxbjxBbjtxbisrKW9uKHF0LHF0LmJsX3RyZWVbMipTW3FuXSsxXSwzKTtkbihx''@;'; + put 'put ''dCxxdC5keW5fbHRyZWUscHItMSksZG4ocXQscXQuZHluX2R0cmVlLG5yLTEpfShxdCxxdC5sX2Rlc2MubWF4X2NvZGUrMSxxdC5kX2Rlc2MubWF4X2NvZGUrMSxwbisxKSxqdChxdCxxdC5keW5fbHRyZWUscXQuZHluX2R0cmVlKSksZnQocXQpLEFuJiZIdChxdCl9LGllLl90cl90YWxseT1m''@;'; + put 'put ''dW5jdGlvbiB4cihxdCxwcixucil7cmV0dXJuIHF0LnBlbmRpbmdfYnVmW3F0LmRfYnVmKzIqcXQubGFzdF9saXRdPXByPj4+OCYyNTUscXQucGVuZGluZ19idWZbcXQuZF9idWYrMipxdC5sYXN0X2xpdCsxXT0yNTUmcHIscXQucGVuZGluZ19idWZbcXQubF9idWYrcXQubGFzdF9saXRdPTI1''@;'; + put 'put ''NSZucixxdC5sYXN0X2xpdCsrLDA9PT1wcj9xdC5keW5fbHRyZWVbMipucl0rKzoocXQubWF0Y2hlcysrLHByLS0scXQuZHluX2x0cmVlWzIqKFBlW25yXSsyNTYrMSldKysscXQuZHluX2R0cmVlWzIqaHQocHIpXSsrKSxxdC5sYXN0X2xpdD09PXF0LmxpdF9idWZzaXplLTF9LGllLl90cl9h''@;'; + put 'put ''bGlnbj1mdW5jdGlvbiBYbihxdCl7b24ocXQsMiwzKSxfdChxdCwyNTYseWUpLGZ1bmN0aW9uIGV0KHF0KXsxNj09PXF0LmJpX3ZhbGlkPyhCdChxdCxxdC5iaV9idWYpLHF0LmJpX2J1Zj0wLHF0LmJpX3ZhbGlkPTApOnF0LmJpX3ZhbGlkPj04JiYocXQucGVuZGluZ19idWZbcXQucGVuZGlu''@;'; + put 'put ''ZysrXT0yNTUmcXQuYmlfYnVmLHF0LmJpX2J1Zj4+PTgscXQuYmlfdmFsaWQtPTgpfShxdCl9fSx7Ii4uL3V0aWxzL2NvbW1vbiI6Mjd9XSwzOTpbZnVuY3Rpb24oUSxaLGllKXsidXNlIHN0cmljdCI7Wi5leHBvcnRzPWZ1bmN0aW9uIGxlKCl7dGhpcy5pbnB1dD1udWxsLHRoaXMubmV4dF9p''@;'; + put 'put ''bj0wLHRoaXMuYXZhaWxfaW49MCx0aGlzLnRvdGFsX2luPTAsdGhpcy5vdXRwdXQ9bnVsbCx0aGlzLm5leHRfb3V0PTAsdGhpcy5hdmFpbF9vdXQ9MCx0aGlzLnRvdGFsX291dD0wLHRoaXMubXNnPSIiLHRoaXMuc3RhdGU9bnVsbCx0aGlzLmRhdGFfdHlwZT0yLHRoaXMuYWRsZXI9MH19LHt9''@;'; + put 'put ''XX0se30sWzldKSg5KX0pfSwzMDYyODooWGUsSmUsTCk9PnshZnVuY3Rpb24gQihVKXtVLnZlcnNpb249IjEuMjAyMTExMjIuMSI7dmFyIFE9MTIwMCxaPTEyNTI7InVuZGVmaW5lZCI9PXR5cGVvZiBjcHRhYmxlJiYoInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsLmNwdGFibGU9''@;'; + put 'put ''TCg1MzM5OSk6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJih3aW5kb3cuY3B0YWJsZT1MKDUzMzk5KSkpO2Zvcih2YXIgaWU9Wzg3NCw5MzIsOTM2LDk0OSw5NTAsMWU0XSxsZT0wO2xlPD04OysrbGUpaWUucHVzaCgxMjUwK2xlKTt2YXIgWT17MDoxMjUyLDE6NjUwMDEsMjo2NTAwMSw3''@;'; + put 'put ''NzoxZTQsMTI4OjkzMiwxMjk6OTQ5LDEzMDoxMzYxLDEzNDo5MzYsMTM2Ojk1MCwxNjE6MTI1MywxNjI6MTI1NCwxNjM6MTI1OCwxNzc6MTI1NSwxNzg6MTI1NiwxODY6MTI1NywyMDQ6MTI1MSwyMjI6ODc0LDIzODoxMjUwLDI1NToxMjUyLDY5OjY5Njl9LFc9ZnVuY3Rpb24oSCl7LTEhPWll''@;'; + put 'put ''LmluZGV4T2YoSCkmJihaPVlbMF09SCl9LGVlPWZ1bmN0aW9uKEgpe1E9SCxXKEgpfTtmdW5jdGlvbiBxKCl7ZWUoMTIwMCksZnVuY3Rpb24gTigpe1coMTI1Mil9KCl9ZnVuY3Rpb24gSihIKXtmb3IodmFyIHJlPVtdLFg9MCx3ZT1ILmxlbmd0aDtYPHdlOysrWClyZVtYXT1ILmNoYXJDb2Rl''@;'; + put 'put ''QXQoWCk7cmV0dXJuIHJlfXZhciBjZT1mdW5jdGlvbihIKXt2YXIgcmU9SC5jaGFyQ29kZUF0KDApLFg9SC5jaGFyQ29kZUF0KDEpO3JldHVybiAyNTU9PXJlJiYyNTQ9PVg/ZnVuY3Rpb24gc2UoSCl7Zm9yKHZhciByZT1bXSxYPTA7WDxILmxlbmd0aD4+MTsrK1gpcmVbWF09U3RyaW5nLmZy''@;'; + put 'put ''b21DaGFyQ29kZShILmNoYXJDb2RlQXQoMipYKSsoSC5jaGFyQ29kZUF0KDIqWCsxKTw8OCkpO3JldHVybiByZS5qb2luKCIiKX0oSC5zbGljZSgyKSk6MjU0PT1yZSYmMjU1PT1YP2Z1bmN0aW9uIG9lKEgpe2Zvcih2YXIgcmU9W10sWD0wO1g8SC5sZW5ndGg+PjE7KytYKXJlW1hdPVN0cmlu''@;'; + put 'put ''Zy5mcm9tQ2hhckNvZGUoSC5jaGFyQ29kZUF0KDIqWCsxKSsoSC5jaGFyQ29kZUF0KDIqWCk8PDgpKTtyZXR1cm4gcmUuam9pbigiIil9KEguc2xpY2UoMikpOjY1Mjc5PT1yZT9ILnNsaWNlKDEpOkh9LGRlPWZ1bmN0aW9uKHJlKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShyZSl9LHZl''@;'; + put 'put ''PWZ1bmN0aW9uKHJlKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShyZSl9OyJ1bmRlZmluZWQiIT10eXBlb2YgY3B0YWJsZSYmKGVlPWZ1bmN0aW9uKEgpe1E9SCxXKEgpfSxjZT1mdW5jdGlvbihIKXtyZXR1cm4gMjU1PT09SC5jaGFyQ29kZUF0KDApJiYyNTQ9PT1ILmNoYXJDb2RlQXQo''@;'; + put 'put ''MSk/Y3B0YWJsZS51dGlscy5kZWNvZGUoMTIwMCxKKEguc2xpY2UoMikpKTpIfSxkZT1mdW5jdGlvbihyZSl7cmV0dXJuIDEyMDA9PT1RP1N0cmluZy5mcm9tQ2hhckNvZGUocmUpOmNwdGFibGUudXRpbHMuZGVjb2RlKFEsWzI1NSZyZSxyZT4+OF0pWzBdfSx2ZT1mdW5jdGlvbihyZSl7cmV0''@;'; + put 'put ''dXJuIGNwdGFibGUudXRpbHMuZGVjb2RlKFosW3JlXSlbMF19KTt2YXIgcmUsU2U9KHJlPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIse2VuY29kZTpmdW5jdGlvbihYKXtmb3IodmFyIHdlPSIiLHhlPTAsRmU9MCxa''@;'; + put 'put ''ZT0wLGplPTAsWWU9MCxNdD0wLHh0PTAsUnQ9MDtSdDxYLmxlbmd0aDspamU9KHhlPVguY2hhckNvZGVBdChSdCsrKSk+PjIsWWU9KDMmeGUpPDw0fChGZT1YLmNoYXJDb2RlQXQoUnQrKykpPj40LE10PSgxNSZGZSk8PDJ8KFplPVguY2hhckNvZGVBdChSdCsrKSk+PjYseHQ9NjMmWmUsaXNO''@;'; + put 'put ''YU4oRmUpP010PXh0PTY0OmlzTmFOKFplKSYmKHh0PTY0KSx3ZSs9cmUuY2hhckF0KGplKStyZS5jaGFyQXQoWWUpK3JlLmNoYXJBdChNdCkrcmUuY2hhckF0KHh0KTtyZXR1cm4gd2V9LGRlY29kZTpmdW5jdGlvbih3ZSl7dmFyIHhlPSIiLFllPTAsTXQ9MCx4dD0wLFJ0PTA7d2U9d2UucmVw''@;'; + put 'put ''bGFjZSgvW15cd1wrXC9cPV0vZywiIik7Zm9yKHZhciBZdD0wO1l0PHdlLmxlbmd0aDspWWU9cmUuaW5kZXhPZih3ZS5jaGFyQXQoWXQrKykpLE10PXJlLmluZGV4T2Yod2UuY2hhckF0KFl0KyspKSx4ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShZZTw8MnxNdD4+NCksNjQhPT0oeHQ9cmUuaW5k''@;'; + put 'put ''ZXhPZih3ZS5jaGFyQXQoWXQrKykpKSYmKHhlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgxNSZNdCk8PDR8eHQ+PjIpKSw2NCE9PShSdD1yZS5pbmRleE9mKHdlLmNoYXJBdChZdCsrKSkpJiYoeGUrPVN0cmluZy5mcm9tQ2hhckNvZGUoKDMmeHQpPDw2fFJ0KSk7cmV0dXJuIHhlfX0pLEllPSJ1''@;'; + put 'put ''bmRlZmluZWQiIT10eXBlb2YgQnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIHByb2Nlc3MmJnZvaWQgMCE9PXByb2Nlc3MudmVyc2lvbnMmJiEhcHJvY2Vzcy52ZXJzaW9ucy5ub2RlLFRlPWZ1bmN0aW9uKCl7fTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEJ1ZmZlcil7dmFyIEVlPSFCdWZm''@;'; + put 'put ''ZXIuZnJvbTtpZighRWUpdHJ5e0J1ZmZlci5mcm9tKCJmb28iLCJ1dGY4Iil9Y2F0Y2goSCl7RWU9ITB9VGU9RWU/ZnVuY3Rpb24oSCxyZSl7cmV0dXJuIHJlP25ldyBCdWZmZXIoSCxyZSk6bmV3IEJ1ZmZlcihIKX06QnVmZmVyLmZyb20uYmluZChCdWZmZXIpLEJ1ZmZlci5hbGxvY3x8KEJ1''@;'; + put 'put ''ZmZlci5hbGxvYz1mdW5jdGlvbihIKXtyZXR1cm4gbmV3IEJ1ZmZlcihIKX0pLEJ1ZmZlci5hbGxvY1Vuc2FmZXx8KEJ1ZmZlci5hbGxvY1Vuc2FmZT1mdW5jdGlvbihIKXtyZXR1cm4gbmV3IEJ1ZmZlcihIKX0pfWZ1bmN0aW9uIGhlKEgpe3JldHVybiBJZT9CdWZmZXIuYWxsb2MoSCk6bmV3''@;'; + put 'put ''IEFycmF5KEgpfWZ1bmN0aW9uIE8oSCl7cmV0dXJuIEllP0J1ZmZlci5hbGxvY1Vuc2FmZShIKTpuZXcgQXJyYXkoSCl9dmFyIHo9ZnVuY3Rpb24ocmUpe3JldHVybiBJZT9UZShyZSwiYmluYXJ5Iik6cmUuc3BsaXQoIiIpLm1hcChmdW5jdGlvbihYKXtyZXR1cm4gMjU1JlguY2hhckNvZGVB''@;'; + put 'put ''dCgwKX0pfTtmdW5jdGlvbiBuZShIKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIEFycmF5QnVmZmVyKXJldHVybiB6KEgpO2Zvcih2YXIgcmU9bmV3IEFycmF5QnVmZmVyKEgubGVuZ3RoKSxYPW5ldyBVaW50OEFycmF5KHJlKSx3ZT0wO3dlIT1ILmxlbmd0aDsrK3dlKVhbd2VdPTI1NSZILmNo''@;'; + put 'put ''YXJDb2RlQXQod2UpO3JldHVybiByZX1mdW5jdGlvbiB0ZShIKXtpZihBcnJheS5pc0FycmF5KEgpKXJldHVybiBILm1hcChmdW5jdGlvbih3ZSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUod2UpfSkuam9pbigiIik7Zm9yKHZhciByZT1bXSxYPTA7WDxILmxlbmd0aDsrK1gpcmVbWF09''@;'; + put 'put ''U3RyaW5nLmZyb21DaGFyQ29kZShIW1hdKTtyZXR1cm4gcmUuam9pbigiIil9ZnVuY3Rpb24gUChIKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIEFycmF5QnVmZmVyKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQiKTtpZihIIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIFAobmV3''@;'; + put 'put ''IFVpbnQ4QXJyYXkoSCkpO2Zvcih2YXIgcmU9bmV3IEFycmF5KEgubGVuZ3RoKSxYPTA7WDxILmxlbmd0aDsrK1gpcmVbWF09SFtYXTtyZXR1cm4gcmV9dmFyIFY9ZnVuY3Rpb24oSCl7dmFyIHJlPVtdO3JldHVybiBILmZvckVhY2goZnVuY3Rpb24oWCl7QXJyYXkuaXNBcnJheShYKT9yZT1y''@;'; + put 'put ''ZS5jb25jYXQoWCk6KCJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSYmWCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fCJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJlggaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikmJihyZT1yZS5jb25jYXQoUChYKSkpfSkscmV9LFQ9L1x1MDAw''@;'; + put 'put ''MC9nLFM9L1tcdTAwMDEtXHUwMDA2XS9nLEY9e30seWU9ZnVuY3Rpb24ocmUpe2Z1bmN0aW9uIFgocnIpe2Zvcih2YXIgSXI9IiIsWnI9cnIubGVuZ3RoLTE7WnI+PTA7KUlyKz1yci5jaGFyQXQoWnItLSk7cmV0dXJuIElyfWZ1bmN0aW9uIHdlKHJyLElyKXtmb3IodmFyIFpyPSIiO1pyLmxl''@;'; + put 'put ''bmd0aDxJcjspWnIrPXJyO3JldHVybiBacn1mdW5jdGlvbiB4ZShycixJcil7dmFyIFpyPSIiK3JyO3JldHVybiBaci5sZW5ndGg+PUlyP1pyOndlKCIwIixJci1aci5sZW5ndGgpK1pyfWZ1bmN0aW9uIEZlKHJyLElyKXt2YXIgWnI9IiIrcnI7cmV0dXJuIFpyLmxlbmd0aD49SXI/WnI6d2Uo''@;'; + put 'put ''IiAiLElyLVpyLmxlbmd0aCkrWnJ9ZnVuY3Rpb24gWmUocnIsSXIpe3ZhciBacj0iIitycjtyZXR1cm4gWnIubGVuZ3RoPj1Jcj9acjpacit3ZSgiICIsSXItWnIubGVuZ3RoKX1yZS52ZXJzaW9uPSIxLjIwMjEwNzI2LjEiO3ZhciBNdD1NYXRoLnBvdygyLDMyKTtmdW5jdGlvbiB4dChycixJ''@;'; + put 'put ''cil7cmV0dXJuIHJyPk10fHxycjwtTXQ/ZnVuY3Rpb24gamUocnIsSXIpe3ZhciBacj0iIitNYXRoLnJvdW5kKHJyKTtyZXR1cm4gWnIubGVuZ3RoPj1Jcj9acjp3ZSgiMCIsSXItWnIubGVuZ3RoKStacn0ocnIsSXIpOmZ1bmN0aW9uIFllKHJyLElyKXt2YXIgWnI9IiIrcnI7cmV0dXJuIFpy''@;'; + put 'put ''Lmxlbmd0aD49SXI/WnI6d2UoIjAiLElyLVpyLmxlbmd0aCkrWnJ9KE1hdGgucm91bmQocnIpLElyKX1mdW5jdGlvbiBSdChycixJcil7cmV0dXJuIHJyLmxlbmd0aD49NysoSXI9SXJ8fDApJiYxMDM9PSgzMnxyci5jaGFyQ29kZUF0KElyKSkmJjEwMT09KDMyfHJyLmNoYXJDb2RlQXQoSXIr''@;'; + put 'put ''MSkpJiYxMTA9PSgzMnxyci5jaGFyQ29kZUF0KElyKzIpKSYmMTAxPT0oMzJ8cnIuY2hhckNvZGVBdChJciszKSkmJjExND09KDMyfHJyLmNoYXJDb2RlQXQoSXIrNCkpJiY5Nz09KDMyfHJyLmNoYXJDb2RlQXQoSXIrNSkpJiYxMDg9PSgzMnxyci5jaGFyQ29kZUF0KElyKzYpKX1mdW5jdGlv''@;'; + put 'put ''biBZdChycil7Zm9yKHZhciBJcj1bXSxacj1PYmplY3Qua2V5cyhycikscWk9MDtxaSE9PVpyLmxlbmd0aDsrK3FpKUlyW3JyW1pyW3FpXV1dPVpyW3FpXTtyZXR1cm4gSXJ9dmFyIG5uPVtbIlN1biIsIlN1bmRheSJdLFsiTW9uIiwiTW9uZGF5Il0sWyJUdWUiLCJUdWVzZGF5Il0sWyJXZWQi''@;'; + put 'put ''LCJXZWRuZXNkYXkiXSxbIlRodSIsIlRodXJzZGF5Il0sWyJGcmkiLCJGcmlkYXkiXSxbIlNhdCIsIlNhdHVyZGF5Il1dLENuPVtbIkoiLCJKYW4iLCJKYW51YXJ5Il0sWyJGIiwiRmViIiwiRmVicnVhcnkiXSxbIk0iLCJNYXIiLCJNYXJjaCJdLFsiQSIsIkFwciIsIkFwcmlsIl0sWyJNIiwi''@;'; + put 'put ''TWF5IiwiTWF5Il0sWyJKIiwiSnVuIiwiSnVuZSJdLFsiSiIsIkp1bCIsIkp1bHkiXSxbIkEiLCJBdWciLCJBdWd1c3QiXSxbIlMiLCJTZXAiLCJTZXB0ZW1iZXIiXSxbIk8iLCJPY3QiLCJPY3RvYmVyIl0sWyJOIiwiTm92IiwiTm92ZW1iZXIiXSxbIkQiLCJEZWMiLCJEZWNlbWJlciJdXTtm''@;'; + put 'put ''dW5jdGlvbiBEdChycil7cnJbMF09IkdlbmVyYWwiLHJyWzFdPSIwIixyclsyXT0iMC4wMCIscnJbM109IiMsIyMwIixycls0XT0iIywjIzAuMDAiLHJyWzldPSIwJSIscnJbMTBdPSIwLjAwJSIscnJbMTFdPSIwLjAwRSswMCIscnJbMTJdPSIjID8vPyIscnJbMTNdPSIjID8/Lz8/Iixyclsx''@;'; + put 'put ''NF09Im0vZC95eSIscnJbMTVdPSJkLW1tbS15eSIscnJbMTZdPSJkLW1tbSIscnJbMTddPSJtbW0teXkiLHJyWzE4XT0iaDptbSBBTS9QTSIscnJbMTldPSJoOm1tOnNzIEFNL1BNIixyclsyMF09Img6bW0iLHJyWzIxXT0iaDptbTpzcyIscnJbMjJdPSJtL2QveXkgaDptbSIscnJbMzddPSIj''@;'; + put 'put ''LCMjMCA7KCMsIyMwKSIscnJbMzhdPSIjLCMjMCA7W1JlZF0oIywjIzApIixyclszOV09IiMsIyMwLjAwOygjLCMjMC4wMCkiLHJyWzQwXT0iIywjIzAuMDA7W1JlZF0oIywjIzAuMDApIixycls0NV09Im1tOnNzIixycls0Nl09IltoXTptbTpzcyIscnJbNDddPSJtbXNzLjAiLHJyWzQ4XT0i''@;'; + put 'put ''IyMwLjBFKzAiLHJyWzQ5XT0iQCIscnJbNTZdPSciXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCAiaGgiXHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIgIicsTnIocnIpfXZhciB6dD17fTtEdCh6dCk7dmFyIFBuPVtdLFRuPTA7Zm9yKFRuPTU7VG48PTg7KytUbilQbltUbl09MzIrVG47Zm9y''@;'; + put 'put ''KFRuPTIzO1RuPD0yNjsrK1RuKVBuW1RuXT0wO2ZvcihUbj0yNztUbjw9MzE7KytUbilQbltUbl09MTQ7Zm9yKFRuPTUwO1RuPD01ODsrK1RuKVBuW1RuXT0xNDtmb3IoVG49NTk7VG48PTYyOysrVG4pUG5bVG5dPVRuLTU4O2ZvcihUbj02NztUbjw9Njg7KytUbilQbltUbl09VG4tNTg7Zm9y''@;'; + put 'put ''KFRuPTcyO1RuPD03NTsrK1RuKVBuW1RuXT1Ubi01ODtmb3IoVG49Njc7VG48PTY4OysrVG4pUG5bVG5dPVRuLTU3O2ZvcihUbj03NjtUbjw9Nzg7KytUbilQbltUbl09VG4tNTY7Zm9yKFRuPTc5O1RuPD04MTsrK1RuKVBuW1RuXT1Ubi0zNDt2YXIgT249W107ZnVuY3Rpb24gV24ocnIsSXIs''@;'; + put 'put ''WnIpe2Zvcih2YXIgcWk9cnI8MD8tMToxLHJpPXJyKnFpLHIwPTAscGk9MSxlMD0wLE9vPTEsazA9MCxwbz0wLHAwPU1hdGguZmxvb3IocmkpO2swPElyJiYoZTA9KHAwPU1hdGguZmxvb3IocmkpKSpwaStyMCxwbz1wMCprMCtPbywhKHJpLXAwPDVlLTgpKTspcmk9MS8ocmktcDApLHIwPXBp''@;'; + put 'put ''LHBpPWUwLE9vPWswLGswPXBvO2lmKHBvPklyJiYoazA+SXI/KHBvPU9vLGUwPXIwKToocG89azAsZTA9cGkpKSwhWnIpcmV0dXJuWzAscWkqZTAscG9dO3ZhciBRbD1NYXRoLmZsb29yKHFpKmUwL3BvKTtyZXR1cm5bUWwscWkqZTAtUWwqcG8scG9dfWZ1bmN0aW9uIE1yKHJyLElyLFpyKXtp''@;'; + put 'put ''Zihycj4yOTU4NDY1fHxycjwwKXJldHVybiBudWxsO3ZhciBxaT0wfHJyLHJpPU1hdGguZmxvb3IoODY0MDAqKHJyLXFpKSkscjA9MCxwaT1bXSxlMD17RDpxaSxUOnJpLHU6ODY0MDAqKHJyLXFpKS1yaSx5OjAsbTowLGQ6MCxIOjAsTTowLFM6MCxxOjB9O2lmKE1hdGguYWJzKGUwLnUpPDFl''@;'; + put 'put ''LTYmJihlMC51PTApLElyJiZJci5kYXRlMTkwNCYmKHFpKz0xNDYyKSxlMC51Pi45OTk5JiYoZTAudT0wLDg2NDAwPT0rK3JpJiYoZTAuVD1yaT0wLCsrcWksKytlMC5EKSksNjA9PT1xaSlwaT1acj9bMTMxNywxMCwyOV06WzE5MDAsMiwyOV0scjA9MztlbHNlIGlmKDA9PT1xaSlwaT1acj9b''@;'; + put 'put ''MTMxNyw4LDI5XTpbMTkwMCwxLDBdLHIwPTY7ZWxzZXtxaT42MCYmLS1xaTt2YXIgT289bmV3IERhdGUoMTkwMCwwLDEpO09vLnNldERhdGUoT28uZ2V0RGF0ZSgpK3FpLTEpLHBpPVtPby5nZXRGdWxsWWVhcigpLE9vLmdldE1vbnRoKCkrMSxPby5nZXREYXRlKCldLHIwPU9vLmdldERheSgp''@;'; + put 'put ''LHFpPDYwJiYocjA9KHIwKzYpJTcpLFpyJiYocjA9ZnVuY3Rpb24gb2EocnIsSXIpe0lyWzBdLT01ODE7dmFyIFpyPXJyLmdldERheSgpO3JldHVybiBycjw2MCYmKFpyPShacis2KSU3KSxacn0oT28scGkpKX1yZXR1cm4gZTAueT1waVswXSxlMC5tPXBpWzFdLGUwLmQ9cGlbMl0sZTAuUz1y''@;'; + put 'put ''aSU2MCxyaT1NYXRoLmZsb29yKHJpLzYwKSxlMC5NPXJpJTYwLHJpPU1hdGguZmxvb3IocmkvNjApLGUwLkg9cmksZTAucT1yMCxlMH1Pbls1XT1Pbls2M109JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLE9uWzZdPU9uWzY0XT0nIiQiIywjIzBfKTtbUmVkXVxcKCIkIiMsIyMwXFwpJyxP''@;'; + put 'put ''bls3XT1Pbls2NV09JyIkIiMsIyMwLjAwXyk7XFwoIiQiIywjIzAuMDBcXCknLE9uWzhdPU9uWzY2XT0nIiQiIywjIzAuMDBfKTtbUmVkXVxcKCIkIiMsIyMwLjAwXFwpJyxPbls0MV09J18oKiAjLCMjMF8pO18oKiBcXCgjLCMjMFxcKTtfKCogIi0iXyk7XyhAXyknLE9uWzQyXT0nXygiJCIq''@;'; + put 'put ''ICMsIyMwXyk7XygiJCIqIFxcKCMsIyMwXFwpO18oIiQiKiAiLSJfKTtfKEBfKScsT25bNDNdPSdfKCogIywjIzAuMDBfKTtfKCogXFwoIywjIzAuMDBcXCk7XygqICItIj8/Xyk7XyhAXyknLE9uWzQ0XT0nXygiJCIqICMsIyMwLjAwXyk7XygiJCIqIFxcKCMsIyMwLjAwXFwpO18oIiQiKiAi''@;'; + put 'put ''LSI/P18pO18oQF8pJyxyZS5wYXJzZV9kYXRlX2NvZGU9TXI7dmFyIGFpPW5ldyBEYXRlKDE4OTksMTEsMzEsMCwwLDApLHlyPWFpLmdldFRpbWUoKSxhcj1uZXcgRGF0ZSgxOTAwLDIsMSwwLDAsMCk7ZnVuY3Rpb24gR3IocnIsSXIpe3ZhciBacj1yci5nZXRUaW1lKCk7cmV0dXJuIElyP1py''@;'; + put 'put ''LT0xMjYyMzA0ZTU6cnI+PWFyJiYoWnIrPTg2NGU1KSwoWnItKHlyKzZlNCoocnIuZ2V0VGltZXpvbmVPZmZzZXQoKS1haS5nZXRUaW1lem9uZU9mZnNldCgpKSkpLzg2NGU1fXZhciB6cj0iIixxcj17ImVuLXVzIjp7eToieSIsZDoiZCIsIiwiOiIsIiwiLiI6Ii4iLGRhdGU6Il8vIn0sImRl''@;'; + put 'put ''LWRlIjp7eToiaiIsZDoidCIsIiwiOiIuIiwiLiI6IiwiLGRhdGU6Il8uIn0sIml0LWl0Ijp7eToieSIsZDoiZCIsIiwiOiIuIiwiLiI6IiwiLGRhdGU6Il8vIn19LG9pPXFyW3pyLnRvTG93ZXJDYXNlKCldfHxxclsiZW4tdXMiXSxjcj1ZdChvaSksZGk9IiQiLHYwPSIiLEEwPSIsIix3aT0i''@;'; + put 'put ''LiIsWXI9Ii8iO2Z1bmN0aW9uIE5yKHJyKXtzd2l0Y2goKHpyfHwiIikudG9Mb3dlckNhc2UoKSl7Y2FzZSJ6aC10dyI6cnJbMjddPSJbJC00MDRdZS9tL2QiLHJyWzI4XT0nWyQtNDA0XWUiXHU1ZTc0Im0iXHU2NzA4ImQiXHU2NWU1IicscnJbMjldPSdbJC00MDRdZSJcdTVlNzQibSJcdTY3''@;'; + put 'put ''MDgiZCJcdTY1ZTUiJyxyclszMF09J20iLyJkIi8ieXknLHJyWzMxXT0neXl5eSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxyclszMl09J2hoIlx1NjY0MiJtbSJcdTUyMDYiJyxyclszM109J2hoIlx1NjY0MiJtbSJcdTUyMDYic3MiXHU3OWQyIicscnJbMzRdPSdcdTRlMGFcdTUzNDgv''@;'; + put 'put ''XHU0ZTBiXHU1MzQ4IGhoIlx1NjY0MiJtbSJcdTUyMDYiJyxyclszNV09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgiXHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIiJyxyclszNl09IlskLTQwNF1lL20vZCIscnJbNTBdPSJbJC00MDRdZS9tL2QiLHJyWzUxXT0nWyQtNDA0XWUiXHU1''@;'; + put 'put ''ZTc0Im0iXHU2NzA4ImQiXHU2NWU1IicscnJbNTJdPSdcdTRlMGFcdTUzNDgvXHU0ZTBiXHU1MzQ4IGhoIlx1NjY0MiJtbSJcdTUyMDYiJyxycls1M109J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgiXHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIiJyxycls1NF09J1skLTQwNF1lIlx1''@;'; + put 'put ''NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzU1XT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoaCJcdTY2NDIibW0iXHU1MjA2IicscnJbNTZdPSdcdTRlMGFcdTUzNDgvXHU0ZTBiXHU1MzQ4IGhoIlx1NjY0MiJtbSJcdTUyMDYic3MiXHU3OWQyIicscnJbNTddPSJbJC00MDRdZS9t''@;'; + put 'put ''L2QiLHJyWzU4XT0nWyQtNDA0XWUiXHU1ZTc0Im0iXHU2NzA4ImQiXHU2NWU1Iic7YnJlYWs7Y2FzZSJ6aC1jbiI6cnJbMjddPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCInLHJyWzI4XT0nbSJcdTY3MDgiZCJcdTY1ZTUiJyxyclsyOV09J20iXHU2NzA4ImQiXHU2NWU1IicscnJbMzBdPSdtIi0i''@;'; + put 'put ''ZCItInl5JyxyclszMV09J3l5eXkiXHU1ZTc0Im0iXHU2NzA4ImQiXHU2NWU1IicscnJbMzJdPSdoIlx1NjVmNiJtbSJcdTUyMDYiJyxyclszM109J2giXHU2NWY2Im1tIlx1NTIwNiJzcyJcdTc5ZDIiJyxyclszNF09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaCJcdTY1ZjYibW0iXHU1''@;'; + put 'put ''MjA2IicscnJbMzVdPSdcdTRlMGFcdTUzNDgvXHU0ZTBiXHU1MzQ4IGgiXHU2NWY2Im1tIlx1NTIwNiJzcyJcdTc5ZDIiJyxyclszNl09J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicscnJbNTBdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCInLHJyWzUxXT0nbSJcdTY3MDgiZCJcdTY1ZTUiJyxycls1''@;'; + put 'put ''Ml09J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicscnJbNTNdPSdtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzU0XT0nbSJcdTY3MDgiZCJcdTY1ZTUiJyxycls1NV09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaCJcdTY1ZjYibW0iXHU1MjA2IicscnJbNTZdPSdcdTRlMGFcdTUzNDgvXHU0ZTBi''@;'; + put 'put ''XHU1MzQ4IGgiXHU2NWY2Im1tIlx1NTIwNiJzcyJcdTc5ZDIiJyxycls1N109J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicscnJbNThdPSdtIlx1NjcwOCJkIlx1NjVlNSInO2JyZWFrO2Nhc2UiamEtanAiOnJyWzI3XT0nWyQtNDExXWdlIi4ibSIuImQnLHJyWzI4XT0nWyQtNDExXWdnZ2UiXHU1''@;'; + put 'put ''ZTc0Im0iXHU2NzA4ImQiXHU2NWU1IicscnJbMjldPSdbJC00MTFdZ2dnZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxyclszMF09J20iLyJkIi8ieXknLHJyWzMxXT0neXl5eSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxyclszMl09J2giXHU2NjQyIm1tIlx1NTIwNiInLHJyWzMz''@;'; + put 'put ''XT0naCJcdTY2NDIibW0iXHU1MjA2InNzIlx1NzlkMiInLHJyWzM0XT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxyclszNV09J20iXHU2NzA4ImQiXHU2NWU1IicscnJbMzZdPSdbJC00MTFdZ2UiLiJtIi4iZCcscnJbNTBdPSdbJC00MTFdZ2UiLiJtIi4iZCcscnJbNTFdPSdbJC00MTFdZ2dn''@;'; + put 'put ''ZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxycls1Ml09J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicscnJbNTNdPSdtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzU0XT0nWyQtNDExXWdnZ2UiXHU1ZTc0Im0iXHU2NzA4ImQiXHU2NWU1IicscnJbNTVdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCIn''@;'; + put 'put ''LHJyWzU2XT0nbSJcdTY3MDgiZCJcdTY1ZTUiJyxycls1N109J1skLTQxMV1nZSIuIm0iLiJkJyxycls1OF09J1skLTQxMV1nZ2dlIlx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInO2JyZWFrO2Nhc2Uia28ta3IiOnJyWzI3XT0neXl5eSJcdTVlNzQiIG1tIlx1NjcwOCIgZGQiXHU2NWU1Iics''@;'; + put 'put ''cnJbMjhdPSJtbS1kZCIscnJbMjldPSJtbS1kZCIscnJbMzBdPSJtbS1kZC15eSIscnJbMzFdPSd5eXl5Ilx1YjE0NCIgbW0iXHVjNmQ0IiBkZCJcdWM3N2MiJyxyclszMl09J2giXHVjMmRjIiBtbSJcdWJkODQiJyxyclszM109J2giXHVjMmRjIiBtbSJcdWJkODQiIHNzIlx1Y2QwOCInLHJy''@;'; + put 'put ''WzM0XT0ieXl5eS1tbS1kZCIscnJbMzVdPSJ5eXl5LW1tLWRkIixyclszNl09J3l5eXkiXHU1ZTc0IiBtbSJcdTY3MDgiIGRkIlx1NjVlNSInLHJyWzUwXT0neXl5eSJcdTVlNzQiIG1tIlx1NjcwOCIgZGQiXHU2NWU1IicscnJbNTFdPSJtbS1kZCIscnJbNTJdPSJ5eXl5LW1tLWRkIixycls1''@;'; + put 'put ''M109Inl5eXktbW0tZGQiLHJyWzU0XT0ibW0tZGQiLHJyWzU1XT0ieXl5eS1tbS1kZCIscnJbNTZdPSJ5eXl5LW1tLWRkIixycls1N109J3l5eXkiXHU1ZTc0IiBtbSJcdTY3MDgiIGRkIlx1NjVlNSInLHJyWzU4XT0ibW0tZGQiO2JyZWFrO2Nhc2UidGgtdGgiOnJyWzU5XT0nInQiMCcscnJb''@;'; + put 'put ''NjBdPScidCIwLjAwJyxycls2MV09JyJ0IiMsIyMwJyxycls2Ml09JyJ0IiMsIyMwLjAwJyxycls2N109InQwJSIscnJbNjhdPSJ0MC4wMCUiLHJyWzY5XT0idCMgPy8/Iixycls3MF09InQjID8/Lz8/Iixycls3MV09J1x1MGUyNyIvIlx1MGUxNCIvIlx1MGUxYlx1MGUxYlx1MGUxYlx1MGUx''@;'; + put 'put ''YicscnJbNzJdPSdcdTBlMjciLSJcdTBlMTRcdTBlMTRcdTBlMTQiLSJcdTBlMWJcdTBlMWInLHJyWzczXT0nXHUwZTI3Ii0iXHUwZTE0XHUwZTE0XHUwZTE0Jyxycls3NF09J1x1MGUxNFx1MGUxNFx1MGUxNCItIlx1MGUxYlx1MGUxYicscnJbNzVdPSdcdTBlMGEiOiJcdTBlMTlcdTBlMTkn''@;'; + put 'put ''LHJyWzc2XT0nXHUwZTBhIjoiXHUwZTE5XHUwZTE5IjoiXHUwZTE3XHUwZTE3Jyxycls3N109J1x1MGUyNyIvIlx1MGUxNCIvIlx1MGUxYlx1MGUxYlx1MGUxYlx1MGUxYiBcdTBlMGEiOiJcdTBlMTlcdTBlMTknLHJyWzc4XT0nXHUwZTE5XHUwZTE5IjoiXHUwZTE3XHUwZTE3Jyxycls3OV09''@;'; + put 'put ''J1tcdTBlMGFdXHUwZTE5XHUwZTE5IjoiXHUwZTE3XHUwZTE3Jyxycls4MF09J1x1MGUxOVx1MGUxOSI6Ilx1MGUxN1x1MGUxNy4wJyxycls4MV09ImQvbS9iYiJ9fXJlLl9nZW5lcmFsX2ludD1mdW5jdGlvbiBOMChycil7cmV0dXJuIHJyLnRvU3RyaW5nKDEwKX07dmFyIHQwPWZ1bmN0aW9u''@;'; + put 'put ''KCl7dmFyIElyPS8oPzpcLjAqfChcLlxkKlsxLTldKTArKSQvO2Z1bmN0aW9uIFpyKGswKXtyZXR1cm4tMT09azAuaW5kZXhPZigiLiIpP2swOmswLnJlcGxhY2UoSXIsIiQxIil9dmFyIHFpPS8oPzpcLjAqfChcLlxkKlsxLTldKTArKVtFZV0vLHJpPS8oRVsrLV0pKFxkKSQvO3JldHVybiBm''@;'; + put 'put ''dW5jdGlvbihwbyl7dmFyIHAwPWZ1bmN0aW9uIE9vKGswKXt2YXIgcDAscG89TWF0aC5mbG9vcihNYXRoLmxvZyhNYXRoLmFicyhrMCkpKk1hdGguTE9HMTBFKTtyZXR1cm4gcDA9cG8+PS00JiZwbzw9LTE/azAudG9QcmVjaXNpb24oMTArcG8pOk1hdGguYWJzKHBvKTw9OT9mdW5jdGlvbiBw''@;'; + put 'put ''aShrMCl7dmFyIHBvPWswPDA/MTI6MTEscDA9WnIoazAudG9GaXhlZCgxMikpO3JldHVybiBwMC5sZW5ndGg8PXBvfHwocDA9azAudG9QcmVjaXNpb24oMTApKS5sZW5ndGg8PXBvP3AwOmswLnRvRXhwb25lbnRpYWwoNSl9KGswKToxMD09PXBvP2swLnRvRml4ZWQoMTApLnN1YnN0cigwLDEy''@;'; + put 'put ''KTpmdW5jdGlvbiBlMChrMCl7dmFyIHBvPVpyKGswLnRvRml4ZWQoMTEpKTtyZXR1cm4gcG8ubGVuZ3RoPihrMDwwPzEyOjExKXx8IjAiPT09cG98fCItMCI9PT1wbz9rMC50b1ByZWNpc2lvbig2KTpwb30oazApLFpyKGZ1bmN0aW9uIHIwKGswKXtyZXR1cm4tMT09azAuaW5kZXhPZigiRSIp''@;'; + put 'put ''P2swOmswLnJlcGxhY2UocWksIiQxRSIpLnJlcGxhY2UocmksIiQxMCQyIil9KHAwLnRvVXBwZXJDYXNlKCkpKX0ocG8pO3JldHVybiIsIj09PUEwJiYiLiI9PT13aT9wMDpwMC5yZXBsYWNlKC9bLC5dL2csZnVuY3Rpb24oUWwpe3JldHVybiIsIj09UWw/QTA6d2l9KX19KCk7ZnVuY3Rpb24g''@;'; + put 'put ''aW8ocnIsSXIpe3N3aXRjaCh0eXBlb2YgcnIpe2Nhc2Uic3RyaW5nIjpyZXR1cm4gcnI7Y2FzZSJib29sZWFuIjpyZXR1cm4gcnI/IlRSVUUiOiJGQUxTRSI7Y2FzZSJudW1iZXIiOnJldHVybigwfHJyKT09PXJyP3JyLnRvU3RyaW5nKDEwKTp0MChycik7Y2FzZSJ1bmRlZmluZWQiOnJldHVy''@;'; + put 'put ''biIiO2Nhc2Uib2JqZWN0IjppZihudWxsPT1ycilyZXR1cm4iIjtpZihyciBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIE1jKDE0LEdyKHJyLElyJiZJci5kYXRlMTkwNCksSXIpfXRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0ZWQgdmFsdWUgaW4gR2VuZXJhbCBmb3JtYXQ6ICIrcnIpfXJlLl9n''@;'; + put 'put ''ZW5lcmFsX251bT10MCxyZS5fZ2VuZXJhbD1pbzt2YXIgJDA9Ilx1MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OSIuc3BsaXQoIiIpO2Z1bmN0aW9uIE5hKHJyLElyLFpyLHFpKXt2YXIgT28scmk9IiIscjA9MCxwaT0wLGUwPVpyLnks''@;'; + put 'put ''azA9MDtzd2l0Y2gocnIpe2Nhc2UgOTg6ZTA9WnIueSs1NDM7Y2FzZSAxMjE6c3dpdGNoKElyLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpPbz1lMCUxMDAsazA9MjticmVhaztkZWZhdWx0Ok9vPWUwJTFlNCxrMD00fWJyZWFrO2Nhc2UgMTA5OnN3aXRjaChJci5sZW5ndGgpe2Nhc2UgMTpjYXNl''@;'; + put 'put ''IDI6T289WnIubSxrMD1Jci5sZW5ndGg7YnJlYWs7Y2FzZSAzOnJldHVybiBDbltaci5tLTFdWzFdO2Nhc2UgNTpyZXR1cm4gQ25bWnIubS0xXVswXTtkZWZhdWx0OnJldHVybiBDbltaci5tLTFdWzJdfWJyZWFrO2Nhc2UgMTAwOnN3aXRjaChJci5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6T289''@;'; + put 'put ''WnIuZCxrMD1Jci5sZW5ndGg7YnJlYWs7Y2FzZSAzOnJldHVybiBubltaci5xXVswXTtkZWZhdWx0OnJldHVybiBubltaci5xXVsxXX1icmVhaztjYXNlIDEwNDpzd2l0Y2goSXIubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOk9vPTErKFpyLkgrMTEpJTEyLGswPUlyLmxlbmd0aDticmVhaztkZWZh''@;'; + put 'put ''dWx0OnRocm93ImJhZCBob3VyIGZvcm1hdDogIitJcn1icmVhaztjYXNlIDcyOnN3aXRjaChJci5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6T289WnIuSCxrMD1Jci5sZW5ndGg7YnJlYWs7ZGVmYXVsdDp0aHJvdyJiYWQgaG91ciBmb3JtYXQ6ICIrSXJ9YnJlYWs7Y2FzZSA3Nzpzd2l0Y2goSXIu''@;'; + put 'put ''bGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOk9vPVpyLk0sazA9SXIubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIG1pbnV0ZSBmb3JtYXQ6ICIrSXJ9YnJlYWs7Y2FzZSAxMTU6aWYoInMiIT1JciYmInNzIiE9SXImJiIuMCIhPUlyJiYiLjAwIiE9SXImJiIuMDAwIiE9SXIpdGhyb3ciYmFk''@;'; + put 'put ''IHNlY29uZCBmb3JtYXQ6ICIrSXI7cmV0dXJuIDAhPT1aci51fHwicyIhPUlyJiYic3MiIT1Jcj8ocGk9cWk+PTI/Mz09PXFpPzFlMzoxMDA6MT09PXFpPzEwOjEsKHIwPU1hdGgucm91bmQocGkqKFpyLlMrWnIudSkpKT49NjAqcGkmJihyMD0wKSwicyI9PT1Jcj8wPT09cjA/IjAiOiIiK3Iw''@;'; + put 'put ''L3BpOihyaT14ZShyMCwyK3FpKSwic3MiPT09SXI/cmkuc3Vic3RyKDAsMik6Ii4iK3JpLnN1YnN0cigyLElyLmxlbmd0aC0xKSkpOnhlKFpyLlMsSXIubGVuZ3RoKTtjYXNlIDkwOnN3aXRjaChJcil7Y2FzZSJbaF0iOmNhc2UiW2hoXSI6Y2FzZSJbXHUwZTBhXSI6Y2FzZSJbXHUwZTBhXHUw''@;'; + put 'put ''ZTBhXSI6T289MjQqWnIuRCtaci5IO2JyZWFrO2Nhc2UiW21dIjpjYXNlIlttbV0iOmNhc2UiW1x1MGUxOV0iOmNhc2UiW1x1MGUxOVx1MGUxOV0iOk9vPTYwKigyNCpaci5EK1pyLkgpK1pyLk07YnJlYWs7Y2FzZSJbc10iOmNhc2UiW3NzXSI6Y2FzZSJbXHUwZTE3XSI6Y2FzZSJbXHUwZTE3''@;'; + put 'put ''XHUwZTE3XSI6T289NjAqKDYwKigyNCpaci5EK1pyLkgpK1pyLk0pK01hdGgucm91bmQoWnIuUytaci51KTticmVhaztkZWZhdWx0OnRocm93ImJhZCBhYnN0aW1lIGZvcm1hdDogIitJcn1rMD0zPT09SXIubGVuZ3RoPzE6MjticmVhaztjYXNlIDEwMTpPbz1lMCxrMD0xO2JyZWFrO2Nhc2Ug''@;'; + put 'put ''MzYyMzpPbz1aci5kLGswPUlyLmxlbmd0aDticmVhaztjYXNlIDM2MDQ6c3dpdGNoKElyLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpPbz1aci5tLGswPUlyLmxlbmd0aDticmVhaztjYXNlIDM6cmV0dXJuIENuW1pyLm0tMV1bMV07Y2FzZSA1OnJldHVybiBDbltaci5tLTFdWzBdO2RlZmF1bHQ6''@;'; + put 'put ''cmV0dXJuIENuW1pyLm0tMV1bMl19YnJlYWs7Y2FzZSAzNjExOnN3aXRjaChlMD1aci55KzU0MyxJci5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6T289ZTAlMTAwLGswPTI7YnJlYWs7ZGVmYXVsdDpPbz1lMCUxZTQsazA9NH1icmVhaztjYXNlIDM1OTQ6T289WnIuSCxrMD1Jci5sZW5ndGg7YnJl''@;'; + put 'put ''YWs7Y2FzZSAzNjA5Ok9vPVpyLk0sazA9SXIubGVuZ3RoO2JyZWFrO2Nhc2UgMzYwNzpPbz1aci5TLGswPUlyLmxlbmd0aDticmVhaztkZWZhdWx0OnRocm93IHJyLnRvU3RyaW5nKDE2KX12YXIgcG89azA+MD94ZShPbyxrMCk6IiI7cmV0dXJuKDkwPT1ycj9Jci5jaGFyQ29kZUF0KDEpPDM1''@;'; + put 'put ''ODQ6cnI8MzU4NCk/cG86cG8ucmVwbGFjZSgvWzAtOV0vZyxmdW5jdGlvbihwMCl7cmV0dXJuICQwWytwMF19KX1mdW5jdGlvbiBqbyhycil7aWYocnIubGVuZ3RoPD0zKXJldHVybiBycjtmb3IodmFyIFpyPXJyLmxlbmd0aCUzLHFpPXJyLnN1YnN0cigwLFpyKTtaciE9cnIubGVuZ3RoO1py''@;'; + put 'put ''Kz0zKXFpKz0ocWkubGVuZ3RoPjA/IiwiOiIiKStyci5zdWJzdHIoWnIsMyk7cmV0dXJuIHFpfXZhciB3YT1mdW5jdGlvbigpe3ZhciBJcj0vJS9nO2Z1bmN0aW9uIHJpKGRyLEduKXt2YXIgJG4sYnI9ZHIuaW5kZXhPZigiRSIpLWRyLmluZGV4T2YoIi4iKS0xO2lmKGRyLm1hdGNoKC9eIysw''@;'; + put 'put ''LjBFXCswJC8pKXtpZigwPT1HbilyZXR1cm4iMC4wRSswIjtpZihHbjwwKXJldHVybiItIityaShkciwtR24pO3ZhciBXcj1kci5pbmRleE9mKCIuIik7LTE9PT1XciYmKFdyPWRyLmluZGV4T2YoIkUiKSk7dmFyIHVpPU1hdGguZmxvb3IoTWF0aC5sb2coR24pKk1hdGguTE9HMTBFKSVXcjtp''@;'; + put 'put ''Zih1aTwwJiYodWkrPVdyKSwtMT09PSgkbj0oR24vTWF0aC5wb3coMTAsdWkpKS50b1ByZWNpc2lvbihicisxKyhXcit1aSklV3IpKS5pbmRleE9mKCJlIikpe3ZhciBJaT1NYXRoLmZsb29yKE1hdGgubG9nKEduKSpNYXRoLkxPRzEwRSk7Zm9yKC0xPT09JG4uaW5kZXhPZigiLiIpPyRuPSRu''@;'; + put 'put ''LmNoYXJBdCgwKSsiLiIrJG4uc3Vic3RyKDEpKyJFKyIrKElpLSRuLmxlbmd0aCt1aSk6JG4rPSJFKyIrKElpLXVpKTsiMC4iPT09JG4uc3Vic3RyKDAsMik7KSRuPSgkbj0kbi5jaGFyQXQoMCkrJG4uc3Vic3RyKDIsV3IpKyIuIiskbi5zdWJzdHIoMitXcikpLnJlcGxhY2UoL14wKyhbMS05''@;'; + put 'put ''XSkvLCIkMSIpLnJlcGxhY2UoL14wK1wuLywiMC4iKTskbj0kbi5yZXBsYWNlKC9cKy0vLCItIil9JG49JG4ucmVwbGFjZSgvXihbKy1dPykoXGQqKVwuKFxkKilbRWVdLyxmdW5jdGlvbih1MCxaaSxKMCxJMCl7cmV0dXJuIFppK0owK0kwLnN1YnN0cigwLChXcit1aSklV3IpKyIuIitJMC5z''@;'; + put 'put ''dWJzdHIodWkpKyJFIn0pfWVsc2UgJG49R24udG9FeHBvbmVudGlhbChicik7cmV0dXJuIGRyLm1hdGNoKC9FXCswMCQvKSYmJG4ubWF0Y2goL2VbKy1dXGQkLykmJigkbj0kbi5zdWJzdHIoMCwkbi5sZW5ndGgtMSkrIjAiKyRuLmNoYXJBdCgkbi5sZW5ndGgtMSkpLGRyLm1hdGNoKC9FXC0v''@;'; + put 'put ''KSYmJG4ubWF0Y2goL2VcKy8pJiYoJG49JG4ucmVwbGFjZSgvZVwrLywiZSIpKSwkbi5yZXBsYWNlKCJlIiwiRSIpfXZhciByMD0vIyAoXD8rKSggPylcLyggPykoXGQrKS8sT289L14jKjAqXC4oWzAjXSspLyxrMD0vXCkuKlswI10vLHBvPS9cKCMjI1wpICMjI1xcPy0jIyMjLztmdW5jdGlv''@;'; + put 'put ''biBwMChkcil7Zm9yKHZhciAkbixHbj0iIixicj0wO2JyIT1kci5sZW5ndGg7Kyticilzd2l0Y2goJG49ZHIuY2hhckNvZGVBdChicikpe2Nhc2UgMzU6YnJlYWs7Y2FzZSA2MzpHbis9IiAiO2JyZWFrO2Nhc2UgNDg6R24rPSIwIjticmVhaztkZWZhdWx0OkduKz1TdHJpbmcuZnJvbUNoYXJD''@;'; + put 'put ''b2RlKCRuKX1yZXR1cm4gR259ZnVuY3Rpb24gUWwoZHIsR24pe3ZhciAkbj1NYXRoLnBvdygxMCxHbik7cmV0dXJuIiIrTWF0aC5yb3VuZChkciokbikvJG59ZnVuY3Rpb24gQWwoZHIsR24pe2lmKEduPjExKXJldHVybiBBbChkciwxMSkqTWF0aC5wb3coMTAsR24tMTEpO3ZhciAkbj1kci1N''@;'; + put 'put ''YXRoLmZsb29yKGRyKSxicj1NYXRoLnBvdygxMCxHbik7cmV0dXJuIEduPCgiIitNYXRoLnJvdW5kKCRuKmJyKSkubGVuZ3RoPzA6TWF0aC5yb3VuZCgkbipicil9ZnVuY3Rpb24gS3MoZHIsR24sJG4pe2lmKDQwPT09ZHIuY2hhckNvZGVBdCgwKSYmIUduLm1hdGNoKGswKSl7dmFyIGJyPUdu''@;'; + put 'put ''LnJlcGxhY2UoL1woICovLCIiKS5yZXBsYWNlKC8gXCkvLCIiKS5yZXBsYWNlKC9cKS8sIiIpO3JldHVybiAkbj49MD9LcygibiIsYnIsJG4pOiIoIitLcygibiIsYnIsLSRuKSsiKSJ9aWYoNDQ9PT1Hbi5jaGFyQ29kZUF0KEduLmxlbmd0aC0xKSlyZXR1cm4gZnVuY3Rpb24gcWkoZHIsR24s''@;'; + put 'put ''JG4pe2Zvcih2YXIgYnI9R24ubGVuZ3RoLTE7NDQ9PT1Hbi5jaGFyQ29kZUF0KGJyLTEpOyktLWJyO3JldHVybiB3YShkcixHbi5zdWJzdHIoMCxiciksJG4vTWF0aC5wb3coMTAsMyooR24ubGVuZ3RoLWJyKSkpfShkcixHbiwkbik7aWYoLTEhPT1Hbi5pbmRleE9mKCIlIikpcmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uIFpyKGRyLEduLCRuKXt2YXIgYnI9R24ucmVwbGFjZShJciwiIiksV3I9R24ubGVuZ3RoLWJyLmxlbmd0aDtyZXR1cm4gd2EoZHIsYnIsJG4qTWF0aC5wb3coMTAsMipXcikpK3dlKCIlIixXcil9KGRyLEduLCRuKTtpZigtMSE9PUduLmluZGV4T2YoIkUiKSlyZXR1cm4gcmkoR24s''@;'; + put 'put ''JG4pO2lmKDM2PT09R24uY2hhckNvZGVBdCgwKSlyZXR1cm4iJCIrS3MoZHIsR24uc3Vic3RyKCIgIj09R24uY2hhckF0KDEpPzI6MSksJG4pO3ZhciBXcix1aSxJaSx1MCxaaT1NYXRoLmFicygkbiksSjA9JG48MD8iLSI6IiI7aWYoR24ubWF0Y2goL14wMCskLykpcmV0dXJuIEowK3h0KFpp''@;'; + put 'put ''LEduLmxlbmd0aCk7aWYoR24ubWF0Y2goL15bIz9dKyQvKSlyZXR1cm4iMCI9PT0oV3I9eHQoJG4sMCkpJiYoV3I9IiIpLFdyLmxlbmd0aD5Hbi5sZW5ndGg/V3I6cDAoR24uc3Vic3RyKDAsR24ubGVuZ3RoLVdyLmxlbmd0aCkpK1dyO2lmKHVpPUduLm1hdGNoKHIwKSlyZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24gcGkoZHIsR24sJG4pe3ZhciBicj1wYXJzZUludChkcls0XSwxMCksV3I9TWF0aC5yb3VuZChHbipiciksdWk9TWF0aC5mbG9vcihXci9iciksSWk9V3ItdWkqYnIsdTA9YnI7cmV0dXJuICRuKygwPT09dWk/IiI6IiIrdWkpKyIgIisoMD09PUlpP3dlKCIgIixkclsxXS5sZW5ndGgrMStk''@;'; + put 'put ''cls0XS5sZW5ndGgpOkZlKElpLGRyWzFdLmxlbmd0aCkrZHJbMl0rIi8iK2RyWzNdK3hlKHUwLGRyWzRdLmxlbmd0aCkpfSh1aSxaaSxKMCk7aWYoR24ubWF0Y2goL14jKzArJC8pKXJldHVybiBKMCt4dChaaSxHbi5sZW5ndGgtR24uaW5kZXhPZigiMCIpKTtpZih1aT1Hbi5tYXRjaChPbykp''@;'; + put 'put ''cmV0dXJuIFdyPVFsKCRuLHVpWzFdLmxlbmd0aCkucmVwbGFjZSgvXihbXlwuXSspJC8sIiQxLiIrcDAodWlbMV0pKS5yZXBsYWNlKC9cLiQvLCIuIitwMCh1aVsxXSkpLnJlcGxhY2UoL1wuKFxkKikkLyxmdW5jdGlvbigkYSxWcyl7cmV0dXJuIi4iK1ZzK3dlKCIwIixwMCh1aVsxXSkubGVu''@;'; + put 'put ''Z3RoLVZzLmxlbmd0aCl9KSwtMSE9PUduLmluZGV4T2YoIjAuIik/V3I6V3IucmVwbGFjZSgvXjBcLi8sIi4iKTtpZihHbj1Hbi5yZXBsYWNlKC9eIysoWzAuXSkvLCIkMSIpLHVpPUduLm1hdGNoKC9eKDAqKVwuKCMqKSQvKSlyZXR1cm4gSjArUWwoWmksdWlbMl0ubGVuZ3RoKS5yZXBsYWNl''@;'; + put 'put ''KC9cLihcZCpbMS05XSkwKiQvLCIuJDEiKS5yZXBsYWNlKC9eKC0/XGQqKSQvLCIkMS4iKS5yZXBsYWNlKC9eMFwuLyx1aVsxXS5sZW5ndGg/IjAuIjoiLiIpO2lmKHVpPUduLm1hdGNoKC9eI3sxLDN9LCMjMChcLj8pJC8pKXJldHVybiBKMCtqbyh4dChaaSwwKSk7aWYodWk9R24ubWF0Y2go''@;'; + put 'put ''L14jLCMjMFwuKFsjMF0qMCkkLykpcmV0dXJuICRuPDA/Ii0iK0tzKGRyLEduLC0kbik6am8oIiIrKE1hdGguZmxvb3IoJG4pK2Z1bmN0aW9uICQyKGRyLEduKXtyZXR1cm4gR248KCIiK01hdGgucm91bmQoKGRyLU1hdGguZmxvb3IoZHIpKSpNYXRoLnBvdygxMCxHbikpKS5sZW5ndGg/MTow''@;'; + put 'put ''fSgkbix1aVsxXS5sZW5ndGgpKSkrIi4iK3hlKEFsKCRuLHVpWzFdLmxlbmd0aCksdWlbMV0ubGVuZ3RoKTtpZih1aT1Hbi5tYXRjaCgvXiMsIyosIzAvKSlyZXR1cm4gS3MoZHIsR24ucmVwbGFjZSgvXiMsIyosLywiIiksJG4pO2lmKHVpPUduLm1hdGNoKC9eKFswI10rKShcXD8tKFswI10r''@;'; + put 'put ''KSkrJC8pKXJldHVybiBXcj1YKEtzKGRyLEduLnJlcGxhY2UoL1tcXC1dL2csIiIpLCRuKSksSWk9MCxYKFgoR24ucmVwbGFjZSgvXFwvZywiIikpLnJlcGxhY2UoL1swI10vZyxmdW5jdGlvbigkYSl7cmV0dXJuIElpPFdyLmxlbmd0aD9Xci5jaGFyQXQoSWkrKyk6IjAiPT09JGE/IjAiOiIi''@;'; + put 'put ''fSkpO2lmKEduLm1hdGNoKHBvKSlyZXR1cm4iKCIrKFdyPUtzKGRyLCIjIyMjIyMjIyMjIiwkbikpLnN1YnN0cigwLDMpKyIpICIrV3Iuc3Vic3RyKDMsMykrIi0iK1dyLnN1YnN0cig2KTt2YXIgSTA9IiI7aWYodWk9R24ubWF0Y2goL14oWyMwP10rKSggPylcLyggPykoWyMwP10rKS8pKXJl''@;'; + put 'put ''dHVybiBJaT1NYXRoLm1pbih1aVs0XS5sZW5ndGgsNyksdTA9V24oWmksTWF0aC5wb3coMTAsSWkpLTEsITEpLFdyPSIiK0owLCIgIj09KEkwPXdhKCJuIix1aVsxXSx1MFsxXSkpLmNoYXJBdChJMC5sZW5ndGgtMSkmJihJMD1JMC5zdWJzdHIoMCxJMC5sZW5ndGgtMSkrIjAiKSxXcis9STAr''@;'; + put 'put ''dWlbMl0rIi8iK3VpWzNdLChJMD1aZSh1MFsyXSxJaSkpLmxlbmd0aDx1aVs0XS5sZW5ndGgmJihJMD1wMCh1aVs0XS5zdWJzdHIodWlbNF0ubGVuZ3RoLUkwLmxlbmd0aCkpK0kwKSxXcis9STA7aWYodWk9R24ubWF0Y2goL14jIChbIzA/XSspKCA/KVwvKCA/KShbIzA/XSspLykpcmV0dXJu''@;'; + put 'put ''IElpPU1hdGgubWluKE1hdGgubWF4KHVpWzFdLmxlbmd0aCx1aVs0XS5sZW5ndGgpLDcpLEowKygodTA9V24oWmksTWF0aC5wb3coMTAsSWkpLTEsITApKVswXXx8KHUwWzFdPyIiOiIwIikpKyIgIisodTBbMV0/RmUodTBbMV0sSWkpK3VpWzJdKyIvIit1aVszXStaZSh1MFsyXSxJaSk6d2Uo''@;'; + put 'put ''IiAiLDIqSWkrMSt1aVsyXS5sZW5ndGgrdWlbM10ubGVuZ3RoKSk7aWYodWk9R24ubWF0Y2goL15bIzA/XSskLykpcmV0dXJuIFdyPXh0KCRuLDApLEduLmxlbmd0aDw9V3IubGVuZ3RoP1dyOnAwKEduLnN1YnN0cigwLEduLmxlbmd0aC1Xci5sZW5ndGgpKStXcjtpZih1aT1Hbi5tYXRjaCgv''@;'; + put 'put ''XihbIzA/XSspXC4oWyMwXSspJC8pKXtXcj0iIiskbi50b0ZpeGVkKE1hdGgubWluKHVpWzJdLmxlbmd0aCwxMCkpLnJlcGxhY2UoLyhbXjBdKTArJC8sIiQxIiksSWk9V3IuaW5kZXhPZigiLiIpO3ZhciBlYT1Hbi5pbmRleE9mKCIuIiktSWksWW89R24ubGVuZ3RoLVdyLmxlbmd0aC1lYTty''@;'; + put 'put ''ZXR1cm4gcDAoR24uc3Vic3RyKDAsZWEpK1dyK0duLnN1YnN0cihHbi5sZW5ndGgtWW8pKX1pZih1aT1Hbi5tYXRjaCgvXjAwLDAwMFwuKFsjMF0qMCkkLykpcmV0dXJuIElpPUFsKCRuLHVpWzFdLmxlbmd0aCksJG48MD8iLSIrS3MoZHIsR24sLSRuKTpqbyhmdW5jdGlvbiBxMihkcil7cmV0''@;'; + put 'put ''dXJuIGRyPDIxNDc0ODM2NDcmJmRyPi0yMTQ3NDgzNjQ4PyIiKyhkcj49MD8wfGRyOmRyLTF8MCk6IiIrTWF0aC5mbG9vcihkcil9KCRuKSkucmVwbGFjZSgvXlxkLFxkezN9JC8sIjAkJiIpLnJlcGxhY2UoL15cZCokLyxmdW5jdGlvbigkYSl7cmV0dXJuIjAwLCIrKCRhLmxlbmd0aDwzP3hl''@;'; + put 'put ''KDAsMy0kYS5sZW5ndGgpOiIiKSskYX0pKyIuIit4ZShJaSx1aVsxXS5sZW5ndGgpO3N3aXRjaChHbil7Y2FzZSIjIyMsIyMwLjAwIjpyZXR1cm4gS3MoZHIsIiMsIyMwLjAwIiwkbik7Y2FzZSIjIyMsIyMjIjpjYXNlIiMjLCMjIyI6Y2FzZSIjLCMjIyI6dmFyIHlvPWpvKHh0KFppLDApKTty''@;'; + put 'put ''ZXR1cm4iMCIhPT15bz9KMCt5bzoiIjtjYXNlIiMjIywjIyMuMDAiOnJldHVybiBLcyhkciwiIyMjLCMjMC4wMCIsJG4pLnJlcGxhY2UoL14wXC4vLCIuIik7Y2FzZSIjLCMjIy4wMCI6cmV0dXJuIEtzKGRyLCIjLCMjMC4wMCIsJG4pLnJlcGxhY2UoL14wXC4vLCIuIil9dGhyb3cgbmV3IEVy''@;'; + put 'put ''cm9yKCJ1bnN1cHBvcnRlZCBmb3JtYXQgfCIrR24rInwiKX1mdW5jdGlvbiBscihkcixHbil7dmFyICRuLGJyPWRyLmluZGV4T2YoIkUiKS1kci5pbmRleE9mKCIuIiktMTtpZihkci5tYXRjaCgvXiMrMC4wRVwrMCQvKSl7aWYoMD09R24pcmV0dXJuIjAuMEUrMCI7aWYoR248MClyZXR1cm4i''@;'; + put 'put ''LSIrbHIoZHIsLUduKTt2YXIgV3I9ZHIuaW5kZXhPZigiLiIpOy0xPT09V3ImJihXcj1kci5pbmRleE9mKCJFIikpO3ZhciB1aT1NYXRoLmZsb29yKE1hdGgubG9nKEduKSpNYXRoLkxPRzEwRSklV3I7aWYodWk8MCYmKHVpKz1XciksISgkbj0oR24vTWF0aC5wb3coMTAsdWkpKS50b1ByZWNp''@;'; + put 'put ''c2lvbihicisxKyhXcit1aSklV3IpKS5tYXRjaCgvW0VlXS8pKXt2YXIgSWk9TWF0aC5mbG9vcihNYXRoLmxvZyhHbikqTWF0aC5MT0cxMEUpOy0xPT09JG4uaW5kZXhPZigiLiIpPyRuPSRuLmNoYXJBdCgwKSsiLiIrJG4uc3Vic3RyKDEpKyJFKyIrKElpLSRuLmxlbmd0aCt1aSk6JG4rPSJF''@;'; + put 'put ''KyIrKElpLXVpKSwkbj0kbi5yZXBsYWNlKC9cKy0vLCItIil9JG49JG4ucmVwbGFjZSgvXihbKy1dPykoXGQqKVwuKFxkKilbRWVdLyxmdW5jdGlvbih1MCxaaSxKMCxJMCl7cmV0dXJuIFppK0owK0kwLnN1YnN0cigwLChXcit1aSklV3IpKyIuIitJMC5zdWJzdHIodWkpKyJFIn0pfWVsc2Ug''@;'; + put 'put ''JG49R24udG9FeHBvbmVudGlhbChicik7cmV0dXJuIGRyLm1hdGNoKC9FXCswMCQvKSYmJG4ubWF0Y2goL2VbKy1dXGQkLykmJigkbj0kbi5zdWJzdHIoMCwkbi5sZW5ndGgtMSkrIjAiKyRuLmNoYXJBdCgkbi5sZW5ndGgtMSkpLGRyLm1hdGNoKC9FXC0vKSYmJG4ubWF0Y2goL2VcKy8pJiYo''@;'; + put 'put ''JG49JG4ucmVwbGFjZSgvZVwrLywiZSIpKSwkbi5yZXBsYWNlKCJlIiwiRSIpfWZ1bmN0aW9uIEJyKGRyLEduLCRuKXtpZig0MD09PWRyLmNoYXJDb2RlQXQoMCkmJiFHbi5tYXRjaChrMCkpe3ZhciBicj1Hbi5yZXBsYWNlKC9cKCAqLywiIikucmVwbGFjZSgvIFwpLywiIikucmVwbGFjZSgv''@;'; + put 'put ''XCkvLCIiKTtyZXR1cm4gJG4+PTA/QnIoIm4iLGJyLCRuKToiKCIrQnIoIm4iLGJyLC0kbikrIikifWlmKDQ0PT09R24uY2hhckNvZGVBdChHbi5sZW5ndGgtMSkpcmV0dXJuIGZ1bmN0aW9uIFA2KGRyLEduLCRuKXtmb3IodmFyIGJyPUduLmxlbmd0aC0xOzQ0PT09R24uY2hhckNvZGVBdChi''@;'; + put 'put ''ci0xKTspLS1icjtyZXR1cm4gd2EoZHIsR24uc3Vic3RyKDAsYnIpLCRuL01hdGgucG93KDEwLDMqKEduLmxlbmd0aC1icikpKX0oZHIsR24sJG4pO2lmKC0xIT09R24uaW5kZXhPZigiJSIpKXJldHVybiBmdW5jdGlvbiB0aChkcixHbiwkbil7dmFyIGJyPUduLnJlcGxhY2UoSXIsIiIpLFdy''@;'; + put 'put ''PUduLmxlbmd0aC1ici5sZW5ndGg7cmV0dXJuIHdhKGRyLGJyLCRuKk1hdGgucG93KDEwLDIqV3IpKSt3ZSgiJSIsV3IpfShkcixHbiwkbik7aWYoLTEhPT1Hbi5pbmRleE9mKCJFIikpcmV0dXJuIGxyKEduLCRuKTtpZigzNj09PUduLmNoYXJDb2RlQXQoMCkpcmV0dXJuIiQiK0JyKGRyLEdu''@;'; + put 'put ''LnN1YnN0cigiICI9PUduLmNoYXJBdCgxKT8yOjEpLCRuKTt2YXIgV3IsdWksSWksdTAsWmk9TWF0aC5hYnMoJG4pLEowPSRuPDA/Ii0iOiIiO2lmKEduLm1hdGNoKC9eMDArJC8pKXJldHVybiBKMCt4ZShaaSxHbi5sZW5ndGgpO2lmKEduLm1hdGNoKC9eWyM/XSskLykpcmV0dXJuIFdyPSIi''@;'; + put 'put ''KyRuLDA9PT0kbiYmKFdyPSIiKSxXci5sZW5ndGg+R24ubGVuZ3RoP1dyOnAwKEduLnN1YnN0cigwLEduLmxlbmd0aC1Xci5sZW5ndGgpKStXcjtpZih1aT1Hbi5tYXRjaChyMCkpcmV0dXJuIGZ1bmN0aW9uIGUwKGRyLEduLCRuKXtyZXR1cm4gJG4rKDA9PT1Hbj8iIjoiIitHbikrd2UoIiAi''@;'; + put 'put ''LGRyWzFdLmxlbmd0aCsyK2RyWzRdLmxlbmd0aCl9KHVpLFppLEowKTtpZihHbi5tYXRjaCgvXiMrMCskLykpcmV0dXJuIEowK3hlKFppLEduLmxlbmd0aC1Hbi5pbmRleE9mKCIwIikpO2lmKHVpPUduLm1hdGNoKE9vKSlyZXR1cm4gV3I9KFdyPSgiIiskbikucmVwbGFjZSgvXihbXlwuXSsp''@;'; + put 'put ''JC8sIiQxLiIrcDAodWlbMV0pKS5yZXBsYWNlKC9cLiQvLCIuIitwMCh1aVsxXSkpKS5yZXBsYWNlKC9cLihcZCopJC8sZnVuY3Rpb24oJGEsVnMpe3JldHVybiIuIitWcyt3ZSgiMCIscDAodWlbMV0pLmxlbmd0aC1Wcy5sZW5ndGgpfSksLTEhPT1Hbi5pbmRleE9mKCIwLiIpP1dyOldyLnJl''@;'; + put 'put ''cGxhY2UoL14wXC4vLCIuIik7aWYoR249R24ucmVwbGFjZSgvXiMrKFswLl0pLywiJDEiKSx1aT1Hbi5tYXRjaCgvXigwKilcLigjKikkLykpcmV0dXJuIEowKygiIitaaSkucmVwbGFjZSgvXC4oXGQqWzEtOV0pMCokLywiLiQxIikucmVwbGFjZSgvXigtP1xkKikkLywiJDEuIikucmVwbGFj''@;'; + put 'put ''ZSgvXjBcLi8sdWlbMV0ubGVuZ3RoPyIwLiI6Ii4iKTtpZih1aT1Hbi5tYXRjaCgvXiN7MSwzfSwjIzAoXC4/KSQvKSlyZXR1cm4gSjAram8oIiIrWmkpO2lmKHVpPUduLm1hdGNoKC9eIywjIzBcLihbIzBdKjApJC8pKXJldHVybiAkbjwwPyItIitCcihkcixHbiwtJG4pOmpvKCIiKyRuKSsi''@;'; + put 'put ''LiIrd2UoIjAiLHVpWzFdLmxlbmd0aCk7aWYodWk9R24ubWF0Y2goL14jLCMqLCMwLykpcmV0dXJuIEJyKGRyLEduLnJlcGxhY2UoL14jLCMqLC8sIiIpLCRuKTtpZih1aT1Hbi5tYXRjaCgvXihbMCNdKykoXFw/LShbMCNdKykpKyQvKSlyZXR1cm4gV3I9WChCcihkcixHbi5yZXBsYWNlKC9b''@;'; + put 'put ''XFwtXS9nLCIiKSwkbikpLElpPTAsWChYKEduLnJlcGxhY2UoL1xcL2csIiIpKS5yZXBsYWNlKC9bMCNdL2csZnVuY3Rpb24oJGEpe3JldHVybiBJaTxXci5sZW5ndGg/V3IuY2hhckF0KElpKyspOiIwIj09PSRhPyIwIjoiIn0pKTtpZihHbi5tYXRjaChwbykpcmV0dXJuIigiKyhXcj1Ccihk''@;'; + put 'put ''ciwiIyMjIyMjIyMjIyIsJG4pKS5zdWJzdHIoMCwzKSsiKSAiK1dyLnN1YnN0cigzLDMpKyItIitXci5zdWJzdHIoNik7dmFyIEkwPSIiO2lmKHVpPUduLm1hdGNoKC9eKFsjMD9dKykoID8pXC8oID8pKFsjMD9dKykvKSlyZXR1cm4gSWk9TWF0aC5taW4odWlbNF0ubGVuZ3RoLDcpLHUwPVdu''@;'; + put 'put ''KFppLE1hdGgucG93KDEwLElpKS0xLCExKSxXcj0iIitKMCwiICI9PShJMD13YSgibiIsdWlbMV0sdTBbMV0pKS5jaGFyQXQoSTAubGVuZ3RoLTEpJiYoSTA9STAuc3Vic3RyKDAsSTAubGVuZ3RoLTEpKyIwIiksV3IrPUkwK3VpWzJdKyIvIit1aVszXSwoSTA9WmUodTBbMl0sSWkpKS5sZW5n''@;'; + put 'put ''dGg8dWlbNF0ubGVuZ3RoJiYoSTA9cDAodWlbNF0uc3Vic3RyKHVpWzRdLmxlbmd0aC1JMC5sZW5ndGgpKStJMCksV3IrPUkwO2lmKHVpPUduLm1hdGNoKC9eIyAoWyMwP10rKSggPylcLyggPykoWyMwP10rKS8pKXJldHVybiBJaT1NYXRoLm1pbihNYXRoLm1heCh1aVsxXS5sZW5ndGgsdWlb''@;'; + put 'put ''NF0ubGVuZ3RoKSw3KSxKMCsoKHUwPVduKFppLE1hdGgucG93KDEwLElpKS0xLCEwKSlbMF18fCh1MFsxXT8iIjoiMCIpKSsiICIrKHUwWzFdP0ZlKHUwWzFdLElpKSt1aVsyXSsiLyIrdWlbM10rWmUodTBbMl0sSWkpOndlKCIgIiwyKklpKzErdWlbMl0ubGVuZ3RoK3VpWzNdLmxlbmd0aCkp''@;'; + put 'put ''O2lmKHVpPUduLm1hdGNoKC9eWyMwP10rJC8pKXJldHVybiBHbi5sZW5ndGg8PShXcj0iIiskbikubGVuZ3RoP1dyOnAwKEduLnN1YnN0cigwLEduLmxlbmd0aC1Xci5sZW5ndGgpKStXcjtpZih1aT1Hbi5tYXRjaCgvXihbIzBdKylcLihbIzBdKykkLykpe1dyPSIiKyRuLnRvRml4ZWQoTWF0''@;'; + put 'put ''aC5taW4odWlbMl0ubGVuZ3RoLDEwKSkucmVwbGFjZSgvKFteMF0pMCskLywiJDEiKSxJaT1Xci5pbmRleE9mKCIuIik7dmFyIGVhPUduLmluZGV4T2YoIi4iKS1JaSxZbz1Hbi5sZW5ndGgtV3IubGVuZ3RoLWVhO3JldHVybiBwMChHbi5zdWJzdHIoMCxlYSkrV3IrR24uc3Vic3RyKEduLmxl''@;'; + put 'put ''bmd0aC1ZbykpfWlmKHVpPUduLm1hdGNoKC9eMDAsMDAwXC4oWyMwXSowKSQvKSlyZXR1cm4gJG48MD8iLSIrQnIoZHIsR24sLSRuKTpqbygiIiskbikucmVwbGFjZSgvXlxkLFxkezN9JC8sIjAkJiIpLnJlcGxhY2UoL15cZCokLyxmdW5jdGlvbigkYSl7cmV0dXJuIjAwLCIrKCRhLmxlbmd0''@;'; + put 'put ''aDwzP3hlKDAsMy0kYS5sZW5ndGgpOiIiKSskYX0pKyIuIit4ZSgwLHVpWzFdLmxlbmd0aCk7dmFyIHlvPWpvKCIiK1ppKTtzd2l0Y2goR24pe2Nhc2UiIyMjLCMjIyI6Y2FzZSIjIywjIyMiOmNhc2UiIywjIyMiOnJldHVybiIwIiE9PXlvP0owK3lvOiIiO2Nhc2UiIywjMDAiOnJldHVybiIw''@;'; + put 'put ''MCIhPT0oeW89eGUoeW8sMikpP0owK3lvOiIiO2RlZmF1bHQ6aWYoR24ubWF0Y2goL1wuWzAjP10qJC8pKXJldHVybiBCcihkcixHbi5zbGljZSgwLEduLmxhc3RJbmRleE9mKCIuIikpLCRuKStwMChHbi5zbGljZShHbi5sYXN0SW5kZXhPZigiLiIpKSl9dGhyb3cgbmV3IEVycm9yKCJ1bnN1''@;'; + put 'put ''cHBvcnRlZCBmb3JtYXQgfCIrR24rInwiKX1yZXR1cm4gZnVuY3Rpb24oR24sJG4sYnIpe3JldHVybiIwLDAiPT0kbiYmKCRuPSIjLCMwMCIpLCgwfGJyKT09PWJyP0JyKEduLCRuLGJyKTpLcyhHbiwkbixicil9fSgpO2Z1bmN0aW9uIGFvKHJyKXtmb3IodmFyIElyPVtdLFpyPSExLHFpPTAs''@;'; + put 'put ''cmk9MDtxaTxyci5sZW5ndGg7KytxaSlzd2l0Y2gocnIuY2hhckNvZGVBdChxaSkpe2Nhc2UgMzQ6WnI9IVpyO2JyZWFrO2Nhc2UgOTU6Y2FzZSA0MjpjYXNlIDkyOisrcWk7YnJlYWs7Y2FzZSA1OTpJcltJci5sZW5ndGhdPXJyLnN1YnN0cihyaSxxaS1yaSkscmk9cWkrMX1pZihJcltJci5s''@;'; + put 'put ''ZW5ndGhdPXJyLnN1YnN0cihyaSksITA9PT1acil0aHJvdyBuZXcgRXJyb3IoIkZvcm1hdCB8IitycisifCB1bnRlcm1pbmF0ZWQgc3RyaW5nICIpO3JldHVybiBJcn1yZS5fc3BsaXQ9YW87dmFyIHgwPS9cW1tIaE1tU3NcdTBFMEFcdTBFMTlcdTBFMTddKlxdLztmdW5jdGlvbiBoMChycil7''@;'; + put 'put ''Zm9yKHZhciBJcj0wLFpyPSIiLHFpPSIiO0lyPHJyLmxlbmd0aDspc3dpdGNoKFpyPXJyLmNoYXJBdChJcikpe2Nhc2UiRyI6UnQocnIsSXIpJiYoSXIrPTYpLElyKys7YnJlYWs7Y2FzZSciJzpmb3IoOzM0IT09cnIuY2hhckNvZGVBdCgrK0lyKSYmSXI8cnIubGVuZ3RoOyk7KytJcjticmVh''@;'; + put 'put ''aztjYXNlIlxcIjpjYXNlIl8iOklyKz0yO2JyZWFrO2Nhc2UiQCI6KytJcjticmVhaztjYXNlIkIiOmNhc2UiYiI6aWYoIjEiPT09cnIuY2hhckF0KElyKzEpfHwiMiI9PT1yci5jaGFyQXQoSXIrMSkpcmV0dXJuITA7Y2FzZSJNIjpjYXNlIkQiOmNhc2UiWSI6Y2FzZSJIIjpjYXNlIlMiOmNh''@;'; + put 'put ''c2UiRSI6Y2FzZSJtIjpjYXNlImQiOmNhc2UieSI6Y2FzZSJoIjpjYXNlInMiOmNhc2UiZSI6Y2FzZSJnIjpyZXR1cm4hMDtjYXNlIkEiOmNhc2UiYSI6Y2FzZSJcdTRlMGEiOmlmKCJBL1AiPT09cnIuc3Vic3RyKElyLDMpLnRvVXBwZXJDYXNlKCl8fCJBTS9QTSI9PT1yci5zdWJzdHIoSXIs''@;'; + put 'put ''NSkudG9VcHBlckNhc2UoKXx8Ilx1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDgiPT09cnIuc3Vic3RyKElyLDUpLnRvVXBwZXJDYXNlKCkpcmV0dXJuITA7KytJcjticmVhaztjYXNlIlsiOmZvcihxaT1acjsiXSIhPT1yci5jaGFyQXQoSXIrKykmJklyPHJyLmxlbmd0aDspcWkrPXJyLmNoYXJB''@;'; + put 'put ''dChJcik7aWYocWkubWF0Y2goeDApKXJldHVybiEwO2JyZWFrO2Nhc2UiLiI6Y2FzZSIwIjpjYXNlIiMiOmZvcig7SXI8cnIubGVuZ3RoJiYoIjAjPy4sRSstJSIuaW5kZXhPZihacj1yci5jaGFyQXQoKytJcikpPi0xfHwiXFwiPT1aciYmIi0iPT1yci5jaGFyQXQoSXIrMSkmJiIwIyIuaW5k''@;'; + put 'put ''ZXhPZihyci5jaGFyQXQoSXIrMikpPi0xKTspO2JyZWFrO2Nhc2UiPyI6Zm9yKDtyci5jaGFyQXQoKytJcik9PT1acjspO2JyZWFrO2Nhc2UiKiI6KytJciwoIiAiPT1yci5jaGFyQXQoSXIpfHwiKiI9PXJyLmNoYXJBdChJcikpJiYrK0lyO2JyZWFrO2Nhc2UiKCI6Y2FzZSIpIjorK0lyO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UiMSI6Y2FzZSIyIjpjYXNlIjMiOmNhc2UiNCI6Y2FzZSI1IjpjYXNlIjYiOmNhc2UiNyI6Y2FzZSI4IjpjYXNlIjkiOmZvcig7SXI8cnIubGVuZ3RoJiYiMDEyMzQ1Njc4OSIuaW5kZXhPZihyci5jaGFyQXQoKytJcikpPi0xOyk7YnJlYWs7ZGVmYXVsdDorK0lyfXJldHVybiEx''@;'; + put 'put ''fWZ1bmN0aW9uIGpyKHJyLElyLFpyLHFpKXtmb3IodmFyIGswLHBvLHAwLHJpPVtdLHIwPSIiLHBpPTAsZTA9IiIsT289InQiLFFsPSJIIjtwaTxyci5sZW5ndGg7KXN3aXRjaChlMD1yci5jaGFyQXQocGkpKXtjYXNlIkciOmlmKCFSdChycixwaSkpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29n''@;'; + put 'put ''bml6ZWQgY2hhcmFjdGVyICIrZTArIiBpbiAiK3JyKTtyaVtyaS5sZW5ndGhdPXt0OiJHIix2OiJHZW5lcmFsIn0scGkrPTc7YnJlYWs7Y2FzZSciJzpmb3IocjA9IiI7MzQhPT0ocDA9cnIuY2hhckNvZGVBdCgrK3BpKSkmJnBpPHJyLmxlbmd0aDspcjArPVN0cmluZy5mcm9tQ2hhckNvZGUo''@;'; + put 'put ''cDApO3JpW3JpLmxlbmd0aF09e3Q6InQiLHY6cjB9LCsrcGk7YnJlYWs7Y2FzZSJcXCI6dmFyIEFsPXJyLmNoYXJBdCgrK3BpKTtyaVtyaS5sZW5ndGhdPXt0OiIoIj09PUFsfHwiKSI9PT1BbD9BbDoidCIsdjpBbH0sKytwaTticmVhaztjYXNlIl8iOnJpW3JpLmxlbmd0aF09e3Q6InQiLHY6''@;'; + put 'put ''IiAifSxwaSs9MjticmVhaztjYXNlIkAiOnJpW3JpLmxlbmd0aF09e3Q6IlQiLHY6SXJ9LCsrcGk7YnJlYWs7Y2FzZSJCIjpjYXNlImIiOmlmKCIxIj09PXJyLmNoYXJBdChwaSsxKXx8IjIiPT09cnIuY2hhckF0KHBpKzEpKXtpZihudWxsPT1rMCYmbnVsbD09KGswPU1yKElyLFpyLCIyIj09''@;'; + put 'put ''PXJyLmNoYXJBdChwaSsxKSkpKXJldHVybiIiO3JpW3JpLmxlbmd0aF09e3Q6IlgiLHY6cnIuc3Vic3RyKHBpLDIpfSxPbz1lMCxwaSs9MjticmVha31jYXNlIk0iOmNhc2UiRCI6Y2FzZSJZIjpjYXNlIkgiOmNhc2UiUyI6Y2FzZSJFIjplMD1lMC50b0xvd2VyQ2FzZSgpO2Nhc2UibSI6Y2Fz''@;'; + put 'put ''ZSJkIjpjYXNlInkiOmNhc2UiaCI6Y2FzZSJzIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJcdTBlMjciOmNhc2UiXHUwZTE0IjpjYXNlIlx1MGUxYiI6Y2FzZSJcdTBlMGEiOmNhc2UiXHUwZTE5IjpjYXNlIlx1MGUxNyI6aWYoSXI8MHx8bnVsbD09azAmJm51bGw9PShrMD1NcihJcixacikpKXJl''@;'; + put 'put ''dHVybiIiO2ZvcihyMD1lMDsrK3BpPHJyLmxlbmd0aCYmcnIuY2hhckF0KHBpKS50b0xvd2VyQ2FzZSgpPT09ZTA7KXIwKz1lMDsibSI9PT1lMCYmImgiPT09T28udG9Mb3dlckNhc2UoKSYmKGUwPSJNIiksImgiPT09ZTAmJihlMD1RbCkscmlbcmkubGVuZ3RoXT17dDplMCx2OnIwfSxPbz1l''@;'; + put 'put ''MDticmVhaztjYXNlIkEiOmNhc2UiYSI6Y2FzZSJcdTRlMGEiOnZhciBxMj17dDplMCx2OmUwfTtpZihudWxsPT1rMCYmKGswPU1yKElyLFpyKSksIkEvUCI9PT1yci5zdWJzdHIocGksMykudG9VcHBlckNhc2UoKT8obnVsbCE9azAmJihxMi52PWswLkg+PTEyPyJQIjoiQSIpLHEyLnQ9IlQi''@;'; + put 'put ''LFFsPSJoIixwaSs9Myk6IkFNL1BNIj09PXJyLnN1YnN0cihwaSw1KS50b1VwcGVyQ2FzZSgpPyhudWxsIT1rMCYmKHEyLnY9azAuSD49MTI/IlBNIjoiQU0iKSxxMi50PSJUIixwaSs9NSxRbD0iaCIpOiJcdTRlMGFcdTUzNDgvXHU0ZTBiXHU1MzQ4Ij09PXJyLnN1YnN0cihwaSw1KS50b1Vw''@;'; + put 'put ''cGVyQ2FzZSgpPyhudWxsIT1rMCYmKHEyLnY9azAuSD49MTI/Ilx1NGUwYlx1NTM0OCI6Ilx1NGUwYVx1NTM0OCIpLHEyLnQ9IlQiLHBpKz01LFFsPSJoIik6KHEyLnQ9InQiLCsrcGkpLG51bGw9PWswJiYiVCI9PT1xMi50KXJldHVybiIiO3JpW3JpLmxlbmd0aF09cTIsT289ZTA7YnJlYWs7''@;'; + put 'put ''Y2FzZSJbIjpmb3IocjA9ZTA7Il0iIT09cnIuY2hhckF0KHBpKyspJiZwaTxyci5sZW5ndGg7KXIwKz1yci5jaGFyQXQocGkpO2lmKCJdIiE9PXIwLnNsaWNlKC0xKSl0aHJvdyd1bnRlcm1pbmF0ZWQgIlsiIGJsb2NrOiB8JytyMCsifCI7aWYocjAubWF0Y2goeDApKXtpZihudWxsPT1rMCYm''@;'; + put 'put ''bnVsbD09KGswPU1yKElyLFpyKSkpcmV0dXJuIiI7cmlbcmkubGVuZ3RoXT17dDoiWiIsdjpyMC50b0xvd2VyQ2FzZSgpfSxPbz1yMC5jaGFyQXQoMSl9ZWxzZSByMC5pbmRleE9mKCIkIik+LTEmJihyMD0ocjAubWF0Y2goL1wkKFteLVxbXF1dKikvKXx8W10pWzFdfHwiJCIsaDAocnIpfHwo''@;'; + put 'put ''cmlbcmkubGVuZ3RoXT17dDoidCIsdjpyMH0pKTticmVhaztjYXNlIi4iOmlmKG51bGwhPWswKXtmb3IocjA9ZTA7KytwaTxyci5sZW5ndGgmJiIwIj09PShlMD1yci5jaGFyQXQocGkpKTspcjArPWUwO3JpW3JpLmxlbmd0aF09e3Q6InMiLHY6cjB9O2JyZWFrfWNhc2UiMCI6Y2FzZSIjIjpm''@;'; + put 'put ''b3IocjA9ZTA7KytwaTxyci5sZW5ndGgmJiIwIz8uLEUrLSUiLmluZGV4T2YoZTA9cnIuY2hhckF0KHBpKSk+LTE7KXIwKz1lMDtyaVtyaS5sZW5ndGhdPXt0OiJuIix2OnIwfTticmVhaztjYXNlIj8iOmZvcihyMD1lMDtyci5jaGFyQXQoKytwaSk9PT1lMDspcjArPWUwO3JpW3JpLmxlbmd0''@;'; + put 'put ''aF09e3Q6ZTAsdjpyMH0sT289ZTA7YnJlYWs7Y2FzZSIqIjorK3BpLCgiICI9PXJyLmNoYXJBdChwaSl8fCIqIj09cnIuY2hhckF0KHBpKSkmJisrcGk7YnJlYWs7Y2FzZSIoIjpjYXNlIikiOnJpW3JpLmxlbmd0aF09e3Q6MT09PXFpPyJ0IjplMCx2OmUwfSwrK3BpO2JyZWFrO2Nhc2UiMSI6''@;'; + put 'put ''Y2FzZSIyIjpjYXNlIjMiOmNhc2UiNCI6Y2FzZSI1IjpjYXNlIjYiOmNhc2UiNyI6Y2FzZSI4IjpjYXNlIjkiOmZvcihyMD1lMDtwaTxyci5sZW5ndGgmJiIwMTIzNDU2Nzg5Ii5pbmRleE9mKHJyLmNoYXJBdCgrK3BpKSk+LTE7KXIwKz1yci5jaGFyQXQocGkpO3JpW3JpLmxlbmd0aF09e3Q6''@;'; + put 'put ''IkQiLHY6cjB9O2JyZWFrO2Nhc2UiICI6cmlbcmkubGVuZ3RoXT17dDplMCx2OmUwfSwrK3BpO2JyZWFrO2Nhc2UiJCI6cmlbcmkubGVuZ3RoXT17dDoidCIsdjpkaX0sKytwaTticmVhaztjYXNlIi8iOnJpW3JpLmxlbmd0aF09cmkubGVuZ3RoPjAmJmgwKHJpW3JpLmxlbmd0aC0xXS52KT97''@;'; + put 'put ''dDoidCIsdjpZcn06e3Q6InQiLHY6Ii8ifSwrK3BpO2JyZWFrO2RlZmF1bHQ6aWYoLTE9PT0iLCQtKy8oKTohXiYnfnt9PD49XHUyMGFjYWNmaWprbG9wcXJ0dXZ3eHpQIi5pbmRleE9mKGUwKSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCBjaGFyYWN0ZXIgIitlMCsiIGluICIrcnIp''@;'; + put 'put ''O3JpW3JpLmxlbmd0aF09e3Q6InQiLHY6ZTB9LCsrcGl9dmFyIHRoLEtzPTAsUDY9MDtmb3IocGk9cmkubGVuZ3RoLTEsT289InQiO3BpPj0wOy0tcGkpc3dpdGNoKHJpW3BpXS50KXtjYXNlImgiOmNhc2UiSCI6cmlbcGldLnQ9UWwsT289ImgiLEtzPDEmJihLcz0xKTticmVhaztjYXNlInMi''@;'; + put 'put ''Oih0aD1yaVtwaV0udi5tYXRjaCgvXC4wKyQvKSkmJihQNj1NYXRoLm1heChQNix0aFswXS5sZW5ndGgtMSkpLEtzPDMmJihLcz0zKTtjYXNlImQiOmNhc2UieSI6Y2FzZSJNIjpjYXNlImUiOk9vPXJpW3BpXS50O2JyZWFrO2Nhc2UibSI6InMiPT09T28mJihyaVtwaV0udD0iTSIsS3M8MiYm''@;'; + put 'put ''KEtzPTIpKTticmVhaztjYXNlIlgiOmJyZWFrO2Nhc2UiWiI6S3M8MSYmcmlbcGldLnYubWF0Y2goL1tIaF0vKSYmKEtzPTEpLEtzPDImJnJpW3BpXS52Lm1hdGNoKC9bTW1dLykmJihLcz0yKSxLczwzJiZyaVtwaV0udi5tYXRjaCgvW1NzXS8pJiYoS3M9Myl9c3dpdGNoKEtzKXtjYXNlIDA6''@;'; + put 'put ''YnJlYWs7Y2FzZSAxOmswLnU+PS41JiYoazAudT0wLCsrazAuUyksazAuUz49NjAmJihrMC5TPTAsKytrMC5NKSxrMC5NPj02MCYmKGswLk09MCwrK2swLkgpO2JyZWFrO2Nhc2UgMjprMC51Pj0uNSYmKGswLnU9MCwrK2swLlMpLGswLlM+PTYwJiYoazAuUz0wLCsrazAuTSl9dmFyIEJyLGxy''@;'; + put 'put ''PSIiO2ZvcihwaT0wO3BpPHJpLmxlbmd0aDsrK3BpKXN3aXRjaChyaVtwaV0udCl7Y2FzZSJ0IjpjYXNlIlQiOmNhc2UiICI6Y2FzZSJEIjpicmVhaztjYXNlIlgiOnJpW3BpXS52PSIiLHJpW3BpXS50PSI7IjticmVhaztjYXNlImQiOmNhc2UibSI6Y2FzZSJ5IjpjYXNlImgiOmNhc2UiSCI6''@;'; + put 'put ''Y2FzZSJNIjpjYXNlInMiOmNhc2UiZSI6Y2FzZSJiIjpjYXNlIloiOmNhc2UiXHUwZTI3IjpjYXNlIlx1MGUxNCI6Y2FzZSJcdTBlMWIiOmNhc2UiXHUwZTBhIjpjYXNlIlx1MGUxOSI6Y2FzZSJcdTBlMTciOnJpW3BpXS52PU5hKHJpW3BpXS50LmNoYXJDb2RlQXQoMCkscmlbcGldLnYsazAs''@;'; + put 'put ''UDYpLHJpW3BpXS50PSJ0IjticmVhaztjYXNlIm4iOmNhc2UiPyI6Zm9yKEJyPXBpKzE7bnVsbCE9cmlbQnJdJiYoIj8iPT09KGUwPXJpW0JyXS50KXx8IkQiPT09ZTB8fCgiICI9PT1lMHx8InQiPT09ZTApJiZudWxsIT1yaVtCcisxXSYmKCI/Ij09PXJpW0JyKzFdLnR8fCJ0Ij09PXJpW0Jy''@;'; + put 'put ''KzFdLnQmJiIvIj09PXJpW0JyKzFdLnYpfHwiKCI9PT1yaVtwaV0udCYmKCIgIj09PWUwfHwibiI9PT1lMHx8IikiPT09ZTApfHwidCI9PT1lMCYmKCIvIj09PXJpW0JyXS52fHwiICI9PT1yaVtCcl0udiYmbnVsbCE9cmlbQnIrMV0mJiI/Ij09cmlbQnIrMV0udCkpOylyaVtwaV0udis9cmlb''@;'; + put 'put ''QnJdLnYscmlbQnJdPXt2OiIiLHQ6IjsifSwrK0JyO2xyKz1yaVtwaV0udixwaT1Cci0xO2JyZWFrO2Nhc2UiRyI6cmlbcGldLnQ9InQiLHJpW3BpXS52PWlvKElyLFpyKX12YXIgR24sJG4sZHI9IiI7aWYobHIubGVuZ3RoPjApezQwPT1sci5jaGFyQ29kZUF0KDApPyhHbj1JcjwwJiY0NT09''@;'; + put 'put ''PWxyLmNoYXJDb2RlQXQoMCk/LUlyOklyLCRuPXdhKCJuIixscixHbikpOigkbj13YSgibiIsbHIsR249SXI8MCYmcWk+MT8tSXI6SXIpLEduPDAmJnJpWzBdJiYidCI9PXJpWzBdLnQmJigkbj0kbi5zdWJzdHIoMSkscmlbMF0udj0iLSIrcmlbMF0udikpLEJyPSgkbj0kbi5yZXBsYWNlKC9b''@;'; + put 'put ''LFwuXS9nLGZ1bmN0aW9uKElpKXtyZXR1cm4iLiI9PUlpP3dpOkEwfSkpLmxlbmd0aC0xO3ZhciBicj1yaS5sZW5ndGg7Zm9yKHBpPTA7cGk8cmkubGVuZ3RoOysrcGkpaWYobnVsbCE9cmlbcGldJiYidCIhPXJpW3BpXS50JiZyaVtwaV0udi5pbmRleE9mKCIuIik+LTEpe2JyPXBpO2JyZWFr''@;'; + put 'put ''fXZhciBXcj1yaS5sZW5ndGg7aWYoYnI9PT1yaS5sZW5ndGgmJi0xPT09JG4uaW5kZXhPZigiRSIpKXtmb3IocGk9cmkubGVuZ3RoLTE7cGk+PTA7LS1waSludWxsPT1yaVtwaV18fC0xPT09Im4/Ii5pbmRleE9mKHJpW3BpXS50KXx8KEJyPj1yaVtwaV0udi5sZW5ndGgtMT9yaVtwaV0udj0k''@;'; + put 'put ''bi5zdWJzdHIoMSsoQnItPXJpW3BpXS52Lmxlbmd0aCkscmlbcGldLnYubGVuZ3RoKTpCcjwwP3JpW3BpXS52PSIiOihyaVtwaV0udj0kbi5zdWJzdHIoMCxCcisxKSxCcj0tMSkscmlbcGldLnQ9InQiLFdyPXBpKTtCcj49MCYmV3I8cmkubGVuZ3RoJiYocmlbV3JdLnY9JG4uc3Vic3RyKDAs''@;'; + put 'put ''QnIrMSkrcmlbV3JdLnYpfWVsc2UgaWYoYnIhPT1yaS5sZW5ndGgmJi0xPT09JG4uaW5kZXhPZigiRSIpKXtmb3IoQnI9JG4uaW5kZXhPZih3aSktMSxwaT1icjtwaT49MDstLXBpKWlmKG51bGwhPXJpW3BpXSYmLTEhPT0ibj8iLmluZGV4T2YocmlbcGldLnQpKXtmb3IocG89cmlbcGldLnYu''@;'; + put 'put ''aW5kZXhPZigiLiIpPi0xJiZwaT09PWJyP3JpW3BpXS52LmluZGV4T2YoIi4iKS0xOnJpW3BpXS52Lmxlbmd0aC0xLGRyPXJpW3BpXS52LnN1YnN0cihwbysxKTtwbz49MDstLXBvKUJyPj0wJiYoIjAiPT09cmlbcGldLnYuY2hhckF0KHBvKXx8IiMiPT09cmlbcGldLnYuY2hhckF0KHBvKSkm''@;'; + put 'put ''Jihkcj0kbi5jaGFyQXQoQnItLSkrZHIpO3JpW3BpXS52PWRyLHJpW3BpXS50PSJ0IixXcj1waX1mb3IoQnI+PTAmJldyPHJpLmxlbmd0aCYmKHJpW1dyXS52PSRuLnN1YnN0cigwLEJyKzEpK3JpW1dyXS52KSxCcj0kbi5pbmRleE9mKHdpKSsxLHBpPWJyO3BpPHJpLmxlbmd0aDsrK3BpKWlm''@;'; + put 'put ''KG51bGwhPXJpW3BpXSYmKC0xIT09Im4/KCIuaW5kZXhPZihyaVtwaV0udCl8fHBpPT09YnIpKXtmb3IocG89cmlbcGldLnYuaW5kZXhPZih3aSk+LTEmJnBpPT09YnI/cmlbcGldLnYuaW5kZXhPZih3aSkrMTowLGRyPXJpW3BpXS52LnN1YnN0cigwLHBvKTtwbzxyaVtwaV0udi5sZW5ndGg7''@;'; + put 'put ''KytwbylCcjwkbi5sZW5ndGgmJihkcis9JG4uY2hhckF0KEJyKyspKTtyaVtwaV0udj1kcixyaVtwaV0udD0idCIsV3I9cGl9fX1mb3IocGk9MDtwaTxyaS5sZW5ndGg7KytwaSludWxsIT1yaVtwaV0mJiJuPyIuaW5kZXhPZihyaVtwaV0udCk+LTEmJihyaVtwaV0udj13YShyaVtwaV0udCxy''@;'; + put 'put ''aVtwaV0udixHbj1xaT4xJiZJcjwwJiZwaT4wJiYiLSI9PT1yaVtwaS0xXS52Py1JcjpJcikucmVwbGFjZSgvXC4vZyx3aSkucmVwbGFjZSgvLC8sQTApLHJpW3BpXS50PSJ0Iik7dmFyIHVpPSIiO2ZvcihwaT0wO3BpIT09cmkubGVuZ3RoOysrcGkpbnVsbCE9cmlbcGldJiYodWkrPXJpW3Bp''@;'; + put 'put ''XS52KTtyZXR1cm4gdWl9cmUuaXNfZGF0ZT1oMCxyZS5fZXZhbD1qcjt2YXIgdm89L1xbWz08Pl0vLHhvPS9cWyg9fD5bPV0/fDxbPj1dPykoLT9cZCsoPzpcLlxkKik/KVxdLztmdW5jdGlvbiAkaShycixJcil7aWYobnVsbD09SXIpcmV0dXJuITE7dmFyIFpyPXBhcnNlRmxvYXQoSXJbMl0p''@;'; + put 'put ''O3N3aXRjaChJclsxXSl7Y2FzZSI9IjppZihycj09WnIpcmV0dXJuITA7YnJlYWs7Y2FzZSI+IjppZihycj5acilyZXR1cm4hMDticmVhaztjYXNlIjwiOmlmKHJyPFpyKXJldHVybiEwO2JyZWFrO2Nhc2UiPD4iOmlmKHJyIT1acilyZXR1cm4hMDticmVhaztjYXNlIj49IjppZihycj49WnIp''@;'; + put 'put ''cmV0dXJuITA7YnJlYWs7Y2FzZSI8PSI6aWYocnI8PVpyKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIE1jKHJyLElyLFpyKXtudWxsPT1aciYmKFpyPXt9KTt2YXIgcWk9IiI7c3dpdGNoKHR5cGVvZiBycil7Y2FzZSJzdHJpbmciOnFpPSJtL2QveXkiPT1yciYmWnIuZGF0ZU5GP1pyLmRh''@;'; + put 'put ''dGVORjpycjticmVhaztjYXNlIm51bWJlciI6bnVsbD09KHFpPTE0PT1yciYmWnIuZGF0ZU5GP1pyLmRhdGVORjoobnVsbCE9WnIudGFibGU/WnIudGFibGU6enQpW3JyXSkmJihxaT1aci50YWJsZSYmWnIudGFibGVbUG5bcnJdXXx8enRbUG5bcnJdXSksbnVsbD09cWkmJihxaT1Pbltycl18''@;'; + put 'put ''fCJHZW5lcmFsIil9aWYoUnQocWksMCkpcmV0dXJuIGlvKElyLFpyKTtJciBpbnN0YW5jZW9mIERhdGUmJihJcj1HcihJcixaci5kYXRlMTkwNCkpO3ZhciByaT1mdW5jdGlvbiBsMihycixJcil7dmFyIFpyPWFvKHJyKSxxaT1aci5sZW5ndGgscmk9WnJbcWktMV0uaW5kZXhPZigiQCIpO2lm''@;'; + put 'put ''KHFpPDQmJnJpPi0xJiYtLXFpLFpyLmxlbmd0aD40KXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZpbmQgcmlnaHQgZm9ybWF0IGZvciB8Iitaci5qb2luKCJ8IikrInwiKTtpZigibnVtYmVyIiE9dHlwZW9mIElyKXJldHVybls0LDQ9PT1aci5sZW5ndGh8fHJpPi0xP1pyW1pyLmxlbmd0aC0x''@;'; + put 'put ''XToiQCJdO3N3aXRjaChaci5sZW5ndGgpe2Nhc2UgMTpacj1yaT4tMT9bIkdlbmVyYWwiLCJHZW5lcmFsIiwiR2VuZXJhbCIsWnJbMF1dOltaclswXSxaclswXSxaclswXSwiQCJdO2JyZWFrO2Nhc2UgMjpacj1yaT4tMT9bWnJbMF0sWnJbMF0sWnJbMF0sWnJbMV1dOltaclswXSxaclsxXSxa''@;'; + put 'put ''clswXSwiQCJdO2JyZWFrO2Nhc2UgMzpacj1yaT4tMT9bWnJbMF0sWnJbMV0sWnJbMF0sWnJbMl1dOltaclswXSxaclsxXSxaclsyXSwiQCJdfXZhciByMD1Jcj4wP1pyWzBdOklyPDA/WnJbMV06WnJbMl07aWYoLTE9PT1aclswXS5pbmRleE9mKCJbIikmJi0xPT09WnJbMV0uaW5kZXhPZigi''@;'; + put 'put ''WyIpKXJldHVybltxaSxyMF07aWYobnVsbCE9WnJbMF0ubWF0Y2godm8pfHxudWxsIT1aclsxXS5tYXRjaCh2bykpe3ZhciBwaT1aclswXS5tYXRjaCh4byksZTA9WnJbMV0ubWF0Y2goeG8pO3JldHVybiAkaShJcixwaSk/W3FpLFpyWzBdXTokaShJcixlMCk/W3FpLFpyWzFdXTpbcWksWnJb''@;'; + put 'put ''bnVsbCE9cGkmJm51bGwhPWUwPzI6MV1dfXJldHVybltxaSxyMF19KHFpLElyKTtpZihSdChyaVsxXSkpcmV0dXJuIGlvKElyLFpyKTtpZighMD09PUlyKUlyPSJUUlVFIjtlbHNlIGlmKCExPT09SXIpSXI9IkZBTFNFIjtlbHNlIGlmKCIiPT09SXJ8fG51bGw9PUlyKXJldHVybiIiO3JldHVy''@;'; + put 'put ''biBqcihyaVsxXSxJcixacixyaVswXSl9ZnVuY3Rpb24gcDIocnIsSXIpe2lmKCJudW1iZXIiIT10eXBlb2YgSXIpe0lyPStJcnx8LTE7Zm9yKHZhciBacj0wO1pyPDM5MjsrK1pyKWlmKG51bGwhPXp0W1pyXSl7aWYoenRbWnJdPT1ycil7SXI9WnI7YnJlYWt9fWVsc2UgSXI8MCYmKElyPVpy''@;'; + put 'put ''KTtJcjwwJiYoSXI9MzkxKX1yZXR1cm4genRbSXJdPXJyLElyfXJlLmxvYWQ9cDIscmUuX3RhYmxlPXp0LHJlLmdldF90YWJsZT1mdW5jdGlvbigpe3JldHVybiB6dH0scmUubG9hZF90YWJsZT1mdW5jdGlvbihJcil7Zm9yKHZhciBacj0wOzM5MiE9WnI7Kytacil2b2lkIDAhPT1Jcltacl0m''@;'; + put 'put ''JnAyKElyW1pyXSxacil9LHJlLmluaXRfdGFibGU9RHQscmUuZm9ybWF0PU1jLHJlLmdldGxvY2FsZT1mdW5jdGlvbiBFaSgpe3JldHVybiB6cnx8ImVuLVVTIn0scmUuc2V0bG9jYWxlPWZ1bmN0aW9uIGhpKHJyKXtpZihmdW5jdGlvbiBraShycil7dmFyIElyPTA7c3dpdGNoKCh6cnx8IiIp''@;'; + put 'put ''LnRvTG93ZXJDYXNlKCkpe2Nhc2UiemgtdHciOmNhc2UiemgtY24iOmNhc2UiamEtanAiOmNhc2Uia28ta3IiOmZvcihJcj0yNztJcjw9MzY7KytJcilkZWxldGUgcnJbSXJdO2ZvcihJcj01MDtJcjw9NTg7KytJcilkZWxldGUgcnJbSXJdO2JyZWFrO2Nhc2UidGgtdGgiOmZvcihJcj01OTtJ''@;'; + put 'put ''cjw9NjI7KytJcilkZWxldGUgcnJbSXJdO2ZvcihJcj02NztJcjw9ODE7KytJcilkZWxldGUgcnJbSXJdfX0oenQpLHpyPXJyLE5yKHp0KSwidW5kZWZpbmVkIiE9dHlwZW9mIEludGwpe3ZhciBJcj1JbnRsLkRhdGVUaW1lRm9ybWF0KHJyKTtpZihJci5mb3JtYXRUb1BhcnRzKXtmb3IodmFy''@;'; + put 'put ''IFpyPUlyLmZvcm1hdFRvUGFydHMobmV3IERhdGUoMjAyMCwwLDUsMCwwLDApKSxxaT0wO3FpPDc7KytxaSlubltxaV1bMV09SW50bC5EYXRlVGltZUZvcm1hdChycix7d2Vla2RheToibG9uZyJ9KS5mb3JtYXRUb1BhcnRzKG5ldyBEYXRlKDIwMjAsMCw1K3FpLDAsMCwwKSlbMF0udmFsdWUs''@;'; + put 'put ''bm5bcWldWzBdPUludGwuRGF0ZVRpbWVGb3JtYXQocnIse3dlZWtkYXk6InNob3J0In0pLmZvcm1hdFRvUGFydHMobmV3IERhdGUoMjAyMCwwLDUrcWksMCwwLDApKVswXS52YWx1ZTtmb3IodmFyIHJpPTA7cmk8MTI7KytyaSlDbltyaV1bMl09SW50bC5EYXRlVGltZUZvcm1hdChycix7bW9u''@;'; + put 'put ''dGg6ImxvbmcifSkuZm9ybWF0VG9QYXJ0cyhuZXcgRGF0ZSgyMDIwLHJpLDIsMCwwLDApKVswXS52YWx1ZSxDbltyaV1bMV09SW50bC5EYXRlVGltZUZvcm1hdChycix7bW9udGg6InNob3J0In0pLmZvcm1hdFRvUGFydHMobmV3IERhdGUoMjAyMCxyaSwyLDAsMCwwKSlbMF0udmFsdWUsQ25b''@;'; + put 'put ''cmldWzBdPUNuW3JpXVsxXS5zbGljZSgwLDEpO2Zvcih2YXIgcjA9IiIscGk9MDtwaTxaci5sZW5ndGg7KytwaSl7dmFyIGUwPVpyW3BpXS52YWx1ZTtzd2l0Y2goWnJbcGldLnR5cGUpe2Nhc2UieWVhciI6cjArPTI9PWUwLmxlbmd0aD8ieXkiOiJ5eXl5IjticmVhaztjYXNlIm1vbnRoIjpy''@;'; + put 'put ''MCs9IjEiPT1lMD8ibSI6IjAxIj09ZTA/Im1tIjplMD09Q25bMF1bMV0/Im1tbSI6ZTA9PUNuWzBdWzJdPyJtbW1tIjplMD09Q25bMF1bMF0/Im1tbW1tIjoibW0iO2JyZWFrO2Nhc2UiZGF5IjpyMCs9IjUiPT1lMD8iZCI6IjA1Ij09ZTA/ImRkIjplMD09bm5bMF1bMF0/ImRkZCI6ZTA9PW5u''@;'; + put 'put ''WzBdWzFdPyJkZGRkIjoiZGQiO2JyZWFrO2Nhc2UibGl0ZXJhbCI6cjArPWUwLnJlcGxhY2UoLy4vZywiXFwkJiIpLDE9PWUwLmxlbmd0aCYmKFlyPWUwKX19KHJyLm1hdGNoKC9lbi9pKSYmcnIubWF0Y2goL3VzL2kpfHwhcnIpJiYocjA9Im0vZC95eSIpLHp0WzE0XT1yMH1lbHNlImphLWpw''@;'; + put 'put ''Ij09cnIudG9Mb3dlckNhc2UoKSYmKHp0WzE0XT0ieXl5eVxcL21cXC9kIik7dmFyIE9vPUludGwuTnVtYmVyRm9ybWF0KHJyLHt9KS5mb3JtYXQoMTIzNDU2Ny44OSk7T28mJihBMD0oT28ubWF0Y2goLzEoLiopMi8pfHxbXSlbMV0sd2k9KE9vLm1hdGNoKC83KC4qKTgvKXx8W10pWzFdKX1x''@;'; + put 'put ''cltyci50b0xvd2VyQ2FzZSgpXXx8KHFyW3JyLnRvTG93ZXJDYXNlKCldPXsiLiI6d2ksIiwiOkEwfSksY3I9WXQob2k9cXJbcnIudG9Mb3dlckNhc2UoKV18fHFyWyJlbi11cyJdKX0scmUubm9ybWFsaXplPWZ1bmN0aW9uIEhpKHJyKXtmb3IodmFyIElyPTAsWnI9MCxxaT0iIixyaT0iIixy''@;'; + put 'put ''MD0iIixwaT1vaS55fHwieSIsZTA9cGkudG9VcHBlckNhc2UoKSxPbz1vaS5kfHwiZCIsazA9T28udG9VcHBlckNhc2UoKSxwbz1vaVsiLiJdLHAwPW9pWyIsIl0sUWw9IjAjP0UrLSUiK29pWyIsIl0rcG87SXI8cnIubGVuZ3RoOylzd2l0Y2gocWk9cnIuY2hhckF0KElyKSl7Y2FzZSJHIjpJ''@;'; + put 'put ''cisrLHIwKz1xaTticmVhaztjYXNlJyInOmZvcihyMCs9cWk7MzQhPT0oWnI9cnIuY2hhckNvZGVBdCgrK0lyKSkmJklyPHJyLmxlbmd0aDspcjArPVN0cmluZy5mcm9tQ2hhckNvZGUoWnIpO3IwKz0nIicsKytJcjticmVhaztjYXNlIlxcIjpjYXNlIl8iOnIwKz1yci5zbGljZShJcixJcisy''@;'; + put 'put ''KSxJcis9MjticmVhaztjYXNlIkAiOnIwKz1xaSwrK0lyO2JyZWFrO2Nhc2UiQiI6Y2FzZSJiIjorK0lyLHIwKz1xaTticmVhaztjYXNlIHBpOmNhc2UgZTA6Y2FzZSBPbzpjYXNlIGswOnIwKz1jcltxaS50b0xvd2VyQ2FzZSgpXSwrK0lyO2JyZWFrO2Nhc2UiTSI6Y2FzZSJIIjpjYXNlIlMi''@;'; + put 'put ''OmNhc2UiRSI6Y2FzZSJtIjpjYXNlImgiOmNhc2UicyI6Y2FzZSJlIjpjYXNlImciOmNhc2UiQSI6Y2FzZSJhIjpyMCs9cWksKytJcjticmVhaztjYXNlIlsiOmZvcihyaT1xaTsiXSIhPT1yci5jaGFyQXQoSXIrKykmJklyPHJyLmxlbmd0aDspcmkrPXJyLmNoYXJBdChJcik7cjArPXJpO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgcDA6cjArPSciJytxaSsnIicsKytJcjticmVhaztjYXNlIHBvOmlmKCEoSXI8cnIubGVuZ3RoJiYoUWwuaW5kZXhPZihxaT1yci5jaGFyQXQoKytJcikpPi0xfHwiXFwiPT1xaSYmIi0iPT1yci5jaGFyQXQoSXIrMSkmJiIwIyIuaW5kZXhPZihyci5jaGFyQXQoSXIrMikpPi0x''@;'; + put 'put ''KSkpe3IwKz0nIicrcG8rJyInO2JyZWFrfXFpPXBvLC0tSXI7Y2FzZSIwIjpjYXNlIiMiOmZvcihyMCs9Y3JbcWkudG9Mb3dlckNhc2UoKV18fHFpO0lyPHJyLmxlbmd0aCYmKFFsLmluZGV4T2YocWk9cnIuY2hhckF0KCsrSXIpKT4tMXx8IlxcIj09cWkmJiItIj09cnIuY2hhckF0KElyKzEp''@;'; + put 'put ''JiYiMCMiLmluZGV4T2YocnIuY2hhckF0KElyKzIpKT4tMSk7KXIwKz1jcltxaS50b0xvd2VyQ2FzZSgpXXx8cWk7YnJlYWs7Y2FzZSI/Ijpmb3IocjArPXFpO3JyLmNoYXJBdCgrK0lyKT09PXFpOylyMCs9cWk7YnJlYWs7Y2FzZSIqIjpyMCs9cWksKytJciwoIiAiPT1yci5jaGFyQXQoSXIp''@;'; + put 'put ''fHwiKiI9PXJyLmNoYXJBdChJcikpJiYocjArPXJyLmNoYXJBdChJciksKytJcik7YnJlYWs7Y2FzZSIoIjpjYXNlIikiOnIwKz1xaSwrK0lyO2JyZWFrO2Nhc2UiMSI6Y2FzZSIyIjpjYXNlIjMiOmNhc2UiNCI6Y2FzZSI1IjpjYXNlIjYiOmNhc2UiNyI6Y2FzZSI4IjpjYXNlIjkiOmZvcihy''@;'; + put 'put ''MCs9cWk7SXI8cnIubGVuZ3RoJiYiMDEyMzQ1Njc4OSIuaW5kZXhPZihyci5jaGFyQXQoKytJcikpPi0xOylyMCs9cnIuY2hhckF0KElyKTticmVhaztkZWZhdWx0OnIwKz1xaSwrK0lyfXJldHVybiByMH0scmUuZ2V0Y3VycmVuY3k9ZnVuY3Rpb24gVWkoKXtyZXR1cm4gdjB8fCJVU0QifSxy''@;'; + put 'put ''ZS5zZXRjdXJyZW5jeT1mdW5jdGlvbiB0byhycil7djA9cnIsZGk9InVuZGVmaW5lZCIhPXR5cGVvZiBJbnRsP0ludGwuTnVtYmVyRm9ybWF0KHpyLHtzdHlsZToiY3VycmVuY3kiLGN1cnJlbmN5RGlzcGxheToic3ltYm9sIixjdXJyZW5jeTpycn0pLmZvcm1hdCgwKS5yZXBsYWNlKC9bMFwu''@;'; + put 'put ''XCxcc10vZywiIik6IiQifX07eWUoRik7dmFyIHd0LENlPXsiR2VuZXJhbCBOdW1iZXIiOiJHZW5lcmFsIiwiR2VuZXJhbCBEYXRlIjpGLl90YWJsZVsyMl0sIkxvbmcgRGF0ZSI6ImRkZGQsIG1tbW0gZGQsIHl5eXkiLCJNZWRpdW0gRGF0ZSI6Ri5fdGFibGVbMTVdLCJTaG9ydCBEYXRlIjpG''@;'; + put 'put ''Ll90YWJsZVsxNF0sIkxvbmcgVGltZSI6Ri5fdGFibGVbMTldLCJNZWRpdW0gVGltZSI6Ri5fdGFibGVbMThdLCJTaG9ydCBUaW1lIjpGLl90YWJsZVsyMF0sQ3VycmVuY3k6JyIkIiMsIyMwLjAwXyk7W1JlZF1cXCgiJCIjLCMjMC4wMFxcKScsRml4ZWQ6Ri5fdGFibGVbMl0sU3RhbmRhcmQ6''@;'; + put 'put ''Ri5fdGFibGVbNF0sUGVyY2VudDpGLl90YWJsZVsxMF0sU2NpZW50aWZpYzpGLl90YWJsZVsxMV0sIlllcy9ObyI6JyJZZXMiOyJZZXMiOyJObyI7QCcsIlRydWUvRmFsc2UiOiciVHJ1ZSI7IlRydWUiOyJGYWxzZSI7QCcsIk9uL09mZiI6JyJZZXMiOyJZZXMiOyJObyI7QCd9LERlPXs1Oici''@;'; + put 'put ''JCIjLCMjMF8pO1xcKCIkIiMsIyMwXFwpJyw2OiciJCIjLCMjMF8pO1tSZWRdXFwoIiQiIywjIzBcXCknLDc6JyIkIiMsIyMwLjAwXyk7XFwoIiQiIywjIzAuMDBcXCknLDg6JyIkIiMsIyMwLjAwXyk7W1JlZF1cXCgiJCIjLCMjMC4wMFxcKScsMjM6IkdlbmVyYWwiLDI0OiJHZW5lcmFsIiwy''@;'; + put 'put ''NToiR2VuZXJhbCIsMjY6IkdlbmVyYWwiLDI3OiJtL2QveXkiLDI4OiJtL2QveXkiLDI5OiJtL2QveXkiLDMwOiJtL2QveXkiLDMxOiJtL2QveXkiLDMyOiJoOm1tOnNzIiwzMzoiaDptbTpzcyIsMzQ6Img6bW06c3MiLDM1OiJoOm1tOnNzIiwzNjoibS9kL3l5Iiw0MTonXygqICMsIyMwXyk7''@;'; + put 'put ''XygqICgjLCMjMCk7XygqICItIl8pO18oQF8pJyw0MjonXygiJCIqICMsIyMwXyk7XygiJCIqICgjLCMjMCk7XygiJCIqICItIl8pO18oQF8pJyw0MzonXygqICMsIyMwLjAwXyk7XygqICgjLCMjMC4wMCk7XygqICItIj8/Xyk7XyhAXyknLDQ0OidfKCIkIiogIywjIzAuMDBfKTtfKCIkIiog''@;'; + put 'put ''KCMsIyMwLjAwKTtfKCIkIiogIi0iPz9fKTtfKEBfKScsNTA6Im0vZC95eSIsNTE6Im0vZC95eSIsNTI6Im0vZC95eSIsNTM6Im0vZC95eSIsNTQ6Im0vZC95eSIsNTU6Im0vZC95eSIsNTY6Im0vZC95eSIsNTc6Im0vZC95eSIsNTg6Im0vZC95eSIsNTk6IjAiLDYwOiIwLjAwIiw2MToiIywj''@;'; + put 'put ''IzAiLDYyOiIjLCMjMC4wMCIsNjM6JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLDY0OiciJCIjLCMjMF8pO1tSZWRdXFwoIiQiIywjIzBcXCknLDY1OiciJCIjLCMjMC4wMF8pO1xcKCIkIiMsIyMwLjAwXFwpJyw2NjonIiQiIywjIzAuMDBfKTtbUmVkXVxcKCIkIiMsIyMwLjAwXFwpJyw2''@;'; + put 'put ''NzoiMCUiLDY4OiIwLjAwJSIsNjk6IiMgPy8/Iiw3MDoiIyA/Py8/PyIsNzE6Im0vZC95eSIsNzI6Im0vZC95eSIsNzM6ImQtbW1tLXl5Iiw3NDoiZC1tbW0iLDc1OiJtbW0teXkiLDc2OiJoOm1tIiw3NzoiaDptbTpzcyIsNzg6Im0vZC95eSBoOm1tIiw3OToibW06c3MiLDgwOiJbaF06bW06''@;'; + put 'put ''c3MiLDgxOiJtbXNzLjAifSxQZT0vW2REXSt8W21NXSt8W3lZZUVdK3xbSGhdK3xbU3NdKy9nOyFmdW5jdGlvbihIKXtILnZlcnNpb249IjEuMi4wIjt2YXIgWD1mdW5jdGlvbiByZSgpe2Zvcih2YXIgamU9MCxZZT1uZXcgQXJyYXkoMjU2KSxNdD0wOzI1NiE9TXQ7KytNdClZZVtNdF09amU9''@;'; + put 'put ''MSYoamU9MSYoamU9MSYoamU9MSYoamU9MSYoamU9MSYoamU9MSYoamU9MSYoamU9TXQpPy0zMDY2NzQ5MTJeamU+Pj4xOmplPj4+MSk/LTMwNjY3NDkxMl5qZT4+PjE6amU+Pj4xKT8tMzA2Njc0OTEyXmplPj4+MTpqZT4+PjEpPy0zMDY2NzQ5MTJeamU+Pj4xOmplPj4+MSk/LTMwNjY3NDkx''@;'; + put 'put ''Ml5qZT4+PjE6amU+Pj4xKT8tMzA2Njc0OTEyXmplPj4+MTpqZT4+PjEpPy0zMDY2NzQ5MTJeamU+Pj4xOmplPj4+MSk/LTMwNjY3NDkxMl5qZT4+PjE6amU+Pj4xO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgSW50MzJBcnJheT9uZXcgSW50MzJBcnJheShZZSk6WWV9KCk7SC50YWJsZT1Y''@;'; + put 'put ''LEguYnN0cj1mdW5jdGlvbiB3ZShqZSxZZSl7Zm9yKHZhciBNdD0tMV5ZZSx4dD1qZS5sZW5ndGgtMSxSdD0wO1J0PHh0OylNdD0oTXQ9TXQ+Pj44XlhbMjU1JihNdF5qZS5jaGFyQ29kZUF0KFJ0KyspKV0pPj4+OF5YWzI1NSYoTXReamUuY2hhckNvZGVBdChSdCsrKSldO3JldHVybiBSdD09''@;'; + put 'put ''PXh0JiYoTXQ9TXQ+Pj44XlhbMjU1JihNdF5qZS5jaGFyQ29kZUF0KFJ0KSldKSwtMV5NdH0sSC5idWY9ZnVuY3Rpb24geGUoamUsWWUpe2lmKGplLmxlbmd0aD4xZTQpcmV0dXJuIGZ1bmN0aW9uIEZlKGplLFllKXtmb3IodmFyIE10PS0xXlllLHh0PWplLmxlbmd0aC03LFJ0PTA7UnQ8eHQ7''@;'; + put 'put ''KU10PShNdD0oTXQ9KE10PShNdD0oTXQ9KE10PShNdD1NdD4+PjheWFsyNTUmKE10XmplW1J0KytdKV0pPj4+OF5YWzI1NSYoTXReamVbUnQrK10pXSk+Pj44XlhbMjU1JihNdF5qZVtSdCsrXSldKT4+PjheWFsyNTUmKE10XmplW1J0KytdKV0pPj4+OF5YWzI1NSYoTXReamVbUnQrK10pXSk+''@;'; + put 'put ''Pj44XlhbMjU1JihNdF5qZVtSdCsrXSldKT4+PjheWFsyNTUmKE10XmplW1J0KytdKV0pPj4+OF5YWzI1NSYoTXReamVbUnQrK10pXTtmb3IoO1J0PHh0Kzc7KU10PU10Pj4+OF5YWzI1NSYoTXReamVbUnQrK10pXTtyZXR1cm4tMV5NdH0oamUsWWUpO2Zvcih2YXIgTXQ9LTFeWWUseHQ9amUu''@;'; + put 'put ''bGVuZ3RoLTMsUnQ9MDtSdDx4dDspTXQ9KE10PShNdD0oTXQ9TXQ+Pj44XlhbMjU1JihNdF5qZVtSdCsrXSldKT4+PjheWFsyNTUmKE10XmplW1J0KytdKV0pPj4+OF5YWzI1NSYoTXReamVbUnQrK10pXSk+Pj44XlhbMjU1JihNdF5qZVtSdCsrXSldO2Zvcig7UnQ8eHQrMzspTXQ9TXQ+Pj44''@;'; + put 'put ''XlhbMjU1JihNdF5qZVtSdCsrXSldO3JldHVybi0xXk10fSxILnN0cj1mdW5jdGlvbiBaZShqZSxZZSl7Zm9yKHZhciBZdCxubixNdD0tMV5ZZSx4dD0wLFJ0PWplLmxlbmd0aDt4dDxSdDspKFl0PWplLmNoYXJDb2RlQXQoeHQrKykpPDEyOD9NdD1NdD4+PjheWFsyNTUmKE10Xll0KV06WXQ8''@;'; + put 'put ''MjA0OD9NdD0oTXQ9TXQ+Pj44XlhbMjU1JihNdF4oMTkyfFl0Pj42JjMxKSldKT4+PjheWFsyNTUmKE10XigxMjh8NjMmWXQpKV06WXQ+PTU1Mjk2JiZZdDw1NzM0ND8oWXQ9NjQrKDEwMjMmWXQpLG5uPTEwMjMmamUuY2hhckNvZGVBdCh4dCsrKSxNdD0oTXQ9KE10PShNdD1NdD4+PjheWFsy''@;'; + put 'put ''NTUmKE10XigyNDB8WXQ+PjgmNykpXSk+Pj44XlhbMjU1JihNdF4oMTI4fFl0Pj4yJjYzKSldKT4+PjheWFsyNTUmKE10XigxMjh8bm4+PjYmMTV8KDMmWXQpPDw0KSldKT4+PjheWFsyNTUmKE10XigxMjh8NjMmbm4pKV0pOk10PShNdD0oTXQ9TXQ+Pj44XlhbMjU1JihNdF4oMjI0fFl0Pj4x''@;'; + put 'put ''MiYxNSkpXSk+Pj44XlhbMjU1JihNdF4oMTI4fFl0Pj42JjYzKSldKT4+PjheWFsyNTUmKE10XigxMjh8NjMmWXQpKV07cmV0dXJuLTFeTXR9fSh3dD17fSk7dmFyIEF0LHZ0PWZ1bmN0aW9uKCl7dmFyIFllLHJlPXt9O2Z1bmN0aW9uIHdlKGxyKXtpZigiLyI9PWxyLmNoYXJBdChsci5sZW5n''@;'; + put 'put ''dGgtMSkpcmV0dXJuLTE9PT1sci5zbGljZSgwLC0xKS5pbmRleE9mKCIvIik/bHI6d2UobHIuc2xpY2UoMCwtMSkpO3ZhciBCcj1sci5sYXN0SW5kZXhPZigiLyIpO3JldHVybi0xPT09QnI/bHI6bHIuc2xpY2UoMCxCcisxKX1mdW5jdGlvbiB4ZShscil7aWYoIi8iPT1sci5jaGFyQXQobHIu''@;'; + put 'put ''bGVuZ3RoLTEpKXJldHVybiB4ZShsci5zbGljZSgwLC0xKSk7dmFyIEJyPWxyLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuLTE9PT1Ccj9scjpsci5zbGljZShCcisxKX1mdW5jdGlvbiBGZShscixCcil7InN0cmluZyI9PXR5cGVvZiBCciYmKEJyPW5ldyBEYXRlKEJyKSk7dmFyIGRyPUJyLmdl''@;'; + put 'put ''dEhvdXJzKCk7ZHI9KGRyPWRyPDw2fEJyLmdldE1pbnV0ZXMoKSk8PDV8QnIuZ2V0U2Vjb25kcygpPj4+MSxsci53cml0ZV9zaGlmdCgyLGRyKTt2YXIgR249QnIuZ2V0RnVsbFllYXIoKS0xOTgwO0duPShHbj1Hbjw8NHxCci5nZXRNb250aCgpKzEpPDw1fEJyLmdldERhdGUoKSxsci53cml0''@;'; + put 'put ''ZV9zaGlmdCgyLEduKX1mdW5jdGlvbiBqZShscil7S2wobHIsMCk7Zm9yKHZhciBCcj17fSxkcj0wO2xyLmw8PWxyLmxlbmd0aC00Oyl7dmFyIEduPWxyLnJlYWRfc2hpZnQoMiksJG49bHIucmVhZF9zaGlmdCgyKSxicj1sci5sKyRuLFdyPXt9OzIxNTg5PT09R24mJigxJihkcj1sci5yZWFk''@;'; + put 'put ''X3NoaWZ0KDEpKSYmKFdyLm10aW1lPWxyLnJlYWRfc2hpZnQoNCkpLCRuPjUmJigyJmRyJiYoV3IuYXRpbWU9bHIucmVhZF9zaGlmdCg0KSksNCZkciYmKFdyLmN0aW1lPWxyLnJlYWRfc2hpZnQoNCkpKSxXci5tdGltZSYmKFdyLm10PW5ldyBEYXRlKDFlMypXci5tdGltZSkpKSxsci5sPWJy''@;'; + put 'put ''LEJyW0duXT1Xcn1yZXR1cm4gQnJ9ZnVuY3Rpb24gTXQoKXtyZXR1cm4gWWV8fChZZT1MKDc4NzczKSl9ZnVuY3Rpb24geHQobHIsQnIpe2lmKDgwPT1sclswXSYmNzU9PWxyWzFdKXJldHVybiBwMChscixCcik7aWYobHIubGVuZ3RoPDUxMil0aHJvdyBuZXcgRXJyb3IoIkNGQiBmaWxlIHNp''@;'; + put 'put ''emUgIitsci5sZW5ndGgrIiA8IDUxMiIpO3ZhciBkciwkbixicixXcix1aSxJaSxHbj01MTIsdTA9W10sWmk9bHIuc2xpY2UoMCw1MTIpO0tsKFppLDApO3ZhciBKMD1mdW5jdGlvbiBSdChscil7aWYoODA9PWxyW2xyLmxdJiY3NT09bHJbbHIubCsxXSlyZXR1cm5bMCwwXTtsci5jaGsoZGks''@;'; + put 'put ''IkhlYWRlciBTaWduYXR1cmU6ICIpLGxyLmwrPTE2O3ZhciBCcj1sci5yZWFkX3NoaWZ0KDIsInUiKTtyZXR1cm5bbHIucmVhZF9zaGlmdCgyLCJ1IiksQnJdfShaaSk7c3dpdGNoKGRyPUowWzBdKXtjYXNlIDM6R249NTEyO2JyZWFrO2Nhc2UgNDpHbj00MDk2O2JyZWFrO2Nhc2UgMDppZigw''@;'; + put 'put ''PT1KMFsxXSlyZXR1cm4gcDAobHIsQnIpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJNYWpvciBWZXJzaW9uOiBFeHBlY3RlZCAzIG9yIDQgc2F3ICIrZHIpfTUxMiE9PUduJiZLbChaaT1sci5zbGljZSgwLEduKSwyOCk7dmFyIEkwPWxyLnNsaWNlKDAsR24pOyFmdW5jdGlvbiBZdChscixC''@;'; + put 'put ''cil7dmFyIGRyO3N3aXRjaChsci5sKz0yLGRyPWxyLnJlYWRfc2hpZnQoMikpe2Nhc2UgOTppZigzIT1Ccil0aHJvdyBuZXcgRXJyb3IoIlNlY3RvciBTaGlmdDogRXhwZWN0ZWQgOSBzYXcgIitkcik7YnJlYWs7Y2FzZSAxMjppZig0IT1Ccil0aHJvdyBuZXcgRXJyb3IoIlNlY3RvciBTaGlm''@;'; + put 'put ''dDogRXhwZWN0ZWQgMTIgc2F3ICIrZHIpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJTZWN0b3IgU2hpZnQ6IEV4cGVjdGVkIDkgb3IgMTIgc2F3ICIrZHIpfWxyLmNoaygiMDYwMCIsIk1pbmkgU2VjdG9yIFNoaWZ0OiAiKSxsci5jaGsoIjAwMDAwMDAwMDAwMCIsIlJlc2VydmVk''@;'; + put 'put ''OiAiKX0oWmksZHIpO3ZhciBlYT1aaS5yZWFkX3NoaWZ0KDQsImkiKTtpZigzPT09ZHImJjAhPT1lYSl0aHJvdyBuZXcgRXJyb3IoIiMgRGlyZWN0b3J5IFNlY3RvcnM6IEV4cGVjdGVkIDAgc2F3ICIrZWEpO1ppLmwrPTQsV3I9WmkucmVhZF9zaGlmdCg0LCJpIiksWmkubCs9NCxaaS5jaGso''@;'; + put 'put ''IjAwMTAwMDAwIiwiTWluaSBTdHJlYW0gQ3V0b2ZmIFNpemU6ICIpLHVpPVppLnJlYWRfc2hpZnQoNCwiaSIpLCRuPVppLnJlYWRfc2hpZnQoNCwiaSIpLElpPVppLnJlYWRfc2hpZnQoNCwiaSIpLGJyPVppLnJlYWRfc2hpZnQoNCwiaSIpO2Zvcih2YXIgWW89LTEseW89MDt5bzwxMDkmJiEo''@;'; + put 'put ''KFlvPVppLnJlYWRfc2hpZnQoNCwiaSIpKTwwKTsrK3lvKXUwW3lvXT1Zbzt2YXIgJGE9ZnVuY3Rpb24gbm4obHIsQnIpe2Zvcih2YXIgZHI9TWF0aC5jZWlsKGxyLmxlbmd0aC9CciktMSxHbj1bXSwkbj0xOyRuPGRyOysrJG4pR25bJG4tMV09bHIuc2xpY2UoJG4qQnIsKCRuKzEpKkJyKTty''@;'; + put 'put ''ZXR1cm4gR25bZHItMV09bHIuc2xpY2UoZHIqQnIpLEdufShscixHbik7enQoSWksYnIsJGEsR24sdTApO3ZhciBWcz1mdW5jdGlvbiBUbihscixCcixkcixHbil7dmFyICRuPWxyLmxlbmd0aCxicj1bXSxXcj1bXSx1aT1bXSxJaT1bXSx1MD1Hbi0xLFppPTAsSjA9MCxJMD0wLGVhPTA7Zm9y''@;'; + put 'put ''KFppPTA7Wmk8JG47KytaaSlpZih1aT1bXSwoSTA9WmkrQnIpPj0kbiYmKEkwLT0kbiksIVdyW0kwXSl7SWk9W107dmFyIFlvPVtdO2ZvcihKMD1JMDtKMD49MDspe1lvW0owXT0hMCxXcltKMF09ITAsdWlbdWkubGVuZ3RoXT1KMCxJaS5wdXNoKGxyW0owXSk7dmFyIHlvPWRyW01hdGguZmxv''@;'; + put 'put ''b3IoNCpKMC9HbildO2lmKEduPDQrKGVhPTQqSjAmdTApKXRocm93IG5ldyBFcnJvcigiRkFUIGJvdW5kYXJ5IGNyb3NzZWQ6ICIrSjArIiA0ICIrR24pO2lmKCFsclt5b118fFlvW0owPU5jKGxyW3lvXSxlYSldKWJyZWFrfWJyW0kwXT17bm9kZXM6dWksZGF0YTp2bihbSWldKX19cmV0dXJu''@;'; + put 'put ''IGJyfSgkYSxXcix1MCxHbik7VnNbV3JdLm5hbWU9IiFEaXJlY3RvcnkiLCRuPjAmJnVpIT09Y3ImJihWc1t1aV0ubmFtZT0iIU1pbmlGQVQiKSxWc1t1MFswXV0ubmFtZT0iIUZBVCIsVnMuZmF0X2FkZHJzPXUwLFZzLnNzej1Hbjt2YXIgT3U9W10sZHM9W10seXM9W107KGZ1bmN0aW9uIE9u''@;'; + put 'put ''KGxyLEJyLGRyLEduLCRuLGJyLFdyLHVpKXtmb3IodmFyIGVhLElpPTAsdTA9R24ubGVuZ3RoPzI6MCxaaT1Ccltscl0uZGF0YSxKMD0wLEkwPTA7SjA8WmkubGVuZ3RoO0owKz0xMjgpe3ZhciBZbz1aaS5zbGljZShKMCxKMCsxMjgpO0tsKFlvLDY0KSxJMD1Zby5yZWFkX3NoaWZ0KDIpLGVh''@;'; + put 'put ''PWdjKFlvLDAsSTAtdTApLEduLnB1c2goZWEpO3ZhciB5bz17bmFtZTplYSx0eXBlOllvLnJlYWRfc2hpZnQoMSksY29sb3I6WW8ucmVhZF9zaGlmdCgxKSxMOllvLnJlYWRfc2hpZnQoNCwiaSIpLFI6WW8ucmVhZF9zaGlmdCg0LCJpIiksQzpZby5yZWFkX3NoaWZ0KDQsImkiKSxjbHNpZDpZ''@;'; + put 'put ''by5yZWFkX3NoaWZ0KDE2KSxzdGF0ZTpZby5yZWFkX3NoaWZ0KDQsImkiKSxzdGFydDowLHNpemU6MH07MCE9PVlvLnJlYWRfc2hpZnQoMikrWW8ucmVhZF9zaGlmdCgyKStZby5yZWFkX3NoaWZ0KDIpK1lvLnJlYWRfc2hpZnQoMikmJih5by5jdD1XbihZbyxZby5sLTgpKSwwIT09WW8ucmVh''@;'; + put 'put ''ZF9zaGlmdCgyKStZby5yZWFkX3NoaWZ0KDIpK1lvLnJlYWRfc2hpZnQoMikrWW8ucmVhZF9zaGlmdCgyKSYmKHlvLm10PVduKFlvLFlvLmwtOCkpLHlvLnN0YXJ0PVlvLnJlYWRfc2hpZnQoNCwiaSIpLHlvLnNpemU9WW8ucmVhZF9zaGlmdCg0LCJpIikseW8uc2l6ZTwwJiZ5by5zdGFydDww''@;'; + put 'put ''JiYoeW8uc2l6ZT15by50eXBlPTAseW8uc3RhcnQ9Y3IseW8ubmFtZT0iIiksNT09PXlvLnR5cGU/KElpPXlvLnN0YXJ0LCRuPjAmJklpIT09Y3ImJihCcltJaV0ubmFtZT0iIVN0cmVhbURhdGEiKSk6eW8uc2l6ZT49NDA5Nj8oeW8uc3RvcmFnZT0iZmF0Iix2b2lkIDA9PT1Cclt5by5zdGFy''@;'; + put 'put ''dF0mJihCclt5by5zdGFydF09UG4oZHIseW8uc3RhcnQsQnIuZmF0X2FkZHJzLEJyLnNzeikpLEJyW3lvLnN0YXJ0XS5uYW1lPXlvLm5hbWUseW8uY29udGVudD1Cclt5by5zdGFydF0uZGF0YS5zbGljZSgwLHlvLnNpemUpKTooeW8uc3RvcmFnZT0ibWluaWZhdCIseW8uc2l6ZTwwP3lvLnNp''@;'; + put 'put ''emU9MDpJaSE9PWNyJiZ5by5zdGFydCE9PWNyJiZCcltJaV0mJih5by5jb250ZW50PUR0KHlvLEJyW0lpXS5kYXRhLChCclt1aV18fHt9KS5kYXRhKSkpLHlvLmNvbnRlbnQmJktsKHlvLmNvbnRlbnQsMCksYnJbZWFdPXlvLFdyLnB1c2goeW8pfX0pKFdyLFZzLCRhLE91LCRuLHt9LGRzLHVp''@;'; + put 'put ''KSxmdW5jdGlvbiBDbihscixCcixkcil7Zm9yKHZhciBHbj0wLCRuPTAsYnI9MCxXcj0wLHVpPTAsSWk9ZHIubGVuZ3RoLHUwPVtdLFppPVtdO0duPElpOysrR24pdTBbR25dPVppW0duXT1HbixCcltHbl09ZHJbR25dO2Zvcig7dWk8WmkubGVuZ3RoOysrdWkpJG49bHJbR249WmlbdWldXS5M''@;'; + put 'put ''LGJyPWxyW0duXS5SLFdyPWxyW0duXS5DLHUwW0duXT09PUduJiYoLTEhPT0kbiYmdTBbJG5dIT09JG4mJih1MFtHbl09dTBbJG5dKSwtMSE9PWJyJiZ1MFticl0hPT1iciYmKHUwW0duXT11MFticl0pKSwtMSE9PVdyJiYodTBbV3JdPUduKSwtMSE9PSRuJiZHbiE9dTBbR25dJiYodTBbJG5d''@;'; + put 'put ''PXUwW0duXSxaaS5sYXN0SW5kZXhPZigkbik8dWkmJlppLnB1c2goJG4pKSwtMSE9PWJyJiZHbiE9dTBbR25dJiYodTBbYnJdPXUwW0duXSxaaS5sYXN0SW5kZXhPZihicik8dWkmJlppLnB1c2goYnIpKTtmb3IoR249MTtHbjxJaTsrK0duKXUwW0duXT09PUduJiYoLTEhPT1iciYmdTBbYnJd''@;'; + put 'put ''IT09YnI/dTBbR25dPXUwW2JyXTotMSE9PSRuJiZ1MFskbl0hPT0kbiYmKHUwW0duXT11MFskbl0pKTtmb3IoR249MTtHbjxJaTsrK0duKWlmKDAhPT1scltHbl0udHlwZSl7aWYoKHVpPUduKSE9dTBbdWldKWRve0JyW0duXT1Cclt1aT11MFt1aV1dKyIvIitCcltHbl19d2hpbGUoMCE9PXVp''@;'; + put 'put ''JiYtMSE9PXUwW3VpXSYmdWkhPXUwW3VpXSk7dTBbR25dPS0xfWZvcihCclswXSs9Ii8iLEduPTE7R248SWk7KytHbikyIT09bHJbR25dLnR5cGUmJihCcltHbl0rPSIvIil9KGRzLHlzLE91KSxPdS5zaGlmdCgpO3ZhciBNcz17RmlsZUluZGV4OmRzLEZ1bGxQYXRoczp5c307cmV0dXJuIEJy''@;'; + put 'put ''JiZCci5yYXcmJihNcy5yYXc9e2hlYWRlcjpJMCxzZWN0b3JzOiRhfSksTXN9ZnVuY3Rpb24gRHQobHIsQnIsZHIpe2Zvcih2YXIgJG49bHIuc2l6ZSxicj1bXSxXcj1sci5zdGFydDtkciYmJG4+MCYmV3I+PTA7KWJyLnB1c2goQnIuc2xpY2UoV3Iqb2ksV3Iqb2krb2kpKSwkbi09b2ksV3I9''@;'; + put 'put ''TmMoZHIsNCpXcik7cmV0dXJuIDA9PT1ici5sZW5ndGg/UmkoMCk6Vihicikuc2xpY2UoMCxsci5zaXplKX1mdW5jdGlvbiB6dChscixCcixkcixHbiwkbil7dmFyIGJyPWNyO2lmKGxyPT09Y3Ipe2lmKDAhPT1Ccil0aHJvdyBuZXcgRXJyb3IoIkRJRkFUIGNoYWluIHNob3J0ZXIgdGhhbiBl''@;'; + put 'put ''eHBlY3RlZCIpfWVsc2UgaWYoLTEhPT1scil7dmFyIFdyPWRyW2xyXSx1aT0oR24+Pj4yKS0xO2lmKCFXcilyZXR1cm47Zm9yKHZhciBJaT0wO0lpPHVpJiYoYnI9TmMoV3IsNCpJaSkpIT09Y3I7KytJaSkkbi5wdXNoKGJyKTt6dChOYyhXcixHbi00KSxCci0xLGRyLEduLCRuKX19ZnVuY3Rp''@;'; + put 'put ''b24gUG4obHIsQnIsZHIsR24sJG4pe3ZhciBicj1bXSxXcj1bXTskbnx8KCRuPVtdKTt2YXIgdWk9R24tMSxJaT0wLHUwPTA7Zm9yKElpPUJyO0lpPj0wOyl7JG5bSWldPSEwLGJyW2JyLmxlbmd0aF09SWksV3IucHVzaChscltJaV0pO3ZhciBaaT1kcltNYXRoLmZsb29yKDQqSWkvR24pXTtp''@;'; + put 'put ''ZihHbjw0Kyh1MD00KklpJnVpKSl0aHJvdyBuZXcgRXJyb3IoIkZBVCBib3VuZGFyeSBjcm9zc2VkOiAiK0lpKyIgNCAiK0duKTtpZighbHJbWmldKWJyZWFrO0lpPU5jKGxyW1ppXSx1MCl9cmV0dXJue25vZGVzOmJyLGRhdGE6dm4oW1dyXSl9fWZ1bmN0aW9uIFduKGxyLEJyKXtyZXR1cm4g''@;'; + put 'put ''bmV3IERhdGUoMWUzKihZbChscixCcis0KS8xZTcqTWF0aC5wb3coMiwzMikrWWwobHIsQnIpLzFlNy0xMTY0NDQ3MzYwMCkpfWZ1bmN0aW9uIHlyKGxyLEJyKXt2YXIgZHI9QnJ8fHt9LEduPWRyLnJvb3R8fCJSb290IEVudHJ5IjtpZihsci5GdWxsUGF0aHN8fChsci5GdWxsUGF0aHM9W10p''@;'; + put 'put ''LGxyLkZpbGVJbmRleHx8KGxyLkZpbGVJbmRleD1bXSksbHIuRnVsbFBhdGhzLmxlbmd0aCE9PWxyLkZpbGVJbmRleC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJpbmNvbnNpc3RlbnQgQ0ZCIHN0cnVjdHVyZSIpOzA9PT1sci5GdWxsUGF0aHMubGVuZ3RoJiYobHIuRnVsbFBhdGhzWzBdPUdu''@;'; + put 'put ''KyIvIixsci5GaWxlSW5kZXhbMF09e25hbWU6R24sdHlwZTo1fSksZHIuQ0xTSUQmJihsci5GaWxlSW5kZXhbMF0uY2xzaWQ9ZHIuQ0xTSUQpLGZ1bmN0aW9uIGFyKGxyKXt2YXIgQnI9Ilx4MDFTaDMzdEo1IjtpZighdnQuZmluZChsciwiLyIrQnIpKXt2YXIgZHI9UmkoNCk7ZHJbMF09NTUs''@;'; + put 'put ''ZHJbMV09ZHJbM109NTAsZHJbMl09NTQsbHIuRmlsZUluZGV4LnB1c2goe25hbWU6QnIsdHlwZToyLGNvbnRlbnQ6ZHIsc2l6ZTo0LEw6NjksUjo2OSxDOjY5fSksbHIuRnVsbFBhdGhzLnB1c2gobHIuRnVsbFBhdGhzWzBdK0JyKSxHcihscil9fShscil9ZnVuY3Rpb24gR3IobHIsQnIpe3ly''@;'; + put 'put ''KGxyKTtmb3IodmFyIGRyPSExLEduPSExLCRuPWxyLkZ1bGxQYXRocy5sZW5ndGgtMTskbj49MDstLSRuKXt2YXIgYnI9bHIuRmlsZUluZGV4WyRuXTtzd2l0Y2goYnIudHlwZSl7Y2FzZSAwOkduP2RyPSEwOihsci5GaWxlSW5kZXgucG9wKCksbHIuRnVsbFBhdGhzLnBvcCgpKTticmVhaztj''@;'; + put 'put ''YXNlIDE6Y2FzZSAyOmNhc2UgNTpHbj0hMCxpc05hTihici5SKmJyLkwqYnIuQykmJihkcj0hMCksYnIuUj4tMSYmYnIuTD4tMSYmYnIuUj09YnIuTCYmKGRyPSEwKTticmVhaztkZWZhdWx0OmRyPSEwfX1pZihkcnx8QnIpe3ZhciBXcj1uZXcgRGF0ZSgxOTg3LDEsMTkpLHVpPTAsSWk9W107''@;'; + put 'put ''Zm9yKCRuPTA7JG48bHIuRnVsbFBhdGhzLmxlbmd0aDsrKyRuKTAhPT1sci5GaWxlSW5kZXhbJG5dLnR5cGUmJklpLnB1c2goW2xyLkZ1bGxQYXRoc1skbl0sbHIuRmlsZUluZGV4WyRuXV0pO2Zvcigkbj0wOyRuPElpLmxlbmd0aDsrKyRuKXt2YXIgdTA9d2UoSWlbJG5dWzBdKTtmb3IoR249''@;'; + put 'put ''ITEsdWk9MDt1aTxJaS5sZW5ndGg7Kyt1aSlJaVt1aV1bMF09PT11MCYmKEduPSEwKTtHbnx8SWkucHVzaChbdTAse25hbWU6eGUodTApLnJlcGxhY2UoIi8iLCIiKSx0eXBlOjEsY2xzaWQ6VWksY3Q6V3IsbXQ6V3IsY29udGVudDpudWxsfV0pfWZvcihJaS5zb3J0KGZ1bmN0aW9uKEkwLGVh''@;'; + put 'put ''KXtyZXR1cm4gZnVuY3Rpb24gWChscixCcil7Zm9yKHZhciBkcj1sci5zcGxpdCgiLyIpLEduPUJyLnNwbGl0KCIvIiksJG49MCxicj0wLFdyPU1hdGgubWluKGRyLmxlbmd0aCxHbi5sZW5ndGgpOyRuPFdyOysrJG4pe2lmKGJyPWRyWyRuXS5sZW5ndGgtR25bJG5dLmxlbmd0aClyZXR1cm4g''@;'; + put 'put ''YnI7aWYoZHJbJG5dIT1Hblskbl0pcmV0dXJuIGRyWyRuXTxHblskbl0/LTE6MX1yZXR1cm4gZHIubGVuZ3RoLUduLmxlbmd0aH0oSTBbMF0sZWFbMF0pfSksbHIuRnVsbFBhdGhzPVtdLGxyLkZpbGVJbmRleD1bXSwkbj0wOyRuPElpLmxlbmd0aDsrKyRuKWxyLkZ1bGxQYXRoc1skbl09SWlb''@;'; + put 'put ''JG5dWzBdLGxyLkZpbGVJbmRleFskbl09SWlbJG5dWzFdO2Zvcigkbj0wOyRuPElpLmxlbmd0aDsrKyRuKXt2YXIgWmk9bHIuRmlsZUluZGV4WyRuXSxKMD1sci5GdWxsUGF0aHNbJG5dO2lmKFppLm5hbWU9eGUoSjApLnJlcGxhY2UoIi8iLCIiKSxaaS5MPVppLlI9WmkuQz0tKFppLmNvbG9y''@;'; + put 'put ''PTEpLFppLnNpemU9WmkuY29udGVudD9aaS5jb250ZW50Lmxlbmd0aDowLFppLnN0YXJ0PTAsWmkuY2xzaWQ9WmkuY2xzaWR8fFVpLDA9PT0kbilaaS5DPUlpLmxlbmd0aD4xPzE6LTEsWmkuc2l6ZT0wLFppLnR5cGU9NTtlbHNlIGlmKCIvIj09SjAuc2xpY2UoLTEpKXtmb3IodWk9JG4rMTt1''@;'; + put 'put ''aTxJaS5sZW5ndGgmJndlKGxyLkZ1bGxQYXRoc1t1aV0pIT1KMDsrK3VpKTtmb3IoWmkuQz11aT49SWkubGVuZ3RoPy0xOnVpLHVpPSRuKzE7dWk8SWkubGVuZ3RoJiZ3ZShsci5GdWxsUGF0aHNbdWldKSE9d2UoSjApOysrdWkpO1ppLlI9dWk+PUlpLmxlbmd0aD8tMTp1aSxaaS50eXBlPTF9''@;'; + put 'put ''ZWxzZSB3ZShsci5GdWxsUGF0aHNbJG4rMV18fCIiKT09d2UoSjApJiYoWmkuUj0kbisxKSxaaS50eXBlPTJ9fX1mdW5jdGlvbiB6cihscixCcil7dmFyIGRyPUJyfHx7fTtpZihHcihsciksInppcCI9PWRyLmZpbGVUeXBlKXJldHVybiBmdW5jdGlvbiBBbChscixCcil7dmFyIGRyPUJyfHx7''@;'; + put 'put ''fSxHbj1bXSwkbj1bXSxicj1SaSgxKSxXcj1kci5jb21wcmVzc2lvbj84OjAsdTA9MCxaaT0wLEowPTAsSTA9MCxlYT1sci5GdWxsUGF0aHNbMF0sWW89ZWEseW89bHIuRmlsZUluZGV4WzBdLCRhPVtdLFZzPTA7Zm9yKHUwPTE7dTA8bHIuRnVsbFBhdGhzLmxlbmd0aDsrK3UwKWlmKFlvPWxy''@;'; + put 'put ''LkZ1bGxQYXRoc1t1MF0uc2xpY2UoZWEubGVuZ3RoKSwoeW89bHIuRmlsZUluZGV4W3UwXSkuc2l6ZSYmeW8uY29udGVudCYmIlx4MDFTaDMzdEo1IiE9WW8pe3ZhciBFYz1KMCxPdT1SaShZby5sZW5ndGgpO2ZvcihaaT0wO1ppPFlvLmxlbmd0aDsrK1ppKU91LndyaXRlX3NoaWZ0KDEsMTI3''@;'; + put 'put ''JllvLmNoYXJDb2RlQXQoWmkpKTtPdT1PdS5zbGljZSgwLE91LmwpLCRhW0kwXT13dC5idWYoeW8uY29udGVudCwwKTt2YXIgZHM9eW8uY29udGVudDs4PT1XciYmKGRzPWtpKGRzKSksKGJyPVJpKDMwKSkud3JpdGVfc2hpZnQoNCw2NzMyNDc1MiksYnIud3JpdGVfc2hpZnQoMiwyMCksYnIu''@;'; + put 'put ''d3JpdGVfc2hpZnQoMiwwKSxici53cml0ZV9zaGlmdCgyLFdyKSx5by5tdD9GZShicix5by5tdCk6YnIud3JpdGVfc2hpZnQoNCwwKSxici53cml0ZV9zaGlmdCgtNCwkYVtJMF0pLGJyLndyaXRlX3NoaWZ0KDQsZHMubGVuZ3RoKSxici53cml0ZV9zaGlmdCg0LHlvLmNvbnRlbnQubGVuZ3Ro''@;'; + put 'put ''KSxici53cml0ZV9zaGlmdCgyLE91Lmxlbmd0aCksYnIud3JpdGVfc2hpZnQoMiwwKSxKMCs9YnIubGVuZ3RoLEduLnB1c2goYnIpLEowKz1PdS5sZW5ndGgsR24ucHVzaChPdSksSjArPWRzLmxlbmd0aCxHbi5wdXNoKGRzKSwoYnI9UmkoNDYpKS53cml0ZV9zaGlmdCg0LDMzNjM5MjQ4KSxi''@;'; + put 'put ''ci53cml0ZV9zaGlmdCgyLDApLGJyLndyaXRlX3NoaWZ0KDIsMjApLGJyLndyaXRlX3NoaWZ0KDIsMCksYnIud3JpdGVfc2hpZnQoMixXciksYnIud3JpdGVfc2hpZnQoNCwwKSxici53cml0ZV9zaGlmdCgtNCwkYVtJMF0pLGJyLndyaXRlX3NoaWZ0KDQsZHMubGVuZ3RoKSxici53cml0ZV9z''@;'; + put 'put ''aGlmdCg0LHlvLmNvbnRlbnQubGVuZ3RoKSxici53cml0ZV9zaGlmdCgyLE91Lmxlbmd0aCksYnIud3JpdGVfc2hpZnQoMiwwKSxici53cml0ZV9zaGlmdCgyLDApLGJyLndyaXRlX3NoaWZ0KDIsMCksYnIud3JpdGVfc2hpZnQoMiwwKSxici53cml0ZV9zaGlmdCg0LDApLGJyLndyaXRlX3No''@;'; + put 'put ''aWZ0KDQsRWMpLFZzKz1ici5sLCRuLnB1c2goYnIpLFZzKz1PdS5sZW5ndGgsJG4ucHVzaChPdSksKytJMH1yZXR1cm4oYnI9UmkoMjIpKS53cml0ZV9zaGlmdCg0LDEwMTAxMDI1NiksYnIud3JpdGVfc2hpZnQoMiwwKSxici53cml0ZV9zaGlmdCgyLDApLGJyLndyaXRlX3NoaWZ0KDIsSTAp''@;'; + put 'put ''LGJyLndyaXRlX3NoaWZ0KDIsSTApLGJyLndyaXRlX3NoaWZ0KDQsVnMpLGJyLndyaXRlX3NoaWZ0KDQsSjApLGJyLndyaXRlX3NoaWZ0KDIsMCksVihbVihHbiksVigkbiksYnJdKX0obHIsZHIpO3ZhciBHbj1mdW5jdGlvbihlYSl7Zm9yKHZhciBZbz0wLHlvPTAsJGE9MDskYTxlYS5GaWxl''@;'; + put 'put ''SW5kZXgubGVuZ3RoOysrJGEpe3ZhciBWcz1lYS5GaWxlSW5kZXhbJGFdO2lmKFZzLmNvbnRlbnQpe3ZhciBFYz1Wcy5jb250ZW50Lmxlbmd0aDtFYz4wJiYoRWM8NDA5Nj9Zbys9RWMrNjM+PjY6eW8rPUVjKzUxMT4+OSl9fWZvcih2YXIgT3U9ZWEuRnVsbFBhdGhzLmxlbmd0aCszPj4yLHlz''@;'; + put 'put ''PVlvKzEyNz4+NyxNcz0oWW8rNz4+MykreW8rT3UreXMsazE9TXMrMTI3Pj43LHI3PWsxPD0xMDk/MDpNYXRoLmNlaWwoKGsxLTEwOSkvMTI3KTtNcytrMStyNysxMjc+Pjc+azE7KXI3PSsrazE8PTEwOT8wOk1hdGguY2VpbCgoazEtMTA5KS8xMjcpO3ZhciB6ZD1bMSxyNyxrMSx5cyxPdSx5''@;'; + put 'put ''byxZbywwXTtyZXR1cm4gZWEuRmlsZUluZGV4WzBdLnNpemU9WW88PDYsemRbN109KGVhLkZpbGVJbmRleFswXS5zdGFydD16ZFswXSt6ZFsxXSt6ZFsyXSt6ZFszXSt6ZFs0XSt6ZFs1XSkrKHpkWzZdKzc+PjMpLHpkfShsciksJG49UmkoR25bN108PDkpLGJyPTAsV3I9MDtmb3IoYnI9MDti''@;'; + put 'put ''cjw4OysrYnIpJG4ud3JpdGVfc2hpZnQoMSx2MFticl0pO2Zvcihicj0wO2JyPDg7Kyticikkbi53cml0ZV9zaGlmdCgyLDApO2Zvcigkbi53cml0ZV9zaGlmdCgyLDYyKSwkbi53cml0ZV9zaGlmdCgyLDMpLCRuLndyaXRlX3NoaWZ0KDIsNjU1MzQpLCRuLndyaXRlX3NoaWZ0KDIsOSksJG4u''@;'; + put 'put ''d3JpdGVfc2hpZnQoMiw2KSxicj0wO2JyPDM7Kyticikkbi53cml0ZV9zaGlmdCgyLDApO2Zvcigkbi53cml0ZV9zaGlmdCg0LDApLCRuLndyaXRlX3NoaWZ0KDQsR25bMl0pLCRuLndyaXRlX3NoaWZ0KDQsR25bMF0rR25bMV0rR25bMl0rR25bM10tMSksJG4ud3JpdGVfc2hpZnQoNCwwKSwk''@;'; + put 'put ''bi53cml0ZV9zaGlmdCg0LDQwOTYpLCRuLndyaXRlX3NoaWZ0KDQsR25bM10/R25bMF0rR25bMV0rR25bMl0tMTpjciksJG4ud3JpdGVfc2hpZnQoNCxHblszXSksJG4ud3JpdGVfc2hpZnQoLTQsR25bMV0/R25bMF0tMTpjciksJG4ud3JpdGVfc2hpZnQoNCxHblsxXSksYnI9MDticjwxMDk7''@;'; + put 'put ''Kyticikkbi53cml0ZV9zaGlmdCgtNCxicjxHblsyXT9HblsxXSticjotMSk7aWYoR25bMV0pZm9yKFdyPTA7V3I8R25bMV07KytXcil7Zm9yKDticjwyMzYrMTI3KldyOysrYnIpJG4ud3JpdGVfc2hpZnQoLTQsYnI8R25bMl0/R25bMV0rYnI6LTEpOyRuLndyaXRlX3NoaWZ0KC00LFdyPT09''@;'; + put 'put ''R25bMV0tMT9jcjpXcisxKX12YXIgdWk9ZnVuY3Rpb24oZWEpe2ZvcihXcis9ZWE7YnI8V3ItMTsrK2JyKSRuLndyaXRlX3NoaWZ0KC00LGJyKzEpO2VhJiYoKyticiwkbi53cml0ZV9zaGlmdCgtNCxjcikpfTtmb3IoV3I9YnI9MCxXcis9R25bMV07YnI8V3I7Kyticikkbi53cml0ZV9zaGlm''@;'; + put 'put ''dCgtNCx0by5ESUZTRUNUKTtmb3IoV3IrPUduWzJdO2JyPFdyOysrYnIpJG4ud3JpdGVfc2hpZnQoLTQsdG8uRkFUU0VDVCk7dWkoR25bM10pLHVpKEduWzRdKTtmb3IodmFyIElpPTAsdTA9MCxaaT1sci5GaWxlSW5kZXhbMF07SWk8bHIuRmlsZUluZGV4Lmxlbmd0aDsrK0lpKShaaT1sci5G''@;'; + put 'put ''aWxlSW5kZXhbSWldKS5jb250ZW50JiYhKCh1MD1aaS5jb250ZW50Lmxlbmd0aCk8NDA5NikmJihaaS5zdGFydD1Xcix1aSh1MCs1MTE+PjkpKTtmb3IodWkoR25bNl0rNz4+Myk7NTExJiRuLmw7KSRuLndyaXRlX3NoaWZ0KC00LHRvLkVORE9GQ0hBSU4pO2ZvcihXcj1icj0wLElpPTA7SWk8''@;'; + put 'put ''bHIuRmlsZUluZGV4Lmxlbmd0aDsrK0lpKShaaT1sci5GaWxlSW5kZXhbSWldKS5jb250ZW50JiYodTA9WmkuY29udGVudC5sZW5ndGgpJiYhKHUwPj00MDk2KSYmKFppLnN0YXJ0PVdyLHVpKHUwKzYzPj42KSk7Zm9yKDs1MTEmJG4ubDspJG4ud3JpdGVfc2hpZnQoLTQsdG8uRU5ET0ZDSEFJ''@;'; + put 'put ''Tik7Zm9yKGJyPTA7YnI8R25bNF08PDI7Kyticil7dmFyIEowPWxyLkZ1bGxQYXRoc1ticl07aWYoSjAmJjAhPT1KMC5sZW5ndGgpe1ppPWxyLkZpbGVJbmRleFticl0sMD09PWJyJiYoWmkuc3RhcnQ9Wmkuc2l6ZT9aaS5zdGFydC0xOmNyKTt2YXIgSTA9MD09PWJyJiZkci5yb290fHxaaS5u''@;'; + put 'put ''YW1lO2lmKHUwPTIqKEkwLmxlbmd0aCsxKSwkbi53cml0ZV9zaGlmdCg2NCxJMCwidXRmMTZsZSIpLCRuLndyaXRlX3NoaWZ0KDIsdTApLCRuLndyaXRlX3NoaWZ0KDEsWmkudHlwZSksJG4ud3JpdGVfc2hpZnQoMSxaaS5jb2xvciksJG4ud3JpdGVfc2hpZnQoLTQsWmkuTCksJG4ud3JpdGVf''@;'; + put 'put ''c2hpZnQoLTQsWmkuUiksJG4ud3JpdGVfc2hpZnQoLTQsWmkuQyksWmkuY2xzaWQpJG4ud3JpdGVfc2hpZnQoMTYsWmkuY2xzaWQsImhleCIpO2Vsc2UgZm9yKElpPTA7SWk8NDsrK0lpKSRuLndyaXRlX3NoaWZ0KDQsMCk7JG4ud3JpdGVfc2hpZnQoNCxaaS5zdGF0ZXx8MCksJG4ud3JpdGVf''@;'; + put 'put ''c2hpZnQoNCwwKSwkbi53cml0ZV9zaGlmdCg0LDApLCRuLndyaXRlX3NoaWZ0KDQsMCksJG4ud3JpdGVfc2hpZnQoNCwwKSwkbi53cml0ZV9zaGlmdCg0LFppLnN0YXJ0KSwkbi53cml0ZV9zaGlmdCg0LFppLnNpemUpLCRuLndyaXRlX3NoaWZ0KDQsMCl9ZWxzZXtmb3IoSWk9MDtJaTwxNzsr''@;'; + put 'put ''K0lpKSRuLndyaXRlX3NoaWZ0KDQsMCk7Zm9yKElpPTA7SWk8MzsrK0lpKSRuLndyaXRlX3NoaWZ0KDQsLTEpO2ZvcihJaT0wO0lpPDEyOysrSWkpJG4ud3JpdGVfc2hpZnQoNCwwKX19Zm9yKGJyPTE7YnI8bHIuRmlsZUluZGV4Lmxlbmd0aDsrK2JyKWlmKChaaT1sci5GaWxlSW5kZXhbYnJd''@;'; + put 'put ''KS5zaXplPj00MDk2KXtmb3IoJG4ubD1aaS5zdGFydCsxPDw5LElpPTA7SWk8Wmkuc2l6ZTsrK0lpKSRuLndyaXRlX3NoaWZ0KDEsWmkuY29udGVudFtJaV0pO2Zvcig7NTExJklpOysrSWkpJG4ud3JpdGVfc2hpZnQoMSwwKX1mb3IoYnI9MTticjxsci5GaWxlSW5kZXgubGVuZ3RoOysrYnIp''@;'; + put 'put ''aWYoKFppPWxyLkZpbGVJbmRleFticl0pLnNpemU+MCYmWmkuc2l6ZTw0MDk2KXtmb3IoSWk9MDtJaTxaaS5zaXplOysrSWkpJG4ud3JpdGVfc2hpZnQoMSxaaS5jb250ZW50W0lpXSk7Zm9yKDs2MyZJaTsrK0lpKSRuLndyaXRlX3NoaWZ0KDEsMCl9Zm9yKDskbi5sPCRuLmxlbmd0aDspJG4u''@;'; + put 'put ''d3JpdGVfc2hpZnQoMSwwKTtyZXR1cm4gJG59cmUudmVyc2lvbj0iMS4xLjQiO3ZhciBFaSxvaT02NCxjcj0tMixkaT0iZDBjZjExZTBhMWIxMWFlMSIsdjA9WzIwOCwyMDcsMTcsMjI0LDE2MSwxNzcsMjYsMjI1XSxVaT0iMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLHRvPXtN''@;'; + put 'put ''QVhSRUdTRUNUOi02LERJRlNFQ1Q6LTQsRkFUU0VDVDotMyxFTkRPRkNIQUlOOmNyLEZSRUVTRUNUOi0xLEhFQURFUl9TSUdOQVRVUkU6ZGksSEVBREVSX01JTk9SX1ZFUlNJT046IjNlMDAiLE1BWFJFR1NJRDotNixOT1NUUkVBTTotMSxIRUFERVJfQ0xTSUQ6VWksRW50cnlUeXBlczpbInVu''@;'; + put 'put ''a25vd24iLCJzdG9yYWdlIiwic3RyZWFtIiwibG9ja2J5dGVzIiwicHJvcGVydHkiLCJyb290Il19O2Z1bmN0aW9uIHdpKGxyKXtmb3IodmFyIEJyPW5ldyBBcnJheShsci5sZW5ndGgpLGRyPTA7ZHI8bHIubGVuZ3RoOysrZHIpQnJbZHJdPVN0cmluZy5mcm9tQ2hhckNvZGUobHJbZHJdKTty''@;'; + put 'put ''ZXR1cm4gQnIuam9pbigiIil9ZnVuY3Rpb24ga2kobHIpe3JldHVybiBFaT9FaS5kZWZsYXRlUmF3U3luYyhscik6bDIobHIpfWZvcih2YXIgbHIsQnIsTjA9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdLHQwPVszLDQsNSw2LDcsOCw5LDEwLDExLDEz''@;'; + put 'put ''LDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4XSxpbz1bMSwyLDMsNCw1LDcsOSwxMywxNywyNSwzMyw0OSw2NSw5NywxMjksMTkzLDI1NywzODUsNTEzLDc2OSwxMDI1LDE1MzcsMjA0OSwzMDczLDQwOTcsNjE0NSw4MTkzLDEy''@;'; + put 'put ''Mjg5LDE2Mzg1LDI0NTc3XSwkMD0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXksTmE9JDA/bmV3IFVpbnQ4QXJyYXkoMjU2KTpbXSxqbz0wO2pvPDI1NjsrK2pvKU5hW2pvXT0odm9pZCAwLDI1NSYoKEJyPTEzOTUzNiYoKGxyPWpvKTw8MXxscjw8MTEpfDU1ODE0NCYobHI8PDV8bHI8''@;'; + put 'put ''PDE1KSk+PjE2fEJyPj44fEJyKSk7ZnVuY3Rpb24gd2EobHIsQnIpe3ZhciBkcj1OYVsyNTUmbHJdO3JldHVybiBCcjw9OD9kcj4+PjgtQnI6KGRyPWRyPDw4fE5hW2xyPj44JjI1NV0sQnI8PTE2P2RyPj4+MTYtQnI6KGRyPWRyPDw4fE5hW2xyPj4xNiYyNTVdKT4+PjI0LUJyKX1mdW5jdGlv''@;'; + put 'put ''biBhbyhscixCcil7dmFyIGRyPTcmQnIsR249QnI+Pj4zO3JldHVybihscltHbl18KGRyPD02PzA6bHJbR24rMV08PDgpKT4+PmRyJjN9ZnVuY3Rpb24geDAobHIsQnIpe3ZhciBkcj03JkJyLEduPUJyPj4+MztyZXR1cm4obHJbR25dfChkcjw9NT8wOmxyW0duKzFdPDw4KSk+Pj5kciY3fWZ1''@;'; + put 'put ''bmN0aW9uIGpyKGxyLEJyKXt2YXIgZHI9NyZCcixHbj1Ccj4+PjM7cmV0dXJuKGxyW0duXXwoZHI8PTM/MDpscltHbisxXTw8OCkpPj4+ZHImMzF9ZnVuY3Rpb24gSGkobHIsQnIpe3ZhciBkcj03JkJyLEduPUJyPj4+MztyZXR1cm4obHJbR25dfChkcjw9MT8wOmxyW0duKzFdPDw4KSk+Pj5k''@;'; + put 'put ''ciYxMjd9ZnVuY3Rpb24gdm8obHIsQnIsZHIpe3ZhciBHbj03JkJyLCRuPUJyPj4+MyxXcj1sclskbl0+Pj5HbjtyZXR1cm4gZHI8OC1Hbnx8KFdyfD1sclskbisxXTw8OC1HbixkcjwxNi1Hbil8fChXcnw9bHJbJG4rMl08PDE2LUduLGRyPDI0LUduKXx8KFdyfD1sclskbiszXTw8MjQtR24p''@;'; + put 'put ''LFdyJigxPDxkciktMX1mdW5jdGlvbiB4byhscixCcil7dmFyIGRyPWxyLmxlbmd0aCxHbj0yKmRyPkJyPzIqZHI6QnIrNSwkbj0wO2lmKGRyPj1CcilyZXR1cm4gbHI7aWYoSWUpe3ZhciBicj1PKEduKTtpZihsci5jb3B5KWxyLmNvcHkoYnIpO2Vsc2UgZm9yKDskbjxsci5sZW5ndGg7Kysk''@;'; + put 'put ''biliclskbl09bHJbJG5dO3JldHVybiBicn1pZigkMCl7dmFyIFdyPW5ldyBVaW50OEFycmF5KEduKTtpZihXci5zZXQpV3Iuc2V0KGxyKTtlbHNlIGZvcig7JG48bHIubGVuZ3RoOysrJG4pV3JbJG5dPWxyWyRuXTtyZXR1cm4gV3J9cmV0dXJuIGxyLmxlbmd0aD1Hbixscn1mdW5jdGlvbiAk''@;'; + put 'put ''aShscil7Zm9yKHZhciBCcj1uZXcgQXJyYXkobHIpLGRyPTA7ZHI8bHI7KytkcilCcltkcl09MDtyZXR1cm4gQnJ9dmFyIGwyPWZ1bmN0aW9uKEJyKXt2YXIgZHI9UmkoNTArTWF0aC5mbG9vcigxLjEqQnIubGVuZ3RoKSksR249ZnVuY3Rpb24oZHIsR24pe2Zvcih2YXIgJG49MDskbjxkci5s''@;'; + put 'put ''ZW5ndGg7KXt2YXIgYnI9TWF0aC5taW4oNjU1MzUsZHIubGVuZ3RoLSRuKTtmb3IoR24ud3JpdGVfc2hpZnQoMSwrKCRuK2JyPT1kci5sZW5ndGgpKSxHbi53cml0ZV9zaGlmdCgyLGJyKSxHbi53cml0ZV9zaGlmdCgyLDY1NTM1Jn5icik7YnItLSA+MDspR25bR24ubCsrXT1kclskbisrXX1y''@;'; + put 'put ''ZXR1cm4gR24ubH0oQnIsZHIpO3JldHVybiBkci5zbGljZSgwLEduKX07ZnVuY3Rpb24gTWMobHIsQnIsZHIpe3ZhciBHbj0xLCRuPTAsYnI9MCxXcj0wLHVpPTAsSWk9bHIubGVuZ3RoLHUwPSQwP25ldyBVaW50MTZBcnJheSgzMik6JGkoMzIpO2Zvcihicj0wO2JyPDMyOysrYnIpdTBbYnJd''@;'; + put 'put ''PTA7Zm9yKGJyPUlpO2JyPGRyOysrYnIpbHJbYnJdPTA7SWk9bHIubGVuZ3RoO3ZhciBaaT0kMD9uZXcgVWludDE2QXJyYXkoSWkpOiRpKElpKTtmb3IoYnI9MDticjxJaTsrK2JyKXUwWyRuPWxyW2JyXV0rKyxHbjwkbiYmKEduPSRuKSxaaVticl09MDtmb3IodTBbMF09MCxicj0xO2JyPD1H''@;'; + put 'put ''bjsrK2JyKXUwW2JyKzE2XT11aT11aSt1MFtici0xXTw8MTtmb3IoYnI9MDticjxJaTsrK2JyKTAhPSh1aT1sclticl0pJiYoWmlbYnJdPXUwW3VpKzE2XSsrKTt2YXIgSjA9MDtmb3IoYnI9MDticjxJaTsrK2JyKWlmKDAhPShKMD1sclticl0pKWZvcih1aT13YShaaVticl0sR24pPj5Hbi1K''@;'; + put 'put ''MCxXcj0oMTw8R24rNC1KMCktMTtXcj49MDstLVdyKUJyW3VpfFdyPDxKMF09MTUmSjB8YnI8PDQ7cmV0dXJuIEdufXZhciBwMj0kMD9uZXcgVWludDE2QXJyYXkoNTEyKTokaSg1MTIpLHJyPSQwP25ldyBVaW50MTZBcnJheSgzMik6JGkoMzIpO2lmKCEkMCl7Zm9yKHZhciBJcj0wO0lyPDUx''@;'; + put 'put ''MjsrK0lyKXAyW0lyXT0wO2ZvcihJcj0wO0lyPDMyOysrSXIpcnJbSXJdPTB9IWZ1bmN0aW9uKCl7Zm9yKHZhciBscj1bXSxCcj0wO0JyPDMyO0JyKyspbHIucHVzaCg1KTtNYyhscixyciwzMik7dmFyIGRyPVtdO2ZvcihCcj0wO0JyPD0xNDM7QnIrKylkci5wdXNoKDgpO2Zvcig7QnI8PTI1''@;'; + put 'put ''NTtCcisrKWRyLnB1c2goOSk7Zm9yKDtCcjw9Mjc5O0JyKyspZHIucHVzaCg3KTtmb3IoO0JyPD0yODc7QnIrKylkci5wdXNoKDgpO01jKGRyLHAyLDI4OCl9KCk7dmFyIFpyPSQwP25ldyBVaW50MTZBcnJheSgzMjc2OCk6JGkoMzI3NjgpLHFpPSQwP25ldyBVaW50MTZBcnJheSgzMjc2OCk6''@;'; + put 'put ''JGkoMzI3NjgpLHJpPSQwP25ldyBVaW50MTZBcnJheSgxMjgpOiRpKDEyOCkscjA9MSxwaT0xO2Z1bmN0aW9uIGUwKGxyLEJyKXt2YXIgZHI9anIobHIsQnIpKzI1NyxHbj1qcihscixCcis9NSkrMSwkbj1mdW5jdGlvbiBoMChscixCcil7dmFyIGRyPTcmQnIsR249QnI+Pj4zO3JldHVybihs''@;'; + put 'put ''cltHbl18KGRyPD00PzA6bHJbR24rMV08PDgpKT4+PmRyJjE1fShscixCcis9NSkrNDtCcis9NDtmb3IodmFyIGJyPTAsV3I9JDA/bmV3IFVpbnQ4QXJyYXkoMTkpOiRpKDE5KSx1aT1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sSWk9MSx1MD0kMD9uZXcgVWludDhB''@;'; + put 'put ''cnJheSg4KTokaSg4KSxaaT0kMD9uZXcgVWludDhBcnJheSg4KTokaSg4KSxKMD1Xci5sZW5ndGgsSTA9MDtJMDwkbjsrK0kwKVdyW04wW0kwXV09YnI9eDAobHIsQnIpLElpPGJyJiYoSWk9YnIpLHUwW2JyXSsrLEJyKz0zO3ZhciBlYT0wO2Zvcih1MFswXT0wLEkwPTE7STA8PUlpOysrSTAp''@;'; + put 'put ''WmlbSTBdPWVhPWVhK3UwW0kwLTFdPDwxO2ZvcihJMD0wO0kwPEowOysrSTApMCE9KGVhPVdyW0kwXSkmJih1aVtJMF09WmlbZWFdKyspO3ZhciBZbz0wO2ZvcihJMD0wO0kwPEowOysrSTApaWYoMCE9KFlvPVdyW0kwXSkpe2VhPU5hW3VpW0kwXV0+PjgtWW87Zm9yKHZhciB5bz0oMTw8Ny1Z''@;'; + put 'put ''byktMTt5bz49MDstLXlvKXJpW2VhfHlvPDxZb109NyZZb3xJMDw8M312YXIgJGE9W107Zm9yKElpPTE7JGEubGVuZ3RoPGRyK0duOylzd2l0Y2goZWE9cmlbSGkobHIsQnIpXSxCcis9NyZlYSxlYT4+Pj0zKXtjYXNlIDE2OmZvcihicj0zK2FvKGxyLEJyKSxCcis9MixlYT0kYVskYS5sZW5n''@;'; + put 'put ''dGgtMV07YnItLSA+MDspJGEucHVzaChlYSk7YnJlYWs7Y2FzZSAxNzpmb3IoYnI9Myt4MChscixCciksQnIrPTM7YnItLSA+MDspJGEucHVzaCgwKTticmVhaztjYXNlIDE4OmZvcihicj0xMStIaShscixCciksQnIrPTc7YnItLSA+MDspJGEucHVzaCgwKTticmVhaztkZWZhdWx0OiRhLnB1''@;'; + put 'put ''c2goZWEpLElpPGVhJiYoSWk9ZWEpfXZhciBWcz0kYS5zbGljZSgwLGRyKSxFYz0kYS5zbGljZShkcik7Zm9yKEkwPWRyO0kwPDI4NjsrK0kwKVZzW0kwXT0wO2ZvcihJMD1HbjtJMDwzMDsrK0kwKUVjW0kwXT0wO3JldHVybiByMD1NYyhWcyxaciwyODYpLHBpPU1jKEVjLHFpLDMwKSxCcn1m''@;'; + put 'put ''dW5jdGlvbiBrMChscixCcil7dmFyIEduPWZ1bmN0aW9uIE9vKGxyLEJyKXtpZigzPT1sclswXSYmISgzJmxyWzFdKSlyZXR1cm5baGUoQnIpLDJdO2Zvcih2YXIgZHI9MCxHbj0wLCRuPU8oQnJ8fDE8PDE4KSxicj0wLFdyPSRuLmxlbmd0aD4+PjAsdWk9MCxJaT0wOzA9PSgxJkduKTspaWYo''@;'; + put 'put ''R249eDAobHIsZHIpLGRyKz0zLEduPj4+MSE9MClmb3IoR24+Pj4xPT0xPyh1aT05LElpPTUpOihkcj1lMChscixkciksdWk9cjAsSWk9cGkpLCFCciYmV3I8YnIrMzI3NjcmJihXcj0oJG49eG8oJG4sYnIrMzI3NjcpKS5sZW5ndGgpOzspe3ZhciBaaT12byhscixkcix1aSksSjA9R24+Pj4x''@;'; + put 'put ''PT0xP3AyW1ppXTpacltaaV07aWYoZHIrPTE1JkowLDA9PSgoSjA+Pj49NCk+Pj44JjI1NSkpJG5bYnIrK109SjA7ZWxzZXtpZigyNTY9PUowKWJyZWFrO3ZhciBJMD0oSjAtPTI1Nyk8OD8wOkowLTQ+PjI7STA+NSYmKEkwPTApO3ZhciBlYT1icit0MFtKMF07STA+MCYmKGVhKz12byhscixk''@;'; + put 'put ''cixJMCksZHIrPUkwKSxaaT12byhscixkcixJaSksZHIrPTE1JihKMD1Hbj4+PjE9PTE/cnJbWmldOnFpW1ppXSk7dmFyIFlvPShKMD4+Pj00KTw0PzA6SjAtMj4+MSx5bz1pb1tKMF07Zm9yKFlvPjAmJih5bys9dm8obHIsZHIsWW8pLGRyKz1ZbyksIUJyJiZXcjxlYSYmKFdyPSgkbj14bygk''@;'; + put 'put ''bixlYSkpLmxlbmd0aCk7YnI8ZWE7KSRuW2JyXT0kbltici15b10sKyticn19ZWxzZXs3JmRyJiYoZHIrPTgtKDcmZHIpKTt2YXIgdTA9bHJbZHI+Pj4zXXxsclsxKyhkcj4+PjMpXTw8ODtpZihkcis9MzIsIUJyJiZXcjxicit1MCYmKFdyPSgkbj14bygkbixicit1MCkpLmxlbmd0aCksImZ1''@;'; + put 'put ''bmN0aW9uIj09dHlwZW9mIGxyLmNvcHkpbHIuY29weSgkbixicixkcj4+PjMsKGRyPj4+MykrdTApLGJyKz11MCxkcis9OCp1MDtlbHNlIGZvcig7dTAtLSA+MDspJG5bYnIrK109bHJbZHI+Pj4zXSxkcis9OH1yZXR1cm5bQnI/JG46JG4uc2xpY2UoMCxiciksZHIrNz4+PjNdfShsci5zbGlj''@;'; + put 'put ''ZShsci5sfHwwKSxCcik7cmV0dXJuIGxyLmwrPUduWzFdLEduWzBdfWZ1bmN0aW9uIHBvKGxyLEJyKXtpZighbHIpdGhyb3cgbmV3IEVycm9yKEJyKTsidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUuZXJyb3IoQnIpfWZ1bmN0aW9uIHAwKGxyLEJyKXt2YXIgZHI9bHI7S2wo''@;'; + put 'put ''ZHIsMCk7dmFyIGJyPXtGaWxlSW5kZXg6W10sRnVsbFBhdGhzOltdfTt5cihicix7cm9vdDpCci5yb290fSk7Zm9yKHZhciBXcj1kci5sZW5ndGgtNDsoODAhPWRyW1dyXXx8NzUhPWRyW1dyKzFdfHw1IT1kcltXcisyXXx8NiE9ZHJbV3IrM10pJiZXcj49MDspLS1Xcjtkci5sPVdyKzQsZHIu''@;'; + put 'put ''bCs9NDt2YXIgdWk9ZHIucmVhZF9zaGlmdCgyKTtkci5sKz02O3ZhciBJaT1kci5yZWFkX3NoaWZ0KDQpO2Zvcihkci5sPUlpLFdyPTA7V3I8dWk7KytXcil7ZHIubCs9MjA7dmFyIHUwPWRyLnJlYWRfc2hpZnQoNCksWmk9ZHIucmVhZF9zaGlmdCg0KSxKMD1kci5yZWFkX3NoaWZ0KDIpLEkw''@;'; + put 'put ''PWRyLnJlYWRfc2hpZnQoMiksZWE9ZHIucmVhZF9zaGlmdCgyKTtkci5sKz04O3ZhciBZbz1kci5yZWFkX3NoaWZ0KDQpLHlvPWplKGRyLnNsaWNlKGRyLmwrSjAsZHIubCtKMCtJMCkpO2RyLmwrPUowK0kwK2VhO3ZhciAkYT1kci5sO2RyLmw9WW8rNCxRbChkcix1MCxaaSxicix5byksZHIu''@;'; + put 'put ''bD0kYX1yZXR1cm4gYnJ9ZnVuY3Rpb24gUWwobHIsQnIsZHIsR24sJG4pe2xyLmwrPTI7dmFyIGJyPWxyLnJlYWRfc2hpZnQoMiksV3I9bHIucmVhZF9zaGlmdCgyKSx1aT1mdW5jdGlvbiBaZShscil7dmFyIEJyPTY1NTM1JmxyLnJlYWRfc2hpZnQoMiksZHI9NjU1MzUmbHIucmVhZF9zaGlm''@;'; + put 'put ''dCgyKSxHbj1uZXcgRGF0ZSwkbj0zMSZkcixicj0xNSYoZHI+Pj49NSk7ZHI+Pj49NCxHbi5zZXRNaWxsaXNlY29uZHMoMCksR24uc2V0RnVsbFllYXIoZHIrMTk4MCksR24uc2V0TW9udGgoYnItMSksR24uc2V0RGF0ZSgkbik7dmFyIFdyPTMxJkJyLHVpPTYzJihCcj4+Pj01KTtyZXR1cm4g''@;'; + put 'put ''R24uc2V0SG91cnMoQnI+Pj49NiksR24uc2V0TWludXRlcyh1aSksR24uc2V0U2Vjb25kcyhXcjw8MSksR259KGxyKTtpZig4MjU3JmJyKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgWklQIGVuY3J5cHRpb24iKTtmb3IodmFyIElpPWxyLnJlYWRfc2hpZnQoNCksdTA9bHIucmVhZF9z''@;'; + put 'put ''aGlmdCg0KSxaaT1sci5yZWFkX3NoaWZ0KDQpLEowPWxyLnJlYWRfc2hpZnQoMiksSTA9bHIucmVhZF9zaGlmdCgyKSxlYT0iIixZbz0wO1lvPEowOysrWW8pZWErPVN0cmluZy5mcm9tQ2hhckNvZGUobHJbbHIubCsrXSk7aWYoSTApe3ZhciB5bz1qZShsci5zbGljZShsci5sLGxyLmwrSTAp''@;'; + put 'put ''KTsoeW9bMjE1ODldfHx7fSkubXQmJih1aT15b1syMTU4OV0ubXQpLCgoJG58fHt9KVsyMTU4OV18fHt9KS5tdCYmKHVpPSRuWzIxNTg5XS5tdCl9bHIubCs9STA7dmFyICRhPWxyLnNsaWNlKGxyLmwsbHIubCt1MCk7c3dpdGNoKFdyKXtjYXNlIDg6JGE9ZnVuY3Rpb24gTnIobHIsQnIpe2lm''@;'; + put 'put ''KCFFaSlyZXR1cm4gazAobHIsQnIpO3ZhciBHbj1uZXcoMCxFaS5JbmZsYXRlUmF3KSwkbj1Hbi5fcHJvY2Vzc0NodW5rKGxyLnNsaWNlKGxyLmwpLEduLl9maW5pc2hGbHVzaEZsYWcpO3JldHVybiBsci5sKz1Hbi5ieXRlc1JlYWQsJG59KGxyLFppKTticmVhaztjYXNlIDA6YnJlYWs7ZGVm''@;'; + put 'put ''YXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIFpJUCBDb21wcmVzc2lvbiBtZXRob2QgIitXcil9dmFyIFZzPSExOzgmYnImJigxMzQ2OTU3NjA9PShJaT1sci5yZWFkX3NoaWZ0KDQpKSYmKElpPWxyLnJlYWRfc2hpZnQoNCksVnM9ITApLHUwPWxyLnJlYWRfc2hpZnQoNCksWmk9''@;'; + put 'put ''bHIucmVhZF9zaGlmdCg0KSksdTAhPUJyJiZwbyhWcywiQmFkIGNvbXByZXNzZWQgc2l6ZTogIitCcisiICE9ICIrdTApLFppIT1kciYmcG8oVnMsIkJhZCB1bmNvbXByZXNzZWQgc2l6ZTogIitkcisiICE9ICIrWmkpO3ZhciBFYz13dC5idWYoJGEsMCk7SWk+PjAhPUVjPj4wJiZwbyhWcywi''@;'; + put 'put ''QmFkIENSQzMyIGNoZWNrc3VtOiAiK0lpKyIgIT0gIitFYykscTIoR24sZWEsJGEse3Vuc2FmZTohMCxtdDp1aX0pfWZ1bmN0aW9uIHEyKGxyLEJyLGRyLEduKXt2YXIgJG49R24mJkduLnVuc2FmZTskbnx8eXIobHIpO3ZhciBicj0hJG4mJnZ0LmZpbmQobHIsQnIpO2lmKCFicil7dmFyIFdy''@;'; + put 'put ''PWxyLkZ1bGxQYXRoc1swXTtCci5zbGljZSgwLFdyLmxlbmd0aCk9PVdyP1dyPUJyOigiLyIhPVdyLnNsaWNlKC0xKSYmKFdyKz0iLyIpLFdyPShXcitCcikucmVwbGFjZSgiLy8iLCIvIikpLGJyPXtuYW1lOnhlKEJyKSx0eXBlOjJ9LGxyLkZpbGVJbmRleC5wdXNoKGJyKSxsci5GdWxsUGF0''@;'; + put 'put ''aHMucHVzaChXciksJG58fHZ0LnV0aWxzLmNmYl9nYyhscil9cmV0dXJuIGJyLmNvbnRlbnQ9ZHIsYnIuc2l6ZT1kcj9kci5sZW5ndGg6MCxHbiYmKEduLkNMU0lEJiYoYnIuY2xzaWQ9R24uQ0xTSUQpLEduLm10JiYoYnIubXQ9R24ubXQpLEduLmN0JiYoYnIuY3Q9R24uY3QpKSxicn1yZXR1''@;'; + put 'put ''cm4gcmUuZmluZD1mdW5jdGlvbiBxcihscixCcil7dmFyIGRyPWxyLkZ1bGxQYXRocy5tYXAoZnVuY3Rpb24oSWkpe3JldHVybiBJaS50b1VwcGVyQ2FzZSgpfSksR249ZHIubWFwKGZ1bmN0aW9uKElpKXt2YXIgdTA9SWkuc3BsaXQoIi8iKTtyZXR1cm4gdTBbdTAubGVuZ3RoLSgiLyI9PUlp''@;'; + put 'put ''LnNsaWNlKC0xKT8yOjEpXX0pLCRuPSExOzQ3PT09QnIuY2hhckNvZGVBdCgwKT8oJG49ITAsQnI9ZHJbMF0uc2xpY2UoMCwtMSkrQnIpOiRuPS0xIT09QnIuaW5kZXhPZigiLyIpO3ZhciBicj1Cci50b1VwcGVyQ2FzZSgpLFdyPSEwPT09JG4/ZHIuaW5kZXhPZihicik6R24uaW5kZXhPZihi''@;'; + put 'put ''cik7aWYoLTEhPT1XcilyZXR1cm4gbHIuRmlsZUluZGV4W1dyXTt2YXIgdWk9IWJyLm1hdGNoKFMpO2Zvcihicj1ici5yZXBsYWNlKFQsIiIpLHVpJiYoYnI9YnIucmVwbGFjZShTLCIhIikpLFdyPTA7V3I8ZHIubGVuZ3RoOysrV3IpaWYoKHVpP2RyW1dyXS5yZXBsYWNlKFMsIiEiKTpkcltX''@;'; + put 'put ''cl0pLnJlcGxhY2UoVCwiIik9PWJyfHwodWk/R25bV3JdLnJlcGxhY2UoUywiISIpOkduW1dyXSkucmVwbGFjZShULCIiKT09YnIpcmV0dXJuIGxyLkZpbGVJbmRleFtXcl07cmV0dXJuIG51bGx9LHJlLnJlYWQ9ZnVuY3Rpb24gYWkobHIsQnIpe3N3aXRjaChCciYmQnIudHlwZXx8ImJhc2U2''@;'; + put 'put ''NCIpe2Nhc2UiZmlsZSI6cmV0dXJuIGZ1bmN0aW9uIE1yKGxyLEJyKXtyZXR1cm4gTXQoKSx4dChZZS5yZWFkRmlsZVN5bmMobHIpLEJyKX0obHIsQnIpO2Nhc2UiYmFzZTY0IjpyZXR1cm4geHQoeihTZS5kZWNvZGUobHIpKSxCcik7Y2FzZSJiaW5hcnkiOnJldHVybiB4dCh6KGxyKSxCcil9''@;'; + put 'put ''cmV0dXJuIHh0KGxyLEJyKX0scmUucGFyc2U9eHQscmUud3JpdGU9ZnVuY3Rpb24gWXIobHIsQnIpe3ZhciBkcj16cihscixCcik7c3dpdGNoKEJyJiZCci50eXBlKXtjYXNlImZpbGUiOnJldHVybiBNdCgpLFllLndyaXRlRmlsZVN5bmMoQnIuZmlsZW5hbWUsZHIpLGRyO2Nhc2UiYmluYXJ5''@;'; + put 'put ''IjpyZXR1cm4gd2koZHIpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gU2UuZW5jb2RlKHdpKGRyKSl9cmV0dXJuIGRyfSxyZS53cml0ZUZpbGU9ZnVuY3Rpb24gQTAobHIsQnIsZHIpe010KCk7dmFyIEduPXpyKGxyLGRyKTtZZS53cml0ZUZpbGVTeW5jKEJyLEduKX0scmUudXRpbHM9e2NmYl9uZXc6''@;'; + put 'put ''ZnVuY3Rpb24gJDIobHIpe3ZhciBCcj17fTtyZXR1cm4geXIoQnIsbHIpLEJyfSxjZmJfYWRkOnEyLGNmYl9kZWw6ZnVuY3Rpb24gS3MobHIsQnIpe3lyKGxyKTt2YXIgZHI9dnQuZmluZChscixCcik7aWYoZHIpZm9yKHZhciBHbj0wO0duPGxyLkZpbGVJbmRleC5sZW5ndGg7KytHbilpZihs''@;'; + put 'put ''ci5GaWxlSW5kZXhbR25dPT1kcilyZXR1cm4gbHIuRmlsZUluZGV4LnNwbGljZShHbiwxKSxsci5GdWxsUGF0aHMuc3BsaWNlKEduLDEpLCEwO3JldHVybiExfSxjZmJfbW92OmZ1bmN0aW9uIFA2KGxyLEJyLGRyKXt5cihscik7dmFyIEduPXZ0LmZpbmQobHIsQnIpO2lmKEduKWZvcih2YXIg''@;'; + put 'put ''JG49MDskbjxsci5GaWxlSW5kZXgubGVuZ3RoOysrJG4paWYobHIuRmlsZUluZGV4WyRuXT09R24pcmV0dXJuIGxyLkZpbGVJbmRleFskbl0ubmFtZT14ZShkciksbHIuRnVsbFBhdGhzWyRuXT1kciwhMDtyZXR1cm4hMX0sY2ZiX2djOmZ1bmN0aW9uIHRoKGxyKXtHcihsciwhMCl9LFJlYWRT''@;'; + put 'put ''aGlmdDpDNCxDaGVja0ZpZWxkOkYxLHByZXBfYmxvYjpLbCxiY29uY2F0OlYsdXNlX3psaWI6ZnVuY3Rpb24gaGkobHIpe3RyeXt2YXIgZHI9bmV3KDAsbHIuSW5mbGF0ZVJhdyk7aWYoZHIuX3Byb2Nlc3NDaHVuayhuZXcgVWludDhBcnJheShbMywwXSksZHIuX2ZpbmlzaEZsdXNoRmxhZyks''@;'; + put 'put ''IWRyLmJ5dGVzUmVhZCl0aHJvdyBuZXcgRXJyb3IoInpsaWIgZG9lcyBub3QgZXhwb3NlIGJ5dGVzUmVhZCIpO0VpPWxyfWNhdGNoKEduKXtjb25zb2xlLmVycm9yKCJjYW5ub3QgdXNlIG5hdGl2ZSB6bGliOiAiKyhHbi5tZXNzYWdlfHxHbikpfX0sX2RlZmxhdGVSYXc6bDIsX2luZmxhdGVS''@;'; + put 'put ''YXc6azAsY29uc3RzOnRvfSxyZX0oKTt0cnl7QXQ9TCg3ODc3Myl9Y2F0Y2goSCl7fWZ1bmN0aW9uIG10KEgpe3JldHVybiJzdHJpbmciPT10eXBlb2YgSD9uZShIKTpBcnJheS5pc0FycmF5KEgpP2Z1bmN0aW9uIHgoSCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBVaW50OEFycmF5KXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoSCl9KEgpOkh9ZnVuY3Rpb24gaHQoSCxyZSxYKXtpZih2b2lkIDAhPT1BdCYmQXQud3JpdGVGaWxlU3luYylyZXR1cm4gWD9BdC53cml0ZUZpbGVTeW5jKEgscmUsWCk6QXQud3JpdGVGaWxlU3luYyhILHJl''@;'; + put 'put ''KTt2YXIgd2U9InV0ZjgiPT1YP0VvKHJlKTpyZTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIElFX1NhdmVGaWxlKXJldHVybiBJRV9TYXZlRmlsZSh3ZSxIKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEJsb2Ipe3ZhciB4ZT1uZXcgQmxvYihbbXQod2UpXSx7dHlwZToiYXBwbGljYXRpb24vb2N0''@;'; + put 'put ''ZXQtc3RyZWFtIn0pO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IubXNTYXZlQmxvYilyZXR1cm4gbmF2aWdhdG9yLm1zU2F2ZUJsb2IoeGUsSCk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBzYXZlQXMpcmV0dXJuIHNhdmVBcyh4ZSxIKTtpZigidW5kZWZpbmVk''@;'; + put 'put ''IiE9dHlwZW9mIFVSTCYmInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuY3JlYXRlRWxlbWVudCYmVVJMLmNyZWF0ZU9iamVjdFVSTCl7dmFyIEZlPVVSTC5jcmVhdGVPYmplY3RVUkwoeGUpO2lmKCJvYmplY3QiPT10eXBlb2YgY2hyb21lJiYiZnVuY3Rpb24iPT10eXBl''@;'; + put 'put ''b2YoY2hyb21lLmRvd25sb2Fkc3x8e30pLmRvd25sb2FkKXJldHVybiBVUkwucmV2b2tlT2JqZWN0VVJMJiYidW5kZWZpbmVkIiE9dHlwZW9mIHNldFRpbWVvdXQmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtVUkwucmV2b2tlT2JqZWN0VVJMKEZlKX0sNmU0KSxjaHJvbWUuZG93bmxvYWRzLmRv''@;'; + put 'put ''d25sb2FkKHt1cmw6RmUsZmlsZW5hbWU6SCxzYXZlQXM6ITB9KTt2YXIgWmU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2lmKG51bGwhPVplLmRvd25sb2FkKXJldHVybiBaZS5kb3dubG9hZD1ILFplLmhyZWY9RmUsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChaZSksWmUuY2xpY2so''@;'; + put 'put ''KSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKFplKSxVUkwucmV2b2tlT2JqZWN0VVJMJiYidW5kZWZpbmVkIiE9dHlwZW9mIHNldFRpbWVvdXQmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtVUkwucmV2b2tlT2JqZWN0VVJMKEZlKX0sNmU0KSxGZX19aWYoInVuZGVmaW5lZCIhPXR5cGVvZiAk''@;'; + put 'put ''JiYidW5kZWZpbmVkIiE9dHlwZW9mIEZpbGUmJiJ1bmRlZmluZWQiIT10eXBlb2YgRm9sZGVyKXRyeXt2YXIgamU9RmlsZShIKTtyZXR1cm4gamUub3BlbigidyIpLGplLmVuY29kaW5nPSJiaW5hcnkiLEFycmF5LmlzQXJyYXkocmUpJiYocmU9dGUocmUpKSxqZS53cml0ZShyZSksamUuY2xv''@;'; + put 'put ''c2UoKSxyZX1jYXRjaChZZSl7aWYoIVllLm1lc3NhZ2V8fCFZZS5tZXNzYWdlLm1hdGNoKC9vbnN0cnVjdC8pKXRocm93IFllfXRocm93IG5ldyBFcnJvcigiY2Fubm90IHNhdmUgZmlsZSAiK0gpfWZ1bmN0aW9uIG9uKEgpe2Zvcih2YXIgcmU9T2JqZWN0LmtleXMoSCksWD1bXSx3ZT0wO3dl''@;'; + put 'put ''PHJlLmxlbmd0aDsrK3dlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChILHJlW3dlXSkmJlgucHVzaChyZVt3ZV0pO3JldHVybiBYfWZ1bmN0aW9uIF90KEgscmUpe2Zvcih2YXIgWD1bXSx3ZT1vbihIKSx4ZT0wO3hlIT09d2UubGVuZ3RoOysreGUpbnVsbD09WFtIW3dl''@;'; + put 'put ''W3hlXV1bcmVdXSYmKFhbSFt3ZVt4ZV1dW3JlXV09d2VbeGVdKTtyZXR1cm4gWH1mdW5jdGlvbiB0dChIKXtmb3IodmFyIHJlPVtdLFg9b24oSCksd2U9MDt3ZSE9PVgubGVuZ3RoOysrd2UpcmVbSFtYW3dlXV1dPVhbd2VdO3JldHVybiByZX1mdW5jdGlvbiBldChIKXtmb3IodmFyIHJlPVtd''@;'; + put 'put ''LFg9b24oSCksd2U9MDt3ZSE9PVgubGVuZ3RoOysrd2UpcmVbSFtYW3dlXV1dPXBhcnNlSW50KFhbd2VdLDEwKTtyZXR1cm4gcmV9dmFyIGZ0LEh0LEx0PW5ldyBEYXRlKDE4OTksMTEsMzAsMCwwLDApLEN0PTA7ZnVuY3Rpb24gR2UoKXtDdD1MdC5nZXRUaW1lKCkrNmU0KigobmV3IERhdGUp''@;'; + put 'put ''LmdldFRpbWV6b25lT2Zmc2V0KCktTHQuZ2V0VGltZXpvbmVPZmZzZXQoKSksZnQ9ZnVuY3Rpb24ocmUsWCl7dmFyIHdlPXJlLmdldFRpbWUoKTtyZXR1cm4gWCYmKHdlLT0xMjYzMTY4ZTUpLCh3ZS1DdCkvODY0ZTV9LEh0PWZ1bmN0aW9uKHJlKXt2YXIgWD1uZXcgRGF0ZTtyZXR1cm4gWC5z''@;'; + put 'put ''ZXRUaW1lKDI0KnJlKjYwKjYwKjFlMytDdCksWH19ZnVuY3Rpb24ganQoSCl7dmFyIHJlPTAsWD0wLHdlPSExLHhlPUgubWF0Y2goL1AoWzAtOVwuXStZKT8oWzAtOVwuXStNKT8oWzAtOVwuXStEKT9UKFswLTlcLl0rSCk/KFswLTlcLl0rTSk/KFswLTlcLl0rUyk/Lyk7aWYoIXhlKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigifCIrSCsifCBpcyBub3QgYW4gSVNPODYwMSBEdXJhdGlvbiIpO2Zvcih2YXIgRmU9MTtGZSE9eGUubGVuZ3RoOysrRmUpaWYoeGVbRmVdKXtzd2l0Y2goWD0xLEZlPjMmJih3ZT0hMCkseGVbRmVdLnNsaWNlKHhlW0ZlXS5sZW5ndGgtMSkpe2Nhc2UiWSI6dGhyb3cgbmV3''@;'; + put 'put ''IEVycm9yKCJVbnN1cHBvcnRlZCBJU08gRHVyYXRpb24gRmllbGQ6ICIreGVbRmVdLnNsaWNlKHhlW0ZlXS5sZW5ndGgtMSkpO2Nhc2UiRCI6WCo9MjQ7Y2FzZSJIIjpYKj02MDtjYXNlIk0iOmlmKCF3ZSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIElTTyBEdXJhdGlvbiBGaWVsZDog''@;'; + put 'put ''TSIpO1gqPTYwfXJlKz1YKnBhcnNlSW50KHhlW0ZlXSwxMCl9cmV0dXJuIHJlfUdlKCk7dmFyIFF0PW5ldyBEYXRlKCIyMDE3LTAyLTE5VDE5OjA2OjA5LjAwMFoiKTtpc05hTihRdC5nZXRGdWxsWWVhcigpKSYmKFF0PW5ldyBEYXRlKCIyLzE5LzE3IikpO3ZhciBnbj0yMDE3PT1RdC5nZXRG''@;'; + put 'put ''dWxsWWVhcigpO2Z1bmN0aW9uIGRuKEgscmUpe3ZhciBYPW5ldyBEYXRlKEgpO2lmKGduKXJldHVybiByZT4wP1guc2V0VGltZShYLmdldFRpbWUoKSs2MCpYLmdldFRpbWV6b25lT2Zmc2V0KCkqMWUzKTpyZTwwJiZYLnNldFRpbWUoWC5nZXRUaW1lKCktNjAqWC5nZXRUaW1lem9uZU9mZnNl''@;'; + put 'put ''dCgpKjFlMyksWDtpZihIIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gSDtpZigxOTE3PT1RdC5nZXRGdWxsWWVhcigpJiYhaXNOYU4oWC5nZXRGdWxsWWVhcigpKSl7dmFyIHdlPVguZ2V0RnVsbFllYXIoKTtyZXR1cm4gSC5pbmRleE9mKCIiK3dlKT4tMXx8WC5zZXRGdWxsWWVhcihYLmdldEZ1''@;'; + put 'put ''bGxZZWFyKCkrMTAwKSxYfXZhciB4ZT1ILm1hdGNoKC9cZCsvZyl8fFsiMjAxNyIsIjIiLCIxOSIsIjAiLCIwIiwiMCJdLEZlPW5ldyBEYXRlKCt4ZVswXSwreGVbMV0tMSwreGVbMl0sK3hlWzNdfHwwLCt4ZVs0XXx8MCwreGVbNV18fDApO3JldHVybiBILmluZGV4T2YoIloiKT4tMSYmKEZl''@;'; + put 'put ''PW5ldyBEYXRlKEZlLmdldFRpbWUoKS02MCpGZS5nZXRUaW1lem9uZU9mZnNldCgpKjFlMykpLEZlfWZ1bmN0aW9uIHluKEgpe2Zvcih2YXIgcmU9IiIsWD0wO1ghPUgubGVuZ3RoOysrWClyZSs9U3RyaW5nLmZyb21DaGFyQ29kZShIW1hdKTtyZXR1cm4gcmV9ZnVuY3Rpb24gbG4oSCl7aWYo''@;'; + put 'put ''Im9iamVjdCIhPXR5cGVvZiBIfHxudWxsPT1IKXJldHVybiBIO2lmKEggaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShILmdldFRpbWUoKSk7aWYoQXJyYXkuaXNBcnJheShIKSlyZXR1cm4gZnVuY3Rpb24gTm4oSCl7Zm9yKHZhciByZT1bXSxYPTA7WDxILmxlbmd0aDsrK1gpe3Zh''@;'; + put 'put ''ciB3ZT1IW1hdOyJvYmplY3QiPT10eXBlb2Ygd2U/cmVbWF09bG4od2UpOm51bGwhPXdlJiYocmVbWF09d2UpfXJldHVybiByZX0oSCk7dmFyIHJlPXt9O2Zvcih2YXIgWCBpbiBIKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChILFgpJiYocmVbWF09bG4oSFtYXSkpO3Jl''@;'; + put 'put ''dHVybiByZX1mdW5jdGlvbiBibihILHJlKXtpZigib2JqZWN0IiE9dHlwZW9mIHJlfHxudWxsPT1yZSlyZXR1cm4gSDtmb3IodmFyIFggaW4gcmUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlLFgpJiYoSFtYXT1sbihyZVtYXSkpO3JldHVybiBIfWZ1bmN0aW9uIGVy''@;'; + put 'put ''KEgscmUpe2Zvcih2YXIgWD0iIjtYLmxlbmd0aDxyZTspWCs9SDtyZXR1cm4gWH1mdW5jdGlvbiBzcihIKXt2YXIgcmU9TnVtYmVyKEgpO2lmKCFpc05hTihyZSkpcmV0dXJuIGlzRmluaXRlKHJlKT9yZTpOYU47aWYoIS9cZC8udGVzdChIKSlyZXR1cm4gcmU7dmFyIFg9MSx3ZT1ILnJlcGxh''@;'; + put 'put ''Y2UoLyhbXGRdKSwoW1xkXSkvZywiJDEkMiIpLnJlcGxhY2UoL1skXS9nLCIiKS5yZXBsYWNlKC9bJV0vZyxmdW5jdGlvbigpe3JldHVybiBYKj0xMDAsIiJ9KTtyZXR1cm4gaXNOYU4ocmU9TnVtYmVyKHdlKSkmJih3ZT13ZS5yZXBsYWNlKC9bKF0oLiopWyldLyxmdW5jdGlvbih4ZSxGZSl7''@;'; + put 'put ''cmV0dXJuIFg9LVgsRmV9KSxpc05hTihyZT1OdW1iZXIod2UpKSk/cmU6cmUvWH1mdW5jdGlvbiBYbihIKXt2YXIgcmU9bmV3IERhdGUoSCksWD1uZXcgRGF0ZShOYU4pLHdlPXJlLmdldFllYXIoKSx4ZT1yZS5nZXRNb250aCgpLEZlPXJlLmdldERhdGUoKTtyZXR1cm4gaXNOYU4oRmUpfHx3''@;'; + put 'put ''ZTwwfHx3ZT44MDk5P1g6KHhlPjB8fEZlPjEpJiYxMDEhPXdlfHxILnRvTG93ZXJDYXNlKCkubWF0Y2goL2phbnxmZWJ8bWFyfGFwcnxtYXl8anVufGp1bHxhdWd8c2VwfG9jdHxub3Z8ZGVjLyk/cmU6SC5tYXRjaCgvW14tMC05OixcL1xcXS8pP1g6cmV9ZnVuY3Rpb24gRnIoSCxyZSl7aWYo''@;'; + put 'put ''cmUmJnJlLnJhdylyZXR1cm57dDoicyIsdjpIfTtpZighSClyZXR1cm57dDoieiJ9O2lmKCJUUlVFIj09PUgpcmV0dXJue3Q6ImIiLHY6ITB9O2lmKCJGQUxTRSI9PT1IKXJldHVybnt0OiJiIix2OiExfTt2YXIgWD0iIix3ZT1OdW1iZXIoSCk7aWYoaXNGaW5pdGUod2UpKXJldHVybnt0OiJu''@;'; + put 'put ''Iix2OndlfTtpZihpc05hTih3ZSkmJi9cZC8udGVzdChIKSl7dmFyIHhlPTEsRmU9SC5yZXBsYWNlKC8oW1xkXSksKFtcZF0pL2csZnVuY3Rpb24oWXQsbm4sQ24pe3JldHVybiBYfHwoWD0iIywjIzAiKSxubitDbn0pLnJlcGxhY2UoL1skXS9nLCIiKS5yZXBsYWNlKC9cLlxkKi8sZnVuY3Rp''@;'; + put 'put ''b24oWXQpe1h8fChYPSIwIiksWCs9Ii4iO2Zvcih2YXIgbm49Mjtubjw9WXQubGVuZ3RoOysrbm4pWCs9IjAiO3JldHVybiBZdH0pLnJlcGxhY2UoL1slXS9nLGZ1bmN0aW9uKCl7cmV0dXJuIHhlKj0xMDAsWHx8KFg9IjAiKSxYKz0iJSIsIiJ9KTtpZighaXNOYU4od2U9TnVtYmVyKEZlKSkp''@;'; + put 'put ''cmV0dXJue3Q6Im4iLHY6d2UveGUsejpYfTtpZihGZT1GZS5yZXBsYWNlKC9bKF0oLiopWyldLyxmdW5jdGlvbihZdCxubil7cmV0dXJuIHhlPS14ZSxubn0pLCFpc05hTih3ZT1OdW1iZXIoRmUpKSlyZXR1cm57dDoibiIsdjp3ZS94ZSx6OihYfHwiMCIpKyJfKTsoIisoWHx8IjAiKSsiKTtA''@;'; + put 'put ''In19ZTppZighcmV8fCFyZS5yYXdEYXRlcyl7dmFyIFplPXJlJiZyZS5jZWxsRGF0ZXMsamU9bmV3IERhdGUoSCksTXQ9KG5ldyBEYXRlKE5hTiksamUuZ2V0WWVhcigpKSx4dD1qZS5nZXRNb250aCgpLFJ0PWplLmdldERhdGUoKTtpZihpc05hTihSdCl8fE10PDB8fE10PjgwOTkpYnJlYWsg''@;'; + put 'put ''ZTtpZigoeHQ+MHx8UnQ+MSkmJjEwMSE9TXQpcmV0dXJue3Q6WmU/ImQiOiJuIix2OlplP2plOmZ0KGplKSx6OnJlLmRhdGVORnx8Ri5fdGFibGVbMTRdfTtpZihILnRvTG93ZXJDYXNlKCkubWF0Y2goL2phbnxmZWJ8bWFyfGFwcnxtYXl8anVufGp1bHxhdWd8c2VwfG9jdHxub3Z8ZGVjLykp''@;'; + put 'put ''cmV0dXJue3Q6WmU/ImQiOiJuIix2OlplP2plOmZ0KGplKSx6OnJlLmRhdGVORnx8Ri5fdGFibGVbMTRdfTtpZihILm1hdGNoKC9bXi0wLTk6LFwvXFxdLykpYnJlYWsgZTtyZXR1cm4gamV9cmV0dXJue3Q6InMiLHY6SH19dmFyIEJuLHhyPTU9PSJhYmFjYWJhIi5zcGxpdCgvKDo/YikvaSku''@;'; + put 'put ''bGVuZ3RoO2Z1bmN0aW9uIG5yKEgpe3JldHVybiBudWxsIT1IJiYhSH1mdW5jdGlvbiBBbihIKXtyZXR1cm4gSC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStILnNsaWNlKDEpfWZ1bmN0aW9uIHFuKEgpe3JldHVybiBIP0guZGF0YT9jZShILmRhdGEpOkguYXNOb2RlQnVmZmVyJiZJZT9jZShI''@;'; + put 'put ''LmFzTm9kZUJ1ZmZlcigpLnRvU3RyaW5nKCJiaW5hcnkiKSk6SC5hc0JpbmFyeT9jZShILmFzQmluYXJ5KCkpOkguX2RhdGEmJkguX2RhdGEuZ2V0Q29udGVudD9jZSh5bihBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChILl9kYXRhLmdldENvbnRlbnQoKSwwKSkpOkguY29udGVudCYmSC50''@;'; + put 'put ''eXBlP2NlKHluKEguY29udGVudCkpOm51bGw6bnVsbH1mdW5jdGlvbiBXdChIKXtpZighSClyZXR1cm4gbnVsbDtpZihILmRhdGEpcmV0dXJuIEooSC5kYXRhKTtpZihILmFzTm9kZUJ1ZmZlciYmSWUpcmV0dXJuIEguYXNOb2RlQnVmZmVyKCk7aWYoSC5fZGF0YSYmSC5fZGF0YS5nZXRDb250''@;'; + put 'put ''ZW50KXt2YXIgcmU9SC5fZGF0YS5nZXRDb250ZW50KCk7cmV0dXJuInN0cmluZyI9PXR5cGVvZiByZT9KKHJlKTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyZSl9cmV0dXJuIEguY29udGVudCYmSC50eXBlP0guY29udGVudDpudWxsfWZ1bmN0aW9uIEtuKEgscmUpe2Zvcih2YXIgWD1I''@;'; + put 'put ''LkZ1bGxQYXRoc3x8b24oSC5maWxlcyksd2U9cmUudG9Mb3dlckNhc2UoKSx4ZT13ZS5yZXBsYWNlKC9cLy9nLCJcXCIpLEZlPTA7RmU8WC5sZW5ndGg7KytGZSl7dmFyIFplPVhbRmVdLnRvTG93ZXJDYXNlKCk7aWYod2U9PVplfHx4ZT09WmUpcmV0dXJuIEguZmlsZXNbWFtGZV1dfXJldHVy''@;'; + put 'put ''biBudWxsfWZ1bmN0aW9uIE50KEgscmUpe3ZhciBYPUtuKEgscmUpO2lmKG51bGw9PVgpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBmaWxlICIrcmUrIiBpbiB6aXAiKTtyZXR1cm4gWH1mdW5jdGlvbiBzbihILHJlLFgpe2lmKCFYKXJldHVybiBmdW5jdGlvbiBwbihIKXtyZXR1cm4g''@;'; + put 'put ''SCYmIi5iaW4iPT09SC5uYW1lLnNsaWNlKC00KT9XdChIKTpxbihIKX0oTnQoSCxyZSkpO2lmKCFyZSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIHNuKEgscmUpfWNhdGNoKHdlKXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gVW4oSCxyZSxYKXtpZighWClyZXR1cm4gcW4oTnQoSCxyZSkpO2lmKCFy''@;'; + put 'put ''ZSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIFVuKEgscmUpfWNhdGNoKHdlKXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gd24oSCxyZSxYKXtpZighWClyZXR1cm4gV3QoTnQoSCxyZSkpO2lmKCFyZSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIHduKEgscmUpfWNhdGNoKHdlKXtyZXR1cm4gbnVsbH19''@;'; + put 'put ''ZnVuY3Rpb24gem4oSCxyZSxYKXtILkZ1bGxQYXRocz92dC51dGlscy5jZmJfYWRkKEgscmUsWCk6SC5maWxlKHJlLFgpfWZ1bmN0aW9uIGtyKCl7cmV0dXJuIEJuP25ldyBCbjp2dC51dGlscy5jZmJfbmV3KCl9ZnVuY3Rpb24gbW4oSCxyZSl7dmFyIFg7aWYoQm4pc3dpdGNoKHJlLnR5cGUp''@;'; + put 'put ''e2Nhc2UiYmFzZTY0IjpYPW5ldyBCbihILHtiYXNlNjQ6ITB9KTticmVhaztjYXNlImJpbmFyeSI6Y2FzZSJhcnJheSI6WD1uZXcgQm4oSCx7YmFzZTY0OiExfSk7YnJlYWs7Y2FzZSJidWZmZXIiOlg9bmV3IEJuKEgpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6''@;'; + put 'put ''ZWQgdHlwZSAiK3JlLnR5cGUpfWVsc2Ugc3dpdGNoKHJlLnR5cGUpe2Nhc2UiYmFzZTY0IjpYPXZ0LnJlYWQoSCx7dHlwZToiYmFzZTY0In0pO2JyZWFrO2Nhc2UiYmluYXJ5IjpYPXZ0LnJlYWQoSCx7dHlwZToiYmluYXJ5In0pO2JyZWFrO2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpYPXZ0''@;'; + put 'put ''LnJlYWQoSCx7dHlwZToiYnVmZmVyIn0pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK3JlLnR5cGUpfXJldHVybiBYfWZ1bmN0aW9uIHVuKEgscmUpe2lmKCIvIj09SC5jaGFyQXQoMCkpcmV0dXJuIEguc2xpY2UoMSk7dmFyIFg9cmUuc3BsaXQo''@;'; + put 'put ''Ii8iKTsiLyIhPXJlLnNsaWNlKC0xKSYmWC5wb3AoKTtmb3IodmFyIHdlPUguc3BsaXQoIi8iKTswIT09d2UubGVuZ3RoOyl7dmFyIHhlPXdlLnNoaWZ0KCk7Ii4uIj09PXhlP1gucG9wKCk6Ii4iIT09eGUmJlgucHVzaCh4ZSl9cmV0dXJuIFguam9pbigiLyIpfSJ1bmRlZmluZWQiIT10eXBl''@;'; + put 'put ''b2YgSlNaaXBTeW5jJiYoQm49SlNaaXBTeW5jKSxYZS5leHBvcnRzJiZ2b2lkIDA9PT1CbiYmKEJuPUwoNjk5NjMpKTt2YXIgY249Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz5cclxuJyxfbj0vKD86W14iXHM/PlwvXSspXHMqPVxzKigo''@;'; + put 'put ''PzoiKSg/OlteIl0qPykoPzoiKXwoPzonKSg/OlteJ10qPykoPzonKXwoPzpbXiciPlxzXSspKS9nLEd0PS88W1wvXD9dP1thLXpBLVowLTk6Xy1dKyg/OlxzK1teIlxzPz5cL10rXHMqPVxzKig/OiJbXiJdKiJ8J1teJ10qJ3xbXiciPlxzPV0rKSkqXHM/W1wvXD9dPz4vZztjbi5tYXRjaChH''@;'; + put 'put ''dCl8fChHdD0vPFtePl0qPi9nKTt2YXIga249Lzxcdyo6LyxWbj0vPChcLz8pXHcrOi87ZnVuY3Rpb24gZW4oSCxyZSxYKXtmb3IodmFyIHdlPXt9LHhlPTAsRmU9MDt4ZSE9PUgubGVuZ3RoJiYzMiE9PShGZT1ILmNoYXJDb2RlQXQoeGUpKSYmMTAhPT1GZSYmMTMhPT1GZTsrK3hlKTtpZihy''@;'; + put 'put ''ZXx8KHdlWzBdPUguc2xpY2UoMCx4ZSkpLHhlPT09SC5sZW5ndGgpcmV0dXJuIHdlO3ZhciBaZT1ILm1hdGNoKF9uKSxqZT0wLFllPSIiLE10PTAseHQ9IiIsUnQ9IiIsWXQ9MTtpZihaZSlmb3IoTXQ9MDtNdCE9WmUubGVuZ3RoOysrTXQpe2ZvcihSdD1aZVtNdF0sRmU9MDtGZSE9UnQubGVu''@;'; + put 'put ''Z3RoJiY2MSE9PVJ0LmNoYXJDb2RlQXQoRmUpOysrRmUpO2Zvcih4dD1SdC5zbGljZSgwLEZlKS50cmltKCk7MzI9PVJ0LmNoYXJDb2RlQXQoRmUrMSk7KSsrRmU7Zm9yKFl0PTM0PT0oeGU9UnQuY2hhckNvZGVBdChGZSsxKSl8fDM5PT14ZT8xOjAsWWU9UnQuc2xpY2UoRmUrMStZdCxSdC5s''@;'; + put 'put ''ZW5ndGgtWXQpLGplPTA7amUhPXh0Lmxlbmd0aCYmNTghPT14dC5jaGFyQ29kZUF0KGplKTsrK2plKTtpZihqZT09PXh0Lmxlbmd0aCl4dC5pbmRleE9mKCJfIik+MCYmKHh0PXh0LnNsaWNlKDAseHQuaW5kZXhPZigiXyIpKSksd2VbeHRdPVllLFh8fCh3ZVt4dC50b0xvd2VyQ2FzZSgpXT1Z''@;'; + put 'put ''ZSk7ZWxzZXt2YXIgbm49KDU9PT1qZSYmInhtbG5zIj09PXh0LnNsaWNlKDAsNSk/InhtbG5zIjoiIikreHQuc2xpY2UoamUrMSk7aWYod2Vbbm5dJiYiZXh0Ij09eHQuc2xpY2UoamUtMyxqZSkpY29udGludWU7d2Vbbm5dPVllLFh8fCh3ZVtubi50b0xvd2VyQ2FzZSgpXT1ZZSl9fXJldHVy''@;'; + put 'put ''biB3ZX1mdW5jdGlvbiBJbihIKXtyZXR1cm4gSC5yZXBsYWNlKFZuLCI8JDEiKX12YXIgSm49eyImcXVvdDsiOiciJywiJmFwb3M7IjoiJyIsIiZndDsiOiI+IiwiJmx0OyI6IjwiLCImYW1wOyI6IiYifSxvcj10dChKbiksZ3I9ZnVuY3Rpb24oKXt2YXIgSD0vJig/OnF1b3R8YXBvc3xndHxs''@;'; + put 'put ''dHxhbXB8I3g/KFtcZGEtZkEtRl0rKSk7L2dpLHJlPS9feChbXGRhLWZBLUZdezR9KV8vZ2k7cmV0dXJuIGZ1bmN0aW9uIFgod2Upe3ZhciB4ZT13ZSsiIixGZT14ZS5pbmRleE9mKCI8IVtDREFUQVsiKTtpZigtMT09RmUpcmV0dXJuIHhlLnJlcGxhY2UoSCxmdW5jdGlvbihqZSxZZSl7cmV0''@;'; + put 'put ''dXJuIEpuW2plXXx8U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChZZSxqZS5pbmRleE9mKCJ4Iik+LTE/MTY6MTApKXx8amV9KS5yZXBsYWNlKHJlLGZ1bmN0aW9uKGplLFllKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChZZSwxNikpfSk7dmFyIFplPXhlLmluZGV4''@;'; + put 'put ''T2YoIl1dPiIpO3JldHVybiBYKHhlLnNsaWNlKDAsRmUpKSt4ZS5zbGljZShGZSs5LFplKStYKHhlLnNsaWNlKFplKzMpKX19KCksS3I9L1smPD4nIl0vZyxWcj0vW1x1MDAwMC1cdTAwMDhcdTAwMGItXHUwMDFmXS9nLGlpPS9feFswLTlhLWZBLUZdezR9Xy9nO2Z1bmN0aW9uIFJyKEgpe3Jl''@;'; + put 'put ''dHVybihIKyIiKS5yZXBsYWNlKGlpLCJfeDAwNUYkJiIpLnJlcGxhY2UoS3IsZnVuY3Rpb24oWCl7cmV0dXJuIG9yW1hdfSkucmVwbGFjZShWcixmdW5jdGlvbihYKXtyZXR1cm4iX3giKygiMDAwIitYLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNCkrIl8ifSl9ZnVuY3Rp''@;'; + put 'put ''b24gbGkoSCl7cmV0dXJuIFJyKEgpLnJlcGxhY2UoL1xuL2csIl94MDAwYV8iKX1mdW5jdGlvbiBNaShIKXtyZXR1cm4gUnIoSCkucmVwbGFjZSgvIC9nLCJfeDAwMjBfIil9dmFyIG8wPS9bXHUwMDAwLVx1MDAxZl0vZztmdW5jdGlvbiBuMChIKXtyZXR1cm4oSCsiIikucmVwbGFjZShLcixm''@;'; + put 'put ''dW5jdGlvbihYKXtyZXR1cm4gb3JbWF19KS5yZXBsYWNlKC9cbi9nLCI8YnIvPiIpLnJlcGxhY2UobzAsZnVuY3Rpb24oWCl7cmV0dXJuIiYjeCIrKCIwMDAiK1guY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC00KSsiOyJ9KX1mdW5jdGlvbiBkMChIKXtyZXR1cm4oSCsiIiku''@;'; + put 'put ''cmVwbGFjZShLcixmdW5jdGlvbihYKXtyZXR1cm4gb3JbWF19KS5yZXBsYWNlKG8wLGZ1bmN0aW9uKFgpe3JldHVybiImI3giK1guY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9KX12YXIgbTA9ZnVuY3Rpb24oKXt2YXIgSD0vJiMoXGQrKTsvZztmdW5jdGlv''@;'; + put 'put ''biByZShYLHdlKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludCh3ZSwxMCkpfXJldHVybiBmdW5jdGlvbih3ZSl7cmV0dXJuIHdlLnJlcGxhY2UoSCxyZSl9fSgpO2Z1bmN0aW9uIERpKEgpe3N3aXRjaChIKXtjYXNlIDE6Y2FzZSEwOmNhc2UiMSI6Y2FzZSJ0cnVlIjpjYXNl''@;'; + put 'put ''IlRSVUUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fXZhciBXMD1mdW5jdGlvbihyZSl7Zm9yKHZhciBYPSIiLHdlPTAseGU9MCxGZT0wLFplPTAsamU9MCxZZT0wO3dlPHJlLmxlbmd0aDspKHhlPXJlLmNoYXJDb2RlQXQod2UrKykpPDEyOD9YKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHhl''@;'; + put 'put ''KTooRmU9cmUuY2hhckNvZGVBdCh3ZSsrKSx4ZT4xOTEmJnhlPDIyND8oamU9KDMxJnhlKTw8NixqZXw9NjMmRmUsWCs9U3RyaW5nLmZyb21DaGFyQ29kZShqZSkpOihaZT1yZS5jaGFyQ29kZUF0KHdlKyspLHhlPDI0MD9YKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgxNSZ4ZSk8PDEyfCg2MyZG''@;'; + put 'put ''ZSk8PDZ8NjMmWmUpOihZZT0oKDcmeGUpPDwxOHwoNjMmRmUpPDwxMnwoNjMmWmUpPDw2fDYzJihqZT1yZS5jaGFyQ29kZUF0KHdlKyspKSktNjU1MzYsWCs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NisoWWU+Pj4xMCYxMDIzKSksWCs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NjMyMCsoMTAy''@;'; + put 'put ''MyZZZSkpKSkpO3JldHVybiBYfSxFbz1mdW5jdGlvbihIKXtmb3IodmFyIHJlPVtdLFg9MCx3ZT0wLHhlPTA7WDxILmxlbmd0aDspc3dpdGNoKHdlPUguY2hhckNvZGVBdChYKyspLCEwKXtjYXNlIHdlPDEyODpyZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUod2UpKTticmVhaztjYXNlIHdl''@;'; + put 'put ''PDIwNDg6cmUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDE5Misod2U+PjYpKSkscmUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsoNjMmd2UpKSk7YnJlYWs7Y2FzZSB3ZT49NTUyOTYmJndlPDU3MzQ0OndlLT01NTI5Nix4ZT1ILmNoYXJDb2RlQXQoWCsrKS01NjMyMCsod2U8PDEw''@;'; + put 'put ''KSxyZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMjQwKyh4ZT4+MTgmNykpKSxyZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTQ0Kyh4ZT4+MTImNjMpKSkscmUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsoeGU+PjYmNjMpKSkscmUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2Rl''@;'; + put 'put ''KDEyOCsoNjMmeGUpKSk7YnJlYWs7ZGVmYXVsdDpyZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMjI0Kyh3ZT4+MTIpKSkscmUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsod2U+PjYmNjMpKSkscmUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsoNjMmd2UpKSl9cmV0dXJu''@;'; + put 'put ''IHJlLmpvaW4oIiIpfTtpZihJZSl7dmFyIHFvPWZ1bmN0aW9uKHJlKXt2YXIgd2UseGUsWWUsWD1CdWZmZXIuYWxsb2MoMipyZS5sZW5ndGgpLEZlPTEsWmU9MCxqZT0wO2Zvcih4ZT0wO3hlPHJlLmxlbmd0aDt4ZSs9RmUpRmU9MSwoWWU9cmUuY2hhckNvZGVBdCh4ZSkpPDEyOD93ZT1ZZTpZ''@;'; + put 'put ''ZTwyMjQ/KHdlPTY0KigzMSZZZSkrKDYzJnJlLmNoYXJDb2RlQXQoeGUrMSkpLEZlPTIpOlllPDI0MD8od2U9NDA5NiooMTUmWWUpKzY0Kig2MyZyZS5jaGFyQ29kZUF0KHhlKzEpKSsoNjMmcmUuY2hhckNvZGVBdCh4ZSsyKSksRmU9Myk6KEZlPTQsd2U9MjYyMTQ0Kig3JlllKSs0MDk2Kig2''@;'; + put 'put ''MyZyZS5jaGFyQ29kZUF0KHhlKzEpKSs2NCooNjMmcmUuY2hhckNvZGVBdCh4ZSsyKSkrKDYzJnJlLmNoYXJDb2RlQXQoeGUrMykpLGplPTU1Mjk2Kygod2UtPTY1NTM2KT4+PjEwJjEwMjMpLHdlPTU2MzIwKygxMDIzJndlKSksMCE9PWplJiYoWFtaZSsrXT0yNTUmamUsWFtaZSsrXT1qZT4+''@;'; + put 'put ''PjgsamU9MCksWFtaZSsrXT13ZSUyNTYsWFtaZSsrXT13ZT4+Pjg7cmV0dXJuIFguc2xpY2UoMCxaZSkudG9TdHJpbmcoInVjczIiKX0sY2E9ImZvbyBiYXIgYmF6XHhlMlx4OThceDgzXHhmMFx4OWZceDhkXHhhMyI7VzAoY2EpPT1xbyhjYSkmJihXMD1xbyk7dmFyIGxsPWZ1bmN0aW9uKHJl''@;'; + put 'put ''KXtyZXR1cm4gVGUocmUsImJpbmFyeSIpLnRvU3RyaW5nKCJ1dGY4Iil9O1cwKGNhKT09bGwoY2EpJiYoVzA9bGwpLEVvPWZ1bmN0aW9uKEgpe3JldHVybiBUZShILCJ1dGY4IikudG9TdHJpbmcoImJpbmFyeSIpfX12YXIgSCxRaT0oSD17fSxmdW5jdGlvbihYLHdlKXt2YXIgeGU9WCsifCIr''@;'; + put 'put ''KHdlfHwiIik7cmV0dXJuIEhbeGVdP0hbeGVdOkhbeGVdPW5ldyBSZWdFeHAoIjwoPzpcXHcrOik/IitYKycoPzogeG1sOnNwYWNlPSJwcmVzZXJ2ZSIpPyg/OltePl0qKT4oW1xcc1xcU10qPyk8Lyg/Olxcdys6KT8nK1grIj4iLHdlfHwiIil9KSxNYT1mdW5jdGlvbigpe3ZhciBIPVtbIm5i''@;'; + put 'put ''c3AiLCIgIl0sWyJtaWRkb3QiLCJceGI3Il0sWyJxdW90IiwnIiddLFsiYXBvcyIsIiciXSxbImd0IiwiPiJdLFsibHQiLCI8Il0sWyJhbXAiLCImIl1dLm1hcChmdW5jdGlvbihyZSl7cmV0dXJuW25ldyBSZWdFeHAoIiYiK3JlWzBdKyI7IiwiaWciKSxyZVsxXV19KTtyZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24oWCl7Zm9yKHZhciB3ZT1YLnJlcGxhY2UoL15bXHRcblxyIF0rLywiIikucmVwbGFjZSgvW1x0XG5cciBdKyQvLCIiKS5yZXBsYWNlKC9bXHRcblxyIF0rL2csIiAiKS5yZXBsYWNlKC88XHMqW2JCXVtyUl1ccypcLz8+L2csIlxuIikucmVwbGFjZSgvPFtePl0qPi9nLCIiKSx4ZT0wO3hl''@;'; + put 'put ''PEgubGVuZ3RoOysreGUpd2U9d2UucmVwbGFjZShIW3hlXVswXSxIW3hlXVsxXSk7cmV0dXJuIHdlfX0oKSxubD1mdW5jdGlvbigpe3ZhciBIPXt9O3JldHVybiBmdW5jdGlvbihYKXtyZXR1cm4gdm9pZCAwIT09SFtYXT9IW1hdOkhbWF09bmV3IFJlZ0V4cCgiPCg/OnZ0Oik/IitYKyI+KFtc''@;'; + put 'put ''XHNcXFNdKj8pPC8oPzp2dDopPyIrWCsiPiIsImciKX19KCksZ2w9LzxcLz8oPzp2dDopP3ZhcmlhbnQ+L2csQWk9LzwoPzp2dDopKFtePl0qKT4oW1xzXFNdKik8LztmdW5jdGlvbiB2aShILHJlKXt2YXIgWD1lbihIKSx3ZT1ILm1hdGNoKG5sKFguYmFzZVR5cGUpKXx8W10seGU9W107aWYo''@;'; + put 'put ''d2UubGVuZ3RoIT1YLnNpemUpe2lmKHJlLldURil0aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgdmVjdG9yIGxlbmd0aCAiK3dlLmxlbmd0aCsiICE9ICIrWC5zaXplKTtyZXR1cm4geGV9cmV0dXJuIHdlLmZvckVhY2goZnVuY3Rpb24oRmUpe3ZhciBaZT1GZS5yZXBsYWNlKGdsLCIiKS5t''@;'; + put 'put ''YXRjaChBaSk7WmUmJnhlLnB1c2goe3Y6VzAoWmVbMl0pLHQ6WmVbMV19KX0pLHhlfXZhciBiMD0vKF5cc3xccyR8XG4pLztmdW5jdGlvbiBzYShILHJlKXtyZXR1cm4iPCIrSCsocmUubWF0Y2goYjApPycgeG1sOnNwYWNlPSJwcmVzZXJ2ZSInOiIiKSsiPiIrcmUrIjwvIitIKyI+In1mdW5j''@;'; + put 'put ''dGlvbiBybChIKXtyZXR1cm4gb24oSCkubWFwKGZ1bmN0aW9uKHJlKXtyZXR1cm4iICIrcmUrJz0iJytIW3JlXSsnIid9KS5qb2luKCIiKX1mdW5jdGlvbiBiaShILHJlLFgpe3JldHVybiI8IitIKyhudWxsIT1YP3JsKFgpOiIiKSsobnVsbCE9cmU/KHJlLm1hdGNoKGIwKT8nIHhtbDpzcGFj''@;'; + put 'put ''ZT0icHJlc2VydmUiJzoiIikrIj4iK3JlKyI8LyIrSDoiLyIpKyI+In1mdW5jdGlvbiBVMChILHJlKXt0cnl7cmV0dXJuIEgudG9JU09TdHJpbmcoKS5yZXBsYWNlKC9cLlxkKi8sIiIpfWNhdGNoKFgpe2lmKHJlKXRocm93IFh9cmV0dXJuIiJ9dmFyIGZpLFIwLFgwPXtkYzoiaHR0cDovL3B1''@;'; + put 'put ''cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLGRjdGVybXM6Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy8iLGRjbWl0eXBlOiJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvIixteDoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvbWFjL2V4Y2VsLzIwMDgvbWFpbiIscjoi''@;'; + put 'put ''aHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcyIsc2pzOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3NoZWV0anMvY29yZS1wcm9wZXJ0aWVzIix2dDoiaHR0cDovL3NjaGVtYXMu''@;'; + put 'put ''b3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvZG9jUHJvcHNWVHlwZXMiLHhzaToiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLHhzZDoiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiLG1haW46WyJodHRwOi8vc2NoZW1hcy5v''@;'; + put 'put ''cGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW4iLCJodHRwOi8vcHVybC5vY2xjLm9yZy9vb3htbC9zcHJlYWRzaGVldG1sL21haW4iLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9leGNlbC8yMDA2L21haW4iLCJodHRwOi8vc2NoZW1hcy5taWNy''@;'; + put 'put ''b3NvZnQuY29tL29mZmljZS9leGNlbC8yMDA2LzIiXX0sdWFfbz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIix1YV94PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpleGNlbCIsdWFfc3M9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNl''@;'; + put 'put ''OnNwcmVhZHNoZWV0Iix1YV92PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnZtbCIsdm49ZnVuY3Rpb24oSCl7Zm9yKHZhciByZT1bXSx3ZT0wO3dlPEhbMF0ubGVuZ3RoOysrd2UpaWYoSFswXVt3ZV0pZm9yKHZhciB4ZT0wLEZlPUhbMF1bd2VdLmxlbmd0aDt4ZTxGZTt4ZSs9MTAyNDAp''@;'; + put 'put ''cmUucHVzaC5hcHBseShyZSxIWzBdW3dlXS5zbGljZSh4ZSx4ZSsxMDI0MCkpO3JldHVybiByZX0sXzA9dm4sZ2M9ZnVuY3Rpb24oSCxyZSxYKXtmb3IodmFyIHdlPVtdLHhlPXJlO3hlPFg7eGUrPTIpd2UucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKFJzKEgseGUpKSk7cmV0dXJuIHdlLmpv''@;'; + put 'put ''aW4oIiIpLnJlcGxhY2UoVCwiIil9LGRkPWdjLEIxPWZ1bmN0aW9uKEgscmUsWCl7Zm9yKHZhciB3ZT1bXSx4ZT1yZTt4ZTxyZStYOysreGUpd2UucHVzaCgoIjAiK0hbeGVdLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpKTtyZXR1cm4gd2Uuam9pbigiIil9LGF1PUIxLFAxPWZ1bmN0aW9uKEgs''@;'; + put 'put ''cmUsWCl7Zm9yKHZhciB3ZT1bXSx4ZT1yZTt4ZTxYO3hlKyspd2UucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKFRpKEgseGUpKSk7cmV0dXJuIHdlLmpvaW4oIiIpfSxtYz1QMSx4Mj1mdW5jdGlvbihILHJlKXt2YXIgWD1ZbChILHJlKTtyZXR1cm4gWD4wP1AxKEgscmUrNCxyZSs0K1gtMSk6''@;'; + put 'put ''IiJ9LFBsPXgyLGQzPWZ1bmN0aW9uKEgscmUpe3ZhciBYPVlsKEgscmUpO3JldHVybiBYPjA/UDEoSCxyZSs0LHJlKzQrWC0xKToiIn0sVTI9ZDMsczE9ZnVuY3Rpb24oSCxyZSl7dmFyIFg9MipZbChILHJlKTtyZXR1cm4gWD4wP1AxKEgscmUrNCxyZSs0K1gtMSk6IiJ9LFowPXMxO2ZpPVIw''@;'; + put 'put ''PWZ1bmN0aW9uKHJlLFgpe3ZhciB3ZT1ZbChyZSxYKTtyZXR1cm4gd2U+MD9nYyhyZSxYKzQsWCs0K3dlKToiIn07dmFyIGhzLG4yLG1vPWZ1bmN0aW9uKEgscmUpe3ZhciBYPVlsKEgscmUpO3JldHVybiBYPjA/UDEoSCxyZSs0LHJlKzQrWCk6IiJ9LHJzPW1vO2hzPW4yPWZ1bmN0aW9uKEgs''@;'; + put 'put ''cmUpe3JldHVybiBmdW5jdGlvbiBqMChILHJlKXtmb3IodmFyIFg9MS0yKihIW3JlKzddPj4+Nyksd2U9KCgxMjcmSFtyZSs3XSk8PDQpKyhIW3JlKzZdPj4+NCYxNSkseGU9MTUmSFtyZSs2XSxGZT01O0ZlPj0wOy0tRmUpeGU9MjU2KnhlK0hbcmUrRmVdO3JldHVybiAyMDQ3PT13ZT8wPT14''@;'; + put 'put ''ZT9YKigxLzApOk5hTjooMD09d2U/d2U9LTEwMjI6KHdlLT0xMDIzLHhlKz1NYXRoLnBvdygyLDUyKSksWCpNYXRoLnBvdygyLHdlLTUyKSp4ZSl9KEgscmUpfTt2YXIgVDI9ZnVuY3Rpb24ocmUpe3JldHVybiBBcnJheS5pc0FycmF5KHJlKX07SWUmJihnYz1mdW5jdGlvbihILHJlLFgpe3Jl''@;'; + put 'put ''dHVybiBCdWZmZXIuaXNCdWZmZXIoSCk/SC50b1N0cmluZygidXRmMTZsZSIscmUsWCkucmVwbGFjZShULCIiKTpkZChILHJlLFgpfSxCMT1mdW5jdGlvbihILHJlLFgpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoSCk/SC50b1N0cmluZygiaGV4IixyZSxyZStYKTphdShILHJlLFgpfSx4Mj1m''@;'; + put 'put ''dW5jdGlvbihyZSxYKXtpZighQnVmZmVyLmlzQnVmZmVyKHJlKSlyZXR1cm4gUGwocmUsWCk7dmFyIHdlPXJlLnJlYWRVSW50MzJMRShYKTtyZXR1cm4gd2U+MD9yZS50b1N0cmluZygidXRmOCIsWCs0LFgrNCt3ZS0xKToiIn0sZDM9ZnVuY3Rpb24ocmUsWCl7aWYoIUJ1ZmZlci5pc0J1ZmZl''@;'; + put 'put ''cihyZSkpcmV0dXJuIFUyKHJlLFgpO3ZhciB3ZT1yZS5yZWFkVUludDMyTEUoWCk7cmV0dXJuIHdlPjA/cmUudG9TdHJpbmcoInV0ZjgiLFgrNCxYKzQrd2UtMSk6IiJ9LHMxPWZ1bmN0aW9uKHJlLFgpe2lmKCFCdWZmZXIuaXNCdWZmZXIocmUpKXJldHVybiBaMChyZSxYKTt2YXIgd2U9Mipy''@;'; + put 'put ''ZS5yZWFkVUludDMyTEUoWCk7cmV0dXJuIHJlLnRvU3RyaW5nKCJ1dGYxNmxlIixYKzQsWCs0K3dlLTEpfSxmaT1mdW5jdGlvbihyZSxYKXtpZighQnVmZmVyLmlzQnVmZmVyKHJlKSlyZXR1cm4gUjAocmUsWCk7dmFyIHdlPXJlLnJlYWRVSW50MzJMRShYKTtyZXR1cm4gcmUudG9TdHJpbmco''@;'; + put 'put ''InV0ZjE2bGUiLFgrNCxYKzQrd2UpfSxtbz1mdW5jdGlvbihyZSxYKXtpZighQnVmZmVyLmlzQnVmZmVyKHJlKSlyZXR1cm4gcnMocmUsWCk7dmFyIHdlPXJlLnJlYWRVSW50MzJMRShYKTtyZXR1cm4gcmUudG9TdHJpbmcoInV0ZjgiLFgrNCxYKzQrd2UpfSxQMT1mdW5jdGlvbihyZSxYLHdl''@;'; + put 'put ''KXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKHJlKT9yZS50b1N0cmluZygidXRmOCIsWCx3ZSk6bWMocmUsWCx3ZSl9LHZuPWZ1bmN0aW9uKEgpe3JldHVybiBIWzBdLmxlbmd0aD4wJiZCdWZmZXIuaXNCdWZmZXIoSFswXVswXSk/QnVmZmVyLmNvbmNhdChIWzBdKTpfMChIKX0sVj1mdW5jdGlv''@;'; + put 'put ''bihIKXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKEhbMF0pP0J1ZmZlci5jb25jYXQoSCk6W10uY29uY2F0LmFwcGx5KFtdLEgpfSxocz1mdW5jdGlvbihyZSxYKXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKHJlKT9yZS5yZWFkRG91YmxlTEUoWCk6bjIocmUsWCl9LFQyPWZ1bmN0aW9uKHJlKXty''@;'; + put 'put ''ZXR1cm4gQnVmZmVyLmlzQnVmZmVyKHJlKXx8QXJyYXkuaXNBcnJheShyZSl9KSwidW5kZWZpbmVkIiE9dHlwZW9mIGNwdGFibGUmJihnYz1mdW5jdGlvbihILHJlLFgpe3JldHVybiBjcHRhYmxlLnV0aWxzLmRlY29kZSgxMjAwLEguc2xpY2UocmUsWCkpLnJlcGxhY2UoVCwiIil9LFAxPWZ1''@;'; + put 'put ''bmN0aW9uKEgscmUsWCl7cmV0dXJuIGNwdGFibGUudXRpbHMuZGVjb2RlKDY1MDAxLEguc2xpY2UocmUsWCkpfSx4Mj1mdW5jdGlvbihILHJlKXt2YXIgWD1ZbChILHJlKTtyZXR1cm4gWD4wP2NwdGFibGUudXRpbHMuZGVjb2RlKFosSC5zbGljZShyZSs0LHJlKzQrWC0xKSk6IiJ9LGQzPWZ1''@;'; + put 'put ''bmN0aW9uKEgscmUpe3ZhciBYPVlsKEgscmUpO3JldHVybiBYPjA/Y3B0YWJsZS51dGlscy5kZWNvZGUoUSxILnNsaWNlKHJlKzQscmUrNCtYLTEpKToiIn0sczE9ZnVuY3Rpb24oSCxyZSl7dmFyIFg9MipZbChILHJlKTtyZXR1cm4gWD4wP2NwdGFibGUudXRpbHMuZGVjb2RlKDEyMDAsSC5z''@;'; + put 'put ''bGljZShyZSs0LHJlKzQrWC0xKSk6IiJ9LGZpPWZ1bmN0aW9uKEgscmUpe3ZhciBYPVlsKEgscmUpO3JldHVybiBYPjA/Y3B0YWJsZS51dGlscy5kZWNvZGUoMTIwMCxILnNsaWNlKHJlKzQscmUrNCtYKSk6IiJ9LG1vPWZ1bmN0aW9uKEgscmUpe3ZhciBYPVlsKEgscmUpO3JldHVybiBYPjA/''@;'; + put 'put ''Y3B0YWJsZS51dGlscy5kZWNvZGUoNjUwMDEsSC5zbGljZShyZSs0LHJlKzQrWCkpOiIifSk7dmFyIFRpPWZ1bmN0aW9uKEgscmUpe3JldHVybiBIW3JlXX0sUnM9ZnVuY3Rpb24oSCxyZSl7cmV0dXJuIDI1NipIW3JlKzFdK0hbcmVdfSxOZj1mdW5jdGlvbihILHJlKXt2YXIgWD0yNTYqSFty''@;'; + put 'put ''ZSsxXStIW3JlXTtyZXR1cm4gWDwzMjc2OD9YOi0xKig2NTUzNS1YKzEpfSxZbD1mdW5jdGlvbihILHJlKXtyZXR1cm4gSFtyZSszXSooMTw8MjQpKyhIW3JlKzJdPDwxNikrKEhbcmUrMV08PDgpK0hbcmVdfSxOYz1mdW5jdGlvbihILHJlKXtyZXR1cm4gSFtyZSszXTw8MjR8SFtyZSsyXTw8''@;'; + put 'put ''MTZ8SFtyZSsxXTw8OHxIW3JlXX0sY289ZnVuY3Rpb24oSCxyZSl7cmV0dXJuIEhbcmVdPDwyNHxIW3JlKzFdPDwxNnxIW3JlKzJdPDw4fEhbcmUrM119O2Z1bmN0aW9uIEM0KEgscmUpe3ZhciB3ZSx4ZSxaZSxqZSxZZSxNdCxYPSIiLEZlPVtdO3N3aXRjaChyZSl7Y2FzZSJkYmNzIjppZihN''@;'; + put 'put ''dD10aGlzLmwsSWUmJkJ1ZmZlci5pc0J1ZmZlcih0aGlzKSlYPXRoaXMuc2xpY2UodGhpcy5sLHRoaXMubCsyKkgpLnRvU3RyaW5nKCJ1dGYxNmxlIik7ZWxzZSBmb3IoWWU9MDtZZTxIOysrWWUpWCs9U3RyaW5nLmZyb21DaGFyQ29kZShScyh0aGlzLE10KSksTXQrPTI7SCo9MjticmVhaztj''@;'; + put 'put ''YXNlInV0ZjgiOlg9UDEodGhpcyx0aGlzLmwsdGhpcy5sK0gpO2JyZWFrO2Nhc2UidXRmMTZsZSI6WD1nYyh0aGlzLHRoaXMubCx0aGlzLmwrKEgqPTIpKTticmVhaztjYXNlIndzdHIiOmlmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3B0YWJsZSlyZXR1cm4gQzQuY2FsbCh0aGlzLEgsImRiY3Mi''@;'; + put 'put ''KTtYPWNwdGFibGUudXRpbHMuZGVjb2RlKFEsdGhpcy5zbGljZSh0aGlzLmwsdGhpcy5sKzIqSCkpLEgqPTI7YnJlYWs7Y2FzZSJscHN0ci1hbnNpIjpYPXgyKHRoaXMsdGhpcy5sKSxIPTQrWWwodGhpcyx0aGlzLmwpO2JyZWFrO2Nhc2UibHBzdHItY3AiOlg9ZDModGhpcyx0aGlzLmwpLEg9''@;'; + put 'put ''NCtZbCh0aGlzLHRoaXMubCk7YnJlYWs7Y2FzZSJscHdzdHIiOlg9czEodGhpcyx0aGlzLmwpLEg9NCsyKllsKHRoaXMsdGhpcy5sKTticmVhaztjYXNlImxwcDQiOkg9NCtZbCh0aGlzLHRoaXMubCksWD1maSh0aGlzLHRoaXMubCksMiZIJiYoSCs9Mik7YnJlYWs7Y2FzZSI4bHBwNCI6SD00''@;'; + put 'put ''K1lsKHRoaXMsdGhpcy5sKSxYPW1vKHRoaXMsdGhpcy5sKSwzJkgmJihIKz00LSgzJkgpKTticmVhaztjYXNlImNzdHIiOmZvcihIPTAsWD0iIjswIT09KFplPVRpKHRoaXMsdGhpcy5sK0grKykpOylGZS5wdXNoKGRlKFplKSk7WD1GZS5qb2luKCIiKTticmVhaztjYXNlIl93c3RyIjpmb3Io''@;'; + put 'put ''SD0wLFg9IiI7MCE9PShaZT1Scyh0aGlzLHRoaXMubCtIKSk7KUZlLnB1c2goZGUoWmUpKSxIKz0yO0grPTIsWD1GZS5qb2luKCIiKTticmVhaztjYXNlImRiY3MtY29udCI6Zm9yKFg9IiIsTXQ9dGhpcy5sLFllPTA7WWU8SDsrK1llKXtpZih0aGlzLmxlbnMmJi0xIT09dGhpcy5sZW5zLmlu''@;'; + put 'put ''ZGV4T2YoTXQpKXJldHVybiBaZT1UaSh0aGlzLE10KSx0aGlzLmw9TXQrMSxqZT1DNC5jYWxsKHRoaXMsSC1ZZSxaZT8iZGJjcy1jb250Ijoic2Jjcy1jb250IiksRmUuam9pbigiIikramU7RmUucHVzaChkZShScyh0aGlzLE10KSkpLE10Kz0yfVg9RmUuam9pbigiIiksSCo9MjticmVhaztj''@;'; + put 'put ''YXNlImNwc3RyIjppZigidW5kZWZpbmVkIiE9dHlwZW9mIGNwdGFibGUpe1g9Y3B0YWJsZS51dGlscy5kZWNvZGUoUSx0aGlzLnNsaWNlKHRoaXMubCx0aGlzLmwrSCkpO2JyZWFrfWNhc2Uic2Jjcy1jb250Ijpmb3IoWD0iIixNdD10aGlzLmwsWWU9MDtZZSE9SDsrK1llKXtpZih0aGlzLmxl''@;'; + put 'put ''bnMmJi0xIT09dGhpcy5sZW5zLmluZGV4T2YoTXQpKXJldHVybiBaZT1UaSh0aGlzLE10KSx0aGlzLmw9TXQrMSxqZT1DNC5jYWxsKHRoaXMsSC1ZZSxaZT8iZGJjcy1jb250Ijoic2Jjcy1jb250IiksRmUuam9pbigiIikramU7RmUucHVzaChkZShUaSh0aGlzLE10KSkpLE10Kz0xfVg9RmUu''@;'; + put 'put ''am9pbigiIik7YnJlYWs7ZGVmYXVsdDpzd2l0Y2goSCl7Y2FzZSAxOnJldHVybiB3ZT1UaSh0aGlzLHRoaXMubCksdGhpcy5sKyssd2U7Y2FzZSAyOnJldHVybiB3ZT0oImkiPT09cmU/TmY6UnMpKHRoaXMsdGhpcy5sKSx0aGlzLmwrPTIsd2U7Y2FzZSA0OmNhc2UtNDpyZXR1cm4iaSI9PT1y''@;'; + put 'put ''ZXx8MD09KDEyOCZ0aGlzW3RoaXMubCszXSk/KHdlPShIPjA/TmM6Y28pKHRoaXMsdGhpcy5sKSx0aGlzLmwrPTQsd2UpOih4ZT1ZbCh0aGlzLHRoaXMubCksdGhpcy5sKz00LHhlKTtjYXNlIDg6Y2FzZS04OmlmKCJmIj09PXJlKXJldHVybiB4ZT04PT1IP2hzKHRoaXMsdGhpcy5sKTpocyhb''@;'; + put 'put ''dGhpc1t0aGlzLmwrN10sdGhpc1t0aGlzLmwrNl0sdGhpc1t0aGlzLmwrNV0sdGhpc1t0aGlzLmwrNF0sdGhpc1t0aGlzLmwrM10sdGhpc1t0aGlzLmwrMl0sdGhpc1t0aGlzLmwrMV0sdGhpc1t0aGlzLmwrMF1dLDApLHRoaXMubCs9OCx4ZTtIPTg7Y2FzZSAxNjpYPUIxKHRoaXMsdGhpcy5s''@;'; + put 'put ''LEgpfX1yZXR1cm4gdGhpcy5sKz1ILFh9dmFyIFVzPWZ1bmN0aW9uKEgscmUsWCl7SFtYXT0yNTUmcmUsSFtYKzFdPXJlPj4+OCYyNTV9O2Z1bmN0aW9uIG1zKEgscmUsWCl7dmFyIHdlPTAseGU9MDtpZigiZGJjcyI9PT1YKXtmb3IoeGU9MDt4ZSE9cmUubGVuZ3RoOysreGUpVXModGhpcyxy''@;'; + put 'put ''ZS5jaGFyQ29kZUF0KHhlKSx0aGlzLmwrMip4ZSk7d2U9MipyZS5sZW5ndGh9ZWxzZSBpZigic2JjcyI9PT1YKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGNwdGFibGUmJjg3ND09Wilmb3IoeGU9MDt4ZSE9cmUubGVuZ3RoOysreGUpe3ZhciBGZT1jcHRhYmxlLnV0aWxzLmVuY29kZShaLHJl''@;'; + put 'put ''LmNoYXJBdCh4ZSkpO3RoaXNbdGhpcy5sK3hlXT1GZVswXX1lbHNlIGZvcihyZT1yZS5yZXBsYWNlKC9bXlx4MDAtXHg3Rl0vZywiXyIpLHhlPTA7eGUhPXJlLmxlbmd0aDsrK3hlKXRoaXNbdGhpcy5sK3hlXT0yNTUmcmUuY2hhckNvZGVBdCh4ZSk7d2U9cmUubGVuZ3RofWVsc2V7aWYoImhl''@;'; + put 'put ''eCI9PT1YKXtmb3IoO3hlPEg7Kyt4ZSl0aGlzW3RoaXMubCsrXT1wYXJzZUludChyZS5zbGljZSgyKnhlLDIqeGUrMiksMTYpfHwwO3JldHVybiB0aGlzfWlmKCJ1dGYxNmxlIj09PVgpe3ZhciBaZT1NYXRoLm1pbih0aGlzLmwrSCx0aGlzLmxlbmd0aCk7Zm9yKHhlPTA7eGU8TWF0aC5taW4o''@;'; + put 'put ''cmUubGVuZ3RoLEgpOysreGUpe3ZhciBqZT1yZS5jaGFyQ29kZUF0KHhlKTt0aGlzW3RoaXMubCsrXT0yNTUmamUsdGhpc1t0aGlzLmwrK109amU+Pjh9Zm9yKDt0aGlzLmw8WmU7KXRoaXNbdGhpcy5sKytdPTA7cmV0dXJuIHRoaXN9c3dpdGNoKEgpe2Nhc2UgMTp3ZT0xLHRoaXNbdGhpcy5s''@;'; + put 'put ''XT0yNTUmcmU7YnJlYWs7Y2FzZSAyOndlPTIsdGhpc1t0aGlzLmxdPTI1NSZyZSx0aGlzW3RoaXMubCsxXT0yNTUmKHJlPj4+PTgpO2JyZWFrO2Nhc2UgMzp3ZT0zLHRoaXNbdGhpcy5sXT0yNTUmcmUsdGhpc1t0aGlzLmwrMV09MjU1JihyZT4+Pj04KSx0aGlzW3RoaXMubCsyXT0yNTUmKHJl''@;'; + put 'put ''Pj4+PTgpO2JyZWFrO2Nhc2UgNDp3ZT00LGZ1bmN0aW9uKEgscmUsWCl7SFtYXT0yNTUmcmUsSFtYKzFdPXJlPj4+OCYyNTUsSFtYKzJdPXJlPj4+MTYmMjU1LEhbWCszXT1yZT4+PjI0JjI1NX0odGhpcyxyZSx0aGlzLmwpO2JyZWFrO2Nhc2UgODppZih3ZT04LCJmIj09PVgpeyFmdW5jdGlv''@;'; + put 'put ''biBCbChILHJlLFgpe3ZhciB3ZT0ocmU8MHx8MS9yZT09LTEvMD8xOjApPDw3LHhlPTAsRmU9MCxaZT13ZT8tcmU6cmU7aXNGaW5pdGUoWmUpPzA9PVplP3hlPUZlPTA6KHhlPU1hdGguZmxvb3IoTWF0aC5sb2coWmUpL01hdGguTE4yKSxGZT1aZSpNYXRoLnBvdygyLDUyLXhlKSx4ZTw9LTEw''@;'; + put 'put ''MjMmJighaXNGaW5pdGUoRmUpfHxGZTxNYXRoLnBvdygyLDUyKSk/eGU9LTEwMjI6KEZlLT1NYXRoLnBvdygyLDUyKSx4ZSs9MTAyMykpOih4ZT0yMDQ3LEZlPWlzTmFOKHJlKT8yNjk4NTowKTtmb3IodmFyIGplPTA7amU8PTU7KytqZSxGZS89MjU2KUhbWCtqZV09MjU1JkZlO0hbWCs2XT0o''@;'; + put 'put ''MTUmeGUpPDw0fDE1JkZlLEhbWCs3XT14ZT4+NHx3ZX0odGhpcyxyZSx0aGlzLmwpO2JyZWFrfWNhc2UgMTY6YnJlYWs7Y2FzZS00OndlPTQsZnVuY3Rpb24oSCxyZSxYKXtIW1hdPTI1NSZyZSxIW1grMV09cmU+PjgmMjU1LEhbWCsyXT1yZT4+MTYmMjU1LEhbWCszXT1yZT4+MjQmMjU1fSh0''@;'; + put 'put ''aGlzLHJlLHRoaXMubCl9fXJldHVybiB0aGlzLmwrPXdlLHRoaXN9ZnVuY3Rpb24gRjEoSCxyZSl7dmFyIFg9QjEodGhpcyx0aGlzLmwsSC5sZW5ndGg+PjEpO2lmKFghPT1IKXRocm93IG5ldyBFcnJvcihyZSsiRXhwZWN0ZWQgIitIKyIgc2F3ICIrWCk7dGhpcy5sKz1ILmxlbmd0aD4+MX1m''@;'; + put 'put ''dW5jdGlvbiBLbChILHJlKXtILmw9cmUsSC5yZWFkX3NoaWZ0PUM0LEguY2hrPUYxLEgud3JpdGVfc2hpZnQ9bXN9ZnVuY3Rpb24gX3MoSCxyZSl7SC5sKz1yZX1mdW5jdGlvbiBSaShIKXt2YXIgcmU9aGUoSCk7cmV0dXJuIEtsKHJlLDApLHJlfWZ1bmN0aW9uIEgxKEgscmUsWCl7aWYoSCl7''@;'; + put 'put ''dmFyIHdlLHhlLEZlO0tsKEgsSC5sfHwwKTtmb3IodmFyIFplPUgubGVuZ3RoLGplPTAsWWU9MDtILmw8WmU7KXsxMjgmKGplPUgucmVhZF9zaGlmdCgxKSkmJihqZT0oMTI3JmplKSsoKDEyNyZILnJlYWRfc2hpZnQoMSkpPDw3KSk7dmFyIE10PXg1W2plXXx8eDVbNjU1MzVdO2ZvcihGZT0x''@;'; + put 'put ''MjcmKHdlPUgucmVhZF9zaGlmdCgxKSkseGU9MTt4ZTw0JiYxMjgmd2U7Kyt4ZSlGZSs9KDEyNyYod2U9SC5yZWFkX3NoaWZ0KDEpKSk8PDcqeGU7WWU9SC5sK0ZlO3ZhciB4dD0oTXQuZnx8X3MpKEgsRmUsWCk7aWYoSC5sPVllLHJlKHh0LE10Lm4samUpKXJldHVybn19fWZ1bmN0aW9uIFEy''@;'; + put 'put ''KCl7dmFyIEg9W10scmU9SWU/MjU2OjIwNDgsWD1mdW5jdGlvbihNdCl7dmFyIHh0PVJpKE10KTtyZXR1cm4gS2woeHQsMCkseHR9LHdlPVgocmUpLHhlPWZ1bmN0aW9uKCl7IXdlfHwod2UubGVuZ3RoPndlLmwmJigod2U9d2Uuc2xpY2UoMCx3ZS5sKSkubD13ZS5sZW5ndGgpLHdlLmxlbmd0''@;'; + put 'put ''aD4wJiZILnB1c2god2UpLHdlPW51bGwpfSxGZT1mdW5jdGlvbihNdCl7cmV0dXJuIHdlJiZNdDx3ZS5sZW5ndGgtd2UubD93ZTooeGUoKSx3ZT1YKE1hdGgubWF4KE10KzEscmUpKSl9O3JldHVybntuZXh0OkZlLHB1c2g6ZnVuY3Rpb24oTXQpe3hlKCksbnVsbD09KHdlPU10KS5sJiYod2Uu''@;'; + put 'put ''bD13ZS5sZW5ndGgpLEZlKHJlKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHhlKCksdm4oW0hdKX0sX2J1ZnM6SH19ZnVuY3Rpb24gQzAoSCxyZSxYLHdlKXt2YXIgRmUseGU9K25UW3JlXTtpZighaXNOYU4oeGUpKXt3ZXx8KHdlPXg1W3hlXS5wfHwoWHx8W10pLmxlbmd0aHx8MCksRmU9MSso''@;'; + put 'put ''eGU+PTEyOD8xOjApKzEsd2U+PTEyOCYmKytGZSx3ZT49MTYzODQmJisrRmUsd2U+PTIwOTcxNTImJisrRmU7dmFyIFplPUgubmV4dChGZSk7eGU8PTEyNz9aZS53cml0ZV9zaGlmdCgxLHhlKTooWmUud3JpdGVfc2hpZnQoMSwxMjgrKDEyNyZ4ZSkpLFplLndyaXRlX3NoaWZ0KDEseGU+Pjcp''@;'; + put 'put ''KTtmb3IodmFyIGplPTA7NCE9amU7KytqZSl7aWYoISh3ZT49MTI4KSl7WmUud3JpdGVfc2hpZnQoMSx3ZSk7YnJlYWt9WmUud3JpdGVfc2hpZnQoMSwxMjgrKDEyNyZ3ZSkpLHdlPj49N313ZT4wJiZUMihYKSYmSC5wdXNoKFgpfX1mdW5jdGlvbiB1MShILHJlLFgpe3ZhciB3ZT1sbihIKTtp''@;'; + put 'put ''ZihyZS5zPyh3ZS5jUmVsJiYod2UuYys9cmUucy5jKSx3ZS5yUmVsJiYod2Uucis9cmUucy5yKSk6KHdlLmNSZWwmJih3ZS5jKz1yZS5jKSx3ZS5yUmVsJiYod2Uucis9cmUucikpLCFYfHxYLmJpZmY8MTIpe2Zvcig7d2UuYz49MjU2Oyl3ZS5jLT0yNTY7Zm9yKDt3ZS5yPj02NTUzNjspd2Uu''@;'; + put 'put ''ci09NjU1MzZ9cmV0dXJuIHdlfWZ1bmN0aW9uIG1sKEgscmUsWCl7dmFyIHdlPWxuKEgpO3JldHVybiB3ZS5zPXUxKHdlLnMscmUucyxYKSx3ZS5lPXUxKHdlLmUscmUucyxYKSx3ZX1mdW5jdGlvbiBwMyhILHJlKXtpZihILmNSZWwmJkguYzwwKWZvcihIPWxuKEgpO0guYzwwOylILmMrPXJl''@;'; + put 'put ''Pjg/MTYzODQ6MjU2O2lmKEguclJlbCYmSC5yPDApZm9yKEg9bG4oSCk7SC5yPDA7KUgucis9cmU+OD8xMDQ4NTc2OnJlPjU/NjU1MzY6MTYzODQ7aWYoSC5jUmVsJiZILmM+PShyZT44PzE2Mzg0OjI1NikpZm9yKEg9bG4oSCk7SC5jPj0ocmU+OD8xNjM4NDoyNTYpOylILmMtPXJlPjg/MTYz''@;'; + put 'put ''ODQ6MjU2O2lmKEguclJlbCYmSC5yPj0xMDQ4NTc2KWZvcihIPWxuKEgpO0gucj49MTA0ODU3NjspSC5yLT0xMDQ4NTc2O3ZhciBYPVkwKEgpO3JldHVybiFILmNSZWwmJm51bGwhPUguY1JlbCYmKFg9ZnVuY3Rpb24ganAoSCl7cmV0dXJuIEgucmVwbGFjZSgvXihbQS1aXSkvLCIkJCQxIil9''@;'; + put 'put ''KFgpKSwhSC5yUmVsJiZudWxsIT1ILnJSZWwmJihYPWZ1bmN0aW9uIFV1KEgpe3JldHVybiBILnJlcGxhY2UoLyhbQS1aXXxeKShcZCspJC8sIiQxJCQkMiIpfShYKSksWH1mdW5jdGlvbiBZdShILHJlKXtyZXR1cm4gMCE9SC5zLnJ8fEgucy5yUmVsfHxILmUuciE9KHJlLmJpZmY+PTEyPzEw''@;'; + put 'put ''NDg1NzU6cmUuYmlmZj49OD82NTUzNjoxNjM4NCl8fEguZS5yUmVsPzAhPUgucy5jfHxILnMuY1JlbHx8SC5lLmMhPShyZS5iaWZmPj0xMj8xNjM4MzoyNTUpfHxILmUuY1JlbD9wMyhILnMscmUuYmlmZikrIjoiK3AzKEguZSxyZS5iaWZmKTooSC5zLnJSZWw/IiI6IiQiKStYYShILnMucikr''@;'; + put 'put ''IjoiKyhILmUuclJlbD8iIjoiJCIpK1hhKEguZS5yKTooSC5zLmNSZWw/IiI6IiQiKStfYShILnMuYykrIjoiKyhILmUuY1JlbD8iIjoiJCIpK19hKEguZS5jKX12YXIgc289e307ZnVuY3Rpb24gYXMoSCl7cmV0dXJuIHBhcnNlSW50KGZ1bmN0aW9uIEExKEgpe3JldHVybiBILnJlcGxhY2Uo''@;'; + put 'put ''L1wkKFxkKykkLywiJDEiKX0oSCksMTApLTF9ZnVuY3Rpb24gWGEoSCl7cmV0dXJuIiIrKEgrMSl9ZnVuY3Rpb24gbWgoSCl7Zm9yKHZhciByZT1mdW5jdGlvbiBrNChIKXtyZXR1cm4gSC5yZXBsYWNlKC9eXCQoW0EtWl0pLywiJDEiKX0oSCksWD0wLHdlPTA7d2UhPT1yZS5sZW5ndGg7Kyt3''@;'; + put 'put ''ZSlYPTI2KlgrcmUuY2hhckNvZGVBdCh3ZSktNjQ7cmV0dXJuIFgtMX1mdW5jdGlvbiBfYShIKXtpZihIPDApdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNvbHVtbiAiK0gpO3ZhciByZT0iIjtmb3IoKytIO0g7SD1NYXRoLmZsb29yKChILTEpLzI2KSlyZT1TdHJpbmcuZnJvbUNoYXJDb2Rl''@;'; + put 'put ''KChILTEpJTI2KzY1KStyZTtyZXR1cm4gcmV9ZnVuY3Rpb24gdWwoSCl7Zm9yKHZhciByZT0wLFg9MCx3ZT0wO3dlPEgubGVuZ3RoOysrd2Upe3ZhciB4ZT1ILmNoYXJDb2RlQXQod2UpO3hlPj00OCYmeGU8PTU3P3JlPTEwKnJlKyh4ZS00OCk6eGU+PTY1JiZ4ZTw9OTAmJihYPTI2KlgrKHhl''@;'; + put 'put ''LTY0KSl9cmV0dXJue2M6WC0xLHI6cmUtMX19ZnVuY3Rpb24gWTAoSCl7Zm9yKHZhciByZT1ILmMrMSxYPSIiO3JlO3JlPShyZS0xKS8yNnwwKVg9U3RyaW5nLmZyb21DaGFyQ29kZSgocmUtMSklMjYrNjUpK1g7cmV0dXJuIFgrKEgucisxKX1mdW5jdGlvbiB2cyhIKXt2YXIgcmU9SC5pbmRl''@;'; + put 'put ''eE9mKCI6Iik7cmV0dXJuLTE9PXJlP3tzOnVsKEgpLGU6dWwoSCl9OntzOnVsKEguc2xpY2UoMCxyZSkpLGU6dWwoSC5zbGljZShyZSsxKSl9fWZ1bmN0aW9uIGZhKEgscmUpe3JldHVybiB2b2lkIDA9PT1yZXx8Im51bWJlciI9PXR5cGVvZiByZT9mYShILnMsSC5lKTooInN0cmluZyIhPXR5''@;'; + put 'put ''cGVvZiBIJiYoSD1ZMChIKSksInN0cmluZyIhPXR5cGVvZiByZSYmKHJlPVkwKHJlKSksSD09cmU/SDpIKyI6IityZSl9ZnVuY3Rpb24gRm8oSCl7dmFyIHJlPUpTT04ucGFyc2UoJ3sicyI6eyJjIjowLCJyIjowfSwiZSI6eyJjIjowLCJyIjowfX0nKSxYPTAsd2U9MCx4ZT0wLEZlPUgubGVu''@;'; + put 'put ''Z3RoO2ZvcihYPTA7d2U8RmUmJiEoKHhlPUguY2hhckNvZGVBdCh3ZSktNjQpPDF8fHhlPjI2KTsrK3dlKVg9MjYqWCt4ZTtmb3IocmUucy5jPS0tWCxYPTA7d2U8RmUmJiEoKHhlPUguY2hhckNvZGVBdCh3ZSktNDgpPDB8fHhlPjkpOysrd2UpWD0xMCpYK3hlO2lmKHJlLnMucj0tLVgsd2U9''@;'; + put 'put ''PT1GZXx8NTg9PT1ILmNoYXJDb2RlQXQoKyt3ZSkpcmV0dXJuIHJlLmUuYz1yZS5zLmMscmUuZS5yPXJlLnMucixyZTtmb3IoWD0wO3dlIT1GZSYmISgoeGU9SC5jaGFyQ29kZUF0KHdlKS02NCk8MXx8eGU+MjYpOysrd2UpWD0yNipYK3hlO2ZvcihyZS5lLmM9LS1YLFg9MDt3ZSE9RmUmJiEo''@;'; + put 'put ''KHhlPUguY2hhckNvZGVBdCh3ZSktNDgpPDB8fHhlPjkpOysrd2UpWD0xMCpYK3hlO3JldHVybiByZS5lLnI9LS1YLHJlfWZ1bmN0aW9uIHBkKEgscmUpe3ZhciBYPSJkIj09SC50JiZyZSBpbnN0YW5jZW9mIERhdGU7aWYobnVsbCE9SC56KXRyeXtyZXR1cm4gSC53PUYuZm9ybWF0KEgueixY''@;'; + put 'put ''P2Z0KHJlKTpyZSl9Y2F0Y2god2Upe310cnl7cmV0dXJuIEgudz1GLmZvcm1hdCgoSC5YRnx8e30pLm51bUZtdElkfHwoWD8xNDowKSxYP2Z0KHJlKTpyZSl9Y2F0Y2god2Upe3JldHVybiIiK3JlfX1mdW5jdGlvbiB5MShILHJlLFgpe3JldHVybiBudWxsPT1IfHxudWxsPT1ILnR8fCJ6Ij09''@;'; + put 'put ''SC50PyIiOnZvaWQgMCE9PUgudz9ILnc6KCJkIj09SC50JiYhSC56JiZYJiZYLmRhdGVORiYmKEguej1YLmRhdGVORiksImUiPT1ILnQ/TjFbSC52XXx8SC52OnBkKEgsbnVsbD09cmU/SC52OnJlKSl9ZnVuY3Rpb24gdzEoSCxyZSl7dmFyIFg9cmUmJnJlLnNoZWV0P3JlLnNoZWV0OiJTaGVl''@;'; + put 'put ''dDEiLHdlPXt9O3JldHVybiB3ZVtYXT1ILHtTaGVldE5hbWVzOltYXSxTaGVldHM6d2V9fWZ1bmN0aW9uIGxmKEgscmUsWCl7dmFyIHdlPVh8fHt9LHhlPUg/QXJyYXkuaXNBcnJheShIKTp3ZS5kZW5zZSxGZT1IfHwoeGU/W106e30pLFplPTAsamU9MDtpZihGZSYmbnVsbCE9d2Uub3JpZ2lu''@;'; + put 'put ''KXtpZigibnVtYmVyIj09dHlwZW9mIHdlLm9yaWdpbilaZT13ZS5vcmlnaW47ZWxzZXt2YXIgWWU9InN0cmluZyI9PXR5cGVvZiB3ZS5vcmlnaW4/dWwod2Uub3JpZ2luKTp3ZS5vcmlnaW47WmU9WWUucixqZT1ZZS5jfUZlWyIhcmVmIl18fChGZVsiIXJlZiJdPSJBMTpBMSIpfXZhciBNdD17''@;'; + put 'put ''czp7YzoxZTcscjoxZTd9LGU6e2M6MCxyOjB9fTtpZihGZVsiIXJlZiJdKXt2YXIgeHQ9Rm8oRmVbIiFyZWYiXSk7TXQucy5jPXh0LnMuYyxNdC5zLnI9eHQucy5yLE10LmUuYz1NYXRoLm1heChNdC5lLmMseHQuZS5jKSxNdC5lLnI9TWF0aC5tYXgoTXQuZS5yLHh0LmUuciksLTE9PVplJiYo''@;'; + put 'put ''TXQuZS5yPVplPXh0LmUucisxKX1mb3IodmFyIFJ0PTA7UnQhPXJlLmxlbmd0aDsrK1J0KWlmKHJlW1J0XSl7aWYoIUFycmF5LmlzQXJyYXkocmVbUnRdKSl0aHJvdyBuZXcgRXJyb3IoImFvYV90b19zaGVldCBleHBlY3RzIGFuIGFycmF5IG9mIGFycmF5cyIpO2Zvcih2YXIgWXQ9MDtZdCE9''@;'; + put 'put ''cmVbUnRdLmxlbmd0aDsrK1l0KWlmKHZvaWQgMCE9PXJlW1J0XVtZdF0pe3ZhciBubj17djpyZVtSdF1bWXRdfSxDbj1aZStSdCxEdD1qZStZdDtpZihNdC5zLnI+Q24mJihNdC5zLnI9Q24pLE10LnMuYz5EdCYmKE10LnMuYz1EdCksTXQuZS5yPENuJiYoTXQuZS5yPUNuKSxNdC5lLmM8RHQm''@;'; + put 'put ''JihNdC5lLmM9RHQpLCFyZVtSdF1bWXRdfHwib2JqZWN0IiE9dHlwZW9mIHJlW1J0XVtZdF18fEFycmF5LmlzQXJyYXkocmVbUnRdW1l0XSl8fHJlW1J0XVtZdF1pbnN0YW5jZW9mIERhdGUpaWYoQXJyYXkuaXNBcnJheShubi52KSYmKG5uLmY9cmVbUnRdW1l0XVsxXSxubi52PW5uLnZbMF0p''@;'; + put 'put ''LG51bGw9PT1ubi52KWlmKG5uLmYpbm4udD0ibiI7ZWxzZSBpZih3ZS5udWxsRXJyb3Ipbm4udD0iZSIsbm4udj0wO2Vsc2V7aWYoIXdlLnNoZWV0U3R1YnMpY29udGludWU7bm4udD0ieiJ9ZWxzZSJudW1iZXIiPT10eXBlb2Ygbm4udj9ubi50PSJuIjoiYm9vbGVhbiI9PXR5cGVvZiBubi52''@;'; + put 'put ''P25uLnQ9ImIiOm5uLnYgaW5zdGFuY2VvZiBEYXRlPyhubi56PXdlLmRhdGVORnx8Ri5fdGFibGVbMTRdLHdlLmNlbGxEYXRlcz8obm4udD0iZCIsbm4udz1GLmZvcm1hdChubi56LGZ0KG5uLnYpKSk6KG5uLnQ9Im4iLG5uLnY9ZnQobm4udiksbm4udz1GLmZvcm1hdChubi56LG5uLnYpKSk6''@;'; + put 'put ''bm4udD0icyI7ZWxzZSBubj1yZVtSdF1bWXRdO2lmKG5uJiZubi5oKXRyeXtubi5SPXVzLmh0bWxfdG9fcnMobm4uaCksbm4udj0iIjtmb3IodmFyIHp0PTA7enQ8bm4uUi5sZW5ndGg7Kyt6dClubi52Kz1ubi5SW3p0XS52fHwiIn1jYXRjaChUbil7fWlmKHhlKUZlW0NuXXx8KEZlW0NuXT1b''@;'; + put 'put ''XSksRmVbQ25dW0R0XSYmRmVbQ25dW0R0XS5zJiYobm4ucz1GZVtDbl1bRHRdLnMpLEZlW0NuXVtEdF0mJkZlW0NuXVtEdF0ueiYmKG5uLno9RmVbQ25dW0R0XS56KSxGZVtDbl1bRHRdPW5uO2Vsc2V7dmFyIFBuPVkwKHtjOkR0LHI6Q259KTtGZVtQbl0mJkZlW1BuXS5zJiYobm4ucz1GZVtQ''@;'; + put 'put ''bl0ucyksRmVbUG5dJiZGZVtQbl0ueiYmKG5uLno9RmVbUG5dLnopLEZlW1BuXT1ubn19fXJldHVybiBNdC5zLmM8MWU3JiYoRmVbIiFyZWYiXT1mYShNdCkpLEZlfWZ1bmN0aW9uIGdkKEgscmUpe3JldHVybiBsZihudWxsLEgscmUpfWZ1bmN0aW9uICRsKEgscmUpe3JldHVybiByZXx8KHJl''@;'; + put 'put ''PVJpKDQpKSxyZS53cml0ZV9zaGlmdCg0LEgpLHJlfWZ1bmN0aW9uIHh1KEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoNCk7cmV0dXJuIDA9PT1yZT8iIjpILnJlYWRfc2hpZnQocmUsImRiY3MiKX1mdW5jdGlvbiBsdShILHJlKXt2YXIgWD0hMTtyZXR1cm4gbnVsbD09cmUmJihYPSEwLHJlPVJp''@;'; + put 'put ''KDQrMipILmxlbmd0aCkpLHJlLndyaXRlX3NoaWZ0KDQsSC5sZW5ndGgpLEgubGVuZ3RoPjAmJnJlLndyaXRlX3NoaWZ0KDAsSCwiZGJjcyIpLFg/cmUuc2xpY2UoMCxyZS5sKTpyZX1mdW5jdGlvbiBzZihIKXtyZXR1cm57aWNoOkgucmVhZF9zaGlmdCgyKSxpZm50OkgucmVhZF9zaGlmdCgy''@;'; + put 'put ''KX19ZnVuY3Rpb24gQ3MoSCxyZSl7dmFyIFg9SC5sLHdlPUgucmVhZF9zaGlmdCgxKSx4ZT14dShIKSxGZT1bXSxaZT17dDp4ZSxoOnhlfTtpZigwIT0oMSZ3ZSkpe2Zvcih2YXIgamU9SC5yZWFkX3NoaWZ0KDQpLFllPTA7WWUhPWplOysrWWUpRmUucHVzaChzZihIKSk7WmUucj1GZX1lbHNl''@;'; + put 'put ''IFplLnI9W3tpY2g6MCxpZm50OjB9XTtyZXR1cm4gSC5sPVgrcmUsWmV9IWZ1bmN0aW9uKEgscmUpe3ZhciBYO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3J5cHRvQnJvd3NlcmlmeSlYPWNyeXB0b0Jyb3dzZXJpZnk7ZWxzZSBpZih2b2lkIDAhPT1yZSlYPXJlO2Vsc2UgdHJ5e1g9TCg0MTM0''@;'; + put 'put ''OCl9Y2F0Y2god2Upe1g9bnVsbH1ILnJjND1mdW5jdGlvbih3ZSx4ZSl7dmFyIEZlPW5ldyBBcnJheSgyNTYpLFplPTAsamU9MCxZZT0wLE10PTA7Zm9yKGplPTA7MjU2IT1qZTsrK2plKUZlW2plXT1qZTtmb3IoamU9MDsyNTYhPWplOysramUpWWU9WWUrRmVbamVdK3dlW2plJXdlLmxlbmd0''@;'; + put 'put ''aF0uY2hhckNvZGVBdCgwKSYyNTUsTXQ9RmVbamVdLEZlW2plXT1GZVtZZV0sRmVbWWVdPU10O2plPVllPTA7dmFyIHh0PWhlKHhlLmxlbmd0aCk7Zm9yKFplPTA7WmUhPXhlLmxlbmd0aDsrK1plKU10PUZlW2plPWplKzEmMjU1XSxGZVtqZV09RmVbWWU9KFllK0ZlW2plXSklMjU2XSxGZVtZ''@;'; + put 'put ''ZV09TXQseHRbWmVdPXhlW1plXV5GZVtGZVtqZV0rRmVbWWVdJjI1NV07cmV0dXJuIHh0fSxILm1kNT1mdW5jdGlvbih3ZSl7aWYoIVgpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBjcnlwdG8iKTtyZXR1cm4gWC5jcmVhdGVIYXNoKCJtZDUiKS51cGRhdGUoQnVmZmVyLmZyb20od2Up''@;'; + put 'put ''KS5kaWdlc3QoImhleCIpfX0oc28sInVuZGVmaW5lZCIhPXR5cGVvZiBjcnlwdG8/Y3J5cHRvOnZvaWQgMCk7dmFyIFZmPUNzO2Z1bmN0aW9uIHZoKEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoNCksWD1ILnJlYWRfc2hpZnQoMik7cmV0dXJuIFgrPUgucmVhZF9zaGlmdCgxKTw8MTYsSC5sKyss''@;'; + put 'put ''e2M6cmUsaVN0eWxlUmVmOlh9fWZ1bmN0aW9uIFM0KEgscmUpe3JldHVybiBudWxsPT1yZSYmKHJlPVJpKDgpKSxyZS53cml0ZV9zaGlmdCgtNCxILmMpLHJlLndyaXRlX3NoaWZ0KDMsSC5pU3R5bGVSZWZ8fEgucykscmUud3JpdGVfc2hpZnQoMSwwKSxyZX1mdW5jdGlvbiBNNChIKXt2YXIg''@;'; + put 'put ''cmU9SC5yZWFkX3NoaWZ0KDIpO3JldHVybiByZSs9SC5yZWFkX3NoaWZ0KDEpPDwxNixILmwrKyx7YzotMSxpU3R5bGVSZWY6cmV9fWZ1bmN0aW9uIEFoKEgscmUpe3JldHVybiBudWxsPT1yZSYmKHJlPVJpKDQpKSxyZS53cml0ZV9zaGlmdCgzLEguaVN0eWxlUmVmfHxILnMpLHJlLndyaXRl''@;'; + put 'put ''X3NoaWZ0KDEsMCkscmV9dmFyICR3PXh1LF9NPWx1O2Z1bmN0aW9uIHloKEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoNCk7cmV0dXJuIDA9PT1yZXx8NDI5NDk2NzI5NT09PXJlPyIiOkgucmVhZF9zaGlmdChyZSwiZGJjcyIpfWZ1bmN0aW9uIFpwKEgscmUpe3ZhciBYPSExO3JldHVybiBudWxs''@;'; + put 'put ''PT1yZSYmKFg9ITAscmU9UmkoMTI3KSkscmUud3JpdGVfc2hpZnQoNCxILmxlbmd0aD4wP0gubGVuZ3RoOjQyOTQ5NjcyOTUpLEgubGVuZ3RoPjAmJnJlLndyaXRlX3NoaWZ0KDAsSCwiZGJjcyIpLFg/cmUuc2xpY2UoMCxyZS5sKTpyZX12YXIgYXY9eHUsR2c9eWgsenA9WnA7ZnVuY3Rpb24g''@;'; + put 'put ''V2coSCl7dmFyIHJlPUguc2xpY2UoSC5sLEgubCs0KSxYPTEmcmVbMF0sd2U9MiZyZVswXTtILmwrPTQscmVbMF0mPTI1Mjt2YXIgeGU9MD09PXdlP2hzKFswLDAsMCwwLHJlWzBdLHJlWzFdLHJlWzJdLHJlWzNdXSwwKTpOYyhyZSwwKT4+MjtyZXR1cm4gWD94ZS8xMDA6eGV9ZnVuY3Rpb24g''@;'; + put 'put ''Q00oSCxyZSl7bnVsbD09cmUmJihyZT1SaSg0KSk7dmFyIFg9MCx3ZT0wLHhlPTEwMCpIO2lmKEg9PSgwfEgpJiZIPj0tKDE8PDI5KSYmSDwxPDwyOT93ZT0xOnhlPT0oMHx4ZSkmJnhlPj0tKDE8PDI5KSYmeGU8MTw8MjkmJih3ZT0xLFg9MSksIXdlKXRocm93IG5ldyBFcnJvcigidW5zdXBw''@;'; + put 'put ''b3J0ZWQgUmtOdW1iZXIgIitIKTtyZS53cml0ZV9zaGlmdCgtNCwoKFg/eGU6SCk8PDIpKyhYKzIpKX1mdW5jdGlvbiBsdihIKXt2YXIgcmU9e3M6e30sZTp7fX07cmV0dXJuIHJlLnMucj1ILnJlYWRfc2hpZnQoNCkscmUuZS5yPUgucmVhZF9zaGlmdCg0KSxyZS5zLmM9SC5yZWFkX3NoaWZ0''@;'; + put 'put ''KDQpLHJlLmUuYz1ILnJlYWRfc2hpZnQoNCkscmV9dmFyIHdoPWx2LEdwPWZ1bmN0aW9uIFlnKEgscmUpe3JldHVybiByZXx8KHJlPVJpKDE2KSkscmUud3JpdGVfc2hpZnQoNCxILnMucikscmUud3JpdGVfc2hpZnQoNCxILmUucikscmUud3JpdGVfc2hpZnQoNCxILnMuYykscmUud3JpdGVf''@;'; + put 'put ''c2hpZnQoNCxILmUuYykscmV9O2Z1bmN0aW9uIHN2KEgpe2Zvcih2YXIgcmU9SC5yZWFkX3NoaWZ0KDQpLFg9W10sd2U9MDt3ZTxyZTsrK3dlKXt2YXIgeGU9d2goSCk7WC5wdXNoKGZhKHhlKSl9cmV0dXJuIFguam9pbigiLCIpfWZ1bmN0aW9uIEkyKEgpe2lmKEgubGVuZ3RoLUgubDw4KXRo''@;'; + put 'put ''cm93IlhMUyBYbnVtIEJ1ZmZlciB1bmRlcmZsb3ciO3JldHVybiBILnJlYWRfc2hpZnQoOCwiZiIpfWZ1bmN0aW9uIHVmKEgscmUpe3JldHVybihyZXx8UmkoOCkpLndyaXRlX3NoaWZ0KDgsSCwiZiIpfWZ1bmN0aW9uIFVnKEgpe3ZhciByZT17fSx3ZT1ILnJlYWRfc2hpZnQoMSk+Pj4xLHhl''@;'; + put 'put ''PUgucmVhZF9zaGlmdCgxKSxGZT1ILnJlYWRfc2hpZnQoMiwiaSIpLFplPUgucmVhZF9zaGlmdCgxKSxqZT1ILnJlYWRfc2hpZnQoMSksWWU9SC5yZWFkX3NoaWZ0KDEpO3N3aXRjaChILmwrKyx3ZSl7Y2FzZSAwOnJlLmF1dG89MTticmVhaztjYXNlIDE6cmUuaW5kZXg9eGU7dmFyIE10PXV1''@;'; + put 'put ''W3hlXTtNdCYmKHJlLnJnYj1iMyhNdCkpO2JyZWFrO2Nhc2UgMjpyZS5yZ2I9YjMoW1plLGplLFllXSk7YnJlYWs7Y2FzZSAzOnJlLnRoZW1lPXhlfXJldHVybiAwIT1GZSYmKHJlLnRpbnQ9RmU+MD9GZS8zMjc2NzpGZS8zMjc2OCkscmV9ZnVuY3Rpb24gamYoSCxyZSl7aWYocmV8fChyZT1S''@;'; + put 'put ''aSg4KSksIUh8fEguYXV0bylyZXR1cm4gcmUud3JpdGVfc2hpZnQoNCwwKSxyZS53cml0ZV9zaGlmdCg0LDApLHJlO251bGwhPUguaW5kZXg/KHJlLndyaXRlX3NoaWZ0KDEsMikscmUud3JpdGVfc2hpZnQoMSxILmluZGV4KSk6bnVsbCE9SC50aGVtZT8ocmUud3JpdGVfc2hpZnQoMSw2KSxy''@;'; + put 'put ''ZS53cml0ZV9zaGlmdCgxLEgudGhlbWUpKToocmUud3JpdGVfc2hpZnQoMSw1KSxyZS53cml0ZV9zaGlmdCgxLDApKTt2YXIgWD1ILnRpbnR8fDA7aWYoWD4wP1gqPTMyNzY3Olg8MCYmKFgqPTMyNzY4KSxyZS53cml0ZV9zaGlmdCgyLFgpLEgucmdiJiZudWxsPT1ILnRoZW1lKXt2YXIgd2U9''@;'; + put 'put ''SC5yZ2J8fCJGRkZGRkYiOyJudW1iZXIiPT10eXBlb2Ygd2UmJih3ZT0oIjAwMDAwMCIrd2UudG9TdHJpbmcoMTYpKS5zbGljZSgtNikpLHJlLndyaXRlX3NoaWZ0KDEscGFyc2VJbnQod2Uuc2xpY2UoMCwyKSwxNikpLHJlLndyaXRlX3NoaWZ0KDEscGFyc2VJbnQod2Uuc2xpY2UoMiw0KSwx''@;'; + put 'put ''NikpLHJlLndyaXRlX3NoaWZ0KDEscGFyc2VJbnQod2Uuc2xpY2UoNCw2KSwxNikpLHJlLndyaXRlX3NoaWZ0KDEsMjU1KX1lbHNlIHJlLndyaXRlX3NoaWZ0KDIsMCkscmUud3JpdGVfc2hpZnQoMSwwKSxyZS53cml0ZV9zaGlmdCgxLDApO3JldHVybiByZX1mdW5jdGlvbiBxdyhIKXt2YXIg''@;'; + put 'put ''cmU9SC5yZWFkX3NoaWZ0KDEpO3JldHVybiBILmwrKyx7ZkJvbGQ6MSZyZSxmSXRhbGljOjImcmUsZlVuZGVybGluZTo0JnJlLGZTdHJpa2VvdXQ6OCZyZSxmT3V0bGluZToxNiZyZSxmU2hhZG93OjMyJnJlLGZDb25kZW5zZTo2NCZyZSxmRXh0ZW5kOjEyOCZyZX19ZnVuY3Rpb24gY3YoSCxy''@;'; + put 'put ''ZSl7dmFyIHdlPUgucmVhZF9zaGlmdCg0KTtzd2l0Y2god2Upe2Nhc2UgMDpyZXR1cm4iIjtjYXNlIDQyOTQ5NjcyOTU6Y2FzZSA0Mjk0OTY3Mjk0OnJldHVybnsyOiJCSVRNQVAiLDM6Ik1FVEFGSUxFUElDVCIsODoiRElCIiwxNDoiRU5ITUVUQUZJTEUifVtILnJlYWRfc2hpZnQoNCldfHwi''@;'; + put 'put ''In1pZih3ZT40MDApdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBDbGlwYm9hcmQ6ICIrd2UudG9TdHJpbmcoMTYpKTtyZXR1cm4gSC5sLT00LEgucmVhZF9zaGlmdCgwLDE9PXJlPyJscHN0ciI6Imxwd3N0ciIpfXZhciBTTT1bODAsODFdLHRiPXsxOntuOiJDb2RlUGFnZSIsdDoyfSwy''@;'; + put 'put ''OntuOiJDYXRlZ29yeSIsdDo4MH0sMzp7bjoiUHJlc2VudGF0aW9uRm9ybWF0Iix0OjgwfSw0OntuOiJCeXRlQ291bnQiLHQ6M30sNTp7bjoiTGluZUNvdW50Iix0OjN9LDY6e246IlBhcmFncmFwaENvdW50Iix0OjN9LDc6e246IlNsaWRlQ291bnQiLHQ6M30sODp7bjoiTm90ZUNvdW50Iix0''@;'; + put 'put ''OjN9LDk6e246IkhpZGRlbkNvdW50Iix0OjN9LDEwOntuOiJNdWx0aW1lZGlhQ2xpcENvdW50Iix0OjN9LDExOntuOiJTY2FsZUNyb3AiLHQ6MTF9LDEyOntuOiJIZWFkaW5nUGFpcnMiLHQ6NDEwOH0sMTM6e246IlRpdGxlc09mUGFydHMiLHQ6NDEyNn0sMTQ6e246Ik1hbmFnZXIiLHQ6ODB9''@;'; + put 'put ''LDE1OntuOiJDb21wYW55Iix0OjgwfSwxNjp7bjoiTGlua3NVcFRvRGF0ZSIsdDoxMX0sMTc6e246IkNoYXJhY3RlckNvdW50Iix0OjN9LDE5OntuOiJTaGFyZWREb2MiLHQ6MTF9LDIyOntuOiJIeXBlcmxpbmtzQ2hhbmdlZCIsdDoxMX0sMjM6e246IkFwcFZlcnNpb24iLHQ6MyxwOiJ2ZXJz''@;'; + put 'put ''aW9uIn0sMjQ6e246IkRpZ1NpZyIsdDo2NX0sMjY6e246IkNvbnRlbnRUeXBlIix0OjgwfSwyNzp7bjoiQ29udGVudFN0YXR1cyIsdDo4MH0sMjg6e246Ikxhbmd1YWdlIix0OjgwfSwyOTp7bjoiVmVyc2lvbiIsdDo4MH0sMjU1Ont9LDIxNDc0ODM2NDg6e246IkxvY2FsZSIsdDoxOX0sMjE0''@;'; + put 'put ''NzQ4MzY1MTp7bjoiQmVoYXZpb3IiLHQ6MTl9LDE5MTkwNTQ0MzQ6e319LFVwPXsxOntuOiJDb2RlUGFnZSIsdDoyfSwyOntuOiJUaXRsZSIsdDo4MH0sMzp7bjoiU3ViamVjdCIsdDo4MH0sNDp7bjoiQXV0aG9yIix0OjgwfSw1OntuOiJLZXl3b3JkcyIsdDo4MH0sNjp7bjoiQ29tbWVudHMi''@;'; + put 'put ''LHQ6ODB9LDc6e246IlRlbXBsYXRlIix0OjgwfSw4OntuOiJMYXN0QXV0aG9yIix0OjgwfSw5OntuOiJSZXZOdW1iZXIiLHQ6ODB9LDEwOntuOiJFZGl0VGltZSIsdDo2NH0sMTE6e246Ikxhc3RQcmludGVkIix0OjY0fSwxMjp7bjoiQ3JlYXRlZERhdGUiLHQ6NjR9LDEzOntuOiJNb2RpZmll''@;'; + put 'put ''ZERhdGUiLHQ6NjR9LDE0OntuOiJQYWdlQ291bnQiLHQ6M30sMTU6e246IldvcmRDb3VudCIsdDozfSwxNjp7bjoiQ2hhckNvdW50Iix0OjN9LDE3OntuOiJUaHVtYm5haWwiLHQ6NzF9LDE4OntuOiJBcHBsaWNhdGlvbiIsdDo4MH0sMTk6e246IkRvY1NlY3VyaXR5Iix0OjN9LDI1NTp7fSwy''@;'; + put 'put ''MTQ3NDgzNjQ4OntuOiJMb2NhbGUiLHQ6MTl9LDIxNDc0ODM2NTE6e246IkJlaGF2aW9yIix0OjE5fSwxOTE5MDU0NDM0Ont9fSx2Yz1fdCh0YiwibiIpLGR2PV90KFVwLCJuIiksWGc9ezE6IlVTIiwyOiJDQSIsMzoiIiw3OiJSVSIsMjA6IkVHIiwzMDoiR1IiLDMxOiJOTCIsMzI6IkJFIiwz''@;'; + put 'put ''MzoiRlIiLDM0OiJFUyIsMzY6IkhVIiwzOToiSVQiLDQxOiJDSCIsNDM6IkFUIiw0NDoiR0IiLDQ1OiJESyIsNDY6IlNFIiw0NzoiTk8iLDQ4OiJQTCIsNDk6IkRFIiw1MjoiTVgiLDU1OiJCUiIsNjE6IkFVIiw2NDoiTloiLDY2OiJUSCIsODE6IkpQIiw4MjoiS1IiLDg0OiJWTiIsODY6IkNO''@;'; + put 'put ''Iiw5MDoiVFIiLDEwNToiSlMiLDIxMzoiRFoiLDIxNjoiTUEiLDIxODoiTFkiLDM1MToiUFQiLDM1NDoiSVMiLDM1ODoiRkkiLDQyMDoiQ1oiLDg4NjoiVFciLDk2MToiTEIiLDk2MjoiSk8iLDk2MzoiU1kiLDk2NDoiSVEiLDk2NToiS1ciLDk2NjoiU0EiLDk3MToiQUUiLDk3MjoiSUwiLDk3''@;'; + put 'put ''NDoiUUEiLDk4MToiSVIiLDY1NTM1OiJVUyJ9LFFwPVtudWxsLCJzb2xpZCIsIm1lZGl1bUdyYXkiLCJkYXJrR3JheSIsImxpZ2h0R3JheSIsImRhcmtIb3Jpem9udGFsIiwiZGFya1ZlcnRpY2FsIiwiZGFya0Rvd24iLCJkYXJrVXAiLCJkYXJrR3JpZCIsImRhcmtUcmVsbGlzIiwibGlnaHRI''@;'; + put 'put ''b3Jpem9udGFsIiwibGlnaHRWZXJ0aWNhbCIsImxpZ2h0RG93biIsImxpZ2h0VXAiLCJsaWdodEdyaWQiLCJsaWdodFRyZWxsaXMiLCJncmF5MTI1IiwiZ3JheTA2MjUiXTtmdW5jdGlvbiBRdShIKXtyZXR1cm4gSC5tYXAoZnVuY3Rpb24ocmUpe3JldHVybltyZT4+MTYmMjU1LHJlPj44JjI1''@;'; + put 'put ''NSwyNTUmcmVdfSl9dmFyIEtnPVF1KFswLDE2Nzc3MjE1LDE2NzExNjgwLDY1MjgwLDI1NSwxNjc3Njk2MCwxNjcxMTkzNSw2NTUzNSwwLDE2Nzc3MjE1LDE2NzExNjgwLDY1MjgwLDI1NSwxNjc3Njk2MCwxNjcxMTkzNSw2NTUzNSw4Mzg4NjA4LDMyNzY4LDEyOCw4NDIxMzc2LDgzODg3MzYs''@;'; + put 'put ''MzI4OTYsMTI2MzIyNTYsODQyMTUwNCwxMDA2NjQzMSwxMDA0MDE2NiwxNjc3NzE2NCwxMzQzNDg3OSw2Njg0Nzc0LDE2NzQ0NTc2LDI2MzE2LDEzNDIxODIzLDEyOCwxNjcxMTkzNSwxNjc3Njk2MCw2NTUzNSw4Mzg4NzM2LDgzODg2MDgsMzI4OTYsMjU1LDUyNDc5LDEzNDM0ODc5LDEzNDM0''@;'; + put 'put ''ODI4LDE2Nzc3MTEzLDEwMDc5NDg3LDE2NzUxMDUyLDEzNDA4NzY3LDE2NzY0MDU3LDMzNjg3MDMsMzM5NDc2NCwxMDA3OTIzMiwxNjc2MzkwNCwxNjc1MDg0OCwxNjczNzc5Miw2NzEwOTM3LDk4Njg5NTAsMTMxNTgsMzM4MTYwNiwxMzA1NiwzMzU1MzkyLDEwMDQwMDY0LDEwMDQwMTY2LDMz''@;'; + put 'put ''NTU1NDUsMzM1NTQ0MywwLDE2Nzc3MjE1LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdKSx1dT1sbihLZyksTU09UXUoWzEyNjMyMjU2LDk4Njg5NTAsODQyMTUwNCw2NzEwODg2LDMzNTU0NDMsMTY3MTE2ODAsMzI3NjgsMTMzNjk0OTcsMTI4LDMzOTQ1NjAsMjYzNjcsMTAwMjcy''@;'; + put 'put ''MTIsMTAwNTMxNzEsMTI4LDMyNzY4LDgzODg2MDgsMzI4OTYsODM4ODczNiw4NDIxMzc2LDEzNjMxNDg4LDE0NTM5OTk0LDEzMDY4ODUwLDEzOTI0MzUyLDk5Njc0OTYsOTE3NTI2Nyw5MTk1MDA4LDM2ODM1MzcsMTA2OTI1OCw4ODgwODk5LDc0OTQ2NCwyODkzNDc2LDExNzQ1NzMwLDM3NTAy''@;'; + put 'put ''MDEsMTU1NTk1MDMsMTgzNzk0MSwxMjA4NDM1OSw3NjMyMjUwLDczNjMzMjgsOTUxNDU4OCw4Mjg4NjE3LDMwMzY4MTQsMTExODQ4MTBdKSxOMT17MDoiI05VTEwhIiw3OiIjRElWLzAhIiwxNToiI1ZBTFVFISIsMjM6IiNSRUYhIiwyOToiI05BTUU/IiwzNjoiI05VTSEiLDQyOiIjTi9BIiw0''@;'; + put 'put ''MzoiI0dFVFRJTkdfREFUQSIsMjU1OiIjV1RGPyJ9LF9oPWV0KE4xKSxtZD17ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Lm1haW4reG1sIjoid29ya2Jvb2tzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmJpbklu''@;'; + put 'put ''ZGV4V3MiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmludGxtYWNyb3NoZWV0IjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5iaW5JbmRleE1zIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmNvcmUtcHJvcGVydGllcyt4''@;'; + put 'put ''bWwiOiJjb3JlcHJvcHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuY3VzdG9tLXByb3BlcnRpZXMreG1sIjoiY3VzdHByb3BzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmV4dGVuZGVkLXByb3BlcnRpZXMr''@;'; + put 'put ''eG1sIjoiZXh0cHJvcHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuY3VzdG9tWG1sUHJvcGVydGllcyt4bWwiOiJjdXN0b214bWxwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1s''@;'; + put 'put ''LmN1c3RvbVByb3BlcnR5IjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5waXZvdFRhYmxlIjoicGl2b3RzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RUYWJsZSt4bWwiOiJwaXZvdHMiLCJhcHBsaWNh''@;'; + put 'put ''dGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0K3htbCI6ImNoYXJ0b2JqcyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuY2hhcnRjb2xvcnN0eWxlK3htbCI6ImNoYXJ0Y29sb3JzIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5jaGFy''@;'; + put 'put ''dHN0eWxlK3htbCI6ImNoYXJ0c3R5bGVzIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5jaGFydGV4K3htbCI6ImNoYXJ0ZXhzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmNhbGNDaGFpbiI6ImNhbGNjaGFpbnMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNl''@;'; + put 'put ''ZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jYWxjQ2hhaW4reG1sIjoiY2FsY2NoYWlucyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnByaW50ZXJTZXR0aW5ncyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmFj''@;'; + put 'put ''dGl2ZVgiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5hY3RpdmVYK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYXR0YWNoZWRUb29sYmFycyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY29ubmVjdGlvbnMiOiJjb25ucyIsImFwcGxp''@;'; + put 'put ''Y2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNvbm5lY3Rpb25zK3htbCI6ImNvbm5zIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmV4dGVybmFsTGluayI6ImxpbmtzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmlj''@;'; + put 'put ''ZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuZXh0ZXJuYWxMaW5rK3htbCI6ImxpbmtzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0TWV0YWRhdGEiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXRN''@;'; + put 'put ''ZXRhZGF0YSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnBpdm90Q2FjaGVEZWZpbml0aW9uIjoicGl2b3RjYWNoZXMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucGl2b3RDYWNoZVJlY29yZHMiOiJwaXZvdHJlY29yZHMiLCJhcHBsaWNhdGlvbi92bmQub3Blbnht''@;'; + put 'put ''bGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdENhY2hlRGVmaW5pdGlvbit4bWwiOiJwaXZvdGNhY2hlcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Q2FjaGVSZWNvcmRzK3htbCI6InBp''@;'; + put 'put ''dm90cmVjb3JkcyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5xdWVyeVRhYmxlIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnF1ZXJ5VGFibGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNl''@;'; + put 'put ''bC51c2VyTmFtZXMiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnJldmlzaW9uSGVhZGVycyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucmV2aXNpb25Mb2ciOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNw''@;'; + put 'put ''cmVhZHNoZWV0bWwucmV2aXNpb25IZWFkZXJzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbkxvZyt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRv''@;'; + put 'put ''Y3VtZW50LnNwcmVhZHNoZWV0bWwudXNlck5hbWVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGFibGVTaW5nbGVDZWxscyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZVNpbmds''@;'; + put 'put ''ZUNlbGxzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2xpY2VyIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXJDYWNoZSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2xpY2VyK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92''@;'; + put 'put ''bmQubXMtZXhjZWwuc2xpY2VyQ2FjaGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC53c1NvcnRNYXAiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnRhYmxlIjoidGFibGVzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3Vt''@;'; + put 'put ''ZW50LnNwcmVhZHNoZWV0bWwudGFibGUreG1sIjoidGFibGVzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lK3htbCI6InRoZW1lcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZU92ZXJyaWRl''@;'; + put 'put ''K3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuVGltZWxpbmUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5UaW1lbGluZUNhY2hlK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLnZiYVByb2plY3QiOiJ2YmEiLCJhcHBsaWNh''@;'; + put 'put ''dGlvbi92bmQubXMtb2ZmaWNlLnZiYVByb2plY3RTaWduYXR1cmUiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS52b2xhdGlsZURlcGVuZGVuY2llcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC52''@;'; + put 'put ''b2xhdGlsZURlcGVuZGVuY2llcyt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmNvbnRyb2xwcm9wZXJ0aWVzK3htbCI6ImN0cmxwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5tb2RlbCtkYXRhIjoiZGF0YW1vZGVscyIs''@;'; + put 'put ''ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5TdXJ2ZXkreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nK3htbCI6ImRyYXdpbmdzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRy''@;'; + put 'put ''YXdpbmdtbC5jaGFydHNoYXBlcyt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtQ29sb3JzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJh''@;'; + put 'put ''d2luZ21sLmRpYWdyYW1EYXRhK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1MYXlvdXQreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3''@;'; + put 'put ''aW5nbWwuZGlhZ3JhbVN0eWxlK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudm1sRHJhd2luZyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5yZWxhdGlvbnNoaXBzK3htbCI6InJlbHMiLCJh''@;'; + put 'put ''cHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQub2xlT2JqZWN0IjoiVE9ETyIsImltYWdlL3BuZyI6IlRPRE8iLHNoZWV0OiJqcyJ9LENhPWZ1bmN0aW9uKCl7dmFyIEg9e3dvcmtib29rczp7eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9m''@;'; + put 'put ''ZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4bWwiLHhsc206ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5tYWNyb0VuYWJsZWQubWFpbit4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5iaW5hcnkubWFjcm9FbmFibGVkLm1haW4i''@;'; + put 'put ''LHhsYW06ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5hZGRpbi5tYWNyb0VuYWJsZWQubWFpbit4bWwiLHhsdHg6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlLm1haW4reG1sIn0sc3Ryczp7eGxzeDoiYXBwbGlj''@;'; + put 'put ''YXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hhcmVkU3RyaW5ncyt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGFyZWRTdHJpbmdzIn0sY29tbWVudHM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0''@;'; + put 'put ''cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNvbW1lbnRzK3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmNvbW1lbnRzIn0sc2hlZXRzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jr''@;'; + put 'put ''c2hlZXQreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwud29ya3NoZWV0In0sY2hhcnRzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jaGFydHNoZWV0K3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5k''@;'; + put 'put ''Lm1zLWV4Y2VsLmNoYXJ0c2hlZXQifSxkaWFsb2dzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5kaWFsb2dzaGVldCt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5kaWFsb2dzaGVldCJ9LG1hY3Jv''@;'; + put 'put ''czp7eGxzeDoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLm1hY3Jvc2hlZXQreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwubWFjcm9zaGVldCJ9LHRhYmxlczp7eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0''@;'; + put 'put ''bWwudGFibGUreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGFibGUifSxwaXZvdHM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90VGFibGUreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQu''@;'; + put 'put ''bXMtZXhjZWwucGl2b3RUYWJsZSJ9LHBpdm90Y2FjaGVzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdENhY2hlRGVmaW5pdGlvbit4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5waXZvdENh''@;'; + put 'put ''Y2hlRGVmaW5pdGlvbiJ9LHBpdm90cmVjb3Jkczp7eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RDYWNoZVJlY29yZHMreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucGl2b3RDYWNoZVJlY29y''@;'; + put 'put ''ZHMifSxjb25uczp7eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29ubmVjdGlvbnMreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY29ubmVjdGlvbnMifSxsaW5rczp7eGxzeDoiYXBwbGljYXRpb24v''@;'; + put 'put ''dm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuZXh0ZXJuYWxMaW5rK3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmV4dGVybmFsTGluayJ9LHN0eWxlczp7eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRv''@;'; + put 'put ''Y3VtZW50LnNwcmVhZHNoZWV0bWwuc3R5bGVzK3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnN0eWxlcyJ9fTtyZXR1cm4gb24oSCkuZm9yRWFjaChmdW5jdGlvbihyZSl7WyJ4bHNtIiwieGxhbSJdLmZvckVhY2goZnVuY3Rpb24oWCl7SFtyZV1bWF18fChIW3JlXVtYXT1I''@;'; + put 'put ''W3JlXS54bHN4KX0pfSksb24oSCkuZm9yRWFjaChmdW5jdGlvbihyZSl7b24oSFtyZV0pLmZvckVhY2goZnVuY3Rpb24oWCl7bWRbSFtyZV1bWF1dPXJlfSl9KSxIfSgpLCRnPWZ1bmN0aW9uIGF0KEgpe2Zvcih2YXIgcmU9W10sWD1vbihIKSx3ZT0wO3dlIT09WC5sZW5ndGg7Kyt3ZSludWxs''@;'; + put 'put ''PT1yZVtIW1hbd2VdXV0mJihyZVtIW1hbd2VdXV09W10pLHJlW0hbWFt3ZV1dXS5wdXNoKFhbd2VdKTtyZXR1cm4gcmV9KG1kKTtYMC5DVD0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9jb250ZW50LXR5cGVzIjt2YXIgZjI9YmkoIlR5cGVzIixudWxs''@;'; + put 'put ''LHt4bWxuczpYMC5DVCwieG1sbnM6eHNkIjpYMC54c2QsInhtbG5zOnhzaSI6WDAueHNpfSksb1I9W1sieG1sIiwiYXBwbGljYXRpb24veG1sIl0sWyJiaW4iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQuYmluYXJ5Lm1hY3JvRW5hYmxlZC5tYWluIl0sWyJ2bWwiLCJhcHBsaWNh''@;'; + put 'put ''dGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudm1sRHJhd2luZyJdLFsiZGF0YSIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5tb2RlbCtkYXRhIl0sWyJibXAiLCJpbWFnZS9ibXAiXSxbInBuZyIsImltYWdlL3BuZyJdLFsiZ2lm''@;'; + put 'put ''IiwiaW1hZ2UvZ2lmIl0sWyJlbWYiLCJpbWFnZS94LWVtZiJdLFsid21mIiwiaW1hZ2UveC13bWYiXSxbImpwZyIsImltYWdlL2pwZWciXSxbImpwZWciLCJpbWFnZS9qcGVnIl0sWyJ0aWYiLCJpbWFnZS90aWZmIl0sWyJ0aWZmIiwiaW1hZ2UvdGlmZiJdLFsicGRmIiwiYXBwbGljYXRpb24v''@;'; + put 'put ''cGRmIl0sWyJyZWxzIiwkZy5yZWxzWzBdXV0ubWFwKGZ1bmN0aW9uKEgpe3JldHVybiBiaSgiRGVmYXVsdCIsbnVsbCx7RXh0ZW5zaW9uOkhbMF0sQ29udGVudFR5cGU6SFsxXX0pfSkscHQ9e1dCOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAw''@;'; + put 'put ''Ni9yZWxhdGlvbnNoaXBzL29mZmljZURvY3VtZW50IixTSEVFVDoiaHR0cDovL3NoZWV0anMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudCIsSExJTks6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9v''@;'; + put 'put ''ZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvaHlwZXJsaW5rIixWTUw6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvdm1sRHJhd2luZyIsWFBBVEg6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRz''@;'; + put 'put ''Lm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZXJuYWxMaW5rUGF0aCIsWE1JU1M6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYvcmVsYXRpb25zaGlwcy94bEV4dGVybmFsTGlua1BhdGgveGxQYXRoTWlzc2luZyIsWExJTks6Imh0dHA6''@;'; + put 'put ''Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZXJuYWxMaW5rIixDWE1MOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2N1c3RvbVhtbCIsQ1hN''@;'; + put 'put ''TFA6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY3VzdG9tWG1sUHJvcHMiLFZCQToiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9yZWxhdGlvbnNoaXBzL3ZiYVByb2plY3QifTtmdW5j''@;'; + put 'put ''dGlvbiBJdChIKXt2YXIgcmU9SC5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBILnNsaWNlKDAscmUrMSkrIl9yZWxzLyIrSC5zbGljZShyZSsxKSsiLnJlbHMifWZ1bmN0aW9uIFB0KEgscmUpe3ZhciBYPXsiIWlkIjp7fX07aWYoIUgpcmV0dXJuIFg7Ii8iIT09cmUuY2hhckF0KDApJiYocmU9''@;'; + put 'put ''Ii8iK3JlKTt2YXIgd2U9e307cmV0dXJuKEgubWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4ZSl7dmFyIEZlPWVuKHhlKTtpZigiPFJlbGF0aW9uc2hpcCI9PT1GZVswXSl7dmFyIFplPXt9O1plLlR5cGU9RmUuVHlwZSxaZS5UYXJnZXQ9RmUuVGFyZ2V0LFplLklkPUZlLklkLFpl''@;'; + put 'put ''LlRhcmdldE1vZGU9RmUuVGFyZ2V0TW9kZTt2YXIgamU9IkV4dGVybmFsIj09PUZlLlRhcmdldE1vZGU/RmUuVGFyZ2V0OnVuKEZlLlRhcmdldCxyZSk7WFtqZV09WmUsd2VbRmUuSWRdPVplfX0pLFhbIiFpZCJdPXdlLFh9WDAuUkVMUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMu''@;'; + put 'put ''b3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzIjt2YXIgZmU9YmkoIlJlbGF0aW9uc2hpcHMiLG51bGwse3htbG5zOlgwLlJFTFN9KTtmdW5jdGlvbiBydChIKXt2YXIgcmU9W2NuLGZlXTtyZXR1cm4gb24oSFsiIWlkIl0pLmZvckVhY2goZnVuY3Rpb24oWCl7cmVbcmUubGVuZ3RoXT1i''@;'; + put 'put ''aSgiUmVsYXRpb25zaGlwIixudWxsLEhbIiFpZCJdW1hdKX0pLHJlLmxlbmd0aD4yJiYocmVbcmUubGVuZ3RoXT0iPC9SZWxhdGlvbnNoaXBzPiIscmVbMV09cmVbMV0ucmVwbGFjZSgiLz4iLCI+IikpLHJlLmpvaW4oIiIpfXZhciBhPVtwdC5ITElOSyxwdC5YUEFUSCxwdC5YTUlTU107ZnVu''@;'; + put 'put ''Y3Rpb24gSnQoSCxyZSxYLHdlLHhlLEZlKXtpZih4ZXx8KHhlPXt9KSxIWyIhaWQiXXx8KEhbIiFpZCJdPXt9KSxyZTwwKWZvcihyZT0xO0hbIiFpZCJdWyJySWQiK3JlXTsrK3JlKTtpZih4ZS5JZD0icklkIityZSx4ZS5UeXBlPXdlLHhlLlRhcmdldD1YLEZlP3hlLlRhcmdldE1vZGU9RmU6''@;'; + put 'put ''YS5pbmRleE9mKHhlLlR5cGUpPi0xJiYoeGUuVGFyZ2V0TW9kZT0iRXh0ZXJuYWwiKSxIWyIhaWQiXVt4ZS5JZF0pdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmV3cml0ZSBySWQgIityZSk7cmV0dXJuIEhbIiFpZCJdW3hlLklkXT14ZSxIWygiLyIreGUuVGFyZ2V0KS5yZXBsYWNlKCIvLyIs''@;'; + put 'put ''Ii8iKV09eGUscmV9ZnVuY3Rpb24gXyhILHJlLFgpe3JldHVyblsnICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iJytIKyciPlxuJywnICAgIDxyZGY6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL25zL29mZmljZS8xLjIvbWV0YS8nKyhYfHwib2Rm''@;'; + put 'put ''IikrIiMiK3JlKyciLz5cbicsIiAgPC9yZGY6RGVzY3JpcHRpb24+XG4iXS5qb2luKCIiKX1mdW5jdGlvbiBBbyhILHJlKXtyZXR1cm5bJyAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IicrSCsnIj5cbicsJyAgICA8bnMwOmhhc1BhcnQgeG1sbnM6bnMwPSJodHRwOi8vZG9jcy5vYXNp''@;'; + put 'put ''cy1vcGVuLm9yZy9ucy9vZmZpY2UvMS4yL21ldGEvcGtnIyIgcmRmOnJlc291cmNlPSInK3JlKyciLz5cbicsIiAgPC9yZGY6RGVzY3JpcHRpb24+XG4iXS5qb2luKCIiKX12YXIgJG89ZnVuY3Rpb24oKXt2YXIgSD0nPG9mZmljZTpkb2N1bWVudC1tZXRhIHhtbG5zOm9mZmljZT0idXJuOm9h''@;'; + put 'put ''c2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpvZmZpY2U6MS4wIiB4bWxuczptZXRhPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm1ldGE6MS4wIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhsaW5rPSJodHRw''@;'; + put 'put ''Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBvZmZpY2U6dmVyc2lvbj0iMS4yIj48b2ZmaWNlOm1ldGE+PG1ldGE6Z2VuZXJhdG9yPlNoZWV0SlMgJytVLnZlcnNpb24rIjwvbWV0YTpnZW5lcmF0b3I+PC9vZmZpY2U6bWV0YT48L29mZmljZTpkb2N1bWVudC1tZXRhPiI7cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIEh9fSgpLGFlPVtbImNwOmNhdGVnb3J5IiwiQ2F0ZWdvcnkiXSxbImNwOmNvbnRlbnRTdGF0dXMiLCJDb250ZW50U3RhdHVzIl0sWyJjcDprZXl3b3JkcyIsIktleXdvcmRzIl0sWyJjcDpsYXN0TW9kaWZpZWRCeSIsIkxhc3RBdXRob3IiXSxbImNwOmxhc3RQcmludGVk''@;'; + put 'put ''IiwiTGFzdFByaW50ZWQiXSxbImNwOnJldmlzaW9uIiwiUmV2TnVtYmVyIl0sWyJjcDp2ZXJzaW9uIiwiVmVyc2lvbiJdLFsiZGM6Y3JlYXRvciIsIkF1dGhvciJdLFsiZGM6ZGVzY3JpcHRpb24iLCJDb21tZW50cyJdLFsiZGM6aWRlbnRpZmllciIsIklkZW50aWZpZXIiXSxbImRjOmxhbmd1''@;'; + put 'put ''YWdlIiwiTGFuZ3VhZ2UiXSxbImRjOnN1YmplY3QiLCJTdWJqZWN0Il0sWyJkYzp0aXRsZSIsIlRpdGxlIl0sWyJkY3Rlcm1zOmNyZWF0ZWQiLCJDcmVhdGVkRGF0ZSIsImRhdGUiXSxbImRjdGVybXM6bW9kaWZpZWQiLCJNb2RpZmllZERhdGUiLCJkYXRlIl1dO1gwLkNPUkVfUFJPUFM9Imh0''@;'; + put 'put ''dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvbWV0YWRhdGEvY29yZS1wcm9wZXJ0aWVzIixwdC5DT1JFX1BST1BTPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMvbWV0YWRhdGEvY29yZS1wcm9w''@;'; + put 'put ''ZXJ0aWVzIjt2YXIgVjE9ZnVuY3Rpb24oKXtmb3IodmFyIEg9bmV3IEFycmF5KGFlLmxlbmd0aCkscmU9MDtyZTxhZS5sZW5ndGg7KytyZSl7dmFyIFg9YWVbcmVdLHdlPSIoPzoiK1hbMF0uc2xpY2UoMCxYWzBdLmluZGV4T2YoIjoiKSkrIjopIitYWzBdLnNsaWNlKFhbMF0uaW5kZXhPZigi''@;'; + put 'put ''OiIpKzEpO0hbcmVdPW5ldyBSZWdFeHAoIjwiK3dlKyJbXj5dKj4oW1xcc1xcU10qPyk8LyIrd2UrIj4iKX1yZXR1cm4gSH0oKTtmdW5jdGlvbiBscyhIKXt2YXIgcmU9e307SD1XMChIKTtmb3IodmFyIFg9MDtYPGFlLmxlbmd0aDsrK1gpe3ZhciB3ZT1hZVtYXSx4ZT1ILm1hdGNoKFYxW1hd''@;'; + put 'put ''KTtudWxsIT14ZSYmeGUubGVuZ3RoPjAmJihyZVt3ZVsxXV09Z3IoeGVbMV0pKSwiZGF0ZSI9PT13ZVsyXSYmcmVbd2VbMV1dJiYocmVbd2VbMV1dPWRuKHJlW3dlWzFdXSkpfXJldHVybiByZX12YXIgTW49YmkoImNwOmNvcmVQcm9wZXJ0aWVzIixudWxsLHsieG1sbnM6Y3AiOlgwLkNPUkVf''@;'; + put 'put ''UFJPUFMsInhtbG5zOmRjIjpYMC5kYywieG1sbnM6ZGN0ZXJtcyI6WDAuZGN0ZXJtcywieG1sbnM6ZGNtaXR5cGUiOlgwLmRjbWl0eXBlLCJ4bWxuczp4c2kiOlgwLnhzaX0pO2Z1bmN0aW9uIHhuKEgscmUsWCx3ZSx4ZSl7bnVsbCE9eGVbSF18fG51bGw9PXJlfHwiIj09PXJlfHwoeGVbSF09''@;'; + put 'put ''cmUscmU9UnIocmUpLHdlW3dlLmxlbmd0aF09WD9iaShILHJlLFgpOnNhKEgscmUpKX12YXIgbzI9W1siQXBwbGljYXRpb24iLCJBcHBsaWNhdGlvbiIsInN0cmluZyJdLFsiQXBwVmVyc2lvbiIsIkFwcFZlcnNpb24iLCJzdHJpbmciXSxbIkNvbXBhbnkiLCJDb21wYW55Iiwic3RyaW5nIl0s''@;'; + put 'put ''WyJEb2NTZWN1cml0eSIsIkRvY1NlY3VyaXR5Iiwic3RyaW5nIl0sWyJNYW5hZ2VyIiwiTWFuYWdlciIsInN0cmluZyJdLFsiSHlwZXJsaW5rc0NoYW5nZWQiLCJIeXBlcmxpbmtzQ2hhbmdlZCIsImJvb2wiXSxbIlNoYXJlZERvYyIsIlNoYXJlZERvYyIsImJvb2wiXSxbIkxpbmtzVXBUb0Rh''@;'; + put 'put ''dGUiLCJMaW5rc1VwVG9EYXRlIiwiYm9vbCJdLFsiU2NhbGVDcm9wIiwiU2NhbGVDcm9wIiwiYm9vbCJdLFsiSGVhZGluZ1BhaXJzIiwiSGVhZGluZ1BhaXJzIiwicmF3Il0sWyJUaXRsZXNPZlBhcnRzIiwiVGl0bGVzT2ZQYXJ0cyIsInJhdyJdXTtmdW5jdGlvbiBBcyhILHJlLFgsd2Upe3Zh''@;'; + put 'put ''ciB4ZT1bXTtpZigic3RyaW5nIj09dHlwZW9mIEgpeGU9dmkoSCx3ZSk7ZWxzZSBmb3IodmFyIEZlPTA7RmU8SC5sZW5ndGg7KytGZSl4ZT14ZS5jb25jYXQoSFtGZV0ubWFwKGZ1bmN0aW9uKHh0KXtyZXR1cm57djp4dH19KSk7dmFyIFplPSJzdHJpbmciPT10eXBlb2YgcmU/dmkocmUsd2Up''@;'; + put 'put ''Lm1hcChmdW5jdGlvbih4dCl7cmV0dXJuIHh0LnZ9KTpyZSxqZT0wLFllPTA7aWYoWmUubGVuZ3RoPjApZm9yKHZhciBNdD0wO010IT09eGUubGVuZ3RoO010Kz0yKXtzd2l0Y2goWWU9K3hlW010KzFdLnYseGVbTXRdLnYpe2Nhc2UiV29ya3NoZWV0cyI6Y2FzZSJcdTVkZTVcdTRmNWNcdTg4''@;'; + put 'put ''NjgiOmNhc2UiXHUwNDFiXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDRiIjpjYXNlIlx1MDYyM1x1MDY0OFx1MDYzMVx1MDYyN1x1MDY0MiBcdTA2MjdcdTA2NDRcdTA2MzlcdTA2NDVcdTA2NDQiOmNhc2UiXHUzMGVmXHUzMGZjXHUzMGFmXHUzMGI3XHUzMGZjXHUzMGM4IjpjYXNlIlx1MDVkMlx1''@;'; + put 'put ''MDVkY1x1MDVkOVx1MDVkNVx1MDVlMFx1MDVkNVx1MDVlYSBcdTA1ZTJcdTA1ZDFcdTA1ZDVcdTA1ZDNcdTA1ZDQiOmNhc2UiQXJiZWl0c2JsXHhlNHR0ZXIiOmNhc2UiXHhjN2FsXHUwMTMxXHUwMTVmbWEgU2F5ZmFsYXJcdTAxMzEiOmNhc2UiRmV1aWxsZXMgZGUgY2FsY3VsIjpjYXNlIkZv''@;'; + put 'put ''Z2xpIGRpIGxhdm9ybyI6Y2FzZSJGb2xoYXMgZGUgY1x4ZTFsY3VsbyI6Y2FzZSJQbGFuaWxoYXMiOmNhc2UiUmVnbmVhcmsiOmNhc2UiSG9qYXMgZGUgY1x4ZTFsY3VsbyI6Y2FzZSJXZXJrYmxhZGVuIjpYLldvcmtzaGVldHM9WWUsWC5TaGVldE5hbWVzPVplLnNsaWNlKGplLGplK1llKTti''@;'; + put 'put ''cmVhaztjYXNlIk5hbWVkIFJhbmdlcyI6Y2FzZSJSYW5nb3MgY29uIG5vbWJyZSI6Y2FzZSJcdTU0MGRcdTUyNGRcdTRlZDhcdTMwNGRcdTRlMDBcdTg5YTciOmNhc2UiQmVuYW5udGUgQmVyZWljaGUiOmNhc2UiTmF2bmdpdm5lIG9tclx4ZTVkZXIiOlguTmFtZWRSYW5nZXM9WWUsWC5EZWZp''@;'; + put 'put ''bmVkTmFtZXM9WmUuc2xpY2UoamUsamUrWWUpO2JyZWFrO2Nhc2UiQ2hhcnRzIjpjYXNlIkRpYWdyYW1tZSI6WC5DaGFydHNoZWV0cz1ZZSxYLkNoYXJ0TmFtZXM9WmUuc2xpY2UoamUsamUrWWUpfWplKz1ZZX19WDAuRVhUX1BST1BTPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5v''@;'; + put 'put ''cmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9leHRlbmRlZC1wcm9wZXJ0aWVzIixwdC5FWFRfUFJPUFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZW5kZWQtcHJvcGVydGllcyI7dmFyIFRNPWJpKCJQcm9wZXJ0''@;'; + put 'put ''aWVzIixudWxsLHt4bWxuczpYMC5FWFRfUFJPUFMsInhtbG5zOnZ0IjpYMC52dH0pO1gwLkNVU1RfUFJPUFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2N1c3RvbS1wcm9wZXJ0aWVzIixwdC5DVVNUX1BST1BTPSJodHRwOi8vc2NoZW1h''@;'; + put 'put ''cy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2N1c3RvbS1wcm9wZXJ0aWVzIjt2YXIgZ3Y9LzxbXj5dKz5bXjxdKi9nLERuPWJpKCJQcm9wZXJ0aWVzIixudWxsLHt4bWxuczpYMC5DVVNUX1BST1BTLCJ4bWxuczp2dCI6WDAudnR9KTt2YXIg''@;'; + put 'put ''ZW89e1RpdGxlOiJUaXRsZSIsU3ViamVjdDoiU3ViamVjdCIsQXV0aG9yOiJBdXRob3IiLEtleXdvcmRzOiJLZXl3b3JkcyIsQ29tbWVudHM6IkRlc2NyaXB0aW9uIixMYXN0QXV0aG9yOiJMYXN0QXV0aG9yIixSZXZOdW1iZXI6IlJldmlzaW9uIixBcHBsaWNhdGlvbjoiQXBwTmFtZSIsTGFz''@;'; + put 'put ''dFByaW50ZWQ6Ikxhc3RQcmludGVkIixDcmVhdGVkRGF0ZToiQ3JlYXRlZCIsTW9kaWZpZWREYXRlOiJMYXN0U2F2ZWQiLENhdGVnb3J5OiJDYXRlZ29yeSIsTWFuYWdlcjoiTWFuYWdlciIsQ29tcGFueToiQ29tcGFueSIsQXBwVmVyc2lvbjoiVmVyc2lvbiIsQ29udGVudFN0YXR1czoiQ29u''@;'; + put 'put ''dGVudFN0YXR1cyIsSWRlbnRpZmllcjoiSWRlbnRpZmllciIsTGFuZ3VhZ2U6Ikxhbmd1YWdlIn0sRDA9dHQoZW8pO2Z1bmN0aW9uIHFsKEgscmUsWCl7SFtyZT1EMFtyZV18fHJlXT1YfWZ1bmN0aW9uIFQ4KEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoNCksWD1ILnJlYWRfc2hpZnQoNCk7cmV0''@;'; + put 'put ''dXJuIG5ldyBEYXRlKDFlMyooWC8xZTcqTWF0aC5wb3coMiwzMikrcmUvMWU3LTExNjQ0NDczNjAwKSkudG9JU09TdHJpbmcoKS5yZXBsYWNlKC9cLjAwMC8sIiIpfWZ1bmN0aW9uIFhwKEgscmUsWCl7dmFyIHdlPUgubCx4ZT1ILnJlYWRfc2hpZnQoMCwibHBzdHItY3AiKTtpZihYKWZvcig7''@;'; + put 'put ''SC5sLXdlJjM7KSsrSC5sO3JldHVybiB4ZX1mdW5jdGlvbiBaZihILHJlLFgpe3ZhciB3ZT1ILnJlYWRfc2hpZnQoMCwibHB3c3RyIik7cmV0dXJuIFgmJihILmwrPTQtKHdlLmxlbmd0aCsxJjMpJjMpLHdlfWZ1bmN0aW9uIFVsKEgscmUsWCl7cmV0dXJuIDMxPT09cmU/WmYoSCk6WHAoSCww''@;'; + put 'put ''LFgpfWZ1bmN0aW9uIHpmKEgscmUsWCl7cmV0dXJuIFVsKEgscmUsITE9PT1YPzA6NCl9ZnVuY3Rpb24gaWIoSCl7dmFyIHJlPUgubCxYPUFkKEgsODEpO3JldHVybiAwPT1IW0gubF0mJjA9PUhbSC5sKzFdJiZILmwtcmUmMiYmKEgubCs9MiksW1gsQWQoSCwzKV19ZnVuY3Rpb24gdmQoSCxy''@;'; + put 'put ''ZSl7Zm9yKHZhciBYPUgucmVhZF9zaGlmdCg0KSx3ZT17fSx4ZT0wO3hlIT1YOysreGUpe3ZhciBGZT1ILnJlYWRfc2hpZnQoNCksWmU9SC5yZWFkX3NoaWZ0KDQpO3dlW0ZlXT1ILnJlYWRfc2hpZnQoWmUsMTIwMD09PXJlPyJ1dGYxNmxlIjoidXRmOCIpLnJlcGxhY2UoVCwiIikucmVwbGFj''@;'; + put 'put ''ZShTLCIhIiksMTIwMD09PXJlJiZaZSUyJiYoSC5sKz0yKX1yZXR1cm4gMyZILmwmJihILmw9SC5sPj4zPDwyKSx3ZX1mdW5jdGlvbiB3MihIKXt2YXIgcmU9SC5yZWFkX3NoaWZ0KDQpLFg9SC5zbGljZShILmwsSC5sK3JlKTtyZXR1cm4gSC5sKz1yZSwoMyZyZSk+MCYmKEgubCs9NC0oMyZy''@;'; + put 'put ''ZSkmMyksWH1mdW5jdGlvbiBBZChILHJlLFgpe3ZhciB4ZSx3ZT1ILnJlYWRfc2hpZnQoMiksRmU9WHx8e307aWYoSC5sKz0yLDEyIT09cmUmJndlIT09cmUmJi0xPT09U00uaW5kZXhPZihyZSkmJig0MTI2IT0oNjU1MzQmcmUpfHw0MTI2IT0oNjU1MzQmd2UpKSl0aHJvdyBuZXcgRXJyb3Io''@;'; + put 'put ''IkV4cGVjdGVkIHR5cGUgIityZSsiIHNhdyAiK3dlKTtzd2l0Y2goMTI9PT1yZT93ZTpyZSl7Y2FzZSAyOnJldHVybiB4ZT1ILnJlYWRfc2hpZnQoMiwiaSIpLEZlLnJhd3x8KEgubCs9MikseGU7Y2FzZSAzOnJldHVybiBILnJlYWRfc2hpZnQoNCwiaSIpO2Nhc2UgMTE6cmV0dXJuIDAhPT1I''@;'; + put 'put ''LnJlYWRfc2hpZnQoNCk7Y2FzZSAxOTpyZXR1cm4gSC5yZWFkX3NoaWZ0KDQpO2Nhc2UgMzA6cmV0dXJuIFhwKEgsMCw0KS5yZXBsYWNlKFQsIiIpO2Nhc2UgMzE6cmV0dXJuIFpmKEgpO2Nhc2UgNjQ6cmV0dXJuIFQ4KEgpO2Nhc2UgNjU6cmV0dXJuIHcyKEgpO2Nhc2UgNzE6cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uIGVtKEgpe3ZhciByZT17fTtyZXR1cm4gcmUuU2l6ZT1ILnJlYWRfc2hpZnQoNCksSC5sKz1yZS5TaXplKzMtKHJlLlNpemUtMSklNCxyZX0oSCk7Y2FzZSA4MDpyZXR1cm4gemYoSCx3ZSwhRmUucmF3KS5yZXBsYWNlKFQsIiIpO2Nhc2UgODE6cmV0dXJuIGZ1bmN0aW9uIEYyKEgs''@;'; + put 'put ''cmUpe2lmKCFyZSl0aHJvdyBuZXcgRXJyb3IoIlZ0VW5hbGlnbmVkU3RyaW5nIG11c3QgaGF2ZSBwb3NpdGl2ZSBsZW5ndGgiKTtyZXR1cm4gVWwoSCxyZSwwKX0oSCx3ZSkucmVwbGFjZShULCIiKTtjYXNlIDQxMDg6cmV0dXJuIGZ1bmN0aW9uIElNKEgpe2Zvcih2YXIgcmU9SC5yZWFkX3No''@;'; + put 'put ''aWZ0KDQpLFg9W10sd2U9MDt3ZTxyZS8yOysrd2UpWC5wdXNoKGliKEgpKTtyZXR1cm4gWH0oSCk7Y2FzZSA0MTI2OmNhc2UgNDEyNzpyZXR1cm4gNDEyNz09d2U/ZnVuY3Rpb24gSXUoSCl7Zm9yKHZhciByZT1ILnJlYWRfc2hpZnQoNCksWD1bXSx3ZT0wO3dlIT1yZTsrK3dlKXt2YXIgeGU9''@;'; + put 'put ''SC5sO1hbd2VdPUgucmVhZF9zaGlmdCgwLCJscHdzdHIiKS5yZXBsYWNlKFQsIiIpLEgubC14ZSYyJiYoSC5sKz0yKX1yZXR1cm4gWH0oSCk6ZnVuY3Rpb24gQXIoSCl7Zm9yKHZhciByZT1ILnJlYWRfc2hpZnQoNCksWD1bXSx3ZT0wO3dlIT1yZTsrK3dlKVhbd2VdPUgucmVhZF9zaGlmdCgw''@;'; + put 'put ''LCJscHN0ci1jcCIpLnJlcGxhY2UoVCwiIik7cmV0dXJuIFh9KEgpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlZFByb3BlcnR5VmFsdWUgdW5yZWNvZ25pemVkIHR5cGUgIityZSsiICIrd2UpfX1mdW5jdGlvbiBLcChILHJlKXt2YXIgWD1SaSg0KSx3ZT1SaSg0KTtzd2l0Y2goWC53''@;'; + put 'put ''cml0ZV9zaGlmdCg0LDgwPT1IPzMxOkgpLEgpe2Nhc2UgMzp3ZS53cml0ZV9zaGlmdCgtNCxyZSk7YnJlYWs7Y2FzZSA1Oih3ZT1SaSg4KSkud3JpdGVfc2hpZnQoOCxyZSwiZiIpO2JyZWFrO2Nhc2UgMTE6d2Uud3JpdGVfc2hpZnQoNCxyZT8xOjApO2JyZWFrO2Nhc2UgNjQ6d2U9ZnVuY3Rp''@;'; + put 'put ''b24gSnAoSCl7dmFyIFg9KCJzdHJpbmciPT10eXBlb2YgSD9uZXcgRGF0ZShEYXRlLnBhcnNlKEgpKTpIKS5nZXRUaW1lKCkvMWUzKzExNjQ0NDczNjAwLHdlPVglTWF0aC5wb3coMiwzMikseGU9KFgtd2UpL01hdGgucG93KDIsMzIpO3hlKj0xZTc7dmFyIEZlPSh3ZSo9MWU3KS9NYXRoLnBv''@;'; + put 'put ''dygyLDMyKXwwO0ZlPjAmJih3ZSU9TWF0aC5wb3coMiwzMikseGUrPUZlKTt2YXIgWmU9UmkoOCk7cmV0dXJuIFplLndyaXRlX3NoaWZ0KDQsd2UpLFplLndyaXRlX3NoaWZ0KDQseGUpLFplfShyZSk7YnJlYWs7Y2FzZSAzMTpjYXNlIDgwOmZvcigod2U9UmkoNCsyKihyZS5sZW5ndGgrMSkr''@;'; + put 'put ''KHJlLmxlbmd0aCUyPzA6MikpKS53cml0ZV9zaGlmdCg0LHJlLmxlbmd0aCsxKSx3ZS53cml0ZV9zaGlmdCgwLHJlLCJkYmNzIik7d2UubCE9d2UubGVuZ3RoOyl3ZS53cml0ZV9zaGlmdCgxLDApO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlZFByb3BlcnR5VmFsdWUgdW5y''@;'; + put 'put ''ZWNvZ25pemVkIHR5cGUgIitIKyIgIityZSl9cmV0dXJuIFYoW1gsd2VdKX1mdW5jdGlvbiBmZihILHJlKXt2YXIgWD1ILmwsd2U9SC5yZWFkX3NoaWZ0KDQpLHhlPUgucmVhZF9zaGlmdCg0KSxGZT1bXSxaZT0wLGplPTAsWWU9LTEsTXQ9e307Zm9yKFplPTA7WmUhPXhlOysrWmUpe3ZhciB4''@;'; + put 'put ''dD1ILnJlYWRfc2hpZnQoNCksUnQ9SC5yZWFkX3NoaWZ0KDQpO0ZlW1plXT1beHQsUnQrWF19RmUuc29ydChmdW5jdGlvbihUbixPbil7cmV0dXJuIFRuWzFdLU9uWzFdfSk7dmFyIFl0PXt9O2ZvcihaZT0wO1plIT14ZTsrK1plKXtpZihILmwhPT1GZVtaZV1bMV0pe3ZhciBubj0hMDtpZiha''@;'; + put 'put ''ZT4wJiZyZSlzd2l0Y2gocmVbRmVbWmUtMV1bMF1dLnQpe2Nhc2UgMjpILmwrMj09PUZlW1plXVsxXSYmKEgubCs9Mixubj0hMSk7YnJlYWs7Y2FzZSA4MDpjYXNlIDQxMDg6SC5sPD1GZVtaZV1bMV0mJihILmw9RmVbWmVdWzFdLG5uPSExKX1pZigoIXJlfHwwPT1aZSkmJkgubDw9RmVbWmVd''@;'; + put 'put ''WzFdJiYobm49ITEsSC5sPUZlW1plXVsxXSksbm4pdGhyb3cgbmV3IEVycm9yKCJSZWFkIEVycm9yOiBFeHBlY3RlZCBhZGRyZXNzICIrRmVbWmVdWzFdKyIgYXQgIitILmwrIiA6IitaZSl9aWYocmUpe3ZhciBDbj1yZVtGZVtaZV1bMF1dO2lmKFl0W0NuLm5dPUFkKEgsQ24udCx7cmF3OiEw''@;'; + put 'put ''fSksInZlcnNpb24iPT09Q24ucCYmKFl0W0NuLm5dPVN0cmluZyhZdFtDbi5uXT4+MTYpKyIuIisoIjAwMDAiK1N0cmluZyg2NTUzNSZZdFtDbi5uXSkpLnNsaWNlKC00KSksIkNvZGVQYWdlIj09Q24ubilzd2l0Y2goWXRbQ24ubl0pe2Nhc2UgMDpZdFtDbi5uXT0xMjUyO2Nhc2UgODc0OmNh''@;'; + put 'put ''c2UgOTMyOmNhc2UgOTM2OmNhc2UgOTQ5OmNhc2UgOTUwOmNhc2UgMTI1MDpjYXNlIDEyNTE6Y2FzZSAxMjUzOmNhc2UgMTI1NDpjYXNlIDEyNTU6Y2FzZSAxMjU2OmNhc2UgMTI1NzpjYXNlIDEyNTg6Y2FzZSAxZTQ6Y2FzZSAxMjAwOmNhc2UgMTIwMTpjYXNlIDEyNTI6Y2FzZSA2NWUzOmNh''@;'; + put 'put ''c2UtNTM2OmNhc2UgNjUwMDE6Y2FzZS01MzU6ZWUoamU9WXRbQ24ubl0+Pj4wJjY1NTM1KTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgQ29kZVBhZ2U6ICIrWXRbQ24ubl0pfX1lbHNlIGlmKDE9PT1GZVtaZV1bMF0pe2lmKGplPVl0LkNvZGVQYWdlPUFkKEgs''@;'; + put 'put ''MiksZWUoamUpLC0xIT09WWUpe3ZhciBEdD1ILmw7SC5sPUZlW1llXVsxXSxNdD12ZChILGplKSxILmw9RHR9fWVsc2UgaWYoMD09PUZlW1plXVswXSl7aWYoMD09PWplKXtZZT1aZSxILmw9RmVbWmUrMV1bMV07Y29udGludWV9TXQ9dmQoSCxqZSl9ZWxzZXt2YXIgUG4senQ9TXRbRmVbWmVd''@;'; + put 'put ''WzBdXTtzd2l0Y2goSFtILmxdKXtjYXNlIDY1OkgubCs9NCxQbj13MihIKTticmVhaztjYXNlIDMwOmNhc2UgMzE6SC5sKz00LFBuPXpmKEgsSFtILmwtNF0pLnJlcGxhY2UoL1x1MDAwMCskLywiIik7YnJlYWs7Y2FzZSAzOkgubCs9NCxQbj1ILnJlYWRfc2hpZnQoNCwiaSIpO2JyZWFrO2Nh''@;'; + put 'put ''c2UgMTk6SC5sKz00LFBuPUgucmVhZF9zaGlmdCg0KTticmVhaztjYXNlIDU6SC5sKz00LFBuPUgucmVhZF9zaGlmdCg4LCJmIik7YnJlYWs7Y2FzZSAxMTpILmwrPTQsUG49dGEoSCw0KTticmVhaztjYXNlIDY0OkgubCs9NCxQbj1kbihUOChIKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcg''@;'; + put 'put ''RXJyb3IoInVucGFyc2VkIHZhbHVlOiAiK0hbSC5sXSl9WXRbenRdPVBufX1yZXR1cm4gSC5sPVgrd2UsWXR9dmFyIEk4PVsiQ29kZVBhZ2UiLCJUaHVtYm5haWwiLCJfUElEX0xJTktCQVNFIiwiX1BJRF9ITElOS1MiLCJTeXN0ZW1JZGVudGlmaWVyIiwiRk1USUQiXS5jb25jYXQoWyJXb3Jr''@;'; + put 'put ''c2hlZXRzIiwiU2hlZXROYW1lcyIsIk5hbWVkUmFuZ2VzIiwiRGVmaW5lZE5hbWVzIiwiQ2hhcnRzaGVldHMiLCJDaGFydE5hbWVzIl0pO2Z1bmN0aW9uIERNKEgpe3N3aXRjaCh0eXBlb2YgSCl7Y2FzZSJib29sZWFuIjpyZXR1cm4gMTE7Y2FzZSJudW1iZXIiOnJldHVybigwfEgpPT1IPzM6''@;'; + put 'put ''NTtjYXNlInN0cmluZyI6cmV0dXJuIDMxO2Nhc2Uib2JqZWN0IjppZihIIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gNjR9cmV0dXJuLTF9ZnVuY3Rpb24gQ2goSCxyZSxYKXt2YXIgd2U9UmkoOCkseGU9W10sRmU9W10sWmU9OCxqZT0wLFllPVJpKDgpLE10PVJpKDgpO2lmKFllLndyaXRlX3No''@;'; + put 'put ''aWZ0KDQsMiksWWUud3JpdGVfc2hpZnQoNCwxMjAwKSxNdC53cml0ZV9zaGlmdCg0LDEpLEZlLnB1c2goWWUpLHhlLnB1c2goTXQpLFplKz04K1llLmxlbmd0aCwhcmUpeyhNdD1SaSg4KSkud3JpdGVfc2hpZnQoNCwwKSx4ZS51bnNoaWZ0KE10KTt2YXIgeHQ9W1JpKDQpXTtmb3IoeHRbMF0u''@;'; + put 'put ''d3JpdGVfc2hpZnQoNCxILmxlbmd0aCksamU9MDtqZTxILmxlbmd0aDsrK2plKXt2YXIgUnQ9SFtqZV1bMF07Zm9yKChZZT1SaSg4KzIqKFJ0Lmxlbmd0aCsxKSsoUnQubGVuZ3RoJTI/MDoyKSkpLndyaXRlX3NoaWZ0KDQsamUrMiksWWUud3JpdGVfc2hpZnQoNCxSdC5sZW5ndGgrMSksWWUu''@;'; + put 'put ''d3JpdGVfc2hpZnQoMCxSdCwiZGJjcyIpO1llLmwhPVllLmxlbmd0aDspWWUud3JpdGVfc2hpZnQoMSwwKTt4dC5wdXNoKFllKX1ZZT1WKHh0KSxGZS51bnNoaWZ0KFllKSxaZSs9OCtZZS5sZW5ndGh9Zm9yKGplPTA7amU8SC5sZW5ndGg7KytqZSlpZigoIXJlfHxyZVtIW2plXVswXV0pJiYh''@;'; + put 'put ''KEk4LmluZGV4T2YoSFtqZV1bMF0pPi0xKSYmbnVsbCE9SFtqZV1bMV0pe3ZhciBZdD1IW2plXVsxXSxubj0wO2lmKHJlKXt2YXIgQ249WFtubj0rcmVbSFtqZV1bMF1dXTtpZigidmVyc2lvbiI9PUNuLnAmJiJzdHJpbmciPT10eXBlb2YgWXQpe3ZhciBEdD1ZdC5zcGxpdCgiLiIpO1l0PSgr''@;'; + put 'put ''RHRbMF08PDE2KSsoK0R0WzFdfHwwKX1ZZT1LcChDbi50LFl0KX1lbHNle3ZhciB6dD1ETShZdCk7LTE9PXp0JiYoenQ9MzEsWXQ9U3RyaW5nKFl0KSksWWU9S3AoenQsWXQpfUZlLnB1c2goWWUpLChNdD1SaSg4KSkud3JpdGVfc2hpZnQoNCxyZT9ubjoyK2plKSx4ZS5wdXNoKE10KSxaZSs9''@;'; + put 'put ''OCtZZS5sZW5ndGh9dmFyIFBuPTgqKEZlLmxlbmd0aCsxKTtmb3IoamU9MDtqZTxGZS5sZW5ndGg7KytqZSl4ZVtqZV0ud3JpdGVfc2hpZnQoNCxQbiksUG4rPUZlW2plXS5sZW5ndGg7cmV0dXJuIHdlLndyaXRlX3NoaWZ0KDQsWmUpLHdlLndyaXRlX3NoaWZ0KDQsRmUubGVuZ3RoKSxWKFt3''@;'; + put 'put ''ZV0uY29uY2F0KHhlKS5jb25jYXQoRmUpKX1mdW5jdGlvbiB5ZChILHJlLFgpe3ZhciB3ZT1ILmNvbnRlbnQ7aWYoIXdlKXJldHVybnt9O0tsKHdlLDApO3ZhciB4ZSxGZSxaZSxqZSxZZT0wO3dlLmNoaygiZmVmZiIsIkJ5dGUgT3JkZXI6ICIpLHdlLnJlYWRfc2hpZnQoMik7dmFyIE10PXdl''@;'; + put 'put ''LnJlYWRfc2hpZnQoNCkseHQ9d2UucmVhZF9zaGlmdCgxNik7aWYoeHQhPT12dC51dGlscy5jb25zdHMuSEVBREVSX0NMU0lEJiZ4dCE9PVgpdGhyb3cgbmV3IEVycm9yKCJCYWQgUHJvcGVydHlTZXQgQ0xTSUQgIit4dCk7aWYoMSE9PSh4ZT13ZS5yZWFkX3NoaWZ0KDQpKSYmMiE9PXhlKXRo''@;'; + put 'put ''cm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkICNTZXRzOiAiK3hlKTtpZihGZT13ZS5yZWFkX3NoaWZ0KDE2KSxqZT13ZS5yZWFkX3NoaWZ0KDQpLDE9PT14ZSYmamUhPT13ZS5sKXRocm93IG5ldyBFcnJvcigiTGVuZ3RoIG1pc21hdGNoOiAiK2plKyIgIT09ICIrd2UubCk7Mj09PXhlJiYo''@;'; + put 'put ''WmU9d2UucmVhZF9zaGlmdCgxNiksWWU9d2UucmVhZF9zaGlmdCg0KSk7dmFyIENuLFJ0PWZmKHdlLHJlKSxZdD17U3lzdGVtSWRlbnRpZmllcjpNdH07Zm9yKHZhciBubiBpbiBSdClZdFtubl09UnRbbm5dO2lmKFl0LkZNVElEPUZlLDE9PT14ZSlyZXR1cm4gWXQ7aWYoWWUtd2UubD09MiYm''@;'; + put 'put ''KHdlLmwrPTIpLHdlLmwhPT1ZZSl0aHJvdyBuZXcgRXJyb3IoIkxlbmd0aCBtaXNtYXRjaCAyOiAiK3dlLmwrIiAhPT0gIitZZSk7dHJ5e0NuPWZmKHdlLG51bGwpfWNhdGNoKER0KXt9Zm9yKG5uIGluIENuKVl0W25uXT1Dbltubl07cmV0dXJuIFl0LkZNVElEPVtGZSxaZV0sWXR9ZnVuY3Rp''@;'; + put 'put ''b24gYTAoSCxyZSxYLHdlLHhlLEZlKXt2YXIgWmU9UmkoeGU/Njg6NDgpLGplPVtaZV07WmUud3JpdGVfc2hpZnQoMiw2NTUzNCksWmUud3JpdGVfc2hpZnQoMiwwKSxaZS53cml0ZV9zaGlmdCg0LDg0MjQxMjU5OSksWmUud3JpdGVfc2hpZnQoMTYsdnQudXRpbHMuY29uc3RzLkhFQURFUl9D''@;'; + put 'put ''TFNJRCwiaGV4IiksWmUud3JpdGVfc2hpZnQoNCx4ZT8yOjEpLFplLndyaXRlX3NoaWZ0KDE2LHJlLCJoZXgiKSxaZS53cml0ZV9zaGlmdCg0LHhlPzY4OjQ4KTt2YXIgWWU9Q2goSCxYLHdlKTtpZihqZS5wdXNoKFllKSx4ZSl7dmFyIE10PUNoKHhlLG51bGwsbnVsbCk7WmUud3JpdGVfc2hp''@;'; + put 'put ''ZnQoMTYsRmUsImhleCIpLFplLndyaXRlX3NoaWZ0KDQsNjgrWWUubGVuZ3RoKSxqZS5wdXNoKE10KX1yZXR1cm4gVihqZSl9ZnVuY3Rpb24gRmwoSCxyZSl7cmV0dXJuIEgucmVhZF9zaGlmdChyZSksbnVsbH1mdW5jdGlvbiB0YShILHJlKXtyZXR1cm4gMT09PUgucmVhZF9zaGlmdChyZSl9''@;'; + put 'put ''ZnVuY3Rpb24gajEoSCxyZSl7cmV0dXJuIHJlfHwocmU9UmkoMikpLHJlLndyaXRlX3NoaWZ0KDIsKyEhSCkscmV9ZnVuY3Rpb24gYzEoSCl7cmV0dXJuIEgucmVhZF9zaGlmdCgyLCJ1Iil9ZnVuY3Rpb24gaGYoSCxyZSl7cmV0dXJuIHJlfHwocmU9UmkoMikpLHJlLndyaXRlX3NoaWZ0KDIs''@;'; + put 'put ''SCkscmV9ZnVuY3Rpb24gWmMoSCxyZSl7cmV0dXJuIGZ1bmN0aW9uIEpzKEgscmUsWCl7Zm9yKHZhciB3ZT1bXSx4ZT1ILmwrcmU7SC5sPHhlOyl3ZS5wdXNoKFgoSCx4ZS1ILmwpKTtpZih4ZSE9PUgubCl0aHJvdyBuZXcgRXJyb3IoIlNsdXJwIGVycm9yIik7cmV0dXJuIHdlfShILHJlLGMx''@;'; + put 'put ''KX1mdW5jdGlvbiBaMShILHJlLFgpe3JldHVybiBYfHwoWD1SaSgyKSksWC53cml0ZV9zaGlmdCgxLCJlIj09cmU/K0g6KyEhSCksWC53cml0ZV9zaGlmdCgxLCJlIj09cmU/MTowKSxYfWZ1bmN0aW9uIHpjKEgscmUsWCl7dmFyIHdlPUgucmVhZF9zaGlmdChYJiZYLmJpZmY+PTEyPzI6MSks''@;'; + put 'put ''eGU9InNiY3MtY29udCIsRmU9UTtYJiZYLmJpZmY+PTgmJihRPTEyMDApLFgmJjghPVguYmlmZj8xMj09WC5iaWZmJiYoeGU9IndzdHIiKTpILnJlYWRfc2hpZnQoMSkmJih4ZT0iZGJjcy1jb250IiksWC5iaWZmPj0yJiZYLmJpZmY8PTUmJih4ZT0iY3BzdHIiKTt2YXIgamU9d2U/SC5yZWFk''@;'; + put 'put ''X3NoaWZ0KHdlLHhlKToiIjtyZXR1cm4gUT1GZSxqZX1mdW5jdGlvbiBvYihIKXt2YXIgcmU9UTtRPTEyMDA7dmFyIFllLFg9SC5yZWFkX3NoaWZ0KDIpLHdlPUgucmVhZF9zaGlmdCgxKSx4ZT00JndlLEZlPTgmd2UsWmU9MSsoMSZ3ZSksamU9MCxNdD17fTtGZSYmKGplPUgucmVhZF9zaGlm''@;'; + put 'put ''dCgyKSkseGUmJihZZT1ILnJlYWRfc2hpZnQoNCkpO3ZhciBSdD0wPT09WD8iIjpILnJlYWRfc2hpZnQoWCwyPT1aZT8iZGJjcy1jb250Ijoic2Jjcy1jb250Iik7aWYoRmUpZm9yKE10Ll9SPVtdO2plLS0gPjA7KU10Ll9SLnB1c2goe2lkeDpILnJlYWRfc2hpZnQoMiksaWZudDpILnJlYWRf''@;'; + put 'put ''c2hpZnQoMil9KTtyZXR1cm4geGUmJihILmwrPVllKSxNdC50PVJ0LEZlfHwoTXQucj0iPHQ+IitNdC50KyI8L3Q+IiksUT1yZSxNdH1mdW5jdGlvbiBHYyhILHJlKXt2YXIgWD1ILlImJkguUi5sZW5ndGh8fEgucjtILnImJihILlI9VzgoSC5yKSk7dmFyIHdlPSIiLHhlPTA7WD9ILlIuZm9y''@;'; + put 'put ''RWFjaChmdW5jdGlvbihDbil7eGUrKyx3ZSs9Q24udnx8IiJ9KTood2U9SC50fHwiIix4ZT0xKTt2YXIgRmU9UmkoMysoeGU+MT8yOjApKTtGZS53cml0ZV9zaGlmdCgyLHdlLmxlbmd0aCksRmUud3JpdGVfc2hpZnQoMSwxfCh4ZT4xPzg6MCkpLHhlPjEmJkZlLndyaXRlX3NoaWZ0KDIseGUp''@;'; + put 'put ''O3ZhciBaZT1SaSgyKndlLmxlbmd0aCk7WmUud3JpdGVfc2hpZnQoMip3ZS5sZW5ndGgsd2UsInV0ZjE2bGUiKTt2YXIgamU9W0ZlLFplXTtpZihYKXt2YXIgWWU9UmkoNCpILlIubGVuZ3RoKSxNdD0wO2plLnB1c2goWWUpO2Zvcih2YXIgeHQ9MDt4dDxILlIubGVuZ3RoOysreHQpe3ZhciBS''@;'; + put 'put ''dD1ILlJbeHRdO1llLndyaXRlX3NoaWZ0KDIsTXQpLE10Kz0oUnQudnx8IiIpLmxlbmd0aDt2YXIgWXQ9UnQucz9ZMShyZS5jZWxsWGZzLHJlLmNlbGxTdHlsZVhmcyx7dDoibiIsdjowLHM6UnQuc30scmUpOjAsbm49cmUuY2VsbFhmc1tZdF0uZm9udElkO1llLndyaXRlX3NoaWZ0KDIsbm48''@;'; + put 'put ''ND9ubjpubisxKX19cmV0dXJuIFYoamUpfWZ1bmN0aW9uIGN1KEgscmUsWCl7aWYoWCl7aWYoWC5iaWZmPj0yJiZYLmJpZmY8PTUpcmV0dXJuIEgucmVhZF9zaGlmdChyZSwiY3BzdHIiKTtpZihYLmJpZmY+PTEyKXJldHVybiBILnJlYWRfc2hpZnQocmUsImRiY3MtY29udCIpfXZhciB4ZT1I''@;'; + put 'put ''LnJlYWRfc2hpZnQoMSk7cmV0dXJuIEgucmVhZF9zaGlmdChyZSwwPT09eGU/InNiY3MtY29udCI6ImRiY3MtY29udCIpfWZ1bmN0aW9uIHg0KEgscmUsWCl7dmFyIHdlPUgucmVhZF9zaGlmdChYJiYyPT1YLmJpZmY/MToyKTtyZXR1cm4gMD09PXdlPyhILmwrKywiIik6Y3UoSCx3ZSxYKX1m''@;'; + put 'put ''dW5jdGlvbiBkZihILHJlLFgpe2lmKFguYmlmZj41KXJldHVybiB4NChILDAsWCk7dmFyIHdlPUgucmVhZF9zaGlmdCgxKTtyZXR1cm4gMD09PXdlPyhILmwrKywiIik6SC5yZWFkX3NoaWZ0KHdlLFguYmlmZjw9NHx8IUgubGVucz8iY3BzdHIiOiJzYmNzLWNvbnQiKX1mdW5jdGlvbiBQcihI''@;'; + put 'put ''LHJlLFgpe3JldHVybiBYfHwoWD1SaSgzKzIqSC5sZW5ndGgpKSxYLndyaXRlX3NoaWZ0KDIsSC5sZW5ndGgpLFgud3JpdGVfc2hpZnQoMSwxKSxYLndyaXRlX3NoaWZ0KDMxLEgsInV0ZjE2bGUiKSxYfWZ1bmN0aW9uIHFwKEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoNCk7cmV0dXJuIHJlPjA/''@;'; + put 'put ''SC5yZWFkX3NoaWZ0KHJlLCJ1dGYxNmxlIikucmVwbGFjZShULCIiKToiIn1mdW5jdGlvbiBwZihILHJlKXtyZXx8KHJlPVJpKDYrMipILmxlbmd0aCkpLHJlLndyaXRlX3NoaWZ0KDQsMStILmxlbmd0aCk7Zm9yKHZhciBYPTA7WDxILmxlbmd0aDsrK1gpcmUud3JpdGVfc2hpZnQoMixILmNo''@;'; + put 'put ''YXJDb2RlQXQoWCkpO3JldHVybiByZS53cml0ZV9zaGlmdCgyLDApLHJlfWZ1bmN0aW9uIGU2KEgpe3ZhciByZT1SaSg1MTIpLFg9MCx3ZT1ILlRhcmdldDsiZmlsZTovLyI9PXdlLnNsaWNlKDAsNykmJih3ZT13ZS5zbGljZSg3KSk7dmFyIHhlPXdlLmluZGV4T2YoIiMiKSxGZT14ZT4tMT8z''@;'; + put 'put ''MToyMztzd2l0Y2god2UuY2hhckF0KDApKXtjYXNlIiMiOkZlPTI4O2JyZWFrO2Nhc2UiLiI6RmUmPS0zfXJlLndyaXRlX3NoaWZ0KDQsMikscmUud3JpdGVfc2hpZnQoNCxGZSk7dmFyIFplPVs4LDY4MTU4MjcsNjYxOTIzNyw0ODQ5NzgwLDgzXTtmb3IoWD0wO1g8WmUubGVuZ3RoOysrWCly''@;'; + put 'put ''ZS53cml0ZV9zaGlmdCg0LFplW1hdKTtpZigyOD09RmUpcGYod2U9d2Uuc2xpY2UoMSkscmUpO2Vsc2UgaWYoMiZGZSl7Zm9yKFplPSJlMCBjOSBlYSA3OSBmOSBiYSBjZSAxMSA4YyA4MiAwMCBhYSAwMCA0YiBhOSAwYiIuc3BsaXQoIiAiKSxYPTA7WDxaZS5sZW5ndGg7KytYKXJlLndyaXRl''@;'; + put 'put ''X3NoaWZ0KDEscGFyc2VJbnQoWmVbWF0sMTYpKTt2YXIgamU9eGU+LTE/d2Uuc2xpY2UoMCx4ZSk6d2U7Zm9yKHJlLndyaXRlX3NoaWZ0KDQsMiooamUubGVuZ3RoKzEpKSxYPTA7WDxqZS5sZW5ndGg7KytYKXJlLndyaXRlX3NoaWZ0KDIsamUuY2hhckNvZGVBdChYKSk7cmUud3JpdGVfc2hp''@;'; + put 'put ''ZnQoMiwwKSw4JkZlJiZwZih4ZT4tMT93ZS5zbGljZSh4ZSsxKToiIixyZSl9ZWxzZXtmb3IoWmU9IjAzIDAzIDAwIDAwIDAwIDAwIDAwIDAwIGMwIDAwIDAwIDAwIDAwIDAwIDAwIDQ2Ii5zcGxpdCgiICIpLFg9MDtYPFplLmxlbmd0aDsrK1gpcmUud3JpdGVfc2hpZnQoMSxwYXJzZUludCha''@;'; + put 'put ''ZVtYXSwxNikpO2Zvcih2YXIgWWU9MDsiLi4vIj09d2Uuc2xpY2UoMypZZSwzKlllKzMpfHwiLi5cXCI9PXdlLnNsaWNlKDMqWWUsMypZZSszKTspKytZZTtmb3IocmUud3JpdGVfc2hpZnQoMixZZSkscmUud3JpdGVfc2hpZnQoNCx3ZS5sZW5ndGgtMypZZSsxKSxYPTA7WDx3ZS5sZW5ndGgt''@;'; + put 'put ''MypZZTsrK1gpcmUud3JpdGVfc2hpZnQoMSwyNTUmd2UuY2hhckNvZGVBdChYKzMqWWUpKTtmb3IocmUud3JpdGVfc2hpZnQoMSwwKSxyZS53cml0ZV9zaGlmdCgyLDY1NTM1KSxyZS53cml0ZV9zaGlmdCgyLDU3MDA1KSxYPTA7WDw2OysrWClyZS53cml0ZV9zaGlmdCg0LDApfXJldHVybiBy''@;'; + put 'put ''ZS5zbGljZSgwLHJlLmwpfWZ1bmN0aW9uIHQ2KEgpe3JldHVybltILnJlYWRfc2hpZnQoMSksSC5yZWFkX3NoaWZ0KDEpLEgucmVhZF9zaGlmdCgxKSxILnJlYWRfc2hpZnQoMSldfWZ1bmN0aW9uIFI4KEgscmUpe3ZhciBYPXQ2KEgpO3JldHVybiBYWzNdPTAsWH1mdW5jdGlvbiBBYyhIKXty''@;'; + put 'put ''ZXR1cm57cjpILnJlYWRfc2hpZnQoMiksYzpILnJlYWRfc2hpZnQoMiksaXhmZTpILnJlYWRfc2hpZnQoMil9fWZ1bmN0aW9uIEdmKEgscmUsWCx3ZSl7cmV0dXJuIHdlfHwod2U9UmkoNikpLHdlLndyaXRlX3NoaWZ0KDIsSCksd2Uud3JpdGVfc2hpZnQoMixyZSksd2Uud3JpdGVfc2hpZnQo''@;'; + put 'put ''MixYfHwwKSx3ZX1mdW5jdGlvbiBtdihILHJlLFgpe3ZhciB3ZT1YLmJpZmY+OD80OjI7cmV0dXJuW0gucmVhZF9zaGlmdCh3ZSksSC5yZWFkX3NoaWZ0KHdlLCJpIiksSC5yZWFkX3NoaWZ0KHdlLCJpIildfWZ1bmN0aW9uIHRtKEgpe3JldHVybltILnJlYWRfc2hpZnQoMiksV2coSCldfWZ1''@;'; + put 'put ''bmN0aW9uIG42KEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoMiksWD1ILnJlYWRfc2hpZnQoMik7cmV0dXJue3M6e2M6SC5yZWFkX3NoaWZ0KDIpLHI6cmV9LGU6e2M6SC5yZWFkX3NoaWZ0KDIpLHI6WH19fWZ1bmN0aW9uIEp1KEgscmUpe3JldHVybiByZXx8KHJlPVJpKDgpKSxyZS53cml0ZV9z''@;'; + put 'put ''aGlmdCgyLEgucy5yKSxyZS53cml0ZV9zaGlmdCgyLEguZS5yKSxyZS53cml0ZV9zaGlmdCgyLEgucy5jKSxyZS53cml0ZV9zaGlmdCgyLEguZS5jKSxyZX1mdW5jdGlvbiBUNChIKXt2YXIgcmU9SC5yZWFkX3NoaWZ0KDIpLFg9SC5yZWFkX3NoaWZ0KDIpO3JldHVybntzOntjOkgucmVhZF9z''@;'; + put 'put ''aGlmdCgxKSxyOnJlfSxlOntjOkgucmVhZF9zaGlmdCgxKSxyOlh9fX12YXIgbGI9VDQ7ZnVuY3Rpb24gdnYoSCl7SC5sKz00O3ZhciByZT1ILnJlYWRfc2hpZnQoMiksWD1ILnJlYWRfc2hpZnQoMiksd2U9SC5yZWFkX3NoaWZ0KDIpO3JldHVybiBILmwrPTEyLFtYLHJlLHdlXX1mdW5jdGlv''@;'; + put 'put ''biBmbChIKXtILmwrPTIsSC5sKz1ILnJlYWRfc2hpZnQoMil9dmFyIG5tPXswOmZsLDQ6ZmwsNTpmbCw2OmZsLDc6ZnVuY3Rpb24gT00oSCl7cmV0dXJuIEgubCs9NCxILmNmPUgucmVhZF9zaGlmdCgyKSx7fX0sODpmbCw5OmZsLDEwOmZsLDExOmZsLDEyOmZsLDEzOmZ1bmN0aW9uIEk0KEgp''@;'; + put 'put ''e3ZhciByZT17fTtyZXR1cm4gSC5sKz00LEgubCs9MTYscmUuZlNoYXJlZE5vdGU9SC5yZWFkX3NoaWZ0KDIpLEgubCs9NCxyZX0sMTQ6ZmwsMTU6ZmwsMTY6ZmwsMTc6ZmwsMTg6ZmwsMTk6ZmwsMjA6ZmwsMjE6dnZ9O2Z1bmN0aW9uIER1KEgscmUpe3ZhciBYPXtCSUZGVmVyOjAsZHQ6MH07''@;'; + put 'put ''c3dpdGNoKFguQklGRlZlcj1ILnJlYWRfc2hpZnQoMiksKHJlLT0yKT49MiYmKFguZHQ9SC5yZWFkX3NoaWZ0KDIpLEgubC09MiksWC5CSUZGVmVyKXtjYXNlIDE1MzY6Y2FzZSAxMjgwOmNhc2UgMTAyNDpjYXNlIDc2ODpjYXNlIDUxMjpjYXNlIDI6Y2FzZSA3OmJyZWFrO2RlZmF1bHQ6aWYo''@;'; + put 'put ''cmU+Nil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgQklGRiBWZXIgIitYLkJJRkZWZXIpfXJldHVybiBILnJlYWRfc2hpZnQocmUpLFh9ZnVuY3Rpb24gZzMoSCxyZSxYKXt2YXIgd2U9MTUzNix4ZT0xNjtzd2l0Y2goWC5ib29rVHlwZSl7Y2FzZSJiaWZmOCI6Y2FzZSJ4bGEiOmJyZWFr''@;'; + put 'put ''O2Nhc2UiYmlmZjUiOndlPTEyODAseGU9ODticmVhaztjYXNlImJpZmY0Ijp3ZT00LHhlPTY7YnJlYWs7Y2FzZSJiaWZmMyI6d2U9Myx4ZT02O2JyZWFrO2Nhc2UiYmlmZjIiOndlPTIseGU9NDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0ZWQgQklGRiB2ZXJzaW9u''@;'; + put 'put ''Iil9dmFyIEZlPVJpKHhlKTtyZXR1cm4gRmUud3JpdGVfc2hpZnQoMix3ZSksRmUud3JpdGVfc2hpZnQoMixyZSkseGU+NCYmRmUud3JpdGVfc2hpZnQoMiwyOTI4MikseGU+NiYmRmUud3JpdGVfc2hpZnQoMiwxOTk3KSx4ZT44JiYoRmUud3JpdGVfc2hpZnQoMiw0OTE2MSksRmUud3JpdGVf''@;'; + put 'put ''c2hpZnQoMiwxKSxGZS53cml0ZV9zaGlmdCgyLDE3OTgpLEZlLndyaXRlX3NoaWZ0KDIsMCkpLEZlfWZ1bmN0aW9uIFdmKEgscmUpe3ZhciBYPSFyZXx8cmUuYmlmZj49OD8yOjEsd2U9UmkoOCtYKkgubmFtZS5sZW5ndGgpO3dlLndyaXRlX3NoaWZ0KDQsSC5wb3MpLHdlLndyaXRlX3NoaWZ0''@;'; + put 'put ''KDEsSC5oc3x8MCksd2Uud3JpdGVfc2hpZnQoMSxILmR0KSx3ZS53cml0ZV9zaGlmdCgxLEgubmFtZS5sZW5ndGgpLHJlLmJpZmY+PTgmJndlLndyaXRlX3NoaWZ0KDEsMSksd2Uud3JpdGVfc2hpZnQoWCpILm5hbWUubGVuZ3RoLEgubmFtZSxyZS5iaWZmPDg/InNiY3MiOiJ1dGYxNmxlIik7''@;'; + put 'put ''dmFyIHhlPXdlLnNsaWNlKDAsd2UubCk7cmV0dXJuIHhlLmw9d2UubCx4ZX1mdW5jdGlvbiBZaShIKXtyZXR1cm4gSC5yZWFkX3NoaWZ0KDQpLHdoKEgpfWZ1bmN0aW9uIHphKEgpe3JldHVybiBILnJlYWRfc2hpZnQoNCksc3YoSCl9ZnVuY3Rpb24gS3UoSCxyZSxYKXtyZXR1cm4gSC5yZWFk''@;'; + put 'put ''X3NoaWZ0KDQpLFJCKEgsMCxYKX1mdW5jdGlvbiBXYyhILHJlLFgpe3ZhciB3ZT0wO1gmJjI9PVguYmlmZnx8KHdlPUgucmVhZF9zaGlmdCgyKSk7dmFyIHhlPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gWCYmMj09WC5iaWZmJiYod2U9MS0oeGU+PjE1KSx4ZSY9MzI3NjcpLFt7VW5zeW5jZWQ6''@;'; + put 'put ''MSZ3ZSxEeVplcm86KDImd2UpPj4xLEV4QXNjOig0JndlKT4+MixFeERzYzooOCZ3ZSk+PjN9LHhlXX1mdW5jdGlvbiBjYihILHJlLFgsd2Upe3ZhciB4ZT1YJiY1PT1YLmJpZmY7d2V8fCh3ZT1SaSh4ZT8zK3JlLmxlbmd0aDo1KzIqcmUubGVuZ3RoKSksd2Uud3JpdGVfc2hpZnQoMixIKSx3''@;'; + put 'put ''ZS53cml0ZV9zaGlmdCh4ZT8xOjIscmUubGVuZ3RoKSx4ZXx8d2Uud3JpdGVfc2hpZnQoMSwxKSx3ZS53cml0ZV9zaGlmdCgoeGU/MToyKSpyZS5sZW5ndGgscmUseGU/InNiY3MiOiJ1dGYxNmxlIik7dmFyIEZlPXdlLmxlbmd0aD53ZS5sP3dlLnNsaWNlKDAsd2UubCk6d2U7cmV0dXJuIG51''@;'; + put 'put ''bGw9PUZlLmwmJihGZS5sPUZlLmxlbmd0aCksRmV9dmFyIFljPWRmO2Z1bmN0aW9uIGltKEgscmUsWCl7dmFyIHdlPUgubCtyZSx4ZT04IT1YLmJpZmYmJlguYmlmZj8yOjQsRmU9SC5yZWFkX3NoaWZ0KHhlKSxaZT1ILnJlYWRfc2hpZnQoeGUpLGplPUgucmVhZF9zaGlmdCgyKSxZZT1ILnJl''@;'; + put 'put ''YWRfc2hpZnQoMik7cmV0dXJuIEgubD13ZSx7czp7cjpGZSxjOmplfSxlOntyOlplLGM6WWV9fX1mdW5jdGlvbiBTaChILHJlLFgsd2Upe3ZhciBGZT0hWHx8IVguYmlmZnx8OD09WC5iaWZmO3dlfHwod2U9UmkoWCYmNT09WC5iaWZmPzE2OjIwKSksd2Uud3JpdGVfc2hpZnQoMixGZSYmWC5j''@;'; + put 'put ''ZWxsU3R5bGVzJiZILmZvbnRJZCYmKEguZm9udElkPDQ/SC5mb250SWQ6SC5mb250SWQrMSl8fDApO3ZhciBaZT0xO0gucHJvdGVjdGlvbiYmKEgucHJvdGVjdGlvbi5lZGl0YWJsZSYmKFplJj0tMiksSC5wcm90ZWN0aW9uLmhpZGRlbiYmKFplfD0yKSksSC5zdHlsZT8od2Uud3JpdGVfc2hp''@;'; + put 'put ''ZnQoMixILm51bUZtdElkfHwwKSx3ZS53cml0ZV9zaGlmdCgyLDY1NTI0fFplKSk6KHdlLndyaXRlX3NoaWZ0KDIsSC5udW1GbXRJZHx8MCksd2Uud3JpdGVfc2hpZnQoMixyZTw8NHxaZSkpO3ZhciBqZT1ILmFsaWdubWVudHx8e307aWYoRmUpe3ZhciBZZT0wLE10PTA7QnYuaW5kZXhPZihq''@;'; + put 'put ''ZS5ob3Jpem9udGFsKT4tMSYmKFllfD1Cdi5pbmRleE9mKGplLmhvcml6b250YWwpKSxqZS53cmFwVGV4dCYmKFllfD04KSx5bS5pbmRleE9mKGplLnZlcnRpY2FsKT4tMT9ZZXw9eW0uaW5kZXhPZihqZS52ZXJ0aWNhbCk8PDQ6bnVsbD09amUudmVydGljYWwmJihZZXw9MzIpLHdlLndyaXRl''@;'; + put 'put ''X3NoaWZ0KDEsWWUpLHdlLndyaXRlX3NoaWZ0KDEsMCksamUuc2hyaW5rVG9GaXQmJihNdHw9MTYpLHdlLndyaXRlX3NoaWZ0KDIsTXQpO3ZhciB4dD1udWxsO251bGwhPUguYm9yZGVySWQmJih4dD1YLkJvcmRlcnMmJlguQm9yZGVyc1tILmJvcmRlcklkfHwwXXx8e30pO3ZhciBSdD0wLFl0''@;'; + put 'put ''PTAsbm49MDt4dCYmKG51bGwhPXh0LmxlZnQmJnh0LmxlZnQuc3R5bGUmJihSdHw9KG5uPVQzLmluZGV4T2YoeHQubGVmdC5zdHlsZSkpPi0xP25uOjApLG51bGwhPXh0LnJpZ2h0JiZ4dC5yaWdodC5zdHlsZSYmKFJ0fD0oKG5uPVQzLmluZGV4T2YoeHQucmlnaHQuc3R5bGUpKT4tMT9ubjow''@;'; + put 'put ''KTw8NCksbnVsbCE9eHQudG9wJiZ4dC50b3Auc3R5bGUmJihZdHw9KG5uPVQzLmluZGV4T2YoeHQudG9wLnN0eWxlKSk+LTE/bm46MCksbnVsbCE9eHQuYm90dG9tJiZ4dC5ib3R0b20uc3R5bGUmJihZdHw9KChubj1UMy5pbmRleE9mKHh0LmJvdHRvbS5zdHlsZSkpPi0xP25uOjApPDw0KSks''@;'; + put 'put ''d2Uud3JpdGVfc2hpZnQoMSxSdCksd2Uud3JpdGVfc2hpZnQoMSxZdCksd2Uud3JpdGVfc2hpZnQoMiwwKSx3ZS53cml0ZV9zaGlmdCgyLDApLHdlLndyaXRlX3NoaWZ0KDEsMCk7dmFyIENuPTAsRHQ9WC5GaWxscyYmWC5GaWxsc1tILmZpbGxJZHx8MF18fHt9OyhEdC5mZ0NvbG9yfHxEdC5i''@;'; + put 'put ''Z0NvbG9yKSYmKENufD00KSx3ZS53cml0ZV9zaGlmdCgxLENuKTt2YXIgenQ9MDt6dHw9TGIoRHQuZmdDb2xvciw2NSksenR8PUxiKER0LmJnQ29sb3IsNjUpPDw3LHdlLndyaXRlX3NoaWZ0KDIsenQpfWVsc2Ugd2Uud3JpdGVfc2hpZnQoNCwwKSx3ZS53cml0ZV9zaGlmdCg0LDApLHdlLndy''@;'; + put 'put ''aXRlX3NoaWZ0KDIsMCk7cmV0dXJuIHdlfWZ1bmN0aW9uIGFtKEgscmUsWCl7dmFyIHdlPUFjKEgpOygyPT1YLmJpZmZ8fDk9PXJlKSYmKytILmw7dmFyIHhlPWZ1bmN0aW9uIHNzKEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoMSk7cmV0dXJuIDE9PT1ILnJlYWRfc2hpZnQoMSk/cmU6MT09PXJl''@;'; + put 'put ''fShIKTtyZXR1cm4gd2UudmFsPXhlLHdlLnQ9ITA9PT14ZXx8ITE9PT14ZT8iYiI6ImUiLHdlfXZhciBEND1mdW5jdGlvbiB3ZChILHJlLFgpe3JldHVybiAwPT09cmU/IiI6ZGYoSCwwLFgpfTtmdW5jdGlvbiBGTShILHJlLFgpe3ZhciB4ZSx3ZT1ILnJlYWRfc2hpZnQoMiksRmU9e2ZCdWls''@;'; + put 'put ''dEluOjEmd2UsZldhbnRBZHZpc2U6d2U+Pj4xJjEsZldhbnRQaWN0OndlPj4+MiYxLGZPbGU6d2U+Pj4zJjEsZk9sZUxpbms6d2U+Pj40JjEsY2Y6d2U+Pj41JjEwMjMsZkljb246d2U+Pj4xNSYxfTtyZXR1cm4gMTQ4NDk9PT1YLnNiY2NoJiYoeGU9ZnVuY3Rpb24gQjgoSCxyZSxYKXtILmwr''@;'; + put 'put ''PTQ7dmFyIHdlPUgubCsocmUtPTQpLHhlPXpjKEgsMCxYKSxGZT1ILnJlYWRfc2hpZnQoMik7aWYoRmUhPT0od2UtPUgubCkpdGhyb3cgbmV3IEVycm9yKCJNYWxmb3JtZWQgQWRkaW5VZGY6IHBhZGRpbmcgPSAiK3dlKyIgIT0gIitGZSk7cmV0dXJuIEgubCs9RmUseGV9KEgscmUtMixYKSks''@;'; + put 'put ''RmUuYm9keT14ZXx8SC5yZWFkX3NoaWZ0KHJlLTIpLCJzdHJpbmciPT10eXBlb2YgeGUmJihGZS5OYW1lPXhlKSxGZX12YXIgSE09WyJfeGxubS5Db25zb2xpZGF0ZV9BcmVhIiwiX3hsbm0uQXV0b19PcGVuIiwiX3hsbm0uQXV0b19DbG9zZSIsIl94bG5tLkV4dHJhY3QiLCJfeGxubS5EYXRh''@;'; + put 'put ''YmFzZSIsIl94bG5tLkNyaXRlcmlhIiwiX3hsbm0uUHJpbnRfQXJlYSIsIl94bG5tLlByaW50X1RpdGxlcyIsIl94bG5tLlJlY29yZGVyIiwiX3hsbm0uRGF0YV9Gb3JtIiwiX3hsbm0uQXV0b19BY3RpdmF0ZSIsIl94bG5tLkF1dG9fRGVhY3RpdmF0ZSIsIl94bG5tLlNoZWV0X1RpdGxlIiwi''@;'; + put 'put ''X3hsbm0uX0ZpbHRlckRhdGFiYXNlIl07ZnVuY3Rpb24gaGIoSCxyZSxYKXt2YXIgd2U9SC5sK3JlLHhlPUgucmVhZF9zaGlmdCgyKSxGZT1ILnJlYWRfc2hpZnQoMSksWmU9SC5yZWFkX3NoaWZ0KDEpLGplPUgucmVhZF9zaGlmdChYJiYyPT1YLmJpZmY/MToyKSxZZT0wOyghWHx8WC5iaWZm''@;'; + put 'put ''Pj01KSYmKDUhPVguYmlmZiYmKEgubCs9MiksWWU9SC5yZWFkX3NoaWZ0KDIpLDU9PVguYmlmZiYmKEgubCs9MiksSC5sKz00KTt2YXIgTXQ9Y3UoSCxaZSxYKTszMiZ4ZSYmKE10PUhNW010LmNoYXJDb2RlQXQoMCldKTt2YXIgeHQ9d2UtSC5sO1gmJjI9PVguYmlmZiYmLS14dDt2YXIgUnQ9''@;'; + put 'put ''d2UhPUgubCYmMCE9PWplJiZ4dD4wP2Z1bmN0aW9uIHRBKEgscmUsWCx3ZSl7dmFyIFplLHhlPUgubCtyZSxGZT1qNChILHdlLFgpO3JldHVybiB4ZSE9PUgubCYmKFplPURkKEgseGUtSC5sLEZlLFgpKSxbRmUsWmVdfShILHh0LFgsamUpOltdO3JldHVybntjaEtleTpGZSxOYW1lOk10LGl0''@;'; + put 'put ''YWI6WWUscmdjZTpSdH19ZnVuY3Rpb24gVjgoSCxyZSxYKXtpZihYLmJpZmY8OClyZXR1cm4gZnVuY3Rpb24gajgoSCxyZSxYKXszPT1IW0gubCsxXSYmSFtILmxdKys7dmFyIHdlPXpjKEgsMCxYKTtyZXR1cm4gMz09d2UuY2hhckNvZGVBdCgwKT93ZS5zbGljZSgxKTp3ZX0oSCwwLFgpO2Zv''@;'; + put 'put ''cih2YXIgd2U9W10seGU9SC5sK3JlLEZlPUgucmVhZF9zaGlmdChYLmJpZmY+OD80OjIpOzAhPUZlLS07KXdlLnB1c2gobXYoSCwwLFgpKTtpZihILmwhPXhlKXRocm93IG5ldyBFcnJvcigiQmFkIEV4dGVyblNoZWV0OiAiK0gubCsiICE9ICIreGUpO3JldHVybiB3ZX1mdW5jdGlvbiBkYihI''@;'; + put 'put ''LHJlLFgpe3ZhciB3ZT1sYihILDYpO3N3aXRjaChYLmJpZmYpe2Nhc2UgMjpILmwrKyxyZS09NzticmVhaztjYXNlIDM6Y2FzZSA0OkgubCs9MixyZS09ODticmVhaztkZWZhdWx0OkgubCs9NixyZS09MTJ9cmV0dXJuW3dlLGNHKEgscmUsWCldfXZhciBidj1bXTtmdW5jdGlvbiBWTShIKXt2''@;'; + put 'put ''YXIgcmU9UmkoMjQpLFg9dWwoSFswXSk7cmUud3JpdGVfc2hpZnQoMixYLnIpLHJlLndyaXRlX3NoaWZ0KDIsWC5yKSxyZS53cml0ZV9zaGlmdCgyLFguYykscmUud3JpdGVfc2hpZnQoMixYLmMpO2Zvcih2YXIgd2U9ImQwIGM5IGVhIDc5IGY5IGJhIGNlIDExIDhjIDgyIDAwIGFhIDAwIDRi''@;'; + put 'put ''IGE5IDBiIi5zcGxpdCgiICIpLHhlPTA7eGU8MTY7Kyt4ZSlyZS53cml0ZV9zaGlmdCgxLHBhcnNlSW50KHdlW3hlXSwxNikpO3JldHVybiBWKFtyZSxlNihIWzFdKV0pfWZ1bmN0aW9uIHNtKEgpe3ZhciByZT1IWzFdLlRvb2x0aXAsWD1SaSgxMCsyKihyZS5sZW5ndGgrMSkpO1gud3JpdGVf''@;'; + put 'put ''c2hpZnQoMiwyMDQ4KTt2YXIgd2U9dWwoSFswXSk7WC53cml0ZV9zaGlmdCgyLHdlLnIpLFgud3JpdGVfc2hpZnQoMix3ZS5yKSxYLndyaXRlX3NoaWZ0KDIsd2UuYyksWC53cml0ZV9zaGlmdCgyLHdlLmMpO2Zvcih2YXIgeGU9MDt4ZTxyZS5sZW5ndGg7Kyt4ZSlYLndyaXRlX3NoaWZ0KDIs''@;'; + put 'put ''cmUuY2hhckNvZGVBdCh4ZSkpO3JldHVybiBYLndyaXRlX3NoaWZ0KDIsMCksWH1mdW5jdGlvbiB2MyhILHJlLFgpe2lmKCFYLmNlbGxTdHlsZXMpcmV0dXJuIF9zKEgscmUpO3ZhciB3ZT1YJiZYLmJpZmY+PTEyPzQ6Mix4ZT1ILnJlYWRfc2hpZnQod2UpLEZlPUgucmVhZF9zaGlmdCh3ZSks''@;'; + put 'put ''WmU9SC5yZWFkX3NoaWZ0KHdlKSxqZT1ILnJlYWRfc2hpZnQod2UpLFllPUgucmVhZF9zaGlmdCgyKTsyPT13ZSYmKEgubCs9Mik7dmFyIE10PXtzOnhlLGU6RmUsdzpaZSxpeGZlOmplLGZsYWdzOlllfTtyZXR1cm4oWC5iaWZmPj01fHwhWC5iaWZmKSYmKE10LmxldmVsPVllPj44JjcpLE10''@;'; + put 'put ''fWJ2WzhdPWZ1bmN0aW9uKEgscmUpe3ZhciBYPUgubCtyZTtILmwrPTEwO3ZhciB3ZT1ILnJlYWRfc2hpZnQoMik7SC5sKz00LEgubCs9MixILmwrPTIsSC5sKz0yLEgubCs9NDt2YXIgeGU9SC5yZWFkX3NoaWZ0KDEpO3JldHVybiBILmwrPXhlLEgubD1YLHtmbXQ6d2V9fTt2YXIgd1I9QWMs''@;'; + put 'put ''a3Y9WmMsejg9eDQ7dmFyIFlmPWZ1bmN0aW9uKCl7dmFyIEg9ezE6NDM3LDI6ODUwLDM6MTI1Miw0OjFlNCwxMDA6ODUyLDEwMTo4NjYsMTAyOjg2NSwxMDM6ODYxLDEwNDo4OTUsMTA1OjYyMCwxMDY6NzM3LDEwNzo4NTcsMTIwOjk1MCwxMjE6OTQ5LDEyMjo5MzYsMTIzOjkzMiwxMjQ6ODc0''@;'; + put 'put ''LDEyNToxMjU1LDEyNjoxMjU2LDE1MDoxMDAwNywxNTE6MTAwMjksMTUyOjEwMDA2LDIwMDoxMjUwLDIwMToxMjUxLDIwMjoxMjU0LDIwMzoxMjUzLDA6MjAxMjcsODo4NjUsOTo0MzcsMTA6ODUwLDExOjQzNywxMzo0MzcsMTQ6ODUwLDE1OjQzNywxNjo4NTAsMTc6NDM3LDE4Ojg1MCwxOTo5''@;'; + put 'put ''MzIsMjA6ODUwLDIxOjQzNywyMjo4NTAsMjM6ODY1LDI0OjQzNywyNTo0MzcsMjY6ODUwLDI3OjQzNywyODo4NjMsMjk6ODUwLDMxOjg1MiwzNDo4NTIsMzU6ODUyLDM2Ojg2MCwzNzo4NTAsMzg6ODY2LDU1Ojg1MCw2NDo4NTIsNzc6OTM2LDc4Ojk0OSw3OTo5NTAsODA6ODc0LDg3OjEyNTIs''@;'; + put 'put ''ODg6MTI1Miw4OToxMjUyLDEwODo4NjMsMTM0OjczNywxMzU6ODUyLDEzNjo4NTcsMjA0OjEyNTcsMjU1OjE2OTY5fSxyZT10dCh7MTo0MzcsMjo4NTAsMzoxMjUyLDQ6MWU0LDEwMDo4NTIsMTAxOjg2NiwxMDI6ODY1LDEwMzo4NjEsMTA0Ojg5NSwxMDU6NjIwLDEwNjo3MzcsMTA3Ojg1Nywx''@;'; + put 'put ''MjA6OTUwLDEyMTo5NDksMTIyOjkzNiwxMjM6OTMyLDEyNDo4NzQsMTI1OjEyNTUsMTI2OjEyNTYsMTUwOjEwMDA3LDE1MToxMDAyOSwxNTI6MTAwMDYsMjAwOjEyNTAsMjAxOjEyNTEsMjAyOjEyNTQsMjAzOjEyNTMsMDoyMDEyN30pO2Z1bmN0aW9uIHhlKFllLE10KXt2YXIgeHQ9TXR8fHt9''@;'; + put 'put ''O3JldHVybiB4dC5kYXRlTkZ8fCh4dC5kYXRlTkY9Inl5eXltbWRkIiksZ2QoZnVuY3Rpb24gd2UoWWUsTXQpe3ZhciB4dD1bXSxSdD1oZSgxKTtzd2l0Y2goTXQudHlwZSl7Y2FzZSJiYXNlNjQiOlJ0PXooU2UuZGVjb2RlKFllKSk7YnJlYWs7Y2FzZSJiaW5hcnkiOlJ0PXooWWUpO2JyZWFr''@;'; + put 'put ''O2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpSdD1ZZX1LbChSdCwwKTt2YXIgWXQ9UnQucmVhZF9zaGlmdCgxKSxubj0hISgxMzYmWXQpLENuPSExLER0PSExO3N3aXRjaChZdCl7Y2FzZSAyOmNhc2UgMzpjYXNlIDEzMTpjYXNlIDEzOTpjYXNlIDI0NTpicmVhaztjYXNlIDQ4OmNhc2UgNDk6''@;'; + put 'put ''Q249ITAsbm49ITA7YnJlYWs7Y2FzZSAxNDA6RHQ9ITA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkRCRiBVbnN1cHBvcnRlZCBWZXJzaW9uOiAiK1l0LnRvU3RyaW5nKDE2KSl9dmFyIHp0PTAsUG49NTIxOzI9PVl0JiYoenQ9UnQucmVhZF9zaGlmdCgyKSksUnQubCs9MywyIT1Z''@;'; + put 'put ''dCYmKHp0PVJ0LnJlYWRfc2hpZnQoNCkpLHp0PjEwNDg1NzYmJih6dD0xZTYpLDIhPVl0JiYoUG49UnQucmVhZF9zaGlmdCgyKSk7dmFyIFRuPVJ0LnJlYWRfc2hpZnQoMiksT249TXQuY29kZXBhZ2V8fDEyNTI7MiE9WXQmJihSdC5sKz0xNixSdC5yZWFkX3NoaWZ0KDEpLDAhPT1SdFtSdC5s''@;'; + put 'put ''XSYmKE9uPUhbUnRbUnQubF1dKSxSdC5sKz0xLFJ0LmwrPTIpLER0JiYoUnQubCs9MzYpO2Zvcih2YXIgV249W10sTXI9e30sYWk9TWF0aC5taW4oUnQubGVuZ3RoLDI9PVl0PzUyMTpQbi0xMC0oQ24/MjY0OjApKSx5cj1EdD8zMjoxMTtSdC5sPGFpJiYxMyE9UnRbUnQubF07KXN3aXRjaChN''@;'; + put 'put ''cj17fSxNci5uYW1lPWNwdGFibGUudXRpbHMuZGVjb2RlKE9uLFJ0LnNsaWNlKFJ0LmwsUnQubCt5cikpLnJlcGxhY2UoL1tcdTAwMDBcclxuXS4qJC9nLCIiKSxSdC5sKz15cixNci50eXBlPVN0cmluZy5mcm9tQ2hhckNvZGUoUnQucmVhZF9zaGlmdCgxKSksMiE9WXQmJiFEdCYmKE1yLm9m''@;'; + put 'put ''ZnNldD1SdC5yZWFkX3NoaWZ0KDQpKSxNci5sZW49UnQucmVhZF9zaGlmdCgxKSwyPT1ZdCYmKE1yLm9mZnNldD1SdC5yZWFkX3NoaWZ0KDIpKSxNci5kZWM9UnQucmVhZF9zaGlmdCgxKSxNci5uYW1lLmxlbmd0aCYmV24ucHVzaChNciksMiE9WXQmJihSdC5sKz1EdD8xMzoxNCksTXIudHlw''@;'; + put 'put ''ZSl7Y2FzZSJCIjooIUNufHw4IT1Nci5sZW4pJiZNdC5XVEYmJmNvbnNvbGUubG9nKCJTa2lwcGluZyAiK01yLm5hbWUrIjoiK01yLnR5cGUpO2JyZWFrO2Nhc2UiRyI6Y2FzZSJQIjpNdC5XVEYmJmNvbnNvbGUubG9nKCJTa2lwcGluZyAiK01yLm5hbWUrIjoiK01yLnR5cGUpO2JyZWFrO2Nh''@;'; + put 'put ''c2UiKyI6Y2FzZSIwIjpjYXNlIkAiOmNhc2UiQyI6Y2FzZSJEIjpjYXNlIkYiOmNhc2UiSSI6Y2FzZSJMIjpjYXNlIk0iOmNhc2UiTiI6Y2FzZSJPIjpjYXNlIlQiOmNhc2UiWSI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gRmllbGQgVHlwZTogIitNci50eXBlKX1p''@;'; + put 'put ''ZigxMyE9PVJ0W1J0LmxdJiYoUnQubD1Qbi0xKSwxMyE9PVJ0LnJlYWRfc2hpZnQoMSkpdGhyb3cgbmV3IEVycm9yKCJEQkYgVGVybWluYXRvciBub3QgZm91bmQgIitSdC5sKyIgIitSdFtSdC5sXSk7UnQubD1Qbjt2YXIgYXI9MCxHcj0wO2Zvcih4dFswXT1bXSxHcj0wO0dyIT1Xbi5sZW5n''@;'; + put 'put ''dGg7KytHcil4dFswXVtHcl09V25bR3JdLm5hbWU7Zm9yKDt6dC0tID4wOylpZig0MiE9PVJ0W1J0LmxdKWZvcigrK1J0LmwseHRbKythcl09W10sR3I9MCxHcj0wO0dyIT1Xbi5sZW5ndGg7KytHcil7dmFyIHpyPVJ0LnNsaWNlKFJ0LmwsUnQubCtXbltHcl0ubGVuKTtSdC5sKz1XbltHcl0u''@;'; + put 'put ''bGVuLEtsKHpyLDApO3ZhciBxcj1jcHRhYmxlLnV0aWxzLmRlY29kZShPbix6cik7c3dpdGNoKFduW0dyXS50eXBlKXtjYXNlIkMiOnFyLnRyaW0oKS5sZW5ndGgmJih4dFthcl1bR3JdPXFyLnJlcGxhY2UoL1xzKyQvLCIiKSk7YnJlYWs7Y2FzZSJEIjp4dFthcl1bR3JdPTg9PT1xci5sZW5n''@;'; + put 'put ''dGg/bmV3IERhdGUoK3FyLnNsaWNlKDAsNCksK3FyLnNsaWNlKDQsNiktMSwrcXIuc2xpY2UoNiw4KSk6cXI7YnJlYWs7Y2FzZSJGIjp4dFthcl1bR3JdPXBhcnNlRmxvYXQocXIudHJpbSgpKTticmVhaztjYXNlIisiOmNhc2UiSSI6eHRbYXJdW0dyXT1EdD8yMTQ3NDgzNjQ4XnpyLnJlYWRf''@;'; + put 'put ''c2hpZnQoLTQsImkiKTp6ci5yZWFkX3NoaWZ0KDQsImkiKTticmVhaztjYXNlIkwiOnN3aXRjaChxci50cmltKCkudG9VcHBlckNhc2UoKSl7Y2FzZSJZIjpjYXNlIlQiOnh0W2FyXVtHcl09ITA7YnJlYWs7Y2FzZSJOIjpjYXNlIkYiOnh0W2FyXVtHcl09ITE7YnJlYWs7Y2FzZSIiOmNhc2Ui''@;'; + put 'put ''PyI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkRCRiBVbnJlY29nbml6ZWQgTDp8IitxcisifCIpfWJyZWFrO2Nhc2UiTSI6aWYoIW5uKXRocm93IG5ldyBFcnJvcigiREJGIFVuZXhwZWN0ZWQgTUVNTyBmb3IgdHlwZSAiK1l0LnRvU3RyaW5nKDE2KSk7eHRbYXJdW0dyXT0iIyNN''@;'; + put 'put ''RU1PIyMiKyhEdD9wYXJzZUludChxci50cmltKCksMTApOnpyLnJlYWRfc2hpZnQoNCkpO2JyZWFrO2Nhc2UiTiI6KHFyPXFyLnJlcGxhY2UoL1x1MDAwMC9nLCIiKS50cmltKCkpJiYiLiIhPXFyJiYoeHRbYXJdW0dyXT0rcXJ8fDApO2JyZWFrO2Nhc2UiQCI6eHRbYXJdW0dyXT1uZXcgRGF0''@;'; + put 'put ''ZSh6ci5yZWFkX3NoaWZ0KC04LCJmIiktNjIxMzU2ODMyZTUpO2JyZWFrO2Nhc2UiVCI6eHRbYXJdW0dyXT1uZXcgRGF0ZSg4NjRlNSooenIucmVhZF9zaGlmdCg0KS0yNDQwNTg4KSt6ci5yZWFkX3NoaWZ0KDQpKTticmVhaztjYXNlIlkiOnh0W2FyXVtHcl09enIucmVhZF9zaGlmdCg0LCJp''@;'; + put 'put ''IikvMWU0O2JyZWFrO2Nhc2UiTyI6eHRbYXJdW0dyXT0tenIucmVhZF9zaGlmdCgtOCwiZiIpO2JyZWFrO2Nhc2UiQiI6aWYoQ24mJjg9PVduW0dyXS5sZW4pe3h0W2FyXVtHcl09enIucmVhZF9zaGlmdCg4LCJmIik7YnJlYWt9Y2FzZSJHIjpjYXNlIlAiOnpyLmwrPVduW0dyXS5sZW47YnJl''@;'; + put 'put ''YWs7Y2FzZSIwIjppZigiX051bGxGbGFncyI9PT1XbltHcl0ubmFtZSlicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiREJGIFVuc3VwcG9ydGVkIGRhdGEgdHlwZSAiK1duW0dyXS50eXBlKX19ZWxzZSBSdC5sKz1UbjtpZigyIT1ZdCYmUnQubDxSdC5sZW5ndGgmJjI2IT1SdFtSdC5s''@;'; + put 'put ''KytdKXRocm93IG5ldyBFcnJvcigiREJGIEVPRiBNYXJrZXIgbWlzc2luZyAiKyhSdC5sLTEpKyIgb2YgIitSdC5sZW5ndGgrIiAiK1J0W1J0LmwtMV0udG9TdHJpbmcoMTYpKTtyZXR1cm4gTXQmJk10LnNoZWV0Um93cyYmKHh0PXh0LnNsaWNlKDAsTXQuc2hlZXRSb3dzKSkseHR9KFllLHh0''@;'; + put 'put ''KSx4dCl9dmFyIFplPXtCOjgsQzoyNTAsTDoxLEQ6OCwiPyI6MCwiIjowfTtyZXR1cm57dmVyc2lvbnM6WzIsMyw0OCw0OSwxMzEsMTM5LDE0MCwyNDVdLHRvX3dvcmtib29rOmZ1bmN0aW9uIEZlKFllLE10KXt0cnl7cmV0dXJuIHcxKHhlKFllLE10KSxNdCl9Y2F0Y2goeHQpe2lmKE10JiZN''@;'; + put 'put ''dC5XVEYpdGhyb3cgeHR9cmV0dXJue1NoZWV0TmFtZXM6W10sU2hlZXRzOnt9fX0sdG9fc2hlZXQ6eGUsZnJvbV9zaGVldDpmdW5jdGlvbiBqZShZZSxNdCl7dmFyIHh0PU10fHx7fTtpZigreHQuY29kZXBhZ2U+PTAmJmVlKCt4dC5jb2RlcGFnZSksInN0cmluZyI9PXh0LnR5cGUpdGhyb3cg''@;'; + put 'put ''bmV3IEVycm9yKCJDYW5ub3Qgd3JpdGUgREJGIHRvIEpTIHN0cmluZyIpO3ZhciBSdD1RMigpLFl0PUxBKFllLHtoZWFkZXI6MSxyYXc6ITAsY2VsbERhdGVzOiEwfSksbm49WXRbMF0sQ249WXQuc2xpY2UoMSksRHQ9MCx6dD0wLFBuPTAsVG49MTtmb3IoRHQ9MDtEdDxubi5sZW5ndGg7KytE''@;'; + put 'put ''dClpZihudWxsIT1EdCl7aWYoKytQbiwibnVtYmVyIj09dHlwZW9mIG5uW0R0XSYmKG5uW0R0XT1ubltEdF0udG9TdHJpbmcoMTApKSwic3RyaW5nIiE9dHlwZW9mIG5uW0R0XSl0aHJvdyBuZXcgRXJyb3IoIkRCRiBJbnZhbGlkIGNvbHVtbiBuYW1lICIrbm5bRHRdKyIgfCIrdHlwZW9mIG5u''@;'; + put 'put ''W0R0XSsifCIpO2lmKG5uLmluZGV4T2Yobm5bRHRdKSE9PUR0KWZvcih6dD0wO3p0PDEwMjQ7Kyt6dClpZigtMT09bm4uaW5kZXhPZihubltEdF0rIl8iK3p0KSl7bm5bRHRdKz0iXyIrenQ7YnJlYWt9fXZhciBPbj1GbyhZZVsiIXJlZiJdKSxXbj1bXTtmb3IoRHQ9MDtEdDw9T24uZS5jLU9u''@;'; + put 'put ''LnMuYzsrK0R0KXt2YXIgTXI9W107Zm9yKHp0PTA7enQ8Q24ubGVuZ3RoOysrenQpbnVsbCE9Q25benRdW0R0XSYmTXIucHVzaChDblt6dF1bRHRdKTtpZigwIT1Nci5sZW5ndGgmJm51bGwhPW5uW0R0XSl7dmFyIGFpPSIiLHlyPSIiO2Zvcih6dD0wO3p0PE1yLmxlbmd0aDsrK3p0KXtzd2l0''@;'; + put 'put ''Y2godHlwZW9mIE1yW3p0XSl7Y2FzZSJudW1iZXIiOnlyPSJCIjticmVhaztjYXNlInN0cmluZyI6ZGVmYXVsdDp5cj0iQyI7YnJlYWs7Y2FzZSJib29sZWFuIjp5cj0iTCI7YnJlYWs7Y2FzZSJvYmplY3QiOnlyPU1yW3p0XWluc3RhbmNlb2YgRGF0ZT8iRCI6IkMifWlmKCJDIj09KGFpPWFp''@;'; + put 'put ''JiZhaSE9eXI/IkMiOnlyKSlicmVha31Ubis9WmVbYWldfHwwLFduW0R0XT1haX1lbHNlIFduW0R0XT0iPyJ9dmFyIGFyPVJ0Lm5leHQoMzIpO2Zvcihhci53cml0ZV9zaGlmdCg0LDMxODkwMjU3NiksYXIud3JpdGVfc2hpZnQoNCxDbi5sZW5ndGgpLGFyLndyaXRlX3NoaWZ0KDIsMjk2KzMy''@;'; + put 'put ''KlBuKSxhci53cml0ZV9zaGlmdCgyLFRuKSxEdD0wO0R0PDQ7KytEdClhci53cml0ZV9zaGlmdCg0LDApO2Zvcihhci53cml0ZV9zaGlmdCg0LDB8KCtyZVtaXXx8Myk8PDgpLER0PTAsenQ9MDtEdDxubi5sZW5ndGg7KytEdClpZihudWxsIT1ubltEdF0pe3ZhciBHcj1SdC5uZXh0KDMyKSx6''@;'; + put 'put ''cj0obm5bRHRdLnNsaWNlKC0xMCkrIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiKS5zbGljZSgwLDExKTtHci53cml0ZV9zaGlmdCgxLHpyLCJzYmNzIiksR3Iud3JpdGVfc2hpZnQoMSwiPyI9PVduW0R0XT8iQyI6V25bRHRdLCJzYmNzIiksR3Iud3JpdGVfc2hpZnQoNCx6dCksR3Iud3JpdGVf''@;'; + put 'put ''c2hpZnQoMSxaZVtXbltEdF1dfHwwKSxHci53cml0ZV9zaGlmdCgxLDApLEdyLndyaXRlX3NoaWZ0KDEsMiksR3Iud3JpdGVfc2hpZnQoNCwwKSxHci53cml0ZV9zaGlmdCgxLDApLEdyLndyaXRlX3NoaWZ0KDQsMCksR3Iud3JpdGVfc2hpZnQoNCwwKSx6dCs9WmVbV25bRHRdXXx8MH12YXIg''@;'; + put 'put ''cXI9UnQubmV4dCgyNjQpO2Zvcihxci53cml0ZV9zaGlmdCg0LDEzKSxEdD0wO0R0PDY1OysrRHQpcXIud3JpdGVfc2hpZnQoNCwwKTtmb3IoRHQ9MDtEdDxDbi5sZW5ndGg7KytEdCl7dmFyIG9pPVJ0Lm5leHQoVG4pO2ZvcihvaS53cml0ZV9zaGlmdCgxLDApLHp0PTA7enQ8bm4ubGVuZ3Ro''@;'; + put 'put ''OysrenQpaWYobnVsbCE9bm5benRdKXN3aXRjaChXblt6dF0pe2Nhc2UiTCI6b2kud3JpdGVfc2hpZnQoMSxudWxsPT1DbltEdF1benRdPzYzOkNuW0R0XVt6dF0/ODQ6NzApO2JyZWFrO2Nhc2UiQiI6b2kud3JpdGVfc2hpZnQoOCxDbltEdF1benRdfHwwLCJmIik7YnJlYWs7Y2FzZSJEIjpD''@;'; + put 'put ''bltEdF1benRdPyhvaS53cml0ZV9zaGlmdCg0LCgiMDAwMCIrQ25bRHRdW3p0XS5nZXRGdWxsWWVhcigpKS5zbGljZSgtNCksInNiY3MiKSxvaS53cml0ZV9zaGlmdCgyLCgiMDAiKyhDbltEdF1benRdLmdldE1vbnRoKCkrMSkpLnNsaWNlKC0yKSwic2JjcyIpLG9pLndyaXRlX3NoaWZ0KDIs''@;'; + put 'put ''KCIwMCIrQ25bRHRdW3p0XS5nZXREYXRlKCkpLnNsaWNlKC0yKSwic2JjcyIpKTpvaS53cml0ZV9zaGlmdCg4LCIwMDAwMDAwMCIsInNiY3MiKTticmVhaztjYXNlIkMiOnZhciBjcj1TdHJpbmcoQ25bRHRdW3p0XXx8IiIpO2ZvcihvaS53cml0ZV9zaGlmdCgxLGNyLCJzYmNzIiksUG49MDtQ''@;'; + put 'put ''bjwyNTAtY3IubGVuZ3RoOysrUG4pb2kud3JpdGVfc2hpZnQoMSwzMil9fXJldHVybiBSdC5uZXh0KDEpLndyaXRlX3NoaWZ0KDEsMjYpLFJ0LmVuZCgpfX19KCksZm09ZnVuY3Rpb24oKXt2YXIgSD17QUE6Ilx4YzAiLEJBOiJceGMxIixDQToiXHhjMiIsREE6MTk1LEhBOiJceGM0IixKQTox''@;'; + put 'put ''OTcsQUU6Ilx4YzgiLEJFOiJceGM5IixDRToiXHhjYSIsSEU6Ilx4Y2IiLEFJOiJceGNjIixCSToiXHhjZCIsQ0k6Ilx4Y2UiLEhJOiJceGNmIixBTzoiXHhkMiIsQk86Ilx4ZDMiLENPOiJceGQ0IixETzoyMTMsSE86Ilx4ZDYiLEFVOiJceGQ5IixCVToiXHhkYSIsQ1U6Ilx4ZGIiLEhVOiJc''@;'; + put 'put ''eGRjIixBYToiXHhlMCIsQmE6Ilx4ZTEiLENhOiJceGUyIixEYToyMjcsSGE6Ilx4ZTQiLEphOjIyOSxBZToiXHhlOCIsQmU6Ilx4ZTkiLENlOiJceGVhIixIZToiXHhlYiIsQWk6Ilx4ZWMiLEJpOiJceGVkIixDaToiXHhlZSIsSGk6Ilx4ZWYiLEFvOiJceGYyIixCbzoiXHhmMyIsQ286Ilx4''@;'; + put 'put ''ZjQiLERvOjI0NSxIbzoiXHhmNiIsQXU6Ilx4ZjkiLEJ1OiJceGZhIixDdToiXHhmYiIsSHU6Ilx4ZmMiLEtDOiJceGM3IixLYzoiXHhlNyIscToiXHhlNiIsejoiXHUwMTUzIixhOiJceGM2IixqOiJcdTAxNTIiLEROOjIwOSxEbjoyNDEsSHk6MjU1LFM6MTY5LGM6MTcwLFI6MTc0LCJCICI6''@;'; + put 'put ''MTgwLDA6MTc2LDE6MTc3LDI6MTc4LDM6MTc5LDU6MTgxLDY6MTgyLDc6MTgzLFE6MTg1LGs6MTg2LGI6MjA4LGk6MjE2LGw6MjIyLHM6MjQwLHk6MjQ4LCIhIjoxNjEsJyInOjE2MiwiIyI6MTYzLCIoIjoxNjQsIiUiOjE2NSwiJyI6MTY3LCJIICI6MTY4LCIrIjoxNzEsIjsiOjE4NywiPCI6''@;'; + put 'put ''MTg4LCI9IjoxODksIj4iOjE5MCwiPyI6MTkxLCJ7IjoyMjN9LHJlPW5ldyBSZWdFeHAoIlx4MWJOKCIrb24oSCkuam9pbigifCIpLnJlcGxhY2UoL1x8XHxcfC8sInxcXHx8IikucmVwbGFjZSgvKFs/KCkrXSkvZywiXFwkMSIpKyJ8XFx8KSIsImdtIiksWD1mdW5jdGlvbihZdCxubil7dmFy''@;'; + put 'put ''IENuPUhbbm5dO3JldHVybiJudW1iZXIiPT10eXBlb2YgQ24/dmUoQ24pOkNufSx3ZT1mdW5jdGlvbihZdCxubixDbil7dmFyIER0PW5uLmNoYXJDb2RlQXQoMCktMzI8PDR8Q24uY2hhckNvZGVBdCgwKS00ODtyZXR1cm4gNTk9PUR0P1l0OnZlKER0KX07ZnVuY3Rpb24gRmUoWXQsbm4pe3Zh''@;'; + put 'put ''ciBxcixDbj1ZdC5zcGxpdCgvW1xuXHJdKy8pLER0PS0xLHp0PS0xLFBuPTAsVG49MCxPbj1bXSxXbj1bXSxNcj1udWxsLGFpPXt9LHlyPVtdLGFyPVtdLEdyPVtdLHpyPTA7Zm9yKCtubi5jb2RlcGFnZT49MCYmZWUoK25uLmNvZGVwYWdlKTtQbiE9PUNuLmxlbmd0aDsrK1BuKXt6cj0wO3Zh''@;'; + put 'put ''ciB2MCxvaT1DbltQbl0udHJpbSgpLnJlcGxhY2UoL1x4MUIoW1x4MjAtXHgyRl0pKFtceDMwLVx4M0ZdKS9nLHdlKS5yZXBsYWNlKHJlLFgpLGNyPW9pLnJlcGxhY2UoLzs7L2csIlwwIikuc3BsaXQoIjsiKS5tYXAoZnVuY3Rpb24oTjApe3JldHVybiBOMC5yZXBsYWNlKC9cdTAwMDAvZywi''@;'; + put 'put ''OyIpfSk7aWYob2kubGVuZ3RoPjApc3dpdGNoKGNyWzBdKXtjYXNlIklEIjpjYXNlIkUiOmNhc2UiQiI6Y2FzZSJPIjpjYXNlIlciOmJyZWFrO2Nhc2UiUCI6IlAiPT1jclsxXS5jaGFyQXQoMCkmJlduLnB1c2gob2kuc2xpY2UoMykucmVwbGFjZSgvOzsvZywiOyIpKTticmVhaztjYXNlIkMi''@;'; + put 'put ''OnZhciBVaT0hMSx0bz0hMSxBMD0hMSx3aT0hMSxZcj0tMSxFaT0tMTtmb3IoVG49MTtUbjxjci5sZW5ndGg7KytUbilzd2l0Y2goY3JbVG5dLmNoYXJBdCgwKSl7Y2FzZSJBIjpjYXNlIkciOmJyZWFrO2Nhc2UiWCI6enQ9cGFyc2VJbnQoY3JbVG5dLnNsaWNlKDEpKS0xLHRvPSEwO2JyZWFr''@;'; + put 'put ''O2Nhc2UiWSI6Zm9yKER0PXBhcnNlSW50KGNyW1RuXS5zbGljZSgxKSktMSx0b3x8KHp0PTApLHFyPU9uLmxlbmd0aDtxcjw9RHQ7KytxcilPbltxcl09W107YnJlYWs7Y2FzZSJLIjonIic9PT0odjA9Y3JbVG5dLnNsaWNlKDEpKS5jaGFyQXQoMCk/djA9djAuc2xpY2UoMSx2MC5sZW5ndGgt''@;'; + put 'put ''MSk6IlRSVUUiPT09djA/djA9ITA6IkZBTFNFIj09PXYwP3YwPSExOmlzTmFOKHNyKHYwKSk/aXNOYU4oWG4odjApLmdldERhdGUoKSl8fCh2MD1kbih2MCkpOih2MD1zcih2MCksbnVsbCE9PU1yJiZGLmlzX2RhdGUoTXIpJiYodjA9SHQodjApKSksInVuZGVmaW5lZCIhPXR5cGVvZiBjcHRh''@;'; + put 'put ''YmxlJiYic3RyaW5nIj09dHlwZW9mIHYwJiYic3RyaW5nIiE9KG5ufHx7fSkudHlwZSYmKG5ufHx7fSkuY29kZXBhZ2UmJih2MD1jcHRhYmxlLnV0aWxzLmRlY29kZShubi5jb2RlcGFnZSx2MCkpLFVpPSEwO2JyZWFrO2Nhc2UiRSI6d2k9ITA7dmFyIGhpPUQzKGNyW1RuXS5zbGljZSgxKSx7''@;'; + put 'put ''cjpEdCxjOnp0fSk7T25bRHRdW3p0XT1bT25bRHRdW3p0XSxoaV07YnJlYWs7Y2FzZSJTIjpBMD0hMCxPbltEdF1benRdPVtPbltEdF1benRdLCJTNVMiXTticmVhaztjYXNlIlIiOllyPXBhcnNlSW50KGNyW1RuXS5zbGljZSgxKSktMTticmVhaztjYXNlIkMiOkVpPXBhcnNlSW50KGNyW1Ru''@;'; + put 'put ''XS5zbGljZSgxKSktMTticmVhaztkZWZhdWx0OmlmKG5uJiZubi5XVEYpdGhyb3cgbmV3IEVycm9yKCJTWUxLIGJhZCByZWNvcmQgIitvaSl9aWYoVWkmJihPbltEdF1benRdJiYyPT1PbltEdF1benRdLmxlbmd0aD9PbltEdF1benRdWzBdPXYwOk9uW0R0XVt6dF09djAsTXI9bnVsbCksQTAp''@;'; + put 'put ''e2lmKHdpKXRocm93IG5ldyBFcnJvcigiU1lMSyBzaGFyZWQgZm9ybXVsYSBjYW5ub3QgaGF2ZSBvd24gZm9ybXVsYSIpO3ZhciBOcj1Zcj4tMSYmT25bWXJdW0VpXTtpZighTnJ8fCFOclsxXSl0aHJvdyBuZXcgRXJyb3IoIlNZTEsgc2hhcmVkIGZvcm11bGEgY2Fubm90IGZpbmQgYmFzZSIp''@;'; + put 'put ''O09uW0R0XVt6dF1bMV09VXYoTnJbMV0se3I6RHQtWXIsYzp6dC1FaX0pfWJyZWFrO2Nhc2UiRiI6dmFyIGtpPTA7Zm9yKFRuPTE7VG48Y3IubGVuZ3RoOysrVG4pc3dpdGNoKGNyW1RuXS5jaGFyQXQoMCkpe2Nhc2UiWCI6enQ9cGFyc2VJbnQoY3JbVG5dLnNsaWNlKDEpKS0xLCsra2k7YnJl''@;'; + put 'put ''YWs7Y2FzZSJZIjpmb3IoRHQ9cGFyc2VJbnQoY3JbVG5dLnNsaWNlKDEpKS0xLHFyPU9uLmxlbmd0aDtxcjw9RHQ7KytxcilPbltxcl09W107YnJlYWs7Y2FzZSJNIjp6cj1wYXJzZUludChjcltUbl0uc2xpY2UoMSkpLzIwO2JyZWFrO2Nhc2UiRiI6Y2FzZSJHIjpjYXNlIlMiOmNhc2UiRCI6''@;'; + put 'put ''Y2FzZSJOIjpicmVhaztjYXNlIlAiOk1yPVduW3BhcnNlSW50KGNyW1RuXS5zbGljZSgxKSldO2JyZWFrO2Nhc2UiVyI6Zm9yKEdyPWNyW1RuXS5zbGljZSgxKS5zcGxpdCgiICIpLHFyPXBhcnNlSW50KEdyWzBdLDEwKTtxcjw9cGFyc2VJbnQoR3JbMV0sMTApOysrcXIpenI9cGFyc2VJbnQo''@;'; + put 'put ''R3JbMl0sMTApLGFyW3FyLTFdPTA9PT16cj97aGlkZGVuOiEwfTp7d2NoOnpyfSx5Yyhhcltxci0xXSk7YnJlYWs7Y2FzZSJDIjphclt6dD1wYXJzZUludChjcltUbl0uc2xpY2UoMSkpLTFdfHwoYXJbenRdPXt9KTticmVhaztjYXNlIlIiOnlyW0R0PXBhcnNlSW50KGNyW1RuXS5zbGljZSgx''@;'; + put 'put ''KSktMV18fCh5cltEdF09e30pLHpyPjA/KHlyW0R0XS5ocHQ9enIseXJbRHRdLmhweD1BZih6cikpOjA9PT16ciYmKHlyW0R0XS5oaWRkZW49ITApO2JyZWFrO2RlZmF1bHQ6aWYobm4mJm5uLldURil0aHJvdyBuZXcgRXJyb3IoIlNZTEsgYmFkIHJlY29yZCAiK29pKX1raTwxJiYoTXI9bnVs''@;'; + put 'put ''bCk7YnJlYWs7ZGVmYXVsdDppZihubiYmbm4uV1RGKXRocm93IG5ldyBFcnJvcigiU1lMSyBiYWQgcmVjb3JkICIrb2kpfX1yZXR1cm4geXIubGVuZ3RoPjAmJihhaVsiIXJvd3MiXT15ciksYXIubGVuZ3RoPjAmJihhaVsiIWNvbHMiXT1hciksbm4mJm5uLnNoZWV0Um93cyYmKE9uPU9uLnNs''@;'; + put 'put ''aWNlKDAsbm4uc2hlZXRSb3dzKSksW09uLGFpXX1mdW5jdGlvbiBaZShZdCxubil7dmFyIENuPWZ1bmN0aW9uIHhlKFl0LG5uKXtzd2l0Y2gobm4udHlwZSl7Y2FzZSJiYXNlNjQiOnJldHVybiBGZShTZS5kZWNvZGUoWXQpLG5uKTtjYXNlImJpbmFyeSI6cmV0dXJuIEZlKFl0LG5uKTtjYXNl''@;'; + put 'put ''ImJ1ZmZlciI6cmV0dXJuIEZlKFl0LnRvU3RyaW5nKCJiaW5hcnkiKSxubik7Y2FzZSJhcnJheSI6cmV0dXJuIEZlKHluKFl0KSxubil9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK25uLnR5cGUpfShZdCxubiksenQ9Q25bMV0sUG49Z2QoQ25bMF0sbm4pO3JldHVybiBv''@;'; + put 'put ''bih6dCkuZm9yRWFjaChmdW5jdGlvbihUbil7UG5bVG5dPXp0W1RuXX0pLFBufWZ1bmN0aW9uIFllKFl0LG5uLENuLER0KXt2YXIgenQ9IkM7WSIrKENuKzEpKyI7WCIrKER0KzEpKyI7SyI7c3dpdGNoKFl0LnQpe2Nhc2UibiI6enQrPVl0LnZ8fDAsWXQuZiYmIVl0LkYmJih6dCs9IjtFIitP''@;'; + put 'put ''RShZdC5mLHtyOkNuLGM6RHR9KSk7YnJlYWs7Y2FzZSJiIjp6dCs9WXQudj8iVFJVRSI6IkZBTFNFIjticmVhaztjYXNlImUiOnp0Kz1ZdC53fHxZdC52O2JyZWFrO2Nhc2UiZCI6enQrPSciJysoWXQud3x8WXQudikrJyInO2JyZWFrO2Nhc2UicyI6enQrPSciJytZdC52LnJlcGxhY2UoLyIv''@;'; + put 'put ''ZywiIikrJyInfXJldHVybiB6dH1yZXR1cm4gSFsifCJdPTI1NCx7dG9fd29ya2Jvb2s6ZnVuY3Rpb24gamUoWXQsbm4pe3JldHVybiB3MShaZShZdCxubiksbm4pfSx0b19zaGVldDpaZSxmcm9tX3NoZWV0OmZ1bmN0aW9uIFJ0KFl0LG5uKXt2YXIgUG4sQ249WyJJRDtQU2hlZXRKUztOO0Ui''@;'; + put 'put ''XSxEdD1bXSx6dD1GbyhZdFsiIXJlZiJdKSxUbj1BcnJheS5pc0FycmF5KFl0KSxPbj0iXHJcbiI7Q24ucHVzaCgiUDtQR2VuZXJhbCIpLENuLnB1c2goIkY7UDA7REcwRzg7TTI1NSIpLFl0WyIhY29scyJdJiZmdW5jdGlvbiBNdChZdCxubil7bm4uZm9yRWFjaChmdW5jdGlvbihDbixEdCl7''@;'; + put 'put ''dmFyIHp0PSJGO1ciKyhEdCsxKSsiICIrKER0KzEpKyIgIjtDbi5oaWRkZW4/enQrPSIwIjooIm51bWJlciI9PXR5cGVvZiBDbi53aWR0aCYmIUNuLndweCYmKENuLndweD1tbShDbi53aWR0aCkpLCJudW1iZXIiPT10eXBlb2YgQ24ud3B4JiYhQ24ud2NoJiYoQ24ud2NoPVR2KENuLndweCkp''@;'; + put 'put ''LCJudW1iZXIiPT10eXBlb2YgQ24ud2NoJiYoenQrPU1hdGgucm91bmQoQ24ud2NoKSkpLCIgIiE9enQuY2hhckF0KHp0Lmxlbmd0aC0xKSYmWXQucHVzaCh6dCl9KX0oQ24sWXRbIiFjb2xzIl0pLFl0WyIhcm93cyJdJiZmdW5jdGlvbiB4dChZdCxubil7bm4uZm9yRWFjaChmdW5jdGlvbihD''@;'; + put 'put ''bixEdCl7dmFyIHp0PSJGOyI7Q24uaGlkZGVuP3p0Kz0iTTA7IjpDbi5ocHQ/enQrPSJNIisyMCpDbi5ocHQrIjsiOkNuLmhweCYmKHp0Kz0iTSIrMjAqVGgoQ24uaHB4KSsiOyIpLHp0Lmxlbmd0aD4yJiZZdC5wdXNoKHp0KyJSIisoRHQrMSkpfSl9KENuLFl0WyIhcm93cyJdKSxDbi5wdXNo''@;'; + put 'put ''KCJCO1kiKyh6dC5lLnItenQucy5yKzEpKyI7WCIrKHp0LmUuYy16dC5zLmMrMSkrIjtEIitbenQucy5jLHp0LnMucix6dC5lLmMsenQuZS5yXS5qb2luKCIgIikpO2Zvcih2YXIgV249enQucy5yO1duPD16dC5lLnI7KytXbilmb3IodmFyIE1yPXp0LnMuYztNcjw9enQuZS5jOysrTXIpe3Zh''@;'; + put 'put ''ciBhaT1ZMCh7cjpXbixjOk1yfSk7KFBuPVRuPyhZdFtXbl18fFtdKVtNcl06WXRbYWldKSYmKG51bGwhPVBuLnZ8fFBuLmYmJiFQbi5GKSYmRHQucHVzaChZZShQbiwwLFduLE1yKSl9cmV0dXJuIENuLmpvaW4oT24pK09uK0R0LmpvaW4oT24pK09uKyJFIitPbn19fSgpLGdiPWZ1bmN0aW9u''@;'; + put 'put ''KCl7ZnVuY3Rpb24gcmUoRmUsWmUpe2Zvcih2YXIgamU9RmUuc3BsaXQoIlxuIiksWWU9LTEsTXQ9LTEseHQ9MCxSdD1bXTt4dCE9PWplLmxlbmd0aDsrK3h0KWlmKCJCT1QiIT09amVbeHRdLnRyaW0oKSl7aWYoIShZZTwwKSl7Zm9yKHZhciBZdD1qZVt4dF0udHJpbSgpLnNwbGl0KCIsIiks''@;'; + put 'put ''bm49WXRbMF0sQ249WXRbMV0sRHQ9amVbKyt4dF18fCIiOzEmKER0Lm1hdGNoKC9bIl0vZyl8fFtdKS5sZW5ndGgmJnh0PGplLmxlbmd0aC0xOylEdCs9IlxuIitqZVsrK3h0XTtzd2l0Y2goRHQ9RHQudHJpbSgpLCtubil7Y2FzZS0xOmlmKCJCT1QiPT09RHQpe1J0WysrWWVdPVtdLE10PTA7''@;'; + put 'put ''Y29udGludWV9aWYoIkVPRCIhPT1EdCl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBESUYgc3BlY2lhbCBjb21tYW5kICIrRHQpO2JyZWFrO2Nhc2UgMDpSdFtZZV1bTXRdPSJUUlVFIj09PUR0fHwiRkFMU0UiIT09RHQmJihpc05hTihzcihDbikpP2lzTmFOKFhuKENuKS5nZXREYXRl''@;'; + put 'put ''KCkpP0NuOmRuKENuKTpzcihDbikpLCsrTXQ7YnJlYWs7Y2FzZSAxOihEdD0oRHQ9RHQuc2xpY2UoMSxEdC5sZW5ndGgtMSkpLnJlcGxhY2UoLyIiL2csJyInKSkmJkR0Lm1hdGNoKC9ePSIuKiIkLykmJihEdD1EdC5zbGljZSgyLC0xKSksUnRbWWVdW010KytdPSIiIT09RHQ/RHQ6bnVsbH1p''@;'; + put 'put ''ZigiRU9EIj09PUR0KWJyZWFrfX1lbHNlIFJ0WysrWWVdPVtdLE10PTA7cmV0dXJuIFplJiZaZS5zaGVldFJvd3MmJihSdD1SdC5zbGljZSgwLFplLnNoZWV0Um93cykpLFJ0fWZ1bmN0aW9uIFgoRmUsWmUpe3JldHVybiBnZChmdW5jdGlvbiBIKEZlLFplKXtzd2l0Y2goWmUudHlwZSl7Y2Fz''@;'; + put 'put ''ZSJiYXNlNjQiOnJldHVybiByZShTZS5kZWNvZGUoRmUpLFplKTtjYXNlImJpbmFyeSI6cmV0dXJuIHJlKEZlLFplKTtjYXNlImJ1ZmZlciI6cmV0dXJuIHJlKEZlLnRvU3RyaW5nKCJiaW5hcnkiKSxaZSk7Y2FzZSJhcnJheSI6cmV0dXJuIHJlKHluKEZlKSxaZSl9dGhyb3cgbmV3IEVycm9y''@;'; + put 'put ''KCJVbnJlY29nbml6ZWQgdHlwZSAiK1plLnR5cGUpfShGZSxaZSksWmUpfXZhciBGZSxaZTtyZXR1cm57dG9fd29ya2Jvb2s6ZnVuY3Rpb24gd2UoRmUsWmUpe3JldHVybiB3MShYKEZlLFplKSxaZSl9LHRvX3NoZWV0OlgsZnJvbV9zaGVldDooRmU9ZnVuY3Rpb24oWWUsTXQseHQsUnQsWXQp''@;'; + put 'put ''e1llLnB1c2goTXQpLFllLnB1c2goeHQrIiwiK1J0KSxZZS5wdXNoKCciJytZdC5yZXBsYWNlKC8iL2csJyIiJykrJyInKX0sWmU9ZnVuY3Rpb24oWWUsTXQseHQsUnQpe1llLnB1c2goTXQrIiwiK3h0KSxZZS5wdXNoKDE9PU10PyciJytSdC5yZXBsYWNlKC8iL2csJyIiJykrJyInOlJ0KX0s''@;'; + put 'put ''ZnVuY3Rpb24oWWUpe3ZhciBSdCxNdD1bXSx4dD1GbyhZZVsiIXJlZiJdKSxZdD1BcnJheS5pc0FycmF5KFllKTtGZShNdCwiVEFCTEUiLDAsMSwic2hlZXRqcyIpLEZlKE10LCJWRUNUT1JTIiwwLHh0LmUuci14dC5zLnIrMSwiIiksRmUoTXQsIlRVUExFUyIsMCx4dC5lLmMteHQucy5jKzEs''@;'; + put 'put ''IiIpLEZlKE10LCJEQVRBIiwwLDAsIiIpO2Zvcih2YXIgbm49eHQucy5yO25uPD14dC5lLnI7Kytubil7WmUoTXQsLTEsMCwiQk9UIik7Zm9yKHZhciBDbj14dC5zLmM7Q248PXh0LmUuYzsrK0NuKXt2YXIgRHQ9WTAoe3I6bm4sYzpDbn0pO2lmKFJ0PVl0PyhZZVtubl18fFtdKVtDbl06WWVb''@;'; + put 'put ''RHRdKXN3aXRjaChSdC50KXtjYXNlIm4iOnZhciB6dD1SdC53OyF6dCYmbnVsbCE9UnQudiYmKHp0PVJ0LnYpLG51bGw9PXp0P1plKE10LDEsMCxSdC5mJiYhUnQuRj8iPSIrUnQuZjoiIik6WmUoTXQsMCx6dCwiViIpO2JyZWFrO2Nhc2UiYiI6WmUoTXQsMCxSdC52PzE6MCxSdC52PyJUUlVF''@;'; + put 'put ''IjoiRkFMU0UiKTticmVhaztjYXNlInMiOlplKE10LDEsMCxpc05hTihSdC52KT9SdC52Oic9IicrUnQudisnIicpO2JyZWFrO2Nhc2UiZCI6UnQud3x8KFJ0Lnc9Ri5mb3JtYXQoUnQuenx8Ri5fdGFibGVbMTRdLGZ0KGRuKFJ0LnYpKSkpLFplKE10LDAsUnQudywiViIpO2JyZWFrO2RlZmF1''@;'; + put 'put ''bHQ6WmUoTXQsMSwwLCIiKX1lbHNlIFplKE10LDEsMCwiIil9fXJldHVybiBaZShNdCwtMSwwLCJFT0QiKSxNdC5qb2luKCJcclxuIil9KX19KCksVU09ZnVuY3Rpb24oKXtmdW5jdGlvbiBIKFJ0KXtyZXR1cm4gUnQucmVwbGFjZSgvXFxiL2csIlxcIikucmVwbGFjZSgvXFxjL2csIjoiKS5y''@;'; + put 'put ''ZXBsYWNlKC9cXG4vZywiXG4iKX1mdW5jdGlvbiByZShSdCl7cmV0dXJuIFJ0LnJlcGxhY2UoL1xcL2csIlxcYiIpLnJlcGxhY2UoLzovZywiXFxjIikucmVwbGFjZSgvXG4vZywiXFxuIil9ZnVuY3Rpb24gd2UoUnQsWXQpe3JldHVybiBnZChmdW5jdGlvbiBYKFJ0LFl0KXtmb3IodmFyIG5u''@;'; + put 'put ''PVJ0LnNwbGl0KCJcbiIpLENuPS0xLER0PS0xLHp0PTAsUG49W107enQhPT1ubi5sZW5ndGg7Kyt6dCl7dmFyIFRuPW5uW3p0XS50cmltKCkuc3BsaXQoIjoiKTtpZigiY2VsbCI9PT1UblswXSl7dmFyIE9uPXVsKFRuWzFdKTtpZihQbi5sZW5ndGg8PU9uLnIpZm9yKENuPVBuLmxlbmd0aDtD''@;'; + put 'put ''bjw9T24ucjsrK0NuKVBuW0NuXXx8KFBuW0NuXT1bXSk7c3dpdGNoKENuPU9uLnIsRHQ9T24uYyxUblsyXSl7Y2FzZSJ0IjpQbltDbl1bRHRdPUgoVG5bM10pO2JyZWFrO2Nhc2UidiI6UG5bQ25dW0R0XT0rVG5bM107YnJlYWs7Y2FzZSJ2dGYiOnZhciBXbj1UbltUbi5sZW5ndGgtMV07Y2Fz''@;'; + put 'put ''ZSJ2dGMiOlBuW0NuXVtEdF09Im5sIj09PVRuWzNdPyEhK1RuWzRdOitUbls0XSwidnRmIj09VG5bMl0mJihQbltDbl1bRHRdPVtQbltDbl1bRHRdLFduXSl9fX1yZXR1cm4gWXQmJll0LnNoZWV0Um93cyYmKFBuPVBuLnNsaWNlKDAsWXQuc2hlZXRSb3dzKSksUG59KFJ0LFl0KSxZdCl9dmFy''@;'; + put 'put ''IEZlPVsic29jaWFsY2FsYzp2ZXJzaW9uOjEuNSIsIk1JTUUtVmVyc2lvbjogMS4wIiwiQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PVNvY2lhbENhbGNTcHJlYWRzaGVldENvbnRyb2xTYXZlIl0uam9pbigiXG4iKSxaZT1bIi0tU29jaWFsQ2FsY1NwcmVhZHNoZWV0''@;'; + put 'put ''Q29udHJvbFNhdmUiLCJDb250ZW50LXR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgiXS5qb2luKCJcbiIpKyJcbiIsamU9WyIjIFNvY2lhbENhbGMgU3ByZWFkc2hlZXQgQ29udHJvbCBTYXZlIiwicGFydDpzaGVldCJdLmpvaW4oIlxuIiksWWU9Ii0tU29jaWFsQ2FsY1NwcmVhZHNo''@;'; + put 'put ''ZWV0Q29udHJvbFNhdmUtLSI7ZnVuY3Rpb24gTXQoUnQpe2lmKCFSdHx8IVJ0WyIhcmVmIl0pcmV0dXJuIiI7Zm9yKHZhciBDbixZdD1bXSxubj1bXSxEdD0iIix6dD12cyhSdFsiIXJlZiJdKSxQbj1BcnJheS5pc0FycmF5KFJ0KSxUbj16dC5zLnI7VG48PXp0LmUucjsrK1RuKWZvcih2YXIg''@;'; + put 'put ''T249enQucy5jO09uPD16dC5lLmM7KytPbilpZihEdD1ZMCh7cjpUbixjOk9ufSksKENuPVBuPyhSdFtUbl18fFtdKVtPbl06UnRbRHRdKSYmbnVsbCE9Q24udiYmInoiIT09Q24udCl7c3dpdGNoKG5uPVsiY2VsbCIsRHQsInQiXSxDbi50KXtjYXNlInMiOmNhc2Uic3RyIjpubi5wdXNoKHJl''@;'; + put 'put ''KENuLnYpKTticmVhaztjYXNlIm4iOkNuLmY/KG5uWzJdPSJ2dGYiLG5uWzNdPSJuIixubls0XT1Dbi52LG5uWzVdPXJlKENuLmYpKToobm5bMl09InYiLG5uWzNdPUNuLnYpO2JyZWFrO2Nhc2UiYiI6bm5bMl09InZ0IisoQ24uZj8iZiI6ImMiKSxublszXT0ibmwiLG5uWzRdPUNuLnY/IjEi''@;'; + put 'put ''OiIwIixubls1XT1yZShDbi5mfHwoQ24udj8iVFJVRSI6IkZBTFNFIikpO2JyZWFrO2Nhc2UiZCI6dmFyIFduPWZ0KGRuKENuLnYpKTtublsyXT0idnRjIixublszXT0ibmQiLG5uWzRdPSIiK1duLG5uWzVdPUNuLnd8fEYuZm9ybWF0KENuLnp8fEYuX3RhYmxlWzE0XSxXbik7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSJlIjpjb250aW51ZX1ZdC5wdXNoKG5uLmpvaW4oIjoiKSl9cmV0dXJuIFl0LnB1c2goInNoZWV0OmM6IisoenQuZS5jLXp0LnMuYysxKSsiOnI6IisoenQuZS5yLXp0LnMucisxKSsiOnR2ZjoxIiksWXQucHVzaCgidmFsdWVmb3JtYXQ6MTp0ZXh0LXdpa2kiKSxZdC5qb2luKCJcbiIpfXJl''@;'; + put 'put ''dHVybnt0b193b3JrYm9vazpmdW5jdGlvbiB4ZShSdCxZdCl7cmV0dXJuIHcxKHdlKFJ0LFl0KSxZdCl9LHRvX3NoZWV0OndlLGZyb21fc2hlZXQ6ZnVuY3Rpb24geHQoUnQpe3JldHVybltGZSxaZSxqZSxaZSxNdChSdCksWWVdLmpvaW4oIlxuIil9fX0oKSxBMz1mdW5jdGlvbigpe2Z1bmN0''@;'; + put 'put ''aW9uIEgoeHQsUnQsWXQsbm4sQ24pe0NuLnJhdz9SdFtZdF1bbm5dPXh0OiIiPT09eHR8fChSdFtZdF1bbm5dPUZyKHh0LENuKT9Gcih4dCxDbikudjp4dCl9dmFyIFg9ezQ0OiIsIiw5OiJcdCIsNTk6IjsifSx3ZT17NDQ6Myw5OjIsNTk6MX07ZnVuY3Rpb24geGUoeHQpe2Zvcih2YXIgUnQ9''@;'; + put 'put ''e30sWXQ9ITEsbm49MCxDbj0wO25uPHh0Lmxlbmd0aDsrK25uKTM0PT0oQ249eHQuY2hhckNvZGVBdChubikpP1l0PSFZdDohWXQmJkNuIGluIFgmJihSdFtDbl09KFJ0W0NuXXx8MCkrMSk7Zm9yKG5uIGluIENuPVtdLFJ0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChS''@;'; + put 'put ''dCxubikmJkNuLnB1c2goW1J0W25uXSxubl0pO2lmKCFDbi5sZW5ndGgpZm9yKG5uIGluIFJ0PXdlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChSdCxubikmJkNuLnB1c2goW1J0W25uXSxubl0pO3JldHVybiBDbi5zb3J0KGZ1bmN0aW9uKER0LHp0KXtyZXR1cm4gRHRb''@;'; + put 'put ''MF0tenRbMF18fHdlW0R0WzFdXS13ZVt6dFsxXV19KSxYW0NuLnBvcCgpWzFdXX1mdW5jdGlvbiBaZSh4dCxSdCl7cmV0dXJuIVJ0fHwhUnQuUFJOfHwic2VwPSI9PXh0LnNsaWNlKDAsNCl8fHh0LmluZGV4T2YoIlx0Iik+PTB8fHh0LmluZGV4T2YoIiwiKT49MHx8eHQuaW5kZXhPZigiOyIp''@;'; + put 'put ''Pj0wP2Z1bmN0aW9uIEZlKHh0LFJ0KXt2YXIgWXQ9UnR8fHt9LG5uPSIiLENuPVl0LmRlbnNlP1tdOnt9LER0PXtzOntjOjAscjowfSxlOntjOjAscjowfX07InNlcD0iPT14dC5zbGljZSgwLDQpPzEzPT14dC5jaGFyQ29kZUF0KDUpJiYxMD09eHQuY2hhckNvZGVBdCg2KT8obm49eHQuY2hh''@;'; + put 'put ''ckF0KDQpLHh0PXh0LnNsaWNlKDcpKToxMz09eHQuY2hhckNvZGVBdCg1KXx8MTA9PXh0LmNoYXJDb2RlQXQoNSk/KG5uPXh0LmNoYXJBdCg0KSx4dD14dC5zbGljZSg2KSk6bm49eGUoeHQuc2xpY2UoMCwxMDI0KSk6bm49eGUoeHQuc2xpY2UoMCwxMDI0KSk7dmFyIHp0PTAsUG49MCxUbj0w''@;'; + put 'put ''LE9uPTAsV249MCxNcj1ubi5jaGFyQ29kZUF0KDApLGFpPSExLHlyPTAsYXI9eHQuY2hhckNvZGVBdCgwKTt4dD14dC5yZXBsYWNlKC9cclxuL2dtLCJcbiIpO3ZhciBHcj1udWxsIT1ZdC5kYXRlTkY/ZnVuY3Rpb24gUWUoSCl7dmFyIHJlPSJudW1iZXIiPT10eXBlb2YgSD9GLl90YWJsZVtI''@;'; + put 'put ''XTpIO3JldHVybiByZT1yZS5yZXBsYWNlKFBlLCIoXFxkKykiKSxuZXcgUmVnRXhwKCJeIityZSsiJCIpfShZdC5kYXRlTkYpOm51bGw7ZnVuY3Rpb24genIoKXt2YXIgcXI9eHQuc2xpY2UoT24sV24pLG9pPXt9O2lmKCciJz09cXIuY2hhckF0KDApJiYnIic9PXFyLmNoYXJBdChxci5sZW5n''@;'; + put 'put ''dGgtMSkmJihxcj1xci5zbGljZSgxLC0xKS5yZXBsYWNlKC8iIi9nLCciJykpLDA9PT1xci5sZW5ndGgpb2kudD0ieiI7ZWxzZSBpZihZdC5yYXcpb2kudD0icyIsb2kudj1xcjtlbHNlIGlmKDA9PT1xci50cmltKCkubGVuZ3RoKW9pLnQ9InMiLG9pLnY9cXI7ZWxzZSBpZig2MT09cXIuY2hh''@;'; + put 'put ''ckNvZGVBdCgwKSkzND09cXIuY2hhckNvZGVBdCgxKSYmMzQ9PXFyLmNoYXJDb2RlQXQocXIubGVuZ3RoLTEpPyhvaS50PSJzIixvaS52PXFyLnNsaWNlKDIsLTEpLnJlcGxhY2UoLyIiL2csJyInKSk6ZnVuY3Rpb24gRWQoSCl7cmV0dXJuIDEhPUgubGVuZ3RofShxcik/KG9pLnQ9Im4iLG9p''@;'; + put 'put ''LmY9cXIuc2xpY2UoMSkpOihvaS50PSJzIixvaS52PXFyKTtlbHNlIGlmKCJUUlVFIj09cXIpb2kudD0iYiIsb2kudj0hMDtlbHNlIGlmKCJGQUxTRSI9PXFyKW9pLnQ9ImIiLG9pLnY9ITE7ZWxzZSBpZihpc05hTihUbj1zcihxcikpKWlmKCFpc05hTihYbihxcikuZ2V0RGF0ZSgpKXx8R3Im''@;'; + put 'put ''JnFyLm1hdGNoKEdyKSl7b2kuej1ZdC5kYXRlTkZ8fEYuX3RhYmxlWzE0XTt2YXIgY3I9MDtHciYmcXIubWF0Y2goR3IpJiYocXI9ZnVuY3Rpb24gJGUoSCxyZSxYKXt2YXIgd2U9LTEseGU9LTEsRmU9LTEsWmU9LTEsamU9LTEsWWU9LTE7KHJlLm1hdGNoKFBlKXx8W10pLmZvckVhY2goZnVu''@;'; + put 'put ''Y3Rpb24oUnQsWXQpe3ZhciBubj1wYXJzZUludChYW1l0KzFdLDEwKTtzd2l0Y2goUnQudG9Mb3dlckNhc2UoKS5jaGFyQXQoMCkpe2Nhc2UieSI6d2U9bm47YnJlYWs7Y2FzZSJkIjpGZT1ubjticmVhaztjYXNlImgiOlplPW5uO2JyZWFrO2Nhc2UicyI6WWU9bm47YnJlYWs7Y2FzZSJtIjpa''@;'; + put 'put ''ZT49MD9qZT1ubjp4ZT1ubn19KSxZZT49MCYmLTE9PWplJiZ4ZT49MCYmKGplPXhlLHhlPS0xKTt2YXIgTXQ9KCIiKyh3ZT49MD93ZToobmV3IERhdGUpLmdldEZ1bGxZZWFyKCkpKS5zbGljZSgtNCkrIi0iKygiMDAiKyh4ZT49MT94ZToxKSkuc2xpY2UoLTIpKyItIisoIjAwIisoRmU+PTE/''@;'; + put 'put ''RmU6MSkpLnNsaWNlKC0yKTs3PT1NdC5sZW5ndGgmJihNdD0iMCIrTXQpLDg9PU10Lmxlbmd0aCYmKE10PSIyMCIrTXQpO3ZhciB4dD0oIjAwIisoWmU+PTA/WmU6MCkpLnNsaWNlKC0yKSsiOiIrKCIwMCIrKGplPj0wP2plOjApKS5zbGljZSgtMikrIjoiKygiMDAiKyhZZT49MD9ZZTowKSku''@;'; + put 'put ''c2xpY2UoLTIpO3JldHVybi0xPT1aZSYmLTE9PWplJiYtMT09WWU/TXQ6LTE9PXdlJiYtMT09eGUmJi0xPT1GZT94dDpNdCsiVCIreHR9KDAsWXQuZGF0ZU5GLHFyLm1hdGNoKEdyKXx8W10pLGNyPTEpLFl0LmNlbGxEYXRlcz8ob2kudD0iZCIsb2kudj1kbihxcixjcikpOihvaS50PSJuIixv''@;'; + put 'put ''aS52PWZ0KGRuKHFyLGNyKSkpLCExIT09WXQuY2VsbFRleHQmJihvaS53PUYuZm9ybWF0KG9pLnosb2kudiBpbnN0YW5jZW9mIERhdGU/ZnQob2kudik6b2kudikpLFl0LmNlbGxORnx8ZGVsZXRlIG9pLnp9ZWxzZSBvaS50PSJzIixvaS52PXFyO2Vsc2Ugb2kudD0ibiIsITEhPT1ZdC5jZWxs''@;'; + put 'put ''VGV4dCYmKG9pLnc9cXIpLG9pLnY9VG47aWYoInoiPT1vaS50fHwoWXQuZGVuc2U/KENuW3p0XXx8KENuW3p0XT1bXSksQ25benRdW1BuXT1vaSk6Q25bWTAoe2M6UG4scjp6dH0pXT1vaSksYXI9eHQuY2hhckNvZGVBdChPbj1XbisxKSxEdC5lLmM8UG4mJihEdC5lLmM9UG4pLER0LmUucjx6''@;'; + put 'put ''dCYmKER0LmUucj16dCkseXI9PU1yKSsrUG47ZWxzZSBpZihQbj0wLCsrenQsWXQuc2hlZXRSb3dzJiZZdC5zaGVldFJvd3M8PXp0KXJldHVybiEwfWU6Zm9yKDtXbjx4dC5sZW5ndGg7KytXbilzd2l0Y2goeXI9eHQuY2hhckNvZGVBdChXbikpe2Nhc2UgMzQ6MzQ9PT1hciYmKGFpPSFhaSk7''@;'; + put 'put ''YnJlYWs7Y2FzZSBNcjpjYXNlIDEwOmNhc2UgMTM6aWYoIWFpJiZ6cigpKWJyZWFrIGV9cmV0dXJuIFduLU9uPjAmJnpyKCksQ25bIiFyZWYiXT1mYShEdCksQ259KHh0LFJ0KTpnZChmdW5jdGlvbiByZSh4dCxSdCl7dmFyIFl0PVJ0fHx7fSxubj1bXTtpZigheHR8fDA9PT14dC5sZW5ndGgp''@;'; + put 'put ''cmV0dXJuIG5uO2Zvcih2YXIgQ249eHQuc3BsaXQoL1tcclxuXS8pLER0PUNuLmxlbmd0aC0xO0R0Pj0wJiYwPT09Q25bRHRdLmxlbmd0aDspLS1EdDtmb3IodmFyIHp0PTEwLFBuPTAsVG49MDtUbjw9RHQ7KytUbiktMT09KFBuPUNuW1RuXS5pbmRleE9mKCIgIikpP1BuPUNuW1RuXS5sZW5n''@;'; + put 'put ''dGg6UG4rKyx6dD1NYXRoLm1heCh6dCxQbik7Zm9yKFRuPTA7VG48PUR0OysrVG4pe25uW1RuXT1bXTt2YXIgT249MDtmb3IoSChDbltUbl0uc2xpY2UoMCx6dCkudHJpbSgpLG5uLFRuLE9uLFl0KSxPbj0xO09uPD0oQ25bVG5dLmxlbmd0aC16dCkvMTArMTsrK09uKUgoQ25bVG5dLnNsaWNl''@;'; + put 'put ''KHp0KzEwKihPbi0xKSx6dCsxMCpPbikudHJpbSgpLG5uLFRuLE9uLFl0KX1yZXR1cm4gWXQuc2hlZXRSb3dzJiYobm49bm4uc2xpY2UoMCxZdC5zaGVldFJvd3MpKSxubn0oeHQsUnQpLFJ0KX1mdW5jdGlvbiBqZSh4dCxSdCl7dmFyIFl0PSIiLG5uPSJzdHJpbmciPT1SdC50eXBlP1swLDAs''@;'; + put 'put ''MCwwXTp1Qyh4dCxSdCk7c3dpdGNoKFJ0LnR5cGUpe2Nhc2UiYmFzZTY0IjpZdD1TZS5kZWNvZGUoeHQpO2JyZWFrO2Nhc2UiYmluYXJ5IjpjYXNlInN0cmluZyI6WXQ9eHQ7YnJlYWs7Y2FzZSJidWZmZXIiOll0PTY1MDAxPT1SdC5jb2RlcGFnZT94dC50b1N0cmluZygidXRmOCIpOlJ0LmNv''@;'; + put 'put ''ZGVwYWdlJiYidW5kZWZpbmVkIiE9dHlwZW9mIGNwdGFibGU/Y3B0YWJsZS51dGlscy5kZWNvZGUoUnQuY29kZXBhZ2UseHQpOnh0LnRvU3RyaW5nKCJiaW5hcnkiKTticmVhaztjYXNlImFycmF5IjpZdD15bih4dCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXpl''@;'; + put 'put ''ZCB0eXBlICIrUnQudHlwZSl9cmV0dXJuIDIzOT09bm5bMF0mJjE4Nz09bm5bMV0mJjE5MT09bm5bMl0/WXQ9VzAoWXQuc2xpY2UoMykpOiJiaW5hcnkiPT1SdC50eXBlJiYidW5kZWZpbmVkIiE9dHlwZW9mIGNwdGFibGUmJlJ0LmNvZGVwYWdlJiYoWXQ9Y3B0YWJsZS51dGlscy5kZWNvZGUo''@;'; + put 'put ''UnQuY29kZXBhZ2UsY3B0YWJsZS51dGlscy5lbmNvZGUoMjg1OTEsWXQpKSksInNvY2lhbGNhbGM6dmVyc2lvbjoiPT1ZdC5zbGljZSgwLDE5KT9VTS50b19zaGVldCgic3RyaW5nIj09UnQudHlwZT9ZdDpXMChZdCksUnQpOlplKFl0LFJ0KX1yZXR1cm57dG9fd29ya2Jvb2s6ZnVuY3Rpb24g''@;'; + put 'put ''WWUoeHQsUnQpe3JldHVybiB3MShqZSh4dCxSdCksUnQpfSx0b19zaGVldDpqZSxmcm9tX3NoZWV0OmZ1bmN0aW9uIE10KHh0KXtmb3IodmFyIG5uLFJ0PVtdLFl0PUZvKHh0WyIhcmVmIl0pLENuPUFycmF5LmlzQXJyYXkoeHQpLER0PVl0LnMucjtEdDw9WXQuZS5yOysrRHQpe2Zvcih2YXIg''@;'; + put 'put ''enQ9W10sUG49WXQucy5jO1BuPD1ZdC5lLmM7KytQbil7dmFyIFRuPVkwKHtyOkR0LGM6UG59KTtpZigobm49Q24/KHh0W0R0XXx8W10pW1BuXTp4dFtUbl0pJiZudWxsIT1ubi52KXtmb3IodmFyIE9uPShubi53fHwoeTEobm4pLG5uLncpfHwiIikuc2xpY2UoMCwxMCk7T24ubGVuZ3RoPDEw''@;'; + put 'put ''OylPbis9IiAiO3p0LnB1c2goT24rKDA9PT1Qbj8iICI6IiIpKX1lbHNlIHp0LnB1c2goIiAgICAgICAgICAiKX1SdC5wdXNoKHp0LmpvaW4oIiIpKX1yZXR1cm4gUnQuam9pbigiXG4iKX19fSgpLEcxPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gSChZcixFaSxoaSl7aWYoWXIpe0tsKFlyLFlyLmx8''@;'; + put 'put ''fDApO2Zvcih2YXIgTnI9aGkuRW51bXx8QTA7WXIubDxZci5sZW5ndGg7KXt2YXIga2k9WXIucmVhZF9zaGlmdCgyKSxOMD1OcltraV18fE5yWzY1NTM1XSx0MD1Zci5yZWFkX3NoaWZ0KDIpLGlvPVlyLmwrdDAsb2E9TjAuZiYmTjAuZihZcix0MCxoaSk7aWYoWXIubD1pbyxFaShvYSxOMCxr''@;'; + put 'put ''aSkpcmV0dXJufX19ZnVuY3Rpb24gWChZcixFaSl7aWYoIVlyKXJldHVybiBZcjt2YXIgaGk9RWl8fHt9LE5yPWhpLmRlbnNlP1tdOnt9LGtpPSJTaGVldDEiLE4wPTAsdDA9e30saW89W2tpXSxvYT1bXSwkMD17czp7cjowLGM6MH0sZTp7cjowLGM6MH19LE5hPWhpLnNoZWV0Um93c3x8MDtp''@;'; + put 'put ''ZigyPT1ZclsyXSloaS5FbnVtPUEwLEgoWXIsZnVuY3Rpb24oeDAsaDAsanIpe3N3aXRjaChqcil7Y2FzZSAwOmhpLnZlcnM9eDAseDA+PTQwOTYmJihoaS5xcHJvPSEwKTticmVhaztjYXNlIDY6JDA9eDA7YnJlYWs7Y2FzZSAxNTpjYXNlIDUxOmhpLnFwcm98fCh4MFsxXS52PXgwWzFdLnYu''@;'; + put 'put ''c2xpY2UoMSkpO2Nhc2UgMTM6Y2FzZSAxNDpjYXNlIDE2OjE0PT1qciYmMTEyPT0oMTEyJngwWzJdKSYmKDE1JngwWzJdKT4xJiYoMTUmeDBbMl0pPDE1JiYoeDBbMV0uej1oaS5kYXRlTkZ8fEYuX3RhYmxlWzE0XSxoaS5jZWxsRGF0ZXMmJih4MFsxXS50PSJkIix4MFsxXS52PUh0KHgwWzFd''@;'; + put 'put ''LnYpKSk7dmFyIEhpPWhpLmRlbnNlPyhOclt4MFswXS5yXXx8W10pW3gwWzBdLmNdOk5yW1kwKHgwWzBdKV07aWYoSGkpe0hpLnQ9eDBbMV0udCxIaS52PXgwWzFdLnYsbnVsbCE9eDBbMV0ueiYmKEhpLno9eDBbMV0ueiksbnVsbCE9eDBbMV0uZiYmKEhpLmY9eDBbMV0uZik7YnJlYWt9aGku''@;'; + put 'put ''ZGVuc2U/KE5yW3gwWzBdLnJdfHwoTnJbeDBbMF0ucl09W10pLE5yW3gwWzBdLnJdW3gwWzBdLmNdPXgwWzFdKTpOcltZMCh4MFswXSldPXgwWzFdfX0saGkpO2Vsc2V7aWYoMjYhPVlyWzJdJiYxNCE9WXJbMl0pdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgTE9UVVMgQk9GICIrWXJb''@;'; + put 'put ''Ml0pO2hpLkVudW09d2ksMTQ9PVlyWzJdJiYoaGkucXBybz0hMCxZci5sPTApLEgoWXIsZnVuY3Rpb24oeDAsaDAsanIpe3N3aXRjaChqcil7Y2FzZSAyMjp4MFsxXS52PXgwWzFdLnYuc2xpY2UoMSk7Y2FzZSAyMzpjYXNlIDI0OmNhc2UgMjU6Y2FzZSAzNzpjYXNlIDM5OmNhc2UgNDA6aWYo''@;'; + put 'put ''eDBbM10+TjAmJihOclsiIXJlZiJdPWZhKCQwKSx0MFtraV09TnIsTnI9aGkuZGVuc2U/W106e30sJDA9e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fSxpby5wdXNoKGtpPSJTaGVldCIrKChOMD14MFszXSkrMSkpKSxOYT4wJiZ4MFswXS5yPj1OYSlicmVhaztoaS5kZW5zZT8oTnJbeDBbMF0u''@;'; + put 'put ''cl18fChOclt4MFswXS5yXT1bXSksTnJbeDBbMF0ucl1beDBbMF0uY109eDBbMV0pOk5yW1kwKHgwWzBdKV09eDBbMV0sJDAuZS5jPHgwWzBdLmMmJigkMC5lLmM9eDBbMF0uYyksJDAuZS5yPHgwWzBdLnImJigkMC5lLnI9eDBbMF0ucik7YnJlYWs7Y2FzZSAyNzp4MFsxNGUzXSYmKG9hW3gw''@;'; + put 'put ''WzE0ZTNdWzBdXT14MFsxNGUzXVsxXSl9fSxoaSl9aWYoTnJbIiFyZWYiXT1mYSgkMCksdDBba2ldPU5yLCFvYS5sZW5ndGgpcmV0dXJue1NoZWV0TmFtZXM6aW8sU2hlZXRzOnQwfTtmb3IodmFyIGpvPXt9LHdhPVtdLGFvPTA7YW88b2EubGVuZ3RoOysrYW8pdDBbaW9bYW9dXSYmKHdhLnB1''@;'; + put 'put ''c2gob2FbYW9dKSxqb1tvYVthb11dPXQwW2lvW2FvXV0pO3JldHVybntTaGVldE5hbWVzOndhLFNoZWV0czpqb319ZnVuY3Rpb24gTXQoWXIsRWksaGkpe3ZhciBOcj1be2M6MCxyOjB9LHt0OiJuIix2OjB9LDBdO3JldHVybiBoaS5xcHJvJiYyMDc2OCE9aGkudmVycz8oTnJbMF0uYz1Zci5y''@;'; + put 'put ''ZWFkX3NoaWZ0KDEpLFlyLmwrKyxOclswXS5yPVlyLnJlYWRfc2hpZnQoMiksWXIubCs9Mik6KE5yWzJdPVlyLnJlYWRfc2hpZnQoMSksTnJbMF0uYz1Zci5yZWFkX3NoaWZ0KDIpLE5yWzBdLnI9WXIucmVhZF9zaGlmdCgyKSksTnJ9ZnVuY3Rpb24geHQoWXIsRWksaGkpe3ZhciBOcj1Zci5s''@;'; + put 'put ''K0VpLGtpPU10KFlyLDAsaGkpO2lmKGtpWzFdLnQ9InMiLDIwNzY4PT1oaS52ZXJzKXtZci5sKys7dmFyIE4wPVlyLnJlYWRfc2hpZnQoMSk7cmV0dXJuIGtpWzFdLnY9WXIucmVhZF9zaGlmdChOMCwidXRmOCIpLGtpfXJldHVybiBoaS5xcHJvJiZZci5sKyssa2lbMV0udj1Zci5yZWFkX3No''@;'; + put 'put ''aWZ0KE5yLVlyLmwsImNzdHIiKSxraX1mdW5jdGlvbiBSdChZcixFaSxoaSl7dmFyIE5yPVJpKDcraGkubGVuZ3RoKTtOci53cml0ZV9zaGlmdCgxLDI1NSksTnIud3JpdGVfc2hpZnQoMixFaSksTnIud3JpdGVfc2hpZnQoMixZciksTnIud3JpdGVfc2hpZnQoMSwzOSk7Zm9yKHZhciBraT0w''@;'; + put 'put ''O2tpPE5yLmxlbmd0aDsrK2tpKXt2YXIgTjA9aGkuY2hhckNvZGVBdChraSk7TnIud3JpdGVfc2hpZnQoMSxOMD49MTI4Pzk1Ok4wKX1yZXR1cm4gTnIud3JpdGVfc2hpZnQoMSwwKSxOcn1mdW5jdGlvbiBubihZcixFaSxoaSl7dmFyIE5yPVJpKDcpO3JldHVybiBOci53cml0ZV9zaGlmdCgx''@;'; + put 'put ''LDI1NSksTnIud3JpdGVfc2hpZnQoMixFaSksTnIud3JpdGVfc2hpZnQoMixZciksTnIud3JpdGVfc2hpZnQoMixoaSwiaSIpLE5yfWZ1bmN0aW9uIER0KFlyLEVpLGhpKXt2YXIgTnI9UmkoMTMpO3JldHVybiBOci53cml0ZV9zaGlmdCgxLDI1NSksTnIud3JpdGVfc2hpZnQoMixFaSksTnIu''@;'; + put 'put ''d3JpdGVfc2hpZnQoMixZciksTnIud3JpdGVfc2hpZnQoOCxoaSwiZiIpLE5yfWZ1bmN0aW9uIFBuKFlyLEVpLGhpKXt2YXIgTnI9MzI3NjgmRWk7cmV0dXJuIEVpPShOcj9ZcjowKSsoKEVpJj0tMzI3NjkpPj04MTkyP0VpLTE2Mzg0OkVpKSwoTnI/IiI6IiQiKSsoaGk/X2EoRWkpOlhhKEVp''@;'; + put 'put ''KSl9dmFyIE9uPXs1MTpbIkZBTFNFIiwwXSw1MjpbIlRSVUUiLDBdLDcwOlsiTEVOIiwxXSw4MDpbIlNVTSIsNjldLDgxOlsiQVZFUkFHRUEiLDY5XSw4MjpbIkNPVU5UQSIsNjldLDgzOlsiTUlOQSIsNjldLDg0OlsiTUFYQSIsNjldLDExMTpbIlQiLDFdfSxXbj1bIiIsIiIsIiIsIiIsIiIs''@;'; + put 'put ''IiIsIiIsIiIsIiIsIisiLCItIiwiKiIsIi8iLCJeIiwiPSIsIjw+IiwiPD0iLCI+PSIsIjwiLCI+IiwiIiwiIiwiIiwiIiwiJiIsIiIsIiIsIiIsIiIsIiIsIiIsIiJdO2Z1bmN0aW9uIGFpKFlyKXt2YXIgRWk9W3tjOjAscjowfSx7dDoibiIsdjowfSwwXTtyZXR1cm4gRWlbMF0ucj1Zci5y''@;'; + put 'put ''ZWFkX3NoaWZ0KDIpLEVpWzNdPVlyW1lyLmwrK10sRWlbMF0uYz1ZcltZci5sKytdLEVpfWZ1bmN0aW9uIGFyKFlyLEVpLGhpLE5yKXt2YXIga2k9UmkoNitOci5sZW5ndGgpO2tpLndyaXRlX3NoaWZ0KDIsWXIpLGtpLndyaXRlX3NoaWZ0KDEsaGkpLGtpLndyaXRlX3NoaWZ0KDEsRWkpLGtp''@;'; + put 'put ''LndyaXRlX3NoaWZ0KDEsMzkpO2Zvcih2YXIgTjA9MDtOMDxOci5sZW5ndGg7KytOMCl7dmFyIHQwPU5yLmNoYXJDb2RlQXQoTjApO2tpLndyaXRlX3NoaWZ0KDEsdDA+PTEyOD85NTp0MCl9cmV0dXJuIGtpLndyaXRlX3NoaWZ0KDEsMCksa2l9ZnVuY3Rpb24genIoWXIsRWkpe3ZhciBoaT1h''@;'; + put 'put ''aShZciksTnI9WXIucmVhZF9zaGlmdCg0KSxraT1Zci5yZWFkX3NoaWZ0KDQpLE4wPVlyLnJlYWRfc2hpZnQoMik7aWYoNjU1MzU9PU4wKXJldHVybiAwPT09TnImJjMyMjEyMjU0NzI9PT1raT8oaGlbMV0udD0iZSIsaGlbMV0udj0xNSk6MD09PU5yJiYzNDg5NjYwOTI4PT09a2k/KGhpWzFd''@;'; + put 'put ''LnQ9ImUiLGhpWzFdLnY9NDIpOmhpWzFdLnY9MCxoaTt2YXIgdDA9MzI3NjgmTjA7cmV0dXJuIE4wPSgzMjc2NyZOMCktMTY0NDYsaGlbMV0udj0oMS0yKnQwKSooa2kqTWF0aC5wb3coMixOMCszMikrTnIqTWF0aC5wb3coMixOMCkpLGhpfWZ1bmN0aW9uIHFyKFlyLEVpLGhpLE5yKXt2YXIg''@;'; + put 'put ''a2k9UmkoMTQpO2lmKGtpLndyaXRlX3NoaWZ0KDIsWXIpLGtpLndyaXRlX3NoaWZ0KDEsaGkpLGtpLndyaXRlX3NoaWZ0KDEsRWkpLDA9PU5yKXJldHVybiBraS53cml0ZV9zaGlmdCg0LDApLGtpLndyaXRlX3NoaWZ0KDQsMCksa2kud3JpdGVfc2hpZnQoMiw2NTUzNSksa2k7dmFyIE4wPTAs''@;'; + put 'put ''dDA9MCxvYT0wO3JldHVybiBOcjwwJiYoTjA9MSxOcj0tTnIpLHQwPTB8TWF0aC5sb2cyKE5yKSwwPT0oMjE0NzQ4MzY0OCYob2E9KE5yLz1NYXRoLnBvdygyLHQwLTMxKSk+Pj4wKSkmJigrK3QwLG9hPShOci89Mik+Pj4wKSxOci09b2Esb2F8PTIxNDc0ODM2NDgsb2E+Pj49MCxOcio9TWF0''@;'; + put 'put ''aC5wb3coMiwzMiksa2kud3JpdGVfc2hpZnQoNCxOcj4+PjApLGtpLndyaXRlX3NoaWZ0KDQsb2EpLGtpLndyaXRlX3NoaWZ0KDIsdDArPTE2MzgzKyhOMD8zMjc2ODowKSksa2l9ZnVuY3Rpb24gZGkoWXIsRWkpe3ZhciBoaT1haShZciksTnI9WXIucmVhZF9zaGlmdCg4LCJmIik7cmV0dXJu''@;'; + put 'put ''IGhpWzFdLnY9TnIsaGl9ZnVuY3Rpb24gdG8oWXIsRWkpe3ZhciBoaT1SaSg1K1lyLmxlbmd0aCk7aGkud3JpdGVfc2hpZnQoMiwxNGUzKSxoaS53cml0ZV9zaGlmdCgyLEVpKTtmb3IodmFyIE5yPTA7TnI8WXIubGVuZ3RoOysrTnIpe3ZhciBraT1Zci5jaGFyQ29kZUF0KE5yKTtoaVtoaS5s''@;'; + put 'put ''KytdPWtpPjEyNz85NTpraX1yZXR1cm4gaGlbaGkubCsrXT0wLGhpfXZhciBBMD17MDp7bjoiQk9GIixmOmMxfSwxOntuOiJFT0YifSwyOntuOiJDQUxDTU9ERSJ9LDM6e246IkNBTENPUkRFUiJ9LDQ6e246IlNQTElUIn0sNTp7bjoiU1lOQyJ9LDY6e246IlJBTkdFIixmOmZ1bmN0aW9uIGpl''@;'; + put 'put ''KFlyKXt2YXIgRWk9e3M6e2M6MCxyOjB9LGU6e2M6MCxyOjB9fTtyZXR1cm4gRWkucy5jPVlyLnJlYWRfc2hpZnQoMiksRWkucy5yPVlyLnJlYWRfc2hpZnQoMiksRWkuZS5jPVlyLnJlYWRfc2hpZnQoMiksRWkuZS5yPVlyLnJlYWRfc2hpZnQoMiksNjU1MzU9PUVpLnMuYyYmKEVpLnMuYz1F''@;'; + put 'put ''aS5lLmM9RWkucy5yPUVpLmUucj0wKSxFaX19LDc6e246IldJTkRPVzEifSw4OntuOiJDT0xXMSJ9LDk6e246IldJTlRXTyJ9LDEwOntuOiJDT0xXMiJ9LDExOntuOiJOQU1FIn0sMTI6e246IkJMQU5LIn0sMTM6e246IklOVEVHRVIiLGY6ZnVuY3Rpb24gWXQoWXIsRWksaGkpe3ZhciBOcj1N''@;'; + put 'put ''dChZciwwLGhpKTtyZXR1cm4gTnJbMV0udj1Zci5yZWFkX3NoaWZ0KDIsImkiKSxOcn19LDE0OntuOiJOVU1CRVIiLGY6ZnVuY3Rpb24gQ24oWXIsRWksaGkpe3ZhciBOcj1NdChZciwwLGhpKTtyZXR1cm4gTnJbMV0udj1Zci5yZWFkX3NoaWZ0KDgsImYiKSxOcn19LDE1OntuOiJMQUJFTCIs''@;'; + put 'put ''Zjp4dH0sMTY6e246IkZPUk1VTEEiLGY6ZnVuY3Rpb24genQoWXIsRWksaGkpe3ZhciBOcj1Zci5sK0VpLGtpPU10KFlyLDAsaGkpO2lmKGtpWzFdLnY9WXIucmVhZF9zaGlmdCg4LCJmIiksaGkucXBybylZci5sPU5yO2Vsc2V7dmFyIE4wPVlyLnJlYWRfc2hpZnQoMik7KGZ1bmN0aW9uIE1y''@;'; + put 'put ''KFlyLEVpKXtLbChZciwwKTtmb3IodmFyIGhpPVtdLE5yPTAsa2k9IiIsTjA9IiI7WXIubDxZci5sZW5ndGg7KXt2YXIgdDA9WXJbWXIubCsrXTtzd2l0Y2godDApe2Nhc2UgMDpoaS5wdXNoKFlyLnJlYWRfc2hpZnQoOCwiZiIpKTticmVhaztjYXNlIDE6TjA9UG4oRWlbMF0uYyxZci5yZWFk''@;'; + put 'put ''X3NoaWZ0KDIpLCEwKSxraT1QbihFaVswXS5yLFlyLnJlYWRfc2hpZnQoMiksITEpLGhpLnB1c2goTjAra2kpO2JyZWFrO2Nhc2UgMjp2YXIgaW89UG4oRWlbMF0uYyxZci5yZWFkX3NoaWZ0KDIpLCEwKSxvYT1QbihFaVswXS5yLFlyLnJlYWRfc2hpZnQoMiksITEpO04wPVBuKEVpWzBdLmMs''@;'; + put 'put ''WXIucmVhZF9zaGlmdCgyKSwhMCksa2k9UG4oRWlbMF0ucixZci5yZWFkX3NoaWZ0KDIpLCExKSxoaS5wdXNoKGlvK29hKyI6IitOMCtraSk7YnJlYWs7Y2FzZSAzOmlmKFlyLmw8WXIubGVuZ3RoKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIldLMSBwcmVtYXR1cmUgZm9ybXVsYSBlbmQi''@;'; + put 'put ''KTticmVhaztjYXNlIDQ6aGkucHVzaCgiKCIraGkucG9wKCkrIikiKTticmVhaztjYXNlIDU6aGkucHVzaChZci5yZWFkX3NoaWZ0KDIpKTticmVhaztjYXNlIDY6Zm9yKHZhciAkMD0iIjt0MD1ZcltZci5sKytdOykkMCs9U3RyaW5nLmZyb21DaGFyQ29kZSh0MCk7aGkucHVzaCgnIicrJDAu''@;'; + put 'put ''cmVwbGFjZSgvIi9nLCciIicpKyciJyk7YnJlYWs7Y2FzZSA4OmhpLnB1c2goIi0iK2hpLnBvcCgpKTticmVhaztjYXNlIDIzOmhpLnB1c2goIisiK2hpLnBvcCgpKTticmVhaztjYXNlIDIyOmhpLnB1c2goIk5PVCgiK2hpLnBvcCgpKyIpIik7YnJlYWs7Y2FzZSAyMDpjYXNlIDIxOnZhciBO''@;'; + put 'put ''YT1oaS5wb3AoKSxqbz1oaS5wb3AoKTtoaS5wdXNoKFsiQU5EIiwiT1IiXVt0MC0yMF0rIigiK2pvKyIsIitOYSsiKSIpO2JyZWFrO2RlZmF1bHQ6aWYodDA8MzImJlduW3QwXSlOYT1oaS5wb3AoKSxqbz1oaS5wb3AoKSxoaS5wdXNoKGpvK1duW3QwXStOYSk7ZWxzZXtpZighT25bdDBdKXJl''@;'; + put 'put ''dHVybiB0MDw9Nz9jb25zb2xlLmVycm9yKCJXSzEgaW52YWxpZCBvcGNvZGUgIit0MC50b1N0cmluZygxNikpOnQwPD0yND9jb25zb2xlLmVycm9yKCJXSzEgdW5zdXBwb3J0ZWQgb3AgIit0MC50b1N0cmluZygxNikpOnQwPD0zMD9jb25zb2xlLmVycm9yKCJXSzEgaW52YWxpZCBvcGNvZGUg''@;'; + put 'put ''Iit0MC50b1N0cmluZygxNikpOnQwPD0xMTU/Y29uc29sZS5lcnJvcigiV0sxIHVuc3VwcG9ydGVkIGZ1bmN0aW9uIG9wY29kZSAiK3QwLnRvU3RyaW5nKDE2KSk6Y29uc29sZS5lcnJvcigiV0sxIHVucmVjb2duaXplZCBvcGNvZGUgIit0MC50b1N0cmluZygxNikpO2lmKDY5PT0oTnI9T25b''@;'; + put 'put ''dDBdWzFdKSYmKE5yPVlyW1lyLmwrK10pLE5yPmhpLmxlbmd0aClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJXSzEgYmFkIGZvcm11bGEgcGFyc2UgMHgiK3QwLnRvU3RyaW5nKDE2KSsiOnwiK2hpLmpvaW4oInwiKSsifCIpO3ZhciB3YT1oaS5zbGljZSgtTnIpO2hpLmxlbmd0aC09TnIs''@;'; + put 'put ''aGkucHVzaChPblt0MF1bMF0rIigiK3dhLmpvaW4oIiwiKSsiKSIpfX19MT09aGkubGVuZ3RoP0VpWzFdLmY9IiIraGlbMF06Y29uc29sZS5lcnJvcigiV0sxIGJhZCBmb3JtdWxhIHBhcnNlIHwiK2hpLmpvaW4oInwiKSsifCIpfSkoWXIuc2xpY2UoWXIubCxZci5sK04wKSxraSksWXIubCs9''@;'; + put 'put ''TjB9cmV0dXJuIGtpfX0sMjQ6e246IlRBQkxFIn0sMjU6e246Ik9SQU5HRSJ9LDI2OntuOiJQUkFOR0UifSwyNzp7bjoiU1JBTkdFIn0sMjg6e246IkZSQU5HRSJ9LDI5OntuOiJLUkFOR0UxIn0sMzI6e246IkhSQU5HRSJ9LDM1OntuOiJLUkFOR0UyIn0sMzY6e246IlBST1RFQyJ9LDM3Ontu''@;'; + put 'put ''OiJGT09URVIifSwzODp7bjoiSEVBREVSIn0sMzk6e246IlNFVFVQIn0sNDA6e246Ik1BUkdJTlMifSw0MTp7bjoiTEFCRUxGTVQifSw0Mjp7bjoiVElUTEVTIn0sNDM6e246IlNIRUVUSlMifSw0NTp7bjoiR1JBUEgifSw0Njp7bjoiTkdSQVBIIn0sNDc6e246IkNBTENDT1VOVCJ9LDQ4Ontu''@;'; + put 'put ''OiJVTkZPUk1BVFRFRCJ9LDQ5OntuOiJDVVJTT1JXMTIifSw1MDp7bjoiV0lORE9XIn0sNTE6e246IlNUUklORyIsZjp4dH0sNTU6e246IlBBU1NXT1JEIn0sNTY6e246IkxPQ0tFRCJ9LDYwOntuOiJRVUVSWSJ9LDYxOntuOiJRVUVSWU5BTUUifSw2Mjp7bjoiUFJJTlQifSw2Mzp7bjoiUFJJ''@;'; + put 'put ''TlROQU1FIn0sNjQ6e246IkdSQVBIMiJ9LDY1OntuOiJHUkFQSE5BTUUifSw2Njp7bjoiWk9PTSJ9LDY3OntuOiJTWU1TUExJVCJ9LDY4OntuOiJOU1JPV1MifSw2OTp7bjoiTlNDT0xTIn0sNzA6e246IlJVTEVSIn0sNzE6e246Ik5OQU1FIn0sNzI6e246IkFDT01NIn0sNzM6e246IkFNQUNS''@;'; + put 'put ''TyJ9LDc0OntuOiJQQVJTRSJ9LDEwMjp7bjoiUFJBTkdFUz8/In0sMTAzOntuOiJSUkFOR0VTPz8ifSwxMDQ6e246IkZOQU1FPz8ifSwxMDU6e246Ik1SQU5HRVM/PyJ9LDY1NTM1OntuOiIifX0sd2k9ezA6e246IkJPRiJ9LDE6e246IkVPRiJ9LDI6e246IlBBU1NXT1JEIn0sMzp7bjoiQ0FM''@;'; + put 'put ''Q1NFVCJ9LDQ6e246IldJTkRPV1NFVCJ9LDU6e246IlNIRUVUQ0VMTFBUUiJ9LDY6e246IlNIRUVUTEFZT1VUIn0sNzp7bjoiQ09MVU1OV0lEVEgifSw4OntuOiJISURERU5DT0xVTU4ifSw5OntuOiJVU0VSUkFOR0UifSwxMDp7bjoiU1lTVEVNUkFOR0UifSwxMTp7bjoiWkVST0ZPUkNFIn0s''@;'; + put 'put ''MTI6e246IlNPUlRLRVlESVIifSwxMzp7bjoiRklMRVNFQUwifSwxNDp7bjoiREFUQUZJTExOVU1TIn0sMTU6e246IlBSSU5UTUFJTiJ9LDE2OntuOiJQUklOVFNUUklORyJ9LDE3OntuOiJHUkFQSE1BSU4ifSwxODp7bjoiR1JBUEhTVFJJTkcifSwxOTp7bjoiPz8ifSwyMDp7bjoiRVJSQ0VM''@;'; + put 'put ''TCJ9LDIxOntuOiJOQUNFTEwifSwyMjp7bjoiTEFCRUwxNiIsZjpmdW5jdGlvbiB5cihZcixFaSl7dmFyIGhpPWFpKFlyKTtyZXR1cm4gaGlbMV0udD0icyIsaGlbMV0udj1Zci5yZWFkX3NoaWZ0KEVpLTQsImNzdHIiKSxoaX19LDIzOntuOiJOVU1CRVIxNyIsZjp6cn0sMjQ6e246Ik5VTUJF''@;'; + put 'put ''UjE4IixmOmZ1bmN0aW9uIEdyKFlyLEVpKXt2YXIgaGk9YWkoWXIpO2hpWzFdLnY9WXIucmVhZF9zaGlmdCgyKTt2YXIgTnI9aGlbMV0udj4+MTtpZigxJmhpWzFdLnYpc3dpdGNoKDcmTnIpe2Nhc2UgMDpOcj01ZTMqKE5yPj4zKTticmVhaztjYXNlIDE6TnI9NTAwKihOcj4+Myk7YnJlYWs7''@;'; + put 'put ''Y2FzZSAyOk5yPShOcj4+MykvMjA7YnJlYWs7Y2FzZSAzOk5yPShOcj4+MykvMjAwO2JyZWFrO2Nhc2UgNDpOcj0oTnI+PjMpLzJlMzticmVhaztjYXNlIDU6TnI9KE5yPj4zKS8yZTQ7YnJlYWs7Y2FzZSA2Ok5yPShOcj4+MykvMTY7YnJlYWs7Y2FzZSA3Ok5yPShOcj4+MykvNjR9cmV0dXJu''@;'; + put 'put ''IGhpWzFdLnY9TnIsaGl9fSwyNTp7bjoiRk9STVVMQTE5IixmOmZ1bmN0aW9uIG9pKFlyLEVpKXt2YXIgaGk9enIoWXIpO3JldHVybiBZci5sKz1FaS0xNCxoaX19LDI2OntuOiJGT1JNVUxBMUEifSwyNzp7bjoiWEZPUk1BVCIsZjpmdW5jdGlvbiBVaShZcixFaSl7Zm9yKHZhciBoaT17fSxO''@;'; + put 'put ''cj1Zci5sK0VpO1lyLmw8TnI7KXt2YXIga2k9WXIucmVhZF9zaGlmdCgyKTtpZigxNGUzPT1raSl7Zm9yKGhpW2tpXT1bMCwiIl0saGlba2ldWzBdPVlyLnJlYWRfc2hpZnQoMik7WXJbWXIubF07KWhpW2tpXVsxXSs9U3RyaW5nLmZyb21DaGFyQ29kZShZcltZci5sXSksWXIubCsrO1lyLmwr''@;'; + put 'put ''K319cmV0dXJuIGhpfX0sMjg6e246IkRUTEFCRUxNSVNDIn0sMjk6e246IkRUTEFCRUxDRUxMIn0sMzA6e246IkdSQVBIV0lORE9XIn0sMzE6e246IkNQQSJ9LDMyOntuOiJMUExBVVRPIn0sMzM6e246IlFVRVJZIn0sMzQ6e246IkhJRERFTlNIRUVUIn0sMzU6e246Ij8/In0sMzc6e246Ik5V''@;'; + put 'put ''TUJFUjI1IixmOmZ1bmN0aW9uIGNyKFlyLEVpKXt2YXIgaGk9YWkoWXIpLE5yPVlyLnJlYWRfc2hpZnQoNCk7cmV0dXJuIGhpWzFdLnY9TnI+PjYsaGl9fSwzODp7bjoiPz8ifSwzOTp7bjoiTlVNQkVSMjciLGY6ZGl9LDQwOntuOiJGT1JNVUxBMjgiLGY6ZnVuY3Rpb24gdjAoWXIsRWkpe3Zh''@;'; + put 'put ''ciBoaT1kaShZcik7cmV0dXJuIFlyLmwrPUVpLTEwLGhpfX0sMTQyOntuOiI/PyJ9LDE0Nzp7bjoiPz8ifSwxNTA6e246Ij8/In0sMTUxOntuOiI/PyJ9LDE1Mjp7bjoiPz8ifSwxNTM6e246Ij8/In0sMTU0OntuOiI/PyJ9LDE1NTp7bjoiPz8ifSwxNTY6e246Ij8/In0sMTYzOntuOiI/PyJ9''@;'; + put 'put ''LDE3NDp7bjoiPz8ifSwxNzU6e246Ij8/In0sMTc2OntuOiI/PyJ9LDE3Nzp7bjoiPz8ifSwxODQ6e246Ij8/In0sMTg1OntuOiI/PyJ9LDE4Njp7bjoiPz8ifSwxODc6e246Ij8/In0sMTg4OntuOiI/PyJ9LDE5NTp7bjoiPz8ifSwyMDE6e246Ij8/In0sMjA1OntuOiI/PyJ9LDIwNjp7bjoi''@;'; + put 'put ''Pz8ifSwyMDc6e246Ij8/In0sMjA4OntuOiI/PyJ9LDI1Njp7bjoiPz8ifSwyNTk6e246Ij8/In0sMjYwOntuOiI/PyJ9LDI2MTp7bjoiPz8ifSwyNjI6e246Ij8/In0sMjYzOntuOiI/PyJ9LDI2NTp7bjoiPz8ifSwyNjY6e246Ij8/In0sMjY3OntuOiI/PyJ9LDI2ODp7bjoiPz8ifSwyNzA6''@;'; + put 'put ''e246Ij8/In0sMjcxOntuOiI/PyJ9LDM4NDp7bjoiPz8ifSwzODk6e246Ij8/In0sMzkwOntuOiI/PyJ9LDM5Mzp7bjoiPz8ifSwzOTY6e246Ij8/In0sNTEyOntuOiI/PyJ9LDUxNDp7bjoiPz8ifSw1MTM6e246Ij8/In0sNTE2OntuOiI/PyJ9LDUxNzp7bjoiPz8ifSw2NDA6e246Ij8/In0s''@;'; + put 'put ''NjQxOntuOiI/PyJ9LDY0Mjp7bjoiPz8ifSw2NDM6e246Ij8/In0sNjQ0OntuOiI/PyJ9LDY0NTp7bjoiPz8ifSw2NDY6e246Ij8/In0sNjQ3OntuOiI/PyJ9LDY0ODp7bjoiPz8ifSw2NTg6e246Ij8/In0sNjU5OntuOiI/PyJ9LDY2MDp7bjoiPz8ifSw2NjE6e246Ij8/In0sNjYyOntuOiI/''@;'; + put 'put ''PyJ9LDY2NTp7bjoiPz8ifSw2NjY6e246Ij8/In0sNzY4OntuOiI/PyJ9LDc3Mjp7bjoiPz8ifSwxNjAwOntuOiI/PyJ9LDE2MDI6e246Ij8/In0sMTc5Mzp7bjoiPz8ifSwxNzk0OntuOiI/PyJ9LDE3OTU6e246Ij8/In0sMTc5Njp7bjoiPz8ifSwxOTIwOntuOiI/PyJ9LDIwNDg6e246Ij8/''@;'; + put 'put ''In0sMjA0OTp7bjoiPz8ifSwyMDUyOntuOiI/PyJ9LDI2ODg6e246Ij8/In0sMTA5OTg6e246Ij8/In0sMTI4NDk6e246Ij8/In0sMjgyMzM6e246Ij8/In0sMjg0ODQ6e246Ij8/In0sNjU1MzU6e246IiJ9fTtyZXR1cm57c2hlZXRfdG9fd2sxOmZ1bmN0aW9uIHdlKFlyLEVpKXt2YXIgaGk9''@;'; + put 'put ''RWl8fHt9O2lmKCtoaS5jb2RlcGFnZT49MCYmZWUoK2hpLmNvZGVwYWdlKSwic3RyaW5nIj09aGkudHlwZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBXSzEgdG8gSlMgc3RyaW5nIik7dmFyIE5yPVEyKCksa2k9Rm8oWXJbIiFyZWYiXSksTjA9QXJyYXkuaXNBcnJheShZciksdDA9''@;'; + put 'put ''W107czAoTnIsMCxmdW5jdGlvbiBGZShZcil7dmFyIEVpPVJpKDIpO3JldHVybiBFaS53cml0ZV9zaGlmdCgyLFlyKSxFaX0oMTAzMCkpLHMwKE5yLDYsZnVuY3Rpb24gWWUoWXIpe3ZhciBFaT1SaSg4KTtyZXR1cm4gRWkud3JpdGVfc2hpZnQoMixZci5zLmMpLEVpLndyaXRlX3NoaWZ0KDIs''@;'; + put 'put ''WXIucy5yKSxFaS53cml0ZV9zaGlmdCgyLFlyLmUuYyksRWkud3JpdGVfc2hpZnQoMixZci5lLnIpLEVpfShraSkpO2Zvcih2YXIgaW89a2kucy5yO2lvPD1raS5lLnI7Kytpbylmb3IodmFyIG9hPVhhKGlvKSwkMD1raS5zLmM7JDA8PWtpLmUuYzsrKyQwKXtpbz09PWtpLnMuciYmKHQwWyQw''@;'; + put 'put ''XT1fYSgkMCkpO3ZhciBqbz1OMD8oWXJbaW9dfHxbXSlbJDBdOllyW3QwWyQwXStvYV07am8mJiJ6IiE9am8udCYmKCJuIj09am8udD8oMHxqby52KT09am8udiYmam8udj49LTMyNzY4JiZqby52PD0zMjc2Nz9zMChOciwxMyxubihpbywkMCxqby52KSk6czAoTnIsMTQsRHQoaW8sJDAsam8u''@;'; + put 'put ''dikpOnMwKE5yLDE1LFJ0KGlvLCQwLHkxKGpvKS5zbGljZSgwLDIzOSkpKSl9cmV0dXJuIHMwKE5yLDEpLE5yLmVuZCgpfSxib29rX3RvX3drMzpmdW5jdGlvbiB4ZShZcixFaSl7dmFyIGhpPUVpfHx7fTtpZigraGkuY29kZXBhZ2U+PTAmJmVlKCtoaS5jb2RlcGFnZSksInN0cmluZyI9PWhp''@;'; + put 'put ''LnR5cGUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgd3JpdGUgV0szIHRvIEpTIHN0cmluZyIpO3ZhciBOcj1RMigpO3MwKE5yLDAsZnVuY3Rpb24gWmUoWXIpe3ZhciBFaT1SaSgyNik7RWkud3JpdGVfc2hpZnQoMiw0MDk2KSxFaS53cml0ZV9zaGlmdCgyLDQpLEVpLndyaXRlX3NoaWZ0KDQs''@;'; + put 'put ''MCk7Zm9yKHZhciBoaT0wLE5yPTAsa2k9MCxOMD0wO04wPFlyLlNoZWV0TmFtZXMubGVuZ3RoOysrTjApe3ZhciBpbz1Zci5TaGVldHNbWXIuU2hlZXROYW1lc1tOMF1dO2lmKGlvJiZpb1siIXJlZiJdKXsrK2tpO3ZhciBvYT12cyhpb1siIXJlZiJdKTtoaTxvYS5lLnImJihoaT1vYS5lLnIp''@;'; + put 'put ''LE5yPG9hLmUuYyYmKE5yPW9hLmUuYyl9fXJldHVybiBFaS53cml0ZV9zaGlmdCgyLGhpKSxFaS53cml0ZV9zaGlmdCgxLGtpKSxFaS53cml0ZV9zaGlmdCgxLE5yKSxFaS53cml0ZV9zaGlmdCgyLDApLEVpLndyaXRlX3NoaWZ0KDIsMCksRWkud3JpdGVfc2hpZnQoMSwxKSxFaS53cml0ZV9z''@;'; + put 'put ''aGlmdCgxLDIpLEVpLndyaXRlX3NoaWZ0KDQsMCksRWkud3JpdGVfc2hpZnQoNCwwKSxFaX0oWXIpKTtmb3IodmFyIGtpPTAsTjA9MDtraTxZci5TaGVldE5hbWVzLmxlbmd0aDsrK2tpKShZci5TaGVldHNbWXIuU2hlZXROYW1lc1traV1dfHx7fSlbIiFyZWYiXSYmczAoTnIsMjcsdG8oWXIu''@;'; + put 'put ''U2hlZXROYW1lc1traV0sTjArKykpO3ZhciB0MD0wO2ZvcihraT0wO2tpPFlyLlNoZWV0TmFtZXMubGVuZ3RoOysra2kpe3ZhciBpbz1Zci5TaGVldHNbWXIuU2hlZXROYW1lc1traV1dO2lmKGlvJiZpb1siIXJlZiJdKXtmb3IodmFyIG9hPUZvKGlvWyIhcmVmIl0pLCQwPUFycmF5LmlzQXJy''@;'; + put 'put ''YXkoaW8pLE5hPVtdLGpvPW9hLnMucjtqbzw9b2EuZS5yOysram8pZm9yKHZhciB3YT1YYShqbyksYW89b2Eucy5jO2FvPD1vYS5lLmM7Kythbyl7am89PT1vYS5zLnImJihOYVthb109X2EoYW8pKTt2YXIgaDA9JDA/KGlvW2pvXXx8W10pW2FvXTppb1tOYVthb10rd2FdO2gwJiYieiIhPWgw''@;'; + put 'put ''LnQmJigibiI9PWgwLnQ/czAoTnIsMjMscXIoam8sYW8sdDAsaDAudikpOnMwKE5yLDIyLGFyKGpvLGFvLHQwLHkxKGgwKS5zbGljZSgwLDIzOSkpKSl9Kyt0MH19cmV0dXJuIHMwKE5yLDEpLE5yLmVuZCgpfSx0b193b3JrYm9vazpmdW5jdGlvbiByZShZcixFaSl7c3dpdGNoKEVpLnR5cGUp''@;'; + put 'put ''e2Nhc2UiYmFzZTY0IjpyZXR1cm4gWCh6KFNlLmRlY29kZShZcikpLEVpKTtjYXNlImJpbmFyeSI6cmV0dXJuIFgoeihZciksRWkpO2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpyZXR1cm4gWChZcixFaSl9dGhyb3ciVW5zdXBwb3J0ZWQgdHlwZSAiK0VpLnR5cGV9fX0oKSxXOD1mdW5jdGlv''@;'; + put 'put ''bigpe3ZhciBIPVFpKCJ0IikscmU9UWkoInJQciIpO2Z1bmN0aW9uIFgoRmUpe3ZhciBaZT1GZS5tYXRjaChIKTtpZighWmUpcmV0dXJue3Q6InMiLHY6IiJ9O3ZhciBqZT17dDoicyIsdjpncihaZVsxXSl9LFllPUZlLm1hdGNoKHJlKTtyZXR1cm4gWWUmJihqZS5zPWZ1bmN0aW9uIEVoKEgp''@;'; + put 'put ''e3ZhciByZT17fSxYPUgubWF0Y2goR3QpLHdlPTAseGU9ITE7aWYoWClmb3IoO3dlIT1YLmxlbmd0aDsrK3dlKXt2YXIgRmU9ZW4oWFt3ZV0pO3N3aXRjaChGZVswXS5yZXBsYWNlKC9cdyo6L2csIiIpKXtjYXNlIjxjb25kZW5zZSI6Y2FzZSI8ZXh0ZW5kIjpicmVhaztjYXNlIjxzaGFkb3ci''@;'; + put 'put ''OmlmKCFGZS52YWwpYnJlYWs7Y2FzZSI8c2hhZG93PiI6Y2FzZSI8c2hhZG93Lz4iOnJlLnNoYWRvdz0xO2JyZWFrO2Nhc2UiPC9zaGFkb3c+IjpicmVhaztjYXNlIjxjaGFyc2V0IjppZigiMSI9PUZlLnZhbClicmVhaztyZS5jcD1ZW3BhcnNlSW50KEZlLnZhbCwxMCldO2JyZWFrO2Nhc2Ui''@;'; + put 'put ''PG91dGxpbmUiOmlmKCFGZS52YWwpYnJlYWs7Y2FzZSI8b3V0bGluZT4iOmNhc2UiPG91dGxpbmUvPiI6cmUub3V0bGluZT0xO2JyZWFrO2Nhc2UiPC9vdXRsaW5lPiI6YnJlYWs7Y2FzZSI8ckZvbnQiOnJlLm5hbWU9RmUudmFsO2JyZWFrO2Nhc2UiPHN6IjpyZS5zej1GZS52YWw7YnJlYWs7''@;'; + put 'put ''Y2FzZSI8c3RyaWtlIjppZighRmUudmFsKWJyZWFrO2Nhc2UiPHN0cmlrZT4iOmNhc2UiPHN0cmlrZS8+IjpyZS5zdHJpa2U9MTticmVhaztjYXNlIjwvc3RyaWtlPiI6YnJlYWs7Y2FzZSI8dSI6aWYoIUZlLnZhbClicmVhaztzd2l0Y2goRmUudmFsKXtjYXNlImRvdWJsZSI6cmUudW5kZXJs''@;'; + put 'put ''aW5lPTI7YnJlYWs7Y2FzZSJzaW5nbGVBY2NvdW50aW5nIjpyZS51bmRlcmxpbmU9MzM7YnJlYWs7Y2FzZSJkb3VibGVBY2NvdW50aW5nIjpyZS51bmRlcmxpbmU9MzR9Y2FzZSI8dT4iOmNhc2UiPHUvPiI6cmUudW5kZXJsaW5lfHwocmUudW5kZXJsaW5lPTEpO2JyZWFrO2Nhc2UiPC91PiI6''@;'; + put 'put ''YnJlYWs7Y2FzZSI8YiI6aWYoIjAiPT1GZS52YWwpYnJlYWs7Y2FzZSI8Yj4iOmNhc2UiPGIvPiI6cmUuYm9sZD0xO2JyZWFrO2Nhc2UiPC9iPiI6YnJlYWs7Y2FzZSI8aSI6aWYoIjAiPT1GZS52YWwpYnJlYWs7Y2FzZSI8aT4iOmNhc2UiPGkvPiI6cmUuaXRhbGljPTE7YnJlYWs7Y2FzZSI8''@;'; + put 'put ''L2k+IjpicmVhaztjYXNlIjxjb2xvciI6RmUucmdiJiYocmUuY29sb3I9e3JnYjo4PT1GZS5yZ2IubGVuZ3RoP0ZlLnJnYi5zbGljZSgyLDgpOigiMDAwMDAwIitGZS5yZ2IpLnNsaWNlKC02KX0pO2JyZWFrO2Nhc2UiPGZhbWlseSI6cmUuZmFtaWx5PUZlLnZhbDticmVhaztjYXNlIjx2ZXJ0''@;'; + put 'put ''QWxpZ24iOiJub25lIiE9KEZlLnZhbHx8Im5vbmUiKSYmKHJlLnZhbGlnbj1GZS52YWwucmVwbGFjZSgic2NyaXB0IiwiIikpO2JyZWFrO2Nhc2UiPHNjaGVtZSI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8ZXh0Ijp4ZT0hMDticmVh''@;'; + put 'put ''aztjYXNlIjwvZXh0PiI6eGU9ITE7YnJlYWs7ZGVmYXVsdDppZig0NyE9PUZlWzBdLmNoYXJDb2RlQXQoMSkmJiF4ZSl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCByaWNoIGZvcm1hdCAiK0ZlWzBdKX19cmV0dXJuIHJlfShZZVsxXSkpLGplfXZhciB3ZT0vPCg/Olx3KzopP3I+L2cs''@;'; + put 'put ''eGU9LzxcLyg/Olx3KzopP3I+LztyZXR1cm4gZnVuY3Rpb24oWmUpe3JldHVybiBaZS5yZXBsYWNlKHdlLCIiKS5zcGxpdCh4ZSkubWFwKFgpLmZpbHRlcihmdW5jdGlvbihqZSl7cmV0dXJuIGplLnZ9KX19KCksTzQ9ezE6InNpbmdsZSIsMjoiZG91YmxlIiwzMzoic2luZ2xlLWFjY291bnRp''@;'; + put 'put ''bmciLDM0OiJkb3VibGUtYWNjb3VudGluZyJ9LGhtPWZ1bmN0aW9uKCl7dmFyIHJlPS8oXHJcbnxcbikvZztmdW5jdGlvbiB3ZSh4ZSl7dmFyIEZlPVtbXSx4ZS52LFtdXTtyZXR1cm4geGUudj8oeGUucyYmZnVuY3Rpb24gWCh4ZSxGZSxaZSl7dmFyIGplPVtdO3hlLnVuZGVybGluZSYmamUu''@;'; + put 'put ''cHVzaCgidGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IikseGUudW5kZXJsaW5lPjEmJmplLnB1c2goInRleHQtdW5kZXJsaW5lLXN0eWxlOiIrTzRbeGUudW5kZXJsaW5lXSsiOyIpLHhlLnN6JiZqZS5wdXNoKCJmb250LXNpemU6Iit4ZS5zeisicHQ7IikseGUub3V0bGluZSYmamUucHVz''@;'; + put 'put ''aCgidGV4dC1lZmZlY3Q6IG91dGxpbmU7IikseGUuc2hhZG93JiZqZS5wdXNoKCJ0ZXh0LXNoYWRvdzogYXV0bzsiKSx4ZS5jb2xvciYmeGUuY29sb3IucmdiJiZqZS5wdXNoKCJjb2xvcjogIyIrTG8oeGUuY29sb3IucmdiKSsiOyIpLEZlLnB1c2goJzxzcGFuIHN0eWxlPSInK2plLmpvaW4o''@;'; + put 'put ''IiIpKyciPicpLHhlLmJvbGQmJihGZS5wdXNoKCI8Yj4iKSxaZS5wdXNoKCI8L2I+IikpLHhlLml0YWxpYyYmKEZlLnB1c2goIjxpPiIpLFplLnB1c2goIjwvaT4iKSkseGUuc3RyaWtlJiYoRmUucHVzaCgiPHM+IiksWmUucHVzaCgiPC9zPiIpKTt2YXIgWWU9eGUudmFsaWdufHwiIjsic3Vw''@;'; + put 'put ''ZXJzY3JpcHQiPT1ZZXx8InN1cGVyIj09WWU/WWU9InN1cCI6InN1YnNjcmlwdCI9PVllJiYoWWU9InN1YiIpLCIiIT1ZZSYmKEZlLnB1c2goIjwiK1llKyI+IiksWmUucHVzaCgiPC8iK1llKyI+IikpLFplLnB1c2goIjwvc3Bhbj4iKX0oeGUucyxGZVswXSxGZVsyXSksRmVbMF0uam9pbigi''@;'; + put 'put ''IikrRmVbMV0ucmVwbGFjZShyZSwiPGJyLz4iKStGZVsyXS5qb2luKCIiKSk6IiJ9cmV0dXJuIGZ1bmN0aW9uKEZlKXtyZXR1cm4gRmUubWFwKHdlKS5qb2luKCIiKX19KCk7ZnVuY3Rpb24gdTYoSCl7cmV0dXJuIEgubWFwKGZ1bmN0aW9uKFgpe3JldHVybiBmdW5jdGlvbiBtYShIKXt2YXIg''@;'; + put 'put ''cmU9IiIsWD1bXTtyZXR1cm4gSC5zJiYoSC5zLmJvbGQmJlgucHVzaCgiPGIvPiIpLEgucy5pdGFsaWMmJlgucHVzaCgiPGkvPiIpLEgucy5zdHJpa2UmJlgucHVzaCgiPHN0cmlrZS8+IiksSC5zLnVuZGVybGluZSYmWC5wdXNoKCc8dSB2YWw9IicrKEx2W0gucy51bmRlcmxpbmVdfHwic2lu''@;'; + put 'put ''Z2xlIikrJyIvPicpLEgucy5jb2xvciYmWC5wdXNoKFhzKEgucy5jb2xvcikpLEgucy5zeiYmWC5wdXNoKCc8c3ogdmFsPSInK0gucy5zeisnIi8+JyksSC5zLm5hbWUmJlgucHVzaCgnPHJGb250IHZhbD0iJytILnMubmFtZSsnIi8+JyksKCJzdXBlciI9PUgucy52YWxpZ258fCJzdWIiPT1I''@;'; + put 'put ''LnMudmFsaWduKSYmWC5wdXNoKCc8dmVydEFsaWduIHZhbD0iJytILnMudmFsaWduKydzY3JpcHQiLz4nKSksWC5sZW5ndGgmJihyZSs9IjxyUHI+IitYLmpvaW4oIiIpKyI8L3JQcj4iKSwiPHI+IisocmUrPWJpKCJ0IixScihILnYpLG51bGwpKSsiPC9yPiJ9KFgpfSkuam9pbigiIil9dmFy''@;'; + put 'put ''IGhsPS88KD86XHcrOik/dFtePl0qPihbXjxdKik8XC8oPzpcdys6KT90Pi9nLFVmPS88KD86XHcrOik/clxiW14+XSo+LyxkMj0vPCg/Olx3KzopP3JQaC4qPz4oW1xzXFNdKj8pPFwvKD86XHcrOik/clBoPi9nO2Z1bmN0aW9uICR1KEgscmUpe3ZhciBYPSFyZXx8cmUuY2VsbEhUTUwsd2U9''@;'; + put 'put ''e307cmV0dXJuIEg/KEgubWF0Y2goL15ccyo8KD86XHcrOik/dFtePl0qPi8pPyh3ZS50PWdyKFcwKEguc2xpY2UoSC5pbmRleE9mKCI+IikrMSkuc3BsaXQoLzxcLyg/Olx3KzopP3Q+LylbMF18fCIiKSksd2Uucj1XMChIKSxYJiYod2UuaD1uMCh3ZS50KSkpOkgubWF0Y2goVWYpJiYod2Uu''@;'; + put 'put ''cj1XMChIKSx3ZS50PWdyKFcwKChILnJlcGxhY2UoZDIsIiIpLm1hdGNoKGhsKXx8W10pLmpvaW4oIiIpLnJlcGxhY2UoR3QsIiIpKSksd2UuUj1XOCh3ZS5yKSxYJiYod2UuaD1obSh3ZS5SKSkpLHdlKTp7dDoiIn19dmFyIGthPS88KD86XHcrOik/c3N0KFtePl0qKT4oW1xzXFNdKik8XC8o''@;'; + put 'put ''Pzpcdys6KT9zc3Q+Lyx5Mz0vPCg/Olx3KzopPyg/OnNpfHNzdEl0ZW0pPi9nLFFmPS88XC8oPzpcdys6KT8oPzpzaXxzc3RJdGVtKT4vO3B0LlNTVD0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zaGFyZWRTdHJp''@;'; + put 'put ''bmdzIjt2YXIgZG09L15cc3xccyR8W1x0XG5ccl0vO2Z1bmN0aW9uIFFNKEgscmUpe2lmKCFyZS5ib29rU1NUKXJldHVybiIiO3ZhciBYPVtjbl07WFtYLmxlbmd0aF09YmkoInNzdCIsbnVsbCx7eG1sbnM6WDAubWFpblswXSxjb3VudDpILkNvdW50LHVuaXF1ZUNvdW50OkguVW5pcXVlfSk7''@;'; + put 'put ''Zm9yKHZhciB3ZT0wO3dlIT1ILmxlbmd0aDsrK3dlKWlmKG51bGwhPUhbd2VdKXt2YXIgeGU9SFt3ZV0sRmU9IjxzaT4iO3hlLnI/RmUrPXhlLnI6KEZlKz0iPHQiLHhlLnR8fCh4ZS50PSIiKSx4ZS50Lm1hdGNoKGRtKSYmKEZlKz0nIHhtbDpzcGFjZT0icHJlc2VydmUiJyksRmUrPSI+IitS''@;'; + put 'put ''cih4ZS50KSsiPC90PiIpLFhbWC5sZW5ndGhdPUZlKz0iPC9zaT4ifXJldHVybiBYLmxlbmd0aD4yJiYoWFtYLmxlbmd0aF09Ijwvc3N0PiIsWFsxXT1YWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxYLmpvaW4oIiIpfXZhciBDUj1mdW5jdGlvbiB6ZyhILHJlLFgpe3ZhciB3ZT0xMys0KkgudC5s''@;'; + put 'put ''ZW5ndGgseGU9SC5SJiZILlIubGVuZ3RofHxILnI7SC5yJiYoSC5SPVc4KEgucikpLHhlJiYod2UrPTQrNCpILlIubGVuZ3RoKTt2YXIgRmU9ITE7aWYobnVsbD09WCYmKEZlPSEwLFg9Umkod2UpKSxYLndyaXRlX3NoaWZ0KDEseGU/MTowKSxsdShILnQsWCkseGUpe1gud3JpdGVfc2hpZnQo''@;'; + put 'put ''NCxILlIubGVuZ3RoKTtmb3IodmFyIFplPTAsamU9MDtqZTxILlIubGVuZ3RoOysramUpe3ZhciBZZT1ILlJbamVdO1gud3JpdGVfc2hpZnQoMixaZSksWmUrPShZZS52fHwiIikubGVuZ3RoO3ZhciBNdD1ZZS5zP1kxKHJlLmNlbGxYZnMscmUuY2VsbFN0eWxlWGZzLHt0OiJuIix2OjAsczpZ''@;'; + put 'put ''ZS5zfSxyZSk6MDtYLndyaXRlX3NoaWZ0KDIscmUuY2VsbFhmc1tNdF0uZm9udElkKX19cmV0dXJuIEZlP1guc2xpY2UoMCxYLmwpOlh9O2Z1bmN0aW9uIGtSKEgscmUpe3ZhciBYPVEyKCk7QzAoWCwiQnJ0QmVnaW5Tc3QiLGZ1bmN0aW9uIFhNKEgscmUpe3JldHVybiByZXx8KHJlPVJpKDgp''@;'; + put 'put ''KSxyZS53cml0ZV9zaGlmdCg0LEguQ291bnQpLHJlLndyaXRlX3NoaWZ0KDQsSC5VbmlxdWUpLHJlfShIKSk7Zm9yKHZhciB3ZT0wO3dlPEgubGVuZ3RoOysrd2UpQzAoWCwiQnJ0U1NUSXRlbSIsQ1IoSFt3ZV0scmUpKTtyZXR1cm4gQzAoWCwiQnJ0RW5kU3N0IiksWC5lbmQoKX1mdW5jdGlv''@;'; + put 'put ''biBLTShIKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGNwdGFibGUpcmV0dXJuIGNwdGFibGUudXRpbHMuZW5jb2RlKFosSCk7Zm9yKHZhciByZT1bXSxYPUguc3BsaXQoIiIpLHdlPTA7d2U8WC5sZW5ndGg7Kyt3ZSlyZVt3ZV09WFt3ZV0uY2hhckNvZGVBdCgwKTtyZXR1cm4gcmV9ZnVuY3Rp''@;'; + put 'put ''b24gdmYoSCxyZSl7dmFyIFg9e307cmV0dXJuIFguTWFqb3I9SC5yZWFkX3NoaWZ0KDIpLFguTWlub3I9SC5yZWFkX3NoaWZ0KDIpLHJlPj00JiYoSC5sKz1yZS00KSxYfWZ1bmN0aW9uIHczKEgpe2Zvcih2YXIgcmU9SC5yZWFkX3NoaWZ0KDQpLFg9SC5sK3JlLTQsd2U9e30seGU9SC5yZWFk''@;'; + put 'put ''X3NoaWZ0KDQpLEZlPVtdO3hlLS0gPjA7KUZlLnB1c2goe3Q6SC5yZWFkX3NoaWZ0KDQpLHY6SC5yZWFkX3NoaWZ0KDAsImxwcDQiKX0pO2lmKHdlLm5hbWU9SC5yZWFkX3NoaWZ0KDAsImxwcDQiKSx3ZS5jb21wcz1GZSxILmwhPVgpdGhyb3cgbmV3IEVycm9yKCJCYWQgRGF0YVNwYWNlTWFw''@;'; + put 'put ''RW50cnk6ICIrSC5sKyIgIT0gIitYKTtyZXR1cm4gd2V9ZnVuY3Rpb24gU1IoSCxyZSl7dmFyIFg9SC5sK3JlLHdlPXt9O3dlLkZsYWdzPTYzJkgucmVhZF9zaGlmdCg0KSxILmwrPTQsd2UuQWxnSUQ9SC5yZWFkX3NoaWZ0KDQpO3ZhciB4ZT0hMTtzd2l0Y2god2UuQWxnSUQpe2Nhc2UgMjYx''@;'; + put 'put ''MjY6Y2FzZSAyNjEyNzpjYXNlIDI2MTI4OnhlPTM2PT13ZS5GbGFnczticmVhaztjYXNlIDI2NjI1OnhlPTQ9PSg1MiZ3ZS5GbGFncyk7YnJlYWs7Y2FzZSAwOnhlPTE2PT13ZS5GbGFnc3x8ND09d2UuRmxhZ3N8fDM2PT13ZS5GbGFnczticmVhaztkZWZhdWx0OnRocm93IlVucmVjb2duaXpl''@;'; + put 'put ''ZCBlbmNyeXB0aW9uIGFsZ29yaXRobTogIit3ZS5BbGdJRH1pZigheGUpdGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0aW9uIEZsYWdzL0FsZ0lEIG1pc21hdGNoIik7cmV0dXJuIHdlLkFsZ0lESGFzaD1ILnJlYWRfc2hpZnQoNCksd2UuS2V5U2l6ZT1ILnJlYWRfc2hpZnQoNCksd2UuUHJvdmlk''@;'; + put 'put ''ZXJUeXBlPUgucmVhZF9zaGlmdCg0KSxILmwrPTgsd2UuQ1NQTmFtZT1ILnJlYWRfc2hpZnQoWC1ILmw+PjEsInV0ZjE2bGUiKSxILmw9WCx3ZX1mdW5jdGlvbiBNUihILHJlKXt2YXIgWD17fSx3ZT1ILmwrcmU7cmV0dXJuIEgubCs9NCxYLlNhbHQ9SC5zbGljZShILmwsSC5sKzE2KSxILmwr''@;'; + put 'put ''PTE2LFguVmVyaWZpZXI9SC5zbGljZShILmwsSC5sKzE2KSxILmwrPTE2LEgucmVhZF9zaGlmdCg0KSxYLlZlcmlmaWVySGFzaD1ILnNsaWNlKEgubCx3ZSksSC5sPXdlLFh9ZnVuY3Rpb24gdmIoSCl7aWYoMzYhPSg2MyZILnJlYWRfc2hpZnQoNCkpKXRocm93IG5ldyBFcnJvcigiRW5jcnlw''@;'; + put 'put ''dGlvbkluZm8gbWlzbWF0Y2giKTt2YXIgWD1ILnJlYWRfc2hpZnQoNCk7cmV0dXJue3Q6IlN0ZCIsaDpTUihILFgpLHY6TVIoSCxILmxlbmd0aC1ILmwpfX1mdW5jdGlvbiBBYigpe3Rocm93IG5ldyBFcnJvcigiRmlsZSBpcyBwYXNzd29yZC1wcm90ZWN0ZWQ6IEVDTUEtMzc2IEV4dGVuc2li''@;'; + put 'put ''bGUiKX1mdW5jdGlvbiB5YihIKXt2YXIgcmU9WyJzYWx0U2l6ZSIsImJsb2NrU2l6ZSIsImtleUJpdHMiLCJoYXNoU2l6ZSIsImNpcGhlckFsZ29yaXRobSIsImNpcGhlckNoYWluaW5nIiwiaGFzaEFsZ29yaXRobSIsInNhbHRWYWx1ZSJdO0gubCs9NDt2YXIgWD1ILnJlYWRfc2hpZnQoSC5s''@;'; + put 'put ''ZW5ndGgtSC5sLCJ1dGY4Iiksd2U9e307cmV0dXJuIFgucmVwbGFjZShHdCxmdW5jdGlvbihGZSl7dmFyIFplPWVuKEZlKTtzd2l0Y2goSW4oWmVbMF0pKXtjYXNlIjw/eG1sIjpjYXNlIjxlbmNyeXB0aW9uIjpjYXNlIjwvZW5jcnlwdGlvbj4iOmNhc2UiPC9rZXlFbmNyeXB0b3JzPiI6Y2Fz''@;'; + put 'put ''ZSI8L2tleUVuY3J5cHRvcj4iOmJyZWFrO2Nhc2UiPGtleURhdGEiOnJlLmZvckVhY2goZnVuY3Rpb24oamUpe3dlW2plXT1aZVtqZV19KTticmVhaztjYXNlIjxkYXRhSW50ZWdyaXR5Ijp3ZS5lbmNyeXB0ZWRIbWFjS2V5PVplLmVuY3J5cHRlZEhtYWNLZXksd2UuZW5jcnlwdGVkSG1hY1Zh''@;'; + put 'put ''bHVlPVplLmVuY3J5cHRlZEhtYWNWYWx1ZTticmVhaztjYXNlIjxrZXlFbmNyeXB0b3JzPiI6Y2FzZSI8a2V5RW5jcnlwdG9ycyI6d2UuZW5jcz1bXTticmVhaztjYXNlIjxrZXlFbmNyeXB0b3IiOndlLnVyaT1aZS51cmk7YnJlYWs7Y2FzZSI8ZW5jcnlwdGVkS2V5Ijp3ZS5lbmNzLnB1c2go''@;'; + put 'put ''WmUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgWmVbMF19fSksd2V9ZnVuY3Rpb24gU3YoSCl7dmFyIFgsRmUscmU9MCx3ZT1LTShIKSx4ZT13ZS5sZW5ndGgrMTtmb3IoKFg9aGUoeGUpKVswXT13ZS5sZW5ndGgsRmU9MTtGZSE9eGU7KytGZSlYW0ZlXT13ZVtGZS0xXTtmb3IoRmU9eGUtMTtGZT49''@;'; + put 'put ''MDstLUZlKXJlPSgoMD09KDE2Mzg0JnJlKT8wOjEpfHJlPDwxJjMyNzY3KV5YW0ZlXTtyZXR1cm4gNTI4MTFecmV9dmFyIE12PWZ1bmN0aW9uKCl7dmFyIEg9WzE4NywyNTUsMjU1LDE4NiwyNTUsMjU1LDE4NSwxMjgsMCwxOTAsMTUsMCwxOTEsMTUsMF0scmU9WzU3ODQwLDc0MzksNTIzODAs''@;'; + put 'put ''MzM5ODQsNDM2NCwzNjAwLDYxOTAyLDEyNjA2LDYyNTgsNTc2NTcsNTQyODcsMzQwNDEsMTAyNTIsNDMzNzAsMjAxNjNdLFg9WzQ0Nzk2LDE5OTI5LDM5ODU4LDEwMDUzLDIwMTA2LDQwMjEyLDEwNzYxLDMxNTg1LDYzMTcwLDY0OTMzLDYwMjY3LDUwOTM1LDQwMzk5LDExMTk5LDE3NzYzLDM1''@;'; + put 'put ''NTI2LDE0NTMsMjkwNiw1ODEyLDExNjI0LDIzMjQ4LDg4NSwxNzcwLDM1NDAsNzA4MCwxNDE2MCwyODMyMCw1NjY0MCw1NTM2OSw0MTEzOSwyMDgwNyw0MTYxNCwyMTgyMSw0MzY0MiwxNzYyMSwyODQ4NSw1Njk3MCw0NDM0MSwxOTAxOSwzODAzOCwxNDYwNSwyOTIxMCw2MDE5NSw1MDc5MSw0''@;'; + put 'put ''MDE3NSwxMDc1MSwyMTUwMiw0MzAwNCwyNDUzNywxODM4NywzNjc3NCwzOTQ5LDc4OTgsMTU3OTYsMzE1OTIsNjMxODQsNDcyMDEsMjQ4MDMsNDk2MDYsMzc4MDUsMTQyMDMsMjg0MDYsNTY4MTIsMTc4MjQsMzU2NDgsMTY5NywzMzk0LDY3ODgsMTM1NzYsMjcxNTIsNDM2MDEsMTc1MzksMzUw''@;'; + put 'put ''NzgsNTU3LDExMTQsMjIyOCw0NDU2LDMwMzg4LDYwNzc2LDUxOTUzLDM0MjQzLDcwNzksMTQxNTgsMjgzMTYsMTQxMjgsMjgyNTYsNTY1MTIsNDM0MjUsMTcyNTEsMzQ1MDIsNzU5NywxMzEwNSwyNjIxMCw1MjQyMCwzNTI0MSw4ODMsMTc2NiwzNTMyLDQxMjksODI1OCwxNjUxNiwzMzAzMiw0''@;'; + put 'put ''NjU3LDkzMTQsMTg2MjhdLHhlPWZ1bmN0aW9uKFplLGplKXtyZXR1cm4gZnVuY3Rpb24oWmUpe3JldHVybiAyNTUmKFplPj4xfFplPDw3KX0oWmVeamUpfTtyZXR1cm4gZnVuY3Rpb24oamUpe2Zvcih2YXIgWWU9S00oamUpLE10PWZ1bmN0aW9uKFplKXtmb3IodmFyIGplPXJlW1plLmxlbmd0''@;'; + put 'put ''aC0xXSxZZT0xMDQsTXQ9WmUubGVuZ3RoLTE7TXQ+PTA7LS1NdClmb3IodmFyIHh0PVplW010XSxSdD0wOzchPVJ0OysrUnQpNjQmeHQmJihqZV49WFtZZV0pLHh0Kj0yLC0tWWU7cmV0dXJuIGplfShZZSkseHQ9WWUubGVuZ3RoLFJ0PWhlKDE2KSxZdD0wOzE2IT1ZdDsrK1l0KVJ0W1l0XT0w''@;'; + put 'put ''O3ZhciBEdDtmb3IoMT09KDEmeHQpJiYoUnRbeHRdPXhlKEhbMF0sTXQ+PjgpLFJ0Wy0teHRdPXhlKFllW1llLmxlbmd0aC0xXSwyNTUmTXQpKTt4dD4wOylSdFstLXh0XT14ZShZZVt4dF0sTXQ+PjgpLFJ0Wy0teHRdPXhlKFllW3h0XSwyNTUmTXQpO2Zvcih4dD0xNSxEdD0xNS1ZZS5sZW5n''@;'; + put 'put ''dGg7RHQ+MDspUnRbeHRdPXhlKEhbRHRdLE10Pj44KSwtLUR0LFJ0Wy0teHRdPXhlKFllW3h0XSwyNTUmTXQpLC0teHQsLS1EdDtyZXR1cm4gUnR9fSgpO3ZhciBFdj1mdW5jdGlvbigpe2Z1bmN0aW9uIEgoeGUsRmUpe3N3aXRjaChGZS50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIHJlKFNl''@;'; + put 'put ''LmRlY29kZSh4ZSksRmUpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gcmUoeGUsRmUpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gcmUoeGUudG9TdHJpbmcoImJpbmFyeSIpLEZlKTtjYXNlImFycmF5IjpyZXR1cm4gcmUoeW4oeGUpLEZlKX10aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIr''@;'; + put 'put ''RmUudHlwZSl9ZnVuY3Rpb24gcmUoeGUsRmUpe3ZhciBqZT0oRmV8fHt9KS5kZW5zZT9bXTp7fTtpZigheGUubWF0Y2goL1xcdHJvd2QvKSl0aHJvdyBuZXcgRXJyb3IoIlJURiBtaXNzaW5nIHRhYmxlIik7cmV0dXJuIGplWyIhcmVmIl09ZmEoe3M6e2M6MCxyOjB9LGU6e2M6MCxyOjB9fSks''@;'; + put 'put ''amV9cmV0dXJue3RvX3dvcmtib29rOmZ1bmN0aW9uIFgoeGUsRmUpe3JldHVybiB3MShIKHhlLEZlKSxGZSl9LHRvX3NoZWV0OkgsZnJvbV9zaGVldDpmdW5jdGlvbiB3ZSh4ZSl7Zm9yKHZhciBqZSxGZT1bIntcXHJ0ZjFcXGFuc2kiXSxaZT1Gbyh4ZVsiIXJlZiJdKSxZZT1BcnJheS5pc0Fy''@;'; + put 'put ''cmF5KHhlKSxNdD1aZS5zLnI7TXQ8PVplLmUucjsrK010KXtGZS5wdXNoKCJcXHRyb3dkXFx0cmF1dG9maXQxIik7Zm9yKHZhciB4dD1aZS5zLmM7eHQ8PVplLmUuYzsrK3h0KUZlLnB1c2goIlxcY2VsbHgiKyh4dCsxKSk7Zm9yKEZlLnB1c2goIlxccGFyZFxcaW50YmwiKSx4dD1aZS5zLmM7''@;'; + put 'put ''eHQ8PVplLmUuYzsrK3h0KXt2YXIgUnQ9WTAoe3I6TXQsYzp4dH0pOyhqZT1ZZT8oeGVbTXRdfHxbXSlbeHRdOnhlW1J0XSkmJihudWxsIT1qZS52fHxqZS5mJiYhamUuRikmJihGZS5wdXNoKCIgIisoamUud3x8KHkxKGplKSxqZS53KSkpLEZlLnB1c2goIlxcY2VsbCIpKX1GZS5wdXNoKCJc''@;'; + put 'put ''XHBhcmRcXGludGJsXFxyb3ciKX1yZXR1cm4gRmUuam9pbigiIikrIn0ifX19KCk7ZnVuY3Rpb24gWTgoSCl7dmFyIHJlPUguc2xpY2UoIiMiPT09SFswXT8xOjApLnNsaWNlKDAsNik7cmV0dXJuW3BhcnNlSW50KHJlLnNsaWNlKDAsMiksMTYpLHBhcnNlSW50KHJlLnNsaWNlKDIsNCksMTYp''@;'; + put 'put ''LHBhcnNlSW50KHJlLnNsaWNlKDQsNiksMTYpXX1mdW5jdGlvbiBiMyhIKXtmb3IodmFyIHJlPTAsWD0xOzMhPXJlOysrcmUpWD0yNTYqWCsoSFtyZV0+MjU1PzI1NTpIW3JlXTwwPzA6SFtyZV0pO3JldHVybiBYLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnNsaWNlKDEpfWZ1bmN0aW9u''@;'; + put 'put ''IF8zKEgscmUpe2lmKG51bGw9PUgpcmV0dXJuIG51bGwhPXJlO2lmKG51bGw9PXJlKXJldHVybiEwO2lmKDE9PUguYXV0byYmMT09cmUuYXV0bylyZXR1cm4hMTtpZighIUguYXV0byE9ISFyZS5hdXRvfHxudWxsPT1ILnRoZW1lIT0obnVsbD09cmUudGhlbWUpKXJldHVybiEwO2lmKG51bGwh''@;'; + put 'put ''PUgudGhlbWUpcmV0dXJuIEgudGhlbWUhPXJlLnRoZW1lfHxILnRpbnQhPXJlLnRpbnQ7aWYobnVsbD09SC5yZ2ImJm51bGw9PXJlLnJnYilyZXR1cm4hMTt2YXIgWD1ILnJnYjsibnVtYmVyIj09dHlwZW9mIFgmJihYPVgudG9TdHJpbmcoMTYpKSxYPVguc2xpY2UoLTYpO3ZhciB3ZT1yZS5y''@;'; + put 'put ''Z2I7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB3ZSYmKHdlPXdlLnRvU3RyaW5nKDE2KSksd2U9d2Uuc2xpY2UoLTYpLFgudG9Mb3dlckNhc2UoKSE9d2UudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB4dihILHJlKXtyZXR1cm4gbnVsbD09SD9udWxsIT1yZTpudWxsPT1yZT9udWxsIT1IOkguc3R5''@;'; + put 'put ''bGUhPXJlLnN0eWxlfHxfMyhILmNvbG9yLHJlLmNvbG9yKX1mdW5jdGlvbiBROChILHJlKXtpZigwPT09cmUpcmV0dXJuIEg7dmFyIFg9ZnVuY3Rpb24gYTIoSCl7dmFyIHJlPUhbMF0vMjU1LFg9SFsxXS8yNTUsd2U9SFsyXS8yNTUseGU9TWF0aC5tYXgocmUsWCx3ZSksRmU9TWF0aC5taW4o''@;'; + put 'put ''cmUsWCx3ZSksWmU9eGUtRmU7aWYoMD09PVplKXJldHVyblswLDAscmVdO3ZhciBZZSxqZT0wLE10PXhlK0ZlO3N3aXRjaChZZT1aZS8oTXQ+MT8yLU10Ok10KSx4ZSl7Y2FzZSByZTpqZT0oKFgtd2UpL1plKzYpJTY7YnJlYWs7Y2FzZSBYOmplPSh3ZS1yZSkvWmUrMjticmVhaztjYXNlIHdl''@;'; + put 'put ''OmplPShyZS1YKS9aZSs0fXJldHVybltqZS82LFllLE10LzJdfShZOChIKSk7cmV0dXJuIFhbMl09cmU8MD9YWzJdKigxK3JlKToxLSgxLVhbMl0pKigxLXJlKSxiMyhmdW5jdGlvbiBVOChIKXt2YXIgWWUsWD1IWzFdLHdlPUhbMl0seGU9MipYKih3ZTwuNT93ZToxLXdlKSxGZT13ZS14ZS8y''@;'; + put 'put ''LFplPVtGZSxGZSxGZV0samU9NipIWzBdO2lmKDAhPT1YKXN3aXRjaCgwfGplKXtjYXNlIDA6Y2FzZSA2OlllPXhlKmplLFplWzBdKz14ZSxaZVsxXSs9WWU7YnJlYWs7Y2FzZSAxOlplWzBdKz1ZZT14ZSooMi1qZSksWmVbMV0rPXhlO2JyZWFrO2Nhc2UgMjpZZT14ZSooamUtMiksWmVbMV0r''@;'; + put 'put ''PXhlLFplWzJdKz1ZZTticmVhaztjYXNlIDM6WmVbMV0rPVllPXhlKig0LWplKSxaZVsyXSs9eGU7YnJlYWs7Y2FzZSA0OlllPXhlKihqZS00KSxaZVsyXSs9eGUsWmVbMF0rPVllO2JyZWFrO2Nhc2UgNTpaZVsyXSs9WWU9eGUqKDYtamUpLFplWzBdKz14ZX1mb3IodmFyIE10PTA7MyE9TXQ7''@;'; + put 'put ''KytNdClaZVtNdF09TWF0aC5yb3VuZCgyNTUqWmVbTXRdKTtyZXR1cm4gWmV9KFgpKX12YXIgWDI9NjtmdW5jdGlvbiBtbShIKXtyZXR1cm4gTWF0aC5mbG9vcigoSCtNYXRoLnJvdW5kKDEyOC9YMikvMjU2KSpYMil9ZnVuY3Rpb24gVHYoSCl7cmV0dXJuIE1hdGguZmxvb3IoKEgtNSkvWDIq''@;'; + put 'put ''MTAwKy41KS8xMDB9ZnVuY3Rpb24gd2IoSCl7cmV0dXJuIE1hdGgucm91bmQoKEgqWDIrNSkvWDIqMjU2KS8yNTZ9ZnVuY3Rpb24geWMoSCl7SC5iZXN0Rml0JiZkZWxldGUgSC5iZXN0Rml0LEgud2lkdGg/KEgud3B4PW1tKEgud2lkdGgpLEgud2NoPVR2KEgud3B4KSxILk1EVz1YMik6SC53''@;'; + put 'put ''cHg/KEgud2NoPVR2KEgud3B4KSxILndpZHRoPXdiKEgud2NoKSxILk1EVz1YMik6Im51bWJlciI9PXR5cGVvZiBILndjaCYmKEgud2lkdGg9d2IoSC53Y2gpLEgud3B4PW1tKEgud2lkdGgpLEguTURXPVgyKSxILmN1c3RvbVdpZHRoJiZkZWxldGUgSC5jdXN0b21XaWR0aH12YXIgUjQ9OTY7''@;'; + put 'put ''ZnVuY3Rpb24gVGgoSCl7cmV0dXJuIDcyKkgvUjR9ZnVuY3Rpb24gQWYoSCl7cmV0dXJuIEgqUjQvNzJ9ZnVuY3Rpb24gQzMoSCl7UjQ9SD17b3N4OjcyLHdpbjo5Nix3aW4xMDA6OTYsd2luMTI1OjEyMCx3aW4xNTA6MTQ0fVtIXXx8SHx8OTYsYmI9ZjZbSF19ZnVuY3Rpb24gSjgoSCl7SC5o''@;'; + put 'put ''cHg/SC5ocHQ9VGgoSC5ocHgpOkguaHB0JiYoSC5ocHg9QWYoSC5ocHQpKX12YXIgTFI9e05vbmU6Im5vbmUiLFNvbGlkOiJzb2xpZCIsR3JheTUwOiJtZWRpdW1HcmF5IixHcmF5NzU6ImRhcmtHcmF5IixHcmF5MjU6ImxpZ2h0R3JheSIsSG9yelN0cmlwZToiZGFya0hvcml6b250YWwiLFZl''@;'; + put 'put ''cnRTdHJpcGU6ImRhcmtWZXJ0aWNhbCIsUmV2ZXJzZURpYWdTdHJpcGU6ImRhcmtEb3duIixEaWFnU3RyaXBlOiJkYXJrVXAiLERpYWdDcm9zczoiZGFya0dyaWQiLFRoaWNrRGlhZ0Nyb3NzOiJkYXJrVHJlbGxpcyIsVGhpbkhvcnpTdHJpcGU6ImxpZ2h0SG9yaXpvbnRhbCIsVGhpblZlcnRT''@;'; + put 'put ''dHJpcGU6ImxpZ2h0VmVydGljYWwiLFRoaW5SZXZlcnNlRGlhZ1N0cmlwZToibGlnaHREb3duIixUaGluSG9yekNyb3NzOiJsaWdodEdyaWQifSxvRT10dChMUiksSXY9e29yYW5nZToxNjc1MzkyMCxibGFjazowLG5hdnk6MTI4LGJsdWU6MjU1LGdyZWVuOjMyNzY4LHRlYWw6MzI4OTYsbGlt''@;'; + put 'put ''ZTo2NTI4MCxhcXVhOjY1NTM1LHNpbHZlcjoxMjYzMjI1NixtYXJvb246ODM4ODYwOCxwdXJwbGU6ODM4ODczNixvbGl2ZTo4NDIxMzc2LGdyYXk6ODQyMTUwNCxyZWQ6MTY3MTE2ODAsZnVjaHNpYToxNjcxMTkzNSx5ZWxsb3c6MTY3NzY5NjAsd2hpdGU6MTY3NzcyMTV9O2Z1bmN0aW9uIFg4''@;'; + put 'put ''KEgscmUpe2lmKEgucmVwbGFjZSgiIyIsIiIpLm1hdGNoKC9eWzAtOWEtZkEtRl17Nn0kLykpcmV0dXJuIHBhcnNlSW50KEgucmVwbGFjZSgiIyIsIiIpLDE2KTtpZihJdltIXSlyZXR1cm4gSXZbSF07dmFyIFg9SC5tYXRjaCgvcmdiXChccyooXGQqKVxzKixccyooXGQqKVxzKixccyooXGQq''@;'; + put 'put ''KVxzKlwpLyk7aWYoWClyZXR1cm4oK1hbMV08PDE2KSsoK1hbMl08PDgpKyArWFszXTtpZihYPUgubWF0Y2goL3JnYmFcKFxzKihcZCopXHMqLFxzKihcZCopXHMqLFxzKihcZCopXHMqKFxkKikvKSlyZXR1cm4gMCE9KFhbNF0mJlhbNF0ubGVuZ3RoPjAmJitYWzRdfHwwKXx8K1hbMV0+MHx8''@;'; + put 'put ''K1hbMl0+MHx8K1hbM10+MD8oK1hbMV08PDE2KSsoK1hbMl08PDgpKyArWFszXTpyZT8tMToxNjc3NzIxNTt0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gSFRNTCBjb2xvciAiK0gpfXZhciBmNj17fTtmdW5jdGlvbiBrMyhIKXtIPUh8fDk2O3ZhciByZT17Q2FsaWJyaTpbXSxBcmlhbDpbXSwi''@;'; + put 'put ''U3Bhcmthc3NlIFJnIjpbXSxcdTViOGJcdTRmNTM6W10sXHU2ZTM4XHUzMGI0XHUzMGI3XHUzMGMzXHUzMGFmOltdLCJDZW50dXJ5IEdvdGhpYyI6W119O3JldHVybiByZS5DYWxpYnJpWzExXT03LHJlLkNhbGlicmlbMTJdPXs3Mjo2LDk2OjgsMTIwOjEwLDE0NDoxMn1bSF18fDgscmUuQ2Fs''@;'; + put 'put ''aWJyaVsxM109MTAscmUuQ2FsaWJyaVsxNF09MTEscmUuQ2FsaWJyaVsxNl09MTIscmUuQ2FsaWJyaVsxOF09MTQscmUuQ2FsaWJyaVsyMF09MTYscmUuXHU1YjhiXHU0ZjUzWzExXT04LHJlLlx1NmUzOFx1MzBiNFx1MzBiN1x1MzBjM1x1MzBhZlsxMV09OCxyZVsiU3Bhcmthc3NlIFJnIl1b''@;'; + put 'put ''MTFdPTcscmUuQXJpYWxbMTBdPTcscmVbIkNlbnR1cnkgR290aGljIl1bMTJdPTkscmV9ZjZbNzJdPWszKDcyKSxmNls5Nl09azMoOTYpLGY2WzEyMF09azMoMTIwKSxmNlsxNDRdPWszKDE0NCk7dmFyIGJiPWY2Wzk2XTtmdW5jdGlvbiB2bShIKXtyZXR1cm4oYmJbSC5uYW1lfHxILkZvbnRO''@;'; + put 'put ''YW1lXXx8W10pW0guc3p8fEguU2l6ZV19ZnVuY3Rpb24gUzMoSCl7aWYoSCl7dmFyIHJlPXZtKEgpO2lmKHJlKXJldHVybiBYMj1yZX1yZXR1cm4gWDI9Nn1mdW5jdGlvbiBoNihILHJlLFgpe3JldHVybiBiMyhmdW5jdGlvbiBPUihILHJlLFgpe3JldHVybltNYXRoLnJvdW5kKHJlWzBdKlgr''@;'; + put 'put ''SFswXSooMS1YKSksTWF0aC5yb3VuZChyZVsxXSpYK0hbMV0qKDEtWCkpLE1hdGgucm91bmQocmVbMl0qWCtIWzJdKigxLVgpKV19KFk4KCJudW1iZXIiPT10eXBlb2YgSC5yZ2I/KCIwMDAwMCIrSC50b1N0cmluZygxNikpLnNsaWNlKC02KTpILnJnYiksWTgoIm51bWJlciI9PXR5cGVvZiBy''@;'; + put 'put ''ZS5yZ2I/KCIwMDAwMCIrcmUudG9TdHJpbmcoMTYpKS5zbGljZSgtNik6cmUucmdiKSxYKSl9ZnVuY3Rpb24gTTMoSCxyZSxYKXtpZihYKXN3aXRjaCgrSCl7Y2FzZSA2NDpIPTY1O2JyZWFrO2Nhc2UgNjU6SD02NH12YXIgd2U9cmUmJnJlWytIXXx8dXVbK0hdfHxNTVsrSC0yMDBdO2lmKDgx''@;'; + put 'put ''PT0rSCYmKHdlPXV1WzFdKSx3ZXx8KHdlPXV1WzFdKSwhd2UpdGhyb3cgbmV3IEVycm9yKCJiYWQgSUNWIGluZGV4ICIrSCk7cmV0dXJuIGIzKHdlKX1mdW5jdGlvbiBFMyhILHJlLFgpe3ZhciB3ZT17fTtyZXR1cm4gbnVsbCE9SC5pbmRleGVkJiYod2UuaW5kZXg9cGFyc2VJbnQoSC5pbmRl''@;'; + put 'put ''eGVkLDEwKSx3ZS5yZ2I9TTMod2UuaW5kZXgscmUuSW5kZXhlZCkpLG51bGwhPUgudGhlbWUmJih3ZS50aGVtZT1wYXJzZUludChILnRoZW1lLDEwKSksbnVsbCE9SC50aW50JiYod2UudGludD1wYXJzZUZsb2F0KEgudGludCkpLG51bGwhPUgucmdiJiYod2UucmdiPUgucmdiLnNsaWNlKC02''@;'; + put 'put ''KSksbnVsbCE9d2UudGhlbWUmJiF3ZS5yZ2ImJlgudGhlbWVFbGVtZW50cyYmKHdlLnJnYj1ROChYLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW3dlLnRoZW1lXS5yZ2Isd2UudGludHx8MCksd2UucmF3X3JnYj1YLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW3dlLnRoZW1lXS5yZ2IpLHdlfWZ1''@;'; + put 'put ''bmN0aW9uIF9iKEgscmUsWCx3ZSl7cmUuQm9yZGVycz1bXTt2YXIgeGU9e30sRmU9e30sWmU9ITE7KEhbMF0ubWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihqZSl7dmFyIFllPWVuKGplKTtzd2l0Y2goSW4oWWVbMF0pKXtjYXNlIjxib3JkZXJzIjpjYXNlIjxib3JkZXJzPiI6Y2Fz''@;'; + put 'put ''ZSI8L2JvcmRlcnM+IjpjYXNlIjwvYm9yZGVyPiI6Y2FzZSI8bGVmdC8+IjpjYXNlIjwvbGVmdD4iOmNhc2UiPHJpZ2h0Lz4iOmNhc2UiPC9yaWdodD4iOmNhc2UiPHRvcC8+IjpjYXNlIjwvdG9wPiI6Y2FzZSI8Ym90dG9tLz4iOmNhc2UiPC9ib3R0b20+IjpjYXNlIjxkaWFnb25hbCI6Y2Fz''@;'; + put 'put ''ZSI8ZGlhZ29uYWw+IjpjYXNlIjxkaWFnb25hbC8+IjpjYXNlIjxob3Jpem9udGFsIjpjYXNlIjxob3Jpem9udGFsPiI6Y2FzZSI8aG9yaXpvbnRhbC8+IjpjYXNlIjx2ZXJ0aWNhbCI6Y2FzZSI8dmVydGljYWw+IjpjYXNlIjx2ZXJ0aWNhbC8+IjpjYXNlIjxzdGFydCI6Y2FzZSI8c3RhcnQ+''@;'; + put 'put ''IjpjYXNlIjxzdGFydC8+IjpjYXNlIjwvc3RhcnQ+IjpjYXNlIjxlbmQiOmNhc2UiPGVuZD4iOmNhc2UiPGVuZC8+IjpjYXNlIjwvZW5kPiI6Y2FzZSI8Y29sb3IvPiI6Y2FzZSI8L2NvbG9yPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2Fz''@;'; + put 'put ''ZSI8Ym9yZGVyIjpjYXNlIjxib3JkZXI+IjpjYXNlIjxib3JkZXIvPiI6eGU9e30sWWUuZGlhZ29uYWxVcCYmKHhlLmRpYWdvbmFsVXA9RGkoWWUuZGlhZ29uYWxVcCkpLFllLmRpYWdvbmFsRG93biYmKHhlLmRpYWdvbmFsRG93bj1EaShZZS5kaWFnb25hbERvd24pKSxyZS5Cb3JkZXJzLnB1''@;'; + put 'put ''c2goeGUpO2JyZWFrO2Nhc2UiPGxlZnQiOmNhc2UiPGxlZnQ+IjpGZT14ZS5sZWZ0PXt9LFllLnN0eWxlJiYoRmUuc3R5bGU9WWUuc3R5bGUpO2JyZWFrO2Nhc2UiPHJpZ2h0IjpjYXNlIjxyaWdodD4iOkZlPXhlLnJpZ2h0PXt9LFllLnN0eWxlJiYoRmUuc3R5bGU9WWUuc3R5bGUpO2JyZWFr''@;'; + put 'put ''O2Nhc2UiPHRvcCI6Y2FzZSI8dG9wPiI6RmU9eGUudG9wPXt9LFllLnN0eWxlJiYoRmUuc3R5bGU9WWUuc3R5bGUpO2JyZWFrO2Nhc2UiPGJvdHRvbSI6Y2FzZSI8Ym90dG9tPiI6RmU9eGUuYm90dG9tPXt9LFllLnN0eWxlJiYoRmUuc3R5bGU9WWUuc3R5bGUpO2JyZWFrO2Nhc2UiPC9kaWFn''@;'; + put 'put ''b25hbD4iOnhlLmRpYWdvbmFsPUZlLEZlPXt9O2JyZWFrO2Nhc2UiPC9ob3Jpem9udGFsPiI6eGUuaG9yaXpvbnRhbD1GZSxGZT17fTticmVhaztjYXNlIjwvdmVydGljYWw+Ijp4ZS52ZXJ0aWNhbD1GZSxGZT17fTticmVhaztjYXNlIjxjb2xvciI6Y2FzZSI8Y29sb3I+IjpGZS5jb2xvcnx8''@;'; + put 'put ''KEZlLmNvbG9yPXt9KSxZZS5hdXRvJiYoRmUuY29sb3IuYXV0bz1EaShZZS5hdXRvKSksbnVsbCE9WWUucmdiP0ZlLmNvbG9yLnJnYj1ZZS5yZ2Iuc2xpY2UoLTYpOlllLmluZGV4ZWQ/KEZlLmNvbG9yLmluZGV4PXBhcnNlSW50KFllLmluZGV4ZWQsMTApLEZlLmNvbG9yLnJnYj1NMyhGZS5j''@;'; + put 'put ''b2xvci5pbmRleCxyZS5JbmRleGVkLCExKSk6WWUudGhlbWUmJihGZS5jb2xvci50aGVtZT1wYXJzZUludChZZS50aGVtZSwxMCksWWUudGludCYmKEZlLmNvbG9yLnRpbnQ9cGFyc2VGbG9hdChZZS50aW50KSksWWUudGhlbWUmJlgudGhlbWVFbGVtZW50cyYmWC50aGVtZUVsZW1lbnRzLmNs''@;'; + put 'put ''clNjaGVtZSYmKEZlLmNvbG9yLnJnYj1ROChYLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW0ZlLmNvbG9yLnRoZW1lXS5yZ2IsRmUuY29sb3IudGludHx8MCkpKSwhWWUuYXV0byYmbnVsbD09WWUucmdiJiYhWWUuaW5kZXhlZCYmZGVsZXRlIEZlLmNvbG9yO2JyZWFrO2Nhc2UiPGV4dCI6WmU9''@;'; + put 'put ''ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOlplPSExO2JyZWFrO2RlZmF1bHQ6aWYod2UmJndlLldURiYmIVplKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrWWVbMF0rIiBpbiBib3JkZXJzIil9fSl9ZnVuY3Rpb24gQ2QoSCxyZSl7dmFyIFg9WyI8IityZV07cmV0dXJuIEgmJkguc3R5''@;'; + put 'put ''bGU/KFgucHVzaCgnIHN0eWxlPSInK0guc3R5bGUrJyInKSxILmNvbG9yPyhYLnB1c2goIj4iKSxYLnB1c2goWHMoSC5jb2xvciwhMCkpLFguam9pbigiIikrIjwvIityZSsiPiIpOlguam9pbigiIikrIi8+Iik6WFswXSsiLz4ifWZ1bmN0aW9uIGFFKEgscmUsWCx3ZSl7cmUuRmlsbHM9W107''@;'; + put 'put ''dmFyIHhlPXt9LEZlPXt9LFplPSExLGplPSExOyhIWzBdLm1hdGNoKEd0KXx8W10pLmZvckVhY2goZnVuY3Rpb24oWWUpe3ZhciBNdD1lbihZZSk7c3dpdGNoKEluKE10WzBdKSl7Y2FzZSI8ZmlsbHMiOmNhc2UiPGZpbGxzPiI6Y2FzZSI8L2ZpbGxzPiI6Y2FzZSI8L2ZpbGw+IjpjYXNlIjwv''@;'; + put 'put ''Z3JhZGllbnRGaWxsPiI6Y2FzZSI8YmdDb2xvci8+IjpjYXNlIjwvYmdDb2xvcj4iOmNhc2UiPGZnQ29sb3IvPiI6Y2FzZSI8L2ZnQ29sb3I+IjpjYXNlIjxjb2xvci8+IjpjYXNlIjwvY29sb3I+IjpjYXNlIjxzdG9wLz4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4''@;'; + put 'put ''dExzdD4iOmJyZWFrO2Nhc2UiPGZpbGw+IjpjYXNlIjxmaWxsIjpjYXNlIjxmaWxsLz4iOnJlLkZpbGxzLnB1c2goeGU9e30pO2JyZWFrO2Nhc2UiPGdyYWRpZW50RmlsbD4iOnhlLnN0b3BzPVtdO2JyZWFrO2Nhc2UiPGdyYWRpZW50RmlsbCI6eGUuc3RvcHM9W10sTXQuZGVncmVlJiYoeGUu''@;'; + put 'put ''YW5nbGU9K010LmRlZ3JlZSk7YnJlYWs7Y2FzZSI8cGF0dGVybkZpbGwiOmNhc2UiPHBhdHRlcm5GaWxsPiI6TXQucGF0dGVyblR5cGUmJih4ZS5wYXR0ZXJuVHlwZT1NdC5wYXR0ZXJuVHlwZSk7YnJlYWs7Y2FzZSI8cGF0dGVybkZpbGwvPiI6Y2FzZSI8L3BhdHRlcm5GaWxsPiI6aWYoWmUp''@;'; + put 'put ''dGhyb3cgbmV3IEVycm9yKCJiYWQgc3RvcCIpO2JyZWFrO2Nhc2UiPGNvbG9yIjpjYXNlIjxiZ0NvbG9yIjpjYXNlIjxmZ0NvbG9yIjp2YXIgeHQ9SW4oTXRbMF0pLnNsaWNlKDEpOyJjb2xvciIhPXh0JiYheGVbeHRdJiYoeGVbeHRdPXt9KTt2YXIgUnQ9WmU/RmU6eGVbeHRdO251bGwhPU10''@;'; + put 'put ''LmluZGV4ZWQmJihSdC5pbmRleD1wYXJzZUludChNdC5pbmRleGVkLDEwKSxSdC5yZ2I9TTMoUnQuaW5kZXgscmUuSW5kZXhlZCkpLG51bGwhPU10LnRoZW1lJiYoUnQudGhlbWU9cGFyc2VJbnQoTXQudGhlbWUsMTApKSxudWxsIT1NdC50aW50JiYoUnQudGludD1wYXJzZUZsb2F0KE10LnRp''@;'; + put 'put ''bnQpKSxudWxsIT1NdC5yZ2ImJihSdC5yZ2I9TXQucmdiLnNsaWNlKC02KSksbnVsbCE9TXQuYXV0byYmZGVsZXRlIHhlW3h0XSxudWxsIT1SdC50aGVtZSYmIVJ0LnJnYiYmWC50aGVtZUVsZW1lbnRzJiYoUnQucmdiPVE4KFgudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbUnQudGhlbWVdLnJn''@;'; + put 'put ''YixSdC50aW50fHwwKSx3ZS5XVEYmJihSdC5yYXdfcmdiPVgudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbUnQudGhlbWVdLnJnYikpO2JyZWFrO2Nhc2UiPHN0b3A+IjpaZT0hMCxGZT17fTticmVhaztjYXNlIjxzdG9wIjpaZT0hMCxGZT17fSxudWxsIT1NdC5wb3NpdGlvbiYmKEZlLnY9cGFy''@;'; + put 'put ''c2VGbG9hdChNdC5wb3NpdGlvbikpO2JyZWFrO2Nhc2UiPC9zdG9wPiI6WmU9ITEseGUuc3RvcHMucHVzaChGZSk7YnJlYWs7Y2FzZSI8ZXh0IjpqZT0hMDticmVhaztjYXNlIjwvZXh0PiI6amU9ITE7YnJlYWs7ZGVmYXVsdDppZih3ZSYmd2UuV1RGJiYhamUpdGhyb3cgbmV3IEVycm9yKCJ1''@;'; + put 'put ''bnJlY29nbml6ZWQgIitNdFswXSsiIGluIGZpbGxzIil9fSl9ZnVuY3Rpb24gZDYoSCxyZSxYLHdlKXtyZS5Gb250cz1bXTt2YXIgeGU9e30sRmU9ITE7KEhbMF0ubWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihaZSl7dmFyIGplPWVuKFplKTtzd2l0Y2goSW4oamVbMF0pKXtjYXNl''@;'; + put 'put ''Ijxmb250cyI6Y2FzZSI8Zm9udHM+IjpjYXNlIjwvZm9udHM+IjpicmVhaztjYXNlIjxmb250IjpjYXNlIjxmb250PiI6aWYoIi8+IiE9WmUuc2xpY2UoLTIpKWJyZWFrO2Nhc2UiPC9mb250PiI6Y2FzZSI8Zm9udC8+IjpyZS5Gb250cy5wdXNoKHhlKSx4ZT17fTticmVhaztjYXNlIjxuYW1l''@;'; + put 'put ''IjpqZS52YWwmJih4ZS5uYW1lPVcwKGplLnZhbCkpO2JyZWFrO2Nhc2UiPG5hbWUvPiI6Y2FzZSI8L25hbWU+IjpicmVhaztjYXNlIjxiIjp4ZS5ib2xkPWplLnZhbD9EaShqZS52YWwpOjE7YnJlYWs7Y2FzZSI8Yi8+IjpjYXNlIjxiPiI6eGUuYm9sZD0xO2JyZWFrO2Nhc2UiPC9iPiI6YnJl''@;'; + put 'put ''YWs7Y2FzZSI8aSI6eGUuaXRhbGljPWplLnZhbD9EaShqZS52YWwpOjE7YnJlYWs7Y2FzZSI8aS8+IjpjYXNlIjxpPiI6eGUuaXRhbGljPTE7YnJlYWs7Y2FzZSI8L2k+IjpicmVhaztjYXNlIjx1Ijpzd2l0Y2goamUudmFsKXtjYXNlIm5vbmUiOnhlLnVuZGVybGluZT0wO2JyZWFrO2Nhc2Ui''@;'; + put 'put ''c2luZ2xlIjp4ZS51bmRlcmxpbmU9MTticmVhaztjYXNlImRvdWJsZSI6eGUudW5kZXJsaW5lPTI7YnJlYWs7Y2FzZSJzaW5nbGVBY2NvdW50aW5nIjp4ZS51bmRlcmxpbmU9MzM7YnJlYWs7Y2FzZSJkb3VibGVBY2NvdW50aW5nIjp4ZS51bmRlcmxpbmU9MzR9YnJlYWs7Y2FzZSI8dS8+Ijpj''@;'; + put 'put ''YXNlIjx1PiI6eGUudW5kZXJsaW5lPTE7YnJlYWs7Y2FzZSI8L3U+IjpicmVhaztjYXNlIjxzdHJpa2UiOnhlLnN0cmlrZT1qZS52YWw/RGkoamUudmFsKToxO2JyZWFrO2Nhc2UiPHN0cmlrZS8+Ijp4ZS5zdHJpa2U9MTticmVhaztjYXNlIjxvdXRsaW5lIjp4ZS5vdXRsaW5lPWplLnZhbD9E''@;'; + put 'put ''aShqZS52YWwpOjE7YnJlYWs7Y2FzZSI8b3V0bGluZS8+Ijp4ZS5vdXRsaW5lPTE7YnJlYWs7Y2FzZSI8c2hhZG93Ijp4ZS5zaGFkb3c9amUudmFsP0RpKGplLnZhbCk6MTticmVhaztjYXNlIjxzaGFkb3cvPiI6eGUuc2hhZG93PTE7YnJlYWs7Y2FzZSI8Y29uZGVuc2UiOnhlLmNvbmRlbnNl''@;'; + put 'put ''PWplLnZhbD9EaShqZS52YWwpOjE7YnJlYWs7Y2FzZSI8Y29uZGVuc2UvPiI6eGUuY29uZGVuc2U9MTticmVhaztjYXNlIjxleHRlbmQiOnhlLmV4dGVuZD1qZS52YWw/RGkoamUudmFsKToxO2JyZWFrO2Nhc2UiPGV4dGVuZC8+Ijp4ZS5leHRlbmQ9MTticmVhaztjYXNlIjxzeiI6amUudmFs''@;'; + put 'put ''JiYoeGUuc3o9K2plLnZhbCk7YnJlYWs7Y2FzZSI8c3ovPiI6Y2FzZSI8L3N6PiI6YnJlYWs7Y2FzZSI8dmVydEFsaWduIjoibm9uZSIhPShqZS52YWx8fCJub25lIikmJih4ZS52YWxpZ249amUudmFsLnJlcGxhY2UoInNjcmlwdCIsIiIpKTticmVhaztjYXNlIjx2ZXJ0QWxpZ24vPiI6Y2Fz''@;'; + put 'put ''ZSI8L3ZlcnRBbGlnbj4iOmJyZWFrO2Nhc2UiPGZhbWlseSI6amUudmFsJiYoeGUuZmFtaWx5PXBhcnNlSW50KGplLnZhbCwxMCkpO2JyZWFrO2Nhc2UiPGZhbWlseS8+IjpjYXNlIjwvZmFtaWx5PiI6YnJlYWs7Y2FzZSI8c2NoZW1lIjpqZS52YWwmJih4ZS5zY2hlbWU9amUudmFsKTticmVh''@;'; + put 'put ''aztjYXNlIjxzY2hlbWUvPiI6Y2FzZSI8L3NjaGVtZT4iOmJyZWFrO2Nhc2UiPGNoYXJzZXQiOmlmKCIxIj09amUudmFsKWJyZWFrO2plLmNvZGVwYWdlPVlbcGFyc2VJbnQoamUudmFsLDEwKV07YnJlYWs7Y2FzZSI8Y29sb3IiOnhlLmNvbG9yfHwoeGUuY29sb3I9e30pLGplLmF1dG8mJih4''@;'; + put 'put ''ZS5jb2xvci5hdXRvPURpKGplLmF1dG8pKSxqZS5yZ2I/eGUuY29sb3IucmdiPWplLnJnYi5zbGljZSgtNik6amUuaW5kZXhlZD8oeGUuY29sb3IuaW5kZXg9cGFyc2VJbnQoamUuaW5kZXhlZCwxMCkseGUuY29sb3IucmdiPU0zKHhlLmNvbG9yLmluZGV4LHJlLkluZGV4ZWQpKTpqZS50aGVt''@;'; + put 'put ''ZSYmKHhlLmNvbG9yLnRoZW1lPXBhcnNlSW50KGplLnRoZW1lLDEwKSxqZS50aW50JiYoeGUuY29sb3IudGludD1wYXJzZUZsb2F0KGplLnRpbnQpKSxqZS50aGVtZSYmWC50aGVtZUVsZW1lbnRzJiZYLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lJiYoeGUuY29sb3IucmdiPVE4KFgudGhlbWVF''@;'; + put 'put ''bGVtZW50cy5jbHJTY2hlbWVbeGUuY29sb3IudGhlbWVdLnJnYix4ZS5jb2xvci50aW50fHwwKSkpO2JyZWFrO2Nhc2UiPGNvbG9yLz4iOmNhc2UiPC9jb2xvcj4iOmJyZWFrO2Nhc2UiPEFsdGVybmF0ZUNvbnRlbnQiOkZlPSEwO2JyZWFrO2Nhc2UiPC9BbHRlcm5hdGVDb250ZW50PiI6RmU9''@;'; + put 'put ''ITE7YnJlYWs7Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8ZXh0IjpGZT0hMDticmVhaztjYXNlIjwvZXh0PiI6RmU9ITE7YnJlYWs7ZGVmYXVsdDppZih3ZSYmd2UuV1RGJiYhRmUpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQg''@;'; + put 'put ''IitqZVswXSsiIGluIGZvbnRzIil9fSl9dmFyIEx2PXswOiJub25lIiwxOiJzaW5nbGUiLDI6ImRvdWJsZSIsMzM6InNpbmdsZUFjY291bnRpbmciLDM0OiJkb3VibGVBY2NvdW50aW5nIn0seDM9WyJudW1GbXRJZCIsImZpbGxJZCIsImZvbnRJZCIsImJvcmRlcklkIiwieGZJZCJdLEI0PVsi''@;'; + put 'put ''YXBwbHlBbGlnbm1lbnQiLCJhcHBseUJvcmRlciIsImFwcGx5RmlsbCIsImFwcGx5Rm9udCIsImFwcGx5TnVtYmVyRm9ybWF0IiwiYXBwbHlQcm90ZWN0aW9uIiwicGl2b3RCdXR0b24iLCJxdW90ZVByZWZpeCJdLHA2PWZ1bmN0aW9uKCl7dmFyIEg9LzwoPzpcdys6KT9mb250KFtePl0qKT5b''@;'; + put 'put ''XFNcc10qPzxcLyg/Olx3KzopP2ZvbnQ+LyxyZT0vPCg/Olx3KzopP251bUZtdChbXj5dKilcLz4vLFg9LzwoPzpcdys6KT9maWxsKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2ZpbGw+Lyx4ZT0vPCg/Olx3KzopP2JvcmRlcihbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT9ib3JkZXI+''@;'; + put 'put ''LztyZXR1cm4gZnVuY3Rpb24oamUsWWUsTXQseHQpe3ZhciBubixDbixSdD17fSxZdD17fTtyZXR1cm4obm49amUubWF0Y2goSCkpJiYoZDYobm4sUnQsTXQseHQpLChSdC5Gb250c3x8W10pWzBdJiZibihZdCxSdC5Gb250c1swXSkpLChubj1qZS5tYXRjaChyZSkpJiYoQ249ZW4oVzAobm5b''@;'; + put 'put ''MF0pKSxZdC56PUNuLmZvcm1hdENvZGU/Z3IoQ24uZm9ybWF0Q29kZSk6KFllLk51bWJlckZtdHx8W10pWytDbi5udW1GbXRJZF18fCJHZW5lcmFsIiksKG5uPWplLm1hdGNoKFgpKSYmKGFFKG5uLFJ0LE10LHh0KSwoUnQuRmlsbHN8fFtdKVswXSYmYm4oWXQsUnQuRmlsbHNbMF0pKSwobm49''@;'; + put 'put ''amUubWF0Y2goeGUpKSYmKF9iKG5uLFJ0LE10LHh0KSwoUnQuQm9yZGVyc3x8W10pWzBdJiZibihZdCxSdC5Cb3JkZXJzWzBdKSksWXR9fSgpLGJvPS88KD86XHcrOik/ZHhmPltcU1xzXSo/PFwvKD86XHcrOik/ZHhmPi9nLEdhPS88KD86XHcrOik/dGFibGVTdHlsZVxiLio/PltcU1xzXSo/''@;'; + put 'put ''PFwvKD86XHcrOik/dGFibGVTdHlsZT4vZzt2YXIgUnY9ZnVuY3Rpb24oKXt2YXIgcmU9LzwoPzpcdys6KT9udW1GbXRzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP251bUZtdHM+LyxYPS88KD86XHcrOik/Y2VsbFN0eWxlWGZzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2NlbGxT''@;'; + put 'put ''dHlsZVhmcz4vLHdlPS88KD86XHcrOik/Y2VsbFN0eWxlcyhbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT9jZWxsU3R5bGVzPi8seGU9LzwoPzpcdys6KT9jZWxsWGZzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2NlbGxYZnM+LyxGZT0vPCg/Olx3KzopP2ZpbGxzKFtePl0qKT5bXFNc''@;'; + put 'put ''c10qPzxcLyg/Olx3KzopP2ZpbGxzPi8sWmU9LzwoPzpcdys6KT9mb250cyhbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT9mb250cz4vLGplPS88KD86XHcrOik/Ym9yZGVycyhbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT9ib3JkZXJzPi8sWWU9LzwoPzpcdys6KT9pbmRleGVkQ29sb3Jz''@;'; + put 'put ''KFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2luZGV4ZWRDb2xvcnM+LyxNdD0vPCg/Olx3KzopP3RhYmxlU3R5bGVzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP3RhYmxlU3R5bGVzPi8seHQ9LzwoPzpcdys6KT9keGZzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2R4ZnM+Lzty''@;'; + put 'put ''ZXR1cm4gZnVuY3Rpb24oWXQsbm4sQ24pe3ZhciB6dCxEdD17fTtyZXR1cm4gWXQ/KCh6dD0oWXQ9WXQucmVwbGFjZSgvPCEtLShbXHNcU10qPyktLT4vZ20sIiIpLnJlcGxhY2UoLzwhRE9DVFlQRVteXFtdKlxbW15cXV0qXF0+L2dtLCIiKSkubWF0Y2goWWUpKSYmZnVuY3Rpb24gZEUoSCxy''@;'; + put 'put ''ZSxYKXtyZS5JbmRleGVkfHwocmUuSW5kZXhlZD1bXSk7dmFyIHdlPSExOyhIWzBdLm1hdGNoKEd0KXx8W10pLmZvckVhY2goZnVuY3Rpb24oeGUpe3ZhciBGZT1lbih4ZSk7c3dpdGNoKEluKEZlWzBdKSl7Y2FzZSI8aW5kZXhlZENvbG9ycz4iOmNhc2UiPGluZGV4ZWRDb2xvcnMiOmNhc2Ui''@;'; + put 'put ''PGluZGV4ZWRDb2xvcnMvPiI6Y2FzZSI8L2luZGV4ZWRDb2xvcnM+IjpjYXNlIjwvcmdiQ29sb3I+IjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxyZ2JDb2xvciI6ZGVsZXRlIEZlWzBdO3ZhciBaZT1wYXJzZUludChGZS5yZ2Iuc2xp''@;'; + put 'put ''Y2UoLTYpLDE2KTtyZS5JbmRleGVkLnB1c2goW1plPj4xNiYyNTUsWmU+PjgmMjU1LDI1NSZaZV0pO2JyZWFrO2Nhc2UiPGV4dCI6d2U9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOndlPSExO2JyZWFrO2RlZmF1bHQ6aWYoWCYmWC5XVEYmJiF3ZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXpl''@;'; + put 'put ''ZCAiK0ZlWzBdKyIgaW4gY2VsbFN0eWxlcyIpfX0pfSh6dCxEdCxDbiksKHp0PVl0Lm1hdGNoKHJlKSkmJmZ1bmN0aW9uIHNFKEgscmUsWCl7cmUuTnVtYmVyRm10PVtdO2Zvcih2YXIgd2U9b24oRi5fdGFibGUpLHhlPTA7eGU8d2UubGVuZ3RoOysreGUpcmUuTnVtYmVyRm10W3dlW3hlXV09''@;'; + put 'put ''Ri5fdGFibGVbd2VbeGVdXTt2YXIgRmU9SFswXS5tYXRjaChHdCk7aWYoRmUpZm9yKHhlPTA7eGU8RmUubGVuZ3RoOysreGUpe3ZhciBaZT1lbihGZVt4ZV0pO3N3aXRjaChJbihaZVswXSkpe2Nhc2UiPG51bUZtdHMiOmNhc2UiPC9udW1GbXRzPiI6Y2FzZSI8bnVtRm10cy8+IjpjYXNlIjxu''@;'; + put 'put ''dW1GbXRzPiI6Y2FzZSI8L251bUZtdD4iOmJyZWFrO2Nhc2UiPG51bUZtdCI6dmFyIGplPWdyKFcwKFplLmZvcm1hdENvZGUpKSxZZT1wYXJzZUludChaZS5udW1GbXRJZCwxMCk7aWYocmUuTnVtYmVyRm10W1llXT1qZSxZZT4wKXtpZihZZT4zOTIpe2ZvcihZZT0zOTI7WWU+NjAmJm51bGwh''@;'; + put 'put ''PXJlLk51bWJlckZtdFtZZV07LS1ZZSk7cmUuTnVtYmVyRm10W1llXT1qZX1GLmxvYWQoamUsWWUpfWJyZWFrO2RlZmF1bHQ6aWYoWC5XVEYpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitaZVswXSsiIGluIG51bUZtdHMiKX19fSh6dCxEdCxDbiksKHp0PVl0Lm1hdGNoKFplKSkm''@;'; + put 'put ''JmQ2KHp0LER0LG5uLENuKSwoenQ9WXQubWF0Y2goRmUpKSYmYUUoenQsRHQsbm4sQ24pLCh6dD1ZdC5tYXRjaChqZSkpJiZfYih6dCxEdCxubixDbiksKHp0PVl0Lm1hdGNoKFgpKSYmZnVuY3Rpb24gZkUoSCxyZSxYKXtyZS5DZWxsU3R5bGVYZj1bXTt2YXIgd2UseGU9ITE7KEhbMF0ubWF0''@;'; + put 'put ''Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihGZSl7dmFyIFplPWVuKEZlKSxqZT0wO3N3aXRjaChJbihaZVswXSkpe2Nhc2UiPGNlbGxTdHlsZVhmcyI6Y2FzZSI8Y2VsbFN0eWxlWGZzPiI6Y2FzZSI8Y2VsbFN0eWxlWGZzLz4iOmNhc2UiPC9jZWxsU3R5bGVYZnM+IjpjYXNlIjwveGY+''@;'; + put 'put ''IjpjYXNlIjwvYWxpZ25tZW50PiI6Y2FzZSI8L3Byb3RlY3Rpb24+IjpjYXNlIjxwcm90ZWN0aW9uLz4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPHhmIjpjYXNlIjx4Zi8+Ijpmb3IoZGVsZXRlKHdlPVplKVswXSxqZT0wO2plPHgz''@;'; + put 'put ''Lmxlbmd0aDsrK2plKXdlW3gzW2plXV0mJih3ZVt4M1tqZV1dPXBhcnNlSW50KHdlW3gzW2plXV0sMTApKTtmb3IoamU9MDtqZTxCNC5sZW5ndGg7KytqZSl3ZVtCNFtqZV1dJiYod2VbQjRbamVdXT1EaSh3ZVtCNFtqZV1dKSk7aWYocmUuTnVtYmVyRm10JiZ3ZS5udW1GbXRJZD4zOTIpZm9y''@;'; + put 'put ''KGplPTM5MjtqZT42MDstLWplKWlmKHJlLk51bWJlckZtdFt3ZS5udW1GbXRJZF09PXJlLk51bWJlckZtdFtqZV0pe3dlLm51bUZtdElkPWplO2JyZWFrfXJlLkNlbGxTdHlsZVhmLnB1c2god2UpO2JyZWFrO2Nhc2UiPGFsaWdubWVudCI6Y2FzZSI8YWxpZ25tZW50Lz4iOnZhciBZZT17fTta''@;'; + put 'put ''ZS52ZXJ0aWNhbCYmKFllLnZlcnRpY2FsPVplLnZlcnRpY2FsKSxaZS5ob3Jpem9udGFsJiYoWWUuaG9yaXpvbnRhbD1aZS5ob3Jpem9udGFsKSxudWxsIT1aZS50ZXh0Um90YXRpb24mJihZZS50ZXh0Um90YXRpb249WmUudGV4dFJvdGF0aW9uKSxaZS5pbmRlbnQmJihZZS5pbmRlbnQ9WmUu''@;'; + put 'put ''aW5kZW50KSxaZS53cmFwVGV4dCYmKFllLndyYXBUZXh0PVplLndyYXBUZXh0KSxaZS5zaHJpbmtUb0ZpdCYmKFllLnNocmlua1RvRml0PURpKFplLnNocmlua1RvRml0KSksd2UuYWxpZ25tZW50PVllO2JyZWFrO2Nhc2UiPHByb3RlY3Rpb24iOndlLnByb3RlY3Rpb249e30sRGkoWmUuaGlk''@;'; + put 'put ''ZGVuKSYmKHdlLnByb3RlY3Rpb24uaGlkZGVuPSEwKSxudWxsIT1aZS5sb2NrZWQmJih3ZS5wcm90ZWN0aW9uLmVkaXRhYmxlPSFEaShaZS5sb2NrZWQpKTticmVhaztjYXNlIjxleHQiOnhlPSEwO2JyZWFrO2Nhc2UiPC9leHQ+Ijp4ZT0hMTticmVhaztkZWZhdWx0OmlmKFgmJlguV1RGJiYh''@;'; + put 'put ''eGUpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitaZVswXSsiIGluIGNlbGxTdHlsZVhmcyIpfX0pfSh6dCxEdCxDbiksKHp0PVl0Lm1hdGNoKHdlKSkmJmZ1bmN0aW9uIGhFKEgscmUsWCl7cmUuQ2VsbFN0eWxlWGZ8fChyZS5DZWxsU3R5bGVYZj1bXSk7dmFyIHdlPSExOyhIWzBd''@;'; + put 'put ''Lm1hdGNoKEd0KXx8W10pLmZvckVhY2goZnVuY3Rpb24oeGUpe3ZhciBGZT1lbih4ZSk7c3dpdGNoKEluKEZlWzBdKSl7Y2FzZSI8Y2VsbFN0eWxlcyI6Y2FzZSI8Y2VsbFN0eWxlcz4iOmNhc2UiPGNlbGxTdHlsZXMvPiI6Y2FzZSI8L2NlbGxTdHlsZXM+IjpjYXNlIjwveGY+IjpjYXNlIjwv''@;'; + put 'put ''Y2VsbFN0eWxlPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8Y2VsbFN0eWxlIjpjYXNlIjxjZWxsU3R5bGUvPiI6ZGVsZXRlIEZlWzBdO3ZhciBaZT0rRmUueGZJZDtpZihyZS5DZWxsU3R5bGVYZltaZV0pcmUuQ2VsbFN0eWxlWGZb''@;'; + put 'put ''WmVdLnN0eWxlPVcwKEZlLm5hbWUpO2Vsc2UgaWYoIUZlLmJ1aWx0aW5JZCl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIENlbGxTdHlsZSAiK1plKTticmVhaztjYXNlIjxleHQiOndlPSEwO2JyZWFrO2Nhc2UiPC9leHQ+Ijp3ZT0hMTticmVhaztkZWZhdWx0OmlmKFgmJlguV1RG''@;'; + put 'put ''JiYhd2UpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitGZVswXSsiIGluIGNlbGxTdHlsZXMiKX19KX0oenQsRHQsQ24pLCh6dD1ZdC5tYXRjaCh4ZSkpJiZmdW5jdGlvbiBjRShILHJlLFgpe3JlLkNlbGxYZj1bXTt2YXIgd2UseGU9ITE7KEhbMF0ubWF0Y2goR3QpfHxbXSkuZm9y''@;'; + put 'put ''RWFjaChmdW5jdGlvbihGZSl7dmFyIFplPWVuKEZlKSxqZT0wO3N3aXRjaChJbihaZVswXSkpe2Nhc2UiPGNlbGxYZnMiOmNhc2UiPGNlbGxYZnM+IjpjYXNlIjxjZWxsWGZzLz4iOmNhc2UiPC9jZWxsWGZzPiI6Y2FzZSI8L3hmPiI6Y2FzZSI8L2FsaWdubWVudD4iOmNhc2UiPC9wcm90ZWN0''@;'; + put 'put ''aW9uPiI6Y2FzZSI8cHJvdGVjdGlvbi8+IjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjx4ZiI6Y2FzZSI8eGYvPiI6Zm9yKGRlbGV0ZSh3ZT1aZSlbMF0samU9MDtqZTx4My5sZW5ndGg7KytqZSl3ZVt4M1tqZV1dJiYod2VbeDNbamVd''@;'; + put 'put ''XT1wYXJzZUludCh3ZVt4M1tqZV1dLDEwKSk7Zm9yKGplPTA7amU8QjQubGVuZ3RoOysramUpd2VbQjRbamVdXSYmKHdlW0I0W2plXV09RGkod2VbQjRbamVdXSkpO2lmKHJlLk51bWJlckZtdCYmd2UubnVtRm10SWQ+MzkyKWZvcihqZT0zOTI7amU+NjA7LS1qZSlpZihyZS5OdW1iZXJGbXRb''@;'; + put 'put ''d2UubnVtRm10SWRdPT1yZS5OdW1iZXJGbXRbamVdKXt3ZS5udW1GbXRJZD1qZTticmVha31yZS5DZWxsU3R5bGVYZiYmd2UueGZJZCYmcmUuQ2VsbFN0eWxlWGZbd2UueGZJZF0mJnJlLkNlbGxTdHlsZVhmW3dlLnhmSWRdLnN0eWxlJiYod2Uuc3R5bGU9cmUuQ2VsbFN0eWxlWGZbd2UueGZJ''@;'; + put 'put ''ZF0uc3R5bGUpLHJlLkNlbGxYZi5wdXNoKHdlKTticmVhaztjYXNlIjxhbGlnbm1lbnQiOmNhc2UiPGFsaWdubWVudC8+Ijp2YXIgWWU9e307WmUudmVydGljYWwmJihZZS52ZXJ0aWNhbD1aZS52ZXJ0aWNhbCksWmUuaG9yaXpvbnRhbCYmKFllLmhvcml6b250YWw9WmUuaG9yaXpvbnRhbCks''@;'; + put 'put ''bnVsbCE9WmUudGV4dFJvdGF0aW9uJiYoWWUudGV4dFJvdGF0aW9uPVplLnRleHRSb3RhdGlvbiksWmUuaW5kZW50JiYoWWUuaW5kZW50PVplLmluZGVudCksWmUud3JhcFRleHQmJihZZS53cmFwVGV4dD1EaShaZS53cmFwVGV4dCkpLFplLnNocmlua1RvRml0JiYoWWUuc2hyaW5rVG9GaXQ9''@;'; + put 'put ''RGkoWmUuc2hyaW5rVG9GaXQpKSx3ZS5hbGlnbm1lbnQ9WWU7YnJlYWs7Y2FzZSI8cHJvdGVjdGlvbiI6d2UucHJvdGVjdGlvbj17fSxEaShaZS5oaWRkZW4pJiYod2UucHJvdGVjdGlvbi5oaWRkZW49ITApLG51bGwhPVplLmxvY2tlZCYmKHdlLnByb3RlY3Rpb24uZWRpdGFibGU9IURpKFpl''@;'; + put 'put ''LmxvY2tlZCkpO2JyZWFrO2Nhc2UiPEFsdGVybmF0ZUNvbnRlbnQiOmNhc2UiPGV4dCI6eGU9ITA7YnJlYWs7Y2FzZSI8L0FsdGVybmF0ZUNvbnRlbnQ+IjpjYXNlIjwvZXh0PiI6eGU9ITE7YnJlYWs7ZGVmYXVsdDppZihYJiZYLldURiYmIXhlKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25p''@;'; + put 'put ''emVkICIrWmVbMF0rIiBpbiBjZWxsWGZzIil9fSl9KHp0LER0LENuKSwoenQ9WXQubWF0Y2goeHQpKSYmZnVuY3Rpb24gT3YoSCxyZSxYLHdlKXtyZS5EWEZ8fChyZS5EWEY9W10pLChIWzBdLm1hdGNoKGJvKXx8W10pLmZvckVhY2goZnVuY3Rpb24oeGUpe3JlLkRYRi5wdXNoKHA2KHhlLHJl''@;'; + put 'put ''LFgsd2UpKX0pfSh6dCxEdCxubixDbiksKHp0PVl0Lm1hdGNoKE10KSkmJmZ1bmN0aW9uIEZSKEgscmUsWCx3ZSl7cmUuVGFibGV8fChyZS5UYWJsZT1bXSksKEhbMF0ubWF0Y2goR2EpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4ZSl7cmUuVGFibGUucHVzaChmdW5jdGlvbiBQUihILHJlLFgs''@;'; + put 'put ''d2Upe3ZhciB4ZT0hMSxGZT17fTtyZXR1cm4oSC5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKFplKXt2YXIgamU9ZW4oWmUpO3N3aXRjaChJbihqZVswXSkpe2Nhc2UiPHRhYmxlU3R5bGU+IjpjYXNlIjx0YWJsZVN0eWxlIjpGZS5uYW1lPWplLm5hbWUucmVwbGFjZSgvXihUYWJs''@;'; + put 'put ''ZXxQaXZvdClTdHlsZS8sIiIpLEZlLnJhd25hbWU9amUubmFtZSxGZS5waXZvdD0hamUucGl2b3R8fERpKGplLnBpdm90KSxGZS50YWJsZT0hamUudGFibGV8fERpKGplLnRhYmxlKTticmVhaztjYXNlIjx0YWJsZVN0eWxlLz4iOmNhc2UiPC90YWJsZVN0eWxlPiI6Y2FzZSI8ZXh0THN0Ijpj''@;'; + put 'put ''YXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8dGFibGVTdHlsZUVsZW1lbnQiOmlmKGplLnR5cGUmJmplLmR4ZklkKXtpZighcmUuRFhGfHwhcmUuRFhGWytqZS5keGZJZF0pdGhyb3cgbmV3IEVycm9yKFplKyIgY2Fubm90IGZpbmQgRFhGIik7RmVbamUudHlwZV09''@;'; + put 'put ''cmUuRFhGWytqZS5keGZJZF19YnJlYWs7Y2FzZSI8ZXh0Ijp4ZT0hMDticmVhaztjYXNlIjwvZXh0PiI6eGU9ITE7YnJlYWs7ZGVmYXVsdDppZih3ZSYmd2UuV1RGJiYheGUpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitqZVswXSsiIGluIHRhYmxlU3R5bGUiKX19KSxGZX0oeGUs''@;'; + put 'put ''cmUsMCx3ZSkpfSl9KHp0LER0LDAsQ24pLChEdC5Gb250c3x8W10pWzBdJiZTMyhEdC5Gb250c1swXSksRHQpOkR0fX0oKSxIUj1iaSgic3R5bGVTaGVldCIsbnVsbCx7eG1sbnM6WDAubWFpblswXSwieG1sbnM6dnQiOlgwLnZ0fSk7ZnVuY3Rpb24gTlIoSCxyZSl7dmFyIHdlLFg9W2NuLEhS''@;'; + put 'put ''XTtILlNTRiYmbnVsbCE9KHdlPWZ1bmN0aW9uIHVFKEgpe3ZhciByZT1bIjxudW1GbXRzPiJdO3JldHVybltbNSw4XSxbMjMsMjZdLFs0MSw0NF0sWzUwLDM5Ml1dLmZvckVhY2goZnVuY3Rpb24oWCl7Zm9yKHZhciB3ZT1YWzBdO3dlPD1YWzFdOysrd2UpbnVsbCE9SFt3ZV0mJihyZVtyZS5s''@;'; + put 'put ''ZW5ndGhdPWJpKCJudW1GbXQiLG51bGwse251bUZtdElkOndlLGZvcm1hdENvZGU6UnIoSFt3ZV0pfSkpfSksMT09PXJlLmxlbmd0aD8iIjoocmVbcmUubGVuZ3RoXT0iPC9udW1GbXRzPiIscmVbMF09YmkoIm51bUZtdHMiLG51bGwse2NvdW50OnJlLmxlbmd0aC0yfSkucmVwbGFjZSgiLz4i''@;'; + put 'put ''LCI+IikscmUuam9pbigiIikpfShILlNTRikpJiYoWFtYLmxlbmd0aF09d2UpLFhbWC5sZW5ndGhdPWZ1bmN0aW9uIFJSKEgpe3ZhciByZT1bXTtyZXR1cm4gSC5mb3JFYWNoKGZ1bmN0aW9uKFgpe3ZhciB3ZT1bIjxmb250PiJdO1guYm9sZCYmd2UucHVzaCgiPGIvPiIpLFguaXRhbGljJiZ3''@;'; + put 'put ''ZS5wdXNoKCI8aS8+IiksWC5zdHJpa2UmJndlLnB1c2goIjxzdHJpa2UvPiIpLFguc2hhZG93JiZ3ZS5wdXNoKCI8c2hhZG93Lz4iKSxMdlsrWC51bmRlcmxpbmVdJiZ3ZS5wdXNoKCc8dSB2YWw9IicrTHZbK1gudW5kZXJsaW5lXSsnIi8+JyksWC5zeiYmd2UucHVzaCgnPHN6IHZhbD0iJytY''@;'; + put 'put ''LnN6KyciLz4nKSxYLmNvbG9yJiZ3ZS5wdXNoKFhzKFguY29sb3IsITApKSxYLm5hbWUmJndlLnB1c2goJzxuYW1lIHZhbD0iJytYLm5hbWUrJyIvPicpLFguZmFtaWx5JiZ3ZS5wdXNoKCc8ZmFtaWx5IHZhbD0iJytYLmZhbWlseSsnIi8+JyksWC5zY2hlbWUmJndlLnB1c2goJzxzY2hlbWUg''@;'; + put 'put ''dmFsPSInK1guc2NoZW1lKyciLz4nKSxYLnZhbGlnbiYmd2UucHVzaCgnPHZlcnRBbGlnbiB2YWw9IicrWC52YWxpZ24rKCJzdWIiPT1YLnZhbGlnbnx8InN1cGVyIj09WC52YWxpZ24/InNjcmlwdCI6IiIpKyciLz4nKSxyZS5wdXNoKHdlLmpvaW4oIiIpKyI8L2ZvbnQ+Iil9KSwnPGZvbnRz''@;'; + put 'put ''IGNvdW50PSInK3JlLmxlbmd0aCsnIj4nK3JlLmpvaW4oIiIpKyI8L2ZvbnRzPiJ9KChILlN0eWxlc3x8e30pLkZvbnRzfHxbXSksWFtYLmxlbmd0aF09ZnVuY3Rpb24gbEUoSCl7dmFyIHJlPVtdO3JldHVybiBILmZvckVhY2goZnVuY3Rpb24oWCl7dmFyIHdlPW51bGw7aWYoWC5zdG9wcyYm''@;'; + put 'put ''WC5zdG9wcy5sZW5ndGgpe3ZhciB4ZT17fTtYLmFuZ2xlJiYoeGUuZGVncmVlPU1hdGgucm91bmQoWC5hbmdsZSkpLHdlPVguc3RvcHMubWFwKGZ1bmN0aW9uKEZlKXtyZXR1cm4gYmkoInN0b3AiLFhzKEZlLCJjb2xvciIsITApLG51bGwhPUZlLnY/e3Bvc2l0aW9uOkZlLnZ9Ont9KX0pLHJl''@;'; + put 'put ''LnB1c2goIjxmaWxsPiIrYmkoImdyYWRpZW50RmlsbCIsd2Uuam9pbigiIikseGUpKyI8L2ZpbGw+Iil9ZWxzZXtpZihYLmZnQ29sb3Ipe2lmKHdlPSh3ZXx8IiIpKyI8ZmdDb2xvciAiLFguZmdDb2xvci50aGVtZSl3ZSs9J3RoZW1lPSInK1guZmdDb2xvci50aGVtZSsnIicrKFguZmdDb2xv''@;'; + put 'put ''ci50aW50PycgdGludD0iJytYLmZnQ29sb3IudGludCsnIic6IiIpKyIvPiI7ZWxzZSBpZihudWxsIT1YLmZnQ29sb3IuaW5kZXgmJm51bGw9PVguZmdDb2xvci5yZ2Ipd2UrPSdpbmRleGVkPSInK1guZmdDb2xvci5pbmRleCsnIi8+JztlbHNlIGlmKFguZmdDb2xvci5hdXRvKXdlKz0nYXV0''@;'; + put 'put ''bz0iMSIvPic7ZWxzZXtpZihudWxsPT1YLmZnQ29sb3IucmdiKXRocm93IG5ldyBFcnJvcigiQmFkIGNvbG9yICIrb24oWC5mZ0NvbG9yKS5qb2luKCJ8IikpO3dlKz0ncmdiPSJGRicrTG8oWC5mZ0NvbG9yLnJnYikrJyIvPid9InNvbGlkIj09WC5wYXR0ZXJuVHlwZSYmIVguYmdDb2xvciYm''@;'; + put 'put ''KFguYmdDb2xvcj17aW5kZXg6NjR9KX1pZihYLmJnQ29sb3IpaWYod2U9KHdlfHwiIikrIjxiZ0NvbG9yICIsWC5iZ0NvbG9yLnRoZW1lKXdlKz0ndGhlbWU9IicrWC5iZ0NvbG9yLnRoZW1lKyciLz4nO2Vsc2UgaWYobnVsbCE9WC5iZ0NvbG9yLmluZGV4JiZudWxsPT1YLmJnQ29sb3Iucmdi''@;'; + put 'put ''KXdlKz0naW5kZXhlZD0iJytYLmJnQ29sb3IuaW5kZXgrJyIvPic7ZWxzZSBpZihYLmJnQ29sb3IuYXV0byl3ZSs9J2F1dG89IjEiLz4nO2Vsc2V7aWYobnVsbD09WC5iZ0NvbG9yLnJnYil0aHJvdyBuZXcgRXJyb3IoIkJhZCBjb2xvciAiK29uKFguYmdDb2xvcikuam9pbigifCIpKTt3ZSs9''@;'; + put 'put ''J3JnYj0iRkYnK0xvKFguYmdDb2xvci5yZ2IpKyciLz4nfXJlLnB1c2goIjxmaWxsPiIrYmkoInBhdHRlcm5GaWxsIix3ZSx7cGF0dGVyblR5cGU6WC5wYXR0ZXJuVHlwZX0pKyI8L2ZpbGw+Iil9fSksJzxmaWxscyBjb3VudD0iJytyZS5sZW5ndGgrJyI+JytyZS5qb2luKCIiKSsiPC9maWxs''@;'; + put 'put ''cz4ifSgoSC5TdHlsZXN8fHt9KS5GaWxsc3x8W10pLFhbWC5sZW5ndGhdPWZ1bmN0aW9uIER2KEgpe3ZhciByZT1bXTtyZXR1cm4gSC5mb3JFYWNoKGZ1bmN0aW9uKFgpe3ZhciB3ZT1bXTt3ZS5wdXNoKENkKFgubGVmdCwibGVmdCIpKSx3ZS5wdXNoKENkKFgucmlnaHQsInJpZ2h0IikpLHdl''@;'; + put 'put ''LnB1c2goQ2QoWC50b3AsInRvcCIpKSx3ZS5wdXNoKENkKFguYm90dG9tLCJib3R0b20iKSksd2UucHVzaChDZChYLmRpYWdvbmFsLCJkaWFnb25hbCIpKSxyZS5wdXNoKCI8Ym9yZGVyPiIrd2Uuam9pbigiIikrIjwvYm9yZGVyPiIpfSksJzxib3JkZXJzIGNvdW50PSInK3JlLmxlbmd0aCsn''@;'; + put 'put ''Ij4nK3JlLmpvaW4oIiIpKyI8L2JvcmRlcnM+In0oKEguU3R5bGVzfHx7fSkuQm9yZGVyc3x8W10pLFhbWC5sZW5ndGhdPWZ1bmN0aW9uICR6KEgpe3ZhciByZT1bJzx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIi8+J107aWYoSClmb3IodmFyIFg9''@;'; + put 'put ''MTtYPEgubGVuZ3RoOysrWClyZS5wdXNoKGJpKCJ4ZiIsbnVsbCx7bnVtRm10SWQ6SFtYXS5udW1GbXRJZHx8MCxmb250SWQ6SFtYXS5mb250SWR8fDAsZmlsbElkOkhbWF0uZmlsbElkfHwwLGJvcmRlcklkOkhbWF0uYm9yZGVySWR8fDB9KSk7cmV0dXJuJzxjZWxsU3R5bGVYZnMgY291bnQ9''@;'; + put 'put ''IicrcmUubGVuZ3RoKyciPicrcmUuam9pbigiIikrIjwvY2VsbFN0eWxlWGZzPiJ9KHJlLmNlbGxTdHlsZVhmcyksKHdlPWZ1bmN0aW9uIEJSKEgpe3ZhciByZT1bXTtyZXR1cm4gcmVbcmUubGVuZ3RoXT1iaSgiY2VsbFhmcyIsbnVsbCksSC5mb3JFYWNoKGZ1bmN0aW9uKFgpe3ZhciB3ZT1Y''@;'; + put 'put ''LmFsaWdubWVudDtkZWxldGUgWC5hbGlnbm1lbnQ7dmFyIHhlPVgucHJvdGVjdGlvbjtkZWxldGUgWC5wcm90ZWN0aW9uO3ZhciBGZT13ZT9iaSgiYWxpZ25tZW50IixudWxsLHdlKToiIjtGZSs9eGU/YmkoInByb3RlY3Rpb24iLG51bGwse2hpZGRlbjp4ZS5oaWRkZW4/MTowLGxvY2tlZDp4''@;'; + put 'put ''ZS5lZGl0YWJsZT8wOjF9KToiIixyZVtyZS5sZW5ndGhdPWJpKCJ4ZiIsRmV8fG51bGwsWCksd2UmJihYLmFsaWdubWVudD13ZSkseGUmJihYLnByb3RlY3Rpb249eGUpfSkscmVbcmUubGVuZ3RoXT0iPC9jZWxsWGZzPiIsMj09PXJlLmxlbmd0aD8iIjoocmVbMF09YmkoImNlbGxYZnMiLG51''@;'; + put 'put ''bGwse2NvdW50OnJlLmxlbmd0aC0yfSkucmVwbGFjZSgiLz4iLCI+IikscmUuam9pbigiIikpfShyZS5jZWxsWGZzKSkmJihYW1gubGVuZ3RoXT13ZSksWFtYLmxlbmd0aF09ZnVuY3Rpb24ga2QoSCl7dmFyIHJlPVsnPGNlbGxTdHlsZSBuYW1lPSJOb3JtYWwiIHhmSWQ9IjAiIGJ1aWx0aW5J''@;'; + put 'put ''ZD0iMCIvPiddO2lmKEgpZm9yKHZhciBYPTE7WDxILmxlbmd0aDsrK1gpcmUucHVzaChiaSgiY2VsbFN0eWxlIixudWxsLHtuYW1lOkhbWF0ubmFtZSx4ZklkOlh9KSk7cmV0dXJuJzxjZWxsU3R5bGVzIGNvdW50PSInK3JlLmxlbmd0aCsnIj4nK3JlLmpvaW4oIiIpKyI8L2NlbGxTdHlsZXM+''@;'; + put 'put ''In0ocmUuY2VsbFN0eWxlWGZzKSxILlN0eWxlcy5EWEZ8fChILlN0eWxlcy5EWEY9W10pO3ZhciB4ZT1mdW5jdGlvbiBwRShILHJlLFgpe3ZhciB3ZT1bJzx0YWJsZVN0eWxlcyBjb3VudD0iJysoSHx8W10pLmxlbmd0aCsnIiBkZWZhdWx0VGFibGVTdHlsZT0iVGFibGVTdHlsZU1lZGl1bTki''@;'; + put 'put ''IGRlZmF1bHRQaXZvdFN0eWxlPSJQaXZvdFN0eWxlTWVkaXVtNCInXTtyZXR1cm4gSCYmSC5sZW5ndGg/KHdlWzBdKz0iPiIsSC5mb3JFYWNoKGZ1bmN0aW9uKHhlKXt3ZS5wdXNoKGZ1bmN0aW9uIFNkKEgscmUsWCl7dmFyIHdlPVtdO1sid2hvbGVUYWJsZSIsImhlYWRlclJvdyIsInRvdGFs''@;'; + put 'put ''Um93IiwiZmlyc3RDb2x1bW4iLCJsYXN0Q29sdW1uIiwiZmlyc3RSb3dTdHJpcGUiLCJzZWNvbmRSb3dTdHJpcGUiLCJmaXJzdENvbHVtblN0cmlwZSIsInNlY29uZENvbHVtblN0cmlwZSIsImZpcnN0SGVhZGVyQ2VsbCIsImxhc3RIZWFkZXJDZWxsIiwiZmlyc3RUb3RhbENlbGwiLCJsYXN0''@;'; + put 'put ''VG90YWxDZWxsIiwiZmlyc3RTdWJ0b3RhbENvbHVtbiIsInNlY29uZFN1YnRvdGFsQ29sdW1uIiwidGhpcmRTdWJ0b3RhbENvbHVtbiIsImZpcnN0U3VidG90YWxSb3ciLCJzZWNvbmRTdWJ0b3RhbFJvdyIsInRoaXJkU3VidG90YWxSb3ciLCJibGFua1JvdyIsImZpcnN0Q29sdW1uU3ViaGVh''@;'; + put 'put ''ZGluZyIsInNlY29uZENvbHVtblN1YmhlYWRpbmciLCJ0aGlyZENvbHVtblN1YmhlYWRpbmciLCJmaXJzdFJvd1N1YmhlYWRpbmciLCJzZWNvbmRSb3dTdWJoZWFkaW5nIiwidGhpcmRSb3dTdWJoZWFkaW5nIiwicGFnZUZpZWxkTGFiZWxzIiwicGFnZUZpZWxkVmFsdWVzIl0uZm9yRWFjaChm''@;'; + put 'put ''dW5jdGlvbihGZSl7aWYoSFtGZV0pe3ZhciBaZT16NChyZSxIW0ZlXSk7d2UucHVzaCgnPHRhYmxlU3R5bGVFbGVtZW50IGR4ZklkPSInK1plKyciIHR5cGU9IicrRmUrJyIvPicpfX0pO3ZhciB4ZT0nPHRhYmxlU3R5bGUgY291bnQ9Iicrd2UubGVuZ3RoKyciIHBpdm90PSInKyArISFILnBp''@;'; + put 'put ''dm90KyciIG5hbWU9IicrSC5uYW1lKyciJztyZXR1cm4gd2UubGVuZ3RoP3hlKyI+Iit3ZS5qb2luKCIiKSsiPC90YWJsZVN0eWxlPiI6eGUrIi8+In0oeGUscmUpKX0pLHdlLmpvaW4oIiIpKyI8L3RhYmxlU3R5bGVzPiIpOndlWzBdKyIvPiJ9KChILlN0eWxlc3x8e30pLlRhYmxlfHxbXSxI''@;'; + put 'put ''LlN0eWxlcy5EWEYpO3JldHVybiBYW1gubGVuZ3RoXT1mdW5jdGlvbiBnRShILHJlKXtpZighSC5sZW5ndGgpcmV0dXJuJzxkeGZzIGNvdW50PSIwIi8+Jzt2YXIgWD1bJzxkeGZzIGNvdW50PSInK0gubGVuZ3RoKyciPiddO3JldHVybiBILmZvckVhY2goZnVuY3Rpb24od2Upe1gucHVzaChm''@;'; + put 'put ''dW5jdGlvbiBQNChILHJlKXt2YXIgWD17Ym9sZDoiYiIsaXRhbGljOiJpIix2YWxpZ246InZlcnRBbGlnbiJ9LHdlPVsiPGR4Zj4iXSx4ZT1bXSxGZT1bXSxaZT1bXSxZZT1bXTtpZihvbihIKS5mb3JFYWNoKGZ1bmN0aW9uKHh0KXtzd2l0Y2goeHQpe2Nhc2UiYm9sZCI6Y2FzZSJpdGFsaWMi''@;'; + put 'put ''OmNhc2Uic3RyaWtlIjpjYXNlInVuZGVybGluZSI6Y2FzZSJjb2xvciI6Y2FzZSJ2YWxpZ24iOmNhc2Uic3oiOmNhc2UibmFtZSI6Y2FzZSJvdXRsaW5lIjpjYXNlInNoYWRvdyI6Y2FzZSJjaGFyc2V0IjpjYXNlImZhbWlseSI6Y2FzZSJjb25kZW5zZSI6Y2FzZSJleHRlbmQiOmNhc2Uic2No''@;'; + put 'put ''ZW1lIjp4ZS5wdXNoKHh0KTticmVhaztjYXNlImJnQ29sb3IiOmNhc2UiZmdDb2xvciI6WmUucHVzaCh4dCk7YnJlYWs7Y2FzZSJ6IjpGZS5wdXNoKHh0KTticmVhaztjYXNlInRvcCI6Y2FzZSJib3R0b20iOmNhc2UibGVmdCI6Y2FzZSJyaWdodCI6Y2FzZSJkaWFnb25hbCI6Y2FzZSJ2ZXJ0''@;'; + put 'put ''aWNhbCI6Y2FzZSJob3Jpem9udGFsIjpZZS5wdXNoKHh0KTticmVhaztjYXNlInBhdHRlcm5UeXBlIjpjYXNlImRpYWdvbmFsRG93biI6Y2FzZSJkaWFnb25hbFVwIjpjYXNlInN0b3BzIjpjYXNlImRlZ3JlZSI6YnJlYWs7ZGVmYXVsdDp0aHJvdyJVbnJlY29nbml6ZWQgIit4dCsiIGluIERY''@;'; + put 'put ''RiJ9fSkseGUubGVuZ3RoPjAmJih3ZS5wdXNoKCI8Zm9udD4iKSx4ZS5mb3JFYWNoKGZ1bmN0aW9uKHh0KXtzd2l0Y2goeHQpe2Nhc2UiYm9sZCI6Y2FzZSJpdGFsaWMiOmNhc2Uic3RyaWtlIjpjYXNlIm91dGxpbmUiOmNhc2Uic2hhZG93IjpjYXNlImNvbmRlbnNlIjpjYXNlImV4dGVuZCI6''@;'; + put 'put ''d2UucHVzaCgiPCIrKFhbeHRdfHx4dCkrJyB2YWw9IicrKEhbeHRdPyIxIjoiMCIpKyciLz4nKTticmVhaztjYXNlImNvbG9yIjp3ZS5wdXNoKFhzKEhbeHRdLHh0LCEwKSk7YnJlYWs7Y2FzZSJmYW1pbHkiOmNhc2UibmFtZSI6Y2FzZSJzeiI6Y2FzZSJzY2hlbWUiOndlLnB1c2goIjwiKyhY''@;'; + put 'put ''W3h0XXx8eHQpKycgdmFsPSInK0hbeHRdKyciLz4nKTticmVhaztjYXNlInVuZGVybGluZSI6d2UucHVzaCgnPHUgdmFsPSInK0x2W0hbeHRdfHwwXSsnIi8+Jyk7YnJlYWs7Y2FzZSJ2YWxpZ24iOndlLnB1c2goJzx2ZXJ0QWxpZ24gdmFsPSInK0gudmFsaWduKygic3ViIj09SC52YWxpZ258''@;'; + put 'put ''fCJzdXBlciI9PUgudmFsaWduPyJzY3JpcHQiOiIiKSsnIi8+Jyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJVbnN1cHBvcnRlZCAiK3h0KyIgOiBmb250IERYRiJ9fSksd2UucHVzaCgiPC9mb250PiIpKSxGZS5sZW5ndGg+MCYmd2UucHVzaCgnPG51bUZtdCBmb3JtYXRDb2RlPSInK1JyKEgueikr''@;'; + put 'put ''JyIgbnVtRm10SWQ9IicrZnVuY3Rpb24gaDUoSCxyZSl7aWYoIm51bWJlciI9PXR5cGVvZiBIKXJldHVybiBIO3ZhciBYPXJlLnJldnNzZltudWxsIT1IP0g6IkdlbmVyYWwiXSx3ZT02MDtpZihudWxsPT1YKWZvcig7d2U8MzkyOysrd2UpaWYobnVsbD09cmUuc3NmW3dlXSlyZXR1cm4gRi5s''@;'; + put 'put ''b2FkKEgsd2UpLHJlLnNzZlt3ZV09SCxyZS5yZXZzc2ZbSF09d2Usd2U7cmV0dXJuIFh9KEgueixyZSkrJyIvPicpLFplLmxlbmd0aD4wJiYod2UucHVzaCgiPGZpbGw+Iiksd2UucHVzaCgiPHBhdHRlcm5GaWxsIisoSC5wYXR0ZXJuVHlwZT8nIHBhdHRlcm5UeXBlPSInK0gucGF0dGVyblR5''@;'; + put 'put ''cGUrJyI+JzoiPiIpKSxaZS5mb3JFYWNoKGZ1bmN0aW9uKHh0KXtzd2l0Y2goeHQpe2Nhc2UicGF0dGVyblR5cGUiOmJyZWFrO2Nhc2UiZmdDb2xvciI6Y2FzZSJiZ0NvbG9yIjp3ZS5wdXNoKFhzKEhbeHRdLHh0LCEwKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJVbnN1cHBvcnRlZCAiK3h0KyIg''@;'; + put 'put ''OiBmaWxsIERYRiJ9fSksd2UucHVzaCgiPC9wYXR0ZXJuRmlsbD4iKSx3ZS5wdXNoKCI8L2ZpbGw+IikpLFtdLmxlbmd0aD4wKXRocm93IlVuc3VwcG9ydGVkIGFsaWduIC0gRFhGIjtpZihZZS5sZW5ndGg+MD8od2UucHVzaChbIjxib3JkZXIiLG51bGwhPUguZGlhZ29uYWxEb3duPycgZGlh''@;'; + put 'put ''Z29uYWxEb3duPSInKyArISFILmRpYWdvbmFsRG93bisnIic6IiIsbnVsbCE9SC5kaWFnb25hbFVwPycgZGlhZ29uYWxVcD0iJysgKyEhSC5kaWFnb25hbFVwKyciJzoiIiwiPiJdLmpvaW4oIiIpKSxZZS5mb3JFYWNoKGZ1bmN0aW9uKHh0KXt3ZS5wdXNoKENkKEhbeHRdLHh0KSl9KSx3ZS5w''@;'; + put 'put ''dXNoKCI8L2JvcmRlcj4iKSk6KG51bGwhPUguZGlhZ29uYWxEb3dufHxudWxsIT1ILmRpYWdvbmFsVXApJiZ3ZS5wdXNoKFsiPGJvcmRlciIsbnVsbCE9SC5kaWFnb25hbERvd24/JyBkaWFnb25hbERvd249IicrICshIUguZGlhZ29uYWxEb3duKyciJzoiIixudWxsIT1ILmRpYWdvbmFsVXA/''@;'; + put 'put ''JyBkaWFnb25hbFVwPSInKyArISFILmRpYWdvbmFsVXArJyInOiIiLCIvPiJdLmpvaW4oIiIpKSxbXS5sZW5ndGg+MCl0aHJvdyJVbnN1cHBvcnRlZCBwcm90ZWN0aW9uIC0gRFhGIjtyZXR1cm4gMT09d2UubGVuZ3RoPyI8ZHhmLz4iOndlLmpvaW4oIiIpKyI8L2R4Zj4ifSh3ZSxyZSkpfSks''@;'; + put 'put ''WC5qb2luKCIiKSsiPC9keGZzPiJ9KEguU3R5bGVzLkRYRixyZSksWFtYLmxlbmd0aF09eGUsWC5sZW5ndGg+MiYmKFhbWC5sZW5ndGhdPSI8L3N0eWxlU2hlZXQ+IixYWzFdPVhbMV0ucmVwbGFjZSgiLz4iLCI+IikpLFguam9pbigiIil9ZnVuY3Rpb24gVlIoSCxyZSxYKXtYfHwoWD1SaSg2''@;'; + put 'put ''KzQqcmUubGVuZ3RoKSksWC53cml0ZV9zaGlmdCgyLEgpLGx1KHJlLFgpO3ZhciB3ZT1YLmxlbmd0aD5YLmw/WC5zbGljZSgwLFgubCk6WDtyZXR1cm4gbnVsbD09WC5sJiYoWC5sPVgubGVuZ3RoKSx3ZX1mdW5jdGlvbiBlRyhIKXtyZXR1cm57Y29sb3I6VWcoSCkscG9zOkkyKEgpfX1wdC5T''@;'; + put 'put ''VFk9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc3R5bGVzIjt2YXIgalI9WyJub25lIiwic29saWQiLCJtZWRpdW1HcmF5IiwiZGFya0dyYXkiLCJsaWdodEdyYXkiLCJkYXJrSG9yaXpvbnRhbCIsImRhcmtWZXJ0''@;'; + put 'put ''aWNhbCIsImRhcmtEb3duIiwiZGFya1VwIiwiZGFya0dyaWQiLCJkYXJrVHJlbGxpcyIsImxpZ2h0SG9yaXpvbnRhbCIsImxpZ2h0VmVydGljYWwiLCJsaWdodERvd24iLCJsaWdodFVwIiwibGlnaHRHcmlkIiwibGlnaHRUcmVsbGlzIiwiZ3JheTEyNSIsImdyYXkwNjI1Il0sdEc9dHQoalIp''@;'; + put 'put ''LEJ2PVsiZ2VuZXJhbCIsImxlZnQiLCJjZW50ZXIiLCJyaWdodCIsImZpbGwiLCJqdXN0aWZ5IiwiY2VudGVyQ29udGludW91cyIsImRpc3RyaWJ1dGVkIl0seW09WyJ0b3AiLCJjZW50ZXIiLCJib3R0b20iLCJqdXN0aWZ5IiwiZGlzdHJpYnV0ZWQiXTtmdW5jdGlvbiBQdihILHJlLFgpe1h8''@;'; + put 'put ''fChYPVJpKDE2KSksWC53cml0ZV9zaGlmdCgyLHJlfHwwKSxYLndyaXRlX3NoaWZ0KDIsSC5udW1GbXRJZHx8MCksWC53cml0ZV9zaGlmdCgyLEguZm9udElkfHwwKSxYLndyaXRlX3NoaWZ0KDIsSC5maWxsSWR8fDApLFgud3JpdGVfc2hpZnQoMixILmJvcmRlcklkfHwwKSxYLndyaXRlX3No''@;'; + put 'put ''aWZ0KDEsSC5hbGlnbm1lbnQmJkguYWxpZ25tZW50LnRleHRSb3RhdGlvbnx8MCksWC53cml0ZV9zaGlmdCgxLEguYWxpZ25tZW50JiZILmFsaWdubWVudC5pbmRlbnR8fDApO3ZhciB3ZT0wLHhlPTA7aWYoSC5hbGlnbm1lbnQpe2lmKEguYWxpZ25tZW50Lmhvcml6b250YWwpe3ZhciBGZT1C''@;'; + put 'put ''di5pbmRleE9mKEguYWxpZ25tZW50Lmhvcml6b250YWwpO0ZlPDAmJihGZT0wKSx3ZXw9RmV9aWYoSC5hbGlnbm1lbnQudmVydGljYWwpe3ZhciBaZT15bS5pbmRleE9mKEguYWxpZ25tZW50LnZlcnRpY2FsKTtaZTwwJiYoWmU9Miksd2V8PVplPDwzfUguYWxpZ25tZW50LndyYXBUZXh0JiYo''@;'; + put 'put ''d2V8PTY0KSxILmFsaWdubWVudC5zaHJpbmtUb0ZpdCYmKHhlfD0xKX1yZXR1cm4gWC53cml0ZV9zaGlmdCgxLHdlKSxYLndyaXRlX3NoaWZ0KDEseGUpLFgud3JpdGVfc2hpZnQoMSwwKSxYLndyaXRlX3NoaWZ0KDEsMCksWH12YXIgVDM9WyJub25lIiwidGhpbiIsIm1lZGl1bSIsImRhc2hl''@;'; + put 'put ''ZCIsImRvdHRlZCIsInRoaWNrIiwiZG91YmxlIiwiaGFpciIsIm1lZGl1bURhc2hlZCIsImRhc2hEb3QiLCJtZWRpdW1EYXNoRG90IiwiZGFzaERvdERvdCIsIm1lZGl1bURhc2hEb3REb3QiLCJzbGFudERhc2hEb3QiXTtmdW5jdGlvbiBnNihIKXt2YXIgcmU9SC5yZWFkX3NoaWZ0KDEpO0gu''@;'; + put 'put ''bCs9MTt2YXIgWD1VZyhIKTtyZXR1cm57c3R5bGU6VDNbcmVdLGNvbG9yOlh9fWZ1bmN0aW9uIG02KEgscmUpe3JldHVybiByZXx8KHJlPVJpKDEwKSksSCYmSC5zdHlsZSYmIiIhPUguc3R5bGUmJiJub25lIiE9SC5zdHlsZSYmLTEhPT1UMy5pbmRleE9mKEguc3R5bGUpPyhyZS53cml0ZV9z''@;'; + put 'put ''aGlmdCgxLFQzLmluZGV4T2YoSC5zdHlsZSkpLHJlLndyaXRlX3NoaWZ0KDEsMCksSC5jb2xvcj9qZihILmNvbG9yLHJlKToocmUud3JpdGVfc2hpZnQoNCwwKSxyZS53cml0ZV9zaGlmdCg0LDApKSk6KHJlLndyaXRlX3NoaWZ0KDEsMCkscmUud3JpdGVfc2hpZnQoMSwwKSxyZS53cml0ZV9z''@;'; + put 'put ''aGlmdCg0LDApLHJlLndyaXRlX3NoaWZ0KDQsMCkpLHJlfWZ1bmN0aW9uIHY2KEgscmUpe3JldHVybiByZXx8KHJlPVJpKDUyKSkscmUud3JpdGVfc2hpZnQoNCxILnhmSWQpLHJlLndyaXRlX3NoaWZ0KDIsMSkscmUud3JpdGVfc2hpZnQoMSwrSC5idWlsdGluSWQpLHJlLndyaXRlX3NoaWZ0''@;'; + put 'put ''KDEsMCksWnAoSC5uYW1lfHwiIixyZSkscmUubGVuZ3RoPnJlLmw/cmUuc2xpY2UoMCxyZS5sKTpyZX1mdW5jdGlvbiB3bShILHJlKXshcmV8fCFyZS50aGVtZUVsZW1lbnRzfHwhcmUudGhlbWVFbGVtZW50cy5jbHJTY2hlbWV8fG51bGwhPUgudGhlbWUmJihILnJnYj1ROChyZS50aGVtZUVs''@;'; + put 'put ''ZW1lbnRzLmNsclNjaGVtZVtILnRoZW1lXS5yZ2IsSC50aW50fHwwKSl9ZnVuY3Rpb24geUUoSCxyZSl7dmFyIFg9UTIoKTtyZXR1cm4gQzAoWCwiQnJ0QmVnaW5TdHlsZVNoZWV0IiksZnVuY3Rpb24ga2IoSCxyZSl7aWYocmUpe3ZhciBYPTA7W1s1LDhdLFsyMywyNl0sWzQxLDQ0XSxbNTAs''@;'; + put 'put ''MzkyXV0uZm9yRWFjaChmdW5jdGlvbih3ZSl7Zm9yKHZhciB4ZT13ZVswXTt4ZTw9d2VbMV07Kyt4ZSludWxsIT1yZVt4ZV0mJisrWH0pLDAhPVgmJihDMChILCJCcnRCZWdpbkZtdHMiLCRsKFgpKSxbWzUsOF0sWzIzLDI2XSxbNDEsNDRdLFs1MCwzOTJdXS5mb3JFYWNoKGZ1bmN0aW9uKHdl''@;'; + put 'put ''KXtmb3IodmFyIHhlPXdlWzBdO3hlPD13ZVsxXTsrK3hlKW51bGwhPXJlW3hlXSYmQzAoSCwiQnJ0Rm10IixWUih4ZSxyZVt4ZV0pKX0pLEMwKEgsIkJydEVuZEZtdHMiKSl9fShYLEguU1NGKSxmdW5jdGlvbiB2RShILHJlKXt2YXIgWD1yZS5sZW5ndGg7MCE9WCYmKEMwKEgsIkJydEJlZ2lu''@;'; + put 'put ''Rm9udHMiLCRsKFgpKSxyZS5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtDMChILCJCcnRGb250IixmdW5jdGlvbiBBbShILHJlKXtyZXx8KHJlPVJpKDE1MykpLHJlLndyaXRlX3NoaWZ0KDIsMjAqSC5zeiksZnVuY3Rpb24gUDIoSCxyZSl7cmV8fChyZT1SaSgyKSkscmUud3JpdGVfc2hpZnQoMSwo''@;'; + put 'put ''SC5pdGFsaWM/MjowKXwoSC5zdHJpa2U/ODowKXwoSC5vdXRsaW5lPzE2OjApfChILnNoYWRvdz8zMjowKXwoSC5jb25kZW5zZT82NDowKXwoSC5leHRlbmQ/MTI4OjApKSxyZS53cml0ZV9zaGlmdCgxLDApfShILHJlKSxyZS53cml0ZV9zaGlmdCgyLEguYm9sZD83MDA6NDAwKTt2YXIgWD0w''@;'; + put 'put ''OyJzdXBlciI9PUgudmFsaWduP1g9MToic3ViIj09SC52YWxpZ24mJihYPTIpLHJlLndyaXRlX3NoaWZ0KDIsWCkscmUud3JpdGVfc2hpZnQoMSxILnVuZGVybGluZXx8MCkscmUud3JpdGVfc2hpZnQoMSxILmZhbWlseXx8MCkscmUud3JpdGVfc2hpZnQoMSxILmNoYXJzZXR8fDApLHJlLndy''@;'; + put 'put ''aXRlX3NoaWZ0KDEsMCksamYoSC5jb2xvcixyZSk7dmFyIHdlPTA7cmV0dXJuIm1ham9yIj09SC5zY2hlbWUmJih3ZT0xKSwibWlub3IiPT1ILnNjaGVtZSYmKHdlPTIpLHJlLndyaXRlX3NoaWZ0KDEsd2UpLGx1KEgubmFtZSxyZSkscmUubGVuZ3RoPnJlLmw/cmUuc2xpY2UoMCxyZS5sKTpy''@;'; + put 'put ''ZX0od2UpKX0pLEMwKEgsIkJydEVuZEZvbnRzIikpfShYLChILlN0eWxlc3x8e30pLkZvbnRzfHxbXSksZnVuY3Rpb24gQUUoSCxyZSl7dmFyIFg9cmUubGVuZ3RoOzAhPVgmJihDMChILCJCcnRCZWdpbkZpbGxzIiwkbChYKSkscmUuZm9yRWFjaChmdW5jdGlvbih3ZSl7QzAoSCwiQnJ0Rmls''@;'; + put 'put ''bCIsZnVuY3Rpb24gbkcoSCxyZSl7cmV8fChyZT1SaSg4NCkpO3ZhciBYPXRHW0gucGF0dGVyblR5cGVdO251bGw9PVgmJihYPTQwKSxyZS53cml0ZV9zaGlmdCg0LFg9K1gpO3ZhciB3ZT0wO2lmKDQwIT1YKWZvcihqZihILmZnQ29sb3J8fHtpbmRleDo2NH0scmUpLGpmKEguYmdDb2xvcnx8''@;'; + put 'put ''e2luZGV4OjY1fSxyZSk7d2U8MTI7Kyt3ZSlyZS53cml0ZV9zaGlmdCg0LDApO2Vsc2V7Zm9yKDt3ZTw0Oysrd2UpcmUud3JpdGVfc2hpZnQoNCwwKTtmb3IoO3dlPDEyOysrd2UpcmUud3JpdGVfc2hpZnQoNCwwKX1yZXR1cm4gcmUubGVuZ3RoPnJlLmw/cmUuc2xpY2UoMCxyZS5sKTpyZX0o''@;'; + put 'put ''d2UpKX0pLEMwKEgsIkJydEVuZEZpbGxzIikpfShYLChILlN0eWxlc3x8e30pLkZpbGxzfHxbXSksZnVuY3Rpb24gV1IoSCxyZSl7dmFyIFg9cmUubGVuZ3RoOzAhPVgmJihDMChILCJCcnRCZWdpbkJvcmRlcnMiLCRsKFgpKSxyZS5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtDMChILCJCcnRCb3Jk''@;'; + put 'put ''ZXIiLGZ1bmN0aW9uIENiKEgscmUpe3JldHVybiByZXx8KHJlPVJpKDUxKSkscmUud3JpdGVfc2hpZnQoMSwwKSxtNihILnRvcCxyZSksbTYoSC5ib3R0b20scmUpLG02KEgubGVmdCxyZSksbTYoSC5yaWdodCxyZSksbTYobnVsbCxyZSkscmUubGVuZ3RoPnJlLmw/cmUuc2xpY2UoMCxyZS5s''@;'; + put 'put ''KTpyZX0od2UpKX0pLEMwKEgsIkJydEVuZEJvcmRlcnMiKSl9KFgsKEguU3R5bGVzfHx7fSkuQm9yZGVyc3x8W10pLGZ1bmN0aW9uIFlSKEgscmUpe3ZhciBYPTE7aWYocmUmJihYPXJlLmxlbmd0aCksQzAoSCwiQnJ0QmVnaW5DZWxsU3R5bGVYRnMiLCRsKFgpKSxDMChILCJCcnRYRiIsUHYo''@;'; + put 'put ''e251bUZtdElkOjAsZm9udElkOjAsZmlsbElkOjAsYm9yZGVySWQ6MH0sNjU1MzUpKSxyZSlmb3IodmFyIHdlPTE7d2U8cmUubGVuZ3RoOysrd2UpQzAoSCwiQnJ0WEYiLFB2KHtudW1GbXRJZDpyZVt3ZV0ubnVtRm10SWR8fDAsZm9udElkOnJlW3dlXS5mb250SWR8fDAsZmlsbElkOnJlW3dl''@;'; + put 'put ''XS5maWxsSWR8fDAsYm9yZGVySWQ6cmVbd2VdLmJvcmRlcklkfHwwfSw2NTUzNSkpO0MwKEgsIkJydEVuZENlbGxTdHlsZVhGcyIpfShYLHJlLmNlbGxTdHlsZVhmcyksZnVuY3Rpb24gU2IoSCxyZSl7QzAoSCwiQnJ0QmVnaW5DZWxsWEZzIiwkbChyZS5sZW5ndGgpKSxyZS5mb3JFYWNoKGZ1''@;'; + put 'put ''bmN0aW9uKFgpe0MwKEgsIkJydFhGIixQdihYLDApKX0pLEMwKEgsIkJydEVuZENlbGxYRnMiKX0oWCxyZS5jZWxsWGZzKSxmdW5jdGlvbiBVUihILHJlKXt2YXIgWD0xO2lmKHJlJiYoWD1yZS5sZW5ndGgpLEMwKEgsIkJydEJlZ2luU3R5bGVzIiwkbChYKSksQzAoSCwiQnJ0U3R5bGUiLHY2''@;'; + put 'put ''KHt4ZklkOjAsYnVpbHRpbklkOjAsbmFtZToiTm9ybWFsIn0pKSxyZSlmb3IodmFyIHdlPTE7d2U8cmUubGVuZ3RoOysrd2UpQzAoSCwiQnJ0U3R5bGUiLHY2KHt4ZklkOndlLGJ1aWx0aW5JZDowLG5hbWU6cmVbd2VdLm5hbWV9KSk7QzAoSCwiQnJ0RW5kU3R5bGVzIil9KFgscmUuY2VsbFN0''@;'; + put 'put ''eWxlWGZzKSxmdW5jdGlvbiBRUihIKXtDMChILCJCcnRCZWdpbkRYRnMiLCRsKDApKSxDMChILCJCcnRFbmREWEZzIil9KFgpLGZ1bmN0aW9uIEpSKEgpe0MwKEgsIkJydEJlZ2luVGFibGVTdHlsZXMiLGZ1bmN0aW9uIEdSKEgscmUsWCl7dmFyIHdlPVJpKDIwNTIpO3JldHVybiB3ZS53cml0''@;'; + put 'put ''ZV9zaGlmdCg0LEgpLFpwKHJlLHdlKSxacChYLHdlKSx3ZS5sZW5ndGg+d2UubD93ZS5zbGljZSgwLHdlLmwpOndlfSgwLCJUYWJsZVN0eWxlTWVkaXVtOSIsIlBpdm90U3R5bGVNZWRpdW00IikpLEMwKEgsIkJydEVuZFRhYmxlU3R5bGVzIil9KFgpLEMwKFgsIkJydEVuZFN0eWxlU2hlZXQi''@;'; + put 'put ''KSxYLmVuZCgpfXB0LlRIRU1FPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3RoZW1lIjt2YXIgS1I9WyI8L2E6bHQxPiIsIjwvYTpkazE+IiwiPC9hOmx0Mj4iLCI8L2E6ZGsyPiIsIjwvYTphY2NlbnQxPiIsIjwv''@;'; + put 'put ''YTphY2NlbnQyPiIsIjwvYTphY2NlbnQzPiIsIjwvYTphY2NlbnQ0PiIsIjwvYTphY2NlbnQ1PiIsIjwvYTphY2NlbnQ2PiIsIjwvYTpobGluaz4iLCI8L2E6Zm9sSGxpbms+Il07ZnVuY3Rpb24gYmMoSCxyZSxYKXtyZS50aGVtZUVsZW1lbnRzLmNsclNjaGVtZT1bXTt2YXIgd2U9e307KEhb''@;'; + put 'put ''MF0ubWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4ZSl7dmFyIEZlPWVuKHhlKTtzd2l0Y2goRmVbMF0pe2Nhc2UiPGE6Y2xyU2NoZW1lIjpjYXNlIjwvYTpjbHJTY2hlbWU+IjpjYXNlIjwvYTpzcmdiQ2xyPiI6Y2FzZSI8L2E6c3lzQ2xyPiI6YnJlYWs7Y2FzZSI8YTpzcmdiQ2xy''@;'; + put 'put ''Ijp3ZS5yZ2I9RmUudmFsO2JyZWFrO2Nhc2UiPGE6c3lzQ2xyIjp3ZS5yZ2I9RmUubGFzdENscjticmVhaztjYXNlIjxhOmRrMT4iOmNhc2UiPC9hOmRrMT4iOmNhc2UiPGE6bHQxPiI6Y2FzZSI8L2E6bHQxPiI6Y2FzZSI8YTpkazI+IjpjYXNlIjwvYTpkazI+IjpjYXNlIjxhOmx0Mj4iOmNh''@;'; + put 'put ''c2UiPC9hOmx0Mj4iOmNhc2UiPGE6YWNjZW50MT4iOmNhc2UiPC9hOmFjY2VudDE+IjpjYXNlIjxhOmFjY2VudDI+IjpjYXNlIjwvYTphY2NlbnQyPiI6Y2FzZSI8YTphY2NlbnQzPiI6Y2FzZSI8L2E6YWNjZW50Mz4iOmNhc2UiPGE6YWNjZW50ND4iOmNhc2UiPC9hOmFjY2VudDQ+IjpjYXNl''@;'; + put 'put ''IjxhOmFjY2VudDU+IjpjYXNlIjwvYTphY2NlbnQ1PiI6Y2FzZSI8YTphY2NlbnQ2PiI6Y2FzZSI8L2E6YWNjZW50Nj4iOmNhc2UiPGE6aGxpbms+IjpjYXNlIjwvYTpobGluaz4iOmNhc2UiPGE6Zm9sSGxpbms+IjpjYXNlIjwvYTpmb2xIbGluaz4iOiIvIj09PUZlWzBdLmNoYXJBdCgxKT8o''@;'; + put 'put ''cmUudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbS1IuaW5kZXhPZihGZVswXSldPXdlLHdlPXt9KTp3ZS5uYW1lPUZlWzBdLnNsaWNlKDMsRmVbMF0ubGVuZ3RoLTEpO2JyZWFrO2RlZmF1bHQ6aWYoWCYmWC5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgIitGZVswXSsiIGluIGNs''@;'; + put 'put ''clNjaGVtZSIpfX0pfWZ1bmN0aW9uIE1iKCl7fWZ1bmN0aW9uIHdFKCl7fXZhciBFYj0vPGE6Y2xyU2NoZW1lKFtePl0qKT5bXHNcU10qPFwvYTpjbHJTY2hlbWU+LyxxdT0vPGE6Zm9udFNjaGVtZShbXj5dKik+W1xzXFNdKjxcL2E6Zm9udFNjaGVtZT4vLGJtPS88YTpmbXRTY2hlbWUoW14+''@;'; + put 'put ''XSopPltcc1xTXSo8XC9hOmZtdFNjaGVtZT4vLFRiPS88YTp0aGVtZUVsZW1lbnRzKFtePl0qKT5bXHNcU10qPFwvYTp0aGVtZUVsZW1lbnRzPi87ZnVuY3Rpb24gRnYoSCxyZSl7aWYoIUh8fDA9PT1ILmxlbmd0aClyZXR1cm4gRnYoSHYoKSk7dmFyIFgsd2U9e307aWYoIShYPUgubWF0Y2go''@;'; + put 'put ''VGIpKSl0aHJvdyBuZXcgRXJyb3IoInRoZW1lRWxlbWVudHMgbm90IGZvdW5kIGluIHRoZW1lIik7cmV0dXJuIGZ1bmN0aW9uIHhiKEgscmUsWCl7dmFyIHdlO3JlLnRoZW1lRWxlbWVudHM9e30sW1siY2xyU2NoZW1lIixFYixiY10sWyJmb250U2NoZW1lIixxdSxNYl0sWyJmbXRTY2hlbWUi''@;'; + put 'put ''LGJtLHdFXV0uZm9yRWFjaChmdW5jdGlvbih4ZSl7aWYoISh3ZT1ILm1hdGNoKHhlWzFdKSkpdGhyb3cgbmV3IEVycm9yKHhlWzBdKyIgbm90IGZvdW5kIGluIHRoZW1lRWxlbWVudHMiKTt4ZVsyXSh3ZSxyZSxYKX0pfShYWzBdLHdlLHJlKSx3ZS5yYXc9SCx3ZX1mdW5jdGlvbiBIdihILHJl''@;'; + put 'put ''KXtpZihyZSYmcmUudGhlbWVYTFNYKXJldHVybiByZS50aGVtZVhMU1g7aWYoSCYmInN0cmluZyI9PXR5cGVvZiBILnJhdylyZXR1cm4gSC5yYXc7dmFyIFg9W2NuXTtyZXR1cm4gWFtYLmxlbmd0aF09JzxhOnRoZW1lIHhtbG5zOmE9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9y''@;'; + put 'put ''Zy9kcmF3aW5nbWwvMjAwNi9tYWluIiBuYW1lPSJPZmZpY2UgVGhlbWUiPicsWFtYLmxlbmd0aF09IjxhOnRoZW1lRWxlbWVudHM+IixYW1gubGVuZ3RoXT0nPGE6Y2xyU2NoZW1lIG5hbWU9Ik9mZmljZSI+JyxYW1gubGVuZ3RoXT0nPGE6ZGsxPjxhOnN5c0NsciB2YWw9IndpbmRvd1RleHQi''@;'; + put 'put ''IGxhc3RDbHI9IjAwMDAwMCIvPjwvYTpkazE+JyxYW1gubGVuZ3RoXT0nPGE6bHQxPjxhOnN5c0NsciB2YWw9IndpbmRvdyIgbGFzdENscj0iRkZGRkZGIi8+PC9hOmx0MT4nLFhbWC5sZW5ndGhdPSc8YTpkazI+PGE6c3JnYkNsciB2YWw9IjFGNDk3RCIvPjwvYTpkazI+JyxYW1gubGVuZ3Ro''@;'; + put 'put ''XT0nPGE6bHQyPjxhOnNyZ2JDbHIgdmFsPSJFRUVDRTEiLz48L2E6bHQyPicsWFtYLmxlbmd0aF09JzxhOmFjY2VudDE+PGE6c3JnYkNsciB2YWw9IjRGODFCRCIvPjwvYTphY2NlbnQxPicsWFtYLmxlbmd0aF09JzxhOmFjY2VudDI+PGE6c3JnYkNsciB2YWw9IkMwNTA0RCIvPjwvYTphY2Nl''@;'; + put 'put ''bnQyPicsWFtYLmxlbmd0aF09JzxhOmFjY2VudDM+PGE6c3JnYkNsciB2YWw9IjlCQkI1OSIvPjwvYTphY2NlbnQzPicsWFtYLmxlbmd0aF09JzxhOmFjY2VudDQ+PGE6c3JnYkNsciB2YWw9IjgwNjRBMiIvPjwvYTphY2NlbnQ0PicsWFtYLmxlbmd0aF09JzxhOmFjY2VudDU+PGE6c3JnYkNs''@;'; + put 'put ''ciB2YWw9IjRCQUNDNiIvPjwvYTphY2NlbnQ1PicsWFtYLmxlbmd0aF09JzxhOmFjY2VudDY+PGE6c3JnYkNsciB2YWw9IkY3OTY0NiIvPjwvYTphY2NlbnQ2PicsWFtYLmxlbmd0aF09JzxhOmhsaW5rPjxhOnNyZ2JDbHIgdmFsPSIwMDAwRkYiLz48L2E6aGxpbms+JyxYW1gubGVuZ3RoXT0n''@;'; + put 'put ''PGE6Zm9sSGxpbms+PGE6c3JnYkNsciB2YWw9IjgwMDA4MCIvPjwvYTpmb2xIbGluaz4nLFhbWC5sZW5ndGhdPSI8L2E6Y2xyU2NoZW1lPiIsWFtYLmxlbmd0aF09JzxhOmZvbnRTY2hlbWUgbmFtZT0iT2ZmaWNlIj4nLFhbWC5sZW5ndGhdPSI8YTptYWpvckZvbnQ+IixYW1gubGVuZ3RoXT0n''@;'; + put 'put ''PGE6bGF0aW4gdHlwZWZhY2U9IkNhbWJyaWEiLz4nLFhbWC5sZW5ndGhdPSc8YTplYSB0eXBlZmFjZT0iIi8+JyxYW1gubGVuZ3RoXT0nPGE6Y3MgdHlwZWZhY2U9IiIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJKcGFuIiB0eXBlZmFjZT0iXHVmZjJkXHVmZjMzIFx1ZmYzMFx1''@;'; + put 'put ''MzBiNFx1MzBiN1x1MzBjM1x1MzBhZiIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW5nIiB0eXBlZmFjZT0iXHViOWQxXHVjNzQwIFx1YWNlMFx1YjUxNSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW5zIiB0eXBlZmFjZT0iXHU1YjhiXHU0ZjUzIi8+JyxY''@;'; + put 'put ''W1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbnQiIHR5cGVmYWNlPSJcdTY1YjBcdTdkMzBcdTY2MGVcdTlhZDQiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQXJhYiIgdHlwZWZhY2U9IlRpbWVzIE5ldyBSb21hbiIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0''@;'; + put 'put ''PSJIZWJyIiB0eXBlZmFjZT0iVGltZXMgTmV3IFJvbWFuIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRoYWkiIHR5cGVmYWNlPSJUYWhvbWEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iRXRoaSIgdHlwZWZhY2U9Ik55YWxhIi8+JyxYW1gubGVuZ3RoXT0nPGE6''@;'; + put 'put ''Zm9udCBzY3JpcHQ9IkJlbmciIHR5cGVmYWNlPSJWcmluZGEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR3VqciIgdHlwZWZhY2U9IlNocnV0aSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJLaG1yIiB0eXBlZmFjZT0iTW9vbEJvcmFuIi8+JyxYW1gubGVuZ3Ro''@;'; + put 'put ''XT0nPGE6Zm9udCBzY3JpcHQ9IktuZGEiIHR5cGVmYWNlPSJUdW5nYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHdXJ1IiB0eXBlZmFjZT0iUmFhdmkiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQ2FucyIgdHlwZWZhY2U9IkV1cGhlbWlhIi8+JyxYW1gubGVu''@;'; + put 'put ''Z3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkNoZXIiIHR5cGVmYWNlPSJQbGFudGFnZW5ldCBDaGVyb2tlZSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJZaWlpIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFlpIEJhaXRpIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRpYnQi''@;'; + put 'put ''IHR5cGVmYWNlPSJNaWNyb3NvZnQgSGltYWxheWEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGhhYSIgdHlwZWZhY2U9Ik1WIEJvbGkiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iRGV2YSIgdHlwZWZhY2U9Ik1hbmdhbCIvPicsWFtYLmxlbmd0aF09JzxhOmZv''@;'; + put 'put ''bnQgc2NyaXB0PSJUZWx1IiB0eXBlZmFjZT0iR2F1dGFtaSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUYW1sIiB0eXBlZmFjZT0iTGF0aGEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iU3lyYyIgdHlwZWZhY2U9IkVzdHJhbmdlbG8gRWRlc3NhIi8+JyxYW1gu''@;'; + put 'put ''bGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik9yeWEiIHR5cGVmYWNlPSJLYWxpbmdhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik1seW0iIHR5cGVmYWNlPSJLYXJ0aWthIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikxhb28iIHR5cGVmYWNlPSJEb2tDaGFtcGEi''@;'; + put 'put ''Lz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iU2luaCIgdHlwZWZhY2U9Iklza29vbGEgUG90YSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJNb25nIiB0eXBlZmFjZT0iTW9uZ29saWFuIEJhaXRpIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlZpZXQi''@;'; + put 'put ''IHR5cGVmYWNlPSJUaW1lcyBOZXcgUm9tYW4iLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVWlnaCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBVaWdodXIiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR2VvciIgdHlwZWZhY2U9IlN5bGZhZW4iLz4nLFhbWC5sZW5ndGhd''@;'; + put 'put ''PSI8L2E6bWFqb3JGb250PiIsWFtYLmxlbmd0aF09IjxhOm1pbm9yRm9udD4iLFhbWC5sZW5ndGhdPSc8YTpsYXRpbiB0eXBlZmFjZT0iQ2FsaWJyaSIvPicsWFtYLmxlbmd0aF09JzxhOmVhIHR5cGVmYWNlPSIiLz4nLFhbWC5sZW5ndGhdPSc8YTpjcyB0eXBlZmFjZT0iIi8+JyxYW1gubGVu''@;'; + put 'put ''Z3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkpwYW4iIHR5cGVmYWNlPSJcdWZmMmRcdWZmMzMgXHVmZjMwXHUzMGI0XHUzMGI3XHUzMGMzXHUzMGFmIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbmciIHR5cGVmYWNlPSJcdWI5ZDFcdWM3NDAgXHVhY2UwXHViNTE1Ii8+JyxYW1gu''@;'; + put 'put ''bGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbnMiIHR5cGVmYWNlPSJcdTViOGJcdTRmNTMiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFudCIgdHlwZWZhY2U9Ilx1NjViMFx1N2QzMFx1NjYwZVx1OWFkNCIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJBcmFi''@;'; + put 'put ''IiB0eXBlZmFjZT0iQXJpYWwiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGViciIgdHlwZWZhY2U9IkFyaWFsIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRoYWkiIHR5cGVmYWNlPSJUYWhvbWEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iRXRo''@;'; + put 'put ''aSIgdHlwZWZhY2U9Ik55YWxhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkJlbmciIHR5cGVmYWNlPSJWcmluZGEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR3VqciIgdHlwZWZhY2U9IlNocnV0aSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJL''@;'; + put 'put ''aG1yIiB0eXBlZmFjZT0iRGF1blBlbmgiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iS25kYSIgdHlwZWZhY2U9IlR1bmdhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikd1cnUiIHR5cGVmYWNlPSJSYWF2aSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0''@;'; + put 'put ''PSJDYW5zIiB0eXBlZmFjZT0iRXVwaGVtaWEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQ2hlciIgdHlwZWZhY2U9IlBsYW50YWdlbmV0IENoZXJva2VlIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IllpaWkiIHR5cGVmYWNlPSJNaWNyb3NvZnQgWWkgQmFpdGki''@;'; + put 'put ''Lz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGlidCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBIaW1hbGF5YSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaGFhIiB0eXBlZmFjZT0iTVYgQm9saSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJEZXZhIiB0''@;'; + put 'put ''eXBlZmFjZT0iTWFuZ2FsIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRlbHUiIHR5cGVmYWNlPSJHYXV0YW1pIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRhbWwiIHR5cGVmYWNlPSJMYXRoYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJTeXJj''@;'; + put 'put ''IiB0eXBlZmFjZT0iRXN0cmFuZ2VsbyBFZGVzc2EiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iT3J5YSIgdHlwZWZhY2U9IkthbGluZ2EiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iTWx5bSIgdHlwZWZhY2U9IkthcnRpa2EiLz4nLFhbWC5sZW5ndGhdPSc8YTpm''@;'; + put 'put ''b250IHNjcmlwdD0iTGFvbyIgdHlwZWZhY2U9IkRva0NoYW1wYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJTaW5oIiB0eXBlZmFjZT0iSXNrb29sYSBQb3RhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik1vbmciIHR5cGVmYWNlPSJNb25nb2xpYW4gQmFpdGki''@;'; + put 'put ''Lz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVmlldCIgdHlwZWZhY2U9IkFyaWFsIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlVpZ2giIHR5cGVmYWNlPSJNaWNyb3NvZnQgVWlnaHVyIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikdlb3IiIHR5cGVm''@;'; + put 'put ''YWNlPSJTeWxmYWVuIi8+JyxYW1gubGVuZ3RoXT0iPC9hOm1pbm9yRm9udD4iLFhbWC5sZW5ndGhdPSI8L2E6Zm9udFNjaGVtZT4iLFhbWC5sZW5ndGhdPSc8YTpmbXRTY2hlbWUgbmFtZT0iT2ZmaWNlIj4nLFhbWC5sZW5ndGhdPSI8YTpmaWxsU3R5bGVMc3Q+IixYW1gubGVuZ3RoXT0nPGE6''@;'; + put 'put ''c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD4nLFhbWC5sZW5ndGhdPSc8YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPicsWFtYLmxlbmd0aF09IjxhOmdzTHN0PiIsWFtYLmxlbmd0aF09JzxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0i''@;'; + put 'put ''cGhDbHIiPjxhOnRpbnQgdmFsPSI1MDAwMCIvPjxhOnNhdE1vZCB2YWw9IjMwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsWFtYLmxlbmd0aF09JzxhOmdzIHBvcz0iMzUwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iMzcwMDAiLz48YTpzYXRNb2QgdmFs''@;'; + put 'put ''PSIzMDAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLFhbWC5sZW5ndGhdPSc8YTpncyBwb3M9IjEwMDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSIxNTAwMCIvPjxhOnNhdE1vZCB2YWw9IjM1MDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsWFtYLmxl''@;'; + put 'put ''bmd0aF09IjwvYTpnc0xzdD4iLFhbWC5sZW5ndGhdPSc8YTpsaW4gYW5nPSIxNjIwMDAwMCIgc2NhbGVkPSIxIi8+JyxYW1gubGVuZ3RoXT0iPC9hOmdyYWRGaWxsPiIsWFtYLmxlbmd0aF09JzxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+JyxYW1gubGVuZ3RoXT0iPGE6Z3NMc3Q+IixY''@;'; + put 'put ''W1gubGVuZ3RoXT0nPGE6Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjEwMDAwMCIvPjxhOnNoYWRlIHZhbD0iMTAwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMTMwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxYW1gubGVuZ3RoXT0nPGE6Z3MgcG9z''@;'; + put 'put ''PSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iNTAwMDAiLz48YTpzaGFkZSB2YWw9IjEwMDAwMCIvPjxhOnNhdE1vZCB2YWw9IjM1MDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsWFtYLmxlbmd0aF09IjwvYTpnc0xzdD4iLFhbWC5sZW5ndGhdPSc8''@;'; + put 'put ''YTpsaW4gYW5nPSIxNjIwMDAwMCIgc2NhbGVkPSIwIi8+JyxYW1gubGVuZ3RoXT0iPC9hOmdyYWRGaWxsPiIsWFtYLmxlbmd0aF09IjwvYTpmaWxsU3R5bGVMc3Q+IixYW1gubGVuZ3RoXT0iPGE6bG5TdHlsZUxzdD4iLFhbWC5sZW5ndGhdPSc8YTpsbiB3PSI5NTI1IiBjYXA9ImZsYXQiIGNt''@;'; + put 'put ''cGQ9InNuZyIgYWxnbj0iY3RyIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNoYWRlIHZhbD0iOTUwMDAiLz48YTpzYXRNb2QgdmFsPSIxMDUwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPSJzb2xpZCIvPjwvYTpsbj4n''@;'; + put 'put ''LFhbWC5sZW5ndGhdPSc8YTpsbiB3PSIyNTQwMCIgY2FwPSJmbGF0IiBjbXBkPSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD48YTpwcnN0RGFzaCB2YWw9InNvbGlkIi8+PC9hOmxuPicsWFtYLmxlbmd0aF09Jzxh''@;'; + put 'put ''OmxuIHc9IjM4MTAwIiBjYXA9ImZsYXQiIGNtcGQ9InNuZyIgYWxnbj0iY3RyIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD0ic29saWQiLz48L2E6bG4+JyxYW1gubGVuZ3RoXT0iPC9hOmxuU3R5bGVMc3Q+IixY''@;'; + put 'put ''W1gubGVuZ3RoXT0iPGE6ZWZmZWN0U3R5bGVMc3Q+IixYW1gubGVuZ3RoXT0iPGE6ZWZmZWN0U3R5bGU+IixYW1gubGVuZ3RoXT0iPGE6ZWZmZWN0THN0PiIsWFtYLmxlbmd0aF09JzxhOm91dGVyU2hkdyBibHVyUmFkPSI0MDAwMCIgZGlzdD0iMjAwMDAiIGRpcj0iNTQwMDAwMCIgcm90V2l0''@;'; + put 'put ''aFNoYXBlPSIwIj48YTpzcmdiQ2xyIHZhbD0iMDAwMDAwIj48YTphbHBoYSB2YWw9IjM4MDAwIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hkdz4nLFhbWC5sZW5ndGhdPSI8L2E6ZWZmZWN0THN0PiIsWFtYLmxlbmd0aF09IjwvYTplZmZlY3RTdHlsZT4iLFhbWC5sZW5ndGhdPSI8YTplZmZl''@;'; + put 'put ''Y3RTdHlsZT4iLFhbWC5sZW5ndGhdPSI8YTplZmZlY3RMc3Q+IixYW1gubGVuZ3RoXT0nPGE6b3V0ZXJTaGR3IGJsdXJSYWQ9IjQwMDAwIiBkaXN0PSIyMzAwMCIgZGlyPSI1NDAwMDAwIiByb3RXaXRoU2hhcGU9IjAiPjxhOnNyZ2JDbHIgdmFsPSIwMDAwMDAiPjxhOmFscGhhIHZhbD0iMzUw''@;'; + put 'put ''MDAiLz48L2E6c3JnYkNscj48L2E6b3V0ZXJTaGR3PicsWFtYLmxlbmd0aF09IjwvYTplZmZlY3RMc3Q+IixYW1gubGVuZ3RoXT0iPC9hOmVmZmVjdFN0eWxlPiIsWFtYLmxlbmd0aF09IjxhOmVmZmVjdFN0eWxlPiIsWFtYLmxlbmd0aF09IjxhOmVmZmVjdExzdD4iLFhbWC5sZW5ndGhdPSc8''@;'; + put 'put ''YTpvdXRlclNoZHcgYmx1clJhZD0iNDAwMDAiIGRpc3Q9IjIzMDAwIiBkaXI9IjU0MDAwMDAiIHJvdFdpdGhTaGFwZT0iMCI+PGE6c3JnYkNsciB2YWw9IjAwMDAwMCI+PGE6YWxwaGEgdmFsPSIzNTAwMCIvPjwvYTpzcmdiQ2xyPjwvYTpvdXRlclNoZHc+JyxYW1gubGVuZ3RoXT0iPC9hOmVm''@;'; + put 'put ''ZmVjdExzdD4iLFhbWC5sZW5ndGhdPSc8YTpzY2VuZTNkPjxhOmNhbWVyYSBwcnN0PSJvcnRob2dyYXBoaWNGcm9udCI+PGE6cm90IGxhdD0iMCIgbG9uPSIwIiByZXY9IjAiLz48L2E6Y2FtZXJhPjxhOmxpZ2h0UmlnIHJpZz0idGhyZWVQdCIgZGlyPSJ0Ij48YTpyb3QgbGF0PSIwIiBsb249''@;'; + put 'put ''IjAiIHJldj0iMTIwMDAwMCIvPjwvYTpsaWdodFJpZz48L2E6c2NlbmUzZD4nLFhbWC5sZW5ndGhdPSc8YTpzcDNkPjxhOmJldmVsVCB3PSI2MzUwMCIgaD0iMjU0MDAiLz48L2E6c3AzZD4nLFhbWC5sZW5ndGhdPSI8L2E6ZWZmZWN0U3R5bGU+IixYW1gubGVuZ3RoXT0iPC9hOmVmZmVjdFN0''@;'; + put 'put ''eWxlTHN0PiIsWFtYLmxlbmd0aF09IjxhOmJnRmlsbFN0eWxlTHN0PiIsWFtYLmxlbmd0aF09JzxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+JyxYW1gubGVuZ3RoXT0nPGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj4nLFhbWC5sZW5ndGhd''@;'; + put 'put ''PSI8YTpnc0xzdD4iLFhbWC5sZW5ndGhdPSc8YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iNDAwMDAiLz48YTpzYXRNb2QgdmFsPSIzNTAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLFhbWC5sZW5ndGhdPSc8YTpncyBwb3M9IjQwMDAwIj48''@;'; + put 'put ''YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjQ1MDAwIi8+PGE6c2hhZGUgdmFsPSI5OTAwMCIvPjxhOnNhdE1vZCB2YWw9IjM1MDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsWFtYLmxlbmd0aF09JzxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJw''@;'; + put 'put ''aENsciI+PGE6c2hhZGUgdmFsPSIyMDAwMCIvPjxhOnNhdE1vZCB2YWw9IjI1NTAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsWFtYLmxlbmd0aF09IjwvYTpnc0xzdD4iLFhbWC5sZW5ndGhdPSc8YTpwYXRoIHBhdGg9ImNpcmNsZSI+PGE6ZmlsbFRvUmVjdCBsPSI1MDAwMCIgdD0iLTgw''@;'; + put 'put ''MDAwIiByPSI1MDAwMCIgYj0iMTgwMDAwIi8+PC9hOnBhdGg+JyxYW1gubGVuZ3RoXT0iPC9hOmdyYWRGaWxsPiIsWFtYLmxlbmd0aF09JzxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+JyxYW1gubGVuZ3RoXT0iPGE6Z3NMc3Q+IixYW1gubGVuZ3RoXT0nPGE6Z3MgcG9zPSIwIj48YTpz''@;'; + put 'put ''Y2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjgwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxYW1gubGVuZ3RoXT0nPGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpzaGFkZSB2YWw9IjMwMDAw''@;'; + put 'put ''Ii8+PGE6c2F0TW9kIHZhbD0iMjAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxYW1gubGVuZ3RoXT0iPC9hOmdzTHN0PiIsWFtYLmxlbmd0aF09JzxhOnBhdGggcGF0aD0iY2lyY2xlIj48YTpmaWxsVG9SZWN0IGw9IjUwMDAwIiB0PSI1MDAwMCIgcj0iNTAwMDAiIGI9IjUwMDAwIi8+''@;'; + put 'put ''PC9hOnBhdGg+JyxYW1gubGVuZ3RoXT0iPC9hOmdyYWRGaWxsPiIsWFtYLmxlbmd0aF09IjwvYTpiZ0ZpbGxTdHlsZUxzdD4iLFhbWC5sZW5ndGhdPSI8L2E6Zm10U2NoZW1lPiIsWFtYLmxlbmd0aF09IjwvYTp0aGVtZUVsZW1lbnRzPiIsWFtYLmxlbmd0aF09IjxhOm9iamVjdERlZmF1bHRz''@;'; + put 'put ''PiIsWFtYLmxlbmd0aF09IjxhOnNwRGVmPiIsWFtYLmxlbmd0aF09JzxhOnNwUHIvPjxhOmJvZHlQci8+PGE6bHN0U3R5bGUvPjxhOnN0eWxlPjxhOmxuUmVmIGlkeD0iMSI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwvYTpsblJlZj48YTpmaWxsUmVmIGlkeD0iMyI+PGE6c2NoZW1l''@;'; + put 'put ''Q2xyIHZhbD0iYWNjZW50MSIvPjwvYTpmaWxsUmVmPjxhOmVmZmVjdFJlZiBpZHg9IjIiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6ZWZmZWN0UmVmPjxhOmZvbnRSZWYgaWR4PSJtaW5vciI+PGE6c2NoZW1lQ2xyIHZhbD0ibHQxIi8+PC9hOmZvbnRSZWY+PC9hOnN0eWxlPics''@;'; + put 'put ''WFtYLmxlbmd0aF09IjwvYTpzcERlZj4iLFhbWC5sZW5ndGhdPSI8YTpsbkRlZj4iLFhbWC5sZW5ndGhdPSc8YTpzcFByLz48YTpib2R5UHIvPjxhOmxzdFN0eWxlLz48YTpzdHlsZT48YTpsblJlZiBpZHg9IjIiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6bG5SZWY+PGE6Zmls''@;'; + put 'put ''bFJlZiBpZHg9IjAiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6ZmlsbFJlZj48YTplZmZlY3RSZWYgaWR4PSIxIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmVmZmVjdFJlZj48YTpmb250UmVmIGlkeD0ibWlub3IiPjxhOnNjaGVtZUNsciB2YWw9InR4MSIvPjwv''@;'; + put 'put ''YTpmb250UmVmPjwvYTpzdHlsZT4nLFhbWC5sZW5ndGhdPSI8L2E6bG5EZWY+IixYW1gubGVuZ3RoXT0iPC9hOm9iamVjdERlZmF1bHRzPiIsWFtYLmxlbmd0aF09IjxhOmV4dHJhQ2xyU2NoZW1lTHN0Lz4iLFhbWC5sZW5ndGhdPSI8L2E6dGhlbWU+IixYLmpvaW4oIiIpfWZ1bmN0aW9uIGVC''@;'; + put 'put ''KEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoMiksWD1ILnJlYWRfc2hpZnQoMiktNCx3ZT1bcmVdO3N3aXRjaChyZSl7Y2FzZSA0OmNhc2UgNTpjYXNlIDc6Y2FzZSA4OmNhc2UgOTpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAxMzp3ZVsxXT1mdW5jdGlvbiBxUihIKXt2YXIgcmU9e307c3dpdGNoKHJl''@;'; + put 'put ''LnhjbHJUeXBlPUgucmVhZF9zaGlmdCgyKSxyZS5uVGludFNoYWRlPUgucmVhZF9zaGlmdCgyKSxyZS54Y2xyVHlwZSl7Y2FzZSAwOmNhc2UgNDpILmwrPTQ7YnJlYWs7Y2FzZSAxOnJlLnhjbHJWYWx1ZT1mdW5jdGlvbiBfRShILHJlKXtyZXR1cm4gX3MoSCxyZSl9KEgsNCk7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSAyOnJlLnhjbHJWYWx1ZT10NihIKTticmVhaztjYXNlIDM6cmUueGNsclZhbHVlPWZ1bmN0aW9uIGJFKEgpe3JldHVybiBILnJlYWRfc2hpZnQoNCl9KEgpfXJldHVybiBILmwrPTgscmV9KEgpO2JyZWFrO2Nhc2UgNjp3ZVsxXT1mdW5jdGlvbiBDRShILHJlKXtyZXR1cm4gX3MoSCxyZSl9''@;'; + put 'put ''KEgsWCk7YnJlYWs7Y2FzZSAxNDpjYXNlIDE1OndlWzFdPUgucmVhZF9zaGlmdCgxPT09WD8xOjIpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgRXh0UHJvcCB0eXBlOiAiK3JlKyIgIitYKX1yZXR1cm4gd2V9ZnVuY3Rpb24gSWIoSCxyZSl7cmUuZm9yRWFj''@;'; + put 'put ''aChmdW5jdGlvbihYKXtzd2l0Y2goWFswXSl7Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Y2FzZSA3OmNhc2UgODpjYXNlIDk6Y2FzZSAxMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpicmVhaztjYXNlIDEzOkguZm9udCYmSC5mb250LmNvbG9yJiZBcnJheS5pc0FycmF5KFhbMV0ueGNsclZhbHVl''@;'; + put 'put ''KSYmKEguZm9udC5jb2xvci5yZ2I9YjMoWFsxXS54Y2xyVmFsdWUpKX19KX1mdW5jdGlvbiBIbChIKXtyZXR1cm4gSC85MTQ0MDAqUjR9ZnVuY3Rpb24gJDgoSCxyZSl7dmFyIFg9e307aWYoSC5wb3MpWC54PUhsKEgucG9zLngpLFgueT1IbChILnBvcy55KTtlbHNle2lmKCFILmZyb20pdGhy''@;'; + put 'put ''b3ciYmFkIGFuY2hvciBzdGFydCI7WC5yPUguZnJvbS5yfHwwLFguYz1ILmZyb20uY3x8MCxILmZyb20uY09mZiYmKFgueD1IbChILmZyb20uY09mZikpLEguZnJvbS5yT2ZmJiYoWC55PUhsKEguZnJvbS5yT2ZmKSl9aWYoSC5leHQpWC53PUhsKEguZXh0LngpLFguaD1IbChILmV4dC55KTtl''@;'; + put 'put ''bHNle2lmKCFILnRvKXRocm93ImJhZCBhbmNob3IgZW5kIjtYLkM9SC50by5jLFguUj1ILnRvLnIsSC50by5jT2ZmJiYoWC5YPUhsKEgudG8uY09mZikpLEgudG8uck9mZiYmKFguWT1IbChILnRvLnJPZmYpKX1yZXR1cm4gWH1mdW5jdGlvbiB5ZihILHJlKXt2YXIgWD17eDotMSx5Oi0xLHc6''@;'; + put 'put ''LTEsaDotMX07aWYoSC5wb3MpWC54PUhsKEgucG9zLngpLFgueT1IbChILnBvcy55KTtlbHNle2lmKCFILmZyb20pdGhyb3ciYmFkIGFuY2hvciBzdGFydCI7WC54PWZ1KHJlLEguZnJvbS5jLCJDIikrSGwoSC5mcm9tLmNPZmYpLFgueT1mdShyZSxILmZyb20uciwiUiIpK0hsKEguZnJvbS5y''@;'; + put 'put ''T2ZmKX1pZihILmV4dClYLnc9SGwoSC5leHQueCksWC5oPUhsKEguZXh0LnkpO2Vsc2V7aWYoIUgudG8pdGhyb3ciYmFkIGFuY2hvciBlbmQiO1gudz1mdShyZSxILnRvLmMsIkMiKStIbChILnRvLmNPZmYpLVgueCxYLmg9ZnUocmUsSC50by5yLCJSIikrSGwoSC50by5yT2ZmKS1YLnl9cmV0''@;'; + put 'put ''dXJuIFh9ZnVuY3Rpb24gRGIoSCxyZSl7dmFyIFg9e3I6LTEsYzotMSx4Oi0xLHk6LTEsUjotMSxDOi0xLFg6LTEsWTotMX07c3dpdGNoKEgudHlwZSl7Y2FzZSJ0d29DZWxsQW5jaG9yIjpYLnI9SC5mcm9tLnIsWC55PUhsKEguZnJvbS5yT2ZmKSxYLlI9SC50by5yLFguWT1IbChILnRvLnJP''@;'; + put 'put ''ZmYpLFguYz1ILmZyb20uYyxYLng9SGwoSC5mcm9tLmNPZmYpLFguQz1ILnRvLmMsWC5YPUhsKEgudG8uY09mZik7YnJlYWs7Y2FzZSJvbmVDZWxsQW5jaG9yIjpYLnI9SC5mcm9tLnIsWC55PUhsKEguZnJvbS5yT2ZmKTt2YXIgd2U9TWQocmUsWC5yLFgueStIbChILmV4dC55KSk7WC5SPXdl''@;'; + put 'put ''WzBdLFguWT13ZVsxXSxYLmM9SC5mcm9tLmMsWC54PUhsKEguZnJvbS5jT2ZmKTt2YXIgeGU9X20ocmUsWC5jLFgueCtIbChILmV4dC54KSk7WC5DPXhlWzBdLFguWD14ZVsxXTticmVhaztjYXNlImFic29sdXRlQW5jaG9yIjp2YXIgRmU9TWQocmUsMCxIbChILnBvcy55KSk7WC5yPUZlWzBd''@;'; + put 'put ''LFgueT1GZVsxXTt2YXIgWmU9TWQocmUsWC5yLFgueStIbChILmV4dC55KSk7WC5SPVplWzBdLFguWT1aZVsxXTt2YXIgamU9TWQocmUsMCxIbChILnBvcy54KSk7WC5jPWplWzBdLFgueD1qZVsxXTt2YXIgWWU9TWQocmUsWC5jLFgueCtIbChILmV4dC54KSk7WC5DPVllWzBdLFguWD1ZZVsx''@;'; + put 'put ''XTticmVhaztkZWZhdWx0OnRocm93ImJhZCBhbmNob3IgdHlwZSAiK0gudHlwZX1yZXR1cm4gWH1mdW5jdGlvbiBrRShILHJlKXt2YXIgWD1ILnRyaW0oKS5zcGxpdCgvXHMqLFxzKi8pO3JlWyIhcG9zIl09e2M6K1hbMF0seDorWFsxXSxyOitYWzJdLHk6K1hbM10sQzorWFs0XSxYOitYWzVd''@;'; + put 'put ''LFI6K1hbNl0sWTorWFs3XX19ZnVuY3Rpb24gckIoSCxyZSxYKXt2YXIgd2U9LTE7aWYobnVsbCE9SC5SfHxudWxsIT1ILkMpd2U9MDtlbHNle2lmKG51bGw9PUgueHx8bnVsbD09SC55fHxudWxsPT1ILnd8fG51bGw9PUguaCl0aHJvdyJjYW5ub3QgcGFyc2UgYW5jaG9yICIrSlNPTi5zdHJp''@;'; + put 'put ''bmdpZnkoSCk7d2U9MSsyKiEoSC5jfHxILnIpfWlmKHdlIT1yZSl7c3dpdGNoKHJlKXtjYXNlIDA6Y2FzZSAxOmlmKDMhPXdlKWJyZWFrO3ZhciB4ZT1fbShYLEguY3x8MCxILnh8fDApO0guYz14ZVswXSxILng9eGVbMV07dmFyIEZlPU1kKFgsSC5yfHwwLEgueXx8MCk7SC5yPUZlWzBdLEgu''@;'; + put 'put ''eT1GZVsxXTticmVhaztjYXNlIDM6aWYoMz09d2UpYnJlYWs7dmFyIFplPUguY3x8MCxqZT1ILnh8fDA7ZGVsZXRlIEguYyxkZWxldGUgSC54LEgueD0oWmU/TnYoWCxaZSk6MCkramU7dmFyIFllPUgucnx8MCxNdD1ILnl8fDA7ZGVsZXRlIEgucixkZWxldGUgSC55LEgueT0oWWU/cTgoWCxZ''@;'; + put 'put ''ZSk6MCkrTXQ7YnJlYWs7ZGVmYXVsdDp0aHJvdyJjb252ZXJ0X2FuY2hvciB1bnJlY29nbml6ZWQgdHlwZSAiK3JlfXN3aXRjaChyZSl7Y2FzZSAwOmlmKDA9PXdlKWJyZWFrO3ZhciB4dD1fbShYLEguY3x8MCwoSC54fHwwKStILncpO2RlbGV0ZSBILncsSC5DPXh0WzBdLEguWD14dFsxXTt2''@;'; + put 'put ''YXIgUnQ9TWQoWCxILnJ8fDAsKEgueXx8MCkrSC5oKTtkZWxldGUgSC5oLEguUj1SdFswXSxILlk9UnRbMV07YnJlYWs7Y2FzZSAxOmNhc2UgMzppZigwIT13ZSlicmVhazt2YXIgWXQ9SC5DfHwwLG5uPUguWHx8MDtkZWxldGUgSC5DLGRlbGV0ZSBILlgsSC53PU52KFgsWXQpK25uLShILmM/''@;'; + put 'put ''TnYoWCxILmMpOjApLShILnh8fDApO3ZhciBDbj1ILlJ8fDAsRHQ9SC5ZfHwwO2RlbGV0ZSBILlIsZGVsZXRlIEguWSxILmg9cTgoWCxDbikrRHQtKEgucj9xOChYLEgucik6MCktKEgueXx8MCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJjb252ZXJ0X2FuY2hvciB1bnJlY29nbml6ZWQgdHlwZSAi''@;'; + put 'put ''K3JlfX19ZnVuY3Rpb24gaUIoSCl7dmFyIHJlPVtILmN8fDAsTWF0aC5yb3VuZChILnh8fDApLEgucnx8MCxNYXRoLnJvdW5kKEgueXx8MCldO3JldHVybihyZT1yZS5jb25jYXQoSC5oJiZILnc/W3JlWzBdLE1hdGgucm91bmQocmVbMV0rSC53KSxyZVsyXSxNYXRoLnJvdW5kKHJlWzNdK0gu''@;'; + put 'put ''aCldOltILkN8fDAsTWF0aC5yb3VuZChILlh8fDApLEguUnx8MCxNYXRoLnJvdW5kKEguWXx8MCldKSkuam9pbigiLCAiKX1mdW5jdGlvbiBxOChILHJlKXtpZighSClyZXR1cm4gMDtmb3IodmFyIFg9MDstLXJlPj0wOyl7dmFyIHdlPSgoSFsiIXJvd3MiXXx8W10pW3JlXXx8e30pLmhweDtu''@;'; + put 'put ''dWxsPT13ZSYmKHdlPSgoSFsiIXNoZWV0Rm9ybWF0Il18fHt9KS5yb3d8fHt9KS5ocHgpLG51bGw9PXdlJiYod2U9MjQpLFgrPXdlfXJldHVybiBYfWZ1bmN0aW9uIE52KEgscmUpe2lmKCFIKXJldHVybiAwO2Zvcih2YXIgWD0wOy0tcmU+PTA7KXt2YXIgd2U9KChIWyIhY29scyJdfHxbXSlb''@;'; + put 'put ''cmVdfHx7fSkud3B4O2lmKG51bGw9PXdlJiYod2U9KChIWyIhc2hlZXRGb3JtYXQiXXx8e30pLmNvbHx8e30pLndweCksbnVsbD09d2Upe3ZhciB4ZT17d2NoOjguNDN9O3ljKHhlKSxIWyIhY29scyJdJiYoSFsiIWNvbHMiXVtyZV09eGUpLHdlPXhlLndweH1YKz13ZX1yZXR1cm4gWH1mdW5j''@;'; + put 'put ''dGlvbiBmdShILHJlLFgpe3JldHVybiJDIj09WD9OdihILHJlKTpxOChILHJlKX1mdW5jdGlvbiBNZChILHJlLFgpe3ZhciB3ZT1bcmUsWF07aWYoIUgpcmV0dXJuIHdlO2Zvcig7Oyl7dmFyIHhlPShIWyIhcm93cyJdfHxbXSlbd2VbMF1dfHx7fTtpZih4ZS5oaWRkZW4pKyt3ZVswXTtlbHNl''@;'; + put 'put ''e3ZhciBGZT14ZS5ocHg7aWYobnVsbD09RmUmJihGZT0oKEhbIiFzaGVldEZvcm1hdCJdfHx7fSkucm93fHx7fSkuaHB4KSxudWxsPT1GZSYmKEZlPUFmKDE1KSksd2VbMV08RmUpYnJlYWs7d2VbMF0rKyx3ZVsxXS09RmV9fXJldHVybiB3ZX1mdW5jdGlvbiBfbShILHJlLFgpe3ZhciB3ZT1b''@;'; + put 'put ''cmUsWF07aWYoIUgpcmV0dXJuIHdlO2Zvcig7Oyl7dmFyIHhlPShIWyIhY29scyJdfHxbXSlbd2VbMF1dfHx7fTtpZih4ZS5oaWRkZW58fDA9PT14ZS53cHgpKyt3ZVswXTtlbHNle3ZhciBGZT14ZS53cHg7aWYobnVsbD09RmUmJihGZT0oKEhbIiFzaGVldEZvcm1hdCJdfHx7fSkuY29sfHx7''@;'; + put 'put ''fSkud3B4KSxudWxsPT1GZSl7dmFyIFplPXt3Y2g6OC40M307eWMoWmUpLEhbIiFjb2xzIl0mJihIWyIhY29scyJdW3dlWzBdXT1aZSksRmU9WmUud3B4fWlmKHdlWzFdPEZlKWJyZWFrO3dlWzBdKyssd2VbMV0tPUZlfX1yZXR1cm4gd2V9ZnVuY3Rpb24gTG8oSCl7cmV0dXJuKCIwMDAwMDAi''@;'; + put 'put ''KygibnVtYmVyIj09dHlwZW9mIEg/SC50b1N0cmluZygxNik6SCkpLnNsaWNlKC02KX1mdW5jdGlvbiBYcyhILHJlLFgpe3ZhciB3ZT0ic3RyaW5nIj09dHlwZW9mIHJlPyEhWDohIXJlOyJzdHJpbmciIT10eXBlb2YgcmUmJihyZT0iY29sb3IiKTt2YXIgeGU9IjwiK3JlKyIgIjtyZXR1cm4g''@;'; + put 'put ''SC5hdXRvP3hlKydhdXRvPSIxIi8+JzpILmluZGV4JiZudWxsPT1ILnJnYj94ZSsnaW5kZXhlZD0iJytILmluZGV4KyciLz4nOm51bGwhPUgudGhlbWU/eGUrJ3RoZW1lPSInK0gudGhlbWUrJyInKyhILnRpbnQ/JyB0aW50PSInK0gudGludCsnIic6IiIpKyIvPiI6bnVsbCE9SC5yZ2I/eGUr''@;'; + put 'put ''J3JnYj0iJysod2U/IkZGIjoiIikrTG8oSC5yZ2IpKyciLz4nOnhlKyIvPiJ9ZnVuY3Rpb24gTGIoSCxyZSl7aWYoIUh8fG51bGw9PUgucmdiKXJldHVybiByZTtmb3IodmFyIFg9KCIwMDAwMDAiK0gucmdiLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpLHdlPVtYLnNsaWNlKDAsMiksWC5zbGlj''@;'; + put 'put ''ZSgyLDQpLFguc2xpY2UoNCw2KV0ubWFwKGZ1bmN0aW9uKFplKXtyZXR1cm4gcGFyc2VJbnQoWmUsMTYpfSkseGU9MDt4ZTx1dS5sZW5ndGg7Kyt4ZSl7dmFyIEZlPXV1W3hlXTtpZihGZVswXT09d2VbMF0mJkZlWzFdPT13ZVsxXSYmRmVbMl09PXdlWzJdKXJldHVybiB4ZX1yZXR1cm4gdXUu''@;'; + put 'put ''bGVuZ3RoPDY0Pyh1dS5wdXNoKFt3ZVswXSx3ZVsxXSx3ZVsyXV0pLHV1Lmxlbmd0aC0xKTpyZX1mdW5jdGlvbiBJMyhIKXt2YXIgcmU9WyIiLCIiLCIiXTtpZighSClyZXR1cm5bXTt2YXIgWD0iIix3ZT1IJiZILnM/ZnVuY3Rpb24gZTUoSCl7dmFyIHJlPVsiIiwiIl07aWYoIUgpcmV0dXJu''@;'; + put 'put ''IHJlO2lmKEguc3omJihyZVswXSs9IiYiK0guc3oscmVbMV09IiYxMiIrcmVbMV0pLEgubmFtZSYmKHJlWzBdKz0nJiInK0gubmFtZSsnLFJlZ3VsYXIiJyxyZVsxXT0nJiItLFJlZ3VsYXIiJytyZVsxXSksSC5ib2xkJiYocmVbMF0rPSImQiIscmVbMV09IiZCIityZVsxXSksSC51bmRlcmxp''@;'; + put 'put ''bmUpe3ZhciBYPTI9PUgudW5kZXJsaW5lPyImRSI6IiZVIjtyZVswXSs9WCxyZVsxXT1YK3JlWzFdfXJldHVybiBILml0YWxpYyYmKHJlWzBdKz0iJkkiLHJlWzFdPSImSSIrcmVbMV0pLEguY29sb3ImJm51bGwhPUguY29sb3IucmdiJiYocmVbMF0rPSImSyIrTG8oSC5jb2xvci5yZ2IpLHJl''@;'; + put 'put ''WzFdKz0iJkswMDAwMDAiKSxILnN0cmlrZSYmKHJlWzBdKz0iJlMiLHJlWzFdPSImUyIrcmVbMV0pLCJzdXBlciI9PUgudmFsaWduJiYocmVbMF0rPSImWCIscmVbMV09IiZYIityZVsxXSksInN1YiI9PUgudmFsaWduJiYocmVbMF0rPSImWSIscmVbMV09IiZZIityZVsxXSkscmV9KEgucyk6''@;'; + put 'put ''WyIiLCIiXTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEg/W0gsSCxIXTpudWxsIT1ILmZpcnN0fHxudWxsIT1ILmV2ZW58fG51bGwhPUgub2RkPyhudWxsIT1ILm9kZCYmKHJlWzBdPUkzKEgub2RkKVswXSksdm9pZCAwPT09SC5maXJzdCYmcmVbMF0mJihyZVsxXT1yZVswXSksbnVsbCE9SC5m''@;'; + put 'put ''aXJzdCYmKHJlWzFdPUkzKEguZmlyc3QpWzBdKSxudWxsIT1ILmV2ZW4mJihyZVsyXT1JMyhILmV2ZW4pWzBdKSxyZSk6SC5sZWZ0fHxILmNlbnRlcnx8SC5yaWdodD8oSC5sZWZ0JiYoWCs9IiZMIitJMyhILmxlZnQpWzBdKSxILmNlbnRlciYmKFgrPSImQyIrSTMoSC5jZW50ZXIpWzBdKSxI''@;'; + put 'put ''LnJpZ2h0JiYoWCs9IiZSIitJMyhILnJpZ2h0KVswXSksW1gsWCxYXSk6bnVsbCE9SC52P1tYPXdlWzBdK0gudi5yZXBsYWNlKC8mL2csIiYmIikrd2VbMV0sWCxYXTpudWxsIT1ILnc/W1g9d2VbMF0rSC53K3dlWzFdLFgsWF06QXJyYXkuaXNBcnJheShILlIpPyhILlIuZm9yRWFjaChmdW5j''@;'; + put 'put ''dGlvbih4ZSl7WCs9STMoeGUpWzBdfSksW1gsWCxYXSk6W119dmFyIGp2PXsxOiJMZXR0ZXIiLDM6IlRhYmxvaWQiLDU6IkxlZ2FsIiw3OiJFeGVjdXRpdmUiLDg6IkEzIiw5OiJBNCIsMTE6IkE1IiwxMjoiQjQiLDEzOiJCNSIsMTQ6IkZvbGlvIiwyMDoiRW52ZWxvcGUiLDM3OiJNb25hcmNo''@;'; + put 'put ''Iiw3MDoiQTYifSxSYj10dChqdik7cHQuQ09OTj0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9jb25uZWN0aW9ucyI7dmFyIHk2PWJpKCJleHRlcm5hbExpbmsiLG51bGwse3htbG5zOlgwLm1haW5bMF19KTtwdC5J''@;'; + put 'put ''TUc9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvaW1hZ2UiLHB0LkRSQVc9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZHJhd2luZyI7''@;'; + put 'put ''dmFyIE1FPXt0OiJ0b3AiLGN0cjoiY2VudGVyIixiOiJib3R0b20iLGp1c3Q6InRvcCIsZGlzdDoidG9wIn0sUGI9e2N0cjoiY2VudGVyIixkaXN0OiJjZW50ZXIiLGp1c3Q6ImNlbnRlciIsanVzdExvdzoiY2VudGVyIixsOiJsZWZ0IixyOiJyaWdodCIsdGhhaURpc3Q6ImNlbnRlciJ9O2Z1''@;'; + put 'put ''bmN0aW9uIEZiKCl7dmFyIEg9W2NuXTtyZXR1cm4gSC5wdXNoKCc8eGRyOndzRHIgeG1sbnM6eGRyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvZHJhd2luZ21sLzIwMDYvc3ByZWFkc2hlZXREcmF3aW5nIiB4bWxuczphPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0''@;'; + put 'put ''cy5vcmcvZHJhd2luZ21sLzIwMDYvbWFpbiIvPicpLEguam9pbigiIil9ZnVuY3Rpb24geEUoSCl7dmFyIFgscmU9SFsiIWRhdGEiXTtyZXR1cm4iYmFzZTY0Ij09PUhbIiFkYXRhdHlwZSJdPygoWD1yZS5tYXRjaCgvXmRhdGE6LiosLykpJiYocmU9cmUuc2xpY2UoWFswXS5sZW5ndGgpKSxT''@;'; + put 'put ''ZS5kZWNvZGUocmUpKTpyZX1mdW5jdGlvbiBadihILHJlLFgsd2UseGUpe3ZhciBGZT17c3R5bGU6e30saGVhZGVyOjB9LFplPSExO0gucmVwbGFjZShHdCxmdW5jdGlvbihqZSl7dmFyIFllPWVuKGplKTtzd2l0Y2goSW4oWWVbMF0pKXtjYXNlIjw/eG1sIjpjYXNlIjwvdGFibGU+IjpjYXNl''@;'; + put 'put ''IjwvYXV0b0ZpbHRlcj4iOmNhc2UiPHNvcnRTdGF0ZSI6Y2FzZSI8c29ydFN0YXRlPiI6Y2FzZSI8L3NvcnRTdGF0ZT4iOmNhc2UiPC90YWJsZUNvbHVtbnMiOmNhc2UiPC90YWJsZUNvbHVtbnM+IjpjYXNlIjwvdGFibGVDb2x1bW4+IjpjYXNlIjxjYWxjdWxhdGVkQ29sdW1uRm9ybXVsYT4i''@;'; + put 'put ''OmNhc2UiPGNhbGN1bGF0ZWRDb2x1bW5Gb3JtdWxhIjpjYXNlIjwvY2FsY3VsYXRlZENvbHVtbkZvcm11bGE+IjpjYXNlIjx0b3RhbHNSb3dGb3JtdWxhPiI6Y2FzZSI8dG90YWxzUm93Rm9ybXVsYSI6Y2FzZSI8L3RvdGFsc1Jvd0Zvcm11bGE+IjpjYXNlIjx4bWxDb2x1bW5Qcj4iOmNhc2Ui''@;'; + put 'put ''PHhtbENvbHVtblByIjpjYXNlIjwveG1sQ29sdW1uUHI+IjpjYXNlIjxzb3J0Q29uZGl0aW9uPiI6Y2FzZSI8c29ydENvbmRpdGlvbiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6Y2FzZSI8ZXh0THN0Lz4iOmJyZWFrO2Nhc2UiPHRhYmxlIjpZZS5yZWYm''@;'; + put 'put ''JihGZS5yZWY9WWUucmVmKSxZZS5uYW1lP0ZlLm5hbWU9WWUubmFtZTpZZS5kaXNwbGF5TmFtZSYmKEZlLm5hbWU9WWUuZGlzcGxheU5hbWUpLG51bGwhPVllLmhlYWRlcnJvd2NvdW50JiYxIT0rWWUuaGVhZGVycm93Y291bnQ/RmUuaGVhZGVyPStZZS5oZWFkZXJyb3djb3VudDpudWxsPT1Z''@;'; + put 'put ''ZS5oZWFkZXJyb3djb3VudCYmKEZlLmhlYWRlcj0xKTticmVhaztjYXNlIjxhdXRvRmlsdGVyIjpjYXNlIjxhdXRvRmlsdGVyPiI6RmUuZmlsdGVyPSEwO2JyZWFrO2Nhc2UiPHRhYmxlQ29sdW1ucyI6Y2FzZSI8dGFibGVDb2x1bW5zPiI6RmUuY29scz1bXTticmVhaztjYXNlIjx0YWJsZVN0''@;'; + put 'put ''eWxlSW5mbyI6WWUuc2hvd1Jvd1N0cmlwZXMmJihGZS5zdHlsZS5yb3dzdHJpcGU9RGkoWWUuc2hvd1Jvd1N0cmlwZXMpKSxZZS5zaG93Q29sdW1uU3RyaXBlcyYmKEZlLnN0eWxlLmNvbHN0cmlwZT1EaShZZS5zaG93Q29sdW1uU3RyaXBlcykpLFllLnNob3dGaXJzdENvbHVtbiYmKEZlLnN0''@;'; + put 'put ''eWxlLmNvbGZpcnN0PURpKFllLnNob3dGaXJzdENvbHVtbikpLFllLnNob3dMYXN0Q29sdW1uJiYoRmUuc3R5bGUuY29sbGFzdD1EaShZZS5zaG93TGFzdENvbHVtbikpLFllLm5hbWUmJihGZS5zdHlsZS5uYW1lPVllLm5hbWUucmVwbGFjZSgvXlRhYmxlU3R5bGUvLCIiKSk7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSI8dGFibGVDb2x1bW4iOmNhc2UiPHRhYmxlQ29sdW1uPiI6RmUuY29scy5wdXNoKHtpZDorWWUuaWQsbmFtZTpZZS5uYW1lfSk7YnJlYWs7Y2FzZSI8ZmlsdGVyQ29sdW1uPiI6Y2FzZSI8ZmlsdGVyQ29sdW1uIjpjYXNlIjxjdXN0b21GaWx0ZXJzIjpjYXNlIjxjdXN0b21GaWx0ZXJzPiI6''@;'; + put 'put ''Y2FzZSI8ZXh0IjpaZT0hMDticmVhaztjYXNlIjwvZmlsdGVyQ29sdW1uPiI6Y2FzZSI8L2N1c3RvbUZpbHRlcnM+IjpjYXNlIjwvZXh0PiI6WmU9ITE7YnJlYWs7ZGVmYXVsdDppZighWmUmJnhlLldURil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK1llWzBdKyIgaW4gdGFibGUi''@;'; + put 'put ''KX1yZXR1cm4gamV9KSxGZS5maWx0ZXJ8fChGZS5maWx0ZXI9ITEpLEZlLnN0eWxlLm5hbWUmJiFGZS5zdHlsZS5uYW1lLm1hdGNoKC9eKExpZ2h0fE1lZGl1bXxEYXJrKVxkKyQvKSYmWC5UYWJsZSYmWC5UYWJsZS5mb3JFYWNoKGZ1bmN0aW9uKGplKXsoamUubmFtZT09RmUuc3R5bGUubmFt''@;'; + put 'put ''ZXx8amUucmF3bmFtZT09RmUuc3R5bGUubmFtZSkmJihGZS5zdHlsZS5yYXc9bG4oamUpKX0pLHJlWyIhdGFibGVzIl0ucHVzaChGZSl9ZnVuY3Rpb24gSGIoSCxyZSxYLHdlKXtILmZvckVhY2goZnVuY3Rpb24oeGUsRmUpe3ZhciBaZT1yZS5TaGVldHNbcmUuU2hlZXROYW1lc1t4ZVswXV1d''@;'; + put 'put ''LGplPSJ4bC90YWJsZXMvdGFibGUiKyh4ZVswXSsxKSsiXyIreGVbMV0rIi54bWwiO3dlLnRhYmxlcy5wdXNoKGplKTt2YXIgWWU9eGVbMl0ucmVmfHxaZVsiIXJlZiJdOyJzdHJpbmciIT10eXBlb2YgWWUmJihZZT1mYShZZSkpO3ZhciBNdD1GbyhZZSkseHQ9eGVbMl0ubmFtZXx8InNqc3Ri''@;'; + put 'put ''bF8iK3hlWzBdKyJfIit4ZVsxXSxSdD1bY25dLFl0PSFucih4ZVsyXS5oZWFkZXIpLG5uPVl0JiYhbnIoeGVbMl0uZmlsdGVyKTtSdC5wdXNoKCc8dGFibGUgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgaWQ9IicrKEZl''@;'; + put 'put ''KzEpKyciIG5hbWU9IicrUnIoeHQpKyciIGRpc3BsYXlOYW1lPSInK1JyKHh0KSsnIiByZWY9IicrWWUrJyIgJysobnVsbCE9eGVbMl0uaGVhZGVyJiYxIT14ZVsyXS5oZWFkZXI/J2hlYWRlclJvd0NvdW50PSInKyh4ZVsyXS5oZWFkZXJ8fDApKyciICc6IiIpKyI+Iiksbm4mJlJ0LnB1c2go''@;'; + put 'put ''JzxhdXRvRmlsdGVyIHJlZj0iJytZZSsnIi8+JyksUnQucHVzaCgnPHRhYmxlQ29sdW1ucyBjb3VudD0iJysoTXQuZS5jLU10LnMuYysxKSsnIj4nKTtmb3IodmFyIENuPVtdLER0PU10LnMuYztEdDw9TXQuZS5jOysrRHQpaWYoWXQpe2Zvcih2YXIgenQ9WTAoe3I6TXQucy5yLGM6RHR9KSxQ''@;'; + put 'put ''bj1aZVt6dF0sVG49eGVbMl0uY29scyYmeGVbMl0uY29sc1tEdC1NdC5zLmNdJiZ4ZVsyXS5jb2xzW0R0LU10LnMuY10ubmFtZXx8UG4mJihQbi53fHxQbi52KXx8IkNvbHVtbiAiKyhEdC1NdC5zLmMrMSksT249VG4sV249MTtDbi5pbmRleE9mKE9uKT4tMSYmKytXbjwxNjM4NDspT249VG4r''@;'; + put 'put ''V247aWYoT24hPVRuKXRocm93InRhYmxlIGNvbHVtbnMgIitEdCsiIGFuZCAiKyhDbi5pbmRleE9mKFRuKStNdC5zLmMpKyIgaGF2ZSB0aGUgc2FtZSBoZWFkZXIgJyIrVG4rIic7IHRyeSBzZXR0aW5nIGNlbGwgIit6dCsiIHRvICciK09uKyInIjtDbi5wdXNoKE9uKSxSdC5wdXNoKCc8dGFi''@;'; + put 'put ''bGVDb2x1bW4gaWQ9IicrKHhlWzJdLmNvbHMmJnhlWzJdLmNvbHNbRHQtTXQucy5jXSYmbnVsbCE9eGVbMl0uY29sc1tEdC1NdC5zLmNdLmlkP3hlWzJdLmNvbHNbRHQtTXQucy5jXS5pZDpEdC1NdC5zLmMrMSkrJyIgbmFtZT0iJytScihPbikrJyIvPicpfWVsc2UgUnQucHVzaCh4ZVsyXS5j''@;'; + put 'put ''b2xzJiZ4ZVsyXS5jb2xzW0R0LU10LnMuY10/Jzx0YWJsZUNvbHVtbiBpZD0iJyt4ZVsyXS5jb2xzW0R0LU10LnMuY10uaWQrJyIgbmFtZT0iJyt4ZVsyXS5jb2xzW0R0LU10LnMuY10ubmFtZSsnIi8+JzonPHRhYmxlQ29sdW1uIGlkPSInKyhEdC1NdC5zLmMrMSkrJyIgdW5pcXVlTmFtZT0i''@;'; + put 'put ''JysoRHQtTXQucy5jKzEpKyciIG5hbWU9IicrKER0LU10LnMuYysxKSsnIi8+Jyk7UnQucHVzaCgiPC90YWJsZUNvbHVtbnM+Iik7dmFyIGFpPSsoITEhPT0oeGVbMl0uc3R5bGV8fHt9KS5yb3dzdHJpcGUpLHlyPSshISh4ZVsyXS5zdHlsZXx8e30pLmNvbHN0cmlwZSxhcj0rISEoeGVbMl0u''@;'; + put 'put ''c3R5bGV8fHt9KS5jb2xmaXJzdCxHcj0rISEoeGVbMl0uc3R5bGV8fHt9KS5jb2xsYXN0LHpyPSh4ZVsyXS5zdHlsZXx8e30pLm5hbWV8fCJNZWRpdW05Ijt6cj16ci5tYXRjaCgvXihMaWdodHxNZWRpdW18RGFyaylcZCskLyk/IlRhYmxlU3R5bGUiK3pyOnpyLFJ0LnB1c2goJzx0YWJsZVN0''@;'; + put 'put ''eWxlSW5mbyBuYW1lPSInK3pyKyciIHNob3dGaXJzdENvbHVtbj0iJythcisnIiBzaG93TGFzdENvbHVtbj0iJytHcisnIiBzaG93Um93U3RyaXBlcz0iJythaSsnIiBzaG93Q29sdW1uU3RyaXBlcz0iJyt5cisnIi8+JyksUnQucHVzaCgiPC90YWJsZT4iKSx6bihYLGplLFJ0LmpvaW4oIiIp''@;'; + put 'put ''KX0pfXB0LlRBQkxFPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3RhYmxlIjt2YXIgb0I9LzwoPzpcdys6KT9zaGFwZSg/OlteXHddW14+XSopPz4oW1xzXFNdKj8pPFwvKD86XHcrOik/c2hhcGU+L2c7ZnVuY3Rp''@;'; + put 'put ''b24gVmIoSCxyZSxYLHdlKXt2YXIgeGU9WzIxNjAwLDIxNjAwXSxGZT1bIm0wLDBsMCIseGVbMV0seGVbMF0seGVbMV0seGVbMF0sIjB4ZSJdLmpvaW4oIiwiKSxaZT1bYmkoInhtbCIsbnVsbCx7InhtbG5zOnYiOnVhX3YsInhtbG5zOm8iOnVhX28sInhtbG5zOngiOnVhX3gsInhtbG5zOm12''@;'; + put 'put ''IjoiaHR0cDovL21hY1ZtbFNjaGVtYVVyaSJ9KS5yZXBsYWNlKC9cLz4vLCI+IiksYmkoIm86c2hhcGVsYXlvdXQiLGJpKCJvOmlkbWFwIixudWxsLHsidjpleHQiOiJlZGl0In0pLHsidjpleHQiOiJlZGl0In0pXSxqZT0xMDI0KkgsWWU9WHx8W107WWUubGVuZ3RoPjAmJlplLnB1c2goYmko''@;'; + put 'put ''InY6c2hhcGV0eXBlIixbYmkoInY6c3Ryb2tlIixudWxsLHtqb2luc3R5bGU6Im1pdGVyIn0pLGJpKCJ2OnBhdGgiLG51bGwse3NoYWRvd29rOiJmIixleHRydXNpb25vazoiZiIsc3Ryb2tlb2s6ImYiLGZpbGxvazoiZiIsIm86Y29ubmVjdHR5cGUiOiJyZWN0In0pLGJpKCJvOmxvY2siLG51''@;'; + put 'put ''bGwseyJ2OmV4dCI6ImVkaXQiLHNoYXBldHlwZToidCJ9KV0uam9pbigiIikse2lkOiJfeDAwMDBfdDIwMSIsY29vcmRzaXplOnhlLmpvaW4oIiwiKSwibzpzcHQiOjIwMSxwYXRoOkZlfSkpLHZvaWQgMCE9PXp2JiZZZS5mb3JFYWNoKGZ1bmN0aW9uKHh0KXsrK2plLFplPVplLmNvbmNhdCh6''@;'; + put 'put ''dih4dCxqZSkpfSk7dmFyIE10PXJlfHxbXTtyZXR1cm4gTXQubGVuZ3RoPjAmJlplLnB1c2goYmkoInY6c2hhcGV0eXBlIixbYmkoInY6c3Ryb2tlIixudWxsLHtqb2luc3R5bGU6Im1pdGVyIn0pLGJpKCJ2OnBhdGgiLG51bGwse2dyYWRpZW50c2hhcGVvazoidCIsIm86Y29ubmVjdHR5cGUi''@;'; + put 'put ''OiJyZWN0In0pXS5qb2luKCIiKSx7aWQ6Il94MDAwMF90MjAyIixjb29yZHNpemU6eGUuam9pbigiLCIpLCJvOnNwdCI6MjAyLHBhdGg6RmV9KSksTXQuZm9yRWFjaChmdW5jdGlvbih4dCl7KytqZSxaZT1aZS5jb25jYXQoZnVuY3Rpb24gYUIoSCxyZSxYKXt2YXIgd2U9dWwoSFswXSkseGU9''@;'; + put 'put ''SFsxXS5maWxsfHx7fTtIWzFdLnMmJih4ZT17dHlwZTpIWzFdLnMucGF0dGVyblR5cGV8fCJzb2xpZCJ9LEhbMV0ucy5mZ0NvbG9yJiYoeGUuY29sb3IyPXhlLmNvbG9yMT0iIyIrTG8oSFsxXS5zLmZnQ29sb3IucmdiKSksSFsxXS5zLmJnQ29sb3ImJih4ZS5jb2xvcjI9IiMiK0xvKEhbMV0u''@;'; + put 'put ''cy5iZ0NvbG9yLnJnYikpKTt2YXIgRmU9e2NvbG9yMjp4ZS5jb2xvcjJ8fCIjQkVGRjgyIix0eXBlOnhlLnR5cGV8fCJncmFkaWVudCJ9OyJncmFkaWVudCI9PUZlLnR5cGUmJihGZS5hbmdsZT0iLTE4MCIpO3ZhciBaZT0iZ3JhZGllbnQiPT1GZS50eXBlP2JpKCJvOmZpbGwiLG51bGwse3R5''@;'; + put 'put ''cGU6ImdyYWRpZW50VW5zY2FsZWQiLCJ2OmV4dCI6InZpZXcifSk6bnVsbCxqZT1iaSgidjpmaWxsIixaZSxGZSksWWU9e307SFsxXS5zaGFkb3cmJihIWzFdLnNoYWRvdy5jb2xvciYmKFllLmNvbG9yPUhbMV0uc2hhZG93LmNvbG9yKSxIWzFdLnNoYWRvdy5vbiYmKFllLm9uPUhbMV0uc2hh''@;'; + put 'put ''ZG93Lm9uKSksWWUub2JzY3VyZWQ9InQiO3ZhciBNdD0hMCx4dD0hMCxSdD1IWzFdWyIhcG9zIl0/bG4oSFsxXVsiIXBvcyJdKTpudWxsO3JldHVybiBSdCYmKHh0PW51bGw9PVJ0LlImJm51bGw9PVJ0LkMmJm51bGw9PVJ0LlgmJm51bGw9PVJ0LlksTXQ9IVJ0LnImJiFSdC5jLHJCKFJ0LDAs''@;'; + put 'put ''WCkpLFsiPHY6c2hhcGUiK3JsKHtpZDoiX3gwMDAwX3MiK3JlLHR5cGU6IiNfeDAwMDBfdDIwMiIsc3R5bGU6InBvc2l0aW9uOmFic29sdXRlOyBtYXJnaW4tbGVmdDo4MHB0O21hcmdpbi10b3A6NXB0O3dpZHRoOjEwNHB0O2hlaWdodDo2NHB0O3otaW5kZXg6MTAiKyhIWzFdLmhpZGRlbj8i''@;'; + put 'put ''O3Zpc2liaWxpdHk6aGlkZGVuIjoiIiksZmlsbGNvbG9yOnhlLmNvbG9yMXx8IiNFQ0ZBRDQiLHN0cm9rZWNvbG9yOihIWzFdLnN0cm9rZXx8e30pLmNvbG9yfHwiI2VkZWFhMSJ9KSsiPiIsamUsYmkoInY6c2hhZG93IixudWxsLFllKSxiaSgidjpwYXRoIixudWxsLHsibzpjb25uZWN0dHlw''@;'; + put 'put ''ZSI6Im5vbmUifSksJzx2OnRleHRib3g+PGRpdiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0Ij48L2Rpdj48L3Y6dGV4dGJveD4nLCc8eDpDbGllbnREYXRhIE9iamVjdFR5cGU9Ik5vdGUiPicsTXQ/Ijx4Ok1vdmVXaXRoQ2VsbHMvPiI6IiIseHQ/Ijx4OlNpemVXaXRoQ2VsbHMvPiI6IiIsc2Eo''@;'; + put 'put ''Ing6QW5jaG9yIixSdD9pQihSdCk6SFsxXS5yYXdhbmNob3J8fFt3ZS5jKzEsMCx3ZS5yKzEsMCx3ZS5jKzMsMjAsd2Uucis1LDIwXS5qb2luKCIsIikpLHNhKCJ4OkF1dG9GaWxsIiwiRmFsc2UiKSxzYSgieDpSb3ciLFN0cmluZyh3ZS5yKSksc2EoIng6Q29sdW1uIixTdHJpbmcod2UuYykp''@;'; + put 'put ''LEhbMV0uaGlkZGVuPyIiOiI8eDpWaXNpYmxlLz4iLCI8L3g6Q2xpZW50RGF0YT4iLCI8L3Y6c2hhcGU+Il19KHh0LGplLHdlKSl9KSxaZS5wdXNoKCI8L3htbD4iKSxaZS5qb2luKCIiKX12YXIgTjQ9e0J1dHRvbjpbIjx4OkF1dG9GaWxsPkZhbHNlPC94OkF1dG9GaWxsPiIsIjx4OlRleHRI''@;'; + put 'put ''QWxpZ24+Q2VudGVyPC94OlRleHRIQWxpZ24+IiwiPHg6VGV4dFZBbGlnbj5DZW50ZXI8L3g6VGV4dFZBbGlnbj4iXSxHQm94OlsiPHg6U2l6ZVdpdGhDZWxscy8+IiwiPHg6QXV0b0ZpbGw+RmFsc2U8L3g6QXV0b0ZpbGw+IiwiPHg6Tm9UaHJlZUQvPiJdLExhYmVsOlsiPHg6QXV0b0ZpbGw+''@;'; + put 'put ''RmFsc2U8L3g6QXV0b0ZpbGw+IiwiPHg6QXV0b0xpbmU+RmFsc2U8L3g6QXV0b0xpbmU+Il0sUmFkaW86WyI8eDpTaXplV2l0aENlbGxzLz4iLCI8eDpBdXRvRmlsbD5GYWxzZTwveDpBdXRvRmlsbD4iLCI8eDpBdXRvTGluZT5GYWxzZTwveDpBdXRvTGluZT4iLCI8eDpUZXh0VkFsaWduPkNl''@;'; + put 'put ''bnRlcjwveDpUZXh0VkFsaWduPiIsIjx4Ok5vVGhyZWVELz4iXSxDaGVja2JveDpbIjx4OlNpemVXaXRoQ2VsbHMvPiIsIjx4OkF1dG9GaWxsPkZhbHNlPC94OkF1dG9GaWxsPiIsIjx4OkF1dG9MaW5lPkZhbHNlPC94OkF1dG9MaW5lPiIsIjx4OlRleHRWQWxpZ24+Q2VudGVyPC94OlRleHRW''@;'; + put 'put ''QWxpZ24+IiwiPHg6Tm9UaHJlZUQvPiJdLERyb3A6WyI8eDpTaXplV2l0aENlbGxzLz4iLCI8eDpBdXRvTGluZT5GYWxzZTwveDpBdXRvTGluZT4iLCI8eDpOb1RocmVlRDIvPiIsIjx4OlNlbFR5cGU+U2luZ2xlPC94OlNlbFR5cGU+IiwiPHg6RHJvcFN0eWxlPkNvbWJvPC94OkRyb3BTdHls''@;'; + put 'put ''ZT4iLCI8eDpMQ1Q+Tm9ybWFsPC94OkxDVD4iLCI8eDpEcm9wTGluZXM+NDwveDpEcm9wTGluZXM+Il0sTGlzdDpbIjx4OlNpemVXaXRoQ2VsbHMvPiIsIjx4OkF1dG9MaW5lPkZhbHNlPC94OkF1dG9MaW5lPiIsIjx4Ok5vVGhyZWVEMi8+IiwiPHg6TENUPk5vcm1hbDwveDpMQ1Q+IiwiPHg6''@;'; + put 'put ''VmFsPjA8L3g6VmFsPiIsIjx4Ok1pbj4wPC94Ok1pbj4iLCI8eDpNYXg+NTwveDpNYXg+IiwiPHg6SW5jPjE8L3g6SW5jPiIsIjx4OlBhZ2U+NDwveDpQYWdlPiIsIjx4OkR4PjE1PC94OkR4PiJdLFNjcm9sbDpbIjx4OlNpemVXaXRoQ2VsbHMvPiIsIjx4Okhvcml6Lz4iLCI8eDpEeD4xNTwv''@;'; + put 'put ''eDpEeD4iXSxTcGluOlsiPHg6RHg+MTU8L3g6RHg+Il19LGpiPXtCdXR0b246Ijx2OnRleHRib3ggc3R5bGU9J21zby1kaXJlY3Rpb24tYWx0OmF1dG8nIG86c2luZ2xlY2xpY2s9J2YnPjxkaXYgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyJz48Zm9udCBmYWNlPSdDYWxpYnJpJyBzaXplPScy''@;'; + put 'put ''NDAnIGNvbG9yPScjMDAwMDAwJz4jIyMjPC9mb250PjwvZGl2Pjwvdjp0ZXh0Ym94PiIsR0JveDoiPHY6dGV4dGJveCBzdHlsZT0nbXNvLWRpcmVjdGlvbi1hbHQ6YXV0bycgbzpzaW5nbGVjbGljaz0nZic+PGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0Jz48Zm9udCBmYWNlPSdMdWNpZGEg''@;'; + put 'put ''R3JhbmRlJyBzaXplPScyNjAnIGNvbG9yPScjMDAwMDAwJz4jIyMjPC9mb250PjwvZGl2Pjwvdjp0ZXh0Ym94PiIsUmFkaW86Ijx2OnRleHRib3ggc3R5bGU9J21zby1kaXJlY3Rpb24tYWx0OmF1dG8nIG86c2luZ2xlY2xpY2s9J2YnPjxkaXYgc3R5bGU9J3RleHQtYWxpZ246bGVmdCc+PGZv''@;'; + put 'put ''bnQgZmFjZT0nTHVjaWRhIEdyYW5kZScgc2l6ZT0nMjYwJyBjb2xvcj0nYXV0byc+IyMjIzwvZm9udD48L2Rpdj48L3Y6dGV4dGJveD4iLExhYmVsOiI8djp0ZXh0Ym94IHN0eWxlPSdtc28tZGlyZWN0aW9uLWFsdDphdXRvJyBvOnNpbmdsZWNsaWNrPSdmJz48ZGl2IHN0eWxlPSd0ZXh0LWFs''@;'; + put 'put ''aWduOmxlZnQnPjxmb250IGZhY2U9J0x1Y2lkYSBHcmFuZGUnIHNpemU9JzI2MCcgY29sb3I9JyMwMDAwMDAnPiMjIyM8L2ZvbnQ+PC9kaXY+PC92OnRleHRib3g+IixDaGVja2JveDoiPHY6dGV4dGJveCBzdHlsZT0nbXNvLWRpcmVjdGlvbi1hbHQ6YXV0bycgbzpzaW5nbGVjbGljaz0nZic+''@;'; + put 'put ''PGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0Jz48Zm9udCBmYWNlPSdMdWNpZGEgR3JhbmRlJyBzaXplPScyNjAnIGNvbG9yPScjMDAwMDAwJz4jIyMjPC9mb250PjwvZGl2Pjwvdjp0ZXh0Ym94PiIsc2hlZXRqczoiZGFmdXEifSxaYj17QnV0dG9uOlsnPHY6ZmlsbCBjb2xvcjI9IiNmMGYw''@;'; + put 'put ''ZjAgWzY3XSIgbzpkZXRlY3Rtb3VzZWNsaWNrPSJ0Ii8+JywnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiLz4nXSxHQm94OlsnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiLz4nXSxEcm9wOlsnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiIHRleHQ9''@;'; + put 'put ''InQiLz4nXSxMaXN0OlsnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiIHRleHQ9InQiLz4nXSxTcGluOlsnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiIHRleHQ9InQiLz4nXSxTY3JvbGw6Wyc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIgdGV4dD0i''@;'; + put 'put ''dCIvPiddLExhYmVsOlsnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiLz4nXSxSYWRpbzpbJzx2OnBhdGggc2hhZG93b2s9InQiIHN0cm9rZW9rPSJ0IiBmaWxsb2s9InQiLz4nLCc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIvPiddLENoZWNrYm94OlsnPHY6cGF0''@;'; + put 'put ''aCBzaGFkb3dvaz0idCIgc3Ryb2tlb2s9InQiIGZpbGxvaz0idCIvPicsJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0Ii8+J10sc2hlZXRqczpbXX07ZnVuY3Rpb24genYoSCxyZSl7dmFyIFg9e2lkOiJfeDAwMDBfcyIrcmUsdHlwZToiI194MDAwMF90MjAxIixzdHlsZToibXNv''@;'; + put 'put ''LXdyYXAtc3R5bGU6dGlnaHQifTsoIlJhZGlvIj09SFsiIXR5cGUiXXx8IkNoZWNrYm94Ij09SFsiIXR5cGUiXXx8Ikxpc3QiPT1IWyIhdHlwZSJdfHwiRHJvcCI9PUhbIiF0eXBlIl0pJiYoWC5zdHJva2VkPSJmIiksIkxhYmVsIj09SFsiIXR5cGUiXSYmKFguZmlsbGVkPSJmIik7dmFyIHdl''@;'; + put 'put ''PSIiO0gudCYmamJbSFsiIXR5cGUiXV0mJih3ZT1qYltIWyIhdHlwZSJdXS5yZXBsYWNlKC8jIyMjLyxScihILnQpKSk7dmFyIHhlPVtdO3JldHVybiBILm1hY3JvJiZ4ZS5wdXNoKHNhKCJ4OkZtbGFNYWNybyIsSC5tYWNybykpLEgubGluayYmeGUucHVzaChzYSgieDpGbWxhTGluayIsSC5s''@;'; + put 'put ''aW5rKSksSC52YWwmJnhlLnB1c2goc2EoIlJhZGlvIj09SFsiIXR5cGUiXXx8IkNoZWNrYm94Ij09SFsiIXR5cGUiXT8ieDpDaGVja2VkIjoieDpWYWwiLFN0cmluZyhILnZhbCkpKSxILnJlZiYmeGUucHVzaChzYSgieDpGbWxhUmFuZ2UiLEgucmVmKSksSC5zZWwmJiJMaXN0Ij09SFsiIXR5''@;'; + put 'put ''cGUiXSYmeGUucHVzaChzYSgieDpTZWxUeXBlIixILnNlbCkpLEgubWluJiZ4ZS5wdXNoKHNhKCJ4Ok1pbiIsU3RyaW5nKEgubWluKSkpLEgubWF4JiZ4ZS5wdXNoKHNhKCJ4Ok1heCIsU3RyaW5nKEgubWF4KSkpLEguc3RlcCYmeGUucHVzaChzYSgieDpJbmMiLFN0cmluZyhILnN0ZXApKSks''@;'; + put 'put ''SC5wYWdlJiZ4ZS5wdXNoKHNhKCJ4OlBhZ2UiLFN0cmluZyhILnBhZ2UpKSksW10uY29uY2F0KFsiPHY6c2hhcGUiK3JsKFgpKyI+Il0pLmNvbmNhdChaYltIWyIhdHlwZSJdXXx8W10pLmNvbmNhdChbd2VdKS5jb25jYXQoWyc8eDpDbGllbnREYXRhIE9iamVjdFR5cGU9IicrSFsiIXR5cGUi''@;'; + put 'put ''XSsnIj4nLHNhKCJ4OkFuY2hvciIsaUIoSFsiIXBvcyJdKSksc2EoIng6UHJpbnRPYmplY3QiLCJGYWxzZSIpXSkuY29uY2F0KHhlKS5jb25jYXQoTjRbSFsiIXR5cGUiXV18fFtdKS5jb25jYXQoWyI8L3g6Q2xpZW50RGF0YT4iLCI8L3Y6c2hhcGU+Il0pfWZ1bmN0aW9uIENtKEgscmUsWCx3''@;'; + put 'put ''ZSl7dmFyIHhlPXsiIWlkIjp7fX0sRmU9W2JpKCJ4bWwiLG51bGwseyJ4bWxuczp2Ijp1YV92LCJ4bWxuczpvIjp1YV9vLCJ4bWxuczp4Ijp1YV94fSkucmVwbGFjZSgvXC8+LywiPiIpLGJpKCJvOnNoYXBlbGF5b3V0IixiaSgibzppZG1hcCIsbnVsbCx7InY6ZXh0IjoiZWRpdCIsZGF0YTox''@;'; + put 'put ''fSkseyJ2OmV4dCI6ImVkaXQifSksJzx2OnNoYXBldHlwZSBpZD0iX3gwMDAwX3Q3NSIgY29vcmRzaXplPSIyMTYwMCwyMTYwMCIgbzpzcHQ9Ijc1IiBvOnByZWZlcnJlbGF0aXZlPSJ0IiBwYXRoPSJtQDRANWxANEAxMUA5QDExQDlANXhlIiBmaWxsZWQ9ImYiIHN0cm9rZWQ9ImYiPicsJzx2''@;'; + put 'put ''OnN0cm9rZSBqb2luc3R5bGU9Im1pdGVyIi8+JywiPHY6Zm9ybXVsYXM+IiwnPHY6ZiBlcW49ImlmIGxpbmVEcmF3biBwaXhlbExpbmVXaWR0aCAwIi8+JywnPHY6ZiBlcW49InN1bSBAMCAxIDAiLz4nLCc8djpmIGVxbj0ic3VtIDAgMCBAMSIvPicsJzx2OmYgZXFuPSJwcm9kIEAyIDEgMiIv''@;'; + put 'put ''PicsJzx2OmYgZXFuPSJwcm9kIEAzIDIxNjAwIHBpeGVsV2lkdGgiLz4nLCc8djpmIGVxbj0icHJvZCBAMyAyMTYwMCBwaXhlbEhlaWdodCIvPicsJzx2OmYgZXFuPSJzdW0gQDAgMCAxIi8+JywnPHY6ZiBlcW49InByb2QgQDYgMSAyIi8+JywnPHY6ZiBlcW49InByb2QgQDcgMjE2MDAgcGl4''@;'; + put 'put ''ZWxXaWR0aCIvPicsJzx2OmYgZXFuPSJzdW0gQDggMjE2MDAgMCIvPicsJzx2OmYgZXFuPSJwcm9kIEA3IDIxNjAwIHBpeGVsSGVpZ2h0Ii8+JywnPHY6ZiBlcW49InN1bSBAMTAgMjE2MDAgMCIvPicsIjwvdjpmb3JtdWxhcz4iLCc8djpwYXRoIG86ZXh0cnVzaW9ub2s9ImYiIGdyYWRpZW50''@;'; + put 'put ''c2hhcGVvaz0idCIgbzpjb25uZWN0dHlwZT0icmVjdCIvPicsJzxvOmxvY2sgdjpleHQ9ImVkaXQiIGFzcGVjdHJhdGlvPSJ0Ii8+JywiPC92OnNoYXBldHlwZT4iXSxaZT0xO1siaGVhZGVyIiwiZm9vdGVyIl0uZm9yRWFjaChmdW5jdGlvbihqZSl7IXdlW2plXXx8WyJvZGQiLCJldmVuIiwi''@;'; + put 'put ''Zmlyc3QiXS5mb3JFYWNoKGZ1bmN0aW9uKFllKXshd2VbamVdW1llXXx8WyJsZWZ0IiwicmlnaHQiLCJjZW50ZXIiXS5mb3JFYWNoKGZ1bmN0aW9uKE10KXtpZihBcnJheS5pc0FycmF5KHdlW2plXVtZZV1bTXRdKSlmb3IodmFyIHh0PTA7eHQ8d2VbamVdW1llXVtNdF0ubGVuZ3RoOysreHQp''@;'; + put 'put ''aWYod2VbamVdW1llXVtNdF1beHRdKXt2YXIgUnQ9d2VbamVdW1llXVtNdF1beHRdO2lmKCJyZW1vdGUiPT1SdFsiIWRhdGF0eXBlIl0pdGhyb3ciQ2Fubm90IHVzZSBsaW5rZWQgaW1hZ2UgaW4gaGVhZGVyIG9yIGZvb3RlciI7Zm9yKDtLbihILCJ4bC9tZWRpYS9pbWFnZSIrWmUrIi5qcGci''@;'; + put 'put ''KTspKytaZTtILmZpbGUoInhsL21lZGlhL2ltYWdlIitaZSsiLmpwZyIseEUoUnQpLHtiaW5hcnk6ITB9KSxKdCh4ZSwtMSwiLi4vbWVkaWEvaW1hZ2UiK1plKyIuanBnIixwdC5JTUcpO3ZhciBZdD0iX3gwMDAwX3MiKygxMDI1K1J0Ll9jbnQpLG5uPSJwb3NpdGlvbjphYnNvbHV0ZTttYXJn''@;'; + put 'put ''aW4tbGVmdDowO21hcmdpbi10b3A6MDt6LWluZGV4OiIrKFJ0Ll9jbnQrMSkrIjsiO25uKz0id2lkdGg6IitSdFsiIXBvcyJdLncrInB4OyIsbm4rPSJoZWlnaHQ6IitSdFsiIXBvcyJdLmgrInB4OyI7dmFyIENuPU10LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2plLmNoYXJBdCgwKS50b1Vw''@;'; + put 'put ''cGVyQ2FzZSgpOyJvZGQiIT09WWUmJihDbis9WWUudG9VcHBlckNhc2UoKSksd2VbamVdW1llXVtNdF0ubGVuZ3RoPjEmJihDbis9eHQpLEZlLnB1c2goYmkoInY6c2hhcGUiLFsnPHY6aW1hZ2VkYXRhIG86cmVsaWQ9InJJZCcrKFJ0Ll9jbnQrMSkrJyIgbzp0aXRsZT0ic2hlZXRqcyIvPics''@;'; + put 'put ''JzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0Ii8+J10uam9pbigiIikse2lkOkNuLCJvOnNwaWQiOll0LHR5cGU6IiNfeDAwMDBfdDc1IixzdHlsZTpubn0pKX19KX0pfSksRmUucHVzaCgiPC94bWw+IiksSC5maWxlKCJ4bC9kcmF3aW5ncy92bWxEcmF3aW5nIitYKyJIRi52bWwi''@;'; + put 'put ''LEZlLmpvaW4oIiIpKSxILmZpbGUoInhsL2RyYXdpbmdzL19yZWxzL3ZtbERyYXdpbmciK1grIkhGLnZtbC5yZWxzIixydCh4ZSkpfXB0LkNNTlQ9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY29tbWVudHMiO3Zh''@;'; + put 'put ''ciBiNj1iaSgiY29tbWVudHMiLG51bGwse3htbG5zOlgwLm1haW5bMF19KTtmdW5jdGlvbiB6YihIKXt2YXIgcmU9W2NuLGI2XSxYPVtdO3JldHVybiByZS5wdXNoKCI8YXV0aG9ycz4iKSxILmZvckVhY2goZnVuY3Rpb24od2Upe3dlWzFdLmZvckVhY2goZnVuY3Rpb24oeGUpe3ZhciBGZT1S''@;'; + put 'put ''cih4ZS5hKTtYLmluZGV4T2YoRmUpPi0xfHwoWC5wdXNoKEZlKSxyZS5wdXNoKCI8YXV0aG9yPiIrRmUrIjwvYXV0aG9yPiIpKX0pfSkscmUucHVzaCgiPC9hdXRob3JzPiIpLHJlLnB1c2goIjxjb21tZW50TGlzdD4iKSxILmZvckVhY2goZnVuY3Rpb24od2Upe3dlWzFdLmZvckVhY2goZnVu''@;'; + put 'put ''Y3Rpb24oeGUpe3JlLnB1c2goJzxjb21tZW50IHJlZj0iJyt3ZVswXSsnIiBhdXRob3JJZD0iJytYLmluZGV4T2YoUnIoeGUuYSkpKyciPjx0ZXh0PicpLHJlLnB1c2goeGUuUj91Nih4ZS5SKTpzYSgidCIsbnVsbD09eGUudD8iIjpScih4ZS50KSkpLHJlLnB1c2goIjwvdGV4dD48L2NvbW1l''@;'; + put 'put ''bnQ+Iil9KX0pLHJlLnB1c2goIjwvY29tbWVudExpc3Q+IikscmUubGVuZ3RoPjImJihyZVtyZS5sZW5ndGhdPSI8L2NvbW1lbnRzPiIscmVbMV09cmVbMV0ucmVwbGFjZSgiLz4iLCI+IikpLHJlLmpvaW4oIiIpfXZhciBiZj14dTtmdW5jdGlvbiBXYihIKXt2YXIgcmU9UTIoKSxYPVtdO3Jl''@;'; + put 'put ''dHVybiBDMChyZSwiQnJ0QmVnaW5Db21tZW50cyIpLEMwKHJlLCJCcnRCZWdpbkNvbW1lbnRBdXRob3JzIiksSC5mb3JFYWNoKGZ1bmN0aW9uKHdlKXt3ZVsxXS5mb3JFYWNoKGZ1bmN0aW9uKHhlKXtYLmluZGV4T2YoeGUuYSk+LTF8fChYLnB1c2goeGUuYS5zbGljZSgwLDU0KSksQzAocmUs''@;'; + put 'put ''IkJydENvbW1lbnRBdXRob3IiLGZ1bmN0aW9uIEloKEgpe3JldHVybiBsdShILnNsaWNlKDAsNTQpKX0oeGUuYSkpKX0pfSksQzAocmUsIkJydEVuZENvbW1lbnRBdXRob3JzIiksQzAocmUsIkJydEJlZ2luQ29tbWVudExpc3QiKSxILmZvckVhY2goZnVuY3Rpb24od2Upe3dlWzFdLmZvckVh''@;'; + put 'put ''Y2goZnVuY3Rpb24oeGUpe3hlLmlhdXRob3I9WC5pbmRleE9mKHhlLmEpO3ZhciBGZT17czp1bCh3ZVswXSksZTp1bCh3ZVswXSl9O0MwKHJlLCJCcnRCZWdpbkNvbW1lbnQiLGZ1bmN0aW9uIElFKEgscmUpe3JldHVybiBudWxsPT1yZSYmKHJlPVJpKDM2KSkscmUud3JpdGVfc2hpZnQoNCxI''@;'; + put 'put ''WzFdLmlhdXRob3IpLEdwKEhbMF0scmUpLHJlLndyaXRlX3NoaWZ0KDQsMCkscmUud3JpdGVfc2hpZnQoNCwwKSxyZS53cml0ZV9zaGlmdCg0LDApLHJlLndyaXRlX3NoaWZ0KDQsMCkscmV9KFtGZSx4ZV0pKSx4ZS50JiZ4ZS50Lmxlbmd0aD4wJiZDMChyZSwiQnJ0Q29tbWVudFRleHQiLGZ1''@;'; + put 'put ''bmN0aW9uIEt3KEgscmUpe3ZhciBYPSExO3JldHVybiBudWxsPT1yZSYmKFg9ITAscmU9UmkoMjMrNCpILnQubGVuZ3RoKSkscmUud3JpdGVfc2hpZnQoMSwxKSxsdShILnQscmUpLHJlLndyaXRlX3NoaWZ0KDQsMSksZnVuY3Rpb24gS28oSCxyZSl7cmV8fChyZT1SaSg0KSkscmUud3JpdGVf''@;'; + put 'put ''c2hpZnQoMixILmljaHx8MCkscmUud3JpdGVfc2hpZnQoMixILmlmbnR8fDApfSh7aWNoOjAsaWZudDowfSxyZSksWD9yZS5zbGljZSgwLHJlLmwpOnJlfSh4ZSkpLEMwKHJlLCJCcnRFbmRDb21tZW50IiksZGVsZXRlIHhlLmlhdXRob3J9KX0pLEMwKHJlLCJCcnRFbmRDb21tZW50TGlzdCIp''@;'; + put 'put ''LEMwKHJlLCJCcnRFbmRDb21tZW50cyIpLHJlLmVuZCgpfXZhciBsQj1bInhsc2IiLCJ4bHNtIiwieGxhbSIsImJpZmY4IiwieGxhIl07cHQuRFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZGlhbG9nc2hlZXQi''@;'; + put 'put ''LHB0Lk1TPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2L3JlbGF0aW9uc2hpcHMveGxNYWNyb3NoZWV0Ijt2YXIgRDM9ZnVuY3Rpb24oKXt2YXIgSD0vKF58W15BLVphLXpfXSlSKFxbPy0/XGQrXF18WzEtOV1cZCp8KUMoXFs/LT9cZCtcXXxbMS05XVxkKnwpKD8h''@;'; + put 'put ''W0EtWmEtejAtOV9dKS9nLHJlPXtyOjAsYzowfTtmdW5jdGlvbiBYKHdlLHhlLEZlLFplKXt2YXIgamU9ITEsWWU9ITE7MD09RmUubGVuZ3RoP1llPSEwOiJbIj09RmUuY2hhckF0KDApJiYoWWU9ITAsRmU9RmUuc2xpY2UoMSwtMSkpLDA9PVplLmxlbmd0aD9qZT0hMDoiWyI9PVplLmNoYXJB''@;'; + put 'put ''dCgwKSYmKGplPSEwLFplPVplLnNsaWNlKDEsLTEpKTt2YXIgTXQ9RmUubGVuZ3RoPjA/MHxwYXJzZUludChGZSwxMCk6MCx4dD1aZS5sZW5ndGg+MD8wfHBhcnNlSW50KFplLDEwKTowO3JldHVybiBqZT94dCs9cmUuYzotLXh0LFllP010Kz1yZS5yOi0tTXQseGUrKGplPyIiOiIkIikrX2Eo''@;'; + put 'put ''eHQpKyhZZT8iIjoiJCIpK1hhKE10KX1yZXR1cm4gZnVuY3Rpb24oeGUsRmUpe3JldHVybiByZT1GZSx4ZS5yZXBsYWNlKEgsWCl9fSgpLFNtPS8oXnxbXi5fQS1aMC05XSkoWyRdPykoW0EtWl17MSwyfXxbQS1XXVtBLVpdezJ9fFhbQS1FXVtBLVpdfFhGW0EtRF0pKFskXT8pKDEwWzAtM11c''@;'; + put 'put ''ZHs0fXwxMDRbMC03XVxkezN9fDEwNDhbMC00XVxkezJ9fDEwNDg1WzAtNl1cZHwxMDQ4NTdbMC02XXxbMS05XVxkezAsNX0pKD8hW18uXChBLVphLXowLTldKS9nLE9FPWZ1bmN0aW9uKHJlLFgpe3JldHVybiByZS5yZXBsYWNlKFNtLGZ1bmN0aW9uKHdlLHhlLEZlLFplLGplLFllKXt2YXIg''@;'; + put 'put ''TXQ9bWgoWmUpLShGZT8wOlguYykseHQ9YXMoWWUpLShqZT8wOlgucik7cmV0dXJuIHhlKyJSIisoMD09eHQ/IiI6amU/eHQrMToiWyIreHQrIl0iKSsiQyIrKDA9PU10PyIiOkZlP010KzE6IlsiK010KyJdIil9KX07ZnVuY3Rpb24gVXYoSCxyZSl7cmV0dXJuIEgucmVwbGFjZShTbSxmdW5j''@;'; + put 'put ''dGlvbihYLHdlLHhlLEZlLFplLGplKXtyZXR1cm4gd2UrKCIkIj09eGU/eGUrRmU6X2EobWgoRmUpK3JlLmMpKSsoIiQiPT1aZT9aZStqZTpYYShhcyhqZSkrcmUucikpfSkucmVwbGFjZSgvKFxkKyk6KFxkKykvZyxmdW5jdGlvbihYLHdlLHhlKXtyZXR1cm4gWGEoYXMod2UpK3JlLnIpKyI6''@;'; + put 'put ''IitYYShhcyh4ZSkrcmUucil9KX1mdW5jdGlvbiBWNChILHJlLFgpe3ZhciB4ZT12cyhyZSkucyxGZT11bChYKTtyZXR1cm4gVXYoSCx7cjpGZS5yLXhlLnIsYzpGZS5jLXhlLmN9KX1mdW5jdGlvbiBRYihIKXtyZXR1cm4gSC5yZXBsYWNlKC9feGxmblwuL2csIiIpfWZ1bmN0aW9uIGIxKEgp''@;'; + put 'put ''e0gubCs9MX1mdW5jdGlvbiBodShILHJlKXt2YXIgWD1ILnJlYWRfc2hpZnQoMT09cmU/MToyKTtyZXR1cm5bMTYzODMmWCxYPj4xNCYxLFg+PjE1JjFdfWZ1bmN0aW9uIE1tKEgscmUsWCl7dmFyIHdlPTI7aWYoWCl7aWYoWC5iaWZmPj0yJiZYLmJpZmY8PTUpcmV0dXJuIEpiKEgpOzEyPT1Y''@;'; + put 'put ''LmJpZmYmJih3ZT00KX12YXIgeGU9SC5yZWFkX3NoaWZ0KHdlKSxGZT1ILnJlYWRfc2hpZnQod2UpLFplPWh1KEgsMiksamU9aHUoSCwyKTtyZXR1cm57czp7cjp4ZSxjOlplWzBdLGNSZWw6WmVbMV0sclJlbDpaZVsyXX0sZTp7cjpGZSxjOmplWzBdLGNSZWw6amVbMV0sclJlbDpqZVsyXX19''@;'; + put 'put ''fWZ1bmN0aW9uIEpiKEgpe3ZhciByZT1odShILDIpLFg9aHUoSCwyKSx3ZT1ILnJlYWRfc2hpZnQoMSkseGU9SC5yZWFkX3NoaWZ0KDEpO3JldHVybntzOntyOnJlWzBdLGM6d2UsY1JlbDpyZVsxXSxyUmVsOnJlWzJdfSxlOntyOlhbMF0sYzp4ZSxjUmVsOlhbMV0sclJlbDpYWzJdfX19ZnVu''@;'; + put 'put ''Y3Rpb24gUkUoSCxyZSxYKXtpZihYJiZYLmJpZmY+PTImJlguYmlmZjw9NSlyZXR1cm4gZnVuY3Rpb24gQkUoSCl7dmFyIHJlPWh1KEgsMiksWD1ILnJlYWRfc2hpZnQoMSk7cmV0dXJue3I6cmVbMF0sYzpYLGNSZWw6cmVbMV0sclJlbDpyZVsyXX19KEgpO3ZhciB3ZT1ILnJlYWRfc2hpZnQo''@;'; + put 'put ''WCYmMTI9PVguYmlmZj80OjIpLHhlPWh1KEgsMik7cmV0dXJue3I6d2UsYzp4ZVswXSxjUmVsOnhlWzFdLHJSZWw6eGVbMl19fWZ1bmN0aW9uIGNCKEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoMiksWD1ILnJlYWRfc2hpZnQoMik7cmV0dXJue3I6cmUsYzoyNTUmWCxmUXVvdGVkOiEhKDE2Mzg0''@;'; + put 'put ''JlgpLGNSZWw6WD4+MTUsclJlbDpYPj4xNX19ZnVuY3Rpb24geGQoSCl7cmV0dXJuW0gucmVhZF9zaGlmdCgxKSxILnJlYWRfc2hpZnQoMSldfWZ1bmN0aW9uIHI1KEgscmUpe3ZhciBYPVtILnJlYWRfc2hpZnQoMSldO2lmKDEyPT1yZSlzd2l0Y2goWFswXSl7Y2FzZSAyOlhbMF09NDticmVh''@;'; + put 'put ''aztjYXNlIDQ6WFswXT0xNjticmVhaztjYXNlIDA6WFswXT0xO2JyZWFrO2Nhc2UgMTpYWzBdPTJ9c3dpdGNoKFhbMF0pe2Nhc2UgNDpYWzFdPXRhKEgsMSk/IlRSVUUiOiJGQUxTRSIsMTIhPXJlJiYoSC5sKz03KTticmVhaztjYXNlIDM3OmNhc2UgMTY6WFsxXT1OMVtIW0gubF1dLEgubCs9''@;'; + put 'put ''MTI9PXJlPzQ6ODticmVhaztjYXNlIDA6SC5sKz04O2JyZWFrO2Nhc2UgMTpYWzFdPUkyKEgpO2JyZWFrO2Nhc2UgMjpYWzFdPWRmKEgsMCx7YmlmZjpyZT4wJiZyZTw4PzI6cmV9KTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiQmFkIFNlckFyOiAiK1hbMF0pfXJldHVybiBYfWZ1''@;'; + put 'put ''bmN0aW9uIGJCKEgscmUsWCl7Zm9yKHZhciB3ZT1ILnJlYWRfc2hpZnQoMTI9PVguYmlmZj80OjIpLHhlPVtdLEZlPTA7RmUhPXdlOysrRmUpeGUucHVzaCgoMTI9PVguYmlmZj93aDpuNikoSCw4KSk7cmV0dXJuIHhlfWZ1bmN0aW9uIHpFKEgscmUsWCl7dmFyIHdlPTAseGU9MDsxMj09WC5i''@;'; + put 'put ''aWZmPyh3ZT1ILnJlYWRfc2hpZnQoNCkseGU9SC5yZWFkX3NoaWZ0KDQpKTooeGU9MStILnJlYWRfc2hpZnQoMSksd2U9MStILnJlYWRfc2hpZnQoMikpLFguYmlmZj49MiYmWC5iaWZmPDgmJigtLXdlLDA9PS0teGUmJih4ZT0yNTYpKTtmb3IodmFyIEZlPTAsWmU9W107RmUhPXdlJiYoWmVb''@;'; + put 'put ''RmVdPVtdKTsrK0ZlKWZvcih2YXIgamU9MDtqZSE9eGU7KytqZSlaZVtGZV1bamVdPXI1KEgsWC5iaWZmKTtyZXR1cm4gWmV9ZnVuY3Rpb24gbzUoSCxyZSxYKXtyZXR1cm4gSC5sKz0yLFtjQihIKV19ZnVuY3Rpb24gSnYoSCl7cmV0dXJuIEgubCs9NixbXX12YXIgcWI9bzUsdUc9SnYsZV89''@;'; + put 'put ''SnYsVEI9bzU7ZnVuY3Rpb24gSUIoSCl7cmV0dXJuIEgubCs9MixbYzEoSCksMSZILnJlYWRfc2hpZnQoMildfXZhciBYdD1vNSxYdj1JQixZRT1KdixLdj1vNSxEaD1vNSx0Xz1bIkRhdGEiLCJBbGwiLCJIZWFkZXJzIiwiPz8iLCI/RGF0YTIiLCI/PyIsIj9EYXRhSGVhZGVycyIsIj8/Iiwi''@;'; + put 'put ''VG90YWxzIiwiPz8iLCI/PyIsIj8/IiwiP0RhdGFUb3RhbHMiLCI/PyIsIj8/IiwiPz8iLCI/Q3VycmVudCJdLGw1PXsxOntuOiJQdGdFeHAiLGY6ZnVuY3Rpb24gbEcoSCxyZSxYKXtyZXR1cm4gSC5sKyssWCYmMTI9PVguYmlmZj9bSC5yZWFkX3NoaWZ0KDQsImkiKSwwXTpbSC5yZWFkX3No''@;'; + put 'put ''aWZ0KDIpLEgucmVhZF9zaGlmdChYJiYyPT1YLmJpZmY/MToyKV19fSwyOntuOiJQdGdUYmwiLGY6X3N9LDM6e246IlB0Z0FkZCIsZjpiMX0sNDp7bjoiUHRnU3ViIixmOmIxfSw1OntuOiJQdGdNdWwiLGY6YjF9LDY6e246IlB0Z0RpdiIsZjpiMX0sNzp7bjoiUHRnUG93ZXIiLGY6YjF9LDg6''@;'; + put 'put ''e246IlB0Z0NvbmNhdCIsZjpiMX0sOTp7bjoiUHRnTHQiLGY6YjF9LDEwOntuOiJQdGdMZSIsZjpiMX0sMTE6e246IlB0Z0VxIixmOmIxfSwxMjp7bjoiUHRnR2UiLGY6YjF9LDEzOntuOiJQdGdHdCIsZjpiMX0sMTQ6e246IlB0Z05lIixmOmIxfSwxNTp7bjoiUHRnSXNlY3QiLGY6YjF9LDE2''@;'; + put 'put ''OntuOiJQdGdVbmlvbiIsZjpiMX0sMTc6e246IlB0Z1JhbmdlIixmOmIxfSwxODp7bjoiUHRnVXBsdXMiLGY6YjF9LDE5OntuOiJQdGdVbWludXMiLGY6YjF9LDIwOntuOiJQdGdQZXJjZW50IixmOmIxfSwyMTp7bjoiUHRnUGFyZW4iLGY6YjF9LDIyOntuOiJQdGdNaXNzQXJnIixmOmIxfSwy''@;'; + put 'put ''Mzp7bjoiUHRnU3RyIixmOmZ1bmN0aW9uIHdCKEgscmUsWCl7cmV0dXJuIEgubCsrLHpjKEgsMCxYKX19LDI2OntuOiJQdGdTaGVldCIsZjpmdW5jdGlvbiBJZChILHJlLFgpe3JldHVybiBILmwrPTUsSC5sKz0yLEgubCs9Mj09WC5iaWZmPzE6NCxbIlBUR1NIRUVUIl19fSwyNzp7bjoiUHRn''@;'; + put 'put ''RW5kU2hlZXQiLGY6ZnVuY3Rpb24gXzYoSCxyZSxYKXtyZXR1cm4gSC5sKz0yPT1YLmJpZmY/NDo1LFsiUFRHRU5EU0hFRVQiXX19LDI4OntuOiJQdGdFcnIiLGY6ZnVuY3Rpb24gVGQoSCl7cmV0dXJuIEgubCsrLE4xW0gucmVhZF9zaGlmdCgxKV19fSwyOTp7bjoiUHRnQm9vbCIsZjpmdW5j''@;'; + put 'put ''dGlvbiBaRShIKXtyZXR1cm4gSC5sKyssMCE9PUgucmVhZF9zaGlmdCgxKX19LDMwOntuOiJQdGdJbnQiLGY6ZnVuY3Rpb24geUIoSCl7cmV0dXJuIEgubCsrLEgucmVhZF9zaGlmdCgyKX19LDMxOntuOiJQdGdOdW0iLGY6ZnVuY3Rpb24gc0coSCl7cmV0dXJuIEgubCsrLEkyKEgpfX0sMzI6''@;'; + put 'put ''e246IlB0Z0FycmF5IixmOmZ1bmN0aW9uIEZFKEgscmUsWCl7dmFyIHdlPSg5NiZIW0gubCsrXSk+PjU7cmV0dXJuIEgubCs9Mj09WC5iaWZmPzY6MTI9PVguYmlmZj8xNDo3LFt3ZV19fSwzMzp7bjoiUHRnRnVuYyIsZjpmdW5jdGlvbiBLYihILHJlLFgpe3ZhciB3ZT0oOTYmSFtILmxdKT4+''@;'; + put 'put ''NTtILmwrPTE7dmFyIHhlPUgucmVhZF9zaGlmdChYJiZYLmJpZmY8PTM/MToyKTtyZXR1cm5bc19beGVdLGM1W3hlXSx3ZV19fSwzNDp7bjoiUHRnRnVuY1ZhciIsZjpmdW5jdGlvbiAkYihILHJlLFgpe3ZhciB3ZT1IW0gubCsrXSx4ZT1ILnJlYWRfc2hpZnQoMSksRmU9WCYmWC5iaWZmPD0z''@;'; + put 'put ''P1s4OD09d2U/LTE6MCxILnJlYWRfc2hpZnQoMSldOmZ1bmN0aW9uIEFCKEgpe3JldHVybltIW0gubCsxXT4+NywzMjc2NyZILnJlYWRfc2hpZnQoMildfShIKTtyZXR1cm5beGUsKDA9PT1GZVswXT9jNTpsXylbRmVbMV1dXX19LDM1OntuOiJQdGdOYW1lIixmOmZ1bmN0aW9uIFF2KEgscmUs''@;'; + put 'put ''WCl7dmFyIHdlPUgucmVhZF9zaGlmdCgxKT4+PjUmMyxGZT1ILnJlYWRfc2hpZnQoIVh8fFguYmlmZj49OD80OjIpO3N3aXRjaChYLmJpZmYpe2Nhc2UgMjpILmwrPTU7YnJlYWs7Y2FzZSAzOmNhc2UgNDpILmwrPTg7YnJlYWs7Y2FzZSA1OkgubCs9MTJ9cmV0dXJuW3dlLDAsRmVdfX0sMzY6''@;'; + put 'put ''e246IlB0Z1JlZiIsZjpmdW5jdGlvbiBuNShILHJlLFgpe3ZhciB3ZT0oOTYmSFtILmxdKT4+NTtyZXR1cm4gSC5sKz0xLFt3ZSxSRShILDAsWCldfX0sMzc6e246IlB0Z0FyZWEiLGY6ZnVuY3Rpb24gaEIoSCxyZSxYKXtyZXR1cm5bKDk2JkhbSC5sKytdKT4+NSxNbShILDAsWCldfX0sMzg6''@;'; + put 'put ''e246IlB0Z01lbUFyZWEiLGY6ZnVuY3Rpb24gQ0IoSCxyZSxYKXt2YXIgd2U9SC5yZWFkX3NoaWZ0KDEpPj4+NSYzO3JldHVybiBILmwrPVgmJjI9PVguYmlmZj8zOjQsW3dlLEgucmVhZF9zaGlmdChYJiYyPT1YLmJpZmY/MToyKV19fSwzOTp7bjoiUHRnTWVtRXJyIixmOl9zfSw0MDp7bjoi''@;'; + put 'put ''UHRnTWVtTm9NZW0iLGY6X3N9LDQxOntuOiJQdGdNZW1GdW5jIixmOmZ1bmN0aW9uIGtCKEgscmUsWCl7cmV0dXJuW0gucmVhZF9zaGlmdCgxKT4+PjUmMyxILnJlYWRfc2hpZnQoWCYmMj09WC5iaWZmPzE6MildfX0sNDI6e246IlB0Z1JlZkVyciIsZjpmdW5jdGlvbiBTQihILHJlLFgpe3Zh''@;'; + put 'put ''ciB3ZT1ILnJlYWRfc2hpZnQoMSk+Pj41JjM7cmV0dXJuIEgubCs9NCxYLmJpZmY8OCYmSC5sLS0sMTI9PVguYmlmZiYmKEgubCs9MiksW3dlXX19LDQzOntuOiJQdGdBcmVhRXJyIixmOmZ1bmN0aW9uIEhhKEgscmUsWCl7dmFyIHdlPSg5NiZIW0gubCsrXSk+PjU7cmV0dXJuIEgubCs9WCYm''@;'; + put 'put ''WC5iaWZmPjg/MTI6WC5iaWZmPDg/Njo4LFt3ZV19fSw0NDp7bjoiUHRnUmVmTiIsZjpmdW5jdGlvbiBrcyhILHJlLFgpe3ZhciB3ZT0oOTYmSFtILmxdKT4+NTtILmwrPTE7dmFyIHhlPWZ1bmN0aW9uIFBFKEgscmUsWCl7dmFyIHdlPVgmJlguYmlmZj9YLmJpZmY6ODtpZih3ZT49MiYmd2U8''@;'; + put 'put ''PTUpcmV0dXJuIGZ1bmN0aW9uIGZCKEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoMiksWD1ILnJlYWRfc2hpZnQoMSksd2U9KDMyNzY4JnJlKT4+MTUseGU9KDE2Mzg0JnJlKT4+MTQ7cmV0dXJuIHJlJj0xNjM4MywxPT13ZSYmcmU+PTgxOTImJihyZS09MTYzODQpLDE9PXhlJiZYPj0xMjgmJihY''@;'; + put 'put ''LT0yNTYpLHtyOnJlLGM6WCxjUmVsOnhlLHJSZWw6d2V9fShIKTt2YXIgeGU9SC5yZWFkX3NoaWZ0KHdlPj0xMj80OjIpLEZlPUgucmVhZF9zaGlmdCgyKSxaZT0oMTYzODQmRmUpPj4xNCxqZT0oMzI3NjgmRmUpPj4xNTtpZihGZSY9MTYzODMsMT09amUpZm9yKDt4ZT41MjQyODc7KXhlLT0x''@;'; + put 'put ''MDQ4NTc2O2lmKDE9PVplKWZvcig7RmU+ODE5MTspRmUtPTE2Mzg0O3JldHVybntyOnhlLGM6RmUsY1JlbDpaZSxyUmVsOmplfX0oSCwwLFgpO3JldHVyblt3ZSx4ZV19fSw0NTp7bjoiUHRnQXJlYU4iLGY6ZnVuY3Rpb24gWGIoSCxyZSxYKXt2YXIgd2U9KDk2JkhbSC5sKytdKT4+NSx4ZT1m''@;'; + put 'put ''dW5jdGlvbiB1QihILHJlLFgpe2lmKFguYmlmZjw4KXJldHVybiBKYihIKTt2YXIgd2U9SC5yZWFkX3NoaWZ0KDEyPT1YLmJpZmY/NDoyKSx4ZT1ILnJlYWRfc2hpZnQoMTI9PVguYmlmZj80OjIpLEZlPWh1KEgsMiksWmU9aHUoSCwyKTtyZXR1cm57czp7cjp3ZSxjOkZlWzBdLGNSZWw6RmVb''@;'; + put 'put ''MV0sclJlbDpGZVsyXX0sZTp7cjp4ZSxjOlplWzBdLGNSZWw6WmVbMV0sclJlbDpaZVsyXX19fShILDAsWCk7cmV0dXJuW3dlLHhlXX19LDQ2OntuOiJQdGdNZW1BcmVhTiIsZjpmdW5jdGlvbiBxdihIKXtyZXR1cm5bSC5yZWFkX3NoaWZ0KDEpPj4+NSYzLEgucmVhZF9zaGlmdCgyKV19fSw0''@;'; + put 'put ''Nzp7bjoiUHRnTWVtTm9NZW1OIixmOmZ1bmN0aW9uIGE1KEgpe3JldHVybltILnJlYWRfc2hpZnQoMSk+Pj41JjMsSC5yZWFkX3NoaWZ0KDIpXX19LDU3OntuOiJQdGdOYW1lWCIsZjpmdW5jdGlvbiBfQihILHJlLFgpe3JldHVybiA1PT1YLmJpZmY/ZnVuY3Rpb24gR0UoSCl7dmFyIHJlPUgu''@;'; + put 'put ''cmVhZF9zaGlmdCgxKT4+PjUmMyxYPUgucmVhZF9zaGlmdCgyLCJpIik7SC5sKz04O3ZhciB3ZT1ILnJlYWRfc2hpZnQoMik7cmV0dXJuIEgubCs9MTIsW3JlLFgsd2VdfShIKTpbSC5yZWFkX3NoaWZ0KDEpPj4+NSYzLEgucmVhZF9zaGlmdCgyKSxILnJlYWRfc2hpZnQoNCldfX0sNTg6e246''@;'; + put 'put ''IlB0Z1JlZjNkIixmOmZ1bmN0aW9uIHZCKEgscmUsWCl7dmFyIHdlPSg5NiZIW0gubF0pPj41O0gubCs9MTt2YXIgeGU9SC5yZWFkX3NoaWZ0KDIpO3JldHVybiBYJiY1PT1YLmJpZmYmJihILmwrPTEyKSxbd2UseGUsUkUoSCwwLFgpXX19LDU5OntuOiJQdGdBcmVhM2QiLGY6ZnVuY3Rpb24g''@;'; + put 'put ''ZEIoSCxyZSxYKXt2YXIgd2U9KDk2JkhbSC5sKytdKT4+NSx4ZT1ILnJlYWRfc2hpZnQoMiwiaSIpO2lmKFgmJjU9PT1YLmJpZmYpSC5sKz0xMjtyZXR1cm5bd2UseGUsTW0oSCwwLFgpXX19LDYwOntuOiJQdGdSZWZFcnIzZCIsZjpmdW5jdGlvbiBNQihILHJlLFgpe3ZhciB3ZT0oOTYmSFtI''@;'; + put 'put ''LmwrK10pPj41LHhlPUgucmVhZF9zaGlmdCgyKSxGZT00O2lmKFgpc3dpdGNoKFguYmlmZil7Y2FzZSA1OkZlPTE1O2JyZWFrO2Nhc2UgMTI6RmU9Nn1yZXR1cm4gSC5sKz1GZSxbd2UseGVdfX0sNjE6e246IlB0Z0FyZWFFcnIzZCIsZjpmdW5jdGlvbiB1dChILHJlLFgpe3ZhciB3ZT0oOTYm''@;'; + put 'put ''SFtILmwrK10pPj41LHhlPUgucmVhZF9zaGlmdCgyKSxGZT04O2lmKFgpc3dpdGNoKFguYmlmZil7Y2FzZSA1OkgubCs9MTIsRmU9NjticmVhaztjYXNlIDEyOkZlPTEyfXJldHVybiBILmwrPUZlLFt3ZSx4ZV19fSwyNTU6e319LHJfPXs2NDozMiw5NjozMiw2NTozMyw5NzozMyw2NjozNCw5''@;'; + put 'put ''ODozNCw2NzozNSw5OTozNSw2ODozNiwxMDA6MzYsNjk6MzcsMTAxOjM3LDcwOjM4LDEwMjozOCw3MTozOSwxMDM6MzksNzI6NDAsMTA0OjQwLDczOjQxLDEwNTo0MSw3NDo0MiwxMDY6NDIsNzU6NDMsMTA3OjQzLDc2OjQ0LDEwODo0NCw3Nzo0NSwxMDk6NDUsNzg6NDYsMTEwOjQ2LDc5OjQ3''@;'; + put 'put ''LDExMTo0Nyw4ODozNCwxMjA6MzQsODk6NTcsMTIxOjU3LDkwOjU4LDEyMjo1OCw5MTo1OSwxMjM6NTksOTI6NjAsMTI0OjYwLDkzOjYxLDEyNTo2MX07IWZ1bmN0aW9uKCl7Zm9yKHZhciBIIGluIHJfKWw1W0hdPWw1W3JfW0hdXX0oKTt2YXIgRW09ezE6e246IlB0Z0VsZkxlbCIsZjpJQn0s''@;'; + put 'put ''Mjp7bjoiUHRnRWxmUnciLGY6S3Z9LDM6e246IlB0Z0VsZkNvbCIsZjpxYn0sNjp7bjoiUHRnRWxmUndWIixmOkRofSw3OntuOiJQdGdFbGZDb2xWIixmOlRCfSwxMDp7bjoiUHRnRWxmUmFkaWNhbCIsZjpYdH0sMTE6e246IlB0Z0VsZlJhZGljYWxTIixmOllFfSwxMzp7bjoiUHRnRWxmQ29s''@;'; + put 'put ''UyIsZjp1R30sMTU6e246IlB0Z0VsZkNvbFNWIixmOmVffSwxNjp7bjoiUHRnRWxmUmFkaWNhbExlbCIsZjpYdn0sMjU6e246IlB0Z0xpc3QiLGY6ZnVuY3Rpb24gJHYoSCl7SC5sKz0yO3ZhciByZT1ILnJlYWRfc2hpZnQoMiksWD1ILnJlYWRfc2hpZnQoMiksd2U9SC5yZWFkX3NoaWZ0KDQp''@;'; + put 'put ''LHhlPUgucmVhZF9zaGlmdCgyKSxGZT1ILnJlYWRfc2hpZnQoMik7cmV0dXJue2l4dGk6cmUsY29sdHlwZTozJlgscnQ6dF9bWD4+MiYzMV0saWR4OndlLGM6eGUsQzpGZX19fSwyOTp7bjoiUHRnU3hOYW1lIixmOmZ1bmN0aW9uIG5fKEgpe3JldHVybiBILmwrPTIsW0gucmVhZF9zaGlmdCg0''@;'; + put 'put ''KV19fSwyNTU6e319LF9mPXswOntuOiJQdGdBdHRyTm9vcCIsZjpmdW5jdGlvbiBVRShIKXtyZXR1cm4gSC5sKz00LFswLDBdfX0sMTp7bjoiUHRnQXR0clNlbWkiLGY6ZnVuY3Rpb24gbUIoSCxyZSxYKXt2YXIgd2U9MjU1JkhbSC5sKzFdPzE6MDtyZXR1cm4gSC5sKz1YJiYyPT1YLmJpZmY/''@;'; + put 'put ''Mzo0LFt3ZV19fSwyOntuOiJQdGdBdHRySWYiLGY6ZnVuY3Rpb24gTkUoSCxyZSxYKXt2YXIgd2U9MjU1JkhbSC5sKzFdPzE6MDtyZXR1cm4gSC5sKz0yLFt3ZSxILnJlYWRfc2hpZnQoWCYmMj09WC5iaWZmPzE6MildfX0sNDp7bjoiUHRnQXR0ckNob29zZSIsZjpmdW5jdGlvbiBnQihILHJl''@;'; + put 'put ''LFgpe0gubCs9Mjtmb3IodmFyIHdlPUgucmVhZF9zaGlmdChYJiYyPT1YLmJpZmY/MToyKSx4ZT1bXSxGZT0wO0ZlPD13ZTsrK0ZlKXhlLnB1c2goSC5yZWFkX3NoaWZ0KFgmJjI9PVguYmlmZj8xOjIpKTtyZXR1cm4geGV9fSw4OntuOiJQdGdBdHRyR290byIsZjpmdW5jdGlvbiBIRShILHJl''@;'; + put 'put ''LFgpe3ZhciB3ZT0yNTUmSFtILmwrMV0/MTowO3JldHVybiBILmwrPTIsW3dlLEgucmVhZF9zaGlmdChYJiYyPT1YLmJpZmY/MToyKV19fSwxNjp7bjoiUHRnQXR0clN1bSIsZjpmdW5jdGlvbiBhRyhILHJlLFgpe0gubCs9WCYmMj09WC5iaWZmPzM6NH19LDMyOntuOiJQdGdBdHRyQmF4Y2Vs''@;'; + put 'put ''IixmOmZ1bmN0aW9uIHBCKEgpe3ZhciByZT0xJkhbSC5sKzFdO3JldHVybiBILmwrPTQsW3JlLDFdfX0sNjQ6e246IlB0Z0F0dHJTcGFjZSIsZjpmdW5jdGlvbiBvRyhIKXtyZXR1cm4gSC5yZWFkX3NoaWZ0KDIpLHhkKEgpfX0sNjU6e246IlB0Z0F0dHJTcGFjZVNlbWkiLGY6ZnVuY3Rpb24g''@;'; + put 'put ''akUoSCl7cmV0dXJuIEgucmVhZF9zaGlmdCgyKSx4ZChIKX19LDEyODp7bjoiUHRnQXR0cklmRXJyb3IiLGY6ZnVuY3Rpb24gVkUoSCl7dmFyIHJlPTI1NSZIW0gubCsxXT8xOjA7cmV0dXJuIEgubCs9MixbcmUsSC5yZWFkX3NoaWZ0KDIpXX19LDI1NTp7fX07ZnVuY3Rpb24gRGQoSCxyZSxY''@;'; + put 'put ''LHdlLHhlKXtpZih3ZS5iaWZmPDgpcmV0dXJuIF9zKEgscmUpO2Zvcih2YXIgRmU9SC5sK3JlLFplPVtdLGplPTA7amUhPT1YLmxlbmd0aDsrK2plKXN3aXRjaChYW2plXVswXSl7Y2FzZSJQdGdBcnJheSI6WFtqZV1bMV09ekUoSCwwLHdlKSxaZS5wdXNoKFhbamVdWzFdKTticmVhaztjYXNl''@;'; + put 'put ''IlB0Z01lbUFyZWEiOlhbamVdWzJdPWJCKEgsMCx3ZSksWmUucHVzaChYW2plXVsyXSk7YnJlYWs7Y2FzZSJQdGdFeHAiOndlJiYxMj09d2UuYmlmZiYmKFhbamVdWzFdWzFdPUgucmVhZF9zaGlmdCg0KSxaZS5wdXNoKFhbamVdWzFdKSk7YnJlYWs7Y2FzZSJQdGdMaXN0IjpjYXNlIlB0Z0Vs''@;'; + put 'put ''ZlJhZGljYWxTIjpjYXNlIlB0Z0VsZkNvbFMiOmNhc2UiUHRnRWxmQ29sU1YiOnRocm93IlVuc3VwcG9ydGVkICIrWFtqZV1bMF19cmV0dXJuIHJlPUZlLUgubCwheGUmJjAhPT1yZSYmWmUucHVzaChfcyhILHJlKSksWmV9ZnVuY3Rpb24gajQoSCxyZSxYKXtmb3IodmFyIHhlLEZlLHdlPUgu''@;'; + put 'put ''bCtyZSxaZT1bXTt3ZSE9SC5sOylyZT13ZS1ILmwseGU9bDVbRmU9SFtILmxdXSwoMjQ9PT1GZXx8MjU9PT1GZSkmJih4ZT0oMjQ9PT1GZT9FbTpfZilbSFtILmwrMV1dKSx4ZSYmeGUuZj9aZS5wdXNoKFt4ZS5uLHhlLmYoSCxyZSxYKV0pOl9zKEgscmUpO3JldHVybiBaZX1mdW5jdGlvbiBp''@;'; + put 'put ''XyhIKXtmb3IodmFyIHJlPVtdLFg9MDtYPEgubGVuZ3RoOysrWCl7Zm9yKHZhciB3ZT1IW1hdLHhlPVtdLEZlPTA7RmU8d2UubGVuZ3RoOysrRmUpe3ZhciBaZT13ZVtGZV07eGUucHVzaChaZT8yPT09WmVbMF0/JyInK1plWzFdLnJlcGxhY2UoLyIvZywnIiInKSsnIic6WmVbMV06IiIpfXJl''@;'; + put 'put ''LnB1c2goeGUuam9pbigiLCIpKX1yZXR1cm4gcmUuam9pbigiOyIpfV9mWzMzXT1fZlszMl07dmFyIFFFPXtQdGdBZGQ6IisiLFB0Z0NvbmNhdDoiJiIsUHRnRGl2OiIvIixQdGdFcToiPSIsUHRnR2U6Ij49IixQdGdHdDoiPiIsUHRnTGU6Ijw9IixQdGdMdDoiPCIsUHRnTXVsOiIqIixQdGdO''@;'; + put 'put ''ZToiPD4iLFB0Z1Bvd2VyOiJeIixQdGdTdWI6Ii0ifSxlQT1uZXcgUmVnRXhwKC9bXlx3XHU0RTAwLVx1OUZGRlx1MzA0MC1cdTMwRkZdLyk7ZnVuY3Rpb24gSkUoSCxyZSxYKXtpZighSClyZXR1cm4iU0gzM1RKU0VSUjAiO2lmKFguYmlmZj44JiYoIUguWFRJfHwhSC5YVElbcmVdKSlyZXR1''@;'; + put 'put ''cm4gSC5TaGVldE5hbWVzW3JlXTtpZighSC5YVEkpcmV0dXJuIlNIMzNUSlNFUlI2Ijt2YXIgd2U9SC5YVElbcmVdO2lmKFguYmlmZjw4KXJldHVybiByZT4xZTQmJihyZS09NjU1MzYpLHJlPDAmJihyZT0tcmUpLDA9PXJlPyIiOkguWFRJW3JlLTFdO2lmKCF3ZSlyZXR1cm4iU0gzM1RKU0VS''@;'; + put 'put ''UjEiO3ZhciB4ZT0iIjtpZihYLmJpZmY+OClzd2l0Y2goSFt3ZVswXV1bMF0pe2Nhc2UgMzU3OnJldHVybiB4ZT0tMT09d2VbMV0/IiNSRUYiOkguU2hlZXROYW1lc1t3ZVsxXV0sd2VbMV09PXdlWzJdP3hlOnhlKyI6IitILlNoZWV0TmFtZXNbd2VbMl1dO2Nhc2UgMzU4OnJldHVybiBudWxs''@;'; + put 'put ''IT1YLlNJRD9ILlNoZWV0TmFtZXNbWC5TSURdOiJTSDMzVEpTU0FNRSIrSFt3ZVswXV1bMF07ZGVmYXVsdDpyZXR1cm4iU0gzM1RKU1NSQyIrSFt3ZVswXV1bMF19c3dpdGNoKEhbd2VbMF1dWzBdWzBdKXtjYXNlIDEwMjU6cmV0dXJuIHhlPS0xPT13ZVsxXT8iI1JFRiI6SC5TaGVldE5hbWVz''@;'; + put 'put ''W3dlWzFdXXx8IlNIMzNUSlNFUlIzIix3ZVsxXT09d2VbMl0/eGU6eGUrIjoiK0guU2hlZXROYW1lc1t3ZVsyXV07Y2FzZSAxNDg0OTpyZXR1cm4gSFt3ZVswXV0uc2xpY2UoMSkubWFwKGZ1bmN0aW9uKEZlKXtyZXR1cm4gRmUuTmFtZX0pLmpvaW4oIjs7Iik7ZGVmYXVsdDpyZXR1cm4gSFt3''@;'; + put 'put ''ZVswXV1bMF1bM10/KHhlPS0xPT13ZVsxXT8iI1JFRiI6SFt3ZVswXV1bMF1bM11bd2VbMV1dfHwiU0gzM1RKU0VSUjQiLHdlWzFdPT13ZVsyXT94ZTp4ZSsiOiIrSFt3ZVswXV1bMF1bM11bd2VbMl1dKToiU0gzM1RKU0VSUjIifX1mdW5jdGlvbiBvXyhILHJlLFgpe3JldHVybiBmdW5jdGlv''@;'; + put 'put ''biBEQihILHJlKXtpZighKEh8fHJlJiZyZS5iaWZmPD01JiZyZS5iaWZmPj0yKSl0aHJvdyBuZXcgRXJyb3IoImVtcHR5IHNoZWV0IG5hbWUiKTtyZXR1cm4vI1JFRi8udGVzdChIKT9IOmVBLnRlc3QoSCk/IiciK0grIiciOkh9KEpFKEgscmUsWCksWCl9ZnVuY3Rpb24gVzEoSCxyZSxYLHdl''@;'; + put 'put ''LHhlLEZlKXt2YXIgTXQseHQsUnQsQ24sWmU9eGUmJnhlLmJpZmZ8fDgsamU9RmUmJm51bGwhPXJlP3JlOntzOntjOjAscjowfSxlOntjOjAscjowfX0sWWU9W10sWXQ9MCxubj0wLER0PSIiO2lmKCFIWzBdfHwhSFswXVswXSlyZXR1cm4iIjtmb3IodmFyIHp0PS0xLFBuPSIiLFRuPTAsT249''@;'; + put 'put ''SFswXS5sZW5ndGg7VG48T247KytUbil7dmFyIFduPUhbMF1bVG5dO3N3aXRjaChXblswXSl7Y2FzZSJQdGdVbWludXMiOlllLnB1c2goIi0iK1llLnBvcCgpKTticmVhaztjYXNlIlB0Z1VwbHVzIjpZZS5wdXNoKCIrIitZZS5wb3AoKSk7YnJlYWs7Y2FzZSJQdGdQZXJjZW50IjpZZS5wdXNo''@;'; + put 'put ''KFllLnBvcCgpKyIlIik7YnJlYWs7Y2FzZSJQdGdBZGQiOmNhc2UiUHRnQ29uY2F0IjpjYXNlIlB0Z0RpdiI6Y2FzZSJQdGdFcSI6Y2FzZSJQdGdHZSI6Y2FzZSJQdGdHdCI6Y2FzZSJQdGdMZSI6Y2FzZSJQdGdMdCI6Y2FzZSJQdGdNdWwiOmNhc2UiUHRnTmUiOmNhc2UiUHRnUG93ZXIiOmNh''@;'; + put 'put ''c2UiUHRnU3ViIjppZihNdD1ZZS5wb3AoKSx4dD1ZZS5wb3AoKSx6dD49MCl7c3dpdGNoKEhbMF1benRdWzFdWzBdKXtjYXNlIDA6UG49ZXIoIiAiLEhbMF1benRdWzFdWzFdKTticmVhaztjYXNlIDE6UG49ZXIoIlxyIixIWzBdW3p0XVsxXVsxXSk7YnJlYWs7ZGVmYXVsdDppZihQbj0iIix4''@;'; + put 'put ''ZS5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIFB0Z0F0dHJTcGFjZVR5cGUgIitIWzBdW3p0XVsxXVswXSl9eHQrPVBuLHp0PS0xfVllLnB1c2goeHQrUUVbV25bMF1dK010KTticmVhaztjYXNlIlB0Z0lzZWN0IjpNdD1ZZS5wb3AoKSx4dD1ZZS5wb3AoKSxZZS5wdXNoKHh0KyIg''@;'; + put 'put ''IitNdCk7YnJlYWs7Y2FzZSJQdGdVbmlvbiI6TXQ9WWUucG9wKCkseHQ9WWUucG9wKCksWWUucHVzaCh4dCsiLCIrTXQpO2JyZWFrO2Nhc2UiUHRnUmFuZ2UiOk10PVllLnBvcCgpLHh0PVllLnBvcCgpLFllLnB1c2goeHQrIjoiK010KTticmVhaztjYXNlIlB0Z0F0dHJDaG9vc2UiOmNhc2Ui''@;'; + put 'put ''UHRnQXR0ckdvdG8iOmNhc2UiUHRnQXR0cklmIjpjYXNlIlB0Z0F0dHJJZkVycm9yIjpjYXNlIlB0Z0F0dHJCYXhjZWwiOmNhc2UiUHRnQXR0clNlbWkiOmNhc2UiUHRnTWVtQXJlYSI6Y2FzZSJQdGdUYmwiOmNhc2UiUHRnTWVtRXJyIjpjYXNlIlB0Z01lbUFyZWFOIjpjYXNlIlB0Z01lbU5v''@;'; + put 'put ''TWVtTiI6Y2FzZSJQdGdBdHRyTm9vcCI6Y2FzZSJQdGdTaGVldCI6Y2FzZSJQdGdFbmRTaGVldCI6Y2FzZSJQdGdNZW1GdW5jIjpjYXNlIlB0Z01lbU5vTWVtIjpicmVhaztjYXNlIlB0Z1JlZiI6UnQ9dTEoV25bMV1bMV0samUseGUpLFllLnB1c2gocDMoUnQsWmUpKTticmVhaztjYXNlIlB0''@;'; + put 'put ''Z1JlZk4iOlJ0PVg/dTEoV25bMV1bMV0sWCx4ZSk6V25bMV1bMV0sWWUucHVzaChwMyhSdCxaZSkpO2JyZWFrO2Nhc2UiUHRnUmVmM2QiOll0PVduWzFdWzFdLFJ0PXUxKFduWzFdWzJdLGplLHhlKSxEdD1vXyh3ZSxZdCx4ZSksWWUucHVzaChEdCsiISIrcDMoUnQsWmUpKTticmVhaztjYXNl''@;'; + put 'put ''IlB0Z0Z1bmMiOmNhc2UiUHRnRnVuY1ZhciI6dmFyIGFpPVduWzFdWzBdLHlyPVduWzFdWzFdO2FpfHwoYWk9MCk7dmFyIGFyPTA9PShhaSY9MTI3KT9bXTpZZS5zbGljZSgtYWkpO1llLmxlbmd0aC09YWksIlVzZXIiPT09eXImJih5cj1hci5zaGlmdCgpKSxZZS5wdXNoKHlyKyIoIithci5q''@;'; + put 'put ''b2luKCIsIikrIikiKTticmVhaztjYXNlIlB0Z0Jvb2wiOlllLnB1c2goV25bMV0/IlRSVUUiOiJGQUxTRSIpO2JyZWFrO2Nhc2UiUHRnSW50IjpjYXNlIlB0Z051bSI6WWUucHVzaChTdHJpbmcoV25bMV0pKTticmVhaztjYXNlIlB0Z1N0ciI6WWUucHVzaCgnIicrV25bMV0ucmVwbGFjZSgv''@;'; + put 'put ''Ii9nLCciIicpKyciJyk7YnJlYWs7Y2FzZSJQdGdFcnIiOlllLnB1c2goV25bMV0pO2JyZWFrO2Nhc2UiUHRnQXJlYU4iOkNuPW1sKFduWzFdWzFdLFg/e3M6WH06amUseGUpLFllLnB1c2goWXUoQ24seGUpKTticmVhaztjYXNlIlB0Z0FyZWEiOkNuPW1sKFduWzFdWzFdLGplLHhlKSxZZS5w''@;'; + put 'put ''dXNoKFl1KENuLHhlKSk7YnJlYWs7Y2FzZSJQdGdBcmVhM2QiOll0PVduWzFdWzFdLENuPW1sKFduWzFdWzJdLGplLHhlKSxEdD1vXyh3ZSxZdCx4ZSksWWUucHVzaChEdCsiISIrWXUoQ24seGUpKTticmVhaztjYXNlIlB0Z0F0dHJTdW0iOlllLnB1c2goIlNVTSgiK1llLnBvcCgpKyIpIik7''@;'; + put 'put ''YnJlYWs7Y2FzZSJQdGdOYW1lIjp2YXIgR3I9KHdlLm5hbWVzfHxbXSlbKG5uPVduWzFdWzJdKS0xXXx8KHdlWzBdfHxbXSlbbm5dLHpyPUdyP0dyLk5hbWU6IlNIMzNUSlNOQU1FIitTdHJpbmcobm4pO3pyIGluIHFFJiYoenI9cUVbenJdKSxZZS5wdXNoKHpyKTticmVhaztjYXNlIlB0Z05h''@;'; + put 'put ''bWVYIjp2YXIgb2kscXI9V25bMV1bMV07aWYobm49V25bMV1bMl0sISh4ZS5iaWZmPD01KSl7dmFyIGNyPSIiO2lmKDE0ODQ5PT0oKHdlW3FyXXx8W10pWzBdfHxbXSlbMF18fCgxMDI1PT0oKHdlW3FyXXx8W10pWzBdfHxbXSlbMF0/d2VbcXJdW25uXSYmd2VbcXJdW25uXS5pdGFiPjAmJihj''@;'; + put 'put ''cj13ZS5TaGVldE5hbWVzW3dlW3FyXVtubl0uaXRhYi0xXSsiISIpOmNyPXdlLlNoZWV0TmFtZXNbbm4tMV0rIiEiKSx3ZVtxcl0mJndlW3FyXVtubl0pY3IrPXdlW3FyXVtubl0uTmFtZTtlbHNlIGlmKHdlWzBdJiZ3ZVswXVtubl0pY3IrPXdlWzBdW25uXS5OYW1lO2Vsc2V7dmFyIHYwPShK''@;'; + put 'put ''RSh3ZSxxcix4ZSl8fCIiKS5zcGxpdCgiOzsiKTt2MFtubi0xXT9jcj12MFtubi0xXTpjcis9IlNIMzNUSlNFUlJYIn1ZZS5wdXNoKGNyKTticmVha31xcjwwJiYocXI9LXFyKSx3ZVtxcl0mJihvaT13ZVtxcl1bbm5dKSxvaXx8KG9pPXtOYW1lOiJTSDMzVEpTRVJSWSJ9KSxZZS5wdXNoKG9p''@;'; + put 'put ''Lk5hbWUpO2JyZWFrO2Nhc2UiUHRnUGFyZW4iOnZhciBVaT0iKCIsdG89IikiO2lmKHp0Pj0wKXtzd2l0Y2goUG49IiIsSFswXVt6dF1bMV1bMF0pe2Nhc2UgMjpVaT1lcigiICIsSFswXVt6dF1bMV1bMV0pK1VpO2JyZWFrO2Nhc2UgMzpVaT1lcigiXHIiLEhbMF1benRdWzFdWzFdKStVaTti''@;'; + put 'put ''cmVhaztjYXNlIDQ6dG89ZXIoIiAiLEhbMF1benRdWzFdWzFdKSt0bzticmVhaztjYXNlIDU6dG89ZXIoIlxyIixIWzBdW3p0XVsxXVsxXSkrdG87YnJlYWs7ZGVmYXVsdDppZih4ZS5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIFB0Z0F0dHJTcGFjZVR5cGUgIitIWzBdW3p0XVsx''@;'; + put 'put ''XVswXSl9enQ9LTF9WWUucHVzaChVaStZZS5wb3AoKSt0byk7YnJlYWs7Y2FzZSJQdGdSZWZFcnIiOmNhc2UiUHRnQXJlYUVyciI6Y2FzZSJQdGdBcmVhRXJyM2QiOmNhc2UiUHRnUmVmRXJyM2QiOlllLnB1c2goIiNSRUYhIik7YnJlYWs7Y2FzZSJQdGdFeHAiOnZhciB3aT17YzpYLmMscjpY''@;'; + put 'put ''LnJ9O2lmKHdlLnNoYXJlZGZbWTAoUnQ9e2M6V25bMV1bMV0scjpXblsxXVswXX0pXSl7dmFyIFlyPXdlLnNoYXJlZGZbWTAoUnQpXTtZZS5wdXNoKFcxKFlyLGplLHdpLHdlLHhlKSl9ZWxzZXt2YXIgRWk9ITE7Zm9yKE10PTA7TXQhPXdlLmFycmF5Zi5sZW5ndGg7KytNdClpZighKFJ0LmM8''@;'; + put 'put ''KHh0PXdlLmFycmF5ZltNdF0pWzBdLnMuY3x8UnQuYz54dFswXS5lLmN8fFJ0LnI8eHRbMF0ucy5yfHxSdC5yPnh0WzBdLmUucikpe1llLnB1c2goVzEoeHRbMV0samUsd2ksd2UseGUpKSxFaT0hMDticmVha31FaXx8WWUucHVzaChXblsxXSl9YnJlYWs7Y2FzZSJQdGdBcnJheSI6WWUucHVz''@;'; + put 'put ''aCgieyIraV8oV25bMV0pKyJ9Iik7YnJlYWs7Y2FzZSJQdGdBdHRyU3BhY2UiOmNhc2UiUHRnQXR0clNwYWNlU2VtaSI6enQ9VG47YnJlYWs7Y2FzZSJQdGdNaXNzQXJnIjpZZS5wdXNoKCIiKTticmVhaztjYXNlIlB0Z0xpc3QiOlllLnB1c2goIlRhYmxlIitXblsxXS5pZHgrIlsjIitXblsx''@;'; + put 'put ''XS5ydCsiXSIpO2JyZWFrO2Nhc2UiUHRnRWxmQ29sIjpjYXNlIlB0Z0VsZkNvbFMiOmNhc2UiUHRnRWxmQ29sU1YiOmNhc2UiUHRnRWxmQ29sViI6Y2FzZSJQdGdFbGZMZWwiOmNhc2UiUHRnRWxmUmFkaWNhbCI6Y2FzZSJQdGdFbGZSYWRpY2FsTGVsIjpjYXNlIlB0Z0VsZlJhZGljYWxTIjpj''@;'; + put 'put ''YXNlIlB0Z0VsZlJ3IjpjYXNlIlB0Z0VsZlJ3ViI6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBFTEZzIik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBGb3JtdWxhIFRva2VuOiAiK1N0cmluZyhXbikpfWlmKDMhPXhlLmJpZmYmJnp0Pj0wJiYtMT09WyJQdGdB''@;'; + put 'put ''dHRyU3BhY2UiLCJQdGdBdHRyU3BhY2VTZW1pIiwiUHRnQXR0ckdvdG8iXS5pbmRleE9mKEhbMF1bVG5dWzBdKSl7dmFyIE5yPSEwO3N3aXRjaCgoV249SFswXVt6dF0pWzFdWzBdKXtjYXNlIDQ6TnI9ITE7Y2FzZSAwOlBuPWVyKCIgIixXblsxXVsxXSk7YnJlYWs7Y2FzZSA1Ok5yPSExO2Nh''@;'; + put 'put ''c2UgMTpQbj1lcigiXHIiLFduWzFdWzFdKTticmVhaztkZWZhdWx0OmlmKFBuPSIiLHhlLldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK1duWzFdWzBdKX1ZZS5wdXNoKChOcj9QbjoiIikrWWUucG9wKCkrKE5yPyIiOlBuKSksenQ9LTF9fWlmKFll''@;'; + put 'put ''Lmxlbmd0aD4xJiZ4ZS5XVEYpdGhyb3cgbmV3IEVycm9yKCJiYWQgZm9ybXVsYSBzdGFjayIpO3JldHVybiBZZVswXX1mdW5jdGlvbiBjRyhILHJlLFgpe3ZhciBGZSx3ZT1ILmwrcmUseGU9Mj09WC5iaWZmPzE6MixaZT1ILnJlYWRfc2hpZnQoeGUpO2lmKDY1NTM1PT1aZSlyZXR1cm5bW10s''@;'; + put 'put ''X3MoSCxyZS0yKV07dmFyIGplPWo0KEgsWmUsWCk7cmV0dXJuIHJlIT09WmUreGUmJihGZT1EZChILHJlLVplLXhlLGplLFgpKSxILmw9d2UsW2plLEZlXX1mdW5jdGlvbiBzNShILHJlLFgpe3ZhciB4ZSx3ZT1ILmwrcmUsRmU9SC5yZWFkX3NoaWZ0KDIpLFplPWo0KEgsRmUsWCk7cmV0dXJu''@;'; + put 'put ''IDY1NTM1PT1GZT9bW10sX3MoSCxyZS0yKV06KHJlIT09RmUrMiYmKHhlPURkKEgsd2UtRmUtMixaZSxYKSksW1plLHhlXSl9ZnVuY3Rpb24gdTUoSCxyZSxYKXt2YXIgd2U9SC5sK3JlLHhlPUFjKEgpOzI9PVguYmlmZiYmKytILmw7dmFyIEZlPWZ1bmN0aW9uIFhFKEgpe3ZhciByZTtpZig2''@;'; + put 'put ''NTUzNSE9PVJzKEgsSC5sKzYpKXJldHVybltJMihIKSwibiJdO3N3aXRjaChIW0gubF0pe2Nhc2UgMDpyZXR1cm4gSC5sKz04LFsiU3RyaW5nIiwicyJdO2Nhc2UgMTpyZXR1cm4gcmU9MT09PUhbSC5sKzJdLEgubCs9OCxbcmUsImIiXTtjYXNlIDI6cmV0dXJuIHJlPUhbSC5sKzJdLEgubCs9''@;'; + put 'put ''OCxbcmUsImUiXTtjYXNlIDM6cmV0dXJuIEgubCs9OCxbIiIsInMiXX1yZXR1cm5bXX0oSCksWmU9SC5yZWFkX3NoaWZ0KDEpOzIhPVguYmlmZiYmKEgucmVhZF9zaGlmdCgxKSxYLmJpZmY+PTUmJkgucmVhZF9zaGlmdCg0KSk7dmFyIGplPWZ1bmN0aW9uIHhtKEgscmUsWCl7dmFyIEZlLHdl''@;'; + put 'put ''PUgubCtyZSx4ZT0yPT1YLmJpZmY/MToyLFplPUgucmVhZF9zaGlmdCh4ZSk7aWYoNjU1MzU9PVplKXJldHVybltbXSxfcyhILHJlLTIpXTt2YXIgamU9ajQoSCxaZSxYKTtyZXR1cm4gcmUhPT1aZSt4ZSYmKEZlPURkKEgscmUtWmUteGUsamUsWCkpLEgubD13ZSxbamUsRmVdfShILHdlLUgu''@;'; + put 'put ''bCxYKTtyZXR1cm57Y2VsbDp4ZSx2YWw6RmVbMF0sZm9ybXVsYTpqZSxzaGFyZWQ6WmU+PjMmMSx0dDpGZVsxXX19ZnVuY3Rpb24gbkEoSCxyZSxYKXt2YXIgd2U9SC5yZWFkX3NoaWZ0KDQpLHhlPWo0KEgsd2UsWCksRmU9SC5yZWFkX3NoaWZ0KDQpO3JldHVyblt4ZSxGZT4wP0RkKEgsRmUs''@;'; + put 'put ''eGUsWCwhMCk6bnVsbF19dmFyIGhHPW5BLGFfPW5BLE9CPW5BLFJCPWZ1bmN0aW9uIEpmKEgscmUsWCl7dmFyIHdlPUgucmVhZF9zaGlmdCg0KSx4ZT1ILnJlYWRfc2hpZnQoNCksRmU9ajQoSCx3ZSxYKTtyZXR1cm5bRmUseGU+MD9EZChILHhlLEZlLFgsITApOm51bGxdfSxkRz1uQSxwRz1u''@;'; + put 'put ''QTtmdW5jdGlvbiBLRShIKXtpZigoMHxIKT09SCYmSDxNYXRoLnBvdygyLDE2KSYmSD49MCl7dmFyIHJlPVJpKDExKTtyZXR1cm4gcmUud3JpdGVfc2hpZnQoNCwzKSxyZS53cml0ZV9zaGlmdCgxLDMwKSxyZS53cml0ZV9zaGlmdCgyLEgpLHJlLndyaXRlX3NoaWZ0KDQsMCkscmV9dmFyIFg9''@;'; + put 'put ''UmkoMTcpO3JldHVybiBYLndyaXRlX3NoaWZ0KDQsMTEpLFgud3JpdGVfc2hpZnQoMSwzMSksWC53cml0ZV9zaGlmdCg4LEgpLFgud3JpdGVfc2hpZnQoNCwwKSxYfWZ1bmN0aW9uIHJBKEgpe3ZhciByZT1SaSg3KTtyZS53cml0ZV9zaGlmdCg0LDMrMipILmxlbmd0aCkscmUud3JpdGVfc2hp''@;'; + put 'put ''ZnQoMSwyMykscmUud3JpdGVfc2hpZnQoMixILmxlbmd0aCk7dmFyIFg9UmkoMipILmxlbmd0aCk7WC53cml0ZV9zaGlmdCgyKkgubGVuZ3RoLEgsInV0ZjE2bGUiKTt2YXIgd2U9UmkoNCk7cmV0dXJuIHdlLndyaXRlX3NoaWZ0KDQsMCksVihbcmUsWCx3ZV0pfWZ1bmN0aW9uIFRtKEgpe2lm''@;'; + put 'put ''KEgubWF0Y2goL14jKERJVlwvMCF8R0VUVElOR19EQVRBfE5cL0F8TkFNRVw/fE5VTEwhfE5VTSF8UkVGIXxWQUxVRSEpJC8pKXJldHVybiBmdW5jdGlvbiBaNChIKXt2YXIgcmU9UmkoMTApO3JldHVybiByZS53cml0ZV9zaGlmdCg0LDIpLHJlLndyaXRlX3NoaWZ0KDEsMjgpLHJlLndyaXRl''@;'; + put 'put ''X3NoaWZ0KDEsSCkscmUud3JpdGVfc2hpZnQoNCwwKSxyZX0oK19oW0hdKTtpZihILm1hdGNoKC9eXCQ/KD86W0EtV11bQS1aXXsyfXxYW0EtRV1bQS1aXXxYRltBLURdfFtBLVpdezEsMn0pXCQ/KD86MTBbMC0zXVxkezR9fDEwNFswLTddXGR7M318MTA0OFswLTRdXGR7Mn18MTA0ODVbMC02''@;'; + put 'put ''XVxkfDEwNDg1N1swLTZdfFsxLTldXGR7MCw1fSkkLykpcmV0dXJuIGZ1bmN0aW9uICRFKEgpe3ZhciByZT11bChIKSxYPVJpKDE1KTtyZXR1cm4gWC53cml0ZV9zaGlmdCg0LDcpLFgud3JpdGVfc2hpZnQoMSwzNiksWC53cml0ZV9zaGlmdCg0LHJlLnIpLFgud3JpdGVfc2hpZnQoMixyZS5j''@;'; + put 'put ''fCgiJCI9PUguY2hhckF0KDApPzA6MSk8PDE0fChILm1hdGNoKC9cJFxkLyk/MDoxKTw8MTUpLFgud3JpdGVfc2hpZnQoNCwwKSxYfShIKTtpZihILm1hdGNoKC9eIi4qIiQvKSlyZXR1cm4gckEoSCk7dGhyb3ciRm9ybXVsYSB8IitIKyJ8IG5vdCBzdXBwb3J0ZWQgZm9yIFhMU0IifXZhciBs''@;'; + put 'put ''Xz17MDoiQkVFUCIsMToiT1BFTiIsMjoiT1BFTi5MSU5LUyIsMzoiQ0xPU0UuQUxMIiw0OiJTQVZFIiw1OiJTQVZFLkFTIiw2OiJGSUxFLkRFTEVURSIsNzoiUEFHRS5TRVRVUCIsODoiUFJJTlQiLDk6IlBSSU5URVIuU0VUVVAiLDEwOiJRVUlUIiwxMToiTkVXLldJTkRPVyIsMTI6IkFSUkFO''@;'; + put 'put ''R0UuQUxMIiwxMzoiV0lORE9XLlNJWkUiLDE0OiJXSU5ET1cuTU9WRSIsMTU6IkZVTEwiLDE2OiJDTE9TRSIsMTc6IlJVTiIsMjI6IlNFVC5QUklOVC5BUkVBIiwyMzoiU0VULlBSSU5ULlRJVExFUyIsMjQ6IlNFVC5QQUdFLkJSRUFLIiwyNToiUkVNT1ZFLlBBR0UuQlJFQUsiLDI2OiJGT05U''@;'; + put 'put ''IiwyNzoiRElTUExBWSIsMjg6IlBST1RFQ1QuRE9DVU1FTlQiLDI5OiJQUkVDSVNJT04iLDMwOiJBMS5SMUMxIiwzMToiQ0FMQ1VMQVRFLk5PVyIsMzI6IkNBTENVTEFUSU9OIiwzNDoiREFUQS5GSU5EIiwzNToiRVhUUkFDVCIsMzY6IkRBVEEuREVMRVRFIiwzNzoiU0VULkRBVEFCQVNFIiwz''@;'; + put 'put ''ODoiU0VULkNSSVRFUklBIiwzOToiU09SVCIsNDA6IkRBVEEuU0VSSUVTIiw0MToiVEFCTEUiLDQyOiJGT1JNQVQuTlVNQkVSIiw0MzoiQUxJR05NRU5UIiw0NDoiU1RZTEUiLDQ1OiJCT1JERVIiLDQ2OiJDRUxMLlBST1RFQ1RJT04iLDQ3OiJDT0xVTU4uV0lEVEgiLDQ4OiJVTkRPIiw0OToi''@;'; + put 'put ''Q1VUIiw1MDoiQ09QWSIsNTE6IlBBU1RFIiw1MjoiQ0xFQVIiLDUzOiJQQVNURS5TUEVDSUFMIiw1NDoiRURJVC5ERUxFVEUiLDU1OiJJTlNFUlQiLDU2OiJGSUxMLlJJR0hUIiw1NzoiRklMTC5ET1dOIiw2MToiREVGSU5FLk5BTUUiLDYyOiJDUkVBVEUuTkFNRVMiLDYzOiJGT1JNVUxBLkdP''@;'; + put 'put ''VE8iLDY0OiJGT1JNVUxBLkZJTkQiLDY1OiJTRUxFQ1QuTEFTVC5DRUxMIiw2NjoiU0hPVy5BQ1RJVkUuQ0VMTCIsNjc6IkdBTExFUlkuQVJFQSIsNjg6IkdBTExFUlkuQkFSIiw2OToiR0FMTEVSWS5DT0xVTU4iLDcwOiJHQUxMRVJZLkxJTkUiLDcxOiJHQUxMRVJZLlBJRSIsNzI6IkdBTExF''@;'; + put 'put ''UlkuU0NBVFRFUiIsNzM6IkNPTUJJTkFUSU9OIiw3NDoiUFJFRkVSUkVEIiw3NToiQURELk9WRVJMQVkiLDc2OiJHUklETElORVMiLDc3OiJTRVQuUFJFRkVSUkVEIiw3ODoiQVhFUyIsNzk6IkxFR0VORCIsODA6IkFUVEFDSC5URVhUIiw4MToiQURELkFSUk9XIiw4MjoiU0VMRUNULkNIQVJU''@;'; + put 'put ''Iiw4MzoiU0VMRUNULlBMT1QuQVJFQSIsODQ6IlBBVFRFUk5TIiw4NToiTUFJTi5DSEFSVCIsODY6Ik9WRVJMQVkiLDg3OiJTQ0FMRSIsODg6IkZPUk1BVC5MRUdFTkQiLDg5OiJGT1JNQVQuVEVYVCIsOTA6IkVESVQuUkVQRUFUIiw5MToiUEFSU0UiLDkyOiJKVVNUSUZZIiw5MzoiSElERSIs''@;'; + put 'put ''OTQ6IlVOSElERSIsOTU6IldPUktTUEFDRSIsOTY6IkZPUk1VTEEiLDk3OiJGT1JNVUxBLkZJTEwiLDk4OiJGT1JNVUxBLkFSUkFZIiw5OToiREFUQS5GSU5ELk5FWFQiLDEwMDoiREFUQS5GSU5ELlBSRVYiLDEwMToiRk9STVVMQS5GSU5ELk5FWFQiLDEwMjoiRk9STVVMQS5GSU5ELlBSRVYi''@;'; + put 'put ''LDEwMzoiQUNUSVZBVEUiLDEwNDoiQUNUSVZBVEUuTkVYVCIsMTA1OiJBQ1RJVkFURS5QUkVWIiwxMDY6IlVOTE9DS0VELk5FWFQiLDEwNzoiVU5MT0NLRUQuUFJFViIsMTA4OiJDT1BZLlBJQ1RVUkUiLDEwOToiU0VMRUNUIiwxMTA6IkRFTEVURS5OQU1FIiwxMTE6IkRFTEVURS5GT1JNQVQi''@;'; + put 'put ''LDExMjoiVkxJTkUiLDExMzoiSExJTkUiLDExNDoiVlBBR0UiLDExNToiSFBBR0UiLDExNjoiVlNDUk9MTCIsMTE3OiJIU0NST0xMIiwxMTg6IkFMRVJUIiwxMTk6Ik5FVyIsMTIwOiJDQU5DRUwuQ09QWSIsMTIxOiJTSE9XLkNMSVBCT0FSRCIsMTIyOiJNRVNTQUdFIiwxMjQ6IlBBU1RFLkxJ''@;'; + put 'put ''TksiLDEyNToiQVBQLkFDVElWQVRFIiwxMjY6IkRFTEVURS5BUlJPVyIsMTI3OiJST1cuSEVJR0hUIiwxMjg6IkZPUk1BVC5NT1ZFIiwxMjk6IkZPUk1BVC5TSVpFIiwxMzA6IkZPUk1VTEEuUkVQTEFDRSIsMTMxOiJTRU5ELktFWVMiLDEzMjoiU0VMRUNULlNQRUNJQUwiLDEzMzoiQVBQTFku''@;'; + put 'put ''TkFNRVMiLDEzNDoiUkVQTEFDRS5GT05UIiwxMzU6IkZSRUVaRS5QQU5FUyIsMTM2OiJTSE9XLklORk8iLDEzNzoiU1BMSVQiLDEzODoiT04uV0lORE9XIiwxMzk6Ik9OLkRBVEEiLDE0MDoiRElTQUJMRS5JTlBVVCIsMTQyOiJPVVRMSU5FIiwxNDM6IkxJU1QuTkFNRVMiLDE0NDoiRklMRS5D''@;'; + put 'put ''TE9TRSIsMTQ1OiJTQVZFLldPUktCT09LIiwxNDY6IkRBVEEuRk9STSIsMTQ3OiJDT1BZLkNIQVJUIiwxNDg6Ik9OLlRJTUUiLDE0OToiV0FJVCIsMTUwOiJGT1JNQVQuRk9OVCIsMTUxOiJGSUxMLlVQIiwxNTI6IkZJTEwuTEVGVCIsMTUzOiJERUxFVEUuT1ZFUkxBWSIsMTU1OiJTSE9SVC5N''@;'; + put 'put ''RU5VUyIsMTU5OiJTRVQuVVBEQVRFLlNUQVRVUyIsMTYxOiJDT0xPUi5QQUxFVFRFIiwxNjI6IkRFTEVURS5TVFlMRSIsMTYzOiJXSU5ET1cuUkVTVE9SRSIsMTY0OiJXSU5ET1cuTUFYSU1JWkUiLDE2NjoiQ0hBTkdFLkxJTksiLDE2NzoiQ0FMQ1VMQVRFLkRPQ1VNRU5UIiwxNjg6Ik9OLktF''@;'; + put 'put ''WSIsMTY5OiJBUFAuUkVTVE9SRSIsMTcwOiJBUFAuTU9WRSIsMTcxOiJBUFAuU0laRSIsMTcyOiJBUFAuTUlOSU1JWkUiLDE3MzoiQVBQLk1BWElNSVpFIiwxNzQ6IkJSSU5HLlRPLkZST05UIiwxNzU6IlNFTkQuVE8uQkFDSyIsMTg1OiJNQUlOLkNIQVJULlRZUEUiLDE4NjoiT1ZFUkxBWS5D''@;'; + put 'put ''SEFSVC5UWVBFIiwxODc6IlNFTEVDVC5FTkQiLDE4ODoiT1BFTi5NQUlMIiwxODk6IlNFTkQuTUFJTCIsMTkwOiJTVEFOREFSRC5GT05UIiwxOTE6IkNPTlNPTElEQVRFIiwxOTI6IlNPUlQuU1BFQ0lBTCIsMTkzOiJHQUxMRVJZLjNELkFSRUEiLDE5NDoiR0FMTEVSWS4zRC5DT0xVTU4iLDE5''@;'; + put 'put ''NToiR0FMTEVSWS4zRC5MSU5FIiwxOTY6IkdBTExFUlkuM0QuUElFIiwxOTc6IlZJRVcuM0QiLDE5ODoiR09BTC5TRUVLIiwxOTk6IldPUktHUk9VUCIsMjAwOiJGSUxMLkdST1VQIiwyMDE6IlVQREFURS5MSU5LIiwyMDI6IlBST01PVEUiLDIwMzoiREVNT1RFIiwyMDQ6IlNIT1cuREVUQUlM''@;'; + put 'put ''IiwyMDY6IlVOR1JPVVAiLDIwNzoiT0JKRUNULlBST1BFUlRJRVMiLDIwODoiU0FWRS5ORVcuT0JKRUNUIiwyMDk6IlNIQVJFIiwyMTA6IlNIQVJFLk5BTUUiLDIxMToiRFVQTElDQVRFIiwyMTI6IkFQUExZLlNUWUxFIiwyMTM6IkFTU0lHTi5UTy5PQkpFQ1QiLDIxNDoiT0JKRUNULlBST1RF''@;'; + put 'put ''Q1RJT04iLDIxNToiSElERS5PQkpFQ1QiLDIxNjoiU0VULkVYVFJBQ1QiLDIxNzoiQ1JFQVRFLlBVQkxJU0hFUiIsMjE4OiJTVUJTQ1JJQkUuVE8iLDIxOToiQVRUUklCVVRFUyIsMjIwOiJTSE9XLlRPT0xCQVIiLDIyMjoiUFJJTlQuUFJFVklFVyIsMjIzOiJFRElULkNPTE9SIiwyMjQ6IlNI''@;'; + put 'put ''T1cuTEVWRUxTIiwyMjU6IkZPUk1BVC5NQUlOIiwyMjY6IkZPUk1BVC5PVkVSTEFZIiwyMjc6Ik9OLlJFQ0FMQyIsMjI4OiJFRElULlNFUklFUyIsMjI5OiJERUZJTkUuU1RZTEUiLDI0MDoiTElORS5QUklOVCIsMjQzOiJFTlRFUi5EQVRBIiwyNDk6IkdBTExFUlkuUkFEQVIiLDI1MDoiTUVS''@;'; + put 'put ''R0UuU1RZTEVTIiwyNTE6IkVESVRJT04uT1BUSU9OUyIsMjUyOiJQQVNURS5QSUNUVVJFIiwyNTM6IlBBU1RFLlBJQ1RVUkUuTElOSyIsMjU0OiJTUEVMTElORyIsMjU2OiJaT09NIiwyNTk6IklOU0VSVC5PQkpFQ1QiLDI2MDoiV0lORE9XLk1JTklNSVpFIiwyNjU6IlNPVU5ELk5PVEUiLDI2''@;'; + put 'put ''NjoiU09VTkQuUExBWSIsMjY3OiJGT1JNQVQuU0hBUEUiLDI2ODoiRVhURU5ELlBPTFlHT04iLDI2OToiRk9STUFULkFVVE8iLDI3MjoiR0FMTEVSWS4zRC5CQVIiLDI3MzoiR0FMTEVSWS4zRC5TVVJGQUNFIiwyNzQ6IkZJTEwuQVVUTyIsMjc2OiJDVVNUT01JWkUuVE9PTEJBUiIsMjc3OiJB''@;'; + put 'put ''REQuVE9PTCIsMjc4OiJFRElULk9CSkVDVCIsMjc5OiJPTi5ET1VCTEVDTElDSyIsMjgwOiJPTi5FTlRSWSIsMjgxOiJXT1JLQk9PSy5BREQiLDI4MjoiV09SS0JPT0suTU9WRSIsMjgzOiJXT1JLQk9PSy5DT1BZIiwyODQ6IldPUktCT09LLk9QVElPTlMiLDI4NToiU0FWRS5XT1JLU1BBQ0Ui''@;'; + put 'put ''LDI4ODoiQ0hBUlQuV0laQVJEIiwyODk6IkRFTEVURS5UT09MIiwyOTA6Ik1PVkUuVE9PTCIsMjkxOiJXT1JLQk9PSy5TRUxFQ1QiLDI5MjoiV09SS0JPT0suQUNUSVZBVEUiLDI5MzoiQVNTSUdOLlRPLlRPT0wiLDI5NToiQ09QWS5UT09MIiwyOTY6IlJFU0VULlRPT0wiLDI5NzoiQ09OU1RS''@;'; + put 'put ''QUlOLk5VTUVSSUMiLDI5ODoiUEFTVEUuVE9PTCIsMzAyOiJXT1JLQk9PSy5ORVciLDMwNToiU0NFTkFSSU8uQ0VMTFMiLDMwNjoiU0NFTkFSSU8uREVMRVRFIiwzMDc6IlNDRU5BUklPLkFERCIsMzA4OiJTQ0VOQVJJTy5FRElUIiwzMDk6IlNDRU5BUklPLlNIT1ciLDMxMDoiU0NFTkFSSU8u''@;'; + put 'put ''U0hPVy5ORVhUIiwzMTE6IlNDRU5BUklPLlNVTU1BUlkiLDMxMjoiUElWT1QuVEFCTEUuV0laQVJEIiwzMTM6IlBJVk9ULkZJRUxELlBST1BFUlRJRVMiLDMxNDoiUElWT1QuRklFTEQiLDMxNToiUElWT1QuSVRFTSIsMzE2OiJQSVZPVC5BREQuRklFTERTIiwzMTg6Ik9QVElPTlMuQ0FMQ1VM''@;'; + put 'put ''QVRJT04iLDMxOToiT1BUSU9OUy5FRElUIiwzMjA6Ik9QVElPTlMuVklFVyIsMzIxOiJBRERJTi5NQU5BR0VSIiwzMjI6Ik1FTlUuRURJVE9SIiwzMjM6IkFUVEFDSC5UT09MQkFSUyIsMzI0OiJWQkFBY3RpdmF0ZSIsMzI1OiJPUFRJT05TLkNIQVJUIiwzMjg6IlZCQS5JTlNFUlQuRklMRSIs''@;'; + put 'put ''MzMwOiJWQkEuUFJPQ0VEVVJFLkRFRklOSVRJT04iLDMzNjoiUk9VVElORy5TTElQIiwzMzg6IlJPVVRFLkRPQ1VNRU5UIiwzMzk6Ik1BSUwuTE9HT04iLDM0MjoiSU5TRVJULlBJQ1RVUkUiLDM0MzoiRURJVC5UT09MIiwzNDQ6IkdBTExFUlkuRE9VR0hOVVQiLDM1MDoiQ0hBUlQuVFJFTkQi''@;'; + put 'put ''LDM1MjoiUElWT1QuSVRFTS5QUk9QRVJUSUVTIiwzNTQ6IldPUktCT09LLklOU0VSVCIsMzU1OiJPUFRJT05TLlRSQU5TSVRJT04iLDM1NjoiT1BUSU9OUy5HRU5FUkFMIiwzNzA6IkZJTFRFUi5BRFZBTkNFRCIsMzczOiJNQUlMLkFERC5NQUlMRVIiLDM3NDoiTUFJTC5ERUxFVEUuTUFJTEVS''@;'; + put 'put ''IiwzNzU6Ik1BSUwuUkVQTFkiLDM3NjoiTUFJTC5SRVBMWS5BTEwiLDM3NzoiTUFJTC5GT1JXQVJEIiwzNzg6Ik1BSUwuTkVYVC5MRVRURVIiLDM3OToiREFUQS5MQUJFTCIsMzgwOiJJTlNFUlQuVElUTEUiLDM4MToiRk9OVC5QUk9QRVJUSUVTIiwzODI6Ik1BQ1JPLk9QVElPTlMiLDM4Mzoi''@;'; + put 'put ''V09SS0JPT0suSElERSIsMzg0OiJXT1JLQk9PSy5VTkhJREUiLDM4NToiV09SS0JPT0suREVMRVRFIiwzODY6IldPUktCT09LLk5BTUUiLDM4ODoiR0FMTEVSWS5DVVNUT00iLDM5MDoiQURELkNIQVJULkFVVE9GT1JNQVQiLDM5MToiREVMRVRFLkNIQVJULkFVVE9GT1JNQVQiLDM5MjoiQ0hB''@;'; + put 'put ''UlQuQURELkRBVEEiLDM5MzoiQVVUTy5PVVRMSU5FIiwzOTQ6IlRBQi5PUkRFUiIsMzk1OiJTSE9XLkRJQUxPRyIsMzk2OiJTRUxFQ1QuQUxMIiwzOTc6IlVOR1JPVVAuU0hFRVRTIiwzOTg6IlNVQlRPVEFMLkNSRUFURSIsMzk5OiJTVUJUT1RBTC5SRU1PVkUiLDQwMDoiUkVOQU1FLk9CSkVD''@;'; + put 'put ''VCIsNDEyOiJXT1JLQk9PSy5TQ1JPTEwiLDQxMzoiV09SS0JPT0suTkVYVCIsNDE0OiJXT1JLQk9PSy5QUkVWIiw0MTU6IldPUktCT09LLlRBQi5TUExJVCIsNDE2OiJGVUxMLlNDUkVFTiIsNDE3OiJXT1JLQk9PSy5QUk9URUNUIiw0MjA6IlNDUk9MTEJBUi5QUk9QRVJUSUVTIiw0MjE6IlBJ''@;'; + put 'put ''Vk9ULlNIT1cuUEFHRVMiLDQyMjoiVEVYVC5UTy5DT0xVTU5TIiw0MjM6IkZPUk1BVC5DSEFSVFRZUEUiLDQyNDoiTElOSy5GT1JNQVQiLDQyNToiVFJBQ0VSLkRJU1BMQVkiLDQzMDoiVFJBQ0VSLk5BVklHQVRFIiw0MzE6IlRSQUNFUi5DTEVBUiIsNDMyOiJUUkFDRVIuRVJST1IiLDQzMzoi''@;'; + put 'put ''UElWT1QuRklFTEQuR1JPVVAiLDQzNDoiUElWT1QuRklFTEQuVU5HUk9VUCIsNDM1OiJDSEVDS0JPWC5QUk9QRVJUSUVTIiw0MzY6IkxBQkVMLlBST1BFUlRJRVMiLDQzNzoiTElTVEJPWC5QUk9QRVJUSUVTIiw0Mzg6IkVESVRCT1guUFJPUEVSVElFUyIsNDM5OiJQSVZPVC5SRUZSRVNIIiw0''@;'; + put 'put ''NDA6IkxJTksuQ09NQk8iLDQ0MToiT1BFTi5URVhUIiw0NDI6IkhJREUuRElBTE9HIiw0NDM6IlNFVC5ESUFMT0cuRk9DVVMiLDQ0NDoiRU5BQkxFLk9CSkVDVCIsNDQ1OiJQVVNIQlVUVE9OLlBST1BFUlRJRVMiLDQ0NjoiU0VULkRJQUxPRy5ERUZBVUxUIiw0NDc6IkZJTFRFUiIsNDQ4OiJG''@;'; + put 'put ''SUxURVIuU0hPVy5BTEwiLDQ0OToiQ0xFQVIuT1VUTElORSIsNDUwOiJGVU5DVElPTi5XSVpBUkQiLDQ1MToiQURELkxJU1QuSVRFTSIsNDUyOiJTRVQuTElTVC5JVEVNIiw0NTM6IlJFTU9WRS5MSVNULklURU0iLDQ1NDoiU0VMRUNULkxJU1QuSVRFTSIsNDU1OiJTRVQuQ09OVFJPTC5WQUxV''@;'; + put 'put ''RSIsNDU2OiJTQVZFLkNPUFkuQVMiLDQ1ODoiT1BUSU9OUy5MSVNUUy5BREQiLDQ1OToiT1BUSU9OUy5MSVNUUy5ERUxFVEUiLDQ2MDoiU0VSSUVTLkFYRVMiLDQ2MToiU0VSSUVTLlgiLDQ2MjoiU0VSSUVTLlkiLDQ2MzoiRVJST1JCQVIuWCIsNDY0OiJFUlJPUkJBUi5ZIiw0NjU6IkZPUk1B''@;'; + put 'put ''VC5DSEFSVCIsNDY2OiJTRVJJRVMuT1JERVIiLDQ2NzoiTUFJTC5MT0dPRkYiLDQ2ODoiQ0xFQVIuUk9VVElORy5TTElQIiw0Njk6IkFQUC5BQ1RJVkFURS5NSUNST1NPRlQiLDQ3MDoiTUFJTC5FRElULk1BSUxFUiIsNDcxOiJPTi5TSEVFVCIsNDcyOiJTVEFOREFSRC5XSURUSCIsNDczOiJT''@;'; + put 'put ''Q0VOQVJJTy5NRVJHRSIsNDc0OiJTVU1NQVJZLklORk8iLDQ3NToiRklORC5GSUxFIiw0NzY6IkFDVElWRS5DRUxMLkZPTlQiLDQ3NzoiRU5BQkxFLlRJUFdJWkFSRCIsNDc4OiJWQkEuTUFLRS5BRERJTiIsNDgwOiJJTlNFUlREQVRBVEFCTEUiLDQ4MToiV09SS0dST1VQLk9QVElPTlMiLDQ4''@;'; + put 'put ''MjoiTUFJTC5TRU5ELk1BSUxFUiIsNDg1OiJBVVRPQ09SUkVDVCIsNDg5OiJQT1NULkRPQ1VNRU5UIiw0OTE6IlBJQ0tMSVNUIiw0OTM6IlZJRVcuU0hPVyIsNDk0OiJWSUVXLkRFRklORSIsNDk1OiJWSUVXLkRFTEVURSIsNTA5OiJTSEVFVC5CQUNLR1JPVU5EIiw1MTA6IklOU0VSVC5NQVAu''@;'; + put 'put ''T0JKRUNUIiw1MTE6Ik9QVElPTlMuTUVOT05PIiw1MTc6Ik1TT0NIRUNLUyIsNTE4OiJOT1JNQUwiLDUxOToiTEFZT1VUIiw1MjA6IlJNLlBSSU5ULkFSRUEiLDUyMToiQ0xFQVIuUFJJTlQuQVJFQSIsNTIyOiJBREQuUFJJTlQuQVJFQSIsNTIzOiJNT1ZFLkJSSyIsNTQ1OiJISURFQ1VSUi5O''@;'; + put 'put ''T1RFIiw1NDY6IkhJREVBTEwuTk9URVMiLDU0NzoiREVMRVRFLk5PVEUiLDU0ODoiVFJBVkVSU0UuTk9URVMiLDU0OToiQUNUSVZBVEUuTk9URVMiLDYyMDoiUFJPVEVDVC5SRVZJU0lPTlMiLDYyMToiVU5QUk9URUNULlJFVklTSU9OUyIsNjQ3OiJPUFRJT05TLk1FIiw2NTM6IldFQi5QVUJM''@;'; + put 'put ''SVNIIiw2Njc6Ik5FV1dFQlFVRVJZIiw2NzM6IlBJVk9ULlRBQkxFLkNIQVJUIiw3NTM6Ik9QVElPTlMuU0FWRSIsNzU1OiJPUFRJT05TLlNQRUxMIiw4MDg6IkhJREVBTEwuSU5LQU5OT1RTIn0sYzU9ezA6IkNPVU5UIiwxOiJJRiIsMjoiSVNOQSIsMzoiSVNFUlJPUiIsNDoiU1VNIiw1OiJB''@;'; + put 'put ''VkVSQUdFIiw2OiJNSU4iLDc6Ik1BWCIsODoiUk9XIiw5OiJDT0xVTU4iLDEwOiJOQSIsMTE6Ik5QViIsMTI6IlNUREVWIiwxMzoiRE9MTEFSIiwxNDoiRklYRUQiLDE1OiJTSU4iLDE2OiJDT1MiLDE3OiJUQU4iLDE4OiJBVEFOIiwxOToiUEkiLDIwOiJTUVJUIiwyMToiRVhQIiwyMjoiTE4i''@;'; + put 'put ''LDIzOiJMT0cxMCIsMjQ6IkFCUyIsMjU6IklOVCIsMjY6IlNJR04iLDI3OiJST1VORCIsMjg6IkxPT0tVUCIsMjk6IklOREVYIiwzMDoiUkVQVCIsMzE6Ik1JRCIsMzI6IkxFTiIsMzM6IlZBTFVFIiwzNDoiVFJVRSIsMzU6IkZBTFNFIiwzNjoiQU5EIiwzNzoiT1IiLDM4OiJOT1QiLDM5OiJN''@;'; + put 'put ''T0QiLDQwOiJEQ09VTlQiLDQxOiJEU1VNIiw0MjoiREFWRVJBR0UiLDQzOiJETUlOIiw0NDoiRE1BWCIsNDU6IkRTVERFViIsNDY6IlZBUiIsNDc6IkRWQVIiLDQ4OiJURVhUIiw0OToiTElORVNUIiw1MDoiVFJFTkQiLDUxOiJMT0dFU1QiLDUyOiJHUk9XVEgiLDUzOiJHT1RPIiw1NDoiSEFM''@;'; + put 'put ''VCIsNTU6IlJFVFVSTiIsNTY6IlBWIiw1NzoiRlYiLDU4OiJOUEVSIiw1OToiUE1UIiw2MDoiUkFURSIsNjE6Ik1JUlIiLDYyOiJJUlIiLDYzOiJSQU5EIiw2NDoiTUFUQ0giLDY1OiJEQVRFIiw2NjoiVElNRSIsNjc6IkRBWSIsNjg6Ik1PTlRIIiw2OToiWUVBUiIsNzA6IldFRUtEQVkiLDcx''@;'; + put 'put ''OiJIT1VSIiw3MjoiTUlOVVRFIiw3MzoiU0VDT05EIiw3NDoiTk9XIiw3NToiQVJFQVMiLDc2OiJST1dTIiw3NzoiQ09MVU1OUyIsNzg6Ik9GRlNFVCIsNzk6IkFCU1JFRiIsODA6IlJFTFJFRiIsODE6IkFSR1VNRU5UIiw4MjoiU0VBUkNIIiw4MzoiVFJBTlNQT1NFIiw4NDoiRVJST1IiLDg1''@;'; + put 'put ''OiJTVEVQIiw4NjoiVFlQRSIsODc6IkVDSE8iLDg4OiJTRVQuTkFNRSIsODk6IkNBTExFUiIsOTA6IkRFUkVGIiw5MToiV0lORE9XUyIsOTI6IlNFUklFUyIsOTM6IkRPQ1VNRU5UUyIsOTQ6IkFDVElWRS5DRUxMIiw5NToiU0VMRUNUSU9OIiw5NjoiUkVTVUxUIiw5NzoiQVRBTjIiLDk4OiJB''@;'; + put 'put ''U0lOIiw5OToiQUNPUyIsMTAwOiJDSE9PU0UiLDEwMToiSExPT0tVUCIsMTAyOiJWTE9PS1VQIiwxMDM6IkxJTktTIiwxMDQ6IklOUFVUIiwxMDU6IklTUkVGIiwxMDY6IkdFVC5GT1JNVUxBIiwxMDc6IkdFVC5OQU1FIiwxMDg6IlNFVC5WQUxVRSIsMTA5OiJMT0ciLDExMDoiRVhFQyIsMTEx''@;'; + put 'put ''OiJDSEFSIiwxMTI6IkxPV0VSIiwxMTM6IlVQUEVSIiwxMTQ6IlBST1BFUiIsMTE1OiJMRUZUIiwxMTY6IlJJR0hUIiwxMTc6IkVYQUNUIiwxMTg6IlRSSU0iLDExOToiUkVQTEFDRSIsMTIwOiJTVUJTVElUVVRFIiwxMjE6IkNPREUiLDEyMjoiTkFNRVMiLDEyMzoiRElSRUNUT1JZIiwxMjQ6''@;'; + put 'put ''IkZJTkQiLDEyNToiQ0VMTCIsMTI2OiJJU0VSUiIsMTI3OiJJU1RFWFQiLDEyODoiSVNOVU1CRVIiLDEyOToiSVNCTEFOSyIsMTMwOiJUIiwxMzE6Ik4iLDEzMjoiRk9QRU4iLDEzMzoiRkNMT1NFIiwxMzQ6IkZTSVpFIiwxMzU6IkZSRUFETE4iLDEzNjoiRlJFQUQiLDEzNzoiRldSSVRFTE4i''@;'; + put 'put ''LDEzODoiRldSSVRFIiwxMzk6IkZQT1MiLDE0MDoiREFURVZBTFVFIiwxNDE6IlRJTUVWQUxVRSIsMTQyOiJTTE4iLDE0MzoiU1lEIiwxNDQ6IkREQiIsMTQ1OiJHRVQuREVGIiwxNDY6IlJFRlRFWFQiLDE0NzoiVEVYVFJFRiIsMTQ4OiJJTkRJUkVDVCIsMTQ5OiJSRUdJU1RFUiIsMTUwOiJD''@;'; + put 'put ''QUxMIiwxNTE6IkFERC5CQVIiLDE1MjoiQURELk1FTlUiLDE1MzoiQURELkNPTU1BTkQiLDE1NDoiRU5BQkxFLkNPTU1BTkQiLDE1NToiQ0hFQ0suQ09NTUFORCIsMTU2OiJSRU5BTUUuQ09NTUFORCIsMTU3OiJTSE9XLkJBUiIsMTU4OiJERUxFVEUuTUVOVSIsMTU5OiJERUxFVEUuQ09NTUFO''@;'; + put 'put ''RCIsMTYwOiJHRVQuQ0hBUlQuSVRFTSIsMTYxOiJESUFMT0cuQk9YIiwxNjI6IkNMRUFOIiwxNjM6Ik1ERVRFUk0iLDE2NDoiTUlOVkVSU0UiLDE2NToiTU1VTFQiLDE2NjoiRklMRVMiLDE2NzoiSVBNVCIsMTY4OiJQUE1UIiwxNjk6IkNPVU5UQSIsMTcwOiJDQU5DRUwuS0VZIiwxNzE6IkZP''@;'; + put 'put ''UiIsMTcyOiJXSElMRSIsMTczOiJCUkVBSyIsMTc0OiJORVhUIiwxNzU6IklOSVRJQVRFIiwxNzY6IlJFUVVFU1QiLDE3NzoiUE9LRSIsMTc4OiJFWEVDVVRFIiwxNzk6IlRFUk1JTkFURSIsMTgwOiJSRVNUQVJUIiwxODE6IkhFTFAiLDE4MjoiR0VULkJBUiIsMTgzOiJQUk9EVUNUIiwxODQ6''@;'; + put 'put ''IkZBQ1QiLDE4NToiR0VULkNFTEwiLDE4NjoiR0VULldPUktTUEFDRSIsMTg3OiJHRVQuV0lORE9XIiwxODg6IkdFVC5ET0NVTUVOVCIsMTg5OiJEUFJPRFVDVCIsMTkwOiJJU05PTlRFWFQiLDE5MToiR0VULk5PVEUiLDE5MjoiTk9URSIsMTkzOiJTVERFVlAiLDE5NDoiVkFSUCIsMTk1OiJE''@;'; + put 'put ''U1RERVZQIiwxOTY6IkRWQVJQIiwxOTc6IlRSVU5DIiwxOTg6IklTTE9HSUNBTCIsMTk5OiJEQ09VTlRBIiwyMDA6IkRFTEVURS5CQVIiLDIwMToiVU5SRUdJU1RFUiIsMjA0OiJVU0RPTExBUiIsMjA1OiJGSU5EQiIsMjA2OiJTRUFSQ0hCIiwyMDc6IlJFUExBQ0VCIiwyMDg6IkxFRlRCIiwy''@;'; + put 'put ''MDk6IlJJR0hUQiIsMjEwOiJNSURCIiwyMTE6IkxFTkIiLDIxMjoiUk9VTkRVUCIsMjEzOiJST1VORERPV04iLDIxNDoiQVNDIiwyMTU6IkRCQ1MiLDIxNjoiUkFOSyIsMjE5OiJBRERSRVNTIiwyMjA6IkRBWVMzNjAiLDIyMToiVE9EQVkiLDIyMjoiVkRCIiwyMjM6IkVMU0UiLDIyNDoiRUxT''@;'; + put 'put ''RS5JRiIsMjI1OiJFTkQuSUYiLDIyNjoiRk9SLkNFTEwiLDIyNzoiTUVESUFOIiwyMjg6IlNVTVBST0RVQ1QiLDIyOToiU0lOSCIsMjMwOiJDT1NIIiwyMzE6IlRBTkgiLDIzMjoiQVNJTkgiLDIzMzoiQUNPU0giLDIzNDoiQVRBTkgiLDIzNToiREdFVCIsMjM2OiJDUkVBVEUuT0JKRUNUIiwy''@;'; + put 'put ''Mzc6IlZPTEFUSUxFIiwyMzg6IkxBU1QuRVJST1IiLDIzOToiQ1VTVE9NLlVORE8iLDI0MDoiQ1VTVE9NLlJFUEVBVCIsMjQxOiJGT1JNVUxBLkNPTlZFUlQiLDI0MjoiR0VULkxJTksuSU5GTyIsMjQzOiJURVhULkJPWCIsMjQ0OiJJTkZPIiwyNDU6IkdST1VQIiwyNDY6IkdFVC5PQkpFQ1Qi''@;'; + put 'put ''LDI0NzoiREIiLDI0ODoiUEFVU0UiLDI1MToiUkVTVU1FIiwyNTI6IkZSRVFVRU5DWSIsMjUzOiJBREQuVE9PTEJBUiIsMjU0OiJERUxFVEUuVE9PTEJBUiIsMjU1OiJVc2VyIiwyNTY6IlJFU0VULlRPT0xCQVIiLDI1NzoiRVZBTFVBVEUiLDI1ODoiR0VULlRPT0xCQVIiLDI1OToiR0VULlRP''@;'; + put 'put ''T0wiLDI2MDoiU1BFTExJTkcuQ0hFQ0siLDI2MToiRVJST1IuVFlQRSIsMjYyOiJBUFAuVElUTEUiLDI2MzoiV0lORE9XLlRJVExFIiwyNjQ6IlNBVkUuVE9PTEJBUiIsMjY1OiJFTkFCTEUuVE9PTCIsMjY2OiJQUkVTUy5UT09MIiwyNjc6IlJFR0lTVEVSLklEIiwyNjg6IkdFVC5XT1JLQk9P''@;'; + put 'put ''SyIsMjY5OiJBVkVERVYiLDI3MDoiQkVUQURJU1QiLDI3MToiR0FNTUFMTiIsMjcyOiJCRVRBSU5WIiwyNzM6IkJJTk9NRElTVCIsMjc0OiJDSElESVNUIiwyNzU6IkNISUlOViIsMjc2OiJDT01CSU4iLDI3NzoiQ09ORklERU5DRSIsMjc4OiJDUklUQklOT00iLDI3OToiRVZFTiIsMjgwOiJF''@;'; + put 'put ''WFBPTkRJU1QiLDI4MToiRkRJU1QiLDI4MjoiRklOViIsMjgzOiJGSVNIRVIiLDI4NDoiRklTSEVSSU5WIiwyODU6IkZMT09SIiwyODY6IkdBTU1BRElTVCIsMjg3OiJHQU1NQUlOViIsMjg4OiJDRUlMSU5HIiwyODk6IkhZUEdFT01ESVNUIiwyOTA6IkxPR05PUk1ESVNUIiwyOTE6IkxPR0lO''@;'; + put 'put ''ViIsMjkyOiJORUdCSU5PTURJU1QiLDI5MzoiTk9STURJU1QiLDI5NDoiTk9STVNESVNUIiwyOTU6Ik5PUk1JTlYiLDI5NjoiTk9STVNJTlYiLDI5NzoiU1RBTkRBUkRJWkUiLDI5ODoiT0REIiwyOTk6IlBFUk1VVCIsMzAwOiJQT0lTU09OIiwzMDE6IlRESVNUIiwzMDI6IldFSUJVTEwiLDMw''@;'; + put 'put ''MzoiU1VNWE1ZMiIsMzA0OiJTVU1YMk1ZMiIsMzA1OiJTVU1YMlBZMiIsMzA2OiJDSElURVNUIiwzMDc6IkNPUlJFTCIsMzA4OiJDT1ZBUiIsMzA5OiJGT1JFQ0FTVCIsMzEwOiJGVEVTVCIsMzExOiJJTlRFUkNFUFQiLDMxMjoiUEVBUlNPTiIsMzEzOiJSU1EiLDMxNDoiU1RFWVgiLDMxNToi''@;'; + put 'put ''U0xPUEUiLDMxNjoiVFRFU1QiLDMxNzoiUFJPQiIsMzE4OiJERVZTUSIsMzE5OiJHRU9NRUFOIiwzMjA6IkhBUk1FQU4iLDMyMToiU1VNU1EiLDMyMjoiS1VSVCIsMzIzOiJTS0VXIiwzMjQ6IlpURVNUIiwzMjU6IkxBUkdFIiwzMjY6IlNNQUxMIiwzMjc6IlFVQVJUSUxFIiwzMjg6IlBFUkNF''@;'; + put 'put ''TlRJTEUiLDMyOToiUEVSQ0VOVFJBTksiLDMzMDoiTU9ERSIsMzMxOiJUUklNTUVBTiIsMzMyOiJUSU5WIiwzMzQ6Ik1PVklFLkNPTU1BTkQiLDMzNToiR0VULk1PVklFIiwzMzY6IkNPTkNBVEVOQVRFIiwzMzc6IlBPV0VSIiwzMzg6IlBJVk9ULkFERC5EQVRBIiwzMzk6IkdFVC5QSVZPVC5U''@;'; + put 'put ''QUJMRSIsMzQwOiJHRVQuUElWT1QuRklFTEQiLDM0MToiR0VULlBJVk9ULklURU0iLDM0MjoiUkFESUFOUyIsMzQzOiJERUdSRUVTIiwzNDQ6IlNVQlRPVEFMIiwzNDU6IlNVTUlGIiwzNDY6IkNPVU5USUYiLDM0NzoiQ09VTlRCTEFOSyIsMzQ4OiJTQ0VOQVJJTy5HRVQiLDM0OToiT1BUSU9O''@;'; + put 'put ''Uy5MSVNUUy5HRVQiLDM1MDoiSVNQTVQiLDM1MToiREFURURJRiIsMzUyOiJEQVRFU1RSSU5HIiwzNTM6Ik5VTUJFUlNUUklORyIsMzU0OiJST01BTiIsMzU1OiJPUEVOLkRJQUxPRyIsMzU2OiJTQVZFLkRJQUxPRyIsMzU3OiJWSUVXLkdFVCIsMzU4OiJHRVRQSVZPVERBVEEiLDM1OToiSFlQ''@;'; + put 'put ''RVJMSU5LIiwzNjA6IlBIT05FVElDIiwzNjE6IkFWRVJBR0VBIiwzNjI6Ik1BWEEiLDM2MzoiTUlOQSIsMzY0OiJTVERFVlBBIiwzNjU6IlZBUlBBIiwzNjY6IlNUREVWQSIsMzY3OiJWQVJBIiwzNjg6IkJBSFRURVhUIiwzNjk6IlRIQUlEQVlPRldFRUsiLDM3MDoiVEhBSURJR0lUIiwzNzE6''@;'; + put 'put ''IlRIQUlNT05USE9GWUVBUiIsMzcyOiJUSEFJTlVNU09VTkQiLDM3MzoiVEhBSU5VTVNUUklORyIsMzc0OiJUSEFJU1RSSU5HTEVOR1RIIiwzNzU6IklTVEhBSURJR0lUIiwzNzY6IlJPVU5EQkFIVERPV04iLDM3NzoiUk9VTkRCQUhUVVAiLDM3ODoiVEhBSVlFQVIiLDM3OToiUlREIiwzODA6''@;'; + put 'put ''IkNVQkVWQUxVRSIsMzgxOiJDVUJFTUVNQkVSIiwzODI6IkNVQkVNRU1CRVJQUk9QRVJUWSIsMzgzOiJDVUJFUkFOS0VETUVNQkVSIiwzODQ6IkhFWDJCSU4iLDM4NToiSEVYMkRFQyIsMzg2OiJIRVgyT0NUIiwzODc6IkRFQzJCSU4iLDM4ODoiREVDMkhFWCIsMzg5OiJERUMyT0NUIiwzOTA6''@;'; + put 'put ''Ik9DVDJCSU4iLDM5MToiT0NUMkhFWCIsMzkyOiJPQ1QyREVDIiwzOTM6IkJJTjJERUMiLDM5NDoiQklOMk9DVCIsMzk1OiJCSU4ySEVYIiwzOTY6IklNU1VCIiwzOTc6IklNRElWIiwzOTg6IklNUE9XRVIiLDM5OToiSU1BQlMiLDQwMDoiSU1TUVJUIiw0MDE6IklNTE4iLDQwMjoiSU1MT0cy''@;'; + put 'put ''Iiw0MDM6IklNTE9HMTAiLDQwNDoiSU1TSU4iLDQwNToiSU1DT1MiLDQwNjoiSU1FWFAiLDQwNzoiSU1BUkdVTUVOVCIsNDA4OiJJTUNPTkpVR0FURSIsNDA5OiJJTUFHSU5BUlkiLDQxMDoiSU1SRUFMIiw0MTE6IkNPTVBMRVgiLDQxMjoiSU1TVU0iLDQxMzoiSU1QUk9EVUNUIiw0MTQ6IlNF''@;'; + put 'put ''UklFU1NVTSIsNDE1OiJGQUNURE9VQkxFIiw0MTY6IlNRUlRQSSIsNDE3OiJRVU9USUVOVCIsNDE4OiJERUxUQSIsNDE5OiJHRVNURVAiLDQyMDoiSVNFVkVOIiw0MjE6IklTT0REIiw0MjI6Ik1ST1VORCIsNDIzOiJFUkYiLDQyNDoiRVJGQyIsNDI1OiJCRVNTRUxKIiw0MjY6IkJFU1NFTEsi''@;'; + put 'put ''LDQyNzoiQkVTU0VMWSIsNDI4OiJCRVNTRUxJIiw0Mjk6IlhJUlIiLDQzMDoiWE5QViIsNDMxOiJQUklDRU1BVCIsNDMyOiJZSUVMRE1BVCIsNDMzOiJJTlRSQVRFIiw0MzQ6IlJFQ0VJVkVEIiw0MzU6IkRJU0MiLDQzNjoiUFJJQ0VESVNDIiw0Mzc6IllJRUxERElTQyIsNDM4OiJUQklMTEVR''@;'; + put 'put ''Iiw0Mzk6IlRCSUxMUFJJQ0UiLDQ0MDoiVEJJTExZSUVMRCIsNDQxOiJQUklDRSIsNDQyOiJZSUVMRCIsNDQzOiJET0xMQVJERSIsNDQ0OiJET0xMQVJGUiIsNDQ1OiJOT01JTkFMIiw0NDY6IkVGRkVDVCIsNDQ3OiJDVU1QUklOQyIsNDQ4OiJDVU1JUE1UIiw0NDk6IkVEQVRFIiw0NTA6IkVP''@;'; + put 'put ''TU9OVEgiLDQ1MToiWUVBUkZSQUMiLDQ1MjoiQ09VUERBWUJTIiw0NTM6IkNPVVBEQVlTIiw0NTQ6IkNPVVBEQVlTTkMiLDQ1NToiQ09VUE5DRCIsNDU2OiJDT1VQTlVNIiw0NTc6IkNPVVBQQ0QiLDQ1ODoiRFVSQVRJT04iLDQ1OToiTURVUkFUSU9OIiw0NjA6Ik9ERExQUklDRSIsNDYxOiJP''@;'; + put 'put ''RERMWUlFTEQiLDQ2MjoiT0RERlBSSUNFIiw0NjM6Ik9EREZZSUVMRCIsNDY0OiJSQU5EQkVUV0VFTiIsNDY1OiJXRUVLTlVNIiw0NjY6IkFNT1JERUdSQyIsNDY3OiJBTU9STElOQyIsNDY4OiJDT05WRVJUIiw3MjQ6IlNIRUVUSlMiLDQ2OToiQUNDUklOVCIsNDcwOiJBQ0NSSU5UTSIsNDcx''@;'; + put 'put ''OiJXT1JLREFZIiw0NzI6Ik5FVFdPUktEQVlTIiw0NzM6IkdDRCIsNDc0OiJNVUxUSU5PTUlBTCIsNDc1OiJMQ00iLDQ3NjoiRlZTQ0hFRFVMRSIsNDc3OiJDVUJFS1BJTUVNQkVSIiw0Nzg6IkNVQkVTRVQiLDQ3OToiQ1VCRVNFVENPVU5UIiw0ODA6IklGRVJST1IiLDQ4MToiQ09VTlRJRlMi''@;'; + put 'put ''LDQ4MjoiU1VNSUZTIiw0ODM6IkFWRVJBR0VJRiIsNDg0OiJBVkVSQUdFSUZTIn0sc189ezI6MSwzOjEsMTA6MCwxNToxLDE2OjEsMTc6MSwxODoxLDE5OjAsMjA6MSwyMToxLDIyOjEsMjM6MSwyNDoxLDI1OjEsMjY6MSwyNzoyLDMwOjIsMzE6MywzMjoxLDMzOjEsMzQ6MCwzNTowLDM4OjEs''@;'; + put 'put ''Mzk6Miw0MDozLDQxOjMsNDI6Myw0MzozLDQ0OjMsNDU6Myw0NzozLDQ4OjIsNTM6MSw2MTozLDYzOjAsNjU6Myw2NjozLDY3OjEsNjg6MSw2OToxLDcwOjEsNzE6MSw3MjoxLDczOjEsNzQ6MCw3NToxLDc2OjEsNzc6MSw3OToyLDgwOjIsODM6MSw4NTowLDg2OjEsODk6MCw5MDoxLDk0OjAs''@;'; + put 'put ''OTU6MCw5NzoyLDk4OjEsOTk6MSwxMDE6MywxMDI6MywxMDU6MSwxMDY6MSwxMDg6MiwxMTE6MSwxMTI6MSwxMTM6MSwxMTQ6MSwxMTc6MiwxMTg6MSwxMTk6NCwxMjE6MSwxMjY6MSwxMjc6MSwxMjg6MSwxMjk6MSwxMzA6MSwxMzE6MSwxMzM6MSwxMzQ6MSwxMzU6MSwxMzY6MiwxMzc6Miwx''@;'; + put 'put ''Mzg6MiwxNDA6MSwxNDE6MSwxNDI6MywxNDM6NCwxNDQ6NCwxNjE6MSwxNjI6MSwxNjM6MSwxNjQ6MSwxNjU6MiwxNzI6MSwxNzU6MiwxNzY6MiwxNzc6MywxNzg6MiwxNzk6MSwxODQ6MSwxODY6MSwxODk6MywxOTA6MSwxOTU6MywxOTY6MywxOTc6MSwxOTg6MSwxOTk6MywyMDE6MSwyMDc6''@;'; + put 'put ''NCwyMTA6MywyMTE6MSwyMTI6MiwyMTM6MiwyMTQ6MSwyMTU6MSwyMjU6MCwyMjk6MSwyMzA6MSwyMzE6MSwyMzI6MSwyMzM6MSwyMzQ6MSwyMzU6MywyNDQ6MSwyNDc6NCwyNTI6MiwyNTc6MSwyNjE6MSwyNzE6MSwyNzM6NCwyNzQ6MiwyNzU6MiwyNzY6MiwyNzc6MywyNzg6MywyNzk6MSwy''@;'; + put 'put ''ODA6MywyODE6MywyODI6MywyODM6MSwyODQ6MSwyODU6MiwyODY6NCwyODc6MywyODg6MiwyODk6NCwyOTA6MywyOTE6MywyOTI6MywyOTM6NCwyOTQ6MSwyOTU6MywyOTY6MSwyOTc6MywyOTg6MSwyOTk6MiwzMDA6MywzMDE6MywzMDI6NCwzMDM6MiwzMDQ6MiwzMDU6MiwzMDY6MiwzMDc6''@;'; + put 'put ''MiwzMDg6MiwzMDk6MywzMTA6MiwzMTE6MiwzMTI6MiwzMTM6MiwzMTQ6MiwzMTU6MiwzMTY6NCwzMjU6MiwzMjY6MiwzMjc6MiwzMjg6MiwzMzE6MiwzMzI6MiwzMzc6MiwzNDI6MSwzNDM6MSwzNDY6MiwzNDc6MSwzNTA6NCwzNTE6MywzNTI6MSwzNTM6MiwzNjA6MSwzNjg6MSwzNjk6MSwz''@;'; + put 'put ''NzA6MSwzNzE6MSwzNzI6MSwzNzM6MSwzNzQ6MSwzNzU6MSwzNzY6MSwzNzc6MSwzNzg6MSwzODI6MywzODU6MSwzOTI6MSwzOTM6MSwzOTY6MiwzOTc6MiwzOTg6MiwzOTk6MSw0MDA6MSw0MDE6MSw0MDI6MSw0MDM6MSw0MDQ6MSw0MDU6MSw0MDY6MSw0MDc6MSw0MDg6MSw0MDk6MSw0MTA6''@;'; + put 'put ''MSw0MTQ6NCw0MTU6MSw0MTY6MSw0MTc6Miw0MjA6MSw0MjE6MSw0MjI6Miw0MjQ6MSw0MjU6Miw0MjY6Miw0Mjc6Miw0Mjg6Miw0MzA6Myw0Mzg6Myw0Mzk6Myw0NDA6Myw0NDM6Miw0NDQ6Miw0NDU6Miw0NDY6Miw0NDc6Niw0NDg6Niw0NDk6Miw0NTA6Miw0NjQ6Miw0Njg6Myw0NzY6Miw0''@;'; + put 'put ''Nzk6MSw0ODA6Miw2NTUzNTowfSxxRT17Il94bGZuLkFDT1QiOiJBQ09UIiwiX3hsZm4uQUNPVEgiOiJBQ09USCIsIl94bGZuLkFHR1JFR0FURSI6IkFHR1JFR0FURSIsIl94bGZuLkFSQUJJQyI6IkFSQUJJQyIsIl94bGZuLkFWRVJBR0VJRiI6IkFWRVJBR0VJRiIsIl94bGZuLkFWRVJBR0VJ''@;'; + put 'put ''RlMiOiJBVkVSQUdFSUZTIiwiX3hsZm4uQkFTRSI6IkJBU0UiLCJfeGxmbi5CRVRBLkRJU1QiOiJCRVRBLkRJU1QiLCJfeGxmbi5CRVRBLklOViI6IkJFVEEuSU5WIiwiX3hsZm4uQklOT00uRElTVCI6IkJJTk9NLkRJU1QiLCJfeGxmbi5CSU5PTS5ESVNULlJBTkdFIjoiQklOT00uRElTVC5S''@;'; + put 'put ''QU5HRSIsIl94bGZuLkJJTk9NLklOViI6IkJJTk9NLklOViIsIl94bGZuLkJJVEFORCI6IkJJVEFORCIsIl94bGZuLkJJVExTSElGVCI6IkJJVExTSElGVCIsIl94bGZuLkJJVE9SIjoiQklUT1IiLCJfeGxmbi5CSVRSU0hJRlQiOiJCSVRSU0hJRlQiLCJfeGxmbi5CSVRYT1IiOiJCSVRYT1Ii''@;'; + put 'put ''LCJfeGxmbi5DRUlMSU5HLk1BVEgiOiJDRUlMSU5HLk1BVEgiLCJfeGxmbi5DRUlMSU5HLlBSRUNJU0UiOiJDRUlMSU5HLlBSRUNJU0UiLCJfeGxmbi5DSElTUS5ESVNUIjoiQ0hJU1EuRElTVCIsIl94bGZuLkNISVNRLkRJU1QuUlQiOiJDSElTUS5ESVNULlJUIiwiX3hsZm4uQ0hJU1EuSU5W''@;'; + put 'put ''IjoiQ0hJU1EuSU5WIiwiX3hsZm4uQ0hJU1EuSU5WLlJUIjoiQ0hJU1EuSU5WLlJUIiwiX3hsZm4uQ0hJU1EuVEVTVCI6IkNISVNRLlRFU1QiLCJfeGxmbi5DT01CSU5BIjoiQ09NQklOQSIsIl94bGZuLkNPTkNBVCI6IkNPTkNBVCIsIl94bGZuLkNPTkZJREVOQ0UuTk9STSI6IkNPTkZJREVO''@;'; + put 'put ''Q0UuTk9STSIsIl94bGZuLkNPTkZJREVOQ0UuVCI6IkNPTkZJREVOQ0UuVCIsIl94bGZuLkNPVCI6IkNPVCIsIl94bGZuLkNPVEgiOiJDT1RIIiwiX3hsZm4uQ09VTlRJRlMiOiJDT1VOVElGUyIsIl94bGZuLkNPVkFSSUFOQ0UuUCI6IkNPVkFSSUFOQ0UuUCIsIl94bGZuLkNPVkFSSUFOQ0Uu''@;'; + put 'put ''UyI6IkNPVkFSSUFOQ0UuUyIsIl94bGZuLkNTQyI6IkNTQyIsIl94bGZuLkNTQ0giOiJDU0NIIiwiX3hsZm4uREFZUyI6IkRBWVMiLCJfeGxmbi5ERUNJTUFMIjoiREVDSU1BTCIsIl94bGZuLkVDTUEuQ0VJTElORyI6IkVDTUEuQ0VJTElORyIsIl94bGZuLkVSRi5QUkVDSVNFIjoiRVJGLlBS''@;'; + put 'put ''RUNJU0UiLCJfeGxmbi5FUkZDLlBSRUNJU0UiOiJFUkZDLlBSRUNJU0UiLCJfeGxmbi5FWFBPTi5ESVNUIjoiRVhQT04uRElTVCIsIl94bGZuLkYuRElTVCI6IkYuRElTVCIsIl94bGZuLkYuRElTVC5SVCI6IkYuRElTVC5SVCIsIl94bGZuLkYuSU5WIjoiRi5JTlYiLCJfeGxmbi5GLklOVi5S''@;'; + put 'put ''VCI6IkYuSU5WLlJUIiwiX3hsZm4uRi5URVNUIjoiRi5URVNUIiwiX3hsZm4uRklMVEVSWE1MIjoiRklMVEVSWE1MIiwiX3hsZm4uRkxPT1IuTUFUSCI6IkZMT09SLk1BVEgiLCJfeGxmbi5GTE9PUi5QUkVDSVNFIjoiRkxPT1IuUFJFQ0lTRSIsIl94bGZuLkZPUkVDQVNULkVUUyI6IkZPUkVD''@;'; + put 'put ''QVNULkVUUyIsIl94bGZuLkZPUkVDQVNULkVUUy5DT05GSU5UIjoiRk9SRUNBU1QuRVRTLkNPTkZJTlQiLCJfeGxmbi5GT1JFQ0FTVC5FVFMuU0VBU09OQUxJVFkiOiJGT1JFQ0FTVC5FVFMuU0VBU09OQUxJVFkiLCJfeGxmbi5GT1JFQ0FTVC5FVFMuU1RBVCI6IkZPUkVDQVNULkVUUy5TVEFU''@;'; + put 'put ''IiwiX3hsZm4uRk9SRUNBU1QuTElORUFSIjoiRk9SRUNBU1QuTElORUFSIiwiX3hsZm4uRk9STVVMQVRFWFQiOiJGT1JNVUxBVEVYVCIsIl94bGZuLkdBTU1BIjoiR0FNTUEiLCJfeGxmbi5HQU1NQS5ESVNUIjoiR0FNTUEuRElTVCIsIl94bGZuLkdBTU1BLklOViI6IkdBTU1BLklOViIsIl94''@;'; + put 'put ''bGZuLkdBTU1BTE4uUFJFQ0lTRSI6IkdBTU1BTE4uUFJFQ0lTRSIsIl94bGZuLkdBVVNTIjoiR0FVU1MiLCJfeGxmbi5IWVBHRU9NLkRJU1QiOiJIWVBHRU9NLkRJU1QiLCJfeGxmbi5JRkVSUk9SIjoiSUZFUlJPUiIsIl94bGZuLklGTkEiOiJJRk5BIiwiX3hsZm4uSUZTIjoiSUZTIiwiX3hs''@;'; + put 'put ''Zm4uSU1DT1NIIjoiSU1DT1NIIiwiX3hsZm4uSU1DT1QiOiJJTUNPVCIsIl94bGZuLklNQ1NDIjoiSU1DU0MiLCJfeGxmbi5JTUNTQ0giOiJJTUNTQ0giLCJfeGxmbi5JTVNFQyI6IklNU0VDIiwiX3hsZm4uSU1TRUNIIjoiSU1TRUNIIiwiX3hsZm4uSU1TSU5IIjoiSU1TSU5IIiwiX3hsZm4u''@;'; + put 'put ''SU1UQU4iOiJJTVRBTiIsIl94bGZuLklTRk9STVVMQSI6IklTRk9STVVMQSIsIl94bGZuLklTTy5DRUlMSU5HIjoiSVNPLkNFSUxJTkciLCJfeGxmbi5JU09XRUVLTlVNIjoiSVNPV0VFS05VTSIsIl94bGZuLkxPR05PUk0uRElTVCI6IkxPR05PUk0uRElTVCIsIl94bGZuLkxPR05PUk0uSU5W''@;'; + put 'put ''IjoiTE9HTk9STS5JTlYiLCJfeGxmbi5NQVhJRlMiOiJNQVhJRlMiLCJfeGxmbi5NSU5JRlMiOiJNSU5JRlMiLCJfeGxmbi5NT0RFLk1VTFQiOiJNT0RFLk1VTFQiLCJfeGxmbi5NT0RFLlNOR0wiOiJNT0RFLlNOR0wiLCJfeGxmbi5NVU5JVCI6Ik1VTklUIiwiX3hsZm4uTkVHQklOT00uRElT''@;'; + put 'put ''VCI6Ik5FR0JJTk9NLkRJU1QiLCJfeGxmbi5ORVRXT1JLREFZUy5JTlRMIjoiTkVUV09SS0RBWVMuSU5UTCIsIl94bGZuLk5JR0JJTk9NIjoiTklHQklOT00iLCJfeGxmbi5OT1JNLkRJU1QiOiJOT1JNLkRJU1QiLCJfeGxmbi5OT1JNLklOViI6Ik5PUk0uSU5WIiwiX3hsZm4uTk9STS5TLkRJ''@;'; + put 'put ''U1QiOiJOT1JNLlMuRElTVCIsIl94bGZuLk5PUk0uUy5JTlYiOiJOT1JNLlMuSU5WIiwiX3hsZm4uTlVNQkVSVkFMVUUiOiJOVU1CRVJWQUxVRSIsIl94bGZuLlBEVVJBVElPTiI6IlBEVVJBVElPTiIsIl94bGZuLlBFUkNFTlRJTEUuRVhDIjoiUEVSQ0VOVElMRS5FWEMiLCJfeGxmbi5QRVJD''@;'; + put 'put ''RU5USUxFLklOQyI6IlBFUkNFTlRJTEUuSU5DIiwiX3hsZm4uUEVSQ0VOVFJBTksuRVhDIjoiUEVSQ0VOVFJBTksuRVhDIiwiX3hsZm4uUEVSQ0VOVFJBTksuSU5DIjoiUEVSQ0VOVFJBTksuSU5DIiwiX3hsZm4uUEVSTVVUQVRJT05BIjoiUEVSTVVUQVRJT05BIiwiX3hsZm4uUEhJIjoiUEhJ''@;'; + put 'put ''IiwiX3hsZm4uUE9JU1NPTi5ESVNUIjoiUE9JU1NPTi5ESVNUIiwiX3hsZm4uUVVBUlRJTEUuRVhDIjoiUVVBUlRJTEUuRVhDIiwiX3hsZm4uUVVBUlRJTEUuSU5DIjoiUVVBUlRJTEUuSU5DIiwiX3hsZm4uUVVFUllTVFJJTkciOiJRVUVSWVNUUklORyIsIl94bGZuLlJBTksuQVZHIjoiUkFO''@;'; + put 'put ''Sy5BVkciLCJfeGxmbi5SQU5LLkVRIjoiUkFOSy5FUSIsIl94bGZuLlJSSSI6IlJSSSIsIl94bGZuLlNFQyI6IlNFQyIsIl94bGZuLlNFQ0giOiJTRUNIIiwiX3hsZm4uU0hFRVQiOiJTSEVFVCIsIl94bGZuLlNIRUVUUyI6IlNIRUVUUyIsIl94bGZuLlNLRVcuUCI6IlNLRVcuUCIsIl94bGZu''@;'; + put 'put ''LlNUREVWLlAiOiJTVERFVi5QIiwiX3hsZm4uU1RERVYuUyI6IlNUREVWLlMiLCJfeGxmbi5TVU1JRlMiOiJTVU1JRlMiLCJfeGxmbi5TV0lUQ0giOiJTV0lUQ0giLCJfeGxmbi5ULkRJU1QiOiJULkRJU1QiLCJfeGxmbi5ULkRJU1QuMlQiOiJULkRJU1QuMlQiLCJfeGxmbi5ULkRJU1QuUlQi''@;'; + put 'put ''OiJULkRJU1QuUlQiLCJfeGxmbi5ULklOViI6IlQuSU5WIiwiX3hsZm4uVC5JTlYuMlQiOiJULklOVi4yVCIsIl94bGZuLlQuVEVTVCI6IlQuVEVTVCIsIl94bGZuLlRFWFRKT0lOIjoiVEVYVEpPSU4iLCJfeGxmbi5VTklDSEFSIjoiVU5JQ0hBUiIsIl94bGZuLlVOSUNPREUiOiJVTklDT0RF''@;'; + put 'put ''IiwiX3hsZm4uVkFSLlAiOiJWQVIuUCIsIl94bGZuLlZBUi5TIjoiVkFSLlMiLCJfeGxmbi5XRUJTRVJWSUNFIjoiV0VCU0VSVklDRSIsIl94bGZuLldFSUJVTEwuRElTVCI6IldFSUJVTEwuRElTVCIsIl94bGZuLldPUktEQVkuSU5UTCI6IldPUktEQVkuSU5UTCIsIl94bGZuLlhPUiI6IlhP''@;'; + put 'put ''UiIsIl94bGZuLlouVEVTVCI6IlouVEVTVCJ9O2Z1bmN0aW9uIExoKEgpe3JldHVybiJvZjoiPT1ILnNsaWNlKDAsMykmJihIPUguc2xpY2UoMykpLDYxPT1ILmNoYXJDb2RlQXQoMCkmJjYxPT0oSD1ILnNsaWNlKDEpKS5jaGFyQ29kZUF0KDApJiYoSD1ILnNsaWNlKDEpKSwoSD0oSD0oSD1I''@;'; + put 'put ''LnJlcGxhY2UoL0NPTVwuTUlDUk9TT0ZUXC4vZywiIikpLnJlcGxhY2UoL1xbKCg/OlwuW0EtWl0rWzAtOV0rKSg/OjpcLltBLVpdK1swLTldKyk/KVxdL2csZnVuY3Rpb24ocmUsWCl7cmV0dXJuIFgucmVwbGFjZSgvXC4vZywiIil9KSkucmVwbGFjZSgvXFsuKCNbQS1aXSpbPyFdKVxdL2cs''@;'; + put 'put ''IiQxIikpLnJlcGxhY2UoL1s7fl0vZywiLCIpLnJlcGxhY2UoL1x8L2csIjsiKX1mdW5jdGlvbiBleChIKXtyZXR1cm4oIm9mOj0iK0gucmVwbGFjZShTbSwiJDFbLiQyJDMkNCQ1XSIpLnJlcGxhY2UoL1xdOlxbL2csIjoiKSkucmVwbGFjZSgvOy9nLCJ8IikucmVwbGFjZSgvLC9nLCI7Iil9''@;'; + put 'put ''ZnVuY3Rpb24gdV8oSCl7dmFyIHJlPUguc3BsaXQoIjoiKTtyZXR1cm5bcmVbMF0uc3BsaXQoIi4iKVswXSxyZVswXS5zcGxpdCgiLiIpWzFdKyhyZS5sZW5ndGg+MT8iOiIrKHJlWzFdLnNwbGl0KCIuIilbMV18fHJlWzFdLnNwbGl0KCIuIilbMF0pOiIiKV19ZnVuY3Rpb24gY18oSCl7cmV0''@;'; + put 'put ''dXJuIEgucmVwbGFjZSgvXC4vLCIhIil9dmFyIExkPXt9LFVjPXt9O3B0LldTPVsiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy93b3Jrc2hlZXQiLCJodHRwOi8vcHVybC5vY2xjLm9yZy9vb3htbC9vZmZpY2VEb2N1''@;'; + put 'put ''bWVudC9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldCJdO3ZhciBmNT0idW5kZWZpbmVkIiE9dHlwZW9mIE1hcDtmdW5jdGlvbiBDNihILHJlLFgsd2Upe3ZhciB4ZT0wLEZlPUgubGVuZ3RoO2lmKHdlKXtpZihmNT93ZS5oYXMocmUpOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2Fs''@;'; + put 'put ''bCh3ZSxyZSkpZm9yKHZhciBaZT1mNT93ZS5nZXQocmUpOndlW3JlXTt4ZTxaZS5sZW5ndGg7Kyt4ZSlpZihIW1plW3hlXV0udD09PXJlJiYoIUhbWmVbeGVdXS5yJiYhWHx8SFtaZVt4ZV1dLnI9PVgpKXJldHVybiBILkNvdW50KyssWmVbeGVdfWVsc2UgZm9yKDt4ZTxGZTsrK3hlKWlmKEhb''@;'; + put 'put ''eGVdLnQ9PT1yZSYmKCFIW3hlXS5yJiYhWHx8SFt4ZV0ucj09WCkpcmV0dXJuIEguQ291bnQrKyx4ZTtyZXR1cm4gSFtGZV09e3Q6cmUscjpYfSxILkNvdW50KyssSC5VbmlxdWUrKyx3ZSYmKGY1Pyh3ZS5oYXMocmUpfHx3ZS5zZXQocmUsW10pLHdlLmdldChyZSkucHVzaChGZSkpOihPYmpl''@;'; + put 'put ''Y3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwod2UscmUpfHwod2VbcmVdPVtdKSx3ZVtyZV0ucHVzaChGZSkpKSxGZX1mdW5jdGlvbiBrNihILHJlKXt2YXIgWD17bWluOkgrMSxtYXg6SCsxfSx3ZT1YMjtpZighcmUpcmV0dXJuIHJlO3ZhciB4ZT0tMTtyZXR1cm4gcmUuYXV0byYm''@;'; + put 'put ''KFguYmVzdEZpdD0xLHJlLmJlc3R3aWR0aCYmKHhlPXJlLmJlc3R3aWR0aCksZGVsZXRlIHJlLmJlc3R3aWR0aCksbnVsbCE9cmUud3B4P3hlPVR2KHJlLndweCk6bnVsbCE9cmUud2NoP3hlPXJlLndjaDpudWxsIT1yZS53aWR0aCYmKFguY3VzdG9tV2lkdGg9MSkseGU+LTE/KFgud2lkdGg9''@;'; + put 'put ''d2IoeGUpLFguY3VzdG9tV2lkdGg9MSk6bnVsbCE9cmUud2lkdGgmJihYLndpZHRoPXJlLndpZHRoKSxyZS5oaWRkZW4mJihYLmhpZGRlbj0hMCksWC5iZXN0Rml0JiZkZWxldGUgWC5jdXN0b21XaWR0aCxYMj13ZSxudWxsIT1yZS5sZXZlbCYmKFgub3V0bGluZUxldmVsPVgubGV2ZWw9cmUu''@;'; + put 'put ''bGV2ZWwpLG51bGwhPXJlLnN0eWxlJiYoWC5zdHlsZT1yZS5zdHlsZSksWH1mdW5jdGlvbiBTNihILHJlLFgpe3ZhciB3ZT12cyhIWyIhcmVmIl0pLHhlPTAsRmU9SFsiIW1lcmdlcyJdfHxbXSxaZT1BcnJheS5pc0FycmF5KEgpO2U6Zm9yKHZhciBqZT0wO2plPD13ZS5lLnI7KytqZSl7Zm9y''@;'; + put 'put ''KHZhciBZZT0wO1llPEZlLmxlbmd0aDsrK1llKWlmKEZlW1llXS5zLnI8PWplJiZqZTw9RmVbWWVdLmUuciYmRmVbWWVdLnMuYzw9WCYmWDw9RmVbWWVdLmUuYyljb250aW51ZSBlO3ZhciBNdD1aZT8oSFtqZV18fFtdKVtYXTpIW1kwKHtyOmplLGM6WH0pXTtpZihNdCl7dmFyIHh0PTE7aWYo''@;'; + put 'put ''TXQucyYmKHh0PXZtKE10LnMpL2JiLkNhbGlicmlbMTJdfHwxKSxNdC53KXhlPU1hdGgubWF4KHhlLE10LncubGVuZ3RoKnh0KTtlbHNlIHN3aXRjaChNdC50KXtjYXNlImIiOmNhc2UiZSI6eGU9TWF0aC5tYXgoeGUsNSp4dCk7YnJlYWs7Y2FzZSJzIjp4ZT1NYXRoLm1heCh4ZSxNdC52Lmxl''@;'; + put 'put ''bmd0aCp4dCoxLjJ8MCk7YnJlYWs7Y2FzZSJuIjpwZChNdCxNdC52KSx4ZT1NYXRoLm1heCh4ZSxTdHJpbmcoTXQud3x8TXQudikubGVuZ3RoKnh0KTticmVhaztjYXNlImQiOnhlPU1hdGgubWF4KHhlLDgqeHQpfX19eGU8MSYmKHhlPTEpLHJlLmJlc3R3aWR0aD14ZX1mdW5jdGlvbiBPZChI''@;'; + put 'put ''LHJlKXtpZihIKXt2YXIgWD1bLjcsLjcsLjc1LC43NSwuMywuM107InhsbWwiPT1yZSYmKFg9WzEsMSwxLDEsLjUsLjVdKSxudWxsPT1ILmxlZnQmJihILmxlZnQ9WFswXSksbnVsbD09SC5yaWdodCYmKEgucmlnaHQ9WFsxXSksbnVsbD09SC50b3AmJihILnRvcD1YWzJdKSxudWxsPT1ILmJv''@;'; + put 'put ''dHRvbSYmKEguYm90dG9tPVhbM10pLG51bGw9PUguaGVhZGVyJiYoSC5oZWFkZXI9WFs0XSksbnVsbD09SC5mb290ZXImJihILmZvb3Rlcj1YWzVdKX19ZnVuY3Rpb24gejQoSCxyZSl7Zm9yKHZhciBYPW9uKHJlKSx3ZT0wO3dlPEgubGVuZ3RoOysrd2Upe3ZhciB4ZT0hMCxGZT1IW3dlXTtp''@;'; + put 'put ''ZihGZSYmWC5sZW5ndGg9PW9uKEZlKS5sZW5ndGgmJihYLmZvckVhY2goZnVuY3Rpb24oWmUpe2lmKHhlKXtpZihudWxsPT09cmVbWmVdIT0obnVsbD09PUZlW1plXSkpcmV0dXJuIHZvaWQoeGU9ITEpO2lmKCJvYmplY3QiPT10eXBlb2YgcmVbWmVdKWlmKFsiY29sb3IiLCJmZ0NvbG9yIiwi''@;'; + put 'put ''YmdDb2xvciJdLmluZGV4T2YoWmUpPi0xKXtpZihfMyhyZVtaZV0sRmVbWmVdKSlyZXR1cm4gdm9pZCh4ZT0hMSl9ZWxzZXtpZighKFsibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIl0uaW5kZXhPZihaZSk+LTEpKXJldHVybiB2b2lkKHhlPSExKTtpZih4dihyZVtaZV0sRmVbWmVdKSly''@;'; + put 'put ''ZXR1cm4gdm9pZCh4ZT0hMSl9aWYocmVbWmVdIT1GZVtaZV0pcmV0dXJuIHZvaWQoeGU9ITEpfX0pLHhlKSlyZXR1cm4gd2V9cmV0dXJuIEhbSC5sZW5ndGhdPWxuKHJlKSxILmxlbmd0aC0xfWZ1bmN0aW9uIFkxKEgscmUsWCx3ZSl7dmFyIHhlPXdlLnJldnNzZltudWxsIT1YLno/WC56OiJH''@;'; + put 'put ''ZW5lcmFsIl0sRmU9NjAsWmU9SC5sZW5ndGg7aWYobnVsbD09eGUmJndlLnNzZilmb3IoO0ZlPDM5MjsrK0ZlKWlmKG51bGw9PXdlLnNzZltGZV0pe0YubG9hZChYLnosRmUpLHdlLnNzZltGZV09WC56LHdlLnJldnNzZltYLnpdPXhlPUZlO2JyZWFrfXZhciBqZT0wLFllPTAsTXQ9MCx4dD0w''@;'; + put 'put ''O2lmKHdlLmNlbGxTdHlsZXMpe2lmKFgucyl7aWYod2UuRm9udHMpe1gucy5jb2xvcnx8KFgucy5jb2xvcj17dGhlbWU6MSxyZ2I6IjAwMDAwMCJ9KTtmb3IodmFyIFJ0PShYLnMuYm9sZD8xOjApfChYLnMuaXRhbGljPzI6MCl8KFgucy5zdHJpa2U/NDowKXwoWC5zLnNoYWRvdz84OjApO2pl''@;'; + put 'put ''PHdlLkZvbnRzLmxlbmd0aDsrK2plKXt2YXIgWXQ9d2UuRm9udHNbamVdO2lmKG51bGw9PVl0LmZvbnRoYXNoJiYoWXQuZm9udGhhc2g9KFl0LmJvbGQ/MTowKXwoWXQuaXRhbGljPzI6MCl8KFl0LnN0cmlrZT80OjApfChZdC5zaGFkb3c/ODowKSksIShSdCE9WXQuZm9udGhhc2h8fCEhWC5z''@;'; + put 'put ''LmNvbG9yIT0hIVl0LmNvbG9yfHxYLnMudmFsaWduIT1ZdC52YWxpZ258fChYLnMuc3p8fFl0LnN6KSYmKFgucy5zenx8MTIpIT0oWXQuc3p8fDEyKXx8WC5zLm5hbWUmJlgucy5uYW1lIT1ZdC5uYW1lfHwoWC5zLnVuZGVybGluZXx8MCkhPShZdC51bmRlcmxpbmV8fDApfHxYLnMuY29sb3Im''@;'; + put 'put ''Jl8zKFgucy5jb2xvcixZdC5jb2xvcikpKWJyZWFrfWplPT13ZS5Gb250cy5sZW5ndGgmJih3ZS5Gb250cy5wdXNoKHtzejpYLnMuc3p8fDEyLGNvbG9yOlgucy5jb2xvcnx8e3RoZW1lOjEscmdiOiIwMDAwMDAifSxuYW1lOlgucy5uYW1lfHwiQ2FsaWJyaSIsZmFtaWx5Olgucy5mYW1pbHl8''@;'; + put 'put ''fDIsc2NoZW1lOlgucy5zY2hlbWUsYm9sZDpYLnMuYm9sZCxpdGFsaWM6WC5zLml0YWxpYyxzdHJpa2U6WC5zLnN0cmlrZSxzaGFkb3c6WC5zLnNoYWRvdyx2YWxpZ246WC5zLnZhbGlnbix1bmRlcmxpbmU6WC5zLnVuZGVybGluZX0pLDE9PXdlLkZvbnRzLmxlbmd0aCYmUzMod2UuRm9udHNb''@;'; + put 'put ''MF0pKX1pZih3ZS5GaWxscyl7Zm9yKDtZZTx3ZS5GaWxscy5sZW5ndGg7KytZZSl7dmFyIG5uPXdlLkZpbGxzW1llXTtpZighIVgucy5zdG9wcz09ISFubi5zdG9wcyl7aWYoWC5zLnN0b3BzKXtpZihYLnMuYW5nbGUhPW5uLmFuZ2xlKWNvbnRpbnVlO3ZhciBDbj0hMDtpZihYLnMuc3RvcHMu''@;'; + put 'put ''Zm9yRWFjaChmdW5jdGlvbihUbixPbil7XzMoVG4sbm4uc3RvcHNbT25dKSYmKENuPSExKSxUbi52IT1ubi5zdG9wc1tPbl0udiYmKENuPSExKX0pLCFDbiljb250aW51ZX1lbHNle2lmKG51bGw9PVgucy5wYXR0ZXJuVHlwZSYmWC5zLmZnQ29sb3ImJihYLnMucGF0dGVyblR5cGU9InNvbGlk''@;'; + put 'put ''IiksbnVsbD09WC5zLnBhdHRlcm5UeXBlKWJyZWFrO2lmKFgucy5wYXR0ZXJuVHlwZSE9bm4ucGF0dGVyblR5cGV8fF8zKFgucy5mZ0NvbG9yLG5uLmZnQ29sb3IpfHxfMyhYLnMuYmdDb2xvcixubi5iZ0NvbG9yKSljb250aW51ZX1icmVha319aWYoWWU9PXdlLkZpbGxzLmxlbmd0aCl7dmFy''@;'; + put 'put ''IER0PXt9O1gucy5zdG9wcz8obnVsbCE9WC5zLmFuZ2xlJiYoRHQuYW5nbGU9WC5zLmFuZ2xlKSxEdC5zdG9wcz1bXSxYLnMuc3RvcHMuZm9yRWFjaChmdW5jdGlvbihUbil7RHQuc3RvcHMucHVzaChsbihUbikpfSkpOkR0PXtwYXR0ZXJuVHlwZTpYLnMucGF0dGVyblR5cGUsZmdDb2xvcjpY''@;'; + put 'put ''LnMuZmdDb2xvcixiZ0NvbG9yOlgucy5iZ0NvbG9yfSx3ZS5GaWxscy5wdXNoKER0KX19aWYod2UuQm9yZGVycyl7Zm9yKDtNdDx3ZS5Cb3JkZXJzLmxlbmd0aDsrK010KXt2YXIgenQ9d2UuQm9yZGVyc1tNdF0sUG49InRvcCI7aWYoWC5zW1BuXSl7aWYoIXp0W1BuXXx8WC5zW1BuXS5zdHls''@;'; + put 'put ''ZSE9enRbUG5dLnN0eWxlfHxfMyhYLnNbUG5dLmNvbG9yLHp0W1BuXS5jb2xvcikpY29udGludWV9ZWxzZSBpZihudWxsIT16dFtQbl0pY29udGludWU7aWYoWC5zW1BuPSJib3R0b20iXSl7aWYoIXp0W1BuXXx8WC5zW1BuXS5zdHlsZSE9enRbUG5dLnN0eWxlfHxfMyhYLnNbUG5dLmNvbG9y''@;'; + put 'put ''LHp0W1BuXS5jb2xvcikpY29udGludWV9ZWxzZSBpZihudWxsIT16dFtQbl0pY29udGludWU7aWYoWC5zW1BuPSJsZWZ0Il0pe2lmKCF6dFtQbl18fFguc1tQbl0uc3R5bGUhPXp0W1BuXS5zdHlsZXx8XzMoWC5zW1BuXS5jb2xvcix6dFtQbl0uY29sb3IpKWNvbnRpbnVlfWVsc2UgaWYobnVs''@;'; + put 'put ''bCE9enRbUG5dKWNvbnRpbnVlO2lmKFguc1tQbj0icmlnaHQiXSl7aWYoIXp0W1BuXXx8WC5zW1BuXS5zdHlsZSE9enRbUG5dLnN0eWxlfHxfMyhYLnNbUG5dLmNvbG9yLHp0W1BuXS5jb2xvcikpY29udGludWV9ZWxzZSBpZihudWxsIT16dFtQbl0pY29udGludWU7YnJlYWt9TXQ9PXdlLkJv''@;'; + put 'put ''cmRlcnMubGVuZ3RoJiZ3ZS5Cb3JkZXJzLnB1c2goe3RvcDpYLnMudG9wJiZsbihYLnMudG9wKXx8dm9pZCAwLGJvdHRvbTpYLnMuYm90dG9tJiZsbihYLnMuYm90dG9tKXx8dm9pZCAwLGxlZnQ6WC5zLmxlZnQmJmxuKFgucy5sZWZ0KXx8dm9pZCAwLHJpZ2h0Olgucy5yaWdodCYmbG4oWC5z''@;'; + put 'put ''LnJpZ2h0KXx8dm9pZCAwfSl9aWYocmUmJlgucy5zdHlsZSYmIk5vcm1hbCIhPT1YLnMuc3R5bGUpe2Zvcih4dD0xO3h0PHJlLmxlbmd0aCYmcmVbeHRdLm5hbWUhPVgucy5zdHlsZTsrK3h0KTt4dD09cmUubGVuZ3RoJiZyZS5wdXNoKHtuYW1lOlgucy5zdHlsZSxudW1GbXRJZDp4ZSxmb250''@;'; + put 'put ''SWQ6amUsZmlsbElkOlllLGJvcmRlcklkOk10fSl9fWZvcihGZT0wO0ZlIT1aZTsrK0ZlKWlmKEhbRmVdLm51bUZtdElkPT14ZSYmSFtGZV0uZm9udElkPT1qZSYmSFtGZV0uZmlsbElkPT1ZZSYmSFtGZV0uYm9yZGVySWQ9PU10JiZIW0ZlXS54ZklkPT14dCl7aWYoWC5zJiZYLnMuYWxpZ25t''@;'; + put 'put ''ZW50KXtpZighSFtGZV0uYWxpZ25tZW50KWNvbnRpbnVlO2lmKFgucy5hbGlnbm1lbnQuaG9yaXpvbnRhbCE9SFtGZV0uYWxpZ25tZW50Lmhvcml6b250YWx8fFgucy5hbGlnbm1lbnQudmVydGljYWwhPUhbRmVdLmFsaWdubWVudC52ZXJ0aWNhbHx8WC5zLmFsaWdubWVudC53cmFwVGV4dCE9''@;'; + put 'put ''SFtGZV0uYWxpZ25tZW50LndyYXBUZXh0fHxYLnMuYWxpZ25tZW50LnNocmlua1RvRml0IT1IW0ZlXS5hbGlnbm1lbnQuc2hyaW5rVG9GaXR8fFgucy5hbGlnbm1lbnQudGV4dFJvdGF0aW9uIT1IW0ZlXS5hbGlnbm1lbnQudGV4dFJvdGF0aW9ufHxYLnMuYWxpZ25tZW50LmluZGVudCE9SFtG''@;'; + put 'put ''ZV0uYWxpZ25tZW50LmluZGVudCljb250aW51ZX1lbHNlIGlmKEhbRmVdLmFsaWdubWVudCljb250aW51ZTtpZihYLnMpe2lmKCEhWC5zLmhpZGRlbj09KCFIW0ZlXS5wcm90ZWN0aW9ufHwhSFtGZV0ucHJvdGVjdGlvbi5oaWRkZW4pfHwhIVgucy5lZGl0YWJsZT09KCFIW0ZlXS5wcm90ZWN0''@;'; + put 'put ''aW9ufHwhSFtGZV0ucHJvdGVjdGlvbi5lZGl0YWJsZSkpY29udGludWV9ZWxzZSBpZihIW0ZlXS5wcm90ZWN0aW9uKWNvbnRpbnVlO3JldHVybiBGZX19ZWxzZSBmb3IoRmU9MDtGZSE9WmU7KytGZSlpZihIW0ZlXS5udW1GbXRJZD09PXhlKXJldHVybiBGZTtyZXR1cm4gSFtaZV09e251bUZt''@;'; + put 'put ''dElkOnhlLGZvbnRJZDpqZSxmaWxsSWQ6WWUsYm9yZGVySWQ6TXQseGZJZDp4dCxhcHBseU51bWJlckZvcm1hdDoxfSxqZT4wJiYoSFtaZV0uYXBwbHlGb250PTEpLFllPjAmJihIW1plXS5hcHBseUZpbGw9MSksTXQ+MCYmKEhbWmVdLmFwcGx5Qm9yZGVyPTEpLCFyZSYmWC5zJiZYLnMuc3R5''@;'; + put 'put ''bGUmJiJOb3JtYWwiIT1YLnMuc3R5bGUmJihIW1plXS5zdHlsZT1YLnMuc3R5bGUpLFgucyYmWC5zLmFsaWdubWVudCYmKEhbWmVdLmFsaWdubWVudD17fSxbImhvcml6b250YWwiLCJ2ZXJ0aWNhbCIsIndyYXBUZXh0Iiwic2hyaW5rVG9GaXQiLCJpbmRlbnQiLCJ0ZXh0Um90YXRpb24iXS5m''@;'; + put 'put ''b3JFYWNoKGZ1bmN0aW9uKFRuKXtudWxsIT1YLnMuYWxpZ25tZW50W1RuXSYmKEhbWmVdLmFsaWdubWVudFtUbl09WC5zLmFsaWdubWVudFtUbl0pfSkpLFgucyYmWC5zLmhpZGRlbiYmKEhbWmVdLnByb3RlY3Rpb258fChIW1plXS5wcm90ZWN0aW9uPXt9KSxIW1plXS5wcm90ZWN0aW9uLmhp''@;'; + put 'put ''ZGRlbj0hMCksWC5zJiZYLnMuZWRpdGFibGUmJihIW1plXS5wcm90ZWN0aW9ufHwoSFtaZV0ucHJvdGVjdGlvbj17fSksSFtaZV0ucHJvdGVjdGlvbi5lZGl0YWJsZT0hMCksWmV9ZnVuY3Rpb24gZDUoSCxyZSxYLHdlLHhlLEZlLFplLGplKXsiZCI9PT1ILnQmJiJzdHJpbmciPT10eXBlb2Yg''@;'; + put 'put ''SC52JiYoSC52PWRuKEgudikpO3RyeXtGZS5jZWxsTkYmJihILno9Ri5fdGFibGVbcmVdKX1jYXRjaChNdCl7aWYoRmUuV1RGKXRocm93IE10fWlmKCghRmV8fCExIT09RmUuY2VsbFRleHQpJiYieiIhPUgudCl0cnl7aWYobnVsbD09Ri5fdGFibGVbcmVdJiZGLmxvYWQoRGVbcmVdfHwiR2Vu''@;'; + put 'put ''ZXJhbCIscmUpLCJlIj09PUgudClILnc9SC53fHxOMVtILnZdO2Vsc2UgaWYoMD09PXJlKWlmKCJuIj09PUgudClILnc9KDB8SC52KT09PUgudj9GLl9nZW5lcmFsX2ludChILnYpOkYuX2dlbmVyYWxfbnVtKEgudik7ZWxzZSBpZigiZCI9PT1ILnQpe3ZhciBZZT1mdChILnYpO0gudz0oMHxZ''@;'; + put 'put ''ZSk9PT1ZZT9GLl9nZW5lcmFsX2ludChZZSk6Ri5fZ2VuZXJhbF9udW0oWWUpfWVsc2V7aWYodm9pZCAwPT09SC52KXJldHVybiIiO0gudz1GLl9nZW5lcmFsKEgudixVYyl9ZWxzZSBILnc9Ri5mb3JtYXQocmUsImQiPT09SC50P2Z0KEgudik6SC52LFVjKX1jYXRjaChNdCl7aWYoRmUuV1RG''@;'; + put 'put ''KXRocm93IE10fWlmKEZlLmNlbGxTdHlsZXMmJmplKXtpZihILnM9e30sbnVsbCE9WCYmamUuRmlsbHMpdHJ5e2JuKEgucyxqZS5GaWxsc1tYXSl9Y2F0Y2goTXQpe2lmKEZlLldURil0aHJvdyBNdH1pZihudWxsIT13ZSYmamUuRm9udHMpdHJ5e2JuKEgucyxqZS5Gb250c1t3ZV0pfWNhdGNo''@;'; + put 'put ''KE10KXtpZihGZS5XVEYpdGhyb3cgTXR9aWYobnVsbCE9eGUmJmplLkJvcmRlcnMpdHJ5e2JuKEgucyxqZS5Cb3JkZXJzW3hlXSl9Y2F0Y2goTXQpe2lmKEZlLldURil0aHJvdyBNdH19fWZ1bmN0aW9uIGlBKEgscmUsWCl7aWYoSCYmSFsiIXJlZiJdKXt2YXIgd2U9Rm8oSFsiIXJlZiJdKTtp''@;'; + put 'put ''Zih3ZS5lLmM8d2Uucy5jfHx3ZS5lLnI8d2Uucy5yKXRocm93IG5ldyBFcnJvcigiQmFkIHJhbmdlICgiK1grIik6ICIrSFsiIXJlZiJdKX19dmFyIGhfPS88KD86XHc6KT9tZXJnZUNlbGwgcmVmPSJbQS1aMC05Ol0rIlxzKltcL10/Pi9nLGRfPS88KD86XHcrOik/c2hlZXREYXRhW14+XSo+''@;'; + put 'put ''KFtcc1xTXSopPFwvKD86XHcrOik/c2hlZXREYXRhPi8sdHg9LzwoPzpcdzopP2h5cGVybGluayBbXj5dKj4vZ20scF89LyIoXHcqOlx3KikiLyxCQj0vPCg/Olx3Oik/Y29sXGJbXj5dKltcL10/Pi9nLGdHPS88KD86XHc6KT9jb250cm9sXGJbXj5dKltcL10/Pi9nLG9BPS88KD86XHc6KT9h''@;'; + put 'put ''dXRvRmlsdGVyW14+XSooW1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9hdXRvRmlsdGVyKT4vZyxnXz0vPCg/Olx3Oik/cGFnZU1hcmdpbnNbXj5dKlwvPi9nLG1fPS88KD86XHc6KT9zaGVldFByXGIoPzpbXj5hLXpdW14+XSopP1wvPi8sYUE9LzwoPzpcdzopP3NoZWV0UHJvdGVjdGlvblxi''@;'; + put 'put ''KD86W14+YS16XVtePl0qKT9cLz4vLEltPS88KD86XHc6KT9zaGVldFByW14+XSooPzpbXC9dfD4oW1xzXFNdKik8XC8oPzpcdzopP3NoZWV0UHIpPi8sUEI9LzwoPzpcdzopP3NoZWV0Vmlld3NbXj5dKig/OltcL118PihbXHNcU10qKTxcLyg/Olx3Oik/c2hlZXRWaWV3cyk+LyxlYz0vPCg/''@;'; + put 'put ''Olx3KzopP2RhdGFWYWxpZGF0aW9uc1tePl0qKD86W1wvXXw+KFtcc1xTXSo/KTxcLyg/Olx3KzopP2RhdGFWYWxpZGF0aW9ucyk+LyxEbT0vPCg/Olx3KzopP2NvbmRpdGlvbmFsRm9ybWF0dGluZ1xiW14+XSooPzpbXC9dfD4oW1xzXFNdKj8pPFwvKD86XHcrOik/Y29uZGl0aW9uYWxGb3Jt''@;'; + put 'put ''YXR0aW5nKT4vZyxMbT0vPCg/Olx3Oik/c2hlZXRGb3JtYXRQcltePl0qXC8+LyxtRz0vPCg/Olx3KzopP3RhYmxlUGFydHMuKj8+KFtcc1xTXSo/KTxcLyg/Olx3KzopP3RhYmxlUGFydHM+LyxGQj0vPCg/Olx3Oik/cGFnZVNldHVwW14+XSpcLz4vLHZfPS88KD86XHc6KT9yb3dCcmVha3Nb''@;'; + put 'put ''Xj5dKig/OltcL118PihbXHNcU10qKTxcLyg/Olx3Oik/cm93QnJlYWtzKT4vLGxBPS88KD86XHc6KT9jb2xCcmVha3NbXj5dKig/OltcL118PihbXHNcU10qKTxcLyg/Olx3Oik/Y29sQnJlYWtzKT4vLHNBPS88KD86XHc6KT9oZWFkZXJGb290ZXJbXj5dKig/OltcL118PihbXHNcU10qKTxc''@;'; + put 'put ''Lyg/Olx3Oik/aGVhZGVyRm9vdGVyKT4vLG54PS88KD86XHc6KT9wcmludE9wdGlvbnNcYltePlwvXSpcLz4vO3ZhciBfMT0vPCg/Olx3Oik/dGFibGVQYXJ0XGJbXlwvPl0qW1wvXT8+L2c7ZnVuY3Rpb24gT20oSCxyZSxYLHdlKXt2YXIgeGU9ZW4oSCk7WC5TaGVldHNbd2VdfHwoWC5TaGVl''@;'; + put 'put ''dHNbd2VdPXt9KSx4ZS5jb2RlTmFtZSYmKFguU2hlZXRzW3dlXS5Db2RlTmFtZT14ZS5jb2RlTmFtZSl9dmFyIHlfPS88KD86XHc6KT90YWJDb2xvcltePl0qW1wvXT8+LyxyeD0vPCg/Olx3Oik/cGFnZVNldFVwUHJbXj5dKltcL10/Pi8sY0E9LzwoPzpcdzopP291dGxpbmVQcltePl0qW1wv''@;'; + put 'put ''XT8+Lyx3Xz17ZGlzcGxheWVkOiJhc0Rpc3BsYXllZCIsZW5kOiJhdEVuZCIsbm9uZToibm9uZSJ9LGJfPXR0KHdfKSxfMj17ZGlzcGxheWVkOiJkaXNwbGF5ZWQiLG5vbmU6ImJsYW5rIixkYXNoOiJkYXNoIiwibi9hIjoiTkEifSxmQT10dChfMiksaEE9LzwoPzpcdzopP2Jya1tePl0qXC8+''@;'; + put 'put ''L2csa189WyJvYmplY3RzIiwic2NlbmFyaW9zIiwic2VsZWN0TG9ja2VkQ2VsbHMiLCJzZWxlY3RVbmxvY2tlZENlbGxzIl0scEE9WyJmb3JtYXRDb2x1bW5zIiwiZm9ybWF0Um93cyIsImZvcm1hdENlbGxzIiwiaW5zZXJ0Q29sdW1ucyIsImluc2VydFJvd3MiLCJpbnNlcnRIeXBlcmxpbmtz''@;'; + put 'put ''IiwiZGVsZXRlQ29sdW1ucyIsImRlbGV0ZVJvd3MiLCJzb3J0IiwiYXV0b0ZpbHRlciIsInBpdm90VGFibGVzIl07ZnVuY3Rpb24gUG0oSCl7dmFyIHJlPXt9O3JldHVyblsibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIiwiaGVhZGVyIiwiZm9vdGVyIl0uZm9yRWFjaChmdW5jdGlvbihY''@;'; + put 'put ''KXtIW1hdJiYocmVbWF09cGFyc2VGbG9hdChIW1hdKSl9KSxyZX12YXIgUmg9e0N1c3RvbToiY3VzdG9tIixEYXRlOiJkYXRlIixUaW1lOiJ0aW1lIixMZW5ndGg6InRleHRMZW5ndGgiLExpc3Q6Imxpc3QiLERlY2ltYWw6ImRlY2ltYWwiLFdob2xlOiJ3aG9sZSIsQW55OiJub25lIn0scDU9''@;'; + put 'put ''dHQoUmgpLEc0PXtJTjoiYmV0d2VlbiIsT1Q6Im5vdEJldHdlZW4iLEVROiJlcXVhbCIsTkU6Im5vdEVxdWFsIixHVDoiZ3JlYXRlclRoYW4iLExUOiJsZXNzVGhhbiIsR0U6ImdyZWF0ZXJUaGFuT3JFcXVhbCIsTEU6Imxlc3NUaGFuT3JFcXVhbCJ9LE02PXR0KEc0KTtmdW5jdGlvbiB2QShI''@;'; + put 'put ''LHJlLFgpe3ZhciB3ZT1bXSx4ZT17fSxGZT0iIixaZT0hMSxqZT0wLFllPTA7cmV0dXJuIEgucmVwbGFjZShHdCxmdW5jdGlvbihNdCx4dCl7dmFyIFJ0PWVuKE10KTtzd2l0Y2goSW4oUnRbMF0pKXtjYXNlIjxkYXRhVmFsaWRhdGlvbnMiOmNhc2UiPGRhdGFWYWxpZGF0aW9ucz4iOmNhc2Ui''@;'; + put 'put ''PC9kYXRhVmFsaWRhdGlvbnM+IjpicmVhaztjYXNlIjxkYXRhVmFsaWRhdGlvbiI6eGU9e3Q6cDVbUnQudHlwZXx8Im5vbmUiXSxyZWY6KEZlPVJ0LnNxcmVmKT9GZS5pbmRleE9mKCIgIik+LTE/RmU6Rm8oRmUpOiIifSxSdC5vcGVyYXRvciYmKHhlLm9wPU02W1J0Lm9wZXJhdG9yXSkseGUu''@;'; + put 'put ''Ymxhbms9ISFSdC5hbGxvd0JsYW5rJiZEaShSdC5hbGxvd0JsYW5rKSwoIVJ0LnNob3dJbnB1dE1lc3NhZ2V8fCFEaShSdC5zaG93SW5wdXRNZXNzYWdlKSkmJih4ZS5pbnB1dD0hMSksUnQucHJvbXB0VGl0bGUmJigoeGUuaW5wdXR8fCh4ZS5pbnB1dD17fSkpLnRpdGxlPWdyKFJ0LnByb21w''@;'; + put 'put ''dFRpdGxlKSksUnQucHJvbXB0JiYoKHhlLmlucHV0fHwoeGUuaW5wdXQ9e30pKS5tZXNzYWdlPWdyKFJ0LnByb21wdCkpLCghUnQuc2hvd0Vycm9yTWVzc2FnZXx8IURpKFJ0LnNob3dFcnJvck1lc3NhZ2UpKSYmKHhlLmVycm9yPSExKSxSdC5lcnJvclRpdGxlJiYoKHhlLmVycm9yfHwoeGUu''@;'; + put 'put ''ZXJyb3I9e30pKS50aXRsZT1ncihSdC5lcnJvclRpdGxlKSksUnQuZXJyb3ImJigoeGUuZXJyb3J8fCh4ZS5lcnJvcj17fSkpLm1lc3NhZ2U9Z3IoUnQuZXJyb3IpKSx4ZS5lcnJvcj94ZS5lcnJvci5zdHlsZT1SdC5lcnJvclN0eWxlfHwic3RvcCI6UnQuZXJyb3JTdHlsZSYmKHhlLmVycm9y''@;'; + put 'put ''PXtzdHlsZTpSdC5lcnJvclN0eWxlfSkseGUudCYmd2UucHVzaCh4ZSk7YnJlYWs7Y2FzZSI8ZGF0YVZhbGlkYXRpb24vPiI6Y2FzZSI8L2RhdGFWYWxpZGF0aW9uPiI6YnJlYWs7Y2FzZSI8c3FyZWY+IjpZZT14dCtNdC5sZW5ndGg7YnJlYWs7Y2FzZSI8L3NxcmVmPiI6RmU9SC5zbGljZShZ''@;'; + put 'put ''ZSx4dCkseGUucmVmPUZlP0ZlLmluZGV4T2YoIiAiKT4tMT9GZTpGbyhGZSk6IiI7YnJlYWs7Y2FzZSI8Zj4iOmNhc2UiPGZvcm11bGExIjpjYXNlIjxmb3JtdWxhMT4iOmNhc2UiPGZvcm11bGEyIjpjYXNlIjxmb3JtdWxhMj4iOmplPXh0K010Lmxlbmd0aDticmVhaztjYXNlIjwvZm9ybXVs''@;'; + put 'put ''YTE+IjpjYXNlIjwvZm9ybXVsYTI+IjppZihYKWJyZWFrO2Nhc2UiPC9mPiI6dmFyIFl0PWdyKFcwKEguc2xpY2UoamUseHQpKSk7c3dpdGNoKHhlLnQpe2Nhc2UiTGlzdCI6aWYoeGUubHx8eGUuZilicmVhaztpZigzND09WXQuY2hhckNvZGVBdCgwKSl7eGUubD1ZdC5zbGljZSgxLC0xKS5z''@;'; + put 'put ''cGxpdCgiLCIpO2JyZWFrfWNhc2UiQ3VzdG9tIjpudWxsPT14ZS5mJiYoeGUuZj1ZdCk7YnJlYWs7Y2FzZSJEYXRlIjpjYXNlIkRlY2ltYWwiOmNhc2UiTGVuZ3RoIjpjYXNlIlRpbWUiOmNhc2UiV2hvbGUiOnhlLm9wfHwoeGUub3A9IklOIiksbnVsbD09eGUudj94ZS52PWlzTmFOKCtZdCk/''@;'; + put 'put ''WXQ6K1l0Oih4ZS5taW49eGUudix4ZS5tYXg9aXNOYU4oK1l0KT9ZdDorWXQsZGVsZXRlIHhlLnYpfWJyZWFrO2Nhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPGV4dCI6WmU9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOlplPSExO2JyZWFrO2Rl''@;'; + put 'put ''ZmF1bHQ6aWYocmUmJnJlLldURiYmIVplKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrUnRbMF0rIiBpbiBkYXRhIHZhbGlkYXRpb24iKX1yZXR1cm4gTXR9KSx3ZX12YXIgQUE9e0lOOiJjb250YWluc1RleHQiLE9UOiJub3RDb250YWluc1RleHQiLFNUOiJiZWdpbnNXaXRoIixO''@;'; + put 'put ''RDoiZW5kc1dpdGgifSxJXz10dChBQSkseUE9e0xNOiJsYXN0TW9udGgiLExTOiJsYXN0N0RheXMiLExXOiJsYXN0V2VlayIsTk06Im5leHRNb250aCIsTlc6Im5leHRXZWVrIixUTToidGhpc01vbnRoIixUVzoidGhpc1dlZWsiLFREOiJ0b2RheSIsVE86InRvbW9ycm93IixZUzoieWVzdGVy''@;'; + put 'put ''ZGF5In0sRm09dHQoeUEpO2Z1bmN0aW9uIEhtKEgpe3ZhciByZT17fTtyZXR1cm4gbnVsbCE9SC52YWwmJihpc05hTigrSC52YWwpP3JlLmY9SC52YWw6cmUudj0rSC52YWwpLHJlLnQ9SC50eXBlLHJlfWZ1bmN0aW9uIFJkKEgpe3JldHVybiBiaSgiY2Z2byIsbnVsbCx7dHlwZTpILnQsdmFs''@;'; + put 'put ''Om51bGwhPUgudj9ILnY6UnIoSC5mKX0pfWZ1bmN0aW9uIERfKEgscmUsWCx3ZSl7dmFyIHhlPUhtKEgpO3JldHVybiB4ZS5jb2xvcj1FMyhyZSxYLHdlKSx4ZX1mdW5jdGlvbiBzeChILHJlLFgsd2UseGUpe3ZhciBGZT0oSC5tYXRjaCgvc3FyZWY9IihbXHc6JCBdKikiLyl8fFtdKVsxXTty''@;'; + put 'put ''ZXR1cm4gZnVuY3Rpb24gQUcoSCxyZSxYLHdlLHhlLEZlKXt2YXIgWmU9ITEsamU9W10sWWU9e2Y6W119LE10PTAseHQ9MCxSdD17Y2Z2b3M6W10sY29sb3JzOltdfSxZdD17fSxubj0tMSxDbj0wLER0PSIiO3JldHVybiBILnJlcGxhY2UoR3QsZnVuY3Rpb24oenQsUG4pe3ZhciBUbj1lbih6''@;'; + put 'put ''dCk7c3dpdGNoKEluKFRuWzBdKSl7Y2FzZSI8Y29uZGl0aW9uYWxGb3JtYXR0aW5nIjpjYXNlIjwvY29uZGl0aW9uYWxGb3JtYXR0aW5nPiI6YnJlYWs7Y2FzZSI8Y2ZSdWxlIjpjYXNlIjxjZlJ1bGU+IjppZih4dD1QbixZdD1UbixZZT17cmVmOnJlLGY6W119LCF6dC5tYXRjaCgvXC8+Lykp''@;'; + put 'put ''YnJlYWs7Y2FzZSI8L2NmUnVsZT4iOnN3aXRjaChZdC5keGZJZCYmeGUmJnhlLkRYRiYmKFllLnM9eGUuRFhGWytZdC5keGZJZF0pLFl0LnR5cGUpe2Nhc2UiZHVwbGljYXRlVmFsdWVzIjpZZS50PSJkdXAiO2JyZWFrO2Nhc2UidW5pcXVlVmFsdWVzIjpZZS50PSJ1bmlxdWUiO2JyZWFrO2Nh''@;'; + put 'put ''c2UiY29udGFpbnNCbGFua3MiOlllLnQ9ImJsYW5rIixZZS52PSEwO2JyZWFrO2Nhc2Uibm90Q29udGFpbnNCbGFua3MiOlllLnQ9ImJsYW5rIixZZS52PSExO2JyZWFrO2Nhc2UiY29udGFpbnNFcnJvcnMiOlllLnQ9ImVycm9yIixZZS52PSEwO2JyZWFrO2Nhc2Uibm90Q29udGFpbnNFcnJv''@;'; + put 'put ''cnMiOlllLnQ9ImVycm9yIixZZS52PSExO2JyZWFrO2Nhc2UiY2VsbElzIjpzd2l0Y2goWXQub3BlcmF0b3Ipe2Nhc2UiY29udGFpbnNUZXh0IjpjYXNlIm5vdENvbnRhaW5zIjpjYXNlImJlZ2luc1dpdGgiOmNhc2UiZW5kc1dpdGgiOmlmKFllLnQ9InRleHQiLFllLm9wPUlfW1l0Lm9wZXJh''@;'; + put 'put ''dG9yXSxudWxsPT1ZdC50ZXh0KXRocm93IG5ldyBFcnJvcigiQ0YgVGV4dCBSdWxlICIrWWUub3ArIiBtaXNzaW5nIHRleHQiKTtZZS52PVl0LnRleHQsWWUuZj1ZZS5mWzBdLG51bGw9PVllLmYmJmRlbGV0ZSBZZS5mO2JyZWFrO2RlZmF1bHQ6WWUudD0idmFsIixZZS5vcD1NNltZdC5vcGVy''@;'; + put 'put ''YXRvcl0sMT09WWUuZi5sZW5ndGg/aXNOYU4oK1llLmZbMF0pP1llLmY9WWUuZlswXTooWWUudj0rWWUuZlswXSxkZWxldGUgWWUuZik6KFllLm1pbj1pc05hTigrWWUuZlswXSk/WWUuZlswXTorWWUuZlswXSxZZS5tYXg9aXNOYU4oK1llLmZbMV0pP1llLmZbMV06K1llLmZbMV0sZGVsZXRl''@;'; + put 'put ''IFllLmYpfWJyZWFrO2Nhc2UiZXhwcmVzc2lvbiI6WWUudD0iZm9ybXVsYSIsWWUuZj1ZZS5mWzBdO2JyZWFrO2Nhc2UiY29udGFpbnNUZXh0IjpjYXNlIm5vdENvbnRhaW5zVGV4dCI6Y2FzZSJiZWdpbnNXaXRoIjpjYXNlImVuZHNXaXRoIjppZihZZS50PSJ0ZXh0IixZZS5vcD1JX1tZdC50''@;'; + put 'put ''eXBlXSxudWxsPT1ZdC50ZXh0JiZZZS5mLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcigiQ0YgVGV4dCBSdWxlICIrWWUub3ArIiBtaXNzaW5nIHRleHQiKTtZZS52PW51bGwhPVl0LnRleHQ/WXQudGV4dDpZZS5mWzFdLm1hdGNoKC8iLioiLyk/WWUuZlsxXS5zbGljZSgxLC0xKTpZZS5mWzFd''@;'; + put 'put ''LFllLmY9WWUuZlswXSxudWxsPT1ZZS5mJiZkZWxldGUgWWUuZjticmVhaztjYXNlImNvbG9yU2NhbGUiOmlmKFllLnQ9InNjYWxlIiwhWWUuY29sb3JTY2FsZSl0aHJvdyBuZXcgRXJyb3IoIm1pc3NpbmcgY29sb3JTY2FsZSIpO1llLmNtaW49RF8oKFJ0PVllLmNvbG9yU2NhbGUpLmNmdm9z''@;'; + put 'put ''WzBdLFJ0LmNvbG9yc1swXSx4ZSx3ZSksMz09UnQuY2Z2b3MubGVuZ3RoJiYoWWUuY21pZD1EXyhSdC5jZnZvc1sxXSxSdC5jb2xvcnNbMV0seGUsd2UpKSxZZS5jbWF4PURfKFJ0LmNmdm9zW1J0LmNmdm9zLmxlbmd0aC0xXSxSdC5jb2xvcnNbUnQuY2Z2b3MubGVuZ3RoLTFdLHhlLHdlKTti''@;'; + put 'put ''cmVhaztjYXNlImRhdGFCYXIiOmlmKFllLnQ9ImJhciIsIVllLmRhdGFCYXIpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nIGRhdGFCYXIiKTsoUnQ9WWUuZGF0YUJhcikuY29sb3JzWzBdJiYoWWUuY29sb3I9RTMoUnQuY29sb3JzWzBdLHhlLHdlKSksWWUuY21pbj1IbShSdC5jZnZvc1swXSks''@;'; + put 'put ''WWUuY21heD1IbShSdC5jZnZvc1sxXSk7YnJlYWs7Y2FzZSJpY29uU2V0IjppZihZZS50PSJpY29uIiwhWWUuaWNvblNldCl0aHJvdyBuZXcgRXJyb3IoIm1pc3NpbmcgaWNvblNldCIpO1llLnRocmVzaD0oUnQ9WWUuaWNvblNldCkuY2Z2b3MubWFwKGZ1bmN0aW9uKE9uKXtyZXR1cm4gSG0o''@;'; + put 'put ''T24pfSksWWUudj1SdC50YWcmJlJ0LnRhZy5pY29uU2V0fHwiM1RyYWZmaWNMaWdodHMxIixZZS5yZXY9RGkoUnQudGFnLnJldmVyc2V8fCJmYWxzZSIpLFllLnBjdD1EaShSdC50YWcucGVyY2VudHx8InRydWUiKSxZZS5oaWRkZW49IURpKFJ0LnRhZy5zaG93VmFsdWV8fCJ0cnVlIik7YnJl''@;'; + put 'put ''YWs7Y2FzZSJ0aW1lUGVyaW9kIjpZZS50PSJkYXRlIixZZS5vcD1GbVtZdC50aW1lUGVyaW9kXTticmVhaztjYXNlImFib3ZlQXZlcmFnZSI6WWUudD0iYXZnIixZZS5vcD0iMCI9PVl0LmFib3ZlQXZlcmFnZT8iTCI6IkciLFllLm9wKz1ZdC5zdGREZXY/WXQuc3RkRGV2OkRpKFl0LmVxdWFs''@;'; + put 'put ''QXZlcmFnZXx8IjAiKT8iRSI6IlQiO2JyZWFrO2Nhc2UidG9wMTAiOlllLnQ9InJhbmsiLFllLm9wPShEaShZdC5ib3R0b218fCIwIik/IkIiOiJUIikrKERpKFl0LnBlcmNlbnR8fCIwIik/IlAiOiJWIiksWWUudj0rWXQucmFuazticmVhaztkZWZhdWx0OnRocm93IlVuc3VwcG9ydGVkIENG''@;'; + put 'put ''IFR5cGUgIitZdC50eXBlfWlmKGRlbGV0ZSBZZS5jb2xvclNjYWxlLGRlbGV0ZSBZZS5kYXRhQmFyLGRlbGV0ZSBZZS5pY29uU2V0LCFZZS50KXRocm93IGNvbnNvbGUubG9nKEguc2xpY2UoeHQsUG4renQubGVuZ3RoKSksImJhZCBDRiBydWxlIjtudWxsIT1ZZS5mJiYhWWUuZi5sZW5ndGgm''@;'; + put 'put ''JmRlbGV0ZSBZZS5mLFllLmRlbHx8amUucHVzaChZZSk7YnJlYWs7Y2FzZSI8Zm9ybXVsYSI6Y2FzZSI8Zm9ybXVsYT4iOk10PVBuK3p0Lmxlbmd0aDticmVhaztjYXNlIjwvZm9ybXVsYT4iOlllLmYucHVzaChncihILnNsaWNlKE10LFBuKSkpO2JyZWFrO2Nhc2UiPGYiOmNhc2UiPGY+IjpN''@;'; + put 'put ''dD1Qbit6dC5sZW5ndGg7YnJlYWs7Y2FzZSI8L2Y+IjpZZS5mLnB1c2goZ3IoSC5zbGljZShNdCxQbikpKTticmVhaztjYXNlIjxzcXJlZj4iOkNuPVBuK3p0Lmxlbmd0aDticmVhaztjYXNlIjwvc3FyZWY+IjpEdD1ILnNsaWNlKENuLFBuKSxyZT1EdD9EdC5pbmRleE9mKCIgIik+LTE/RHQ6''@;'; + put 'put ''Rm8oRHQpOiIiLFllLnJlZj1yZSxqZS5mb3JFYWNoKGZ1bmN0aW9uKE9uKXtPbi5yZWY9cmV9KTticmVhaztjYXNlIjxjb2xvclNjYWxlIjpjYXNlIjxjb2xvclNjYWxlPiI6Y2FzZSI8ZGF0YUJhciI6Y2FzZSI8ZGF0YUJhcj4iOmNhc2UiPGljb25TZXQiOmNhc2UiPGljb25TZXQ+IjpSdD17''@;'; + put 'put ''Y2Z2b3M6W10sY29sb3JzOltdLHRhZzpUbn0sTXQ9UG4renQubGVuZ3RoO2JyZWFrO2Nhc2UiPC9jb2xvclNjYWxlPiI6WWUuY29sb3JTY2FsZT1SdDticmVhaztjYXNlIjwvZGF0YUJhcj4iOlllLmRhdGFCYXI9UnQ7YnJlYWs7Y2FzZSI8L2ljb25TZXQ+IjpZZS5pY29uU2V0PVJ0O2JyZWFr''@;'; + put 'put ''O2Nhc2UiPGNmdm8iOmNhc2UiPGNmdm8vPiI6UnQuY2Z2b3MucHVzaChUbik7YnJlYWs7Y2FzZSI8L2Nmdm8+IjpicmVhaztjYXNlIjxjb2xvciI6UnQuY29sb3JzLnB1c2goVG4pO2JyZWFrO2Nhc2UiPC9jb2xvcj4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExz''@;'; + put 'put ''dD4iOmJyZWFrO2Nhc2UiPGV4dCI6WmU9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOlplPSExO2JyZWFrO2Nhc2UiPG5lZ2F0aXZlRmlsbENvbG9yIjpjYXNlIjxheGlzQ29sb3IiOmNhc2UiPGJvcmRlckNvbG9yIjpjYXNlIjxuZWdhdGl2ZUJvcmRlckNvbG9yIjpjYXNlIjxjZkljb24iOlllLmRl''@;'; + put 'put ''bD0hMDticmVhaztjYXNlIjxkeGY+IjpaZT0hMCxubj1QbjticmVhaztjYXNlIjwvZHhmPiI6WmU9ITEsWWUucz1wNihILnNsaWNlKG5uLFBuK3p0Lmxlbmd0aCkseGUsd2UsWCk7YnJlYWs7ZGVmYXVsdDppZihYJiZYLldURil7aWYoRmUpYnJlYWs7aWYoIVplKXRocm93IG5ldyBFcnJvcigi''@;'; + put 'put ''dW5yZWNvZ25pemVkICIrVG5bMF0rIiBpbiBjb25kZm10Iil9fXJldHVybiB6dH0pLGplfShILEZlLHJlLFgsd2UseGUpfXZhciBjeD0vPCg/Olx3Oik/c2hlZXRWaWV3KD86W14+YS16XVtePl0qKT9cLz8+L2c7ZnVuY3Rpb24gRG8oSCxyZSl7dmFyIFg9MCx3ZT0wLHhlPTAsRmU9MDtpZigh''@;'; + put 'put ''cmV8fCFyZS5DZWxsWGYpcmV0dXJuIG51bGw7dmFyIFplPXJlLkNlbGxYZltIXTtudWxsIT1aZSYmKG51bGwhPVplLm51bUZtdElkJiYoWD1aZS5udW1GbXRJZCksbnVsbCE9WmUuZmlsbElkJiYod2U9WmUuZmlsbElkKSxudWxsIT1aZS5mb250SWQmJih4ZT1aZS5mb250SWQpLG51bGwhPVpl''@;'; + put 'put ''LmJvcmRlcklkJiYoRmU9WmUuYm9yZGVySWQpKTt2YXIgamU9e3Q6InoifTt0cnl7ZDUoamUsWCx3ZSx4ZSxGZSx7V1RGOjEsY2VsbFN0eWxlczohMH0sMCxyZSl9Y2F0Y2goWWUpe31yZXR1cm4gamUuc31mdW5jdGlvbiBqQihILHJlLFgsd2Upe2lmKHZvaWQgMD09PUgudiYmdm9pZCAwPT09''@;'; + put 'put ''SC5mJiZudWxsPT1ILnMmJiFILmN8fCJ6Ij09PUgudCYmIUguYyYmIXdlLnNoZWV0U3R1YnMpcmV0dXJuIiI7dmFyIHhlPSIiLEZlPUgudCxaZT1ILnY7aWYoInoiIT09SC50KXN3aXRjaChILnQpe2Nhc2UiYiI6eGU9SC52PyIxIjoiMCI7YnJlYWs7Y2FzZSJuIjp4ZT0iIitILnY7YnJlYWs7''@;'; + put 'put ''Y2FzZSJlIjp4ZT1OMVtILnZdO2JyZWFrO2Nhc2UiZCI6d2UmJndlLmNlbGxEYXRlcz94ZT1kbihILnYsLTEpLnRvSVNPU3RyaW5nKCk6KChIPWxuKEgpKS50PSJuIix4ZT0iIisoSC52PWZ0KGRuKEgudikpKSksdm9pZCAwPT09SC56JiYoSC56PUYuX3RhYmxlWzE0XSk7YnJlYWs7ZGVmYXVs''@;'; + put 'put ''dDp4ZT1ILnZ9dmFyIGplPSJ6Ij09SC50PyIiOnNhKCJ2IixScih4ZSkpLFllPXtyOnJlfSxNdD13ZT9ZMSh3ZS5jZWxsWGZzLHdlLmNlbGxTdHlsZVhmcyxILHdlKTowO3N3aXRjaCgwIT09TXQmJihZZS5zPU10KSxILnQpe2Nhc2UibiI6Y2FzZSJ6IjpicmVhaztjYXNlImQiOlllLnQ9ImQi''@;'; + put 'put ''O2JyZWFrO2Nhc2UiYiI6WWUudD0iYiI7YnJlYWs7Y2FzZSJlIjpZZS50PSJlIjticmVhaztkZWZhdWx0OmlmKG51bGw9PUgudil7ZGVsZXRlIEgudDticmVha31pZih3ZSYmd2UuYm9va1NTVCl7amU9c2EoInYiLCIiK0M2KHdlLlN0cmluZ3MsSC52LEguUj9ILnI9dTYoSC5SKTpudWxsLHdl''@;'; + put 'put ''LnJldlN0cmluZ3MpKSxZZS50PSJzIjticmVha31BcnJheS5pc0FycmF5KEguUik/KGplPSI8aXM+Iit1NihILlIpKyI8L2lzPiIsWWUudD0iaW5saW5lU3RyIik6WWUudD0ic3RyIn1pZihILnQhPUZlJiYoSC50PUZlLEgudj1aZSksSC5mKXt2YXIgeHQ9SC5GJiZILkYuc2xpY2UoMCxyZS5s''@;'; + put 'put ''ZW5ndGgpPT1yZT97dDoiYXJyYXkiLHJlZjpILkZ9Om51bGw7amU9YmkoImYiLFJyKEguZikseHQpKyhudWxsIT1ILnY/amU6IiIpfXJldHVybiBILmwmJlhbIiFsaW5rcyJdLnB1c2goW3JlLEgubF0pLEguYyYmWFsiIWNvbW1lbnRzIl0ucHVzaChbcmUsSC5jXSksYmkoImMiLGplLFllKX12''@;'; + put 'put ''YXIgTF89ZnVuY3Rpb24oKXt2YXIgSD0vPCg/Olx3KzopP2NbIFwvPl0vLHJlPS88XC8oPzpcdys6KT9yb3c+LyxYPS9yPVsiJ10oW14iJ10qKVsiJ10vLHdlPS88KD86XHcrOik/aXM+KFtcU1xzXSo/KTxcLyg/Olx3KzopP2lzPi8seGU9L3JlZj1bIiddKFteIiddKilbIiddLyxGZT1RaSgi''@;'; + put 'put ''diIpLFplPVFpKCJmIik7cmV0dXJuIGZ1bmN0aW9uKFllLE10LHh0LFJ0LFl0LG5uLENuKXtmb3IodmFyIHlyLGFyLHFyLG9pLEEwLER0PTAsenQ9IiIsUG49W10sVG49W10sT249MCxXbj0wLE1yPTAsYWk9IiIsR3I9MCx6cj0wLGNyPTAsZGk9MCx2MD0wLFVpPTAsdG89QXJyYXkuaXNBcnJh''@;'; + put 'put ''eShDbi5DZWxsWGYpLHdpPVtdLFlyPVtdLEVpPUFycmF5LmlzQXJyYXkoeHQpLGhpPVtdLE5yPXt9LGtpPSExLE4wPVllLnNwbGl0KHJlKSx0MD0hIVJ0LnNoZWV0U3R1YnMsaW89ISFSdC5jZWxsSFRNTCxvYT0hKCExPT09UnQuY2VsbFRleHQmJiFSdC5jZWxsTkYmJiFSdC5jZWxsU3R5bGVz''@;'; + put 'put ''KSwkMD0wLE5hPU4wLmxlbmd0aDskMCE9TmE7KyskMCl7dmFyIGpvPSh6dD1OMFskMF0udHJpbSgpKS5sZW5ndGg7aWYoMCE9PWpvKXt2YXIgd2E9MDtlOmZvcihEdD0wO0R0PGpvOysrRHQpc3dpdGNoKHp0W0R0XSl7Y2FzZSI+IjppZigiLyIhPXp0W0R0LTFdKXsrK0R0O2JyZWFrIGV9UnQu''@;'; + put 'put ''Y2VsbFN0eWxlcyYmbnVsbCE9KGFyPWVuKHp0LnNsaWNlKHdhLER0KSwhMCkpLnImJnBhcnNlSW50KGFyLnIsMTApJiYoR3I9cGFyc2VJbnQoYXIuciwxMCksTnI9e30sa2k9ITEsYXIuaHQmJihraT0hMCxOci5ocHQ9cGFyc2VGbG9hdChhci5odCksTnIuaHB4PUFmKE5yLmhwdCkpLGFyLmR5''@;'; + put 'put ''RGVzY2VudCYmKGtpPSEwLE5yLmR5RGVzY2VudD1hci5keURlc2NlbnQpLCIxIj09YXIuaGlkZGVuJiYoa2k9ITAsTnIuaGlkZGVuPSEwKSxudWxsIT1hci5vdXRsaW5lTGV2ZWwmJihraT0hMCxOci5sZXZlbD0rYXIub3V0bGluZUxldmVsKSxhci5zJiZDbiYmQ24uQ2VsbFhmJiYoa2k9ITAs''@;'; + put 'put ''TnIucz1Ebyhhci5zLENuKSksa2kmJihoaVtHci0xXT1OcikpO2JyZWFrO2Nhc2UiPCI6d2E9RHR9aWYod2E+PUR0KWJyZWFrO2lmKEdyPW51bGwhPShhcj1lbih6dC5zbGljZSh3YSxEdCksITApKS5yP3BhcnNlSW50KGFyLnIsMTApOkdyKzEsenI9LTEsIShSdC5zaGVldFJvd3MmJlJ0LnNo''@;'; + put 'put ''ZWV0Um93czxHcikpe1J0Lm5vZGltfHwoWXQucy5yPkdyLTEmJihZdC5zLnI9R3ItMSksWXQuZS5yPEdyLTEmJihZdC5lLnI9R3ItMSkpO3ZhciBhbz17dDoicm93Iixyb3c6W10sUjpHci0xLGlkeDpNdH07UnQuY2VsbFN0eWxlcyYmKE5yPXt9LGtpPSExLGFyLmh0JiYoa2k9ITAsTnIuaHB0''@;'; + put 'put ''PXBhcnNlRmxvYXQoYXIuaHQpLE5yLmhweD1BZihOci5ocHQpKSxhci5keURlc2NlbnQmJihraT0hMCxOci5keURlc2NlbnQ9YXIuZHlEZXNjZW50KSwiMSI9PWFyLmhpZGRlbiYmKGtpPSEwLE5yLmhpZGRlbj0hMCksbnVsbCE9YXIub3V0bGluZUxldmVsJiYoa2k9ITAsTnIubGV2ZWw9K2Fy''@;'; + put 'put ''Lm91dGxpbmVMZXZlbCksYXIucyYmKGtpPSEwLE5yLnM9RG8oYXIucyxDbikpLGtpJiYoUnQuY2FsbGJhY2s/YW8ucHJvcHM9TnI6aGlbR3ItMV09TnIpKSxQbj16dC5zbGljZShEdCkuc3BsaXQoSCk7Zm9yKHZhciB4MD0wO3gwIT1Qbi5sZW5ndGgmJiI8Ij09UG5beDBdLnRyaW0oKS5jaGFy''@;'; + put 'put ''QXQoMCk7Kyt4MCk7Zm9yKFBuPVBuLnNsaWNlKHgwKSxEdD0wO0R0IT1Qbi5sZW5ndGg7KytEdClpZigwIT09KHp0PVBuW0R0XS50cmltKCkpLmxlbmd0aCl7aWYoVG49enQubWF0Y2goWCksT249RHQsV249MCxNcj0wLHp0PSI8YyAiKygiPCI9PXp0LnNsaWNlKDAsMSk/Ij4iOiIiKSt6dCxu''@;'; + put 'put ''dWxsIT1UbiYmMj09PVRuLmxlbmd0aCl7Zm9yKE9uPTAsYWk9VG5bMV0sV249MDtXbiE9YWkubGVuZ3RoJiYhKChNcj1haS5jaGFyQ29kZUF0KFduKS02NCk8MXx8TXI+MjYpOysrV24pT249MjYqT24rTXI7enI9LS1Pbn1lbHNlKyt6cjtmb3IoV249MDtXbiE9enQubGVuZ3RoJiY2MiE9PXp0''@;'; + put 'put ''LmNoYXJDb2RlQXQoV24pOysrV24pO2lmKCsrV24sKGFyPWVuKHp0LnNsaWNlKDAsV24pLCEwKSkucnx8KGFyLnI9WTAoe3I6R3ItMSxjOnpyfSkpLHlyPXt0OiIifSxudWxsIT0oVG49KGFpPXp0LnNsaWNlKFduKSkubWF0Y2goRmUpKSYmIiIhPT1UblsxXSYmKHlyLnY9Z3IoVG5bMV0pKSxS''@;'; + put 'put ''dC5jZWxsRm9ybXVsYSl7aWYobnVsbCE9KFRuPWFpLm1hdGNoKFplKSkmJiIiIT09VG5bMV0pe2lmKHlyLmY9Z3IoVzAoVG5bMV0pKS5yZXBsYWNlKC9cclxuL2csIlxuIiksUnQueGxmbnx8KHlyLmY9UWIoeXIuZikpLFRuWzBdLmluZGV4T2YoJ3Q9ImFycmF5IicpPi0xKXlyLkY9KGFpLm1h''@;'; + put 'put ''dGNoKHhlKXx8W10pWzFdLHlyLkYuaW5kZXhPZigiOiIpPi0xJiZ3aS5wdXNoKFtGbyh5ci5GKSx5ci5GXSk7ZWxzZSBpZihUblswXS5pbmRleE9mKCd0PSJzaGFyZWQiJyk+LTEpe29pPWVuKFRuWzBdKTt2YXIgaDA9Z3IoVzAoVG5bMV0pKTtSdC54bGZufHwoaDA9UWIoaDApKSxZcltwYXJz''@;'; + put 'put ''ZUludChvaS5zaSwxMCldPVtvaSxoMCxhci5yXX19ZWxzZShUbj1haS5tYXRjaCgvPGZbXj5dKlwvPi8pKSYmWXJbKG9pPWVuKFRuWzBdKSkuc2ldJiYoeXIuZj1WNChZcltvaS5zaV1bMV0sWXJbb2kuc2ldWzJdLGFyLnIpKTt2YXIganI9dWwoYXIucik7Zm9yKFduPTA7V248d2kubGVuZ3Ro''@;'; + put 'put ''OysrV24panIucj49d2lbV25dWzBdLnMuciYmanIucjw9d2lbV25dWzBdLmUuciYmanIuYz49d2lbV25dWzBdLnMuYyYmanIuYzw9d2lbV25dWzBdLmUuYyYmKHlyLkY9d2lbV25dWzFdKX1pZihudWxsPT1hci50JiZ2b2lkIDA9PT15ci52KWlmKHlyLmZ8fHlyLkYpeXIudj0wLHlyLnQ9Im4i''@;'; + put 'put ''O2Vsc2V7aWYoIXQwKWNvbnRpbnVlO3lyLnQ9InoifWVsc2UgeXIudD1hci50fHwibiI7c3dpdGNoKFl0LnMuYz56ciYmKFl0LnMuYz16ciksWXQuZS5jPHpyJiYoWXQuZS5jPXpyKSx5ci50KXtjYXNlIm4iOmlmKCIiPT15ci52fHxudWxsPT15ci52KXtpZighdDApY29udGludWU7eXIudD0i''@;'; + put 'put ''eiJ9ZWxzZSB5ci52PXBhcnNlRmxvYXQoeXIudik7YnJlYWs7Y2FzZSJzIjppZih2b2lkIDA9PT15ci52KXtpZighdDApY29udGludWU7eXIudD0ieiJ9ZWxzZSBxcj1MZFtwYXJzZUludCh5ci52LDEwKV0seXIudj1xci50LHlyLnI9cXIucixxci5SJiYoeXIuUj1xci5SKSxpbyYmKHlyLmg9''@;'; + put 'put ''cXIuaCk7YnJlYWs7Y2FzZSJzdHIiOnlyLnQ9InMiLHlyLnY9bnVsbCE9eXIudj9XMCh5ci52KToiIixpbyYmKHlyLmg9bjAoeXIudikpO2JyZWFrO2Nhc2UiaW5saW5lU3RyIjpUbj1haS5tYXRjaCh3ZSkseXIudD0icyIsbnVsbCE9VG4mJihxcj0kdShUblsxXSkpPyh5ci52PXFyLnQscXIu''@;'; + put 'put ''UiYmKHlyLlI9cXIuUiksaW8mJih5ci5oPXFyLmgpKTp5ci52PSIiO2JyZWFrO2Nhc2UiYiI6eXIudj1EaSh5ci52KTticmVhaztjYXNlImQiOlJ0LmNlbGxEYXRlcz95ci52PWRuKHlyLnYsMSk6KHlyLnY9ZnQoZG4oeXIudiwxKSkseXIudD0ibiIpO2JyZWFrO2Nhc2UiZSI6ITEhPT1SdC5j''@;'; + put 'put ''ZWxsVGV4dCYmKHlyLnc9eXIudikseXIudj1faFt5ci52XX1pZihvYSl7Y3I9ZGk9djA9VWk9MCxBMD1udWxsLHRvJiZ2b2lkIDAhPT1hci5zJiZudWxsIT0oQTA9Q24uQ2VsbFhmW2FyLnNdKSYmKG51bGwhPUEwLm51bUZtdElkJiYoY3I9QTAubnVtRm10SWQpLFJ0LmNlbGxTdHlsZXMmJihu''@;'; + put 'put ''dWxsIT1BMC5maWxsSWQmJihkaT1BMC5maWxsSWQpLG51bGwhPUEwLmZvbnRJZCYmKHYwPUEwLmZvbnRJZCksbnVsbCE9QTAuYm9yZGVySWQmJihVaT1BMC5ib3JkZXJJZCkpKTt0cnl7ZDUoeXIsY3IsZGksdjAsVWksUnQsMCxDbil9Y2F0Y2godm8pe31SdC5jZWxsU3R5bGVzJiZ5ci5zJiYo''@;'; + put 'put ''QTAmJkEwLmFsaWdubWVudCYmKHlyLnMuYWxpZ25tZW50PWxuKEEwLmFsaWdubWVudCkpLEEwJiZBMC5wcm90ZWN0aW9uJiYobnVsbCE9QTAucHJvdGVjdGlvbi5oaWRkZW4mJih5ci5zLmhpZGRlbj1BMC5wcm90ZWN0aW9uLmhpZGRlbiksbnVsbCE9QTAucHJvdGVjdGlvbi5lZGl0YWJsZSYm''@;'; + put 'put ''KHlyLnMuZWRpdGFibGU9QTAucHJvdGVjdGlvbi5lZGl0YWJsZSkpLEEwJiZBMC5zdHlsZSYmKHlyLnMuc3R5bGU9QTAuc3R5bGUpKSxSdC5jZWxsRGF0ZXMmJnRvJiYibiI9PXlyLnQmJkYuaXNfZGF0ZShGLl90YWJsZVtjcl0pJiYoeXIudD0iZCIseXIudj1IdCh5ci52KSl9dmFyIEhpO1J0''@;'; + put 'put ''Lm5vZGltJiYoSGk9dWwoYXIuciksWXQucy5yPkhpLnImJihZdC5zLnI9SGkuciksWXQuZS5yPEhpLnImJihZdC5lLnI9SGkucikpLFJ0LmNhbGxiYWNrPyhIaT11bChhci5yKSxhby5yb3dbSGkuY109eXIpOkVpPyh4dFsoSGk9dWwoYXIucikpLnJdfHwoeHRbSGkucl09W10pLHh0W0hpLnJd''@;'; + put 'put ''W0hpLmNdPXlyKTp4dFthci5yXT15cn1SdC5jYWxsYmFjayYmUnQuY2FsbGJhY2soYW8pfX19dDAmJiFSdC5jYWxsYmFjayYmRG8oMCxDbiksaGkubGVuZ3RoPjAmJih4dFsiIXJvd3MiXT1oaSl9fSgpLFpCPWJpKCJ3b3Jrc2hlZXQiLG51bGwse3htbG5zOlgwLm1haW5bMF0sInhtbG5zOnIi''@;'; + put 'put ''OlgwLnIsInhtbG5zOngxNGFjIjoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiLCJ4bWxuczptYyI6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiwibWM6SWdub3Jh''@;'; + put 'put ''YmxlIjoieDE0YWMifSk7ZnVuY3Rpb24gekIoSCxyZSxYLHdlKXt2YXIgWmUseGU9W2NuLFpCXSxqZT0iIixZZT1YLlNoZWV0c1tYLlNoZWV0TmFtZXNbSF1dO251bGw9PVllJiYoWWU9e30pO3ZhciBNdD1ZZVsiIXJlZiJdfHwiQTEiLHh0PUZvKE10KTtpZih4dC5lLmM+MTYzODN8fHh0LmUu''@;'; + put 'put ''cj4xMDQ4NTc1KXtpZihyZS5XVEYpdGhyb3cgbmV3IEVycm9yKCJSYW5nZSAiK010KyIgZXhjZWVkcyBmb3JtYXQgbGltaXQgQTE6WEZEMTA0ODU3NiIpO3h0LmUuYz1NYXRoLm1pbih4dC5lLmMsMTYzODMpLHh0LmUucj1NYXRoLm1pbih4dC5lLmMsMTA0ODU3NSksTXQ9ZmEoeHQpfXdlfHwo''@;'; + put 'put ''d2U9e30pLFllWyIhY29tbWVudHMiXT1bXTt2YXIgUnQ9W10sWXQ9WWVbIiFwcmludCJdO2lmKGZ1bmN0aW9uIHZsKEgscmUsWCx3ZSx4ZSl7dmFyIEZlPSExLFplPXt9LGplPW51bGw7aWYoInhsc3giIT09d2UuYm9va1R5cGUmJnJlLnZiYXJhdyl7dmFyIFllPXJlLlNoZWV0TmFtZXNbWF07''@;'; + put 'put ''dHJ5e3JlLldvcmtib29rJiYoWWU9cmUuV29ya2Jvb2suU2hlZXRzW1hdLkNvZGVOYW1lfHxZZSl9Y2F0Y2goWXQpe31GZT0hMCxaZS5jb2RlTmFtZT1ScihZZSl9SCYmSFsiIWNvbmRmbXQiXSYmKFplLmVuYWJsZUZvcm1hdENvbmRpdGlvbnNDYWxjdWxhdGlvbj0iMSIpLEgmJkhbIiF0YWJj''@;'; + put 'put ''b2xvciJdJiYoamU9KGplfHwiIikrJzx0YWJDb2xvciByZ2I9IkZGJytMbyhIWyIhdGFiY29sb3IiXS5yZ2IpKyciLz4nKTt2YXIgTXQ9ITEseHQ9e307aWYoKCgoSHx8e30pWyIhcHJpbnQiXXx8e30pLnByb3BzfHx7fSkuZml0JiYoTXQ9ITAseHQuZml0VG9QYWdlPTEpLE10JiYoamU9KGpl''@;'; + put 'put ''fHwiIikrYmkoInBhZ2VTZXRVcFByIixudWxsLHh0KSksSCYmSFsiIW91dGxpbmUiXSl7dmFyIFJ0PXtzdW1tYXJ5QmVsb3c6MSxzdW1tYXJ5UmlnaHQ6MX07SFsiIW91dGxpbmUiXS5hYm92ZSYmKFJ0LnN1bW1hcnlCZWxvdz0wKSxIWyIhb3V0bGluZSJdLmxlZnQmJihSdC5zdW1tYXJ5Umln''@;'; + put 'put ''aHQ9MCksamU9KGplfHwiIikrYmkoIm91dGxpbmVQciIsbnVsbCxSdCl9IUZlJiYhamV8fCh4ZVt4ZS5sZW5ndGhdPWJpKCJzaGVldFByIixqZSxaZSkpfShZZSxYLEgscmUseGUpLHhlW3hlLmxlbmd0aF09YmkoImRpbWVuc2lvbiIsbnVsbCx7cmVmOk10fSkseGVbeGUubGVuZ3RoXT1mdW5j''@;'; + put 'put ''dGlvbiBmeChILHJlLFgsd2Upe3ZhciB4ZT17d29ya2Jvb2tWaWV3SWQ6IjAifTtpZigoKCh3ZXx8e30pLldvcmtib29rfHx7fSkuVmlld3N8fFtdKS5sZW5ndGgpe3ZhciBGZT13ZS5Xb3JrYm9vay5WaWV3cyxaZT1GZVtYXXx8RmVbMF07eGUucmlnaHRUb0xlZnQ9WmUuUlRMPyIxIjoiMCIs''@;'; + put 'put ''WmUuem9vbSYmKHhlLnpvb21TY2FsZT1aZS56b29tKSxudWxsIT1aZS5ncmlkJiYoeGUuc2hvd0dyaWRMaW5lcz1aZS5ncmlkKSxaZS52aWV3JiYoeGUudmlldz1aZS52aWV3KX1udWxsIT1IWyIhZ3JpZGxpbmVzIl0mJih4ZS5zaG93R3JpZExpbmVzPSEhSFsiIWdyaWRsaW5lcyJdKTt2YXIg''@;'; + put 'put ''amU9IiIsWWU9e3I6MCxjOjB9O2lmKEhbIiFzZWwiXSl7aWYoIShZZT1IWyIhc2VsIl0uY2VsbCkpe2lmKCFIWyIhc2VsIl0ucmFuZ2UpdGhyb3cgbmV3IEVycm9yKCJNdXN0IHNwZWNpZnkgYSBzZWxlY3Rpb24gY2VsbCBvciByYW5nZSIpO1llPXZzKEhbIiFzZWwiXS5yYW5nZS5yZXBsYWNl''@;'; + put 'put ''KC9ccy4qJC8sIiIpKS5zfSJzdHJpbmciPT10eXBlb2YgWWUmJihZZT11bChZZSkpfXZhciB4dD1IWyIhZnJlZXplIl0/InN0cmluZyI9PXR5cGVvZiBIWyIhZnJlZXplIl0/dWwoSFsiIWZyZWV6ZSJdKTpIWyIhZnJlZXplIl06e2M6MCxyOjB9O2lmKEhbIiFmcmVlemUiXSl7dmFyIFJ0PVkw''@;'; + put 'put ''KHh0KSxZdD17c3RhdGU6ImZyb3plbiIseFNwbGl0Onh0LmMseVNwbGl0Onh0LnIsdG9wTGVmdENlbGw6UnR9O0hbIiFzZWwiXSYmKFl0LmFjdGl2ZVBhbmU9KFllLnI+PXh0LnImJnh0LnI+MD8iYm90dG9tIjoidG9wIikrKFllLmM+PXh0LmMmJnh0LmM+MD8iUmlnaHQiOiJMZWZ0IikpLGpl''@;'; + put 'put ''PWJpKCJwYW5lIixudWxsLFl0KX1pZihIWyIhc2VsIl0pe3ZhciBubj17YWN0aXZlQ2VsbDoic3RyaW5nIj09dHlwZW9mIFllP1llOlkwKFllKX07bm4uc3FyZWY9SFsiIXNlbCJdLnJhbmdlP0hbIiFzZWwiXS5yYW5nZTpubi5hY3RpdmVDZWxsKyI6Iitubi5hY3RpdmVDZWxsLGplKz1iaSgi''@;'; + put 'put ''c2VsZWN0aW9uIixudWxsLG5uKSxIWyIhZnJlZXplIl0mJih4dC5jPjAmJihubi5wYW5lPSJ0b3BSaWdodCIsamUrPWJpKCJzZWxlY3Rpb24iLG51bGwsbm4pKSx4dC5yPjAmJihubi5wYW5lPSJib3R0b21MZWZ0IixqZSs9YmkoInNlbGVjdGlvbiIsbnVsbCxubikpLHh0LmM+MCYmeHQucj4w''@;'; + put 'put ''JiYobm4ucGFuZT0iYm90dG9tUmlnaHQiLGplKz1iaSgic2VsZWN0aW9uIixudWxsLG5uKSkpfXJldHVybiBiaSgic2hlZXRWaWV3cyIsYmkoInNoZWV0VmlldyIsamV8fG51bGwseGUpLHt9KX0oWWUsMCxILFgpLHJlLnNoZWV0Rm9ybWF0KXt2YXIgbm49e2RlZmF1bHRSb3dIZWlnaHQ6cmUu''@;'; + put 'put ''c2hlZXRGb3JtYXQuZGVmYXVsdFJvd0hlaWdodHx8IjE2IixiYXNlQ29sV2lkdGg6cmUuc2hlZXRGb3JtYXQuYmFzZUNvbFdpZHRofHwiMTAifTtudWxsIT1yZS5zaGVldEZvcm1hdC5vdXRsaW5lTGV2ZWxSb3cmJihubi5vdXRsaW5lTGV2ZWxSb3c9cmUuc2hlZXRGb3JtYXQub3V0bGluZUxl''@;'; + put 'put ''dmVsUm93KSx4ZVt4ZS5sZW5ndGhdPWJpKCJzaGVldEZvcm1hdFByIixudWxsLG5uKX1lbHNlIGlmKFllWyIhc2hlZXRGb3JtYXQiXSl7dmFyIENuPXt9LER0PSExO1llWyIhc2hlZXRGb3JtYXQiXS5yb3cmJihZZVsiIXNoZWV0Rm9ybWF0Il0ucm93LmhwdD8oRHQ9ITAsQ24uZGVmYXVsdFJv''@;'; + put 'put ''d0hlaWdodD1ZZVsiIXNoZWV0Rm9ybWF0Il0ucm93LmhwdCxDbi5jdXN0b21IZWlnaHQ9MSk6WWVbIiFzaGVldEZvcm1hdCJdLnJvdy5ocHg/KER0PSEwLENuLmRlZmF1bHRSb3dIZWlnaHQ9VGgoWWVbIiFzaGVldEZvcm1hdCJdLnJvdy5ocHgpLENuLmN1c3RvbUhlaWdodD0xKTooMD09PVll''@;'; + put 'put ''WyIhc2hlZXRGb3JtYXQiXS5yb3cuaHB0fHwwPT09WWVbIiFzaGVldEZvcm1hdCJdLnJvdy5ocHh8fFllWyIhc2hlZXRGb3JtYXQiXS5yb3cuaGlkZGVuKSYmKER0PSEwLENuLmRlZmF1bHRSb3dIZWlnaHQ9Q24uZGVmYXVsdFJvd0hlaWdodHx8MTYsQ24uY3VzdG9tSGVpZ2h0PTEsQ24uemVy''@;'; + put 'put ''b0hlaWdodD0xKSxZZVsiIXNoZWV0Rm9ybWF0Il0uZHlEZXNjZW50JiYoQ25bIngxNGFjOmR5RGVzY2VudCJdPVllWyIhc2hlZXRGb3JtYXQiXS5keURlc2NlbnQpKSxZZVsiIXNoZWV0Rm9ybWF0Il0uY29sJiYoWWVbIiFzaGVldEZvcm1hdCJdLmNvbC53Y2h8fHljKFllWyIhc2hlZXRGb3Jt''@;'; + put 'put ''YXQiXS5jb2wpLENuLmRlZmF1bHRDb2xXaWR0aD1ZZVsiIXNoZWV0Rm9ybWF0Il0uY29sLndjaCs1L1gyfHwwLER0PSEwKSxudWxsPT1Dbi5kZWZhdWx0Um93SGVpZ2h0JiYoQ24uZGVmYXVsdFJvd0hlaWdodD0xNiksbnVsbD09Q24uZGVmYXVsdENvbFdpZHRoJiYoQ24uZGVmYXVsdENvbFdp''@;'; + put 'put ''ZHRoPTEwKSxDbi5vdXRsaW5lTGV2ZWxSb3c9Q24ub3V0bGluZUxldmVsUm93fHw3LER0JiYoeGVbeGUubGVuZ3RoXT1iaSgic2hlZXRGb3JtYXRQciIsbnVsbCxDbikpfW51bGwhPVllWyIhY29scyJdJiZZZVsiIWNvbHMiXS5sZW5ndGg+MCYmKHhlW3hlLmxlbmd0aF09ZnVuY3Rpb24gTV8o''@;'; + put 'put ''SCxyZSxYKXtmb3IodmFyIHhlLHdlPVsiPGNvbHM+Il0sRmU9MDtGZSE9cmUubGVuZ3RoOysrRmUpaWYoeGU9cmVbRmVdKXtpZih4ZS5hdXRvJiZTNihILHhlLEZlKSx4ZS5zfHx4ZS56KXt2YXIgWmU9e3Q6InoifTtudWxsIT14ZS5zJiYoWmUucz14ZS5zKSxudWxsIT14ZS56JiYoWmUuej14''@;'; + put 'put ''ZS56KSx4ZS5zdHlsZT1ZMShYLmNlbGxYZnMsWC5jZWxsU3R5bGVYZnMsWmUsWCl9d2Vbd2UubGVuZ3RoXT1iaSgiY29sIixudWxsLGs2KEZlLHhlKSl9cmV0dXJuIHdlW3dlLmxlbmd0aF09IjwvY29scz4iLHdlLmpvaW4oIiIpfShZZSxZZVsiIWNvbHMiXSxyZSkpLHhlW1plPXhlLmxlbmd0''@;'; + put 'put ''aF09IjxzaGVldERhdGEvPiIsWWVbIiFsaW5rcyJdPVtdLG51bGwhPVllWyIhcmVmIl0mJihqZT1mdW5jdGlvbiBoeChILHJlLFgsd2Upe3ZhciBZZSx6dCx4ZT1bXSxGZT1bXSxaZT1GbyhIWyIhcmVmIl0pLGplPSIiLE10PSIiLHh0PVtdLFJ0PTAsWXQ9MCxubj1IWyIhcm93cyJdLENuPUFy''@;'; + put 'put ''cmF5LmlzQXJyYXkoSCksRHQ9e3I6TXR9LFBuPS0xO2ZvcihZdD1aZS5zLmM7WXQ8PVplLmUuYzsrK1l0KXh0W1l0XT1fYShZdCk7Zm9yKFJ0PVplLnMucjtSdDw9WmUuZS5yOysrUnQpe2ZvcihGZT1bXSxNdD1YYShSdCksWXQ9WmUucy5jO1l0PD1aZS5lLmM7KytZdCl7WWU9eHRbWXRdK010''@;'; + put 'put ''O3ZhciBUbj1Dbj8oSFtSdF18fFtdKVtZdF06SFtZZV07dm9pZCAwIT09VG4mJm51bGwhPShqZT1qQihUbixZZSxILHJlKSkmJkZlLnB1c2goamUpfShGZS5sZW5ndGg+MHx8bm4mJm5uW1J0XSkmJihEdD17cjpNdH0sbm4mJm5uW1J0XSYmKCh6dD1ubltSdF0pLmhpZGRlbiYmKER0LmhpZGRl''@;'; + put 'put ''bj0xKSxQbj0tMSx6dC5ocHg/UG49VGgoenQuaHB4KTp6dC5ocHQmJihQbj16dC5ocHQpLFBuPi0xJiYoRHQuaHQ9UG4sRHQuY3VzdG9tSGVpZ2h0PTEpLHp0LmxldmVsJiYoRHQub3V0bGluZUxldmVsPXp0LmxldmVsKSx6dC5keURlc2NlbnQmJihEdFsieDE0YWM6ZHlEZXNjZW50Il09enQu''@;'; + put 'put ''ZHlEZXNjZW50KSx6dC5zJiYoRHQucz1ZMShyZS5jZWxsWGZzLHJlLmNlbGxTdHlsZVhmcyx7dDoieiIsczp6dC5zfSxyZSksRHQuY3VzdG9tRm9ybWF0PTEpKSx4ZVt4ZS5sZW5ndGhdPWJpKCJyb3ciLEZlLmpvaW4oIiIpLER0KSl9aWYobm4pZm9yKDtSdDxubi5sZW5ndGg7KytSdClubiYm''@;'; + put 'put ''bm5bUnRdJiYoRHQ9e3I6UnQrMX0sKHp0PW5uW1J0XSkuaGlkZGVuJiYoRHQuaGlkZGVuPTEpLFBuPS0xLHp0LmhweD9Qbj1UaCh6dC5ocHgpOnp0LmhwdCYmKFBuPXp0LmhwdCksUG4+LTEmJihEdC5odD1QbixEdC5jdXN0b21IZWlnaHQ9MSksenQubGV2ZWwmJihEdC5vdXRsaW5lTGV2ZWw9''@;'; + put 'put ''enQubGV2ZWwpLHhlW3hlLmxlbmd0aF09YmkoInJvdyIsIiIsRHQpKTtyZXR1cm4geGUuam9pbigiIil9KFllLHJlKSxqZS5sZW5ndGg+MCYmKHhlW3hlLmxlbmd0aF09amUpKSx4ZS5sZW5ndGg+WmUrMSYmKHhlW3hlLmxlbmd0aF09Ijwvc2hlZXREYXRhPiIseGVbWmVdPXhlW1plXS5yZXBs''@;'; + put 'put ''YWNlKCIvPiIsIj4iKSksWWVbIiFwcm90ZWN0Il0mJih4ZVt4ZS5sZW5ndGhdPWZ1bmN0aW9uIFNfKEgpe3ZhciByZT17c2hlZXQ6MX07cmV0dXJuIGtfLmZvckVhY2goZnVuY3Rpb24oWCl7bnVsbCE9SFtYXSYmSFtYXSYmKHJlW1hdPSIxIil9KSxwQS5mb3JFYWNoKGZ1bmN0aW9uKFgpe251''@;'; + put 'put ''bGwhPUhbWF0mJiFIW1hdJiYocmVbWF09IjAiKX0pLEgucGFzc3dvcmQ/cmUucGFzc3dvcmQ9U3YoSC5wYXNzd29yZCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk6SC5lbmNyeXB0aW9uJiYocmUuYWxnb3JpdGhtTmFtZT1ILmVuY3J5cHRpb24uYWxnbyxyZS5oYXNoVmFsdWU9SC5lbmNy''@;'; + put 'put ''eXB0aW9uLmhhc2gscmUuc2FsdFZhbHVlPUguZW5jcnlwdGlvbi5zYWx0LHJlLnNwaW5Db3VudD1ILmVuY3J5cHRpb24uc3BpbiksYmkoInNoZWV0UHJvdGVjdGlvbiIsbnVsbCxyZSl9KFllWyIhcHJvdGVjdCJdKSksbnVsbCE9WWVbIiFhdXRvZmlsdGVyIl0mJih4ZVt4ZS5sZW5ndGhdPWZ1''@;'; + put 'put ''bmN0aW9uIHhfKEgscmUsWCx3ZSl7dmFyIHhlPSJzdHJpbmciPT10eXBlb2YgSC5yZWY/SC5yZWY6ZmEoSC5yZWYpO1guV29ya2Jvb2t8fChYLldvcmtib29rPXtTaGVldHM6W119KSxYLldvcmtib29rLk5hbWVzfHwoWC5Xb3JrYm9vay5OYW1lcz1bXSk7dmFyIEZlPVguV29ya2Jvb2suTmFt''@;'; + put 'put ''ZXMsWmU9dnMoeGUpO1plLnMucj09WmUuZS5yJiYoWmUuZS5yPXZzKHJlWyIhcmVmIl0pLmUucix4ZT1mYShaZSkpO2Zvcih2YXIgamU9MDtqZTxGZS5sZW5ndGg7KytqZSl7dmFyIFllPUZlW2plXTtpZigiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIj09WWUuTmFtZSYmWWUuU2hlZXQ9PXdlKXtZ''@;'; + put 'put ''ZS5SZWY9IiciK1guU2hlZXROYW1lc1t3ZV0rIichIit4ZTticmVha319cmV0dXJuIGplPT1GZS5sZW5ndGgmJkZlLnB1c2goe05hbWU6Il94bG5tLl9GaWx0ZXJEYXRhYmFzZSIsU2hlZXQ6d2UsUmVmOiInIitYLlNoZWV0TmFtZXNbd2VdKyInISIreGV9KSxiaSgiYXV0b0ZpbHRlciIsbnVs''@;'; + put 'put ''bCx7cmVmOnhlfSl9KFllWyIhYXV0b2ZpbHRlciJdLFllLFgsSCkpLG51bGwhPVllWyIhbWVyZ2VzIl0mJlllWyIhbWVyZ2VzIl0ubGVuZ3RoPjAmJih4ZVt4ZS5sZW5ndGhdPWZ1bmN0aW9uIEFfKEgpe2lmKDA9PT1ILmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIHJlPSc8bWVyZ2VDZWxscyBj''@;'; + put 'put ''b3VudD0iJytILmxlbmd0aCsnIj4nLFg9MDtYIT1ILmxlbmd0aDsrK1gpcmUrPSc8bWVyZ2VDZWxsIHJlZj0iJytmYShIW1hdKSsnIi8+JztyZXR1cm4gcmUrIjwvbWVyZ2VDZWxscz4ifShZZVsiIW1lcmdlcyJdKSksWWVbIiFjb25kZm10Il0mJih4ZVt4ZS5sZW5ndGhdPWZ1bmN0aW9uIHV4''@;'; + put 'put ''KEgscmUpe3JldHVybiBILm1hcChmdW5jdGlvbihYLHdlKXtyZXR1cm4gZnVuY3Rpb24gVkIoSCxyZSxYKXt2YXIgd2U9SC5zP3o0KFguRFhGLEgucyk6LTEseGU9InN0cmluZyI9PXR5cGVvZiBILnJlZj9ILnJlZjpmYShILnJlZiksWmU9Rm8oeGUucmVwbGFjZSgvXHMuKiQvLCIiKSkuczta''@;'; + put 'put ''ZS5yPDAmJihaZS5yPTApLFplLmM8MCYmKFplLmM9MCk7dmFyIGplPSIiLFllPXtwcmlvcml0eTpyZSsxfTtzd2l0Y2god2U+LTEmJihZZS5keGZJZD13ZSksSC50KXtjYXNlInVuaXF1ZSI6WWUudHlwZT0idW5pcXVlVmFsdWVzIjticmVhaztjYXNlImR1cCI6WWUudHlwZT0iZHVwbGljYXRl''@;'; + put 'put ''VmFsdWVzIjticmVhaztjYXNlImJsYW5rIjpZZS50eXBlPShILnY/ImMiOiJub3RDIikrIm9udGFpbnNCbGFua3MiLGplPSI8Zm9ybXVsYT5MRU4oVFJJTSgiK1kwKFplKSsiKSkiKyhILnY/Ij0iOiImZ3Q7IikrIjA8L2Zvcm11bGE+IjticmVhaztjYXNlImVycm9yIjpZZS50eXBlPShILnY/''@;'; + put 'put ''ImMiOiJub3RDIikrIm9udGFpbnNFcnJvcnMiO2JyZWFrO2Nhc2UiZm9ybXVsYSI6WWUudHlwZT0iZXhwcmVzc2lvbiIsamU9YmkoImZvcm11bGEiLFJyKEguZikse30pO2JyZWFrO2Nhc2UiZGF0ZSI6WWUudHlwZT0idGltZVBlcmlvZCIsWWUudGltZVBlcmlvZD15QVtILm9wXTticmVhaztj''@;'; + put 'put ''YXNlInRleHQiOnN3aXRjaChZZS50eXBlPVllLm9wZXJhdG9yPUFBW0gub3BdLFllLnRleHQ9SC52LEgub3Ape2Nhc2UiSU4iOmplPSc8Zm9ybXVsYT5OT1QoSVNFUlJPUihTRUFSQ0goIicrUnIoSC52KSsnIiwnK1kwKFplKSsiKSkpPC9mb3JtdWxhPiI7YnJlYWs7Y2FzZSJPVCI6amU9Jzxm''@;'; + put 'put ''b3JtdWxhPklTRVJST1IoU0VBUkNIKCInK1JyKEgudikrJyIsJytZMChaZSkrIikpPC9mb3JtdWxhPiI7YnJlYWs7Y2FzZSJTVCI6amU9Ijxmb3JtdWxhPkxFRlQoIitZMChaZSkrJyxMRU4oIicrUnIoSC52KSsnIikpPSInK1JyKEgudikrJyI8L2Zvcm11bGE+JzticmVhaztjYXNlIk5EIjpq''@;'; + put 'put ''ZT0iPGZvcm11bGE+UklHSFQoIitZMChaZSkrJyxMRU4oIicrUnIoSC52KSsnIikpPSInK1JyKEgudikrJyI8L2Zvcm11bGE+J31icmVhaztjYXNlInZhbCI6WWUudHlwZT0iY2VsbElzIixZZS5vcGVyYXRvcj1HNFtILm9wXSxqZT1udWxsIT1ILm1pbj9iaSgiZm9ybXVsYSIsUnIoU3RyaW5n''@;'; + put 'put ''KEgubWluKSkse30pK2JpKCJmb3JtdWxhIixScihTdHJpbmcoSC5tYXgpKSx7fSk6YmkoImZvcm11bGEiLFJyKG51bGwhPUgudj9TdHJpbmcoInN0cmluZyI9PXR5cGVvZiBILnY/JyInK0gudi5yZXBsYWNlKC8iL2csJyIiJykrJyInOkgudik6SC5mKSx7fSk7YnJlYWs7Y2FzZSJhdmciOnN3''@;'; + put 'put ''aXRjaChZZS50eXBlPSJhYm92ZUF2ZXJhZ2UiLFllLmFib3ZlQXZlcmFnZT0iTCI9PUgub3AuY2hhckF0KDApPyIwIjoiMSIsSC5vcC5jaGFyQXQoMSkpe2Nhc2UiVCI6WWUuZXF1YWxBdmVyYWdlPSIwIjticmVhaztjYXNlIkUiOlllLmVxdWFsQXZlcmFnZT0iMSI7YnJlYWs7ZGVmYXVsdDpZ''@;'; + put 'put ''ZS5zdGREZXY9SC5vcC5jaGFyQXQoMSl9YnJlYWs7Y2FzZSJyYW5rIjpZZS50eXBlPSJ0b3AxMCIsWWUuYm90dG9tPSJCIj09SC5vcC5jaGFyQXQoMCk/IjEiOiIwIixZZS5wZXJjZW50PSJQIj09SC5vcC5jaGFyQXQoMSk/IjEiOiIwIixZZS5yYW5rPUgudjticmVhaztjYXNlImljb24iOlll''@;'; + put 'put ''LnR5cGU9Imljb25TZXQiO3ZhciBNdD17aWNvblNldDpILnYscGVyY2VudDpILnBjdD8idHJ1ZSI6ImZhbHNlIn07SC5yZXYmJihNdC5yZXZlcnNlPSJ0cnVlIiksSC5oaWRkZW4mJihNdC5zaG93VmFsdWU9ImZhbHNlIiksamU9YmkoImljb25TZXQiLEgudGhyZXNoLm1hcChSZCkuam9pbigi''@;'; + put 'put ''IiksTXQpO2JyZWFrO2Nhc2Uic2NhbGUiOlllLnR5cGU9ImNvbG9yU2NhbGUiLGplKz1SZChILmNtaW4pLEguY21pZCYmKGplKz1SZChILmNtaWQpKSxqZSs9UmQoSC5jbWF4KSxqZSs9WHMoSC5jbWluLmNvbG9yKSxILmNtaWQmJihqZSs9WHMoSC5jbWlkLmNvbG9yKSksamU9YmkoImNvbG9y''@;'; + put 'put ''U2NhbGUiLGplKz1YcyhILmNtYXguY29sb3IpLHt9KTticmVhaztjYXNlImJhciI6WWUudHlwZT0iZGF0YUJhciIsamUrPVJkKEguY21pbiksamUrPVJkKEguY21heCksamU9YmkoImRhdGFCYXIiLGplKz1YcyhILmNvbG9yKSx7fSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBjb25zb2xlLmxvZyhI''@;'; + put 'put ''KSwiQ0YgbWlzc2luZyB0eXBlICIrSC50fXJldHVybic8Y29uZGl0aW9uYWxGb3JtYXR0aW5nIHNxcmVmPSInK3hlKyciPicrYmkoImNmUnVsZSIsIiI9PWplP251bGw6amUsWWUpKyI8L2NvbmRpdGlvbmFsRm9ybWF0dGluZz4ifShYLHdlLHJlKX0pLmpvaW4oIiIpfShZZVsiIWNvbmRmbXQi''@;'; + put 'put ''XSxyZSkpLFllWyIhdmFsaWRhdGlvbnMiXSYmKHhlW3hlLmxlbmd0aF09ZnVuY3Rpb24gVF8oSCl7aWYoIUh8fDA9PUgubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgcmU9W10sWD0wLHdlPTA7d2U8SC5sZW5ndGg7Kyt3ZSl7dmFyIHhlPUhbd2VdLEZlPVJoW3hlLnRdO2lmKHhlLnJlZiYmKCJz''@;'; + put 'put ''dHJpbmciIT10eXBlb2YgeGUucmVmfHwtMSE9eGUucmVmLmluZGV4T2YoIiAiKXx8KHhlLnJlZj1Gbyh4ZS5yZWYpLHhlLnJlZi5zJiYhKHhlLnJlZi5zLmM8MCkpKSl7KytYO3ZhciBaZT17dHlwZTpGZSxhbGxvd0JsYW5rOisoMCE9eGUuYmxhbmspLHNob3dJbnB1dE1lc3NhZ2U6KygwIT14''@;'; + put 'put ''ZS5pbnB1dCksc2hvd0Vycm9yTWVzc2FnZTorKDAhPXhlLmVycm9yKSxzcXJlZjoic3RyaW5nIj09dHlwZW9mIHhlLnJlZj94ZS5yZWY6ZmEoeGUucmVmKX07aWYoeGUuaW5wdXQmJih4ZS5pbnB1dC50aXRsZSYmKFplLnByb21wdFRpdGxlPWxpKHhlLmlucHV0LnRpdGxlKSkseGUuaW5wdXQu''@;'; + put 'put ''bWVzc2FnZSYmKFplLnByb21wdD1saSh4ZS5pbnB1dC5tZXNzYWdlKSkpLHhlLmVycm9yJiYoeGUuZXJyb3IudGl0bGUmJihaZS5lcnJvclRpdGxlPWxpKHhlLmVycm9yLnRpdGxlKSkseGUuZXJyb3IubWVzc2FnZSYmKFplLmVycm9yPWxpKHhlLmVycm9yLm1lc3NhZ2UpKSx4ZS5lcnJvci5z''@;'; + put 'put ''dHlsZSYmKFplLmVycm9yU3R5bGU9eGUuZXJyb3Iuc3R5bGUpKSwhRmUpdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsaWRhdGlvbjogdW5yZWNvZ25pemVkIHR5cGUgIit4ZS50KTt2YXIgamU9IiI7c3dpdGNoKHhlLnQpe2Nhc2UiQW55IjpicmVhaztjYXNlIkxpc3QiOmNhc2UiQ3VzdG9tIjpp''@;'; + put 'put ''Zih4ZS5sKXtpZih4ZS5sLmpvaW4oIiwiKS5sZW5ndGg+MjUwKXRocm93IG5ldyBFcnJvcigiRFYgbGVuZ3RoID4gMjUwIHRyaWdnZXJzIGNvcnJ1cHRpb24gZXJyb3JzIGluIEV4Y2VsLiAgVXNlIGEgbG9va3VwIHRhYmxlIik7amU9Jzxmb3JtdWxhMT4iJytScih4ZS5sLmpvaW4oIiwiKSkr''@;'; + put 'put ''JyI8L2Zvcm11bGExPid9ZWxzZSBqZT0iPGZvcm11bGExPiIrUnIoeGUuZikrIjwvZm9ybXVsYTE+IjticmVhaztjYXNlIkRhdGUiOmNhc2UiVGltZSI6Y2FzZSJEZWNpbWFsIjpjYXNlIkxlbmd0aCI6Y2FzZSJXaG9sZSI6aWYoIUc0W3hlLm9wXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBEYXRh''@;'; + put 'put ''IFZhbGlkYXRpb24gdHlwZSAiK3hlLm9wKyIgZm9yICIreGUudCk7aWYoWmUub3BlcmF0b3I9RzRbeGUub3BdLG51bGwhPXhlLnYpamU9Ijxmb3JtdWxhMT4iK1JyKFN0cmluZyh4ZS52IGluc3RhbmNlb2YgRGF0ZT9mdCh4ZS52KTp4ZS52KSkrIjwvZm9ybXVsYTE+IjtlbHNle2lmKG51bGw9''@;'; + put 'put ''PXhlLm1pbnx8bnVsbD09eGUubWF4KXRocm93IG5ldyBFcnJvcigiQmFkIERhdGEgVmFsaWRhdGlvbjogYHZgIG9yIGBtaW5gK2BtYXhgIHJlcXVpcmVkIGZvciBUeXBlICIreGUudCk7amU9Ijxmb3JtdWxhMT4iK1JyKFN0cmluZyh4ZS5taW4gaW5zdGFuY2VvZiBEYXRlP2Z0KHhlLm1pbik6''@;'; + put 'put ''eGUubWluKSkrIjwvZm9ybXVsYTE+PGZvcm11bGEyPiIrUnIoU3RyaW5nKHhlLm1heCBpbnN0YW5jZW9mIERhdGU/ZnQoeGUubWF4KTp4ZS5tYXgpKSsiPC9mb3JtdWxhMj4ifX1yZS5wdXNoKGJpKCJkYXRhVmFsaWRhdGlvbiIsamV8fG51bGwsWmUpKX19cmV0dXJuIFg+MD8nPGRhdGFWYWxp''@;'; + put 'put ''ZGF0aW9ucyBjb3VudD0iJytYKyciPicrcmUuam9pbigiIikrIjwvZGF0YVZhbGlkYXRpb25zPiI6IiJ9KFllWyIhdmFsaWRhdGlvbnMiXSkpO3ZhciBQbix6dD0tMSxUbj0tMTtpZihZZVsiIWxpbmtzIl0ubGVuZ3RoPjAmJih4ZVt4ZS5sZW5ndGhdPSI8aHlwZXJsaW5rcz4iLFllWyIhbGlu''@;'; + put 'put ''a3MiXS5mb3JFYWNoKGZ1bmN0aW9uKHlyKXsheXJbMV0uVGFyZ2V0fHwoUG49e3JlZjp5clswXX0sIiMiIT15clsxXS5UYXJnZXQuY2hhckF0KDApJiYoVG49SnQod2UsLTEsUnIoeXJbMV0uVGFyZ2V0KS5yZXBsYWNlKC8jLiokLywiIikscHQuSExJTkspLFBuWyJyOmlkIl09InJJZCIrVG4p''@;'; + put 'put ''LCh6dD15clsxXS5UYXJnZXQuaW5kZXhPZigiIyIpKT4tMSYmKFBuLmxvY2F0aW9uPVJyKHlyWzFdLlRhcmdldC5zbGljZSh6dCsxKSkpLHlyWzFdLlRvb2x0aXAmJihQbi50b29sdGlwPVJyKHlyWzFdLlRvb2x0aXApKSx4ZVt4ZS5sZW5ndGhdPWJpKCJoeXBlcmxpbmsiLG51bGwsUG4pKX0p''@;'; + put 'put ''LHhlW3hlLmxlbmd0aF09IjwvaHlwZXJsaW5rcz4iKSxkZWxldGUgWWVbIiFsaW5rcyJdLFl0KXt2YXIgT249ZnVuY3Rpb24gX18oSCl7aWYoSC5wcm9wcyl7dmFyIHJlPXt9LFg9SC5wcm9wcztyZXR1cm4gWC5ncmlkbGluZXMmJihyZS5ncmlkTGluZXM9cmUuZ3JpZExpbmVzU2V0PTEpLFgu''@;'; + put 'put ''aGVhZGluZ3MmJihyZS5oZWFkaW5ncz0xKSxYLmNlbnRlclgmJihyZS5ob3Jpem9udGFsQ2VudGVyZWQ9MSksWC5jZW50ZXJZJiYocmUudmVydGljYWxDZW50ZXJlZD0xKSxiaSgicHJpbnRPcHRpb25zIixudWxsLHJlKX1yZXR1cm4iIn0oWXQpO09uLmxlbmd0aCYmKHhlW3hlLmxlbmd0aF09''@;'; + put 'put ''T24pfWlmKChudWxsIT1ZZVsiIW1hcmdpbnMiXXx8WXQmJll0Lm1hcmdpbnMpJiYoeGVbeGUubGVuZ3RoXT1mdW5jdGlvbiB2RyhIKXtyZXR1cm4gT2QoSCksYmkoInBhZ2VNYXJnaW5zIixudWxsLEgpfShZZVsiIW1hcmdpbnMiXXx8WXQubWFyZ2lucykpLFl0KXt2YXIgV249ZnVuY3Rpb24g''@;'; + put 'put ''aXgoSCl7aWYoSC5wcm9wcyl7dmFyIHJlPXt9LFg9SC5wcm9wcztpZihYLm9yaWVudGF0aW9uJiYocmUub3JpZW50YXRpb249WC5vcmllbnRhdGlvbiksWC5zY2FsZSYmKHJlLnNjYWxlPVguc2NhbGUpLFguZml0JiYobnVsbCE9WC5maXQuaGVpZ2h0JiYocmUuZml0VG9IZWlnaHQ9WC5maXQu''@;'; + put 'put ''aGVpZ2h0KSxudWxsIT1YLmZpdC53aWR0aCYmKHJlLmZpdFRvV2lkdGg9WC5maXQud2lkdGgpKSxYLmRwaSYmKHJlLmhvcml6b250YWxEcGk9cmUudmVydGljYWxEcGk9WC5kcGkpLG51bGwhPVguZmlyc3QmJihyZS5maXJzdFBhZ2VOdW1iZXI9WC5maXJzdCxyZS51c2VGaXJzdFBhZ2VOdW1i''@;'; + put 'put ''ZXI9MSksWC5idyYmKHJlLmJsYWNrQW5kV2hpdGU9MSksWC5kcmFmdCYmKHJlLmRyYWZ0PTEpLFguY29tbWVudHMmJihyZS5jZWxsQ29tbWVudHM9d19bWC5jb21tZW50c118fCJub25lIiksWC5lcnJvcnMmJihyZS5lcnJvcnM9XzJbWC5lcnJvcnNdfHwibm9uZSIpLFgucGFwZXIpc3dpdGNo''@;'; + put 'put ''KHR5cGVvZiBYLnBhcGVyKXtjYXNlIm51bWJlciI6cmUucGFwZXJTaXplPVgucGFwZXI7YnJlYWs7Y2FzZSJzdHJpbmciOlJiW1gucGFwZXJdP3JlLnBhcGVyU2l6ZT1SYltYLnBhcGVyXTorWC5wYXBlciYmKHJlLnBhcGVyU2l6ZT0rWC5wYXBlcik7YnJlYWs7Y2FzZSJvYmplY3QiOmlmKCFY''@;'; + put 'put ''LnBhcGVyLmhlaWdodHx8IVgucGFwZXIud2lkdGgpdGhyb3ciQ3VzdG9tIFBhcGVyIFNpemUgbXVzdCBpbmNsdWRlIHdpZHRoIGFuZCBoZWlnaHQhIjtyZS5wYXBlckhlaWdodD1YLnBhcGVyLmhlaWdodCxyZS5wYXBlcldpZHRoPVgucGFwZXIud2lkdGh9cmV0dXJuWzEsITAsInRydWUiLCJv''@;'; + put 'put ''dmVyIl0uaW5kZXhPZihYLm9yZGVyKT4tMSYmKHJlLnBhZ2VPcmRlcj0ib3ZlclRoZW5Eb3duIiksYmkoInBhZ2VTZXR1cCIsbnVsbCxyZSl9cmV0dXJuIiJ9KFl0KTtXbi5sZW5ndGgmJih4ZVt4ZS5sZW5ndGhdPVduKSxXbj1mdW5jdGlvbiBtQShIKXt2YXIgcmU9W10sWD0iIix3ZT0iIix4''@;'; + put 'put ''ZT0iIixGZT0iIixaZT0iIixqZT0iIixZZT0iIixNdD1JMyhILmhlYWRlcik7TXQubGVuZ3RoJiYod2U9TXRbMF0samU9TXRbMV0sRmU9TXRbMl0pO3ZhciB4dD1JMyhILmZvb3Rlcik7cmV0dXJuIHh0Lmxlbmd0aCYmKHhlPXh0WzBdLFllPXh0WzFdLFplPXh0WzJdKSx3ZSYmcmUucHVzaCgi''@;'; + put 'put ''PG9kZEhlYWRlcj4iK1JyKHdlKSsiPC9vZGRIZWFkZXI+IikseGUmJnJlLnB1c2goIjxvZGRGb290ZXI+IitScih4ZSkrIjwvb2RkRm9vdGVyPiIpLChaZSE9eGV8fEZlIT13ZSkmJihYKz0nIGRpZmZlcmVudE9kZEV2ZW49IjEiJyxyZS5wdXNoKCI8ZXZlbkhlYWRlcj4iK1JyKEZlKSsiPC9l''@;'; + put 'put ''dmVuSGVhZGVyPiIpLHJlLnB1c2goIjxldmVuRm9vdGVyPiIrUnIoWmUpKyI8L2V2ZW5Gb290ZXI+IikpLChZZSE9eGV8fGplIT13ZSkmJihYKz0nIGRpZmZlcmVudEZpcnN0PSIxIicscmUucHVzaCgiPGZpcnN0SGVhZGVyPiIrUnIoamUpKyI8L2ZpcnN0SGVhZGVyPiIpLHJlLnB1c2goIjxm''@;'; + put 'put ''aXJzdEZvb3Rlcj4iK1JyKFllKSsiPC9maXJzdEZvb3Rlcj4iKSkscmUubGVuZ3RoPyI8aGVhZGVyRm9vdGVyIitYKyI+IityZS5qb2luKCIiKSsiPC9oZWFkZXJGb290ZXI+IjoiIn0oWXQpLFduLmxlbmd0aCYmKHhlW3hlLmxlbmd0aF09V24pfWlmKChudWxsIT1ZZVsiIXJvd0JyZWFrcyJd''@;'; + put 'put ''fHxZdCYmWXQucm93QnJlYWtzKSYmKHhlW3hlLmxlbmd0aF09ZnVuY3Rpb24gUm0oSCl7aWYoMD09SC5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciByZT1bJzxyb3dCcmVha3MgY291bnQ9IicrSC5sZW5ndGgrJyIgbWFudWFsQnJlYWtDb3VudD0iJytILmxlbmd0aCsnIj4nXSxYPTA7WDxILmxl''@;'; + put 'put ''bmd0aDsrK1gpcmUucHVzaCgnPGJyayBpZD0iJytIW1hdLlIrJyIgbWFuPSIxIi8+Jyk7cmV0dXJuIHJlLmpvaW4oIiIpKyI8L3Jvd0JyZWFrcz4ifShZZVsiIXJvd0JyZWFrcyJdfHxZdC5yb3dCcmVha3MpKSwobnVsbCE9WWVbIiFjb2xCcmVha3MiXXx8WXQmJll0LmNvbEJyZWFrcykmJih4''@;'; + put 'put ''ZVt4ZS5sZW5ndGhdPWZ1bmN0aW9uIEJtKEgpe2lmKDA9PUgubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgcmU9Wyc8Y29sQnJlYWtzIGNvdW50PSInK0gubGVuZ3RoKyciIG1hbnVhbEJyZWFrQ291bnQ9IicrSC5sZW5ndGgrJyI+J10sWD0wO1g8SC5sZW5ndGg7KytYKXJlLnB1c2goJzxicmsg''@;'; + put 'put ''aWQ9IicrSFtYXS5DKyciIG1hbj0iMSIvPicpO3JldHVybiByZS5qb2luKCIiKSsiPC9jb2xCcmVha3M+In0oWWVbIiFjb2xCcmVha3MiXXx8WXQuY29sQnJlYWtzKSksKCFyZXx8cmUuaWdub3JlRUN8fG51bGw9PXJlLmlnbm9yZUVDKSYmKHhlW3hlLmxlbmd0aF09c2EoImlnbm9yZWRFcnJv''@;'; + put 'put ''cnMiLGJpKCJpZ25vcmVkRXJyb3IiLG51bGwse251bWJlclN0b3JlZEFzVGV4dDoxLHNxcmVmOk10fSkpKSxZZVsiIWNoYXJ0cyJdJiZSdC5wdXNoLmFwcGx5KFJ0LFllWyIhY2hhcnRzIl0pLFllWyIhaW1hZ2VzIl0mJlJ0LnB1c2guYXBwbHkoUnQsWWVbIiFpbWFnZXMiXSksWWVbIiFzaGFw''@;'; + put 'put ''ZXMiXSYmUnQucHVzaC5hcHBseShSdCxZZVsiIXNoYXBlcyJdKSxSdC5sZW5ndGg+MCYmKFRuPUp0KHdlLC0xLCIuLi9kcmF3aW5ncy9kcmF3aW5nIisoSCsxKSsiLnhtbCIscHQuRFJBVykseGVbeGUubGVuZ3RoXT1iaSgiZHJhd2luZyIsbnVsbCx7InI6aWQiOiJySWQiK1RufSksWWVbIiFk''@;'; + put 'put ''cmF3aW5nIl09UnQpLChZZVsiIWNvbW1lbnRzIl0ubGVuZ3RoPjB8fChZZVsiIWNvbnRyb2xzIl18fFtdKS5sZW5ndGg+MCkmJihUbj1KdCh3ZSwtMSwiLi4vZHJhd2luZ3Mvdm1sRHJhd2luZyIrKEgrMSkrIi52bWwiLHB0LlZNTCkseGVbeGUubGVuZ3RoXT1iaSgibGVnYWN5RHJhd2luZyIs''@;'; + put 'put ''bnVsbCx7InI6aWQiOiJySWQiK1RufSksWWVbIiFsZWdhY3kiXT1UbiksWWVbIiFwcmludCJdJiZZZVsiIXByaW50Il0uaW1hZ2VzKXt2YXIgTXI9WWVbIiFwcmludCJdLmltYWdlcyxhaT0wO1siaGVhZGVyIiwiZm9vdGVyIl0uZm9yRWFjaChmdW5jdGlvbih5cil7IU1yW3lyXXx8WyJvZGQi''@;'; + put 'put ''LCJldmVuIiwiZmlyc3QiXS5mb3JFYWNoKGZ1bmN0aW9uKGFyKXshTXJbeXJdW2FyXXx8WyJsZWZ0IiwicmlnaHQiLCJjZW50ZXIiXS5mb3JFYWNoKGZ1bmN0aW9uKEdyKXtpZihBcnJheS5pc0FycmF5KE1yW3lyXVthcl1bR3JdKSlmb3IodmFyIHpyPTA7enI8TXJbeXJdW2FyXVtHcl0ubGVu''@;'; + put 'put ''Z3RoOysrenIpTXJbeXJdW2FyXVtHcl1benJdJiYoTXJbeXJdW2FyXVtHcl1benJdLl9jbnQ9YWkrKyl9KX0pfSksYWk+MCYmKFRuPUp0KHdlLC0xLCIuLi9kcmF3aW5ncy92bWxEcmF3aW5nIisoSCsxKSsiSEYudm1sIixwdC5WTUwpLHhlW3hlLmxlbmd0aF09YmkoImxlZ2FjeURyYXdpbmdI''@;'; + put 'put ''RiIsbnVsbCx7InI6aWQiOiJySWQiK1RufSksWWVbIiFsZWdhY3lIRiJdPVRuKX1yZXR1cm4oWWVbIiF0YWJsZXMiXXx8W10pLmxlbmd0aD4wJiYoeGVbeGUubGVuZ3RoXT0nPHRhYmxlUGFydHMgY291bnQ9IicrWWVbIiF0YWJsZXMiXS5sZW5ndGgrJyI+JyxZZVsiIXRhYmxlcyJdLmZvckVh''@;'; + put 'put ''Y2goZnVuY3Rpb24oeXIsYXIpe1RuPUp0KHdlLC0xLCIuLi90YWJsZXMvdGFibGUiKyhIKzEpKyJfIithcisiLnhtbCIscHQuVEFCTEUpLHhlW3hlLmxlbmd0aF09Jzx0YWJsZVBhcnQgcjppZD0icklkJytUbisnIi8+J30pLHhlW3hlLmxlbmd0aF09IjwvdGFibGVQYXJ0cz4iKSx4ZS5sZW5n''@;'; + put 'put ''dGg+MSYmKHhlW3hlLmxlbmd0aF09Ijwvd29ya3NoZWV0PiIseGVbMV09eGVbMV0ucmVwbGFjZSgiLz4iLCI+IikpLHhlLmpvaW4oIiIpfWZ1bmN0aW9uIFlCKEgscmUsWCx3ZSl7dmFyIHhlPWZ1bmN0aW9uIFdCKEgscmUsWCl7dmFyIHdlPVJpKDE0NSkseGU9KFhbIiFyb3dzIl18fFtdKVtI''@;'; + put 'put ''XXx8e307d2Uud3JpdGVfc2hpZnQoNCxIKSx3ZS53cml0ZV9zaGlmdCg0LDApO3ZhciBGZT0zMjA7eGUuaHB4P0ZlPTIwKlRoKHhlLmhweCk6eGUuaHB0JiYoRmU9MjAqeGUuaHB0KSx3ZS53cml0ZV9zaGlmdCgyLEZlKSx3ZS53cml0ZV9zaGlmdCgxLDApO3ZhciBaZT0wO3hlLmxldmVsJiYo''@;'; + put 'put ''WmV8PXhlLmxldmVsKSx4ZS5oaWRkZW4mJihaZXw9MTYpLCh4ZS5ocHh8fHhlLmhwdCkmJihaZXw9MzIpLHdlLndyaXRlX3NoaWZ0KDEsWmUpLHdlLndyaXRlX3NoaWZ0KDEsMCk7dmFyIGplPTAsWWU9d2UubDt3ZS5sKz00O2Zvcih2YXIgTXQ9e3I6SCxjOjB9LHh0PTA7eHQ8MTY7Kyt4dClp''@;'; + put 'put ''ZighKHJlLnMuYz54dCsxPDwxMHx8cmUuZS5jPHh0PDwxMCkpe2Zvcih2YXIgUnQ9LTEsWXQ9LTEsbm49eHQ8PDEwO25uPHh0KzE8PDEwOysrbm4pTXQuYz1ubiwoQXJyYXkuaXNBcnJheShYKT8oWFtNdC5yXXx8W10pW010LmNdOlhbWTAoTXQpXSkmJihSdDwwJiYoUnQ9bm4pLFl0PW5uKTtS''@;'; + put 'put ''dDwwfHwoKytqZSx3ZS53cml0ZV9zaGlmdCg0LFJ0KSx3ZS53cml0ZV9zaGlmdCg0LFl0KSl9dmFyIER0PXdlLmw7cmV0dXJuIHdlLmw9WWUsd2Uud3JpdGVfc2hpZnQoNCxqZSksd2UubD1EdCx3ZS5sZW5ndGg+d2UubD93ZS5zbGljZSgwLHdlLmwpOndlfSh3ZSxYLHJlKTsoeGUubGVuZ3Ro''@;'; + put 'put ''PjE3fHwocmVbIiFyb3dzIl18fFtdKVt3ZV0pJiZDMChILCJCcnRSb3dIZHIiLHhlKX12YXIgVzQ9d2gsRTY9R3A7ZnVuY3Rpb24gVTQoSCl7cmV0dXJuW000KEgpLEkyKEgpLCJuIl19dmFyIHZ4PXdoLHlhPUdwLF9pPVsibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIiwiaGVhZGVyIiwi''@;'; + put 'put ''Zm9vdGVyIl0sam09WyJBbnkiLCJXaG9sZSIsIkRlY2ltYWwiLCJMaXN0IiwiRGF0ZSIsIlRpbWUiLCJMZW5ndGgiLCJDdXN0b20iXSxfQT1bIklOIiwiT1QiLCJFUSIsIk5FIiwiR1QiLCJMVCIsIkdFIiwiTEUiXTtmdW5jdGlvbiBOaShIKXt2YXIgcmU9UmkoNCksWD1bcmVdLHdlPWptLmlu''@;'; + put 'put ''ZGV4T2YoSC50KTtpZih3ZTwwKXRocm93IG5ldyBFcnJvcigiQmFkIHZhbGlkYXRpb246IHVucmVjb2duaXplZCB0eXBlICIrSC50KTt2YXIgRmU9X0EuaW5kZXhPZihILm9wKTtzd2l0Y2god2Upe2Nhc2UgMDpjYXNlIDM6Y2FzZSA3OkZlPTA7YnJlYWs7ZGVmYXVsdDppZigtMT09RmUpdGhy''@;'; + put 'put ''b3cgbmV3IEVycm9yKCJCYWQgRGF0YSBWYWxpZGF0aW9uIHR5cGUgIitILm9wKyIgZm9yICIrSC50KX1yZS53cml0ZV9zaGlmdCgxLDB8d2UpLHJlLndyaXRlX3NoaWZ0KDEsMSkscmUud3JpdGVfc2hpZnQoMSwxMnxGZTw8NCkscmUud3JpdGVfc2hpZnQoMSwwKSxYLnB1c2goZnVuY3Rpb24g''@;'; + put 'put ''dXYoSCl7dmFyIHJlPUguc3BsaXQoL1xzKixccyovKSxYPVJpKDQpO1gud3JpdGVfc2hpZnQoNCxyZS5sZW5ndGgpO3ZhciB3ZT1bWF07cmV0dXJuIHJlLmZvckVhY2goZnVuY3Rpb24oeGUpe3dlLnB1c2goR3AoRm8oeGUpKSl9KSxWKHdlKX0oInN0cmluZyI9PXR5cGVvZiBILnJlZj9ILnJl''@;'; + put 'put ''ZjpmYShILnJlZikpKTt2YXIgWmU9UmkoMTYpO1plLndyaXRlX3NoaWZ0KDQsNDI5NDk2NzI5NSksWmUud3JpdGVfc2hpZnQoNCw0Mjk0OTY3Mjk1KSxaZS53cml0ZV9zaGlmdCg0LDQyOTQ5NjcyOTUpLFplLndyaXRlX3NoaWZ0KDQsNDI5NDk2NzI5NSksWC5wdXNoKFplKTt2YXIgamU9Umko''@;'; + put 'put ''OCk7amUud3JpdGVfc2hpZnQoNCwwKSxqZS53cml0ZV9zaGlmdCg0LDApO3ZhciBZZT0xO3N3aXRjaChILnQpe2Nhc2UiQW55IjpYLnB1c2goamUpLFgucHVzaChqZSk7YnJlYWs7Y2FzZSJEZWNpbWFsIjpjYXNlIkxlbmd0aCI6Y2FzZSJXaG9sZSI6aWYobnVsbCE9SC52fHxudWxsIT1ILmYp''@;'; + put 'put ''WC5wdXNoKCJudW1iZXIiPT10eXBlb2YgSC52P0tFKEgudik6VG0obnVsbD09SC52P0guZjpILnYpKTtlbHNle2lmKG51bGw9PUgubWlufHxudWxsPT1ILm1heCl0aHJvdyJVbnN1cHBvcnRlZCBEYXRhIFZhbGlkYXRpb246IGB2YCBvciBgbWluYCtgbWF4YCByZXF1aXJlZCBmb3IgVHlwZSAi''@;'; + put 'put ''K0gudDtYLnB1c2goIm51bWJlciI9PXR5cGVvZiBILm1pbj9LRShILm1pbik6VG0oSC5taW4pKSxYLnB1c2goIm51bWJlciI9PXR5cGVvZiBILm1heD9LRShILm1heCk6VG0oSC5tYXgpKSxZZT0yfWJyZWFrO2Nhc2UiTGlzdCI6aWYobnVsbCE9SC5sKXtYLnB1c2gockEoSC5sLmpvaW4oIiwi''@;'; + put 'put ''KSkpO2JyZWFrfWNhc2UiQ3VzdG9tIjppZigibnVsbCIhPUguZil7WC5wdXNoKFRtKEguZikpO2JyZWFrfXRocm93IlVuc3VwcG9ydGVkIERhdGEgVmFsaWRhdGlvbjogYGZgIisoIkxpc3QiPT1ILnQ/IiBvciBgbGAiOiIiKSsiIHJlcXVpcmVkIGZvciBUeXBlICIrSC50O2RlZmF1bHQ6dGhy''@;'; + put 'put ''b3ciWExTQiBkb2VzIG5vdCBzdXBwb3J0IERhdGEgVmFsaWRhdGlvbiB0eXBlICIrSC50fXJldHVybiAxPT1ZZSYmWC5wdXNoKGplKSxWKFgpfWZ1bmN0aW9uIFptKEgscmUsWCx3ZSx4ZSxGZSxaZSl7aWYodm9pZCAwPT09cmUudiYmbnVsbD09cmUuc3x8InoiPT09cmUudCYmIXhlLnNoZWV0''@;'; + put 'put ''U3R1YnMpcmV0dXJuITE7dmFyIGplPSIiO3N3aXRjaChyZS50KXtjYXNlImIiOmplPXJlLnY/IjEiOiIwIjticmVhaztjYXNlImQiOihyZT1sbihyZSkpLno9cmUuenx8Ri5fdGFibGVbMTRdLHJlLnY9ZnQoZG4ocmUudikpLHJlLnQ9Im4iO2JyZWFrO2Nhc2UibiI6Y2FzZSJlIjpqZT0iIity''@;'; + put 'put ''ZS52O2JyZWFrO2RlZmF1bHQ6amU9cmUudn12YXIgWWU9e3I6WCxjOndlfTtzd2l0Y2goWWUucz1ZMSh4ZS5jZWxsWGZzLHhlLmNlbGxTdHlsZVhmcyxyZSx4ZSkscmUubCYmRmVbIiFsaW5rcyJdLnB1c2goW1kwKFllKSxyZS5sXSkscmUuYyYmRmVbIiFjb21tZW50cyJdLnB1c2goW1kwKFll''@;'; + put 'put ''KSxyZS5jXSkscmUudCl7Y2FzZSJzIjpjYXNlInN0ciI6aWYoeGUuYm9va1NTVCl7aWYoamU9QzYoeGUuU3RyaW5ncyxyZS52LHJlLlI/cmUucj11NihyZS5SKTpudWxsLHhlLnJldlN0cmluZ3MpLHJlLlIpZm9yKHZhciBNdD0wO010PHJlLlIubGVuZ3RoOysrTXQpcmUuUltNdF0ucyYmWTEo''@;'; + put 'put ''eGUuY2VsbFhmcyx4ZS5jZWxsU3R5bGVYZnMse3Q6Im4iLHY6MCxzOnJlLlJbTXRdLnN9LHhlKTtZZS50PSJzIixZZS52PWplLFplP0MwKEgsIkJydFNob3J0SXNzdCIsZnVuY3Rpb24gWTQoSCxyZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoOCkpLEFoKHJlLFgpLFgud3JpdGVfc2hpZnQo''@;'; + put 'put ''NCxyZS52KSxYfSgwLFllKSk6QzAoSCwiQnJ0Q2VsbElzc3QiLGZ1bmN0aW9uIFBkKEgscmUsWCl7cmV0dXJuIG51bGw9PVgmJihYPVJpKDEyKSksUzQocmUsWCksWC53cml0ZV9zaGlmdCg0LHJlLnYpLFh9KDAsWWUpKX1lbHNlIFllLnQ9InN0ciIsWmU/QzAoSCwiQnJ0U2hvcnRTdCIsZnVu''@;'; + put 'put ''Y3Rpb24gUl8oSCxyZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoOCs0Kkgudi5sZW5ndGgpKSxBaChyZSxYKSxsdShILnYsWCksWC5sZW5ndGg+WC5sP1guc2xpY2UoMCxYLmwpOlh9KHJlLFllKSk6QzAoSCwiQnJ0Q2VsbFN0IixmdW5jdGlvbiB5NShILHJlLFgpe3JldHVybiBudWxsPT1Y''@;'; + put 'put ''JiYoWD1SaSgxMis0Kkgudi5sZW5ndGgpKSxTNChyZSxYKSxsdShILnYsWCksWC5sZW5ndGg+WC5sP1guc2xpY2UoMCxYLmwpOlh9KHJlLFllKSk7cmV0dXJuITA7Y2FzZSJuIjpyZXR1cm4gcmUudj09KDB8cmUudikmJnJlLnY+LTFlMyYmcmUudjwxZTM/WmU/QzAoSCwiQnJ0U2hvcnRSayIs''@;'; + put 'put ''ZnVuY3Rpb24gRmQoSCxyZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoOCkpLEFoKHJlLFgpLENNKEgudixYKSxYfShyZSxZZSkpOkMwKEgsIkJydENlbGxSayIsZnVuY3Rpb24gQmgoSCxyZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoMTIpKSxTNChyZSxYKSxDTShILnYsWCksWH0ocmUs''@;'; + put 'put ''WWUpKTpaZT9DMChILCJCcnRTaG9ydFJlYWwiLGZ1bmN0aW9uIEE1KEgscmUsWCl7cmV0dXJuIG51bGw9PVgmJihYPVJpKDEyKSksQWgocmUsWCksdWYoSC52LFgpLFh9KHJlLFllKSk6QzAoSCwiQnJ0Q2VsbFJlYWwiLGZ1bmN0aW9uIHY1KEgscmUsWCl7cmV0dXJuIG51bGw9PVgmJihYPVJp''@;'; + put 'put ''KDE2KSksUzQocmUsWCksdWYoSC52LFgpLFh9KHJlLFllKSksITA7Y2FzZSJiIjpyZXR1cm4gWWUudD0iYiIsWmU/QzAoSCwiQnJ0U2hvcnRCb29sIixmdW5jdGlvbiB3QShILHJlLFgpe3JldHVybiBudWxsPT1YJiYoWD1SaSg1KSksQWgocmUsWCksWC53cml0ZV9zaGlmdCgxLEgudj8xOjAp''@;'; + put 'put ''LFh9KHJlLFllKSk6QzAoSCwiQnJ0Q2VsbEJvb2wiLGZ1bmN0aW9uIHRjKEgscmUsWCl7cmV0dXJuIG51bGw9PVgmJihYPVJpKDkpKSxTNChyZSxYKSxYLndyaXRlX3NoaWZ0KDEsSC52PzE6MCksWH0ocmUsWWUpKSwhMDtjYXNlImUiOnJldHVybiBZZS50PSJlIixaZT9DMChILCJCcnRTaG9y''@;'; + put 'put ''dEVycm9yIixmdW5jdGlvbiBtNShILHJlLFgpe3JldHVybiBudWxsPT1YJiYoWD1SaSg4KSksQWgocmUsWCksWC53cml0ZV9zaGlmdCgxLEgudiksWC53cml0ZV9zaGlmdCgyLDApLFgud3JpdGVfc2hpZnQoMSwwKSxYfShyZSxZZSkpOkMwKEgsIkJydENlbGxFcnJvciIsZnVuY3Rpb24gemko''@;'; + put 'put ''SCxyZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoOSkpLFM0KHJlLFgpLFgud3JpdGVfc2hpZnQoMSxILnYpLFh9KHJlLFllKSksITB9cmV0dXJuIFplP0MwKEgsIkJydFNob3J0QmxhbmsiLGZ1bmN0aW9uIEwzKEgscmUsWCl7cmV0dXJuIG51bGw9PVgmJihYPVJpKDQpKSxBaChyZSxYKX0o''@;'; + put 'put ''MCxZZSkpOkMwKEgsIkJydENlbGxCbGFuayIsZnVuY3Rpb24gT18oSCxyZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoOCkpLFM0KHJlLFgpfSgwLFllKSksITB9ZnVuY3Rpb24ga3goSCxyZSxYLHdlKXt2YXIgeGU9UTIoKSxGZT1YLlNoZWV0TmFtZXNbSF0sWmU9WC5TaGVldHNbRmVdfHx7''@;'; + put 'put ''fSxqZT1GZTt0cnl7WCYmWC5Xb3JrYm9vayYmKGplPVguV29ya2Jvb2suU2hlZXRzW0hdLkNvZGVOYW1lfHxqZSl9Y2F0Y2goTXQpe312YXIgWWU9Rm8oWmVbIiFyZWYiXXx8IkExIik7aWYoWWUuZS5jPjE2MzgzfHxZZS5lLnI+MTA0ODU3NSl7aWYocmUuV1RGKXRocm93IG5ldyBFcnJvcigi''@;'; + put 'put ''UmFuZ2UgIisoWmVbIiFyZWYiXXx8IkExIikrIiBleGNlZWRzIGZvcm1hdCBsaW1pdCBBMTpYRkQxMDQ4NTc2Iik7WWUuZS5jPU1hdGgubWluKFllLmUuYywxNjM4MyksWWUuZS5yPU1hdGgubWluKFllLmUuYywxMDQ4NTc1KX1yZXR1cm4gWmVbIiFsaW5rcyJdPVtdLFplWyIhY29tbWVudHMi''@;'; + put 'put ''XT1bXSxDMCh4ZSwiQnJ0QmVnaW5TaGVldCIpLChYLnZiYXJhd3x8WmVbIiFvdXRsaW5lIl0pJiZDMCh4ZSwiQnJ0V3NQcm9wIixmdW5jdGlvbiBRQihILHJlLFgpe251bGw9PVgmJihYPVJpKDg0KzQqSC5sZW5ndGgpKTt2YXIgd2U9MTkyO3JlJiYocmUuYWJvdmUmJih3ZSY9LTY1KSxyZS5s''@;'; + put 'put ''ZWZ0JiYod2UmPS0xMjkpKSxYLndyaXRlX3NoaWZ0KDEsd2UpO2Zvcih2YXIgeGU9MTt4ZTwzOysreGUpWC53cml0ZV9zaGlmdCgxLDApO3JldHVybiBqZih7YXV0bzoxfSxYKSxYLndyaXRlX3NoaWZ0KC00LC0xKSxYLndyaXRlX3NoaWZ0KC00LC0xKSxfTShILFgpLFguc2xpY2UoMCxYLmwp''@;'; + put 'put ''fShqZSxaZVsiIW91dGxpbmUiXSkpLEMwKHhlLCJCcnRXc0RpbSIsRTYoWWUpKSxmdW5jdGlvbiBDeChILHJlLFgpe0MwKEgsIkJydEJlZ2luV3NWaWV3cyIpLEMwKEgsIkJydEJlZ2luV3NWaWV3IixmdW5jdGlvbiBZbihILHJlLFgpe251bGw9PVgmJihYPVJpKDMwKSk7dmFyIHdlPTkyNDty''@;'; + put 'put ''ZXR1cm4oKChyZXx8e30pLlZpZXdzfHxbXSlbMF18fHt9KS5SVEwmJih3ZXw9MzIpLG5yKEhbIiFncmlkbGluZXMiXSkmJih3ZSY9LTUpLG5yKCgoKHJlfHx7fSkuVmlld3N8fFtdKVswXXx8e30pLmdyaWQpJiYod2UmPS01KSxYLndyaXRlX3NoaWZ0KDIsd2UpLFgud3JpdGVfc2hpZnQoNCww''@;'; + put 'put ''KSxYLndyaXRlX3NoaWZ0KDQsMCksWC53cml0ZV9zaGlmdCg0LDApLFgud3JpdGVfc2hpZnQoMSwwKSxYLndyaXRlX3NoaWZ0KDEsMCksWC53cml0ZV9zaGlmdCgyLDApLFgud3JpdGVfc2hpZnQoMiwxMDApLFgud3JpdGVfc2hpZnQoMiwwKSxYLndyaXRlX3NoaWZ0KDIsMCksWC53cml0ZV9z''@;'; + put 'put ''aGlmdCgyLDApLFgud3JpdGVfc2hpZnQoNCwwKSxYfShyZSxYKSkscmVbIiFmcmVlemUiXSYmQzAoSCwiQnJ0UGFuZSIsZnVuY3Rpb24gc3QoSCl7dmFyIHJlPXVsKEhbIiFmcmVlemUiXSksWD1SaSgyOSk7cmV0dXJuIFgud3JpdGVfc2hpZnQoOCxyZS5jLCJmIiksWC53cml0ZV9zaGlmdCg4''@;'; + put 'put ''LHJlLnIsImYiKSxYLndyaXRlX3NoaWZ0KDQscmUuciksWC53cml0ZV9zaGlmdCg0LHJlLmMpLFgud3JpdGVfc2hpZnQoNCwwKSxYLndyaXRlX3NoaWZ0KDEsMyksWH0ocmUpKSxyZVsiIXNlbCJdJiZDMChILCJCcnRTZWwiLGZ1bmN0aW9uIHc1KEgscmUpe3ZhciBYPVJpKDM2KSx3ZT1ILmNl''@;'; + put 'put ''bGw7aWYoIXdlKXtpZighSC5yYW5nZSl0aHJvdyBuZXcgRXJyb3IoIk11c3Qgc3BlY2lmeSBhIHNlbGVjdGlvbiBjZWxsIG9yIHJhbmdlIik7d2U9WTAodnMoSC5yYW5nZS5yZXBsYWNlKC9ccy4qJC8sIiIpKS5zKX12YXIgeGU9InN0cmluZyI9PXR5cGVvZiB3ZT91bCh3ZSk6d2U7aWYocmUp''@;'; + put 'put ''e3ZhciBGZT0ic3RyaW5nIj09dHlwZW9mIHJlP3VsKHJlKTpyZTtYLndyaXRlX3NoaWZ0KDQseGUucj49RmUuciYmeGUuYz49RmUuYz8wOnhlLnI+PUZlLnImJnhlLmM8RmUuYz8yOnhlLnI8RmUuciYmeGUuYz49RmUuYz8xOjMpfWVsc2UgWC53cml0ZV9zaGlmdCg0LDMpO3JldHVybiBYLndy''@;'; + put 'put ''aXRlX3NoaWZ0KDQseGUuciksWC53cml0ZV9zaGlmdCg0LHhlLmMpLFgud3JpdGVfc2hpZnQoNCwwKSxYLndyaXRlX3NoaWZ0KDQsMSksWC53cml0ZV9zaGlmdCg0LHhlLnIpLFgud3JpdGVfc2hpZnQoNCx4ZS5yKSxYLndyaXRlX3NoaWZ0KDQseGUuYyksWC53cml0ZV9zaGlmdCg0LHhlLmMp''@;'; + put 'put ''LFh9KHJlWyIhc2VsIl0scmVbIiFmcmVlemUiXSkpLEMwKEgsIkJydEVuZFdzVmlldyIpLEMwKEgsIkJydEVuZFdzVmlld3MiKX0oeGUsWmUsWC5Xb3JrYm9vayksZnVuY3Rpb24gUTQoSCxyZSl7IXJlfHwhcmVbIiFjb2xzIl18fChDMChILCJCcnRCZWdpbkNvbEluZm9zIikscmVbIiFjb2xz''@;'; + put 'put ''Il0uZm9yRWFjaChmdW5jdGlvbihYLHdlKXtYJiZDMChILCJCcnRDb2xJbmZvIixmdW5jdGlvbiBmMShILHJlLFgpe251bGw9PVgmJihYPVJpKDE4KSk7dmFyIHdlPWs2KEgscmUpO1gud3JpdGVfc2hpZnQoLTQsSCksWC53cml0ZV9zaGlmdCgtNCxIKSxYLndyaXRlX3NoaWZ0KDQsMjU2Kih3''@;'; + put 'put ''ZS53aWR0aHx8MTApKSxYLndyaXRlX3NoaWZ0KDQsMCk7dmFyIHhlPTA7cmV0dXJuIHJlLmhpZGRlbiYmKHhlfD0xKSwibnVtYmVyIj09dHlwZW9mIHdlLndpZHRoJiYoeGV8PTIpLHJlLmxldmVsJiYoeGV8PXJlLmxldmVsPDw4KSxYLndyaXRlX3NoaWZ0KDIseGUpLFh9KHdlLFgpKX0pLEMw''@;'; + put 'put ''KEgsIkJydEVuZENvbEluZm9zIikpfSh4ZSxaZSksZnVuY3Rpb24gTl8oSCxyZSxYLHdlKXt2YXIgeGU9Rm8ocmVbIiFyZWYiXXx8IkExIiksWmU9IiIsamU9W107QzAoSCwiQnJ0QmVnaW5TaGVldERhdGEiKTt2YXIgWWU9QXJyYXkuaXNBcnJheShyZSksTXQ9eGUuZS5yO3JlWyIhcm93cyJd''@;'; + put 'put ''JiYoTXQ9TWF0aC5tYXgoeGUuZS5yLHJlWyIhcm93cyJdLmxlbmd0aC0xKSk7Zm9yKHZhciB4dD14ZS5zLnI7eHQ8PU10OysreHQpe1plPVhhKHh0KSxZQihILHJlLHhlLHh0KTt2YXIgUnQ9ITE7aWYoeHQ8PXhlLmUucilmb3IodmFyIFl0PXhlLnMuYztZdDw9eGUuZS5jOysrWXQpe3h0PT09''@;'; + put 'put ''eGUucy5yJiYoamVbWXRdPV9hKFl0KSk7dmFyIG5uPVllPyhyZVt4dF18fFtdKVtZdF06cmVbamVbWXRdK1plXTtSdD0hIW5uJiZabShILG5uLHh0LFl0LHdlLHJlLFJ0KX19QzAoSCwiQnJ0RW5kU2hlZXREYXRhIil9KHhlLFplLDAscmUpLGZ1bmN0aW9uIGVQKEgscmUpeyFyZVsiIXByb3Rl''@;'; + put 'put ''Y3QiXXx8QzAoSCwiQnJ0U2hlZXRQcm90ZWN0aW9uIixmdW5jdGlvbiAkQihILHJlKXtyZXR1cm4gbnVsbD09cmUmJihyZT1SaSg2NikpLHJlLndyaXRlX3NoaWZ0KDIsSC5wYXNzd29yZD9TdihILnBhc3N3b3JkKTowKSxyZS53cml0ZV9zaGlmdCg0LDEpLFtbIm9iamVjdHMiLCExXSxbInNj''@;'; + put 'put ''ZW5hcmlvcyIsITFdLFsiZm9ybWF0Q2VsbHMiLCEwXSxbImZvcm1hdENvbHVtbnMiLCEwXSxbImZvcm1hdFJvd3MiLCEwXSxbImluc2VydENvbHVtbnMiLCEwXSxbImluc2VydFJvd3MiLCEwXSxbImluc2VydEh5cGVybGlua3MiLCEwXSxbImRlbGV0ZUNvbHVtbnMiLCEwXSxbImRlbGV0ZVJv''@;'; + put 'put ''d3MiLCEwXSxbInNlbGVjdExvY2tlZENlbGxzIiwhMV0sWyJzb3J0IiwhMF0sWyJhdXRvRmlsdGVyIiwhMF0sWyJwaXZvdFRhYmxlcyIsITBdLFsic2VsZWN0VW5sb2NrZWRDZWxscyIsITFdXS5mb3JFYWNoKGZ1bmN0aW9uKFgpe3JlLndyaXRlX3NoaWZ0KDQsWFsxXT9udWxsPT1IW1hbMF1d''@;'; + put 'put ''fHxIW1hbMF1dPzA6MTpudWxsIT1IW1hbMF1dJiZIW1hbMF1dPzA6MSl9KSxyZX0ocmVbIiFwcm90ZWN0Il0pKX0oeGUsWmUpLGZ1bmN0aW9uIHptKEgscmUsWCx3ZSl7aWYocmVbIiFhdXRvZmlsdGVyIl0pe3ZhciB4ZT1yZVsiIWF1dG9maWx0ZXIiXSxGZT0ic3RyaW5nIj09dHlwZW9mIHhl''@;'; + put 'put ''LnJlZj94ZS5yZWY6ZmEoeGUucmVmKTtYLldvcmtib29rfHwoWC5Xb3JrYm9vaz17U2hlZXRzOltdfSksWC5Xb3JrYm9vay5OYW1lc3x8KFguV29ya2Jvb2suTmFtZXM9W10pO3ZhciBaZT1YLldvcmtib29rLk5hbWVzLGplPXZzKEZlKTtqZS5zLnI9PWplLmUuciYmKGplLmUucj12cyhyZVsi''@;'; + put 'put ''IXJlZiJdKS5lLnIsRmU9ZmEoamUpKTtmb3IodmFyIFllPTA7WWU8WmUubGVuZ3RoOysrWWUpe3ZhciBNdD1aZVtZZV07aWYoIl94bG5tLl9GaWx0ZXJEYXRhYmFzZSI9PU10Lk5hbWUmJk10LlNoZWV0PT13ZSl7TXQuUmVmPSInIitYLlNoZWV0TmFtZXNbd2VdKyInISIrRmU7YnJlYWt9fVll''@;'; + put 'put ''PT1aZS5sZW5ndGgmJlplLnB1c2goe05hbWU6Il94bG5tLl9GaWx0ZXJEYXRhYmFzZSIsU2hlZXQ6d2UsUmVmOiInIitYLlNoZWV0TmFtZXNbd2VdKyInISIrRmV9KSxDMChILCJCcnRCZWdpbkFGaWx0ZXIiLEdwKEZvKEZlKSkpLEMwKEgsIkJydEVuZEFGaWx0ZXIiKX19KHhlLFplLFgsSCks''@;'; + put 'put ''ZnVuY3Rpb24geXgoSCxyZSl7IXJlfHwhcmVbIiFtZXJnZXMiXXx8KEMwKEgsIkJydEJlZ2luTWVyZ2VDZWxscyIsZnVuY3Rpb24gVHQoSCxyZSl7cmV0dXJuIG51bGw9PXJlJiYocmU9UmkoNCkpLHJlLndyaXRlX3NoaWZ0KDQsSCkscmV9KHJlWyIhbWVyZ2VzIl0ubGVuZ3RoKSkscmVbIiFt''@;'; + put 'put ''ZXJnZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKFgpe0MwKEgsIkJydE1lcmdlQ2VsbCIseWEoWCkpfSksQzAoSCwiQnJ0RW5kTWVyZ2VDZWxscyIpKX0oeGUsWmUpLGZ1bmN0aW9uIHRQKEgscmUpe2lmKHJlKXtDMChILCJCcnRCZWdpbkRWYWxzIixmdW5jdGlvbiBIXyhILHJlKXtudWxsPT1yZSYm''@;'; + put 'put ''KHJlPVJpKDE4KSkscmUud3JpdGVfc2hpZnQoMiwwKSxyZS53cml0ZV9zaGlmdCg0LDApLHJlLndyaXRlX3NoaWZ0KDQsMCkscmUud3JpdGVfc2hpZnQoNCwwKTtmb3IodmFyIFg9MCx3ZT0wO3dlPEgubGVuZ3RoOysrd2UpKChIW3dlXXx8e30pLnJlZnx8e30pLnMmJkhbd2VdLnJlZi5zLmM8''@;'; + put 'put ''MHx8KytYO3JldHVybiByZS53cml0ZV9zaGlmdCg0LFgpLHJlfShyZSkpO2Zvcih2YXIgWD0wO1g8cmUubGVuZ3RoOysrWCkoKHJlW1hdfHx7fSkucmVmfHx7fSkucyYmcmVbWF0ucmVmLnMuYzwwfHxDMChILCJCcnREVmFsIixOaShyZVtYXSkpO0MwKEgsIkJydEVuZERWYWxzIil9fSh4ZSxa''@;'; + put 'put ''ZVsiIXZhbGlkYXRpb25zIl0pLGZ1bmN0aW9uIGJ4KEgscmUsWCl7cmVbIiFsaW5rcyJdLmZvckVhY2goZnVuY3Rpb24od2Upe2lmKHdlWzFdLlRhcmdldCl7dmFyIHhlPUp0KFgsLTEsd2VbMV0uVGFyZ2V0LnJlcGxhY2UoLyMuKiQvLCIiKSxwdC5ITElOSyk7QzAoSCwiQnJ0SExpbmsiLGZ1''@;'; + put 'put ''bmN0aW9uIEtCKEgscmUpe3ZhciBYPVJpKDUwKzQqKEhbMV0uVGFyZ2V0Lmxlbmd0aCsoSFsxXS5Ub29sdGlwfHwiIikubGVuZ3RoKSk7R3Aoe3M6dWwoSFswXSksZTp1bChIWzBdKX0sWCksenAoInJJZCIrcmUsWCk7dmFyIHdlPUhbMV0uVGFyZ2V0LmluZGV4T2YoIiMiKTtyZXR1cm4gbHUo''@;'; + put 'put ''KC0xPT13ZT8iIjpIWzFdLlRhcmdldC5zbGljZSh3ZSsxKSl8fCIiLFgpLGx1KEhbMV0uVG9vbHRpcHx8IiIsWCksbHUoIiIsWCksWC5zbGljZSgwLFgubCl9KHdlLHhlKSl9fSksZGVsZXRlIHJlWyIhbGlua3MiXX0oeGUsWmUsd2UpLFplWyIhbWFyZ2lucyJdJiZDMCh4ZSwiQnJ0TWFyZ2lu''@;'; + put 'put ''cyIsZnVuY3Rpb24gQXgoSCxyZSl7cmV0dXJuIG51bGw9PXJlJiYocmU9UmkoNDgpKSxPZChIKSxfaS5mb3JFYWNoKGZ1bmN0aW9uKFgpe3VmKEhbWF0scmUpfSkscmV9KFplWyIhbWFyZ2lucyJdKSksKCFyZXx8cmUuaWdub3JlRUN8fG51bGw9PXJlLmlnbm9yZUVDKSYmZnVuY3Rpb24gd3go''@;'; + put 'put ''SCxyZSl7IXJlfHwhcmVbIiFyZWYiXXx8KEMwKEgsIkJydEJlZ2luQ2VsbElnbm9yZUVDcyIpLEMwKEgsIkJydENlbGxJZ25vcmVFQyIsZnVuY3Rpb24gRl8oSCl7dmFyIHJlPVJpKDI0KTtyZXR1cm4gcmUud3JpdGVfc2hpZnQoNCw0KSxyZS53cml0ZV9zaGlmdCg0LDEpLEdwKEgscmUpLHJl''@;'; + put 'put ''fShGbyhyZVsiIXJlZiJdKSkpLEMwKEgsIkJydEVuZENlbGxJZ25vcmVFQ3MiKSl9KHhlLFplKSxmdW5jdGlvbiBfeChILHJlLFgsd2Upe2lmKHJlWyIhY29tbWVudHMiXS5sZW5ndGg+MCl7dmFyIHhlPUp0KHdlLC0xLCIuLi9kcmF3aW5ncy92bWxEcmF3aW5nIisoWCsxKSsiLnZtbCIscHQu''@;'; + put 'put ''Vk1MKTtDMChILCJCcnRMZWdhY3lEcmF3aW5nIix6cCgicklkIit4ZSkpLHJlWyIhbGVnYWN5Il09eGV9fSh4ZSxaZSxILHdlKSxDMCh4ZSwiQnJ0RW5kU2hlZXQiKSx4ZS5lbmQoKX1mdW5jdGlvbiBWXyhIKXt2YXIgd2UscmU9W10sWD1ILm1hdGNoKC9ePGM6bnVtQ2FjaGU+Lyk7KEgubWF0''@;'; + put 'put ''Y2goLzxjOnB0IGlkeD0iKFxkKikiPiguKj8pPFwvYzpwdD4vZ20pfHxbXSkuZm9yRWFjaChmdW5jdGlvbihGZSl7dmFyIFplPUZlLm1hdGNoKC88YzpwdCBpZHg9IihcZCo/KSI+PGM6dj4oLiopPFwvYzp2PjxcL2M6cHQ+Lyk7IVplfHwocmVbK1plWzFdXT1YPytaZVsyXTpaZVsyXSl9KTt2''@;'; + put 'put ''YXIgeGU9Z3IoKEgubWF0Y2goLzxjOmZvcm1hdENvZGU+KFtcc1xTXSo/KTxcL2M6Zm9ybWF0Q29kZT4vKXx8WyIiLCJHZW5lcmFsIl0pWzFdKTtyZXR1cm4oSC5tYXRjaCgvPGM6Zj4oLio/KTxcL2M6Zj4vZ20pfHxbXSkuZm9yRWFjaChmdW5jdGlvbihGZSl7d2U9RmUucmVwbGFjZSgvPC4q''@;'; + put 'put ''Pz4vZywiIil9KSxbcmUseGUsd2VdfXB0LkNIQVJUPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2NoYXJ0IixwdC5DSEFSVEVYPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDE0L3JlbGF0''@;'; + put 'put ''aW9uc2hpcHMvY2hhcnRFeCI7dmFyIE14PS88KD86XHcrOik/Y2hhcnQ+KFtcc1xTXSo/KTxcLyg/Olx3KzopP2NoYXJ0Pi8sblA9LzwoPzpcdys6KT9wbG90QXJlYT4oW1xzXFNdKj8pPFwvKD86XHcrOik/cGxvdEFyZWE+LyxFeD0vPCg/Olx3KzopP2xlZ2VuZD4oW1xzXFNdKj8pPFwvKD86''@;'; + put 'put ''XHcrOik/bGVnZW5kPi8sclA9LzwoPzpcdys6KT90aXRsZT4oW1xzXFNdKj8pPFwvKD86XHcrOik/dGl0bGU+LztmdW5jdGlvbiB4eChILHJlLFgsd2UseGUsRmUsWmUsamUpe3ZhciBZZT1GZXx8eyIhdHlwZSI6ImNoYXJ0In07aWYoIUgpcmV0dXJuIEZlO1plJiZaZS5BbmNob3ImJihZZVsi''@;'; + put 'put ''IXBvcyJdPXlmKFplLkFuY2hvcixqZSksWWVbIiFwb3NUeXBlIl09WmUuQW5jaG9yLnR5cGUucmVwbGFjZSgvQW5jaG9yLywiIiksWWVbIiFhYnNwb3MiXT15ZihaZS5BbmNob3IsamUpLFllWyIhcmVscG9zIl09RGIoWmUuQW5jaG9yLGplKSksWWVbIiFwbG90Il09W107dmFyIE10PSIiLHh0''@;'; + put 'put ''PSIiLFJ0PUgubWF0Y2goTXgpO1J0PyhNdD1ILnNsaWNlKDAsUnQuaW5kZXgpLHh0PUguc2xpY2UoUnQuaW5kZXgrUnRbMF0ubGVuZ3RoKSk6TXQ9eHQ9SDt2YXIgWXQ9W10sbm49TXQubWF0Y2goLzxjOmxhbmcuKj8+Lyl8fEgubWF0Y2goLzxjOmxhbmcuKj8+Lyl8fHh0Lm1hdGNoKC88Yzps''@;'; + put 'put ''YW5nLio/Pi8pO3JldHVybiBubiYmKFllWyIhbGFuZyJdPShlbihublswXSl8fHt9KS52YWx8fCJlbi1VUyIpLFJ0JiYoKFl0PVJ0WzFdLm1hdGNoKHJQKSkmJmZ1bmN0aW9uIFN4KEgscmUpe3ZhciBYPSIiO0gubWF0Y2goLzxjOnJpY2g+LykmJkgucmVwbGFjZSgvPGE6dD4oW1xzXFNdKj8p''@;'; + put 'put ''PFwvYTp0Pi9nLGZ1bmN0aW9uKHdlLHhlKXtYKz14ZX0pLHJlWyIhdGl0bGUiXT1YfHwiQ2hhcnQgVGl0bGUifShZdFsxXSxZZSksZnVuY3Rpb24gaVAoSCxyZSl7aWYoSCl7dmFyIFg9MCx3ZT0wLHhlPSJBIixGZT17czp7cjoyZTYsYzoyZTZ9LGU6e3I6MCxjOjB9fTtILnJlcGxhY2UoVHgs''@;'; + put 'put ''ZnVuY3Rpb24oWmUsamUpe3ZhciBZZT17dDpqZSxjOlgsdzowLHNlcjpbXX0sTXQ9W10seHQ9KFplLm1hdGNoKC88YzpzZXIvKXx8W10pLmluZGV4LFJ0PXh0P1plLnNsaWNlKDAseHQpOlplOyJzY2F0dGVyIj09amUmJihNdD1aZS5tYXRjaCgvPGM6c2NhdHRlclN0eWxlKFteXC8+XSopXC8+''@;'; + put 'put ''L20pKSYmZW4oTXRbMF0pLCJiYXIiPT1qZSYmKE10PVplLm1hdGNoKC88YzpiYXJEaXIoW15cLz5dKilcLz4vbSkpJiYoWWUuYmFyRGlyPSJiYXIiPT1lbihNdFswXSkudmFsPyJoIjoidiIpLChNdD1SdC5tYXRjaCgvPGM6Z3JvdXBpbmcoW15cLz5dKilcLz4vbSkpJiYoWWUuZ3JvdXBpbmc9''@;'; + put 'put ''ZW4oTXRbMF0pLnZhbHx8InN0YW5kYXJkIiksKFplLm1hdGNoKGI1KXx8W10pLmZvckVhY2goZnVuY3Rpb24obm4pe3ZhciBDbj1bXSxEdD17fSx6dD1bXTtpZihubi5tYXRjaCgvPGM6dHg+Lykpe3ZhciBQbj1WXygobm4ubWF0Y2goLzxjOnR4PihbXHNcU10qPyk8XC9jOnR4Pi8pfHxbXSlb''@;'; + put 'put ''MV18fCIiKXx8W107UG5bMF0mJlBuWzBdWzBdJiYoRHQubmFtZT1QblswXVswXSksUG5bMl0mJihEdC5uYW1lcmVmPVBuWzJdKX1bInhWYWwiLCJ5VmFsIiwiY2F0IiwidmFsIiwiYnViYmxlU2l6ZSJdLmZvckVhY2goZnVuY3Rpb24oVG4pe3ZhciBXbixPbj1ubi5tYXRjaChuZXcgUmVnRXhw''@;'; + put 'put ''KCI8YzoiK1RuKyI+W1xcc1xcU10qPzxcXC9jOiIrVG4rIj4iLCJnbSIpKTtPbiYmKChPblswXS5tYXRjaCgvPGM6Zj4oLio/KTxcL2M6Zj4vZ20pfHxbXSkuZm9yRWFjaChmdW5jdGlvbihNcil7V249TXIucmVwbGFjZSgvPC4qPz4vZywiIil9KSwoT25bMF0ubWF0Y2goLzxjOig/Olx3KilD''@;'; + put 'put ''YWNoZT5bXHNcU10qPzxcL2M6KD86XHcqKUNhY2hlPi9nbSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKE1yKXt2YXIgYWk9Vl8oTXIpO0ZlLnMucj1GZS5zLmM9MCxGZS5lLmM9WCx4ZT1fYShYKSxhaVswXS5mb3JFYWNoKGZ1bmN0aW9uKHlyLGFyKXtyZVt4ZStYYShhcildPXt0OiJudW1iZXIi''@;'; + put 'put ''PT10eXBlb2YgeXI/Im4iOiJzIix2OnlyLHo6YWlbMV19LHdlPWFyfSksRmUuZS5yPHdlJiYoRmUuZS5yPXdlKSwrK1gsWWUudysrLENuLnB1c2goVG4pLChhaVsyXXx8V24pJiZ6dC5wdXNoKGFpWzJdfHxXbiksInZhbCI9PVRuJiYoRHQuej1haVsxXXx8IkdlbmVyYWwiKX0pKX0pLChNdD1a''@;'; + put 'put ''ZS5tYXRjaCgvPGM6c21vb3RoKFteXC8+XSopXC8+L20pKSYmKER0LnNtb290aD1udWxsPT1lbihNdFswXSkudmFsfHxEaShlbihNdFswXSkudmFsKSksRHQuY29scz1DbixEdC5yYW5nZXM9enQsWWUuc2VyLnB1c2goRHQpfSksImRvdWdobnV0Ij09amUmJihNdD1aZS5tYXRjaCgvPGM6aG9s''@;'; + put 'put ''ZVNpemUoW15cLz5dKilcLz4vbSkpJiYoWWUuaG9sZT0oZW4oTXRbMF0pLnZhbHx8MTApLzEwMCkscmVbIiFwbG90Il0ucHVzaChZZSl9KSxYPjAmJihyZVsiIXJlZiJdPWZhKEZlKSl9fSgoUnRbMV0ubWF0Y2goblApfHxbXSlbMV0sWWUpLG51bGwhPShZdD1SdFsxXS5tYXRjaChFeCkpJiZm''@;'; + put 'put ''dW5jdGlvbiBVMShILHJlKXt2YXIgWDtyZVsiIWxlZ2VuZCJdPXtwb3M6InIifSwoWD1ILm1hdGNoKC88YzpsZWdlbmRQb3MoW15cLz5dKilcLz4vbSkpJiYocmVbIiFsZWdlbmQiXS5wb3M9ZW4oWFswXSkudmFsfHwiciIpfShZdFswXSxZZSkpLFllfXZhciBUeD0vPGM6KCg/OmFyZWF8bGlu''@;'; + put 'put ''ZXxzdG9ja3xyYWRhcnxzY2F0dGVyfHBpZXxkb3VnaG51dHxiYXJ8b2ZQaWV8c3VyZmFjZXxidWJibGUpKD86M0QpPylDaGFydFtePl0qPihbXHNcU10qPyk8XC9jOig/OmFyZWF8bGluZXxzdG9ja3xyYWRhcnxzY2F0dGVyfHBpZXxkb3VnaG51dHxiYXJ8b2ZQaWV8c3VyZmFjZXxidWJibGUp''@;'; + put 'put ''KD86M0QpP0NoYXJ0Pi9nbSxiNT0vPGM6c2VyPihbXHNcU10qPyk8XC9jOnNlcj4vZ207cHQuQ1M9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY2hhcnRzaGVldCI7dmFyIG9QPWJpKCJjaGFydHNoZWV0IixudWxs''@;'; + put 'put ''LHt4bWxuczpYMC5tYWluWzBdLCJ4bWxuczpyIjpYMC5yfSk7ZnVuY3Rpb24gYVAoSCxyZSxYLHdlKXt2YXIgeGU9W2NuLG9QXTtyZXR1cm4geGUucHVzaCgiPHNoZWV0UHIvPiIpLHhlLnB1c2goJzxzaGVldFZpZXdzPjxzaGVldFZpZXcgem9vbVNjYWxlPSIxMDAiIHdvcmtib29rVmlld0lk''@;'; + put 'put ''PSIwIiB6b29tVG9GaXQ9IjEiLz48L3NoZWV0Vmlld3M+JykseGVbeGUubGVuZ3RoXT1iaSgiZHJhd2luZyIsbnVsbCx7InI6aWQiOiJySWQxIn0pLEp0KHdlLC0xLCIuLi9kcmF3aW5ncy9kcmF3aW5nIisoSCsxKSsiLnhtbCIscHQuRFJBVykseGUubGVuZ3RoPjImJih4ZVt4ZS5sZW5ndGhd''@;'; + put 'put ''PSI8L2NoYXJ0c2hlZXQ+Iix4ZVsxXT14ZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSkseGUuam9pbigiIil9ZnVuY3Rpb24gUjMoKXt2YXIgSD1RMigpO3JldHVybiBDMChILCJCcnRCZWdpblNoZWV0IiksQzAoSCwiQnJ0RW5kU2hlZXQiKSxILmVuZCgpfXZhciBGaT1bWyJhbGxvd1JlZnJlc2hR''@;'; + put 'put ''dWVyeSIsITEsImJvb2wiXSxbImF1dG9Db21wcmVzc1BpY3R1cmVzIiwhMCwiYm9vbCJdLFsiYmFja3VwRmlsZSIsITEsImJvb2wiXSxbImNoZWNrQ29tcGF0aWJpbGl0eSIsITEsImJvb2wiXSxbIkNvZGVOYW1lIiwiIl0sWyJkYXRlMTkwNCIsITEsImJvb2wiXSxbImRlZmF1bHRUaGVtZVZl''@;'; + put 'put ''cnNpb24iLDAsImludCJdLFsiZmlsdGVyUHJpdmFjeSIsITEsImJvb2wiXSxbImhpZGVQaXZvdEZpZWxkTGlzdCIsITEsImJvb2wiXSxbInByb21wdGVkU29sdXRpb25zIiwhMSwiYm9vbCJdLFsicHVibGlzaEl0ZW1zIiwhMSwiYm9vbCJdLFsicmVmcmVzaEFsbENvbm5lY3Rpb25zIiwhMSwi''@;'; + put 'put ''Ym9vbCJdLFsic2F2ZUV4dGVybmFsTGlua1ZhbHVlcyIsITAsImJvb2wiXSxbInNob3dCb3JkZXJVbnNlbGVjdGVkVGFibGVzIiwhMCwiYm9vbCJdLFsic2hvd0lua0Fubm90YXRpb24iLCEwLCJib29sIl0sWyJzaG93T2JqZWN0cyIsImFsbCJdLFsic2hvd1Bpdm90Q2hhcnRGaWx0ZXIiLCEx''@;'; + put 'put ''LCJib29sIl0sWyJ1cGRhdGVMaW5rcyIsInVzZXJTZXQiXV0sQjM9W1siYWN0aXZlVGFiIiwwLCJpbnQiXSxbImF1dG9GaWx0ZXJEYXRlR3JvdXBpbmciLCEwLCJib29sIl0sWyJmaXJzdFNoZWV0IiwwLCJpbnQiXSxbIm1pbmltaXplZCIsITEsImJvb2wiXSxbInNob3dIb3Jpem9udGFsU2Ny''@;'; + put 'put ''b2xsIiwhMCwiYm9vbCJdLFsic2hvd1NoZWV0VGFicyIsITAsImJvb2wiXSxbInNob3dWZXJ0aWNhbFNjcm9sbCIsITAsImJvb2wiXSxbInRhYlJhdGlvIiw2MDAsImludCJdLFsidmlzaWJpbGl0eSIsInZpc2libGUiXV0sc1A9W10sTHg9W1siY2FsY0NvbXBsZXRlZCIsInRydWUiXSxbImNh''@;'; + put 'put ''bGNNb2RlIiwiYXV0byJdLFsiY2FsY09uU2F2ZSIsInRydWUiXSxbImNvbmN1cnJlbnRDYWxjIiwidHJ1ZSJdLFsiZnVsbENhbGNPbkxvYWQiLCJmYWxzZSJdLFsiZnVsbFByZWNpc2lvbiIsInRydWUiXSxbIml0ZXJhdGUiLCJmYWxzZSJdLFsiaXRlcmF0ZUNvdW50IiwiMTAwIl0sWyJpdGVy''@;'; + put 'put ''YXRlRGVsdGEiLCIwLjAwMSJdLFsicmVmTW9kZSIsIkExIl1dO2Z1bmN0aW9uIFBoKEgscmUpe2Zvcih2YXIgWD0wO1ghPUgubGVuZ3RoOysrWClmb3IodmFyIHdlPUhbWF0seGU9MDt4ZSE9cmUubGVuZ3RoOysreGUpe3ZhciBGZT1yZVt4ZV07aWYobnVsbD09d2VbRmVbMF1dKXdlW0ZlWzBd''@;'; + put 'put ''XT1GZVsxXTtlbHNlIHN3aXRjaChGZVsyXSl7Y2FzZSJib29sIjoic3RyaW5nIj09dHlwZW9mIHdlW0ZlWzBdXSYmKHdlW0ZlWzBdXT1EaSh3ZVtGZVswXV0pKTticmVhaztjYXNlImludCI6InN0cmluZyI9PXR5cGVvZiB3ZVtGZVswXV0mJih3ZVtGZVswXV09cGFyc2VJbnQod2VbRmVbMF1d''@;'; + put 'put ''LDEwKSl9fX1mdW5jdGlvbiAkZihILHJlKXtmb3IodmFyIFg9MDtYIT1yZS5sZW5ndGg7KytYKXt2YXIgd2U9cmVbWF07aWYobnVsbD09SFt3ZVswXV0pSFt3ZVswXV09d2VbMV07ZWxzZSBzd2l0Y2god2VbMl0pe2Nhc2UiYm9vbCI6InN0cmluZyI9PXR5cGVvZiBIW3dlWzBdXSYmKEhbd2Vb''@;'; + put 'put ''MF1dPURpKEhbd2VbMF1dKSk7YnJlYWs7Y2FzZSJpbnQiOiJzdHJpbmciPT10eXBlb2YgSFt3ZVswXV0mJihIW3dlWzBdXT1wYXJzZUludChIW3dlWzBdXSwxMCkpfX19ZnVuY3Rpb24gcWYoSCl7JGYoSC5XQlByb3BzLEZpKSwkZihILkNhbGNQcixMeCksUGgoSC5XQlZpZXcsQjMpLFBoKEgu''@;'; + put 'put ''U2hlZXRzLHNQKSxVYy5kYXRlMTkwND1EaShILldCUHJvcHMuZGF0ZTE5MDQpfXZhciBSeD0iXVsqPy9cXCIuc3BsaXQoIiIpO2Z1bmN0aW9uIEJ4KEgscmUpe2lmKEgubGVuZ3RoPjMxKXtpZihyZSlyZXR1cm4hMTt0aHJvdyBuZXcgRXJyb3IoIlNoZWV0IG5hbWVzIGNhbm5vdCBleGNlZWQg''@;'; + put 'put ''MzEgY2hhcnMiKX12YXIgWD0hMDtyZXR1cm4gUnguZm9yRWFjaChmdW5jdGlvbih3ZSl7aWYoLTEhPUguaW5kZXhPZih3ZSkpe2lmKCFyZSl0aHJvdyBuZXcgRXJyb3IoIlNoZWV0IG5hbWUgY2Fubm90IGNvbnRhaW4gOiBcXCAvID8gKiBbIF0iKTtYPSExfX0pLFh9dmFyIFB4PS88XHcrOndv''@;'; + put 'put ''cmtib29rLyxIeD1iaSgid29ya2Jvb2siLG51bGwse3htbG5zOlgwLm1haW5bMF0sInhtbG5zOnIiOlgwLnJ9KTtmdW5jdGlvbiBmUChILHJlKXt2YXIgWD1yZXx8e30sd2U9W2NuXTt3ZVt3ZS5sZW5ndGhdPUh4O3ZhciB4ZT1ILldvcmtib29rJiYoSC5Xb3JrYm9vay5OYW1lc3x8W10pLmxl''@;'; + put 'put ''bmd0aD4wO0guV29ya2Jvb2smJkguV29ya2Jvb2suTW9kaWZ5JiYod2Vbd2UubGVuZ3RoXT1mdW5jdGlvbiBfNShIKXt2YXIgcmU9e307cmV0dXJuIEgud2FybiYmKHJlLnJlYWRPbmx5UmVjb21tZW5kZWQ9MSkscmUudXNlck5hbWU9SC51c2VyfHwiU2hlZXQgSlMiLEguZW5jcnlwdGlvbiYm''@;'; + put 'put ''KEguZW5jcnlwdGlvbi5hbGdvJiYocmUuYWxnb3JpdGhtTmFtZT1ILmVuY3J5cHRpb24uYWxnbyksSC5lbmNyeXB0aW9uLmhhc2gmJihyZS5oYXNoVmFsdWU9SC5lbmNyeXB0aW9uLmhhc2gpLEguZW5jcnlwdGlvbi5zYWx0JiYocmUuc2FsdFZhbHVlPUguZW5jcnlwdGlvbi5zYWx0KSxILmVu''@;'; + put 'put ''Y3J5cHRpb24uc3BpbiYmKHJlLnNwaW5Db3VudD1ILmVuY3J5cHRpb24uc3BpbikpLGJpKCJmaWxlU2hhcmluZyIsbnVsbCxyZSl9KEguV29ya2Jvb2suTW9kaWZ5KSk7dmFyIEZlPXtjb2RlTmFtZToiVGhpc1dvcmtib29rIn07SC5Xb3JrYm9vayYmSC5Xb3JrYm9vay5XQlByb3BzJiYoRmku''@;'; + put 'put ''Zm9yRWFjaChmdW5jdGlvbihNdCl7bnVsbCE9SC5Xb3JrYm9vay5XQlByb3BzW010WzBdXSYmSC5Xb3JrYm9vay5XQlByb3BzW010WzBdXSE9TXRbMV0mJihGZVtNdFswXV09SC5Xb3JrYm9vay5XQlByb3BzW010WzBdXSl9KSxILldvcmtib29rLldCUHJvcHMuQ29kZU5hbWUmJihGZS5jb2Rl''@;'; + put 'put ''TmFtZT1ILldvcmtib29rLldCUHJvcHMuQ29kZU5hbWUsZGVsZXRlIEZlLkNvZGVOYW1lKSksd2Vbd2UubGVuZ3RoXT1iaSgid29ya2Jvb2tQciIsbnVsbCxGZSksSC5Xb3JrYm9vayYmSC5Xb3JrYm9vay5Qcm90ZWN0aW9uJiYod2Vbd2UubGVuZ3RoXT1mdW5jdGlvbiBGeChIKXt2YXIgcmU9''@;'; + put 'put ''e307cmV0dXJuIEgubG9ja1N0cnVjdHVyZSYmKHJlLmxvY2tTdHJ1Y3R1cmU9MSksSC5sb2NrV2luZG93cyYmKHJlLmxvY2tXaW5kb3dzPTEpLEguZW5jcnlwdGlvbiYmKEguZW5jcnlwdGlvbi5hbGdvJiYocmUud29ya2Jvb2tBbGdvcml0aG1OYW1lPUguZW5jcnlwdGlvbi5hbGdvKSxILmVu''@;'; + put 'put ''Y3J5cHRpb24uaGFzaCYmKHJlLndvcmtib29rSGFzaFZhbHVlPUguZW5jcnlwdGlvbi5oYXNoKSxILmVuY3J5cHRpb24uc2FsdCYmKHJlLndvcmtib29rU2FsdFZhbHVlPUguZW5jcnlwdGlvbi5zYWx0KSxILmVuY3J5cHRpb24uc3BpbiYmKHJlLndvcmtib29rU3BpbkNvdW50PUguZW5jcnlw''@;'; + put 'put ''dGlvbi5zcGluKSksYmkoIndvcmtib29rUHJvdGVjdGlvbiIsbnVsbCxyZSl9KEguV29ya2Jvb2suUHJvdGVjdGlvbikpO3ZhciBaZT1ILldvcmtib29rJiZILldvcmtib29rLlNoZWV0c3x8W10samU9MDtpZihaZSYmWmVbMF0mJlplWzBdLkhpZGRlbil7Zm9yKHdlW3dlLmxlbmd0aF09Ijxi''@;'; + put 'put ''b29rVmlld3M+IixqZT0wO2plIT1ILlNoZWV0TmFtZXMubGVuZ3RoJiZaZVtqZV0mJlplW2plXS5IaWRkZW47KytqZSk7amU9PUguU2hlZXROYW1lcy5sZW5ndGgmJihqZT0wKSx3ZVt3ZS5sZW5ndGhdPSc8d29ya2Jvb2tWaWV3IGZpcnN0U2hlZXQ9IicramUrJyIgYWN0aXZlVGFiPSInK2pl''@;'; + put 'put ''KyciLz4nLHdlW3dlLmxlbmd0aF09IjwvYm9va1ZpZXdzPiJ9Zm9yKHdlW3dlLmxlbmd0aF09IjxzaGVldHM+IixqZT0wO2plIT1ILlNoZWV0TmFtZXMubGVuZ3RoOysramUpe3ZhciBZZT17bmFtZTpScihILlNoZWV0TmFtZXNbamVdLnNsaWNlKDAsMzEpKX07aWYoWWUuc2hlZXRJZD0iIiso''@;'; + put 'put ''amUrMSksWWVbInI6aWQiXT0icklkIisoamUrMSksWmVbamVdKXN3aXRjaChaZVtqZV0uSGlkZGVuKXtjYXNlIDE6WWUuc3RhdGU9ImhpZGRlbiI7YnJlYWs7Y2FzZSAyOlllLnN0YXRlPSJ2ZXJ5SGlkZGVuIn13ZVt3ZS5sZW5ndGhdPWJpKCJzaGVldCIsbnVsbCxZZSl9cmV0dXJuIHdlW3dl''@;'; + put 'put ''Lmxlbmd0aF09Ijwvc2hlZXRzPiIsSC5FeHRlcm5hbFdCJiZILkV4dGVybmFsV0IubGVuZ3RoJiYod2Vbd2UubGVuZ3RoXT0iPGV4dGVybmFsUmVmZXJlbmNlcz4iLChILkV4dGVybmFsV0J8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKE10LHh0KXt2YXIgUnQ9SnQoWC53YnJlbHMsLTEsImV4dGVy''@;'; + put 'put ''bmFsTGlua3MvZXh0ZXJuYWxMaW5rIisoeHQrMSkrIi54bWwiLHB0LlhMSU5LKTt3ZVt3ZS5sZW5ndGhdPSc8ZXh0ZXJuYWxSZWZlcmVuY2UgcjppZD0icklkJytSdCsnIi8+J30pLHdlW3dlLmxlbmd0aF09IjwvZXh0ZXJuYWxSZWZlcmVuY2VzPiIpLHhlJiYod2Vbd2UubGVuZ3RoXT0iPGRl''@;'; + put 'put ''ZmluZWROYW1lcz4iLEguV29ya2Jvb2smJkguV29ya2Jvb2suTmFtZXMmJkguV29ya2Jvb2suTmFtZXMuZm9yRWFjaChmdW5jdGlvbihNdCl7dmFyIHh0PXtuYW1lOk10Lk5hbWV9O010LkNvbW1lbnQmJih4dC5jb21tZW50PU10LkNvbW1lbnQpLG51bGwhPU10LlNoZWV0JiYoeHQubG9jYWxT''@;'; + put 'put ''aGVldElkPSIiK010LlNoZWV0KSxNdC5IaWRkZW4mJih4dC5oaWRkZW49IjEiKSxNdC5SZWYmJih3ZVt3ZS5sZW5ndGhdPWJpKCJkZWZpbmVkTmFtZSIsUnIoTXQuUmVmKSx4dCkpfSksd2Vbd2UubGVuZ3RoXT0iPC9kZWZpbmVkTmFtZXM+IiksWCYmWC5waXZvdHMmJlgucGl2b3RzLmxlbmd0''@;'; + put 'put ''aD4wJiYod2UucHVzaCgiPHBpdm90Q2FjaGVzPiIpLFgucGl2b3RzLmZvckVhY2goZnVuY3Rpb24oTXQseHQpe3dlLnB1c2goJzxwaXZvdENhY2hlIGNhY2hlSWQ9IicrKHh0KzEpKyciIHI6aWQ9InJJZCcrTXRbMl0rJyIvPicpfSksd2UucHVzaCgiPC9waXZvdENhY2hlcz4iKSksd2UubGVu''@;'; + put 'put ''Z3RoPjImJih3ZVt3ZS5sZW5ndGhdPSI8L3dvcmtib29rPiIsd2VbMV09d2VbMV0ucmVwbGFjZSgiLz4iLCI+IikpLHdlLmpvaW4oIiIpfWZ1bmN0aW9uIHpfKEgscmUpe3JldHVybiByZXx8KHJlPVJpKDEyNykpLHJlLndyaXRlX3NoaWZ0KDQsSC5IaWRkZW4pLHJlLndyaXRlX3NoaWZ0KDQs''@;'; + put 'put ''SC5pVGFiSUQpLHpwKEguc3RyUmVsSUQscmUpLGx1KEgubmFtZS5zbGljZSgwLDMxKSxyZSkscmUubGVuZ3RoPnJlLmw/cmUuc2xpY2UoMCxyZS5sKTpyZX1mdW5jdGlvbiBHbShILHJlKXt2YXIgWD17fTtyZXR1cm4gSC5yZWFkX3NoaWZ0KDQpLFguQXJjaElEPUgucmVhZF9zaGlmdCg0KSxI''@;'; + put 'put ''LmwrPXJlLTgsWH1mdW5jdGlvbiBHXyhILHJlKXt2YXIgWD1RMigpO3JldHVybiBDMChYLCJCcnRCZWdpbkJvb2siKSxDMChYLCJCcnRGaWxlVmVyc2lvbiIsZnVuY3Rpb24gRmgoSCxyZSl7cmV8fChyZT1SaSgxMjcpKTtmb3IodmFyIFg9MDs0IT1YOysrWClyZS53cml0ZV9zaGlmdCg0LDAp''@;'; + put 'put ''O3JldHVybiBsdSgiU2hlZXRKUyIscmUpLGx1KFUudmVyc2lvbixyZSksbHUoVS52ZXJzaW9uLHJlKSxsdSgiNzI2MiIscmUpLHJlLmxlbmd0aD5yZS5sP3JlLnNsaWNlKDAscmUubCk6cmV9KCkpLEMwKFgsIkJydFdiUHJvcCIsZnVuY3Rpb24gTHUoSCxyZSl7cmV8fChyZT1SaSg3MikpO3Zh''@;'; + put 'put ''ciBYPTA7cmV0dXJuIEgmJkguZmlsdGVyUHJpdmFjeSYmKFh8PTgpLHJlLndyaXRlX3NoaWZ0KDQsWCkscmUud3JpdGVfc2hpZnQoNCwwKSxfTShIJiZILkNvZGVOYW1lfHwiVGhpc1dvcmtib29rIixyZSkscmUuc2xpY2UoMCxyZS5sKX0oSC5Xb3JrYm9vayYmSC5Xb3JrYm9vay5XQlByb3Bz''@;'; + put 'put ''fHxudWxsKSksZnVuY3Rpb24ga0EoSCxyZSl7aWYocmUuV29ya2Jvb2smJnJlLldvcmtib29rLlNoZWV0cyl7Zm9yKHZhciBYPXJlLldvcmtib29rLlNoZWV0cyx3ZT0wLHhlPS0xLEZlPS0xO3dlPFgubGVuZ3RoOysrd2UpIVhbd2VdfHwhWFt3ZV0uSGlkZGVuJiYtMT09eGU/eGU9d2U6MT09''@;'; + put 'put ''WFt3ZV0uSGlkZGVuJiYtMT09RmUmJihGZT13ZSk7RmU+eGV8fChDMChILCJCcnRCZWdpbkJvb2tWaWV3cyIpLEMwKEgsIkJydEJvb2tWaWV3IixmdW5jdGlvbiBrZihILHJlKXtyZXR1cm4gcmV8fChyZT1SaSgyOSkpLHJlLndyaXRlX3NoaWZ0KC00LDApLHJlLndyaXRlX3NoaWZ0KC00LDQ2''@;'; + put 'put ''MCkscmUud3JpdGVfc2hpZnQoNCwyODgwMCkscmUud3JpdGVfc2hpZnQoNCwxNzYwMCkscmUud3JpdGVfc2hpZnQoNCw1MDApLHJlLndyaXRlX3NoaWZ0KDQsSCkscmUud3JpdGVfc2hpZnQoNCxIKSxyZS53cml0ZV9zaGlmdCgxLDEyMCkscmUubGVuZ3RoPnJlLmw/cmUuc2xpY2UoMCxyZS5s''@;'; + put 'put ''KTpyZX0oeGUpKSxDMChILCJCcnRFbmRCb29rVmlld3MiKSl9fShYLEgpLGZ1bmN0aW9uIEppKEgscmUpe0MwKEgsIkJydEJlZ2luQnVuZGxlU2hzIik7Zm9yKHZhciBYPTA7WCE9cmUuU2hlZXROYW1lcy5sZW5ndGg7KytYKUMwKEgsIkJydEJ1bmRsZVNoIix6Xyh7SGlkZGVuOnJlLldvcmti''@;'; + put 'put ''b29rJiZyZS5Xb3JrYm9vay5TaGVldHMmJnJlLldvcmtib29rLlNoZWV0c1tYXSYmcmUuV29ya2Jvb2suU2hlZXRzW1hdLkhpZGRlbnx8MCxpVGFiSUQ6WCsxLHN0clJlbElEOiJySWQiKyhYKzEpLG5hbWU6cmUuU2hlZXROYW1lc1tYXX0pKTtDMChILCJCcnRFbmRCdW5kbGVTaHMiKX0oWCxI''@;'; + put 'put ''KSxDMChYLCJCcnRFbmRCb29rIiksWC5lbmQoKX1mdW5jdGlvbiB6eChILHJlLFgsd2UseGUpe3JldHVybigiLmJpbiI9PT1yZS5zbGljZSgtNCk/a3g6ekIpKEgsWCx3ZSx4ZSl9ZnVuY3Rpb24gdlAoSCxyZSxYLHdlLHhlKXtyZXR1cm4oIi5iaW4iPT09cmUuc2xpY2UoLTQpP1IzOmFQKShI''@;'; + put 'put ''LFgsd2UseGUpfWZ1bmN0aW9uIEFQKEgscmUsWCl7cmV0dXJuKCIuYmluIj09PXJlLnNsaWNlKC00KT9rUjpRTSkoSCxYKX1mdW5jdGlvbiB5UChILHJlLFgpe3JldHVybigiLmJpbiI9PT1yZS5zbGljZSgtNCk/V2I6emIpKEgsWCl9dmFyIFFfPS8oW1x3Ol0rKT0oKD86IikoW14iXSopKD86''@;'; + put 'put ''Iil8KD86JykoW14nXSopKD86JykpL2csV3g9LyhbXHc6XSspPSgoPzoiKSg/OlteIl0qKSg/OiIpfCg/OicpKD86W14nXSopKD86JykpLztmdW5jdGlvbiBuYyhILHJlKXt2YXIgWD1ILnNwbGl0KC9ccysvKSx3ZT1bXTtpZihyZXx8KHdlWzBdPVhbMF0pLDE9PT1YLmxlbmd0aClyZXR1cm4g''@;'; + put 'put ''d2U7dmFyIEZlLFplLFllLHhlPUgubWF0Y2goUV8pO2lmKHhlKWZvcihZZT0wO1llIT14ZS5sZW5ndGg7KytZZSktMT09PShaZT0oRmU9eGVbWWVdLm1hdGNoKFd4KSlbMV0uaW5kZXhPZigiOiIpKT93ZVtGZVsxXV09RmVbMl0uc2xpY2UoMSxGZVsyXS5sZW5ndGgtMSk6d2VbInhtbG5zOiI9''@;'; + put 'put ''PT1GZVsxXS5zbGljZSgwLDYpPyJ4bWxucyIrRmVbMV0uc2xpY2UoNik6RmVbMV0uc2xpY2UoWmUrMSldPUZlWzJdLnNsaWNlKDEsRmVbMl0ubGVuZ3RoLTEpO3JldHVybiB3ZX1mdW5jdGlvbiBZeChIKXt2YXIgWD17fTtpZigxPT09SC5zcGxpdCgvXHMrLykubGVuZ3RoKXJldHVybiBYO3Zh''@;'; + put 'put ''ciB4ZSxGZSxqZSx3ZT1ILm1hdGNoKFFfKTtpZih3ZSlmb3IoamU9MDtqZSE9d2UubGVuZ3RoOysramUpLTE9PT0oRmU9KHhlPXdlW2plXS5tYXRjaChXeCkpWzFdLmluZGV4T2YoIjoiKSk/WFt4ZVsxXV09eGVbMl0uc2xpY2UoMSx4ZVsyXS5sZW5ndGgtMSk6WFsieG1sbnM6Ij09PXhlWzFd''@;'; + put 'put ''LnNsaWNlKDAsNik/InhtbG5zIit4ZVsxXS5zbGljZSg2KTp4ZVsxXS5zbGljZShGZSsxKV09eGVbMl0uc2xpY2UoMSx4ZVsyXS5sZW5ndGgtMSk7cmV0dXJuIFh9ZnVuY3Rpb24gV20oSCl7dmFyIHJlPXt9O2lmKEguRGVmYXVsdFJvd0hlaWdodCl7dmFyIFg9e2hweDo0KnBhcnNlSW50KEgu''@;'; + put 'put ''RGVmYXVsdFJvd0hlaWdodCkvM307SjgoWCkscmUucm93PVh9aWYoSC5EZWZhdWx0Q29sV2lkdGgpe3ZhciB3ZT17d3B4OjQqcGFyc2VJbnQoSC5EZWZhdWx0Q29sV2lkdGgpLzN9O3ljKHdlKSxyZS5jb2w9d2V9cmV0dXJuIHJlfWZ1bmN0aW9uIEhoKEgscmUsWCx3ZSl7dmFyIHhlPXdlO3N3''@;'; + put 'put ''aXRjaCgoWFswXS5tYXRjaCgvZHQ6ZHQ9IihbXHcuXSspIi8pfHxbIiIsIiJdKVsxXSl7Y2FzZSJib29sZWFuIjp4ZT1EaSh3ZSk7YnJlYWs7Y2FzZSJpMiI6Y2FzZSJpbnQiOnhlPXBhcnNlSW50KHdlLDEwKTticmVhaztjYXNlInI0IjpjYXNlImZsb2F0Ijp4ZT1wYXJzZUZsb2F0KHdlKTti''@;'; + put 'put ''cmVhaztjYXNlImRhdGUiOmNhc2UiZGF0ZVRpbWUudHoiOnhlPWRuKHdlKTticmVhaztjYXNlImk4IjpjYXNlInN0cmluZyI6Y2FzZSJmaXhlZCI6Y2FzZSJ1dWlkIjpjYXNlImJpbi5iYXNlNjQiOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJiYWQgY3VzdHByb3A6IitYWzBdKX1I''@;'; + put 'put ''W2dyKHJlKV09eGV9dmFyIEpfPXswOiJOb25lIiwxOiJTaW5nbGUiLDI6IkRvdWJsZSIsMzM6IlNpbmdsZUFjY291bnRpbmciLDM0OiJEb3VibGVBY2NvdW50aW5nIn0sUXg9ZXQoSl8pO2Z1bmN0aW9uIEp4KEgscmUsWCx3ZSl7aWYod2UuY2VsbFN0eWxlcyl7aWYoWD1YLnJlcGxhY2UoL1xz''@;'; + put 'put ''Ky9nLCIgIikscmUuSW50ZXJpb3Ipe3ZhciB4ZT1yZS5JbnRlcmlvcjt4ZS5QYXR0ZXJuJiYoeGUucGF0dGVyblR5cGU9TFJbeGUuUGF0dGVybl18fHhlLlBhdHRlcm4pLHhlLkNvbG9yJiZ4ZS5Db2xvci5tYXRjaCgvI1swLTlBLUZhLWZdKi8pJiYoeGUuZmdDb2xvcj17cmdiOnhlLkNvbG9y''@;'; + put 'put ''LnNsaWNlKDEpfSl9IWZ1bmN0aW9uIEQ2KEgpeyFILkJvcmRlcnN8fChILkJvcmRlcnMuZm9yRWFjaChmdW5jdGlvbihyZSl7dmFyIFg9cmUuUG9zaXRpb24udG9Mb3dlckNhc2UoKTtIW1hdPXtzdHlsZTpYeChyZS5MaW5lU3R5bGUsK3JlLldlaWdodCksY29sb3I6e3JnYjoocmUuQ29sb3J8''@;'; + put 'put ''fCIjMDAwMDAwIikuc2xpY2UoMSl9fX0pLGRlbGV0ZSBILkJvcmRlcnMpfShyZSk7dmFyIFplLEZlPVgubWF0Y2goLzwoPzpcdys6KT9Gb250XHNbXj5dKj4vKTtGZSYmKERpKChaZT1lbihGZVswXSkpLkJvbGQpJiYocmUuQm9sZD0hMCksRGkoWmUuSXRhbGljKSYmKHJlLkl0YWxpYz0hMCks''@;'; + put 'put ''RGkoWmUuU3RyaWtlVGhyb3VnaCkmJihyZS5TdHJpa2U9ITApLFplLlNpemUmJihyZS5TaXplPStaZS5TaXplKSxyZS5Gb250TmFtZT1aZS5Gb250TmFtZT9aZS5Gb250TmFtZToiQXJpYWwiLFplLlVuZGVybGluZSYmKHJlLlVuZGVybGluZT1ReFtaZS5VbmRlcmxpbmVdKSxaZS5Db2xvciYm''@;'; + put 'put ''KHJlLlJHQj1aZS5Db2xvci5zbGljZSgtNikpKSxyZS5BbGlnbm1lbnQmJihyZS5hbGlnbm1lbnQ9e30scmUuQWxpZ25tZW50LlZlcnRpY2FsJiYocmUuYWxpZ25tZW50LnZlcnRpY2FsPXJlLkFsaWdubWVudC5WZXJ0aWNhbC50b0xvd2VyQ2FzZSgpKSxyZS5BbGlnbm1lbnQuSG9yaXpvbnRh''@;'; + put 'put ''bCYmKHJlLmFsaWdubWVudC5ob3Jpem9udGFsPXJlLkFsaWdubWVudC5Ib3Jpem9udGFsLnRvTG93ZXJDYXNlKCkpLERpKHJlLkFsaWdubWVudC5XcmFwVGV4dHx8IjAiKT9yZS5hbGlnbm1lbnQud3JhcFRleHQ9ITA6bnVsbD09cmUuQWxpZ25tZW50LldyYXBUZXh0JiZkZWxldGUgcmUuYWxp''@;'; + put 'put ''Z25tZW50LndyYXBUZXh0LERpKHJlLkFsaWdubWVudC5TaHJpbmtUb0ZpdHx8IjAiKSYmKHJlLmFsaWdubWVudC5zaHJpbmtUb0ZpdD0hMCksK3JlLkFsaWdubWVudC5JbmRlbnQmJihyZS5hbGlnbm1lbnQuaW5kZW50PStyZS5BbGlnbm1lbnQuSW5kZW50fHwwKSwrcmUuQWxpZ25tZW50LlJv''@;'; + put 'put ''dGF0ZSYmKHJlLmFsaWdubWVudC50ZXh0Um90YXRpb249K3JlLkFsaWdubWVudC5Sb3RhdGV8fDApKX1IW3JlLklEXT1yZSwoIkRlZmF1bHQiPT1yZS5JRHx8Ik5vcm1hbCI9PXJlLk5hbWUpJiZTMyhyZSl9ZnVuY3Rpb24gWHgoSCxyZSl7c3dpdGNoKEgpe2Nhc2UiTm9uZSI6cmV0dXJuIm5v''@;'; + put 'put ''bmUiO2Nhc2UiRGFzaCI6cmV0dXJuImRhc2hlZCI7Y2FzZSJEb3QiOnJldHVybiJkb3R0ZWQiO2Nhc2UiRGFzaERvdCI6cmV0dXJuImRhc2hEb3QiO2Nhc2UiRGFzaERvdERvdCI6cmV0dXJuImRhc2hEb3REb3QiO2Nhc2UiU2xhbnREYXNoRG90IjpyZXR1cm4ic2xhbnREYXNoRG90IjtjYXNl''@;'; + put 'put ''IkRvdWJsZSI6cmV0dXJuImRvdWJsZSI7Y2FzZSJDb250aW51b3VzIjpzd2l0Y2goK3JlfHwwKXtjYXNlIDA6cmV0dXJuImhhaXIiO2Nhc2UgMTpyZXR1cm4idGhpbiI7Y2FzZSAyOnJldHVybiJtZWRpdW0iO2Nhc2UgMzpyZXR1cm4idGhpY2sifXJldHVybiJ0aGluIn1yZXR1cm4gSH1mdW5j''@;'; + put 'put ''dGlvbiBYXyhILHJlLFgsd2UseGUsRmUsWmUsamUsWWUsTXQpe3ZhciB4dD0iR2VuZXJhbCIsUnQ9d2UuU3R5bGVJRCxZdD17fTtNdD1NdHx8e307dmFyIG5uPVtdLENuPTA7Zm9yKHZvaWQgMD09PVJ0JiZqZSYmKFJ0PWplLlN0eWxlSUQpLHZvaWQgMD09PVJ0JiZaZSYmKFJ0PVplLlN0eWxl''@;'; + put 'put ''SUQpO3ZvaWQgMCE9PUZlW1J0XTspe3ZhciBEdD1GZVtSdF07aWYoIkdlbmVyYWwiPT14dCYmRHQubmYmJih4dD1GZVtSdF0ubmYpLER0LkludGVyaW9yJiZubi5wdXNoKEZlW1J0XS5JbnRlcmlvciksRHQuYWxpZ25tZW50JiYoWXQuYWxpZ25tZW50fHwoWXQuYWxpZ25tZW50PWxuKER0LmFs''@;'; + put 'put ''aWdubWVudCkpKSxudWxsPT1ZdC5ib2xkJiZEdC5Cb2xkJiYoWXQuYm9sZD0hMCksbnVsbD09WXQuaXRhbGljJiZEdC5JdGFsaWMmJihZdC5pdGFsaWM9ITApLG51bGw9PVl0LnN0cmlrZSYmRHQuU3RyaWtlJiYoWXQuc3RyaWtlPSEwKSxudWxsPT1ZdC5zeiYmRHQuU2l6ZSYmKFl0LnN6PUR0''@;'; + put 'put ''LlNpemUpLG51bGw9PVl0Lm5hbWUmJkR0LkZvbnROYW1lJiYoWXQubmFtZT1EdC5Gb250TmFtZSksbnVsbD09WXQudW5kZXJsaW5lJiZEdC5VbmRlcmxpbmUmJihZdC51bmRlcmxpbmU9RHQuVW5kZXJsaW5lKSxudWxsPT1ZdC5jb2xvciYmRHQuUkdCJiYoWXQuY29sb3I9e3JnYjpEdC5SR0J9''@;'; + put 'put ''KSxbInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCJdLmZvckVhY2goZnVuY3Rpb24oT24pe251bGw9PVl0W09uXSYmRHRbT25dJiYoWXRbT25dPWxuKER0W09uXSkpfSksIkRlZmF1bHQiPT1SdClicmVhaztSdD1EdC5QYXJlbnR8fCJEZWZhdWx0In1ZdC5uYW1lfHwoWXQubmFtZT1GZS5E''@;'; + put 'put ''ZWZhdWx0JiZGZS5EZWZhdWx0LkZvbnROYW1lfHwiQXJpYWwiKSxZdC5zenx8KFl0LnN6PUZlLkRlZmF1bHQmJkZlLkRlZmF1bHQuU2l6ZXx8MTIpO3ZhciB6dD0iIjtpZihIfHx3ZS5Gb3JtdWxhfHwiU3RyaW5nIj09WC5UeXBlfHwiTnVtYmVyIj09WC5UeXBlKXN3aXRjaChYLlR5cGUpe2Nh''@;'; + put 'put ''c2UiQm9vbGVhbiI6d2UudD0iYiIsd2Uudj1EaShIKTticmVhaztjYXNlIlN0cmluZyI6d2UudD0icyIsenQ9bTAoZ3IoSCkpLHdlLnY9SC5pbmRleE9mKCI8Iik+LTE/Z3IocmV8fEgpLnJlcGxhY2UoLzxbXl0qPz4vZywiIik6enQsSC5pbmRleE9mKCI8Iik+LTEmJih3ZS5SPXVzLmh0bWxf''@;'; + put 'put ''dG9fcnMoZ3IoSCkpKTticmVhaztjYXNlIkRhdGVUaW1lIjoiWiIhPUguc2xpY2UoLTEpJiYoSCs9IloiKSx3ZS52PShkbihIKS1uZXcgRGF0ZShEYXRlLlVUQygxODk5LDExLDMwKSkpLzg2NGU1LHdlLnYhPXdlLnY/d2Uudj1ncihIKTp3ZS52PDYwJiYod2Uudj13ZS52LTEpLCgheHR8fCJH''@;'; + put 'put ''ZW5lcmFsIj09eHQpJiYoeHQ9Inl5eXktbW0tZGQiKTtjYXNlIk51bWJlciI6dm9pZCAwPT09d2UudiYmKHdlLnY9K0gpLHdlLnR8fCh3ZS50PSJuIik7YnJlYWs7Y2FzZSJFcnJvciI6d2UudD0iZSIsd2Uudj1faFtIXSwhMSE9PU10LmNlbGxUZXh0JiYod2Uudz1IKTticmVhaztkZWZhdWx0''@;'; + put 'put ''OiIiPT1IJiYiIj09cmU/d2UudD0ieiI6KHdlLnQ9InMiLHp0PW0wKGdyKEgpKSx3ZS52PUguaW5kZXhPZigiPCIpPi0xP2dyKHJlfHxIKS5yZXBsYWNlKC88W15dKj8+L2csIiIpOnp0LEguaW5kZXhPZigiPCIpPi0xJiYod2UuUj11cy5odG1sX3RvX3JzKGdyKEgpKSkpfWVsc2Ugd2UudD0i''@;'; + put 'put ''eiIsZGVsZXRlIHdlLnY7aWYoZnVuY3Rpb24gVXgoSCxyZSxYKXtpZigieiIhPT1ILnQpe2lmKCFYfHwhMSE9PVguY2VsbFRleHQpdHJ5e0gudz0iZSI9PT1ILnQ/SC53fHxOMVtILnZdOiJHZW5lcmFsIj09PXJlPyJuIj09PUgudD8oMHxILnYpPT09SC52P0YuX2dlbmVyYWxfaW50KEgudik6''@;'; + put 'put ''Ri5fZ2VuZXJhbF9udW0oSC52KTpGLl9nZW5lcmFsKEgudik6ZnVuY3Rpb24gWW0oSCxyZSl7dmFyIFg9Q2VbSF18fGdyKEgpO3JldHVybiJHZW5lcmFsIj09PVg/Ri5fZ2VuZXJhbChyZSk6Ri5mb3JtYXQoWCxyZSl9KHJlfHwiR2VuZXJhbCIsSC52KX1jYXRjaChGZSl7aWYoWC5XVEYpdGhy''@;'; + put 'put ''b3cgRmV9dHJ5e3ZhciB3ZT1DZVtyZV18fHJlfHwiR2VuZXJhbCI7aWYoWC5jZWxsTkYmJihILno9d2UpLFguY2VsbERhdGVzJiYibiI9PUgudCYmRi5pc19kYXRlKHdlKSl7dmFyIHhlPUYucGFyc2VfZGF0ZV9jb2RlKEgudik7eGUmJihILnQ9ImQiLEgudj1uZXcgRGF0ZSh4ZS55LHhlLm0t''@;'; + put 'put ''MSx4ZS5kLHhlLkgseGUuTSx4ZS5TLHhlLnUpKX19Y2F0Y2goRmUpe2lmKFguV1RGKXRocm93IEZlfX19KHdlLHh0LE10KSwhMSE9PU10LmNlbGxGb3JtdWxhKWlmKHdlLkZvcm11bGEpe3ZhciBQbj1ncih3ZS5Gb3JtdWxhKTs2MT09UG4uY2hhckNvZGVBdCgwKSYmKFBuPVBuLnNsaWNlKDEp''@;'; + put 'put ''KSx3ZS5mPUQzKFBuLHhlKSxkZWxldGUgd2UuRm9ybXVsYSwiUkMiPT13ZS5BcnJheVJhbmdlP3dlLkY9RDMoIlJDOlJDIix4ZSk6d2UuQXJyYXlSYW5nZSYmKHdlLkY9RDMod2UuQXJyYXlSYW5nZSx4ZSksWWUucHVzaChbRm8od2UuRiksd2UuRl0pKX1lbHNlIGZvcihDbj0wO0NuPFllLmxl''@;'; + put 'put ''bmd0aDsrK0NuKXhlLnI+PVllW0NuXVswXS5zLnImJnhlLnI8PVllW0NuXVswXS5lLnImJnhlLmM+PVllW0NuXVswXS5zLmMmJnhlLmM8PVllW0NuXVswXS5lLmMmJih3ZS5GPVllW0NuXVsxXSk7aWYoTXQuY2VsbFN0eWxlcyYmKG5uLmZvckVhY2goZnVuY3Rpb24oT24peyFZdC5wYXR0ZXJu''@;'; + put 'put ''VHlwZSYmT24ucGF0dGVyblR5cGUmJihZdC5wYXR0ZXJuVHlwZT1Pbi5wYXR0ZXJuVHlwZSksIVl0LmZnQ29sb3ImJk9uLmZnQ29sb3ImJihZdC5mZ0NvbG9yPU9uLmZnQ29sb3IpfSksd2Uucz1ZdCksdm9pZCAwIT09d2UuU3R5bGVJRCYmKHdlLml4ZmU9d2UuU3R5bGVJRCksd2UuUiYmd2Uu''@;'; + put 'put ''cyl7dmFyIFRuPWxuKHdlLnMpO2RlbGV0ZSBUbi5ib2xkLGRlbGV0ZSBUbi5pdGFsaWMsZGVsZXRlIFRuLnVuZGVybGluZSxkZWxldGUgVG4uc3RyaWtlLHdlLlIuZm9yRWFjaChmdW5jdGlvbihPbil7T24ucz1ibihsbihUbiksT24ucyl9KX19ZnVuY3Rpb24gUDMoSCl7SC50PUgudnx8IiIs''@;'; + put 'put ''SC50PUgudC5yZXBsYWNlKC9cclxuL2csIlxuIikucmVwbGFjZSgvXHIvZywiXG4iKSxILnY9SC53PUguaXhmZT12b2lkIDB9ZnVuY3Rpb24gQzUoSCl7aWYoSWUmJkJ1ZmZlci5pc0J1ZmZlcihIKSlyZXR1cm4gSC50b1N0cmluZygidXRmOCIpO2lmKCJzdHJpbmciPT10eXBlb2YgSClyZXR1''@;'; + put 'put ''cm4gSDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXkmJkggaW5zdGFuY2VvZiBVaW50OEFycmF5KXJldHVybiBXMCh0ZShQKEgpKSk7dGhyb3cgbmV3IEVycm9yKCJCYWQgaW5wdXQgZm9ybWF0OiBleHBlY3RlZCBCdWZmZXIgb3Igc3RyaW5nIil9dmFyIE5oPS88KFwvPykoW15c''@;'; + put 'put ''cz8+PCFcLzpdKjp8KShbXlxzPzw+OlwvXFtdKykoPzpbXHM/OjxcL11bXj5dKik/Pi9nbTtmdW5jdGlvbiBLXyhILHJlKXt2YXIgWD1yZXx8e30sd2U9Y2UoQzUoSCkpOygiYmluYXJ5Ij09WC50eXBlfHwiYXJyYXkiPT1YLnR5cGV8fCJiYXNlNjQiPT1YLnR5cGUpJiYod2U9InVuZGVmaW5l''@;'; + put 'put ''ZCIhPXR5cGVvZiBjcHRhYmxlP2NwdGFibGUudXRpbHMuZGVjb2RlKDY1MDAxLEood2UpKTpXMCh3ZSkpO3ZhciB4ZT13ZS5zbGljZSgwLDEwMjQpLnRvTG93ZXJDYXNlKCksRmU9ITE7aWYoKDEwMjMmeGUuaW5kZXhPZigiPiIpKT5NYXRoLm1pbigxMDIzJnhlLmluZGV4T2YoIiwiKSwxMDIz''@;'; + put 'put ''JnhlLmluZGV4T2YoIjsiKSkpe3ZhciBaZT1sbihYKTtyZXR1cm4gWmUudHlwZT0ic3RyaW5nIixBMy50b193b3JrYm9vayh3ZSxaZSl9aWYoLTE9PXhlLmluZGV4T2YoIjw/eG1sIikmJlsiaHRtbCIsInRhYmxlIiwiaGVhZCIsIm1ldGEiLCJzY3JpcHQiLCJzdHlsZSIsImRpdiJdLmZvckVh''@;'; + put 'put ''Y2goZnVuY3Rpb24oTWMpe3hlLmluZGV4T2YoIjwiK01jKT49MCYmKEZlPSEwKX0pLEZlKXJldHVybiB1cy50b193b3JrYm9vayh3ZSxYKTt2YXIgamUsTXQsd2ksWWU9W10seHQ9e30sUnQ9W10sWXQ9WC5kZW5zZT9bXTp7fSxubj0iIixDbj17fSxEdD17fSx6dD17fSxQbj1uYygnPERhdGEg''@;'; + put 'put ''c3M6VHlwZT0iU3RyaW5nIj4nKSxUbj0wLE9uPTAsV249MCxNcj17czp7cjoyZTYsYzoyZTZ9LGU6e3I6MCxjOjB9fSxhaT17fSx5cj17fSxhcj0iIixHcj0wLHpyPVtdLHFyPXt9LG9pPXt9LGNyPTAsZGk9W10sdjA9e30sVWk9W10sdG89e30sQTA9W10sWXI9ITEsRWk9W10saGk9W10sTnI9''@;'; + put 'put ''e30sa2k9MCxOMD0wLHQwPXtTaGVldHM6W10sV0JQcm9wczp7ZGF0ZTE5MDQ6ITF9fSxpbz17fTtOaC5sYXN0SW5kZXg9MCx3ZT13ZS5yZXBsYWNlKC88IS0tKFtcc1xTXSo/KS0tPi9nbSwiIik7Zm9yKHZhciBvYT0iIjtqZT1OaC5leGVjKHdlKTspc3dpdGNoKGplWzNdPShvYT1qZVszXSku''@;'; + put 'put ''dG9Mb3dlckNhc2UoKSl7Y2FzZSJkYXRhIjppZigiZGF0YSI9PW9hKXtpZigiLyI9PT1qZVsxXSl7aWYoKE10PVllLnBvcCgpKVswXSE9PWplWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK010LmpvaW4oInwiKSl9ZWxzZSIvIiE9PWplWzBdLmNoYXJBdChqZVswXS5sZW5ndGgt''@;'; + put 'put ''MikmJlllLnB1c2goW2plWzNdLCEwXSk7YnJlYWt9aWYoWWVbWWUubGVuZ3RoLTFdWzFdKWJyZWFrOyIvIj09PWplWzFdP1hfKHdlLnNsaWNlKFRuLGplLmluZGV4KSxhcixQbiwiY29tbWVudCI9PVllW1llLmxlbmd0aC0xXVswXT90bzpEdCx7YzpPbixyOldufSxhaSxBMFtPbl0senQsRWks''@;'; + put 'put ''WCk6KGFyPSIiLFBuPW5jKGplWzBdKSxUbj1qZS5pbmRleCtqZVswXS5sZW5ndGgpO2JyZWFrO2Nhc2UiY2VsbCI6aWYoIi8iPT09amVbMV18fCIvPiI9PT1qZVswXS5zbGljZSgtMikpe2lmKCIvPiI9PT1qZVswXS5zbGljZSgtMikpe2lmKChEdD1ZeChqZVswXSkpLkluZGV4JiYoT249K0R0''@;'; + put 'put ''LkluZGV4LTEpLE9uPE1yLnMuYyYmKE1yLnMuYz1PbiksT24+TXIuZS5jJiYoTXIuZS5jPU9uKSxVaT1bXSwhWC5zaGVldFN0dWJzKXsrK09uO2JyZWFrfVhfKCIiLCIiLHt9LCJjb21tZW50Ij09WWVbWWUubGVuZ3RoLTFdWzBdP3RvOkR0LHtjOk9uLHI6V259LGFpLEEwW09uXSx6dCxFaSxY''@;'; + put 'put ''KX1pZihVaS5sZW5ndGg+MCYmKER0LmM9VWkpLCghWC5zaGVldFJvd3N8fFguc2hlZXRSb3dzPlduKSYmKHZvaWQgMCE9PUR0LnZ8fFguc2hlZXRTdHVicykmJihYLmRlbnNlPyhZdFtXbl18fChZdFtXbl09W10pLFl0W1duXVtPbl09RHQpOll0W19hKE9uKStYYShXbildPUR0KSxEdC5IUmVm''@;'; + put 'put ''JiYoRHQubD17VGFyZ2V0OmdyKER0LkhSZWYpfSxEdC5IUmVmU2NyZWVuVGlwJiYoRHQubC5Ub29sdGlwPUR0LkhSZWZTY3JlZW5UaXApLGRlbGV0ZSBEdC5IUmVmLGRlbGV0ZSBEdC5IUmVmU2NyZWVuVGlwKSwoRHQuTWVyZ2VBY3Jvc3N8fER0Lk1lcmdlRG93bikmJihraT1PbisoMHxwYXJz''@;'; + put 'put ''ZUludChEdC5NZXJnZUFjcm9zcywxMCkpLE4wPVduKygwfHBhcnNlSW50KER0Lk1lcmdlRG93biwxMCkpLChraT5Pbnx8TjA+V24pJiZ6ci5wdXNoKHtzOntjOk9uLHI6V259LGU6e2M6a2kscjpOMH19KSksWC5zaGVldFN0dWJzKWlmKER0Lk1lcmdlQWNyb3NzfHxEdC5NZXJnZURvd24pe2Zv''@;'; + put 'put ''cih2YXIgJDA9T247JDA8PWtpOysrJDApZm9yKHZhciBOYT1XbjtOYTw9TjA7KytOYSkoJDA+T258fE5hPlduKSYmKFguZGVuc2U/KFl0W05hXXx8KFl0W05hXT1bXSksWXRbTmFdWyQwXT17dDoieiJ9KTpZdFtfYSgkMCkrWGEoTmEpXT17dDoieiJ9KTtPbj1raSsxfWVsc2UrK09uO2Vsc2Ug''@;'; + put 'put ''RHQuTWVyZ2VBY3Jvc3M/T249a2krMTorK09ufWVsc2UoRHQ9WXgoamVbMF0pKS5JbmRleCYmKE9uPStEdC5JbmRleC0xKSxPbjxNci5zLmMmJihNci5zLmM9T24pLE9uPk1yLmUuYyYmKE1yLmUuYz1PbiksIi8+Ij09PWplWzBdLnNsaWNlKC0yKSYmKytPbixVaT1bXTticmVhaztjYXNlInJv''@;'; + put 'put ''dyI6Ii8iPT09amVbMV18fCIvPiI9PT1qZVswXS5zbGljZSgtMik/KFduPE1yLnMuciYmKE1yLnMucj1XbiksV24+TXIuZS5yJiYoTXIuZS5yPVduKSwiLz4iPT09amVbMF0uc2xpY2UoLTIpJiYoenQ9bmMoamVbMF0pKS5JbmRleCYmKFduPSt6dC5JbmRleC0xKSxPbj0wLCsrV24pOigoenQ9''@;'; + put 'put ''bmMoamVbMF0pKS5JbmRleCYmKFduPSt6dC5JbmRleC0xKSxOcj17fSwoIjAiPT16dC5BdXRvRml0SGVpZ2h0fHx6dC5IZWlnaHQpJiYoTnIuaHB0PXBhcnNlRmxvYXQoenQuSGVpZ2h0KSxOci5ocHg9QWYoTnIuaHB0KSxoaVtXbl09TnIpLCIxIj09enQuSGlkZGVuJiYoTnIuaGlkZGVuPSEw''@;'; + put 'put ''LGhpW1duXT1OcikpO2JyZWFrO2Nhc2Uid29ya3NoZWV0IjppZigiLyI9PT1qZVsxXSl7aWYoKE10PVllLnBvcCgpKVswXSE9PWplWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK010LmpvaW4oInwiKSk7UnQucHVzaChubiksTXIucy5yPD1Nci5lLnImJk1yLnMuYzw9TXIuZS5j''@;'; + put 'put ''JiYoWXRbIiFyZWYiXT1mYShNciksWC5zaGVldFJvd3MmJlguc2hlZXRSb3dzPD1Nci5lLnImJihZdFsiIWZ1bGxyZWYiXT1ZdFsiIXJlZiJdLE1yLmUucj1YLnNoZWV0Um93cy0xLFl0WyIhcmVmIl09ZmEoTXIpKSksenIubGVuZ3RoJiYoWXRbIiFtZXJnZXMiXT16ciksQTAubGVuZ3RoPjAm''@;'; + put 'put ''JihZdFsiIWNvbHMiXT1BMCksaGkubGVuZ3RoPjAmJihZdFsiIXJvd3MiXT1oaSksQ24mJihZdFsiIXNoZWV0Rm9ybWF0Il09V20oQ24pKSx4dFtubl09WXR9ZWxzZSBNcj17czp7cjoyZTYsYzoyZTZ9LGU6e3I6MCxjOjB9fSxXbj1Pbj0wLFllLnB1c2goW2plWzNdLCExXSksTXQ9bmMoamVb''@;'; + put 'put ''MF0pLG5uPWdyKE10Lk5hbWUpLFl0PVguZGVuc2U/W106e30senI9W10sRWk9W10saGk9W10sdDAuU2hlZXRzLnB1c2goaW89e25hbWU6bm4sSGlkZGVuOjB9KTticmVhaztjYXNlInRhYmxlIjppZigiLyI9PT1qZVsxXSl7aWYoKE10PVllLnBvcCgpKVswXSE9PWplWzNdKXRocm93IG5ldyBF''@;'; + put 'put ''cnJvcigiQmFkIHN0YXRlOiAiK010LmpvaW4oInwiKSl9ZWxzZXtpZigiLz4iPT1qZVswXS5zbGljZSgtMikpYnJlYWs7Q249bmMoamVbMF0pLFllLnB1c2goW2plWzNdLCExXSksQTA9W10sWXI9ITF9YnJlYWs7Y2FzZSJzdHlsZSI6Ii8iPT09amVbMV0/SngoYWkseXIsYXIsWCk6KHlyPW5j''@;'; + put 'put ''KGplWzBdKSxhcj0iIik7YnJlYWs7Y2FzZSJudW1iZXJmb3JtYXQiOnlyLm5mPWdyKG5jKGplWzBdKS5Gb3JtYXR8fCJHZW5lcmFsIiksQ2VbeXIubmZdJiYoeXIubmY9Q2VbeXIubmZdKTtmb3IodmFyIGpvPTA7MzkyIT1qbyYmRi5fdGFibGVbam9dIT15ci5uZjsrK2pvKTtpZigzOTI9PWpv''@;'; + put 'put ''KWZvcihqbz01NzszOTIhPWpvOysram8paWYobnVsbD09Ri5fdGFibGVbam9dKXtGLmxvYWQoeXIubmYsam8pO2JyZWFrfWJyZWFrO2Nhc2UiY29sdW1uIjppZigidGFibGUiIT09WWVbWWUubGVuZ3RoLTFdWzBdfHwiLyI9PT1qZVsxXSlicmVhaztpZigod2k9bmMoamVbMF0pKS5IaWRkZW4m''@;'; + put 'put ''Jih3aS5oaWRkZW49ITAsZGVsZXRlIHdpLkhpZGRlbiksd2kuV2lkdGg/d2kud3B4PTQqcGFyc2VJbnQod2kuV2lkdGgsMTApLzM6K3dpLkF1dG9GaXRXaWR0aCYmKHdpLmF1dG89MSksIVlyJiZ3aS53cHg+MTApe1lyPSEwLFgyPTY7Zm9yKHZhciB3YT0wO3dhPEEwLmxlbmd0aDsrK3dhKUEw''@;'; + put 'put ''W3dhXSYmeWMoQTBbd2FdKX1ZciYmeWMod2kpLEEwW3dpLkluZGV4LTF8fEEwLmxlbmd0aF09d2k7Zm9yKHZhciBhbz0wO2FvPCt3aS5TcGFuOysrYW8pQTBbQTAubGVuZ3RoXT1sbih3aSk7YnJlYWs7Y2FzZSJuYW1lZHJhbmdlIjppZigiLyI9PT1qZVsxXSlicmVhazt0MC5OYW1lc3x8KHQw''@;'; + put 'put ''Lk5hbWVzPVtdKTt2YXIgeDA9ZW4oamVbMF0pLGgwPXtOYW1lOngwLk5hbWUsUmVmOkQzKHgwLlJlZmVyc1RvLnNsaWNlKDEpLHtyOjAsYzowfSl9O3QwLlNoZWV0cy5sZW5ndGg+MCYmKGgwLlNoZWV0PXQwLlNoZWV0cy5sZW5ndGgtMSksdDAuTmFtZXMucHVzaChoMCk7YnJlYWs7Y2FzZSJu''@;'; + put 'put ''YW1lZGNlbGwiOmNhc2UiYiI6Y2FzZSJpIjpjYXNlInUiOmNhc2UicyI6Y2FzZSJlbSI6Y2FzZSJoMiI6Y2FzZSJoMyI6Y2FzZSJzdWIiOmNhc2Uic3VwIjpjYXNlInNwYW4iOmNhc2UicHJvdGVjdGlvbiI6Y2FzZSJwYXJhZ3JhcGhzIjpjYXNlIm5hbWUiOmJyZWFrO2Nhc2UiYWxpZ25tZW50''@;'; + put 'put ''IjppZighWC5jZWxsU3R5bGVzfHwiLyI9PT1qZVsxXSlicmVhazt5ci5BbGlnbm1lbnQ9bmMoamVbMF0pO2JyZWFrO2Nhc2UiYm9yZGVycyI6Ii8iIT09amVbMV0mJih5ci5Cb3JkZXJzPVtdKTticmVhaztjYXNlImJvcmRlciI6aWYoIi8iPT09amVbMV0pYnJlYWs7eXIuQm9yZGVyc3x8KHly''@;'; + put 'put ''LkJvcmRlcnM9W10pLHlyLkJvcmRlcnMucHVzaChuYyhqZVswXSkpO2JyZWFrO2Nhc2UiZm9udCI6aWYoIi8+Ij09PWplWzBdLnNsaWNlKC0yKSl7YXIrPWplWzBdO2JyZWFrfSIvIj09PWplWzFdP2FyKz13ZS5zbGljZShHcixqZS5pbmRleCtqZVswXS5sZW5ndGgpOkdyPWplLmluZGV4O2Jy''@;'; + put 'put ''ZWFrO2Nhc2UiaW50ZXJpb3IiOmlmKCFYLmNlbGxTdHlsZXN8fCIvIj09PWplWzFdKWJyZWFrO3lyLkludGVyaW9yPW5jKGplWzBdKTticmVhaztjYXNlImF1dGhvciI6Y2FzZSJ0aXRsZSI6Y2FzZSJkZXNjcmlwdGlvbiI6Y2FzZSJjcmVhdGVkIjpjYXNlImtleXdvcmRzIjpjYXNlInN1Ympl''@;'; + put 'put ''Y3QiOmNhc2UiY2F0ZWdvcnkiOmNhc2UiY29tcGFueSI6Y2FzZSJsYXN0YXV0aG9yIjpjYXNlImxhc3RzYXZlZCI6Y2FzZSJsYXN0cHJpbnRlZCI6Y2FzZSJ2ZXJzaW9uIjpjYXNlInJldmlzaW9uIjpjYXNlInRvdGFsdGltZSI6Y2FzZSJoeXBlcmxpbmtiYXNlIjpjYXNlIm1hbmFnZXIiOmNh''@;'; + put 'put ''c2UiY29udGVudHN0YXR1cyI6Y2FzZSJpZGVudGlmaWVyIjpjYXNlImxhbmd1YWdlIjpjYXNlImFwcG5hbWUiOmlmKCIvPiI9PT1qZVswXS5zbGljZSgtMikpYnJlYWs7Ii8iPT09amVbMV0/cWwocXIsb2Esd2Uuc2xpY2UoY3IsamUuaW5kZXgpKTpjcj1qZS5pbmRleCtqZVswXS5sZW5ndGg7''@;'; + put 'put ''YnJlYWs7Y2FzZSJzdHlsZXMiOmNhc2Uid29ya2Jvb2siOmlmKCIvIj09PWplWzFdKXtpZigoTXQ9WWUucG9wKCkpWzBdIT09amVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrTXQuam9pbigifCIpKX1lbHNlIFllLnB1c2goW2plWzNdLCExXSk7YnJlYWs7Y2FzZSJjb21tZW50''@;'; + put 'put ''IjppZigiLyI9PT1qZVsxXSl7aWYoKE10PVllLnBvcCgpKVswXSE9PWplWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK010LmpvaW4oInwiKSk7UDModG8pLFVpLnB1c2godG8pfWVsc2UgWWUucHVzaChbamVbM10sITFdKSx0bz17YTooTXQ9bmMoamVbMF0pKS5BdXRob3J9O2Jy''@;'; + put 'put ''ZWFrO2Nhc2UiYXV0b2ZpbHRlciI6aWYoIi8iPT09amVbMV0pe2lmKChNdD1ZZS5wb3AoKSlbMF0hPT1qZVszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitNdC5qb2luKCJ8IikpfWVsc2UgaWYoIi8iIT09amVbMF0uY2hhckF0KGplWzBdLmxlbmd0aC0yKSl7dmFyIGpyPW5jKGpl''@;'; + put 'put ''WzBdKTtZdFsiIWF1dG9maWx0ZXIiXT17cmVmOkQzKGpyLlJhbmdlKS5yZXBsYWNlKC9cJC9nLCIiKX0sWWUucHVzaChbamVbM10sITBdKX1icmVhaztjYXNlImRhdGF2YWxpZGF0aW9uIjppZihZdFsiIXZhbGlkYXRpb25zIl18fChZdFsiIXZhbGlkYXRpb25zIl09W10pLCIvIj09PWplWzFd''@;'; + put 'put ''KXtpZigoTXQ9WWUucG9wKCkpWzBdIT09amVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrTXQuam9pbigifCIpKX1lbHNlIi8iIT09amVbMF0uY2hhckF0KGplWzBdLmxlbmd0aC0yKSYmWWUucHVzaChbamVbM10sITBdKSx2MD17fTticmVhaztjYXNlInBpeGVsc3BlcmluY2gi''@;'; + put 'put ''OmlmKCIvIj09PWplWzFdKXt2YXIgSGk9K3dlLnNsaWNlKFRuLGplLmluZGV4KTsoNzI9PUhpfHw5Nj09SGkpJiZDMyhIaSl9ZWxzZSBUbj1qZS5pbmRleCtqZVswXS5sZW5ndGg7YnJlYWs7Y2FzZSJjb21wb25lbnRvcHRpb25zIjpjYXNlImRvY3VtZW50cHJvcGVydGllcyI6Y2FzZSJjdXN0''@;'; + put 'put ''b21kb2N1bWVudHByb3BlcnRpZXMiOmNhc2Uib2ZmaWNlZG9jdW1lbnRzZXR0aW5ncyI6Y2FzZSJwaXZvdHRhYmxlIjpjYXNlInBpdm90Y2FjaGUiOmNhc2UibmFtZXMiOmNhc2UibWFwaW5mbyI6Y2FzZSJwYWdlYnJlYWtzIjpjYXNlInF1ZXJ5dGFibGUiOmNhc2Uic29ydGluZyI6Y2FzZSJz''@;'; + put 'put ''Y2hlbWEiOmNhc2UiY29uZGl0aW9uYWxmb3JtYXR0aW5nIjpjYXNlInNtYXJ0dGFndHlwZSI6Y2FzZSJzbWFydHRhZ3MiOmNhc2UiZXhjZWx3b3JrYm9vayI6Y2FzZSJ3b3JrYm9va29wdGlvbnMiOmNhc2Uid29ya3NoZWV0b3B0aW9ucyI6aWYoIi8iPT09amVbMV0pe2lmKChNdD1ZZS5wb3Ao''@;'; + put 'put ''KSlbMF0hPT1qZVszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitNdC5qb2luKCJ8IikpfWVsc2UiLyIhPT1qZVswXS5jaGFyQXQoamVbMF0ubGVuZ3RoLTIpJiZZZS5wdXNoKFtqZVszXSwhMF0pO2JyZWFrO2RlZmF1bHQ6aWYoMD09WWUubGVuZ3RoJiYiZG9jdW1lbnQiPT1qZVsz''@;'; + put 'put ''XXx8MD09WWUubGVuZ3RoJiYidW9mIj09amVbM10pcmV0dXJuIGljKHdlLFgpO3ZhciB2bz0hMDtzd2l0Y2goWWVbWWUubGVuZ3RoLTFdWzBdKXtjYXNlIm9mZmljZWRvY3VtZW50c2V0dGluZ3MiOnN3aXRjaChqZVszXSl7Y2FzZSJhbGxvd3BuZyI6Y2FzZSJyZW1vdmVwZXJzb25hbGluZm9y''@;'; + put 'put ''bWF0aW9uIjpjYXNlImRvd25sb2FkY29tcG9uZW50cyI6Y2FzZSJsb2NhdGlvbm9mY29tcG9uZW50cyI6Y2FzZSJjb2xvcnMiOmNhc2UiY29sb3IiOmNhc2UiaW5kZXgiOmNhc2UicmdiIjpjYXNlInRhcmdldHNjcmVlbnNpemUiOmNhc2UicmVhZG9ubHlyZWNvbW1lbmRlZCI6YnJlYWs7ZGVm''@;'; + put 'put ''YXVsdDp2bz0hMX1icmVhaztjYXNlImNvbXBvbmVudG9wdGlvbnMiOnN3aXRjaChqZVszXSl7Y2FzZSJ0b29sYmFyIjpjYXNlImhpZGVvZmZpY2Vsb2dvIjpjYXNlInNwcmVhZHNoZWV0YXV0b2ZpdCI6Y2FzZSJsYWJlbCI6Y2FzZSJjYXB0aW9uIjpjYXNlIm1heGhlaWdodCI6Y2FzZSJtYXh3''@;'; + put 'put ''aWR0aCI6Y2FzZSJuZXh0c2hlZXRudW1iZXIiOmJyZWFrO2RlZmF1bHQ6dm89ITF9YnJlYWs7Y2FzZSJleGNlbHdvcmtib29rIjpzd2l0Y2goamVbM10pe2Nhc2UiZGF0ZTE5MDQiOnQwLldCUHJvcHMuZGF0ZTE5MDQ9ITA7YnJlYWs7Y2FzZSJ3aW5kb3doZWlnaHQiOmNhc2Uid2luZG93d2lk''@;'; + put 'put ''dGgiOmNhc2Uid2luZG93dG9weCI6Y2FzZSJ3aW5kb3d0b3B5IjpjYXNlInRhYnJhdGlvIjpjYXNlInByb3RlY3RzdHJ1Y3R1cmUiOmNhc2UicHJvdGVjdHdpbmRvdyI6Y2FzZSJwcm90ZWN0d2luZG93cyI6Y2FzZSJhY3RpdmVzaGVldCI6Y2FzZSJkaXNwbGF5aW5rbm90ZXMiOmNhc2UiZmly''@;'; + put 'put ''c3R2aXNpYmxlc2hlZXQiOmNhc2Uic3VwYm9vayI6Y2FzZSJzaGVldG5hbWUiOmNhc2Uic2hlZXRpbmRleCI6Y2FzZSJzaGVldGluZGV4Zmlyc3QiOmNhc2Uic2hlZXRpbmRleGxhc3QiOmNhc2UiZGxsIjpjYXNlImFjY2VwdGxhYmVsc2luZm9ybXVsYXMiOmNhc2UiZG9ub3RzYXZlbGlua3Zh''@;'; + put 'put ''bHVlcyI6Y2FzZSJpdGVyYXRpb24iOmNhc2UibWF4aXRlcmF0aW9ucyI6Y2FzZSJtYXhjaGFuZ2UiOmNhc2UicGF0aCI6Y2FzZSJ4Y3QiOmNhc2UiY291bnQiOmNhc2Uic2VsZWN0ZWRzaGVldHMiOmNhc2UiY2FsY3VsYXRpb24iOmNhc2UidW5jYWxjZWQiOmNhc2Uic3RhcnR1cHByb21wdCI6''@;'; + put 'put ''Y2FzZSJjcm4iOmNhc2UiZXh0ZXJubmFtZSI6Y2FzZSJmb3JtdWxhIjpjYXNlImNvbGZpcnN0IjpjYXNlImNvbGxhc3QiOmNhc2Uid2FudGFkdmlzZSI6Y2FzZSJib29sZWFuIjpjYXNlImVycm9yIjpjYXNlInRleHQiOmNhc2Uib2xlIjpjYXNlIm5vYXV0b3JlY292ZXIiOmNhc2UicHVibGlz''@;'; + put 'put ''aG9iamVjdHMiOmNhc2UiZG9ub3RjYWxjdWxhdGViZWZvcmVzYXZlIjpjYXNlIm51bWJlciI6Y2FzZSJyZWZtb2RlcjFjMSI6Y2FzZSJlbWJlZHNhdmVzbWFydHRhZ3MiOmJyZWFrO2RlZmF1bHQ6dm89ITF9YnJlYWs7Y2FzZSJ3b3JrYm9va29wdGlvbnMiOnN3aXRjaChqZVszXSl7Y2FzZSJv''@;'; + put 'put ''d2N2ZXJzaW9uIjpjYXNlImhlaWdodCI6Y2FzZSJ3aWR0aCI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlIndvcmtzaGVldG9wdGlvbnMiOnN3aXRjaChqZVszXSl7Y2FzZSJ2aXNpYmxlIjppZigiLz4iIT09amVbMF0uc2xpY2UoLTIpKWlmKCIvIj09PWplWzFdKXN3aXRjaCh3ZS5z''@;'; + put 'put ''bGljZShjcixqZS5pbmRleCkpe2Nhc2UiU2hlZXRIaWRkZW4iOmlvLkhpZGRlbj0xO2JyZWFrO2Nhc2UiU2hlZXRWZXJ5SGlkZGVuIjppby5IaWRkZW49Mn1lbHNlIGNyPWplLmluZGV4K2plWzBdLmxlbmd0aDticmVhaztjYXNlImhlYWRlciI6WXRbIiFtYXJnaW5zIl18fE9kKFl0WyIhbWFy''@;'; + put 'put ''Z2lucyJdPXt9LCJ4bG1sIiksWXRbIiFtYXJnaW5zIl0uaGVhZGVyPWVuKGplWzBdKS5NYXJnaW47YnJlYWs7Y2FzZSJmb290ZXIiOll0WyIhbWFyZ2lucyJdfHxPZChZdFsiIW1hcmdpbnMiXT17fSwieGxtbCIpLFl0WyIhbWFyZ2lucyJdLmZvb3Rlcj1lbihqZVswXSkuTWFyZ2luO2JyZWFr''@;'; + put 'put ''O2Nhc2UicGFnZW1hcmdpbnMiOnZhciB4bz1lbihqZVswXSk7WXRbIiFtYXJnaW5zIl18fE9kKFl0WyIhbWFyZ2lucyJdPXt9LCJ4bG1sIikseG8uVG9wJiYoWXRbIiFtYXJnaW5zIl0udG9wPXhvLlRvcCkseG8uTGVmdCYmKFl0WyIhbWFyZ2lucyJdLmxlZnQ9eG8uTGVmdCkseG8uUmlnaHQm''@;'; + put 'put ''JihZdFsiIW1hcmdpbnMiXS5yaWdodD14by5SaWdodCkseG8uQm90dG9tJiYoWXRbIiFtYXJnaW5zIl0uYm90dG9tPXhvLkJvdHRvbSk7YnJlYWs7Y2FzZSJkaXNwbGF5cmlnaHR0b2xlZnQiOnQwLlZpZXdzfHwodDAuVmlld3M9W10pLHQwLlZpZXdzWzBdfHwodDAuVmlld3NbMF09e30pLHQw''@;'; + put 'put ''LlZpZXdzWzBdLlJUTD0hMDticmVhaztjYXNlImZyZWV6ZXBhbmVzIjpjYXNlImZyb3plbm5vc3BsaXQiOmNhc2UiYWN0aXZlcm93IjpjYXNlImFjdGl2ZWNvbCI6Y2FzZSJ0b3Byb3dib3R0b21wYW5lIjpjYXNlImxlZnRjb2x1bW5yaWdodHBhbmUiOmNhc2UidW5zeW5jZWQiOmNhc2UicHJp''@;'; + put 'put ''bnQiOmNhc2UicHJpbnRlcnJvcnMiOmNhc2UicGFuZXMiOmNhc2Uic2NhbGUiOmNhc2UicGFuZSI6Y2FzZSJudW1iZXIiOmNhc2UibGF5b3V0IjpjYXNlInBhZ2VzZXR1cCI6Y2FzZSJzZWxlY3RlZCI6Y2FzZSJwcm90ZWN0b2JqZWN0cyI6Y2FzZSJlbmFibGVzZWxlY3Rpb24iOmNhc2UicHJv''@;'; + put 'put ''dGVjdHNjZW5hcmlvcyI6Y2FzZSJ2YWxpZHByaW50ZXJpbmZvIjpjYXNlImhvcml6b250YWxyZXNvbHV0aW9uIjpjYXNlInZlcnRpY2FscmVzb2x1dGlvbiI6Y2FzZSJudW1iZXJvZmNvcGllcyI6Y2FzZSJhY3RpdmVwYW5lIjpjYXNlInRvcHJvd3Zpc2libGUiOmNhc2UibGVmdGNvbHVtbnZp''@;'; + put 'put ''c2libGUiOmNhc2UiZml0dG9wYWdlIjpjYXNlInJhbmdlc2VsZWN0aW9uIjpjYXNlInBhcGVyc2l6ZWluZGV4IjpjYXNlInBhZ2VsYXlvdXR6b29tIjpjYXNlInBhZ2VicmVha3pvb20iOmNhc2UiZmlsdGVyb24iOmNhc2UiZml0d2lkdGgiOmNhc2UiZml0aGVpZ2h0IjpjYXNlImNvbW1lbnRz''@;'; + put 'put ''bGF5b3V0IjpjYXNlInpvb20iOmNhc2UibGVmdHRvcmlnaHQiOmNhc2UiZ3JpZGxpbmVzIjpjYXNlImFsbG93c29ydCI6Y2FzZSJhbGxvd2ZpbHRlciI6Y2FzZSJhbGxvd2luc2VydHJvd3MiOmNhc2UiYWxsb3dkZWxldGVyb3dzIjpjYXNlImFsbG93aW5zZXJ0Y29scyI6Y2FzZSJhbGxvd2Rl''@;'; + put 'put ''bGV0ZWNvbHMiOmNhc2UiYWxsb3dpbnNlcnRoeXBlcmxpbmtzIjpjYXNlImFsbG93Zm9ybWF0Y2VsbHMiOmNhc2UiYWxsb3dzaXplY29scyI6Y2FzZSJhbGxvd3NpemVyb3dzIjpjYXNlInRhYmNvbG9yaW5kZXgiOmNhc2UiZG9ub3RkaXNwbGF5aGVhZGluZ3MiOmNhc2Uic2hvd3BhZ2VsYXlv''@;'; + put 'put ''dXR6b29tIjpjYXNlImJsYWNrYW5kd2hpdGUiOmNhc2UiZG9ub3RkaXNwbGF5emVyb3MiOmNhc2UiZGlzcGxheXBhZ2VicmVhayI6Y2FzZSJyb3djb2xoZWFkaW5ncyI6Y2FzZSJkb25vdGRpc3BsYXlvdXRsaW5lIjpjYXNlIm5vb3JpZW50YXRpb24iOmNhc2UiYWxsb3d1c2VwaXZvdHRhYmxl''@;'; + put 'put ''cyI6Y2FzZSJ6ZXJvaGVpZ2h0IjpjYXNlInZpZXdhYmxlcmFuZ2UiOmNhc2Uic2VsZWN0aW9uIjpjYXNlInByb3RlY3Rjb250ZW50cyI6YnJlYWs7Y2FzZSJzcGxpdGhvcml6b250YWwiOmNhc2Uic3BsaXR2ZXJ0aWNhbCI6aWYoIi8+IiE9PWplWzBdLnNsaWNlKC0yKSlpZigiLyI9PWplWzFd''@;'; + put 'put ''KXtZdFsiIWZyZWV6ZSJdfHwoWXRbIiFmcmVlemUiXT0iQTEiKTt2YXIgJGk9dWwoWXRbIiFmcmVlemUiXSk7InNwbGl0aG9yaXpvbnRhbCI9PWplWzNdPyRpLnI9K3dlLnNsaWNlKGNyLGplLmluZGV4KTokaS5jPSt3ZS5zbGljZShjcixqZS5pbmRleCksWXRbIiFmcmVlemUiXT1ZMCgkaSl9''@;'; + put 'put ''ZWxzZSBjcj1qZS5pbmRleCtqZVswXS5sZW5ndGg7YnJlYWs7Y2FzZSJkb25vdGRpc3BsYXlncmlkbGluZXMiOll0WyIhZ3JpZGxpbmVzIl09ITE7YnJlYWs7Y2FzZSJub3N1bW1hcnlyb3dzYmVsb3dkZXRhaWwiOll0WyIhb3V0bGluZSJdfHwoWXRbIiFvdXRsaW5lIl09e30pLFl0WyIhb3V0''@;'; + put 'put ''bGluZSJdLmFib3ZlPSEwO2JyZWFrO2Nhc2Uibm9zdW1tYXJ5Y29sdW1uc3JpZ2h0ZGV0YWlsIjpZdFsiIW91dGxpbmUiXXx8KFl0WyIhb3V0bGluZSJdPXt9KSxZdFsiIW91dGxpbmUiXS5sZWZ0PSEwO2JyZWFrO2RlZmF1bHQ6dm89ITF9YnJlYWs7Y2FzZSJwaXZvdHRhYmxlIjpjYXNlInBp''@;'; + put 'put ''dm90Y2FjaGUiOnN3aXRjaChqZVszXSl7Y2FzZSJpbW1lZGlhdGVpdGVtc29uZHJvcCI6Y2FzZSJzaG93cGFnZW11bHRpcGxlaXRlbWxhYmVsIjpjYXNlImNvbXBhY3Ryb3dpbmRlbnQiOmNhc2UibG9jYXRpb24iOmNhc2UicGl2b3RmaWVsZCI6Y2FzZSJvcmllbnRhdGlvbiI6Y2FzZSJsYXlv''@;'; + put 'put ''dXRmb3JtIjpjYXNlImxheW91dHN1YnRvdGFsbG9jYXRpb24iOmNhc2UibGF5b3V0Y29tcGFjdHJvdyI6Y2FzZSJwb3NpdGlvbiI6Y2FzZSJwaXZvdGl0ZW0iOmNhc2UiZGF0YXR5cGUiOmNhc2UiZGF0YWZpZWxkIjpjYXNlInNvdXJjZW5hbWUiOmNhc2UicGFyZW50ZmllbGQiOmNhc2UicHRs''@;'; + put 'put ''aW5laXRlbXMiOmNhc2UicHRsaW5laXRlbSI6Y2FzZSJjb3VudG9mc2FtZWl0ZW1zIjpjYXNlIml0ZW0iOmNhc2UiaXRlbXR5cGUiOmNhc2UicHRzb3VyY2UiOmNhc2UiY2FjaGVpbmRleCI6Y2FzZSJjb25zb2xpZGF0aW9ucmVmZXJlbmNlIjpjYXNlImZpbGVuYW1lIjpjYXNlInJlZmVyZW5j''@;'; + put 'put ''ZSI6Y2FzZSJub2NvbHVtbmdyYW5kIjpjYXNlIm5vcm93Z3JhbmQiOmNhc2UiYmxhbmtsaW5lYWZ0ZXJpdGVtcyI6Y2FzZSJoaWRkZW4iOmNhc2Uic3VidG90YWwiOmNhc2UiYmFzZWZpZWxkIjpjYXNlIm1hcGNoaWxkaXRlbXMiOmNhc2UiZnVuY3Rpb24iOmNhc2UicmVmcmVzaG9uZmlsZW9w''@;'; + put 'put ''ZW4iOmNhc2UicHJpbnRzZXR0aXRsZXMiOmNhc2UibWVyZ2VsYWJlbHMiOmNhc2UiZGVmYXVsdHZlcnNpb24iOmNhc2UicmVmcmVzaG5hbWUiOmNhc2UicmVmcmVzaGRhdGUiOmNhc2UicmVmcmVzaGRhdGVjb3B5IjpjYXNlInZlcnNpb25sYXN0cmVmcmVzaCI6Y2FzZSJ2ZXJzaW9ubGFzdHVw''@;'; + put 'put ''ZGF0ZSI6Y2FzZSJ2ZXJzaW9udXBkYXRlYWJsZW1pbiI6Y2FzZSJ2ZXJzaW9ucmVmcmVzaGFibGVtaW4iOmNhc2UiY2FsY3VsYXRpb24iOmJyZWFrO2RlZmF1bHQ6dm89ITF9YnJlYWs7Y2FzZSJwYWdlYnJlYWtzIjpzd2l0Y2goamVbM10pe2Nhc2UiY29sYnJlYWtzIjpjYXNlImNvbGJyZWFr''@;'; + put 'put ''IjpjYXNlInJvd2JyZWFrcyI6Y2FzZSJyb3dicmVhayI6Y2FzZSJjb2xzdGFydCI6Y2FzZSJjb2xlbmQiOmNhc2Uicm93ZW5kIjpicmVhaztkZWZhdWx0OnZvPSExfWJyZWFrO2Nhc2UiYXV0b2ZpbHRlciI6c3dpdGNoKGplWzNdKXtjYXNlImF1dG9maWx0ZXJjb2x1bW4iOmNhc2UiYXV0b2Zp''@;'; + put 'put ''bHRlcmNvbmRpdGlvbiI6Y2FzZSJhdXRvZmlsdGVyYW5kIjpjYXNlImF1dG9maWx0ZXJvciI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlInF1ZXJ5dGFibGUiOnN3aXRjaChqZVszXSl7Y2FzZSJpZCI6Y2FzZSJhdXRvZm9ybWF0Zm9udCI6Y2FzZSJhdXRvZm9ybWF0cGF0dGVybiI6''@;'; + put 'put ''Y2FzZSJxdWVyeXNvdXJjZSI6Y2FzZSJxdWVyeXR5cGUiOmNhc2UiZW5hYmxlcmVkaXJlY3Rpb25zIjpjYXNlInJlZnJlc2hlZGlueGw5IjpjYXNlInVybHN0cmluZyI6Y2FzZSJodG1sdGFibGVzIjpjYXNlImNvbm5lY3Rpb24iOmNhc2UiY29tbWFuZHRleHQiOmNhc2UicmVmcmVzaGluZm8i''@;'; + put 'put ''OmNhc2Uibm90aXRsZXMiOmNhc2UibmV4dGlkIjpjYXNlImNvbHVtbmluZm8iOmNhc2Uib3ZlcndyaXRlY2VsbHMiOmNhc2UiZG9ub3Rwcm9tcHRmb3JmaWxlIjpjYXNlInRleHR3aXphcmRzZXR0aW5ncyI6Y2FzZSJzb3VyY2UiOmNhc2UibnVtYmVyIjpjYXNlImRlY2ltYWwiOmNhc2UidGhv''@;'; + put 'put ''dXNhbmRzZXBhcmF0b3IiOmNhc2UidHJhaWxpbmdtaW51c251bWJlcnMiOmNhc2UiZm9ybWF0c2V0dGluZ3MiOmNhc2UiZmllbGR0eXBlIjpjYXNlImRlbGltaXRlcnMiOmNhc2UidGFiIjpjYXNlImNvbW1hIjpjYXNlImF1dG9mb3JtYXRuYW1lIjpjYXNlInZlcnNpb25sYXN0ZWRpdCI6Y2Fz''@;'; + put 'put ''ZSJ2ZXJzaW9ubGFzdHJlZnJlc2giOmJyZWFrO2RlZmF1bHQ6dm89ITF9YnJlYWs7Y2FzZSJkYXRhdmFsaWRhdGlvbiI6c3dpdGNoKGplWzNdKXtjYXNlInJhbmdlIjp2MC5yZWY9amU7YnJlYWs7Y2FzZSJ0eXBlIjpjYXNlIm1pbiI6Y2FzZSJtYXgiOmNhc2Uic29ydCI6Y2FzZSJkZXNjZW5k''@;'; + put 'put ''aW5nIjpjYXNlIm9yZGVyIjpjYXNlImNhc2VzZW5zaXRpdmUiOmNhc2UidmFsdWUiOmNhc2UiZXJyb3JzdHlsZSI6Y2FzZSJlcnJvcm1lc3NhZ2UiOmNhc2UiZXJyb3J0aXRsZSI6Y2FzZSJpbnB1dG1lc3NhZ2UiOmNhc2UiaW5wdXR0aXRsZSI6Y2FzZSJjb21ib2hpZGUiOmNhc2UiaW5wdXRo''@;'; + put 'put ''aWRlIjpjYXNlImNvbmRpdGlvbiI6Y2FzZSJxdWFsaWZpZXIiOmNhc2UidXNlYmxhbmsiOmNhc2UidmFsdWUxIjpjYXNlInZhbHVlMiI6Y2FzZSJmb3JtYXQiOmNhc2UiY2VsbHJhbmdlbGlzdCI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlInNvcnRpbmciOmNhc2UiY29uZGl0aW9u''@;'; + put 'put ''YWxmb3JtYXR0aW5nIjpzd2l0Y2goamVbM10pe2Nhc2UicmFuZ2UiOmNhc2UidHlwZSI6Y2FzZSJtaW4iOmNhc2UibWF4IjpjYXNlInNvcnQiOmNhc2UiZGVzY2VuZGluZyI6Y2FzZSJvcmRlciI6Y2FzZSJjYXNlc2Vuc2l0aXZlIjpjYXNlInZhbHVlIjpjYXNlImVycm9yc3R5bGUiOmNhc2Ui''@;'; + put 'put ''ZXJyb3JtZXNzYWdlIjpjYXNlImVycm9ydGl0bGUiOmNhc2UiY2VsbHJhbmdlbGlzdCI6Y2FzZSJpbnB1dG1lc3NhZ2UiOmNhc2UiaW5wdXR0aXRsZSI6Y2FzZSJjb21ib2hpZGUiOmNhc2UiaW5wdXRoaWRlIjpjYXNlImNvbmRpdGlvbiI6Y2FzZSJxdWFsaWZpZXIiOmNhc2UidXNlYmxhbmsi''@;'; + put 'put ''OmNhc2UidmFsdWUxIjpjYXNlInZhbHVlMiI6Y2FzZSJmb3JtYXQiOmJyZWFrO2RlZmF1bHQ6dm89ITF9YnJlYWs7Y2FzZSJtYXBpbmZvIjpjYXNlInNjaGVtYSI6Y2FzZSJkYXRhIjpzd2l0Y2goamVbM10pe2Nhc2UibWFwIjpjYXNlImVudHJ5IjpjYXNlInJhbmdlIjpjYXNlInhwYXRoIjpj''@;'; + put 'put ''YXNlImZpZWxkIjpjYXNlInhzZHR5cGUiOmNhc2UiZmlsdGVyb24iOmNhc2UiYWdncmVnYXRlIjpjYXNlImVsZW1lbnR0eXBlIjpjYXNlImF0dHJpYnV0ZXR5cGUiOmNhc2Uic2NoZW1hIjpjYXNlImVsZW1lbnQiOmNhc2UiY29tcGxleHR5cGUiOmNhc2UiZGF0YXR5cGUiOmNhc2UiYWxsIjpj''@;'; + put 'put ''YXNlImF0dHJpYnV0ZSI6Y2FzZSJleHRlbmRzIjpjYXNlInJvdyI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlInNtYXJ0dGFncyI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1pZih2b3x8amVbM10ubWF0Y2goLyFcW0NEQVRBLykpYnJlYWs7aWYoIVllW1llLmxlbmd0aC0xXVsxXSl0aHJv''@;'; + put 'put ''dyJVbnJlY29nbml6ZWQgdGFnOiAiK2plWzNdKyJ8IitZZS5qb2luKCJ8Iik7aWYoImN1c3RvbWRvY3VtZW50cHJvcGVydGllcyI9PT1ZZVtZZS5sZW5ndGgtMV1bMF0pe2lmKCIvPiI9PT1qZVswXS5zbGljZSgtMikpYnJlYWs7Ii8iPT09amVbMV0/SGgob2ksb2EsZGksd2Uuc2xpY2UoY3Is''@;'; + put 'put ''amUuaW5kZXgpKTooZGk9amUsY3I9amUuaW5kZXgramVbMF0ubGVuZ3RoKTticmVha31pZihYLldURil0aHJvdyJVbnJlY29nbml6ZWQgdGFnOiAiK2plWzNdKyJ8IitZZS5qb2luKCJ8Iil9dmFyIGwyPXt9O3JldHVybiFYLmJvb2tTaGVldHMmJiFYLmJvb2tQcm9wcyYmKGwyLlNoZWV0cz14''@;'; + put 'put ''dCksbDIuU2hlZXROYW1lcz1SdCxsMi5Xb3JrYm9vaz10MCxsMi5TU0Y9Ri5nZXRfdGFibGUoKSxsMi5Qcm9wcz1xcixsMi5DdXN0cHJvcHM9b2ksbDIuU2hlZXRzJiZsMi5TaGVldE5hbWVzLmZvckVhY2goZnVuY3Rpb24oTWMpe3ZhciBwMj1sMi5TaGVldHNbTWNdO3AyWyIhbWVyZ2VzIl0m''@;'; + put 'put ''JnAyWyIhbWVyZ2VzIl0uZm9yRWFjaChmdW5jdGlvbihycil7InN0cmluZyI9PXR5cGVvZiByciYmKHJyPVUudXRpbHMuZGVjb2RlX3JhbmdlKHJyKSk7dmFyIElyPVUudXRpbHMuZW5jb2RlX2NlbGwocnIucyksWnI9QXJyYXkuaXNBcnJheShwMik/KHAyW3JyLnMucl18fFtdKVtyci5zLmNd''@;'; + put 'put ''OnAyW0lyXTtaciYmWnIucyYmKG51bGwhPVpyLnMudG9wJiZhYy5zaGVldF9zZXRfcmFuZ2Vfc3R5bGUocDIscnIse3RvcDpaci5zLnRvcH0pLG51bGwhPVpyLnMuYm90dG9tJiZhYy5zaGVldF9zZXRfcmFuZ2Vfc3R5bGUocDIscnIse2JvdHRvbTpaci5zLmJvdHRvbX0pLG51bGwhPVpyLnMu''@;'; + put 'put ''bGVmdCYmYWMuc2hlZXRfc2V0X3JhbmdlX3N0eWxlKHAyLHJyLHtsZWZ0OlpyLnMubGVmdH0pLG51bGwhPVpyLnMucmlnaHQmJmFjLnNoZWV0X3NldF9yYW5nZV9zdHlsZShwMixycix7cmlnaHQ6WnIucy5yaWdodH0pKX0pfSksbDJ9ZnVuY3Rpb24gJF8oSCxyZSl7c3dpdGNoKE1mKHJlPXJl''@;'; + put 'put ''fHx7fSkscmUudHlwZXx8ImJhc2U2NCIpe2Nhc2UiYmFzZTY0IjpyZXR1cm4gS18oU2UuZGVjb2RlKEgpLHJlKTtjYXNlImJpbmFyeSI6Y2FzZSJidWZmZXIiOmNhc2UiZmlsZSI6cmV0dXJuIEtfKEgscmUpO2Nhc2UiYXJyYXkiOnJldHVybiBLXyh0ZShIKSxyZSl9fWZ1bmN0aW9uIGJQKEgp''@;'; + put 'put ''e3JldHVybiBiaSgiTmFtZWRSYW5nZSIsbnVsbCx7InNzOk5hbWUiOkguTmFtZSwic3M6UmVmZXJzVG8iOiI9IitPRShILlJlZix7cjowLGM6MH0pfSl9ZnVuY3Rpb24gX1AoSCxyZSxYLHdlLHhlLEZlLFplKXtpZighSHx8bnVsbD09SC52JiZudWxsPT1ILmYmJiF3ZS5zaGVldFN0dWJzKXJl''@;'; + put 'put ''dHVybiIiO3ZhciBqZT17fTtpZihILmYmJihqZVsic3M6Rm9ybXVsYSJdPSI9IitScihPRShILmYsWmUpKSksSC5GJiZILkYuc2xpY2UoMCxyZS5sZW5ndGgpPT1yZSl7dmFyIFllPXVsKEguRi5zbGljZShyZS5sZW5ndGgrMSkpO2plWyJzczpBcnJheVJhbmdlIl09IlJDOlIiKyhZZS5yPT1a''@;'; + put 'put ''ZS5yPyIiOiJbIisoWWUuci1aZS5yKSsiXSIpKyJDIisoWWUuYz09WmUuYz8iIjoiWyIrKFllLmMtWmUuYykrIl0iKX1pZihILmwmJkgubC5UYXJnZXQmJihqZVsic3M6SFJlZiJdPVJyKEgubC5UYXJnZXQpLEgubC5Ub29sdGlwJiYoamVbIng6SFJlZlNjcmVlblRpcCJdPVJyKEgubC5Ub29s''@;'; + put 'put ''dGlwKSkpLFhbIiFtZXJnZXMiXSlmb3IodmFyIE10PVhbIiFtZXJnZXMiXSx4dD0wO3h0IT1NdC5sZW5ndGg7Kyt4dClNdFt4dF0ucy5jIT1aZS5jfHxNdFt4dF0ucy5yIT1aZS5yfHwoTXRbeHRdLmUuYz5NdFt4dF0ucy5jJiYoamVbInNzOk1lcmdlQWNyb3NzIl09TXRbeHRdLmUuYy1NdFt4''@;'; + put 'put ''dF0ucy5jKSxNdFt4dF0uZS5yPk10W3h0XS5zLnImJihqZVsic3M6TWVyZ2VEb3duIl09TXRbeHRdLmUuci1NdFt4dF0ucy5yKSk7dmFyIFJ0PSIiLFl0PSIiO3N3aXRjaChILnQpe2Nhc2UieiI6aWYoIXdlLnNoZWV0U3R1YnMpcmV0dXJuIiI7YnJlYWs7Y2FzZSJuIjpSdD0iTnVtYmVyIixZ''@;'; + put 'put ''dD1TdHJpbmcoSC52KTticmVhaztjYXNlImIiOlJ0PSJCb29sZWFuIixZdD1ILnY/IjEiOiIwIjticmVhaztjYXNlImUiOlJ0PSJFcnJvciIsWXQ9TjFbSC52XTticmVhaztjYXNlImQiOlJ0PSJEYXRlVGltZSIsWXQ9bmV3IERhdGUoSC52KS50b0lTT1N0cmluZygpLG51bGw9PUgueiYmKEgu''@;'; + put 'put ''ej1ILnp8fEYuX3RhYmxlWzE0XSk7YnJlYWs7Y2FzZSJzIjpSdD0iU3RyaW5nIixZdD1kMChILnZ8fCIiKX12YXIgbm49WTEod2UuY2VsbFhmcyxudWxsLEgsd2UpO2plWyJzczpTdHlsZUlEIl09InMiKygyMStubiksamVbInNzOkluZGV4Il09WmUuYysxO3ZhciBDbj1udWxsIT1ILnY/WXQ6''@;'; + put 'put ''IiIsRHQ9InoiPT1ILnQ/IiI6SC5SP2Z1bmN0aW9uICR4KEgpe3JldHVybic8c3M6RGF0YSBzczpUeXBlPSJTdHJpbmciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4nK0gubWFwKGZ1bmN0aW9uKFgpe3ZhciB3ZT1kMChYLnYpO3JldHVybiBYLnMmJihYLnMuYm9s''@;'; + put 'put ''ZCYmKHdlPSI8Qj4iK3dlKyI8L0I+IiksWC5zLml0YWxpYyYmKHdlPSI8ST4iK3dlKyI8L0k+IiksWC5zLnN0cmlrZSYmKHdlPSI8Uz4iK3dlKyI8L1M+IiksWC5zLnVuZGVybGluZSYmKHdlPSI8VT4iK3dlKyI8L1U+IiksInN1cGVyIj09WC5zLnZhbGlnbiYmKHdlPSI8U3VwPiIrd2UrIjwv''@;'; + put 'put ''U3VwPiIpLCJzdWIiPT1YLnMudmFsaWduJiYod2U9IjxTdWI+Iit3ZSsiPC9TdWI+IiksKFgucy5uYW1lfHxYLnMuc3p8fFgucy5jb2xvciYmbnVsbCE9WC5zLmNvbG9yLnJnYikmJih3ZT1bIjxGb250IixYLnMubmFtZT8nIGh0bWw6RmFjZT0iJytYLnMubmFtZSsnIic6IiIsWC5zLnN6Pycg''@;'; + put 'put ''aHRtbDpTaXplPSInK1gucy5zeisnIic6IiIsWC5zLmNvbG9yPycgaHRtbDpDb2xvcj0iIycrKCIwMDAwMDAiKygibnVtYmVyIj09dHlwZW9mIFgucy5jb2xvci5yZ2I/WC5zLmNvbG9yLnJnYi50b1N0cmluZygxNik6WC5zLmNvbG9yLnJnYikpLnNsaWNlKC02KSsnIic6IiIsIj4iLHdlLCI8''@;'; + put 'put ''L0ZvbnQ+Il0uam9pbigiIikpKSx3ZX0pLmpvaW4oIiIpKyI8L0RhdGE+In0oSC5SKTonPERhdGEgc3M6VHlwZT0iJytSdCsnIj4nK0NuKyI8L0RhdGE+IjtyZXR1cm4oSC5jfHxbXSkubGVuZ3RoPjAmJihEdCs9ZnVuY3Rpb24gTW8oSCl7cmV0dXJuIEgubWFwKGZ1bmN0aW9uKHJlKXt2YXIg''@;'; + put 'put ''d2U9YmkoInNzOkRhdGEiLGZ1bmN0aW9uKHJlKXtyZXR1cm4gcmUucmVwbGFjZSgvKFxyXG58W1xyXG5dKS9nLCImIzEwOyIpfShyZS50fHwiIikse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIn0pO3JldHVybiBiaSgiQ29tbWVudCIsd2UseyJzczpBdXRob3IiOnJl''@;'; + put 'put ''LmF9KX0pLmpvaW4oIiIpfShILmMpKSxiaSgiQ2VsbCIsRHQsamUpfWZ1bmN0aW9uIENQKEgscmUpe3ZhciBYPSc8Um93IHNzOkluZGV4PSInKyhIKzEpKyciJztyZXR1cm4gcmUmJihyZS5ocHgmJiFyZS5ocHQmJihyZS5ocHQ9VGgocmUuaHB4KSkscmUuaHB0JiYoWCs9JyBzczpBdXRvRml0''@;'; + put 'put ''SGVpZ2h0PSIwIiBzczpIZWlnaHQ9IicrcmUuaHB0KyciJykscmUuaGlkZGVuJiYoWCs9JyBzczpIaWRkZW49IjEiJykpLFgrIj4ifWZ1bmN0aW9uIGtQKEgscmUsWCl7dmFyIHdlPVtdLEZlPVguU2hlZXRzW1guU2hlZXROYW1lc1tIXV0sWmU9RmU/ZnVuY3Rpb24gS3goSCxyZSxYLHdlKXtp''@;'; + put 'put ''ZighSHx8ISgod2V8fHt9KS5Xb3JrYm9va3x8e30pLk5hbWVzKXJldHVybiIiO2Zvcih2YXIgeGU9d2UuV29ya2Jvb2suTmFtZXMsRmU9W10sWmU9MDtaZTx4ZS5sZW5ndGg7KytaZSl7dmFyIGplPXhlW1plXTtqZS5TaGVldD09WCYmKGplLk5hbWUubWF0Y2goL15feGxmblwuLyl8fEZlLnB1''@;'; + put 'put ''c2goYlAoamUpKSl9cmV0dXJuIEZlLmpvaW4oIiIpfShGZSwwLEgsWCk6IiI7cmV0dXJuIFplLmxlbmd0aD4wJiZ3ZS5wdXNoKCI8TmFtZXM+IitaZSsiPC9OYW1lcz4iKSxaZT1GZT9mdW5jdGlvbiBTNShILHJlLFgsd2Upe2lmKCFIWyIhcmVmIl0pcmV0dXJuIiI7dmFyIHhlPUZvKEhbIiFy''@;'; + put 'put ''ZWYiXSksRmU9SFsiIW1lcmdlcyJdfHxbXSxaZT0wLGplPVtdO0hbIiFjb2xzIl0mJkhbIiFjb2xzIl0uZm9yRWFjaChmdW5jdGlvbih6dCxQbil7eWMoenQpO3ZhciBUbj0hIXp0LndpZHRoLE9uPWs2KFBuLHp0KSxXbj17InNzOkluZGV4IjpQbisxfTtUbiYmKFduWyJzczpXaWR0aCJdPW1t''@;'; + put 'put ''KE9uLndpZHRoKSksenQuaGlkZGVuJiYoV25bInNzOkhpZGRlbiJdPSIxIiksamUucHVzaChiaSgiQ29sdW1uIixudWxsLFduKSl9KTtmb3IodmFyIFllPUFycmF5LmlzQXJyYXkoSCksTXQ9eGUucy5yO010PD14ZS5lLnI7KytNdCl7Zm9yKHZhciB4dD1bQ1AoTXQsKEhbIiFyb3dzIl18fFtd''@;'; + put 'put ''KVtNdF0pXSxSdD14ZS5zLmM7UnQ8PXhlLmUuYzsrK1J0KXt2YXIgWXQ9ITE7Zm9yKFplPTA7WmUhPUZlLmxlbmd0aDsrK1plKWlmKCEoRmVbWmVdLnMuYz5SdHx8RmVbWmVdLnMucj5NdHx8RmVbWmVdLmUuYzxSdHx8RmVbWmVdLmUucjxNdCkpeyhGZVtaZV0ucy5jIT1SdHx8RmVbWmVdLnMu''@;'; + put 'put ''ciE9TXQpJiYoWXQ9ITApO2JyZWFrfWlmKCFZdCl7dmFyIG5uPXtyOk10LGM6UnR9LENuPVkwKG5uKTt4dC5wdXNoKF9QKFllPyhIW010XXx8W10pW1J0XTpIW0NuXSxDbixILHJlLDAsMCxubikpfX14dC5wdXNoKCI8L1Jvdz4iKSx4dC5sZW5ndGg+MiYmamUucHVzaCh4dC5qb2luKCIiKSl9''@;'; + put 'put ''cmV0dXJuIGplLmpvaW4oIiIpfShGZSxyZSk6IiIsWmUubGVuZ3RoPjAmJndlLnB1c2goIjxUYWJsZT4iK1plKyI8L1RhYmxlPiIpLHdlLnB1c2goZnVuY3Rpb24gd0coSCxyZSxYLHdlKXtpZighSClyZXR1cm4iIjt2YXIgeGU9W107aWYoSFsiIW1hcmdpbnMiXSYmKHhlLnB1c2goIjxQYWdl''@;'; + put 'put ''U2V0dXA+IiksSFsiIW1hcmdpbnMiXS5oZWFkZXImJnhlLnB1c2goYmkoIkhlYWRlciIsbnVsbCx7Ing6TWFyZ2luIjpIWyIhbWFyZ2lucyJdLmhlYWRlcn0pKSxIWyIhbWFyZ2lucyJdLmZvb3RlciYmeGUucHVzaChiaSgiRm9vdGVyIixudWxsLHsieDpNYXJnaW4iOkhbIiFtYXJnaW5zIl0u''@;'; + put 'put ''Zm9vdGVyfSkpLHhlLnB1c2goYmkoIlBhZ2VNYXJnaW5zIixudWxsLHsieDpCb3R0b20iOkhbIiFtYXJnaW5zIl0uYm90dG9tfHwiMC43NSIsIng6TGVmdCI6SFsiIW1hcmdpbnMiXS5sZWZ0fHwiMC43IiwieDpSaWdodCI6SFsiIW1hcmdpbnMiXS5yaWdodHx8IjAuNyIsIng6VG9wIjpIWyIh''@;'; + put 'put ''bWFyZ2lucyJdLnRvcHx8IjAuNzUifSkpLHhlLnB1c2goIjwvUGFnZVNldHVwPiIpKSx3ZSYmd2UuV29ya2Jvb2smJndlLldvcmtib29rLlNoZWV0cyYmd2UuV29ya2Jvb2suU2hlZXRzW1hdKWlmKHdlLldvcmtib29rLlNoZWV0c1tYXS5IaWRkZW4peGUucHVzaChiaSgiVmlzaWJsZSIsMT09''@;'; + put 'put ''d2UuV29ya2Jvb2suU2hlZXRzW1hdLkhpZGRlbj8iU2hlZXRIaWRkZW4iOiJTaGVldFZlcnlIaWRkZW4iLHt9KSk7ZWxzZXtmb3IodmFyIEZlPTA7RmU8WCYmKCF3ZS5Xb3JrYm9vay5TaGVldHNbRmVdfHx3ZS5Xb3JrYm9vay5TaGVldHNbRmVdLkhpZGRlbik7KytGZSk7RmU9PVgmJnhlLnB1''@;'; + put 'put ''c2goIjxTZWxlY3RlZC8+Iil9aWYoKCgoKHdlfHx7fSkuV29ya2Jvb2t8fHt9KS5WaWV3c3x8W10pWzBdfHx7fSkuUlRMJiZ4ZS5wdXNoKCI8RGlzcGxheVJpZ2h0VG9MZWZ0Lz4iKSxucihIWyIhZ3JpZGxpbmVzIl0pJiZ4ZS5wdXNoKCI8RG9Ob3REaXNwbGF5R3JpZGxpbmVzLz4iKSxIWyIh''@;'; + put 'put ''ZnJlZXplIl0pe3hlLnB1c2goIjxGcmVlemVQYW5lcy8+IikseGUucHVzaCgiPEZyb3plbk5vU3BsaXQvPiIpO3ZhciBaZT11bChIWyIhZnJlZXplIl0pO1plLnI+MCYmKHhlLnB1c2goc2EoIlNwbGl0SG9yaXpvbnRhbCIsIiIrWmUucikpLHhlLnB1c2goc2EoIlRvcFJvd0JvdHRvbVBhbmUi''@;'; + put 'put ''LCIiK1plLnIpKSksWmUuYz4wJiYoeGUucHVzaChzYSgiU3BsaXRWZXJ0aWNhbCIsIiIrWmUuYykpLHhlLnB1c2goc2EoIkxlZnRDb2x1bW5SaWdodFBhbmUiLCIiK1plLmMpKSl9cmV0dXJuIEhbIiFwcm90ZWN0Il0mJih4ZS5wdXNoKHNhKCJQcm90ZWN0Q29udGVudHMiLCJUcnVlIikpLEhb''@;'; + put 'put ''IiFwcm90ZWN0Il0ub2JqZWN0cyYmeGUucHVzaChzYSgiUHJvdGVjdE9iamVjdHMiLCJUcnVlIikpLEhbIiFwcm90ZWN0Il0uc2NlbmFyaW9zJiZ4ZS5wdXNoKHNhKCJQcm90ZWN0U2NlbmFyaW9zIiwiVHJ1ZSIpKSxudWxsPT1IWyIhcHJvdGVjdCJdLnNlbGVjdExvY2tlZENlbGxzfHxIWyIh''@;'; + put 'put ''cHJvdGVjdCJdLnNlbGVjdExvY2tlZENlbGxzP251bGwhPUhbIiFwcm90ZWN0Il0uc2VsZWN0VW5sb2NrZWRDZWxscyYmIUhbIiFwcm90ZWN0Il0uc2VsZWN0VW5sb2NrZWRDZWxscyYmeGUucHVzaChzYSgiRW5hYmxlU2VsZWN0aW9uIiwiVW5sb2NrZWRDZWxscyIpKTp4ZS5wdXNoKHNhKCJF''@;'; + put 'put ''bmFibGVTZWxlY3Rpb24iLCJOb1NlbGVjdGlvbiIpKSxbWyJmb3JtYXRDZWxscyIsIkFsbG93Rm9ybWF0Q2VsbHMiXSxbImZvcm1hdENvbHVtbnMiLCJBbGxvd1NpemVDb2xzIl0sWyJmb3JtYXRSb3dzIiwiQWxsb3dTaXplUm93cyJdLFsiaW5zZXJ0Q29sdW1ucyIsIkFsbG93SW5zZXJ0Q29s''@;'; + put 'put ''cyJdLFsiaW5zZXJ0Um93cyIsIkFsbG93SW5zZXJ0Um93cyJdLFsiaW5zZXJ0SHlwZXJsaW5rcyIsIkFsbG93SW5zZXJ0SHlwZXJsaW5rcyJdLFsiZGVsZXRlQ29sdW1ucyIsIkFsbG93RGVsZXRlQ29scyJdLFsiZGVsZXRlUm93cyIsIkFsbG93RGVsZXRlUm93cyJdLFsic29ydCIsIkFsbG93''@;'; + put 'put ''U29ydCJdLFsiYXV0b0ZpbHRlciIsIkFsbG93RmlsdGVyIl0sWyJwaXZvdFRhYmxlcyIsIkFsbG93VXNlUGl2b3RUYWJsZXMiXV0uZm9yRWFjaChmdW5jdGlvbihqZSl7SFsiIXByb3RlY3QiXVtqZVswXV0mJnhlLnB1c2goIjwiK2plWzFdKyIvPiIpfSkpLDA9PXhlLmxlbmd0aD8iIjpiaSgi''@;'; + put 'put ''V29ya3NoZWV0T3B0aW9ucyIseGUuam9pbigiIikse3htbG5zOnVhX3h9KX0oRmUsMCxILFgpKSx3ZS5qb2luKCIiKX1mdW5jdGlvbiBTQShILHJlKXtyZXx8KHJlPXt9KSxILlNTRnx8KEguU1NGPUYuZ2V0X3RhYmxlKCkpLEguU1NGJiYoeWUoRiksRi5sb2FkX3RhYmxlKEguU1NGKSxyZS5y''@;'; + put 'put ''ZXZzc2Y9ZXQoSC5TU0YpLHJlLnJldnNzZltILlNTRls2NTUzNV1dPTAscmUuc3NmPUguU1NGLEguU3R5bGVzPXtGb250czpyZS5Gb250cz1be3N6OjEyLGNvbG9yOnt0aGVtZToxLHJnYjoiMDAwMDAwIn0sbmFtZToiQ2FsaWJyaSIsZmFtaWx5OjIsc2NoZW1lOiJtaW5vciJ9XSxGaWxsczpy''@;'; + put 'put ''ZS5GaWxscz1be3BhdHRlcm5UeXBlOiJub25lIn0se3BhdHRlcm5UeXBlOiJncmF5MTI1In1dLEJvcmRlcnM6cmUuQm9yZGVycz1be31dfSxyZS5jZWxsWGZzPVtdLHJlLmNlbGxTdHlsZVhmcz1be25hbWU6Ik5vcm1hbCJ9XSxZMShyZS5jZWxsWGZzLG51bGwse30se3JldnNzZjp7R2VuZXJh''@;'; + put 'put ''bDowfX0pKTt2YXIgWD1bXTtYLnB1c2goZnVuY3Rpb24gazUoSCxyZSl7dmFyIFg9W107cmV0dXJuIEguUHJvcHMmJlgucHVzaChmdW5jdGlvbiBoYShILHJlKXt2YXIgWD1bXTtyZXR1cm4gb24oZW8pLm1hcChmdW5jdGlvbih3ZSl7Zm9yKHZhciB4ZT0wO3hlPGFlLmxlbmd0aDsrK3hlKWlm''@;'; + put 'put ''KGFlW3hlXVsxXT09d2UpcmV0dXJuIGFlW3hlXTtmb3IoeGU9MDt4ZTxvMi5sZW5ndGg7Kyt4ZSlpZihvMlt4ZV1bMV09PXdlKXJldHVybiBvMlt4ZV07dGhyb3cgd2V9KS5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtpZihudWxsIT1IW3dlWzFdXSl7dmFyIHhlPXJlJiZyZS5Qcm9wcyYmbnVsbCE9''@;'; + put 'put ''cmUuUHJvcHNbd2VbMV1dP3JlLlByb3BzW3dlWzFdXTpIW3dlWzFdXTsiZGF0ZSI9PT13ZVsyXSYmKHhlPW5ldyBEYXRlKHhlKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGQqWi8sIloiKSksIm51bWJlciI9PXR5cGVvZiB4ZT94ZT1TdHJpbmcoeGUpOiEwPT09eGV8fCExPT09eGU/eGU9''@;'; + put 'put ''eGU/IjEiOiIwIjp4ZSBpbnN0YW5jZW9mIERhdGUmJih4ZT1uZXcgRGF0ZSh4ZSkudG9JU09TdHJpbmcoKS5yZXBsYWNlKC9cLlxkKlovLCIiKSksWC5wdXNoKHNhKGVvW3dlWzFdXXx8d2VbMV0seGUpKX19KSxiaSgiRG9jdW1lbnRQcm9wZXJ0aWVzIixYLmpvaW4oIiIpLHt4bWxuczp1YV9v''@;'; + put 'put ''fSl9KEguUHJvcHMscmUpKSxILkN1c3Rwcm9wcyYmWC5wdXNoKGZ1bmN0aW9uIERhKEgscmUpe3ZhciBYPVsiV29ya3NoZWV0cyIsIlNoZWV0TmFtZXMiXSx3ZT0iQ3VzdG9tRG9jdW1lbnRQcm9wZXJ0aWVzIix4ZT1bXTtyZXR1cm4gSCYmb24oSCkuZm9yRWFjaChmdW5jdGlvbihGZSl7aWYo''@;'; + put 'put ''T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEgsRmUpKXtmb3IodmFyIFplPTA7WmU8YWUubGVuZ3RoOysrWmUpaWYoRmU9PWFlW1plXVsxXSlyZXR1cm47Zm9yKFplPTA7WmU8bzIubGVuZ3RoOysrWmUpaWYoRmU9PW8yW1plXVsxXSlyZXR1cm47Zm9yKFplPTA7WmU8WC5s''@;'; + put 'put ''ZW5ndGg7KytaZSlpZihGZT09WFtaZV0pcmV0dXJuO3ZhciBqZT1IW0ZlXSxZZT0ic3RyaW5nIjsibnVtYmVyIj09dHlwZW9mIGplPyhZZT0iZmxvYXQiLGplPVN0cmluZyhqZSkpOiEwPT09amV8fCExPT09amU/KFllPSJib29sZWFuIixqZT1qZT8iMSI6IjAiKTpqZT1TdHJpbmcoamUpLHhl''@;'; + put 'put ''LnB1c2goYmkoTWkoRmUpLGplLHsiZHQ6ZHQiOlllfSkpfX0pLHJlJiZvbihyZSkuZm9yRWFjaChmdW5jdGlvbihGZSl7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlLEZlKSYmKCFIfHwhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEgsRmUp''@;'; + put 'put ''KSl7dmFyIFplPXJlW0ZlXSxqZT0ic3RyaW5nIjsibnVtYmVyIj09dHlwZW9mIFplPyhqZT0iZmxvYXQiLFplPVN0cmluZyhaZSkpOiEwPT09WmV8fCExPT09WmU/KGplPSJib29sZWFuIixaZT1aZT8iMSI6IjAiKTpaZSBpbnN0YW5jZW9mIERhdGU/KGplPSJkYXRlVGltZS50eiIsWmU9WmUu''@;'; + put 'put ''dG9JU09TdHJpbmcoKSk6WmU9U3RyaW5nKFplKSx4ZS5wdXNoKGJpKE1pKEZlKSxaZSx7ImR0OmR0IjpqZX0pKX19KSwiPCIrd2UrJyB4bWxucz0iJyt1YV9vKyciPicreGUuam9pbigiIikrIjwvIit3ZSsiPiJ9KEguUHJvcHMsSC5DdXN0cHJvcHMpKSxYLmpvaW4oIiIpfShILHJlKSksWC5w''@;'; + put 'put ''dXNoKCIiKSxYLnB1c2goIiIpLFgucHVzaCgiIik7Zm9yKHZhciB3ZT0wO3dlPEguU2hlZXROYW1lcy5sZW5ndGg7Kyt3ZSlYLnB1c2goYmkoIldvcmtzaGVldCIsa1Aod2UscmUsSCkseyJzczpOYW1lIjpScihILlNoZWV0TmFtZXNbd2VdKX0pKTtyZXR1cm4gWFsyXT1mdW5jdGlvbiByYyhI''@;'; + put 'put ''LHJlKXt2YXIgd2U9W1snPFN0eWxlIHNzOklEPSJEZWZhdWx0IiBzczpOYW1lPSJOb3JtYWwiPicsJzxBbGlnbm1lbnQgc3M6VmVydGljYWw9IkJvdHRvbSIvPicsIjxCb3JkZXJzLz4iLCc8Rm9udCBzczpGb250TmFtZT0iQ2FsaWJyaSIgeDpGYW1pbHk9IlN3aXNzIiBzczpTaXplPSIxMiIg''@;'; + put 'put ''c3M6Q29sb3I9IiMwMDAwMDAiLz4nLCI8SW50ZXJpb3IvPiIsIjxOdW1iZXJGb3JtYXQvPiIsIjxQcm90ZWN0aW9uLz4iLCI8L1N0eWxlPiJdLmpvaW4oIiIpXTtyZXR1cm4gcmUuY2VsbFhmcy5mb3JFYWNoKGZ1bmN0aW9uKHhlLEZlKXt2YXIgWmU9W107aWYoeGUuYWxpZ25tZW50KXt2YXIg''@;'; + put 'put ''amU9e307eGUuYWxpZ25tZW50LnNocmlua1RvRml0JiYoamVbInNzOlNocmlua1RvRml0Il09IjEiKSx4ZS5hbGlnbm1lbnQud3JhcFRleHQmJihqZVsic3M6V3JhcFRleHQiXT0iMSIpLHhlLmFsaWdubWVudC52ZXJ0aWNhbCYmKGplWyJzczpWZXJ0aWNhbCJdPUFuKHhlLmFsaWdubWVudC52''@;'; + put 'put ''ZXJ0aWNhbCkpLHhlLmFsaWdubWVudC5ob3Jpem9udGFsJiYoamVbInNzOkhvcml6b250YWwiXT1Bbih4ZS5hbGlnbm1lbnQuaG9yaXpvbnRhbCkpLHhlLmFsaWdubWVudC5pbmRlbnQmJihqZVsic3M6SW5kZW50Il09eGUuYWxpZ25tZW50LmluZGVudCkseGUuYWxpZ25tZW50LnRleHRSb3Rh''@;'; + put 'put ''dGlvbiYmKGplWyJzczpSb3RhdGUiXT14ZS5hbGlnbm1lbnQudGV4dFJvdGF0aW9uKSxaZS5wdXNoKGJpKCJBbGlnbm1lbnQiLG51bGwsamUpKX1lOmlmKG51bGwhPXhlLmZvbnRJZCl7dmFyIFllPXJlLkZvbnRzW3hlLmZvbnRJZF07aWYoIVllKWJyZWFrIGU7dmFyIE10PXsic3M6Rm9udE5h''@;'; + put 'put ''bWUiOiJDYWxpYnJpIiwic3M6U2l6ZSI6IjEyIn0seHQ9ITE7WWUuYm9sZCYmKHh0PSEwLE10WyJzczpCb2xkIl09IjEiKSxZZS5pdGFsaWMmJih4dD0hMCxNdFsic3M6SXRhbGljIl09IjEiKSxZZS5zdHJpa2UmJih4dD0hMCxNdFsic3M6U3RyaWtlVGhyb3VnaCJdPSIxIiksbnVsbCE9WWUu''@;'; + put 'put ''dW5kZXJsaW5lJiYoeHQ9ITAsTXRbInNzOlVuZGVybGluZSJdPUpfW1llLnVuZGVybGluZV18fChZZS51bmRlcmxpbmU/IlNpbmdsZSI6Ik5vbmUiKSksbnVsbCE9WWUuc3omJih4dD0hMCxNdFsic3M6U2l6ZSJdPVllLnN6KSxudWxsIT1ZZS5uYW1lJiYoeHQ9ITAsTXRbInNzOkZvbnROYW1l''@;'; + put 'put ''Il09WWUubmFtZSksWWUuY29sb3ImJm51bGwhPVllLmNvbG9yLnJnYiYmKHh0PSEwLE10WyJzczpDb2xvciJdPSIjIisoIm51bWJlciI9PXR5cGVvZiBZZS5jb2xvci5yZ2I/IjAwMDAwMCIrWWUuY29sb3IucmdiLnRvU3RyaW5nKDE2KTpZZS5jb2xvci5yZ2IpLnNsaWNlKC02KSksWyJzdWIi''@;'; + put 'put ''LCJzdXBlciJdLmluZGV4T2YoWWUudmFsaWduKT4tMSYmKE10WyJzczpWZXJ0aWNhbEFsaWduIl09QW4oWWUudmFsaWduKSsic2NyaXB0IikseHQmJlplLnB1c2goYmkoIkZvbnQiLG51bGwsTXQpKX1lOmlmKHhlLmZpbGxJZD4wKXt2YXIgUnQ9cmUuRmlsbHNbeGUuZmlsbElkXTtpZighUnR8''@;'; + put 'put ''fCFSdC5mZ0NvbG9yfHxudWxsPT1SdC5mZ0NvbG9yLnJnYilicmVhayBlO1plLnB1c2goYmkoIkludGVyaW9yIixudWxsLHsic3M6UGF0dGVybiI6b0VbUnQucGF0dGVyblR5cGVdfHwiU29saWQiLCJzczpDb2xvciI6IiMiKygibnVtYmVyIj09dHlwZW9mIFJ0LmZnQ29sb3IucmdiPyIwMCIr''@;'; + put 'put ''UnQuZmdDb2xvci5yZ2IudG9TdHJpbmcoMTYpOlJ0LmZnQ29sb3IucmdiKS5zbGljZSgtNil9KSl9WmUucHVzaChiaSgiTnVtYmVyRm9ybWF0IixudWxsLHsic3M6Rm9ybWF0IjpScihGLl90YWJsZVt4ZS5udW1GbXRJZF0pfSkpO3ZhciBZdD17InNzOklEIjoicyIrKDIxK0ZlKX07eGUuc3R5''@;'; + put 'put ''bGUmJihZdFsic3M6TmFtZSJdPXhlLnN0eWxlKSx3ZS5wdXNoKGJpKCJTdHlsZSIsWmUuam9pbigiIiksWXQpKX0pLGJpKCJTdHlsZXMiLHdlLmpvaW4oIiIpKX0oMCxyZSksWFszXT1mdW5jdGlvbiBxXyhIKXtpZighKChIfHx7fSkuV29ya2Jvb2t8fHt9KS5OYW1lcylyZXR1cm4iIjtmb3Io''@;'; + put 'put ''dmFyIHJlPUguV29ya2Jvb2suTmFtZXMsWD1bXSx3ZT0wO3dlPHJlLmxlbmd0aDsrK3dlKXt2YXIgeGU9cmVbd2VdO251bGw9PXhlLlNoZWV0JiYoeGUuTmFtZS5tYXRjaCgvXl94bGZuXC4vKXx8WC5wdXNoKGJQKHhlKSkpfXJldHVybiBiaSgiTmFtZXMiLFguam9pbigiIikpfShIKSxjbiti''@;'; + put 'put ''aSgiV29ya2Jvb2siLFguam9pbigiIikse3htbG5zOnVhX3NzLCJ4bWxuczpvIjp1YV9vLCJ4bWxuczp4Ijp1YV94LCJ4bWxuczpzcyI6dWFfc3MsInhtbG5zOmR0IjoidXVpZDpDMkY0MTAxMC02NUIzLTExZDEtQTI5Ri0wMEFBMDBDMTQ4ODIiLCJ4bWxuczpodG1sIjoiaHR0cDovL3d3dy53''@;'; + put 'put ''My5vcmcvVFIvUkVDLWh0bWw0MCJ9KX1mdW5jdGlvbiBLMihILHJlLFgsd2Upe3ZhciB4ZT1YLEZlPVtdLFplPXJlLnNsaWNlKHJlLmwscmUubCt4ZSk7aWYod2UmJndlLmVuYyYmd2UuZW5jLmluc2l0dSYmWmUubGVuZ3RoPjApc3dpdGNoKEgubil7Y2FzZSJCT0YiOmNhc2UiRmlsZVBhc3Mi''@;'; + put 'put ''OmNhc2UiRmlsZUxvY2siOmNhc2UiSW50ZXJmYWNlSGRyIjpjYXNlIlJSREluZm8iOmNhc2UiUlJESGVhZCI6Y2FzZSJVc3JFeGNsIjpjYXNlIkVPRiI6d2UuZW5jLmluc2l0dShUZSh7bGVuZ3RoOlplLmxlbmd0aH0pLCJza2lwIik7YnJlYWs7Y2FzZSJCb3VuZFNoZWV0OCI6d2UuZW5jLmlu''@;'; + put 'put ''c2l0dShUZSh7bGVuZ3RoOjR9KSwic2tpcCIpLFplPUJ1ZmZlci5jb25jYXQoW0J1ZmZlci5mcm9tKFplLnNsaWNlKDAsNCkpLEJ1ZmZlci5mcm9tKHdlLmVuYy5pbnNpdHUoWmUuc2xpY2UoNCkpKV0pO2JyZWFrO2RlZmF1bHQ6WmU9d2UuZW5jLmluc2l0dShaZSl9QXJyYXkuaXNBcnJheShy''@;'; + put 'put ''ZSkmJiFBcnJheS5pc0FycmF5KFplKSYmKFplPUFycmF5LmZyb20oWmUpKSxGZS5wdXNoKFplKSxyZS5sKz14ZTtmb3IodmFyIGplPU5sW1JzKHJlLHJlLmwpXSxZZT0wO251bGwhPWplJiYiQ29udGludWUiPT09amUubi5zbGljZSgwLDgpOyl4ZT1ScyhyZSxyZS5sKzIpLFllPXJlLmwrNCx3''@;'; + put 'put ''ZSYmd2UuZW5jJiZ3ZS5lbmMuaW5zaXR1JiZ3ZS5lbmMuaW5zaXR1KFRlKHtsZW5ndGg6NH0pLCJza2lwIiksIkNvbnRpbnVlRnJ0Ij09amUubj9ZZSs9NDoiQ29udGludWVGcnQiPT1qZS5uLnNsaWNlKDAsMTEpJiYoWWUrPTEyLHdlJiZ3ZS5lbmMmJndlLmVuYy5pbnNpdHUmJndlLmVuYy5p''@;'; + put 'put ''bnNpdHUoVGUoe2xlbmd0aDo4fSksInNraXAiKSksWmU9cmUuc2xpY2UoWWUscmUubCs0K3hlKSx3ZSYmd2UuZW5jJiZ3ZS5lbmMuaW5zaXR1JiZaZS5sZW5ndGg+MCYmKFplPXdlLmVuYy5pbnNpdHUoWmUpKSxGZS5wdXNoKFplKSxyZS5sKz00K3hlLGplPU5sW1JzKHJlLHJlLmwpXTt2YXIg''@;'; + put 'put ''TXQ9VihGZSk7S2woTXQsMCk7dmFyIHh0PTA7TXQubGVucz1bXTtmb3IodmFyIFJ0PTA7UnQ8RmUubGVuZ3RoOysrUnQpTXQubGVucy5wdXNoKHh0KSx4dCs9RmVbUnRdLmxlbmd0aDtpZihNdC5sZW5ndGg8WCl0aHJvdyJYTFMgUmVjb3JkICIrKEgmJkgubnx8Ij8/IikrIiBUcnVuY2F0ZWQ6''@;'; + put 'put ''ICIrTXQubGVuZ3RoKyIgPCAiK1g7cmV0dXJuIEguZihNdCxNdC5sZW5ndGgsd2UpfWZ1bmN0aW9uIEhkKEgscmUsWCl7aWYoInoiIT09SC50JiZILlhGKXt2YXIgd2U9MDt0cnl7d2U9SC56fHxILlhGLm51bUZtdElkfHwwLHJlLmNlbGxORiYmKEguej1GLl90YWJsZVt3ZV0pfWNhdGNoKEZl''@;'; + put 'put ''KXtpZihyZS5XVEYpdGhyb3cgRmV9aWYoIXJlfHwhMSE9PXJlLmNlbGxUZXh0KXRyeXtILnc9ImUiPT09SC50P0gud3x8TjFbSC52XTowPT09d2V8fCJHZW5lcmFsIj09d2U/Im4iPT09SC50PygwfEgudik9PT1ILnY/Ri5fZ2VuZXJhbF9pbnQoSC52KTpGLl9nZW5lcmFsX251bShILnYpOkYu''@;'; + put 'put ''X2dlbmVyYWwoSC52KTpGLmZvcm1hdCh3ZSxILnYse2RhdGUxOTA0OiEhWCxkYXRlTkY6cmUmJnJlLmRhdGVORn0pfWNhdGNoKEZlKXtpZihyZS5XVEYpdGhyb3cgRmV9aWYocmUuY2VsbERhdGVzJiZ3ZSYmIm4iPT1ILnQmJkYuaXNfZGF0ZShGLl90YWJsZVt3ZV18fFN0cmluZyh3ZSkpKXt2''@;'; + put 'put ''YXIgeGU9Ri5wYXJzZV9kYXRlX2NvZGUoSC52KTt4ZSYmKEgudD0iZCIsSC52PW5ldyBEYXRlKHhlLnkseGUubS0xLHhlLmQseGUuSCx4ZS5NLHhlLlMseGUudSkpfX19ZnVuY3Rpb24gTTUoSCxyZSxYKXtyZXR1cm57djpILGl4ZmU6cmUsdDpYfX12YXIgcXg9ZnVuY3Rpb24oSCxyZSxYKXty''@;'; + put 'put ''ZVsiIW9iamVjdHMiXT1IfSxFNV9TST0iZTA4NTlmZjJmOTRmNjgxMGFiOTEwODAwMmIyN2IzZDkiLEU1X0RTST0iMDJkNWNkZDU5YzJlMWIxMDkzOTcwODAwMmIyY2Y5YWUiO2Z1bmN0aW9uIFVtKEgscmUpe3ZhciBYLHdlLHhlLEZlO2lmKHJlfHwocmU9e30pLE1mKHJlKSxxKCkscmUuY29k''@;'; + put 'put ''ZXBhZ2UmJlcocmUuY29kZXBhZ2UpLEguRnVsbFBhdGhzKXtpZih2dC5maW5kKEgsIi9lbmNyeXB0aW9uIikpdGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpO1g9dnQuZmluZChILCIhQ29tcE9iaiIpLHdlPXZ0LmZpbmQoSCwiL1dvcmtib29rIil8fHZ0LmZp''@;'; + put 'put ''bmQoSCwiL0Jvb2siKX1lbHNle3N3aXRjaChyZS50eXBlKXtjYXNlImJhc2U2NCI6SD16KFNlLmRlY29kZShIKSk7YnJlYWs7Y2FzZSJiaW5hcnkiOkg9eihIKTticmVhaztjYXNlImJ1ZmZlciI6YnJlYWs7Y2FzZSJhcnJheSI6QXJyYXkuaXNBcnJheShIKXx8KEg9QXJyYXkucHJvdG90eXBl''@;'; + put 'put ''LnNsaWNlLmNhbGwoSCkpfUtsKEgsMCksd2U9e2NvbnRlbnQ6SH19aWYoWCYmZnVuY3Rpb24gTUEoSCl7dmFyIHJlPXt9LFg9SC5jb250ZW50O2lmKFgubD0yOCxyZS5BbnNpVXNlclR5cGU9WC5yZWFkX3NoaWZ0KDAsImxwc3RyLWFuc2kiKSxyZS5BbnNpQ2xpcGJvYXJkRm9ybWF0PWZ1bmN0''@;'; + put 'put ''aW9uIGViKEgpe3JldHVybiBjdihILDEpfShYKSxYLmxlbmd0aC1YLmw8PTQpcmV0dXJuIHJlO3ZhciB3ZT1YLnJlYWRfc2hpZnQoNCk7aWYoMD09d2V8fHdlPjQwfHwoWC5sLT00LHJlLlJlc2VydmVkMT1YLnJlYWRfc2hpZnQoMCwibHBzdHItYW5zaSIpLFgubGVuZ3RoLVgubDw9NCl8fDE5''@;'; + put 'put ''MDc1MDU2NTIhPT0od2U9WC5yZWFkX3NoaWZ0KDQpKXx8KHJlLlVuaWNvZGVDbGlwYm9hcmRGb3JtYXQ9ZnVuY3Rpb24gUWcoSCl7cmV0dXJuIGN2KEgsMil9KFgpLDA9PSh3ZT1YLnJlYWRfc2hpZnQoNCkpfHx3ZT40MCkpcmV0dXJuIHJlO1gubC09NCxyZS5SZXNlcnZlZDI9WC5yZWFkX3No''@;'; + put 'put ''aWZ0KDAsImxwd3N0ciIpfShYKSxyZS5ib29rUHJvcHMmJiFyZS5ib29rU2hlZXRzKXhlPXt9O2Vsc2V7dmFyIFplPUllPyJidWZmZXIiOiJhcnJheSI7aWYod2UmJndlLmNvbnRlbnQpeGU9ZnVuY3Rpb24gU1AoSCxyZSl7dmFyIFJ0LG5uLER0LHp0LE9uLFduLFg9e29wdHM6e319LHdlPXt9''@;'; + put 'put ''LHhlPXJlLmRlbnNlP1tdOnt9LEZlPXt9LFplPXt9LGplPW51bGwsWWU9W10sTXQ9IiIseHQ9e30sWXQ9IiIsUG49e30sVG49W10sTXI9W10sYWk9W10seXI9e1NoZWV0czpbXSxXQlByb3BzOntkYXRlMTkwNDohMX0sVmlld3M6W3t9XX0sYXI9e30sR3I9e0ZvbnRzOltdfSx6cj1mdW5jdGlv''@;'; + put 'put ''bihwMCl7cmV0dXJuIHAwPDg/dXVbcDBdOnAwPDY0JiZhaVtwMC04XXx8dXVbcDBdfSxxcj1mdW5jdGlvbihwMCxRbCl7dmFyICQyLEFsPXAwLlhGLmRhdGE7QWwmJihBbC5wYXR0ZXJuVHlwZXx8bnVsbCE9QWwuaWN2Rm9yZSkmJlFsJiZRbC5jZWxsU3R5bGVzJiYocDAucz17fSxwMC5zLnBh''@;'; + put 'put ''dHRlcm5UeXBlPUFsLnBhdHRlcm5UeXBlLHAwLlhGLmZvbnQmJmJuKHAwLnMscDAuWEYuZm9udCksQWwuZldyYXAmJigocDAucy5hbGlnbm1lbnR8fChwMC5zLmFsaWdubWVudD17fSkpLndyYXBUZXh0PSEwKSxBbC5mU2hyaW5rVG9GaXQmJigocDAucy5hbGlnbm1lbnR8fChwMC5zLmFsaWdu''@;'; + put 'put ''bWVudD17fSkpLnNocmlua1RvRml0PSEwKSxBbC5oYWxpZ24mJigocDAucy5hbGlnbm1lbnR8fChwMC5zLmFsaWdubWVudD17fSkpLmhvcml6b250YWw9QWwuaGFsaWduKSxBbC52YWxpZ24mJigocDAucy5hbGlnbm1lbnR8fChwMC5zLmFsaWdubWVudD17fSkpLnZlcnRpY2FsPUFsLnZhbGln''@;'; + put 'put ''biksQWwuY0luZGVudCYmKChwMC5zLmFsaWdubWVudHx8KHAwLnMuYWxpZ25tZW50PXt9KSkuaW5kZW50PUFsLmNJbmRlbnQpLDY0IT1BbC5pY3ZGb3JlJiY2NSE9QWwuaWN2QmFjayYmKCgkMj1iMyh6cihBbC5pY3ZGb3JlKSkpJiYocDAucy5mZ0NvbG9yPXtyZ2I6JDJ9KSwoJDI9YjMoenIo''@;'; + put 'put ''QWwuaWN2QmFjaykpKSYmKHAwLnMuYmdDb2xvcj17cmdiOiQyfSkpLFsiTGVmdCIsIlJpZ2h0IiwiVG9wIiwiQm90dG9tIl0uZm9yRWFjaChmdW5jdGlvbihxMil7QWxbImRnIitxMl0mJihwMC5zW3EyLnRvTG93ZXJDYXNlKCldPXtzdHlsZTpUM1tBbFsiZGciK3EyXV0sY29sb3I6e3JnYjpi''@;'; + put 'put ''Myh6cihBbFsiaWN2IitxMl0pKX19KX0pKX0sb2k9ZnVuY3Rpb24ocDAsUWwsQWwpe2lmKCEoTjA+MXx8QWwuc2hlZXRSb3dzJiZwMC5yPj1BbC5zaGVldFJvd3MpKXtpZihBbC5jZWxsU3R5bGVzJiZRbC5YRiYmUWwuWEYuZGF0YSYmcXIoUWwsQWwpLGRlbGV0ZSBRbC5peGZlLGRlbGV0ZSBR''@;'; + put 'put ''bC5YRixSdD1wMCxZdD1ZMChwMCksKCFaZXx8IVplLnN8fCFaZS5lKSYmKFplPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX0pLHAwLnI8WmUucy5yJiYoWmUucy5yPXAwLnIpLHAwLmM8WmUucy5jJiYoWmUucy5jPXAwLmMpLHAwLnIrMT5aZS5lLnImJihaZS5lLnI9cDAucisxKSxwMC5jKzE+''@;'; + put 'put ''WmUuZS5jJiYoWmUuZS5jPXAwLmMrMSksQWwuY2VsbEZvcm11bGEmJlFsLmYpZm9yKHZhciAkMj0wOyQyPFRuLmxlbmd0aDsrKyQyKWlmKCEoVG5bJDJdWzBdLnMuYz5wMC5jfHxUblskMl1bMF0ucy5yPnAwLnJ8fFRuWyQyXVswXS5lLmM8cDAuY3x8VG5bJDJdWzBdLmUucjxwMC5yKSl7UWwu''@;'; + put 'put ''Rj1mYShUblskMl1bMF0pLChUblskMl1bMF0ucy5jIT1wMC5jfHxUblskMl1bMF0ucy5yIT1wMC5yKSYmZGVsZXRlIFFsLmYsUWwuZiYmKFFsLmY9IiIrVzEoVG5bJDJdWzFdLFplLHAwLE5yLGNyKSk7YnJlYWt9QWwuZGVuc2U/KHhlW3AwLnJdfHwoeGVbcDAucl09W10pLHhlW3AwLnJdW3Aw''@;'; + put 'put ''LmNdPVFsKTp4ZVtZdF09UWx9fSxjcj17ZW5jOiExLHNiY2NoOjAsc25hbWVzOltdLHNoYXJlZGY6UG4sYXJyYXlmOlRuLHJydGFiaWQ6W10sbGFzdHVzZXI6IiIsYmlmZjo4LGNvZGVwYWdlOjAsd2lubG9ja2VkOjAsY2VsbFN0eWxlczohIXJlJiYhIXJlLmNlbGxTdHlsZXMsV1RGOiEhcmUm''@;'; + put 'put ''JiEhcmUud3RmfTtjci5wYXNzd29yZD1yZS5wYXNzd29yZD9yZS5wYXNzd29yZDoiVmVsdmV0U3dlYXRzaG9wIjt2YXIgdjAsZGk9bnVsbCxVaT1bXSx0bz1bXSxBMD1bXSx3aT1bXSxoaT0hMSxOcj1bXTtOci5TaGVldE5hbWVzPWNyLnNuYW1lcyxOci5zaGFyZWRmPWNyLnNoYXJlZGYsTnIu''@;'; + put 'put ''YXJyYXlmPWNyLmFycmF5ZixOci5uYW1lcz1bXSxOci5YVEk9W107dmFyICQwLGtpPSIiLE4wPTAsdDA9MCxpbz1bXSxvYT1bXTtjci5jb2RlcGFnZT0xMjAwLGVlKDEyMDApO2Zvcih2YXIgTmE9ITE7SC5sPEgubGVuZ3RoLTE7KXt2YXIgam89SC5sLHdhPUgucmVhZF9zaGlmdCgyKTtpZihj''@;'; + put 'put ''ciYmY3IuZW5jJiZjci5lbmMuaW5zaXR1JiZjci5lbmMuaW5zaXR1KFRlKFswLDBdKSwiaGVhZGVyLTAiKSwwPT09d2EmJiJFT0YiPT09a2kpYnJlYWs7dmFyIGFvPUgubD09PUgubGVuZ3RoPzA6SC5yZWFkX3NoaWZ0KDIpO2NyJiZjci5lbmMmJmNyLmVuYy5pbnNpdHUmJmNyLmVuYy5pbnNp''@;'; + put 'put ''dHUoVGUoWzAsMF0pLCJsZW5ndGgtMCIpO3ZhciB4MD1ObFt3YV07aWYoeDAmJngwLmYpe2lmKHJlLmJvb2tTaGVldHMmJiJCb3VuZFNoZWV0OCI9PT1raSYmIkJvdW5kU2hlZXQ4IiE9PXgwLm4pYnJlYWs7aWYoa2k9eDAubiwyPT09eDAucnx8MTI9PXgwLnIpe3ZhciBoMD1ILnJlYWRfc2hp''@;'; + put 'put ''ZnQoMik7aWYoYW8tPTIsY3ImJmNyLmVuYyYmY3IuZW5jLmluc2l0dSYmY3IuZW5jLmluc2l0dShUZShbMCwwXSkpLCFjci5lbmMmJmgwIT09d2EmJigoMjU1JmgwKTw8OHxoMD4+OCkhPT13YSl0aHJvdyBuZXcgRXJyb3IoInJ0IG1pc21hdGNoOiAiK2gwKyIhPSIrd2EpOzEyPT14MC5yJiYo''@;'; + put 'put ''SC5sKz0xMCxhby09MTAsY3ImJmNyLmVuYyYmY3IuZW5jLmluc2l0dSYmY3IuZW5jLmluc2l0dShUZShbMCwwLDAsMCwwLDAsMCwwLDAsMF0pKSl9dmFyIGpyPUsyKHgwLEgsYW8sY3IpLEhpPXgwLm47aWYoMD09TjAmJiJCT0YiIT1IaSljb250aW51ZTtzd2l0Y2goSGkpe2Nhc2UiRGF0ZTE5''@;'; + put 'put ''MDQiOlgub3B0cy5EYXRlMTkwND15ci5XQlByb3BzLmRhdGUxOTA0PWpyO2JyZWFrO2Nhc2UiV3JpdGVQcm90ZWN0IjpYLm9wdHMuV3JpdGVQcm90ZWN0PSEwO2JyZWFrO2Nhc2UiRmlsZVBhc3MiOmlmKGNyLmVuY3x8KEgubD0wLE4wPTApLGNyLmVuYz1qciwhcmUucGFzc3dvcmQmJm51bGw9''@;'; + put 'put ''PWpyLnZhbGlkKXRocm93IG5ldyBFcnJvcigiRmlsZSBpcyBwYXNzd29yZC1wcm90ZWN0ZWQiKTtpZihudWxsPT1qci52YWxpZCl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRpb24gc2NoZW1lIHVuc3VwcG9ydGVkIik7aWYoIWpyLnZhbGlkKXRocm93IG5ldyBFcnJvcigiUGFzc3dvcmQgaXMg''@;'; + put 'put ''aW5jb3JyZWN0Iik7YnJlYWs7Y2FzZSJXcml0ZUFjY2VzcyI6Y3IubGFzdHVzZXI9anI7YnJlYWs7Y2FzZSJGaWxlU2hhcmluZyI6Y2FzZSJUZW1wbGF0ZSI6Y2FzZSJCb29rQm9vbCI6Y2FzZSJVc2VzRUxGcyI6Y2FzZSJNVFJTZXR0aW5ncyI6Y2FzZSJVbmNhbGNlZCI6Y2FzZSJFeHRTU1Qi''@;'; + put 'put ''OmNhc2UiQm9va0V4dCI6Y2FzZSJSaWNoVGV4dFN0cmVhbSI6Y2FzZSJCa0hpbSI6Y2FzZSJJbmRleCI6Y2FzZSJQcm90NFJldiI6Y2FzZSJQcm90NFJldlBhc3MiOmJyZWFrO2Nhc2UiQ29kZVBhZ2UiOnZhciB2bz1OdW1iZXIoanIpO3N3aXRjaCh2byl7Y2FzZSAyMTAxMDp2bz0xMjAwO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgMzI3Njg6dm89MWU0O2JyZWFrO2Nhc2UgMzI3Njk6dm89MTI1Mn1lZShjci5jb2RlcGFnZT12byksTmE9ITA7YnJlYWs7Y2FzZSJSUlRhYklkIjpjci5ycnRhYmlkPWpyO2JyZWFrO2Nhc2UiV2luUHJvdGVjdCI6Y3Iud2lubG9ja2VkPWpyO2JyZWFrO2Nhc2UiUmVmcmVzaEFs''@;'; + put 'put ''bCI6Y2FzZSJDYWxjQ291bnQiOmNhc2UiQ2FsY0RlbHRhIjpjYXNlIkNhbGNJdGVyIjpjYXNlIkNhbGNNb2RlIjpjYXNlIkNhbGNQcmVjaXNpb24iOmNhc2UiQ2FsY1NhdmVSZWNhbGMiOlgub3B0c1tIaV09anI7YnJlYWs7Y2FzZSJDYWxjUmVmTW9kZSI6Y3IuQ2FsY1JlZk1vZGU9anI7YnJl''@;'; + put 'put ''YWs7Y2FzZSJGb3JjZUZ1bGxDYWxjdWxhdGlvbiI6WC5vcHRzLkZ1bGxDYWxjPWpyO2JyZWFrO2Nhc2UiV3NCb29sIjpqci5mRGlhbG9nJiYoeGVbIiF0eXBlIl09ImRpYWxvZyIpLGpyLmZCZWxvd3x8KCh4ZVsiIW91dGxpbmUiXXx8KHhlWyIhb3V0bGluZSJdPXt9KSkuYWJvdmU9ITApLGpy''@;'; + put 'put ''LmZSaWdodHx8KCh4ZVsiIW91dGxpbmUiXXx8KHhlWyIhb3V0bGluZSJdPXt9KSkubGVmdD0hMCk7YnJlYWs7Y2FzZSJYRiI6anIuZm9udD1Hci5Gb250c1tqci5pZm50PDQ/anIuaWZudDpqci5pZm50LTFdLE1yLnB1c2goanIpO2JyZWFrO2Nhc2UiU3VwQm9vayI6TnIucHVzaChbanJdKSxO''@;'; + put 'put ''cltOci5sZW5ndGgtMV0uWFRJPVtdO2JyZWFrO2Nhc2UiRXh0ZXJuTmFtZSI6TnJbTnIubGVuZ3RoLTFdLnB1c2goanIpO2JyZWFrO2Nhc2UiTGJsIjokMD17TmFtZTpqci5OYW1lLFJlZjpXMShqci5yZ2NlLFplLG51bGwsTnIsY3IpfSxqci5pdGFiPjAmJigkMC5TaGVldD1qci5pdGFiLTEp''@;'; + put 'put ''LE5yLm5hbWVzLnB1c2goJDApLE5yWzBdfHwoTnJbMF09W10sTnJbMF0uWFRJPVtdKSxOcltOci5sZW5ndGgtMV0ucHVzaChqciksIl94bG5tLl9GaWx0ZXJEYXRhYmFzZSI9PWpyLk5hbWUmJmpyLml0YWI+MCYmanIucmdjZSYmanIucmdjZVswXSYmanIucmdjZVswXVswXSYmIlB0Z0FyZWEz''@;'; + put 'put ''ZCI9PWpyLnJnY2VbMF1bMF1bMF0mJihvYVtqci5pdGFiLTFdPXtyZWY6ZmEoanIucmdjZVswXVswXVsxXVsyXSl9KTticmVhaztjYXNlIkV4dGVybkNvdW50Ijpjci5FeHRlcm5Db3VudD1qcjticmVhaztjYXNlIkV4dGVyblNoZWV0IjowPT1Oci5sZW5ndGgmJihOclswXT1bXSxOclswXS5Y''@;'; + put 'put ''VEk9W10pLE5yW05yLmxlbmd0aC0xXS5YVEk9TnJbTnIubGVuZ3RoLTFdLlhUSS5jb25jYXQoanIpLE5yLlhUST1Oci5YVEkuY29uY2F0KGpyKTticmVhaztjYXNlIk5hbWVDbXQiOmlmKGNyLmJpZmY8OClicmVhaztudWxsIT0kMCYmKCQwLkNvbW1lbnQ9anJbMV0pO2JyZWFrO2Nhc2UiUHJv''@;'; + put 'put ''dGVjdCI6eGVbIiFwcm90ZWN0Il09anI7YnJlYWs7Y2FzZSJQYXNzd29yZCI6MCE9PWpyJiZjci5XVEYmJmNvbnNvbGUuZXJyb3IoIlBhc3N3b3JkIHZlcmlmaWVyOiAiK2pyKTticmVhaztjYXNlIkJvdW5kU2hlZXQ4IjpGZVtqci5wb3NdPWpyLGNyLnNuYW1lcy5wdXNoKGpyLm5hbWUpO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UiRU9GIjppZih4ZVsiIWdyaWRsaW5lcyJdPSFkaXx8ZGkuZ3JpZCxkaT1udWxsLC0tTjApYnJlYWs7aWYoWmUuZSl7aWYoWmUuZS5yPjAmJlplLmUuYz4wKXtpZihaZS5lLnItLSxaZS5lLmMtLSx4ZVsiIXJlZiJdPWZhKFplKSxyZS5zaGVldFJvd3MmJnJlLnNoZWV0Um93czw9''@;'; + put 'put ''WmUuZS5yKXt2YXIgeG89WmUuZS5yO1plLmUucj1yZS5zaGVldFJvd3MtMSx4ZVsiIWZ1bGxyZWYiXT14ZVsiIXJlZiJdLHhlWyIhcmVmIl09ZmEoWmUpLFplLmUucj14b31aZS5lLnIrKyxaZS5lLmMrK31VaS5sZW5ndGg+MCYmKHhlWyIhbWVyZ2VzIl09VWkpLHRvLmxlbmd0aD4wJiZxeCh0''@;'; + put 'put ''byx4ZSksQTAubGVuZ3RoPjAmJih4ZVsiIWNvbHMiXT1BMCksd2kubGVuZ3RoPjAmJih4ZVsiIXJvd3MiXT13aSkseXIuU2hlZXRzLnB1c2goYXIpfSIiPT09TXQ/eHQ9eGU6d2VbTXRdPXhlLHhlPXJlLmRlbnNlP1tdOnt9O2JyZWFrO2Nhc2UiQk9GIjppZig4PT09Y3IuYmlmZiYmKGNyLmJp''@;'; + put 'put ''ZmY9ezk6Miw1MjE6MywxMDMzOjR9W3dhXXx8ezUxMjoyLDc2ODozLDEwMjQ6NCwxMjgwOjUsMTUzNjo4LDI6Miw3OjJ9W2pyLkJJRkZWZXJdfHw4KSxjci5iaWZmZ3Vlc3M9MD09anIuQklGRlZlciwwPT1qci5CSUZGVmVyJiY0MDk2PT1qci5kdCYmKGNyLmJpZmY9NSxOYT0hMCxlZShjci5j''@;'; + put 'put ''b2RlcGFnZT0yODU5MSkpLDg9PWNyLmJpZmYmJjA9PWpyLkJJRkZWZXImJjE2PT1qci5kdCYmKGNyLmJpZmY9MiksTjArKylicmVhaztpZih4ZT1yZS5kZW5zZT9bXTp7fSxjci5iaWZmPDgmJiFOYSYmKE5hPSEwLGVlKGNyLmNvZGVwYWdlPXJlLmNvZGVwYWdlfHwxMjUyKSksY3IuYmlmZjw1''@;'; + put 'put ''fHwwPT1qci5CSUZGVmVyJiY0MDk2PT1qci5kdCl7IiI9PT1NdCYmKE10PSJTaGVldDEiKSxaZT17czp7cjowLGM6MH0sZTp7cjowLGM6MH19O3ZhciAkaT17cG9zOkgubC1hbyxuYW1lOk10fTtGZVskaS5wb3NdPSRpLGNyLnNuYW1lcy5wdXNoKE10KX1lbHNlIE10PShGZVtqb118fHtuYW1l''@;'; + put 'put ''OiIifSkubmFtZTszMj09anIuZHQmJih4ZVsiIXR5cGUiXT0iY2hhcnQiKSw2ND09anIuZHQmJih4ZVsiIXR5cGUiXT0ibWFjcm8iKSxVaT1bXSx0bz1bXSxjci5hcnJheWY9VG49W10sQTA9W10sd2k9W10saGk9ITEsYXI9e0hpZGRlbjooRmVbam9dfHx7aHM6MH0pLmhzLG5hbWU6TXR9O2Jy''@;'; + put 'put ''ZWFrO2Nhc2UiTnVtYmVyIjpjYXNlIkJJRkYyTlVNIjpjYXNlIkJJRkYySU5UIjoiY2hhcnQiPT14ZVsiIXR5cGUiXSYmKHJlLmRlbnNlPyh4ZVtqci5yXXx8W10pW2pyLmNdOnhlW1kwKHtjOmpyLmMscjpqci5yfSldKSYmKytqci5jLE9uPXtpeGZlOmpyLml4ZmUsWEY6TXJbanIuaXhmZV18''@;'; + put 'put ''fHt9LHY6anIudmFsLHQ6Im4ifSx0MD4wJiYoT24uej1pb1tPbi5peGZlPj44JjYzXSksSGQoT24scmUsWC5vcHRzLkRhdGUxOTA0KSxvaSh7Yzpqci5jLHI6anIucn0sT24scmUpO2JyZWFrO2Nhc2UiQm9vbEVyciI6T249e2l4ZmU6anIuaXhmZSxYRjpNcltqci5peGZlXSx2OmpyLnZhbCx0''@;'; + put 'put ''OmpyLnR9LHQwPjAmJihPbi56PWlvW09uLml4ZmU+PjgmNjNdKSxIZChPbixyZSxYLm9wdHMuRGF0ZTE5MDQpLG9pKHtjOmpyLmMscjpqci5yfSxPbixyZSk7YnJlYWs7Y2FzZSJSSyI6T249e2l4ZmU6anIuaXhmZSxYRjpNcltqci5peGZlXSx2OmpyLnJrbnVtLHQ6Im4ifSx0MD4wJiYoT24u''@;'; + put 'put ''ej1pb1tPbi5peGZlPj44JjYzXSksSGQoT24scmUsWC5vcHRzLkRhdGUxOTA0KSxvaSh7Yzpqci5jLHI6anIucn0sT24scmUpO2JyZWFrO2Nhc2UiTXVsUmsiOmZvcih2YXIgbDI9anIuYztsMjw9anIuQzsrK2wyKXt2YXIgTWM9anIucmtyZWNbbDItanIuY11bMF07T249e2l4ZmU6TWMsWEY6''@;'; + put 'put ''TXJbTWNdLHY6anIucmtyZWNbbDItanIuY11bMV0sdDoibiJ9LHQwPjAmJihPbi56PWlvW09uLml4ZmU+PjgmNjNdKSxIZChPbixyZSxYLm9wdHMuRGF0ZTE5MDQpLG9pKHtjOmwyLHI6anIucn0sT24scmUpfWJyZWFrO2Nhc2UiRm9ybXVsYSI6aWYoIlN0cmluZyI9PWpyLnZhbCl7amU9anI7''@;'; + put 'put ''YnJlYWt9aWYoKE9uPU01KGpyLnZhbCxqci5jZWxsLml4ZmUsanIudHQpKS5YRj1NcltPbi5peGZlXSxyZS5jZWxsRm9ybXVsYSl7dmFyIHAyPWpyLmZvcm11bGE7aWYocDImJnAyWzBdJiZwMlswXVswXSYmIlB0Z0V4cCI9PXAyWzBdWzBdWzBdKXt2YXIgcnI9cDJbMF1bMF1bMV1bMF0sSXI9''@;'; + put 'put ''cDJbMF1bMF1bMV1bMV0sWnI9WTAoe3I6cnIsYzpJcn0pO1BuW1pyXT9Pbi5mPSIiK1cxKGpyLmZvcm11bGEsWmUsanIuY2VsbCxOcixjcik6T24uRj0oKHJlLmRlbnNlPyh4ZVtycl18fFtdKVtJcl06eGVbWnJdKXx8e30pLkZ9ZWxzZSBPbi5mPSIiK1cxKGpyLmZvcm11bGEsWmUsanIuY2Vs''@;'; + put 'put ''bCxOcixjcil9dDA+MCYmKE9uLno9aW9bT24uaXhmZT4+OCY2M10pLEhkKE9uLHJlLFgub3B0cy5EYXRlMTkwNCksb2koanIuY2VsbCxPbixyZSksamU9anI7YnJlYWs7Y2FzZSJTdHJpbmciOmlmKCFqZSl0aHJvdyBuZXcgRXJyb3IoIlN0cmluZyByZWNvcmQgZXhwZWN0cyBGb3JtdWxhIik7''@;'; + put 'put ''amUudmFsPWpyLChPbj1NNShqcixqZS5jZWxsLml4ZmUsInMiKSkuWEY9TXJbT24uaXhmZV0scmUuY2VsbEZvcm11bGEmJihPbi5mPSIiK1cxKGplLmZvcm11bGEsWmUsamUuY2VsbCxOcixjcikpLHQwPjAmJihPbi56PWlvW09uLml4ZmU+PjgmNjNdKSxIZChPbixyZSxYLm9wdHMuRGF0ZTE5''@;'; + put 'put ''MDQpLG9pKGplLmNlbGwsT24scmUpLGplPW51bGw7YnJlYWs7Y2FzZSJBcnJheSI6VG4ucHVzaChqcik7dmFyIHFpPVkwKGpyWzBdLnMpO2lmKG5uPXJlLmRlbnNlPyh4ZVtqclswXS5zLnJdfHxbXSlbanJbMF0ucy5jXTp4ZVtxaV0scmUuY2VsbEZvcm11bGEmJm5uKXtpZighamV8fCFxaXx8''@;'; + put 'put ''IW5uKWJyZWFrO25uLmY9IiIrVzEoanJbMV0sWmUsanJbMF0sTnIsY3IpLG5uLkY9ZmEoanJbMF0pfWJyZWFrO2Nhc2UiU2hyRm1sYSI6aWYoIXJlLmNlbGxGb3JtdWxhKWJyZWFrO2lmKFl0KXtpZighamUpYnJlYWs7UG5bWTAoamUuY2VsbCldPWpyWzBdLCgobm49cmUuZGVuc2U/KHhlW2pl''@;'; + put 'put ''LmNlbGwucl18fFtdKVtqZS5jZWxsLmNdOnhlW1kwKGplLmNlbGwpXSl8fHt9KS5mPSIiK1cxKGpyWzBdLFplLFJ0LE5yLGNyKX1icmVhaztjYXNlIkxhYmVsU3N0IjpPbj1NNShZZVtqci5pc3N0XS50LGpyLml4ZmUsInMiKSxZZVtqci5pc3N0XS5oJiYoT24uaD1ZZVtqci5pc3N0XS5oKSxP''@;'; + put 'put ''bi5YRj1NcltPbi5peGZlXSx0MD4wJiYoT24uej1pb1tPbi5peGZlPj44JjYzXSksSGQoT24scmUsWC5vcHRzLkRhdGUxOTA0KSxvaSh7Yzpqci5jLHI6anIucn0sT24scmUpLFllW2pyLmlzc3RdLlImJihPbi5SPVllW2pyLmlzc3RdLlIubWFwKGZ1bmN0aW9uKHBvKXt2YXIgcDA9bG4ocG8p''@;'; + put 'put ''O3JldHVybiBwby5zPT1Hci5Gb250c1swXSYmKHAwLnM9T24ucykscDB9KSk7YnJlYWs7Y2FzZSJCbGFuayI6cmUuc2hlZXRTdHVicyYmKE9uPXtpeGZlOmpyLml4ZmUsWEY6TXJbanIuaXhmZV0sdDoieiJ9LHQwPjAmJihPbi56PWlvW09uLml4ZmU+PjgmNjNdKSxIZChPbixyZSxYLm9wdHMu''@;'; + put 'put ''RGF0ZTE5MDQpLG9pKHtjOmpyLmMscjpqci5yfSxPbixyZSkpO2JyZWFrO2Nhc2UiTXVsQmxhbmsiOmlmKHJlLnNoZWV0U3R1YnMpZm9yKHZhciByaT1qci5jO3JpPD1qci5DOysrcmkpe3ZhciByMD1qci5peGZlW3JpLWpyLmNdO09uPXtpeGZlOnIwLFhGOk1yW3IwXSx0OiJ6In0sdDA+MCYm''@;'; + put 'put ''KE9uLno9aW9bT24uaXhmZT4+OCY2M10pLEhkKE9uLHJlLFgub3B0cy5EYXRlMTkwNCksb2koe2M6cmkscjpqci5yfSxPbixyZSl9YnJlYWs7Y2FzZSJSU3RyaW5nIjpjYXNlIkxhYmVsIjpjYXNlIkJJRkYyU1RSIjooT249TTUoanIudmFsLGpyLml4ZmUsInMiKSkuWEY9TXJbT24uaXhmZV0s''@;'; + put 'put ''dDA+MCYmKE9uLno9aW9bT24uaXhmZT4+OCY2M10pLEhkKE9uLHJlLFgub3B0cy5EYXRlMTkwNCksb2koe2M6anIuYyxyOmpyLnJ9LE9uLHJlKTticmVhaztjYXNlIkRpbWVuc2lvbnMiOjE9PT1OMCYmKFplPWpyKTticmVhaztjYXNlIlNTVCI6KFllPWpyKS5mb3JFYWNoKGZ1bmN0aW9uKHBv''@;'; + put 'put ''KXtwby5fUj8ocG8uX1JbMF0mJnBvLl9SWzBdLmlkeD4wJiZwby5fUi51bnNoaWZ0KHtpZHg6MCxpZm50OjB9KSxwby5SPXBvLl9SLm1hcChmdW5jdGlvbihwMCxRbCl7cmV0dXJue3Q6InMiLHY6cG8udC5zbGljZShwMC5pZHgsKHBvLl9SW1FsKzFdfHx7fSkuaWR4KSxzOkdyLkZvbnRzW3Aw''@;'; + put 'put ''LmlmbnQ8ND9wMC5pZm50OnAwLmlmbnQtMV19fSkscmUuY2VsbEhUTUwmJihwby5oPWhtKHBvLlIpKSk6cmUuY2VsbEhUTUwmJihwby5oPW4wKHBvLnQpKSxkZWxldGUgcG8uX1J9KTticmVhaztjYXNlIkZvcm1hdCI6aWYoND09Y3IuYmlmZil7aW9bdDArK109anJbMV07Zm9yKHZhciBwaT0w''@;'; + put 'put ''O3BpPHQwKzE2MyYmRi5fdGFibGVbcGldIT1qclsxXTsrK3BpKTtwaT49MTYzJiZGLmxvYWQoanJbMV0sdDArMTYzKX1lbHNlIEYubG9hZChqclsxXSxqclswXSk7YnJlYWs7Y2FzZSJCSUZGMkZPUk1BVCI6aW9bdDArK109anI7Zm9yKHZhciBlMD0wO2UwPHQwKzE2MyYmRi5fdGFibGVbZTBd''@;'; + put 'put ''IT1qcjsrK2UwKTtlMD49MTYzJiZGLmxvYWQoanIsdDArMTYzKTticmVhaztjYXNlIk1lcmdlQ2VsbHMiOlVpPVVpLmNvbmNhdChqcik7YnJlYWs7Y2FzZSJPYmoiOnRvW2pyLmNtb1swXV09Y3IubGFzdG9iaj1qcjticmVhaztjYXNlIlR4TyI6Y3IubGFzdG9iai5UeE89anI7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSJJbURhdGEiOmNyLmxhc3RvYmouSW1EYXRhPWpyO2JyZWFrO2Nhc2UiSExpbmsiOmZvcih6dD1qclswXS5zLnI7enQ8PWpyWzBdLmUucjsrK3p0KWZvcihEdD1qclswXS5zLmM7RHQ8PWpyWzBdLmUuYzsrK0R0KShubj1yZS5kZW5zZT8oeGVbenRdfHxbXSlbRHRdOnhlW1kwKHtjOkR0LHI6''@;'; + put 'put ''enR9KV0pJiYobm4ubD1qclsxXSk7YnJlYWs7Y2FzZSJITGlua1Rvb2x0aXAiOmZvcih6dD1qclswXS5zLnI7enQ8PWpyWzBdLmUucjsrK3p0KWZvcihEdD1qclswXS5zLmM7RHQ8PWpyWzBdLmUuYzsrK0R0KShubj1yZS5kZW5zZT8oeGVbenRdfHxbXSlbRHRdOnhlW1kwKHtjOkR0LHI6enR9''@;'; + put 'put ''KV0pJiZubi5sJiYobm4ubC5Ub29sdGlwPWpyWzFdKTticmVhaztjYXNlIk5vdGUiOmlmKGNyLmJpZmY8PTUmJmNyLmJpZmY+PTIpYnJlYWs7bm49cmUuZGVuc2U/KHhlW2pyWzBdLnJdfHxbXSlbanJbMF0uY106eGVbWTAoanJbMF0pXTt2YXIgT289dG9banJbMl1dO25ufHwocmUuZGVuc2U/''@;'; + put 'put ''KHhlW2pyWzBdLnJdfHwoeGVbanJbMF0ucl09W10pLG5uPXhlW2pyWzBdLnJdW2pyWzBdLmNdPXt0OiJ6In0pOm5uPXhlW1kwKGpyWzBdKV09e3Q6InoifSxaZS5lLnI9TWF0aC5tYXgoWmUuZS5yLGpyWzBdLnIpLFplLnMucj1NYXRoLm1pbihaZS5zLnIsanJbMF0uciksWmUuZS5jPU1hdGgu''@;'; + put 'put ''bWF4KFplLmUuYyxqclswXS5jKSxaZS5zLmM9TWF0aC5taW4oWmUucy5jLGpyWzBdLmMpKSxubi5jfHwobm4uYz1bXSksbm4uYy5wdXNoKHthOmpyWzFdLHQ6T28uVHhPLnR9KTticmVhaztkZWZhdWx0OnN3aXRjaCh4MC5uKXtjYXNlIkNscnRDbGllbnQiOmNhc2UiSGVhZGVyIjpjYXNlIkZv''@;'; + put 'put ''b3RlciI6Y2FzZSJIQ2VudGVyIjpjYXNlIlZDZW50ZXIiOmNhc2UiUGxzIjpjYXNlIkdDVyI6Y2FzZSJMSFJlY29yZCI6Y2FzZSJEQkNlbGwiOmNhc2UiRW50RXhVMiI6Y2FzZSJTeFZpZXciOmNhc2UiU3h2ZCI6Y2FzZSJTWFZJIjpjYXNlIlNYVkRFeCI6Y2FzZSJTeEl2ZCI6Y2FzZSJTWFN0''@;'; + put 'put ''cmluZyI6Y2FzZSJTeW5jIjpjYXNlIkFkZGluIjpjYXNlIlNYREkiOmNhc2UiU1hMSSI6Y2FzZSJTWEV4IjpjYXNlIlFzaVNYVGFnIjpjYXNlIkZlYXQiOmNhc2UiRmVhdEhkciI6Y2FzZSJGZWF0SGRyMTEiOmNhc2UiRmVhdHVyZTExIjpjYXNlIkZlYXR1cmUxMiI6Y2FzZSJMaXN0MTIiOmNh''@;'; + put 'put ''c2UiUmVjYWxjSWQiOmNhc2UiRHhHQ29sIjpjYXNlIkZiaSI6Y2FzZSJGYmkyIjpjYXNlIkdlbEZyYW1lIjpjYXNlIlhGQ1JDIjpjYXNlIlN0eWxlIjpjYXNlIlN0eWxlRXh0IjpjYXNlIlNjZW5hcmlvUHJvdGVjdCI6Y2FzZSJPYmpQcm90ZWN0IjpjYXNlIkNvbmRGbXQxMiI6Y2FzZSJUYWJs''@;'; + put 'put ''ZSI6Y2FzZSJUYWJsZVN0eWxlcyI6Y2FzZSJUYWJsZVN0eWxlIjpjYXNlIlRhYmxlU3R5bGVFbGVtZW50IjpjYXNlIlNYU3RyZWFtSUQiOmNhc2UiU1hWUyI6Y2FzZSJEQ29uUmVmIjpjYXNlIlNYQWRkbCI6Y2FzZSJEQ29uQmluIjpjYXNlIkRDb25OYW1lIjpjYXNlIlNYUEkiOmNhc2UiU3hG''@;'; + put 'put ''b3JtYXQiOmNhc2UiU3hTZWxlY3QiOmNhc2UiU3hSdWxlIjpjYXNlIlN4RmlsdCI6Y2FzZSJTeEl0bSI6Y2FzZSJTeERYRiI6Y2FzZSJTY2VuTWFuIjpjYXNlIkRDb24iOmNhc2UiQ2VsbFdhdGNoIjpjYXNlIlByaW50Um93Q29sIjpjYXNlIlByaW50R3JpZCI6Y2FzZSJQcmludFNpemUiOmNh''@;'; + put 'put ''c2UiWENUIjpjYXNlIkNSTiI6Y2FzZSJTY2wiOmNhc2UiU2hlZXRFeHQiOmNhc2UiU2hlZXRFeHRPcHRpb25hbCI6Y2FzZSJPYk5vTWFjcm9zIjpjYXNlIk9iUHJvaiI6Y2FzZSJHVUlEVHlwZUxpYiI6Y2FzZSJXT3B0IjpjYXNlIlBob25ldGljSW5mbyI6Y2FzZSJPbGVPYmplY3RTaXplIjpj''@;'; + put 'put ''YXNlIkRYRiI6Y2FzZSJEWEZOIjpjYXNlIkRYRk4xMiI6Y2FzZSJEWEZOMTJMaXN0IjpjYXNlIkRYRk4xMk5vQ0IiOmNhc2UiRHYiOmNhc2UiRFZhbCI6Y2FzZSJCUkFJIjpjYXNlIlNlcmllcyI6Y2FzZSJTZXJpZXNUZXh0IjpjYXNlIkRDb25uIjpjYXNlIkRiT3JQYXJhbVFyeSI6Y2FzZSJE''@;'; + put 'put ''QlF1ZXJ5RXh0IjpjYXNlIk9sZURiQ29ubiI6Y2FzZSJFeHRTdHJpbmciOmNhc2UiSUZtdFJlY29yZCI6Y2FzZSJDb25kRm10IjpjYXNlIkNGIjpjYXNlIkNGMTIiOmNhc2UiQ0ZFeCI6Y2FzZSJFeGNlbDlGaWxlIjpjYXNlIlVuaXRzIjpjYXNlIkludGVyZmFjZUhkciI6Y2FzZSJNbXMiOmNh''@;'; + put 'put ''c2UiSW50ZXJmYWNlRW5kIjpjYXNlIkRTRiI6Y2FzZSJCdWlsdEluRm5Hcm91cENvdW50IjpjYXNlIldpbmRvdzEiOmNhc2UiSGlkZU9iaiI6Y2FzZSJHcmlkU2V0IjpjYXNlIkd1dHMiOmNhc2UiVXNlckJWaWV3IjpjYXNlIlVzZXJTVmlld0JlZ2luIjpjYXNlIlVzZXJTVmlld0VuZCI6Y2Fz''@;'; + put 'put ''ZSJEZWZDb2xXaWR0aCI6Y2FzZSJEZWZhdWx0Um93SGVpZ2h0IjpicmVhaztjYXNlIlhGRXh0IjpJYihNcltqci5peGZlXSxqci5leHQpO2JyZWFrO2Nhc2UiQ29sSW5mbyI6aWYoIWNyLmNlbGxTdHlsZXMpYnJlYWs7Zm9yKDtqci5lPj1qci5zOylBMFtqci5lLS1dPXt3aWR0aDpqci53LzI1''@;'; + put 'put ''NixsZXZlbDpqci5sZXZlbHx8MCxoaWRkZW46ISEoMSZqci5mbGFncyl9LGhpfHwoaGk9ITApLHljKEEwW2pyLmUrMV0pO2JyZWFrO2Nhc2UiUm93Ijp2YXIgazA9e307bnVsbCE9anIubGV2ZWwmJih3aVtqci5yXT1rMCxrMC5sZXZlbD1qci5sZXZlbCksanIuaGlkZGVuJiYod2lbanIucl09''@;'; + put 'put ''azAsazAuaGlkZGVuPSEwKSxqci5ocHQmJih3aVtqci5yXT1rMCxrMC5ocHQ9anIuaHB0LGswLmhweD1BZihqci5ocHQpKSxqci5peGZlJiYod2lbanIucl09azAscXIoT249e2l4ZmU6anIuaXhmZSxYRjpNcltqci5peGZlXXx8e30sdjowLHQ6Im4ifSxyZSksazAucz1Pbi5zKTticmVhaztj''@;'; + put 'put ''YXNlIkxlZnRNYXJnaW4iOmNhc2UiUmlnaHRNYXJnaW4iOmNhc2UiVG9wTWFyZ2luIjpjYXNlIkJvdHRvbU1hcmdpbiI6eGVbIiFtYXJnaW5zIl18fE9kKHhlWyIhbWFyZ2lucyJdPXt9KSx4ZVsiIW1hcmdpbnMiXVtIaS5zbGljZSgwLC02KS50b0xvd2VyQ2FzZSgpXT1qcjticmVhaztjYXNl''@;'; + put 'put ''IlNlbGVjdGlvbiI6eGVbIiFzZWwiXT1qcjticmVhaztjYXNlIlNldHVwIjp4ZVsiIW1hcmdpbnMiXXx8T2QoeGVbIiFtYXJnaW5zIl09e30pLHhlWyIhbWFyZ2lucyJdLmhlYWRlcj1qci5oZWFkZXIseGVbIiFtYXJnaW5zIl0uZm9vdGVyPWpyLmZvb3RlcjticmVhaztjYXNlIldpbmRvdzIi''@;'; + put 'put ''OmpyLlJUTCYmKHlyLlZpZXdzWzBdLlJUTD0hMCksZGk9anI7YnJlYWs7Y2FzZSJDb3VudHJ5IjpXbj1qcjticmVhaztjYXNlIkZvbnQiOmpyLmljdiYmenIoanIuaWN2KSYmKGpyLmNvbG9yPXtyZ2I6YjMoenIoanIuaWN2KSl9KSxkZWxldGUganIuaWN2LDA9PUdyLkZvbnRzLmxlbmd0aCYm''@;'; + put 'put ''UzMoanIpLEdyLkZvbnRzLnB1c2goanIpO2JyZWFrO2Nhc2UiUGFsZXR0ZSI6YWk9anI7YnJlYWs7Y2FzZSJUaGVtZSI6djA9anI7YnJlYWs7Y2FzZSJDb2RlTmFtZSI6TXQ/YXIuQ29kZU5hbWU9anJ8fGFyLm5hbWU6eXIuV0JQcm9wcy5Db2RlTmFtZT1qcnx8IlRoaXNXb3JrYm9vayI7YnJl''@;'; + put 'put ''YWs7Y2FzZSJQYW5lIjooZGl8fHt9KS5mcm96ZW4mJih4ZVsiIWZyZWV6ZSJdPVkwKHtyOmpyLnl8fDAsYzpqci54fHwwfSkpO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKHgwLm4pe2Nhc2UiRGF0IjpjYXNlIkJlZ2luIjpjYXNlIkVuZCI6Y2FzZSJTdGFydEJsb2NrIjpjYXNlIkVuZEJsb2NrIjpj''@;'; + put 'put ''YXNlIkZyYW1lIjpjYXNlIkFyZWEiOmNhc2UiQXhpcyI6Y2FzZSJBeGlzTGluZSI6Y2FzZSJUaWNrIjpjYXNlIkF4ZXNVc2VkIjpjYXNlIkNydExheW91dDEyIjpjYXNlIkNydExheW91dDEyQSI6Y2FzZSJDcnRMaW5rIjpjYXNlIkNydExpbmUiOmNhc2UiQ3J0TWxGcnQiOmNhc2UiQ3J0TWxG''@;'; + put 'put ''cnRDb250aW51ZSI6Y2FzZSJMaW5lRm9ybWF0IjpjYXNlIkFyZWFGb3JtYXQiOmNhc2UiQ2hhcnQiOmNhc2UiQ2hhcnQzZCI6Y2FzZSJDaGFydDNEQmFyU2hhcGUiOmNhc2UiQ2hhcnRGb3JtYXQiOmNhc2UiQ2hhcnRGcnRJbmZvIjpjYXNlIlBsb3RBcmVhIjpjYXNlIlBsb3RHcm93dGgiOmNh''@;'; + put 'put ''c2UiU2VyaWVzTGlzdCI6Y2FzZSJTZXJQYXJlbnQiOmNhc2UiU2VyQXV4VHJlbmQiOmNhc2UiRGF0YUZvcm1hdCI6Y2FzZSJTZXJUb0NydCI6Y2FzZSJGb250WCI6Y2FzZSJDYXRTZXJSYW5nZSI6Y2FzZSJBeGNFeHQiOmNhc2UiU2VyRm10IjpjYXNlIlNodFByb3BzIjpjYXNlIkRlZmF1bHRU''@;'; + put 'put ''ZXh0IjpjYXNlIlRleHQiOmNhc2UiQ2F0TGFiIjpjYXNlIkRhdGFMYWJFeHRDb250ZW50cyI6Y2FzZSJMZWdlbmQiOmNhc2UiTGVnZW5kRXhjZXB0aW9uIjpjYXNlIlBpZSI6Y2FzZSJTY2F0dGVyIjpjYXNlIlBpZUZvcm1hdCI6Y2FzZSJNYXJrZXJGb3JtYXQiOmNhc2UiU3RhcnRPYmplY3Qi''@;'; + put 'put ''OmNhc2UiRW5kT2JqZWN0IjpjYXNlIkFsUnVucyI6Y2FzZSJPYmplY3RMaW5rIjpjYXNlIlNJSW5kZXgiOmNhc2UiQXR0YWNoZWRMYWJlbCI6Y2FzZSJZTXVsdCI6Y2FzZSJMaW5lIjpjYXNlIkJhciI6Y2FzZSJTdXJmIjpjYXNlIkF4aXNQYXJlbnQiOmNhc2UiUG9zIjpjYXNlIlZhbHVlUmFu''@;'; + put 'put ''Z2UiOmNhc2UiU1hWaWV3RXg5IjpjYXNlIlNYVmlld0xpbmsiOmNhc2UiUGl2b3RDaGFydEJpdHMiOmNhc2UiU0Jhc2VSZWYiOmNhc2UiVGV4dFByb3BzU3RyZWFtIjpjYXNlIkxuRXh0IjpjYXNlIk1rckV4dCI6Y2FzZSJDcnRDb29wdCI6Y2FzZSJRc2kiOmNhc2UiUXNpZiI6Y2FzZSJRc2ly''@;'; + put 'put ''IjpjYXNlIlFzaVNYVGFnIjpjYXNlIlR4dFFyeSI6Y2FzZSJGaWx0ZXJNb2RlIjpjYXNlIkF1dG9GaWx0ZXIiOmNhc2UiQXV0b0ZpbHRlckluZm8iOmNhc2UiQXV0b0ZpbHRlcjEyIjpjYXNlIkRyb3BEb3duT2JqSWRzIjpjYXNlIlNvcnQiOmNhc2UiU29ydERhdGEiOmNhc2UiU2hhcGVQcm9w''@;'; + put 'put ''c1N0cmVhbSI6Y2FzZSJNc29EcmF3aW5nIjpjYXNlIk1zb0RyYXdpbmdHcm91cCI6Y2FzZSJNc29EcmF3aW5nU2VsZWN0aW9uIjpjYXNlIldlYlB1YiI6Y2FzZSJBdXRvV2ViUHViIjpjYXNlIkhlYWRlckZvb3RlciI6Y2FzZSJIRlBpY3R1cmUiOmNhc2UiUExWIjpjYXNlIkhvcml6b250YWxQ''@;'; + put 'put ''YWdlQnJlYWtzIjpjYXNlIlZlcnRpY2FsUGFnZUJyZWFrcyI6Y2FzZSJCYWNrdXAiOmNhc2UiQ29tcHJlc3NQaWN0dXJlcyI6Y2FzZSJDb21wYXQxMiI6Y2FzZSJDb250aW51ZSI6Y2FzZSJDb250aW51ZUZydDEyIjpjYXNlIkZydEZvbnRMaXN0IjpjYXNlIkZydFdyYXBwZXIiOmJyZWFrO2Rl''@;'; + put 'put ''ZmF1bHQ6c3dpdGNoKHgwLm4pe2Nhc2UiVGFiSWRDb25mIjpjYXNlIlJhZGFyIjpjYXNlIlJhZGFyQXJlYSI6Y2FzZSJEcm9wQmFyIjpjYXNlIkludGwiOmNhc2UiQ29vcmRMaXN0IjpjYXNlIlNlckF1eEVyckJhciI6Y2FzZSJCSUZGMkZPTlRDTFIiOmNhc2UiQklGRjJGTVRDTlQiOmNhc2Ui''@;'; + put 'put ''QklGRjJGT05UWFRSQSI6Y2FzZSJCSUZGMlhGIjpjYXNlIkJJRkYzWEYiOmNhc2UiQklGRjRYRiI6Y2FzZSJCSUZGMlhGSU5ERVgiOmNhc2UiQklGRjRGTVRDTlQiOmNhc2UiQklGRjJST1ciOmNhc2UiQklGRjJXSU5ET1cyIjpjYXNlIlNDRU5BUklPIjpjYXNlIkRDb25CaW4iOmNhc2UiUGlj''@;'; + put 'put ''RiI6Y2FzZSJEYXRhTGFiRXh0IjpjYXNlIkxlbCI6Y2FzZSJCb3BQb3AiOmNhc2UiQm9wUG9wQ3VzdG9tIjpjYXNlIlJlYWxUaW1lRGF0YSI6Y2FzZSJOYW1lIjpjYXNlIkxITkdyYXBoIjpjYXNlIkZuR3JvdXBOYW1lIjpjYXNlIkFkZE1lbnUiOmNhc2UiTFByIjpjYXNlIkxpc3RPYmoiOmNh''@;'; + put 'put ''c2UiTGlzdEZpZWxkIjpjYXNlIlJSU29ydCI6Y2FzZSJCaWdOYW1lIjpjYXNlIlRvb2xiYXJIZHIiOmNhc2UiVG9vbGJhckVuZCI6Y2FzZSJEREVPYmpOYW1lIjpjYXNlIkZSVEFyY2hJZCQiOmJyZWFrO2RlZmF1bHQ6aWYocmUuV1RGKXRocm93IlVucmVjb2duaXplZCBSZWNvcmQgIit4MC5u''@;'; + put 'put ''fX19fX1lbHNlIEgubCs9YW8sY3ImJmNyLmVuYyYmY3IuZW5jLmluc2l0dSYmY3IuZW5jLmluc2l0dShUZSh7bGVuZ3RoOmFvfSkpfXJldHVybiBYLlNoZWV0TmFtZXM9b24oRmUpLnNvcnQoZnVuY3Rpb24ocG8scDApe3JldHVybiBOdW1iZXIocG8pLU51bWJlcihwMCl9KS5tYXAoZnVuY3Rp''@;'; + put 'put ''b24ocG8pe3JldHVybiBGZVtwb10ubmFtZX0pLHJlLmJvb2tTaGVldHN8fChYLlNoZWV0cz13ZSksIVguU2hlZXROYW1lcy5sZW5ndGgmJnh0WyIhcmVmIl0/KFguU2hlZXROYW1lcy5wdXNoKCJTaGVldDEiKSxYLlNoZWV0cyYmKFguU2hlZXRzLlNoZWV0MT14dCkpOlguUHJlYW1ibGU9eHQs''@;'; + put 'put ''WC5TaGVldHMmJm9hLmZvckVhY2goZnVuY3Rpb24ocG8scDApe1guU2hlZXRzW1guU2hlZXROYW1lc1twMF1dWyIhYXV0b2ZpbHRlciJdPXBvfSksWC5TdHJpbmdzPVllLFguU1NGPUYuZ2V0X3RhYmxlKCksY3IuZW5jJiYoWC5FbmNyeXB0aW9uPWNyLmVuYyksdjAmJihYLlRoZW1lcz12MCks''@;'; + put 'put ''WC5NZXRhZGF0YT17fSx2b2lkIDAhPT1XbiYmKFguTWV0YWRhdGEuQ291bnRyeT1XbiksTnIubmFtZXMubGVuZ3RoPjAmJih5ci5OYW1lcz1Oci5uYW1lcyksWC5Xb3JrYm9vaz15cixYfSh3ZS5jb250ZW50LHJlKTtlbHNlIGlmKChGZT12dC5maW5kKEgsIlBlcmZlY3RPZmZpY2VfTUFJTiIp''@;'; + put 'put ''KSYmRmUuY29udGVudCl4ZT1HMS50b193b3JrYm9vayhGZS5jb250ZW50LChyZS50eXBlPVplLHJlKSk7ZWxzZXtpZighKEZlPXZ0LmZpbmQoSCwiTmF0aXZlQ29udGVudF9NQUlOIikpfHwhRmUuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIFdvcmtib29rIHN0cmVhbSIp''@;'; + put 'put ''O3hlPUcxLnRvX3dvcmtib29rKEZlLmNvbnRlbnQsKHJlLnR5cGU9WmUscmUpKX1yZS5ib29rVkJBJiZILkZ1bGxQYXRocyYmdnQuZmluZChILCIvX1ZCQV9QUk9KRUNUX0NVUi9WQkEvZGlyIikmJih4ZS52YmFyYXc9ZnVuY3Rpb24gWWIoSCl7dmFyIHJlPXZ0LnV0aWxzLmNmYl9uZXcoe3Jv''@;'; + put 'put ''b3Q6IlIifSk7cmV0dXJuIEguRnVsbFBhdGhzLmZvckVhY2goZnVuY3Rpb24oWCx3ZSl7aWYoIi8iIT09WC5zbGljZSgtMSkmJlgubWF0Y2goL19WQkFfUFJPSkVDVF9DVVIvKSl7dmFyIHhlPVgucmVwbGFjZSgvXlteXC9dKi8sIlIiKS5yZXBsYWNlKC9cL19WQkFfUFJPSkVDVF9DVVJcdTAw''@;'; + put 'put ''MDAqLywiIik7dnQudXRpbHMuY2ZiX2FkZChyZSx4ZSxILkZpbGVJbmRleFt3ZV0uY29udGVudCl9fSksdnQud3JpdGUocmUpfShIKSl9dmFyIGplPXt9O3JldHVybiBILkZ1bGxQYXRocyYmZnVuY3Rpb24gZVQoSCxyZSxYKXt2YXIgd2U9dnQuZmluZChILCIhRG9jdW1lbnRTdW1tYXJ5SW5m''@;'; + put 'put ''b3JtYXRpb24iKTtpZih3ZSYmd2Uuc2l6ZT4wKXRyeXt2YXIgeGU9eWQod2UsdGIsRTVfRFNJKTtmb3IodmFyIEZlIGluIHhlKXJlW0ZlXT14ZVtGZV19Y2F0Y2goTXQpe2lmKFguV1RGKXRocm93IE10fXZhciBaZT12dC5maW5kKEgsIiFTdW1tYXJ5SW5mb3JtYXRpb24iKTtpZihaZSYmWmUu''@;'; + put 'put ''c2l6ZT4wKXRyeXt2YXIgamU9eWQoWmUsVXAsRTVfU0kpO2Zvcih2YXIgWWUgaW4gamUpbnVsbD09cmVbWWVdJiYocmVbWWVdPWplW1llXSl9Y2F0Y2goTXQpe2lmKFguV1RGKXRocm93IE10fXJlLkhlYWRpbmdQYWlycyYmcmUuVGl0bGVzT2ZQYXJ0cyYmKEFzKHJlLkhlYWRpbmdQYWlycyxy''@;'; + put 'put ''ZS5UaXRsZXNPZlBhcnRzLHJlLFgpLGRlbGV0ZSByZS5IZWFkaW5nUGFpcnMsZGVsZXRlIHJlLlRpdGxlc09mUGFydHMpfShILGplLHJlKSx4ZS5Qcm9wcz14ZS5DdXN0cHJvcHM9amUscmUuYm9va0ZpbGVzJiYoeGUuY2ZiPUgpLHhlfXZhciB4NT17MDp7bjoiQnJ0Um93SGRyIixmOmZ1bmN0''@;'; + put 'put ''aW9uIEdCKEgscmUpe3ZhciBYPXt9LHdlPUgubCtyZTtYLnI9SC5yZWFkX3NoaWZ0KDQpLEgubCs9NDt2YXIgeGU9SC5yZWFkX3NoaWZ0KDIpO0gubCs9MTt2YXIgRmU9SC5yZWFkX3NoaWZ0KDEpO3JldHVybiBILmw9d2UsNyZGZSYmKFgubGV2ZWw9NyZGZSksMTYmRmUmJihYLmhpZGRlbj0h''@;'; + put 'put ''MCksMzImRmUmJihYLmhwdD14ZS8yMCksWH19LDE6e246IkJydENlbGxCbGFuayIsZjpmdW5jdGlvbiBKQihIKXtyZXR1cm5bdmgoSCldfX0sMjp7bjoiQnJ0Q2VsbFJrIixmOmZ1bmN0aW9uIGR4KEgpe3JldHVyblt2aChIKSxXZyhIKSwibiJdfX0sMzp7bjoiQnJ0Q2VsbEVycm9yIixmOmZ1''@;'; + put 'put ''bmN0aW9uIFhmKEgpe3JldHVyblt2aChIKSxILnJlYWRfc2hpZnQoMSksImUiXX19LDQ6e246IkJydENlbGxCb29sIixmOmZ1bmN0aW9uIE5tKEgpe3JldHVyblt2aChIKSxILnJlYWRfc2hpZnQoMSksImIiXX19LDU6e246IkJydENlbGxSZWFsIixmOmZ1bmN0aW9uIE8zKEgpe3JldHVyblt2''@;'; + put 'put ''aChIKSxJMihIKSwibiJdfX0sNjp7bjoiQnJ0Q2VsbFN0IixmOmZ1bmN0aW9uIGd4KEgpe3JldHVyblt2aChIKSx4dShIKSwic3RyIl19fSw3OntuOiJCcnRDZWxsSXNzdCIsZjpmdW5jdGlvbiBLZihIKXtyZXR1cm5bdmgoSCksSC5yZWFkX3NoaWZ0KDQpLCJzIl19fSw4OntuOiJCcnRGbWxh''@;'; + put 'put ''U3RyaW5nIixmOmZ1bmN0aW9uIHJuKEgscmUsWCl7dmFyIHdlPUgubCtyZSx4ZT12aChIKTt4ZS5yPVhbIiFyb3ciXTt2YXIgWmU9W3hlLHh1KEgpLCJzdHIiXTtpZihYLmNlbGxGb3JtdWxhKXtILmwrPTI7dmFyIGplPWFfKEgsd2UtSC5sLFgpO1plWzNdPVcxKGplLG51bGwseGUsWC5zdXBi''@;'; + put 'put ''b29rcyxYKX1lbHNlIEgubD13ZTtyZXR1cm4gWmV9fSw5OntuOiJCcnRGbWxhTnVtIixmOmZ1bmN0aW9uIGJBKEgscmUsWCl7dmFyIHdlPUgubCtyZSx4ZT12aChIKTt4ZS5yPVhbIiFyb3ciXTt2YXIgWmU9W3hlLEkyKEgpLCJuIl07aWYoWC5jZWxsRm9ybXVsYSl7SC5sKz0yO3ZhciBqZT1h''@;'; + put 'put ''XyhILHdlLUgubCxYKTtaZVszXT1XMShqZSxudWxsLHhlLFguc3VwYm9va3MsWCl9ZWxzZSBILmw9d2U7cmV0dXJuIFplfX0sMTA6e246IkJydEZtbGFCb29sIixmOmZ1bmN0aW9uIGR1KEgscmUsWCl7dmFyIHdlPUgubCtyZSx4ZT12aChIKTt4ZS5yPVhbIiFyb3ciXTt2YXIgWmU9W3hlLEgu''@;'; + put 'put ''cmVhZF9zaGlmdCgxKSwiYiJdO2lmKFguY2VsbEZvcm11bGEpe0gubCs9Mjt2YXIgamU9YV8oSCx3ZS1ILmwsWCk7WmVbM109VzEoamUsbnVsbCx4ZSxYLnN1cGJvb2tzLFgpfWVsc2UgSC5sPXdlO3JldHVybiBaZX19LDExOntuOiJCcnRGbWxhRXJyb3IiLGY6ZnVuY3Rpb24gX2MoSCxyZSxY''@;'; + put 'put ''KXt2YXIgd2U9SC5sK3JlLHhlPXZoKEgpO3hlLnI9WFsiIXJvdyJdO3ZhciBaZT1beGUsSC5yZWFkX3NoaWZ0KDEpLCJlIl07aWYoWC5jZWxsRm9ybXVsYSl7SC5sKz0yO3ZhciBqZT1hXyhILHdlLUgubCxYKTtaZVszXT1XMShqZSxudWxsLHhlLFguc3VwYm9va3MsWCl9ZWxzZSBILmw9d2U7''@;'; + put 'put ''cmV0dXJuIFplfX0sMTI6e246IkJydFNob3J0QmxhbmsiLGY6ZnVuY3Rpb24gWEIoSCl7cmV0dXJuW000KEgpXX19LDEzOntuOiJCcnRTaG9ydFJrIixmOmZ1bmN0aW9uIHB4KEgpe3JldHVybltNNChIKSxXZyhIKSwibiJdfX0sMTQ6e246IkJydFNob3J0RXJyb3IiLGY6ZnVuY3Rpb24gZzUo''@;'; + put 'put ''SCl7cmV0dXJuW000KEgpLEgucmVhZF9zaGlmdCgxKSwiZSJdfX0sMTU6e246IkJydFNob3J0Qm9vbCIsZjpmdW5jdGlvbiB4NihIKXtyZXR1cm5bTTQoSCksSC5yZWFkX3NoaWZ0KDEpLCJiIl19fSwxNjp7bjoiQnJ0U2hvcnRSZWFsIixmOlU0fSwxNzp7bjoiQnJ0U2hvcnRTdCIsZjpmdW5j''@;'; + put 'put ''dGlvbiBteChIKXtyZXR1cm5bTTQoSCkseHUoSCksInN0ciJdfX0sMTg6e246IkJydFNob3J0SXNzdCIsZjpmdW5jdGlvbiBUNihIKXtyZXR1cm5bTTQoSCksSC5yZWFkX3NoaWZ0KDQpLCJzIl19fSwxOTp7bjoiQnJ0U1NUSXRlbSIsZjpDc30sMjA6e246IkJydFBDRElNaXNzaW5nIn0sMjE6''@;'; + put 'put ''e246IkJydFBDRElOdW1iZXIifSwyMjp7bjoiQnJ0UENESUJvb2xlYW4ifSwyMzp7bjoiQnJ0UENESUVycm9yIn0sMjQ6e246IkJydFBDRElTdHJpbmcifSwyNTp7bjoiQnJ0UENESURhdGV0aW1lIn0sMjY6e246IkJydFBDRElJbmRleCJ9LDI3OntuOiJCcnRQQ0RJQU1pc3NpbmcifSwyODp7''@;'; + put 'put ''bjoiQnJ0UENESUFOdW1iZXIifSwyOTp7bjoiQnJ0UENESUFCb29sZWFuIn0sMzA6e246IkJydFBDRElBRXJyb3IifSwzMTp7bjoiQnJ0UENESUFTdHJpbmcifSwzMjp7bjoiQnJ0UENESUFEYXRldGltZSJ9LDMzOntuOiJCcnRQQ1JSZWNvcmQifSwzNDp7bjoiQnJ0UENSUmVjb3JkRHQifSwz''@;'; + put 'put ''NTp7bjoiQnJ0RlJUQmVnaW4ifSwzNjp7bjoiQnJ0RlJURW5kIn0sMzc6e246IkJydEFDQmVnaW4ifSwzODp7bjoiQnJ0QUNFbmQifSwzOTp7bjoiQnJ0TmFtZSIsZjpmdW5jdGlvbiBVdChILHJlLFgpe3ZhciB3ZT1ILmwrcmU7SC5sKz00LEgubCs9MTt2YXIgeGU9SC5yZWFkX3NoaWZ0KDQp''@;'; + put 'put ''LEZlPWF2KEgpLFplPWRHKEgsMCxYKSxqZT15aChIKTtILmw9d2U7dmFyIFllPXtOYW1lOkZlLFB0ZzpaZX07cmV0dXJuIHhlPDI2ODQzNTQ1NSYmKFllLlNoZWV0PXhlKSxqZSYmKFllLkNvbW1lbnQ9amUpLFllfX0sNDA6e246IkJydEluZGV4Um93QmxvY2sifSw0Mjp7bjoiQnJ0SW5kZXhC''@;'; + put 'put ''bG9jayJ9LDQzOntuOiJCcnRGb250IixmOmZ1bmN0aW9uIHF6KEgscmUsWCl7dmFyIHdlPXt9O3dlLnN6PUgucmVhZF9zaGlmdCgyKS8yMDt2YXIgeGU9cXcoSCk7c3dpdGNoKHhlLmZCb2xkJiYod2UuYm9sZD0xKSx4ZS5mSXRhbGljJiYod2UuaXRhbGljPTEpLHhlLmZVbmRlcmxpbmUmJih3''@;'; + put 'put ''ZS51bmRlcmxpbmU9MSkseGUuZkNvbmRlbnNlJiYod2UuY29uZGVuc2U9MSkseGUuZkV4dGVuZCYmKHdlLmV4dGVuZD0xKSx4ZS5mU2hhZG93JiYod2Uuc2hhZG93PTEpLHhlLmZPdXRsaW5lJiYod2Uub3V0bGluZT0xKSx4ZS5mU3RyaWtlb3V0JiYod2Uuc3RyaWtlPTEpLDcwMD09PUgucmVh''@;'; + put 'put ''ZF9zaGlmdCgyKSYmKHdlLmJvbGQ9MSksSC5yZWFkX3NoaWZ0KDIpKXtjYXNlIDE6d2UudmFsaWduPSJzdXBlciI7YnJlYWs7Y2FzZSAyOndlLnZhbGlnbj0ic3ViIn12YXIgWmU9SC5yZWFkX3NoaWZ0KDEpOzAhPVplJiYod2UudW5kZXJsaW5lPVplKTt2YXIgamU9SC5yZWFkX3NoaWZ0KDEp''@;'; + put 'put ''O2plPjAmJih3ZS5mYW1pbHk9amUpO3ZhciBZZT1ILnJlYWRfc2hpZnQoMSk7c3dpdGNoKFllPjAmJih3ZS5jaGFyc2V0PVllKSxILmwrKyx3ZS5jb2xvcj1VZyhIKSxILnJlYWRfc2hpZnQoMSkpe2Nhc2UgMTp3ZS5zY2hlbWU9Im1ham9yIjticmVhaztjYXNlIDI6d2Uuc2NoZW1lPSJtaW5v''@;'; + put 'put ''ciJ9cmV0dXJuIHdlLm5hbWU9eHUoSCksd2V9fSw0NDp7bjoiQnJ0Rm10IixmOmZ1bmN0aW9uIEs4KEgscmUpe3JldHVybltILnJlYWRfc2hpZnQoMikseHUoSCldfX0sNDU6e246IkJydEZpbGwiLGY6ZnVuY3Rpb24gWlIoSCxyZSl7dmFyIFg9SC5sK3JlLHdlPXt9LHhlPUgucmVhZF9zaGlm''@;'; + put 'put ''dCg0KTtpZig0MCE9eGUpe3dlLnBhdHRlcm5UeXBlPWpSW3hlXTt2YXIgRmU9VWcoSCk7NjQhPUZlLmluZGV4JiYod2UuZmdDb2xvcj1GZSk7dmFyIFplPVVnKEgpOzY1IT1aZS5pbmRleCYmKHdlLmJnQ29sb3I9WmUpfWVsc2V7SC5sKz0xNixILnJlYWRfc2hpZnQoNCksSTIoSCksSTIoSCks''@;'; + put 'put ''STIoSCksSTIoSCksSTIoSCk7Zm9yKHZhciBqZT1ILnJlYWRfc2hpZnQoNCksWWU9W10sTXQ9MDtNdDxqZTsrK010KVllLnB1c2goZUcoSCkpfXJldHVybiBILmw9WCx3ZX19LDQ2OntuOiJCcnRCb3JkZXIiLGY6ZnVuY3Rpb24gelIoSCl7dmFyIHJlPXt9O0gucmVhZF9zaGlmdCgxKTt2YXIg''@;'; + put 'put ''WD1nNihIKTsibm9uZSIhPVguc3R5bGUmJihyZS50b3A9WCk7dmFyIHdlPWc2KEgpOyJub25lIiE9d2Uuc3R5bGUmJihyZS5ib3R0b209d2UpO3ZhciB4ZT1nNihIKTsibm9uZSIhPXhlLnN0eWxlJiYocmUubGVmdD14ZSk7dmFyIEZlPWc2KEgpOyJub25lIiE9RmUuc3R5bGUmJihyZS5yaWdo''@;'; + put 'put ''dD1GZSk7dmFyIFplPWc2KEgpO3JldHVybiJub25lIiE9WmUuc3R5bGUmJihyZS5kaWFnPVplKSxyZX19LDQ3OntuOiJCcnRYRiIsZjpmdW5jdGlvbiBGNChILHJlKXt2YXIgWD1ILmwrcmUsd2U9e30seGU9SC5yZWFkX3NoaWZ0KDIpLEZlPUgucmVhZF9zaGlmdCgyKSxaZT1ILnJlYWRfc2hp''@;'; + put 'put ''ZnQoMiksamU9SC5yZWFkX3NoaWZ0KDIpLFllPUgucmVhZF9zaGlmdCgyKSxNdD1ILnJlYWRfc2hpZnQoMSk7SC5yZWFkX3NoaWZ0KDEpO3ZhciB4dD1ILnJlYWRfc2hpZnQoMiksUnQ9SC5yZWFkX3NoaWZ0KDEpO0gubD1YLHdlLnhmSWQ9eGUsd2UubnVtRm10SWQ9RmUsd2UuZm9udElkPVpl''@;'; + put 'put ''LHdlLmZpbGxJZD1qZSx3ZS5ib3JkZXJJZD1ZZSwxJlJ0JiYwIT13ZS5udW1GbXRJZCYmKHdlLmFwcGx5TnVtYmVyRm9ybWF0PSEwKSx3ZS5hbGlnbm1lbnQ9e30sTXQ+MCYmKHdlLmFsaWdubWVudC50ZXh0Um90YXRpb249TXQpO3ZhciBZdD0hMTtyZXR1cm4gNyZ4dCYmKFl0PSEwLHdlLmFs''@;'; + put 'put ''aWdubWVudC5ob3Jpem9udGFsPUJ2WzcmeHRdKSx3ZS5hbGlnbm1lbnQudmVydGljYWw9eW1beHQ+Pj4zJjddLHdlLmFsaWdubWVudC52ZXJ0aWNhbCYmKFl0PSEwKSx4dD4+PjYmMSYmKHdlLmFsaWdubWVudC53cmFwVGV4dD0hMCkseHQ+Pj44JjEmJih3ZS5hbGlnbm1lbnQuc2hyaW5rVG9G''@;'; + put 'put ''aXQ9ITApLFl0fHxkZWxldGUgd2UuYWxpZ25tZW50LDQmUnQmJll0JiYod2UuYXBwbHlBbGlnbm1lbnQ9ITApLHdlfX0sNDg6e246IkJydFN0eWxlIn0sNDk6e246IkJydENlbGxNZXRhIn0sNTA6e246IkJydFZhbHVlTWV0YSJ9LDUxOntuOiJCcnRNZGIifSw1Mjp7bjoiQnJ0QmVnaW5GbWQi''@;'; + put 'put ''fSw1Mzp7bjoiQnJ0RW5kRm1kIn0sNTQ6e246IkJydEJlZ2luTWR4In0sNTU6e246IkJydEVuZE1keCJ9LDU2OntuOiJCcnRCZWdpbk1keFR1cGxlIn0sNTc6e246IkJydEVuZE1keFR1cGxlIn0sNTg6e246IkJydE1keE1icklzdHIifSw1OTp7bjoiQnJ0U3RyIn0sNjA6e246IkJydENvbElu''@;'; + put 'put ''Zm8iLGY6djN9LDYyOntuOiJCcnRDZWxsUlN0cmluZyJ9LDYzOntuOiJCcnRDYWxjQ2hhaW5JdGVtJCIsZjpmdW5jdGlvbiBBNihIKXt2YXIgcmU9e307cmUuaT1ILnJlYWRfc2hpZnQoNCk7dmFyIFg9e307WC5yPUgucmVhZF9zaGlmdCg0KSxYLmM9SC5yZWFkX3NoaWZ0KDQpLHJlLnI9WTAo''@;'; + put 'put ''WCk7dmFyIHdlPUgucmVhZF9zaGlmdCgxKTtyZXR1cm4gMiZ3ZSYmKHJlLmw9IjEiKSw4JndlJiYocmUuYT0iMSIpLHJlfX0sNjQ6e246IkJydERWYWwiLGY6ZnVuY3Rpb24gS3QoSCxyZSxYKXt2YXIgd2U9SC5sK3JlLHhlPUgucmVhZF9zaGlmdCg0KSxGZT1zdihIKSxaZT15aChIKSxqZT15''@;'; + put 'put ''aChIKSxZZT15aChIKSxNdD15aChIKSx4dD1PQihILHJlLFgpLFJ0PUgubDx3ZT9PQihILHJlLFgpOm51bGwsWXQ9MTUmeGUsbm49e3Q6am1bWXRdLHNxcmZ4OkZlLHM6W1plLGplLFllLE10XX07cmV0dXJuIHh0JiYobm4uZjE9eHQpLFJ0JiYobm4uZjI9UnQpLDA9PVl0fHwzPT1ZdHx8Nz09''@;'; + put 'put ''WXR8fChubi5vcD1fQVt4ZT4+MjAmMTVdKSxubn19LDY1OntuOiJCcnRTeHZjZWxsTnVtIn0sNjY6e246IkJydFN4dmNlbGxTdHIifSw2Nzp7bjoiQnJ0U3h2Y2VsbEJvb2wifSw2ODp7bjoiQnJ0U3h2Y2VsbEVyciJ9LDY5OntuOiJCcnRTeHZjZWxsRGF0ZSJ9LDcwOntuOiJCcnRTeHZjZWxs''@;'; + put 'put ''TmlsIn0sMTI4OntuOiJCcnRGaWxlVmVyc2lvbiJ9LDEyOTp7bjoiQnJ0QmVnaW5TaGVldCJ9LDEzMDp7bjoiQnJ0RW5kU2hlZXQifSwxMzE6e246IkJydEJlZ2luQm9vayIsZjpfcyxwOjB9LDEzMjp7bjoiQnJ0RW5kQm9vayJ9LDEzMzp7bjoiQnJ0QmVnaW5Xc1ZpZXdzIn0sMTM0OntuOiJC''@;'; + put 'put ''cnRFbmRXc1ZpZXdzIn0sMTM1OntuOiJCcnRCZWdpbkJvb2tWaWV3cyJ9LDEzNjp7bjoiQnJ0RW5kQm9va1ZpZXdzIn0sMTM3OntuOiJCcnRCZWdpbldzVmlldyIsZjpmdW5jdGlvbiBQXyhIKXt2YXIgcmU9SC5yZWFkX3NoaWZ0KDIpO3JldHVybiBILmwrPTI4LHtSVEw6MzImcmUsZ3JpZDoh''@;'; + put 'put ''ISg0JnJlKX19fSwxMzg6e246IkJydEVuZFdzVmlldyJ9LDEzOTp7bjoiQnJ0QmVnaW5Dc1ZpZXdzIn0sMTQwOntuOiJCcnRFbmRDc1ZpZXdzIn0sMTQxOntuOiJCcnRCZWdpbkNzVmlldyJ9LDE0Mjp7bjoiQnJ0RW5kQ3NWaWV3In0sMTQzOntuOiJCcnRCZWdpbkJ1bmRsZVNocyJ9LDE0NDp7''@;'; + put 'put ''bjoiQnJ0RW5kQnVuZGxlU2hzIn0sMTQ1OntuOiJCcnRCZWdpblNoZWV0RGF0YSJ9LDE0Njp7bjoiQnJ0RW5kU2hlZXREYXRhIn0sMTQ3OntuOiJCcnRXc1Byb3AiLGY6ZnVuY3Rpb24gQmQoSCxyZSl7dmFyIFg9e30sd2U9SFtILmxdO3JldHVybisrSC5sLFguYWJvdmU9ISg2NCZ3ZSksWC5s''@;'; + put 'put ''ZWZ0PSEoMTI4JndlKSxILmwrPTE4LFgubmFtZT0kdyhILHJlLTE5KSxYfX0sMTQ4OntuOiJCcnRXc0RpbSIsZjpXNCxwOjE2fSwxNTE6e246IkJydFBhbmUiLGY6ZnVuY3Rpb24gaXQoSCxyZSl7dmFyIFg9SC5sK3JlO0kyKEgpLEkyKEgpO3ZhciB3ZT1ILnJlYWRfc2hpZnQoNCwiaSIpLHhl''@;'; + put 'put ''PUgucmVhZF9zaGlmdCg0LCJpIik7aWYoSC5yZWFkX3NoaWZ0KDQpLEgucmVhZF9zaGlmdCgxKSxYIT1ILmwpdGhyb3cgbmV3IEVycm9yKCJCYWQgQnJ0UGFuZTogIitYKyIgIT0gIitILmwpO3JldHVybltZMCh7cjp3ZSxjOnhlfSldfX0sMTUyOntuOiJCcnRTZWwiLGY6ZnVuY3Rpb24gQ3Io''@;'; + put 'put ''SCxyZSl7cmV0dXJuIEgucmVhZF9zaGlmdCg0KSx7Y2VsbDpZMCh7cjpILnJlYWRfc2hpZnQoNCksYzpILnJlYWRfc2hpZnQoNCl9KX19fSwxNTM6e246IkJydFdiUHJvcCIsZjpmdW5jdGlvbiBDQShILHJlKXt2YXIgWD17fSx3ZT1ILnJlYWRfc2hpZnQoNCk7WC5kZWZhdWx0VGhlbWVWZXJz''@;'; + put 'put ''aW9uPUgucmVhZF9zaGlmdCg0KTt2YXIgeGU9cmU+OD94dShIKToiIjtyZXR1cm4geGUubGVuZ3RoPjAmJihYLkNvZGVOYW1lPXhlKSxYLmF1dG9Db21wcmVzc1BpY3R1cmVzPSEhKDY1NTM2JndlKSxYLmJhY2t1cEZpbGU9ISEoNjQmd2UpLFguY2hlY2tDb21wYXRpYmlsaXR5PSEhKDQwOTYm''@;'; + put 'put ''d2UpLFguZGF0ZTE5MDQ9ISEoMSZ3ZSksWC5maWx0ZXJQcml2YWN5PSEhKDgmd2UpLFguaGlkZVBpdm90RmllbGRMaXN0PSEhKDEwMjQmd2UpLFgucHJvbXB0ZWRTb2x1dGlvbnM9ISEoMTYmd2UpLFgucHVibGlzaEl0ZW1zPSEhKDIwNDgmd2UpLFgucmVmcmVzaEFsbENvbm5lY3Rpb25zPSEh''@;'; + put 'put ''KDI2MjE0NCZ3ZSksWC5zYXZlRXh0ZXJuYWxMaW5rVmFsdWVzPSEhKDEyOCZ3ZSksWC5zaG93Qm9yZGVyVW5zZWxlY3RlZFRhYmxlcz0hISg0JndlKSxYLnNob3dJbmtBbm5vdGF0aW9uPSEhKDMyJndlKSxYLnNob3dPYmplY3RzPVsiYWxsIiwicGxhY2Vob2xkZXJzIiwibm9uZSJdW3dlPj4x''@;'; + put 'put ''MyYzXSxYLnNob3dQaXZvdENoYXJ0RmlsdGVyPSEhKDMyNzY4JndlKSxYLnVwZGF0ZUxpbmtzPVsidXNlclNldCIsIm5ldmVyIiwiYWx3YXlzIl1bd2U+PjgmM10sWH19LDE1NDp7bjoiQnJ0V2JGYWN0b2lkIn0sMTU1OntuOiJCcnRGaWxlUmVjb3ZlciJ9LDE1Njp7bjoiQnJ0QnVuZGxlU2gi''@;'; + put 'put ''LGY6ZnVuY3Rpb24gWl8oSCxyZSl7dmFyIFg9e307cmV0dXJuIFguSGlkZGVuPUgucmVhZF9zaGlmdCg0KSxYLmlUYWJJRD1ILnJlYWRfc2hpZnQoNCksWC5zdHJSZWxJRD1HZyhILHJlLTgpLFgubmFtZT14dShIKSxYfX0sMTU3OntuOiJCcnRDYWxjUHJvcCJ9LDE1ODp7bjoiQnJ0Qm9va1Zp''@;'; + put 'put ''ZXcifSwxNTk6e246IkJydEJlZ2luU3N0IixmOmZ1bmN0aW9uIEpNKEgpe3JldHVybltILnJlYWRfc2hpZnQoNCksSC5yZWFkX3NoaWZ0KDQpXX19LDE2MDp7bjoiQnJ0RW5kU3N0In0sMTYxOntuOiJCcnRCZWdpbkFGaWx0ZXIiLGY6d2h9LDE2Mjp7bjoiQnJ0RW5kQUZpbHRlciJ9LDE2Mzp7''@;'; + put 'put ''bjoiQnJ0QmVnaW5GaWx0ZXJDb2x1bW4ifSwxNjQ6e246IkJydEVuZEZpbHRlckNvbHVtbiJ9LDE2NTp7bjoiQnJ0QmVnaW5GaWx0ZXJzIn0sMTY2OntuOiJCcnRFbmRGaWx0ZXJzIn0sMTY3OntuOiJCcnRGaWx0ZXIifSwxNjg6e246IkJydENvbG9yRmlsdGVyIn0sMTY5OntuOiJCcnRJY29u''@;'; + put 'put ''RmlsdGVyIn0sMTcwOntuOiJCcnRUb3AxMEZpbHRlciJ9LDE3MTp7bjoiQnJ0RHluYW1pY0ZpbHRlciJ9LDE3Mjp7bjoiQnJ0QmVnaW5DdXN0b21GaWx0ZXJzIn0sMTczOntuOiJCcnRFbmRDdXN0b21GaWx0ZXJzIn0sMTc0OntuOiJCcnRDdXN0b21GaWx0ZXIifSwxNzU6e246IkJydEFGaWx0''@;'; + put 'put ''ZXJEYXRlR3JvdXBJdGVtIn0sMTc2OntuOiJCcnRNZXJnZUNlbGwiLGY6dnh9LDE3Nzp7bjoiQnJ0QmVnaW5NZXJnZUNlbGxzIn0sMTc4OntuOiJCcnRFbmRNZXJnZUNlbGxzIn0sMTc5OntuOiJCcnRCZWdpblBpdm90Q2FjaGVEZWYifSwxODA6e246IkJydEVuZFBpdm90Q2FjaGVEZWYifSwx''@;'; + put 'put ''ODE6e246IkJydEJlZ2luUENERmllbGRzIn0sMTgyOntuOiJCcnRFbmRQQ0RGaWVsZHMifSwxODM6e246IkJydEJlZ2luUENERmllbGQifSwxODQ6e246IkJydEVuZFBDREZpZWxkIn0sMTg1OntuOiJCcnRCZWdpblBDRFNvdXJjZSJ9LDE4Njp7bjoiQnJ0RW5kUENEU291cmNlIn0sMTg3Ontu''@;'; + put 'put ''OiJCcnRCZWdpblBDRFNSYW5nZSJ9LDE4ODp7bjoiQnJ0RW5kUENEU1JhbmdlIn0sMTg5OntuOiJCcnRCZWdpblBDREZBdGJsIn0sMTkwOntuOiJCcnRFbmRQQ0RGQXRibCJ9LDE5MTp7bjoiQnJ0QmVnaW5QQ0RJUnVuIn0sMTkyOntuOiJCcnRFbmRQQ0RJUnVuIn0sMTkzOntuOiJCcnRCZWdp''@;'; + put 'put ''blBpdm90Q2FjaGVSZWNvcmRzIn0sMTk0OntuOiJCcnRFbmRQaXZvdENhY2hlUmVjb3JkcyJ9LDE5NTp7bjoiQnJ0QmVnaW5QQ0RIaWVyYXJjaGllcyJ9LDE5Njp7bjoiQnJ0RW5kUENESGllcmFyY2hpZXMifSwxOTc6e246IkJydEJlZ2luUENESGllcmFyY2h5In0sMTk4OntuOiJCcnRFbmRQ''@;'; + put 'put ''Q0RIaWVyYXJjaHkifSwxOTk6e246IkJydEJlZ2luUENESEZpZWxkc1VzYWdlIn0sMjAwOntuOiJCcnRFbmRQQ0RIRmllbGRzVXNhZ2UifSwyMDE6e246IkJydEJlZ2luRXh0Q29ubmVjdGlvbiJ9LDIwMjp7bjoiQnJ0RW5kRXh0Q29ubmVjdGlvbiJ9LDIwMzp7bjoiQnJ0QmVnaW5FQ0RiUHJv''@;'; + put 'put ''cHMifSwyMDQ6e246IkJydEVuZEVDRGJQcm9wcyJ9LDIwNTp7bjoiQnJ0QmVnaW5FQ09sYXBQcm9wcyJ9LDIwNjp7bjoiQnJ0RW5kRUNPbGFwUHJvcHMifSwyMDc6e246IkJydEJlZ2luUENEU0NvbnNvbCJ9LDIwODp7bjoiQnJ0RW5kUENEU0NvbnNvbCJ9LDIwOTp7bjoiQnJ0QmVnaW5QQ0RT''@;'; + put 'put ''Q1BhZ2VzIn0sMjEwOntuOiJCcnRFbmRQQ0RTQ1BhZ2VzIn0sMjExOntuOiJCcnRCZWdpblBDRFNDUGFnZSJ9LDIxMjp7bjoiQnJ0RW5kUENEU0NQYWdlIn0sMjEzOntuOiJCcnRCZWdpblBDRFNDUEl0ZW0ifSwyMTQ6e246IkJydEVuZFBDRFNDUEl0ZW0ifSwyMTU6e246IkJydEJlZ2luUENE''@;'; + put 'put ''U0NTZXRzIn0sMjE2OntuOiJCcnRFbmRQQ0RTQ1NldHMifSwyMTc6e246IkJydEJlZ2luUENEU0NTZXQifSwyMTg6e246IkJydEVuZFBDRFNDU2V0In0sMjE5OntuOiJCcnRCZWdpblBDREZHcm91cCJ9LDIyMDp7bjoiQnJ0RW5kUENERkdyb3VwIn0sMjIxOntuOiJCcnRCZWdpblBDREZHSXRl''@;'; + put 'put ''bXMifSwyMjI6e246IkJydEVuZFBDREZHSXRlbXMifSwyMjM6e246IkJydEJlZ2luUENERkdSYW5nZSJ9LDIyNDp7bjoiQnJ0RW5kUENERkdSYW5nZSJ9LDIyNTp7bjoiQnJ0QmVnaW5QQ0RGR0Rpc2NyZXRlIn0sMjI2OntuOiJCcnRFbmRQQ0RGR0Rpc2NyZXRlIn0sMjI3OntuOiJCcnRCZWdp''@;'; + put 'put ''blBDRFNEVHVwbGVDYWNoZSJ9LDIyODp7bjoiQnJ0RW5kUENEU0RUdXBsZUNhY2hlIn0sMjI5OntuOiJCcnRCZWdpblBDRFNEVENFbnRyaWVzIn0sMjMwOntuOiJCcnRFbmRQQ0RTRFRDRW50cmllcyJ9LDIzMTp7bjoiQnJ0QmVnaW5QQ0RTRFRDRU1lbWJlcnMifSwyMzI6e246IkJydEVuZFBD''@;'; + put 'put ''RFNEVENFTWVtYmVycyJ9LDIzMzp7bjoiQnJ0QmVnaW5QQ0RTRFRDRU1lbWJlciJ9LDIzNDp7bjoiQnJ0RW5kUENEU0RUQ0VNZW1iZXIifSwyMzU6e246IkJydEJlZ2luUENEU0RUQ1F1ZXJpZXMifSwyMzY6e246IkJydEVuZFBDRFNEVENRdWVyaWVzIn0sMjM3OntuOiJCcnRCZWdpblBDRFNE''@;'; + put 'put ''VENRdWVyeSJ9LDIzODp7bjoiQnJ0RW5kUENEU0RUQ1F1ZXJ5In0sMjM5OntuOiJCcnRCZWdpblBDRFNEVENTZXRzIn0sMjQwOntuOiJCcnRFbmRQQ0RTRFRDU2V0cyJ9LDI0MTp7bjoiQnJ0QmVnaW5QQ0RTRFRDU2V0In0sMjQyOntuOiJCcnRFbmRQQ0RTRFRDU2V0In0sMjQzOntuOiJCcnRC''@;'; + put 'put ''ZWdpblBDRENhbGNJdGVtcyJ9LDI0NDp7bjoiQnJ0RW5kUENEQ2FsY0l0ZW1zIn0sMjQ1OntuOiJCcnRCZWdpblBDRENhbGNJdGVtIn0sMjQ2OntuOiJCcnRFbmRQQ0RDYWxjSXRlbSJ9LDI0Nzp7bjoiQnJ0QmVnaW5QUnVsZSJ9LDI0ODp7bjoiQnJ0RW5kUFJ1bGUifSwyNDk6e246IkJydEJl''@;'; + put 'put ''Z2luUFJGaWx0ZXJzIn0sMjUwOntuOiJCcnRFbmRQUkZpbHRlcnMifSwyNTE6e246IkJydEJlZ2luUFJGaWx0ZXIifSwyNTI6e246IkJydEVuZFBSRmlsdGVyIn0sMjUzOntuOiJCcnRCZWdpblBOYW1lcyJ9LDI1NDp7bjoiQnJ0RW5kUE5hbWVzIn0sMjU1OntuOiJCcnRCZWdpblBOYW1lIn0s''@;'; + put 'put ''MjU2OntuOiJCcnRFbmRQTmFtZSJ9LDI1Nzp7bjoiQnJ0QmVnaW5QTlBhaXJzIn0sMjU4OntuOiJCcnRFbmRQTlBhaXJzIn0sMjU5OntuOiJCcnRCZWdpblBOUGFpciJ9LDI2MDp7bjoiQnJ0RW5kUE5QYWlyIn0sMjYxOntuOiJCcnRCZWdpbkVDV2ViUHJvcHMifSwyNjI6e246IkJydEVuZEVD''@;'; + put 'put ''V2ViUHJvcHMifSwyNjM6e246IkJydEJlZ2luRWNXcFRhYmxlcyJ9LDI2NDp7bjoiQnJ0RW5kRUNXUFRhYmxlcyJ9LDI2NTp7bjoiQnJ0QmVnaW5FQ1BhcmFtcyJ9LDI2Njp7bjoiQnJ0RW5kRUNQYXJhbXMifSwyNjc6e246IkJydEJlZ2luRUNQYXJhbSJ9LDI2ODp7bjoiQnJ0RW5kRUNQYXJh''@;'; + put 'put ''bSJ9LDI2OTp7bjoiQnJ0QmVnaW5QQ0RLUElzIn0sMjcwOntuOiJCcnRFbmRQQ0RLUElzIn0sMjcxOntuOiJCcnRCZWdpblBDREtQSSJ9LDI3Mjp7bjoiQnJ0RW5kUENES1BJIn0sMjczOntuOiJCcnRCZWdpbkRpbXMifSwyNzQ6e246IkJydEVuZERpbXMifSwyNzU6e246IkJydEJlZ2luRGlt''@;'; + put 'put ''In0sMjc2OntuOiJCcnRFbmREaW0ifSwyNzc6e246IkJydEluZGV4UGFydEVuZCJ9LDI3ODp7bjoiQnJ0QmVnaW5TdHlsZVNoZWV0In0sMjc5OntuOiJCcnRFbmRTdHlsZVNoZWV0In0sMjgwOntuOiJCcnRCZWdpblNYVmlldyJ9LDI4MTp7bjoiQnJ0RW5kU1hWSSJ9LDI4Mjp7bjoiQnJ0QmVn''@;'; + put 'put ''aW5TWFZJIn0sMjgzOntuOiJCcnRCZWdpblNYVklzIn0sMjg0OntuOiJCcnRFbmRTWFZJcyJ9LDI4NTp7bjoiQnJ0QmVnaW5TWFZEIn0sMjg2OntuOiJCcnRFbmRTWFZEIn0sMjg3OntuOiJCcnRCZWdpblNYVkRzIn0sMjg4OntuOiJCcnRFbmRTWFZEcyJ9LDI4OTp7bjoiQnJ0QmVnaW5TWFBJ''@;'; + put 'put ''In0sMjkwOntuOiJCcnRFbmRTWFBJIn0sMjkxOntuOiJCcnRCZWdpblNYUElzIn0sMjkyOntuOiJCcnRFbmRTWFBJcyJ9LDI5Mzp7bjoiQnJ0QmVnaW5TWERJIn0sMjk0OntuOiJCcnRFbmRTWERJIn0sMjk1OntuOiJCcnRCZWdpblNYRElzIn0sMjk2OntuOiJCcnRFbmRTWERJcyJ9LDI5Nzp7''@;'; + put 'put ''bjoiQnJ0QmVnaW5TWExJIn0sMjk4OntuOiJCcnRFbmRTWExJIn0sMjk5OntuOiJCcnRCZWdpblNYTElSd3MifSwzMDA6e246IkJydEVuZFNYTElSd3MifSwzMDE6e246IkJydEJlZ2luU1hMSUNvbHMifSwzMDI6e246IkJydEVuZFNYTElDb2xzIn0sMzAzOntuOiJCcnRCZWdpblNYRm9ybWF0''@;'; + put 'put ''In0sMzA0OntuOiJCcnRFbmRTWEZvcm1hdCJ9LDMwNTp7bjoiQnJ0QmVnaW5TWEZvcm1hdHMifSwzMDY6e246IkJydEVuZFN4Rm9ybWF0cyJ9LDMwNzp7bjoiQnJ0QmVnaW5TeFNlbGVjdCJ9LDMwODp7bjoiQnJ0RW5kU3hTZWxlY3QifSwzMDk6e246IkJydEJlZ2luSVNYVkRSd3MifSwzMTA6''@;'; + put 'put ''e246IkJydEVuZElTWFZEUndzIn0sMzExOntuOiJCcnRCZWdpbklTWFZEQ29scyJ9LDMxMjp7bjoiQnJ0RW5kSVNYVkRDb2xzIn0sMzEzOntuOiJCcnRFbmRTWExvY2F0aW9uIn0sMzE0OntuOiJCcnRCZWdpblNYTG9jYXRpb24ifSwzMTU6e246IkJydEVuZFNYVmlldyJ9LDMxNjp7bjoiQnJ0''@;'; + put 'put ''QmVnaW5TWFRIcyJ9LDMxNzp7bjoiQnJ0RW5kU1hUSHMifSwzMTg6e246IkJydEJlZ2luU1hUSCJ9LDMxOTp7bjoiQnJ0RW5kU1hUSCJ9LDMyMDp7bjoiQnJ0QmVnaW5JU1hUSFJ3cyJ9LDMyMTp7bjoiQnJ0RW5kSVNYVEhSd3MifSwzMjI6e246IkJydEJlZ2luSVNYVEhDb2xzIn0sMzIzOntu''@;'; + put 'put ''OiJCcnRFbmRJU1hUSENvbHMifSwzMjQ6e246IkJydEJlZ2luU1hURE1QUyJ9LDMyNTp7bjoiQnJ0RW5kU1hURE1QcyJ9LDMyNjp7bjoiQnJ0QmVnaW5TWFRETVAifSwzMjc6e246IkJydEVuZFNYVERNUCJ9LDMyODp7bjoiQnJ0QmVnaW5TWFRISXRlbXMifSwzMjk6e246IkJydEVuZFNYVEhJ''@;'; + put 'put ''dGVtcyJ9LDMzMDp7bjoiQnJ0QmVnaW5TWFRISXRlbSJ9LDMzMTp7bjoiQnJ0RW5kU1hUSEl0ZW0ifSwzMzI6e246IkJydEJlZ2luTWV0YWRhdGEifSwzMzM6e246IkJydEVuZE1ldGFkYXRhIn0sMzM0OntuOiJCcnRCZWdpbkVzbWR0aW5mbyJ9LDMzNTp7bjoiQnJ0TWR0aW5mbyJ9LDMzNjp7''@;'; + put 'put ''bjoiQnJ0RW5kRXNtZHRpbmZvIn0sMzM3OntuOiJCcnRCZWdpbkVzbWRiIn0sMzM4OntuOiJCcnRFbmRFc21kYiJ9LDMzOTp7bjoiQnJ0QmVnaW5Fc2ZtZCJ9LDM0MDp7bjoiQnJ0RW5kRXNmbWQifSwzNDE6e246IkJydEJlZ2luU2luZ2xlQ2VsbHMifSwzNDI6e246IkJydEVuZFNpbmdsZUNl''@;'; + put 'put ''bGxzIn0sMzQzOntuOiJCcnRCZWdpbkxpc3QifSwzNDQ6e246IkJydEVuZExpc3QifSwzNDU6e246IkJydEJlZ2luTGlzdENvbHMifSwzNDY6e246IkJydEVuZExpc3RDb2xzIn0sMzQ3OntuOiJCcnRCZWdpbkxpc3RDb2wifSwzNDg6e246IkJydEVuZExpc3RDb2wifSwzNDk6e246IkJydEJl''@;'; + put 'put ''Z2luTGlzdFhtbENQciJ9LDM1MDp7bjoiQnJ0RW5kTGlzdFhtbENQciJ9LDM1MTp7bjoiQnJ0TGlzdENDRm1sYSJ9LDM1Mjp7bjoiQnJ0TGlzdFRyRm1sYSJ9LDM1Mzp7bjoiQnJ0QmVnaW5FeHRlcm5hbHMifSwzNTQ6e246IkJydEVuZEV4dGVybmFscyJ9LDM1NTp7bjoiQnJ0U3VwQm9va1Ny''@;'; + put 'put ''YyIsZjpHZ30sMzU3OntuOiJCcnRTdXBTZWxmIn0sMzU4OntuOiJCcnRTdXBTYW1lIn0sMzU5OntuOiJCcnRTdXBUYWJzIn0sMzYwOntuOiJCcnRCZWdpblN1cEJvb2sifSwzNjE6e246IkJydFBsYWNlaG9sZGVyTmFtZSJ9LDM2Mjp7bjoiQnJ0RXh0ZXJuU2hlZXQiLGY6Vjh9LDM2Mzp7bjoi''@;'; + put 'put ''QnJ0RXh0ZXJuVGFibGVTdGFydCJ9LDM2NDp7bjoiQnJ0RXh0ZXJuVGFibGVFbmQifSwzNjY6e246IkJydEV4dGVyblJvd0hkciJ9LDM2Nzp7bjoiQnJ0RXh0ZXJuQ2VsbEJsYW5rIn0sMzY4OntuOiJCcnRFeHRlcm5DZWxsUmVhbCJ9LDM2OTp7bjoiQnJ0RXh0ZXJuQ2VsbEJvb2wifSwzNzA6''@;'; + put 'put ''e246IkJydEV4dGVybkNlbGxFcnJvciJ9LDM3MTp7bjoiQnJ0RXh0ZXJuQ2VsbFN0cmluZyJ9LDM3Mjp7bjoiQnJ0QmVnaW5Fc21keCJ9LDM3Mzp7bjoiQnJ0RW5kRXNtZHgifSwzNzQ6e246IkJydEJlZ2luTWR4U2V0In0sMzc1OntuOiJCcnRFbmRNZHhTZXQifSwzNzY6e246IkJydEJlZ2lu''@;'; + put 'put ''TWR4TWJyUHJvcCJ9LDM3Nzp7bjoiQnJ0RW5kTWR4TWJyUHJvcCJ9LDM3ODp7bjoiQnJ0QmVnaW5NZHhLUEkifSwzNzk6e246IkJydEVuZE1keEtQSSJ9LDM4MDp7bjoiQnJ0QmVnaW5Fc3N0ciJ9LDM4MTp7bjoiQnJ0RW5kRXNzdHIifSwzODI6e246IkJydEJlZ2luUFJGSXRlbSJ9LDM4Mzp7''@;'; + put 'put ''bjoiQnJ0RW5kUFJGSXRlbSJ9LDM4NDp7bjoiQnJ0QmVnaW5QaXZvdENhY2hlSURzIn0sMzg1OntuOiJCcnRFbmRQaXZvdENhY2hlSURzIn0sMzg2OntuOiJCcnRCZWdpblBpdm90Q2FjaGVJRCJ9LDM4Nzp7bjoiQnJ0RW5kUGl2b3RDYWNoZUlEIn0sMzg4OntuOiJCcnRCZWdpbklTWFZJcyJ9''@;'; + put 'put ''LDM4OTp7bjoiQnJ0RW5kSVNYVklzIn0sMzkwOntuOiJCcnRCZWdpbkNvbEluZm9zIn0sMzkxOntuOiJCcnRFbmRDb2xJbmZvcyJ9LDM5Mjp7bjoiQnJ0QmVnaW5Sd0JyayJ9LDM5Mzp7bjoiQnJ0RW5kUndCcmsifSwzOTQ6e246IkJydEJlZ2luQ29sQnJrIn0sMzk1OntuOiJCcnRFbmRDb2xC''@;'; + put 'put ''cmsifSwzOTY6e246IkJydEJyayJ9LDM5Nzp7bjoiQnJ0VXNlckJvb2tWaWV3In0sMzk4OntuOiJCcnRJbmZvIn0sMzk5OntuOiJCcnRDVXNyIn0sNDAwOntuOiJCcnRVc3IifSw0MDE6e246IkJydEJlZ2luVXNlcnMifSw0MDM6e246IkJydEVPRiJ9LDQwNDp7bjoiQnJ0VUNSIn0sNDA1Ontu''@;'; + put 'put ''OiJCcnRSUkluc0RlbCJ9LDQwNjp7bjoiQnJ0UlJFbmRJbnNEZWwifSw0MDc6e246IkJydFJSTW92ZSJ9LDQwODp7bjoiQnJ0UlJFbmRNb3ZlIn0sNDA5OntuOiJCcnRSUkNoZ0NlbGwifSw0MTA6e246IkJydFJSRW5kQ2hnQ2VsbCJ9LDQxMTp7bjoiQnJ0UlJIZWFkZXIifSw0MTI6e246IkJy''@;'; + put 'put ''dFJSVXNlclZpZXcifSw0MTM6e246IkJydFJSUmVuU2hlZXQifSw0MTQ6e246IkJydFJSSW5zZXJ0U2gifSw0MTU6e246IkJydFJSRGVmTmFtZSJ9LDQxNjp7bjoiQnJ0UlJOb3RlIn0sNDE3OntuOiJCcnRSUkNvbmZsaWN0In0sNDE4OntuOiJCcnRSUlRRU0lGIn0sNDE5OntuOiJCcnRSUkZv''@;'; + put 'put ''cm1hdCJ9LDQyMDp7bjoiQnJ0UlJFbmRGb3JtYXQifSw0MjE6e246IkJydFJSQXV0b0ZtdCJ9LDQyMjp7bjoiQnJ0QmVnaW5Vc2VyU2hWaWV3cyJ9LDQyMzp7bjoiQnJ0QmVnaW5Vc2VyU2hWaWV3In0sNDI0OntuOiJCcnRFbmRVc2VyU2hWaWV3In0sNDI1OntuOiJCcnRFbmRVc2VyU2hWaWV3''@;'; + put 'put ''cyJ9LDQyNjp7bjoiQnJ0QXJyRm1sYSIsZjpmdW5jdGlvbiBGMChILHJlLFgpe3ZhciB3ZT1ILmwrcmUseGU9bHYoSCksRmU9SC5yZWFkX3NoaWZ0KDEpLFplPVt4ZV07aWYoWmVbMl09RmUsWC5jZWxsRm9ybXVsYSl7dmFyIGplPWhHKEgsd2UtSC5sLFgpO1plWzFdPWplfWVsc2UgSC5sPXdl''@;'; + put 'put ''O3JldHVybiBaZX19LDQyNzp7bjoiQnJ0U2hyRm1sYSIsZjpmdW5jdGlvbiBIMChILHJlLFgpe3ZhciB3ZT1ILmwrcmUsRmU9W3doKEgsMTYpXTtpZihYLmNlbGxGb3JtdWxhKXt2YXIgWmU9cEcoSCx3ZS1ILmwsWCk7RmVbMV09WmUsSC5sPXdlfWVsc2UgSC5sPXdlO3JldHVybiBGZX19LDQy''@;'; + put 'put ''ODp7bjoiQnJ0VGFibGUifSw0Mjk6e246IkJydEJlZ2luRXh0Q29ubmVjdGlvbnMifSw0MzA6e246IkJydEVuZEV4dENvbm5lY3Rpb25zIn0sNDMxOntuOiJCcnRCZWdpblBDRENhbGNNZW1zIn0sNDMyOntuOiJCcnRFbmRQQ0RDYWxjTWVtcyJ9LDQzMzp7bjoiQnJ0QmVnaW5QQ0RDYWxjTWVt''@;'; + put 'put ''In0sNDM0OntuOiJCcnRFbmRQQ0RDYWxjTWVtIn0sNDM1OntuOiJCcnRCZWdpblBDREhHTGV2ZWxzIn0sNDM2OntuOiJCcnRFbmRQQ0RIR0xldmVscyJ9LDQzNzp7bjoiQnJ0QmVnaW5QQ0RIR0xldmVsIn0sNDM4OntuOiJCcnRFbmRQQ0RIR0xldmVsIn0sNDM5OntuOiJCcnRCZWdpblBDREhH''@;'; + put 'put ''TEdyb3VwcyJ9LDQ0MDp7bjoiQnJ0RW5kUENESEdMR3JvdXBzIn0sNDQxOntuOiJCcnRCZWdpblBDREhHTEdyb3VwIn0sNDQyOntuOiJCcnRFbmRQQ0RIR0xHcm91cCJ9LDQ0Mzp7bjoiQnJ0QmVnaW5QQ0RIR0xHTWVtYmVycyJ9LDQ0NDp7bjoiQnJ0RW5kUENESEdMR01lbWJlcnMifSw0NDU6''@;'; + put 'put ''e246IkJydEJlZ2luUENESEdMR01lbWJlciJ9LDQ0Njp7bjoiQnJ0RW5kUENESEdMR01lbWJlciJ9LDQ0Nzp7bjoiQnJ0QmVnaW5RU0kifSw0NDg6e246IkJydEVuZFFTSSJ9LDQ0OTp7bjoiQnJ0QmVnaW5RU0lSIn0sNDUwOntuOiJCcnRFbmRRU0lSIn0sNDUxOntuOiJCcnRCZWdpbkRlbGV0''@;'; + put 'put ''ZWROYW1lcyJ9LDQ1Mjp7bjoiQnJ0RW5kRGVsZXRlZE5hbWVzIn0sNDUzOntuOiJCcnRCZWdpbkRlbGV0ZWROYW1lIn0sNDU0OntuOiJCcnRFbmREZWxldGVkTmFtZSJ9LDQ1NTp7bjoiQnJ0QmVnaW5RU0lGcyJ9LDQ1Njp7bjoiQnJ0RW5kUVNJRnMifSw0NTc6e246IkJydEJlZ2luUVNJRiJ9''@;'; + put 'put ''LDQ1ODp7bjoiQnJ0RW5kUVNJRiJ9LDQ1OTp7bjoiQnJ0QmVnaW5BdXRvU29ydFNjb3BlIn0sNDYwOntuOiJCcnRFbmRBdXRvU29ydFNjb3BlIn0sNDYxOntuOiJCcnRCZWdpbkNvbmRpdGlvbmFsRm9ybWF0dGluZyJ9LDQ2Mjp7bjoiQnJ0RW5kQ29uZGl0aW9uYWxGb3JtYXR0aW5nIn0sNDYz''@;'; + put 'put ''OntuOiJCcnRCZWdpbkNGUnVsZSJ9LDQ2NDp7bjoiQnJ0RW5kQ0ZSdWxlIn0sNDY1OntuOiJCcnRCZWdpbkljb25TZXQifSw0NjY6e246IkJydEVuZEljb25TZXQifSw0Njc6e246IkJydEJlZ2luRGF0YWJhciJ9LDQ2ODp7bjoiQnJ0RW5kRGF0YWJhciJ9LDQ2OTp7bjoiQnJ0QmVnaW5Db2xv''@;'; + put 'put ''clNjYWxlIn0sNDcwOntuOiJCcnRFbmRDb2xvclNjYWxlIn0sNDcxOntuOiJCcnRDRlZPIn0sNDcyOntuOiJCcnRFeHRlcm5WYWx1ZU1ldGEifSw0NzM6e246IkJydEJlZ2luQ29sb3JQYWxldHRlIn0sNDc0OntuOiJCcnRFbmRDb2xvclBhbGV0dGUifSw0NzU6e246IkJydEluZGV4ZWRDb2xv''@;'; + put 'put ''ciJ9LDQ3Njp7bjoiQnJ0TWFyZ2lucyIsZjpmdW5jdGlvbiBWbShIKXt2YXIgcmU9e307cmV0dXJuIF9pLmZvckVhY2goZnVuY3Rpb24oWCl7cmVbWF09STIoSCl9KSxyZX19LDQ3Nzp7bjoiQnJ0UHJpbnRPcHRpb25zIn0sNDc4OntuOiJCcnRQYWdlU2V0dXAifSw0Nzk6e246IkJydEJlZ2lu''@;'; + put 'put ''SGVhZGVyRm9vdGVyIn0sNDgwOntuOiJCcnRFbmRIZWFkZXJGb290ZXIifSw0ODE6e246IkJydEJlZ2luU1hDcnRGb3JtYXQifSw0ODI6e246IkJydEVuZFNYQ3J0Rm9ybWF0In0sNDgzOntuOiJCcnRCZWdpblNYQ3J0Rm9ybWF0cyJ9LDQ4NDp7bjoiQnJ0RW5kU1hDcnRGb3JtYXRzIn0sNDg1''@;'; + put 'put ''OntuOiJCcnRXc0ZtdEluZm8iLGY6ZnVuY3Rpb24gVUIoSCl7dmFyIHJlPXt9LFg9e30sd2U9e30seGU9SC5yZWFkX3NoaWZ0KDQpLEZlPUgucmVhZF9zaGlmdCgyKTt3ZS53Y2g9eGU8PTY1NTM2P3hlLzI1NjpGZTt2YXIgWmU9SC5yZWFkX3NoaWZ0KDIpO1guaHB0PVplLzIwO3ZhciBqZT1I''@;'; + put 'put ''LnJlYWRfc2hpZnQoMik7cmV0dXJuIDImamUmJihYLmhpZGRlbj0hMCksNCZqZSYmKHJlLnRvcHRoaWNrPSEwKSw4JmplJiYocmUuYm90dGhpY2s9ITApLHJlLnJvd291dGxpbmU9SC5yZWFkX3NoaWZ0KDEpLHJlLmNvbG91dGxpbmU9SC5yZWFkX3NoaWZ0KDEpLEo4KFgpLHJlLnJvdz1YLHlj''@;'; + put 'put ''KHdlKSxyZS5jb2w9d2UscmV9fSw0ODY6e246IkJydEJlZ2luTWdzIn0sNDg3OntuOiJCcnRFbmRNR3MifSw0ODg6e246IkJydEJlZ2luTUdNYXBzIn0sNDg5OntuOiJCcnRFbmRNR01hcHMifSw0OTA6e246IkJydEJlZ2luTUcifSw0OTE6e246IkJydEVuZE1HIn0sNDkyOntuOiJCcnRCZWdp''@;'; + put 'put ''bk1hcCJ9LDQ5Mzp7bjoiQnJ0RW5kTWFwIn0sNDk0OntuOiJCcnRITGluayIsZjpmdW5jdGlvbiBCXyhILHJlKXt2YXIgWD1ILmwrcmUsd2U9d2goSCwxNikseGU9eWgoSCksRmU9eHUoSCksWmU9eHUoSCksamU9eHUoSCk7SC5sPVg7dmFyIFllPXtyZng6d2UscmVsSWQ6eGUsbG9jOkZlLGRp''@;'; + put 'put ''c3BsYXk6amV9O3JldHVybiBaZSYmKFllLlRvb2x0aXA9WmUpLFllfX0sNDk1OntuOiJCcnRCZWdpbkRDb24ifSw0OTY6e246IkJydEVuZERDb24ifSw0OTc6e246IkJydEJlZ2luRFJlZnMifSw0OTg6e246IkJydEVuZERSZWZzIn0sNDk5OntuOiJCcnREUmVmIn0sNTAwOntuOiJCcnRCZWdp''@;'; + put 'put ''blNjZW5NYW4ifSw1MDE6e246IkJydEVuZFNjZW5NYW4ifSw1MDI6e246IkJydEJlZ2luU2N0In0sNTAzOntuOiJCcnRFbmRTY3QifSw1MDQ6e246IkJydFNsYyJ9LDUwNTp7bjoiQnJ0QmVnaW5EWEZzIn0sNTA2OntuOiJCcnRFbmREWEZzIn0sNTA3OntuOiJCcnREWEYifSw1MDg6e246IkJy''@;'; + put 'put ''dEJlZ2luVGFibGVTdHlsZXMifSw1MDk6e246IkJydEVuZFRhYmxlU3R5bGVzIn0sNTEwOntuOiJCcnRCZWdpblRhYmxlU3R5bGUifSw1MTE6e246IkJydEVuZFRhYmxlU3R5bGUifSw1MTI6e246IkJydFRhYmxlU3R5bGVFbGVtZW50In0sNTEzOntuOiJCcnRUYWJsZVN0eWxlQ2xpZW50In0s''@;'; + put 'put ''NTE0OntuOiJCcnRCZWdpblZvbERlcHMifSw1MTU6e246IkJydEVuZFZvbERlcHMifSw1MTY6e246IkJydEJlZ2luVm9sVHlwZSJ9LDUxNzp7bjoiQnJ0RW5kVm9sVHlwZSJ9LDUxODp7bjoiQnJ0QmVnaW5Wb2xNYWluIn0sNTE5OntuOiJCcnRFbmRWb2xNYWluIn0sNTIwOntuOiJCcnRCZWdp''@;'; + put 'put ''blZvbFRvcGljIn0sNTIxOntuOiJCcnRFbmRWb2xUb3BpYyJ9LDUyMjp7bjoiQnJ0Vm9sU3VidG9waWMifSw1MjM6e246IkJydFZvbFJlZiJ9LDUyNDp7bjoiQnJ0Vm9sTnVtIn0sNTI1OntuOiJCcnRWb2xFcnIifSw1MjY6e246IkJydFZvbFN0ciJ9LDUyNzp7bjoiQnJ0Vm9sQm9vbCJ9LDUy''@;'; + put 'put ''ODp7bjoiQnJ0QmVnaW5DYWxjQ2hhaW4kIn0sNTI5OntuOiJCcnRFbmRDYWxjQ2hhaW4kIn0sNTMwOntuOiJCcnRCZWdpblNvcnRTdGF0ZSJ9LDUzMTp7bjoiQnJ0RW5kU29ydFN0YXRlIn0sNTMyOntuOiJCcnRCZWdpblNvcnRDb25kIn0sNTMzOntuOiJCcnRFbmRTb3J0Q29uZCJ9LDUzNDp7''@;'; + put 'put ''bjoiQnJ0Qm9va1Byb3RlY3Rpb24ifSw1MzU6e246IkJydFNoZWV0UHJvdGVjdGlvbiJ9LDUzNjp7bjoiQnJ0UmFuZ2VQcm90ZWN0aW9uIn0sNTM3OntuOiJCcnRQaG9uZXRpY0luZm8ifSw1Mzg6e246IkJydEJlZ2luRUNUeHRXaXoifSw1Mzk6e246IkJydEVuZEVDVHh0V2l6In0sNTQwOntu''@;'; + put 'put ''OiJCcnRCZWdpbkVDVFdGbGRJbmZvTHN0In0sNTQxOntuOiJCcnRFbmRFQ1RXRmxkSW5mb0xzdCJ9LDU0Mjp7bjoiQnJ0QmVnaW5FQ1R3RmxkSW5mbyJ9LDU0ODp7bjoiQnJ0RmlsZVNoYXJpbmcifSw1NDk6e246IkJydE9sZVNpemUifSw1NTA6e246IkJydERyYXdpbmciLGY6R2d9LDU1MTp7''@;'; + put 'put ''bjoiQnJ0TGVnYWN5RHJhd2luZyJ9LDU1Mjp7bjoiQnJ0TGVnYWN5RHJhd2luZ0hGIn0sNTUzOntuOiJCcnRXZWJPcHQifSw1NTQ6e246IkJydEJlZ2luV2ViUHViSXRlbXMifSw1NTU6e246IkJydEVuZFdlYlB1Ykl0ZW1zIn0sNTU2OntuOiJCcnRCZWdpbldlYlB1Ykl0ZW0ifSw1NTc6e246''@;'; + put 'put ''IkJydEVuZFdlYlB1Ykl0ZW0ifSw1NTg6e246IkJydEJlZ2luU1hDb25kRm10In0sNTU5OntuOiJCcnRFbmRTWENvbmRGbXQifSw1NjA6e246IkJydEJlZ2luU1hDb25kRm10cyJ9LDU2MTp7bjoiQnJ0RW5kU1hDb25kRm10cyJ9LDU2Mjp7bjoiQnJ0QmtIaW0ifSw1NjQ6e246IkJydENvbG9y''@;'; + put 'put ''In0sNTY1OntuOiJCcnRCZWdpbkluZGV4ZWRDb2xvcnMifSw1NjY6e246IkJydEVuZEluZGV4ZWRDb2xvcnMifSw1Njk6e246IkJydEJlZ2luTVJVQ29sb3JzIn0sNTcwOntuOiJCcnRFbmRNUlVDb2xvcnMifSw1NzI6e246IkJydE1SVUNvbG9yIn0sNTczOntuOiJCcnRCZWdpbkRWYWxzIn0s''@;'; + put 'put ''NTc0OntuOiJCcnRFbmREVmFscyJ9LDU3Nzp7bjoiQnJ0U3VwTmFtZVN0YXJ0In0sNTc4OntuOiJCcnRTdXBOYW1lVmFsdWVTdGFydCJ9LDU3OTp7bjoiQnJ0U3VwTmFtZVZhbHVlRW5kIn0sNTgwOntuOiJCcnRTdXBOYW1lTnVtIn0sNTgxOntuOiJCcnRTdXBOYW1lRXJyIn0sNTgyOntuOiJC''@;'; + put 'put ''cnRTdXBOYW1lU3QifSw1ODM6e246IkJydFN1cE5hbWVOaWwifSw1ODQ6e246IkJydFN1cE5hbWVCb29sIn0sNTg1OntuOiJCcnRTdXBOYW1lRm1sYSJ9LDU4Njp7bjoiQnJ0U3VwTmFtZUJpdHMifSw1ODc6e246IkJydFN1cE5hbWVFbmQifSw1ODg6e246IkJydEVuZFN1cEJvb2sifSw1ODk6''@;'; + put 'put ''e246IkJydENlbGxTbWFydFRhZ1Byb3BlcnR5In0sNTkwOntuOiJCcnRCZWdpbkNlbGxTbWFydFRhZyJ9LDU5MTp7bjoiQnJ0RW5kQ2VsbFNtYXJ0VGFnIn0sNTkyOntuOiJCcnRCZWdpbkNlbGxTbWFydFRhZ3MifSw1OTM6e246IkJydEVuZENlbGxTbWFydFRhZ3MifSw1OTQ6e246IkJydEJl''@;'; + put 'put ''Z2luU21hcnRUYWdzIn0sNTk1OntuOiJCcnRFbmRTbWFydFRhZ3MifSw1OTY6e246IkJydFNtYXJ0VGFnVHlwZSJ9LDU5Nzp7bjoiQnJ0QmVnaW5TbWFydFRhZ1R5cGVzIn0sNTk4OntuOiJCcnRFbmRTbWFydFRhZ1R5cGVzIn0sNTk5OntuOiJCcnRCZWdpblNYRmlsdGVycyJ9LDYwMDp7bjoi''@;'; + put 'put ''QnJ0RW5kU1hGaWx0ZXJzIn0sNjAxOntuOiJCcnRCZWdpblNYRklMVEVSIn0sNjAyOntuOiJCcnRFbmRTWEZpbHRlciJ9LDYwMzp7bjoiQnJ0QmVnaW5GaWxscyJ9LDYwNDp7bjoiQnJ0RW5kRmlsbHMifSw2MDU6e246IkJydEJlZ2luQ2VsbFdhdGNoZXMifSw2MDY6e246IkJydEVuZENlbGxX''@;'; + put 'put ''YXRjaGVzIn0sNjA3OntuOiJCcnRDZWxsV2F0Y2gifSw2MDg6e246IkJydEJlZ2luQ1JFcnJzIn0sNjA5OntuOiJCcnRFbmRDUkVycnMifSw2MTA6e246IkJydENyYXNoUmVjRXJyIn0sNjExOntuOiJCcnRCZWdpbkZvbnRzIn0sNjEyOntuOiJCcnRFbmRGb250cyJ9LDYxMzp7bjoiQnJ0QmVn''@;'; + put 'put ''aW5Cb3JkZXJzIn0sNjE0OntuOiJCcnRFbmRCb3JkZXJzIn0sNjE1OntuOiJCcnRCZWdpbkZtdHMifSw2MTY6e246IkJydEVuZEZtdHMifSw2MTc6e246IkJydEJlZ2luQ2VsbFhGcyJ9LDYxODp7bjoiQnJ0RW5kQ2VsbFhGcyJ9LDYxOTp7bjoiQnJ0QmVnaW5TdHlsZXMifSw2MjA6e246IkJy''@;'; + put 'put ''dEVuZFN0eWxlcyJ9LDYyNTp7bjoiQnJ0QmlnTmFtZSJ9LDYyNjp7bjoiQnJ0QmVnaW5DZWxsU3R5bGVYRnMifSw2Mjc6e246IkJydEVuZENlbGxTdHlsZVhGcyJ9LDYyODp7bjoiQnJ0QmVnaW5Db21tZW50cyJ9LDYyOTp7bjoiQnJ0RW5kQ29tbWVudHMifSw2MzA6e246IkJydEJlZ2luQ29t''@;'; + put 'put ''bWVudEF1dGhvcnMifSw2MzE6e246IkJydEVuZENvbW1lbnRBdXRob3JzIn0sNjMyOntuOiJCcnRDb21tZW50QXV0aG9yIixmOmJmfSw2MzM6e246IkJydEJlZ2luQ29tbWVudExpc3QifSw2MzQ6e246IkJydEVuZENvbW1lbnRMaXN0In0sNjM1OntuOiJCcnRCZWdpbkNvbW1lbnQiLGY6ZnVu''@;'; + put 'put ''Y3Rpb24gV3YoSCl7dmFyIHJlPXt9O3JlLmlhdXRob3I9SC5yZWFkX3NoaWZ0KDQpO3ZhciBYPXdoKEgsMTYpO3JldHVybiByZS5yZng9WC5zLHJlLnJlZj1ZMChYLnMpLEgubCs9MTYscmV9fSw2MzY6e246IkJydEVuZENvbW1lbnQifSw2Mzc6e246IkJydENvbW1lbnRUZXh0IixmOlZmfSw2''@;'; + put 'put ''Mzg6e246IkJydEJlZ2luT2xlT2JqZWN0cyJ9LDYzOTp7bjoiQnJ0T2xlT2JqZWN0In0sNjQwOntuOiJCcnRFbmRPbGVPYmplY3RzIn0sNjQxOntuOiJCcnRCZWdpblN4cnVsZXMifSw2NDI6e246IkJydEVuZFN4UnVsZXMifSw2NDM6e246IkJydEJlZ2luQWN0aXZlWENvbnRyb2xzIn0sNjQ0''@;'; + put 'put ''OntuOiJCcnRBY3RpdmVYIn0sNjQ1OntuOiJCcnRFbmRBY3RpdmVYQ29udHJvbHMifSw2NDY6e246IkJydEJlZ2luUENEU0RUQ0VNZW1iZXJzU29ydEJ5In0sNjQ4OntuOiJCcnRCZWdpbkNlbGxJZ25vcmVFQ3MifSw2NDk6e246IkJydENlbGxJZ25vcmVFQyJ9LDY1MDp7bjoiQnJ0RW5kQ2Vs''@;'; + put 'put ''bElnbm9yZUVDcyJ9LDY1MTp7bjoiQnJ0Q3NQcm9wIixmOmZ1bmN0aW9uIER4KEgscmUpe3JldHVybiBILmwrPTEwLHtuYW1lOnh1KEgpfX19LDY1Mjp7bjoiQnJ0Q3NQYWdlU2V0dXAifSw2NTM6e246IkJydEJlZ2luVXNlckNzVmlld3MifSw2NTQ6e246IkJydEVuZFVzZXJDc1ZpZXdzIn0s''@;'; + put 'put ''NjU1OntuOiJCcnRCZWdpblVzZXJDc1ZpZXcifSw2NTY6e246IkJydEVuZFVzZXJDc1ZpZXcifSw2NTc6e246IkJydEJlZ2luUGNkU0ZDSUVudHJpZXMifSw2NTg6e246IkJydEVuZFBDRFNGQ0lFbnRyaWVzIn0sNjU5OntuOiJCcnRQQ0RTRkNJRW50cnkifSw2NjA6e246IkJydEJlZ2luTGlz''@;'; + put 'put ''dFBhcnRzIn0sNjYxOntuOiJCcnRMaXN0UGFydCJ9LDY2Mjp7bjoiQnJ0RW5kTGlzdFBhcnRzIn0sNjYzOntuOiJCcnRTaGVldENhbGNQcm9wIn0sNjY0OntuOiJCcnRCZWdpbkZuR3JvdXAifSw2NjU6e246IkJydEZuR3JvdXAifSw2NjY6e246IkJydEVuZEZuR3JvdXAifSw2Njc6e246IkJy''@;'; + put 'put ''dFN1cEFkZGluIn0sNjY4OntuOiJCcnRTWFRETVBPcmRlciJ9LDY2OTp7bjoiQnJ0Q3NQcm90ZWN0aW9uIn0sNjcxOntuOiJCcnRCZWdpbldzU29ydE1hcCJ9LDY3Mjp7bjoiQnJ0RW5kV3NTb3J0TWFwIn0sNjczOntuOiJCcnRCZWdpblJSU29ydCJ9LDY3NDp7bjoiQnJ0RW5kUlJTb3J0In0s''@;'; + put 'put ''Njc1OntuOiJCcnRSUlNvcnRJdGVtIn0sNjc2OntuOiJCcnRGaWxlU2hhcmluZ0lzbyJ9LDY3Nzp7bjoiQnJ0Qm9va1Byb3RlY3Rpb25Jc28ifSw2Nzg6e246IkJydFNoZWV0UHJvdGVjdGlvbklzbyJ9LDY3OTp7bjoiQnJ0Q3NQcm90ZWN0aW9uSXNvIn0sNjgwOntuOiJCcnRSYW5nZVByb3Rl''@;'; + put 'put ''Y3Rpb25Jc28ifSw2ODE6e246IkJydERWYWxMaXN0In0sMTAyNDp7bjoiQnJ0UndEZXNjZW50In0sMTAyNTp7bjoiQnJ0S25vd25Gb250cyJ9LDEwMjY6e246IkJydEJlZ2luU1hUdXBsZVNldCJ9LDEwMjc6e246IkJydEVuZFNYVHVwbGVTZXQifSwxMDI4OntuOiJCcnRCZWdpblNYVHVwbGVT''@;'; + put 'put ''ZXRIZWFkZXIifSwxMDI5OntuOiJCcnRFbmRTWFR1cGxlU2V0SGVhZGVyIn0sMTAzMDp7bjoiQnJ0U1hUdXBsZVNldEhlYWRlckl0ZW0ifSwxMDMxOntuOiJCcnRCZWdpblNYVHVwbGVTZXREYXRhIn0sMTAzMjp7bjoiQnJ0RW5kU1hUdXBsZVNldERhdGEifSwxMDMzOntuOiJCcnRCZWdpblNY''@;'; + put 'put ''VHVwbGVTZXRSb3cifSwxMDM0OntuOiJCcnRFbmRTWFR1cGxlU2V0Um93In0sMTAzNTp7bjoiQnJ0U1hUdXBsZVNldFJvd0l0ZW0ifSwxMDM2OntuOiJCcnROYW1lRXh0In0sMTAzNzp7bjoiQnJ0UENESDE0In0sMTAzODp7bjoiQnJ0QmVnaW5QQ0RDYWxjTWVtMTQifSwxMDM5OntuOiJCcnRF''@;'; + put 'put ''bmRQQ0RDYWxjTWVtMTQifSwxMDQwOntuOiJCcnRTWFRIMTQifSwxMDQxOntuOiJCcnRCZWdpblNwYXJrbGluZUdyb3VwIn0sMTA0Mjp7bjoiQnJ0RW5kU3BhcmtsaW5lR3JvdXAifSwxMDQzOntuOiJCcnRTcGFya2xpbmUifSwxMDQ0OntuOiJCcnRTWERJMTQifSwxMDQ1OntuOiJCcnRXc0Zt''@;'; + put 'put ''dEluZm9FeDE0In0sMTA0Njp7bjoiQnJ0QmVnaW5Db25kaXRpb25hbEZvcm1hdHRpbmcxNCJ9LDEwNDc6e246IkJydEVuZENvbmRpdGlvbmFsRm9ybWF0dGluZzE0In0sMTA0ODp7bjoiQnJ0QmVnaW5DRlJ1bGUxNCJ9LDEwNDk6e246IkJydEVuZENGUnVsZTE0In0sMTA1MDp7bjoiQnJ0Q0ZW''@;'; + put 'put ''TzE0In0sMTA1MTp7bjoiQnJ0QmVnaW5EYXRhYmFyMTQifSwxMDUyOntuOiJCcnRCZWdpbkljb25TZXQxNCJ9LDEwNTM6e246IkJydERWYWwxNCIsZjpmdW5jdGlvbiBxQihILHJlLFgpe3ZhciB3ZT1mdW5jdGlvbiB0cihILHJlLFgpe3ZhciB3ZT1ILnJlYWRfc2hpZnQoNCkseGU9e307cmV0''@;'; + put 'put ''dXJuIDEmd2UmJih4ZS5yZWZzPWZ1bmN0aW9uIGVpKEgpe2Zvcih2YXIgcmU9SC5yZWFkX3NoaWZ0KDQpLFg9W107cmUtLSA+MDspWC5wdXNoKFlpKEgpKTtyZXR1cm4gWH0oSCkpLDImd2UmJih4ZS5zcXJlZnM9ZnVuY3Rpb24gZGEoSCl7Zm9yKHZhciByZT1ILnJlYWRfc2hpZnQoNCksWD1b''@;'; + put 'put ''XTtyZS0tID4wOylYLnB1c2goemEoSCkpO3JldHVybiBYfShIKSksNCZ3ZSYmKHhlLmZvcm11bGFzPWZ1bmN0aW9uIEJzKEgscmUsWCl7Zm9yKHZhciB3ZT1ILnJlYWRfc2hpZnQoNCkseGU9W107d2UtLSA+MDspeGUucHVzaChLdShILDAsWCkpO3JldHVybiB4ZX0oSCwwLFgpKSw4JndlJiYo''@;'; + put 'put ''eGUucmVsSUQ9ZnVuY3Rpb24gVHUoSCl7dmFyIHJlPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gMD09PXJlPyIiOkgucmVhZF9zaGlmdChyZSwidXRmMTZsZSIpfShIKSkseGV9KEgsMCxYKSx4ZT1ILnJlYWRfc2hpZnQoNCksRmU9eWgoSCksWmU9eWgoSCksamU9eWgoSCksWWU9eWgoSCksTXQ9''@;'; + put 'put ''KHdlLmZvcm11bGFzfHxbXSlbMF0seHQ9KHdlLmZvcm11bGFzfHxbXSlbMV0sUnQ9MTUmeGUsWXQ9e3Q6am1bUnRdLHNxcmZ4OndlLnNxcmVmc1swXSxzOltGZSxaZSxqZSxZZV19O3JldHVybiBNdCYmKFl0LmYxPU10KSx4dCYmKFl0LmYyPXh0KSwwPT1SdHx8Mz09UnR8fDc9PVJ0fHwoWXQu''@;'; + put 'put ''b3A9X0FbeGU+PjIwJjE1XSksWXR9fSwxMDU0OntuOiJCcnRCZWdpbkRWYWxzMTQifSwxMDU1OntuOiJCcnRDb2xvcjE0In0sMTA1Njp7bjoiQnJ0QmVnaW5TcGFya2xpbmVzIn0sMTA1Nzp7bjoiQnJ0RW5kU3BhcmtsaW5lcyJ9LDEwNTg6e246IkJydEJlZ2luU3BhcmtsaW5lR3JvdXBzIn0s''@;'; + put 'put ''MTA1OTp7bjoiQnJ0RW5kU3BhcmtsaW5lR3JvdXBzIn0sMTA2MTp7bjoiQnJ0U1hWRDE0In0sMTA2Mjp7bjoiQnJ0QmVnaW5TWFZpZXcxNCJ9LDEwNjM6e246IkJydEVuZFNYVmlldzE0In0sMTA2NDp7bjoiQnJ0QmVnaW5TWFZpZXcxNiJ9LDEwNjU6e246IkJydEVuZFNYVmlldzE2In0sMTA2''@;'; + put 'put ''Njp7bjoiQnJ0QmVnaW5QQ0QxNCJ9LDEwNjc6e246IkJydEVuZFBDRDE0In0sMTA2ODp7bjoiQnJ0QmVnaW5FeHRDb25uMTQifSwxMDY5OntuOiJCcnRFbmRFeHRDb25uMTQifSwxMDcwOntuOiJCcnRCZWdpblNsaWNlckNhY2hlSURzIn0sMTA3MTp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVJRHMi''@;'; + put 'put ''fSwxMDcyOntuOiJCcnRCZWdpblNsaWNlckNhY2hlSUQifSwxMDczOntuOiJCcnRFbmRTbGljZXJDYWNoZUlEIn0sMTA3NTp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZSJ9LDEwNzY6e246IkJydEVuZFNsaWNlckNhY2hlIn0sMTA3Nzp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZURlZiJ9LDEwNzg6''@;'; + put 'put ''e246IkJydEVuZFNsaWNlckNhY2hlRGVmIn0sMTA3OTp7bjoiQnJ0QmVnaW5TbGljZXJzRXgifSwxMDgwOntuOiJCcnRFbmRTbGljZXJzRXgifSwxMDgxOntuOiJCcnRCZWdpblNsaWNlckV4In0sMTA4Mjp7bjoiQnJ0RW5kU2xpY2VyRXgifSwxMDgzOntuOiJCcnRCZWdpblNsaWNlciJ9LDEw''@;'; + put 'put ''ODQ6e246IkJydEVuZFNsaWNlciJ9LDEwODU6e246IkJydFNsaWNlckNhY2hlUGl2b3RUYWJsZXMifSwxMDg2OntuOiJCcnRCZWdpblNsaWNlckNhY2hlT2xhcEltcGwifSwxMDg3OntuOiJCcnRFbmRTbGljZXJDYWNoZU9sYXBJbXBsIn0sMTA4ODp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZUxl''@;'; + put 'put ''dmVsc0RhdGEifSwxMDg5OntuOiJCcnRFbmRTbGljZXJDYWNoZUxldmVsc0RhdGEifSwxMDkwOntuOiJCcnRCZWdpblNsaWNlckNhY2hlTGV2ZWxEYXRhIn0sMTA5MTp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVMZXZlbERhdGEifSwxMDkyOntuOiJCcnRCZWdpblNsaWNlckNhY2hlU2lSYW5nZXMi''@;'; + put 'put ''fSwxMDkzOntuOiJCcnRFbmRTbGljZXJDYWNoZVNpUmFuZ2VzIn0sMTA5NDp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZVNpUmFuZ2UifSwxMDk1OntuOiJCcnRFbmRTbGljZXJDYWNoZVNpUmFuZ2UifSwxMDk2OntuOiJCcnRTbGljZXJDYWNoZU9sYXBJdGVtIn0sMTA5Nzp7bjoiQnJ0QmVnaW5T''@;'; + put 'put ''bGljZXJDYWNoZVNlbGVjdGlvbnMifSwxMDk4OntuOiJCcnRTbGljZXJDYWNoZVNlbGVjdGlvbiJ9LDEwOTk6e246IkJydEVuZFNsaWNlckNhY2hlU2VsZWN0aW9ucyJ9LDExMDA6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVOYXRpdmUifSwxMTAxOntuOiJCcnRFbmRTbGljZXJDYWNoZU5hdGl2''@;'; + put 'put ''ZSJ9LDExMDI6e246IkJydFNsaWNlckNhY2hlTmF0aXZlSXRlbSJ9LDExMDM6e246IkJydFJhbmdlUHJvdGVjdGlvbjE0In0sMTEwNDp7bjoiQnJ0UmFuZ2VQcm90ZWN0aW9uSXNvMTQifSwxMTA1OntuOiJCcnRDZWxsSWdub3JlRUMxNCJ9LDExMTE6e246IkJydExpc3QxNCJ9LDExMTI6e246''@;'; + put 'put ''IkJydENGSWNvbiJ9LDExMTM6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVzUGl2b3RDYWNoZUlEcyJ9LDExMTQ6e246IkJydEVuZFNsaWNlckNhY2hlc1Bpdm90Q2FjaGVJRHMifSwxMTE1OntuOiJCcnRCZWdpblNsaWNlcnMifSwxMTE2OntuOiJCcnRFbmRTbGljZXJzIn0sMTExNzp7bjoiQnJ0''@;'; + put 'put ''V2JQcm9wMTQifSwxMTE4OntuOiJCcnRCZWdpblNYRWRpdCJ9LDExMTk6e246IkJydEVuZFNYRWRpdCJ9LDExMjA6e246IkJydEJlZ2luU1hFZGl0cyJ9LDExMjE6e246IkJydEVuZFNYRWRpdHMifSwxMTIyOntuOiJCcnRCZWdpblNYQ2hhbmdlIn0sMTEyMzp7bjoiQnJ0RW5kU1hDaGFuZ2Ui''@;'; + put 'put ''fSwxMTI0OntuOiJCcnRCZWdpblNYQ2hhbmdlcyJ9LDExMjU6e246IkJydEVuZFNYQ2hhbmdlcyJ9LDExMjY6e246IkJydFNYVHVwbGVJdGVtcyJ9LDExMjg6e246IkJydEJlZ2luU2xpY2VyU3R5bGUifSwxMTI5OntuOiJCcnRFbmRTbGljZXJTdHlsZSJ9LDExMzA6e246IkJydFNsaWNlclN0''@;'; + put 'put ''eWxlRWxlbWVudCJ9LDExMzE6e246IkJydEJlZ2luU3R5bGVTaGVldEV4dDE0In0sMTEzMjp7bjoiQnJ0RW5kU3R5bGVTaGVldEV4dDE0In0sMTEzMzp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZXNQaXZvdENhY2hlSUQifSwxMTM0OntuOiJCcnRFbmRTbGljZXJDYWNoZXNQaXZvdENhY2hlSUQi''@;'; + put 'put ''fSwxMTM1OntuOiJCcnRCZWdpbkNvbmRpdGlvbmFsRm9ybWF0dGluZ3MifSwxMTM2OntuOiJCcnRFbmRDb25kaXRpb25hbEZvcm1hdHRpbmdzIn0sMTEzNzp7bjoiQnJ0QmVnaW5QQ0RDYWxjTWVtRXh0In0sMTEzODp7bjoiQnJ0RW5kUENEQ2FsY01lbUV4dCJ9LDExMzk6e246IkJydEJlZ2lu''@;'; + put 'put ''UENEQ2FsY01lbXNFeHQifSwxMTQwOntuOiJCcnRFbmRQQ0RDYWxjTWVtc0V4dCJ9LDExNDE6e246IkJydFBDREZpZWxkMTQifSwxMTQyOntuOiJCcnRCZWdpblNsaWNlclN0eWxlcyJ9LDExNDM6e246IkJydEVuZFNsaWNlclN0eWxlcyJ9LDExNDQ6e246IkJydEJlZ2luU2xpY2VyU3R5bGVF''@;'; + put 'put ''bGVtZW50cyJ9LDExNDU6e246IkJydEVuZFNsaWNlclN0eWxlRWxlbWVudHMifSwxMTQ2OntuOiJCcnRDRlJ1bGVFeHQifSwxMTQ3OntuOiJCcnRCZWdpblNYQ29uZEZtdDE0In0sMTE0ODp7bjoiQnJ0RW5kU1hDb25kRm10MTQifSwxMTQ5OntuOiJCcnRCZWdpblNYQ29uZEZtdHMxNCJ9LDEx''@;'; + put 'put ''NTA6e246IkJydEVuZFNYQ29uZEZtdHMxNCJ9LDExNTI6e246IkJydEJlZ2luU29ydENvbmQxNCJ9LDExNTM6e246IkJydEVuZFNvcnRDb25kMTQifSwxMTU0OntuOiJCcnRFbmREVmFsczE0In0sMTE1NTp7bjoiQnJ0RW5kSWNvblNldDE0In0sMTE1Njp7bjoiQnJ0RW5kRGF0YWJhcjE0In0s''@;'; + put 'put ''MTE1Nzp7bjoiQnJ0QmVnaW5Db2xvclNjYWxlMTQifSwxMTU4OntuOiJCcnRFbmRDb2xvclNjYWxlMTQifSwxMTU5OntuOiJCcnRCZWdpblN4cnVsZXMxNCJ9LDExNjA6e246IkJydEVuZFN4cnVsZXMxNCJ9LDExNjE6e246IkJydEJlZ2luUFJ1bGUxNCJ9LDExNjI6e246IkJydEVuZFBSdWxl''@;'; + put 'put ''MTQifSwxMTYzOntuOiJCcnRCZWdpblBSRmlsdGVyczE0In0sMTE2NDp7bjoiQnJ0RW5kUFJGaWx0ZXJzMTQifSwxMTY1OntuOiJCcnRCZWdpblBSRmlsdGVyMTQifSwxMTY2OntuOiJCcnRFbmRQUkZpbHRlcjE0In0sMTE2Nzp7bjoiQnJ0QmVnaW5QUkZJdGVtMTQifSwxMTY4OntuOiJCcnRF''@;'; + put 'put ''bmRQUkZJdGVtMTQifSwxMTY5OntuOiJCcnRCZWdpbkNlbGxJZ25vcmVFQ3MxNCJ9LDExNzA6e246IkJydEVuZENlbGxJZ25vcmVFQ3MxNCJ9LDExNzE6e246IkJydER4ZjE0In0sMTE3Mjp7bjoiQnJ0QmVnaW5EeEYxNHMifSwxMTczOntuOiJCcnRFbmREeGYxNHMifSwxMTc3OntuOiJCcnRG''@;'; + put 'put ''aWx0ZXIxNCJ9LDExNzg6e246IkJydEJlZ2luQ3VzdG9tRmlsdGVyczE0In0sMTE4MDp7bjoiQnJ0Q3VzdG9tRmlsdGVyMTQifSwxMTgxOntuOiJCcnRJY29uRmlsdGVyMTQifSwxMTgyOntuOiJCcnRQaXZvdENhY2hlQ29ubmVjdGlvbk5hbWUifSwyMDQ4OntuOiJCcnRCZWdpbkRlY291cGxl''@;'; + put 'put ''ZFBpdm90Q2FjaGVJRHMifSwyMDQ5OntuOiJCcnRFbmREZWNvdXBsZWRQaXZvdENhY2hlSURzIn0sMjA1MDp7bjoiQnJ0RGVjb3VwbGVkUGl2b3RDYWNoZUlEIn0sMjA1MTp7bjoiQnJ0QmVnaW5QaXZvdFRhYmxlUmVmcyJ9LDIwNTI6e246IkJydEVuZFBpdm90VGFibGVSZWZzIn0sMjA1Mzp7''@;'; + put 'put ''bjoiQnJ0UGl2b3RUYWJsZVJlZiJ9LDIwNTQ6e246IkJydFNsaWNlckNhY2hlQm9va1Bpdm90VGFibGVzIn0sMjA1NTp7bjoiQnJ0QmVnaW5TeHZjZWxscyJ9LDIwNTY6e246IkJydEVuZFN4dmNlbGxzIn0sMjA1Nzp7bjoiQnJ0QmVnaW5TeFJvdyJ9LDIwNTg6e246IkJydEVuZFN4Um93In0s''@;'; + put 'put ''MjA2MDp7bjoiQnJ0UGNkQ2FsY01lbTE1In0sMjA2Nzp7bjoiQnJ0UXNpMTUifSwyMDY4OntuOiJCcnRCZWdpbldlYkV4dGVuc2lvbnMifSwyMDY5OntuOiJCcnRFbmRXZWJFeHRlbnNpb25zIn0sMjA3MDp7bjoiQnJ0V2ViRXh0ZW5zaW9uIn0sMjA3MTp7bjoiQnJ0QWJzUGF0aDE1In0sMjA3''@;'; + put 'put ''Mjp7bjoiQnJ0QmVnaW5QaXZvdFRhYmxlVUlTZXR0aW5ncyJ9LDIwNzM6e246IkJydEVuZFBpdm90VGFibGVVSVNldHRpbmdzIn0sMjA3NTp7bjoiQnJ0VGFibGVTbGljZXJDYWNoZUlEcyJ9LDIwNzY6e246IkJydFRhYmxlU2xpY2VyQ2FjaGVJRCJ9LDIwNzc6e246IkJydEJlZ2luVGFibGVT''@;'; + put 'put ''bGljZXJDYWNoZSJ9LDIwNzg6e246IkJydEVuZFRhYmxlU2xpY2VyQ2FjaGUifSwyMDc5OntuOiJCcnRTeEZpbHRlcjE1In0sMjA4MDp7bjoiQnJ0QmVnaW5UaW1lbGluZUNhY2hlUGl2b3RDYWNoZUlEcyJ9LDIwODE6e246IkJydEVuZFRpbWVsaW5lQ2FjaGVQaXZvdENhY2hlSURzIn0sMjA4''@;'; + put 'put ''Mjp7bjoiQnJ0VGltZWxpbmVDYWNoZVBpdm90Q2FjaGVJRCJ9LDIwODM6e246IkJydEJlZ2luVGltZWxpbmVDYWNoZUlEcyJ9LDIwODQ6e246IkJydEVuZFRpbWVsaW5lQ2FjaGVJRHMifSwyMDg1OntuOiJCcnRCZWdpblRpbWVsaW5lQ2FjaGVJRCJ9LDIwODY6e246IkJydEVuZFRpbWVsaW5l''@;'; + put 'put ''Q2FjaGVJRCJ9LDIwODc6e246IkJydEJlZ2luVGltZWxpbmVzRXgifSwyMDg4OntuOiJCcnRFbmRUaW1lbGluZXNFeCJ9LDIwODk6e246IkJydEJlZ2luVGltZWxpbmVFeCJ9LDIwOTA6e246IkJydEVuZFRpbWVsaW5lRXgifSwyMDkxOntuOiJCcnRXb3JrQm9va1ByMTUifSwyMDkyOntuOiJC''@;'; + put 'put ''cnRQQ0RIMTUifSwyMDkzOntuOiJCcnRCZWdpblRpbWVsaW5lU3R5bGUifSwyMDk0OntuOiJCcnRFbmRUaW1lbGluZVN0eWxlIn0sMjA5NTp7bjoiQnJ0VGltZWxpbmVTdHlsZUVsZW1lbnQifSwyMDk2OntuOiJCcnRCZWdpblRpbWVsaW5lU3R5bGVzaGVldEV4dDE1In0sMjA5Nzp7bjoiQnJ0''@;'; + put 'put ''RW5kVGltZWxpbmVTdHlsZXNoZWV0RXh0MTUifSwyMDk4OntuOiJCcnRCZWdpblRpbWVsaW5lU3R5bGVzIn0sMjA5OTp7bjoiQnJ0RW5kVGltZWxpbmVTdHlsZXMifSwyMTAwOntuOiJCcnRCZWdpblRpbWVsaW5lU3R5bGVFbGVtZW50cyJ9LDIxMDE6e246IkJydEVuZFRpbWVsaW5lU3R5bGVF''@;'; + put 'put ''bGVtZW50cyJ9LDIxMDI6e246IkJydER4ZjE1In0sMjEwMzp7bjoiQnJ0QmVnaW5EeGZzMTUifSwyMTA0OntuOiJicnRFbmREeGZzMTUifSwyMTA1OntuOiJCcnRTbGljZXJDYWNoZUhpZGVJdGVtc1dpdGhOb0RhdGEifSwyMTA2OntuOiJCcnRCZWdpbkl0ZW1VbmlxdWVOYW1lcyJ9LDIxMDc6''@;'; + put 'put ''e246IkJydEVuZEl0ZW1VbmlxdWVOYW1lcyJ9LDIxMDg6e246IkJydEl0ZW1VbmlxdWVOYW1lIn0sMjEwOTp7bjoiQnJ0QmVnaW5FeHRDb25uMTUifSwyMTEwOntuOiJCcnRFbmRFeHRDb25uMTUifSwyMTExOntuOiJCcnRCZWdpbk9sZWRiUHIxNSJ9LDIxMTI6e246IkJydEVuZE9sZWRiUHIx''@;'; + put 'put ''NSJ9LDIxMTM6e246IkJydEJlZ2luRGF0YUZlZWRQcjE1In0sMjExNDp7bjoiQnJ0RW5kRGF0YUZlZWRQcjE1In0sMjExNTp7bjoiQnJ0VGV4dFByMTUifSwyMTE2OntuOiJCcnRSYW5nZVByMTUifSwyMTE3OntuOiJCcnREYkNvbW1hbmQxNSJ9LDIxMTg6e246IkJydEJlZ2luRGJUYWJsZXMx''@;'; + put 'put ''NSJ9LDIxMTk6e246IkJydEVuZERiVGFibGVzMTUifSwyMTIwOntuOiJCcnREYlRhYmxlMTUifSwyMTIxOntuOiJCcnRCZWdpbkRhdGFNb2RlbCJ9LDIxMjI6e246IkJydEVuZERhdGFNb2RlbCJ9LDIxMjM6e246IkJydEJlZ2luTW9kZWxUYWJsZXMifSwyMTI0OntuOiJCcnRFbmRNb2RlbFRh''@;'; + put 'put ''YmxlcyJ9LDIxMjU6e246IkJydE1vZGVsVGFibGUifSwyMTI2OntuOiJCcnRCZWdpbk1vZGVsUmVsYXRpb25zaGlwcyJ9LDIxMjc6e246IkJydEVuZE1vZGVsUmVsYXRpb25zaGlwcyJ9LDIxMjg6e246IkJydE1vZGVsUmVsYXRpb25zaGlwIn0sMjEyOTp7bjoiQnJ0QmVnaW5FQ1R4dFdpejE1''@;'; + put 'put ''In0sMjEzMDp7bjoiQnJ0RW5kRUNUeHRXaXoxNSJ9LDIxMzE6e246IkJydEJlZ2luRUNUV0ZsZEluZm9Mc3QxNSJ9LDIxMzI6e246IkJydEVuZEVDVFdGbGRJbmZvTHN0MTUifSwyMTMzOntuOiJCcnRCZWdpbkVDVFdGbGRJbmZvMTUifSwyMTM0OntuOiJCcnRGaWVsZExpc3RBY3RpdmVJdGVt''@;'; + put 'put ''In0sMjEzNTp7bjoiQnJ0UGl2b3RDYWNoZUlkVmVyc2lvbiJ9LDIxMzY6e246IkJydFNYREkxNSJ9LDIxMzc6e246IkJydEJlZ2luTW9kZWxUaW1lR3JvdXBpbmdzIn0sMjEzODp7bjoiQnJ0RW5kTW9kZWxUaW1lR3JvdXBpbmdzIn0sMjEzOTp7bjoiQnJ0QmVnaW5Nb2RlbFRpbWVHcm91cGlu''@;'; + put 'put ''ZyJ9LDIxNDA6e246IkJydEVuZE1vZGVsVGltZUdyb3VwaW5nIn0sMjE0MTp7bjoiQnJ0TW9kZWxUaW1lR3JvdXBpbmdDYWxjQ29sIn0sMzA3Mjp7bjoiQnJ0VWlkIn0sMzA3Mzp7bjoiQnJ0UmV2aXNpb25QdHIifSw1MDk1OntuOiJCcnRCZWdpbkNhbGNGZWF0dXJlcyJ9LDUwOTY6e246IkJy''@;'; + put 'put ''dEVuZENhbGNGZWF0dXJlcyJ9LDUwOTc6e246IkJydENhbGNGZWF0dXJlIn0sNjU1MzU6e246IiJ9fSxuVD1fdCh4NSwibiIpO25ULkJydEZSVEFyY2hJRCQ9MTY7dmFyIE5sPXs2OntuOiJGb3JtdWxhIixmOnU1fSwxMDp7bjoiRU9GIixmOkZsfSwxMjp7bjoiQ2FsY0NvdW50IixmOmMxfSwx''@;'; + put 'put ''Mzp7bjoiQ2FsY01vZGUiLGY6YzF9LDE0OntuOiJDYWxjUHJlY2lzaW9uIixmOnRhfSwxNTp7bjoiQ2FsY1JlZk1vZGUiLGY6dGF9LDE2OntuOiJDYWxjRGVsdGEiLGY6STJ9LDE3OntuOiJDYWxjSXRlciIsZjp0YX0sMTg6e246IlByb3RlY3QiLGY6dGF9LDE5OntuOiJQYXNzd29yZCIsZjpj''@;'; + put 'put ''MX0sMjA6e246IkhlYWRlciIsZjpENH0sMjE6e246IkZvb3RlciIsZjpENH0sMjM6e246IkV4dGVyblNoZWV0IixmOlY4fSwyNDp7bjoiTGJsIixmOmhifSwyNTp7bjoiV2luUHJvdGVjdCIsZjp0YX0sMjY6e246IlZlcnRpY2FsUGFnZUJyZWFrcyJ9LDI3OntuOiJIb3Jpem9udGFsUGFnZUJy''@;'; + put 'put ''ZWFrcyJ9LDI4OntuOiJOb3RlIixmOmZ1bmN0aW9uIGxtKEgscmUsWCl7cmV0dXJuIGZ1bmN0aW9uIHd2KEgscmUsWCl7aWYoIShYLmJpZmY8OCkpe3ZhciB3ZT1ILnJlYWRfc2hpZnQoMikseGU9SC5yZWFkX3NoaWZ0KDIpLEZlPUgucmVhZF9zaGlmdCgyKSxaZT1ILnJlYWRfc2hpZnQoMiks''@;'; + put 'put ''amU9ZGYoSCwwLFgpO3JldHVybiBYLmJpZmY8OCYmSC5yZWFkX3NoaWZ0KDEpLFt7cjp3ZSxjOnhlfSxqZSxaZSxGZV19fShILDAsWCl9fSwyOTp7bjoiU2VsZWN0aW9uIixmOmZ1bmN0aW9uIE1oKEgscmUsWCl7cmV0dXJuIFgmJlguYmlmZjw1PyhILmwrPXJlLHtjZWxsOntyOjAsYzowfX0p''@;'; + put 'put ''OihILnJlYWRfc2hpZnQoMSkse2NlbGw6WTAoe3I6SC5yZWFkX3NoaWZ0KDIpLGM6SC5yZWFkX3NoaWZ0KDIpfSl9KX19LDM0OntuOiJEYXRlMTkwNCIsZjp0YX0sMzU6e246IkV4dGVybk5hbWUiLGY6Rk19LDM4OntuOiJMZWZ0TWFyZ2luIixmOkkyfSwzOTp7bjoiUmlnaHRNYXJnaW4iLGY6''@;'; + put 'put ''STJ9LDQwOntuOiJUb3BNYXJnaW4iLGY6STJ9LDQxOntuOiJCb3R0b21NYXJnaW4iLGY6STJ9LDQyOntuOiJQcmludFJvd0NvbCIsZjp0YX0sNDM6e246IlByaW50R3JpZCIsZjp0YX0sNDc6e246IkZpbGVQYXNzIixmOmZ1bmN0aW9uIGdtKEgscmUsWCl7aWYoWC5lbmMpcmV0dXJuIFguZW5j''@;'; + put 'put ''O3ZhciB3ZT17VHlwZTpYLmJpZmY+PTg/SC5yZWFkX3NoaWZ0KDIpOjB9O3JldHVybiB3ZS5UeXBlP2Z1bmN0aW9uIG5FKEgscmUsWCx3ZSl7dmFyIHhlPXdlfHx7fTtpZih4ZS5JbmZvPUgucmVhZF9zaGlmdCgyKSxILmwtPTIsMT09PXhlLkluZm8pe2lmKHhlLkRhdGE9ZnVuY3Rpb24gS3oo''@;'; + put 'put ''SCl7dmFyIHJlPXt9LFg9cmUuRW5jcnlwdGlvblZlcnNpb25JbmZvPXZmKEgsNCk7aWYoMSE9WC5NYWpvcnx8MSE9WC5NaW5vcil0aHJvdyJ1bnJlY29nbml6ZWQgdmVyc2lvbiBjb2RlICIrWC5NYWpvcisiIDogIitYLk1pbm9yO3JldHVybiByZS5TYWx0PUgucmVhZF9zaGlmdCgxNikscmUu''@;'; + put 'put ''RW5jcnlwdGVkVmVyaWZpZXI9SC5yZWFkX3NoaWZ0KDE2KSxyZS5FbmNyeXB0ZWRWZXJpZmllckhhc2g9SC5yZWFkX3NoaWZ0KDE2KSxyZX0oSCksWC5wYXNzd29yZCYmdm9pZCAwIT09UjYpe3ZhciBGZT1SNihYLnBhc3N3b3JkLHhlLkRhdGEuU2FsdCwiMDAwMDAwMDAiKSxaZT1UZSh4ZS5E''@;'; + put 'put ''YXRhLkVuY3J5cHRlZFZlcmlmaWVyK3hlLkRhdGEuRW5jcnlwdGVkVmVyaWZpZXJIYXNoLCJoZXgiKSxqZT1zby5yYzQoVGUoRmUsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSxaZSk7d2UudmFsaWQ9c28ubWQ1KGplLnNsaWNlKDAsMTYpKT09QnVmZmVyLmZyb20oamUuc2xpY2UoMTYpKS50''@;'; + put 'put ''b1N0cmluZygiaGV4IikseGUuRGF0YS5LZXk9RmUsd2UuaW5zaXR1PWZ1bmN0aW9uIEJQKEgscmUpe3ZhciBYPW5ldyBBcnJheSgyNTYpLHdlPTAseGU9MCxGZT0wLFplPTA7ZnVuY3Rpb24gamUoWXQpe2Zvcih3ZT0wLHhlPTAsRmU9MCxaZT0wLHhlPTA7MjU2IT14ZTsrK3hlKVhbeGVdPXhl''@;'; + put 'put ''O2ZvcihGZT0wLHhlPTA7MjU2IT14ZTsrK3hlKXt0cnl7RmU9RmUrWFt4ZV0rWXRbeGUlWXQubGVuZ3RoXS5jaGFyQ29kZUF0KDApJjI1NX1jYXRjaChubil7dGhyb3cgY29uc29sZS5sb2coeGUsWXRbeGUlWXQubGVuZ3RoXSksbm59WmU9WFt4ZV0sWFt4ZV09WFtGZV0sWFtGZV09WmV9eGU9''@;'; + put 'put ''RmU9MH1mdW5jdGlvbiBZZShZdCl7dmFyIG5uPWhlKFl0Lmxlbmd0aCk7Zm9yKHdlPTA7d2UhPVl0Lmxlbmd0aDsrK3dlKVplPVhbeGU9eGUrMSYyNTVdLFhbeGVdPVhbRmU9KEZlK1hbeGVdKSUyNTZdLFhbRmVdPVplLG5uW3dlXT1ZdFt3ZV1eWFtYW3hlXStYW0ZlXSYyNTVdO3JldHVybiBC''@;'; + put 'put ''dWZmZXIuZnJvbShubil9dmFyIE10PUguS2V5LHh0PTA7amUoVGUoTXQsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSk7dmFyIFJ0PTA7cmV0dXJuIGZ1bmN0aW9uKFl0KXtpZihSdCtZdC5sZW5ndGg8MTAyNClyZXR1cm4gUnQrPVl0Lmxlbmd0aCxZZShZdCk7dmFyIER0PTAsenQ9VGUoWXQu''@;'; + put 'put ''c2xpY2UoRHQsRHQrKENuPTEwMjQtUnQpKSk7RHQrPUNuLFJ0PTA7dmFyIFBuPVllKHp0KTtmb3IoRHQ9PVl0Lmxlbmd0aCYmKCsreHQsTXQ9UjYocmUsSC5TYWx0LEk1KHh0KSksamUoVGUoTXQsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSkpO0R0PFl0Lmxlbmd0aDspeysreHQsTXQ9UjYo''@;'; + put 'put ''cmUsSC5TYWx0LEk1KHh0KSksamUoQnVmZmVyLmZyb20oTXQsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSk7dmFyIENuPU1hdGgubWluKDEwMjQsWXQubGVuZ3RoLUR0KTt6dD1UZShZdC5zbGljZShEdCxEdCtDbikpLER0Kz1DbixSdD1DbixQbj1CdWZmZXIuY29uY2F0KFtQbixZZSh6dCld''@;'; + put 'put ''KX1yZXR1cm4gUG59fSh4ZS5EYXRhLFgucGFzc3dvcmQpfX1lbHNlIGlmKHhlLkRhdGE9ZnVuY3Rpb24gWHooSCxyZSl7dmFyIFg9e30sd2U9WC5FbmNyeXB0aW9uVmVyc2lvbkluZm89dmYoSCw0KTtpZihyZS09NCwyIT13ZS5NaW5vcil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCBt''@;'; + put 'put ''aW5vciB2ZXJzaW9uIGNvZGU6ICIrd2UuTWlub3IpO2lmKHdlLk1ham9yPjR8fHdlLk1ham9yPDIpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgbWFqb3IgdmVyc2lvbiBjb2RlOiAiK3dlLk1ham9yKTtYLkZsYWdzPUgucmVhZF9zaGlmdCg0KSxyZS09NDt2YXIgeGU9SC5yZWFkX3No''@;'; + put 'put ''aWZ0KDQpO3JldHVybiByZS09NCxYLkVuY3J5cHRpb25IZWFkZXI9U1IoSCx4ZSksWC5FbmNyeXB0aW9uVmVyaWZpZXI9TVIoSCxyZS09eGUpLFh9KEgscmUpLHhlLkRhdGEmJnhlLkRhdGEuRW5jcnlwdGlvbkhlYWRlciYmMjY2MjU9PT14ZS5EYXRhLkVuY3J5cHRpb25IZWFkZXIuQWxnSUQm''@;'; + put 'put ''JlgucGFzc3dvcmQmJnZvaWQgMCE9PUlBKXt2YXIgWWU9SUEoWC5wYXNzd29yZCx4ZS5EYXRhLkVuY3J5cHRpb25WZXJpZmllci5TYWx0LnRvU3RyaW5nKCJoZXgiKSwiMDAwMDAwMDAiKSxNdD14ZS5EYXRhLkVuY3J5cHRpb25IZWFkZXIuS2V5U2l6ZT4+PjM7NT09TXR8fE10PFllLmxlbmd0''@;'; + put 'put ''aCYmKFllPVllLnNsaWNlKDAsTXQpKTt2YXIgeHQ9VGUoeGUuRGF0YS5FbmNyeXB0aW9uVmVyaWZpZXIuVmVyaWZpZXIudG9TdHJpbmcoImhleCIpK3hlLkRhdGEuRW5jcnlwdGlvblZlcmlmaWVyLlZlcmlmaWVySGFzaC50b1N0cmluZygiaGV4IiksImhleCIpLFJ0PXNvLnJjNChZZS50b1N0''@;'; + put 'put ''cmluZygiYmluYXJ5IikseHQpO3dlLnZhbGlkPWsyKFJ0LnNsaWNlKDAsTXQpLCJTSEExIikudG9TdHJpbmcoImhleCIpPT1SdC5zbGljZShNdCkudG9TdHJpbmcoImhleCIpLHhlLkRhdGEuS2V5PVllLHdlLnZhbGlkJiYod2UuaW5zaXR1PWZ1bmN0aW9uIHcwKEgscmUpe3ZhciBYPW5ldyBB''@;'; + put 'put ''cnJheSgyNTYpLHdlPTAseGU9MCxGZT0wLFplPTAsamU9SC5FbmNyeXB0aW9uSGVhZGVyLktleVNpemU+Pj4zO2Z1bmN0aW9uIFllKG5uKXtmb3Iobm49QnVmZmVyLmZyb20obm4uc2xpY2UoMCxqZSkpLHdlPTAseGU9MCxGZT0wLFplPTAseGU9MDsyNTYhPXhlOysreGUpWFt4ZV09eGU7Zm9y''@;'; + put 'put ''KEZlPTAseGU9MDsyNTYhPXhlOysreGUpe3ZhciBDbj1ublt4ZSVubi5sZW5ndGhdO0ZlPUZlK1hbeGVdKygic3RyaW5nIj09dHlwZW9mIENuP0NuLmNoYXJDb2RlQXQoMCk6Q24pJjI1NSxaZT1YW3hlXSxYW3hlXT1YW0ZlXSxYW0ZlXT1aZX14ZT1GZT0wfWZ1bmN0aW9uIE10KG5uKXt2YXIg''@;'; + put 'put ''Q249aGUobm4ubGVuZ3RoKTtmb3Iod2U9MDt3ZSE9bm4ubGVuZ3RoOysrd2UpWmU9WFt4ZT14ZSsxJjI1NV0sWFt4ZV09WFtGZT0oRmUrWFt4ZV0pJTI1Nl0sWFtGZV09WmUsQ25bd2VdPW5uW3dlXV5YW1hbeGVdK1hbRmVdJjI1NV07cmV0dXJuIEJ1ZmZlci5mcm9tKENuKX12YXIgeHQ9SC5L''@;'; + put 'put ''ZXksUnQ9MDtZZShUZSh4dCwiaGV4IikudG9TdHJpbmcoImJpbmFyeSIpKTt2YXIgWXQ9MDtyZXR1cm4gZnVuY3Rpb24obm4pe2lmKFl0K25uLmxlbmd0aDwxMDI0KXJldHVybiBZdCs9bm4ubGVuZ3RoLE10KG5uKTt2YXIgRHQ9MTAyNC1ZdCx6dD0wLFBuPUJ1ZmZlci5mcm9tKG5uLnNsaWNl''@;'; + put 'put ''KHp0LHp0K0R0KSk7enQrPUR0LFl0PTA7dmFyIFRuPU10KFBuKTtmb3IoenQ9PW5uLmxlbmd0aCYmKCsrUnQseHQ9SUEocmUsSC5FbmNyeXB0aW9uVmVyaWZpZXIuU2FsdCxJNShSdCkpLFllKEJ1ZmZlci5mcm9tKHh0LCJoZXgiKS50b1N0cmluZygiYmluYXJ5IikpKTt6dDxubi5sZW5ndGg7''@;'; + put 'put ''KSsrUnQseHQ9SUEocmUsSC5FbmNyeXB0aW9uVmVyaWZpZXIuU2FsdCxJNShSdCkpLFllKEJ1ZmZlci5mcm9tKHh0LCJoZXgiKS50b1N0cmluZygiYmluYXJ5IikpLER0PU1hdGgubWluKDEwMjQsbm4ubGVuZ3RoLXp0KSxQbj1CdWZmZXIuZnJvbShubi5zbGljZSh6dCx6dCtEdCkpLHp0Kz1E''@;'; + put 'put ''dCxEdDwxMDI0JiYoWXQ9RHQpLFRuPUJ1ZmZlci5jb25jYXQoW1RuLE10KFBuKV0pO3JldHVybiBUbn19KHhlLkRhdGEsWC5wYXNzd29yZCkpfXJldHVybiB4ZX0oSCxyZS0yLFgsd2UpOmZ1bmN0aW9uIFRSKEgscmUsWCx3ZSl7dmFyIHhlPXtrZXk6YzEoSCksdmVyaWZpY2F0aW9uQnl0ZXM6''@;'; + put 'put ''YzEoSCl9O1gucGFzc3dvcmQmJih4ZS52ZXJpZmllcj1TdihYLnBhc3N3b3JkKSksd2UudmFsaWQ9eGUudmVyaWZpY2F0aW9uQnl0ZXM9PT14ZS52ZXJpZmllcix3ZS52YWxpZCYmKHdlLmluc2l0dT1mdW5jdGlvbihILHJlKXt2YXIgWD1yZXx8MCx3ZT1NdihIKTtyZXR1cm4gZnVuY3Rpb24o''@;'; + put 'put ''eGUpe3ZhciBGZT1mdW5jdGlvbihILHJlLFgsd2UseGUpe3ZhciBGZSxaZTtmb3IoeGV8fCh4ZT1yZSksd2V8fCh3ZT1NdigiIikpLEZlPTA7RmUhPXJlLmxlbmd0aDsrK0ZlKVplPTI1NSYoKFplPXJlW0ZlXSk+PjV8WmU8PDMpLHhlW0ZlXT1aZV49d2VbWF0sWD1YKzEmMTU7cmV0dXJuW3hl''@;'; + put 'put ''LFgsd2VdfSgwLHhlLFgsd2UpO3JldHVybiBYPUZlWzFdLEZlWzBdfX0oWC5wYXNzd29yZCwwKSl9KEgsMCxYLHdlKSx3ZX19LDQ5OntuOiJGb250IixmOmZ1bmN0aW9uIF9kKEgscmUsWCl7dmFyIHdlPXtzejpILnJlYWRfc2hpZnQoMikvMjB9LHhlPXF3KEgpO3hlLmZCb2xkJiYod2UuYm9s''@;'; + put 'put ''ZD0xKSx4ZS5mSXRhbGljJiYod2UuaXRhbGljPTEpLHhlLmZVbmRlcmxpbmUmJih3ZS51bmRlcmxpbmU9MSkseGUuZkNvbmRlbnNlJiYod2UuY29uZGVuc2U9MSkseGUuZkV4dGVuZCYmKHdlLmV4dGVuZD0xKSx4ZS5mU2hhZG93JiYod2Uuc2hhZG93PTEpLHhlLmZPdXRsaW5lJiYod2Uub3V0''@;'; + put 'put ''bGluZT0xKSx4ZS5mU3RyaWtlb3V0JiYod2Uuc3RyaWtlPTEpO3ZhciBGZT1YJiZYLmJpZmZ8fDg7aWYoMiE9RmUmJih3ZS5pY3Y9SC5yZWFkX3NoaWZ0KDIpLDMhPUZlJiY0IT1GZSkpe3N3aXRjaCg3MDA9PT1ILnJlYWRfc2hpZnQoMikmJih3ZS5ib2xkPTEpLEgucmVhZF9zaGlmdCgyKSl7''@;'; + put 'put ''Y2FzZSAxOndlLnZhbGlnbj0ic3VwZXIiO2JyZWFrO2Nhc2UgMjp3ZS52YWxpZ249InN1YiJ9dmFyIGplPUgucmVhZF9zaGlmdCgxKTswIT1qZSYmKHdlLnVuZGVybGluZT1qZSk7dmFyIFllPUgucmVhZF9zaGlmdCgxKTtZZT4wJiYod2UuZmFtaWx5PVllKTt2YXIgTXQ9SC5yZWFkX3NoaWZ0''@;'; + put 'put ''KDEpO010PjAmJih3ZS5jaGFyc2V0PU10KSxILmwrPTF9cmV0dXJuIHdlLm5hbWU9emMoSCwwLFgpLHdlfX0sNTE6e246IlByaW50U2l6ZSIsZjpjMX0sNjA6e246IkNvbnRpbnVlIn0sNjE6e246IldpbmRvdzEiLGY6ZnVuY3Rpb24gcm0oSCl7cmV0dXJue1BvczpbSC5yZWFkX3NoaWZ0KDIp''@;'; + put 'put ''LEgucmVhZF9zaGlmdCgyKV0sRGltOltILnJlYWRfc2hpZnQoMiksSC5yZWFkX3NoaWZ0KDIpXSxGbGFnczpILnJlYWRfc2hpZnQoMiksQ3VyVGFiOkgucmVhZF9zaGlmdCgyKSxGaXJzdFRhYjpILnJlYWRfc2hpZnQoMiksU2VsZWN0ZWQ6SC5yZWFkX3NoaWZ0KDIpLFRhYlJhdGlvOkgucmVh''@;'; + put 'put ''ZF9zaGlmdCgyKX19fSw2NDp7bjoiQmFja3VwIixmOnRhfSw2NTp7bjoiUGFuZSIsZjpmdW5jdGlvbiBiZChILHJlLFgpe2lmKFgmJlguYmlmZjw1KXJldHVybnt9O3ZhciB3ZT17fTtyZXR1cm4gd2UueD1ILnJlYWRfc2hpZnQoMiksd2UueT1ILnJlYWRfc2hpZnQoMiksd2UucndUb3A9SC5y''@;'; + put 'put ''ZWFkX3NoaWZ0KDIpLHdlLmNvbExlZnQ9SC5yZWFkX3NoaWZ0KDIpLHdlLnBubkFjY3Q9SC5yZWFkX3NoaWZ0KDEpLEgucmVhZF9zaGlmdCgxKSx3ZX19LDY2OntuOiJDb2RlUGFnZSIsZjpjMX0sNzc6e246IlBscyIsZjpfc30sODA6e246IkRDb24ifSw4MTp7bjoiRENvblJlZiJ9LDgyOntu''@;'; + put 'put ''OiJEQ29uTmFtZSJ9LDg1OntuOiJEZWZDb2xXaWR0aCIsZjpjMX0sODk6e246IlhDVCJ9LDkwOntuOiJDUk4ifSw5MTp7bjoiRmlsZVNoYXJpbmcifSw5Mjp7bjoiV3JpdGVBY2Nlc3MiLGY6ZnVuY3Rpb24gbzYoSCxyZSxYKXtpZihYLmVuYylyZXR1cm4gSC5sKz1yZSwiIjt2YXIgd2U9SC5s''@;'; + put 'put ''LHhlPWRmKEgsMCxYKTtyZXR1cm4gSC5yZWFkX3NoaWZ0KHJlK3dlLUgubCkseGV9fSw5Mzp7bjoiT2JqIixmOmZ1bmN0aW9uIHoxKEgscmUsWCl7aWYoWCYmWC5iaWZmPDgpcmV0dXJuIGZ1bmN0aW9uIG1mKEgscmUsWCl7SC5sKz00O3ZhciB3ZT1ILnJlYWRfc2hpZnQoMikseGU9SC5yZWFk''@;'; + put 'put ''X3NoaWZ0KDIpLEZlPUgucmVhZF9zaGlmdCgyKTtILmwrPTIsSC5sKz0yLEgubCs9MixILmwrPTIsSC5sKz0yLEgubCs9MixILmwrPTIsSC5sKz0yLEgubCs9MixILmwrPTY7dmFyIFplPVtdO3JldHVybiBaZS5wdXNoKChidlt3ZV18fF9zKShILHJlLT0zNixYKSkse2NtbzpbeGUsd2UsRmVd''@;'; + put 'put ''LGZ0OlplfX0oSCxyZSxYKTt2YXIgd2U9dnYoSCkseGU9ZnVuY3Rpb24gWHUoSCxyZSxYKXtmb3IodmFyIHdlPUgubCtyZSx4ZT1bXTtILmw8d2U7KXt2YXIgRmU9SC5yZWFkX3NoaWZ0KDIpO0gubC09Mjt0cnl7eGVbRmVdPW5tW0ZlXShILHdlLUgubCl9Y2F0Y2goWmUpe3JldHVybiBILmw9''@;'; + put 'put ''d2UseGV9fXJldHVybiBILmwhPXdlJiYoSC5sPXdlKSx4ZX0oSCxyZS0yMik7cmV0dXJue2Ntbzp3ZSxmdDp4ZX19fSw5NDp7bjoiVW5jYWxjZWQifSw5NTp7bjoiQ2FsY1NhdmVSZWNhbGMiLGY6dGF9LDk2OntuOiJUZW1wbGF0ZSJ9LDk3OntuOiJJbnRsIn0sOTk6e246Ik9ialByb3RlY3Qi''@;'; + put 'put ''LGY6dGF9LDEyNTp7bjoiQ29sSW5mbyIsZjp2M30sMTI4OntuOiJHdXRzIixmOmZ1bmN0aW9uIHM2KEgpe0gubCs9NDt2YXIgcmU9W0gucmVhZF9zaGlmdCgyKSxILnJlYWRfc2hpZnQoMildO2lmKDAhPT1yZVswXSYmcmVbMF0tLSwwIT09cmVbMV0mJnJlWzFdLS0scmVbMF0+N3x8cmVbMV0+''@;'; + put 'put ''Nyl0aHJvdyBuZXcgRXJyb3IoIkJhZCBHdXR0ZXJzOiAiK3JlLmpvaW4oInwiKSk7cmV0dXJuIHJlfX0sMTI5OntuOiJXc0Jvb2wiLGY6ZnVuY3Rpb24gc2IoSCxyZSxYKXt2YXIgd2U9WCYmOD09WC5iaWZmfHwyPT1yZT9ILnJlYWRfc2hpZnQoMik6KEgubCs9cmUsMCk7cmV0dXJue2ZEaWFs''@;'; + put 'put ''b2c6MTYmd2UsZkJlbG93OjY0JndlLGZSaWdodDoxMjgmd2V9fX0sMTMwOntuOiJHcmlkU2V0IixmOmMxfSwxMzE6e246IkhDZW50ZXIiLGY6dGF9LDEzMjp7bjoiVkNlbnRlciIsZjp0YX0sMTMzOntuOiJCb3VuZFNoZWV0OCIsZjpmdW5jdGlvbiBQOChILHJlLFgpe3ZhciB3ZT1ILnJlYWRf''@;'; + put 'put ''c2hpZnQoNCkseGU9MyZILnJlYWRfc2hpZnQoMSksRmU9SC5yZWFkX3NoaWZ0KDEpO3N3aXRjaChGZSl7Y2FzZSAwOkZlPSJXb3Jrc2hlZXQiO2JyZWFrO2Nhc2UgMTpGZT0iTWFjcm9zaGVldCI7YnJlYWs7Y2FzZSAyOkZlPSJDaGFydHNoZWV0IjticmVhaztjYXNlIDY6RmU9IlZCQU1vZHVs''@;'; + put 'put ''ZSJ9dmFyIFplPXpjKEgsMCxYKTtyZXR1cm4gMD09PVplLmxlbmd0aCYmKFplPSJTaGVldDEiKSx7cG9zOndlLGhzOnhlLGR0OkZlLG5hbWU6WmV9fX0sMTM0OntuOiJXcml0ZVByb3RlY3QifSwxNDA6e246IkNvdW50cnkiLGY6ZnVuY3Rpb24gX3YoSCl7dmFyIFgscmU9WzAsMF07cmV0dXJu''@;'; + put 'put ''IFg9SC5yZWFkX3NoaWZ0KDIpLHJlWzBdPVhnW1hdfHxYLFg9SC5yZWFkX3NoaWZ0KDIpLHJlWzFdPVhnW1hdfHxYLHJlfX0sMTQxOntuOiJIaWRlT2JqIixmOmMxfSwxNDQ6e246IlNvcnQifSwxNDY6e246IlBhbGV0dGUiLGY6ZnVuY3Rpb24gdlIoSCl7Zm9yKHZhciByZT1ILnJlYWRfc2hp''@;'; + put 'put ''ZnQoMiksWD1bXTtyZS0tID4wOylYLnB1c2goUjgoSCkpO3JldHVybiBYfX0sMTUxOntuOiJTeW5jIn0sMTUyOntuOiJMUHIifSwxNTM6e246IkR4R0NvbCJ9LDE1NDp7bjoiRm5Hcm91cE5hbWUifSwxNTU6e246IkZpbHRlck1vZGUifSwxNTY6e246IkJ1aWx0SW5Gbkdyb3VwQ291bnQiLGY6''@;'; + put 'put ''YzF9LDE1Nzp7bjoiQXV0b0ZpbHRlckluZm8ifSwxNTg6e246IkF1dG9GaWx0ZXIifSwxNjA6e246IlNjbCIsZjprdn0sMTYxOntuOiJTZXR1cCIsZjpmdW5jdGlvbiB6TShILHJlKXt2YXIgWD17fTtyZXR1cm4gcmU8MzJ8fChILmwrPTE2LFguaGVhZGVyPUkyKEgpLFguZm9vdGVyPUkyKEgp''@;'; + put 'put ''LEgubCs9MiksWH19LDE3NDp7bjoiU2Nlbk1hbiJ9LDE3NTp7bjoiU0NFTkFSSU8ifSwxNzY6e246IlN4VmlldyJ9LDE3Nzp7bjoiU3h2ZCJ9LDE3ODp7bjoiU1hWSSJ9LDE4MDp7bjoiU3hJdmQifSwxODE6e246IlNYTEkifSwxODI6e246IlNYUEkifSwxODQ6e246IkRvY1JvdXRlIn0sMTg1''@;'; + put 'put ''OntuOiJSZWNpcE5hbWUifSwxODk6e246Ik11bFJrIixmOmZ1bmN0aW9uIG9tKEgscmUpe2Zvcih2YXIgWD1ILmwrcmUtMix3ZT1ILnJlYWRfc2hpZnQoMikseGU9SC5yZWFkX3NoaWZ0KDIpLEZlPVtdO0gubDxYOylGZS5wdXNoKHRtKEgpKTtpZihILmwhPT1YKXRocm93IG5ldyBFcnJvcigi''@;'; + put 'put ''TXVsUksgcmVhZCBlcnJvciIpO3ZhciBaZT1ILnJlYWRfc2hpZnQoMik7aWYoRmUubGVuZ3RoIT1aZS14ZSsxKXRocm93IG5ldyBFcnJvcigiTXVsUksgbGVuZ3RoIG1pc21hdGNoIik7cmV0dXJue3I6d2UsYzp4ZSxDOlplLHJrcmVjOkZlfX19LDE5MDp7bjoiTXVsQmxhbmsiLGY6ZnVuY3Rp''@;'; + put 'put ''b24gY1IoSCxyZSl7Zm9yKHZhciBYPUgubCtyZS0yLHdlPUgucmVhZF9zaGlmdCgyKSx4ZT1ILnJlYWRfc2hpZnQoMiksRmU9W107SC5sPFg7KUZlLnB1c2goSC5yZWFkX3NoaWZ0KDIpKTtpZihILmwhPT1YKXRocm93IG5ldyBFcnJvcigiTXVsQmxhbmsgcmVhZCBlcnJvciIpO3ZhciBaZT1I''@;'; + put 'put ''LnJlYWRfc2hpZnQoMik7aWYoRmUubGVuZ3RoIT1aZS14ZSsxKXRocm93IG5ldyBFcnJvcigiTXVsQmxhbmsgbGVuZ3RoIG1pc21hdGNoIik7cmV0dXJue3I6d2UsYzp4ZSxDOlplLGl4ZmU6RmV9fX0sMTkzOntuOiJNbXMiLGY6Rmx9LDE5Nzp7bjoiU1hESSJ9LDE5ODp7bjoiU1hEQiJ9LDE5''@;'; + put 'put ''OTp7bjoiU1hGREIifSwyMDA6e246IlNYREJCIn0sMjAxOntuOiJTWE51bSJ9LDIwMjp7bjoiU3hCb29sIixmOnRhfSwyMDM6e246IlN4RXJyIn0sMjA0OntuOiJTWEludCJ9LDIwNTp7bjoiU1hTdHJpbmcifSwyMDY6e246IlNYRHRyIn0sMjA3OntuOiJTeE5pbCJ9LDIwODp7bjoiU1hUYmwi''@;'; + put 'put ''fSwyMDk6e246IlNYVEJSR0lJVE0ifSwyMTA6e246IlN4VGJwZyJ9LDIxMTp7bjoiT2JQcm9qIn0sMjEzOntuOiJTWFN0cmVhbUlEIn0sMjE1OntuOiJEQkNlbGwifSwyMTY6e246IlNYUm5nIn0sMjE3OntuOiJTeElzeG9wZXIifSwyMTg6e246IkJvb2tCb29sIixmOmMxfSwyMjA6e246IkRi''@;'; + put 'put ''T3JQYXJhbVFyeSJ9LDIyMTp7bjoiU2NlbmFyaW9Qcm90ZWN0IixmOnRhfSwyMjI6e246Ik9sZU9iamVjdFNpemUifSwyMjQ6e246IlhGIixmOmZ1bmN0aW9uIEJNKEgscmUsWCl7dmFyIHdlPXt9O3JldHVybiB3ZS5pZm50PUgucmVhZF9zaGlmdCgyKSx3ZS5udW1GbXRJZD1ILnJlYWRfc2hp''@;'; + put 'put ''ZnQoMiksd2UuZmxhZ3M9SC5yZWFkX3NoaWZ0KDIpLHdlLmZTdHlsZT13ZS5mbGFncz4+MiYxLHdlLmRhdGE9ZnVuY3Rpb24gZmIoSCxyZSxYLHdlKXt2YXIgeGU9e30sRmU9SC5yZWFkX3NoaWZ0KDQpLFplPUgucmVhZF9zaGlmdCg0KSxqZT1ILnJlYWRfc2hpZnQoNCksWWU9SC5yZWFkX3No''@;'; + put 'put ''aWZ0KDIpO2lmKHhlLnBhdHRlcm5UeXBlPVFwW2plPj4yNl0sIXdlLmNlbGxTdHlsZXMpcmV0dXJuIHhlO3ZhciBNdD03JkZlO3N3aXRjaChNdCl7Y2FzZSAxOnhlLmhhbGlnbj0ibGVmdCI7YnJlYWs7Y2FzZSAyOnhlLmhhbGlnbj0iY2VudGVyIjticmVhaztjYXNlIDM6eGUuaGFsaWduPSJy''@;'; + put 'put ''aWdodCJ9c3dpdGNoKHhlLmZXcmFwPUZlPj4zJjEsTXQ9RmU+PjQmNyl7Y2FzZSAwOnhlLnZhbGlnbj0idG9wIjticmVhaztjYXNlIDE6eGUudmFsaWduPSJjZW50ZXIiO2JyZWFrO2Nhc2UgMjp4ZS52YWxpZ249ImJvdHRvbSJ9cmV0dXJuIHhlLmZKdXN0TGFzdD1GZT4+NyYxLHhlLnRyb3Q9''@;'; + put 'put ''RmU+PjgmMjU1LHhlLmNJbmRlbnQ9RmU+PjE2JjE1LHhlLmZTaHJpbmtUb0ZpdD1GZT4+MjAmMSx4ZS5pUmVhZE9yZGVyPUZlPj4yMiYyLHhlLmZBdHJOdW09RmU+PjI2JjEseGUuZkF0ckZudD1GZT4+MjcmMSx4ZS5mQXRyQWxjPUZlPj4yOCYxLHhlLmZBdHJCZHI9RmU+PjI5JjEseGUuZkF0''@;'; + put 'put ''clBhdD1GZT4+MzAmMSx4ZS5mQXRyUHJvdD1GZT4+MzEmMSx4ZS5kZ0xlZnQ9MTUmWmUseGUuZGdSaWdodD1aZT4+NCYxNSx4ZS5kZ1RvcD1aZT4+OCYxNSx4ZS5kZ0JvdHRvbT1aZT4+MTImMTUseGUuaWN2TGVmdD1aZT4+MTYmMTI3LHhlLmljdlJpZ2h0PVplPj4yMyYxMjcseGUuZ3JiaXRE''@;'; + put 'put ''aWFnPVplPj4zMCYzLHhlLmljdlRvcD0xMjcmamUseGUuaWN2Qm90dG9tPWplPj43JjEyNyx4ZS5pY3ZEaWFnPWplPj4xNCYxMjcseGUuZGdEaWFnPWplPj4yMSYxNSx4ZS5pY3ZGb3JlPTEyNyZZZSx4ZS5pY3ZCYWNrPVllPj43JjEyNyx4ZS5mc3hCdXR0b249WWU+PjE0JjEseGV9KEgsMCww''@;'; + put 'put ''LFgpLHdlfX0sMjI1OntuOiJJbnRlcmZhY2VIZHIiLGY6ZnVuY3Rpb24gaTYoSCxyZSl7cmV0dXJuIDA9PT1yZXx8SC5yZWFkX3NoaWZ0KDIpLDEyMDB9fSwyMjY6e246IkludGVyZmFjZUVuZCIsZjpGbH0sMjI3OntuOiJTWFZTIn0sMjI5OntuOiJNZXJnZUNlbGxzIixmOmZ1bmN0aW9uIHBS''@;'; + put 'put ''KEgscmUpe2Zvcih2YXIgWD1bXSx3ZT1ILnJlYWRfc2hpZnQoMik7d2UtLTspWC5wdXNoKG42KEgpKTtyZXR1cm4gWH19LDIzMzp7bjoiQmtIaW0ifSwyMzU6e246Ik1zb0RyYXdpbmdHcm91cCJ9LDIzNjp7bjoiTXNvRHJhd2luZyJ9LDIzNzp7bjoiTXNvRHJhd2luZ1NlbGVjdGlvbiJ9LDIz''@;'; + put 'put ''OTp7bjoiUGhvbmV0aWNJbmZvIn0sMjQwOntuOiJTeFJ1bGUifSwyNDE6e246IlNYRXgifSwyNDI6e246IlN4RmlsdCJ9LDI0NDp7bjoiU3hEWEYifSwyNDU6e246IlN4SXRtIn0sMjQ2OntuOiJTeE5hbWUifSwyNDc6e246IlN4U2VsZWN0In0sMjQ4OntuOiJTWFBhaXIifSwyNDk6e246IlN4''@;'; + put 'put ''Rm1sYSJ9LDI1MTp7bjoiU3hGb3JtYXQifSwyNTI6e246IlNTVCIsZjpmdW5jdGlvbiBBdihILHJlKXtmb3IodmFyIFg9SC5sK3JlLHdlPUgucmVhZF9zaGlmdCg0KSx4ZT1ILnJlYWRfc2hpZnQoNCksRmU9W10sWmU9MDtaZSE9eGUmJkgubDxYOysrWmUpRmUucHVzaChvYihIKSk7cmV0dXJu''@;'; + put 'put ''IEZlLkNvdW50PXdlLEZlLlVuaXF1ZT14ZSxGZX19LDI1Mzp7bjoiTGFiZWxTc3QiLGY6ZnVuY3Rpb24gUk0oSCl7dmFyIHJlPUFjKEgpO3JldHVybiByZS5pc3N0PUgucmVhZF9zaGlmdCg0KSxyZX19LDI1NTp7bjoiRXh0U1NUIixmOmZ1bmN0aW9uIHplKEgscmUpe3ZhciBYPXt9O3JldHVy''@;'; + put 'put ''biBYLmRzc3Q9SC5yZWFkX3NoaWZ0KDIpLEgubCs9cmUtMixYfX0sMjU2OntuOiJTWFZERXgifSwyNTk6e246IlNYRm9ybXVsYSJ9LDI5MDp7bjoiU1hEQkV4In0sMzExOntuOiJSUkRJbnNEZWwifSwzMTI6e246IlJSREhlYWQifSwzMTU6e246IlJSRENoZ0NlbGwifSwzMTc6e246IlJSVGFi''@;'; + put 'put ''SWQiLGY6WmN9LDMxODp7bjoiUlJEUmVuU2hlZXQifSwzMTk6e246IlJSU29ydCJ9LDMyMDp7bjoiUlJETW92ZSJ9LDMzMDp7bjoiUlJGb3JtYXQifSwzMzE6e246IlJSQXV0b0ZtdCJ9LDMzMzp7bjoiUlJJbnNlcnRTaCJ9LDMzNDp7bjoiUlJETW92ZUJlZ2luIn0sMzM1OntuOiJSUkRNb3Zl''@;'; + put 'put ''RW5kIn0sMzM2OntuOiJSUkRJbnNEZWxCZWdpbiJ9LDMzNzp7bjoiUlJESW5zRGVsRW5kIn0sMzM4OntuOiJSUkRDb25mbGljdCJ9LDMzOTp7bjoiUlJERGVmTmFtZSJ9LDM0MDp7bjoiUlJEUnN0RXR4cCJ9LDM1MTp7bjoiTFJuZyJ9LDM1Mjp7bjoiVXNlc0VMRnMiLGY6dGF9LDM1Mzp7bjoi''@;'; + put 'put ''RFNGIixmOkZsfSw0MDE6e246IkNVc3IifSw0MDI6e246IkNiVXNyIn0sNDAzOntuOiJVc3JJbmZvIn0sNDA0OntuOiJVc3JFeGNsIn0sNDA1OntuOiJGaWxlTG9jayJ9LDQwNjp7bjoiUlJESW5mbyJ9LDQwNzp7bjoiQkNVc3JzIn0sNDA4OntuOiJVc3JDaGsifSw0MjU6e246IlVzZXJCVmll''@;'; + put 'put ''dyJ9LDQyNjp7bjoiVXNlclNWaWV3QmVnaW4ifSw0Mjc6e246IlVzZXJTVmlld0VuZCJ9LDQyODp7bjoiUlJEVXNlclZpZXcifSw0Mjk6e246IlFzaSJ9LDQzMDp7bjoiU3VwQm9vayIsZjpmdW5jdGlvbiBoUihILHJlLFgpe3ZhciB3ZT1ILmwrcmUseGU9SC5yZWFkX3NoaWZ0KDIpLEZlPUgu''@;'; + put 'put ''cmVhZF9zaGlmdCgyKTtpZihYLnNiY2NoPUZlLDEwMjU9PUZlfHwxNDg0OT09RmUpcmV0dXJuW0ZlLHhlXTtpZihGZTwxfHxGZT4yNTUpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIFN1cEJvb2sgdHlwZTogIitGZSk7Zm9yKHZhciBaZT1jdShILEZlKSxqZT1bXTt3ZT5ILmw7KWplLnB1''@;'; + put 'put ''c2goeDQoSCkpO3JldHVybltGZSx4ZSxaZSxqZV19fSw0MzE6e246IlByb3Q0UmV2IixmOnRhfSw0MzI6e246IkNvbmRGbXQifSw0MzM6e246IkNGIn0sNDM0OntuOiJEVmFsIn0sNDM3OntuOiJEQ29uQmluIn0sNDM4OntuOiJUeE8iLGY6ZnVuY3Rpb24gTk0oSCxyZSxYKXt2YXIgd2U9SC5s''@;'; + put 'put ''LHhlPSIiLEZlPS0xO3RyeXtILmwrPTQsLTE9PVswLDUsNywxMSwxMiwxNF0uaW5kZXhPZigoWC5sYXN0b2JqfHx7Y21vOlswLDBdfSkuY21vWzFdKT9ILmwrPTY6ZnVuY3Rpb24gTDgoSCl7dmFyIHJlPUgucmVhZF9zaGlmdCgxKTtILmwrKzt2YXIgWD1ILnJlYWRfc2hpZnQoMik7SC5sKz0y''@;'; + put 'put ''fShIKTt2YXIgWWU9SC5yZWFkX3NoaWZ0KDIpO0gucmVhZF9zaGlmdCgyKSxGZT1ILnJlYWRfc2hpZnQoMik7dmFyIHh0PUgucmVhZF9zaGlmdCgyKTtILmwrPXh0O2Zvcih2YXIgUnQ9MTtSdDxILmxlbnMubGVuZ3RoLTE7KytSdCl7aWYoSC5sLXdlIT1ILmxlbnNbUnRdKXRocm93IG5ldyBF''@;'; + put 'put ''cnJvcigiVHhPOiBiYWQgY29udGludWUgcmVjb3JkIik7dmFyIFl0PUhbSC5sXTtpZigoeGUrPWN1KEgsSC5sZW5zW1J0KzFdLUgubGVuc1tSdF0tMSkpLmxlbmd0aD49KFl0P1llOjIqWWUpKWJyZWFrfWlmKHhlLmxlbmd0aCE9PVllJiZ4ZS5sZW5ndGghPT0yKlllKXRocm93IG5ldyBFcnJv''@;'; + put 'put ''cigiY2NoVGV4dDogIitZZSsiICE9ICIreGUubGVuZ3RoKTtyZXR1cm4gSC5sPXdlK3JlLHt0OnhlLGlmbnQ6RmV9fWNhdGNoKENuKXtyZXR1cm4gSC5sPXdlK3JlLHt0OnhlLGlmbnQ6RmV9fX19LDQzOTp7bjoiUmVmcmVzaEFsbCIsZjp0YX0sNDQwOntuOiJITGluayIsZjpmdW5jdGlvbiBM''@;'; + put 'put ''NChILHJlKXt2YXIgWD1uNihIKTtILmwrPTE2O3ZhciB3ZT1mdW5jdGlvbiBraChILHJlKXt2YXIgWD1ILmwrcmUsd2U9SC5yZWFkX3NoaWZ0KDQpO2lmKDIhPT13ZSl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBzdHJlYW1WZXJzaW9uOiAiK3dlKTt2YXIgeGU9SC5yZWFkX3NoaWZ0''@;'; + put 'put ''KDIpO0gubCs9Mjt2YXIgRmUsWmUsamUsWWUseHQsUnQsTXQ9IiI7MTYmeGUmJihGZT1xcChIKSksMTI4JnhlJiYoWmU9cXAoSCkpLDI1Nz09KDI1NyZ4ZSkmJihqZT1xcChIKSksMT09KDI1NyZ4ZSkmJihZZT1mdW5jdGlvbiBPOChILHJlKXt2YXIgWD1ILnJlYWRfc2hpZnQoMTYpO3N3aXRj''@;'; + put 'put ''aChYKXtjYXNlImUwYzllYTc5ZjliYWNlMTE4YzgyMDBhYTAwNGJhOTBiIjpyZXR1cm4gZnVuY3Rpb24gTE0oSCl7dmFyIHJlPUgucmVhZF9zaGlmdCg0KSxYPUgubCx3ZT0hMTtyZT4yNCYmKEgubCs9cmUtMjQsIjc5NTg4MWY0M2IxZDdmNDhhZjJjODI1ZGM0ODUyNzYzIj09PUgucmVhZF9z''@;'; + put 'put ''aGlmdCgxNikmJih3ZT0hMCksSC5sPVgpO3ZhciB4ZT1ILnJlYWRfc2hpZnQoKHdlP3JlLTI0OnJlKT4+MSwidXRmMTZsZSIpLnJlcGxhY2UoVCwiIik7cmV0dXJuIHdlJiYoSC5sKz0yNCkseGV9KEgpO2Nhc2UiMDMwMzAwMDAwMDAwMDAwMGMwMDAwMDAwMDAwMDAwNDYiOnJldHVybiBmdW5j''@;'; + put 'put ''dGlvbiAkcChIKXtmb3IodmFyIHJlPUgucmVhZF9zaGlmdCgyKSxYPSIiO3JlLS0gPjA7KVgrPSIuLi8iO3ZhciB3ZT1ILnJlYWRfc2hpZnQoMCwibHBzdHItYW5zaSIpO2lmKEgubCs9Miw1NzAwNSE9SC5yZWFkX3NoaWZ0KDIpKXRocm93IG5ldyBFcnJvcigiQmFkIEZpbGVNb25pa2VyIik7''@;'; + put 'put ''aWYoMD09PUgucmVhZF9zaGlmdCg0KSlyZXR1cm4gWCt3ZS5yZXBsYWNlKC9cXC9nLCIvIik7dmFyIEZlPUgucmVhZF9zaGlmdCg0KTtpZigzIT1ILnJlYWRfc2hpZnQoMikpdGhyb3cgbmV3IEVycm9yKCJCYWQgRmlsZU1vbmlrZXIiKTtyZXR1cm4gWCtILnJlYWRfc2hpZnQoRmU+PjEsInV0''@;'; + put 'put ''ZjE2bGUiKS5yZXBsYWNlKFQsIiIpfShIKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgTW9uaWtlciAiK1gpfX0oSCkpLDgmeGUmJihNdD1xcChIKSksMzImeGUmJih4dD1ILnJlYWRfc2hpZnQoMTYpKSw2NCZ4ZSYmKFJ0PVQ4KEgpKSxILmw9WDt2YXIgWXQ9WmV8fGpl''@;'; + put 'put ''fHxZZXx8IiI7WXQmJk10JiYoWXQrPSIjIitNdCksWXR8fChZdD0iIyIrTXQpLDImeGUmJiIvIj09WXQuY2hhckF0KDApJiYiLyIhPVl0LmNoYXJBdCgxKSYmKFl0PSJmaWxlOi8vIitZdCk7dmFyIG5uPXtUYXJnZXQ6WXR9O3JldHVybiB4dCYmKG5uLmd1aWQ9eHQpLFJ0JiYobm4udGltZT1S''@;'; + put 'put ''dCksRmUmJihubi5Ub29sdGlwPUZlKSxubn0oSCxyZS0yNCk7cmV0dXJuW1gsd2VdfX0sNDQxOntuOiJMZWwifSw0NDI6e246IkNvZGVOYW1lIixmOng0fSw0NDM6e246IlNYRkRCVHlwZSJ9LDQ0NDp7bjoiUHJvdDRSZXZQYXNzIixmOmMxfSw0NDU6e246Ik9iTm9NYWNyb3MifSw0NDY6e246''@;'; + put 'put ''IkR2In0sNDQ4OntuOiJFeGNlbDlGaWxlIixmOkZsfSw0NDk6e246IlJlY2FsY0lkIixmOmZ1bmN0aW9uIFBzKEgpe3JldHVybiBILnJlYWRfc2hpZnQoMiksSC5yZWFkX3NoaWZ0KDQpfSxyOjJ9LDQ1MDp7bjoiRW50RXhVMiIsZjpGbH0sNTEyOntuOiJEaW1lbnNpb25zIixmOmltfSw1MTM6''@;'; + put 'put ''e246IkJsYW5rIixmOndSfSw1MTU6e246Ik51bWJlciIsZjpmdW5jdGlvbiBIOChILHJlLFgpe1guYmlmZmd1ZXNzJiYyPT1YLmJpZmYmJihYLmJpZmY9NSk7dmFyIHdlPUFjKEgpLHhlPUkyKEgpO3JldHVybiB3ZS52YWw9eGUsd2V9fSw1MTY6e246IkxhYmVsIixmOmZ1bmN0aW9uIGw2KEgs''@;'; + put 'put ''cmUsWCl7WC5iaWZmZ3Vlc3MmJjI9PVguYmlmZiYmKFguYmlmZj01KTt2YXIgeGU9QWMoSCk7Mj09WC5iaWZmJiZILmwrKzt2YXIgRmU9eDQoSCwwLFgpO3JldHVybiB4ZS52YWw9RmUseGV9fSw1MTc6e246IkJvb2xFcnIiLGY6YW19LDUxOTp7bjoiU3RyaW5nIixmOno4fSw1MjA6e246IlJv''@;'; + put 'put ''dyIsZjpmdW5jdGlvbiBWdChIKXt2YXIgcmU9e307cmUucj1ILnJlYWRfc2hpZnQoMikscmUuYz1ILnJlYWRfc2hpZnQoMikscmUuY250PUgucmVhZF9zaGlmdCgyKS1yZS5jO3ZhciBYPUgucmVhZF9zaGlmdCgyKTtILmwrPTQ7dmFyIHdlPUgucmVhZF9zaGlmdCgxKTtILmwrPTE7dmFyIHhl''@;'; + put 'put ''PUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gcmUuaXhmZT00MDk1JnhlLDcmd2UmJihyZS5sZXZlbD03JndlKSwzMiZ3ZSYmKHJlLmhpZGRlbj0hMCksNjQmd2UmJihyZS5ocHQ9WC8yMCkscmV9fSw1MjM6e246IkluZGV4In0sNTQ1OntuOiJBcnJheSIsZjpkYn0sNTQ5OntuOiJEZWZhdWx0Um93''@;'; + put 'put ''SGVpZ2h0IixmOldjfSw1NjY6e246IlRhYmxlIn0sNTc0OntuOiJXaW5kb3cyIixmOmZ1bmN0aW9uIGFSKEgscmUsWCl7aWYoWCYmWC5iaWZmPj0yJiZYLmJpZmY8NSlyZXR1cm57fTt2YXIgd2U9SC5yZWFkX3NoaWZ0KDIpO3JldHVybntSVEw6NjQmd2UsZ3JpZDohISgyJndlKSxmcm96ZW46''@;'; + put 'put ''ISEoOCZ3ZSl9fX0sNjM4OntuOiJSSyIsZjpmdW5jdGlvbiB1UihIKXt2YXIgcmU9SC5yZWFkX3NoaWZ0KDIpLFg9SC5yZWFkX3NoaWZ0KDIpLHdlPXRtKEgpO3JldHVybntyOnJlLGM6WCxpeGZlOndlWzBdLHJrbnVtOndlWzFdfX19LDY1OTp7bjoiU3R5bGUiLGY6ZnVuY3Rpb24gUE0oSCxy''@;'; + put 'put ''ZSxYKXtyZXR1cm4gSC5sKz1yZSx7fX19LDEwNDg6e246IkJpZ05hbWUifSwxMDU0OntuOiJGb3JtYXQiLGY6ZnVuY3Rpb24gc1IoSCxyZSxYKXtyZXR1cm5bSC5yZWFkX3NoaWZ0KDIpLGRmKEgsMCxYKV19fSwxMDg0OntuOiJDb250aW51ZUJpZ05hbWUifSwxMjEyOntuOiJTaHJGbWxhIixm''@;'; + put 'put ''OmZ1bmN0aW9uIENpKEgscmUsWCl7dmFyIHdlPVQ0KEgpO0gubCsrO3ZhciB4ZT1ILnJlYWRfc2hpZnQoMSk7cmV0dXJuW3M1KEgscmUtPTgsWCkseGUsd2VdfX0sMjA0ODp7bjoiSExpbmtUb29sdGlwIixmOmZ1bmN0aW9uIGpNKEgscmUpe0gucmVhZF9zaGlmdCgyKTt2YXIgWD1uNihIKSx3''@;'; + put 'put ''ZT1ILnJlYWRfc2hpZnQoKHJlLTEwKS8yLCJkYmNzLWNvbnQiKTtyZXR1cm5bWCx3ZT13ZS5yZXBsYWNlKFQsIiIpXX19LDIwNDk6e246IldlYlB1YiJ9LDIwNTA6e246IlFzaVNYVGFnIn0sMjA1MTp7bjoiREJRdWVyeUV4dCJ9LDIwNTI6e246IkV4dFN0cmluZyJ9LDIwNTM6e246IlR4dFFy''@;'; + put 'put ''eSJ9LDIwNTQ6e246IlFzaXIifSwyMDU1OntuOiJRc2lmIn0sMjA1Njp7bjoiUlJEVFFTSUYifSwyMDU3OntuOiJCT0YiLGY6RHV9LDIwNTg6e246Ik9sZURiQ29ubiJ9LDIwNTk6e246IldPcHQifSwyMDYwOntuOiJTWFZpZXdFeCJ9LDIwNjE6e246IlNYVEgifSwyMDYyOntuOiJTWFBJRXgi''@;'; + put 'put ''fSwyMDYzOntuOiJTWFZEVEV4In0sMjA2NDp7bjoiU1hWaWV3RXg5In0sMjA2Njp7bjoiQ29udGludWVGcnQifSwyMDY3OntuOiJSZWFsVGltZURhdGEifSwyMTI4OntuOiJDaGFydEZydEluZm8ifSwyMTI5OntuOiJGcnRXcmFwcGVyIn0sMjEzMDp7bjoiU3RhcnRCbG9jayJ9LDIxMzE6e246''@;'; + put 'put ''IkVuZEJsb2NrIn0sMjEzMjp7bjoiU3RhcnRPYmplY3QifSwyMTMzOntuOiJFbmRPYmplY3QifSwyMTM0OntuOiJDYXRMYWIifSwyMTM1OntuOiJZTXVsdCJ9LDIxMzY6e246IlNYVmlld0xpbmsifSwyMTM3OntuOiJQaXZvdENoYXJ0Qml0cyJ9LDIxMzg6e246IkZydEZvbnRMaXN0In0sMjE0''@;'; + put 'put ''Njp7bjoiU2hlZXRFeHQifSwyMTQ3OntuOiJCb29rRXh0IixyOjEyfSwyMTQ4OntuOiJTWEFkZGwifSwyMTQ5OntuOiJDckVyciJ9LDIxNTA6e246IkhGUGljdHVyZSJ9LDIxNTE6e246IkZlYXRIZHIiLGY6Rmx9LDIxNTI6e246IkZlYXQifSwyMTU0OntuOiJEYXRhTGFiRXh0In0sMjE1NTp7''@;'; + put 'put ''bjoiRGF0YUxhYkV4dENvbnRlbnRzIn0sMjE1Njp7bjoiQ2VsbFdhdGNoIn0sMjE2MTp7bjoiRmVhdEhkcjExIn0sMjE2Mjp7bjoiRmVhdHVyZTExIn0sMjE2NDp7bjoiRHJvcERvd25PYmpJZHMifSwyMTY1OntuOiJDb250aW51ZUZydDExIn0sMjE2Njp7bjoiRENvbm4ifSwyMTY3OntuOiJM''@;'; + put 'put ''aXN0MTIifSwyMTY4OntuOiJGZWF0dXJlMTIifSwyMTY5OntuOiJDb25kRm10MTIifSwyMTcwOntuOiJDRjEyIn0sMjE3MTp7bjoiQ0ZFeCJ9LDIxNzI6e246IlhGQ1JDIixmOmZ1bmN0aW9uIHVtKEgpe0gubCs9Mjt2YXIgcmU9e2N4ZnM6MCxjcmM6MH07cmV0dXJuIHJlLmN4ZnM9SC5yZWFk''@;'; + put 'put ''X3NoaWZ0KDIpLHJlLmNyYz1ILnJlYWRfc2hpZnQoNCkscmV9LHI6MTJ9LDIxNzM6e246IlhGRXh0IixmOmZ1bmN0aW9uIHRCKEgscmUpe0gubCs9Mjt2YXIgd2U9SC5yZWFkX3NoaWZ0KDIpO0gubCs9Mjtmb3IodmFyIHhlPUgucmVhZF9zaGlmdCgyKSxGZT1bXTt4ZS0tID4wOylGZS5wdXNo''@;'; + put 'put ''KGVCKEgpKTtyZXR1cm57aXhmZTp3ZSxleHQ6RmV9fSxyOjEyfSwyMTc0OntuOiJBdXRvRmlsdGVyMTIifSwyMTc1OntuOiJDb250aW51ZUZydDEyIn0sMjE4MDp7bjoiTURUSW5mbyJ9LDIxODE6e246Ik1EWFN0ciJ9LDIxODI6e246Ik1EWFR1cGxlIn0sMjE4Mzp7bjoiTURYU2V0In0sMjE4''@;'; + put 'put ''NDp7bjoiTURYUHJvcCJ9LDIxODU6e246Ik1EWEtQSSJ9LDIxODY6e246Ik1EQiJ9LDIxODc6e246IlBMViJ9LDIxODg6e246IkNvbXBhdDEyIixmOnRhLHI6MTJ9LDIxODk6e246IkRYRiJ9LDIxOTA6e246IlRhYmxlU3R5bGVzIixyOjEyfSwyMTkxOntuOiJUYWJsZVN0eWxlIn0sMjE5Mjp7''@;'; + put 'put ''bjoiVGFibGVTdHlsZUVsZW1lbnQifSwyMTk0OntuOiJTdHlsZUV4dCJ9LDIxOTU6e246Ik5hbWVQdWJsaXNoIn0sMjE5Njp7bjoiTmFtZUNtdCIsZjpmdW5jdGlvbiBkUihILHJlLFgpe2lmKCEoWC5iaWZmPDgpKXt2YXIgd2U9SC5yZWFkX3NoaWZ0KDIpLHhlPUgucmVhZF9zaGlmdCgyKTty''@;'; + put 'put ''ZXR1cm5bY3UoSCx3ZSxYKSxjdShILHhlLFgpXX1ILmwrPXJlfSxyOjEyfSwyMTk3OntuOiJTb3J0RGF0YSJ9LDIxOTg6e246IlRoZW1lIixmOmZ1bmN0aW9uICRSKEgscmUsWCl7dmFyIHdlPUgubCtyZTtpZigxMjQyMjYhPT1ILnJlYWRfc2hpZnQoNCkpe2lmKCFYLmNlbGxTdHlsZXMpcmV0''@;'; + put 'put ''dXJuIHZvaWQoSC5sPXdlKTt2YXIgWmUsRmU9SC5zbGljZShILmwpO0gubD13ZTt0cnl7WmU9bW4oRmUse3R5cGU6ImFycmF5In0pfWNhdGNoKFllKXtyZXR1cm59dmFyIGplPVVuKFplLCJ0aGVtZS90aGVtZS90aGVtZTEueG1sIiwhMCk7aWYoamUpcmV0dXJuIEZ2KGplLFgpfX0scjoxMn0s''@;'; + put 'put ''MjE5OTp7bjoiR1VJRFR5cGVMaWIifSwyMjAwOntuOiJGbkdycDEyIn0sMjIwMTp7bjoiTmFtZUZuR3JwMTIifSwyMjAyOntuOiJNVFJTZXR0aW5ncyIsZjpmdW5jdGlvbiBoMihIKXtyZXR1cm5bMCE9PUgucmVhZF9zaGlmdCg0KSwwIT09SC5yZWFkX3NoaWZ0KDQpLEgucmVhZF9zaGlmdCg0''@;'; + put 'put ''KV19LHI6MTJ9LDIyMDM6e246IkNvbXByZXNzUGljdHVyZXMiLGY6Rmx9LDIyMDQ6e246IkhlYWRlckZvb3RlciJ9LDIyMDU6e246IkNydExheW91dDEyIn0sMjIwNjp7bjoiQ3J0TWxGcnQifSwyMjA3OntuOiJDcnRNbEZydENvbnRpbnVlIn0sMjIxMTp7bjoiRm9yY2VGdWxsQ2FsY3VsYXRp''@;'; + put 'put ''b24iLGY6ZnVuY3Rpb24gUm4oSCl7dmFyIHJlPWZ1bmN0aW9uIGFiKEgpe3ZhciByZT1ILnJlYWRfc2hpZnQoMiksWD1ILnJlYWRfc2hpZnQoMik7cmV0dXJuIEgubCs9OCx7dHlwZTpyZSxmbGFnczpYfX0oSCk7aWYoMjIxMSE9cmUudHlwZSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgRnV0''@;'; + put 'put ''dXJlIFJlY29yZCAiK3JlLnR5cGUpO3JldHVybiAwIT09SC5yZWFkX3NoaWZ0KDQpfX0sMjIxMjp7bjoiU2hhcGVQcm9wc1N0cmVhbSJ9LDIyMTM6e246IlRleHRQcm9wc1N0cmVhbSJ9LDIyMTQ6e246IlJpY2hUZXh0U3RyZWFtIn0sMjIxNTp7bjoiQ3J0TGF5b3V0MTJBIn0sNDA5Nzp7bjoi''@;'; + put 'put ''VW5pdHMifSw0MDk4OntuOiJDaGFydCJ9LDQwOTk6e246IlNlcmllcyJ9LDQxMDI6e246IkRhdGFGb3JtYXQifSw0MTAzOntuOiJMaW5lRm9ybWF0In0sNDEwNTp7bjoiTWFya2VyRm9ybWF0In0sNDEwNjp7bjoiQXJlYUZvcm1hdCJ9LDQxMDc6e246IlBpZUZvcm1hdCJ9LDQxMDg6e246IkF0''@;'; + put 'put ''dGFjaGVkTGFiZWwifSw0MTA5OntuOiJTZXJpZXNUZXh0In0sNDExNjp7bjoiQ2hhcnRGb3JtYXQifSw0MTE3OntuOiJMZWdlbmQifSw0MTE4OntuOiJTZXJpZXNMaXN0In0sNDExOTp7bjoiQmFyIn0sNDEyMDp7bjoiTGluZSJ9LDQxMjE6e246IlBpZSJ9LDQxMjI6e246IkFyZWEifSw0MTIz''@;'; + put 'put ''OntuOiJTY2F0dGVyIn0sNDEyNDp7bjoiQ3J0TGluZSJ9LDQxMjU6e246IkF4aXMifSw0MTI2OntuOiJUaWNrIn0sNDEyNzp7bjoiVmFsdWVSYW5nZSJ9LDQxMjg6e246IkNhdFNlclJhbmdlIn0sNDEyOTp7bjoiQXhpc0xpbmUifSw0MTMwOntuOiJDcnRMaW5rIn0sNDEzMjp7bjoiRGVmYXVs''@;'; + put 'put ''dFRleHQifSw0MTMzOntuOiJUZXh0In0sNDEzNDp7bjoiRm9udFgiLGY6YzF9LDQxMzU6e246Ik9iamVjdExpbmsifSw0MTQ2OntuOiJGcmFtZSJ9LDQxNDc6e246IkJlZ2luIn0sNDE0ODp7bjoiRW5kIn0sNDE0OTp7bjoiUGxvdEFyZWEifSw0MTU0OntuOiJDaGFydDNkIn0sNDE1Njp7bjoi''@;'; + put 'put ''UGljRiJ9LDQxNTc6e246IkRyb3BCYXIifSw0MTU4OntuOiJSYWRhciJ9LDQxNTk6e246IlN1cmYifSw0MTYwOntuOiJSYWRhckFyZWEifSw0MTYxOntuOiJBeGlzUGFyZW50In0sNDE2Mzp7bjoiTGVnZW5kRXhjZXB0aW9uIn0sNDE2NDp7bjoiU2h0UHJvcHMiLGY6ZnVuY3Rpb24gV3ooSCxy''@;'; + put 'put ''ZSxYKXt2YXIgd2U9e2FyZWE6ITF9O2lmKDUhPVguYmlmZilyZXR1cm4gSC5sKz1yZSx3ZTt2YXIgeGU9SC5yZWFkX3NoaWZ0KDEpO3JldHVybiBILmwrPTMsMTYmeGUmJih3ZS5hcmVhPSEwKSx3ZX19LDQxNjU6e246IlNlclRvQ3J0In0sNDE2Njp7bjoiQXhlc1VzZWQifSw0MTY4OntuOiJT''@;'; + put 'put ''QmFzZVJlZiJ9LDQxNzA6e246IlNlclBhcmVudCJ9LDQxNzE6e246IlNlckF1eFRyZW5kIn0sNDE3NDp7bjoiSUZtdFJlY29yZCJ9LDQxNzU6e246IlBvcyJ9LDQxNzY6e246IkFsUnVucyJ9LDQxNzc6e246IkJSQUkifSw0MTg3OntuOiJTZXJBdXhFcnJCYXIifSw0MTg4OntuOiJDbHJ0Q2xp''@;'; + put 'put ''ZW50IixmOmZ1bmN0aW9uIG1SKEgpe2Zvcih2YXIgcmU9SC5yZWFkX3NoaWZ0KDIpLFg9W107cmUtLSA+MDspWC5wdXNoKFI4KEgpKTtyZXR1cm4gWH19LDQxODk6e246IlNlckZtdCJ9LDQxOTE6e246IkNoYXJ0M0RCYXJTaGFwZSJ9LDQxOTI6e246IkZiaSJ9LDQxOTM6e246IkJvcFBvcCJ9''@;'; + put 'put ''LDQxOTQ6e246IkF4Y0V4dCJ9LDQxOTU6e246IkRhdCJ9LDQxOTY6e246IlBsb3RHcm93dGgifSw0MTk3OntuOiJTSUluZGV4In0sNDE5ODp7bjoiR2VsRnJhbWUifSw0MTk5OntuOiJCb3BQb3BDdXN0b20ifSw0MjAwOntuOiJGYmkyIn0sMDp7bjoiRGltZW5zaW9ucyIsZjppbX0sMTp7bjoi''@;'; + put 'put ''QklGRjJCTEFOSyJ9LDI6e246IkJJRkYySU5UIixmOmZ1bmN0aW9uIHBiKEgpe3ZhciByZT1BYyhIKTsrK0gubDt2YXIgWD1ILnJlYWRfc2hpZnQoMik7cmV0dXJuIHJlLnQ9Im4iLHJlLnZhbD1YLHJlfX0sMzp7bjoiQklGRjJOVU0iLGY6ZnVuY3Rpb24gV00oSCl7dmFyIHJlPUFjKEgpOysr''@;'; + put 'put ''SC5sO3ZhciBYPUkyKEgpO3JldHVybiByZS50PSJuIixyZS52YWw9WCxyZX19LDQ6e246IkJJRkYyU1RSIixmOmZ1bmN0aW9uIFl6KEgscmUsWCl7WC5iaWZmZ3Vlc3MmJjU9PVguYmlmZiYmKFguYmlmZj0yKTt2YXIgd2U9QWMoSCk7KytILmw7dmFyIHhlPWRmKEgsMCxYKTtyZXR1cm4gd2Uu''@;'; + put 'put ''dD0ic3RyIix3ZS52YWw9eGUsd2V9fSw1OntuOiJCb29sRXJyIixmOmFtfSw3OntuOiJTdHJpbmciLGY6ZnVuY3Rpb24gWU0oSCl7dmFyIHJlPUgucmVhZF9zaGlmdCgxKTtyZXR1cm4gMD09PXJlPyhILmwrKywiIik6SC5yZWFkX3NoaWZ0KHJlLCJzYmNzLWNvbnQiKX19LDg6e246IkJJRkYy''@;'; + put 'put ''Uk9XIn0sOTp7bjoiQk9GIixmOkR1fSwxMTp7bjoiSW5kZXgifSwyMjp7bjoiRXh0ZXJuQ291bnQiLGY6YzF9LDMwOntuOiJCSUZGMkZPUk1BVCIsZjpZY30sMzE6e246IkJJRkYyRk1UQ05UIn0sMzI6e246IkJJRkYyQ09MSU5GTyJ9LDMzOntuOiJBcnJheSIsZjpkYn0sMzY6e246IkNPTFdJ''@;'; + put 'put ''RFRIIn0sMzc6e246IkRlZmF1bHRSb3dIZWlnaHQiLGY6V2N9LDUwOntuOiJCSUZGMkZPTlRYVFJBIixmOmZ1bmN0aW9uIEc4KEgscmUpe0gubCs9NixILmwrPTIsSC5sKz0xLEgubCs9MyxILmwrPTEsSC5sKz1yZS0xM319LDYyOntuOiJCSUZGMldJTkRPVzIifSw1Mjp7bjoiRERFT2JqTmFt''@;'; + put 'put ''ZSJ9LDY3OntuOiJCSUZGMlhGIn0sNjg6e246IkJJRkYyWEZJTkRFWCIsZjpjMX0sNjk6e246IkJJRkYyRk9OVENMUiJ9LDg2OntuOiJCSUZGNEZNVENOVCJ9LDEyNjp7bjoiUksifSwxMjc6e246IkltRGF0YSIsZjpmdW5jdGlvbiBHTShIKXt2YXIgcmU9SC5yZWFkX3NoaWZ0KDIpLFg9SC5y''@;'; + put 'put ''ZWFkX3NoaWZ0KDIpLHdlPUgucmVhZF9zaGlmdCg0KSx4ZT17Zm10OnJlLGVudjpYLGxlbjp3ZSxkYXRhOkguc2xpY2UoSC5sLEgubCt3ZSl9O3JldHVybiBILmwrPXdlLHhlfX0sMTM1OntuOiJBZGRpbiJ9LDEzNjp7bjoiRWRnIn0sMTM3OntuOiJQdWIifSwxNDU6e246IlN1YiJ9LDE0ODp7''@;'; + put 'put ''bjoiTEhSZWNvcmQifSwxNDk6e246IkxITkdyYXBoIn0sMTUwOntuOiJTb3VuZCJ9LDE2OTp7bjoiQ29vcmRMaXN0In0sMTcxOntuOiJHQ1cifSwxODg6e246IlNockZtbGEifSwxOTE6e246IlRvb2xiYXJIZHIifSwxOTI6e246IlRvb2xiYXJFbmQifSwxOTQ6e246IkFkZE1lbnUifSwxOTU6''@;'; + put 'put ''e246IkRlbE1lbnUifSwyMTQ6e246IlJTdHJpbmciLGY6ZnVuY3Rpb24gY20oSCxyZSxYKXt2YXIgd2U9SC5sK3JlLHhlPUFjKEgpLEZlPUgucmVhZF9zaGlmdCgyKSxaZT1jdShILEZlLFgpO3JldHVybiBILmw9d2UseGUudD0ic3RyIix4ZS52YWw9WmUseGV9fSwyMjM6e246IlVERGVzYyJ9''@;'; + put 'put ''LDIzNDp7bjoiVGFiSWRDb25mIn0sMzU0OntuOiJYTDVNb2RpZnkifSw0MjE6e246IkZpbGVTaGFyaW5nMiJ9LDUxODp7bjoiRm9ybXVsYSIsZjp1NX0sNTIxOntuOiJCT0YiLGY6RHV9LDUzNjp7bjoiTGJsIixmOmhifSw1NDc6e246IkV4dGVybk5hbWUiLGY6Rk19LDU2MTp7bjoiRm9udCJ9''@;'; + put 'put ''LDU3OTp7bjoiQklGRjNYRiJ9LDEwMzA6e246IkZvcm11bGEiLGY6dTV9LDEwMzM6e246IkJPRiIsZjpEdX0sMTA5MTp7bjoiQklGRjRYRiJ9LDIxNTc6e246IkZlYXRJbmZvIn0sMjE2Mzp7bjoiRmVhdEluZm8xMSJ9LDIxNzc6e246IlNYQWRkbDEyIn0sMjI0MDp7bjoiQXV0b1dlYlB1YiJ9''@;'; + put 'put ''LDIyNDE6e246Ikxpc3RPYmoifSwyMjQyOntuOiJMaXN0RmllbGQifSwyMjQzOntuOiJMaXN0RFYifSwyMjQ0OntuOiJMaXN0Q29uZEZtdCJ9LDIyNDU6e246Ikxpc3RDRiJ9LDIyNDY6e246IkZNUXJ5In0sMjI0Nzp7bjoiRk1TUXJ5In0sMjI0ODp7bjoiUExWIn0sMjI0OTp7bjoiTG5FeHQi''@;'; + put 'put ''fSwyMjUwOntuOiJNa3JFeHQifSwyMjUxOntuOiJDcnRDb29wdCJ9LDIyNjI6e246IkZSVEFyY2hJZCQiLHI6MTJ9LDI5MjgyOnt9fSxGMz1fdChObCwibiIpO2Z1bmN0aW9uIHMwKEgscmUsWCx3ZSl7dmFyIHhlPStyZXx8K0YzW3JlXTtpZighaXNOYU4oeGUpKXt2YXIgRmU9d2V8fChYfHxb''@;'; + put 'put ''XSkubGVuZ3RofHwwLFplPUgubmV4dCg0KTtaZS53cml0ZV9zaGlmdCgyLHhlKSxaZS53cml0ZV9zaGlmdCgyLEZlKSxGZT4wJiZUMihYKSYmSC5wdXNoKFgpfX1mdW5jdGlvbiBpcyhILHJlLFgpe3JldHVybiBIfHwoSD1SaSg3KSksSC53cml0ZV9zaGlmdCgyLHJlKSxILndyaXRlX3NoaWZ0''@;'; + put 'put ''KDIsWCksSC53cml0ZV9zaGlmdCgyLDApLEgud3JpdGVfc2hpZnQoMSwwKSxIfWZ1bmN0aW9uIEVBKEgscmUsWCx3ZSl7aWYobnVsbCE9cmUudilzd2l0Y2gocmUudCl7Y2FzZSJkIjpjYXNlIm4iOnZhciB4ZT0iZCI9PXJlLnQ/ZnQoZG4ocmUudikpOnJlLnY7cmV0dXJuIHZvaWQoeGU9PSgw''@;'; + put 'put ''fHhlKSYmeGU+PTAmJnhlPDY1NTM2P3MwKEgsMixmdW5jdGlvbiBfUihILHJlLFgpe3ZhciB3ZT1SaSg5KTtyZXR1cm4gaXMod2UsSCxyZSksd2Uud3JpdGVfc2hpZnQoMixYKSx3ZX0oWCx3ZSx4ZSkpOnMwKEgsMyxmdW5jdGlvbiBVeihILHJlLFgpe3ZhciB3ZT1SaSgxNSk7cmV0dXJuIGlz''@;'; + put 'put ''KHdlLEgscmUpLHdlLndyaXRlX3NoaWZ0KDgsWCwiZiIpLHdlfShYLHdlLHhlKSkpO2Nhc2UiYiI6Y2FzZSJlIjpyZXR1cm4gdm9pZCBzMChILDUsZnVuY3Rpb24gQ2MoSCxyZSxYLHdlKXt2YXIgeGU9UmkoOSk7cmV0dXJuIGlzKHhlLEgscmUpLFoxKFgsd2V8fCJiIix4ZSkseGV9KFgsd2Us''@;'; + put 'put ''cmUudixyZS50KSk7Y2FzZSJzIjpjYXNlInN0ciI6cmV0dXJuIHZvaWQgczAoSCw0LGZ1bmN0aW9uIHB1KEgscmUsWCl7dmFyIHdlPVJpKDgrMipYLmxlbmd0aCk7cmV0dXJuIGlzKHdlLEgscmUpLHdlLndyaXRlX3NoaWZ0KDEsWC5sZW5ndGgpLHdlLndyaXRlX3NoaWZ0KFgubGVuZ3RoLFgs''@;'; + put 'put ''InNiY3MiKSx3ZS5sPHdlLmxlbmd0aD93ZS5zbGljZSgwLHdlLmwpOndlfShYLHdlLChyZS52fHwiIikuc2xpY2UoMCwyNTUpKSl9czAoSCwxLGlzKG51bGwsWCx3ZSkpfWZ1bmN0aW9uIG9UKEgscmUsWCx3ZSx4ZSl7dmFyIEZlPTE2K1kxKHhlLmNlbGxYZnMseGUuY2VsbFN0eWxlWGZzLHJl''@;'; + put 'put ''LHhlKTtpZihudWxsIT1yZS52fHxyZS5iZilpZihyZS5iZilzMChILCJGb3JtdWxhIixmdW5jdGlvbiBmRyhILHJlLFgsd2UseGUpe3ZhciBGZT1HZihyZSxYLHhlKSxaZT1mdW5jdGlvbiBMQihIKXtpZihudWxsPT1IKXt2YXIgcmU9UmkoOCk7cmV0dXJuIHJlLndyaXRlX3NoaWZ0KDEsMyks''@;'; + put 'put ''cmUud3JpdGVfc2hpZnQoMSwwKSxyZS53cml0ZV9zaGlmdCgyLDApLHJlLndyaXRlX3NoaWZ0KDIsMCkscmUud3JpdGVfc2hpZnQoMiw2NTUzNSkscmV9cmV0dXJuIHVmKCJudW1iZXIiPT10eXBlb2YgSD9IOjApfShILnYpLGplPVJpKDYpO2plLndyaXRlX3NoaWZ0KDIsMzMpLGplLndyaXRl''@;'; + put 'put ''X3NoaWZ0KDQsMCk7Zm9yKHZhciBNdD1SaShILmJmLmxlbmd0aCkseHQ9MDt4dDxILmJmLmxlbmd0aDsrK3h0KU10W3h0XT1ILmJmW3h0XTtyZXR1cm4gVihbRmUsWmUsamUsTXRdKX0ocmUsWCx3ZSwwLEZlKSk7ZWxzZSBzd2l0Y2gocmUudCl7Y2FzZSJkIjpjYXNlIm4iOnMwKEgsIk51bWJl''@;'; + put 'put ''ciIsZnVuY3Rpb24gTjgoSCxyZSxYLHdlKXt2YXIgeGU9UmkoMTQpO3JldHVybiBHZihILHJlLHdlLHhlKSx1ZihYLHhlKSx4ZX0oWCx3ZSwiZCI9PXJlLnQ/ZnQoZG4ocmUudikpOnJlLnYsRmUpKTticmVhaztjYXNlImIiOmNhc2UiZSI6czAoSCw1MTcsZnVuY3Rpb24gZlIoSCxyZSxYLHdl''@;'; + put 'put ''LHhlLEZlKXt2YXIgWmU9UmkoOCk7cmV0dXJuIEdmKEgscmUsd2UsWmUpLFoxKFgsRmUsWmUpLFplfShYLHdlLHJlLnYsRmUsMCxyZS50KSk7YnJlYWs7Y2FzZSJzIjpjYXNlInN0ciI6aWYoeGUuYm9va1NTVCl7dmFyIGplPUM2KHhlLlN0cmluZ3MscmUudixyZS5SP3JlLnI9dTYocmUuUik6''@;'; + put 'put ''bnVsbCx4ZS5yZXZTdHJpbmdzKTtpZihyZS5SKWZvcih2YXIgWWU9MDtZZTxyZS5SLmxlbmd0aDsrK1llKXJlLlJbWWVdLnMmJlkxKHhlLmNlbGxYZnMseGUuY2VsbFN0eWxlWGZzLHt0OiJuIix2OjAsczpyZS5SW1llXS5zfSx4ZSk7czAoSCwiTGFiZWxTc3QiLGZ1bmN0aW9uIGxSKEgscmUs''@;'; + put 'put ''WCx3ZSl7dmFyIHhlPVJpKDEwKTtyZXR1cm4gR2YoSCxyZSx3ZSx4ZSkseGUud3JpdGVfc2hpZnQoNCxYKSx4ZX0oWCx3ZSxqZSxGZSkpfWVsc2UgczAoSCwiTGFiZWwiLGZ1bmN0aW9uIEd6KEgscmUsWCx3ZSx4ZSl7dmFyIEZlPSF4ZXx8OD09eGUuYmlmZixaZT1SaSgrRmUrOCsoMStGZSkq''@;'; + put 'put ''WC5sZW5ndGgpO3JldHVybiBHZihILHJlLHdlLFplKSxaZS53cml0ZV9zaGlmdCgyLFgubGVuZ3RoKSxGZSYmWmUud3JpdGVfc2hpZnQoMSwxKSxaZS53cml0ZV9zaGlmdCgoMStGZSkqWC5sZW5ndGgsWCxGZT8idXRmMTZsZSI6InNiY3MiKSxaZX0oWCx3ZSwocmUudnx8IiIpLnNsaWNlKDAs''@;'; + put 'put ''MjU1KSxGZSx4ZSkpO2JyZWFrO2RlZmF1bHQ6czAoSCwiQmxhbmsiLEdmKFgsd2UsRmUpKX1lbHNlIHMwKEgsIkJsYW5rIixHZihYLHdlLEZlKSl9ZnVuY3Rpb24gJHIoSCxyZSxYKXt2YXIgeHQsd2U9UTIoKSx4ZT1YLlNoZWV0TmFtZXNbSF0sRmU9WC5TaGVldHNbeGVdfHx7fSxaZT0oWHx8''@;'; + put 'put ''e30pLldvcmtib29rfHx7fSxqZT0oWmUuU2hlZXRzfHxbXSlbSF18fHt9LFllPUFycmF5LmlzQXJyYXkoRmUpLE10PTg9PXJlLmJpZmYsUnQ9IiIsWXQ9W10sbm49Rm8oRmVbIiFyZWYiXXx8IkExIiksQ249TXQ/NjU1MzY6MTYzODQ7aWYobm4uZS5jPjI1NXx8bm4uZS5yPj1Dbil7aWYocmUu''@;'; + put 'put ''V1RGKXRocm93IG5ldyBFcnJvcigiUmFuZ2UgIisoRmVbIiFyZWYiXXx8IkExIikrIiBleGNlZWRzIGZvcm1hdCBsaW1pdCBBMTpJVjE2Mzg0Iik7bm4uZS5jPU1hdGgubWluKG5uLmUuYywyNTUpLG5uLmUucj1NYXRoLm1pbihubi5lLmMsQ24tMSl9czAod2UsMjA1NyxnMygwLDE2LHJlKSks''@;'; + put 'put ''czAod2UsIkNhbGNNb2RlIixoZigxKSksczAod2UsIkNhbGNDb3VudCIsaGYoMTAwKSksczAod2UsIkNhbGNSZWZNb2RlIixqMSghMCkpLHMwKHdlLCJDYWxjSXRlciIsajEoITEpKSxzMCh3ZSwiQ2FsY0RlbHRhIix1ZiguMDAxKSksczAod2UsIkNhbGNTYXZlUmVjYWxjIixqMSghMCkpLHMw''@;'; + put 'put ''KHdlLCJQcmludFJvd0NvbCIsajEoITEpKSxzMCh3ZSwiUHJpbnRHcmlkIixqMSghMSkpLHMwKHdlLCJHcmlkU2V0IixoZigxKSksczAod2UsIkd1dHMiLGZ1bmN0aW9uIHl2KEgpe3ZhciByZT1SaSg4KTtyZXR1cm4gcmUud3JpdGVfc2hpZnQoNCwwKSxyZS53cml0ZV9zaGlmdCgyLEhbMF0/''@;'; + put 'put ''SFswXSsxOjApLHJlLndyaXRlX3NoaWZ0KDIsSFsxXT9IWzFdKzE6MCkscmV9KFswLDBdKSksczAod2UsIkhDZW50ZXIiLGoxKCExKSksczAod2UsIlZDZW50ZXIiLGoxKCExKSk7dmFyIER0PUZlWyIhcHJpbnQiXSYmRmVbIiFwcmludCJdLm1hcmdpbnN8fEZlWyIhbWFyZ2lucyJdO0R0JiYo''@;'; + put 'put ''bnVsbCE9RHQubGVmdCYmczAod2UsIkxlZnRNYXJnaW4iLHVmKER0LmxlZnQpKSxudWxsIT1EdC5yaWdodCYmczAod2UsIlJpZ2h0TWFyZ2luIix1ZihEdC5yaWdodCkpLG51bGwhPUR0LnRvcCYmczAod2UsIlRvcE1hcmdpbiIsdWYoRHQudG9wKSksbnVsbCE9RHQuYm90dG9tJiZzMCh3ZSwi''@;'; + put 'put ''Qm90dG9tTWFyZ2luIix1ZihEdC5ib3R0b20pKSwobnVsbCE9RHQuaGVhZGVyfHxudWxsIT1EdC5mb290ZXIpJiZzMCh3ZSwiU2V0dXAiLGZ1bmN0aW9uIHlSKEgscmUpe3ZhciBYPVJpKDM0KSx3ZT0hMSx4ZT03MDtyZXR1cm4ibGFuZHNjYXBlIj09KHJlLnByb3BzfHx7fSkub3JpZW50YXRp''@;'; + put 'put ''b24mJih3ZT0hMCx4ZSY9LTY3KSx3ZSYmKHhlJj0tNSksWC53cml0ZV9zaGlmdCgyLDEpLFgud3JpdGVfc2hpZnQoMiwxMDApLFgud3JpdGVfc2hpZnQoMiwwKSxYLndyaXRlX3NoaWZ0KDIsMCksWC53cml0ZV9zaGlmdCgyLDApLFgud3JpdGVfc2hpZnQoMSx4ZSksWC53cml0ZV9zaGlmdCgx''@;'; + put 'put ''LDApLFgud3JpdGVfc2hpZnQoMiw2MDApLFgud3JpdGVfc2hpZnQoMiw2MDApLHVmKG51bGw9PUguaGVhZGVyPy41OkguaGVhZGVyLFgpLHVmKG51bGw9PUguZm9vdGVyPy41OkguZm9vdGVyLFgpLFgud3JpdGVfc2hpZnQoMiwxKSxYfShEdCxGZVsiIXByaW50Il18fHt9KSkpLE10JiZmdW5j''@;'; + put 'put ''dGlvbiBpVChILHJlLFgpe2lmKHJlKXt2YXIgd2U9MDtyZS5mb3JFYWNoKGZ1bmN0aW9uKHhlLEZlKXsrK3dlPD0yNTYmJnhlJiYoeGUuYXV0byYmUzYoWCx4ZSxGZSksczAoSCwiQ29sSW5mbyIsZnVuY3Rpb24gQVIoSCxyZSl7dmFyIFg9UmkoMTIpO1gud3JpdGVfc2hpZnQoMixyZSksWC53''@;'; + put 'put ''cml0ZV9zaGlmdCgyLHJlKSxYLndyaXRlX3NoaWZ0KDIsMjU2Kkgud2lkdGgpLFgud3JpdGVfc2hpZnQoMiwwKTt2YXIgd2U9MDtyZXR1cm4gSC5oaWRkZW4mJih3ZXw9MSksWC53cml0ZV9zaGlmdCgxLHdlKSxYLndyaXRlX3NoaWZ0KDEsd2U9SC5sZXZlbHx8MCksWC53cml0ZV9zaGlmdCgy''@;'; + put 'put ''LDApLFh9KGs2KEZlLHhlKSxGZSkpKX0pfX0od2UsRmVbIiFjb2xzIl0sRmUpLHMwKHdlLCJEaW1lbnNpb25zIixmdW5jdGlvbiBGOChILHJlKXt2YXIgWD04IT1yZS5iaWZmJiZyZS5iaWZmPzI6NCx3ZT1SaSgyKlgrNik7cmV0dXJuIHdlLndyaXRlX3NoaWZ0KFgsSC5zLnIpLHdlLndyaXRl''@;'; + put 'put ''X3NoaWZ0KFgsSC5lLnIrMSksd2Uud3JpdGVfc2hpZnQoMixILnMuYyksd2Uud3JpdGVfc2hpZnQoMixILmUuYysxKSx3ZS53cml0ZV9zaGlmdCgyLDApLHdlfShubixyZSkpLE10JiYoRmVbIiFsaW5rcyJdPVtdKSxGZVsiIXJvd3MiXSYmTXQmJkZlWyIhcm93cyJdLmZvckVhY2goZnVuY3Rp''@;'; + put 'put ''b24oV24sTXIpe2Zvcih2YXIgYWk9WGEoTXIpLHlyPTI1Nixhcj0wLEdyPVduLnM/MTYrWTEocmUuY2VsbFhmcyxyZS5jZWxsU3R5bGVYZnMse3Q6Im4iLHY6MCxzOlduLnN9LHJlKTowLHpyPW5uLnMuYzt6cjw9bm4uZS5jOysrenIpIShZZT8oRmVbTXJdfHxbXSlbenJdOkZlW1l0W3pyXSth''@;'; + put 'put ''aV0pfHwoenI8eXImJih5cj16ciksenI+YXImJihhcj16cikpO2FyPHlyJiYoeXI9YXI9MCksczAod2UsIlJvdyIsZnVuY3Rpb24gaG4oSCxyZSxYKXt2YXIgd2U9UmkoMTYpO3dlLndyaXRlX3NoaWZ0KDIscmUpLHdlLndyaXRlX3NoaWZ0KDIsWFswXSksd2Uud3JpdGVfc2hpZnQoMixYWzFd''@;'; + put 'put ''KzEpLHdlLndyaXRlX3NoaWZ0KDIsMjAqSC5ocHR8fDIwKlRoKEguaHB4KXx8MzMwKSx3ZS53cml0ZV9zaGlmdCg0LDApO3ZhciB4ZT0wO3JldHVybiB4ZXw9MHxILmxldmVsLEguaGlkZGVuJiYoeGV8PTMyKSx4ZXw9NjQsWFsyXSYmKHhlfD0xMjgpLHdlLndyaXRlX3NoaWZ0KDEseGUpLHdl''@;'; + put 'put ''LndyaXRlX3NoaWZ0KDEsMSksd2Uud3JpdGVfc2hpZnQoMixYWzJdfHwwKSx3ZX0oV24sTXIsW3lyLGFyLEdyXSkpfSk7Zm9yKHZhciB6dD1ubi5zLnI7enQ8PW5uLmUucjsrK3p0KXtSdD1YYSh6dCk7Zm9yKHZhciBQbj1ubi5zLmM7UG48PW5uLmUuYzsrK1BuKXt6dD09PW5uLnMuciYmKFl0''@;'; + put 'put ''W1BuXT1fYShQbikpLHh0PVl0W1BuXStSdDt2YXIgVG49WWU/KEZlW3p0XXx8W10pW1BuXTpGZVt4dF07IVRufHwob1Qod2UsVG4senQsUG4scmUpLE10JiZUbi5sJiZGZVsiIWxpbmtzIl0ucHVzaChbeHQsVG4ubF0pKX19dmFyIE9uPWplLkNvZGVOYW1lfHxqZS5uYW1lfHx4ZTtyZXR1cm4o''@;'; + put 'put ''TXR8fDU9PXJlLmJpZmYmJkZlWyIhZnJlZXplIl0pJiZzMCh3ZSwiV2luZG93MiIsZnVuY3Rpb24gZ2YoSCxyZSxYLHdlKXt2YXIgeGU9d2UmJndlLmJpZmZ8fDgsRmU9UmkoOD09eGU/MTg6MTApLFplPTE3MTg7cmV0dXJuIFg+MCYmKFplJj0tNTEzKSxucihyZVsiIWdyaWRsaW5lcyJdKSYm''@;'; + put 'put ''KFplJj0tMykscmVbIiFmcmVlemUiXSYmKFplfD04KSxIJiZILlJUTCYmKFplfD02NCksNT09eGUmJihaZT00NDYpLEZlLndyaXRlX3NoaWZ0KDIsWmUpLDg9PXhlPyhGZS53cml0ZV9zaGlmdCg0LDApLEZlLndyaXRlX3NoaWZ0KDQsNjQpLEZlLndyaXRlX3NoaWZ0KDQsMCksRmUud3JpdGVf''@;'; + put 'put ''c2hpZnQoNCwwKSk6KEZlLndyaXRlX3NoaWZ0KDQsMCksRmUud3JpdGVfc2hpZnQoNCwwKSksRmV9KChaZS5WaWV3c3x8W10pWzBdLEZlLEgpKSwoTXR8fDU9PXJlLmJpZmYpJiZGZVsiIWZyZWV6ZSJdJiZzMCh3ZSwiUGFuZSIsZnVuY3Rpb24gdWIoSCl7InN0cmluZyI9PXR5cGVvZiBIJiYo''@;'; + put 'put ''SD11bChIKSk7dmFyIHJlPVJpKDEwKTtyZXR1cm4gcmUud3JpdGVfc2hpZnQoMixILmMpLHJlLndyaXRlX3NoaWZ0KDIsSC5yKSxyZS53cml0ZV9zaGlmdCgyLEgucikscmUud3JpdGVfc2hpZnQoMixILmMpLHJlLndyaXRlX3NoaWZ0KDEsMykscmUud3JpdGVfc2hpZnQoMSwwKSxyZX0oRmVb''@;'; + put 'put ''IiFmcmVlemUiXSkpLE10JiZGZVsiIXNlbCJdJiZzMCh3ZSwiU2VsZWN0aW9uIixmdW5jdGlvbiBiUihILHJlKXt2YXIgWD1SaSgxNSksd2U9SC5jZWxsO2lmKCF3ZSl7aWYoIUgucmFuZ2UpdGhyb3cgbmV3IEVycm9yKCJNdXN0IHNwZWNpZnkgYSBzZWxlY3Rpb24gY2VsbCBvciByYW5nZSIp''@;'; + put 'put ''O3dlPVkwKHZzKEgucmFuZ2UucmVwbGFjZSgvXHMuKiQvLCIiKSkucyl9dmFyIHhlPSJzdHJpbmciPT10eXBlb2Ygd2U/dWwod2UpOndlO2lmKHJlKXt2YXIgRmU9InN0cmluZyI9PXR5cGVvZiByZT91bChyZSk6cmU7WC53cml0ZV9zaGlmdCgxLHhlLnI+PUZlLnImJnhlLmM+PUZlLmM/MDp4''@;'; + put 'put ''ZS5yPj1GZS5yJiZ4ZS5jPEZlLmM/Mjp4ZS5yPEZlLnImJnhlLmM+PUZlLmM/MTozKX1lbHNlIFgud3JpdGVfc2hpZnQoMSwzKTtyZXR1cm4gWC53cml0ZV9zaGlmdCgyLHhlLnIpLFgud3JpdGVfc2hpZnQoMix4ZS5jKSxYLndyaXRlX3NoaWZ0KDIsMCksWC53cml0ZV9zaGlmdCgyLDEpLGZ1''@;'; + put 'put ''bmN0aW9uIHI2KEgscmUpe3JlfHwocmU9UmkoNikpLHJlLndyaXRlX3NoaWZ0KDIsSC5zP0gucy5yOkgucikscmUud3JpdGVfc2hpZnQoMixILmU/SC5lLnI6SC5yKSxyZS53cml0ZV9zaGlmdCgxLEgucz9ILnMuYzpILmMpLHJlLndyaXRlX3NoaWZ0KDEsSC5lP0guZS5jOkguYyl9KHtzOnhl''@;'; + put 'put ''LGU6eGV9LFgpLFh9KEZlWyIhc2VsIl0sRmVbIiFmcmVlemUiXSkpLE10JiYoRmVbIiFtZXJnZXMiXXx8W10pLmxlbmd0aCYmczAod2UsIk1lcmdlQ2VsbHMiLGZ1bmN0aW9uIGdSKEgpe3ZhciByZT1SaSgyKzgqSC5sZW5ndGgpO3JlLndyaXRlX3NoaWZ0KDIsSC5sZW5ndGgpO2Zvcih2YXIg''@;'; + put 'put ''WD0wO1g8SC5sZW5ndGg7KytYKUp1KEhbWF0scmUpO3JldHVybiByZX0oRmVbIiFtZXJnZXMiXSkpLE10JiZmdW5jdGlvbiByVChILHJlKXtmb3IodmFyIFg9MDtYPHJlWyIhbGlua3MiXS5sZW5ndGg7KytYKXt2YXIgd2U9cmVbIiFsaW5rcyJdW1hdO3MwKEgsIkhMaW5rIixWTSh3ZSkpLHdl''@;'; + put 'put ''WzFdLlRvb2x0aXAmJnMwKEgsIkhMaW5rVG9vbHRpcCIsc20od2UpKX1kZWxldGUgcmVbIiFsaW5rcyJdfSh3ZSxGZSksczAod2UsIkNvZGVOYW1lIixQcihPbikpLE10JiZmdW5jdGlvbiBKbShILHJlKXt2YXIgWD1SaSgxOSk7WC53cml0ZV9zaGlmdCg0LDIxNTEpLFgud3JpdGVfc2hpZnQo''@;'; + put 'put ''NCwwKSxYLndyaXRlX3NoaWZ0KDQsMCksWC53cml0ZV9zaGlmdCgyLDMpLFgud3JpdGVfc2hpZnQoMSwxKSxYLndyaXRlX3NoaWZ0KDQsMCksczAoSCwiRmVhdEhkciIsWCksKFg9UmkoMzkpKS53cml0ZV9zaGlmdCg0LDIxNTIpLFgud3JpdGVfc2hpZnQoNCwwKSxYLndyaXRlX3NoaWZ0KDQs''@;'; + put 'put ''MCksWC53cml0ZV9zaGlmdCgyLDMpLFgud3JpdGVfc2hpZnQoMSwwKSxYLndyaXRlX3NoaWZ0KDQsMCksWC53cml0ZV9zaGlmdCgyLDEpLFgud3JpdGVfc2hpZnQoNCw0KSxYLndyaXRlX3NoaWZ0KDIsMCksSnUoRm8ocmVbIiFyZWYiXXx8IkExIiksWCksWC53cml0ZV9zaGlmdCg0LDQpLHMw''@;'; + put 'put ''KEgsIkZlYXQiLFgpfSh3ZSxGZSksczAod2UsIkVPRiIpLHdlLmVuZCgpfWZ1bmN0aW9uIGVDKEgscmUsWCl7dmFyIHdlPVEyKCkseGU9KEh8fHt9KS5Xb3JrYm9va3x8e30sRmU9eGUuU2hlZXRzfHxbXSxaZT14ZS5XQlByb3BzfHx7fSxqZT04PT1YLmJpZmYsWWU9NT09WC5iaWZmO3MwKHdl''@;'; + put 'put ''LDIwNTcsZzMoMCw1LFgpKSwieGxhIj09WC5ib29rVHlwZSYmczAod2UsIkFkZGluIiksczAod2UsIkludGVyZmFjZUhkciIsamU/aGYoMTIwMCk6bnVsbCksczAod2UsIk1tcyIsZnVuY3Rpb24gRDgoSCxyZSl7cmV8fChyZT1SaShIKSk7Zm9yKHZhciBYPTA7WDxIOysrWClyZS53cml0ZV9z''@;'; + put 'put ''aGlmdCgxLDApO3JldHVybiByZX0oMikpLFllJiZzMCh3ZSwiVG9vbGJhckhkciIpLFllJiZzMCh3ZSwiVG9vbGJhckVuZCIpLHMwKHdlLCJJbnRlcmZhY2VFbmQiKSxzMCh3ZSwiV3JpdGVBY2Nlc3MiLGZ1bmN0aW9uIGE2KEgscmUpe3ZhciBYPSFyZXx8OD09cmUuYmlmZix3ZT1SaShYPzEx''@;'; + put 'put ''Mjo1NCk7Zm9yKHdlLndyaXRlX3NoaWZ0KDg9PXJlLmJpZmY/MjoxLDcpLFgmJndlLndyaXRlX3NoaWZ0KDEsMCksd2Uud3JpdGVfc2hpZnQoNCw4NTkwMDcwNTkpLHdlLndyaXRlX3NoaWZ0KDQsNTQ1ODU0OHwoWD8wOjUzNjg3MDkxMikpO3dlLmw8d2UubGVuZ3RoOyl3ZS53cml0ZV9zaGlm''@;'; + put 'put ''dCgxLFg/MDozMik7cmV0dXJuIHdlfSgwLFgpKSxzMCh3ZSwiQ29kZVBhZ2UiLGhmKGplPzEyMDA6MTI1MikpLGplJiZzMCh3ZSwiRFNGIixoZigwKSksamUmJnMwKHdlLCJFeGNlbDlGaWxlIiksczAod2UsIlJSVGFiSWQiLGZ1bmN0aW9uIEN2KEgpe2Zvcih2YXIgcmU9UmkoMipIKSxYPTA7''@;'; + put 'put ''WDxIOysrWClyZS53cml0ZV9zaGlmdCgyLFgrMSk7cmV0dXJuIHJlfShILlNoZWV0TmFtZXMubGVuZ3RoKSksamUmJkgudmJhcmF3JiZzMCh3ZSwiT2JQcm9qIiksamUmJkgudmJhcmF3JiZzMCh3ZSwiQ29kZU5hbWUiLFByKFplLkNvZGVOYW1lfHwiVGhpc1dvcmtib29rIikpLHMwKHdlLCJC''@;'; + put 'put ''dWlsdEluRm5Hcm91cENvdW50IixoZigxNykpLHMwKHdlLCJXaW5Qcm90ZWN0IixqMSghMSkpLHMwKHdlLCJQcm90ZWN0IixqMSghMSkpLHMwKHdlLCJQYXNzd29yZCIsaGYoMCkpLGplJiZzMCh3ZSwiUHJvdDRSZXYiLGoxKCExKSksamUmJnMwKHdlLCJQcm90NFJldlBhc3MiLGhmKDApKSxz''@;'; + put 'put ''MCh3ZSwiV2luZG93MSIsZnVuY3Rpb24genooKXt2YXIgSD1SaSgxOCk7cmV0dXJuIEgud3JpdGVfc2hpZnQoMiwwKSxILndyaXRlX3NoaWZ0KDIsMCksSC53cml0ZV9zaGlmdCgyLDI5MjgwKSxILndyaXRlX3NoaWZ0KDIsMTc2MDApLEgud3JpdGVfc2hpZnQoMiw1NiksSC53cml0ZV9zaGlm''@;'; + put 'put ''dCgyLDApLEgud3JpdGVfc2hpZnQoMiwwKSxILndyaXRlX3NoaWZ0KDIsMSksSC53cml0ZV9zaGlmdCgyLDUwMCksSH0oKSksczAod2UsIkJhY2t1cCIsajEoITEpKSxzMCh3ZSwiSGlkZU9iaiIsaGYoMCkpLHMwKHdlLCJEYXRlMTkwNCIsajEoInRydWUiPT1mdW5jdGlvbiBPeChIKXtyZXR1''@;'; + put 'put ''cm4gSC5Xb3JrYm9vayYmSC5Xb3JrYm9vay5XQlByb3BzJiZEaShILldvcmtib29rLldCUHJvcHMuZGF0ZTE5MDQpPyJ0cnVlIjoiZmFsc2UifShIKSkpLHMwKHdlLCJDYWxjUHJlY2lzaW9uIixqMSghMCkpLGplJiZzMCh3ZSwiUmVmcmVzaEFsbCIsajEoITEpKSxzMCh3ZSwiQm9va0Jvb2wi''@;'; + put 'put ''LGhmKDApKSx1dT1RdShbMCwxNjc3NzIxNSwxNjcxMTY4MCw2NTI4MCwyNTUsMTY3NzY5NjAsMTY3MTE5MzUsNjU1MzUsMCwxNjc3NzIxNSwxNjcxMTY4MCw2NTI4MCwyNTUsMTY3NzY5NjAsMTY3MTE5MzUsNjU1MzVdKSxmdW5jdGlvbiBRbShILHJlLFgpeygoKHJlfHx7fSkuU3R5bGVzfHx7''@;'; + put 'put ''fSkuRm9udHN8fFt7c3o6MTIsY29sb3I6e3RoZW1lOjF9LG5hbWU6IkFyaWFsIixmYW1pbHk6MixzY2hlbWU6Im1pbm9yIn1dKS5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtzMChILCJGb250IixmdW5jdGlvbiBtMyhILHJlKXt2YXIgWD1ILm5hbWV8fCJBcmlhbCIsd2U9cmUmJjU9PXJlLmJpZmYs''@;'; + put 'put ''RmU9Umkod2U/MTUrWC5sZW5ndGg6MTYrMipYLmxlbmd0aCk7RmUud3JpdGVfc2hpZnQoMiwyMCooSC5zenx8MTIpKTt2YXIgWmU9MDtyZXR1cm4gSC5ib2xkJiYoWmV8PTEpLEguaXRhbGljJiYoWmV8PTIpLEguc3RyaWtlJiYoWmV8PTgpLEguc2hhZG93JiYoWmV8PTMyKSxGZS53cml0ZV9z''@;'; + put 'put ''aGlmdCgxLFplKSxGZS53cml0ZV9zaGlmdCgxLDApLEZlLndyaXRlX3NoaWZ0KDIsSC5jb2xvcj9MYihILmNvbG9yLDY0KTo2NCksRmUud3JpdGVfc2hpZnQoMixILmJvbGQ/NzAwOjQwMCksRmUud3JpdGVfc2hpZnQoMiwic3VwZXIiPT1ILnZhbGlnbj8xOiJzdWIiPT1ILnZhbGlnbj8yOjAp''@;'; + put 'put ''LEZlLndyaXRlX3NoaWZ0KDEsSC51bmRlcmxpbmV8fDApLEZlLndyaXRlX3NoaWZ0KDEsRmUuZmFtaWx5fHwwKSxGZS53cml0ZV9zaGlmdCgxLEZlLmNoYXJzZXR8fDApLEZlLndyaXRlX3NoaWZ0KDEsMCksRmUud3JpdGVfc2hpZnQoMSxYLmxlbmd0aCksd2V8fEZlLndyaXRlX3NoaWZ0KDEs''@;'; + put 'put ''MSksRmUud3JpdGVfc2hpZnQoKHdlPzE6MikqWC5sZW5ndGgsWCx3ZT8ic2JjcyI6InV0ZjE2bGUiKSxGZX0od2UsWCkpfSl9KHdlLEgsWCksZnVuY3Rpb24gVFAoSCxyZSxYKXshcmV8fFtbNSw4XSxbMjMsMjZdLFs0MSw0NF0sWzUwLDM5Ml1dLmZvckVhY2goZnVuY3Rpb24od2Upe2Zvcih2''@;'; + put 'put ''YXIgeGU9d2VbMF07eGU8PXdlWzFdOysreGUpbnVsbCE9cmVbeGVdJiZzMChILCJGb3JtYXQiLGNiKHhlLHJlW3hlXSxYKSl9KX0od2UsSC5TU0YsWCksZnVuY3Rpb24gSVAoSCxyZSl7Zm9yKHZhciBYPTA7WDwxNjsrK1gpczAoSCwiWEYiLFNoKHtudW1GbXRJZDowLHN0eWxlOiEwfSwwLHJl''@;'; + put 'put ''KSk7cmUuY2VsbFhmcy5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtzMChILCJYRiIsU2god2UsMCxyZSkpfSl9KHdlLFgpLHMwKHdlLCJQYWxldHRlIixmdW5jdGlvbiBaOChIKXt2YXIgcmU9UmkoMjI2KTtyZS53cml0ZV9zaGlmdCgyLDU2KTtmb3IodmFyIFg9MDtYPDU2OysrWCl7dmFyIHdlPUhb''@;'; + put 'put ''WCs4XXx8S2dbWCs4XTtyZS53cml0ZV9zaGlmdCgxLHdlWzBdKSxyZS53cml0ZV9zaGlmdCgxLHdlWzFdKSxyZS53cml0ZV9zaGlmdCgxLHdlWzJdKSxyZS53cml0ZV9zaGlmdCgxLDApfXJldHVybiByZX0odXUpKSx1dT1sbihLZyksamUmJnMwKHdlLCJVc2VzRUxGcyIsajEoITEpKTt2YXIg''@;'; + put 'put ''eHQ9d2UuZW5kKCksUnQ9UTIoKTtqZSYmczAoUnQsIkNvdW50cnkiLGZ1bmN0aW9uIFpNKEgpe3JldHVybiBIfHwoSD1SaSg0KSksSC53cml0ZV9zaGlmdCgyLDEpLEgud3JpdGVfc2hpZnQoMiwxKSxIfSgpKSxqZSYmWC5TdHJpbmdzJiZmdW5jdGlvbiBFUChILHJlLFgsd2Upe3ZhciB4ZT13''@;'; + put 'put ''ZXx8KFh8fFtdKS5sZW5ndGh8fDA7aWYoeGU8PTgyMjQpcmV0dXJuIHMwKEgscmUsWCx4ZSk7dmFyIEZlPStyZXx8K0YzW3JlXTtpZighaXNOYU4oRmUpKXtmb3IodmFyIFplPVgucGFydHN8fFtdLGplPTAsWWU9MCxNdD0wO010KyhaZVtqZV18fDgyMjQpPD04MjI0OylNdCs9WmVbamVdfHw4''@;'; + put 'put ''MjI0LGplKys7dmFyIHh0PUgubmV4dCg0KTtmb3IoeHQud3JpdGVfc2hpZnQoMixGZSkseHQud3JpdGVfc2hpZnQoMixNdCksSC5wdXNoKFguc2xpY2UoWWUsWWUrTXQpKSxZZSs9TXQ7WWU8eGU7KXtmb3IoKHh0PUgubmV4dCg0KSkud3JpdGVfc2hpZnQoMiw2MCksTXQ9MDtNdCsoWmVbamVd''@;'; + put 'put ''fHw4MjI0KTw9ODIyNDspTXQrPVplW2plXXx8ODIyNCxqZSsrO3h0LndyaXRlX3NoaWZ0KDIsTXQpLEgucHVzaChYLnNsaWNlKFllLFllK010KSksWWUrPU10fX19KFJ0LCJTU1QiLGZ1bmN0aW9uIGJsKEgscmUpe3ZhciBYPVJpKDgpO1gud3JpdGVfc2hpZnQoNCxILkNvdW50KSxYLndyaXRl''@;'; + put 'put ''X3NoaWZ0KDQsSC5VbmlxdWUpO2Zvcih2YXIgd2U9W10seGU9MDt4ZTxILmxlbmd0aDsrK3hlKXdlW3hlXT1HYyhIW3hlXSxyZSk7dmFyIEZlPVYoW1hdLmNvbmNhdCh3ZSkpO3JldHVybiBGZS5wYXJ0cz1bWC5sZW5ndGhdLmNvbmNhdCh3ZS5tYXAoZnVuY3Rpb24oWmUpe3JldHVybiBaZS5s''@;'; + put 'put ''ZW5ndGh9KSksRmV9KFguU3RyaW5ncyxYKSksczAoUnQsIkVPRiIpO3ZhciBZdD1SdC5lbmQoKSxubj1RMigpLENuPTAsRHQ9MDtmb3IoRHQ9MDtEdDxILlNoZWV0TmFtZXMubGVuZ3RoOysrRHQpQ24rPShqZT8xMjoxMSkrKGplPzI6MSkqSC5TaGVldE5hbWVzW0R0XS5sZW5ndGg7dmFyIHp0''@;'; + put 'put ''PXh0Lmxlbmd0aCtDbitZdC5sZW5ndGg7Zm9yKER0PTA7RHQ8SC5TaGVldE5hbWVzLmxlbmd0aDsrK0R0KXMwKG5uLCJCb3VuZFNoZWV0OCIsV2Yoe3Bvczp6dCxoczooRmVbRHRdfHx7fSkuSGlkZGVufHwwLGR0OjAsbmFtZTpILlNoZWV0TmFtZXNbRHRdfSxYKSksenQrPXJlW0R0XS5sZW5n''@;'; + put 'put ''dGg7dmFyIFRuPW5uLmVuZCgpO2lmKENuIT1Ubi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJCUzggIitDbisiICE9ICIrVG4ubGVuZ3RoKTt2YXIgT249W107cmV0dXJuIHh0Lmxlbmd0aCYmT24ucHVzaCh4dCksVG4ubGVuZ3RoJiZPbi5wdXNoKFRuKSxZdC5sZW5ndGgmJk9uLnB1c2goWXQp''@;'; + put 'put ''LHZuKFtPbl0pfWZ1bmN0aW9uIFhtKEgscmUpe3ZhciBYPXJlfHx7fTtzd2l0Y2goWC5iaWZmfHwyKXtjYXNlIDg6Y2FzZSA1OnJldHVybiBmdW5jdGlvbiBEUChILHJlKXt2YXIgWD1yZXx8e30sd2U9W107QzMocmUmJnJlLlBQSXx8OTYpLEgmJiFILlNTRiYmKEguU1NGPUYuZ2V0X3RhYmxl''@;'; + put 'put ''KCkpLEgmJkguU1NGJiYoeWUoRiksRi5sb2FkX3RhYmxlKEguU1NGKSxYLnJldnNzZj1ldChILlNTRiksWC5yZXZzc2ZbSC5TU0ZbNjU1MzVdXT0wLFguc3NmPUguU1NGKSxILlN0eWxlcz17Rm9udHM6WC5Gb250cz1be3N6OjEyLGNvbG9yOnt0aGVtZToxLHJnYjoiMDAwMDAwIn0sbmFtZToi''@;'; + put 'put ''Q2FsaWJyaSIsZmFtaWx5OjIsc2NoZW1lOiJtaW5vciJ9XSxGaWxsczpYLkZpbGxzPVt7cGF0dGVyblR5cGU6Im5vbmUifSx7cGF0dGVyblR5cGU6ImdyYXkxMjUifV0sQm9yZGVyczpYLkJvcmRlcnM9W3t9XSxEWEY6WC5EWEY9SC5TdHlsZXMmJkguU3R5bGVzLkRYRnx8W119LFMzKFguRm9u''@;'; + put 'put ''dHNbMF0pLFguU3RyaW5ncz1bXSxYLlN0cmluZ3MuQ291bnQ9MCxYLlN0cmluZ3MuVW5pcXVlPTAsZjU/WC5yZXZTdHJpbmdzPW5ldyBNYXA6KFgucmV2U3RyaW5ncz17fSxYLnJldlN0cmluZ3MuZm9vPVtdLGRlbGV0ZSBYLnJldlN0cmluZ3MuZm9vKSxIMyhYKSxYLmNlbGxYZnM9W10sWC5j''@;'; + put 'put ''ZWxsU3R5bGVYZnM9W3tuYW1lOiJOb3JtYWwifV0sWTEoWC5jZWxsWGZzLFguY2VsbFN0eWxlWGZzLHt9LHtyZXZzc2Y6e0dlbmVyYWw6MH19KSxILlByb3BzfHwoSC5Qcm9wcz17fSk7Zm9yKHZhciB4ZT0wO3hlPEguU2hlZXROYW1lcy5sZW5ndGg7Kyt4ZSl3ZVt3ZS5sZW5ndGhdPSRyKHhl''@;'; + put 'put ''LFgsSCk7cmV0dXJuIHdlLnVuc2hpZnQoZUMoSCx3ZSxYKSksdm4oW3dlXSl9KEgscmUpO2Nhc2UgNDpjYXNlIDM6Y2FzZSAyOnJldHVybiBmdW5jdGlvbiBlaChILHJlKXtmb3IodmFyIFg9cmV8fHt9LHdlPVEyKCkseGU9MCxGZT0wO0ZlPEguU2hlZXROYW1lcy5sZW5ndGg7KytGZSlILlNo''@;'; + put 'put ''ZWV0TmFtZXNbRmVdPT1YLnNoZWV0JiYoeGU9RmUpO2lmKDA9PXhlJiZYLnNoZWV0JiZILlNoZWV0TmFtZXNbMF0hPVguc2hlZXQpdGhyb3cgbmV3IEVycm9yKCJTaGVldCBub3QgZm91bmQ6ICIrWC5zaGVldCk7cmV0dXJuIHMwKHdlLDQ9PVguYmlmZj8xMDMzOjM9PVguYmlmZj81MjE6OSxn''@;'; + put 'put ''MygwLDE2LFgpKSxmdW5jdGlvbiB4UChILHJlLFgsd2Upe3ZhciBaZSx4ZT1BcnJheS5pc0FycmF5KHJlKSxGZT1GbyhyZVsiIXJlZiJdfHwiQTEiKSxqZT0iIixZZT1bXTtpZihGZS5lLmM+MjU1fHxGZS5lLnI+MTYzODMpe2lmKHdlLldURil0aHJvdyBuZXcgRXJyb3IoIlJhbmdlICIrKHJl''@;'; + put 'put ''WyIhcmVmIl18fCJBMSIpKyIgZXhjZWVkcyBmb3JtYXQgbGltaXQgQTE6SVYxNjM4NCIpO0ZlLmUuYz1NYXRoLm1pbihGZS5lLmMsMjU1KSxGZS5lLnI9TWF0aC5taW4oRmUuZS5jLDE2MzgzKSxaZT1mYShGZSl9Zm9yKHZhciBNdD1GZS5zLnI7TXQ8PUZlLmUucjsrK010KXtqZT1YYShNdCk7''@;'; + put 'put ''Zm9yKHZhciB4dD1GZS5zLmM7eHQ8PUZlLmUuYzsrK3h0KXtNdD09PUZlLnMuciYmKFllW3h0XT1fYSh4dCkpLFplPVllW3h0XStqZTt2YXIgUnQ9eGU/KHJlW010XXx8W10pW3h0XTpyZVtaZV07IVJ0fHxFQShILFJ0LE10LHh0KX19fSh3ZSxILlNoZWV0c1tILlNoZWV0TmFtZXNbeGVdXSww''@;'; + put 'put ''LFgpLHMwKHdlLDEwKSx3ZS5lbmQoKX0oSCxyZSl9dGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHR5cGUgIitYLmJvb2tUeXBlKyIgZm9yIEJJRkYiKX12YXIgdXM9ZnVuY3Rpb24oKXt2YXIgSD17Y2VudGVyQ29udGludW91czoiY2VudGVyIixqdXN0aWZ5OiJsZWZ0In07ZnVuY3Rpb24gWChS''@;'; + put 'put ''dCxZdCl7dmFyIG5uPVl0fHx7fSxDbj1ubi5kZW5zZT9bXTp7fSxEdD0oUnQ9UnQucmVwbGFjZSgvPCEtLS4qPy0tPi9nLCIiKSkubWF0Y2goLzx0YWJsZS9pKTtpZighRHQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIEhUTUw6IGNvdWxkIG5vdCBmaW5kIDx0YWJsZT4iKTt2YXIgenQ9UnQu''@;'; + put 'put ''bWF0Y2goLzxcL3RhYmxlL2kpLFBuPUR0LmluZGV4LFRuPXp0JiZ6dC5pbmRleHx8UnQubGVuZ3RoLE9uPWZ1bmN0aW9uIHF0KEgscmUsWCl7aWYoeHJ8fCJzdHJpbmciPT10eXBlb2YgcmUpcmV0dXJuIEguc3BsaXQocmUpO2Zvcih2YXIgd2U9SC5zcGxpdChyZSkseGU9W3dlWzBdXSxGZT0x''@;'; + put 'put ''O0ZlPHdlLmxlbmd0aDsrK0ZlKXhlLnB1c2goWCkseGUucHVzaCh3ZVtGZV0pO3JldHVybiB4ZX0oUnQuc2xpY2UoUG4sVG4pLC8oOj88dHJbXj5dKj4pL2ksIjx0cj4iKSxXbj0tMSxNcj0wLGFpPTAseXI9MCxhcj17czp7cjoxZTcsYzoxZTd9LGU6e3I6MCxjOjB9fSxHcj1bXTtmb3IoUG49''@;'; + put 'put ''MDtQbjxPbi5sZW5ndGg7KytQbil7dmFyIHpyPU9uW1BuXS50cmltKCkscXI9enIuc2xpY2UoMCwzKS50b0xvd2VyQ2FzZSgpO2lmKCI8dHIiIT1xcil7aWYoIjx0ZCI9PXFyfHwiPHRoIj09cXIpe3ZhciBvaT16ci5zcGxpdCgvPFwvdFtkaF0+L2kpO2ZvcihUbj0wO1RuPG9pLmxlbmd0aDsr''@;'; + put 'put ''K1RuKXt2YXIgY3I9b2lbVG5dLnRyaW0oKTtpZihjci5tYXRjaCgvPHRbZGhdL2kpKXtmb3IodmFyIGRpPWNyLHYwPTA7IjwiPT1kaS5jaGFyQXQoMCkmJih2MD1kaS5pbmRleE9mKCI+IikpPi0xOylkaT1kaS5zbGljZSh2MCsxKTtmb3IodmFyIFVpPTA7VWk8R3IubGVuZ3RoOysrVWkpe3Zh''@;'; + put 'put ''ciB0bz1HcltVaV07dG8ucy5jPT1NciYmdG8ucy5yPFduJiZXbjw9dG8uZS5yJiYoTXI9dG8uZS5jKzEsVWk9LTEpfXZhciBBMD1lbihjci5zbGljZSgwLGNyLmluZGV4T2YoIj4iKSkpO3lyPUEwLmNvbHNwYW4/K0EwLmNvbHNwYW46MSwoKGFpPStBMC5yb3dzcGFuKT4xfHx5cj4xKSYmR3Iu''@;'; + put 'put ''cHVzaCh7czp7cjpXbixjOk1yfSxlOntyOlduKyhhaXx8MSktMSxjOk1yK3lyLTF9fSk7dmFyIHdpPUEwLnR8fEEwWyJkYXRhLXQiXXx8IiI7aWYoIWRpLmxlbmd0aCl7TXIrPXlyO2NvbnRpbnVlfWlmKGRpPU1hKGRpKSxhci5zLnI+V24mJihhci5zLnI9V24pLGFyLmUucjxXbiYmKGFyLmUu''@;'; + put 'put ''cj1XbiksYXIucy5jPk1yJiYoYXIucy5jPU1yKSxhci5lLmM8TXImJihhci5lLmM9TXIpLGRpLmxlbmd0aCl7dmFyIFlyPXt0OiJzIix2OmRpfTtubi5yYXd8fCFkaS50cmltKCkubGVuZ3RofHwicyI9PXdpfHwoWXI9RnIoZGksbm4pKSxubi5kZW5zZT8oQ25bV25dfHwoQ25bV25dPVtdKSxD''@;'; + put 'put ''bltXbl1bTXJdPVlyKTpDbltZMCh7cjpXbixjOk1yfSldPVlyLE1yKz15cn19fX19ZWxzZXtpZigrK1duLG5uLnNoZWV0Um93cyYmbm4uc2hlZXRSb3dzPD1Xbil7LS1XbjticmVha31Ncj0wfX1yZXR1cm4gQ25bIiFyZWYiXT1mYShhciksR3IubGVuZ3RoJiYoQ25bIiFtZXJnZXMiXT1Hciks''@;'; + put 'put ''Q259ZnVuY3Rpb24geGUoUnQsWXQsbm4sQ24sRHQsenQpe3ZhciBPbixQbj1SdFsiIW1lcmdlcyJdfHxbXSxUbj1bXSxXbj17c3R5bGU6W119LE1yPSExO2Z1bmN0aW9uIGFpKCQwLE5hLGpvKXt2YXIgd2E9IiIsYW89MDtpZihPblskMF0pc3dpdGNoKE9uWyQwXS5zdHlsZSl7Y2FzZSJ0aGlu''@;'; + put 'put ''IjpjYXNlImhhaXIiOndhPSJzb2xpZCIsYW89MTticmVhaztjYXNlIm1lZGl1bSI6d2E9InNvbGlkIixhbz0yO2JyZWFrO2Nhc2UidGhpY2siOndhPSJzb2xpZCIsYW89MzticmVhaztjYXNlImRvdWJsZSI6d2E9ImRvdWJsZSIsYW89MzticmVhaztjYXNlImRvdHRlZCI6Y2FzZSJkYXNoRG90''@;'; + put 'put ''RG90Ijp3YT0iZG90dGVkIixhbz0xO2JyZWFrO2Nhc2UibWVkaXVtRGFzaERvdERvdCI6d2E9ImRvdHRlZCIsYW89MjticmVhaztjYXNlImRhc2hlZCI6Y2FzZSJkYXNoRG90IjpjYXNlInNsYW50RGFzaERvdCI6d2E9ImRhc2hlZCIsYW89MTticmVhaztjYXNlIm1lZGl1bURhc2hlZCI6Y2Fz''@;'; + put 'put ''ZSJtZWRpdW1EYXNoRG90Ijp3YT0iZGFzaGVkIixhbz0yfWU6aWYoMD09YW8pe3N3aXRjaCgkMCl7Y2FzZSJ0b3AiOi0tTmE7YnJlYWs7Y2FzZSJsZWZ0IjotLWpvO2JyZWFrO2Nhc2UiYm90dG9tIjorK05hO2JyZWFrO2Nhc2UicmlnaHQiOisram99dmFyIHgwPU5hPj0wJiZqbz49MD9Dbi5k''@;'; + put 'put ''ZW5zZT8oUnRbTmFdfHxbXSlbam9dOlJ0W1kwKHtyOk5hLGM6am99KV06bnVsbDtpZih4MCl7aWYoeDAucyYmeDAuc1t7dG9wOiJib3R0b20iLGJvdHRvbToidG9wIixsZWZ0OiJyaWdodCIscmlnaHQ6ImxlZnQifVskMF1dKWJyZWFrIGU7eDAucyYmeDAucy5mZ0NvbG9yJiYoYW89MSl9T24u''@;'; + put 'put ''ZmdDb2xvciYmKGFvPTEpLCF4MCYmTXImJjA9PWFvJiYoYW89MSl9MCE9YW8mJmFvJiYoV24uc3R5bGUucHVzaCgiYm9yZGVyLSIrJDArIi1zdHlsZToiKyh3YXx8InRyYW5zcGFyZW50IikpLFduLnN0eWxlLnB1c2goImJvcmRlci0iKyQwKyItd2lkdGg6IithbysicHgiKSwiIj09d2E/V24u''@;'; + put 'put ''c3R5bGUucHVzaCgiYm9yZGVyLSIrJDArIi1jb2xvcjogdHJhbnNwYXJlbnQiKTpPblskMF0uY29sb3ImJk9uWyQwXS5jb2xvci5yZ2ImJlduLnN0eWxlLnB1c2goImJvcmRlci0iKyQwKyItY29sb3I6IyIrTG8oT25bJDBdLmNvbG9yLnJnYikpKX1mb3IodmFyIHlyPVl0LnMuYzt5cjw9WXQu''@;'; + put 'put ''ZS5jOysreXIpe2Zvcih2YXIgYXI9MCxHcj0wLHpyPTA7enI8UG4ubGVuZ3RoOysrenIpaWYoIShQblt6cl0ucy5yPm5ufHxQblt6cl0ucy5jPnlyfHxQblt6cl0uZS5yPG5ufHxQblt6cl0uZS5jPHlyKSl7aWYoUG5benJdLnMucjxubnx8UG5benJdLnMuYzx5cil7YXI9LTE7YnJlYWt9YXI9''@;'; + put 'put ''UG5benJdLmUuci1Qblt6cl0ucy5yKzEsR3I9UG5benJdLmUuYy1Qblt6cl0ucy5jKzE7YnJlYWt9aWYoIShhcjwwKSl7dmFyIHFyPVkwKHtyOm5uLGM6eXJ9KSxvaT1Dbi5kZW5zZT8oUnRbbm5dfHxbXSlbeXJdOlJ0W3FyXTtvaT9Ncj0hMTooTXI9ITAsb2k9e3Q6InoiLHM6e319KTt2YXIg''@;'; + put 'put ''Y3I9InoiPT1vaS50PyIiOm9pLmh8fG4wKG9pLnd8fCh5MShvaSksb2kudyl8fCIiKTtpZihXbj17c3R5bGU6W119LE9uPW9pLnMpe3ZhciBkaT0xO2lmKCgic3VwZXIiPT1Pbi52YWxpZ258fCJzdWIiPT1Pbi52YWxpZ24pJiYoZGk9LjgzLGNyPWJpKCJzcGFuIixjcix7c3R5bGU6InZlcnRp''@;'; + put 'put ''Y2FsLWFsaWduOiAiK09uLnZhbGlnbn0pKSxXbi5zdHlsZS5wdXNoKCJmb250LXdlaWdodDoiKyhPbi5ib2xkPzcwMDo0MDApKSxPbi5pdGFsaWMmJlduLnN0eWxlLnB1c2goImZvbnQtc3R5bGU6IGl0YWxpYyIpLChPbi51bmRlcmxpbmV8fE9uLnN0cmlrZSkmJlduLnN0eWxlLnB1c2goInRl''@;'; + put 'put ''eHQtZGVjb3JhdGlvbjoiKyhPbi51bmRlcmxpbmU/IiB1bmRlcmxpbmUiOiIiKSsoT24uc3RyaWtlPyIgbGluZS10aHJvdWdoIjoiIikpLE9uLmNvbG9yJiZPbi5jb2xvci5yZ2ImJlduLnN0eWxlLnB1c2goImNvbG9yOiAjIitMbyhPbi5jb2xvci5yZ2IpKSxPbi5uYW1lJiZXbi5zdHlsZS5w''@;'; + put 'put ''dXNoKCJmb250LWZhbWlseToiK09uLm5hbWUrIiwgc2Fucy1zZXJpZiIpLE9uLnN6JiZXbi5zdHlsZS5wdXNoKCJmb250LXNpemU6IitPbi5zeipkaSsicHQiKSxudWxsIT09T24ucGF0dGVyblR5cGUmJk9uLmZnQ29sb3ImJk9uLmZnQ29sb3IucmdiJiZXbi5zdHlsZS5wdXNoKCJiYWNrZ3Jv''@;'; + put 'put ''dW5kLWNvbG9yOiAjIitMbyhPbi5mZ0NvbG9yLnJnYikpLFsidG9wIiwibGVmdCJdLmZvckVhY2goZnVuY3Rpb24oJDApe2FpKCQwLG5uLHlyKX0pLGFyPjF8fEdyPjEpe3ZhciB2MD1ZMCh7cjpubithci0xLGM6eXIrR3ItMX0pLFVpPUNuLmRlbnNlPyhSdFtubithci0xXXx8W10pW3lyK0dy''@;'; + put 'put ''LTFdOlJ0W3YwXSxBMD1PbjtPbj1VaSYmVWkuc3x8T24sWyJib3R0b20iLCJyaWdodCJdLmZvckVhY2goZnVuY3Rpb24oJDApe2FpKCQwLG5uLHlyKX0pLE9uPUEwfWVsc2VbImJvdHRvbSIsInJpZ2h0Il0uZm9yRWFjaChmdW5jdGlvbigkMCl7YWkoJDAsbm4seXIpfSk7aWYoT24uYWxpZ25t''@;'; + put 'put ''ZW50KXtpZihPbi5hbGlnbm1lbnQuaG9yaXpvbnRhbD9Xbi5zdHlsZS5wdXNoKCJ0ZXh0LWFsaWduOiAiKyhIW09uLmFsaWdubWVudC5ob3Jpem9udGFsXXx8T24uYWxpZ25tZW50Lmhvcml6b250YWwpKToibiI9PW9pLnQmJlduLnN0eWxlLnB1c2goInRleHQtYWxpZ246IHJpZ2h0IiksT24u''@;'; + put 'put ''YWxpZ25tZW50LnZlcnRpY2FsKXt2YXIgd2k9T24uYWxpZ25tZW50LnZlcnRpY2FsO1duLnN0eWxlLnB1c2goInZlcnRpY2FsLWFsaWduOiAiKygiY2VudGVyIj09d2k/Im1pZGRsZSI6d2kpKX1pZihPbi5hbGlnbm1lbnQud3JhcFRleHQpV24uc3R5bGUucHVzaCgid2hpdGUtc3BhY2U6IHBy''@;'; + put 'put ''ZS13cmFwIik7ZWxzZXt2YXIgWXI9Q24uZGVuc2U/KFJ0W25uXXx8W10pW3lyKzFdOlJ0W1kwKHtyOm5uLGM6eXIrMX0pXTtZciYmInoiIT1Zci50JiZXbi5zdHlsZS5wdXNoKCJ3aGl0ZS1zcGFjZTogcHJlLXdyYXAiKX19ZWxzZSJuIj09b2kudCYmV24uc3R5bGUucHVzaCgidGV4dC1hbGln''@;'; + put 'put ''bjogcmlnaHQiKTt2YXIgRWk9KChSdFsiIWNvbHMiXXx8W10pW3lyXXx8e30pLndweDtudWxsPT1FaSYmKEVpPSgoUnRbIiFzaGVldEZvcm1hdCJdfHx7fSkuY29sfHx7fSkud3B4KX12YXIgaGk9MDtpZihHcjw9MSYmYXI8PTEmJihoaT0oKFJ0WyIhY29scyJdfHxbXSlbeXJdfHx7fSkud3B4''@;'; + put 'put ''KSYmV24uc3R5bGUucHVzaCgid2lkdGg6ICIraGkrInB4IiksUnRbIiFjb25kZm10Il0mJkZlKG9pLG5uLHlyLFJ0WyIhY29uZGZtdCJdLFduLnN0eWxlLFJ0KSwwPT1Xbi5zdHlsZS5sZW5ndGg/ZGVsZXRlIFduLnN0eWxlOlduLnN0eWxlPVduLnN0eWxlLmpvaW4oIjsiKSxDbi5jc3Mpe3Zh''@;'; + put 'put ''ciBOcj1EdC5pbmRleE9mKFduLnN0eWxlKTstMT09TnImJihEdC5wdXNoKFduLnN0eWxlKSxOcj1EdC5sZW5ndGgtMSksZGVsZXRlIFduLnN0eWxlLFduLmNsYXNzPSJzanMiKyh6dHx8IiIpKyItIitOcn1hcj4xJiYoV24ucm93c3Bhbj1hciksR3I+MSYmKFduLmNvbHNwYW49R3IpLENuLmVk''@;'; + put 'put ''aXRhYmxlP2NyPSc8c3BhbiBjb250ZW50ZWRpdGFibGU9InRydWUiPicrY3IrIjwvc3Bhbj4iOm9pJiYoV25bImRhdGEtdCJdPW9pJiZvaS50fHwieiIsbnVsbCE9b2kudiYmKFduWyJkYXRhLXYiXT1vaS52KSxudWxsIT1vaS56JiYoV25bImRhdGEteiJdPW9pLnopKSxXbi5pZD0oQ24uaWR8''@;'; + put 'put ''fCJzanMiKSsiLSIrcXIsVG4ucHVzaChiaSgidGQiLGNyLFduKSl9fXZhciBOMCxraT17c3R5bGU6W119OyhOMD1SdFsiIXNoZWV0Rm9ybWF0Il0pJiZOMC5yb3cmJihKOChOMC5yb3cpLE4wLnJvdy5ocHgmJihraS5zdHlsZS5wdXNoKFsiaGVpZ2h0IixOMC5yb3cuaHB4KyJweCJdKSxraS5o''@;'; + put 'put ''ZWlnaHQ9TWF0aC5yb3VuZChOMC5yb3cuaHB4KSkpO3ZhciB0MD1SdFsiIXJvd3MiXTtpZih0MCYmdDBbbm5dKXt2YXIgaW89dDBbbm5dO2lvLmhweCYmKGtpLnN0eWxlLnB1c2goWyJoZWlnaHQiLCtpby5ocHgrInB4Il0pLGtpLmhlaWdodD1NYXRoLnJvdW5kKGlvLmhweCkpLGlvLmhpZGRl''@;'; + put 'put ''biYma2kuc3R5bGUucHVzaChbImRpc3BsYXkiLCJub25lIl0pfXZhciBvYT1bXTtyZXR1cm4ga2kuc3R5bGU9a2kuc3R5bGUucmV2ZXJzZSgpLmZpbHRlcihmdW5jdGlvbigkMCl7cmV0dXJuIShvYS5pbmRleE9mKCQwWzBdKT4tMXx8KG9hLnB1c2goJDBbMF0pLDApKX0pLm1hcChmdW5jdGlv''@;'; + put 'put ''bigkMCl7cmV0dXJuICQwWzBdKyI6IiskMFsxXX0pLDA9PWtpLnN0eWxlLmxlbmd0aD9kZWxldGUga2kuc3R5bGU6a2kuc3R5bGU9a2kuc3R5bGUuam9pbigiOyIpLGJpKCJ0ciIsVG4uam9pbigiIiksa2kpfWZ1bmN0aW9uIEZlKFJ0LFl0LG5uLENuLER0LHp0KXtDbi5mb3JFYWNoKGZ1bmN0''@;'; + put 'put ''aW9uKFBuKXtpZihQbi5fcmVmfHwoUG4uX3JlZj0ic3RyaW5nIj09dHlwZW9mIFBuLnJlZj92cyhQbi5yZWYpOlBuLnJlZiksIShQbi5fcmVmLnMuYz5ubnx8UG4uX3JlZi5lLmM8bm58fFBuLl9yZWYucy5yPll0fHxQbi5fcmVmLmUucjxZdHx8InNjYWxlIiE9PVBuLnQpKXtpZigibiIhPVJ0''@;'; + put 'put ''LnQpcmV0dXJuO3ZhciBUbjtpZihudWxsPT1Qbi5fbWluKXtQbi5fdmFsdWVzPVtdO2Zvcih2YXIgT249UG4uX3JlZi5zLnI7T248PVBuLl9yZWYuZS5yOysrT24pZm9yKHZhciBXbj1Qbi5fcmVmLnMuYztXbjw9UG4uX3JlZi5lLmM7KytXbil7dmFyIE1yPUFycmF5LmlzQXJyYXkoenQpPyh6''@;'; + put 'put ''dFtPbl18fFtdKVtXbl06enRbWTAoe3I6T24sYzpXbn0pXTtNciYmIm4iPT1Nci50JiZQbi5fdmFsdWVzLnB1c2goTXIudil9aWYoUG4uX3ZhbHVlcy5zb3J0KGZ1bmN0aW9uKGFpLHlyKXtyZXR1cm4gYWkteXJ9KSxQbi5fbWluPVBuLl92YWx1ZXNbMF0sUG4uX21heD1Qbi5fdmFsdWVzLnNs''@;'; + put 'put ''aWNlKC0xKVswXSxQbi5fYmFuZD1Qbi5fbWF4LVBuLl9taW4sUG4uY21pZCl7c3dpdGNoKFBuLmNtaWQudCl7Y2FzZSJudW0iOlBuLl9taWQ9UG4uY21pZC52O2JyZWFrO2Nhc2UicGVyY2VudCI6UG4uX21pZD1Qbi5jbWlkLnYvMTAwKlBuLl9iYW5kK1BuLl9taW47YnJlYWs7Y2FzZSJwZXJj''@;'; + put 'put ''ZW50aWxlIjpQbi5fbWlkPWZ1bmN0aW9uIHByKEgscmUpe2lmKDA9PXJlKXJldHVybiBIWzBdO2lmKDEwMD09cmUpcmV0dXJuIEhbSC5sZW5ndGgtMV07dmFyIHdlPXJlLzEwMCooSC5sZW5ndGgtMSkseGU9d2UtTWF0aC5mbG9vcih3ZSk7cmV0dXJuIHhlKkhbTWF0aC5jZWlsKHdlKV0rKDEt''@;'; + put 'put ''eGUpKkhbTWF0aC5mbG9vcih3ZSldfShQbi5fdmFsdWVzLFBuLmNtaWQudil9UG4uX2JhbmRoPVBuLl9tYXgtUG4uX21pZCxQbi5fYmFuZGw9UG4uX21pZC1Qbi5fbWlufX0oVG49UG4uY21pZD9SdC52Pj1Qbi5fbWlkP2g2KFBuLmNtaWQuY29sb3IsUG4uY21heC5jb2xvciwoUnQudi1Qbi5f''@;'; + put 'put ''bWlkKS9Qbi5fYmFuZGgpOmg2KFBuLmNtaW4uY29sb3IsUG4uY21pZC5jb2xvciwoUnQudi1Qbi5fbWluKS9Qbi5fYmFuZGwpOmg2KFBuLmNtaW4uY29sb3IsUG4uY21heC5jb2xvciwoUnQudi1Qbi5fbWluKS9Qbi5fYmFuZCkpJiZEdC5wdXNoKCJiYWNrZ3JvdW5kLWNvbG9yOiAjIitUbil9''@;'; + put 'put ''fSl9ZnVuY3Rpb24gWmUoUnQsWXQpe3ZhciBubj17c3BhbjpZdHx8MSxzdHlsZToiIn0sQ249W107cmV0dXJuIFJ0JiZSdC53cHgmJihubi53aWR0aD1NYXRoLnJvdW5kKDQqUnQud3B4LzMpLENuLnB1c2goIndpZHRoOiIrKFJ0LndweHx8MCkrInB4IikpLENuLmxlbmd0aD4wJiYobm4uc3R5''@;'; + put 'put ''bGU9Q24uam9pbigiOyIpKSxiaSgiY29sIixudWxsLG5uKX1mdW5jdGlvbiBqZShSdCxZdCxubil7dmFyIENuPXtib3JkZXI6MCxjZWxscGFkZGluZzowLGNlbGxzcGFjaW5nOjAsc3R5bGU6WyJib3JkZXItY29sbGFwc2U6Y29sbGFwc2UiLCJ0YWJsZS1sYXlvdXQ6Zml4ZWQiXS5qb2luKCI7''@;'; + put 'put ''Iil9O25uJiZubi5pZCYmKENuLmlkPW5uLmlkKTt2YXIgRHQ9UnRbIiFjb2xzIl0senQ9UnRbIiFzaGVldEZvcm1hdCJdO2lmKFJ0JiZEdCl7Zm9yKHZhciBQbj0wLE9uPVl0LnMuYztPbjw9WXQuZS5jOysrT24pe3ZhciBXbj1EdFtPbl07UG4rPVduJiZXbi53cHg/V24ud3B4Onp0JiZ6dC5j''@;'; + put 'put ''b2wmJnp0LmNvbC53cHg/enQuY29sLndweDo1M31Dbi5zdHlsZSs9Ijt3aWR0aDoiK1BuKyJweCJ9dmFyIGFpLE1yPVsiPHRhYmxlIitybChDbikrIj4iXTtpZihNci5wdXNoKCI8c3R5bGU+dGQgeyBwYWRkaW5nLXRvcDogMXB4OyBwYWRkaW5nLXJpZ2h0OjFweDsgcGFkZGluZy1sZWZ0OjFw''@;'; + put 'put ''eDsgdGV4dC1hbGlnbjpnZW5lcmFsOyB2ZXJ0aWNhbC1hbGlnbjpib3R0b207IGJvcmRlcjoxcHggc29saWQ7IGJvcmRlci1jb2xvcjoiKyhubiYmbm4uZ3JpZGNvbG9yP25uLmdyaWRjb2xvcjpucihSdFsiIWdyaWRsaW5lcyJdKT8idHJhbnNwYXJlbnQiOiJibGFjayIpKyI7IHdoaXRlLXNw''@;'; + put 'put ''YWNlOm5vd3JhcDsgdGV4dC1vdmVyZmxvdzplbGxpcHNpc308L3N0eWxlPiIpLE1yLnB1c2goJzxjb2xncm91cCBzcGFuPSInKyhZdC5lLmMtWXQucy5jKzEpKyciPicpLER0KXtmb3IodmFyIHlyPVl0LnMuYzt5cjxNYXRoLm1pbihEdC5sZW5ndGgsWXQuZS5jKzEpOysreXIpIShhaT1EdFt5''@;'; + put 'put ''cl0pJiZ6dCYmenQuY29sJiYoYWk9enQuY29sKSxhaXx8KGFpPXt3cHg6NTN9KSxNci5wdXNoKFplKGFpLDEpKTtZdC5lLmMtWXQucy5jKzE+RHQubGVuZ3RoJiYoYWk9bnVsbCx6dCYmenQuY29sJiYoYWk9enQuY29sKSxhaXx8KGFpPXt3cHg6NTN9KSxNci5wdXNoKFplKGFpLFl0LmUuYy1Z''@;'; + put 'put ''dC5zLmMrMS1EdC5sZW5ndGgpKSl9ZWxzZSBhaT1udWxsLHp0JiZ6dC5jb2wmJihhaT16dC5jb2wpLGFpfHwoYWk9e3dweDo1M30pLE1yLnB1c2goWmUoYWksWXQuZS5jLVl0LnMuYysxKSk7cmV0dXJuIE1yLnB1c2goIjwvY29sZ3JvdXA+IiksTXIuam9pbigiIil9dmFyIFllPSc8aHRtbD48''@;'; + put 'put ''aGVhZD48bWV0YSBjaGFyc2V0PSJ1dGYtOCIvPjx0aXRsZT5TaGVldEpTIFRhYmxlIEV4cG9ydDwvdGl0bGU+PC9oZWFkPjxib2R5PicsTXQ9IjwvYm9keT48L2h0bWw+IjtyZXR1cm57dG9fd29ya2Jvb2s6ZnVuY3Rpb24gd2UoUnQsWXQpe3JldHVybiB3MShYKFJ0LFl0KSxZdCl9LHRvX3No''@;'; + put 'put ''ZWV0OlgsX3Jvdzp4ZSxCRUdJTjpZZSxFTkQ6TXQsX3ByZWFtYmxlOmplLGh0bWxfdG9fcnM6ZnVuY3Rpb24gcmUoUnQpe3ZhciBZdD1bXSxubj17fSxDbj0wO3JldHVybiBSdC5yZXBsYWNlKC88KFwvPykoW15ccz8+IVwvOl0qOnwpKFteXHM/PjpcL10rKVtePl0qPi9nbSxmdW5jdGlvbihE''@;'; + put 'put ''dCx6dCxQbixUbixPbil7dmFyIE1yPUluKGVuKER0KVswXSkucmVwbGFjZSgvWzxcLz5dL2csIiIpLGFpPVJ0LnNsaWNlKENuLE9uKS5yZXBsYWNlKC9ccy9nLCIgIik7c3dpdGNoKGFpLmxlbmd0aD4wJiYoWXQucHVzaCh7dDoicyIsdjphaSxzOm5ufSksbm49bG4obm4pKSxNci50b0xvd2Vy''@;'; + put 'put ''Q2FzZSgpKXtjYXNlImIiOiIvIiE9enQ/bm4uYm9sZD0hMDpkZWxldGUgbm4uYm9sZDticmVhaztjYXNlImkiOiIvIiE9enQ/bm4uaXRhbGljPSEwOmRlbGV0ZSBubi5pdGFsaWM7YnJlYWs7Y2FzZSJ1IjoiLyIhPXp0P25uLnVuZGVybGluZT0xOmRlbGV0ZSBubi51bmRlcmxpbmU7YnJlYWs7''@;'; + put 'put ''Y2FzZSJzIjoiLyIhPXp0P25uLnN0cmlrZT0hMDpkZWxldGUgbm4uc3RyaWtlfXJldHVybiBDbj1PbitEdC5sZW5ndGgsRHR9KSxZdH0sZnJvbV9zaGVldDpmdW5jdGlvbiB4dChSdCxZdCl7dmFyIG5uPVl0fHx7fSxEdD1udWxsIT1ubi5mb290ZXI/bm4uZm9vdGVyOk10LHp0PVtudWxsIT1u''@;'; + put 'put ''bi5oZWFkZXI/bm4uaGVhZGVyOlllLCIiXSxQbj1bXSxUbj0obmV3IERhdGUpLnZhbHVlT2YoKTtSdHx8KFJ0PXt9KSxSdFsiIXJlZiJdfHwoUnRbIiFyZWYiXT0iQTE6QTEiKTt2YXIgT249dnMoUnRbIiFyZWYiXSk7aWYobm4uZGVuc2U9QXJyYXkuaXNBcnJheShSdCksbm4uc2tpcGVuZCl7''@;'; + put 'put ''dmFyIFduPU9uLmUucjtlOmZvcig7V24+PU9uLnMucjstLVduKWZvcih2YXIgTXI9T24uZS5jO01yPj1Pbi5zLmM7LS1NcilpZihudWxsIT0oKG5uLmRlbnNlPyhSdFtXbl18fFtdKVtNcl06UnRbWTAoe3I6V24sYzpNcn0pXSl8fHt9KS52KWJyZWFrIGU7T24uZS5yPVduO3ZhciBhaT1Pbi5l''@;'; + put 'put ''LmM7ZTpmb3IoO2FpPj1Pbi5zLmM7LS1haSlmb3IodmFyIHlyPU9uLmUucjt5cj49T24ucy5yOy0teXIpaWYobnVsbCE9KChubi5kZW5zZT8oUnRbeXJdfHxbXSlbYWldOlJ0W1kwKHtyOnlyLGM6YWl9KV0pfHx7fSkudilicmVhayBlO09uLmUuYz1haX16dC5wdXNoKGplKFJ0LE9uLG5uKSk7''@;'; + put 'put ''Zm9yKHZhciBhcj1Pbi5zLnI7YXI8PU9uLmUucjsrK2FyKXp0LnB1c2goeGUoUnQsT24sYXIsbm4sUG4sVG4pKTtyZXR1cm4genQucHVzaCgiPC90YWJsZT4iK0R0KSxubi5jc3MmJih6dFsxXT0iPHN0eWxlPlxuIitQbi5tYXAoZnVuY3Rpb24oR3IsenIpe3JldHVybiIuc2pzIitUbisiLSIr''@;'; + put 'put ''enIrIiB7IitHcisifSJ9KS5qb2luKCJcbiIpKyI8L3N0eWxlPiIpLHp0LmpvaW4oIiIpfX19KCk7ZnVuY3Rpb24gUTAoSCxyZSxYKXt2YXIgd2U9e307aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBnZXRDb21wdXRlZFN0eWxlKXJldHVybiB3ZTt2YXIgeGU9Z2V0Q29tcHV0ZWRTdHlsZShIKTtp''@;'; + put 'put ''ZigoNzAwPT14ZVsiZm9udC13ZWlnaHQiXXx8ImJvbGQiPT14ZVsiZm9udC13ZWlnaHQiXSkmJih3ZS5ib2xkPSEwKSwoeGVbImZvbnQtc3R5bGUiXXx8IiIpLm1hdGNoKC9pdGFsaWMvKSYmKHdlLml0YWxpYz0hMCksKHhlWyJ0ZXh0LWRlY29yYXRpb24iXXx8IiIpLm1hdGNoKC91bmRlcmxp''@;'; + put 'put ''bmUvKSYmKHdlLnVuZGVybGluZT0xKSwoeGVbInRleHQtZGVjb3JhdGlvbiJdfHwiIikubWF0Y2goL2xpbmUtdGhyb3VnaC8pJiYod2Uuc3RyaWtlPTEpLHBhcnNlSW50KHhlWyJmb250LXNpemUiXSkmJih3ZS5zej1wYXJzZUZsb2F0KHhlWyJmb250LXNpemUiXSkqKHhlWyJmb250LXNpemUi''@;'; + put 'put ''XS5tYXRjaCgvcHgvKT8zLzQ6MSkpLHhlWyJmb250LWZhbWlseSJdJiYod2UubmFtZT14ZVsiZm9udC1mYW1pbHkiXS5zcGxpdCgiLCIpWzBdLnJlcGxhY2UoL1xzKiJccyovZywiIikpLHhlLmNvbG9yKXt2YXIgRmU9WDgoeGUuY29sb3IudG9Mb3dlckNhc2UoKSwhMCk7RmU+PTAmJih3ZS5j''@;'; + put 'put ''b2xvcj17cmdiOkZlfSl9c3dpdGNoKHhlWyJ0ZXh0LXRyYW5zZm9ybSJdJiYod2UudGV4dF90cmFuc2Zvcm09eGVbInRleHQtdHJhbnNmb3JtIl0udG9Mb3dlckNhc2UoKSksIm5vbmUiIT0oeGVbInRleHQtc2hhZG93Il18fCJub25lIikmJih3ZS5zaGFkb3c9ITApLHhlWyJ0ZXh0LWFsaWdu''@;'; + put 'put ''Il0pe2Nhc2UiY2VudGVyIjp3ZS5hbGlnbm1lbnQ9e2hvcml6b250YWw6ImNlbnRlciJ9O2JyZWFrO2Nhc2UicmlnaHQiOndlLmFsaWdubWVudD17aG9yaXpvbnRhbDoicmlnaHQifTticmVhaztjYXNlImxlZnQiOndlLmFsaWdubWVudD17aG9yaXpvbnRhbDoibGVmdCJ9O2JyZWFrO2Nhc2Ui''@;'; + put 'put ''anVzdGlmeSI6d2UuYWxpZ25tZW50PXtob3Jpem9udGFsOiJqdXN0aWZ5In19c3dpdGNoKHhlWyJ2ZXJ0aWNhbC1hbGlnbiJdKXtjYXNlInRvcCI6Y2FzZSJtaWRkbGUiOmNhc2UiYm90dG9tIjp3ZS5hbGlnbm1lbnR8fCh3ZS5hbGlnbm1lbnQ9e30pLHdlLmFsaWdubWVudC52ZXJ0aWNhbD14''@;'; + put 'put ''ZVsidmVydGljYWwtYWxpZ24iXSwibWlkZGxlIj09d2UuYWxpZ25tZW50LnZlcnRpY2FsJiYod2UuYWxpZ25tZW50LnZlcnRpY2FsPSJjZW50ZXIiKTticmVhaztjYXNlInN1YiI6Y2FzZSJzdXBlciI6d2UudmFsaWduPXhlWyJ2ZXJ0aWNhbC1hbGlnbiJdLHdlLnN6JiYod2Uuc3ovPS44Myl9''@;'; + put 'put ''dmFyIFplPXJlJiZnZXRDb21wdXRlZFN0eWxlKHJlKTtyZXR1cm4gWmUmJlgmJnJlJiZbImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSJdLmZvckVhY2goZnVuY3Rpb24oamUpe3ZhciBZZT1qZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStqZS5zbGljZSgxKSxNdD1aZVsiYm9yZGVyLSIr''@;'; + put 'put ''amUrIi1zdHlsZSJdO2lmKCgibm9uZSI9PU10fHwhTXQpJiYoTXQ9WmVbImJvcmRlciIrWWUrIlN0eWxlIl0pLCJub25lIiE9TXQmJk10KXt2YXIgeHQ9cGFyc2VJbnQoWmVbImJvcmRlci0iK2plKyItd2lkdGgiXXx8WmVbImJvcmRlciIrWWUrIldpZHRoIl0sMTApLFJ0PSJ0aGluIjtpZih4''@;'; + put 'put ''dD4wKXtzd2l0Y2goTXQpe2Nhc2UiZG91YmxlIjpSdD0iZG91YmxlIjticmVhaztjYXNlImRhc2hlZCI6UnQ9eHQ+PTI/Im1lZGl1bURhc2hlZCI6ImRhc2hlZCI7YnJlYWs7Y2FzZSJkb3R0ZWQiOlJ0PXh0Pj0yPyJtZWRpdW1EYXNoRG90RG90IjoiZG90dGVkIjticmVhaztjYXNlInNvbGlk''@;'; + put 'put ''IjpSdD14dD49Mz8idGhpY2siOnh0Pj0yPyJtZWRpdW0iOiJ0aGluIn1pZih3ZVtqZV09e3N0eWxlOlJ0fSxaZVsiYm9yZGVyLSIramUrIi1jb2xvciJdfHxaZVsiYm9yZGVyIitZZSsiQ29sb3IiXSl7dmFyIFl0PVg4KChaZVsiYm9yZGVyLSIramUrIi1jb2xvciJdfHxaZVsiYm9yZGVyIitZ''@;'; + put 'put ''ZSsiQ29sb3IiXSkudG9Mb3dlckNhc2UoKSwhMCk7WXQ+PTAmJih3ZVtqZV0uY29sb3I9e3JnYjpZdH0pfX19fSksd2V9ZnVuY3Rpb24gQzIoSCxyZSxYKXt2YXIgd2U9SC5jaGlsZE5vZGVzO2lmKDE9PUgubm9kZVR5cGUpc3dpdGNoKEgudGFnTmFtZS50b0xvd2VyQ2FzZSgpKXtjYXNlInAi''@;'; + put 'put ''OnJlLmxlbmd0aD4wJiZyZS5wdXNoKHt0OiJ0Iix2OiJcbiIsczpYfSk7YnJlYWs7Y2FzZSJzZWxlY3QiOnJldHVybiBmdW5jdGlvbiB1byhILHJlLFgpe3JlLnB1c2goe3Q6InQiLHY6SC5jaGlsZHJlbltILnNlbGVjdGVkSW5kZXhdLmlubmVyVGV4dCxzOlh9KX0oSCxyZSxYKX1pZih3ZS5s''@;'; + put 'put ''ZW5ndGg+MCl7dmFyIHhlPVEwKEgsbnVsbCwhMSk7WCYmKFgudW5kZXJsaW5lJiYoeGUudW5kZXJsaW5lPVgudW5kZXJsaW5lKSxYLnN0cmlrZSYmKHhlLnN0cmlrZT1YLnN0cmlrZSkpO2Zvcih2YXIgRmU9MDtGZTx3ZS5sZW5ndGg7KytGZSl7dHJ5e2lmKHdlW0ZlXS5nZXRBdHRyaWJ1dGUo''@;'; + put 'put ''ImFyaWEtaGlkZGVuIikpY29udGludWV9Y2F0Y2goamUpe31DMih3ZVtGZV0scmUseGUpfWRlbGV0ZSB4ZS50ZXh0X3RyYW5zZm9ybX1lbHNlIGlmKDM9PUgubm9kZVR5cGUpe3ZhciBaZT17dDoidCIsdjpILm5vZGVWYWx1ZS5yZXBsYWNlKC9eW1xuIF0rLywiICIpLnJlcGxhY2UoL1tcbiBd''@;'; + put 'put ''KyQvLCIgIiksczpYfTtzd2l0Y2goWC50ZXh0X3RyYW5zZm9ybSl7Y2FzZSJ1cHBlcmNhc2UiOlplLnY9WmUudi50b1VwcGVyQ2FzZSgpO2JyZWFrO2Nhc2UibG93ZXJjYXNlIjpaZS52PVplLnYudG9Mb3dlckNhc2UoKX0ocmUubGVuZ3RoPjB8fFplLnYmJiIgIiE9WmUudikmJnJlLnB1c2go''@;'; + put 'put ''WmUpfWVsc2UgMT09SC5ub2RlVHlwZSYmImJyIj09PUgudGFnTmFtZS50b0xvd2VyQ2FzZSgpJiZyZS5wdXNoKHt0OiJ0Iix2OiJcbiIsczpYfSl9ZnVuY3Rpb24gTDYoSCxyZSxYLHdlLHhlKXt2YXIgWmUsRmU9SC5pbm5lckhUTUw7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBnZXRDb21wdXRl''@;'; + put 'put ''ZFN0eWxlKXN3aXRjaChaZT1nZXRDb21wdXRlZFN0eWxlKEgpLChaZVsid2hpdGUtc3BhY2UiXXx8IiIpLm1hdGNoKC9wcmUvKSYmKEZlPUZlLnJlcGxhY2UoL1xuL2csIjxici8+IikpLChaZVsidGV4dC10cmFuc2Zvcm0iXXx8IiIpLnRvTG93ZXJDYXNlKCkpe2Nhc2UidXBwZXJjYXNlIjpG''@;'; + put 'put ''ZT1GZS50b1VwcGVyQ2FzZSgpO2JyZWFrO2Nhc2UibG93ZXJjYXNlIjpGZT1GZS50b0xvd2VyQ2FzZSgpfXZhciBqZT1mdW5jdGlvbiBhVChILHJlLFgsd2Upe3ZhciB4ZT17dDoicyIsdjpyZX0sRmU9IiI7aWYoSCl7WD1ILmdldEF0dHJpYnV0ZSgiZGF0YS10Iil8fEguZ2V0QXR0cmlidXRl''@;'; + put 'put ''KCJ0Iik7dmFyIFplPUguZ2V0QXR0cmlidXRlKCJkYXRhLXYiKXx8SC5nZXRBdHRyaWJ1dGUoInYiKTtpZihudWxsIT0oRmU9SC5nZXRBdHRyaWJ1dGUoImRhdGEteiIpfHxILmdldEF0dHJpYnV0ZSgieiIpKSYmKHhlLno9RmUpLG51bGwhPVgmJm51bGwhPVplKXJldHVybiB4ZS50PVgseGUu''@;'; + put 'put ''dj1aZSx4ZX1yZXR1cm4gbnVsbCE9cmUmJigwPT1yZS5sZW5ndGg/eGUudD1YfHwieiI6d2UucmF3fHwhcmUudHJpbSgpLmxlbmd0aHx8InMiPT1YfHwoeGU9RnIocmUsd2UpKSksRmUmJih4ZS56PUZlKSx4ZX0oSCxNYShGZSksWCx4ZSk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBnZXRDb21w''@;'; + put 'put ''dXRlZFN0eWxlJiYoamUucz1RMChILHJlLHhlLmJvcmRlcnMpLGRlbGV0ZSBqZS5zLnRleHRfdHJhbnNmb3JtLEguY2hpbGROb2Rlcy5sZW5ndGg+MXx8MT09SC5jaGlsZE5vZGVzLmxlbmd0aCYmMyE9SC5jaGlsZE5vZGVzWzBdLm5vZGVUeXBlKSlzd2l0Y2goQzIoSCxqZS5SPVtdLG51bGwp''@;'; + put 'put ''LGplLlImJmplLlJbamUuUi5sZW5ndGgtMV0mJiJcbiI9PWplLlJbamUuUi5sZW5ndGgtMV0udiYmamUuUi5sZW5ndGgtLSwoWmVbInRleHQtdHJhbnNmb3JtIl18fCIiKS50b0xvd2VyQ2FzZSgpKXtjYXNlInVwcGVyY2FzZSI6amUuUi5mb3JFYWNoKGZ1bmN0aW9uKFl0KXtZdC52PVl0LnYu''@;'; + put 'put ''dG9VcHBlckNhc2UoKX0pO2JyZWFrO2Nhc2UibG93ZXJjYXNlIjpqZS5SLmZvckVhY2goZnVuY3Rpb24oWXQpe1l0LnY9WXQudi50b0xvd2VyQ2FzZSgpfSl9aWYoInMiPT1qZS50KXt2YXIgWWU9amUudi5tYXRjaCgvXG4vKTshWWUmJmplLlImJmplLlIuZm9yRWFjaChmdW5jdGlvbihZdCl7''@;'; + put 'put ''InN0cmluZyI9PXR5cGVvZiBZdC52JiZZdC52Lm1hdGNoKC9cbi8pJiYoWWU9ITApfSksInMiPT1qZS50JiZZZSYmKGplLnN8fChqZS5zPXt9KSxqZS5zLmFsaWdubWVudHx8KGplLnMuYWxpZ25tZW50PXt9KSxqZS5zLmFsaWdubWVudC53cmFwVGV4dD0hMCl9aWYocmUpe3ZhciBNdD0iIix4''@;'; + put 'put ''dD1yZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiQSIpO2lmKHh0JiZ4dC5sZW5ndGgpZm9yKHZhciBSdD0wO1J0PHh0Lmxlbmd0aCYmKCF4dFtSdF0uaGFzQXR0cmlidXRlKCJocmVmIil8fCIjIj09KE10PXh0W1J0XS5nZXRBdHRyaWJ1dGUoImhyZWYiKSkuY2hhckF0KDApKTsrK1J0KTtNdCYm''@;'; + put 'put ''IiMiIT1NdC5jaGFyQXQoMCkmJihqZS5sPXtUYXJnZXQ6TXR9KX1yZXR1cm4gamV9ZnVuY3Rpb24gVmgoSCxyZSxYKXt2YXIgeGUsd2U9cmUucm93cztpZighd2Upe2lmKFgmJm51bGwhPVgub3JpZ2luKXRocm93IlVuc3VwcG9ydGVkIG9yaWdpbiB3aGVuICIrcmUudGFnTmFtZSsiIGlzIG5v''@;'; + put 'put ''dCBhIFRBQkxFIjtyZXR1cm4gZnVuY3Rpb24gTFAoSCxyZSxYKXtYPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoWHx8e30pKTt2YXIgRmU9e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fTtIWyIhbWVyZ2VzIl18fChIWyIhbWVyZ2VzIl09W10pO2Zvcih2YXIgamUsWmU9cmUuY2hpbGRyZW4s''@;'; + put 'put ''WWU9MCxNdD0wO010PFplLmxlbmd0aDsrK010KXt2YXIgWXQseHQ9WmVbTXRdLFJ0PSIiO3RyeXsidW5kZWZpbmVkIiE9dHlwZW9mIGdldENvbXB1dGVkU3R5bGU/WXQ9Z2V0Q29tcHV0ZWRTdHlsZTp4dC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3JiYiZnVuY3Rpb24iPT10eXBlb2YgeHQu''@;'; + put 'put ''b3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlJiYoWXQ9eHQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKX1jYXRjaChubil7fWlmKCFZdHx8Im5vbmUiIT1ZdCh4dCkuZGlzcGxheSlzd2l0Y2goeHQudGFnTmFtZS50b1VwcGVyQ2Fz''@;'; + put 'put ''ZSgpKXtjYXNlIlRBQkxFIjpZZT0tMSxIWyIhcmVmIl0mJihYLm9yaWdpbj0tMSksVmgoSCx4dCxYKTticmVhaztjYXNlIkJSIjpjYXNlIkhSIjpZZT0tMSxIWyIhcmVmIl0/KCsrKEZlPXZzKEhbIiFyZWYiXSkpLmUucixIWyIhcmVmIl09ZmEoRmUpKTpIWyIhcmVmIl09IkExOkExIjticmVh''@;'; + put 'put ''aztjYXNlIkRJViI6Y2FzZSJQIjpjYXNlIkgxIjpjYXNlIkgyIjpjYXNlIkgzIjpjYXNlIkg0IjpjYXNlIkg1IjpjYXNlIkg2IjpZZT0tMSxqZT1MNih4dCxudWxsLCIiLDAsWCksSFsiIXJlZiJdPyhYLm9yaWdpbj0tMSxsZihILFtbamVdXSxYKSk6KEhbIiFyZWYiXT0iQTEiLEFycmF5Lmlz''@;'; + put 'put ''QXJyYXkoSCk/KEhbMF18fChIWzBdPVtdKSxIWzBdWzBdPWplKTpILkExPWplKSxIWyIhcm93cyJdfHwoSFsiIXJvd3MiXT1bXSksWXQmJihGZT12cyhIWyIhcmVmIl0pLChSdD1ZdCh4dCkuaGVpZ2h0KSYmImF1dG8iIT1SdCYmKEhbIiFyb3dzIl1bRmUuZS5yXT17aHB0OnBhcnNlSW50KFJ0''@;'; + put 'put ''LDEwKX0pKTticmVhaztjYXNlIlNQQU4iOmNhc2UiQSI6Y2FzZSJCIjpjYXNlIkVNIjpjYXNlIkkiOmNhc2UiRk9OVCI6Y2FzZSJTIjpjYXNlIlNVQiI6Y2FzZSJTVVAiOmNhc2UiVSI6amU9TDYoeHQsbnVsbCwiIiwwLFgpLEhbIiFyZWYiXXx8KEhbIiFyZWYiXT0iQTE6QTEiKSxsZihILFtb''@;'; + put 'put ''amVdXSx7b3JpZ2luOlkwKHtyOihZZTwwPzE6MCkrKEZlPXZzKEhbIiFyZWYiXSkpLmUucixjOisrWWV9KX0pO2JyZWFrO2Nhc2UiREwiOmNhc2UiVUwiOmNhc2UiT0wiOlllPS0xLGNvbnNvbGUuZXJyb3IoIkhUTUwgQ29udmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IGxpc3QgZWxlbWVudCAi''@;'; + put 'put ''K3h0LnRhZ05hbWUudG9VcHBlckNhc2UoKSk7YnJlYWs7ZGVmYXVsdDpZZT0tMSxjb25zb2xlLmVycm9yKCJTa2lwcGluZyAiK3h0LnRhZ05hbWUudG9VcHBlckNhc2UoKSl9fXJldHVybiBIfShILHJlLFgpfXRyeXsidW5kZWZpbmVkIiE9dHlwZW9mIGdldENvbXB1dGVkU3R5bGU/eGU9Z2V0''@;'; + put 'put ''Q29tcHV0ZWRTdHlsZTpyZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3JiYiZnVuY3Rpb24iPT10eXBlb2YgcmUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlJiYoeGU9cmUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKX1jYXRj''@;'; + put 'put ''aCgkMCl7fXZhciBGZT1YfHx7fSxaZT0wLGplPTA7aWYobnVsbCE9RmUub3JpZ2luKWlmKCJudW1iZXIiPT10eXBlb2YgRmUub3JpZ2luKVplPUZlLm9yaWdpbjtlbHNle3ZhciBZZT0ic3RyaW5nIj09dHlwZW9mIEZlLm9yaWdpbj91bChGZS5vcmlnaW4pOkZlLm9yaWdpbjtaZT1ZZS5yLGpl''@;'; + put 'put ''PVllLmN9dmFyIE10PU1hdGgubWluKEZlLnNoZWV0Um93c3x8MWU3LHdlLmxlbmd0aCkseHQ9e3M6e3I6MCxjOjB9LGU6e3I6WmUsYzpqZX19O2lmKEhbIiFyZWYiXSl7dmFyIFJ0PXZzKEhbIiFyZWYiXSk7eHQucy5yPU1hdGgubWluKHh0LnMucixSdC5zLnIpLHh0LnMuYz1NYXRoLm1pbih4''@;'; + put 'put ''dC5zLmMsUnQucy5jKSx4dC5lLnI9TWF0aC5tYXgoeHQuZS5yLFJ0LmUucikseHQuZS5jPU1hdGgubWF4KHh0LmUuYyxSdC5lLmMpLC0xPT1aZSYmKHh0LmUucj1aZT1SdC5lLnIrMSl9dmFyIFl0PVtdLG5uPTAsQ249SFsiIXJvd3MiXXx8KEhbIiFyb3dzIl09W10pLER0PTAsenQ9MCxQbj0w''@;'; + put 'put ''LFRuPTAsT249MCxXbj0wO2ZvcihIWyIhY29scyJdfHwoSFsiIWNvbHMiXT1bXSk7RHQ8d2UubGVuZ3RoJiZ6dDxNdDsrK0R0KXtmb3IodmFyIE1yPXdlW0R0XSxhaT1Nci5wYXJlbnRFbGVtZW50OyJUQUJMRSIhPWFpLnRhZ05hbWUudG9VcHBlckNhc2UoKTspYWk9YWkucGFyZW50RWxlbWVu''@;'; + put 'put ''dDtpZihhaT09cmUpe2U6aWYodm9pZCAwIT09eGUpe3ZhciB5cj14ZShNcik7aWYobnVsbD09eXIpYnJlYWsgZTtpZih5ci5zdHlsZXx8KHlyLnN0eWxlPXt9KSxGZS5kaXNwbGF5JiYibm9uZSI9PSh5ci5kaXNwbGF5fHx5ci5zdHlsZS5kaXNwbGF5KSljb250aW51ZTsibm9uZSI9PSh5ci5k''@;'; + put 'put ''aXNwbGF5fHx5ci5zdHlsZS5kaXNwbGF5KSYmKChDblt6dF18fChDblt6dF09e30pKS5oaWRkZW49ITApfXZhciBhcj1Nci5jZWxscztmb3IoUG49VG49MDtQbjxhci5sZW5ndGg7KytQbil7dmFyIEdyPWFyW1BuXSx6cj1udWxsO2lmKHZvaWQgMD09PXhlfHwobnVsbD09enImJih6cj14ZShH''@;'; + put 'put ''cikpLHpyLnN0eWxlfHwoenIuc3R5bGU9e30pLCFGZS5kaXNwbGF5fHxudWxsPT16cnx8Im5vbmUiIT0oenIuZGlzcGxheXx8enIuc3R5bGUuZGlzcGxheSkpKXtmb3IoV249K0dyLmdldEF0dHJpYnV0ZSgiY29sc3BhbiIpfHwxLG5uPTA7bm48WXQubGVuZ3RoOysrbm4pe3ZhciBxcj1ZdFtu''@;'; + put 'put ''bl07cXIucy5jPT1UbitqZSYmcXIucy5yPHp0K1plJiZ6dCtaZTw9cXIuZS5yJiYoVG49cXIuZS5jKzEtamUsbm49LTEpfSgoT249K0dyLmdldEF0dHJpYnV0ZSgicm93c3BhbiIpfHwxKT4xfHxXbj4xKSYmWXQucHVzaCh7czp7cjp6dCtaZSxjOlRuK2plfSxlOntyOnp0K1plKyhPbnx8MSkt''@;'; + put 'put ''MSxjOlRuK2plKyhXbnx8MSktMX19KTt2YXIgb2k9R3IuZ2V0QXR0cmlidXRlKCJ0Iil8fCIiLGNyPUdyLmdldEF0dHJpYnV0ZSgiYmdjb2xvciIpO2U6aWYodm9pZCAwIT09eGUpe2lmKG51bGw9PXpyJiYoenI9eGUoR3IpKSxudWxsPT16cilicmVhayBlO2lmKHpyLnN0eWxlfHwoenIuc3R5''@;'; + put 'put ''bGU9e30pLDE9PVduJiZ6ci53aWR0aCYmKEhbIiFjb2xzIl1bVG4ramVdPUhbIiFjb2xzIl1bVG4ramVdfHx7fSx6ci53aWR0aC5tYXRjaCgvcHgvKT9IWyIhY29scyJdW1RuK2plXS53cHg9TWF0aC5tYXgocGFyc2VJbnQoenIud2lkdGgsMTApKzUsSFsiIWNvbHMiXVtUbitqZV0ud3B4fHww''@;'; + put 'put ''KTp6ci53aWR0aC5tYXRjaCgvcHQvKSYmKEhbIiFjb2xzIl1bVG4ramVdLndweD1NYXRoLm1heCg0KnBhcnNlSW50KHpyLndpZHRoLDEwKS8zKzUsSFsiIWNvbHMiXVtUbitqZV0ud3B4fHwwKSkpLE9uPD0xKXtDblt6dCtaZV18fChDblt6dCtaZV09e30pO3ZhciBkaT16ci5oZWlnaHQ7KGRp''@;'; + put 'put ''PWRpLm1hdGNoKC9wdC8pP0FmKHBhcnNlSW50KGRpLDEwKSk6cGFyc2VJbnQoZGksMTApKT4oQ25benQrWmVdLmhweHx8QWYoQ25benQrWmVdLmhwdCl8fDApJiYoZGVsZXRlIENuW3p0K1plXS5ocHQsQ25benQrWmVdLmhweD1kaSl9fXZhciB2MD1HcjtpZihHci5maXJzdEVsZW1lbnRDaGls''@;'; + put 'put ''ZCYmMT09R3IuY2hpbGRyZW4ubGVuZ3RoJiYic3BhbiI9PUdyLmZpcnN0RWxlbWVudENoaWxkLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpe2Zvcih2YXIgVWk9MCx0bz1Hci5jaGlsZE5vZGVzLEEwPTA7QTA8dG8ubGVuZ3RoOysrQTApMz09dG9bQTBdLm5vZGVUeXBlJiYrK1VpOzA9PVVpJiYo''@;'; + put 'put ''R3I9R3IuZmlyc3RFbGVtZW50Q2hpbGQpfXZhciB3aT1MNihHcix2MCxvaSwwLEZlKTtpZih6cil7dmFyIFlyPXhlKEdyKTtpZihZciYmIVlyLnN0eWxlJiYoWXIuc3R5bGU9e30pLChZciYmWXJbImJhY2tncm91bmQtY29sb3IiXXx8enJbImJhY2tncm91bmQtY29sb3IiXSkmJih3aS5zfHwo''@;'; + put 'put ''d2kucz17fSksIXdpLnMuZmdDb2xvcikpdHJ5e3ZhciBFaT1ZciYmWXJbImJhY2tncm91bmQtY29sb3IiXXx8enJbImJhY2tncm91bmQtY29sb3IiXTtFaS5tYXRjaCgvcmdiYVsoXVxzKjAuKlspXS9pKSYmKEVpPXpyWyJiYWNrZ3JvdW5kLWNvbG9yIl0pO3ZhciBoaT1YOChFaS50b0xvd2Vy''@;'; + put 'put ''Q2FzZSgpLCEwKTtoaT49MCYmKHdpLnMuZmdDb2xvcj17cmdiOmhpfSl9Y2F0Y2goJDApe31zd2l0Y2goenJbInZlcnRpY2FsLWFsaWduIl0pe2Nhc2UibWlkZGxlIjpjYXNlImJhc2VsaW5lIjp3aS5zfHwod2kucz17fSksd2kucy5hbGlnbm1lbnR8fCh3aS5zLmFsaWdubWVudD17fSksd2ku''@;'; + put 'put ''cy5hbGlnbm1lbnQudmVydGljYWw9ImNlbnRlciJ9fWlmKGNyJiYod2kuc3x8KHdpLnM9e30pLCF3aS5zLmZnQ29sb3IpKXRyeXt2YXIgTnI9WDgoY3IudG9Mb3dlckNhc2UoKSwhMCk7TnI+PTAmJih3aS5zLmZnQ29sb3I9e3JnYjpOcn0pfWNhdGNoKCQwKXt9aWYoRmUuZGVuc2U/KEhbenQr''@;'; + put 'put ''WmVdfHwoSFt6dCtaZV09W10pLEhbenQrWmVdW1RuK2plXT13aSk6SFtZMCh7YzpUbitqZSxyOnp0K1plfSldPXdpLE9uPjF8fFduPjEpZm9yKHZhciBraT16dDtraTx6dCtPbjsrK2tpKWZvcih2YXIgTjA9VG47TjA8VG4rV247KytOMCl6dD09a2kmJlRuPT1OMHx8KEZlLmRlbnNlPyhIW2tp''@;'; + put 'put ''K1plXXx8KEhba2krWmVdPVtdKSxIW2tpK1plXVtOMCtqZV09e3Q6InoiLHM6bG4od2kuc3x8e30pfSk6SFtZMCh7YzpOMCtqZSxyOmtpK1plfSldPXt0OiJ6IixzOmxuKHdpLnN8fHt9KX0pO3h0LmUuYzxUbitqZSYmKHh0LmUuYz1UbitqZSksVG4rPVdufX0rK3p0fX1pZihZdC5sZW5ndGgm''@;'; + put 'put ''JihIWyIhbWVyZ2VzIl09KEhbIiFtZXJnZXMiXXx8W10pLmNvbmNhdChZdCkpLHh0LmUucj1NYXRoLm1heCh4dC5lLnIsenQtMStaZSksSFsiIXJlZiJdPWZhKHh0KSx6dD49TXQmJihIWyIhZnVsbHJlZiJdPWZhKCh4dC5lLnI9d2UubGVuZ3RoLUR0K3p0LTErWmUseHQpKSksRmUuYm9yZGVy''@;'; + put 'put ''cylmb3IoenQ9eHQucy5yO3p0PD14dC5lLnI7Kyt6dClmb3IoVG49eHQucy5jO1RuPD14dC5lLmM7KytUbilpZighRmUuZGVuc2Upe3ZhciB0MD1IW1kwKHtyOnp0LGM6VG59KV07aWYoIXQwfHwhdDAucyljb250aW51ZTtpZih6dD4wKXt2YXIgaW89SFtZMCh7cjp6dC0xLGM6VG59KV07aW8m''@;'; + put 'put ''JmlvLnMmJmlvLnMuYm90dG9tJiZkZWxldGUgdDAucy50b3B9aWYoVG4+MCl7dmFyIG9hPUhbWTAoe3I6enQsYzpUbi0xfSldO29hJiZvYS5zJiZvYS5zLmJvdHRvbSYmZGVsZXRlIHQwLnMubGVmdH19cmV0dXJuIEh9ZnVuY3Rpb24gdEMoSCxyZSl7cmV0dXJuIFZoKChyZXx8e30pLmRlbnNl''@;'; + put 'put ''P1tdOnt9LEgscmUpfXZhciBuQz1mdW5jdGlvbigpe3ZhciBIPWZ1bmN0aW9uKHdlLHhlLEZlKXt2YXIgWmU9d2UucmVwbGFjZSgvW1x0XHJcbl0vZywiICIpLnRyaW0oKS5yZXBsYWNlKC8gKy9nLCIgIikucmVwbGFjZSgvPHRleHQ6c1wvPi9nLCIgIikucmVwbGFjZSgvPHRleHQ6cyB0ZXh0''@;'; + put 'put ''OmM9IihcZCspIlwvPi9nLGZ1bmN0aW9uKHh0LFJ0KXtyZXR1cm4gQXJyYXkocGFyc2VJbnQoUnQsMTApKzEpLmpvaW4oIiAiKX0pLnJlcGxhY2UoLzx0ZXh0OnRhYltePl0qXC8+L2csIlx0IikucmVwbGFjZSgvPHRleHQ6bGluZS1icmVha1wvPi9nLCJcbiIpLGplPWdyKFplLnJlcGxhY2Uo''@;'; + put 'put ''LzxbXj5dKj4vZywiIikpLFllPVtdLE10PTA7cmV0dXJuIFplLnJlcGxhY2UoLyg8dGV4dDpzcGFuLio/PikoLio/KTxbXC9ddGV4dDpzcGFuPi9nLGZ1bmN0aW9uKHh0LFJ0LFl0LG5uKXtubiE9TXQmJlllLnB1c2goe3Q6InMiLHY6Z3IoWmUuc2xpY2UoTXQsbm4pKX0pO3ZhciBDbj17dDoi''@;'; + put 'put ''cyIsdjpncihZdCl9LER0PWVuKFJ0KVsic3R5bGUtbmFtZSJdO3JldHVybiBEdCYmRmVbRHRdJiYoQ24ucz1sbihGZVtEdF0pKSxZZS5wdXNoKENuKSxNdD1ubit4dC5sZW5ndGgsIiJ9KSxNdDxaZS5sZW5ndGgmJlllLnB1c2goe3Q6InMiLHY6Z3IoWmUuc2xpY2UoTXQpKX0pLFtqZSxZZV19''@;'; + put 'put ''LHJlPXtkYXk6WyJkIiwiZGQiXSxtb250aDpbIm0iLCJtbSJdLHllYXI6WyJ5IiwieXkiXSxob3VyczpbImgiLCJoaCJdLG1pbnV0ZXM6WyJtIiwibW0iXSxzZWNvbmRzOlsicyIsInNzIl0sImFtLXBtIjpbIkEvUCIsIkFNL1BNIl0sImRheS1vZi13ZWVrIjpbImRkZCIsImRkZGQiXSxlcmE6''@;'; + put 'put ''WyJlIiwiZWUiXSxxdWFydGVyOlsiXFxRbSIsJ21cXCJ0aCBxdWFydGVyIiddfSxYPWZ1bmN0aW9uKHdlLHhlKXt2YXIgRmU9ZW4od2Uuc2xpY2UoMCx3ZS5pbmRleE9mKCI+IikpKSxaZT13ZS5zbGljZSh3ZS5pbmRleE9mKCI+IikrMSksamU9e25hbWU6RmUubmFtZSxmYW1pbHk6RmUuZmFt''@;'; + put 'put ''aWx5fTtbWyJwYXJlbnQiLCJwYXJlbnQtc3R5bGUtbmFtZSJdLFsiZGF0YW5hbWUiLCJkYXRhLXN0eWxlLW5hbWUiXSxbIm1wbmFtZSIsIm1hc3Rlci1wYWdlLW5hbWUiXV0uZm9yRWFjaChmdW5jdGlvbihNdCl7RmVbTXRbMV1dJiYoamVbTXRbMF1dPUZlW010WzFdXSl9KTt2YXIgWWU9e307''@;'; + put 'put ''WmUucmVwbGFjZShHdCxmdW5jdGlvbihNdCl7dmFyIHh0PWVuKE10KTtpZigiPHN0eWxlOnRleHQtcHJvcGVydGllcyI9PT14dFswXSl7aWYoeHRbImZvbnQtd2VpZ2h0Il0mJihZZS5ib2xkPSsoImJvbGQiPT14dFsiZm9udC13ZWlnaHQiXXx8IjcwMCI9PXh0WyJmb250LXdlaWdodCJdKSks''@;'; + put 'put ''KCJpdGFsaWMiPT14dFsiZm9udC1zdHlsZSJdfHwib2JsaXF1ZSI9PXh0WyJmb250LXN0eWxlIl0pJiYoWWUuaXRhbGljPTEpLCJub25lIiE9KHh0WyJ0ZXh0LXVuZGVybGluZS1zdHlsZSJdfHwibm9uZSIpP1llLnVuZGVybGluZT0iZG91YmxlIj09eHRbInRleHQtdW5kZXJsaW5lLXR5cGUi''@;'; + put 'put ''XT8yOjE6KHh0WyJ0ZXh0LXVuZGVybGluZS1zdHlsZSJdfHwibm9uZSI9PXh0WyJ0ZXh0LXVuZGVybGluZS10eXBlIl0pJiYoWWUudW5kZXJsaW5lPTApLCh4dFsiZm9udC1zaXplIl18fCIiKS5tYXRjaCgvcHQkLykmJihZZS5zej0reHRbImZvbnQtc2l6ZSJdLnJlcGxhY2UoInB0IiwiIikp''@;'; + put 'put ''LCJub25lIiE9KHh0WyJ0ZXh0LWxpbmUtdGhyb3VnaC1zdHlsZSJdfHwibm9uZSIpJiYoWWUuc3RyaWtlPTEpLHh0WyJmb250LW5hbWUiXSYmKFllLm5hbWU9eHRbImZvbnQtbmFtZSJdKSx4dC5jb2xvcil7dmFyIFJ0PVg4KHh0LmNvbG9yLCEwKTtSdD49MCYmKFllLmNvbG9yPVJ0KX1zd2l0''@;'; + put 'put ''Y2goeHRbInRleHQtcG9zaXRpb24iXSl7Y2FzZSJzdXBlciI6WWUudmFsaWduPSJzdXBlciI7YnJlYWs7Y2FzZSJzdWIiOlllLnZhbGlnbj0ic3ViIjticmVhaztkZWZhdWx0Oih4dFsidGV4dC1wb3NpdGlvbiJdfHwiIikubWF0Y2goLyUvKSYmKFllLnZhbGlnbj0iLSI9PXh0WyJ0ZXh0LXBv''@;'; + put 'put ''c2l0aW9uIl0uY2hhckF0KDApPyJzdWIiOiJzdXBlciIpfSJub25lIiE9KHh0WyJ0ZXh0LXNoYWRvdyJdfHwibm9uZSIpJiYoWWUuc2hhZG93PTEpfXJldHVybiIifSkseGVbRmUubmFtZV09WWV9O3JldHVybiBmdW5jdGlvbih4ZSxGZSl7dmFyIE10LHh0LENuLER0LE9uLFduLFplPUZlfHx7''@;'; + put 'put ''fSxqZT1DNSh4ZSksWWU9W10sUnQ9e25hbWU6IiJ9LFl0PSIiLG5uPTAsenQ9e30sUG49W10sVG49WmUuZGVuc2U/W106e30sTXI9e3ZhbHVlOiIifSxhaT0iIix5cj0wLEdyPVtdLHpyPS0xLHFyPS0xLG9pPXtzOntyOjFlNixjOjFlN30sZTp7cjowLGM6MH19LGNyPTAsZGk9e30sdjA9W10s''@;'; + put 'put ''VWk9e30sdG89MCxBMD0wLHdpPVtdLFlyPTEsRWk9MSxoaT1bXSxOcj17TmFtZXM6W119LGtpPXt9LE4wPVsiIiwiIl0sdDA9W10saW89e30sb2E9e30sJDA9MCxOYT0iIixqbz0wLHdhPSExLGFvPSExLHgwPTA7Zm9yKE5oLmxhc3RJbmRleD0wLGplPWplLnJlcGxhY2UoLzwhLS0oW1xzXFNd''@;'; + put 'put ''Kj8pLS0+L2dtLCIiKS5yZXBsYWNlKC88IURPQ1RZUEVbXlxbXSpcW1teXF1dKlxdPi9nbSwiIik7T249TmguZXhlYyhqZSk7KXN3aXRjaChPblszXT1PblszXS5yZXBsYWNlKC9fLiokLywiIikpe2Nhc2UidGFibGUiOmNhc2UiXHU1ZGU1XHU0ZjVjXHU4ODY4IjoiLyI9PT1PblsxXT8oVG5b''@;'; + put 'put ''IiFyZWYiXT1vaS5lLmM+PW9pLnMuYyYmb2kuZS5yPj1vaS5zLnI/ZmEob2kpOiJBMTpBMSIsWmUuc2hlZXRSb3dzPjAmJlplLnNoZWV0Um93czw9b2kuZS5yJiYoVG5bIiFmdWxscmVmIl09VG5bIiFyZWYiXSxvaS5lLnI9WmUuc2hlZXRSb3dzLTEsVG5bIiFyZWYiXT1mYShvaSkpLHYwLmxl''@;'; + put 'put ''bmd0aCYmKFRuWyIhbWVyZ2VzIl09djApLHdpLmxlbmd0aCYmKFRuWyIhcm93cyJdPXdpKSxDbi5uYW1lPUNuLlx1NTQwZFx1NzlmMHx8Q24ubmFtZSwidW5kZWZpbmVkIiE9dHlwZW9mIEpTT04mJkpTT04uc3RyaW5naWZ5KENuKSxQbi5wdXNoKENuLm5hbWUpLHp0W0NuLm5hbWVdPVRuLGFv''@;'; + put 'put ''PSExKToiLyIhPT1PblswXS5jaGFyQXQoT25bMF0ubGVuZ3RoLTIpJiYoQ249ZW4oT25bMF0sITEpLHpyPXFyPS0xLG9pLnMucj1vaS5zLmM9MWU3LG9pLmUucj1vaS5lLmM9MCxUbj1aZS5kZW5zZT9bXTp7fSx2MD1bXSx3aT1bXSxhbz0hMCk7YnJlYWs7Y2FzZSJ0YWJsZS1yb3ctZ3JvdXAi''@;'; + put 'put ''OiIvIj09PU9uWzFdPy0tY3I6KytjcjticmVhaztjYXNlInRhYmxlLXJvdyI6Y2FzZSJcdTg4NGMiOmlmKCIvIj09PU9uWzFdKXt6cis9WXIsWXI9MTticmVha31pZigoRHQ9ZW4oT25bMF0sITEpKS5cdTg4NGNcdTUzZjc/enI9RHQuXHU4ODRjXHU1M2Y3LTE6LTE9PXpyJiYoenI9MCksKFly''@;'; + put 'put ''PStEdFsibnVtYmVyLXJvd3MtcmVwZWF0ZWQiXXx8MSk8MTApZm9yKHgwPTA7eDA8WXI7Kyt4MCljcj4wJiYod2lbenIreDBdPXtsZXZlbDpjcn0pO3FyPS0xO2JyZWFrO2Nhc2UiY292ZXJlZC10YWJsZS1jZWxsIjoiLyIhPT1PblsxXSYmKytxcixaZS5zaGVldFN0dWJzJiYoWmUuZGVuc2U/''@;'; + put 'put ''KFRuW3pyXXx8KFRuW3pyXT1bXSksVG5benJdW3FyXT17dDoieiJ9KTpUbltZMCh7cjp6cixjOnFyfSldPXt0OiJ6In0pLGFpPSIiLEdyPVtdO2JyZWFrO2Nhc2UidGFibGUtY2VsbCI6Y2FzZSJcdTY1NzBcdTYzNmUiOmlmKCIvIj09PU9uWzBdLmNoYXJBdChPblswXS5sZW5ndGgtMikpKytx''@;'; + put 'put ''cixNcj1lbihPblswXSwhMSksRWk9cGFyc2VJbnQoTXJbIm51bWJlci1jb2x1bW5zLXJlcGVhdGVkIl18fCIxIiwxMCksV249e3Q6InoiLHY6bnVsbH0sTXIuZm9ybXVsYSYmMCE9WmUuY2VsbEZvcm11bGEmJihXbi5mPUxoKGdyKE1yLmZvcm11bGEpKSksInN0cmluZyI9PShNci5cdTY1NzBc''@;'; + put 'put ''dTYzNmVcdTdjN2JcdTU3OGJ8fE1yWyJ2YWx1ZS10eXBlIl0pJiYoV24udD0icyIsV24udj1ncihNclsic3RyaW5nLXZhbHVlIl18fCIiKSxaZS5kZW5zZT8oVG5benJdfHwoVG5benJdPVtdKSxUblt6cl1bcXJdPVduKTpUbltZMCh7cjp6cixjOnFyfSldPVduKSxxcis9RWktMTtlbHNlIGlm''@;'; + put 'put ''KCIvIiE9PU9uWzFdKXtFaT0xO3ZhciBoMD1Zcj96citZci0xOnpyO2lmKCsrcXI+b2kuZS5jJiYob2kuZS5jPXFyKSxxcjxvaS5zLmMmJihvaS5zLmM9cXIpLHpyPG9pLnMuciYmKG9pLnMucj16ciksaDA+b2kuZS5yJiYob2kuZS5yPWgwKSx0MD1bXSxpbz17fSxXbj17dDooTXI9ZW4oT25b''@;'; + put 'put ''MF0sITEpKS5cdTY1NzBcdTYzNmVcdTdjN2JcdTU3OGJ8fE1yWyJ2YWx1ZS10eXBlIl0sdjpudWxsfSxaZS5jZWxsRm9ybXVsYSlpZihNci5mb3JtdWxhJiYoTXIuZm9ybXVsYT1ncihNci5mb3JtdWxhKSksTXJbIm51bWJlci1tYXRyaXgtY29sdW1ucy1zcGFubmVkIl0mJk1yWyJudW1iZXIt''@;'; + put 'put ''bWF0cml4LXJvd3Mtc3Bhbm5lZCJdJiYodG89cGFyc2VJbnQoTXJbIm51bWJlci1tYXRyaXgtcm93cy1zcGFubmVkIl0sMTApfHwwLEEwPXBhcnNlSW50KE1yWyJudW1iZXItbWF0cml4LWNvbHVtbnMtc3Bhbm5lZCJdLDEwKXx8MCxXbi5GPWZhKFVpPXtzOntyOnpyLGM6cXJ9LGU6e3I6enIr''@;'; + put 'put ''dG8tMSxjOnFyK0EwLTF9fSksaGkucHVzaChbVWksV24uRl0pKSxNci5mb3JtdWxhKVduLmY9TGgoTXIuZm9ybXVsYSk7ZWxzZSBmb3IoeDA9MDt4MDxoaS5sZW5ndGg7Kyt4MCl6cj49aGlbeDBdWzBdLnMuciYmenI8PWhpW3gwXVswXS5lLnImJnFyPj1oaVt4MF1bMF0ucy5jJiZxcjw9aGlb''@;'; + put 'put ''eDBdWzBdLmUuYyYmKFduLkY9aGlbeDBdWzFdKTtzd2l0Y2goKE1yWyJudW1iZXItY29sdW1ucy1zcGFubmVkIl18fE1yWyJudW1iZXItcm93cy1zcGFubmVkIl0pJiYodG89cGFyc2VJbnQoTXJbIm51bWJlci1yb3dzLXNwYW5uZWQiXSwxMCl8fDAsQTA9cGFyc2VJbnQoTXJbIm51bWJlci1j''@;'; + put 'put ''b2x1bW5zLXNwYW5uZWQiXSwxMCl8fDAsdjAucHVzaChVaT17czp7cjp6cixjOnFyfSxlOntyOnpyK3RvLTEsYzpxcitBMC0xfX0pKSxNclsibnVtYmVyLWNvbHVtbnMtcmVwZWF0ZWQiXSYmKEVpPXBhcnNlSW50KE1yWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdLDEwKSksV24udCl7Y2Fz''@;'; + put 'put ''ZSJib29sZWFuIjpXbi50PSJiIixXbi52PURpKE1yWyJib29sZWFuLXZhbHVlIl0pO2JyZWFrO2Nhc2UiZmxvYXQiOmNhc2UicGVyY2VudGFnZSI6Y2FzZSJjdXJyZW5jeSI6V24udD0ibiIsV24udj1wYXJzZUZsb2F0KE1yLnZhbHVlKTticmVhaztjYXNlImRhdGUiOlduLnQ9ImQiLFduLnY9''@;'; + put 'put ''ZG4oTXJbImRhdGUtdmFsdWUiXSksWmUuY2VsbERhdGVzfHwoV24udD0ibiIsV24udj1mdChXbi52KSksV24uej0ibS9kL3l5IjticmVhaztjYXNlInRpbWUiOlduLnQ9Im4iLFduLnY9anQoTXJbInRpbWUtdmFsdWUiXSkvODY0MDAsWmUuY2VsbERhdGVzJiYoV24udD0iZCIsV24udj1IdChX''@;'; + put 'put ''bi52KSksV24uej0iSEg6TU06U1MiO2JyZWFrO2Nhc2UibnVtYmVyIjpXbi50PSJuIixXbi52PXBhcnNlRmxvYXQoTXIuXHU2NTcwXHU2MzZlXHU2NTcwXHU1MDNjKTticmVhaztkZWZhdWx0OmlmKCJzdHJpbmciIT09V24udCYmInRleHQiIT09V24udCYmV24udCl0aHJvdyBuZXcgRXJyb3Io''@;'; + put 'put ''IlVuc3VwcG9ydGVkIHZhbHVlIHR5cGUgIitXbi50KTtXbi50PSJzIixudWxsIT1Nclsic3RyaW5nLXZhbHVlIl0mJihhaT1ncihNclsic3RyaW5nLXZhbHVlIl0pLEdyPVtdKX19ZWxzZXtpZih3YT0hMSwicyI9PT1Xbi50JiYoV24udj1haXx8IiIsR3IubGVuZ3RoJiYoV24uUj1Hciksd2E9''@;'; + put 'put ''MD09eXIpLGtpLlRhcmdldCYmKFduLmw9a2kpLHQwLmxlbmd0aD4wJiYoV24uYz10MCx0MD1bXSksYWkmJiExIT09WmUuY2VsbFRleHQmJihXbi53PWFpKSx3YSYmKFduLnQ9InoiLGRlbGV0ZSBXbi52KSxaZS5jZWxsSFRNTCYmKFduLmg9V24uUj9obShXbi5SKTpuMCgiIitXbi52KSksKCF3''@;'; + put 'put ''YXx8WmUuc2hlZXRTdHVicykmJiEoWmUuc2hlZXRSb3dzJiZaZS5zaGVldFJvd3M8PXpyKSlmb3IodmFyIGpyPTA7anI8WXI7Kytqcil7aWYoRWk9cGFyc2VJbnQoTXJbIm51bWJlci1jb2x1bW5zLXJlcGVhdGVkIl18fCIxIiwxMCksWmUuZGVuc2UpZm9yKFRuW3pyK2pyXXx8KFRuW3pyK2py''@;'; + put 'put ''XT1bXSksVG5benIranJdW3FyXT0wPT1qcj9XbjpsbihXbik7LS1FaT4wOylUblt6citqcl1bcXIrRWldPWxuKFduKTtlbHNlIGZvcihUbltZMCh7cjp6citqcixjOnFyfSldPVduOy0tRWk+MDspVG5bWTAoe3I6enIranIsYzpxcitFaX0pXT1sbihXbik7b2kuZS5jPD1xciYmKG9pLmUuYz1x''@;'; + put 'put ''cil9cXIrPShFaT1wYXJzZUludChNclsibnVtYmVyLWNvbHVtbnMtcmVwZWF0ZWQiXXx8IjEiLDEwKSktMSxFaT0wLFduPXt9LGFpPSIiLEdyPVtdfWtpPXt9O2JyZWFrO2Nhc2UiZG9jdW1lbnQiOmNhc2UiZG9jdW1lbnQtY29udGVudCI6Y2FzZSJcdTc1MzVcdTViNTBcdTg4NjhcdTY4M2Nc''@;'; + put 'put ''dTY1ODdcdTY4NjMiOmNhc2Uic3ByZWFkc2hlZXQiOmNhc2UiXHU0ZTNiXHU0ZjUzIjpjYXNlInNjcmlwdHMiOmNhc2Uic3R5bGVzIjpjYXNlImZvbnQtZmFjZS1kZWNscyI6Y2FzZSJtYXN0ZXItc3R5bGVzIjppZigiLyI9PT1PblsxXSl7aWYoKE10PVllLnBvcCgpKVswXSE9PU9uWzNdKXRo''@;'; + put 'put ''cm93IkJhZCBzdGF0ZTogIitNdH1lbHNlIi8iIT09T25bMF0uY2hhckF0KE9uWzBdLmxlbmd0aC0yKSYmWWUucHVzaChbT25bM10sITBdKTticmVhaztjYXNlImFubm90YXRpb24iOmlmKCIvIj09PU9uWzFdKXtpZigoTXQ9WWUucG9wKCkpWzBdIT09T25bM10pdGhyb3ciQmFkIHN0YXRlOiAi''@;'; + put 'put ''K010O2lvLnQ9YWksR3IubGVuZ3RoJiYoaW8uUj1HciksaW8uYT1OYSx0MC5wdXNoKGlvKX1lbHNlIi8iIT09T25bMF0uY2hhckF0KE9uWzBdLmxlbmd0aC0yKSYmWWUucHVzaChbT25bM10sITFdKTtOYT0iIixqbz0wLGFpPSIiLHlyPTAsR3I9W107YnJlYWs7Y2FzZSJjcmVhdG9yIjoiLyI9''@;'; + put 'put ''PT1PblsxXT9OYT1qZS5zbGljZShqbyxPbi5pbmRleCk6am89T24uaW5kZXgrT25bMF0ubGVuZ3RoO2JyZWFrO2Nhc2UibWV0YSI6Y2FzZSJcdTUxNDNcdTY1NzBcdTYzNmUiOmNhc2Uic2V0dGluZ3MiOmNhc2UiY29uZmlnLWl0ZW0tc2V0IjpjYXNlImNvbmZpZy1pdGVtLW1hcC1pbmRleGVk''@;'; + put 'put ''IjpjYXNlImNvbmZpZy1pdGVtLW1hcC1lbnRyeSI6Y2FzZSJjb25maWctaXRlbS1tYXAtbmFtZWQiOmNhc2Uic2hhcGVzIjpjYXNlImZyYW1lIjpjYXNlInRleHQtYm94IjpjYXNlImltYWdlIjpjYXNlImRhdGEtcGlsb3QtdGFibGVzIjpjYXNlImxpc3Qtc3R5bGUiOmNhc2UiZm9ybSI6Y2Fz''@;'; + put 'put ''ZSJkZGUtbGlua3MiOmNhc2UiZXZlbnQtbGlzdGVuZXJzIjpjYXNlImNoYXJ0IjppZigiLyI9PT1PblsxXSl7aWYoKE10PVllLnBvcCgpKVswXSE9PU9uWzNdKXRocm93IkJhZCBzdGF0ZTogIitNdH1lbHNlIi8iIT09T25bMF0uY2hhckF0KE9uWzBdLmxlbmd0aC0yKSYmWWUucHVzaChbT25b''@;'; + put 'put ''M10sITFdKTthaT0iIix5cj0wLEdyPVtdO2JyZWFrO2Nhc2Uic2NpZW50aWZpYy1udW1iZXIiOmNhc2UiY3VycmVuY3ktc3ltYm9sIjpjYXNlImN1cnJlbmN5LXN0eWxlIjpjYXNlInNjcmlwdCI6Y2FzZSJsaWJyYXJpZXMiOmNhc2UiYXV0b21hdGljLXN0eWxlcyI6Y2FzZSJkZWZhdWx0LXN0''@;'; + put 'put ''eWxlIjpjYXNlInBhZ2UtbGF5b3V0IjpjYXNlIm1hcCI6Y2FzZSJmb250LWZhY2UiOmNhc2UicGFyYWdyYXBoLXByb3BlcnRpZXMiOmNhc2UidGFibGUtcHJvcGVydGllcyI6Y2FzZSJ0YWJsZS1jb2x1bW4tcHJvcGVydGllcyI6Y2FzZSJ0YWJsZS1yb3ctcHJvcGVydGllcyI6Y2FzZSJ0YWJs''@;'; + put 'put ''ZS1jZWxsLXByb3BlcnRpZXMiOmNhc2UiZnJhY3Rpb24iOmNhc2UiYm9vbGVhbi1zdHlsZSI6Y2FzZSJib29sZWFuIjpjYXNlInRleHQtc3R5bGUiOmNhc2UidGV4dC1jb250ZW50IjpjYXNlInRleHQtcHJvcGVydGllcyI6Y2FzZSJlbWJlZGRlZC10ZXh0IjpjYXNlImJvZHkiOmNhc2UiXHU3''@;'; + put 'put ''NTM1XHU1YjUwXHU4ODY4XHU2ODNjIjpjYXNlImZvcm1zIjpjYXNlInRhYmxlLWNvbHVtbiI6Y2FzZSJ0YWJsZS1oZWFkZXItcm93cyI6Y2FzZSJ0YWJsZS1yb3dzIjpjYXNlInRhYmxlLWNvbHVtbi1ncm91cCI6Y2FzZSJ0YWJsZS1oZWFkZXItY29sdW1ucyI6Y2FzZSJ0YWJsZS1jb2x1bW5z''@;'; + put 'put ''IjpjYXNlIm51bGwtZGF0ZSI6Y2FzZSJncmFwaGljLXByb3BlcnRpZXMiOmNhc2UiY2FsY3VsYXRpb24tc2V0dGluZ3MiOmNhc2UibmFtZWQtZXhwcmVzc2lvbnMiOmNhc2UibGFiZWwtcmFuZ2UiOmNhc2UibGFiZWwtcmFuZ2VzIjpjYXNlIm5hbWVkLWV4cHJlc3Npb24iOmNhc2Uic29ydCI6''@;'; + put 'put ''Y2FzZSJzb3J0LWJ5IjpjYXNlInNvcnQtZ3JvdXBzIjpjYXNlInRhYiI6Y2FzZSJsaW5lLWJyZWFrIjpjYXNlInNwYW4iOmNhc2UicyI6Y2FzZSJkYXRlIjpjYXNlIm9iamVjdCI6Y2FzZSJ0aXRsZSI6Y2FzZSJcdTY4MDdcdTk4OTgiOmNhc2UiZGVzYyI6Y2FzZSJiaW5hcnktZGF0YSI6Y2Fz''@;'; + put 'put ''ZSJ0YWJsZS1zb3VyY2UiOmNhc2Uic2NlbmFyaW8iOmNhc2UiaXRlcmF0aW9uIjpjYXNlImNvbnRlbnQtdmFsaWRhdGlvbnMiOmNhc2UiY29udGVudC12YWxpZGF0aW9uIjpjYXNlImhlbHAtbWVzc2FnZSI6Y2FzZSJlcnJvci1tZXNzYWdlIjpjYXNlImRhdGFiYXNlLXJhbmdlcyI6Y2FzZSJm''@;'; + put 'put ''aWx0ZXIiOmNhc2UiZmlsdGVyLWFuZCI6Y2FzZSJmaWx0ZXItb3IiOmNhc2UiZmlsdGVyLWNvbmRpdGlvbiI6Y2FzZSJsaXN0LWxldmVsLXN0eWxlLWJ1bGxldCI6Y2FzZSJsaXN0LWxldmVsLXN0eWxlLW51bWJlciI6Y2FzZSJsaXN0LWxldmVsLXByb3BlcnRpZXMiOmNhc2Uic2VuZGVyLWZp''@;'; + put 'put ''cnN0bmFtZSI6Y2FzZSJzZW5kZXItbGFzdG5hbWUiOmNhc2Uic2VuZGVyLWluaXRpYWxzIjpjYXNlInNlbmRlci10aXRsZSI6Y2FzZSJzZW5kZXItcG9zaXRpb24iOmNhc2Uic2VuZGVyLWVtYWlsIjpjYXNlInNlbmRlci1waG9uZS1wcml2YXRlIjpjYXNlInNlbmRlci1mYXgiOmNhc2Uic2Vu''@;'; + put 'put ''ZGVyLWNvbXBhbnkiOmNhc2Uic2VuZGVyLXBob25lLXdvcmsiOmNhc2Uic2VuZGVyLXN0cmVldCI6Y2FzZSJzZW5kZXItY2l0eSI6Y2FzZSJzZW5kZXItcG9zdGFsLWNvZGUiOmNhc2Uic2VuZGVyLWNvdW50cnkiOmNhc2Uic2VuZGVyLXN0YXRlLW9yLXByb3ZpbmNlIjpjYXNlImF1dGhvci1u''@;'; + put 'put ''YW1lIjpjYXNlImF1dGhvci1pbml0aWFscyI6Y2FzZSJjaGFwdGVyIjpjYXNlImZpbGUtbmFtZSI6Y2FzZSJ0ZW1wbGF0ZS1uYW1lIjpjYXNlInNoZWV0LW5hbWUiOmNhc2UiZXZlbnQtbGlzdGVuZXIiOmNhc2UiaW5pdGlhbC1jcmVhdG9yIjpjYXNlImNyZWF0aW9uLWRhdGUiOmNhc2UicHJp''@;'; + put 'put ''bnQtZGF0ZSI6Y2FzZSJnZW5lcmF0b3IiOmNhc2UiZG9jdW1lbnQtc3RhdGlzdGljIjpjYXNlInVzZXItZGVmaW5lZCI6Y2FzZSJlZGl0aW5nLWR1cmF0aW9uIjpjYXNlImVkaXRpbmctY3ljbGVzIjpjYXNlImNvbmZpZy1pdGVtIjpjYXNlInBhZ2UtbnVtYmVyIjpjYXNlInBhZ2UtY291bnQi''@;'; + put 'put ''OmNhc2UidGltZSI6Y2FzZSJjZWxsLXJhbmdlLXNvdXJjZSI6Y2FzZSJkZXRlY3RpdmUiOmNhc2Uib3BlcmF0aW9uIjpjYXNlImhpZ2hsaWdodGVkLXJhbmdlIjpjYXNlImRhdGEtcGlsb3QtdGFibGUiOmNhc2Uic291cmNlLWNlbGwtcmFuZ2UiOmNhc2Uic291cmNlLXNlcnZpY2UiOmNhc2Ui''@;'; + put 'put ''ZGF0YS1waWxvdC1maWVsZCI6Y2FzZSJkYXRhLXBpbG90LWxldmVsIjpjYXNlImRhdGEtcGlsb3Qtc3VidG90YWxzIjpjYXNlImRhdGEtcGlsb3Qtc3VidG90YWwiOmNhc2UiZGF0YS1waWxvdC1tZW1iZXJzIjpjYXNlImRhdGEtcGlsb3QtbWVtYmVyIjpjYXNlImRhdGEtcGlsb3QtZGlzcGxh''@;'; + put 'put ''eS1pbmZvIjpjYXNlImRhdGEtcGlsb3Qtc29ydC1pbmZvIjpjYXNlImRhdGEtcGlsb3QtbGF5b3V0LWluZm8iOmNhc2UiZGF0YS1waWxvdC1maWVsZC1yZWZlcmVuY2UiOmNhc2UiZGF0YS1waWxvdC1ncm91cHMiOmNhc2UiZGF0YS1waWxvdC1ncm91cCI6Y2FzZSJkYXRhLXBpbG90LWdyb3Vw''@;'; + put 'put ''LW1lbWJlciI6Y2FzZSJyZWN0IjpjYXNlImRkZS1jb25uZWN0aW9uLWRlY2xzIjpjYXNlImRkZS1jb25uZWN0aW9uLWRlY2wiOmNhc2UiZGRlLWxpbmsiOmNhc2UiZGRlLXNvdXJjZSI6Y2FzZSJwcm9wZXJ0aWVzIjpjYXNlInByb3BlcnR5IjpjYXNlInRhYmxlLXByb3RlY3Rpb24iOmNhc2Ui''@;'; + put 'put ''ZGF0YS1waWxvdC1ncmFuZC10b3RhbCI6Y2FzZSJvZmZpY2UtZG9jdW1lbnQtY29tbW9uLWF0dHJzIjpicmVhaztjYXNlIm51bWJlci1zdHlsZSI6Y2FzZSJwZXJjZW50YWdlLXN0eWxlIjpjYXNlImRhdGUtc3R5bGUiOmNhc2UidGltZS1zdHlsZSI6aWYoIi8iPT09T25bMV0pe2lmKGRpW1J0''@;'; + put 'put ''Lm5hbWVdPVl0LChNdD1ZZS5wb3AoKSlbMF0hPT1PblszXSl0aHJvdyJCYWQgc3RhdGU6ICIrTXR9ZWxzZSIvIiE9PU9uWzBdLmNoYXJBdChPblswXS5sZW5ndGgtMikmJihZdD0iIixSdD1lbihPblswXSwhMSksWWUucHVzaChbT25bM10sITBdKSk7YnJlYWs7Y2FzZSJzdHlsZSI6Ii8+Ij09''@;'; + put 'put ''PU9uWzBdLnNsaWNlKC0yKT9YKE9uWzBdLG9hKToiLyI9PU9uWzFdP1goamUuc2xpY2UoJDAsT24uaW5kZXgrT25bMF0ubGVuZ3RoKSxvYSk6JDA9T24uaW5kZXg7YnJlYWs7Y2FzZSJudW1iZXIiOmNhc2UiZGF5IjpjYXNlIm1vbnRoIjpjYXNlInllYXIiOmNhc2UiZXJhIjpjYXNlImRheS1v''@;'; + put 'put ''Zi13ZWVrIjpjYXNlIndlZWstb2YteWVhciI6Y2FzZSJxdWFydGVyIjpjYXNlImhvdXJzIjpjYXNlIm1pbnV0ZXMiOmNhc2Uic2Vjb25kcyI6Y2FzZSJhbS1wbSI6c3dpdGNoKFllW1llLmxlbmd0aC0xXVswXSl7Y2FzZSJ0aW1lLXN0eWxlIjpjYXNlImRhdGUtc3R5bGUiOnh0PWVuKE9uWzBd''@;'; + put 'put ''LCExKSxZdCs9cmVbT25bM11dWyJsb25nIj09PXh0LnN0eWxlPzE6MF19YnJlYWs7Y2FzZSJ0ZXh0IjppZigiLz4iPT09T25bMF0uc2xpY2UoLTIpKWJyZWFrO2lmKCIvIj09PU9uWzFdKXN3aXRjaChZZVtZZS5sZW5ndGgtMV1bMF0pe2Nhc2UibnVtYmVyLXN0eWxlIjpjYXNlImRhdGUtc3R5''@;'; + put 'put ''bGUiOmNhc2UidGltZS1zdHlsZSI6WXQrPWplLnNsaWNlKG5uLE9uLmluZGV4KX1lbHNlIG5uPU9uLmluZGV4K09uWzBdLmxlbmd0aDticmVhaztjYXNlIm5hbWVkLXJhbmdlIjpOMD11XygoeHQ9ZW4oT25bMF0sITEpKVsiY2VsbC1yYW5nZS1hZGRyZXNzIl0pO3ZhciBIaT17TmFtZTp4dC5u''@;'; + put 'put ''YW1lLFJlZjpOMFswXSsiISIrTjBbMV19O2FvJiYoSGkuU2hlZXQ9UG4ubGVuZ3RoKSxOci5OYW1lcy5wdXNoKEhpKTticmVhaztjYXNlInAiOmNhc2UiXHU2NTg3XHU2NzJjXHU0ZTMyIjppZihbIm1hc3Rlci1zdHlsZXMiXS5pbmRleE9mKFllW1llLmxlbmd0aC0xXVswXSk+LTEpYnJlYWs7''@;'; + put 'put ''aWYoIi8iIT09T25bMV18fE1yJiZNclsic3RyaW5nLXZhbHVlIl0pZW4oT25bMF0sITEpLHlyPU9uLmluZGV4K09uWzBdLmxlbmd0aDtlbHNle3ZhciB2bz1IKGplLnNsaWNlKHlyLE9uLmluZGV4KSwwLG9hKTthaT0oYWkubGVuZ3RoPjA/YWkrIlxuIjoiIikrdm9bMF0sR3I9dm9bMV19YnJl''@;'; + put 'put ''YWs7Y2FzZSJkYXRhYmFzZS1yYW5nZSI6aWYoIi8iPT09T25bMV0pYnJlYWs7dHJ5e3p0WyhOMD11XyhlbihPblswXSlbInRhcmdldC1yYW5nZS1hZGRyZXNzIl0pKVswXV1bIiFhdXRvZmlsdGVyIl09e3JlZjpOMFsxXX19Y2F0Y2goJGkpe31icmVhaztjYXNlImEiOmlmKCIvIiE9PU9uWzFd''@;'; + put 'put ''KXtpZighKGtpPWVuKE9uWzBdLCExKSkuaHJlZilicmVhaztraS5UYXJnZXQ9Z3Ioa2kuaHJlZiksZGVsZXRlIGtpLmhyZWYsIiMiPT1raS5UYXJnZXQuY2hhckF0KDApJiZraS5UYXJnZXQuaW5kZXhPZigiLiIpPi0xPyhOMD11XyhraS5UYXJnZXQuc2xpY2UoMSkpLGtpLlRhcmdldD0iIyIr''@;'; + put 'put ''TjBbMF0rIiEiK04wWzFdKTpraS5UYXJnZXQubWF0Y2goL15cLlwuW1xcXC9dLykmJihraS5UYXJnZXQ9a2kuVGFyZ2V0LnNsaWNlKDMpKX1icmVhaztkZWZhdWx0OnN3aXRjaChPblsyXSl7Y2FzZSJkYzoiOmNhc2UiY2FsY2V4dDoiOmNhc2UibG9leHQ6IjpjYXNlIm9vbzoiOmNhc2UiY2hh''@;'; + put 'put ''cnRvb286IjpjYXNlImRyYXc6IjpjYXNlInN0eWxlOiI6Y2FzZSJjaGFydDoiOmNhc2UiZm9ybToiOmNhc2UidW9mOiI6Y2FzZSJcdTg4Njg6IjpjYXNlIlx1NWI1NzoiOmJyZWFrO2RlZmF1bHQ6aWYoWmUuV1RGKXRocm93IG5ldyBFcnJvcihPbil9fXZhciB4bz17U2hlZXRzOnp0LFNoZWV0''@;'; + put 'put ''TmFtZXM6UG4sV29ya2Jvb2s6TnJ9O3JldHVybiBaZS5ib29rU2hlZXRzJiZkZWxldGUgeG8uU2hlZXRzLHhvfX0oKTtmdW5jdGlvbiBpYyhILHJlKXtyZXR1cm4gbkMoSCxyZSl9dmFyIGlDPWZ1bmN0aW9uKCl7dmFyIEg9WyIgIDxvZmZpY2U6bWFzdGVyLXN0eWxlcz4iLCcgICAgPHN0eWxl''@;'; + put 'put ''Om1hc3Rlci1wYWdlIHN0eWxlOm5hbWU9Im1wMSIgc3R5bGU6cGFnZS1sYXlvdXQtbmFtZT0ibXAxIj4nLCIgICAgICA8c3R5bGU6aGVhZGVyLz4iLCcgICAgICA8c3R5bGU6aGVhZGVyLWxlZnQgc3R5bGU6ZGlzcGxheT0iZmFsc2UiLz4nLCIgICAgICA8c3R5bGU6Zm9vdGVyLz4iLCcgICAg''@;'; + put 'put ''ICA8c3R5bGU6Zm9vdGVyLWxlZnQgc3R5bGU6ZGlzcGxheT0iZmFsc2UiLz4nLCIgICAgPC9zdHlsZTptYXN0ZXItcGFnZT4iLCIgIDwvb2ZmaWNlOm1hc3Rlci1zdHlsZXM+Il0uam9pbigiXG4iKSxyZT0iPG9mZmljZTpkb2N1bWVudC1zdHlsZXMgIitybCh7InhtbG5zOm9mZmljZSI6InVy''@;'; + put 'put ''bjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6b2ZmaWNlOjEuMCIsInhtbG5zOnRhYmxlIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczp0YWJsZToxLjAiLCJ4bWxuczpzdHlsZSI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6''@;'; + put 'put ''c3R5bGU6MS4wIiwieG1sbnM6dGV4dCI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6dGV4dDoxLjAiLCJ4bWxuczpkcmF3IjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpkcmF3aW5nOjEuMCIsInhtbG5zOmZvIjoidXJuOm9hc2lzOm5hbWVz''@;'; + put 'put ''OnRjOm9wZW5kb2N1bWVudDp4bWxuczp4c2wtZm8tY29tcGF0aWJsZToxLjAiLCJ4bWxuczp4bGluayI6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bWxuczpkYyI6Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiwieG1sbnM6bnVtYmVyIjoidXJuOm9hc2lzOm5h''@;'; + put 'put ''bWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpkYXRhc3R5bGU6MS4wIiwieG1sbnM6c3ZnIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpzdmctY29tcGF0aWJsZToxLjAiLCJ4bWxuczpvZiI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6b2Y6''@;'; + put 'put ''MS4yIiwib2ZmaWNlOnZlcnNpb24iOiIxLjIifSkrIj5cbiIrSCsiXG48L29mZmljZTpkb2N1bWVudC1zdHlsZXM+IjtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gY24rcmV9fSgpLEo0PWZ1bmN0aW9uKCl7dmFyIEg9ZnVuY3Rpb24oamUsWWUpe3JldHVybiBScihqZSkucmVwbGFjZSgvICAr''@;'; + put 'put ''L2csZnVuY3Rpb24oTXQpe3JldHVybic8dGV4dDpzIHRleHQ6Yz0iJytNdC5sZW5ndGgrJyIvPid9KS5yZXBsYWNlKC9cdC9nLCI8dGV4dDp0YWIvPiIpLnJlcGxhY2UoL1xuL2csWWU/Ijx0ZXh0OmxpbmUtYnJlYWsvPiI6IjwvdGV4dDpwPjx0ZXh0OnA+IikucmVwbGFjZSgvXiAvLCI8dGV4''@;'; + put 'put ''dDpzLz4iKS5yZXBsYWNlKC8gJC8sIjx0ZXh0OnMvPiIpfSxyZT1mdW5jdGlvbihqZSl7cmV0dXJuIGplLm1hcChmdW5jdGlvbihZZSl7dmFyIE10PSIiO3JldHVybiBudWxsIT1ZZS5vZHMmJihNdCs9JyB0ZXh0OnN0eWxlLW5hbWU9IlQnK1llLm9kcysnIicpLFllLnY/Ijx0ZXh0OnNwYW4i''@;'; + put 'put ''K010KyI+IitIKFllLnYsITApKyI8L3RleHQ6c3Bhbj4iOiIifSkuam9pbigiIil9LFg9IiAgICAgICAgICA8dGFibGU6dGFibGUtY2VsbCAvPlxuIix4ZT1mdW5jdGlvbihqZSxZZSxNdCl7dmFyIHh0PVtdO3h0LnB1c2goJyAgICAgIDx0YWJsZTp0YWJsZSB0YWJsZTpuYW1lPSInK1JyKFll''@;'; + put 'put ''LlNoZWV0TmFtZXNbTXRdKSsnIiB0YWJsZTpzdHlsZS1uYW1lPSJ0YTEiPlxuJyk7dmFyIFJ0PTAsWXQ9MCxubj12cyhqZVsiIXJlZiJdfHwiQTEiKSxDbj1qZVsiIW1lcmdlcyJdfHxbXSxEdD0wLHp0PUFycmF5LmlzQXJyYXkoamUpO2lmKGplWyIhY29scyJdKWZvcihZdD0wO1l0PD1ubi5l''@;'; + put 'put ''LmM7KytZdCl4dC5wdXNoKCIgICAgICAgIDx0YWJsZTp0YWJsZS1jb2x1bW4iKyhqZVsiIWNvbHMiXVtZdF0/JyB0YWJsZTpzdHlsZS1uYW1lPSJjbycramVbIiFjb2xzIl1bWXRdLm9kcysnIic6IiIpKyI+PC90YWJsZTp0YWJsZS1jb2x1bW4+XG4iKTt2YXIgVG49amVbIiFyb3dzIl18fFtd''@;'; + put 'put ''O2ZvcihSdD0wO1J0PG5uLnMucjsrK1J0KXh0LnB1c2goIiAgICAgICAgPHRhYmxlOnRhYmxlLXJvdyIrKFRuW1J0XT8nIHRhYmxlOnN0eWxlLW5hbWU9InJvJytUbltSdF0ub2RzKyciJzoiIikrIj48L3RhYmxlOnRhYmxlLXJvdz5cbiIpO2Zvcig7UnQ8PW5uLmUucjsrK1J0KXtmb3IoeHQu''@;'; + put 'put ''cHVzaCgiICAgICAgICA8dGFibGU6dGFibGUtcm93IisoVG5bUnRdPycgdGFibGU6c3R5bGUtbmFtZT0icm8nK1RuW1J0XS5vZHMrJyInOiIiKSsiPlxuIiksWXQ9MDtZdDxubi5zLmM7KytZdCl4dC5wdXNoKFgpO2Zvcig7WXQ8PW5uLmUuYzsrK1l0KXt2YXIgT249ITEsV249e30sTXI9IiI7''@;'; + put 'put ''Zm9yKER0PTA7RHQhPUNuLmxlbmd0aDsrK0R0KWlmKCEoQ25bRHRdLnMuYz5ZdHx8Q25bRHRdLnMucj5SdHx8Q25bRHRdLmUuYzxZdHx8Q25bRHRdLmUucjxSdCkpeyhDbltEdF0ucy5jIT1ZdHx8Q25bRHRdLnMuciE9UnQpJiYoT249ITApLFduWyJ0YWJsZTpudW1iZXItY29sdW1ucy1zcGFu''@;'; + put 'put ''bmVkIl09Q25bRHRdLmUuYy1DbltEdF0ucy5jKzEsV25bInRhYmxlOm51bWJlci1yb3dzLXNwYW5uZWQiXT1DbltEdF0uZS5yLUNuW0R0XS5zLnIrMTticmVha31pZihPbil4dC5wdXNoKCIgICAgICAgICAgPHRhYmxlOmNvdmVyZWQtdGFibGUtY2VsbC8+XG4iKTtlbHNle3ZhciBhaT1ZMCh7''@;'; + put 'put ''cjpSdCxjOll0fSkseXI9enQ/KGplW1J0XXx8W10pW1l0XTpqZVthaV07aWYoeXImJnlyLmYmJihXblsidGFibGU6Zm9ybXVsYSJdPVJyKGV4KHlyLmYpKSx5ci5GJiZ5ci5GLnNsaWNlKDAsYWkubGVuZ3RoKT09YWkpKXt2YXIgYXI9dnMoeXIuRik7V25bInRhYmxlOm51bWJlci1tYXRyaXgt''@;'; + put 'put ''Y29sdW1ucy1zcGFubmVkIl09YXIuZS5jLWFyLnMuYysxLFduWyJ0YWJsZTpudW1iZXItbWF0cml4LXJvd3Mtc3Bhbm5lZCJdPWFyLmUuci1hci5zLnIrMX1pZih5cil7c3dpdGNoKHlyLnQpe2Nhc2UiYiI6TXI9eXIudj8iVFJVRSI6IkZBTFNFIixXblsib2ZmaWNlOnZhbHVlLXR5cGUiXT0i''@;'; + put 'put ''Ym9vbGVhbiIsV25bIm9mZmljZTpib29sZWFuLXZhbHVlIl09eXIudj8idHJ1ZSI6ImZhbHNlIjticmVhaztjYXNlIm4iOk1yPXlyLnd8fFN0cmluZyh5ci52fHwwKSxXblsib2ZmaWNlOnZhbHVlLXR5cGUiXT0iZmxvYXQiLFduWyJvZmZpY2U6dmFsdWUiXT15ci52fHwwO2JyZWFrO2Nhc2Ui''@;'; + put 'put ''cyI6Y2FzZSJzdHIiOk1yPXlyLnYsV25bIm9mZmljZTp2YWx1ZS10eXBlIl09InN0cmluZyI7YnJlYWs7Y2FzZSJkIjpNcj15ci53fHxkbih5ci52KS50b0lTT1N0cmluZygpLFduWyJvZmZpY2U6dmFsdWUtdHlwZSJdPSJkYXRlIixXblsib2ZmaWNlOmRhdGUtdmFsdWUiXT1kbih5ci52KS50''@;'; + put 'put ''b0lTT1N0cmluZygpLFduWyJ0YWJsZTpzdHlsZS1uYW1lIl09ImNlMSI7YnJlYWs7ZGVmYXVsdDp4dC5wdXNoKFgpO2NvbnRpbnVlfW51bGwhPXlyLm9kcyYmIVduWyJ0YWJsZTpzdHlsZS1uYW1lIl0mJihXblsidGFibGU6c3R5bGUtbmFtZSJdPSJjZSIreXIub2RzKTt2YXIgR3I9IXlyLlJ8''@;'; + put 'put ''fHlyLmwmJnlyLmwuVGFyZ2V0P0goTXIpOnJlKHlyLlIpO2lmKHlyLmwmJnlyLmwuVGFyZ2V0KXt2YXIgenI9eXIubC5UYXJnZXQ7IiMiIT0oenI9IiMiPT16ci5jaGFyQXQoMCk/IiMiK2NfKHpyLnNsaWNlKDEpKTp6cikuY2hhckF0KDApJiYhenIubWF0Y2goL15cdys6LykmJih6cj0iLi4v''@;'; + put 'put ''Iit6ciksR3I9YmkoInRleHQ6YSIsR3IseyJ4bGluazpocmVmIjp6ci5yZXBsYWNlKC8mL2csIiZhbXA7Iil9KX14dC5wdXNoKCIgICAgICAgICAgIitiaSgidGFibGU6dGFibGUtY2VsbCIsYmkoInRleHQ6cCIsR3Ise30pLFduKSsiXG4iKX1lbHNlIHh0LnB1c2goWCl9fXh0LnB1c2goIiAg''@;'; + put 'put ''ICAgICAgPC90YWJsZTp0YWJsZS1yb3c+XG4iKX1yZXR1cm4geHQucHVzaCgiICAgICAgPC90YWJsZTp0YWJsZT5cbiIpLHh0LmpvaW4oIiIpfSxGZT17Y2VudGVyOiJjZW50ZXIiLGxlZnQ6InN0YXJ0IixyaWdodDoiZW5kIn07cmV0dXJuIGZ1bmN0aW9uKFllLE10KXt2YXIgeHQ9W2NuXSxS''@;'; + put 'put ''dD1ybCh7InhtbG5zOm9mZmljZSI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6b2ZmaWNlOjEuMCIsInhtbG5zOnRhYmxlIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczp0YWJsZToxLjAiLCJ4bWxuczpzdHlsZSI6InVybjpvYXNpczpuYW1l''@;'; + put 'put ''czp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6c3R5bGU6MS4wIiwieG1sbnM6dGV4dCI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6dGV4dDoxLjAiLCJ4bWxuczpkcmF3IjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpkcmF3aW5nOjEuMCIsInht''@;'; + put 'put ''bG5zOmZvIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczp4c2wtZm8tY29tcGF0aWJsZToxLjAiLCJ4bWxuczp4bGluayI6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bWxuczpkYyI6Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiwieG1s''@;'; + put 'put ''bnM6bWV0YSI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6bWV0YToxLjAiLCJ4bWxuczpudW1iZXIiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmRhdGFzdHlsZToxLjAiLCJ4bWxuczpwcmVzZW50YXRpb24iOiJ1cm46b2FzaXM6bmFtZXM6''@;'; + put 'put ''dGM6b3BlbmRvY3VtZW50OnhtbG5zOnByZXNlbnRhdGlvbjoxLjAiLCJ4bWxuczpzdmciOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnN2Zy1jb21wYXRpYmxlOjEuMCIsInhtbG5zOmNoYXJ0IjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpj''@;'; + put 'put ''aGFydDoxLjAiLCJ4bWxuczpkcjNkIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpkcjNkOjEuMCIsInhtbG5zOm1hdGgiOiJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIiwieG1sbnM6Zm9ybSI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1l''@;'; + put 'put ''bnQ6eG1sbnM6Zm9ybToxLjAiLCJ4bWxuczpzY3JpcHQiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnNjcmlwdDoxLjAiLCJ4bWxuczpvb28iOiJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNC9vZmZpY2UiLCJ4bWxuczpvb293IjoiaHR0cDovL29wZW5vZmZpY2Uu''@;'; + put 'put ''b3JnLzIwMDQvd3JpdGVyIiwieG1sbnM6b29vYyI6Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDA0L2NhbGMiLCJ4bWxuczpkb20iOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxL3htbC1ldmVudHMiLCJ4bWxuczp4Zm9ybXMiOiJodHRwOi8vd3d3LnczLm9yZy8yMDAyL3hmb3JtcyIsInhtbG5z''@;'; + put 'put ''OnhzZCI6Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiwieG1sbnM6eHNpIjoiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLCJ4bWxuczpzaGVldCI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6c2gzM3RqczoxLjAiLCJ4bWxuczpy''@;'; + put 'put ''cHQiOiJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNS9yZXBvcnQiLCJ4bWxuczpvZiI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6b2Y6MS4yIiwieG1sbnM6eGh0bWwiOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwieG1sbnM6Z3JkZGwiOiJodHRwOi8v''@;'; + put 'put ''d3d3LnczLm9yZy8yMDAzL2cvZGF0YS12aWV3IyIsInhtbG5zOnRhYmxlb29vIjoiaHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMDkvdGFibGUiLCJ4bWxuczpkcmF3b29vIjoiaHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMTAvZHJhdyIsInhtbG5zOmNhbGNleHQiOiJ1cm46b3JnOmRvY3VtZW50''@;'; + put 'put ''Zm91bmRhdGlvbjpuYW1lczpleHBlcmltZW50YWw6Y2FsYzp4bWxuczpjYWxjZXh0OjEuMCIsInhtbG5zOmxvZXh0IjoidXJuOm9yZzpkb2N1bWVudGZvdW5kYXRpb246bmFtZXM6ZXhwZXJpbWVudGFsOm9mZmljZTp4bWxuczpsb2V4dDoxLjAiLCJ4bWxuczpmaWVsZCI6InVybjpvcGVub2Zm''@;'; + put 'put ''aWNlOm5hbWVzOmV4cGVyaW1lbnRhbDpvb28tbXMtaW50ZXJvcDp4bWxuczpmaWVsZDoxLjAiLCJ4bWxuczpmb3JteCI6InVybjpvcGVub2ZmaWNlOm5hbWVzOmV4cGVyaW1lbnRhbDpvb3htbC1vZGYtaW50ZXJvcDp4bWxuczpmb3JtOjEuMCIsInhtbG5zOmNzczN0IjoiaHR0cDovL3d3dy53''@;'; + put 'put ''My5vcmcvVFIvY3NzMy10ZXh0LyIsIm9mZmljZTp2ZXJzaW9uIjoiMS4yIn0pLFl0PXJsKHsieG1sbnM6Y29uZmlnIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpjb25maWc6MS4wIiwib2ZmaWNlOm1pbWV0eXBlIjoiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5k''@;'; + put 'put ''b2N1bWVudC5zcHJlYWRzaGVldCJ9KTsiZm9kcyI9PU10LmJvb2tUeXBlPyh4dC5wdXNoKCI8b2ZmaWNlOmRvY3VtZW50IitSdCtZdCsiPlxuIikseHQucHVzaCgkbygpLnJlcGxhY2UoL29mZmljZTpkb2N1bWVudC1tZXRhL2csIm9mZmljZTptZXRhIikpKTp4dC5wdXNoKCI8b2ZmaWNlOmRv''@;'; + put 'put ''Y3VtZW50LWNvbnRlbnQiK1J0KyI+XG4iKSxmdW5jdGlvbihqZSxZZSl7dmFyIE10PVtdLHh0PXt9O010LnB1c2goIiA8b2ZmaWNlOmF1dG9tYXRpYy1zdHlsZXM+XG4iKSxNdC5wdXNoKCcgIDxudW1iZXI6ZGF0ZS1zdHlsZSBzdHlsZTpuYW1lPSJOMzciIG51bWJlcjphdXRvbWF0aWMtb3Jk''@;'; + put 'put ''ZXI9InRydWUiPlxuJyksTXQucHVzaCgnICAgPG51bWJlcjptb250aCBudW1iZXI6c3R5bGU9ImxvbmciLz5cbicpLE10LnB1c2goIiAgIDxudW1iZXI6dGV4dD4vPC9udW1iZXI6dGV4dD5cbiIpLE10LnB1c2goJyAgIDxudW1iZXI6ZGF5IG51bWJlcjpzdHlsZT0ibG9uZyIvPlxuJyksTXQu''@;'; + put 'put ''cHVzaCgiICAgPG51bWJlcjp0ZXh0Pi88L251bWJlcjp0ZXh0PlxuIiksTXQucHVzaCgiICAgPG51bWJlcjp5ZWFyLz5cbiIpLE10LnB1c2goIiAgPC9udW1iZXI6ZGF0ZS1zdHlsZT5cbiIpO3ZhciBSdD0wO1llLlNoZWV0TmFtZXMubWFwKGZ1bmN0aW9uKER0KXtyZXR1cm4gWWUuU2hlZXRz''@;'; + put 'put ''W0R0XX0pLmZvckVhY2goZnVuY3Rpb24oRHQpe2lmKER0JiZEdFsiIWNvbHMiXSlmb3IodmFyIHp0PTA7enQ8RHRbIiFjb2xzIl0ubGVuZ3RoOysrenQpaWYoRHRbIiFjb2xzIl1benRdKXt2YXIgUG49RHRbIiFjb2xzIl1benRdO2lmKG51bGw9PVBuLndpZHRoJiZudWxsPT1Qbi53cHgmJm51''@;'; + put 'put ''bGw9PVBuLndjaCljb250aW51ZTt5YyhQbiksUG4ub2RzPVJ0O3ZhciBUbj1EdFsiIWNvbHMiXVt6dF0ud3B4KyJweCI7TXQucHVzaCgnICA8c3R5bGU6c3R5bGUgc3R5bGU6bmFtZT0iY28nK1J0KyciIHN0eWxlOmZhbWlseT0idGFibGUtY29sdW1uIj5cbicpLE10LnB1c2goJyAgIDxzdHls''@;'; + put 'put ''ZTp0YWJsZS1jb2x1bW4tcHJvcGVydGllcyBmbzpicmVhay1iZWZvcmU9ImF1dG8iIHN0eWxlOmNvbHVtbi13aWR0aD0iJytUbisnIi8+XG4nKSxNdC5wdXNoKCIgIDwvc3R5bGU6c3R5bGU+XG4iKSwrK1J0fX0pO3ZhciBZdD0wO1llLlNoZWV0TmFtZXMubWFwKGZ1bmN0aW9uKER0KXtyZXR1''@;'; + put 'put ''cm4gWWUuU2hlZXRzW0R0XX0pLmZvckVhY2goZnVuY3Rpb24oRHQpe2lmKER0JiZEdFsiIXJvd3MiXSlmb3IodmFyIHp0PTA7enQ8RHRbIiFyb3dzIl0ubGVuZ3RoOysrenQpaWYoRHRbIiFyb3dzIl1benRdKXtEdFsiIXJvd3MiXVt6dF0ub2RzPVl0O3ZhciBQbj1EdFsiIXJvd3MiXVt6dF0u''@;'; + put 'put ''aHB4KyJweCI7TXQucHVzaCgnICA8c3R5bGU6c3R5bGUgc3R5bGU6bmFtZT0icm8nK1l0KyciIHN0eWxlOmZhbWlseT0idGFibGUtcm93Ij5cbicpLE10LnB1c2goJyAgIDxzdHlsZTp0YWJsZS1yb3ctcHJvcGVydGllcyBmbzpicmVhay1iZWZvcmU9ImF1dG8iIHN0eWxlOnJvdy1oZWlnaHQ9''@;'; + put 'put ''IicrUG4rJyIvPlxuJyksTXQucHVzaCgiICA8L3N0eWxlOnN0eWxlPlxuIiksKytZdH19KSxNdC5wdXNoKCcgIDxzdHlsZTpzdHlsZSBzdHlsZTpuYW1lPSJ0YTEiIHN0eWxlOmZhbWlseT0idGFibGUiIHN0eWxlOm1hc3Rlci1wYWdlLW5hbWU9Im1wMSI+XG4nKSxNdC5wdXNoKCcgICA8c3R5''@;'; + put 'put ''bGU6dGFibGUtcHJvcGVydGllcyB0YWJsZTpkaXNwbGF5PSJ0cnVlIiBzdHlsZTp3cml0aW5nLW1vZGU9ImxyLXRiIi8+XG4nKSxNdC5wdXNoKCIgIDwvc3R5bGU6c3R5bGU+XG4iKSxNdC5wdXNoKCcgIDxzdHlsZTpzdHlsZSBzdHlsZTpuYW1lPSJjZTEiIHN0eWxlOmZhbWlseT0idGFibGUt''@;'; + put 'put ''Y2VsbCIgc3R5bGU6cGFyZW50LXN0eWxlLW5hbWU9IkRlZmF1bHQiIHN0eWxlOmRhdGEtc3R5bGUtbmFtZT0iTjM3Ii8+XG4nKTt2YXIgbm49MjtZdD0wLFllLlNoZWV0TmFtZXMubWFwKGZ1bmN0aW9uKER0KXtyZXR1cm4gWWUuU2hlZXRzW0R0XX0pLmZvckVhY2goZnVuY3Rpb24oRHQpe2lm''@;'; + put 'put ''KER0KWZvcih2YXIgenQ9MCxQbj0wLFRuPXZzKER0WyIhcmVmIl0pLE9uPUFycmF5LmlzQXJyYXkoRHQpO3p0PD1Ubi5lLnI7Kyt6dClmb3IoUG49MDtQbjw9VG4uZS5jOysrUG4pe3ZhciBXbj1ZMCh7cjp6dCxjOlBufSksTXI9T24/KER0W3p0XXx8W10pW1BuXTpEdFtXbl07aWYoTXImJihN''@;'; + put 'put ''ci5zfHxNci5SKSl7dmFyIGFpPVtdO01yLnMmJmFpLnB1c2goW01yLCEwXSksTXIuUiYmTXIuUi5mb3JFYWNoKGZ1bmN0aW9uKHlyKXt5ciYmeXIucyYmYWkucHVzaChbeXIsITFdKX0pLGFpLmZvckVhY2goZnVuY3Rpb24oeXIpe3ZhciBhcj15clswXSxHcj1hci5zLHpyPSIiLHFyPXsic3R5''@;'; + put 'put ''bGU6bmFtZSI6KHlyWzFdPyJjZSI6IlQiKStubiwic3R5bGU6ZmFtaWx5Ijp5clsxXT8idGFibGUtY2VsbCI6InRleHQifTt5clsxXSYmKHFyWyJzdHlsZTpwYXJlbnQtc3R5bGUtbmFtZSJdPSJEZWZhdWx0Iixxclsic3R5bGU6ZGF0YS1zdHlsZS1uYW1lIl09Ik4wIik7dmFyIG9pPXt9LGNy''@;'; + put 'put ''PSExLGRpPXt9LHYwPSExLFVpPXt9LHRvPSExO2lmKEdyLmNvbG9yJiYoZGlbImZvOmNvbG9yIl09IiMiK0xvKEdyLmNvbG9yLnJnYiksdjA9ITApLEdyLnN6JiYoZGlbImZvOmZvbnQtc2l6ZSJdPUdyLnN6KyJwdCIsdjA9ITApLEdyLmJvbGQmJihkaVsiZm86Zm9udC13ZWlnaHQiXT0iYm9s''@;'; + put 'put ''ZCIsdjA9ITApLEdyLml0YWxpYyYmKGRpWyJmbzpmb250LXN0eWxlIl09Iml0YWxpYyIsdjA9ITApLEdyLm5hbWUmJih4dFtHci5uYW1lXXx8KHh0W0dyLm5hbWVdPUdyLm5hbWUubWF0Y2goLyAvKT8iJmFwb3M7IitHci5uYW1lKyImYXBvczsiOkdyLm5hbWUpLGRpWyJzdHlsZTpmb250LW5h''@;'; + put 'put ''bWUiXT1Hci5uYW1lLHYwPSEwKSxHci5zdHJpa2UmJihkaVsic3R5bGU6dGV4dC1saW5lLXRocm91Z2gtc3R5bGUiXT0ic29saWQiLGRpWyJzdHlsZTp0ZXh0LWxpbmUtdGhyb3VnaC10eXBlIl09InNpbmdsZSIsdjA9ITApLEdyLnVuZGVybGluZSYmKGRpWyJzdHlsZTp0ZXh0LXVuZGVybGlu''@;'; + put 'put ''ZS1zdHlsZSJdPSJzb2xpZCIsZGlbInN0eWxlOnRleHQtdW5kZXJsaW5lLXdpZHRoIl09ImF1dG8iLGRpWyJzdHlsZTp0ZXh0LXVuZGVybGluZS1jb2xvciJdPSJmb250LWNvbG9yIix2MD0hMCkseXJbMV0pe2lmKEdyLmFsaWdubWVudCl7dmFyIEEwPUdyLmFsaWdubWVudDtBMC53cmFwVGV4''@;'; + put 'put ''dCYmKG9pWyJmbzp3cmFwLW9wdGlvbiJdPSJ3cmFwIixjcj0hMCksQTAudmVydGljYWwmJihvaVsic3R5bGU6dmVydGljYWwtYWxpZ24iXT0iY2VudGVyIj09QTAudmVydGljYWw/Im1pZGRsZSI6QTAudmVydGljYWwsY3I9ITApLEZlW0EwLmhvcml6b250YWxdJiYoVWlbImZvOnRleHQtYWxp''@;'; + put 'put ''Z24iXT1GZVtBMC5ob3Jpem9udGFsXSx0bz0hMCl9R3IuZmdDb2xvciYmKG9pWyJmbzpiYWNrZ3JvdW5kLWNvbG9yIl09IiMiK0xvKEdyLmZnQ29sb3IucmdiKSxjcj0hMCl9Y3ImJih6cis9YmkoInN0eWxlOnRhYmxlLWNlbGwtcHJvcGVydGllcyIsbnVsbCxvaSkpLHYwJiYoenIrPWJpKCJz''@;'; + put 'put ''dHlsZTp0ZXh0LXByb3BlcnRpZXMiLG51bGwsZGkpKSx0byYmKHpyKz1iaSgic3R5bGU6cGFyYWdyYXBoLXByb3BlcnRpZXMiLG51bGwsVWkpKSxNdC5wdXNoKCIgICIrYmkoInN0eWxlOnN0eWxlIix6cixxcikrIlxuIiksYXIub2RzPW5uLCsrbm59KX19fSksTXQucHVzaCgiIDwvb2ZmaWNl''@;'; + put 'put ''OmF1dG9tYXRpYy1zdHlsZXM+XG4iKTt2YXIgQ249IiA8b2ZmaWNlOmZvbnQtZmFjZS1kZWNscz5cbiIrb24oeHQpLm1hcChmdW5jdGlvbihEdCl7cmV0dXJuJyAgPHN0eWxlOmZvbnQtZmFjZSBzdHlsZTpuYW1lPSInK0R0KyciIHN2Zzpmb250LWZhbWlseT0iJyt4dFtEdF0rJyIvPlxuJ30p''@;'; + put 'put ''LmpvaW4oIiIpKyIgPC9vZmZpY2U6Zm9udC1mYWNlLWRlY2xzPlxuIjtqZS5wdXNoKENuKSxqZS5wdXNoKE10LmpvaW4oIiIpKX0oeHQsWWUpLHh0LnB1c2goIiAgPG9mZmljZTpib2R5PlxuIikseHQucHVzaCgiICAgIDxvZmZpY2U6c3ByZWFkc2hlZXQ+XG4iKTtmb3IodmFyIG5uPTA7bm4h''@;'; + put 'put ''PVllLlNoZWV0TmFtZXMubGVuZ3RoOysrbm4peHQucHVzaCh4ZShZZS5TaGVldHNbWWUuU2hlZXROYW1lc1tubl1dLFllLG5uKSk7cmV0dXJuIHh0LnB1c2goIiAgICA8L29mZmljZTpzcHJlYWRzaGVldD5cbiIpLHh0LnB1c2goIiAgPC9vZmZpY2U6Ym9keT5cbiIpLHh0LnB1c2goImZvZHMi''@;'; + put 'put ''PT1NdC5ib29rVHlwZT8iPC9vZmZpY2U6ZG9jdW1lbnQ+IjoiPC9vZmZpY2U6ZG9jdW1lbnQtY29udGVudD4iKSx4dC5qb2luKCIiKX19KCk7ZnVuY3Rpb24geEEoSCxyZSl7aWYoImZvZHMiPT1yZS5ib29rVHlwZSlyZXR1cm4gSjQoSCxyZSk7dmFyIFg9a3IoKSx3ZT0iIix4ZT1bXSxGZT1b''@;'; + put 'put ''XTtyZXR1cm4gem4oWCx3ZT0ibWltZXR5cGUiLCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0Iiksem4oWCx3ZT0iY29udGVudC54bWwiLEo0KEgscmUpKSx4ZS5wdXNoKFt3ZSwidGV4dC94bWwiXSksRmUucHVzaChbd2UsIkNvbnRlbnRGaWxlIl0pLHpu''@;'; + put 'put ''KFgsd2U9InN0eWxlcy54bWwiLGlDKEgscmUpKSx4ZS5wdXNoKFt3ZSwidGV4dC94bWwiXSksRmUucHVzaChbd2UsIlN0eWxlc0ZpbGUiXSksem4oWCx3ZT0ibWV0YS54bWwiLGNuKyRvKCkpLHhlLnB1c2goW3dlLCJ0ZXh0L3htbCJdKSxGZS5wdXNoKFt3ZSwiTWV0YWRhdGFGaWxlIl0pLHpu''@;'; + put 'put ''KFgsd2U9Im1hbmlmZXN0LnJkZiIsZnVuY3Rpb24gU2koSCl7dmFyIHJlPVtjbl07cmUucHVzaCgnPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj5cbicpO2Zvcih2YXIgWD0wO1ghPUgubGVuZ3RoOysrWClyZS5wdXNoKF8o''@;'; + put 'put ''SFtYXVswXSxIW1hdWzFdKSkscmUucHVzaChBbygiIixIW1hdWzBdKSk7cmV0dXJuIHJlLnB1c2goXygiIiwiRG9jdW1lbnQiLCJwa2ciKSkscmUucHVzaCgiPC9yZGY6UkRGPiIpLHJlLmpvaW4oIiIpfShGZSkpLHhlLnB1c2goW3dlLCJhcHBsaWNhdGlvbi9yZGYreG1sIl0pLHpuKFgsd2U9''@;'; + put 'put ''Ik1FVEEtSU5GL21hbmlmZXN0LnhtbCIsZnVuY3Rpb24gam4oSCl7dmFyIHJlPVtjbl07cmUucHVzaCgnPG1hbmlmZXN0Om1hbmlmZXN0IHhtbG5zOm1hbmlmZXN0PSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm1hbmlmZXN0OjEuMCIgbWFuaWZlc3Q6dmVyc2lvbj0i''@;'; + put 'put ''MS4yIj5cbicpLHJlLnB1c2goJyAgPG1hbmlmZXN0OmZpbGUtZW50cnkgbWFuaWZlc3Q6ZnVsbC1wYXRoPSIvIiBtYW5pZmVzdDp2ZXJzaW9uPSIxLjIiIG1hbmlmZXN0Om1lZGlhLXR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQiLz5cbicpO2Zv''@;'; + put 'put ''cih2YXIgWD0wO1g8SC5sZW5ndGg7KytYKXJlLnB1c2goJyAgPG1hbmlmZXN0OmZpbGUtZW50cnkgbWFuaWZlc3Q6ZnVsbC1wYXRoPSInK0hbWF1bMF0rJyIgbWFuaWZlc3Q6bWVkaWEtdHlwZT0iJytIW1hdWzFdKyciLz5cbicpO3JldHVybiByZS5wdXNoKCI8L21hbmlmZXN0Om1hbmlmZXN0''@;'; + put 'put ''PiIpLHJlLmpvaW4oIiIpfSh4ZSkpLFh9ZnVuY3Rpb24gamgoSCl7cmV0dXJuIGZ1bmN0aW9uKFgsd2Upe3ZhciB4ZT1mdW5jdGlvbiBPUChILHJlKXtpZighcmUpcmV0dXJuIDA7dmFyIFg9SC5TaGVldE5hbWVzLmluZGV4T2YocmUpO2lmKC0xPT1YKXRocm93IG5ldyBFcnJvcigiU2hlZXQg''@;'; + put 'put ''bm90IGZvdW5kOiAiK3JlKTtyZXR1cm4gWH0oWCx3ZS5zaGVldCk7cmV0dXJuIEguZnJvbV9zaGVldChYLlNoZWV0c1tYLlNoZWV0TmFtZXNbeGVdXSx3ZSxYKX19dmFyIE5kPWpoKHVzKSxUQT1qaCh7ZnJvbV9zaGVldDpMNX0pLG9DPWpoKHZvaWQgMCE9PWZtP2ZtOnt9KSxhQz1qaCh2b2lk''@;'; + put 'put ''IDAhPT1nYj9nYjp7fSksc2k9amgodm9pZCAwIT09QTM/QTM6e30pLFJQPWpoKHZvaWQgMCE9PUV2P0V2Ont9KSxsVD1qaCh7ZnJvbV9zaGVldDpwQ30pLGxDPWpoKHZvaWQgMCE9PVlmP1lmOnt9KSxWbD1qaCh2b2lkIDAhPT1VTT9VTTp7fSksRnM9TCg0MTM0OCl8fCJ1bmRlZmluZWQiIT10''@;'; + put 'put ''eXBlb2Ygd2luZG93JiZ3aW5kb3cuY3J5cHRvQnJvd3NlcmlmeTtpZighRnMpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBjcnlwdG8gZXh0ZW5zaW9ucyEiKTt2YXIgc0M9e1NIQTUxMjoic2hhNTEyIixTSEEyNTY6InNoYTI1NiIsU0hBMzg0OiJzaGEzODQiLFNIQTE6InNoYTEiLE1E''@;'; + put 'put ''NToibWQ1IixNRDQ6Im1kNCIsTUQyOiJtZDIifTtmdW5jdGlvbiBrMihILHJlKXtzd2l0Y2gocmU9KHJlfHwiIikucmVwbGFjZSgvLS9nLCIiKSl7Y2FzZSJTSEEtNTEyIjpjYXNlIlNIQTUxMiI6cmV0dXJuIG5ldyBGcy5jcmVhdGVIYXNoKCJzaGE1MTIiKS51cGRhdGUoSCkuZGlnZXN0KCk7''@;'; + put 'put ''Y2FzZSJTSEEtMSI6Y2FzZSJTSEExIjpyZXR1cm4gbmV3IEZzLmNyZWF0ZUhhc2goInNoYTEiKS51cGRhdGUoSCkuZGlnZXN0KCk7Y2FzZSJNRDIiOnJldHVybiBuZXcgRnMuY3JlYXRlSGFzaCgibWQyIikudXBkYXRlKEgpLmRpZ2VzdCgpO2RlZmF1bHQ6aWYoc0NbcmVdKXJldHVybiBuZXcg''@;'; + put 'put ''RnMuY3JlYXRlSGFzaChzQ1tyZV0pLnVwZGF0ZShIKS5kaWdlc3QoKTt0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGhhc2ggYWxnb3JpdGhtICIrcmUpfX1mdW5jdGlvbiBPNihILHJlLFgpe2lmKCJyYzIiPT1YKXRocm93IlVuc3VwcG9ydGVkIFJDMiI7dmFyIHdlPUZzLmNyZWF0ZURl''@;'; + put 'put ''Y2lwaGVyaXYoWHx8ImFlcy0yNTYtY2JjIixILHJlKTtyZXR1cm4gd2Uuc2V0QXV0b1BhZGRpbmcoITEpLHdlfWZ1bmN0aW9uIHNUKEgscmUpe3ZhciBYPUJ1ZmZlci5mcm9tKEguc2FsdCwiYmFzZTY0Iiksd2U9SC5hbGdvLHhlPWsyKEJ1ZmZlci5jb25jYXQoW1gsQnVmZmVyLmZyb20oY3B0''@;'; + put 'put ''YWJsZS51dGlscy5lbmNvZGUoMTIwMCxyZSkpXSksd2UpLEZlPUJ1ZmZlci5hbGxvYyg0KTtLbChGZSwwKTtmb3IodmFyIFplPTA7WmU8SC5zcGluOysrWmUpRmUubD0wLEZlLndyaXRlX3NoaWZ0KDQsWmUpLHhlPWsyKEJ1ZmZlci5jb25jYXQoW3hlLEZlXSksd2UpO3ZhciBqZT1CdWZmZXIu''@;'; + put 'put ''ZnJvbShILmhhc2gsImJhc2U2NCIpO3JldHVybiAwPT14ZS5jb21wYXJlKGplKX1mdW5jdGlvbiBMaShIKXt2YXIgcmU9e2FsZ286IlNIQS01MTIiLHNhbHQ6IlUyaGxaWFJLVXk1amIyMHZlR3h6ZUE9PSIsc3BpbjoxZTN9LFg9QnVmZmVyLmZyb20ocmUuc2FsdCwiYmFzZTY0Iiksd2U9cmUu''@;'; + put 'put ''YWxnbyx4ZT1rMihCdWZmZXIuY29uY2F0KFtYLEJ1ZmZlci5mcm9tKGNwdGFibGUudXRpbHMuZW5jb2RlKDEyMDAsSCkpXSksd2UpLEZlPUJ1ZmZlci5hbGxvYyg0KTtLbChGZSwwKTtmb3IodmFyIFplPTA7WmU8cmUuc3BpbjsrK1plKUZlLmw9MCxGZS53cml0ZV9zaGlmdCg0LFplKSx4ZT1r''@;'; + put 'put ''MihCdWZmZXIuY29uY2F0KFt4ZSxGZV0pLHdlKTtyZXR1cm4gcmUuaGFzaD14ZS50b1N0cmluZygiYmFzZTY0IikscmV9ZnVuY3Rpb24gSG8oSCxyZSxYLHdlKXt2YXIgeGU9dnQudXRpbHMucHJlcF9ibG9iO2lmKCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2L2tl''@;'; + put 'put ''eUVuY3J5cHRvci9wYXNzd29yZCIhPUgudXJpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgRUNNQS0zNzYgQWdpbGUgVVJJICIrSC51cmkpO3ZhciBGZT1ILmVuY3NbMF0sWmU9RmUuaGFzaEFsZ29yaXRobSxqZT0iYWVzLTI1Ni1jYmMiLFllPUJ1ZmZlci5mcm9tKEZlLnNhbHRWYWx1''@;'; + put 'put ''ZSwiYmFzZTY0IiksTXQ9QnVmZmVyLmZyb20oSC5zYWx0VmFsdWUsImJhc2U2NCIpLHh0PStGZS5ibG9ja1NpemUsUnQ9K0ZlLmtleUJpdHM+PjMsWXQ9azIoQnVmZmVyLmNvbmNhdChbWWUsQnVmZmVyLmZyb20oY3B0YWJsZS51dGlscy5lbmNvZGUoMTIwMCxYKSldKSxaZSksbm49QnVmZmVy''@;'; + put 'put ''LmFsbG9jKDQpO3hlKG5uLDApO2Zvcih2YXIgQ249MDtDbjxGZS5zcGluQ291bnQ7KytDbilubi5sPTAsbm4ud3JpdGVfc2hpZnQoNCxDbiksWXQ9azIoQnVmZmVyLmNvbmNhdChbbm4sWXRdKSxaZSk7dmFyIER0PWZ1bmN0aW9uKG9pLGNyLGRpLHYwKXt2YXIgVWk9azIoQnVmZmVyLmNvbmNh''@;'; + put 'put ''dChbb2ksQnVmZmVyLmZyb20oWzIwLDExMCwxMSwyMzEsMTcxLDE3MiwyMDgsMjE0XSldKSx2MCksdG89VWkubGVuZ3RoPj1kaT9VaS5zbGljZSgwLGRpKTpCdWZmZXIuYWxsb2MoZGkpO2lmKFVpLmxlbmd0aDxkaSl7Zm9yKHZhciBBMD0wO0EwPFVpLmxlbmd0aDsrK0EwKXRvW0EwXT1VaVtB''@;'; + put 'put ''MF07Zm9yKDtBMDxkaTsrK0EwKXRvW0EwXT01NH1yZXR1cm4gdG99KFl0LDAsUnQsWmUpO3N3aXRjaChGZS5jaXBoZXJBbGdvcml0aG0pe2Nhc2UiQUVTIjppZigiQ2hhaW5pbmdNb2RlQ0JDIiE9RmUuY2lwaGVyQ2hhaW5pbmcpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBjaXBoZXIg''@;'; + put 'put ''Y2hhaW5pbmcgIitGZS5jaXBoZXJDaGFpbmluZyk7amU9ImFlcy0iK0ZlLmtleUJpdHMrIi1jYmMiO2JyZWFrO2Nhc2UiUkMyIjpqZT0icmMyIjticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgY2lwaGVyIGFsZ28gIitGZS5jaXBoZXJBbGdvcml0aG0pfVllPWZ1''@;'; + put 'put ''bmN0aW9uKHFyKXtmb3IodmFyIG9pPUJ1ZmZlci5hbGxvYyh4dCksY3I9MDtjcjx4dDsrK2NyKW9pW2NyXT1jcjxxci5sZW5ndGg/cXJbY3JdOjU0O3JldHVybiBvaX0oWWUpO3ZhciB6dD1CdWZmZXIuZnJvbShGZS5lbmNyeXB0ZWRLZXlWYWx1ZSwiYmFzZTY0IiksUG49TzYoRHQsWWUsamUp''@;'; + put 'put ''LnVwZGF0ZSh6dCksVG49TzYoazIoQnVmZmVyLmNvbmNhdChbWXQsQnVmZmVyLmZyb20oWzIxNSwxNzAsMTUsMTA5LDQ4LDk3LDUyLDc4XSldKSxaZSkuc2xpY2UoMCxSdCksWWUsamUpLnVwZGF0ZShCdWZmZXIuZnJvbShGZS5lbmNyeXB0ZWRWZXJpZmllckhhc2hWYWx1ZSwiYmFzZTY0Iikp''@;'; + put 'put ''LE9uPWsyKE82KGsyKEJ1ZmZlci5jb25jYXQoW1l0LEJ1ZmZlci5mcm9tKFsyNTQsMTY3LDIxMCwxMTgsNTksNzUsMTU4LDEyMV0pXSksWmUpLnNsaWNlKDAsUnQpLFllLGplKS51cGRhdGUoQnVmZmVyLmZyb20oRmUuZW5jcnlwdGVkVmVyaWZpZXJIYXNoSW5wdXQsImJhc2U2NCIpKSxaZSks''@;'; + put 'put ''V249K0ZlLmhhc2hTaXplfHxNYXRoLm1pbihUbi5sZW5ndGgsT24ubGVuZ3RoKTtpZigwIT1Ubi5zbGljZSgwLFduKS5jb21wYXJlKE9uLnNsaWNlKDAsV24pKSl0aHJvdyBuZXcgRXJyb3IoIkluY29ycmVjdCBQYXNzd29yZCIpO3hlKHJlLDApO3ZhciBNcj1yZS5yZWFkX3NoaWZ0KDQpO3Jl''@;'; + put 'put ''LmwrPTQ7dmFyIGFpPVtdLHlyPUJ1ZmZlci5jb25jYXQoW010LEJ1ZmZlci5hbGxvYyg0KV0pO2Zvcih4ZSh5ciksQ249MDtyZS5sPHJlLmxlbmd0aDspeXIubD1ZZS5sZW5ndGgseXIud3JpdGVfc2hpZnQoNCxDbiksYWkucHVzaChPNihQbixrMihCdWZmZXIuZnJvbSh5ciksWmUpLnNsaWNl''@;'; + put 'put ''KDAsMTYpLGplKS51cGRhdGUoQnVmZmVyLmZyb20ocmUuc2xpY2UocmUubCxyZS5sKzQwOTYpKSkpLHJlLmwrPTQwOTYsKytDbjt2YXIgR3I9QnVmZmVyLmNvbmNhdChhaSkuc2xpY2UoMCxNciksenI9bG4od2UpO3JldHVybiB6ci50eXBlPSJidWZmZXIiLGpkKEdyLHpyKX1mdW5jdGlvbiBr''@;'; + put 'put ''YyhILHJlLFgsd2Upe3ZhciB4ZT12dC51dGlscy5wcmVwX2Jsb2I7aWYoIlN0ZCIhPT1ILnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBCYWQgU3RhbmRhcmQgRW5jcnlwdGlvbiIpO3ZhciBGZT1ILnYuU2FsdCxaZT1ILnYuVmVyaWZpZXIsamU9SC52LlZlcmlmaWVySGFzaDtpZigzNiE9''@;'; + put 'put ''SC5oLkZsYWdzKXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgU3RhbmRhcmQgRW5jcnlwdGlvbiBiYWQgRmxhZ3MiKTt2YXIgWWU9MCxNdD0iIjtzd2l0Y2goSC5oLkFsZ0lEKXtjYXNlIDI2MTI2OlllPTEyOCxNdD0iYWVzLTEyOC1lY2IiO2JyZWFrO2Nhc2UgMjYxMjc6WWU9MTk2LE10PSJh''@;'; + put 'put ''ZXMtMTkyLWVjYiI7YnJlYWs7Y2FzZSAyNjEyODpZZT0yNTYsTXQ9ImFlcy0yNTYtZWNiIjticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgQmFkIFN0YW5kYXJkIEVuY3J5cHRpb24iKX1pZigzMjc3MiE9SC5oLkFsZ0lESGFzaCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEt''@;'; + put 'put ''Mzc2IEJhZCBTdGFuZGFyZCBFbmNyeXB0aW9uIik7aWYoSC5oLktleVNpemUhPVllKXRocm93IG5ldyBFcnJvcigiQWxnSUQvS2V5U2l6ZSBtaXNtYXRjaCIpO2lmKDI0IT1ILmguUHJvdmlkZXJUeXBlKXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgdW5zdXBwb3J0ZWQgUHJvdmlkZXJUeXBl''@;'; + put 'put ''ICIrSC5oLlByb3ZpZGVyVHlwZSk7dmFyIHh0PSJNaWNyb3NvZnQgRW5oYW5jZWQgUlNBIGFuZCBBRVMgQ3J5cHRvZ3JhcGhpYyBQcm92aWRlciI7aWYoSC5oLkNTUE5hbWUuc2xpY2UoMCx4dC5sZW5ndGgpIT09eHQpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBDcnlwdG8gUHJvdmlk''@;'; + put 'put ''ZXIgIitILmguQ1NQTmFtZSk7dmFyIFJ0PSJTSEEtMSIsWXQ9WWU+PjMsbm49azIoQnVmZmVyLmNvbmNhdChbRmUsY3B0YWJsZS51dGlscy5lbmNvZGUoMTIwMCxYKV0pLFJ0KSxDbj1CdWZmZXIuYWxsb2MoNCk7eGUoQ24sMCk7Zm9yKHZhciBEdD0wO0R0PDVlNDsrK0R0KUNuLmw9MCxDbi53''@;'; + put 'put ''cml0ZV9zaGlmdCg0LER0KSxubj1rMihCdWZmZXIuY29uY2F0KFtDbixubl0pLFJ0KTtDbi5sPTAsQ24ud3JpdGVfc2hpZnQoNCwwKTt2YXIgYWksYXIsR3IsenIsUG49KEdyPShhcj1mdW5jdGlvbihvaSxjcixkaSl7Zm9yKHZhciB2MD1CdWZmZXIuYWxsb2MoNjQpLFVpPTA7VWk8djAubGVu''@;'; + put 'put ''Z3RoOysrVWkpdjBbVWldPW9pO2ZvcihVaT0wO1VpPGNyLmxlbmd0aDsrK1VpKXYwW1VpXV49Y3JbVWldO3JldHVybiBrMih2MCxkaSl9KSg1NCxhaT1rMihCdWZmZXIuY29uY2F0KFtubixDbl0pLFJ0KSwiU0hBLTEiKSx6cj1hcig5MixhaSwiU0hBLTEiKSxCdWZmZXIuY29uY2F0KFtHcix6''@;'; + put 'put ''cl0pLnNsaWNlKDAsWXQpKTtpZihPNihQbixCdWZmZXIuYWxsb2MoMCksTXQpLnVwZGF0ZShqZSkuc2xpY2UoMCwyMCkuY29tcGFyZShrMihPNihQbixCdWZmZXIuYWxsb2MoMCksTXQpLnVwZGF0ZShaZSksUnQpKSl0aHJvdyBuZXcgRXJyb3IoIkluY29ycmVjdCBQYXNzd29yZCIpO3hlKHJl''@;'; + put 'put ''LDApO3ZhciBUbj1yZS5yZWFkX3NoaWZ0KDQpO3JlLmwrPTQ7dmFyIE9uPVtdO2ZvcihEdD0wO3JlLmw8cmUubGVuZ3RoOylPbi5wdXNoKE82KFBuLEJ1ZmZlci5hbGxvYygwKSxNdCkudXBkYXRlKHJlLnNsaWNlKHJlLmwscmUubCs0MDk2KSkpLHJlLmwrPTQwOTYsKytEdDtyZXR1cm4gamQo''@;'; + put 'put ''QnVmZmVyLmNvbmNhdChPbikuc2xpY2UoMCxUbiksd2UpfWZ1bmN0aW9uIEk1KEgpe3JldHVyblsoIjAwIisoMjU1JkgpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpLCgiMDAiKyhIPj4+OCYyNTUpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpLCgiMDAiKyhIPj4+MTYmMjU1KS50b1N0cmluZygx''@;'; + put 'put ''NikpLnNsaWNlKC0yKSwoIjAwIisoSD4+PjI0JjI1NSkudG9TdHJpbmcoMTYpKS5zbGljZSgtMildLmpvaW4oIiIpfXZhciBSNj1mdW5jdGlvbihILHJlLFgpe2Zvcih2YXIgd2U9InN0cmluZyI9PXR5cGVvZiByZT9CdWZmZXIuZnJvbShyZSwiaGV4Iik6cmUseGU9InN0cmluZyI9PXR5cGVv''@;'; + put 'put ''ZiBIP0J1ZmZlci5mcm9tKGNwdGFibGUudXRpbHMuZW5jb2RlKDEyMDAsSCkpOkgsRmU9InN0cmluZyI9PXR5cGVvZiBYP0J1ZmZlci5mcm9tKFgsImhleCIpOlgsWmU9azIoeGUsIk1ENSIpLGplPUJ1ZmZlci5jb25jYXQoW1plLnNsaWNlKDAsNSksd2VdKSxZZT0wO1llPDQ7KytZZSlqZT1C''@;'; + put 'put ''dWZmZXIuY29uY2F0KFtqZSxqZV0pO3ZhciBNdD1rMihqZSwiTUQ1Iik7cmV0dXJuKGsyKEJ1ZmZlci5jb25jYXQoW010LnNsaWNlKDAsNSksRmVdKSwiTUQ1IikudG9TdHJpbmcoImhleCIpKyIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpLnNsaWNlKDAsMzIpfSxJQT1mdW5j''@;'; + put 'put ''dGlvbihILHJlLFgpe3ZhciB3ZT0ic3RyaW5nIj09dHlwZW9mIHJlP0J1ZmZlci5mcm9tKHJlLCJoZXgiKTpyZSx4ZT0ic3RyaW5nIj09dHlwZW9mIEg/QnVmZmVyLmZyb20oY3B0YWJsZS51dGlscy5lbmNvZGUoMTIwMCxIKSk6SCxGZT0ic3RyaW5nIj09dHlwZW9mIFg/QnVmZmVyLmZyb20o''@;'; + put 'put ''WCwiaGV4Iik6WCxaZT1rMihCdWZmZXIuY29uY2F0KFt3ZSx4ZV0pLCJTSEExIik7cmV0dXJuIGsyKEJ1ZmZlci5jb25jYXQoW1plLEZlXSksIlNIQTEiKX0sU2Y9ZnVuY3Rpb24oKXtmdW5jdGlvbiByZSgpe31yZS5wcm90b3R5cGUuYnVpbGQ9ZnVuY3Rpb24oRHQpe3RoaXMuX2k9MDt2YXIg''@;'; + put 'put ''enQ9dGhpcy5fYnVpbGQoRHQsIiIpO3JldHVybiIiPT09enQ/IiI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4nK3p0fSxyZS5wcm90b3R5cGUuX2J1aWxkPWZ1bmN0aW9uKER0LHp0KXtpZih0aGlzLl9pKyslMWU2PT0wJiYodGhpcy5f''@;'; + put 'put ''Yz16dFswXSksbnVsbD09RHR8fCJvYmplY3QiIT10eXBlb2YgRHQmJiJmdW5jdGlvbiIhPXR5cGVvZiBEdCludWxsIT1EdCYmKHp0Kz1mdW5jdGlvbiBIKER0LHp0KXtyZXR1cm4gbnVsbD09RHR8fChEdD1EdC50b1N0cmluZygpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2cs''@;'; + put 'put ''IiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKSx6dCYmKER0PUR0LnJlcGxhY2UoLyIvZywiJnF1b3Q7IikpKSxEdH0oRHQpKTtlbHNle2lmKCFEdC5uYW1lKXRocm93IG5ldyBFcnJvcigiWE1MIG5vZGUgZG9lcyBub3QgaGF2ZSBuYW1lOiAiK0pTT04uc3RyaW5naWZ5KER0KSk7enQrPSI8''@;'; + put 'put ''IitEdC5uYW1lO3ZhciBQbj10aGlzO3p0Kz1EdC5hdHRyaWJ1dGVzJiZybChEdC5hdHRyaWJ1dGVzKXx8IiIsQXJyYXkuaXNBcnJheShEdC5jaGlsZHJlbikmJjAhPUR0LmNoaWxkcmVuLmxlbmd0aD8oenQrPSI+IixEdC5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKFRuKXt6dD1Qbi5fYnVp''@;'; + put 'put ''bGQoVG4senQpfSksenQrPSI8LyIrRHQubmFtZSsiPiIpOnp0Kz0iLz4ifXJldHVybiB6dH07dmFyIFg9QnVmZmVyLmZyb20oWzQsMCw0LDAsNjQsMCwwLDBdKSxGZT17ZGF0YUludGVncml0eTp7aG1hY0tleTpCdWZmZXIuZnJvbShbOTUsMTc4LDE3MywxLDEyLDE4NSwyMjUsMjQ2XSksaG1h''@;'; + put 'put ''Y1ZhbHVlOkJ1ZmZlci5mcm9tKFsxNjAsMTAzLDEyNywyLDE3OCw0NCwxMzIsNTFdKX0sa2V5OkJ1ZmZlci5mcm9tKFsyMCwxMTAsMTEsMjMxLDE3MSwxNzIsMjA4LDIxNF0pLHZlcmlmaWVySGFzaDp7aW5wdXQ6QnVmZmVyLmZyb20oWzI1NCwxNjcsMjEwLDExOCw1OSw3NSwxNTgsMTIxXSks''@;'; + put 'put ''dmFsdWU6QnVmZmVyLmZyb20oWzIxNSwxNzAsMTUsMTA5LDQ4LDk3LDUyLDc4XSl9fTtmdW5jdGlvbiBaZShEdCx6dCxQbixUbixPbixXbil7dmFyIE1yPXp0LnRvTG93ZXJDYXNlKCkrIi0iKzgqVG4ubGVuZ3RoO2lmKCJDaGFpbmluZ01vZGVDQkMiIT09UG4pdGhyb3cgbmV3IEVycm9yKCJV''@;'; + put 'put ''bmtub3duIGNpcGhlciBjaGFpbmluZzogIitQbik7dmFyIGFpPUZzW0R0PyJjcmVhdGVDaXBoZXJpdiI6ImNyZWF0ZURlY2lwaGVyaXYiXShNcis9Ii1jYmMiLFRuLE9uKTthaS5zZXRBdXRvUGFkZGluZyghMSk7dmFyIHlyPWFpLnVwZGF0ZShXbiksYXI9W3lyXTt0cnl7dmFyIEdyPWFpLmZp''@;'; + put 'put ''bmFsKCk7YXIucHVzaChHcil9Y2F0Y2goenIpe31yZXR1cm4gQnVmZmVyLmNvbmNhdChhcil9ZnVuY3Rpb24gamUoRHQpe0R0PUR0LnRvTG93ZXJDYXNlKCk7dmFyIHp0PVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLFBuPUZzLmdldEhhc2hlcygpO2lmKFBuLmluZGV4T2YoRHQpPDApdGhy''@;'; + put 'put ''b3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBoYXNoIGFsZ29yaXRobSAiK0R0KTt2YXIgVG49RnMuY3JlYXRlSGFzaChEdCk7cmV0dXJuIFRuLnVwZGF0ZShCdWZmZXIuY29uY2F0KHp0KSksVG4uZGlnZXN0KCl9ZnVuY3Rpb24gWWUoRHQsenQsUG4sVG4peyJudW1iZXIiPT10eXBlb2YgVG4m''@;'; + put 'put ''JihUbj1NdChUbikpO3ZhciBPbj1qZShEdCx6dCxUbik7aWYoT24ubGVuZ3RoPFBuKXt2YXIgV249QnVmZmVyLmFsbG9jKFBuLDU0KTtPbi5jb3B5KFduKSxPbj1Xbn1lbHNlIE9uLmxlbmd0aD5QbiYmKE9uPU9uLnNsaWNlKDAsUG4pKTtyZXR1cm4gT259ZnVuY3Rpb24gTXQoRHQsenQpe3Zh''@;'; + put 'put ''ciBQbj1CdWZmZXIuYWxsb2MoenR8fDQpO3JldHVybiBQbi53cml0ZVVJbnQzMkxFKER0LDApLFBufWZ1bmN0aW9uIHh0KER0LHp0LFBuLFRuLE9uLFduKXtmb3IodmFyIGFpPWplKHp0LFBuLEJ1ZmZlci5mcm9tKER0LCJ1dGYxNmxlIikpLHlyPTA7eXI8VG47eXIrKylhaT1qZSh6dCxNdCh5''@;'; + put 'put ''ciksYWkpO3ZhciBHcj1Pbi84O2lmKChhaT1qZSh6dCxhaSxXbikpLmxlbmd0aDxHcil7dmFyIHpyPUJ1ZmZlci5hbGxvYyhHciw1NCk7YWkuY29weSh6ciksYWk9enJ9ZWxzZSBhaS5sZW5ndGg+R3ImJihhaT1haS5zbGljZSgwLEdyKSk7cmV0dXJuIGFpfXJldHVybiBGcy5yYW5kb21CeXRl''@;'; + put 'put ''c3x8KEZzLnJhbmRvbUJ5dGVzPWZ1bmN0aW9uKER0KXtmb3IodmFyIHp0PUJ1ZmZlci5hbGxvYyhEdCksUG49MDtQbjxEdDsrK1BuKXp0W1BuXT1NYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKTtyZXR1cm4genR9KSxmdW5jdGlvbiBDbihEdCx6dCl7aWYoInN0cmluZyI9PXR5cGVvZiBE''@;'; + put 'put ''dClyZXR1cm4gQ24oQnVmZmVyLmZyb20oRHQsImJpbmFyeSIpLHp0KTt2YXIgUG49RnMucmFuZG9tQnl0ZXMoMzIpLFRuPXtwYWNrYWdlOntjaXBoZXJBbGdvcml0aG06IkFFUyIsY2lwaGVyQ2hhaW5pbmc6IkNoYWluaW5nTW9kZUNCQyIsc2FsdFZhbHVlOkZzLnJhbmRvbUJ5dGVzKDE2KSxo''@;'; + put 'put ''YXNoQWxnb3JpdGhtOiJTSEE1MTIiLGhhc2hTaXplOjY0LGJsb2NrU2l6ZToxNixrZXlCaXRzOjgqUG4ubGVuZ3RofSxrZXk6e2NpcGhlckFsZ29yaXRobToiQUVTIixjaXBoZXJDaGFpbmluZzoiQ2hhaW5pbmdNb2RlQ0JDIixzYWx0VmFsdWU6RnMucmFuZG9tQnl0ZXMoMTYpLGhhc2hBbGdv''@;'; + put 'put ''cml0aG06IlNIQTUxMiIsaGFzaFNpemU6NjQsYmxvY2tTaXplOjE2LHNwaW5Db3VudDoxLGtleUJpdHM6MjU2fX0sT249ZnVuY3Rpb24gUnQoRHQsenQsUG4sVG4sT24sV24sTXIsYWkpe2Zvcih2YXIgeXI9W10sYXI9RHQ/MDo4LEdyPTAsenI9MCxxcj0wO3FyPGFpLmxlbmd0aDspeyhxcj0o''@;'; + put 'put ''enI9cXIpKzQwOTYpPmFpLmxlbmd0aCYmKHFyPWFpLmxlbmd0aCk7dmFyIG9pPWFpLnNsaWNlKHpyK2FyLHFyK2FyKSxjcj1vaS5sZW5ndGglT247Y3ImJihvaT1CdWZmZXIuY29uY2F0KFtvaSxCdWZmZXIuYWxsb2MoT24tY3IpXSkpO3ZhciB2MD1aZShEdCx6dCxQbixNcixZZShUbixXbixP''@;'; + put 'put ''bixHciksb2kpO3lyLnB1c2godjApLEdyKyt9dmFyIFVpPUJ1ZmZlci5jb25jYXQoeXIpO2lmKER0KVVpPUJ1ZmZlci5jb25jYXQoW010KGFpLmxlbmd0aCw4KSxVaV0pO2Vsc2V7dmFyIHRvPWFpLnJlYWRVSW50MzJMRSgwKTtVaT1VaS5zbGljZSgwLHRvKX1yZXR1cm4gVWl9KCEwLFRuLnBh''@;'; + put 'put ''Y2thZ2UuY2lwaGVyQWxnb3JpdGhtLFRuLnBhY2thZ2UuY2lwaGVyQ2hhaW5pbmcsVG4ucGFja2FnZS5oYXNoQWxnb3JpdGhtLFRuLnBhY2thZ2UuYmxvY2tTaXplLFRuLnBhY2thZ2Uuc2FsdFZhbHVlLFBuLER0KSxXbj1Gcy5yYW5kb21CeXRlcyg2NCksTXI9WWUoVG4ucGFja2FnZS5oYXNo''@;'; + put 'put ''QWxnb3JpdGhtLFRuLnBhY2thZ2Uuc2FsdFZhbHVlLFRuLnBhY2thZ2UuYmxvY2tTaXplLEZlLmRhdGFJbnRlZ3JpdHkuaG1hY0tleSksYWk9WmUoITAsVG4ucGFja2FnZS5jaXBoZXJBbGdvcml0aG0sVG4ucGFja2FnZS5jaXBoZXJDaGFpbmluZyxQbixNcixXbikseXI9ZnVuY3Rpb24gWXQo''@;'; + put 'put ''RHQsenQpe0R0PUR0LnRvTG93ZXJDYXNlKCk7dmFyIFBuPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpO2lmKEZzLmdldEhhc2hlcygpLmluZGV4T2YoRHQpPDApdGhyb3cgbmV3IEVycm9yKCJITUFDIGFsZ29yaXRobSAnIitEdCsiJyBub3Qgc3VwcG9ydGVkISIpO3ZhciBPbj1Gcy5jcmVh''@;'; + put 'put ''dGVIbWFjKER0LHp0KTtyZXR1cm4gT24udXBkYXRlKEJ1ZmZlci5jb25jYXQoUG4pKSxPbi5kaWdlc3QoKX0oVG4ucGFja2FnZS5oYXNoQWxnb3JpdGhtLFduLE9uKSxhcj1ZZShUbi5wYWNrYWdlLmhhc2hBbGdvcml0aG0sVG4ucGFja2FnZS5zYWx0VmFsdWUsVG4ucGFja2FnZS5ibG9ja1Np''@;'; + put 'put ''emUsRmUuZGF0YUludGVncml0eS5obWFjVmFsdWUpLEdyPVplKCEwLFRuLnBhY2thZ2UuY2lwaGVyQWxnb3JpdGhtLFRuLnBhY2thZ2UuY2lwaGVyQ2hhaW5pbmcsUG4sYXIseXIpO1RuLmRhdGFJbnRlZ3JpdHk9e2VuY3J5cHRlZEhtYWNLZXk6YWksZW5jcnlwdGVkSG1hY1ZhbHVlOkdyfTt2''@;'; + put 'put ''YXIgenI9eHQoenQsVG4ua2V5Lmhhc2hBbGdvcml0aG0sVG4ua2V5LnNhbHRWYWx1ZSxUbi5rZXkuc3BpbkNvdW50LFRuLmtleS5rZXlCaXRzLEZlLmtleSk7VG4ua2V5LmVuY3J5cHRlZEtleVZhbHVlPVplKCEwLFRuLmtleS5jaXBoZXJBbGdvcml0aG0sVG4ua2V5LmNpcGhlckNoYWluaW5n''@;'; + put 'put ''LHpyLFRuLmtleS5zYWx0VmFsdWUsUG4pO3ZhciBxcj1Gcy5yYW5kb21CeXRlcygxNiksb2k9eHQoenQsVG4ua2V5Lmhhc2hBbGdvcml0aG0sVG4ua2V5LnNhbHRWYWx1ZSxUbi5rZXkuc3BpbkNvdW50LFRuLmtleS5rZXlCaXRzLEZlLnZlcmlmaWVySGFzaC5pbnB1dCk7VG4ua2V5LmVuY3J5''@;'; + put 'put ''cHRlZFZlcmlmaWVySGFzaElucHV0PVplKCEwLFRuLmtleS5jaXBoZXJBbGdvcml0aG0sVG4ua2V5LmNpcGhlckNoYWluaW5nLG9pLFRuLmtleS5zYWx0VmFsdWUscXIpO3ZhciBjcj1qZShUbi5rZXkuaGFzaEFsZ29yaXRobSxxciksZGk9eHQoenQsVG4ua2V5Lmhhc2hBbGdvcml0aG0sVG4u''@;'; + put 'put ''a2V5LnNhbHRWYWx1ZSxUbi5rZXkuc3BpbkNvdW50LFRuLmtleS5rZXlCaXRzLEZlLnZlcmlmaWVySGFzaC52YWx1ZSk7VG4ua2V5LmVuY3J5cHRlZFZlcmlmaWVySGFzaFZhbHVlPVplKCEwLFRuLmtleS5jaXBoZXJBbGdvcml0aG0sVG4ua2V5LmNpcGhlckNoYWluaW5nLGRpLFRuLmtleS5z''@;'; + put 'put ''YWx0VmFsdWUsY3IpO3ZhciB2MD1mdW5jdGlvbiBubihEdCl7dmFyIHp0PXtuYW1lOiJlbmNyeXB0aW9uIixhdHRyaWJ1dGVzOnt4bWxuczoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9lbmNyeXB0aW9uIiwieG1sbnM6cCI6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jv''@;'; + put 'put ''c29mdC5jb20vb2ZmaWNlLzIwMDYva2V5RW5jcnlwdG9yL3Bhc3N3b3JkIiwieG1sbnM6YyI6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYva2V5RW5jcnlwdG9yL2NlcnRpZmljYXRlIn0sY2hpbGRyZW46W3tuYW1lOiJrZXlEYXRhIixhdHRyaWJ1dGVzOntzYWx0''@;'; + put 'put ''U2l6ZTpEdC5wYWNrYWdlLnNhbHRWYWx1ZS5sZW5ndGgsYmxvY2tTaXplOkR0LnBhY2thZ2UuYmxvY2tTaXplLGtleUJpdHM6RHQucGFja2FnZS5rZXlCaXRzLGhhc2hTaXplOkR0LnBhY2thZ2UuaGFzaFNpemUsY2lwaGVyQWxnb3JpdGhtOkR0LnBhY2thZ2UuY2lwaGVyQWxnb3JpdGhtLGNp''@;'; + put 'put ''cGhlckNoYWluaW5nOkR0LnBhY2thZ2UuY2lwaGVyQ2hhaW5pbmcsaGFzaEFsZ29yaXRobTpEdC5wYWNrYWdlLmhhc2hBbGdvcml0aG0sc2FsdFZhbHVlOkR0LnBhY2thZ2Uuc2FsdFZhbHVlLnRvU3RyaW5nKCJiYXNlNjQiKX19LHtuYW1lOiJkYXRhSW50ZWdyaXR5IixhdHRyaWJ1dGVzOntl''@;'; + put 'put ''bmNyeXB0ZWRIbWFjS2V5OkR0LmRhdGFJbnRlZ3JpdHkuZW5jcnlwdGVkSG1hY0tleS50b1N0cmluZygiYmFzZTY0IiksZW5jcnlwdGVkSG1hY1ZhbHVlOkR0LmRhdGFJbnRlZ3JpdHkuZW5jcnlwdGVkSG1hY1ZhbHVlLnRvU3RyaW5nKCJiYXNlNjQiKX19LHtuYW1lOiJrZXlFbmNyeXB0b3Jz''@;'; + put 'put ''IixjaGlsZHJlbjpbe25hbWU6ImtleUVuY3J5cHRvciIsYXR0cmlidXRlczp7dXJpOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2L2tleUVuY3J5cHRvci9wYXNzd29yZCJ9LGNoaWxkcmVuOlt7bmFtZToicDplbmNyeXB0ZWRLZXkiLGF0dHJpYnV0ZXM6e3NwaW5D''@;'; + put 'put ''b3VudDpEdC5rZXkuc3BpbkNvdW50LHNhbHRTaXplOkR0LmtleS5zYWx0VmFsdWUubGVuZ3RoLGJsb2NrU2l6ZTpEdC5rZXkuYmxvY2tTaXplLGtleUJpdHM6RHQua2V5LmtleUJpdHMsaGFzaFNpemU6RHQua2V5Lmhhc2hTaXplLGNpcGhlckFsZ29yaXRobTpEdC5rZXkuY2lwaGVyQWxnb3Jp''@;'; + put 'put ''dGhtLGNpcGhlckNoYWluaW5nOkR0LmtleS5jaXBoZXJDaGFpbmluZyxoYXNoQWxnb3JpdGhtOkR0LmtleS5oYXNoQWxnb3JpdGhtLHNhbHRWYWx1ZTpEdC5rZXkuc2FsdFZhbHVlLnRvU3RyaW5nKCJiYXNlNjQiKSxlbmNyeXB0ZWRWZXJpZmllckhhc2hJbnB1dDpEdC5rZXkuZW5jcnlwdGVk''@;'; + put 'put ''VmVyaWZpZXJIYXNoSW5wdXQudG9TdHJpbmcoImJhc2U2NCIpLGVuY3J5cHRlZFZlcmlmaWVySGFzaFZhbHVlOkR0LmtleS5lbmNyeXB0ZWRWZXJpZmllckhhc2hWYWx1ZS50b1N0cmluZygiYmFzZTY0IiksZW5jcnlwdGVkS2V5VmFsdWU6RHQua2V5LmVuY3J5cHRlZEtleVZhbHVlLnRvU3Ry''@;'; + put 'put ''aW5nKCJiYXNlNjQiKX19XX1dfV19LFRuPShuZXcgcmUpLmJ1aWxkKHp0KTtyZXR1cm4gQnVmZmVyLmNvbmNhdChbWCxCdWZmZXIuZnJvbShUbiwidXRmOCIpXSl9KFRuKSxVaT12dC51dGlscy5jZmJfbmV3KCk7cmV0dXJuIHZ0LnV0aWxzLmNmYl9hZGQoVWksIkVuY3J5cHRpb25JbmZvIix2''@;'; + put 'put ''MCksdnQudXRpbHMuY2ZiX2FkZChVaSwiRW5jcnlwdGVkUGFja2FnZSIsT24pLFVpfX0oKTtmdW5jdGlvbiBTMChIKXtyZXR1cm4gZnVuY3Rpb24oWCl7Zm9yKHZhciB3ZT0wO3dlIT1ILmxlbmd0aDsrK3dlKXt2YXIgeGU9SFt3ZV07dm9pZCAwPT09WFt4ZVswXV0mJihYW3hlWzBdXT14ZVsx''@;'; + put 'put ''XSksIm4iPT09eGVbMl0mJihYW3hlWzBdXT1OdW1iZXIoWFt4ZVswXV0pKX19fXZhciBNZj1mdW5jdGlvbihIKXtTMChbWyJjZWxsTkYiLCExXSxbImNlbGxIVE1MIiwhMF0sWyJjZWxsRm9ybXVsYSIsITBdLFsiY2VsbFN0eWxlcyIsITFdLFsiY2VsbFRleHQiLCEwXSxbImNlbGxEYXRlcyIs''@;'; + put 'put ''ITFdLFsic2hlZXRTdHVicyIsITFdLFsic2hlZXRSb3dzIiwwLCJuIl0sWyJib29rRGVwcyIsITFdLFsiYm9va1NoZWV0cyIsITFdLFsiYm9va1Byb3BzIiwhMV0sWyJib29rRmlsZXMiLCExXSxbImJvb2tWQkEiLCExXSxbInBhc3N3b3JkIiwiIl0sWyJXVEYiLCExXV0pKEgpLEguYm9va0lt''@;'; + put 'put ''YWdlcyYmKEguY2VsbFN0eWxlcz0hMCl9LEgzPVMwKFtbImNlbGxEYXRlcyIsITFdLFsiYm9va1NTVCIsITFdLFsiYm9va1R5cGUiLCJ4bHN4Il0sWyJjb21wcmVzc2lvbiIsITFdLFsiV1RGIiwhMV1dKTtmdW5jdGlvbiBTcyhIKXtyZXR1cm4gcHQuV1MuaW5kZXhPZihIKT4tMT8ic2hlZXQi''@;'; + put 'put ''OnB0LkNTJiZIPT1wdC5DUz8iY2hhcnQiOnB0LkRTJiZIPT1wdC5EUz8iZGlhbG9nIjpwdC5NUyYmSD09cHQuTVM/Im1hY3JvIjpIJiZILmxlbmd0aD9IOiJzaGVldCJ9dmFyIEQ1PVtdO2Z1bmN0aW9uIFg0KEgscmUsWCx3ZSx4ZSxGZSxaZSxqZSxZZSxNdCx4dCxSdCl7dHJ5e0ZlW3dlXT1Q''@;'; + put 'put ''dChVbihILFgsITApLHJlKTt2YXIgbm4sWXQ9c24oSCxyZSk7c3dpdGNoKGplKXtjYXNlInNoZWV0Ijpubj1mdW5jdGlvbiBWeChILHJlLFgsd2UseGUsRmUsWmUsamUpe3JldHVybiIuYmluIj09PXJlLnNsaWNlKC00KT9mdW5jdGlvbiBJNihILHJlLFgsd2UseGUsRmUsWmUpe2lmKCFIKXJl''@;'; + put 'put ''dHVybiBIO3ZhciBqZT1yZXx8e307d2V8fCh3ZT17IiFpZCI6e319KTt2YXIgTXQsQ24sRHQsenQsUG4sVG4sT24sV24sTXIsYWksWWU9amUuZGVuc2U/W106e30seHQ9e3M6e3I6MmU2LGM6MmU2fSxlOntyOjAsYzowfX0sUnQ9W10sWXQ9ITEsbm49ITEseXI9W107amUuYmlmZj0xMixqZVsi''@;'; + put 'put ''IXJvdyJdPTA7dmFyIGFyPTAsR3I9ITEsenI9W10scXI9e30sb2k9amUuc3VwYm9va3N8fHhlLnN1cGJvb2tzfHxbW11dO2lmKG9pLnNoYXJlZGY9cXIsb2kuYXJyYXlmPXpyLG9pLlNoZWV0TmFtZXM9eGUuU2hlZXROYW1lc3x8eGUuU2hlZXRzLm1hcChmdW5jdGlvbihBMCl7cmV0dXJuIEEw''@;'; + put 'put ''Lm5hbWV9KSwhamUuc3VwYm9va3MmJihqZS5zdXBib29rcz1vaSx4ZS5OYW1lcykpZm9yKHZhciBjcj0wO2NyPHhlLk5hbWVzLmxlbmd0aDsrK2NyKW9pWzBdW2NyKzFdPXhlLk5hbWVzW2NyXTt2YXIgZGk9W10sdjA9W10sVWk9ITE7aWYoeDVbMTZdPXtuOiJCcnRTaG9ydFJlYWwiLGY6VTR9''@;'; + put 'put ''LEgxKEgsZnVuY3Rpb24od2ksWXIsRWkpe2lmKCFubilzd2l0Y2goRWkpe2Nhc2UgMTQ4Ok10PXdpO2JyZWFrO2Nhc2UgMDpDbj13aSxqZS5zaGVldFJvd3MmJmplLnNoZWV0Um93czw9Q24uciYmKG5uPSEwKSxNcj1YYShQbj1Dbi5yKSxqZVsiIXJvdyJdPUNuLnIsKHdpLmhpZGRlbnx8d2ku''@;'; + put 'put ''aHB0fHxudWxsIT13aS5sZXZlbCkmJih3aS5ocHQmJih3aS5ocHg9QWYod2kuaHB0KSksdjBbd2kucl09d2kpO2JyZWFrO2Nhc2UgMjpjYXNlIDM6Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Y2FzZSA3OmNhc2UgODpjYXNlIDk6Y2FzZSAxMDpjYXNlIDExOmNhc2UgMTM6Y2FzZSAxNDpjYXNlIDE1''@;'; + put 'put ''OmNhc2UgMTY6Y2FzZSAxNzpjYXNlIDE4OnN3aXRjaChEdD17dDp3aVsyXX0sd2lbMl0pe2Nhc2UibiI6RHQudj13aVsxXTticmVhaztjYXNlInMiOkR0LnY9KFduPUxkW3dpWzFdXSkudCxqZS5jZWxsU3R5bGVzJiYoRHQuUj1mdW5jdGlvbiBReihILHJlKXtpZihILlIpcmV0dXJuIEguUjtp''@;'; + put 'put ''ZihyZSYmcmUuRm9udHMmJigxIT1ILnIubGVuZ3RofHwwIT1ILnJbMF0uaWNoKSl7SC5SPVtdO3ZhciBYPTAsd2U9SC5yW1hdLHhlPUgucltYKzFdO2Zvcih3ZS5pY2g+MCYmSC5SLnB1c2goe3Q6InMiLHY6SC50LnNsaWNlKDAsd2UuaWNoKX0pO1g8SC5yLmxlbmd0aC0xOysrWClILlIucHVz''@;'; + put 'put ''aCh7dDoicyIsdjpILnQuc2xpY2UoKHdlPUgucltYXSkuaWNoLCh4ZT1ILnJbWCsxXSkuaWNoKSxzOnJlLkZvbnRzW3dlLmlmbnRdfSk7cmV0dXJuIEguUi5wdXNoKHt0OiJzIix2OkgudC5zbGljZSgoeGV8fHdlKS5pY2gpLHM6cmUuRm9udHNbKHhlfHx3ZSkuaWZudF19KSxILlJ9fShXbixa''@;'; + put 'put ''ZSkpO2JyZWFrO2Nhc2UiYiI6RHQudj0hIXdpWzFdO2JyZWFrO2Nhc2UiZSI6RHQudj13aVsxXSwhMSE9PWplLmNlbGxUZXh0JiYoRHQudz1OMVtEdC52XSk7YnJlYWs7Y2FzZSJzdHIiOkR0LnQ9InMiLER0LnY9d2lbMV19aWYoKHp0PVplLkNlbGxYZlt3aVswXS5pU3R5bGVSZWZdKSYmZDUo''@;'; + put 'put ''RHQsenQubnVtRm10SWQsenQuZmlsbElkLHp0LmZvbnRJZCx6dC5ib3JkZXJJZCxqZSwwLFplKSxqZS5jZWxsU3R5bGVzJiZEdC5zJiZ6dC5hbGlnbm1lbnQmJihEdC5zLmFsaWdubWVudD1sbih6dC5hbGlnbm1lbnQpKSxUbj0tMT09d2lbMF0uYz9UbisxOndpWzBdLmMsamUuZGVuc2U/KFll''@;'; + put 'put ''W1BuXXx8KFllW1BuXT1bXSksWWVbUG5dW1RuXT1EdCk6WWVbX2EoVG4pK01yXT1EdCxqZS5jZWxsRm9ybXVsYSl7Zm9yKEdyPSExLGFyPTA7YXI8enIubGVuZ3RoOysrYXIpe3ZhciBoaT16clthcl07Q24ucj49aGlbMF0ucy5yJiZDbi5yPD1oaVswXS5lLnImJlRuPj1oaVswXS5zLmMmJlRu''@;'; + put 'put ''PD1oaVswXS5lLmMmJihEdC5GPWZhKGhpWzBdKSxHcj0hMCl9IUdyJiZ3aS5sZW5ndGg+MyYmKER0LmY9d2lbM10pfWlmKHh0LnMucj5Dbi5yJiYoeHQucy5yPUNuLnIpLHh0LnMuYz5UbiYmKHh0LnMuYz1UbikseHQuZS5yPENuLnImJih4dC5lLnI9Q24ucikseHQuZS5jPFRuJiYoeHQuZS5j''@;'; + put 'put ''PVRuKSxqZS5jZWxsRGF0ZXMmJnp0JiYibiI9PUR0LnQmJkYuaXNfZGF0ZShGLl90YWJsZVt6dC5udW1GbXRJZF0pKXt2YXIgTnI9Ri5wYXJzZV9kYXRlX2NvZGUoRHQudik7TnImJihEdC50PSJkIixEdC52PW5ldyBEYXRlKE5yLnksTnIubS0xLE5yLmQsTnIuSCxOci5NLE5yLlMsTnIudSkp''@;'; + put 'put ''fWJyZWFrO2Nhc2UgMTpjYXNlIDEyOmlmKCFqZS5zaGVldFN0dWJzfHxZdClicmVhaztEdD17dDoieiIsdjp2b2lkIDB9LFRuPS0xPT13aVswXS5jP1RuKzE6d2lbMF0uYywoenQ9WmUuQ2VsbFhmW3dpWzBdLmlTdHlsZVJlZl0pJiZkNShEdCx6dC5udW1GbXRJZCx6dC5maWxsSWQsenQuZm9u''@;'; + put 'put ''dElkLHp0LmJvcmRlcklkLGplLDAsWmUpLGplLmNlbGxTdHlsZXMmJkR0LnMmJnp0LmFsaWdubWVudCYmKER0LnMuYWxpZ25tZW50PWxuKHp0LmFsaWdubWVudCkpLGplLmRlbnNlPyhZZVtQbl18fChZZVtQbl09W10pLFllW1BuXVtUbl09RHQpOlllW19hKFRuKStNcl09RHQseHQucy5yPkNu''@;'; + put 'put ''LnImJih4dC5zLnI9Q24ucikseHQucy5jPlRuJiYoeHQucy5jPVRuKSx4dC5lLnI8Q24uciYmKHh0LmUucj1Dbi5yKSx4dC5lLmM8VG4mJih4dC5lLmM9VG4pO2JyZWFrO2Nhc2UgMTc2OnlyLnB1c2god2kpO2JyZWFrO2Nhc2UgNDk0OnZhciBraT13ZVsiIWlkIl1bd2kucmVsSWRdO2Zvcihr''@;'; + put 'put ''aT8od2kuVGFyZ2V0PWtpLlRhcmdldCx3aS5sb2MmJih3aS5UYXJnZXQrPSIjIit3aS5sb2MpLHdpLlJlbD1raSk6IiI9PXdpLnJlbElkJiYod2kuVGFyZ2V0PSIjIit3aS5sb2MpLFBuPXdpLnJmeC5zLnI7UG48PXdpLnJmeC5lLnI7KytQbilmb3IoVG49d2kucmZ4LnMuYztUbjw9d2kucmZ4''@;'; + put 'put ''LmUuYzsrK1RuKWplLmRlbnNlPyhZZVtQbl18fChZZVtQbl09W10pLFllW1BuXVtUbl18fChZZVtQbl1bVG5dPXt0OiJ6Iix2OnZvaWQgMH0pLFllW1BuXVtUbl0ubD13aSk6KE9uPVkwKHtjOlRuLHI6UG59KSxZZVtPbl18fChZZVtPbl09e3Q6InoiLHY6dm9pZCAwfSksWWVbT25dLmw9d2kp''@;'; + put 'put ''O2JyZWFrO2Nhc2UgNDI2OmlmKCFqZS5jZWxsRm9ybXVsYSlicmVhazt6ci5wdXNoKHdpKSwoYWk9amUuZGVuc2U/WWVbUG5dW1RuXTpZZVtfYShUbikrTXJdKS5mPVcxKHdpWzFdLHh0LHtyOkNuLnIsYzpUbn0sb2ksamUpLGFpLkY9ZmEod2lbMF0pO2JyZWFrO2Nhc2UgNDI3OmlmKCFqZS5j''@;'; + put 'put ''ZWxsRm9ybXVsYSlicmVhaztxcltZMCh3aVswXS5zKV09d2lbMV0sKGFpPWplLmRlbnNlP1llW1BuXVtUbl06WWVbX2EoVG4pK01yXSkuZj1XMSh3aVsxXSx4dCx7cjpDbi5yLGM6VG59LG9pLGplKTticmVhaztjYXNlIDYwOmlmKCFqZS5jZWxsU3R5bGVzKWJyZWFrO2Zvcig7d2kuZT49d2ku''@;'; + put 'put ''czspZGlbd2kuZS0tXT17d2lkdGg6d2kudy8yNTYsaGlkZGVuOiEhKDEmd2kuZmxhZ3MpLGxldmVsOndpLmxldmVsfSxVaXx8KFVpPSEwKSx5YyhkaVt3aS5lKzFdKTticmVhaztjYXNlIDE2MTpZZVsiIWF1dG9maWx0ZXIiXT17cmVmOmZhKHdpKX07YnJlYWs7Y2FzZSA0NzY6WWVbIiFtYXJn''@;'; + put 'put ''aW5zIl09d2k7YnJlYWs7Y2FzZSAxNDc6eGUuU2hlZXRzW1hdfHwoeGUuU2hlZXRzW1hdPXt9KSx3aS5uYW1lJiYoeGUuU2hlZXRzW1hdLkNvZGVOYW1lPXdpLm5hbWUpLCh3aS5hYm92ZXx8d2kubGVmdCkmJihZZVsiIW91dGxpbmUiXT17YWJvdmU6d2kuYWJvdmUsbGVmdDp3aS5sZWZ0fSk7''@;'; + put 'put ''YnJlYWs7Y2FzZSAxMzc6eGUuVmlld3N8fCh4ZS5WaWV3cz1be31dKSx4ZS5WaWV3c1swXXx8KHhlLlZpZXdzWzBdPXt9KSx3aS5SVEwmJih4ZS5WaWV3c1swXS5SVEw9ITApLHdpLmdyaWR8fCh4ZS5WaWV3c1swXS5ncmlkPSExLFllWyIhZ3JpZGxpbmVzIl09ITEpO2JyZWFrO2Nhc2UgNDg1''@;'; + put 'put ''OlllWyIhc2hlZXRGb3JtYXQiXT13aTticmVhaztjYXNlIDY0OmNhc2UgMTA1MzohZnVuY3Rpb24gSzAoSCxyZSxYLHdlKXtpZihyZSl7dmFyIHhlPXtyZWY6cmUuc3FyZngsdDpyZS50fTtyZS5vcCYmKHhlLm9wPXJlLm9wKTt2YXIgRmU9IiIsWmU9IiIsamU9cmUuc3FyZng/InN0cmluZyI9''@;'; + put 'put ''PXR5cGVvZiByZS5zcXJmeD9GbyhyZS5zcXJmeC5zcGxpdCgiLCIpWzBdKTpyZS5zcXJmeDpudWxsO2lmKHJlLmYxJiYoRmU9VzEocmUuZjEsamUsbnVsbCxYLHdlLCEwKSkscmUuZjImJihaZT1XMShyZS5mMixqZSxudWxsLFgsd2UsITApKSxyZS5vcCYmWyJJTiIsIk9UIl0uaW5kZXhPZihy''@;'; + put 'put ''ZS5vcCk+PS0xKXhlLm1pbj1GZSx4ZS5tYXg9WmU7ZWxzZSBpZihyZS5vcCl4ZS52PUZlO2Vsc2UgdHJ5e3N3aXRjaChyZS50KXtjYXNlIkxpc3QiOmlmKCJQdGdTdHIiPT09cmUuZjFbMF1bMF1bMF0mJjE9PXJlLmYxWzBdLmxlbmd0aCl7eGUubD1yZS5mMVswXVswXVsxXS5zcGxpdCgiLCIp''@;'; + put 'put ''O2JyZWFrfWNhc2UiQ3VzdG9tIjp4ZS5mPUZlfX1jYXRjaChZZSl7fUhbIiF2YWxpZGF0aW9ucyJdfHwoSFsiIXZhbGlkYXRpb25zIl09W10pLEhbIiF2YWxpZGF0aW9ucyJdLnB1c2goeGUpfX0oWWUsd2ksb2ksamUpO2JyZWFrO2Nhc2UgMTUxOlllWyIhZnJlZXplIl09d2lbMF07YnJlYWs7''@;'; + put 'put ''Y2FzZSAxNTI6WWVbIiFzZWwiXT13aTticmVhaztjYXNlIDE3NTpjYXNlIDY0NDpjYXNlIDYyNTpjYXNlIDU2MjpjYXNlIDM5NjpjYXNlIDExMTI6Y2FzZSAxMTQ2OmNhc2UgNDcxOmNhc2UgMTA1MDpjYXNlIDY0OTpjYXNlIDExMDU6Y2FzZSA0OTpjYXNlIDU4OTpjYXNlIDYwNzpjYXNlIDU2''@;'; + put 'put ''NDpjYXNlIDEwNTU6Y2FzZSAxNjg6Y2FzZSAxNzQ6Y2FzZSAxMTgwOmNhc2UgNDk5OmNhc2UgNTA3OmNhc2UgNTUwOmNhc2UgMTcxOmNhc2UgMTY3OmNhc2UgMTE3NzpjYXNlIDE2OTpjYXNlIDExODE6Y2FzZSA1NTE6Y2FzZSA1NTI6Y2FzZSA2NjE6Y2FzZSA2Mzk6Y2FzZSA0Nzg6Y2FzZSA1''@;'; + put 'put ''Mzc6Y2FzZSA0Nzc6Y2FzZSA1MzY6Y2FzZSAxMTAzOmNhc2UgNjgwOmNhc2UgMTEwNDpjYXNlIDEwMjQ6Y2FzZSA2NjM6Y2FzZSA1MzU6Y2FzZSA2Nzg6Y2FzZSA1MDQ6Y2FzZSAxMDQzOmNhc2UgNDI4OmNhc2UgMTcwOmNhc2UgMzA3MjpjYXNlIDUwOmNhc2UgMjA3MDpjYXNlIDEwNDU6YnJl''@;'; + put 'put ''YWs7Y2FzZSAzNTpZdD0hMDticmVhaztjYXNlIDM2Oll0PSExO2JyZWFrO2Nhc2UgMzc6UnQucHVzaChZciksWXQ9ITA7YnJlYWs7Y2FzZSAzODpSdC5wb3AoKSxZdD0hMTticmVhaztkZWZhdWx0OmlmKCEoKFlyfHwiIikuaW5kZXhPZigiQmVnaW4iKT4wKSYmISgoWXJ8fCIiKS5pbmRleE9m''@;'; + put 'put ''KCJFbmQiKT4wKSYmKCFZdHx8amUuV1RGJiYiQnJ0QUNCZWdpbiIhPVJ0W1J0Lmxlbmd0aC0xXSkpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAiK0VpKyIgIitZcil9fSxqZSksZGVsZXRlIGplLnN1cGJvb2tzLGRlbGV0ZSBqZVsiIXJvdyJdLCFZZVsiIXJlZiJdJiYoeHQu''@;'; + put 'put ''cy5yPDJlNnx8TXQmJihNdC5lLnI+MHx8TXQuZS5jPjB8fE10LnMucj4wfHxNdC5zLmM+MCkpJiYoWWVbIiFyZWYiXT1mYShNdHx8eHQpKSxqZS5zaGVldFJvd3MmJlllWyIhcmVmIl0pe3ZhciB0bz1GbyhZZVsiIXJlZiJdKTtqZS5zaGVldFJvd3M8PSt0by5lLnImJih0by5lLnI9amUuc2hl''@;'; + put 'put ''ZXRSb3dzLTEsdG8uZS5yPnh0LmUuciYmKHRvLmUucj14dC5lLnIpLHRvLmUucjx0by5zLnImJih0by5zLnI9dG8uZS5yKSx0by5lLmM+eHQuZS5jJiYodG8uZS5jPXh0LmUuYyksdG8uZS5jPHRvLnMuYyYmKHRvLnMuYz10by5lLmMpLFllWyIhZnVsbHJlZiJdPVllWyIhcmVmIl0sWWVbIiFy''@;'; + put 'put ''ZWYiXT1mYSh0bykpfXJldHVybiB5ci5sZW5ndGg+MCYmKFllWyIhbWVyZ2VzIl09eXIpLGRpLmxlbmd0aD4wJiYoWWVbIiFjb2xzIl09ZGkpLHYwLmxlbmd0aD4wJiYoWWVbIiFyb3dzIl09djApLFllfShILHdlLFgseGUsRmUsMCxqZSk6ZnVuY3Rpb24gYjIoSCxyZSxYLHdlLHhlLEZlLFpl''@;'; + put 'put ''KXtpZighSClyZXR1cm4gSDt3ZXx8KHdlPXsiIWlkIjp7fX0pO3ZhciBqZT1yZS5kZW5zZT9bXTp7fSxZZT17czp7cjoyZTYsYzoyZTZ9LGU6e3I6MCxjOjB9fSxNdD0iIix4dD0iIixSdD1ILm1hdGNoKGRfKTtSdD8oTXQ9SC5zbGljZSgwLFJ0LmluZGV4KSx4dD1ILnNsaWNlKFJ0LmluZGV4''@;'; + put 'put ''K1J0WzBdLmxlbmd0aCkpOk10PXh0PUg7dmFyIFl0PXh0Lmxhc3RJbmRleE9mKCJleHRMc3QiKSxDbj0oLTE9PVl0fHx4dC5zbGljZShZdCksTXQubWF0Y2gobV8pKTtDbj9PbShDblswXSwwLHhlLFgpOihDbj1NdC5tYXRjaChJbSkpJiZmdW5jdGlvbiBPaChILHJlLFgsd2UseGUsRmUsWmUp''@;'; + put 'put ''e09tKEguc2xpY2UoMCxILmluZGV4T2YoIj4iKSksMCx3ZSx4ZSk7dmFyIGplPXJlLm1hdGNoKHlfKTtpZihqZSl7dmFyIE10PUUzKGVuKGplWzBdKSxGZSxaZSk7WFsiIXRhYmNvbG9yIl09TXR9aWYoKGplPXJlLm1hdGNoKHJ4KSkmJmVuKGplWzBdKS5maXRUb1BhZ2UmJihYWyIhcHJpbnQi''@;'; + put 'put ''XXx8KFhbIiFwcmludCJdPXt9KSxYWyIhcHJpbnQiXS5wcm9wc3x8KFhbIiFwcmludCJdLnByb3BzPXt9KSxYWyIhcHJpbnQiXS5wcm9wcy5maXR8fChYWyIhcHJpbnQiXS5wcm9wcy5maXQ9e30pLG51bGw9PVhbIiFwcmludCJdLnByb3BzLmZpdC5oZWlnaHQmJihYWyIhcHJpbnQiXS5wcm9w''@;'; + put 'put ''cy5maXQuaGVpZ2h0PTEpLG51bGw9PVhbIiFwcmludCJdLnByb3BzLmZpdC53aWR0aCYmKFhbIiFwcmludCJdLnByb3BzLmZpdC53aWR0aD0xKSksamU9cmUubWF0Y2goY0EpKXtYWyIhb3V0bGluZSJdPXt9O3ZhciBSdD1lbihqZVswXSk7UnQuc3VtbWFyeUJlbG93JiYoWFsiIW91dGxpbmUi''@;'; + put 'put ''XS5hYm92ZT0hRGkoUnQuc3VtbWFyeUJlbG93KSksUnQuc3VtbWFyeVJpZ2h0JiYoWFsiIW91dGxpbmUiXS5sZWZ0PSFEaShSdC5zdW1tYXJ5UmlnaHQpKX19KENuWzBdLENuWzFdfHwiIixqZSx4ZSxYLFplLEZlKTt2YXIgRHQ9KE10Lm1hdGNoKC88KD86XHcqOik/ZGltZW5zaW9uLyl8fHtp''@;'; + put 'put ''bmRleDotMX0pLmluZGV4O2lmKER0PjApe3ZhciB6dD1NdC5zbGljZShEdCxEdCs1MCkubWF0Y2gocF8pO3p0JiYoIXJlfHwhcmUubm9kaW0pJiZmdW5jdGlvbiBmXyhILHJlKXt2YXIgWD1GbyhyZSk7WC5zLnI8PVguZS5yJiZYLnMuYzw9WC5lLmMmJlgucy5yPj0wJiZYLnMuYz49MCYmKEhb''@;'; + put 'put ''IiFyZWYiXT1mYShYKSl9KGplLHp0WzFdKX12YXIgUG49TXQubWF0Y2goUEIpO1BuJiZQblsxXSYmZnVuY3Rpb24geUcoSCxyZSxYLHdlKXtYLlZpZXdzfHwoWC5WaWV3cz1be31dKTt2YXIgeGU9MDtILnJlcGxhY2UoY3gsZnVuY3Rpb24oRmUsWmUpe3ZhciBqZT1lbihGZSk7aWYoWC5WaWV3''@;'; + put 'put ''c1t3ZV18fChYLlZpZXdzW3dlXT17fSksRGkoamUucmlnaHRUb0xlZnQpJiYoWC5WaWV3c1t3ZV0uUlRMPSEwKSxqZS5zaG93R3JpZExpbmVzJiYoWC5WaWV3c1t3ZV0uZ3JpZD1EaShqZS5zaG93R3JpZExpbmVzKSxudWxsPT1yZVsiIWdyaWRsaW5lcyJdJiYocmVbIiFncmlkbGluZXMiXT1E''@;'; + put 'put ''aShqZS5zaG93R3JpZExpbmVzKSkpLCtqZS56b29tU2NhbGUmJihYLlZpZXdzW3dlXS56b29tPStqZS56b29tU2NhbGUpLGplLnZpZXcmJihYLlZpZXdzW3dlXS52aWV3PWplLnZpZXcpLDE9PSsreGUmJiIvPiIhPUZlLnNsaWNlKC0yKSl7dmFyIFllPUguc2xpY2UoWmUrRmUubGVuZ3RoKSxN''@;'; + put 'put ''dD1ZZS5tYXRjaCgvPFwvKD86XHc6KT9zaGVldFZpZXcoPzpbXj5hLXpdW14+XSopP1wvPz4vKTtpZighTXQpcmV0dXJuIiI7dmFyIHh0PShZZT1ZZS5zbGljZSgwLE10LmluZGV4KSkubWF0Y2goLzwoPzpcdzopP3BhbmUoPzpbXj5hLXpdW14+XSopP1wvPz4vKTtpZih4dCl7dmFyIFJ0PWVu''@;'; + put 'put ''KHh0WzBdKTsiZnJvemVuIj09UnQuc3RhdGU/cmVbIiFmcmVlemUiXT1fYSgrUnQueFNwbGl0fHwwKStYYSgrUnQueVNwbGl0fHwwKTpSdC50b3BMZWZ0Q2VsbCYmKHJlWyIhZnJlZXplIl09UnQudG9wTGVmdENlbGwpfXZhciBZdD1ZZS5tYXRjaCgvPCg/Olx3Oik/c2VsZWN0aW9uKD86W14+''@;'; + put 'put ''YS16XVtePl0qKT9cLz8+Lyk7aWYoWXQpe3ZhciBubj1lbihZdFswXSk7aWYobm4uYWN0aXZlQ2VsbCYmKHJlWyIhc2VsIl09e2NlbGw6bm4uYWN0aXZlQ2VsbH0pLG5uLnNxcmVmKXt2YXIgQ249bm4uc3FyZWYucmVwbGFjZSgvXHMuKiQvLCIiKTtyZVsiIXNlbCJdfHwocmVbIiFzZWwiXT17''@;'; + put 'put ''Y2VsbDpZMCh2cyhDbikucyl9KSxyZVsiIXNlbCJdLnJhbmdlPW5uLnNxcmVmfX19cmV0dXJuIiJ9KX0oUG5bMV0samUseGUsWCk7dmFyIFRuPU10Lm1hdGNoKExtKSxPbj1bXTtpZihyZS5jZWxsU3R5bGVzKXt2YXIgV249TXQubWF0Y2goQkIpO1duJiZmdW5jdGlvbiBseChILHJlLFgpe2Zv''@;'; + put 'put ''cih2YXIgd2U9ITEseGU9MDt4ZSE9cmUubGVuZ3RoOysreGUpe3ZhciBGZT1lbihyZVt4ZV0sITApO0ZlLmhpZGRlbiYmKEZlLmhpZGRlbj1EaShGZS5oaWRkZW4pKTt2YXIgWmU9cGFyc2VJbnQoRmUubWluLDEwKS0xLGplPXBhcnNlSW50KEZlLm1heCwxMCktMTtmb3IoRmUub3V0bGluZUxl''@;'; + put 'put ''dmVsJiYoRmUubGV2ZWw9K0ZlLm91dGxpbmVMZXZlbHx8MCksZGVsZXRlIEZlLm1pbixkZWxldGUgRmUubWF4LEZlLndpZHRoPStGZS53aWR0aCwhd2UmJkZlLndpZHRoJiYod2U9ITApLHljKEZlKSxGZS5zdHlsZSYmKEZlLnM9RG8oRmUuc3R5bGUsWCkpO1plPD1qZTspSFtaZSsrXT1sbihG''@;'; + put 'put ''ZSl9fShPbixXbixaZSl9aWYoUnQmJkxfKFJ0WzFdLFgsamUscmUsWWUsRmUsWmUpLHJlLmNhbGxiYWNrKXJldHVybiBqZTt2YXIgTXI9eHQubWF0Y2goYUEpO01yJiYoamVbIiFwcm90ZWN0Il09ZnVuY3Rpb24gTkIoSCl7dmFyIHJlPWVuKEgsITAsITApLFg9e307aWYoRGkocmUuc2hlZXQp''@;'; + put 'put ''KXJldHVybiBrXy5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtYW3dlXT1udWxsIT1yZVt3ZV0mJkRpKHJlW3dlXSl9KSxwQS5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtYW3dlXT1udWxsPT1yZVt3ZV18fERpKHJlW3dlXSl9KSxyZS5hbGdvcml0aG1OYW1lJiYoWC5lbmNyeXB0aW9uPXthbGdvOnJlLmFs''@;'; + put 'put ''Z29yaXRobU5hbWUsaGFzaDpyZS5oYXNoVmFsdWUsc2FsdDpyZS5zYWx0VmFsdWUsc3BpbjorcmUuc3BpbkNvdW50fHwxZTV9KSxYfShNclswXSkpO3ZhciBhaT14dC5tYXRjaChvQSk7YWkmJihqZVsiIWF1dG9maWx0ZXIiXT1mdW5jdGlvbiBFXyhIKXtyZXR1cm57cmVmOihILm1hdGNoKC9y''@;'; + put 'put ''ZWY9IihbXiJdKikiLyl8fFtdKVsxXX19KGFpWzBdKSk7dmFyIHlyPVtdLGFyPXh0Lm1hdGNoKGhfKTtpZihhcilmb3IoRHQ9MDtEdCE9YXIubGVuZ3RoOysrRHQpeXJbRHRdPUZvKGFyW0R0XS5zbGljZShhcltEdF0uaW5kZXhPZignIicpKzEpKTt2YXIgR3I9KC0xPT1ZdD94dDp4dC5zbGlj''@;'; + put 'put ''ZSgwLFl0KSkubWF0Y2goRG0pO0dyJiYoamVbIiFjb25kZm10Il09W10uY29uY2F0LmFwcGx5KFtdLEdyLm1hcChmdW5jdGlvbihZcil7cmV0dXJuIHN4KFlyLHJlLEZlLFplKX0pKSksWXQ+LTEmJihHcj14dC5zbGljZShZdCkubWF0Y2goRG0pKSYmKGplWyIhY29uZGZtdCJdfHwoamVbIiFj''@;'; + put 'put ''b25kZm10Il09W10pLGplWyIhY29uZGZtdCJdPWplWyIhY29uZGZtdCJdLmNvbmNhdC5hcHBseShqZVsiIWNvbmRmbXQiXSxHci5tYXAoZnVuY3Rpb24oWXIpe3JldHVybiBzeChZcixyZSxGZSxaZSwhMCl9KSkpO3ZhciB6cj0oLTE9PVl0P3h0Onh0LnNsaWNlKDAsWXQpKS5tYXRjaChlYyk7''@;'; + put 'put ''enImJihqZVsiIXZhbGlkYXRpb25zIl09dkEoenJbMF0scmUpKSxZdD4tMSYmKHpyPXh0LnNsaWNlKFl0KS5tYXRjaChlYykpJiYoamVbIiF2YWxpZGF0aW9ucyJdfHwoamVbIiF2YWxpZGF0aW9ucyJdPVtdKSxqZVsiIXZhbGlkYXRpb25zIl09amVbIiF2YWxpZGF0aW9ucyJdLmNvbmNhdCh2''@;'; + put 'put ''QSh6clswXSxyZSwhMCkpKTt2YXIgcXI9eHQubWF0Y2godHgpO3FyJiZmdW5jdGlvbiBheChILHJlLFgpe2Zvcih2YXIgd2U9QXJyYXkuaXNBcnJheShIKSx4ZT0wO3hlIT1yZS5sZW5ndGg7Kyt4ZSl7dmFyIEZlPWVuKFcwKHJlW3hlXSksITApO2lmKCFGZS5yZWYpcmV0dXJuO3ZhciBaZT0o''@;'; + put 'put ''KFh8fHt9KVsiIWlkIl18fFtdKVtGZS5pZF07WmU/KEZlLlRhcmdldD1aZS5UYXJnZXQsRmUubG9jYXRpb24mJihGZS5UYXJnZXQrPSIjIitncihGZS5sb2NhdGlvbikpKTooRmUuVGFyZ2V0PSIjIitncihGZS5sb2NhdGlvbiksWmU9e1RhcmdldDpGZS5UYXJnZXQsVGFyZ2V0TW9kZToiSW50''@;'; + put 'put ''ZXJuYWwifSksRmUuUmVsPVplLEZlLnRvb2x0aXAmJihGZS5Ub29sdGlwPUZlLnRvb2x0aXAsZGVsZXRlIEZlLnRvb2x0aXApO2Zvcih2YXIgamU9Rm8oRmUucmVmKSxZZT1qZS5zLnI7WWU8PWplLmUucjsrK1llKWZvcih2YXIgTXQ9amUucy5jO010PD1qZS5lLmM7KytNdCl7dmFyIHh0PVkw''@;'; + put 'put ''KHtjOk10LHI6WWV9KTt3ZT8oSFtZZV18fChIW1llXT1bXSksSFtZZV1bTXRdfHwoSFtZZV1bTXRdPXt0OiJ6Iix2OnZvaWQgMH0pLEhbWWVdW010XS5sPUZlKTooSFt4dF18fChIW3h0XT17dDoieiIsdjp2b2lkIDB9KSxIW3h0XS5sPUZlKX19fShqZSxxcix3ZSk7dmFyIG9pPXh0Lm1hdGNo''@;'; + put 'put ''KG54KTtvaSYmZnVuY3Rpb24gb3goSCxyZSl7dmFyIFg9ZW4oSCwhMSwhMCk7cmVbIiFwcmludCJdfHwocmVbIiFwcmludCJdPXt9KSxyZVsiIXByaW50Il0ucHJvcHN8fChyZVsiIXByaW50Il0ucHJvcHM9e30pO3ZhciB3ZT1yZVsiIXByaW50Il0ucHJvcHM7WC5ncmlkTGluZXMmJih3ZS5n''@;'; + put 'put ''cmlkbGluZXM9RGkoWC5ncmlkTGluZXMpKSxudWxsIT1YLmhvcml6b250YWxDZW50ZXJlZCYmKHdlLmNlbnRlclg9RGkoWC5ob3Jpem9udGFsQ2VudGVyZWQpKSxudWxsIT1YLnZlcnRpY2FsQ2VudGVyZWQmJih3ZS5jZW50ZXJZPURpKFgudmVydGljYWxDZW50ZXJlZCkpfShvaVswXSxqZSk7''@;'; + put 'put ''dmFyIGNyPXh0Lm1hdGNoKGdfKTtjciYmKChqZVsiIXByaW50Il18fChqZVsiIXByaW50Il09e30pKS5tYXJnaW5zPWplWyIhbWFyZ2lucyJdPVBtKGVuKGNyWzBdKSkpO3ZhciBkaT14dC5tYXRjaChGQik7ZGkmJmZ1bmN0aW9uIEhCKEgscmUpe3ZhciBYPWVuKEgsITEsITApO2RlbGV0ZSBY''@;'; + put 'put ''LmlkLGRlbGV0ZSBYWzBdLHJlWyIhcHJpbnQiXXx8KHJlWyIhcHJpbnQiXT17fSkscmVbIiFwcmludCJdLnByb3BzfHwocmVbIiFwcmludCJdLnByb3BzPXt9KTt2YXIgd2U9cmVbIiFwcmludCJdLnByb3BzO1gub3JpZW50YXRpb24mJih3ZS5vcmllbnRhdGlvbj1YLm9yaWVudGF0aW9uKSxY''@;'; + put 'put ''LnNjYWxlJiYod2Uuc2NhbGU9K1guc2NhbGUpLCtYLmZpdFRvSGVpZ2h0Pj0wJiYoKHdlLmZpdHx8KHdlLmZpdD17fSkpLmhlaWdodD0rWC5maXRUb0hlaWdodCksK1guZml0VG9XaWR0aD49MCYmKCh3ZS5maXR8fCh3ZS5maXQ9e30pKS53aWR0aD0rWC5maXRUb1dpZHRoKSxYLnBhcGVySGVp''@;'; + put 'put ''Z2h0JiZYLnBhcGVyV2lkdGg/d2UucGFwZXI9e3dpZHRoOlgucGFwZXJXaWR0aCxoZWlnaHQ6WC5wYXBlckhlaWdodH06WC5wYXBlclNpemUmJih3ZS5wYXBlcj1qdlt3ZS5wYXBlcj0rWC5wYXBlclNpemVdfHx3ZS5wYXBlciksWC5ob3Jpem9udGFsRHBpP3dlLmRwaT0rWC5ob3Jpem9udGFs''@;'; + put 'put ''RHBpOlgudmVydGljYWxEcGkmJih3ZS5kcGk9K1gudmVydGljYWxEcGkpLCJhdXRvbWF0aWMiIT0oWC5maXJzdFBhZ2VOdW1iZXJ8fCJhdXRvbWF0aWMiKSYmKHdlLmZpcnN0PStYLmZpcnN0UGFnZU51bWJlciksRGkoWC5ibGFja0FuZFdoaXRlKSYmKHdlLmJ3PSEwKSxEaShYLmRyYWZ0KSYm''@;'; + put 'put ''KHdlLmRyYWZ0PSEwKSwib3ZlclRoZW5Eb3duIj09WC5wYWdlT3JkZXImJih3ZS5vcmRlcj0ib3ZlciIpLGJfW1guY2VsbENvbW1lbnRzXSYmKHdlLmNvbW1lbnRzPWJfW1guY2VsbENvbW1lbnRzXSksZkFbWC5lcnJvcnNdJiYod2UuZXJyb3JzPWZBW1guZXJyb3JzXSl9KGRpWzBdLGplKTt2''@;'; + put 'put ''YXIgdjA9eHQubWF0Y2goc0EpO3YwJiZmdW5jdGlvbiBnQShILHJlKXtpZihyZVsiIXByaW50Il18fChyZVsiIXByaW50Il09e30pLEhbMV0pe3ZhciBYPSIiLHdlPTA7SFsxXS5yZXBsYWNlKEd0LGZ1bmN0aW9uKHhlLEZlKXtpZigiLyIhPXhlLmNoYXJBdCgxKSlYPXhlLnNsaWNlKDEsLTEp''@;'; + put 'put ''LHdlPUZlK3hlLmxlbmd0aDtlbHNlIGlmKFgpe3ZhciBaZT1YLm1hdGNoKC9IZWFkZXIvKT8iaGVhZGVyIjoiZm9vdGVyIixqZT1YLnJlcGxhY2UoL0hlYWRlcnxGb290ZXIvLCIiKTtYPSIiLHJlWyIhcHJpbnQiXVtaZV18fChyZVsiIXByaW50Il1bWmVdPXt9KSxyZVsiIXByaW50Il1bWmVd''@;'; + put 'put ''W2plXT1ncihXMChIWzFdLnNsaWNlKHdlLEZlKSkpfX0pfX0odjAsamUpO3ZhciBVaT14dC5tYXRjaCh2Xyk7VWkmJigoamVbIiFwcmludCJdfHwoamVbIiFwcmludCJdPXt9KSkucm93QnJlYWtzPWplWyIhcm93QnJlYWtzIl09ZnVuY3Rpb24gQ18oSCl7dmFyIHJlPVtdO3JldHVybihILm1h''@;'; + put 'put ''dGNoKGhBKXx8W10pLmZvckVhY2goZnVuY3Rpb24oWCl7dmFyIHdlPWVuKFgpO3JlLnB1c2goe1I6K3dlLmlkfSl9KSxyZX0oVWlbMF0pKTt2YXIgdG89eHQubWF0Y2gobEEpO3RvJiYoKGplWyIhcHJpbnQiXXx8KGplWyIhcHJpbnQiXT17fSkpLmNvbEJyZWFrcz1qZVsiIWNvbEJyZWFrcyJd''@;'; + put 'put ''PWZ1bmN0aW9uIGRBKEgpe3ZhciByZT1bXTtyZXR1cm4oSC5tYXRjaChoQSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKFgpe3ZhciB3ZT1lbihYKTtyZS5wdXNoKHtDOit3ZS5pZH0pfSkscmV9KHRvWzBdKSk7dmFyIEEwPVtdO2lmKChBMD14dC5tYXRjaCgvZHJhd2luZyByOmlkPSIoLio/KSIv''@;'; + put 'put ''KSkmJihqZVsiIXJlbCJdPUEwWzFdKSwoQTA9eHQubWF0Y2goL2xlZ2FjeURyYXdpbmcgcjppZD0iKC4qPykiLykpJiYoamVbIiFsZWdyZWwiXT1BMFsxXSksKEEwPXh0Lm1hdGNoKGdHKSkmJihqZVsiIWN0cmxpZCJdPUEwLm1hcChmdW5jdGlvbihZcil7cmV0dXJuIGVuKFlyKX0pKSwoQTA9''@;'; + put 'put ''eHQubWF0Y2gobUcpKSYmZnVuY3Rpb24gdUEoSCxyZSl7SFsiIXRhYmxlcmVmcyJdfHwoSFsiIXRhYmxlcmVmcyJdPVtdKSwocmUubWF0Y2goXzEpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihYKXtIWyIhdGFibGVyZWZzIl0ucHVzaChlbihYKS5pZCl9KX0oamUsQTBbMV0pLHJlJiZyZS5ub2Rp''@;'; + put 'put ''bSYmKFllLnMuYz1ZZS5zLnI9MCksIWplWyIhcmVmIl0mJlllLmUuYz49WWUucy5jJiZZZS5lLnI+PVllLnMuciYmKGplWyIhcmVmIl09ZmEoWWUpKSxyZS5zaGVldFJvd3M+MCYmamVbIiFyZWYiXSl7dmFyIHdpPUZvKGplWyIhcmVmIl0pO3JlLnNoZWV0Um93czw9K3dpLmUuciYmKHdpLmUu''@;'; + put 'put ''cj1yZS5zaGVldFJvd3MtMSx3aS5lLnI+WWUuZS5yJiYod2kuZS5yPVllLmUuciksd2kuZS5yPHdpLnMuciYmKHdpLnMucj13aS5lLnIpLHdpLmUuYz5ZZS5lLmMmJih3aS5lLmM9WWUuZS5jKSx3aS5lLmM8d2kucy5jJiYod2kucy5jPXdpLmUuYyksamVbIiFmdWxscmVmIl09amVbIiFyZWYi''@;'; + put 'put ''XSxqZVsiIXJlZiJdPWZhKHdpKSl9cmV0dXJuIFRuJiYoamVbIiFzaGVldEZvcm1hdCJdPWZ1bmN0aW9uIENmKEgpe3ZhciByZT17fSxYPXt9LHdlPSExLHhlPXt9LEZlPSExO3JldHVybiBILmRlZmF1bHRSb3dIZWlnaHQmJih3ZT0hMCxYLmhwdD1wYXJzZUZsb2F0KEguZGVmYXVsdFJvd0hl''@;'; + put 'put ''aWdodCkpLEguemVyb0hlaWdodCYmKHdlPSEwLFguaGlkZGVuPURpKEguemVyb0hlaWdodCkpLEguYmFzZUNvbFdpZHRoPyhGZT0hMCx4ZS53Y2g9cGFyc2VGbG9hdChILmJhc2VDb2xXaWR0aCkpOkguZGVmYXVsdENvbFdpZHRoJiYoRmU9ITAseGUud2NoPXBhcnNlRmxvYXQoSC5kZWZhdWx0''@;'; + put 'put ''Q29sV2lkdGgpLTUvWDIpLEgub3V0bGluZUxldmVsQ29sJiYocmUuY29sb3V0bGluZT1wYXJzZUludChILm91dGxpbmVMZXZlbENvbCkpLEgub3V0bGluZUxldmVsUm93JiYocmUucm93b3V0bGluZT1wYXJzZUludChILm91dGxpbmVMZXZlbFJvdykpLEgudGhpY2tCb3R0b20mJihyZS5ib3R0''@;'; + put 'put ''aGljaz1EaShILnRoaWNrQm90dG9tKSksSC50aGlja1RvcCYmKHJlLnRvcHRoaWNrPURpKEgudGhpY2tUb3ApKSxILmR5RGVzY2VudCYmKHJlLmR5RGVzY2VudD1wYXJzZUZsb2F0KEguZHlEZXNjZW50KSksd2UmJihKOChYKSxyZS5yb3c9WCksRmUmJih5Yyh4ZSkscmUuY29sPXhlKSxyZX0o''@;'; + put 'put ''ZW4oVG5bMF0pKSksT24ubGVuZ3RoPjAmJihqZVsiIWNvbHMiXT1PbikseXIubGVuZ3RoPjAmJihqZVsiIW1lcmdlcyJdPXlyKSx3ZVsiIWlkIl1bamVbIiFyZWwiXV0mJihqZVsiIWRyYXdlbCJdPXdlWyIhaWQiXVtqZVsiIXJlbCJdXSksd2VbIiFpZCJdW2plWyIhbGVncmVsIl1dJiYoamVb''@;'; + put 'put ''IiFsZWdkcmF3ZWwiXT13ZVsiIWlkIl1bamVbIiFsZWdyZWwiXV0pLChqZVsiIWN0cmxpZCJdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihZcil7WXIucmVsPXdlWyIhaWQiXVtZci5pZF19KSxudWxsPT1qZVsiIWdyaWRsaW5lcyJdJiYoamVbIiFncmlkbGluZXMiXT0hMCksamV9KEgsd2UsWCx4''@;'; + put 'put ''ZSxGZSxaZSxqZSl9KFl0LHJlLHhlLFllLEZlW3dlXSxNdCx4dCxSdCk7YnJlYWs7Y2FzZSJjaGFydCI6bm49ZnVuY3Rpb24gV18oSCxyZSxYLHdlLHhlLEZlLFplLGplKXtyZXR1cm4iLmJpbiI9PT1yZS5zbGljZSgtNCk/ZnVuY3Rpb24gbFAoSCxyZSxYLHdlLHhlKXtpZighSClyZXR1cm4g''@;'; + put 'put ''SDt3ZXx8KHdlPXsiIWlkIjp7fX0pO3ZhciBGZT17IiF0eXBlIjoiY2hhcnQiLCIhZHJhd2VsIjpudWxsLCIhcmVsIjoiIn0sWmU9W10samU9ITE7cmV0dXJuIEgxKEgsZnVuY3Rpb24oTXQseHQsUnQpe3N3aXRjaChSdCl7Y2FzZSA1NTA6RmVbIiFyZWwiXT1NdDticmVhaztjYXNlIDY1MTp4''@;'; + put 'put ''ZS5TaGVldHNbWF18fCh4ZS5TaGVldHNbWF09e30pLE10Lm5hbWUmJih4ZS5TaGVldHNbWF0uQ29kZU5hbWU9TXQubmFtZSk7YnJlYWs7Y2FzZSA1NjI6Y2FzZSA2NTI6Y2FzZSA2Njk6Y2FzZSA2Nzk6Y2FzZSA1NTE6Y2FzZSA1NTI6Y2FzZSA0NzY6Y2FzZSAzMDcyOmJyZWFrO2Nhc2UgMzU6''@;'; + put 'put ''amU9ITA7YnJlYWs7Y2FzZSAzNjpqZT0hMTticmVhaztjYXNlIDM3OlplLnB1c2goeHQpO2JyZWFrO2Nhc2UgMzg6WmUucG9wKCk7YnJlYWs7ZGVmYXVsdDppZigoeHR8fCIiKS5pbmRleE9mKCJCZWdpbiIpPjApWmUucHVzaCh4dCk7ZWxzZSBpZigoeHR8fCIiKS5pbmRleE9mKCJFbmQiKT4w''@;'; + put 'put ''KVplLnBvcCgpO2Vsc2UgaWYoIWplfHxyZS5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAiK1J0KyIgIit4dCl9fSxyZSksd2VbIiFpZCJdW0ZlWyIhcmVsIl1dJiYoRmVbIiFkcmF3ZWwiXT13ZVsiIWlkIl1bRmVbIiFyZWwiXV0pLEZlfShILHdlLFgseGUsRmUpOmZ1''@;'; + put 'put ''bmN0aW9uIEl4KEgscmUsWCx3ZSx4ZSl7aWYoIUgpcmV0dXJuIEg7d2V8fCh3ZT17IiFpZCI6e319KTt2YXIgWmUsRmU9eyIhdHlwZSI6ImNoYXJ0IiwiIWRyYXdlbCI6bnVsbCwiIXJlbCI6IiJ9LGplPUgubWF0Y2gobV8pO2plJiZPbShqZVswXSwwLHhlLFgpO3ZhciBZZT1ILm1hdGNoKGdf''@;'; + put 'put ''KTtyZXR1cm4gWWUmJihGZVsiIW1hcmdpbnMiXT1QbShlbihZZVswXSkpKSwoWmU9SC5tYXRjaCgvZHJhd2luZyByOmlkPSIoLio/KSIvKSkmJihGZVsiIXJlbCJdPVplWzFdKSx3ZVsiIWlkIl1bRmVbIiFyZWwiXV0mJihGZVsiIWRyYXdlbCJdPXdlWyIhaWQiXVtGZVsiIXJlbCJdXSksRmV9''@;'; + put 'put ''KEgsMCxYLHhlLEZlKX0oWXQscmUseGUsWWUsRmVbd2VdLE10KTticmVhaztjYXNlIm1hY3JvIjpubj1mdW5jdGlvbiBZXyhILHJlLFgsd2UseGUsRmUsWmUsamUpe3JldHVybiByZS5zbGljZSgtNCkseyIhdHlwZSI6Im1hY3JvIn19KDAscmUpO2JyZWFrO2Nhc2UiZGlhbG9nIjpubj1mdW5j''@;'; + put 'put ''dGlvbiBoUChILHJlLFgsd2UseGUsRmUsWmUsamUpe3JldHVybiByZS5zbGljZSgtNCkseyIhdHlwZSI6ImRpYWxvZyJ9fSgwLHJlKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHNoZWV0IHR5cGUgIitqZSl9aWYoWWUuY2FsbGJhY2spcmV0dXJuO1plW3dl''@;'; + put 'put ''XT1ubixmdW5jdGlvbiBQUChILHJlLFgsd2UseGUsRmUsWmUsamUpe2lmKEgmJkhbIiFkcmF3ZWwiXSl7dmFyIFllPXVuKEhbIiFkcmF3ZWwiXS5UYXJnZXQsd2UpLE10PUl0KFllKSx4dD1mdW5jdGlvbiBFRShILHJlLFgsd2UseGUpe3ZhciBGZT17Y2hhcnRzOltdLGltYWdlczpbXSxzaGFw''@;'; + put 'put ''ZXM6W119O2lmKCFIKXJldHVybiBGZTt2YXIgWmU9eGV8fHt9O3JldHVybihILm1hdGNoKC88W148XSo/KGFic29sdXRlQW5jaG9yfG9uZUNlbGxBbmNob3J8dHdvQ2VsbEFuY2hvcikuKj8oYWJzb2x1dGVBbmNob3J8b25lQ2VsbEFuY2hvcnx0d29DZWxsQW5jaG9yKS4qPz4vZyl8fFtdKS5m''@;'; + put 'put ''b3JFYWNoKGZ1bmN0aW9uKGplKXt2YXIgWWU9IiIsTXQ9e3R5cGU6IiJ9LHh0PXt9LFJ0PSEwLFl0PSExLG5uPSExLENuPSExLER0PXtzOnt9fSx6dD0tMSxQbj1bXSxUbj1bXSxPbj17czp7YWxpZ25tZW50Ontob3Jpem9udGFsOiJjZW50ZXIiLHZlcnRpY2FsOiJjZW50ZXIifX19LFduPSIi''@;'; + put 'put ''LE1yPS0xLHlyPXt9O2plLnJlcGxhY2UoR3QsZnVuY3Rpb24oYXIsR3Ipe1BuPW51bGw7dmFyIHpyPWVuKGFyKSxxcj1Jbih6clswXSkucmVwbGFjZSgvW1wvXT8+JC8sIiIpO3N3aXRjaChxcil7Y2FzZSI8Y2xpZW50RGF0YSI6YnJlYWs7Y2FzZSI8YWJzb2x1dGVBbmNob3IiOmNhc2UiPG9u''@;'; + put 'put ''ZUNlbGxBbmNob3IiOmNhc2UiPHR3b0NlbGxBbmNob3IiOk10LnR5cGU9SW4oenJbMF0pLnJlcGxhY2UoL1s8Pl0vZywiIik7YnJlYWs7Y2FzZSI8L2Fic29sdXRlQW5jaG9yIjpjYXNlIjwvb25lQ2VsbEFuY2hvciI6Y2FzZSI8L3R3b0NlbGxBbmNob3IiOmJyZWFrO2Nhc2UiPHBvcyI6TXQu''@;'; + put 'put ''cG9zPXt4Oit6ci54LHk6K3pyLnl9O2JyZWFrO2Nhc2UiPGV4dCI6UnQmJihNdC5leHQ9e3g6K3pyLmN4LHk6K3pyLmN5fSk7YnJlYWs7Y2FzZSI8ZnJvbSI6Y2FzZSI8dG8iOnh0PXt9O2JyZWFrO2Nhc2UiPC9mcm9tIjpSdCYmKE10LmZyb209eHQpO2JyZWFrO2Nhc2UiPC90byI6UnQmJihN''@;'; + put 'put ''dC50bz14dCk7YnJlYWs7Y2FzZSI8Y29sIjpjYXNlIjxjb2xPZmYiOmNhc2UiPHJvdyI6Y2FzZSI8cm93T2ZmIjp6dD1Hcithci5sZW5ndGg7YnJlYWs7Y2FzZSI8L2NvbCI6eHQuYz0ramUuc2xpY2UoenQsR3IpO2JyZWFrO2Nhc2UiPC9jb2xPZmYiOnh0LmNPZmY9K2plLnNsaWNlKHp0LEdy''@;'; + put 'put ''KTticmVhaztjYXNlIjwvcm93Ijp4dC5yPStqZS5zbGljZSh6dCxHcik7YnJlYWs7Y2FzZSI8L3Jvd09mZiI6eHQuck9mZj0ramUuc2xpY2UoenQsR3IpO2JyZWFrO2Nhc2UiPHNwIjpZZT0ic2hhcGUiLE9uLkFuY2hvcj1NdCxGZS5zaGFwZXMucHVzaChPbiksUnQ9ITE7YnJlYWs7Y2FzZSI8''@;'; + put 'put ''L3NwIjpSdD0hMDticmVhaztjYXNlIjxncmFwaGljRnJhbWUiOlllPSJncmFwaGljIixSdD0hMTticmVhaztjYXNlIjwvZ3JhcGhpY0ZyYW1lIjpSdD0hMDticmVhaztjYXNlIjxwaWMiOlllPSJwaWN0dXJlIixSdD0hMTticmVhaztjYXNlIjwvcGljIjpSdD0hMDticmVhaztjYXNlIjxncnBT''@;'; + put 'put ''cCI6WWU9Imdyb3Vwc2hhcGUiLFJ0PSExO2JyZWFrO2Nhc2UiPC9ncnBTcCI6UnQ9ITA7YnJlYWs7Y2FzZSI8Z3JhcGhpYyI6Y2FzZSI8L2dyYXBoaWMiOmNhc2UiPHhmcm0iOmNhc2UiPC94ZnJtIjpjYXNlIjxvZmYiOmJyZWFrO2Nhc2UiPGdyYXBoaWNEYXRhIjpZdD0hMDticmVhaztjYXNl''@;'; + put 'put ''IjwvZ3JhcGhpY0RhdGEiOll0PSExO2JyZWFrO2Nhc2UiPGJsaXBGaWxsIjpZdD0hMDticmVhaztjYXNlIjwvYmxpcEZpbGwiOll0PSExO2JyZWFrO2Nhc2UiPC9ibGlwIjpicmVhaztjYXNlIjxzcmNSZWN0IjpZdD0hMDticmVhaztjYXNlIjwvc3JjUmVjdCI6WXQ9ITE7YnJlYWs7Y2FzZSI8''@;'; + put 'put ''bm9GaWxsIjppZihubilicmVhazsiPHNwUHIiPT1Ubi5zbGljZSgtMSlbMF0mJihPbi5zLmZnQ29sb3I9bnVsbCk7YnJlYWs7Y2FzZSI8L3NvbGlkRmlsbCI6aWYobm58fENuKWJyZWFrOyI8c3BQciI9PVRuLnNsaWNlKC0yKVswXT9Pbi5zLmZnQ29sb3I9eXI6IjxyUHIiPT1Ubi5zbGljZSgt''@;'; + put 'put ''MilbMF0mJlRuLmluZGV4T2YoIjx0eEJvZHkiKT4tMSYmKER0LnMuY29sb3I9eXIpLHlyPXt9LENuPSExO2JyZWFrO2Nhc2UiPHByc3RHZW9tIjoic2hhcGUiPT1ZZSYmKE9uWyIhc2hhcGUiXT16ci5wcnN0KTticmVhaztjYXNlIjwvcHJzdEdlb20iOmNhc2UiPGF2THN0IjpicmVhaztjYXNl''@;'; + put 'put ''Ijx0eEJvZHkiOll0PSEwLE9uLlI9W107YnJlYWs7Y2FzZSI8L3R4Qm9keSI6WXQ9ITE7YnJlYWs7Y2FzZSI8Ym9keVByIjpPbi5zLmFsaWdubWVudC52ZXJ0aWNhbD1NRVt6ci5hbmNob3J8fCJ0Il18fCJ0b3AiO2JyZWFrO2Nhc2UiPGxzdFN0eWxlIjpicmVhaztjYXNlIjx0IjpNcj1Hcith''@;'; + put 'put ''ci5sZW5ndGg7YnJlYWs7Y2FzZSI8YnIiOmNhc2UiPGJyLz4iOlduKz0iXG4iO2JyZWFrO2Nhc2UiPC90IjpXbis9amUuc2xpY2UoTXIsR3IpO2JyZWFrO2Nhc2UiPHBQciI6T24ucy5hbGlnbm1lbnQuaG9yaXpvbnRhbHx8KE9uLnMuYWxpZ25tZW50Lmhvcml6b250YWw9UGJbenIuYWxnbnx8''@;'; + put 'put ''ImwiXXx8ImxlZnQiKSxUbi5pbmRleE9mKCI8dHhCb2R5Iik+LTEmJihEdC5zLmFsaWdubWVudC5ob3Jpem9udGFsPVBiW3pyLmFsZ258fCJsIl18fCJsZWZ0Iik7YnJlYWs7Y2FzZSI8clByIjp6ci5zeiYmVG4uaW5kZXhPZigiPHR4Qm9keSIpPi0xJiYoT24ucy5zej1EdC5zLnN6PSt6ci5z''@;'; + put 'put ''ei8xMDApO2JyZWFrO2Nhc2UiPHAiOlduPSIiLER0PXt0OiJzIix2OiIiLHM6e2FsaWdubWVudDp7fX19O2JyZWFrO2Nhc2UiPC9wIjoic2hhcGUiPT1ZZSYmVG4uaW5kZXhPZigiPHR4Qm9keSIpPi0xJiYoT24udj0oT24udnx8IiIpK1duLER0LnY9V24sT24uUi5wdXNoKER0KSk7YnJlYWs7''@;'; + put 'put ''Y2FzZSI8bGF0aW4iOnpyLnR5cGVmYWNlJiZUbi5pbmRleE9mKCI8dHhCb2R5Iik+LTEmJihEdC5zLm5hbWU9enIudHlwZWZhY2UpO2JyZWFrO2Nhc2UiPHN0eWxlIjpZdD0hMCxubj0hMDticmVhaztjYXNlIjwvc3R5bGUiOll0PSExLG5uPSExO2JyZWFrO2Nhc2UiPGxuUmVmIjpjYXNlIjxm''@;'; + put 'put ''aWxsUmVmIjpjYXNlIjxlZmZlY3RSZWYiOmNhc2UiPGZvbnRSZWYiOmJyZWFrO2Nhc2UiPC9maWxsUmVmIjohbm4mJiJzaGFwZSI9PVllJiYoT24ucy5mZ0NvbG9yPXlyKSx5cj17fTticmVhaztjYXNlIjwvZm9udFJlZiI6IW5uJiYic2hhcGUiPT1ZZSYmKE9uLnMuY29sb3I9eXIpLHlyPXt9''@;'; + put 'put ''O2JyZWFrO2Nhc2UiPHNjaGVtZUNsciI6dmFyIG9pPXtiZzE6Imx0MSIsYmcyOiJsdDIiLHR4MToiZGsxIix0eDI6ImRrMiJ9W3pyLnZhbF18fHpyLnZhbCxjcj0oKHdlLnRoZW1lRWxlbWVudHN8fHt9KS5jbHJTY2hlbWV8fFtdKS5maW5kKGZ1bmN0aW9uKHYwKXtyZXR1cm4gdjAubmFtZT09''@;'; + put 'put ''b2l9KTtjcj95ci5yZ2I9Y3IucmdiOkNuPSEwO2JyZWFrO2Nhc2UiPHNjcmdiQ2xyIjpDbj0hMDticmVhaztjYXNlIjxzcmdiQ2xyIjp5ci5yZ2I9enIudmFsLnNsaWNlKC02KTticmVhaztjYXNlIjxoc2xDbHIiOmNhc2UiPHN5c0NsciI6Y2FzZSI8cHJzdENsciI6Q249ITA7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSI8Y2hhcnQiOlBuPUZlLmNoYXJ0czt2YXIgZGk9enIuaWQ7Y2FzZSI8YmxpcCI6UG58fChQbj1GZS5pbWFnZXMsZGk9enIuZW1iZWQpLFBuLnB1c2goe0FuY2hvcjpNdCxUYXJnZXQ6KHJlWyIhaWQiXVtkaV18fHt9KS5UYXJnZXR9KSx6ci5saW5rJiYoUG5bUG4ubGVuZ3RoLTFdLkxpbms9''@;'; + put 'put ''KHJlWyIhaWQiXVt6ci5saW5rXXx8e30pLlRhcmdldCk7YnJlYWs7Y2FzZSI8Z3JwU3BQciI6WXQ9ITA7YnJlYWs7Y2FzZSI8L2dycFNwUHIiOll0PSExO2JyZWFrO2Nhc2UiPG52R3JwU3BQciI6WXQ9ITA7YnJlYWs7Y2FzZSI8L252R3JwU3BQciI6WXQ9ITE7YnJlYWs7Y2FzZSI8c3BQciI6''@;'; + put 'put ''WXQ9ITA7YnJlYWs7Y2FzZSI8L3NwUHIiOll0PSExO2JyZWFrO2Nhc2UiPHN0cmV0Y2giOmNhc2UiPC9zdHJldGNoIjpjYXNlIjxmaWxsUmVjdCI6Y2FzZSI8bnZHcmFwaGljRnJhbWVQciI6Y2FzZSI8L252R3JhcGhpY0ZyYW1lUHIiOmNhc2UiPGNOdkdyYXBoaWNGcmFtZVByIjpjYXNlIjwv''@;'; + put 'put ''Y052R3JhcGhpY0ZyYW1lUHIiOmNhc2UiPGdyYXBoaWNGcmFtZUxvY2tzIjpjYXNlIjxudlBpY1ByIjpjYXNlIjwvbnZQaWNQciI6Y2FzZSI8Y052UGljUHIiOmNhc2UiPC9jTnZQaWNQciI6Y2FzZSI8cGljTG9ja3MiOmNhc2UiPGNOdkdycFNwUHIiOmNhc2UiPC9jTnZHcnBTcFByIjpjYXNl''@;'; + put 'put ''IjxncnBTcExvY2tzIjpjYXNlIjxudlNwUHIiOmNhc2UiPC9udlNwUHIiOmNhc2UiPGNOdlNwUHIiOmNhc2UiPC9jTnZTcFByIjpjYXNlIjxzcExvY2tzIjpicmVhaztjYXNlIjxjTnZQciI6WXQ9ITA7YnJlYWs7Y2FzZSI8L2NOdlByIjpZdD0hMTticmVhaztjYXNlIjxjeG5TcCI6WXQ9ITA7''@;'; + put 'put ''YnJlYWs7Y2FzZSI8L2N4blNwIjpZdD0hMTticmVhaztjYXNlIjxjTnZDeG5TcFByIjpZdD0hMDticmVhaztjYXNlIjwvY052Q3huU3BQciI6WXQ9ITE7YnJlYWs7Y2FzZSI8bnZDeG5TcFByIjpjYXNlIjwvbnZDeG5TcFByIjpicmVhaztjYXNlIjxleHRMc3QiOll0PSEwLG5uPSEwO2JyZWFr''@;'; + put 'put ''O2Nhc2UiPC9leHRMc3QiOll0PSExLG5uPSExO2JyZWFrO2Nhc2UiPC9leHQiOmJyZWFrO2RlZmF1bHQ6aWYoWmUmJlplLldURiYmIVl0KXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrenJbMF0rIiBpbiBkcmF3aW5nIil9cmV0dXJuIjwvIj09cXIuc2xpY2UoMCwyKT9Ubi5wb3Ao''@;'; + put 'put ''KToiLz4iIT1hci5zbGljZShhci5sZW5ndGgtMikmJlRuLnB1c2gocXIpLCIifSl9KSxGZX0oVW4oWCxZZSwhMCksUHQoVW4oWCxNdCwhMCksWWUpLDAsamUseGUpO2lmKHh0KXtpZih4dC5jaGFydHMpZm9yKHZhciBSdD0wO1J0PHh0LmNoYXJ0cy5sZW5ndGg7KytSdCl7dmFyIFl0PXh0LmNo''@;'; + put 'put ''YXJ0c1tSdF0sbm49dW4oWXQuVGFyZ2V0LFllKSxDbj1JdChubiksRHQ9ImNoYXJ0Ij09cmUmJjA9PVJ0LHp0PXh4KFVuKFgsbm4sITApLDAsMCxQdChVbihYLENuLCEwKSxubiksMCxEdD9IOm51bGwsWXQsRHQ/bnVsbDpIKTtEdHx8KEhbIiFjaGFydHMiXXx8KEhbIiFjaGFydHMiXT1bXSks''@;'; + put 'put ''SFsiIWNoYXJ0cyJdLnB1c2goenQpKX1pZih4ZS5ib29rSW1hZ2VzJiZ4dC5pbWFnZXMpZm9yKHZhciBQbj0wO1BuPHh0LmltYWdlcy5sZW5ndGg7KytQbil7dmFyIFRuPXh0LmltYWdlc1tQbl0sT249eyIhdHlwZSI6ImltYWdlIiwiIXBvcyI6JDgoVG4uQW5jaG9yKSwiIXBvc1R5cGUiOlRu''@;'; + put 'put ''LkFuY2hvci50eXBlLnJlcGxhY2UoL0FuY2hvci8sIiIpLCIhYWJzcG9zIjp5ZihUbi5BbmNob3IsSCksIiFyZWxwb3MiOkRiKFRuLkFuY2hvcixIKX07aWYoVG4uVGFyZ2V0JiYoT25bIiFwYXRoIl09dW4oVG4uVGFyZ2V0LFllKSxPblsiIWRhdGEiXT1zbihYLE9uWyIhcGF0aCJdKSxPblsi''@;'; + put 'put ''IWRhdGF0eXBlIl09InN0cmluZyI9PXR5cGVvZiBPblsiIWRhdGEiXT8iYmluYXJ5IjoiYnVmZmVyIiksVG4uTGluayYmKE9uWyIhZGF0YXR5cGUiXXx8KE9uWyIhZGF0YXR5cGUiXT0icmVtb3RlIiksT25bIiFsaW5rIl09VG4uTGluayksIU9uWyIhZGF0YXR5cGUiXSl0aHJvdyJJbWFnZSBk''@;'; + put 'put ''YXRhIGNhbm5vdCBiZSBmb3VuZCI7SFsiIWltYWdlcyJdfHwoSFsiIWltYWdlcyJdPVtdKSxIWyIhaW1hZ2VzIl0ucHVzaChPbil9dmFyIFduLE1yO2lmKHh0LnNoYXBlcylmb3IodmFyIHlyPTA7eXI8eHQuc2hhcGVzLmxlbmd0aDsrK3lyKU1yPXsiIXR5cGUiOiJzaGFwZSIsIiFwb3MiOnlm''@;'; + put 'put ''KChXbj14dC5zaGFwZXNbeXJdKS5BbmNob3IsSCksIiFwb3NUeXBlIjpXbi5BbmNob3IudHlwZS5yZXBsYWNlKC9BbmNob3IvLCIiKSwiIWFic3BvcyI6eWYoV24uQW5jaG9yLEgpLCIhcmVscG9zIjpEYihXbi5BbmNob3IsSCl9LFsidiIsIiFzaGFwZSIsInMiLCJSIl0uZm9yRWFjaChhaSks''@;'; + put 'put ''SFsiIXNoYXBlcyJdfHwoSFsiIXNoYXBlcyJdPVtdKSxIWyIhc2hhcGVzIl0ucHVzaChNcil9fWZ1bmN0aW9uIGFpKGFyKXtXblthcl0mJihNclthcl09V25bYXJdKX19KG5uLGplLEgscmUsWWUsMCwwLHh0KTt2YXIgQ249W107cmV0dXJuIEZlJiZGZVt3ZV0mJm9uKEZlW3dlXSkuZm9yRWFj''@;'; + put 'put ''aChmdW5jdGlvbihEdCl7aWYoRmVbd2VdW0R0XS5UeXBlPT1wdC5DTU5UKXt2YXIgenQ9dW4oRmVbd2VdW0R0XS5UYXJnZXQscmUpO2lmKCEoQ249ZnVuY3Rpb24gZ1AoSCxyZSxYKXtyZXR1cm4iLmJpbiI9PT1yZS5zbGljZSgtNCk/ZnVuY3Rpb24gR2IoSCxyZSl7dmFyIFg9W10sd2U9W10s''@;'; + put 'put ''eGU9e30sRmU9ITE7cmV0dXJuIEgxKEgsZnVuY3Rpb24oamUsWWUsTXQpe3N3aXRjaChNdCl7Y2FzZSA2MzI6d2UucHVzaChqZSk7YnJlYWs7Y2FzZSA2MzU6eGU9amU7YnJlYWs7Y2FzZSA2Mzc6eGUudD1qZS50LHhlLmg9amUuaCx4ZS5yPWplLnI7YnJlYWs7Y2FzZSA2MzY6aWYoeGUuYXV0''@;'; + put 'put ''aG9yPXdlW3hlLmlhdXRob3JdLGRlbGV0ZSB4ZS5pYXV0aG9yLHJlLnNoZWV0Um93cyYmeGUucmZ4JiZyZS5zaGVldFJvd3M8PXhlLnJmeC5yKWJyZWFrO3hlLnR8fCh4ZS50PSIiKSxkZWxldGUgeGUucmZ4LFgucHVzaCh4ZSk7YnJlYWs7Y2FzZSAzMDcyOmNhc2UgMzc6Y2FzZSAzODpicmVh''@;'; + put 'put ''aztjYXNlIDM1OkZlPSEwO2JyZWFrO2Nhc2UgMzY6RmU9ITE7YnJlYWs7ZGVmYXVsdDppZighKChZZXx8IiIpLmluZGV4T2YoIkJlZ2luIik+MCkmJiEoKFllfHwiIikuaW5kZXhPZigiRW5kIik+MCkmJighRmV8fHJlLldURikpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAi''@;'; + put 'put ''K010KyIgIitZZSl9fSksWH0oSCxYKTpmdW5jdGlvbiBURShILHJlKXtpZihILm1hdGNoKC88KD86XHcrOik/Y29tbWVudHMgKlwvPi8pKXJldHVybltdO3ZhciBYPVtdLHdlPVtdLHhlPUgubWF0Y2goLzwoPzpcdys6KT9hdXRob3JzPihbXHNcU10qKTxcLyg/Olx3KzopP2F1dGhvcnM+Lyk7''@;'; + put 'put ''eGUmJnhlWzFdJiZ4ZVsxXS5zcGxpdCgvPFwvXHcqOj9hdXRob3I+LykuZm9yRWFjaChmdW5jdGlvbihaZSl7aWYoIiIhPT1aZSYmIiIhPT1aZS50cmltKCkpe3ZhciBqZT1aZS5tYXRjaCgvPCg/Olx3KzopP2F1dGhvcltePl0qPiguKikvKTtqZSYmWC5wdXNoKGplWzFdKX19KTt2YXIgRmU9''@;'; + put 'put ''SC5tYXRjaCgvPCg/Olx3KzopP2NvbW1lbnRMaXN0PihbXHNcU10qKTxcLyg/Olx3KzopP2NvbW1lbnRMaXN0Pi8pO3JldHVybiBGZSYmRmVbMV0mJkZlWzFdLnNwbGl0KC88XC9cdyo6P2NvbW1lbnQ+LykuZm9yRWFjaChmdW5jdGlvbihaZSl7aWYoIiIhPT1aZSYmIiIhPT1aZS50cmltKCkp''@;'; + put 'put ''e3ZhciBqZT1aZS5tYXRjaCgvPCg/Olx3KzopP2NvbW1lbnRbXj5dKj4vKTtpZihqZSl7dmFyIFllPWVuKGplWzBdKSxNdD17YXV0aG9yOlllLmF1dGhvcklkJiZYW1llLmF1dGhvcklkXXx8InNoZWV0anNnaG9zdCIscmVmOlllLnJlZixndWlkOlllLmd1aWR9LHh0PXVsKFllLnJlZik7aWYo''@;'; + put 'put ''IShyZS5zaGVldFJvd3MmJnJlLnNoZWV0Um93czw9eHQucikpe3ZhciBSdD1aZS5tYXRjaCgvPCg/Olx3KzopP3RleHQ+KFtcc1xTXSopPFwvKD86XHcrOik/dGV4dD4vKSxZdD0hIVJ0JiYhIVJ0WzFdJiYkdShSdFsxXSl8fHtyOiIiLHQ6IiIsaDoiIn07TXQucj1ZdC5yLCI8dD48L3Q+Ij09''@;'; + put 'put ''WXQuciYmKFl0LnQ9WXQuaD0iIiksTXQudD0oWXQudHx8IiIpLnJlcGxhY2UoL1xyXG4vZywiXG4iKS5yZXBsYWNlKC9cci9nLCJcbiIpLHJlLmNlbGxIVE1MJiYoTXQuaD1ZdC5oKSx3ZS5wdXNoKE10KX19fX0pLHdlfShILFgpfShzbihILHp0LCEwKSx6dCxZZSkpfHwhQ24ubGVuZ3RoKXJl''@;'; + put 'put ''dHVybjshZnVuY3Rpb24gR3YoSCxyZSl7dmFyIHdlLFg9QXJyYXkuaXNBcnJheShIKTtyZS5mb3JFYWNoKGZ1bmN0aW9uKHhlKXt2YXIgRmU9dWwoeGUucmVmKTtpZihYPyhIW0ZlLnJdfHwoSFtGZS5yXT1bXSksd2U9SFtGZS5yXVtGZS5jXSk6d2U9SFt4ZS5yZWZdLCF3ZSl7d2U9e3Q6Inoi''@;'; + put 'put ''fSxYP0hbRmUucl1bRmUuY109d2U6SFt4ZS5yZWZdPXdlO3ZhciBaZT1GbyhIWyIhcmVmIl18fCJCRFdHTzEwMDAwMDE6QTEiKTtaZS5zLnI+RmUuciYmKFplLnMucj1GZS5yKSxaZS5lLnI8RmUuciYmKFplLmUucj1GZS5yKSxaZS5zLmM+RmUuYyYmKFplLnMuYz1GZS5jKSxaZS5lLmM8RmUu''@;'; + put 'put ''YyYmKFplLmUuYz1GZS5jKTt2YXIgamU9ZmEoWmUpO2plIT09SFsiIXJlZiJdJiYoSFsiIXJlZiJdPWplKX13ZS5jfHwod2UuYz1bXSk7dmFyIFllPXthOnhlLmF1dGhvcix0OnhlLnQscjp4ZS5yfTtZZS5yJiYic3RyaW5nIj09dHlwZW9mIFllLnImJihZZS5SPVc4KFllLnIpKSx4ZS5oJiYo''@;'; + put 'put ''WWUuaD14ZS5oKSx3ZS5jLnB1c2goWWUpfSl9KG5uLENuKX19KSxmdW5jdGlvbiB1VChILHJlLFgsd2UseGUsRmUsWmUpeyFIfHwhSFsiIXRhYmxlcmVmcyJdfHwhWHx8IVhbIiFpZCJdfHwoSFsiIXRhYmxlcyJdPVtdLEhbIiF0YWJsZXJlZnMiXS5mb3JFYWNoKGZ1bmN0aW9uKGplKXt2YXIg''@;'; + put 'put ''WWU9WFsiIWlkIl1bamVdO2lmKFllJiZZZS5UYXJnZXQpe3ZhciBNdD11bihZZS5UYXJnZXQsd2UpO3ZvaWQgMCE9PVp2JiZadihzbihyZSxNdCwhMCksSCx4ZSwwLFplKX19KSxkZWxldGUgSFsiIXRhYmxlcmVmcyJdKX0obm4sSCxGZVt3ZV0scmUsUnQsMCxZZSksInVuZGVmaW5lZCIhPXR5''@;'; + put 'put ''cGVvZiBwYXJzZV9zaGVldF9waXZvdCYmRDUucHVzaChbbm4sSCxGZVt3ZV0scmUse1NoZWV0czpaZX0sUnQsWWVdKSxmdW5jdGlvbiBGUChILHJlLFgsd2UseGUsRmUsWmUsamUpe2lmKEgmJkhbIiFsZWdkcmF3ZWwiXSl7dmFyIFllPXVuKEhbIiFsZWdkcmF3ZWwiXS5UYXJnZXQsd2UpLE10''@;'; + put 'put ''PVVuKFgsWWUsITApO010JiZmdW5jdGlvbiBOYihILHJlLFgpe3ZhciB3ZT0wOyhILm1hdGNoKG9CKXx8W10pLmZvckVhY2goZnVuY3Rpb24oeGUpe3ZhciBQbixUbixPbixXbixNcixhaSx5cixhcixGZT0iIixaZT0hMCxqZT0iIixZZT0tMSxNdD17fSx4dD17fSxSdD17fSxZdD0tMSxubj0t''@;'; + put 'put ''MSxDbj0iIixEdD0iIix6dD0iIixHcj0hMSx6cj0hMTtzd2l0Y2goeGUucmVwbGFjZShHdCxmdW5jdGlvbihjcixkaSl7dmFyIHYwPWVuKGNyKTtzd2l0Y2goSW4odjBbMF0pKXtjYXNlIjxzaGFwZSI6djAuZmlsbGNvbG9yJiYoTXQuY29sb3IxPXYwLmZpbGxjb2xvciksdjAuc3Ryb2tlY29s''@;'; + put 'put ''b3ImJihSdC5jb2xvcj12MC5zdHJva2Vjb2xvcik7YnJlYWs7Y2FzZSI8ZmlsbCI6Y2FzZSI8ZmlsbD4iOiI8djpmaWxsIj09djBbMF0mJih2MC5jb2xvcjImJihNdC5jb2xvcjI9djAuY29sb3IyKSx2MC50eXBlJiYoTXQudHlwZT12MC50eXBlKSk7YnJlYWs7Y2FzZSI8L2ZpbGw+IjpjYXNl''@;'; + put 'put ''Ijxsb2NrIjpjYXNlIjxsb2NrLz4iOmJyZWFrO2Nhc2UiPHNoYWRvdyI6djAuY29sb3ImJih4dC5jb2xvcj12MC5jb2xvciksdjAub24mJih4dC5vbj12MC5vbik7YnJlYWs7Y2FzZSI8Q2xpZW50RGF0YSI6djAuT2JqZWN0VHlwZSYmKEZlPXYwLk9iamVjdFR5cGUpO2JyZWFrO2Nhc2UiPFZp''@;'; + put 'put ''c2libGUiOmNhc2UiPFZpc2libGUvPiI6WmU9ITE7YnJlYWs7Y2FzZSI8QW5jaG9yIjpjYXNlIjxBbmNob3I+IjpjYXNlIjxSb3ciOmNhc2UiPFJvdz4iOmNhc2UiPENvbHVtbiI6Y2FzZSI8Q29sdW1uPiI6Y2FzZSI8Rm1sYU1hY3JvIjpjYXNlIjxGbWxhTWFjcm8+IjpjYXNlIjxGbWxhTGlu''@;'; + put 'put ''ayI6Y2FzZSI8Rm1sYUxpbms+IjpjYXNlIjxGbWxhUmFuZ2UiOmNhc2UiPEZtbGFSYW5nZT4iOmNhc2UiPFNlbFR5cGUiOmNhc2UiPFNlbFR5cGU+IjpjYXNlIjxWYWwiOmNhc2UiPFZhbD4iOmNhc2UiPE1pbiI6Y2FzZSI8TWluPiI6Y2FzZSI8TWF4IjpjYXNlIjxNYXg+IjpjYXNlIjxJbmMi''@;'; + put 'put ''OmNhc2UiPEluYz4iOmNhc2UiPFBhZ2UiOmNhc2UiPFBhZ2U+IjpjYXNlIjxDaGVja2VkIjpjYXNlIjxDaGVja2VkPiI6Y2FzZSI8dGV4dGJveCI6Y2FzZSI8dGV4dGJveD4iOlllPWRpK2NyLmxlbmd0aDticmVhaztjYXNlIjwvQW5jaG9yPiI6amU9eGUuc2xpY2UoWWUsZGkpLnRyaW0oKTti''@;'; + put 'put ''cmVhaztjYXNlIjwvUm93PiI6WXQ9K3hlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0NvbHVtbj4iOm5uPSt4ZS5zbGljZShZZSxkaSkudHJpbSgpO2JyZWFrO2Nhc2UiPC9GbWxhTWFjcm8+IjpDbj14ZS5zbGljZShZZSxkaSkudHJpbSgpO2JyZWFrO2Nhc2UiPC9GbWxhTGlu''@;'; + put 'put ''az4iOkR0PXhlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0ZtbGFSYW5nZT4iOnlyPXhlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L1NlbFR5cGU+Ijphcj14ZS5zbGljZShZZSxkaSkudHJpbSgpO2JyZWFrO2Nhc2UiPC9WYWw+IjpQbj0reGUuc2xpY2UoWWUs''@;'; + put 'put ''ZGkpLnRyaW0oKTticmVhaztjYXNlIjwvTWluPiI6VG49K3hlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L01heD4iOk9uPSt4ZS5zbGljZShZZSxkaSkudHJpbSgpO2JyZWFrO2Nhc2UiPC9JbmM+IjpXbj0reGUuc2xpY2UoWWUsZGkpLnRyaW0oKTticmVhaztjYXNlIjwvUGFn''@;'; + put 'put ''ZT4iOk1yPSt4ZS5zbGljZShZZSxkaSkudHJpbSgpO2JyZWFrO2Nhc2UiPC9DaGVja2VkPiI6YWk9K3hlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L3RleHRib3g+Ijp6dD14ZS5zbGljZShZZSxkaSkudHJpbSgpO2JyZWFrO2Nhc2UiPE1vdmVXaXRoQ2VsbHMvPiI6Y2FzZSI8''@;'; + put 'put ''TW92ZVdpdGhDZWxscz4iOkdyPSEwO2JyZWFrO2Nhc2UiPFNpemVXaXRoQ2VsbHMvPiI6Y2FzZSI8U2l6ZVdpdGhDZWxscz4iOnpyPSEwfXJldHVybiIifSksRmUpe2Nhc2UiTm90ZSI6dmFyIHFyPWFjLnNoZWV0X2dldF9jZWxsKHJlLFl0Pj0wJiZubj49MD9ZMCh7cjpZdCxjOm5ufSk6WFt3''@;'; + put 'put ''ZV0ucmVmKTtxci5jJiYocXIuYy5oaWRkZW49WmUsamUmJihxci5jLnJhd2FuY2hvcj1qZSxrRShqZSxxci5jKSxyQihxci5jWyIhcG9zIl0sMiohIUdyKyEhenIscmUpKSxNdC5jb2xvcjEmJihxci5jLmZpbGw9TXQpLHh0LmNvbG9yJiYocXIuYy5zaGFkb3c9eHQpLFJ0LmNvbG9yJiYocXIu''@;'; + put 'put ''Yy5zdHJva2U9UnQpKSwrK3dlO2JyZWFrO2Nhc2UiQnV0dG9uIjpjYXNlIkdCb3giOmNhc2UiRHJvcCI6Y2FzZSJMYWJlbCI6Y2FzZSJDaGVja2JveCI6Y2FzZSJTY3JvbGwiOmNhc2UiTGlzdCI6Y2FzZSJSYWRpbyI6Y2FzZSJTcGluIjpjYXNlIkVkaXQiOnJlWyIhY29udHJvbHMiXXx8KHJl''@;'; + put 'put ''WyIhY29udHJvbHMiXT1bXSk7dmFyIG9pPXsiIXR5cGUiOkZlfTtqZSYma0UoamUsb2kpLENuJiYob2kubWFjcm89Q24ucmVwbGFjZSgiWzBdISIsIiIpKSxEdCYmKG9pLmxpbms9RHQpLCJTY3JvbGwiPT1GZXx8IlNwaW4iPT1GZT8obnVsbD09UG4mJihQbj0wKSxudWxsPT1UbiYmKFRuPTAp''@;'; + put 'put ''LG51bGw9PU9uJiYoT249M2U0KSxudWxsPT1XbiYmKFduPTEpLCJTY3JvbGwiPT1GZSYmbnVsbD09TXImJihNcj0xMCkpOiJSYWRpbyI9PUZlfHwiQ2hlY2tib3giPT1GZT8obnVsbD09YWkmJihhaT0wKSxQbj1haSk6KCJMaXN0Ij09RmV8fCJEcm9wIj09RmUpJiYobnVsbCE9eXImJihvaS5y''@;'; + put 'put ''ZWY9eXIpLG51bGw9PWFyJiYoYXI9IlNpbmdsZSIpLCJMaXN0Ij09RmUmJihvaS5zZWw9YXIpKSxudWxsIT1QbiYmKG9pLnZhbD1QbiksbnVsbCE9VG4mJihvaS5taW49VG4pLG51bGwhPU9uJiYob2kubWF4PU9uKSxudWxsIT1XbiYmKG9pLnN0ZXA9V24pLG51bGwhPU1yJiYob2kucGFnZT1N''@;'; + put 'put ''ciksenQmJihvaS50PXp0LnJlcGxhY2UoL1xzKjxbXHNcU10qPz5ccyovZywiIikpLHJlWyIhY29udHJvbHMiXS5wdXNoKG9pKX19KX0oVzAoTXQpLEgsamV8fFtdKSxIWyIhTERQIl09WWUsSFsiIWN0cmxpZCJdJiZIWyIhY3RybGlkIl0uZm9yRWFjaChmdW5jdGlvbih4dCl7aWYoeHQucmVs''@;'; + put 'put ''JiZ4dC5yZWwuVGFyZ2V0KXt2YXIgUnQ9dW4oeHQucmVsLlRhcmdldCx3ZSk7eHQucGF0aD1SdCxkZWxldGUgeHQucmVsfX0pfX0obm4sMCxILHJlLDAsMCwwLENuKSxubn1jYXRjaChEdCl7aWYoWWUuV1RGKXRocm93IER0fX1mdW5jdGlvbiBoMShIKXtyZXR1cm4iLyI9PUguY2hhckF0KDAp''@;'; + put 'put ''P0guc2xpY2UoMSk6SH1mdW5jdGlvbiBLbShILHJlKXtpZihENT1bXSxNZihyZT1yZXx8e30pLEtuKEgsIk1FVEEtSU5GL21hbmlmZXN0LnhtbCIpfHxLbihILCJvYmplY3RkYXRhLnhtbCIpKXJldHVybiBmdW5jdGlvbiByQyhILHJlKXtyZT1yZXx8e30sS24oSCwiTUVUQS1JTkYvbWFuaWZl''@;'; + put 'put ''c3QueG1sIikmJmZ1bmN0aW9uIFBpKEgscmUpe2Zvcih2YXIgd2UseGUsWD1DNShIKTt3ZT1OaC5leGVjKFgpOylzd2l0Y2god2VbM10pe2Nhc2UibWFuaWZlc3QiOmJyZWFrO2Nhc2UiZmlsZS1lbnRyeSI6aWYoIi8iPT0oeGU9ZW4od2VbMF0sITEpKS5wYXRoJiYiYXBwbGljYXRpb24vdm5k''@;'; + put 'put ''Lm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldCIhPT14ZS50eXBlKXRocm93IG5ldyBFcnJvcigiVGhpcyBPcGVuRG9jdW1lbnQgaXMgbm90IGEgc3ByZWFkc2hlZXQiKTticmVhaztjYXNlImVuY3J5cHRpb24tZGF0YSI6Y2FzZSJhbGdvcml0aG0iOmNhc2Uic3RhcnQta2V5LWdlbmVy''@;'; + put 'put ''YXRpb24iOmNhc2Uia2V5LWRlcml2YXRpb24iOnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgT0RTIEVuY3J5cHRpb24iKTtkZWZhdWx0OmlmKHJlJiZyZS5XVEYpdGhyb3cgd2V9fShzbihILCJNRVRBLUlORi9tYW5pZmVzdC54bWwiKSxyZSk7dmFyIFg9VW4oSCwiY29udGVudC54bWwi''@;'; + put 'put ''KTtpZighWCl0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgY29udGVudC54bWwgaW4gT0RTIC8gVU9GIGZpbGUiKTt2YXIgd2U9bkMoVzAoWCkscmUpO3JldHVybiBLbihILCJtZXRhLnhtbCIpJiYod2UuUHJvcHM9bHMoc24oSCwibWV0YS54bWwiKSkpLHdlfShILHJlKTtpZihLbihILCJJbmRl''@;'; + put 'put ''eC9Eb2N1bWVudC5pd2EiKSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIE5VTUJFUlMgZmlsZSIpO3ZhciBGZSxaZSxYPWZ1bmN0aW9uIHRuKEgpe2Zvcih2YXIgcmU9SC5GdWxsUGF0aHN8fG9uKEguZmlsZXMpLFg9W10sd2U9MDt3ZTxyZS5sZW5ndGg7Kyt3ZSkiLyIhPXJlW3dlXS5z''@;'; + put 'put ''bGljZSgtMSkmJlgucHVzaChyZVt3ZV0pO3JldHVybiBYLnNvcnQoKX0oSCksd2U9ZnVuY3Rpb24gbmIoSCl7dmFyIHJlPXt3b3JrYm9va3M6W10sc2hlZXRzOltdLGNoYXJ0czpbXSxkaWFsb2dzOltdLG1hY3JvczpbXSxyZWxzOltdLHN0cnM6W10sY29tbWVudHM6W10sbGlua3M6W10sY29y''@;'; + put 'put ''ZXByb3BzOltdLGV4dHByb3BzOltdLGN1c3Rwcm9wczpbXSx0aGVtZXM6W10sc3R5bGVzOltdLGNhbGNjaGFpbnM6W10sdmJhOltdLGRyYXdpbmdzOltdLHBpdm90czpbXSxwaXZvdGNhY2hlczpbXSxwaXZvdHJlY29yZHM6W10sZGF0YW1vZGVsczpbXSxjaGFydG9ianM6W10sY2hhcnRzdHls''@;'; + put 'put ''ZXM6W10sY2hhcnRjb2xvcnM6W10sY2hhcnRleHM6W10sdGFibGVzOltdLGNvbm5zOltdLGN0cmxwcm9wczpbXSxjdXN0b214bWxwcm9wczpbXSxUT0RPOltdLHhtbG5zOiIifTtpZighSHx8IUgubWF0Y2gpcmV0dXJuIHJlO3ZhciBYPXt9O2lmKChILm1hdGNoKEd0KXx8W10pLmZvckVhY2go''@;'; + put 'put ''ZnVuY3Rpb24od2Upe3ZhciB4ZT1lbih3ZSk7c3dpdGNoKHhlWzBdLnJlcGxhY2Uoa24sIjwiKSl7Y2FzZSI8P3htbCI6YnJlYWs7Y2FzZSI8VHlwZXMiOnJlLnhtbG5zPXhlWyJ4bWxucyIrKHhlWzBdLm1hdGNoKC88KFx3Kyk6Lyl8fFsiIiwiIl0pWzFdXTticmVhaztjYXNlIjxEZWZhdWx0''@;'; + put 'put ''IjpYW3hlLkV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpXT14ZS5Db250ZW50VHlwZTticmVhaztjYXNlIjxPdmVycmlkZSI6dm9pZCAwIT09cmVbbWRbeGUuQ29udGVudFR5cGVdXSYmcmVbbWRbeGUuQ29udGVudFR5cGVdXS5wdXNoKHhlLlBhcnROYW1lKX19KSxyZS54bWxucyE9PVgwLkNUKXRo''@;'; + put 'put ''cm93IG5ldyBFcnJvcigiVW5rbm93biBOYW1lc3BhY2U6ICIrcmUueG1sbnMpO3JldHVybiByZS5jYWxjY2hhaW49cmUuY2FsY2NoYWlucy5sZW5ndGg+MD9yZS5jYWxjY2hhaW5zWzBdOiIiLHJlLnNzdD1yZS5zdHJzLmxlbmd0aD4wP3JlLnN0cnNbMF06IiIscmUuc3R5bGU9cmUuc3R5bGVz''@;'; + put 'put ''Lmxlbmd0aD4wP3JlLnN0eWxlc1swXToiIixyZS5jb25uPXJlLmNvbm5zLmxlbmd0aD4wP3JlLmNvbm5zWzBdOiIiLHJlLmRlZmF1bHRzPVgsZGVsZXRlIHJlLmNhbGNjaGFpbnMscmV9KFVuKEgsIltDb250ZW50X1R5cGVzXS54bWwiKSkseGU9ITE7aWYoMD09PXdlLndvcmtib29rcy5sZW5n''@;'; + put 'put ''dGgmJnNuKEgsWmU9InhsL3dvcmtib29rLnhtbCIsITApJiZ3ZS53b3JrYm9va3MucHVzaChaZSksMD09PXdlLndvcmtib29rcy5sZW5ndGgpe2lmKCFzbihILFplPSJ4bC93b3JrYm9vay5iaW4iLCEwKSl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIHdvcmtib29rIik7d2Uud29y''@;'; + put 'put ''a2Jvb2tzLnB1c2goWmUpLHhlPSEwfSJiaW4iPT13ZS53b3JrYm9va3NbMF0uc2xpY2UoLTMpJiYoeGU9ITApO3ZhciBqZT17fSxZZT17fTtpZighcmUuYm9va1NoZWV0cyYmIXJlLmJvb2tQcm9wcyl7aWYoTGQ9W10sd2Uuc3N0KXRyeXtMZD1mdW5jdGlvbiBwUChILHJlLFgpe3JldHVybiIu''@;'; + put 'put ''YmluIj09PXJlLnNsaWNlKC00KT9mdW5jdGlvbiB4aChILHJlKXt2YXIgWD1bXSx3ZT0hMTtyZXR1cm4gSDEoSCxmdW5jdGlvbihGZSxaZSxqZSl7c3dpdGNoKGplKXtjYXNlIDE1OTpYLkNvdW50PUZlWzBdLFguVW5pcXVlPUZlWzFdO2JyZWFrO2Nhc2UgMTk6WC5wdXNoKEZlKTticmVhaztj''@;'; + put 'put ''YXNlIDE2MDpyZXR1cm4hMDtjYXNlIDM1OndlPSEwO2JyZWFrO2Nhc2UgMzY6d2U9ITE7YnJlYWs7ZGVmYXVsdDppZihaZS5pbmRleE9mKCJCZWdpbiIpPjB8fFplLmluZGV4T2YoIkVuZCIpLCF3ZXx8cmUuV1RGKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgIitqZSsiICIr''@;'; + put 'put ''WmUpfX0pLFh9KEgsWCk6ZnVuY3Rpb24gV28oSCxyZSl7dmFyIFg9W10sd2U9IiI7aWYoIUgpcmV0dXJuIFg7dmFyIHhlPUgubWF0Y2goa2EpO2lmKHhlKXt3ZT14ZVsyXS5yZXBsYWNlKHkzLCIiKS5zcGxpdChRZik7Zm9yKHZhciBGZT0wO0ZlIT13ZS5sZW5ndGg7KytGZSl7dmFyIFplPSR1''@;'; + put 'put ''KHdlW0ZlXS50cmltKCkscmUpO251bGwhPVplJiYoWFtYLmxlbmd0aF09WmUpfXhlPWVuKHhlWzFdKSxYLkNvdW50PXhlLmNvdW50LFguVW5pcXVlPXhlLnVuaXF1ZUNvdW50fXJldHVybiBYfShILFgpfShzbihILGgxKHdlLnNzdCkpLHdlLnNzdCxyZSl9Y2F0Y2goaGkpe2lmKHJlLldURil0''@;'; + put 'put ''aHJvdyBoaX1yZS5jZWxsU3R5bGVzJiZ3ZS50aGVtZXMubGVuZ3RoJiYoamU9ZnVuY3Rpb24gangoSCxyZSxYKXtyZXR1cm4gRnYoSCxYKX0oVW4oSCx3ZS50aGVtZXNbMF0ucmVwbGFjZSgvXlwvLywiIiksITApfHwiIiwwLHJlKSksd2Uuc3R5bGUmJihZZT1mdW5jdGlvbiBkUChILHJlLFgs''@;'; + put 'put ''d2Upe3JldHVybiIuYmluIj09PXJlLnNsaWNlKC00KT9mdW5jdGlvbiBtRShILHJlLFgpe3ZhciB3ZT17TnVtYmVyRm10OltdfTtmb3IodmFyIHhlIGluIEYuX3RhYmxlKXdlLk51bWJlckZtdFt4ZV09Ri5fdGFibGVbeGVdO3dlLkNlbGxYZj1bXSx3ZS5Gb250cz1bXSx3ZS5GaWxscz1bXSx3''@;'; + put 'put ''ZS5Cb3JkZXJzPVtdO3ZhciBGZT1bXSxaZT0hMTtyZXR1cm4gSDEoSCxmdW5jdGlvbihZZSxNdCx4dCl7c3dpdGNoKHh0KXtjYXNlIDQ0OndlLk51bWJlckZtdFtZZVswXV09WWVbMV0sRi5sb2FkKFllWzFdLFllWzBdKTticmVhaztjYXNlIDQzOndtKFllLmNvbG9yLHJlKSx3ZS5Gb250cy5w''@;'; + put 'put ''dXNoKFllKTticmVhaztjYXNlIDEwMjU6Y2FzZSA0ODpjYXNlIDUwNzpjYXNlIDU3MjpjYXNlIDQ3NTpjYXNlIDExNzE6Y2FzZSAyMTAyOmNhc2UgMTEzMDpjYXNlIDUxMjpjYXNlIDIwOTU6Y2FzZSAzMDcyOmJyZWFrO2Nhc2UgNDU6WWUuZmdDb2xvciYmd20oWWUuZmdDb2xvcixyZSksWWUu''@;'; + put 'put ''YmdDb2xvciYmd20oWWUuYmdDb2xvcixyZSksd2UuRmlsbHMucHVzaChZZSk7YnJlYWs7Y2FzZSA0NjpbInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImRpYWciXS5mb3JFYWNoKGZ1bmN0aW9uKFJ0KXtZZVtSdF0mJlllW1J0XS5jb2xvciYmd20oWWVbUnRdLmNvbG9yLHJlKX0pLHdl''@;'; + put 'put ''LkJvcmRlcnMucHVzaChZZSk7YnJlYWs7Y2FzZSA0NzoiQnJ0QmVnaW5DZWxsWEZzIj09RmVbRmUubGVuZ3RoLTFdJiZ3ZS5DZWxsWGYucHVzaChZZSk7YnJlYWs7Y2FzZSAzNTpaZT0hMDticmVhaztjYXNlIDM2OlplPSExO2JyZWFrO2Nhc2UgMzc6RmUucHVzaChNdCksWmU9ITA7YnJlYWs7''@;'; + put 'put ''Y2FzZSAzODpGZS5wb3AoKSxaZT0hMTticmVhaztkZWZhdWx0OmlmKChNdHx8IiIpLmluZGV4T2YoIkJlZ2luIik+MClGZS5wdXNoKE10KTtlbHNlIGlmKChNdHx8IiIpLmluZGV4T2YoIkVuZCIpPjApRmUucG9wKCk7ZWxzZSBpZighWmV8fFguV1RGJiYiQnJ0QUNCZWdpbiIhPUZlW0ZlLmxl''@;'; + put 'put ''bmd0aC0xXSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIreHQrIiAiK010KX19KSwod2UuRm9udHN8fFtdKVswXSYmUzMod2UuRm9udHNbMF0pLHdlfShILFgsd2UpOlJ2KEgsWCx3ZSl9KHNuKEgsaDEod2Uuc3R5bGUpKSx3ZS5zdHlsZSxqZSxyZSkpfXZhciBNdD13ZS5s''@;'; + put 'put ''aW5rcy5tYXAoZnVuY3Rpb24oaGkpe3RyeXt2YXIgTnI9UHQoVW4oSCxJdChoMShoaSkpKSxoaSk7cmV0dXJuIGZ1bmN0aW9uIFVfKEgscmUsWCx3ZSl7cmV0dXJuIi5iaW4iPT09WC5zbGljZSgtNCk/ZnVuY3Rpb24gd2YoSCxyZSxYLHdlKXtpZighSClyZXR1cm4gSDt2YXIgeGU9d2V8fHt9''@;'; + put 'put ''LEZlPSExO0gxKEgsZnVuY3Rpb24oWWUsTXQseHQpe3N3aXRjaCh4dCl7Y2FzZSAzNTk6Y2FzZSAzNjM6Y2FzZSAzNjQ6Y2FzZSAzNjY6Y2FzZSAzNjc6Y2FzZSAzNjg6Y2FzZSAzNjk6Y2FzZSAzNzA6Y2FzZSAzNzE6Y2FzZSA0NzI6Y2FzZSA1Nzc6Y2FzZSA1Nzg6Y2FzZSA1Nzk6Y2FzZSA1''@;'; + put 'put ''ODA6Y2FzZSA1ODE6Y2FzZSA1ODI6Y2FzZSA1ODM6Y2FzZSA1ODQ6Y2FzZSA1ODU6Y2FzZSA1ODY6Y2FzZSA1ODc6YnJlYWs7Y2FzZSAzNTpGZT0hMDticmVhaztjYXNlIDM2OkZlPSExO2JyZWFrO2RlZmF1bHQ6aWYoISgoTXR8fCIiKS5pbmRleE9mKCJCZWdpbiIpPjApJiYhKChNdHx8IiIp''@;'; + put 'put ''LmluZGV4T2YoIkVuZCIpPjApJiYoIUZlfHx4ZS5XVEYpKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgIit4dC50b1N0cmluZygxNikrIiAiK010KX19LHhlKX0oSCwwLDAsd2UpOmZ1bmN0aW9uIEg0KEgscmUsWCx3ZSl7dmFyIHhlPXdlfHx7fSxGZT17U2hlZXROYW1lczpb''@;'; + put 'put ''XSxTaGVldHM6e319LGplPSExLFllPXt9LE10PS0xLHh0PS0xLFJ0PXtzOntyOjAsYzowfSxlOntyOi0xLGM6LTF9fSxZdD17fSxubj0wO3JldHVybihIfHwiIikucmVwbGFjZShHdCxmdW5jdGlvbihDbixEdCl7dmFyIHp0PWVuKENuKTtzd2l0Y2goSW4oenRbMF0pKXtjYXNlIjw/eG1sIjpj''@;'; + put 'put ''YXNlIjxleHRlcm5hbExpbmsiOmNhc2UiPC9leHRlcm5hbExpbms+IjpjYXNlIjwvZXh0ZXJuYWxCb29rPiI6Y2FzZSI8c2hlZXROYW1lcyI6Y2FzZSI8c2hlZXROYW1lcz4iOmNhc2UiPC9zaGVldE5hbWVzPiI6Y2FzZSI8c2hlZXREYXRhU2V0PiI6Y2FzZSI8c2hlZXREYXRhU2V0Lz4iOmNh''@;'; + put 'put ''c2UiPC9zaGVldERhdGFTZXQ+IjpjYXNlIjwvcm93PiI6YnJlYWs7Y2FzZSI8ZXh0ZXJuYWxCb29rIjpjYXNlIjxleHRlcm5hbEJvb2s+IjpGZS5UYXJnZXQ9cmVbIiFpZCJdW3p0LmlkXS5UYXJnZXQsRmUuTWlzc2luZz1yZVsiIWlkIl1benQuaWRdLlR5cGU9PXB0LlhNSVNTO2JyZWFrO2Nh''@;'; + put 'put ''c2UiPHNoZWV0TmFtZSI6RmUuU2hlZXROYW1lcy5wdXNoKGdyKFcwKHp0LnZhbCkpKTticmVhaztjYXNlIjxzaGVldERhdGEiOlllPXt9LEZlLlNoZWV0c1tGZS5TaGVldE5hbWVzW3p0LnNoZWV0SWRdXT1EaSh6dC5yZWZyZXNoRXJyb3J8fCIwIik/bnVsbDpZZTticmVhaztjYXNlIjwvc2hl''@;'; + put 'put ''ZXREYXRhPiI6UnQuZS5jPj0wJiYoWWVbIiFyZWYiXT1mYShSdCkpO2JyZWFrO2Nhc2UiPHJvdyI6Y2FzZSI8cm93PiI6enQucj9NdD1wYXJzZUludCh6dC5yLDEwKS0xOk10KysseHQ9LTE7YnJlYWs7Y2FzZSI8Y2VsbCI6Y2FzZSI8Y2VsbD4iOnp0LnI/eHQ9dWwoenQucikuYzorK3h0LFl0''@;'; + put 'put ''LnQ9enQudHx8Im4iLCJzdHIiPT1ZdC50JiYoWXQudD0icyIpO2JyZWFrO2Nhc2UiPC9jZWxsPiI6UnQuZS5yPE10JiYoUnQuZS5yPU10KSxSdC5lLmM8eHQmJihSdC5lLmM9eHQpLFllW1kwKHtyOk10LGM6eHR9KV09WXQsWXQ9e307YnJlYWs7Y2FzZSI8diI6Y2FzZSI8dj4iOm5uPUNuLmxl''@;'; + put 'put ''bmd0aCtEdDticmVhaztjYXNlIjwvdj4iOnZhciBQbj1ncihILnNsaWNlKG5uLER0KSk7WXQudj0ibiI9PVl0LnQ/cGFyc2VGbG9hdChQbik6UG47YnJlYWs7Y2FzZSI8di8+IjpZdC52PSIiO2JyZWFrO2Nhc2UiPGRlZmluZWROYW1lcz4iOmplPSEwO2JyZWFrO2Nhc2UiPC9kZWZpbmVkTmFt''@;'; + put 'put ''ZXM+IjpqZT0hMTticmVhaztkZWZhdWx0OmlmKCFqZSYmeGUuV1RGKXRocm93InVucmVjb2duaXplZCAiK3p0WzBdKyIgaW4gZXh0ZXJuYWwgbGluayJ9fSksRmV9KEgscmUsMCx3ZSl9KHNuKEgsaDEoaGkpKSxOcixoaSxyZSl9Y2F0Y2goa2kpe319KSx4dD1mdW5jdGlvbiBOeChILHJlLFgp''@;'; + put 'put ''e3JldHVybiIuYmluIj09PXJlLnNsaWNlKC00KT9mdW5jdGlvbiBHaShILHJlKXt2YXIgWD17QXBwVmVyc2lvbjp7fSxXQlByb3BzOnt9LFdCVmlldzpbXSxTaGVldHM6W10sQ2FsY1ByOnt9LHhtbG5zOiIifSx3ZT1bXSx4ZT0hMTtyZXx8KHJlPXt9KSxyZS5iaWZmPTEyO3ZhciBGZT1bXSxa''@;'; + put 'put ''ZT1bW11dO3JldHVybiBaZS5TaGVldE5hbWVzPVtdLFplLlhUST1bXSx4NVsxNl09e246IkJydEZSVEFyY2hJRCQiLGY6R219LEgxKEgsZnVuY3Rpb24oWWUsTXQseHQpe3N3aXRjaCh4dCl7Y2FzZSAxNTY6WmUuU2hlZXROYW1lcy5wdXNoKFllLm5hbWUpLFguU2hlZXRzLnB1c2goWWUpO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgMTUzOlguV0JQcm9wcz1ZZTticmVhaztjYXNlIDM5Om51bGwhPVllLlNoZWV0JiYocmUuU0lEPVllLlNoZWV0KSxZZS5SZWY9VzEoWWUuUHRnLG51bGwsbnVsbCxaZSxyZSksZGVsZXRlIHJlLlNJRCxkZWxldGUgWWUuUHRnLEZlLnB1c2goWWUpO2JyZWFrO2Nhc2UgMTAzNjpj''@;'; + put 'put ''YXNlIDM2MTpjYXNlIDIwNzE6Y2FzZSAxNTg6Y2FzZSAxNDM6Y2FzZSA2NjQ6Y2FzZSAzNTM6Y2FzZSAzMDcyOmNhc2UgMzA3MzpjYXNlIDUzNDpjYXNlIDY3NzpjYXNlIDE1NzpjYXNlIDYxMDpjYXNlIDIwNTA6Y2FzZSAxNTU6Y2FzZSA1NDg6Y2FzZSA2NzY6Y2FzZSAxMjg6Y2FzZSA2NjU6''@;'; + put 'put ''Y2FzZSAyMTI4OmNhc2UgMjEyNTpjYXNlIDU0OTpjYXNlIDIwNTM6Y2FzZSA1OTY6Y2FzZSAyMDc2OmNhc2UgMjA3NTpjYXNlIDIwODI6Y2FzZSAzOTc6Y2FzZSAxNTQ6Y2FzZSAxMTE3OmNhc2UgNTUzOmNhc2UgMjA5MTpjYXNlIDE2OmJyZWFrO2Nhc2UgMzU3OmNhc2UgMzU4OmNhc2UgMzU1''@;'; + put 'put ''OmNhc2UgNjY3OlplWzBdLmxlbmd0aD9aZS5wdXNoKFt4dCxZZV0pOlplWzBdPVt4dCxZZV0sWmVbWmUubGVuZ3RoLTFdLlhUST1bXTticmVhaztjYXNlIDM2MjowPT09WmUubGVuZ3RoJiYoWmVbMF09W10sWmVbMF0uWFRJPVtdKSxaZVtaZS5sZW5ndGgtMV0uWFRJPVplW1plLmxlbmd0aC0x''@;'; + put 'put ''XS5YVEkuY29uY2F0KFllKSxaZS5YVEk9WmUuWFRJLmNvbmNhdChZZSk7YnJlYWs7Y2FzZSAzNTpjYXNlIDM3OndlLnB1c2goTXQpLHhlPSEwO2JyZWFrO2Nhc2UgMzY6Y2FzZSAzODp3ZS5wb3AoKSx4ZT0hMTticmVhaztkZWZhdWx0OmlmKCEoKE10fHwiIikuaW5kZXhPZigiQmVnaW4iKT4w''@;'; + put 'put ''KSYmISgoTXR8fCIiKS5pbmRleE9mKCJFbmQiKT4wKSYmKCF4ZXx8cmUuV1RGJiYiQnJ0QUNCZWdpbiIhPXdlW3dlLmxlbmd0aC0xXSYmIkJydEZSVEJlZ2luIiE9d2Vbd2UubGVuZ3RoLTFdKSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIreHQrIiAiK010KX19LHJlKSxx''@;'; + put 'put ''ZihYKSxYLk5hbWVzPUZlLFguc3VwYm9va3M9WmUsWH0oSCxYKTpmdW5jdGlvbiBqXyhILHJlKXtpZighSCl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIGZpbGUiKTt2YXIgWD17QXBwVmVyc2lvbjp7fSxXQlByb3BzOnt9LFdCVmlldzpbXSxTaGVldHM6W10sQ2FsY1ByOnt9LE5h''@;'; + put 'put ''bWVzOltdLEV4dGVybjpbXSx4bWxuczoiIn0sd2U9ITEseGU9InhtbG5zIixGZT17fSxaZT0wO2lmKEgucmVwbGFjZShHdCxmdW5jdGlvbihZZSxNdCl7dmFyIHh0PWVuKFllKTtzd2l0Y2goSW4oeHRbMF0pKXtjYXNlIjw/eG1sIjpjYXNlIjwvd29ya2Jvb2s+IjpjYXNlIjxmaWxlVmVyc2lv''@;'; + put 'put ''bi8+IjpjYXNlIjwvZmlsZVZlcnNpb24+IjpjYXNlIjxmaWxlU2hhcmluZy8+IjpjYXNlIjwvd29ya2Jvb2tQcj4iOmNhc2UiPHdvcmtib29rUHJvdGVjdGlvbi8+IjpjYXNlIjxib29rVmlld3MiOmNhc2UiPGJvb2tWaWV3cz4iOmNhc2UiPC9ib29rVmlld3M+IjpjYXNlIjwvd29ya2Jvb2tW''@;'; + put 'put ''aWV3PiI6Y2FzZSI8c2hlZXRzIjpjYXNlIjxzaGVldHM+IjpjYXNlIjwvc2hlZXRzPiI6Y2FzZSI8L3NoZWV0PiI6Y2FzZSI8ZnVuY3Rpb25Hcm91cHMiOmNhc2UiPGZ1bmN0aW9uR3JvdXBzLz4iOmNhc2UiPGZ1bmN0aW9uR3JvdXAiOmNhc2UiPGV4dGVybmFsUmVmZXJlbmNlcyI6Y2FzZSI8''@;'; + put 'put ''L2V4dGVybmFsUmVmZXJlbmNlcz4iOmNhc2UiPGV4dGVybmFsUmVmZXJlbmNlcz4iOmNhc2UiPGRlZmluZWROYW1lcy8+IjpjYXNlIjxkZWZpbmVkTmFtZS8+IjpjYXNlIjwvY2FsY1ByPiI6Y2FzZSI8b2xlU2l6ZSI6Y2FzZSI8Y3VzdG9tV29ya2Jvb2tWaWV3cz4iOmNhc2UiPC9jdXN0b21X''@;'; + put 'put ''b3JrYm9va1ZpZXdzPiI6Y2FzZSI8Y3VzdG9tV29ya2Jvb2tWaWV3cyI6Y2FzZSI8Y3VzdG9tV29ya2Jvb2tWaWV3IjpjYXNlIjwvY3VzdG9tV29ya2Jvb2tWaWV3PiI6Y2FzZSI8cGl2b3RDYWNoZXM+IjpjYXNlIjwvcGl2b3RDYWNoZXM+IjpjYXNlIjxwaXZvdENhY2hlcyI6Y2FzZSI8cGl2''@;'; + put 'put ''b3RDYWNoZSI6Y2FzZSI8c21hcnRUYWdQciI6Y2FzZSI8c21hcnRUYWdQci8+IjpjYXNlIjxzbWFydFRhZ1R5cGVzIjpjYXNlIjxzbWFydFRhZ1R5cGVzPiI6Y2FzZSI8L3NtYXJ0VGFnVHlwZXM+IjpjYXNlIjxzbWFydFRhZ1R5cGUiOmNhc2UiPHdlYlB1Ymxpc2hpbmciOmNhc2UiPHdlYlB1''@;'; + put 'put ''Ymxpc2hpbmcvPiI6Y2FzZSI8ZmlsZVJlY292ZXJ5UHIiOmNhc2UiPGZpbGVSZWNvdmVyeVByLz4iOmNhc2UiPHdlYlB1Ymxpc2hPYmplY3RzPiI6Y2FzZSI8d2ViUHVibGlzaE9iamVjdHMiOmNhc2UiPC93ZWJQdWJsaXNoT2JqZWN0cz4iOmNhc2UiPHdlYlB1Ymxpc2hPYmplY3QiOmNhc2Ui''@;'; + put 'put ''PGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmNhc2UiPGV4dExzdC8+IjpjYXNlIjxBcmNoSUQiOmNhc2UiPHJldmlzaW9uUHRyIjpicmVhaztjYXNlIjx3b3JrYm9vayI6WWUubWF0Y2goUHgpJiYoeGU9InhtbG5zIitZZS5tYXRjaCgvPChcdyspOi8pWzFdKSxYLnht''@;'; + put 'put ''bG5zPXh0W3hlXTticmVhaztjYXNlIjxmaWxlVmVyc2lvbiI6ZGVsZXRlIHh0WzBdLFguQXBwVmVyc2lvbj14dDticmVhaztjYXNlIjxmaWxlU2hhcmluZyI6WC5Nb2RpZnk9e3VzZXI6eHQudXNlck5hbWUsd2FybjpEaSh4dC5yZWFkT25seVJlY29tbWVuZGVkfHwiZmFsc2UiKX0sKHh0LmFs''@;'; + put 'put ''Z29yaXRobU5hbWV8fHh0Lmhhc2hWYWx1ZXx8eHQuc2FsdFZhbHVlfHx4dC5zcGluQ291bnQpJiYoWC5Nb2RpZnkuZW5jcnlwdGlvbj17YWxnbzp4dC5hbGdvcml0aG1OYW1lLGhhc2g6eHQuaGFzaFZhbHVlLHNhbHQ6eHQuc2FsdFZhbHVlLHNwaW46K3h0LnNwaW5Db3VudHx8MWU1fSk7YnJl''@;'; + put 'put ''YWs7Y2FzZSI8d29ya2Jvb2tQciI6Y2FzZSI8d29ya2Jvb2tQci8+IjpGaS5mb3JFYWNoKGZ1bmN0aW9uKFl0KXtpZihudWxsIT14dFtZdFswXV0pc3dpdGNoKFl0WzJdKXtjYXNlImJvb2wiOlguV0JQcm9wc1tZdFswXV09RGkoeHRbWXRbMF1dKTticmVhaztjYXNlImludCI6WC5XQlByb3Bz''@;'; + put 'put ''W1l0WzBdXT1wYXJzZUludCh4dFtZdFswXV0sMTApO2JyZWFrO2RlZmF1bHQ6WC5XQlByb3BzW1l0WzBdXT14dFtZdFswXV19fSkseHQuY29kZU5hbWUmJihYLldCUHJvcHMuQ29kZU5hbWU9VzAoeHQuY29kZU5hbWUpKTticmVhaztjYXNlIjx3b3JrYm9va1Byb3RlY3Rpb24iOnZhciBSdD1Y''@;'; + put 'put ''LlByb3RlY3Rpb258fHt9O1J0LmxvY2tTdHJ1Y3R1cmU9RGkoeHQubG9ja1N0cnVjdHVyZXx8ImZhbHNlIiksUnQubG9ja1dpbmRvd3M9RGkoeHQubG9ja1dpbmRvd3N8fCJmYWxzZSIpLHh0Lndvcmtib29rQWxnb3JpdGhtTmFtZSYmKFJ0LmVuY3J5cHRpb249e2FsZ286eHQud29ya2Jvb2tB''@;'; + put 'put ''bGdvcml0aG1OYW1lLGhhc2g6eHQud29ya2Jvb2tIYXNoVmFsdWUsc2FsdDp4dC53b3JrYm9va1NhbHRWYWx1ZSxzcGluOit4dC53b3JrYm9va1NwaW5Db3VudHx8MWU1fSksWC5Qcm90ZWN0aW9uPVJ0O2JyZWFrO2Nhc2UiPHdvcmtib29rVmlldyI6Y2FzZSI8d29ya2Jvb2tWaWV3Lz4iOmRl''@;'; + put 'put ''bGV0ZSB4dFswXSxYLldCVmlldy5wdXNoKHh0KTticmVhaztjYXNlIjxzaGVldCI6c3dpdGNoKHh0LnN0YXRlKXtjYXNlImhpZGRlbiI6eHQuSGlkZGVuPTE7YnJlYWs7Y2FzZSJ2ZXJ5SGlkZGVuIjp4dC5IaWRkZW49MjticmVhaztkZWZhdWx0Onh0LkhpZGRlbj0wfWRlbGV0ZSB4dC5zdGF0''@;'; + put 'put ''ZSx4dC5uYW1lPWdyKFcwKHh0Lm5hbWUpKSxkZWxldGUgeHRbMF0sWC5TaGVldHMucHVzaCh4dCk7YnJlYWs7Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2UiOlguRXh0ZXJuLnB1c2goeHQuaWQpO2JyZWFrO2Nhc2UiPGRlZmluZWROYW1lcz4iOmNhc2UiPGRlZmluZWROYW1lcyI6Y2FzZSI8ZXh0''@;'; + put 'put ''IjpjYXNlIjxBbHRlcm5hdGVDb250ZW50IjpjYXNlIjxBbHRlcm5hdGVDb250ZW50PiI6d2U9ITA7YnJlYWs7Y2FzZSI8L2RlZmluZWROYW1lcz4iOmNhc2UiPC9leHQ+IjpjYXNlIjwvQWx0ZXJuYXRlQ29udGVudD4iOndlPSExO2JyZWFrO2Nhc2UiPGRlZmluZWROYW1lIjooRmU9e30pLk5h''@;'; + put 'put ''bWU9VzAoeHQubmFtZSkseHQuY29tbWVudCYmKEZlLkNvbW1lbnQ9eHQuY29tbWVudCkseHQubG9jYWxTaGVldElkJiYoRmUuU2hlZXQ9K3h0LmxvY2FsU2hlZXRJZCksRGkoeHQuaGlkZGVufHwiMCIpJiYoRmUuSGlkZGVuPSEwKSxaZT1NdCtZZS5sZW5ndGg7YnJlYWs7Y2FzZSI8L2RlZmlu''@;'; + put 'put ''ZWROYW1lPiI6RmUuUmVmPWdyKFcwKEguc2xpY2UoWmUsTXQpKSksWC5OYW1lcy5wdXNoKEZlKTticmVhaztjYXNlIjxjYWxjUHIiOmNhc2UiPGNhbGNQci8+IjpkZWxldGUgeHRbMF0sWC5DYWxjUHI9eHQ7YnJlYWs7ZGVmYXVsdDppZighd2UmJnJlLldURil0aHJvdyBuZXcgRXJyb3IoInVu''@;'; + put 'put ''cmVjb2duaXplZCAiK3h0WzBdKyIgaW4gd29ya2Jvb2siKX1yZXR1cm4gWWV9KSwtMT09PVgwLm1haW4uaW5kZXhPZihYLnhtbG5zKSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gTmFtZXNwYWNlOiAiK1gueG1sbnMpO3JldHVybiBxZihYKSxYfShILFgpfShzbihILGgxKHdlLndvcmtib29r''@;'; + put 'put ''c1swXSkpLHdlLndvcmtib29rc1swXSxyZSksUnQ9e30sWXQ9IiI7d2UuY29yZXByb3BzLmxlbmd0aCYmKChZdD1zbihILGgxKHdlLmNvcmVwcm9wc1swXSksITApKSYmKFJ0PWxzKFl0KSksMCE9PXdlLmV4dHByb3BzLmxlbmd0aCYmKFl0PXNuKEgsaDEod2UuZXh0cHJvcHNbMF0pLCEwKSkm''@;'; + put 'put ''JmZ1bmN0aW9uIHhNKEgscmUsWCl7dmFyIHdlPXt9O3JlfHwocmU9e30pLEg9VzAoSCksbzIuZm9yRWFjaChmdW5jdGlvbih4ZSl7dmFyIEZlPShILm1hdGNoKFFpKHhlWzBdKSl8fFtdKVsxXTtzd2l0Y2goeGVbMl0pe2Nhc2Uic3RyaW5nIjpGZSYmKHJlW3hlWzFdXT1ncihGZSkpO2JyZWFr''@;'; + put 'put ''O2Nhc2UiYm9vbCI6cmVbeGVbMV1dPSJ0cnVlIj09PUZlO2JyZWFrO2Nhc2UicmF3Ijp2YXIgWmU9SC5tYXRjaChuZXcgUmVnRXhwKCI8Iit4ZVswXSsiW14+XSo+KFtcXHNcXFNdKj8pPC8iK3hlWzBdKyI+IikpO1plJiZaZS5sZW5ndGg+MCYmKHdlW3hlWzFdXT1aZVsxXSl9fSksd2UuSGVh''@;'; + put 'put ''ZGluZ1BhaXJzJiZ3ZS5UaXRsZXNPZlBhcnRzJiZBcyh3ZS5IZWFkaW5nUGFpcnMsd2UuVGl0bGVzT2ZQYXJ0cyxyZSxYKX0oWXQsUnQscmUpKTt2YXIgbm49e307KCFyZS5ib29rU2hlZXRzfHxyZS5ib29rUHJvcHMpJiYwIT09d2UuY3VzdHByb3BzLmxlbmd0aCYmKFl0PVVuKEgsaDEod2Uu''@;'; + put 'put ''Y3VzdHByb3BzWzBdKSwhMCkpJiYobm49ZnVuY3Rpb24gcmIoSCxyZSl7dmFyIFg9e30sd2U9IiIseGU9SC5tYXRjaChndik7aWYoeGUpZm9yKHZhciBGZT0wO0ZlIT14ZS5sZW5ndGg7KytGZSl7dmFyIFplPXhlW0ZlXSxqZT1lbihaZSk7c3dpdGNoKGplWzBdKXtjYXNlIjw/eG1sIjpjYXNl''@;'; + put 'put ''IjxQcm9wZXJ0aWVzIjpicmVhaztjYXNlIjxwcm9wZXJ0eSI6d2U9Z3IoamUubmFtZSk7YnJlYWs7Y2FzZSI8L3Byb3BlcnR5PiI6d2U9bnVsbDticmVhaztkZWZhdWx0OmlmKDA9PT1aZS5pbmRleE9mKCI8dnQ6Iikpe3ZhciBZZT1aZS5zcGxpdCgiPiIpLE10PVllWzBdLnNsaWNlKDQpLHh0''@;'; + put 'put ''PVllWzFdO3N3aXRjaChNdCl7Y2FzZSJscHN0ciI6Y2FzZSJic3RyIjpjYXNlImxwd3N0ciI6Y2FzZSJjeSI6Y2FzZSJlcnJvciI6WFt3ZV09Z3IoeHQpO2JyZWFrO2Nhc2UiYm9vbCI6WFt3ZV09RGkoeHQpO2JyZWFrO2Nhc2UiaTEiOmNhc2UiaTIiOmNhc2UiaTQiOmNhc2UiaTgiOmNhc2Ui''@;'; + put 'put ''aW50IjpjYXNlInVpbnQiOlhbd2VdPXBhcnNlSW50KHh0LDEwKTticmVhaztjYXNlInI0IjpjYXNlInI4IjpjYXNlImRlY2ltYWwiOlhbd2VdPXBhcnNlRmxvYXQoeHQpO2JyZWFrO2Nhc2UiZmlsZXRpbWUiOmNhc2UiZGF0ZSI6WFt3ZV09ZG4oeHQpO2JyZWFrO2RlZmF1bHQ6aWYoIi8iPT1N''@;'; + put 'put ''dC5zbGljZSgtMSkpYnJlYWs7cmUuV1RGJiYidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2FybigiVW5leHBlY3RlZCIsWmUsTXQsWWUpfX1lbHNlIGlmKCI8LyIhPT1aZS5zbGljZSgwLDIpJiZyZS5XVEYpdGhyb3cgbmV3IEVycm9yKFplKX19cmV0dXJuIFh9KFl0LHJl''@;'; + put 'put ''KSk7dmFyIENuPXt9O2lmKChyZS5ib29rU2hlZXRzfHxyZS5ib29rUHJvcHMpJiYoeHQuU2hlZXRzP0ZlPXh0LlNoZWV0cy5tYXAoZnVuY3Rpb24oTnIpe3JldHVybiBOci5uYW1lfSk6UnQuV29ya3NoZWV0cyYmUnQuU2hlZXROYW1lcy5sZW5ndGg+MCYmKEZlPVJ0LlNoZWV0TmFtZXMpLHJl''@;'; + put 'put ''LmJvb2tQcm9wcyYmKENuLlByb3BzPVJ0LENuLkN1c3Rwcm9wcz1ubikscmUuYm9va1NoZWV0cyYmdm9pZCAwIT09RmUmJihDbi5TaGVldE5hbWVzPUZlKSxyZS5ib29rU2hlZXRzP0NuLlNoZWV0TmFtZXM6cmUuYm9va1Byb3BzKSlyZXR1cm4gQ247RmU9e307dmFyIER0PXt9O3JlLmJvb2tE''@;'; + put 'put ''ZXBzJiZ3ZS5jYWxjY2hhaW4mJihEdD1mdW5jdGlvbiBaeChILHJlLFgpe3JldHVybiIuYmluIj09PXJlLnNsaWNlKC00KT9mdW5jdGlvbiBCYihILHJlLFgpe3ZhciB3ZT1bXTtyZXR1cm4gSDEoSCxmdW5jdGlvbihaZSxqZSxZZSl7aWYoNjM9PT1ZZSl3ZS5wdXNoKFplKTtlbHNlIGlmKCEo''@;'; + put 'put ''KGplfHwiIikuaW5kZXhPZigiQmVnaW4iKT4wfHwoamV8fCIiKS5pbmRleE9mKCJFbmQiKT4wKSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIrWWUrIiAiK2plKX0pLHdlfShIKTpmdW5jdGlvbiBTRShIKXt2YXIgcmU9W107aWYoIUgpcmV0dXJuIHJlO3ZhciBYPTE7cmV0''@;'; + put 'put ''dXJuKEgubWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih3ZSl7dmFyIHhlPWVuKHdlKTtzd2l0Y2goeGVbMF0pe2Nhc2UiPD94bWwiOmNhc2UiPGNhbGNDaGFpbiI6Y2FzZSI8Y2FsY0NoYWluPiI6Y2FzZSI8L2NhbGNDaGFpbj4iOmJyZWFrO2Nhc2UiPGMiOmRlbGV0ZSB4ZVswXSx4''@;'; + put 'put ''ZS5pP1g9eGUuaTp4ZS5pPVgscmUucHVzaCh4ZSl9fSkscmV9KEgpfShzbihILGgxKHdlLmNhbGNjaGFpbikpLHdlLmNhbGNjaGFpbikpO3ZhciBUbixPbix6dD0wLFBuPXt9LFduPXh0LlNoZWV0cztSdC5Xb3Jrc2hlZXRzPVduLmxlbmd0aCxSdC5TaGVldE5hbWVzPVtdO2Zvcih2YXIgTXI9''@;'; + put 'put ''MDtNciE9V24ubGVuZ3RoOysrTXIpUnQuU2hlZXROYW1lc1tNcl09V25bTXJdLm5hbWU7dmFyIGFpPXhlPyJiaW4iOiJ4bWwiLHlyPXdlLndvcmtib29rc1swXS5sYXN0SW5kZXhPZigiLyIpLGFyPSh3ZS53b3JrYm9va3NbMF0uc2xpY2UoMCx5cisxKSsiX3JlbHMvIit3ZS53b3JrYm9va3Nb''@;'; + put 'put ''MF0uc2xpY2UoeXIrMSkrIi5yZWxzIikucmVwbGFjZSgvXlwvLywiIik7S24oSCxhcil8fChhcj0ieGwvX3JlbHMvd29ya2Jvb2suIithaSsiLnJlbHMiKTt2YXIgR3I9UHQoVW4oSCxhciwhMCksYXIpLHpyPUdyLHFyPVtdO0dyJiYoeHQmJnh0LkV4dGVybiYmeHQuRXh0ZXJuLmxlbmd0aCYm''@;'; + put 'put ''eHQuRXh0ZXJuLmZvckVhY2goZnVuY3Rpb24oaGksTnIpe3ZhciBOMD0oIi94bC8iK0dyWyIhaWQiXVtoaV0uVGFyZ2V0KS5yZXBsYWNlKC9bXC9dW1wvXS9nLCIvIiksdDA9d2UubGlua3MuaW5kZXhPZihOMCk7dDA+LTEmJihxcltOcl09TXRbdDBdKX0pLHh0JiZkZWxldGUgeHQuRXh0ZXJu''@;'; + put 'put ''KSxHciYmKEdyPWZ1bmN0aW9uIEhzKEgscmUpe2lmKCFIKXJldHVybiAwO3RyeXtIPXJlLm1hcChmdW5jdGlvbih3ZSl7cmV0dXJuIHdlLmlkfHwod2UuaWQ9d2Uuc3RyUmVsSUQpLFt3ZS5uYW1lLEhbIiFpZCJdW3dlLmlkXS5UYXJnZXQsU3MoSFsiIWlkIl1bd2UuaWRdLlR5cGUpXX0pfWNh''@;'; + put 'put ''dGNoKFgpe3JldHVybiBudWxsfXJldHVybiBIJiYwIT09SC5sZW5ndGg/SDpudWxsfShHcix4dC5TaGVldHMpKTt2YXIgb2k9S24oSCwieGwvd29ya3NoZWV0cy9zaGVldC54bWwiKT8xOjAsY3I9W10sZGk9W107ZTpmb3IoenQ9MDt6dCE9UnQuV29ya3NoZWV0czsrK3p0KXt2YXIgdjA9InNo''@;'; + put 'put ''ZWV0IjtpZihHciYmR3JbenRdPyhUbj0ieGwvIitHclt6dF1bMV0ucmVwbGFjZSgvW1wvXT94bFwvLywiIiksS24oSCxUbil8fChUbj1Hclt6dF1bMV0pLEtuKEgsVG4pfHwoVG49YXIucmVwbGFjZSgvX3JlbHNcLy4qJC8sIiIpK0dyW3p0XVsxXSksdjA9R3JbenRdWzJdKTpUbj0oVG49Inhs''@;'; + put 'put ''L3dvcmtzaGVldHMvc2hlZXQiKyh6dCsxLW9pKSsiLiIrYWkpLnJlcGxhY2UoL3NoZWV0MFwuLywic2hlZXQuIiksT249VG4ucmVwbGFjZSgvXiguKikoXC8pKFteXC9dKikkLywiJDEvX3JlbHMvJDMucmVscyIpLGNyLnB1c2goVG4pLHJlJiZudWxsIT1yZS5zaGVldHMpc3dpdGNoKHR5cGVv''@;'; + put 'put ''ZiByZS5zaGVldHMpe2Nhc2UibnVtYmVyIjppZih6dCE9cmUuc2hlZXRzKWNvbnRpbnVlIGU7YnJlYWs7Y2FzZSJzdHJpbmciOmlmKFJ0LlNoZWV0TmFtZXNbenRdLnRvTG93ZXJDYXNlKCkhPXJlLnNoZWV0cy50b0xvd2VyQ2FzZSgpKWNvbnRpbnVlIGU7YnJlYWs7ZGVmYXVsdDppZihBcnJh''@;'; + put 'put ''eS5pc0FycmF5JiZBcnJheS5pc0FycmF5KHJlLnNoZWV0cykpe2Zvcih2YXIgVWk9MCx0bz0wO3RvIT1yZS5zaGVldHMubGVuZ3RoOysrdG8pIm51bWJlciI9PXR5cGVvZiByZS5zaGVldHNbdG9dJiZyZS5zaGVldHNbdG9dPT16dCYmKFVpPTEpLCJzdHJpbmciPT10eXBlb2YgcmUuc2hlZXRz''@;'; + put 'put ''W3RvXSYmcmUuc2hlZXRzW3RvXS50b0xvd2VyQ2FzZSgpPT1SdC5TaGVldE5hbWVzW3p0XS50b0xvd2VyQ2FzZSgpJiYoVWk9MSk7aWYoIVVpKWNvbnRpbnVlIGV9fWlmKCFyZS5za2lwUGFyc2Upe3ZhciBBMD1YNChILFRuLE9uLFJ0LlNoZWV0TmFtZXNbenRdLHp0LFBuLEZlLHYwLHJlLHh0''@;'; + put 'put ''LGplLFllKTtBMCYmQTBbIiFMRFAiXSYmKGRpW3p0XT1BMFsiIUxEUCJdLGRlbGV0ZSBBMFsiIUxEUCJdKX19aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBwYXJzZV9zaGVldF9waXZvdClmb3IoenQ9MDt6dDxENS5sZW5ndGg7Kyt6dClwYXJzZV9zaGVldF9waXZvdC5hcHBseShudWxsLEQ1W3p0''@;'; + put 'put ''XSk7aWYoQ249e0RpcmVjdG9yeTp3ZSxXb3JrYm9vazp4dCxQcm9wczpSdCxDdXN0cHJvcHM6bm4sRGVwczpEdCxTaGVldHM6RmUsU2hlZXROYW1lczpSdC5TaGVldE5hbWVzLFN0cmluZ3M6TGQsU3R5bGVzOlllLFRoZW1lczpqZSxTU0Y6Ri5nZXRfdGFibGUoKX0sIXJlLnNraXBQYXJzZSl7''@;'; + put 'put ''aWYoZnVuY3Rpb24gT2IoSCl7IUh8fCFILldvcmtib29rfHwhSC5Xb3JrYm9vay5OYW1lc3x8SC5Xb3JrYm9vay5OYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKHJlKXtpZihyZS5OYW1lJiYiX3hsbm0uIj09cmUuTmFtZS5zbGljZSgwLDYpJiYoIl94bG5tLlByaW50X0FyZWEiPT1yZS5OYW1lfHwi''@;'; + put 'put ''X3hsbm0uUHJpbnRfVGl0bGVzIj09cmUuTmFtZSkpe3ZhciBYPUguU2hlZXRzW0guU2hlZXROYW1lc1tyZS5TaGVldF1dO2lmKFgpe1hbIiFwcmludCJdfHwoWFsiIXByaW50Il09e30pLFhbIiFwcmludCJdLnByb3BzfHwoWFsiIXByaW50Il0ucHJvcHM9e30pO3ZhciB3ZT1YWyIhcHJpbnQi''@;'; + put 'put ''XSx4ZT1yZS5SZWY7aWYoIl94bG5tLlByaW50X0FyZWEiPT1yZS5OYW1lKXt4ZS5pbmRleE9mKCIhIik+LTEmJih4ZT14ZS5zbGljZSh4ZS5pbmRleE9mKCIhIikrMSkpO3ZhciBGZT1Gbyh4ZT14ZS5yZXBsYWNlKC9bJF0vZywiIikpO3dlLmFyZWE9RmV9ZWxzZSJfeGxubS5QcmludF9UaXRs''@;'; + put 'put ''ZXMiPT1yZS5OYW1lJiYod2UudGl0bGVzPXtzOntyOi0xLGM6LTF9LGU6e3I6LTEsYzotMX19LHhlLnNwbGl0KCIsIikuZm9yRWFjaChmdW5jdGlvbihaZSl7dmFyIFllPXZzKFplLnNsaWNlKFplLmluZGV4T2YoIiEiKSsxKS5yZXBsYWNlKC9bJF0vZywiIikpO1llLnMuYz4tMSYmKHdlLnRp''@;'; + put 'put ''dGxlcy5zLmM9WWUucy5jKSxZZS5lLmM+LTEmJih3ZS50aXRsZXMuZS5jPVllLmUuYyksWWUucy5yPi0xJiYod2UudGl0bGVzLnMucj1ZZS5zLnIpLFllLmUucj4tMSYmKHdlLnRpdGxlcy5lLnI9WWUuZS5yKX0pKX19fSl9KENuKSxyZSYmcmUuYm9va0ZpbGVzJiYoQ24ua2V5cz1YLENuLmZp''@;'; + put 'put ''bGVzPUguZmlsZXMpLHJlJiZyZS5ib29rVkJBJiYod2UudmJhLmxlbmd0aD4wP0NuLnZiYXJhdz1zbihILGgxKHdlLnZiYVswXSksITApOndlLmRlZmF1bHRzJiYiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS52YmFQcm9qZWN0Ij09PXdlLmRlZmF1bHRzLmJpbiYmKENuLnZiYXJhdz1zbihI''@;'; + put 'put ''LCJ4bC92YmFQcm9qZWN0LmJpbiIsITApKSksenImJnpyWyIhaWQiXSl7Zm9yKHZhciB3aT1bXSxZcj0xO1lyPD0xMDI0OysrWXIpIXpyWyIhaWQiXVsicklkIitZcl18fCF6clsiIWlkIl1bInJJZCIrWXJdLlR5cGV8fC9jdXN0b21YbWwkLy50ZXN0KHpyWyIhaWQiXVsicklkIitZcl0uVHlw''@;'; + put 'put ''ZSkmJndpLnB1c2godW4oenJbIiFpZCJdWyJySWQiK1lyXS5UYXJnZXQsd2Uud29ya2Jvb2tzWzBdKSk7d2kubGVuZ3RoPjAmJihDbi5DdXN0b21YTUw9W10sd2kuZm9yRWFjaChmdW5jdGlvbihoaSl7dmFyIE5yPXtkYXRhOlVuKEgsaDEoaGkpKX0sa2k9SXQoaGkpO3RyeXt2YXIgTjA9UHQo''@;'; + put 'put ''VW4oSCxoMShraSksITApLGtpKTtpZihOMClmb3IodmFyIHQwPTE7dDA8PTEwMjQ7Kyt0MCkhTjBbIiFpZCJdWyJySWQiK3QwXXx8IU4wWyIhaWQiXVsicklkIit0MF0uVHlwZXx8L2N1c3RvbVhtbFByb3BzJC8udGVzdChOMFsiIWlkIl1bInJJZCIrdDBdLlR5cGUpJiYoTnIucHJvcHM9VW4o''@;'; + put 'put ''SCxoMSh1bihOMFsiIWlkIl1bInJJZCIrdDBdLlRhcmdldCxoaSkpKSl9Y2F0Y2goaW8pe31Dbi5DdXN0b21YTUwucHVzaChOcil9KSl9dmFyIEVpPXduKEgsInhsL21vZGVsL2l0ZW0uZGF0YSIsITApO0VpJiYoQ24ubW9kZWw9RWkpLHdlLmNvbm4mJihDbi5jb25uPXNuKEgsaDEod2UuY29u''@;'; + put 'put ''biksITApKSxxci5sZW5ndGgmJihDbi5FeHRlcm5hbFdCPXFyKSx4dCYmKHh0LlBQST1SNCl9cmV0dXJuIHJlLnRlbXBsYXRlJiYoQ24uX3dzcGF0aHM9Y3IsQ24uX3N0eXBhdGg9aDEod2Uuc3R5bGV8fCIiKSxDbi5fd2JwYXRoPWgxKHdlLndvcmtib29rc1swXXx8InhsL3dvcmtib29rLnht''@;'; + put 'put ''bCIpLENuLl92bWxwYXRocz1kaSxDbi5fd2JyZWxzcGF0aD1hcixDbi5fY3Q9VW4oSCwiW0NvbnRlbnRfVHlwZXNdLnhtbCIpLENuLmZpbGVzPUguZmlsZXMpLENufWZ1bmN0aW9uICRtKEgscmUpe3ZhciBYPXJlfHx7fTtYLnBhc3N3b3JkfHwoWC5wYXNzd29yZD0iVmVsdmV0U3dlYXRzaG9w''@;'; + put 'put ''Iik7dmFyIHdlPSJXb3JrYm9vayIseGU9dnQuZmluZChILHdlKTt0cnl7aWYoISh4ZT12dC5maW5kKEgsd2U9Ii8hRGF0YVNwYWNlcy9WZXJzaW9uIikpfHwheGUuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIit3ZSk7aWYoZnVuY3Rp''@;'; + put 'put ''b24gJE0oSCl7dmFyIHJlPXt9O3JlLmlkPUgucmVhZF9zaGlmdCgwLCJscHA0IikscmUuUj12ZihILDQpLHJlLlU9dmYoSCw0KSxyZS5XPXZmKEgsNCl9KHhlLmNvbnRlbnQpLCEoeGU9dnQuZmluZChILHdlPSIvIURhdGFTcGFjZXMvRGF0YVNwYWNlTWFwIikpfHwheGUuY29udGVudCl0aHJv''@;'; + put 'put ''dyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIit3ZSk7dmFyIEZlPWZ1bmN0aW9uIHBtKEgpe3ZhciByZT1bXTtILmwrPTQ7Zm9yKHZhciBYPUgucmVhZF9zaGlmdCg0KTtYLS0gPjA7KXJlLnB1c2godzMoSCkpO3JldHVybiByZX0oeGUuY29udGVudCk7aWYo''@;'; + put 'put ''MSE9PUZlLmxlbmd0aHx8MSE9PUZlWzBdLmNvbXBzLmxlbmd0aHx8MCE9PUZlWzBdLmNvbXBzWzBdLnR8fCJTdHJvbmdFbmNyeXB0aW9uRGF0YVNwYWNlIiE9PUZlWzBdLm5hbWV8fCJFbmNyeXB0ZWRQYWNrYWdlIiE9PUZlWzBdLmNvbXBzWzBdLnYpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3''@;'; + put 'put ''NiBFbmNyeXB0ZWQgZmlsZSBiYWQgIit3ZSk7aWYoISh4ZT12dC5maW5kKEgsd2U9Ii8hRGF0YVNwYWNlcy9EYXRhU3BhY2VJbmZvL1N0cm9uZ0VuY3J5cHRpb25EYXRhU3BhY2UiKSl8fCF4ZS5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2lu''@;'; + put 'put ''ZyAiK3dlKTt2YXIgWmU9ZnVuY3Rpb24gcU0oSCl7dmFyIHJlPVtdO0gubCs9NDtmb3IodmFyIFg9SC5yZWFkX3NoaWZ0KDQpO1gtLSA+MDspcmUucHVzaChILnJlYWRfc2hpZnQoMCwibHBwNCIpKTtyZXR1cm4gcmV9KHhlLmNvbnRlbnQpO2lmKDEhPVplLmxlbmd0aHx8IlN0cm9uZ0VuY3J5''@;'; + put 'put ''cHRpb25UcmFuc2Zvcm0iIT1aZVswXSl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIGJhZCAiK3dlKTtpZighKHhlPXZ0LmZpbmQoSCx3ZT0iLyFEYXRhU3BhY2VzL1RyYW5zZm9ybUluZm8vU3Ryb25nRW5jcnlwdGlvblRyYW5zZm9ybS8hUHJpbWFyeSIpKXx8IXhl''@;'; + put 'put ''LmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrd2UpOyFmdW5jdGlvbiB0RShIKXt2YXIgcmU9ZnVuY3Rpb24gZUUoSCl7dmFyIHJlPXt9O3JldHVybiBILnJlYWRfc2hpZnQoNCksSC5sKz00LHJlLmlkPUgucmVhZF9zaGlmdCgwLCJs''@;'; + put 'put ''cHA0IikscmUubmFtZT1ILnJlYWRfc2hpZnQoMCwibHBwNCIpLHJlLlI9dmYoSCw0KSxyZS5VPXZmKEgsNCkscmUuVz12ZihILDQpLHJlfShIKTtpZihyZS5lbmFtZT1ILnJlYWRfc2hpZnQoMCwiOGxwcDQiKSxyZS5ibGtzej1ILnJlYWRfc2hpZnQoNCkscmUuY21vZGU9SC5yZWFkX3NoaWZ0''@;'; + put 'put ''KDQpLDQhPUgucmVhZF9zaGlmdCg0KSl0aHJvdyBuZXcgRXJyb3IoIkJhZCAhUHJpbWFyeSByZWNvcmQiKTtyZXR1cm4gcmV9KHhlLmNvbnRlbnQpfWNhdGNoKFllKXt9aWYoISh4ZT12dC5maW5kKEgsd2U9Ii9FbmNyeXB0aW9uSW5mbyIpKXx8IXhlLmNvbnRlbnQpdGhyb3cgbmV3IEVycm9y''@;'; + put 'put ''KCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrd2UpO3ZhciBqZT1mdW5jdGlvbiBKeihIKXt2YXIgcmU9dmYoSCk7c3dpdGNoKHJlLk1pbm9yKXtjYXNlIDI6cmV0dXJuW3JlLk1pbm9yLHZiKEgpXTtjYXNlIDM6cmV0dXJuW3JlLk1pbm9yLEFiKCldO2Nhc2UgNDpyZXR1cm5b''@;'; + put 'put ''cmUuTWlub3IseWIoSCldfXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgdW5yZWNvZ25pemVkIFZlcnNpb246ICIrcmUuTWlub3IpfSh4ZS5jb250ZW50KTtpZighKHhlPXZ0LmZpbmQoSCx3ZT0iL0VuY3J5cHRlZFBhY2thZ2UiKSl8fCF4ZS5jb250ZW50KXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK3dlKTtpZig0PT1qZVswXSYmdm9pZCAwIT09SG8pcmV0dXJuIEhvKGplWzFdLHhlLmNvbnRlbnQsWC5wYXNzd29yZHx8IiIsWCk7aWYoMj09amVbMF0mJnZvaWQgMCE9PWtjKXJldHVybiBrYyhqZVsxXSx4ZS5j''@;'; + put 'put ''b250ZW50LFgucGFzc3dvcmR8fCIiLFgpO3Rocm93IG5ldyBFcnJvcigiRmlsZSBpcyBwYXNzd29yZC1wcm90ZWN0ZWQiKX1mdW5jdGlvbiBWZChILHJlKXtpZighcmUudGVtcGxhdGUpe2lmKCJvZHMiPT1yZS5ib29rVHlwZSlyZXR1cm4geEEoSCxyZSk7QzMocmUmJnJlLlBQSXx8OTYpLEgm''@;'; + put 'put ''JiFILlNTRiYmKEguU1NGPUYuZ2V0X3RhYmxlKCkpLEgmJkguU1NGJiYoeWUoRiksRi5sb2FkX3RhYmxlKEguU1NGKSxyZS5yZXZzc2Y9ZXQoSC5TU0YpLHJlLnJldnNzZltILlNTRls2NTUzNV1dPTAscmUuc3NmPUguU1NGKSxILlN0eWxlcz17Rm9udHM6cmUuRm9udHM9W3tzejoxMixjb2xv''@;'; + put 'put ''cjp7dGhlbWU6MSxyZ2I6IjAwMDAwMCJ9LG5hbWU6IkNhbGlicmkiLGZhbWlseToyLHNjaGVtZToibWlub3IifV0sRmlsbHM6cmUuRmlsbHM9W3twYXR0ZXJuVHlwZToibm9uZSJ9LHtwYXR0ZXJuVHlwZToiZ3JheTEyNSJ9XSxCb3JkZXJzOnJlLkJvcmRlcnM9W3t9XSxEWEY6cmUuRFhGPUgu''@;'; + put 'put ''U3R5bGVzJiZILlN0eWxlcy5EWEZ8fFtdLFRhYmxlOnJlLlRhYmxlPUguU3R5bGVzJiZILlN0eWxlcy5UYWJsZXx8W119LHJlLm92ZXJyaWRlTURXP1gyPXJlLm92ZXJyaWRlTURXOlMzKHJlLkZvbnRzWzBdKSxyZS5yZWxzPXt9LHJlLndicmVscz17fSxyZS5TdHJpbmdzPVtdLHJlLlN0cmlu''@;'; + put 'put ''Z3MuQ291bnQ9MCxyZS5TdHJpbmdzLlVuaXF1ZT0wLGY1P3JlLnJldlN0cmluZ3M9bmV3IE1hcDoocmUucmV2U3RyaW5ncz17fSxyZS5yZXZTdHJpbmdzLmZvbz1bXSxkZWxldGUgcmUucmV2U3RyaW5ncy5mb28pO3ZhciBYPSJ4bHNiIj09cmUuYm9va1R5cGU/ImJpbiI6InhtbCIsd2U9bEIu''@;'; + put 'put ''aW5kZXhPZihyZS5ib29rVHlwZSk+LTEseGU9e3dvcmtib29rczpbXSxzaGVldHM6W10sY2hhcnRzOltdLGRpYWxvZ3M6W10sbWFjcm9zOltdLHJlbHM6W10sc3RyczpbXSxjb21tZW50czpbXSxsaW5rczpbXSxjb3JlcHJvcHM6W10sZXh0cHJvcHM6W10sY3VzdHByb3BzOltdLHRoZW1lczpb''@;'; + put 'put ''XSxzdHlsZXM6W10sY2FsY2NoYWluczpbXSx2YmE6W10sZHJhd2luZ3M6W10scGl2b3RzOltdLHBpdm90Y2FjaGVzOltdLHBpdm90cmVjb3JkczpbXSxkYXRhbW9kZWxzOltdLGNoYXJ0b2JqczpbXSxjaGFydHN0eWxlczpbXSxjaGFydGNvbG9yczpbXSxjaGFydGV4czpbXSx0YWJsZXM6W10s''@;'; + put 'put ''Y29ubnM6W10sY3RybHByb3BzOltdLGN1c3RvbXhtbHByb3BzOltdLFRPRE86W10seG1sbnM6IiJ9O0gzKHJlPXJlfHx7fSk7dmFyIEZlPWtyKCksWmU9IiIsamU9MDtpZihyZS5jZWxsWGZzPVtdLHJlLmNlbGxTdHlsZVhmcz1be25hbWU6Ik5vcm1hbCJ9XSxZMShyZS5jZWxsWGZzLHJlLmNl''@;'; + put 'put ''bGxTdHlsZVhmcyx7fSx7cmV2c3NmOntHZW5lcmFsOjB9fSksSC5Qcm9wc3x8KEguUHJvcHM9e30pLHpuKEZlLFplPSJkb2NQcm9wcy9jb3JlLnhtbCIsZnVuY3Rpb24gaTIoSCxyZSl7dmFyIFg9cmV8fHt9LHdlPVtjbixNbl0seGU9e307aWYoIUgmJiFYLlByb3BzKXJldHVybiB3ZS5qb2lu''@;'; + put 'put ''KCIiKTtIJiYobnVsbCE9SC5DcmVhdGVkRGF0ZSYmeG4oImRjdGVybXM6Y3JlYXRlZCIsInN0cmluZyI9PXR5cGVvZiBILkNyZWF0ZWREYXRlP0guQ3JlYXRlZERhdGU6VTAoSC5DcmVhdGVkRGF0ZSxYLldURikseyJ4c2k6dHlwZSI6ImRjdGVybXM6VzNDRFRGIn0sd2UseGUpLG51bGwhPUgu''@;'; + put 'put ''TW9kaWZpZWREYXRlJiZ4bigiZGN0ZXJtczptb2RpZmllZCIsInN0cmluZyI9PXR5cGVvZiBILk1vZGlmaWVkRGF0ZT9ILk1vZGlmaWVkRGF0ZTpVMChILk1vZGlmaWVkRGF0ZSxYLldURikseyJ4c2k6dHlwZSI6ImRjdGVybXM6VzNDRFRGIn0sd2UseGUpKTtmb3IodmFyIEZlPTA7RmUhPWFl''@;'; + put 'put ''Lmxlbmd0aDsrK0ZlKXt2YXIgWmU9YWVbRmVdLGplPVguUHJvcHMmJm51bGwhPVguUHJvcHNbWmVbMV1dP1guUHJvcHNbWmVbMV1dOkg/SFtaZVsxXV06bnVsbDshMD09PWplP2plPSIxIjohMT09PWplP2plPSIwIjoibnVtYmVyIj09dHlwZW9mIGplJiYoamU9U3RyaW5nKGplKSksbnVsbCE9''@;'; + put 'put ''amUmJnhuKFplWzBdLGplLG51bGwsd2UseGUpfXJldHVybiB3ZS5sZW5ndGg+MiYmKHdlW3dlLmxlbmd0aF09IjwvY3A6Y29yZVByb3BlcnRpZXM+Iix3ZVsxXT13ZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSksd2Uuam9pbigiIil9KEguUHJvcHMscmUpKSx4ZS5jb3JlcHJvcHMucHVzaChaZSks''@;'; + put 'put ''SnQocmUucmVscywyLFplLHB0LkNPUkVfUFJPUFMpLFplPSJkb2NQcm9wcy9hcHAueG1sIiwhSC5Qcm9wc3x8IUguUHJvcHMuU2hlZXROYW1lcylpZihILldvcmtib29rJiZILldvcmtib29rLlNoZWV0cyl7Zm9yKHZhciBZZT1bXSxNdD0wO010PEguU2hlZXROYW1lcy5sZW5ndGg7KytNdCky''@;'; + put 'put ''IT0oSC5Xb3JrYm9vay5TaGVldHNbTXRdfHx7fSkuSGlkZGVuJiZZZS5wdXNoKEguU2hlZXROYW1lc1tNdF0pO0guUHJvcHMuU2hlZXROYW1lcz1ZZX1lbHNlIEguUHJvcHMuU2hlZXROYW1lcz1ILlNoZWV0TmFtZXM7SC5Qcm9wcy5Xb3Jrc2hlZXRzPUguUHJvcHMuU2hlZXROYW1lcy5sZW5n''@;'; + put 'put ''dGgsem4oRmUsWmUsZnVuY3Rpb24gcHYoSCl7dmFyIHJlPVtdLFg9Ymk7cmV0dXJuIEh8fChIPXt9KSxILkFwcGxpY2F0aW9uPSJTaGVldEpTIixyZVtyZS5sZW5ndGhdPWNuLHJlW3JlLmxlbmd0aF09VE0sbzIuZm9yRWFjaChmdW5jdGlvbih3ZSl7aWYodm9pZCAwIT09SFt3ZVsxXV0pe3Zh''@;'; + put 'put ''ciB4ZTtzd2l0Y2god2VbMl0pe2Nhc2Uic3RyaW5nIjp4ZT1ScihTdHJpbmcoSFt3ZVsxXV0pKTticmVhaztjYXNlImJvb2wiOnhlPUhbd2VbMV1dPyJ0cnVlIjoiZmFsc2UifXZvaWQgMCE9PXhlJiYocmVbcmUubGVuZ3RoXT1YKHdlWzBdLHhlKSl9fSkscmVbcmUubGVuZ3RoXT1YKCJIZWFk''@;'; + put 'put ''aW5nUGFpcnMiLFgoInZ0OnZlY3RvciIsWCgidnQ6dmFyaWFudCIsIjx2dDpscHN0cj5Xb3Jrc2hlZXRzPC92dDpscHN0cj4iKStYKCJ2dDp2YXJpYW50IixYKCJ2dDppNCIsU3RyaW5nKEguV29ya3NoZWV0cykpKSx7c2l6ZToyLGJhc2VUeXBlOiJ2YXJpYW50In0pKSxyZVtyZS5sZW5ndGhd''@;'; + put 'put ''PVgoIlRpdGxlc09mUGFydHMiLFgoInZ0OnZlY3RvciIsSC5TaGVldE5hbWVzLm1hcChmdW5jdGlvbih3ZSl7cmV0dXJuIjx2dDpscHN0cj4iK1JyKHdlKSsiPC92dDpscHN0cj4ifSkuam9pbigiIikse3NpemU6SC5Xb3Jrc2hlZXRzLGJhc2VUeXBlOiJscHN0ciJ9KSkscmUubGVuZ3RoPjIm''@;'; + put 'put ''JihyZVtyZS5sZW5ndGhdPSI8L1Byb3BlcnRpZXM+IixyZVsxXT1yZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSkscmUuam9pbigiIil9KEguUHJvcHMpKSx4ZS5leHRwcm9wcy5wdXNoKFplKSxKdChyZS5yZWxzLDMsWmUscHQuRVhUX1BST1BTKSxILkN1c3Rwcm9wcyE9PUguUHJvcHMmJm9uKEgu''@;'; + put 'put ''Q3VzdHByb3BzfHx7fSkubGVuZ3RoPjAmJih6bihGZSxaZT0iZG9jUHJvcHMvY3VzdG9tLnhtbCIsZnVuY3Rpb24gY2YoSCl7dmFyIHJlPVtjbixEbl07aWYoIUgpcmV0dXJuIHJlLmpvaW4oIiIpO3ZhciBYPTE7cmV0dXJuIG9uKEgpLmZvckVhY2goZnVuY3Rpb24oeGUpeysrWCxyZVtyZS5s''@;'; + put 'put ''ZW5ndGhdPWJpKCJwcm9wZXJ0eSIsZnVuY3Rpb24gT3MoSCxyZSl7c3dpdGNoKHR5cGVvZiBIKXtjYXNlInN0cmluZyI6dmFyIFg9YmkoInZ0Omxwd3N0ciIsUnIoSCkpO3JldHVybiByZSYmKFg9WC5yZXBsYWNlKC8mcXVvdDsvZywiX3gwMDIyXyIpKSxYO2Nhc2UibnVtYmVyIjpyZXR1cm4g''@;'; + put 'put ''YmkoKDB8SCk9PUg/InZ0Omk0IjoidnQ6cjgiLFJyKFN0cmluZyhIKSkpO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIGJpKCJ2dDpib29sIixIPyJ0cnVlIjoiZmFsc2UiKX1pZihIIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gYmkoInZ0OmZpbGV0aW1lIixVMChIKSk7dGhyb3cgbmV3IEVycm9yKCJV''@;'; + put 'put ''bmFibGUgdG8gc2VyaWFsaXplICIrSCl9KEhbeGVdLCEwKSx7Zm10aWQ6IntENUNERDUwNS0yRTlDLTEwMUItOTM5Ny0wODAwMkIyQ0Y5QUV9IixwaWQ6WCxuYW1lOlJyKHhlKX0pfSkscmUubGVuZ3RoPjImJihyZVtyZS5sZW5ndGhdPSI8L1Byb3BlcnRpZXM+IixyZVsxXT1yZVsxXS5yZXBs''@;'; + put 'put ''YWNlKCIvPiIsIj4iKSkscmUuam9pbigiIil9KEguQ3VzdHByb3BzKSkseGUuY3VzdHByb3BzLnB1c2goWmUpLEp0KHJlLnJlbHMsNCxaZSxwdC5DVVNUX1BST1BTKSk7dmFyIHh0PVtdLFJ0PVtdO2ZvcihqZT0xO2plPD1ILlNoZWV0TmFtZXMubGVuZ3RoOysramUpe3ZhciBDbj17IiFpZCI6''@;'; + put 'put ''e319LER0PUguU2hlZXRzW0guU2hlZXROYW1lc1tqZS0xXV0senQ9KER0fHx7fSlbIiF0eXBlIl18fCJzaGVldCI7c3dpdGNoKHp0KXtjYXNlImNoYXJ0IjppZigidW5kZWZpbmVkIiE9dHlwZW9mIHdyaXRlX2RyYXdpbmdfKXt6bihGZSxaZT0ieGwvY2hhcnRzaGVldHMvc2hlZXQiK2plKyIu''@;'; + put 'put ''IitYLHZQKGplLTEsWmUscmUsSCxDbikpLHhlLmNoYXJ0cy5wdXNoKFplKSxKdChyZS53YnJlbHMsLTEsImNoYXJ0c2hlZXRzL3NoZWV0IitqZSsiLiIrWCxwdC5DUyk7YnJlYWt9ZGVmYXVsdDp6bihGZSxaZT0ieGwvd29ya3NoZWV0cy9zaGVldCIramUrIi4iK1gsengoamUtMSxaZSxyZSxI''@;'; + put 'put ''LENuKSkseGUuc2hlZXRzLnB1c2goWmUpLEp0KHJlLndicmVscywtMSwid29ya3NoZWV0cy9zaGVldCIramUrIi4iK1gscHQuV1NbMF0pfWlmKER0KXsiY2hhcnQiPT16dCYmIUR0WyIhcG9zIl0mJihEdFsiIXBvcyJdPXt4OjAseTowLHc6OTAwLGg6NjAwfSk7dmFyIFBuPUR0WyIhY29tbWVu''@;'; + put 'put ''dHMiXSxUbj0hMTtpZihQbiYmUG4ubGVuZ3RoPjApe3ZhciBPbj0ieGwvY29tbWVudHMiK2plKyIuIitYO3puKEZlLE9uLHlQKFBuLE9uLHJlKSkseGUuY29tbWVudHMucHVzaChPbiksSnQoQ24sLTEsIi4uL2NvbW1lbnRzIitqZSsiLiIrWCxwdC5DTU5UKSxUbj0hMH0oRHRbIiFjb250cm9s''@;'; + put 'put ''cyJdfHxbXSkubGVuZ3RoPjAmJihUbj0hMCksRHRbIiFsZWdhY3kiXSYmVG4mJnpuKEZlLCJ4bC9kcmF3aW5ncy92bWxEcmF3aW5nIitqZSsiLnZtbCIsVmIoamUsRHRbIiFjb21tZW50cyJdLER0WyIhY29udHJvbHMiXSxEdCkpLER0WyIhbGVnYWN5SEYiXSYmQ20oRmUsMCxqZSxEdFsiIXBy''@;'; + put 'put ''aW50Il0uaW1hZ2VzKTt2YXIgV249KCJjaGFydCI9PUR0WyIhdHlwZSJdP1tEdF06RHRbIiFjaGFydHMiXXx8W10pLmNvbmNhdCgoRHRbIiFpbWFnZXMiXXx8W10pLm1hcChmdW5jdGlvbihNcil7cmV0dXJuIE1yWyIhdHlwZSJdfHwoTXJbIiF0eXBlIl09ImltYWdlIiksTXJ9KSkuY29uY2F0''@;'; + put 'put ''KChEdFsiIXNoYXBlcyJdfHxbXSkubWFwKGZ1bmN0aW9uKE1yKXtyZXR1cm4gTXJbIiF0eXBlIl18fChNclsiIXR5cGUiXT0ic2hhcGUiKSxNcn0pKTtXbiYmV24ubGVuZ3RoJiYoInVuZGVmaW5lZCIhPXR5cGVvZiB3cml0ZV9kcmF3aW5nXz93cml0ZV9kcmF3aW5nXyhGZSx4ZSxqZSxEdCxX''@;'; + put 'put ''bik6KHpuKEZlLCJ4bC9kcmF3aW5ncy9kcmF3aW5nIitqZSsiLnhtbCIsRmIoKSkseGUuZHJhd2luZ3MucHVzaCgieGwvZHJhd2luZ3MvZHJhd2luZyIramUrIi54bWwiKSkpLGRlbGV0ZSBEdFsiIWNvbW1lbnRzIl0sZGVsZXRlIER0WyIhbGVnYWN5Il0sZGVsZXRlIER0WyIhbGVnYWN5SEYi''@;'; + put 'put ''XX1EdCYmRHRbIiFwaXZvdHMiXSYmInhtbCI9PVgmJiJ1bmRlZmluZWQiIT10eXBlb2Ygd3JpdGVfcGl2b3RfeG1sJiZEdFsiIXBpdm90cyJdLmZvckVhY2gobm4pLENuWyIhaWQiXS5ySWQxJiZ6bihGZSxJdChaZSkscnQoQ24pKSxEdCYmRHRbIiF0YWJsZXMiXSYmInhtbCI9PVgmJnZvaWQg''@;'; + put 'put ''MCE9PUhiJiZEdFsiIXRhYmxlcyJdLmZvckVhY2goWXQpfXJldHVybiBudWxsIT1yZS5TdHJpbmdzJiZyZS5TdHJpbmdzLmxlbmd0aD4wJiYoem4oRmUsWmU9InhsL3NoYXJlZFN0cmluZ3MuIitYLEFQKHJlLlN0cmluZ3MsWmUscmUpKSx4ZS5zdHJzLnB1c2goWmUpLEp0KHJlLndicmVscywt''@;'; + put 'put ''MSwic2hhcmVkU3RyaW5ncy4iK1gscHQuU1NUKSksInhtbCI9PVgmJiJ1bmRlZmluZWQiIT10eXBlb2Ygd3JpdGVfcGl2b3RfeG1sJiZ3cml0ZV9waXZvdF94bWwoeHQsSCxGZSx4ZSxyZSksInhtbCI9PVgmJnZvaWQgMCE9PUhiJiZIYihSdCxILEZlLHhlKSwieG1sIj09WCYmKEguRXh0ZXJu''@;'; + put 'put ''YWxXQnx8W10pLmxlbmd0aCYmZnVuY3Rpb24gdzYoSCxyZSxYKXtYLmxpbmtzfHwoWC5saW5rcz1bXSksSC5FeHRlcm5hbFdCJiZILkV4dGVybmFsV0IuZm9yRWFjaChmdW5jdGlvbih3ZSx4ZSl7dmFyIEZlPSIveGwvZXh0ZXJuYWxMaW5rcy9fcmVscy9leHRlcm5hbExpbmsiKyh4ZSsxKSsi''@;'; + put 'put ''LnhtbC5yZWxzIixaZT17fTtKdChaZSwtMSx3ZS5UYXJnZXQsd2UuTWlzc2luZz9wdC5YTUlTUzpwdC5YUEFUSCksem4ocmUsaDEoRmUpLHJ0KFplKSk7dmFyIGplPSIveGwvZXh0ZXJuYWxMaW5rcy9leHRlcm5hbExpbmsiKyh4ZSsxKSsiLnhtbCI7WC5saW5rcy5wdXNoKGplKSx6bihyZSxo''@;'; + put 'put ''MShqZSksZnVuY3Rpb24gdDUoSCl7dmFyIHJlPVtjbix5Nl07cmV0dXJuKEguU2hlZXROYW1lc3x8W10pLmxlbmd0aCYmKHJlLnB1c2goJzxleHRlcm5hbEJvb2sgeG1sbnM6cj0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25z''@;'; + put 'put ''aGlwcyIgcjppZD0icklkMSI+JykscmUucHVzaCgiPHNoZWV0TmFtZXM+IiksSC5TaGVldE5hbWVzLmZvckVhY2goZnVuY3Rpb24oWCl7cmUucHVzaCgnPHNoZWV0TmFtZSB2YWw9IicrUnIoWCkrJyIvPicpfSkscmUucHVzaCgiPC9zaGVldE5hbWVzPiIpLHJlLnB1c2goIjxzaGVldERhdGFT''@;'; + put 'put ''ZXQ+IiksSC5TaGVldE5hbWVzLmZvckVhY2goZnVuY3Rpb24oWCx3ZSl7dmFyIHhlPUguU2hlZXRzW1hdLEZlPXtzaGVldElkOndlfSxaZT1udWxsO2lmKG51bGw9PXhlKUZlLnJlZnJlc2hFcnJvcj0xO2Vsc2UgaWYoeGVbIiFyZWYiXSl7dmFyIGplPXZzKHhlWyIhcmVmIl0pO1plPSIiO2Zv''@;'; + put 'put ''cih2YXIgWWU9amUucy5yO1llPD1qZS5lLnI7KytZZSl7Zm9yKHZhciBNdD0iIix4dD1qZS5zLmM7eHQ8PWplLmUuYzsrK3h0KXt2YXIgUnQ9WTAoe3I6WWUsYzp4dH0pOyF4ZVtSdF18fChNdHx8KE10PSc8cm93IHI9IicrKFllKzEpKyciPicpLE10Kz0nPGNlbGwgcj0iJytSdCsnIicrKHhl''@;'; + put 'put ''W1J0XS50PycgdD0iJyt4ZVtSdF0udCsnIic6IiIpKyI+PHY+IitScih4ZVtSdF0udikrIjwvdj48L2NlbGw+Iil9TXQmJihaZSs9TXQrIjwvcm93PiIpfX1yZS5wdXNoKGJpKCJzaGVldERhdGEiLFplLEZlKSl9KSxyZS5wdXNoKCI8L3NoZWV0RGF0YVNldD4iKSxyZS5wdXNoKCI8L2V4dGVy''@;'; + put 'put ''bmFsQm9vaz4iKSkscmUubGVuZ3RoPjImJihyZVtyZS5sZW5ndGhdPSI8L2V4dGVybmFsTGluaz4iLHJlWzFdPXJlWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxyZS5qb2luKCIiKX0od2UpKX0pfShILEZlLHhlKSwieG1sIj09WCYmZnVuY3Rpb24gVnYoSCl7dmFyIHJlLFg7SC5Xb3JrYm9va3x8''@;'; + put 'put ''KEguV29ya2Jvb2s9e05hbWVzOltdfSksSC5Xb3JrYm9vay5OYW1lc3x8KEguV29ya2Jvb2suTmFtZXM9W10pO2Zvcih2YXIgd2U9SC5Xb3JrYm9vay5OYW1lcyx4ZT0wO3hlPEguU2hlZXROYW1lcy5sZW5ndGg7Kyt4ZSl7dmFyIEZlPUguU2hlZXROYW1lc1t4ZV0sWmU9SC5TaGVldHNbRmVd''@;'; + put 'put ''O2lmKFplJiZaZVsiIXByaW50Il0pe3ZhciBqZT0iJyIrRmUrIichIixZZT1aZVsiIXByaW50Il07aWYoWWUpe3ZhciBNdD0hKHJlPVllLmFyZWEpLHh0PSEoWD1ZZS50aXRsZXMpLFJ0PXJlPyJzdHJpbmciPT10eXBlb2YgcmU/cmU6ZmEocmUpOiIiO2lmKHJlJiYod2UuZm9yRWFjaChmdW5j''@;'; + put 'put ''dGlvbihubil7bm4uU2hlZXQ9PXhlJiYhTXQmJiJfeGxubS5QcmludF9BcmVhIj09bm4uTmFtZSYmKE10PSEwLG5uLlJlZj1qZStSdCl9KSxNdHx8d2UucHVzaCh7TmFtZToiX3hsbm0uUHJpbnRfQXJlYSIsUmVmOmplK1J0LFNoZWV0OnhlfSkpLFgpe3ZhciBZdD0iIjtYLnMuYz4tMSYmWC5l''@;'; + put 'put ''LmM+LTEmJihZdCs9amUrX2EoWC5zLmMpKyI6IitfYShYLmUuYykrIiwiKSxYLnMucj4tMSYmWC5lLnI+LTEmJihZdCs9amUrWGEoWC5zLnIpKyI6IitYYShYLmUucikrIiwiKSxZdD1ZdC5zbGljZSgwLC0xKSx3ZS5mb3JFYWNoKGZ1bmN0aW9uKG5uKXtubi5TaGVldD09eGUmJiF4dCYmIl94''@;'; + put 'put ''bG5tLlByaW50X1RpdGxlcyI9PW5uLk5hbWUmJihNdD0hMCxubi5SZWY9WXQpfSkseHR8fHdlLnB1c2goe05hbWU6Il94bG5tLlByaW50X1RpdGxlcyIsUmVmOll0LFNoZWV0OnhlfSl9fX19fShIKSx6bihGZSxaZT0ieGwvd29ya2Jvb2suIitYLGZ1bmN0aW9uIG1QKEgscmUsWCl7cmV0dXJu''@;'; + put 'put ''KCIuYmluIj09PXJlLnNsaWNlKC00KT9HXzpmUCkoSCxYKX0oSCxaZSxyZSkpLHhlLndvcmtib29rcy5wdXNoKFplKSxKdChyZS5yZWxzLDEsWmUscHQuV0IpLHpuKEZlLFplPSJ4bC90aGVtZS90aGVtZTEueG1sIixIdihILlRoZW1lcyxyZSkpLHhlLnRoZW1lcy5wdXNoKFplKSxKdChyZS53''@;'; + put 'put ''YnJlbHMsLTEsInRoZW1lL3RoZW1lMS54bWwiLHB0LlRIRU1FKSx6bihGZSxaZT0ieGwvc3R5bGVzLiIrWCxmdW5jdGlvbiBHeChILHJlLFgpe3JldHVybigiLmJpbiI9PT1yZS5zbGljZSgtNCk/eUU6TlIpKEgsWCl9KEgsWmUscmUpKSx4ZS5zdHlsZXMucHVzaChaZSksSnQocmUud2JyZWxz''@;'; + put 'put ''LC0xLCJzdHlsZXMuIitYLHB0LlNUWSksSC52YmFyYXcmJndlJiYoem4oRmUsWmU9InhsL3ZiYVByb2plY3QuYmluIixILnZiYXJhdykseGUudmJhLnB1c2goWmUpLEp0KHJlLndicmVscywtMSwidmJhUHJvamVjdC5iaW4iLHB0LlZCQSkpLEgubW9kZWwmJkgubW9kZWwubGVuZ3RoJiYoem4o''@;'; + put 'put ''RmUsInhsL21vZGVsL2l0ZW0uZGF0YSIsSC5tb2RlbCksSnQocmUud2JyZWxzLC0xLCJtb2RlbC9pdGVtLmRhdGEiLHB0LlBXUlBEKSksSC5jb25uJiYoem4oRmUsInhsL2Nvbm5lY3Rpb25zLnhtbCIsSC5jb25uKSx4ZS5jb25ucy5wdXNoKCIveGwvY29ubmVjdGlvbnMueG1sIiksSnQocmUu''@;'; + put 'put ''d2JyZWxzLC0xLCJjb25uZWN0aW9ucy54bWwiLHB0LkNPTk4pKSxILkN1c3RvbVhNTCYmSC5DdXN0b21YTUwuZm9yRWFjaChmdW5jdGlvbihNcixhaSl7aWYoem4oRmUsImN1c3RvbVhtbC9pdGVtIisoYWkrMSkrIi54bWwiLE1yLmRhdGEpLEp0KHJlLndicmVscywtMSwiLi4vY3VzdG9tWG1s''@;'; + put 'put ''L2l0ZW0iKyhhaSsxKSsiLnhtbCIscHQuQ1hNTCksTXIucHJvcHMpe3puKEZlLCJjdXN0b21YbWwvaXRlbVByb3BzIisoYWkrMSkrIi54bWwiLE1yLnByb3BzKSx4ZS5jdXN0b214bWxwcm9wcy5wdXNoKCIvY3VzdG9tWG1sL2l0ZW1Qcm9wcyIrKGFpKzEpKyIueG1sIik7dmFyIHlyPXt9O0p0''@;'; + put 'put ''KHlyLC0xLCJpdGVtUHJvcHMiKyhhaSsxKSsiLnhtbCIscHQuQ1hNTFApLHpuKEZlLCJjdXN0b21YbWwvX3JlbHMvaXRlbSIrKGFpKzEpKyIueG1sLnJlbHMiLHJ0KHlyKSl9fSksem4oRmUsIltDb250ZW50X1R5cGVzXS54bWwiLGZ1bmN0aW9uIEVNKEgscmUsWCl7dmFyIHhlLHdlPVtdO1h8''@;'; + put 'put ''fCh3ZVt3ZS5sZW5ndGhdPWNuLHdlW3dlLmxlbmd0aF09ZjIsd2U9d2UuY29uY2F0KG9SKSk7dmFyIEZlPWZ1bmN0aW9uKFllKXtIW1llXSYmSFtZZV0ubGVuZ3RoPjAmJih3ZVt3ZS5sZW5ndGhdPWJpKCJPdmVycmlkZSIsbnVsbCx7UGFydE5hbWU6KCIvIj09KHhlPUhbWWVdWzBdKVswXT8i''@;'; + put 'put ''IjoiLyIpK3hlLENvbnRlbnRUeXBlOkNhW1llXVtyZS5ib29rVHlwZXx8Inhsc3giXX0pKX0sWmU9ZnVuY3Rpb24oWWUpeyhIW1llXXx8W10pLmZvckVhY2goZnVuY3Rpb24oTXQpe3dlW3dlLmxlbmd0aF09YmkoIk92ZXJyaWRlIixudWxsLHtQYXJ0TmFtZTooIi8iPT1NdFswXT8iIjoiLyIp''@;'; + put 'put ''K010LENvbnRlbnRUeXBlOkNhW1llXVtyZS5ib29rVHlwZXx8Inhsc3giXX0pfSl9LGplPWZ1bmN0aW9uKFllKXsoSFtZZV18fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKE10KXt3ZVt3ZS5sZW5ndGhdPWJpKCJPdmVycmlkZSIsbnVsbCx7UGFydE5hbWU6KCIvIj09TXRbMF0/IiI6Ii8iKStNdCxD''@;'; + put 'put ''b250ZW50VHlwZTokZ1tZZV1bMF19KX0pfTtyZXR1cm4gRmUoIndvcmtib29rcyIpLFplKCJzaGVldHMiKSxaZSgiY2hhcnRzIiksamUoInRoZW1lcyIpLFsic3RycyIsInN0eWxlcyIsImNvbm5zIl0uZm9yRWFjaChGZSksWyJjb3JlcHJvcHMiLCJleHRwcm9wcyIsImN1c3Rwcm9wcyJdLmZv''@;'; + put 'put ''ckVhY2goamUpLGplKCJ2YmEiKSxqZSgiY29tbWVudHMiKSxqZSgiZHJhd2luZ3MiKSxaZSgidGFibGVzIiksWmUoInBpdm90cyIpLFplKCJwaXZvdGNhY2hlcyIpLFplKCJwaXZvdHJlY29yZHMiKSxqZSgiZGF0YW1vZGVscyIpLGplKCJjdHJscHJvcHMiKSxqZSgiY2hhcnRvYmpzIiksamUo''@;'; + put 'put ''ImNoYXJ0c3R5bGVzIiksamUoImNoYXJ0Y29sb3JzIiksamUoImNoYXJ0ZXhzIiksWmUoImxpbmtzIiksamUoImN1c3RvbXhtbHByb3BzIiksIVgmJndlLmxlbmd0aD4yJiYod2Vbd2UubGVuZ3RoXT0iPC9UeXBlcz4iLHdlWzFdPXdlWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSx3ZS5qb2luKCIi''@;'; + put 'put ''KX0oeGUscmUpKSx6bihGZSwiX3JlbHMvLnJlbHMiLHJ0KHJlLnJlbHMpKSx6bihGZSwieGwvX3JlbHMvd29ya2Jvb2suIitYKyIucmVscyIscnQocmUud2JyZWxzKSksZGVsZXRlIHJlLkZvbnRzLGRlbGV0ZSByZS5GaWxscyxkZWxldGUgcmUuQm9yZGVycyxkZWxldGUgcmUucmV2c3NmLGRl''@;'; + put 'put ''bGV0ZSByZS5zc2YsRmV9ZnVuY3Rpb24gWXQoTXIsYWkpe1J0LnB1c2goW2plLTEsYWksTXJdKX1mdW5jdGlvbiBubihNcil7eHQucHVzaChbamUtMSxNcl0pLEp0KENuLC0xLCIuLi9waXZvdFRhYmxlcy9waXZvdFRhYmxlIit4dC5sZW5ndGgrIi4iK1gscHQuUElWT1QpfX1mdW5jdGlvbiB1''@;'; + put 'put ''QyhILHJlKXt2YXIgWD0iIjtzd2l0Y2goKHJlfHx7fSkudHlwZXx8ImJhc2U2NCIpe2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpyZXR1cm5bSFswXSxIWzFdLEhbMl0sSFszXSxIWzRdLEhbNV0sSFs2XSxIWzddXTtjYXNlImJhc2U2NCI6WD1TZS5kZWNvZGUoSC5zbGljZSgwLDEyKSk7YnJl''@;'; + put 'put ''YWs7Y2FzZSJiaW5hcnkiOlg9SDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIisocmUmJnJlLnR5cGV8fCJ1bmRlZmluZWQiKSl9cmV0dXJuW1guY2hhckNvZGVBdCgwKSxYLmNoYXJDb2RlQXQoMSksWC5jaGFyQ29kZUF0KDIpLFguY2hhckNvZGVB''@;'; + put 'put ''dCgzKSxYLmNoYXJDb2RlQXQoNCksWC5jaGFyQ29kZUF0KDUpLFguY2hhckNvZGVBdCg2KSxYLmNoYXJDb2RlQXQoNyldfWZ1bmN0aW9uIGhvKEgscmUpe3ZhciBYPTA7ZTpmb3IoO1g8SC5sZW5ndGg7KXN3aXRjaChILmNoYXJDb2RlQXQoWCkpe2Nhc2UgMTA6Y2FzZSAxMzpjYXNlIDMyOisr''@;'; + put 'put ''WDticmVhaztjYXNlIDYwOnJldHVybiAkXyhILnNsaWNlKFgpLHJlKTtkZWZhdWx0OmJyZWFrIGV9cmV0dXJuIEEzLnRvX3dvcmtib29rKEgscmUpfWZ1bmN0aW9uIFYzKEgscmUsWCx3ZSl7cmV0dXJuIHdlPyhYLnR5cGU9InN0cmluZyIsQTMudG9fd29ya2Jvb2soSCxYKSk6QTMudG9fd29y''@;'; + put 'put ''a2Jvb2socmUsWCl9ZnVuY3Rpb24gamQoSCxyZSl7dmFyIFg9Ri5nZXRsb2NhbGUoKTt5ZShGKSxGLnNldGxvY2FsZShYKSxxKCk7dmFyIHdlPXJlfHx7fTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZIIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIGpkKG5ldyBV''@;'; + put 'put ''aW50OEFycmF5KEgpLCgod2U9bG4od2UpKS50eXBlPSJhcnJheSIsd2UpKTt2YXIgRmUseGU9SCxaZT0hMTtpZihDMyhSND13ZS5QUEl8fDk2KSx3ZS5jZWxsU3R5bGVzJiYod2UuY2VsbE5GPSEwLHdlLnNoZWV0U3R1YnM9ITApLFVjPXt9LHdlLmRhdGVORiYmKFVjLmRhdGVORj13ZS5kYXRl''@;'; + put 'put ''TkYpLHdlLnR5cGV8fCh3ZS50eXBlPUllJiZCdWZmZXIuaXNCdWZmZXIoSCk/ImJ1ZmZlciI6ImJhc2U2NCIpLCJmaWxlIj09d2UudHlwZSYmKHdlLnR5cGU9SWU/ImJ1ZmZlciI6ImJpbmFyeSIseGU9ZnVuY3Rpb24gQnQoSCl7aWYodm9pZCAwIT09QXQpcmV0dXJuIEF0LnJlYWRGaWxlU3lu''@;'; + put 'put ''YyhIKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mICQmJiJ1bmRlZmluZWQiIT10eXBlb2YgRmlsZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBGb2xkZXIpdHJ5e3ZhciByZT1GaWxlKEgpO3JlLm9wZW4oInIiKSxyZS5lbmNvZGluZz0iYmluYXJ5Ijt2YXIgWD1yZS5yZWFkKCk7cmV0dXJuIHJlLmNs''@;'; + put 'put ''b3NlKCksWH1jYXRjaCh3ZSl7aWYoIXdlLm1lc3NhZ2V8fCF3ZS5tZXNzYWdlLm1hdGNoKC9vbnN0cnVjdC8pKXRocm93IHdlfXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGFjY2VzcyBmaWxlICIrSCl9KEgpKSwic3RyaW5nIj09d2UudHlwZSYmKFplPSEwLHdlLnR5cGU9ImJpbmFyeSIsd2Uu''@;'; + put 'put ''Y29kZXBhZ2U9NjUwMDEseGU9ZnVuY3Rpb24gR28oSCl7cmV0dXJuIEgubWF0Y2goL1teXHgwMC1ceDdGXS8pP0VvKEgpOkh9KEgpKSwiYXJyYXkiPT13ZS50eXBlJiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXkmJkggaW5zdGFuY2VvZiBVaW50OEFycmF5JiYidW5kZWZpbmVkIiE9''@;'; + put 'put ''dHlwZW9mIEFycmF5QnVmZmVyKXt2YXIgamU9bmV3IEFycmF5QnVmZmVyKDMpLFllPW5ldyBVaW50OEFycmF5KGplKTtpZihZZS5mb289ImJhciIsIVllLmZvbylyZXR1cm4od2U9bG4od2UpKS50eXBlPSJhcnJheSIsamQoUCh4ZSksd2UpfXN3aXRjaCgoRmU9dUMoeGUsd2UpKVswXSl7Y2Fz''@;'; + put 'put ''ZSAyMDg6aWYoMjA3PT09RmVbMV0mJjE3PT09RmVbMl0mJjIyND09PUZlWzNdJiYxNjE9PT1GZVs0XSYmMTc3PT09RmVbNV0mJjI2PT09RmVbNl0mJjIyNT09PUZlWzddKXJldHVybiBmdW5jdGlvbiBvYyhILHJlKXtyZXR1cm4gdnQuZmluZChILCJFbmNyeXB0ZWRQYWNrYWdlIik/JG0oSCxy''@;'; + put 'put ''ZSk6VW0oSCxyZSl9KHZ0LnJlYWQoeGUsd2UpLHdlKTticmVhaztjYXNlIDk6aWYoRmVbMV08PTgpcmV0dXJuIFVtKHhlLHdlKTticmVhaztjYXNlIDYwOnJldHVybiAkXyh4ZSx3ZSk7Y2FzZSA3MzppZig3Mz09PUZlWzFdJiY0Mj09PUZlWzJdJiYwPT09RmVbM10pdGhyb3cgbmV3IEVycm9y''@;'; + put 'put ''KCJUSUZGIEltYWdlIEZpbGUgaXMgbm90IGEgc3ByZWFkc2hlZXQiKTtpZig2OD09PUZlWzFdKXJldHVybiBmdW5jdGlvbiBtYihILHJlKXt2YXIgWD1yZXx8e30sd2U9ISFYLldURjtYLldURj0hMDt0cnl7dmFyIHhlPWZtLnRvX3dvcmtib29rKEgsWCk7cmV0dXJuIFguV1RGPXdlLHhlfWNh''@;'; + put 'put ''dGNoKEZlKXtpZihYLldURj13ZSwhRmUubWVzc2FnZS5tYXRjaCgvU1lMSyBiYWQgcmVjb3JkIElELykmJndlKXRocm93IEZlO3JldHVybiBBMy50b193b3JrYm9vayhILHJlKX19KHhlLHdlKTticmVhaztjYXNlIDg0OmlmKDY1PT09RmVbMV0mJjY2PT09RmVbMl0mJjc2PT09RmVbM10pcmV0''@;'; + put 'put ''dXJuIGdiLnRvX3dvcmtib29rKHhlLHdlKTticmVhaztjYXNlIDgwOnJldHVybiA3NT09PUZlWzFdJiZGZVsyXTw5JiZGZVszXTw5P2Z1bmN0aW9uIEhQKEgscmUpe3ZhciB3ZT1ILHhlPXJlfHx7fTtyZXR1cm4geGUudHlwZXx8KHhlLnR5cGU9SWUmJkJ1ZmZlci5pc0J1ZmZlcihIKT8iYnVm''@;'; + put 'put ''ZmVyIjoiYmFzZTY0IiksS20obW4od2UseGUpLHhlKX0oeGUsd2UpOlYzKEgseGUsd2UsWmUpO2Nhc2UgMjM5OnJldHVybiA2MD09PUZlWzNdPyRfKHhlLHdlKTpWMyhILHhlLHdlLFplKTtjYXNlIDI1NTppZigyNTQ9PT1GZVsxXSlyZXR1cm4gZnVuY3Rpb24gQzEoSCxyZSl7dmFyIFg9SDty''@;'; + put 'put ''ZXR1cm4iYmFzZTY0Ij09cmUudHlwZSYmKFg9U2UuZGVjb2RlKFgpKSxYPWNwdGFibGUudXRpbHMuZGVjb2RlKDEyMDAsWC5zbGljZSgyKSwic3RyIikscmUudHlwZT0iYmluYXJ5IixobyhYLHJlKX0oeGUsd2UpO2JyZWFrO2Nhc2UgMDppZigwPT09RmVbMV0mJkZlWzJdPj0yJiYwPT09RmVb''@;'; + put 'put ''M10pcmV0dXJuIEcxLnRvX3dvcmtib29rKHhlLHdlKTticmVhaztjYXNlIDM6Y2FzZSAxMzE6Y2FzZSAxMzk6Y2FzZSAxNDA6cmV0dXJuIFlmLnRvX3dvcmtib29rKHhlLHdlKTtjYXNlIDEyMzppZig5Mj09PUZlWzFdJiYxMTQ9PT1GZVsyXSYmMTE2PT09RmVbM10pcmV0dXJuIEV2LnRvX3dv''@;'; + put 'put ''cmtib29rKHhlLHdlKTticmVhaztjYXNlIDEwOmNhc2UgMTM6Y2FzZSAzMjpyZXR1cm4gZnVuY3Rpb24gTjMoSCxyZSl7dmFyIFg9IiIsd2U9dUMoSCxyZSk7c3dpdGNoKHJlLnR5cGUpe2Nhc2UiYmFzZTY0IjpYPVNlLmRlY29kZShIKTticmVhaztjYXNlImJpbmFyeSI6WD1IO2JyZWFrO2Nh''@;'; + put 'put ''c2UiYnVmZmVyIjpYPUgudG9TdHJpbmcoImJpbmFyeSIpO2JyZWFrO2Nhc2UiYXJyYXkiOlg9eW4oSCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrcmUudHlwZSl9cmV0dXJuIDIzOT09d2VbMF0mJjE4Nz09d2VbMV0mJjE5MT09d2VbMl0mJihY''@;'; + put 'put ''PVcwKFgpKSxobyhYLHJlKX0oeGUsd2UpfXJldHVybiBZZi52ZXJzaW9ucy5pbmRleE9mKEZlWzBdKT4tMSYmRmVbMl08PTEyJiZGZVszXTw9MzE/WWYudG9fd29ya2Jvb2soeGUsd2UpOlYzKEgseGUsd2UsWmUpfWZ1bmN0aW9uIGU3KEgscmUpe3ZhciBYPXJlfHx7fTtyZXR1cm4gWC50eXBl''@;'; + put 'put ''PSJmaWxlIixqZChILFgpfWZ1bmN0aW9uIFNjKEgscmUpe3N3aXRjaChyZS50eXBlKXtjYXNlImJhc2U2NCI6Y2FzZSJiaW5hcnkiOmJyZWFrO2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpyZS50eXBlPSIiO2JyZWFrO2Nhc2UiZmlsZSI6cmV0dXJuIGh0KHJlLmZpbGUsdnQud3JpdGUoSCx7''@;'; + put 'put ''dHlwZTpJZT8iYnVmZmVyIjoiIn0pKTtjYXNlInN0cmluZyI6dGhyb3cgbmV3IEVycm9yKCInc3RyaW5nJyBvdXRwdXQgdHlwZSBpbnZhbGlkIGZvciAnIityZS5ib29rVHlwZSsiJyBmaWxlcyIpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK3JlLnR5cGUp''@;'; + put 'put ''fXJldHVybiB2dC53cml0ZShILHJlKX1mdW5jdGlvbiBqMyhILHJlLFgpe1h8fChYPSIiKTt2YXIgd2U9WCtIO3N3aXRjaChyZS50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIFNlLmVuY29kZShFbyh3ZSkpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gRW8od2UpO2Nhc2Uic3RyaW5nIjpyZXR1cm4g''@;'; + put 'put ''SDtjYXNlImZpbGUiOnJldHVybiBodChyZS5maWxlLHdlLCJ1dGY4Iik7Y2FzZSJidWZmZXIiOnJldHVybiBJZT9UZSh3ZSwidXRmOCIpOmozKHdlLHt0eXBlOiJiaW5hcnkifSkuc3BsaXQoIiIpLm1hcChmdW5jdGlvbih4ZSl7cmV0dXJuIHhlLmNoYXJDb2RlQXQoMCl9KX10aHJvdyBuZXcg''@;'; + put 'put ''RXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrcmUudHlwZSl9ZnVuY3Rpb24gZkMoSCxyZSl7c3dpdGNoKHJlLnR5cGUpe2Nhc2Uic3RyaW5nIjpjYXNlImJhc2U2NCI6Y2FzZSJiaW5hcnkiOmZvcih2YXIgWD0iIix3ZT0wO3dlPEgubGVuZ3RoOysrd2UpWCs9U3RyaW5nLmZyb21DaGFyQ29k''@;'; + put 'put ''ZShIW3dlXSk7cmV0dXJuImJhc2U2NCI9PXJlLnR5cGU/U2UuZW5jb2RlKFgpOiJzdHJpbmciPT1yZS50eXBlP1cwKFgpOlg7Y2FzZSJmaWxlIjpyZXR1cm4gaHQocmUuZmlsZSxIKTtjYXNlImJ1ZmZlciI6cmV0dXJuIEg7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0''@;'; + put 'put ''eXBlICIrcmUudHlwZSl9fWZ1bmN0aW9uIG43KEgscmUpe3EoKSxmdW5jdGlvbiBjUChIKXtpZighSHx8IUguU2hlZXROYW1lc3x8IUguU2hlZXRzKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBXb3JrYm9vayIpO2lmKCFILlNoZWV0TmFtZXMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiV29y''@;'; + put 'put ''a2Jvb2sgaXMgZW1wdHkiKTshZnVuY3Rpb24gdVAoSCxyZSxYKXtILmZvckVhY2goZnVuY3Rpb24od2UseGUpe0J4KHdlKTtmb3IodmFyIEZlPTA7RmU8eGU7KytGZSlpZih3ZT09SFtGZV0pdGhyb3cgbmV3IEVycm9yKCJEdXBsaWNhdGUgU2hlZXQgTmFtZTogIit3ZSk7aWYoWCl7dmFyIFpl''@;'; + put 'put ''PXJlJiZyZVt4ZV0mJnJlW3hlXS5Db2RlTmFtZXx8d2U7aWYoOTU9PVplLmNoYXJDb2RlQXQoMCkmJlplLmxlbmd0aD4yMil0aHJvdyBuZXcgRXJyb3IoIkJhZCBDb2RlIE5hbWU6IFdvcmtzaGVldCIrWmUpfX0pfShILlNoZWV0TmFtZXMsSC5Xb3JrYm9vayYmSC5Xb3JrYm9vay5TaGVldHN8''@;'; + put 'put ''fFtdLCEhSC52YmFyYXcpO2Zvcih2YXIgWD0wO1g8SC5TaGVldE5hbWVzLmxlbmd0aDsrK1gpaUEoSC5TaGVldHNbSC5TaGVldE5hbWVzW1hdXSwwLFgpfShIKTt2YXIgWD1yZXx8e307aWYoWC5jZWxsU3R5bGVzJiYoWC5jZWxsTkY9ITAsWC5zaGVldFN0dWJzPSEwKSwiYXJyYXkiPT1YLnR5''@;'; + put 'put ''cGUpe1gudHlwZT0iYmluYXJ5Ijt2YXIgd2U9bjcoSCxYKTtyZXR1cm4gWC50eXBlPSJhcnJheSIsbmUod2UpfXN3aXRjaChYLmJvb2tUeXBlfHwieGxzYiIpe2Nhc2UieG1sIjpjYXNlInhsbWwiOnJldHVybiBqMyhTQShILFgpLFgpO2Nhc2Uic2xrIjpjYXNlInN5bGsiOnJldHVybiBqMyhv''@;'; + put 'put ''QyhILFgpLFgpO2Nhc2UiaHRtIjpjYXNlImh0bWwiOnJldHVybiBqMyhOZChILFgpLFgpO2Nhc2UidHh0IjpyZXR1cm4gZnVuY3Rpb24gY0MoSCxyZSl7c3dpdGNoKHJlLnR5cGUpe2Nhc2UiYmFzZTY0IjpyZXR1cm4gU2UuZW5jb2RlKEgpO2Nhc2UiYmluYXJ5IjpjYXNlInN0cmluZyI6cmV0''@;'; + put 'put ''dXJuIEg7Y2FzZSJmaWxlIjpyZXR1cm4gaHQocmUuZmlsZSxILCJiaW5hcnkiKTtjYXNlImJ1ZmZlciI6cmV0dXJuIEllP1RlKEgsImJpbmFyeSIpOkguc3BsaXQoIiIpLm1hcChmdW5jdGlvbihYKXtyZXR1cm4gWC5jaGFyQ29kZUF0KDApfSl9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6''@;'; + put 'put ''ZWQgdHlwZSAiK3JlLnR5cGUpfShsVChILFgpLFgpO2Nhc2UiY3N2IjpyZXR1cm4gajMoVEEoSCxYKSxYLCJcdWZlZmYiKTtjYXNlImRpZiI6cmV0dXJuIGozKGFDKEgsWCksWCk7Y2FzZSJkYmYiOnJldHVybiBmQyhsQyhILFgpLFgpO2Nhc2UicHJuIjpyZXR1cm4gajMoc2koSCxYKSxYKTtj''@;'; + put 'put ''YXNlInJ0ZiI6cmV0dXJuIGozKFJQKEgsWCksWCk7Y2FzZSJldGgiOnJldHVybiBqMyhWbChILFgpLFgpO2Nhc2UiZm9kcyI6cmV0dXJuIGozKHhBKEgsWCksWCk7Y2FzZSJiaWZmMiI6WC5iaWZmfHwoWC5iaWZmPTIpO2Nhc2UiYmlmZjMiOlguYmlmZnx8KFguYmlmZj0zKTtjYXNlImJpZmY0''@;'; + put 'put ''IjpyZXR1cm4gWC5iaWZmfHwoWC5iaWZmPTQpLGZDKFhtKEgsWCksWCk7Y2FzZSJiaWZmNSI6WC5iaWZmfHwoWC5iaWZmPTUpO2Nhc2UiYmlmZjgiOmNhc2UieGxhIjpjYXNlInhscyI6cmV0dXJuIFguYmlmZnx8KFguYmlmZj04KSxmdW5jdGlvbiBEQShILHJlKXt2YXIgWD1yZXx8e307cmV0''@;'; + put 'put ''dXJuIFNjKGZ1bmN0aW9uIE1QKEgscmUpe3ZhciBYPXJlfHx7fSx3ZT12dC51dGlscy5jZmJfbmV3KHtyb290OiJSIn0pLHhlPSIvV29ya2Jvb2siO3N3aXRjaChYLmJvb2tUeXBlfHwieGxzIil7Y2FzZSJ4bHMiOlguYm9va1R5cGU9ImJpZmY4IjtjYXNlInhsYSI6WC5ib29rVHlwZXx8KFgu''@;'; + put 'put ''Ym9va1R5cGU9InhsYSIpO2Nhc2UiYmlmZjgiOnhlPSIvV29ya2Jvb2siLFguYmlmZj04O2JyZWFrO2Nhc2UiYmlmZjUiOnhlPSIvQm9vayIsWC5iaWZmPTU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgdHlwZSAiK1guYm9va1R5cGUrIiBmb3IgWExTIENGQiIpfXJl''@;'; + put 'put ''dHVybiB2dC51dGlscy5jZmJfYWRkKHdlLHhlLFhtKEgsWCkpLDg9PVguYmlmZiYmKEguUHJvcHN8fEguQ3VzdHByb3BzKSYmZnVuY3Rpb24gdFQoSCxyZSl7dmFyIFplLFg9W10sd2U9W10seGU9W10sRmU9MDtpZihILlByb3BzKWZvcihaZT1vbihILlByb3BzKSxGZT0wO0ZlPFplLmxlbmd0''@;'; + put 'put ''aDsrK0ZlKShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmMsWmVbRmVdKT9YOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkdixaZVtGZV0pP3dlOnhlKS5wdXNoKFtaZVtGZV0sSC5Qcm9wc1taZVtGZV1dXSk7aWYoSC5DdXN0cHJvcHMpZm9yKFpl''@;'; + put 'put ''PW9uKEguQ3VzdHByb3BzKSxGZT0wO0ZlPFplLmxlbmd0aDsrK0ZlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChILlByb3BzfHx7fSxaZVtGZV0pfHwoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZjLFplW0ZlXSk/WDpPYmplY3QucHJvdG90eXBl''@;'; + put 'put ''Lmhhc093blByb3BlcnR5LmNhbGwoZHYsWmVbRmVdKT93ZTp4ZSkucHVzaChbWmVbRmVdLEguQ3VzdHByb3BzW1plW0ZlXV1dKTt2YXIgamU9W107Zm9yKEZlPTA7RmU8eGUubGVuZ3RoOysrRmUpSTguaW5kZXhPZih4ZVtGZV1bMF0pPi0xfHxudWxsIT14ZVtGZV1bMV0mJmplLnB1c2goeGVb''@;'; + put 'put ''RmVdKTt3ZS5sZW5ndGgmJnZ0LnV0aWxzLmNmYl9hZGQocmUsIi9ceDA1U3VtbWFyeUluZm9ybWF0aW9uIixhMCh3ZSxFNV9TSSxkdixVcCkpLChYLmxlbmd0aHx8amUubGVuZ3RoKSYmdnQudXRpbHMuY2ZiX2FkZChyZSwiL1x4MDVEb2N1bWVudFN1bW1hcnlJbmZvcm1hdGlvbiIsYTAoWCxF''@;'; + put 'put ''NV9EU0ksdmMsdGIsamUubGVuZ3RoP2plOm51bGwsIjA1ZDVjZGQ1OWMyZTFiMTA5Mzk3MDgwMDJiMmNmOWFlIikpfShILHdlKSw4PT1YLmJpZmYmJkgudmJhcmF3JiZmdW5jdGlvbiBrbShILHJlKXtyZS5GdWxsUGF0aHMuZm9yRWFjaChmdW5jdGlvbihYLHdlKXtpZigwIT13ZSl7dmFyIHhl''@;'; + put 'put ''PVgucmVwbGFjZSgvW15cL10qW1wvXS8sIi9fVkJBX1BST0pFQ1RfQ1VSLyIpOyIvIiE9PXhlLnNsaWNlKC0xKSYmdnQudXRpbHMuY2ZiX2FkZChILHhlLHJlLkZpbGVJbmRleFt3ZV0uY29udGVudCl9fSl9KHdlLHZ0LnJlYWQoSC52YmFyYXcse3R5cGU6InN0cmluZyI9PXR5cGVvZiBILnZi''@;'; + put 'put ''YXJhdz8iYmluYXJ5IjoiYnVmZmVyIn0pKSx3ZX0oSCxYKSxYKX0oSCxYKTtjYXNlInhsc3giOmNhc2UieGxzbSI6Y2FzZSJ4bGFtIjpjYXNlInhsc2IiOmNhc2Uib2RzIjpyZXR1cm4gZnVuY3Rpb24gdDcoSCxyZSl7dmFyIFg9cmV8fHt9LHdlPVZkKEgsWCkseGU9e307aWYoWC5jb21wcmVz''@;'; + put 'put ''c2lvbiYmKHhlLmNvbXByZXNzaW9uPSJERUZMQVRFIiksWC5wYXNzd29yZCl4ZS50eXBlPUllPyJub2RlYnVmZmVyIjoic3RyaW5nIjtlbHNlIHN3aXRjaChYLnR5cGUpe2Nhc2UiYmFzZTY0Ijp4ZS50eXBlPSJiYXNlNjQiO2JyZWFrO2Nhc2UiYmluYXJ5Ijp4ZS50eXBlPSJzdHJpbmciO2Jy''@;'; + put 'put ''ZWFrO2Nhc2Uic3RyaW5nIjp0aHJvdyBuZXcgRXJyb3IoIidzdHJpbmcnIG91dHB1dCB0eXBlIGludmFsaWQgZm9yICciK1guYm9va1R5cGUrIicgZmlsZXMiKTtjYXNlImJ1ZmZlciI6Y2FzZSJmaWxlIjp4ZS50eXBlPUllPyJub2RlYnVmZmVyIjoic3RyaW5nIjticmVhaztkZWZhdWx0OnRo''@;'; + put 'put ''cm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitYLnR5cGUpfXZhciBGZT13ZS5GdWxsUGF0aHM/dnQud3JpdGUod2Use2ZpbGVUeXBlOiJ6aXAiLHR5cGU6e25vZGVidWZmZXI6ImJ1ZmZlciIsc3RyaW5nOiJiaW5hcnkifVt4ZS50eXBlXXx8eGUudHlwZX0pOndlLmdlbmVyYXRl''@;'; + put 'put ''KHhlKTtyZXR1cm4gWC5wYXNzd29yZCYmdm9pZCAwIT09U2Y/U2MoU2YoRmUsWC5wYXNzd29yZCksWCk6ImZpbGUiPT09WC50eXBlP2h0KFguZmlsZSxGZSk6InN0cmluZyI9PVgudHlwZT9XMChGZSk6RmV9KEgsWCk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBib29r''@;'; + put 'put ''VHlwZSB8IitYLmJvb2tUeXBlKyJ8Iil9fWZ1bmN0aW9uIGhDKEgpe2lmKCFILmJvb2tUeXBlKXt2YXIgWD1ILmZpbGUuc2xpY2UoSC5maWxlLmxhc3RJbmRleE9mKCIuIikpLnRvTG93ZXJDYXNlKCk7WC5tYXRjaCgvXlwuW2Etel0rJC8pJiYoSC5ib29rVHlwZT1YLnNsaWNlKDEpKSxILmJv''@;'; + put 'put ''b2tUeXBlPXt4bHM6ImJpZmY4IixodG06Imh0bWwiLHNsazoic3lsayIsc29jaWFsY2FsYzoiZXRoIixTaDMzdEpTOiJXVEYifVtILmJvb2tUeXBlXXx8SC5ib29rVHlwZX19ZnVuY3Rpb24gZEMoSCxyZSxYKXt2YXIgd2U9WHx8e307cmV0dXJuIHdlLnR5cGU9ImZpbGUiLHdlLmZpbGU9cmUs''@;'; + put 'put ''aEMod2UpLG43KEgsd2UpfWZ1bmN0aW9uIEs0KEgscmUsWCx3ZSx4ZSxGZSxaZSxqZSl7dmFyIFllPVhhKFgpLE10PWplLmRlZnZhbCx4dD1qZS5yYXcsUnQ9ITAsWXQ9MT09PXhlP1tdOnt9O2lmKDEhPT14ZSlpZihPYmplY3QuZGVmaW5lUHJvcGVydHkpdHJ5e09iamVjdC5kZWZpbmVQcm9w''@;'; + put 'put ''ZXJ0eShZdCwiX19yb3dOdW1fXyIse3ZhbHVlOlgsZW51bWVyYWJsZTohMX0pfWNhdGNoKHp0KXtZdC5fX3Jvd051bV9fPVh9ZWxzZSBZdC5fX3Jvd051bV9fPVg7aWYoIVplfHxIW1hdKWZvcih2YXIgbm49cmUucy5jO25uPD1yZS5lLmM7Kytubil7dmFyIENuPVplP0hbWF1bbm5dOkhbd2Vb''@;'; + put 'put ''bm5dK1llXTtpZih2b2lkIDAhPT1DbiYmdm9pZCAwIT09Q24udCl7dmFyIER0PUNuLnY7c3dpdGNoKENuLnQpe2Nhc2UieiI6aWYobnVsbD09RHQpYnJlYWs7Y29udGludWU7Y2FzZSJlIjpEdD0wPT1EdD9udWxsOnZvaWQgMDticmVhaztjYXNlInMiOmNhc2UiZCI6Y2FzZSJiIjpjYXNlIm4i''@;'; + put 'put ''OmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgdHlwZSAiK0NuLnQpfWlmKG51bGwhPUZlW25uXSl7aWYobnVsbD09RHQpaWYoImUiPT1Dbi50JiZudWxsPT09RHQpWXRbRmVbbm5dXT1udWxsO2Vsc2UgaWYodm9pZCAwIT09TXQpWXRbRmVbbm5dXT1NdDtlbHNl''@;'; + put 'put ''e2lmKCF4dHx8bnVsbCE9PUR0KWNvbnRpbnVlO1l0W0ZlW25uXV09bnVsbH1lbHNlIFl0W0ZlW25uXV09eHQ/RHQ6eTEoQ24sRHQsamUpO251bGwhPUR0JiYoUnQ9ITEpfX1lbHNle2lmKHZvaWQgMD09PU10KWNvbnRpbnVlO251bGwhPUZlW25uXSYmKFl0W0ZlW25uXV09TXQpfX1yZXR1cm57''@;'; + put 'put ''cm93Oll0LGlzZW1wdHk6UnR9fWZ1bmN0aW9uIExBKEgscmUpe2lmKG51bGw9PUh8fG51bGw9PUhbIiFyZWYiXSlyZXR1cm5bXTt2YXIgWD17dDoibiIsdjowfSx3ZT0wLHhlPTEsRmU9W10sWmU9MCxqZT0iIixZZT1KU09OLnBhcnNlKCd7InMiOnsiciI6MCwiYyI6MH0sImUiOnsiciI6MCwi''@;'; + put 'put ''YyI6MH19JyksTXQ9cmV8fHt9LHh0PW51bGwhPU10LnJhbmdlP010LnJhbmdlOkhbIiFyZWYiXTtzd2l0Y2goMT09PU10LmhlYWRlcj93ZT0xOiJBIj09PU10LmhlYWRlcj93ZT0yOkFycmF5LmlzQXJyYXkoTXQuaGVhZGVyKT93ZT0zOm51bGw9PU10LmhlYWRlciYmKHdlPTApLHR5cGVvZiB4''@;'; + put 'put ''dCl7Y2FzZSJzdHJpbmciOlllPUZvKHh0KTticmVhaztjYXNlIm51bWJlciI6KFllPUZvKEhbIiFyZWYiXSkpLnMucj14dDticmVhaztkZWZhdWx0OlllPXh0fXdlPjAmJih4ZT0wKTt2YXIgUnQ9WGEoWWUucy5yKSxZdD1bXSxubj1bXSxDbj0wLER0PTAsenQ9QXJyYXkuaXNBcnJheShIKSxQ''@;'; + put 'put ''bj1ZZS5zLnIsVG49MCxPbj0wO2Zvcih6dCYmIUhbUG5dJiYoSFtQbl09W10pLFRuPVllLnMuYztUbjw9WWUuZS5jOysrVG4pc3dpdGNoKFl0W1RuXT1fYShUbiksWD16dD9IW1BuXVtUbl06SFtZdFtUbl0rUnRdLHdlKXtjYXNlIDE6RmVbVG5dPVRuLVllLnMuYzticmVhaztjYXNlIDI6RmVb''@;'; + put 'put ''VG5dPVl0W1RuXTticmVhaztjYXNlIDM6RmVbVG5dPU10LmhlYWRlcltUbi1ZZS5zLmNdO2JyZWFrO2RlZmF1bHQ6Zm9yKG51bGw9PVgmJihYPUpTT04ucGFyc2UoJ3sidyI6ICJfX0VNUFRZIiwgInQiOiAicyJ9JykpLGplPVplPXkxKFgsbnVsbCxNdCksRHQ9MCxPbj0wO09uPEZlLmxlbmd0''@;'; + put 'put ''aDsrK09uKUZlW09uXT09amUmJihqZT1aZSsiXyIrICsrRHQpO0ZlW1RuXT1qZX1mb3IoUG49WWUucy5yK3hlO1BuPD1ZZS5lLnI7KytQbil7dmFyIFduPUs0KEgsWWUsUG4sWXQsd2UsRmUsenQsTXQpOyghMT09PVduLmlzZW1wdHl8fCgxPT09d2U/ITEhPT1NdC5ibGFua3Jvd3M6TXQuYmxh''@;'; + put 'put ''bmtyb3dzKSkmJihubltDbisrXT1Xbi5yb3cpfXJldHVybiBubi5sZW5ndGg9Q24sbm59dmFyIEI2PS8iL2c7ZnVuY3Rpb24gdGkoSCxyZSxYLHdlLHhlLEZlLFplLGplKXtmb3IodmFyIFllPSEwLE10PVtdLHh0PSIiLFJ0PVhhKFgpLFl0PXJlLnMuYztZdDw9cmUuZS5jOysrWXQpaWYod2Vb''@;'; + put 'put ''WXRdKXt2YXIgbm49amUuZGVuc2U/KEhbWF18fFtdKVtZdF06SFt3ZVtZdF0rUnRdO2lmKG51bGw9PW5uKXh0PSIiO2Vsc2UgaWYobnVsbCE9bm4udil7WWU9ITEseHQ9IiIreTEobm4sbnVsbCxqZSk7Zm9yKHZhciBDbj0wLER0PTA7Q24hPT14dC5sZW5ndGg7KytDbilpZigoRHQ9eHQuY2hh''@;'; + put 'put ''ckNvZGVBdChDbikpPT09eGV8fER0PT09RmV8fDM0PT09RHQpe3h0PSciJyt4dC5yZXBsYWNlKEI2LCciIicpKyciJzticmVha30iSUQiPT14dCYmKHh0PSciSUQiJyl9ZWxzZSBudWxsPT1ubi5mfHxubi5GP3h0PSIiOihZZT0hMSwoeHQ9Ij0iK25uLmYpLmluZGV4T2YoIiwiKT49MCYmKHh0''@;'; + put 'put ''PSciJyt4dC5yZXBsYWNlKEI2LCciIicpKyciJykpO010LnB1c2goeHQpfXJldHVybiExPT09amUuYmxhbmtyb3dzJiZZZT9udWxsOk10LmpvaW4oWmUpfWZ1bmN0aW9uIEw1KEgscmUpe3ZhciBYPVtdLHdlPW51bGw9PXJlP3t9OnJlO2lmKG51bGw9PUh8fG51bGw9PUhbIiFyZWYiXSlyZXR1''@;'; + put 'put ''cm4iIjt2YXIgeGU9Rm8oSFsiIXJlZiJdKSxGZT12b2lkIDAhPT13ZS5GUz93ZS5GUzoiLCIsWmU9RmUuY2hhckNvZGVBdCgwKSxqZT12b2lkIDAhPT13ZS5SUz93ZS5SUzoiXG4iLFllPWplLmNoYXJDb2RlQXQoMCksTXQ9bmV3IFJlZ0V4cCgoInwiPT1GZT8iXFx8IjpGZSkrIiskIikseHQ9''@;'; + put 'put ''IiIsUnQ9W107d2UuZGVuc2U9QXJyYXkuaXNBcnJheShIKTtmb3IodmFyIFl0PXdlLnNraXBIaWRkZW4mJkhbIiFjb2xzIl18fFtdLG5uPXdlLnNraXBIaWRkZW4mJkhbIiFyb3dzIl18fFtdLENuPXhlLnMuYztDbjw9eGUuZS5jOysrQ24pKFl0W0NuXXx8e30pLmhpZGRlbnx8KFJ0W0NuXT1f''@;'; + put 'put ''YShDbikpO2Zvcih2YXIgRHQ9eGUucy5yO0R0PD14ZS5lLnI7KytEdCkobm5bRHRdfHx7fSkuaGlkZGVufHxudWxsIT0oeHQ9dGkoSCx4ZSxEdCxSdCxaZSxZZSxGZSx3ZSkpJiYod2Uuc3RyaXAmJih4dD14dC5yZXBsYWNlKE10LCIiKSksWC5wdXNoKHh0K2plKSk7cmV0dXJuIGRlbGV0ZSB3''@;'; + put 'put ''ZS5kZW5zZSxYLmpvaW4oIiIpfWZ1bmN0aW9uIHBDKEgscmUpe3JlfHwocmU9e30pLHJlLkZTPSJcdCIscmUuUlM9IlxuIjt2YXIgWD1MNShILHJlKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGNwdGFibGV8fCJzdHJpbmciPT1yZS50eXBlKXJldHVybiBYO3ZhciB3ZT1jcHRhYmxlLnV0aWxz''@;'; + put 'put ''LmVuY29kZSgxMjAwLFgsInN0ciIpO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSkrU3RyaW5nLmZyb21DaGFyQ29kZSgyNTQpK3dlfWZ1bmN0aW9uIGdDKEgpe3ZhciBYLHJlPSIiLHdlPSIiO2lmKG51bGw9PUh8fG51bGw9PUhbIiFyZWYiXSlyZXR1cm5bXTt2YXIgamUseGU9Rm8o''@;'; + put 'put ''SFsiIXJlZiJdKSxGZT0iIixaZT1bXSxZZT1bXSxNdD1BcnJheS5pc0FycmF5KEgpO2ZvcihqZT14ZS5zLmM7amU8PXhlLmUuYzsrK2plKVplW2plXT1fYShqZSk7Zm9yKHZhciB4dD14ZS5zLnI7eHQ8PXhlLmUucjsrK3h0KWZvcihGZT1YYSh4dCksamU9eGUucy5jO2plPD14ZS5lLmM7Kytq''@;'; + put 'put ''ZSlpZihyZT1aZVtqZV0rRmUsd2U9IiIsdm9pZCAwIT09KFg9TXQ/KEhbeHRdfHxbXSlbamVdOkhbcmVdKSl7aWYobnVsbCE9WC5GKXtpZihyZT1YLkYsIVguZiljb250aW51ZTt3ZT1YLmYsLTE9PXJlLmluZGV4T2YoIjoiKSYmKHJlPXJlKyI6IityZSl9aWYobnVsbCE9WC5mKXdlPVguZjtl''@;'; + put 'put ''bHNle2lmKCJ6Ij09WC50KWNvbnRpbnVlO2lmKCJuIj09WC50JiZudWxsIT1YLnYpd2U9IiIrWC52O2Vsc2UgaWYoImIiPT1YLnQpd2U9WC52PyJUUlVFIjoiRkFMU0UiO2Vsc2UgaWYodm9pZCAwIT09WC53KXdlPSInIitYLnc7ZWxzZXtpZih2b2lkIDA9PT1YLnYpY29udGludWU7d2U9InMi''@;'; + put 'put ''PT1YLnQ/IiciK1gudjoiIitYLnZ9fVllW1llLmxlbmd0aF09cmUrIj0iK3dlfXJldHVybiBZZX1mdW5jdGlvbiBjVChILHJlLFgpe3ZhciB3ZT1YfHx7fSx4ZT0rIXdlLnNraXBIZWFkZXIsRmU9SHx8e30sWmU9MCxqZT0wO2lmKEZlJiZudWxsIT13ZS5vcmlnaW4paWYoIm51bWJlciI9PXR5''@;'; + put 'put ''cGVvZiB3ZS5vcmlnaW4pWmU9d2Uub3JpZ2luO2Vsc2V7dmFyIFllPSJzdHJpbmciPT10eXBlb2Ygd2Uub3JpZ2luP3VsKHdlLm9yaWdpbik6d2Uub3JpZ2luO1plPVllLnIsamU9WWUuY312YXIgTXQseHQ9SlNPTi5wYXJzZSgneyJzIjogeyJjIjowLCAiciI6MH0sICJlIjogeyJjIjowLCAi''@;'; + put 'put ''ciI6MH19Jyk7aWYoeHQuZS5jPWplLHh0LmUucj1aZStyZS5sZW5ndGgtMSt4ZSxGZVsiIXJlZiJdKXt2YXIgUnQ9Rm8oRmVbIiFyZWYiXSk7eHQuZS5jPU1hdGgubWF4KHh0LmUuYyxSdC5lLmMpLHh0LmUucj1NYXRoLm1heCh4dC5lLnIsUnQuZS5yKSwtMT09WmUmJih4dC5lLnI9KFplPVJ0''@;'; + put 'put ''LmUucisxKStyZS5sZW5ndGgtMSt4ZSl9ZWxzZS0xPT1aZSYmKFplPTAseHQuZS5yPXJlLmxlbmd0aC0xK3hlKTt2YXIgWXQ9d2UuaGVhZGVyfHxbXSxubj0wO3JlLmZvckVhY2goZnVuY3Rpb24oRHQsenQpe29uKER0KS5mb3JFYWNoKGZ1bmN0aW9uKFBuKXstMT09KG5uPVl0LmluZGV4T2Yo''@;'; + put 'put ''UG4pKSYmKFl0W25uPVl0Lmxlbmd0aF09UG4pO3ZhciBUbj1EdFtQbl0sT249InoiLFduPSIiLE1yPVkwKHtjOmplK25uLHI6WmUrenQreGV9KTtpZihNdD1hYy5zaGVldF9nZXRfY2VsbChGZSxNciksIVRufHwib2JqZWN0IiE9dHlwZW9mIFRufHxUbiBpbnN0YW5jZW9mIERhdGUpe2lmKCJu''@;'; + put 'put ''dW1iZXIiPT10eXBlb2YgVG4/T249Im4iOiJib29sZWFuIj09dHlwZW9mIFRuP09uPSJiIjoic3RyaW5nIj09dHlwZW9mIFRuP09uPSJzIjpUbiBpbnN0YW5jZW9mIERhdGU/KE9uPSJkIix3ZS5jZWxsRGF0ZXN8fChPbj0ibiIsVG49ZnQoVG4pKSxXbj1NdC56JiZGLmlzX2RhdGUoTXQueik/''@;'; + put 'put ''TXQuejp3ZS5kYXRlTkZ8fEYuX3RhYmxlWzE0XSk6bnVsbD09PVRuJiZ3ZS5udWxsRXJyb3ImJihPbj0iZSIsVG49MCksTXQ/KE10LnQ9T24sTXQudj1UbixkZWxldGUgTXQudyxkZWxldGUgTXQuUixXbiYmKE10Lno9V24pKTpGZVtNcl09TXQ9e3Q6T24sdjpUbn0sV24mJihNdC56PVduKSxN''@;'; + put 'put ''dCYmTXQuaCl0cnl7aWYoTXQuUj11cy5odG1sX3RvX3JzKE10LmgpLCFNdC52KXtNdC52PSIiO2Zvcih2YXIgYWk9MDthaTxNdC5SLmxlbmd0aDsrK2FpKU10LnYrPU10LlJbYWldLnZ8fCIifX1jYXRjaCh5cil7fX1lbHNlIEZlW01yXT1Ubn0pfSkseHQuZS5jPU1hdGgubWF4KHh0LmUuYyxq''@;'; + put 'put ''ZStZdC5sZW5ndGgtMSk7dmFyIENuPVhhKFplKTtpZih4ZSlmb3Iobm49MDtubjxZdC5sZW5ndGg7KytubilGZVtfYShubitqZSkrQ25dPXt0OiJzIix2Oll0W25uXX07cmV0dXJuIEZlWyIhcmVmIl09ZmEoeHQpLEZlfXZhciBhYz17ZW5jb2RlX2NvbDpfYSxlbmNvZGVfcm93OlhhLGVuY29k''@;'; + put 'put ''ZV9jZWxsOlkwLGVuY29kZV9yYW5nZTpmYSxkZWNvZGVfY29sOm1oLGRlY29kZV9yb3c6YXMsc3BsaXRfY2VsbDpmdW5jdGlvbiBzbChIKXtyZXR1cm4gSC5yZXBsYWNlKC8oXCQ/W0EtWl0qKShcJD9cZCopLywiJDEsJDIiKS5zcGxpdCgiLCIpfSxkZWNvZGVfY2VsbDp1bCxkZWNvZGVfcmFu''@;'; + put 'put ''Z2U6dnMsZm9ybWF0X2NlbGw6eTEsZ2V0X2Zvcm11bGFlOmdDLG1ha2VfY3N2Okw1LG1ha2VfanNvbjpMQSxtYWtlX2Zvcm11bGFlOmdDLGh0bWxfdG9fcnM6dXMuaHRtbF90b19ycyxzaGVldF9hZGRfYW9hOmxmLHNoZWV0X2FkZF9qc29uOmNULHNoZWV0X2FkZF9kb206VmgsYW9hX3RvX3No''@;'; + put 'put ''ZWV0OmdkLGpzb25fdG9fc2hlZXQ6ZnVuY3Rpb24gYkcoSCxyZSl7cmV0dXJuIGNUKG51bGwsSCxyZSl9LHRhYmxlX3RvX3NoZWV0OnRDLHRhYmxlX3RvX2Jvb2s6ZnVuY3Rpb24gVDUoSCxyZSl7cmV0dXJuIHcxKHRDKEgscmUpLHJlKX0sc2hlZXRfdG9fY3N2Okw1LHNoZWV0X3RvX3R4dDpw''@;'; + put 'put ''QyxzaGVldF90b19qc29uOkxBLHNoZWV0X3RvX2h0bWw6dXMuZnJvbV9zaGVldCxzaGVldF90b19mb3JtdWxhZTpnQyxzaGVldF90b19yb3dfb2JqZWN0X2FycmF5OkxBfTtmdW5jdGlvbiBOcyhILHJlLFgsd2UseGUpe3ZhciBGZTtpZihILnN0eWxlJiYhKEguX3JhbmdlJiYoRmU9InN0cmlu''@;'; + put 'put ''ZyI9PXR5cGVvZiBILl9yYW5nZT9VLnV0aWxzLmRlY29kZV9yYW5nZShILl9yYW5nZSk6SC5fcmFuZ2UsWC5jPkZlLmUuY3x8WC5jPEZlLnMuY3x8WC5yPkZlLmUucnx8WC5yPEZlLnMucikpJiZGZSl7dmFyIFplPUguc3R5bGUuc3R5bGU7aWYoWmUpe1plLndob2xlVGFibGUmJmFjLmFwcGx5''@;'; + put 'put ''X3N0eWxlX2RlbHRhKHdlLFplLndob2xlVGFibGUpO2U6aWYoWmUuaGVhZGVyUm93KWlmKHhlKXtpZihYLnIhPUZlLnMucilicmVhayBlO25yKEguc3R5bGUuY29saGVhZCl8fGFjLmFwcGx5X3N0eWxlX2RlbHRhKHdlLFplLmhlYWRlclJvdyl9ZWxzZXtpZihYLnIhPUZlLnMucilicmVhayBl''@;'; + put 'put ''O25yKEguaGVhZGVyKXx8YWMuYXBwbHlfc3R5bGVfZGVsdGEod2UsWmUuaGVhZGVyUm93KX19fX12b2lkIDAhPT1zVCYmKGFjLnRlc3RfcGFzc3dvcmQ9c1QpLHZvaWQgMCE9PUxpJiYoYWMuaGFzaF9wYXNzd29yZD1MaSksYWMuc2hlZXRfc2V0X3JhbmdlX3N0eWxlPWZ1bmN0aW9uKEgscmUs''@;'; + put 'put ''WCl7aWYoWCl7dmFyIHdlPSJzdHJpbmciPT10eXBlb2YgcmU/Rm8ocmUpOnJlO251bGwhPXdlLnImJm51bGwhPXdlLmMmJih3ZT17czp3ZSxlOndlfSk7dmFyIGplLHhlPXdlLnMucixGZT0wLFplPSIiLFllPXZzKEhbIiFyZWYiXXx8IkExIik7WWUucy5yPndlLnMuciYmKFllLnMucj13ZS5z''@;'; + put 'put ''LnIpLFllLnMuYz53ZS5zLmMmJihZZS5zLmM9d2Uucy5jKSxZZS5lLnI8d2UuZS5yJiYoWWUuZS5yPXdlLmUuciksWWUuZS5jPHdlLmUuYyYmKFllLmUuYz13ZS5lLmMpLEhbIiFyZWYiXT1mYShZZSk7Zm9yKHZhciB4dD1BcnJheS5pc0FycmF5KEgpO3hlPD13ZS5lLnI7Kyt4ZSlmb3IoRmU9''@;'; + put 'put ''d2Uucy5jO0ZlPD13ZS5lLmM7KytGZSl4dD8oSFt4ZV18fChIW3hlXT1bXSksSFt4ZV1bRmVdfHwoSFt4ZV1bRmVdPXt0OiJ6In0pLGplPUhbeGVdW0ZlXSk6KEhbWmU9WTAoe3I6eGUsYzpGZX0pXXx8KEhbWmVdPXt0OiJ6In0pLGplPUhbWmVdKSxqZS5zfHwoamUucz17fSksT2JqZWN0Lmtl''@;'; + put 'put ''eXMoWCkuZm9yRWFjaChNdCksamUucy5wYXR0ZXJuVHlwZSYmIWplLnMuZmdDb2xvciYmKGRlbGV0ZSBqZS5zLnBhdHRlcm5UeXBlLGRlbGV0ZSBqZS5zLmJnQ29sb3IpLChqZS5zLmZnQ29sb3J8fGplLnMuYmdDb2xvcikmJiJub25lIj09KGplLnMucGF0dGVyblR5cGV8fCJub25lIikmJihq''@;'; + put 'put ''ZS5zLnBhdHRlcm5UeXBlPSJzb2xpZCIpO2lmKHhlPXdlLnMucixYLnRvcHx8bnVsbD09PVgudG9wKWZvcihGZT13ZS5zLmM7RmU8PXdlLmUuYzsrK0ZlKXtpZih4dCl7aWYoIUhbeGVdKWNvbnRpbnVlO2plPUhbeGVdW0ZlXX1lbHNlIFplPVkwKHtyOnhlLGM6RmV9KSxqZT1IW1plXTshamV8''@;'; + put 'put ''fChudWxsPT09WC50b3A/ZGVsZXRlIGplLnMudG9wOmplLnMudG9wPWxuKFgudG9wKSl9aWYoeGU9d2UuZS5yLFguYm90dG9tfHxudWxsPT09WC5ib3R0b20pZm9yKEZlPXdlLnMuYztGZTw9d2UuZS5jOysrRmUpe2lmKHh0KXtpZighSFt4ZV0pY29udGludWU7amU9SFt4ZV1bRmVdfWVsc2Ug''@;'; + put 'put ''WmU9WTAoe3I6eGUsYzpGZX0pLGplPUhbWmVdOyFqZXx8KG51bGw9PT1YLmJvdHRvbT9kZWxldGUgamUucy5ib3R0b206amUucy5ib3R0b209bG4oWC5ib3R0b20pKX1pZihGZT13ZS5zLmMsWC5sZWZ0fHxudWxsPT09WC5sZWZ0KWZvcih4ZT13ZS5zLnI7eGU8PXdlLmUucjsrK3hlKXtpZih4''@;'; + put 'put ''dCl7aWYoIUhbeGVdKWNvbnRpbnVlO2plPUhbeGVdW0ZlXX1lbHNlIFplPVkwKHtyOnhlLGM6RmV9KSxqZT1IW1plXTshamV8fChudWxsPT09WC5sZWZ0P2RlbGV0ZSBqZS5zLmxlZnQ6amUucy5sZWZ0PWxuKFgubGVmdCkpfWlmKEZlPXdlLmUuYyxYLnJpZ2h0fHxudWxsPT09WC5yaWdodClm''@;'; + put 'put ''b3IoeGU9d2Uucy5yO3hlPD13ZS5lLnI7Kyt4ZSl7aWYoeHQpe2lmKCFIW3hlXSljb250aW51ZTtqZT1IW3hlXVtGZV19ZWxzZSBaZT1ZMCh7cjp4ZSxjOkZlfSksamU9SFtaZV07IWplfHwobnVsbD09PVgucmlnaHQ/ZGVsZXRlIGplLnMucmlnaHQ6amUucy5yaWdodD1sbihYLnJpZ2h0KSl9''@;'; + put 'put ''fWZ1bmN0aW9uIE10KFJ0KXtpZigidG9wIiE9UnQmJiJib3R0b20iIT1SdCYmImxlZnQiIT1SdCYmInJpZ2h0IiE9UnQpe2lmKCJ6Ij09UnQpcmV0dXJuIHZvaWQoamUuej1YLnopO2lmKCJhbGlnbm1lbnQiPT1SdClyZXR1cm4gdm9pZChqZS5zW1J0XT9PYmplY3Qua2V5cyhYW1J0XSkuZm9y''@;'; + put 'put ''RWFjaChmdW5jdGlvbihZdCl7amUuc1tSdF1bWXRdPVhbUnRdW1l0XX0pOmplLnNbUnRdPWxuKFhbUnRdKSk7aWYoImluY29sIj09UnQpcmV0dXJuIEZlPndlLnMuYyYmKG51bGw9PT1YLmxlZnQ/ZGVsZXRlIGplLnMubGVmdDpqZS5zLmxlZnQ9Im9iamVjdCI9PXR5cGVvZiBYW1J0XT9sbihY''@;'; + put 'put ''W1J0XSk6WFtSdF0pLHZvaWQoRmU8d2UuZS5jJiYobnVsbD09PVgucmlnaHQ/ZGVsZXRlIGplLnMucmlnaHQ6amUucy5yaWdodD0ib2JqZWN0Ij09dHlwZW9mIFhbUnRdP2xuKFhbUnRdKTpYW1J0XSkpO2lmKCJpbnJvdyI9PVJ0KXJldHVybiB4ZT53ZS5zLnImJihudWxsPT09WC50b3A/ZGVs''@;'; + put 'put ''ZXRlIGplLnMudG9wOmplLnMudG9wPSJvYmplY3QiPT10eXBlb2YgWFtSdF0/bG4oWFtSdF0pOlhbUnRdKSx2b2lkKHhlPHdlLmUuciYmKG51bGw9PT1YLmJvdHRvbT9kZWxldGUgamUucy5ib3R0b206amUucy5ib3R0b209Im9iamVjdCI9PXR5cGVvZiBYW1J0XT9sbihYW1J0XSk6WFtSdF0p''@;'; + put 'put ''KTtudWxsPT09WFtSdF0/ZGVsZXRlIGplLnNbUnRdOmplLnNbUnRdPVhbUnRdJiZBcnJheS5pc0FycmF5KFhbUnRdKT9YW1J0XS5zbGljZSgpLm1hcChmdW5jdGlvbihZdCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBZdD9sbihZdCk6WXR9KToib2JqZWN0Ij09dHlwZW9mIFhbUnRdP2xuKFhb''@;'; + put 'put ''UnRdKTpYW1J0XX19fSxhYy5hcHBseV9zdHlsZV9kZWx0YT1mdW5jdGlvbihILHJlKXtbInN6IiwiYm9sZCIsIml0YWxpYyIsInVuZGVybGluZSIsInN0cmlrZSIsIm5hbWUiLCJ2YWxpZ24iXS5mb3JFYWNoKGZ1bmN0aW9uKFgpe3ZhciB3ZT1YOyJiZ0NvbG9yIj09WD93ZT0iZmdDb2xvciI6''@;'; + put 'put ''ImZnQ29sb3IiPT1YJiYod2U9ImJnQ29sb3IiKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmUsWCkmJihudWxsPT09cmVbWF0/ZGVsZXRlIEhbd2VdOm51bGwhPXJlW1hdJiYoSFt3ZV09cmVbWF0pKX0pLFsibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIiwiYWxp''@;'; + put 'put ''Z25tZW50IiwicHJvdGVjdGlvbiIsImNvbG9yIiwiZmdDb2xvciIsImJnQ29sb3IiXS5mb3JFYWNoKGZ1bmN0aW9uKFgpe09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZSxYKSYmKG51bGw9PT1yZVtYXT9kZWxldGUgSFtYXTpudWxsIT1yZVtYXSYmKEhbWF09bG4ocmVb''@;'; + put 'put ''WF0pKSl9KX0sYWMuZ2V0X2NvbXB1dGVkX3N0eWxlPWZ1bmN0aW9uKEgscmUpeyJzdHJpbmciPT10eXBlb2YgcmUmJihyZT1VLnV0aWxzLmRlY29kZV9jZWxsKHJlKSk7dmFyIFg9QXJyYXkuaXNBcnJheShIKT8oSFtyZS5yXXx8W10pW3JlLmNdOkhbVS51dGlscy5lbmNvZGVfY2VsbChyZSld''@;'; + put 'put ''LHdlPWxuKFgmJlguc3x8e30pO3JldHVybiBIWyIhdGFibGVzIl0mJkhbIiF0YWJsZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKHhlKXtOcyh4ZSwwLHJlLHdlKX0pLEhbIiFwaXZvdHMiXSYmSFsiIXBpdm90cyJdLmZvckVhY2goZnVuY3Rpb24oeGUpe05zKHhlLDAscmUsd2UsITApfSksd2V9O3Zh''@;'; + put 'put ''ciBaMz17fTthYy5jZWxsX2FycmF5X3RvX2Nzdl9yb3c9ZnVuY3Rpb24oSCxyZSl7dmFyIFg9bnVsbD09cmU/e306cmUsd2U9dm9pZCAwIT09WC5GUz9YLkZTOiIsIix4ZT13ZS5jaGFyQ29kZUF0KDApLEZlPXZvaWQgMCE9PVguUlM/WC5SUzoiXG4iLFplPUZlLmNoYXJDb2RlQXQoMCksamU9''@;'; + put 'put ''WjNbd2VdfHwoWjNbd2VdPW5ldyBSZWdFeHAoKCJ8Ij09d2U/IlxcfCI6d2UpKyIrJCIpKSxZZT1mdW5jdGlvbiBaZChILHJlLFgsd2UseGUpe2Zvcih2YXIgRmU9ITAsWmU9W10samU9IiIsWWU9MDtZZTw9SC5sZW5ndGgtMTsrK1llKXt2YXIgTXQ9SFtZZV07aWYobnVsbD09TXQpamU9IiI7''@;'; + put 'put ''ZWxzZSBpZihudWxsIT1NdC52KXtGZT0hMSxqZT0iIit5MShNdCxudWxsLHhlKTtmb3IodmFyIHh0PTAsUnQ9MDt4dCE9PWplLmxlbmd0aDsrK3h0KWlmKChSdD1qZS5jaGFyQ29kZUF0KHh0KSk9PT1yZXx8UnQ9PT1YfHwzND09PVJ0KXtqZT0nIicramUucmVwbGFjZShCNiwnIiInKSsnIic7''@;'; + put 'put ''YnJlYWt9IklEIj09amUmJihqZT0nIklEIicpfWVsc2UgbnVsbD09TXQuZnx8TXQuRj9qZT0iIjooRmU9ITEsKGplPSI9IitNdC5mKS5pbmRleE9mKCIsIik+PTAmJihqZT0nIicramUucmVwbGFjZShCNiwnIiInKSsnIicpKTtaZS5wdXNoKGplKX1yZXR1cm4hMT09PXhlLmJsYW5rcm93cyYm''@;'; + put 'put ''RmU/bnVsbDpaZS5qb2luKHdlKX0oSCx4ZSxaZSx3ZSxYKTtyZXR1cm4gWC5zdHJpcCYmKFllPVllLnJlcGxhY2UoamUsIiIpKSxZZStGZX0sZnVuY3Rpb24oSCl7ZnVuY3Rpb24gWChGZSxaZSxqZSl7cmV0dXJuIG51bGwhPUZlW1plXT9GZVtaZV06RmVbWmVdPWplfWZ1bmN0aW9uIHdlKEZl''@;'; + put 'put ''LFplLGplKXtpZigic3RyaW5nIj09dHlwZW9mIFplKXtpZihBcnJheS5pc0FycmF5KEZlKSl7dmFyIFllPXVsKFplKTtyZXR1cm4gRmVbWWUucl18fChGZVtZZS5yXT1bXSksRmVbWWUucl1bWWUuY118fChGZVtZZS5yXVtZZS5jXT17dDoieiJ9KX1yZXR1cm4gRmVbWmVdfHwoRmVbWmVdPXt0''@;'; + put 'put ''OiJ6In0pfXJldHVybiB3ZShGZSxZMCgibnVtYmVyIiE9dHlwZW9mIFplP1plOntyOlplLGM6amV8fDB9KSl9SC5jb25zdHM9SC5jb25zdHN8fHt9LEguc2hlZXRfZ2V0X2NlbGw9d2UsSC5ib29rX25ldz1mdW5jdGlvbigpe3JldHVybntTaGVldE5hbWVzOltdLFNoZWV0czp7fX19LEguYm9v''@;'; + put 'put ''a19hcHBlbmRfc2hlZXQ9ZnVuY3Rpb24oRmUsWmUsamUpe2lmKCFqZSlmb3IodmFyIFllPTE7WWU8PTY1NTM1JiYtMSE9RmUuU2hlZXROYW1lcy5pbmRleE9mKGplPSJTaGVldCIrWWUpOysrWWUpO2lmKEJ4KGplKSxGZS5TaGVldE5hbWVzLmluZGV4T2YoamUpPj0wKXRocm93IG5ldyBFcnJv''@;'; + put 'put ''cigiV29ya3NoZWV0IHdpdGggbmFtZSB8IitqZSsifCBhbHJlYWR5IGV4aXN0cyEiKTtGZS5TaGVldE5hbWVzLnB1c2goamUpLEZlLlNoZWV0c1tqZV09WmV9LEguYm9va19zZXRfc2hlZXRfdmlzaWJpbGl0eT1mdW5jdGlvbihGZSxaZSxqZSl7WChGZSwiV29ya2Jvb2siLHt9KSxYKEZlLldv''@;'; + put 'put ''cmtib29rLCJTaGVldHMiLFtdKTt2YXIgWWU9ZnVuY3Rpb24geGUoRmUsWmUpe2lmKCJudW1iZXIiPT10eXBlb2YgWmUpe2lmKFplPj0wJiZGZS5TaGVldE5hbWVzLmxlbmd0aD5aZSlyZXR1cm4gWmU7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBzaGVldCAjICIrWmUpfWlmKCJzdHJp''@;'; + put 'put ''bmciPT10eXBlb2YgWmUpe3ZhciBqZT1GZS5TaGVldE5hbWVzLmluZGV4T2YoWmUpO2lmKGplPi0xKXJldHVybiBqZTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIHNoZWV0IG5hbWUgfCIrWmUrInwiKX10aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIHNoZWV0IHwiK1plKyJ8Iil9''@;'; + put 'put ''KEZlLFplKTtzd2l0Y2goWChGZS5Xb3JrYm9vay5TaGVldHMsWWUse30pLGplKXtjYXNlIDA6Y2FzZSAxOmNhc2UgMjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiQmFkIHNoZWV0IHZpc2liaWxpdHkgc2V0dGluZyAiK2plKX1GZS5Xb3JrYm9vay5TaGVldHNbWWVdLkhpZGRlbj1q''@;'; + put 'put ''ZX0sZnVuY3Rpb24gcmUoRmUpe0ZlLmZvckVhY2goZnVuY3Rpb24oWmUpe0guY29uc3RzW1plWzBdXT1aZVsxXX0pfShbWyJTSEVFVF9WSVNJQkxFIiwwXSxbIlNIRUVUX0hJRERFTiIsMV0sWyJTSEVFVF9WRVJZX0hJRERFTiIsMl1dKSxILmNlbGxfc2V0X251bWJlcl9mb3JtYXQ9ZnVuY3Rp''@;'; + put 'put ''b24oRmUsWmUpe3JldHVybiBGZS56PVplLEZlfSxILmNlbGxfc2V0X2h5cGVybGluaz1mdW5jdGlvbihGZSxaZSxqZSl7cmV0dXJuIFplPyhGZS5sPXtUYXJnZXQ6WmV9LGplJiYoRmUubC5Ub29sdGlwPWplKSxGZS5zfHwoRmUucz17fSksRmUucy5jb2xvcj17dGhlbWU6MTB9KTooZGVsZXRl''@;'; + put 'put ''IEZlLmwsRmUucyYmRmUucy5jb2xvciYmMTA9PUZlLnMuY29sb3IudGhlbWUmJmRlbGV0ZSBGZS5zLmNvbG9yKSxGZX0sSC5jZWxsX3NldF9pbnRlcm5hbF9saW5rPWZ1bmN0aW9uKEZlLFplLGplKXtyZXR1cm4gSC5jZWxsX3NldF9oeXBlcmxpbmsoRmUsIiMiK1plLGplKX0sSC5jZWxsX2Fk''@;'; + put 'put ''ZF9jb21tZW50PWZ1bmN0aW9uKEZlLFplLGplKXtGZS5jfHwoRmUuYz1bXSksRmUuYy5wdXNoKHt0OlplLGE6amV8fCJTaGVldEpTIn0pfSxILnNoZWV0X3NldF9hcnJheV9mb3JtdWxhPWZ1bmN0aW9uKEZlLFplLGplKXtmb3IodmFyIFllPSJzdHJpbmciIT10eXBlb2YgWmU/WmU6Rm8oWmUp''@;'; + put 'put ''LE10PSJzdHJpbmciPT10eXBlb2YgWmU/WmU6ZmEoWmUpLHh0PVllLnMucjt4dDw9WWUuZS5yOysreHQpZm9yKHZhciBSdD1ZZS5zLmM7UnQ8PVllLmUuYzsrK1J0KXt2YXIgWXQ9d2UoRmUseHQsUnQpO1l0LnQ9Im4iLFl0LkY9TXQsZGVsZXRlIFl0LnYseHQ9PVllLnMuciYmUnQ9PVllLnMu''@;'; + put 'put ''YyYmKFl0LmY9amUpfXJldHVybiBGZX19KGFjKSxJZSYmZnVuY3Rpb24oKXt2YXIgSD1MKDI5NSkuUmVhZGFibGU7VS5zdHJlYW09e3RvX2pzb246ZnVuY3Rpb24oeGUsRmUpe3ZhciBaZT1IKHtvYmplY3RNb2RlOiEwfSk7aWYobnVsbD09eGV8fG51bGw9PXhlWyIhcmVmIl0pcmV0dXJuIFpl''@;'; + put 'put ''LnB1c2gobnVsbCksWmU7dmFyIGplPXt0OiJuIix2OjB9LFllPTAsTXQ9MSx4dD1bXSxSdD0wLFl0PSIiLG5uPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX0sQ249RmV8fHt9LER0PW51bGwhPUNuLnJhbmdlP0NuLnJhbmdlOnhlWyIhcmVmIl07c3dpdGNoKDE9PT1Dbi5oZWFkZXI/WWU9MToi''@;'; + put 'put ''QSI9PT1Dbi5oZWFkZXI/WWU9MjpBcnJheS5pc0FycmF5KENuLmhlYWRlcikmJihZZT0zKSx0eXBlb2YgRHQpe2Nhc2Uic3RyaW5nIjpubj1GbyhEdCk7YnJlYWs7Y2FzZSJudW1iZXIiOihubj1Gbyh4ZVsiIXJlZiJdKSkucy5yPUR0O2JyZWFrO2RlZmF1bHQ6bm49RHR9WWU+MCYmKE10PTAp''@;'; + put 'put ''O3ZhciB6dD1YYShubi5zLnIpLFBuPVtdLFRuPTAsT249QXJyYXkuaXNBcnJheSh4ZSksV249bm4ucy5yLE1yPTAsYWk9MDtmb3IoT24mJiF4ZVtXbl0mJih4ZVtXbl09W10pLE1yPW5uLnMuYztNcjw9bm4uZS5jOysrTXIpc3dpdGNoKFBuW01yXT1fYShNciksamU9T24/eGVbV25dW01yXTp4''@;'; + put 'put ''ZVtQbltNcl0renRdLFllKXtjYXNlIDE6eHRbTXJdPU1yLW5uLnMuYzticmVhaztjYXNlIDI6eHRbTXJdPVBuW01yXTticmVhaztjYXNlIDM6eHRbTXJdPUNuLmhlYWRlcltNci1ubi5zLmNdO2JyZWFrO2RlZmF1bHQ6Zm9yKG51bGw9PWplJiYoamU9e3c6Il9fRU1QVFkiLHQ6InMifSksWXQ9''@;'; + put 'put ''UnQ9eTEoamUsbnVsbCxDbiksVG49MCxhaT0wO2FpPHh0Lmxlbmd0aDsrK2FpKXh0W2FpXT09WXQmJihZdD1SdCsiXyIrICsrVG4pO3h0W01yXT1ZdH1yZXR1cm4gV249bm4ucy5yK010LFplLl9yZWFkPWZ1bmN0aW9uKCl7aWYoV24+bm4uZS5yKXJldHVybiBaZS5wdXNoKG51bGwpO2Zvcig7''@;'; + put 'put ''V248PW5uLmUucjspe3ZhciB5cj1LNCh4ZSxubixXbixQbixZZSx4dCxPbixDbik7aWYoKytXbiwhMT09PXlyLmlzZW1wdHl8fCgxPT09WWU/ITEhPT1Dbi5ibGFua3Jvd3M6Q24uYmxhbmtyb3dzKSl7WmUucHVzaCh5ci5yb3cpO2JyZWFrfX19LFplfSx0b19odG1sOmZ1bmN0aW9uKHhlLEZl''@;'; + put 'put ''KXt2YXIgWmU9SCgpLGplPUZlfHx7fSxNdD1udWxsIT1qZS5mb290ZXI/amUuZm9vdGVyOnVzLkVORDtaZS5wdXNoKG51bGwhPWplLmhlYWRlcj9qZS5oZWFkZXI6dXMuQkVHSU4pO3ZhciB4dD12cyh4ZVsiIXJlZiJdKTtqZS5kZW5zZT1BcnJheS5pc0FycmF5KHhlKSxaZS5wdXNoKHVzLl9w''@;'; + put 'put ''cmVhbWJsZSh4ZSx4dCxqZSkpO3ZhciBSdD14dC5zLnIsWXQ9ITEsbm49W107cmV0dXJuIFplLl9yZWFkPWZ1bmN0aW9uKCl7aWYoUnQ+eHQuZS5yKXJldHVybiBZdHx8KFl0PSEwLFplLnB1c2goIjwvdGFibGU+IitNdCkpLFplLnB1c2gobnVsbCk7Zm9yKDtSdDw9eHQuZS5yOyl7WmUucHVz''@;'; + put 'put ''aCh1cy5fcm93KHhlLHh0LFJ0LGplLG5uLCIiKSksKytSdDticmVha319LFplfSx0b19jc3Y6ZnVuY3Rpb24oeGUsRmUpe3ZhciBaZT1IKCksamU9bnVsbD09RmU/e306RmU7aWYobnVsbD09eGV8fG51bGw9PXhlWyIhcmVmIl0pcmV0dXJuIFplLnB1c2gobnVsbCksWmU7dmFyIFllPUZvKHhl''@;'; + put 'put ''WyIhcmVmIl0pLE10PXZvaWQgMCE9PWplLkZTP2plLkZTOiIsIix4dD1NdC5jaGFyQ29kZUF0KDApLFJ0PXZvaWQgMCE9PWplLlJTP2plLlJTOiJcbiIsWXQ9UnQuY2hhckNvZGVBdCgwKSxubj1uZXcgUmVnRXhwKCgifCI9PU10PyJcXHwiOk10KSsiKyQiKSxDbj0iIixEdD1bXTtqZS5kZW5z''@;'; + put 'put ''ZT1BcnJheS5pc0FycmF5KHhlKTtmb3IodmFyIHp0PWplLnNraXBIaWRkZW4mJnhlWyIhY29scyJdfHxbXSxQbj1qZS5za2lwSGlkZGVuJiZ4ZVsiIXJvd3MiXXx8W10sVG49WWUucy5jO1RuPD1ZZS5lLmM7KytUbikoenRbVG5dfHx7fSkuaGlkZGVufHwoRHRbVG5dPV9hKFRuKSk7dmFyIE9u''@;'; + put 'put ''PVllLnMucixXbj0hMTtyZXR1cm4gWmUuX3JlYWQ9ZnVuY3Rpb24oKXtpZighV24pcmV0dXJuIFduPSEwLFplLnB1c2goIlx1ZmVmZiIpO2Zvcig7T248PVllLmUucjspaWYoKytPbiwhKFBuW09uLTFdfHx7fSkuaGlkZGVuJiZudWxsIT0oQ249dGkoeGUsWWUsT24tMSxEdCx4dCxZdCxNdCxq''@;'; + put 'put ''ZSkpKXtqZS5zdHJpcCYmKENuPUNuLnJlcGxhY2Uobm4sIiIpKSxaZS5wdXNoKENuK1J0KTticmVha31yZXR1cm4gT24+WWUuZS5yP1plLnB1c2gobnVsbCk6dm9pZCAwfSxaZX19fSgpLHZvaWQgMCE9PVVtJiYoVS5wYXJzZV94bHNjZmI9VW0pLFUucGFyc2VfemlwPUttLFUucmVhZD1qZCxV''@;'; + put 'put ''LnJlYWRGaWxlPWU3LFUucmVhZEZpbGVTeW5jPWU3LFUud3JpdGU9bjcsVS53cml0ZUZpbGU9ZEMsVS53cml0ZUZpbGVTeW5jPWRDLFUud3JpdGVGaWxlQXN5bmM9ZnVuY3Rpb24gTlAoSCxyZSxYLHdlKXt2YXIgeGU9WHx8e307eGUudHlwZT0iZmlsZSIseGUuZmlsZT1ILGhDKHhlKSx4ZS50''@;'; + put 'put ''eXBlPSJidWZmZXIiO3ZhciBGZT13ZTtyZXR1cm4gRmUgaW5zdGFuY2VvZiBGdW5jdGlvbnx8KEZlPVgpLEF0LndyaXRlRmlsZShILG43KHJlLHhlKSxGZSl9LFUuc2V0X2RhdGVfc3R5bGU9ZnVuY3Rpb24geXQoSCl7c3dpdGNoKEgpe2Nhc2UgMDpHZSgpO2JyZWFrO2Nhc2UgMTohZnVuY3Rp''@;'; + put 'put ''b24gVWUoKXt2YXIgSD1uZXcgRGF0ZTtDdD1MdC5nZXRUaW1lKCkrNmU0KihILmdldFRpbWV6b25lT2Zmc2V0KCktTHQuZ2V0VGltZXpvbmVPZmZzZXQoKSk7dmFyIHJlPUguZ2V0VGltZXpvbmVPZmZzZXQoKTtmdD1mdW5jdGlvbih3ZSx4ZSl7dmFyIEZlPXdlLmdldFRpbWUoKTtyZXR1cm4g''@;'; + put 'put ''eGUmJihGZS09MTI2MzE2OGU1KSwoRmUtKEx0LmdldFRpbWUoKSs2ZTQqKHdlLmdldFRpbWV6b25lT2Zmc2V0KCktTHQuZ2V0VGltZXpvbmVPZmZzZXQoKSkpKS84NjRlNX0sSHQ9ZnVuY3Rpb24od2Upe3ZhciB4ZT1uZXcgRGF0ZTtyZXR1cm4geGUuc2V0VGltZSgyNCp3ZSo2MCo2MCoxZTMr''@;'; + put 'put ''Q3QpLHhlLmdldFRpbWV6b25lT2Zmc2V0KCkhPT1yZSYmeGUuc2V0VGltZSh4ZS5nZXRUaW1lKCkrNmU0Kih4ZS5nZXRUaW1lem9uZU9mZnNldCgpLXJlKSkseGV9fSgpfX0sVS51dGlscz1hYyxVLlNTRj1GLHZvaWQgMCE9PXZ0JiYoVS5DRkI9dnQpfShKZSl9LDg3OTc3OihYZSxKZSxMKT0+''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0Ijtjb25zdCBtZT1KZTttZS5iaWdudW09TCgxMzg1NCksbWUuZGVmaW5lPUwoMzk1MTYpLmRlZmluZSxtZS5iYXNlPUwoODc4MTMpLG1lLmNvbnN0YW50cz1MKDU0NTkpLG1lLmRlY29kZXJzPUwoNzAxOTYpLG1lLmVuY29kZXJzPUwoMjExMzEpfSwzOTUxNjooWGUsSmUs''@;'; + put 'put ''TCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9TCgyMTEzMSksQj1MKDcwMTk2KSxFPUwoODM4OTQpO2Z1bmN0aW9uIFUoUSxaKXt0aGlzLm5hbWU9USx0aGlzLmJvZHk9Wix0aGlzLmRlY29kZXJzPXt9LHRoaXMuZW5jb2RlcnM9e319SmUuZGVmaW5lPWZ1bmN0aW9uKFosaWUpe3JldHVybiBu''@;'; + put 'put ''ZXcgVShaLGllKX0sVS5wcm90b3R5cGUuX2NyZWF0ZU5hbWVkPWZ1bmN0aW9uKFope2NvbnN0IGllPXRoaXMubmFtZTtmdW5jdGlvbiBsZShZKXt0aGlzLl9pbml0TmFtZWQoWSxpZSl9cmV0dXJuIEUobGUsWiksbGUucHJvdG90eXBlLl9pbml0TmFtZWQ9ZnVuY3Rpb24oVyxOKXtaLmNhbGwo''@;'; + put 'put ''dGhpcyxXLE4pfSxuZXcgbGUodGhpcyl9LFUucHJvdG90eXBlLl9nZXREZWNvZGVyPWZ1bmN0aW9uKFope3JldHVybiB0aGlzLmRlY29kZXJzLmhhc093blByb3BlcnR5KFo9Wnx8ImRlciIpfHwodGhpcy5kZWNvZGVyc1taXT10aGlzLl9jcmVhdGVOYW1lZChCW1pdKSksdGhpcy5kZWNvZGVy''@;'; + put 'put ''c1taXX0sVS5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKFosaWUsbGUpe3JldHVybiB0aGlzLl9nZXREZWNvZGVyKGllKS5kZWNvZGUoWixsZSl9LFUucHJvdG90eXBlLl9nZXRFbmNvZGVyPWZ1bmN0aW9uKFope3JldHVybiB0aGlzLmVuY29kZXJzLmhhc093blByb3BlcnR5KFo9Wnx8ImRl''@;'; + put 'put ''ciIpfHwodGhpcy5lbmNvZGVyc1taXT10aGlzLl9jcmVhdGVOYW1lZChtZVtaXSkpLHRoaXMuZW5jb2RlcnNbWl19LFUucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihaLGllLGxlKXtyZXR1cm4gdGhpcy5fZ2V0RW5jb2RlcihpZSkuZW5jb2RlKFosbGUpfX0sMTI3Njk6KFhlLEplLEwpPT57''@;'; + put 'put ''InVzZSBzdHJpY3QiO2NvbnN0IG1lPUwoODM4OTQpLEI9TCg0OTE5KS5iLEU9TCg2MjAzOCkuQnVmZmVyO2Z1bmN0aW9uIE1lKFEsWil7Qi5jYWxsKHRoaXMsWiksRS5pc0J1ZmZlcihRKT8odGhpcy5iYXNlPVEsdGhpcy5vZmZzZXQ9MCx0aGlzLmxlbmd0aD1RLmxlbmd0aCk6dGhpcy5lcnJv''@;'; + put 'put ''cigiSW5wdXQgbm90IEJ1ZmZlciIpfWZ1bmN0aW9uIFUoUSxaKXtpZihBcnJheS5pc0FycmF5KFEpKXRoaXMubGVuZ3RoPTAsdGhpcy52YWx1ZT1RLm1hcChmdW5jdGlvbihpZSl7cmV0dXJuIFUuaXNFbmNvZGVyQnVmZmVyKGllKXx8KGllPW5ldyBVKGllLFopKSx0aGlzLmxlbmd0aCs9aWUu''@;'; + put 'put ''bGVuZ3RoLGllfSx0aGlzKTtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgUSl7aWYoISgwPD1RJiZRPD0yNTUpKXJldHVybiBaLmVycm9yKCJub24tYnl0ZSBFbmNvZGVyQnVmZmVyIHZhbHVlIik7dGhpcy52YWx1ZT1RLHRoaXMubGVuZ3RoPTF9ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIFEp''@;'; + put 'put ''dGhpcy52YWx1ZT1RLHRoaXMubGVuZ3RoPUUuYnl0ZUxlbmd0aChRKTtlbHNle2lmKCFFLmlzQnVmZmVyKFEpKXJldHVybiBaLmVycm9yKCJVbnN1cHBvcnRlZCB0eXBlOiAiK3R5cGVvZiBRKTt0aGlzLnZhbHVlPVEsdGhpcy5sZW5ndGg9US5sZW5ndGh9fW1lKE1lLEIpLEplLkM9TWUsTWUu''@;'; + put 'put ''aXNEZWNvZGVyQnVmZmVyPWZ1bmN0aW9uKFope3JldHVybiBaIGluc3RhbmNlb2YgTWV8fCJvYmplY3QiPT10eXBlb2YgWiYmRS5pc0J1ZmZlcihaLmJhc2UpJiYiRGVjb2RlckJ1ZmZlciI9PT1aLmNvbnN0cnVjdG9yLm5hbWUmJiJudW1iZXIiPT10eXBlb2YgWi5vZmZzZXQmJiJudW1iZXIi''@;'; + put 'put ''PT10eXBlb2YgWi5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBaLnNhdmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBaLnJlc3RvcmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBaLmlzRW1wdHkmJiJmdW5jdGlvbiI9PXR5cGVvZiBaLnJlYWRVSW50OCYmImZ1bmN0aW9uIj09dHlwZW9mIFouc2tpcCYm''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIFoucmF3fSxNZS5wcm90b3R5cGUuc2F2ZT1mdW5jdGlvbigpe3JldHVybntvZmZzZXQ6dGhpcy5vZmZzZXQscmVwb3J0ZXI6Qi5wcm90b3R5cGUuc2F2ZS5jYWxsKHRoaXMpfX0sTWUucHJvdG90eXBlLnJlc3RvcmU9ZnVuY3Rpb24oWil7Y29uc3QgaWU9bmV3''@;'; + put 'put ''IE1lKHRoaXMuYmFzZSk7cmV0dXJuIGllLm9mZnNldD1aLm9mZnNldCxpZS5sZW5ndGg9dGhpcy5vZmZzZXQsdGhpcy5vZmZzZXQ9Wi5vZmZzZXQsQi5wcm90b3R5cGUucmVzdG9yZS5jYWxsKHRoaXMsWi5yZXBvcnRlciksaWV9LE1lLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIHRoaXMub2Zmc2V0PT09dGhpcy5sZW5ndGh9LE1lLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24oWil7cmV0dXJuIHRoaXMub2Zmc2V0KzE8PXRoaXMubGVuZ3RoP3RoaXMuYmFzZS5yZWFkVUludDgodGhpcy5vZmZzZXQrKywhMCk6dGhpcy5lcnJvcihafHwiRGVjb2RlckJ1ZmZl''@;'; + put 'put ''ciBvdmVycnVuIil9LE1lLnByb3RvdHlwZS5za2lwPWZ1bmN0aW9uKFosaWUpe2lmKCEodGhpcy5vZmZzZXQrWjw9dGhpcy5sZW5ndGgpKXJldHVybiB0aGlzLmVycm9yKGllfHwiRGVjb2RlckJ1ZmZlciBvdmVycnVuIik7Y29uc3QgbGU9bmV3IE1lKHRoaXMuYmFzZSk7cmV0dXJuIGxlLl9y''@;'; + put 'put ''ZXBvcnRlclN0YXRlPXRoaXMuX3JlcG9ydGVyU3RhdGUsbGUub2Zmc2V0PXRoaXMub2Zmc2V0LGxlLmxlbmd0aD10aGlzLm9mZnNldCtaLHRoaXMub2Zmc2V0Kz1aLGxlfSxNZS5wcm90b3R5cGUucmF3PWZ1bmN0aW9uKFope3JldHVybiB0aGlzLmJhc2Uuc2xpY2UoWj9aLm9mZnNldDp0aGlz''@;'; + put 'put ''Lm9mZnNldCx0aGlzLmxlbmd0aCl9LEplLlI9VSxVLmlzRW5jb2RlckJ1ZmZlcj1mdW5jdGlvbihaKXtyZXR1cm4gWiBpbnN0YW5jZW9mIFV8fCJvYmplY3QiPT10eXBlb2YgWiYmIkVuY29kZXJCdWZmZXIiPT09Wi5jb25zdHJ1Y3Rvci5uYW1lJiYibnVtYmVyIj09dHlwZW9mIFoubGVuZ3Ro''@;'; + put 'put ''JiYiZnVuY3Rpb24iPT10eXBlb2YgWi5qb2lufSxVLnByb3RvdHlwZS5qb2luPWZ1bmN0aW9uKFosaWUpe3JldHVybiBafHwoWj1FLmFsbG9jKHRoaXMubGVuZ3RoKSksaWV8fChpZT0wKSwwPT09dGhpcy5sZW5ndGh8fChBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpP3RoaXMudmFsdWUuZm9y''@;'; + put 'put ''RWFjaChmdW5jdGlvbihsZSl7bGUuam9pbihaLGllKSxpZSs9bGUubGVuZ3RofSk6KCJudW1iZXIiPT10eXBlb2YgdGhpcy52YWx1ZT9aW2llXT10aGlzLnZhbHVlOiJzdHJpbmciPT10eXBlb2YgdGhpcy52YWx1ZT9aLndyaXRlKHRoaXMudmFsdWUsaWUpOkUuaXNCdWZmZXIodGhpcy52YWx1''@;'; + put 'put ''ZSkmJnRoaXMudmFsdWUuY29weShaLGllKSxpZSs9dGhpcy5sZW5ndGgpKSxafX0sODc4MTM6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUplO21lLlJlcG9ydGVyPUwoNDkxOSkuYixtZS5EZWNvZGVyQnVmZmVyPUwoMTI3NjkpLkMsbWUuRW5jb2RlckJ1ZmZlcj1MKDEyNzY5''@;'; + put 'put ''KS5SLG1lLk5vZGU9TCgzMTQzMCl9LDMxNDMwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBtZT1MKDQ5MTkpLmIsQj1MKDEyNzY5KS5SLEU9TCgxMjc2OSkuQyxNZT1MKDMyMzkxKSxVPVsic2VxIiwic2Vxb2YiLCJzZXQiLCJzZXRvZiIsIm9iamlkIiwiYm9vbCIsImdlbnRpbWUi''@;'; + put 'put ''LCJ1dGN0aW1lIiwibnVsbF8iLCJlbnVtIiwiaW50Iiwib2JqRGVzYyIsImJpdHN0ciIsImJtcHN0ciIsImNoYXJzdHIiLCJnZW5zdHIiLCJncmFwaHN0ciIsImlhNXN0ciIsImlzbzY0NnN0ciIsIm51bXN0ciIsIm9jdHN0ciIsInByaW50c3RyIiwidDYxc3RyIiwidW5pc3RyIiwidXRmOHN0''@;'; + put 'put ''ciIsInZpZGVvc3RyIl0sUT1bImtleSIsIm9iaiIsInVzZSIsIm9wdGlvbmFsIiwiZXhwbGljaXQiLCJpbXBsaWNpdCIsImRlZiIsImNob2ljZSIsImFueSIsImNvbnRhaW5zIl0uY29uY2F0KFUpO2Z1bmN0aW9uIGllKFksVyxOKXtjb25zdCBlZT17fTt0aGlzLl9iYXNlU3RhdGU9ZWUsZWUu''@;'; + put 'put ''bmFtZT1OLGVlLmVuYz1ZLGVlLnBhcmVudD1XfHxudWxsLGVlLmNoaWxkcmVuPW51bGwsZWUudGFnPW51bGwsZWUuYXJncz1udWxsLGVlLnJldmVyc2VBcmdzPW51bGwsZWUuY2hvaWNlPW51bGwsZWUub3B0aW9uYWw9ITEsZWUuYW55PSExLGVlLm9iaj0hMSxlZS51c2U9bnVsbCxlZS51c2VE''@;'; + put 'put ''ZWNvZGVyPW51bGwsZWUua2V5PW51bGwsZWUuZGVmYXVsdD1udWxsLGVlLmV4cGxpY2l0PW51bGwsZWUuaW1wbGljaXQ9bnVsbCxlZS5jb250YWlucz1udWxsLGVlLnBhcmVudHx8KGVlLmNoaWxkcmVuPVtdLHRoaXMuX3dyYXAoKSl9WGUuZXhwb3J0cz1pZTtjb25zdCBsZT1bImVuYyIsInBh''@;'; + put 'put ''cmVudCIsImNoaWxkcmVuIiwidGFnIiwiYXJncyIsInJldmVyc2VBcmdzIiwiY2hvaWNlIiwib3B0aW9uYWwiLCJhbnkiLCJvYmoiLCJ1c2UiLCJhbHRlcmVkVXNlIiwia2V5IiwiZGVmYXVsdCIsImV4cGxpY2l0IiwiaW1wbGljaXQiLCJjb250YWlucyJdO2llLnByb3RvdHlwZS5jbG9uZT1m''@;'; + put 'put ''dW5jdGlvbigpe2NvbnN0IFc9dGhpcy5fYmFzZVN0YXRlLE49e307bGUuZm9yRWFjaChmdW5jdGlvbihxKXtOW3FdPVdbcV19KTtjb25zdCBlZT1uZXcgdGhpcy5jb25zdHJ1Y3RvcihOLnBhcmVudCk7cmV0dXJuIGVlLl9iYXNlU3RhdGU9TixlZX0saWUucHJvdG90eXBlLl93cmFwPWZ1bmN0''@;'; + put 'put ''aW9uKCl7Y29uc3QgVz10aGlzLl9iYXNlU3RhdGU7US5mb3JFYWNoKGZ1bmN0aW9uKE4pe3RoaXNbTl09ZnVuY3Rpb24oKXtjb25zdCBxPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMpO3JldHVybiBXLmNoaWxkcmVuLnB1c2gocSkscVtOXS5hcHBseShxLGFyZ3VtZW50cyl9fSx0aGlzKX0s''@;'; + put 'put ''aWUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKFcpe2NvbnN0IE49dGhpcy5fYmFzZVN0YXRlO01lKG51bGw9PT1OLnBhcmVudCksVy5jYWxsKHRoaXMpLE4uY2hpbGRyZW49Ti5jaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oZWUpe3JldHVybiBlZS5fYmFzZVN0YXRlLnBhcmVudD09PXRoaXN9''@;'; + put 'put ''LHRoaXMpLE1lLmVxdWFsKE4uY2hpbGRyZW4ubGVuZ3RoLDEsIlJvb3Qgbm9kZSBjYW4gaGF2ZSBvbmx5IG9uZSBjaGlsZCIpfSxpZS5wcm90b3R5cGUuX3VzZUFyZ3M9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9iYXNlU3RhdGUsZWU9Vy5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEg''@;'; + put 'put ''aW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yfSx0aGlzKTtXPVcuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiEocSBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpfSx0aGlzKSwwIT09ZWUubGVuZ3RoJiYoTWUobnVsbD09PU4uY2hpbGRyZW4pLE4uY2hpbGRyZW49ZWUsZWUuZm9yRWFj''@;'; + put 'put ''aChmdW5jdGlvbihxKXtxLl9iYXNlU3RhdGUucGFyZW50PXRoaXN9LHRoaXMpKSwwIT09Vy5sZW5ndGgmJihNZShudWxsPT09Ti5hcmdzKSxOLmFyZ3M9VyxOLnJldmVyc2VBcmdzPVcubWFwKGZ1bmN0aW9uKHEpe2lmKCJvYmplY3QiIT10eXBlb2YgcXx8cS5jb25zdHJ1Y3RvciE9PU9iamVj''@;'; + put 'put ''dClyZXR1cm4gcTtjb25zdCBKPXt9O3JldHVybiBPYmplY3Qua2V5cyhxKS5mb3JFYWNoKGZ1bmN0aW9uKHNlKXtzZT09KDB8c2UpJiYoc2V8PTApLEpbcVtzZV1dPXNlfSksSn0pKX0sWyJfcGVla1RhZyIsIl9kZWNvZGVUYWciLCJfdXNlIiwiX2RlY29kZVN0ciIsIl9kZWNvZGVPYmppZCIs''@;'; + put 'put ''Il9kZWNvZGVUaW1lIiwiX2RlY29kZU51bGwiLCJfZGVjb2RlSW50IiwiX2RlY29kZUJvb2wiLCJfZGVjb2RlTGlzdCIsIl9lbmNvZGVDb21wb3NpdGUiLCJfZW5jb2RlU3RyIiwiX2VuY29kZU9iamlkIiwiX2VuY29kZVRpbWUiLCJfZW5jb2RlTnVsbCIsIl9lbmNvZGVJbnQiLCJfZW5jb2Rl''@;'; + put 'put ''Qm9vbCJdLmZvckVhY2goZnVuY3Rpb24oWSl7aWUucHJvdG90eXBlW1ldPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKFkrIiBub3QgaW1wbGVtZW50ZWQgZm9yIGVuY29kaW5nOiAiK3RoaXMuX2Jhc2VTdGF0ZS5lbmMpfX0pLFUuZm9yRWFjaChmdW5jdGlvbihZKXtpZS5wcm90b3R5cGVb''@;'; + put 'put ''WV09ZnVuY3Rpb24oKXtjb25zdCBOPXRoaXMuX2Jhc2VTdGF0ZSxlZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiBNZShudWxsPT09Ti50YWcpLE4udGFnPVksdGhpcy5fdXNlQXJncyhlZSksdGhpc319KSxpZS5wcm90b3R5cGUudXNlPWZ1bmN0aW9uKFcp''@;'; + put 'put ''e01lKFcpO2NvbnN0IE49dGhpcy5fYmFzZVN0YXRlO3JldHVybiBNZShudWxsPT09Ti51c2UpLE4udXNlPVcsdGhpc30saWUucHJvdG90eXBlLm9wdGlvbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jhc2VTdGF0ZS5vcHRpb25hbD0hMCx0aGlzfSxpZS5wcm90b3R5cGUuZGVmPWZ1bmN0''@;'; + put 'put ''aW9uKFcpe2NvbnN0IE49dGhpcy5fYmFzZVN0YXRlO3JldHVybiBNZShudWxsPT09Ti5kZWZhdWx0KSxOLmRlZmF1bHQ9VyxOLm9wdGlvbmFsPSEwLHRoaXN9LGllLnByb3RvdHlwZS5leHBsaWNpdD1mdW5jdGlvbihXKXtjb25zdCBOPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gTWUobnVsbD09''@;'; + put 'put ''PU4uZXhwbGljaXQmJm51bGw9PT1OLmltcGxpY2l0KSxOLmV4cGxpY2l0PVcsdGhpc30saWUucHJvdG90eXBlLmltcGxpY2l0PWZ1bmN0aW9uKFcpe2NvbnN0IE49dGhpcy5fYmFzZVN0YXRlO3JldHVybiBNZShudWxsPT09Ti5leHBsaWNpdCYmbnVsbD09PU4uaW1wbGljaXQpLE4uaW1wbGlj''@;'; + put 'put ''aXQ9Vyx0aGlzfSxpZS5wcm90b3R5cGUub2JqPWZ1bmN0aW9uKCl7Y29uc3QgVz10aGlzLl9iYXNlU3RhdGUsTj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiBXLm9iaj0hMCwwIT09Ti5sZW5ndGgmJnRoaXMuX3VzZUFyZ3MoTiksdGhpc30saWUucHJvdG90''@;'; + put 'put ''eXBlLmtleT1mdW5jdGlvbihXKXtjb25zdCBOPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gTWUobnVsbD09PU4ua2V5KSxOLmtleT1XLHRoaXN9LGllLnByb3RvdHlwZS5hbnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLmFueT0hMCx0aGlzfSxpZS5wcm90b3R5cGUuY2hvaWNl''@;'; + put 'put ''PWZ1bmN0aW9uKFcpe2NvbnN0IE49dGhpcy5fYmFzZVN0YXRlO3JldHVybiBNZShudWxsPT09Ti5jaG9pY2UpLE4uY2hvaWNlPVcsdGhpcy5fdXNlQXJncyhPYmplY3Qua2V5cyhXKS5tYXAoZnVuY3Rpb24oZWUpe3JldHVybiBXW2VlXX0pKSx0aGlzfSxpZS5wcm90b3R5cGUuY29udGFpbnM9''@;'; + put 'put ''ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIE1lKG51bGw9PT1OLnVzZSksTi5jb250YWlucz1XLHRoaXN9LGllLnByb3RvdHlwZS5fZGVjb2RlPWZ1bmN0aW9uKFcsTil7Y29uc3QgZWU9dGhpcy5fYmFzZVN0YXRlO2lmKG51bGw9PT1lZS5wYXJlbnQpcmV0dXJu''@;'; + put 'put ''IFcud3JhcFJlc3VsdChlZS5jaGlsZHJlblswXS5fZGVjb2RlKFcsTikpO2xldCBvZSxxPWVlLmRlZmF1bHQsSj0hMCxzZT1udWxsO2lmKG51bGwhPT1lZS5rZXkmJihzZT1XLmVudGVyS2V5KGVlLmtleSkpLGVlLm9wdGlvbmFsKXtsZXQgY2U9bnVsbDtpZihudWxsIT09ZWUuZXhwbGljaXQ/''@;'; + put 'put ''Y2U9ZWUuZXhwbGljaXQ6bnVsbCE9PWVlLmltcGxpY2l0P2NlPWVlLmltcGxpY2l0Om51bGwhPT1lZS50YWcmJihjZT1lZS50YWcpLG51bGwhPT1jZXx8ZWUuYW55KXtpZihKPXRoaXMuX3BlZWtUYWcoVyxjZSxlZS5hbnkpLFcuaXNFcnJvcihKKSlyZXR1cm4gSn1lbHNle2NvbnN0IGRlPVcu''@;'; + put 'put ''c2F2ZSgpO3RyeXtudWxsPT09ZWUuY2hvaWNlP3RoaXMuX2RlY29kZUdlbmVyaWMoZWUudGFnLFcsTik6dGhpcy5fZGVjb2RlQ2hvaWNlKFcsTiksSj0hMH1jYXRjaCh2ZSl7Sj0hMX1XLnJlc3RvcmUoZGUpfX1pZihlZS5vYmomJkomJihvZT1XLmVudGVyT2JqZWN0KCkpLEope2lmKG51bGwh''@;'; + put 'put ''PT1lZS5leHBsaWNpdCl7Y29uc3QgZGU9dGhpcy5fZGVjb2RlVGFnKFcsZWUuZXhwbGljaXQpO2lmKFcuaXNFcnJvcihkZSkpcmV0dXJuIGRlO1c9ZGV9Y29uc3QgY2U9Vy5vZmZzZXQ7aWYobnVsbD09PWVlLnVzZSYmbnVsbD09PWVlLmNob2ljZSl7bGV0IGRlO2VlLmFueSYmKGRlPVcuc2F2''@;'; + put 'put ''ZSgpKTtjb25zdCB2ZT10aGlzLl9kZWNvZGVUYWcoVyxudWxsIT09ZWUuaW1wbGljaXQ/ZWUuaW1wbGljaXQ6ZWUudGFnLGVlLmFueSk7aWYoVy5pc0Vycm9yKHZlKSlyZXR1cm4gdmU7ZWUuYW55P3E9Vy5yYXcoZGUpOlc9dmV9aWYoTiYmTi50cmFjayYmbnVsbCE9PWVlLnRhZyYmTi50cmFj''@;'; + put 'put ''ayhXLnBhdGgoKSxjZSxXLmxlbmd0aCwidGFnZ2VkIiksTiYmTi50cmFjayYmbnVsbCE9PWVlLnRhZyYmTi50cmFjayhXLnBhdGgoKSxXLm9mZnNldCxXLmxlbmd0aCwiY29udGVudCIpLGVlLmFueXx8KHE9bnVsbD09PWVlLmNob2ljZT90aGlzLl9kZWNvZGVHZW5lcmljKGVlLnRhZyxXLE4p''@;'; + put 'put ''OnRoaXMuX2RlY29kZUNob2ljZShXLE4pKSxXLmlzRXJyb3IocSkpcmV0dXJuIHE7aWYoIWVlLmFueSYmbnVsbD09PWVlLmNob2ljZSYmbnVsbCE9PWVlLmNoaWxkcmVuJiZlZS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKHZlKXt2ZS5fZGVjb2RlKFcsTil9KSxlZS5jb250YWlucyYmKCJv''@;'; + put 'put ''Y3RzdHIiPT09ZWUudGFnfHwiYml0c3RyIj09PWVlLnRhZykpe2NvbnN0IGRlPW5ldyBFKHEpO3E9dGhpcy5fZ2V0VXNlKGVlLmNvbnRhaW5zLFcuX3JlcG9ydGVyU3RhdGUub2JqKS5fZGVjb2RlKGRlLE4pfX1yZXR1cm4gZWUub2JqJiZKJiYocT1XLmxlYXZlT2JqZWN0KG9lKSksbnVsbD09''@;'; + put 'put ''PWVlLmtleXx8bnVsbD09PXEmJiEwIT09Sj9udWxsIT09c2UmJlcuZXhpdEtleShzZSk6Vy5sZWF2ZUtleShzZSxlZS5rZXkscSkscX0saWUucHJvdG90eXBlLl9kZWNvZGVHZW5lcmljPWZ1bmN0aW9uKFcsTixlZSl7Y29uc3QgcT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuInNlcSI9PT1XfHwi''@;'; + put 'put ''c2V0Ij09PVc/bnVsbDoic2Vxb2YiPT09V3x8InNldG9mIj09PVc/dGhpcy5fZGVjb2RlTGlzdChOLFcscS5hcmdzWzBdLGVlKTovc3RyJC8udGVzdChXKT90aGlzLl9kZWNvZGVTdHIoTixXLGVlKToib2JqaWQiPT09VyYmcS5hcmdzP3RoaXMuX2RlY29kZU9iamlkKE4scS5hcmdzWzBdLHEu''@;'; + put 'put ''YXJnc1sxXSxlZSk6Im9iamlkIj09PVc/dGhpcy5fZGVjb2RlT2JqaWQoTixudWxsLG51bGwsZWUpOiJnZW50aW1lIj09PVd8fCJ1dGN0aW1lIj09PVc/dGhpcy5fZGVjb2RlVGltZShOLFcsZWUpOiJudWxsXyI9PT1XP3RoaXMuX2RlY29kZU51bGwoTixlZSk6ImJvb2wiPT09Vz90aGlzLl9k''@;'; + put 'put ''ZWNvZGVCb29sKE4sZWUpOiJvYmpEZXNjIj09PVc/dGhpcy5fZGVjb2RlU3RyKE4sVyxlZSk6ImludCI9PT1XfHwiZW51bSI9PT1XP3RoaXMuX2RlY29kZUludChOLHEuYXJncyYmcS5hcmdzWzBdLGVlKTpudWxsIT09cS51c2U/dGhpcy5fZ2V0VXNlKHEudXNlLE4uX3JlcG9ydGVyU3RhdGUu''@;'; + put 'put ''b2JqKS5fZGVjb2RlKE4sZWUpOk4uZXJyb3IoInVua25vd24gdGFnOiAiK1cpfSxpZS5wcm90b3R5cGUuX2dldFVzZT1mdW5jdGlvbihXLE4pe2NvbnN0IGVlPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gZWUudXNlRGVjb2Rlcj10aGlzLl91c2UoVyxOKSxNZShudWxsPT09ZWUudXNlRGVjb2Rl''@;'; + put 'put ''ci5fYmFzZVN0YXRlLnBhcmVudCksZWUudXNlRGVjb2Rlcj1lZS51c2VEZWNvZGVyLl9iYXNlU3RhdGUuY2hpbGRyZW5bMF0sZWUuaW1wbGljaXQhPT1lZS51c2VEZWNvZGVyLl9iYXNlU3RhdGUuaW1wbGljaXQmJihlZS51c2VEZWNvZGVyPWVlLnVzZURlY29kZXIuY2xvbmUoKSxlZS51c2VE''@;'; + put 'put ''ZWNvZGVyLl9iYXNlU3RhdGUuaW1wbGljaXQ9ZWUuaW1wbGljaXQpLGVlLnVzZURlY29kZXJ9LGllLnByb3RvdHlwZS5fZGVjb2RlQ2hvaWNlPWZ1bmN0aW9uKFcsTil7Y29uc3QgZWU9dGhpcy5fYmFzZVN0YXRlO2xldCBxPW51bGwsSj0hMTtyZXR1cm4gT2JqZWN0LmtleXMoZWUuY2hvaWNl''@;'; + put 'put ''KS5zb21lKGZ1bmN0aW9uKHNlKXtjb25zdCBvZT1XLnNhdmUoKSxjZT1lZS5jaG9pY2Vbc2VdO3RyeXtjb25zdCBkZT1jZS5fZGVjb2RlKFcsTik7aWYoVy5pc0Vycm9yKGRlKSlyZXR1cm4hMTtxPXt0eXBlOnNlLHZhbHVlOmRlfSxKPSEwfWNhdGNoKGRlKXtyZXR1cm4gVy5yZXN0b3JlKG9l''@;'; + put 'put ''KSwhMX1yZXR1cm4hMH0sdGhpcyksSj9xOlcuZXJyb3IoIkNob2ljZSBub3QgbWF0Y2hlZCIpfSxpZS5wcm90b3R5cGUuX2NyZWF0ZUVuY29kZXJCdWZmZXI9ZnVuY3Rpb24oVyl7cmV0dXJuIG5ldyBCKFcsdGhpcy5yZXBvcnRlcil9LGllLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKFcs''@;'; + put 'put ''TixlZSl7Y29uc3QgcT10aGlzLl9iYXNlU3RhdGU7aWYobnVsbCE9PXEuZGVmYXVsdCYmcS5kZWZhdWx0PT09VylyZXR1cm47Y29uc3QgSj10aGlzLl9lbmNvZGVWYWx1ZShXLE4sZWUpO3JldHVybiB2b2lkIDA9PT1KfHx0aGlzLl9za2lwRGVmYXVsdChKLE4sZWUpP3ZvaWQgMDpKfSxpZS5w''@;'; + put 'put ''cm90b3R5cGUuX2VuY29kZVZhbHVlPWZ1bmN0aW9uKFcsTixlZSl7Y29uc3QgcT10aGlzLl9iYXNlU3RhdGU7aWYobnVsbD09PXEucGFyZW50KXJldHVybiBxLmNoaWxkcmVuWzBdLl9lbmNvZGUoVyxOfHxuZXcgbWUpO2xldCBKPW51bGw7aWYodGhpcy5yZXBvcnRlcj1OLHEub3B0aW9uYWwm''@;'; + put 'put ''JnZvaWQgMD09PVcpe2lmKG51bGw9PT1xLmRlZmF1bHQpcmV0dXJuO1c9cS5kZWZhdWx0fWxldCBzZT1udWxsLG9lPSExO2lmKHEuYW55KUo9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihXKTtlbHNlIGlmKHEuY2hvaWNlKUo9dGhpcy5fZW5jb2RlQ2hvaWNlKFcsTik7ZWxzZSBpZihxLmNv''@;'; + put 'put ''bnRhaW5zKXNlPXRoaXMuX2dldFVzZShxLmNvbnRhaW5zLGVlKS5fZW5jb2RlKFcsTiksb2U9ITA7ZWxzZSBpZihxLmNoaWxkcmVuKXNlPXEuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uKGNlKXtpZigibnVsbF8iPT09Y2UuX2Jhc2VTdGF0ZS50YWcpcmV0dXJuIGNlLl9lbmNvZGUobnVsbCxOLFcp''@;'; + put 'put ''O2lmKG51bGw9PT1jZS5fYmFzZVN0YXRlLmtleSlyZXR1cm4gTi5lcnJvcigiQ2hpbGQgc2hvdWxkIGhhdmUgYSBrZXkiKTtjb25zdCBkZT1OLmVudGVyS2V5KGNlLl9iYXNlU3RhdGUua2V5KTtpZigib2JqZWN0IiE9dHlwZW9mIFcpcmV0dXJuIE4uZXJyb3IoIkNoaWxkIGV4cGVjdGVkLCBi''@;'; + put 'put ''dXQgaW5wdXQgaXMgbm90IG9iamVjdCIpO2NvbnN0IHZlPWNlLl9lbmNvZGUoV1tjZS5fYmFzZVN0YXRlLmtleV0sTixXKTtyZXR1cm4gTi5sZWF2ZUtleShkZSksdmV9LHRoaXMpLmZpbHRlcihmdW5jdGlvbihjZSl7cmV0dXJuIGNlfSksc2U9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihz''@;'; + put 'put ''ZSk7ZWxzZSBpZigic2Vxb2YiPT09cS50YWd8fCJzZXRvZiI9PT1xLnRhZyl7aWYoIXEuYXJnc3x8MSE9PXEuYXJncy5sZW5ndGgpcmV0dXJuIE4uZXJyb3IoIlRvbyBtYW55IGFyZ3MgZm9yIDogIitxLnRhZyk7aWYoIUFycmF5LmlzQXJyYXkoVykpcmV0dXJuIE4uZXJyb3IoInNlcW9mL3Nl''@;'; + put 'put ''dG9mLCBidXQgZGF0YSBpcyBub3QgQXJyYXkiKTtjb25zdCBjZT10aGlzLmNsb25lKCk7Y2UuX2Jhc2VTdGF0ZS5pbXBsaWNpdD1udWxsLHNlPXRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoVy5tYXAoZnVuY3Rpb24oZGUpe3JldHVybiB0aGlzLl9nZXRVc2UodGhpcy5fYmFzZVN0YXRlLmFy''@;'; + put 'put ''Z3NbMF0sVykuX2VuY29kZShkZSxOKX0sY2UpKX1lbHNlIG51bGwhPT1xLnVzZT9KPXRoaXMuX2dldFVzZShxLnVzZSxlZSkuX2VuY29kZShXLE4pOihzZT10aGlzLl9lbmNvZGVQcmltaXRpdmUocS50YWcsVyksb2U9ITApO2lmKCFxLmFueSYmbnVsbD09PXEuY2hvaWNlKXtjb25zdCBjZT1u''@;'; + put 'put ''dWxsIT09cS5pbXBsaWNpdD9xLmltcGxpY2l0OnEudGFnLGRlPW51bGw9PT1xLmltcGxpY2l0PyJ1bml2ZXJzYWwiOiJjb250ZXh0IjtudWxsPT09Y2U/bnVsbD09PXEudXNlJiZOLmVycm9yKCJUYWcgY291bGQgYmUgb21pdHRlZCBvbmx5IGZvciAudXNlKCkiKTpudWxsPT09cS51c2UmJihK''@;'; + put 'put ''PXRoaXMuX2VuY29kZUNvbXBvc2l0ZShjZSxvZSxkZSxzZSkpfXJldHVybiBudWxsIT09cS5leHBsaWNpdCYmKEo9dGhpcy5fZW5jb2RlQ29tcG9zaXRlKHEuZXhwbGljaXQsITEsImNvbnRleHQiLEopKSxKfSxpZS5wcm90b3R5cGUuX2VuY29kZUNob2ljZT1mdW5jdGlvbihXLE4pe2NvbnN0''@;'; + put 'put ''IGVlPXRoaXMuX2Jhc2VTdGF0ZSxxPWVlLmNob2ljZVtXLnR5cGVdO3JldHVybiBxfHxNZSghMSxXLnR5cGUrIiBub3QgZm91bmQgaW4gIitKU09OLnN0cmluZ2lmeShPYmplY3Qua2V5cyhlZS5jaG9pY2UpKSkscS5fZW5jb2RlKFcudmFsdWUsTil9LGllLnByb3RvdHlwZS5fZW5jb2RlUHJp''@;'; + put 'put ''bWl0aXZlPWZ1bmN0aW9uKFcsTil7Y29uc3QgZWU9dGhpcy5fYmFzZVN0YXRlO2lmKC9zdHIkLy50ZXN0KFcpKXJldHVybiB0aGlzLl9lbmNvZGVTdHIoTixXKTtpZigib2JqaWQiPT09VyYmZWUuYXJncylyZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQoTixlZS5yZXZlcnNlQXJnc1swXSxlZS5h''@;'; + put 'put ''cmdzWzFdKTtpZigib2JqaWQiPT09VylyZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQoTixudWxsLG51bGwpO2lmKCJnZW50aW1lIj09PVd8fCJ1dGN0aW1lIj09PVcpcmV0dXJuIHRoaXMuX2VuY29kZVRpbWUoTixXKTtpZigibnVsbF8iPT09VylyZXR1cm4gdGhpcy5fZW5jb2RlTnVsbCgpO2lm''@;'; + put 'put ''KCJpbnQiPT09V3x8ImVudW0iPT09VylyZXR1cm4gdGhpcy5fZW5jb2RlSW50KE4sZWUuYXJncyYmZWUucmV2ZXJzZUFyZ3NbMF0pO2lmKCJib29sIj09PVcpcmV0dXJuIHRoaXMuX2VuY29kZUJvb2woTik7aWYoIm9iakRlc2MiPT09VylyZXR1cm4gdGhpcy5fZW5jb2RlU3RyKE4sVyk7dGhy''@;'; + put 'put ''b3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCB0YWc6ICIrVyl9LGllLnByb3RvdHlwZS5faXNOdW1zdHI9ZnVuY3Rpb24oVyl7cmV0dXJuL15bMC05IF0qJC8udGVzdChXKX0saWUucHJvdG90eXBlLl9pc1ByaW50c3RyPWZ1bmN0aW9uKFcpe3JldHVybi9eW0EtWmEtejAtOSAnKCkrLC0uLzo9''@;'; + put 'put ''P10qJC8udGVzdChXKX19LDQ5MTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUwoODM4OTQpO2Z1bmN0aW9uIEIoTWUpe3RoaXMuX3JlcG9ydGVyU3RhdGU9e29iajpudWxsLHBhdGg6W10sb3B0aW9uczpNZXx8e30sZXJyb3JzOltdfX1mdW5jdGlvbiBFKE1lLFUpe3RoaXMu''@;'; + put 'put ''cGF0aD1NZSx0aGlzLnJldGhyb3coVSl9SmUuYj1CLEIucHJvdG90eXBlLmlzRXJyb3I9ZnVuY3Rpb24oVSl7cmV0dXJuIFUgaW5zdGFuY2VvZiBFfSxCLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKCl7Y29uc3QgVT10aGlzLl9yZXBvcnRlclN0YXRlO3JldHVybntvYmo6VS5vYmoscGF0aExl''@;'; + put 'put ''bjpVLnBhdGgubGVuZ3RofX0sQi5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbihVKXtjb25zdCBRPXRoaXMuX3JlcG9ydGVyU3RhdGU7US5vYmo9VS5vYmosUS5wYXRoPVEucGF0aC5zbGljZSgwLFUucGF0aExlbil9LEIucHJvdG90eXBlLmVudGVyS2V5PWZ1bmN0aW9uKFUpe3JldHVybiB0''@;'; + put 'put ''aGlzLl9yZXBvcnRlclN0YXRlLnBhdGgucHVzaChVKX0sQi5wcm90b3R5cGUuZXhpdEtleT1mdW5jdGlvbihVKXtjb25zdCBRPXRoaXMuX3JlcG9ydGVyU3RhdGU7US5wYXRoPVEucGF0aC5zbGljZSgwLFUtMSl9LEIucHJvdG90eXBlLmxlYXZlS2V5PWZ1bmN0aW9uKFUsUSxaKXtjb25zdCBp''@;'; + put 'put ''ZT10aGlzLl9yZXBvcnRlclN0YXRlO3RoaXMuZXhpdEtleShVKSxudWxsIT09aWUub2JqJiYoaWUub2JqW1FdPVopfSxCLnByb3RvdHlwZS5wYXRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5qb2luKCIvIil9LEIucHJvdG90eXBlLmVudGVyT2JqZWN0PWZ1''@;'; + put 'put ''bmN0aW9uKCl7Y29uc3QgVT10aGlzLl9yZXBvcnRlclN0YXRlLFE9VS5vYmo7cmV0dXJuIFUub2JqPXt9LFF9LEIucHJvdG90eXBlLmxlYXZlT2JqZWN0PWZ1bmN0aW9uKFUpe2NvbnN0IFE9dGhpcy5fcmVwb3J0ZXJTdGF0ZSxaPVEub2JqO3JldHVybiBRLm9iaj1VLFp9LEIucHJvdG90eXBl''@;'; + put 'put ''LmVycm9yPWZ1bmN0aW9uKFUpe2xldCBRO2NvbnN0IFo9dGhpcy5fcmVwb3J0ZXJTdGF0ZSxpZT1VIGluc3RhbmNlb2YgRTtpZihRPWllP1U6bmV3IEUoWi5wYXRoLm1hcChmdW5jdGlvbihsZSl7cmV0dXJuIlsiK0pTT04uc3RyaW5naWZ5KGxlKSsiXSJ9KS5qb2luKCIiKSxVLm1lc3NhZ2V8''@;'; + put 'put ''fFUsVS5zdGFjayksIVoub3B0aW9ucy5wYXJ0aWFsKXRocm93IFE7cmV0dXJuIGllfHxaLmVycm9ycy5wdXNoKFEpLFF9LEIucHJvdG90eXBlLndyYXBSZXN1bHQ9ZnVuY3Rpb24oVSl7Y29uc3QgUT10aGlzLl9yZXBvcnRlclN0YXRlO3JldHVybiBRLm9wdGlvbnMucGFydGlhbD97cmVzdWx0''@;'; + put 'put ''OnRoaXMuaXNFcnJvcihVKT9udWxsOlUsZXJyb3JzOlEuZXJyb3JzfTpVfSxtZShFLEVycm9yKSxFLnByb3RvdHlwZS5yZXRocm93PWZ1bmN0aW9uKFUpe2lmKHRoaXMubWVzc2FnZT1VKyIgYXQ6ICIrKHRoaXMucGF0aHx8IihzaGFsbG93KSIpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlJiZF''@;'; + put 'put ''cnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLEUpLCF0aGlzLnN0YWNrKXRyeXt0aHJvdyBuZXcgRXJyb3IodGhpcy5tZXNzYWdlKX1jYXRjaChRKXt0aGlzLnN0YWNrPVEuc3RhY2t9cmV0dXJuIHRoaXN9fSwyNTQ5NjooWGUsSmUpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEwobWUpe2Nv''@;'; + put 'put ''bnN0IEI9e307cmV0dXJuIE9iamVjdC5rZXlzKG1lKS5mb3JFYWNoKGZ1bmN0aW9uKEUpeygwfEUpPT1FJiYoRXw9MCksQlttZVtFXV09RX0pLEJ9SmUudGFnQ2xhc3M9ezA6InVuaXZlcnNhbCIsMToiYXBwbGljYXRpb24iLDI6ImNvbnRleHQiLDM6InByaXZhdGUifSxKZS50YWdDbGFzc0J5''@;'; + put 'put ''TmFtZT1MKEplLnRhZ0NsYXNzKSxKZS50YWc9ezA6ImVuZCIsMToiYm9vbCIsMjoiaW50IiwzOiJiaXRzdHIiLDQ6Im9jdHN0ciIsNToibnVsbF8iLDY6Im9iamlkIiw3OiJvYmpEZXNjIiw4OiJleHRlcm5hbCIsOToicmVhbCIsMTA6ImVudW0iLDExOiJlbWJlZCIsMTI6InV0ZjhzdHIiLDEz''@;'; + put 'put ''OiJyZWxhdGl2ZU9pZCIsMTY6InNlcSIsMTc6InNldCIsMTg6Im51bXN0ciIsMTk6InByaW50c3RyIiwyMDoidDYxc3RyIiwyMToidmlkZW9zdHIiLDIyOiJpYTVzdHIiLDIzOiJ1dGN0aW1lIiwyNDoiZ2VudGltZSIsMjU6ImdyYXBoc3RyIiwyNjoiaXNvNjQ2c3RyIiwyNzoiZ2Vuc3RyIiwy''@;'; + put 'put ''ODoidW5pc3RyIiwyOToiY2hhcnN0ciIsMzA6ImJtcHN0ciJ9LEplLnRhZ0J5TmFtZT1MKEplLnRhZyl9LDU0NTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUplO21lLl9yZXZlcnNlPWZ1bmN0aW9uKEUpe2NvbnN0IE1lPXt9O3JldHVybiBPYmplY3Qua2V5cyhFKS5mb3JF''@;'; + put 'put ''YWNoKGZ1bmN0aW9uKFUpeygwfFUpPT1VJiYoVXw9MCksTWVbRVtVXV09VX0pLE1lfSxtZS5kZXI9TCgyNTQ5Nil9LDg3MTI3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBtZT1MKDgzODk0KSxCPUwoMTM4NTQpLEU9TCgxMjc2OSkuQyxNZT1MKDMxNDMwKSxVPUwoMjU0OTYpO2Z1''@;'; + put 'put ''bmN0aW9uIFEoWSl7dGhpcy5lbmM9ImRlciIsdGhpcy5uYW1lPVkubmFtZSx0aGlzLmVudGl0eT1ZLHRoaXMudHJlZT1uZXcgWix0aGlzLnRyZWUuX2luaXQoWS5ib2R5KX1mdW5jdGlvbiBaKFkpe01lLmNhbGwodGhpcywiZGVyIixZKX1mdW5jdGlvbiBpZShZLFcpe2xldCBOPVkucmVhZFVJ''@;'; + put 'put ''bnQ4KFcpO2lmKFkuaXNFcnJvcihOKSlyZXR1cm4gTjtjb25zdCBlZT1VLnRhZ0NsYXNzW04+PjZdLHE9MD09KDMyJk4pO2lmKDMxPT0oMzEmTikpe2xldCBzZT1OO2ZvcihOPTA7MTI4PT0oMTI4JnNlKTspe2lmKHNlPVkucmVhZFVJbnQ4KFcpLFkuaXNFcnJvcihzZSkpcmV0dXJuIHNlO048''@;'; + put 'put ''PD03LE58PTEyNyZzZX19ZWxzZSBOJj0zMTtyZXR1cm57Y2xzOmVlLHByaW1pdGl2ZTpxLHRhZzpOLHRhZ1N0cjpVLnRhZ1tOXX19ZnVuY3Rpb24gbGUoWSxXLE4pe2xldCBlZT1ZLnJlYWRVSW50OChOKTtpZihZLmlzRXJyb3IoZWUpKXJldHVybiBlZTtpZighVyYmMTI4PT09ZWUpcmV0dXJu''@;'; + put 'put ''IG51bGw7aWYoMD09KDEyOCZlZSkpcmV0dXJuIGVlO2NvbnN0IHE9MTI3JmVlO2lmKHE+NClyZXR1cm4gWS5lcnJvcigibGVuZ3RoIG9jdGVjdCBpcyB0b28gbG9uZyIpO2VlPTA7Zm9yKGxldCBKPTA7SjxxO0orKyl7ZWU8PD04O2NvbnN0IHNlPVkucmVhZFVJbnQ4KE4pO2lmKFkuaXNFcnJv''@;'; + put 'put ''cihzZSkpcmV0dXJuIHNlO2VlfD1zZX1yZXR1cm4gZWV9WGUuZXhwb3J0cz1RLFEucHJvdG90eXBlLmRlY29kZT1mdW5jdGlvbihXLE4pe3JldHVybiBFLmlzRGVjb2RlckJ1ZmZlcihXKXx8KFc9bmV3IEUoVyxOKSksdGhpcy50cmVlLl9kZWNvZGUoVyxOKX0sbWUoWixNZSksWi5wcm90b3R5''@;'; + put 'put ''cGUuX3BlZWtUYWc9ZnVuY3Rpb24oVyxOLGVlKXtpZihXLmlzRW1wdHkoKSlyZXR1cm4hMTtjb25zdCBxPVcuc2F2ZSgpLEo9aWUoVywnRmFpbGVkIHRvIHBlZWsgdGFnOiAiJytOKyciJyk7cmV0dXJuIFcuaXNFcnJvcihKKT9KOihXLnJlc3RvcmUocSksSi50YWc9PT1OfHxKLnRhZ1N0cj09''@;'; + put 'put ''PU58fEoudGFnU3RyKyJvZiI9PT1OfHxlZSl9LFoucHJvdG90eXBlLl9kZWNvZGVUYWc9ZnVuY3Rpb24oVyxOLGVlKXtjb25zdCBxPWllKFcsJ0ZhaWxlZCB0byBkZWNvZGUgdGFnIG9mICInK04rJyInKTtpZihXLmlzRXJyb3IocSkpcmV0dXJuIHE7bGV0IEo9bGUoVyxxLnByaW1pdGl2ZSwn''@;'; + put 'put ''RmFpbGVkIHRvIGdldCBsZW5ndGggb2YgIicrTisnIicpO2lmKFcuaXNFcnJvcihKKSlyZXR1cm4gSjtpZighZWUmJnEudGFnIT09TiYmcS50YWdTdHIhPT1OJiZxLnRhZ1N0cisib2YiIT09TilyZXR1cm4gVy5lcnJvcignRmFpbGVkIHRvIG1hdGNoIHRhZzogIicrTisnIicpO2lmKHEucHJp''@;'; + put 'put ''bWl0aXZlfHxudWxsIT09SilyZXR1cm4gVy5za2lwKEosJ0ZhaWxlZCB0byBtYXRjaCBib2R5IG9mOiAiJytOKyciJyk7Y29uc3Qgc2U9Vy5zYXZlKCksb2U9dGhpcy5fc2tpcFVudGlsRW5kKFcsJ0ZhaWxlZCB0byBza2lwIGluZGVmaW5pdGUgbGVuZ3RoIGJvZHk6ICInK3RoaXMudGFnKyci''@;'; + put 'put ''Jyk7cmV0dXJuIFcuaXNFcnJvcihvZSk/b2U6KEo9Vy5vZmZzZXQtc2Uub2Zmc2V0LFcucmVzdG9yZShzZSksVy5za2lwKEosJ0ZhaWxlZCB0byBtYXRjaCBib2R5IG9mOiAiJytOKyciJykpfSxaLnByb3RvdHlwZS5fc2tpcFVudGlsRW5kPWZ1bmN0aW9uKFcsTil7Zm9yKDs7KXtjb25zdCBl''@;'; + put 'put ''ZT1pZShXLE4pO2lmKFcuaXNFcnJvcihlZSkpcmV0dXJuIGVlO2NvbnN0IHE9bGUoVyxlZS5wcmltaXRpdmUsTik7aWYoVy5pc0Vycm9yKHEpKXJldHVybiBxO2xldCBKO2lmKEo9ZWUucHJpbWl0aXZlfHxudWxsIT09cT9XLnNraXAocSk6dGhpcy5fc2tpcFVudGlsRW5kKFcsTiksVy5pc0Vy''@;'; + put 'put ''cm9yKEopKXJldHVybiBKO2lmKCJlbmQiPT09ZWUudGFnU3RyKWJyZWFrfX0sWi5wcm90b3R5cGUuX2RlY29kZUxpc3Q9ZnVuY3Rpb24oVyxOLGVlLHEpe2NvbnN0IEo9W107Zm9yKDshVy5pc0VtcHR5KCk7KXtjb25zdCBzZT10aGlzLl9wZWVrVGFnKFcsImVuZCIpO2lmKFcuaXNFcnJvcihz''@;'; + put 'put ''ZSkpcmV0dXJuIHNlO2NvbnN0IG9lPWVlLmRlY29kZShXLCJkZXIiLHEpO2lmKFcuaXNFcnJvcihvZSkmJnNlKWJyZWFrO0oucHVzaChvZSl9cmV0dXJuIEp9LFoucHJvdG90eXBlLl9kZWNvZGVTdHI9ZnVuY3Rpb24oVyxOKXtpZigiYml0c3RyIj09PU4pe2NvbnN0IGVlPVcucmVhZFVJbnQ4''@;'; + put 'put ''KCk7cmV0dXJuIFcuaXNFcnJvcihlZSk/ZWU6e3VudXNlZDplZSxkYXRhOlcucmF3KCl9fWlmKCJibXBzdHIiPT09Til7Y29uc3QgZWU9Vy5yYXcoKTtpZihlZS5sZW5ndGglMj09MSlyZXR1cm4gVy5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IGJtcHN0ciBsZW5ndGggbWlzbWF0''@;'; + put 'put ''Y2giKTtsZXQgcT0iIjtmb3IobGV0IEo9MDtKPGVlLmxlbmd0aC8yO0orKylxKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGVlLnJlYWRVSW50MTZCRSgyKkopKTtyZXR1cm4gcX1pZigibnVtc3RyIj09PU4pe2NvbnN0IGVlPVcucmF3KCkudG9TdHJpbmcoImFzY2lpIik7cmV0dXJuIHRoaXMuX2lz''@;'; + put 'put ''TnVtc3RyKGVlKT9lZTpXLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogbnVtc3RyIHVuc3VwcG9ydGVkIGNoYXJhY3RlcnMiKX1pZigib2N0c3RyIj09PU4pcmV0dXJuIFcucmF3KCk7aWYoIm9iakRlc2MiPT09TilyZXR1cm4gVy5yYXcoKTtpZigicHJpbnRzdHIiPT09Til7Y29u''@;'; + put 'put ''c3QgZWU9Vy5yYXcoKS50b1N0cmluZygiYXNjaWkiKTtyZXR1cm4gdGhpcy5faXNQcmludHN0cihlZSk/ZWU6Vy5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHVuc3VwcG9ydGVkIGNoYXJhY3RlcnMiKX1yZXR1cm4vc3RyJC8udGVzdChOKT9XLnJhdygpLnRvU3Ry''@;'; + put 'put ''aW5nKCk6Vy5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6ICIrTisiIHVuc3VwcG9ydGVkIil9LFoucHJvdG90eXBlLl9kZWNvZGVPYmppZD1mdW5jdGlvbihXLE4sZWUpe2xldCBxO2NvbnN0IEo9W107bGV0IHNlPTAsb2U9MDtmb3IoOyFXLmlzRW1wdHkoKTspb2U9Vy5yZWFkVUlu''@;'; + put 'put ''dDgoKSxzZTw8PTcsc2V8PTEyNyZvZSwwPT0oMTI4Jm9lKSYmKEoucHVzaChzZSksc2U9MCk7aWYoMTI4Jm9lJiZKLnB1c2goc2UpLHE9ZWU/SjpbSlswXS80MHwwLEpbMF0lNDBdLmNvbmNhdChKLnNsaWNlKDEpKSxOKXtsZXQgdmU9TltxLmpvaW4oIiAiKV07dm9pZCAwPT09dmUmJih2ZT1O''@;'; + put 'put ''W3Euam9pbigiLiIpXSksdm9pZCAwIT09dmUmJihxPXZlKX1yZXR1cm4gcX0sWi5wcm90b3R5cGUuX2RlY29kZVRpbWU9ZnVuY3Rpb24oVyxOKXtjb25zdCBlZT1XLnJhdygpLnRvU3RyaW5nKCk7bGV0IHEsSixzZSxvZSxjZSxkZTtpZigiZ2VudGltZSI9PT1OKXE9MHxlZS5zbGljZSgwLDQp''@;'; + put 'put ''LEo9MHxlZS5zbGljZSg0LDYpLHNlPTB8ZWUuc2xpY2UoNiw4KSxvZT0wfGVlLnNsaWNlKDgsMTApLGNlPTB8ZWUuc2xpY2UoMTAsMTIpLGRlPTB8ZWUuc2xpY2UoMTIsMTQpO2Vsc2V7aWYoInV0Y3RpbWUiIT09TilyZXR1cm4gVy5lcnJvcigiRGVjb2RpbmcgIitOKyIgdGltZSBpcyBub3Qg''@;'; + put 'put ''c3VwcG9ydGVkIHlldCIpO3E9MHxlZS5zbGljZSgwLDIpLEo9MHxlZS5zbGljZSgyLDQpLHNlPTB8ZWUuc2xpY2UoNCw2KSxvZT0wfGVlLnNsaWNlKDYsOCksY2U9MHxlZS5zbGljZSg4LDEwKSxkZT0wfGVlLnNsaWNlKDEwLDEyKSxxPXE8NzA/MmUzK3E6MTkwMCtxfXJldHVybiBEYXRlLlVU''@;'; + put 'put ''QyhxLEotMSxzZSxvZSxjZSxkZSwwKX0sWi5wcm90b3R5cGUuX2RlY29kZU51bGw9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sWi5wcm90b3R5cGUuX2RlY29kZUJvb2w9ZnVuY3Rpb24oVyl7Y29uc3QgTj1XLnJlYWRVSW50OCgpO3JldHVybiBXLmlzRXJyb3IoTik/TjowIT09Tn0sWi5wcm90''@;'; + put 'put ''b3R5cGUuX2RlY29kZUludD1mdW5jdGlvbihXLE4pe2NvbnN0IGVlPVcucmF3KCk7bGV0IHE9bmV3IEIoZWUpO3JldHVybiBOJiYocT1OW3EudG9TdHJpbmcoMTApXXx8cSkscX0sWi5wcm90b3R5cGUuX3VzZT1mdW5jdGlvbihXLE4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBXJiYoVz1X''@;'; + put 'put ''KE4pKSxXLl9nZXREZWNvZGVyKCJkZXIiKS50cmVlfX0sNzAxOTY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUplO21lLmRlcj1MKDg3MTI3KSxtZS5wZW09TCg5OTYxNyl9LDk5NjE3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBtZT1MKDgzODk0KSxCPUwoNjIw''@;'; + put 'put ''MzgpLkJ1ZmZlcixFPUwoODcxMjcpO2Z1bmN0aW9uIE1lKFUpe0UuY2FsbCh0aGlzLFUpLHRoaXMuZW5jPSJwZW0ifW1lKE1lLEUpLFhlLmV4cG9ydHM9TWUsTWUucHJvdG90eXBlLmRlY29kZT1mdW5jdGlvbihRLFope2NvbnN0IGllPVEudG9TdHJpbmcoKS5zcGxpdCgvW1xyXG5dKy9nKSxs''@;'; + put 'put ''ZT1aLmxhYmVsLnRvVXBwZXJDYXNlKCksWT0vXi0tLS0tKEJFR0lOfEVORCkgKFteLV0rKS0tLS0tJC87bGV0IFc9LTEsTj0tMTtmb3IobGV0IEo9MDtKPGllLmxlbmd0aDtKKyspe2NvbnN0IHNlPWllW0pdLm1hdGNoKFkpO2lmKG51bGwhPT1zZSYmc2VbMl09PT1sZSl7aWYoLTEhPT1XKXtp''@;'; + put 'put ''ZigiRU5EIiE9PXNlWzFdKWJyZWFrO049SjticmVha31pZigiQkVHSU4iIT09c2VbMV0pYnJlYWs7Vz1KfX1pZigtMT09PVd8fC0xPT09Til0aHJvdyBuZXcgRXJyb3IoIlBFTSBzZWN0aW9uIG5vdCBmb3VuZCBmb3I6ICIrbGUpO2NvbnN0IGVlPWllLnNsaWNlKFcrMSxOKS5qb2luKCIiKTtl''@;'; + put 'put ''ZS5yZXBsYWNlKC9bXmEtejAtOSsvPV0rL2dpLCIiKTtjb25zdCBxPUIuZnJvbShlZSwiYmFzZTY0Iik7cmV0dXJuIEUucHJvdG90eXBlLmRlY29kZS5jYWxsKHRoaXMscSxaKX19LDE2Mzc0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBtZT1MKDgzODk0KSxCPUwoNjIwMzgpLkJ1''@;'; + put 'put ''ZmZlcixFPUwoMzE0MzApLE1lPUwoMjU0OTYpO2Z1bmN0aW9uIFUobGUpe3RoaXMuZW5jPSJkZXIiLHRoaXMubmFtZT1sZS5uYW1lLHRoaXMuZW50aXR5PWxlLHRoaXMudHJlZT1uZXcgUSx0aGlzLnRyZWUuX2luaXQobGUuYm9keSl9ZnVuY3Rpb24gUShsZSl7RS5jYWxsKHRoaXMsImRlciIs''@;'; + put 'put ''bGUpfWZ1bmN0aW9uIFoobGUpe3JldHVybiBsZTwxMD8iMCIrbGU6bGV9WGUuZXhwb3J0cz1VLFUucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihZLFcpe3JldHVybiB0aGlzLnRyZWUuX2VuY29kZShZLFcpLmpvaW4oKX0sbWUoUSxFKSxRLnByb3RvdHlwZS5fZW5jb2RlQ29tcG9zaXRlPWZ1''@;'; + put 'put ''bmN0aW9uKFksVyxOLGVlKXtjb25zdCBxPWZ1bmN0aW9uIGllKGxlLFksVyxOKXtsZXQgZWU7aWYoInNlcW9mIj09PWxlP2xlPSJzZXEiOiJzZXRvZiI9PT1sZSYmKGxlPSJzZXQiKSxNZS50YWdCeU5hbWUuaGFzT3duUHJvcGVydHkobGUpKWVlPU1lLnRhZ0J5TmFtZVtsZV07ZWxzZXtpZigi''@;'; + put 'put ''bnVtYmVyIiE9dHlwZW9mIGxlfHwoMHxsZSkhPT1sZSlyZXR1cm4gTi5lcnJvcigiVW5rbm93biB0YWc6ICIrbGUpO2VlPWxlfXJldHVybiBlZT49MzE/Ti5lcnJvcigiTXVsdGktb2N0ZXQgdGFnIGVuY29kaW5nIHVuc3VwcG9ydGVkIik6KFl8fChlZXw9MzIpLGVlfD1NZS50YWdDbGFzc0J5''@;'; + put 'put ''TmFtZVtXfHwidW5pdmVyc2FsIl08PDYsZWUpfShZLFcsTix0aGlzLnJlcG9ydGVyKTtpZihlZS5sZW5ndGg8MTI4KXtjb25zdCBvZT1CLmFsbG9jKDIpO3JldHVybiBvZVswXT1xLG9lWzFdPWVlLmxlbmd0aCx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFtvZSxlZV0pfWxldCBKPTE7Zm9y''@;'; + put 'put ''KGxldCBvZT1lZS5sZW5ndGg7b2U+PTI1NjtvZT4+PTgpSisrO2NvbnN0IHNlPUIuYWxsb2MoMitKKTtzZVswXT1xLHNlWzFdPTEyOHxKO2ZvcihsZXQgb2U9MStKLGNlPWVlLmxlbmd0aDtjZT4wO29lLS0sY2U+Pj04KXNlW29lXT0yNTUmY2U7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJC''@;'; + put 'put ''dWZmZXIoW3NlLGVlXSl9LFEucHJvdG90eXBlLl9lbmNvZGVTdHI9ZnVuY3Rpb24oWSxXKXtpZigiYml0c3RyIj09PVcpcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWzB8WS51bnVzZWQsWS5kYXRhXSk7aWYoImJtcHN0ciI9PT1XKXtjb25zdCBOPUIuYWxsb2MoMipZLmxlbmd0''@;'; + put 'put ''aCk7Zm9yKGxldCBlZT0wO2VlPFkubGVuZ3RoO2VlKyspTi53cml0ZVVJbnQxNkJFKFkuY2hhckNvZGVBdChlZSksMiplZSk7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoTil9cmV0dXJuIm51bXN0ciI9PT1XP3RoaXMuX2lzTnVtc3RyKFkpP3RoaXMuX2NyZWF0ZUVuY29kZXJC''@;'; + put 'put ''dWZmZXIoWSk6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IG51bXN0ciBzdXBwb3J0cyBvbmx5IGRpZ2l0cyBhbmQgc3BhY2UiKToicHJpbnRzdHIiPT09Vz90aGlzLl9pc1ByaW50c3RyKFkpP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWSk6dGhpcy5y''@;'; + put 'put ''ZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHN1cHBvcnRzIG9ubHkgbGF0aW4gdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzLCBzcGFjZSwgYXBvc3Ryb3BoZSwgbGVmdCBhbmQgcmlndGggcGFyZW50aGVzaXMsIHBsdXMgc2lnbiwg''@;'; + put 'put ''Y29tbWEsIGh5cGhlbiwgZG90LCBzbGFzaCwgY29sb24sIGVxdWFsIHNpZ24sIHF1ZXN0aW9uIG1hcmsiKTovc3RyJC8udGVzdChXKXx8Im9iakRlc2MiPT09Vz90aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFkpOnRoaXMucmVwb3J0ZXIuZXJyb3IoIkVuY29kaW5nIG9mIHN0cmluZyB0eXBl''@;'; + put 'put ''OiAiK1crIiB1bnN1cHBvcnRlZCIpfSxRLnByb3RvdHlwZS5fZW5jb2RlT2JqaWQ9ZnVuY3Rpb24oWSxXLE4pe2lmKCJzdHJpbmciPT10eXBlb2YgWSl7aWYoIVcpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoInN0cmluZyBvYmppZCBnaXZlbiwgYnV0IG5vIHZhbHVlcyBtYXAgZm91bmQi''@;'; + put 'put ''KTtpZighVy5oYXNPd25Qcm9wZXJ0eShZKSlyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigib2JqaWQgbm90IGZvdW5kIGluIHZhbHVlcyBtYXAiKTtZPVdbWV0uc3BsaXQoL1tccy5dKy9nKTtmb3IobGV0IHNlPTA7c2U8WS5sZW5ndGg7c2UrKylZW3NlXXw9MH1lbHNlIGlmKEFycmF5Lmlz''@;'; + put 'put ''QXJyYXkoWSkpe1k9WS5zbGljZSgpO2ZvcihsZXQgc2U9MDtzZTxZLmxlbmd0aDtzZSsrKVlbc2VdfD0wfWlmKCFBcnJheS5pc0FycmF5KFkpKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJvYmppZCgpIHNob3VsZCBiZSBlaXRoZXIgYXJyYXkgb3Igc3RyaW5nLCBnb3Q6ICIrSlNPTi5z''@;'; + put 'put ''dHJpbmdpZnkoWSkpO2lmKCFOKXtpZihZWzFdPj00MClyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigiU2Vjb25kIG9iamlkIGlkZW50aWZpZXIgT09CIik7WS5zcGxpY2UoMCwyLDQwKllbMF0rWVsxXSl9bGV0IGVlPTA7Zm9yKGxldCBzZT0wO3NlPFkubGVuZ3RoO3NlKyspe2xldCBvZT1Z''@;'; + put 'put ''W3NlXTtmb3IoZWUrKztvZT49MTI4O29lPj49NyllZSsrfWNvbnN0IHE9Qi5hbGxvYyhlZSk7bGV0IEo9cS5sZW5ndGgtMTtmb3IobGV0IHNlPVkubGVuZ3RoLTE7c2U+PTA7c2UtLSl7bGV0IG9lPVlbc2VdO2ZvcihxW0otLV09MTI3Jm9lOyhvZT4+PTcpPjA7KXFbSi0tXT0xMjh8MTI3Jm9l''@;'; + put 'put ''fXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHEpfSxRLnByb3RvdHlwZS5fZW5jb2RlVGltZT1mdW5jdGlvbihZLFcpe2xldCBOO2NvbnN0IGVlPW5ldyBEYXRlKFkpO3JldHVybiJnZW50aW1lIj09PVc/Tj1bWihlZS5nZXRVVENGdWxsWWVhcigpKSxaKGVlLmdldFVUQ01vbnRo''@;'; + put 'put ''KCkrMSksWihlZS5nZXRVVENEYXRlKCkpLFooZWUuZ2V0VVRDSG91cnMoKSksWihlZS5nZXRVVENNaW51dGVzKCkpLFooZWUuZ2V0VVRDU2Vjb25kcygpKSwiWiJdLmpvaW4oIiIpOiJ1dGN0aW1lIj09PVc/Tj1bWihlZS5nZXRVVENGdWxsWWVhcigpJTEwMCksWihlZS5nZXRVVENNb250aCgp''@;'; + put 'put ''KzEpLFooZWUuZ2V0VVRDRGF0ZSgpKSxaKGVlLmdldFVUQ0hvdXJzKCkpLFooZWUuZ2V0VVRDTWludXRlcygpKSxaKGVlLmdldFVUQ1NlY29uZHMoKSksIloiXS5qb2luKCIiKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyAiK1crIiB0aW1lIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Iiks''@;'; + put 'put ''dGhpcy5fZW5jb2RlU3RyKE4sIm9jdHN0ciIpfSxRLnByb3RvdHlwZS5fZW5jb2RlTnVsbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKCIiKX0sUS5wcm90b3R5cGUuX2VuY29kZUludD1mdW5jdGlvbihZLFcpe2lmKCJzdHJpbmciPT10eXBlb2YgWSl7aWYo''@;'; + put 'put ''IVcpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIlN0cmluZyBpbnQgb3IgZW51bSBnaXZlbiwgYnV0IG5vIHZhbHVlcyBtYXAiKTtpZighVy5oYXNPd25Qcm9wZXJ0eShZKSlyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigiVmFsdWVzIG1hcCBkb2Vzbid0IGNvbnRhaW46ICIrSlNPTi5z''@;'; + put 'put ''dHJpbmdpZnkoWSkpO1k9V1tZXX1pZigibnVtYmVyIiE9dHlwZW9mIFkmJiFCLmlzQnVmZmVyKFkpKXtjb25zdCBxPVkudG9BcnJheSgpOyFZLnNpZ24mJjEyOCZxWzBdJiZxLnVuc2hpZnQoMCksWT1CLmZyb20ocSl9aWYoQi5pc0J1ZmZlcihZKSl7bGV0IHE9WS5sZW5ndGg7MD09PVkubGVu''@;'; + put 'put ''Z3RoJiZxKys7Y29uc3QgSj1CLmFsbG9jKHEpO3JldHVybiBZLmNvcHkoSiksMD09PVkubGVuZ3RoJiYoSlswXT0wKSx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEopfWlmKFk8MTI4KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFkpO2lmKFk8MjU2KXJldHVybiB0aGlzLl9j''@;'; + put 'put ''cmVhdGVFbmNvZGVyQnVmZmVyKFswLFldKTtsZXQgTj0xO2ZvcihsZXQgcT1ZO3E+PTI1NjtxPj49OClOKys7Y29uc3QgZWU9bmV3IEFycmF5KE4pO2ZvcihsZXQgcT1lZS5sZW5ndGgtMTtxPj0wO3EtLSllZVtxXT0yNTUmWSxZPj49ODtyZXR1cm4gMTI4JmVlWzBdJiZlZS51bnNoaWZ0KDAp''@;'; + put 'put ''LHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoQi5mcm9tKGVlKSl9LFEucHJvdG90eXBlLl9lbmNvZGVCb29sPWZ1bmN0aW9uKFkpe3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFk/MjU1OjApfSxRLnByb3RvdHlwZS5fdXNlPWZ1bmN0aW9uKFksVyl7cmV0dXJuImZ1bmN0aW9u''@;'; + put 'put ''Ij09dHlwZW9mIFkmJihZPVkoVykpLFkuX2dldEVuY29kZXIoImRlciIpLnRyZWV9LFEucHJvdG90eXBlLl9za2lwRGVmYXVsdD1mdW5jdGlvbihZLFcsTil7Y29uc3QgZWU9dGhpcy5fYmFzZVN0YXRlO2xldCBxO2lmKG51bGw9PT1lZS5kZWZhdWx0KXJldHVybiExO2NvbnN0IEo9WS5qb2lu''@;'; + put 'put ''KCk7aWYodm9pZCAwPT09ZWUuZGVmYXVsdEJ1ZmZlciYmKGVlLmRlZmF1bHRCdWZmZXI9dGhpcy5fZW5jb2RlVmFsdWUoZWUuZGVmYXVsdCxXLE4pLmpvaW4oKSksSi5sZW5ndGghPT1lZS5kZWZhdWx0QnVmZmVyLmxlbmd0aClyZXR1cm4hMTtmb3IocT0wO3E8Si5sZW5ndGg7cSsrKWlmKEpb''@;'; + put 'put ''cV0hPT1lZS5kZWZhdWx0QnVmZmVyW3FdKXJldHVybiExO3JldHVybiEwfX0sMjExMzE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUplO21lLmRlcj1MKDE2Mzc0KSxtZS5wZW09TCgzNTMwKX0sMzUzMDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9TCg4Mzg5''@;'; + put 'put ''NCksQj1MKDE2Mzc0KTtmdW5jdGlvbiBFKE1lKXtCLmNhbGwodGhpcyxNZSksdGhpcy5lbmM9InBlbSJ9bWUoRSxCKSxYZS5leHBvcnRzPUUsRS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKFUsUSl7Y29uc3QgaWU9Qi5wcm90b3R5cGUuZW5jb2RlLmNhbGwodGhpcyxVKS50b1N0cmluZygi''@;'; + put 'put ''YmFzZTY0IiksbGU9WyItLS0tLUJFR0lOICIrUS5sYWJlbCsiLS0tLS0iXTtmb3IobGV0IFk9MDtZPGllLmxlbmd0aDtZKz02NClsZS5wdXNoKGllLnNsaWNlKFksWSs2NCkpO3JldHVybiBsZS5wdXNoKCItLS0tLUVORCAiK1EubGFiZWwrIi0tLS0tIiksbGUuam9pbigiXG4iKX19LDEzODU0''@;'; + put 'put ''OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSxCKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShoZSxPKXtpZighaGUpdGhyb3cgbmV3IEVycm9yKE98fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gTWUoaGUsTyl7aGUuc3VwZXJfPU87dmFyIHo9ZnVuY3Rpb24oKXt9O3oucHJv''@;'; + put 'put ''dG90eXBlPU8ucHJvdG90eXBlLGhlLnByb3RvdHlwZT1uZXcgeixoZS5wcm90b3R5cGUuY29uc3RydWN0b3I9aGV9ZnVuY3Rpb24gVShoZSxPLHope2lmKFUuaXNCTihoZSkpcmV0dXJuIGhlO3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1u''@;'; + put 'put ''dWxsLG51bGwhPT1oZSYmKCgibGUiPT09T3x8ImJlIj09PU8pJiYoej1PLE89MTApLHRoaXMuX2luaXQoaGV8fDAsT3x8MTAsenx8ImJlIikpfXZhciBROyJvYmplY3QiPT10eXBlb2YgbWU/bWUuZXhwb3J0cz1VOkIuQk49VSxVLkJOPVUsVS53b3JkU2l6ZT0yNjt0cnl7UT0idW5kZWZpbmVk''@;'; + put 'put ''IiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOkwoODA5NTApLkJ1ZmZlcn1jYXRjaChoZSl7fWZ1bmN0aW9uIFooaGUsTyl7dmFyIHo9aGUuY2hhckNvZGVBdChPKTtyZXR1cm4gej49NjUmJno8PTcwP3otNTU6ej49OTcmJno8PTEwMj96LTg3''@;'; + put 'put ''OnotNDgmMTV9ZnVuY3Rpb24gaWUoaGUsTyx6KXt2YXIgbmU9WihoZSx6KTtyZXR1cm4gei0xPj1PJiYobmV8PVooaGUsei0xKTw8NCksbmV9ZnVuY3Rpb24gbGUoaGUsTyx6LG5lKXtmb3IodmFyIHRlPTAseD1NYXRoLm1pbihoZS5sZW5ndGgseiksUD1PO1A8eDtQKyspe3ZhciBWPWhlLmNo''@;'; + put 'put ''YXJDb2RlQXQoUCktNDg7dGUqPW5lLHRlKz1WPj00OT9WLTQ5KzEwOlY+PTE3P1YtMTcrMTA6Vn1yZXR1cm4gdGV9VS5pc0JOPWZ1bmN0aW9uKE8pe3JldHVybiBPIGluc3RhbmNlb2YgVXx8bnVsbCE9PU8mJiJvYmplY3QiPT10eXBlb2YgTyYmTy5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PVUu''@;'; + put 'put ''d29yZFNpemUmJkFycmF5LmlzQXJyYXkoTy53b3Jkcyl9LFUubWF4PWZ1bmN0aW9uKE8seil7cmV0dXJuIE8uY21wKHopPjA/Tzp6fSxVLm1pbj1mdW5jdGlvbihPLHope3JldHVybiBPLmNtcCh6KTwwP086en0sVS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oTyx6LG5lKXtpZigibnVtYmVy''@;'; + put 'put ''Ij09dHlwZW9mIE8pcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoTyx6LG5lKTtpZigib2JqZWN0Ij09dHlwZW9mIE8pcmV0dXJuIHRoaXMuX2luaXRBcnJheShPLHosbmUpOyJoZXgiPT09eiYmKHo9MTYpLEUoej09PSgwfHopJiZ6Pj0yJiZ6PD0zNik7dmFyIHRlPTA7Ii0iPT09KE89Ty50b1N0''@;'; + put 'put ''cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJih0ZSsrLHRoaXMubmVnYXRpdmU9MSksdGU8Ty5sZW5ndGgmJigxNj09PXo/dGhpcy5fcGFyc2VIZXgoTyx0ZSxuZSk6KHRoaXMuX3BhcnNlQmFzZShPLHosdGUpLCJsZSI9PT1uZSYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgp''@;'; + put 'put ''LHosbmUpKSl9LFUucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKE8seixuZSl7TzwwJiYodGhpcy5uZWdhdGl2ZT0xLE89LU8pLE88NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJk9dLHRoaXMubGVuZ3RoPTEpOk88NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcx''@;'; + put 'put ''MDg4NjMmTyxPLzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKTooRShPPDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJk8sTy82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09bmUmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJy''@;'; + put 'put ''YXkoKSx6LG5lKX0sVS5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbihPLHosbmUpe2lmKEUoIm51bWJlciI9PXR5cGVvZiBPLmxlbmd0aCksTy5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoTy5sZW5n''@;'; + put 'put ''dGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgdGU9MDt0ZTx0aGlzLmxlbmd0aDt0ZSsrKXRoaXMud29yZHNbdGVdPTA7dmFyIHgsUCxWPTA7aWYoImJlIj09PW5lKWZvcih0ZT1PLmxlbmd0aC0xLHg9MDt0ZT49MDt0ZS09Myl0aGlzLndvcmRzW3hdfD0o''@;'; + put 'put ''UD1PW3RlXXxPW3RlLTFdPDw4fE9bdGUtMl08PDE2KTw8ViY2NzEwODg2Myx0aGlzLndvcmRzW3grMV09UD4+PjI2LVYmNjcxMDg4NjMsKFYrPTI0KT49MjYmJihWLT0yNix4KyspO2Vsc2UgaWYoImxlIj09PW5lKWZvcih0ZT0wLHg9MDt0ZTxPLmxlbmd0aDt0ZSs9Myl0aGlzLndvcmRzW3hd''@;'; + put 'put ''fD0oUD1PW3RlXXxPW3RlKzFdPDw4fE9bdGUrMl08PDE2KTw8ViY2NzEwODg2Myx0aGlzLndvcmRzW3grMV09UD4+PjI2LVYmNjcxMDg4NjMsKFYrPTI0KT49MjYmJihWLT0yNix4KyspO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbihPLHosbmUp''@;'; + put 'put ''e3RoaXMubGVuZ3RoPU1hdGguY2VpbCgoTy5sZW5ndGgteikvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgdGU9MDt0ZTx0aGlzLmxlbmd0aDt0ZSsrKXRoaXMud29yZHNbdGVdPTA7dmFyIFYseD0wLFA9MDtpZigiYmUiPT09bmUpZm9yKHRlPU8ubGVuZ3Ro''@;'; + put 'put ''LTE7dGU+PXo7dGUtPTIpVj1pZShPLHosdGUpPDx4LHRoaXMud29yZHNbUF18PTY3MTA4ODYzJlYseD49MTg/KHgtPTE4LHRoaXMud29yZHNbUCs9MV18PVY+Pj4yNik6eCs9ODtlbHNlIGZvcih0ZT0oTy5sZW5ndGgteiklMj09MD96KzE6ejt0ZTxPLmxlbmd0aDt0ZSs9MilWPWllKE8seix0''@;'; + put 'put ''ZSk8PHgsdGhpcy53b3Jkc1tQXXw9NjcxMDg4NjMmVix4Pj0xOD8oeC09MTgsdGhpcy53b3Jkc1tQKz0xXXw9Vj4+PjI2KTp4Kz04O3RoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihPLHosbmUpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZh''@;'; + put 'put ''ciB0ZT0wLHg9MTt4PD02NzEwODg2Mzt4Kj16KXRlKys7dGUtLSx4PXgvenwwO2Zvcih2YXIgUD1PLmxlbmd0aC1uZSxWPVAldGUsVD1NYXRoLm1pbihQLFAtVikrbmUsUz0wLEY9bmU7RjxUO0YrPXRlKVM9bGUoTyxGLEYrdGUseiksdGhpcy5pbXVsbih4KSx0aGlzLndvcmRzWzBdK1M8Njcx''@;'; + put 'put ''MDg4NjQ/dGhpcy53b3Jkc1swXSs9Uzp0aGlzLl9pYWRkbihTKTtpZigwIT09Vil7dmFyIHllPTE7Zm9yKFM9bGUoTyxGLE8ubGVuZ3RoLHopLEY9MDtGPFY7RisrKXllKj16O3RoaXMuaW11bG4oeWUpLHRoaXMud29yZHNbMF0rUzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1TOnRoaXMuX2lh''@;'; + put 'put ''ZGRuKFMpfXRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuY29weT1mdW5jdGlvbihPKXtPLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB6PTA7ejx0aGlzLmxlbmd0aDt6KyspTy53b3Jkc1t6XT10aGlzLndvcmRzW3pdO08ubGVuZ3RoPXRoaXMubGVuZ3RoLE8ubmVnYXRp''@;'; + put 'put ''dmU9dGhpcy5uZWdhdGl2ZSxPLnJlZD10aGlzLnJlZH0sVS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgTz1uZXcgVShudWxsKTtyZXR1cm4gdGhpcy5jb3B5KE8pLE99LFUucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oTyl7Zm9yKDt0aGlzLmxlbmd0aDxPOyl0aGlzLndvcmRz''@;'; + put 'put ''W3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sVS5wcm90b3R5cGUuX25v''@;'; + put 'put ''cm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LFUucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmco''@;'; + put 'put ''MTYpKyI+In07dmFyIFk9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAi''@;'; + put 'put ''LCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sVz1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1''@;'; + put 'put ''LDUsNSw1XSxOPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcw''@;'; + put 'put ''NDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIHEoaGUsTyx6''@;'; + put 'put ''KXt6Lm5lZ2F0aXZlPU8ubmVnYXRpdmVeaGUubmVnYXRpdmU7dmFyIG5lPWhlLmxlbmd0aCtPLmxlbmd0aHwwO3oubGVuZ3RoPW5lLG5lPW5lLTF8MDt2YXIgdGU9MHxoZS53b3Jkc1swXSx4PTB8Ty53b3Jkc1swXSxQPXRlKngsVD1QLzY3MTA4ODY0fDA7ei53b3Jkc1swXT02NzEwODg2MyZQ''@;'; + put 'put ''O2Zvcih2YXIgUz0xO1M8bmU7UysrKXtmb3IodmFyIEY9VD4+PjI2LHllPTY3MTA4ODYzJlQsQ2U9TWF0aC5taW4oUyxPLmxlbmd0aC0xKSxEZT1NYXRoLm1heCgwLFMtaGUubGVuZ3RoKzEpO0RlPD1DZTtEZSsrKUYrPShQPSh0ZT0wfGhlLndvcmRzW1MtRGV8MF0pKih4PTB8Ty53b3Jkc1tE''@;'; + put 'put ''ZV0pK3llKS82NzEwODg2NHwwLHllPTY3MTA4ODYzJlA7ei53b3Jkc1tTXT0wfHllLFQ9MHxGfXJldHVybiAwIT09VD96LndvcmRzW1NdPTB8VDp6Lmxlbmd0aC0tLHouc3RyaXAoKX1VLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihPLHope3ZhciBuZTtpZih6PTB8enx8MSwxNj09PShP''@;'; + put 'put ''PU98fDEwKXx8ImhleCI9PT1PKXtuZT0iIjtmb3IodmFyIHRlPTAseD0wLFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9dGhpcy53b3Jkc1tQXSxUPSgxNjc3NzIxNSYoVjw8dGV8eCkpLnRvU3RyaW5nKDE2KTtuZT0wIT0oeD1WPj4+MjQtdGUmMTY3NzcyMTUpfHxQIT09dGhpcy5sZW5n''@;'; + put 'put ''dGgtMT9ZWzYtVC5sZW5ndGhdK1QrbmU6VCtuZSwodGUrPTIpPj0yNiYmKHRlLT0yNixQLS0pfWZvcigwIT09eCYmKG5lPXgudG9TdHJpbmcoMTYpK25lKTtuZS5sZW5ndGgleiE9MDspbmU9IjAiK25lO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKG5lPSItIituZSksbmV9aWYoTz09PSgw''@;'; + put 'put ''fE8pJiZPPj0yJiZPPD0zNil7dmFyIFM9V1tPXSxGPU5bT107bmU9IiI7dmFyIHllPXRoaXMuY2xvbmUoKTtmb3IoeWUubmVnYXRpdmU9MDsheWUuaXNaZXJvKCk7KXt2YXIgQ2U9eWUubW9kbihGKS50b1N0cmluZyhPKTtuZT0oeWU9eWUuaWRpdm4oRikpLmlzWmVybygpP0NlK25lOllbUy1D''@;'; + put 'put ''ZS5sZW5ndGhdK0NlK25lfWZvcih0aGlzLmlzWmVybygpJiYobmU9IjAiK25lKTtuZS5sZW5ndGgleiE9MDspbmU9IjAiK25lO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKG5lPSItIituZSksbmV9RSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBPPXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9PKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/Tys9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRz''@;'; + put 'put ''WzFdOnRoaXMubGVuZ3RoPjImJkUoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy1POk99LFUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sVS5wcm90b3R5cGUudG9C''@;'; + put 'put ''dWZmZXI9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gRSh2b2lkIDAhPT1RKSx0aGlzLnRvQXJyYXlMaWtlKFEsTyx6KX0sVS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LE8seil9LFUucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0''@;'; + put 'put ''aW9uKE8seixuZSl7dmFyIHRlPXRoaXMuYnl0ZUxlbmd0aCgpLHg9bmV8fE1hdGgubWF4KDEsdGUpO0UodGU8PXgsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxFKHg+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBULFMs''@;'; + put 'put ''UD0ibGUiPT09eixWPW5ldyBPKHgpLEY9dGhpcy5jbG9uZSgpO2lmKFApe2ZvcihTPTA7IUYuaXNaZXJvKCk7UysrKVQ9Ri5hbmRsbigyNTUpLEYuaXVzaHJuKDgpLFZbU109VDtmb3IoO1M8eDtTKyspVltTXT0wfWVsc2V7Zm9yKFM9MDtTPHgtdGU7UysrKVZbU109MDtmb3IoUz0wOyFGLmlz''@;'; + put 'put ''WmVybygpO1MrKylUPUYuYW5kbG4oMjU1KSxGLml1c2hybig4KSxWW3gtUy0xXT1UfXJldHVybiBWfSxVLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oTyl7cmV0dXJuIDMyLU1hdGguY2x6MzIoTyl9OmZ1bmN0aW9uKE8pe3ZhciB6PU8sbmU9MDtyZXR1cm4gej49''@;'; + put 'put ''NDA5NiYmKG5lKz0xMyx6Pj4+PTEzKSx6Pj02NCYmKG5lKz03LHo+Pj49Nyksej49OCYmKG5lKz00LHo+Pj49NCksej49MiYmKG5lKz0yLHo+Pj49MiksbmUren0sVS5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKE8pe2lmKDA9PT1PKXJldHVybiAyNjt2YXIgej1PLG5lPTA7cmV0dXJu''@;'; + put 'put ''IDA9PSg4MTkxJnopJiYobmUrPTEzLHo+Pj49MTMpLDA9PSgxMjcmeikmJihuZSs9Nyx6Pj4+PTcpLDA9PSgxNSZ6KSYmKG5lKz00LHo+Pj49NCksMD09KDMmeikmJihuZSs9Mix6Pj4+PTIpLDA9PSgxJnopJiZuZSsrLG5lfSxVLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIg''@;'; + put 'put ''ej10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKSt6fSxVLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBPPTAsej0wO3o8dGhpcy5sZW5ndGg7eisr''@;'; + put 'put ''KXt2YXIgbmU9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1t6XSk7aWYoTys9bmUsMjYhPT1uZSlicmVha31yZXR1cm4gT30sVS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sVS5wcm90b3R5cGUudG9Ud29zPWZ1''@;'; + put 'put ''bmN0aW9uKE8pe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKE8pLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sVS5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMudGVzdG4oTy0xKT90aGlzLm5vdG4oTykuaWFkZG4oMSkuaW5lZygpOnRo''@;'; + put 'put ''aXMuY2xvbmUoKX0sVS5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LFUucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxVLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNa''@;'; + put 'put ''ZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxVLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKE8pe2Zvcig7dGhpcy5sZW5ndGg8Ty5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIHo9MDt6PE8ubGVuZ3RoO3orKyl0aGlzLndvcmRzW3pdPXRoaXMud29y''@;'; + put 'put ''ZHNbel18Ty53b3Jkc1t6XTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8Ty5uZWdhdGl2ZSkpLHRoaXMuaXVvcihPKX0sVS5wcm90b3R5cGUub3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3Ro''@;'; + put 'put ''Pk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoTyk6Ty5jbG9uZSgpLmlvcih0aGlzKX0sVS5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihPKTpPLmNsb25lKCkuaXVvcih0aGlzKX0sVS5wcm90b3R5cGUuaXVh''@;'; + put 'put ''bmQ9ZnVuY3Rpb24oTyl7dmFyIHo7ej10aGlzLmxlbmd0aD5PLmxlbmd0aD9POnRoaXM7Zm9yKHZhciBuZT0wO25lPHoubGVuZ3RoO25lKyspdGhpcy53b3Jkc1tuZV09dGhpcy53b3Jkc1tuZV0mTy53b3Jkc1tuZV07cmV0dXJuIHRoaXMubGVuZ3RoPXoubGVuZ3RoLHRoaXMuc3RyaXAoKX0s''@;'; + put 'put ''VS5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChPKX0sVS5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChPKTpPLmNs''@;'; + put 'put ''b25lKCkuaWFuZCh0aGlzKX0sVS5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKE8pOk8uY2xvbmUoKS5pdWFuZCh0aGlzKX0sVS5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oTyl7dmFyIHosbmU7dGhpcy5s''@;'; + put 'put ''ZW5ndGg+Ty5sZW5ndGg/KHo9dGhpcyxuZT1PKTooej1PLG5lPXRoaXMpO2Zvcih2YXIgdGU9MDt0ZTxuZS5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT16LndvcmRzW3RlXV5uZS53b3Jkc1t0ZV07aWYodGhpcyE9PXopZm9yKDt0ZTx6Lmxlbmd0aDt0ZSsrKXRoaXMud29yZHNbdGVdPXou''@;'; + put 'put ''d29yZHNbdGVdO3JldHVybiB0aGlzLmxlbmd0aD16Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8Ty5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoTyl9LFUucHJvdG90eXBlLnhvcj1mdW5jdGlvbihPKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoTyk6Ty5jbG9uZSgpLml4b3IodGhpcyl9LFUucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihPKTpPLmNsb25lKCkuaXV4b3Io''@;'; + put 'put ''dGhpcyl9LFUucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej0wfE1hdGguY2VpbChPLzI2KSxuZT1PJTI2O3RoaXMuX2V4cGFuZCh6KSxuZT4wJiZ6LS07Zm9yKHZhciB0ZT0wO3RlPHo7dGUrKyl0aGlzLndvcmRzW3RlXT02NzEw''@;'; + put 'put ''ODg2MyZ+dGhpcy53b3Jkc1t0ZV07cmV0dXJuIG5lPjAmJih0aGlzLndvcmRzW3RlXT1+dGhpcy53b3Jkc1t0ZV0mNjcxMDg4NjM+PjI2LW5lKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bihPKX0sVS5wcm90b3R5''@;'; + put 'put ''cGUuc2V0bj1mdW5jdGlvbihPLHope0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgbmU9Ty8yNnwwLHRlPU8lMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChuZSsxKSx0aGlzLndvcmRzW25lXT16P3RoaXMud29yZHNbbmVdfDE8PHRlOnRoaXMud29yZHNbbmVdJn4oMTw8dGUpLHRoaXMu''@;'; + put 'put ''c3RyaXAoKX0sVS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihPKXt2YXIgeixuZSx0ZTtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PU8ubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx6PXRoaXMuaXN1YihPKSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09''@;'; + put 'put ''PXRoaXMubmVnYXRpdmUmJjAhPT1PLm5lZ2F0aXZlKXJldHVybiBPLm5lZ2F0aXZlPTAsej10aGlzLmlzdWIoTyksTy5uZWdhdGl2ZT0xLHouX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+Ty5sZW5ndGg/KG5lPXRoaXMsdGU9Tyk6KG5lPU8sdGU9dGhpcyk7Zm9yKHZhciB4PTAsUD0wO1A8dGUu''@;'; + put 'put ''bGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPTY3MTA4ODYzJih6PSgwfG5lLndvcmRzW1BdKSsoMHx0ZS53b3Jkc1tQXSkreCkseD16Pj4+MjY7Zm9yKDswIT09eCYmUDxuZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09NjcxMDg4NjMmKHo9KDB8bmUud29yZHNbUF0pK3gpLHg9ej4+PjI2O2lm''@;'; + put 'put ''KHRoaXMubGVuZ3RoPW5lLmxlbmd0aCwwIT09eCl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT14LHRoaXMubGVuZ3RoKys7ZWxzZSBpZihuZSE9PXRoaXMpZm9yKDtQPG5lLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT1uZS53b3Jkc1tQXTtyZXR1cm4gdGhpc30sVS5wcm90b3R5cGUuYWRkPWZ1''@;'; + put 'put ''bmN0aW9uKE8pe3ZhciB6O3JldHVybiAwIT09Ty5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KE8ubmVnYXRpdmU9MCx6PXRoaXMuc3ViKE8pLE8ubmVnYXRpdmVePTEseik6MD09PU8ubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAsej1PLnN1Yih0aGlz''@;'; + put 'put ''KSx0aGlzLm5lZ2F0aXZlPTEseik6dGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoTyk6Ty5jbG9uZSgpLmlhZGQodGhpcyl9LFUucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oTyl7aWYoMCE9PU8ubmVnYXRpdmUpe08ubmVnYXRpdmU9MDt2YXIgej10aGlzLmlhZGQoTyk7''@;'; + put 'put ''cmV0dXJuIE8ubmVnYXRpdmU9MSx6Ll9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciB0ZSx4LG5lPXRoaXMuY21wKE8pO2lmKDA9PT1uZSlyZXR1cm4g''@;'; + put 'put ''dGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7bmU+MD8odGU9dGhpcyx4PU8pOih0ZT1PLHg9dGhpcyk7Zm9yKHZhciBQPTAsVj0wO1Y8eC5sZW5ndGg7VisrKVA9KHo9KDB8dGUud29yZHNbVl0pLSgwfHgud29yZHNbVl0pK1ApPj4yNix0aGlzLndv''@;'; + put 'put ''cmRzW1ZdPTY3MTA4ODYzJno7Zm9yKDswIT09UCYmVjx0ZS5sZW5ndGg7VisrKVA9KHo9KDB8dGUud29yZHNbVl0pK1ApPj4yNix0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJno7aWYoMD09PVAmJlY8dGUubGVuZ3RoJiZ0ZSE9PXRoaXMpZm9yKDtWPHRlLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tW''@;'; + put 'put ''XT10ZS53b3Jkc1tWXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsViksdGUhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoTyl9O3ZhciBKPWZ1''@;'; + put 'put ''bmN0aW9uKE8seixuZSl7dmFyIFQsUyxGLHRlPU8ud29yZHMseD16LndvcmRzLFA9bmUud29yZHMsVj0wLHllPTB8dGVbMF0sQ2U9ODE5MSZ5ZSxEZT15ZT4+PjEzLFBlPTB8dGVbMV0sUWU9ODE5MSZQZSwkZT1QZT4+PjEzLGd0PTB8dGVbMl0sd3Q9ODE5MSZndCx2dD1ndD4+PjEzLEF0PTB8''@;'; + put 'put ''dGVbM10sbXQ9ODE5MSZBdCxodD1BdD4+PjEzLEJ0PTB8dGVbNF0sb249ODE5MSZCdCxfdD1CdD4+PjEzLHR0PTB8dGVbNV0sZXQ9ODE5MSZ0dCxhdD10dD4+PjEzLEx0PTB8dGVbNl0sQ3Q9ODE5MSZMdCxmdD1MdD4+PjEzLEh0PTB8dGVbN10sR2U9ODE5MSZIdCxVZT1IdD4+PjEzLHl0PTB8''@;'; + put 'put ''dGVbOF0sanQ9ODE5MSZ5dCxRdD15dD4+PjEzLGduPTB8dGVbOV0sZG49ODE5MSZnbix5bj1nbj4+PjEzLGxuPTB8eFswXSxObj04MTkxJmxuLGJuPWxuPj4+MTMsZXI9MHx4WzFdLHNyPTgxOTEmZXIsWG49ZXI+Pj4xMyxGcj0wfHhbMl0seHI9ODE5MSZGcixxdD1Gcj4+PjEzLHByPTB8eFsz''@;'; + put 'put ''XSxucj04MTkxJnByLEFuPXByPj4+MTMscW49MHx4WzRdLFd0PTgxOTEmcW4scG49cW4+Pj4xMyxLbj0wfHhbNV0sTnQ9ODE5MSZLbixzbj1Lbj4+PjEzLFVuPTB8eFs2XSx3bj04MTkxJlVuLHRuPVVuPj4+MTMsem49MHx4WzddLFRyPTgxOTEmem4sQm49em4+Pj4xMyxrcj0wfHhbOF0sbW49''@;'; + put 'put ''ODE5MSZrcix1bj1rcj4+PjEzLGNuPTB8eFs5XSxfbj04MTkxJmNuLEd0PWNuPj4+MTM7bmUubmVnYXRpdmU9Ty5uZWdhdGl2ZV56Lm5lZ2F0aXZlLG5lLmxlbmd0aD0xOTt2YXIga249KFYrKFQ9TWF0aC5pbXVsKENlLE5uKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bChDZSxibikpK01h''@;'; + put 'put ''dGguaW11bChEZSxObil8MCkpPDwxMyl8MDtWPSgoRj1NYXRoLmltdWwoRGUsYm4pKSsoUz4+PjEzKXwwKSsoa24+Pj4yNil8MCxrbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwoUWUsTm4pLFM9KFM9TWF0aC5pbXVsKFFlLGJuKSkrTWF0aC5pbXVsKCRlLE5uKXwwLEY9TWF0aC5pbXVsKCRlLGJu''@;'; + put 'put ''KTt2YXIgVm49KFYrKFQ9VCtNYXRoLmltdWwoQ2Usc3IpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxYbil8MCkrTWF0aC5pbXVsKERlLHNyKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLFhuKXwwKSsoUz4+PjEzKXwwKSsoVm4+Pj4yNil8MCxWbiY9NjcxMDg4''@;'; + put 'put ''NjMsVD1NYXRoLmltdWwod3QsTm4pLFM9KFM9TWF0aC5pbXVsKHd0LGJuKSkrTWF0aC5pbXVsKHZ0LE5uKXwwLEY9TWF0aC5pbXVsKHZ0LGJuKSxUPVQrTWF0aC5pbXVsKFFlLHNyKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsWG4pfDApK01hdGguaW11bCgkZSxzcil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KCRlLFhuKXwwO3ZhciBlbj0oVisoVD1UK01hdGguaW11bChDZSx4cil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHF0KXwwKStNYXRoLmltdWwoRGUseHIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUscXQpfDApKyhTPj4+MTMpfDApKyhlbj4+PjI2KXwwLGVu''@;'; + put 'put ''Jj02NzEwODg2MyxUPU1hdGguaW11bChtdCxObiksUz0oUz1NYXRoLmltdWwobXQsYm4pKStNYXRoLmltdWwoaHQsTm4pfDAsRj1NYXRoLmltdWwoaHQsYm4pLFQ9VCtNYXRoLmltdWwod3Qsc3IpfDAsUz0oUz1TK01hdGguaW11bCh3dCxYbil8MCkrTWF0aC5pbXVsKHZ0LHNyKXwwLEY9RitN''@;'; + put 'put ''YXRoLmltdWwodnQsWG4pfDAsVD1UK01hdGguaW11bChRZSx4cil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHF0KXwwKStNYXRoLmltdWwoJGUseHIpfDAsRj1GK01hdGguaW11bCgkZSxxdCl8MDt2YXIgSW49KFYrKFQ9VCtNYXRoLmltdWwoQ2UsbnIpfDApfDApKygoODE5MSYoUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bChDZSxBbil8MCkrTWF0aC5pbXVsKERlLG5yKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLEFuKXwwKSsoUz4+PjEzKXwwKSsoSW4+Pj4yNil8MCxJbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwob24sTm4pLFM9KFM9TWF0aC5pbXVsKG9uLGJuKSkrTWF0aC5pbXVsKF90''@;'; + put 'put ''LE5uKXwwLEY9TWF0aC5pbXVsKF90LGJuKSxUPVQrTWF0aC5pbXVsKG10LHNyKXwwLFM9KFM9UytNYXRoLmltdWwobXQsWG4pfDApK01hdGguaW11bChodCxzcil8MCxGPUYrTWF0aC5pbXVsKGh0LFhuKXwwLFQ9VCtNYXRoLmltdWwod3QseHIpfDAsUz0oUz1TK01hdGguaW11bCh3dCxxdCl8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKHZ0LHhyKXwwLEY9RitNYXRoLmltdWwodnQscXQpfDAsVD1UK01hdGguaW11bChRZSxucil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLEFuKXwwKStNYXRoLmltdWwoJGUsbnIpfDAsRj1GK01hdGguaW11bCgkZSxBbil8MDt2YXIgSm49KFYrKFQ9VCtNYXRoLmltdWwoQ2Us''@;'; + put 'put ''V3QpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxwbil8MCkrTWF0aC5pbXVsKERlLFd0KXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHBuKXwwKSsoUz4+PjEzKXwwKSsoSm4+Pj4yNil8MCxKbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZXQsTm4pLFM9KFM9TWF0''@;'; + put 'put ''aC5pbXVsKGV0LGJuKSkrTWF0aC5pbXVsKGF0LE5uKXwwLEY9TWF0aC5pbXVsKGF0LGJuKSxUPVQrTWF0aC5pbXVsKG9uLHNyKXwwLFM9KFM9UytNYXRoLmltdWwob24sWG4pfDApK01hdGguaW11bChfdCxzcil8MCxGPUYrTWF0aC5pbXVsKF90LFhuKXwwLFQ9VCtNYXRoLmltdWwobXQseHIp''@;'; + put 'put ''fDAsUz0oUz1TK01hdGguaW11bChtdCxxdCl8MCkrTWF0aC5pbXVsKGh0LHhyKXwwLEY9RitNYXRoLmltdWwoaHQscXQpfDAsVD1UK01hdGguaW11bCh3dCxucil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LEFuKXwwKStNYXRoLmltdWwodnQsbnIpfDAsRj1GK01hdGguaW11bCh2dCxBbil8MCxU''@;'; + put 'put ''PVQrTWF0aC5pbXVsKFFlLFd0KXwwLFM9KFM9UytNYXRoLmltdWwoUWUscG4pfDApK01hdGguaW11bCgkZSxXdCl8MCxGPUYrTWF0aC5pbXVsKCRlLHBuKXwwO3ZhciBvcj0oVisoVD1UK01hdGguaW11bChDZSxOdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHNuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoRGUsTnQpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsc24pfDApKyhTPj4+MTMpfDApKyhvcj4+PjI2KXwwLG9yJj02NzEwODg2MyxUPU1hdGguaW11bChDdCxObiksUz0oUz1NYXRoLmltdWwoQ3QsYm4pKStNYXRoLmltdWwoZnQsTm4pfDAsRj1NYXRoLmltdWwo''@;'; + put 'put ''ZnQsYm4pLFQ9VCtNYXRoLmltdWwoZXQsc3IpfDAsUz0oUz1TK01hdGguaW11bChldCxYbil8MCkrTWF0aC5pbXVsKGF0LHNyKXwwLEY9RitNYXRoLmltdWwoYXQsWG4pfDAsVD1UK01hdGguaW11bChvbix4cil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHF0KXwwKStNYXRoLmltdWwoX3QseHIp''@;'; + put 'put ''fDAsRj1GK01hdGguaW11bChfdCxxdCl8MCxUPVQrTWF0aC5pbXVsKG10LG5yKXwwLFM9KFM9UytNYXRoLmltdWwobXQsQW4pfDApK01hdGguaW11bChodCxucil8MCxGPUYrTWF0aC5pbXVsKGh0LEFuKXwwLFQ9VCtNYXRoLmltdWwod3QsV3QpfDAsUz0oUz1TK01hdGguaW11bCh3dCxwbil8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKHZ0LFd0KXwwLEY9RitNYXRoLmltdWwodnQscG4pfDAsVD1UK01hdGguaW11bChRZSxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHNuKXwwKStNYXRoLmltdWwoJGUsTnQpfDAsRj1GK01hdGguaW11bCgkZSxzbil8MDt2YXIgZ3I9KFYrKFQ9VCtNYXRoLmltdWwoQ2Us''@;'; + put 'put ''d24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSx0bil8MCkrTWF0aC5pbXVsKERlLHduKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHRuKXwwKSsoUz4+PjEzKXwwKSsoZ3I+Pj4yNil8MCxnciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoR2UsTm4pLFM9KFM9TWF0''@;'; + put 'put ''aC5pbXVsKEdlLGJuKSkrTWF0aC5pbXVsKFVlLE5uKXwwLEY9TWF0aC5pbXVsKFVlLGJuKSxUPVQrTWF0aC5pbXVsKEN0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsWG4pfDApK01hdGguaW11bChmdCxzcil8MCxGPUYrTWF0aC5pbXVsKGZ0LFhuKXwwLFQ9VCtNYXRoLmltdWwoZXQseHIp''@;'; + put 'put ''fDAsUz0oUz1TK01hdGguaW11bChldCxxdCl8MCkrTWF0aC5pbXVsKGF0LHhyKXwwLEY9RitNYXRoLmltdWwoYXQscXQpfDAsVD1UK01hdGguaW11bChvbixucil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLEFuKXwwKStNYXRoLmltdWwoX3QsbnIpfDAsRj1GK01hdGguaW11bChfdCxBbil8MCxU''@;'; + put 'put ''PVQrTWF0aC5pbXVsKG10LFd0KXwwLFM9KFM9UytNYXRoLmltdWwobXQscG4pfDApK01hdGguaW11bChodCxXdCl8MCxGPUYrTWF0aC5pbXVsKGh0LHBuKXwwLFQ9VCtNYXRoLmltdWwod3QsTnQpfDAsUz0oUz1TK01hdGguaW11bCh3dCxzbil8MCkrTWF0aC5pbXVsKHZ0LE50KXwwLEY9RitN''@;'; + put 'put ''YXRoLmltdWwodnQsc24pfDAsVD1UK01hdGguaW11bChRZSx3bil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHRuKXwwKStNYXRoLmltdWwoJGUsd24pfDAsRj1GK01hdGguaW11bCgkZSx0bil8MDt2YXIgS3I9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsVHIpfDApfDApKygoODE5MSYoUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bChDZSxCbil8MCkrTWF0aC5pbXVsKERlLFRyKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLEJuKXwwKSsoUz4+PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoanQsTm4pLFM9KFM9TWF0aC5pbXVsKGp0LGJuKSkrTWF0aC5pbXVsKFF0''@;'; + put 'put ''LE5uKXwwLEY9TWF0aC5pbXVsKFF0LGJuKSxUPVQrTWF0aC5pbXVsKEdlLHNyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsWG4pfDApK01hdGguaW11bChVZSxzcil8MCxGPUYrTWF0aC5pbXVsKFVlLFhuKXwwLFQ9VCtNYXRoLmltdWwoQ3QseHIpfDAsUz0oUz1TK01hdGguaW11bChDdCxxdCl8''@;'; + put 'put ''MCkrTWF0aC5pbXVsKGZ0LHhyKXwwLEY9RitNYXRoLmltdWwoZnQscXQpfDAsVD1UK01hdGguaW11bChldCxucil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LEFuKXwwKStNYXRoLmltdWwoYXQsbnIpfDAsRj1GK01hdGguaW11bChhdCxBbil8MCxUPVQrTWF0aC5pbXVsKG9uLFd0KXwwLFM9KFM9''@;'; + put 'put ''UytNYXRoLmltdWwob24scG4pfDApK01hdGguaW11bChfdCxXdCl8MCxGPUYrTWF0aC5pbXVsKF90LHBuKXwwLFQ9VCtNYXRoLmltdWwobXQsTnQpfDAsUz0oUz1TK01hdGguaW11bChtdCxzbil8MCkrTWF0aC5pbXVsKGh0LE50KXwwLEY9RitNYXRoLmltdWwoaHQsc24pfDAsVD1UK01hdGgu''@;'; + put 'put ''aW11bCh3dCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHRuKXwwKStNYXRoLmltdWwodnQsd24pfDAsRj1GK01hdGguaW11bCh2dCx0bil8MCxUPVQrTWF0aC5pbXVsKFFlLFRyKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsQm4pfDApK01hdGguaW11bCgkZSxUcil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KCRlLEJuKXwwO3ZhciBWcj0oVisoVD1UK01hdGguaW11bChDZSxtbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHVuKXwwKStNYXRoLmltdWwoRGUsbW4pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsdW4pfDApKyhTPj4+MTMpfDApKyhWcj4+PjI2KXwwLFZy''@;'; + put 'put ''Jj02NzEwODg2MyxUPU1hdGguaW11bChkbixObiksUz0oUz1NYXRoLmltdWwoZG4sYm4pKStNYXRoLmltdWwoeW4sTm4pfDAsRj1NYXRoLmltdWwoeW4sYm4pLFQ9VCtNYXRoLmltdWwoanQsc3IpfDAsUz0oUz1TK01hdGguaW11bChqdCxYbil8MCkrTWF0aC5pbXVsKFF0LHNyKXwwLEY9RitN''@;'; + put 'put ''YXRoLmltdWwoUXQsWG4pfDAsVD1UK01hdGguaW11bChHZSx4cil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHF0KXwwKStNYXRoLmltdWwoVWUseHIpfDAsRj1GK01hdGguaW11bChVZSxxdCl8MCxUPVQrTWF0aC5pbXVsKEN0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsQW4pfDApK01hdGgu''@;'; + put 'put ''aW11bChmdCxucil8MCxGPUYrTWF0aC5pbXVsKGZ0LEFuKXwwLFQ9VCtNYXRoLmltdWwoZXQsV3QpfDAsUz0oUz1TK01hdGguaW11bChldCxwbil8MCkrTWF0aC5pbXVsKGF0LFd0KXwwLEY9RitNYXRoLmltdWwoYXQscG4pfDAsVD1UK01hdGguaW11bChvbixOdCl8MCxTPShTPVMrTWF0aC5p''@;'; + put 'put ''bXVsKG9uLHNuKXwwKStNYXRoLmltdWwoX3QsTnQpfDAsRj1GK01hdGguaW11bChfdCxzbil8MCxUPVQrTWF0aC5pbXVsKG10LHduKXwwLFM9KFM9UytNYXRoLmltdWwobXQsdG4pfDApK01hdGguaW11bChodCx3bil8MCxGPUYrTWF0aC5pbXVsKGh0LHRuKXwwLFQ9VCtNYXRoLmltdWwod3Qs''@;'; + put 'put ''VHIpfDAsUz0oUz1TK01hdGguaW11bCh3dCxCbil8MCkrTWF0aC5pbXVsKHZ0LFRyKXwwLEY9RitNYXRoLmltdWwodnQsQm4pfDAsVD1UK01hdGguaW11bChRZSxtbil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHVuKXwwKStNYXRoLmltdWwoJGUsbW4pfDAsRj1GK01hdGguaW11bCgkZSx1bil8''@;'; + put 'put ''MDt2YXIgaWk9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxHdCl8MCkrTWF0aC5pbXVsKERlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLEd0KXwwKSsoUz4+PjEzKXwwKSsoaWk+Pj4yNil8MCxpaSY9NjcxMDg4''@;'; + put 'put ''NjMsVD1NYXRoLmltdWwoZG4sc3IpLFM9KFM9TWF0aC5pbXVsKGRuLFhuKSkrTWF0aC5pbXVsKHluLHNyKXwwLEY9TWF0aC5pbXVsKHluLFhuKSxUPVQrTWF0aC5pbXVsKGp0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoanQscXQpfDApK01hdGguaW11bChRdCx4cil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KFF0LHF0KXwwLFQ9VCtNYXRoLmltdWwoR2UsbnIpfDAsUz0oUz1TK01hdGguaW11bChHZSxBbil8MCkrTWF0aC5pbXVsKFVlLG5yKXwwLEY9RitNYXRoLmltdWwoVWUsQW4pfDAsVD1UK01hdGguaW11bChDdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHBuKXwwKStNYXRoLmltdWwoZnQs''@;'; + put 'put ''V3QpfDAsRj1GK01hdGguaW11bChmdCxwbil8MCxUPVQrTWF0aC5pbXVsKGV0LE50KXwwLFM9KFM9UytNYXRoLmltdWwoZXQsc24pfDApK01hdGguaW11bChhdCxOdCl8MCxGPUYrTWF0aC5pbXVsKGF0LHNuKXwwLFQ9VCtNYXRoLmltdWwob24sd24pfDAsUz0oUz1TK01hdGguaW11bChvbix0''@;'; + put 'put ''bil8MCkrTWF0aC5pbXVsKF90LHduKXwwLEY9RitNYXRoLmltdWwoX3QsdG4pfDAsVD1UK01hdGguaW11bChtdCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKG10LEJuKXwwKStNYXRoLmltdWwoaHQsVHIpfDAsRj1GK01hdGguaW11bChodCxCbil8MCxUPVQrTWF0aC5pbXVsKHd0LG1uKXwwLFM9''@;'; + put 'put ''KFM9UytNYXRoLmltdWwod3QsdW4pfDApK01hdGguaW11bCh2dCxtbil8MCxGPUYrTWF0aC5pbXVsKHZ0LHVuKXwwO3ZhciBScj0oVisoVD1UK01hdGguaW11bChRZSxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKFFlLEd0KXwwKStNYXRoLmltdWwoJGUsX24pfDApKTw8MTMp''@;'; + put 'put ''fDA7Vj0oKEY9RitNYXRoLmltdWwoJGUsR3QpfDApKyhTPj4+MTMpfDApKyhScj4+PjI2KXwwLFJyJj02NzEwODg2MyxUPU1hdGguaW11bChkbix4ciksUz0oUz1NYXRoLmltdWwoZG4scXQpKStNYXRoLmltdWwoeW4seHIpfDAsRj1NYXRoLmltdWwoeW4scXQpLFQ9VCtNYXRoLmltdWwoanQs''@;'; + put 'put ''bnIpfDAsUz0oUz1TK01hdGguaW11bChqdCxBbil8MCkrTWF0aC5pbXVsKFF0LG5yKXwwLEY9RitNYXRoLmltdWwoUXQsQW4pfDAsVD1UK01hdGguaW11bChHZSxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHBuKXwwKStNYXRoLmltdWwoVWUsV3QpfDAsRj1GK01hdGguaW11bChVZSxwbil8''@;'; + put 'put ''MCxUPVQrTWF0aC5pbXVsKEN0LE50KXwwLFM9KFM9UytNYXRoLmltdWwoQ3Qsc24pfDApK01hdGguaW11bChmdCxOdCl8MCxGPUYrTWF0aC5pbXVsKGZ0LHNuKXwwLFQ9VCtNYXRoLmltdWwoZXQsd24pfDAsUz0oUz1TK01hdGguaW11bChldCx0bil8MCkrTWF0aC5pbXVsKGF0LHduKXwwLEY9''@;'; + put 'put ''RitNYXRoLmltdWwoYXQsdG4pfDAsVD1UK01hdGguaW11bChvbixUcil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLEJuKXwwKStNYXRoLmltdWwoX3QsVHIpfDAsRj1GK01hdGguaW11bChfdCxCbil8MCxUPVQrTWF0aC5pbXVsKG10LG1uKXwwLFM9KFM9UytNYXRoLmltdWwobXQsdW4pfDApK01h''@;'; + put 'put ''dGguaW11bChodCxtbil8MCxGPUYrTWF0aC5pbXVsKGh0LHVuKXwwO3ZhciBsaT0oVisoVD1UK01hdGguaW11bCh3dCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKHd0LEd0KXwwKStNYXRoLmltdWwodnQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwodnQsR3Qp''@;'; + put 'put ''fDApKyhTPj4+MTMpfDApKyhsaT4+PjI2KXwwLGxpJj02NzEwODg2MyxUPU1hdGguaW11bChkbixuciksUz0oUz1NYXRoLmltdWwoZG4sQW4pKStNYXRoLmltdWwoeW4sbnIpfDAsRj1NYXRoLmltdWwoeW4sQW4pLFQ9VCtNYXRoLmltdWwoanQsV3QpfDAsUz0oUz1TK01hdGguaW11bChqdCxw''@;'; + put 'put ''bil8MCkrTWF0aC5pbXVsKFF0LFd0KXwwLEY9RitNYXRoLmltdWwoUXQscG4pfDAsVD1UK01hdGguaW11bChHZSxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHNuKXwwKStNYXRoLmltdWwoVWUsTnQpfDAsRj1GK01hdGguaW11bChVZSxzbil8MCxUPVQrTWF0aC5pbXVsKEN0LHduKXwwLFM9''@;'; + put 'put ''KFM9UytNYXRoLmltdWwoQ3QsdG4pfDApK01hdGguaW11bChmdCx3bil8MCxGPUYrTWF0aC5pbXVsKGZ0LHRuKXwwLFQ9VCtNYXRoLmltdWwoZXQsVHIpfDAsUz0oUz1TK01hdGguaW11bChldCxCbil8MCkrTWF0aC5pbXVsKGF0LFRyKXwwLEY9RitNYXRoLmltdWwoYXQsQm4pfDAsVD1UK01h''@;'; + put 'put ''dGguaW11bChvbixtbil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHVuKXwwKStNYXRoLmltdWwoX3QsbW4pfDAsRj1GK01hdGguaW11bChfdCx1bil8MDt2YXIgTWk9KFYrKFQ9VCtNYXRoLmltdWwobXQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChtdCxHdCl8MCkrTWF0aC5p''@;'; + put 'put ''bXVsKGh0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKGh0LEd0KXwwKSsoUz4+PjEzKXwwKSsoTWk+Pj4yNil8MCxNaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sV3QpLFM9KFM9TWF0aC5pbXVsKGRuLHBuKSkrTWF0aC5pbXVsKHluLFd0KXwwLEY9TWF0aC5pbXVsKHluLHBu''@;'; + put 'put ''KSxUPVQrTWF0aC5pbXVsKGp0LE50KXwwLFM9KFM9UytNYXRoLmltdWwoanQsc24pfDApK01hdGguaW11bChRdCxOdCl8MCxGPUYrTWF0aC5pbXVsKFF0LHNuKXwwLFQ9VCtNYXRoLmltdWwoR2Usd24pfDAsUz0oUz1TK01hdGguaW11bChHZSx0bil8MCkrTWF0aC5pbXVsKFVlLHduKXwwLEY9''@;'; + put 'put ''RitNYXRoLmltdWwoVWUsdG4pfDAsVD1UK01hdGguaW11bChDdCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LEJuKXwwKStNYXRoLmltdWwoZnQsVHIpfDAsRj1GK01hdGguaW11bChmdCxCbil8MCxUPVQrTWF0aC5pbXVsKGV0LG1uKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsdW4pfDApK01h''@;'; + put 'put ''dGguaW11bChhdCxtbil8MCxGPUYrTWF0aC5pbXVsKGF0LHVuKXwwO3ZhciBvMD0oVisoVD1UK01hdGguaW11bChvbixfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKG9uLEd0KXwwKStNYXRoLmltdWwoX3QsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoX3QsR3Qp''@;'; + put 'put ''fDApKyhTPj4+MTMpfDApKyhvMD4+PjI2KXwwLG8wJj02NzEwODg2MyxUPU1hdGguaW11bChkbixOdCksUz0oUz1NYXRoLmltdWwoZG4sc24pKStNYXRoLmltdWwoeW4sTnQpfDAsRj1NYXRoLmltdWwoeW4sc24pLFQ9VCtNYXRoLmltdWwoanQsd24pfDAsUz0oUz1TK01hdGguaW11bChqdCx0''@;'; + put 'put ''bil8MCkrTWF0aC5pbXVsKFF0LHduKXwwLEY9RitNYXRoLmltdWwoUXQsdG4pfDAsVD1UK01hdGguaW11bChHZSxUcil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLEJuKXwwKStNYXRoLmltdWwoVWUsVHIpfDAsRj1GK01hdGguaW11bChVZSxCbil8MCxUPVQrTWF0aC5pbXVsKEN0LG1uKXwwLFM9''@;'; + put 'put ''KFM9UytNYXRoLmltdWwoQ3QsdW4pfDApK01hdGguaW11bChmdCxtbil8MCxGPUYrTWF0aC5pbXVsKGZ0LHVuKXwwO3ZhciBuMD0oVisoVD1UK01hdGguaW11bChldCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGV0LEd0KXwwKStNYXRoLmltdWwoYXQsX24pfDApKTw8MTMp''@;'; + put 'put ''fDA7Vj0oKEY9RitNYXRoLmltdWwoYXQsR3QpfDApKyhTPj4+MTMpfDApKyhuMD4+PjI2KXwwLG4wJj02NzEwODg2MyxUPU1hdGguaW11bChkbix3biksUz0oUz1NYXRoLmltdWwoZG4sdG4pKStNYXRoLmltdWwoeW4sd24pfDAsRj1NYXRoLmltdWwoeW4sdG4pLFQ9VCtNYXRoLmltdWwoanQs''@;'; + put 'put ''VHIpfDAsUz0oUz1TK01hdGguaW11bChqdCxCbil8MCkrTWF0aC5pbXVsKFF0LFRyKXwwLEY9RitNYXRoLmltdWwoUXQsQm4pfDAsVD1UK01hdGguaW11bChHZSxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHVuKXwwKStNYXRoLmltdWwoVWUsbW4pfDAsRj1GK01hdGguaW11bChVZSx1bil8''@;'; + put 'put ''MDt2YXIgZDA9KFYrKFQ9VCtNYXRoLmltdWwoQ3QsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDdCxHdCl8MCkrTWF0aC5pbXVsKGZ0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKGZ0LEd0KXwwKSsoUz4+PjEzKXwwKSsoZDA+Pj4yNil8MCxkMCY9NjcxMDg4''@;'; + put 'put ''NjMsVD1NYXRoLmltdWwoZG4sVHIpLFM9KFM9TWF0aC5pbXVsKGRuLEJuKSkrTWF0aC5pbXVsKHluLFRyKXwwLEY9TWF0aC5pbXVsKHluLEJuKSxUPVQrTWF0aC5pbXVsKGp0LG1uKXwwLFM9KFM9UytNYXRoLmltdWwoanQsdW4pfDApK01hdGguaW11bChRdCxtbil8MCxGPUYrTWF0aC5pbXVs''@;'; + put 'put ''KFF0LHVuKXwwO3ZhciBtMD0oVisoVD1UK01hdGguaW11bChHZSxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEdlLEd0KXwwKStNYXRoLmltdWwoVWUsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoVWUsR3QpfDApKyhTPj4+MTMpfDApKyhtMD4+PjI2KXwwLG0w''@;'; + put 'put ''Jj02NzEwODg2MyxUPU1hdGguaW11bChkbixtbiksUz0oUz1NYXRoLmltdWwoZG4sdW4pKStNYXRoLmltdWwoeW4sbW4pfDAsRj1NYXRoLmltdWwoeW4sdW4pO3ZhciBHMD0oVisoVD1UK01hdGguaW11bChqdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGp0LEd0KXwwKStN''@;'; + put 'put ''YXRoLmltdWwoUXQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoUXQsR3QpfDApKyhTPj4+MTMpfDApKyhHMD4+PjI2KXwwLEcwJj02NzEwODg2Mzt2YXIgRGk9KFYrKFQ9TWF0aC5pbXVsKGRuLF9uKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bChkbixHdCkpK01hdGguaW11''@;'; + put 'put ''bCh5bixfbil8MCkpPDwxMyl8MDtyZXR1cm4gVj0oKEY9TWF0aC5pbXVsKHluLEd0KSkrKFM+Pj4xMyl8MCkrKERpPj4+MjYpfDAsRGkmPTY3MTA4ODYzLFBbMF09a24sUFsxXT1WbixQWzJdPWVuLFBbM109SW4sUFs0XT1KbixQWzVdPW9yLFBbNl09Z3IsUFs3XT1LcixQWzhdPVZyLFBbOV09''@;'; + put 'put ''aWksUFsxMF09UnIsUFsxMV09bGksUFsxMl09TWksUFsxM109bzAsUFsxNF09bjAsUFsxNV09ZDAsUFsxNl09bTAsUFsxN109RzAsUFsxOF09RGksMCE9PVYmJihQWzE5XT1WLG5lLmxlbmd0aCsrKSxuZX07ZnVuY3Rpb24gb2UoaGUsTyx6KXtyZXR1cm4obmV3IGNlKS5tdWxwKGhlLE8seil9''@;'; + put 'put ''ZnVuY3Rpb24gY2UoaGUsTyl7dGhpcy54PWhlLHRoaXMueT1PfU1hdGguaW11bHx8KEo9cSksVS5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oTyx6KXt2YXIgbmUsdGU9dGhpcy5sZW5ndGgrTy5sZW5ndGg7cmV0dXJuIG5lPTEwPT09dGhpcy5sZW5ndGgmJjEwPT09Ty5sZW5ndGg/Sih0aGlz''@;'; + put 'put ''LE8seik6dGU8NjM/cSh0aGlzLE8seik6dGU8MTAyND9mdW5jdGlvbiBzZShoZSxPLHope3oubmVnYXRpdmU9Ty5uZWdhdGl2ZV5oZS5uZWdhdGl2ZSx6Lmxlbmd0aD1oZS5sZW5ndGgrTy5sZW5ndGg7Zm9yKHZhciBuZT0wLHRlPTAseD0wO3g8ei5sZW5ndGgtMTt4Kyspe3ZhciBQPXRlO3Rl''@;'; + put 'put ''PTA7Zm9yKHZhciBWPTY3MTA4ODYzJm5lLFQ9TWF0aC5taW4oeCxPLmxlbmd0aC0xKSxTPU1hdGgubWF4KDAseC1oZS5sZW5ndGgrMSk7Uzw9VDtTKyspe3ZhciBEZT0oMHxoZS53b3Jkc1t4LVNdKSooMHxPLndvcmRzW1NdKSxQZT02NzEwODg2MyZEZTtWPTY3MTA4ODYzJihQZT1QZStWfDAp''@;'; + put 'put ''LHRlKz0oUD0oUD1QKyhEZS82NzEwODg2NHwwKXwwKSsoUGU+Pj4yNil8MCk+Pj4yNixQJj02NzEwODg2M316LndvcmRzW3hdPVYsbmU9UCxQPXRlfXJldHVybiAwIT09bmU/ei53b3Jkc1t4XT1uZTp6Lmxlbmd0aC0tLHouc3RyaXAoKX0odGhpcyxPLHopOm9lKHRoaXMsTyx6KSxuZX0sY2Uu''@;'; + put 'put ''cHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PW5ldyBBcnJheShPKSxuZT1VLnByb3RvdHlwZS5fY291bnRCaXRzKE8pLTEsdGU9MDt0ZTxPO3RlKyspelt0ZV09dGhpcy5yZXZCaW4odGUsbmUsTyk7cmV0dXJuIHp9LGNlLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24o''@;'; + put 'put ''Tyx6LG5lKXtpZigwPT09T3x8Tz09PW5lLTEpcmV0dXJuIE87Zm9yKHZhciB0ZT0wLHg9MDt4PHo7eCsrKXRlfD0oMSZPKTw8ei14LTEsTz4+PTE7cmV0dXJuIHRlfSxjZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbihPLHosbmUsdGUseCxQKXtmb3IodmFyIFY9MDtWPFA7VisrKXRlW1Zd''@;'; + put 'put ''PXpbT1tWXV0seFtWXT1uZVtPW1ZdXX0sY2UucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihPLHosbmUsdGUseCxQKXt0aGlzLnBlcm11dGUoUCxPLHosbmUsdGUseCk7Zm9yKHZhciBWPTE7Vjx4O1Y8PD0xKWZvcih2YXIgVD1WPDwxLFM9TWF0aC5jb3MoMipNYXRoLlBJL1QpLEY9TWF0''@;'; + put 'put ''aC5zaW4oMipNYXRoLlBJL1QpLHllPTA7eWU8eDt5ZSs9VClmb3IodmFyIENlPVMsRGU9RixQZT0wO1BlPFY7UGUrKyl7dmFyIFFlPW5lW3llK1BlXSwkZT10ZVt5ZStQZV0sZ3Q9bmVbeWUrUGUrVl0sd3Q9dGVbeWUrUGUrVl0sdnQ9Q2UqZ3QtRGUqd3Q7d3Q9Q2Uqd3QrRGUqZ3QsbmVbeWUr''@;'; + put 'put ''UGVdPVFlKyhndD12dCksdGVbeWUrUGVdPSRlK3d0LG5lW3llK1BlK1ZdPVFlLWd0LHRlW3llK1BlK1ZdPSRlLXd0LFBlIT09VCYmKHZ0PVMqQ2UtRipEZSxEZT1TKkRlK0YqQ2UsQ2U9dnQpfX0sY2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKE8seil7dmFyIG5lPTF8TWF0aC5t''@;'; + put 'put ''YXgoeixPKSx0ZT0xJm5lLHg9MDtmb3IobmU9bmUvMnwwO25lO25lPj4+PTEpeCsrO3JldHVybiAxPDx4KzErdGV9LGNlLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oTyx6LG5lKXtpZighKG5lPD0xKSlmb3IodmFyIHRlPTA7dGU8bmUvMjt0ZSsrKXt2YXIgeD1PW3RlXTtPW3RlXT1P''@;'; + put 'put ''W25lLXRlLTFdLE9bbmUtdGUtMV09eCx4PXpbdGVdLHpbdGVdPS16W25lLXRlLTFdLHpbbmUtdGUtMV09LXh9fSxjZS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKE8seil7Zm9yKHZhciBuZT0wLHRlPTA7dGU8ei8yO3RlKyspe3ZhciB4PTgxOTIqTWF0aC5yb3VuZChPWzIqdGUr''@;'; + put 'put ''MV0veikrTWF0aC5yb3VuZChPWzIqdGVdL3opK25lO09bdGVdPTY3MTA4ODYzJngsbmU9eDw2NzEwODg2ND8wOngvNjcxMDg4NjR8MH1yZXR1cm4gT30sY2UucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oTyx6LG5lLHRlKXtmb3IodmFyIHg9MCxQPTA7UDx6O1ArKyluZVsyKlBdPTgx''@;'; + put 'put ''OTEmKHgrPTB8T1tQXSksbmVbMipQKzFdPTgxOTEmKHg+Pj49MTMpLHg+Pj49MTM7Zm9yKFA9Mip6O1A8dGU7KytQKW5lW1BdPTA7RSgwPT09eCksRSgwPT0oLTgxOTImeCkpfSxjZS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihPKXtmb3IodmFyIHo9bmV3IEFycmF5KE8pLG5lPTA7bmU8Tztu''@;'; + put 'put ''ZSsrKXpbbmVdPTA7cmV0dXJuIHp9LGNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKE8seixuZSl7dmFyIHRlPTIqdGhpcy5ndWVzc0xlbjEzYihPLmxlbmd0aCx6Lmxlbmd0aCkseD10aGlzLm1ha2VSQlQodGUpLFA9dGhpcy5zdHViKHRlKSxWPW5ldyBBcnJheSh0ZSksVD1uZXcgQXJyYXko''@;'; + put 'put ''dGUpLFM9bmV3IEFycmF5KHRlKSxGPW5ldyBBcnJheSh0ZSkseWU9bmV3IEFycmF5KHRlKSxDZT1uZXcgQXJyYXkodGUpLERlPW5lLndvcmRzO0RlLmxlbmd0aD10ZSx0aGlzLmNvbnZlcnQxM2IoTy53b3JkcyxPLmxlbmd0aCxWLHRlKSx0aGlzLmNvbnZlcnQxM2Ioei53b3Jkcyx6Lmxlbmd0''@;'; + put 'put ''aCxGLHRlKSx0aGlzLnRyYW5zZm9ybShWLFAsVCxTLHRlLHgpLHRoaXMudHJhbnNmb3JtKEYsUCx5ZSxDZSx0ZSx4KTtmb3IodmFyIFBlPTA7UGU8dGU7UGUrKyl7dmFyIFFlPVRbUGVdKnllW1BlXS1TW1BlXSpDZVtQZV07U1tQZV09VFtQZV0qQ2VbUGVdK1NbUGVdKnllW1BlXSxUW1BlXT1R''@;'; + put 'put ''ZX1yZXR1cm4gdGhpcy5jb25qdWdhdGUoVCxTLHRlKSx0aGlzLnRyYW5zZm9ybShULFMsRGUsUCx0ZSx4KSx0aGlzLmNvbmp1Z2F0ZShEZSxQLHRlKSx0aGlzLm5vcm1hbGl6ZTEzYihEZSx0ZSksbmUubmVnYXRpdmU9Ty5uZWdhdGl2ZV56Lm5lZ2F0aXZlLG5lLmxlbmd0aD1PLmxlbmd0aCt6''@;'; + put 'put ''Lmxlbmd0aCxuZS5zdHJpcCgpfSxVLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oTyl7dmFyIHo9bmV3IFUobnVsbCk7cmV0dXJuIHoud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK08ubGVuZ3RoKSx0aGlzLm11bFRvKE8seil9LFUucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oTyl7dmFyIHo9''@;'; + put 'put ''bmV3IFUobnVsbCk7cmV0dXJuIHoud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK08ubGVuZ3RoKSxvZSh0aGlzLE8seil9LFUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhPLHRoaXMpfSxVLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihP''@;'; + put 'put ''KXtFKCJudW1iZXIiPT10eXBlb2YgTyksRShPPDY3MTA4ODY0KTtmb3IodmFyIHo9MCxuZT0wO25lPHRoaXMubGVuZ3RoO25lKyspe3ZhciB0ZT0oMHx0aGlzLndvcmRzW25lXSkqTyx4PSg2NzEwODg2MyZ0ZSkrKDY3MTA4ODYzJnopO3o+Pj0yNix6Kz10ZS82NzEwODg2NHwwLHorPXg+Pj4y''@;'; + put 'put ''Nix0aGlzLndvcmRzW25lXT02NzEwODg2MyZ4fXJldHVybiAwIT09eiYmKHRoaXMud29yZHNbbmVdPXosdGhpcy5sZW5ndGgrKyksdGhpc30sVS5wcm90b3R5cGUubXVsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltdWxuKE8pfSxVLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24o''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LFUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LFUucHJvdG90eXBlLnBvdz1mdW5jdGlvbihPKXt2YXIgej1mdW5jdGlvbiBlZShoZSl7Zm9yKHZhciBPPW5ldyBBcnJheShoZS5iaXRMZW5n''@;'; + put 'put ''dGgoKSksej0wO3o8Ty5sZW5ndGg7eisrKXt2YXIgdGU9eiUyNjtPW3pdPShoZS53b3Jkc1t6LzI2fDBdJjE8PHRlKT4+PnRlfXJldHVybiBPfShPKTtpZigwPT09ei5sZW5ndGgpcmV0dXJuIG5ldyBVKDEpO2Zvcih2YXIgbmU9dGhpcyx0ZT0wO3RlPHoubGVuZ3RoJiYwPT09elt0ZV07dGUr''@;'; + put 'put ''KyxuZT1uZS5zcXIoKSk7aWYoKyt0ZTx6Lmxlbmd0aClmb3IodmFyIHg9bmUuc3FyKCk7dGU8ei5sZW5ndGg7dGUrKyx4PXguc3FyKCkpMCE9PXpbdGVdJiYobmU9bmUubXVsKHgpKTtyZXR1cm4gbmV9LFUucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2Yg''@;'; + put 'put ''TyYmTz49MCk7dmFyIHgsej1PJTI2LG5lPShPLXopLzI2LHRlPTY3MTA4ODYzPj4+MjYtejw8MjYtejtpZigwIT09eil7dmFyIFA9MDtmb3IoeD0wO3g8dGhpcy5sZW5ndGg7eCsrKXt2YXIgVj10aGlzLndvcmRzW3hdJnRlO3RoaXMud29yZHNbeF09KDB8dGhpcy53b3Jkc1t4XSktVjw8enxQ''@;'; + put 'put ''LFA9Vj4+PjI2LXp9UCYmKHRoaXMud29yZHNbeF09UCx0aGlzLmxlbmd0aCsrKX1pZigwIT09bmUpe2Zvcih4PXRoaXMubGVuZ3RoLTE7eD49MDt4LS0pdGhpcy53b3Jkc1t4K25lXT10aGlzLndvcmRzW3hdO2Zvcih4PTA7eDxuZTt4KyspdGhpcy53b3Jkc1t4XT0wO3RoaXMubGVuZ3RoKz1u''@;'; + put 'put ''ZX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oTyl9LFUucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbihPLHosbmUpe3ZhciB0ZTtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49''@;'; + put 'put ''MCksdGU9ej8oei16JTI2KS8yNjowO3ZhciB4PU8lMjYsUD1NYXRoLm1pbigoTy14KS8yNix0aGlzLmxlbmd0aCksVj02NzEwODg2M142NzEwODg2Mz4+Png8PHgsVD1uZTtpZih0ZS09UCx0ZT1NYXRoLm1heCgwLHRlKSxUKXtmb3IodmFyIFM9MDtTPFA7UysrKVQud29yZHNbU109dGhpcy53''@;'; + put 'put ''b3Jkc1tTXTtULmxlbmd0aD1QfWlmKDAhPT1QKWlmKHRoaXMubGVuZ3RoPlApZm9yKHRoaXMubGVuZ3RoLT1QLFM9MDtTPHRoaXMubGVuZ3RoO1MrKyl0aGlzLndvcmRzW1NdPXRoaXMud29yZHNbUytQXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBGPTA7Zm9yKFM9''@;'; + put 'put ''dGhpcy5sZW5ndGgtMTtTPj0wJiYoMCE9PUZ8fFM+PXRlKTtTLS0pe3ZhciB5ZT0wfHRoaXMud29yZHNbU107dGhpcy53b3Jkc1tTXT1GPDwyNi14fHllPj4+eCxGPXllJlZ9cmV0dXJuIFQmJjAhPT1GJiYoVC53b3Jkc1tULmxlbmd0aCsrXT1GKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndv''@;'; + put 'put ''cmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbihPLHosbmUpe3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybihPLHosbmUpfSxVLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNs''@;'; + put 'put ''b25lKCkuaXNobG4oTyl9LFUucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKE8pfSxVLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oTyl9LFUucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKE8p''@;'; + put 'put ''e3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKE8pfSxVLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIHo9TyUyNixuZT0oTy16KS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD1uZXx8ISh0aGlzLndvcmRzW25lXSYxPDx6KSl9LFUu''@;'; + put 'put ''cHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIHo9TyUyNixuZT0oTy16KS8yNjtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PW5l''@;'; + put 'put ''P3RoaXM6KDAhPT16JiZuZSsrLHRoaXMubGVuZ3RoPU1hdGgubWluKG5lLHRoaXMubGVuZ3RoKSwwIT09eiYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+ejw8eiksdGhpcy5zdHJpcCgpKX0sVS5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oTyl7cmV0''@;'; + put 'put ''dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oTyl9LFUucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKE8pe3JldHVybiBFKCJudW1iZXIiPT10eXBlb2YgTyksRShPPDY3MTA4ODY0KSxPPDA/dGhpcy5pc3VibigtTyk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndv''@;'; + put 'put ''cmRzWzBdKTxPPyh0aGlzLndvcmRzWzBdPU8tKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3VibihPKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oTyl9LFUucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbihP''@;'; + put 'put ''KXt0aGlzLndvcmRzWzBdKz1PO2Zvcih2YXIgej0wO3o8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbel0+PTY3MTA4ODY0O3orKyl0aGlzLndvcmRzW3pdLT02NzEwODg2NCx6PT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW3orMV09MTp0aGlzLndvcmRzW3orMV0rKztyZXR1cm4gdGhpcy5s''@;'; + put 'put ''ZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgseisxKSx0aGlzfSxVLnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbihPKXtpZihFKCJudW1iZXIiPT10eXBlb2YgTyksRShPPDY3MTA4ODY0KSxPPDApcmV0dXJuIHRoaXMuaWFkZG4oLU8pO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlz''@;'; + put 'put ''Lm5lZ2F0aXZlPTAsdGhpcy5pYWRkbihPKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndvcmRzWzBdLT1PLDE9PT10aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1swXTwwKXRoaXMud29yZHNbMF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciB6PTA7ejx0''@;'; + put 'put ''aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t6XTwwO3orKyl0aGlzLndvcmRzW3pdKz02NzEwODg2NCx0aGlzLndvcmRzW3orMV0tPTE7cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKE8pfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5zdWJuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oTyl9LFUucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LFUucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgeDt0aGlzLl9leHBhbmQoTy5sZW5ndGgrbmUpO3ZhciBQLFY9MDtmb3IoeD0wO3g8Ty5sZW5ndGg7eCsrKXtQPSgwfHRoaXMud29yZHNbeCtuZV0pK1Y7dmFyIFQ9KDB8Ty53b3Jkc1t4XSkqejtWPSgoUC09NjcxMDg4''@;'; + put 'put ''NjMmVCk+PjI2KS0oVC82NzEwODg2NHwwKSx0aGlzLndvcmRzW3grbmVdPTY3MTA4ODYzJlB9Zm9yKDt4PHRoaXMubGVuZ3RoLW5lO3grKylWPShQPSgwfHRoaXMud29yZHNbeCtuZV0pK1YpPj4yNix0aGlzLndvcmRzW3grbmVdPTY3MTA4ODYzJlA7aWYoMD09PVYpcmV0dXJuIHRoaXMuc3Ry''@;'; + put 'put ''aXAoKTtmb3IoRSgtMT09PVYpLFY9MCx4PTA7eDx0aGlzLmxlbmd0aDt4KyspVj0oUD0tKDB8dGhpcy53b3Jkc1t4XSkrVik+PjI2LHRoaXMud29yZHNbeF09NjcxMDg4NjMmUDtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rp''@;'; + put 'put ''b24oTyx6KXt2YXIgbmUsdGU9dGhpcy5jbG9uZSgpLHg9TyxQPTB8eC53b3Jkc1t4Lmxlbmd0aC0xXTswIT0obmU9MjYtdGhpcy5fY291bnRCaXRzKFApKSYmKHg9eC51c2hsbihuZSksdGUuaXVzaGxuKG5lKSxQPTB8eC53b3Jkc1t4Lmxlbmd0aC0xXSk7dmFyIFMsVD10ZS5sZW5ndGgteC5s''@;'; + put 'put ''ZW5ndGg7aWYoIm1vZCIhPT16KXsoUz1uZXcgVShudWxsKSkubGVuZ3RoPVQrMSxTLndvcmRzPW5ldyBBcnJheShTLmxlbmd0aCk7Zm9yKHZhciBGPTA7RjxTLmxlbmd0aDtGKyspUy53b3Jkc1tGXT0wfXZhciB5ZT10ZS5jbG9uZSgpLl9pc2hsbnN1Ym11bCh4LDEsVCk7MD09PXllLm5lZ2F0''@;'; + put 'put ''aXZlJiYodGU9eWUsUyYmKFMud29yZHNbVF09MSkpO2Zvcih2YXIgQ2U9VC0xO0NlPj0wO0NlLS0pe3ZhciBEZT02NzEwODg2NCooMHx0ZS53b3Jkc1t4Lmxlbmd0aCtDZV0pKygwfHRlLndvcmRzW3gubGVuZ3RoK0NlLTFdKTtmb3IoRGU9TWF0aC5taW4oRGUvUHwwLDY3MTA4ODYzKSx0ZS5f''@;'; + put 'put ''aXNobG5zdWJtdWwoeCxEZSxDZSk7MCE9PXRlLm5lZ2F0aXZlOylEZS0tLHRlLm5lZ2F0aXZlPTAsdGUuX2lzaGxuc3VibXVsKHgsMSxDZSksdGUuaXNaZXJvKCl8fCh0ZS5uZWdhdGl2ZV49MSk7UyYmKFMud29yZHNbQ2VdPURlKX1yZXR1cm4gUyYmUy5zdHJpcCgpLHRlLnN0cmlwKCksImRp''@;'; + put 'put ''diIhPT16JiYwIT09bmUmJnRlLml1c2hybihuZSkse2RpdjpTfHxudWxsLG1vZDp0ZX19LFUucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihPLHosbmUpe3JldHVybiBFKCFPLmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IFUoMCksbW9kOm5ldyBVKDApfTowIT09dGhpcy5uZWdh''@;'; + put 'put ''dGl2ZSYmMD09PU8ubmVnYXRpdmU/KFA9dGhpcy5uZWcoKS5kaXZtb2QoTyx6KSwibW9kIiE9PXomJih0ZT1QLmRpdi5uZWcoKSksImRpdiIhPT16JiYoeD1QLm1vZC5uZWcoKSxuZSYmMCE9PXgubmVnYXRpdmUmJnguaWFkZChPKSkse2Rpdjp0ZSxtb2Q6eH0pOjA9PT10aGlzLm5lZ2F0aXZl''@;'; + put 'put ''JiYwIT09Ty5uZWdhdGl2ZT8oUD10aGlzLmRpdm1vZChPLm5lZygpLHopLCJtb2QiIT09eiYmKHRlPVAuZGl2Lm5lZygpKSx7ZGl2OnRlLG1vZDpQLm1vZH0pOjAhPSh0aGlzLm5lZ2F0aXZlJk8ubmVnYXRpdmUpPyhQPXRoaXMubmVnKCkuZGl2bW9kKE8ubmVnKCkseiksImRpdiIhPT16JiYo''@;'; + put 'put ''eD1QLm1vZC5uZWcoKSxuZSYmMCE9PXgubmVnYXRpdmUmJnguaXN1YihPKSkse2RpdjpQLmRpdixtb2Q6eH0pOk8ubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcChPKTwwP3tkaXY6bmV3IFUoMCksbW9kOnRoaXN9OjE9PT1PLmxlbmd0aD8iZGl2Ij09PXo/e2Rpdjp0aGlzLmRpdm4oTy53''@;'; + put 'put ''b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09ej97ZGl2Om51bGwsbW9kOm5ldyBVKHRoaXMubW9kbihPLndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKE8ud29yZHNbMF0pLG1vZDpuZXcgVSh0aGlzLm1vZG4oTy53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KE8seik7dmFyIHRlLHgsUH0s''@;'; + put 'put ''VS5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmRpdm1vZChPLCJkaXYiLCExKS5kaXZ9LFUucHJvdG90eXBlLm1vZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywibW9kIiwhMSkubW9kfSxVLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0''@;'; + put 'put ''aGlzLmRpdm1vZChPLCJtb2QiLCEwKS5tb2R9LFUucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKE8pe3ZhciB6PXRoaXMuZGl2bW9kKE8pO2lmKHoubW9kLmlzWmVybygpKXJldHVybiB6LmRpdjt2YXIgbmU9MCE9PXouZGl2Lm5lZ2F0aXZlP3oubW9kLmlzdWIoTyk6ei5tb2QsdGU9Ty51''@;'; + put 'put ''c2hybigxKSx4PU8uYW5kbG4oMSksUD1uZS5jbXAodGUpO3JldHVybiBQPDB8fDE9PT14JiYwPT09UD96LmRpdjowIT09ei5kaXYubmVnYXRpdmU/ei5kaXYuaXN1Ym4oMSk6ei5kaXYuaWFkZG4oMSl9LFUucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oTyl7RShPPD02NzEwODg2Myk7Zm9yKHZh''@;'; + put 'put ''ciB6PSgxPDwyNiklTyxuZT0wLHRlPXRoaXMubGVuZ3RoLTE7dGU+PTA7dGUtLSluZT0oeipuZSsoMHx0aGlzLndvcmRzW3RlXSkpJU87cmV0dXJuIG5lfSxVLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihPKXtFKE88PTY3MTA4ODYzKTtmb3IodmFyIHo9MCxuZT10aGlzLmxlbmd0aC0xO25l''@;'; + put 'put ''Pj0wO25lLS0pe3ZhciB0ZT0oMHx0aGlzLndvcmRzW25lXSkrNjcxMDg4NjQqejt0aGlzLndvcmRzW25lXT10ZS9PfDAsej10ZSVPfXJldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihPKX0sVS5wcm90b3R5''@;'; + put 'put ''cGUuZWdjZD1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlKSxFKCFPLmlzWmVybygpKTt2YXIgej10aGlzLG5lPU8uY2xvbmUoKTt6PTAhPT16Lm5lZ2F0aXZlP3oudW1vZChPKTp6LmNsb25lKCk7Zm9yKHZhciB0ZT1uZXcgVSgxKSx4PW5ldyBVKDApLFA9bmV3IFUoMCksVj1uZXcgVSgx''@;'; + put 'put ''KSxUPTA7ei5pc0V2ZW4oKSYmbmUuaXNFdmVuKCk7KXouaXVzaHJuKDEpLG5lLml1c2hybigxKSwrK1Q7Zm9yKHZhciBTPW5lLmNsb25lKCksRj16LmNsb25lKCk7IXouaXNaZXJvKCk7KXtmb3IodmFyIHllPTAsQ2U9MTswPT0oei53b3Jkc1swXSZDZSkmJnllPDI2OysreWUsQ2U8PD0xKTtp''@;'; + put 'put ''Zih5ZT4wKWZvcih6Lml1c2hybih5ZSk7eWUtLSA+MDspKHRlLmlzT2RkKCl8fHguaXNPZGQoKSkmJih0ZS5pYWRkKFMpLHguaXN1YihGKSksdGUuaXVzaHJuKDEpLHguaXVzaHJuKDEpO2Zvcih2YXIgRGU9MCxQZT0xOzA9PShuZS53b3Jkc1swXSZQZSkmJkRlPDI2OysrRGUsUGU8PD0xKTtp''@;'; + put 'put ''ZihEZT4wKWZvcihuZS5pdXNocm4oRGUpO0RlLS0gPjA7KShQLmlzT2RkKCl8fFYuaXNPZGQoKSkmJihQLmlhZGQoUyksVi5pc3ViKEYpKSxQLml1c2hybigxKSxWLml1c2hybigxKTt6LmNtcChuZSk+PTA/KHouaXN1YihuZSksdGUuaXN1YihQKSx4LmlzdWIoVikpOihuZS5pc3ViKHopLFAu''@;'; + put 'put ''aXN1Yih0ZSksVi5pc3ViKHgpKX1yZXR1cm57YTpQLGI6VixnY2Q6bmUuaXVzaGxuKFQpfX0sVS5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUpLEUoIU8uaXNaZXJvKCkpO3ZhciB5ZSx6PXRoaXMsbmU9Ty5jbG9uZSgpO3o9MCE9PXoubmVnYXRpdmU/ei51''@;'; + put 'put ''bW9kKE8pOnouY2xvbmUoKTtmb3IodmFyIHRlPW5ldyBVKDEpLHg9bmV3IFUoMCksUD1uZS5jbG9uZSgpO3ouY21wbigxKT4wJiZuZS5jbXBuKDEpPjA7KXtmb3IodmFyIFY9MCxUPTE7MD09KHoud29yZHNbMF0mVCkmJlY8MjY7KytWLFQ8PD0xKTtpZihWPjApZm9yKHouaXVzaHJuKFYpO1Yt''@;'; + put 'put ''LSA+MDspdGUuaXNPZGQoKSYmdGUuaWFkZChQKSx0ZS5pdXNocm4oMSk7Zm9yKHZhciBTPTAsRj0xOzA9PShuZS53b3Jkc1swXSZGKSYmUzwyNjsrK1MsRjw8PTEpO2lmKFM+MClmb3IobmUuaXVzaHJuKFMpO1MtLSA+MDspeC5pc09kZCgpJiZ4LmlhZGQoUCkseC5pdXNocm4oMSk7ei5jbXAo''@;'; + put 'put ''bmUpPj0wPyh6LmlzdWIobmUpLHRlLmlzdWIoeCkpOihuZS5pc3ViKHopLHguaXN1Yih0ZSkpfXJldHVybih5ZT0wPT09ei5jbXBuKDEpP3RlOngpLmNtcG4oMCk8MCYmeWUuaWFkZChPKSx5ZX0sVS5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKE8pe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIE8u''@;'; + put 'put ''YWJzKCk7aWYoTy5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgej10aGlzLmNsb25lKCksbmU9Ty5jbG9uZSgpO3oubmVnYXRpdmU9MCxuZS5uZWdhdGl2ZT0wO2Zvcih2YXIgdGU9MDt6LmlzRXZlbigpJiZuZS5pc0V2ZW4oKTt0ZSsrKXouaXVzaHJuKDEpLG5lLml1c2hybigxKTtm''@;'; + put 'put ''b3IoOzspe2Zvcig7ei5pc0V2ZW4oKTspei5pdXNocm4oMSk7Zm9yKDtuZS5pc0V2ZW4oKTspbmUuaXVzaHJuKDEpO3ZhciB4PXouY21wKG5lKTtpZih4PDApe3ZhciBQPXo7ej1uZSxuZT1QfWVsc2UgaWYoMD09PXh8fDA9PT1uZS5jbXBuKDEpKWJyZWFrO3ouaXN1YihuZSl9cmV0dXJuIG5l''@;'; + put 'put ''Lml1c2hsbih0ZSl9LFUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZWdjZChPKS5hLnVtb2QoTyl9LFUucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sVS5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gMT09KDEmdGhpcy53b3Jkc1swXSl9LFUucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLndvcmRzWzBdJk99LFUucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPKTt2YXIgej1PJTI2LG5lPShPLXopLzI2LHRlPTE8PHo7aWYo''@;'; + put 'put ''dGhpcy5sZW5ndGg8PW5lKXJldHVybiB0aGlzLl9leHBhbmQobmUrMSksdGhpcy53b3Jkc1tuZV18PXRlLHRoaXM7Zm9yKHZhciB4PXRlLFA9bmU7MCE9PXgmJlA8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj0wfHRoaXMud29yZHNbUF07eD0oVis9eCk+Pj4yNix0aGlzLndvcmRzW1BdPVYmPTY3''@;'; + put 'put ''MTA4ODYzfXJldHVybiAwIT09eCYmKHRoaXMud29yZHNbUF09eCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxVLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sVS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihPKXt2YXIg''@;'; + put 'put ''bmUsej1PPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiF6KXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZ6KXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKW5lPTE7ZWxzZXt6JiYoTz0tTyksRShPPD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIg''@;'; + put 'put ''dGU9MHx0aGlzLndvcmRzWzBdO25lPXRlPT09Tz8wOnRlPE8/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtbmU6bmV9LFUucHJvdG90eXBlLmNtcD1mdW5jdGlvbihPKXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PU8ubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVn''@;'; + put 'put ''YXRpdmUmJjAhPT1PLm5lZ2F0aXZlKXJldHVybiAxO3ZhciB6PXRoaXMudWNtcChPKTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtejp6fSxVLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKE8pe2lmKHRoaXMubGVuZ3RoPk8ubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPE8ubGVu''@;'; + put 'put ''Z3RoKXJldHVybi0xO2Zvcih2YXIgej0wLG5lPXRoaXMubGVuZ3RoLTE7bmU+PTA7bmUtLSl7dmFyIHRlPTB8dGhpcy53b3Jkc1tuZV0seD0wfE8ud29yZHNbbmVdO2lmKHRlIT09eCl7dGU8eD96PS0xOnRlPngmJih6PTEpO2JyZWFrfX1yZXR1cm4gen0sVS5wcm90b3R5cGUuZ3RuPWZ1bmN0''@;'; + put 'put ''aW9uKE8pe3JldHVybiAxPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5ndD1mdW5jdGlvbihPKXtyZXR1cm4gMT09PXRoaXMuY21wKE8pfSxVLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcG4oTyk+PTB9LFUucHJvdG90eXBlLmd0ZT1mdW5jdGlvbihPKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5jbXAoTyk+PTB9LFUucHJvdG90eXBlLmx0bj1mdW5jdGlvbihPKXtyZXR1cm4tMT09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oTyl7cmV0dXJuLTE9PT10aGlzLmNtcChPKX0sVS5wcm90b3R5cGUubHRlbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5jbXBuKE8pPD0wfSxVLnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wKE8pPD0wfSxVLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oTyl7cmV0dXJuIDA9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmVxPWZ1bmN0aW9uKE8pe3JldHVybiAwPT09dGhpcy5jbXAo''@;'; + put 'put ''Tyl9LFUucmVkPWZ1bmN0aW9uKE8pe3JldHVybiBuZXcgVGUoTyl9LFUucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKE8pe3JldHVybiBFKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLEUoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5''@;'; + put 'put ''IHdpdGggcG9zaXRpdmVzIiksTy5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKE8pfSxVLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5j''@;'; + put 'put ''b252ZXJ0RnJvbSh0aGlzKX0sVS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnJlZD1PLHRoaXN9LFUucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKE8pe3JldHVybiBFKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4''@;'; + put 'put ''dCIpLHRoaXMuX2ZvcmNlUmVkKE8pfSxVLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihPKXty''@;'; + put 'put ''ZXR1cm4gRSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIp''@;'; + put 'put ''LHRoaXMucmVkLnN1Yih0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKE8p''@;'; + put 'put ''e3JldHVybiBFKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIp''@;'; + put 'put ''LHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsTyksdGhpcy5yZWQubXVsKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLE8pLHRo''@;'; + put 'put ''aXMucmVkLmltdWwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LFUucHJvdG90eXBlLnJl''@;'; + put 'put ''ZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxVLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5y''@;'; + put 'put ''ZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sVS5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQg''@;'; + put 'put ''bnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LFUucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyks''@;'; + put 'put ''dGhpcy5yZWQubmVnKHRoaXMpfSxVLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQmJiFPLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxPKX07dmFyIGRlPXtrMjU2Om51bGwscDIy''@;'; + put 'put ''NDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdmUoaGUsTyl7dGhpcy5uYW1lPWhlLHRoaXMucD1uZXcgVShPLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgVSgxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5f''@;'; + put 'put ''dG1wKCl9ZnVuY3Rpb24gQWUoKXt2ZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIGtlKCl7dmUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZm''@;'; + put 'put ''ZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBTZSgpe3ZlLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gSWUoKXt2ZS5jYWxsKHRo''@;'; + put 'put ''aXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIFRlKGhlKXtpZigic3RyaW5nIj09dHlwZW9mIGhlKXt2YXIgTz1VLl9wcmltZShoZSk7dGhpcy5tPU8ucCx0aGlzLnByaW1lPU99''@;'; + put 'put ''ZWxzZSBFKGhlLmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPWhlLHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBFZShoZSl7VGUuY2FsbCh0aGlzLGhlKSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5z''@;'; + put 'put ''aGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBVKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5k''@;'; + put 'put ''aXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfXZlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIE89bmV3IFUobnVsbCk7cmV0dXJuIE8ud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4v''@;'; + put 'put ''MTMpKSxPfSx2ZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihPKXt2YXIgbmUsej1PO2Rve3RoaXMuc3BsaXQoeix0aGlzLnRtcCksbmU9KHo9KHo9dGhpcy5pbXVsSyh6KSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKG5lPnRoaXMubik7dmFyIHRlPW5lPHRoaXMubj8t''@;'; + put 'put ''MTp6LnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PXRlPyh6LndvcmRzWzBdPTAsei5sZW5ndGg9MSk6dGU+MD96LmlzdWIodGhpcy5wKTp2b2lkIDAhPT16LnN0cmlwP3ouc3RyaXAoKTp6Ll9zdHJpcCgpLHp9LHZlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihPLHope08uaXVzaHJuKHRoaXMu''@;'; + put 'put ''biwwLHopfSx2ZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7cmV0dXJuIE8uaW11bCh0aGlzLmspfSxNZShBZSx2ZSksQWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKE8seil7Zm9yKHZhciB0ZT1NYXRoLm1pbihPLmxlbmd0aCw5KSx4PTA7eDx0ZTt4Kyspei53b3Jkc1t4XT1PLndv''@;'; + put 'put ''cmRzW3hdO2lmKHoubGVuZ3RoPXRlLE8ubGVuZ3RoPD05KXJldHVybiBPLndvcmRzWzBdPTAsdm9pZChPLmxlbmd0aD0xKTt2YXIgUD1PLndvcmRzWzldO2Zvcih6LndvcmRzW3oubGVuZ3RoKytdPTQxOTQzMDMmUCx4PTEwO3g8Ty5sZW5ndGg7eCsrKXt2YXIgVj0wfE8ud29yZHNbeF07Ty53''@;'; + put 'put ''b3Jkc1t4LTEwXT0oNDE5NDMwMyZWKTw8NHxQPj4+MjIsUD1WfU8ud29yZHNbeC0xMF09UD4+Pj0yMixPLmxlbmd0aC09MD09PVAmJk8ubGVuZ3RoPjEwPzEwOjl9LEFlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtPLndvcmRzW08ubGVuZ3RoXT0wLE8ud29yZHNbTy5sZW5ndGgrMV09''@;'; + put 'put ''MCxPLmxlbmd0aCs9Mjtmb3IodmFyIHo9MCxuZT0wO25lPE8ubGVuZ3RoO25lKyspe3ZhciB0ZT0wfE8ud29yZHNbbmVdO08ud29yZHNbbmVdPTY3MTA4ODYzJih6Kz05NzcqdGUpLHo9NjQqdGUrKHovNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT1PLndvcmRzW08ubGVuZ3RoLTFdJiYoTy5sZW5n''@;'; + put 'put ''dGgtLSwwPT09Ty53b3Jkc1tPLmxlbmd0aC0xXSYmTy5sZW5ndGgtLSksT30sTWUoa2UsdmUpLE1lKFNlLHZlKSxNZShJZSx2ZSksSWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej0wLG5lPTA7bmU8Ty5sZW5ndGg7bmUrKyl7dmFyIHRlPTE5KigwfE8ud29yZHNbbmVd''@;'; + put 'put ''KSt6LHg9NjcxMDg4NjMmdGU7dGU+Pj49MjYsTy53b3Jkc1tuZV09eCx6PXRlfXJldHVybiAwIT09eiYmKE8ud29yZHNbTy5sZW5ndGgrK109eiksT30sVS5fcHJpbWU9ZnVuY3Rpb24oTyl7aWYoZGVbT10pcmV0dXJuIGRlW09dO3ZhciB6O2lmKCJrMjU2Ij09PU8pej1uZXcgQWU7ZWxzZSBp''@;'; + put 'put ''ZigicDIyNCI9PT1PKXo9bmV3IGtlO2Vsc2UgaWYoInAxOTIiPT09Tyl6PW5ldyBTZTtlbHNle2lmKCJwMjU1MTkiIT09Tyl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIitPKTt6PW5ldyBJZX1yZXR1cm4gZGVbT109eix6fSxUZS5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24o''@;'; + put 'put ''Tyl7RSgwPT09Ty5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxFKE8ucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFRlLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbihPLHope0UoMD09KE8ubmVnYXRpdmV8ei5uZWdhdGl2ZSksInJl''@;'; + put 'put ''ZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksRShPLnJlZCYmTy5yZWQ9PT16LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxUZS5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UoTykuX2ZvcmNl''@;'; + put 'put ''UmVkKHRoaXMpOk8udW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0sVGUucHJvdG90eXBlLm5lZz1mdW5jdGlvbihPKXtyZXR1cm4gTy5pc1plcm8oKT9PLmNsb25lKCk6dGhpcy5tLnN1YihPKS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oTyx6KXt0aGlz''@;'; + put 'put ''Ll92ZXJpZnkyKE8seik7dmFyIG5lPU8uYWRkKHopO3JldHVybiBuZS5jbXAodGhpcy5tKT49MCYmbmUuaXN1Yih0aGlzLm0pLG5lLl9mb3JjZVJlZCh0aGlzKX0sVGUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oTyx6KXt0aGlzLl92ZXJpZnkyKE8seik7dmFyIG5lPU8uaWFkZCh6KTtyZXR1''@;'; + put 'put ''cm4gbmUuY21wKHRoaXMubSk+PTAmJm5lLmlzdWIodGhpcy5tKSxuZX0sVGUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5zdWIoeik7cmV0dXJuIG5lLmNtcG4oMCk8MCYmbmUuaWFkZCh0aGlzLm0pLG5lLl9mb3JjZVJlZCh0aGlzKX0s''@;'; + put 'put ''VGUucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oTyx6KXt0aGlzLl92ZXJpZnkyKE8seik7dmFyIG5lPU8uaXN1Yih6KTtyZXR1cm4gbmUuY21wbigwKTwwJiZuZS5pYWRkKHRoaXMubSksbmV9LFRlLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShPKSx0''@;'; + put 'put ''aGlzLmltb2QoTy51c2hsbih6KSl9LFRlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoTyx6KSx0aGlzLmltb2QoTy5pbXVsKHopKX0sVGUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkyKE8seiksdGhpcy5p''@;'; + put 'put ''bW9kKE8ubXVsKHopKX0sVGUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW11bChPLE8uY2xvbmUoKSl9LFRlLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubXVsKE8sTyl9LFRlLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKE8pe2lmKE8uaXNa''@;'; + put 'put ''ZXJvKCkpcmV0dXJuIE8uY2xvbmUoKTt2YXIgej10aGlzLm0uYW5kbG4oMyk7aWYoRSh6JTI9PTEpLDM9PT16KXt2YXIgbmU9dGhpcy5tLmFkZChuZXcgVSgxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyhPLG5lKX1mb3IodmFyIHRlPXRoaXMubS5zdWJuKDEpLHg9MDshdGUuaXNaZXJv''@;'; + put 'put ''KCkmJjA9PT10ZS5hbmRsbigxKTspeCsrLHRlLml1c2hybigxKTtFKCF0ZS5pc1plcm8oKSk7dmFyIFA9bmV3IFUoMSkudG9SZWQodGhpcyksVj1QLnJlZE5lZygpLFQ9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLFM9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihTPW5ldyBVKDIqUypTKS50b1Jl''@;'; + put 'put ''ZCh0aGlzKTswIT09dGhpcy5wb3coUyxUKS5jbXAoVik7KVMucmVkSUFkZChWKTtmb3IodmFyIEY9dGhpcy5wb3coUyx0ZSkseWU9dGhpcy5wb3coTyx0ZS5hZGRuKDEpLml1c2hybigxKSksQ2U9dGhpcy5wb3coTyx0ZSksRGU9eDswIT09Q2UuY21wKFApOyl7Zm9yKHZhciBQZT1DZSxRZT0w''@;'; + put 'put ''OzAhPT1QZS5jbXAoUCk7UWUrKylQZT1QZS5yZWRTcXIoKTtFKFFlPERlKTt2YXIgJGU9dGhpcy5wb3coRixuZXcgVSgxKS5pdXNobG4oRGUtUWUtMSkpO3llPXllLnJlZE11bCgkZSksRj0kZS5yZWRTcXIoKSxDZT1DZS5yZWRNdWwoRiksRGU9UWV9cmV0dXJuIHllfSxUZS5wcm90b3R5cGUu''@;'; + put 'put ''aW52bT1mdW5jdGlvbihPKXt2YXIgej1PLl9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09ei5uZWdhdGl2ZT8oei5uZWdhdGl2ZT0wLHRoaXMuaW1vZCh6KS5yZWROZWcoKSk6dGhpcy5pbW9kKHopfSxUZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKE8seil7aWYoei5pc1plcm8oKSlyZXR1cm4g''@;'; + put 'put ''bmV3IFUoMSkudG9SZWQodGhpcyk7aWYoMD09PXouY21wbigxKSlyZXR1cm4gTy5jbG9uZSgpO3ZhciB0ZT1uZXcgQXJyYXkoMTYpO3RlWzBdPW5ldyBVKDEpLnRvUmVkKHRoaXMpLHRlWzFdPU87Zm9yKHZhciB4PTI7eDx0ZS5sZW5ndGg7eCsrKXRlW3hdPXRoaXMubXVsKHRlW3gtMV0sTyk7''@;'; + put 'put ''dmFyIFA9dGVbMF0sVj0wLFQ9MCxTPXouYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1TJiYoUz0yNikseD16Lmxlbmd0aC0xO3g+PTA7eC0tKXtmb3IodmFyIEY9ei53b3Jkc1t4XSx5ZT1TLTE7eWU+PTA7eWUtLSl7dmFyIENlPUY+PnllJjE7UCE9PXRlWzBdJiYoUD10aGlzLnNxcihQKSksMCE9''@;'; + put 'put ''PUNlfHwwIT09Vj8oVjw8PTEsVnw9Q2UsKDQ9PSsrVHx8MD09PXgmJjA9PT15ZSkmJihQPXRoaXMubXVsKFAsdGVbVl0pLFQ9MCxWPTApKTpUPTB9Uz0yNn1yZXR1cm4gUH0sVGUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihPKXt2YXIgej1PLnVtb2QodGhpcy5tKTtyZXR1cm4gej09''@;'; + put 'put ''PU8/ei5jbG9uZSgpOnp9LFRlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihPKXt2YXIgej1PLmNsb25lKCk7cmV0dXJuIHoucmVkPW51bGwsen0sVS5tb250PWZ1bmN0aW9uKE8pe3JldHVybiBuZXcgRWUoTyl9LE1lKEVlLFRlKSxFZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0''@;'; + put 'put ''aW9uKE8pe3JldHVybiB0aGlzLmltb2QoTy51c2hsbih0aGlzLnNoaWZ0KSl9LEVlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihPKXt2YXIgej10aGlzLmltb2QoTy5tdWwodGhpcy5yaW52KSk7cmV0dXJuIHoucmVkPW51bGwsen0sRWUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24o''@;'; + put 'put ''Tyx6KXtpZihPLmlzWmVybygpfHx6LmlzWmVybygpKXJldHVybiBPLndvcmRzWzBdPTAsTy5sZW5ndGg9MSxPO3ZhciBuZT1PLmltdWwoeiksdGU9bmUubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLHg9bmUuaXN1Yih0ZSku''@;'; + put 'put ''aXVzaHJuKHRoaXMuc2hpZnQpLFA9eDtyZXR1cm4geC5jbXAodGhpcy5tKT49MD9QPXguaXN1Yih0aGlzLm0pOnguY21wbigwKTwwJiYoUD14LmlhZGQodGhpcy5tKSksUC5fZm9yY2VSZWQodGhpcyl9LEVlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oTyx6KXtpZihPLmlzWmVybygpfHx6Lmlz''@;'; + put 'put ''WmVybygpKXJldHVybiBuZXcgVSgwKS5fZm9yY2VSZWQodGhpcyk7dmFyIG5lPU8ubXVsKHopLHRlPW5lLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSx4PW5lLmlzdWIodGUpLml1c2hybih0aGlzLnNoaWZ0KSxQPXg7cmV0''@;'; + put 'put ''dXJuIHguY21wKHRoaXMubSk+PTA/UD14LmlzdWIodGhpcy5tKTp4LmNtcG4oMCk8MCYmKFA9eC5pYWRkKHRoaXMubSkpLFAuX2ZvcmNlUmVkKHRoaXMpfSxFZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbW9kKE8uX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIp''@;'; + put 'put ''KS5fZm9yY2VSZWQodGhpcyl9fShYZT1MLm5tZChYZSksdGhpcyl9LDQwMzkwOihYZSxKZSk9PnshZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Zm9yKHZhciBMPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixtZT1uZXcg''@;'; + put 'put ''VWludDhBcnJheSgyNTYpLEI9MDtCPEwubGVuZ3RoO0IrKyltZVtMLmNoYXJDb2RlQXQoQildPUI7SmUuYz1mdW5jdGlvbihFKXt2YXIgVSxNZT1uZXcgVWludDhBcnJheShFKSxRPU1lLmxlbmd0aCxaPSIiO2ZvcihVPTA7VTxRO1UrPTMpWis9TFtNZVtVXT4+Ml0sWis9TFsoMyZNZVtVXSk8''@;'; + put 'put ''PDR8TWVbVSsxXT4+NF0sWis9TFsoMTUmTWVbVSsxXSk8PDJ8TWVbVSsyXT4+Nl0sWis9TFs2MyZNZVtVKzJdXTtyZXR1cm4gUSUzPT0yP1o9Wi5zdWJzdHJpbmcoMCxaLmxlbmd0aC0xKSsiPSI6USUzPT0xJiYoWj1aLnN1YnN0cmluZygwLFoubGVuZ3RoLTIpKyI9PSIpLFp9LEplLko9ZnVu''@;'; + put 'put ''Y3Rpb24oRSl7dmFyIFEsaWUsbGUsWSxXLE1lPS43NSpFLmxlbmd0aCxVPUUubGVuZ3RoLFo9MDsiPSI9PT1FW0UubGVuZ3RoLTFdJiYoTWUtLSwiPSI9PT1FW0UubGVuZ3RoLTJdJiZNZS0tKTt2YXIgTj1uZXcgQXJyYXlCdWZmZXIoTWUpLGVlPW5ldyBVaW50OEFycmF5KE4pO2ZvcihRPTA7''@;'; + put 'put ''UTxVO1ErPTQpaWU9bWVbRS5jaGFyQ29kZUF0KFEpXSxsZT1tZVtFLmNoYXJDb2RlQXQoUSsxKV0sWT1tZVtFLmNoYXJDb2RlQXQoUSsyKV0sVz1tZVtFLmNoYXJDb2RlQXQoUSszKV0sZWVbWisrXT1pZTw8MnxsZT4+NCxlZVtaKytdPSgxNSZsZSk8PDR8WT4+MixlZVtaKytdPSgzJlkpPDw2''@;'; + put 'put ''fDYzJlc7cmV0dXJuIE59fSgpfSw1MzQzOihYZSxKZSk9PnsidXNlIHN0cmljdCI7SmUuYnl0ZUxlbmd0aD1mdW5jdGlvbiBaKGVlKXt2YXIgcT1RKGVlKSxzZT1xWzFdO3JldHVybiAzKihxWzBdK3NlKS80LXNlfSxKZS50b0J5dGVBcnJheT1mdW5jdGlvbiBsZShlZSl7dmFyIHEsQWUsSj1R''@;'; + put 'put ''KGVlKSxzZT1KWzBdLG9lPUpbMV0sY2U9bmV3IEIoZnVuY3Rpb24gaWUoZWUscSxKKXtyZXR1cm4gMyoocStKKS80LUp9KDAsc2Usb2UpKSxkZT0wLHZlPW9lPjA/c2UtNDpzZTtmb3IoQWU9MDtBZTx2ZTtBZSs9NClxPW1lW2VlLmNoYXJDb2RlQXQoQWUpXTw8MTh8bWVbZWUuY2hhckNvZGVB''@;'; + put 'put ''dChBZSsxKV08PDEyfG1lW2VlLmNoYXJDb2RlQXQoQWUrMildPDw2fG1lW2VlLmNoYXJDb2RlQXQoQWUrMyldLGNlW2RlKytdPXE+PjE2JjI1NSxjZVtkZSsrXT1xPj44JjI1NSxjZVtkZSsrXT0yNTUmcTtyZXR1cm4gMj09PW9lJiYocT1tZVtlZS5jaGFyQ29kZUF0KEFlKV08PDJ8bWVbZWUu''@;'; + put 'put ''Y2hhckNvZGVBdChBZSsxKV0+PjQsY2VbZGUrK109MjU1JnEpLDE9PT1vZSYmKHE9bWVbZWUuY2hhckNvZGVBdChBZSldPDwxMHxtZVtlZS5jaGFyQ29kZUF0KEFlKzEpXTw8NHxtZVtlZS5jaGFyQ29kZUF0KEFlKzIpXT4+MixjZVtkZSsrXT1xPj44JjI1NSxjZVtkZSsrXT0yNTUmcSksY2V9''@;'; + put 'put ''LEplLmZyb21CeXRlQXJyYXk9ZnVuY3Rpb24gTihlZSl7Zm9yKHZhciBxLEo9ZWUubGVuZ3RoLHNlPUolMyxvZT1bXSxkZT0wLHZlPUotc2U7ZGU8dmU7ZGUrPTE2MzgzKW9lLnB1c2goVyhlZSxkZSxkZSsxNjM4Mz52ZT92ZTpkZSsxNjM4MykpO3JldHVybiAxPT09c2U/b2UucHVzaChMWyhx''@;'; + put 'put ''PWVlW0otMV0pPj4yXStMW3E8PDQmNjNdKyI9PSIpOjI9PT1zZSYmb2UucHVzaChMWyhxPShlZVtKLTJdPDw4KStlZVtKLTFdKT4+MTBdK0xbcT4+NCY2M10rTFtxPDwyJjYzXSsiPSIpLG9lLmpvaW4oIiIpfTtmb3IodmFyIEw9W10sbWU9W10sQj0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4''@;'; + put 'put ''QXJyYXk/VWludDhBcnJheTpBcnJheSxFPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixNZT0wLFU9RS5sZW5ndGg7TWU8VTsrK01lKUxbTWVdPUVbTWVdLG1lW0UuY2hhckNvZGVBdChNZSldPU1lO2Z1bmN0aW9uIFEo''@;'; + put 'put ''ZWUpe3ZhciBxPWVlLmxlbmd0aDtpZihxJTQ+MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQiKTt2YXIgSj1lZS5pbmRleE9mKCI9Iik7cmV0dXJuLTE9PT1KJiYoSj1xKSxbSixKPT09cT8wOjQtSiU0XX1mdW5jdGlvbiBZ''@;'; + put 'put ''KGVlKXtyZXR1cm4gTFtlZT4+MTgmNjNdK0xbZWU+PjEyJjYzXStMW2VlPj42JjYzXStMWzYzJmVlXX1mdW5jdGlvbiBXKGVlLHEsSil7Zm9yKHZhciBvZT1bXSxjZT1xO2NlPEo7Y2UrPTMpb2UucHVzaChZKChlZVtjZV08PDE2JjE2NzExNjgwKSsoZWVbY2UrMV08PDgmNjUyODApKygyNTUm''@;'; + put 'put ''ZWVbY2UrMl0pKSk7cmV0dXJuIG9lLmpvaW4oIiIpfW1lWyItIi5jaGFyQ29kZUF0KDApXT02MixtZVsiXyIuY2hhckNvZGVBdCgwKV09NjN9LDk4NTM4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSxCKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShuZSx0ZSl7aWYoIW5lKXRocm93''@;'; + put 'put ''IG5ldyBFcnJvcih0ZXx8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBNZShuZSx0ZSl7bmUuc3VwZXJfPXRlO3ZhciB4PWZ1bmN0aW9uKCl7fTt4LnByb3RvdHlwZT10ZS5wcm90b3R5cGUsbmUucHJvdG90eXBlPW5ldyB4LG5lLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uZX1mdW5jdGlv''@;'; + put 'put ''biBVKG5lLHRlLHgpe2lmKFUuaXNCTihuZSkpcmV0dXJuIG5lO3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT1uZSYmKCgibGUiPT09dGV8fCJiZSI9PT10ZSkmJih4PXRlLHRlPTEwKSx0aGlzLl9pbml0KG5lfHwwLHRl''@;'; + put 'put ''fHwxMCx4fHwiYmUiKSl9dmFyIFE7Im9iamVjdCI9PXR5cGVvZiBtZT9tZS5leHBvcnRzPVU6Qi5CTj1VLFUuQk49VSxVLndvcmRTaXplPTI2O3RyeXtRPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6TCg0NjYwMSkuQnVm''@;'; + put 'put ''ZmVyfWNhdGNoKG5lKXt9ZnVuY3Rpb24gWihuZSx0ZSl7dmFyIHg9bmUuY2hhckNvZGVBdCh0ZSk7cmV0dXJuIHg+PTQ4JiZ4PD01Nz94LTQ4Ong+PTY1JiZ4PD03MD94LTU1Ong+PTk3JiZ4PD0xMDI/eC04Nzp2b2lkIEUoITEsIkludmFsaWQgY2hhcmFjdGVyIGluICIrbmUpfWZ1bmN0aW9u''@;'; + put 'put ''IGllKG5lLHRlLHgpe3ZhciBQPVoobmUseCk7cmV0dXJuIHgtMT49dGUmJihQfD1aKG5lLHgtMSk8PDQpLFB9ZnVuY3Rpb24gbGUobmUsdGUseCxQKXtmb3IodmFyIFY9MCxUPTAsUz1NYXRoLm1pbihuZS5sZW5ndGgseCksRj10ZTtGPFM7RisrKXt2YXIgeWU9bmUuY2hhckNvZGVBdChGKS00''@;'; + put 'put ''ODtWKj1QLFQ9eWU+PTQ5P3llLTQ5KzEwOnllPj0xNz95ZS0xNysxMDp5ZSxFKHllPj0wJiZUPFAsIkludmFsaWQgY2hhcmFjdGVyIiksVis9VH1yZXR1cm4gVn1mdW5jdGlvbiBZKG5lLHRlKXtuZS53b3Jkcz10ZS53b3JkcyxuZS5sZW5ndGg9dGUubGVuZ3RoLG5lLm5lZ2F0aXZlPXRlLm5l''@;'; + put 'put ''Z2F0aXZlLG5lLnJlZD10ZS5yZWR9aWYoVS5pc0JOPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGUgaW5zdGFuY2VvZiBVfHxudWxsIT09dGUmJiJvYmplY3QiPT10eXBlb2YgdGUmJnRlLmNvbnN0cnVjdG9yLndvcmRTaXplPT09VS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheSh0ZS53b3Jkcyl9LFUu''@;'; + put 'put ''bWF4PWZ1bmN0aW9uKHRlLHgpe3JldHVybiB0ZS5jbXAoeCk+MD90ZTp4fSxVLm1pbj1mdW5jdGlvbih0ZSx4KXtyZXR1cm4gdGUuY21wKHgpPDA/dGU6eH0sVS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24odGUseCxQKXtpZigibnVtYmVyIj09dHlwZW9mIHRlKXJldHVybiB0aGlzLl9pbml0''@;'; + put 'put ''TnVtYmVyKHRlLHgsUCk7aWYoIm9iamVjdCI9PXR5cGVvZiB0ZSlyZXR1cm4gdGhpcy5faW5pdEFycmF5KHRlLHgsUCk7ImhleCI9PT14JiYoeD0xNiksRSh4PT09KDB8eCkmJng+PTImJng8PTM2KTt2YXIgVj0wOyItIj09PSh0ZT10ZS50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlb''@;'; + put 'put ''MF0mJihWKyssdGhpcy5uZWdhdGl2ZT0xKSxWPHRlLmxlbmd0aCYmKDE2PT09eD90aGlzLl9wYXJzZUhleCh0ZSxWLFApOih0aGlzLl9wYXJzZUJhc2UodGUseCxWKSwibGUiPT09UCYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHgsUCkpKX0sVS5wcm90b3R5cGUuX2luaXROdW1i''@;'; + put 'put ''ZXI9ZnVuY3Rpb24odGUseCxQKXt0ZTwwJiYodGhpcy5uZWdhdGl2ZT0xLHRlPS10ZSksdGU8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJnRlXSx0aGlzLmxlbmd0aD0xKTp0ZTw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ0ZSx0ZS82NzEwODg2NCY2NzEw''@;'; + put 'put ''ODg2M10sdGhpcy5sZW5ndGg9Mik6KEUodGU8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmdGUsdGUvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PVAmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx4LFApfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5faW5pdEFycmF5PWZ1bmN0aW9uKHRlLHgsUCl7aWYoRSgibnVtYmVyIj09dHlwZW9mIHRlLmxlbmd0aCksdGUubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKHRlLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5l''@;'; + put 'put ''dyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBWPTA7Vjx0aGlzLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT0wO3ZhciBULFMsRj0wO2lmKCJiZSI9PT1QKWZvcihWPXRlLmxlbmd0aC0xLFQ9MDtWPj0wO1YtPTMpdGhpcy53b3Jkc1tUXXw9KFM9dGVbVl18dGVbVi0xXTw8OHx0ZVtWLTJd''@;'; + put 'put ''PDwxNik8PEYmNjcxMDg4NjMsdGhpcy53b3Jkc1tUKzFdPVM+Pj4yNi1GJjY3MTA4ODYzLChGKz0yNCk+PTI2JiYoRi09MjYsVCsrKTtlbHNlIGlmKCJsZSI9PT1QKWZvcihWPTAsVD0wO1Y8dGUubGVuZ3RoO1YrPTMpdGhpcy53b3Jkc1tUXXw9KFM9dGVbVl18dGVbVisxXTw8OHx0ZVtWKzJd''@;'; + put 'put ''PDwxNik8PEYmNjcxMDg4NjMsdGhpcy53b3Jkc1tUKzFdPVM+Pj4yNi1GJjY3MTA4ODYzLChGKz0yNCk+PTI2JiYoRi09MjYsVCsrKTtyZXR1cm4gdGhpcy5fc3RyaXAoKX0sVS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHRlLHgsUCl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh0ZS5s''@;'; + put 'put ''ZW5ndGgteCkvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgVj0wO1Y8dGhpcy5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09MDt2YXIgRixUPTAsUz0wO2lmKCJiZSI9PT1QKWZvcihWPXRlLmxlbmd0aC0xO1Y+PXg7Vi09MilGPWllKHRlLHgsVik8PFQsdGhp''@;'; + put 'put ''cy53b3Jkc1tTXXw9NjcxMDg4NjMmRixUPj0xOD8oVC09MTgsdGhpcy53b3Jkc1tTKz0xXXw9Rj4+PjI2KTpUKz04O2Vsc2UgZm9yKFY9KHRlLmxlbmd0aC14KSUyPT0wP3grMTp4O1Y8dGUubGVuZ3RoO1YrPTIpRj1pZSh0ZSx4LFYpPDxULHRoaXMud29yZHNbU118PTY3MTA4ODYzJkYsVD49''@;'; + put 'put ''MTg/KFQtPTE4LHRoaXMud29yZHNbUys9MV18PUY+Pj4yNik6VCs9ODt0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKHRlLHgsUCl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIFY9MCxUPTE7VDw9NjcxMDg4NjM7VCo9eClWKys7Vi0t''@;'; + put 'put ''LFQ9VC94fDA7Zm9yKHZhciBTPXRlLmxlbmd0aC1QLEY9UyVWLHllPU1hdGgubWluKFMsUy1GKStQLENlPTAsRGU9UDtEZTx5ZTtEZSs9VilDZT1sZSh0ZSxEZSxEZStWLHgpLHRoaXMuaW11bG4oVCksdGhpcy53b3Jkc1swXStDZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1DZTp0aGlzLl9p''@;'; + put 'put ''YWRkbihDZSk7aWYoMCE9PUYpe3ZhciBQZT0xO2ZvcihDZT1sZSh0ZSxEZSx0ZS5sZW5ndGgseCksRGU9MDtEZTxGO0RlKyspUGUqPXg7dGhpcy5pbXVsbihQZSksdGhpcy53b3Jkc1swXStDZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1DZTp0aGlzLl9pYWRkbihDZSl9dGhpcy5fc3RyaXAo''@;'; + put 'put ''KX0sVS5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0ZSl7dGUud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHg9MDt4PHRoaXMubGVuZ3RoO3grKyl0ZS53b3Jkc1t4XT10aGlzLndvcmRzW3hdO3RlLmxlbmd0aD10aGlzLmxlbmd0aCx0ZS5uZWdhdGl2ZT10aGlzLm5lZ2F0''@;'; + put 'put ''aXZlLHRlLnJlZD10aGlzLnJlZH0sVS5wcm90b3R5cGUuX21vdmU9ZnVuY3Rpb24odGUpe1kodGUsdGhpcyl9LFUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIHRlPW5ldyBVKG51bGwpO3JldHVybiB0aGlzLmNvcHkodGUpLHRlfSxVLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9u''@;'; + put 'put ''KHRlKXtmb3IoO3RoaXMubGVuZ3RoPHRlOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLl9zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0''@;'; + put 'put ''dXJuIHRoaXMuX25vcm1TaWduKCl9LFUucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSwidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmImZ1bmN0aW9uIj09dHlw''@;'; + put 'put ''ZW9mIFN5bWJvbC5mb3IpdHJ5e1UucHJvdG90eXBlW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIildPVd9Y2F0Y2gobmUpe1UucHJvdG90eXBlLmluc3BlY3Q9V31lbHNlIFUucHJvdG90eXBlLmluc3BlY3Q9VztmdW5jdGlvbiBXKCl7cmV0dXJuKHRoaXMucmVkPyI8''@;'; + put 'put ''Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9dmFyIE49WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIw''@;'; + put 'put ''MDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sZWU9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYs''@;'; + put 'put ''Niw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0scT1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1''@;'; + put 'put ''LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIx''@;'; + put 'put ''ODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBvZShuZSx0ZSx4KXt4Lm5lZ2F0aXZlPXRlLm5lZ2F0aXZlXm5lLm5lZ2F0aXZlO3ZhciBQPW5lLmxlbmd0aCt0ZS5sZW5ndGh8MDt4Lmxlbmd0aD1QLFA9UC0xfDA7dmFyIFY9MHxuZS53b3Jkc1swXSxUPTB8dGUud29yZHNbMF0sUz1WKlQseWU9Uy82''@;'; + put 'put ''NzEwODg2NHwwO3gud29yZHNbMF09NjcxMDg4NjMmUztmb3IodmFyIENlPTE7Q2U8UDtDZSsrKXtmb3IodmFyIERlPXllPj4+MjYsUGU9NjcxMDg4NjMmeWUsUWU9TWF0aC5taW4oQ2UsdGUubGVuZ3RoLTEpLCRlPU1hdGgubWF4KDAsQ2UtbmUubGVuZ3RoKzEpOyRlPD1RZTskZSsrKURlKz0o''@;'; + put 'put ''Uz0oVj0wfG5lLndvcmRzW0NlLSRlfDBdKSooVD0wfHRlLndvcmRzWyRlXSkrUGUpLzY3MTA4ODY0fDAsUGU9NjcxMDg4NjMmUzt4LndvcmRzW0NlXT0wfFBlLHllPTB8RGV9cmV0dXJuIDAhPT15ZT94LndvcmRzW0NlXT0wfHllOngubGVuZ3RoLS0seC5fc3RyaXAoKX1VLnByb3RvdHlwZS50''@;'; + put 'put ''b1N0cmluZz1mdW5jdGlvbih0ZSx4KXt2YXIgUDtpZih4PTB8eHx8MSwxNj09PSh0ZT10ZXx8MTApfHwiaGV4Ij09PXRlKXtQPSIiO2Zvcih2YXIgVj0wLFQ9MCxTPTA7Uzx0aGlzLmxlbmd0aDtTKyspe3ZhciBGPXRoaXMud29yZHNbU10seWU9KDE2Nzc3MjE1JihGPDxWfFQpKS50b1N0cmlu''@;'; + put 'put ''ZygxNik7VD1GPj4+MjQtViYxNjc3NzIxNSwoVis9Mik+PTI2JiYoVi09MjYsUy0tKSxQPTAhPT1UfHxTIT09dGhpcy5sZW5ndGgtMT9OWzYteWUubGVuZ3RoXSt5ZStQOnllK1B9Zm9yKDAhPT1UJiYoUD1ULnRvU3RyaW5nKDE2KStQKTtQLmxlbmd0aCV4IT0wOylQPSIwIitQO3JldHVybiAw''@;'; + put 'put ''IT09dGhpcy5uZWdhdGl2ZSYmKFA9Ii0iK1ApLFB9aWYodGU9PT0oMHx0ZSkmJnRlPj0yJiZ0ZTw9MzYpe3ZhciBDZT1lZVt0ZV0sRGU9cVt0ZV07UD0iIjt2YXIgUGU9dGhpcy5jbG9uZSgpO2ZvcihQZS5uZWdhdGl2ZT0wOyFQZS5pc1plcm8oKTspe3ZhciBRZT1QZS5tb2RybihEZSkudG9T''@;'; + put 'put ''dHJpbmcodGUpO1A9KFBlPVBlLmlkaXZuKERlKSkuaXNaZXJvKCk/UWUrUDpOW0NlLVFlLmxlbmd0aF0rUWUrUH1mb3IodGhpcy5pc1plcm8oKSYmKFA9IjAiK1ApO1AubGVuZ3RoJXghPTA7KVA9IjAiK1A7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoUD0iLSIrUCksUH1FKCExLCJCYXNl''@;'; + put 'put ''IHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LFUucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIHRlPXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD90ZSs9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRz''@;'; + put 'put ''WzJdP3RlKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmRSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LXRlOnRlfSxVLnByb3RvdHlwZS50b0pTT049ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNiwyKX0sUSYmKFUucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKHRlLHgpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKFEsdGUseCl9KSxVLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHRlLHgpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtl''@;'; + put 'put ''KEFycmF5LHRlLHgpfSxVLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbih0ZSx4LFApe3RoaXMuX3N0cmlwKCk7dmFyIFY9dGhpcy5ieXRlTGVuZ3RoKCksVD1QfHxNYXRoLm1heCgxLFYpO0UoVjw9VCwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLEUoVD4w''@;'; + put 'put ''LCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKTt2YXIgUz1mdW5jdGlvbih0ZSx4KXtyZXR1cm4gdGUuYWxsb2NVbnNhZmU/dGUuYWxsb2NVbnNhZmUoeCk6bmV3IHRlKHgpfSh0ZSxUKTtyZXR1cm4gdGhpc1siX3RvQXJyYXlMaWtlIisoImxlIj09PXg/IkxFIjoiQkUiKV0oUyxWKSxT''@;'; + put 'put ''fSxVLnByb3RvdHlwZS5fdG9BcnJheUxpa2VMRT1mdW5jdGlvbih0ZSx4KXtmb3IodmFyIFA9MCxWPTAsVD0wLFM9MDtUPHRoaXMubGVuZ3RoO1QrKyl7dmFyIEY9dGhpcy53b3Jkc1tUXTw8U3xWO3RlW1ArK109MjU1JkYsUDx0ZS5sZW5ndGgmJih0ZVtQKytdPUY+PjgmMjU1KSxQPHRlLmxl''@;'; + put 'put ''bmd0aCYmKHRlW1ArK109Rj4+MTYmMjU1KSw2PT09Uz8oUDx0ZS5sZW5ndGgmJih0ZVtQKytdPUY+PjI0JjI1NSksVj0wLFM9MCk6KFY9Rj4+PjI0LFMrPTIpfWlmKFA8dGUubGVuZ3RoKWZvcih0ZVtQKytdPVY7UDx0ZS5sZW5ndGg7KXRlW1ArK109MH0sVS5wcm90b3R5cGUuX3RvQXJyYXlM''@;'; + put 'put ''aWtlQkU9ZnVuY3Rpb24odGUseCl7Zm9yKHZhciBQPXRlLmxlbmd0aC0xLFY9MCxUPTAsUz0wO1Q8dGhpcy5sZW5ndGg7VCsrKXt2YXIgRj10aGlzLndvcmRzW1RdPDxTfFY7dGVbUC0tXT0yNTUmRixQPj0wJiYodGVbUC0tXT1GPj44JjI1NSksUD49MCYmKHRlW1AtLV09Rj4+MTYmMjU1KSw2''@;'; + put 'put ''PT09Uz8oUD49MCYmKHRlW1AtLV09Rj4+MjQmMjU1KSxWPTAsUz0wKTooVj1GPj4+MjQsUys9Mil9aWYoUD49MClmb3IodGVbUC0tXT1WO1A+PTA7KXRlW1AtLV09MH0sVS5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKHRlKXtyZXR1cm4gMzItTWF0aC5jbHozMih0''@;'; + put 'put ''ZSl9OmZ1bmN0aW9uKHRlKXt2YXIgeD10ZSxQPTA7cmV0dXJuIHg+PTQwOTYmJihQKz0xMyx4Pj4+PTEzKSx4Pj02NCYmKFArPTcseD4+Pj03KSx4Pj04JiYoUCs9NCx4Pj4+PTQpLHg+PTImJihQKz0yLHg+Pj49MiksUCt4fSxVLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24odGUpe2lm''@;'; + put 'put ''KDA9PT10ZSlyZXR1cm4gMjY7dmFyIHg9dGUsUD0wO3JldHVybiAwPT0oODE5MSZ4KSYmKFArPTEzLHg+Pj49MTMpLDA9PSgxMjcmeCkmJihQKz03LHg+Pj49NyksMD09KDE1JngpJiYoUCs9NCx4Pj4+PTQpLDA9PSgzJngpJiYoUCs9Mix4Pj4+PTIpLDA9PSgxJngpJiZQKyssUH0sVS5wcm90''@;'; + put 'put ''b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHg9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkreH0sVS5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zv''@;'; + put 'put ''cih2YXIgdGU9MCx4PTA7eDx0aGlzLmxlbmd0aDt4Kyspe3ZhciBQPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbeF0pO2lmKHRlKz1QLDI2IT09UClicmVha31yZXR1cm4gdGV9LFUucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVu''@;'; + put 'put ''Z3RoKCkvOCl9LFUucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbih0ZSl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4odGUpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sVS5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLnRlc3RuKHRl''@;'; + put 'put ''LTEpP3RoaXMubm90bih0ZSkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sVS5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LFUucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxVLnByb3Rv''@;'; + put 'put ''dHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxVLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKHRlKXtmb3IoO3RoaXMubGVuZ3RoPHRlLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgeD0w''@;'; + put 'put ''O3g8dGUubGVuZ3RoO3grKyl0aGlzLndvcmRzW3hdPXRoaXMud29yZHNbeF18dGUud29yZHNbeF07cmV0dXJuIHRoaXMuX3N0cmlwKCl9LFUucHJvdG90eXBlLmlvcj1mdW5jdGlvbih0ZSl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8dGUubmVnYXRpdmUpKSx0aGlzLml1b3IodGUpfSxV''@;'; + put 'put ''LnByb3RvdHlwZS5vcj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMubGVuZ3RoPnRlLmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKHRlKTp0ZS5jbG9uZSgpLmlvcih0aGlzKX0sVS5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5sZW5ndGg+dGUubGVuZ3RoP3RoaXMuY2xv''@;'; + put 'put ''bmUoKS5pdW9yKHRlKTp0ZS5jbG9uZSgpLml1b3IodGhpcyl9LFUucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKHRlKXt2YXIgeDt4PXRoaXMubGVuZ3RoPnRlLmxlbmd0aD90ZTp0aGlzO2Zvcih2YXIgUD0wO1A8eC5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09dGhpcy53b3Jkc1tQXSZ0ZS53''@;'; + put 'put ''b3Jkc1tQXTtyZXR1cm4gdGhpcy5sZW5ndGg9eC5sZW5ndGgsdGhpcy5fc3RyaXAoKX0sVS5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih0ZSl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8dGUubmVnYXRpdmUpKSx0aGlzLml1YW5kKHRlKX0sVS5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHRl''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy5sZW5ndGg+dGUubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKHRlKTp0ZS5jbG9uZSgpLmlhbmQodGhpcyl9LFUucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmxlbmd0aD50ZS5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKHRlKTp0ZS5jbG9u''@;'; + put 'put ''ZSgpLml1YW5kKHRoaXMpfSxVLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbih0ZSl7dmFyIHgsUDt0aGlzLmxlbmd0aD50ZS5sZW5ndGg/KHg9dGhpcyxQPXRlKTooeD10ZSxQPXRoaXMpO2Zvcih2YXIgVj0wO1Y8UC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09eC53b3Jkc1tWXV5QLndvcmRz''@;'; + put 'put ''W1ZdO2lmKHRoaXMhPT14KWZvcig7Vjx4Lmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT14LndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD14Lmxlbmd0aCx0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHRlKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXx0ZS5u''@;'; + put 'put ''ZWdhdGl2ZSkpLHRoaXMuaXV4b3IodGUpfSxVLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmxlbmd0aD50ZS5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IodGUpOnRlLmNsb25lKCkuaXhvcih0aGlzKX0sVS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbih0ZSl7cmV0dXJu''@;'; + put 'put ''IHRoaXMubGVuZ3RoPnRlLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IodGUpOnRlLmNsb25lKCkuaXV4b3IodGhpcyl9LFUucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKHRlKXtFKCJudW1iZXIiPT10eXBlb2YgdGUmJnRlPj0wKTt2YXIgeD0wfE1hdGguY2VpbCh0ZS8yNiksUD10ZSUyNjt0''@;'; + put 'put ''aGlzLl9leHBhbmQoeCksUD4wJiZ4LS07Zm9yKHZhciBWPTA7Vjx4O1YrKyl0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJn50aGlzLndvcmRzW1ZdO3JldHVybiBQPjAmJih0aGlzLndvcmRzW1ZdPX50aGlzLndvcmRzW1ZdJjY3MTA4ODYzPj4yNi1QKSx0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5ub3RuPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKHRlKX0sVS5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbih0ZSx4KXtFKCJudW1iZXIiPT10eXBlb2YgdGUmJnRlPj0wKTt2YXIgUD10ZS8yNnwwLFY9dGUlMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChQKzEpLHRoaXMu''@;'; + put 'put ''d29yZHNbUF09eD90aGlzLndvcmRzW1BdfDE8PFY6dGhpcy53b3Jkc1tQXSZ+KDE8PFYpLHRoaXMuX3N0cmlwKCl9LFUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24odGUpe3ZhciB4LFAsVjtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXRlLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZl''@;'; + put 'put ''PTAseD10aGlzLmlzdWIodGUpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXRlLm5lZ2F0aXZlKXJldHVybiB0ZS5uZWdhdGl2ZT0wLHg9dGhpcy5pc3ViKHRlKSx0ZS5uZWdhdGl2ZT0xLHguX25vcm1TaWduKCk7dGhpcy5sZW5n''@;'; + put 'put ''dGg+dGUubGVuZ3RoPyhQPXRoaXMsVj10ZSk6KFA9dGUsVj10aGlzKTtmb3IodmFyIFQ9MCxTPTA7UzxWLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT02NzEwODg2MyYoeD0oMHxQLndvcmRzW1NdKSsoMHxWLndvcmRzW1NdKStUKSxUPXg+Pj4yNjtmb3IoOzAhPT1UJiZTPFAubGVuZ3RoO1Mr''@;'; + put 'put ''Kyl0aGlzLndvcmRzW1NdPTY3MTA4ODYzJih4PSgwfFAud29yZHNbU10pK1QpLFQ9eD4+PjI2O2lmKHRoaXMubGVuZ3RoPVAubGVuZ3RoLDAhPT1UKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVQsdGhpcy5sZW5ndGgrKztlbHNlIGlmKFAhPT10aGlzKWZvcig7UzxQLmxlbmd0aDtTKyspdGhp''@;'; + put 'put ''cy53b3Jkc1tTXT1QLndvcmRzW1NdO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odGUpe3ZhciB4O3JldHVybiAwIT09dGUubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyh0ZS5uZWdhdGl2ZT0wLHg9dGhpcy5zdWIodGUpLHRlLm5lZ2F0aXZlXj0xLHgpOjA9PT10''@;'; + put 'put ''ZS5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCx4PXRlLnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEseCk6dGhpcy5sZW5ndGg+dGUubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKHRlKTp0ZS5jbG9uZSgpLmlhZGQodGhpcyl9LFUucHJvdG90eXBlLmlzdWI9''@;'; + put 'put ''ZnVuY3Rpb24odGUpe2lmKDAhPT10ZS5uZWdhdGl2ZSl7dGUubmVnYXRpdmU9MDt2YXIgeD10aGlzLmlhZGQodGUpO3JldHVybiB0ZS5uZWdhdGl2ZT0xLHguX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQodGUpLHRoaXMu''@;'; + put 'put ''bmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBWLFQsUD10aGlzLmNtcCh0ZSk7aWYoMD09PVApcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO1A+MD8oVj10aGlzLFQ9dGUpOihWPXRlLFQ9dGhpcyk7Zm9yKHZhciBTPTAsRj0w''@;'; + put 'put ''O0Y8VC5sZW5ndGg7RisrKVM9KHg9KDB8Vi53b3Jkc1tGXSktKDB8VC53b3Jkc1tGXSkrUyk+PjI2LHRoaXMud29yZHNbRl09NjcxMDg4NjMmeDtmb3IoOzAhPT1TJiZGPFYubGVuZ3RoO0YrKylTPSh4PSgwfFYud29yZHNbRl0pK1MpPj4yNix0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJng7aWYo''@;'; + put 'put ''MD09PVMmJkY8Vi5sZW5ndGgmJlYhPT10aGlzKWZvcig7RjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT1WLndvcmRzW0ZdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxGKSxWIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5fc3RyaXAoKX0sVS5wcm90''@;'; + put 'put ''b3R5cGUuc3ViPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIodGUpfTt2YXIgY2U9ZnVuY3Rpb24odGUseCxQKXt2YXIgeWUsQ2UsRGUsVj10ZS53b3JkcyxUPXgud29yZHMsUz1QLndvcmRzLEY9MCxQZT0wfFZbMF0sUWU9ODE5MSZQZSwkZT1QZT4+PjEzLGd0PTB8Vlsx''@;'; + put 'put ''XSx3dD04MTkxJmd0LHZ0PWd0Pj4+MTMsQXQ9MHxWWzJdLG10PTgxOTEmQXQsaHQ9QXQ+Pj4xMyxCdD0wfFZbM10sb249ODE5MSZCdCxfdD1CdD4+PjEzLHR0PTB8Vls0XSxldD04MTkxJnR0LGF0PXR0Pj4+MTMsTHQ9MHxWWzVdLEN0PTgxOTEmTHQsZnQ9THQ+Pj4xMyxIdD0wfFZbNl0sR2U9''@;'; + put 'put ''ODE5MSZIdCxVZT1IdD4+PjEzLHl0PTB8Vls3XSxqdD04MTkxJnl0LFF0PXl0Pj4+MTMsZ249MHxWWzhdLGRuPTgxOTEmZ24seW49Z24+Pj4xMyxsbj0wfFZbOV0sTm49ODE5MSZsbixibj1sbj4+PjEzLGVyPTB8VFswXSxzcj04MTkxJmVyLFhuPWVyPj4+MTMsRnI9MHxUWzFdLHhyPTgxOTEm''@;'; + put 'put ''RnIscXQ9RnI+Pj4xMyxwcj0wfFRbMl0sbnI9ODE5MSZwcixBbj1wcj4+PjEzLHFuPTB8VFszXSxXdD04MTkxJnFuLHBuPXFuPj4+MTMsS249MHxUWzRdLE50PTgxOTEmS24sc249S24+Pj4xMyxVbj0wfFRbNV0sd249ODE5MSZVbix0bj1Vbj4+PjEzLHpuPTB8VFs2XSxUcj04MTkxJnpuLEJu''@;'; + put 'put ''PXpuPj4+MTMsa3I9MHxUWzddLG1uPTgxOTEma3IsdW49a3I+Pj4xMyxjbj0wfFRbOF0sX249ODE5MSZjbixHdD1jbj4+PjEzLGtuPTB8VFs5XSxWbj04MTkxJmtuLGVuPWtuPj4+MTM7UC5uZWdhdGl2ZT10ZS5uZWdhdGl2ZV54Lm5lZ2F0aXZlLFAubGVuZ3RoPTE5O3ZhciBJbj0oRisoeWU9''@;'; + put 'put ''TWF0aC5pbXVsKFFlLHNyKSl8MCkrKCg4MTkxJihDZT0oQ2U9TWF0aC5pbXVsKFFlLFhuKSkrTWF0aC5pbXVsKCRlLHNyKXwwKSk8PDEzKXwwO0Y9KChEZT1NYXRoLmltdWwoJGUsWG4pKSsoQ2U+Pj4xMyl8MCkrKEluPj4+MjYpfDAsSW4mPTY3MTA4ODYzLHllPU1hdGguaW11bCh3dCxzciks''@;'; + put 'put ''Q2U9KENlPU1hdGguaW11bCh3dCxYbikpK01hdGguaW11bCh2dCxzcil8MCxEZT1NYXRoLmltdWwodnQsWG4pO3ZhciBKbj0oRisoeWU9eWUrTWF0aC5pbXVsKFFlLHhyKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoUWUscXQpfDApK01hdGguaW11bCgkZSx4cil8MCkpPDwx''@;'; + put 'put ''Myl8MDtGPSgoRGU9RGUrTWF0aC5pbXVsKCRlLHF0KXwwKSsoQ2U+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLHllPU1hdGguaW11bChtdCxzciksQ2U9KENlPU1hdGguaW11bChtdCxYbikpK01hdGguaW11bChodCxzcil8MCxEZT1NYXRoLmltdWwoaHQsWG4pLHllPXllK01h''@;'; + put 'put ''dGguaW11bCh3dCx4cil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHd0LHF0KXwwKStNYXRoLmltdWwodnQseHIpfDAsRGU9RGUrTWF0aC5pbXVsKHZ0LHF0KXwwO3ZhciBvcj0oRisoeWU9eWUrTWF0aC5pbXVsKFFlLG5yKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoUWUsQW4p''@;'; + put 'put ''fDApK01hdGguaW11bCgkZSxucil8MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5pbXVsKCRlLEFuKXwwKSsoQ2U+Pj4xMyl8MCkrKG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLHllPU1hdGguaW11bChvbixzciksQ2U9KENlPU1hdGguaW11bChvbixYbikpK01hdGguaW11bChfdCxzcil8MCxE''@;'; + put 'put ''ZT1NYXRoLmltdWwoX3QsWG4pLHllPXllK01hdGguaW11bChtdCx4cil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LHF0KXwwKStNYXRoLmltdWwoaHQseHIpfDAsRGU9RGUrTWF0aC5pbXVsKGh0LHF0KXwwLHllPXllK01hdGguaW11bCh3dCxucil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHd0''@;'; + put 'put ''LEFuKXwwKStNYXRoLmltdWwodnQsbnIpfDAsRGU9RGUrTWF0aC5pbXVsKHZ0LEFuKXwwO3ZhciBncj0oRisoeWU9eWUrTWF0aC5pbXVsKFFlLFd0KXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoUWUscG4pfDApK01hdGguaW11bCgkZSxXdCl8MCkpPDwxMyl8MDtGPSgoRGU9''@;'; + put 'put ''RGUrTWF0aC5pbXVsKCRlLHBuKXwwKSsoQ2U+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLHllPU1hdGguaW11bChldCxzciksQ2U9KENlPU1hdGguaW11bChldCxYbikpK01hdGguaW11bChhdCxzcil8MCxEZT1NYXRoLmltdWwoYXQsWG4pLHllPXllK01hdGguaW11bChvbix4''@;'; + put 'put ''cil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG9uLHF0KXwwKStNYXRoLmltdWwoX3QseHIpfDAsRGU9RGUrTWF0aC5pbXVsKF90LHF0KXwwLHllPXllK01hdGguaW11bChtdCxucil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LEFuKXwwKStNYXRoLmltdWwoaHQsbnIpfDAsRGU9RGUrTWF0aC5p''@;'; + put 'put ''bXVsKGh0LEFuKXwwLHllPXllK01hdGguaW11bCh3dCxXdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHd0LHBuKXwwKStNYXRoLmltdWwodnQsV3QpfDAsRGU9RGUrTWF0aC5pbXVsKHZ0LHBuKXwwO3ZhciBLcj0oRisoeWU9eWUrTWF0aC5pbXVsKFFlLE50KXwwKXwwKSsoKDgxOTEmKENlPShD''@;'; + put 'put ''ZT1DZStNYXRoLmltdWwoUWUsc24pfDApK01hdGguaW11bCgkZSxOdCl8MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5pbXVsKCRlLHNuKXwwKSsoQ2U+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLHllPU1hdGguaW11bChDdCxzciksQ2U9KENlPU1hdGguaW11bChDdCxYbikp''@;'; + put 'put ''K01hdGguaW11bChmdCxzcil8MCxEZT1NYXRoLmltdWwoZnQsWG4pLHllPXllK01hdGguaW11bChldCx4cil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGV0LHF0KXwwKStNYXRoLmltdWwoYXQseHIpfDAsRGU9RGUrTWF0aC5pbXVsKGF0LHF0KXwwLHllPXllK01hdGguaW11bChvbixucil8MCxD''@;'; + put 'put ''ZT0oQ2U9Q2UrTWF0aC5pbXVsKG9uLEFuKXwwKStNYXRoLmltdWwoX3QsbnIpfDAsRGU9RGUrTWF0aC5pbXVsKF90LEFuKXwwLHllPXllK01hdGguaW11bChtdCxXdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LHBuKXwwKStNYXRoLmltdWwoaHQsV3QpfDAsRGU9RGUrTWF0aC5pbXVsKGh0''@;'; + put 'put ''LHBuKXwwLHllPXllK01hdGguaW11bCh3dCxOdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHd0LHNuKXwwKStNYXRoLmltdWwodnQsTnQpfDAsRGU9RGUrTWF0aC5pbXVsKHZ0LHNuKXwwO3ZhciBWcj0oRisoeWU9eWUrTWF0aC5pbXVsKFFlLHduKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStN''@;'; + put 'put ''YXRoLmltdWwoUWUsdG4pfDApK01hdGguaW11bCgkZSx3bil8MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5pbXVsKCRlLHRuKXwwKSsoQ2U+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3MTA4ODYzLHllPU1hdGguaW11bChHZSxzciksQ2U9KENlPU1hdGguaW11bChHZSxYbikpK01hdGgu''@;'; + put 'put ''aW11bChVZSxzcil8MCxEZT1NYXRoLmltdWwoVWUsWG4pLHllPXllK01hdGguaW11bChDdCx4cil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEN0LHF0KXwwKStNYXRoLmltdWwoZnQseHIpfDAsRGU9RGUrTWF0aC5pbXVsKGZ0LHF0KXwwLHllPXllK01hdGguaW11bChldCxucil8MCxDZT0oQ2U9''@;'; + put 'put ''Q2UrTWF0aC5pbXVsKGV0LEFuKXwwKStNYXRoLmltdWwoYXQsbnIpfDAsRGU9RGUrTWF0aC5pbXVsKGF0LEFuKXwwLHllPXllK01hdGguaW11bChvbixXdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG9uLHBuKXwwKStNYXRoLmltdWwoX3QsV3QpfDAsRGU9RGUrTWF0aC5pbXVsKF90LHBuKXww''@;'; + put 'put ''LHllPXllK01hdGguaW11bChtdCxOdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LHNuKXwwKStNYXRoLmltdWwoaHQsTnQpfDAsRGU9RGUrTWF0aC5pbXVsKGh0LHNuKXwwLHllPXllK01hdGguaW11bCh3dCx3bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHd0LHRuKXwwKStNYXRoLmltdWwo''@;'; + put 'put ''dnQsd24pfDAsRGU9RGUrTWF0aC5pbXVsKHZ0LHRuKXwwO3ZhciBpaT0oRisoeWU9eWUrTWF0aC5pbXVsKFFlLFRyKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoUWUsQm4pfDApK01hdGguaW11bCgkZSxUcil8MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5pbXVsKCRlLEJu''@;'; + put 'put ''KXwwKSsoQ2U+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLHllPU1hdGguaW11bChqdCxzciksQ2U9KENlPU1hdGguaW11bChqdCxYbikpK01hdGguaW11bChRdCxzcil8MCxEZT1NYXRoLmltdWwoUXQsWG4pLHllPXllK01hdGguaW11bChHZSx4cil8MCxDZT0oQ2U9Q2UrTWF0''@;'; + put 'put ''aC5pbXVsKEdlLHF0KXwwKStNYXRoLmltdWwoVWUseHIpfDAsRGU9RGUrTWF0aC5pbXVsKFVlLHF0KXwwLHllPXllK01hdGguaW11bChDdCxucil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEN0LEFuKXwwKStNYXRoLmltdWwoZnQsbnIpfDAsRGU9RGUrTWF0aC5pbXVsKGZ0LEFuKXwwLHllPXll''@;'; + put 'put ''K01hdGguaW11bChldCxXdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGV0LHBuKXwwKStNYXRoLmltdWwoYXQsV3QpfDAsRGU9RGUrTWF0aC5pbXVsKGF0LHBuKXwwLHllPXllK01hdGguaW11bChvbixOdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG9uLHNuKXwwKStNYXRoLmltdWwoX3QsTnQp''@;'; + put 'put ''fDAsRGU9RGUrTWF0aC5pbXVsKF90LHNuKXwwLHllPXllK01hdGguaW11bChtdCx3bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LHRuKXwwKStNYXRoLmltdWwoaHQsd24pfDAsRGU9RGUrTWF0aC5pbXVsKGh0LHRuKXwwLHllPXllK01hdGguaW11bCh3dCxUcil8MCxDZT0oQ2U9Q2UrTWF0''@;'; + put 'put ''aC5pbXVsKHd0LEJuKXwwKStNYXRoLmltdWwodnQsVHIpfDAsRGU9RGUrTWF0aC5pbXVsKHZ0LEJuKXwwO3ZhciBScj0oRisoeWU9eWUrTWF0aC5pbXVsKFFlLG1uKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoUWUsdW4pfDApK01hdGguaW11bCgkZSxtbil8MCkpPDwxMyl8''@;'; + put 'put ''MDtGPSgoRGU9RGUrTWF0aC5pbXVsKCRlLHVuKXwwKSsoQ2U+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLHllPU1hdGguaW11bChkbixzciksQ2U9KENlPU1hdGguaW11bChkbixYbikpK01hdGguaW11bCh5bixzcil8MCxEZT1NYXRoLmltdWwoeW4sWG4pLHllPXllK01hdGgu''@;'; + put 'put ''aW11bChqdCx4cil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGp0LHF0KXwwKStNYXRoLmltdWwoUXQseHIpfDAsRGU9RGUrTWF0aC5pbXVsKFF0LHF0KXwwLHllPXllK01hdGguaW11bChHZSxucil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEdlLEFuKXwwKStNYXRoLmltdWwoVWUsbnIpfDAsRGU9''@;'; + put 'put ''RGUrTWF0aC5pbXVsKFVlLEFuKXwwLHllPXllK01hdGguaW11bChDdCxXdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEN0LHBuKXwwKStNYXRoLmltdWwoZnQsV3QpfDAsRGU9RGUrTWF0aC5pbXVsKGZ0LHBuKXwwLHllPXllK01hdGguaW11bChldCxOdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVs''@;'; + put 'put ''KGV0LHNuKXwwKStNYXRoLmltdWwoYXQsTnQpfDAsRGU9RGUrTWF0aC5pbXVsKGF0LHNuKXwwLHllPXllK01hdGguaW11bChvbix3bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG9uLHRuKXwwKStNYXRoLmltdWwoX3Qsd24pfDAsRGU9RGUrTWF0aC5pbXVsKF90LHRuKXwwLHllPXllK01hdGgu''@;'; + put 'put ''aW11bChtdCxUcil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LEJuKXwwKStNYXRoLmltdWwoaHQsVHIpfDAsRGU9RGUrTWF0aC5pbXVsKGh0LEJuKXwwLHllPXllK01hdGguaW11bCh3dCxtbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHd0LHVuKXwwKStNYXRoLmltdWwodnQsbW4pfDAsRGU9''@;'; + put 'put ''RGUrTWF0aC5pbXVsKHZ0LHVuKXwwO3ZhciBsaT0oRisoeWU9eWUrTWF0aC5pbXVsKFFlLF9uKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoUWUsR3QpfDApK01hdGguaW11bCgkZSxfbil8MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5pbXVsKCRlLEd0KXwwKSsoQ2U+Pj4x''@;'; + put 'put ''Myl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLHllPU1hdGguaW11bChObixzciksQ2U9KENlPU1hdGguaW11bChObixYbikpK01hdGguaW11bChibixzcil8MCxEZT1NYXRoLmltdWwoYm4sWG4pLHllPXllK01hdGguaW11bChkbix4cil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGRuLHF0''@;'; + put 'put ''KXwwKStNYXRoLmltdWwoeW4seHIpfDAsRGU9RGUrTWF0aC5pbXVsKHluLHF0KXwwLHllPXllK01hdGguaW11bChqdCxucil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGp0LEFuKXwwKStNYXRoLmltdWwoUXQsbnIpfDAsRGU9RGUrTWF0aC5pbXVsKFF0LEFuKXwwLHllPXllK01hdGguaW11bChH''@;'; + put 'put ''ZSxXdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEdlLHBuKXwwKStNYXRoLmltdWwoVWUsV3QpfDAsRGU9RGUrTWF0aC5pbXVsKFVlLHBuKXwwLHllPXllK01hdGguaW11bChDdCxOdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEN0LHNuKXwwKStNYXRoLmltdWwoZnQsTnQpfDAsRGU9RGUrTWF0''@;'; + put 'put ''aC5pbXVsKGZ0LHNuKXwwLHllPXllK01hdGguaW11bChldCx3bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGV0LHRuKXwwKStNYXRoLmltdWwoYXQsd24pfDAsRGU9RGUrTWF0aC5pbXVsKGF0LHRuKXwwLHllPXllK01hdGguaW11bChvbixUcil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG9uLEJu''@;'; + put 'put ''KXwwKStNYXRoLmltdWwoX3QsVHIpfDAsRGU9RGUrTWF0aC5pbXVsKF90LEJuKXwwLHllPXllK01hdGguaW11bChtdCxtbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LHVuKXwwKStNYXRoLmltdWwoaHQsbW4pfDAsRGU9RGUrTWF0aC5pbXVsKGh0LHVuKXwwLHllPXllK01hdGguaW11bCh3''@;'; + put 'put ''dCxfbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHd0LEd0KXwwKStNYXRoLmltdWwodnQsX24pfDAsRGU9RGUrTWF0aC5pbXVsKHZ0LEd0KXwwO3ZhciBNaT0oRisoeWU9eWUrTWF0aC5pbXVsKFFlLFZuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoUWUsZW4pfDApK01hdGgu''@;'; + put 'put ''aW11bCgkZSxWbil8MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5pbXVsKCRlLGVuKXwwKSsoQ2U+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLHllPU1hdGguaW11bChObix4ciksQ2U9KENlPU1hdGguaW11bChObixxdCkpK01hdGguaW11bChibix4cil8MCxEZT1NYXRoLmlt''@;'; + put 'put ''dWwoYm4scXQpLHllPXllK01hdGguaW11bChkbixucil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGRuLEFuKXwwKStNYXRoLmltdWwoeW4sbnIpfDAsRGU9RGUrTWF0aC5pbXVsKHluLEFuKXwwLHllPXllK01hdGguaW11bChqdCxXdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGp0LHBuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoUXQsV3QpfDAsRGU9RGUrTWF0aC5pbXVsKFF0LHBuKXwwLHllPXllK01hdGguaW11bChHZSxOdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEdlLHNuKXwwKStNYXRoLmltdWwoVWUsTnQpfDAsRGU9RGUrTWF0aC5pbXVsKFVlLHNuKXwwLHllPXllK01hdGguaW11bChDdCx3bil8''@;'; + put 'put ''MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEN0LHRuKXwwKStNYXRoLmltdWwoZnQsd24pfDAsRGU9RGUrTWF0aC5pbXVsKGZ0LHRuKXwwLHllPXllK01hdGguaW11bChldCxUcil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGV0LEJuKXwwKStNYXRoLmltdWwoYXQsVHIpfDAsRGU9RGUrTWF0aC5pbXVs''@;'; + put 'put ''KGF0LEJuKXwwLHllPXllK01hdGguaW11bChvbixtbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG9uLHVuKXwwKStNYXRoLmltdWwoX3QsbW4pfDAsRGU9RGUrTWF0aC5pbXVsKF90LHVuKXwwLHllPXllK01hdGguaW11bChtdCxfbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LEd0KXwwKStN''@;'; + put 'put ''YXRoLmltdWwoaHQsX24pfDAsRGU9RGUrTWF0aC5pbXVsKGh0LEd0KXwwO3ZhciBvMD0oRisoeWU9eWUrTWF0aC5pbXVsKHd0LFZuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwod3QsZW4pfDApK01hdGguaW11bCh2dCxWbil8MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5p''@;'; + put 'put ''bXVsKHZ0LGVuKXwwKSsoQ2U+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLHllPU1hdGguaW11bChObixuciksQ2U9KENlPU1hdGguaW11bChObixBbikpK01hdGguaW11bChibixucil8MCxEZT1NYXRoLmltdWwoYm4sQW4pLHllPXllK01hdGguaW11bChkbixXdCl8MCxDZT0o''@;'; + put 'put ''Q2U9Q2UrTWF0aC5pbXVsKGRuLHBuKXwwKStNYXRoLmltdWwoeW4sV3QpfDAsRGU9RGUrTWF0aC5pbXVsKHluLHBuKXwwLHllPXllK01hdGguaW11bChqdCxOdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGp0LHNuKXwwKStNYXRoLmltdWwoUXQsTnQpfDAsRGU9RGUrTWF0aC5pbXVsKFF0LHNu''@;'; + put 'put ''KXwwLHllPXllK01hdGguaW11bChHZSx3bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEdlLHRuKXwwKStNYXRoLmltdWwoVWUsd24pfDAsRGU9RGUrTWF0aC5pbXVsKFVlLHRuKXwwLHllPXllK01hdGguaW11bChDdCxUcil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEN0LEJuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoZnQsVHIpfDAsRGU9RGUrTWF0aC5pbXVsKGZ0LEJuKXwwLHllPXllK01hdGguaW11bChldCxtbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGV0LHVuKXwwKStNYXRoLmltdWwoYXQsbW4pfDAsRGU9RGUrTWF0aC5pbXVsKGF0LHVuKXwwLHllPXllK01hdGguaW11bChvbixfbil8MCxDZT0o''@;'; + put 'put ''Q2U9Q2UrTWF0aC5pbXVsKG9uLEd0KXwwKStNYXRoLmltdWwoX3QsX24pfDAsRGU9RGUrTWF0aC5pbXVsKF90LEd0KXwwO3ZhciBuMD0oRisoeWU9eWUrTWF0aC5pbXVsKG10LFZuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwobXQsZW4pfDApK01hdGguaW11bChodCxWbil8''@;'; + put 'put ''MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5pbXVsKGh0LGVuKXwwKSsoQ2U+Pj4xMyl8MCkrKG4wPj4+MjYpfDAsbjAmPTY3MTA4ODYzLHllPU1hdGguaW11bChObixXdCksQ2U9KENlPU1hdGguaW11bChObixwbikpK01hdGguaW11bChibixXdCl8MCxEZT1NYXRoLmltdWwoYm4scG4pLHll''@;'; + put 'put ''PXllK01hdGguaW11bChkbixOdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGRuLHNuKXwwKStNYXRoLmltdWwoeW4sTnQpfDAsRGU9RGUrTWF0aC5pbXVsKHluLHNuKXwwLHllPXllK01hdGguaW11bChqdCx3bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGp0LHRuKXwwKStNYXRoLmltdWwoUXQs''@;'; + put 'put ''d24pfDAsRGU9RGUrTWF0aC5pbXVsKFF0LHRuKXwwLHllPXllK01hdGguaW11bChHZSxUcil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEdlLEJuKXwwKStNYXRoLmltdWwoVWUsVHIpfDAsRGU9RGUrTWF0aC5pbXVsKFVlLEJuKXwwLHllPXllK01hdGguaW11bChDdCxtbil8MCxDZT0oQ2U9Q2Ur''@;'; + put 'put ''TWF0aC5pbXVsKEN0LHVuKXwwKStNYXRoLmltdWwoZnQsbW4pfDAsRGU9RGUrTWF0aC5pbXVsKGZ0LHVuKXwwLHllPXllK01hdGguaW11bChldCxfbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGV0LEd0KXwwKStNYXRoLmltdWwoYXQsX24pfDAsRGU9RGUrTWF0aC5pbXVsKGF0LEd0KXwwO3Zh''@;'; + put 'put ''ciBkMD0oRisoeWU9eWUrTWF0aC5pbXVsKG9uLFZuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwob24sZW4pfDApK01hdGguaW11bChfdCxWbil8MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5pbXVsKF90LGVuKXwwKSsoQ2U+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3''@;'; + put 'put ''MTA4ODYzLHllPU1hdGguaW11bChObixOdCksQ2U9KENlPU1hdGguaW11bChObixzbikpK01hdGguaW11bChibixOdCl8MCxEZT1NYXRoLmltdWwoYm4sc24pLHllPXllK01hdGguaW11bChkbix3bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGRuLHRuKXwwKStNYXRoLmltdWwoeW4sd24pfDAs''@;'; + put 'put ''RGU9RGUrTWF0aC5pbXVsKHluLHRuKXwwLHllPXllK01hdGguaW11bChqdCxUcil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGp0LEJuKXwwKStNYXRoLmltdWwoUXQsVHIpfDAsRGU9RGUrTWF0aC5pbXVsKFF0LEJuKXwwLHllPXllK01hdGguaW11bChHZSxtbil8MCxDZT0oQ2U9Q2UrTWF0aC5p''@;'; + put 'put ''bXVsKEdlLHVuKXwwKStNYXRoLmltdWwoVWUsbW4pfDAsRGU9RGUrTWF0aC5pbXVsKFVlLHVuKXwwLHllPXllK01hdGguaW11bChDdCxfbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEN0LEd0KXwwKStNYXRoLmltdWwoZnQsX24pfDAsRGU9RGUrTWF0aC5pbXVsKGZ0LEd0KXwwO3ZhciBtMD0o''@;'; + put 'put ''RisoeWU9eWUrTWF0aC5pbXVsKGV0LFZuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoZXQsZW4pfDApK01hdGguaW11bChhdCxWbil8MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5pbXVsKGF0LGVuKXwwKSsoQ2U+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYz''@;'; + put 'put ''LHllPU1hdGguaW11bChObix3biksQ2U9KENlPU1hdGguaW11bChObix0bikpK01hdGguaW11bChibix3bil8MCxEZT1NYXRoLmltdWwoYm4sdG4pLHllPXllK01hdGguaW11bChkbixUcil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGRuLEJuKXwwKStNYXRoLmltdWwoeW4sVHIpfDAsRGU9RGUr''@;'; + put 'put ''TWF0aC5pbXVsKHluLEJuKXwwLHllPXllK01hdGguaW11bChqdCxtbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGp0LHVuKXwwKStNYXRoLmltdWwoUXQsbW4pfDAsRGU9RGUrTWF0aC5pbXVsKFF0LHVuKXwwLHllPXllK01hdGguaW11bChHZSxfbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEdl''@;'; + put 'put ''LEd0KXwwKStNYXRoLmltdWwoVWUsX24pfDAsRGU9RGUrTWF0aC5pbXVsKFVlLEd0KXwwO3ZhciBHMD0oRisoeWU9eWUrTWF0aC5pbXVsKEN0LFZuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoQ3QsZW4pfDApK01hdGguaW11bChmdCxWbil8MCkpPDwxMyl8MDtGPSgoRGU9''@;'; + put 'put ''RGUrTWF0aC5pbXVsKGZ0LGVuKXwwKSsoQ2U+Pj4xMyl8MCkrKEcwPj4+MjYpfDAsRzAmPTY3MTA4ODYzLHllPU1hdGguaW11bChObixUciksQ2U9KENlPU1hdGguaW11bChObixCbikpK01hdGguaW11bChibixUcil8MCxEZT1NYXRoLmltdWwoYm4sQm4pLHllPXllK01hdGguaW11bChkbixt''@;'; + put 'put ''bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGRuLHVuKXwwKStNYXRoLmltdWwoeW4sbW4pfDAsRGU9RGUrTWF0aC5pbXVsKHluLHVuKXwwLHllPXllK01hdGguaW11bChqdCxfbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGp0LEd0KXwwKStNYXRoLmltdWwoUXQsX24pfDAsRGU9RGUrTWF0aC5p''@;'; + put 'put ''bXVsKFF0LEd0KXwwO3ZhciBEaT0oRisoeWU9eWUrTWF0aC5pbXVsKEdlLFZuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoR2UsZW4pfDApK01hdGguaW11bChVZSxWbil8MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5pbXVsKFVlLGVuKXwwKSsoQ2U+Pj4xMyl8MCkrKERp''@;'; + put 'put ''Pj4+MjYpfDAsRGkmPTY3MTA4ODYzLHllPU1hdGguaW11bChObixtbiksQ2U9KENlPU1hdGguaW11bChObix1bikpK01hdGguaW11bChibixtbil8MCxEZT1NYXRoLmltdWwoYm4sdW4pLHllPXllK01hdGguaW11bChkbixfbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGRuLEd0KXwwKStNYXRo''@;'; + put 'put ''LmltdWwoeW4sX24pfDAsRGU9RGUrTWF0aC5pbXVsKHluLEd0KXwwO3ZhciBXMD0oRisoeWU9eWUrTWF0aC5pbXVsKGp0LFZuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoanQsZW4pfDApK01hdGguaW11bChRdCxWbil8MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5pbXVs''@;'; + put 'put ''KFF0LGVuKXwwKSsoQ2U+Pj4xMyl8MCkrKFcwPj4+MjYpfDAsVzAmPTY3MTA4ODYzLHllPU1hdGguaW11bChObixfbiksQ2U9KENlPU1hdGguaW11bChObixHdCkpK01hdGguaW11bChibixfbil8MCxEZT1NYXRoLmltdWwoYm4sR3QpO3ZhciBFbz0oRisoeWU9eWUrTWF0aC5pbXVsKGRuLFZu''@;'; + put 'put ''KXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoZG4sZW4pfDApK01hdGguaW11bCh5bixWbil8MCkpPDwxMyl8MDtGPSgoRGU9RGUrTWF0aC5pbXVsKHluLGVuKXwwKSsoQ2U+Pj4xMyl8MCkrKEVvPj4+MjYpfDAsRW8mPTY3MTA4ODYzO3ZhciBxbz0oRisoeWU9TWF0aC5pbXVs''@;'; + put 'put ''KE5uLFZuKSl8MCkrKCg4MTkxJihDZT0oQ2U9TWF0aC5pbXVsKE5uLGVuKSkrTWF0aC5pbXVsKGJuLFZuKXwwKSk8PDEzKXwwO3JldHVybiBGPSgoRGU9TWF0aC5pbXVsKGJuLGVuKSkrKENlPj4+MTMpfDApKyhxbz4+PjI2KXwwLHFvJj02NzEwODg2MyxTWzBdPUluLFNbMV09Sm4sU1syXT1v''@;'; + put 'put ''cixTWzNdPWdyLFNbNF09S3IsU1s1XT1WcixTWzZdPWlpLFNbN109UnIsU1s4XT1saSxTWzldPU1pLFNbMTBdPW8wLFNbMTFdPW4wLFNbMTJdPWQwLFNbMTNdPW0wLFNbMTRdPUcwLFNbMTVdPURpLFNbMTZdPVcwLFNbMTddPUVvLFNbMThdPXFvLDAhPT1GJiYoU1sxOV09RixQLmxlbmd0aCsr''@;'; + put 'put ''KSxQfTtmdW5jdGlvbiBkZShuZSx0ZSx4KXt4Lm5lZ2F0aXZlPXRlLm5lZ2F0aXZlXm5lLm5lZ2F0aXZlLHgubGVuZ3RoPW5lLmxlbmd0aCt0ZS5sZW5ndGg7Zm9yKHZhciBQPTAsVj0wLFQ9MDtUPHgubGVuZ3RoLTE7VCsrKXt2YXIgUz1WO1Y9MDtmb3IodmFyIEY9NjcxMDg4NjMmUCx5ZT1N''@;'; + put 'put ''YXRoLm1pbihULHRlLmxlbmd0aC0xKSxDZT1NYXRoLm1heCgwLFQtbmUubGVuZ3RoKzEpO0NlPD15ZTtDZSsrKXt2YXIgJGU9KDB8bmUud29yZHNbVC1DZV0pKigwfHRlLndvcmRzW0NlXSksZ3Q9NjcxMDg4NjMmJGU7Rj02NzEwODg2MyYoZ3Q9Z3QrRnwwKSxWKz0oUz0oUz1TKygkZS82NzEw''@;'; + put 'put ''ODg2NHwwKXwwKSsoZ3Q+Pj4yNil8MCk+Pj4yNixTJj02NzEwODg2M314LndvcmRzW1RdPUYsUD1TLFM9Vn1yZXR1cm4gMCE9PVA/eC53b3Jkc1tUXT1QOngubGVuZ3RoLS0seC5fc3RyaXAoKX1mdW5jdGlvbiB2ZShuZSx0ZSx4KXtyZXR1cm4gZGUobmUsdGUseCl9ZnVuY3Rpb24gQWUobmUs''@;'; + put 'put ''dGUpe3RoaXMueD1uZSx0aGlzLnk9dGV9TWF0aC5pbXVsfHwoY2U9b2UpLFUucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHRlLHgpe3ZhciBWPXRoaXMubGVuZ3RoK3RlLmxlbmd0aDtyZXR1cm4gMTA9PT10aGlzLmxlbmd0aCYmMTA9PT10ZS5sZW5ndGg/Y2UodGhpcyx0ZSx4KTpWPDYzP29l''@;'; + put 'put ''KHRoaXMsdGUseCk6VjwxMDI0P2RlKHRoaXMsdGUseCk6dmUodGhpcyx0ZSx4KX0sQWUucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24odGUpe2Zvcih2YXIgeD1uZXcgQXJyYXkodGUpLFA9VS5wcm90b3R5cGUuX2NvdW50Qml0cyh0ZSktMSxWPTA7Vjx0ZTtWKyspeFtWXT10aGlzLnJldkJp''@;'; + put 'put ''bihWLFAsdGUpO3JldHVybiB4fSxBZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHRlLHgsUCl7aWYoMD09PXRlfHx0ZT09PVAtMSlyZXR1cm4gdGU7Zm9yKHZhciBWPTAsVD0wO1Q8eDtUKyspVnw9KDEmdGUpPDx4LVQtMSx0ZT4+PTE7cmV0dXJuIFZ9LEFlLnByb3RvdHlwZS5wZXJtdXRl''@;'; + put 'put ''PWZ1bmN0aW9uKHRlLHgsUCxWLFQsUyl7Zm9yKHZhciBGPTA7RjxTO0YrKylWW0ZdPXhbdGVbRl1dLFRbRl09UFt0ZVtGXV19LEFlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24odGUseCxQLFYsVCxTKXt0aGlzLnBlcm11dGUoUyx0ZSx4LFAsVixUKTtmb3IodmFyIEY9MTtGPFQ7Rjw8''@;'; + put 'put ''PTEpZm9yKHZhciB5ZT1GPDwxLENlPU1hdGguY29zKDIqTWF0aC5QSS95ZSksRGU9TWF0aC5zaW4oMipNYXRoLlBJL3llKSxQZT0wO1BlPFQ7UGUrPXllKWZvcih2YXIgUWU9Q2UsJGU9RGUsZ3Q9MDtndDxGO2d0Kyspe3ZhciB3dD1QW1BlK2d0XSx2dD1WW1BlK2d0XSxBdD1QW1BlK2d0K0Zd''@;'; + put 'put ''LG10PVZbUGUrZ3QrRl0saHQ9UWUqQXQtJGUqbXQ7bXQ9UWUqbXQrJGUqQXQsUFtQZStndF09d3QrKEF0PWh0KSxWW1BlK2d0XT12dCttdCxQW1BlK2d0K0ZdPXd0LUF0LFZbUGUrZ3QrRl09dnQtbXQsZ3QhPT15ZSYmKGh0PUNlKlFlLURlKiRlLCRlPUNlKiRlK0RlKlFlLFFlPWh0KX19LEFl''@;'; + put 'put ''LnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbih0ZSx4KXt2YXIgUD0xfE1hdGgubWF4KHgsdGUpLFY9MSZQLFQ9MDtmb3IoUD1QLzJ8MDtQO1A+Pj49MSlUKys7cmV0dXJuIDE8PFQrMStWfSxBZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKHRlLHgsUCl7aWYoIShQPD0xKSlm''@;'; + put 'put ''b3IodmFyIFY9MDtWPFAvMjtWKyspe3ZhciBUPXRlW1ZdO3RlW1ZdPXRlW1AtVi0xXSx0ZVtQLVYtMV09VCxUPXhbVl0seFtWXT0teFtQLVYtMV0seFtQLVYtMV09LVR9fSxBZS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKHRlLHgpe2Zvcih2YXIgUD0wLFY9MDtWPHgvMjtWKysp''@;'; + put 'put ''e3ZhciBUPTgxOTIqTWF0aC5yb3VuZCh0ZVsyKlYrMV0veCkrTWF0aC5yb3VuZCh0ZVsyKlZdL3gpK1A7dGVbVl09NjcxMDg4NjMmVCxQPVQ8NjcxMDg4NjQ/MDpULzY3MTA4ODY0fDB9cmV0dXJuIHRlfSxBZS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbih0ZSx4LFAsVil7Zm9yKHZh''@;'; + put 'put ''ciBUPTAsUz0wO1M8eDtTKyspUFsyKlNdPTgxOTEmKFQrPTB8dGVbU10pLFBbMipTKzFdPTgxOTEmKFQ+Pj49MTMpLFQ+Pj49MTM7Zm9yKFM9Mip4O1M8VjsrK1MpUFtTXT0wO0UoMD09PVQpLEUoMD09KC04MTkyJlQpKX0sQWUucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24odGUpe2Zvcih2YXIg''@;'; + put 'put ''eD1uZXcgQXJyYXkodGUpLFA9MDtQPHRlO1ArKyl4W1BdPTA7cmV0dXJuIHh9LEFlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHRlLHgsUCl7dmFyIFY9Mip0aGlzLmd1ZXNzTGVuMTNiKHRlLmxlbmd0aCx4Lmxlbmd0aCksVD10aGlzLm1ha2VSQlQoViksUz10aGlzLnN0dWIoViksRj1uZXcg''@;'; + put 'put ''QXJyYXkoVikseWU9bmV3IEFycmF5KFYpLENlPW5ldyBBcnJheShWKSxEZT1uZXcgQXJyYXkoViksUGU9bmV3IEFycmF5KFYpLFFlPW5ldyBBcnJheShWKSwkZT1QLndvcmRzOyRlLmxlbmd0aD1WLHRoaXMuY29udmVydDEzYih0ZS53b3Jkcyx0ZS5sZW5ndGgsRixWKSx0aGlzLmNvbnZlcnQx''@;'; + put 'put ''M2IoeC53b3Jkcyx4Lmxlbmd0aCxEZSxWKSx0aGlzLnRyYW5zZm9ybShGLFMseWUsQ2UsVixUKSx0aGlzLnRyYW5zZm9ybShEZSxTLFBlLFFlLFYsVCk7Zm9yKHZhciBndD0wO2d0PFY7Z3QrKyl7dmFyIHd0PXllW2d0XSpQZVtndF0tQ2VbZ3RdKlFlW2d0XTtDZVtndF09eWVbZ3RdKlFlW2d0''@;'; + put 'put ''XStDZVtndF0qUGVbZ3RdLHllW2d0XT13dH1yZXR1cm4gdGhpcy5jb25qdWdhdGUoeWUsQ2UsViksdGhpcy50cmFuc2Zvcm0oeWUsQ2UsJGUsUyxWLFQpLHRoaXMuY29uanVnYXRlKCRlLFMsViksdGhpcy5ub3JtYWxpemUxM2IoJGUsViksUC5uZWdhdGl2ZT10ZS5uZWdhdGl2ZV54Lm5lZ2F0''@;'; + put 'put ''aXZlLFAubGVuZ3RoPXRlLmxlbmd0aCt4Lmxlbmd0aCxQLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odGUpe3ZhciB4PW5ldyBVKG51bGwpO3JldHVybiB4LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCt0ZS5sZW5ndGgpLHRoaXMubXVsVG8odGUseCl9LFUucHJvdG90''@;'; + put 'put ''eXBlLm11bGY9ZnVuY3Rpb24odGUpe3ZhciB4PW5ldyBVKG51bGwpO3JldHVybiB4LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCt0ZS5sZW5ndGgpLHZlKHRoaXMsdGUseCl9LFUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8odGUsdGhp''@;'; + put 'put ''cyl9LFUucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKHRlKXt2YXIgeD10ZTwwO3gmJih0ZT0tdGUpLEUoIm51bWJlciI9PXR5cGVvZiB0ZSksRSh0ZTw2NzEwODg2NCk7Zm9yKHZhciBQPTAsVj0wO1Y8dGhpcy5sZW5ndGg7VisrKXt2YXIgVD0oMHx0aGlzLndvcmRzW1ZdKSp0ZSxTPSg2NzEw''@;'; + put 'put ''ODg2MyZUKSsoNjcxMDg4NjMmUCk7UD4+PTI2LFArPVQvNjcxMDg4NjR8MCxQKz1TPj4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZTfXJldHVybiAwIT09UCYmKHRoaXMud29yZHNbVl09UCx0aGlzLmxlbmd0aCsrKSx4P3RoaXMuaW5lZygpOnRoaXN9LFUucHJvdG90eXBlLm11bG49ZnVu''@;'; + put 'put ''Y3Rpb24odGUpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4odGUpfSxVLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LFUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LFUucHJvdG90eXBlLnBv''@;'; + put 'put ''dz1mdW5jdGlvbih0ZSl7dmFyIHg9ZnVuY3Rpb24gc2UobmUpe2Zvcih2YXIgdGU9bmV3IEFycmF5KG5lLmJpdExlbmd0aCgpKSx4PTA7eDx0ZS5sZW5ndGg7eCsrKXRlW3hdPW5lLndvcmRzW3gvMjZ8MF0+Pj54JTI2JjE7cmV0dXJuIHRlfSh0ZSk7aWYoMD09PXgubGVuZ3RoKXJldHVybiBu''@;'; + put 'put ''ZXcgVSgxKTtmb3IodmFyIFA9dGhpcyxWPTA7Vjx4Lmxlbmd0aCYmMD09PXhbVl07VisrLFA9UC5zcXIoKSk7aWYoKytWPHgubGVuZ3RoKWZvcih2YXIgVD1QLnNxcigpO1Y8eC5sZW5ndGg7VisrLFQ9VC5zcXIoKSkwIT09eFtWXSYmKFA9UC5tdWwoVCkpO3JldHVybiBQfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5pdXNobG49ZnVuY3Rpb24odGUpe0UoIm51bWJlciI9PXR5cGVvZiB0ZSYmdGU+PTApO3ZhciBULHg9dGUlMjYsUD0odGUteCkvMjYsVj02NzEwODg2Mz4+PjI2LXg8PDI2LXg7aWYoMCE9PXgpe3ZhciBTPTA7Zm9yKFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl7dmFyIEY9dGhpcy53b3Jkc1tU''@;'; + put 'put ''XSZWO3RoaXMud29yZHNbVF09KDB8dGhpcy53b3Jkc1tUXSktRjw8eHxTLFM9Rj4+PjI2LXh9UyYmKHRoaXMud29yZHNbVF09Uyx0aGlzLmxlbmd0aCsrKX1pZigwIT09UCl7Zm9yKFQ9dGhpcy5sZW5ndGgtMTtUPj0wO1QtLSl0aGlzLndvcmRzW1QrUF09dGhpcy53b3Jkc1tUXTtmb3IoVD0w''@;'; + put 'put ''O1Q8UDtUKyspdGhpcy53b3Jkc1tUXT0wO3RoaXMubGVuZ3RoKz1QfXJldHVybiB0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbih0ZSl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKHRlKX0sVS5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9u''@;'; + put 'put ''KHRlLHgsUCl7dmFyIFY7RSgibnVtYmVyIj09dHlwZW9mIHRlJiZ0ZT49MCksVj14Pyh4LXglMjYpLzI2OjA7dmFyIFQ9dGUlMjYsUz1NYXRoLm1pbigodGUtVCkvMjYsdGhpcy5sZW5ndGgpLEY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5UPDxULHllPVA7aWYoVi09UyxWPU1hdGgubWF4KDAsViks''@;'; + put 'put ''eWUpe2Zvcih2YXIgQ2U9MDtDZTxTO0NlKyspeWUud29yZHNbQ2VdPXRoaXMud29yZHNbQ2VdO3llLmxlbmd0aD1TfWlmKDAhPT1TKWlmKHRoaXMubGVuZ3RoPlMpZm9yKHRoaXMubGVuZ3RoLT1TLENlPTA7Q2U8dGhpcy5sZW5ndGg7Q2UrKyl0aGlzLndvcmRzW0NlXT10aGlzLndvcmRzW0Nl''@;'; + put 'put ''K1NdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIERlPTA7Zm9yKENlPXRoaXMubGVuZ3RoLTE7Q2U+PTAmJigwIT09RGV8fENlPj1WKTtDZS0tKXt2YXIgUGU9MHx0aGlzLndvcmRzW0NlXTt0aGlzLndvcmRzW0NlXT1EZTw8MjYtVHxQZT4+PlQsRGU9UGUmRn1yZXR1''@;'; + put 'put ''cm4geWUmJjAhPT1EZSYmKHllLndvcmRzW3llLmxlbmd0aCsrXT1EZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuX3N0cmlwKCl9LFUucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKHRlLHgsUCl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRp''@;'; + put 'put ''dmUpLHRoaXMuaXVzaHJuKHRlLHgsUCl9LFUucHJvdG90eXBlLnNobG49ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4odGUpfSxVLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4odGUpfSxVLnByb3RvdHlwZS5zaHJu''@;'; + put 'put ''PWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKHRlKX0sVS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKHRlKX0sVS5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24odGUpe0UoIm51bWJlciI9PXR5cGVvZiB0ZSYmdGU+''@;'; + put 'put ''PTApO3ZhciB4PXRlJTI2LFA9KHRlLXgpLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PVB8fCEodGhpcy53b3Jkc1tQXSYxPDx4KSl9LFUucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih0ZSl7RSgibnVtYmVyIj09dHlwZW9mIHRlJiZ0ZT49MCk7dmFyIHg9dGUlMjYsUD0odGUteCkvMjY7cmV0''@;'; + put 'put ''dXJuIEUoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1QP3RoaXM6KDAhPT14JiZQKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oUCx0aGlzLmxlbmd0aCksMCE9PXgmJih0aGlzLndvcmRzW3RoaXMubGVuZ3Ro''@;'; + put 'put ''LTFdJj02NzEwODg2M142NzEwODg2Mz4+Png8PHgpLHRoaXMuX3N0cmlwKCkpfSxVLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24odGUpfSxVLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih0ZSl7cmV0dXJuIEUoIm51bWJlciI9PXR5cGVv''@;'; + put 'put ''ZiB0ZSksRSh0ZTw2NzEwODg2NCksdGU8MD90aGlzLmlzdWJuKC10ZSk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTw9dGU/KHRoaXMud29yZHNbMF09dGUtKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5l''@;'; + put 'put ''Z2F0aXZlPTAsdGhpcy5pc3Vibih0ZSksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHRlKX0sVS5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKHRlKXt0aGlzLndvcmRzWzBdKz10ZTtmb3IodmFyIHg9MDt4PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3hdPj02NzEwODg2NDt4''@;'; + put 'put ''KyspdGhpcy53b3Jkc1t4XS09NjcxMDg4NjQseD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t4KzFdPTE6dGhpcy53b3Jkc1t4KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHgrMSksdGhpc30sVS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24odGUpe2lm''@;'; + put 'put ''KEUoIm51bWJlciI9PXR5cGVvZiB0ZSksRSh0ZTw2NzEwODg2NCksdGU8MClyZXR1cm4gdGhpcy5pYWRkbigtdGUpO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbih0ZSksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09''@;'; + put 'put ''dGUsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHg9MDt4PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3hdPDA7eCsrKXRoaXMud29yZHNbeF0rPTY3MTA4ODY0LHRoaXMud29y''@;'; + put 'put ''ZHNbeCsxXS09MTtyZXR1cm4gdGhpcy5fc3RyaXAoKX0sVS5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih0ZSl9LFUucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4odGUpfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxVLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sVS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHRlLHgsUCl7dmFyIFQ7dGhpcy5fZXhwYW5kKHRl''@;'; + put 'put ''Lmxlbmd0aCtQKTt2YXIgUyxGPTA7Zm9yKFQ9MDtUPHRlLmxlbmd0aDtUKyspe1M9KDB8dGhpcy53b3Jkc1tUK1BdKStGO3ZhciB5ZT0oMHx0ZS53b3Jkc1tUXSkqeDtGPSgoUy09NjcxMDg4NjMmeWUpPj4yNiktKHllLzY3MTA4ODY0fDApLHRoaXMud29yZHNbVCtQXT02NzEwODg2MyZTfWZv''@;'; + put 'put ''cig7VDx0aGlzLmxlbmd0aC1QO1QrKylGPShTPSgwfHRoaXMud29yZHNbVCtQXSkrRik+PjI2LHRoaXMud29yZHNbVCtQXT02NzEwODg2MyZTO2lmKDA9PT1GKXJldHVybiB0aGlzLl9zdHJpcCgpO2ZvcihFKC0xPT09RiksRj0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKylGPShTPS0oMHx0aGlz''@;'; + put 'put ''LndvcmRzW1RdKStGKT4+MjYsdGhpcy53b3Jkc1tUXT02NzEwODg2MyZTO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fc3RyaXAoKX0sVS5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24odGUseCl7dmFyIFAsVj10aGlzLmNsb25lKCksVD10ZSxTPTB8VC53b3Jkc1tULmxlbmd0aC0x''@;'; + put 'put ''XTswIT0oUD0yNi10aGlzLl9jb3VudEJpdHMoUykpJiYoVD1ULnVzaGxuKFApLFYuaXVzaGxuKFApLFM9MHxULndvcmRzW1QubGVuZ3RoLTFdKTt2YXIgQ2UseWU9Vi5sZW5ndGgtVC5sZW5ndGg7aWYoIm1vZCIhPT14KXsoQ2U9bmV3IFUobnVsbCkpLmxlbmd0aD15ZSsxLENlLndvcmRzPW5l''@;'; + put 'put ''dyBBcnJheShDZS5sZW5ndGgpO2Zvcih2YXIgRGU9MDtEZTxDZS5sZW5ndGg7RGUrKylDZS53b3Jkc1tEZV09MH12YXIgUGU9Vi5jbG9uZSgpLl9pc2hsbnN1Ym11bChULDEseWUpOzA9PT1QZS5uZWdhdGl2ZSYmKFY9UGUsQ2UmJihDZS53b3Jkc1t5ZV09MSkpO2Zvcih2YXIgUWU9eWUtMTtR''@;'; + put 'put ''ZT49MDtRZS0tKXt2YXIgJGU9NjcxMDg4NjQqKDB8Vi53b3Jkc1tULmxlbmd0aCtRZV0pKygwfFYud29yZHNbVC5sZW5ndGgrUWUtMV0pO2ZvcigkZT1NYXRoLm1pbigkZS9TfDAsNjcxMDg4NjMpLFYuX2lzaGxuc3VibXVsKFQsJGUsUWUpOzAhPT1WLm5lZ2F0aXZlOykkZS0tLFYubmVnYXRp''@;'; + put 'put ''dmU9MCxWLl9pc2hsbnN1Ym11bChULDEsUWUpLFYuaXNaZXJvKCl8fChWLm5lZ2F0aXZlXj0xKTtDZSYmKENlLndvcmRzW1FlXT0kZSl9cmV0dXJuIENlJiZDZS5fc3RyaXAoKSxWLl9zdHJpcCgpLCJkaXYiIT09eCYmMCE9PVAmJlYuaXVzaHJuKFApLHtkaXY6Q2V8fG51bGwsbW9kOlZ9fSxV''@;'; + put 'put ''LnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24odGUseCxQKXtyZXR1cm4gRSghdGUuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgVSgwKSxtb2Q6bmV3IFUoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dGUubmVnYXRpdmU/KFM9dGhpcy5uZWcoKS5kaXZtb2QodGUseCksIm1v''@;'; + put 'put ''ZCIhPT14JiYoVj1TLmRpdi5uZWcoKSksImRpdiIhPT14JiYoVD1TLm1vZC5uZWcoKSxQJiYwIT09VC5uZWdhdGl2ZSYmVC5pYWRkKHRlKSkse2RpdjpWLG1vZDpUfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT10ZS5uZWdhdGl2ZT8oUz10aGlzLmRpdm1vZCh0ZS5uZWcoKSx4KSwibW9kIiE9''@;'; + put 'put ''PXgmJihWPVMuZGl2Lm5lZygpKSx7ZGl2OlYsbW9kOlMubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmdGUubmVnYXRpdmUpPyhTPXRoaXMubmVnKCkuZGl2bW9kKHRlLm5lZygpLHgpLCJkaXYiIT09eCYmKFQ9Uy5tb2QubmVnKCksUCYmMCE9PVQubmVnYXRpdmUmJlQuaXN1Yih0ZSkpLHtkaXY6''@;'; + put 'put ''Uy5kaXYsbW9kOlR9KTp0ZS5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKHRlKTwwP3tkaXY6bmV3IFUoMCksbW9kOnRoaXN9OjE9PT10ZS5sZW5ndGg/ImRpdiI9PT14P3tkaXY6dGhpcy5kaXZuKHRlLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT14P3tkaXY6bnVsbCxtb2Q6bmV3''@;'; + put 'put ''IFUodGhpcy5tb2Rybih0ZS53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bih0ZS53b3Jkc1swXSksbW9kOm5ldyBVKHRoaXMubW9kcm4odGUud29yZHNbMF0pKX06dGhpcy5fd29yZERpdih0ZSx4KTt2YXIgVixULFN9LFUucHJvdG90eXBlLmRpdj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''ZGl2bW9kKHRlLCJkaXYiLCExKS5kaXZ9LFUucHJvdG90eXBlLm1vZD1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuZGl2bW9kKHRlLCJtb2QiLCExKS5tb2R9LFUucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmRpdm1vZCh0ZSwibW9kIiwhMCkubW9kfSxVLnByb3Rv''@;'; + put 'put ''dHlwZS5kaXZSb3VuZD1mdW5jdGlvbih0ZSl7dmFyIHg9dGhpcy5kaXZtb2QodGUpO2lmKHgubW9kLmlzWmVybygpKXJldHVybiB4LmRpdjt2YXIgUD0wIT09eC5kaXYubmVnYXRpdmU/eC5tb2QuaXN1Yih0ZSk6eC5tb2QsVj10ZS51c2hybigxKSxUPXRlLmFuZGxuKDEpLFM9UC5jbXAoVik7''@;'; + put 'put ''cmV0dXJuIFM8MHx8MT09PVQmJjA9PT1TP3guZGl2OjAhPT14LmRpdi5uZWdhdGl2ZT94LmRpdi5pc3VibigxKTp4LmRpdi5pYWRkbigxKX0sVS5wcm90b3R5cGUubW9kcm49ZnVuY3Rpb24odGUpe3ZhciB4PXRlPDA7eCYmKHRlPS10ZSksRSh0ZTw9NjcxMDg4NjMpO2Zvcih2YXIgUD0oMTw8''@;'; + put 'put ''MjYpJXRlLFY9MCxUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pVj0oUCpWKygwfHRoaXMud29yZHNbVF0pKSV0ZTtyZXR1cm4geD8tVjpWfSxVLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5tb2Rybih0ZSl9LFUucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKHRlKXt2''@;'; + put 'put ''YXIgeD10ZTwwO3gmJih0ZT0tdGUpLEUodGU8PTY3MTA4ODYzKTtmb3IodmFyIFA9MCxWPXRoaXMubGVuZ3RoLTE7Vj49MDtWLS0pe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKzY3MTA4ODY0KlA7dGhpcy53b3Jkc1tWXT1UL3RlfDAsUD1UJXRlfXJldHVybiB0aGlzLl9zdHJpcCgpLHg/dGhp''@;'; + put 'put ''cy5pbmVnKCk6dGhpc30sVS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bih0ZSl9LFUucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24odGUpe0UoMD09PXRlLm5lZ2F0aXZlKSxFKCF0ZS5pc1plcm8oKSk7dmFyIHg9dGhpcyxQPXRlLmNsb25lKCk7''@;'; + put 'put ''eD0wIT09eC5uZWdhdGl2ZT94LnVtb2QodGUpOnguY2xvbmUoKTtmb3IodmFyIFY9bmV3IFUoMSksVD1uZXcgVSgwKSxTPW5ldyBVKDApLEY9bmV3IFUoMSkseWU9MDt4LmlzRXZlbigpJiZQLmlzRXZlbigpOyl4Lml1c2hybigxKSxQLml1c2hybigxKSwrK3llO2Zvcih2YXIgQ2U9UC5jbG9u''@;'; + put 'put ''ZSgpLERlPXguY2xvbmUoKTsheC5pc1plcm8oKTspe2Zvcih2YXIgUGU9MCxRZT0xOzA9PSh4LndvcmRzWzBdJlFlKSYmUGU8MjY7KytQZSxRZTw8PTEpO2lmKFBlPjApZm9yKHguaXVzaHJuKFBlKTtQZS0tID4wOykoVi5pc09kZCgpfHxULmlzT2RkKCkpJiYoVi5pYWRkKENlKSxULmlzdWIo''@;'; + put 'put ''RGUpKSxWLml1c2hybigxKSxULml1c2hybigxKTtmb3IodmFyICRlPTAsZ3Q9MTswPT0oUC53b3Jkc1swXSZndCkmJiRlPDI2OysrJGUsZ3Q8PD0xKTtpZigkZT4wKWZvcihQLml1c2hybigkZSk7JGUtLSA+MDspKFMuaXNPZGQoKXx8Ri5pc09kZCgpKSYmKFMuaWFkZChDZSksRi5pc3ViKERl''@;'; + put 'put ''KSksUy5pdXNocm4oMSksRi5pdXNocm4oMSk7eC5jbXAoUCk+PTA/KHguaXN1YihQKSxWLmlzdWIoUyksVC5pc3ViKEYpKTooUC5pc3ViKHgpLFMuaXN1YihWKSxGLmlzdWIoVCkpfXJldHVybnthOlMsYjpGLGdjZDpQLml1c2hsbih5ZSl9fSxVLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24o''@;'; + put 'put ''dGUpe0UoMD09PXRlLm5lZ2F0aXZlKSxFKCF0ZS5pc1plcm8oKSk7dmFyIFBlLHg9dGhpcyxQPXRlLmNsb25lKCk7eD0wIT09eC5uZWdhdGl2ZT94LnVtb2QodGUpOnguY2xvbmUoKTtmb3IodmFyIFY9bmV3IFUoMSksVD1uZXcgVSgwKSxTPVAuY2xvbmUoKTt4LmNtcG4oMSk+MCYmUC5jbXBu''@;'; + put 'put ''KDEpPjA7KXtmb3IodmFyIEY9MCx5ZT0xOzA9PSh4LndvcmRzWzBdJnllKSYmRjwyNjsrK0YseWU8PD0xKTtpZihGPjApZm9yKHguaXVzaHJuKEYpO0YtLSA+MDspVi5pc09kZCgpJiZWLmlhZGQoUyksVi5pdXNocm4oMSk7Zm9yKHZhciBDZT0wLERlPTE7MD09KFAud29yZHNbMF0mRGUpJiZD''@;'; + put 'put ''ZTwyNjsrK0NlLERlPDw9MSk7aWYoQ2U+MClmb3IoUC5pdXNocm4oQ2UpO0NlLS0gPjA7KVQuaXNPZGQoKSYmVC5pYWRkKFMpLFQuaXVzaHJuKDEpO3guY21wKFApPj0wPyh4LmlzdWIoUCksVi5pc3ViKFQpKTooUC5pc3ViKHgpLFQuaXN1YihWKSl9cmV0dXJuKFBlPTA9PT14LmNtcG4oMSk/''@;'; + put 'put ''VjpUKS5jbXBuKDApPDAmJlBlLmlhZGQodGUpLFBlfSxVLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24odGUpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIHRlLmFicygpO2lmKHRlLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciB4PXRoaXMuY2xvbmUoKSxQPXRlLmNsb25lKCk7eC5uZWdh''@;'; + put 'put ''dGl2ZT0wLFAubmVnYXRpdmU9MDtmb3IodmFyIFY9MDt4LmlzRXZlbigpJiZQLmlzRXZlbigpO1YrKyl4Lml1c2hybigxKSxQLml1c2hybigxKTtmb3IoOzspe2Zvcig7eC5pc0V2ZW4oKTspeC5pdXNocm4oMSk7Zm9yKDtQLmlzRXZlbigpOylQLml1c2hybigxKTt2YXIgVD14LmNtcChQKTtp''@;'; + put 'put ''ZihUPDApe3ZhciBTPXg7eD1QLFA9U31lbHNlIGlmKDA9PT1UfHwwPT09UC5jbXBuKDEpKWJyZWFrO3guaXN1YihQKX1yZXR1cm4gUC5pdXNobG4oVil9LFUucHJvdG90eXBlLmludm09ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmVnY2QodGUpLmEudW1vZCh0ZSl9LFUucHJvdG90eXBlLmlz''@;'; + put 'put ''RXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sVS5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy53b3Jkc1swXSl9LFUucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZ0ZX0sVS5wcm90''@;'; + put 'put ''b3R5cGUuYmluY249ZnVuY3Rpb24odGUpe0UoIm51bWJlciI9PXR5cGVvZiB0ZSk7dmFyIHg9dGUlMjYsUD0odGUteCkvMjYsVj0xPDx4O2lmKHRoaXMubGVuZ3RoPD1QKXJldHVybiB0aGlzLl9leHBhbmQoUCsxKSx0aGlzLndvcmRzW1BdfD1WLHRoaXM7Zm9yKHZhciBUPVYsUz1QOzAhPT1U''@;'; + put 'put ''JiZTPHRoaXMubGVuZ3RoO1MrKyl7dmFyIEY9MHx0aGlzLndvcmRzW1NdO1Q9KEYrPVQpPj4+MjYsdGhpcy53b3Jkc1tTXT1GJj02NzEwODg2M31yZXR1cm4gMCE9PVQmJih0aGlzLndvcmRzW1NdPVQsdGhpcy5sZW5ndGgrKyksdGhpc30sVS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LFUucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24odGUpe3ZhciBQLHg9dGU8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXgpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJngpcmV0dXJuIDE7aWYodGhpcy5fc3Ry''@;'; + put 'put ''aXAoKSx0aGlzLmxlbmd0aD4xKVA9MTtlbHNle3gmJih0ZT0tdGUpLEUodGU8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBWPTB8dGhpcy53b3Jkc1swXTtQPVY9PT10ZT8wOlY8dGU/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtUDpQfSxVLnByb3RvdHlwZS5j''@;'; + put 'put ''bXA9ZnVuY3Rpb24odGUpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dGUubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT10ZS5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgeD10aGlzLnVjbXAodGUpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC14Onh9LFUu''@;'; + put 'put ''cHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24odGUpe2lmKHRoaXMubGVuZ3RoPnRlLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDx0ZS5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB4PTAsUD10aGlzLmxlbmd0aC0xO1A+PTA7UC0tKXt2YXIgVj0wfHRoaXMud29yZHNbUF0sVD0wfHRlLndv''@;'; + put 'put ''cmRzW1BdO2lmKFYhPT1UKXtWPFQ/eD0tMTpWPlQmJih4PTEpO2JyZWFrfX1yZXR1cm4geH0sVS5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKHRlKXtyZXR1cm4gMT09PXRoaXMuY21wbih0ZSl9LFUucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHRlKXtyZXR1cm4gMT09PXRoaXMuY21wKHRlKX0sVS5w''@;'; + put 'put ''cm90b3R5cGUuZ3Rlbj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuY21wbih0ZSk+PTB9LFUucHJvdG90eXBlLmd0ZT1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuY21wKHRlKT49MH0sVS5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHRlKXtyZXR1cm4tMT09PXRoaXMuY21wbih0ZSl9LFUucHJv''@;'; + put 'put ''dG90eXBlLmx0PWZ1bmN0aW9uKHRlKXtyZXR1cm4tMT09PXRoaXMuY21wKHRlKX0sVS5wcm90b3R5cGUubHRlbj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuY21wbih0ZSk8PTB9LFUucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuY21wKHRlKTw9MH0sVS5wcm90b3R5''@;'; + put 'put ''cGUuZXFuPWZ1bmN0aW9uKHRlKXtyZXR1cm4gMD09PXRoaXMuY21wbih0ZSl9LFUucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHRlKXtyZXR1cm4gMD09PXRoaXMuY21wKHRlKX0sVS5yZWQ9ZnVuY3Rpb24odGUpe3JldHVybiBuZXcgTyh0ZSl9LFUucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKHRl''@;'; + put 'put ''KXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxFKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHRlLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQodGUpfSxVLnByb3RvdHlwZS5mcm9t''@;'; + put 'put ''UmVkPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sVS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5y''@;'; + put 'put ''ZWQ9dGUsdGhpc30sVS5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24odGUpe3JldHVybiBFKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKHRlKX0sVS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHRlKXtyZXR1cm4g''@;'; + put 'put ''RSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLHRlKX0sVS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbih0ZSl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhp''@;'; + put 'put ''cy5yZWQuaWFkZCh0aGlzLHRlKX0sVS5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKHRlKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLHRlKX0sVS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih0ZSl7''@;'; + put 'put ''cmV0dXJuIEUodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLHRlKX0sVS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKHRlKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVy''@;'; + put 'put ''cyIpLHRoaXMucmVkLnNobCh0aGlzLHRlKX0sVS5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKHRlKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsdGUpLHRoaXMucmVkLm11bCh0aGlzLHRlKX0s''@;'; + put 'put ''VS5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbih0ZSl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHRlKSx0aGlzLnJlZC5pbXVsKHRoaXMsdGUpfSxVLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRJU3FyIHdv''@;'; + put 'put ''cmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LFUucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlz''@;'; + put 'put ''LnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52''@;'; + put 'put ''bSh0aGlzKX0sVS5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LFUucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlv''@;'; + put 'put ''bih0ZSl7cmV0dXJuIEUodGhpcy5yZWQmJiF0ZS5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsdGUpfTt2YXIga2U9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBTZShu''@;'; + put 'put ''ZSx0ZSl7dGhpcy5uYW1lPW5lLHRoaXMucD1uZXcgVSh0ZSwxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IFUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIEllKCl7U2UuY2FsbCh0aGlzLCJrMjU2Iiwi''@;'; + put 'put ''ZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBUZSgpe1NlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAw''@;'; + put 'put ''MDAwMDAxIil9ZnVuY3Rpb24gRWUoKXtTZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIGhlKCl7U2UuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZm''@;'; + put 'put ''ZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBPKG5lKXtpZigic3RyaW5nIj09dHlwZW9mIG5lKXt2YXIgdGU9VS5fcHJpbWUobmUpO3RoaXMubT10ZS5wLHRoaXMucHJpbWU9dGV9ZWxzZSBFKG5lLmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0''@;'; + put 'put ''ZXIgdGhhbiAxIiksdGhpcy5tPW5lLHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiB6KG5lKXtPLmNhbGwodGhpcyxuZSksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgVSgxKS5p''@;'; + put 'put ''dXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMu''@;'; + put 'put ''ciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1TZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciB0ZT1uZXcgVShudWxsKTtyZXR1cm4gdGUud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx0ZX0sU2UucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24o''@;'; + put 'put ''dGUpe3ZhciBQLHg9dGU7ZG97dGhpcy5zcGxpdCh4LHRoaXMudG1wKSxQPSh4PSh4PXRoaXMuaW11bEsoeCkpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShQPnRoaXMubik7dmFyIFY9UDx0aGlzLm4/LTE6eC51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1WPyh4LndvcmRzWzBd''@;'; + put 'put ''PTAseC5sZW5ndGg9MSk6Vj4wP3guaXN1Yih0aGlzLnApOnZvaWQgMCE9PXguc3RyaXA/eC5zdHJpcCgpOnguX3N0cmlwKCkseH0sU2UucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHRlLHgpe3RlLml1c2hybih0aGlzLm4sMCx4KX0sU2UucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHRlKXty''@;'; + put 'put ''ZXR1cm4gdGUuaW11bCh0aGlzLmspfSxNZShJZSxTZSksSWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHRlLHgpe2Zvcih2YXIgUD00MTk0MzAzLFY9TWF0aC5taW4odGUubGVuZ3RoLDkpLFQ9MDtUPFY7VCsrKXgud29yZHNbVF09dGUud29yZHNbVF07aWYoeC5sZW5ndGg9Vix0ZS5sZW5n''@;'; + put 'put ''dGg8PTkpcmV0dXJuIHRlLndvcmRzWzBdPTAsdm9pZCh0ZS5sZW5ndGg9MSk7dmFyIFM9dGUud29yZHNbOV07Zm9yKHgud29yZHNbeC5sZW5ndGgrK109UyZQLFQ9MTA7VDx0ZS5sZW5ndGg7VCsrKXt2YXIgRj0wfHRlLndvcmRzW1RdO3RlLndvcmRzW1QtMTBdPShGJlApPDw0fFM+Pj4yMixT''@;'; + put 'put ''PUZ9dGUud29yZHNbVC0xMF09Uz4+Pj0yMix0ZS5sZW5ndGgtPTA9PT1TJiZ0ZS5sZW5ndGg+MTA/MTA6OX0sSWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHRlKXt0ZS53b3Jkc1t0ZS5sZW5ndGhdPTAsdGUud29yZHNbdGUubGVuZ3RoKzFdPTAsdGUubGVuZ3RoKz0yO2Zvcih2YXIgeD0w''@;'; + put 'put ''LFA9MDtQPHRlLmxlbmd0aDtQKyspe3ZhciBWPTB8dGUud29yZHNbUF07dGUud29yZHNbUF09NjcxMDg4NjMmKHgrPTk3NypWKSx4PTY0KlYrKHgvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT10ZS53b3Jkc1t0ZS5sZW5ndGgtMV0mJih0ZS5sZW5ndGgtLSwwPT09dGUud29yZHNbdGUubGVuZ3Ro''@;'; + put 'put ''LTFdJiZ0ZS5sZW5ndGgtLSksdGV9LE1lKFRlLFNlKSxNZShFZSxTZSksTWUoaGUsU2UpLGhlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih0ZSl7Zm9yKHZhciB4PTAsUD0wO1A8dGUubGVuZ3RoO1ArKyl7dmFyIFY9MTkqKDB8dGUud29yZHNbUF0pK3gsVD02NzEwODg2MyZWO1Y+Pj49MjYs''@;'; + put 'put ''dGUud29yZHNbUF09VCx4PVZ9cmV0dXJuIDAhPT14JiYodGUud29yZHNbdGUubGVuZ3RoKytdPXgpLHRlfSxVLl9wcmltZT1mdW5jdGlvbih0ZSl7aWYoa2VbdGVdKXJldHVybiBrZVt0ZV07dmFyIHg7aWYoImsyNTYiPT09dGUpeD1uZXcgSWU7ZWxzZSBpZigicDIyNCI9PT10ZSl4PW5ldyBU''@;'; + put 'put ''ZTtlbHNlIGlmKCJwMTkyIj09PXRlKXg9bmV3IEVlO2Vsc2V7aWYoInAyNTUxOSIhPT10ZSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIit0ZSk7eD1uZXcgaGV9cmV0dXJuIGtlW3RlXT14LHh9LE8ucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKHRlKXtFKDA9PT10ZS5uZWdh''@;'; + put 'put ''dGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxFKHRlLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxPLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbih0ZSx4KXtFKDA9PSh0ZS5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkg''@;'; + put 'put ''d2l0aCBwb3NpdGl2ZXMiKSxFKHRlLnJlZCYmdGUucmVkPT09eC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sTy5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKHRlKS5fZm9yY2VSZWQodGhpcyk6''@;'; + put 'put ''KFkodGUsdGUudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKSksdGUpfSxPLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24odGUpe3JldHVybiB0ZS5pc1plcm8oKT90ZS5jbG9uZSgpOnRoaXMubS5zdWIodGUpLl9mb3JjZVJlZCh0aGlzKX0sTy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHRlLHgp''@;'; + put 'put ''e3RoaXMuX3ZlcmlmeTIodGUseCk7dmFyIFA9dGUuYWRkKHgpO3JldHVybiBQLmNtcCh0aGlzLm0pPj0wJiZQLmlzdWIodGhpcy5tKSxQLl9mb3JjZVJlZCh0aGlzKX0sTy5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih0ZSx4KXt0aGlzLl92ZXJpZnkyKHRlLHgpO3ZhciBQPXRlLmlhZGQoeCk7''@;'; + put 'put ''cmV0dXJuIFAuY21wKHRoaXMubSk+PTAmJlAuaXN1Yih0aGlzLm0pLFB9LE8ucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih0ZSx4KXt0aGlzLl92ZXJpZnkyKHRlLHgpO3ZhciBQPXRlLnN1Yih4KTtyZXR1cm4gUC5jbXBuKDApPDAmJlAuaWFkZCh0aGlzLm0pLFAuX2ZvcmNlUmVkKHRoaXMpfSxP''@;'; + put 'put ''LnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHRlLHgpe3RoaXMuX3ZlcmlmeTIodGUseCk7dmFyIFA9dGUuaXN1Yih4KTtyZXR1cm4gUC5jbXBuKDApPDAmJlAuaWFkZCh0aGlzLm0pLFB9LE8ucHJvdG90eXBlLnNobD1mdW5jdGlvbih0ZSx4KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh0ZSksdGhp''@;'; + put 'put ''cy5pbW9kKHRlLnVzaGxuKHgpKX0sTy5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0ZSx4KXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih0ZSx4KSx0aGlzLmltb2QodGUuaW11bCh4KSl9LE8ucHJvdG90eXBlLm11bD1mdW5jdGlvbih0ZSx4KXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih0ZSx4KSx0aGlz''@;'; + put 'put ''Lmltb2QodGUubXVsKHgpKX0sTy5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuaW11bCh0ZSx0ZS5jbG9uZSgpKX0sTy5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGhpcy5tdWwodGUsdGUpfSxPLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHRlKXtp''@;'; + put 'put ''Zih0ZS5pc1plcm8oKSlyZXR1cm4gdGUuY2xvbmUoKTt2YXIgeD10aGlzLm0uYW5kbG4oMyk7aWYoRSh4JTI9PTEpLDM9PT14KXt2YXIgUD10aGlzLm0uYWRkKG5ldyBVKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHRlLFApfWZvcih2YXIgVj10aGlzLm0uc3VibigxKSxUPTA7IVYu''@;'; + put 'put ''aXNaZXJvKCkmJjA9PT1WLmFuZGxuKDEpOylUKyssVi5pdXNocm4oMSk7RSghVi5pc1plcm8oKSk7dmFyIFM9bmV3IFUoMSkudG9SZWQodGhpcyksRj1TLnJlZE5lZygpLHllPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxDZT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKENlPW5ldyBVKDIqQ2Uq''@;'; + put 'put ''Q2UpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhDZSx5ZSkuY21wKEYpOylDZS5yZWRJQWRkKEYpO2Zvcih2YXIgRGU9dGhpcy5wb3coQ2UsViksUGU9dGhpcy5wb3codGUsVi5hZGRuKDEpLml1c2hybigxKSksUWU9dGhpcy5wb3codGUsViksJGU9VDswIT09UWUuY21wKFMpOyl7Zm9yKHZh''@;'; + put 'put ''ciBndD1RZSx3dD0wOzAhPT1ndC5jbXAoUyk7d3QrKylndD1ndC5yZWRTcXIoKTtFKHd0PCRlKTt2YXIgdnQ9dGhpcy5wb3coRGUsbmV3IFUoMSkuaXVzaGxuKCRlLXd0LTEpKTtQZT1QZS5yZWRNdWwodnQpLERlPXZ0LnJlZFNxcigpLFFlPVFlLnJlZE11bChEZSksJGU9d3R9cmV0dXJuIFBl''@;'; + put 'put ''fSxPLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHRlKXt2YXIgeD10ZS5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PXgubmVnYXRpdmU/KHgubmVnYXRpdmU9MCx0aGlzLmltb2QoeCkucmVkTmVnKCkpOnRoaXMuaW1vZCh4KX0sTy5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHRlLHgpe2lmKHgu''@;'; + put 'put ''aXNaZXJvKCkpcmV0dXJuIG5ldyBVKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT14LmNtcG4oMSkpcmV0dXJuIHRlLmNsb25lKCk7dmFyIFY9bmV3IEFycmF5KDE2KTtWWzBdPW5ldyBVKDEpLnRvUmVkKHRoaXMpLFZbMV09dGU7Zm9yKHZhciBUPTI7VDxWLmxlbmd0aDtUKyspVltUXT10aGlzLm11''@;'; + put 'put ''bChWW1QtMV0sdGUpO3ZhciBTPVZbMF0sRj0wLHllPTAsQ2U9eC5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PUNlJiYoQ2U9MjYpLFQ9eC5sZW5ndGgtMTtUPj0wO1QtLSl7Zm9yKHZhciBEZT14LndvcmRzW1RdLFBlPUNlLTE7UGU+PTA7UGUtLSl7dmFyIFFlPURlPj5QZSYxO1MhPT1WWzBdJiYo''@;'; + put 'put ''Uz10aGlzLnNxcihTKSksMCE9PVFlfHwwIT09Rj8oRjw8PTEsRnw9UWUsKDQ9PSsreWV8fDA9PT1UJiYwPT09UGUpJiYoUz10aGlzLm11bChTLFZbRl0pLHllPTAsRj0wKSk6eWU9MH1DZT0yNn1yZXR1cm4gU30sTy5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHRlKXt2YXIgeD10ZS51''@;'; + put 'put ''bW9kKHRoaXMubSk7cmV0dXJuIHg9PT10ZT94LmNsb25lKCk6eH0sTy5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24odGUpe3ZhciB4PXRlLmNsb25lKCk7cmV0dXJuIHgucmVkPW51bGwseH0sVS5tb250PWZ1bmN0aW9uKHRlKXtyZXR1cm4gbmV3IHoodGUpfSxNZSh6LE8pLHoucHJv''@;'; + put 'put ''dG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuaW1vZCh0ZS51c2hsbih0aGlzLnNoaWZ0KSl9LHoucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHRlKXt2YXIgeD10aGlzLmltb2QodGUubXVsKHRoaXMucmludikpO3JldHVybiB4LnJlZD1udWxsLHh9LHou''@;'; + put 'put ''cHJvdG90eXBlLmltdWw9ZnVuY3Rpb24odGUseCl7aWYodGUuaXNaZXJvKCl8fHguaXNaZXJvKCkpcmV0dXJuIHRlLndvcmRzWzBdPTAsdGUubGVuZ3RoPTEsdGU7dmFyIFA9dGUuaW11bCh4KSxWPVAubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQp''@;'; + put 'put ''Lm11bCh0aGlzLm0pLFQ9UC5pc3ViKFYpLml1c2hybih0aGlzLnNoaWZ0KSxTPVQ7cmV0dXJuIFQuY21wKHRoaXMubSk+PTA/Uz1ULmlzdWIodGhpcy5tKTpULmNtcG4oMCk8MCYmKFM9VC5pYWRkKHRoaXMubSkpLFMuX2ZvcmNlUmVkKHRoaXMpfSx6LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24o''@;'; + put 'put ''dGUseCl7aWYodGUuaXNaZXJvKCl8fHguaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgUD10ZS5tdWwoeCksVj1QLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxUPVAuaXN1YihWKS5pdXNo''@;'; + put 'put ''cm4odGhpcy5zaGlmdCksUz1UO3JldHVybiBULmNtcCh0aGlzLm0pPj0wP1M9VC5pc3ViKHRoaXMubSk6VC5jbXBuKDApPDAmJihTPVQuaWFkZCh0aGlzLm0pKSxTLl9mb3JjZVJlZCh0aGlzKX0sei5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih0ZSl7cmV0dXJuIHRoaXMuaW1vZCh0ZS5faW52''@;'; + put 'put ''bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KFhlPUwubm1kKFhlKSx0aGlzKX0sMzc5NTA6KFhlLEplLEwpPT57dmFyIG1lO2Z1bmN0aW9uIEIoTWUpe3RoaXMucmFuZD1NZX1pZihYZS5leHBvcnRzPWZ1bmN0aW9uKFUpe3JldHVybiBtZXx8KG1lPW5ldyBCKG51''@;'; + put 'put ''bGwpKSxtZS5nZW5lcmF0ZShVKX0sWGUuZXhwb3J0cy5SYW5kPUIsQi5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24oVSl7cmV0dXJuIHRoaXMuX3JhbmQoVSl9LEIucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKFUpe2lmKHRoaXMucmFuZC5nZXRCeXRlcylyZXR1cm4gdGhpcy5yYW5kLmdl''@;'; + put 'put ''dEJ5dGVzKFUpO2Zvcih2YXIgUT1uZXcgVWludDhBcnJheShVKSxaPTA7WjxRLmxlbmd0aDtaKyspUVtaXT10aGlzLnJhbmQuZ2V0Qnl0ZSgpO3JldHVybiBRfSwib2JqZWN0Ij09dHlwZW9mIHNlbGYpc2VsZi5jcnlwdG8mJnNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcz9CLnByb3RvdHlw''@;'; + put 'put ''ZS5fcmFuZD1mdW5jdGlvbihVKXt2YXIgUT1uZXcgVWludDhBcnJheShVKTtyZXR1cm4gc2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKFEpLFF9OnNlbGYubXNDcnlwdG8mJnNlbGYubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzP0IucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKFUpe3ZhciBR''@;'; + put 'put ''PW5ldyBVaW50OEFycmF5KFUpO3JldHVybiBzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyhRKSxRfToib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmKEIucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQgeWV0Iil9KTtlbHNlIHRy''@;'; + put 'put ''eXt2YXIgRT1MKDQxMzQ4KTtpZigiZnVuY3Rpb24iIT10eXBlb2YgRS5yYW5kb21CeXRlcyl0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQiKTtCLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbihVKXtyZXR1cm4gRS5yYW5kb21CeXRlcyhVKX19Y2F0Y2goTWUpe319LDQxODk5OihYZSxK''@;'; + put 'put ''ZSxMKT0+e3ZhciBtZT1MKDczNTAyKS5CdWZmZXI7ZnVuY3Rpb24gQihpZSl7bWUuaXNCdWZmZXIoaWUpfHwoaWU9bWUuZnJvbShpZSkpO2Zvcih2YXIgbGU9aWUubGVuZ3RoLzR8MCxZPW5ldyBBcnJheShsZSksVz0wO1c8bGU7VysrKVlbV109aWUucmVhZFVJbnQzMkJFKDQqVyk7cmV0dXJu''@;'; + put 'put ''IFl9ZnVuY3Rpb24gRShpZSl7Zm9yKDswPGllLmxlbmd0aDtpZSsrKWllWzBdPTB9ZnVuY3Rpb24gTWUoaWUsbGUsWSxXLE4pe2Zvcih2YXIgQWUsa2UsU2UsSWUsZWU9WVswXSxxPVlbMV0sSj1ZWzJdLHNlPVlbM10sb2U9aWVbMF1ebGVbMF0sY2U9aWVbMV1ebGVbMV0sZGU9aWVbMl1ebGVb''@;'; + put 'put ''Ml0sdmU9aWVbM11ebGVbM10sVGU9NCxFZT0xO0VlPE47RWUrKylBZT1lZVtvZT4+PjI0XV5xW2NlPj4+MTYmMjU1XV5KW2RlPj4+OCYyNTVdXnNlWzI1NSZ2ZV1ebGVbVGUrK10sa2U9ZWVbY2U+Pj4yNF1ecVtkZT4+PjE2JjI1NV1eSlt2ZT4+PjgmMjU1XV5zZVsyNTUmb2VdXmxlW1RlKytd''@;'; + put 'put ''LFNlPWVlW2RlPj4+MjRdXnFbdmU+Pj4xNiYyNTVdXkpbb2U+Pj44JjI1NV1ec2VbMjU1JmNlXV5sZVtUZSsrXSxJZT1lZVt2ZT4+PjI0XV5xW29lPj4+MTYmMjU1XV5KW2NlPj4+OCYyNTVdXnNlWzI1NSZkZV1ebGVbVGUrK10sb2U9QWUsY2U9a2UsZGU9U2UsdmU9SWU7cmV0dXJuIEFlPShX''@;'; + put 'put ''W29lPj4+MjRdPDwyNHxXW2NlPj4+MTYmMjU1XTw8MTZ8V1tkZT4+PjgmMjU1XTw8OHxXWzI1NSZ2ZV0pXmxlW1RlKytdLGtlPShXW2NlPj4+MjRdPDwyNHxXW2RlPj4+MTYmMjU1XTw8MTZ8V1t2ZT4+PjgmMjU1XTw8OHxXWzI1NSZvZV0pXmxlW1RlKytdLFNlPShXW2RlPj4+MjRdPDwyNHxX''@;'; + put 'put ''W3ZlPj4+MTYmMjU1XTw8MTZ8V1tvZT4+PjgmMjU1XTw8OHxXWzI1NSZjZV0pXmxlW1RlKytdLEllPShXW3ZlPj4+MjRdPDwyNHxXW29lPj4+MTYmMjU1XTw8MTZ8V1tjZT4+PjgmMjU1XTw8OHxXWzI1NSZkZV0pXmxlW1RlKytdLFtBZT4+Pj0wLGtlPj4+PTAsU2U+Pj49MCxJZT4+Pj0wXX12''@;'; + put 'put ''YXIgVT1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sUT1mdW5jdGlvbigpe2Zvcih2YXIgaWU9bmV3IEFycmF5KDI1NiksbGU9MDtsZTwyNTY7bGUrKylpZVtsZV09bGU8MTI4P2xlPDwxOmxlPDwxXjI4Mztmb3IodmFyIFk9W10sVz1bXSxOPVtbXSxbXSxbXSxbXV0sZWU9W1tdLFtd''@;'; + put 'put ''LFtdLFtdXSxxPTAsSj0wLHNlPTA7c2U8MjU2Oysrc2Upe3ZhciBvZT1KXko8PDFeSjw8Ml5KPDwzXko8PDQ7WVtxXT1vZT1vZT4+PjheMjU1Jm9lXjk5LFdbb2VdPXE7dmFyIGNlPWllW3FdLGRlPWllW2NlXSx2ZT1pZVtkZV0sQWU9MjU3KmllW29lXV4xNjg0MzAwOCpvZTtOWzBdW3FdPUFl''@;'; + put 'put ''PDwyNHxBZT4+PjgsTlsxXVtxXT1BZTw8MTZ8QWU+Pj4xNixOWzJdW3FdPUFlPDw4fEFlPj4+MjQsTlszXVtxXT1BZSxlZVswXVtvZV09KEFlPTE2ODQzMDA5KnZlXjY1NTM3KmRlXjI1NypjZV4xNjg0MzAwOCpxKTw8MjR8QWU+Pj44LGVlWzFdW29lXT1BZTw8MTZ8QWU+Pj4xNixlZVsyXVtv''@;'; + put 'put ''ZV09QWU8PDh8QWU+Pj4yNCxlZVszXVtvZV09QWUsMD09PXE/cT1KPTE6KHE9Y2VeaWVbaWVbaWVbdmVeY2VdXV0sSl49aWVbaWVbSl1dKX1yZXR1cm57U0JPWDpZLElOVl9TQk9YOlcsU1VCX01JWDpOLElOVl9TVUJfTUlYOmVlfX0oKTtmdW5jdGlvbiBaKGllKXt0aGlzLl9rZXk9QihpZSks''@;'; + put 'put ''dGhpcy5fcmVzZXQoKX1aLmJsb2NrU2l6ZT0xNixaLmtleVNpemU9MzIsWi5wcm90b3R5cGUuYmxvY2tTaXplPVouYmxvY2tTaXplLFoucHJvdG90eXBlLmtleVNpemU9Wi5rZXlTaXplLFoucHJvdG90eXBlLl9yZXNldD1mdW5jdGlvbigpe2Zvcih2YXIgaWU9dGhpcy5fa2V5LGxlPWllLmxl''@;'; + put 'put ''bmd0aCxZPWxlKzYsVz00KihZKzEpLE49W10sZWU9MDtlZTxsZTtlZSsrKU5bZWVdPWllW2VlXTtmb3IoZWU9bGU7ZWU8VztlZSsrKXt2YXIgcT1OW2VlLTFdO2VlJWxlPT0wPyhxPVEuU0JPWFsocT1xPDw4fHE+Pj4yNCk+Pj4yNF08PDI0fFEuU0JPWFtxPj4+MTYmMjU1XTw8MTZ8US5TQk9Y''@;'; + put 'put ''W3E+Pj44JjI1NV08PDh8US5TQk9YWzI1NSZxXSxxXj1VW2VlL2xlfDBdPDwyNCk6bGU+NiYmZWUlbGU9PTQmJihxPVEuU0JPWFtxPj4+MjRdPDwyNHxRLlNCT1hbcT4+PjE2JjI1NV08PDE2fFEuU0JPWFtxPj4+OCYyNTVdPDw4fFEuU0JPWFsyNTUmcV0pLE5bZWVdPU5bZWUtbGVdXnF9Zm9y''@;'; + put 'put ''KHZhciBKPVtdLHNlPTA7c2U8VztzZSsrKXt2YXIgb2U9Vy1zZSxjZT1OW29lLShzZSU0PzA6NCldO0pbc2VdPXNlPDR8fG9lPD00P2NlOlEuSU5WX1NVQl9NSVhbMF1bUS5TQk9YW2NlPj4+MjRdXV5RLklOVl9TVUJfTUlYWzFdW1EuU0JPWFtjZT4+PjE2JjI1NV1dXlEuSU5WX1NVQl9NSVhb''@;'; + put 'put ''Ml1bUS5TQk9YW2NlPj4+OCYyNTVdXV5RLklOVl9TVUJfTUlYWzNdW1EuU0JPWFsyNTUmY2VdXX10aGlzLl9uUm91bmRzPVksdGhpcy5fa2V5U2NoZWR1bGU9Tix0aGlzLl9pbnZLZXlTY2hlZHVsZT1KfSxaLnByb3RvdHlwZS5lbmNyeXB0QmxvY2tSYXc9ZnVuY3Rpb24oaWUpe3JldHVybiBN''@;'; + put 'put ''ZShpZT1CKGllKSx0aGlzLl9rZXlTY2hlZHVsZSxRLlNVQl9NSVgsUS5TQk9YLHRoaXMuX25Sb3VuZHMpfSxaLnByb3RvdHlwZS5lbmNyeXB0QmxvY2s9ZnVuY3Rpb24oaWUpe3ZhciBsZT10aGlzLmVuY3J5cHRCbG9ja1JhdyhpZSksWT1tZS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIFkud3Jp''@;'; + put 'put ''dGVVSW50MzJCRShsZVswXSwwKSxZLndyaXRlVUludDMyQkUobGVbMV0sNCksWS53cml0ZVVJbnQzMkJFKGxlWzJdLDgpLFkud3JpdGVVSW50MzJCRShsZVszXSwxMiksWX0sWi5wcm90b3R5cGUuZGVjcnlwdEJsb2NrPWZ1bmN0aW9uKGllKXt2YXIgbGU9KGllPUIoaWUpKVsxXTtpZVsxXT1p''@;'; + put 'put ''ZVszXSxpZVszXT1sZTt2YXIgWT1NZShpZSx0aGlzLl9pbnZLZXlTY2hlZHVsZSxRLklOVl9TVUJfTUlYLFEuSU5WX1NCT1gsdGhpcy5fblJvdW5kcyksVz1tZS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIFcud3JpdGVVSW50MzJCRShZWzBdLDApLFcud3JpdGVVSW50MzJCRShZWzNdLDQpLFcu''@;'; + put 'put ''d3JpdGVVSW50MzJCRShZWzJdLDgpLFcud3JpdGVVSW50MzJCRShZWzFdLDEyKSxXfSxaLnByb3RvdHlwZS5zY3J1Yj1mdW5jdGlvbigpe0UodGhpcy5fa2V5U2NoZWR1bGUpLEUodGhpcy5faW52S2V5U2NoZWR1bGUpLEUodGhpcy5fa2V5KX0sWGUuZXhwb3J0cy5BRVM9Wn0sNjkzODI6KFhl''@;'; + put 'put ''LEplLEwpPT57dmFyIG1lPUwoNDE4OTkpLEI9TCg3MzUwMikuQnVmZmVyLEU9TCg2MTA1MiksTWU9TCg4Mzg5NCksVT1MKDY4ODU3KSxRPUwoNTg3ODkpLFo9TCg3OTY4KTtmdW5jdGlvbiBZKFcsTixlZSxxKXtFLmNhbGwodGhpcyk7dmFyIEo9Qi5hbGxvYyg0LDApO3RoaXMuX2NpcGhlcj1u''@;'; + put 'put ''ZXcgbWUuQUVTKE4pO3ZhciBzZT10aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKEopO3RoaXMuX2doYXNoPW5ldyBVKHNlKSxlZT1mdW5jdGlvbiBsZShXLE4sZWUpe2lmKDEyPT09Ti5sZW5ndGgpcmV0dXJuIFcuX2ZpbklEPUIuY29uY2F0KFtOLEIuZnJvbShbMCwwLDAsMV0pXSksQi5jb25j''@;'; + put 'put ''YXQoW04sQi5mcm9tKFswLDAsMCwyXSldKTt2YXIgcT1uZXcgVShlZSksSj1OLmxlbmd0aCxzZT1KJTE2O3EudXBkYXRlKE4pLHNlJiZxLnVwZGF0ZShCLmFsbG9jKHNlPTE2LXNlLDApKSxxLnVwZGF0ZShCLmFsbG9jKDgsMCkpO3ZhciBvZT04KkosY2U9Qi5hbGxvYyg4KTtjZS53cml0ZVVJ''@;'; + put 'put ''bnRCRShvZSwwLDgpLHEudXBkYXRlKGNlKSxXLl9maW5JRD1xLnN0YXRlO3ZhciBkZT1CLmZyb20oVy5fZmluSUQpO3JldHVybiBaKGRlKSxkZX0odGhpcyxlZSxzZSksdGhpcy5fcHJldj1CLmZyb20oZWUpLHRoaXMuX2NhY2hlPUIuYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9Qi5h''@;'; + put 'put ''bGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PXEsdGhpcy5fYWxlbj0wLHRoaXMuX2xlbj0wLHRoaXMuX21vZGU9Vyx0aGlzLl9hdXRoVGFnPW51bGwsdGhpcy5fY2FsbGVkPSExfU1lKFksRSksWS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihXKXtpZighdGhpcy5fY2FsbGVkJiZ0aGlz''@;'; + put 'put ''Ll9hbGVuKXt2YXIgTj0xNi10aGlzLl9hbGVuJTE2O048MTYmJihOPUIuYWxsb2MoTiwwKSx0aGlzLl9naGFzaC51cGRhdGUoTikpfXRoaXMuX2NhbGxlZD0hMDt2YXIgZWU9dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsVyk7cmV0dXJuIHRoaXMuX2doYXNoLnVwZGF0ZSh0aGlzLl9kZWNyeXB0''@;'; + put 'put ''P1c6ZWUpLHRoaXMuX2xlbis9Vy5sZW5ndGgsZWV9LFkucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe2lmKHRoaXMuX2RlY3J5cHQmJiF0aGlzLl9hdXRoVGFnKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc3RhdGUgb3IgdW5hYmxlIHRvIGF1dGhlbnRpY2F0ZSBkYXRhIik7dmFy''@;'; + put 'put ''IFc9USh0aGlzLl9naGFzaC5maW5hbCg4KnRoaXMuX2FsZW4sOCp0aGlzLl9sZW4pLHRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodGhpcy5fZmluSUQpKTtpZih0aGlzLl9kZWNyeXB0JiZmdW5jdGlvbiBpZShXLE4pe3ZhciBlZT0wO1cubGVuZ3RoIT09Ti5sZW5ndGgmJmVlKys7Zm9yKHZh''@;'; + put 'put ''ciBxPU1hdGgubWluKFcubGVuZ3RoLE4ubGVuZ3RoKSxKPTA7SjxxOysrSillZSs9V1tKXV5OW0pdO3JldHVybiBlZX0oVyx0aGlzLl9hdXRoVGFnKSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YSIpO3RoaXMuX2F1dGhU''@;'; + put 'put ''YWc9Vyx0aGlzLl9jaXBoZXIuc2NydWIoKX0sWS5wcm90b3R5cGUuZ2V0QXV0aFRhZz1mdW5jdGlvbigpe2lmKHRoaXMuX2RlY3J5cHR8fCFCLmlzQnVmZmVyKHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQg''@;'; + put 'put ''c3RhdGUiKTtyZXR1cm4gdGhpcy5fYXV0aFRhZ30sWS5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbihOKXtpZighdGhpcy5fZGVjcnlwdCl0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRpbmcgdG8gc2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fYXV0aFRhZz1O''@;'; + put 'put ''fSxZLnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24oTil7aWYodGhpcy5fY2FsbGVkKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgQUFEIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fZ2hhc2gudXBkYXRlKE4pLHRoaXMuX2FsZW4rPU4ubGVuZ3RofSxYZS5leHBvcnRz''@;'; + put 'put ''PVl9LDg0MzMwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDk2OTAwKSxCPUwoMzQ0NDIpLEU9TCg0NDk0Nik7SmUuY3JlYXRlQ2lwaGVyPUplLkNpcGhlcj1tZS5jcmVhdGVDaXBoZXIsSmUuY3JlYXRlQ2lwaGVyaXY9SmUuQ2lwaGVyaXY9bWUuY3JlYXRlQ2lwaGVyaXYsSmUuY3JlYXRlRGVjaXBo''@;'; + put 'put ''ZXI9SmUuRGVjaXBoZXI9Qi5jcmVhdGVEZWNpcGhlcixKZS5jcmVhdGVEZWNpcGhlcml2PUplLkRlY2lwaGVyaXY9Qi5jcmVhdGVEZWNpcGhlcml2LEplLmxpc3RDaXBoZXJzPUplLmdldENpcGhlcnM9ZnVuY3Rpb24gTWUoKXtyZXR1cm4gT2JqZWN0LmtleXMoRSl9fSwzNDQ0MjooWGUsSmUs''@;'; + put 'put ''TCk9Pnt2YXIgbWU9TCg2OTM4MiksQj1MKDczNTAyKS5CdWZmZXIsRT1MKDI5MTcxKSxNZT1MKDM4NDQxKSxVPUwoNjEwNTIpLFE9TCg0MTg5OSksWj1MKDQwMzQ3KTtmdW5jdGlvbiBsZShxLEosc2Upe1UuY2FsbCh0aGlzKSx0aGlzLl9jYWNoZT1uZXcgWSx0aGlzLl9sYXN0PXZvaWQgMCx0''@;'; + put 'put ''aGlzLl9jaXBoZXI9bmV3IFEuQUVTKEopLHRoaXMuX3ByZXY9Qi5mcm9tKHNlKSx0aGlzLl9tb2RlPXEsdGhpcy5fYXV0b3BhZGRpbmc9ITB9ZnVuY3Rpb24gWSgpe3RoaXMuY2FjaGU9Qi5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBOKHEsSixzZSl7dmFyIG9lPUVbcS50b0xvd2VyQ2FzZSgp''@;'; + put 'put ''XTtpZighb2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7aWYoInN0cmluZyI9PXR5cGVvZiBzZSYmKHNlPUIuZnJvbShzZSkpLCJHQ00iIT09b2UubW9kZSYmc2UubGVuZ3RoIT09b2UuaXYpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBpdiBsZW5ndGgg''@;'; + put 'put ''IitzZS5sZW5ndGgpO2lmKCJzdHJpbmciPT10eXBlb2YgSiYmKEo9Qi5mcm9tKEopKSxKLmxlbmd0aCE9PW9lLmtleS84KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQga2V5IGxlbmd0aCAiK0oubGVuZ3RoKTtyZXR1cm4ic3RyZWFtIj09PW9lLnR5cGU/bmV3IE1lKG9lLm1vZHVsZSxK''@;'; + put 'put ''LHNlLCEwKToiYXV0aCI9PT1vZS50eXBlP25ldyBtZShvZS5tb2R1bGUsSixzZSwhMCk6bmV3IGxlKG9lLm1vZHVsZSxKLHNlKX1MKDgzODk0KShsZSxVKSxsZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihxKXt0aGlzLl9jYWNoZS5hZGQocSk7Zm9yKHZhciBKLHNlLG9lPVtdO0o9dGhp''@;'; + put 'put ''cy5fY2FjaGUuZ2V0KHRoaXMuX2F1dG9wYWRkaW5nKTspc2U9dGhpcy5fbW9kZS5kZWNyeXB0KHRoaXMsSiksb2UucHVzaChzZSk7cmV0dXJuIEIuY29uY2F0KG9lKX0sbGUucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBxPXRoaXMuX2NhY2hlLmZsdXNoKCk7aWYodGhpcy5fYXV0''@;'; + put 'put ''b3BhZGRpbmcpcmV0dXJuIGZ1bmN0aW9uIFcocSl7dmFyIEo9cVsxNV07aWYoSjwxfHxKPjE2KXRocm93IG5ldyBFcnJvcigidW5hYmxlIHRvIGRlY3J5cHQgZGF0YSIpO2Zvcih2YXIgc2U9LTE7KytzZTxKOylpZihxW3NlKygxNi1KKV0hPT1KKXRocm93IG5ldyBFcnJvcigidW5hYmxlIHRv''@;'; + put 'put ''IGRlY3J5cHQgZGF0YSIpO2lmKDE2IT09SilyZXR1cm4gcS5zbGljZSgwLDE2LUopfSh0aGlzLl9tb2RlLmRlY3J5cHQodGhpcyxxKSk7aWYocSl0aHJvdyBuZXcgRXJyb3IoImRhdGEgbm90IG11bHRpcGxlIG9mIGJsb2NrIGxlbmd0aCIpfSxsZS5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9''@;'; + put 'put ''ZnVuY3Rpb24ocSl7cmV0dXJuIHRoaXMuX2F1dG9wYWRkaW5nPSEhcSx0aGlzfSxZLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24ocSl7dGhpcy5jYWNoZT1CLmNvbmNhdChbdGhpcy5jYWNoZSxxXSl9LFkucHJvdG90eXBlLmdldD1mdW5jdGlvbihxKXt2YXIgSjtpZihxKXtpZih0aGlzLmNhY2hl''@;'; + put 'put ''Lmxlbmd0aD4xNilyZXR1cm4gSj10aGlzLmNhY2hlLnNsaWNlKDAsMTYpLHRoaXMuY2FjaGU9dGhpcy5jYWNoZS5zbGljZSgxNiksSn1lbHNlIGlmKHRoaXMuY2FjaGUubGVuZ3RoPj0xNilyZXR1cm4gSj10aGlzLmNhY2hlLnNsaWNlKDAsMTYpLHRoaXMuY2FjaGU9dGhpcy5jYWNoZS5zbGlj''@;'; + put 'put ''ZSgxNiksSjtyZXR1cm4gbnVsbH0sWS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtpZih0aGlzLmNhY2hlLmxlbmd0aClyZXR1cm4gdGhpcy5jYWNoZX0sSmUuY3JlYXRlRGVjaXBoZXI9ZnVuY3Rpb24gZWUocSxKKXt2YXIgc2U9RVtxLnRvTG93ZXJDYXNlKCldO2lmKCFzZSl0aHJvdyBu''@;'; + put 'put ''ZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTt2YXIgb2U9WihKLCExLHNlLmtleSxzZS5pdik7cmV0dXJuIE4ocSxvZS5rZXksb2UuaXYpfSxKZS5jcmVhdGVEZWNpcGhlcml2PU59LDk2OTAwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDI5MTcxKSxCPUwoNjkzODIpLEU9TCg3MzUw''@;'; + put 'put ''MikuQnVmZmVyLE1lPUwoMzg0NDEpLFU9TCg2MTA1MiksUT1MKDQxODk5KSxaPUwoNDAzNDcpO2Z1bmN0aW9uIGxlKHEsSixzZSl7VS5jYWxsKHRoaXMpLHRoaXMuX2NhY2hlPW5ldyBXLHRoaXMuX2NpcGhlcj1uZXcgUS5BRVMoSiksdGhpcy5fcHJldj1FLmZyb20oc2UpLHRoaXMuX21vZGU9''@;'; + put 'put ''cSx0aGlzLl9hdXRvcGFkZGluZz0hMH1MKDgzODk0KShsZSxVKSxsZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihxKXt0aGlzLl9jYWNoZS5hZGQocSk7Zm9yKHZhciBKLHNlLG9lPVtdO0o9dGhpcy5fY2FjaGUuZ2V0KCk7KXNlPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLEopLG9lLnB1''@;'; + put 'put ''c2goc2UpO3JldHVybiBFLmNvbmNhdChvZSl9O3ZhciBZPUUuYWxsb2MoMTYsMTYpO2Z1bmN0aW9uIFcoKXt0aGlzLmNhY2hlPUUuYWxsb2NVbnNhZmUoMCl9ZnVuY3Rpb24gTihxLEosc2Upe3ZhciBvZT1tZVtxLnRvTG93ZXJDYXNlKCldO2lmKCFvZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJp''@;'; + put 'put ''bnZhbGlkIHN1aXRlIHR5cGUiKTtpZigic3RyaW5nIj09dHlwZW9mIEomJihKPUUuZnJvbShKKSksSi5sZW5ndGghPT1vZS5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGtleSBsZW5ndGggIitKLmxlbmd0aCk7aWYoInN0cmluZyI9PXR5cGVvZiBzZSYmKHNlPUUuZnJvbShz''@;'; + put 'put ''ZSkpLCJHQ00iIT09b2UubW9kZSYmc2UubGVuZ3RoIT09b2UuaXYpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBpdiBsZW5ndGggIitzZS5sZW5ndGgpO3JldHVybiJzdHJlYW0iPT09b2UudHlwZT9uZXcgTWUob2UubW9kdWxlLEosc2UpOiJhdXRoIj09PW9lLnR5cGU/bmV3IEIob2Uu''@;'; + put 'put ''bW9kdWxlLEosc2UpOm5ldyBsZShvZS5tb2R1bGUsSixzZSl9bGUucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBxPXRoaXMuX2NhY2hlLmZsdXNoKCk7aWYodGhpcy5fYXV0b3BhZGRpbmcpcmV0dXJuIHE9dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMscSksdGhpcy5fY2lwaGVyLnNj''@;'; + put 'put ''cnViKCkscTtpZighcS5lcXVhbHMoWSkpdGhyb3cgdGhpcy5fY2lwaGVyLnNjcnViKCksbmV3IEVycm9yKCJkYXRhIG5vdCBtdWx0aXBsZSBvZiBibG9jayBsZW5ndGgiKX0sbGUucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nPWZ1bmN0aW9uKHEpe3JldHVybiB0aGlzLl9hdXRvcGFkZGluZz0h''@;'; + put 'put ''IXEsdGhpc30sVy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHEpe3RoaXMuY2FjaGU9RS5jb25jYXQoW3RoaXMuY2FjaGUscV0pfSxXLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmNhY2hlLmxlbmd0aD4xNSl7dmFyIHE9dGhpcy5jYWNoZS5zbGljZSgwLDE2KTtyZXR1cm4gdGhp''@;'; + put 'put ''cy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSxxfXJldHVybiBudWxsfSxXLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgcT0xNi10aGlzLmNhY2hlLmxlbmd0aCxKPUUuYWxsb2NVbnNhZmUocSksc2U9LTE7KytzZTxxOylKLndyaXRlVUludDgocSxzZSk7cmV0dXJuIEUu''@;'; + put 'put ''Y29uY2F0KFt0aGlzLmNhY2hlLEpdKX0sSmUuY3JlYXRlQ2lwaGVyaXY9TixKZS5jcmVhdGVDaXBoZXI9ZnVuY3Rpb24gZWUocSxKKXt2YXIgc2U9bWVbcS50b0xvd2VyQ2FzZSgpXTtpZighc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7dmFyIG9lPVooSiwh''@;'; + put 'put ''MSxzZS5rZXksc2UuaXYpO3JldHVybiBOKHEsb2Uua2V5LG9lLml2KX19LDY4ODU3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDczNTAyKS5CdWZmZXIsQj1tZS5hbGxvYygxNiwwKTtmdW5jdGlvbiBNZShRKXt2YXIgWj1tZS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIFoud3JpdGVVSW50MzJCRShR''@;'; + put 'put ''WzBdPj4+MCwwKSxaLndyaXRlVUludDMyQkUoUVsxXT4+PjAsNCksWi53cml0ZVVJbnQzMkJFKFFbMl0+Pj4wLDgpLFoud3JpdGVVSW50MzJCRShRWzNdPj4+MCwxMiksWn1mdW5jdGlvbiBVKFEpe3RoaXMuaD1RLHRoaXMuc3RhdGU9bWUuYWxsb2MoMTYsMCksdGhpcy5jYWNoZT1tZS5hbGxv''@;'; + put 'put ''Y1Vuc2FmZSgwKX1VLnByb3RvdHlwZS5naGFzaD1mdW5jdGlvbihRKXtmb3IodmFyIFo9LTE7KytaPFEubGVuZ3RoOyl0aGlzLnN0YXRlW1pdXj1RW1pdO3RoaXMuX211bHRpcGx5KCl9LFUucHJvdG90eXBlLl9tdWx0aXBseT1mdW5jdGlvbigpe2Zvcih2YXIgaWUsWSxRPWZ1bmN0aW9uIEUo''@;'; + put 'put ''USl7cmV0dXJuW1EucmVhZFVJbnQzMkJFKDApLFEucmVhZFVJbnQzMkJFKDQpLFEucmVhZFVJbnQzMkJFKDgpLFEucmVhZFVJbnQzMkJFKDEyKV19KHRoaXMuaCksWj1bMCwwLDAsMF0sVz0tMTsrK1c8MTI4Oyl7Zm9yKDAhPSh0aGlzLnN0YXRlW35+KFcvOCldJjE8PDctVyU4KSYmKFpbMF1e''@;'; + put 'put ''PVFbMF0sWlsxXV49UVsxXSxaWzJdXj1RWzJdLFpbM11ePVFbM10pLFk9MCE9KDEmUVszXSksaWU9MztpZT4wO2llLS0pUVtpZV09UVtpZV0+Pj4xfCgxJlFbaWUtMV0pPDwzMTtRWzBdPVFbMF0+Pj4xLFkmJihRWzBdPVFbMF1eMjI1PDwyNCl9dGhpcy5zdGF0ZT1NZShaKX0sVS5wcm90b3R5''@;'; + put 'put ''cGUudXBkYXRlPWZ1bmN0aW9uKFEpe3RoaXMuY2FjaGU9bWUuY29uY2F0KFt0aGlzLmNhY2hlLFFdKTtmb3IodmFyIFo7dGhpcy5jYWNoZS5sZW5ndGg+PTE2OylaPXRoaXMuY2FjaGUuc2xpY2UoMCwxNiksdGhpcy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSx0aGlzLmdoYXNoKFopfSxV''@;'; + put 'put ''LnByb3RvdHlwZS5maW5hbD1mdW5jdGlvbihRLFope3JldHVybiB0aGlzLmNhY2hlLmxlbmd0aCYmdGhpcy5naGFzaChtZS5jb25jYXQoW3RoaXMuY2FjaGUsQl0sMTYpKSx0aGlzLmdoYXNoKE1lKFswLFEsMCxaXSkpLHRoaXMuc3RhdGV9LFhlLmV4cG9ydHM9VX0sNzk2ODpYZT0+e1hlLmV4''@;'; + put 'put ''cG9ydHM9ZnVuY3Rpb24gSmUoTCl7Zm9yKHZhciBCLG1lPUwubGVuZ3RoO21lLS07KXtpZigyNTUhPT0oQj1MLnJlYWRVSW50OChtZSkpKXtCKyssTC53cml0ZVVJbnQ4KEIsbWUpO2JyZWFrfUwud3JpdGVVSW50OCgwLG1lKX19fSw2NDkwMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1ODc4OSk7''@;'; + put 'put ''SmUuZW5jcnlwdD1mdW5jdGlvbihCLEUpe3ZhciBNZT1tZShFLEIuX3ByZXYpO3JldHVybiBCLl9wcmV2PUIuX2NpcGhlci5lbmNyeXB0QmxvY2soTWUpLEIuX3ByZXZ9LEplLmRlY3J5cHQ9ZnVuY3Rpb24oQixFKXt2YXIgTWU9Qi5fcHJldjtCLl9wcmV2PUU7dmFyIFU9Qi5fY2lwaGVyLmRl''@;'; + put 'put ''Y3J5cHRCbG9jayhFKTtyZXR1cm4gbWUoVSxNZSl9fSw1OTg4NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MzUwMikuQnVmZmVyLEI9TCg1ODc4OSk7ZnVuY3Rpb24gRShNZSxVLFEpe3ZhciBaPVUubGVuZ3RoLGllPUIoVSxNZS5fY2FjaGUpO3JldHVybiBNZS5fY2FjaGU9TWUuX2NhY2hlLnNs''@;'; + put 'put ''aWNlKFopLE1lLl9wcmV2PW1lLmNvbmNhdChbTWUuX3ByZXYsUT9VOmllXSksaWV9SmUuZW5jcnlwdD1mdW5jdGlvbihNZSxVLFEpe2Zvcih2YXIgaWUsWj1tZS5hbGxvY1Vuc2FmZSgwKTtVLmxlbmd0aDspe2lmKDA9PT1NZS5fY2FjaGUubGVuZ3RoJiYoTWUuX2NhY2hlPU1lLl9jaXBoZXIu''@;'; + put 'put ''ZW5jcnlwdEJsb2NrKE1lLl9wcmV2KSxNZS5fcHJldj1tZS5hbGxvY1Vuc2FmZSgwKSksIShNZS5fY2FjaGUubGVuZ3RoPD1VLmxlbmd0aCkpe1o9bWUuY29uY2F0KFtaLEUoTWUsVSxRKV0pO2JyZWFrfVo9bWUuY29uY2F0KFtaLEUoTWUsVS5zbGljZSgwLGllPU1lLl9jYWNoZS5sZW5ndGgp''@;'; + put 'put ''LFEpXSksVT1VLnNsaWNlKGllKX1yZXR1cm4gWn19LDg2NTMxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDczNTAyKS5CdWZmZXI7ZnVuY3Rpb24gQihNZSxVLFEpe2Zvcih2YXIgVyxOLGllPS0xLFk9MDsrK2llPDg7KVkrPSgxMjgmKE49TWUuX2NpcGhlci5lbmNyeXB0QmxvY2soTWUuX3ByZXYp''@;'; + put 'put ''WzBdXihXPVUmMTw8Ny1pZT8xMjg6MCkpKT4+aWUlOCxNZS5fcHJldj1FKE1lLl9wcmV2LFE/VzpOKTtyZXR1cm4gWX1mdW5jdGlvbiBFKE1lLFUpe3ZhciBRPU1lLmxlbmd0aCxaPS0xLGllPW1lLmFsbG9jVW5zYWZlKE1lLmxlbmd0aCk7Zm9yKE1lPW1lLmNvbmNhdChbTWUsbWUuZnJvbShb''@;'; + put 'put ''VV0pXSk7KytaPFE7KWllW1pdPU1lW1pdPDwxfE1lW1orMV0+Pjc7cmV0dXJuIGllfUplLmVuY3J5cHQ9ZnVuY3Rpb24oTWUsVSxRKXtmb3IodmFyIFo9VS5sZW5ndGgsaWU9bWUuYWxsb2NVbnNhZmUoWiksbGU9LTE7KytsZTxaOylpZVtsZV09QihNZSxVW2xlXSxRKTtyZXR1cm4gaWV9fSwy''@;'; + put 'put ''MTY0MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MzUwMikuQnVmZmVyO2Z1bmN0aW9uIEIoRSxNZSxVKXt2YXIgWj1FLl9jaXBoZXIuZW5jcnlwdEJsb2NrKEUuX3ByZXYpWzBdXk1lO3JldHVybiBFLl9wcmV2PW1lLmNvbmNhdChbRS5fcHJldi5zbGljZSgxKSxtZS5mcm9tKFtVP01lOlpdKV0p''@;'; + put 'put ''LFp9SmUuZW5jcnlwdD1mdW5jdGlvbihFLE1lLFUpe2Zvcih2YXIgUT1NZS5sZW5ndGgsWj1tZS5hbGxvY1Vuc2FmZShRKSxpZT0tMTsrK2llPFE7KVpbaWVdPUIoRSxNZVtpZV0sVSk7cmV0dXJuIFp9fSwxMTE1MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1ODc4OSksQj1MKDczNTAyKS5CdWZm''@;'; + put 'put ''ZXIsRT1MKDc5NjgpO2Z1bmN0aW9uIE1lKFEpe3ZhciBaPVEuX2NpcGhlci5lbmNyeXB0QmxvY2tSYXcoUS5fcHJldik7cmV0dXJuIEUoUS5fcHJldiksWn1KZS5lbmNyeXB0PWZ1bmN0aW9uKFEsWil7dmFyIGllPU1hdGguY2VpbChaLmxlbmd0aC8xNiksbGU9US5fY2FjaGUubGVuZ3RoO1Eu''@;'; + put 'put ''X2NhY2hlPUIuY29uY2F0KFtRLl9jYWNoZSxCLmFsbG9jVW5zYWZlKDE2KmllKV0pO2Zvcih2YXIgWT0wO1k8aWU7WSsrKXt2YXIgVz1NZShRKSxOPWxlKzE2Klk7US5fY2FjaGUud3JpdGVVSW50MzJCRShXWzBdLE4rMCksUS5fY2FjaGUud3JpdGVVSW50MzJCRShXWzFdLE4rNCksUS5fY2Fj''@;'; + put 'put ''aGUud3JpdGVVSW50MzJCRShXWzJdLE4rOCksUS5fY2FjaGUud3JpdGVVSW50MzJCRShXWzNdLE4rMTIpfXZhciBlZT1RLl9jYWNoZS5zbGljZSgwLFoubGVuZ3RoKTtyZXR1cm4gUS5fY2FjaGU9US5fY2FjaGUuc2xpY2UoWi5sZW5ndGgpLG1lKFosZWUpfX0sMjE3MDQ6KFhlLEplKT0+e0pl''@;'; + put 'put ''LmVuY3J5cHQ9ZnVuY3Rpb24oTCxtZSl7cmV0dXJuIEwuX2NpcGhlci5lbmNyeXB0QmxvY2sobWUpfSxKZS5kZWNyeXB0PWZ1bmN0aW9uKEwsbWUpe3JldHVybiBMLl9jaXBoZXIuZGVjcnlwdEJsb2NrKG1lKX19LDI5MTcxOihYZSxKZSxMKT0+e3ZhciBtZT17RUNCOkwoMjE3MDQpLENCQzpM''@;'; + put 'put ''KDY0OTAzKSxDRkI6TCg1OTg4NSksQ0ZCODpMKDIxNjQxKSxDRkIxOkwoODY1MzEpLE9GQjpMKDg2ODE2KSxDVFI6TCgxMTE1MCksR0NNOkwoMTExNTApfSxCPUwoNDQ5NDYpO2Zvcih2YXIgRSBpbiBCKUJbRV0ubW9kdWxlPW1lW0JbRV0ubW9kZV07WGUuZXhwb3J0cz1CfSw4NjgxNjooWGUs''@;'; + put 'put ''SmUsTCk9Pnt2YXIgbWU9TCg1ODc4OSk7ZnVuY3Rpb24gQihFKXtyZXR1cm4gRS5fcHJldj1FLl9jaXBoZXIuZW5jcnlwdEJsb2NrKEUuX3ByZXYpLEUuX3ByZXZ9SmUuZW5jcnlwdD1mdW5jdGlvbihFLE1lKXtmb3IoO0UuX2NhY2hlLmxlbmd0aDxNZS5sZW5ndGg7KUUuX2NhY2hlPUJ1ZmZl''@;'; + put 'put ''ci5jb25jYXQoW0UuX2NhY2hlLEIoRSldKTt2YXIgVT1FLl9jYWNoZS5zbGljZSgwLE1lLmxlbmd0aCk7cmV0dXJuIEUuX2NhY2hlPUUuX2NhY2hlLnNsaWNlKE1lLmxlbmd0aCksbWUoTWUsVSl9fSwzODQ0MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0MTg5OSksQj1MKDczNTAyKS5CdWZmZXIs''@;'; + put 'put ''RT1MKDYxMDUyKTtmdW5jdGlvbiBVKFEsWixpZSxsZSl7RS5jYWxsKHRoaXMpLHRoaXMuX2NpcGhlcj1uZXcgbWUuQUVTKFopLHRoaXMuX3ByZXY9Qi5mcm9tKGllKSx0aGlzLl9jYWNoZT1CLmFsbG9jVW5zYWZlKDApLHRoaXMuX3NlY0NhY2hlPUIuYWxsb2NVbnNhZmUoMCksdGhpcy5fZGVj''@;'; + put 'put ''cnlwdD1sZSx0aGlzLl9tb2RlPVF9TCg4Mzg5NCkoVSxFKSxVLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFEpe3JldHVybiB0aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxRLHRoaXMuX2RlY3J5cHQpfSxVLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt0aGlzLl9jaXBoZXIuc2NydWIo''@;'; + put 'put ''KX0sWGUuZXhwb3J0cz1VfSw1NTI1NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5MDA0KSxCPUwoODQzMzApLEU9TCgyOTE3MSksTWU9TCg1MTExNSksVT1MKDQwMzQ3KTtmdW5jdGlvbiBpZShXLE4sZWUpe2lmKFc9Vy50b0xvd2VyQ2FzZSgpLEVbV10pcmV0dXJuIEIuY3JlYXRlQ2lwaGVyaXYo''@;'; + put 'put ''VyxOLGVlKTtpZihNZVtXXSlyZXR1cm4gbmV3IG1lKHtrZXk6TixpdjplZSxtb2RlOld9KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKX1mdW5jdGlvbiBsZShXLE4sZWUpe2lmKFc9Vy50b0xvd2VyQ2FzZSgpLEVbV10pcmV0dXJuIEIuY3JlYXRlRGVjaXBoZXJp''@;'; + put 'put ''dihXLE4sZWUpO2lmKE1lW1ddKXJldHVybiBuZXcgbWUoe2tleTpOLGl2OmVlLG1vZGU6VyxkZWNyeXB0OiEwfSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIil9SmUuY3JlYXRlQ2lwaGVyPUplLkNpcGhlcj1mdW5jdGlvbiBRKFcsTil7dmFyIGVlLHE7aWYoVz1X''@;'; + put 'put ''LnRvTG93ZXJDYXNlKCksRVtXXSllZT1FW1ddLmtleSxxPUVbV10uaXY7ZWxzZXtpZighTWVbV10pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7ZWU9OCpNZVtXXS5rZXkscT1NZVtXXS5pdn12YXIgSj1VKE4sITEsZWUscSk7cmV0dXJuIGllKFcsSi5rZXksSi5p''@;'; + put 'put ''dil9LEplLmNyZWF0ZUNpcGhlcml2PUplLkNpcGhlcml2PWllLEplLmNyZWF0ZURlY2lwaGVyPUplLkRlY2lwaGVyPWZ1bmN0aW9uIFooVyxOKXt2YXIgZWUscTtpZihXPVcudG9Mb3dlckNhc2UoKSxFW1ddKWVlPUVbV10ua2V5LHE9RVtXXS5pdjtlbHNle2lmKCFNZVtXXSl0aHJvdyBuZXcg''@;'; + put 'put ''VHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtlZT04Kk1lW1ddLmtleSxxPU1lW1ddLml2fXZhciBKPVUoTiwhMSxlZSxxKTtyZXR1cm4gbGUoVyxKLmtleSxKLml2KX0sSmUuY3JlYXRlRGVjaXBoZXJpdj1KZS5EZWNpcGhlcml2PWxlLEplLmxpc3RDaXBoZXJzPUplLmdldENpcGhl''@;'; + put 'put ''cnM9ZnVuY3Rpb24gWSgpe3JldHVybiBPYmplY3Qua2V5cyhNZSkuY29uY2F0KEIuZ2V0Q2lwaGVycygpKX19LDkwMDQ6KFhlLEplLEwpPT57dmFyIG1lPUwoNjEwNTIpLEI9TCg3MzY4NCksRT1MKDgzODk0KSxNZT1MKDczNTAyKS5CdWZmZXIsVT17ImRlcy1lZGUzLWNiYyI6Qi5DQkMuaW5z''@;'; + put 'put ''dGFudGlhdGUoQi5FREUpLCJkZXMtZWRlMyI6Qi5FREUsImRlcy1lZGUtY2JjIjpCLkNCQy5pbnN0YW50aWF0ZShCLkVERSksImRlcy1lZGUiOkIuRURFLCJkZXMtY2JjIjpCLkNCQy5pbnN0YW50aWF0ZShCLkRFUyksImRlcy1lY2IiOkIuREVTfTtmdW5jdGlvbiBRKFope21lLmNhbGwodGhp''@;'; + put 'put ''cyk7dmFyIFksaWU9Wi5tb2RlLnRvTG93ZXJDYXNlKCksbGU9VVtpZV07WT1aLmRlY3J5cHQ/ImRlY3J5cHQiOiJlbmNyeXB0Ijt2YXIgVz1aLmtleTtNZS5pc0J1ZmZlcihXKXx8KFc9TWUuZnJvbShXKSksKCJkZXMtZWRlIj09PWllfHwiZGVzLWVkZS1jYmMiPT09aWUpJiYoVz1NZS5jb25j''@;'; + put 'put ''YXQoW1csVy5zbGljZSgwLDgpXSkpO3ZhciBOPVouaXY7TWUuaXNCdWZmZXIoTil8fChOPU1lLmZyb20oTikpLHRoaXMuX2Rlcz1sZS5jcmVhdGUoe2tleTpXLGl2Ok4sdHlwZTpZfSl9VS5kZXM9VVsiZGVzLWNiYyJdLFUuZGVzMz1VWyJkZXMtZWRlMy1jYmMiXSxYZS5leHBvcnRzPVEsRShR''@;'; + put 'put ''LG1lKSxRLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFope3JldHVybiBNZS5mcm9tKHRoaXMuX2Rlcy51cGRhdGUoWikpfSxRLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXtyZXR1cm4gTWUuZnJvbSh0aGlzLl9kZXMuZmluYWwoKSl9fSw1MTExNTooWGUsSmUpPT57SmVbImRlcy1l''@;'; + put 'put ''Y2IiXT17a2V5OjgsaXY6MH0sSmVbImRlcy1jYmMiXT1KZS5kZXM9e2tleTo4LGl2Ojh9LEplWyJkZXMtZWRlMy1jYmMiXT1KZS5kZXMzPXtrZXk6MjQsaXY6OH0sSmVbImRlcy1lZGUzIl09e2tleToyNCxpdjowfSxKZVsiZGVzLWVkZS1jYmMiXT17a2V5OjE2LGl2Ojh9LEplWyJkZXMtZWRl''@;'; + put 'put ''Il09e2tleToxNixpdjowfX0sODQ2NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5ODUzOCksQj1MKDUzNzUzKTtmdW5jdGlvbiBNZShRKXt2YXIgaWUsWj1RLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2Rve2llPW5ldyBtZShCKFopKX13aGlsZShpZS5jbXAoUS5tb2R1bHVzKT49MHx8IWllLnVtb2Qo''@;'; + put 'put ''US5wcmltZTEpfHwhaWUudW1vZChRLnByaW1lMikpO3JldHVybiBpZX1mdW5jdGlvbiBVKFEsWil7dmFyIGllPWZ1bmN0aW9uIEUoUSl7dmFyIFo9TWUoUSk7cmV0dXJue2JsaW5kZXI6Wi50b1JlZChtZS5tb250KFEubW9kdWx1cykpLnJlZFBvdyhuZXcgbWUoUS5wdWJsaWNFeHBvbmVudCkp''@;'; + put 'put ''LmZyb21SZWQoKSx1bmJsaW5kZXI6Wi5pbnZtKFEubW9kdWx1cyl9fShaKSxsZT1aLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLFk9bmV3IG1lKFEpLm11bChpZS5ibGluZGVyKS51bW9kKFoubW9kdWx1cyksVz1ZLnRvUmVkKG1lLm1vbnQoWi5wcmltZTEpKSxOPVkudG9SZWQobWUubW9udChaLnBy''@;'; + put 'put ''aW1lMikpLGVlPVouY29lZmZpY2llbnQscT1aLnByaW1lMSxKPVoucHJpbWUyLHNlPVcucmVkUG93KFouZXhwb25lbnQxKS5mcm9tUmVkKCksb2U9Ti5yZWRQb3coWi5leHBvbmVudDIpLmZyb21SZWQoKSxjZT1zZS5pc3ViKG9lKS5pbXVsKGVlKS51bW9kKHEpLmltdWwoSik7cmV0dXJuIG9l''@;'; + put 'put ''LmlhZGQoY2UpLmltdWwoaWUudW5ibGluZGVyKS51bW9kKFoubW9kdWx1cykudG9BcnJheUxpa2UoQnVmZmVyLCJiZSIsbGUpfVUuZ2V0cj1NZSxYZS5leHBvcnRzPVV9LDg3NzkzOihYZSxKZSxMKT0+e1hlLmV4cG9ydHM9TCg3NTIwNyl9LDM5MjM6KFhlLEplLEwpPT57dmFyIG1lPUwoODQ0''@;'; + put 'put ''NikuQnVmZmVyLEI9TCg5NjM4NiksRT1MKDY1Njg1KSxNZT1MKDgzODk0KSxVPUwoNzk5NDcpLFE9TCgzOTQ2KSxaPUwoNzUyMDcpO2Z1bmN0aW9uIGllKE4pe0UuV3JpdGFibGUuY2FsbCh0aGlzKTt2YXIgZWU9WltOXTtpZighZWUpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIG1lc3NhZ2Ug''@;'; + put 'put ''ZGlnZXN0Iik7dGhpcy5faGFzaFR5cGU9ZWUuaGFzaCx0aGlzLl9oYXNoPUIoZWUuaGFzaCksdGhpcy5fdGFnPWVlLmlkLHRoaXMuX3NpZ25UeXBlPWVlLnNpZ259ZnVuY3Rpb24gbGUoTil7RS5Xcml0YWJsZS5jYWxsKHRoaXMpO3ZhciBlZT1aW05dO2lmKCFlZSl0aHJvdyBuZXcgRXJyb3Io''@;'; + put 'put ''IlVua25vd24gbWVzc2FnZSBkaWdlc3QiKTt0aGlzLl9oYXNoPUIoZWUuaGFzaCksdGhpcy5fdGFnPWVlLmlkLHRoaXMuX3NpZ25UeXBlPWVlLnNpZ259ZnVuY3Rpb24gWShOKXtyZXR1cm4gbmV3IGllKE4pfWZ1bmN0aW9uIFcoTil7cmV0dXJuIG5ldyBsZShOKX1PYmplY3Qua2V5cyhaKS5m''@;'; + put 'put ''b3JFYWNoKGZ1bmN0aW9uKE4pe1pbTl0uaWQ9bWUuZnJvbShaW05dLmlkLCJoZXgiKSxaW04udG9Mb3dlckNhc2UoKV09WltOXX0pLE1lKGllLEUuV3JpdGFibGUpLGllLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oZWUscSxKKXt0aGlzLl9oYXNoLnVwZGF0ZShlZSksSigpfSxpZS5wcm90''@;'; + put 'put ''b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGVlLHEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZWUmJihlZT1tZS5mcm9tKGVlLHEpKSx0aGlzLl9oYXNoLnVwZGF0ZShlZSksdGhpc30saWUucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oZWUscSl7dGhpcy5lbmQoKTt2YXIgSj10aGlzLl9oYXNoLmRp''@;'; + put 'put ''Z2VzdCgpLHNlPVUoSixlZSx0aGlzLl9oYXNoVHlwZSx0aGlzLl9zaWduVHlwZSx0aGlzLl90YWcpO3JldHVybiBxP3NlLnRvU3RyaW5nKHEpOnNlfSxNZShsZSxFLldyaXRhYmxlKSxsZS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKGVlLHEsSil7dGhpcy5faGFzaC51cGRhdGUoZWUpLEoo''@;'; + put 'put ''KX0sbGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlZSxxKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGVlJiYoZWU9bWUuZnJvbShlZSxxKSksdGhpcy5faGFzaC51cGRhdGUoZWUpLHRoaXN9LGxlLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oZWUscSxKKXsic3RyaW5nIj09dHlwZW9m''@;'; + put 'put ''IHEmJihxPW1lLmZyb20ocSxKKSksdGhpcy5lbmQoKTt2YXIgc2U9dGhpcy5faGFzaC5kaWdlc3QoKTtyZXR1cm4gUShxLHNlLGVlLHRoaXMuX3NpZ25UeXBlLHRoaXMuX3RhZyl9LFhlLmV4cG9ydHM9e1NpZ246WSxWZXJpZnk6VyxjcmVhdGVTaWduOlksY3JlYXRlVmVyaWZ5Old9fSw3OTk0''@;'; + put 'put ''NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NDQ2KS5CdWZmZXIsQj1MKDc0NTI5KSxFPUwoODQ2NiksTWU9TCg1NzcxNSkuZWMsVT1MKDk4NTM4KSxRPUwoMjI3NzIpLFo9TCgxMzA4KTtmdW5jdGlvbiBOKG9lLGNlLGRlLHZlKXtpZigob2U9bWUuZnJvbShvZS50b0FycmF5KCkpKS5sZW5ndGg8''@;'; + put 'put ''Y2UuYnl0ZUxlbmd0aCgpKXt2YXIgQWU9bWUuYWxsb2MoY2UuYnl0ZUxlbmd0aCgpLW9lLmxlbmd0aCk7b2U9bWUuY29uY2F0KFtBZSxvZV0pfXZhciBrZT1kZS5sZW5ndGgsU2U9ZnVuY3Rpb24gcShvZSxjZSl7b2U9KG9lPWVlKG9lLGNlKSkubW9kKGNlKTt2YXIgZGU9bWUuZnJvbShvZS50''@;'; + put 'put ''b0FycmF5KCkpO2lmKGRlLmxlbmd0aDxjZS5ieXRlTGVuZ3RoKCkpe3ZhciB2ZT1tZS5hbGxvYyhjZS5ieXRlTGVuZ3RoKCktZGUubGVuZ3RoKTtkZT1tZS5jb25jYXQoW3ZlLGRlXSl9cmV0dXJuIGRlfShkZSxjZSksSWU9bWUuYWxsb2Moa2UpO0llLmZpbGwoMSk7dmFyIFRlPW1lLmFsbG9j''@;'; + put 'put ''KGtlKTtyZXR1cm4gVGU9Qih2ZSxUZSkudXBkYXRlKEllKS51cGRhdGUobWUuZnJvbShbMF0pKS51cGRhdGUob2UpLnVwZGF0ZShTZSkuZGlnZXN0KCksSWU9Qih2ZSxUZSkudXBkYXRlKEllKS5kaWdlc3QoKSx7azpUZT1CKHZlLFRlKS51cGRhdGUoSWUpLnVwZGF0ZShtZS5mcm9tKFsxXSkp''@;'; + put 'put ''LnVwZGF0ZShvZSkudXBkYXRlKFNlKS5kaWdlc3QoKSx2OkllPUIodmUsVGUpLnVwZGF0ZShJZSkuZGlnZXN0KCl9fWZ1bmN0aW9uIGVlKG9lLGNlKXt2YXIgZGU9bmV3IFUob2UpLHZlPShvZS5sZW5ndGg8PDMpLWNlLmJpdExlbmd0aCgpO3JldHVybiB2ZT4wJiZkZS5pc2hybih2ZSksZGV9''@;'; + put 'put ''ZnVuY3Rpb24gSihvZSxjZSxkZSl7dmFyIHZlLEFlO2Rve2Zvcih2ZT1tZS5hbGxvYygwKTs4KnZlLmxlbmd0aDxvZS5iaXRMZW5ndGgoKTspY2Uudj1CKGRlLGNlLmspLnVwZGF0ZShjZS52KS5kaWdlc3QoKSx2ZT1tZS5jb25jYXQoW3ZlLGNlLnZdKTtBZT1lZSh2ZSxvZSksY2Uuaz1CKGRl''@;'; + put 'put ''LGNlLmspLnVwZGF0ZShjZS52KS51cGRhdGUobWUuZnJvbShbMF0pKS5kaWdlc3QoKSxjZS52PUIoZGUsY2UuaykudXBkYXRlKGNlLnYpLmRpZ2VzdCgpfXdoaWxlKC0xIT09QWUuY21wKG9lKSk7cmV0dXJuIEFlfWZ1bmN0aW9uIHNlKG9lLGNlLGRlLHZlKXtyZXR1cm4gb2UudG9SZWQoVS5t''@;'; + put 'put ''b250KGRlKSkucmVkUG93KGNlKS5mcm9tUmVkKCkubW9kKHZlKX1YZS5leHBvcnRzPWZ1bmN0aW9uIGllKG9lLGNlLGRlLHZlLEFlKXt2YXIga2U9UShjZSk7aWYoa2UuY3VydmUpe2lmKCJlY2RzYSIhPT12ZSYmImVjZHNhL3JzYSIhPT12ZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHByaXZh''@;'; + put 'put ''dGUga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24gbGUob2UsY2Upe3ZhciBkZT1aW2NlLmN1cnZlLmpvaW4oIi4iKV07aWYoIWRlKXRocm93IG5ldyBFcnJvcigidW5rbm93biBjdXJ2ZSAiK2NlLmN1cnZlLmpvaW4oIi4iKSk7dmFyIGtlPW5ldyBNZShkZSkua2V5RnJvbVByaXZhdGUoY2Uu''@;'; + put 'put ''cHJpdmF0ZUtleSkuc2lnbihvZSk7cmV0dXJuIG1lLmZyb20oa2UudG9ERVIoKSl9KG9lLGtlKX1pZigiZHNhIj09PWtlLnR5cGUpe2lmKCJkc2EiIT09dmUpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uIFkob2UsY2UsZGUpe2Zvcih2''@;'; + put 'put ''YXIgVGUsdmU9Y2UucGFyYW1zLnByaXZfa2V5LEFlPWNlLnBhcmFtcy5wLGtlPWNlLnBhcmFtcy5xLFNlPWNlLnBhcmFtcy5nLEllPW5ldyBVKDApLEVlPWVlKG9lLGtlKS5tb2Qoa2UpLGhlPSExLE89Tih2ZSxrZSxvZSxkZSk7ITE9PT1oZTspSWU9c2UoU2UsVGU9SihrZSxPLGRlKSxBZSxr''@;'; + put 'put ''ZSksMD09PShoZT1UZS5pbnZtKGtlKS5pbXVsKEVlLmFkZCh2ZS5tdWwoSWUpKSkubW9kKGtlKSkuY21wbigwKSYmKGhlPSExLEllPW5ldyBVKDApKTtyZXR1cm4gZnVuY3Rpb24gVyhvZSxjZSl7b2U9b2UudG9BcnJheSgpLGNlPWNlLnRvQXJyYXkoKSwxMjgmb2VbMF0mJihvZT1bMF0uY29u''@;'; + put 'put ''Y2F0KG9lKSksMTI4JmNlWzBdJiYoY2U9WzBdLmNvbmNhdChjZSkpO3ZhciB2ZT1bNDgsb2UubGVuZ3RoK2NlLmxlbmd0aCs0LDIsb2UubGVuZ3RoXTtyZXR1cm4gdmU9dmUuY29uY2F0KG9lLFsyLGNlLmxlbmd0aF0sY2UpLG1lLmZyb20odmUpfShJZSxoZSl9KG9lLGtlLGRlKX1pZigicnNh''@;'; + put 'put ''IiE9PXZlJiYiZWNkc2EvcnNhIiE9PXZlKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHJpdmF0ZSBrZXkgdHlwZSIpO29lPW1lLmNvbmNhdChbQWUsb2VdKTtmb3IodmFyIFNlPWtlLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLEllPVswLDFdO29lLmxlbmd0aCtJZS5sZW5ndGgrMTxTZTspSWUucHVz''@;'; + put 'put ''aCgyNTUpO0llLnB1c2goMCk7Zm9yKHZhciBUZT0tMTsrK1RlPG9lLmxlbmd0aDspSWUucHVzaChvZVtUZV0pO3JldHVybiBFKEllLGtlKX0sWGUuZXhwb3J0cy5nZXRLZXk9TixYZS5leHBvcnRzLm1ha2VLZXk9Sn0sMzk0NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NDQ2KS5CdWZmZXIsQj1M''@;'; + put 'put ''KDk4NTM4KSxFPUwoNTc3MTUpLmVjLE1lPUwoMjI3NzIpLFU9TCgxMzA4KTtmdW5jdGlvbiBsZShZLFcpe2lmKFkuY21wbigwKTw9MCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgc2lnIik7aWYoWS5jbXAoVyk+PVcpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHNpZyIpfVhlLmV4cG9ydHM9''@;'; + put 'put ''ZnVuY3Rpb24gUShZLFcsTixlZSxxKXt2YXIgSj1NZShOKTtpZigiZWMiPT09Si50eXBlKXtpZigiZWNkc2EiIT09ZWUmJiJlY2RzYS9yc2EiIT09ZWUpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwdWJsaWMga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24gWihZLFcsTil7dmFyIGVlPVVbTi5k''@;'; + put 'put ''YXRhLmFsZ29yaXRobS5jdXJ2ZS5qb2luKCIuIildO2lmKCFlZSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gY3VydmUgIitOLmRhdGEuYWxnb3JpdGhtLmN1cnZlLmpvaW4oIi4iKSk7cmV0dXJuIG5ldyBFKGVlKS52ZXJpZnkoVyxZLE4uZGF0YS5zdWJqZWN0UHJpdmF0ZUtleS5kYXRhKX0o''@;'; + put 'put ''WSxXLEopfWlmKCJkc2EiPT09Si50eXBlKXtpZigiZHNhIiE9PWVlKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uIGllKFksVyxOKXt2YXIgZWU9Ti5kYXRhLnAscT1OLmRhdGEucSxKPU4uZGF0YS5nLHNlPU4uZGF0YS5wdWJfa2V5LG9l''@;'; + put 'put ''PU1lLnNpZ25hdHVyZS5kZWNvZGUoWSwiZGVyIiksY2U9b2UucyxkZT1vZS5yO2xlKGNlLHEpLGxlKGRlLHEpO3ZhciB2ZT1CLm1vbnQoZWUpLEFlPWNlLmludm0ocSk7cmV0dXJuIDA9PT1KLnRvUmVkKHZlKS5yZWRQb3cobmV3IEIoVykubXVsKEFlKS5tb2QocSkpLmZyb21SZWQoKS5tdWwo''@;'; + put 'put ''c2UudG9SZWQodmUpLnJlZFBvdyhkZS5tdWwoQWUpLm1vZChxKSkuZnJvbVJlZCgpKS5tb2QoZWUpLm1vZChxKS5jbXAoZGUpfShZLFcsSil9aWYoInJzYSIhPT1lZSYmImVjZHNhL3JzYSIhPT1lZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHB1YmxpYyBrZXkgdHlwZSIpO1c9bWUuY29uY2F0''@;'; + put 'put ''KFtxLFddKTtmb3IodmFyIHNlPUoubW9kdWx1cy5ieXRlTGVuZ3RoKCksb2U9WzFdLGNlPTA7Vy5sZW5ndGgrb2UubGVuZ3RoKzI8c2U7KW9lLnB1c2goMjU1KSxjZSsrO29lLnB1c2goMCk7Zm9yKHZhciBkZT0tMTsrK2RlPFcubGVuZ3RoOylvZS5wdXNoKFdbZGVdKTtvZT1tZS5mcm9tKG9l''@;'; + put 'put ''KTt2YXIgdmU9Qi5tb250KEoubW9kdWx1cyk7WT0oWT1uZXcgQihZKS50b1JlZCh2ZSkpLnJlZFBvdyhuZXcgQihKLnB1YmxpY0V4cG9uZW50KSksWT1tZS5mcm9tKFkuZnJvbVJlZCgpLnRvQXJyYXkoKSk7dmFyIEFlPWNlPDg/MTowO2ZvcihzZT1NYXRoLm1pbihZLmxlbmd0aCxvZS5sZW5n''@;'; + put 'put ''dGgpLFkubGVuZ3RoIT09b2UubGVuZ3RoJiYoQWU9MSksZGU9LTE7KytkZTxzZTspQWV8PVlbZGVdXm9lW2RlXTtyZXR1cm4gMD09PUFlfX0sODQ0NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5MzE3MiksQj1tZS5CdWZmZXI7ZnVuY3Rpb24gRShVLFEpe2Zvcih2YXIgWiBpbiBVKVFbWl09VVta''@;'; + put 'put ''XX1mdW5jdGlvbiBNZShVLFEsWil7cmV0dXJuIEIoVSxRLFopfUIuZnJvbSYmQi5hbGxvYyYmQi5hbGxvY1Vuc2FmZSYmQi5hbGxvY1Vuc2FmZVNsb3c/WGUuZXhwb3J0cz1tZTooRShtZSxKZSksSmUuQnVmZmVyPU1lKSxNZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShCLnByb3RvdHlwZSks''@;'; + put 'put ''RShCLE1lKSxNZS5mcm9tPWZ1bmN0aW9uKFUsUSxaKXtpZigibnVtYmVyIj09dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gQihVLFEsWil9LE1lLmFsbG9jPWZ1bmN0aW9uKFUsUSxaKXtpZigibnVtYmVyIiE9dHlw''@;'; + put 'put ''ZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBpZT1CKFUpO3JldHVybiB2b2lkIDAhPT1RPyJzdHJpbmciPT10eXBlb2YgWj9pZS5maWxsKFEsWik6aWUuZmlsbChRKTppZS5maWxsKDApLGllfSxNZS5hbGxvY1Vuc2FmZT1mdW5jdGlv''@;'; + put 'put ''bihVKXtpZigibnVtYmVyIiE9dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBCKFUpfSxNZS5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24oVSl7aWYoIm51bWJlciIhPXR5cGVvZiBVKXRocm93IG5ldyBUeXBlRXJyb3IoIkFy''@;'; + put 'put ''Z3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gbWUuU2xvd0J1ZmZlcihVKX19LDU4Nzg5OlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihMLG1lKXtmb3IodmFyIEI9TWF0aC5taW4oTC5sZW5ndGgsbWUubGVuZ3RoKSxFPW5ldyBCdWZmZXIoQiksTWU9MDtNZTxCOysrTWUpRVtNZV09''@;'; + put 'put ''TFtNZV1ebWVbTWVdO3JldHVybiBFfX0sOTMxNzI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDUzNDMpLEI9TCg0ODQ2MSksRT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sLmZvcj9TeW1ib2wuZm9yKCJub2RlanMudXRpbC5p''@;'; + put 'put ''bnNwZWN0LmN1c3RvbSIpOm51bGw7SmUuQnVmZmVyPVosSmUuU2xvd0J1ZmZlcj1mdW5jdGlvbiBjZShfdCl7cmV0dXJuK190IT1fdCYmKF90PTApLFouYWxsb2MoK190KX0sSmUuSU5TUEVDVF9NQVhfQllURVM9NTA7dmFyIE1lPTIxNDc0ODM2NDc7ZnVuY3Rpb24gUShfdCl7aWYoX3Q+TWUp''@;'; + put 'put ''dGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytfdCsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyk7dmFyIHR0PW5ldyBVaW50OEFycmF5KF90KTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKHR0LFoucHJvdG90eXBlKSx0dH1mdW5jdGlvbiBaKF90LHR0LGV0''@;'; + put 'put ''KXtpZigibnVtYmVyIj09dHlwZW9mIF90KXtpZigic3RyaW5nIj09dHlwZW9mIHR0KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLiBSZWNlaXZlZCB0eXBlIG51bWJlcicpO3JldHVybiBXKF90KX1yZXR1cm4gaWUoX3Qs''@;'; + put 'put ''dHQsZXQpfWZ1bmN0aW9uIGllKF90LHR0LGV0KXtpZigic3RyaW5nIj09dHlwZW9mIF90KXJldHVybiBmdW5jdGlvbiBOKF90LHR0KXtpZigoInN0cmluZyIhPXR5cGVvZiB0dHx8IiI9PT10dCkmJih0dD0idXRmOCIpLCFaLmlzRW5jb2RpbmcodHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVu''@;'; + put 'put ''a25vd24gZW5jb2Rpbmc6ICIrdHQpO3ZhciBldD0wfGRlKF90LHR0KSxhdD1RKGV0KSxMdD1hdC53cml0ZShfdCx0dCk7cmV0dXJuIEx0IT09ZXQmJihhdD1hdC5zbGljZSgwLEx0KSksYXR9KF90LHR0KTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcoX3QpKXJldHVybiBmdW5jdGlvbiBxKF90KXtp''@;'; + put 'put ''ZihodChfdCxVaW50OEFycmF5KSl7dmFyIHR0PW5ldyBVaW50OEFycmF5KF90KTtyZXR1cm4gSih0dC5idWZmZXIsdHQuYnl0ZU9mZnNldCx0dC5ieXRlTGVuZ3RoKX1yZXR1cm4gZWUoX3QpfShfdCk7aWYobnVsbD09X3QpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50''@;'; + put 'put ''IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgX3QpO2lmKGh0KF90LEFycmF5QnVmZmVyKXx8X3QmJmh0KF90LmJ1ZmZlcixBcnJheUJ1ZmZlcil8fCJ1bmRl''@;'; + put 'put ''ZmluZWQiIT10eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXImJihodChfdCxTaGFyZWRBcnJheUJ1ZmZlcil8fF90JiZodChfdC5idWZmZXIsU2hhcmVkQXJyYXlCdWZmZXIpKSlyZXR1cm4gSihfdCx0dCxldCk7aWYoIm51bWJlciI9PXR5cGVvZiBfdCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUg''@;'; + put 'put ''InZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTt2YXIgYXQ9X3QudmFsdWVPZiYmX3QudmFsdWVPZigpO2lmKG51bGwhPWF0JiZhdCE9PV90KXJldHVybiBaLmZyb20oYXQsdHQsZXQpO3ZhciBMdD1mdW5jdGlvbiBzZShf''@;'; + put 'put ''dCl7aWYoWi5pc0J1ZmZlcihfdCkpe3ZhciB0dD0wfG9lKF90Lmxlbmd0aCksZXQ9USh0dCk7cmV0dXJuIDA9PT1ldC5sZW5ndGh8fF90LmNvcHkoZXQsMCwwLHR0KSxldH1yZXR1cm4gdm9pZCAwIT09X3QubGVuZ3RoPyJudW1iZXIiIT10eXBlb2YgX3QubGVuZ3RofHxCdChfdC5sZW5ndGgp''@;'; + put 'put ''P1EoMCk6ZWUoX3QpOiJCdWZmZXIiPT09X3QudHlwZSYmQXJyYXkuaXNBcnJheShfdC5kYXRhKT9lZShfdC5kYXRhKTp2b2lkIDB9KF90KTtpZihMdClyZXR1cm4gTHQ7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPVN5bWJvbC50b1ByaW1pdGl2ZSYmImZ1bmN0aW9uIj09''@;'; + put 'put ''dHlwZW9mIF90W1N5bWJvbC50b1ByaW1pdGl2ZV0pcmV0dXJuIFouZnJvbShfdFtTeW1ib2wudG9QcmltaXRpdmVdKCJzdHJpbmciKSx0dCxldCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5''@;'; + put 'put ''QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgX3QpfWZ1bmN0aW9uIGxlKF90KXtpZigibnVtYmVyIiE9dHlwZW9mIF90KXRocm93IG5ldyBUeXBlRXJyb3IoJyJzaXplIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyJyk7''@;'; + put 'put ''aWYoX3Q8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK190KyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKX1mdW5jdGlvbiBXKF90KXtyZXR1cm4gbGUoX3QpLFEoX3Q8MD8wOjB8b2UoX3QpKX1mdW5jdGlvbiBlZShfdCl7Zm9yKHZhciB0dD1fdC5sZW5ndGg8''@;'; + put 'put ''MD8wOjB8b2UoX3QubGVuZ3RoKSxldD1RKHR0KSxhdD0wO2F0PHR0O2F0Kz0xKWV0W2F0XT0yNTUmX3RbYXRdO3JldHVybiBldH1mdW5jdGlvbiBKKF90LHR0LGV0KXtpZih0dDwwfHxfdC5ieXRlTGVuZ3RoPHR0KXRocm93IG5ldyBSYW5nZUVycm9yKCcib2Zmc2V0IiBpcyBvdXRzaWRlIG9m''@;'; + put 'put ''IGJ1ZmZlciBib3VuZHMnKTtpZihfdC5ieXRlTGVuZ3RoPHR0KyhldHx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJsZW5ndGgiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO3ZhciBhdDtyZXR1cm4gYXQ9dm9pZCAwPT09dHQmJnZvaWQgMD09PWV0P25ldyBVaW50OEFycmF5KF90''@;'; + put 'put ''KTp2b2lkIDA9PT1ldD9uZXcgVWludDhBcnJheShfdCx0dCk6bmV3IFVpbnQ4QXJyYXkoX3QsdHQsZXQpLE9iamVjdC5zZXRQcm90b3R5cGVPZihhdCxaLnByb3RvdHlwZSksYXR9ZnVuY3Rpb24gb2UoX3Qpe2lmKF90Pj1NZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byBhbGxv''@;'; + put 'put ''Y2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSBzaXplOiAweCIrTWUudG9TdHJpbmcoMTYpKyIgYnl0ZXMiKTtyZXR1cm4gMHxfdH1mdW5jdGlvbiBkZShfdCx0dCl7aWYoWi5pc0J1ZmZlcihfdCkpcmV0dXJuIF90Lmxlbmd0aDtpZihBcnJheUJ1ZmZlci5pc1ZpZXcoX3QpfHxodChf''@;'; + put 'put ''dCxBcnJheUJ1ZmZlcikpcmV0dXJuIF90LmJ5dGVMZW5ndGg7aWYoInN0cmluZyIhPXR5cGVvZiBfdCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgb3IgQXJyYXlCdWZmZXIuIFJlY2VpdmVkIHR5''@;'; + put 'put ''cGUgJyt0eXBlb2YgX3QpO3ZhciBldD1fdC5sZW5ndGgsYXQ9YXJndW1lbnRzLmxlbmd0aD4yJiYhMD09PWFyZ3VtZW50c1syXTtpZighYXQmJjA9PT1ldClyZXR1cm4gMDtmb3IodmFyIEx0PSExOzspc3dpdGNoKHR0KXtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJl''@;'; + put 'put ''dHVybiBldDtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBndChfdCkubGVuZ3RoO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gMipldDtjYXNlImhleCI6cmV0dXJuIGV0Pj4+MTtjYXNlImJhc2U2NCI6cmV0dXJuIEF0KF90''@;'; + put 'put ''KS5sZW5ndGg7ZGVmYXVsdDppZihMdClyZXR1cm4gYXQ/LTE6Z3QoX3QpLmxlbmd0aDt0dD0oIiIrdHQpLnRvTG93ZXJDYXNlKCksTHQ9ITB9fWZ1bmN0aW9uIHZlKF90LHR0LGV0KXt2YXIgYXQ9ITE7aWYoKHZvaWQgMD09PXR0fHx0dDwwKSYmKHR0PTApLHR0PnRoaXMubGVuZ3RofHwoKHZv''@;'; + put 'put ''aWQgMD09PWV0fHxldD50aGlzLmxlbmd0aCkmJihldD10aGlzLmxlbmd0aCksZXQ8PTApfHwoZXQ+Pj49MCk8PSh0dD4+Pj0wKSlyZXR1cm4iIjtmb3IoX3R8fChfdD0idXRmOCIpOzspc3dpdGNoKF90KXtjYXNlImhleCI6cmV0dXJuIFQodGhpcyx0dCxldCk7Y2FzZSJ1dGY4IjpjYXNlInV0''@;'; + put 'put ''Zi04IjpyZXR1cm4gbmUodGhpcyx0dCxldCk7Y2FzZSJhc2NpaSI6cmV0dXJuIFAodGhpcyx0dCxldCk7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gVih0aGlzLHR0LGV0KTtjYXNlImJhc2U2NCI6cmV0dXJuIHoodGhpcyx0dCxldCk7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpj''@;'; + put 'put ''YXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBTKHRoaXMsdHQsZXQpO2RlZmF1bHQ6aWYoYXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitfdCk7X3Q9KF90KyIiKS50b0xvd2VyQ2FzZSgpLGF0PSEwfX1mdW5jdGlvbiBBZShfdCx0dCxldCl7dmFy''@;'; + put 'put ''IGF0PV90W3R0XTtfdFt0dF09X3RbZXRdLF90W2V0XT1hdH1mdW5jdGlvbiBrZShfdCx0dCxldCxhdCxMdCl7aWYoMD09PV90Lmxlbmd0aClyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9mIGV0PyhhdD1ldCxldD0wKTpldD4yMTQ3NDgzNjQ3P2V0PTIxNDc0ODM2NDc6ZXQ8LTIxNDc0ODM2''@;'; + put 'put ''NDgmJihldD0tMjE0NzQ4MzY0OCksQnQoZXQ9K2V0KSYmKGV0PUx0PzA6X3QubGVuZ3RoLTEpLGV0PDAmJihldD1fdC5sZW5ndGgrZXQpLGV0Pj1fdC5sZW5ndGgpe2lmKEx0KXJldHVybi0xO2V0PV90Lmxlbmd0aC0xfWVsc2UgaWYoZXQ8MCl7aWYoIUx0KXJldHVybi0xO2V0PTB9aWYoInN0''@;'; + put 'put ''cmluZyI9PXR5cGVvZiB0dCYmKHR0PVouZnJvbSh0dCxhdCkpLFouaXNCdWZmZXIodHQpKXJldHVybiAwPT09dHQubGVuZ3RoPy0xOlNlKF90LHR0LGV0LGF0LEx0KTtpZigibnVtYmVyIj09dHlwZW9mIHR0KXJldHVybiB0dCY9MjU1LCJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnBy''@;'; + put 'put ''b3RvdHlwZS5pbmRleE9mP0x0P1VpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChfdCx0dCxldCk6VWludDhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChfdCx0dCxldCk6U2UoX3QsW3R0XSxldCxhdCxMdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigidmFsIG11c3QgYmUg''@;'; + put 'put ''c3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyIil9ZnVuY3Rpb24gU2UoX3QsdHQsZXQsYXQsTHQpe3ZhciBVZSxDdD0xLGZ0PV90Lmxlbmd0aCxIdD10dC5sZW5ndGg7aWYodm9pZCAwIT09YXQmJigidWNzMiI9PT0oYXQ9U3RyaW5nKGF0KS50b0xvd2VyQ2FzZSgpKXx8InVjcy0yIj09PWF0fHwi''@;'; + put 'put ''dXRmMTZsZSI9PT1hdHx8InV0Zi0xNmxlIj09PWF0KSl7aWYoX3QubGVuZ3RoPDJ8fHR0Lmxlbmd0aDwyKXJldHVybi0xO0N0PTIsZnQvPTIsSHQvPTIsZXQvPTJ9ZnVuY3Rpb24gR2UoZ24sZG4pe3JldHVybiAxPT09Q3Q/Z25bZG5dOmduLnJlYWRVSW50MTZCRShkbipDdCl9aWYoTHQpe3Zh''@;'; + put 'put ''ciB5dD0tMTtmb3IoVWU9ZXQ7VWU8ZnQ7VWUrKylpZihHZShfdCxVZSk9PT1HZSh0dCwtMT09PXl0PzA6VWUteXQpKXtpZigtMT09PXl0JiYoeXQ9VWUpLFVlLXl0KzE9PT1IdClyZXR1cm4geXQqQ3R9ZWxzZS0xIT09eXQmJihVZS09VWUteXQpLHl0PS0xfWVsc2UgZm9yKGV0K0h0PmZ0JiYo''@;'; + put 'put ''ZXQ9ZnQtSHQpLFVlPWV0O1VlPj0wO1VlLS0pe2Zvcih2YXIganQ9ITAsUXQ9MDtRdDxIdDtRdCsrKWlmKEdlKF90LFVlK1F0KSE9PUdlKHR0LFF0KSl7anQ9ITE7YnJlYWt9aWYoanQpcmV0dXJuIFVlfXJldHVybi0xfWZ1bmN0aW9uIEllKF90LHR0LGV0LGF0KXtldD1OdW1iZXIoZXQpfHww''@;'; + put 'put ''O3ZhciBMdD1fdC5sZW5ndGgtZXQ7YXQ/KGF0PU51bWJlcihhdCkpPkx0JiYoYXQ9THQpOmF0PUx0O3ZhciBDdD10dC5sZW5ndGg7YXQ+Q3QvMiYmKGF0PUN0LzIpO2Zvcih2YXIgZnQ9MDtmdDxhdDsrK2Z0KXt2YXIgSHQ9cGFyc2VJbnQodHQuc3Vic3RyKDIqZnQsMiksMTYpO2lmKEJ0KEh0''@;'; + put 'put ''KSlyZXR1cm4gZnQ7X3RbZXQrZnRdPUh0fXJldHVybiBmdH1mdW5jdGlvbiBUZShfdCx0dCxldCxhdCl7cmV0dXJuIG10KGd0KHR0LF90Lmxlbmd0aC1ldCksX3QsZXQsYXQpfWZ1bmN0aW9uIEVlKF90LHR0LGV0LGF0KXtyZXR1cm4gbXQoZnVuY3Rpb24gd3QoX3Qpe2Zvcih2YXIgdHQ9W10s''@;'; + put 'put ''ZXQ9MDtldDxfdC5sZW5ndGg7KytldCl0dC5wdXNoKDI1NSZfdC5jaGFyQ29kZUF0KGV0KSk7cmV0dXJuIHR0fSh0dCksX3QsZXQsYXQpfWZ1bmN0aW9uIGhlKF90LHR0LGV0LGF0KXtyZXR1cm4gbXQoQXQodHQpLF90LGV0LGF0KX1mdW5jdGlvbiBPKF90LHR0LGV0LGF0KXtyZXR1cm4gbXQo''@;'; + put 'put ''ZnVuY3Rpb24gdnQoX3QsdHQpe2Zvcih2YXIgZXQsYXQsQ3Q9W10sZnQ9MDtmdDxfdC5sZW5ndGgmJiEoKHR0LT0yKTwwKTsrK2Z0KWF0PShldD1fdC5jaGFyQ29kZUF0KGZ0KSk+PjgsQ3QucHVzaChldCUyNTYpLEN0LnB1c2goYXQpO3JldHVybiBDdH0odHQsX3QubGVuZ3RoLWV0KSxfdCxl''@;'; + put 'put ''dCxhdCl9ZnVuY3Rpb24geihfdCx0dCxldCl7cmV0dXJuIG1lLmZyb21CeXRlQXJyYXkoMD09PXR0JiZldD09PV90Lmxlbmd0aD9fdDpfdC5zbGljZSh0dCxldCkpfWZ1bmN0aW9uIG5lKF90LHR0LGV0KXtldD1NYXRoLm1pbihfdC5sZW5ndGgsZXQpO2Zvcih2YXIgYXQ9W10sTHQ9dHQ7THQ8''@;'; + put 'put ''ZXQ7KXt2YXIgR2UsVWUseXQsanQsQ3Q9X3RbTHRdLGZ0PW51bGwsSHQ9Q3Q+MjM5PzQ6Q3Q+MjIzPzM6Q3Q+MTkxPzI6MTtpZihMdCtIdDw9ZXQpc3dpdGNoKEh0KXtjYXNlIDE6Q3Q8MTI4JiYoZnQ9Q3QpO2JyZWFrO2Nhc2UgMjoxMjg9PSgxOTImKEdlPV90W0x0KzFdKSkmJihqdD0oMzEm''@;'; + put 'put ''Q3QpPDw2fDYzJkdlKT4xMjcmJihmdD1qdCk7YnJlYWs7Y2FzZSAzOlVlPV90W0x0KzJdLDEyOD09KDE5MiYoR2U9X3RbTHQrMV0pKSYmMTI4PT0oMTkyJlVlKSYmKGp0PSgxNSZDdCk8PDEyfCg2MyZHZSk8PDZ8NjMmVWUpPjIwNDcmJihqdDw1NTI5Nnx8anQ+NTczNDMpJiYoZnQ9anQpO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgNDpVZT1fdFtMdCsyXSx5dD1fdFtMdCszXSwxMjg9PSgxOTImKEdlPV90W0x0KzFdKSkmJjEyOD09KDE5MiZVZSkmJjEyOD09KDE5MiZ5dCkmJihqdD0oMTUmQ3QpPDwxOHwoNjMmR2UpPDwxMnwoNjMmVWUpPDw2fDYzJnl0KT42NTUzNSYmanQ8MTExNDExMiYmKGZ0PWp0KX1u''@;'; + put 'put ''dWxsPT09ZnQ/KGZ0PTY1NTMzLEh0PTEpOmZ0PjY1NTM1JiYoYXQucHVzaCgoZnQtPTY1NTM2KT4+PjEwJjEwMjN8NTUyOTYpLGZ0PTU2MzIwfDEwMjMmZnQpLGF0LnB1c2goZnQpLEx0Kz1IdH1yZXR1cm4gZnVuY3Rpb24geChfdCl7dmFyIHR0PV90Lmxlbmd0aDtpZih0dDw9NDA5NilyZXR1''@;'; + put 'put ''cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsX3QpO2Zvcih2YXIgZXQ9IiIsYXQ9MDthdDx0dDspZXQrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLF90LnNsaWNlKGF0LGF0Kz00MDk2KSk7cmV0dXJuIGV0fShhdCl9ZnVuY3Rpb24gUChfdCx0dCxldCl7dmFy''@;'; + put 'put ''IGF0PSIiO2V0PU1hdGgubWluKF90Lmxlbmd0aCxldCk7Zm9yKHZhciBMdD10dDtMdDxldDsrK0x0KWF0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEyNyZfdFtMdF0pO3JldHVybiBhdH1mdW5jdGlvbiBWKF90LHR0LGV0KXt2YXIgYXQ9IiI7ZXQ9TWF0aC5taW4oX3QubGVuZ3RoLGV0KTtmb3Io''@;'; + put 'put ''dmFyIEx0PXR0O0x0PGV0OysrTHQpYXQrPVN0cmluZy5mcm9tQ2hhckNvZGUoX3RbTHRdKTtyZXR1cm4gYXR9ZnVuY3Rpb24gVChfdCx0dCxldCl7dmFyIGF0PV90Lmxlbmd0aDsoIXR0fHx0dDwwKSYmKHR0PTApLCghZXR8fGV0PDB8fGV0PmF0KSYmKGV0PWF0KTtmb3IodmFyIEx0PSIiLEN0''@;'; + put 'put ''PXR0O0N0PGV0OysrQ3QpTHQrPW9uW190W0N0XV07cmV0dXJuIEx0fWZ1bmN0aW9uIFMoX3QsdHQsZXQpe2Zvcih2YXIgYXQ9X3Quc2xpY2UodHQsZXQpLEx0PSIiLEN0PTA7Q3Q8YXQubGVuZ3RoLTE7Q3QrPTIpTHQrPVN0cmluZy5mcm9tQ2hhckNvZGUoYXRbQ3RdKzI1NiphdFtDdCsxXSk7''@;'; + put 'put ''cmV0dXJuIEx0fWZ1bmN0aW9uIEYoX3QsdHQsZXQpe2lmKF90JTEhPTB8fF90PDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBpcyBub3QgdWludCIpO2lmKF90K3R0PmV0KXRocm93IG5ldyBSYW5nZUVycm9yKCJUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoIil9''@;'; + put 'put ''ZnVuY3Rpb24geWUoX3QsdHQsZXQsYXQsTHQsQ3Qpe2lmKCFaLmlzQnVmZmVyKF90KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYodHQ+THR8fHR0PEN0KXRocm93IG5ldyBSYW5nZUVycm9yKCcidmFsdWUiIGFy''@;'; + put 'put ''Z3VtZW50IGlzIG91dCBvZiBib3VuZHMnKTtpZihldCthdD5fdC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIENlKF90LHR0LGV0LGF0LEx0LEN0KXtpZihldCthdD5fdC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4''@;'; + put 'put ''IG91dCBvZiByYW5nZSIpO2lmKGV0PDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIERlKF90LHR0LGV0LGF0LEx0KXtyZXR1cm4gdHQ9K3R0LGV0Pj4+PTAsTHR8fENlKF90LDAsZXQsNCksQi53cml0ZShfdCx0dCxldCxhdCwyMyw0KSxldCs0''@;'; + put 'put ''fWZ1bmN0aW9uIFBlKF90LHR0LGV0LGF0LEx0KXtyZXR1cm4gdHQ9K3R0LGV0Pj4+PTAsTHR8fENlKF90LDAsZXQsOCksQi53cml0ZShfdCx0dCxldCxhdCw1Miw4KSxldCs4fUplLmtNYXhMZW5ndGg9TWUsIShaLlRZUEVEX0FSUkFZX1NVUFBPUlQ9ZnVuY3Rpb24gVSgpe3RyeXt2YXIgX3Q9''@;'; + put 'put ''bmV3IFVpbnQ4QXJyYXkoMSksdHQ9e2ZvbzpmdW5jdGlvbigpe3JldHVybiA0Mn19O3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YodHQsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihfdCx0dCksNDI9PT1fdC5mb28oKX1jYXRjaChldCl7cmV0dXJuITF9''@;'; + put 'put ''fSgpKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiYiZnVuY3Rpb24iPT10eXBlb2YgY29uc29sZS5lcnJvciYmY29uc29sZS5lcnJvcigiVGhpcyBicm93c2VyIGxhY2tzIHR5cGVkIGFycmF5IChVaW50OEFycmF5KSBzdXBwb3J0IHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGBidWZmZXJg''@;'; + put 'put ''IHY1LnguIFVzZSBgYnVmZmVyYCB2NC54IGlmIHlvdSByZXF1aXJlIG9sZCBicm93c2VyIHN1cHBvcnQuIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KFoucHJvdG90eXBlLCJwYXJlbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKFouaXNCdWZmZXIodGhpcykpcmV0dXJuIHRo''@;'; + put 'put ''aXMuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShaLnByb3RvdHlwZSwib2Zmc2V0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihaLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ5dGVPZmZzZXR9fSksWi5wb29sU2l6ZT04MTkyLFouZnJvbT1mdW5jdGlvbihf''@;'; + put 'put ''dCx0dCxldCl7cmV0dXJuIGllKF90LHR0LGV0KX0sT2JqZWN0LnNldFByb3RvdHlwZU9mKFoucHJvdG90eXBlLFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YoWixVaW50OEFycmF5KSxaLmFsbG9jPWZ1bmN0aW9uKF90LHR0LGV0KXtyZXR1cm4gZnVuY3Rpb24g''@;'; + put 'put ''WShfdCx0dCxldCl7cmV0dXJuIGxlKF90KSxfdDw9MD9RKF90KTp2b2lkIDAhPT10dD8ic3RyaW5nIj09dHlwZW9mIGV0P1EoX3QpLmZpbGwodHQsZXQpOlEoX3QpLmZpbGwodHQpOlEoX3QpfShfdCx0dCxldCl9LFouYWxsb2NVbnNhZmU9ZnVuY3Rpb24oX3Qpe3JldHVybiBXKF90KX0sWi5h''@;'; + put 'put ''bGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24oX3Qpe3JldHVybiBXKF90KX0sWi5pc0J1ZmZlcj1mdW5jdGlvbih0dCl7cmV0dXJuIG51bGwhPXR0JiYhMD09PXR0Ll9pc0J1ZmZlciYmdHQhPT1aLnByb3RvdHlwZX0sWi5jb21wYXJlPWZ1bmN0aW9uKHR0LGV0KXtpZihodCh0dCxVaW50OEFycmF5''@;'; + put 'put ''KSYmKHR0PVouZnJvbSh0dCx0dC5vZmZzZXQsdHQuYnl0ZUxlbmd0aCkpLGh0KGV0LFVpbnQ4QXJyYXkpJiYoZXQ9Wi5mcm9tKGV0LGV0Lm9mZnNldCxldC5ieXRlTGVuZ3RoKSksIVouaXNCdWZmZXIodHQpfHwhWi5pc0J1ZmZlcihldCkpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJidWYx''@;'; + put 'put ''IiwgImJ1ZjIiIGFyZ3VtZW50cyBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7aWYodHQ9PT1ldClyZXR1cm4gMDtmb3IodmFyIGF0PXR0Lmxlbmd0aCxMdD1ldC5sZW5ndGgsQ3Q9MCxmdD1NYXRoLm1pbihhdCxMdCk7Q3Q8ZnQ7KytDdClpZih0dFtDdF0hPT1l''@;'; + put 'put ''dFtDdF0pe2F0PXR0W0N0XSxMdD1ldFtDdF07YnJlYWt9cmV0dXJuIGF0PEx0Py0xOkx0PGF0PzE6MH0sWi5pc0VuY29kaW5nPWZ1bmN0aW9uKHR0KXtzd2l0Y2goU3RyaW5nKHR0KS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpj''@;'; + put 'put ''YXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LFouY29uY2F0PWZ1bmN0aW9uKHR0LGV0KXtpZighQXJyYXkuaXNBcnJheSh0dCkp''@;'; + put 'put ''dGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2lmKDA9PT10dC5sZW5ndGgpcmV0dXJuIFouYWxsb2MoMCk7dmFyIGF0O2lmKHZvaWQgMD09PWV0KWZvcihldD0wLGF0PTA7YXQ8dHQubGVuZ3RoOysrYXQpZXQrPXR0W2F0''@;'; + put 'put ''XS5sZW5ndGg7dmFyIEx0PVouYWxsb2NVbnNhZmUoZXQpLEN0PTA7Zm9yKGF0PTA7YXQ8dHQubGVuZ3RoOysrYXQpe3ZhciBmdD10dFthdF07aWYoaHQoZnQsVWludDhBcnJheSkpQ3QrZnQubGVuZ3RoPkx0Lmxlbmd0aD9aLmZyb20oZnQpLmNvcHkoTHQsQ3QpOlVpbnQ4QXJyYXkucHJvdG90''@;'; + put 'put ''eXBlLnNldC5jYWxsKEx0LGZ0LEN0KTtlbHNle2lmKCFaLmlzQnVmZmVyKGZ0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7ZnQuY29weShMdCxDdCl9Q3QrPWZ0Lmxlbmd0aH1yZXR1cm4gTHR9LFouYnl0ZUxlbmd0''@;'; + put 'put ''aD1kZSxaLnByb3RvdHlwZS5faXNCdWZmZXI9ITAsWi5wcm90b3R5cGUuc3dhcDE2PWZ1bmN0aW9uKCl7dmFyIHR0PXRoaXMubGVuZ3RoO2lmKHR0JTIhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi1iaXRzIik7Zm9yKHZhciBl''@;'; + put 'put ''dD0wO2V0PHR0O2V0Kz0yKUFlKHRoaXMsZXQsZXQrMSk7cmV0dXJuIHRoaXN9LFoucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe3ZhciB0dD10aGlzLmxlbmd0aDtpZih0dCU0IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzIt''@;'; + put 'put ''Yml0cyIpO2Zvcih2YXIgZXQ9MDtldDx0dDtldCs9NClBZSh0aGlzLGV0LGV0KzMpLEFlKHRoaXMsZXQrMSxldCsyKTtyZXR1cm4gdGhpc30sWi5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIHR0PXRoaXMubGVuZ3RoO2lmKHR0JTghPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1''@;'; + put 'put ''ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzIik7Zm9yKHZhciBldD0wO2V0PHR0O2V0Kz04KUFlKHRoaXMsZXQsZXQrNyksQWUodGhpcyxldCsxLGV0KzYpLEFlKHRoaXMsZXQrMixldCs1KSxBZSh0aGlzLGV0KzMsZXQrNCk7cmV0dXJuIHRoaXN9LFoucHJvdG90eXBl''@;'; + put 'put ''LnRvTG9jYWxlU3RyaW5nPVoucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHR0PXRoaXMubGVuZ3RoO3JldHVybiAwPT09dHQ/IiI6MD09PWFyZ3VtZW50cy5sZW5ndGg/bmUodGhpcywwLHR0KTp2ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFoucHJvdG90eXBlLmVxdWFscz1m''@;'; + put 'put ''dW5jdGlvbih0dCl7aWYoIVouaXNCdWZmZXIodHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIiKTtyZXR1cm4gdGhpcz09PXR0fHwwPT09Wi5jb21wYXJlKHRoaXMsdHQpfSxaLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7dmFyIHR0PSIiLGV0''@;'; + put 'put ''PUplLklOU1BFQ1RfTUFYX0JZVEVTO3JldHVybiB0dD10aGlzLnRvU3RyaW5nKCJoZXgiLDAsZXQpLnJlcGxhY2UoLyguezJ9KS9nLCIkMSAiKS50cmltKCksdGhpcy5sZW5ndGg+ZXQmJih0dCs9IiAuLi4gIiksIjxCdWZmZXIgIit0dCsiPiJ9LEUmJihaLnByb3RvdHlwZVtFXT1aLnByb3Rv''@;'; + put 'put ''dHlwZS5pbnNwZWN0KSxaLnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKHR0LGV0LGF0LEx0LEN0KXtpZihodCh0dCxVaW50OEFycmF5KSYmKHR0PVouZnJvbSh0dCx0dC5vZmZzZXQsdHQuYnl0ZUxlbmd0aCkpLCFaLmlzQnVmZmVyKHR0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInRh''@;'; + put 'put ''cmdldCIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheS4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiB0dCk7aWYodm9pZCAwPT09ZXQmJihldD0wKSx2b2lkIDA9PT1hdCYmKGF0PXR0P3R0Lmxlbmd0aDowKSx2b2lkIDA9PT1MdCYmKEx0PTApLHZvaWQg''@;'; + put 'put ''MD09PUN0JiYoQ3Q9dGhpcy5sZW5ndGgpLGV0PDB8fGF0PnR0Lmxlbmd0aHx8THQ8MHx8Q3Q+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm91dCBvZiByYW5nZSBpbmRleCIpO2lmKEx0Pj1DdCYmZXQ+PWF0KXJldHVybiAwO2lmKEx0Pj1DdClyZXR1cm4tMTtpZihldD49YXQp''@;'; + put 'put ''cmV0dXJuIDE7aWYodGhpcz09PXR0KXJldHVybiAwO2Zvcih2YXIgZnQ9KEN0Pj4+PTApLShMdD4+Pj0wKSxIdD0oYXQ+Pj49MCktKGV0Pj4+PTApLEdlPU1hdGgubWluKGZ0LEh0KSxVZT10aGlzLnNsaWNlKEx0LEN0KSx5dD10dC5zbGljZShldCxhdCksanQ9MDtqdDxHZTsrK2p0KWlmKFVl''@;'; + put 'put ''W2p0XSE9PXl0W2p0XSl7ZnQ9VWVbanRdLEh0PXl0W2p0XTticmVha31yZXR1cm4gZnQ8SHQ/LTE6SHQ8ZnQ/MTowfSxaLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0dCxldCxhdCl7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YodHQsZXQsYXQpfSxaLnByb3RvdHlwZS5pbmRleE9mPWZ1''@;'; + put 'put ''bmN0aW9uKHR0LGV0LGF0KXtyZXR1cm4ga2UodGhpcyx0dCxldCxhdCwhMCl9LFoucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKHR0LGV0LGF0KXtyZXR1cm4ga2UodGhpcyx0dCxldCxhdCwhMSl9LFoucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHR0LGV0LGF0LEx0KXtpZih2b2lk''@;'; + put 'put ''IDA9PT1ldClMdD0idXRmOCIsYXQ9dGhpcy5sZW5ndGgsZXQ9MDtlbHNlIGlmKHZvaWQgMD09PWF0JiYic3RyaW5nIj09dHlwZW9mIGV0KUx0PWV0LGF0PXRoaXMubGVuZ3RoLGV0PTA7ZWxzZXtpZighaXNGaW5pdGUoZXQpKXRocm93IG5ldyBFcnJvcigiQnVmZmVyLndyaXRlKHN0cmluZywg''@;'; + put 'put ''ZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQiKTtldD4+Pj0wLGlzRmluaXRlKGF0KT8oYXQ+Pj49MCx2b2lkIDA9PT1MdCYmKEx0PSJ1dGY4IikpOihMdD1hdCxhdD12b2lkIDApfXZhciBDdD10aGlzLmxlbmd0aC1ldDtpZigodm9pZCAwPT09YXR8''@;'; + put 'put ''fGF0PkN0KSYmKGF0PUN0KSx0dC5sZW5ndGg+MCYmKGF0PDB8fGV0PDApfHxldD50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMiKTtMdHx8KEx0PSJ1dGY4Iik7Zm9yKHZhciBmdD0hMTs7KXN3aXRjaChMdCl7''@;'; + put 'put ''Y2FzZSJoZXgiOnJldHVybiBJZSh0aGlzLHR0LGV0LGF0KTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBUZSh0aGlzLHR0LGV0LGF0KTtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBFZSh0aGlzLHR0LGV0LGF0KTtjYXNlImJhc2U2NCI6cmV0dXJu''@;'; + put 'put ''IGhlKHRoaXMsdHQsZXQsYXQpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gTyh0aGlzLHR0LGV0LGF0KTtkZWZhdWx0OmlmKGZ0KXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrTHQpO0x0PSgiIitMdCku''@;'; + put 'put ''dG9Mb3dlckNhc2UoKSxmdD0hMH19LFoucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX0sWi5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odHQsZXQpe3ZhciBh''@;'; + put 'put ''dD10aGlzLmxlbmd0aDsodHQ9fn50dCk8MD8odHQrPWF0KTwwJiYodHQ9MCk6dHQ+YXQmJih0dD1hdCksKGV0PXZvaWQgMD09PWV0P2F0On5+ZXQpPDA/KGV0Kz1hdCk8MCYmKGV0PTApOmV0PmF0JiYoZXQ9YXQpLGV0PHR0JiYoZXQ9dHQpO3ZhciBMdD10aGlzLnN1YmFycmF5KHR0LGV0KTty''@;'; + put 'put ''ZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKEx0LFoucHJvdG90eXBlKSxMdH0sWi5wcm90b3R5cGUucmVhZFVpbnRMRT1aLnByb3RvdHlwZS5yZWFkVUludExFPWZ1bmN0aW9uKHR0LGV0LGF0KXt0dD4+Pj0wLGV0Pj4+PTAsYXR8fEYodHQsZXQsdGhpcy5sZW5ndGgpO2Zvcih2YXIgTHQ9''@;'; + put 'put ''dGhpc1t0dF0sQ3Q9MSxmdD0wOysrZnQ8ZXQmJihDdCo9MjU2KTspTHQrPXRoaXNbdHQrZnRdKkN0O3JldHVybiBMdH0sWi5wcm90b3R5cGUucmVhZFVpbnRCRT1aLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKHR0LGV0LGF0KXt0dD4+Pj0wLGV0Pj4+PTAsYXR8fEYodHQsZXQsdGhp''@;'; + put 'put ''cy5sZW5ndGgpO2Zvcih2YXIgTHQ9dGhpc1t0dCstLWV0XSxDdD0xO2V0PjAmJihDdCo9MjU2KTspTHQrPXRoaXNbdHQrLS1ldF0qQ3Q7cmV0dXJuIEx0fSxaLnByb3RvdHlwZS5yZWFkVWludDg9Wi5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxl''@;'; + put 'put ''dHx8Rih0dCwxLHRoaXMubGVuZ3RoKSx0aGlzW3R0XX0sWi5wcm90b3R5cGUucmVhZFVpbnQxNkxFPVoucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbih0dCxldCl7cmV0dXJuIHR0Pj4+PTAsZXR8fEYodHQsMix0aGlzLmxlbmd0aCksdGhpc1t0dF18dGhpc1t0dCsxXTw8OH0sWi5w''@;'; + put 'put ''cm90b3R5cGUucmVhZFVpbnQxNkJFPVoucHJvdG90eXBlLnJlYWRVSW50MTZCRT1mdW5jdGlvbih0dCxldCl7cmV0dXJuIHR0Pj4+PTAsZXR8fEYodHQsMix0aGlzLmxlbmd0aCksdGhpc1t0dF08PDh8dGhpc1t0dCsxXX0sWi5wcm90b3R5cGUucmVhZFVpbnQzMkxFPVoucHJvdG90eXBlLnJl''@;'; + put 'put ''YWRVSW50MzJMRT1mdW5jdGlvbih0dCxldCl7cmV0dXJuIHR0Pj4+PTAsZXR8fEYodHQsNCx0aGlzLmxlbmd0aCksKHRoaXNbdHRdfHRoaXNbdHQrMV08PDh8dGhpc1t0dCsyXTw8MTYpKzE2Nzc3MjE2KnRoaXNbdHQrM119LFoucHJvdG90eXBlLnJlYWRVaW50MzJCRT1aLnByb3RvdHlwZS5y''@;'; + put 'put ''ZWFkVUludDMyQkU9ZnVuY3Rpb24odHQsZXQpe3JldHVybiB0dD4+Pj0wLGV0fHxGKHR0LDQsdGhpcy5sZW5ndGgpLDE2Nzc3MjE2KnRoaXNbdHRdKyh0aGlzW3R0KzFdPDwxNnx0aGlzW3R0KzJdPDw4fHRoaXNbdHQrM10pfSxaLnByb3RvdHlwZS5yZWFkSW50TEU9ZnVuY3Rpb24odHQsZXQs''@;'; + put 'put ''YXQpe3R0Pj4+PTAsZXQ+Pj49MCxhdHx8Rih0dCxldCx0aGlzLmxlbmd0aCk7Zm9yKHZhciBMdD10aGlzW3R0XSxDdD0xLGZ0PTA7KytmdDxldCYmKEN0Kj0yNTYpOylMdCs9dGhpc1t0dCtmdF0qQ3Q7cmV0dXJuIEx0Pj0oQ3QqPTEyOCkmJihMdC09TWF0aC5wb3coMiw4KmV0KSksTHR9LFou''@;'; + put 'put ''cHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbih0dCxldCxhdCl7dHQ+Pj49MCxldD4+Pj0wLGF0fHxGKHR0LGV0LHRoaXMubGVuZ3RoKTtmb3IodmFyIEx0PWV0LEN0PTEsZnQ9dGhpc1t0dCstLUx0XTtMdD4wJiYoQ3QqPTI1Nik7KWZ0Kz10aGlzW3R0Ky0tTHRdKkN0O3JldHVybiBmdD49''@;'; + put 'put ''KEN0Kj0xMjgpJiYoZnQtPU1hdGgucG93KDIsOCpldCkpLGZ0fSxaLnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbih0dCxldCl7cmV0dXJuIHR0Pj4+PTAsZXR8fEYodHQsMSx0aGlzLmxlbmd0aCksMTI4JnRoaXNbdHRdPy0xKigyNTUtdGhpc1t0dF0rMSk6dGhpc1t0dF19LFoucHJvdG90''@;'; + put 'put ''eXBlLnJlYWRJbnQxNkxFPWZ1bmN0aW9uKHR0LGV0KXt0dD4+Pj0wLGV0fHxGKHR0LDIsdGhpcy5sZW5ndGgpO3ZhciBhdD10aGlzW3R0XXx0aGlzW3R0KzFdPDw4O3JldHVybiAzMjc2OCZhdD80Mjk0OTAxNzYwfGF0OmF0fSxaLnByb3RvdHlwZS5yZWFkSW50MTZCRT1mdW5jdGlvbih0dCxl''@;'; + put 'put ''dCl7dHQ+Pj49MCxldHx8Rih0dCwyLHRoaXMubGVuZ3RoKTt2YXIgYXQ9dGhpc1t0dCsxXXx0aGlzW3R0XTw8ODtyZXR1cm4gMzI3NjgmYXQ/NDI5NDkwMTc2MHxhdDphdH0sWi5wcm90b3R5cGUucmVhZEludDMyTEU9ZnVuY3Rpb24odHQsZXQpe3JldHVybiB0dD4+Pj0wLGV0fHxGKHR0LDQs''@;'; + put 'put ''dGhpcy5sZW5ndGgpLHRoaXNbdHRdfHRoaXNbdHQrMV08PDh8dGhpc1t0dCsyXTw8MTZ8dGhpc1t0dCszXTw8MjR9LFoucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCw0LHRoaXMubGVuZ3RoKSx0aGlzW3R0XTw8MjR8dGhpc1t0''@;'; + put 'put ''dCsxXTw8MTZ8dGhpc1t0dCsyXTw8OHx0aGlzW3R0KzNdfSxaLnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbih0dCxldCl7cmV0dXJuIHR0Pj4+PTAsZXR8fEYodHQsNCx0aGlzLmxlbmd0aCksQi5yZWFkKHRoaXMsdHQsITAsMjMsNCl9LFoucHJvdG90eXBlLnJlYWRGbG9hdEJFPWZ1''@;'; + put 'put ''bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCw0LHRoaXMubGVuZ3RoKSxCLnJlYWQodGhpcyx0dCwhMSwyMyw0KX0sWi5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCw4LHRoaXMubGVuZ3RoKSxCLnJlYWQo''@;'; + put 'put ''dGhpcyx0dCwhMCw1Miw4KX0sWi5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCw4LHRoaXMubGVuZ3RoKSxCLnJlYWQodGhpcyx0dCwhMSw1Miw4KX0sWi5wcm90b3R5cGUud3JpdGVVaW50TEU9Wi5wcm90b3R5cGUud3JpdGVV''@;'; + put 'put ''SW50TEU9ZnVuY3Rpb24odHQsZXQsYXQsTHQpe3R0PSt0dCxldD4+Pj0wLGF0Pj4+PTAsTHR8fHllKHRoaXMsdHQsZXQsYXQsTWF0aC5wb3coMiw4KmF0KS0xLDApO3ZhciBmdD0xLEh0PTA7Zm9yKHRoaXNbZXRdPTI1NSZ0dDsrK0h0PGF0JiYoZnQqPTI1Nik7KXRoaXNbZXQrSHRdPXR0L2Z0''@;'; + put 'put ''JjI1NTtyZXR1cm4gZXQrYXR9LFoucHJvdG90eXBlLndyaXRlVWludEJFPVoucHJvdG90eXBlLndyaXRlVUludEJFPWZ1bmN0aW9uKHR0LGV0LGF0LEx0KXt0dD0rdHQsZXQ+Pj49MCxhdD4+Pj0wLEx0fHx5ZSh0aGlzLHR0LGV0LGF0LE1hdGgucG93KDIsOCphdCktMSwwKTt2YXIgZnQ9YXQt''@;'; + put 'put ''MSxIdD0xO2Zvcih0aGlzW2V0K2Z0XT0yNTUmdHQ7LS1mdD49MCYmKEh0Kj0yNTYpOyl0aGlzW2V0K2Z0XT10dC9IdCYyNTU7cmV0dXJuIGV0K2F0fSxaLnByb3RvdHlwZS53cml0ZVVpbnQ4PVoucHJvdG90eXBlLndyaXRlVUludDg9ZnVuY3Rpb24odHQsZXQsYXQpe3JldHVybiB0dD0rdHQs''@;'; + put 'put ''ZXQ+Pj49MCxhdHx8eWUodGhpcyx0dCxldCwxLDI1NSwwKSx0aGlzW2V0XT0yNTUmdHQsZXQrMX0sWi5wcm90b3R5cGUud3JpdGVVaW50MTZMRT1aLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uKHR0LGV0LGF0KXtyZXR1cm4gdHQ9K3R0LGV0Pj4+PTAsYXR8fHllKHRoaXMsdHQs''@;'; + put 'put ''ZXQsMiw2NTUzNSwwKSx0aGlzW2V0XT0yNTUmdHQsdGhpc1tldCsxXT10dD4+PjgsZXQrMn0sWi5wcm90b3R5cGUud3JpdGVVaW50MTZCRT1aLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFPWZ1bmN0aW9uKHR0LGV0LGF0KXtyZXR1cm4gdHQ9K3R0LGV0Pj4+PTAsYXR8fHllKHRoaXMsdHQsZXQs''@;'; + put 'put ''Miw2NTUzNSwwKSx0aGlzW2V0XT10dD4+PjgsdGhpc1tldCsxXT0yNTUmdHQsZXQrMn0sWi5wcm90b3R5cGUud3JpdGVVaW50MzJMRT1aLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFPWZ1bmN0aW9uKHR0LGV0LGF0KXtyZXR1cm4gdHQ9K3R0LGV0Pj4+PTAsYXR8fHllKHRoaXMsdHQsZXQsNCw0''@;'; + put 'put ''Mjk0OTY3Mjk1LDApLHRoaXNbZXQrM109dHQ+Pj4yNCx0aGlzW2V0KzJdPXR0Pj4+MTYsdGhpc1tldCsxXT10dD4+PjgsdGhpc1tldF09MjU1JnR0LGV0KzR9LFoucHJvdG90eXBlLndyaXRlVWludDMyQkU9Wi5wcm90b3R5cGUud3JpdGVVSW50MzJCRT1mdW5jdGlvbih0dCxldCxhdCl7cmV0''@;'; + put 'put ''dXJuIHR0PSt0dCxldD4+Pj0wLGF0fHx5ZSh0aGlzLHR0LGV0LDQsNDI5NDk2NzI5NSwwKSx0aGlzW2V0XT10dD4+PjI0LHRoaXNbZXQrMV09dHQ+Pj4xNix0aGlzW2V0KzJdPXR0Pj4+OCx0aGlzW2V0KzNdPTI1NSZ0dCxldCs0fSxaLnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKHR0''@;'; + put 'put ''LGV0LGF0LEx0KXtpZih0dD0rdHQsZXQ+Pj49MCwhTHQpe3ZhciBDdD1NYXRoLnBvdygyLDgqYXQtMSk7eWUodGhpcyx0dCxldCxhdCxDdC0xLC1DdCl9dmFyIGZ0PTAsSHQ9MSxHZT0wO2Zvcih0aGlzW2V0XT0yNTUmdHQ7KytmdDxhdCYmKEh0Kj0yNTYpOyl0dDwwJiYwPT09R2UmJjAhPT10''@;'; + put 'put ''aGlzW2V0K2Z0LTFdJiYoR2U9MSksdGhpc1tldCtmdF09KHR0L0h0Pj4wKS1HZSYyNTU7cmV0dXJuIGV0K2F0fSxaLnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9uKHR0LGV0LGF0LEx0KXtpZih0dD0rdHQsZXQ+Pj49MCwhTHQpe3ZhciBDdD1NYXRoLnBvdygyLDgqYXQtMSk7eWUodGhp''@;'; + put 'put ''cyx0dCxldCxhdCxDdC0xLC1DdCl9dmFyIGZ0PWF0LTEsSHQ9MSxHZT0wO2Zvcih0aGlzW2V0K2Z0XT0yNTUmdHQ7LS1mdD49MCYmKEh0Kj0yNTYpOyl0dDwwJiYwPT09R2UmJjAhPT10aGlzW2V0K2Z0KzFdJiYoR2U9MSksdGhpc1tldCtmdF09KHR0L0h0Pj4wKS1HZSYyNTU7cmV0dXJuIGV0''@;'; + put 'put ''K2F0fSxaLnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24odHQsZXQsYXQpe3JldHVybiB0dD0rdHQsZXQ+Pj49MCxhdHx8eWUodGhpcyx0dCxldCwxLDEyNywtMTI4KSx0dDwwJiYodHQ9MjU1K3R0KzEpLHRoaXNbZXRdPTI1NSZ0dCxldCsxfSxaLnByb3RvdHlwZS53cml0ZUludDE2TEU9''@;'; + put 'put ''ZnVuY3Rpb24odHQsZXQsYXQpe3JldHVybiB0dD0rdHQsZXQ+Pj49MCxhdHx8eWUodGhpcyx0dCxldCwyLDMyNzY3LC0zMjc2OCksdGhpc1tldF09MjU1JnR0LHRoaXNbZXQrMV09dHQ+Pj44LGV0KzJ9LFoucHJvdG90eXBlLndyaXRlSW50MTZCRT1mdW5jdGlvbih0dCxldCxhdCl7cmV0dXJu''@;'; + put 'put ''IHR0PSt0dCxldD4+Pj0wLGF0fHx5ZSh0aGlzLHR0LGV0LDIsMzI3NjcsLTMyNzY4KSx0aGlzW2V0XT10dD4+PjgsdGhpc1tldCsxXT0yNTUmdHQsZXQrMn0sWi5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uKHR0LGV0LGF0KXtyZXR1cm4gdHQ9K3R0LGV0Pj4+PTAsYXR8fHllKHRo''@;'; + put 'put ''aXMsdHQsZXQsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW2V0XT0yNTUmdHQsdGhpc1tldCsxXT10dD4+PjgsdGhpc1tldCsyXT10dD4+PjE2LHRoaXNbZXQrM109dHQ+Pj4yNCxldCs0fSxaLnByb3RvdHlwZS53cml0ZUludDMyQkU9ZnVuY3Rpb24odHQsZXQsYXQpe3JldHVybiB0''@;'; + put 'put ''dD0rdHQsZXQ+Pj49MCxhdHx8eWUodGhpcyx0dCxldCw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHR0PDAmJih0dD00Mjk0OTY3Mjk1K3R0KzEpLHRoaXNbZXRdPXR0Pj4+MjQsdGhpc1tldCsxXT10dD4+PjE2LHRoaXNbZXQrMl09dHQ+Pj44LHRoaXNbZXQrM109MjU1JnR0LGV0KzR9LFou''@;'; + put 'put ''cHJvdG90eXBlLndyaXRlRmxvYXRMRT1mdW5jdGlvbih0dCxldCxhdCl7cmV0dXJuIERlKHRoaXMsdHQsZXQsITAsYXQpfSxaLnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24odHQsZXQsYXQpe3JldHVybiBEZSh0aGlzLHR0LGV0LCExLGF0KX0sWi5wcm90b3R5cGUud3JpdGVEb3Vi''@;'; + put 'put ''bGVMRT1mdW5jdGlvbih0dCxldCxhdCl7cmV0dXJuIFBlKHRoaXMsdHQsZXQsITAsYXQpfSxaLnByb3RvdHlwZS53cml0ZURvdWJsZUJFPWZ1bmN0aW9uKHR0LGV0LGF0KXtyZXR1cm4gUGUodGhpcyx0dCxldCwhMSxhdCl9LFoucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24odHQsZXQsYXQsTHQp''@;'; + put 'put ''e2lmKCFaLmlzQnVmZmVyKHR0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhcmd1bWVudCBzaG91bGQgYmUgYSBCdWZmZXIiKTtpZihhdHx8KGF0PTApLCFMdCYmMCE9PUx0JiYoTHQ9dGhpcy5sZW5ndGgpLGV0Pj10dC5sZW5ndGgmJihldD10dC5sZW5ndGgpLGV0fHwoZXQ9MCksTHQ+MCYmTHQ8''@;'; + put 'put ''YXQmJihMdD1hdCksTHQ9PT1hdHx8MD09PXR0Lmxlbmd0aHx8MD09PXRoaXMubGVuZ3RoKXJldHVybiAwO2lmKGV0PDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInRhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMiKTtpZihhdDwwfHxhdD49dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3Io''@;'; + put 'put ''IkluZGV4IG91dCBvZiByYW5nZSIpO2lmKEx0PDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInNvdXJjZUVuZCBvdXQgb2YgYm91bmRzIik7THQ+dGhpcy5sZW5ndGgmJihMdD10aGlzLmxlbmd0aCksdHQubGVuZ3RoLWV0PEx0LWF0JiYoTHQ9dHQubGVuZ3RoLWV0K2F0KTt2YXIgQ3Q9THQtYXQ7''@;'; + put 'put ''cmV0dXJuIHRoaXM9PT10dCYmImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4/dGhpcy5jb3B5V2l0aGluKGV0LGF0LEx0KTpVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbCh0dCx0aGlzLnN1YmFycmF5KGF0LEx0KSxldCksQ3R9LFoucHJvdG90''@;'; + put 'put ''eXBlLmZpbGw9ZnVuY3Rpb24odHQsZXQsYXQsTHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZXQ/KEx0PWV0LGV0PTAsYXQ9dGhpcy5sZW5ndGgpOiJzdHJpbmciPT10eXBlb2YgYXQmJihMdD1hdCxhdD10aGlzLmxlbmd0aCksdm9pZCAwIT09THQmJiJz''@;'; + put 'put ''dHJpbmciIT10eXBlb2YgTHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZyIpO2lmKCJzdHJpbmciPT10eXBlb2YgTHQmJiFaLmlzRW5jb2RpbmcoTHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrTHQpO2lmKDE9PT10dC5s''@;'; + put 'put ''ZW5ndGgpe3ZhciBDdD10dC5jaGFyQ29kZUF0KDApOygidXRmOCI9PT1MdCYmQ3Q8MTI4fHwibGF0aW4xIj09PUx0KSYmKHR0PUN0KX19ZWxzZSJudW1iZXIiPT10eXBlb2YgdHQ/dHQmPTI1NToiYm9vbGVhbiI9PXR5cGVvZiB0dCYmKHR0PU51bWJlcih0dCkpO2lmKGV0PDB8fHRoaXMubGVu''@;'; + put 'put ''Z3RoPGV0fHx0aGlzLmxlbmd0aDxhdCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiT3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoYXQ8PWV0KXJldHVybiB0aGlzO3ZhciBmdDtpZihldD4+Pj0wLGF0PXZvaWQgMD09PWF0P3RoaXMubGVuZ3RoOmF0Pj4+MCx0dHx8KHR0PTApLCJudW1iZXIiPT10eXBl''@;'; + put 'put ''b2YgdHQpZm9yKGZ0PWV0O2Z0PGF0OysrZnQpdGhpc1tmdF09dHQ7ZWxzZXt2YXIgSHQ9Wi5pc0J1ZmZlcih0dCk/dHQ6Wi5mcm9tKHR0LEx0KSxHZT1IdC5sZW5ndGg7aWYoMD09PUdlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSB2YWx1ZSAiJyt0dCsnIiBpcyBpbnZhbGlkIGZvciBhcmd1''@;'; + put 'put ''bWVudCAidmFsdWUiJyk7Zm9yKGZ0PTA7ZnQ8YXQtZXQ7KytmdCl0aGlzW2Z0K2V0XT1IdFtmdCVHZV19cmV0dXJuIHRoaXN9O3ZhciBRZT0vW14rLzAtOUEtWmEtei1fXS9nO2Z1bmN0aW9uIGd0KF90LHR0KXt0dD10dHx8MS8wO2Zvcih2YXIgZXQsYXQ9X3QubGVuZ3RoLEx0PW51bGwsQ3Q9''@;'; + put 'put ''W10sZnQ9MDtmdDxhdDsrK2Z0KXtpZigoZXQ9X3QuY2hhckNvZGVBdChmdCkpPjU1Mjk1JiZldDw1NzM0NCl7aWYoIUx0KXtpZihldD41NjMxOSl7KHR0LT0zKT4tMSYmQ3QucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aWYoZnQrMT09PWF0KXsodHQtPTMpPi0xJiZDdC5wdXNoKDIzOSwx''@;'; + put 'put ''OTEsMTg5KTtjb250aW51ZX1MdD1ldDtjb250aW51ZX1pZihldDw1NjMyMCl7KHR0LT0zKT4tMSYmQ3QucHVzaCgyMzksMTkxLDE4OSksTHQ9ZXQ7Y29udGludWV9ZXQ9NjU1MzYrKEx0LTU1Mjk2PDwxMHxldC01NjMyMCl9ZWxzZSBMdCYmKHR0LT0zKT4tMSYmQ3QucHVzaCgyMzksMTkxLDE4''@;'; + put 'put ''OSk7aWYoTHQ9bnVsbCxldDwxMjgpe2lmKCh0dC09MSk8MClicmVhaztDdC5wdXNoKGV0KX1lbHNlIGlmKGV0PDIwNDgpe2lmKCh0dC09Mik8MClicmVhaztDdC5wdXNoKGV0Pj42fDE5Miw2MyZldHwxMjgpfWVsc2UgaWYoZXQ8NjU1MzYpe2lmKCh0dC09Myk8MClicmVhaztDdC5wdXNoKGV0''@;'; + put 'put ''Pj4xMnwyMjQsZXQ+PjYmNjN8MTI4LDYzJmV0fDEyOCl9ZWxzZXtpZighKGV0PDExMTQxMTIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2RlIHBvaW50Iik7aWYoKHR0LT00KTwwKWJyZWFrO0N0LnB1c2goZXQ+PjE4fDI0MCxldD4+MTImNjN8MTI4LGV0Pj42JjYzfDEyOCw2MyZldHwx''@;'; + put 'put ''MjgpfX1yZXR1cm4gQ3R9ZnVuY3Rpb24gQXQoX3Qpe3JldHVybiBtZS50b0J5dGVBcnJheShmdW5jdGlvbiAkZShfdCl7aWYoKF90PShfdD1fdC5zcGxpdCgiPSIpWzBdKS50cmltKCkucmVwbGFjZShRZSwiIikpLmxlbmd0aDwyKXJldHVybiIiO2Zvcig7X3QubGVuZ3RoJTQhPTA7KV90Kz0i''@;'; + put 'put ''PSI7cmV0dXJuIF90fShfdCkpfWZ1bmN0aW9uIG10KF90LHR0LGV0LGF0KXtmb3IodmFyIEx0PTA7THQ8YXQmJiEoTHQrZXQ+PXR0Lmxlbmd0aHx8THQ+PV90Lmxlbmd0aCk7KytMdCl0dFtMdCtldF09X3RbTHRdO3JldHVybiBMdH1mdW5jdGlvbiBodChfdCx0dCl7cmV0dXJuIF90IGluc3Rh''@;'; + put 'put ''bmNlb2YgdHR8fG51bGwhPV90JiZudWxsIT1fdC5jb25zdHJ1Y3RvciYmbnVsbCE9X3QuY29uc3RydWN0b3IubmFtZSYmX3QuY29uc3RydWN0b3IubmFtZT09PXR0Lm5hbWV9ZnVuY3Rpb24gQnQoX3Qpe3JldHVybiBfdCE9X3R9dmFyIG9uPWZ1bmN0aW9uKCl7Zm9yKHZhciBfdD0iMDEyMzQ1''@;'; + put 'put ''Njc4OWFiY2RlZiIsdHQ9bmV3IEFycmF5KDI1NiksZXQ9MDtldDwxNjsrK2V0KWZvcih2YXIgYXQ9MTYqZXQsTHQ9MDtMdDwxNjsrK0x0KXR0W2F0K0x0XT1fdFtldF0rX3RbTHRdO3JldHVybiB0dH0oKX0sNjEwNTI6KFhlLEplLEwpPT57dmFyIG1lPUwoNzM1MDIpLkJ1ZmZlcixCPUwoMjk1''@;'; + put 'put ''KS5UcmFuc2Zvcm0sRT1MKDczMDU0KS5zO2Z1bmN0aW9uIFUoUSl7Qi5jYWxsKHRoaXMpLHRoaXMuaGFzaE1vZGU9InN0cmluZyI9PXR5cGVvZiBRLHRoaXMuaGFzaE1vZGU/dGhpc1tRXT10aGlzLl9maW5hbE9yRGlnZXN0OnRoaXMuZmluYWw9dGhpcy5fZmluYWxPckRpZ2VzdCx0aGlzLl9m''@;'; + put 'put ''aW5hbCYmKHRoaXMuX19maW5hbD10aGlzLl9maW5hbCx0aGlzLl9maW5hbD1udWxsKSx0aGlzLl9kZWNvZGVyPW51bGwsdGhpcy5fZW5jb2Rpbmc9bnVsbH1MKDgzODk0KShVLEIpLFUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihRLFosaWUpeyJzdHJpbmciPT10eXBlb2YgUSYmKFE9bWUu''@;'; + put 'put ''ZnJvbShRLFopKTt2YXIgbGU9dGhpcy5fdXBkYXRlKFEpO3JldHVybiB0aGlzLmhhc2hNb2RlP3RoaXM6KGllJiYobGU9dGhpcy5fdG9TdHJpbmcobGUsaWUpKSxsZSl9LFUucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nPWZ1bmN0aW9uKCl7fSxVLnByb3RvdHlwZS5nZXRBdXRoVGFnPWZ1bmN0''@;'; + put 'put ''aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gZ2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIil9LFUucHJvdG90eXBlLnNldEF1dGhUYWc9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBzZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUi''@;'; + put 'put ''KX0sVS5wcm90b3R5cGUuc2V0QUFEPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gc2V0IGFhZCBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSxVLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKFEsWixpZSl7dmFyIGxlO3RyeXt0aGlzLmhhc2hNb2RlP3RoaXMuX3Vw''@;'; + put 'put ''ZGF0ZShRKTp0aGlzLnB1c2godGhpcy5fdXBkYXRlKFEpKX1jYXRjaChZKXtsZT1ZfWZpbmFsbHl7aWUobGUpfX0sVS5wcm90b3R5cGUuX2ZsdXNoPWZ1bmN0aW9uKFEpe3ZhciBaO3RyeXt0aGlzLnB1c2godGhpcy5fX2ZpbmFsKCkpfWNhdGNoKGllKXtaPWllfVEoWil9LFUucHJvdG90eXBl''@;'; + put 'put ''Ll9maW5hbE9yRGlnZXN0PWZ1bmN0aW9uKFEpe3ZhciBaPXRoaXMuX19maW5hbCgpfHxtZS5hbGxvYygwKTtyZXR1cm4gUSYmKFo9dGhpcy5fdG9TdHJpbmcoWixRLCEwKSksWn0sVS5wcm90b3R5cGUuX3RvU3RyaW5nPWZ1bmN0aW9uKFEsWixpZSl7aWYodGhpcy5fZGVjb2Rlcnx8KHRoaXMu''@;'; + put 'put ''X2RlY29kZXI9bmV3IEUoWiksdGhpcy5fZW5jb2Rpbmc9WiksdGhpcy5fZW5jb2RpbmchPT1aKXRocm93IG5ldyBFcnJvcigiY2FuJ3Qgc3dpdGNoIGVuY29kaW5ncyIpO3ZhciBsZT10aGlzLl9kZWNvZGVyLndyaXRlKFEpO3JldHVybiBpZSYmKGxlKz10aGlzLl9kZWNvZGVyLmVuZCgpKSxs''@;'; + put 'put ''ZX0sWGUuZXhwb3J0cz1VfSw3NDc0NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NzcxNSksQj1MKDQ2NDIyKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFope3JldHVybiBuZXcgTWUoWil9O3ZhciBFPXtzZWNwMjU2azE6e25hbWU6InNlY3AyNTZrMSIsYnl0ZUxlbmd0aDozMn0sc2VjcDIyNHIxOntu''@;'; + put 'put ''YW1lOiJwMjI0IixieXRlTGVuZ3RoOjI4fSxwcmltZTI1NnYxOntuYW1lOiJwMjU2IixieXRlTGVuZ3RoOjMyfSxwcmltZTE5MnYxOntuYW1lOiJwMTkyIixieXRlTGVuZ3RoOjI0fSxlZDI1NTE5OntuYW1lOiJlZDI1NTE5IixieXRlTGVuZ3RoOjMyfSxzZWNwMzg0cjE6e25hbWU6InAzODQi''@;'; + put 'put ''LGJ5dGVMZW5ndGg6NDh9LHNlY3A1MjFyMTp7bmFtZToicDUyMSIsYnl0ZUxlbmd0aDo2Nn19O2Z1bmN0aW9uIE1lKFEpe3RoaXMuY3VydmVUeXBlPUVbUV0sdGhpcy5jdXJ2ZVR5cGV8fCh0aGlzLmN1cnZlVHlwZT17bmFtZTpRfSksdGhpcy5jdXJ2ZT1uZXcgbWUuZWModGhpcy5jdXJ2ZVR5''@;'; + put 'put ''cGUubmFtZSksdGhpcy5rZXlzPXZvaWQgMH1mdW5jdGlvbiBVKFEsWixpZSl7QXJyYXkuaXNBcnJheShRKXx8KFE9US50b0FycmF5KCkpO3ZhciBsZT1uZXcgQnVmZmVyKFEpO2lmKGllJiZsZS5sZW5ndGg8aWUpe3ZhciBZPW5ldyBCdWZmZXIoaWUtbGUubGVuZ3RoKTtZLmZpbGwoMCksbGU9''@;'; + put 'put ''QnVmZmVyLmNvbmNhdChbWSxsZV0pfXJldHVybiBaP2xlLnRvU3RyaW5nKFopOmxlfUUucDIyND1FLnNlY3AyMjRyMSxFLnAyNTY9RS5zZWNwMjU2cjE9RS5wcmltZTI1NnYxLEUucDE5Mj1FLnNlY3AxOTJyMT1FLnByaW1lMTkydjEsRS5wMzg0PUUuc2VjcDM4NHIxLEUucDUyMT1FLnNlY3A1''@;'; + put 'put ''MjFyMSxNZS5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzPWZ1bmN0aW9uKFEsWil7cmV0dXJuIHRoaXMua2V5cz10aGlzLmN1cnZlLmdlbktleVBhaXIoKSx0aGlzLmdldFB1YmxpY0tleShRLFopfSxNZS5wcm90b3R5cGUuY29tcHV0ZVNlY3JldD1mdW5jdGlvbihRLFosaWUpe3JldHVybiBaPVp8''@;'; + put 'put ''fCJ1dGY4IixCdWZmZXIuaXNCdWZmZXIoUSl8fChRPW5ldyBCdWZmZXIoUSxaKSksVSh0aGlzLmN1cnZlLmtleUZyb21QdWJsaWMoUSkuZ2V0UHVibGljKCkubXVsKHRoaXMua2V5cy5nZXRQcml2YXRlKCkpLmdldFgoKSxpZSx0aGlzLmN1cnZlVHlwZS5ieXRlTGVuZ3RoKX0sTWUucHJvdG90''@;'; + put 'put ''eXBlLmdldFB1YmxpY0tleT1mdW5jdGlvbihRLFope3ZhciBpZT10aGlzLmtleXMuZ2V0UHVibGljKCJjb21wcmVzc2VkIj09PVosITApO3JldHVybiJoeWJyaWQiPT09WiYmKGllWzBdPWllW2llLmxlbmd0aC0xXSUyPzc6NiksVShpZSxRKX0sTWUucHJvdG90eXBlLmdldFByaXZhdGVLZXk9''@;'; + put 'put ''ZnVuY3Rpb24oUSl7cmV0dXJuIFUodGhpcy5rZXlzLmdldFByaXZhdGUoKSxRKX0sTWUucHJvdG90eXBlLnNldFB1YmxpY0tleT1mdW5jdGlvbihRLFope3JldHVybiBaPVp8fCJ1dGY4IixCdWZmZXIuaXNCdWZmZXIoUSl8fChRPW5ldyBCdWZmZXIoUSxaKSksdGhpcy5rZXlzLl9pbXBvcnRQ''@;'; + put 'put ''dWJsaWMoUSksdGhpc30sTWUucHJvdG90eXBlLnNldFByaXZhdGVLZXk9ZnVuY3Rpb24oUSxaKXtaPVp8fCJ1dGY4IixCdWZmZXIuaXNCdWZmZXIoUSl8fChRPW5ldyBCdWZmZXIoUSxaKSk7dmFyIGllPW5ldyBCKFEpO3JldHVybiBpZT1pZS50b1N0cmluZygxNiksdGhpcy5rZXlzPXRoaXMu''@;'; + put 'put ''Y3VydmUuZ2VuS2V5UGFpcigpLHRoaXMua2V5cy5faW1wb3J0UHJpdmF0ZShpZSksdGhpc319LDQ2NDIyOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSxCKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShoZSxPKXtpZighaGUpdGhyb3cgbmV3IEVycm9yKE98fCJBc3NlcnRpb24gZmFp''@;'; + put 'put ''bGVkIil9ZnVuY3Rpb24gTWUoaGUsTyl7aGUuc3VwZXJfPU87dmFyIHo9ZnVuY3Rpb24oKXt9O3oucHJvdG90eXBlPU8ucHJvdG90eXBlLGhlLnByb3RvdHlwZT1uZXcgeixoZS5wcm90b3R5cGUuY29uc3RydWN0b3I9aGV9ZnVuY3Rpb24gVShoZSxPLHope2lmKFUuaXNCTihoZSkpcmV0dXJu''@;'; + put 'put ''IGhlO3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT1oZSYmKCgibGUiPT09T3x8ImJlIj09PU8pJiYoej1PLE89MTApLHRoaXMuX2luaXQoaGV8fDAsT3x8MTAsenx8ImJlIikpfXZhciBROyJvYmplY3QiPT10eXBlb2Yg''@;'; + put 'put ''bWU/bWUuZXhwb3J0cz1VOkIuQk49VSxVLkJOPVUsVS53b3JkU2l6ZT0yNjt0cnl7UT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOkwoODYyMykuQnVmZmVyfWNhdGNoKGhlKXt9ZnVuY3Rpb24gWihoZSxPKXt2YXIgej1o''@;'; + put 'put ''ZS5jaGFyQ29kZUF0KE8pO3JldHVybiB6Pj02NSYmejw9NzA/ei01NTp6Pj05NyYmejw9MTAyP3otODc6ei00OCYxNX1mdW5jdGlvbiBpZShoZSxPLHope3ZhciBuZT1aKGhlLHopO3JldHVybiB6LTE+PU8mJihuZXw9WihoZSx6LTEpPDw0KSxuZX1mdW5jdGlvbiBsZShoZSxPLHosbmUpe2Zv''@;'; + put 'put ''cih2YXIgdGU9MCx4PU1hdGgubWluKGhlLmxlbmd0aCx6KSxQPU87UDx4O1ArKyl7dmFyIFY9aGUuY2hhckNvZGVBdChQKS00ODt0ZSo9bmUsdGUrPVY+PTQ5P1YtNDkrMTA6Vj49MTc/Vi0xNysxMDpWfXJldHVybiB0ZX1VLmlzQk49ZnVuY3Rpb24oTyl7cmV0dXJuIE8gaW5zdGFuY2VvZiBV''@;'; + put 'put ''fHxudWxsIT09TyYmIm9iamVjdCI9PXR5cGVvZiBPJiZPLmNvbnN0cnVjdG9yLndvcmRTaXplPT09VS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShPLndvcmRzKX0sVS5tYXg9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik+MD9POnp9LFUubWluPWZ1bmN0aW9uKE8seil7cmV0dXJuIE8u''@;'; + put 'put ''Y21wKHopPDA/Tzp6fSxVLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihPLHosbmUpe2lmKCJudW1iZXIiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihPLHosbmUpO2lmKCJvYmplY3QiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdEFycmF5KE8seixuZSk7ImhleCI9PT16''@;'; + put 'put ''JiYoej0xNiksRSh6PT09KDB8eikmJno+PTImJno8PTM2KTt2YXIgdGU9MDsiLSI9PT0oTz1PLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKHRlKyssdGhpcy5uZWdhdGl2ZT0xKSx0ZTxPLmxlbmd0aCYmKDE2PT09ej90aGlzLl9wYXJzZUhleChPLHRlLG5lKToodGhpcy5f''@;'; + put 'put ''cGFyc2VCYXNlKE8seix0ZSksImxlIj09PW5lJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixuZSkpKX0sVS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oTyx6LG5lKXtPPDAmJih0aGlzLm5lZ2F0aXZlPTEsTz0tTyksTzw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcx''@;'; + put 'put ''MDg4NjMmT10sdGhpcy5sZW5ndGg9MSk6Tzw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihFKE88OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmTyxPLzY3MTA4ODY0JjY3MTA4''@;'; + put 'put ''ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1uZSYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHosbmUpfSxVLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKE8seixuZSl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8ubGVuZ3RoKSxPLmxlbmd0aDw9MClyZXR1cm4gdGhp''@;'; + put 'put ''cy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChPLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB0ZT0wO3RlPHRoaXMubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09MDt2YXIgeCxQLFY9MDtpZigi''@;'; + put 'put ''YmUiPT09bmUpZm9yKHRlPU8ubGVuZ3RoLTEseD0wO3RlPj0wO3RlLT0zKXRoaXMud29yZHNbeF18PShQPU9bdGVdfE9bdGUtMV08PDh8T1t0ZS0yXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7ZWxz''@;'; + put 'put ''ZSBpZigibGUiPT09bmUpZm9yKHRlPTAseD0wO3RlPE8ubGVuZ3RoO3RlKz0zKXRoaXMud29yZHNbeF18PShQPU9bdGVdfE9bdGUrMV08PDh8T1t0ZSsyXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7''@;'; + put 'put ''cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKE8seixuZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChPLmxlbmd0aC16KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB0ZT0wO3RlPHRoaXMubGVuZ3RoO3RlKysp''@;'; + put 'put ''dGhpcy53b3Jkc1t0ZV09MDt2YXIgVix4PTAsUD0wO2lmKCJiZSI9PT1uZSlmb3IodGU9Ty5sZW5ndGgtMTt0ZT49ejt0ZS09MilWPWllKE8seix0ZSk8PHgsdGhpcy53b3Jkc1tQXXw9NjcxMDg4NjMmVix4Pj0xOD8oeC09MTgsdGhpcy53b3Jkc1tQKz0xXXw9Vj4+PjI2KTp4Kz04O2Vsc2Ug''@;'; + put 'put ''Zm9yKHRlPShPLmxlbmd0aC16KSUyPT0wP3orMTp6O3RlPE8ubGVuZ3RoO3RlKz0yKVY9aWUoTyx6LHRlKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFy''@;'; + put 'put ''c2VCYXNlPWZ1bmN0aW9uKE8seixuZSl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIHRlPTAseD0xO3g8PTY3MTA4ODYzO3gqPXopdGUrKzt0ZS0tLHg9eC96fDA7Zm9yKHZhciBQPU8ubGVuZ3RoLW5lLFY9UCV0ZSxUPU1hdGgubWluKFAsUC1WKStuZSxTPTAsRj1uZTtG''@;'; + put 'put ''PFQ7Ris9dGUpUz1sZShPLEYsRit0ZSx6KSx0aGlzLmltdWxuKHgpLHRoaXMud29yZHNbMF0rUzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1TOnRoaXMuX2lhZGRuKFMpO2lmKDAhPT1WKXt2YXIgeWU9MTtmb3IoUz1sZShPLEYsTy5sZW5ndGgseiksRj0wO0Y8VjtGKyspeWUqPXo7dGhpcy5p''@;'; + put 'put ''bXVsbih5ZSksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyl9dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKE8pe08ud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3Ro''@;'; + put 'put ''O3orKylPLndvcmRzW3pdPXRoaXMud29yZHNbel07Ty5sZW5ndGg9dGhpcy5sZW5ndGgsTy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLE8ucmVkPXRoaXMucmVkfSxVLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiB0aGlzLmNvcHkoTyksT30sVS5w''@;'; + put 'put ''cm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE87KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sVS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3Ro''@;'; + put 'put ''LTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxVLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sVS5wcm90b3R5cGUuaW5zcGVjdD1m''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgWT1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIw''@;'; + put 'put ''MDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxXPVswLDAsMjUsMTYsMTIs''@;'; + put 'put ''MTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLE49WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4''@;'; + put 'put ''MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1''@;'; + put 'put ''NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gcShoZSxPLHope3oubmVnYXRpdmU9Ty5uZWdhdGl2ZV5oZS5uZWdhdGl2ZTt2YXIgbmU9aGUubGVuZ3RoK08ubGVuZ3RofDA7ei5sZW5ndGg9bmUsbmU9bmUtMXwwO3ZhciB0ZT0wfGhlLndvcmRzWzBd''@;'; + put 'put ''LHg9MHxPLndvcmRzWzBdLFA9dGUqeCxUPVAvNjcxMDg4NjR8MDt6LndvcmRzWzBdPTY3MTA4ODYzJlA7Zm9yKHZhciBTPTE7UzxuZTtTKyspe2Zvcih2YXIgRj1UPj4+MjYseWU9NjcxMDg4NjMmVCxDZT1NYXRoLm1pbihTLE8ubGVuZ3RoLTEpLERlPU1hdGgubWF4KDAsUy1oZS5sZW5ndGgr''@;'; + put 'put ''MSk7RGU8PUNlO0RlKyspRis9KFA9KHRlPTB8aGUud29yZHNbUy1EZXwwXSkqKHg9MHxPLndvcmRzW0RlXSkreWUpLzY3MTA4ODY0fDAseWU9NjcxMDg4NjMmUDt6LndvcmRzW1NdPTB8eWUsVD0wfEZ9cmV0dXJuIDAhPT1UP3oud29yZHNbU109MHxUOnoubGVuZ3RoLS0sei5zdHJpcCgpfVUu''@;'; + put 'put ''cHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKE8seil7dmFyIG5lO2lmKHo9MHx6fHwxLDE2PT09KE89T3x8MTApfHwiaGV4Ij09PU8pe25lPSIiO2Zvcih2YXIgdGU9MCx4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLndvcmRzW1BdLFQ9KDE2Nzc3MjE1JihWPDx0ZXx4''@;'; + put 'put ''KSkudG9TdHJpbmcoMTYpO25lPTAhPSh4PVY+Pj4yNC10ZSYxNjc3NzIxNSl8fFAhPT10aGlzLmxlbmd0aC0xP1lbNi1ULmxlbmd0aF0rVCtuZTpUK25lLCh0ZSs9Mik+PTI2JiYodGUtPTI2LFAtLSl9Zm9yKDAhPT14JiYobmU9eC50b1N0cmluZygxNikrbmUpO25lLmxlbmd0aCV6IT0wOylu''@;'; + put 'put ''ZT0iMCIrbmU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYobmU9Ii0iK25lKSxuZX1pZihPPT09KDB8TykmJk8+PTImJk88PTM2KXt2YXIgUz1XW09dLEY9TltPXTtuZT0iIjt2YXIgeWU9dGhpcy5jbG9uZSgpO2Zvcih5ZS5uZWdhdGl2ZT0wOyF5ZS5pc1plcm8oKTspe3ZhciBDZT15ZS5t''@;'; + put 'put ''b2RuKEYpLnRvU3RyaW5nKE8pO25lPSh5ZT15ZS5pZGl2bihGKSkuaXNaZXJvKCk/Q2UrbmU6WVtTLUNlLmxlbmd0aF0rQ2UrbmV9Zm9yKHRoaXMuaXNaZXJvKCkmJihuZT0iMCIrbmUpO25lLmxlbmd0aCV6IT0wOyluZT0iMCIrbmU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYobmU9Ii0i''@;'; + put 'put ''K25lKSxuZX1FKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LFUucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIE89dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP08rPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3Ro''@;'; + put 'put ''JiYxPT09dGhpcy53b3Jkc1syXT9PKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmRSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LU86T30sVS5wcm90b3R5cGUu''@;'; + put 'put ''dG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxVLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihPLHope3JldHVybiBFKHZvaWQgMCE9PVEpLHRoaXMudG9BcnJheUxpa2UoUSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKE8seil7cmV0dXJu''@;'; + put 'put ''IHRoaXMudG9BcnJheUxpa2UoQXJyYXksTyx6KX0sVS5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9dGhpcy5ieXRlTGVuZ3RoKCkseD1uZXx8TWF0aC5tYXgoMSx0ZSk7RSh0ZTw9eCwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIp''@;'; + put 'put ''LEUoeD4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIFQsUyxQPSJsZSI9PT16LFY9bmV3IE8oeCksRj10aGlzLmNsb25lKCk7aWYoUCl7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVltTXT1UO2Zvcig7''@;'; + put 'put ''Uzx4O1MrKylWW1NdPTB9ZWxzZXtmb3IoUz0wO1M8eC10ZTtTKyspVltTXT0wO2ZvcihTPTA7IUYuaXNaZXJvKCk7UysrKVQ9Ri5hbmRsbigyNTUpLEYuaXVzaHJuKDgpLFZbeC1TLTFdPVR9cmV0dXJuIFZ9LFUucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihPKXty''@;'; + put 'put ''ZXR1cm4gMzItTWF0aC5jbHozMihPKX06ZnVuY3Rpb24oTyl7dmFyIHo9TyxuZT0wO3JldHVybiB6Pj00MDk2JiYobmUrPTEzLHo+Pj49MTMpLHo+PTY0JiYobmUrPTcsej4+Pj03KSx6Pj04JiYobmUrPTQsej4+Pj00KSx6Pj0yJiYobmUrPTIsej4+Pj0yKSxuZSt6fSxVLnByb3RvdHlwZS5f''@;'; + put 'put ''emVyb0JpdHM9ZnVuY3Rpb24oTyl7aWYoMD09PU8pcmV0dXJuIDI2O3ZhciB6PU8sbmU9MDtyZXR1cm4gMD09KDgxOTEmeikmJihuZSs9MTMsej4+Pj0xMyksMD09KDEyNyZ6KSYmKG5lKz03LHo+Pj49NyksMD09KDE1JnopJiYobmUrPTQsej4+Pj00KSwwPT0oMyZ6KSYmKG5lKz0yLHo+Pj49''@;'; + put 'put ''MiksMD09KDEmeikmJm5lKyssbmV9LFUucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciB6PXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK3p9LFUucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7''@;'; + put 'put ''aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIE89MCx6PTA7ejx0aGlzLmxlbmd0aDt6Kyspe3ZhciBuZT10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW3pdKTtpZihPKz1uZSwyNiE9PW5lKWJyZWFrfXJldHVybiBPfSxVLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxVLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oTyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oTykuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlv''@;'; + put 'put ''bihPKXtyZXR1cm4gdGhpcy50ZXN0bihPLTEpP3RoaXMubm90bihPKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sVS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''Y2xvbmUoKS5pbmVnKCl9LFUucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LFUucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oTyl7Zm9yKDt0aGlzLmxlbmd0aDxPLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxl''@;'; + put 'put ''bmd0aCsrXT0wO2Zvcih2YXIgej0wO3o8Ty5sZW5ndGg7eisrKXRoaXMud29yZHNbel09dGhpcy53b3Jkc1t6XXxPLndvcmRzW3pdO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSks''@;'; + put 'put ''dGhpcy5pdW9yKE8pfSxVLnByb3RvdHlwZS5vcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihPKTpPLmNsb25lKCkuaW9yKHRoaXMpfSxVLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3Ro''@;'; + put 'put ''P3RoaXMuY2xvbmUoKS5pdW9yKE8pOk8uY2xvbmUoKS5pdW9yKHRoaXMpfSxVLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihPKXt2YXIgejt6PXRoaXMubGVuZ3RoPk8ubGVuZ3RoP086dGhpcztmb3IodmFyIG5lPTA7bmU8ei5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT10aGlzLndvcmRz''@;'; + put 'put ''W25lXSZPLndvcmRzW25lXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1YW5kKE8pfSxVLnByb3RvdHlwZS5hbmQ9ZnVuY3Rp''@;'; + put 'put ''b24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKE8pOk8uY2xvbmUoKS5pYW5kKHRoaXMpfSxVLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoTyk6Ty5jbG9uZSgp''@;'; + put 'put ''Lml1YW5kKHRoaXMpfSxVLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihPKXt2YXIgeixuZTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8oej10aGlzLG5lPU8pOih6PU8sbmU9dGhpcyk7Zm9yKHZhciB0ZT0wO3RlPG5lLmxlbmd0aDt0ZSsrKXRoaXMud29yZHNbdGVdPXoud29yZHNbdGVdXm5lLndv''@;'; + put 'put ''cmRzW3RlXTtpZih0aGlzIT09eilmb3IoO3RlPHoubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09ei53b3Jkc1t0ZV07cmV0dXJuIHRoaXMubGVuZ3RoPXoubGVuZ3RoLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2''@;'; + put 'put ''ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihPKX0sVS5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihPKTpPLmNsb25lKCkuaXhvcih0aGlzKX0sVS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihPKXtyZXR1cm4g''@;'; + put 'put ''dGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKE8pOk8uY2xvbmUoKS5pdXhvcih0aGlzKX0sVS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PTB8TWF0aC5jZWlsKE8vMjYpLG5lPU8lMjY7dGhpcy5fZXhw''@;'; + put 'put ''YW5kKHopLG5lPjAmJnotLTtmb3IodmFyIHRlPTA7dGU8ejt0ZSsrKXRoaXMud29yZHNbdGVdPTY3MTA4ODYzJn50aGlzLndvcmRzW3RlXTtyZXR1cm4gbmU+MCYmKHRoaXMud29yZHNbdGVdPX50aGlzLndvcmRzW3RlXSY2NzEwODg2Mz4+MjYtbmUpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5''@;'; + put 'put ''cGUubm90bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKE8pfSxVLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKE8seil7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciBuZT1PLzI2fDAsdGU9TyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKG5lKzEpLHRoaXMud29y''@;'; + put 'put ''ZHNbbmVdPXo/dGhpcy53b3Jkc1tuZV18MTw8dGU6dGhpcy53b3Jkc1tuZV0mfigxPDx0ZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8pe3ZhciB6LG5lLHRlO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2''@;'; + put 'put ''ZT0wLHo9dGhpcy5pc3ViKE8pLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIE8ubmVnYXRpdmU9MCx6PXRoaXMuaXN1YihPKSxPLm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5P''@;'; + put 'put ''Lmxlbmd0aD8obmU9dGhpcyx0ZT1PKToobmU9Tyx0ZT10aGlzKTtmb3IodmFyIHg9MCxQPTA7UDx0ZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09NjcxMDg4NjMmKHo9KDB8bmUud29yZHNbUF0pKygwfHRlLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtmb3IoOzAhPT14JiZQPG5lLmxlbmd0aDtQ''@;'; + put 'put ''KyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxuZS53b3Jkc1tQXSkreCkseD16Pj4+MjY7aWYodGhpcy5sZW5ndGg9bmUubGVuZ3RoLDAhPT14KXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPXgsdGhpcy5sZW5ndGgrKztlbHNlIGlmKG5lIT09dGhpcylmb3IoO1A8bmUubGVuZ3RoO1Ar''@;'; + put 'put ''Kyl0aGlzLndvcmRzW1BdPW5lLndvcmRzW1BdO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oTyl7dmFyIHo7cmV0dXJuIDAhPT1PLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oTy5uZWdhdGl2ZT0wLHo9dGhpcy5zdWIoTyksTy5uZWdhdGl2ZV49MSx6KTowPT09''@;'; + put 'put ''Ty5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCx6PU8uc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx6KTp0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChPKTpPLmNsb25lKCkuaWFkZCh0aGlzKX0sVS5wcm90b3R5cGUuaXN1Yj1mdW5j''@;'; + put 'put ''dGlvbihPKXtpZigwIT09Ty5uZWdhdGl2ZSl7Ty5uZWdhdGl2ZT0wO3ZhciB6PXRoaXMuaWFkZChPKTtyZXR1cm4gTy5uZWdhdGl2ZT0xLHouX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoTyksdGhpcy5uZWdhdGl2ZT0x''@;'; + put 'put ''LHRoaXMuX25vcm1TaWduKCk7dmFyIHRlLHgsbmU9dGhpcy5jbXAoTyk7aWYoMD09PW5lKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztuZT4wPyh0ZT10aGlzLHg9Tyk6KHRlPU8seD10aGlzKTtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxl''@;'; + put 'put ''bmd0aDtWKyspUD0oej0oMHx0ZS53b3Jkc1tWXSktKDB8eC53b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtmb3IoOzAhPT1QJiZWPHRlLmxlbmd0aDtWKyspUD0oej0oMHx0ZS53b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtpZigwPT09''@;'; + put 'put ''UCYmVjx0ZS5sZW5ndGgmJnRlIT09dGhpcylmb3IoO1Y8dGUubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXRlLndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxWKSx0ZSE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90''@;'; + put 'put ''b3R5cGUuc3ViPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihPKX07dmFyIEo9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgVCxTLEYsdGU9Ty53b3Jkcyx4PXoud29yZHMsUD1uZS53b3JkcyxWPTAseWU9MHx0ZVswXSxDZT04MTkxJnllLERlPXllPj4+MTMsUGU9MHx0ZVsxXSxR''@;'; + put 'put ''ZT04MTkxJlBlLCRlPVBlPj4+MTMsZ3Q9MHx0ZVsyXSx3dD04MTkxJmd0LHZ0PWd0Pj4+MTMsQXQ9MHx0ZVszXSxtdD04MTkxJkF0LGh0PUF0Pj4+MTMsQnQ9MHx0ZVs0XSxvbj04MTkxJkJ0LF90PUJ0Pj4+MTMsdHQ9MHx0ZVs1XSxldD04MTkxJnR0LGF0PXR0Pj4+MTMsTHQ9MHx0ZVs2XSxD''@;'; + put 'put ''dD04MTkxJkx0LGZ0PUx0Pj4+MTMsSHQ9MHx0ZVs3XSxHZT04MTkxJkh0LFVlPUh0Pj4+MTMseXQ9MHx0ZVs4XSxqdD04MTkxJnl0LFF0PXl0Pj4+MTMsZ249MHx0ZVs5XSxkbj04MTkxJmduLHluPWduPj4+MTMsbG49MHx4WzBdLE5uPTgxOTEmbG4sYm49bG4+Pj4xMyxlcj0wfHhbMV0sc3I9''@;'; + put 'put ''ODE5MSZlcixYbj1lcj4+PjEzLEZyPTB8eFsyXSx4cj04MTkxJkZyLHF0PUZyPj4+MTMscHI9MHx4WzNdLG5yPTgxOTEmcHIsQW49cHI+Pj4xMyxxbj0wfHhbNF0sV3Q9ODE5MSZxbixwbj1xbj4+PjEzLEtuPTB8eFs1XSxOdD04MTkxJktuLHNuPUtuPj4+MTMsVW49MHx4WzZdLHduPTgxOTEm''@;'; + put 'put ''VW4sdG49VW4+Pj4xMyx6bj0wfHhbN10sVHI9ODE5MSZ6bixCbj16bj4+PjEzLGtyPTB8eFs4XSxtbj04MTkxJmtyLHVuPWtyPj4+MTMsY249MHx4WzldLF9uPTgxOTEmY24sR3Q9Y24+Pj4xMztuZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsbmUubGVuZ3RoPTE5O3ZhciBrbj0o''@;'; + put 'put ''VisoVD1NYXRoLmltdWwoQ2UsTm4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKENlLGJuKSkrTWF0aC5pbXVsKERlLE5uKXwwKSk8PDEzKXwwO1Y9KChGPU1hdGguaW11bChEZSxibikpKyhTPj4+MTMpfDApKyhrbj4+PjI2KXwwLGtuJj02NzEwODg2MyxUPU1hdGguaW11bChRZSxObiks''@;'; + put 'put ''Uz0oUz1NYXRoLmltdWwoUWUsYm4pKStNYXRoLmltdWwoJGUsTm4pfDAsRj1NYXRoLmltdWwoJGUsYm4pO3ZhciBWbj0oVisoVD1UK01hdGguaW11bChDZSxzcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLFhuKXwwKStNYXRoLmltdWwoRGUsc3IpfDApKTw8MTMpfDA7Vj0o''@;'; + put 'put ''KEY9RitNYXRoLmltdWwoRGUsWG4pfDApKyhTPj4+MTMpfDApKyhWbj4+PjI2KXwwLFZuJj02NzEwODg2MyxUPU1hdGguaW11bCh3dCxObiksUz0oUz1NYXRoLmltdWwod3QsYm4pKStNYXRoLmltdWwodnQsTm4pfDAsRj1NYXRoLmltdWwodnQsYm4pLFQ9VCtNYXRoLmltdWwoUWUsc3IpfDAs''@;'; + put 'put ''Uz0oUz1TK01hdGguaW11bChRZSxYbil8MCkrTWF0aC5pbXVsKCRlLHNyKXwwLEY9RitNYXRoLmltdWwoJGUsWG4pfDA7dmFyIGVuPShWKyhUPVQrTWF0aC5pbXVsKENlLHhyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscXQpfDApK01hdGguaW11bChEZSx4cil8MCkpPDwx''@;'; + put 'put ''Myl8MDtWPSgoRj1GK01hdGguaW11bChEZSxxdCl8MCkrKFM+Pj4xMyl8MCkrKGVuPj4+MjYpfDAsZW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG10LE5uKSxTPShTPU1hdGguaW11bChtdCxibikpK01hdGguaW11bChodCxObil8MCxGPU1hdGguaW11bChodCxibiksVD1UK01hdGguaW11bCh3''@;'; + put 'put ''dCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LFhuKXwwKStNYXRoLmltdWwodnQsc3IpfDAsRj1GK01hdGguaW11bCh2dCxYbil8MCxUPVQrTWF0aC5pbXVsKFFlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoUWUscXQpfDApK01hdGguaW11bCgkZSx4cil8MCxGPUYrTWF0aC5pbXVsKCRlLHF0''@;'; + put 'put ''KXwwO3ZhciBJbj0oVisoVD1UK01hdGguaW11bChDZSxucil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEFuKXwwKStNYXRoLmltdWwoRGUsbnIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQW4pfDApKyhTPj4+MTMpfDApKyhJbj4+PjI2KXwwLEluJj02NzEw''@;'; + put 'put ''ODg2MyxUPU1hdGguaW11bChvbixObiksUz0oUz1NYXRoLmltdWwob24sYm4pKStNYXRoLmltdWwoX3QsTm4pfDAsRj1NYXRoLmltdWwoX3QsYm4pLFQ9VCtNYXRoLmltdWwobXQsc3IpfDAsUz0oUz1TK01hdGguaW11bChtdCxYbil8MCkrTWF0aC5pbXVsKGh0LHNyKXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwoaHQsWG4pfDAsVD1UK01hdGguaW11bCh3dCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHF0KXwwKStNYXRoLmltdWwodnQseHIpfDAsRj1GK01hdGguaW11bCh2dCxxdCl8MCxUPVQrTWF0aC5pbXVsKFFlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsQW4pfDApK01hdGguaW11bCgk''@;'; + put 'put ''ZSxucil8MCxGPUYrTWF0aC5pbXVsKCRlLEFuKXwwO3ZhciBKbj0oVisoVD1UK01hdGguaW11bChDZSxXdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHBuKXwwKStNYXRoLmltdWwoRGUsV3QpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUscG4pfDApKyhTPj4+''@;'; + put 'put ''MTMpfDApKyhKbj4+PjI2KXwwLEpuJj02NzEwODg2MyxUPU1hdGguaW11bChldCxObiksUz0oUz1NYXRoLmltdWwoZXQsYm4pKStNYXRoLmltdWwoYXQsTm4pfDAsRj1NYXRoLmltdWwoYXQsYm4pLFQ9VCtNYXRoLmltdWwob24sc3IpfDAsUz0oUz1TK01hdGguaW11bChvbixYbil8MCkrTWF0''@;'; + put 'put ''aC5pbXVsKF90LHNyKXwwLEY9RitNYXRoLmltdWwoX3QsWG4pfDAsVD1UK01hdGguaW11bChtdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKG10LHF0KXwwKStNYXRoLmltdWwoaHQseHIpfDAsRj1GK01hdGguaW11bChodCxxdCl8MCxUPVQrTWF0aC5pbXVsKHd0LG5yKXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwod3QsQW4pfDApK01hdGguaW11bCh2dCxucil8MCxGPUYrTWF0aC5pbXVsKHZ0LEFuKXwwLFQ9VCtNYXRoLmltdWwoUWUsV3QpfDAsUz0oUz1TK01hdGguaW11bChRZSxwbil8MCkrTWF0aC5pbXVsKCRlLFd0KXwwLEY9RitNYXRoLmltdWwoJGUscG4pfDA7dmFyIG9yPShWKyhUPVQr''@;'; + put 'put ''TWF0aC5pbXVsKENlLE50KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2Usc24pfDApK01hdGguaW11bChEZSxOdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxzbil8MCkrKFM+Pj4xMyl8MCkrKG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEN0''@;'; + put 'put ''LE5uKSxTPShTPU1hdGguaW11bChDdCxibikpK01hdGguaW11bChmdCxObil8MCxGPU1hdGguaW11bChmdCxibiksVD1UK01hdGguaW11bChldCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LFhuKXwwKStNYXRoLmltdWwoYXQsc3IpfDAsRj1GK01hdGguaW11bChhdCxYbil8MCxUPVQrTWF0''@;'; + put 'put ''aC5pbXVsKG9uLHhyKXwwLFM9KFM9UytNYXRoLmltdWwob24scXQpfDApK01hdGguaW11bChfdCx4cil8MCxGPUYrTWF0aC5pbXVsKF90LHF0KXwwLFQ9VCtNYXRoLmltdWwobXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChtdCxBbil8MCkrTWF0aC5pbXVsKGh0LG5yKXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwoaHQsQW4pfDAsVD1UK01hdGguaW11bCh3dCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHBuKXwwKStNYXRoLmltdWwodnQsV3QpfDAsRj1GK01hdGguaW11bCh2dCxwbil8MCxUPVQrTWF0aC5pbXVsKFFlLE50KXwwLFM9KFM9UytNYXRoLmltdWwoUWUsc24pfDApK01hdGguaW11bCgk''@;'; + put 'put ''ZSxOdCl8MCxGPUYrTWF0aC5pbXVsKCRlLHNuKXwwO3ZhciBncj0oVisoVD1UK01hdGguaW11bChDZSx3bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHRuKXwwKStNYXRoLmltdWwoRGUsd24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsdG4pfDApKyhTPj4+''@;'; + put 'put ''MTMpfDApKyhncj4+PjI2KXwwLGdyJj02NzEwODg2MyxUPU1hdGguaW11bChHZSxObiksUz0oUz1NYXRoLmltdWwoR2UsYm4pKStNYXRoLmltdWwoVWUsTm4pfDAsRj1NYXRoLmltdWwoVWUsYm4pLFQ9VCtNYXRoLmltdWwoQ3Qsc3IpfDAsUz0oUz1TK01hdGguaW11bChDdCxYbil8MCkrTWF0''@;'; + put 'put ''aC5pbXVsKGZ0LHNyKXwwLEY9RitNYXRoLmltdWwoZnQsWG4pfDAsVD1UK01hdGguaW11bChldCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHF0KXwwKStNYXRoLmltdWwoYXQseHIpfDAsRj1GK01hdGguaW11bChhdCxxdCl8MCxUPVQrTWF0aC5pbXVsKG9uLG5yKXwwLFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwob24sQW4pfDApK01hdGguaW11bChfdCxucil8MCxGPUYrTWF0aC5pbXVsKF90LEFuKXwwLFQ9VCtNYXRoLmltdWwobXQsV3QpfDAsUz0oUz1TK01hdGguaW11bChtdCxwbil8MCkrTWF0aC5pbXVsKGh0LFd0KXwwLEY9RitNYXRoLmltdWwoaHQscG4pfDAsVD1UK01hdGguaW11bCh3''@;'; + put 'put ''dCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHNuKXwwKStNYXRoLmltdWwodnQsTnQpfDAsRj1GK01hdGguaW11bCh2dCxzbil8MCxUPVQrTWF0aC5pbXVsKFFlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdG4pfDApK01hdGguaW11bCgkZSx3bil8MCxGPUYrTWF0aC5pbXVsKCRlLHRu''@;'; + put 'put ''KXwwO3ZhciBLcj0oVisoVD1UK01hdGguaW11bChDZSxUcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEJuKXwwKStNYXRoLmltdWwoRGUsVHIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQm4pfDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEw''@;'; + put 'put ''ODg2MyxUPU1hdGguaW11bChqdCxObiksUz0oUz1NYXRoLmltdWwoanQsYm4pKStNYXRoLmltdWwoUXQsTm4pfDAsRj1NYXRoLmltdWwoUXQsYm4pLFQ9VCtNYXRoLmltdWwoR2Usc3IpfDAsUz0oUz1TK01hdGguaW11bChHZSxYbil8MCkrTWF0aC5pbXVsKFVlLHNyKXwwLEY9RitNYXRoLmlt''@;'; + put 'put ''dWwoVWUsWG4pfDAsVD1UK01hdGguaW11bChDdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHF0KXwwKStNYXRoLmltdWwoZnQseHIpfDAsRj1GK01hdGguaW11bChmdCxxdCl8MCxUPVQrTWF0aC5pbXVsKGV0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQW4pfDApK01hdGguaW11bChh''@;'; + put 'put ''dCxucil8MCxGPUYrTWF0aC5pbXVsKGF0LEFuKXwwLFQ9VCtNYXRoLmltdWwob24sV3QpfDAsUz0oUz1TK01hdGguaW11bChvbixwbil8MCkrTWF0aC5pbXVsKF90LFd0KXwwLEY9RitNYXRoLmltdWwoX3QscG4pfDAsVD1UK01hdGguaW11bChtdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10''@;'; + put 'put ''LHNuKXwwKStNYXRoLmltdWwoaHQsTnQpfDAsRj1GK01hdGguaW11bChodCxzbil8MCxUPVQrTWF0aC5pbXVsKHd0LHduKXwwLFM9KFM9UytNYXRoLmltdWwod3QsdG4pfDApK01hdGguaW11bCh2dCx3bil8MCxGPUYrTWF0aC5pbXVsKHZ0LHRuKXwwLFQ9VCtNYXRoLmltdWwoUWUsVHIpfDAs''@;'; + put 'put ''Uz0oUz1TK01hdGguaW11bChRZSxCbil8MCkrTWF0aC5pbXVsKCRlLFRyKXwwLEY9RitNYXRoLmltdWwoJGUsQm4pfDA7dmFyIFZyPShWKyhUPVQrTWF0aC5pbXVsKENlLG1uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdW4pfDApK01hdGguaW11bChEZSxtbil8MCkpPDwx''@;'; + put 'put ''Myl8MDtWPSgoRj1GK01hdGguaW11bChEZSx1bil8MCkrKFM+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE5uKSxTPShTPU1hdGguaW11bChkbixibikpK01hdGguaW11bCh5bixObil8MCxGPU1hdGguaW11bCh5bixibiksVD1UK01hdGguaW11bChq''@;'; + put 'put ''dCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LFhuKXwwKStNYXRoLmltdWwoUXQsc3IpfDAsRj1GK01hdGguaW11bChRdCxYbil8MCxUPVQrTWF0aC5pbXVsKEdlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UscXQpfDApK01hdGguaW11bChVZSx4cil8MCxGPUYrTWF0aC5pbXVsKFVlLHF0''@;'; + put 'put ''KXwwLFQ9VCtNYXRoLmltdWwoQ3QsbnIpfDAsUz0oUz1TK01hdGguaW11bChDdCxBbil8MCkrTWF0aC5pbXVsKGZ0LG5yKXwwLEY9RitNYXRoLmltdWwoZnQsQW4pfDAsVD1UK01hdGguaW11bChldCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHBuKXwwKStNYXRoLmltdWwoYXQsV3QpfDAs''@;'; + put 'put ''Rj1GK01hdGguaW11bChhdCxwbil8MCxUPVQrTWF0aC5pbXVsKG9uLE50KXwwLFM9KFM9UytNYXRoLmltdWwob24sc24pfDApK01hdGguaW11bChfdCxOdCl8MCxGPUYrTWF0aC5pbXVsKF90LHNuKXwwLFQ9VCtNYXRoLmltdWwobXQsd24pfDAsUz0oUz1TK01hdGguaW11bChtdCx0bil8MCkr''@;'; + put 'put ''TWF0aC5pbXVsKGh0LHduKXwwLEY9RitNYXRoLmltdWwoaHQsdG4pfDAsVD1UK01hdGguaW11bCh3dCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LEJuKXwwKStNYXRoLmltdWwodnQsVHIpfDAsRj1GK01hdGguaW11bCh2dCxCbil8MCxUPVQrTWF0aC5pbXVsKFFlLG1uKXwwLFM9KFM9UytN''@;'; + put 'put ''YXRoLmltdWwoUWUsdW4pfDApK01hdGguaW11bCgkZSxtbil8MCxGPUYrTWF0aC5pbXVsKCRlLHVuKXwwO3ZhciBpaT0oVisoVD1UK01hdGguaW11bChDZSxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEd0KXwwKStNYXRoLmltdWwoRGUsX24pfDApKTw8MTMpfDA7Vj0o''@;'; + put 'put ''KEY9RitNYXRoLmltdWwoRGUsR3QpfDApKyhTPj4+MTMpfDApKyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChkbixzciksUz0oUz1NYXRoLmltdWwoZG4sWG4pKStNYXRoLmltdWwoeW4sc3IpfDAsRj1NYXRoLmltdWwoeW4sWG4pLFQ9VCtNYXRoLmltdWwoanQseHIpfDAs''@;'; + put 'put ''Uz0oUz1TK01hdGguaW11bChqdCxxdCl8MCkrTWF0aC5pbXVsKFF0LHhyKXwwLEY9RitNYXRoLmltdWwoUXQscXQpfDAsVD1UK01hdGguaW11bChHZSxucil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLEFuKXwwKStNYXRoLmltdWwoVWUsbnIpfDAsRj1GK01hdGguaW11bChVZSxBbil8MCxUPVQr''@;'; + put 'put ''TWF0aC5pbXVsKEN0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscG4pfDApK01hdGguaW11bChmdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGZ0LHBuKXwwLFQ9VCtNYXRoLmltdWwoZXQsTnQpfDAsUz0oUz1TK01hdGguaW11bChldCxzbil8MCkrTWF0aC5pbXVsKGF0LE50KXwwLEY9RitNYXRo''@;'; + put 'put ''LmltdWwoYXQsc24pfDAsVD1UK01hdGguaW11bChvbix3bil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHRuKXwwKStNYXRoLmltdWwoX3Qsd24pfDAsRj1GK01hdGguaW11bChfdCx0bil8MCxUPVQrTWF0aC5pbXVsKG10LFRyKXwwLFM9KFM9UytNYXRoLmltdWwobXQsQm4pfDApK01hdGguaW11''@;'; + put 'put ''bChodCxUcil8MCxGPUYrTWF0aC5pbXVsKGh0LEJuKXwwLFQ9VCtNYXRoLmltdWwod3QsbW4pfDAsUz0oUz1TK01hdGguaW11bCh3dCx1bil8MCkrTWF0aC5pbXVsKHZ0LG1uKXwwLEY9RitNYXRoLmltdWwodnQsdW4pfDA7dmFyIFJyPShWKyhUPVQrTWF0aC5pbXVsKFFlLF9uKXwwKXwwKSso''@;'; + put 'put ''KDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUWUsR3QpfDApK01hdGguaW11bCgkZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bCgkZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHhyKSxTPShTPU1hdGguaW11bChkbixx''@;'; + put 'put ''dCkpK01hdGguaW11bCh5bix4cil8MCxGPU1hdGguaW11bCh5bixxdCksVD1UK01hdGguaW11bChqdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEFuKXwwKStNYXRoLmltdWwoUXQsbnIpfDAsRj1GK01hdGguaW11bChRdCxBbil8MCxUPVQrTWF0aC5pbXVsKEdlLFd0KXwwLFM9KFM9UytN''@;'; + put 'put ''YXRoLmltdWwoR2UscG4pfDApK01hdGguaW11bChVZSxXdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHBuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsTnQpfDAsUz0oUz1TK01hdGguaW11bChDdCxzbil8MCkrTWF0aC5pbXVsKGZ0LE50KXwwLEY9RitNYXRoLmltdWwoZnQsc24pfDAsVD1UK01hdGguaW11''@;'; + put 'put ''bChldCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHRuKXwwKStNYXRoLmltdWwoYXQsd24pfDAsRj1GK01hdGguaW11bChhdCx0bil8MCxUPVQrTWF0aC5pbXVsKG9uLFRyKXwwLFM9KFM9UytNYXRoLmltdWwob24sQm4pfDApK01hdGguaW11bChfdCxUcil8MCxGPUYrTWF0aC5pbXVsKF90''@;'; + put 'put ''LEJuKXwwLFQ9VCtNYXRoLmltdWwobXQsbW4pfDAsUz0oUz1TK01hdGguaW11bChtdCx1bil8MCkrTWF0aC5pbXVsKGh0LG1uKXwwLEY9RitNYXRoLmltdWwoaHQsdW4pfDA7dmFyIGxpPShWKyhUPVQrTWF0aC5pbXVsKHd0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwod3Qs''@;'; + put 'put ''R3QpfDApK01hdGguaW11bCh2dCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bCh2dCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG5yKSxTPShTPU1hdGguaW11bChkbixBbikpK01hdGguaW11bCh5bixucil8MCxGPU1h''@;'; + put 'put ''dGguaW11bCh5bixBbiksVD1UK01hdGguaW11bChqdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHBuKXwwKStNYXRoLmltdWwoUXQsV3QpfDAsRj1GK01hdGguaW11bChRdCxwbil8MCxUPVQrTWF0aC5pbXVsKEdlLE50KXwwLFM9KFM9UytNYXRoLmltdWwoR2Usc24pfDApK01hdGguaW11''@;'; + put 'put ''bChVZSxOdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHNuKXwwLFQ9VCtNYXRoLmltdWwoQ3Qsd24pfDAsUz0oUz1TK01hdGguaW11bChDdCx0bil8MCkrTWF0aC5pbXVsKGZ0LHduKXwwLEY9RitNYXRoLmltdWwoZnQsdG4pfDAsVD1UK01hdGguaW11bChldCxUcil8MCxTPShTPVMrTWF0aC5pbXVs''@;'; + put 'put ''KGV0LEJuKXwwKStNYXRoLmltdWwoYXQsVHIpfDAsRj1GK01hdGguaW11bChhdCxCbil8MCxUPVQrTWF0aC5pbXVsKG9uLG1uKXwwLFM9KFM9UytNYXRoLmltdWwob24sdW4pfDApK01hdGguaW11bChfdCxtbil8MCxGPUYrTWF0aC5pbXVsKF90LHVuKXwwO3ZhciBNaT0oVisoVD1UK01hdGgu''@;'; + put 'put ''aW11bChtdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKG10LEd0KXwwKStNYXRoLmltdWwoaHQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoaHQsR3QpfDApKyhTPj4+MTMpfDApKyhNaT4+PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChkbixXdCks''@;'; + put 'put ''Uz0oUz1NYXRoLmltdWwoZG4scG4pKStNYXRoLmltdWwoeW4sV3QpfDAsRj1NYXRoLmltdWwoeW4scG4pLFQ9VCtNYXRoLmltdWwoanQsTnQpfDAsUz0oUz1TK01hdGguaW11bChqdCxzbil8MCkrTWF0aC5pbXVsKFF0LE50KXwwLEY9RitNYXRoLmltdWwoUXQsc24pfDAsVD1UK01hdGguaW11''@;'; + put 'put ''bChHZSx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHRuKXwwKStNYXRoLmltdWwoVWUsd24pfDAsRj1GK01hdGguaW11bChVZSx0bil8MCxUPVQrTWF0aC5pbXVsKEN0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsQm4pfDApK01hdGguaW11bChmdCxUcil8MCxGPUYrTWF0aC5pbXVsKGZ0''@;'; + put 'put ''LEJuKXwwLFQ9VCtNYXRoLmltdWwoZXQsbW4pfDAsUz0oUz1TK01hdGguaW11bChldCx1bil8MCkrTWF0aC5pbXVsKGF0LG1uKXwwLEY9RitNYXRoLmltdWwoYXQsdW4pfDA7dmFyIG8wPShWKyhUPVQrTWF0aC5pbXVsKG9uLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwob24s''@;'; + put 'put ''R3QpfDApK01hdGguaW11bChfdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChfdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE50KSxTPShTPU1hdGguaW11bChkbixzbikpK01hdGguaW11bCh5bixOdCl8MCxGPU1h''@;'; + put 'put ''dGguaW11bCh5bixzbiksVD1UK01hdGguaW11bChqdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHRuKXwwKStNYXRoLmltdWwoUXQsd24pfDAsRj1GK01hdGguaW11bChRdCx0bil8MCxUPVQrTWF0aC5pbXVsKEdlLFRyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQm4pfDApK01hdGguaW11''@;'; + put 'put ''bChVZSxUcil8MCxGPUYrTWF0aC5pbXVsKFVlLEJuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsbW4pfDAsUz0oUz1TK01hdGguaW11bChDdCx1bil8MCkrTWF0aC5pbXVsKGZ0LG1uKXwwLEY9RitNYXRoLmltdWwoZnQsdW4pfDA7dmFyIG4wPShWKyhUPVQrTWF0aC5pbXVsKGV0LF9uKXwwKXwwKSso''@;'; + put 'put ''KDgxOTEmKFM9KFM9UytNYXRoLmltdWwoZXQsR3QpfDApK01hdGguaW11bChhdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChhdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG4wPj4+MjYpfDAsbjAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHduKSxTPShTPU1hdGguaW11bChkbix0''@;'; + put 'put ''bikpK01hdGguaW11bCh5bix3bil8MCxGPU1hdGguaW11bCh5bix0biksVD1UK01hdGguaW11bChqdCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEJuKXwwKStNYXRoLmltdWwoUXQsVHIpfDAsRj1GK01hdGguaW11bChRdCxCbil8MCxUPVQrTWF0aC5pbXVsKEdlLG1uKXwwLFM9KFM9UytN''@;'; + put 'put ''YXRoLmltdWwoR2UsdW4pfDApK01hdGguaW11bChVZSxtbil8MCxGPUYrTWF0aC5pbXVsKFVlLHVuKXwwO3ZhciBkMD0oVisoVD1UK01hdGguaW11bChDdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEN0LEd0KXwwKStNYXRoLmltdWwoZnQsX24pfDApKTw8MTMpfDA7Vj0o''@;'; + put 'put ''KEY9RitNYXRoLmltdWwoZnQsR3QpfDApKyhTPj4+MTMpfDApKyhkMD4+PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChkbixUciksUz0oUz1NYXRoLmltdWwoZG4sQm4pKStNYXRoLmltdWwoeW4sVHIpfDAsRj1NYXRoLmltdWwoeW4sQm4pLFQ9VCtNYXRoLmltdWwoanQsbW4pfDAs''@;'; + put 'put ''Uz0oUz1TK01hdGguaW11bChqdCx1bil8MCkrTWF0aC5pbXVsKFF0LG1uKXwwLEY9RitNYXRoLmltdWwoUXQsdW4pfDA7dmFyIG0wPShWKyhUPVQrTWF0aC5pbXVsKEdlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoR2UsR3QpfDApK01hdGguaW11bChVZSxfbil8MCkpPDwx''@;'; + put 'put ''Myl8MDtWPSgoRj1GK01hdGguaW11bChVZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG1uKSxTPShTPU1hdGguaW11bChkbix1bikpK01hdGguaW11bCh5bixtbil8MCxGPU1hdGguaW11bCh5bix1bik7dmFyIEcwPShWKyhUPVQr''@;'; + put 'put ''TWF0aC5pbXVsKGp0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoanQsR3QpfDApK01hdGguaW11bChRdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChRdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKEcwPj4+MjYpfDAsRzAmPTY3MTA4ODYzO3ZhciBEaT0oVisoVD1N''@;'; + put 'put ''YXRoLmltdWwoZG4sX24pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKGRuLEd0KSkrTWF0aC5pbXVsKHluLF9uKXwwKSk8PDEzKXwwO3JldHVybiBWPSgoRj1NYXRoLmltdWwoeW4sR3QpKSsoUz4+PjEzKXwwKSsoRGk+Pj4yNil8MCxEaSY9NjcxMDg4NjMsUFswXT1rbixQWzFdPVZuLFBb''@;'; + put 'put ''Ml09ZW4sUFszXT1JbixQWzRdPUpuLFBbNV09b3IsUFs2XT1ncixQWzddPUtyLFBbOF09VnIsUFs5XT1paSxQWzEwXT1ScixQWzExXT1saSxQWzEyXT1NaSxQWzEzXT1vMCxQWzE0XT1uMCxQWzE1XT1kMCxQWzE2XT1tMCxQWzE3XT1HMCxQWzE4XT1EaSwwIT09ViYmKFBbMTldPVYsbmUubGVu''@;'; + put 'put ''Z3RoKyspLG5lfTtmdW5jdGlvbiBvZShoZSxPLHope3JldHVybihuZXcgY2UpLm11bHAoaGUsTyx6KX1mdW5jdGlvbiBjZShoZSxPKXt0aGlzLng9aGUsdGhpcy55PU99TWF0aC5pbXVsfHwoSj1xKSxVLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbihPLHope3ZhciBuZSx0ZT10aGlzLmxlbmd0''@;'; + put 'put ''aCtPLmxlbmd0aDtyZXR1cm4gbmU9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1PLmxlbmd0aD9KKHRoaXMsTyx6KTp0ZTw2Mz9xKHRoaXMsTyx6KTp0ZTwxMDI0P2Z1bmN0aW9uIHNlKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlLHoubGVuZ3RoPWhlLmxlbmd0aCtP''@;'; + put 'put ''Lmxlbmd0aDtmb3IodmFyIG5lPTAsdGU9MCx4PTA7eDx6Lmxlbmd0aC0xO3grKyl7dmFyIFA9dGU7dGU9MDtmb3IodmFyIFY9NjcxMDg4NjMmbmUsVD1NYXRoLm1pbih4LE8ubGVuZ3RoLTEpLFM9TWF0aC5tYXgoMCx4LWhlLmxlbmd0aCsxKTtTPD1UO1MrKyl7dmFyIERlPSgwfGhlLndvcmRz''@;'; + put 'put ''W3gtU10pKigwfE8ud29yZHNbU10pLFBlPTY3MTA4ODYzJkRlO1Y9NjcxMDg4NjMmKFBlPVBlK1Z8MCksdGUrPShQPShQPVArKERlLzY3MTA4ODY0fDApfDApKyhQZT4+PjI2KXwwKT4+PjI2LFAmPTY3MTA4ODYzfXoud29yZHNbeF09VixuZT1QLFA9dGV9cmV0dXJuIDAhPT1uZT96LndvcmRz''@;'; + put 'put ''W3hdPW5lOnoubGVuZ3RoLS0sei5zdHJpcCgpfSh0aGlzLE8seik6b2UodGhpcyxPLHopLG5lfSxjZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihPKXtmb3IodmFyIHo9bmV3IEFycmF5KE8pLG5lPVUucHJvdG90eXBlLl9jb3VudEJpdHMoTyktMSx0ZT0wO3RlPE87dGUrKyl6W3RlXT10''@;'; + put 'put ''aGlzLnJldkJpbih0ZSxuZSxPKTtyZXR1cm4gen0sY2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihPLHosbmUpe2lmKDA9PT1PfHxPPT09bmUtMSlyZXR1cm4gTztmb3IodmFyIHRlPTAseD0wO3g8ejt4KyspdGV8PSgxJk8pPDx6LXgtMSxPPj49MTtyZXR1cm4gdGV9LGNlLnByb3RvdHlw''@;'; + put 'put ''ZS5wZXJtdXRlPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFApe2Zvcih2YXIgVj0wO1Y8UDtWKyspdGVbVl09eltPW1ZdXSx4W1ZdPW5lW09bVl1dfSxjZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFApe3RoaXMucGVybXV0ZShQLE8seixuZSx0ZSx4KTtmb3IodmFy''@;'; + put 'put ''IFY9MTtWPHg7Vjw8PTEpZm9yKHZhciBUPVY8PDEsUz1NYXRoLmNvcygyKk1hdGguUEkvVCksRj1NYXRoLnNpbigyKk1hdGguUEkvVCkseWU9MDt5ZTx4O3llKz1UKWZvcih2YXIgQ2U9UyxEZT1GLFBlPTA7UGU8VjtQZSsrKXt2YXIgUWU9bmVbeWUrUGVdLCRlPXRlW3llK1BlXSxndD1uZVt5''@;'; + put 'put ''ZStQZStWXSx3dD10ZVt5ZStQZStWXSx2dD1DZSpndC1EZSp3dDt3dD1DZSp3dCtEZSpndCxuZVt5ZStQZV09UWUrKGd0PXZ0KSx0ZVt5ZStQZV09JGUrd3QsbmVbeWUrUGUrVl09UWUtZ3QsdGVbeWUrUGUrVl09JGUtd3QsUGUhPT1UJiYodnQ9UypDZS1GKkRlLERlPVMqRGUrRipDZSxDZT12''@;'; + put 'put ''dCl9fSxjZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oTyx6KXt2YXIgbmU9MXxNYXRoLm1heCh6LE8pLHRlPTEmbmUseD0wO2ZvcihuZT1uZS8yfDA7bmU7bmU+Pj49MSl4Kys7cmV0dXJuIDE8PHgrMSt0ZX0sY2UucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihPLHosbmUp''@;'; + put 'put ''e2lmKCEobmU8PTEpKWZvcih2YXIgdGU9MDt0ZTxuZS8yO3RlKyspe3ZhciB4PU9bdGVdO09bdGVdPU9bbmUtdGUtMV0sT1tuZS10ZS0xXT14LHg9elt0ZV0selt0ZV09LXpbbmUtdGUtMV0seltuZS10ZS0xXT0teH19LGNlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oTyx6KXtm''@;'; + put 'put ''b3IodmFyIG5lPTAsdGU9MDt0ZTx6LzI7dGUrKyl7dmFyIHg9ODE5MipNYXRoLnJvdW5kKE9bMip0ZSsxXS96KStNYXRoLnJvdW5kKE9bMip0ZV0veikrbmU7T1t0ZV09NjcxMDg4NjMmeCxuZT14PDY3MTA4ODY0PzA6eC82NzEwODg2NHwwfXJldHVybiBPfSxjZS5wcm90b3R5cGUuY29udmVy''@;'; + put 'put ''dDEzYj1mdW5jdGlvbihPLHosbmUsdGUpe2Zvcih2YXIgeD0wLFA9MDtQPHo7UCsrKW5lWzIqUF09ODE5MSYoeCs9MHxPW1BdKSxuZVsyKlArMV09ODE5MSYoeD4+Pj0xMykseD4+Pj0xMztmb3IoUD0yKno7UDx0ZTsrK1ApbmVbUF09MDtFKDA9PT14KSxFKDA9PSgtODE5MiZ4KSl9LGNlLnBy''@;'; + put 'put ''b3RvdHlwZS5zdHViPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksbmU9MDtuZTxPO25lKyspeltuZV09MDtyZXR1cm4gen0sY2UucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9Mip0aGlzLmd1ZXNzTGVuMTNiKE8ubGVuZ3RoLHoubGVuZ3RoKSx4PXRo''@;'; + put 'put ''aXMubWFrZVJCVCh0ZSksUD10aGlzLnN0dWIodGUpLFY9bmV3IEFycmF5KHRlKSxUPW5ldyBBcnJheSh0ZSksUz1uZXcgQXJyYXkodGUpLEY9bmV3IEFycmF5KHRlKSx5ZT1uZXcgQXJyYXkodGUpLENlPW5ldyBBcnJheSh0ZSksRGU9bmUud29yZHM7RGUubGVuZ3RoPXRlLHRoaXMuY29udmVy''@;'; + put 'put ''dDEzYihPLndvcmRzLE8ubGVuZ3RoLFYsdGUpLHRoaXMuY29udmVydDEzYih6LndvcmRzLHoubGVuZ3RoLEYsdGUpLHRoaXMudHJhbnNmb3JtKFYsUCxULFMsdGUseCksdGhpcy50cmFuc2Zvcm0oRixQLHllLENlLHRlLHgpO2Zvcih2YXIgUGU9MDtQZTx0ZTtQZSsrKXt2YXIgUWU9VFtQZV0q''@;'; + put 'put ''eWVbUGVdLVNbUGVdKkNlW1BlXTtTW1BlXT1UW1BlXSpDZVtQZV0rU1tQZV0qeWVbUGVdLFRbUGVdPVFlfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShULFMsdGUpLHRoaXMudHJhbnNmb3JtKFQsUyxEZSxQLHRlLHgpLHRoaXMuY29uanVnYXRlKERlLFAsdGUpLHRoaXMubm9ybWFsaXplMTNiKERl''@;'; + put 'put ''LHRlKSxuZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsbmUubGVuZ3RoPU8ubGVuZ3RoK3oubGVuZ3RoLG5lLnN0cmlwKCl9LFUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5s''@;'; + put 'put ''ZW5ndGgpLHRoaXMubXVsVG8oTyx6KX0sVS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLG9lKHRoaXMsTyx6KX0sVS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5jbG9uZSgpLm11bFRvKE8sdGhpcyl9LFUucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpO2Zvcih2YXIgej0wLG5lPTA7bmU8dGhpcy5sZW5ndGg7bmUrKyl7dmFyIHRlPSgwfHRoaXMud29yZHNbbmVdKSpPLHg9''@;'; + put 'put ''KDY3MTA4ODYzJnRlKSsoNjcxMDg4NjMmeik7ej4+PTI2LHorPXRlLzY3MTA4ODY0fDAseis9eD4+PjI2LHRoaXMud29yZHNbbmVdPTY3MTA4ODYzJnh9cmV0dXJuIDAhPT16JiYodGhpcy53b3Jkc1tuZV09eix0aGlzLmxlbmd0aCsrKSx0aGlzfSxVLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9u''@;'; + put 'put ''KE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oTyl9LFUucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sVS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sVS5wcm90b3R5cGUucG93PWZ1bmN0''@;'; + put 'put ''aW9uKE8pe3ZhciB6PWZ1bmN0aW9uIGVlKGhlKXtmb3IodmFyIE89bmV3IEFycmF5KGhlLmJpdExlbmd0aCgpKSx6PTA7ejxPLmxlbmd0aDt6Kyspe3ZhciB0ZT16JTI2O09bel09KGhlLndvcmRzW3ovMjZ8MF0mMTw8dGUpPj4+dGV9cmV0dXJuIE99KE8pO2lmKDA9PT16Lmxlbmd0aClyZXR1''@;'; + put 'put ''cm4gbmV3IFUoMSk7Zm9yKHZhciBuZT10aGlzLHRlPTA7dGU8ei5sZW5ndGgmJjA9PT16W3RlXTt0ZSsrLG5lPW5lLnNxcigpKTtpZigrK3RlPHoubGVuZ3RoKWZvcih2YXIgeD1uZS5zcXIoKTt0ZTx6Lmxlbmd0aDt0ZSsrLHg9eC5zcXIoKSkwIT09elt0ZV0mJihuZT1uZS5tdWwoeCkpO3Jl''@;'; + put 'put ''dHVybiBuZX0sVS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgeCx6PU8lMjYsbmU9KE8teikvMjYsdGU9NjcxMDg4NjM+Pj4yNi16PDwyNi16O2lmKDAhPT16KXt2YXIgUD0wO2Zvcih4PTA7eDx0aGlzLmxlbmd0aDt4Kyspe3Zh''@;'; + put 'put ''ciBWPXRoaXMud29yZHNbeF0mdGU7dGhpcy53b3Jkc1t4XT0oMHx0aGlzLndvcmRzW3hdKS1WPDx6fFAsUD1WPj4+MjYten1QJiYodGhpcy53b3Jkc1t4XT1QLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1uZSl7Zm9yKHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl0aGlzLndvcmRzW3grbmVdPXRo''@;'; + put 'put ''aXMud29yZHNbeF07Zm9yKHg9MDt4PG5lO3grKyl0aGlzLndvcmRzW3hdPTA7dGhpcy5sZW5ndGgrPW5lfXJldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihPKX0sVS5wcm90b3R5''@;'; + put 'put ''cGUuaXVzaHJuPWZ1bmN0aW9uKE8seixuZSl7dmFyIHRlO0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKSx0ZT16Pyh6LXolMjYpLzI2OjA7dmFyIHg9TyUyNixQPU1hdGgubWluKChPLXgpLzI2LHRoaXMubGVuZ3RoKSxWPTY3MTA4ODYzXjY3MTA4ODYzPj4+eDw8eCxUPW5lO2lmKHRlLT1Q''@;'; + put 'put ''LHRlPU1hdGgubWF4KDAsdGUpLFQpe2Zvcih2YXIgUz0wO1M8UDtTKyspVC53b3Jkc1tTXT10aGlzLndvcmRzW1NdO1QubGVuZ3RoPVB9aWYoMCE9PVApaWYodGhpcy5sZW5ndGg+UClmb3IodGhpcy5sZW5ndGgtPVAsUz0wO1M8dGhpcy5sZW5ndGg7UysrKXRoaXMud29yZHNbU109dGhpcy53''@;'; + put 'put ''b3Jkc1tTK1BdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIEY9MDtmb3IoUz10aGlzLmxlbmd0aC0xO1M+PTAmJigwIT09Rnx8Uz49dGUpO1MtLSl7dmFyIHllPTB8dGhpcy53b3Jkc1tTXTt0aGlzLndvcmRzW1NdPUY8PDI2LXh8eWU+Pj54LEY9eWUmVn1yZXR1cm4g''@;'; + put 'put ''VCYmMCE9PUYmJihULndvcmRzW1QubGVuZ3RoKytdPUYpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKE8seixuZSl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMu''@;'; + put 'put ''aXVzaHJuKE8seixuZSl9LFUucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihPKX0sVS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oTyl9LFUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oTyl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihPKX0sVS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oTyl9LFUucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LG5lPShP''@;'; + put 'put ''LXopLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PW5lfHwhKHRoaXMud29yZHNbbmVdJjE8PHopKX0sVS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LG5lPShPLXopLzI2O3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZl''@;'; + put 'put ''LCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9bmU/dGhpczooMCE9PXomJm5lKyssdGhpcy5sZW5ndGg9TWF0aC5taW4obmUsdGhpcy5sZW5ndGgpLDAhPT16JiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4''@;'; + put 'put ''NjM+Pj56PDx6KSx0aGlzLnN0cmlwKCkpfSxVLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihPKX0sVS5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MD90''@;'; + put 'put ''aGlzLmlzdWJuKC1PKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPE8/KHRoaXMud29yZHNbMF09Ty0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKE8pLHRoaXMubmVn''@;'; + put 'put ''YXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihPKX0sVS5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKE8pe3RoaXMud29yZHNbMF0rPU87Zm9yKHZhciB6PTA7ejx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t6XT49NjcxMDg4NjQ7eisrKXRoaXMud29yZHNbel0tPTY3MTA4ODY0LHo9PT10aGlz''@;'; + put 'put ''Lmxlbmd0aC0xP3RoaXMud29yZHNbeisxXT0xOnRoaXMud29yZHNbeisxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx6KzEpLHRoaXN9LFUucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKE8pe2lmKEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQp''@;'; + put 'put ''LE88MClyZXR1cm4gdGhpcy5pYWRkbigtTyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPU8sMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53''@;'; + put 'put ''b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPDA7eisrKXRoaXMud29yZHNbel0rPTY3MTA4ODY0LHRoaXMud29yZHNbeisxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlw''@;'; + put 'put ''ZS5hZGRuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oTyl9LFUucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihPKX0sVS5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30s''@;'; + put 'put ''VS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LFUucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihPLHosbmUpe3ZhciB4O3RoaXMuX2V4cGFuZChPLmxlbmd0aCtuZSk7dmFyIFAsVj0wO2Zvcih4PTA7eDxPLmxlbmd0aDt4Kyspe1A9''@;'; + put 'put ''KDB8dGhpcy53b3Jkc1t4K25lXSkrVjt2YXIgVD0oMHxPLndvcmRzW3hdKSp6O1Y9KChQLT02NzEwODg2MyZUKT4+MjYpLShULzY3MTA4ODY0fDApLHRoaXMud29yZHNbeCtuZV09NjcxMDg4NjMmUH1mb3IoO3g8dGhpcy5sZW5ndGgtbmU7eCsrKVY9KFA9KDB8dGhpcy53b3Jkc1t4K25lXSkr''@;'; + put 'put ''Vik+PjI2LHRoaXMud29yZHNbeCtuZV09NjcxMDg4NjMmUDtpZigwPT09VilyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihFKC0xPT09ViksVj0wLHg9MDt4PHRoaXMubGVuZ3RoO3grKylWPShQPS0oMHx0aGlzLndvcmRzW3hdKStWKT4+MjYsdGhpcy53b3Jkc1t4XT02NzEwODg2MyZQO3JldHVy''@;'; + put 'put ''biB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihPLHope3ZhciBuZSx0ZT10aGlzLmNsb25lKCkseD1PLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdOzAhPShuZT0yNi10aGlzLl9jb3VudEJpdHMoUCkpJiYoeD14LnVzaGxuKG5lKSx0''@;'; + put 'put ''ZS5pdXNobG4obmUpLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdKTt2YXIgUyxUPXRlLmxlbmd0aC14Lmxlbmd0aDtpZigibW9kIiE9PXopeyhTPW5ldyBVKG51bGwpKS5sZW5ndGg9VCsxLFMud29yZHM9bmV3IEFycmF5KFMubGVuZ3RoKTtmb3IodmFyIEY9MDtGPFMubGVuZ3RoO0YrKylTLndv''@;'; + put 'put ''cmRzW0ZdPTB9dmFyIHllPXRlLmNsb25lKCkuX2lzaGxuc3VibXVsKHgsMSxUKTswPT09eWUubmVnYXRpdmUmJih0ZT15ZSxTJiYoUy53b3Jkc1tUXT0xKSk7Zm9yKHZhciBDZT1ULTE7Q2U+PTA7Q2UtLSl7dmFyIERlPTY3MTA4ODY0KigwfHRlLndvcmRzW3gubGVuZ3RoK0NlXSkrKDB8dGUu''@;'; + put 'put ''d29yZHNbeC5sZW5ndGgrQ2UtMV0pO2ZvcihEZT1NYXRoLm1pbihEZS9QfDAsNjcxMDg4NjMpLHRlLl9pc2hsbnN1Ym11bCh4LERlLENlKTswIT09dGUubmVnYXRpdmU7KURlLS0sdGUubmVnYXRpdmU9MCx0ZS5faXNobG5zdWJtdWwoeCwxLENlKSx0ZS5pc1plcm8oKXx8KHRlLm5lZ2F0aXZl''@;'; + put 'put ''Xj0xKTtTJiYoUy53b3Jkc1tDZV09RGUpfXJldHVybiBTJiZTLnN0cmlwKCksdGUuc3RyaXAoKSwiZGl2IiE9PXomJjAhPT1uZSYmdGUuaXVzaHJuKG5lKSx7ZGl2OlN8fG51bGwsbW9kOnRlfX0sVS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKE8seixuZSl7cmV0dXJuIEUoIU8uaXNaZXJv''@;'; + put 'put ''KCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgVSgwKSxtb2Q6bmV3IFUoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZT8oUD10aGlzLm5lZygpLmRpdm1vZChPLHopLCJtb2QiIT09eiYmKHRlPVAuZGl2Lm5lZygpKSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLG5lJiYw''@;'; + put 'put ''IT09eC5uZWdhdGl2ZSYmeC5pYWRkKE8pKSx7ZGl2OnRlLG1vZDp4fSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1PLm5lZ2F0aXZlPyhQPXRoaXMuZGl2bW9kKE8ubmVnKCkseiksIm1vZCIhPT16JiYodGU9UC5kaXYubmVnKCkpLHtkaXY6dGUsbW9kOlAubW9kfSk6MCE9KHRoaXMubmVnYXRp''@;'; + put 'put ''dmUmTy5uZWdhdGl2ZSk/KFA9dGhpcy5uZWcoKS5kaXZtb2QoTy5uZWcoKSx6KSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLG5lJiYwIT09eC5uZWdhdGl2ZSYmeC5pc3ViKE8pKSx7ZGl2OlAuZGl2LG1vZDp4fSk6Ty5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKE8pPDA/e2Rpdjpu''@;'; + put 'put ''ZXcgVSgwKSxtb2Q6dGhpc306MT09PU8ubGVuZ3RoPyJkaXYiPT09ej97ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT16P3tkaXY6bnVsbCxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oTy53b3Jkc1swXSksbW9kOm5l''@;'; + put 'put ''dyBVKHRoaXMubW9kbihPLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoTyx6KTt2YXIgdGUseCxQfSxVLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sImRpdiIsITEpLmRpdn0sVS5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmRp''@;'; + put 'put ''dm1vZChPLCJtb2QiLCExKS5tb2R9LFUucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITApLm1vZH0sVS5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5kaXZtb2QoTyk7aWYoei5tb2QuaXNaZXJvKCkpcmV0dXJu''@;'; + put 'put ''IHouZGl2O3ZhciBuZT0wIT09ei5kaXYubmVnYXRpdmU/ei5tb2QuaXN1YihPKTp6Lm1vZCx0ZT1PLnVzaHJuKDEpLHg9Ty5hbmRsbigxKSxQPW5lLmNtcCh0ZSk7cmV0dXJuIFA8MHx8MT09PXgmJjA9PT1QP3ouZGl2OjAhPT16LmRpdi5uZWdhdGl2ZT96LmRpdi5pc3VibigxKTp6LmRpdi5p''@;'; + put 'put ''YWRkbigxKX0sVS5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihPKXtFKE88PTY3MTA4ODYzKTtmb3IodmFyIHo9KDE8PDI2KSVPLG5lPTAsdGU9dGhpcy5sZW5ndGgtMTt0ZT49MDt0ZS0tKW5lPSh6Km5lKygwfHRoaXMud29yZHNbdGVdKSklTztyZXR1cm4gbmV9LFUucHJvdG90eXBlLmlkaXZu''@;'; + put 'put ''PWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0wLG5lPXRoaXMubGVuZ3RoLTE7bmU+PTA7bmUtLSl7dmFyIHRlPSgwfHRoaXMud29yZHNbbmVdKSs2NzEwODg2NCp6O3RoaXMud29yZHNbbmVdPXRlL098MCx6PXRlJU99cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5''@;'; + put 'put ''cGUuZGl2bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKE8pfSxVLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUpLEUoIU8uaXNaZXJvKCkpO3ZhciB6PXRoaXMsbmU9Ty5jbG9uZSgpO3o9MCE9PXoubmVnYXRpdmU/ei51bW9kKE8pOnou''@;'; + put 'put ''Y2xvbmUoKTtmb3IodmFyIHRlPW5ldyBVKDEpLHg9bmV3IFUoMCksUD1uZXcgVSgwKSxWPW5ldyBVKDEpLFQ9MDt6LmlzRXZlbigpJiZuZS5pc0V2ZW4oKTspei5pdXNocm4oMSksbmUuaXVzaHJuKDEpLCsrVDtmb3IodmFyIFM9bmUuY2xvbmUoKSxGPXouY2xvbmUoKTshei5pc1plcm8oKTsp''@;'; + put 'put ''e2Zvcih2YXIgeWU9MCxDZT0xOzA9PSh6LndvcmRzWzBdJkNlKSYmeWU8MjY7Kyt5ZSxDZTw8PTEpO2lmKHllPjApZm9yKHouaXVzaHJuKHllKTt5ZS0tID4wOykodGUuaXNPZGQoKXx8eC5pc09kZCgpKSYmKHRlLmlhZGQoUykseC5pc3ViKEYpKSx0ZS5pdXNocm4oMSkseC5pdXNocm4oMSk7''@;'; + put 'put ''Zm9yKHZhciBEZT0wLFBlPTE7MD09KG5lLndvcmRzWzBdJlBlKSYmRGU8MjY7KytEZSxQZTw8PTEpO2lmKERlPjApZm9yKG5lLml1c2hybihEZSk7RGUtLSA+MDspKFAuaXNPZGQoKXx8Vi5pc09kZCgpKSYmKFAuaWFkZChTKSxWLmlzdWIoRikpLFAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpO3ou''@;'; + put 'put ''Y21wKG5lKT49MD8oei5pc3ViKG5lKSx0ZS5pc3ViKFApLHguaXN1YihWKSk6KG5lLmlzdWIoeiksUC5pc3ViKHRlKSxWLmlzdWIoeCkpfXJldHVybnthOlAsYjpWLGdjZDpuZS5pdXNobG4oVCl9fSxVLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSgh''@;'; + put 'put ''Ty5pc1plcm8oKSk7dmFyIHllLHo9dGhpcyxuZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgdGU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPW5lLmNsb25lKCk7ei5jbXBuKDEpPjAmJm5lLmNtcG4oMSk+MDspe2Zvcih2YXIgVj0wLFQ9MTsw''@;'; + put 'put ''PT0oei53b3Jkc1swXSZUKSYmVjwyNjsrK1YsVDw8PTEpO2lmKFY+MClmb3Ioei5pdXNocm4oVik7Vi0tID4wOyl0ZS5pc09kZCgpJiZ0ZS5pYWRkKFApLHRlLml1c2hybigxKTtmb3IodmFyIFM9MCxGPTE7MD09KG5lLndvcmRzWzBdJkYpJiZTPDI2OysrUyxGPDw9MSk7aWYoUz4wKWZvcihu''@;'; + put 'put ''ZS5pdXNocm4oUyk7Uy0tID4wOyl4LmlzT2RkKCkmJnguaWFkZChQKSx4Lml1c2hybigxKTt6LmNtcChuZSk+PTA/KHouaXN1YihuZSksdGUuaXN1Yih4KSk6KG5lLmlzdWIoeikseC5pc3ViKHRlKSl9cmV0dXJuKHllPTA9PT16LmNtcG4oMSk/dGU6eCkuY21wbigwKTwwJiZ5ZS5pYWRkKE8p''@;'; + put 'put ''LHllfSxVLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oTyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gTy5hYnMoKTtpZihPLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciB6PXRoaXMuY2xvbmUoKSxuZT1PLmNsb25lKCk7ei5uZWdhdGl2ZT0wLG5lLm5lZ2F0aXZlPTA7Zm9yKHZhciB0''@;'; + put 'put ''ZT0wO3ouaXNFdmVuKCkmJm5lLmlzRXZlbigpO3RlKyspei5pdXNocm4oMSksbmUuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt6LmlzRXZlbigpOyl6Lml1c2hybigxKTtmb3IoO25lLmlzRXZlbigpOyluZS5pdXNocm4oMSk7dmFyIHg9ei5jbXAobmUpO2lmKHg8MCl7dmFyIFA9ejt6PW5lLG5l''@;'; + put 'put ''PVB9ZWxzZSBpZigwPT09eHx8MD09PW5lLmNtcG4oMSkpYnJlYWs7ei5pc3ViKG5lKX1yZXR1cm4gbmUuaXVzaGxuKHRlKX0sVS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5lZ2NkKE8pLmEudW1vZChPKX0sVS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sVS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMud29yZHNbMF0mT30sVS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24o''@;'; + put 'put ''Tyl7RSgibnVtYmVyIj09dHlwZW9mIE8pO3ZhciB6PU8lMjYsbmU9KE8teikvMjYsdGU9MTw8ejtpZih0aGlzLmxlbmd0aDw9bmUpcmV0dXJuIHRoaXMuX2V4cGFuZChuZSsxKSx0aGlzLndvcmRzW25lXXw9dGUsdGhpcztmb3IodmFyIHg9dGUsUD1uZTswIT09eCYmUDx0aGlzLmxlbmd0aDtQ''@;'; + put 'put ''Kyspe3ZhciBWPTB8dGhpcy53b3Jkc1tQXTt4PShWKz14KT4+PjI2LHRoaXMud29yZHNbUF09ViY9NjcxMDg4NjN9cmV0dXJuIDAhPT14JiYodGhpcy53b3Jkc1tQXT14LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5s''@;'; + put 'put ''ZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxVLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKE8pe3ZhciBuZSx6PU88MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXopcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnopcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEp''@;'; + put 'put ''bmU9MTtlbHNle3omJihPPS1PKSxFKE88PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciB0ZT0wfHRoaXMud29yZHNbMF07bmU9dGU9PT1PPzA6dGU8Tz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1uZTpuZX0sVS5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKE8pe2lm''@;'; + put 'put ''KDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHo9dGhpcy51Y21wKE8pO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC16Onp9LFUucHJvdG90eXBlLnVjbXA9ZnVuY3Rp''@;'; + put 'put ''b24oTyl7aWYodGhpcy5sZW5ndGg+Ty5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8Ty5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB6PTAsbmU9dGhpcy5sZW5ndGgtMTtuZT49MDtuZS0tKXt2YXIgdGU9MHx0aGlzLndvcmRzW25lXSx4PTB8Ty53b3Jkc1tuZV07aWYodGUhPT14KXt0''@;'; + put 'put ''ZTx4P3o9LTE6dGU+eCYmKHo9MSk7YnJlYWt9fXJldHVybiB6fSxVLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmd0PWZ1bmN0aW9uKE8pe3JldHVybiAxPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmd0ZW49ZnVuY3Rp''@;'; + put 'put ''b24oTyl7cmV0dXJuIHRoaXMuY21wbihPKT49MH0sVS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKT49MH0sVS5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5sdD1mdW5jdGlvbihPKXtyZXR1''@;'; + put 'put ''cm4tMT09PXRoaXMuY21wKE8pfSxVLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcG4oTyk8PTB9LFUucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXAoTyk8PTB9LFUucHJvdG90eXBlLmVxbj1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRo''@;'; + put 'put ''aXMuY21wbihPKX0sVS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oTyl7cmV0dXJuIDA9PT10aGlzLmNtcChPKX0sVS5yZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBUZShPKX0sVS5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVy''@;'; + put 'put ''IGluIHJlZHVjdGlvbiBjb250ZXh0IiksRSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxPLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwiZnJvbVJl''@;'; + put 'put ''ZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxVLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucmVkPU8sdGhpc30sVS5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24o''@;'; + put 'put ''Tyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVy''@;'; + put 'put ''cyIpLHRoaXMucmVkLmFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9u''@;'; + put 'put ''KE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1i''@;'; + put 'put ''ZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9u''@;'; + put 'put ''KE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5tdWwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTXVs''@;'; + put 'put ''IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsTyksdGhpcy5yZWQuaW11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIp''@;'; + put 'put ''LHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVk''@;'; + put 'put ''LmlzcXIodGhpcyl9LFUucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJbnZt''@;'; + put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sVS5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJl''@;'; + put 'put ''ZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LFUucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCYmIU8ucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVk''@;'; + put 'put ''Ll92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLE8pfTt2YXIgZGU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiB2ZShoZSxPKXt0aGlzLm5hbWU9aGUsdGhpcy5wPW5ldyBVKE8sMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCks''@;'; + put 'put ''dGhpcy5rPW5ldyBVKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBBZSgpe3ZlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZm''@;'; + put 'put ''ZmZmYzJmIil9ZnVuY3Rpb24ga2UoKXt2ZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIFNlKCl7dmUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZm''@;'; + put 'put ''ZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBJZSgpe3ZlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gVGUoaGUpe2lmKCJzdHJp''@;'; + put 'put ''bmciPT10eXBlb2YgaGUpe3ZhciBPPVUuX3ByaW1lKGhlKTt0aGlzLm09Ty5wLHRoaXMucHJpbWU9T31lbHNlIEUoaGUuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09aGUsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIEVlKGhlKXtUZS5jYWxsKHRoaXMs''@;'; + put 'put ''aGUpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IFUoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMu''@;'; + put 'put ''ci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9dmUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgTz1uZXcgVShudWxsKTtyZXR1cm4gTy53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLE99LHZlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKE8pe3ZhciBuZSx6PU87ZG97dGhpcy5zcGxpdCh6LHRoaXMudG1wKSxuZT0oej0oej10aGlzLmltdWxLKHopKS5pYWRk''@;'; + put 'put ''KHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUobmU+dGhpcy5uKTt2YXIgdGU9bmU8dGhpcy5uPy0xOnoudWNtcCh0aGlzLnApO3JldHVybiAwPT09dGU/KHoud29yZHNbMF09MCx6Lmxlbmd0aD0xKTp0ZT4wP3ouaXN1Yih0aGlzLnApOnZvaWQgMCE9PXouc3RyaXA/ei5zdHJpcCgpOnou''@;'; + put 'put ''X3N0cmlwKCksen0sdmUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKE8seil7Ty5pdXNocm4odGhpcy5uLDAseil9LHZlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtyZXR1cm4gTy5pbXVsKHRoaXMuayl9LE1lKEFlLHZlKSxBZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtm''@;'; + put 'put ''b3IodmFyIHRlPU1hdGgubWluKE8ubGVuZ3RoLDkpLHg9MDt4PHRlO3grKyl6LndvcmRzW3hdPU8ud29yZHNbeF07aWYoei5sZW5ndGg9dGUsTy5sZW5ndGg8PTkpcmV0dXJuIE8ud29yZHNbMF09MCx2b2lkKE8ubGVuZ3RoPTEpO3ZhciBQPU8ud29yZHNbOV07Zm9yKHoud29yZHNbei5sZW5n''@;'; + put 'put ''dGgrK109NDE5NDMwMyZQLHg9MTA7eDxPLmxlbmd0aDt4Kyspe3ZhciBWPTB8Ty53b3Jkc1t4XTtPLndvcmRzW3gtMTBdPSg0MTk0MzAzJlYpPDw0fFA+Pj4yMixQPVZ9Ty53b3Jkc1t4LTEwXT1QPj4+PTIyLE8ubGVuZ3RoLT0wPT09UCYmTy5sZW5ndGg+MTA/MTA6OX0sQWUucHJvdG90eXBl''@;'; + put 'put ''LmltdWxLPWZ1bmN0aW9uKE8pe08ud29yZHNbTy5sZW5ndGhdPTAsTy53b3Jkc1tPLmxlbmd0aCsxXT0wLE8ubGVuZ3RoKz0yO2Zvcih2YXIgej0wLG5lPTA7bmU8Ty5sZW5ndGg7bmUrKyl7dmFyIHRlPTB8Ty53b3Jkc1tuZV07Ty53b3Jkc1tuZV09NjcxMDg4NjMmKHorPTk3Nyp0ZSksej02''@;'; + put 'put ''NCp0ZSsoei82NzEwODg2NHwwKX1yZXR1cm4gMD09PU8ud29yZHNbTy5sZW5ndGgtMV0mJihPLmxlbmd0aC0tLDA9PT1PLndvcmRzW08ubGVuZ3RoLTFdJiZPLmxlbmd0aC0tKSxPfSxNZShrZSx2ZSksTWUoU2UsdmUpLE1lKEllLHZlKSxJZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7''@;'; + put 'put ''Zm9yKHZhciB6PTAsbmU9MDtuZTxPLmxlbmd0aDtuZSsrKXt2YXIgdGU9MTkqKDB8Ty53b3Jkc1tuZV0pK3oseD02NzEwODg2MyZ0ZTt0ZT4+Pj0yNixPLndvcmRzW25lXT14LHo9dGV9cmV0dXJuIDAhPT16JiYoTy53b3Jkc1tPLmxlbmd0aCsrXT16KSxPfSxVLl9wcmltZT1mdW5jdGlvbihP''@;'; + put 'put ''KXtpZihkZVtPXSlyZXR1cm4gZGVbT107dmFyIHo7aWYoImsyNTYiPT09Tyl6PW5ldyBBZTtlbHNlIGlmKCJwMjI0Ij09PU8pej1uZXcga2U7ZWxzZSBpZigicDE5MiI9PT1PKXo9bmV3IFNlO2Vsc2V7aWYoInAyNTUxOSIhPT1PKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK08p''@;'; + put 'put ''O3o9bmV3IEllfXJldHVybiBkZVtPXT16LHp9LFRlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90''@;'; + put 'put ''eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKE8seil7RSgwPT0oTy5uZWdhdGl2ZXx6Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxFKE8ucmVkJiZPLnJlZD09PXoucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFRlLnByb3RvdHlwZS5pbW9k''@;'; + put 'put ''PWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShPKS5fZm9yY2VSZWQodGhpcyk6Ty51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKE8pe3JldHVybiBPLmlzWmVybygpP08uY2xvbmUoKTp0aGlzLm0u''@;'; + put 'put ''c3ViKE8pLl9mb3JjZVJlZCh0aGlzKX0sVGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5hZGQoeik7cmV0dXJuIG5lLmNtcCh0aGlzLm0pPj0wJiZuZS5pc3ViKHRoaXMubSksbmUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUu''@;'; + put 'put ''aWFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5pYWRkKHopO3JldHVybiBuZS5jbXAodGhpcy5tKT49MCYmbmUuaXN1Yih0aGlzLm0pLG5lfSxUZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLnN1Yih6''@;'; + put 'put ''KTtyZXR1cm4gbmUuY21wbigwKTwwJiZuZS5pYWRkKHRoaXMubSksbmUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5pc3ViKHopO3JldHVybiBuZS5jbXBuKDApPDAmJm5lLmlhZGQodGhpcy5tKSxu''@;'; + put 'put ''ZX0sVGUucHJvdG90eXBlLnNobD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkxKE8pLHRoaXMuaW1vZChPLnVzaGxuKHopKX0sVGUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLmltdWwoeikpfSxUZS5w''@;'; + put 'put ''cm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoTyx6KSx0aGlzLmltb2QoTy5tdWwoeikpfSxUZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbXVsKE8sTy5jbG9uZSgpKX0sVGUucHJvdG90eXBlLnNxcj1mdW5jdGlvbihPKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5tdWwoTyxPKX0sVGUucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oTyl7aWYoTy5pc1plcm8oKSlyZXR1cm4gTy5jbG9uZSgpO3ZhciB6PXRoaXMubS5hbmRsbigzKTtpZihFKHolMj09MSksMz09PXope3ZhciBuZT10aGlzLm0uYWRkKG5ldyBVKDEpKS5pdXNocm4oMik7cmV0''@;'; + put 'put ''dXJuIHRoaXMucG93KE8sbmUpfWZvcih2YXIgdGU9dGhpcy5tLnN1Ym4oMSkseD0wOyF0ZS5pc1plcm8oKSYmMD09PXRlLmFuZGxuKDEpOyl4KyssdGUuaXVzaHJuKDEpO0UoIXRlLmlzWmVybygpKTt2YXIgUD1uZXcgVSgxKS50b1JlZCh0aGlzKSxWPVAucmVkTmVnKCksVD10aGlzLm0uc3Vi''@;'; + put 'put ''bigxKS5pdXNocm4oMSksUz10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKFM9bmV3IFUoMipTKlMpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhTLFQpLmNtcChWKTspUy5yZWRJQWRkKFYpO2Zvcih2YXIgRj10aGlzLnBvdyhTLHRlKSx5ZT10aGlzLnBvdyhPLHRlLmFkZG4oMSkuaXVzaHJuKDEp''@;'; + put 'put ''KSxDZT10aGlzLnBvdyhPLHRlKSxEZT14OzAhPT1DZS5jbXAoUCk7KXtmb3IodmFyIFBlPUNlLFFlPTA7MCE9PVBlLmNtcChQKTtRZSsrKVBlPVBlLnJlZFNxcigpO0UoUWU8RGUpO3ZhciAkZT10aGlzLnBvdyhGLG5ldyBVKDEpLml1c2hsbihEZS1RZS0xKSk7eWU9eWUucmVkTXVsKCRlKSxG''@;'; + put 'put ''PSRlLnJlZFNxcigpLENlPUNlLnJlZE11bChGKSxEZT1RZX1yZXR1cm4geWV9LFRlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3ZhciB6PU8uX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT16Lm5lZ2F0aXZlPyh6Lm5lZ2F0aXZlPTAsdGhpcy5pbW9kKHopLnJlZE5lZygpKTp0aGlzLmlt''@;'; + put 'put ''b2Qoeil9LFRlLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyx6KXtpZih6LmlzWmVybygpKXJldHVybiBuZXcgVSgxKS50b1JlZCh0aGlzKTtpZigwPT09ei5jbXBuKDEpKXJldHVybiBPLmNsb25lKCk7dmFyIHRlPW5ldyBBcnJheSgxNik7dGVbMF09bmV3IFUoMSkudG9SZWQodGhpcyksdGVb''@;'; + put 'put ''MV09Tztmb3IodmFyIHg9Mjt4PHRlLmxlbmd0aDt4KyspdGVbeF09dGhpcy5tdWwodGVbeC0xXSxPKTt2YXIgUD10ZVswXSxWPTAsVD0wLFM9ei5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PVMmJihTPTI2KSx4PXoubGVuZ3RoLTE7eD49MDt4LS0pe2Zvcih2YXIgRj16LndvcmRzW3hdLHllPVMt''@;'; + put 'put ''MTt5ZT49MDt5ZS0tKXt2YXIgQ2U9Rj4+eWUmMTtQIT09dGVbMF0mJihQPXRoaXMuc3FyKFApKSwwIT09Q2V8fDAhPT1WPyhWPDw9MSxWfD1DZSwoND09KytUfHwwPT09eCYmMD09PXllKSYmKFA9dGhpcy5tdWwoUCx0ZVtWXSksVD0wLFY9MCkpOlQ9MH1TPTI2fXJldHVybiBQfSxUZS5wcm90''@;'; + put 'put ''b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKE8pe3ZhciB6PU8udW1vZCh0aGlzLm0pO3JldHVybiB6PT09Tz96LmNsb25lKCk6en0sVGUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PU8uY2xvbmUoKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxVLm1vbnQ9ZnVuY3Rpb24o''@;'; + put 'put ''Tyl7cmV0dXJuIG5ldyBFZShPKX0sTWUoRWUsVGUpLEVlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLnVzaGxuKHRoaXMuc2hpZnQpKX0sRWUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PXRoaXMuaW1vZChPLm11bCh0''@;'; + put 'put ''aGlzLnJpbnYpKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxFZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIE8ud29yZHNbMF09MCxPLmxlbmd0aD0xLE87dmFyIG5lPU8uaW11bCh6KSx0ZT1uZS5tYXNrbih0aGlzLnNoaWZ0KS5t''@;'; + put 'put ''dWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1uZS5pc3ViKHRlKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJl''@;'; + put 'put ''ZCh0aGlzKX0sRWUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgbmU9Ty5tdWwoeiksdGU9bmUubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMu''@;'; + put 'put ''c2hpZnQpLm11bCh0aGlzLm0pLHg9bmUuaXN1Yih0ZSkuaXVzaHJuKHRoaXMuc2hpZnQpLFA9eDtyZXR1cm4geC5jbXAodGhpcy5tKT49MD9QPXguaXN1Yih0aGlzLm0pOnguY21wbigwKTwwJiYoUD14LmlhZGQodGhpcy5tKSksUC5fZm9yY2VSZWQodGhpcyl9LEVlLnByb3RvdHlwZS5pbnZt''@;'; + put 'put ''PWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltb2QoTy5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KFhlPUwubm1kKFhlKSx0aGlzKX0sOTYzODY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDgzODk0KSxCPUwoODA5NSksRT1MKDc1NjM0''@;'; + put 'put ''KSxNZT1MKDk1MjQ0KSxVPUwoNjEwNTIpO2Z1bmN0aW9uIFEoWil7VS5jYWxsKHRoaXMsImRpZ2VzdCIpLHRoaXMuX2hhc2g9Wn1tZShRLFUpLFEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oWil7dGhpcy5faGFzaC51cGRhdGUoWil9LFEucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiB0aGlzLl9oYXNoLmRpZ2VzdCgpfSxYZS5leHBvcnRzPWZ1bmN0aW9uKGllKXtyZXR1cm4ibWQ1Ij09PShpZT1pZS50b0xvd2VyQ2FzZSgpKT9uZXcgQjoicm1kMTYwIj09PWllfHwicmlwZW1kMTYwIj09PWllP25ldyBFOm5ldyBRKE1lKGllKSl9fSw1NTY0MDooWGUsSmUsTCk9''@;'; + put 'put ''Pnt2YXIgbWU9TCg4MDk1KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIpe3JldHVybihuZXcgbWUpLnVwZGF0ZShCKS5kaWdlc3QoKX19LDc0NTI5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4Mzg5NCksQj1MKDczMDkpLEU9TCg2MTA1MiksTWU9TCg3MzUwMikuQnVmZmVyLFU9''@;'; + put 'put ''TCg1NTY0MCksUT1MKDc1NjM0KSxaPUwoOTUyNDQpLGllPU1lLmFsbG9jKDEyOCk7ZnVuY3Rpb24gbGUoWSxXKXtFLmNhbGwodGhpcywiZGlnZXN0IiksInN0cmluZyI9PXR5cGVvZiBXJiYoVz1NZS5mcm9tKFcpKTt2YXIgTj0ic2hhNTEyIj09PVl8fCJzaGEzODQiPT09WT8xMjg6NjQ7dGhp''@;'; + put 'put ''cy5fYWxnPVksdGhpcy5fa2V5PVcsVy5sZW5ndGg+Tj9XPSgicm1kMTYwIj09PVk/bmV3IFE6WihZKSkudXBkYXRlKFcpLmRpZ2VzdCgpOlcubGVuZ3RoPE4mJihXPU1lLmNvbmNhdChbVyxpZV0sTikpO2Zvcih2YXIgcT10aGlzLl9pcGFkPU1lLmFsbG9jVW5zYWZlKE4pLEo9dGhpcy5fb3Bh''@;'; + put 'put ''ZD1NZS5hbGxvY1Vuc2FmZShOKSxzZT0wO3NlPE47c2UrKylxW3NlXT01NF5XW3NlXSxKW3NlXT05Ml5XW3NlXTt0aGlzLl9oYXNoPSJybWQxNjAiPT09WT9uZXcgUTpaKFkpLHRoaXMuX2hhc2gudXBkYXRlKHEpfW1lKGxlLEUpLGxlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFkpe3Ro''@;'; + put 'put ''aXMuX2hhc2gudXBkYXRlKFkpfSxsZS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIFk9dGhpcy5faGFzaC5kaWdlc3QoKTtyZXR1cm4oInJtZDE2MCI9PT10aGlzLl9hbGc/bmV3IFE6Wih0aGlzLl9hbGcpKS51cGRhdGUodGhpcy5fb3BhZCkudXBkYXRlKFkpLmRpZ2VzdCgpfSxY''@;'; + put 'put ''ZS5leHBvcnRzPWZ1bmN0aW9uKFcsTil7cmV0dXJuInJtZDE2MCI9PT0oVz1XLnRvTG93ZXJDYXNlKCkpfHwicmlwZW1kMTYwIj09PVc/bmV3IGxlKCJybWQxNjAiLE4pOiJtZDUiPT09Vz9uZXcgQihVLE4pOm5ldyBsZShXLE4pfX0sNzMwOTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFy''@;'; + put 'put ''IG1lPUwoODM4OTQpLEI9TCg3MzUwMikuQnVmZmVyLEU9TCg2MTA1MiksTWU9Qi5hbGxvYygxMjgpLFU9NjQ7ZnVuY3Rpb24gUShaLGllKXtFLmNhbGwodGhpcywiZGlnZXN0IiksInN0cmluZyI9PXR5cGVvZiBpZSYmKGllPUIuZnJvbShpZSkpLHRoaXMuX2FsZz1aLHRoaXMuX2tleT1pZSxp''@;'; + put 'put ''ZS5sZW5ndGg+VT9pZT1aKGllKTppZS5sZW5ndGg8VSYmKGllPUIuY29uY2F0KFtpZSxNZV0sVSkpO2Zvcih2YXIgbGU9dGhpcy5faXBhZD1CLmFsbG9jVW5zYWZlKFUpLFk9dGhpcy5fb3BhZD1CLmFsbG9jVW5zYWZlKFUpLFc9MDtXPFU7VysrKWxlW1ddPTU0XmllW1ddLFlbV109OTJeaWVb''@;'; + put 'put ''V107dGhpcy5faGFzaD1bbGVdfW1lKFEsRSksUS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihaKXt0aGlzLl9oYXNoLnB1c2goWil9LFEucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBaPXRoaXMuX2FsZyhCLmNvbmNhdCh0aGlzLl9oYXNoKSk7cmV0dXJuIHRoaXMuX2FsZyhC''@;'; + put 'put ''LmNvbmNhdChbdGhpcy5fb3BhZCxaXSkpfSxYZS5leHBvcnRzPVF9LDQxMzQ4OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtKZS5yYW5kb21CeXRlcz1KZS5ybmc9SmUucHNldWRvUmFuZG9tQnl0ZXM9SmUucHJuZz1MKDUzNzUzKSxKZS5jcmVhdGVIYXNoPUplLkhhc2g9TCg5NjM4NiksSmUu''@;'; + put 'put ''Y3JlYXRlSG1hYz1KZS5IbWFjPUwoNzQ1MjkpO3ZhciBtZT1MKDg3NzkzKSxCPU9iamVjdC5rZXlzKG1lKSxFPVsic2hhMSIsInNoYTIyNCIsInNoYTI1NiIsInNoYTM4NCIsInNoYTUxMiIsIm1kNSIsInJtZDE2MCJdLmNvbmNhdChCKTtKZS5nZXRIYXNoZXM9ZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''RX07dmFyIE1lPUwoOTkzNTcpO0plLnBia2RmMj1NZS5wYmtkZjIsSmUucGJrZGYyU3luYz1NZS5wYmtkZjJTeW5jO3ZhciBVPUwoNTUyNTUpO0plLkNpcGhlcj1VLkNpcGhlcixKZS5jcmVhdGVDaXBoZXI9VS5jcmVhdGVDaXBoZXIsSmUuQ2lwaGVyaXY9VS5DaXBoZXJpdixKZS5jcmVhdGVD''@;'; + put 'put ''aXBoZXJpdj1VLmNyZWF0ZUNpcGhlcml2LEplLkRlY2lwaGVyPVUuRGVjaXBoZXIsSmUuY3JlYXRlRGVjaXBoZXI9VS5jcmVhdGVEZWNpcGhlcixKZS5EZWNpcGhlcml2PVUuRGVjaXBoZXJpdixKZS5jcmVhdGVEZWNpcGhlcml2PVUuY3JlYXRlRGVjaXBoZXJpdixKZS5nZXRDaXBoZXJzPVUu''@;'; + put 'put ''Z2V0Q2lwaGVycyxKZS5saXN0Q2lwaGVycz1VLmxpc3RDaXBoZXJzO3ZhciBRPUwoOTg4MjkpO0plLkRpZmZpZUhlbGxtYW5Hcm91cD1RLkRpZmZpZUhlbGxtYW5Hcm91cCxKZS5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXA9US5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXAsSmUuZ2V0RGlmZmll''@;'; + put 'put ''SGVsbG1hbj1RLmdldERpZmZpZUhlbGxtYW4sSmUuY3JlYXRlRGlmZmllSGVsbG1hbj1RLmNyZWF0ZURpZmZpZUhlbGxtYW4sSmUuRGlmZmllSGVsbG1hbj1RLkRpZmZpZUhlbGxtYW47dmFyIFo9TCgzOTIzKTtKZS5jcmVhdGVTaWduPVouY3JlYXRlU2lnbixKZS5TaWduPVouU2lnbixKZS5j''@;'; + put 'put ''cmVhdGVWZXJpZnk9Wi5jcmVhdGVWZXJpZnksSmUuVmVyaWZ5PVouVmVyaWZ5LEplLmNyZWF0ZUVDREg9TCg3NDc0Nik7dmFyIGllPUwoNjM3MDEpO0plLnB1YmxpY0VuY3J5cHQ9aWUucHVibGljRW5jcnlwdCxKZS5wcml2YXRlRW5jcnlwdD1pZS5wcml2YXRlRW5jcnlwdCxKZS5wdWJsaWNE''@;'; + put 'put ''ZWNyeXB0PWllLnB1YmxpY0RlY3J5cHQsSmUucHJpdmF0ZURlY3J5cHQ9aWUucHJpdmF0ZURlY3J5cHQ7dmFyIGxlPUwoMTQyNzUpO0plLnJhbmRvbUZpbGw9bGUucmFuZG9tRmlsbCxKZS5yYW5kb21GaWxsU3luYz1sZS5yYW5kb21GaWxsU3luYyxKZS5jcmVhdGVDcmVkZW50aWFscz1mdW5j''@;'; + put 'put ''dGlvbigpe3Rocm93IG5ldyBFcnJvcihbInNvcnJ5LCBjcmVhdGVDcmVkZW50aWFscyBpcyBub3QgaW1wbGVtZW50ZWQgeWV0Iiwid2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMiLCJodHRwczovL2dpdGh1Yi5jb20vY3J5cHRvLWJyb3dzZXJpZnkvY3J5cHRvLWJyb3dzZXJpZnkiXS5qb2luKCJc''@;'; + put 'put ''biIpKX0sSmUuY29uc3RhbnRzPXtESF9DSEVDS19QX05PVF9TQUZFX1BSSU1FOjIsREhfQ0hFQ0tfUF9OT1RfUFJJTUU6MSxESF9VTkFCTEVfVE9fQ0hFQ0tfR0VORVJBVE9SOjQsREhfTk9UX1NVSVRBQkxFX0dFTkVSQVRPUjo4LE5QTl9FTkFCTEVEOjEsQUxQTl9FTkFCTEVEOjEsUlNBX1BL''@;'; + put 'put ''Q1MxX1BBRERJTkc6MSxSU0FfU1NMVjIzX1BBRERJTkc6MixSU0FfTk9fUEFERElORzozLFJTQV9QS0NTMV9PQUVQX1BBRERJTkc6NCxSU0FfWDkzMV9QQURESU5HOjUsUlNBX1BLQ1MxX1BTU19QQURESU5HOjYsUE9JTlRfQ09OVkVSU0lPTl9DT01QUkVTU0VEOjIsUE9JTlRfQ09OVkVSU0lP''@;'; + put 'put ''Tl9VTkNPTVBSRVNTRUQ6NCxQT0lOVF9DT05WRVJTSU9OX0hZQlJJRDo2fX0sNjc1ODU6ZnVuY3Rpb24oWGUsSmUpe3ZhciBtZSxFLE1lLFUsUSxaLGllLGxlLFksVyxOLHEsTDtYZS5leHBvcnRzPShMPUx8fChtZT1NYXRoLEU9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24oKXtmdW5jdGlvbiBK''@;'; + put 'put ''KCl7fXJldHVybiBmdW5jdGlvbihzZSl7dmFyIG9lO3JldHVybiBKLnByb3RvdHlwZT1zZSxvZT1uZXcgSixKLnByb3RvdHlwZT1udWxsLG9lfX0oKSxVPShNZT17fSkubGliPXt9LFE9VS5CYXNlPXtleHRlbmQ6ZnVuY3Rpb24oSil7dmFyIHNlPUUodGhpcyk7cmV0dXJuIEomJnNlLm1peElu''@;'; + put 'put ''KEopLCghc2UuaGFzT3duUHJvcGVydHkoImluaXQiKXx8dGhpcy5pbml0PT09c2UuaW5pdCkmJihzZS5pbml0PWZ1bmN0aW9uKCl7c2UuJHN1cGVyLmluaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksc2UuaW5pdC5wcm90b3R5cGU9c2Usc2UuJHN1cGVyPXRoaXMsc2V9LGNyZWF0ZTpmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciBKPXRoaXMuZXh0ZW5kKCk7cmV0dXJuIEouaW5pdC5hcHBseShKLGFyZ3VtZW50cyksSn0saW5pdDpmdW5jdGlvbigpe30sbWl4SW46ZnVuY3Rpb24oSil7Zm9yKHZhciBzZSBpbiBKKUouaGFzT3duUHJvcGVydHkoc2UpJiYodGhpc1tzZV09SltzZV0pO0ouaGFzT3duUHJv''@;'; + put 'put ''cGVydHkoInRvU3RyaW5nIikmJih0aGlzLnRvU3RyaW5nPUoudG9TdHJpbmcpfSxjbG9uZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluaXQucHJvdG90eXBlLmV4dGVuZCh0aGlzKX19LFo9VS5Xb3JkQXJyYXk9US5leHRlbmQoe2luaXQ6ZnVuY3Rpb24oSixzZSl7Sj10aGlzLndvcmRzPUp8''@;'; + put 'put ''fFtdLHRoaXMuc2lnQnl0ZXM9bnVsbCE9c2U/c2U6NCpKLmxlbmd0aH0sdG9TdHJpbmc6ZnVuY3Rpb24oSil7cmV0dXJuKEp8fGxlKS5zdHJpbmdpZnkodGhpcyl9LGNvbmNhdDpmdW5jdGlvbihKKXt2YXIgc2U9dGhpcy53b3JkcyxvZT1KLndvcmRzLGNlPXRoaXMuc2lnQnl0ZXMsZGU9Si5z''@;'; + put 'put ''aWdCeXRlcztpZih0aGlzLmNsYW1wKCksY2UlNClmb3IodmFyIHZlPTA7dmU8ZGU7dmUrKylzZVtjZSt2ZT4+PjJdfD0ob2VbdmU+Pj4yXT4+PjI0LXZlJTQqOCYyNTUpPDwyNC0oY2UrdmUpJTQqODtlbHNlIGZvcih2ZT0wO3ZlPGRlO3ZlKz00KXNlW2NlK3ZlPj4+Ml09b2VbdmU+Pj4yXTty''@;'; + put 'put ''ZXR1cm4gdGhpcy5zaWdCeXRlcys9ZGUsdGhpc30sY2xhbXA6ZnVuY3Rpb24oKXt2YXIgSj10aGlzLndvcmRzLHNlPXRoaXMuc2lnQnl0ZXM7SltzZT4+PjJdJj00Mjk0OTY3Mjk1PDwzMi1zZSU0KjgsSi5sZW5ndGg9bWUuY2VpbChzZS80KX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgSj1RLmNs''@;'; + put 'put ''b25lLmNhbGwodGhpcyk7cmV0dXJuIEoud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSxKfSxyYW5kb206ZnVuY3Rpb24oSil7Zm9yKHZhciBkZSxzZT1bXSxvZT1mdW5jdGlvbihrZSl7dmFyIFNlPTk4NzY1NDMyMSxJZT00Mjk0OTY3Mjk1O3JldHVybiBmdW5jdGlvbigpe3ZhciBUZT0oKFNl''@;'; + put 'put ''PTM2OTY5Kig2NTUzNSZTZSkrKFNlPj4xNikmSWUpPDwxNikrKGtlPTE4ZTMqKDY1NTM1JmtlKSsoa2U+PjE2KSZJZSkmSWU7cmV0dXJuIFRlLz00Mjk0OTY3Mjk2LChUZSs9LjUpKihtZS5yYW5kb20oKT4uNT8xOi0xKX19LGNlPTA7Y2U8SjtjZSs9NCl7dmFyIHZlPW9lKDQyOTQ5NjcyOTYq''@;'; + put 'put ''KGRlfHxtZS5yYW5kb20oKSkpO2RlPTk4NzY1NDA3MSp2ZSgpLHNlLnB1c2goNDI5NDk2NzI5Nip2ZSgpfDApfXJldHVybiBuZXcgWi5pbml0KHNlLEopfX0pLGllPU1lLmVuYz17fSxsZT1pZS5IZXg9e3N0cmluZ2lmeTpmdW5jdGlvbihKKXtmb3IodmFyIHNlPUoud29yZHMsb2U9Si5zaWdC''@;'; + put 'put ''eXRlcyxjZT1bXSxkZT0wO2RlPG9lO2RlKyspe3ZhciB2ZT1zZVtkZT4+PjJdPj4+MjQtZGUlNCo4JjI1NTtjZS5wdXNoKCh2ZT4+PjQpLnRvU3RyaW5nKDE2KSksY2UucHVzaCgoMTUmdmUpLnRvU3RyaW5nKDE2KSl9cmV0dXJuIGNlLmpvaW4oIiIpfSxwYXJzZTpmdW5jdGlvbihKKXtmb3Io''@;'; + put 'put ''dmFyIHNlPUoubGVuZ3RoLG9lPVtdLGNlPTA7Y2U8c2U7Y2UrPTIpb2VbY2U+Pj4zXXw9cGFyc2VJbnQoSi5zdWJzdHIoY2UsMiksMTYpPDwyNC1jZSU4KjQ7cmV0dXJuIG5ldyBaLmluaXQob2Usc2UvMil9fSxZPWllLkxhdGluMT17c3RyaW5naWZ5OmZ1bmN0aW9uKEope2Zvcih2YXIgc2U9''@;'; + put 'put ''Si53b3JkcyxvZT1KLnNpZ0J5dGVzLGNlPVtdLGRlPTA7ZGU8b2U7ZGUrKyljZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoc2VbZGU+Pj4yXT4+PjI0LWRlJTQqOCYyNTUpKTtyZXR1cm4gY2Uuam9pbigiIil9LHBhcnNlOmZ1bmN0aW9uKEope2Zvcih2YXIgc2U9Si5sZW5ndGgsb2U9W10s''@;'; + put 'put ''Y2U9MDtjZTxzZTtjZSsrKW9lW2NlPj4+Ml18PSgyNTUmSi5jaGFyQ29kZUF0KGNlKSk8PDI0LWNlJTQqODtyZXR1cm4gbmV3IFouaW5pdChvZSxzZSl9fSxXPWllLlV0Zjg9e3N0cmluZ2lmeTpmdW5jdGlvbihKKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoWS5zdHJp''@;'; + put 'put ''bmdpZnkoSikpKX1jYXRjaChzZSl7dGhyb3cgbmV3IEVycm9yKCJNYWxmb3JtZWQgVVRGLTggZGF0YSIpfX0scGFyc2U6ZnVuY3Rpb24oSil7cmV0dXJuIFkucGFyc2UodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEopKSl9fSxOPVUuQnVmZmVyZWRCbG9ja0FsZ29yaXRobT1RLmV4dGVu''@;'; + put 'put ''ZCh7cmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9kYXRhPW5ldyBaLmluaXQsdGhpcy5fbkRhdGFCeXRlcz0wfSxfYXBwZW5kOmZ1bmN0aW9uKEopeyJzdHJpbmciPT10eXBlb2YgSiYmKEo9Vy5wYXJzZShKKSksdGhpcy5fZGF0YS5jb25jYXQoSiksdGhpcy5fbkRhdGFCeXRlcys9Si5zaWdCeXRl''@;'; + put 'put ''c30sX3Byb2Nlc3M6ZnVuY3Rpb24oSil7dmFyIHNlPXRoaXMuX2RhdGEsb2U9c2Uud29yZHMsY2U9c2Uuc2lnQnl0ZXMsZGU9dGhpcy5ibG9ja1NpemUsQWU9Y2UvKDQqZGUpLGtlPShBZT1KP21lLmNlaWwoQWUpOm1lLm1heCgoMHxBZSktdGhpcy5fbWluQnVmZmVyU2l6ZSwwKSkqZGUsU2U9''@;'; + put 'put ''bWUubWluKDQqa2UsY2UpO2lmKGtlKXtmb3IodmFyIEllPTA7SWU8a2U7SWUrPWRlKXRoaXMuX2RvUHJvY2Vzc0Jsb2NrKG9lLEllKTt2YXIgVGU9b2Uuc3BsaWNlKDAsa2UpO3NlLnNpZ0J5dGVzLT1TZX1yZXR1cm4gbmV3IFouaW5pdChUZSxTZSl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIEo9''@;'; + put 'put ''US5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiBKLl9kYXRhPXRoaXMuX2RhdGEuY2xvbmUoKSxKfSxfbWluQnVmZmVyU2l6ZTowfSksVS5IYXNoZXI9Ti5leHRlbmQoe2NmZzpRLmV4dGVuZCgpLGluaXQ6ZnVuY3Rpb24oSil7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKEopLHRoaXMucmVzZXQo''@;'; + put 'put ''KX0scmVzZXQ6ZnVuY3Rpb24oKXtOLnJlc2V0LmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfSx1cGRhdGU6ZnVuY3Rpb24oSil7cmV0dXJuIHRoaXMuX2FwcGVuZChKKSx0aGlzLl9wcm9jZXNzKCksdGhpc30sZmluYWxpemU6ZnVuY3Rpb24oSil7cmV0dXJuIEomJnRoaXMuX2FwcGVuZChK''@;'; + put 'put ''KSx0aGlzLl9kb0ZpbmFsaXplKCl9LGJsb2NrU2l6ZToxNixfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKEope3JldHVybiBmdW5jdGlvbihzZSxvZSl7cmV0dXJuIG5ldyBKLmluaXQob2UpLmZpbmFsaXplKHNlKX19LF9jcmVhdGVIbWFjSGVscGVyOmZ1bmN0aW9uKEope3JldHVybiBmdW5jdGlv''@;'; + put 'put ''bihzZSxvZSl7cmV0dXJuIG5ldyBxLkhNQUMuaW5pdChKLG9lKS5maW5hbGl6ZShzZSl9fX0pLHE9TWUuYWxnbz17fSxNZSksTCl9LDk0OTM6ZnVuY3Rpb24oWGUsSmUsTCl7dmFyIG1lO1hlLmV4cG9ydHM9KG1lPUwoNjc1ODUpLGZ1bmN0aW9uKEIpe3ZhciBFPW1lLE1lPUUubGliLFU9TWUu''@;'; + put 'put ''V29yZEFycmF5LFE9TWUuSGFzaGVyLFo9RS5hbGdvLGllPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgcT0wO3E8NjQ7cSsrKWllW3FdPTQyOTQ5NjcyOTYqQi5hYnMoQi5zaW4ocSsxKSl8MH0oKTt2YXIgbGU9Wi5NRDU9US5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1u''@;'; + put 'put ''ZXcgVS5pbml0KFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzhdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHEsSil7Zm9yKHZhciBzZT0wO3NlPDE2O3NlKyspe3ZhciBvZT1KK3NlLGNlPXFbb2VdO3Fbb2VdPTE2NzExOTM1JihjZTw8OHxjZT4+PjI0KXw0''@;'; + put 'put ''Mjc4MjU1MzYwJihjZTw8MjR8Y2U+Pj44KX12YXIgZGU9dGhpcy5faGFzaC53b3Jkcyx2ZT1xW0orMF0sQWU9cVtKKzFdLGtlPXFbSisyXSxTZT1xW0orM10sSWU9cVtKKzRdLFRlPXFbSis1XSxFZT1xW0orNl0saGU9cVtKKzddLE89cVtKKzhdLHo9cVtKKzldLG5lPXFbSisxMF0sdGU9cVtK''@;'; + put 'put ''KzExXSx4PXFbSisxMl0sUD1xW0orMTNdLFY9cVtKKzE0XSxUPXFbSisxNV0sUz1kZVswXSxGPWRlWzFdLHllPWRlWzJdLENlPWRlWzNdO1M9WShTLEYseWUsQ2UsdmUsNyxpZVswXSksQ2U9WShDZSxTLEYseWUsQWUsMTIsaWVbMV0pLHllPVkoeWUsQ2UsUyxGLGtlLDE3LGllWzJdKSxGPVko''@;'; + put 'put ''Rix5ZSxDZSxTLFNlLDIyLGllWzNdKSxTPVkoUyxGLHllLENlLEllLDcsaWVbNF0pLENlPVkoQ2UsUyxGLHllLFRlLDEyLGllWzVdKSx5ZT1ZKHllLENlLFMsRixFZSwxNyxpZVs2XSksRj1ZKEYseWUsQ2UsUyxoZSwyMixpZVs3XSksUz1ZKFMsRix5ZSxDZSxPLDcsaWVbOF0pLENlPVkoQ2Us''@;'; + put 'put ''UyxGLHllLHosMTIsaWVbOV0pLHllPVkoeWUsQ2UsUyxGLG5lLDE3LGllWzEwXSksRj1ZKEYseWUsQ2UsUyx0ZSwyMixpZVsxMV0pLFM9WShTLEYseWUsQ2UseCw3LGllWzEyXSksQ2U9WShDZSxTLEYseWUsUCwxMixpZVsxM10pLHllPVkoeWUsQ2UsUyxGLFYsMTcsaWVbMTRdKSxTPVcoUyxG''@;'; + put 'put ''PVkoRix5ZSxDZSxTLFQsMjIsaWVbMTVdKSx5ZSxDZSxBZSw1LGllWzE2XSksQ2U9VyhDZSxTLEYseWUsRWUsOSxpZVsxN10pLHllPVcoeWUsQ2UsUyxGLHRlLDE0LGllWzE4XSksRj1XKEYseWUsQ2UsUyx2ZSwyMCxpZVsxOV0pLFM9VyhTLEYseWUsQ2UsVGUsNSxpZVsyMF0pLENlPVcoQ2Us''@;'; + put 'put ''UyxGLHllLG5lLDksaWVbMjFdKSx5ZT1XKHllLENlLFMsRixULDE0LGllWzIyXSksRj1XKEYseWUsQ2UsUyxJZSwyMCxpZVsyM10pLFM9VyhTLEYseWUsQ2Useiw1LGllWzI0XSksQ2U9VyhDZSxTLEYseWUsViw5LGllWzI1XSkseWU9Vyh5ZSxDZSxTLEYsU2UsMTQsaWVbMjZdKSxGPVcoRix5''@;'; + put 'put ''ZSxDZSxTLE8sMjAsaWVbMjddKSxTPVcoUyxGLHllLENlLFAsNSxpZVsyOF0pLENlPVcoQ2UsUyxGLHllLGtlLDksaWVbMjldKSx5ZT1XKHllLENlLFMsRixoZSwxNCxpZVszMF0pLFM9TihTLEY9VyhGLHllLENlLFMseCwyMCxpZVszMV0pLHllLENlLFRlLDQsaWVbMzJdKSxDZT1OKENlLFMs''@;'; + put 'put ''Rix5ZSxPLDExLGllWzMzXSkseWU9Tih5ZSxDZSxTLEYsdGUsMTYsaWVbMzRdKSxGPU4oRix5ZSxDZSxTLFYsMjMsaWVbMzVdKSxTPU4oUyxGLHllLENlLEFlLDQsaWVbMzZdKSxDZT1OKENlLFMsRix5ZSxJZSwxMSxpZVszN10pLHllPU4oeWUsQ2UsUyxGLGhlLDE2LGllWzM4XSksRj1OKEYs''@;'; + put 'put ''eWUsQ2UsUyxuZSwyMyxpZVszOV0pLFM9TihTLEYseWUsQ2UsUCw0LGllWzQwXSksQ2U9TihDZSxTLEYseWUsdmUsMTEsaWVbNDFdKSx5ZT1OKHllLENlLFMsRixTZSwxNixpZVs0Ml0pLEY9TihGLHllLENlLFMsRWUsMjMsaWVbNDNdKSxTPU4oUyxGLHllLENlLHosNCxpZVs0NF0pLENlPU4o''@;'; + put 'put ''Q2UsUyxGLHllLHgsMTEsaWVbNDVdKSx5ZT1OKHllLENlLFMsRixULDE2LGllWzQ2XSksUz1lZShTLEY9TihGLHllLENlLFMsa2UsMjMsaWVbNDddKSx5ZSxDZSx2ZSw2LGllWzQ4XSksQ2U9ZWUoQ2UsUyxGLHllLGhlLDEwLGllWzQ5XSkseWU9ZWUoeWUsQ2UsUyxGLFYsMTUsaWVbNTBdKSxG''@;'; + put 'put ''PWVlKEYseWUsQ2UsUyxUZSwyMSxpZVs1MV0pLFM9ZWUoUyxGLHllLENlLHgsNixpZVs1Ml0pLENlPWVlKENlLFMsRix5ZSxTZSwxMCxpZVs1M10pLHllPWVlKHllLENlLFMsRixuZSwxNSxpZVs1NF0pLEY9ZWUoRix5ZSxDZSxTLEFlLDIxLGllWzU1XSksUz1lZShTLEYseWUsQ2UsTyw2LGll''@;'; + put 'put ''WzU2XSksQ2U9ZWUoQ2UsUyxGLHllLFQsMTAsaWVbNTddKSx5ZT1lZSh5ZSxDZSxTLEYsRWUsMTUsaWVbNThdKSxGPWVlKEYseWUsQ2UsUyxQLDIxLGllWzU5XSksUz1lZShTLEYseWUsQ2UsSWUsNixpZVs2MF0pLENlPWVlKENlLFMsRix5ZSx0ZSwxMCxpZVs2MV0pLHllPWVlKHllLENlLFMs''@;'; + put 'put ''RixrZSwxNSxpZVs2Ml0pLEY9ZWUoRix5ZSxDZSxTLHosMjEsaWVbNjNdKSxkZVswXT1kZVswXStTfDAsZGVbMV09ZGVbMV0rRnwwLGRlWzJdPWRlWzJdK3llfDAsZGVbM109ZGVbM10rQ2V8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgcT10aGlzLl9kYXRhLEo9cS53b3JkcyxzZT04''@;'; + put 'put ''KnRoaXMuX25EYXRhQnl0ZXMsb2U9OCpxLnNpZ0J5dGVzO0pbb2U+Pj41XXw9MTI4PDwyNC1vZSUzMjt2YXIgY2U9Qi5mbG9vcihzZS80Mjk0OTY3Mjk2KSxkZT1zZTtKWzE1KyhvZSs2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoY2U8PDh8Y2U+Pj4yNCl8NDI3ODI1NTM2MCYoY2U8PDI0fGNlPj4+''@;'; + put 'put ''OCksSlsxNCsob2UrNjQ+Pj45PDw0KV09MTY3MTE5MzUmKGRlPDw4fGRlPj4+MjQpfDQyNzgyNTUzNjAmKGRlPDwyNHxkZT4+PjgpLHEuc2lnQnl0ZXM9NCooSi5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgdmU9dGhpcy5faGFzaCxBZT12ZS53b3JkcyxrZT0wO2tlPDQ7a2Ur''@;'; + put 'put ''Kyl7dmFyIFNlPUFlW2tlXTtBZVtrZV09MTY3MTE5MzUmKFNlPDw4fFNlPj4+MjQpfDQyNzgyNTUzNjAmKFNlPDwyNHxTZT4+PjgpfXJldHVybiB2ZX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgcT1RLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHEuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHF9''@;'; + put 'put ''fSk7ZnVuY3Rpb24gWShxLEosc2Usb2UsY2UsZGUsdmUpe3ZhciBBZT1xKyhKJnNlfH5KJm9lKStjZSt2ZTtyZXR1cm4oQWU8PGRlfEFlPj4+MzItZGUpK0p9ZnVuY3Rpb24gVyhxLEosc2Usb2UsY2UsZGUsdmUpe3ZhciBBZT1xKyhKJm9lfHNlJn5vZSkrY2UrdmU7cmV0dXJuKEFlPDxkZXxB''@;'; + put 'put ''ZT4+PjMyLWRlKStKfWZ1bmN0aW9uIE4ocSxKLHNlLG9lLGNlLGRlLHZlKXt2YXIgQWU9cSsoSl5zZV5vZSkrY2UrdmU7cmV0dXJuKEFlPDxkZXxBZT4+PjMyLWRlKStKfWZ1bmN0aW9uIGVlKHEsSixzZSxvZSxjZSxkZSx2ZSl7dmFyIEFlPXErKHNlXihKfH5vZSkpK2NlK3ZlO3JldHVybihB''@;'; + put 'put ''ZTw8ZGV8QWU+Pj4zMi1kZSkrSn1FLk1ENT1RLl9jcmVhdGVIZWxwZXIobGUpLEUuSG1hY01ENT1RLl9jcmVhdGVIbWFjSGVscGVyKGxlKX0oTWF0aCksbWUuTUQ1KX0sNTI3ODY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7Qjg6KCk9PlNlLElsOigpPT5CLEo1OigpPT5NZSxT''@;'; + put 'put ''VTooKT0+a2UsU3M6KCk9PkllLFltOigpPT5uZSxaUDooKT0+ZGUseFY6KCk9PkV9KTt2YXIgbWU9TCg2ODg4NCk7ZnVuY3Rpb24gQigpe312YXIgRT0uNyxNZT0xL0UsVT0iXFxzKihbKy1dP1xcZCspXFxzKiIsUT0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPylc''@;'; + put 'put ''XHMqIixaPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixpZT0vXiMoWzAtOWEtZl17Myw4fSkkLyxsZT1uZXcgUmVnRXhwKCJecmdiXFwoIitbVSxVLFVdKyJcXCkkIiksWT1uZXcgUmVnRXhwKCJecmdiXFwoIitbWixaLFpdKyJcXCkkIiksVz1uZXcg''@;'; + put 'put ''UmVnRXhwKCJecmdiYVxcKCIrW1UsVSxVLFFdKyJcXCkkIiksTj1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW1osWixaLFFdKyJcXCkkIiksZWU9bmV3IFJlZ0V4cCgiXmhzbFxcKCIrW1EsWixaXSsiXFwpJCIpLHE9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1tRLFosWixRXSsiXFwpJCIpLEo9e2Fs''@;'; + put 'put ''aWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xl''@;'; + put 'put ''dDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjox''@;'; + put 'put ''NDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJr''@;'; + put 'put ''b2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtz''@;'; + put 'put ''bGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxv''@;'; + put 'put ''cmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzox''@;'; + put 'put ''MTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXdu''@;'; + put 'put ''Z3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGln''@;'; + put 'put ''aHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0''@;'; + put 'put ''NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1l''@;'; + put 'put ''ZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRj''@;'; + put 'put ''cmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQs''@;'; + put 'put ''b3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3''@;'; + put 'put ''NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNh''@;'; + put 'put ''bmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1''@;'; + put 'put ''OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0''@;'; + put 'put ''ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH07ZnVuY3Rpb24gc2UoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXgoKX1mdW5jdGlvbiBjZSgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdFJnYigpfWZ1bmN0aW9uIGRlKFApe3ZhciBWLFQ7''@;'; + put 'put ''cmV0dXJuIFA9KFArIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLChWPWllLmV4ZWMoUCkpPyhUPVZbMV0ubGVuZ3RoLFY9cGFyc2VJbnQoVlsxXSwxNiksNj09PVQ/dmUoVik6Mz09PVQ/bmV3IEllKFY+PjgmMTV8Vj4+NCYyNDAsVj4+NCYxNXwyNDAmViwoMTUmVik8PDR8MTUmViwxKTo4PT09''@;'; + put 'put ''VD9BZShWPj4yNCYyNTUsVj4+MTYmMjU1LFY+PjgmMjU1LCgyNTUmVikvMjU1KTo0PT09VD9BZShWPj4xMiYxNXxWPj44JjI0MCxWPj44JjE1fFY+PjQmMjQwLFY+PjQmMTV8MjQwJlYsKCgxNSZWKTw8NHwxNSZWKS8yNTUpOm51bGwpOihWPWxlLmV4ZWMoUCkpP25ldyBJZShWWzFdLFZbMl0s''@;'; + put 'put ''VlszXSwxKTooVj1ZLmV4ZWMoUCkpP25ldyBJZSgyNTUqVlsxXS8xMDAsMjU1KlZbMl0vMTAwLDI1NSpWWzNdLzEwMCwxKTooVj1XLmV4ZWMoUCkpP0FlKFZbMV0sVlsyXSxWWzNdLFZbNF0pOihWPU4uZXhlYyhQKSk/QWUoMjU1KlZbMV0vMTAwLDI1NSpWWzJdLzEwMCwyNTUqVlszXS8xMDAs''@;'; + put 'put ''Vls0XSk6KFY9ZWUuZXhlYyhQKSk/TyhWWzFdLFZbMl0vMTAwLFZbM10vMTAwLDEpOihWPXEuZXhlYyhQKSk/TyhWWzFdLFZbMl0vMTAwLFZbM10vMTAwLFZbNF0pOkouaGFzT3duUHJvcGVydHkoUCk/dmUoSltQXSk6InRyYW5zcGFyZW50Ij09PVA/bmV3IEllKE5hTixOYU4sTmFOLDApOm51''@;'; + put 'put ''bGx9ZnVuY3Rpb24gdmUoUCl7cmV0dXJuIG5ldyBJZShQPj4xNiYyNTUsUD4+OCYyNTUsMjU1JlAsMSl9ZnVuY3Rpb24gQWUoUCxWLFQsUyl7cmV0dXJuIFM8PTAmJihQPVY9VD1OYU4pLG5ldyBJZShQLFYsVCxTKX1mdW5jdGlvbiBrZShQKXtyZXR1cm4gUCBpbnN0YW5jZW9mIEJ8fChQPWRl''@;'; + put 'put ''KFApKSxQP25ldyBJZSgoUD1QLnJnYigpKS5yLFAuZyxQLmIsUC5vcGFjaXR5KTpuZXcgSWV9ZnVuY3Rpb24gU2UoUCxWLFQsUyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2tlKFApOm5ldyBJZShQLFYsVCxudWxsPT1TPzE6Uyl9ZnVuY3Rpb24gSWUoUCxWLFQsUyl7dGhpcy5yPStQ''@;'; + put 'put ''LHRoaXMuZz0rVix0aGlzLmI9K1QsdGhpcy5vcGFjaXR5PStTfWZ1bmN0aW9uIFRlKCl7cmV0dXJuIiMiK2hlKHRoaXMucikraGUodGhpcy5nKStoZSh0aGlzLmIpfWZ1bmN0aW9uIEVlKCl7dmFyIFA9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KFA9aXNOYU4oUCk/MTpNYXRoLm1heCgwLE1h''@;'; + put 'put ''dGgubWluKDEsUCkpKT8icmdiKCI6InJnYmEoIikrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLnIpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuZyl8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgu''@;'; + put 'put ''cm91bmQodGhpcy5iKXx8MCkpKygxPT09UD8iKSI6IiwgIitQKyIpIil9ZnVuY3Rpb24gaGUoUCl7cmV0dXJuKChQPU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQoUCl8fDApKSk8MTY/IjAiOiIiKStQLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBPKFAsVixULFMpe3JldHVybiBT''@;'; + put 'put ''PD0wP1A9Vj1UPU5hTjpUPD0wfHxUPj0xP1A9Vj1OYU46Vjw9MCYmKFA9TmFOKSxuZXcgdGUoUCxWLFQsUyl9ZnVuY3Rpb24geihQKXtpZihQIGluc3RhbmNlb2YgdGUpcmV0dXJuIG5ldyB0ZShQLmgsUC5zLFAubCxQLm9wYWNpdHkpO2lmKFAgaW5zdGFuY2VvZiBCfHwoUD1kZShQKSksIVAp''@;'; + put 'put ''cmV0dXJuIG5ldyB0ZTtpZihQIGluc3RhbmNlb2YgdGUpcmV0dXJuIFA7dmFyIFY9KFA9UC5yZ2IoKSkuci8yNTUsVD1QLmcvMjU1LFM9UC5iLzI1NSxGPU1hdGgubWluKFYsVCxTKSx5ZT1NYXRoLm1heChWLFQsUyksQ2U9TmFOLERlPXllLUYsUGU9KHllK0YpLzI7cmV0dXJuIERlPyhDZT1W''@;'; + put 'put ''PT09eWU/KFQtUykvRGUrNiooVDxTKTpUPT09eWU/KFMtVikvRGUrMjooVi1UKS9EZSs0LERlLz1QZTwuNT95ZStGOjIteWUtRixDZSo9NjApOkRlPVBlPjAmJlBlPDE/MDpDZSxuZXcgdGUoQ2UsRGUsUGUsUC5vcGFjaXR5KX1mdW5jdGlvbiBuZShQLFYsVCxTKXtyZXR1cm4gMT09PWFyZ3Vt''@;'; + put 'put ''ZW50cy5sZW5ndGg/eihQKTpuZXcgdGUoUCxWLFQsbnVsbD09Uz8xOlMpfWZ1bmN0aW9uIHRlKFAsVixULFMpe3RoaXMuaD0rUCx0aGlzLnM9K1YsdGhpcy5sPStULHRoaXMub3BhY2l0eT0rU31mdW5jdGlvbiB4KFAsVixUKXtyZXR1cm4gMjU1KihQPDYwP1YrKFQtVikqUC82MDpQPDE4MD9U''@;'; + put 'put ''OlA8MjQwP1YrKFQtVikqKDI0MC1QKS82MDpWKX0oMCxtZS5aKShCLGRlLHtjb3B5OmZ1bmN0aW9uKFApe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsUCl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUo''@;'; + put 'put ''KX0saGV4OnNlLGZvcm1hdEhleDpzZSxmb3JtYXRIc2w6ZnVuY3Rpb24gb2UoKXtyZXR1cm4geih0aGlzKS5mb3JtYXRIc2woKX0sZm9ybWF0UmdiOmNlLHRvU3RyaW5nOmNlfSksKDAsbWUuWikoSWUsU2UsKDAsbWUubCkoQix7YnJpZ2h0ZXI6ZnVuY3Rpb24oUCl7cmV0dXJuIFA9bnVsbD09''@;'; + put 'put ''UD9NZTpNYXRoLnBvdyhNZSxQKSxuZXcgSWUodGhpcy5yKlAsdGhpcy5nKlAsdGhpcy5iKlAsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKFApe3JldHVybiBQPW51bGw9PVA/RTpNYXRoLnBvdyhFLFApLG5ldyBJZSh0aGlzLnIqUCx0aGlzLmcqUCx0aGlzLmIqUCx0aGlzLm9wYWNp''@;'; + put 'put ''dHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4tLjU8PXRoaXMuciYmdGhpcy5yPDI1NS41JiYtLjU8PXRoaXMuZyYmdGhpcy5nPDI1NS41JiYtLjU8PXRoaXMuYiYmdGhpcy5iPDI1NS41JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMu''@;'; + put 'put ''b3BhY2l0eTw9MX0saGV4OlRlLGZvcm1hdEhleDpUZSxmb3JtYXRSZ2I6RWUsdG9TdHJpbmc6RWV9KSksKDAsbWUuWikodGUsbmUsKDAsbWUubCkoQix7YnJpZ2h0ZXI6ZnVuY3Rpb24oUCl7cmV0dXJuIFA9bnVsbD09UD9NZTpNYXRoLnBvdyhNZSxQKSxuZXcgdGUodGhpcy5oLHRoaXMucyx0''@;'; + put 'put ''aGlzLmwqUCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24oUCl7cmV0dXJuIFA9bnVsbD09UD9FOk1hdGgucG93KEUsUCksbmV3IHRlKHRoaXMuaCx0aGlzLnMsdGhpcy5sKlAsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIFA9dGhpcy5oJTM2MCszNjAqKHRoaXMuaDww''@;'; + put 'put ''KSxWPWlzTmFOKFApfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLFQ9dGhpcy5sLFM9VCsoVDwuNT9UOjEtVCkqVixGPTIqVC1TO3JldHVybiBuZXcgSWUoeChQPj0yNDA/UC0yNDA6UCsxMjAsRixTKSx4KFAsRixTKSx4KFA8MTIwP1ArMjQwOlAtMTIwLEYsUyksdGhpcy5vcGFjaXR5KX0sZGlz''@;'; + put 'put ''cGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGZvcm1hdEhzbDpmdW5jdGlvbigpe3ZhciBQPXRoaXMub3BhY2l0eTtyZXR1''@;'; + put 'put ''cm4oMT09PShQPWlzTmFOKFApPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLFApKSk/ImhzbCgiOiJoc2xhKCIpKyh0aGlzLmh8fDApKyIsICIrMTAwKih0aGlzLnN8fDApKyIlLCAiKzEwMCoodGhpcy5sfHwwKSsiJSIrKDE9PT1QPyIpIjoiLCAiK1ArIikiKX19KSl9LDY4ODg0OihYZSxKZSxM''@;'; + put 'put ''KT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtZShFLE1lLFUpe0UucHJvdG90eXBlPU1lLnByb3RvdHlwZT1VLFUuY29uc3RydWN0b3I9RX1mdW5jdGlvbiBCKEUsTWUpe3ZhciBVPU9iamVjdC5jcmVhdGUoRS5wcm90b3R5cGUpO2Zvcih2YXIgUSBpbiBNZSlVW1FdPU1lW1FdO3JldHVybiBV''@;'; + put 'put ''fUwuZChKZSx7WjooKT0+bWUsbDooKT0+Qn0pfSwyNTkyMjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtaOigpPT5afSk7dmFyIG1lPXt2YWx1ZTpmdW5jdGlvbigpe319O2Z1bmN0aW9uIEIoKXtmb3IodmFyIFcsaWU9MCxsZT1hcmd1bWVudHMubGVuZ3RoLFk9e307aWU8bGU7''@;'; + put 'put ''KytpZSl7aWYoIShXPWFyZ3VtZW50c1tpZV0rIiIpfHxXIGluIFl8fC9bXHMuXS8udGVzdChXKSl0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgdHlwZTogIitXKTtZW1ddPVtdfXJldHVybiBuZXcgRShZKX1mdW5jdGlvbiBFKGllKXt0aGlzLl89aWV9ZnVuY3Rpb24gTWUoaWUsbGUpe3JldHVy''@;'; + put 'put ''biBpZS50cmltKCkuc3BsaXQoL158XHMrLykubWFwKGZ1bmN0aW9uKFkpe3ZhciBXPSIiLE49WS5pbmRleE9mKCIuIik7aWYoTj49MCYmKFc9WS5zbGljZShOKzEpLFk9WS5zbGljZSgwLE4pKSxZJiYhbGUuaGFzT3duUHJvcGVydHkoWSkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6''@;'; + put 'put ''ICIrWSk7cmV0dXJue3R5cGU6WSxuYW1lOld9fSl9ZnVuY3Rpb24gVShpZSxsZSl7Zm9yKHZhciBOLFk9MCxXPWllLmxlbmd0aDtZPFc7KytZKWlmKChOPWllW1ldKS5uYW1lPT09bGUpcmV0dXJuIE4udmFsdWV9ZnVuY3Rpb24gUShpZSxsZSxZKXtmb3IodmFyIFc9MCxOPWllLmxlbmd0aDtX''@;'; + put 'put ''PE47KytXKWlmKGllW1ddLm5hbWU9PT1sZSl7aWVbV109bWUsaWU9aWUuc2xpY2UoMCxXKS5jb25jYXQoaWUuc2xpY2UoVysxKSk7YnJlYWt9cmV0dXJuIG51bGwhPVkmJmllLnB1c2goe25hbWU6bGUsdmFsdWU6WX0pLGllfUUucHJvdG90eXBlPUIucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpF''@;'; + put 'put ''LG9uOmZ1bmN0aW9uKGllLGxlKXt2YXIgTixZPXRoaXMuXyxXPU1lKGllKyIiLFkpLGVlPS0xLHE9Vy5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1sZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGxlKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjYWxsYmFjazogIits''@;'; + put 'put ''ZSk7Zm9yKDsrK2VlPHE7KWlmKE49KGllPVdbZWVdKS50eXBlKVlbTl09UShZW05dLGllLm5hbWUsbGUpO2Vsc2UgaWYobnVsbD09bGUpZm9yKE4gaW4gWSlZW05dPVEoWVtOXSxpZS5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytlZTxxOylpZigoTj0oaWU9V1tlZV0pLnR5cGUpJiYo''@;'; + put 'put ''Tj1VKFlbTl0saWUubmFtZSkpKXJldHVybiBOfSxjb3B5OmZ1bmN0aW9uKCl7dmFyIGllPXt9LGxlPXRoaXMuXztmb3IodmFyIFkgaW4gbGUpaWVbWV09bGVbWV0uc2xpY2UoKTtyZXR1cm4gbmV3IEUoaWUpfSxjYWxsOmZ1bmN0aW9uKGllLGxlKXtpZigoTj1hcmd1bWVudHMubGVuZ3RoLTIp''@;'; + put 'put ''PjApZm9yKHZhciBOLGVlLFk9bmV3IEFycmF5KE4pLFc9MDtXPE47KytXKVlbV109YXJndW1lbnRzW1crMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eShpZSkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIraWUpO2ZvcihXPTAsTj0oZWU9dGhpcy5fW2llXSkubGVuZ3RoO1c8''@;'; + put 'put ''TjsrK1cpZWVbV10udmFsdWUuYXBwbHkobGUsWSl9LGFwcGx5OmZ1bmN0aW9uKGllLGxlLFkpe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkoaWUpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK2llKTtmb3IodmFyIFc9dGhpcy5fW2llXSxOPTAsZWU9Vy5sZW5ndGg7TjxlZTsr''@;'; + put 'put ''K04pV1tOXS52YWx1ZS5hcHBseShsZSxZKX19O2NvbnN0IFo9Qn0sODUxMDY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wucihKZSksTC5kKEplLHtkaXNwYXRjaDooKT0+bWUuWn0pO3ZhciBtZT1MKDI1OTIyKX0sNjU5OTA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIo''@;'; + put 'put ''VGUsRWUpe2lmKChoZT0oVGU9RWU/VGUudG9FeHBvbmVudGlhbChFZS0xKTpUZS50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoImUiKSk8MClyZXR1cm4gbnVsbDt2YXIgaGUsTz1UZS5zbGljZSgwLGhlKTtyZXR1cm5bTy5sZW5ndGg+MT9PWzBdK08uc2xpY2UoMik6TywrVGUuc2xpY2UoaGUr''@;'; + put 'put ''MSldfWZ1bmN0aW9uIEUoVGUpe3JldHVybihUZT1CKE1hdGguYWJzKFRlKSkpP1RlWzFdOk5hTn1MLnIoSmUpLEwuZChKZSx7Rm9ybWF0U3BlY2lmaWVyOigpPT5pZSxmb3JtYXQ6KCk9PmRlLGZvcm1hdERlZmF1bHRMb2NhbGU6KCk9PkFlLGZvcm1hdExvY2FsZTooKT0+b2UsZm9ybWF0UHJl''@;'; + put 'put ''Zml4OigpPT52ZSxmb3JtYXRTcGVjaWZpZXI6KCk9PloscHJlY2lzaW9uRml4ZWQ6KCk9PmtlLHByZWNpc2lvblByZWZpeDooKT0+U2UscHJlY2lzaW9uUm91bmQ6KCk9PkllfSk7dmFyIFksUT0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxk''@;'; + put 'put ''Kyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBaKFRlKXtpZighKEVlPVEuZXhlYyhUZSkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrVGUpO3ZhciBFZTtyZXR1cm4gbmV3IGllKHtmaWxsOkVlWzFdLGFsaWduOkVlWzJdLHNpZ246RWVbM10sc3ltYm9sOkVlWzRdLHpl''@;'; + put 'put ''cm86RWVbNV0sd2lkdGg6RWVbNl0sY29tbWE6RWVbN10scHJlY2lzaW9uOkVlWzhdJiZFZVs4XS5zbGljZSgxKSx0cmltOkVlWzldLHR5cGU6RWVbMTBdfSl9ZnVuY3Rpb24gaWUoVGUpe3RoaXMuZmlsbD12b2lkIDA9PT1UZS5maWxsPyIgIjpUZS5maWxsKyIiLHRoaXMuYWxpZ249dm9pZCAw''@;'; + put 'put ''PT09VGUuYWxpZ24/Ij4iOlRlLmFsaWduKyIiLHRoaXMuc2lnbj12b2lkIDA9PT1UZS5zaWduPyItIjpUZS5zaWduKyIiLHRoaXMuc3ltYm9sPXZvaWQgMD09PVRlLnN5bWJvbD8iIjpUZS5zeW1ib2wrIiIsdGhpcy56ZXJvPSEhVGUuemVybyx0aGlzLndpZHRoPXZvaWQgMD09PVRlLndpZHRo''@;'; + put 'put ''P3ZvaWQgMDorVGUud2lkdGgsdGhpcy5jb21tYT0hIVRlLmNvbW1hLHRoaXMucHJlY2lzaW9uPXZvaWQgMD09PVRlLnByZWNpc2lvbj92b2lkIDA6K1RlLnByZWNpc2lvbix0aGlzLnRyaW09ISFUZS50cmltLHRoaXMudHlwZT12b2lkIDA9PT1UZS50eXBlPyIiOlRlLnR5cGUrIiJ9ZnVuY3Rp''@;'; + put 'put ''b24gTihUZSxFZSl7dmFyIGhlPUIoVGUsRWUpO2lmKCFoZSlyZXR1cm4gVGUrIiI7dmFyIE89aGVbMF0sej1oZVsxXTtyZXR1cm4gejwwPyIwLiIrbmV3IEFycmF5KC16KS5qb2luKCIwIikrTzpPLmxlbmd0aD56KzE/Ty5zbGljZSgwLHorMSkrIi4iK08uc2xpY2UoeisxKTpPK25ldyBBcnJh''@;'; + put 'put ''eSh6LU8ubGVuZ3RoKzIpLmpvaW4oIjAiKX1aLnByb3RvdHlwZT1pZS5wcm90b3R5cGUsaWUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsbCt0aGlzLmFsaWduK3RoaXMuc2lnbit0aGlzLnN5bWJvbCsodGhpcy56ZXJvPyIwIjoiIikrKHZvaWQgMD09PXRo''@;'; + put 'put ''aXMud2lkdGg/IiI6TWF0aC5tYXgoMSwwfHRoaXMud2lkdGgpKSsodGhpcy5jb21tYT8iLCI6IiIpKyh2b2lkIDA9PT10aGlzLnByZWNpc2lvbj8iIjoiLiIrTWF0aC5tYXgoMCwwfHRoaXMucHJlY2lzaW9uKSkrKHRoaXMudHJpbT8ifiI6IiIpK3RoaXMudHlwZX07Y29uc3QgZWU9eyIlIjpm''@;'; + put 'put ''dW5jdGlvbihUZSxFZSl7cmV0dXJuKDEwMCpUZSkudG9GaXhlZChFZSl9LGI6ZnVuY3Rpb24oVGUpe3JldHVybiBNYXRoLnJvdW5kKFRlKS50b1N0cmluZygyKX0sYzpmdW5jdGlvbihUZSl7cmV0dXJuIFRlKyIifSxkOmZ1bmN0aW9uIG1lKFRlKXtyZXR1cm4gTWF0aC5hYnMoVGU9TWF0aC5y''@;'; + put 'put ''b3VuZChUZSkpPj0xZTIxP1RlLnRvTG9jYWxlU3RyaW5nKCJlbiIpLnJlcGxhY2UoLywvZywiIik6VGUudG9TdHJpbmcoMTApfSxlOmZ1bmN0aW9uKFRlLEVlKXtyZXR1cm4gVGUudG9FeHBvbmVudGlhbChFZSl9LGY6ZnVuY3Rpb24oVGUsRWUpe3JldHVybiBUZS50b0ZpeGVkKEVlKX0sZzpm''@;'; + put 'put ''dW5jdGlvbihUZSxFZSl7cmV0dXJuIFRlLnRvUHJlY2lzaW9uKEVlKX0sbzpmdW5jdGlvbihUZSl7cmV0dXJuIE1hdGgucm91bmQoVGUpLnRvU3RyaW5nKDgpfSxwOmZ1bmN0aW9uKFRlLEVlKXtyZXR1cm4gTigxMDAqVGUsRWUpfSxyOk4sczpmdW5jdGlvbiBXKFRlLEVlKXt2YXIgaGU9QihU''@;'; + put 'put ''ZSxFZSk7aWYoIWhlKXJldHVybiBUZSsiIjt2YXIgTz1oZVswXSx6PWhlWzFdLG5lPXotKFk9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3Ioei8zKSkpKSsxLHRlPU8ubGVuZ3RoO3JldHVybiBuZT09PXRlP086bmU+dGU/TytuZXcgQXJyYXkobmUtdGUrMSkuam9pbigiMCIp''@;'; + put 'put ''Om5lPjA/Ty5zbGljZSgwLG5lKSsiLiIrTy5zbGljZShuZSk6IjAuIituZXcgQXJyYXkoMS1uZSkuam9pbigiMCIpK0IoVGUsTWF0aC5tYXgoMCxFZStuZS0xKSlbMF19LFg6ZnVuY3Rpb24oVGUpe3JldHVybiBNYXRoLnJvdW5kKFRlKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0seDpm''@;'; + put 'put ''dW5jdGlvbihUZSl7cmV0dXJuIE1hdGgucm91bmQoVGUpLnRvU3RyaW5nKDE2KX19O2Z1bmN0aW9uIHEoVGUpe3JldHVybiBUZX12YXIgY2UsZGUsdmUsSj1BcnJheS5wcm90b3R5cGUubWFwLHNlPVsieSIsInoiLCJhIiwiZiIsInAiLCJuIiwiXHhiNSIsIm0iLCIiLCJrIiwiTSIsIkciLCJU''@;'; + put 'put ''IiwiUCIsIkUiLCJaIiwiWSJdO2Z1bmN0aW9uIG9lKFRlKXt2YXIgRWU9dm9pZCAwPT09VGUuZ3JvdXBpbmd8fHZvaWQgMD09PVRlLnRob3VzYW5kcz9xOmZ1bmN0aW9uIE1lKFRlLEVlKXtyZXR1cm4gZnVuY3Rpb24oaGUsTyl7Zm9yKHZhciB6PWhlLmxlbmd0aCxuZT1bXSx0ZT0wLHg9VGVb''@;'; + put 'put ''MF0sUD0wO3o+MCYmeD4wJiYoUCt4KzE+TyYmKHg9TWF0aC5tYXgoMSxPLVApKSxuZS5wdXNoKGhlLnN1YnN0cmluZyh6LT14LHoreCkpLCEoKFArPXgrMSk+TykpOyl4PVRlW3RlPSh0ZSsxKSVUZS5sZW5ndGhdO3JldHVybiBuZS5yZXZlcnNlKCkuam9pbihFZSl9fShKLmNhbGwoVGUuZ3Jv''@;'; + put 'put ''dXBpbmcsTnVtYmVyKSxUZS50aG91c2FuZHMrIiIpLGhlPXZvaWQgMD09PVRlLmN1cnJlbmN5PyIiOlRlLmN1cnJlbmN5WzBdKyIiLE89dm9pZCAwPT09VGUuY3VycmVuY3k/IiI6VGUuY3VycmVuY3lbMV0rIiIsej12b2lkIDA9PT1UZS5kZWNpbWFsPyIuIjpUZS5kZWNpbWFsKyIiLG5lPXZv''@;'; + put 'put ''aWQgMD09PVRlLm51bWVyYWxzP3E6ZnVuY3Rpb24gVShUZSl7cmV0dXJuIGZ1bmN0aW9uKEVlKXtyZXR1cm4gRWUucmVwbGFjZSgvWzAtOV0vZyxmdW5jdGlvbihoZSl7cmV0dXJuIFRlWytoZV19KX19KEouY2FsbChUZS5udW1lcmFscyxTdHJpbmcpKSx0ZT12b2lkIDA9PT1UZS5wZXJjZW50''@;'; + put 'put ''PyIlIjpUZS5wZXJjZW50KyIiLHg9dm9pZCAwPT09VGUubWludXM/Ii0iOlRlLm1pbnVzKyIiLFA9dm9pZCAwPT09VGUubmFuPyJOYU4iOlRlLm5hbisiIjtmdW5jdGlvbiBWKFMpe3ZhciBGPShTPVooUykpLmZpbGwseWU9Uy5hbGlnbixDZT1TLnNpZ24sRGU9Uy5zeW1ib2wsUGU9Uy56ZXJv''@;'; + put 'put ''LFFlPVMud2lkdGgsJGU9Uy5jb21tYSxndD1TLnByZWNpc2lvbix3dD1TLnRyaW0sdnQ9Uy50eXBlOyJuIj09PXZ0PygkZT0hMCx2dD0iZyIpOmVlW3Z0XXx8KHZvaWQgMD09PWd0JiYoZ3Q9MTIpLHd0PSEwLHZ0PSJnIiksKFBlfHwiMCI9PT1GJiYiPSI9PT15ZSkmJihQZT0hMCxGPSIwIix5''@;'; + put 'put ''ZT0iPSIpO3ZhciBBdD0iJCI9PT1EZT9oZToiIyI9PT1EZSYmL1tib3hYXS8udGVzdCh2dCk/IjAiK3Z0LnRvTG93ZXJDYXNlKCk6IiIsbXQ9IiQiPT09RGU/TzovWyVwXS8udGVzdCh2dCk/dGU6IiIsaHQ9ZWVbdnRdLEJ0PS9bZGVmZ3BycyVdLy50ZXN0KHZ0KTtmdW5jdGlvbiBvbihfdCl7''@;'; + put 'put ''dmFyIGF0LEx0LEN0LHR0PUF0LGV0PW10O2lmKCJjIj09PXZ0KWV0PWh0KF90KStldCxfdD0iIjtlbHNle3ZhciBmdD0oX3Q9K190KTwwfHwxL190PDA7aWYoX3Q9aXNOYU4oX3QpP1A6aHQoTWF0aC5hYnMoX3QpLGd0KSx3dCYmKF90PWZ1bmN0aW9uIGxlKFRlKXtlOmZvcih2YXIgeixFZT1U''@;'; + put 'put ''ZS5sZW5ndGgsaGU9MSxPPS0xO2hlPEVlOysraGUpc3dpdGNoKFRlW2hlXSl7Y2FzZSIuIjpPPXo9aGU7YnJlYWs7Y2FzZSIwIjowPT09TyYmKE89aGUpLHo9aGU7YnJlYWs7ZGVmYXVsdDppZighK1RlW2hlXSlicmVhayBlO08+MCYmKE89MCl9cmV0dXJuIE8+MD9UZS5zbGljZSgwLE8pK1Rl''@;'; + put 'put ''LnNsaWNlKHorMSk6VGV9KF90KSksZnQmJjA9PStfdCYmIisiIT09Q2UmJihmdD0hMSksdHQ9KGZ0PyIoIj09PUNlP0NlOng6Ii0iPT09Q2V8fCIoIj09PUNlPyIiOkNlKSt0dCxldD0oInMiPT09dnQ/c2VbOCtZLzNdOiIiKStldCsoZnQmJiIoIj09PUNlPyIpIjoiIiksQnQpZm9yKGF0PS0x''@;'; + put 'put ''LEx0PV90Lmxlbmd0aDsrK2F0PEx0OylpZig0OD4oQ3Q9X3QuY2hhckNvZGVBdChhdCkpfHxDdD41Nyl7ZXQ9KDQ2PT09Q3Q/eitfdC5zbGljZShhdCsxKTpfdC5zbGljZShhdCkpK2V0LF90PV90LnNsaWNlKDAsYXQpO2JyZWFrfX0kZSYmIVBlJiYoX3Q9RWUoX3QsMS8wKSk7dmFyIEh0PXR0''@;'; + put 'put ''Lmxlbmd0aCtfdC5sZW5ndGgrZXQubGVuZ3RoLEdlPUh0PFFlP25ldyBBcnJheShRZS1IdCsxKS5qb2luKEYpOiIiO3N3aXRjaCgkZSYmUGUmJihfdD1FZShHZStfdCxHZS5sZW5ndGg/UWUtZXQubGVuZ3RoOjEvMCksR2U9IiIpLHllKXtjYXNlIjwiOl90PXR0K190K2V0K0dlO2JyZWFrO2Nh''@;'; + put 'put ''c2UiPSI6X3Q9dHQrR2UrX3QrZXQ7YnJlYWs7Y2FzZSJeIjpfdD1HZS5zbGljZSgwLEh0PUdlLmxlbmd0aD4+MSkrdHQrX3QrZXQrR2Uuc2xpY2UoSHQpO2JyZWFrO2RlZmF1bHQ6X3Q9R2UrdHQrX3QrZXR9cmV0dXJuIG5lKF90KX1yZXR1cm4gZ3Q9dm9pZCAwPT09Z3Q/NjovW2dwcnNdLy50''@;'; + put 'put ''ZXN0KHZ0KT9NYXRoLm1heCgxLE1hdGgubWluKDIxLGd0KSk6TWF0aC5tYXgoMCxNYXRoLm1pbigyMCxndCkpLG9uLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFMrIiJ9LG9ufXJldHVybntmb3JtYXQ6Vixmb3JtYXRQcmVmaXg6ZnVuY3Rpb24gVChTLEYpe3ZhciB5ZT1WKCgoUz1aKFMp''@;'; + put 'put ''KS50eXBlPSJmIixTKSksQ2U9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoRShGKS8zKSkpLERlPU1hdGgucG93KDEwLC1DZSksUGU9c2VbOCtDZS8zXTtyZXR1cm4gZnVuY3Rpb24oUWUpe3JldHVybiB5ZShEZSpRZSkrUGV9fX19ZnVuY3Rpb24gQWUoVGUpe3JldHVybiBj''@;'; + put 'put ''ZT1vZShUZSksZGU9Y2UuZm9ybWF0LHZlPWNlLmZvcm1hdFByZWZpeCxjZX1mdW5jdGlvbiBrZShUZSl7cmV0dXJuIE1hdGgubWF4KDAsLUUoTWF0aC5hYnMoVGUpKSl9ZnVuY3Rpb24gU2UoVGUsRWUpe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZs''@;'; + put 'put ''b29yKEUoRWUpLzMpKSktRShNYXRoLmFicyhUZSkpKX1mdW5jdGlvbiBJZShUZSxFZSl7cmV0dXJuIFRlPU1hdGguYWJzKFRlKSxFZT1NYXRoLmFicyhFZSktVGUsTWF0aC5tYXgoMCxFKEVlKS1FKFRlKSkrMX1BZSh7ZGVjaW1hbDoiLiIsdGhvdXNhbmRzOiIsIixncm91cGluZzpbM10sY3Vy''@;'; + put 'put ''cmVuY3k6WyIkIiwiIl0sbWludXM6Ii0ifSl9LDk5MjE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIsRSxNZSxVLFEsWixpZSxsZSxZKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gVyhtbil7dmFyIHVuPXt9LGNuPW1uLm5vZGUoKS5ub2RlTmFtZTt1bi50YWc9Y24sIiN0ZXh0Ij09''@;'; + put 'put ''Y24/dW4udGV4dD1tbi50ZXh0KCk6IiNjb21tZW50Ij09Y24mJih1bi5jb21tZW50PW1uLnRleHQoKSksdW4uYXR0cmlidXRlcz17fTt2YXIgX249bW4ubm9kZSgpLmF0dHJpYnV0ZXM7aWYoX24pZm9yKHZhciBHdD0wO0d0PF9uLmxlbmd0aDtHdCsrKXt2YXIga249X25bR3RdO3VuLmF0dHJp''@;'; + put 'put ''YnV0ZXNba24ubmFtZV09a24udmFsdWV9dmFyIG9yLEluPW1uLm5vZGUoKS50cmFuc2Zvcm07aWYoSW4mJjAhPUluLmJhc2VWYWwubnVtYmVyT2ZJdGVtcyl7dmFyIEpuPUluLmJhc2VWYWwuY29uc29saWRhdGUoKS5tYXRyaXg7dW4udHJhbnNsYXRpb249e3g6Sm4uZSx5OkpuLmZ9LHVuLnNj''@;'; + put 'put ''YWxlPUpuLmF9aWYoImVsbGlwc2UiPT1jbiYmKHVuLmNlbnRlcj17eDp1bi5hdHRyaWJ1dGVzLmN4LHk6dW4uYXR0cmlidXRlcy5jeX0pLCJwb2x5Z29uIj09Y24pe3ZhciBncj0ob3I9bW4uYXR0cigicG9pbnRzIikuc3BsaXQoIiAiKSkubWFwKGZ1bmN0aW9uKG4wKXtyZXR1cm4gbjAuc3Bs''@;'; + put 'put ''aXQoIiwiKVswXX0pLEtyPW9yLm1hcChmdW5jdGlvbihuMCl7cmV0dXJuIG4wLnNwbGl0KCIsIilbMV19KSxWcj1NYXRoLm1pbi5hcHBseShudWxsLGdyKSxpaT1NYXRoLm1heC5hcHBseShudWxsLGdyKSxScj1NYXRoLm1pbi5hcHBseShudWxsLEtyKSxsaT1NYXRoLm1heC5hcHBseShudWxs''@;'; + put 'put ''LEtyKTt1bi5iYm94PXt4OlZyLHk6UnIsd2lkdGg6aWktVnIsaGVpZ2h0OmxpLVJyfSx1bi5jZW50ZXI9e3g6KFZyK2lpKS8yLHk6KFJyK2xpKS8yfX1yZXR1cm4icGF0aCI9PWNuJiYoKG9yPW1uLmF0dHIoImQiKS5zcGxpdCgvW0EtWiBdLykpLnNoaWZ0KCksZ3I9b3IubWFwKGZ1bmN0aW9u''@;'; + put 'put ''KGNhKXtyZXR1cm4rY2Euc3BsaXQoIiwiKVswXX0pLEtyPW9yLm1hcChmdW5jdGlvbihjYSl7cmV0dXJuK2NhLnNwbGl0KCIsIilbMV19KSxWcj1NYXRoLm1pbi5hcHBseShudWxsLGdyKSxpaT1NYXRoLm1heC5hcHBseShudWxsLGdyKSxScj1NYXRoLm1pbi5hcHBseShudWxsLEtyKSxsaT1N''@;'; + put 'put ''YXRoLm1heC5hcHBseShudWxsLEtyKSx1bi5iYm94PXt4OlZyLHk6UnIsd2lkdGg6aWktVnIsaGVpZ2h0OmxpLVJyfSx1bi5jZW50ZXI9e3g6KFZyK2lpKS8yLHk6KFJyK2xpKS8yfSx1bi50b3RhbExlbmd0aD1tbi5ub2RlKCkuZ2V0VG90YWxMZW5ndGgoKSksInRleHQiPT1jbiYmKHVuLmNl''@;'; + put 'put ''bnRlcj17eDptbi5hdHRyKCJ4IikseTptbi5hdHRyKCJ5Iil9KSwiI3RleHQiPT1jbj91bi50ZXh0PW1uLnRleHQoKToiI2NvbW1lbnQiPT1jbiYmKHVuLmNvbW1lbnQ9bW4udGV4dCgpKSx1bn1mdW5jdGlvbiBOKG1uKXt2YXIgdW49Vyhtbik7cmV0dXJuIHVuLmNoaWxkcmVuPVtdLEIuc2Vs''@;'; + put 'put ''ZWN0QWxsKG1uLm5vZGUoKS5jaGlsZE5vZGVzKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIF9uPU4oQi5zZWxlY3QodGhpcykpO19uLnBhcmVudD11bix1bi5jaGlsZHJlbi5wdXNoKF9uKX0pLHVufWZ1bmN0aW9uIGVlKG1uKXtyZXR1cm4iI3RleHQiPT1tbi50YWc/ZG9jdW1lbnQuY3JlYXRlVGV4''@;'; + put 'put ''dE5vZGUoIiIpOiIjY29tbWVudCI9PW1uLnRhZz9kb2N1bWVudC5jcmVhdGVDb21tZW50KG1uLmNvbW1lbnQpOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLG1uLnRhZyl9ZnVuY3Rpb24gcShtbil7dmFyIHVuPWVlKG1uKSxjbj1CLnNlbGVj''@;'; + put 'put ''dCh1biksX249bW4uYXR0cmlidXRlcyxHdD0hMCxrbj0hMSxWbj12b2lkIDA7dHJ5e2Zvcih2YXIgSW4sZW49T2JqZWN0LmtleXMoX24pW1N5bWJvbC5pdGVyYXRvcl0oKTshKEd0PShJbj1lbi5uZXh0KCkpLmRvbmUpO0d0PSEwKXt2YXIgSm49SW4udmFsdWU7Y24uYXR0cihKbixfbltKbl0p''@;'; + put 'put ''fX1jYXRjaChncil7a249ITAsVm49Z3J9ZmluYWxseXt0cnl7IUd0JiZlbi5yZXR1cm4mJmVuLnJldHVybigpfWZpbmFsbHl7aWYoa24pdGhyb3cgVm59fXJldHVybiB1bn1mdW5jdGlvbiBKKG1uLHVuKXt2YXIgY249Qi5zZWxlY3QobW4ubm9kZSgpLnBhcmVudE5vZGUpLF9uPXEodW4pLEd0''@;'; + put 'put ''PWNuLmluc2VydChmdW5jdGlvbigpe3JldHVybiBfbn0sZnVuY3Rpb24oKXtyZXR1cm4gbW4ubm9kZSgpfSk7cmV0dXJuIG1uLnJlbW92ZSgpLEd0fWZ1bmN0aW9uIG9lKG1uLHVuKXsoZnVuY3Rpb24gc2UobW4sdW4pe21uLmRhdHVtKHVuKSxtbi5kYXRhKFt1bl0sZnVuY3Rpb24oY24pe3Jl''@;'; + put 'put ''dHVybiBjbi5rZXl9KX0pKG1uLHVuKSxCLnNlbGVjdEFsbChtbi5ub2RlKCkuY2hpbGROb2RlcykuZWFjaChmdW5jdGlvbihfbixHdCl7b2UoQi5zZWxlY3QodGhpcyksdW4uY2hpbGRyZW5bR3RdKX0pfWZ1bmN0aW9uIGNlKG1uLHVuKXt2YXIgY249bW4uc2VsZWN0QWxsKGZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIG1uLm5vZGUoKS5jaGlsZE5vZGVzfSksX249KGNuPWNuLmRhdGEoZnVuY3Rpb24oVm4pe3JldHVybiBWbi5jaGlsZHJlbn0sZnVuY3Rpb24oVm4pe3JldHVybiBWbi50YWcrIi0iK3VufSkpLmVudGVyKCkuYXBwZW5kKGZ1bmN0aW9uKFZuKXtyZXR1cm4gZWUoVm4pfSksR3Q9Y24u''@;'; + put 'put ''ZXhpdCgpO0d0PUd0LnJlbW92ZSgpLGNuPV9uLm1lcmdlKGNuKTt2YXIga249e307Y24uZWFjaChmdW5jdGlvbihWbil7dmFyIGVuPVZuLnRhZztudWxsPT1rbltlbl0mJihrbltlbl09MCk7dmFyIEluPWtuW2VuXSsrO2RlLmNhbGwodGhpcyxWbixJbil9KX1mdW5jdGlvbiBkZShtbil7dmFy''@;'; + put 'put ''IHVuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLGNuPUIuc2VsZWN0KHRoaXMpLEd0PW1uLmF0dHJpYnV0ZXMsa249Y24ubm9kZSgpLmF0dHJpYnV0ZXM7aWYoa24pZm9yKHZhciBWbj0wO1ZuPGtuLmxlbmd0aDtWbisrKXt2YXIgZW49''@;'; + put 'put ''a25bVm5dLEluPWVuLm5hbWU7aWYoInhtbG5zIiE9SW4uc3BsaXQoIjoiKVswXSYmZW4ubmFtZXNwYWNlVVJJKXt2YXIgSm49ZW4ubmFtZXNwYWNlVVJJLnNwbGl0KCIvIik7SW49Sm5bSm4ubGVuZ3RoLTFdKyI6IitJbn1JbiBpbiBHdHx8KEd0W0luXT1udWxsKX12YXIgZ3I9ITAsS3I9ITEs''@;'; + put 'put ''VnI9dm9pZCAwO3RyeXtmb3IodmFyIFJyLGlpPU9iamVjdC5rZXlzKEd0KVtTeW1ib2wuaXRlcmF0b3JdKCk7IShncj0oUnI9aWkubmV4dCgpKS5kb25lKTtncj0hMCl7dmFyIGxpPVJyLnZhbHVlO2NuLmF0dHIobGksR3RbbGldKX19Y2F0Y2goTWkpe0tyPSEwLFZyPU1pfWZpbmFsbHl7dHJ5''@;'; + put 'put ''eyFnciYmaWkucmV0dXJuJiZpaS5yZXR1cm4oKX1maW5hbGx5e2lmKEtyKXRocm93IFZyfX1tbi50ZXh0JiZjbi50ZXh0KG1uLnRleHQpLGNlKGNuLHVuKX1mdW5jdGlvbiB2ZShtbil7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sbW4pfWZ1bmN0aW9uIEFlKG1uKXtyZXR1cm4gTWF0aC5yb3Vu''@;'; + put 'put ''ZCgxZTQqbW4pLzFlNH1mdW5jdGlvbiBTZSgpe3ZhciBjbj1CLnNlbGVjdCh0aGlzLl9zZWxlY3Rpb24ubm9kZSgpLnF1ZXJ5U2VsZWN0b3IoInN2ZyIpKTtpZigwPT1jbi5zaXplKCkpcmV0dXJuIHRoaXM7dGhpcy5fem9vbVNlbGVjdGlvbj1jbjt2YXIgX249Wi56b29tKCkuc2NhbGVFeHRl''@;'; + put 'put ''bnQodGhpcy5fb3B0aW9ucy56b29tU2NhbGVFeHRlbnQpLnRyYW5zbGF0ZUV4dGVudCh0aGlzLl9vcHRpb25zLnpvb21UcmFuc2xhdGVFeHRlbnQpLmludGVycG9sYXRlKFEuaW50ZXJwb2xhdGUpLm9uKCJ6b29tIixmdW5jdGlvbiBtbigpe0Iuc2VsZWN0KGNuLm5vZGUoKS5xdWVyeVNlbGVj''@;'; + put 'put ''dG9yKCJnIikpLmF0dHIoInRyYW5zZm9ybSIsQi5ldmVudC50cmFuc2Zvcm0pfSk7dGhpcy5fem9vbUJlaGF2aW9yPV9uO3ZhciBHdD1CLnNlbGVjdChjbi5ub2RlKCkucXVlcnlTZWxlY3RvcigiZyIpKTtyZXR1cm4gY24uY2FsbChfbiksdGhpcy5fYWN0aXZlfHxUZS5jYWxsKHRoaXMsR3Qp''@;'; + put 'put ''LHRoaXMuX29yaWdpbmFsVHJhbnNmb3JtPVouem9vbVRyYW5zZm9ybShjbi5ub2RlKCkpLHRoaXN9ZnVuY3Rpb24gSWUobW4pe3ZhciB1bj10aGlzLl90cmFuc2xhdGlvbixjbj10aGlzLl9zY2FsZSxfbj1tbi5kYXR1bSgpLnRyYW5zbGF0aW9uLEd0PW1uLmRhdHVtKCkuc2NhbGUsa249Wi56''@;'; + put 'put ''b29tVHJhbnNmb3JtKHRoaXMuX3pvb21TZWxlY3Rpb24ubm9kZSgpKTtyZXR1cm4gdW4mJihrbj0oa249a24uc2NhbGUoMS9jbikpLnRyYW5zbGF0ZSgtdW4ueCwtdW4ueSkpLChrbj1rbi50cmFuc2xhdGUoX24ueCxfbi55KSkuc2NhbGUoR3QpfWZ1bmN0aW9uIFRlKG1uKXt0aGlzLl96b29t''@;'; + put 'put ''QmVoYXZpb3IudHJhbnNmb3JtKHRoaXMuX3pvb21TZWxlY3Rpb24sSWUuY2FsbCh0aGlzLG1uKSksdGhpcy5fdHJhbnNsYXRpb249bW4uZGF0dW0oKS50cmFuc2xhdGlvbix0aGlzLl9zY2FsZT1tbi5kYXR1bSgpLnNjYWxlLHRoaXMuX29yaWdpbmFsVHJhbnNmb3JtPVouem9vbUlkZW50aXR5''@;'; + put 'put ''LnRyYW5zbGF0ZShtbi5kYXR1bSgpLnRyYW5zbGF0aW9uLngsbW4uZGF0dW0oKS50cmFuc2xhdGlvbi55KS5zY2FsZShtbi5kYXR1bSgpLnNjYWxlKX1mdW5jdGlvbiB0ZShtbix1bil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGNuPW1uLm1hcChmdW5jdGlvbihfbil7cmV0dXJuIFEuaW50ZXJw''@;'; + put 'put ''b2xhdGUoW19uWzBdWzBdLF9uWzBdWzFdXSxbX25bMV1bMF0sX25bMV1bMV1dKX0pO3JldHVybiBmdW5jdGlvbihfbil7cmV0dXJuIF9uPDE/Ik0iK2NuLm1hcChmdW5jdGlvbihHdCl7cmV0dXJuIEd0KF9uKX0pLmpvaW4oIkwiKTp1bn19fWZ1bmN0aW9uIFYobW4pe3JldHVybiJlZGdlIj09''@;'; + put 'put ''bW4uYXR0cmlidXRlcy5jbGFzc3x8ImEiPT1tbi50YWcmJiJnIj09bW4ucGFyZW50LnRhZyYmImVkZ2UiPT1tbi5wYXJlbnQucGFyZW50LmF0dHJpYnV0ZXMuY2xhc3N9ZnVuY3Rpb24gVChtbil7cmV0dXJuIG1uLnBhcmVudCYmVihtbi5wYXJlbnQpfWZ1bmN0aW9uIENlKG1uKXt2YXIgdW49''@;'; + put 'put ''dGhpcy5fdHJhbnNpdGlvbixjbj10aGlzLl9vcHRpb25zLmZhZGUmJm51bGwhPXVuLF9uPXRoaXMuX29wdGlvbnMudHdlZW5QYXRocyxHdD10aGlzLl9vcHRpb25zLnR3ZWVuU2hhcGVzLGtuPXRoaXMuX29wdGlvbnMuY29udmVydEVxdWFsU2lkZWRQb2x5Z29ucyxWbj10aGlzLl9vcHRpb25z''@;'; + put 'put ''Lmdyb3dFbnRlcmluZ0VkZ2VzJiZudWxsIT11bixlbj10aGlzLl9hdHRyaWJ1dGVyLEluPXRoaXM7ZnVuY3Rpb24gb3IoUnIpe3ZhciBsaT1CLnNlbGVjdCh0aGlzKTtpZigic3ZnIj09UnIudGFnKXt2YXIgTWk9SW4uX29wdGlvbnM7aWYobnVsbCE9TWkud2lkdGh8fG51bGwhPU1pLmhlaWdo''@;'; + put 'put ''dCl7dmFyIG8wPU1pLndpZHRoLG4wPU1pLmhlaWdodDtudWxsPT1vMD9vMD00KlJyLmF0dHJpYnV0ZXMud2lkdGgucmVwbGFjZSgicHQiLCIiKS8zOihsaS5hdHRyKCJ3aWR0aCIsbzApLFJyLmF0dHJpYnV0ZXMud2lkdGg9bzApLG51bGw9PW4wP24wPTQqUnIuYXR0cmlidXRlcy5oZWlnaHQu''@;'; + put 'put ''cmVwbGFjZSgicHQiLCIiKS8zOihsaS5hdHRyKCJoZWlnaHQiLG4wKSxSci5hdHRyaWJ1dGVzLmhlaWdodD1uMCksTWkuZml0fHwobGkuYXR0cigidmlld0JveCIsIjAgMCAiKzMqbzAvNC9NaS5zY2FsZSsiICIrMypuMC80L01pLnNjYWxlKSxSci5hdHRyaWJ1dGVzLnZpZXdCb3g9IjAgMCAi''@;'; + put 'put ''KzMqbzAvNC9NaS5zY2FsZSsiICIrMypuMC80L01pLnNjYWxlKX0xIT1NaS5zY2FsZSYmKE1pLmZpdHx8bnVsbD09TWkud2lkdGgmJm51bGw9PU1pLmhlaWdodCkmJihvMD1Sci5hdHRyaWJ1dGVzLnZpZXdCb3guc3BsaXQoIiAiKVsyXSxuMD1Sci5hdHRyaWJ1dGVzLnZpZXdCb3guc3BsaXQo''@;'; + put 'put ''IiAiKVszXSxsaS5hdHRyKCJ2aWV3Qm94IiwiMCAwICIrbzAvTWkuc2NhbGUrIiAiK24wL01pLnNjYWxlKSxSci5hdHRyaWJ1dGVzLnZpZXdCb3g9IjAgMCAiK28wL01pLnNjYWxlKyIgIituMC9NaS5zY2FsZSl9ZW4mJmxpLmVhY2goZW4pO3ZhciBkMD1Sci50YWcsbTA9UnIuYXR0cmlidXRl''@;'; + put 'put ''cyxHMD1saS5ub2RlKCkuYXR0cmlidXRlcztpZihHMClmb3IodmFyIERpPTA7RGk8RzAubGVuZ3RoO0RpKyspe3ZhciBXMD1HMFtEaV0sRW89VzAubmFtZTtpZigieG1sbnMiIT1Fby5zcGxpdCgiOiIpWzBdJiZXMC5uYW1lc3BhY2VVUkkpe3ZhciBxbz1XMC5uYW1lc3BhY2VVUkkuc3BsaXQo''@;'; + put 'put ''Ii8iKTtFbz1xb1txby5sZW5ndGgtMV0rIjoiK0VvfUVvIGluIG0wfHwobTBbRW9dPW51bGwpfXZhciBsbD0hMSxRaT0hMTtpZihHdCYmdW4pe2lmKCgicG9seWdvbiI9PXRoaXMubm9kZU5hbWV8fCJlbGxpcHNlIj09dGhpcy5ub2RlTmFtZSkmJlJyLmFsdGVybmF0aXZlT2xkJiYoUWk9ITAp''@;'; + put 'put ''LCgicG9seWdvbiI9PWQwfHwiZWxsaXBzZSI9PWQwKSYmUnIuYWx0ZXJuYXRpdmVOZXcmJihsbD0hMCksInBvbHlnb24iPT10aGlzLm5vZGVOYW1lJiYicG9seWdvbiI9PWQwKXt2YXIgTWE9VyhsaSk7aWYoIWtuKXt2YXIgZ2w9TWEuYXR0cmlidXRlcy5wb2ludHMuc3BsaXQoIiAiKS5sZW5n''@;'; + put 'put ''dGg7KEFpPVJyLmF0dHJpYnV0ZXMucG9pbnRzKS5zcGxpdCgiICIpLmxlbmd0aD09Z2wmJihsbD0hMSxRaT0hMSl9fWlmKFFpKXt2YXIgc2E9SihsaSxSci5hbHRlcm5hdGl2ZU9sZCk7c2EuZGF0YShbUnJdLGZ1bmN0aW9uKCl7cmV0dXJuIFJyLmtleX0pLGxpPXNhfWxsJiYoZDA9InBhdGgi''@;'; + put 'put ''LG0wPVJyLmFsdGVybmF0aXZlTmV3LmF0dHJpYnV0ZXMpfXZhciBiaT1saTtpZih1biYmKGJpPWJpLnRyYW5zaXRpb24odW4pLGNuJiZiaS5maWx0ZXIoZnVuY3Rpb24oVTIpe3JldHVybiIjIj09VTIudGFnWzBdP251bGw6dGhpc30pLnN0eWxlKCJvcGFjaXR5IiwxKSxiaS5maWx0ZXIoZnVu''@;'; + put 'put ''Y3Rpb24oVTIpe3JldHVybiIjIj09VTIudGFnWzBdP251bGw6dGhpc30pLm9uKCJlbmQiLGZ1bmN0aW9uKCl7Qi5zZWxlY3QodGhpcykuYXR0cigic3R5bGUiLG51bGwpfSkpLFZuJiYicGF0aCI9PWQwJiZSci5vZmZzZXQpe3ZhciBIYz1Sci50b3RhbExlbmd0aDtsaS5hdHRyKCJzdHJva2Ut''@;'; + put 'put ''ZGFzaGFycmF5IixIYysiICIrSGMpLmF0dHIoInN0cm9rZS1kYXNob2Zmc2V0IixIYykuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrUnIub2Zmc2V0LngrIiwiK1JyLm9mZnNldC55KyIpIiksbTBbInN0cm9rZS1kYXNob2Zmc2V0Il09MCxtMC50cmFuc2Zvcm09InRyYW5zbGF0ZSgw''@;'; + put 'put ''LDApIixiaS5hdHRyKCJzdHJva2UtZGFzaG9mZnNldCIsbTBbInN0cm9rZS1kYXNob2Zmc2V0Il0pLmF0dHIoInRyYW5zZm9ybSIsbTAudHJhbnNmb3JtKS5vbigic3RhcnQiLGZ1bmN0aW9uKCl7Qi5zZWxlY3QodGhpcykuc3R5bGUoIm9wYWNpdHkiLG51bGwpfSkub24oImVuZCIsZnVuY3Rp''@;'; + put 'put ''b24oKXtCLnNlbGVjdCh0aGlzKS5hdHRyKCJzdHJva2UtZGFzaG9mZnNldCIsbnVsbCkuYXR0cigic3Ryb2tlLWRhc2hhcnJheSIsbnVsbCkuYXR0cigidHJhbnNmb3JtIixudWxsKX0pfWlmKFZuJiYicG9seWdvbiI9PWQwJiZUKFJyKSYmUnIub2Zmc2V0KXt2YXIgT3M9Qi5zZWxlY3QobGku''@;'; + put 'put ''bm9kZSgpLnBhcmVudE5vZGUucXVlcnlTZWxlY3RvcigicGF0aCIpKSxYMD1Pcy5ub2RlKCkuZ2V0UG9pbnRBdExlbmd0aCgwKSx1YT1Pcy5ub2RlKCkuZ2V0UG9pbnRBdExlbmd0aChSci50b3RhbExlbmd0aCksajA9T3Mubm9kZSgpLmdldFBvaW50QXRMZW5ndGgoUnIudG90YWxMZW5ndGgt''@;'; + put 'put ''MSksQmw9MTgwKk1hdGguYXRhbjIodWEueS1qMC55LHVhLngtajAueCkvTWF0aC5QSSx2bj1YMC54LXVhLngrUnIub2Zmc2V0LngsXzA9WDAueS11YS55K1JyLm9mZnNldC55O2xpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK3ZuKyIsIitfMCsiKSIpLGJpLmF0dHJUd2VlbigidHJh''@;'; + put 'put ''bnNmb3JtIixmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihVMil7dmFyIHMxPU9zLm5vZGUoKS5nZXRQb2ludEF0TGVuZ3RoKFJyLnRvdGFsTGVuZ3RoKlUyKSxaMD1Pcy5ub2RlKCkuZ2V0UG9pbnRBdExlbmd0aChSci50b3RhbExlbmd0aCpVMisxKSxmaT0xODAqTWF0aC5hdGFuMihaMC55''@;'; + put 'put ''LXMxLnksWjAueC1zMS54KS9NYXRoLlBJLUJsO3JldHVybiJ0cmFuc2xhdGUoIisodm49czEueC11YS54K1JyLm9mZnNldC54KigxLVUyKSkrIiwiKyhfMD1zMS55LXVhLnkrUnIub2Zmc2V0LnkqKDEtVTIpKSsiKSByb3RhdGUoIitmaSsiICIrdWEueCsiICIrdWEueSsiKSJ9fSkub24oInN0''@;'; + put 'put ''YXJ0IixmdW5jdGlvbigpe0Iuc2VsZWN0KHRoaXMpLnN0eWxlKCJvcGFjaXR5IixudWxsKX0pLm9uKCJlbmQiLGZ1bmN0aW9uKCl7Qi5zZWxlY3QodGhpcykuYXR0cigidHJhbnNmb3JtIixudWxsKX0pfXZhciBnYz1fbiYmdW4mJiJwYXRoIj09ZDAmJm51bGwhPWxpLmF0dHIoImQiKSxkZD0h''@;'; + put 'put ''MCxCMT0hMSxhdT12b2lkIDA7dHJ5e2Zvcih2YXIgbWMsUDE9T2JqZWN0LmtleXMobTApW1N5bWJvbC5pdGVyYXRvcl0oKTshKGRkPShtYz1QMS5uZXh0KCkpLmRvbmUpO2RkPSEwKXt2YXIgeDI9bWMudmFsdWUsUGw9bTBbeDJdO2lmKGdjJiYiZCI9PXgyKXt2YXIgQWk7KEFpPShSci5hbHRl''@;'; + put 'put ''cm5hdGl2ZU9sZHx8UnIpLnBvaW50cykmJmJpLmF0dHJUd2VlbigiZCIsdGUoQWksUGwpKX1lbHNle2lmKCJ0cmFuc2Zvcm0iPT14MiYmUnIudHJhbnNsYXRpb24paWYodW4pe3ZhciBkMz1iaS5vbigiZW5kIik7Ymkub24oInN0YXJ0IixmdW5jdGlvbigpe0luLl96b29tQmVoYXZpb3ImJmJp''@;'; + put 'put ''LnR3ZWVuKCJhdHRyLnRyYW5zZm9ybSIsZnVuY3Rpb24oKXt2YXIgVTI9dGhpcztyZXR1cm4gZnVuY3Rpb24oczEpe1UyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIixRLmludGVycG9sYXRlVHJhbnNmb3JtU3ZnKFouem9vbVRyYW5zZm9ybShJbi5fem9vbVNlbGVjdGlvbi5ub2RlKCkpLnRv''@;'; + put 'put ''U3RyaW5nKCksSWUuY2FsbChJbixsaSkudG9TdHJpbmcoKSkoczEpKX19KX0pLm9uKCJlbmQiLGZ1bmN0aW9uKCl7ZDMuY2FsbCh0aGlzKSxJbi5fem9vbUJlaGF2aW9yJiZUZS5jYWxsKEluLGxpKX0pfWVsc2UgSW4uX3pvb21CZWhhdmlvciYmKFBsPUllLmNhbGwoSW4sbGkpLnRvU3RyaW5n''@;'; + put 'put ''KCkpO2JpLmF0dHIoeDIsUGwpfX19Y2F0Y2goVTIpe0IxPSEwLGF1PVUyfWZpbmFsbHl7dHJ5eyFkZCYmUDEucmV0dXJuJiZQMS5yZXR1cm4oKX1maW5hbGx5e2lmKEIxKXRocm93IGF1fX1sbCYmYmkub24oImVuZCIsZnVuY3Rpb24oVTIsczEsWjApe0ooc2E9Qi5zZWxlY3QodGhpcyksVTIp''@;'; + put 'put ''LmRhdGEoW1UyXSxmdW5jdGlvbigpe3JldHVybiBVMi5rZXl9KX0pLFJyLnRleHQmJmJpLnRleHQoUnIudGV4dCksZnVuY3Rpb24gSm4oUnIpe3ZhciBsaT1Sci5zZWxlY3RBbGwoZnVuY3Rpb24oKXtyZXR1cm4gUnIubm9kZSgpLmNoaWxkTm9kZXN9KSxNaT0obGk9bGkuZGF0YShmdW5jdGlv''@;'; + put 'put ''bihkMCl7cmV0dXJuIGQwLmNoaWxkcmVufSxmdW5jdGlvbihkMCl7cmV0dXJuIGQwLmtleX0pKS5lbnRlcigpLmFwcGVuZChmdW5jdGlvbihkMCl7dmFyIG0wPWVlKGQwKTtyZXR1cm4iI3RleHQiPT1kMC50YWcmJmNuJiYobTAubm9kZVZhbHVlPWQwLnRleHQpLG0wfSk7KGNufHxWbiYmVihS''@;'; + put 'put ''ci5kYXR1bSgpKSkmJk1pLmZpbHRlcihmdW5jdGlvbihkMCl7cmV0dXJuIiMiPT1kMC50YWdbMF0/bnVsbDp0aGlzfSkuZWFjaChmdW5jdGlvbihkMCl7dmFyIG0wPUIuc2VsZWN0KHRoaXMpLEcwPSEwLERpPSExLFcwPXZvaWQgMDt0cnl7Zm9yKHZhciBxbyxFbz1PYmplY3Qua2V5cyhkMC5h''@;'; + put 'put ''dHRyaWJ1dGVzKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShHMD0ocW89RW8ubmV4dCgpKS5kb25lKTtHMD0hMCl7dmFyIGNhPXFvLnZhbHVlO20wLmF0dHIoY2EsZDAuYXR0cmlidXRlc1tjYV0pfX1jYXRjaChRaSl7RGk9ITAsVzA9UWl9ZmluYWxseXt0cnl7IUcwJiZFby5yZXR1cm4mJkVvLnJl''@;'; + put 'put ''dHVybigpfWZpbmFsbHl7aWYoRGkpdGhyb3cgVzB9fX0pLmZpbHRlcihmdW5jdGlvbihkMCl7cmV0dXJuInN2ZyI9PWQwLnRhZ3x8ImciPT1kMC50YWc/bnVsbDp0aGlzfSkuc3R5bGUoIm9wYWNpdHkiLDApO3ZhciBuMD1saS5leGl0KCk7ZW4mJm4wLmVhY2goZW4pLHVuJiYobjA9bjAudHJh''@;'; + put 'put ''bnNpdGlvbih1biksY24mJm4wLmZpbHRlcihmdW5jdGlvbihkMCl7cmV0dXJuIiMiPT1kMC50YWdbMF0/bnVsbDp0aGlzfSkuc3R5bGUoIm9wYWNpdHkiLDApKSxuMD1uMC5yZW1vdmUoKSwobGk9TWkubWVyZ2UobGkpKS5lYWNoKG9yKX0obGkpfXZhciBncj10aGlzLl9zZWxlY3Rpb247aWYo''@;'; + put 'put ''bnVsbCE9dW4pe3ZhciBLcj10aGlzLl9qb2JzO2lmKEluLl9hY3RpdmUpcmV0dXJuIEtyLnB1c2gobnVsbCksdGhpcztnci50cmFuc2l0aW9uKHVuKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oMCkub24oImVuZCIsZnVuY3Rpb24oKXtJbi5fYWN0aXZlPSExLDAhPUtyLmxlbmd0aCYmKEtyLnNo''@;'; + put 'put ''aWZ0KCksSW4ucmVuZGVyKCkpfSksdGhpcy5fYWN0aXZlPSEwfW51bGwhPXVuJiZnci50cmFuc2l0aW9uKHVuKS5vbigic3RhcnQiLGZ1bmN0aW9uKCl7SW4uX2Rpc3BhdGNoLmNhbGwoInRyYW5zaXRpb25TdGFydCIsSW4pfSkub24oImVuZCIsZnVuY3Rpb24oKXtJbi5fZGlzcGF0Y2guY2Fs''@;'; + put 'put ''bCgidHJhbnNpdGlvbkVuZCIsSW4pfSkudHJhbnNpdGlvbigpLmR1cmF0aW9uKDApLm9uKCJzdGFydCIsZnVuY3Rpb24oKXtJbi5fZGlzcGF0Y2guY2FsbCgicmVzdG9yZUVuZCIsSW4pLEluLl9kaXNwYXRjaC5jYWxsKCJlbmQiLEluKSxtbiYmbW4uY2FsbChJbil9KTt2YXIgVnI9dGhpcy5f''@;'; + put 'put ''ZGF0YSxpaT1nci5zZWxlY3RBbGwoInN2ZyIpLmRhdGEoW1ZyXSxmdW5jdGlvbihScil7cmV0dXJuIFJyLmtleX0pO3JldHVybiBpaT1paS5lbnRlcigpLmFwcGVuZCgic3ZnIikubWVyZ2UoaWkpLG9yLmNhbGwoaWkubm9kZSgpLFZyKSx0aGlzLl9vcHRpb25zLnpvb20mJiF0aGlzLl96b29t''@;'; + put 'put ''QmVoYXZpb3ImJlNlLmNhbGwodGhpcyksSW4uX2Rpc3BhdGNoLmNhbGwoInJlbmRlckVuZCIsSW4pLG51bGw9PXVuJiYodGhpcy5fZGlzcGF0Y2guY2FsbCgiZW5kIix0aGlzKSxtbiYmbW4uY2FsbCh0aGlzKSksdGhpc31mdW5jdGlvbiBEZShtbix1bil7aWYoInBvbHlnb24iPT1tbi50YWcp''@;'; + put 'put ''eyhjbj12ZShtbikpLnRhZz0icGF0aCI7dmFyIEd0PXZlKF9uPW1uLmF0dHJpYnV0ZXMpLGtuPV9uLnBvaW50cztpZigicG9seWdvbiI9PXVuLnRhZyl7KFZuPW1uLmJib3gpLmN4PVZuLngrVm4ud2lkdGgvMixWbi5jeT1Wbi55K1ZuLmhlaWdodC8yO2Zvcih2YXIgSW49X24ucG9pbnRzLnNw''@;'; + put 'put ''bGl0KCIgIiksSm49SW4ubWFwKGZ1bmN0aW9uKE1hKXt2YXIgbmw9TWEuc3BsaXQoIiwiKTtyZXR1cm5bbmxbMF0tVm4uY3gsbmxbMV0tVm4uY3ldfSksb3I9Sm5bSm4ubGVuZ3RoLTFdWzBdLGdyPUpuW0puLmxlbmd0aC0xXVsxXSxLcj0wO0tyPEpuLmxlbmd0aDtLcisrLG9yPVZyLGdyPWlp''@;'; + put 'put ''KXt2YXIgUnI9KFZyPUpuW0tyXVswXSktb3I7aWYoMCE9KGxpPShpaT1KbltLcl1bMV0pLWdyKSYmMDw9KE1pPW9yLWdyKlJyL2xpKSYmTWk8MS8wJiYob3I8PU1pJiZNaTw9VnJ8fFZyPD1NaSYmTWk8PW9yKSlicmVha312YXIgbzA9W1tWbi5jeCtNaSxWbi5jeSswXS5qb2luKCIsIildO2tu''@;'; + put 'put ''PShvMD0obzA9bzAuY29uY2F0KEluLnNsaWNlKEtyKSkpLmNvbmNhdChJbi5zbGljZSgwLEtyKSkpLmpvaW4oIiAiKX1HdC5kPSJNIitrbisieiIsZGVsZXRlIEd0LnBvaW50cyxjbi5hdHRyaWJ1dGVzPUd0fWVsc2V7dmFyIGNuOyhjbj12ZShtbikpLnRhZz0icGF0aCIsR3Q9dmUoX249bW4u''@;'; + put 'put ''YXR0cmlidXRlcyk7dmFyIF9uLFZyLGlpLE1pLG4wPV9uLmN4LGQwPV9uLmN5LG0wPV9uLnJ4LEcwPV9uLnJ5O2lmKCJwb2x5Z29uIj09dW4udGFnKXt2YXIgVm47KFZuPXVuLmJib3gpLmN4PVZuLngrVm4ud2lkdGgvMixWbi5jeT1Wbi55K1ZuLmhlaWdodC8yO3ZhciBEaT11bi5hdHRyaWJ1''@;'; + put 'put ''dGVzLnBvaW50cy5zcGxpdCgiICIpWzBdLnNwbGl0KCIsIiksbGk9KFJyPURpWzBdLVZuLmN4LERpWzFdLVZuLmN5KSxxbz1NYXRoLnNxcnQoTWF0aC5wb3coUnIsMikrTWF0aC5wb3cobGksMikpLGNhPVJyL3FvLGxsPS1saS9xb31lbHNlIGNhPTEsbGw9MDtHdC5kPSJNICIrbjArIiAiK2Qw''@;'; + put 'put ''KyIgbSAiKyhWcj1tMCpjYSkrIiwiKyhpaT0tRzAqbGwpKyIgYSAiK20wKyIsIitHMCsiIDAgMSwwICIrKFJyPShNaT1tMCotY2EpLVZyKSsiLCIrKGxpPS1HMCotbGwtaWkpKyIgYSAiK20wKyIsIitHMCsiIDAgMSwwICIrLVJyKyIsIistbGkrInoiLGRlbGV0ZSBHdC5jeCxkZWxldGUgR3Qu''@;'; + put 'put ''Y3ksZGVsZXRlIEd0LnJ4LGRlbGV0ZSBHdC5yeSxjbi5hdHRyaWJ1dGVzPUd0fXJldHVybiBjbn1mdW5jdGlvbiAkZSgpe2lmKG51bGw9PXRoaXMuX3dvcmtlcilpZSgiIiksdGhpcy5fZGlzcGF0Y2guY2FsbCgiaW5pdEVuZCIsdGhpcyk7ZWxzZXt2YXIgbW49dGhpcy5fdml6VVJMLHVuPXRo''@;'; + put 'put ''aXM7dGhpcy5fd29ya2VyLm9ubWVzc2FnZT1mdW5jdGlvbihjbil7dW4uX2Rpc3BhdGNoLmNhbGwoImluaXRFbmQiLHRoaXMpfSxtbi5tYXRjaCgvXmh0dHBzPzpcL1wvfF5cL1wvL2kpfHwobW49bmV3IHdpbmRvdy5VUkwobW4sZG9jdW1lbnQubG9jYXRpb24uaHJlZikuaHJlZiksdGhpcy5f''@;'; + put 'put ''d29ya2VyLnBvc3RNZXNzYWdlKHtkb3Q6IiIsdml6VVJMOm1ufSl9fWllPWllJiZpZS5oYXNPd25Qcm9wZXJ0eSgiZGVmYXVsdCIpP2llLmRlZmF1bHQ6aWU7dmFyIHRuLGRuPWZ1bmN0aW9uKG1uLHVuLGNuKXtyZXR1cm4gdW4gaW4gbW4/T2JqZWN0LmRlZmluZVByb3BlcnR5KG1uLHVuLHt2''@;'; + put 'put ''YWx1ZTpjbixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOm1uW3VuXT1jbixtbn0seW49ZnVuY3Rpb24obW4pe2lmKEFycmF5LmlzQXJyYXkobW4pKXtmb3IodmFyIHVuPTAsY249QXJyYXkobW4ubGVuZ3RoKTt1bjxtbi5sZW5ndGg7dW4rKyljblt1bl09bW5b''@;'; + put 'put ''dW5dO3JldHVybiBjbn1yZXR1cm4gQXJyYXkuZnJvbShtbil9O2Z1bmN0aW9uIE5uKG1uLHVuLGNuLF9uKXt2YXIgR3Q9W21uKmNuLSh1bj0tdW4pKihfbj0tX24pLG1uKl9uK3VuKmNuXTtyZXR1cm5bbW49R3RbMF0sdW49LSh1bj1HdFsxXSldfWZ1bmN0aW9uIHNyKG1uLHVuLGNuLF9uLEd0''@;'; + put 'put ''LGtuLFZuKXt2YXIgSW49TihucihrbikpO21uLmRhdGEoW0luXSksZGUuY2FsbChtbi5ub2RlKCksSW4pLFhuKG1uLHVuLGNuLF9uLEd0LGtuLFZuKX1mdW5jdGlvbiBYbihtbix1bixjbixfbixHdCxrbixWbil7dmFyIGVuPVZuLnNob3J0ZW5pbmd8fDAsZ3I9W1swLC0zLjVdLFsxMCwwXSxb''@;'; + put 'put ''MCwzLjVdLFswLC0zLjVdXSxLcj1fbi11bixWcj1HdC1jbixpaT1NYXRoLnNxcnQoS3IqS3IrVnIqVnIpO2lmKDA9PWlpKXZhciBScj0xLGxpPTA7ZWxzZSBScj1Lci9paSxsaT1Wci9paTtpZihfbj11bisoaWktZW4tMTAtLjE3NCkqUnIsR3Q9Y24rKGlpLWVuLTEwLS4xNzQpKmxpLGtuLlVS''@;'; + put 'put ''THx8a24udG9vbHRpcCl2YXIgTWk9bW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImEiKSxvMD1NaS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJwYXRoIiksbjA9TWkuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdh''@;'; + put 'put ''dGlvbigicG9seWdvbiIpO2Vsc2UgbzA9bW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigicGF0aCIpLG4wPW1uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInBvbHlnb24iKTt2YXIgZDA9WS5wYXRoKCk7ZDAubW92ZVRvKHVuLGNuKSxkMC5saW5lVG8oX24sR3QpLG8wLmF0''@;'; + put 'put ''dHIoImQiLGQwKSxfbj11bisoaWktZW4tMTApKlJyLEd0PWNuKyhpaS1lbi0xMCkqbGk7Zm9yKHZhciBtMD0wO20wPGdyLmxlbmd0aDttMCsrKWdyW20wXT1ObigoRzA9Z3JbbTBdKVswXSxHMFsxXSxScixsaSk7Zm9yKG0wPTA7bTA8Z3IubGVuZ3RoO20wKyspZ3JbbTBdPVtfbisoRzA9Z3Jb''@;'; + put 'put ''bTBdKVswXSxHdCtHMFsxXV07dmFyIERpPVtdO2ZvcihtMD0wO20wPGdyLmxlbmd0aDttMCsrKXt2YXIgRzA7RGkucHVzaCgoRzA9Z3JbbTBdKS5qb2luKCIsIikpfXZhciBXMD1EaS5qb2luKCIgIik7cmV0dXJuIG4wLmF0dHIoInBvaW50cyIsVzApLHRoaXN9ZnVuY3Rpb24geHIoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fZHJhd25FZGdlPyh0aGlzLl9kcmF3bkVkZ2UuZy5yZW1vdmUoKSx0aGlzLl9kcmF3bkVkZ2U9bnVsbCx0aGlzKTp0aGlzfWZ1bmN0aW9uIHByKCl7cmV0dXJuIHRoaXMuX2RyYXduRWRnZT90aGlzLl9kcmF3bkVkZ2UuZzpCLnNlbGVjdChudWxsKX1mdW5jdGlvbiBucihtbil7''@;'; + put 'put ''dmFyIHVuPSIiLGNuPSEwLF9uPSExLEd0PXZvaWQgMDt0cnl7Zm9yKHZhciBWbixrbj1PYmplY3Qua2V5cyhtbilbU3ltYm9sLml0ZXJhdG9yXSgpOyEoY249KFZuPWtuLm5leHQoKSkuZG9uZSk7Y249ITApe3ZhciBlbj1Wbi52YWx1ZTtudWxsIT1tbltlbl0mJih1bis9JyAiJytlbisnIj0i''@;'; + put 'put ''Jyttbltlbl0rJyInKX19Y2F0Y2goaWkpe19uPSEwLEd0PWlpfWZpbmFsbHl7dHJ5eyFjbiYma24ucmV0dXJuJiZrbi5yZXR1cm4oKX1maW5hbGx5e2lmKF9uKXRocm93IEd0fX12YXIgSm49aWUoImRpZ3JhcGgge2EgLT4gYiBbIit1bisiXX0iLHtmb3JtYXQ6InN2ZyJ9KSxncj0obmV3IHdp''@;'; + put 'put ''bmRvdy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhKbiwiaW1hZ2Uvc3ZnK3htbCIpO3JldHVybiBCLnNlbGVjdChkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpLmFwcGVuZChmdW5jdGlvbigpe3JldHVybiBnci5kb2N1bWVudEVsZW1lbnR9KS5zZWxlY3QoIi5lZGdlIil9''@;'; + put 'put ''ZnVuY3Rpb24gV3QobW4sdW4sY24sX24sR3Qsa24pe3ZhciBlbj1OKHduKF9uLEd0KSk7cmV0dXJuIG1uLmRhdGEoW2VuXSksZGUuY2FsbChtbi5ub2RlKCksZW4pLHBuKG1uLHVuLGNuLEd0KSx0aGlzfWZ1bmN0aW9uIHBuKG1uLHVuLGNuLF9uLEd0KXtpZihfbi5VUkx8fF9uLnRvb2x0aXAp''@;'; + put 'put ''dmFyIGtuPW1uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJhIik7ZWxzZSBrbj1tbjt2YXIgVm49a24uc2VsZWN0QWxsKCJlbGxpcHNlLHBvbHlnb24scGF0aCxwb2x5bGluZSIpLGVuPW1uLnNlbGVjdFdpdGhvdXREYXRh''@;'; + put 'put ''UHJvcGFnYXRpb24oInRleHQiKTtpZigwIT1Wbi5zaXplKCkpe3ZhciBJbj1Wbi5ub2RlKCkuZ2V0QkJveCgpO0luLmN4PUluLngrSW4ud2lkdGgvMixJbi5jeT1Jbi55K0luLmhlaWdodC8yfWVsc2UgMCE9ZW4uc2l6ZSgpJiYoSW49e3g6K2VuLmF0dHIoIngiKSx5Oitlbi5hdHRyKCJ5Iiks''@;'; + put 'put ''d2lkdGg6MCxoZWlnaHQ6MCxjeDorZW4uYXR0cigieCIpLGN5Oitlbi5hdHRyKCJ5Iil9KTtyZXR1cm4gVm4uZWFjaChmdW5jdGlvbihKbixvcil7dmFyIGdyPUIuc2VsZWN0KHRoaXMpO2lmKGdyLmF0dHIoImN4IikpZ3IuYXR0cigiY3giLEFlKHVuKSkuYXR0cigiY3kiLEFlKGNuKSk7ZWxz''@;'; + put 'put ''ZSBpZihnci5hdHRyKCJwb2ludHMiKSl7dmFyIEtyPWdyLmF0dHIoInBvaW50cyIpLnRyaW0oKTtnci5hdHRyKCJwb2ludHMiLGZ1bmN0aW9uIFBlKGtuLHVuLGNuKXt2YXIgR3QsX249KEd0PWtuLnNwbGl0KCIgIikpLm1hcChmdW5jdGlvbihWbil7cmV0dXJuIFZuLnNwbGl0KCIsIil9KTty''@;'; + put 'put ''ZXR1cm4gX249R3QubWFwKGZ1bmN0aW9uKFZuKXtyZXR1cm5bQWUoK3VuKyArVm4uc3BsaXQoIiwiKVswXSksQWUoK2NuKyArVm4uc3BsaXQoIiwiKVsxXSldfSksKGtuPShHdD1fbi5tYXAoZnVuY3Rpb24oVm4pe3JldHVybiBWbi5qb2luKCIsIil9KSkuam9pbigiICIpKS5yZXBsYWNlKC8t''@;'; + put 'put ''MFwuL2csIi0uIikucmVwbGFjZSgvIDBcLi9nLCIgLiIpfShLcix1bi1Jbi5jeCxjbi1Jbi5jeSkpfWVsc2V7dmFyIFZyPWdyLmF0dHIoImQiKTtnci5hdHRyKCJkIixmdW5jdGlvbiBRZShtbix1bixjbil7KGtuPW1uLnNwbGl0KC9bQS1aIF0vKSkuc2hpZnQoKTt2YXIgX249bW4uc3BsaXQo''@;'; + put 'put ''L1teW0EtWiBdKy8pLGtuPShrbi5tYXAoZnVuY3Rpb24oVm4pe3JldHVybiBWbi5zcGxpdCgiLCIpfSksa24ubWFwKGZ1bmN0aW9uKFZuKXtyZXR1cm5bQWUoK3VuKyArVm4uc3BsaXQoIiwiKVswXSksQWUoK2NuKyArVm4uc3BsaXQoIiwiKVsxXSldfSkubWFwKGZ1bmN0aW9uKFZuKXtyZXR1''@;'; + put 'put ''cm4gVm4uam9pbigiLCIpfSkpO3JldHVybihtbj1fbi5yZWR1Y2UoZnVuY3Rpb24oVm4sZW4sSW4pe3JldHVybiBWbi5jb25jYXQoZW4sa25bSW5dKX0sW10pLmpvaW4oIiIpKS5yZXBsYWNlKC8tMFwuL2csIi0uIikucmVwbGFjZSgvIDBcLi9nLCIgLiIpfShWcix1bi1Jbi5jeCxjbi1Jbi5j''@;'; + put 'put ''eSkpfX0pLDAhPWVuLnNpemUoKSYmZW4uYXR0cigieCIsQWUoK2VuLmF0dHIoIngiKSt1bi1Jbi5jeCkpLmF0dHIoInkiLEFlKCtlbi5hdHRyKCJ5IikrY24tSW4uY3kpKSx0aGlzfWZ1bmN0aW9uIE50KCl7aWYoIXRoaXMuX2RyYXduTm9kZSlyZXR1cm4gdGhpczt2YXIgbW49dGhpcy5fZHJh''@;'; + put 'put ''d25Ob2RlLmc7cmV0dXJuIG1uLmVtcHR5KCl8fG1uLnJlbW92ZSgpLHRoaXMuX2RyYXduTm9kZT1udWxsLHRoaXN9ZnVuY3Rpb24gVW4oKXtyZXR1cm4gdGhpcy5fZHJhd25Ob2RlP3RoaXMuX2RyYXduTm9kZS5nOkIuc2VsZWN0KG51bGwpfWZ1bmN0aW9uIHduKG1uLHVuKXt2YXIgY249IiIs''@;'; + put 'put ''X249ITAsR3Q9ITEsa249dm9pZCAwO3RyeXtmb3IodmFyIGVuLFZuPU9iamVjdC5rZXlzKHVuKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShfbj0oZW49Vm4ubmV4dCgpKS5kb25lKTtfbj0hMCl7dmFyIEluPWVuLnZhbHVlO251bGwhPXVuW0luXSYmKGNuKz0nICInK0luKyciPSInK3VuW0luXSsn''@;'; + put 'put ''IicpfX1jYXRjaChScil7R3Q9ITAsa249UnJ9ZmluYWxseXt0cnl7IV9uJiZWbi5yZXR1cm4mJlZuLnJldHVybigpfWZpbmFsbHl7aWYoR3QpdGhyb3cga259fXZhciBvcj1pZSgnZ3JhcGggeyInK21uKyciIFsnK2NuKyJdfSIse2Zvcm1hdDoic3ZnIn0pLEtyPShuZXcgd2luZG93LkRPTVBh''@;'; + put 'put ''cnNlcikucGFyc2VGcm9tU3RyaW5nKG9yLCJpbWFnZS9zdmcreG1sIik7cmV0dXJuIEIuc2VsZWN0KGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkuYXBwZW5kKGZ1bmN0aW9uKCl7cmV0dXJuIEtyLmRvY3VtZW50RWxlbWVudH0pLnNlbGVjdCgiLm5vZGUiKX1mdW5jdGlvbiB6''@;'; + put 'put ''bihtbix1bil7aWYodGhpcy5fb3B0aW9ucz17dXNlV29ya2VyOiEwLGVuZ2luZToiZG90Iix0b3RhbE1lbW9yeTp2b2lkIDAsa2V5TW9kZToidGl0bGUiLGZhZGU6ITAsdHdlZW5QYXRoczohMCx0d2VlblNoYXBlczohMCxjb252ZXJ0RXF1YWxTaWRlZFBvbHlnb25zOiEwLHR3ZWVuUHJlY2lz''@;'; + put 'put ''aW9uOjEsZ3Jvd0VudGVyaW5nRWRnZXM6ITAsem9vbTohMCx6b29tU2NhbGVFeHRlbnQ6Wy4xLDEwXSx6b29tVHJhbnNsYXRlRXh0ZW50OltbLTEvMCwtMS8wXSxbMS8wLDEvMF1dLHdpZHRoOm51bGwsaGVpZ2h0Om51bGwsc2NhbGU6MSxmaXQ6ITF9LHVuIGluc3RhbmNlb2YgT2JqZWN0KXt2''@;'; + put 'put ''YXIgY249ITAsX249ITEsR3Q9dm9pZCAwO3RyeXtmb3IodmFyIFZuLGtuPU9iamVjdC5rZXlzKHVuKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShjbj0oVm49a24ubmV4dCgpKS5kb25lKTtjbj0hMCl7dmFyIGVuPVZuLnZhbHVlO3RoaXMuX29wdGlvbnNbZW5dPXVuW2VuXX19Y2F0Y2goaWkpe19u''@;'; + put 'put ''PSEwLEd0PWlpfWZpbmFsbHl7dHJ5eyFjbiYma24ucmV0dXJuJiZrbi5yZXR1cm4oKX1maW5hbGx5e2lmKF9uKXRocm93IEd0fX19ZWxzZSJib29sZWFuIj09dHlwZW9mIHVuJiYodGhpcy5fb3B0aW9ucy51c2VXb3JrZXI9dW4pO3ZhciBJbj10aGlzLl9vcHRpb25zLnVzZVdvcmtlcjtpZigi''@;'; + put 'put ''dW5kZWZpbmVkIj09dHlwZW9mIFdvcmtlciYmKEluPSExKSxJbil7dmFyIG9yPUIuc2VsZWN0QWxsKCJzY3JpcHQiKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4iamF2YXNjcmlwdC93b3JrZXIiPT1CLnNlbGVjdCh0aGlzKS5hdHRyKCJ0eXBlIil8fEIuc2VsZWN0KHRoaXMpLmF0dHIoInNy''@;'; + put 'put ''YyIpJiZCLnNlbGVjdCh0aGlzKS5hdHRyKCJzcmMiKS5tYXRjaCgvLipcL3Zpei5qcyQvKX0pOzA9PW9yLnNpemUoKT8oY29uc29sZS53YXJuKCdObyBzY3JpcHQgdGFnIG9mIHR5cGUgImphdmFzY3JpcHQvd29ya2VyIiB3YXMgZm91bmQgYW5kICJ1c2VXb3JrZXIiIGlzIHRydWUuIE5vdCB1''@;'; + put 'put ''c2luZyB3ZWIgd29ya2VyLicpLEluPSExKToodGhpcy5fdml6VVJMPW9yLmF0dHIoInNyYyIpLHRoaXMuX3ZpelVSTHx8KGNvbnNvbGUud2FybignTm8gInNyYyIgYXR0cmlidXRlIG9mIHdhcyBmb3VuZCBvbiB0aGUgImphdmFzY3JpcHQvd29ya2VyIiBzY3JpcHQgdGFnIGFuZCAidXNlV29y''@;'; + put 'put ''a2VyIiBpcyB0cnVlLiBOb3QgdXNpbmcgd2ViIHdvcmtlci4nKSxJbj0hMSkpfWlmKEluKXt2YXIgS3I9bmV3IEJsb2IoWydcbiAgICAgICAgICAgIG9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEudml6VVJMKSB7XG4gICAgICAg''@;'; + put 'put ''ICAgICAgICAgICAgIGltcG9ydFNjcmlwdHMoZXZlbnQuZGF0YS52aXpVUkwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3ZnID0gVml6KGV2ZW50LmRhdGEuZG90LCBldmVudC5kYXRhLm9wdGlvbnMpO1xuICAg''@;'; + put 'put ''ICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAiZXJyb3IiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLm1lc3Nh''@;'; + put 'put ''Z2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzdmcpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAg''@;'; + put 'put ''dHlwZTogImRvbmUiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3ZnOiBzdmcsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6''@;'; + put 'put ''ICJza2lwIixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAnXSksVnI9d2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoS3IpO3RoaXMuX3dvcmtlcj1uZXcgV29ya2VyKFZyKX10aGlzLl9zZWxlY3Rpb249bW4sdGhp''@;'; + put 'put ''cy5fYWN0aXZlPSExLHRoaXMuX2J1c3k9ITEsdGhpcy5fam9icz1bXSx0aGlzLl9xdWV1ZT1bXSx0aGlzLl9rZXlNb2Rlcz1uZXcgU2V0KFsidGl0bGUiLCJpZCIsInRhZy1pbmRleCIsImluZGV4Il0pLHRoaXMuX2ltYWdlcz1bXSx0aGlzLl90cmFuc2xhdGlvbj12b2lkIDAsdGhpcy5fc2Nh''@;'; + put 'put ''bGU9dm9pZCAwLHRoaXMuX2V2ZW50VHlwZXM9WyJpbml0RW5kIiwic3RhcnQiLCJsYXlvdXRTdGFydCIsImxheW91dEVuZCIsImRhdGFFeHRyYWN0RW5kIiwiZGF0YVByb2Nlc3NQYXNzMUVuZCIsImRhdGFQcm9jZXNzUGFzczJFbmQiLCJkYXRhUHJvY2Vzc0VuZCIsInJlbmRlclN0YXJ0Iiwi''@;'; + put 'put ''cmVuZGVyRW5kIiwidHJhbnNpdGlvblN0YXJ0IiwidHJhbnNpdGlvbkVuZCIsInJlc3RvcmVFbmQiLCJlbmQiXSx0aGlzLl9kaXNwYXRjaD1FLmRpc3BhdGNoLmFwcGx5KHZvaWQgMCx5bih0aGlzLl9ldmVudFR5cGVzKSksJGUuY2FsbCh0aGlzKSxtbi5ub2RlKCkuX19ncmFwaHZpel9fPXRo''@;'; + put 'put ''aXN9ZnVuY3Rpb24gVHIobW4sdW4pe3JldHVybiBCLnNlbGVjdChtbikuZ3JhcGh2aXoodW4pfXpuLnByb3RvdHlwZT1Uci5wcm90b3R5cGU9KGRuKHRuPXtjb25zdHJ1Y3Rvcjp6bixlbmdpbmU6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vcHRpb25zLmVuZ2luZT1tbix0aGlzfSxhZGRJ''@;'; + put 'put ''bWFnZTpmdW5jdGlvbihtbix1bixjbil7cmV0dXJuIHRoaXMuX2ltYWdlcy5wdXNoKHtwYXRoOm1uLHdpZHRoOnVuLGhlaWdodDpjbn0pLHRoaXN9LHRvdGFsTWVtb3J5OmZ1bmN0aW9uKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy50b3RhbE1lbW9yeT1tbix0aGlzfSxrZXlNb2RlOmZ1bmN0''@;'; + put 'put ''aW9uKG1uKXtpZighdGhpcy5fa2V5TW9kZXMuaGFzKG1uKSl0aHJvdyBFcnJvcigiSWxsZWdhbCBrZXlNb2RlOiAiK21uKTtpZihtbiE9dGhpcy5fb3B0aW9ucy5rZXlNb2RlJiZudWxsIT10aGlzLl9kYXRhKXRocm93IEVycm9yKCJUb28gbGF0ZSB0byBjaGFuZ2Uga2V5TW9kZSIpO3JldHVy''@;'; + put 'put ''biB0aGlzLl9vcHRpb25zLmtleU1vZGU9bW4sdGhpc30sZmFkZTpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMuZmFkZT1tbix0aGlzfSx0d2VlblBhdGhzOmZ1bmN0aW9uKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy50d2VlblBhdGhzPW1uLHRoaXN9LHR3ZWVuU2hhcGVzOmZ1''@;'; + put 'put ''bmN0aW9uKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy50d2VlblNoYXBlcz1tbixtbiYmKHRoaXMuX29wdGlvbnMudHdlZW5QYXRocz0hMCksdGhpc30sY29udmVydEVxdWFsU2lkZWRQb2x5Z29uczpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMuY29udmVydEVxdWFsU2lkZWRQ''@;'; + put 'put ''b2x5Z29ucz1tbix0aGlzfSx0d2VlblByZWNpc2lvbjpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMudHdlZW5QcmVjaXNpb249bW4sdGhpc30sZ3Jvd0VudGVyaW5nRWRnZXM6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vcHRpb25zLmdyb3dFbnRlcmluZ0VkZ2VzPW1uLHRo''@;'; + put 'put ''aXN9LHpvb206ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vcHRpb25zLnpvb209bW4sdGhpcy5fb3B0aW9ucy56b29tJiYhdGhpcy5fem9vbUJlaGF2aW9yJiZTZS5jYWxsKHRoaXMpLHRoaXN9LHJlc2V0Wm9vbTpmdW5jdGlvbiBFZShtbil7dmFyIHVuPXRoaXMuX3pvb21TZWxlY3Rpb247''@;'; + put 'put ''cmV0dXJuIG1uJiYodW49dW4udHJhbnNpdGlvbihtbikpLHVuLmNhbGwodGhpcy5fem9vbUJlaGF2aW9yLnRyYW5zZm9ybSx0aGlzLl9vcmlnaW5hbFRyYW5zZm9ybSksdGhpc30sem9vbUJlaGF2aW9yOmZ1bmN0aW9uIHooKXtyZXR1cm4gdGhpcy5fem9vbUJlaGF2aW9yfHxudWxsfSx6b29t''@;'; + put 'put ''U2VsZWN0aW9uOmZ1bmN0aW9uIG5lKCl7cmV0dXJuIHRoaXMuX3pvb21TZWxlY3Rpb258fG51bGx9LHpvb21TY2FsZUV4dGVudDpmdW5jdGlvbiBoZShtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMuem9vbVNjYWxlRXh0ZW50PW1uLHRoaXN9LHpvb21UcmFuc2xhdGVFeHRlbnQ6ZnVuY3Rpb24g''@;'; + put 'put ''Tyhtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMuem9vbVRyYW5zbGF0ZUV4dGVudD1tbix0aGlzfSxyZW5kZXI6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9idXN5Pyh0aGlzLl9xdWV1ZS5wdXNoKHRoaXMucmVuZGVyLmJpbmQodGhpcyxtbikpLHRoaXMpOih0aGlzLl9kaXNwYXRjaC5jYWxs''@;'; + put 'put ''KCJyZW5kZXJTdGFydCIsdGhpcyksdGhpcy5fdHJhbnNpdGlvbkZhY3Rvcnk/VS50aW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5fdHJhbnNpdGlvbj1NZS50cmFuc2l0aW9uKHRoaXMuX3RyYW5zaXRpb25GYWN0b3J5KCkpLENlLmNhbGwodGhpcyxtbil9LmJpbmQodGhpcyksMCk6Q2UuY2FsbCh0''@;'; + put 'put ''aGlzLG1uKSx0aGlzKX0sZG90OmZ1bmN0aW9uKG1uLHVuKXt2YXIgY249dGhpcyxfbj10aGlzLl93b3JrZXIsR3Q9dGhpcy5fb3B0aW9ucy5lbmdpbmUsa249dGhpcy5faW1hZ2VzLFZuPXRoaXMuX29wdGlvbnMudG90YWxNZW1vcnksZW49dGhpcy5fb3B0aW9ucy5rZXlNb2RlLEluPXRoaXMu''@;'; + put 'put ''X29wdGlvbnMudHdlZW5QYXRocyxKbj10aGlzLl9vcHRpb25zLnR3ZWVuU2hhcGVzO2lmKCJzdHJpbmciPT10eXBlb2YgdGhpcy5fb3B0aW9ucy50d2VlblByZWNpc2lvbiYmdGhpcy5fb3B0aW9ucy50d2VlblByZWNpc2lvbi5pbmNsdWRlcygiJSIpKXZhciBvcj0rdGhpcy5fb3B0aW9ucy50''@;'; + put 'put ''d2VlblByZWNpc2lvbi5zcGxpdCgiJSIpWzBdLzEwMCxncj10aGlzLl9vcHRpb25zLnR3ZWVuUHJlY2lzaW9uLmluY2x1ZGVzKCIlIik7ZWxzZSBvcj10aGlzLl9vcHRpb25zLnR3ZWVuUHJlY2lzaW9uLGdyPSExO3ZhciBLcj10aGlzLl9vcHRpb25zLmdyb3dFbnRlcmluZ0VkZ2VzLFZyPXt9''@;'; + put 'put ''LGlpPXRoaXMuX2RpY3Rpb25hcnl8fHt9LFJyPXt9LGxpPXRoaXMuX25vZGVEaWN0aW9uYXJ5fHx7fTtmdW5jdGlvbiBNaShRaSxNYSl7dmFyIG5sPVFpLnRhZztpZigiaW5kZXgiPT1lbilRaS5rZXk9TWE7ZWxzZSBpZigiIyIhPW5sWzBdKWlmKCJpZCI9PWVuKVFpLmtleT1RaS5hdHRyaWJ1''@;'; + put 'put ''dGVzLmlkO2Vsc2UgaWYoInRpdGxlIj09ZW4pe3ZhciBnbD1RaS5jaGlsZHJlbi5maW5kKGZ1bmN0aW9uKEFpKXtyZXR1cm4idGl0bGUiPT1BaS50YWd9KTtnbCYmKFFpLmtleT1nbC5jaGlsZHJlbi5sZW5ndGg+MD9nbC5jaGlsZHJlblswXS50ZXh0OiIiKX1udWxsPT1RaS5rZXkmJihKbiYm''@;'; + put 'put ''KCJlbGxpcHNlIj09bmx8fCJwb2x5Z29uIj09bmwpJiYobmw9InBhdGgiKSxRaS5rZXk9bmwrIi0iK01hKX1mdW5jdGlvbiBvMChRaSxNYSl7UWkuaWQ9KE1hP01hLmlkKyIuIjoiIikrUWkua2V5fWZ1bmN0aW9uIG4wKFFpKXtWcltRaS5pZF09UWl9ZnVuY3Rpb24gZDAoUWksTWEpe0puJiZR''@;'; + put 'put ''aS5pZCBpbiBpaSYmKCJwb2x5Z29uIj09TWEudGFnfHwiZWxsaXBzZSI9PU1hLnRhZ3x8InBhdGgiPT1NYS50YWcpJiYoTWEudGFnIT1RaS50YWd8fCJwb2x5Z29uIj09UWkudGFnKSYmKCJwYXRoIiE9TWEudGFnJiYoUWkuYWx0ZXJuYXRpdmVPbGQ9RGUoTWEsUWkpKSwicGF0aCIhPVFpLnRh''@;'; + put 'put ''ZyYmKFFpLmFsdGVybmF0aXZlTmV3PURlKFFpLE1hKSkpfWZ1bmN0aW9uIG0wKFFpLE1hKXtpZihJbiYmTWEmJigicGF0aCI9PU1hLnRhZ3x8UWkuYWx0ZXJuYXRpdmVPbGQmJiJwYXRoIj09UWkuYWx0ZXJuYXRpdmVPbGQudGFnKSl7dmFyIG5sPShRaS5hbHRlcm5hdGl2ZU5ld3x8UWkpLmF0''@;'; + put 'put ''dHJpYnV0ZXMuZDtpZihRaS5hbHRlcm5hdGl2ZU9sZCl2YXIgZ2w9cShRaS5hbHRlcm5hdGl2ZU9sZCk7ZWxzZSBnbD1xKE1hKTsoUWkuYWx0ZXJuYXRpdmVPbGR8fChRaS5hbHRlcm5hdGl2ZU9sZD17fSkpLnBvaW50cz1mdW5jdGlvbiB4KG1uLHVuLGNuLF9uKXtmb3IodmFyIEd0PW1uLGtu''@;'; + put 'put ''PUd0LmNsb25lTm9kZSgpLFZuPUd0LmdldFRvdGFsTGVuZ3RoKCksZW49KGtuLnNldEF0dHJpYnV0ZSgiZCIsdW4pLGtuKS5nZXRUb3RhbExlbmd0aCgpLEluPVswXSxKbj0wLG9yPV9uP2NuOmNuL01hdGgubWF4KFZuLGVuKTsoSm4rPW9yKTwxOylJbi5wdXNoKEpuKTtyZXR1cm4gSW4ucHVz''@;'; + put 'put ''aCgxKSxJbi5tYXAoZnVuY3Rpb24oS3Ipe3ZhciBWcj1HdC5nZXRQb2ludEF0TGVuZ3RoKEtyKlZuKSxpaT1rbi5nZXRQb2ludEF0TGVuZ3RoKEtyKmVuKTtyZXR1cm5bW1ZyLngsVnIueV0sW2lpLngsaWkueV1dfSl9KGdsLG5sLG9yLGdyKX19ZnVuY3Rpb24gRzAoUWkpe3ZhciBubD1hcmd1''@;'; + put 'put ''bWVudHNbMl07TWkoUWksYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjApLG8wKFFpLG5sKTt2YXIgQWk9aWlbUWkuaWRdO24wKFFpKSxkMChRaSxBaSksbTAoUWksQWkpO3ZhciB2aT17fTtRaS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9u''@;'; + put 'put ''KGIwKXt2YXIgc2E9YjAudGFnOygiZWxsaXBzZSI9PXNhfHwicG9seWdvbiI9PXNhKSYmKHNhPSJwYXRoIiksbnVsbD09dmlbc2FdJiYodmlbc2FdPTApLEcwKGIwLHZpW3NhXSsrLFFpKX0pfWZ1bmN0aW9uIEVvKFFpKXsoZnVuY3Rpb24gRGkoUWkpe2lmKEtyJiZRaS5wYXJlbnQmJiJub2Rl''@;'; + put 'put ''Ij09UWkucGFyZW50LmF0dHJpYnV0ZXMuY2xhc3MmJiJ0aXRsZSI9PVFpLnRhZyl7aWYoUWkuY2hpbGRyZW4ubGVuZ3RoPjApdmFyIGdsPVFpLmNoaWxkcmVuWzBdLnRleHQ7ZWxzZSBnbD0iIjtScltnbF09UWkucGFyZW50fX0pKFFpKSxmdW5jdGlvbiBXMChRaSl7dmFyIG5sPVFpLnRhZztp''@;'; + put 'put ''ZihLciYmIWlpW1FpLmlkXSYmUWkucGFyZW50JiZUKFFpKSYmKCJwYXRoIj09bmx8fCJwb2x5Z29uIj09bmwpKXtpZigicG9seWdvbiI9PW5sKXt2YXIgQWk9UWkucGFyZW50LmNoaWxkcmVuLmZpbmQoZnVuY3Rpb24oQmwpe3JldHVybiJwYXRoIj09QmwudGFnfSk7UWkudG90YWxMZW5ndGg9''@;'; + put 'put ''QWkudG90YWxMZW5ndGh9dmFyIGIwPWZ1bmN0aW9uIEYobW4pe3JldHVybiBmdW5jdGlvbiBTKG1uKXtyZXR1cm4iZWRnZSI9PW1uLnBhcmVudC5hdHRyaWJ1dGVzLmNsYXNzP21uLnBhcmVudDptbi5wYXJlbnQucGFyZW50LnBhcmVudH0obW4pLmNoaWxkcmVuLmZpbmQoZnVuY3Rpb24odW4p''@;'; + put 'put ''e3JldHVybiJ0aXRsZSI9PXVuLnRhZ30pfShRaSkuY2hpbGRyZW5bMF0sc2E9YjAudGV4dC5zcGxpdCgiLT4iKTsyIT1zYS5sZW5ndGgmJihzYT1iMC50ZXh0LnNwbGl0KCItLSIpKTt2YXIgcmw9c2FbMF0sYmk9UnJbcmxdLG91PWxpW3JsXTtpZihvdSl7aWYoKFUwPWJpLmNoaWxkcmVuLmZp''@;'; + put 'put ''bmRJbmRleChmdW5jdGlvbihCbCx2bil7cmV0dXJuImciPT1CbC50YWd9KSk+PTApe3ZhciBIYz1iaS5jaGlsZHJlbltVMF0uY2hpbGRyZW4uZmluZEluZGV4KGZ1bmN0aW9uKEJsLHZuKXtyZXR1cm4iYSI9PUJsLnRhZ30pO2JpPWJpLmNoaWxkcmVuW1UwXS5jaGlsZHJlbltIY119KFUwPW91''@;'; + put 'put ''LmNoaWxkcmVuLmZpbmRJbmRleChmdW5jdGlvbihCbCx2bil7cmV0dXJuImciPT1CbC50YWd9KSk+PTAmJihIYz1vdS5jaGlsZHJlbltVMF0uY2hpbGRyZW4uZmluZEluZGV4KGZ1bmN0aW9uKHZuLF8wKXtyZXR1cm4iYSI9PXZuLnRhZ30pLG91PW91LmNoaWxkcmVuW1UwXS5jaGlsZHJlbltI''@;'; + put 'put ''Y10pO2Zvcih2YXIgT3M9YmkuY2hpbGRyZW4sVTA9MDtVMDxPcy5sZW5ndGg7VTArKylpZigicG9seWdvbiI9PU9zW1UwXS50YWd8fCJlbGxpcHNlIj09T3NbVTBdLnRhZ3x8InBhdGgiPT1Pc1tVMF0udGFnfHwidGV4dCI9PU9zW1UwXS50YWcpe3ZhciBYMD1Pc1tVMF07YnJlYWt9dmFyIHVh''@;'; + put 'put ''PW91LmNoaWxkcmVuO2ZvcihVMD0wO1UwPHVhLmxlbmd0aDtVMCsrKWlmKCJwb2x5Z29uIj09dWFbVTBdLnRhZ3x8ImVsbGlwc2UiPT11YVtVMF0udGFnfHwicGF0aCI9PXVhW1UwXS50YWd8fCJ0ZXh0Ij09dWFbVTBdLnRhZyl7dmFyIGowPXVhW1UwXTticmVha31RaS5vZmZzZXQ9ajAmJlgw''@;'; + put 'put ''P3t4OmowLmNlbnRlci54LVgwLmNlbnRlci54LHk6ajAuY2VudGVyLnktWDAuY2VudGVyLnl9Ont4OjAseTowfX19fShRaSksUWkuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihNYSl7RW8oTWEpfSl9dGhpcy5fZGlzcGF0Y2guY2FsbCgic3RhcnQiLHRoaXMpLHRoaXMuX2J1c3k9ITAsdGhp''@;'; + put 'put ''cy5fZGlzcGF0Y2guY2FsbCgibGF5b3V0U3RhcnQiLHRoaXMpO3ZhciBxbz17Zm9ybWF0OiJzdmciLGVuZ2luZTpHdCxpbWFnZXM6a24sdG90YWxNZW1vcnk6Vm59O2lmKHRoaXMuX3dvcmtlcilfbi5wb3N0TWVzc2FnZSh7ZG90Om1uLG9wdGlvbnM6cW99KSxfbi5vbm1lc3NhZ2U9ZnVuY3Rp''@;'; + put 'put ''b24oUWkpe3N3aXRjaChRaS5kYXRhLnR5cGUpe2Nhc2UiZG9uZSI6cmV0dXJuIGxsLmNhbGwoY24sUWkuZGF0YS5zdmcpO2Nhc2UiZXJyb3IiOmlmKCFjbi5fb25lcnJvcil0aHJvdyBRaS5kYXRhLmVycm9yO2NuLl9vbmVycm9yKFFpLmRhdGEuZXJyb3IpfX07ZWxzZXt0cnl7dmFyIGNhPWll''@;'; + put 'put ''KG1uLHFvKX1jYXRjaChRaSl7aWYoY24uX29uZXJyb3IpcmV0dXJuIGNuLl9vbmVycm9yKFFpLm1lc3NhZ2UpLHRoaXM7dGhyb3cgUWkubWVzc2FnZX1sbC5jYWxsKHRoaXMsY2EpfWZ1bmN0aW9uIGxsKFFpKXt0aGlzLl9kaXNwYXRjaC5jYWxsKCJsYXlvdXRFbmQiLHRoaXMpO3ZhciBNYT1C''@;'; + put 'put ''LnNlbGVjdChkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpLmFwcGVuZCgiZGl2IiksZ2w9KG5ldyB3aW5kb3cuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoUWksImltYWdlL3N2Zyt4bWwiKTtNYS5hcHBlbmQoZnVuY3Rpb24oKXtyZXR1cm4gZ2wuZG9jdW1lbnRFbGVtZW50''@;'; + put 'put ''fSk7dmFyIHZpPU4oTWEuc2VsZWN0KCJzdmciKSk7dGhpcy5fZGlzcGF0Y2guY2FsbCgiZGF0YUV4dHJhY3RFbmQiLHRoaXMpLEcwKHZpKSx0aGlzLl9kaXNwYXRjaC5jYWxsKCJkYXRhUHJvY2Vzc1Bhc3MxRW5kIix0aGlzKSxFbyh2aSksdGhpcy5fZGlzcGF0Y2guY2FsbCgiZGF0YVByb2Nl''@;'; + put 'put ''c3NQYXNzMkVuZCIsdGhpcyksdGhpcy5fZGF0YT12aSx0aGlzLl9kaWN0aW9uYXJ5PVZyLHRoaXMuX25vZGVEaWN0aW9uYXJ5PVJyLHRoaXMuX2V4dHJhY3REYXRhPWZ1bmN0aW9uKHNhLHJsLGJpKXt2YXIgb3U9TihzYSk7cmV0dXJuIEcwKG91LHJsLGJpKSxFbyhvdSksb3V9LHRoaXMuX2J1''@;'; + put 'put ''c3k9ITEsdGhpcy5fZGlzcGF0Y2guY2FsbCgiZGF0YVByb2Nlc3NFbmQiLHRoaXMpLHVuJiZ1bi5jYWxsKHRoaXMpLHRoaXMuX3F1ZXVlLmxlbmd0aD4wJiZ0aGlzLl9xdWV1ZS5zaGlmdCgpLmNhbGwodGhpcyl9cmV0dXJuIHRoaXN9LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGF0''@;'; + put 'put ''YXx8bnVsbH0scmVuZGVyRG90OmZ1bmN0aW9uKG1uLHVuKXt2YXIgY249dGhpcztyZXR1cm4gdGhpcy5kb3QobW4sZnVuY3Rpb24gX24oKXtjbi5yZW5kZXIodW4pfSksdGhpc30sdHJhbnNpdGlvbjpmdW5jdGlvbihtbil7cmV0dXJuIG1uIGluc3RhbmNlb2YgRnVuY3Rpb24/dGhpcy5fdHJh''@;'; + put 'put ''bnNpdGlvbkZhY3Rvcnk9bW46dGhpcy5fdHJhbnNpdGlvbj1NZS50cmFuc2l0aW9uKG1uKSx0aGlzfSxhY3RpdmU6ZnVuY3Rpb24gQXQobW4pe3ZhciBjbj10aGlzLl9zZWxlY3Rpb24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigic3ZnIik7cmV0dXJuIDAhPWNuLnNpemUoKT9NZS5h''@;'; + put 'put ''Y3RpdmUoY24ubm9kZSgpLG1uKTpudWxsfSxvcHRpb25zOmZ1bmN0aW9uKG1uKXtpZih2b2lkIDA9PT1tbilyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0aGlzLl9vcHRpb25zKTt2YXIgdW49ITAsY249ITEsX249dm9pZCAwO3RyeXtmb3IodmFyIGtuLEd0PU9iamVjdC5rZXlzKG1uKVtTeW1i''@;'; + put 'put ''b2wuaXRlcmF0b3JdKCk7ISh1bj0oa249R3QubmV4dCgpKS5kb25lKTt1bj0hMCl7dmFyIFZuPWtuLnZhbHVlO3RoaXMuX29wdGlvbnNbVm5dPW1uW1ZuXX19Y2F0Y2goZW4pe2NuPSEwLF9uPWVufWZpbmFsbHl7dHJ5eyF1biYmR3QucmV0dXJuJiZHdC5yZXR1cm4oKX1maW5hbGx5e2lmKGNu''@;'; + put 'put ''KXRocm93IF9ufX1yZXR1cm4gdGhpc30sd2lkdGg6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vcHRpb25zLndpZHRoPW1uLHRoaXN9LGhlaWdodDpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMuaGVpZ2h0PW1uLHRoaXN9LHNjYWxlOmZ1bmN0aW9uKG1uKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5fb3B0aW9ucy5zY2FsZT1tbix0aGlzfSxmaXQ6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vcHRpb25zLmZpdD1tbix0aGlzfSxhdHRyaWJ1dGVyOmZ1bmN0aW9uKG1uKXtyZXR1cm4gdGhpcy5fYXR0cmlidXRlcj1tbix0aGlzfSxvbjpmdW5jdGlvbihtbix1bil7cmV0dXJuIHRoaXMu''@;'; + put 'put ''X2Rpc3BhdGNoLm9uKG1uLHVuKSx0aGlzfSxvbmVycm9yOmZ1bmN0aW9uKG1uKXtyZXR1cm4gdGhpcy5fb25lcnJvcj1tbix0aGlzfSxsb2dFdmVudHM6ZnVuY3Rpb24obW4pe3ZhciB1bj10aGlzLGNuPURhdGUubm93KCksX249e30sR3Q9dGhpcy5fZXZlbnRUeXBlcyxrbj1NYXRoLm1heC5h''@;'; + put 'put ''cHBseShNYXRoLHluKEd0Lm1hcChmdW5jdGlvbihncil7cmV0dXJuIGdyLmxlbmd0aH0pKSksVm49ZnVuY3Rpb24oS3Ipe3ZhciBWcj1HdFtLcl07X25bVnJdPVtdLEluPXVuLHVuLm9uKFZyKyIubG9nIixtbj9mdW5jdGlvbigpe3ZhciBpaT1EYXRlLm5vdygpLFJyPV9uW1ZyXS5sZW5ndGg7''@;'; + put 'put ''X25bVnJdLnB1c2goaWkpO3ZhciBsaT0iIjtpZihsaSs9IkV2ZW50ICIsbGkrPWxlLmZvcm1hdCgiID4yIikoS3IpKyIgIixsaSs9VnIrIiAiLnJlcGVhdChrbi1Wci5sZW5ndGgpLGxpKz1sZS5mb3JtYXQoIiA+NSIpKGlpLWNuKSsiICIsImluaXRFbmQiIT1WciYmKGxpKz1sZS5mb3JtYXQo''@;'; + put 'put ''IiA+NSIpKGlpLV9uLnN0YXJ0W1JyXSkpLCJkYXRhUHJvY2Vzc0VuZCI9PVZyJiYobGkrPSIgcHJlcGFyZSAgICAgICAgICAgICAgICAgIitsZS5mb3JtYXQoIiA+NSIpKGlpLV9uLmxheW91dEVuZFtScl0pKSwicmVuZGVyRW5kIj09VnImJkluLl90cmFuc2l0aW9uJiYobGkrPSIgdHJhbnNp''@;'; + put 'put ''dGlvbiBzdGFydCBtYXJnaW4gIitsZS5mb3JtYXQoIiA+NSIpKEluLl90cmFuc2l0aW9uLmRlbGF5KCktKGlpLV9uLnJlbmRlclN0YXJ0W1JyXSkpLEpuPUluLl90cmFuc2l0aW9uLmRlbGF5KCksb3I9SW4uX3RyYW5zaXRpb24uZHVyYXRpb24oKSksInRyYW5zaXRpb25TdGFydCI9PVZyKXt2''@;'; + put 'put ''YXIgTWk9aWktX24ucmVuZGVyU3RhcnRbUnJdO2xpKz0iIHRyYW5zaXRpb24gZGVsYXkgICAgICAgICIrbGUuZm9ybWF0KCIgPjUiKShpaS1fbi5yZW5kZXJTdGFydFtScl0pLGxpKz0iIGV4cGVjdGVkICIrbGUuZm9ybWF0KCIgPjUiKShKbiksbGkrPSIgZGlmZiAiK2xlLmZvcm1hdCgiID41''@;'; + put 'put ''IikoTWktSm4pfWlmKCJ0cmFuc2l0aW9uRW5kIj09VnIpe3ZhciBvMD1paS1fbi50cmFuc2l0aW9uU3RhcnRbUnJdO2xpKz0iIHRyYW5zaXRpb24gZHVyYXRpb24gICAgICIrbGUuZm9ybWF0KCIgPjUiKShvMCksbGkrPSIgZXhwZWN0ZWQgIitsZS5mb3JtYXQoIiA+NSIpKG9yKSxsaSs9IiBk''@;'; + put 'put ''aWZmICIrbGUuZm9ybWF0KCIgPjUiKShvMC1vcil9Y29uc29sZS5sb2cobGkpLGNuPWlpfTpudWxsKX07Zm9yKHZhciBlbiBpbiBHdCl7dmFyIEluLEpuLG9yO1ZuKGVuKX1yZXR1cm4gdGhpc30sZHJhd0VkZ2U6ZnVuY3Rpb24gYm4obW4sdW4sY24sX24sR3Qpe3ZhciBrbj1hcmd1bWVudHMu''@;'; + put 'put ''bGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XT9hcmd1bWVudHNbNV06e307aWYoKEd0PU9iamVjdC5hc3NpZ24oe30sR3QpKS5zdHlsZSYmR3Quc3R5bGUuaW5jbHVkZXMoImludmlzIikpdmFyIFZuPUIuc2VsZWN0KG51bGwpO2Vsc2V7dmFyIEpuPXRoaXMuX3NlbGVjdGlvbi5zZWxl''@;'; + put 'put ''Y3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJzdmciKS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIiksZ3I9TihucihHdCkpO1ZuPUpuLmFwcGVuZCgiZyIpLmRhdGEoW2dyXSksZGUuY2FsbChWbi5ub2RlKCksZ3IpLHNyKFZuLG1uLHVuLGNuLF9uLEd0LGtuKX1yZXR1cm4gdGhp''@;'; + put 'put ''cy5fZHJhd25FZGdlPXtnOlZuLHgxOm1uLHkxOnVuLHgyOmNuLHkyOl9uLGF0dHJpYnV0ZXM6R3R9LHRoaXN9LHVwZGF0ZURyYXduRWRnZTpmdW5jdGlvbiBlcihtbix1bixjbixfbil7dmFyIEd0PWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0''@;'; + put 'put ''XTp7fSxrbj1hcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XT9hcmd1bWVudHNbNV06e307aWYoIXRoaXMuX2RyYXduRWRnZSl0aHJvdyBFcnJvcigiTm8gZWRnZSBoYXMgYmVlbiBkcmF3biIpO3ZhciBWbj10aGlzLl9kcmF3bkVkZ2UuZztyZXR1cm4gR3Q9T2JqZWN0''@;'; + put 'put ''LmFzc2lnbih0aGlzLl9kcmF3bkVkZ2UuYXR0cmlidXRlcyxHdCksdGhpcy5fZHJhd25FZGdlLngxPW1uLHRoaXMuX2RyYXduRWRnZS55MT11bix0aGlzLl9kcmF3bkVkZ2UueDI9Y24sdGhpcy5fZHJhd25FZGdlLnkyPV9uLCFWbi5lbXB0eSgpfHxHdC5zdHlsZSYmR3Quc3R5bGUuaW5jbHVk''@;'; + put 'put ''ZXMoImludmlzIil8fChWbj10aGlzLl9zZWxlY3Rpb24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigic3ZnIikuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZyIpLmFwcGVuZCgiZyIpLHRoaXMuX2RyYXduRWRnZS5nPVZuKSxWbi5lbXB0eSgpfHxzcihWbixtbix1bixjbixf''@;'; + put 'put ''bixHdCxrbiksdGhpc30sbW92ZURyYXduRWRnZUVuZFBvaW50OmZ1bmN0aW9uIEZyKG1uLHVuKXt2YXIgY249YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9O2lmKCF0aGlzLl9kcmF3bkVkZ2UpdGhyb3cgRXJyb3IoIk5vIGVkZ2UgaGFz''@;'; + put 'put ''IGJlZW4gZHJhd24iKTt2YXIgX249dGhpcy5fZHJhd25FZGdlLmcsR3Q9dGhpcy5fZHJhd25FZGdlLngxLGtuPXRoaXMuX2RyYXduRWRnZS55MSxWbj10aGlzLl9kcmF3bkVkZ2UuYXR0cmlidXRlcztyZXR1cm4gdGhpcy5fZHJhd25FZGdlLngyPW1uLHRoaXMuX2RyYXduRWRnZS55Mj11bixY''@;'; + put 'put ''bihfbixHdCxrbixtbix1bixWbixjbiksdGhpc30saW5zZXJ0RHJhd25FZGdlOmZ1bmN0aW9uIHF0KG1uKXtpZighdGhpcy5fZHJhd25FZGdlKXRocm93IEVycm9yKCJObyBlZGdlIGhhcyBiZWVuIGRyYXduIik7dmFyIHVuPXRoaXMuX2RyYXduRWRnZS5nO2lmKHVuLmVtcHR5KCkpcmV0dXJu''@;'; + put 'put ''IHRoaXM7dW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigidGl0bGUiKS50ZXh0KG1uKTt2YXIgVm49dGhpcy5fc2VsZWN0aW9uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInN2ZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKSxlbj1Wbi5kYXR1bSgpLElu''@;'; + put 'put ''PXRoaXMuX2V4dHJhY3REYXRhKHVuLGVuLmNoaWxkcmVuLmxlbmd0aCxWbi5kYXR1bSgpKTtyZXR1cm4gZW4uY2hpbGRyZW4ucHVzaChJbiksb2UodW4sSW4pLHRoaXMuX2RyYXduRWRnZT1udWxsLHRoaXN9LHJlbW92ZURyYXduRWRnZTp4cn0sInJlbW92ZURyYXduRWRnZSIseHIpLGRuKHRu''@;'; + put 'put ''LCJkcmF3bkVkZ2VTZWxlY3Rpb24iLHByKSxkbih0biwiZHJhd25FZGdlU2VsZWN0aW9uIixwciksZG4odG4sImRyYXdOb2RlIixmdW5jdGlvbiBBbihtbix1bixjbil7dmFyIF9uPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp7fSxHdD1h''@;'; + put 'put ''cmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XT9hcmd1bWVudHNbNF06e307aWYoKF9uPU9iamVjdC5hc3NpZ24oe30sX24pKS5zdHlsZSYmX24uc3R5bGUuaW5jbHVkZXMoImludmlzIikpdmFyIGtuPUIuc2VsZWN0KG51bGwpO2Vsc2V7dmFyIEluPXRoaXMuX3NlbGVj''@;'; + put 'put ''dGlvbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJzdmciKS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIiksb3I9Tih3bihjbixfbikpO2tuPUluLmFwcGVuZCgiZyIpLmRhdGEoW29yXSksZGUuY2FsbChrbi5ub2RlKCksb3IpLFd0KGtuLG1uLHVuLGNuLF9uLEd0KX1y''@;'; + put 'put ''ZXR1cm4gdGhpcy5fZHJhd25Ob2RlPXtnOmtuLG5vZGVJZDpjbix4Om1uLHk6dW4sYXR0cmlidXRlczpfbn0sdGhpc30pLGRuKHRuLCJ1cGRhdGVEcmF3bk5vZGUiLGZ1bmN0aW9uIHFuKG1uLHVuLGNuKXt2YXIgX249YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/''@;'; + put 'put ''YXJndW1lbnRzWzNdOnt9LEd0PWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTp7fTtpZighdGhpcy5fZHJhd25Ob2RlKXRocm93IEVycm9yKCJObyBub2RlIGhhcyBiZWVuIGRyYXduIik7dmFyIGtuPXRoaXMuX2RyYXduTm9kZS5nO3JldHVy''@;'; + put 'put ''biBudWxsPT1jbiYmKGNuPXRoaXMuX2RyYXduTm9kZS5ub2RlSWQpLF9uPU9iamVjdC5hc3NpZ24odGhpcy5fZHJhd25Ob2RlLmF0dHJpYnV0ZXMsX24pLHRoaXMuX2RyYXduTm9kZS5ub2RlSWQ9Y24sdGhpcy5fZHJhd25Ob2RlLng9bW4sdGhpcy5fZHJhd25Ob2RlLnk9dW4sIWtuLmVtcHR5''@;'; + put 'put ''KCl8fF9uLnN0eWxlJiZfbi5zdHlsZS5pbmNsdWRlcygiaW52aXMiKXx8KGtuPXRoaXMuX3NlbGVjdGlvbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJzdmciKS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIikuYXBwZW5kKCJnIiksdGhpcy5fZHJhd25Ob2RlLmc9a24p''@;'; + put 'put ''LGtuLmVtcHR5KCl8fFd0KGtuLG1uLHVuLGNuLF9uLEd0KSx0aGlzfSksZG4odG4sIm1vdmVEcmF3bk5vZGUiLGZ1bmN0aW9uIEtuKG1uLHVuKXtpZighdGhpcy5fZHJhd25Ob2RlKXRocm93IEVycm9yKCJObyBub2RlIGhhcyBiZWVuIGRyYXduIik7dmFyIF9uPXRoaXMuX2RyYXduTm9kZS5n''@;'; + put 'put ''LEd0PXRoaXMuX2RyYXduTm9kZS5hdHRyaWJ1dGVzO3JldHVybiB0aGlzLl9kcmF3bk5vZGUueD1tbix0aGlzLl9kcmF3bk5vZGUueT11bixfbi5lbXB0eSgpfHxwbihfbixtbix1bixHdCksdGhpc30pLGRuKHRuLCJpbnNlcnREcmF3bk5vZGUiLGZ1bmN0aW9uIHNuKG1uKXtpZighdGhpcy5f''@;'; + put 'put ''ZHJhd25Ob2RlKXRocm93IEVycm9yKCJObyBub2RlIGhhcyBiZWVuIGRyYXduIik7bnVsbD09bW4mJihtbj10aGlzLl9kcmF3bk5vZGUubm9kZUlkKTt2YXIgdW49dGhpcy5fZHJhd25Ob2RlLmc7aWYodW4uZW1wdHkoKSlyZXR1cm4gdGhpczt2YXIgY249dGhpcy5fZHJhd25Ob2RlLmF0dHJp''@;'; + put 'put ''YnV0ZXM7aWYodW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigidGl0bGUiKS50ZXh0KG1uKSxjbi5VUkx8fGNuLnRvb2x0aXApdmFyIGtuPXVuLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJhIiksZW49KGtuLnNl''@;'; + put 'put ''bGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImVsbGlwc2UscG9seWdvbixwYXRoLHBvbHlsaW5lIiksa24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigidGV4dCIpKTtlbHNlIHVuLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImVsbGlwc2UscG9seWdvbixwYXRoLHBvbHls''@;'; + put 'put ''aW5lIiksZW49dW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigidGV4dCIpO2VuLnRleHQoY24ubGFiZWx8fG1uKTt2YXIgb3I9dGhpcy5fc2VsZWN0aW9uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInN2ZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKSxn''@;'; + put 'put ''cj1vci5kYXR1bSgpLEtyPXRoaXMuX2V4dHJhY3REYXRhKHVuLGdyLmNoaWxkcmVuLmxlbmd0aCxvci5kYXR1bSgpKTtyZXR1cm4gZ3IuY2hpbGRyZW4ucHVzaChLciksb2UodW4sS3IpLHRoaXMuX2RyYXduTm9kZT1udWxsLHRoaXN9KSxkbih0biwicmVtb3ZlRHJhd25Ob2RlIixOdCksZG4o''@;'; + put 'put ''dG4sInJlbW92ZURyYXduTm9kZSIsTnQpLGRuKHRuLCJkcmF3bk5vZGVTZWxlY3Rpb24iLFVuKSxkbih0biwiZHJhd25Ob2RlU2VsZWN0aW9uIixVbiksdG4pO0Iuc2VsZWN0aW9uLnByb3RvdHlwZS5ncmFwaHZpej1mdW5jdGlvbihtbil7dmFyIHVuPXRoaXMubm9kZSgpLl9fZ3JhcGh2aXpf''@;'; + put 'put ''XztyZXR1cm4gdW4/KHVuLm9wdGlvbnMobW4pLHVuLl9kaXNwYXRjaC5jYWxsKCJpbml0RW5kIix0aGlzKSk6dW49bmV3IHpuKHRoaXMsbW4pLHVufSxCLnNlbGVjdGlvbi5wcm90b3R5cGUuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbj1mdW5jdGlvbihtbil7cmV0dXJuIEIuc2VsZWN0''@;'; + put 'put ''KHRoaXMuc2l6ZSgpPjA/dGhpcy5ub2RlKCkucXVlcnlTZWxlY3Rvcihtbik6bnVsbCl9LG1lLmdyYXBodml6PVRyLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KEplLEwoNjk0MTUpLEwoODUxMDYpLEwoNDA4MjIpLEwoNTY4NDIpLEwoMjE3NTkp''@;'; + put 'put ''LEwoNzU4MjcpLEwoMjkwMzUpLEwoNjU5OTApLEwoMzgxODQpKX0sMTY3MTI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKEUsTWUsVSxRLFope3ZhciBpZT1FKkUsbGU9aWUqRTtyZXR1cm4oKDEtMypFKzMqaWUtbGUpKk1lKyg0LTYqaWUrMypsZSkqVSsoMSszKkUrMypp''@;'; + put 'put ''ZS0zKmxlKSpRK2xlKlopLzZ9ZnVuY3Rpb24gQihFKXt2YXIgTWU9RS5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24oVSl7dmFyIFE9VTw9MD9VPTA6VT49MT8oVT0xLE1lLTEpOk1hdGguZmxvb3IoVSpNZSksWj1FW1FdLGllPUVbUSsxXTtyZXR1cm4gbWUoKFUtUS9NZSkqTWUsUT4wP0VbUS0x''@;'; + put 'put ''XToyKlotaWUsWixpZSxRPE1lLTE/RVtRKzJdOjIqaWUtWil9fUwuZChKZSx7WjooKT0+Qix0OigpPT5tZX0pfSw2ODUyMzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtaOigpPT5CfSk7dmFyIG1lPUwoMTY3MTIpO2Z1bmN0aW9uIEIoRSl7dmFyIE1lPUUubGVuZ3RoO3JldHVy''@;'; + put 'put ''biBmdW5jdGlvbihVKXt2YXIgUT1NYXRoLmZsb29yKCgoVSU9MSk8MD8rK1U6VSkqTWUpO3JldHVybigwLG1lLnQpKChVLVEvTWUpKk1lLEVbKFErTWUtMSklTWVdLEVbUSVNZV0sRVsoUSsxKSVNZV0sRVsoUSsyKSVNZV0pfX19LDM1MTQ3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQo''@;'; + put 'put ''SmUse1pQOigpPT5RLHd4OigpPT5NZSx5aTooKT0+VX0pO3ZhciBtZT1MKDQ3OTI3KTtmdW5jdGlvbiBCKFosaWUpe3JldHVybiBmdW5jdGlvbihsZSl7cmV0dXJuIForbGUqaWV9fWZ1bmN0aW9uIE1lKFosaWUpe3ZhciBsZT1pZS1aO3JldHVybiBsZT9CKFosbGU+MTgwfHxsZTwtMTgwP2xl''@;'; + put 'put ''LTM2MCpNYXRoLnJvdW5kKGxlLzM2MCk6bGUpOigwLG1lLlopKGlzTmFOKFopP2llOlopfWZ1bmN0aW9uIFUoWil7cmV0dXJuIDE9PShaPStaKT9ROmZ1bmN0aW9uKGllLGxlKXtyZXR1cm4gbGUtaWU/ZnVuY3Rpb24gRShaLGllLGxlKXtyZXR1cm4gWj1NYXRoLnBvdyhaLGxlKSxpZT1NYXRo''@;'; + put 'put ''LnBvdyhpZSxsZSktWixsZT0xL2xlLGZ1bmN0aW9uKFkpe3JldHVybiBNYXRoLnBvdyhaK1kqaWUsbGUpfX0oaWUsbGUsWik6KDAsbWUuWikoaXNOYU4oaWUpP2xlOmllKX19ZnVuY3Rpb24gUShaLGllKXt2YXIgbGU9aWUtWjtyZXR1cm4gbGU/QihaLGxlKTooMCxtZS5aKShpc05hTihaKT9p''@;'; + put 'put ''ZTpaKX19LDQ3OTI3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtZShCKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQn19TC5kKEplLHtaOigpPT5tZX0pfSwyMTc1OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5yKEplKSxMLmQoSmUse2ludGVycG9sYXRlOigpPT5O''@;'; + put 'put ''LGludGVycG9sYXRlQXJyYXk6KCk9PlUsaW50ZXJwb2xhdGVCYXNpczooKT0+ZWUuWixpbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkOigpPT5xLlosaW50ZXJwb2xhdGVDdWJlaGVsaXg6KCk9PlF0LGludGVycG9sYXRlQ3ViZWhlbGl4TG9uZzooKT0+Z24saW50ZXJwb2xhdGVEYXRlOigpPT5aLGlu''@;'; + put 'put ''dGVycG9sYXRlRGlzY3JldGU6KCk9PkosaW50ZXJwb2xhdGVIY2w6KCk9PkJ0LGludGVycG9sYXRlSGNsTG9uZzooKT0+b24saW50ZXJwb2xhdGVIc2w6KCk9PmtlLGludGVycG9sYXRlSHNsTG9uZzooKT0+U2UsaW50ZXJwb2xhdGVIdWU6KCk9Pm9lLGludGVycG9sYXRlTGFiOigpPT5tdCxp''@;'; + put 'put ''bnRlcnBvbGF0ZU51bWJlcjooKT0+aWUuWixpbnRlcnBvbGF0ZU51bWJlckFycmF5OigpPT5FLGludGVycG9sYXRlT2JqZWN0OigpPT5sZSxpbnRlcnBvbGF0ZVJnYjooKT0+Qi5aUCxpbnRlcnBvbGF0ZVJnYkJhc2lzOigpPT5CLmhELGludGVycG9sYXRlUmdiQmFzaXNDbG9zZWQ6KCk9PkIu''@;'; + put 'put ''WUQsaW50ZXJwb2xhdGVSb3VuZDooKT0+Y2UsaW50ZXJwb2xhdGVTdHJpbmc6KCk9PlkuWixpbnRlcnBvbGF0ZVRyYW5zZm9ybUNzczooKT0+ZGUuWSxpbnRlcnBvbGF0ZVRyYW5zZm9ybVN2ZzooKT0+ZGUudyxpbnRlcnBvbGF0ZVpvb206KCk9PnZlLloscGllY2V3aXNlOigpPT5kbixxdWFu''@;'; + put 'put ''dGl6ZTooKT0+eW59KTt2YXIgbWU9TCg1Mjc4NiksQj1MKDg2ODExKTtmdW5jdGlvbiBFKGxuLE5uKXtObnx8KE5uPVtdKTt2YXIgc3IsYm49bG4/TWF0aC5taW4oTm4ubGVuZ3RoLGxuLmxlbmd0aCk6MCxlcj1Obi5zbGljZSgpO3JldHVybiBmdW5jdGlvbihYbil7Zm9yKHNyPTA7c3I8Ym47''@;'; + put 'put ''Kytzcillcltzcl09bG5bc3JdKigxLVhuKStObltzcl0qWG47cmV0dXJuIGVyfX1mdW5jdGlvbiBNZShsbil7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyhsbikmJiEobG4gaW5zdGFuY2VvZiBEYXRhVmlldyl9ZnVuY3Rpb24gVShsbixObil7cmV0dXJuKE1lKE5uKT9FOlEpKGxuLE5uKX1m''@;'; + put 'put ''dW5jdGlvbiBRKGxuLE5uKXt2YXIgRnIsYm49Tm4/Tm4ubGVuZ3RoOjAsZXI9bG4/TWF0aC5taW4oYm4sbG4ubGVuZ3RoKTowLHNyPW5ldyBBcnJheShlciksWG49bmV3IEFycmF5KGJuKTtmb3IoRnI9MDtGcjxlcjsrK0ZyKXNyW0ZyXT1OKGxuW0ZyXSxObltGcl0pO2Zvcig7RnI8Ym47KytG''@;'; + put 'put ''cilYbltGcl09Tm5bRnJdO3JldHVybiBmdW5jdGlvbih4cil7Zm9yKEZyPTA7RnI8ZXI7KytGcilYbltGcl09c3JbRnJdKHhyKTtyZXR1cm4gWG59fWZ1bmN0aW9uIFoobG4sTm4pe3ZhciBibj1uZXcgRGF0ZTtyZXR1cm4gbG49K2xuLE5uPStObixmdW5jdGlvbihlcil7cmV0dXJuIGJuLnNl''@;'; + put 'put ''dFRpbWUobG4qKDEtZXIpK05uKmVyKSxibn19dmFyIGllPUwoNjczOCk7ZnVuY3Rpb24gbGUobG4sTm4pe3ZhciBzcixibj17fSxlcj17fTtmb3Ioc3IgaW4obnVsbD09PWxufHwib2JqZWN0IiE9dHlwZW9mIGxuKSYmKGxuPXt9KSwobnVsbD09PU5ufHwib2JqZWN0IiE9dHlwZW9mIE5uKSYm''@;'; + put 'put ''KE5uPXt9KSxObilzciBpbiBsbj9ibltzcl09Tihsbltzcl0sTm5bc3JdKTplcltzcl09Tm5bc3JdO3JldHVybiBmdW5jdGlvbihYbil7Zm9yKHNyIGluIGJuKWVyW3NyXT1ibltzcl0oWG4pO3JldHVybiBlcn19dmFyIFk9TCgyMzA5NiksVz1MKDQ3OTI3KTtmdW5jdGlvbiBOKGxuLE5uKXt2''@;'; + put 'put ''YXIgZXIsYm49dHlwZW9mIE5uO3JldHVybiBudWxsPT1Obnx8ImJvb2xlYW4iPT09Ym4/KDAsVy5aKShObik6KCJudW1iZXIiPT09Ym4/aWUuWjoic3RyaW5nIj09PWJuPyhlcj0oMCxtZS5aUCkoTm4pKT8oTm49ZXIsQi5aUCk6WS5aOk5uIGluc3RhbmNlb2YgbWUuWlA/Qi5aUDpObiBpbnN0''@;'; + put 'put ''YW5jZW9mIERhdGU/WjpNZShObik/RTpBcnJheS5pc0FycmF5KE5uKT9ROiJmdW5jdGlvbiIhPXR5cGVvZiBObi52YWx1ZU9mJiYiZnVuY3Rpb24iIT10eXBlb2YgTm4udG9TdHJpbmd8fGlzTmFOKE5uKT9sZTppZS5aKShsbixObil9dmFyIGVlPUwoMTY3MTIpLHE9TCg2ODUyMyk7ZnVuY3Rp''@;'; + put 'put ''b24gSihsbil7dmFyIE5uPWxuLmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24oYm4pe3JldHVybiBsbltNYXRoLm1heCgwLE1hdGgubWluKE5uLTEsTWF0aC5mbG9vcihibipObikpKV19fXZhciBzZT1MKDM1MTQ3KTtmdW5jdGlvbiBvZShsbixObil7dmFyIGJuPSgwLHNlLnd4KSgrbG4sK05uKTty''@;'; + put 'put ''ZXR1cm4gZnVuY3Rpb24oZXIpe3ZhciBzcj1ibihlcik7cmV0dXJuIHNyLTM2MCpNYXRoLmZsb29yKHNyLzM2MCl9fWZ1bmN0aW9uIGNlKGxuLE5uKXtyZXR1cm4gbG49K2xuLE5uPStObixmdW5jdGlvbihibil7cmV0dXJuIE1hdGgucm91bmQobG4qKDEtYm4pK05uKmJuKX19dmFyIGRlPUwo''@;'; + put 'put ''NzUzNDkpLHZlPUwoNzYyNTcpO2Z1bmN0aW9uIEFlKGxuKXtyZXR1cm4gZnVuY3Rpb24oTm4sYm4pe3ZhciBlcj1sbigoTm49KDAsbWUuWW0pKE5uKSkuaCwoYm49KDAsbWUuWW0pKGJuKSkuaCksc3I9KDAsc2UuWlApKE5uLnMsYm4ucyksWG49KDAsc2UuWlApKE5uLmwsYm4ubCksRnI9KDAs''@;'; + put 'put ''c2UuWlApKE5uLm9wYWNpdHksYm4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHhyKXtyZXR1cm4gTm4uaD1lcih4ciksTm4ucz1zcih4ciksTm4ubD1Ybih4ciksTm4ub3BhY2l0eT1Gcih4ciksTm4rIiJ9fX1jb25zdCBrZT1BZShzZS53eCk7dmFyIFNlPUFlKHNlLlpQKSxJZT1MKDY4ODg0''@;'; + put 'put ''KSxUZT1NYXRoLlBJLzE4MCxFZT0xODAvTWF0aC5QSSxPPS45NjQyMix0ZT00LzI5LHg9Ni8yOSxQPTMqeCp4O2Z1bmN0aW9uIFQobG4pe2lmKGxuIGluc3RhbmNlb2YgeWUpcmV0dXJuIG5ldyB5ZShsbi5sLGxuLmEsbG4uYixsbi5vcGFjaXR5KTtpZihsbiBpbnN0YW5jZW9mIHZ0KXJldHVy''@;'; + put 'put ''biBBdChsbik7bG4gaW5zdGFuY2VvZiBtZS5Tc3x8KGxuPSgwLG1lLlNVKShsbikpO3ZhciBYbixGcixObj1RZShsbi5yKSxibj1RZShsbi5nKSxlcj1RZShsbi5iKSxzcj1DZSgoLjIyMjUwNDUqTm4rLjcxNjg3ODYqYm4rLjA2MDYxNjkqZXIpLzEpO3JldHVybiBObj09PWJuJiZibj09PWVy''@;'; + put 'put ''P1huPUZyPXNyOihYbj1DZSgoLjQzNjA3NDcqTm4rLjM4NTA2NDkqYm4rLjE0MzA4MDQqZXIpL08pLEZyPUNlKCguMDEzOTMyMipObisuMDk3MTA0NSpibisuNzE0MTczMyplcikvLjgyNTIxKSksbmV3IHllKDExNipzci0xNiw1MDAqKFhuLXNyKSwyMDAqKHNyLUZyKSxsbi5vcGFjaXR5KX1m''@;'; + put 'put ''dW5jdGlvbiBGKGxuLE5uLGJuLGVyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/VChsbik6bmV3IHllKGxuLE5uLGJuLG51bGw9PWVyPzE6ZXIpfWZ1bmN0aW9uIHllKGxuLE5uLGJuLGVyKXt0aGlzLmw9K2xuLHRoaXMuYT0rTm4sdGhpcy5iPStibix0aGlzLm9wYWNpdHk9K2VyfWZ1''@;'; + put 'put ''bmN0aW9uIENlKGxuKXtyZXR1cm4gbG4+LjAwODg1NjQ1MTY3OTAzNTYzMT9NYXRoLnBvdyhsbiwxLzMpOmxuL1ArdGV9ZnVuY3Rpb24gRGUobG4pe3JldHVybiBsbj54P2xuKmxuKmxuOlAqKGxuLXRlKX1mdW5jdGlvbiBQZShsbil7cmV0dXJuIDI1NSoobG48PS4wMDMxMzA4PzEyLjkyKmxu''@;'; + put 'put ''OjEuMDU1Kk1hdGgucG93KGxuLDEvMi40KS0uMDU1KX1mdW5jdGlvbiBRZShsbil7cmV0dXJuKGxuLz0yNTUpPD0uMDQwNDU/bG4vMTIuOTI6TWF0aC5wb3coKGxuKy4wNTUpLzEuMDU1LDIuNCl9ZnVuY3Rpb24gJGUobG4pe2lmKGxuIGluc3RhbmNlb2YgdnQpcmV0dXJuIG5ldyB2dChsbi5o''@;'; + put 'put ''LGxuLmMsbG4ubCxsbi5vcGFjaXR5KTtpZihsbiBpbnN0YW5jZW9mIHllfHwobG49VChsbikpLDA9PT1sbi5hJiYwPT09bG4uYilyZXR1cm4gbmV3IHZ0KE5hTiwwPGxuLmwmJmxuLmw8MTAwPzA6TmFOLGxuLmwsbG4ub3BhY2l0eSk7dmFyIE5uPU1hdGguYXRhbjIobG4uYixsbi5hKSpFZTty''@;'; + put 'put ''ZXR1cm4gbmV3IHZ0KE5uPDA/Tm4rMzYwOk5uLE1hdGguc3FydChsbi5hKmxuLmErbG4uYipsbi5iKSxsbi5sLGxuLm9wYWNpdHkpfWZ1bmN0aW9uIHd0KGxuLE5uLGJuLGVyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/JGUobG4pOm5ldyB2dChsbixObixibixudWxsPT1lcj8xOmVy''@;'; + put 'put ''KX1mdW5jdGlvbiB2dChsbixObixibixlcil7dGhpcy5oPStsbix0aGlzLmM9K05uLHRoaXMubD0rYm4sdGhpcy5vcGFjaXR5PStlcn1mdW5jdGlvbiBBdChsbil7aWYoaXNOYU4obG4uaCkpcmV0dXJuIG5ldyB5ZShsbi5sLDAsMCxsbi5vcGFjaXR5KTt2YXIgTm49bG4uaCpUZTtyZXR1cm4g''@;'; + put 'put ''bmV3IHllKGxuLmwsTWF0aC5jb3MoTm4pKmxuLmMsTWF0aC5zaW4oTm4pKmxuLmMsbG4ub3BhY2l0eSl9ZnVuY3Rpb24gbXQobG4sTm4pe3ZhciBibj0oMCxzZS5aUCkoKGxuPUYobG4pKS5sLChObj1GKE5uKSkubCksZXI9KDAsc2UuWlApKGxuLmEsTm4uYSksc3I9KDAsc2UuWlApKGxuLmIs''@;'; + put 'put ''Tm4uYiksWG49KDAsc2UuWlApKGxuLm9wYWNpdHksTm4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKEZyKXtyZXR1cm4gbG4ubD1ibihGciksbG4uYT1lcihGciksbG4uYj1zcihGciksbG4ub3BhY2l0eT1YbihGciksbG4rIiJ9fWZ1bmN0aW9uIGh0KGxuKXtyZXR1cm4gZnVuY3Rpb24oTm4s''@;'; + put 'put ''Ym4pe3ZhciBlcj1sbigoTm49d3QoTm4pKS5oLChibj13dChibikpLmgpLHNyPSgwLHNlLlpQKShObi5jLGJuLmMpLFhuPSgwLHNlLlpQKShObi5sLGJuLmwpLEZyPSgwLHNlLlpQKShObi5vcGFjaXR5LGJuLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih4cil7cmV0dXJuIE5uLmg9ZXIoeHIp''@;'; + put 'put ''LE5uLmM9c3IoeHIpLE5uLmw9WG4oeHIpLE5uLm9wYWNpdHk9RnIoeHIpLE5uKyIifX19KDAsSWUuWikoeWUsRiwoMCxJZS5sKShtZS5JbCx7YnJpZ2h0ZXI6ZnVuY3Rpb24obG4pe3JldHVybiBuZXcgeWUodGhpcy5sKzE4KihudWxsPT1sbj8xOmxuKSx0aGlzLmEsdGhpcy5iLHRoaXMub3Bh''@;'; + put 'put ''Y2l0eSl9LGRhcmtlcjpmdW5jdGlvbihsbil7cmV0dXJuIG5ldyB5ZSh0aGlzLmwtMTgqKG51bGw9PWxuPzE6bG4pLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIGxuPSh0aGlzLmwrMTYpLzExNixObj1pc05hTih0aGlzLmEpP2xuOmxuK3RoaXMuYS81''@;'; + put 'put ''MDAsYm49aXNOYU4odGhpcy5iKT9sbjpsbi10aGlzLmIvMjAwO3JldHVybiBObj1PKkRlKE5uKSxsbj0xKkRlKGxuKSxibj0uODI1MjEqRGUoYm4pLG5ldyBtZS5TcyhQZSgzLjEzMzg1NjEqTm4tMS42MTY4NjY3KmxuLS40OTA2MTQ2KmJuKSxQZSgtLjk3ODc2ODQqTm4rMS45MTYxNDE1Kmxu''@;'; + put 'put ''Ky4wMzM0NTQqYm4pLFBlKC4wNzE5NDUzKk5uLS4yMjg5OTE0KmxuKzEuNDA1MjQyNypibiksdGhpcy5vcGFjaXR5KX19KSksKDAsSWUuWikodnQsd3QsKDAsSWUubCkobWUuSWwse2JyaWdodGVyOmZ1bmN0aW9uKGxuKXtyZXR1cm4gbmV3IHZ0KHRoaXMuaCx0aGlzLmMsdGhpcy5sKzE4Kihu''@;'; + put 'put ''dWxsPT1sbj8xOmxuKSx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24obG4pe3JldHVybiBuZXcgdnQodGhpcy5oLHRoaXMuYyx0aGlzLmwtMTgqKG51bGw9PWxuPzE6bG4pLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiBBdCh0aGlzKS5yZ2IoKX19KSk7Y29uc3Qg''@;'; + put 'put ''QnQ9aHQoc2Uud3gpO3ZhciBvbj1odChzZS5aUCksdHQ9MS43ODI3NyxldD0tLjI5MjI3LGF0PS0uOTA2NDksTHQ9MS45NzI5NCxDdD1MdCphdCxmdD1MdCp0dCxIdD10dCpldC0gLS4xNDg2MSphdDtmdW5jdGlvbiBHZShsbil7aWYobG4gaW5zdGFuY2VvZiB5dClyZXR1cm4gbmV3IHl0KGxu''@;'; + put 'put ''LmgsbG4ucyxsbi5sLGxuLm9wYWNpdHkpO2xuIGluc3RhbmNlb2YgbWUuU3N8fChsbj0oMCxtZS5TVSkobG4pKTt2YXIgYm49bG4uZy8yNTUsZXI9bG4uYi8yNTUsc3I9KEh0KmVyK0N0Kihsbi5yLzI1NSktZnQqYm4pLyhIdCtDdC1mdCksWG49ZXItc3IsRnI9KEx0Kihibi1zciktZXQqWG4p''@;'; + put 'put ''L2F0LHhyPU1hdGguc3FydChGcipGcitYbipYbikvKEx0KnNyKigxLXNyKSkscXQ9eHI/TWF0aC5hdGFuMihGcixYbikqRWUtMTIwOk5hTjtyZXR1cm4gbmV3IHl0KHF0PDA/cXQrMzYwOnF0LHhyLHNyLGxuLm9wYWNpdHkpfWZ1bmN0aW9uIFVlKGxuLE5uLGJuLGVyKXtyZXR1cm4gMT09PWFy''@;'; + put 'put ''Z3VtZW50cy5sZW5ndGg/R2UobG4pOm5ldyB5dChsbixObixibixudWxsPT1lcj8xOmVyKX1mdW5jdGlvbiB5dChsbixObixibixlcil7dGhpcy5oPStsbix0aGlzLnM9K05uLHRoaXMubD0rYm4sdGhpcy5vcGFjaXR5PStlcn1mdW5jdGlvbiBqdChsbil7cmV0dXJuIGZ1bmN0aW9uIE5uKGJu''@;'; + put 'put ''KXtmdW5jdGlvbiBlcihzcixYbil7dmFyIEZyPWxuKChzcj1VZShzcikpLmgsKFhuPVVlKFhuKSkuaCkseHI9KDAsc2UuWlApKHNyLnMsWG4ucykscXQ9KDAsc2UuWlApKHNyLmwsWG4ubCkscHI9KDAsc2UuWlApKHNyLm9wYWNpdHksWG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKG5yKXty''@;'; + put 'put ''ZXR1cm4gc3IuaD1Gcihuciksc3Iucz14cihuciksc3IubD1xdChNYXRoLnBvdyhucixibikpLHNyLm9wYWNpdHk9cHIobnIpLHNyKyIifX1yZXR1cm4gYm49K2JuLGVyLmdhbW1hPU5uLGVyfSgxKX0oMCxJZS5aKSh5dCxVZSwoMCxJZS5sKShtZS5JbCx7YnJpZ2h0ZXI6ZnVuY3Rpb24obG4p''@;'; + put 'put ''e3JldHVybiBsbj1udWxsPT1sbj9tZS5KNTpNYXRoLnBvdyhtZS5KNSxsbiksbmV3IHl0KHRoaXMuaCx0aGlzLnMsdGhpcy5sKmxuLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihsbil7cmV0dXJuIGxuPW51bGw9PWxuP21lLnhWOk1hdGgucG93KG1lLnhWLGxuKSxuZXcgeXQodGhp''@;'; + put 'put ''cy5oLHRoaXMucyx0aGlzLmwqbG4sdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIGxuPWlzTmFOKHRoaXMuaCk/MDoodGhpcy5oKzEyMCkqVGUsTm49K3RoaXMubCxibj1pc05hTih0aGlzLnMpPzA6dGhpcy5zKk5uKigxLU5uKSxlcj1NYXRoLmNvcyhsbiksc3I9TWF0aC5zaW4o''@;'; + put 'put ''bG4pO3JldHVybiBuZXcgbWUuU3MoMjU1KihObitibiooLS4xNDg2MSplcit0dCpzcikpLDI1NSooTm4rYm4qKGV0KmVyK2F0KnNyKSksMjU1KihObitibiooTHQqZXIpKSx0aGlzLm9wYWNpdHkpfX0pKTtjb25zdCBRdD1qdChzZS53eCk7dmFyIGduPWp0KHNlLlpQKTtmdW5jdGlvbiBkbihs''@;'; + put 'put ''bixObil7Zm9yKHZhciBibj0wLGVyPU5uLmxlbmd0aC0xLHNyPU5uWzBdLFhuPW5ldyBBcnJheShlcjwwPzA6ZXIpO2JuPGVyOylYbltibl09bG4oc3Isc3I9Tm5bKytibl0pO3JldHVybiBmdW5jdGlvbihGcil7dmFyIHhyPU1hdGgubWF4KDAsTWF0aC5taW4oZXItMSxNYXRoLmZsb29yKEZy''@;'; + put 'put ''Kj1lcikpKTtyZXR1cm4gWG5beHJdKEZyLXhyKX19ZnVuY3Rpb24geW4obG4sTm4pe2Zvcih2YXIgYm49bmV3IEFycmF5KE5uKSxlcj0wO2VyPE5uOysrZXIpYm5bZXJdPWxuKGVyLyhObi0xKSk7cmV0dXJuIGJufX0sNjczODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbWUo''@;'; + put 'put ''QixFKXtyZXR1cm4gQj0rQixFPStFLGZ1bmN0aW9uKE1lKXtyZXR1cm4gQiooMS1NZSkrRSpNZX19TC5kKEplLHtaOigpPT5tZX0pfSw4NjgxMTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtZRDooKT0+aWUsWlA6KCk9PlUsaEQ6KCk9Plp9KTt2YXIgbWU9TCg1Mjc4NiksQj1M''@;'; + put 'put ''KDE2NzEyKSxFPUwoNjg1MjMpLE1lPUwoMzUxNDcpO2NvbnN0IFU9ZnVuY3Rpb24gbGUoWSl7dmFyIFc9KDAsTWUueWkpKFkpO2Z1bmN0aW9uIE4oZWUscSl7dmFyIEo9VygoZWU9KDAsbWUuQjgpKGVlKSkuciwocT0oMCxtZS5COCkocSkpLnIpLHNlPVcoZWUuZyxxLmcpLG9lPVcoZWUuYixx''@;'; + put 'put ''LmIpLGNlPSgwLE1lLlpQKShlZS5vcGFjaXR5LHEub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGRlKXtyZXR1cm4gZWUucj1KKGRlKSxlZS5nPXNlKGRlKSxlZS5iPW9lKGRlKSxlZS5vcGFjaXR5PWNlKGRlKSxlZSsiIn19cmV0dXJuIE4uZ2FtbWE9bGUsTn0oMSk7ZnVuY3Rpb24gUShsZSl7''@;'; + put 'put ''cmV0dXJuIGZ1bmN0aW9uKFkpe3ZhciBKLHNlLFc9WS5sZW5ndGgsTj1uZXcgQXJyYXkoVyksZWU9bmV3IEFycmF5KFcpLHE9bmV3IEFycmF5KFcpO2ZvcihKPTA7SjxXOysrSilzZT0oMCxtZS5COCkoWVtKXSksTltKXT1zZS5yfHwwLGVlW0pdPXNlLmd8fDAscVtKXT1zZS5ifHwwO3JldHVy''@;'; + put 'put ''biBOPWxlKE4pLGVlPWxlKGVlKSxxPWxlKHEpLHNlLm9wYWNpdHk9MSxmdW5jdGlvbihvZSl7cmV0dXJuIHNlLnI9TihvZSksc2UuZz1lZShvZSksc2UuYj1xKG9lKSxzZSsiIn19fXZhciBaPVEoQi5aKSxpZT1RKEUuWil9LDIzMDk2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUs''@;'; + put 'put ''e1o6KCk9PlF9KTt2YXIgbWU9TCg2NzM4KSxCPS9bLStdPyg/OlxkK1wuP1xkKnxcLj9cZCspKD86W2VFXVstK10/XGQrKT8vZyxFPW5ldyBSZWdFeHAoQi5zb3VyY2UsImciKTtmdW5jdGlvbiBRKFosaWUpe3ZhciBZLFcsTixsZT1CLmxhc3RJbmRleD1FLmxhc3RJbmRleD0wLGVlPS0xLHE9''@;'; + put 'put ''W10sSj1bXTtmb3IoWis9IiIsaWUrPSIiOyhZPUIuZXhlYyhaKSkmJihXPUUuZXhlYyhpZSkpOykoTj1XLmluZGV4KT5sZSYmKE49aWUuc2xpY2UobGUsTikscVtlZV0/cVtlZV0rPU46cVsrK2VlXT1OKSwoWT1ZWzBdKT09PShXPVdbMF0pP3FbZWVdP3FbZWVdKz1XOnFbKytlZV09VzoocVsr''@;'; + put 'put ''K2VlXT1udWxsLEoucHVzaCh7aTplZSx4OigwLG1lLlopKFksVyl9KSksbGU9RS5sYXN0SW5kZXg7cmV0dXJuIGxlPGllLmxlbmd0aCYmKE49aWUuc2xpY2UobGUpLHFbZWVdP3FbZWVdKz1OOnFbKytlZV09TikscS5sZW5ndGg8Mj9KWzBdP2Z1bmN0aW9uIFUoWil7cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''KGllKXtyZXR1cm4gWihpZSkrIiJ9fShKWzBdLngpOmZ1bmN0aW9uIE1lKFope3JldHVybiBmdW5jdGlvbigpe3JldHVybiBafX0oaWUpOihpZT1KLmxlbmd0aCxmdW5jdGlvbihzZSl7Zm9yKHZhciBjZSxvZT0wO29lPGllOysrb2UpcVsoY2U9SltvZV0pLmldPWNlLngoc2UpO3JldHVybiBx''@;'; + put 'put ''LmpvaW4oIiIpfSl9fSw3NTM0OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtZOigpPT5OLHc6KCk9PmVlfSk7dmFyIFUsUSxaLGllLG1lPUwoNjczOCksQj0xODAvTWF0aC5QSSxFPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEs''@;'; + put 'put ''c2NhbGVZOjF9O2Z1bmN0aW9uIE1lKHEsSixzZSxvZSxjZSxkZSl7dmFyIHZlLEFlLGtlO3JldHVybih2ZT1NYXRoLnNxcnQocSpxK0oqSikpJiYocS89dmUsSi89dmUpLChrZT1xKnNlK0oqb2UpJiYoc2UtPXEqa2Usb2UtPUoqa2UpLChBZT1NYXRoLnNxcnQoc2Uqc2Urb2Uqb2UpKSYmKHNl''@;'; + put 'put ''Lz1BZSxvZS89QWUsa2UvPUFlKSxxKm9lPEoqc2UmJihxPS1xLEo9LUosa2U9LWtlLHZlPS12ZSkse3RyYW5zbGF0ZVg6Y2UsdHJhbnNsYXRlWTpkZSxyb3RhdGU6TWF0aC5hdGFuMihKLHEpKkIsc2tld1g6TWF0aC5hdGFuKGtlKSpCLHNjYWxlWDp2ZSxzY2FsZVk6QWV9fWZ1bmN0aW9uIFco''@;'; + put 'put ''cSxKLHNlLG9lKXtmdW5jdGlvbiBjZShTZSl7cmV0dXJuIFNlLmxlbmd0aD9TZS5wb3AoKSsiICI6IiJ9cmV0dXJuIGZ1bmN0aW9uKFNlLEllKXt2YXIgVGU9W10sRWU9W107cmV0dXJuIFNlPXEoU2UpLEllPXEoSWUpLGZ1bmN0aW9uIGRlKFNlLEllLFRlLEVlLGhlLE8pe2lmKFNlIT09VGV8''@;'; + put 'put ''fEllIT09RWUpe3ZhciB6PWhlLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsSixudWxsLHNlKTtPLnB1c2goe2k6ei00LHg6KDAsbWUuWikoU2UsVGUpfSx7aTp6LTIseDooMCxtZS5aKShJZSxFZSl9KX1lbHNlKFRlfHxFZSkmJmhlLnB1c2goInRyYW5zbGF0ZSgiK1RlK0orRWUrc2UpfShTZS50''@;'; + put 'put ''cmFuc2xhdGVYLFNlLnRyYW5zbGF0ZVksSWUudHJhbnNsYXRlWCxJZS50cmFuc2xhdGVZLFRlLEVlKSxmdW5jdGlvbiB2ZShTZSxJZSxUZSxFZSl7U2UhPT1JZT8oU2UtSWU+MTgwP0llKz0zNjA6SWUtU2U+MTgwJiYoU2UrPTM2MCksRWUucHVzaCh7aTpUZS5wdXNoKGNlKFRlKSsicm90YXRl''@;'; + put 'put ''KCIsbnVsbCxvZSktMix4OigwLG1lLlopKFNlLEllKX0pKTpJZSYmVGUucHVzaChjZShUZSkrInJvdGF0ZSgiK0llK29lKX0oU2Uucm90YXRlLEllLnJvdGF0ZSxUZSxFZSksZnVuY3Rpb24gQWUoU2UsSWUsVGUsRWUpe1NlIT09SWU/RWUucHVzaCh7aTpUZS5wdXNoKGNlKFRlKSsic2tld1go''@;'; + put 'put ''IixudWxsLG9lKS0yLHg6KDAsbWUuWikoU2UsSWUpfSk6SWUmJlRlLnB1c2goY2UoVGUpKyJza2V3WCgiK0llK29lKX0oU2Uuc2tld1gsSWUuc2tld1gsVGUsRWUpLGZ1bmN0aW9uIGtlKFNlLEllLFRlLEVlLGhlLE8pe2lmKFNlIT09VGV8fEllIT09RWUpe3ZhciB6PWhlLnB1c2goY2UoaGUp''@;'; + put 'put ''KyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTtPLnB1c2goe2k6ei00LHg6KDAsbWUuWikoU2UsVGUpfSx7aTp6LTIseDooMCxtZS5aKShJZSxFZSl9KX1lbHNlKDEhPT1UZXx8MSE9PUVlKSYmaGUucHVzaChjZShoZSkrInNjYWxlKCIrVGUrIiwiK0VlKyIpIil9KFNlLnNjYWxlWCxTZS5z''@;'; + put 'put ''Y2FsZVksSWUuc2NhbGVYLEllLnNjYWxlWSxUZSxFZSksU2U9SWU9bnVsbCxmdW5jdGlvbihoZSl7Zm9yKHZhciBuZSxPPS0xLHo9RWUubGVuZ3RoOysrTzx6OylUZVsobmU9RWVbT10pLmldPW5lLngoaGUpO3JldHVybiBUZS5qb2luKCIiKX19fXZhciBOPVcoZnVuY3Rpb24gbGUocSl7cmV0''@;'; + put 'put ''dXJuIm5vbmUiPT09cT9FOihVfHwoVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKSxRPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxaPWRvY3VtZW50LmRlZmF1bHRWaWV3KSxVLnN0eWxlLnRyYW5zZm9ybT1xLHE9Wi5nZXRDb21wdXRlZFN0eWxlKFEuYXBwZW5kQ2hpbGQoVSksbnVs''@;'; + put 'put ''bCkuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtIiksUS5yZW1vdmVDaGlsZChVKSxNZSgrKHE9cS5zbGljZSg3LC0xKS5zcGxpdCgiLCIpKVswXSwrcVsxXSwrcVsyXSwrcVszXSwrcVs0XSwrcVs1XSkpfSwicHgsICIsInB4KSIsImRlZykiKSxlZT1XKGZ1bmN0aW9uIFkocSl7cmV0dXJu''@;'; + put 'put ''IG51bGwhPXEmJihpZXx8KGllPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIikpLGllLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIixxKSxxPWllLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpP01lKChxPXEubWF0cml4KS5h''@;'; + put 'put ''LHEuYixxLmMscS5kLHEuZSxxLmYpOkV9LCIsICIsIikiLCIpIil9LDc2MjU3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1o6KCk9PmllfSk7dmFyIG1lPU1hdGguU1FSVDI7ZnVuY3Rpb24gVShsZSl7cmV0dXJuKChsZT1NYXRoLmV4cChsZSkpKzEvbGUpLzJ9ZnVuY3Rpb24g''@;'; + put 'put ''aWUobGUsWSl7dmFyIHZlLEFlLFc9bGVbMF0sTj1sZVsxXSxlZT1sZVsyXSxzZT1ZWzJdLG9lPVlbMF0tVyxjZT1ZWzFdLU4sZGU9b2Uqb2UrY2UqY2U7aWYoZGU8MWUtMTIpQWU9TWF0aC5sb2coc2UvZWUpL21lLHZlPWZ1bmN0aW9uKGhlKXtyZXR1cm5bVytoZSpvZSxOK2hlKmNlLGVlKk1h''@;'; + put 'put ''dGguZXhwKG1lKmhlKkFlKV19O2Vsc2V7dmFyIGtlPU1hdGguc3FydChkZSksU2U9KHNlKnNlLWVlKmVlKzQqZGUpLygyKmVlKjIqa2UpLEllPShzZSpzZS1lZSplZS00KmRlKS8oMipzZSoyKmtlKSxUZT1NYXRoLmxvZyhNYXRoLnNxcnQoU2UqU2UrMSktU2UpLEVlPU1hdGgubG9nKE1hdGgu''@;'; + put 'put ''c3FydChJZSpJZSsxKS1JZSk7QWU9KEVlLVRlKS9tZSx2ZT1mdW5jdGlvbihoZSl7dmFyIE89aGUqQWUsej1VKFRlKSxuZT1lZS8oMiprZSkqKHoqZnVuY3Rpb24gWihsZSl7cmV0dXJuKChsZT1NYXRoLmV4cCgyKmxlKSktMSkvKGxlKzEpfShtZSpPK1RlKS1mdW5jdGlvbiBRKGxlKXtyZXR1''@;'; + put 'put ''cm4oKGxlPU1hdGguZXhwKGxlKSktMS9sZSkvMn0oVGUpKTtyZXR1cm5bVytuZSpvZSxOK25lKmNlLGVlKnovVShtZSpPK1RlKV19fXJldHVybiB2ZS5kdXJhdGlvbj0xZTMqQWUsdmV9fSwzODE4NDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5yKEplKSxMLmQoSmUse3BhdGg6KCk9Plp9''@;'; + put 'put ''KTt2YXIgbWU9TWF0aC5QSSxCPTIqbWUsRT0xZS02LE1lPUItRTtmdW5jdGlvbiBVKCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24gUSgpe3JldHVybiBuZXcgVX1VLnByb3RvdHlwZT1RLnByb3RvdHlwZT17Y29uc3RydWN0b3I6''@;'; + put 'put ''VSxtb3ZlVG86ZnVuY3Rpb24oaWUsbGUpe3RoaXMuXys9Ik0iKyh0aGlzLl94MD10aGlzLl94MT0raWUpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K2xlKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3gxJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAs''@;'; + put 'put ''dGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24oaWUsbGUpe3RoaXMuXys9IkwiKyh0aGlzLl94MT0raWUpKyIsIisodGhpcy5feTE9K2xlKX0scXVhZHJhdGljQ3VydmVUbzpmdW5jdGlvbihpZSxsZSxZLFcpe3RoaXMuXys9IlEiKyAraWUrIiwiKyArbGUrIiwiKyh0aGlzLl94MT0rWSkr''@;'; + put 'put ''IiwiKyh0aGlzLl95MT0rVyl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24oaWUsbGUsWSxXLE4sZWUpe3RoaXMuXys9IkMiKyAraWUrIiwiKyArbGUrIiwiKyArWSsiLCIrICtXKyIsIisodGhpcy5feDE9K04pKyIsIisodGhpcy5feTE9K2VlKX0sYXJjVG86ZnVuY3Rpb24oaWUsbGUsWSxXLE4p''@;'; + put 'put ''e3ZhciBlZT10aGlzLl94MSxxPXRoaXMuX3kxLEo9KFk9K1kpLShpZT0raWUpLHNlPShXPStXKS0obGU9K2xlKSxvZT1lZS1pZSxjZT1xLWxlLGRlPW9lKm9lK2NlKmNlO2lmKChOPStOKTwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK04pO2lmKG51bGw9PT10aGlzLl94''@;'; + put 'put ''MSl0aGlzLl8rPSJNIisodGhpcy5feDE9aWUpKyIsIisodGhpcy5feTE9bGUpO2Vsc2UgaWYoZGU+RSlpZihNYXRoLmFicyhjZSpKLXNlKm9lKT5FJiZOKXt2YXIgdmU9WS1lZSxBZT1XLXEsa2U9SipKK3NlKnNlLFNlPXZlKnZlK0FlKkFlLEllPU1hdGguc3FydChrZSksVGU9TWF0aC5zcXJ0''@;'; + put 'put ''KGRlKSxFZT1OKk1hdGgudGFuKChtZS1NYXRoLmFjb3MoKGtlK2RlLVNlKS8oMipJZSpUZSkpKS8yKSxoZT1FZS9UZSxPPUVlL0llO01hdGguYWJzKGhlLTEpPkUmJih0aGlzLl8rPSJMIisoaWUraGUqb2UpKyIsIisobGUraGUqY2UpKSx0aGlzLl8rPSJBIitOKyIsIitOKyIsMCwwLCIrICso''@;'; + put 'put ''Y2UqdmU+b2UqQWUpKyIsIisodGhpcy5feDE9aWUrTypKKSsiLCIrKHRoaXMuX3kxPWxlK08qc2UpfWVsc2UgdGhpcy5fKz0iTCIrKHRoaXMuX3gxPWllKSsiLCIrKHRoaXMuX3kxPWxlKX0sYXJjOmZ1bmN0aW9uKGllLGxlLFksVyxOLGVlKXtpZT0raWUsbGU9K2xlLGVlPSEhZWU7dmFyIHE9''@;'; + put 'put ''KFk9K1kpKk1hdGguY29zKFcpLEo9WSpNYXRoLnNpbihXKSxzZT1pZStxLG9lPWxlK0osY2U9MV5lZSxkZT1lZT9XLU46Ti1XO2lmKFk8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIitZKTtudWxsPT09dGhpcy5feDE/dGhpcy5fKz0iTSIrc2UrIiwiK29lOihNYXRoLmFi''@;'; + put 'put ''cyh0aGlzLl94MS1zZSk+RXx8TWF0aC5hYnModGhpcy5feTEtb2UpPkUpJiYodGhpcy5fKz0iTCIrc2UrIiwiK29lKSxZJiYoZGU8MCYmKGRlPWRlJUIrQiksZGU+TWU/dGhpcy5fKz0iQSIrWSsiLCIrWSsiLDAsMSwiK2NlKyIsIisoaWUtcSkrIiwiKyhsZS1KKSsiQSIrWSsiLCIrWSsiLDAs''@;'; + put 'put ''MSwiK2NlKyIsIisodGhpcy5feDE9c2UpKyIsIisodGhpcy5feTE9b2UpOmRlPkUmJih0aGlzLl8rPSJBIitZKyIsIitZKyIsMCwiKyArKGRlPj1tZSkrIiwiK2NlKyIsIisodGhpcy5feDE9aWUrWSpNYXRoLmNvcyhOKSkrIiwiKyh0aGlzLl95MT1sZStZKk1hdGguc2luKE4pKSkpfSxyZWN0''@;'; + put 'put ''OmZ1bmN0aW9uKGllLGxlLFksVyl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPStpZSkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rbGUpKyJoIisgK1krInYiKyArVysiaCIrLVkrIloifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTtjb25zdCBaPVF9LDc1MDA6''@;'; + put 'put ''KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WjooKT0+VX0pO3ZhciBtZT1MKDM2MTc1KSxCPUwoNTM1MTcpO2Z1bmN0aW9uIEUoUSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIFo9dGhpcy5vd25lckRvY3VtZW50LGllPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBpZT09PUIuUCYm''@;'; + put 'put ''Wi5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09Qi5QP1ouY3JlYXRlRWxlbWVudChRKTpaLmNyZWF0ZUVsZW1lbnROUyhpZSxRKX19ZnVuY3Rpb24gTWUoUSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoUS5zcGFjZSxR''@;'; + put 'put ''LmxvY2FsKX19ZnVuY3Rpb24gVShRKXt2YXIgWj0oMCxtZS5aKShRKTtyZXR1cm4oWi5sb2NhbD9NZTpFKShaKX19LDY5NDE1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLnIoSmUpLEwuZChKZSx7Y2xpZW50UG9pbnQ6KCk9PlcuWixjcmVhdGU6KCk9PkUsY3JlYXRvcjooKT0+bWUuWixj''@;'; + put 'put ''dXN0b21FdmVudDooKT0+QWUuX0gsZXZlbnQ6KCk9PkFlLkIsbG9jYWw6KCk9PlUsbWF0Y2hlcjooKT0+Wi5aLG1vdXNlOigpPT5pZS5aLG5hbWVzcGFjZTooKT0+bGUuWixuYW1lc3BhY2VzOigpPT5ZLlosc2VsZWN0OigpPT5CLlosc2VsZWN0QWxsOigpPT5lZSxzZWxlY3Rpb246KCk9Pk4u''@;'; + put 'put ''WlAsc2VsZWN0b3I6KCk9PnEuWixzZWxlY3RvckFsbDooKT0+Si5aLHN0eWxlOigpPT5zZS5TLHRvdWNoOigpPT5vZS5aLHRvdWNoZXM6KCk9PmRlLHdpbmRvdzooKT0+dmUuWn0pO3ZhciBtZT1MKDc1MDApLEI9TCg1MjAxNik7ZnVuY3Rpb24gRShrZSl7cmV0dXJuKDAsQi5aKSgoMCxtZS5a''@;'; + put 'put ''KShrZSkuY2FsbChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX12YXIgTWU9MDtmdW5jdGlvbiBVKCl7cmV0dXJuIG5ldyBRfWZ1bmN0aW9uIFEoKXt0aGlzLl89IkAiKygrK01lKS50b1N0cmluZygzNil9US5wcm90b3R5cGU9VS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlEsZ2V0OmZ1bmN0''@;'; + put 'put ''aW9uKGtlKXtmb3IodmFyIFNlPXRoaXMuXzshKFNlIGluIGtlKTspaWYoIShrZT1rZS5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIGtlW1NlXX0sc2V0OmZ1bmN0aW9uKGtlLFNlKXtyZXR1cm4ga2VbdGhpcy5fXT1TZX0scmVtb3ZlOmZ1bmN0aW9uKGtlKXtyZXR1cm4gdGhpcy5fIGluIGtl''@;'; + put 'put ''JiZkZWxldGUga2VbdGhpcy5fXX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX07dmFyIFo9TCg5NzkwNSksaWU9TCg2NjA3MyksbGU9TCgzNjE3NSksWT1MKDUzNTE3KSxXPUwoMjU5NDEpLE49TCg4MjcwMCk7ZnVuY3Rpb24gZWUoa2Upe3JldHVybiJzdHJpbmciPT10eXBl''@;'; + put 'put ''b2Yga2U/bmV3IE4uWTEoW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoa2UpXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IE4uWTEoW251bGw9PWtlP1tdOmtlXSxOLkp6KX12YXIgcT1MKDI5NzQyKSxKPUwoMzIwMzcpLHNlPUwoMjQ0NzYpLG9lPUwoMzAyNTYpLGNlPUwoNzU4''@;'; + put 'put ''MTkpO2Z1bmN0aW9uIGRlKGtlLFNlKXtudWxsPT1TZSYmKFNlPSgwLGNlLlopKCkudG91Y2hlcyk7Zm9yKHZhciBJZT0wLFRlPVNlP1NlLmxlbmd0aDowLEVlPW5ldyBBcnJheShUZSk7SWU8VGU7KytJZSlFZVtJZV09KDAsVy5aKShrZSxTZVtJZV0pO3JldHVybiBFZX12YXIgdmU9TCgyNDQy''@;'; + put 'put ''KSxBZT1MKDYxNzQ2KX0sOTc5MDU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKEIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXMoQil9fUwuZChKZSx7WjooKT0+bWV9KX0sNjYwNzM6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7Wjoo''@;'; + put 'put ''KT0+RX0pO3ZhciBtZT1MKDc1ODE5KSxCPUwoMjU5NDEpO2Z1bmN0aW9uIEUoTWUpe3ZhciBVPSgwLG1lLlopKCk7cmV0dXJuIFUuY2hhbmdlZFRvdWNoZXMmJihVPVUuY2hhbmdlZFRvdWNoZXNbMF0pLCgwLEIuWikoTWUsVSl9fSwzNjE3NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5k''@;'; + put 'put ''KEplLHtaOigpPT5CfSk7dmFyIG1lPUwoNTM1MTcpO2Z1bmN0aW9uIEIoRSl7dmFyIE1lPUUrPSIiLFU9TWUuaW5kZXhPZigiOiIpO3JldHVybiBVPj0wJiYieG1sbnMiIT09KE1lPUUuc2xpY2UoMCxVKSkmJihFPUUuc2xpY2UoVSsxKSksbWUuWi5oYXNPd25Qcm9wZXJ0eShNZSk/e3NwYWNl''@;'; + put 'put ''Om1lLlpbTWVdLGxvY2FsOkV9OkV9fSw1MzUxNzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtQOigpPT5tZSxaOigpPT5CfSk7dmFyIG1lPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjtjb25zdCBCPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRt''@;'; + put 'put ''bDptZSx4bGluazoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIseG1sOiJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJ9fSwyNTk0MTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24g''@;'; + put 'put ''bWUoQixFKXt2YXIgTWU9Qi5vd25lclNWR0VsZW1lbnR8fEI7aWYoTWUuY3JlYXRlU1ZHUG9pbnQpe3ZhciBVPU1lLmNyZWF0ZVNWR1BvaW50KCk7cmV0dXJuIFUueD1FLmNsaWVudFgsVS55PUUuY2xpZW50WSxbKFU9VS5tYXRyaXhUcmFuc2Zvcm0oQi5nZXRTY3JlZW5DVE0oKS5pbnZlcnNl''@;'; + put 'put ''KCkpKS54LFUueV19dmFyIFE9Qi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm5bRS5jbGllbnRYLVEubGVmdC1CLmNsaWVudExlZnQsRS5jbGllbnRZLVEudG9wLUIuY2xpZW50VG9wXX1MLmQoSmUse1o6KCk9Pm1lfSl9LDUyMDE2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQo''@;'; + put 'put ''SmUse1o6KCk9PkJ9KTt2YXIgbWU9TCg4MjcwMCk7ZnVuY3Rpb24gQihFKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEU/bmV3IG1lLlkxKFtbZG9jdW1lbnQucXVlcnlTZWxlY3RvcihFKV1dLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgbWUuWTEoW1tFXV0sbWUuSnopfX0sODI3''@;'; + put 'put ''MDA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WTE6KCk9Pm5yLFpQOigpPT5xbixKejooKT0+cHJ9KTt2YXIgbWU9TCgyOTc0MiksRT1MKDMyMDM3KSxVPUwoOTc5MDUpO2Z1bmN0aW9uIFooV3Qpe3JldHVybiBuZXcgQXJyYXkoV3QubGVuZ3RoKX1mdW5jdGlvbiBsZShXdCxw''@;'; + put 'put ''bil7dGhpcy5vd25lckRvY3VtZW50PVd0Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9V3QubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9V3QsdGhpcy5fX2RhdGFfXz1wbn1mdW5jdGlvbiBOKFd0LHBuLEtuLE50LHNuLFVuKXtmb3IodmFyIHRuLHdu''@;'; + put 'put ''PTAsem49cG4ubGVuZ3RoLFRyPVVuLmxlbmd0aDt3bjxUcjsrK3duKSh0bj1wblt3bl0pPyh0bi5fX2RhdGFfXz1Vblt3bl0sTnRbd25dPXRuKTpLblt3bl09bmV3IGxlKFd0LFVuW3duXSk7Zm9yKDt3bjx6bjsrK3duKSh0bj1wblt3bl0pJiYoc25bd25dPXRuKX1mdW5jdGlvbiBlZShXdCxw''@;'; + put 'put ''bixLbixOdCxzbixVbix3bil7dmFyIHRuLHpuLHVuLFRyPXt9LEJuPXBuLmxlbmd0aCxrcj1Vbi5sZW5ndGgsbW49bmV3IEFycmF5KEJuKTtmb3IodG49MDt0bjxCbjsrK3RuKSh6bj1wblt0bl0pJiYobW5bdG5dPXVuPSIkIit3bi5jYWxsKHpuLHpuLl9fZGF0YV9fLHRuLHBuKSx1biBpbiBU''@;'; + put 'put ''cj9zblt0bl09em46VHJbdW5dPXpuKTtmb3IodG49MDt0bjxrcjsrK3RuKSh6bj1Uclt1bj0iJCIrd24uY2FsbChXdCxVblt0bl0sdG4sVW4pXSk/KE50W3RuXT16bix6bi5fX2RhdGFfXz1Vblt0bl0sVHJbdW5dPW51bGwpOktuW3RuXT1uZXcgbGUoV3QsVW5bdG5dKTtmb3IodG49MDt0bjxC''@;'; + put 'put ''bjsrK3RuKSh6bj1wblt0bl0pJiZUclttblt0bl1dPT09em4mJihzblt0bl09em4pfWZ1bmN0aW9uIHZlKFd0LHBuKXtyZXR1cm4gV3Q8cG4/LTE6V3Q+cG4/MTpXdD49cG4/MDpOYU59bGUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpsZSxhcHBlbmRDaGlsZDpmdW5jdGlvbihXdCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoV3QsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbihXdCxwbil7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoV3QscG4pfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKFd0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5''@;'; + put 'put ''U2VsZWN0b3IoV3QpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKFd0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoV3QpfX07dmFyIGhlPUwoMzYxNzUpO2Z1bmN0aW9uIE8oV3Qpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKFd0KX19ZnVu''@;'; + put 'put ''Y3Rpb24geihXdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhXdC5zcGFjZSxXdC5sb2NhbCl9fWZ1bmN0aW9uIG5lKFd0LHBuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZShXdCxwbil9fWZ1bmN0aW9uIHRlKFd0LHBuKXtyZXR1cm4gZnVu''@;'; + put 'put ''Y3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKFd0LnNwYWNlLFd0LmxvY2FsLHBuKX19ZnVuY3Rpb24geChXdCxwbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEtuPXBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1Lbj90aGlzLnJlbW92ZUF0dHJpYnV0ZShXdCk6dGhpcy5zZXRBdHRy''@;'; + put 'put ''aWJ1dGUoV3QsS24pfX1mdW5jdGlvbiBQKFd0LHBuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgS249cG4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PUtuP3RoaXMucmVtb3ZlQXR0cmlidXRlTlMoV3Quc3BhY2UsV3QubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlMoV3Quc3BhY2UsV3Qu''@;'; + put 'put ''bG9jYWwsS24pfX12YXIgVD1MKDI0NDc2KTtmdW5jdGlvbiBTKFd0KXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1tXdF19fWZ1bmN0aW9uIEYoV3QscG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXNbV3RdPXBufX1mdW5jdGlvbiB5ZShXdCxwbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IEtuPXBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1Lbj9kZWxldGUgdGhpc1tXdF06dGhpc1tXdF09S259fWZ1bmN0aW9uIERlKFd0KXtyZXR1cm4gV3QudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIFBlKFd0KXtyZXR1cm4gV3QuY2xhc3NMaXN0fHxuZXcgUWUoV3QpfWZ1''@;'; + put 'put ''bmN0aW9uIFFlKFd0KXt0aGlzLl9ub2RlPVd0LHRoaXMuX25hbWVzPURlKFd0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfWZ1bmN0aW9uICRlKFd0LHBuKXtmb3IodmFyIEtuPVBlKFd0KSxOdD0tMSxzbj1wbi5sZW5ndGg7KytOdDxzbjspS24uYWRkKHBuW050XSl9ZnVuY3Rpb24gZ3Qo''@;'; + put 'put ''V3QscG4pe2Zvcih2YXIgS249UGUoV3QpLE50PS0xLHNuPXBuLmxlbmd0aDsrK050PHNuOylLbi5yZW1vdmUocG5bTnRdKX1mdW5jdGlvbiB3dChXdCl7cmV0dXJuIGZ1bmN0aW9uKCl7JGUodGhpcyxXdCl9fWZ1bmN0aW9uIHZ0KFd0KXtyZXR1cm4gZnVuY3Rpb24oKXtndCh0aGlzLFd0KX19''@;'; + put 'put ''ZnVuY3Rpb24gQXQoV3QscG4pe3JldHVybiBmdW5jdGlvbigpeyhwbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk/JGU6Z3QpKHRoaXMsV3QpfX1mdW5jdGlvbiBodCgpe3RoaXMudGV4dENvbnRlbnQ9IiJ9ZnVuY3Rpb24gQnQoV3Qpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9''@;'; + put 'put ''V3R9fWZ1bmN0aW9uIG9uKFd0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcG49V3QuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09cG4/IiI6cG59fWZ1bmN0aW9uIHR0KCl7dGhpcy5pbm5lckhUTUw9IiJ9ZnVuY3Rpb24gZXQoV3Qpe3JldHVybiBmdW5jdGlv''@;'; + put 'put ''bigpe3RoaXMuaW5uZXJIVE1MPVd0fX1mdW5jdGlvbiBhdChXdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHBuPVd0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD1udWxsPT1wbj8iIjpwbn19ZnVuY3Rpb24gQ3QoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5v''@;'; + put 'put ''ZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gSHQoKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1RZS5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbihXdCl7dGhpcy5fbmFtZXMuaW5k''@;'; + put 'put ''ZXhPZihXdCk8MCYmKHRoaXMuX25hbWVzLnB1c2goV3QpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LHJlbW92ZTpmdW5jdGlvbihXdCl7dmFyIHBuPXRoaXMuX25hbWVzLmluZGV4T2YoV3QpO3BuPj0wJiYodGhpcy5fbmFtZXMuc3Bs''@;'; + put 'put ''aWNlKHBuLDEpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LGNvbnRhaW5zOmZ1bmN0aW9uKFd0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZihXdCk+PTB9fTt2YXIgVWU9TCg3NTAwKTtmdW5jdGlvbiBqdCgpe3JldHVybiBudWxs''@;'; + put 'put ''fWZ1bmN0aW9uIGduKCl7dmFyIFd0PXRoaXMucGFyZW50Tm9kZTtXdCYmV3QucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24geW4oKXt2YXIgV3Q9dGhpcy5jbG9uZU5vZGUoITEpLHBuPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gcG4/cG4uaW5zZXJ0QmVmb3JlKFd0LHRoaXMubmV4dFNpYmxp''@;'; + put 'put ''bmcpOld0fWZ1bmN0aW9uIGxuKCl7dmFyIFd0PXRoaXMuY2xvbmVOb2RlKCEwKSxwbj10aGlzLnBhcmVudE5vZGU7cmV0dXJuIHBuP3BuLmluc2VydEJlZm9yZShXdCx0aGlzLm5leHRTaWJsaW5nKTpXdH12YXIgZXI9TCg2MTc0Niksc3I9TCgyNDQyKTtmdW5jdGlvbiBYbihXdCxwbixLbil7''@;'; + put 'put ''dmFyIE50PSgwLHNyLlopKFd0KSxzbj1OdC5DdXN0b21FdmVudDsiZnVuY3Rpb24iPT10eXBlb2Ygc24/c249bmV3IHNuKHBuLEtuKTooc249TnQuZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IiksS24/KHNuLmluaXRFdmVudChwbixLbi5idWJibGVzLEtuLmNhbmNlbGFibGUpLHNuLmRl''@;'; + put 'put ''dGFpbD1Lbi5kZXRhaWwpOnNuLmluaXRFdmVudChwbiwhMSwhMSkpLFd0LmRpc3BhdGNoRXZlbnQoc24pfWZ1bmN0aW9uIEZyKFd0LHBuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gWG4odGhpcyxXdCxwbil9fWZ1bmN0aW9uIHhyKFd0LHBuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''WG4odGhpcyxXdCxwbi5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX12YXIgcHI9W251bGxdO2Z1bmN0aW9uIG5yKFd0LHBuKXt0aGlzLl9ncm91cHM9V3QsdGhpcy5fcGFyZW50cz1wbn1mdW5jdGlvbiBBbigpe3JldHVybiBuZXcgbnIoW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSxwcil9''@;'; + put 'put ''bnIucHJvdG90eXBlPUFuLnByb3RvdHlwZT17Y29uc3RydWN0b3I6bnIsc2VsZWN0OmZ1bmN0aW9uIEIoV3QpeyJmdW5jdGlvbiIhPXR5cGVvZiBXdCYmKFd0PSgwLG1lLlopKFd0KSk7Zm9yKHZhciBwbj10aGlzLl9ncm91cHMsS249cG4ubGVuZ3RoLE50PW5ldyBBcnJheShLbiksc249MDtz''@;'; + put 'put ''bjxLbjsrK3NuKWZvcih2YXIgem4sVHIsVW49cG5bc25dLHduPVVuLmxlbmd0aCx0bj1OdFtzbl09bmV3IEFycmF5KHduKSxCbj0wO0JuPHduOysrQm4pKHpuPVVuW0JuXSkmJihUcj1XdC5jYWxsKHpuLHpuLl9fZGF0YV9fLEJuLFVuKSkmJigiX19kYXRhX18iaW4gem4mJihUci5fX2RhdGFf''@;'; + put 'put ''Xz16bi5fX2RhdGFfXyksdG5bQm5dPVRyKTtyZXR1cm4gbmV3IG5yKE50LHRoaXMuX3BhcmVudHMpfSxzZWxlY3RBbGw6ZnVuY3Rpb24gTWUoV3QpeyJmdW5jdGlvbiIhPXR5cGVvZiBXdCYmKFd0PSgwLEUuWikoV3QpKTtmb3IodmFyIHBuPXRoaXMuX2dyb3VwcyxLbj1wbi5sZW5ndGgsTnQ9''@;'; + put 'put ''W10sc249W10sVW49MDtVbjxLbjsrK1VuKWZvcih2YXIgem4sd249cG5bVW5dLHRuPXduLmxlbmd0aCxUcj0wO1RyPHRuOysrVHIpKHpuPXduW1RyXSkmJihOdC5wdXNoKFd0LmNhbGwoem4sem4uX19kYXRhX18sVHIsd24pKSxzbi5wdXNoKHpuKSk7cmV0dXJuIG5ldyBucihOdCxzbil9LGZp''@;'; + put 'put ''bHRlcjpmdW5jdGlvbiBRKFd0KXsiZnVuY3Rpb24iIT10eXBlb2YgV3QmJihXdD0oMCxVLlopKFd0KSk7Zm9yKHZhciBwbj10aGlzLl9ncm91cHMsS249cG4ubGVuZ3RoLE50PW5ldyBBcnJheShLbiksc249MDtzbjxLbjsrK3NuKWZvcih2YXIgem4sVW49cG5bc25dLHduPVVuLmxlbmd0aCx0''@;'; + put 'put ''bj1OdFtzbl09W10sVHI9MDtUcjx3bjsrK1RyKSh6bj1VbltUcl0pJiZXdC5jYWxsKHpuLHpuLl9fZGF0YV9fLFRyLFVuKSYmdG4ucHVzaCh6bik7cmV0dXJuIG5ldyBucihOdCx0aGlzLl9wYXJlbnRzKX0sZGF0YTpmdW5jdGlvbiBxKFd0LHBuKXtpZighV3QpcmV0dXJuIHVuPW5ldyBBcnJh''@;'; + put 'put ''eSh0aGlzLnNpemUoKSksVHI9LTEsdGhpcy5lYWNoKGZ1bmN0aW9uKG9yKXt1blsrK1RyXT1vcn0pLHVuO3ZhciBLbj1wbj9lZTpOLE50PXRoaXMuX3BhcmVudHMsc249dGhpcy5fZ3JvdXBzOyJmdW5jdGlvbiIhPXR5cGVvZiBXdCYmKFd0PWZ1bmN0aW9uIFkoV3Qpe3JldHVybiBmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiBXdH19KFd0KSk7Zm9yKHZhciBVbj1zbi5sZW5ndGgsd249bmV3IEFycmF5KFVuKSx0bj1uZXcgQXJyYXkoVW4pLHpuPW5ldyBBcnJheShVbiksVHI9MDtUcjxVbjsrK1RyKXt2YXIgQm49TnRbVHJdLGtyPXNuW1RyXSxtbj1rci5sZW5ndGgsdW49V3QuY2FsbChCbixCbiYm''@;'; + put 'put ''Qm4uX19kYXRhX18sVHIsTnQpLGNuPXVuLmxlbmd0aCxfbj10bltUcl09bmV3IEFycmF5KGNuKSxHdD13bltUcl09bmV3IEFycmF5KGNuKTtLbihCbixrcixfbixHdCx6bltUcl09bmV3IEFycmF5KG1uKSx1bixwbik7Zm9yKHZhciBJbixKbixWbj0wLGVuPTA7Vm48Y247KytWbilpZihJbj1f''@;'; + put 'put ''bltWbl0pe2ZvcihWbj49ZW4mJihlbj1WbisxKTshKEpuPUd0W2VuXSkmJisrZW48Y247KTtJbi5fbmV4dD1Kbnx8bnVsbH19cmV0dXJuKHduPW5ldyBucih3bixOdCkpLl9lbnRlcj10bix3bi5fZXhpdD16bix3bn0sZW50ZXI6ZnVuY3Rpb24gaWUoKXtyZXR1cm4gbmV3IG5yKHRoaXMuX2Vu''@;'; + put 'put ''dGVyfHx0aGlzLl9ncm91cHMubWFwKFopLHRoaXMuX3BhcmVudHMpfSxleGl0OmZ1bmN0aW9uIEooKXtyZXR1cm4gbmV3IG5yKHRoaXMuX2V4aXR8fHRoaXMuX2dyb3Vwcy5tYXAoWiksdGhpcy5fcGFyZW50cyl9LGpvaW46ZnVuY3Rpb24gc2UoV3QscG4sS24pe3ZhciBOdD10aGlzLmVudGVy''@;'; + put 'put ''KCksc249dGhpcyxVbj10aGlzLmV4aXQoKTtyZXR1cm4gTnQ9ImZ1bmN0aW9uIj09dHlwZW9mIFd0P1d0KE50KTpOdC5hcHBlbmQoV3QrIiIpLG51bGwhPXBuJiYoc249cG4oc24pKSxudWxsPT1Lbj9Vbi5yZW1vdmUoKTpLbihVbiksTnQmJnNuP050Lm1lcmdlKHNuKS5vcmRlcigpOnNufSxt''@;'; + put 'put ''ZXJnZTpmdW5jdGlvbiBvZShXdCl7Zm9yKHZhciBwbj10aGlzLl9ncm91cHMsS249V3QuX2dyb3VwcyxOdD1wbi5sZW5ndGgsVW49TWF0aC5taW4oTnQsS24ubGVuZ3RoKSx3bj1uZXcgQXJyYXkoTnQpLHRuPTA7dG48VW47Kyt0bilmb3IodmFyIG1uLHpuPXBuW3RuXSxUcj1Lblt0bl0sQm49''@;'; + put 'put ''em4ubGVuZ3RoLGtyPXduW3RuXT1uZXcgQXJyYXkoQm4pLHVuPTA7dW48Qm47Kyt1bikobW49em5bdW5dfHxUclt1bl0pJiYoa3JbdW5dPW1uKTtmb3IoO3RuPE50OysrdG4pd25bdG5dPXBuW3RuXTtyZXR1cm4gbmV3IG5yKHduLHRoaXMuX3BhcmVudHMpfSxvcmRlcjpmdW5jdGlvbiBjZSgp''@;'; + put 'put ''e2Zvcih2YXIgV3Q9dGhpcy5fZ3JvdXBzLHBuPS0xLEtuPVd0Lmxlbmd0aDsrK3BuPEtuOylmb3IodmFyIHduLE50PVd0W3BuXSxzbj1OdC5sZW5ndGgtMSxVbj1OdFtzbl07LS1zbj49MDspKHduPU50W3NuXSkmJihVbiYmNF53bi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihVbikmJlVuLnBh''@;'; + put 'put ''cmVudE5vZGUuaW5zZXJ0QmVmb3JlKHduLFVuKSxVbj13bik7cmV0dXJuIHRoaXN9LHNvcnQ6ZnVuY3Rpb24gZGUoV3Qpe2Z1bmN0aW9uIHBuKGtyLG1uKXtyZXR1cm4ga3ImJm1uP1d0KGtyLl9fZGF0YV9fLG1uLl9fZGF0YV9fKToha3ItIW1ufVd0fHwoV3Q9dmUpO2Zvcih2YXIgS249dGhp''@;'; + put 'put ''cy5fZ3JvdXBzLE50PUtuLmxlbmd0aCxzbj1uZXcgQXJyYXkoTnQpLFVuPTA7VW48TnQ7KytVbil7Zm9yKHZhciBUcix3bj1LbltVbl0sdG49d24ubGVuZ3RoLHpuPXNuW1VuXT1uZXcgQXJyYXkodG4pLEJuPTA7Qm48dG47KytCbikoVHI9d25bQm5dKSYmKHpuW0JuXT1Ucik7em4uc29ydChw''@;'; + put 'put ''bil9cmV0dXJuIG5ldyBucihzbix0aGlzLl9wYXJlbnRzKS5vcmRlcigpfSxjYWxsOmZ1bmN0aW9uIEFlKCl7dmFyIFd0PWFyZ3VtZW50c1swXTtyZXR1cm4gYXJndW1lbnRzWzBdPXRoaXMsV3QuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uIGtlKCl7dmFyIFd0''@;'; + put 'put ''PW5ldyBBcnJheSh0aGlzLnNpemUoKSkscG49LTE7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1d0WysrcG5dPXRoaXN9KSxXdH0sbm9kZTpmdW5jdGlvbiBTZSgpe2Zvcih2YXIgV3Q9dGhpcy5fZ3JvdXBzLHBuPTAsS249V3QubGVuZ3RoO3BuPEtuOysrcG4pZm9yKHZhciBOdD1XdFtw''@;'; + put 'put ''bl0sc249MCxVbj1OdC5sZW5ndGg7c248VW47Kytzbil7dmFyIHduPU50W3NuXTtpZih3bilyZXR1cm4gd259cmV0dXJuIG51bGx9LHNpemU6ZnVuY3Rpb24gSWUoKXt2YXIgV3Q9MDtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7KytXdH0pLFd0fSxlbXB0eTpmdW5jdGlvbiBUZSgpe3Jl''@;'; + put 'put ''dHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbiBFZShXdCl7Zm9yKHZhciBwbj10aGlzLl9ncm91cHMsS249MCxOdD1wbi5sZW5ndGg7S248TnQ7KytLbilmb3IodmFyIHRuLHNuPXBuW0tuXSxVbj0wLHduPXNuLmxlbmd0aDtVbjx3bjsrK1VuKSh0bj1zbltVbl0pJiZXdC5jYWxsKHRu''@;'; + put 'put ''LHRuLl9fZGF0YV9fLFVuLHNuKTtyZXR1cm4gdGhpc30sYXR0cjpmdW5jdGlvbiBWKFd0LHBuKXt2YXIgS249KDAsaGUuWikoV3QpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIE50PXRoaXMubm9kZSgpO3JldHVybiBLbi5sb2NhbD9OdC5nZXRBdHRyaWJ1dGVOUyhLbi5zcGFjZSxLbi5s''@;'; + put 'put ''b2NhbCk6TnQuZ2V0QXR0cmlidXRlKEtuKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1wbj9Lbi5sb2NhbD96Ok86ImZ1bmN0aW9uIj09dHlwZW9mIHBuP0tuLmxvY2FsP1A6eDpLbi5sb2NhbD90ZTpuZSkoS24scG4pKX0sc3R5bGU6VC5aLHByb3BlcnR5OmZ1bmN0aW9uIENlKFd0LHBuKXty''@;'; + put 'put ''ZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09cG4/UzoiZnVuY3Rpb24iPT10eXBlb2YgcG4/eWU6RikoV3QscG4pKTp0aGlzLm5vZGUoKVtXdF19LGNsYXNzZWQ6ZnVuY3Rpb24gbXQoV3QscG4pe3ZhciBLbj1EZShXdCsiIik7aWYoYXJndW1lbnRzLmxlbmd0aDwy''@;'; + put 'put ''KXtmb3IodmFyIE50PVBlKHRoaXMubm9kZSgpKSxzbj0tMSxVbj1Lbi5sZW5ndGg7KytzbjxVbjspaWYoIU50LmNvbnRhaW5zKEtuW3NuXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIHBuP0F0OnBuP3d0OnZ0KShLbixwbikpfSx0ZXh0''@;'; + put 'put ''OmZ1bmN0aW9uIF90KFd0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09V3Q/aHQ6KCJmdW5jdGlvbiI9PXR5cGVvZiBXdD9vbjpCdCkoV3QpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0saHRtbDpmdW5jdGlvbiBMdChXdCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5n''@;'; + put 'put ''dGg/dGhpcy5lYWNoKG51bGw9PVd0P3R0OigiZnVuY3Rpb24iPT10eXBlb2YgV3Q/YXQ6ZXQpKFd0KSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfSxyYWlzZTpmdW5jdGlvbiBmdCgpe3JldHVybiB0aGlzLmVhY2goQ3QpfSxsb3dlcjpmdW5jdGlvbiBHZSgpe3JldHVybiB0aGlzLmVhY2goSHQp''@;'; + put 'put ''fSxhcHBlbmQ6ZnVuY3Rpb24geXQoV3Qpe3ZhciBwbj0iZnVuY3Rpb24iPT10eXBlb2YgV3Q/V3Q6KDAsVWUuWikoV3QpO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKHBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KX0saW5zZXJ0OmZ1bmN0''@;'; + put 'put ''aW9uIFF0KFd0LHBuKXt2YXIgS249ImZ1bmN0aW9uIj09dHlwZW9mIFd0P1d0OigwLFVlLlopKFd0KSxOdD1udWxsPT1wbj9qdDoiZnVuY3Rpb24iPT10eXBlb2YgcG4/cG46KDAsbWUuWikocG4pO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9y''@;'; + put 'put ''ZShLbi5hcHBseSh0aGlzLGFyZ3VtZW50cyksTnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pfSxyZW1vdmU6ZnVuY3Rpb24gZG4oKXtyZXR1cm4gdGhpcy5lYWNoKGduKX0sY2xvbmU6ZnVuY3Rpb24gTm4oV3Qpe3JldHVybiB0aGlzLnNlbGVjdChXdD9sbjp5bil9LGRhdHVtOmZ1''@;'; + put 'put ''bmN0aW9uIGJuKFd0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsV3QpOnRoaXMubm9kZSgpLl9fZGF0YV9ffSxvbjplci5aUCxkaXNwYXRjaDpmdW5jdGlvbiBxdChXdCxwbil7cmV0dXJuIHRoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIHBu''@;'; + put 'put ''P3hyOkZyKShXdCxwbikpfX07Y29uc3QgcW49QW59LDYxNzQ2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse0I6KCk9PkIsWlA6KCk9PmxlLF9IOigpPT5ZfSk7dmFyIG1lPXt9LEI9bnVsbDtmdW5jdGlvbiBNZShXLE4sZWUpe3JldHVybiBXPVUoVyxOLGVlKSxmdW5jdGlvbihx''@;'; + put 'put ''KXt2YXIgSj1xLnJlbGF0ZWRUYXJnZXQ7KCFKfHxKIT09dGhpcyYmISg4JkouY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykpKSYmVy5jYWxsKHRoaXMscSl9fWZ1bmN0aW9uIFUoVyxOLGVlKXtyZXR1cm4gZnVuY3Rpb24ocSl7dmFyIEo9QjtCPXE7dHJ5e1cuY2FsbCh0aGlzLHRoaXMu''@;'; + put 'put ''X19kYXRhX18sTixlZSl9ZmluYWxseXtCPUp9fX1mdW5jdGlvbiBRKFcpe3JldHVybiBXLnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoZnVuY3Rpb24oTil7dmFyIGVlPSIiLHE9Ti5pbmRleE9mKCIuIik7cmV0dXJuIHE+PTAmJihlZT1OLnNsaWNlKHErMSksTj1OLnNsaWNlKDAscSkpLHt0''@;'; + put 'put ''eXBlOk4sbmFtZTplZX19KX1mdW5jdGlvbiBaKFcpe3JldHVybiBmdW5jdGlvbigpe3ZhciBOPXRoaXMuX19vbjtpZihOKXtmb3IodmFyIHNlLGVlPTAscT0tMSxKPU4ubGVuZ3RoO2VlPEo7KytlZSlzZT1OW2VlXSxXLnR5cGUmJnNlLnR5cGUhPT1XLnR5cGV8fHNlLm5hbWUhPT1XLm5hbWU/''@;'; + put 'put ''TlsrK3FdPXNlOnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihzZS50eXBlLHNlLmxpc3RlbmVyLHNlLmNhcHR1cmUpOysrcT9OLmxlbmd0aD1xOmRlbGV0ZSB0aGlzLl9fb259fX1mdW5jdGlvbiBpZShXLE4sZWUpe3ZhciBxPW1lLmhhc093blByb3BlcnR5KFcudHlwZSk/TWU6VTtyZXR1cm4g''@;'; + put 'put ''ZnVuY3Rpb24oSixzZSxvZSl7dmFyIGRlLGNlPXRoaXMuX19vbix2ZT1xKE4sc2Usb2UpO2lmKGNlKWZvcih2YXIgQWU9MCxrZT1jZS5sZW5ndGg7QWU8a2U7KytBZSlpZigoZGU9Y2VbQWVdKS50eXBlPT09Vy50eXBlJiZkZS5uYW1lPT09Vy5uYW1lKXJldHVybiB0aGlzLnJlbW92ZUV2ZW50''@;'; + put 'put ''TGlzdGVuZXIoZGUudHlwZSxkZS5saXN0ZW5lcixkZS5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZGUudHlwZSxkZS5saXN0ZW5lcj12ZSxkZS5jYXB0dXJlPWVlKSx2b2lkKGRlLnZhbHVlPU4pO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihXLnR5cGUsdmUsZWUpLGRlPXt0eXBlOlcu''@;'; + put 'put ''dHlwZSxuYW1lOlcubmFtZSx2YWx1ZTpOLGxpc3RlbmVyOnZlLGNhcHR1cmU6ZWV9LGNlP2NlLnB1c2goZGUpOnRoaXMuX19vbj1bZGVdfX1mdW5jdGlvbiBsZShXLE4sZWUpe3ZhciBKLG9lLHE9UShXKyIiKSxzZT1xLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2ZvcihjZT1O''@;'; + put 'put ''P2llOlosbnVsbD09ZWUmJihlZT0hMSksSj0wO0o8c2U7KytKKXRoaXMuZWFjaChjZShxW0pdLE4sZWUpKTtyZXR1cm4gdGhpc312YXIgY2U9dGhpcy5ub2RlKCkuX19vbjtpZihjZSlmb3IodmFyIEFlLGRlPTAsdmU9Y2UubGVuZ3RoO2RlPHZlOysrZGUpZm9yKEo9MCxBZT1jZVtkZV07Sjxz''@;'; + put 'put ''ZTsrK0opaWYoKG9lPXFbSl0pLnR5cGU9PT1BZS50eXBlJiZvZS5uYW1lPT09QWUubmFtZSlyZXR1cm4gQWUudmFsdWV9ZnVuY3Rpb24gWShXLE4sZWUscSl7dmFyIEo9QjtXLnNvdXJjZUV2ZW50PUIsQj1XO3RyeXtyZXR1cm4gTi5hcHBseShlZSxxKX1maW5hbGx5e0I9Sn19InVuZGVmaW5l''@;'; + put 'put ''ZCIhPXR5cGVvZiBkb2N1bWVudCYmKCJvbm1vdXNlZW50ZXIiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHwobWU9e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSkpfSwyNDQ3NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtTOigpPT5R''@;'; + put 'put ''LFo6KCk9PlV9KTt2YXIgbWU9TCgyNDQyKTtmdW5jdGlvbiBCKFope3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoWil9fWZ1bmN0aW9uIEUoWixpZSxsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShaLGllLGxlKX19ZnVuY3Rp''@;'; + put 'put ''b24gTWUoWixpZSxsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIFk9aWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PVk/dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShaKTp0aGlzLnN0eWxlLnNldFByb3BlcnR5KFosWSxsZSl9fWZ1bmN0aW9uIFUoWixpZSxsZSl7cmV0dXJuIGFyZ3Vt''@;'; + put 'put ''ZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWllP0I6ImZ1bmN0aW9uIj09dHlwZW9mIGllP01lOkUpKFosaWUsbnVsbD09bGU/IiI6bGUpKTpRKHRoaXMubm9kZSgpLFopfWZ1bmN0aW9uIFEoWixpZSl7cmV0dXJuIFouc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShpZSl8fCgwLG1lLlop''@;'; + put 'put ''KFopLmdldENvbXB1dGVkU3R5bGUoWixudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKGllKX19LDI5NzQyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtZSgpe31mdW5jdGlvbiBCKEUpe3JldHVybiBudWxsPT1FP21lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3Rv''@;'; + put 'put ''cihFKX19TC5kKEplLHtaOigpPT5CfSl9LDMyMDM3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtZSgpe3JldHVybltdfWZ1bmN0aW9uIEIoRSl7cmV0dXJuIG51bGw9PUU/bWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKEUpfX1MLmQoSmUse1o6''@;'; + put 'put ''KCk9PkJ9KX0sNzU4MTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WjooKT0+Qn0pO3ZhciBtZT1MKDYxNzQ2KTtmdW5jdGlvbiBCKCl7Zm9yKHZhciBNZSxFPW1lLkI7TWU9RS5zb3VyY2VFdmVudDspRT1NZTtyZXR1cm4gRX19LDMwMjU2OihYZSxKZSxMKT0+eyJ1c2Ugc3Ry''@;'; + put 'put ''aWN0IjtMLmQoSmUse1o6KCk9PkV9KTt2YXIgbWU9TCg3NTgxOSksQj1MKDI1OTQxKTtmdW5jdGlvbiBFKE1lLFUsUSl7YXJndW1lbnRzLmxlbmd0aDwzJiYoUT1VLFU9KDAsbWUuWikoKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciBsZSxaPTAsaWU9VT9VLmxlbmd0aDowO1o8aWU7KytaKWlm''@;'; + put 'put ''KChsZT1VW1pdKS5pZGVudGlmaWVyPT09USlyZXR1cm4oMCxCLlopKE1lLGxlKTtyZXR1cm4gbnVsbH19LDI0NDI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKEIpe3JldHVybiBCLm93bmVyRG9jdW1lbnQmJkIub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8Qi5kb2N1''@;'; + put 'put ''bWVudCYmQnx8Qi5kZWZhdWx0Vmlld31MLmQoSmUse1o6KCk9Pm1lfSl9LDU2ODQyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLnIoSmUpLEwuZChKZSx7aW50ZXJ2YWw6KCk9PkUsbm93OigpPT5tZS56Tyx0aW1lb3V0OigpPT5CLlosdGltZXI6KCk9Pm1lLkhULHRpbWVyRmx1c2g6KCk9''@;'; + put 'put ''Pm1lLlI4fSk7dmFyIG1lPUwoNDkxOTQpLEI9TCg3MzMzOSk7ZnVuY3Rpb24gRShNZSxVLFEpe3ZhciBaPW5ldyBtZS5CNyxpZT1VO3JldHVybiBudWxsPT1VPyhaLnJlc3RhcnQoTWUsVSxRKSxaKTooVT0rVSxRPW51bGw9PVE/KDAsbWUuek8pKCk6K1EsWi5yZXN0YXJ0KGZ1bmN0aW9uIGxl''@;'; + put 'put ''KFkpe1krPWllLFoucmVzdGFydChsZSxpZSs9VSxRKSxNZShZKX0sVSxRKSxaKX19LDczMzM5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1o6KCk9PkJ9KTt2YXIgbWU9TCg0OTE5NCk7ZnVuY3Rpb24gQihFLE1lLFUpe3ZhciBRPW5ldyBtZS5CNztyZXR1cm4gUS5yZXN0YXJ0''@;'; + put 'put ''KGZ1bmN0aW9uKFope1Euc3RvcCgpLEUoWitNZSl9LE1lPW51bGw9PU1lPzA6K01lLFUpLFF9fSw0OTE5NDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtCNzooKT0+cSxIVDooKT0+SixSODooKT0+c2Usek86KCk9Pk59KTt2YXIgVSxRLG1lPTAsQj0wLEU9MCxaPTAsaWU9MCxs''@;'; + put 'put ''ZT0wLFk9Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUsVz0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93''@;'; + put 'put ''KTpmdW5jdGlvbihBZSl7c2V0VGltZW91dChBZSwxNyl9O2Z1bmN0aW9uIE4oKXtyZXR1cm4gaWV8fChXKGVlKSxpZT1ZLm5vdygpK2xlKX1mdW5jdGlvbiBlZSgpe2llPTB9ZnVuY3Rpb24gcSgpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9ZnVuY3Rpb24gSihBZSxr''@;'; + put 'put ''ZSxTZSl7dmFyIEllPW5ldyBxO3JldHVybiBJZS5yZXN0YXJ0KEFlLGtlLFNlKSxJZX1mdW5jdGlvbiBzZSgpe04oKSwrK21lO2Zvcih2YXIga2UsQWU9VTtBZTspKGtlPWllLUFlLl90aW1lKT49MCYmQWUuX2NhbGwuY2FsbChudWxsLGtlKSxBZT1BZS5fbmV4dDstLW1lfWZ1bmN0aW9uIG9l''@;'; + put 'put ''KCl7aWU9KFo9WS5ub3coKSkrbGUsbWU9Qj0wO3RyeXtzZSgpfWZpbmFsbHl7bWU9MCxmdW5jdGlvbiBkZSgpe2Zvcih2YXIgQWUsU2Usa2U9VSxJZT0xLzA7a2U7KWtlLl9jYWxsPyhJZT5rZS5fdGltZSYmKEllPWtlLl90aW1lKSxBZT1rZSxrZT1rZS5fbmV4dCk6KFNlPWtlLl9uZXh0LGtl''@;'; + put 'put ''Ll9uZXh0PW51bGwsa2U9QWU/QWUuX25leHQ9U2U6VT1TZSk7UT1BZSx2ZShJZSl9KCksaWU9MH19ZnVuY3Rpb24gY2UoKXt2YXIgQWU9WS5ub3coKSxrZT1BZS1aO2tlPjFlMyYmKGxlLT1rZSxaPUFlKX1mdW5jdGlvbiB2ZShBZSl7bWV8fChCJiYoQj1jbGVhclRpbWVvdXQoQikpLEFlLWll''@;'; + put 'put ''PjI0PyhBZTwxLzAmJihCPXNldFRpbWVvdXQob2UsQWUtWS5ub3coKS1sZSkpLEUmJihFPWNsZWFySW50ZXJ2YWwoRSkpKTooRXx8KFo9WS5ub3coKSxFPXNldEludGVydmFsKGNlLDFlMykpLG1lPTEsVyhvZSkpKX1xLnByb3RvdHlwZT1KLnByb3RvdHlwZT17Y29uc3RydWN0b3I6cSxyZXN0''@;'; + put 'put ''YXJ0OmZ1bmN0aW9uKEFlLGtlLFNlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTtTZT0obnVsbD09U2U/TigpOitTZSkrKG51bGw9PWtlPzA6K2tlKSwhdGhpcy5fbmV4dCYmUSE9PXRoaXMmJihRP1Eu''@;'; + put 'put ''X25leHQ9dGhpczpVPXRoaXMsUT10aGlzKSx0aGlzLl9jYWxsPUFlLHRoaXMuX3RpbWU9U2UsdmUoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsdmUoKSl9fX0sNDA4MjI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wucihK''@;'; + put 'put ''ZSksTC5kKEplLHthY3RpdmU6KCk9Pl9uLGludGVycnVwdDooKT0+ZGUsdHJhbnNpdGlvbjooKT0+VW59KTt2YXIgbWU9TCg4MjcwMCksQj1MKDI1OTIyKSxFPUwoNDkxOTQpLE1lPUwoNzMzMzkpLFU9KDAsQi5aKSgic3RhcnQiLCJlbmQiLCJjYW5jZWwiLCJpbnRlcnJ1cHQiKSxRPVtdO2Z1''@;'; + put 'put ''bmN0aW9uIHEoR3Qsa24sVm4sZW4sSW4sSm4pe3ZhciBvcj1HdC5fX3RyYW5zaXRpb247aWYob3Ipe2lmKFZuIGluIG9yKXJldHVybn1lbHNlIEd0Ll9fdHJhbnNpdGlvbj17fTshZnVuY3Rpb24gY2UoR3Qsa24sVm4pe3ZhciBJbixlbj1HdC5fX3RyYW5zaXRpb247ZnVuY3Rpb24gb3IoVnIp''@;'; + put 'put ''e3ZhciBpaSxScixsaSxNaTtpZigxIT09Vm4uc3RhdGUpcmV0dXJuIEtyKCk7Zm9yKGlpIGluIGVuKWlmKChNaT1lbltpaV0pLm5hbWU9PT1Wbi5uYW1lKXtpZigzPT09TWkuc3RhdGUpcmV0dXJuKDAsTWUuWikob3IpOzQ9PT1NaS5zdGF0ZT8oTWkuc3RhdGU9NixNaS50aW1lci5zdG9wKCks''@;'; + put 'put ''TWkub24uY2FsbCgiaW50ZXJydXB0IixHdCxHdC5fX2RhdGFfXyxNaS5pbmRleCxNaS5ncm91cCksZGVsZXRlIGVuW2lpXSk6K2lpPGtuJiYoTWkuc3RhdGU9NixNaS50aW1lci5zdG9wKCksTWkub24uY2FsbCgiY2FuY2VsIixHdCxHdC5fX2RhdGFfXyxNaS5pbmRleCxNaS5ncm91cCksZGVs''@;'; + put 'put ''ZXRlIGVuW2lpXSl9aWYoKDAsTWUuWikoZnVuY3Rpb24oKXszPT09Vm4uc3RhdGUmJihWbi5zdGF0ZT00LFZuLnRpbWVyLnJlc3RhcnQoZ3IsVm4uZGVsYXksVm4udGltZSksZ3IoVnIpKX0pLFZuLnN0YXRlPTIsVm4ub24uY2FsbCgic3RhcnQiLEd0LEd0Ll9fZGF0YV9fLFZuLmluZGV4LFZu''@;'; + put 'put ''Lmdyb3VwKSwyPT09Vm4uc3RhdGUpe2ZvcihWbi5zdGF0ZT0zLEluPW5ldyBBcnJheShsaT1Wbi50d2Vlbi5sZW5ndGgpLGlpPTAsUnI9LTE7aWk8bGk7KytpaSkoTWk9Vm4udHdlZW5baWldLnZhbHVlLmNhbGwoR3QsR3QuX19kYXRhX18sVm4uaW5kZXgsVm4uZ3JvdXApKSYmKEluWysrUnJd''@;'; + put 'put ''PU1pKTtJbi5sZW5ndGg9UnIrMX19ZnVuY3Rpb24gZ3IoVnIpe2Zvcih2YXIgaWk9VnI8Vm4uZHVyYXRpb24/Vm4uZWFzZS5jYWxsKG51bGwsVnIvVm4uZHVyYXRpb24pOihWbi50aW1lci5yZXN0YXJ0KEtyKSxWbi5zdGF0ZT01LDEpLFJyPS0xLGxpPUluLmxlbmd0aDsrK1JyPGxpOylJbltS''@;'; + put 'put ''cl0uY2FsbChHdCxpaSk7NT09PVZuLnN0YXRlJiYoVm4ub24uY2FsbCgiZW5kIixHdCxHdC5fX2RhdGFfXyxWbi5pbmRleCxWbi5ncm91cCksS3IoKSl9ZnVuY3Rpb24gS3IoKXtmb3IodmFyIFZyIGluIFZuLnN0YXRlPTYsVm4udGltZXIuc3RvcCgpLGRlbGV0ZSBlbltrbl0sZW4pcmV0dXJu''@;'; + put 'put ''O2RlbGV0ZSBHdC5fX3RyYW5zaXRpb259ZW5ba25dPVZuLFZuLnRpbWVyPSgwLEUuSFQpKGZ1bmN0aW9uIEpuKFZyKXtWbi5zdGF0ZT0xLFZuLnRpbWVyLnJlc3RhcnQob3IsVm4uZGVsYXksVm4udGltZSksVm4uZGVsYXk8PVZyJiZvcihWci1Wbi5kZWxheSl9LDAsVm4udGltZSl9KEd0LFZu''@;'; + put 'put ''LHtuYW1lOmtuLGluZGV4OmVuLGdyb3VwOkluLG9uOlUsdHdlZW46USx0aW1lOkpuLnRpbWUsZGVsYXk6Sm4uZGVsYXksZHVyYXRpb246Sm4uZHVyYXRpb24sZWFzZTpKbi5lYXNlLHRpbWVyOm51bGwsc3RhdGU6MH0pfWZ1bmN0aW9uIEooR3Qsa24pe3ZhciBWbj1vZShHdCxrbik7aWYoVm4u''@;'; + put 'put ''c3RhdGU+MCl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiBWbn1mdW5jdGlvbiBzZShHdCxrbil7dmFyIFZuPW9lKEd0LGtuKTtpZihWbi5zdGF0ZT4zKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgcnVubmluZyIpO3JldHVy''@;'; + put 'put ''biBWbn1mdW5jdGlvbiBvZShHdCxrbil7dmFyIFZuPUd0Ll9fdHJhbnNpdGlvbjtpZighVm58fCEoVm49Vm5ba25dKSl0aHJvdyBuZXcgRXJyb3IoInRyYW5zaXRpb24gbm90IGZvdW5kIik7cmV0dXJuIFZufWZ1bmN0aW9uIGRlKEd0LGtuKXt2YXIgZW4sSW4sb3IsVm49R3QuX190cmFuc2l0''@;'; + put 'put ''aW9uLEpuPSEwO2lmKFZuKXtmb3Iob3IgaW4ga249bnVsbD09a24/bnVsbDprbisiIixWbikoZW49Vm5bb3JdKS5uYW1lPT09a24/KEluPWVuLnN0YXRlPjImJmVuLnN0YXRlPDUsZW4uc3RhdGU9Nixlbi50aW1lci5zdG9wKCksZW4ub24uY2FsbChJbj8iaW50ZXJydXB0IjoiY2FuY2VsIixH''@;'; + put 'put ''dCxHdC5fX2RhdGFfXyxlbi5pbmRleCxlbi5ncm91cCksZGVsZXRlIFZuW29yXSk6Sm49ITE7Sm4mJmRlbGV0ZSBHdC5fX3RyYW5zaXRpb259fXZhciBBZT1MKDc1MzQ5KSxrZT1MKDM2MTc1KTtmdW5jdGlvbiBTZShHdCxrbil7dmFyIFZuLGVuO3JldHVybiBmdW5jdGlvbigpe3ZhciBJbj1z''@;'; + put 'put ''ZSh0aGlzLEd0KSxKbj1Jbi50d2VlbjtpZihKbiE9PVZuKWZvcih2YXIgb3I9MCxncj0oZW49Vm49Sm4pLmxlbmd0aDtvcjxncjsrK29yKWlmKGVuW29yXS5uYW1lPT09a24peyhlbj1lbi5zbGljZSgpKS5zcGxpY2Uob3IsMSk7YnJlYWt9SW4udHdlZW49ZW59fWZ1bmN0aW9uIEllKEd0LGtu''@;'; + put 'put ''LFZuKXt2YXIgZW4sSW47aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFZuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgSm49c2UodGhpcyxHdCksb3I9Sm4udHdlZW47aWYob3IhPT1lbil7SW49KGVuPW9yKS5zbGljZSgpO2Zvcih2YXIgZ3I9e25hbWU6a24sdmFsdWU6Vm59''@;'; + put 'put ''LEtyPTAsVnI9SW4ubGVuZ3RoO0tyPFZyOysrS3IpaWYoSW5bS3JdLm5hbWU9PT1rbil7SW5bS3JdPWdyO2JyZWFrfUtyPT09VnImJkluLnB1c2goZ3IpfUpuLnR3ZWVuPUlufX1mdW5jdGlvbiBFZShHdCxrbixWbil7dmFyIGVuPUd0Ll9pZDtyZXR1cm4gR3QuZWFjaChmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciBJbj1zZSh0aGlzLGVuKTsoSW4udmFsdWV8fChJbi52YWx1ZT17fSkpW2tuXT1Wbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxmdW5jdGlvbihJbil7cmV0dXJuIG9lKEluLGVuKS52YWx1ZVtrbl19fXZhciBoZT1MKDUyNzg2KSxPPUwoNjczOCksej1MKDg2ODExKSxuZT1MKDIzMDk2KTtm''@;'; + put 'put ''dW5jdGlvbiB0ZShHdCxrbil7dmFyIFZuO3JldHVybigibnVtYmVyIj09dHlwZW9mIGtuP08uWjprbiBpbnN0YW5jZW9mIGhlLlpQP3ouWlA6KFZuPSgwLGhlLlpQKShrbikpPyhrbj1Wbix6LlpQKTpuZS5aKShHdCxrbil9ZnVuY3Rpb24geChHdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5y''@;'; + put 'put ''ZW1vdmVBdHRyaWJ1dGUoR3QpfX1mdW5jdGlvbiBQKEd0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKEd0LnNwYWNlLEd0LmxvY2FsKX19ZnVuY3Rpb24gVihHdCxrbixWbil7dmFyIGVuLEpuLEluPVZuKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBvcj10aGlz''@;'; + put 'put ''LmdldEF0dHJpYnV0ZShHdCk7cmV0dXJuIG9yPT09SW4/bnVsbDpvcj09PWVuP0puOkpuPWtuKGVuPW9yLFZuKX19ZnVuY3Rpb24gVChHdCxrbixWbil7dmFyIGVuLEpuLEluPVZuKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBvcj10aGlzLmdldEF0dHJpYnV0ZU5TKEd0LnNwYWNlLEd0Lmxv''@;'; + put 'put ''Y2FsKTtyZXR1cm4gb3I9PT1Jbj9udWxsOm9yPT09ZW4/Sm46Sm49a24oZW49b3IsVm4pfX1mdW5jdGlvbiBTKEd0LGtuLFZuKXt2YXIgZW4sSW4sSm47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG9yLEtyLGdyPVZuKHRoaXMpO3JldHVybiBudWxsPT1ncj92b2lkIHRoaXMucmVtb3ZlQXR0cmli''@;'; + put 'put ''dXRlKEd0KToob3I9dGhpcy5nZXRBdHRyaWJ1dGUoR3QpKT09PShLcj1ncisiIik/bnVsbDpvcj09PWVuJiZLcj09PUluP0puOihJbj1LcixKbj1rbihlbj1vcixncikpfX1mdW5jdGlvbiBGKEd0LGtuLFZuKXt2YXIgZW4sSW4sSm47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG9yLEtyLGdyPVZu''@;'; + put 'put ''KHRoaXMpO3JldHVybiBudWxsPT1ncj92b2lkIHRoaXMucmVtb3ZlQXR0cmlidXRlTlMoR3Quc3BhY2UsR3QubG9jYWwpOihvcj10aGlzLmdldEF0dHJpYnV0ZU5TKEd0LnNwYWNlLEd0LmxvY2FsKSk9PT0oS3I9Z3IrIiIpP251bGw6b3I9PT1lbiYmS3I9PT1Jbj9KbjooSW49S3IsSm49a24o''@;'; + put 'put ''ZW49b3IsZ3IpKX19ZnVuY3Rpb24gQ2UoR3Qsa24pe3JldHVybiBmdW5jdGlvbihWbil7dGhpcy5zZXRBdHRyaWJ1dGUoR3Qsa24uY2FsbCh0aGlzLFZuKSl9fWZ1bmN0aW9uIERlKEd0LGtuKXtyZXR1cm4gZnVuY3Rpb24oVm4pe3RoaXMuc2V0QXR0cmlidXRlTlMoR3Quc3BhY2UsR3QubG9j''@;'; + put 'put ''YWwsa24uY2FsbCh0aGlzLFZuKSl9fWZ1bmN0aW9uIFBlKEd0LGtuKXt2YXIgVm4sZW47ZnVuY3Rpb24gSW4oKXt2YXIgSm49a24uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBKbiE9PWVuJiYoVm49KGVuPUpuKSYmRGUoR3QsSm4pKSxWbn1yZXR1cm4gSW4uX3ZhbHVlPWtuLElufWZ1''@;'; + put 'put ''bmN0aW9uIFFlKEd0LGtuKXt2YXIgVm4sZW47ZnVuY3Rpb24gSW4oKXt2YXIgSm49a24uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBKbiE9PWVuJiYoVm49KGVuPUpuKSYmQ2UoR3QsSm4pKSxWbn1yZXR1cm4gSW4uX3ZhbHVlPWtuLElufWZ1bmN0aW9uIGd0KEd0LGtuKXtyZXR1cm4g''@;'; + put 'put ''ZnVuY3Rpb24oKXtKKHRoaXMsR3QpLmRlbGF5PStrbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIHd0KEd0LGtuKXtyZXR1cm4ga249K2tuLGZ1bmN0aW9uKCl7Sih0aGlzLEd0KS5kZWxheT1rbn19ZnVuY3Rpb24gQXQoR3Qsa24pe3JldHVybiBmdW5jdGlvbigpe3NlKHRoaXMs''@;'; + put 'put ''R3QpLmR1cmF0aW9uPStrbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIG10KEd0LGtuKXtyZXR1cm4ga249K2tuLGZ1bmN0aW9uKCl7c2UodGhpcyxHdCkuZHVyYXRpb249a259fWZ1bmN0aW9uIEJ0KEd0LGtuKXtpZigiZnVuY3Rpb24iIT10eXBlb2Yga24pdGhyb3cgbmV3IEVy''@;'; + put 'put ''cm9yO3JldHVybiBmdW5jdGlvbigpe3NlKHRoaXMsR3QpLmVhc2U9a259fXZhciBfdD1MKDk3OTA1KTtmdW5jdGlvbiBMdChHdCxrbixWbil7dmFyIGVuLEluLEpuPWZ1bmN0aW9uIGF0KEd0KXtyZXR1cm4oR3QrIiIpLnRyaW0oKS5zcGxpdCgvXnxccysvKS5ldmVyeShmdW5jdGlvbihrbil7''@;'; + put 'put ''dmFyIFZuPWtuLmluZGV4T2YoIi4iKTtyZXR1cm4gVm4+PTAmJihrbj1rbi5zbGljZSgwLFZuKSksIWtufHwic3RhcnQiPT09a259KX0oa24pP0o6c2U7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG9yPUpuKHRoaXMsR3QpLGdyPW9yLm9uO2dyIT09ZW4mJihJbj0oZW49Z3IpLmNvcHkoKSkub24o''@;'; + put 'put ''a24sVm4pLG9yLm9uPUlufX12YXIgR2U9TCgyOTc0MikseXQ9TCgzMjAzNyksUXQ9bWUuWlAucHJvdG90eXBlLmNvbnN0cnVjdG9yLGRuPUwoMjQ0NzYpO2Z1bmN0aW9uIGxuKEd0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KEd0KX19ZnVuY3Rpb24gWG4o''@;'; + put 'put ''R3Qsa24sVm4pe3JldHVybiBmdW5jdGlvbihlbil7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShHdCxrbi5jYWxsKHRoaXMsZW4pLFZuKX19ZnVuY3Rpb24gRnIoR3Qsa24sVm4pe3ZhciBlbixJbjtmdW5jdGlvbiBKbigpe3ZhciBvcj1rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG9y''@;'; + put 'put ''IT09SW4mJihlbj0oSW49b3IpJiZYbihHdCxvcixWbikpLGVufXJldHVybiBKbi5fdmFsdWU9a24sSm59ZnVuY3Rpb24gQW4oR3Qpe3JldHVybiBmdW5jdGlvbihrbil7dGhpcy50ZXh0Q29udGVudD1HdC5jYWxsKHRoaXMsa24pfX1mdW5jdGlvbiBxbihHdCl7dmFyIGtuLFZuO2Z1bmN0aW9u''@;'; + put 'put ''IGVuKCl7dmFyIEluPUd0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gSW4hPT1WbiYmKGtuPShWbj1JbikmJkFuKEluKSksa259cmV0dXJuIGVuLl92YWx1ZT1HdCxlbn12YXIgTnQ9MDtmdW5jdGlvbiBzbihHdCxrbixWbixlbil7dGhpcy5fZ3JvdXBzPUd0LHRoaXMuX3BhcmVudHM9''@;'; + put 'put ''a24sdGhpcy5fbmFtZT1Wbix0aGlzLl9pZD1lbn1mdW5jdGlvbiBVbihHdCl7cmV0dXJuKDAsbWUuWlApKCkudHJhbnNpdGlvbihHdCl9ZnVuY3Rpb24gd24oKXtyZXR1cm4rK050fXZhciB0bj1tZS5aUC5wcm90b3R5cGU7c24ucHJvdG90eXBlPVVuLnByb3RvdHlwZT17Y29uc3RydWN0b3I6''@;'; + put 'put ''c24sc2VsZWN0OmZ1bmN0aW9uIFVlKEd0KXt2YXIga249dGhpcy5fbmFtZSxWbj10aGlzLl9pZDsiZnVuY3Rpb24iIT10eXBlb2YgR3QmJihHdD0oMCxHZS5aKShHdCkpO2Zvcih2YXIgZW49dGhpcy5fZ3JvdXBzLEluPWVuLmxlbmd0aCxKbj1uZXcgQXJyYXkoSW4pLG9yPTA7b3I8SW47Kytv''@;'; + put 'put ''cilmb3IodmFyIGlpLFJyLGdyPWVuW29yXSxLcj1nci5sZW5ndGgsVnI9Sm5bb3JdPW5ldyBBcnJheShLciksbGk9MDtsaTxLcjsrK2xpKShpaT1ncltsaV0pJiYoUnI9R3QuY2FsbChpaSxpaS5fX2RhdGFfXyxsaSxncikpJiYoIl9fZGF0YV9fImluIGlpJiYoUnIuX19kYXRhX189aWkuX19k''@;'; + put 'put ''YXRhX18pLFZyW2xpXT1ScixxKFZyW2xpXSxrbixWbixsaSxWcixvZShpaSxWbikpKTtyZXR1cm4gbmV3IHNuKEpuLHRoaXMuX3BhcmVudHMsa24sVm4pfSxzZWxlY3RBbGw6ZnVuY3Rpb24ganQoR3Qpe3ZhciBrbj10aGlzLl9uYW1lLFZuPXRoaXMuX2lkOyJmdW5jdGlvbiIhPXR5cGVvZiBH''@;'; + put 'put ''dCYmKEd0PSgwLHl0LlopKEd0KSk7Zm9yKHZhciBlbj10aGlzLl9ncm91cHMsSW49ZW4ubGVuZ3RoLEpuPVtdLG9yPVtdLGdyPTA7Z3I8SW47Kytncilmb3IodmFyIGlpLEtyPWVuW2dyXSxWcj1Lci5sZW5ndGgsUnI9MDtScjxWcjsrK1JyKWlmKGlpPUtyW1JyXSl7Zm9yKHZhciBNaSxsaT1H''@;'; + put 'put ''dC5jYWxsKGlpLGlpLl9fZGF0YV9fLFJyLEtyKSxvMD1vZShpaSxWbiksbjA9MCxkMD1saS5sZW5ndGg7bjA8ZDA7KytuMCkoTWk9bGlbbjBdKSYmcShNaSxrbixWbixuMCxsaSxvMCk7Sm4ucHVzaChsaSksb3IucHVzaChpaSl9cmV0dXJuIG5ldyBzbihKbixvcixrbixWbil9LGZpbHRlcjpm''@;'; + put 'put ''dW5jdGlvbiB0dChHdCl7ImZ1bmN0aW9uIiE9dHlwZW9mIEd0JiYoR3Q9KDAsX3QuWikoR3QpKTtmb3IodmFyIGtuPXRoaXMuX2dyb3VwcyxWbj1rbi5sZW5ndGgsZW49bmV3IEFycmF5KFZuKSxJbj0wO0luPFZuOysrSW4pZm9yKHZhciBLcixKbj1rbltJbl0sb3I9Sm4ubGVuZ3RoLGdyPWVu''@;'; + put 'put ''W0luXT1bXSxWcj0wO1ZyPG9yOysrVnIpKEtyPUpuW1ZyXSkmJkd0LmNhbGwoS3IsS3IuX19kYXRhX18sVnIsSm4pJiZnci5wdXNoKEtyKTtyZXR1cm4gbmV3IHNuKGVuLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LG1lcmdlOmZ1bmN0aW9uIGV0KEd0KXtpZihHdC5faWQh''@;'; + put 'put ''PT10aGlzLl9pZCl0aHJvdyBuZXcgRXJyb3I7Zm9yKHZhciBrbj10aGlzLl9ncm91cHMsVm49R3QuX2dyb3Vwcyxlbj1rbi5sZW5ndGgsSm49TWF0aC5taW4oZW4sVm4ubGVuZ3RoKSxvcj1uZXcgQXJyYXkoZW4pLGdyPTA7Z3I8Sm47Kytncilmb3IodmFyIGxpLEtyPWtuW2dyXSxWcj1Wbltn''@;'; + put 'put ''cl0saWk9S3IubGVuZ3RoLFJyPW9yW2dyXT1uZXcgQXJyYXkoaWkpLE1pPTA7TWk8aWk7KytNaSkobGk9S3JbTWldfHxWcltNaV0pJiYoUnJbTWldPWxpKTtmb3IoO2dyPGVuOysrZ3Ipb3JbZ3JdPWtuW2dyXTtyZXR1cm4gbmV3IHNuKG9yLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlz''@;'; + put 'put ''Ll9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbiBnbigpe3JldHVybiBuZXcgUXQodGhpcy5fZ3JvdXBzLHRoaXMuX3BhcmVudHMpfSx0cmFuc2l0aW9uOmZ1bmN0aW9uIHBuKCl7Zm9yKHZhciBHdD10aGlzLl9uYW1lLGtuPXRoaXMuX2lkLFZuPXduKCksZW49dGhpcy5fZ3JvdXBzLEluPWVuLmxl''@;'; + put 'put ''bmd0aCxKbj0wO0puPEluOysrSm4pZm9yKHZhciBLcixvcj1lbltKbl0sZ3I9b3IubGVuZ3RoLFZyPTA7VnI8Z3I7KytWcilpZihLcj1vcltWcl0pe3ZhciBpaT1vZShLcixrbik7cShLcixHdCxWbixWcixvcix7dGltZTppaS50aW1lK2lpLmRlbGF5K2lpLmR1cmF0aW9uLGRlbGF5OjAsZHVy''@;'; + put 'put ''YXRpb246aWkuZHVyYXRpb24sZWFzZTppaS5lYXNlfSl9cmV0dXJuIG5ldyBzbihlbix0aGlzLl9wYXJlbnRzLEd0LFZuKX0sY2FsbDp0bi5jYWxsLG5vZGVzOnRuLm5vZGVzLG5vZGU6dG4ubm9kZSxzaXplOnRuLnNpemUsZW1wdHk6dG4uZW1wdHksZWFjaDp0bi5lYWNoLG9uOmZ1bmN0aW9u''@;'; + put 'put ''IEN0KEd0LGtuKXt2YXIgVm49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9vZSh0aGlzLm5vZGUoKSxWbikub24ub24oR3QpOnRoaXMuZWFjaChMdChWbixHdCxrbikpfSxhdHRyOmZ1bmN0aW9uIHllKEd0LGtuKXt2YXIgVm49KDAsa2UuWikoR3QpLGVuPSJ0cmFuc2Zvcm0i''@;'; + put 'put ''PT09Vm4/QWUudzp0ZTtyZXR1cm4gdGhpcy5hdHRyVHdlZW4oR3QsImZ1bmN0aW9uIj09dHlwZW9mIGtuPyhWbi5sb2NhbD9GOlMpKFZuLGVuLEVlKHRoaXMsImF0dHIuIitHdCxrbikpOm51bGw9PWtuPyhWbi5sb2NhbD9QOngpKFZuKTooVm4ubG9jYWw/VDpWKShWbixlbixrbikpfSxhdHRy''@;'; + put 'put ''VHdlZW46ZnVuY3Rpb24gJGUoR3Qsa24pe3ZhciBWbj0iYXR0ci4iK0d0O2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4oVm49dGhpcy50d2VlbihWbikpJiZWbi5fdmFsdWU7aWYobnVsbD09a24pcmV0dXJuIHRoaXMudHdlZW4oVm4sbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGtu''@;'; + put 'put ''KXRocm93IG5ldyBFcnJvcjt2YXIgZW49KDAsa2UuWikoR3QpO3JldHVybiB0aGlzLnR3ZWVuKFZuLChlbi5sb2NhbD9QZTpRZSkoZW4sa24pKX0sc3R5bGU6ZnVuY3Rpb24gc3IoR3Qsa24sVm4pe3ZhciBlbj0idHJhbnNmb3JtIj09KEd0Kz0iIik/QWUuWTp0ZTtyZXR1cm4gbnVsbD09a24/''@;'; + put 'put ''dGhpcy5zdHlsZVR3ZWVuKEd0LGZ1bmN0aW9uIHluKEd0LGtuKXt2YXIgVm4sZW4sSW47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEpuPSgwLGRuLlMpKHRoaXMsR3QpLG9yPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KEd0KSwoMCxkbi5TKSh0aGlzLEd0KSk7cmV0dXJuIEpuPT09b3I/bnVs''@;'; + put 'put ''bDpKbj09PVZuJiZvcj09PWVuP0luOkluPWtuKFZuPUpuLGVuPW9yKX19KEd0LGVuKSkub24oImVuZC5zdHlsZS4iK0d0LGxuKEd0KSk6ImZ1bmN0aW9uIj09dHlwZW9mIGtuP3RoaXMuc3R5bGVUd2VlbihHdCxmdW5jdGlvbiBibihHdCxrbixWbil7dmFyIGVuLEluLEpuO3JldHVybiBmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciBvcj0oMCxkbi5TKSh0aGlzLEd0KSxncj1Wbih0aGlzKSxLcj1ncisiIjtyZXR1cm4gbnVsbD09Z3ImJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KEd0KSxLcj1ncj0oMCxkbi5TKSh0aGlzLEd0KSksb3I9PT1Lcj9udWxsOm9yPT09ZW4mJktyPT09SW4/Sm46KEluPUty''@;'; + put 'put ''LEpuPWtuKGVuPW9yLGdyKSl9fShHdCxlbixFZSh0aGlzLCJzdHlsZS4iK0d0LGtuKSkpLmVhY2goZnVuY3Rpb24gZXIoR3Qsa24pe3ZhciBWbixlbixJbixncixKbj0ic3R5bGUuIitrbixvcj0iZW5kLiIrSm47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEtyPXNlKHRoaXMsR3QpLFZyPUtyLm9u''@;'; + put 'put ''LGlpPW51bGw9PUtyLnZhbHVlW0puXT9ncnx8KGdyPWxuKGtuKSk6dm9pZCAwOyhWciE9PVZufHxJbiE9PWlpKSYmKGVuPShWbj1WcikuY29weSgpKS5vbihvcixJbj1paSksS3Iub249ZW59fSh0aGlzLl9pZCxHdCkpOnRoaXMuc3R5bGVUd2VlbihHdCxmdW5jdGlvbiBObihHdCxrbixWbil7''@;'; + put 'put ''dmFyIGVuLEpuLEluPVZuKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciBvcj0oMCxkbi5TKSh0aGlzLEd0KTtyZXR1cm4gb3I9PT1Jbj9udWxsOm9yPT09ZW4/Sm46Sm49a24oZW49b3IsVm4pfX0oR3QsZW4sa24pLFZuKS5vbigiZW5kLnN0eWxlLiIrR3QsbnVsbCl9LHN0eWxlVHdlZW46ZnVu''@;'; + put 'put ''Y3Rpb24geHIoR3Qsa24sVm4pe3ZhciBlbj0ic3R5bGUuIisoR3QrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGVuPXRoaXMudHdlZW4oZW4pKSYmZW4uX3ZhbHVlO2lmKG51bGw9PWtuKXJldHVybiB0aGlzLnR3ZWVuKGVuLG51bGwpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBr''@;'; + put 'put ''bil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oZW4sRnIoR3Qsa24sbnVsbD09Vm4/IiI6Vm4pKX0sdGV4dDpmdW5jdGlvbiBucihHdCl7cmV0dXJuIHRoaXMudHdlZW4oInRleHQiLCJmdW5jdGlvbiI9PXR5cGVvZiBHdD9mdW5jdGlvbiBwcihHdCl7cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''KCl7dmFyIGtuPUd0KHRoaXMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09a24/IiI6a259fShFZSh0aGlzLCJ0ZXh0IixHdCkpOmZ1bmN0aW9uIHF0KEd0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PUd0fX0obnVsbD09R3Q/IiI6R3QrIiIpKX0sdGV4dFR3ZWVuOmZ1bmN0''@;'; + put 'put ''aW9uIFd0KEd0KXt2YXIga249InRleHQiO2lmKGFyZ3VtZW50cy5sZW5ndGg8MSlyZXR1cm4oa249dGhpcy50d2VlbihrbikpJiZrbi5fdmFsdWU7aWYobnVsbD09R3QpcmV0dXJuIHRoaXMudHdlZW4oa24sbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEd0KXRocm93IG5ldyBFcnJvcjty''@;'; + put 'put ''ZXR1cm4gdGhpcy50d2VlbihrbixxbihHdCkpfSxyZW1vdmU6ZnVuY3Rpb24gSHQoKXtyZXR1cm4gdGhpcy5vbigiZW5kLnJlbW92ZSIsZnVuY3Rpb24gZnQoR3Qpe3JldHVybiBmdW5jdGlvbigpe3ZhciBrbj10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBWbiBpbiB0aGlzLl9fdHJhbnNpdGlv''@;'; + put 'put ''bilpZigrVm4hPT1HdClyZXR1cm47a24mJmtuLnJlbW92ZUNoaWxkKHRoaXMpfX0odGhpcy5faWQpKX0sdHdlZW46ZnVuY3Rpb24gVGUoR3Qsa24pe3ZhciBWbj10aGlzLl9pZDtpZihHdCs9IiIsYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIG9yLGVuPW9lKHRoaXMubm9kZSgpLFZuKS50''@;'; + put 'put ''d2VlbixJbj0wLEpuPWVuLmxlbmd0aDtJbjxKbjsrK0luKWlmKChvcj1lbltJbl0pLm5hbWU9PT1HdClyZXR1cm4gb3IudmFsdWU7cmV0dXJuIG51bGx9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09a24/U2U6SWUpKFZuLEd0LGtuKSl9LGRlbGF5OmZ1bmN0aW9uIHZ0KEd0KXt2YXIga249dGhp''@;'; + put 'put ''cy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgR3Q/Z3Q6d3QpKGtuLEd0KSk6b2UodGhpcy5ub2RlKCksa24pLmRlbGF5fSxkdXJhdGlvbjpmdW5jdGlvbiBodChHdCl7dmFyIGtuPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVu''@;'; + put 'put ''Z3RoP3RoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIEd0P0F0Om10KShrbixHdCkpOm9lKHRoaXMubm9kZSgpLGtuKS5kdXJhdGlvbn0sZWFzZTpmdW5jdGlvbiBvbihHdCl7dmFyIGtuPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChCdChrbixHdCkpOm9l''@;'; + put 'put ''KHRoaXMubm9kZSgpLGtuKS5lYXNlfSxlbmQ6ZnVuY3Rpb24gS24oKXt2YXIgR3Qsa24sVm49dGhpcyxlbj1Wbi5faWQsSW49Vm4uc2l6ZSgpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihKbixvcil7dmFyIGdyPXt2YWx1ZTpvcn0sS3I9e3ZhbHVlOmZ1bmN0aW9uKCl7MD09LS1JbiYm''@;'; + put 'put ''Sm4oKX19O1ZuLmVhY2goZnVuY3Rpb24oKXt2YXIgVnI9c2UodGhpcyxlbiksaWk9VnIub247aWkhPT1HdCYmKChrbj0oR3Q9aWkpLmNvcHkoKSkuXy5jYW5jZWwucHVzaChnciksa24uXy5pbnRlcnJ1cHQucHVzaChnciksa24uXy5lbmQucHVzaChLcikpLFZyLm9uPWtufSl9KX19O3ZhciBr''@;'; + put 'put ''cj17dGltZTpudWxsLGRlbGF5OjAsZHVyYXRpb246MjUwLGVhc2U6ZnVuY3Rpb24gQm4oR3Qpe3JldHVybigoR3QqPTIpPD0xP0d0Kkd0Kkd0OihHdC09MikqR3QqR3QrMikvMn19O2Z1bmN0aW9uIG1uKEd0LGtuKXtmb3IodmFyIFZuOyEoVm49R3QuX190cmFuc2l0aW9uKXx8IShWbj1Wbltr''@;'; + put 'put ''bl0pOylpZighKEd0PUd0LnBhcmVudE5vZGUpKXJldHVybiBrci50aW1lPSgwLEUuek8pKCksa3I7cmV0dXJuIFZufW1lLlpQLnByb3RvdHlwZS5pbnRlcnJ1cHQ9ZnVuY3Rpb24gdmUoR3Qpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkZSh0aGlzLEd0KX0pfSxtZS5aUC5wcm90b3R5''@;'; + put 'put ''cGUudHJhbnNpdGlvbj1mdW5jdGlvbiB1bihHdCl7dmFyIGtuLFZuO0d0IGluc3RhbmNlb2Ygc24/KGtuPUd0Ll9pZCxHdD1HdC5fbmFtZSk6KGtuPXduKCksKFZuPWtyKS50aW1lPSgwLEUuek8pKCksR3Q9bnVsbD09R3Q/bnVsbDpHdCsiIik7Zm9yKHZhciBlbj10aGlzLl9ncm91cHMsSW49''@;'; + put 'put ''ZW4ubGVuZ3RoLEpuPTA7Sm48SW47KytKbilmb3IodmFyIEtyLG9yPWVuW0puXSxncj1vci5sZW5ndGgsVnI9MDtWcjxncjsrK1ZyKShLcj1vcltWcl0pJiZxKEtyLEd0LGtuLFZyLG9yLFZufHxtbihLcixrbikpO3JldHVybiBuZXcgc24oZW4sdGhpcy5fcGFyZW50cyxHdCxrbil9O3ZhciBj''@;'; + put 'put ''bj1bbnVsbF07ZnVuY3Rpb24gX24oR3Qsa24pe3ZhciBlbixJbixWbj1HdC5fX3RyYW5zaXRpb247aWYoVm4pZm9yKEluIGluIGtuPW51bGw9PWtuP251bGw6a24rIiIsVm4paWYoKGVuPVZuW0luXSkuc3RhdGU+MSYmZW4ubmFtZT09PWtuKXJldHVybiBuZXcgc24oW1tHdF1dLGNuLGtuLCtJ''@;'; + put 'put ''bik7cmV0dXJuIG51bGx9fSw3NTgyNzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5yKEplKSxMLmQoSmUse3pvb206KCk9PlRlLHpvb21JZGVudGl0eTooKT0+Six6b29tVHJhbnNmb3JtOigpPT5zZX0pO3ZhciBtZT1MKDI1OTIyKSxCPUwoNTIwMTYpLEU9TCg2MTc0Nik7ZnVuY3Rpb24g''@;'; + put 'put ''VSgpe0UuQi5wcmV2ZW50RGVmYXVsdCgpLEUuQi5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBRKEVlKXt2YXIgaGU9RWUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LE89KDAsQi5aKShFZSkub24oImRyYWdzdGFydC5kcmFnIixVLCEwKTsib25zZWxlY3RzdGFydCJpbiBo''@;'; + put 'put ''ZT9PLm9uKCJzZWxlY3RzdGFydC5kcmFnIixVLCEwKTooaGUuX19ub3NlbGVjdD1oZS5zdHlsZS5Nb3pVc2VyU2VsZWN0LGhlLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiKX1mdW5jdGlvbiBaKEVlLGhlKXt2YXIgTz1FZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsej0oMCxCLlopKEVl''@;'; + put 'put ''KS5vbigiZHJhZ3N0YXJ0LmRyYWciLG51bGwpO2hlJiYoei5vbigiY2xpY2suZHJhZyIsVSwhMCksc2V0VGltZW91dChmdW5jdGlvbigpe3oub24oImNsaWNrLmRyYWciLG51bGwpfSwwKSksIm9uc2VsZWN0c3RhcnQiaW4gTz96Lm9uKCJzZWxlY3RzdGFydC5kcmFnIixudWxsKTooTy5zdHls''@;'; + put 'put ''ZS5Nb3pVc2VyU2VsZWN0PU8uX19ub3NlbGVjdCxkZWxldGUgTy5fX25vc2VsZWN0KX12YXIgaWU9TCg3NjI1NyksbGU9TCg2NjA3MyksWT1MKDMwMjU2KSxXPUwoNDA4MjIpO2Z1bmN0aW9uIE4oRWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBFZX19ZnVuY3Rpb24gZWUoRWUsaGUsTyl7''@;'; + put 'put ''dGhpcy50YXJnZXQ9RWUsdGhpcy50eXBlPWhlLHRoaXMudHJhbnNmb3JtPU99ZnVuY3Rpb24gcShFZSxoZSxPKXt0aGlzLms9RWUsdGhpcy54PWhlLHRoaXMueT1PfXEucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpxLHNjYWxlOmZ1bmN0aW9uKEVlKXtyZXR1cm4gMT09PUVlP3RoaXM6bmV3IHEo''@;'; + put 'put ''dGhpcy5rKkVlLHRoaXMueCx0aGlzLnkpfSx0cmFuc2xhdGU6ZnVuY3Rpb24oRWUsaGUpe3JldHVybiAwPT09RWUmMD09PWhlP3RoaXM6bmV3IHEodGhpcy5rLHRoaXMueCt0aGlzLmsqRWUsdGhpcy55K3RoaXMuaypoZSl9LGFwcGx5OmZ1bmN0aW9uKEVlKXtyZXR1cm5bRWVbMF0qdGhpcy5r''@;'; + put 'put ''K3RoaXMueCxFZVsxXSp0aGlzLmsrdGhpcy55XX0sYXBwbHlYOmZ1bmN0aW9uKEVlKXtyZXR1cm4gRWUqdGhpcy5rK3RoaXMueH0sYXBwbHlZOmZ1bmN0aW9uKEVlKXtyZXR1cm4gRWUqdGhpcy5rK3RoaXMueX0saW52ZXJ0OmZ1bmN0aW9uKEVlKXtyZXR1cm5bKEVlWzBdLXRoaXMueCkvdGhp''@;'; + put 'put ''cy5rLChFZVsxXS10aGlzLnkpL3RoaXMua119LGludmVydFg6ZnVuY3Rpb24oRWUpe3JldHVybihFZS10aGlzLngpL3RoaXMua30saW52ZXJ0WTpmdW5jdGlvbihFZSl7cmV0dXJuKEVlLXRoaXMueSkvdGhpcy5rfSxyZXNjYWxlWDpmdW5jdGlvbihFZSl7cmV0dXJuIEVlLmNvcHkoKS5kb21h''@;'; + put 'put ''aW4oRWUucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRYLHRoaXMpLm1hcChFZS5pbnZlcnQsRWUpKX0scmVzY2FsZVk6ZnVuY3Rpb24oRWUpe3JldHVybiBFZS5jb3B5KCkuZG9tYWluKEVlLnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WSx0aGlzKS5tYXAoRWUuaW52ZXJ0LEVlKSl9LHRvU3RyaW5n''@;'; + put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuInRyYW5zbGF0ZSgiK3RoaXMueCsiLCIrdGhpcy55KyIpIHNjYWxlKCIrdGhpcy5rKyIpIn19O3ZhciBKPW5ldyBxKDEsMCwwKTtmdW5jdGlvbiBzZShFZSl7Zm9yKDshRWUuX196b29tOylpZighKEVlPUVlLnBhcmVudE5vZGUpKXJldHVybiBKO3JldHVybiBF''@;'; + put 'put ''ZS5fX3pvb219ZnVuY3Rpb24gb2UoKXtFLkIuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gY2UoKXtFLkIucHJldmVudERlZmF1bHQoKSxFLkIuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gZGUoKXtyZXR1cm4hRS5CLmN0cmxLZXkmJiFFLkIuYnV0dG9u''@;'; + put 'put ''fWZ1bmN0aW9uIHZlKCl7dmFyIEVlPXRoaXM7cmV0dXJuIEVlIGluc3RhbmNlb2YgU1ZHRWxlbWVudD8oRWU9RWUub3duZXJTVkdFbGVtZW50fHxFZSkuaGFzQXR0cmlidXRlKCJ2aWV3Qm94Iik/W1soRWU9RWUudmlld0JveC5iYXNlVmFsKS54LEVlLnldLFtFZS54K0VlLndpZHRoLEVlLnkr''@;'; + put 'put ''RWUuaGVpZ2h0XV06W1swLDBdLFtFZS53aWR0aC5iYXNlVmFsLnZhbHVlLEVlLmhlaWdodC5iYXNlVmFsLnZhbHVlXV06W1swLDBdLFtFZS5jbGllbnRXaWR0aCxFZS5jbGllbnRIZWlnaHRdXX1mdW5jdGlvbiBBZSgpe3JldHVybiB0aGlzLl9fem9vbXx8Sn1mdW5jdGlvbiBrZSgpe3JldHVy''@;'; + put 'put ''bi1FLkIuZGVsdGFZKigxPT09RS5CLmRlbHRhTW9kZT8uMDU6RS5CLmRlbHRhTW9kZT8xOi4wMDIpfWZ1bmN0aW9uIFNlKCl7cmV0dXJuIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50c3x8Im9udG91Y2hzdGFydCJpbiB0aGlzfWZ1bmN0aW9uIEllKEVlLGhlLE8pe3ZhciB6PUVlLmludmVydFgo''@;'; + put 'put ''aGVbMF1bMF0pLU9bMF1bMF0sbmU9RWUuaW52ZXJ0WChoZVsxXVswXSktT1sxXVswXSx0ZT1FZS5pbnZlcnRZKGhlWzBdWzFdKS1PWzBdWzFdLHg9RWUuaW52ZXJ0WShoZVsxXVsxXSktT1sxXVsxXTtyZXR1cm4gRWUudHJhbnNsYXRlKG5lPno/KHorbmUpLzI6TWF0aC5taW4oMCx6KXx8TWF0''@;'; + put 'put ''aC5tYXgoMCxuZSkseD50ZT8odGUreCkvMjpNYXRoLm1pbigwLHRlKXx8TWF0aC5tYXgoMCx4KSl9ZnVuY3Rpb24gVGUoKXt2YXIgUyxGLEVlPWRlLGhlPXZlLE89SWUsej1rZSxuZT1TZSx0ZT1bMCwxLzBdLHg9W1stMS8wLC0xLzBdLFsxLzAsMS8wXV0sUD0yNTAsVj1pZS5aLFQ9KDAsbWUu''@;'; + put 'put ''WikoInN0YXJ0Iiwiem9vbSIsImVuZCIpLERlPTA7ZnVuY3Rpb24gUGUoZXQpe2V0LnByb3BlcnR5KCJfX3pvb20iLEFlKS5vbigid2hlZWwuem9vbSIsbXQpLm9uKCJtb3VzZWRvd24uem9vbSIsaHQpLm9uKCJkYmxjbGljay56b29tIixCdCkuZmlsdGVyKG5lKS5vbigidG91Y2hzdGFydC56''@;'; + put 'put ''b29tIixvbikub24oInRvdWNobW92ZS56b29tIixfdCkub24oInRvdWNoZW5kLnpvb20gdG91Y2hjYW5jZWwuem9vbSIsdHQpLnN0eWxlKCJ0b3VjaC1hY3Rpb24iLCJub25lIikuc3R5bGUoIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciIsInJnYmEoMCwwLDAsMCkiKX1mdW5jdGlvbiBR''@;'; + put 'put ''ZShldCxhdCl7cmV0dXJuKGF0PU1hdGgubWF4KHRlWzBdLE1hdGgubWluKHRlWzFdLGF0KSkpPT09ZXQuaz9ldDpuZXcgcShhdCxldC54LGV0LnkpfWZ1bmN0aW9uICRlKGV0LGF0LEx0KXt2YXIgQ3Q9YXRbMF0tTHRbMF0qZXQuayxmdD1hdFsxXS1MdFsxXSpldC5rO3JldHVybiBDdD09PWV0''@;'; + put 'put ''LngmJmZ0PT09ZXQueT9ldDpuZXcgcShldC5rLEN0LGZ0KX1mdW5jdGlvbiBndChldCl7cmV0dXJuWygrZXRbMF1bMF0rICtldFsxXVswXSkvMiwoK2V0WzBdWzFdKyArZXRbMV1bMV0pLzJdfWZ1bmN0aW9uIHd0KGV0LGF0LEx0KXtldC5vbigic3RhcnQuem9vbSIsZnVuY3Rpb24oKXt2dCh0''@;'; + put 'put ''aGlzLGFyZ3VtZW50cykuc3RhcnQoKX0pLm9uKCJpbnRlcnJ1cHQuem9vbSBlbmQuem9vbSIsZnVuY3Rpb24oKXt2dCh0aGlzLGFyZ3VtZW50cykuZW5kKCl9KS50d2Vlbigiem9vbSIsZnVuY3Rpb24oKXt2YXIgQ3Q9dGhpcyxmdD1hcmd1bWVudHMsSHQ9dnQoQ3QsZnQpLEdlPWhlLmFwcGx5''@;'; + put 'put ''KEN0LGZ0KSxVZT1udWxsPT1MdD9ndChHZSk6ImZ1bmN0aW9uIj09dHlwZW9mIEx0P0x0LmFwcGx5KEN0LGZ0KTpMdCx5dD1NYXRoLm1heChHZVsxXVswXS1HZVswXVswXSxHZVsxXVsxXS1HZVswXVsxXSksanQ9Q3QuX196b29tLFF0PSJmdW5jdGlvbiI9PXR5cGVvZiBhdD9hdC5hcHBseShD''@;'; + put 'put ''dCxmdCk6YXQsZ249VihqdC5pbnZlcnQoVWUpLmNvbmNhdCh5dC9qdC5rKSxRdC5pbnZlcnQoVWUpLmNvbmNhdCh5dC9RdC5rKSk7cmV0dXJuIGZ1bmN0aW9uKGRuKXtpZigxPT09ZG4pZG49UXQ7ZWxzZXt2YXIgeW49Z24oZG4pLGxuPXl0L3luWzJdO2RuPW5ldyBxKGxuLFVlWzBdLXluWzBd''@;'; + put 'put ''KmxuLFVlWzFdLXluWzFdKmxuKX1IdC56b29tKG51bGwsZG4pfX0pfWZ1bmN0aW9uIHZ0KGV0LGF0LEx0KXtyZXR1cm4hTHQmJmV0Ll9fem9vbWluZ3x8bmV3IEF0KGV0LGF0KX1mdW5jdGlvbiBBdChldCxhdCl7dGhpcy50aGF0PWV0LHRoaXMuYXJncz1hdCx0aGlzLmFjdGl2ZT0wLHRoaXMu''@;'; + put 'put ''ZXh0ZW50PWhlLmFwcGx5KGV0LGF0KSx0aGlzLnRhcHM9MH1mdW5jdGlvbiBtdCgpe2lmKEVlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGV0PXZ0KHRoaXMsYXJndW1lbnRzKSxhdD10aGlzLl9fem9vbSxMdD1NYXRoLm1heCh0ZVswXSxNYXRoLm1pbih0ZVsxXSxhdC5rKk1hdGgucG93''@;'; + put 'put ''KDIsei5hcHBseSh0aGlzLGFyZ3VtZW50cykpKSksQ3Q9KDAsbGUuWikodGhpcyk7aWYoZXQud2hlZWwpKGV0Lm1vdXNlWzBdWzBdIT09Q3RbMF18fGV0Lm1vdXNlWzBdWzFdIT09Q3RbMV0pJiYoZXQubW91c2VbMV09YXQuaW52ZXJ0KGV0Lm1vdXNlWzBdPUN0KSksY2xlYXJUaW1lb3V0KGV0''@;'; + put 'put ''LndoZWVsKTtlbHNle2lmKGF0Lms9PT1MdClyZXR1cm47ZXQubW91c2U9W0N0LGF0LmludmVydChDdCldLCgwLFcuaW50ZXJydXB0KSh0aGlzKSxldC5zdGFydCgpfWNlKCksZXQud2hlZWw9c2V0VGltZW91dChmdCwxNTApLGV0Lnpvb20oIm1vdXNlIixPKCRlKFFlKGF0LEx0KSxldC5tb3Vz''@;'; + put 'put ''ZVswXSxldC5tb3VzZVsxXSksZXQuZXh0ZW50LHgpKX1mdW5jdGlvbiBmdCgpe2V0LndoZWVsPW51bGwsZXQuZW5kKCl9fWZ1bmN0aW9uIGh0KCl7aWYoIUYmJkVlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGV0PXZ0KHRoaXMsYXJndW1lbnRzLCEwKSxhdD0oMCxCLlopKEUuQi52aWV3''@;'; + put 'put ''KS5vbigibW91c2Vtb3ZlLnpvb20iLEh0LCEwKS5vbigibW91c2V1cC56b29tIixHZSwhMCksTHQ9KDAsbGUuWikodGhpcyksQ3Q9RS5CLmNsaWVudFgsZnQ9RS5CLmNsaWVudFk7UShFLkIudmlldyksb2UoKSxldC5tb3VzZT1bTHQsdGhpcy5fX3pvb20uaW52ZXJ0KEx0KV0sKDAsVy5pbnRl''@;'; + put 'put ''cnJ1cHQpKHRoaXMpLGV0LnN0YXJ0KCl9ZnVuY3Rpb24gSHQoKXtpZihjZSgpLCFldC5tb3ZlZCl7dmFyIFVlPUUuQi5jbGllbnRYLUN0LHl0PUUuQi5jbGllbnRZLWZ0O2V0Lm1vdmVkPVVlKlVlK3l0Knl0PkRlfWV0Lnpvb20oIm1vdXNlIixPKCRlKGV0LnRoYXQuX196b29tLGV0Lm1vdXNl''@;'; + put 'put ''WzBdPSgwLGxlLlopKGV0LnRoYXQpLGV0Lm1vdXNlWzFdKSxldC5leHRlbnQseCkpfWZ1bmN0aW9uIEdlKCl7YXQub24oIm1vdXNlbW92ZS56b29tIG1vdXNldXAuem9vbSIsbnVsbCksWihFLkIudmlldyxldC5tb3ZlZCksY2UoKSxldC5lbmQoKX19ZnVuY3Rpb24gQnQoKXtpZihFZS5hcHBs''@;'; + put 'put ''eSh0aGlzLGFyZ3VtZW50cykpe3ZhciBldD10aGlzLl9fem9vbSxhdD0oMCxsZS5aKSh0aGlzKSxMdD1ldC5pbnZlcnQoYXQpLEN0PWV0LmsqKEUuQi5zaGlmdEtleT8uNToyKSxmdD1PKCRlKFFlKGV0LEN0KSxhdCxMdCksaGUuYXBwbHkodGhpcyxhcmd1bWVudHMpLHgpO2NlKCksUD4wPygw''@;'; + put 'put ''LEIuWikodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKFApLmNhbGwod3QsZnQsYXQpOigwLEIuWikodGhpcykuY2FsbChQZS50cmFuc2Zvcm0sZnQpfX1mdW5jdGlvbiBvbigpe2lmKEVlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIEN0LGZ0LEh0LEdlLGV0PUUuQi50b3VjaGVzLGF0''@;'; + put 'put ''PWV0Lmxlbmd0aCxMdD12dCh0aGlzLGFyZ3VtZW50cyxFLkIuY2hhbmdlZFRvdWNoZXMubGVuZ3RoPT09YXQpO2ZvcihvZSgpLGZ0PTA7ZnQ8YXQ7KytmdClHZT1bR2U9KDAsWS5aKSh0aGlzLGV0LChIdD1ldFtmdF0pLmlkZW50aWZpZXIpLHRoaXMuX196b29tLmludmVydChHZSksSHQuaWRl''@;'; + put 'put ''bnRpZmllcl0sTHQudG91Y2gwPyFMdC50b3VjaDEmJkx0LnRvdWNoMFsyXSE9PUdlWzJdJiYoTHQudG91Y2gxPUdlLEx0LnRhcHM9MCk6KEx0LnRvdWNoMD1HZSxDdD0hMCxMdC50YXBzPTErISFTKTtTJiYoUz1jbGVhclRpbWVvdXQoUykpLEN0JiYoTHQudGFwczwyJiYoUz1zZXRUaW1lb3V0''@;'; + put 'put ''KGZ1bmN0aW9uKCl7Uz1udWxsfSw1MDApKSwoMCxXLmludGVycnVwdCkodGhpcyksTHQuc3RhcnQoKSl9fWZ1bmN0aW9uIF90KCl7aWYodGhpcy5fX3pvb21pbmcpe3ZhciBDdCxmdCxIdCxHZSxldD12dCh0aGlzLGFyZ3VtZW50cyksYXQ9RS5CLmNoYW5nZWRUb3VjaGVzLEx0PWF0Lmxlbmd0''@;'; + put 'put ''aDtmb3IoY2UoKSxTJiYoUz1jbGVhclRpbWVvdXQoUykpLGV0LnRhcHM9MCxDdD0wO0N0PEx0OysrQ3QpSHQ9KDAsWS5aKSh0aGlzLGF0LChmdD1hdFtDdF0pLmlkZW50aWZpZXIpLGV0LnRvdWNoMCYmZXQudG91Y2gwWzJdPT09ZnQuaWRlbnRpZmllcj9ldC50b3VjaDBbMF09SHQ6ZXQudG91''@;'; + put 'put ''Y2gxJiZldC50b3VjaDFbMl09PT1mdC5pZGVudGlmaWVyJiYoZXQudG91Y2gxWzBdPUh0KTtpZihmdD1ldC50aGF0Ll9fem9vbSxldC50b3VjaDEpe3ZhciBVZT1ldC50b3VjaDBbMF0seXQ9ZXQudG91Y2gwWzFdLGp0PWV0LnRvdWNoMVswXSxRdD1ldC50b3VjaDFbMV0sZ249KGduPWp0WzBd''@;'; + put 'put ''LVVlWzBdKSpnbisoZ249anRbMV0tVWVbMV0pKmduLGRuPShkbj1RdFswXS15dFswXSkqZG4rKGRuPVF0WzFdLXl0WzFdKSpkbjtmdD1RZShmdCxNYXRoLnNxcnQoZ24vZG4pKSxIdD1bKFVlWzBdK2p0WzBdKS8yLChVZVsxXStqdFsxXSkvMl0sR2U9Wyh5dFswXStRdFswXSkvMiwoeXRbMV0r''@;'; + put 'put ''UXRbMV0pLzJdfWVsc2V7aWYoIWV0LnRvdWNoMClyZXR1cm47SHQ9ZXQudG91Y2gwWzBdLEdlPWV0LnRvdWNoMFsxXX1ldC56b29tKCJ0b3VjaCIsTygkZShmdCxIdCxHZSksZXQuZXh0ZW50LHgpKX19ZnVuY3Rpb24gdHQoKXtpZih0aGlzLl9fem9vbWluZyl7dmFyIEN0LGZ0LGV0PXZ0KHRo''@;'; + put 'put ''aXMsYXJndW1lbnRzKSxhdD1FLkIuY2hhbmdlZFRvdWNoZXMsTHQ9YXQubGVuZ3RoO2ZvcihvZSgpLEYmJmNsZWFyVGltZW91dChGKSxGPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtGPW51bGx9LDUwMCksQ3Q9MDtDdDxMdDsrK0N0KWZ0PWF0W0N0XSxldC50b3VjaDAmJmV0LnRvdWNoMFsyXT09''@;'; + put 'put ''PWZ0LmlkZW50aWZpZXI/ZGVsZXRlIGV0LnRvdWNoMDpldC50b3VjaDEmJmV0LnRvdWNoMVsyXT09PWZ0LmlkZW50aWZpZXImJmRlbGV0ZSBldC50b3VjaDE7aWYoZXQudG91Y2gxJiYhZXQudG91Y2gwJiYoZXQudG91Y2gwPWV0LnRvdWNoMSxkZWxldGUgZXQudG91Y2gxKSxldC50b3VjaDAp''@;'; + put 'put ''ZXQudG91Y2gwWzFdPXRoaXMuX196b29tLmludmVydChldC50b3VjaDBbMF0pO2Vsc2UgaWYoZXQuZW5kKCksMj09PWV0LnRhcHMpe3ZhciBIdD0oMCxCLlopKHRoaXMpLm9uKCJkYmxjbGljay56b29tIik7SHQmJkh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fXJldHVybiBQZS50cmFuc2Zv''@;'; + put 'put ''cm09ZnVuY3Rpb24oZXQsYXQsTHQpe3ZhciBDdD1ldC5zZWxlY3Rpb24/ZXQuc2VsZWN0aW9uKCk6ZXQ7Q3QucHJvcGVydHkoIl9fem9vbSIsQWUpLGV0IT09Q3Q/d3QoZXQsYXQsTHQpOkN0LmludGVycnVwdCgpLmVhY2goZnVuY3Rpb24oKXt2dCh0aGlzLGFyZ3VtZW50cykuc3RhcnQoKS56''@;'; + put 'put ''b29tKG51bGwsImZ1bmN0aW9uIj09dHlwZW9mIGF0P2F0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTphdCkuZW5kKCl9KX0sUGUuc2NhbGVCeT1mdW5jdGlvbihldCxhdCxMdCl7UGUuc2NhbGVUbyhldCxmdW5jdGlvbigpe3ZhciBDdD10aGlzLl9fem9vbS5rLGZ0PSJmdW5jdGlvbiI9PXR5cGVv''@;'; + put 'put ''ZiBhdD9hdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6YXQ7cmV0dXJuIEN0KmZ0fSxMdCl9LFBlLnNjYWxlVG89ZnVuY3Rpb24oZXQsYXQsTHQpe1BlLnRyYW5zZm9ybShldCxmdW5jdGlvbigpe3ZhciBDdD1oZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksZnQ9dGhpcy5fX3pvb20sSHQ9bnVsbD09''@;'; + put 'put ''THQ/Z3QoQ3QpOiJmdW5jdGlvbiI9PXR5cGVvZiBMdD9MdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6THQsR2U9ZnQuaW52ZXJ0KEh0KSxVZT0iZnVuY3Rpb24iPT10eXBlb2YgYXQ/YXQuYXBwbHkodGhpcyxhcmd1bWVudHMpOmF0O3JldHVybiBPKCRlKFFlKGZ0LFVlKSxIdCxHZSksQ3QseCl9''@;'; + put 'put ''LEx0KX0sUGUudHJhbnNsYXRlQnk9ZnVuY3Rpb24oZXQsYXQsTHQpe1BlLnRyYW5zZm9ybShldCxmdW5jdGlvbigpe3JldHVybiBPKHRoaXMuX196b29tLnRyYW5zbGF0ZSgiZnVuY3Rpb24iPT10eXBlb2YgYXQ/YXQuYXBwbHkodGhpcyxhcmd1bWVudHMpOmF0LCJmdW5jdGlvbiI9PXR5cGVv''@;'; + put 'put ''ZiBMdD9MdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6THQpLGhlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx4KX0pfSxQZS50cmFuc2xhdGVUbz1mdW5jdGlvbihldCxhdCxMdCxDdCl7UGUudHJhbnNmb3JtKGV0LGZ1bmN0aW9uKCl7dmFyIGZ0PWhlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxIdD10''@;'; + put 'put ''aGlzLl9fem9vbSxHZT1udWxsPT1DdD9ndChmdCk6ImZ1bmN0aW9uIj09dHlwZW9mIEN0P0N0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTpDdDtyZXR1cm4gTyhKLnRyYW5zbGF0ZShHZVswXSxHZVsxXSkuc2NhbGUoSHQuaykudHJhbnNsYXRlKCJmdW5jdGlvbiI9PXR5cGVvZiBhdD8tYXQuYXBw''@;'; + put 'put ''bHkodGhpcyxhcmd1bWVudHMpOi1hdCwiZnVuY3Rpb24iPT10eXBlb2YgTHQ/LUx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTotTHQpLGZ0LHgpfSxDdCl9LEF0LnByb3RvdHlwZT17c3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09Kyt0aGlzLmFjdGl2ZSYmKHRoaXMudGhhdC5fX3pvb21pbmc9''@;'; + put 'put ''dGhpcyx0aGlzLmVtaXQoInN0YXJ0IikpLHRoaXN9LHpvb206ZnVuY3Rpb24oZXQsYXQpe3JldHVybiB0aGlzLm1vdXNlJiYibW91c2UiIT09ZXQmJih0aGlzLm1vdXNlWzFdPWF0LmludmVydCh0aGlzLm1vdXNlWzBdKSksdGhpcy50b3VjaDAmJiJ0b3VjaCIhPT1ldCYmKHRoaXMudG91Y2gw''@;'; + put 'put ''WzFdPWF0LmludmVydCh0aGlzLnRvdWNoMFswXSkpLHRoaXMudG91Y2gxJiYidG91Y2giIT09ZXQmJih0aGlzLnRvdWNoMVsxXT1hdC5pbnZlcnQodGhpcy50b3VjaDFbMF0pKSx0aGlzLnRoYXQuX196b29tPWF0LHRoaXMuZW1pdCgiem9vbSIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biAwPT0tLXRoaXMuYWN0aXZlJiYoZGVsZXRlIHRoaXMudGhhdC5fX3pvb21pbmcsdGhpcy5lbWl0KCJlbmQiKSksdGhpc30sZW1pdDpmdW5jdGlvbihldCl7KDAsRS5fSCkobmV3IGVlKFBlLGV0LHRoaXMudGhhdC5fX3pvb20pLFQuYXBwbHksVCxbZXQsdGhpcy50aGF0LHRoaXMuYXJnc10p''@;'; + put 'put ''fX0sUGUud2hlZWxEZWx0YT1mdW5jdGlvbihldCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHo9ImZ1bmN0aW9uIj09dHlwZW9mIGV0P2V0Ok4oK2V0KSxQZSk6en0sUGUuZmlsdGVyPWZ1bmN0aW9uKGV0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oRWU9ImZ1bmN0aW9uIj09dHlwZW9m''@;'; + put 'put ''IGV0P2V0Ok4oISFldCksUGUpOkVlfSxQZS50b3VjaGFibGU9ZnVuY3Rpb24oZXQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuZT0iZnVuY3Rpb24iPT10eXBlb2YgZXQ/ZXQ6TighIWV0KSxQZSk6bmV9LFBlLmV4dGVudD1mdW5jdGlvbihldCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/''@;'; + put 'put ''KGhlPSJmdW5jdGlvbiI9PXR5cGVvZiBldD9ldDpOKFtbK2V0WzBdWzBdLCtldFswXVsxXV0sWytldFsxXVswXSwrZXRbMV1bMV1dXSksUGUpOmhlfSxQZS5zY2FsZUV4dGVudD1mdW5jdGlvbihldCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRlWzBdPStldFswXSx0ZVsxXT0rZXRbMV0s''@;'; + put 'put ''UGUpOlt0ZVswXSx0ZVsxXV19LFBlLnRyYW5zbGF0ZUV4dGVudD1mdW5jdGlvbihldCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHhbMF1bMF09K2V0WzBdWzBdLHhbMV1bMF09K2V0WzFdWzBdLHhbMF1bMV09K2V0WzBdWzFdLHhbMV1bMV09K2V0WzFdWzFdLFBlKTpbW3hbMF1bMF0seFsw''@;'; + put 'put ''XVsxXV0sW3hbMV1bMF0seFsxXVsxXV1dfSxQZS5jb25zdHJhaW49ZnVuY3Rpb24oZXQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhPPWV0LFBlKTpPfSxQZS5kdXJhdGlvbj1mdW5jdGlvbihldCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KFA9K2V0LFBlKTpQfSxQZS5pbnRlcnBvbGF0''@;'; + put 'put ''ZT1mdW5jdGlvbihldCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KFY9ZXQsUGUpOlZ9LFBlLm9uPWZ1bmN0aW9uKCl7dmFyIGV0PVQub24uYXBwbHkoVCxhcmd1bWVudHMpO3JldHVybiBldD09PVQ/UGU6ZXR9LFBlLmNsaWNrRGlzdGFuY2U9ZnVuY3Rpb24oZXQpe3JldHVybiBhcmd1bWVu''@;'; + put 'put ''dHMubGVuZ3RoPyhEZT0oZXQ9K2V0KSpldCxQZSk6TWF0aC5zcXJ0KERlKX0sUGV9c2UucHJvdG90eXBlPXEucHJvdG90eXBlfSw3MzY4NDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7SmUudXRpbHM9TCg3NzQ1MSksSmUuQ2lwaGVyPUwoMzgxNzApLEplLkRFUz1MKDQ2MzEpLEplLkNCQz1M''@;'; + put 'put ''KDc5NDU0KSxKZS5FREU9TCgyMTg2Mil9LDc5NDU0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgzMjM5MSksQj1MKDgzODk0KSxFPXt9O2Z1bmN0aW9uIE1lKFEpe21lLmVxdWFsKFEubGVuZ3RoLDgsIkludmFsaWQgSVYgbGVuZ3RoIiksdGhpcy5pdj1uZXcgQXJyYXkoOCk7''@;'; + put 'put ''Zm9yKHZhciBaPTA7Wjx0aGlzLml2Lmxlbmd0aDtaKyspdGhpcy5pdltaXT1RW1pdfUplLmluc3RhbnRpYXRlPWZ1bmN0aW9uIFUoUSl7ZnVuY3Rpb24gWihXKXtRLmNhbGwodGhpcyxXKSx0aGlzLl9jYmNJbml0KCl9QihaLFEpO2Zvcih2YXIgaWU9T2JqZWN0LmtleXMoRSksbGU9MDtsZTxp''@;'; + put 'put ''ZS5sZW5ndGg7bGUrKyl7dmFyIFk9aWVbbGVdO1oucHJvdG90eXBlW1ldPUVbWV19cmV0dXJuIFouY3JlYXRlPWZ1bmN0aW9uKE4pe3JldHVybiBuZXcgWihOKX0sWn0sRS5fY2JjSW5pdD1mdW5jdGlvbigpe3ZhciBaPW5ldyBNZSh0aGlzLm9wdGlvbnMuaXYpO3RoaXMuX2NiY1N0YXRlPVp9''@;'; + put 'put ''LEUuX3VwZGF0ZT1mdW5jdGlvbihaLGllLGxlLFkpe3ZhciBOPXRoaXMuY29uc3RydWN0b3Iuc3VwZXJfLnByb3RvdHlwZSxlZT10aGlzLl9jYmNTdGF0ZS5pdjtpZigiZW5jcnlwdCI9PT10aGlzLnR5cGUpe2Zvcih2YXIgcT0wO3E8dGhpcy5ibG9ja1NpemU7cSsrKWVlW3FdXj1aW2llK3Fd''@;'; + put 'put ''O2ZvcihOLl91cGRhdGUuY2FsbCh0aGlzLGVlLDAsbGUsWSkscT0wO3E8dGhpcy5ibG9ja1NpemU7cSsrKWVlW3FdPWxlW1krcV19ZWxzZXtmb3IoTi5fdXBkYXRlLmNhbGwodGhpcyxaLGllLGxlLFkpLHE9MDtxPHRoaXMuYmxvY2tTaXplO3ErKylsZVtZK3FdXj1lZVtxXTtmb3IocT0wO3E8''@;'; + put 'put ''dGhpcy5ibG9ja1NpemU7cSsrKWVlW3FdPVpbaWUrcV19fX0sMzgxNzA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDMyMzkxKTtmdW5jdGlvbiBCKEUpe3RoaXMub3B0aW9ucz1FLHRoaXMudHlwZT10aGlzLm9wdGlvbnMudHlwZSx0aGlzLmJsb2NrU2l6ZT04LHRoaXMuX2lu''@;'; + put 'put ''aXQoKSx0aGlzLmJ1ZmZlcj1uZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpLHRoaXMuYnVmZmVyT2ZmPTB9WGUuZXhwb3J0cz1CLEIucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKCl7fSxCLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oTWUpe3JldHVybiAwPT09TWUubGVuZ3RoP1tdOiJkZWNy''@;'; + put 'put ''eXB0Ij09PXRoaXMudHlwZT90aGlzLl91cGRhdGVEZWNyeXB0KE1lKTp0aGlzLl91cGRhdGVFbmNyeXB0KE1lKX0sQi5wcm90b3R5cGUuX2J1ZmZlcj1mdW5jdGlvbihNZSxVKXtmb3IodmFyIFE9TWF0aC5taW4odGhpcy5idWZmZXIubGVuZ3RoLXRoaXMuYnVmZmVyT2ZmLE1lLmxlbmd0aC1V''@;'; + put 'put ''KSxaPTA7WjxRO1orKyl0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZitaXT1NZVtVK1pdO3JldHVybiB0aGlzLmJ1ZmZlck9mZis9USxRfSxCLnByb3RvdHlwZS5fZmx1c2hCdWZmZXI9ZnVuY3Rpb24oTWUsVSl7cmV0dXJuIHRoaXMuX3VwZGF0ZSh0aGlzLmJ1ZmZlciwwLE1lLFUpLHRoaXMu''@;'; + put 'put ''YnVmZmVyT2ZmPTAsdGhpcy5ibG9ja1NpemV9LEIucHJvdG90eXBlLl91cGRhdGVFbmNyeXB0PWZ1bmN0aW9uKE1lKXt2YXIgVT0wLFE9MCxpZT1uZXcgQXJyYXkoKCh0aGlzLmJ1ZmZlck9mZitNZS5sZW5ndGgpL3RoaXMuYmxvY2tTaXplfDApKnRoaXMuYmxvY2tTaXplKTswIT09dGhpcy5i''@;'; + put 'put ''dWZmZXJPZmYmJihVKz10aGlzLl9idWZmZXIoTWUsVSksdGhpcy5idWZmZXJPZmY9PT10aGlzLmJ1ZmZlci5sZW5ndGgmJihRKz10aGlzLl9mbHVzaEJ1ZmZlcihpZSxRKSkpO2Zvcih2YXIgbGU9TWUubGVuZ3RoLShNZS5sZW5ndGgtVSkldGhpcy5ibG9ja1NpemU7VTxsZTtVKz10aGlzLmJs''@;'; + put 'put ''b2NrU2l6ZSl0aGlzLl91cGRhdGUoTWUsVSxpZSxRKSxRKz10aGlzLmJsb2NrU2l6ZTtmb3IoO1U8TWUubGVuZ3RoO1UrKyx0aGlzLmJ1ZmZlck9mZisrKXRoaXMuYnVmZmVyW3RoaXMuYnVmZmVyT2ZmXT1NZVtVXTtyZXR1cm4gaWV9LEIucHJvdG90eXBlLl91cGRhdGVEZWNyeXB0PWZ1bmN0''@;'; + put 'put ''aW9uKE1lKXtmb3IodmFyIFU9MCxRPTAsWj1NYXRoLmNlaWwoKHRoaXMuYnVmZmVyT2ZmK01lLmxlbmd0aCkvdGhpcy5ibG9ja1NpemUpLTEsaWU9bmV3IEFycmF5KFoqdGhpcy5ibG9ja1NpemUpO1o+MDtaLS0pVSs9dGhpcy5fYnVmZmVyKE1lLFUpLFErPXRoaXMuX2ZsdXNoQnVmZmVyKGll''@;'; + put 'put ''LFEpO3JldHVybiBVKz10aGlzLl9idWZmZXIoTWUsVSksaWV9LEIucHJvdG90eXBlLmZpbmFsPWZ1bmN0aW9uKE1lKXt2YXIgVSxRO3JldHVybiBNZSYmKFU9dGhpcy51cGRhdGUoTWUpKSxRPSJlbmNyeXB0Ij09PXRoaXMudHlwZT90aGlzLl9maW5hbEVuY3J5cHQoKTp0aGlzLl9maW5hbERl''@;'; + put 'put ''Y3J5cHQoKSxVP1UuY29uY2F0KFEpOlF9LEIucHJvdG90eXBlLl9wYWQ9ZnVuY3Rpb24oTWUsVSl7aWYoMD09PVUpcmV0dXJuITE7Zm9yKDtVPE1lLmxlbmd0aDspTWVbVSsrXT0wO3JldHVybiEwfSxCLnByb3RvdHlwZS5fZmluYWxFbmNyeXB0PWZ1bmN0aW9uKCl7aWYoIXRoaXMuX3BhZCh0''@;'; + put 'put ''aGlzLmJ1ZmZlcix0aGlzLmJ1ZmZlck9mZikpcmV0dXJuW107dmFyIE1lPW5ldyBBcnJheSh0aGlzLmJsb2NrU2l6ZSk7cmV0dXJuIHRoaXMuX3VwZGF0ZSh0aGlzLmJ1ZmZlciwwLE1lLDApLE1lfSxCLnByb3RvdHlwZS5fdW5wYWQ9ZnVuY3Rpb24oTWUpe3JldHVybiBNZX0sQi5wcm90b3R5''@;'; + put 'put ''cGUuX2ZpbmFsRGVjcnlwdD1mdW5jdGlvbigpe21lLmVxdWFsKHRoaXMuYnVmZmVyT2ZmLHRoaXMuYmxvY2tTaXplLCJOb3QgZW5vdWdoIGRhdGEgdG8gZGVjcnlwdCIpO3ZhciBNZT1uZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpO3JldHVybiB0aGlzLl9mbHVzaEJ1ZmZlcihNZSwwKSx0aGlz''@;'; + put 'put ''Ll91bnBhZChNZSl9fSw0NjMxOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgzMjM5MSksQj1MKDgzODk0KSxFPUwoNzc0NTEpLE1lPUwoMzgxNzApO2Z1bmN0aW9uIFUoKXt0aGlzLnRtcD1uZXcgQXJyYXkoMiksdGhpcy5rZXlzPW51bGx9ZnVuY3Rpb24gUShpZSl7TWUuY2Fs''@;'; + put 'put ''bCh0aGlzLGllKTt2YXIgbGU9bmV3IFU7dGhpcy5fZGVzU3RhdGU9bGUsdGhpcy5kZXJpdmVLZXlzKGxlLGllLmtleSl9QihRLE1lKSxYZS5leHBvcnRzPVEsUS5jcmVhdGU9ZnVuY3Rpb24obGUpe3JldHVybiBuZXcgUShsZSl9O3ZhciBaPVsxLDEsMiwyLDIsMiwyLDIsMSwyLDIsMiwyLDIs''@;'; + put 'put ''MiwxXTtRLnByb3RvdHlwZS5kZXJpdmVLZXlzPWZ1bmN0aW9uKGxlLFkpe2xlLmtleXM9bmV3IEFycmF5KDMyKSxtZS5lcXVhbChZLmxlbmd0aCx0aGlzLmJsb2NrU2l6ZSwiSW52YWxpZCBrZXkgbGVuZ3RoIik7dmFyIFc9RS5yZWFkVUludDMyQkUoWSwwKSxOPUUucmVhZFVJbnQzMkJFKFks''@;'; + put 'put ''NCk7RS5wYzEoVyxOLGxlLnRtcCwwKSxXPWxlLnRtcFswXSxOPWxlLnRtcFsxXTtmb3IodmFyIGVlPTA7ZWU8bGUua2V5cy5sZW5ndGg7ZWUrPTIpe3ZhciBxPVpbZWU+Pj4xXTtXPUUucjI4c2hsKFcscSksTj1FLnIyOHNobChOLHEpLEUucGMyKFcsTixsZS5rZXlzLGVlKX19LFEucHJvdG90''@;'; + put 'put ''eXBlLl91cGRhdGU9ZnVuY3Rpb24obGUsWSxXLE4pe3ZhciBlZT10aGlzLl9kZXNTdGF0ZSxxPUUucmVhZFVJbnQzMkJFKGxlLFkpLEo9RS5yZWFkVUludDMyQkUobGUsWSs0KTtFLmlwKHEsSixlZS50bXAsMCkscT1lZS50bXBbMF0sSj1lZS50bXBbMV0sImVuY3J5cHQiPT09dGhpcy50eXBl''@;'; + put 'put ''P3RoaXMuX2VuY3J5cHQoZWUscSxKLGVlLnRtcCwwKTp0aGlzLl9kZWNyeXB0KGVlLHEsSixlZS50bXAsMCksSj1lZS50bXBbMV0sRS53cml0ZVVJbnQzMkJFKFcscT1lZS50bXBbMF0sTiksRS53cml0ZVVJbnQzMkJFKFcsSixOKzQpfSxRLnByb3RvdHlwZS5fcGFkPWZ1bmN0aW9uKGxlLFkp''@;'; + put 'put ''e2Zvcih2YXIgVz1sZS5sZW5ndGgtWSxOPVk7TjxsZS5sZW5ndGg7TisrKWxlW05dPVc7cmV0dXJuITB9LFEucHJvdG90eXBlLl91bnBhZD1mdW5jdGlvbihsZSl7Zm9yKHZhciBZPWxlW2xlLmxlbmd0aC0xXSxXPWxlLmxlbmd0aC1ZO1c8bGUubGVuZ3RoO1crKyltZS5lcXVhbChsZVtXXSxZ''@;'; + put 'put ''KTtyZXR1cm4gbGUuc2xpY2UoMCxsZS5sZW5ndGgtWSl9LFEucHJvdG90eXBlLl9lbmNyeXB0PWZ1bmN0aW9uKGxlLFksVyxOLGVlKXtmb3IodmFyIHE9WSxKPVcsc2U9MDtzZTxsZS5rZXlzLmxlbmd0aDtzZSs9Mil7dmFyIG9lPWxlLmtleXNbc2VdLGNlPWxlLmtleXNbc2UrMV07RS5leHBh''@;'; + put 'put ''bmQoSixsZS50bXAsMCk7dmFyIGRlPUUuc3Vic3RpdHV0ZShvZV49bGUudG1wWzBdLGNlXj1sZS50bXBbMV0pLEFlPUo7Sj0ocV5FLnBlcm11dGUoZGUpKT4+PjAscT1BZX1FLnJpcChKLHEsTixlZSl9LFEucHJvdG90eXBlLl9kZWNyeXB0PWZ1bmN0aW9uKGxlLFksVyxOLGVlKXtmb3IodmFy''@;'; + put 'put ''IHE9VyxKPVksc2U9bGUua2V5cy5sZW5ndGgtMjtzZT49MDtzZS09Mil7dmFyIG9lPWxlLmtleXNbc2VdLGNlPWxlLmtleXNbc2UrMV07RS5leHBhbmQocSxsZS50bXAsMCk7dmFyIGRlPUUuc3Vic3RpdHV0ZShvZV49bGUudG1wWzBdLGNlXj1sZS50bXBbMV0pLEFlPXE7cT0oSl5FLnBlcm11''@;'; + put 'put ''dGUoZGUpKT4+PjAsSj1BZX1FLnJpcChxLEosTixlZSl9fSwyMTg2MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMzIzOTEpLEI9TCg4Mzg5NCksRT1MKDM4MTcwKSxNZT1MKDQ2MzEpO2Z1bmN0aW9uIFUoWixpZSl7bWUuZXF1YWwoaWUubGVuZ3RoLDI0LCJJbnZhbGlkIGtl''@;'; + put 'put ''eSBsZW5ndGgiKTt2YXIgbGU9aWUuc2xpY2UoMCw4KSxZPWllLnNsaWNlKDgsMTYpLFc9aWUuc2xpY2UoMTYsMjQpO3RoaXMuY2lwaGVycz0iZW5jcnlwdCI9PT1aP1tNZS5jcmVhdGUoe3R5cGU6ImVuY3J5cHQiLGtleTpsZX0pLE1lLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5Oll9KSxN''@;'; + put 'put ''ZS5jcmVhdGUoe3R5cGU6ImVuY3J5cHQiLGtleTpXfSldOltNZS5jcmVhdGUoe3R5cGU6ImRlY3J5cHQiLGtleTpXfSksTWUuY3JlYXRlKHt0eXBlOiJlbmNyeXB0IixrZXk6WX0pLE1lLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5OmxlfSldfWZ1bmN0aW9uIFEoWil7RS5jYWxsKHRoaXMs''@;'; + put 'put ''Wik7dmFyIGllPW5ldyBVKHRoaXMudHlwZSx0aGlzLm9wdGlvbnMua2V5KTt0aGlzLl9lZGVTdGF0ZT1pZX1CKFEsRSksWGUuZXhwb3J0cz1RLFEuY3JlYXRlPWZ1bmN0aW9uKGllKXtyZXR1cm4gbmV3IFEoaWUpfSxRLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGllLGxlLFksVyl7dmFy''@;'; + put 'put ''IE49dGhpcy5fZWRlU3RhdGU7Ti5jaXBoZXJzWzBdLl91cGRhdGUoaWUsbGUsWSxXKSxOLmNpcGhlcnNbMV0uX3VwZGF0ZShZLFcsWSxXKSxOLmNpcGhlcnNbMl0uX3VwZGF0ZShZLFcsWSxXKX0sUS5wcm90b3R5cGUuX3BhZD1NZS5wcm90b3R5cGUuX3BhZCxRLnByb3RvdHlwZS5fdW5wYWQ9''@;'; + put 'put ''TWUucHJvdG90eXBlLl91bnBhZH0sNzc0NTE6KFhlLEplKT0+eyJ1c2Ugc3RyaWN0IjtKZS5yZWFkVUludDMyQkU9ZnVuY3Rpb24oTWUsVSl7cmV0dXJuKE1lWzArVV08PDI0fE1lWzErVV08PDE2fE1lWzIrVV08PDh8TWVbMytVXSk+Pj4wfSxKZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKE1l''@;'; + put 'put ''LFUsUSl7TWVbMCtRXT1VPj4+MjQsTWVbMStRXT1VPj4+MTYmMjU1LE1lWzIrUV09VT4+PjgmMjU1LE1lWzMrUV09MjU1JlV9LEplLmlwPWZ1bmN0aW9uKE1lLFUsUSxaKXtmb3IodmFyIGllPTAsbGU9MCxZPTY7WT49MDtZLT0yKXtmb3IodmFyIFc9MDtXPD0yNDtXKz04KWllPDw9MSxpZXw9''@;'; + put 'put ''VT4+PlcrWSYxO2ZvcihXPTA7Vzw9MjQ7Vys9OClpZTw8PTEsaWV8PU1lPj4+VytZJjF9Zm9yKFk9NjtZPj0wO1ktPTIpe2ZvcihXPTE7Vzw9MjU7Vys9OClsZTw8PTEsbGV8PVU+Pj5XK1kmMTtmb3IoVz0xO1c8PTI1O1crPTgpbGU8PD0xLGxlfD1NZT4+PlcrWSYxfVFbWiswXT1pZT4+PjAs''@;'; + put 'put ''UVtaKzFdPWxlPj4+MH0sSmUucmlwPWZ1bmN0aW9uKE1lLFUsUSxaKXtmb3IodmFyIGllPTAsbGU9MCxZPTA7WTw0O1krKylmb3IodmFyIFc9MjQ7Vz49MDtXLT04KWllPDw9MSxpZXw9VT4+PlcrWSYxLGllPDw9MSxpZXw9TWU+Pj5XK1kmMTtmb3IoWT00O1k8ODtZKyspZm9yKFc9MjQ7Vz49''@;'; + put 'put ''MDtXLT04KWxlPDw9MSxsZXw9VT4+PlcrWSYxLGxlPDw9MSxsZXw9TWU+Pj5XK1kmMTtRW1orMF09aWU+Pj4wLFFbWisxXT1sZT4+PjB9LEplLnBjMT1mdW5jdGlvbihNZSxVLFEsWil7Zm9yKHZhciBpZT0wLGxlPTAsWT03O1k+PTU7WS0tKXtmb3IodmFyIFc9MDtXPD0yNDtXKz04KWllPDw9''@;'; + put 'put ''MSxpZXw9VT4+VytZJjE7Zm9yKFc9MDtXPD0yNDtXKz04KWllPDw9MSxpZXw9TWU+PlcrWSYxfWZvcihXPTA7Vzw9MjQ7Vys9OClpZTw8PTEsaWV8PVU+PlcrWSYxO2ZvcihZPTE7WTw9MztZKyspe2ZvcihXPTA7Vzw9MjQ7Vys9OClsZTw8PTEsbGV8PVU+PlcrWSYxO2ZvcihXPTA7Vzw9MjQ7''@;'; + put 'put ''Vys9OClsZTw8PTEsbGV8PU1lPj5XK1kmMX1mb3IoVz0wO1c8PTI0O1crPTgpbGU8PD0xLGxlfD1NZT4+VytZJjE7UVtaKzBdPWllPj4+MCxRW1orMV09bGU+Pj4wfSxKZS5yMjhzaGw9ZnVuY3Rpb24oTWUsVSl7cmV0dXJuIE1lPDxVJjI2ODQzNTQ1NXxNZT4+PjI4LVV9O3ZhciBMPVsxNCwx''@;'; + put 'put ''MSwxNyw0LDI3LDIzLDI1LDAsMTMsMjIsNywxOCw1LDksMTYsMjQsMiwyMCwxMiwyMSwxLDgsMTUsMjYsMTUsNCwyNSwxOSw5LDEsMjYsMTYsNSwxMSwyMyw4LDEyLDcsMTcsMCwyMiwzLDEwLDE0LDYsMjAsMjcsMjRdO0plLnBjMj1mdW5jdGlvbihNZSxVLFEsWil7Zm9yKHZhciBpZT0wLGxl''@;'; + put 'put ''PTAsWT1MLmxlbmd0aD4+PjEsVz0wO1c8WTtXKyspaWU8PD0xLGllfD1NZT4+PkxbV10mMTtmb3IoVz1ZO1c8TC5sZW5ndGg7VysrKWxlPDw9MSxsZXw9VT4+PkxbV10mMTtRW1orMF09aWU+Pj4wLFFbWisxXT1sZT4+PjB9LEplLmV4cGFuZD1mdW5jdGlvbihNZSxVLFEpe3ZhciBaPTAsaWU9''@;'; + put 'put ''MDtaPSgxJk1lKTw8NXxNZT4+PjI3O2Zvcih2YXIgbGU9MjM7bGU+PTE1O2xlLT00KVo8PD02LFp8PU1lPj4+bGUmNjM7Zm9yKGxlPTExO2xlPj0zO2xlLT00KWllfD1NZT4+PmxlJjYzLGllPDw9NjtpZXw9KDMxJk1lKTw8MXxNZT4+PjMxLFVbUSswXT1aPj4+MCxVW1ErMV09aWU+Pj4wfTt2''@;'; + put 'put ''YXIgbWU9WzE0LDAsNCwxNSwxMyw3LDEsNCwyLDE0LDE1LDIsMTEsMTMsOCwxLDMsMTAsMTAsNiw2LDEyLDEyLDExLDUsOSw5LDUsMCwzLDcsOCw0LDE1LDEsMTIsMTQsOCw4LDIsMTMsNCw2LDksMiwxLDExLDcsMTUsNSwxMiwxMSw5LDMsNywxNCwzLDEwLDEwLDAsNSw2LDAsMTMsMTUsMywx''@;'; + put 'put ''LDEzLDgsNCwxNCw3LDYsMTUsMTEsMiwzLDgsNCwxNCw5LDEyLDcsMCwyLDEsMTMsMTAsMTIsNiwwLDksNSwxMSwxMCw1LDAsMTMsMTQsOCw3LDEwLDExLDEsMTAsMyw0LDE1LDEzLDQsMSwyLDUsMTEsOCw2LDEyLDcsNiwxMiw5LDAsMyw1LDIsMTQsMTUsOSwxMCwxMywwLDcsOSwwLDE0LDks''@;'; + put 'put ''NiwzLDMsNCwxNSw2LDUsMTAsMSwyLDEzLDgsMTIsNSw3LDE0LDExLDEyLDQsMTEsMiwxNSw4LDEsMTMsMSw2LDEwLDQsMTMsOSwwLDgsNiwxNSw5LDMsOCwwLDcsMTEsNCwxLDE1LDIsMTQsMTIsMyw1LDExLDEwLDUsMTQsMiw3LDEyLDcsMTMsMTMsOCwxNCwxMSwzLDUsMCw2LDYsMTUsOSww''@;'; + put 'put ''LDEwLDMsMSw0LDIsNyw4LDIsNSwxMiwxMSwxLDEyLDEwLDQsMTQsMTUsOSwxMCwzLDYsMTUsOSwwLDAsNiwxMiwxMCwxMSwxLDcsMTMsMTMsOCwxNSw5LDEsNCwzLDUsMTQsMTEsNSwxMiwyLDcsOCwyLDQsMTQsMiwxNCwxMiwxMSw0LDIsMSwxMiw3LDQsMTAsNywxMSwxMyw2LDEsOCw1LDUs''@;'; + put 'put ''MCwzLDE1LDE1LDEwLDEzLDMsMCw5LDE0LDgsOSw2LDQsMTEsMiw4LDEsMTIsMTEsNywxMCwxLDEzLDE0LDcsMiw4LDEzLDE1LDYsOSwxNSwxMiwwLDUsOSw2LDEwLDMsNCwwLDUsMTQsMywxMiwxMCwxLDE1LDEwLDQsMTUsMiw5LDcsMiwxMiw2LDksOCw1LDAsNiwxMywxLDMsMTMsNCwxNCwx''@;'; + put 'put ''NCwwLDcsMTEsNSwzLDExLDgsOSw0LDE0LDMsMTUsMiw1LDEyLDIsOSw4LDUsMTIsMTUsMywxMCw3LDExLDAsMTQsNCwxLDEwLDcsMSw2LDEzLDAsMTEsOCw2LDEzLDQsMTMsMTEsMCwyLDExLDE0LDcsMTUsNCwwLDksOCwxLDEzLDEwLDMsMTQsMTIsMyw5LDUsNywxMiw1LDIsMTAsMTUsNiw4''@;'; + put 'put ''LDEsNiwxLDYsNCwxMSwxMSwxMywxMyw4LDEyLDEsMyw0LDcsMTAsMTQsNywxMCw5LDE1LDUsNiwwLDgsMTUsMCwxNCw1LDIsOSwzLDIsMTIsMTMsMSwyLDE1LDgsMTMsNCw4LDYsMTAsMTUsMywxMSw3LDEsNCwxMCwxMiw5LDUsMyw2LDE0LDExLDUsMCwwLDE0LDEyLDksNywyLDcsMiwxMSwx''@;'; + put 'put ''LDQsMTQsMSw3LDksNCwxMiwxMCwxNCw4LDIsMTMsMCwxNSw2LDEyLDEwLDksMTMsMCwxNSwzLDMsNSw1LDYsOCwxMV07SmUuc3Vic3RpdHV0ZT1mdW5jdGlvbihNZSxVKXtmb3IodmFyIFE9MCxaPTA7Wjw0O1orKylRPDw9NCxRfD1tZVs2NCpaKyhNZT4+PjE4LTYqWiY2MyldO2ZvcihaPTA7''@;'; + put 'put ''Wjw0O1orKylRPDw9NCxRfD1tZVsyNTYrNjQqWisoVT4+PjE4LTYqWiY2MyldO3JldHVybiBRPj4+MH07dmFyIEI9WzE2LDI1LDEyLDExLDMsMjAsNCwxNSwzMSwxNyw5LDYsMjcsMTQsMSwyMiwzMCwyNCw4LDE4LDAsNSwyOSwyMywxMywxOSwyLDI2LDEwLDIxLDI4LDddO0plLnBlcm11dGU9''@;'; + put 'put ''ZnVuY3Rpb24oTWUpe2Zvcih2YXIgVT0wLFE9MDtRPEIubGVuZ3RoO1ErKylVPDw9MSxVfD1NZT4+PkJbUV0mMTtyZXR1cm4gVT4+PjB9LEplLnBhZFNwbGl0PWZ1bmN0aW9uKE1lLFUsUSl7Zm9yKHZhciBaPU1lLnRvU3RyaW5nKDIpO1oubGVuZ3RoPFU7KVo9IjAiK1o7Zm9yKHZhciBpZT1b''@;'; + put 'put ''XSxsZT0wO2xlPFU7bGUrPVEpaWUucHVzaChaLnNsaWNlKGxlLGxlK1EpKTtyZXR1cm4gaWUuam9pbigiICIpfX0sOTg4Mjk6KFhlLEplLEwpPT57dmFyIG1lPUwoODU1NjMpLEI9TCgyOTc5OSksRT1MKDIxNDE5KSxVPXtiaW5hcnk6ITAsaGV4OiEwLGJhc2U2NDohMH07SmUuRGlmZmllSGVs''@;'; + put 'put ''bG1hbkdyb3VwPUplLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cD1KZS5nZXREaWZmaWVIZWxsbWFuPWZ1bmN0aW9uIE1lKFope3ZhciBpZT1uZXcgQnVmZmVyKEJbWl0ucHJpbWUsImhleCIpLGxlPW5ldyBCdWZmZXIoQltaXS5nZW4sImhleCIpO3JldHVybiBuZXcgRShpZSxsZSl9LEplLmNy''@;'; + put 'put ''ZWF0ZURpZmZpZUhlbGxtYW49SmUuRGlmZmllSGVsbG1hbj1mdW5jdGlvbiBRKFosaWUsbGUsWSl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihpZSl8fHZvaWQgMD09PVVbaWVdP1EoWiwiYmluYXJ5IixpZSxsZSk6KGllPWllfHwiYmluYXJ5IixZPVl8fCJiaW5hcnkiLGxlPWxlfHxuZXcgQnVm''@;'; + put 'put ''ZmVyKFsyXSksQnVmZmVyLmlzQnVmZmVyKGxlKXx8KGxlPW5ldyBCdWZmZXIobGUsWSkpLCJudW1iZXIiPT10eXBlb2YgWj9uZXcgRShtZShaLGxlKSxsZSwhMCk6KEJ1ZmZlci5pc0J1ZmZlcihaKXx8KFo9bmV3IEJ1ZmZlcihaLGllKSksbmV3IEUoWixsZSwhMCkpKX19LDIxNDE5OihYZSxK''@;'; + put 'put ''ZSxMKT0+e3ZhciBtZT1MKDg4MzEzKSxFPW5ldyhMKDE3MDc5KSksTWU9bmV3IG1lKDI0KSxVPW5ldyBtZSgxMSksUT1uZXcgbWUoMTApLFo9bmV3IG1lKDMpLGllPW5ldyBtZSg3KSxsZT1MKDg1NTYzKSxZPUwoNTM3NTMpO2Z1bmN0aW9uIFcob2UsY2Upe3JldHVybiBjZT1jZXx8InV0Zjgi''@;'; + put 'put ''LEJ1ZmZlci5pc0J1ZmZlcihvZSl8fChvZT1uZXcgQnVmZmVyKG9lLGNlKSksdGhpcy5fcHViPW5ldyBtZShvZSksdGhpc31mdW5jdGlvbiBOKG9lLGNlKXtyZXR1cm4gY2U9Y2V8fCJ1dGY4IixCdWZmZXIuaXNCdWZmZXIob2UpfHwob2U9bmV3IEJ1ZmZlcihvZSxjZSkpLHRoaXMuX3ByaXY9''@;'; + put 'put ''bmV3IG1lKG9lKSx0aGlzfVhlLmV4cG9ydHM9Sjt2YXIgZWU9e307ZnVuY3Rpb24gSihvZSxjZSxkZSl7dGhpcy5zZXRHZW5lcmF0b3IoY2UpLHRoaXMuX19wcmltZT1uZXcgbWUob2UpLHRoaXMuX3ByaW1lPW1lLm1vbnQodGhpcy5fX3ByaW1lKSx0aGlzLl9wcmltZUxlbj1vZS5sZW5ndGgs''@;'; + put 'put ''dGhpcy5fcHViPXZvaWQgMCx0aGlzLl9wcml2PXZvaWQgMCx0aGlzLl9wcmltZUNvZGU9dm9pZCAwLGRlPyh0aGlzLnNldFB1YmxpY0tleT1XLHRoaXMuc2V0UHJpdmF0ZUtleT1OKTp0aGlzLl9wcmltZUNvZGU9OH1mdW5jdGlvbiBzZShvZSxjZSl7dmFyIGRlPW5ldyBCdWZmZXIob2UudG9B''@;'; + put 'put ''cnJheSgpKTtyZXR1cm4gY2U/ZGUudG9TdHJpbmcoY2UpOmRlfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLnByb3RvdHlwZSwidmVyaWZ5RXJyb3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiJudW1iZXIiIT10eXBlb2YgdGhpcy5fcHJpbWVDb2RlJiYodGhpcy5fcHJp''@;'; + put 'put ''bWVDb2RlPWZ1bmN0aW9uIHEob2UsY2Upe3ZhciBkZT1jZS50b1N0cmluZygiaGV4IiksdmU9W2RlLG9lLnRvU3RyaW5nKDE2KV0uam9pbigiXyIpO2lmKHZlIGluIGVlKXJldHVybiBlZVt2ZV07dmFyIGtlLEFlPTA7aWYob2UuaXNFdmVuKCl8fCFsZS5zaW1wbGVTaWV2ZXx8IWxlLmZlcm1h''@;'; + put 'put ''dFRlc3Qob2UpfHwhRS50ZXN0KG9lKSlyZXR1cm4gQWUrPTEsZWVbdmVdPUFlKz0iMDIiPT09ZGV8fCIwNSI9PT1kZT84OjQsQWU7c3dpdGNoKEUudGVzdChvZS5zaHJuKDEpKXx8KEFlKz0yKSxkZSl7Y2FzZSIwMiI6b2UubW9kKE1lKS5jbXAoVSkmJihBZSs9OCk7YnJlYWs7Y2FzZSIwNSI6''@;'; + put 'put ''KGtlPW9lLm1vZChRKSkuY21wKFopJiZrZS5jbXAoaWUpJiYoQWUrPTgpO2JyZWFrO2RlZmF1bHQ6QWUrPTR9cmV0dXJuIGVlW3ZlXT1BZSxBZX0odGhpcy5fX3ByaW1lLHRoaXMuX19nZW4pKSx0aGlzLl9wcmltZUNvZGV9fSksSi5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzPWZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuX3ByaXZ8fCh0aGlzLl9wcml2PW5ldyBtZShZKHRoaXMuX3ByaW1lTGVuKSkpLHRoaXMuX3B1Yj10aGlzLl9nZW4udG9SZWQodGhpcy5fcHJpbWUpLnJlZFBvdyh0aGlzLl9wcml2KS5mcm9tUmVkKCksdGhpcy5nZXRQdWJsaWNLZXkoKX0sSi5wcm90b3R5cGUuY29tcHV0''@;'; + put 'put ''ZVNlY3JldD1mdW5jdGlvbihvZSl7dmFyIGNlPShvZT0ob2U9bmV3IG1lKG9lKSkudG9SZWQodGhpcy5fcHJpbWUpKS5yZWRQb3codGhpcy5fcHJpdikuZnJvbVJlZCgpLGRlPW5ldyBCdWZmZXIoY2UudG9BcnJheSgpKSx2ZT10aGlzLmdldFByaW1lKCk7aWYoZGUubGVuZ3RoPHZlLmxlbmd0''@;'; + put 'put ''aCl7dmFyIEFlPW5ldyBCdWZmZXIodmUubGVuZ3RoLWRlLmxlbmd0aCk7QWUuZmlsbCgwKSxkZT1CdWZmZXIuY29uY2F0KFtBZSxkZV0pfXJldHVybiBkZX0sSi5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKGNlKXtyZXR1cm4gc2UodGhpcy5fcHViLGNlKX0sSi5wcm90b3R5cGUu''@;'; + put 'put ''Z2V0UHJpdmF0ZUtleT1mdW5jdGlvbihjZSl7cmV0dXJuIHNlKHRoaXMuX3ByaXYsY2UpfSxKLnByb3RvdHlwZS5nZXRQcmltZT1mdW5jdGlvbihvZSl7cmV0dXJuIHNlKHRoaXMuX19wcmltZSxvZSl9LEoucHJvdG90eXBlLmdldEdlbmVyYXRvcj1mdW5jdGlvbihvZSl7cmV0dXJuIHNlKHRo''@;'; + put 'put ''aXMuX2dlbixvZSl9LEoucHJvdG90eXBlLnNldEdlbmVyYXRvcj1mdW5jdGlvbihvZSxjZSl7cmV0dXJuIGNlPWNlfHwidXRmOCIsQnVmZmVyLmlzQnVmZmVyKG9lKXx8KG9lPW5ldyBCdWZmZXIob2UsY2UpKSx0aGlzLl9fZ2VuPW9lLHRoaXMuX2dlbj1uZXcgbWUob2UpLHRoaXN9fSw4NTU2''@;'; + put 'put ''MzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1Mzc1Myk7WGUuZXhwb3J0cz1BZSxBZS5zaW1wbGVTaWV2ZT1kZSxBZS5mZXJtYXRUZXN0PXZlO3ZhciBCPUwoODgzMTMpLEU9bmV3IEIoMjQpLFU9bmV3KEwoMTcwNzkpKSxRPW5ldyBCKDEpLFo9bmV3IEIoMiksaWU9bmV3IEIoNSksVz0obmV3IEIo''@;'; + put 'put ''MTYpLG5ldyBCKDgpLG5ldyBCKDEwKSksTj1uZXcgQigzKSxxPShuZXcgQig3KSxuZXcgQigxMSkpLEo9bmV3IEIoNCksb2U9KG5ldyBCKDEyKSxudWxsKTtmdW5jdGlvbiBkZShrZSl7Zm9yKHZhciBTZT1mdW5jdGlvbiBjZSgpe2lmKG51bGwhPT1vZSlyZXR1cm4gb2U7dmFyIFNlPVtdO1Nl''@;'; + put 'put ''WzBdPTI7Zm9yKHZhciBJZT0xLFRlPTM7VGU8MTA0ODU3NjtUZSs9Mil7Zm9yKHZhciBFZT1NYXRoLmNlaWwoTWF0aC5zcXJ0KFRlKSksaGU9MDtoZTxJZSYmU2VbaGVdPD1FZSYmVGUlU2VbaGVdIT0wO2hlKyspO0llIT09aGUmJlNlW2hlXTw9RWV8fChTZVtJZSsrXT1UZSl9cmV0dXJuIG9l''@;'; + put 'put ''PVNlLFNlfSgpLEllPTA7SWU8U2UubGVuZ3RoO0llKyspaWYoMD09PWtlLm1vZG4oU2VbSWVdKSlyZXR1cm4gMD09PWtlLmNtcG4oU2VbSWVdKTtyZXR1cm4hMH1mdW5jdGlvbiB2ZShrZSl7dmFyIFNlPUIubW9udChrZSk7cmV0dXJuIDA9PT1aLnRvUmVkKFNlKS5yZWRQb3coa2Uuc3Vibigx''@;'; + put 'put ''KSkuZnJvbVJlZCgpLmNtcG4oMSl9ZnVuY3Rpb24gQWUoa2UsU2Upe2lmKGtlPDE2KXJldHVybiBuZXcgQigyPT09U2V8fDU9PT1TZT9bMTQwLDEyM106WzE0MCwzOV0pO1NlPW5ldyBCKFNlKTtmb3IodmFyIEllLFRlOzspe2ZvcihJZT1uZXcgQihtZShNYXRoLmNlaWwoa2UvOCkpKTtJZS5i''@;'; + put 'put ''aXRMZW5ndGgoKT5rZTspSWUuaXNocm4oMSk7aWYoSWUuaXNFdmVuKCkmJkllLmlhZGQoUSksSWUudGVzdG4oMSl8fEllLmlhZGQoWiksU2UuY21wKFopKXtpZighU2UuY21wKGllKSlmb3IoO0llLm1vZChXKS5jbXAoTik7KUllLmlhZGQoSil9ZWxzZSBmb3IoO0llLm1vZChFKS5jbXAocSk7''@;'; + put 'put ''KUllLmlhZGQoSik7aWYoZGUoVGU9SWUuc2hybigxKSkmJmRlKEllKSYmdmUoVGUpJiZ2ZShJZSkmJlUudGVzdChUZSkmJlUudGVzdChJZSkpcmV0dXJuIEllfX19LDg4MzEzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSxCKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShoZSxPKXtp''@;'; + put 'put ''ZighaGUpdGhyb3cgbmV3IEVycm9yKE98fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gTWUoaGUsTyl7aGUuc3VwZXJfPU87dmFyIHo9ZnVuY3Rpb24oKXt9O3oucHJvdG90eXBlPU8ucHJvdG90eXBlLGhlLnByb3RvdHlwZT1uZXcgeixoZS5wcm90b3R5cGUuY29uc3RydWN0b3I9aGV9''@;'; + put 'put ''ZnVuY3Rpb24gVShoZSxPLHope2lmKFUuaXNCTihoZSkpcmV0dXJuIGhlO3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT1oZSYmKCgibGUiPT09T3x8ImJlIj09PU8pJiYoej1PLE89MTApLHRoaXMuX2luaXQoaGV8fDAs''@;'; + put 'put ''T3x8MTAsenx8ImJlIikpfXZhciBROyJvYmplY3QiPT10eXBlb2YgbWU/bWUuZXhwb3J0cz1VOkIuQk49VSxVLkJOPVUsVS53b3JkU2l6ZT0yNjt0cnl7UT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOkwoNzc0OCkuQnVm''@;'; + put 'put ''ZmVyfWNhdGNoKGhlKXt9ZnVuY3Rpb24gWihoZSxPKXt2YXIgej1oZS5jaGFyQ29kZUF0KE8pO3JldHVybiB6Pj02NSYmejw9NzA/ei01NTp6Pj05NyYmejw9MTAyP3otODc6ei00OCYxNX1mdW5jdGlvbiBpZShoZSxPLHope3ZhciBuZT1aKGhlLHopO3JldHVybiB6LTE+PU8mJihuZXw9Wiho''@;'; + put 'put ''ZSx6LTEpPDw0KSxuZX1mdW5jdGlvbiBsZShoZSxPLHosbmUpe2Zvcih2YXIgdGU9MCx4PU1hdGgubWluKGhlLmxlbmd0aCx6KSxQPU87UDx4O1ArKyl7dmFyIFY9aGUuY2hhckNvZGVBdChQKS00ODt0ZSo9bmUsdGUrPVY+PTQ5P1YtNDkrMTA6Vj49MTc/Vi0xNysxMDpWfXJldHVybiB0ZX1V''@;'; + put 'put ''LmlzQk49ZnVuY3Rpb24oTyl7cmV0dXJuIE8gaW5zdGFuY2VvZiBVfHxudWxsIT09TyYmIm9iamVjdCI9PXR5cGVvZiBPJiZPLmNvbnN0cnVjdG9yLndvcmRTaXplPT09VS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShPLndvcmRzKX0sVS5tYXg9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAo''@;'; + put 'put ''eik+MD9POnp9LFUubWluPWZ1bmN0aW9uKE8seil7cmV0dXJuIE8uY21wKHopPDA/Tzp6fSxVLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihPLHosbmUpe2lmKCJudW1iZXIiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihPLHosbmUpO2lmKCJvYmplY3QiPT10eXBlb2YgTyly''@;'; + put 'put ''ZXR1cm4gdGhpcy5faW5pdEFycmF5KE8seixuZSk7ImhleCI9PT16JiYoej0xNiksRSh6PT09KDB8eikmJno+PTImJno8PTM2KTt2YXIgdGU9MDsiLSI9PT0oTz1PLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKHRlKyssdGhpcy5uZWdhdGl2ZT0xKSx0ZTxPLmxlbmd0aCYm''@;'; + put 'put ''KDE2PT09ej90aGlzLl9wYXJzZUhleChPLHRlLG5lKToodGhpcy5fcGFyc2VCYXNlKE8seix0ZSksImxlIj09PW5lJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixuZSkpKX0sVS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oTyx6LG5lKXtPPDAmJih0aGlzLm5lZ2F0''@;'; + put 'put ''aXZlPTEsTz0tTyksTzw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmT10sdGhpcy5sZW5ndGg9MSk6Tzw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihFKE88OTAwNzE5OTI1NDc0MDk5Miks''@;'; + put 'put ''dGhpcy53b3Jkcz1bNjcxMDg4NjMmTyxPLzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1uZSYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHosbmUpfSxVLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKE8seixuZSl7aWYoRSgibnVtYmVyIj09''@;'; + put 'put ''dHlwZW9mIE8ubGVuZ3RoKSxPLmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChPLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB0ZT0wO3RlPHRoaXMubGVuZ3Ro''@;'; + put 'put ''O3RlKyspdGhpcy53b3Jkc1t0ZV09MDt2YXIgeCxQLFY9MDtpZigiYmUiPT09bmUpZm9yKHRlPU8ubGVuZ3RoLTEseD0wO3RlPj0wO3RlLT0zKXRoaXMud29yZHNbeF18PShQPU9bdGVdfE9bdGUtMV08PDh8T1t0ZS0yXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYt''@;'; + put 'put ''ViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7ZWxzZSBpZigibGUiPT09bmUpZm9yKHRlPTAseD0wO3RlPE8ubGVuZ3RoO3RlKz0zKXRoaXMud29yZHNbeF18PShQPU9bdGVdfE9bdGUrMV08PDh8T1t0ZSsyXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+''@;'; + put 'put ''MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKE8seixuZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChPLmxlbmd0aC16KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxl''@;'; + put 'put ''bmd0aCk7Zm9yKHZhciB0ZT0wO3RlPHRoaXMubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09MDt2YXIgVix4PTAsUD0wO2lmKCJiZSI9PT1uZSlmb3IodGU9Ty5sZW5ndGgtMTt0ZT49ejt0ZS09MilWPWllKE8seix0ZSk8PHgsdGhpcy53b3Jkc1tQXXw9NjcxMDg4NjMmVix4Pj0xOD8oeC09''@;'; + put 'put ''MTgsdGhpcy53b3Jkc1tQKz0xXXw9Vj4+PjI2KTp4Kz04O2Vsc2UgZm9yKHRlPShPLmxlbmd0aC16KSUyPT0wP3orMTp6O3RlPE8ubGVuZ3RoO3RlKz0yKVY9aWUoTyx6LHRlKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+''@;'; + put 'put ''MjYpOngrPTg7dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKE8seixuZSl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIHRlPTAseD0xO3g8PTY3MTA4ODYzO3gqPXopdGUrKzt0ZS0tLHg9eC96fDA7Zm9yKHZhciBQPU8ubGVuZ3RoLW5l''@;'; + put 'put ''LFY9UCV0ZSxUPU1hdGgubWluKFAsUC1WKStuZSxTPTAsRj1uZTtGPFQ7Ris9dGUpUz1sZShPLEYsRit0ZSx6KSx0aGlzLmltdWxuKHgpLHRoaXMud29yZHNbMF0rUzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1TOnRoaXMuX2lhZGRuKFMpO2lmKDAhPT1WKXt2YXIgeWU9MTtmb3IoUz1sZShP''@;'; + put 'put ''LEYsTy5sZW5ndGgseiksRj0wO0Y8VjtGKyspeWUqPXo7dGhpcy5pbXVsbih5ZSksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyl9dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKE8pe08ud29yZHM9bmV3IEFycmF5''@;'; + put 'put ''KHRoaXMubGVuZ3RoKTtmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoO3orKylPLndvcmRzW3pdPXRoaXMud29yZHNbel07Ty5sZW5ndGg9dGhpcy5sZW5ndGgsTy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLE8ucmVkPXRoaXMucmVkfSxVLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBP''@;'; + put 'put ''PW5ldyBVKG51bGwpO3JldHVybiB0aGlzLmNvcHkoTyksT30sVS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE87KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sVS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3Ro''@;'; + put 'put ''aXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxVLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMu''@;'; + put 'put ''bmVnYXRpdmU9MCksdGhpc30sVS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgWT1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAi''@;'; + put 'put ''LCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxXPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLE49WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYw''@;'; + put 'put ''NywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkw''@;'; + put 'put ''NywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gcShoZSxPLHope3oubmVnYXRpdmU9Ty5uZWdhdGl2ZV5oZS5uZWdhdGl2ZTt2YXIgbmU9aGUubGVuZ3RoK08ubGVuZ3RofDA7ei5s''@;'; + put 'put ''ZW5ndGg9bmUsbmU9bmUtMXwwO3ZhciB0ZT0wfGhlLndvcmRzWzBdLHg9MHxPLndvcmRzWzBdLFA9dGUqeCxUPVAvNjcxMDg4NjR8MDt6LndvcmRzWzBdPTY3MTA4ODYzJlA7Zm9yKHZhciBTPTE7UzxuZTtTKyspe2Zvcih2YXIgRj1UPj4+MjYseWU9NjcxMDg4NjMmVCxDZT1NYXRoLm1pbihT''@;'; + put 'put ''LE8ubGVuZ3RoLTEpLERlPU1hdGgubWF4KDAsUy1oZS5sZW5ndGgrMSk7RGU8PUNlO0RlKyspRis9KFA9KHRlPTB8aGUud29yZHNbUy1EZXwwXSkqKHg9MHxPLndvcmRzW0RlXSkreWUpLzY3MTA4ODY0fDAseWU9NjcxMDg4NjMmUDt6LndvcmRzW1NdPTB8eWUsVD0wfEZ9cmV0dXJuIDAhPT1U''@;'; + put 'put ''P3oud29yZHNbU109MHxUOnoubGVuZ3RoLS0sei5zdHJpcCgpfVUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKE8seil7dmFyIG5lO2lmKHo9MHx6fHwxLDE2PT09KE89T3x8MTApfHwiaGV4Ij09PU8pe25lPSIiO2Zvcih2YXIgdGU9MCx4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2''@;'; + put 'put ''YXIgVj10aGlzLndvcmRzW1BdLFQ9KDE2Nzc3MjE1JihWPDx0ZXx4KSkudG9TdHJpbmcoMTYpO25lPTAhPSh4PVY+Pj4yNC10ZSYxNjc3NzIxNSl8fFAhPT10aGlzLmxlbmd0aC0xP1lbNi1ULmxlbmd0aF0rVCtuZTpUK25lLCh0ZSs9Mik+PTI2JiYodGUtPTI2LFAtLSl9Zm9yKDAhPT14JiYo''@;'; + put 'put ''bmU9eC50b1N0cmluZygxNikrbmUpO25lLmxlbmd0aCV6IT0wOyluZT0iMCIrbmU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYobmU9Ii0iK25lKSxuZX1pZihPPT09KDB8TykmJk8+PTImJk88PTM2KXt2YXIgUz1XW09dLEY9TltPXTtuZT0iIjt2YXIgeWU9dGhpcy5jbG9uZSgpO2Zvcih5''@;'; + put 'put ''ZS5uZWdhdGl2ZT0wOyF5ZS5pc1plcm8oKTspe3ZhciBDZT15ZS5tb2RuKEYpLnRvU3RyaW5nKE8pO25lPSh5ZT15ZS5pZGl2bihGKSkuaXNaZXJvKCk/Q2UrbmU6WVtTLUNlLmxlbmd0aF0rQ2UrbmV9Zm9yKHRoaXMuaXNaZXJvKCkmJihuZT0iMCIrbmUpO25lLmxlbmd0aCV6IT0wOyluZT0i''@;'; + put 'put ''MCIrbmU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYobmU9Ii0iK25lKSxuZX1FKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LFUucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIE89dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP08r''@;'; + put 'put ''PTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9PKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmRSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRz''@;'; + put 'put ''IiksMCE9PXRoaXMubmVnYXRpdmU/LU86T30sVS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxVLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihPLHope3JldHVybiBFKHZvaWQgMCE9PVEpLHRoaXMudG9BcnJheUxpa2UoUSxPLHopfSxV''@;'; + put 'put ''LnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksTyx6KX0sVS5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9dGhpcy5ieXRlTGVuZ3RoKCkseD1uZXx8TWF0aC5tYXgoMSx0ZSk7RSh0ZTw9eCwi''@;'; + put 'put ''Ynl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLEUoeD4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIFQsUyxQPSJsZSI9PT16LFY9bmV3IE8oeCksRj10aGlzLmNsb25lKCk7aWYoUCl7Zm9yKFM9MDshRi5pc1plcm8oKTtTKysp''@;'; + put 'put ''VD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVltTXT1UO2Zvcig7Uzx4O1MrKylWW1NdPTB9ZWxzZXtmb3IoUz0wO1M8eC10ZTtTKyspVltTXT0wO2ZvcihTPTA7IUYuaXNaZXJvKCk7UysrKVQ9Ri5hbmRsbigyNTUpLEYuaXVzaHJuKDgpLFZbeC1TLTFdPVR9cmV0dXJuIFZ9LFUucHJvdG90''@;'; + put 'put ''eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihPKXtyZXR1cm4gMzItTWF0aC5jbHozMihPKX06ZnVuY3Rpb24oTyl7dmFyIHo9TyxuZT0wO3JldHVybiB6Pj00MDk2JiYobmUrPTEzLHo+Pj49MTMpLHo+PTY0JiYobmUrPTcsej4+Pj03KSx6Pj04JiYobmUrPTQsej4+Pj00KSx6''@;'; + put 'put ''Pj0yJiYobmUrPTIsej4+Pj0yKSxuZSt6fSxVLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oTyl7aWYoMD09PU8pcmV0dXJuIDI2O3ZhciB6PU8sbmU9MDtyZXR1cm4gMD09KDgxOTEmeikmJihuZSs9MTMsej4+Pj0xMyksMD09KDEyNyZ6KSYmKG5lKz03LHo+Pj49NyksMD09KDE1Jnop''@;'; + put 'put ''JiYobmUrPTQsej4+Pj00KSwwPT0oMyZ6KSYmKG5lKz0yLHo+Pj49MiksMD09KDEmeikmJm5lKyssbmV9LFUucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciB6PXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3Ro''@;'; + put 'put ''LTEpK3p9LFUucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIE89MCx6PTA7ejx0aGlzLmxlbmd0aDt6Kyspe3ZhciBuZT10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW3pdKTtpZihPKz1uZSwyNiE9PW5lKWJyZWFrfXJldHVy''@;'; + put 'put ''biBPfSxVLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxVLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oTyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oTykuaWFkZG4oMSk6dGhp''@;'; + put 'put ''cy5jbG9uZSgpfSxVLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy50ZXN0bihPLTEpP3RoaXMubm90bihPKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0s''@;'; + put 'put ''VS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LFUucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LFUucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oTyl7Zm9yKDt0''@;'; + put 'put ''aGlzLmxlbmd0aDxPLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgej0wO3o8Ty5sZW5ndGg7eisrKXRoaXMud29yZHNbel09dGhpcy53b3Jkc1t6XXxPLndvcmRzW3pdO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlvcj1mdW5jdGlvbihPKXty''@;'; + put 'put ''ZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdW9yKE8pfSxVLnByb3RvdHlwZS5vcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihPKTpPLmNsb25lKCkuaW9yKHRoaXMpfSxVLnByb3RvdHlwZS51b3I9''@;'; + put 'put ''ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKE8pOk8uY2xvbmUoKS5pdW9yKHRoaXMpfSxVLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihPKXt2YXIgejt6PXRoaXMubGVuZ3RoPk8ubGVuZ3RoP086dGhpcztmb3IodmFyIG5lPTA7bmU8''@;'; + put 'put ''ei5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT10aGlzLndvcmRzW25lXSZPLndvcmRzW25lXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUp''@;'; + put 'put ''KSx0aGlzLml1YW5kKE8pfSxVLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKE8pOk8uY2xvbmUoKS5pYW5kKHRoaXMpfSxVLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5P''@;'; + put 'put ''Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoTyk6Ty5jbG9uZSgpLml1YW5kKHRoaXMpfSxVLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihPKXt2YXIgeixuZTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8oej10aGlzLG5lPU8pOih6PU8sbmU9dGhpcyk7Zm9yKHZhciB0ZT0wO3RlPG5lLmxlbmd0''@;'; + put 'put ''aDt0ZSsrKXRoaXMud29yZHNbdGVdPXoud29yZHNbdGVdXm5lLndvcmRzW3RlXTtpZih0aGlzIT09eilmb3IoO3RlPHoubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09ei53b3Jkc1t0ZV07cmV0dXJuIHRoaXMubGVuZ3RoPXoubGVuZ3RoLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXhv''@;'; + put 'put ''cj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihPKX0sVS5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihPKTpPLmNsb25lKCkuaXhvcih0aGlz''@;'; + put 'put ''KX0sVS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKE8pOk8uY2xvbmUoKS5pdXhvcih0aGlzKX0sVS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3Zh''@;'; + put 'put ''ciB6PTB8TWF0aC5jZWlsKE8vMjYpLG5lPU8lMjY7dGhpcy5fZXhwYW5kKHopLG5lPjAmJnotLTtmb3IodmFyIHRlPTA7dGU8ejt0ZSsrKXRoaXMud29yZHNbdGVdPTY3MTA4ODYzJn50aGlzLndvcmRzW3RlXTtyZXR1cm4gbmU+MCYmKHRoaXMud29yZHNbdGVdPX50aGlzLndvcmRzW3RlXSY2''@;'; + put 'put ''NzEwODg2Mz4+MjYtbmUpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUubm90bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKE8pfSxVLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKE8seil7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciBuZT1PLzI2fDAsdGU9''@;'; + put 'put ''TyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKG5lKzEpLHRoaXMud29yZHNbbmVdPXo/dGhpcy53b3Jkc1tuZV18MTw8dGU6dGhpcy53b3Jkc1tuZV0mfigxPDx0ZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8pe3ZhciB6LG5lLHRlO2lmKDAhPT10aGlzLm5lZ2F0''@;'; + put 'put ''aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHo9dGhpcy5pc3ViKE8pLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIE8ubmVnYXRpdmU9MCx6PXRoaXMuaXN1YihPKSxP''@;'; + put 'put ''Lm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8obmU9dGhpcyx0ZT1PKToobmU9Tyx0ZT10aGlzKTtmb3IodmFyIHg9MCxQPTA7UDx0ZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09NjcxMDg4NjMmKHo9KDB8bmUud29yZHNbUF0pKygwfHRlLndvcmRzW1Bd''@;'; + put 'put ''KSt4KSx4PXo+Pj4yNjtmb3IoOzAhPT14JiZQPG5lLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxuZS53b3Jkc1tQXSkreCkseD16Pj4+MjY7aWYodGhpcy5sZW5ndGg9bmUubGVuZ3RoLDAhPT14KXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPXgsdGhpcy5sZW5ndGgr''@;'; + put 'put ''KztlbHNlIGlmKG5lIT09dGhpcylmb3IoO1A8bmUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPW5lLndvcmRzW1BdO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oTyl7dmFyIHo7cmV0dXJuIDAhPT1PLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oTy5uZWdhdGl2''@;'; + put 'put ''ZT0wLHo9dGhpcy5zdWIoTyksTy5uZWdhdGl2ZV49MSx6KTowPT09Ty5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCx6PU8uc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx6KTp0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChPKTpPLmNs''@;'; + put 'put ''b25lKCkuaWFkZCh0aGlzKX0sVS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPKXtpZigwIT09Ty5uZWdhdGl2ZSl7Ty5uZWdhdGl2ZT0wO3ZhciB6PXRoaXMuaWFkZChPKTtyZXR1cm4gTy5uZWdhdGl2ZT0xLHouX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMu''@;'; + put 'put ''bmVnYXRpdmU9MCx0aGlzLmlhZGQoTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIHRlLHgsbmU9dGhpcy5jbXAoTyk7aWYoMD09PW5lKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztuZT4wPyh0ZT10aGlzLHg9''@;'; + put 'put ''Tyk6KHRlPU8seD10aGlzKTtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspUD0oej0oMHx0ZS53b3Jkc1tWXSktKDB8eC53b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtmb3IoOzAhPT1QJiZWPHRlLmxlbmd0aDtWKyspUD0oej0oMHx0ZS53b3Jkc1tWXSkr''@;'; + put 'put ''UCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtpZigwPT09UCYmVjx0ZS5sZW5ndGgmJnRlIT09dGhpcylmb3IoO1Y8dGUubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXRlLndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxWKSx0ZSE9PXRoaXMm''@;'; + put 'put ''Jih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihPKX07dmFyIEo9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgVCxTLEYsdGU9Ty53b3Jkcyx4PXoud29yZHMsUD1uZS53b3JkcyxWPTAseWU9MHx0''@;'; + put 'put ''ZVswXSxDZT04MTkxJnllLERlPXllPj4+MTMsUGU9MHx0ZVsxXSxRZT04MTkxJlBlLCRlPVBlPj4+MTMsZ3Q9MHx0ZVsyXSx3dD04MTkxJmd0LHZ0PWd0Pj4+MTMsQXQ9MHx0ZVszXSxtdD04MTkxJkF0LGh0PUF0Pj4+MTMsQnQ9MHx0ZVs0XSxvbj04MTkxJkJ0LF90PUJ0Pj4+MTMsdHQ9MHx0''@;'; + put 'put ''ZVs1XSxldD04MTkxJnR0LGF0PXR0Pj4+MTMsTHQ9MHx0ZVs2XSxDdD04MTkxJkx0LGZ0PUx0Pj4+MTMsSHQ9MHx0ZVs3XSxHZT04MTkxJkh0LFVlPUh0Pj4+MTMseXQ9MHx0ZVs4XSxqdD04MTkxJnl0LFF0PXl0Pj4+MTMsZ249MHx0ZVs5XSxkbj04MTkxJmduLHluPWduPj4+MTMsbG49MHx4''@;'; + put 'put ''WzBdLE5uPTgxOTEmbG4sYm49bG4+Pj4xMyxlcj0wfHhbMV0sc3I9ODE5MSZlcixYbj1lcj4+PjEzLEZyPTB8eFsyXSx4cj04MTkxJkZyLHF0PUZyPj4+MTMscHI9MHx4WzNdLG5yPTgxOTEmcHIsQW49cHI+Pj4xMyxxbj0wfHhbNF0sV3Q9ODE5MSZxbixwbj1xbj4+PjEzLEtuPTB8eFs1XSxO''@;'; + put 'put ''dD04MTkxJktuLHNuPUtuPj4+MTMsVW49MHx4WzZdLHduPTgxOTEmVW4sdG49VW4+Pj4xMyx6bj0wfHhbN10sVHI9ODE5MSZ6bixCbj16bj4+PjEzLGtyPTB8eFs4XSxtbj04MTkxJmtyLHVuPWtyPj4+MTMsY249MHx4WzldLF9uPTgxOTEmY24sR3Q9Y24+Pj4xMztuZS5uZWdhdGl2ZT1PLm5l''@;'; + put 'put ''Z2F0aXZlXnoubmVnYXRpdmUsbmUubGVuZ3RoPTE5O3ZhciBrbj0oVisoVD1NYXRoLmltdWwoQ2UsTm4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKENlLGJuKSkrTWF0aC5pbXVsKERlLE5uKXwwKSk8PDEzKXwwO1Y9KChGPU1hdGguaW11bChEZSxibikpKyhTPj4+MTMpfDApKyhrbj4+''@;'; + put 'put ''PjI2KXwwLGtuJj02NzEwODg2MyxUPU1hdGguaW11bChRZSxObiksUz0oUz1NYXRoLmltdWwoUWUsYm4pKStNYXRoLmltdWwoJGUsTm4pfDAsRj1NYXRoLmltdWwoJGUsYm4pO3ZhciBWbj0oVisoVD1UK01hdGguaW11bChDZSxzcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENl''@;'; + put 'put ''LFhuKXwwKStNYXRoLmltdWwoRGUsc3IpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsWG4pfDApKyhTPj4+MTMpfDApKyhWbj4+PjI2KXwwLFZuJj02NzEwODg2MyxUPU1hdGguaW11bCh3dCxObiksUz0oUz1NYXRoLmltdWwod3QsYm4pKStNYXRoLmltdWwodnQsTm4pfDAsRj1N''@;'; + put 'put ''YXRoLmltdWwodnQsYm4pLFQ9VCtNYXRoLmltdWwoUWUsc3IpfDAsUz0oUz1TK01hdGguaW11bChRZSxYbil8MCkrTWF0aC5pbXVsKCRlLHNyKXwwLEY9RitNYXRoLmltdWwoJGUsWG4pfDA7dmFyIGVuPShWKyhUPVQrTWF0aC5pbXVsKENlLHhyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoQ2UscXQpfDApK01hdGguaW11bChEZSx4cil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxxdCl8MCkrKFM+Pj4xMyl8MCkrKGVuPj4+MjYpfDAsZW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG10LE5uKSxTPShTPU1hdGguaW11bChtdCxibikpK01hdGguaW11bChodCxO''@;'; + put 'put ''bil8MCxGPU1hdGguaW11bChodCxibiksVD1UK01hdGguaW11bCh3dCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LFhuKXwwKStNYXRoLmltdWwodnQsc3IpfDAsRj1GK01hdGguaW11bCh2dCxYbil8MCxUPVQrTWF0aC5pbXVsKFFlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoUWUscXQpfDAp''@;'; + put 'put ''K01hdGguaW11bCgkZSx4cil8MCxGPUYrTWF0aC5pbXVsKCRlLHF0KXwwO3ZhciBJbj0oVisoVD1UK01hdGguaW11bChDZSxucil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEFuKXwwKStNYXRoLmltdWwoRGUsbnIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUs''@;'; + put 'put ''QW4pfDApKyhTPj4+MTMpfDApKyhJbj4+PjI2KXwwLEluJj02NzEwODg2MyxUPU1hdGguaW11bChvbixObiksUz0oUz1NYXRoLmltdWwob24sYm4pKStNYXRoLmltdWwoX3QsTm4pfDAsRj1NYXRoLmltdWwoX3QsYm4pLFQ9VCtNYXRoLmltdWwobXQsc3IpfDAsUz0oUz1TK01hdGguaW11bCht''@;'; + put 'put ''dCxYbil8MCkrTWF0aC5pbXVsKGh0LHNyKXwwLEY9RitNYXRoLmltdWwoaHQsWG4pfDAsVD1UK01hdGguaW11bCh3dCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHF0KXwwKStNYXRoLmltdWwodnQseHIpfDAsRj1GK01hdGguaW11bCh2dCxxdCl8MCxUPVQrTWF0aC5pbXVsKFFlLG5yKXww''@;'; + put 'put ''LFM9KFM9UytNYXRoLmltdWwoUWUsQW4pfDApK01hdGguaW11bCgkZSxucil8MCxGPUYrTWF0aC5pbXVsKCRlLEFuKXwwO3ZhciBKbj0oVisoVD1UK01hdGguaW11bChDZSxXdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHBuKXwwKStNYXRoLmltdWwoRGUsV3QpfDApKTw8''@;'; + put 'put ''MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUscG4pfDApKyhTPj4+MTMpfDApKyhKbj4+PjI2KXwwLEpuJj02NzEwODg2MyxUPU1hdGguaW11bChldCxObiksUz0oUz1NYXRoLmltdWwoZXQsYm4pKStNYXRoLmltdWwoYXQsTm4pfDAsRj1NYXRoLmltdWwoYXQsYm4pLFQ9VCtNYXRoLmltdWwo''@;'; + put 'put ''b24sc3IpfDAsUz0oUz1TK01hdGguaW11bChvbixYbil8MCkrTWF0aC5pbXVsKF90LHNyKXwwLEY9RitNYXRoLmltdWwoX3QsWG4pfDAsVD1UK01hdGguaW11bChtdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKG10LHF0KXwwKStNYXRoLmltdWwoaHQseHIpfDAsRj1GK01hdGguaW11bChodCxx''@;'; + put 'put ''dCl8MCxUPVQrTWF0aC5pbXVsKHd0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwod3QsQW4pfDApK01hdGguaW11bCh2dCxucil8MCxGPUYrTWF0aC5pbXVsKHZ0LEFuKXwwLFQ9VCtNYXRoLmltdWwoUWUsV3QpfDAsUz0oUz1TK01hdGguaW11bChRZSxwbil8MCkrTWF0aC5pbXVsKCRlLFd0KXww''@;'; + put 'put ''LEY9RitNYXRoLmltdWwoJGUscG4pfDA7dmFyIG9yPShWKyhUPVQrTWF0aC5pbXVsKENlLE50KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2Usc24pfDApK01hdGguaW11bChEZSxOdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxzbil8MCkrKFM+Pj4xMyl8MCkr''@;'; + put 'put ''KG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEN0LE5uKSxTPShTPU1hdGguaW11bChDdCxibikpK01hdGguaW11bChmdCxObil8MCxGPU1hdGguaW11bChmdCxibiksVD1UK01hdGguaW11bChldCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LFhuKXwwKStNYXRoLmltdWwo''@;'; + put 'put ''YXQsc3IpfDAsRj1GK01hdGguaW11bChhdCxYbil8MCxUPVQrTWF0aC5pbXVsKG9uLHhyKXwwLFM9KFM9UytNYXRoLmltdWwob24scXQpfDApK01hdGguaW11bChfdCx4cil8MCxGPUYrTWF0aC5pbXVsKF90LHF0KXwwLFQ9VCtNYXRoLmltdWwobXQsbnIpfDAsUz0oUz1TK01hdGguaW11bCht''@;'; + put 'put ''dCxBbil8MCkrTWF0aC5pbXVsKGh0LG5yKXwwLEY9RitNYXRoLmltdWwoaHQsQW4pfDAsVD1UK01hdGguaW11bCh3dCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHBuKXwwKStNYXRoLmltdWwodnQsV3QpfDAsRj1GK01hdGguaW11bCh2dCxwbil8MCxUPVQrTWF0aC5pbXVsKFFlLE50KXww''@;'; + put 'put ''LFM9KFM9UytNYXRoLmltdWwoUWUsc24pfDApK01hdGguaW11bCgkZSxOdCl8MCxGPUYrTWF0aC5pbXVsKCRlLHNuKXwwO3ZhciBncj0oVisoVD1UK01hdGguaW11bChDZSx3bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHRuKXwwKStNYXRoLmltdWwoRGUsd24pfDApKTw8''@;'; + put 'put ''MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsdG4pfDApKyhTPj4+MTMpfDApKyhncj4+PjI2KXwwLGdyJj02NzEwODg2MyxUPU1hdGguaW11bChHZSxObiksUz0oUz1NYXRoLmltdWwoR2UsYm4pKStNYXRoLmltdWwoVWUsTm4pfDAsRj1NYXRoLmltdWwoVWUsYm4pLFQ9VCtNYXRoLmltdWwo''@;'; + put 'put ''Q3Qsc3IpfDAsUz0oUz1TK01hdGguaW11bChDdCxYbil8MCkrTWF0aC5pbXVsKGZ0LHNyKXwwLEY9RitNYXRoLmltdWwoZnQsWG4pfDAsVD1UK01hdGguaW11bChldCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHF0KXwwKStNYXRoLmltdWwoYXQseHIpfDAsRj1GK01hdGguaW11bChhdCxx''@;'; + put 'put ''dCl8MCxUPVQrTWF0aC5pbXVsKG9uLG5yKXwwLFM9KFM9UytNYXRoLmltdWwob24sQW4pfDApK01hdGguaW11bChfdCxucil8MCxGPUYrTWF0aC5pbXVsKF90LEFuKXwwLFQ9VCtNYXRoLmltdWwobXQsV3QpfDAsUz0oUz1TK01hdGguaW11bChtdCxwbil8MCkrTWF0aC5pbXVsKGh0LFd0KXww''@;'; + put 'put ''LEY9RitNYXRoLmltdWwoaHQscG4pfDAsVD1UK01hdGguaW11bCh3dCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHNuKXwwKStNYXRoLmltdWwodnQsTnQpfDAsRj1GK01hdGguaW11bCh2dCxzbil8MCxUPVQrTWF0aC5pbXVsKFFlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdG4pfDAp''@;'; + put 'put ''K01hdGguaW11bCgkZSx3bil8MCxGPUYrTWF0aC5pbXVsKCRlLHRuKXwwO3ZhciBLcj0oVisoVD1UK01hdGguaW11bChDZSxUcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEJuKXwwKStNYXRoLmltdWwoRGUsVHIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUs''@;'; + put 'put ''Qm4pfDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2MyxUPU1hdGguaW11bChqdCxObiksUz0oUz1NYXRoLmltdWwoanQsYm4pKStNYXRoLmltdWwoUXQsTm4pfDAsRj1NYXRoLmltdWwoUXQsYm4pLFQ9VCtNYXRoLmltdWwoR2Usc3IpfDAsUz0oUz1TK01hdGguaW11bChH''@;'; + put 'put ''ZSxYbil8MCkrTWF0aC5pbXVsKFVlLHNyKXwwLEY9RitNYXRoLmltdWwoVWUsWG4pfDAsVD1UK01hdGguaW11bChDdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHF0KXwwKStNYXRoLmltdWwoZnQseHIpfDAsRj1GK01hdGguaW11bChmdCxxdCl8MCxUPVQrTWF0aC5pbXVsKGV0LG5yKXww''@;'; + put 'put ''LFM9KFM9UytNYXRoLmltdWwoZXQsQW4pfDApK01hdGguaW11bChhdCxucil8MCxGPUYrTWF0aC5pbXVsKGF0LEFuKXwwLFQ9VCtNYXRoLmltdWwob24sV3QpfDAsUz0oUz1TK01hdGguaW11bChvbixwbil8MCkrTWF0aC5pbXVsKF90LFd0KXwwLEY9RitNYXRoLmltdWwoX3QscG4pfDAsVD1U''@;'; + put 'put ''K01hdGguaW11bChtdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LHNuKXwwKStNYXRoLmltdWwoaHQsTnQpfDAsRj1GK01hdGguaW11bChodCxzbil8MCxUPVQrTWF0aC5pbXVsKHd0LHduKXwwLFM9KFM9UytNYXRoLmltdWwod3QsdG4pfDApK01hdGguaW11bCh2dCx3bil8MCxGPUYrTWF0''@;'; + put 'put ''aC5pbXVsKHZ0LHRuKXwwLFQ9VCtNYXRoLmltdWwoUWUsVHIpfDAsUz0oUz1TK01hdGguaW11bChRZSxCbil8MCkrTWF0aC5pbXVsKCRlLFRyKXwwLEY9RitNYXRoLmltdWwoJGUsQm4pfDA7dmFyIFZyPShWKyhUPVQrTWF0aC5pbXVsKENlLG1uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoQ2UsdW4pfDApK01hdGguaW11bChEZSxtbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx1bil8MCkrKFM+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE5uKSxTPShTPU1hdGguaW11bChkbixibikpK01hdGguaW11bCh5bixO''@;'; + put 'put ''bil8MCxGPU1hdGguaW11bCh5bixibiksVD1UK01hdGguaW11bChqdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LFhuKXwwKStNYXRoLmltdWwoUXQsc3IpfDAsRj1GK01hdGguaW11bChRdCxYbil8MCxUPVQrTWF0aC5pbXVsKEdlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UscXQpfDAp''@;'; + put 'put ''K01hdGguaW11bChVZSx4cil8MCxGPUYrTWF0aC5pbXVsKFVlLHF0KXwwLFQ9VCtNYXRoLmltdWwoQ3QsbnIpfDAsUz0oUz1TK01hdGguaW11bChDdCxBbil8MCkrTWF0aC5pbXVsKGZ0LG5yKXwwLEY9RitNYXRoLmltdWwoZnQsQW4pfDAsVD1UK01hdGguaW11bChldCxXdCl8MCxTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKGV0LHBuKXwwKStNYXRoLmltdWwoYXQsV3QpfDAsRj1GK01hdGguaW11bChhdCxwbil8MCxUPVQrTWF0aC5pbXVsKG9uLE50KXwwLFM9KFM9UytNYXRoLmltdWwob24sc24pfDApK01hdGguaW11bChfdCxOdCl8MCxGPUYrTWF0aC5pbXVsKF90LHNuKXwwLFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwobXQsd24pfDAsUz0oUz1TK01hdGguaW11bChtdCx0bil8MCkrTWF0aC5pbXVsKGh0LHduKXwwLEY9RitNYXRoLmltdWwoaHQsdG4pfDAsVD1UK01hdGguaW11bCh3dCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LEJuKXwwKStNYXRoLmltdWwodnQsVHIpfDAsRj1GK01hdGguaW11bCh2''@;'; + put 'put ''dCxCbil8MCxUPVQrTWF0aC5pbXVsKFFlLG1uKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdW4pfDApK01hdGguaW11bCgkZSxtbil8MCxGPUYrTWF0aC5pbXVsKCRlLHVuKXwwO3ZhciBpaT0oVisoVD1UK01hdGguaW11bChDZSxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENl''@;'; + put 'put ''LEd0KXwwKStNYXRoLmltdWwoRGUsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsR3QpfDApKyhTPj4+MTMpfDApKyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChkbixzciksUz0oUz1NYXRoLmltdWwoZG4sWG4pKStNYXRoLmltdWwoeW4sc3IpfDAsRj1N''@;'; + put 'put ''YXRoLmltdWwoeW4sWG4pLFQ9VCtNYXRoLmltdWwoanQseHIpfDAsUz0oUz1TK01hdGguaW11bChqdCxxdCl8MCkrTWF0aC5pbXVsKFF0LHhyKXwwLEY9RitNYXRoLmltdWwoUXQscXQpfDAsVD1UK01hdGguaW11bChHZSxucil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLEFuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoVWUsbnIpfDAsRj1GK01hdGguaW11bChVZSxBbil8MCxUPVQrTWF0aC5pbXVsKEN0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscG4pfDApK01hdGguaW11bChmdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGZ0LHBuKXwwLFQ9VCtNYXRoLmltdWwoZXQsTnQpfDAsUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bChldCxzbil8MCkrTWF0aC5pbXVsKGF0LE50KXwwLEY9RitNYXRoLmltdWwoYXQsc24pfDAsVD1UK01hdGguaW11bChvbix3bil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHRuKXwwKStNYXRoLmltdWwoX3Qsd24pfDAsRj1GK01hdGguaW11bChfdCx0bil8MCxUPVQrTWF0aC5pbXVsKG10LFRy''@;'; + put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwobXQsQm4pfDApK01hdGguaW11bChodCxUcil8MCxGPUYrTWF0aC5pbXVsKGh0LEJuKXwwLFQ9VCtNYXRoLmltdWwod3QsbW4pfDAsUz0oUz1TK01hdGguaW11bCh3dCx1bil8MCkrTWF0aC5pbXVsKHZ0LG1uKXwwLEY9RitNYXRoLmltdWwodnQsdW4pfDA7''@;'; + put 'put ''dmFyIFJyPShWKyhUPVQrTWF0aC5pbXVsKFFlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUWUsR3QpfDApK01hdGguaW11bCgkZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bCgkZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYz''@;'; + put 'put ''LFQ9TWF0aC5pbXVsKGRuLHhyKSxTPShTPU1hdGguaW11bChkbixxdCkpK01hdGguaW11bCh5bix4cil8MCxGPU1hdGguaW11bCh5bixxdCksVD1UK01hdGguaW11bChqdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEFuKXwwKStNYXRoLmltdWwoUXQsbnIpfDAsRj1GK01hdGguaW11bChR''@;'; + put 'put ''dCxBbil8MCxUPVQrTWF0aC5pbXVsKEdlLFd0KXwwLFM9KFM9UytNYXRoLmltdWwoR2UscG4pfDApK01hdGguaW11bChVZSxXdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHBuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsTnQpfDAsUz0oUz1TK01hdGguaW11bChDdCxzbil8MCkrTWF0aC5pbXVsKGZ0LE50''@;'; + put 'put ''KXwwLEY9RitNYXRoLmltdWwoZnQsc24pfDAsVD1UK01hdGguaW11bChldCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHRuKXwwKStNYXRoLmltdWwoYXQsd24pfDAsRj1GK01hdGguaW11bChhdCx0bil8MCxUPVQrTWF0aC5pbXVsKG9uLFRyKXwwLFM9KFM9UytNYXRoLmltdWwob24sQm4p''@;'; + put 'put ''fDApK01hdGguaW11bChfdCxUcil8MCxGPUYrTWF0aC5pbXVsKF90LEJuKXwwLFQ9VCtNYXRoLmltdWwobXQsbW4pfDAsUz0oUz1TK01hdGguaW11bChtdCx1bil8MCkrTWF0aC5pbXVsKGh0LG1uKXwwLEY9RitNYXRoLmltdWwoaHQsdW4pfDA7dmFyIGxpPShWKyhUPVQrTWF0aC5pbXVsKHd0''@;'; + put 'put ''LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwod3QsR3QpfDApK01hdGguaW11bCh2dCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bCh2dCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG5yKSxTPShTPU1h''@;'; + put 'put ''dGguaW11bChkbixBbikpK01hdGguaW11bCh5bixucil8MCxGPU1hdGguaW11bCh5bixBbiksVD1UK01hdGguaW11bChqdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHBuKXwwKStNYXRoLmltdWwoUXQsV3QpfDAsRj1GK01hdGguaW11bChRdCxwbil8MCxUPVQrTWF0aC5pbXVsKEdlLE50''@;'; + put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwoR2Usc24pfDApK01hdGguaW11bChVZSxOdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHNuKXwwLFQ9VCtNYXRoLmltdWwoQ3Qsd24pfDAsUz0oUz1TK01hdGguaW11bChDdCx0bil8MCkrTWF0aC5pbXVsKGZ0LHduKXwwLEY9RitNYXRoLmltdWwoZnQsdG4pfDAs''@;'; + put 'put ''VD1UK01hdGguaW11bChldCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LEJuKXwwKStNYXRoLmltdWwoYXQsVHIpfDAsRj1GK01hdGguaW11bChhdCxCbil8MCxUPVQrTWF0aC5pbXVsKG9uLG1uKXwwLFM9KFM9UytNYXRoLmltdWwob24sdW4pfDApK01hdGguaW11bChfdCxtbil8MCxGPUYr''@;'; + put 'put ''TWF0aC5pbXVsKF90LHVuKXwwO3ZhciBNaT0oVisoVD1UK01hdGguaW11bChtdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKG10LEd0KXwwKStNYXRoLmltdWwoaHQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoaHQsR3QpfDApKyhTPj4+MTMpfDApKyhNaT4+''@;'; + put 'put ''PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChkbixXdCksUz0oUz1NYXRoLmltdWwoZG4scG4pKStNYXRoLmltdWwoeW4sV3QpfDAsRj1NYXRoLmltdWwoeW4scG4pLFQ9VCtNYXRoLmltdWwoanQsTnQpfDAsUz0oUz1TK01hdGguaW11bChqdCxzbil8MCkrTWF0aC5pbXVsKFF0LE50''@;'; + put 'put ''KXwwLEY9RitNYXRoLmltdWwoUXQsc24pfDAsVD1UK01hdGguaW11bChHZSx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHRuKXwwKStNYXRoLmltdWwoVWUsd24pfDAsRj1GK01hdGguaW11bChVZSx0bil8MCxUPVQrTWF0aC5pbXVsKEN0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsQm4p''@;'; + put 'put ''fDApK01hdGguaW11bChmdCxUcil8MCxGPUYrTWF0aC5pbXVsKGZ0LEJuKXwwLFQ9VCtNYXRoLmltdWwoZXQsbW4pfDAsUz0oUz1TK01hdGguaW11bChldCx1bil8MCkrTWF0aC5pbXVsKGF0LG1uKXwwLEY9RitNYXRoLmltdWwoYXQsdW4pfDA7dmFyIG8wPShWKyhUPVQrTWF0aC5pbXVsKG9u''@;'; + put 'put ''LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwob24sR3QpfDApK01hdGguaW11bChfdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChfdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE50KSxTPShTPU1h''@;'; + put 'put ''dGguaW11bChkbixzbikpK01hdGguaW11bCh5bixOdCl8MCxGPU1hdGguaW11bCh5bixzbiksVD1UK01hdGguaW11bChqdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHRuKXwwKStNYXRoLmltdWwoUXQsd24pfDAsRj1GK01hdGguaW11bChRdCx0bil8MCxUPVQrTWF0aC5pbXVsKEdlLFRy''@;'; + put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQm4pfDApK01hdGguaW11bChVZSxUcil8MCxGPUYrTWF0aC5pbXVsKFVlLEJuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsbW4pfDAsUz0oUz1TK01hdGguaW11bChDdCx1bil8MCkrTWF0aC5pbXVsKGZ0LG1uKXwwLEY9RitNYXRoLmltdWwoZnQsdW4pfDA7''@;'; + put 'put ''dmFyIG4wPShWKyhUPVQrTWF0aC5pbXVsKGV0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoZXQsR3QpfDApK01hdGguaW11bChhdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChhdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG4wPj4+MjYpfDAsbjAmPTY3MTA4ODYz''@;'; + put 'put ''LFQ9TWF0aC5pbXVsKGRuLHduKSxTPShTPU1hdGguaW11bChkbix0bikpK01hdGguaW11bCh5bix3bil8MCxGPU1hdGguaW11bCh5bix0biksVD1UK01hdGguaW11bChqdCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEJuKXwwKStNYXRoLmltdWwoUXQsVHIpfDAsRj1GK01hdGguaW11bChR''@;'; + put 'put ''dCxCbil8MCxUPVQrTWF0aC5pbXVsKEdlLG1uKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsdW4pfDApK01hdGguaW11bChVZSxtbil8MCxGPUYrTWF0aC5pbXVsKFVlLHVuKXwwO3ZhciBkMD0oVisoVD1UK01hdGguaW11bChDdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEN0''@;'; + put 'put ''LEd0KXwwKStNYXRoLmltdWwoZnQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoZnQsR3QpfDApKyhTPj4+MTMpfDApKyhkMD4+PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChkbixUciksUz0oUz1NYXRoLmltdWwoZG4sQm4pKStNYXRoLmltdWwoeW4sVHIpfDAsRj1N''@;'; + put 'put ''YXRoLmltdWwoeW4sQm4pLFQ9VCtNYXRoLmltdWwoanQsbW4pfDAsUz0oUz1TK01hdGguaW11bChqdCx1bil8MCkrTWF0aC5pbXVsKFF0LG1uKXwwLEY9RitNYXRoLmltdWwoUXQsdW4pfDA7dmFyIG0wPShWKyhUPVQrTWF0aC5pbXVsKEdlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRo''@;'; + put 'put ''LmltdWwoR2UsR3QpfDApK01hdGguaW11bChVZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChVZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG1uKSxTPShTPU1hdGguaW11bChkbix1bikpK01hdGguaW11bCh5bixt''@;'; + put 'put ''bil8MCxGPU1hdGguaW11bCh5bix1bik7dmFyIEcwPShWKyhUPVQrTWF0aC5pbXVsKGp0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoanQsR3QpfDApK01hdGguaW11bChRdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChRdCxHdCl8MCkrKFM+Pj4xMyl8MCkr''@;'; + put 'put ''KEcwPj4+MjYpfDAsRzAmPTY3MTA4ODYzO3ZhciBEaT0oVisoVD1NYXRoLmltdWwoZG4sX24pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKGRuLEd0KSkrTWF0aC5pbXVsKHluLF9uKXwwKSk8PDEzKXwwO3JldHVybiBWPSgoRj1NYXRoLmltdWwoeW4sR3QpKSsoUz4+PjEzKXwwKSsoRGk+''@;'; + put 'put ''Pj4yNil8MCxEaSY9NjcxMDg4NjMsUFswXT1rbixQWzFdPVZuLFBbMl09ZW4sUFszXT1JbixQWzRdPUpuLFBbNV09b3IsUFs2XT1ncixQWzddPUtyLFBbOF09VnIsUFs5XT1paSxQWzEwXT1ScixQWzExXT1saSxQWzEyXT1NaSxQWzEzXT1vMCxQWzE0XT1uMCxQWzE1XT1kMCxQWzE2XT1tMCxQ''@;'; + put 'put ''WzE3XT1HMCxQWzE4XT1EaSwwIT09ViYmKFBbMTldPVYsbmUubGVuZ3RoKyspLG5lfTtmdW5jdGlvbiBvZShoZSxPLHope3JldHVybihuZXcgY2UpLm11bHAoaGUsTyx6KX1mdW5jdGlvbiBjZShoZSxPKXt0aGlzLng9aGUsdGhpcy55PU99TWF0aC5pbXVsfHwoSj1xKSxVLnByb3RvdHlwZS5t''@;'; + put 'put ''dWxUbz1mdW5jdGlvbihPLHope3ZhciBuZSx0ZT10aGlzLmxlbmd0aCtPLmxlbmd0aDtyZXR1cm4gbmU9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1PLmxlbmd0aD9KKHRoaXMsTyx6KTp0ZTw2Mz9xKHRoaXMsTyx6KTp0ZTwxMDI0P2Z1bmN0aW9uIHNlKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5l''@;'; + put 'put ''Z2F0aXZlXmhlLm5lZ2F0aXZlLHoubGVuZ3RoPWhlLmxlbmd0aCtPLmxlbmd0aDtmb3IodmFyIG5lPTAsdGU9MCx4PTA7eDx6Lmxlbmd0aC0xO3grKyl7dmFyIFA9dGU7dGU9MDtmb3IodmFyIFY9NjcxMDg4NjMmbmUsVD1NYXRoLm1pbih4LE8ubGVuZ3RoLTEpLFM9TWF0aC5tYXgoMCx4LWhl''@;'; + put 'put ''Lmxlbmd0aCsxKTtTPD1UO1MrKyl7dmFyIERlPSgwfGhlLndvcmRzW3gtU10pKigwfE8ud29yZHNbU10pLFBlPTY3MTA4ODYzJkRlO1Y9NjcxMDg4NjMmKFBlPVBlK1Z8MCksdGUrPShQPShQPVArKERlLzY3MTA4ODY0fDApfDApKyhQZT4+PjI2KXwwKT4+PjI2LFAmPTY3MTA4ODYzfXoud29y''@;'; + put 'put ''ZHNbeF09VixuZT1QLFA9dGV9cmV0dXJuIDAhPT1uZT96LndvcmRzW3hdPW5lOnoubGVuZ3RoLS0sei5zdHJpcCgpfSh0aGlzLE8seik6b2UodGhpcyxPLHopLG5lfSxjZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihPKXtmb3IodmFyIHo9bmV3IEFycmF5KE8pLG5lPVUucHJvdG90eXBl''@;'; + put 'put ''Ll9jb3VudEJpdHMoTyktMSx0ZT0wO3RlPE87dGUrKyl6W3RlXT10aGlzLnJldkJpbih0ZSxuZSxPKTtyZXR1cm4gen0sY2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihPLHosbmUpe2lmKDA9PT1PfHxPPT09bmUtMSlyZXR1cm4gTztmb3IodmFyIHRlPTAseD0wO3g8ejt4KyspdGV8PSgx''@;'; + put 'put ''Jk8pPDx6LXgtMSxPPj49MTtyZXR1cm4gdGV9LGNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFApe2Zvcih2YXIgVj0wO1Y8UDtWKyspdGVbVl09eltPW1ZdXSx4W1ZdPW5lW09bVl1dfSxjZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKE8seixuZSx0ZSx4''@;'; + put 'put ''LFApe3RoaXMucGVybXV0ZShQLE8seixuZSx0ZSx4KTtmb3IodmFyIFY9MTtWPHg7Vjw8PTEpZm9yKHZhciBUPVY8PDEsUz1NYXRoLmNvcygyKk1hdGguUEkvVCksRj1NYXRoLnNpbigyKk1hdGguUEkvVCkseWU9MDt5ZTx4O3llKz1UKWZvcih2YXIgQ2U9UyxEZT1GLFBlPTA7UGU8VjtQZSsr''@;'; + put 'put ''KXt2YXIgUWU9bmVbeWUrUGVdLCRlPXRlW3llK1BlXSxndD1uZVt5ZStQZStWXSx3dD10ZVt5ZStQZStWXSx2dD1DZSpndC1EZSp3dDt3dD1DZSp3dCtEZSpndCxuZVt5ZStQZV09UWUrKGd0PXZ0KSx0ZVt5ZStQZV09JGUrd3QsbmVbeWUrUGUrVl09UWUtZ3QsdGVbeWUrUGUrVl09JGUtd3Qs''@;'; + put 'put ''UGUhPT1UJiYodnQ9UypDZS1GKkRlLERlPVMqRGUrRipDZSxDZT12dCl9fSxjZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oTyx6KXt2YXIgbmU9MXxNYXRoLm1heCh6LE8pLHRlPTEmbmUseD0wO2ZvcihuZT1uZS8yfDA7bmU7bmU+Pj49MSl4Kys7cmV0dXJuIDE8PHgrMSt0ZX0s''@;'; + put 'put ''Y2UucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihPLHosbmUpe2lmKCEobmU8PTEpKWZvcih2YXIgdGU9MDt0ZTxuZS8yO3RlKyspe3ZhciB4PU9bdGVdO09bdGVdPU9bbmUtdGUtMV0sT1tuZS10ZS0xXT14LHg9elt0ZV0selt0ZV09LXpbbmUtdGUtMV0seltuZS10ZS0xXT0teH19LGNl''@;'; + put 'put ''LnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oTyx6KXtmb3IodmFyIG5lPTAsdGU9MDt0ZTx6LzI7dGUrKyl7dmFyIHg9ODE5MipNYXRoLnJvdW5kKE9bMip0ZSsxXS96KStNYXRoLnJvdW5kKE9bMip0ZV0veikrbmU7T1t0ZV09NjcxMDg4NjMmeCxuZT14PDY3MTA4ODY0PzA6eC82''@;'; + put 'put ''NzEwODg2NHwwfXJldHVybiBPfSxjZS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbihPLHosbmUsdGUpe2Zvcih2YXIgeD0wLFA9MDtQPHo7UCsrKW5lWzIqUF09ODE5MSYoeCs9MHxPW1BdKSxuZVsyKlArMV09ODE5MSYoeD4+Pj0xMykseD4+Pj0xMztmb3IoUD0yKno7UDx0ZTsrK1Ap''@;'; + put 'put ''bmVbUF09MDtFKDA9PT14KSxFKDA9PSgtODE5MiZ4KSl9LGNlLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksbmU9MDtuZTxPO25lKyspeltuZV09MDtyZXR1cm4gen0sY2UucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9Mip0''@;'; + put 'put ''aGlzLmd1ZXNzTGVuMTNiKE8ubGVuZ3RoLHoubGVuZ3RoKSx4PXRoaXMubWFrZVJCVCh0ZSksUD10aGlzLnN0dWIodGUpLFY9bmV3IEFycmF5KHRlKSxUPW5ldyBBcnJheSh0ZSksUz1uZXcgQXJyYXkodGUpLEY9bmV3IEFycmF5KHRlKSx5ZT1uZXcgQXJyYXkodGUpLENlPW5ldyBBcnJheSh0''@;'; + put 'put ''ZSksRGU9bmUud29yZHM7RGUubGVuZ3RoPXRlLHRoaXMuY29udmVydDEzYihPLndvcmRzLE8ubGVuZ3RoLFYsdGUpLHRoaXMuY29udmVydDEzYih6LndvcmRzLHoubGVuZ3RoLEYsdGUpLHRoaXMudHJhbnNmb3JtKFYsUCxULFMsdGUseCksdGhpcy50cmFuc2Zvcm0oRixQLHllLENlLHRlLHgp''@;'; + put 'put ''O2Zvcih2YXIgUGU9MDtQZTx0ZTtQZSsrKXt2YXIgUWU9VFtQZV0qeWVbUGVdLVNbUGVdKkNlW1BlXTtTW1BlXT1UW1BlXSpDZVtQZV0rU1tQZV0qeWVbUGVdLFRbUGVdPVFlfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShULFMsdGUpLHRoaXMudHJhbnNmb3JtKFQsUyxEZSxQLHRlLHgpLHRoaXMu''@;'; + put 'put ''Y29uanVnYXRlKERlLFAsdGUpLHRoaXMubm9ybWFsaXplMTNiKERlLHRlKSxuZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsbmUubGVuZ3RoPU8ubGVuZ3RoK3oubGVuZ3RoLG5lLnN0cmlwKCl9LFUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTty''@;'; + put 'put ''ZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLHRoaXMubXVsVG8oTyx6KX0sVS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLG9lKHRoaXMs''@;'; + put 'put ''Tyx6KX0sVS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKE8sdGhpcyl9LFUucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpO2Zvcih2YXIgej0wLG5lPTA7bmU8dGhpcy5sZW5n''@;'; + put 'put ''dGg7bmUrKyl7dmFyIHRlPSgwfHRoaXMud29yZHNbbmVdKSpPLHg9KDY3MTA4ODYzJnRlKSsoNjcxMDg4NjMmeik7ej4+PTI2LHorPXRlLzY3MTA4ODY0fDAseis9eD4+PjI2LHRoaXMud29yZHNbbmVdPTY3MTA4ODYzJnh9cmV0dXJuIDAhPT16JiYodGhpcy53b3Jkc1tuZV09eix0aGlzLmxl''@;'; + put 'put ''bmd0aCsrKSx0aGlzfSxVLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oTyl9LFUucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sVS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlt''@;'; + put 'put ''dWwodGhpcy5jbG9uZSgpKX0sVS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKE8pe3ZhciB6PWZ1bmN0aW9uIGVlKGhlKXtmb3IodmFyIE89bmV3IEFycmF5KGhlLmJpdExlbmd0aCgpKSx6PTA7ejxPLmxlbmd0aDt6Kyspe3ZhciB0ZT16JTI2O09bel09KGhlLndvcmRzW3ovMjZ8MF0mMTw8dGUp''@;'; + put 'put ''Pj4+dGV9cmV0dXJuIE99KE8pO2lmKDA9PT16Lmxlbmd0aClyZXR1cm4gbmV3IFUoMSk7Zm9yKHZhciBuZT10aGlzLHRlPTA7dGU8ei5sZW5ndGgmJjA9PT16W3RlXTt0ZSsrLG5lPW5lLnNxcigpKTtpZigrK3RlPHoubGVuZ3RoKWZvcih2YXIgeD1uZS5zcXIoKTt0ZTx6Lmxlbmd0aDt0ZSsr''@;'; + put 'put ''LHg9eC5zcXIoKSkwIT09elt0ZV0mJihuZT1uZS5tdWwoeCkpO3JldHVybiBuZX0sVS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgeCx6PU8lMjYsbmU9KE8teikvMjYsdGU9NjcxMDg4NjM+Pj4yNi16PDwyNi16O2lmKDAhPT16''@;'; + put 'put ''KXt2YXIgUD0wO2Zvcih4PTA7eDx0aGlzLmxlbmd0aDt4Kyspe3ZhciBWPXRoaXMud29yZHNbeF0mdGU7dGhpcy53b3Jkc1t4XT0oMHx0aGlzLndvcmRzW3hdKS1WPDx6fFAsUD1WPj4+MjYten1QJiYodGhpcy53b3Jkc1t4XT1QLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1uZSl7Zm9yKHg9dGhp''@;'; + put 'put ''cy5sZW5ndGgtMTt4Pj0wO3gtLSl0aGlzLndvcmRzW3grbmVdPXRoaXMud29yZHNbeF07Zm9yKHg9MDt4PG5lO3grKyl0aGlzLndvcmRzW3hdPTA7dGhpcy5sZW5ndGgrPW5lfXJldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PT10''@;'; + put 'put ''aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihPKX0sVS5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKE8seixuZSl7dmFyIHRlO0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKSx0ZT16Pyh6LXolMjYpLzI2OjA7dmFyIHg9TyUyNixQPU1hdGgubWluKChPLXgpLzI2LHRoaXMubGVuZ3RoKSxW''@;'; + put 'put ''PTY3MTA4ODYzXjY3MTA4ODYzPj4+eDw8eCxUPW5lO2lmKHRlLT1QLHRlPU1hdGgubWF4KDAsdGUpLFQpe2Zvcih2YXIgUz0wO1M8UDtTKyspVC53b3Jkc1tTXT10aGlzLndvcmRzW1NdO1QubGVuZ3RoPVB9aWYoMCE9PVApaWYodGhpcy5sZW5ndGg+UClmb3IodGhpcy5sZW5ndGgtPVAsUz0w''@;'; + put 'put ''O1M8dGhpcy5sZW5ndGg7UysrKXRoaXMud29yZHNbU109dGhpcy53b3Jkc1tTK1BdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIEY9MDtmb3IoUz10aGlzLmxlbmd0aC0xO1M+PTAmJigwIT09Rnx8Uz49dGUpO1MtLSl7dmFyIHllPTB8dGhpcy53b3Jkc1tTXTt0aGlz''@;'; + put 'put ''LndvcmRzW1NdPUY8PDI2LXh8eWU+Pj54LEY9eWUmVn1yZXR1cm4gVCYmMCE9PUYmJihULndvcmRzW1QubGVuZ3RoKytdPUYpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKE8s''@;'; + put 'put ''eixuZSl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKE8seixuZSl9LFUucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihPKX0sVS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5p''@;'; + put 'put ''dXNobG4oTyl9LFUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihPKX0sVS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oTyl9LFUucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKE8pe0UoIm51''@;'; + put 'put ''bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LG5lPShPLXopLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PW5lfHwhKHRoaXMud29yZHNbbmVdJjE8PHopKX0sVS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2''@;'; + put 'put ''LG5lPShPLXopLzI2O3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9bmU/dGhpczooMCE9PXomJm5lKyssdGhpcy5sZW5ndGg9TWF0aC5taW4obmUsdGhpcy5sZW5ndGgpLDAhPT16JiYodGhp''@;'; + put 'put ''cy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj56PDx6KSx0aGlzLnN0cmlwKCkpfSxVLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihPKX0sVS5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUo''@;'; + put 'put ''Im51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MD90aGlzLmlzdWJuKC1PKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPE8/KHRoaXMud29yZHNbMF09Ty0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6''@;'; + put 'put ''KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihPKX0sVS5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKE8pe3RoaXMud29yZHNbMF0rPU87Zm9yKHZhciB6PTA7ejx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t6XT49NjcxMDg4''@;'; + put 'put ''NjQ7eisrKXRoaXMud29yZHNbel0tPTY3MTA4ODY0LHo9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbeisxXT0xOnRoaXMud29yZHNbeisxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx6KzEpLHRoaXN9LFUucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKE8p''@;'; + put 'put ''e2lmKEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MClyZXR1cm4gdGhpcy5pYWRkbigtTyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPU8s''@;'; + put 'put ''MT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPDA7eisrKXRoaXMud29yZHNbel0rPTY3MTA4ODY0LHRoaXMud29yZHNb''@;'; + put 'put ''eisxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oTyl9LFUucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihPKX0sVS5wcm90b3R5cGUuaWFicz1m''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sVS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LFUucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihPLHosbmUpe3ZhciB4O3RoaXMuX2V4cGFuZChPLmxlbmd0aCtu''@;'; + put 'put ''ZSk7dmFyIFAsVj0wO2Zvcih4PTA7eDxPLmxlbmd0aDt4Kyspe1A9KDB8dGhpcy53b3Jkc1t4K25lXSkrVjt2YXIgVD0oMHxPLndvcmRzW3hdKSp6O1Y9KChQLT02NzEwODg2MyZUKT4+MjYpLShULzY3MTA4ODY0fDApLHRoaXMud29yZHNbeCtuZV09NjcxMDg4NjMmUH1mb3IoO3g8dGhpcy5s''@;'; + put 'put ''ZW5ndGgtbmU7eCsrKVY9KFA9KDB8dGhpcy53b3Jkc1t4K25lXSkrVik+PjI2LHRoaXMud29yZHNbeCtuZV09NjcxMDg4NjMmUDtpZigwPT09VilyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihFKC0xPT09ViksVj0wLHg9MDt4PHRoaXMubGVuZ3RoO3grKylWPShQPS0oMHx0aGlzLndvcmRzW3hd''@;'; + put 'put ''KStWKT4+MjYsdGhpcy53b3Jkc1t4XT02NzEwODg2MyZQO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihPLHope3ZhciBuZSx0ZT10aGlzLmNsb25lKCkseD1PLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdOzAhPShuZT0y''@;'; + put 'put ''Ni10aGlzLl9jb3VudEJpdHMoUCkpJiYoeD14LnVzaGxuKG5lKSx0ZS5pdXNobG4obmUpLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdKTt2YXIgUyxUPXRlLmxlbmd0aC14Lmxlbmd0aDtpZigibW9kIiE9PXopeyhTPW5ldyBVKG51bGwpKS5sZW5ndGg9VCsxLFMud29yZHM9bmV3IEFycmF5KFMu''@;'; + put 'put ''bGVuZ3RoKTtmb3IodmFyIEY9MDtGPFMubGVuZ3RoO0YrKylTLndvcmRzW0ZdPTB9dmFyIHllPXRlLmNsb25lKCkuX2lzaGxuc3VibXVsKHgsMSxUKTswPT09eWUubmVnYXRpdmUmJih0ZT15ZSxTJiYoUy53b3Jkc1tUXT0xKSk7Zm9yKHZhciBDZT1ULTE7Q2U+PTA7Q2UtLSl7dmFyIERlPTY3''@;'; + put 'put ''MTA4ODY0KigwfHRlLndvcmRzW3gubGVuZ3RoK0NlXSkrKDB8dGUud29yZHNbeC5sZW5ndGgrQ2UtMV0pO2ZvcihEZT1NYXRoLm1pbihEZS9QfDAsNjcxMDg4NjMpLHRlLl9pc2hsbnN1Ym11bCh4LERlLENlKTswIT09dGUubmVnYXRpdmU7KURlLS0sdGUubmVnYXRpdmU9MCx0ZS5faXNobG5z''@;'; + put 'put ''dWJtdWwoeCwxLENlKSx0ZS5pc1plcm8oKXx8KHRlLm5lZ2F0aXZlXj0xKTtTJiYoUy53b3Jkc1tDZV09RGUpfXJldHVybiBTJiZTLnN0cmlwKCksdGUuc3RyaXAoKSwiZGl2IiE9PXomJjAhPT1uZSYmdGUuaXVzaHJuKG5lKSx7ZGl2OlN8fG51bGwsbW9kOnRlfX0sVS5wcm90b3R5cGUuZGl2''@;'; + put 'put ''bW9kPWZ1bmN0aW9uKE8seixuZSl7cmV0dXJuIEUoIU8uaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgVSgwKSxtb2Q6bmV3IFUoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZT8oUD10aGlzLm5lZygpLmRpdm1vZChPLHopLCJtb2QiIT09eiYmKHRlPVAuZGl2''@;'; + put 'put ''Lm5lZygpKSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLG5lJiYwIT09eC5uZWdhdGl2ZSYmeC5pYWRkKE8pKSx7ZGl2OnRlLG1vZDp4fSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1PLm5lZ2F0aXZlPyhQPXRoaXMuZGl2bW9kKE8ubmVnKCkseiksIm1vZCIhPT16JiYodGU9UC5kaXYubmVn''@;'; + put 'put ''KCkpLHtkaXY6dGUsbW9kOlAubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmTy5uZWdhdGl2ZSk/KFA9dGhpcy5uZWcoKS5kaXZtb2QoTy5uZWcoKSx6KSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLG5lJiYwIT09eC5uZWdhdGl2ZSYmeC5pc3ViKE8pKSx7ZGl2OlAuZGl2LG1vZDp4fSk6Ty5s''@;'; + put 'put ''ZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKE8pPDA/e2RpdjpuZXcgVSgwKSxtb2Q6dGhpc306MT09PU8ubGVuZ3RoPyJkaXYiPT09ej97ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT16P3tkaXY6bnVsbCxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNb''@;'; + put 'put ''MF0pKX06e2Rpdjp0aGlzLmRpdm4oTy53b3Jkc1swXSksbW9kOm5ldyBVKHRoaXMubW9kbihPLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoTyx6KTt2YXIgdGUseCxQfSxVLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sImRpdiIsITEpLmRpdn0sVS5w''@;'; + put 'put ''cm90b3R5cGUubW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmRpdm1vZChPLCJtb2QiLCExKS5tb2R9LFUucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITApLm1vZH0sVS5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oTyl7dmFyIHo9''@;'; + put 'put ''dGhpcy5kaXZtb2QoTyk7aWYoei5tb2QuaXNaZXJvKCkpcmV0dXJuIHouZGl2O3ZhciBuZT0wIT09ei5kaXYubmVnYXRpdmU/ei5tb2QuaXN1YihPKTp6Lm1vZCx0ZT1PLnVzaHJuKDEpLHg9Ty5hbmRsbigxKSxQPW5lLmNtcCh0ZSk7cmV0dXJuIFA8MHx8MT09PXgmJjA9PT1QP3ouZGl2OjAh''@;'; + put 'put ''PT16LmRpdi5uZWdhdGl2ZT96LmRpdi5pc3VibigxKTp6LmRpdi5pYWRkbigxKX0sVS5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihPKXtFKE88PTY3MTA4ODYzKTtmb3IodmFyIHo9KDE8PDI2KSVPLG5lPTAsdGU9dGhpcy5sZW5ndGgtMTt0ZT49MDt0ZS0tKW5lPSh6Km5lKygwfHRoaXMud29y''@;'; + put 'put ''ZHNbdGVdKSklTztyZXR1cm4gbmV9LFUucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0wLG5lPXRoaXMubGVuZ3RoLTE7bmU+PTA7bmUtLSl7dmFyIHRlPSgwfHRoaXMud29yZHNbbmVdKSs2NzEwODg2NCp6O3RoaXMud29yZHNbbmVdPXRlL098''@;'; + put 'put ''MCx6PXRlJU99cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKE8pfSxVLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUpLEUoIU8uaXNaZXJvKCkpO3ZhciB6PXRoaXMsbmU9''@;'; + put 'put ''Ty5jbG9uZSgpO3o9MCE9PXoubmVnYXRpdmU/ei51bW9kKE8pOnouY2xvbmUoKTtmb3IodmFyIHRlPW5ldyBVKDEpLHg9bmV3IFUoMCksUD1uZXcgVSgwKSxWPW5ldyBVKDEpLFQ9MDt6LmlzRXZlbigpJiZuZS5pc0V2ZW4oKTspei5pdXNocm4oMSksbmUuaXVzaHJuKDEpLCsrVDtmb3IodmFy''@;'; + put 'put ''IFM9bmUuY2xvbmUoKSxGPXouY2xvbmUoKTshei5pc1plcm8oKTspe2Zvcih2YXIgeWU9MCxDZT0xOzA9PSh6LndvcmRzWzBdJkNlKSYmeWU8MjY7Kyt5ZSxDZTw8PTEpO2lmKHllPjApZm9yKHouaXVzaHJuKHllKTt5ZS0tID4wOykodGUuaXNPZGQoKXx8eC5pc09kZCgpKSYmKHRlLmlhZGQo''@;'; + put 'put ''UykseC5pc3ViKEYpKSx0ZS5pdXNocm4oMSkseC5pdXNocm4oMSk7Zm9yKHZhciBEZT0wLFBlPTE7MD09KG5lLndvcmRzWzBdJlBlKSYmRGU8MjY7KytEZSxQZTw8PTEpO2lmKERlPjApZm9yKG5lLml1c2hybihEZSk7RGUtLSA+MDspKFAuaXNPZGQoKXx8Vi5pc09kZCgpKSYmKFAuaWFkZChT''@;'; + put 'put ''KSxWLmlzdWIoRikpLFAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpO3ouY21wKG5lKT49MD8oei5pc3ViKG5lKSx0ZS5pc3ViKFApLHguaXN1YihWKSk6KG5lLmlzdWIoeiksUC5pc3ViKHRlKSxWLmlzdWIoeCkpfXJldHVybnthOlAsYjpWLGdjZDpuZS5pdXNobG4oVCl9fSxVLnByb3RvdHlwZS5f''@;'; + put 'put ''aW52bXA9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7dmFyIHllLHo9dGhpcyxuZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgdGU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPW5lLmNsb25lKCk7ei5jbXBu''@;'; + put 'put ''KDEpPjAmJm5lLmNtcG4oMSk+MDspe2Zvcih2YXIgVj0wLFQ9MTswPT0oei53b3Jkc1swXSZUKSYmVjwyNjsrK1YsVDw8PTEpO2lmKFY+MClmb3Ioei5pdXNocm4oVik7Vi0tID4wOyl0ZS5pc09kZCgpJiZ0ZS5pYWRkKFApLHRlLml1c2hybigxKTtmb3IodmFyIFM9MCxGPTE7MD09KG5lLndv''@;'; + put 'put ''cmRzWzBdJkYpJiZTPDI2OysrUyxGPDw9MSk7aWYoUz4wKWZvcihuZS5pdXNocm4oUyk7Uy0tID4wOyl4LmlzT2RkKCkmJnguaWFkZChQKSx4Lml1c2hybigxKTt6LmNtcChuZSk+PTA/KHouaXN1YihuZSksdGUuaXN1Yih4KSk6KG5lLmlzdWIoeikseC5pc3ViKHRlKSl9cmV0dXJuKHllPTA9''@;'; + put 'put ''PT16LmNtcG4oMSk/dGU6eCkuY21wbigwKTwwJiZ5ZS5pYWRkKE8pLHllfSxVLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oTyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gTy5hYnMoKTtpZihPLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciB6PXRoaXMuY2xvbmUoKSxuZT1PLmNsb25l''@;'; + put 'put ''KCk7ei5uZWdhdGl2ZT0wLG5lLm5lZ2F0aXZlPTA7Zm9yKHZhciB0ZT0wO3ouaXNFdmVuKCkmJm5lLmlzRXZlbigpO3RlKyspei5pdXNocm4oMSksbmUuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt6LmlzRXZlbigpOyl6Lml1c2hybigxKTtmb3IoO25lLmlzRXZlbigpOyluZS5pdXNocm4oMSk7''@;'; + put 'put ''dmFyIHg9ei5jbXAobmUpO2lmKHg8MCl7dmFyIFA9ejt6PW5lLG5lPVB9ZWxzZSBpZigwPT09eHx8MD09PW5lLmNtcG4oMSkpYnJlYWs7ei5pc3ViKG5lKX1yZXR1cm4gbmUuaXVzaGxuKHRlKX0sVS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5lZ2NkKE8pLmEudW1v''@;'; + put 'put ''ZChPKX0sVS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sVS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''d29yZHNbMF0mT30sVS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8pO3ZhciB6PU8lMjYsbmU9KE8teikvMjYsdGU9MTw8ejtpZih0aGlzLmxlbmd0aDw9bmUpcmV0dXJuIHRoaXMuX2V4cGFuZChuZSsxKSx0aGlzLndvcmRzW25lXXw9dGUsdGhpcztm''@;'; + put 'put ''b3IodmFyIHg9dGUsUD1uZTswIT09eCYmUDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPTB8dGhpcy53b3Jkc1tQXTt4PShWKz14KT4+PjI2LHRoaXMud29yZHNbUF09ViY9NjcxMDg4NjN9cmV0dXJuIDAhPT14JiYodGhpcy53b3Jkc1tQXT14LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90''@;'; + put 'put ''eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxVLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKE8pe3ZhciBuZSx6PU88MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXopcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnop''@;'; + put 'put ''cmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpbmU9MTtlbHNle3omJihPPS1PKSxFKE88PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciB0ZT0wfHRoaXMud29yZHNbMF07bmU9dGU9PT1PPzA6dGU8Tz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8w''@;'; + put 'put ''fC1uZTpuZX0sVS5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKE8pe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHo9dGhpcy51Y21wKE8pO3JldHVybiAwIT09dGhpcy5u''@;'; + put 'put ''ZWdhdGl2ZT8wfC16Onp9LFUucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oTyl7aWYodGhpcy5sZW5ndGg+Ty5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8Ty5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB6PTAsbmU9dGhpcy5sZW5ndGgtMTtuZT49MDtuZS0tKXt2YXIgdGU9MHx0aGlz''@;'; + put 'put ''LndvcmRzW25lXSx4PTB8Ty53b3Jkc1tuZV07aWYodGUhPT14KXt0ZTx4P3o9LTE6dGU+eCYmKHo9MSk7YnJlYWt9fXJldHVybiB6fSxVLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmd0PWZ1bmN0aW9uKE8pe3JldHVybiAx''@;'; + put 'put ''PT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKT49MH0sVS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKT49MH0sVS5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5j''@;'; + put 'put ''bXBuKE8pfSxVLnByb3RvdHlwZS5sdD1mdW5jdGlvbihPKXtyZXR1cm4tMT09PXRoaXMuY21wKE8pfSxVLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcG4oTyk8PTB9LFUucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXAoTyk8PTB9LFUu''@;'; + put 'put ''cHJvdG90eXBlLmVxbj1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oTyl7cmV0dXJuIDA9PT10aGlzLmNtcChPKX0sVS5yZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBUZShPKX0sVS5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24o''@;'; + put 'put ''Tyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksRSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxPLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLmZyb21S''@;'; + put 'put ''ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxVLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucmVk''@;'; + put 'put ''PU8sdGhpc30sVS5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlz''@;'; + put 'put ''LnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlh''@;'; + put 'put ''ZGQodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhp''@;'; + put 'put ''cy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5z''@;'; + put 'put ''aGwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5tdWwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSU11''@;'; + put 'put ''bD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsTyksdGhpcy5yZWQuaW11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJl''@;'; + put 'put ''ZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVt''@;'; + put 'put ''YmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LFUucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0''@;'; + put 'put ''aGlzLnJlZC5zcXJ0KHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sVS5wcm90b3R5cGUu''@;'; + put 'put ''cmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LFUucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJl''@;'; + put 'put ''ZCYmIU8ucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLE8pfTt2YXIgZGU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiB2ZShoZSxPKXt0aGlzLm5hbWU9aGUsdGhpcy5w''@;'; + put 'put ''PW5ldyBVKE8sMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBVKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBBZSgpe3ZlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm''@;'; + put 'put ''IGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24ga2UoKXt2ZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIFNlKCl7dmUu''@;'; + put 'put ''Y2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBJZSgpe3ZlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZm''@;'; + put 'put ''ZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gVGUoaGUpe2lmKCJzdHJpbmciPT10eXBlb2YgaGUpe3ZhciBPPVUuX3ByaW1lKGhlKTt0aGlzLm09Ty5wLHRoaXMucHJpbWU9T31lbHNlIEUoaGUuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09aGUsdGhpcy5w''@;'; + put 'put ''cmltZT1udWxsfWZ1bmN0aW9uIEVlKGhlKXtUZS5jYWxsKHRoaXMsaGUpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IFUoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9''@;'; + put 'put ''dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRo''@;'; + put 'put ''aXMubWludil9dmUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgTz1uZXcgVShudWxsKTtyZXR1cm4gTy53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLE99LHZlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKE8pe3ZhciBuZSx6PU87ZG97dGhpcy5zcGxpdCh6''@;'; + put 'put ''LHRoaXMudG1wKSxuZT0oej0oej10aGlzLmltdWxLKHopKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUobmU+dGhpcy5uKTt2YXIgdGU9bmU8dGhpcy5uPy0xOnoudWNtcCh0aGlzLnApO3JldHVybiAwPT09dGU/KHoud29yZHNbMF09MCx6Lmxlbmd0aD0xKTp0ZT4wP3ouaXN1''@;'; + put 'put ''Yih0aGlzLnApOnZvaWQgMCE9PXouc3RyaXA/ei5zdHJpcCgpOnouX3N0cmlwKCksen0sdmUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKE8seil7Ty5pdXNocm4odGhpcy5uLDAseil9LHZlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtyZXR1cm4gTy5pbXVsKHRoaXMuayl9LE1lKEFl''@;'; + put 'put ''LHZlKSxBZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtmb3IodmFyIHRlPU1hdGgubWluKE8ubGVuZ3RoLDkpLHg9MDt4PHRlO3grKyl6LndvcmRzW3hdPU8ud29yZHNbeF07aWYoei5sZW5ndGg9dGUsTy5sZW5ndGg8PTkpcmV0dXJuIE8ud29yZHNbMF09MCx2b2lkKE8ubGVuZ3Ro''@;'; + put 'put ''PTEpO3ZhciBQPU8ud29yZHNbOV07Zm9yKHoud29yZHNbei5sZW5ndGgrK109NDE5NDMwMyZQLHg9MTA7eDxPLmxlbmd0aDt4Kyspe3ZhciBWPTB8Ty53b3Jkc1t4XTtPLndvcmRzW3gtMTBdPSg0MTk0MzAzJlYpPDw0fFA+Pj4yMixQPVZ9Ty53b3Jkc1t4LTEwXT1QPj4+PTIyLE8ubGVuZ3Ro''@;'; + put 'put ''LT0wPT09UCYmTy5sZW5ndGg+MTA/MTA6OX0sQWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe08ud29yZHNbTy5sZW5ndGhdPTAsTy53b3Jkc1tPLmxlbmd0aCsxXT0wLE8ubGVuZ3RoKz0yO2Zvcih2YXIgej0wLG5lPTA7bmU8Ty5sZW5ndGg7bmUrKyl7dmFyIHRlPTB8Ty53b3Jkc1tu''@;'; + put 'put ''ZV07Ty53b3Jkc1tuZV09NjcxMDg4NjMmKHorPTk3Nyp0ZSksej02NCp0ZSsoei82NzEwODg2NHwwKX1yZXR1cm4gMD09PU8ud29yZHNbTy5sZW5ndGgtMV0mJihPLmxlbmd0aC0tLDA9PT1PLndvcmRzW08ubGVuZ3RoLTFdJiZPLmxlbmd0aC0tKSxPfSxNZShrZSx2ZSksTWUoU2UsdmUpLE1l''@;'; + put 'put ''KEllLHZlKSxJZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PTAsbmU9MDtuZTxPLmxlbmd0aDtuZSsrKXt2YXIgdGU9MTkqKDB8Ty53b3Jkc1tuZV0pK3oseD02NzEwODg2MyZ0ZTt0ZT4+Pj0yNixPLndvcmRzW25lXT14LHo9dGV9cmV0dXJuIDAhPT16JiYoTy53b3Jk''@;'; + put 'put ''c1tPLmxlbmd0aCsrXT16KSxPfSxVLl9wcmltZT1mdW5jdGlvbihPKXtpZihkZVtPXSlyZXR1cm4gZGVbT107dmFyIHo7aWYoImsyNTYiPT09Tyl6PW5ldyBBZTtlbHNlIGlmKCJwMjI0Ij09PU8pej1uZXcga2U7ZWxzZSBpZigicDE5MiI9PT1PKXo9bmV3IFNlO2Vsc2V7aWYoInAyNTUxOSIh''@;'; + put 'put ''PT1PKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK08pO3o9bmV3IEllfXJldHVybiBkZVtPXT16LHp9LFRlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQsInJlZCB3''@;'; + put 'put ''b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKE8seil7RSgwPT0oTy5uZWdhdGl2ZXx6Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxFKE8ucmVkJiZPLnJlZD09PXoucmVkLCJyZWQgd29ya3Mgb25s''@;'; + put 'put ''eSB3aXRoIHJlZCBudW1iZXJzIil9LFRlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShPKS5fZm9yY2VSZWQodGhpcyk6Ty51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9u''@;'; + put 'put ''KE8pe3JldHVybiBPLmlzWmVybygpP08uY2xvbmUoKTp0aGlzLm0uc3ViKE8pLl9mb3JjZVJlZCh0aGlzKX0sVGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5hZGQoeik7cmV0dXJuIG5lLmNtcCh0aGlzLm0pPj0wJiZuZS5pc3ViKHRo''@;'; + put 'put ''aXMubSksbmUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5pYWRkKHopO3JldHVybiBuZS5jbXAodGhpcy5tKT49MCYmbmUuaXN1Yih0aGlzLm0pLG5lfSxUZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9u''@;'; + put 'put ''KE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLnN1Yih6KTtyZXR1cm4gbmUuY21wbigwKTwwJiZuZS5pYWRkKHRoaXMubSksbmUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5pc3ViKHop''@;'; + put 'put ''O3JldHVybiBuZS5jbXBuKDApPDAmJm5lLmlhZGQodGhpcy5tKSxuZX0sVGUucHJvdG90eXBlLnNobD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkxKE8pLHRoaXMuaW1vZChPLnVzaGxuKHopKX0sVGUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5f''@;'; + put 'put ''dmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLmltdWwoeikpfSxUZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoTyx6KSx0aGlzLmltb2QoTy5tdWwoeikpfSxUZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbXVsKE8sTy5j''@;'; + put 'put ''bG9uZSgpKX0sVGUucHJvdG90eXBlLnNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5tdWwoTyxPKX0sVGUucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oTyl7aWYoTy5pc1plcm8oKSlyZXR1cm4gTy5jbG9uZSgpO3ZhciB6PXRoaXMubS5hbmRsbigzKTtpZihFKHolMj09MSksMz09PXope3Zh''@;'; + put 'put ''ciBuZT10aGlzLm0uYWRkKG5ldyBVKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KE8sbmUpfWZvcih2YXIgdGU9dGhpcy5tLnN1Ym4oMSkseD0wOyF0ZS5pc1plcm8oKSYmMD09PXRlLmFuZGxuKDEpOyl4KyssdGUuaXVzaHJuKDEpO0UoIXRlLmlzWmVybygpKTt2YXIgUD1uZXcgVSgx''@;'; + put 'put ''KS50b1JlZCh0aGlzKSxWPVAucmVkTmVnKCksVD10aGlzLm0uc3VibigxKS5pdXNocm4oMSksUz10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKFM9bmV3IFUoMipTKlMpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhTLFQpLmNtcChWKTspUy5yZWRJQWRkKFYpO2Zvcih2YXIgRj10aGlzLnBvdyhT''@;'; + put 'put ''LHRlKSx5ZT10aGlzLnBvdyhPLHRlLmFkZG4oMSkuaXVzaHJuKDEpKSxDZT10aGlzLnBvdyhPLHRlKSxEZT14OzAhPT1DZS5jbXAoUCk7KXtmb3IodmFyIFBlPUNlLFFlPTA7MCE9PVBlLmNtcChQKTtRZSsrKVBlPVBlLnJlZFNxcigpO0UoUWU8RGUpO3ZhciAkZT10aGlzLnBvdyhGLG5ldyBV''@;'; + put 'put ''KDEpLml1c2hsbihEZS1RZS0xKSk7eWU9eWUucmVkTXVsKCRlKSxGPSRlLnJlZFNxcigpLENlPUNlLnJlZE11bChGKSxEZT1RZX1yZXR1cm4geWV9LFRlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3ZhciB6PU8uX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT16Lm5lZ2F0aXZlPyh6Lm5l''@;'; + put 'put ''Z2F0aXZlPTAsdGhpcy5pbW9kKHopLnJlZE5lZygpKTp0aGlzLmltb2Qoeil9LFRlLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyx6KXtpZih6LmlzWmVybygpKXJldHVybiBuZXcgVSgxKS50b1JlZCh0aGlzKTtpZigwPT09ei5jbXBuKDEpKXJldHVybiBPLmNsb25lKCk7dmFyIHRlPW5ldyBB''@;'; + put 'put ''cnJheSgxNik7dGVbMF09bmV3IFUoMSkudG9SZWQodGhpcyksdGVbMV09Tztmb3IodmFyIHg9Mjt4PHRlLmxlbmd0aDt4KyspdGVbeF09dGhpcy5tdWwodGVbeC0xXSxPKTt2YXIgUD10ZVswXSxWPTAsVD0wLFM9ei5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PVMmJihTPTI2KSx4PXoubGVuZ3Ro''@;'; + put 'put ''LTE7eD49MDt4LS0pe2Zvcih2YXIgRj16LndvcmRzW3hdLHllPVMtMTt5ZT49MDt5ZS0tKXt2YXIgQ2U9Rj4+eWUmMTtQIT09dGVbMF0mJihQPXRoaXMuc3FyKFApKSwwIT09Q2V8fDAhPT1WPyhWPDw9MSxWfD1DZSwoND09KytUfHwwPT09eCYmMD09PXllKSYmKFA9dGhpcy5tdWwoUCx0ZVtW''@;'; + put 'put ''XSksVD0wLFY9MCkpOlQ9MH1TPTI2fXJldHVybiBQfSxUZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKE8pe3ZhciB6PU8udW1vZCh0aGlzLm0pO3JldHVybiB6PT09Tz96LmNsb25lKCk6en0sVGUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PU8uY2xvbmUo''@;'; + put 'put ''KTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxVLm1vbnQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBFZShPKX0sTWUoRWUsVGUpLEVlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLnVzaGxuKHRoaXMuc2hpZnQpKX0sRWUucHJvdG90eXBlLmNvbnZlcnRG''@;'; + put 'put ''cm9tPWZ1bmN0aW9uKE8pe3ZhciB6PXRoaXMuaW1vZChPLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxFZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIE8ud29yZHNbMF09MCxPLmxlbmd0aD0xLE87dmFy''@;'; + put 'put ''IG5lPU8uaW11bCh6KSx0ZT1uZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1uZS5pc3ViKHRlKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5j''@;'; + put 'put ''bXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sRWUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgbmU9Ty5tdWwoeiksdGU9bmUubWFza24o''@;'; + put 'put ''dGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLHg9bmUuaXN1Yih0ZSkuaXVzaHJuKHRoaXMuc2hpZnQpLFA9eDtyZXR1cm4geC5jbXAodGhpcy5tKT49MD9QPXguaXN1Yih0aGlzLm0pOnguY21wbigwKTwwJiYoUD14LmlhZGQodGhpcy5t''@;'; + put 'put ''KSksUC5fZm9yY2VSZWQodGhpcyl9LEVlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltb2QoTy5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KFhlPUwubm1kKFhlKSx0aGlzKX0sOTI3MzU6ZnVuY3Rpb24oWGUpe1hlLmV4cG9y''@;'; + put 'put ''dHM9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gSmUoZnQpe3JldHVybihKZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihIdCl7cmV0dXJuIHR5cGVvZiBIdH06ZnVuY3Rpb24oSHQpe3JldHVybiBI''@;'; + put 'put ''dCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmSHQuY29uc3RydWN0b3I9PT1TeW1ib2wmJkh0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgSHR9KShmdCl9ZnVuY3Rpb24gTChmdCxIdCl7cmV0dXJuKEw9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbihVZSx5''@;'; + put 'put ''dCl7cmV0dXJuIFVlLl9fcHJvdG9fXz15dCxVZX0pKGZ0LEh0KX1mdW5jdGlvbiBtZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSly''@;'; + put 'put ''ZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGZ0KXtyZXR1cm4hMX19ZnVuY3Rpb24gQihmdCxIdCxHZSl7cmV0dXJuKEI9bWUoKT9SZWZsZWN0LmNvbnN0''@;'; + put 'put ''cnVjdDpmdW5jdGlvbih5dCxqdCxRdCl7dmFyIGduPVtudWxsXTtnbi5wdXNoLmFwcGx5KGduLGp0KTt2YXIgeW49bmV3KEZ1bmN0aW9uLmJpbmQuYXBwbHkoeXQsZ24pKTtyZXR1cm4gUXQmJkwoeW4sUXQucHJvdG90eXBlKSx5bn0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBF''@;'; + put 'put ''KGZ0KXtyZXR1cm4gZnVuY3Rpb24gTWUoZnQpe2lmKEFycmF5LmlzQXJyYXkoZnQpKXJldHVybiBaKGZ0KX0oZnQpfHxmdW5jdGlvbiBVKGZ0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZnRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZnRbIkBAaXRlcmF0b3IiXSly''@;'; + put 'put ''ZXR1cm4gQXJyYXkuZnJvbShmdCl9KGZ0KXx8ZnVuY3Rpb24gUShmdCxIdCl7aWYoZnQpe2lmKCJzdHJpbmciPT10eXBlb2YgZnQpcmV0dXJuIFooZnQsSHQpO3ZhciBHZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZnQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09R2UmJmZ0''@;'; + put 'put ''LmNvbnN0cnVjdG9yJiYoR2U9ZnQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1HZXx8IlNldCI9PT1HZSlyZXR1cm4gQXJyYXkuZnJvbShmdCk7aWYoIkFyZ3VtZW50cyI9PT1HZXx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoR2UpKXJldHVybiBa''@;'; + put 'put ''KGZ0LEh0KX19KGZ0KXx8ZnVuY3Rpb24gaWUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0''@;'; + put 'put ''ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBaKGZ0LEh0KXsobnVsbD09SHR8fEh0PmZ0Lmxlbmd0aCkmJihIdD1mdC5sZW5ndGgpO2Zvcih2YXIgR2U9MCxVZT1uZXcgQXJyYXkoSHQpO0dlPEh0O0dlKyspVWVbR2VdPWZ0W0dlXTtyZXR1cm4gVWV9dmFyIGxlPU9iamVjdC5oYXNP''@;'; + put 'put ''d25Qcm9wZXJ0eSxZPU9iamVjdC5zZXRQcm90b3R5cGVPZixXPU9iamVjdC5pc0Zyb3plbixOPU9iamVjdC5nZXRQcm90b3R5cGVPZixlZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHE9T2JqZWN0LmZyZWV6ZSxKPU9iamVjdC5zZWFsLHNlPU9iamVjdC5jcmVhdGUsb2U9InVu''@;'; + put 'put ''ZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LGNlPW9lLmFwcGx5LGRlPW9lLmNvbnN0cnVjdDtjZXx8KGNlPWZ1bmN0aW9uKEh0LEdlLFVlKXtyZXR1cm4gSHQuYXBwbHkoR2UsVWUpfSkscXx8KHE9ZnVuY3Rpb24oSHQpe3JldHVybiBIdH0pLEp8fChKPWZ1bmN0aW9uKEh0KXty''@;'; + put 'put ''ZXR1cm4gSHR9KSxkZXx8KGRlPWZ1bmN0aW9uKEh0LEdlKXtyZXR1cm4gQihIdCxFKEdlKSl9KTt2YXIgdmU9bmUoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpLEFlPW5lKEFycmF5LnByb3RvdHlwZS5wb3ApLGtlPW5lKEFycmF5LnByb3RvdHlwZS5wdXNoKSxTZT1uZShTdHJpbmcucHJvdG90''@;'; + put 'put ''eXBlLnRvTG93ZXJDYXNlKSxJZT1uZShTdHJpbmcucHJvdG90eXBlLm1hdGNoKSxUZT1uZShTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpLEVlPW5lKFN0cmluZy5wcm90b3R5cGUuaW5kZXhPZiksaGU9bmUoU3RyaW5nLnByb3RvdHlwZS50cmltKSxPPW5lKFJlZ0V4cC5wcm90b3R5cGUudGVz''@;'; + put 'put ''dCksej1mdW5jdGlvbiB0ZShmdCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBIdD1hcmd1bWVudHMubGVuZ3RoLEdlPW5ldyBBcnJheShIdCksVWU9MDtVZTxIdDtVZSsrKUdlW1VlXT1hcmd1bWVudHNbVWVdO3JldHVybiBkZShmdCxHZSl9fShUeXBlRXJyb3IpO2Z1bmN0aW9uIG5lKGZ0''@;'; + put 'put ''KXtyZXR1cm4gZnVuY3Rpb24oSHQpe2Zvcih2YXIgR2U9YXJndW1lbnRzLmxlbmd0aCxVZT1uZXcgQXJyYXkoR2U+MT9HZS0xOjApLHl0PTE7eXQ8R2U7eXQrKylVZVt5dC0xXT1hcmd1bWVudHNbeXRdO3JldHVybiBjZShmdCxIdCxVZSl9fWZ1bmN0aW9uIHgoZnQsSHQsR2Upe0dlPUdlfHxT''@;'; + put 'put ''ZSxZJiZZKGZ0LG51bGwpO2Zvcih2YXIgVWU9SHQubGVuZ3RoO1VlLS07KXt2YXIgeXQ9SHRbVWVdO2lmKCJzdHJpbmciPT10eXBlb2YgeXQpe3ZhciBqdD1HZSh5dCk7anQhPT15dCYmKFcoSHQpfHwoSHRbVWVdPWp0KSx5dD1qdCl9ZnRbeXRdPSEwfXJldHVybiBmdH1mdW5jdGlvbiBQKGZ0''@;'; + put 'put ''KXt2YXIgR2UsSHQ9c2UobnVsbCk7Zm9yKEdlIGluIGZ0KWNlKGxlLGZ0LFtHZV0pJiYoSHRbR2VdPWZ0W0dlXSk7cmV0dXJuIEh0fWZ1bmN0aW9uIFYoZnQsSHQpe2Zvcig7bnVsbCE9PWZ0Oyl7dmFyIEdlPWVlKGZ0LEh0KTtpZihHZSl7aWYoR2UuZ2V0KXJldHVybiBuZShHZS5nZXQpO2lm''@;'; + put 'put ''KCJmdW5jdGlvbiI9PXR5cGVvZiBHZS52YWx1ZSlyZXR1cm4gbmUoR2UudmFsdWUpfWZ0PU4oZnQpfXJldHVybiBmdW5jdGlvbiBVZSh5dCl7cmV0dXJuIGNvbnNvbGUud2FybigiZmFsbGJhY2sgdmFsdWUgZm9yIix5dCksbnVsbH19dmFyIFQ9cShbImEiLCJhYmJyIiwiYWNyb255bSIsImFk''@;'; + put 'put ''ZHJlc3MiLCJhcmVhIiwiYXJ0aWNsZSIsImFzaWRlIiwiYXVkaW8iLCJiIiwiYmRpIiwiYmRvIiwiYmlnIiwiYmxpbmsiLCJibG9ja3F1b3RlIiwiYm9keSIsImJyIiwiYnV0dG9uIiwiY2FudmFzIiwiY2FwdGlvbiIsImNlbnRlciIsImNpdGUiLCJjb2RlIiwiY29sIiwiY29sZ3JvdXAiLCJj''@;'; + put 'put ''b250ZW50IiwiZGF0YSIsImRhdGFsaXN0IiwiZGQiLCJkZWNvcmF0b3IiLCJkZWwiLCJkZXRhaWxzIiwiZGZuIiwiZGlhbG9nIiwiZGlyIiwiZGl2IiwiZGwiLCJkdCIsImVsZW1lbnQiLCJlbSIsImZpZWxkc2V0IiwiZmlnY2FwdGlvbiIsImZpZ3VyZSIsImZvbnQiLCJmb290ZXIiLCJmb3Jt''@;'; + put 'put ''IiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZCIsImhlYWRlciIsImhncm91cCIsImhyIiwiaHRtbCIsImkiLCJpbWciLCJpbnB1dCIsImlucyIsImtiZCIsImxhYmVsIiwibGVnZW5kIiwibGkiLCJtYWluIiwibWFwIiwibWFyayIsIm1hcnF1ZWUiLCJtZW51IiwibWVudWl0''@;'; + put 'put ''ZW0iLCJtZXRlciIsIm5hdiIsIm5vYnIiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uIiwib3V0cHV0IiwicCIsInBpY3R1cmUiLCJwcmUiLCJwcm9ncmVzcyIsInEiLCJycCIsInJ0IiwicnVieSIsInMiLCJzYW1wIiwic2VjdGlvbiIsInNlbGVjdCIsInNoYWRvdyIsInNtYWxsIiwic291cmNl''@;'; + put 'put ''Iiwic3BhY2VyIiwic3BhbiIsInN0cmlrZSIsInN0cm9uZyIsInN0eWxlIiwic3ViIiwic3VtbWFyeSIsInN1cCIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRlbXBsYXRlIiwidGV4dGFyZWEiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aW1lIiwidHIiLCJ0cmFjayIsInR0IiwidSIsInVsIiwi''@;'; + put 'put ''dmFyIiwidmlkZW8iLCJ3YnIiXSksUz1xKFsic3ZnIiwiYSIsImFsdGdseXBoIiwiYWx0Z2x5cGhkZWYiLCJhbHRnbHlwaGl0ZW0iLCJhbmltYXRlY29sb3IiLCJhbmltYXRlbW90aW9uIiwiYW5pbWF0ZXRyYW5zZm9ybSIsImNpcmNsZSIsImNsaXBwYXRoIiwiZGVmcyIsImRlc2MiLCJlbGxp''@;'; + put 'put ''cHNlIiwiZmlsdGVyIiwiZm9udCIsImciLCJnbHlwaCIsImdseXBocmVmIiwiaGtlcm4iLCJpbWFnZSIsImxpbmUiLCJsaW5lYXJncmFkaWVudCIsIm1hcmtlciIsIm1hc2siLCJtZXRhZGF0YSIsIm1wYXRoIiwicGF0aCIsInBhdHRlcm4iLCJwb2x5Z29uIiwicG9seWxpbmUiLCJyYWRpYWxn''@;'; + put 'put ''cmFkaWVudCIsInJlY3QiLCJzdG9wIiwic3R5bGUiLCJzd2l0Y2giLCJzeW1ib2wiLCJ0ZXh0IiwidGV4dHBhdGgiLCJ0aXRsZSIsInRyZWYiLCJ0c3BhbiIsInZpZXciLCJ2a2VybiJdKSxGPXEoWyJmZUJsZW5kIiwiZmVDb2xvck1hdHJpeCIsImZlQ29tcG9uZW50VHJhbnNmZXIiLCJmZUNv''@;'; + put 'put ''bXBvc2l0ZSIsImZlQ29udm9sdmVNYXRyaXgiLCJmZURpZmZ1c2VMaWdodGluZyIsImZlRGlzcGxhY2VtZW50TWFwIiwiZmVEaXN0YW50TGlnaHQiLCJmZUZsb29kIiwiZmVGdW5jQSIsImZlRnVuY0IiLCJmZUZ1bmNHIiwiZmVGdW5jUiIsImZlR2F1c3NpYW5CbHVyIiwiZmVJbWFnZSIsImZl''@;'; + put 'put ''TWVyZ2UiLCJmZU1lcmdlTm9kZSIsImZlTW9ycGhvbG9neSIsImZlT2Zmc2V0IiwiZmVQb2ludExpZ2h0IiwiZmVTcGVjdWxhckxpZ2h0aW5nIiwiZmVTcG90TGlnaHQiLCJmZVRpbGUiLCJmZVR1cmJ1bGVuY2UiXSkseWU9cShbImFuaW1hdGUiLCJjb2xvci1wcm9maWxlIiwiY3Vyc29yIiwi''@;'; + put 'put ''ZGlzY2FyZCIsImZlZHJvcHNoYWRvdyIsImZvbnQtZmFjZSIsImZvbnQtZmFjZS1mb3JtYXQiLCJmb250LWZhY2UtbmFtZSIsImZvbnQtZmFjZS1zcmMiLCJmb250LWZhY2UtdXJpIiwiZm9yZWlnbm9iamVjdCIsImhhdGNoIiwiaGF0Y2hwYXRoIiwibWVzaCIsIm1lc2hncmFkaWVudCIsIm1l''@;'; + put 'put ''c2hwYXRjaCIsIm1lc2hyb3ciLCJtaXNzaW5nLWdseXBoIiwic2NyaXB0Iiwic2V0Iiwic29saWRjb2xvciIsInVua25vd24iLCJ1c2UiXSksQ2U9cShbIm1hdGgiLCJtZW5jbG9zZSIsIm1lcnJvciIsIm1mZW5jZWQiLCJtZnJhYyIsIm1nbHlwaCIsIm1pIiwibWxhYmVsZWR0ciIsIm1tdWx0''@;'; + put 'put ''aXNjcmlwdHMiLCJtbiIsIm1vIiwibW92ZXIiLCJtcGFkZGVkIiwibXBoYW50b20iLCJtcm9vdCIsIm1yb3ciLCJtcyIsIm1zcGFjZSIsIm1zcXJ0IiwibXN0eWxlIiwibXN1YiIsIm1zdXAiLCJtc3Vic3VwIiwibXRhYmxlIiwibXRkIiwibXRleHQiLCJtdHIiLCJtdW5kZXIiLCJtdW5kZXJv''@;'; + put 'put ''dmVyIl0pLERlPXEoWyJtYWN0aW9uIiwibWFsaWduZ3JvdXAiLCJtYWxpZ25tYXJrIiwibWxvbmdkaXYiLCJtc2NhcnJpZXMiLCJtc2NhcnJ5IiwibXNncm91cCIsIm1zdGFjayIsIm1zbGluZSIsIm1zcm93Iiwic2VtYW50aWNzIiwiYW5ub3RhdGlvbiIsImFubm90YXRpb24teG1sIiwibXBy''@;'; + put 'put ''ZXNjcmlwdHMiLCJub25lIl0pLFBlPXEoWyIjdGV4dCJdKSxRZT1xKFsiYWNjZXB0IiwiYWN0aW9uIiwiYWxpZ24iLCJhbHQiLCJhdXRvY2FwaXRhbGl6ZSIsImF1dG9jb21wbGV0ZSIsImF1dG9waWN0dXJlaW5waWN0dXJlIiwiYXV0b3BsYXkiLCJiYWNrZ3JvdW5kIiwiYmdjb2xvciIsImJv''@;'; + put 'put ''cmRlciIsImNhcHR1cmUiLCJjZWxscGFkZGluZyIsImNlbGxzcGFjaW5nIiwiY2hlY2tlZCIsImNpdGUiLCJjbGFzcyIsImNsZWFyIiwiY29sb3IiLCJjb2xzIiwiY29sc3BhbiIsImNvbnRyb2xzIiwiY29udHJvbHNsaXN0IiwiY29vcmRzIiwiY3Jvc3NvcmlnaW4iLCJkYXRldGltZSIsImRl''@;'; + put 'put ''Y29kaW5nIiwiZGVmYXVsdCIsImRpciIsImRpc2FibGVkIiwiZGlzYWJsZXBpY3R1cmVpbnBpY3R1cmUiLCJkaXNhYmxlcmVtb3RlcGxheWJhY2siLCJkb3dubG9hZCIsImRyYWdnYWJsZSIsImVuY3R5cGUiLCJlbnRlcmtleWhpbnQiLCJmYWNlIiwiZm9yIiwiaGVhZGVycyIsImhlaWdodCIs''@;'; + put 'put ''ImhpZGRlbiIsImhpZ2giLCJocmVmIiwiaHJlZmxhbmciLCJpZCIsImlucHV0bW9kZSIsImludGVncml0eSIsImlzbWFwIiwia2luZCIsImxhYmVsIiwibGFuZyIsImxpc3QiLCJsb2FkaW5nIiwibG9vcCIsImxvdyIsIm1heCIsIm1heGxlbmd0aCIsIm1lZGlhIiwibWV0aG9kIiwibWluIiwi''@;'; + put 'put ''bWlubGVuZ3RoIiwibXVsdGlwbGUiLCJtdXRlZCIsIm5hbWUiLCJub25jZSIsIm5vc2hhZGUiLCJub3ZhbGlkYXRlIiwibm93cmFwIiwib3BlbiIsIm9wdGltdW0iLCJwYXR0ZXJuIiwicGxhY2Vob2xkZXIiLCJwbGF5c2lubGluZSIsInBvc3RlciIsInByZWxvYWQiLCJwdWJkYXRlIiwicmFk''@;'; + put 'put ''aW9ncm91cCIsInJlYWRvbmx5IiwicmVsIiwicmVxdWlyZWQiLCJyZXYiLCJyZXZlcnNlZCIsInJvbGUiLCJyb3dzIiwicm93c3BhbiIsInNwZWxsY2hlY2siLCJzY29wZSIsInNlbGVjdGVkIiwic2hhcGUiLCJzaXplIiwic2l6ZXMiLCJzcGFuIiwic3JjbGFuZyIsInN0YXJ0Iiwic3JjIiwi''@;'; + put 'put ''c3Jjc2V0Iiwic3RlcCIsInN0eWxlIiwic3VtbWFyeSIsInRhYmluZGV4IiwidGl0bGUiLCJ0cmFuc2xhdGUiLCJ0eXBlIiwidXNlbWFwIiwidmFsaWduIiwidmFsdWUiLCJ3aWR0aCIsInhtbG5zIiwic2xvdCJdKSwkZT1xKFsiYWNjZW50LWhlaWdodCIsImFjY3VtdWxhdGUiLCJhZGRpdGl2''@;'; + put 'put ''ZSIsImFsaWdubWVudC1iYXNlbGluZSIsImFzY2VudCIsImF0dHJpYnV0ZW5hbWUiLCJhdHRyaWJ1dGV0eXBlIiwiYXppbXV0aCIsImJhc2VmcmVxdWVuY3kiLCJiYXNlbGluZS1zaGlmdCIsImJlZ2luIiwiYmlhcyIsImJ5IiwiY2xhc3MiLCJjbGlwIiwiY2xpcHBhdGh1bml0cyIsImNsaXAt''@;'; + put 'put ''cGF0aCIsImNsaXAtcnVsZSIsImNvbG9yIiwiY29sb3ItaW50ZXJwb2xhdGlvbiIsImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyIsImNvbG9yLXByb2ZpbGUiLCJjb2xvci1yZW5kZXJpbmciLCJjeCIsImN5IiwiZCIsImR4IiwiZHkiLCJkaWZmdXNlY29uc3RhbnQiLCJkaXJlY3Rpb24i''@;'; + put 'put ''LCJkaXNwbGF5IiwiZGl2aXNvciIsImR1ciIsImVkZ2Vtb2RlIiwiZWxldmF0aW9uIiwiZW5kIiwiZmlsbCIsImZpbGwtb3BhY2l0eSIsImZpbGwtcnVsZSIsImZpbHRlciIsImZpbHRlcnVuaXRzIiwiZmxvb2QtY29sb3IiLCJmbG9vZC1vcGFjaXR5IiwiZm9udC1mYW1pbHkiLCJmb250LXNp''@;'; + put 'put ''emUiLCJmb250LXNpemUtYWRqdXN0IiwiZm9udC1zdHJldGNoIiwiZm9udC1zdHlsZSIsImZvbnQtdmFyaWFudCIsImZvbnQtd2VpZ2h0IiwiZngiLCJmeSIsImcxIiwiZzIiLCJnbHlwaC1uYW1lIiwiZ2x5cGhyZWYiLCJncmFkaWVudHVuaXRzIiwiZ3JhZGllbnR0cmFuc2Zvcm0iLCJoZWln''@;'; + put 'put ''aHQiLCJocmVmIiwiaWQiLCJpbWFnZS1yZW5kZXJpbmciLCJpbiIsImluMiIsImsiLCJrMSIsImsyIiwiazMiLCJrNCIsImtlcm5pbmciLCJrZXlwb2ludHMiLCJrZXlzcGxpbmVzIiwia2V5dGltZXMiLCJsYW5nIiwibGVuZ3RoYWRqdXN0IiwibGV0dGVyLXNwYWNpbmciLCJrZXJuZWxtYXRy''@;'; + put 'put ''aXgiLCJrZXJuZWx1bml0bGVuZ3RoIiwibGlnaHRpbmctY29sb3IiLCJsb2NhbCIsIm1hcmtlci1lbmQiLCJtYXJrZXItbWlkIiwibWFya2VyLXN0YXJ0IiwibWFya2VyaGVpZ2h0IiwibWFya2VydW5pdHMiLCJtYXJrZXJ3aWR0aCIsIm1hc2tjb250ZW50dW5pdHMiLCJtYXNrdW5pdHMiLCJt''@;'; + put 'put ''YXgiLCJtYXNrIiwibWVkaWEiLCJtZXRob2QiLCJtb2RlIiwibWluIiwibmFtZSIsIm51bW9jdGF2ZXMiLCJvZmZzZXQiLCJvcGVyYXRvciIsIm9wYWNpdHkiLCJvcmRlciIsIm9yaWVudCIsIm9yaWVudGF0aW9uIiwib3JpZ2luIiwib3ZlcmZsb3ciLCJwYWludC1vcmRlciIsInBhdGgiLCJw''@;'; + put 'put ''YXRobGVuZ3RoIiwicGF0dGVybmNvbnRlbnR1bml0cyIsInBhdHRlcm50cmFuc2Zvcm0iLCJwYXR0ZXJudW5pdHMiLCJwb2ludHMiLCJwcmVzZXJ2ZWFscGhhIiwicHJlc2VydmVhc3BlY3RyYXRpbyIsInByaW1pdGl2ZXVuaXRzIiwiciIsInJ4IiwicnkiLCJyYWRpdXMiLCJyZWZ4IiwicmVm''@;'; + put 'put ''eSIsInJlcGVhdGNvdW50IiwicmVwZWF0ZHVyIiwicmVzdGFydCIsInJlc3VsdCIsInJvdGF0ZSIsInNjYWxlIiwic2VlZCIsInNoYXBlLXJlbmRlcmluZyIsInNwZWN1bGFyY29uc3RhbnQiLCJzcGVjdWxhcmV4cG9uZW50Iiwic3ByZWFkbWV0aG9kIiwic3RhcnRvZmZzZXQiLCJzdGRkZXZp''@;'; + put 'put ''YXRpb24iLCJzdGl0Y2h0aWxlcyIsInN0b3AtY29sb3IiLCJzdG9wLW9wYWNpdHkiLCJzdHJva2UtZGFzaGFycmF5Iiwic3Ryb2tlLWRhc2hvZmZzZXQiLCJzdHJva2UtbGluZWNhcCIsInN0cm9rZS1saW5lam9pbiIsInN0cm9rZS1taXRlcmxpbWl0Iiwic3Ryb2tlLW9wYWNpdHkiLCJzdHJv''@;'; + put 'put ''a2UiLCJzdHJva2Utd2lkdGgiLCJzdHlsZSIsInN1cmZhY2VzY2FsZSIsInN5c3RlbWxhbmd1YWdlIiwidGFiaW5kZXgiLCJ0YXJnZXR4IiwidGFyZ2V0eSIsInRyYW5zZm9ybSIsInRyYW5zZm9ybS1vcmlnaW4iLCJ0ZXh0LWFuY2hvciIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtcmVuZGVy''@;'; + put 'put ''aW5nIiwidGV4dGxlbmd0aCIsInR5cGUiLCJ1MSIsInUyIiwidW5pY29kZSIsInZhbHVlcyIsInZpZXdib3giLCJ2aXNpYmlsaXR5IiwidmVyc2lvbiIsInZlcnQtYWR2LXkiLCJ2ZXJ0LW9yaWdpbi14IiwidmVydC1vcmlnaW4teSIsIndpZHRoIiwid29yZC1zcGFjaW5nIiwid3JhcCIsIndy''@;'; + put 'put ''aXRpbmctbW9kZSIsInhjaGFubmVsc2VsZWN0b3IiLCJ5Y2hhbm5lbHNlbGVjdG9yIiwieCIsIngxIiwieDIiLCJ4bWxucyIsInkiLCJ5MSIsInkyIiwieiIsInpvb21hbmRwYW4iXSksZ3Q9cShbImFjY2VudCIsImFjY2VudHVuZGVyIiwiYWxpZ24iLCJiZXZlbGxlZCIsImNsb3NlIiwiY29s''@;'; + put 'put ''dW1uc2FsaWduIiwiY29sdW1ubGluZXMiLCJjb2x1bW5zcGFuIiwiZGVub21hbGlnbiIsImRlcHRoIiwiZGlyIiwiZGlzcGxheSIsImRpc3BsYXlzdHlsZSIsImVuY29kaW5nIiwiZmVuY2UiLCJmcmFtZSIsImhlaWdodCIsImhyZWYiLCJpZCIsImxhcmdlb3AiLCJsZW5ndGgiLCJsaW5ldGhp''@;'; + put 'put ''Y2tuZXNzIiwibHNwYWNlIiwibHF1b3RlIiwibWF0aGJhY2tncm91bmQiLCJtYXRoY29sb3IiLCJtYXRoc2l6ZSIsIm1hdGh2YXJpYW50IiwibWF4c2l6ZSIsIm1pbnNpemUiLCJtb3ZhYmxlbGltaXRzIiwibm90YXRpb24iLCJudW1hbGlnbiIsIm9wZW4iLCJyb3dhbGlnbiIsInJvd2xpbmVz''@;'; + put 'put ''Iiwicm93c3BhY2luZyIsInJvd3NwYW4iLCJyc3BhY2UiLCJycXVvdGUiLCJzY3JpcHRsZXZlbCIsInNjcmlwdG1pbnNpemUiLCJzY3JpcHRzaXplbXVsdGlwbGllciIsInNlbGVjdGlvbiIsInNlcGFyYXRvciIsInNlcGFyYXRvcnMiLCJzdHJldGNoeSIsInN1YnNjcmlwdHNoaWZ0Iiwic3Vw''@;'; + put 'put ''c2NyaXB0c2hpZnQiLCJzeW1tZXRyaWMiLCJ2b2Zmc2V0Iiwid2lkdGgiLCJ4bWxucyJdKSx3dD1xKFsieGxpbms6aHJlZiIsInhtbDppZCIsInhsaW5rOnRpdGxlIiwieG1sOnNwYWNlIiwieG1sbnM6eGxpbmsiXSksdnQ9SigvXHtce1tcd1xXXSp8W1x3XFddKlx9XH0vZ20pLEF0PUooLzwl''@;'; + put 'put ''W1x3XFddKnxbXHdcV10qJT4vZ20pLG10PUooL15kYXRhLVtcLVx3Llx1MDBCNy1cdUZGRkZdLyksaHQ9SigvXmFyaWEtW1wtXHddKyQvKSxCdD1KKC9eKD86KD86KD86ZnxodCl0cHM/fG1haWx0b3x0ZWx8Y2FsbHRvfGNpZHx4bXBwKTp8W15hLXpdfFthLXorLlwtXSsoPzpbXmEteisuXC06''@;'; + put 'put ''XXwkKSkvaSksb249SigvXig/Olx3K3NjcmlwdHxkYXRhKTovaSksX3Q9SigvW1x1MDAwMC1cdTAwMjBcdTAwQTBcdTE2ODBcdTE4MEVcdTIwMDAtXHUyMDI5XHUyMDVGXHUzMDAwXS9nKSx0dD1KKC9eaHRtbCQvaSksZXQ9ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIHdp''@;'; + put 'put ''bmRvdz9udWxsOndpbmRvd30sYXQ9ZnVuY3Rpb24oSHQsR2Upe2lmKCJvYmplY3QiIT09SmUoSHQpfHwiZnVuY3Rpb24iIT10eXBlb2YgSHQuY3JlYXRlUG9saWN5KXJldHVybiBudWxsO3ZhciBVZT1udWxsLHl0PSJkYXRhLXR0LXBvbGljeS1zdWZmaXgiO0dlLmN1cnJlbnRTY3JpcHQmJkdl''@;'; + put 'put ''LmN1cnJlbnRTY3JpcHQuaGFzQXR0cmlidXRlKHl0KSYmKFVlPUdlLmN1cnJlbnRTY3JpcHQuZ2V0QXR0cmlidXRlKHl0KSk7dmFyIGp0PSJkb21wdXJpZnkiKyhVZT8iIyIrVWU6IiIpO3RyeXtyZXR1cm4gSHQuY3JlYXRlUG9saWN5KGp0LHtjcmVhdGVIVE1MOmZ1bmN0aW9uKGduKXtyZXR1''@;'; + put 'put ''cm4gZ259LGNyZWF0ZVNjcmlwdFVSTDpmdW5jdGlvbihnbil7cmV0dXJuIGdufX0pfWNhdGNoKFF0KXtyZXR1cm4gY29uc29sZS53YXJuKCJUcnVzdGVkVHlwZXMgcG9saWN5ICIranQrIiBjb3VsZCBub3QgYmUgY3JlYXRlZC4iKSxudWxsfX07cmV0dXJuIGZ1bmN0aW9uIEx0KCl7dmFyIGZ0''@;'; + put 'put ''PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpldCgpLEh0PWZ1bmN0aW9uKGZpKXtyZXR1cm4gTHQoZmkpfTtpZihIdC52ZXJzaW9uPSIyLjMuMTAiLEh0LnJlbW92ZWQ9W10sIWZ0fHwhZnQuZG9jdW1lbnR8fDkhPT1mdC5kb2N1bWVudC5u''@;'; + put 'put ''b2RlVHlwZSlyZXR1cm4gSHQuaXNTdXBwb3J0ZWQ9ITEsSHQ7dmFyIEdlPWZ0LmRvY3VtZW50LFVlPWZ0LmRvY3VtZW50LHl0PWZ0LkRvY3VtZW50RnJhZ21lbnQsanQ9ZnQuSFRNTFRlbXBsYXRlRWxlbWVudCxRdD1mdC5Ob2RlLGduPWZ0LkVsZW1lbnQsZG49ZnQuTm9kZUZpbHRlcix5bj1m''@;'; + put 'put ''dC5OYW1lZE5vZGVNYXAsbG49dm9pZCAwPT09eW4/ZnQuTmFtZWROb2RlTWFwfHxmdC5Nb3pOYW1lZEF0dHJNYXA6eW4sTm49ZnQuSFRNTEZvcm1FbGVtZW50LGJuPWZ0LkRPTVBhcnNlcixlcj1mdC50cnVzdGVkVHlwZXMsc3I9Z24ucHJvdG90eXBlLFhuPVYoc3IsImNsb25lTm9kZSIpLEZy''@;'; + put 'put ''PVYoc3IsIm5leHRTaWJsaW5nIikseHI9VihzciwiY2hpbGROb2RlcyIpLHF0PVYoc3IsInBhcmVudE5vZGUiKTtpZigiZnVuY3Rpb24iPT10eXBlb2YganQpe3ZhciBwcj1VZS5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3ByLmNvbnRlbnQmJnByLmNvbnRlbnQub3duZXJEb2N1bWVudCYm''@;'; + put 'put ''KFVlPXByLmNvbnRlbnQub3duZXJEb2N1bWVudCl9dmFyIG5yPWF0KGVyLEdlKSxBbj1ucj9uci5jcmVhdGVIVE1MKCIiKToiIixXdD1VZS5pbXBsZW1lbnRhdGlvbixwbj1VZS5jcmVhdGVOb2RlSXRlcmF0b3IsS249VWUuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxOdD1VZS5nZXRFbGVtZW50''@;'; + put 'put ''c0J5VGFnTmFtZSxzbj1HZS5pbXBvcnROb2RlLFVuPXt9O3RyeXtVbj1QKFVlKS5kb2N1bWVudE1vZGU/VWUuZG9jdW1lbnRNb2RlOnt9fWNhdGNoKFowKXt9dmFyIHduPXt9O0h0LmlzU3VwcG9ydGVkPSJmdW5jdGlvbiI9PXR5cGVvZiBxdCYmV3QmJnZvaWQgMCE9PVd0LmNyZWF0ZUhUTUxE''@;'; + put 'put ''b2N1bWVudCYmOSE9PVVuO3ZhciB2aSxybCx0bj12dCx6bj1BdCxUcj1tdCxCbj1odCxrcj1vbixtbj1fdCx1bj1CdCxjbj1udWxsLF9uPXgoe30sW10uY29uY2F0KEUoVCksRShTKSxFKEYpLEUoQ2UpLEUoUGUpKSksR3Q9bnVsbCxrbj14KHt9LFtdLmNvbmNhdChFKFFlKSxFKCRlKSxFKGd0''@;'; + put 'put ''KSxFKHd0KSkpLFZuPU9iamVjdC5zZWFsKE9iamVjdC5jcmVhdGUobnVsbCx7dGFnTmFtZUNoZWNrOnt3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCx2YWx1ZTpudWxsfSxhdHRyaWJ1dGVOYW1lQ2hlY2s6e3dyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxlbnVt''@;'; + put 'put ''ZXJhYmxlOiEwLHZhbHVlOm51bGx9LGFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50czp7d3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsdmFsdWU6ITF9fSkpLGVuPW51bGwsSW49bnVsbCxKbj0hMCxvcj0hMCxncj0hMSxLcj0hMSxWcj0hMSxpaT0hMSxScj0h''@;'; + put 'put ''MSxsaT0hMSxNaT0hMSxvMD0hMSxuMD0hMCxkMD0hMCxtMD0hMSxHMD17fSxEaT1udWxsLFcwPXgoe30sWyJhbm5vdGF0aW9uLXhtbCIsImF1ZGlvIiwiY29sZ3JvdXAiLCJkZXNjIiwiZm9yZWlnbm9iamVjdCIsImhlYWQiLCJpZnJhbWUiLCJtYXRoIiwibWkiLCJtbiIsIm1vIiwibXMiLCJt''@;'; + put 'put ''dGV4dCIsIm5vZW1iZWQiLCJub2ZyYW1lcyIsIm5vc2NyaXB0IiwicGxhaW50ZXh0Iiwic2NyaXB0Iiwic3R5bGUiLCJzdmciLCJ0ZW1wbGF0ZSIsInRoZWFkIiwidGl0bGUiLCJ2aWRlbyIsInhtcCJdKSxFbz1udWxsLHFvPXgoe30sWyJhdWRpbyIsInZpZGVvIiwiaW1nIiwic291cmNlIiwi''@;'; + put 'put ''aW1hZ2UiLCJ0cmFjayJdKSxjYT1udWxsLGxsPXgoe30sWyJhbHQiLCJjbGFzcyIsImZvciIsImlkIiwibGFiZWwiLCJuYW1lIiwicGF0dGVybiIsInBsYWNlaG9sZGVyIiwicm9sZSIsInN1bW1hcnkiLCJ0aXRsZSIsInZhbHVlIiwic3R5bGUiLCJ4bWxucyJdKSxRaT0iaHR0cDovL3d3dy53''@;'; + put 'put ''My5vcmcvMTk5OC9NYXRoL01hdGhNTCIsTWE9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixubD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsZ2w9bmwsQWk9ITEsYjA9WyJhcHBsaWNhdGlvbi94aHRtbCt4bWwiLCJ0ZXh0L2h0bWwiXSxzYT0idGV4dC9odG1sIixiaT1udWxs''@;'; + put 'put ''LG91PVVlLmNyZWF0ZUVsZW1lbnQoImZvcm0iKSxIYz1mdW5jdGlvbihmaSl7cmV0dXJuIGZpIGluc3RhbmNlb2YgUmVnRXhwfHxmaSBpbnN0YW5jZW9mIEZ1bmN0aW9ufSxVMD1mdW5jdGlvbihmaSl7YmkmJmJpPT09Zml8fCgoIWZpfHwib2JqZWN0IiE9PUplKGZpKSkmJihmaT17fSksZmk9''@;'; + put 'put ''UChmaSksdmk9dmk9LTE9PT1iMC5pbmRleE9mKGZpLlBBUlNFUl9NRURJQV9UWVBFKT9zYTpmaS5QQVJTRVJfTUVESUFfVFlQRSxybD0iYXBwbGljYXRpb24veGh0bWwreG1sIj09PXZpP2Z1bmN0aW9uKFIwKXtyZXR1cm4gUjB9OlNlLGNuPSJBTExPV0VEX1RBR1MiaW4gZmk/eCh7fSxmaS5B''@;'; + put 'put ''TExPV0VEX1RBR1MscmwpOl9uLEd0PSJBTExPV0VEX0FUVFIiaW4gZmk/eCh7fSxmaS5BTExPV0VEX0FUVFIscmwpOmtuLGNhPSJBRERfVVJJX1NBRkVfQVRUUiJpbiBmaT94KFAobGwpLGZpLkFERF9VUklfU0FGRV9BVFRSLHJsKTpsbCxFbz0iQUREX0RBVEFfVVJJX1RBR1MiaW4gZmk/eChQ''@;'; + put 'put ''KHFvKSxmaS5BRERfREFUQV9VUklfVEFHUyxybCk6cW8sRGk9IkZPUkJJRF9DT05URU5UUyJpbiBmaT94KHt9LGZpLkZPUkJJRF9DT05URU5UUyxybCk6VzAsZW49IkZPUkJJRF9UQUdTImluIGZpP3goe30sZmkuRk9SQklEX1RBR1MscmwpOnt9LEluPSJGT1JCSURfQVRUUiJpbiBmaT94KHt9''@;'; + put 'put ''LGZpLkZPUkJJRF9BVFRSLHJsKTp7fSxHMD0iVVNFX1BST0ZJTEVTImluIGZpJiZmaS5VU0VfUFJPRklMRVMsSm49ITEhPT1maS5BTExPV19BUklBX0FUVFIsb3I9ITEhPT1maS5BTExPV19EQVRBX0FUVFIsZ3I9ZmkuQUxMT1dfVU5LTk9XTl9QUk9UT0NPTFN8fCExLEtyPWZpLlNBRkVfRk9S''@;'; + put 'put ''X1RFTVBMQVRFU3x8ITEsVnI9ZmkuV0hPTEVfRE9DVU1FTlR8fCExLGxpPWZpLlJFVFVSTl9ET018fCExLE1pPWZpLlJFVFVSTl9ET01fRlJBR01FTlR8fCExLG8wPWZpLlJFVFVSTl9UUlVTVEVEX1RZUEV8fCExLFJyPWZpLkZPUkNFX0JPRFl8fCExLG4wPSExIT09ZmkuU0FOSVRJWkVfRE9N''@;'; + put 'put ''LGQwPSExIT09ZmkuS0VFUF9DT05URU5ULG0wPWZpLklOX1BMQUNFfHwhMSx1bj1maS5BTExPV0VEX1VSSV9SRUdFWFB8fHVuLGdsPWZpLk5BTUVTUEFDRXx8bmwsZmkuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcmJkhjKGZpLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLnRhZ05hbWVDaGVjaykm''@;'; + put 'put ''JihWbi50YWdOYW1lQ2hlY2s9ZmkuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKSxmaS5DVVNUT01fRUxFTUVOVF9IQU5ETElORyYmSGMoZmkuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYXR0cmlidXRlTmFtZUNoZWNrKSYmKFZuLmF0dHJpYnV0ZU5hbWVDaGVjaz1maS5D''@;'; + put 'put ''VVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2spLGZpLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HJiYiYm9vbGVhbiI9PXR5cGVvZiBmaS5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHMmJihWbi5hbGxvd0N1c3RvbWl6''@;'; + put 'put ''ZWRCdWlsdEluRWxlbWVudHM9ZmkuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzKSxLciYmKG9yPSExKSxNaSYmKGxpPSEwKSxHMCYmKGNuPXgoe30sRShQZSkpLEd0PVtdLCEwPT09RzAuaHRtbCYmKHgoY24sVCkseChHdCxRZSkpLCEwPT09''@;'; + put 'put ''RzAuc3ZnJiYoeChjbixTKSx4KEd0LCRlKSx4KEd0LHd0KSksITA9PT1HMC5zdmdGaWx0ZXJzJiYoeChjbixGKSx4KEd0LCRlKSx4KEd0LHd0KSksITA9PT1HMC5tYXRoTWwmJih4KGNuLENlKSx4KEd0LGd0KSx4KEd0LHd0KSkpLGZpLkFERF9UQUdTJiYoY249PT1fbiYmKGNuPVAoY24pKSx4''@;'; + put 'put ''KGNuLGZpLkFERF9UQUdTLHJsKSksZmkuQUREX0FUVFImJihHdD09PWtuJiYoR3Q9UChHdCkpLHgoR3QsZmkuQUREX0FUVFIscmwpKSxmaS5BRERfVVJJX1NBRkVfQVRUUiYmeChjYSxmaS5BRERfVVJJX1NBRkVfQVRUUixybCksZmkuRk9SQklEX0NPTlRFTlRTJiYoRGk9PT1XMCYmKERpPVAo''@;'; + put 'put ''RGkpKSx4KERpLGZpLkZPUkJJRF9DT05URU5UUyxybCkpLGQwJiYoY25bIiN0ZXh0Il09ITApLFZyJiZ4KGNuLFsiaHRtbCIsImhlYWQiLCJib2R5Il0pLGNuLnRhYmxlJiYoeChjbixbInRib2R5Il0pLGRlbGV0ZSBlbi50Ym9keSkscSYmcShmaSksYmk9ZmkpfSxPcz14KHt9LFsibWkiLCJt''@;'; + put 'put ''byIsIm1uIiwibXMiLCJtdGV4dCJdKSxYMD14KHt9LFsiZm9yZWlnbm9iamVjdCIsImRlc2MiLCJ0aXRsZSIsImFubm90YXRpb24teG1sIl0pLHVhPXgoe30sWyJ0aXRsZSIsInN0eWxlIiwiZm9udCIsImEiLCJzY3JpcHQiXSksajA9eCh7fSxTKTt4KGowLEYpLHgoajAseWUpO3ZhciBCbD14''@;'; + put 'put ''KHt9LENlKTt4KEJsLERlKTt2YXIgdm49ZnVuY3Rpb24oZmkpe3ZhciBSMD1xdChmaSk7KCFSMHx8IVIwLnRhZ05hbWUpJiYoUjA9e25hbWVzcGFjZVVSSTpubCx0YWdOYW1lOiJ0ZW1wbGF0ZSJ9KTt2YXIgbW89U2UoZmkudGFnTmFtZSkscnM9U2UoUjAudGFnTmFtZSk7cmV0dXJuIGZpLm5h''@;'; + put 'put ''bWVzcGFjZVVSST09PU1hP1IwLm5hbWVzcGFjZVVSST09PW5sPyJzdmciPT09bW86UjAubmFtZXNwYWNlVVJJPT09UWk/InN2ZyI9PT1tbyYmKCJhbm5vdGF0aW9uLXhtbCI9PT1yc3x8T3NbcnNdKTpCb29sZWFuKGowW21vXSk6ZmkubmFtZXNwYWNlVVJJPT09UWk/UjAubmFtZXNwYWNlVVJJ''@;'; + put 'put ''PT09bmw/Im1hdGgiPT09bW86UjAubmFtZXNwYWNlVVJJPT09TWE/Im1hdGgiPT09bW8mJlgwW3JzXTpCb29sZWFuKEJsW21vXSk6ZmkubmFtZXNwYWNlVVJJPT09bmwmJiEoUjAubmFtZXNwYWNlVVJJPT09TWEmJiFYMFtyc118fFIwLm5hbWVzcGFjZVVSST09PVFpJiYhT3NbcnNdKSYmIUJs''@;'; + put 'put ''W21vXSYmKHVhW21vXXx8IWowW21vXSl9LF8wPWZ1bmN0aW9uKGZpKXtrZShIdC5yZW1vdmVkLHtlbGVtZW50OmZpfSk7dHJ5e2ZpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZmkpfWNhdGNoKFIwKXt0cnl7Zmkub3V0ZXJIVE1MPUFufWNhdGNoKG1vKXtmaS5yZW1vdmUoKX19fSxnYz1mdW5j''@;'; + put 'put ''dGlvbihmaSxSMCl7dHJ5e2tlKEh0LnJlbW92ZWQse2F0dHJpYnV0ZTpSMC5nZXRBdHRyaWJ1dGVOb2RlKGZpKSxmcm9tOlIwfSl9Y2F0Y2gobW8pe2tlKEh0LnJlbW92ZWQse2F0dHJpYnV0ZTpudWxsLGZyb206UjB9KX1pZihSMC5yZW1vdmVBdHRyaWJ1dGUoZmkpLCJpcyI9PT1maSYmIUd0''@;'; + put 'put ''W2ZpXSlpZihsaXx8TWkpdHJ5e18wKFIwKX1jYXRjaChtbyl7fWVsc2UgdHJ5e1IwLnNldEF0dHJpYnV0ZShmaSwiIil9Y2F0Y2gobW8pe319LGRkPWZ1bmN0aW9uKGZpKXt2YXIgUjAsbW87aWYoUnIpZmk9IjxyZW1vdmU+PC9yZW1vdmU+IitmaTtlbHNle3ZhciBycz1JZShmaSwvXltcclxu''@;'; + put 'put ''XHQgXSsvKTttbz1ycyYmcnNbMF19ImFwcGxpY2F0aW9uL3hodG1sK3htbCI9PT12aSYmKGZpPSc8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PC9oZWFkPjxib2R5PicrZmkrIjwvYm9keT48L2h0bWw+Iik7dmFyIGhzPW5yP25yLmNyZWF0ZUhUTUwo''@;'; + put 'put ''ZmkpOmZpO2lmKGdsPT09bmwpdHJ5e1IwPShuZXcgYm4pLnBhcnNlRnJvbVN0cmluZyhocyx2aSl9Y2F0Y2goVDIpe31pZighUjB8fCFSMC5kb2N1bWVudEVsZW1lbnQpe1IwPVd0LmNyZWF0ZURvY3VtZW50KGdsLCJ0ZW1wbGF0ZSIsbnVsbCk7dHJ5e1IwLmRvY3VtZW50RWxlbWVudC5pbm5l''@;'; + put 'put ''ckhUTUw9QWk/IiI6aHN9Y2F0Y2goVDIpe319dmFyIG4yPVIwLmJvZHl8fFIwLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gZmkmJm1vJiZuMi5pbnNlcnRCZWZvcmUoVWUuY3JlYXRlVGV4dE5vZGUobW8pLG4yLmNoaWxkTm9kZXNbMF18fG51bGwpLGdsPT09bmw/TnQuY2FsbChSMCxWcj8iaHRt''@;'; + put 'put ''bCI6ImJvZHkiKVswXTpWcj9SMC5kb2N1bWVudEVsZW1lbnQ6bjJ9LEIxPWZ1bmN0aW9uKGZpKXtyZXR1cm4gcG4uY2FsbChmaS5vd25lckRvY3VtZW50fHxmaSxmaSxkbi5TSE9XX0VMRU1FTlR8ZG4uU0hPV19DT01NRU5UfGRuLlNIT1dfVEVYVCxudWxsLCExKX0sYXU9ZnVuY3Rpb24oZmkp''@;'; + put 'put ''e3JldHVybiBmaSBpbnN0YW5jZW9mIE5uJiYoInN0cmluZyIhPXR5cGVvZiBmaS5ub2RlTmFtZXx8InN0cmluZyIhPXR5cGVvZiBmaS50ZXh0Q29udGVudHx8ImZ1bmN0aW9uIiE9dHlwZW9mIGZpLnJlbW92ZUNoaWxkfHwhKGZpLmF0dHJpYnV0ZXMgaW5zdGFuY2VvZiBsbil8fCJmdW5jdGlv''@;'; + put 'put ''biIhPXR5cGVvZiBmaS5yZW1vdmVBdHRyaWJ1dGV8fCJmdW5jdGlvbiIhPXR5cGVvZiBmaS5zZXRBdHRyaWJ1dGV8fCJzdHJpbmciIT10eXBlb2YgZmkubmFtZXNwYWNlVVJJfHwiZnVuY3Rpb24iIT10eXBlb2YgZmkuaW5zZXJ0QmVmb3JlKX0sUDE9ZnVuY3Rpb24oZmkpe3JldHVybiJvYmpl''@;'; + put 'put ''Y3QiPT09SmUoUXQpP2ZpIGluc3RhbmNlb2YgUXQ6ZmkmJiJvYmplY3QiPT09SmUoZmkpJiYibnVtYmVyIj09dHlwZW9mIGZpLm5vZGVUeXBlJiYic3RyaW5nIj09dHlwZW9mIGZpLm5vZGVOYW1lfSxtYz1mdW5jdGlvbihmaSxSMCxtbyl7IXduW2ZpXXx8dmUod25bZmldLGZ1bmN0aW9uKHJz''@;'; + put 'put ''KXtycy5jYWxsKEh0LFIwLG1vLGJpKX0pfSx4Mj1mdW5jdGlvbihmaSl7dmFyIFIwO2lmKG1jKCJiZWZvcmVTYW5pdGl6ZUVsZW1lbnRzIixmaSxudWxsKSxhdShmaSl8fE8oL1tcdTAwODAtXHVGRkZGXS8sZmkubm9kZU5hbWUpKXJldHVybiBfMChmaSksITA7dmFyIG1vPXJsKGZpLm5vZGVO''@;'; + put 'put ''YW1lKTtpZihtYygidXBvblNhbml0aXplRWxlbWVudCIsZmkse3RhZ05hbWU6bW8sYWxsb3dlZFRhZ3M6Y259KSxmaS5oYXNDaGlsZE5vZGVzKCkmJiFQMShmaS5maXJzdEVsZW1lbnRDaGlsZCkmJighUDEoZmkuY29udGVudCl8fCFQMShmaS5jb250ZW50LmZpcnN0RWxlbWVudENoaWxkKSkm''@;'; + put 'put ''Jk8oLzxbL1x3XS9nLGZpLmlubmVySFRNTCkmJk8oLzxbL1x3XS9nLGZpLnRleHRDb250ZW50KXx8InNlbGVjdCI9PT1tbyYmTygvPHRlbXBsYXRlL2ksZmkuaW5uZXJIVE1MKSlyZXR1cm4gXzAoZmkpLCEwO2lmKCFjblttb118fGVuW21vXSl7aWYoIWVuW21vXSYmZDMobW8pJiYoVm4udGFn''@;'; + put 'put ''TmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZPKFZuLnRhZ05hbWVDaGVjayxtbyl8fFZuLnRhZ05hbWVDaGVjayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZWbi50YWdOYW1lQ2hlY2sobW8pKSlyZXR1cm4hMTtpZihkMCYmIURpW21vXSl7dmFyIHJzPXF0KGZpKXx8ZmkucGFyZW50Tm9kZSxo''@;'; + put 'put ''cz14cihmaSl8fGZpLmNoaWxkTm9kZXM7aWYoaHMmJnJzKWZvcih2YXIgVDI9aHMubGVuZ3RoLTE7VDI+PTA7LS1UMilycy5pbnNlcnRCZWZvcmUoWG4oaHNbVDJdLCEwKSxGcihmaSkpfXJldHVybiBfMChmaSksITB9cmV0dXJuIGZpIGluc3RhbmNlb2YgZ24mJiF2bihmaSl8fCgibm9zY3Jp''@;'; + put 'put ''cHQiPT09bW98fCJub2VtYmVkIj09PW1vKSYmTygvPFwvbm8oc2NyaXB0fGVtYmVkKS9pLGZpLmlubmVySFRNTCk/KF8wKGZpKSwhMCk6KEtyJiYzPT09Zmkubm9kZVR5cGUmJihSMD1UZShSMD1maS50ZXh0Q29udGVudCx0biwiICIpLFIwPVRlKFIwLHpuLCIgIiksZmkudGV4dENvbnRlbnQh''@;'; + put 'put ''PT1SMCYmKGtlKEh0LnJlbW92ZWQse2VsZW1lbnQ6ZmkuY2xvbmVOb2RlKCl9KSxmaS50ZXh0Q29udGVudD1SMCkpLG1jKCJhZnRlclNhbml0aXplRWxlbWVudHMiLGZpLG51bGwpLCExKX0sUGw9ZnVuY3Rpb24oZmksUjAsbW8pe2lmKG4wJiYoImlkIj09PVIwfHwibmFtZSI9PT1SMCkmJiht''@;'; + put 'put ''byBpbiBVZXx8bW8gaW4gb3UpKXJldHVybiExO2lmKCghb3J8fEluW1IwXXx8IU8oVHIsUjApKSYmKCFKbnx8IU8oQm4sUjApKSlpZighR3RbUjBdfHxJbltSMF0pe2lmKCEoZDMoZmkpJiYoVm4udGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZPKFZuLnRhZ05hbWVDaGVjayxmaSl8''@;'; + put 'put ''fFZuLnRhZ05hbWVDaGVjayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZWbi50YWdOYW1lQ2hlY2soZmkpKSYmKFZuLmF0dHJpYnV0ZU5hbWVDaGVjayBpbnN0YW5jZW9mIFJlZ0V4cCYmTyhWbi5hdHRyaWJ1dGVOYW1lQ2hlY2ssUjApfHxWbi5hdHRyaWJ1dGVOYW1lQ2hlY2sgaW5zdGFuY2VvZiBG''@;'; + put 'put ''dW5jdGlvbiYmVm4uYXR0cmlidXRlTmFtZUNoZWNrKFIwKSl8fCJpcyI9PT1SMCYmVm4uYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzJiYoVm4udGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZPKFZuLnRhZ05hbWVDaGVjayxtbyl8fFZuLnRhZ05hbWVDaGVjayBpbnN0YW5j''@;'; + put 'put ''ZW9mIEZ1bmN0aW9uJiZWbi50YWdOYW1lQ2hlY2sobW8pKSkpcmV0dXJuITF9ZWxzZSBpZighY2FbUjBdJiYhTyh1bixUZShtbyxtbiwiIikpJiYoInNyYyIhPT1SMCYmInhsaW5rOmhyZWYiIT09UjAmJiJocmVmIiE9PVIwfHwic2NyaXB0Ij09PWZpfHwwIT09RWUobW8sImRhdGE6Iil8fCFF''@;'; + put 'put ''b1tmaV0pJiYoIWdyfHxPKGtyLFRlKG1vLG1uLCIiKSkpJiZtbylyZXR1cm4hMTtyZXR1cm4hMH0sZDM9ZnVuY3Rpb24oZmkpe3JldHVybiBmaS5pbmRleE9mKCItIik+MH0sVTI9ZnVuY3Rpb24oZmkpe3ZhciBSMCxtbyxycyxoczttYygiYmVmb3JlU2FuaXRpemVBdHRyaWJ1dGVzIixmaSxu''@;'; + put 'put ''dWxsKTt2YXIgbjI9ZmkuYXR0cmlidXRlcztpZihuMil7dmFyIFQyPXthdHRyTmFtZToiIixhdHRyVmFsdWU6IiIsa2VlcEF0dHI6ITAsYWxsb3dlZEF0dHJpYnV0ZXM6R3R9O2Zvcihocz1uMi5sZW5ndGg7aHMtLTspe3ZhciBScz0oUjA9bjJbaHNdKS5uYW1lLE5mPVIwLm5hbWVzcGFjZVVS''@;'; + put 'put ''STtpZihtbz0idmFsdWUiPT09UnM/UjAudmFsdWU6aGUoUjAudmFsdWUpLHJzPXJsKFJzKSxUMi5hdHRyTmFtZT1ycyxUMi5hdHRyVmFsdWU9bW8sVDIua2VlcEF0dHI9ITAsVDIuZm9yY2VLZWVwQXR0cj12b2lkIDAsbWMoInVwb25TYW5pdGl6ZUF0dHJpYnV0ZSIsZmksVDIpLG1vPVQyLmF0''@;'; + put 'put ''dHJWYWx1ZSwhVDIuZm9yY2VLZWVwQXR0ciYmKGdjKFJzLGZpKSxUMi5rZWVwQXR0cikpe2lmKE8oL1wvPi9pLG1vKSl7Z2MoUnMsZmkpO2NvbnRpbnVlfUtyJiYobW89VGUobW8sdG4sIiAiKSxtbz1UZShtbyx6biwiICIpKTt2YXIgWWw9cmwoZmkubm9kZU5hbWUpO2lmKFBsKFlsLHJzLG1v''@;'; + put 'put ''KSl7aWYobnImJiJvYmplY3QiPT09SmUoZXIpJiYiZnVuY3Rpb24iPT10eXBlb2YgZXIuZ2V0QXR0cmlidXRlVHlwZSYmIU5mKXN3aXRjaChlci5nZXRBdHRyaWJ1dGVUeXBlKFlsLHJzKSl7Y2FzZSJUcnVzdGVkSFRNTCI6bW89bnIuY3JlYXRlSFRNTChtbyk7YnJlYWs7Y2FzZSJUcnVzdGVk''@;'; + put 'put ''U2NyaXB0VVJMIjptbz1uci5jcmVhdGVTY3JpcHRVUkwobW8pfXRyeXtOZj9maS5zZXRBdHRyaWJ1dGVOUyhOZixScyxtbyk6Zmkuc2V0QXR0cmlidXRlKFJzLG1vKSxBZShIdC5yZW1vdmVkKX1jYXRjaChOYyl7fX19fW1jKCJhZnRlclNhbml0aXplQXR0cmlidXRlcyIsZmksbnVsbCl9fSxz''@;'; + put 'put ''MT1mdW5jdGlvbiBaMChmaSl7dmFyIFIwLG1vPUIxKGZpKTtmb3IobWMoImJlZm9yZVNhbml0aXplU2hhZG93RE9NIixmaSxudWxsKTtSMD1tby5uZXh0Tm9kZSgpOyltYygidXBvblNhbml0aXplU2hhZG93Tm9kZSIsUjAsbnVsbCksIXgyKFIwKSYmKFIwLmNvbnRlbnQgaW5zdGFuY2VvZiB5''@;'; + put 'put ''dCYmWjAoUjAuY29udGVudCksVTIoUjApKTttYygiYWZ0ZXJTYW5pdGl6ZVNoYWRvd0RPTSIsZmksbnVsbCl9O3JldHVybiBIdC5zYW5pdGl6ZT1mdW5jdGlvbihaMCxmaSl7dmFyIFIwLG1vLHJzLGhzLG4yO2lmKChBaT0hWjApJiYoWjA9Ilx4M2MhLS1ceDNlIiksInN0cmluZyIhPXR5cGVv''@;'; + put 'put ''ZiBaMCYmIVAxKFowKSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFowLnRvU3RyaW5nKXRocm93IHooInRvU3RyaW5nIGlzIG5vdCBhIGZ1bmN0aW9uIik7aWYoInN0cmluZyIhPXR5cGVvZihaMD1aMC50b1N0cmluZygpKSl0aHJvdyB6KCJkaXJ0eSBpcyBub3QgYSBzdHJpbmcsIGFib3J0aW5n''@;'; + put 'put ''Iil9aWYoIUh0LmlzU3VwcG9ydGVkKXtpZigib2JqZWN0Ij09PUplKGZ0LnRvU3RhdGljSFRNTCl8fCJmdW5jdGlvbiI9PXR5cGVvZiBmdC50b1N0YXRpY0hUTUwpe2lmKCJzdHJpbmciPT10eXBlb2YgWjApcmV0dXJuIGZ0LnRvU3RhdGljSFRNTChaMCk7aWYoUDEoWjApKXJldHVybiBmdC50''@;'; + put 'put ''b1N0YXRpY0hUTUwoWjAub3V0ZXJIVE1MKX1yZXR1cm4gWjB9aWYoaWl8fFUwKGZpKSxIdC5yZW1vdmVkPVtdLCJzdHJpbmciPT10eXBlb2YgWjAmJihtMD0hMSksbTApe2lmKFowLm5vZGVOYW1lKXt2YXIgVDI9cmwoWjAubm9kZU5hbWUpO2lmKCFjbltUMl18fGVuW1QyXSl0aHJvdyB6KCJy''@;'; + put 'put ''b290IG5vZGUgaXMgZm9yYmlkZGVuIGFuZCBjYW5ub3QgYmUgc2FuaXRpemVkIGluLXBsYWNlIil9fWVsc2UgaWYoWjAgaW5zdGFuY2VvZiBRdCkxPT09KG1vPShSMD1kZCgiXHgzYyEtLS0tXHgzZSIpKS5vd25lckRvY3VtZW50LmltcG9ydE5vZGUoWjAsITApKS5ub2RlVHlwZSYmIkJPRFki''@;'; + put 'put ''PT09bW8ubm9kZU5hbWV8fCJIVE1MIj09PW1vLm5vZGVOYW1lP1IwPW1vOlIwLmFwcGVuZENoaWxkKG1vKTtlbHNle2lmKCFsaSYmIUtyJiYhVnImJi0xPT09WjAuaW5kZXhPZigiPCIpKXJldHVybiBuciYmbzA/bnIuY3JlYXRlSFRNTChaMCk6WjA7aWYoIShSMD1kZChaMCkpKXJldHVybiBs''@;'; + put 'put ''aT9udWxsOm8wP0FuOiIifVIwJiZSciYmXzAoUjAuZmlyc3RDaGlsZCk7Zm9yKHZhciBUaT1CMShtMD9aMDpSMCk7cnM9VGkubmV4dE5vZGUoKTspMz09PXJzLm5vZGVUeXBlJiZycz09PWhzfHx4Mihycyl8fChycy5jb250ZW50IGluc3RhbmNlb2YgeXQmJnMxKHJzLmNvbnRlbnQpLFUyKHJz''@;'; + put 'put ''KSxocz1ycyk7aWYoaHM9bnVsbCxtMClyZXR1cm4gWjA7aWYobGkpe2lmKE1pKWZvcihuMj1Lbi5jYWxsKFIwLm93bmVyRG9jdW1lbnQpO1IwLmZpcnN0Q2hpbGQ7KW4yLmFwcGVuZENoaWxkKFIwLmZpcnN0Q2hpbGQpO2Vsc2UgbjI9UjA7cmV0dXJuIEd0LnNoYWRvd3Jvb3QmJihuMj1zbi5j''@;'; + put 'put ''YWxsKEdlLG4yLCEwKSksbjJ9dmFyIFJzPVZyP1IwLm91dGVySFRNTDpSMC5pbm5lckhUTUw7cmV0dXJuIFZyJiZjblsiIWRvY3R5cGUiXSYmUjAub3duZXJEb2N1bWVudCYmUjAub3duZXJEb2N1bWVudC5kb2N0eXBlJiZSMC5vd25lckRvY3VtZW50LmRvY3R5cGUubmFtZSYmTyh0dCxSMC5v''@;'; + put 'put ''d25lckRvY3VtZW50LmRvY3R5cGUubmFtZSkmJihScz0iPCFET0NUWVBFICIrUjAub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUrIj5cbiIrUnMpLEtyJiYoUnM9VGUoUnMsdG4sIiAiKSxScz1UZShScyx6biwiICIpKSxuciYmbzA/bnIuY3JlYXRlSFRNTChScyk6UnN9LEh0LnNldENvbmZp''@;'; + put 'put ''Zz1mdW5jdGlvbihaMCl7VTAoWjApLGlpPSEwfSxIdC5jbGVhckNvbmZpZz1mdW5jdGlvbigpe2JpPW51bGwsaWk9ITF9LEh0LmlzVmFsaWRBdHRyaWJ1dGU9ZnVuY3Rpb24oWjAsZmksUjApe2JpfHxVMCh7fSk7dmFyIG1vPXJsKFowKSxycz1ybChmaSk7cmV0dXJuIFBsKG1vLHJzLFIwKX0s''@;'; + put 'put ''SHQuYWRkSG9vaz1mdW5jdGlvbihaMCxmaSl7ImZ1bmN0aW9uIj09dHlwZW9mIGZpJiYod25bWjBdPXduW1owXXx8W10sa2Uod25bWjBdLGZpKSl9LEh0LnJlbW92ZUhvb2s9ZnVuY3Rpb24oWjApe2lmKHduW1owXSlyZXR1cm4gQWUod25bWjBdKX0sSHQucmVtb3ZlSG9va3M9ZnVuY3Rpb24o''@;'; + put 'put ''WjApe3duW1owXSYmKHduW1owXT1bXSl9LEh0LnJlbW92ZUFsbEhvb2tzPWZ1bmN0aW9uKCl7d249e319LEh0fSgpfSgpfSw1NzcxNTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUplO21lLnZlcnNpb249TCgxODU5NykuaTgsbWUudXRpbHM9TCg2MTk3MCksbWUucmFuZD1MKDM3''@;'; + put 'put ''OTUwKSxtZS5jdXJ2ZT1MKDQ2MjcwKSxtZS5jdXJ2ZXM9TCg1MjkxNiksbWUuZWM9TCg2NzYyNiksbWUuZWRkc2E9TCg4MTg4NSl9LDk3OTAyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgxNzQzMyksQj1MKDYxOTcwKSxFPUIuZ2V0TkFGLE1lPUIuZ2V0SlNGLFU9Qi5hc3Nl''@;'; + put 'put ''cnQ7ZnVuY3Rpb24gUShpZSxsZSl7dGhpcy50eXBlPWllLHRoaXMucD1uZXcgbWUobGUucCwxNiksdGhpcy5yZWQ9bGUucHJpbWU/bWUucmVkKGxlLnByaW1lKTptZS5tb250KHRoaXMucCksdGhpcy56ZXJvPW5ldyBtZSgwKS50b1JlZCh0aGlzLnJlZCksdGhpcy5vbmU9bmV3IG1lKDEpLnRv''@;'; + put 'put ''UmVkKHRoaXMucmVkKSx0aGlzLnR3bz1uZXcgbWUoMikudG9SZWQodGhpcy5yZWQpLHRoaXMubj1sZS5uJiZuZXcgbWUobGUubiwxNiksdGhpcy5nPWxlLmcmJnRoaXMucG9pbnRGcm9tSlNPTihsZS5nLGxlLmdSZWQpLHRoaXMuX3duYWZUMT1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQyPW5l''@;'; + put 'put ''dyBBcnJheSg0KSx0aGlzLl93bmFmVDM9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUND1uZXcgQXJyYXkoNCksdGhpcy5fYml0TGVuZ3RoPXRoaXMubj90aGlzLm4uYml0TGVuZ3RoKCk6MDt2YXIgWT10aGlzLm4mJnRoaXMucC5kaXYodGhpcy5uKTshWXx8WS5jbXBuKDEwMCk+MD90aGlzLnJl''@;'; + put 'put ''ZE49bnVsbDoodGhpcy5fbWF4d2VsbFRyaWNrPSEwLHRoaXMucmVkTj10aGlzLm4udG9SZWQodGhpcy5yZWQpKX1mdW5jdGlvbiBaKGllLGxlKXt0aGlzLmN1cnZlPWllLHRoaXMudHlwZT1sZSx0aGlzLnByZWNvbXB1dGVkPW51bGx9WGUuZXhwb3J0cz1RLFEucHJvdG90eXBlLnBvaW50PWZ1''@;'; + put 'put ''bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX0sUS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxRLnByb3RvdHlwZS5fZml4ZWROYWZNdWw9ZnVuY3Rpb24obGUsWSl7VShsZS5wcmVjb21w''@;'; + put 'put ''dXRlZCk7dmFyIFc9bGUuX2dldERvdWJsZXMoKSxOPUUoWSwxLHRoaXMuX2JpdExlbmd0aCksZWU9KDE8PFcuc3RlcCsxKS0oVy5zdGVwJTI9PTA/MjoxKTtlZS89Mzt2YXIgSixzZSxxPVtdO2ZvcihKPTA7SjxOLmxlbmd0aDtKKz1XLnN0ZXApe3NlPTA7Zm9yKHZhciBvZT1KK1cuc3RlcC0x''@;'; + put 'put ''O29lPj1KO29lLS0pc2U9KHNlPDwxKStOW29lXTtxLnB1c2goc2UpfWZvcih2YXIgY2U9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLGRlPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSx2ZT1lZTt2ZT4wO3ZlLS0pe2ZvcihKPTA7SjxxLmxlbmd0aDtKKyspKHNlPXFbSl0pPT09dmU/''@;'; + put 'put ''ZGU9ZGUubWl4ZWRBZGQoVy5wb2ludHNbSl0pOnNlPT09LXZlJiYoZGU9ZGUubWl4ZWRBZGQoVy5wb2ludHNbSl0ubmVnKCkpKTtjZT1jZS5hZGQoZGUpfXJldHVybiBjZS50b1AoKX0sUS5wcm90b3R5cGUuX3duYWZNdWw9ZnVuY3Rpb24obGUsWSl7Zm9yKHZhciBXPTQsTj1sZS5fZ2V0TkFG''@;'; + put 'put ''UG9pbnRzKFcpLGVlPU4ucG9pbnRzLHE9RShZLFc9Ti53bmQsdGhpcy5fYml0TGVuZ3RoKSxKPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxzZT1xLmxlbmd0aC0xO3NlPj0wO3NlLS0pe2Zvcih2YXIgb2U9MDtzZT49MCYmMD09PXFbc2VdO3NlLS0pb2UrKztpZihzZT49MCYmb2UrKyxK''@;'; + put 'put ''PUouZGJscChvZSksc2U8MClicmVhazt2YXIgY2U9cVtzZV07VSgwIT09Y2UpLEo9ImFmZmluZSI9PT1sZS50eXBlP0oubWl4ZWRBZGQoY2U+MD9lZVtjZS0xPj4xXTplZVstY2UtMT4+MV0ubmVnKCkpOkouYWRkKGNlPjA/ZWVbY2UtMT4+MV06ZWVbLWNlLTE+PjFdLm5lZygpKX1yZXR1cm4i''@;'; + put 'put ''YWZmaW5lIj09PWxlLnR5cGU/Si50b1AoKTpKfSxRLnByb3RvdHlwZS5fd25hZk11bEFkZD1mdW5jdGlvbihsZSxZLFcsTixlZSl7dmFyIGNlLGRlLHZlLHE9dGhpcy5fd25hZlQxLEo9dGhpcy5fd25hZlQyLHNlPXRoaXMuX3duYWZUMyxvZT0wO2ZvcihjZT0wO2NlPE47Y2UrKyl7dmFyIEFl''@;'; + put 'put ''PSh2ZT1ZW2NlXSkuX2dldE5BRlBvaW50cyhsZSk7cVtjZV09QWUud25kLEpbY2VdPUFlLnBvaW50c31mb3IoY2U9Ti0xO2NlPj0xO2NlLT0yKXt2YXIga2U9Y2UtMSxTZT1jZTtpZigxPT09cVtrZV0mJjE9PT1xW1NlXSl7dmFyIEllPVtZW2tlXSxudWxsLG51bGwsWVtTZV1dOzA9PT1ZW2tl''@;'; + put 'put ''XS55LmNtcChZW1NlXS55KT8oSWVbMV09WVtrZV0uYWRkKFlbU2VdKSxJZVsyXT1ZW2tlXS50b0ooKS5taXhlZEFkZChZW1NlXS5uZWcoKSkpOjA9PT1ZW2tlXS55LmNtcChZW1NlXS55LnJlZE5lZygpKT8oSWVbMV09WVtrZV0udG9KKCkubWl4ZWRBZGQoWVtTZV0pLEllWzJdPVlba2VdLmFk''@;'; + put 'put ''ZChZW1NlXS5uZWcoKSkpOihJZVsxXT1ZW2tlXS50b0ooKS5taXhlZEFkZChZW1NlXSksSWVbMl09WVtrZV0udG9KKCkubWl4ZWRBZGQoWVtTZV0ubmVnKCkpKTt2YXIgVGU9Wy0zLC0xLC01LC03LDAsNyw1LDEsM10sRWU9TWUoV1trZV0sV1tTZV0pO2ZvcihvZT1NYXRoLm1heChFZVswXS5s''@;'; + put 'put ''ZW5ndGgsb2UpLHNlW2tlXT1uZXcgQXJyYXkob2UpLHNlW1NlXT1uZXcgQXJyYXkob2UpLGRlPTA7ZGU8b2U7ZGUrKylzZVtrZV1bZGVdPVRlWzMqKDErKDB8RWVbMF1bZGVdKSkrKDErKDB8RWVbMV1bZGVdKSldLHNlW1NlXVtkZV09MCxKW2tlXT1JZX1lbHNlIHNlW2tlXT1FKFdba2VdLHFb''@;'; + put 'put ''a2VdLHRoaXMuX2JpdExlbmd0aCksc2VbU2VdPUUoV1tTZV0scVtTZV0sdGhpcy5fYml0TGVuZ3RoKSxvZT1NYXRoLm1heChzZVtrZV0ubGVuZ3RoLG9lKSxvZT1NYXRoLm1heChzZVtTZV0ubGVuZ3RoLG9lKX12YXIgej10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCksbmU9dGhpcy5fd25h''@;'; + put 'put ''ZlQ0O2ZvcihjZT1vZTtjZT49MDtjZS0tKXtmb3IodmFyIHRlPTA7Y2U+PTA7KXt2YXIgeD0hMDtmb3IoZGU9MDtkZTxOO2RlKyspbmVbZGVdPTB8c2VbZGVdW2NlXSwwIT09bmVbZGVdJiYoeD0hMSk7aWYoIXgpYnJlYWs7dGUrKyxjZS0tfWlmKGNlPj0wJiZ0ZSsrLHo9ei5kYmxwKHRlKSxj''@;'; + put 'put ''ZTwwKWJyZWFrO2ZvcihkZT0wO2RlPE47ZGUrKyl7dmFyIFA9bmVbZGVdOzAhPT1QJiYoUD4wP3ZlPUpbZGVdW1AtMT4+MV06UDwwJiYodmU9SltkZV1bLVAtMT4+MV0ubmVnKCkpLHo9ImFmZmluZSI9PT12ZS50eXBlP3oubWl4ZWRBZGQodmUpOnouYWRkKHZlKSl9fWZvcihjZT0wO2NlPE47''@;'; + put 'put ''Y2UrKylKW2NlXT1udWxsO3JldHVybiBlZT96OnoudG9QKCl9LFEuQmFzZVBvaW50PVosWi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxaLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnZh''@;'; + put 'put ''bGlkYXRlKHRoaXMpfSxRLnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbihsZSxZKXtsZT1CLnRvQXJyYXkobGUsWSk7dmFyIFc9dGhpcy5wLmJ5dGVMZW5ndGgoKTtpZigoND09PWxlWzBdfHw2PT09bGVbMF18fDc9PT1sZVswXSkmJmxlLmxlbmd0aC0xPT0yKlcpcmV0dXJuIDY9PT1s''@;'; + put 'put ''ZVswXT9VKGxlW2xlLmxlbmd0aC0xXSUyPT0wKTo3PT09bGVbMF0mJlUobGVbbGUubGVuZ3RoLTFdJTI9PTEpLHRoaXMucG9pbnQobGUuc2xpY2UoMSwxK1cpLGxlLnNsaWNlKDErVywxKzIqVykpO2lmKCgyPT09bGVbMF18fDM9PT1sZVswXSkmJmxlLmxlbmd0aC0xPT09VylyZXR1cm4gdGhp''@;'; + put 'put ''cy5wb2ludEZyb21YKGxlLnNsaWNlKDEsMStXKSwzPT09bGVbMF0pO3Rocm93IG5ldyBFcnJvcigiVW5rbm93biBwb2ludCBmb3JtYXQiKX0sWi5wcm90b3R5cGUuZW5jb2RlQ29tcHJlc3NlZD1mdW5jdGlvbihsZSl7cmV0dXJuIHRoaXMuZW5jb2RlKGxlLCEwKX0sWi5wcm90b3R5cGUuX2Vu''@;'; + put 'put ''Y29kZT1mdW5jdGlvbihsZSl7dmFyIFk9dGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSxXPXRoaXMuZ2V0WCgpLnRvQXJyYXkoImJlIixZKTtyZXR1cm4gbGU/W3RoaXMuZ2V0WSgpLmlzRXZlbigpPzI6M10uY29uY2F0KFcpOls0XS5jb25jYXQoVyx0aGlzLmdldFkoKS50b0FycmF5KCJiZSIs''@;'; + put 'put ''WSkpfSxaLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24obGUsWSl7cmV0dXJuIEIuZW5jb2RlKHRoaXMuX2VuY29kZShZKSxsZSl9LFoucHJvdG90eXBlLnByZWNvbXB1dGU9ZnVuY3Rpb24obGUpe2lmKHRoaXMucHJlY29tcHV0ZWQpcmV0dXJuIHRoaXM7dmFyIFk9e2RvdWJsZXM6bnVsbCxu''@;'; + put 'put ''YWY6bnVsbCxiZXRhOm51bGx9O3JldHVybiBZLm5hZj10aGlzLl9nZXROQUZQb2ludHMoOCksWS5kb3VibGVzPXRoaXMuX2dldERvdWJsZXMoNCxsZSksWS5iZXRhPXRoaXMuX2dldEJldGEoKSx0aGlzLnByZWNvbXB1dGVkPVksdGhpc30sWi5wcm90b3R5cGUuX2hhc0RvdWJsZXM9ZnVuY3Rp''@;'; + put 'put ''b24obGUpe2lmKCF0aGlzLnByZWNvbXB1dGVkKXJldHVybiExO3ZhciBZPXRoaXMucHJlY29tcHV0ZWQuZG91YmxlcztyZXR1cm4hIVkmJlkucG9pbnRzLmxlbmd0aD49TWF0aC5jZWlsKChsZS5iaXRMZW5ndGgoKSsxKS9ZLnN0ZXApfSxaLnByb3RvdHlwZS5fZ2V0RG91Ymxlcz1mdW5jdGlv''@;'; + put 'put ''bihsZSxZKXtpZih0aGlzLnByZWNvbXB1dGVkJiZ0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMpcmV0dXJuIHRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcztmb3IodmFyIFc9W3RoaXNdLE49dGhpcyxlZT0wO2VlPFk7ZWUrPWxlKXtmb3IodmFyIHE9MDtxPGxlO3ErKylOPU4uZGJsKCk7Vy5wdXNo''@;'; + put 'put ''KE4pfXJldHVybntzdGVwOmxlLHBvaW50czpXfX0sWi5wcm90b3R5cGUuX2dldE5BRlBvaW50cz1mdW5jdGlvbihsZSl7aWYodGhpcy5wcmVjb21wdXRlZCYmdGhpcy5wcmVjb21wdXRlZC5uYWYpcmV0dXJuIHRoaXMucHJlY29tcHV0ZWQubmFmO2Zvcih2YXIgWT1bdGhpc10sVz0oMTw8bGUp''@;'; + put 'put ''LTEsTj0xPT09Vz9udWxsOnRoaXMuZGJsKCksZWU9MTtlZTxXO2VlKyspWVtlZV09WVtlZS0xXS5hZGQoTik7cmV0dXJue3duZDpsZSxwb2ludHM6WX19LFoucHJvdG90eXBlLl9nZXRCZXRhPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LFoucHJvdG90eXBlLmRibHA9ZnVuY3Rpb24obGUpe2Zv''@;'; + put 'put ''cih2YXIgWT10aGlzLFc9MDtXPGxlO1crKylZPVkuZGJsKCk7cmV0dXJuIFl9fSwxMzgzNTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNjE5NzApLEI9TCgxNzQzMyksRT1MKDgzODk0KSxNZT1MKDk3OTAyKSxVPW1lLmFzc2VydDtmdW5jdGlvbiBRKGllKXt0aGlzLnR3aXN0''@;'; + put 'put ''ZWQ9MSE9KDB8aWUuYSksdGhpcy5tT25lQT10aGlzLnR3aXN0ZWQmJi0xPT0oMHxpZS5hKSx0aGlzLmV4dGVuZGVkPXRoaXMubU9uZUEsTWUuY2FsbCh0aGlzLCJlZHdhcmRzIixpZSksdGhpcy5hPW5ldyBCKGllLmEsMTYpLnVtb2QodGhpcy5yZWQubSksdGhpcy5hPXRoaXMuYS50b1JlZCh0''@;'; + put 'put ''aGlzLnJlZCksdGhpcy5jPW5ldyBCKGllLmMsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmMyPXRoaXMuYy5yZWRTcXIoKSx0aGlzLmQ9bmV3IEIoaWUuZCwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuZGQ9dGhpcy5kLnJlZEFkZCh0aGlzLmQpLFUoIXRoaXMudHdpc3RlZHx8MD09PXRoaXMu''@;'; + put 'put ''Yy5mcm9tUmVkKCkuY21wbigxKSksdGhpcy5vbmVDPTE9PSgwfGllLmMpfWZ1bmN0aW9uIFooaWUsbGUsWSxXLE4pe01lLkJhc2VQb2ludC5jYWxsKHRoaXMsaWUsInByb2plY3RpdmUiKSxudWxsPT09bGUmJm51bGw9PT1ZJiZudWxsPT09Vz8odGhpcy54PXRoaXMuY3VydmUuemVybyx0aGlz''@;'; + put 'put ''Lnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PXRoaXMuY3VydmUub25lLHRoaXMudD10aGlzLmN1cnZlLnplcm8sdGhpcy56T25lPSEwKToodGhpcy54PW5ldyBCKGxlLDE2KSx0aGlzLnk9bmV3IEIoWSwxNiksdGhpcy56PVc/bmV3IEIoVywxNik6dGhpcy5jdXJ2ZS5vbmUsdGhpcy50PU4mJm5l''@;'; + put 'put ''dyBCKE4sMTYpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnoucmVkfHwodGhpcy56PXRoaXMuei50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMu''@;'; + put 'put ''dCYmIXRoaXMudC5yZWQmJih0aGlzLnQ9dGhpcy50LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56T25lPXRoaXMuej09PXRoaXMuY3VydmUub25lLHRoaXMuY3VydmUuZXh0ZW5kZWQmJiF0aGlzLnQmJih0aGlzLnQ9dGhpcy54LnJlZE11bCh0aGlzLnkpLHRoaXMuek9uZXx8KHRoaXMu''@;'; + put 'put ''dD10aGlzLnQucmVkTXVsKHRoaXMuei5yZWRJbnZtKCkpKSkpfUUoUSxNZSksWGUuZXhwb3J0cz1RLFEucHJvdG90eXBlLl9tdWxBPWZ1bmN0aW9uKGxlKXtyZXR1cm4gdGhpcy5tT25lQT9sZS5yZWROZWcoKTp0aGlzLmEucmVkTXVsKGxlKX0sUS5wcm90b3R5cGUuX211bEM9ZnVuY3Rpb24o''@;'; + put 'put ''bGUpe3JldHVybiB0aGlzLm9uZUM/bGU6dGhpcy5jLnJlZE11bChsZSl9LFEucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbihsZSxZLFcsTil7cmV0dXJuIHRoaXMucG9pbnQobGUsWSxXLE4pfSxRLnByb3RvdHlwZS5wb2ludEZyb21YPWZ1bmN0aW9uKGxlLFkpeyhsZT1uZXcgQihsZSwxNikp''@;'; + put 'put ''LnJlZHx8KGxlPWxlLnRvUmVkKHRoaXMucmVkKSk7dmFyIFc9bGUucmVkU3FyKCksTj10aGlzLmMyLnJlZFN1Yih0aGlzLmEucmVkTXVsKFcpKSxlZT10aGlzLm9uZS5yZWRTdWIodGhpcy5jMi5yZWRNdWwodGhpcy5kKS5yZWRNdWwoVykpLHE9Ti5yZWRNdWwoZWUucmVkSW52bSgpKSxKPXEu''@;'; + put 'put ''cmVkU3FydCgpO2lmKDAhPT1KLnJlZFNxcigpLnJlZFN1YihxKS5jbXAodGhpcy56ZXJvKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTt2YXIgc2U9Si5mcm9tUmVkKCkuaXNPZGQoKTtyZXR1cm4oWSYmIXNlfHwhWSYmc2UpJiYoSj1KLnJlZE5lZygpKSx0aGlzLnBvaW50KGxl''@;'; + put 'put ''LEopfSxRLnByb3RvdHlwZS5wb2ludEZyb21ZPWZ1bmN0aW9uKGxlLFkpeyhsZT1uZXcgQihsZSwxNikpLnJlZHx8KGxlPWxlLnRvUmVkKHRoaXMucmVkKSk7dmFyIFc9bGUucmVkU3FyKCksTj1XLnJlZFN1Yih0aGlzLmMyKSxlZT1XLnJlZE11bCh0aGlzLmQpLnJlZE11bCh0aGlzLmMyKS5y''@;'; + put 'put ''ZWRTdWIodGhpcy5hKSxxPU4ucmVkTXVsKGVlLnJlZEludm0oKSk7aWYoMD09PXEuY21wKHRoaXMuemVybykpe2lmKFkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7cmV0dXJuIHRoaXMucG9pbnQodGhpcy56ZXJvLGxlKX12YXIgSj1xLnJlZFNxcnQoKTtpZigwIT09Si5yZWRT''@;'; + put 'put ''cXIoKS5yZWRTdWIocSkuY21wKHRoaXMuemVybykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7cmV0dXJuIEouZnJvbVJlZCgpLmlzT2RkKCkhPT1ZJiYoSj1KLnJlZE5lZygpKSx0aGlzLnBvaW50KEosbGUpfSxRLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbihsZSl7aWYo''@;'; + put 'put ''bGUuaXNJbmZpbml0eSgpKXJldHVybiEwO2xlLm5vcm1hbGl6ZSgpO3ZhciBZPWxlLngucmVkU3FyKCksVz1sZS55LnJlZFNxcigpLE49WS5yZWRNdWwodGhpcy5hKS5yZWRBZGQoVyksZWU9dGhpcy5jMi5yZWRNdWwodGhpcy5vbmUucmVkQWRkKHRoaXMuZC5yZWRNdWwoWSkucmVkTXVsKFcp''@;'; + put 'put ''KSk7cmV0dXJuIDA9PT1OLmNtcChlZSl9LEUoWixNZS5CYXNlUG9pbnQpLFEucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24obGUpe3JldHVybiBaLmZyb21KU09OKHRoaXMsbGUpfSxRLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbihsZSxZLFcsTil7cmV0dXJuIG5ldyBaKHRoaXMs''@;'; + put 'put ''bGUsWSxXLE4pfSxaLmZyb21KU09OPWZ1bmN0aW9uKGxlLFkpe3JldHVybiBuZXcgWihsZSxZWzBdLFlbMV0sWVsyXSl9LFoucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/IjxFQyBQb2ludCBJbmZpbml0eT4iOiI8RUMgUG9pbnQgeDogIit0''@;'; + put 'put ''aGlzLnguZnJvbVJlZCgpLnRvU3RyaW5nKDE2LDIpKyIgeTogIit0aGlzLnkuZnJvbVJlZCgpLnRvU3RyaW5nKDE2LDIpKyIgejogIit0aGlzLnouZnJvbVJlZCgpLnRvU3RyaW5nKDE2LDIpKyI+In0sWi5wcm90b3R5cGUuaXNJbmZpbml0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy54''@;'; + put 'put ''LmNtcG4oMCkmJigwPT09dGhpcy55LmNtcCh0aGlzLnopfHx0aGlzLnpPbmUmJjA9PT10aGlzLnkuY21wKHRoaXMuY3VydmUuYykpfSxaLnByb3RvdHlwZS5fZXh0RGJsPWZ1bmN0aW9uKCl7dmFyIGxlPXRoaXMueC5yZWRTcXIoKSxZPXRoaXMueS5yZWRTcXIoKSxXPXRoaXMuei5yZWRTcXIo''@;'; + put 'put ''KTtXPVcucmVkSUFkZChXKTt2YXIgTj10aGlzLmN1cnZlLl9tdWxBKGxlKSxlZT10aGlzLngucmVkQWRkKHRoaXMueSkucmVkU3FyKCkucmVkSVN1YihsZSkucmVkSVN1YihZKSxxPU4ucmVkQWRkKFkpLEo9cS5yZWRTdWIoVyksc2U9Ti5yZWRTdWIoWSksb2U9ZWUucmVkTXVsKEopLGNlPXEu''@;'; + put 'put ''cmVkTXVsKHNlKSxkZT1lZS5yZWRNdWwoc2UpLHZlPUoucmVkTXVsKHEpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KG9lLGNlLHZlLGRlKX0sWi5wcm90b3R5cGUuX3Byb2pEYmw9ZnVuY3Rpb24oKXt2YXIgTixlZSxxLEosc2Usb2UsbGU9dGhpcy54LnJlZEFkZCh0aGlzLnkpLnJlZFNxcigp''@;'; + put 'put ''LFk9dGhpcy54LnJlZFNxcigpLFc9dGhpcy55LnJlZFNxcigpO2lmKHRoaXMuY3VydmUudHdpc3RlZCl7dmFyIGNlPShKPXRoaXMuY3VydmUuX211bEEoWSkpLnJlZEFkZChXKTt0aGlzLnpPbmU/KE49bGUucmVkU3ViKFkpLnJlZFN1YihXKS5yZWRNdWwoY2UucmVkU3ViKHRoaXMuY3VydmUu''@;'; + put 'put ''dHdvKSksZWU9Y2UucmVkTXVsKEoucmVkU3ViKFcpKSxxPWNlLnJlZFNxcigpLnJlZFN1YihjZSkucmVkU3ViKGNlKSk6KHNlPXRoaXMuei5yZWRTcXIoKSxvZT1jZS5yZWRTdWIoc2UpLnJlZElTdWIoc2UpLE49bGUucmVkU3ViKFkpLnJlZElTdWIoVykucmVkTXVsKG9lKSxlZT1jZS5yZWRN''@;'; + put 'put ''dWwoSi5yZWRTdWIoVykpLHE9Y2UucmVkTXVsKG9lKSl9ZWxzZSBKPVkucmVkQWRkKFcpLHNlPXRoaXMuY3VydmUuX211bEModGhpcy56KS5yZWRTcXIoKSxvZT1KLnJlZFN1YihzZSkucmVkU3ViKHNlKSxOPXRoaXMuY3VydmUuX211bEMobGUucmVkSVN1YihKKSkucmVkTXVsKG9lKSxlZT10''@;'; + put 'put ''aGlzLmN1cnZlLl9tdWxDKEopLnJlZE11bChZLnJlZElTdWIoVykpLHE9Si5yZWRNdWwob2UpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KE4sZWUscSl9LFoucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuY3VydmUuZXh0ZW5kZWQ/''@;'; + put 'put ''dGhpcy5fZXh0RGJsKCk6dGhpcy5fcHJvakRibCgpfSxaLnByb3RvdHlwZS5fZXh0QWRkPWZ1bmN0aW9uKGxlKXt2YXIgWT10aGlzLnkucmVkU3ViKHRoaXMueCkucmVkTXVsKGxlLnkucmVkU3ViKGxlLngpKSxXPXRoaXMueS5yZWRBZGQodGhpcy54KS5yZWRNdWwobGUueS5yZWRBZGQobGUu''@;'; + put 'put ''eCkpLE49dGhpcy50LnJlZE11bCh0aGlzLmN1cnZlLmRkKS5yZWRNdWwobGUudCksZWU9dGhpcy56LnJlZE11bChsZS56LnJlZEFkZChsZS56KSkscT1XLnJlZFN1YihZKSxKPWVlLnJlZFN1YihOKSxzZT1lZS5yZWRBZGQoTiksb2U9Vy5yZWRBZGQoWSksY2U9cS5yZWRNdWwoSiksZGU9c2Uu''@;'; + put 'put ''cmVkTXVsKG9lKSx2ZT1xLnJlZE11bChvZSksQWU9Si5yZWRNdWwoc2UpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KGNlLGRlLEFlLHZlKX0sWi5wcm90b3R5cGUuX3Byb2pBZGQ9ZnVuY3Rpb24obGUpe3ZhciBkZSx2ZSxZPXRoaXMuei5yZWRNdWwobGUueiksVz1ZLnJlZFNxcigpLE49dGhp''@;'; + put 'put ''cy54LnJlZE11bChsZS54KSxlZT10aGlzLnkucmVkTXVsKGxlLnkpLHE9dGhpcy5jdXJ2ZS5kLnJlZE11bChOKS5yZWRNdWwoZWUpLEo9Vy5yZWRTdWIocSksc2U9Vy5yZWRBZGQocSksb2U9dGhpcy54LnJlZEFkZCh0aGlzLnkpLnJlZE11bChsZS54LnJlZEFkZChsZS55KSkucmVkSVN1YihO''@;'; + put 'put ''KS5yZWRJU3ViKGVlKSxjZT1ZLnJlZE11bChKKS5yZWRNdWwob2UpO3JldHVybiB0aGlzLmN1cnZlLnR3aXN0ZWQ/KGRlPVkucmVkTXVsKHNlKS5yZWRNdWwoZWUucmVkU3ViKHRoaXMuY3VydmUuX211bEEoTikpKSx2ZT1KLnJlZE11bChzZSkpOihkZT1ZLnJlZE11bChzZSkucmVkTXVsKGVl''@;'; + put 'put ''LnJlZFN1YihOKSksdmU9dGhpcy5jdXJ2ZS5fbXVsQyhKKS5yZWRNdWwoc2UpKSx0aGlzLmN1cnZlLnBvaW50KGNlLGRlLHZlKX0sWi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGxlKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/bGU6bGUuaXNJbmZpbml0eSgpP3RoaXM6dGhpcy5jdXJ2ZS5l''@;'; + put 'put ''eHRlbmRlZD90aGlzLl9leHRBZGQobGUpOnRoaXMuX3Byb2pBZGQobGUpfSxaLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24obGUpe3JldHVybiB0aGlzLl9oYXNEb3VibGVzKGxlKT90aGlzLmN1cnZlLl9maXhlZE5hZk11bCh0aGlzLGxlKTp0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsbGUpfSxa''@;'; + put 'put ''LnByb3RvdHlwZS5tdWxBZGQ9ZnVuY3Rpb24obGUsWSxXKXtyZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLFt0aGlzLFldLFtsZSxXXSwyLCExKX0sWi5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbihsZSxZLFcpe3JldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsW3RoaXMs''@;'; + put 'put ''WV0sW2xlLFddLDIsITApfSxaLnByb3RvdHlwZS5ub3JtYWxpemU9ZnVuY3Rpb24oKXtpZih0aGlzLnpPbmUpcmV0dXJuIHRoaXM7dmFyIGxlPXRoaXMuei5yZWRJbnZtKCk7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKGxlKSx0aGlzLnk9dGhpcy55LnJlZE11bChsZSksdGhpcy50JiYo''@;'; + put 'put ''dGhpcy50PXRoaXMudC5yZWRNdWwobGUpKSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56T25lPSEwLHRoaXN9LFoucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWROZWcoKSx0aGlzLnksdGhpcy56LHRoaXMudCYmdGhpcy50LnJl''@;'; + put 'put ''ZE5lZygpKX0sWi5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9LFoucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnkuZnJvbVJlZCgpfSxaLnByb3RvdHlwZS5lcT1m''@;'; + put 'put ''dW5jdGlvbihsZSl7cmV0dXJuIHRoaXM9PT1sZXx8MD09PXRoaXMuZ2V0WCgpLmNtcChsZS5nZXRYKCkpJiYwPT09dGhpcy5nZXRZKCkuY21wKGxlLmdldFkoKSl9LFoucHJvdG90eXBlLmVxWFRvUD1mdW5jdGlvbihsZSl7dmFyIFk9bGUudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bCh0''@;'; + put 'put ''aGlzLnopO2lmKDA9PT10aGlzLnguY21wKFkpKXJldHVybiEwO2Zvcih2YXIgVz1sZS5jbG9uZSgpLE49dGhpcy5jdXJ2ZS5yZWROLnJlZE11bCh0aGlzLnopOzspe2lmKFcuaWFkZCh0aGlzLmN1cnZlLm4pLFcuY21wKHRoaXMuY3VydmUucCk+PTApcmV0dXJuITE7aWYoWS5yZWRJQWRkKE4p''@;'; + put 'put ''LDA9PT10aGlzLnguY21wKFkpKXJldHVybiEwfX0sWi5wcm90b3R5cGUudG9QPVoucHJvdG90eXBlLm5vcm1hbGl6ZSxaLnByb3RvdHlwZS5taXhlZEFkZD1aLnByb3RvdHlwZS5hZGR9LDQ2MjcwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9SmU7bWUuYmFzZT1MKDk3OTAyKSxt''@;'; + put 'put ''ZS5zaG9ydD1MKDQxNzgxKSxtZS5tb250PUwoOTcwNjQpLG1lLmVkd2FyZHM9TCgxMzgzNSl9LDk3MDY0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgxNzQzMyksQj1MKDgzODk0KSxFPUwoOTc5MDIpLE1lPUwoNjE5NzApO2Z1bmN0aW9uIFUoWil7RS5jYWxsKHRoaXMsIm1v''@;'; + put 'put ''bnQiLFopLHRoaXMuYT1uZXcgbWUoWi5hLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5iPW5ldyBtZShaLmIsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmk0PW5ldyBtZSg0KS50b1JlZCh0aGlzLnJlZCkucmVkSW52bSgpLHRoaXMudHdvPW5ldyBtZSgyKS50b1JlZCh0aGlzLnJlZCksdGhp''@;'; + put 'put ''cy5hMjQ9dGhpcy5pNC5yZWRNdWwodGhpcy5hLnJlZEFkZCh0aGlzLnR3bykpfWZ1bmN0aW9uIFEoWixpZSxsZSl7RS5CYXNlUG9pbnQuY2FsbCh0aGlzLFosInByb2plY3RpdmUiKSxudWxsPT09aWUmJm51bGw9PT1sZT8odGhpcy54PXRoaXMuY3VydmUub25lLHRoaXMuej10aGlzLmN1cnZl''@;'; + put 'put ''Lnplcm8pOih0aGlzLng9bmV3IG1lKGllLDE2KSx0aGlzLno9bmV3IG1lKGxlLDE2KSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSkpfUIoVSxFKSxYZS5leHBv''@;'; + put 'put ''cnRzPVUsVS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oaWUpe3ZhciBsZT1pZS5ub3JtYWxpemUoKS54LFk9bGUucmVkU3FyKCksVz1ZLnJlZE11bChsZSkucmVkQWRkKFkucmVkTXVsKHRoaXMuYSkpLnJlZEFkZChsZSk7cmV0dXJuIDA9PT1XLnJlZFNxcnQoKS5yZWRTcXIoKS5jbXAo''@;'; + put 'put ''Vyl9LEIoUSxFLkJhc2VQb2ludCksVS5wcm90b3R5cGUuZGVjb2RlUG9pbnQ9ZnVuY3Rpb24oaWUsbGUpe3JldHVybiB0aGlzLnBvaW50KE1lLnRvQXJyYXkoaWUsbGUpLDEpfSxVLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbihpZSxsZSl7cmV0dXJuIG5ldyBRKHRoaXMsaWUsbGUpfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKGllKXtyZXR1cm4gUS5mcm9tSlNPTih0aGlzLGllKX0sUS5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbigpe30sUS5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFgoKS50b0FycmF5KCJiZSIsdGhp''@;'; + put 'put ''cy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSl9LFEuZnJvbUpTT049ZnVuY3Rpb24oaWUsbGUpe3JldHVybiBuZXcgUShpZSxsZVswXSxsZVsxXXx8aWUub25lKX0sUS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5''@;'; + put 'put ''PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxRLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnouY21wbigwKX0sUS5wcm90b3R5''@;'; + put 'put ''cGUuZGJsPWZ1bmN0aW9uKCl7dmFyIGxlPXRoaXMueC5yZWRBZGQodGhpcy56KS5yZWRTcXIoKSxXPXRoaXMueC5yZWRTdWIodGhpcy56KS5yZWRTcXIoKSxOPWxlLnJlZFN1YihXKSxlZT1sZS5yZWRNdWwoVykscT1OLnJlZE11bChXLnJlZEFkZCh0aGlzLmN1cnZlLmEyNC5yZWRNdWwoTikp''@;'; + put 'put ''KTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChlZSxxKX0sUS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX0sUS5wcm90b3R5cGUuZGlmZkFkZD1mdW5jdGlvbihpZSxsZSl7dmFyIFk9dGhpcy54LnJl''@;'; + put 'put ''ZEFkZCh0aGlzLnopLFc9dGhpcy54LnJlZFN1Yih0aGlzLnopLE49aWUueC5yZWRBZGQoaWUueikscT1pZS54LnJlZFN1YihpZS56KS5yZWRNdWwoWSksSj1OLnJlZE11bChXKSxzZT1sZS56LnJlZE11bChxLnJlZEFkZChKKS5yZWRTcXIoKSksb2U9bGUueC5yZWRNdWwocS5yZWRJU3ViKEop''@;'; + put 'put ''LnJlZFNxcigpKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChzZSxvZSl9LFEucHJvdG90eXBlLm11bD1mdW5jdGlvbihpZSl7Zm9yKHZhciBsZT1pZS5jbG9uZSgpLFk9dGhpcyxXPXRoaXMuY3VydmUucG9pbnQobnVsbCxudWxsKSxlZT1bXTswIT09bGUuY21wbigwKTtsZS5pdXNocm4oMSkp''@;'; + put 'put ''ZWUucHVzaChsZS5hbmRsbigxKSk7Zm9yKHZhciBxPWVlLmxlbmd0aC0xO3E+PTA7cS0tKTA9PT1lZVtxXT8oWT1ZLmRpZmZBZGQoVyx0aGlzKSxXPVcuZGJsKCkpOihXPVkuZGlmZkFkZChXLHRoaXMpLFk9WS5kYmwoKSk7cmV0dXJuIFd9LFEucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbigp''@;'; + put 'put ''e3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LFEucHJvdG90eXBlLmp1bWxBZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZSIpfSxRLnByb3RvdHlwZS5lcT1mdW5jdGlvbihp''@;'; + put 'put ''ZSl7cmV0dXJuIDA9PT10aGlzLmdldFgoKS5jbXAoaWUuZ2V0WCgpKX0sUS5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKHRoaXMuei5yZWRJbnZtKCkpLHRoaXMuej10aGlzLmN1cnZlLm9uZSx0aGlzfSxRLnByb3RvdHlwZS5nZXRY''@;'; + put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCksdGhpcy54LmZyb21SZWQoKX19LDQxNzgxOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MTk3MCksQj1MKDE3NDMzKSxFPUwoODM4OTQpLE1lPUwoOTc5MDIpLFU9bWUuYXNzZXJ0O2Z1bmN0aW9uIFEobGUpe01l''@;'; + put 'put ''LmNhbGwodGhpcywic2hvcnQiLGxlKSx0aGlzLmE9bmV3IEIobGUuYSwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgQihsZS5iLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy50aW52PXRoaXMudHdvLnJlZEludm0oKSx0aGlzLnplcm9BPTA9PT10aGlzLmEuZnJvbVJlZCgpLmNtcG4o''@;'; + put 'put ''MCksdGhpcy50aHJlZUE9MD09PXRoaXMuYS5mcm9tUmVkKCkuc3ViKHRoaXMucCkuY21wbigtMyksdGhpcy5lbmRvPXRoaXMuX2dldEVuZG9tb3JwaGlzbShsZSksdGhpcy5fZW5kb1duYWZUMT1uZXcgQXJyYXkoNCksdGhpcy5fZW5kb1duYWZUMj1uZXcgQXJyYXkoNCl9ZnVuY3Rpb24gWihs''@;'; + put 'put ''ZSxZLFcsTil7TWUuQmFzZVBvaW50LmNhbGwodGhpcyxsZSwiYWZmaW5lIiksbnVsbD09PVkmJm51bGw9PT1XPyh0aGlzLng9bnVsbCx0aGlzLnk9bnVsbCx0aGlzLmluZj0hMCk6KHRoaXMueD1uZXcgQihZLDE2KSx0aGlzLnk9bmV3IEIoVywxNiksTiYmKHRoaXMueC5mb3JjZVJlZCh0aGlz''@;'; + put 'put ''LmN1cnZlLnJlZCksdGhpcy55LmZvcmNlUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnkucmVkfHwodGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuaW5mPSExKX1mdW5jdGlv''@;'; + put 'put ''biBpZShsZSxZLFcsTil7TWUuQmFzZVBvaW50LmNhbGwodGhpcyxsZSwiamFjb2JpYW4iKSxudWxsPT09WSYmbnVsbD09PVcmJm51bGw9PT1OPyh0aGlzLng9dGhpcy5jdXJ2ZS5vbmUsdGhpcy55PXRoaXMuY3VydmUub25lLHRoaXMuej1uZXcgQigwKSk6KHRoaXMueD1uZXcgQihZLDE2KSx0''@;'; + put 'put ''aGlzLnk9bmV3IEIoVywxNiksdGhpcy56PW5ldyBCKE4sMTYpKSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnou''@;'; + put 'put ''dG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmV9RShRLE1lKSxYZS5leHBvcnRzPVEsUS5wcm90b3R5cGUuX2dldEVuZG9tb3JwaGlzbT1mdW5jdGlvbihZKXtpZih0aGlzLnplcm9BJiZ0aGlzLmcmJnRoaXMubiYmMT09PXRoaXMucC5tb2Ru''@;'; + put 'put ''KDMpKXt2YXIgVyxOO2lmKFkuYmV0YSlXPW5ldyBCKFkuYmV0YSwxNikudG9SZWQodGhpcy5yZWQpO2Vsc2V7dmFyIGVlPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLnApO1c9KFc9ZWVbMF0uY21wKGVlWzFdKTwwP2VlWzBdOmVlWzFdKS50b1JlZCh0aGlzLnJlZCl9aWYoWS5sYW1iZGEpTj1u''@;'; + put 'put ''ZXcgQihZLmxhbWJkYSwxNik7ZWxzZXt2YXIgcT10aGlzLl9nZXRFbmRvUm9vdHModGhpcy5uKTswPT09dGhpcy5nLm11bChxWzBdKS54LmNtcCh0aGlzLmcueC5yZWRNdWwoVykpP049cVswXTpVKDA9PT10aGlzLmcubXVsKE49cVsxXSkueC5jbXAodGhpcy5nLngucmVkTXVsKFcpKSl9cmV0''@;'; + put 'put ''dXJue2JldGE6VyxsYW1iZGE6TixiYXNpczpZLmJhc2lzP1kuYmFzaXMubWFwKGZ1bmN0aW9uKHNlKXtyZXR1cm57YTpuZXcgQihzZS5hLDE2KSxiOm5ldyBCKHNlLmIsMTYpfX0pOnRoaXMuX2dldEVuZG9CYXNpcyhOKX19fSxRLnByb3RvdHlwZS5fZ2V0RW5kb1Jvb3RzPWZ1bmN0aW9uKFkp''@;'; + put 'put ''e3ZhciBXPVk9PT10aGlzLnA/dGhpcy5yZWQ6Qi5tb250KFkpLE49bmV3IEIoMikudG9SZWQoVykucmVkSW52bSgpLGVlPU4ucmVkTmVnKCkscT1uZXcgQigzKS50b1JlZChXKS5yZWROZWcoKS5yZWRTcXJ0KCkucmVkTXVsKE4pO3JldHVybltlZS5yZWRBZGQocSkuZnJvbVJlZCgpLGVlLnJl''@;'; + put 'put ''ZFN1YihxKS5mcm9tUmVkKCldfSxRLnByb3RvdHlwZS5fZ2V0RW5kb0Jhc2lzPWZ1bmN0aW9uKFkpe2Zvcih2YXIgY2UsZGUsdmUsQWUsa2UsU2UsSWUsRWUsaGUsVz10aGlzLm4udXNocm4oTWF0aC5mbG9vcih0aGlzLm4uYml0TGVuZ3RoKCkvMikpLE49WSxlZT10aGlzLm4uY2xvbmUoKSxx''@;'; + put 'put ''PW5ldyBCKDEpLEo9bmV3IEIoMCksc2U9bmV3IEIoMCksb2U9bmV3IEIoMSksVGU9MDswIT09Ti5jbXBuKDApOyl7dmFyIE89ZWUuZGl2KE4pO0VlPWVlLnN1YihPLm11bChOKSksaGU9c2Uuc3ViKE8ubXVsKHEpKTt2YXIgej1vZS5zdWIoTy5tdWwoSikpO2lmKCF2ZSYmRWUuY21wKFcpPDAp''@;'; + put 'put ''Y2U9SWUubmVnKCksZGU9cSx2ZT1FZS5uZWcoKSxBZT1oZTtlbHNlIGlmKHZlJiYyPT0rK1RlKWJyZWFrO0llPUVlLGVlPU4sTj1FZSxzZT1xLHE9aGUsb2U9SixKPXp9a2U9RWUubmVnKCksU2U9aGU7dmFyIG5lPXZlLnNxcigpLmFkZChBZS5zcXIoKSk7cmV0dXJuIGtlLnNxcigpLmFkZChT''@;'; + put 'put ''ZS5zcXIoKSkuY21wKG5lKT49MCYmKGtlPWNlLFNlPWRlKSx2ZS5uZWdhdGl2ZSYmKHZlPXZlLm5lZygpLEFlPUFlLm5lZygpKSxrZS5uZWdhdGl2ZSYmKGtlPWtlLm5lZygpLFNlPVNlLm5lZygpKSxbe2E6dmUsYjpBZX0se2E6a2UsYjpTZX1dfSxRLnByb3RvdHlwZS5fZW5kb1NwbGl0PWZ1''@;'; + put 'put ''bmN0aW9uKFkpe3ZhciBXPXRoaXMuZW5kby5iYXNpcyxOPVdbMF0sZWU9V1sxXSxxPWVlLmIubXVsKFkpLmRpdlJvdW5kKHRoaXMubiksSj1OLmIubmVnKCkubXVsKFkpLmRpdlJvdW5kKHRoaXMubiksc2U9cS5tdWwoTi5hKSxvZT1KLm11bChlZS5hKSxjZT1xLm11bChOLmIpLGRlPUoubXVs''@;'; + put 'put ''KGVlLmIpO3JldHVybntrMTpZLnN1YihzZSkuc3ViKG9lKSxrMjpjZS5hZGQoZGUpLm5lZygpfX0sUS5wcm90b3R5cGUucG9pbnRGcm9tWD1mdW5jdGlvbihZLFcpeyhZPW5ldyBCKFksMTYpKS5yZWR8fChZPVkudG9SZWQodGhpcy5yZWQpKTt2YXIgTj1ZLnJlZFNxcigpLnJlZE11bChZKS5y''@;'; + put 'put ''ZWRJQWRkKFkucmVkTXVsKHRoaXMuYSkpLnJlZElBZGQodGhpcy5iKSxlZT1OLnJlZFNxcnQoKTtpZigwIT09ZWUucmVkU3FyKCkucmVkU3ViKE4pLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3ZhciBxPWVlLmZyb21SZWQoKS5pc09kZCgpO3JldHVy''@;'; + put 'put ''bihXJiYhcXx8IVcmJnEpJiYoZWU9ZWUucmVkTmVnKCkpLHRoaXMucG9pbnQoWSxlZSl9LFEucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKFkpe2lmKFkuaW5mKXJldHVybiEwO3ZhciBXPVkueCxOPVkueSxlZT10aGlzLmEucmVkTXVsKFcpLHE9Vy5yZWRTcXIoKS5yZWRNdWwoVykucmVk''@;'; + put 'put ''SUFkZChlZSkucmVkSUFkZCh0aGlzLmIpO3JldHVybiAwPT09Ti5yZWRTcXIoKS5yZWRJU3ViKHEpLmNtcG4oMCl9LFEucHJvdG90eXBlLl9lbmRvV25hZk11bEFkZD1mdW5jdGlvbihZLFcsTil7Zm9yKHZhciBlZT10aGlzLl9lbmRvV25hZlQxLHE9dGhpcy5fZW5kb1duYWZUMixKPTA7SjxZ''@;'; + put 'put ''Lmxlbmd0aDtKKyspe3ZhciBzZT10aGlzLl9lbmRvU3BsaXQoV1tKXSksb2U9WVtKXSxjZT1vZS5fZ2V0QmV0YSgpO3NlLmsxLm5lZ2F0aXZlJiYoc2UuazEuaW5lZygpLG9lPW9lLm5lZyghMCkpLHNlLmsyLm5lZ2F0aXZlJiYoc2UuazIuaW5lZygpLGNlPWNlLm5lZyghMCkpLGVlWzIqSl09''@;'; + put 'put ''b2UsZWVbMipKKzFdPWNlLHFbMipKXT1zZS5rMSxxWzIqSisxXT1zZS5rMn1mb3IodmFyIGRlPXRoaXMuX3duYWZNdWxBZGQoMSxlZSxxLDIqSixOKSx2ZT0wO3ZlPDIqSjt2ZSsrKWVlW3ZlXT1udWxsLHFbdmVdPW51bGw7cmV0dXJuIGRlfSxFKFosTWUuQmFzZVBvaW50KSxRLnByb3RvdHlw''@;'; + put 'put ''ZS5wb2ludD1mdW5jdGlvbihZLFcsTil7cmV0dXJuIG5ldyBaKHRoaXMsWSxXLE4pfSxRLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKFksVyl7cmV0dXJuIFouZnJvbUpTT04odGhpcyxZLFcpfSxaLnByb3RvdHlwZS5fZ2V0QmV0YT1mdW5jdGlvbigpe2lmKHRoaXMuY3VydmUu''@;'; + put 'put ''ZW5kbyl7dmFyIFk9dGhpcy5wcmVjb21wdXRlZDtpZihZJiZZLmJldGEpcmV0dXJuIFkuYmV0YTt2YXIgVz10aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWRNdWwodGhpcy5jdXJ2ZS5lbmRvLmJldGEpLHRoaXMueSk7aWYoWSl7dmFyIE49dGhpcy5jdXJ2ZSxlZT1mdW5jdGlvbihxKXtyZXR1''@;'; + put 'put ''cm4gTi5wb2ludChxLngucmVkTXVsKE4uZW5kby5iZXRhKSxxLnkpfTtZLmJldGE9VyxXLnByZWNvbXB1dGVkPXtiZXRhOm51bGwsbmFmOlkubmFmJiZ7d25kOlkubmFmLnduZCxwb2ludHM6WS5uYWYucG9pbnRzLm1hcChlZSl9LGRvdWJsZXM6WS5kb3VibGVzJiZ7c3RlcDpZLmRvdWJsZXMu''@;'; + put 'put ''c3RlcCxwb2ludHM6WS5kb3VibGVzLnBvaW50cy5tYXAoZWUpfX19cmV0dXJuIFd9fSxaLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmVjb21wdXRlZD9bdGhpcy54LHRoaXMueSx0aGlzLnByZWNvbXB1dGVkJiZ7ZG91Ymxlczp0aGlzLnByZWNvbXB1dGVkLmRv''@;'; + put 'put ''dWJsZXMmJntzdGVwOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5zdGVwLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMucG9pbnRzLnNsaWNlKDEpfSxuYWY6dGhpcy5wcmVjb21wdXRlZC5uYWYmJnt3bmQ6dGhpcy5wcmVjb21wdXRlZC5uYWYud25kLHBvaW50czp0aGlzLnByZWNv''@;'; + put 'put ''bXB1dGVkLm5hZi5wb2ludHMuc2xpY2UoMSl9fV06W3RoaXMueCx0aGlzLnldfSxaLmZyb21KU09OPWZ1bmN0aW9uKFksVyxOKXsic3RyaW5nIj09dHlwZW9mIFcmJihXPUpTT04ucGFyc2UoVykpO3ZhciBlZT1ZLnBvaW50KFdbMF0sV1sxXSxOKTtpZighV1syXSlyZXR1cm4gZWU7ZnVuY3Rp''@;'; + put 'put ''b24gcShzZSl7cmV0dXJuIFkucG9pbnQoc2VbMF0sc2VbMV0sTil9dmFyIEo9V1syXTtyZXR1cm4gZWUucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxkb3VibGVzOkouZG91YmxlcyYme3N0ZXA6Si5kb3VibGVzLnN0ZXAscG9pbnRzOltlZV0uY29uY2F0KEouZG91Ymxlcy5wb2ludHMubWFwKHEp''@;'; + put 'put ''KX0sbmFmOkoubmFmJiZ7d25kOkoubmFmLnduZCxwb2ludHM6W2VlXS5jb25jYXQoSi5uYWYucG9pbnRzLm1hcChxKSl9fSxlZX0sWi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4''@;'; + put 'put ''OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxaLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mfSxaLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oWSl7aWYodGhp''@;'; + put 'put ''cy5pbmYpcmV0dXJuIFk7aWYoWS5pbmYpcmV0dXJuIHRoaXM7aWYodGhpcy5lcShZKSlyZXR1cm4gdGhpcy5kYmwoKTtpZih0aGlzLm5lZygpLmVxKFkpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7aWYoMD09PXRoaXMueC5jbXAoWS54KSlyZXR1cm4gdGhpcy5jdXJ2ZS5w''@;'; + put 'put ''b2ludChudWxsLG51bGwpO3ZhciBXPXRoaXMueS5yZWRTdWIoWS55KTswIT09Vy5jbXBuKDApJiYoVz1XLnJlZE11bCh0aGlzLngucmVkU3ViKFkueCkucmVkSW52bSgpKSk7dmFyIE49Vy5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueCkucmVkSVN1YihZLngpLGVlPVcucmVkTXVsKHRoaXMueC5y''@;'; + put 'put ''ZWRTdWIoTikpLnJlZElTdWIodGhpcy55KTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChOLGVlKX0sWi5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7aWYodGhpcy5pbmYpcmV0dXJuIHRoaXM7dmFyIFk9dGhpcy55LnJlZEFkZCh0aGlzLnkpO2lmKDA9PT1ZLmNtcG4oMCkpcmV0dXJuIHRoaXMu''@;'; + put 'put ''Y3VydmUucG9pbnQobnVsbCxudWxsKTt2YXIgVz10aGlzLmN1cnZlLmEsTj10aGlzLngucmVkU3FyKCksZWU9WS5yZWRJbnZtKCkscT1OLnJlZEFkZChOKS5yZWRJQWRkKE4pLnJlZElBZGQoVykucmVkTXVsKGVlKSxKPXEucmVkU3FyKCkucmVkSVN1Yih0aGlzLngucmVkQWRkKHRoaXMueCkp''@;'; + put 'put ''LHNlPXEucmVkTXVsKHRoaXMueC5yZWRTdWIoSikpLnJlZElTdWIodGhpcy55KTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChKLHNlKX0sWi5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnguZnJvbVJlZCgpfSxaLnByb3RvdHlwZS5nZXRZPWZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMueS5mcm9tUmVkKCl9LFoucHJvdG90eXBlLm11bD1mdW5jdGlvbihZKXtyZXR1cm4gWT1uZXcgQihZLDE2KSx0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuX2hhc0RvdWJsZXMoWSk/dGhpcy5jdXJ2ZS5fZml4ZWROYWZNdWwodGhpcyxZKTp0aGlzLmN1cnZlLmVuZG8/dGhpcy5j''@;'; + put 'put ''dXJ2ZS5fZW5kb1duYWZNdWxBZGQoW3RoaXNdLFtZXSk6dGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLFkpfSxaLnByb3RvdHlwZS5tdWxBZGQ9ZnVuY3Rpb24oWSxXLE4pe3ZhciBlZT1bdGhpcyxXXSxxPVtZLE5dO3JldHVybiB0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZN''@;'; + put 'put ''dWxBZGQoZWUscSk6dGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLGVlLHEsMil9LFoucHJvdG90eXBlLmptdWxBZGQ9ZnVuY3Rpb24oWSxXLE4pe3ZhciBlZT1bdGhpcyxXXSxxPVtZLE5dO3JldHVybiB0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQoZWUscSwhMCk6''@;'; + put 'put ''dGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLGVlLHEsMiwhMCl9LFoucHJvdG90eXBlLmVxPWZ1bmN0aW9uKFkpe3JldHVybiB0aGlzPT09WXx8dGhpcy5pbmY9PT1ZLmluZiYmKHRoaXMuaW5mfHwwPT09dGhpcy54LmNtcChZLngpJiYwPT09dGhpcy55LmNtcChZLnkpKX0sWi5wcm90b3R5cGUu''@;'; + put 'put ''bmVnPWZ1bmN0aW9uKFkpe2lmKHRoaXMuaW5mKXJldHVybiB0aGlzO3ZhciBXPXRoaXMuY3VydmUucG9pbnQodGhpcy54LHRoaXMueS5yZWROZWcoKSk7aWYoWSYmdGhpcy5wcmVjb21wdXRlZCl7dmFyIE49dGhpcy5wcmVjb21wdXRlZCxlZT1mdW5jdGlvbihxKXtyZXR1cm4gcS5uZWcoKX07''@;'; + put 'put ''Vy5wcmVjb21wdXRlZD17bmFmOk4ubmFmJiZ7d25kOk4ubmFmLnduZCxwb2ludHM6Ti5uYWYucG9pbnRzLm1hcChlZSl9LGRvdWJsZXM6Ti5kb3VibGVzJiZ7c3RlcDpOLmRvdWJsZXMuc3RlcCxwb2ludHM6Ti5kb3VibGVzLnBvaW50cy5tYXAoZWUpfX19cmV0dXJuIFd9LFoucHJvdG90eXBl''@;'; + put 'put ''LnRvSj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmluZj90aGlzLmN1cnZlLmpwb2ludChudWxsLG51bGwsbnVsbCk6dGhpcy5jdXJ2ZS5qcG9pbnQodGhpcy54LHRoaXMueSx0aGlzLmN1cnZlLm9uZSl9LEUoaWUsTWUuQmFzZVBvaW50KSxRLnByb3RvdHlwZS5qcG9pbnQ9ZnVuY3Rpb24oWSxX''@;'; + put 'put ''LE4pe3JldHVybiBuZXcgaWUodGhpcyxZLFcsTil9LGllLnByb3RvdHlwZS50b1A9ZnVuY3Rpb24oKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciBZPXRoaXMuei5yZWRJbnZtKCksVz1ZLnJlZFNxcigpLE49dGhpcy54LnJlZE11''@;'; + put 'put ''bChXKSxlZT10aGlzLnkucmVkTXVsKFcpLnJlZE11bChZKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChOLGVlKX0saWUucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLmpwb2ludCh0aGlzLngsdGhpcy55LnJlZE5lZygpLHRoaXMueil9LGllLnByb3RvdHlwZS5h''@;'; + put 'put ''ZGQ9ZnVuY3Rpb24oWSl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIFk7aWYoWS5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7dmFyIFc9WS56LnJlZFNxcigpLE49dGhpcy56LnJlZFNxcigpLGVlPXRoaXMueC5yZWRNdWwoVykscT1ZLngucmVkTXVsKE4pLEo9dGhpcy55LnJlZE11bChX''@;'; + put 'put ''LnJlZE11bChZLnopKSxzZT1ZLnkucmVkTXVsKE4ucmVkTXVsKHRoaXMueikpLG9lPWVlLnJlZFN1YihxKSxjZT1KLnJlZFN1YihzZSk7aWYoMD09PW9lLmNtcG4oMCkpcmV0dXJuIDAhPT1jZS5jbXBuKDApP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmRibCgpO3Zh''@;'; + put 'put ''ciBkZT1vZS5yZWRTcXIoKSx2ZT1kZS5yZWRNdWwob2UpLEFlPWVlLnJlZE11bChkZSksa2U9Y2UucmVkU3FyKCkucmVkSUFkZCh2ZSkucmVkSVN1YihBZSkucmVkSVN1YihBZSksU2U9Y2UucmVkTXVsKEFlLnJlZElTdWIoa2UpKS5yZWRJU3ViKEoucmVkTXVsKHZlKSksSWU9dGhpcy56LnJl''@;'; + put 'put ''ZE11bChZLnopLnJlZE11bChvZSk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KGtlLFNlLEllKX0saWUucHJvdG90eXBlLm1peGVkQWRkPWZ1bmN0aW9uKFkpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiBZLnRvSigpO2lmKFkuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO3ZhciBXPXRo''@;'; + put 'put ''aXMuei5yZWRTcXIoKSxOPXRoaXMueCxlZT1ZLngucmVkTXVsKFcpLHE9dGhpcy55LEo9WS55LnJlZE11bChXKS5yZWRNdWwodGhpcy56KSxzZT1OLnJlZFN1YihlZSksb2U9cS5yZWRTdWIoSik7aWYoMD09PXNlLmNtcG4oMCkpcmV0dXJuIDAhPT1vZS5jbXBuKDApP3RoaXMuY3VydmUuanBv''@;'; + put 'put ''aW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmRibCgpO3ZhciBjZT1zZS5yZWRTcXIoKSxkZT1jZS5yZWRNdWwoc2UpLHZlPU4ucmVkTXVsKGNlKSxBZT1vZS5yZWRTcXIoKS5yZWRJQWRkKGRlKS5yZWRJU3ViKHZlKS5yZWRJU3ViKHZlKSxrZT1vZS5yZWRNdWwodmUucmVkSVN1YihBZSkpLnJl''@;'; + put 'put ''ZElTdWIocS5yZWRNdWwoZGUpKSxTZT10aGlzLnoucmVkTXVsKHNlKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoQWUsa2UsU2UpfSxpZS5wcm90b3R5cGUuZGJscD1mdW5jdGlvbihZKXtpZigwPT09WSlyZXR1cm4gdGhpcztpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpcztpZigh''@;'; + put 'put ''WSlyZXR1cm4gdGhpcy5kYmwoKTt2YXIgVztpZih0aGlzLmN1cnZlLnplcm9BfHx0aGlzLmN1cnZlLnRocmVlQSl7dmFyIE49dGhpcztmb3IoVz0wO1c8WTtXKyspTj1OLmRibCgpO3JldHVybiBOfXZhciBlZT10aGlzLmN1cnZlLmEscT10aGlzLmN1cnZlLnRpbnYsSj10aGlzLngsc2U9dGhp''@;'; + put 'put ''cy55LG9lPXRoaXMueixjZT1vZS5yZWRTcXIoKS5yZWRTcXIoKSxkZT1zZS5yZWRBZGQoc2UpO2ZvcihXPTA7VzxZO1crKyl7dmFyIHZlPUoucmVkU3FyKCksQWU9ZGUucmVkU3FyKCksa2U9QWUucmVkU3FyKCksU2U9dmUucmVkQWRkKHZlKS5yZWRJQWRkKHZlKS5yZWRJQWRkKGVlLnJlZE11''@;'; + put 'put ''bChjZSkpLEllPUoucmVkTXVsKEFlKSxUZT1TZS5yZWRTcXIoKS5yZWRJU3ViKEllLnJlZEFkZChJZSkpLEVlPUllLnJlZElTdWIoVGUpLGhlPVNlLnJlZE11bChFZSk7aGU9aGUucmVkSUFkZChoZSkucmVkSVN1YihrZSk7dmFyIE89ZGUucmVkTXVsKG9lKTtXKzE8WSYmKGNlPWNlLnJlZE11''@;'; + put 'put ''bChrZSkpLEo9VGUsb2U9TyxkZT1oZX1yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoSixkZS5yZWRNdWwocSksb2UpfSxpZS5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpP3RoaXM6dGhpcy5jdXJ2ZS56ZXJvQT90aGlzLl96ZXJvRGJsKCk6dGhpcy5j''@;'; + put 'put ''dXJ2ZS50aHJlZUE/dGhpcy5fdGhyZWVEYmwoKTp0aGlzLl9kYmwoKX0saWUucHJvdG90eXBlLl96ZXJvRGJsPWZ1bmN0aW9uKCl7dmFyIFksVyxOO2lmKHRoaXMuek9uZSl7dmFyIGVlPXRoaXMueC5yZWRTcXIoKSxxPXRoaXMueS5yZWRTcXIoKSxKPXEucmVkU3FyKCksc2U9dGhpcy54LnJl''@;'; + put 'put ''ZEFkZChxKS5yZWRTcXIoKS5yZWRJU3ViKGVlKS5yZWRJU3ViKEopO3NlPXNlLnJlZElBZGQoc2UpO3ZhciBvZT1lZS5yZWRBZGQoZWUpLnJlZElBZGQoZWUpLGNlPW9lLnJlZFNxcigpLnJlZElTdWIoc2UpLnJlZElTdWIoc2UpLGRlPUoucmVkSUFkZChKKTtkZT0oZGU9ZGUucmVkSUFkZChk''@;'; + put 'put ''ZSkpLnJlZElBZGQoZGUpLFk9Y2UsVz1vZS5yZWRNdWwoc2UucmVkSVN1YihjZSkpLnJlZElTdWIoZGUpLE49dGhpcy55LnJlZEFkZCh0aGlzLnkpfWVsc2V7dmFyIHZlPXRoaXMueC5yZWRTcXIoKSxBZT10aGlzLnkucmVkU3FyKCksa2U9QWUucmVkU3FyKCksU2U9dGhpcy54LnJlZEFkZChB''@;'; + put 'put ''ZSkucmVkU3FyKCkucmVkSVN1Yih2ZSkucmVkSVN1YihrZSk7U2U9U2UucmVkSUFkZChTZSk7dmFyIEllPXZlLnJlZEFkZCh2ZSkucmVkSUFkZCh2ZSksVGU9SWUucmVkU3FyKCksRWU9a2UucmVkSUFkZChrZSk7RWU9KEVlPUVlLnJlZElBZGQoRWUpKS5yZWRJQWRkKEVlKSxZPVRlLnJlZElT''@;'; + put 'put ''dWIoU2UpLnJlZElTdWIoU2UpLFc9SWUucmVkTXVsKFNlLnJlZElTdWIoWSkpLnJlZElTdWIoRWUpLE49KE49dGhpcy55LnJlZE11bCh0aGlzLnopKS5yZWRJQWRkKE4pfXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChZLFcsTil9LGllLnByb3RvdHlwZS5fdGhyZWVEYmw9ZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgWSxXLE47aWYodGhpcy56T25lKXt2YXIgZWU9dGhpcy54LnJlZFNxcigpLHE9dGhpcy55LnJlZFNxcigpLEo9cS5yZWRTcXIoKSxzZT10aGlzLngucmVkQWRkKHEpLnJlZFNxcigpLnJlZElTdWIoZWUpLnJlZElTdWIoSik7c2U9c2UucmVkSUFkZChzZSk7dmFyIG9lPWVlLnJlZEFkZChl''@;'; + put 'put ''ZSkucmVkSUFkZChlZSkucmVkSUFkZCh0aGlzLmN1cnZlLmEpLGNlPW9lLnJlZFNxcigpLnJlZElTdWIoc2UpLnJlZElTdWIoc2UpO1k9Y2U7dmFyIGRlPUoucmVkSUFkZChKKTtkZT0oZGU9ZGUucmVkSUFkZChkZSkpLnJlZElBZGQoZGUpLFc9b2UucmVkTXVsKHNlLnJlZElTdWIoY2UpKS5y''@;'; + put 'put ''ZWRJU3ViKGRlKSxOPXRoaXMueS5yZWRBZGQodGhpcy55KX1lbHNle3ZhciB2ZT10aGlzLnoucmVkU3FyKCksQWU9dGhpcy55LnJlZFNxcigpLGtlPXRoaXMueC5yZWRNdWwoQWUpLFNlPXRoaXMueC5yZWRTdWIodmUpLnJlZE11bCh0aGlzLngucmVkQWRkKHZlKSk7U2U9U2UucmVkQWRkKFNl''@;'; + put 'put ''KS5yZWRJQWRkKFNlKTt2YXIgSWU9a2UucmVkSUFkZChrZSksVGU9KEllPUllLnJlZElBZGQoSWUpKS5yZWRBZGQoSWUpO1k9U2UucmVkU3FyKCkucmVkSVN1YihUZSksTj10aGlzLnkucmVkQWRkKHRoaXMueikucmVkU3FyKCkucmVkSVN1YihBZSkucmVkSVN1Yih2ZSk7dmFyIEVlPUFlLnJl''@;'; + put 'put ''ZFNxcigpO0VlPShFZT0oRWU9RWUucmVkSUFkZChFZSkpLnJlZElBZGQoRWUpKS5yZWRJQWRkKEVlKSxXPVNlLnJlZE11bChJZS5yZWRJU3ViKFkpKS5yZWRJU3ViKEVlKX1yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoWSxXLE4pfSxpZS5wcm90b3R5cGUuX2RibD1mdW5jdGlvbigpe3ZhciBZ''@;'; + put 'put ''PXRoaXMuY3VydmUuYSxXPXRoaXMueCxOPXRoaXMueSxlZT10aGlzLnoscT1lZS5yZWRTcXIoKS5yZWRTcXIoKSxKPVcucmVkU3FyKCksc2U9Ti5yZWRTcXIoKSxvZT1KLnJlZEFkZChKKS5yZWRJQWRkKEopLnJlZElBZGQoWS5yZWRNdWwocSkpLGNlPVcucmVkQWRkKFcpLGRlPShjZT1jZS5y''@;'; + put 'put ''ZWRJQWRkKGNlKSkucmVkTXVsKHNlKSx2ZT1vZS5yZWRTcXIoKS5yZWRJU3ViKGRlLnJlZEFkZChkZSkpLEFlPWRlLnJlZElTdWIodmUpLGtlPXNlLnJlZFNxcigpO2tlPShrZT0oa2U9a2UucmVkSUFkZChrZSkpLnJlZElBZGQoa2UpKS5yZWRJQWRkKGtlKTt2YXIgU2U9b2UucmVkTXVsKEFl''@;'; + put 'put ''KS5yZWRJU3ViKGtlKSxJZT1OLnJlZEFkZChOKS5yZWRNdWwoZWUpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludCh2ZSxTZSxJZSl9LGllLnByb3RvdHlwZS50cnBsPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY3VydmUuemVyb0EpcmV0dXJuIHRoaXMuZGJsKCkuYWRkKHRoaXMpO3ZhciBZPXRoaXMu''@;'; + put 'put ''eC5yZWRTcXIoKSxXPXRoaXMueS5yZWRTcXIoKSxOPXRoaXMuei5yZWRTcXIoKSxlZT1XLnJlZFNxcigpLHE9WS5yZWRBZGQoWSkucmVkSUFkZChZKSxKPXEucmVkU3FyKCksc2U9dGhpcy54LnJlZEFkZChXKS5yZWRTcXIoKS5yZWRJU3ViKFkpLnJlZElTdWIoZWUpLG9lPShzZT0oc2U9KHNl''@;'; + put 'put ''PXNlLnJlZElBZGQoc2UpKS5yZWRBZGQoc2UpLnJlZElBZGQoc2UpKS5yZWRJU3ViKEopKS5yZWRTcXIoKSxjZT1lZS5yZWRJQWRkKGVlKTtjZT0oY2U9KGNlPWNlLnJlZElBZGQoY2UpKS5yZWRJQWRkKGNlKSkucmVkSUFkZChjZSk7dmFyIGRlPXEucmVkSUFkZChzZSkucmVkU3FyKCkucmVk''@;'; + put 'put ''SVN1YihKKS5yZWRJU3ViKG9lKS5yZWRJU3ViKGNlKSx2ZT1XLnJlZE11bChkZSk7dmU9KHZlPXZlLnJlZElBZGQodmUpKS5yZWRJQWRkKHZlKTt2YXIgQWU9dGhpcy54LnJlZE11bChvZSkucmVkSVN1Yih2ZSk7QWU9KEFlPUFlLnJlZElBZGQoQWUpKS5yZWRJQWRkKEFlKTt2YXIga2U9dGhp''@;'; + put 'put ''cy55LnJlZE11bChkZS5yZWRNdWwoY2UucmVkSVN1YihkZSkpLnJlZElTdWIoc2UucmVkTXVsKG9lKSkpO2tlPShrZT0oa2U9a2UucmVkSUFkZChrZSkpLnJlZElBZGQoa2UpKS5yZWRJQWRkKGtlKTt2YXIgU2U9dGhpcy56LnJlZEFkZChzZSkucmVkU3FyKCkucmVkSVN1YihOKS5yZWRJU3Vi''@;'; + put 'put ''KG9lKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoQWUsa2UsU2UpfSxpZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKFksVyl7cmV0dXJuIFk9bmV3IEIoWSxXKSx0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsWSl9LGllLnByb3RvdHlwZS5lcT1mdW5jdGlvbihZKXtpZigiYWZmaW5lIj09PVku''@;'; + put 'put ''dHlwZSlyZXR1cm4gdGhpcy5lcShZLnRvSigpKTtpZih0aGlzPT09WSlyZXR1cm4hMDt2YXIgVz10aGlzLnoucmVkU3FyKCksTj1ZLnoucmVkU3FyKCk7aWYoMCE9PXRoaXMueC5yZWRNdWwoTikucmVkSVN1YihZLngucmVkTXVsKFcpKS5jbXBuKDApKXJldHVybiExO3ZhciBlZT1XLnJlZE11''@;'; + put 'put ''bCh0aGlzLnopLHE9Ti5yZWRNdWwoWS56KTtyZXR1cm4gMD09PXRoaXMueS5yZWRNdWwocSkucmVkSVN1YihZLnkucmVkTXVsKGVlKSkuY21wbigwKX0saWUucHJvdG90eXBlLmVxWFRvUD1mdW5jdGlvbihZKXt2YXIgVz10aGlzLnoucmVkU3FyKCksTj1ZLnRvUmVkKHRoaXMuY3VydmUucmVk''@;'; + put 'put ''KS5yZWRNdWwoVyk7aWYoMD09PXRoaXMueC5jbXAoTikpcmV0dXJuITA7Zm9yKHZhciBlZT1ZLmNsb25lKCkscT10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKFcpOzspe2lmKGVlLmlhZGQodGhpcy5jdXJ2ZS5uKSxlZS5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihOLnJlZElBZGQo''@;'; + put 'put ''cSksMD09PXRoaXMueC5jbXAoTikpcmV0dXJuITB9fSxpZS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIEpQb2ludCBJbmZpbml0eT4iOiI8RUMgSlBvaW50IHg6ICIrdGhpcy54LnRvU3RyaW5nKDE2LDIpKyIgeTogIit0aGlzLnku''@;'; + put 'put ''dG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei50b1N0cmluZygxNiwyKSsiPiJ9LGllLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnouY21wbigwKX19LDUyOTE2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaWUsbWU9SmUsQj1MKDM3MDg0''@;'; + put 'put ''KSxFPUwoNDYyNzApLFU9TCg2MTk3MCkuYXNzZXJ0O2Z1bmN0aW9uIFEobGUpe3RoaXMuY3VydmU9InNob3J0Ij09PWxlLnR5cGU/bmV3IEUuc2hvcnQobGUpOiJlZHdhcmRzIj09PWxlLnR5cGU/bmV3IEUuZWR3YXJkcyhsZSk6bmV3IEUubW9udChsZSksdGhpcy5nPXRoaXMuY3VydmUuZyx0''@;'; + put 'put ''aGlzLm49dGhpcy5jdXJ2ZS5uLHRoaXMuaGFzaD1sZS5oYXNoLFUodGhpcy5nLnZhbGlkYXRlKCksIkludmFsaWQgY3VydmUiKSxVKHRoaXMuZy5tdWwodGhpcy5uKS5pc0luZmluaXR5KCksIkludmFsaWQgY3VydmUsIEcqTiAhPSBPIil9ZnVuY3Rpb24gWihsZSxZKXtPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkobWUsbGUse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciBXPW5ldyBRKFkpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobWUsbGUse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOld9KSxXfX0pfW1lLlByZXNl''@;'; + put 'put ''dEN1cnZlPVEsWigicDE5MiIse3R5cGU6InNob3J0IixwcmltZToicDE5MiIscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZjIixiOiI2''@;'; + put 'put ''NDIxMDUxOSBlNTljODBlNyAwZmE3ZTlhYiA3MjI0MzA0OSBmZWI4ZGVlYyBjMTQ2YjliMSIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgOTlkZWY4MzYgMTQ2YmM5YjEgYjRkMjI4MzEiLGhhc2g6Qi5zaGEyNTYsZ1JlZDohMSxnOlsiMTg4ZGE4MGUgYjAzMDkwZjYgN2NiZjIwZWIg''@;'; + put 'put ''NDNhMTg4MDAgZjRmZjBhZmQgODJmZjEwMTIiLCIwNzE5MmI5NSBmZmM4ZGE3OCA2MzEwMTFlZCA2YjI0Y2RkNSA3M2Y5NzdhMSAxZTc5NDgxMSJdfSksWigicDIyNCIse3R5cGU6InNob3J0IixwcmltZToicDIyNCIscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAw''@;'; + put 'put ''MDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiLGE6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIixiOiJiNDA1MGE4NSAwYzA0YjNhYiBmNTQxMzI1NiA1MDQ0YjBiNyBkN2JmZDhiYSAyNzBiMzk0MyAyMzU1ZmZiNCIsbjoiZmZm''@;'; + put 'put ''ZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZjE2YTIgZTBiOGYwM2UgMTNkZDI5NDUgNWM1YzJhM2QiLGhhc2g6Qi5zaGEyNTYsZ1JlZDohMSxnOlsiYjcwZTBjYmQgNmJiNGJmN2YgMzIxMzkwYjkgNGEwM2MxZDMgNTZjMjExMjIgMzQzMjgwZDYgMTE1YzFkMjEiLCJiZDM3NjM4OCBiNWY3''@;'; + put 'put ''MjNmYiA0YzIyZGZlNiBjZDQzNzVhMCA1YTA3NDc2NCA0NGQ1ODE5OSA4NTAwN2UzNCJdfSksWigicDI1NiIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6ImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIixh''@;'; + put 'put ''OiJmZmZmZmZmZiAwMDAwMDAwMSAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYyIsYjoiNWFjNjM1ZDggYWEzYTkzZTcgYjNlYmJkNTUgNzY5ODg2YmMgNjUxZDA2YjAgY2M1M2IwZjYgM2JjZTNjM2UgMjdkMjYwNGIiLG46ImZmZmZmZmZmIDAw''@;'; + put 'put ''MDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGJjZTZmYWFkIGE3MTc5ZTg0IGYzYjljYWMyIGZjNjMyNTUxIixoYXNoOkIuc2hhMjU2LGdSZWQ6ITEsZzpbIjZiMTdkMWYyIGUxMmM0MjQ3IGY4YmNlNmU1IDYzYTQ0MGYyIDc3MDM3ZDgxIDJkZWIzM2EwIGY0YTEzOTQ1IGQ4OThjMjk2IiwiNGZl''@;'; + put 'put ''MzQyZTIgZmUxYTdmOWIgOGVlN2ViNGEgN2MwZjllMTYgMmJjZTMzNTcgNmIzMTVlY2UgY2JiNjQwNjggMzdiZjUxZjUiXX0pLFooInAzODQiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBm''@;'; + put 'put ''ZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmMi''@;'; + put 'put ''LGI6ImIzMzEyZmE3IGUyM2VlN2U0IDk4OGUwNTZiIGUzZjgyZDE5IDE4MWQ5YzZlIGZlODE0MTEyIDAzMTQwODhmIDUwMTM4NzVhIGM2NTYzOThkIDhhMmVkMTlkIDJhODVjOGVkIGQzZWMyYWVmIixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZm''@;'; + put 'put ''ZmZmZiBjNzYzNGQ4MSBmNDM3MmRkZiA1ODFhMGRiMiA0OGIwYTc3YSBlY2VjMTk2YSBjY2M1Mjk3MyIsaGFzaDpCLnNoYTM4NCxnUmVkOiExLGc6WyJhYTg3Y2EyMiBiZThiMDUzNyA4ZWIxYzcxZSBmMzIwYWQ3NCA2ZTFkM2I2MiA4YmE3OWI5OCA1OWY3NDFlMCA4MjU0MmEzOCA1NTAyZjI1''@;'; + put 'put ''ZCBiZjU1Mjk2YyAzYTU0NWUzOCA3Mjc2MGFiNyIsIjM2MTdkZTRhIDk2MjYyYzZmIDVkOWU5OGJmIDkyOTJkYzI5IGY4ZjQxZGJkIDI4OWExNDdjIGU5ZGEzMTEzIGI1ZjBiOGMwIDBhNjBiMWNlIDFkN2U4MTlkIDdhNDMxZDdjIDkwZWEwZTVmIl19KSxaKCJwNTIxIix7dHlwZToic2hvcnQi''@;'; + put 'put ''LHByaW1lOm51bGwscDoiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZm''@;'; + put 'put ''ZmYiLGE6IjAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjIixiOiIw''@;'; + put 'put ''MDAwMDA1MSA5NTNlYjk2MSA4ZTFjOWExZiA5MjlhMjFhMCBiNjg1NDBlZSBhMmRhNzI1YiA5OWIzMTVmMyBiOGI0ODk5MSA4ZWYxMDllMSA1NjE5Mzk1MSBlYzdlOTM3YiAxNjUyYzBiZCAzYmIxYmYwNyAzNTczZGY4OCAzZDJjMzRmMSBlZjQ1MWZkNCA2YjUwM2YwMCIsbjoiMDAwMDAxZmYg''@;'; + put 'put ''ZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmEgNTE4Njg3ODMgYmYyZjk2NmIgN2ZjYzAxNDggZjcwOWE1ZDAgM2JiNWM5YjggODk5YzQ3YWUgYmI2ZmI3MWUgOTEzODY0MDkiLGhhc2g6Qi5zaGE1MTIsZ1JlZDoh''@;'; + put 'put ''MSxnOlsiMDAwMDAwYzYgODU4ZTA2YjcgMDQwNGU5Y2QgOWUzZWNiNjYgMjM5NWI0NDIgOWM2NDgxMzkgMDUzZmI1MjEgZjgyOGFmNjAgNmI0ZDNkYmEgYTE0YjVlNzcgZWZlNzU5MjggZmUxZGMxMjcgYTJmZmE4ZGUgMzM0OGIzYzEgODU2YTQyOWIgZjk3ZTdlMzEgYzJlNWJkNjYiLCIwMDAw''@;'; + put 'put ''MDExOCAzOTI5NmE3OCA5YTNiYzAwNCA1YzhhNWZiNCAyYzdkMWJkOSA5OGY1NDQ0OSA1NzliNDQ2OCAxN2FmYmQxNyAyNzNlNjYyYyA5N2VlNzI5OSA1ZWY0MjY0MCBjNTUwYjkwMSAzZmFkMDc2MSAzNTNjNzA4NiBhMjcyYzI0MCA4OGJlOTQ3NiA5ZmQxNjY1MCJdfSksWigiY3VydmUyNTUx''@;'; + put 'put ''OSIse3R5cGU6Im1vbnQiLHByaW1lOiJwMjU1MTkiLHA6IjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiLGE6Ijc2ZDA2IixiOiIxIixuOiIxMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMTRkZWY5ZGVh''@;'; + put 'put ''MmY3OWNkNiA1ODEyNjMxYTVjZjVkM2VkIixoYXNoOkIuc2hhMjU2LGdSZWQ6ITEsZzpbIjkiXX0pLFooImVkMjU1MTkiLHt0eXBlOiJlZHdhcmRzIixwcmltZToicDI1NTE5IixwOiI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZm''@;'; + put 'put ''ZmZmZmVkIixhOiItMSIsYzoiMSIsZDoiNTIwMzZjZWUyYjZmZmU3MyA4Y2M3NDA3OTc3NzllODk4IDAwNzAwYTRkNDE0MWQ4YWIgNzVlYjRkY2ExMzU5NzhhMyIsbjoiMTAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDE0ZGVmOWRlYTJmNzljZDYgNTgxMjYzMWE1Y2Y1ZDNlZCIs''@;'; + put 'put ''aGFzaDpCLnNoYTI1NixnUmVkOiExLGc6WyIyMTY5MzZkM2NkNmU1M2ZlYzBhNGUyMzFmZGQ2ZGM1YzY5MmNjNzYwOTUyNWE3YjJjOTU2MmQ2MDhmMjVkNTFhIiwiNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY1OCJdfSk7dHJ5''@;'; + put 'put ''e2llPUwoMjUxNTApfWNhdGNoKGxlKXtpZT12b2lkIDB9Wigic2VjcDI1NmsxIix7dHlwZToic2hvcnQiLHByaW1lOiJrMjU2IixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIsYToiMCIsYjoiNyIsbjoi''@;'; + put 'put ''ZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgYmFhZWRjZTYgYWY0OGEwM2IgYmZkMjVlOGMgZDAzNjQxNDEiLGg6IjEiLGhhc2g6Qi5zaGEyNTYsYmV0YToiN2FlOTZhMmI2NTdjMDcxMDZlNjQ0NzllYWMzNDM0ZTk5Y2YwNDk3NTEyZjU4OTk1YzEzOTZjMjg3MTk1MDFlZSIs''@;'; + put 'put ''bGFtYmRhOiI1MzYzYWQ0Y2MwNWMzMGUwYTUyNjFjMDI4ODEyNjQ1YTEyMmUyMmVhMjA4MTY2NzhkZjAyOTY3YzFiMjNiZDcyIixiYXNpczpbe2E6IjMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1IixiOiItZTQ0MzdlZDYwMTBlODgyODZmNTQ3ZmE5MGFiZmU0YzMifSx7YToiMTE0''@;'; + put 'put ''Y2E1MGY3YThlMmYzZjY1N2MxMTA4ZDlkNDRjZmQ4IixiOiIzMDg2ZDIyMWE3ZDQ2YmNkZTg2YzkwZTQ5Mjg0ZWIxNSJ9XSxnUmVkOiExLGc6WyI3OWJlNjY3ZWY5ZGNiYmFjNTVhMDYyOTVjZTg3MGIwNzAyOWJmY2RiMmRjZTI4ZDk1OWYyODE1YjE2ZjgxNzk4IiwiNDgzYWRhNzcyNmEzYzQ2''@;'; + put 'put ''NTVkYTRmYmZjMGUxMTA4YThmZDE3YjQ0OGE2ODU1NDE5OWM0N2QwOGZmYjEwZDRiOCIsaWVdfSl9LDY3NjI2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgxNzQzMyksQj1MKDUyNDM4KSxFPUwoNjE5NzApLE1lPUwoNTI5MTYpLFU9TCgzNzk1MCksUT1FLmFzc2VydCxaPUwo''@;'; + put 'put ''OTEyNTkpLGllPUwoNjU5NTcpO2Z1bmN0aW9uIGxlKFkpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGxlKSlyZXR1cm4gbmV3IGxlKFkpOyJzdHJpbmciPT10eXBlb2YgWSYmKFEoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE1lLFkpLCJVbmtub3duIGN1cnZlICIrWSksWT1N''@;'; + put 'put ''ZVtZXSksWSBpbnN0YW5jZW9mIE1lLlByZXNldEN1cnZlJiYoWT17Y3VydmU6WX0pLHRoaXMuY3VydmU9WS5jdXJ2ZS5jdXJ2ZSx0aGlzLm49dGhpcy5jdXJ2ZS5uLHRoaXMubmg9dGhpcy5uLnVzaHJuKDEpLHRoaXMuZz10aGlzLmN1cnZlLmcsdGhpcy5nPVkuY3VydmUuZyx0aGlzLmcucHJl''@;'; + put 'put ''Y29tcHV0ZShZLmN1cnZlLm4uYml0TGVuZ3RoKCkrMSksdGhpcy5oYXNoPVkuaGFzaHx8WS5jdXJ2ZS5oYXNofVhlLmV4cG9ydHM9bGUsbGUucHJvdG90eXBlLmtleVBhaXI9ZnVuY3Rpb24oVyl7cmV0dXJuIG5ldyBaKHRoaXMsVyl9LGxlLnByb3RvdHlwZS5rZXlGcm9tUHJpdmF0ZT1mdW5j''@;'; + put 'put ''dGlvbihXLE4pe3JldHVybiBaLmZyb21Qcml2YXRlKHRoaXMsVyxOKX0sbGUucHJvdG90eXBlLmtleUZyb21QdWJsaWM9ZnVuY3Rpb24oVyxOKXtyZXR1cm4gWi5mcm9tUHVibGljKHRoaXMsVyxOKX0sbGUucHJvdG90eXBlLmdlbktleVBhaXI9ZnVuY3Rpb24oVyl7V3x8KFc9e30pO2Zvcih2''@;'; + put 'put ''YXIgTj1uZXcgQih7aGFzaDp0aGlzLmhhc2gscGVyczpXLnBlcnMscGVyc0VuYzpXLnBlcnNFbmN8fCJ1dGY4IixlbnRyb3B5OlcuZW50cm9weXx8VSh0aGlzLmhhc2guaG1hY1N0cmVuZ3RoKSxlbnRyb3B5RW5jOlcuZW50cm9weSYmVy5lbnRyb3B5RW5jfHwidXRmOCIsbm9uY2U6dGhpcy5u''@;'; + put 'put ''LnRvQXJyYXkoKX0pLGVlPXRoaXMubi5ieXRlTGVuZ3RoKCkscT10aGlzLm4uc3ViKG5ldyBtZSgyKSk7Oyl7dmFyIEo9bmV3IG1lKE4uZ2VuZXJhdGUoZWUpKTtpZighKEouY21wKHEpPjApKXJldHVybiBKLmlhZGRuKDEpLHRoaXMua2V5RnJvbVByaXZhdGUoSil9fSxsZS5wcm90b3R5cGUu''@;'; + put 'put ''X3RydW5jYXRlVG9OPWZ1bmN0aW9uKFcsTil7dmFyIGVlPTgqVy5ieXRlTGVuZ3RoKCktdGhpcy5uLmJpdExlbmd0aCgpO3JldHVybiBlZT4wJiYoVz1XLnVzaHJuKGVlKSksIU4mJlcuY21wKHRoaXMubik+PTA/Vy5zdWIodGhpcy5uKTpXfSxsZS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihX''@;'; + put 'put ''LE4sZWUscSl7Im9iamVjdCI9PXR5cGVvZiBlZSYmKHE9ZWUsZWU9bnVsbCkscXx8KHE9e30pLE49dGhpcy5rZXlGcm9tUHJpdmF0ZShOLGVlKSxXPXRoaXMuX3RydW5jYXRlVG9OKG5ldyBtZShXLDE2KSk7Zm9yKHZhciBKPXRoaXMubi5ieXRlTGVuZ3RoKCksc2U9Ti5nZXRQcml2YXRlKCku''@;'; + put 'put ''dG9BcnJheSgiYmUiLEopLG9lPVcudG9BcnJheSgiYmUiLEopLGNlPW5ldyBCKHtoYXNoOnRoaXMuaGFzaCxlbnRyb3B5OnNlLG5vbmNlOm9lLHBlcnM6cS5wZXJzLHBlcnNFbmM6cS5wZXJzRW5jfHwidXRmOCJ9KSxkZT10aGlzLm4uc3ViKG5ldyBtZSgxKSksdmU9MDs7dmUrKyl7dmFyIEFl''@;'; + put 'put ''PXEuaz9xLmsodmUpOm5ldyBtZShjZS5nZW5lcmF0ZSh0aGlzLm4uYnl0ZUxlbmd0aCgpKSk7aWYoISgoQWU9dGhpcy5fdHJ1bmNhdGVUb04oQWUsITApKS5jbXBuKDEpPD0wfHxBZS5jbXAoZGUpPj0wKSl7dmFyIGtlPXRoaXMuZy5tdWwoQWUpO2lmKCFrZS5pc0luZmluaXR5KCkpe3ZhciBT''@;'; + put 'put ''ZT1rZS5nZXRYKCksSWU9U2UudW1vZCh0aGlzLm4pO2lmKDAhPT1JZS5jbXBuKDApKXt2YXIgVGU9QWUuaW52bSh0aGlzLm4pLm11bChJZS5tdWwoTi5nZXRQcml2YXRlKCkpLmlhZGQoVykpO2lmKDAhPT0oVGU9VGUudW1vZCh0aGlzLm4pKS5jbXBuKDApKXt2YXIgRWU9KGtlLmdldFkoKS5p''@;'; + put 'put ''c09kZCgpPzE6MCl8KDAhPT1TZS5jbXAoSWUpPzI6MCk7cmV0dXJuIHEuY2Fub25pY2FsJiZUZS5jbXAodGhpcy5uaCk+MCYmKFRlPXRoaXMubi5zdWIoVGUpLEVlXj0xKSxuZXcgaWUoe3I6SWUsczpUZSxyZWNvdmVyeVBhcmFtOkVlfSl9fX19fX0sbGUucHJvdG90eXBlLnZlcmlmeT1mdW5j''@;'; + put 'put ''dGlvbihXLE4sZWUscSl7Vz10aGlzLl90cnVuY2F0ZVRvTihuZXcgbWUoVywxNikpLGVlPXRoaXMua2V5RnJvbVB1YmxpYyhlZSxxKTt2YXIgSj0oTj1uZXcgaWUoTiwiaGV4IikpLnIsc2U9Ti5zO2lmKEouY21wbigxKTwwfHxKLmNtcCh0aGlzLm4pPj0wfHxzZS5jbXBuKDEpPDB8fHNlLmNt''@;'; + put 'put ''cCh0aGlzLm4pPj0wKXJldHVybiExO3ZhciB2ZSxvZT1zZS5pbnZtKHRoaXMubiksY2U9b2UubXVsKFcpLnVtb2QodGhpcy5uKSxkZT1vZS5tdWwoSikudW1vZCh0aGlzLm4pO3JldHVybiB0aGlzLmN1cnZlLl9tYXh3ZWxsVHJpY2s/ISh2ZT10aGlzLmcuam11bEFkZChjZSxlZS5nZXRQdWJs''@;'; + put 'put ''aWMoKSxkZSkpLmlzSW5maW5pdHkoKSYmdmUuZXFYVG9QKEopOiEodmU9dGhpcy5nLm11bEFkZChjZSxlZS5nZXRQdWJsaWMoKSxkZSkpLmlzSW5maW5pdHkoKSYmMD09PXZlLmdldFgoKS51bW9kKHRoaXMubikuY21wKEopfSxsZS5wcm90b3R5cGUucmVjb3ZlclB1YktleT1mdW5jdGlvbihZ''@;'; + put 'put ''LFcsTixlZSl7USgoMyZOKT09PU4sIlRoZSByZWNvdmVyeSBwYXJhbSBpcyBtb3JlIHRoYW4gdHdvIGJpdHMiKSxXPW5ldyBpZShXLGVlKTt2YXIgcT10aGlzLm4sSj1uZXcgbWUoWSksc2U9Vy5yLG9lPVcucyxjZT0xJk4sZGU9Tj4+MTtpZihzZS5jbXAodGhpcy5jdXJ2ZS5wLnVtb2QodGhp''@;'; + put 'put ''cy5jdXJ2ZS5uKSk+PTAmJmRlKXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGZpbmQgc2VuY29uZCBrZXkgY2FuZGluYXRlIik7c2U9dGhpcy5jdXJ2ZS5wb2ludEZyb21YKGRlP3NlLmFkZCh0aGlzLmN1cnZlLm4pOnNlLGNlKTt2YXIgdmU9Vy5yLmludm0ocSksQWU9cS5zdWIoSikubXVs''@;'; + put 'put ''KHZlKS51bW9kKHEpLGtlPW9lLm11bCh2ZSkudW1vZChxKTtyZXR1cm4gdGhpcy5nLm11bEFkZChBZSxzZSxrZSl9LGxlLnByb3RvdHlwZS5nZXRLZXlSZWNvdmVyeVBhcmFtPWZ1bmN0aW9uKFksVyxOLGVlKXtpZihudWxsIT09KFc9bmV3IGllKFcsZWUpKS5yZWNvdmVyeVBhcmFtKXJldHVy''@;'; + put 'put ''biBXLnJlY292ZXJ5UGFyYW07Zm9yKHZhciBxPTA7cTw0O3ErKyl7dmFyIEo7dHJ5e0o9dGhpcy5yZWNvdmVyUHViS2V5KFksVyxxKX1jYXRjaChzZSl7Y29udGludWV9aWYoSi5lcShOKSlyZXR1cm4gcX10aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHZhbGlkIHJlY292ZXJ5IGZh''@;'; + put 'put ''Y3RvciIpfX0sOTEyNTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE3NDMzKSxFPUwoNjE5NzApLmFzc2VydDtmdW5jdGlvbiBNZShVLFEpe3RoaXMuZWM9VSx0aGlzLnByaXY9bnVsbCx0aGlzLnB1Yj1udWxsLFEucHJpdiYmdGhpcy5faW1wb3J0UHJpdmF0ZShRLnByaXYs''@;'; + put 'put ''US5wcml2RW5jKSxRLnB1YiYmdGhpcy5faW1wb3J0UHVibGljKFEucHViLFEucHViRW5jKX1YZS5leHBvcnRzPU1lLE1lLmZyb21QdWJsaWM9ZnVuY3Rpb24oUSxaLGllKXtyZXR1cm4gWiBpbnN0YW5jZW9mIE1lP1o6bmV3IE1lKFEse3B1YjpaLHB1YkVuYzppZX0pfSxNZS5mcm9tUHJpdmF0''@;'; + put 'put ''ZT1mdW5jdGlvbihRLFosaWUpe3JldHVybiBaIGluc3RhbmNlb2YgTWU/WjpuZXcgTWUoUSx7cHJpdjpaLHByaXZFbmM6aWV9KX0sTWUucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKCl7dmFyIFE9dGhpcy5nZXRQdWJsaWMoKTtyZXR1cm4gUS5pc0luZmluaXR5KCk/e3Jlc3VsdDohMSxy''@;'; + put 'put ''ZWFzb246IkludmFsaWQgcHVibGljIGtleSJ9OlEudmFsaWRhdGUoKT9RLm11bCh0aGlzLmVjLmN1cnZlLm4pLmlzSW5maW5pdHkoKT97cmVzdWx0OiEwLHJlYXNvbjpudWxsfTp7cmVzdWx0OiExLHJlYXNvbjoiUHVibGljIGtleSAqIE4gIT0gTyJ9OntyZXN1bHQ6ITEscmVhc29uOiJQdWJs''@;'; + put 'put ''aWMga2V5IGlzIG5vdCBhIHBvaW50In19LE1lLnByb3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24oUSxaKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIFEmJihaPVEsUT1udWxsKSx0aGlzLnB1Ynx8KHRoaXMucHViPXRoaXMuZWMuZy5tdWwodGhpcy5wcml2KSksWj90aGlzLnB1Yi5lbmNvZGUo''@;'; + put 'put ''WixRKTp0aGlzLnB1Yn0sTWUucHJvdG90eXBlLmdldFByaXZhdGU9ZnVuY3Rpb24oUSl7cmV0dXJuImhleCI9PT1RP3RoaXMucHJpdi50b1N0cmluZygxNiwyKTp0aGlzLnByaXZ9LE1lLnByb3RvdHlwZS5faW1wb3J0UHJpdmF0ZT1mdW5jdGlvbihRLFope3RoaXMucHJpdj1uZXcgbWUoUSxa''@;'; + put 'put ''fHwxNiksdGhpcy5wcml2PXRoaXMucHJpdi51bW9kKHRoaXMuZWMuY3VydmUubil9LE1lLnByb3RvdHlwZS5faW1wb3J0UHVibGljPWZ1bmN0aW9uKFEsWil7aWYoUS54fHxRLnkpcmV0dXJuIm1vbnQiPT09dGhpcy5lYy5jdXJ2ZS50eXBlP0UoUS54LCJOZWVkIHggY29vcmRpbmF0ZSIpOigi''@;'; + put 'put ''c2hvcnQiPT09dGhpcy5lYy5jdXJ2ZS50eXBlfHwiZWR3YXJkcyI9PT10aGlzLmVjLmN1cnZlLnR5cGUpJiZFKFEueCYmUS55LCJOZWVkIGJvdGggeCBhbmQgeSBjb29yZGluYXRlIiksdm9pZCh0aGlzLnB1Yj10aGlzLmVjLmN1cnZlLnBvaW50KFEueCxRLnkpKTt0aGlzLnB1Yj10aGlzLmVj''@;'; + put 'put ''LmN1cnZlLmRlY29kZVBvaW50KFEsWil9LE1lLnByb3RvdHlwZS5kZXJpdmU9ZnVuY3Rpb24oUSl7cmV0dXJuIFEudmFsaWRhdGUoKXx8RShRLnZhbGlkYXRlKCksInB1YmxpYyBwb2ludCBub3QgdmFsaWRhdGVkIiksUS5tdWwodGhpcy5wcml2KS5nZXRYKCl9LE1lLnByb3RvdHlwZS5zaWdu''@;'; + put 'put ''PWZ1bmN0aW9uKFEsWixpZSl7cmV0dXJuIHRoaXMuZWMuc2lnbihRLHRoaXMsWixpZSl9LE1lLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oUSxaKXtyZXR1cm4gdGhpcy5lYy52ZXJpZnkoUSxaLHRoaXMpfSxNZS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiI8S2V5IHBy''@;'; + put 'put ''aXY6ICIrKHRoaXMucHJpdiYmdGhpcy5wcml2LnRvU3RyaW5nKDE2LDIpKSsiIHB1YjogIisodGhpcy5wdWImJnRoaXMucHViLmluc3BlY3QoKSkrIiA+In19LDY1OTU3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgxNzQzMyksQj1MKDYxOTcwKSxFPUIuYXNzZXJ0O2Z1bmN0''@;'; + put 'put ''aW9uIE1lKGxlLFkpe2lmKGxlIGluc3RhbmNlb2YgTWUpcmV0dXJuIGxlO3RoaXMuX2ltcG9ydERFUihsZSxZKXx8KEUobGUuciYmbGUucywiU2lnbmF0dXJlIHdpdGhvdXQgciBvciBzIiksdGhpcy5yPW5ldyBtZShsZS5yLDE2KSx0aGlzLnM9bmV3IG1lKGxlLnMsMTYpLHRoaXMucmVjb3Zl''@;'; + put 'put ''cnlQYXJhbT12b2lkIDA9PT1sZS5yZWNvdmVyeVBhcmFtP251bGw6bGUucmVjb3ZlcnlQYXJhbSl9ZnVuY3Rpb24gVSgpe3RoaXMucGxhY2U9MH1mdW5jdGlvbiBRKGxlLFkpe3ZhciBXPWxlW1kucGxhY2UrK107aWYoISgxMjgmVykpcmV0dXJuIFc7dmFyIE49MTUmVztpZigwPT09Tnx8Tj40''@;'; + put 'put ''KXJldHVybiExO2Zvcih2YXIgZWU9MCxxPTAsSj1ZLnBsYWNlO3E8TjtxKyssSisrKWVlPDw9OCxlZXw9bGVbSl0sZWU+Pj49MDtyZXR1cm4hKGVlPD0xMjcpJiYoWS5wbGFjZT1KLGVlKX1mdW5jdGlvbiBaKGxlKXtmb3IodmFyIFk9MCxXPWxlLmxlbmd0aC0xOyFsZVtZXSYmISgxMjgmbGVb''@;'; + put 'put ''WSsxXSkmJlk8VzspWSsrO3JldHVybiAwPT09WT9sZTpsZS5zbGljZShZKX1mdW5jdGlvbiBpZShsZSxZKXtpZihZPDEyOClsZS5wdXNoKFkpO2Vsc2V7dmFyIFc9MSsoTWF0aC5sb2coWSkvTWF0aC5MTjI+Pj4zKTtmb3IobGUucHVzaCgxMjh8Vyk7LS1XOylsZS5wdXNoKFk+Pj4oVzw8Mykm''@;'; + put 'put ''MjU1KTtsZS5wdXNoKFkpfX1YZS5leHBvcnRzPU1lLE1lLnByb3RvdHlwZS5faW1wb3J0REVSPWZ1bmN0aW9uKFksVyl7WT1CLnRvQXJyYXkoWSxXKTt2YXIgTj1uZXcgVTtpZig0OCE9PVlbTi5wbGFjZSsrXSlyZXR1cm4hMTt2YXIgZWU9UShZLE4pO2lmKCExPT09ZWV8fGVlK04ucGxhY2Uh''@;'; + put 'put ''PT1ZLmxlbmd0aHx8MiE9PVlbTi5wbGFjZSsrXSlyZXR1cm4hMTt2YXIgcT1RKFksTik7aWYoITE9PT1xKXJldHVybiExO3ZhciBKPVkuc2xpY2UoTi5wbGFjZSxxK04ucGxhY2UpO2lmKE4ucGxhY2UrPXEsMiE9PVlbTi5wbGFjZSsrXSlyZXR1cm4hMTt2YXIgc2U9UShZLE4pO2lmKCExPT09''@;'; + put 'put ''c2V8fFkubGVuZ3RoIT09c2UrTi5wbGFjZSlyZXR1cm4hMTt2YXIgb2U9WS5zbGljZShOLnBsYWNlLHNlK04ucGxhY2UpO2lmKDA9PT1KWzBdKXtpZighKDEyOCZKWzFdKSlyZXR1cm4hMTtKPUouc2xpY2UoMSl9aWYoMD09PW9lWzBdKXtpZighKDEyOCZvZVsxXSkpcmV0dXJuITE7b2U9b2Uu''@;'; + put 'put ''c2xpY2UoMSl9cmV0dXJuIHRoaXMucj1uZXcgbWUoSiksdGhpcy5zPW5ldyBtZShvZSksdGhpcy5yZWNvdmVyeVBhcmFtPW51bGwsITB9LE1lLnByb3RvdHlwZS50b0RFUj1mdW5jdGlvbihZKXt2YXIgVz10aGlzLnIudG9BcnJheSgpLE49dGhpcy5zLnRvQXJyYXkoKTtmb3IoMTI4JldbMF0m''@;'; + put 'put ''JihXPVswXS5jb25jYXQoVykpLDEyOCZOWzBdJiYoTj1bMF0uY29uY2F0KE4pKSxXPVooVyksTj1aKE4pOyEoTlswXXx8MTI4Jk5bMV0pOylOPU4uc2xpY2UoMSk7dmFyIGVlPVsyXTtpZShlZSxXLmxlbmd0aCksKGVlPWVlLmNvbmNhdChXKSkucHVzaCgyKSxpZShlZSxOLmxlbmd0aCk7dmFy''@;'; + put 'put ''IHE9ZWUuY29uY2F0KE4pLEo9WzQ4XTtyZXR1cm4gaWUoSixxLmxlbmd0aCksSj1KLmNvbmNhdChxKSxCLmVuY29kZShKLFkpfX0sODE4ODU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDM3MDg0KSxCPUwoNTI5MTYpLEU9TCg2MTk3MCksTWU9RS5hc3NlcnQsVT1FLnBhcnNl''@;'; + put 'put ''Qnl0ZXMsUT1MKDk3NTM1KSxaPUwoODgyNDEpO2Z1bmN0aW9uIGllKGxlKXtpZihNZSgiZWQyNTUxOSI9PT1sZSwib25seSB0ZXN0ZWQgd2l0aCBlZDI1NTE5IHNvIGZhciIpLCEodGhpcyBpbnN0YW5jZW9mIGllKSlyZXR1cm4gbmV3IGllKGxlKTt0aGlzLmN1cnZlPWxlPUJbbGVdLmN1cnZl''@;'; + put 'put ''LHRoaXMuZz1sZS5nLHRoaXMuZy5wcmVjb21wdXRlKGxlLm4uYml0TGVuZ3RoKCkrMSksdGhpcy5wb2ludENsYXNzPWxlLnBvaW50KCkuY29uc3RydWN0b3IsdGhpcy5lbmNvZGluZ0xlbmd0aD1NYXRoLmNlaWwobGUubi5iaXRMZW5ndGgoKS84KSx0aGlzLmhhc2g9bWUuc2hhNTEyfVhlLmV4''@;'; + put 'put ''cG9ydHM9aWUsaWUucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oWSxXKXtZPVUoWSk7dmFyIE49dGhpcy5rZXlGcm9tU2VjcmV0KFcpLGVlPXRoaXMuaGFzaEludChOLm1lc3NhZ2VQcmVmaXgoKSxZKSxxPXRoaXMuZy5tdWwoZWUpLEo9dGhpcy5lbmNvZGVQb2ludChxKSxzZT10aGlzLmhhc2hJ''@;'; + put 'put ''bnQoSixOLnB1YkJ5dGVzKCksWSkubXVsKE4ucHJpdigpKSxvZT1lZS5hZGQoc2UpLnVtb2QodGhpcy5jdXJ2ZS5uKTtyZXR1cm4gdGhpcy5tYWtlU2lnbmF0dXJlKHtSOnEsUzpvZSxSZW5jb2RlZDpKfSl9LGllLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oWSxXLE4pe1k9VShZKSxXPXRo''@;'; + put 'put ''aXMubWFrZVNpZ25hdHVyZShXKTt2YXIgZWU9dGhpcy5rZXlGcm9tUHVibGljKE4pLHE9dGhpcy5oYXNoSW50KFcuUmVuY29kZWQoKSxlZS5wdWJCeXRlcygpLFkpLEo9dGhpcy5nLm11bChXLlMoKSk7cmV0dXJuIFcuUigpLmFkZChlZS5wdWIoKS5tdWwocSkpLmVxKEopfSxpZS5wcm90b3R5''@;'; + put 'put ''cGUuaGFzaEludD1mdW5jdGlvbigpe2Zvcih2YXIgWT10aGlzLmhhc2goKSxXPTA7Vzxhcmd1bWVudHMubGVuZ3RoO1crKylZLnVwZGF0ZShhcmd1bWVudHNbV10pO3JldHVybiBFLmludEZyb21MRShZLmRpZ2VzdCgpKS51bW9kKHRoaXMuY3VydmUubil9LGllLnByb3RvdHlwZS5rZXlGcm9t''@;'; + put 'put ''UHVibGljPWZ1bmN0aW9uKFkpe3JldHVybiBRLmZyb21QdWJsaWModGhpcyxZKX0saWUucHJvdG90eXBlLmtleUZyb21TZWNyZXQ9ZnVuY3Rpb24oWSl7cmV0dXJuIFEuZnJvbVNlY3JldCh0aGlzLFkpfSxpZS5wcm90b3R5cGUubWFrZVNpZ25hdHVyZT1mdW5jdGlvbihZKXtyZXR1cm4gWSBp''@;'; + put 'put ''bnN0YW5jZW9mIFo/WTpuZXcgWih0aGlzLFkpfSxpZS5wcm90b3R5cGUuZW5jb2RlUG9pbnQ9ZnVuY3Rpb24oWSl7dmFyIFc9WS5nZXRZKCkudG9BcnJheSgibGUiLHRoaXMuZW5jb2RpbmdMZW5ndGgpO3JldHVybiBXW3RoaXMuZW5jb2RpbmdMZW5ndGgtMV18PVkuZ2V0WCgpLmlzT2RkKCk/''@;'; + put 'put ''MTI4OjAsV30saWUucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKFkpe3ZhciBXPShZPUUucGFyc2VCeXRlcyhZKSkubGVuZ3RoLTEsTj1ZLnNsaWNlKDAsVykuY29uY2F0KC0xMjkmWVtXXSksZWU9MCE9KDEyOCZZW1ddKSxxPUUuaW50RnJvbUxFKE4pO3JldHVybiB0aGlzLmN1cnZl''@;'; + put 'put ''LnBvaW50RnJvbVkocSxlZSl9LGllLnByb3RvdHlwZS5lbmNvZGVJbnQ9ZnVuY3Rpb24oWSl7cmV0dXJuIFkudG9BcnJheSgibGUiLHRoaXMuZW5jb2RpbmdMZW5ndGgpfSxpZS5wcm90b3R5cGUuZGVjb2RlSW50PWZ1bmN0aW9uKFkpe3JldHVybiBFLmludEZyb21MRShZKX0saWUucHJvdG90''@;'; + put 'put ''eXBlLmlzUG9pbnQ9ZnVuY3Rpb24oWSl7cmV0dXJuIFkgaW5zdGFuY2VvZiB0aGlzLnBvaW50Q2xhc3N9fSw5NzUzNTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNjE5NzApLEI9bWUuYXNzZXJ0LEU9bWUucGFyc2VCeXRlcyxNZT1tZS5jYWNoZWRQcm9wZXJ0eTtmdW5jdGlv''@;'; + put 'put ''biBVKFEsWil7dGhpcy5lZGRzYT1RLHRoaXMuX3NlY3JldD1FKFouc2VjcmV0KSxRLmlzUG9pbnQoWi5wdWIpP3RoaXMuX3B1Yj1aLnB1Yjp0aGlzLl9wdWJCeXRlcz1FKFoucHViKX1VLmZyb21QdWJsaWM9ZnVuY3Rpb24oWixpZSl7cmV0dXJuIGllIGluc3RhbmNlb2YgVT9pZTpuZXcgVSha''@;'; + put 'put ''LHtwdWI6aWV9KX0sVS5mcm9tU2VjcmV0PWZ1bmN0aW9uKFosaWUpe3JldHVybiBpZSBpbnN0YW5jZW9mIFU/aWU6bmV3IFUoWix7c2VjcmV0OmllfSl9LFUucHJvdG90eXBlLnNlY3JldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZWNyZXR9LE1lKFUsInB1YkJ5dGVzIixmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiB0aGlzLmVkZHNhLmVuY29kZVBvaW50KHRoaXMucHViKCkpfSksTWUoVSwicHViIixmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wdWJCeXRlcz90aGlzLmVkZHNhLmRlY29kZVBvaW50KHRoaXMuX3B1YkJ5dGVzKTp0aGlzLmVkZHNhLmcubXVsKHRoaXMucHJpdigpKX0pLE1lKFUs''@;'; + put 'put ''InByaXZCeXRlcyIsZnVuY3Rpb24oKXt2YXIgWj10aGlzLmVkZHNhLGllPXRoaXMuaGFzaCgpLGxlPVouZW5jb2RpbmdMZW5ndGgtMSxZPWllLnNsaWNlKDAsWi5lbmNvZGluZ0xlbmd0aCk7cmV0dXJuIFlbMF0mPTI0OCxZW2xlXSY9MTI3LFlbbGVdfD02NCxZfSksTWUoVSwicHJpdiIsZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVJbnQodGhpcy5wcml2Qnl0ZXMoKSl9KSxNZShVLCJoYXNoIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmhhc2goKS51cGRhdGUodGhpcy5zZWNyZXQoKSkuZGlnZXN0KCl9KSxNZShVLCJtZXNzYWdlUHJlZml4IixmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiB0aGlzLmhhc2goKS5zbGljZSh0aGlzLmVkZHNhLmVuY29kaW5nTGVuZ3RoKX0pLFUucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oWil7cmV0dXJuIEIodGhpcy5fc2VjcmV0LCJLZXlQYWlyIGNhbiBvbmx5IHZlcmlmeSIpLHRoaXMuZWRkc2Euc2lnbihaLHRoaXMpfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oWixpZSl7cmV0dXJuIHRoaXMuZWRkc2EudmVyaWZ5KFosaWUsdGhpcyl9LFUucHJvdG90eXBlLmdldFNlY3JldD1mdW5jdGlvbihaKXtyZXR1cm4gQih0aGlzLl9zZWNyZXQsIktleVBhaXIgaXMgcHVibGljIG9ubHkiKSxtZS5lbmNvZGUodGhpcy5z''@;'; + put 'put ''ZWNyZXQoKSxaKX0sVS5wcm90b3R5cGUuZ2V0UHVibGljPWZ1bmN0aW9uKFope3JldHVybiBtZS5lbmNvZGUodGhpcy5wdWJCeXRlcygpLFopfSxYZS5leHBvcnRzPVV9LDg4MjQxOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgxNzQzMyksQj1MKDYxOTcwKSxFPUIuYXNzZXJ0''@;'; + put 'put ''LE1lPUIuY2FjaGVkUHJvcGVydHksVT1CLnBhcnNlQnl0ZXM7ZnVuY3Rpb24gUShaLGllKXt0aGlzLmVkZHNhPVosIm9iamVjdCIhPXR5cGVvZiBpZSYmKGllPVUoaWUpKSxBcnJheS5pc0FycmF5KGllKSYmKGllPXtSOmllLnNsaWNlKDAsWi5lbmNvZGluZ0xlbmd0aCksUzppZS5zbGljZSha''@;'; + put 'put ''LmVuY29kaW5nTGVuZ3RoKX0pLEUoaWUuUiYmaWUuUywiU2lnbmF0dXJlIHdpdGhvdXQgUiBvciBTIiksWi5pc1BvaW50KGllLlIpJiYodGhpcy5fUj1pZS5SKSxpZS5TIGluc3RhbmNlb2YgbWUmJih0aGlzLl9TPWllLlMpLHRoaXMuX1JlbmNvZGVkPUFycmF5LmlzQXJyYXkoaWUuUik/aWUu''@;'; + put 'put ''UjppZS5SZW5jb2RlZCx0aGlzLl9TZW5jb2RlZD1BcnJheS5pc0FycmF5KGllLlMpP2llLlM6aWUuU2VuY29kZWR9TWUoUSwiUyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVJbnQodGhpcy5TZW5jb2RlZCgpKX0pLE1lKFEsIlIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''ZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5SZW5jb2RlZCgpKX0pLE1lKFEsIlJlbmNvZGVkIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZVBvaW50KHRoaXMuUigpKX0pLE1lKFEsIlNlbmNvZGVkIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmVuY29kZUludCh0aGlz''@;'; + put 'put ''LlMoKSl9KSxRLnByb3RvdHlwZS50b0J5dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUmVuY29kZWQoKS5jb25jYXQodGhpcy5TZW5jb2RlZCgpKX0sUS5wcm90b3R5cGUudG9IZXg9ZnVuY3Rpb24oKXtyZXR1cm4gQi5lbmNvZGUodGhpcy50b0J5dGVzKCksImhleCIpLnRvVXBwZXJDYXNl''@;'; + put 'put ''KCl9LFhlLmV4cG9ydHM9UX0sMjUxNTA6WGU9PntYZS5leHBvcnRzPXtkb3VibGVzOntzdGVwOjQscG9pbnRzOltbImU2MGZjZTkzYjU5ZTllYzUzMDExYWFiYzIxYzIzZTk3YjJhMzEzNjliODdhNWFlOWM0NGVlODllMmE2ZGVjMGEiLCJmN2UzNTA3Mzk5ZTU5NTkyOWRiOTlmMzRmNTc5Mzcx''@;'; + put 'put ''MDEyOTY4OTFlNDRkMjNmMGJlMWYzMmNjZTY5NjE2ODIxIl0sWyI4MjgyMjYzMjEyYzYwOWQ5ZWEyYTZlM2UxNzJkZTIzOGQ4YzM5Y2FiZDVhYzFjYTEwNjQ2ZTIzZmQ1ZjUxNTA4IiwiMTFmOGE4MDk4NTU3ZGZlNDVlODI1NmU4MzBiNjBhY2U2MmQ2MTNhYzJmN2IxN2JlZDMxYjZlYWZmNmUy''@;'; + put 'put ''NmNhZiJdLFsiMTc1ZTE1OWY3MjhiODY1YTcyZjk5Y2M2YzZmYzg0NmRlMGI5MzgzM2ZkMjIyMmVkNzNmY2U1YjU1MWU1YjczOSIsImQzNTA2ZTBkOWUzYzc5ZWJhNGVmOTdhNTFmZjcxZjVlYWNiNTk1NWFkZDI0MzQ1YzZlZmE2ZmZlZTlmZWQ2OTUiXSxbIjM2M2Q5MGQ0NDdiMDBjOWM5OWNl''@;'; + put 'put ''YWMwNWI2MjYyZWUwNTM0NDFjN2U1NTU1MmZmZTUyNmJhZDhmODNmZjQ2NDAiLCI0ZTI3M2FkZmM3MzIyMjE5NTNiNDQ1Mzk3ZjMzNjMxNDViOWE4OTAwODE5OWVjYjYyMDAzYzdmM2JlZTlkZTkiXSxbIjhiNGI1ZjE2NWRmM2MyYmU4YzYyNDRiNWI3NDU2Mzg4NDNlNGE3ODFhMTViY2QxYjY5''@;'; + put 'put ''Zjc5YTU1ZGZmZGY4MGMiLCI0YWFkMGE2ZjY4ZDMwOGI0YjNmYmQ3ODEzYWIwZGEwNGY5ZTMzNjU0NjE2MmVlNTZiM2VmZjBjNjVmZDRmZDM2Il0sWyI3MjNjYmFhNmU1ZGI5OTZkNmJmNzcxYzAwYmQ1NDhjN2I3MDBkYmZmYTZjMGU3N2JjYjYxMTU5MjUyMzJmY2RhIiwiOTZlODY3YjU1OTVj''@;'; + put 'put ''YzQ5OGE5MjExMzc0ODg4MjRkNmUyNjYwYTA2NTM3Nzk0OTQ4MDFkYzA2OWQ5ZWIzOWY1ZiJdLFsiZWViZmE0ZDQ5M2JlYmY5OGJhNWZlZWM4MTJjMmQzYjUwOTQ3OTYxMjM3YTkxOTgzOWE1MzNlY2EwZTdkZDdmYSIsIjVkOWE4Y2EzOTcwZWYwZjI2OWVlN2VkYWYxNzgwODlkOWFlNGNkYzNh''@;'; + put 'put ''NzExZjcxMmRkZmQ0ZmRhZTFkZTg5OTkiXSxbIjEwMGY0NGRhNjk2ZTcxNjcyNzkxZDBhMDliN2JkZTQ1OWYxMjE1YTI5YjNjMDNiZmVmZDc4MzViMzlhNDhkYjAiLCJjZGQ5ZTEzMTkyYTAwYjc3MmVjOGYzMzAwYzA5MDY2NmI3ZmY0YTE4ZmY1MTk1YWMwZmJkNWNkNjJiYzY1YTA5Il0sWyJl''@;'; + put 'put ''MTAzMWJlMjYyYzdlZDFiMWRjOTIyN2E0YTA0YzAxN2E3N2Y4ZDQ0NjRmM2IzODUyYzhhY2RlNmU1MzRmZDJkIiwiOWQ3MDYxOTI4OTQwNDA1ZTZiYjZhNDE3NjU5NzUzNWFmMjkyZGQ0MTllMWNlZDc5YTQ0ZjE4ZjI5NDU2YTAwZCJdLFsiZmVlYTZjYWU0NmQ1NWI1MzBhYzI4MzlmMTQzYmQ3''@;'; + put 'put ''ZWM1Y2Y4YjI2NmE0MWQ2YWY1MmQ1ZTY4OGQ5MDk0Njk2ZCIsImU1N2M2YjZjOTdkY2UxYmFiMDZlNGUxMmJmM2VjZDVjOTgxYzg5NTdjYzQxNDQyZDMxNTVkZWJmMTgwOTAwODgiXSxbImRhNjdhOTFkOTEwNDljZGNiMzY3YmU0YmU2ZmZjYTNjZmVlZDY1N2Q4MDg1ODNkZTMzZmE5NzhiYzFl''@;'; + put 'put ''YzZjYjEiLCI5YmFjYWEzNTQ4MTY0MmJjNDFmNDYzZjdlYzk3ODBlNWRlYzdhZGM1MDhmNzQwYTE3ZTllYThlMjdhNjhiZTFkIl0sWyI1MzkwNGZhYTBiMzM0Y2RkYTZlMDAwOTM1ZWYyMjE1MWVjMDhkMGY3YmIxMTA2OWY1NzU0NWNjYzFhMzdiN2MwIiwiNWJjMDg3ZDBiYzgwMTA2ZDg4Yzll''@;'; + put 'put ''Y2NhYzIwZDNjMWMxMzk5OTk4MWUxNDQzNDY5OWRjYjA5NmIwMjI3NzFjOCJdLFsiOGU3YmNkMGJkMzU5ODNhNzcxOWNjYTc3NjRjYTkwNjc3OWI1M2EwNDNhOWI4YmNhZWZmOTU5ZjQzYWQ4NjA0NyIsIjEwYjc3NzBiMmEzZGE0YjM5NDAzMTA0MjBjYTk1MTQ1NzllODhlMmU0N2ZkNjhiM2Vh''@;'; + put 'put ''MTAwNDdlODQ2MDM3MmEiXSxbIjM4NWVlZDM0YzFjZGZmMjFlNmQwODE4Njg5YjgxYmRlNzFhN2Y0ZjE4Mzk3ZTY2OTBhODQxZTE1OTljNDM4NjIiLCIyODNiZWJjM2U4ZWEyM2Y1NjcwMWRlMTllOWViZjQ1NzZiMzA0ZWVjMjA4NmRjOGNjMDQ1OGZlNTU0MmU1NDUzIl0sWyI2ZjlkOWI4MDNl''@;'; + put 'put ''Y2YxOTE2MzdjNzNhNDQxM2RmYTE4MGZkZGY4NGE1OTQ3ZmJjOWM2MDZlZDg2YzNmYWMzYTciLCI3YzgwYzY4ZTYwMzA1OWJhNjliOGUyYTMwZTQ1YzRkNDdlYTRkZDJmNWMyODEwMDJkODY4OTA2MDNhODQyMTYwIl0sWyIzMzIyZDQwMTI0M2M0ZTI1ODJhMjE0N2MxMDRkNmVjYmY3NzRkMTYz''@;'; + put 'put ''ZGIwZjVlNTMxM2I3ZTBlNzQyZDBlNmJkIiwiNTZlNzA3OTdlOTY2NGVmNWJmYjAxOWJjNGRkYWY5YjcyODA1ZjYzZWEyODczYWY2MjRmM2EyZTk2YzI4YjJhMCJdLFsiODU2NzJjN2QyZGUwYjdkYTJiZDE3NzBkODk2NjU4Njg3NDFiM2Y5YWY3NjQzMzk3NzIxZDc0ZDI4MTM0YWI4MyIsIjdj''@;'; + put 'put ''NDgxYjliNWI0M2IyZWI2Mzc0MDQ5YmZhNjJjMmU1ZTc3ZjE3ZmNjNTI5OGY0NGM4ZTMwOTRmNzkwMzEzYTYiXSxbIjk0OGJmODA5YjE5ODhhNDZiMDZjOWYxOTE5NDEzYjEwZjkyMjZjNjBmNjY4ODMyZmZkOTU5YWY2MGM4MmEwYSIsIjUzYTU2Mjg1NmRjYjY2NDZkYzZiNzRjNWQxYzM0MThj''@;'; + put 'put ''NmQ0ZGZmMDhjOTdjZDJiZWQ0Y2I3Zjg4ZDhjOGU1ODkiXSxbIjYyNjBjZTdmNDYxODAxYzM0ZjA2N2NlMGYwMjg3M2E4ZjFiMGU0NGRmYzY5NzUyYWNjZWNkODE5ZjM4ZmQ4ZTgiLCJiYzJkYTgyYjZmYTViNTcxYTdmMDkwNDk3NzZhMWVmN2VjZDI5MjIzODA1MWMxOThjMWE4NGU5NWIyYjRh''@;'; + put 'put ''ZTE3Il0sWyJlNTAzN2RlMGFmYzFkOGQ0M2Q4MzQ4NDE0YmJmNDEwMzA0M2VjOGY1NzViZmRjNDMyOTUzY2M4ZDIwMzdmYTJkIiwiNDU3MTUzNGJhYTk0ZDNiNWY5Zjk4ZDA5ZmI5OTBiZGRiZDVmNWIwM2VjNDgxZjEwZTBlNWRjODQxZDc1NWJkYSJdLFsiZTA2MzcyYjBmNGEyMDdhZGY1ZWE5''@;'; + put 'put ''MDVlOGYxNzcxYjRlN2U4ZGJkMWM2YTZjNWI3MjU4NjZhMGFlNGZjZTcyNSIsIjdhOTA4OTc0YmNlMThjZmUxMmEyN2JiMmFkNWE0ODhjZDc0ODRhNzc4NzEwNDg3MGIyNzAzNGY5NGVlZTMxZGQiXSxbIjIxM2M3YTcxNWNkNWQ0NTM1OGQwYmJmOWRjMGNlMDIyMDRiMTBiZGRlMmEzZjU4NTQw''@;'; + put 'put ''YWQ2OTA4ZDA1NTk3NTQiLCI0YjZkYWQwYjVhZTQ2MjUwNzAxM2FkMDYyNDViYTE5MGJiNDg1MGY1ZjM2YTdlZWRkZmYyYzI3NTM0YjQ1OGYyIl0sWyI0ZTdjMjcyYTdhZjRiMzRlOGRiYjkzNTJhNTQxOWE4N2UyODM4YzcwYWRjNjJjZGRmMGNjM2EzYjA4ZmJkNTNjIiwiMTc3NDljNzY2Yzlk''@;'; + put 'put ''MGIxOGUxNmZkMDlmNmRlZjY4MWI1MzBiOTYxNGJmZjdkZDMzZTBiMzk0MTgxN2RjYWFlNiJdLFsiZmVhNzRlM2RiZTc3OGIxYjEwZjIzOGFkNjE2ODZhYTVjNzZlM2RiMmJlNDMwNTc2MzI0MjdlMjg0MGZiMjdiNiIsIjZlMDU2OGRiOWIwYjEzMjk3Y2Y2NzRkZWNjYjZhZjkzMTI2YjU5NmI5''@;'; + put 'put ''NzNmN2I3NzcwMWQzZGI3ZjIzY2I5NmYiXSxbIjc2ZTY0MTEzZjY3N2NmMGUxMGEyNTcwZDU5OTk2OGQzMTU0NGUxNzliNzYwNDMyOTUyYzAyYTQ0MTdiZGRlMzkiLCJjOTBkZGY4ZGVlNGU5NWNmNTc3MDY2ZDcwNjgxZjBkMzVlMmEzM2QyYjU2ZDIwMzJiNGIxNzUyZDE5MDFhYzAxIl0sWyJj''@;'; + put 'put ''NzM4YzU2YjAzYjJhYmUxZTgyODFiYWE3NDNmOGY5YThmN2NjNjQzZGYyNmNiZWUzYWIxNTAyNDJiY2JiODkxIiwiODkzZmI1Nzg5NTFhZDI1MzdmNzE4ZjJlYWNiZmJiYmI4MjMxNGVlZjc4ODBjZmU5MTdlNzM1ZDk2OTlhODRjMyJdLFsiZDg5NTYyNjU0OGI2NWI4MWUyNjRjNzYzN2M5NzI4''@;'; + put 'put ''NzdkMWQ3MmU1ZjNhOTI1MDE0MzcyZTlmNjU4OGY2YzE0YiIsImZlYmZhYTM4ZjJiYzdlYWU3MjhlYzYwODE4YzM0MGViMDM0MjhkNjMyYmIwNjdlMTc5MzYzZWQ3NWQ3ZDk5MWYiXSxbImI4ZGE5NDAzMmE5NTc1MThlYjBmNjQzMzU3MWU4NzYxY2VmZmM3MzY5M2U4NGVkZDQ5MTUwYTU2NGY2''@;'; + put 'put ''NzZlMDMiLCIyODA0ZGZhNDQ4MDVhMWU0ZDdjOTljYzk3NjI4MDhiMDkyY2M1ODRkOTVmZjNiNTExNDg4ZTRlNzRlZmRmNmU3Il0sWyJlODBmZWExNDQ0MWZiMzNhN2Q4YWRhYjk0NzVkN2ZhYjIwMTllZmZiNTE1NmE3OTJmMWExMTc3OGUzYzBkZjVkIiwiZWVkMWRlN2Y2MzhlMDA3NzFlODk3''@;'; + put 'put ''NjhjYTNjYTk0NDcyZDE1NWU4MGFmMzIyZWE5ZmNiNDI5MWI2YWM5ZWM3OCJdLFsiYTMwMTY5N2JkZmNkNzA0MzEzYmE0OGU1MWQ1Njc1NDNmMmExODIwMzFlZmQ2OTE1ZGRjMDdiYmNjNGUxNjA3MCIsIjczNzBmOTFjZmI2N2U0ZjUwODE4MDlmYTI1ZDQwZjliMTczNWRiZjdjMGExMWExMzBj''@;'; + put 'put ''MGQxYTA0MWUxNzdlYTEiXSxbIjkwYWQ4NWIzODlkNmI5MzY0NjNmOWQwNTEyNjc4ZGUyMDhjYzMzMGIxMTMwN2ZmZmFiN2FjNjNlM2ZiMDRlZDQiLCJlNTA3YTM2MjBhMzgyNjFhZmZkY2JkOTQyNzIyMmI4MzlhZWZhYmUxNTgyODk0ZDk5MWQ0ZDQ4Y2I2ZWYxNTAiXSxbIjhmNjhiOWQyZjYz''@;'; + put 'put ''YjVmMzM5MjM5YzFhZDk4MWYxNjJlZTg4YzU2Nzg3MjNlYTMzNTFiN2I0NDRjOWVjNGMwZGEiLCI2NjJhOWYyZGJhMDYzOTg2ZGUxZDkwYzJiNmJlMjE1ZGJiZWEyY2ZlOTU1MTBiZmRmMjNjYmY3OTUwMWZmZjgyIl0sWyJlNGYzZmIwMTc2YWY4NWQ2NWZmOTlmZjkxOThjMzYwOTFmNDhlODY1''@;'; + put 'put ''MDM2ODFlM2U2Njg2ZmQ1MDUzMjMxZTExIiwiMWU2MzYzM2FkMGVmNGYxYzE2NjFhNmQwZWEwMmI3Mjg2Y2M3ZTc0ZWM5NTFkMWM5ODIyYzM4NTc2ZmViNzNiYyJdLFsiOGMwMGZhOWIxOGViZjMzMWViOTYxNTM3YTQ1YTQyNjZjNzAzNGYyZjBkNGUxZDA3MTZmYjZlYWUyMGVhZTI5ZSIsImVm''@;'; + put 'put ''YTQ3MjY3ZmVhNTIxYTFhOWRjMzQzYTM3MzZjOTc0YzJmYWRhZmE4MWUzNmM1NGU3ZDJhNGM2NjcwMjQxNGIiXSxbImU3YTI2Y2U2OWRkNDgyOWYzZTEwY2VjMGE5ZTk4ZWQzMTQzZDA4NGYzMDhiOTJjMDk5N2ZkZGZjNjBjYjNlNDEiLCIyYTc1OGUzMDBmYTc5ODRiNDcxYjAwNmExYWFmYmIx''@;'; + put 'put ''OGQwYTZiMmMwNDIwZTgzZTIwZThhOTQyMWNmMmNmZDUxIl0sWyJiNjQ1OWUwZWUzNjYyZWM4ZDIzNTQwYzIyM2JjYmRjNTcxY2JjYjk2N2Q3OTQyNGYzY2YyOWViM2RlNmI4MGVmIiwiNjdjODc2ZDA2ZjNlMDZkZTFkYWRmMTZlNTY2MWRiM2M0YjNhZTZkNDhlMzViMmZmMzBiZjBiNjFhNzFi''@;'; + put 'put ''YTQ1Il0sWyJkNjhhODBjODI4MGJiODQwNzkzMjM0YWExMThmMDYyMzFkNmYxZmM2N2U3M2M1YTVkZWRhMGY1YjQ5Njk0M2U4IiwiZGI4YmE5ZmZmNGI1ODZkMDBjNGIxZjkxNzdiMGUyOGI1YjBlN2I4Zjc4NDUyOTVhMjk0Yzg0MjY2YjEzMzEyMCJdLFsiMzI0YWVkN2RmNjVjODA0MjUyZGMw''@;'; + put 'put ''MjcwOTA3YTMwYjA5NjEyYWViOTczNDQ5Y2VhNDA5NTk4MGZjMjhkM2Q1ZCIsIjY0OGEzNjU3NzRiNjFmMmZmMTMwYzBjMzVhZWMxZjRmMTkyMTNiMGM3ZTMzMjg0Mzk2NzIyNGFmOTZhYjdjODQiXSxbIjRkZjljMTQ5MTljZGU2MWY2ZDUxZGZkYmU1ZmVlNWRjZWVjNDE0M2JhOGQxY2E4ODhl''@;'; + put 'put ''OGJkMzczZmQwNTRjOTYiLCIzNWVjNTEwOTJkODcyODA1MDk3NGMyM2ExZDg1ZDRiNWQ1MDZjZGMyODg0OTAxOTJlYmFjMDZjYWQxMGQ1ZCJdLFsiOWMzOTE5YTg0YTQ3NDg3MGZhZWQ4YTljMWNjNjYwMjE1MjM0ODkwNTRkN2YwMzA4Y2JmYzk5YzhhYzFmOThjZCIsImRkYjg0ZjBmNGE0ZGRk''@;'; + put 'put ''NTc1ODRmMDQ0YmYyNjBlNjQxOTA1MzI2Zjc2YzY0YzhlNmJlN2U1ZTAzZDRmYzU5OWQiXSxbIjYwNTcxNzBiMWRkMTJmZGY4ZGUwNWYyODFkOGUwNmJiOTFlMTQ5M2E4YjkxZDRjYzVhMjEzODIxMjBhOTU5ZTUiLCI5YTFhZjBiMjZhNmE0ODA3YWRkOWEyZGFmNzFkZjI2MjQ2NTE1MmJjM2Vl''@;'; + put 'put ''MjRjNjVlODk5YmU5MzIzODVhMmE4Il0sWyJhNTc2ZGY4ZTIzYTA4NDExNDIxNDM5YTQ1MThkYTMxODgwY2VmMGZiYTdkNGRmMTJiMWE2OTczZWVjYjk0MjY2IiwiNDBhNmJmMjBlNzY2NDBiMmM5MmI5N2FmZTU4Y2Q4MmM0MzJlMTBhN2Y1MTRkOWYzZWU4YmUxMWFlMWIyOGVjOCJdLFsiNzc3''@;'; + put 'put ''OGE3OGMyOGRlYzNlMzBhMDVmZTk2MjlkZThjMzhiYjMwZDFmNWNmOWEzYTIwOGY3NjM4ODliZTU4YWQ3MSIsIjM0NjI2ZDlhYjVhNWIyMmZmNzA5OGUxMmYyZmY1ODAwODdiMzg0MTFmZjI0YWM1NjNiNTEzZmMxZmQ5ZjQzYWMiXSxbIjkyODk1NWVlNjM3YTg0NDYzNzI5ZmQzMGU3YWZkMmVk''@;'; + put 'put ''NWY5NjI3NGU1YWQ3ZTVjYjA5ZWRhOWMwNmQ5MDNhYyIsImMyNTYyMTAwM2QzZjQyYTgyN2I3OGExMzA5M2E5NWVlYWMzZDI2ZWZhOGE4ZDgzZmM1MTgwZTkzNWJjZDA5MWYiXSxbIjg1ZDBmZWYzZWM2ZGIxMDkzOTkwNjRmM2EwZTNiMjg1NTY0NWI0YTkwN2FkMzU0NTI3YWFlNzUxNjNkODI3''@;'; + put 'put ''NTEiLCIxZjAzNjQ4NDEzYTM4YzBiZTI5ZDQ5NmU1ODJjZjU2NjNlODc1MWU5Njg3NzMzMTU4MmMyMzdhMjRlYjFmOTYyIl0sWyJmZjJiMGRjZTk3ZWVjZTk3YzFjOWI2MDQxNzk4Yjg1ZGZkZmI2ZDg4ODJkYTIwMzA4ZjU0MDQ4MjQ1MjYwODdlIiwiNDkzZDEzZmVmNTI0YmExODhhZjRjNGRj''@;'; + put 'put ''NTRkMDc5MzZjN2I3ZWQ2ZmI5MGUyY2ViMmM5NTFlMDFmMGMyOTkwNyJdLFsiODI3ZmJiZTRiMWU4ODBlYTllZDJiMmU2MzAxYjIxMmI1N2YxZWUxNDhjZDZkZDI4NzgwZTVlMmNmODU2ZTI0MSIsImM2MGY5YzkyM2M3MjdiMGI3MWJlZjJjNjdkMWQxMjY4N2ZmN2E2MzE4NjkwMzE2NmQ2MDVi''@;'; + put 'put ''NjhiYWVjMjkzZWMiXSxbImVhYTY0OWYyMWY1MWJkYmFlN2JlNGFlMzRjZTZlNTIxN2E1OGZkY2U3ZjQ3ZjlhYTdmM2I1OGZhMjEyMGUyYjMiLCJiZTMyNzllZDViYmJiMDNhYzY5YTgwZjg5ODc5YWE1YTAxYTZiOTY1ZjEzZjdlNTlkNDdhNTMwNWJhNWFkOTNkIl0sWyJlNGE0MmQ0M2M1Y2Yx''@;'; + put 'put ''NjlkOTM5MWRmNmRlY2Y0MmVlNTQxYjZkOGYwYzlhMTM3NDAxZTIzNjMyZGRhMzRkMjRmIiwiNGQ5ZjkyZTcxNmQxYzczNTI2ZmM5OWNjZmI4YWQzNGNlODg2ZWVkZmE4ZDhlNGYxM2E3ZjcxMzFkZWJhOTQxNCJdLFsiMWVjODBmZWYzNjBjYmRkOTU0MTYwZmFkYWIzNTJiNmI5MmI1MzU3NmE4''@;'; + put 'put ''OGZlYTQ5NDcxNzNiOWQ0MzAwYmYxOSIsImFlZWZlOTM3NTZiNTM0MGQyZjNhNDk1OGE3YWJiZjVlMDE0NmU3N2Y2Mjk1YTA3YjY3MWNkYzFjYzEwN2NlZmQiXSxbIjE0NmE3NzhjMDQ2NzBjMmY5MWIwMGFmNDY4MGRmYThiY2UzNDkwNzE3ZDU4YmE4ODlkZGI1OTI4MzY2NjQyYmUiLCJiMzE4''@;'; + put 'put ''ZTBlYzMzNTQwMjhhZGQ2Njk4MjdmOWQ0YjI4NzBhYWE5NzFkMmY3ZTVlZDFkMGIyOTc0ODNkODNlZmQwIl0sWyJmYTUwYzBmNjFkMjJlNWYwN2UzYWNlYmIxYWEwN2IxMjhkMDAxMjIwOWEyOGI5Nzc2ZDc2YTg3OTMxODBlZWY5IiwiNmI4NGM2OTIyMzk3ZWJhOWI3MmNkMjg3MjI4MWE2OGE1''@;'; + put 'put ''ZTY4MzI5M2E1N2EyMTNiMzhjZDhkN2QzZjRmMjgxMSJdLFsiZGExZDYxZDBjYTcyMWExMWIxYTViZjZiN2Q4OGU4NDIxYTI4OGFiNWQ1YmJhNTIyMGU1M2QzMmI1ZjA2N2VjMiIsIjgxNTdmNTVhN2M5OTMwNmM3OWMwNzY2MTYxYzkxZTI5NjZhNzM4OTlkMjc5YjQ4YTY1NWZiYTBmMWFkODM2''@;'; + put 'put ''ZjEiXSxbImE4ZTI4MmZmMGM5NzA2OTA3MjE1ZmY5OGU4ZmQ0MTY2MTUzMTFkZTA0NDZmMWUwNjJhNzNiMDYxMGQwNjRlMTMiLCI3Zjk3MzU1YjhkYjgxYzA5YWJmYjdmM2M1YjI1MTU4ODhiNjc5YTNlNTBkZDZiZDZjZWY3YzczMTExZjRjYzBjIl0sWyIxNzRhNTNiOWM5YTI4NTg3MmQzOWU1''@;'; + put 'put ''NmU2OTEzY2FiMTVkNTliMWZhNTEyNTA4YzAyMmYzODJkZTgzMTk0OTdjIiwiY2NjOWRjMzdhYmZjOWMxNjU3YjQxNTVmMmM0N2Y5ZTY2NDZiM2ExZDhjYjk4NTQzODNkYTEzYWMwNzlhZmE3MyJdLFsiOTU5Mzk2OTgxOTQzNzg1YzNkM2U1N2VkZjUwMThjZGJlMDM5ZTczMGU0OTE4YjNkODg0''@;'; + put 'put ''ZmRmZjA5NDc1YjdiYSIsIjJlN2U1NTI4ODhjMzMxZGQ4YmEwMzg2YTRiOWNkNjg0OWM2NTNmNjRjODcwOTM4NWU5YjhhYmY4NzUyNGYyZmQiXSxbImQyYTYzYTUwYWU0MDFlNTZkNjQ1YTExNTNiMTA5YThmY2NhMGE0M2Q1NjFmYmEyZGJiNTEzNDBjOWQ4MmIxNTEiLCJlODJkODZmYjY0NDNm''@;'; + put 'put ''Y2I3NTY1YWVlNThiMjk0ODIyMGE3MGY3NTBhZjQ4NGNhNTJkNDE0MjE3NGRjZjg5NDA1Il0sWyI2NDU4N2UyMzM1NDcxZWI4OTBlZTc4OTZkN2NmZGM4NjZiYWNiZGJkMzgzOTMxN2IzNDM2ZjliNDU2MTdlMDczIiwiZDk5ZmNkZDViZjY5MDJlMmFlOTZkZDY0NDdjMjk5YTE4NWI5MGEzOTEz''@;'; + put 'put ''M2FlYWIzNTgyOTllNWU5ZmFmNjU4OSJdLFsiODQ4MWJkZTBlNGU0ZDg4NWIzYTU0NmQzZTU0OWRlMDQyZjBhYTZjZWEyNTBlN2ZkMzU4ZDZjODZkZDQ1ZTQ1OCIsIjM4ZWU3YjhjYmE1NDA0ZGQ4NGEyNWJmMzljZWNiMmNhOTAwYTc5YzQyYjI2MmU1NTZkNjRiMWI1OTc3OTA1N2UiXSxbIjEz''@;'; + put 'put ''NDY0YTU3YTc4MTAyYWE2MmI2OTc5YWU4MTdmNDYzN2ZmY2ZlZDNjNGIxY2UzMGJjZDYzMDNmNmNhZjY2NmIiLCI2OWJlMTU5MDA0NjE0NTgwZWY3ZTQzMzQ1M2NjYjBjYTQ4ZjMwMGE4MWQwOTQyZTEzZjQ5NWE5MDdmNmVjYzI3Il0sWyJiYzRhOWRmNWI3MTNmZTJlOWFlZjQzMGJjYzFkYzk3''@;'; + put 'put ''YTBjZDljY2VkZTJmMjg1ODhjYWRhM2EwZDJkODNmMzY2IiwiZDNhODFjYTZlNzg1YzA2MzgzOTM3YWRmNGI3OThjYWE2ZThhOWZiZmE1NDdiMTZkNzU4ZDY2NjU4MWYzM2MxIl0sWyI4YzI4YTk3YmY4Mjk4YmMwZDIzZDhjNzQ5NDUyYTMyZTY5NGI2NWUzMGE5NDcyYTM5NTRhYjMwZmU1MzI0''@;'; + put 'put ''Y2FhIiwiNDBhMzA0NjNhMzMwNTE5MzM3OGZlZGYzMWY3Y2MwZWI3YWU3ODRmMDQ1MWNiOTQ1OWU3MWRjNzNjYmVmOTQ4MiJdLFsiOGVhOTY2NjEzOTUyN2E4YzFkZDk0Y2U0ZjA3MWZkMjNjOGIzNTBjNWE0YmIzMzc0OGM0YmExMTFmYWNjYWUwIiwiNjIwZWZhYmJjOGVlMjc4MmUyNGU3YzBj''@;'; + put 'put ''ZmI5NWM1ZDczNWI3ODNiZTljZjBmOGU5NTVhZjM0YTMwZTYyYjk0NSJdLFsiZGQzNjI1ZmFlZjViYTA2MDc0NjY5NzE2YmJkMzc4OGQ4OWJkZGU4MTU5NTk5NjgwOTJmNzZjYzRlYjlhOTc4NyIsIjdhMTg4ZmEzNTIwZTMwZDQ2MWRhMjUwMTA0NTczMWNhOTQxNDYxOTgyODgzMzk1OTM3ZjY4''@;'; + put 'put ''ZDAwYzY0NGE1NzMiXSxbImY3MTBkNzlkOWViOTYyMjk3ZTRmNjIzMmI0MGU4ZjdmZWIyYmM2MzgxNDYxNGQ2OTJjMTJkZTc1MjQwODIyMWUiLCJlYTk4ZTY3MjMyZDNiMzI5NWQzYjUzNTUzMjExNWNjYWM4NjEyYzcyMTg1MTYxNzUyNmFlNDdhOWM3N2JmYzgyIl1dfSxuYWY6e3duZDo3LHBv''@;'; + put 'put ''aW50czpbWyJmOTMwOGEwMTkyNThjMzEwNDkzNDRmODVmODlkNTIyOWI1MzFjODQ1ODM2Zjk5YjA4NjAxZjExM2JjZTAzNmY5IiwiMzg4ZjdiMGY2MzJkZTgxNDBmZTMzN2U2MmEzN2YzNTY2NTAwYTk5OTM0YzIyMzFiNmNiOWZkNzU4NGI4ZTY3MiJdLFsiMmY4YmRlNGQxYTA3MjA5MzU1YjRh''@;'; + put 'put ''NzI1MGE1YzUxMjhlODhiODRiZGRjNjE5YWI3Y2JhOGQ1NjliMjQwZWZlNCIsImQ4YWMyMjI2MzZlNWUzZDZkNGRiYTlkZGE2YzljNDI2Zjc4ODI3MWJhYjBkNjg0MGRjYTg3ZDNhYTZhYzYyZDYiXSxbIjVjYmRmMDY0NmU1ZGI0ZWFhMzk4ZjM2NWYyZWE3YTBlM2Q0MTliN2UwMzMwZTM5Y2U5''@;'; + put 'put ''MmJkZGVkY2FjNGY5YmMiLCI2YWViY2E0MGJhMjU1OTYwYTMxNzhkNmQ4NjFhNTRkYmE4MTNkMGI4MTNmZGU3YjVhNTA4MjYyODA4NzI2NGRhIl0sWyJhY2Q0ODRlMmYwYzdmNjUzMDlhZDE3OGE5ZjU1OWFiZGUwOTc5Njk3NGM1N2U3MTRjMzVmMTEwZGZjMjdjY2JlIiwiY2MzMzg5MjFiMGE3''@;'; + put 'put ''ZDlmZDY0MzgwOTcxNzYzYjYxZTlhZGQ4ODhhNDM3NWY4ZTBmMDVjYzI2MmFjNjRmOWMzNyJdLFsiNzc0YWU3Zjg1OGE5NDExZTVlZjQyNDZiNzBjNjVhYWM1NjQ5OTgwYmU1YzE3ODkxYmJlYzE3ODk1ZGEwMDhjYiIsImQ5ODRhMDMyZWI2YjVlMTkwMjQzZGQ1NmQ3YjdiMzY1MzcyZGIxZTJk''@;'; + put 'put ''ZmY5ZDZhODMwMWQ3NGM5Yzk1M2M2MWIiXSxbImYyODc3M2MyZDk3NTI4OGJjN2QxZDIwNWMzNzQ4NjUxYjA3NWZiYzY2MTBlNThjZGRlZWRkZjhmMTk0MDVhYTgiLCJhYjA5MDJlOGQ4ODBhODk3NTgyMTJlYjY1Y2RhZjQ3M2ExYTA2ZGE1MjFmYTkxZjI5YjVjYjUyZGIwM2VkODEiXSxbImQ3''@;'; + put 'put ''OTI0ZDRmN2Q0M2VhOTY1YTQ2NWFlMzA5NWZmNDExMzFlNTk0NmYzYzg1Zjc5ZTQ0YWRiY2Y4ZTI3ZTA4MGUiLCI1ODFlMjg3MmE4NmM3MmE2ODM4NDJlYzIyOGNjNmRlZmVhNDBhZjJiZDg5NmQzYTVjNTA0ZGM5ZmY2YTI2YjU4Il0sWyJkZWZkZWE0Y2RiNjc3NzUwYTQyMGZlZTgwN2VhY2Yy''@;'; + put 'put ''MWViOTg5OGFlNzliOTc2ODc2NmU0ZmFhMDRhMmQ0YTM0IiwiNDIxMWFiMDY5NDYzNTE2OGU5OTdiMGVhZDJhOTNkYWVjZWQxZjRhMDRhOTVjMGY2Y2ZiMTk5ZjY5ZTU2ZWI3NyJdLFsiMmI0ZWEwYTc5N2E0NDNkMjkzZWY1Y2ZmNDQ0ZjQ5NzlmMDZhY2ZlYmQ3ZTg2ZDI3NzQ3NTY1NjEzODM4''@;'; + put 'put ''NWI2YyIsIjg1ZTg5YmMwMzc5NDVkOTNiMzQzMDgzYjVhMWM4NjEzMWEwMWY2MGM1MDI2OTc2M2I1NzBjODU0ZTVjMDliN2EiXSxbIjM1MmJiZjRhNGNkZDEyNTY0ZjkzZmEzMzJjZTMzMzMwMWQ5YWQ0MDI3MWY4MTA3MTgxMzQwYWVmMjViZTU5ZDUiLCIzMjFlYjQwNzUzNDhmNTM0ZDU5YzE4''@;'; + put 'put ''MjU5ZGRhM2UxZjRhMWIzYjJlNzFiMTAzOWM2N2JkM2Q4YmNmODE5OThjIl0sWyIyZmEyMTA0ZDZiMzhkMTFiMDIzMDAxMDU1OTg3OTEyNGU0MmFiOGRmZWZmNWZmMjlkYzljZGFkZDRlY2FjYzNmIiwiMmRlMTA2ODI5NWRkODY1YjY0NTY5MzM1YmQ1ZGQ4MDE4MWQ3MGVjZmM4ODI2NDg0MjNi''@;'; + put 'put ''YTc2YjUzMmI3ZDY3Il0sWyI5MjQ4Mjc5YjA5YjRkNjhkYWIyMWE5YjA2NmVkZGE4MzI2M2MzZDg0ZTA5NTcyZTI2OWNhMGNkN2Y1NDUzNzE0IiwiNzMwMTZmN2JmMjM0YWFkZTVkMWFhNzFiZGVhMmIxZmYzZmMwZGUyYTg4NzkxMmZmZTU0YTMyY2U5N2NiMzQwMiJdLFsiZGFlZDRmMmJlM2E4''@;'; + put 'put ''YmYyNzhlNzAxMzJmYjBiZWI3NTIyZjU3MGUxNDRiZjYxNWMwN2U5OTZkNDQzZGVlODcyOSIsImE2OWRjZTRhN2Q2Yzk4ZThkNGExYWNhODdlZjhkNzAwM2Y4M2MyMzBmM2FmYTcyNmFiNDBlNTIyOTBiZTFjNTUiXSxbImM0NGQxMmM3MDY1ZDgxMmU4YWNmMjhkN2NiYjE5ZjkwMTFlY2Q5ZTlm''@;'; + put 'put ''ZGYyODFiMGU2YTNiNWU4N2QyMmU3ZGIiLCIyMTE5YTQ2MGNlMzI2Y2RjNzZjNDU5MjZjOTgyZmRhYzBlMTA2ZTg2MWVkZjYxYzVhMDM5MDYzZjBlMGU2NDgyIl0sWyI2YTI0NWJmNmRjNjk4NTA0Yzg5YTIwY2ZkZWQ2MDg1MzE1MmI2OTUzMzZjMjgwNjNiNjFjNjVjYmQyNjllNmI0IiwiZTAy''@;'; + put 'put ''MmNmNDJjMmJkNGE3MDhiM2Y1MTI2ZjE2YTI0YWQ4YjMzYmE0OGQwNDIzYjZlZmQ1ZTYzNDgxMDBkOGE4MiJdLFsiMTY5N2ZmYTZmZDlkZTYyN2MwNzdlM2QyZmU1NDEwODRjZTEzMzAwYjBiZWMxMTQ2Zjk1YWU1N2YwZDBiZDZhNSIsImI5YzM5OGYxODY4MDZmNWQyNzU2MTUwNmU0NTU3NDMz''@;'; + put 'put ''YTJjZjE1MDA5ZTQ5OGFlN2FkZWU5ZDYzZDAxYjIzOTYiXSxbIjYwNWJkYjAxOTk4MTcxOGI5ODZkMGYwN2U4MzRjYjBkOWRlYjgzNjBmZmI3ZjYxZGY5ODIzNDVlZjI3YTc0NzkiLCIyOTcyZDJkZTRmOGQyMDY4MWE3OGQ5M2VjOTZmZTIzYzI2YmZhZTg0ZmIxNGRiNDNiMDFlMWU5MDU2Yjhj''@;'; + put 'put ''NDkiXSxbIjYyZDE0ZGFiNDE1MGJmNDk3NDAyZmRjNDVhMjE1ZTEwZGNiMDFjMzU0OTU5YjEwY2ZlMzFjN2U5ZDg3ZmYzM2QiLCI4MGZjMDZiZDhjYzViMDEwOTgwODhhMTk1MGVlZDBkYjAxYWExMzI5NjdhYjQ3MjIzNWY1NjQyNDgzYjI1ZWFmIl0sWyI4MGM2MGFkMDA0MGYyN2RhZGU1YjRi''@;'; + put 'put ''MDZjNDA4ZTU2YjJjNTBlOWY1NmI5YjhiNDI1ZTU1NWMyZjg2MzA4YjZmIiwiMWMzODMwM2YxY2M1YzMwZjI2ZTY2YmFkN2ZlNzJmNzBhNjVlZWQ0Y2JlNzAyNGViMWFhMDFmNTY0MzBiZDU3YSJdLFsiN2E5Mzc1YWQ2MTY3YWQ1NGFhNzRjNjM0OGNjNTRkMzQ0Y2M1ZGM5NDg3ZDg0NzA0OWQ1''@;'; + put 'put ''ZWFiYjBmYTAzYzhmYiIsImQwZTNmYTllY2E4NzI2OTA5NTU5ZTBkNzkyNjkwNDZiZGM1OWVhMTBjNzBjZTJiMDJkNDk5ZWMyMjRkYzdmNyJdLFsiZDUyOGVjZDliNjk2YjU0YzkwN2E5ZWQwNDU0NDdhNzliYjQwOGVjMzliNjhkZjUwNGJiNTFmNDU5YmMzZmZjOSIsImVlY2Y0MTI1MzEzNmU1''@;'; + put 'put ''Zjk5OTY2ZjIxODgxZmQ2NTZlYmM0MzQ1NDA1YzUyMGRiYzA2MzQ2NWI1MjE0MDk5MzMiXSxbIjQ5MzcwYTRiNWY0MzQxMmVhMjVmNTE0ZThlY2RhZDA1MjY2MTE1ZTRhN2VjYjEzODcyMzE4MDhmOGI0NTk2MyIsIjc1OGYzZjQxYWZkNmVkNDI4YjMwODFiMDUxMmZkNjJhNTRjM2YzYWZiYjVi''@;'; + put 'put ''Njc2NGI2NTMwNTJhMTI5NDljOWEiXSxbIjc3ZjIzMDkzNmVlODhjYmJkNzNkZjkzMGQ2NDcwMmVmODgxZDgxMWUwZTE0OThlMmYxYzEzZWIxZmMzNDVkNzQiLCI5NThlZjQyYTc4ODZiNjQwMGEwODI2NmU5YmExYjM3ODk2Yzk1MzMwZDk3MDc3Y2JiZThlYjNjNzY3MWM2MGQ2Il0sWyJmMmRh''@;'; + put 'put ''Yzk5MWNjNGNlNGI5ZWE0NDg4N2U1YzdjMGJjZTU4YzgwMDc0YWI5ZDRkYmFlYjI4NTMxYjc3MzlmNTMwIiwiZTBkZWRjOWIzYjJmOGRhZDRkYTFmMzJkZWMyNTMxZGY5ZWI1ZmJlYjA1OThlNGZkMWExMTdkYmE3MDNhM2MzNyJdLFsiNDYzYjNkOWY2NjI2MjFmYjFiNGJlOGZiYmUyNTIwMTI1''@;'; + put 'put ''YTIxNmNkZmM5ZGFlM2RlYmNiYTQ4NTBjNjkwZDQ1YiIsIjVlZDQzMGQ3OGMyOTZjMzU0MzExNDMwNmRkODYyMmQ3YzYyMmUyN2M5NzBhMWRlMzFjYjM3N2IwMWFmNzMwN2UiXSxbImYxNmY4MDQyNDRlNDZlMmEwOTIzMmQ0YWZmM2I1OTk3NmI5OGZhYzE0MzI4YTJkMWEzMjQ5NmI0OTk5OGYy''@;'; + put 'put ''NDciLCJjZWRhYmQ5YjgyMjAzZjdlMTNkMjA2ZmNkZjRlMzNkOTJhNmM1M2MyNmU1Y2NlMjZkNjU3OTk2MmM0ZTMxZGY2Il0sWyJjYWY3NTQyNzJkYzg0NTYzYjAzNTJiN2ExNDMxMWFmNTVkMjQ1MzE1YWNlMjdjNjUzNjllMTVmNzE1MWQ0MWQxIiwiY2I0NzQ2NjBlZjM1ZjVmMmE0MWI2NDNm''@;'; + put 'put ''YTVlNDYwNTc1ZjRmYTliNzk2MjIzMmE1YzMyZjkwODMxOGEwNDQ3NiJdLFsiMjYwMGNhNGIyODJjYjk4NmY4NWQwZjE3MDk5NzlkOGI0NGEwOWMwN2NiODZkN2MxMjQ0OTdiYzg2ZjA4MjEyMCIsIjQxMTliODg3NTNjMTViZDZhNjkzYjAzZmNkZGJiNDVkNWFjNmJlNzRhYjVmMGVmNDRiMGJl''@;'; + put 'put ''OTQ3NWE3ZTRiNDAiXSxbIjc2MzVjYTcyZDdlODQzMmMzMzhlYzUzY2QxMjIyMGJjMDFjNDg2ODVlMjRmN2RjOGM2MDJhNzc0Njk5OGU0MzUiLCI5MWI2NDk2MDk0ODlkNjEzZDFkNWU1OTBmNzhlNmQ3NGVjZmMwNjFkNTcwNDhiYWQ5ZTc2ZjMwMmM1YjljNjEiXSxbIjc1NGUzMjM5ZjMyNTU3''@;'; + put 'put ''MGNkYmJmNGE4N2RlZWU4YTY2YjdmMmIzMzQ3OWQ0NjhmYmMxYTUwNzQzYmY1NmNjMTgiLCI2NzNmYjg2ZTViZGEzMGZiM2NkMGVkMzA0ZWE0OWEwMjNlZTMzZDAxOTdhNjk1ZDBjNWQ5ODA5M2M1MzY2ODMiXSxbImUzZTZiZDEwNzFhMWU5NmFmZjU3ODU5YzgyZDU3MGYwMzMwODAwNjYxZDFj''@;'; + put 'put ''OTUyZjlmZTI2OTQ2OTFkOWI5ZTgiLCI1OWM5ZTBiYmEzOTRlNzZmNDBjMGFhNTgzNzlhM2NiNmE1YTIyODM5OTNlOTBjNDE2NzAwMmFmNDkyMGUzN2Y1Il0sWyIxODZiNDgzZDA1NmEwMzM4MjZhZTczZDg4ZjczMjk4NWM0Y2NiMWYzMmJhMzVmNGI0Y2M0N2ZkY2YwNGFhNmViIiwiM2I5NTJk''@;'; + put 'put ''MzJjNjdjZjc3ZTJlMTc0NDZlMjA0MTgwYWIyMWZiODA5MDg5NTEzOGI0YTRhNzk3Zjg2ZTgwODg4YiJdLFsiZGY5ZDcwYTZiOTg3NmNlNTQ0Yzk4NTYxZjRiZTRmNzI1NDQyZTZkMmI3MzdkOWM5MWE4MzIxNzI0Y2UwOTYzZiIsIjU1ZWIyZGFmZDg0ZDZjY2Q1Zjg2MmI3ODVkYzM5ZDRhYjE1''@;'; + put 'put ''NzIyMjcyMGVmOWRhMjE3YjhjNDVjZjJiYTI0MTciXSxbIjVlZGQ1Y2MyM2M1MWU4N2E0OTdjYTgxNWQ1ZGNlMGY4YWI1MjU1NGY4NDllZDg5OTVkZTY0YzVmMzRjZTcxNDMiLCJlZmFlOWM4ZGJjMTQxMzA2NjFlOGNlYzAzMGM4OWFkMGMxM2M2NmMwZDE3YTI5MDVjZGM3MDZhYjczOTlhODY4''@;'; + put 'put ''Il0sWyIyOTA3OThjMmI2NDc2ODMwZGExMmZlMDIyODdlOWU3NzdhYTNmYmExYzM1NWIxN2E3MjJkMzYyZjg0NjE0ZmJhIiwiZTM4ZGE3NmRjZDQ0MDYyMTk4OGQwMGJjZjc5YWYyNWQ1YjI5YzA5NGRiMmEyMzE0NmQwMDNhZmQ0MTk0M2U3YSJdLFsiYWYzYzQyM2E5NWQ5ZjViMzA1NDc1NGVm''@;'; + put 'put ''YTE1MGFjMzljZDI5NTUyZmUzNjAyNTczNjJkZmRlY2VmNDA1M2I0NSIsImY5OGEzZmQ4MzFlYjJiNzQ5YTkzYjBlNmYzNWNmYjQwYzhjZDVhYTY2N2ExNTU4MWJjMmZlZGVkNDk4ZmQ5YzYiXSxbIjc2NmRiYjI0ZDEzNGU3NDVjY2NhYTI4Yzk5YmYyNzQ5MDZiYjY2YjI2ZGNmOThkZjhkMmZl''@;'; + put 'put ''ZDUwZDg4NDI0OWEiLCI3NDRiMTE1MmVhY2JlNWUzOGRjYzg4Nzk4MGRhMzhiODk3NTg0YTY1ZmEwNmNlZGQyYzkyNGY5N2NiYWM1OTk2Il0sWyI1OWRiZjQ2ZjhjOTQ3NTliYTIxMjc3YzMzNzg0ZjQxNjQ1ZjdiNDRmNmM1OTZhNThjZTkyZTY2NjE5MWFiZTNlIiwiYzUzNGFkNDQxNzVmYmMz''@;'; + put 'put ''MDBmNGVhNmNlNjQ4MzA5YTA0MmNlNzM5YTc5MTk3OThjZDg1ZTIxNmM0YTMwN2Y2ZSJdLFsiZjEzYWRhOTUxMDNjNDUzNzMwNWU2OTFlNzRlOWE0YThkZDY0N2U3MTFhOTVlNzNjYjYyZGM2MDE4Y2ZkODdiOCIsImUxMzgxN2I0NGVlMTRkZTY2M2JmNGJjODA4MzQxZjMyNjk0OWUyMWE2YTc1''@;'; + put 'put ''YzI1NzA3Nzg0MTliZGFmNTczM2QiXSxbIjc3NTRiNGZhMGU4YWNlZDA2ZDQxNjdhMmM1OWNjYTRjZGExODY5YzA2ZWJhZGZiNjQ4ODU1MDAxNWE4ODUyMmMiLCIzMGU5M2U4NjRlNjY5ZDgyMjI0Yjk2N2MzMDIwYjhmYThkMWU0ZTM1MGI2Y2JjYzUzN2E0OGI1Nzg0MTE2M2EyIl0sWyI5NDhk''@;'; + put 'put ''Y2FkZjU5OTBlMDQ4YWEzODc0ZDQ2YWJlZjlkNzAxODU4Zjk1ZGU4MDQxZDJhNjgyOGM5OWUyMjYyNTE5IiwiZTQ5MWE0MjUzN2Y2ZTU5N2Q1ZDI4YTMyMjRiMWJjMjVkZjkxNTRlZmJkMmVmMWQyY2JiYTJjYWU1MzQ3ZDU3ZSJdLFsiNzk2MjQxNDQ1MGM3NmMxNjg5YzdiNDhmODIwMmVjMzdm''@;'; + put 'put ''YjIyNGNmNWFjMGJmYTE1NzAzMjhhOGEzZDdjNzdhYiIsIjEwMGI2MTBlYzRmZmI0NzYwZDVjMWZjMTMzZWY2ZjZiMTI1MDdhMDUxZjA0YWM1NzYwYWZhNWIyOWRiODM0MzciXSxbIjM1MTQwODc4MzQ5NjRiNTRiMTViMTYwNjQ0ZDkxNTQ4NWExNjk3NzIyNWI4ODQ3YmIwZGQwODUxMzdlYzQ3''@;'; + put 'put ''Y2EiLCJlZjBhZmJiMjA1NjIwNTQ0OGUxNjUyYzQ4ZTgxMjdmYzYwMzllNzdjMTVjMjM3OGI3ZTdkMTVhMGRlMjkzMzExIl0sWyJkM2NjMzBhZDZiNDgzZTRiYzc5Y2UyYzlkZDhiYzU0OTkzZTk0N2ViOGRmNzg3YjQ0Mjk0M2QzZjdiNTI3ZWFmIiwiOGIzNzhhMjJkODI3Mjc4ZDg5YzVlOWJl''@;'; + put 'put ''OGY5NTA4YWUzYzJhZDQ2MjkwMzU4NjMwYWZiMzRkYjA0ZWVkZTBhNCJdLFsiMTYyNGQ4NDc4MDczMjg2MGNlMWM3OGZjYmZlZmUwOGIyYjI5ODIzZGI5MTNmNjQ5Mzk3NWJhMGZmNDg0NzYxMCIsIjY4NjUxY2Y5YjZkYTkwM2UwOTE0NDQ4YzZjZDlkNGNhODk2ODc4ZjUyODJiZTRjOGNjMDZl''@;'; + put 'put ''MmE0MDQwNzg1NzUiXSxbIjczM2NlODBkYTk1NWE4YTI2OTAyYzk1NjMzZTYyYTk4NTE5MjQ3NGI1YWYyMDdkYTZkZjdiNGZkNWZjNjFjZDQiLCJmNTQzNWEyYmQyYmFkZjdkNDg1YTRkOGI4ZGI5ZmNjZTNlMWVmOGUwMjAxZTQ1NzhjNTQ2NzNiYzFkYzVlYTFkIl0sWyIxNWQ5NDQxMjU0OTQ1''@;'; + put 'put ''MDY0Y2YxYTFjMzNiYmQzYjQ5Zjg5NjZjNTA5MjE3MWU2OTllZjI1OGRmYWI4MWMwNDVjIiwiZDU2ZWIzMGI2OTQ2M2U3MjM0ZjUxMzdiNzNiODQxNzc0MzQ4MDBiYWNlYmZjNjg1ZmMzN2JiZTllZmU0MDcwZCJdLFsiYTFkMGZjZjJlYzlkZTY3NWI2MTIxMzZlNWNlNzBkMjcxYzIxNDE3Yzlk''@;'; + put 'put ''MmI4YWFhYWMxMzg1OTlkMDcxNzk0MCIsImVkZDc3ZjUwYmNiNWEzY2FiMmU5MDczNzMwOTY2N2YyNjQxNDYyYTU0MDcwZjNkNTE5MjEyZDM5YzE5N2E2MjkiXSxbImUyMmZiZTE1YzBhZjhjY2M1NzgwYzA3MzVmODRkYmU5YTc5MGJhZGVlODI0NWMwNmM3Y2EzNzMzMWNiMzY5ODAiLCJhODU1''@;'; + put 'put ''YmFiYWQ1Y2Q2MGM4OGI0MzBhNjlmNTNhMWE3YTM4Mjg5MTU0OTY0Nzk5YmU0M2QwNmQ3N2QzMWRhMDYiXSxbIjMxMTA5MWRkOTg2MGU4ZTIwZWUxMzQ3M2MxMTU1ZjVmNjk2MzVlMzk0NzA0ZWFhNzQwMDk0NTIyNDZjZmE5YjMiLCI2NmRiNjU2Zjg3ZDFmMDRmZmZkMWYwNDc4OGMwNjgzMDg3''@;'; + put 'put ''MWVjNWE2NGZlZWU2ODViZDgwZjBiMTI4NmQ4Mzc0Il0sWyIzNGMxZmQwNGQzMDFiZTg5YjMxYzA0NDJkM2U2YWMyNDg4MzkyOGI0NWE5MzQwNzgxODY3ZDQyMzJlYzJkYmRmIiwiOTQxNDY4NWU5N2IxYjU5NTRiZDQ2ZjczMDE3NDEzNmQ1N2YxY2VlYjQ4NzQ0M2RjNTMyMTg1N2JhNzNhYmVl''@;'; + put 'put ''Il0sWyJmMjE5ZWE1ZDZiNTQ3MDFjMWMxNGRlNWI1NTdlYjQyYThkMTNmM2FiYmNkMDhhZmZjYzJhNWU2YjA0OWI4ZDYzIiwiNGNiOTU5NTdlODNkNDBiMGY3M2FmNDU0NGNjY2Y2YjFmNGIwOGQzYzA3YjI3ZmI4ZDhjMjk2MmE0MDA3NjZkMSJdLFsiZDdiODc0MGY3NGE4ZmJhYWIxZjY4M2Ri''@;'; + put 'put ''OGY0NWRlMjY1NDNhNTQ5MGJjYTYyNzA4NzIzNjkxMjQ2OWEwYjQ0OCIsImZhNzc5NjgxMjhkOWM5MmVlMTAxMGYzMzdhZDQ3MTdlZmYxNWRiNWVkM2MwNDliMzQxMWUwMzE1ZWFhNDU5M2IiXSxbIjMyZDMxYzIyMmY4ZjZmMGVmODZmN2M5OGQzYTMzMzVlYWQ1YmNkMzJhYmRkOTQyODlmZTRk''@;'; + put 'put ''MzA5MWFhODI0YmYiLCI1ZjMwMzJmNTg5MjE1NmUzOWNjZDNkNzkxNWI5ZTFkYTJlNmRhYzllNmYyNmU5NjExMThkMTRiODQ2MmUxNjYxIl0sWyI3NDYxZjM3MTkxNGFiMzI2NzEwNDVhMTU1ZDk4MzFlYTg3OTNkNzdjZDU5NTkyYzQzNDBmODZjYmMxODM0N2I1IiwiOGVjMGJhMjM4Yjk2YmVj''@;'; + put 'put ''MGNiZGRkY2FlMGFhNDQyNTQyZWVlMWZmNTBjOTg2ZWE2YjM5ODQ3YjNjYzA5MmZmNiJdLFsiZWUwNzlhZGIxZGYxODYwMDc0MzU2YTI1YWEzODIwNmE2ZDcxNmIyYzNlNjc0NTNkMjg3Njk4YmFkN2IyYjJkNiIsIjhkYzI0MTJhYWZlM2JlNWM0YzVmMzdlMGVjYzVmOWY2YTQ0Njk4OWFmMDRj''@;'; + put 'put ''NGUyNWViYWFjNDc5ZWMxYzhjMWUiXSxbIjE2ZWM5M2U0NDdlYzgzZjA0NjdiMTgzMDJlZTYyMGY3ZTY1ZGUzMzE4NzRjOWRjNzJiZmQ4NjE2YmE5ZGE2YjUiLCI1ZTQ2MzExNTBlNjJmYjQwZDBlOGMyYTdjYTU4MDRhMzlkNTgxODZhNTBlNDk3MTM5NjI2Nzc4ZTI1YjA2NzRkIl0sWyJlYWE1''@;'; + put 'put ''Zjk4MGMyNDVmNmYwMzg5NzgyOTBhZmE3MGI2YmQ4ODU1ODk3Zjk4YjZhYTQ4NWI5NjA2NWQ1MzdiZDk5IiwiZjY1ZjVkM2UyOTJjMmUwODE5YTUyODM5MWM5OTQ2MjRkNzg0ODY5ZDdlNmVhNjdmYjE4MDQxMDI0ZWRjMDdkYyJdLFsiNzhjOTQwNzU0NGFjMTMyNjkyZWUxOTEwYTAyNDM5OTU4''@;'; + put 'put ''YWUwNDg3NzE1MTM0MmVhOTZjNGI2YjM1YTQ5ZjUxIiwiZjNlMDMxOTE2OWViOWI4NWQ1NDA0Nzk1NTM5YTVlNjhmYTFmYmQ1ODNjMDY0ZDI0NjJiNjc1ZjE5NGEzZGRiNCJdLFsiNDk0ZjRiZTIxOWExYTc3MDE2ZGNkODM4NDMxYWVhMDAwMWNkYzhhZTdhNmZjNjg4NzI2NTc4ZDk3MDI4NTdh''@;'; + put 'put ''NSIsIjQyMjQyYTk2OTI4M2E1ZjMzOWJhN2YwNzVlMzZiYTJhZjkyNWNlMzBkNzY3ZWQ2ZTU1ZjRiMDMxODgwZDU2MmMiXSxbImE1OThhODAzMGRhNmQ4NmM2YmM3ZjJmNTE0NGVhNTQ5ZDI4MjExZWE1OGZhYTcwZWJmNGMxZTY2NWMxZmU5YjUiLCIyMDRiNWQ2Zjg0ODIyYzMwN2U0YjRhNzE0''@;'; + put 'put ''MDczN2FlYzIzZmM2M2I2NWIzNWY4NmExMDAyNmRiZDJkODY0ZTZiIl0sWyJjNDE5MTYzNjVhYmIyYjVkMDkxOTJmNWYyZGJlYWZlYzIwOGYwMjBmMTI1NzBhMTg0ZGJhZGMzZTU4NTk1OTk3IiwiNGYxNDM1MWQwMDg3ZWZhNDlkMjQ1YjMyODk4NDk4OWQ1Y2FmOTQ1MGYzNGJmYzBlZDE2ZTk2''@;'; + put 'put ''YjU4ZmE5OTEzIl0sWyI4NDFkNjA2M2E1ODZmYTQ3NWE3MjQ2MDRkYTAzYmM1YjkyYTJlMGQyZTBhMzZhY2ZlNGM3M2E1NTE0NzQyODgxIiwiNzM4NjdmNTljMDY1OWU4MTkwNGY5YTFjNzU0MzY5OGU2MjU2MmQ2NzQ0YzE2OWNlN2EzNmRlMDFhOGQ2MTU0Il0sWyI1ZTk1YmIzOTlhNjk3MWQz''@;'; + put 'put ''NzYwMjY5NDdmODliZGUyZjI4MmIzMzgxMDkyOGJlNGRlZDExMmFjNGQ3MGUyMGQ1IiwiMzlmMjNmMzY2ODA5MDg1YmVlYmZjNzExODEzMTM3NzVhOTljOWFlZDdkOGJhMzhiMTYxMzg0Yzc0NjAxMjg2NSJdLFsiMzZlNDY0MWE1Mzk0OGZkNDc2YzM5ZjhhOTlmZDk3NGU1ZWMwNzU2NGI1MzE1''@;'; + put 'put ''ZDhiZjk5NDcxYmNhMGVmMmY2NiIsImQyNDI0YjFiMWFiZTRlYjgxNjQyMjdiMDg1YzlhYTk0NTZlYTEzNDkzZmQ1NjNlMDZmZDUxY2Y1Njk0Yzc4ZmMiXSxbIjMzNjU4MWVhN2JmYmJiMjkwYzE5MWEyZjUwN2E0MWNmNTY0Mzg0MjE3MGU5MTRmYWVhYjI3YzJjNTc5ZjcyNiIsImVhZDEyMTY4''@;'; + put 'put ''NTk1ZmUxYmU5OTI1MjEyOWI2ZTU2YjMzOTFmN2FiMTQxMGNkMWUwZWYzZGNkY2FiZDJmZGEyMjQiXSxbIjhhYjg5ODE2ZGFkZmQ2YjZhMWYyNjM0ZmNmMDBlYzg0MDM3ODEwMjVlZDY4OTBjNDg0OTc0MjcwNmJkNDNlZGUiLCI2ZmRjZWYwOWYyZjZkMGEwNDRlNjU0YWVmNjI0MTM2ZjUwM2Q0''@;'; + put 'put ''NTljM2U4OTg0NTg1OGE0N2E5MTI5Y2RkMjRlIl0sWyIxZTMzZjFhNzQ2YzljNTc3ODEzMzM0NGQ5Mjk5ZmNhYTIwYjA5MzhlOGFjZmYyNTQ0YmI0MDI4NGI4YzVmYjk0IiwiNjA2NjAyNTdkZDExYjNhYTljOGVkNjE4ZDI0ZWRmZjIzMDZkMzIwZjFkMDMwMTBlMzNhN2QyMDU3ZjNiM2I2Il0s''@;'; + put 'put ''WyI4NWI3YzFkY2IzY2VjMWI3ZWU3ZjMwZGVkNzlkZDIwYTBlZDFmNGNjMThjYmNmY2ZhNDEwMzYxZmQ4ZjA4ZjMxIiwiM2Q5OGE5Y2RkMDI2ZGQ0M2YzOTA0OGYyNWE4ODQ3ZjRmY2FmYWQxODk1ZDdhNjMzYzZmZWQzYzM1ZTk5OTUxMSJdLFsiMjlkZjlmYmQ4ZDllNDY1MDkyNzVmNGIxMjVk''@;'; + put 'put ''NmQ0NWQ3ZmJlOWEzYjg3OGE3YWY4NzJhMjgwMDY2MWFjNWY1MSIsImI0YzRmZTk5Yzc3NWE2MDZlMmQ4ODYyMTc5MTM5ZmZkYTYxZGM4NjFjMDE5ZTU1Y2QyODc2ZWIyYTI3ZDg0YiJdLFsiYTBiMWNhZTA2YjBhODQ3YTNmZWE2ZTY3MWFhZjhhZGZkZmU1OGNhMmY3NjgxMDVjODA4MmIyZTQ0''@;'; + put 'put ''OWZjZTI1MiIsImFlNDM0MTAyZWRkZTA5NThlYzRiMTlkOTE3YTZhMjhlNmI3MmRhMTgzNGFmZjBlNjUwZjA0OTUwM2EyOTZjZjIiXSxbIjRlOGNlYWZiOWIzZTlhMTM2ZGM3ZmY2N2U4NDAyOTViNDk5ZGZiM2IyMTMzZTRiYTExM2YyZTRjMGUxMjFlNSIsImNmMjE3NDExOGM4YjZkN2E0YjQ4''@;'; + put 'put ''ZjZkNTM0Y2U1Yzc5NDIyYzA4NmE2MzQ2MDUwMmI4MjdjZTYyYTMyNjY4M2MiXSxbImQyNGE0NGUwNDdlMTliNmY1YWZiODFjN2NhMmY2OTA4MGE1MDc2Njg5YTAxMDkxOWY0MjcyNWMyYjc4OWEzM2IiLCI2ZmI4ZDU1OTFiNDY2ZjhmYzYzZGI1MGYxYzBmMWM2OTAxM2Y5OTY4ODdiODI0NGQy''@;'; + put 'put ''Y2RlYzQxN2FmZWE4ZmEzIl0sWyJlYTAxNjA2YTdhNmM5Y2RkMjQ5ZmRmY2ZhY2I5OTU4NDAwMWVkZDI4YWJiYWI3N2I1MTA0ZTk4ZThlM2IzNWQ0IiwiMzIyYWY0OTA4YzczMTJiMGNmYmZlMzY5ZjdhN2IzY2RiN2Q0NDk0YmMyODIzNzAwY2ZkNjUyMTg4YTNlYTk4ZCJdLFsiYWY4YWRkYmYy''@;'; + put 'put ''YjY2MWM4YTZjNjMyODY1NWViOTY2NTEyNTIwMDdkOGM1ZWEzMWJlNGFkMTk2ZGU4Y2UyMTMxZiIsIjY3NDllNjdjMDI5Yjg1ZjUyYTAzNGVhZmQwOTY4MzZiMjUyMDgxODY4MGUyNmFjOGYzZGZiY2RiNzE3NDk3MDAiXSxbImUzYWUxOTc0NTY2Y2EwNmNjNTE2ZDQ3ZTBmYjE2NWE2NzRhM2Rh''@;'; + put 'put ''YmNmY2ExNWU3MjJmMGUzNDUwZjQ1ODg5IiwiMmFlYWJlN2U0NTMxNTEwMTE2MjE3ZjA3YmY0ZDA3MzAwZGU5N2U0ODc0ZjgxZjUzMzQyMGE3MmVlYjBiZDZhNCJdLFsiNTkxZWUzNTUzMTNkOTk3MjFjZjY5OTNmZmVkMWUzZTMwMTk5M2ZmM2VkMjU4ODAyMDc1ZWE4Y2VkMzk3ZTI0NiIsImIw''@;'; + put 'put ''ZWE1NThhMTEzYzMwYmVhNjBmYzQ3NzU0NjBjNzkwMWZmMGIwNTNkMjVjYTJiZGVlZTk4ZjFhNGJlNWQxOTYiXSxbIjExMzk2ZDU1ZmRhNTRjNDlmMTlhYTk3MzE4ZDhkYTYxZmE4NTg0ZTQ3YjA4NDk0NTA3N2NmMDMyNTViNTI5ODQiLCI5OThjNzRhOGNkNDVhYzAxMjg5ZDU4MzNhN2JlYjQ3''@;'; + put 'put ''NDRmZjUzNmIwMWIyNTdiZTRjNTc2N2JlYTkzZWE1N2E0Il0sWyIzYzVkMmExYmEzOWM1YTE3OTAwMDA3MzhjOWUwYzQwYjhkY2RmZDU0Njg3NTRiNjQwNTU0MDE1N2UwMTdhYTdhIiwiYjIyODQyNzk5OTVhMzRlMmY5ZDRkZTczOTZmYzE4YjgwZjliOGI5ZmRkMjcwZjY2NjFmNzljYTRjODFi''@;'; + put 'put ''ZDI1NyJdLFsiY2M4NzA0YjhhNjBhMGRlZmEzYTk5YTcyOTlmMmU5YzNmYmMzOTVhZmIwNGFjMDc4NDI1ZWY4YTE3OTNjYzAzMCIsImJkZDQ2MDM5ZmVlZDE3ODgxZDFlMDg2MmRiMzQ3ZjhjZjM5NWI3NGZjNGJjZGM0ZTk0MGI3NGUzYWMxZjFiMTMiXSxbImM1MzNlNGY3ZWE4NTU1YWFjZDk3''@;'; + put 'put ''NzdhYzVjYWQyOWI5N2RkNGRlZmNjYzUzZWU3ZWEyMDQxMTliMjg4OWIxOTciLCI2ZjBhMjU2YmM1ZWZkZjQyOWEyZmI2MjQyZjFhNDNhMmQ5YjkyNWJiNGE0YjNhMjZiYjhlMGY0NWViNTk2MDk2Il0sWyJjMTRmOGYyY2NiMjdkNmYxMDlmNmQwOGQwM2NjOTZhNjliYThjMzRlZWMwN2JiY2Y1''@;'; + put 'put ''NjZkNDhlMzNkYTY1OTMiLCJjMzU5ZDY5MjNiYjM5OGY3ZmQ0NDczZTE2ZmUxYzI4NDc1Yjc0MGRkMDk4MDc1ZTZjMGU4NjQ5MTEzZGMzYTM4Il0sWyJhNmNiYzMwNDZiYzZhNDUwYmFjMjQ3ODlmYTE3MTE1YTRjOTczOWVkNzVmOGYyMWNlNDQxZjcyZTBiOTBlNmVmIiwiMjFhZTdmNDY4MGU4''@;'; + put 'put ''ODliYjEzMDYxOWUyYzBmOTVhMzYwY2ViNTczYzcwNjAzMTM5ODYyYWZkNjE3ZmE5YjlmIl0sWyIzNDdkNmQ5YTAyYzQ4OTI3ZWJmYjg2YzEzNTliMWNhZjEzMGEzYzAyNjdkMTFjZTYzNDRiMzlmOTlkNDNjYzM4IiwiNjBlYTdmNjFhMzUzNTI0ZDFjOTg3ZjZlY2VjOTJmMDg2ZDU2NWFiNjg3''@;'; + put 'put ''ODcwY2IxMjY4OWZmMWUzMWM3NDQ0OCJdLFsiZGE2NTQ1ZDIxODFkYjhkOTgzZjdkY2IzNzVlZjU4NjZkNDdjNjdiMWJmMzFjOGNmODU1ZWY3NDM3YjcyNjU2YSIsIjQ5Yjk2NzE1YWI2ODc4YTc5ZTc4ZjA3Y2U1NjgwYzVkNjY3MzA1MWI0OTM1YmQ4OTdmZWE4MjRiNzdkYzIwOGEiXSxbImM0''@;'; + put 'put ''MDc0N2NjOWQwMTJjYjFhMTNiODE0ODMwOWM2ZGU3ZWMyNWQ2OTQ1ZDY1NzE0NmI5ZDU5OTRiOGZlYjExMTEiLCI1Y2E1NjA3NTNiZTJhMTJmYzZkZTZjYWYyY2I0ODk1NjVkYjkzNjE1NmI5NTE0ZTFiYjVlODMwMzdlMGZhMmQ0Il0sWyI0ZTQyYzhlYzgyYzk5Nzk4Y2NmM2E2MTBiZTg3MGU3''@;'; + put 'put ''ODMzOGM3ZjcxMzM0OGJkMzRjODIwM2VmNDAzN2YzNTAyIiwiNzU3MWQ3NGVlNWUwZmI5MmE3YThiMzNhMDc3ODMzNDFhNTQ5MjE0NGNjNTRiY2M0MGE5NDQ3MzY5MzYwNjQzNyJdLFsiMzc3NWFiNzA4OWJjNmFmODIzYWJhMmUxYWY3MGIyMzZkMjUxY2FkYjBjODY3NDMyODc1MjJhMWIzYjBk''@;'; + put 'put ''ZWRlYSIsImJlNTJkMTA3YmNmYTA5ZDhiY2I5NzM2YTgyOGNmYTdmYWM4ZGIxN2JmN2E3NmEyYzQyYWQ5NjE0MDkwMThjZjciXSxbImNlZTMxY2JmN2UzNGVjMzc5ZDk0ZmI4MTRkM2Q3NzVhZDk1NDU5NWQxMzE0YmE4ODQ2OTU5ZTNlODJmNzRlMjYiLCI4ZmQ2NGExNGMwNmI1ODljMjZiOTQ3''@;'; + put 'put ''YWUyYmNmNmJmYTAxNDllZjBiZTE0ZWQ0ZDgwZjQ0OGEwMWM0M2IxYzZkIl0sWyJiNGY5ZWFlYTA5YjY5MTc2MTlmNmVhNmE0ZWI1NDY0ZWZkZGI1OGZkNDViMWViZWZjZGMxYTAxZDA4YjQ3OTg2IiwiMzllNWM5OTI1YjVhNTRiMDc0MzNhNGYxOGM2MTcyNmY4YmIxMzFjMDEyY2E1NDJlYjI0''@;'; + put 'put ''YThhYzA3MjAwNjgyYSJdLFsiZDQyNjNkZmMzZDJkZjkyM2EwMTc5YTQ4OTY2ZDMwY2U4NGUyNTE1YWZjM2RjY2MxYjc3OTA3NzkyZWJjYzYwZSIsIjYyZGZhZjA3YTBmNzhmZWIzMGUzMGQ2Mjk1ODUzY2UxODllMTI3NzYwYWQ2Y2Y3ZmFlMTY0ZTEyMmEyMDhkNTQiXSxbIjQ4NDU3NTI0ODIw''@;'; + put 'put ''ZmE2NWE0ZjhkMzVlYjY5MzA4NTdjMDAzMmFjYzBhNGEyZGU0MjIyMzNlZWRhODk3NjEyYzQiLCIyNWE3NDhhYjM2Nzk3OWQ5ODczM2MzOGExZmExYzJlN2RjNmNjMDdkYjJkNjBhOWFlN2E3NmFhYTQ5YmQwZjc3Il0sWyJkZmVlZWYxODgxMTAxZjJjYjExNjQ0ZjNhMmFmZGZjMjA0NWUxOTkx''@;'; + put 'put ''OTE1MjkyM2YzNjdhMTc2N2MxMWNjZWRhIiwiZWNmYjcwNTZjZjFkZTA0MmY5NDIwYmFiMzk2NzkzYzBjMzkwYmRlNzRiNGJiZGZmMTZhODNhZTA5YTlhNzUxNyJdLFsiNmQ3ZWY2YjE3NTQzZjgzNzNjNTczZjQ0ZTFmMzg5ODM1ZDg5YmNiYzYwNjJjZWQzNmM4MmRmODNiOGZhZTg1OSIsImNk''@;'; + put 'put ''NDUwZWMzMzU0Mzg5ODZkZmVmYTEwYzU3ZmVhOWJjYzUyMWEwOTU5YjJkODBiYmY3NGIxOTBkY2E3MTJkMTAiXSxbImU3NTYwNWQ1OTEwMmE1YTI2ODQ1MDBkM2I5OTFmMmUzZjNjODhiOTMyMjU1NDcwMzVhZjI1YWY2NmUwNDU0MWYiLCJmNWM1NDc1NGE4ZjcxZWU1NDBiOWI0ODcyODQ3M2Uz''@;'; + put 'put ''MTRmNzI5YWM1MzA4YjA2OTM4MzYwOTkwZTJiZmFkMTI1Il0sWyJlYjk4NjYwZjRjNGRmYWEwNmEyYmU0NTNkNTAyMGJjOTlhMGMyZTYwYWJlMzg4NDU3ZGQ0M2ZlZmIxZWQ2MjBjIiwiNmNiOWE4ODc2ZDljYjg1MjA2MDlhZjNhZGQyNmNkMjBhMGE3Y2Q4YTk0MTExMzFjZTg1ZjQ0MTAwMDk5''@;'; + put 'put ''MjIzZSJdLFsiMTNlODdiMDI3ZDg1MTRkMzU5MzlmMmU2ODkyYjE5OTIyMTU0NTk2OTQxODg4MzM2ZGMzNTYzZTNiOGRiYTk0MiIsImZlZjVhM2M2ODA1OWE2ZGVjNWQ2MjQxMTRiZjFlOTFhYWMyYjlkYTU2OGQ2YWJlYjI1NzBkNTU2NDZiOGFkZjEiXSxbImVlMTYzMDI2ZTlmZDZmZTAxN2Mz''@;'; + put 'put ''OGYwNmE1YmU2ZmMxMjU0MjRiMzcxY2UyNzA4ZTdiZjQ0OTE2OTFlNTc2NGEiLCIxYWNiMjUwZjI1NWRkNjFjNDNkOTRjY2M2NzBkMGY1OGY0OWFlM2ZhMTViOTY2MjNlNTQzMGRhMGFkNmM2MmIyIl0sWyJiMjY4ZjVlZjlhZDUxZTRkNzhkZTNhNzUwYzJkYzg5YjFlNjI2ZDQzNTA1ODY3OTk5''@;'; + put 'put ''OTMyZTVkYjMzYWYzZDgwIiwiNWYzMTBkNGIzYzk5YjllYmIxOWY3N2Q0MWMxZGVlMDE4Y2YwZDM0ZmQ0MTkxNjE0MDAzZTk0NWExMjE2ZTQyMyJdLFsiZmYwN2YzMTE4YTlkZjAzNWU5ZmFkODVlYjZjN2JmZTQyYjAyZjAxY2E5OWNlZWEzYmY3ZmZkYmE5M2M0NzUwZCIsIjQzODEzNmQ2MDNl''@;'; + put 'put ''ODU4YTNhNWM0NDBjMzhlY2NiYWRkYzFkMjk0MjExNGUyZWRkZDQ3NDBkMDk4Y2VkMWYwZDgiXSxbIjhkOGI5ODU1YzdjMDUyYTM0MTQ2ZmQyMGZmYjY1OGJlYTRiOWY2OWUwZDgyNWViZWMxNmU4YzNjZTJiNTI2YTEiLCJjZGI1NTllZWRjMmQ3OWY5MjZiYWY0NGZiODRlYTRkNDRiY2Y1MGZl''@;'; + put 'put ''ZTUxZDdjZWIzMGUyZTdmNDYzMDM2NzU4Il0sWyI1MmRiMGI1Mzg0ZGZiZjA1YmZhOWQ0NzJkN2FlMjZkZmU0Yjg1MWNlY2E5MWIxZWJhNTQyNjMxODBkYTMyYjYzIiwiYzNiOTk3ZDA1MGVlNWQ0MjNlYmFmNjZhNmRiOWY1N2IzMTgwYzkwMjg3NTY3OWRlOTI0YjY5ZDg0YTdiMzc1Il0sWyJl''@;'; + put 'put ''NjJmOTQ5MGQzZDUxZGE2Mzk1ZWZkMjRlODA5MTljYzdkMGYyOWMzZjNmYTQ4YzZmZmY1NDNiZWNiZDQzMzUyIiwiNmQ4OWFkN2JhNDg3NmIwYjIyYzJjYTI4MGM2ODI4NjJmMzQyYzg1OTFmMWRhZjUxNzBlMDdiZmQ5Y2NhZmE3ZCJdLFsiN2YzMGVhMjQ3NmIzOTliNDk1NzUwOWM4OGY3N2Qw''@;'; + put 'put ''MTkxYWZhMmZmNWNiN2IxNGZkNmQ4ZTdkNjVhYWFiMTE5MyIsImNhNWVmN2Q0YjIzMWM5NGMzYjE1Mzg5YTVmNjMxMWU5ZGFmZjdiYjY3YjEwM2U5ODgwZWY0YmZmNjM3YWNhZWMiXSxbIjUwOThmZjFlMWQ5ZjE0ZmI0NmEyMTBmYWRhNmM5MDNmZWYwZmI3YjRhMWRkMWQ5YWM2MGEwMzYxODAw''@;'; + put 'put ''YjdhMDAiLCI5NzMxMTQxZDgxZmM4ZjgwODRkMzdjNmU3NTQyMDA2YjNlZTFiNDBkNjBkZmU1MzYyYTViMTMyZmQxN2RkYzAiXSxbIjMyYjc4YzdkZTllZTUxMmE3Mjg5NWJlNmI5Y2JlZmE2ZTJmM2M0Y2NjZTQ0NWM5NmI5ZjJjODFlMjc3OGFkNTgiLCJlZTE4NDlmNTEzZGY3MWUzMmVmYzM4''@;'; + put 'put ''OTZlZTI4MjYwYzczYmI4MDU0N2FlMjI3NWJhNDk3MjM3Nzk0Yzg3NTNjIl0sWyJlMmNiNzRmZGRjOGU5ZmJjZDA3NmVlZjJhN2M3MmIwY2UzN2Q1MGYwODI2OWRmYzA3NGI1ODE1NTA1NDdhNGY3IiwiZDNhYTJlZDcxYzlkZDIyNDdhNjJkZjA2MjczNmViMGJhZGRlYTllMzYxMjJkMmJlODY0''@;'; + put 'put ''MWFiY2IwMDVjYzRhNCJdLFsiODQzODQ0NzU2NmQ0ZDdiZWRhZGMyOTk0OTZhYjM1NzQyNjAwOWEzNWYyMzVjYjE0MWJlMGQ5OWNkMTBhZTNhOCIsImM0ZTEwMjA5MTY5ODBhNGRhNWQwMWFjNWU2YWQzMzA3MzRlZjBkNzkwNjYzMWM0ZjIzOTA0MjZiMmVkZDc5MWYiXSxbIjQxNjJkNDg4Yjg5''@;'; + put 'put ''NDAyMDM5YjU4NGM2ZmM2YzMwODg3MDU4N2Q5YzQ2ZjY2MGI4NzhhYjY1YzgyYzcxMWQ2N2UiLCI2NzE2M2U5MDMyMzYyODlmNzc2ZjIyYzI1ZmI4YTNhZmMxNzMyZjJiODRiNGU5NWRiZGE0N2FlNWEwODUyNjQ5Il0sWyIzZmFkM2ZhODRjYWYwZjM0ZjBmODliZmQyZGNmNTRmYzE3NWQ3Njdh''@;'; + put 'put ''ZWMzZTUwNjg0ZjNiYTRhNGJmNWY2ODNkIiwiY2QxYmM3Y2I2Y2M0MDdiYjJmMGNhNjQ3YzcxOGE3MzBjZjcxODcyZTdkMGQyYTUzZmEyMGVmY2RmZTYxODI2Il0sWyI2NzRmMjYwMGEzMDA3YTAwNTY4YzFhN2NlMDVkMDgxNmMxZmI4NGJmMTM3MDc5OGYxYzY5NTMyZmFlYjFhODZiIiwiMjk5''@;'; + put 'put ''ZDIxZjk0MTNmMzNiM2VkZjQzYjI1NzAwNDU4MGI3MGRiNTdkYTBiMTgyMjU5ZTA5ZWVjYzY5ZTBkMzhhNSJdLFsiZDMyZjRkYTU0YWRlNzRhYmI4MWI4MTVhZDFmYjNiMjYzZDgyZDZjNjkyNzE0YmNmZjg3ZDI5YmQ1ZWU5ZjA4ZiIsImY5NDI5ZTczOGI4ZTUzYjk2OGU5OTAxNmMwNTk3MDc3''@;'; + put 'put ''ODJlMTRmNDUzNTM1OWQ1ODJmYzQxNjkxMGIzZWVhODciXSxbIjMwZTRlNjcwNDM1Mzg1NTU2ZTU5MzY1NzEzNTg0NWQzNmZiYjY5MzFmNzJiMDhjYjFlZDk1NGYxZTNjZTNmZjYiLCI0NjJmOWJjZTYxOTg5ODYzODQ5OTM1MDExM2JiYzliMTBhODc4ZDM1ZGE3MDc0MGRjNjk1YTU1OWViODhk''@;'; + put 'put ''YjdiIl0sWyJiZTIwNjIwMDNjNTFjYzMwMDQ2ODI5MDQzMzBlNGRlZTdmM2RjZDEwYjAxZTU4MGJmMTk3MWIwNGQ0Y2FkMjk3IiwiNjIxODhiYzQ5ZDYxZTU0Mjg1NzNkNDhhNzRlMWM2NTViMWM2MTA5MDkwNTY4MmEwZDU1NThlZDcyZGNjYjliYyJdLFsiOTMxNDQ0MjNhY2UzNDUxZWQyOWUw''@;'; + put 'put ''ZmI5YWMyYWYyMTFjYjZlODRhNjAxZGY1OTkzYzQxOTg1OWZmZjVkZjA0YSIsIjdjMTBkZmIxNjRjMzQyNWY1YzcxYTNmOWQ3OTkyMDM4ZjEwNjUyMjRmNzJiYjlkMWQ5MDJhNmQxMzAzN2I0N2MiXSxbImIwMTVmODA0NGY1ZmNiZGNmMjFjYTI2ZDZjMzRmYjgxOTc4MjkyMDVjN2I3ZDJhN2Ni''@;'; + put 'put ''NjY0MThjMTU3YjExMmMiLCJhYjhjMWUwODZkMDRlODEzNzQ0YTY1NWIyZGY4ZDVmODNiM2NkYzZmYWEzMDg4YzFkM2FlYTE0NTRlM2ExZDVmIl0sWyJkNWU5ZTFkYTY0OWQ5N2Q4OWU0ODY4MTE3YTQ2NWEzYTRmOGExOGRlNTdhMTQwZDM2YjNmMmFmMzQxYTIxYjUyIiwiNGNiMDQ0MzdmMzkx''@;'; + put 'put ''ZWQ3MzExMWExM2NjMWQ0ZGQwZGIxNjkzNDY1YzIyNDA0ODBkODk1NWU4NTkyZjI3NDQ3YSJdLFsiZDNhZTQxMDQ3ZGQ3Y2EwNjVkYmY4ZWQ3N2I5OTI0Mzk5ODMwMDVjZDcyZTE2ZDZmOTk2YTUzMTZkMzY5NjZiYiIsImJkMWFlYjIxYWQyMmViYjIyYTEwZjAzMDM0MTdjNmQ5NjRmOGNkZDdk''@;'; + put 'put ''ZjBhY2E2MTRiMTBkYzE0ZDEyNWFjNDYiXSxbIjQ2M2UyNzYzZDg4NWY5NThmYzY2Y2RkMjI4MDBmMGE0ODcxOTdkMGE4MmUzNzdiNDlmODBhZjg3Yzg5N2IwNjUiLCJiZmVmYWNkYjBlNWQwZmQ3ZGYzYTMxMWE5NGRlMDYyYjI2YjgwYzYxZmJjOTc1MDhiNzk5OTI2NzFlZjdjYTdmIl0sWyI3''@;'; + put 'put ''OTg1ZmRmZDEyN2MwNTY3YzZmNTNlYzFiYjYzZWMzMTU4ZTU5N2M0MGJmZTc0N2M4M2NkZGZjOTEwNjQxOTE3IiwiNjAzYzEyZGFmM2Q5ODYyZWYyYjI1ZmUxZGUyODlhZWQyNGVkMjkxZTBlYzY3MDg3MDNhNWJkNTY3ZjMyZWQwMyJdLFsiNzRhMWFkNmI1Zjc2ZTM5ZGIyZGQyNDk0MTBlYWM3''@;'; + put 'put ''Zjk5ZTc0YzU5Y2I4M2QyZDBlZDVmZjE1NDNkYTc3MDNlOSIsImNjNjE1N2VmMThjOWM2M2NkNjE5M2Q4MzYzMWJiZWEwMDkzZTA5Njg5NDJlOGMzM2Q1NzM3ZmQ3OTBlMGRiMDgiXSxbIjMwNjgyYTUwNzAzMzc1ZjYwMmQ0MTY2NjRiYTE5YjdmYzliYWI0MmM3Mjc0NzQ2M2E3MWQwODk2YjIy''@;'; + put 'put ''ZjZkYTMiLCI1NTNlMDRmNmIwMThiNGZhNmM4ZjM5ZTdmMzExZDMxNzYyOTBkMGUwZjE5Y2E3M2YxNzcxNGQ5OTc3YTIyZmY4Il0sWyI5ZTIxNThmMGQ3YzBkNWYyNmMzNzkxZWZlZmE3OTU5NzY1NGU3YTJiMjQ2NGY1MmIxZWU2YzEzNDc3NjllZjU3IiwiNzEyZmNkZDFiOTA1M2YwOTAwM2Ez''@;'; + put 'put ''NDgxZmE3NzYyZTlmZmQ3YzhlZjM1YTM4NTA5ZTJmYmYyNjI5MDA4MzczIl0sWyIxNzZlMjY5ODlhNDNjOWNmZWJhNDAyOWMyMDI1MzhjMjgxNzJlNTY2ZTNjNGZjZTczMjI4NTdmM2JlMzI3ZDY2IiwiZWQ4Y2M5ZDA0YjI5ZWI4NzdkMjcwYjQ4NzhkYzQzYzE5YWVmZDMxZjRlZWUwOWVlN2I0''@;'; + put 'put ''NzgzNGMxZmE0YjFjMyJdLFsiNzVkNDZlZmVhMzc3MWU2ZTY4YWJiODlhMTNhZDc0N2VjZjE4OTIzOTNkZmM0ZjFiNzAwNDc4OGM1MDM3NGRhOCIsIjk4NTIzOTBhOTk1MDc2NzlmZDBiODZmZDJiMzlhODY4ZDdlZmMyMjE1MTM0NmUxYTNjYTQ3MjY1ODZhNmJlZDgiXSxbIjgwOWEyMGM2N2Q2''@;'; + put 'put ''NDkwMGZmYjY5OGM0YzgyNWY2ZDVmMjMxMGZiMDQ1MWM4NjkzNDViNzMxOWY2NDU2MDU3MjEiLCI5ZTk5NDk4MGQ5OTE3ZTIyYjc2YjA2MTkyN2ZhMDQxNDNkMDk2Y2NjNTQ5NjNlNmE1ZWJmYTVmM2Y4ZTI4NmMxIl0sWyIxYjM4OTAzYTQzZjdmMTE0ZWQ0NTAwYjRlYWM3MDgzZmRlZmVjZTFj''@;'; + put 'put ''ZjI5YzYzNTI4ZDU2MzQ0NmY5NzJjMTgwIiwiNDAzNmVkYzkzMWE2MGFlODg5MzUzZjc3ZmQ1M2RlNGEyNzA4YjI2YjZmNWRhNzJhZDMzOTQxMTlkYWY0MDhmOSJdXX19fSw2MTk3MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUplLEI9TCgxNzQzMyksRT1MKDMyMzkxKSxNZT1M''@;'; + put 'put ''KDU4MTk1KTttZS5hc3NlcnQ9RSxtZS50b0FycmF5PU1lLnRvQXJyYXksbWUuemVybzI9TWUuemVybzIsbWUudG9IZXg9TWUudG9IZXgsbWUuZW5jb2RlPU1lLmVuY29kZSxtZS5nZXROQUY9ZnVuY3Rpb24gVShZLFcsTil7dmFyIGVlPW5ldyBBcnJheShNYXRoLm1heChZLmJpdExlbmd0aCgp''@;'; + put 'put ''LE4pKzEpO2VlLmZpbGwoMCk7Zm9yKHZhciBxPTE8PFcrMSxKPVkuY2xvbmUoKSxzZT0wO3NlPGVlLmxlbmd0aDtzZSsrKXt2YXIgb2UsY2U9Si5hbmRsbihxLTEpO0ouaXNPZGQoKT9KLmlzdWJuKG9lPWNlPihxPj4xKS0xPyhxPj4xKS1jZTpjZSk6b2U9MCxlZVtzZV09b2UsSi5pdXNocm4o''@;'; + put 'put ''MSl9cmV0dXJuIGVlfSxtZS5nZXRKU0Y9ZnVuY3Rpb24gUShZLFcpe3ZhciBOPVtbXSxbXV07WT1ZLmNsb25lKCksVz1XLmNsb25lKCk7Zm9yKHZhciBKLGVlPTAscT0wO1kuY21wbigtZWUpPjB8fFcuY21wbigtcSk+MDspe3ZhciBjZSxkZSxzZT1ZLmFuZGxuKDMpK2VlJjMsb2U9Vy5hbmRs''@;'; + put 'put ''bigzKStxJjM7Mz09PXNlJiYoc2U9LTEpLDM9PT1vZSYmKG9lPS0xKSxjZT0wPT0oMSZzZSk/MDozIT0oSj1ZLmFuZGxuKDcpK2VlJjcpJiY1IT09Snx8MiE9PW9lP3NlOi1zZSxOWzBdLnB1c2goY2UpLGRlPTA9PSgxJm9lKT8wOjMhPShKPVcuYW5kbG4oNykrcSY3KSYmNSE9PUp8fDIhPT1z''@;'; + put 'put ''ZT9vZTotb2UsTlsxXS5wdXNoKGRlKSwyKmVlPT09Y2UrMSYmKGVlPTEtZWUpLDIqcT09PWRlKzEmJihxPTEtcSksWS5pdXNocm4oMSksVy5pdXNocm4oMSl9cmV0dXJuIE59LG1lLmNhY2hlZFByb3BlcnR5PWZ1bmN0aW9uIFooWSxXLE4pe3ZhciBlZT0iXyIrVztZLnByb3RvdHlwZVtXXT1m''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzW2VlXT90aGlzW2VlXTp0aGlzW2VlXT1OLmNhbGwodGhpcyl9fSxtZS5wYXJzZUJ5dGVzPWZ1bmN0aW9uIGllKFkpe3JldHVybiJzdHJpbmciPT10eXBlb2YgWT9tZS50b0FycmF5KFksImhleCIpOll9LG1lLmludEZyb21MRT1mdW5jdGlv''@;'; + put 'put ''biBsZShZKXtyZXR1cm4gbmV3IEIoWSwiaGV4IiwibGUiKX19LDE3NDMzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSxCKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShoZSxPKXtpZighaGUpdGhyb3cgbmV3IEVycm9yKE98fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gTWUo''@;'; + put 'put ''aGUsTyl7aGUuc3VwZXJfPU87dmFyIHo9ZnVuY3Rpb24oKXt9O3oucHJvdG90eXBlPU8ucHJvdG90eXBlLGhlLnByb3RvdHlwZT1uZXcgeixoZS5wcm90b3R5cGUuY29uc3RydWN0b3I9aGV9ZnVuY3Rpb24gVShoZSxPLHope2lmKFUuaXNCTihoZSkpcmV0dXJuIGhlO3RoaXMubmVnYXRpdmU9''@;'; + put 'put ''MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT1oZSYmKCgibGUiPT09T3x8ImJlIj09PU8pJiYoej1PLE89MTApLHRoaXMuX2luaXQoaGV8fDAsT3x8MTAsenx8ImJlIikpfXZhciBROyJvYmplY3QiPT10eXBlb2YgbWU/bWUuZXhwb3J0cz1VOkIu''@;'; + put 'put ''Qk49VSxVLkJOPVUsVS53b3JkU2l6ZT0yNjt0cnl7UT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOkwoODU1NjgpLkJ1ZmZlcn1jYXRjaChoZSl7fWZ1bmN0aW9uIFooaGUsTyl7dmFyIHo9aGUuY2hhckNvZGVBdChPKTty''@;'; + put 'put ''ZXR1cm4gej49NjUmJno8PTcwP3otNTU6ej49OTcmJno8PTEwMj96LTg3OnotNDgmMTV9ZnVuY3Rpb24gaWUoaGUsTyx6KXt2YXIgbmU9WihoZSx6KTtyZXR1cm4gei0xPj1PJiYobmV8PVooaGUsei0xKTw8NCksbmV9ZnVuY3Rpb24gbGUoaGUsTyx6LG5lKXtmb3IodmFyIHRlPTAseD1NYXRo''@;'; + put 'put ''Lm1pbihoZS5sZW5ndGgseiksUD1PO1A8eDtQKyspe3ZhciBWPWhlLmNoYXJDb2RlQXQoUCktNDg7dGUqPW5lLHRlKz1WPj00OT9WLTQ5KzEwOlY+PTE3P1YtMTcrMTA6Vn1yZXR1cm4gdGV9VS5pc0JOPWZ1bmN0aW9uKE8pe3JldHVybiBPIGluc3RhbmNlb2YgVXx8bnVsbCE9PU8mJiJvYmpl''@;'; + put 'put ''Y3QiPT10eXBlb2YgTyYmTy5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PVUud29yZFNpemUmJkFycmF5LmlzQXJyYXkoTy53b3Jkcyl9LFUubWF4PWZ1bmN0aW9uKE8seil7cmV0dXJuIE8uY21wKHopPjA/Tzp6fSxVLm1pbj1mdW5jdGlvbihPLHope3JldHVybiBPLmNtcCh6KTwwP086en0sVS5w''@;'; + put 'put ''cm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oTyx6LG5lKXtpZigibnVtYmVyIj09dHlwZW9mIE8pcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoTyx6LG5lKTtpZigib2JqZWN0Ij09dHlwZW9mIE8pcmV0dXJuIHRoaXMuX2luaXRBcnJheShPLHosbmUpOyJoZXgiPT09eiYmKHo9MTYpLEUoej09PSgw''@;'; + put 'put ''fHopJiZ6Pj0yJiZ6PD0zNik7dmFyIHRlPTA7Ii0iPT09KE89Ty50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJih0ZSsrLHRoaXMubmVnYXRpdmU9MSksdGU8Ty5sZW5ndGgmJigxNj09PXo/dGhpcy5fcGFyc2VIZXgoTyx0ZSxuZSk6KHRoaXMuX3BhcnNlQmFzZShPLHosdGUp''@;'; + put 'put ''LCJsZSI9PT1uZSYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHosbmUpKSl9LFUucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKE8seixuZSl7TzwwJiYodGhpcy5uZWdhdGl2ZT0xLE89LU8pLE88NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJk9dLHRoaXMubGVu''@;'; + put 'put ''Z3RoPTEpOk88NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmTyxPLzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKTooRShPPDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJk8sTy82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0''@;'; + put 'put ''aD0zKSwibGUiPT09bmUmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx6LG5lKX0sVS5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbihPLHosbmUpe2lmKEUoIm51bWJlciI9PXR5cGVvZiBPLmxlbmd0aCksTy5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMu''@;'; + put 'put ''bGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoTy5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgdGU9MDt0ZTx0aGlzLmxlbmd0aDt0ZSsrKXRoaXMud29yZHNbdGVdPTA7dmFyIHgsUCxWPTA7aWYoImJlIj09PW5lKWZvcih0ZT1P''@;'; + put 'put ''Lmxlbmd0aC0xLHg9MDt0ZT49MDt0ZS09Myl0aGlzLndvcmRzW3hdfD0oUD1PW3RlXXxPW3RlLTFdPDw4fE9bdGUtMl08PDE2KTw8ViY2NzEwODg2Myx0aGlzLndvcmRzW3grMV09UD4+PjI2LVYmNjcxMDg4NjMsKFYrPTI0KT49MjYmJihWLT0yNix4KyspO2Vsc2UgaWYoImxlIj09PW5lKWZv''@;'; + put 'put ''cih0ZT0wLHg9MDt0ZTxPLmxlbmd0aDt0ZSs9Myl0aGlzLndvcmRzW3hdfD0oUD1PW3RlXXxPW3RlKzFdPDw4fE9bdGUrMl08PDE2KTw8ViY2NzEwODg2Myx0aGlzLndvcmRzW3grMV09UD4+PjI2LVYmNjcxMDg4NjMsKFYrPTI0KT49MjYmJihWLT0yNix4KyspO3JldHVybiB0aGlzLnN0cmlw''@;'; + put 'put ''KCl9LFUucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbihPLHosbmUpe3RoaXMubGVuZ3RoPU1hdGguY2VpbCgoTy5sZW5ndGgteikvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgdGU9MDt0ZTx0aGlzLmxlbmd0aDt0ZSsrKXRoaXMud29yZHNbdGVdPTA7''@;'; + put 'put ''dmFyIFYseD0wLFA9MDtpZigiYmUiPT09bmUpZm9yKHRlPU8ubGVuZ3RoLTE7dGU+PXo7dGUtPTIpVj1pZShPLHosdGUpPDx4LHRoaXMud29yZHNbUF18PTY3MTA4ODYzJlYseD49MTg/KHgtPTE4LHRoaXMud29yZHNbUCs9MV18PVY+Pj4yNik6eCs9ODtlbHNlIGZvcih0ZT0oTy5sZW5ndGgt''@;'; + put 'put ''eiklMj09MD96KzE6ejt0ZTxPLmxlbmd0aDt0ZSs9MilWPWllKE8seix0ZSk8PHgsdGhpcy53b3Jkc1tQXXw9NjcxMDg4NjMmVix4Pj0xOD8oeC09MTgsdGhpcy53b3Jkc1tQKz0xXXw9Vj4+PjI2KTp4Kz04O3RoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihP''@;'; + put 'put ''LHosbmUpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciB0ZT0wLHg9MTt4PD02NzEwODg2Mzt4Kj16KXRlKys7dGUtLSx4PXgvenwwO2Zvcih2YXIgUD1PLmxlbmd0aC1uZSxWPVAldGUsVD1NYXRoLm1pbihQLFAtVikrbmUsUz0wLEY9bmU7RjxUO0YrPXRlKVM9bGUoTyxG''@;'; + put 'put ''LEYrdGUseiksdGhpcy5pbXVsbih4KSx0aGlzLndvcmRzWzBdK1M8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9Uzp0aGlzLl9pYWRkbihTKTtpZigwIT09Vil7dmFyIHllPTE7Zm9yKFM9bGUoTyxGLE8ubGVuZ3RoLHopLEY9MDtGPFY7RisrKXllKj16O3RoaXMuaW11bG4oeWUpLHRoaXMud29y''@;'; + put 'put ''ZHNbMF0rUzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1TOnRoaXMuX2lhZGRuKFMpfXRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuY29weT1mdW5jdGlvbihPKXtPLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB6PTA7ejx0aGlzLmxlbmd0aDt6KyspTy53b3Jkc1t6XT10''@;'; + put 'put ''aGlzLndvcmRzW3pdO08ubGVuZ3RoPXRoaXMubGVuZ3RoLE8ubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSxPLnJlZD10aGlzLnJlZH0sVS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgTz1uZXcgVShudWxsKTtyZXR1cm4gdGhpcy5jb3B5KE8pLE99LFUucHJvdG90eXBlLl9leHBhbmQ9''@;'; + put 'put ''ZnVuY3Rpb24oTyl7Zm9yKDt0aGlzLmxlbmd0aDxPOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgt''@;'; + put 'put ''LTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sVS5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LFUucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4o''@;'; + put 'put ''dGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIFk9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAw''@;'; + put 'put ''MDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAi''@;'; + put 'put ''LCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sVz1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3''@;'; + put 'put ''LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxOPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1''@;'; + put 'put ''MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0''@;'; + put 'put ''MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIHEoaGUsTyx6KXt6Lm5lZ2F0aXZlPU8ubmVnYXRpdmVeaGUubmVnYXRpdmU7dmFyIG5lPWhlLmxlbmd0aCtPLmxlbmd0aHwwO3oubGVuZ3RoPW5lLG5lPW5lLTF8MDt2YXIgdGU9MHxoZS53b3Jkc1swXSx4PTB8Ty53b3Jkc1swXSxQ''@;'; + put 'put ''PXRlKngsVD1QLzY3MTA4ODY0fDA7ei53b3Jkc1swXT02NzEwODg2MyZQO2Zvcih2YXIgUz0xO1M8bmU7UysrKXtmb3IodmFyIEY9VD4+PjI2LHllPTY3MTA4ODYzJlQsQ2U9TWF0aC5taW4oUyxPLmxlbmd0aC0xKSxEZT1NYXRoLm1heCgwLFMtaGUubGVuZ3RoKzEpO0RlPD1DZTtEZSsrKUYr''@;'; + put 'put ''PShQPSh0ZT0wfGhlLndvcmRzW1MtRGV8MF0pKih4PTB8Ty53b3Jkc1tEZV0pK3llKS82NzEwODg2NHwwLHllPTY3MTA4ODYzJlA7ei53b3Jkc1tTXT0wfHllLFQ9MHxGfXJldHVybiAwIT09VD96LndvcmRzW1NdPTB8VDp6Lmxlbmd0aC0tLHouc3RyaXAoKX1VLnByb3RvdHlwZS50b1N0cmlu''@;'; + put 'put ''Zz1mdW5jdGlvbihPLHope3ZhciBuZTtpZih6PTB8enx8MSwxNj09PShPPU98fDEwKXx8ImhleCI9PT1PKXtuZT0iIjtmb3IodmFyIHRlPTAseD0wLFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9dGhpcy53b3Jkc1tQXSxUPSgxNjc3NzIxNSYoVjw8dGV8eCkpLnRvU3RyaW5nKDE2KTtu''@;'; + put 'put ''ZT0wIT0oeD1WPj4+MjQtdGUmMTY3NzcyMTUpfHxQIT09dGhpcy5sZW5ndGgtMT9ZWzYtVC5sZW5ndGhdK1QrbmU6VCtuZSwodGUrPTIpPj0yNiYmKHRlLT0yNixQLS0pfWZvcigwIT09eCYmKG5lPXgudG9TdHJpbmcoMTYpK25lKTtuZS5sZW5ndGgleiE9MDspbmU9IjAiK25lO3JldHVybiAw''@;'; + put 'put ''IT09dGhpcy5uZWdhdGl2ZSYmKG5lPSItIituZSksbmV9aWYoTz09PSgwfE8pJiZPPj0yJiZPPD0zNil7dmFyIFM9V1tPXSxGPU5bT107bmU9IiI7dmFyIHllPXRoaXMuY2xvbmUoKTtmb3IoeWUubmVnYXRpdmU9MDsheWUuaXNaZXJvKCk7KXt2YXIgQ2U9eWUubW9kbihGKS50b1N0cmluZyhP''@;'; + put 'put ''KTtuZT0oeWU9eWUuaWRpdm4oRikpLmlzWmVybygpP0NlK25lOllbUy1DZS5sZW5ndGhdK0NlK25lfWZvcih0aGlzLmlzWmVybygpJiYobmU9IjAiK25lKTtuZS5sZW5ndGgleiE9MDspbmU9IjAiK25lO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKG5lPSItIituZSksbmV9RSghMSwiQmFz''@;'; + put 'put ''ZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxVLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBPPXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9PKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNb''@;'; + put 'put ''Ml0/Tys9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJkUoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy1POk99LFUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sVS5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gRSh2b2lkIDAhPT1RKSx0aGlzLnRvQXJyYXlMaWtlKFEsTyx6KX0sVS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLnRvQXJyYXlMaWtl''@;'; + put 'put ''KEFycmF5LE8seil9LFUucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKE8seixuZSl7dmFyIHRlPXRoaXMuYnl0ZUxlbmd0aCgpLHg9bmV8fE1hdGgubWF4KDEsdGUpO0UodGU8PXgsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxFKHg+MCwiUmVxdWVzdGVk''@;'; + put 'put ''IGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBULFMsUD0ibGUiPT09eixWPW5ldyBPKHgpLEY9dGhpcy5jbG9uZSgpO2lmKFApe2ZvcihTPTA7IUYuaXNaZXJvKCk7UysrKVQ9Ri5hbmRsbigyNTUpLEYuaXVzaHJuKDgpLFZbU109VDtmb3IoO1M8eDtTKyspVltTXT0wfWVs''@;'; + put 'put ''c2V7Zm9yKFM9MDtTPHgtdGU7UysrKVZbU109MDtmb3IoUz0wOyFGLmlzWmVybygpO1MrKylUPUYuYW5kbG4oMjU1KSxGLml1c2hybig4KSxWW3gtUy0xXT1UfXJldHVybiBWfSxVLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oTyl7cmV0dXJuIDMyLU1hdGguY2x6''@;'; + put 'put ''MzIoTyl9OmZ1bmN0aW9uKE8pe3ZhciB6PU8sbmU9MDtyZXR1cm4gej49NDA5NiYmKG5lKz0xMyx6Pj4+PTEzKSx6Pj02NCYmKG5lKz03LHo+Pj49Nyksej49OCYmKG5lKz00LHo+Pj49NCksej49MiYmKG5lKz0yLHo+Pj49MiksbmUren0sVS5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9u''@;'; + put 'put ''KE8pe2lmKDA9PT1PKXJldHVybiAyNjt2YXIgej1PLG5lPTA7cmV0dXJuIDA9PSg4MTkxJnopJiYobmUrPTEzLHo+Pj49MTMpLDA9PSgxMjcmeikmJihuZSs9Nyx6Pj4+PTcpLDA9PSgxNSZ6KSYmKG5lKz00LHo+Pj49NCksMD09KDMmeikmJihuZSs9Mix6Pj4+PTIpLDA9PSgxJnopJiZuZSsr''@;'; + put 'put ''LG5lfSxVLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgej10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKSt6fSxVLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkp''@;'; + put 'put ''cmV0dXJuIDA7Zm9yKHZhciBPPTAsej0wO3o8dGhpcy5sZW5ndGg7eisrKXt2YXIgbmU9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1t6XSk7aWYoTys9bmUsMjYhPT1uZSlicmVha31yZXR1cm4gT30sVS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwo''@;'; + put 'put ''dGhpcy5iaXRMZW5ndGgoKS84KX0sVS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKE8pe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKE8pLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sVS5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''dGVzdG4oTy0xKT90aGlzLm5vdG4oTykuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sVS5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LFUucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxV''@;'; + put 'put ''LnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxVLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKE8pe2Zvcig7dGhpcy5sZW5ndGg8Ty5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFy''@;'; + put 'put ''IHo9MDt6PE8ubGVuZ3RoO3orKyl0aGlzLndvcmRzW3pdPXRoaXMud29yZHNbel18Ty53b3Jkc1t6XTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8Ty5uZWdhdGl2ZSkpLHRoaXMuaXVvcihPKX0sVS5w''@;'; + put 'put ''cm90b3R5cGUub3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoTyk6Ty5jbG9uZSgpLmlvcih0aGlzKX0sVS5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXVv''@;'; + put 'put ''cihPKTpPLmNsb25lKCkuaXVvcih0aGlzKX0sVS5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oTyl7dmFyIHo7ej10aGlzLmxlbmd0aD5PLmxlbmd0aD9POnRoaXM7Zm9yKHZhciBuZT0wO25lPHoubGVuZ3RoO25lKyspdGhpcy53b3Jkc1tuZV09dGhpcy53b3Jkc1tuZV0mTy53b3Jkc1tuZV07''@;'; + put 'put ''cmV0dXJuIHRoaXMubGVuZ3RoPXoubGVuZ3RoLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChPKX0sVS5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlz''@;'; + put 'put ''Lmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChPKTpPLmNsb25lKCkuaWFuZCh0aGlzKX0sVS5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKE8pOk8uY2xvbmUoKS5pdWFuZCh0aGlzKX0sVS5w''@;'; + put 'put ''cm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oTyl7dmFyIHosbmU7dGhpcy5sZW5ndGg+Ty5sZW5ndGg/KHo9dGhpcyxuZT1PKTooej1PLG5lPXRoaXMpO2Zvcih2YXIgdGU9MDt0ZTxuZS5sZW5ndGg7dGUrKyl0aGlzLndvcmRzW3RlXT16LndvcmRzW3RlXV5uZS53b3Jkc1t0ZV07aWYodGhpcyE9''@;'; + put 'put ''PXopZm9yKDt0ZTx6Lmxlbmd0aDt0ZSsrKXRoaXMud29yZHNbdGVdPXoud29yZHNbdGVdO3JldHVybiB0aGlzLmxlbmd0aD16Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8Ty5uZWdhdGl2ZSkpLHRo''@;'; + put 'put ''aXMuaXV4b3IoTyl9LFUucHJvdG90eXBlLnhvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoTyk6Ty5jbG9uZSgpLml4b3IodGhpcyl9LFUucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVu''@;'; + put 'put ''Z3RoP3RoaXMuY2xvbmUoKS5pdXhvcihPKTpPLmNsb25lKCkuaXV4b3IodGhpcyl9LFUucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej0wfE1hdGguY2VpbChPLzI2KSxuZT1PJTI2O3RoaXMuX2V4cGFuZCh6KSxuZT4wJiZ6LS07''@;'; + put 'put ''Zm9yKHZhciB0ZT0wO3RlPHo7dGUrKyl0aGlzLndvcmRzW3RlXT02NzEwODg2MyZ+dGhpcy53b3Jkc1t0ZV07cmV0dXJuIG5lPjAmJih0aGlzLndvcmRzW3RlXT1+dGhpcy53b3Jkc1t0ZV0mNjcxMDg4NjM+PjI2LW5lKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24o''@;'; + put 'put ''Tyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bihPKX0sVS5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbihPLHope0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgbmU9Ty8yNnwwLHRlPU8lMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChuZSsxKSx0aGlzLndvcmRzW25lXT16P3RoaXMud29y''@;'; + put 'put ''ZHNbbmVdfDE8PHRlOnRoaXMud29yZHNbbmVdJn4oMTw8dGUpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihPKXt2YXIgeixuZSx0ZTtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PU8ubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx6PXRoaXMuaXN1YihP''@;'; + put 'put ''KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1PLm5lZ2F0aXZlKXJldHVybiBPLm5lZ2F0aXZlPTAsej10aGlzLmlzdWIoTyksTy5uZWdhdGl2ZT0xLHouX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+Ty5sZW5ndGg/KG5lPXRoaXMs''@;'; + put 'put ''dGU9Tyk6KG5lPU8sdGU9dGhpcyk7Zm9yKHZhciB4PTAsUD0wO1A8dGUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPTY3MTA4ODYzJih6PSgwfG5lLndvcmRzW1BdKSsoMHx0ZS53b3Jkc1tQXSkreCkseD16Pj4+MjY7Zm9yKDswIT09eCYmUDxuZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09''@;'; + put 'put ''NjcxMDg4NjMmKHo9KDB8bmUud29yZHNbUF0pK3gpLHg9ej4+PjI2O2lmKHRoaXMubGVuZ3RoPW5lLmxlbmd0aCwwIT09eCl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT14LHRoaXMubGVuZ3RoKys7ZWxzZSBpZihuZSE9PXRoaXMpZm9yKDtQPG5lLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT1u''@;'; + put 'put ''ZS53b3Jkc1tQXTtyZXR1cm4gdGhpc30sVS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKE8pe3ZhciB6O3JldHVybiAwIT09Ty5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KE8ubmVnYXRpdmU9MCx6PXRoaXMuc3ViKE8pLE8ubmVnYXRpdmVePTEseik6MD09PU8ubmVnYXRpdmUmJjAhPT10''@;'; + put 'put ''aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAsej1PLnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEseik6dGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoTyk6Ty5jbG9uZSgpLmlhZGQodGhpcyl9LFUucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oTyl7aWYoMCE9PU8u''@;'; + put 'put ''bmVnYXRpdmUpe08ubmVnYXRpdmU9MDt2YXIgej10aGlzLmlhZGQoTyk7cmV0dXJuIE8ubmVnYXRpdmU9MSx6Ll9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigp''@;'; + put 'put ''O3ZhciB0ZSx4LG5lPXRoaXMuY21wKE8pO2lmKDA9PT1uZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7bmU+MD8odGU9dGhpcyx4PU8pOih0ZT1PLHg9dGhpcyk7Zm9yKHZhciBQPTAsVj0wO1Y8eC5sZW5ndGg7VisrKVA9KHo9KDB8''@;'; + put 'put ''dGUud29yZHNbVl0pLSgwfHgud29yZHNbVl0pK1ApPj4yNix0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJno7Zm9yKDswIT09UCYmVjx0ZS5sZW5ndGg7VisrKVA9KHo9KDB8dGUud29yZHNbVl0pK1ApPj4yNix0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJno7aWYoMD09PVAmJlY8dGUubGVuZ3RoJiZ0''@;'; + put 'put ''ZSE9PXRoaXMpZm9yKDtWPHRlLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT10ZS53b3Jkc1tWXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsViksdGUhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLnN1Yj1mdW5jdGlv''@;'; + put 'put ''bihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoTyl9O3ZhciBKPWZ1bmN0aW9uKE8seixuZSl7dmFyIFQsUyxGLHRlPU8ud29yZHMseD16LndvcmRzLFA9bmUud29yZHMsVj0wLHllPTB8dGVbMF0sQ2U9ODE5MSZ5ZSxEZT15ZT4+PjEzLFBlPTB8dGVbMV0sUWU9ODE5MSZQZSwkZT1QZT4+''@;'; + put 'put ''PjEzLGd0PTB8dGVbMl0sd3Q9ODE5MSZndCx2dD1ndD4+PjEzLEF0PTB8dGVbM10sbXQ9ODE5MSZBdCxodD1BdD4+PjEzLEJ0PTB8dGVbNF0sb249ODE5MSZCdCxfdD1CdD4+PjEzLHR0PTB8dGVbNV0sZXQ9ODE5MSZ0dCxhdD10dD4+PjEzLEx0PTB8dGVbNl0sQ3Q9ODE5MSZMdCxmdD1MdD4+''@;'; + put 'put ''PjEzLEh0PTB8dGVbN10sR2U9ODE5MSZIdCxVZT1IdD4+PjEzLHl0PTB8dGVbOF0sanQ9ODE5MSZ5dCxRdD15dD4+PjEzLGduPTB8dGVbOV0sZG49ODE5MSZnbix5bj1nbj4+PjEzLGxuPTB8eFswXSxObj04MTkxJmxuLGJuPWxuPj4+MTMsZXI9MHx4WzFdLHNyPTgxOTEmZXIsWG49ZXI+Pj4x''@;'; + put 'put ''MyxGcj0wfHhbMl0seHI9ODE5MSZGcixxdD1Gcj4+PjEzLHByPTB8eFszXSxucj04MTkxJnByLEFuPXByPj4+MTMscW49MHx4WzRdLFd0PTgxOTEmcW4scG49cW4+Pj4xMyxLbj0wfHhbNV0sTnQ9ODE5MSZLbixzbj1Lbj4+PjEzLFVuPTB8eFs2XSx3bj04MTkxJlVuLHRuPVVuPj4+MTMsem49''@;'; + put 'put ''MHx4WzddLFRyPTgxOTEmem4sQm49em4+Pj4xMyxrcj0wfHhbOF0sbW49ODE5MSZrcix1bj1rcj4+PjEzLGNuPTB8eFs5XSxfbj04MTkxJmNuLEd0PWNuPj4+MTM7bmUubmVnYXRpdmU9Ty5uZWdhdGl2ZV56Lm5lZ2F0aXZlLG5lLmxlbmd0aD0xOTt2YXIga249KFYrKFQ9TWF0aC5pbXVsKENl''@;'; + put 'put ''LE5uKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bChDZSxibikpK01hdGguaW11bChEZSxObil8MCkpPDwxMyl8MDtWPSgoRj1NYXRoLmltdWwoRGUsYm4pKSsoUz4+PjEzKXwwKSsoa24+Pj4yNil8MCxrbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwoUWUsTm4pLFM9KFM9TWF0aC5pbXVsKFFl''@;'; + put 'put ''LGJuKSkrTWF0aC5pbXVsKCRlLE5uKXwwLEY9TWF0aC5pbXVsKCRlLGJuKTt2YXIgVm49KFYrKFQ9VCtNYXRoLmltdWwoQ2Usc3IpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxYbil8MCkrTWF0aC5pbXVsKERlLHNyKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERl''@;'; + put 'put ''LFhuKXwwKSsoUz4+PjEzKXwwKSsoVm4+Pj4yNil8MCxWbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwod3QsTm4pLFM9KFM9TWF0aC5pbXVsKHd0LGJuKSkrTWF0aC5pbXVsKHZ0LE5uKXwwLEY9TWF0aC5pbXVsKHZ0LGJuKSxUPVQrTWF0aC5pbXVsKFFlLHNyKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''UWUsWG4pfDApK01hdGguaW11bCgkZSxzcil8MCxGPUYrTWF0aC5pbXVsKCRlLFhuKXwwO3ZhciBlbj0oVisoVD1UK01hdGguaW11bChDZSx4cil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHF0KXwwKStNYXRoLmltdWwoRGUseHIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRo''@;'; + put 'put ''LmltdWwoRGUscXQpfDApKyhTPj4+MTMpfDApKyhlbj4+PjI2KXwwLGVuJj02NzEwODg2MyxUPU1hdGguaW11bChtdCxObiksUz0oUz1NYXRoLmltdWwobXQsYm4pKStNYXRoLmltdWwoaHQsTm4pfDAsRj1NYXRoLmltdWwoaHQsYm4pLFQ9VCtNYXRoLmltdWwod3Qsc3IpfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bCh3dCxYbil8MCkrTWF0aC5pbXVsKHZ0LHNyKXwwLEY9RitNYXRoLmltdWwodnQsWG4pfDAsVD1UK01hdGguaW11bChRZSx4cil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHF0KXwwKStNYXRoLmltdWwoJGUseHIpfDAsRj1GK01hdGguaW11bCgkZSxxdCl8MDt2YXIgSW49KFYrKFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwoQ2UsbnIpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxBbil8MCkrTWF0aC5pbXVsKERlLG5yKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLEFuKXwwKSsoUz4+PjEzKXwwKSsoSW4+Pj4yNil8MCxJbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwo''@;'; + put 'put ''b24sTm4pLFM9KFM9TWF0aC5pbXVsKG9uLGJuKSkrTWF0aC5pbXVsKF90LE5uKXwwLEY9TWF0aC5pbXVsKF90LGJuKSxUPVQrTWF0aC5pbXVsKG10LHNyKXwwLFM9KFM9UytNYXRoLmltdWwobXQsWG4pfDApK01hdGguaW11bChodCxzcil8MCxGPUYrTWF0aC5pbXVsKGh0LFhuKXwwLFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwod3QseHIpfDAsUz0oUz1TK01hdGguaW11bCh3dCxxdCl8MCkrTWF0aC5pbXVsKHZ0LHhyKXwwLEY9RitNYXRoLmltdWwodnQscXQpfDAsVD1UK01hdGguaW11bChRZSxucil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLEFuKXwwKStNYXRoLmltdWwoJGUsbnIpfDAsRj1GK01hdGgu''@;'; + put 'put ''aW11bCgkZSxBbil8MDt2YXIgSm49KFYrKFQ9VCtNYXRoLmltdWwoQ2UsV3QpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxwbil8MCkrTWF0aC5pbXVsKERlLFd0KXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHBuKXwwKSsoUz4+PjEzKXwwKSsoSm4+Pj4yNil8''@;'; + put 'put ''MCxKbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZXQsTm4pLFM9KFM9TWF0aC5pbXVsKGV0LGJuKSkrTWF0aC5pbXVsKGF0LE5uKXwwLEY9TWF0aC5pbXVsKGF0LGJuKSxUPVQrTWF0aC5pbXVsKG9uLHNyKXwwLFM9KFM9UytNYXRoLmltdWwob24sWG4pfDApK01hdGguaW11bChfdCxzcil8MCxG''@;'; + put 'put ''PUYrTWF0aC5pbXVsKF90LFhuKXwwLFQ9VCtNYXRoLmltdWwobXQseHIpfDAsUz0oUz1TK01hdGguaW11bChtdCxxdCl8MCkrTWF0aC5pbXVsKGh0LHhyKXwwLEY9RitNYXRoLmltdWwoaHQscXQpfDAsVD1UK01hdGguaW11bCh3dCxucil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LEFuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwodnQsbnIpfDAsRj1GK01hdGguaW11bCh2dCxBbil8MCxUPVQrTWF0aC5pbXVsKFFlLFd0KXwwLFM9KFM9UytNYXRoLmltdWwoUWUscG4pfDApK01hdGguaW11bCgkZSxXdCl8MCxGPUYrTWF0aC5pbXVsKCRlLHBuKXwwO3ZhciBvcj0oVisoVD1UK01hdGguaW11bChDZSxOdCl8''@;'; + put 'put ''MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHNuKXwwKStNYXRoLmltdWwoRGUsTnQpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsc24pfDApKyhTPj4+MTMpfDApKyhvcj4+PjI2KXwwLG9yJj02NzEwODg2MyxUPU1hdGguaW11bChDdCxObiksUz0oUz1NYXRoLmlt''@;'; + put 'put ''dWwoQ3QsYm4pKStNYXRoLmltdWwoZnQsTm4pfDAsRj1NYXRoLmltdWwoZnQsYm4pLFQ9VCtNYXRoLmltdWwoZXQsc3IpfDAsUz0oUz1TK01hdGguaW11bChldCxYbil8MCkrTWF0aC5pbXVsKGF0LHNyKXwwLEY9RitNYXRoLmltdWwoYXQsWG4pfDAsVD1UK01hdGguaW11bChvbix4cil8MCxT''@;'; + put 'put ''PShTPVMrTWF0aC5pbXVsKG9uLHF0KXwwKStNYXRoLmltdWwoX3QseHIpfDAsRj1GK01hdGguaW11bChfdCxxdCl8MCxUPVQrTWF0aC5pbXVsKG10LG5yKXwwLFM9KFM9UytNYXRoLmltdWwobXQsQW4pfDApK01hdGguaW11bChodCxucil8MCxGPUYrTWF0aC5pbXVsKGh0LEFuKXwwLFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwod3QsV3QpfDAsUz0oUz1TK01hdGguaW11bCh3dCxwbil8MCkrTWF0aC5pbXVsKHZ0LFd0KXwwLEY9RitNYXRoLmltdWwodnQscG4pfDAsVD1UK01hdGguaW11bChRZSxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHNuKXwwKStNYXRoLmltdWwoJGUsTnQpfDAsRj1GK01hdGgu''@;'; + put 'put ''aW11bCgkZSxzbil8MDt2YXIgZ3I9KFYrKFQ9VCtNYXRoLmltdWwoQ2Usd24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSx0bil8MCkrTWF0aC5pbXVsKERlLHduKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHRuKXwwKSsoUz4+PjEzKXwwKSsoZ3I+Pj4yNil8''@;'; + put 'put ''MCxnciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoR2UsTm4pLFM9KFM9TWF0aC5pbXVsKEdlLGJuKSkrTWF0aC5pbXVsKFVlLE5uKXwwLEY9TWF0aC5pbXVsKFVlLGJuKSxUPVQrTWF0aC5pbXVsKEN0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsWG4pfDApK01hdGguaW11bChmdCxzcil8MCxG''@;'; + put 'put ''PUYrTWF0aC5pbXVsKGZ0LFhuKXwwLFQ9VCtNYXRoLmltdWwoZXQseHIpfDAsUz0oUz1TK01hdGguaW11bChldCxxdCl8MCkrTWF0aC5pbXVsKGF0LHhyKXwwLEY9RitNYXRoLmltdWwoYXQscXQpfDAsVD1UK01hdGguaW11bChvbixucil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLEFuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoX3QsbnIpfDAsRj1GK01hdGguaW11bChfdCxBbil8MCxUPVQrTWF0aC5pbXVsKG10LFd0KXwwLFM9KFM9UytNYXRoLmltdWwobXQscG4pfDApK01hdGguaW11bChodCxXdCl8MCxGPUYrTWF0aC5pbXVsKGh0LHBuKXwwLFQ9VCtNYXRoLmltdWwod3QsTnQpfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bCh3dCxzbil8MCkrTWF0aC5pbXVsKHZ0LE50KXwwLEY9RitNYXRoLmltdWwodnQsc24pfDAsVD1UK01hdGguaW11bChRZSx3bil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHRuKXwwKStNYXRoLmltdWwoJGUsd24pfDAsRj1GK01hdGguaW11bCgkZSx0bil8MDt2YXIgS3I9KFYrKFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwoQ2UsVHIpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxCbil8MCkrTWF0aC5pbXVsKERlLFRyKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLEJuKXwwKSsoUz4+PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMsVD1NYXRoLmltdWwo''@;'; + put 'put ''anQsTm4pLFM9KFM9TWF0aC5pbXVsKGp0LGJuKSkrTWF0aC5pbXVsKFF0LE5uKXwwLEY9TWF0aC5pbXVsKFF0LGJuKSxUPVQrTWF0aC5pbXVsKEdlLHNyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsWG4pfDApK01hdGguaW11bChVZSxzcil8MCxGPUYrTWF0aC5pbXVsKFVlLFhuKXwwLFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwoQ3QseHIpfDAsUz0oUz1TK01hdGguaW11bChDdCxxdCl8MCkrTWF0aC5pbXVsKGZ0LHhyKXwwLEY9RitNYXRoLmltdWwoZnQscXQpfDAsVD1UK01hdGguaW11bChldCxucil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LEFuKXwwKStNYXRoLmltdWwoYXQsbnIpfDAsRj1GK01hdGgu''@;'; + put 'put ''aW11bChhdCxBbil8MCxUPVQrTWF0aC5pbXVsKG9uLFd0KXwwLFM9KFM9UytNYXRoLmltdWwob24scG4pfDApK01hdGguaW11bChfdCxXdCl8MCxGPUYrTWF0aC5pbXVsKF90LHBuKXwwLFQ9VCtNYXRoLmltdWwobXQsTnQpfDAsUz0oUz1TK01hdGguaW11bChtdCxzbil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KGh0LE50KXwwLEY9RitNYXRoLmltdWwoaHQsc24pfDAsVD1UK01hdGguaW11bCh3dCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHRuKXwwKStNYXRoLmltdWwodnQsd24pfDAsRj1GK01hdGguaW11bCh2dCx0bil8MCxUPVQrTWF0aC5pbXVsKFFlLFRyKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''UWUsQm4pfDApK01hdGguaW11bCgkZSxUcil8MCxGPUYrTWF0aC5pbXVsKCRlLEJuKXwwO3ZhciBWcj0oVisoVD1UK01hdGguaW11bChDZSxtbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHVuKXwwKStNYXRoLmltdWwoRGUsbW4pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRo''@;'; + put 'put ''LmltdWwoRGUsdW4pfDApKyhTPj4+MTMpfDApKyhWcj4+PjI2KXwwLFZyJj02NzEwODg2MyxUPU1hdGguaW11bChkbixObiksUz0oUz1NYXRoLmltdWwoZG4sYm4pKStNYXRoLmltdWwoeW4sTm4pfDAsRj1NYXRoLmltdWwoeW4sYm4pLFQ9VCtNYXRoLmltdWwoanQsc3IpfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bChqdCxYbil8MCkrTWF0aC5pbXVsKFF0LHNyKXwwLEY9RitNYXRoLmltdWwoUXQsWG4pfDAsVD1UK01hdGguaW11bChHZSx4cil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHF0KXwwKStNYXRoLmltdWwoVWUseHIpfDAsRj1GK01hdGguaW11bChVZSxxdCl8MCxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KEN0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsQW4pfDApK01hdGguaW11bChmdCxucil8MCxGPUYrTWF0aC5pbXVsKGZ0LEFuKXwwLFQ9VCtNYXRoLmltdWwoZXQsV3QpfDAsUz0oUz1TK01hdGguaW11bChldCxwbil8MCkrTWF0aC5pbXVsKGF0LFd0KXwwLEY9RitNYXRoLmltdWwoYXQs''@;'; + put 'put ''cG4pfDAsVD1UK01hdGguaW11bChvbixOdCl8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHNuKXwwKStNYXRoLmltdWwoX3QsTnQpfDAsRj1GK01hdGguaW11bChfdCxzbil8MCxUPVQrTWF0aC5pbXVsKG10LHduKXwwLFM9KFM9UytNYXRoLmltdWwobXQsdG4pfDApK01hdGguaW11bChodCx3bil8''@;'; + put 'put ''MCxGPUYrTWF0aC5pbXVsKGh0LHRuKXwwLFQ9VCtNYXRoLmltdWwod3QsVHIpfDAsUz0oUz1TK01hdGguaW11bCh3dCxCbil8MCkrTWF0aC5pbXVsKHZ0LFRyKXwwLEY9RitNYXRoLmltdWwodnQsQm4pfDAsVD1UK01hdGguaW11bChRZSxtbil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHVuKXww''@;'; + put 'put ''KStNYXRoLmltdWwoJGUsbW4pfDAsRj1GK01hdGguaW11bCgkZSx1bil8MDt2YXIgaWk9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxHdCl8MCkrTWF0aC5pbXVsKERlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERl''@;'; + put 'put ''LEd0KXwwKSsoUz4+PjEzKXwwKSsoaWk+Pj4yNil8MCxpaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sc3IpLFM9KFM9TWF0aC5pbXVsKGRuLFhuKSkrTWF0aC5pbXVsKHluLHNyKXwwLEY9TWF0aC5pbXVsKHluLFhuKSxUPVQrTWF0aC5pbXVsKGp0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''anQscXQpfDApK01hdGguaW11bChRdCx4cil8MCxGPUYrTWF0aC5pbXVsKFF0LHF0KXwwLFQ9VCtNYXRoLmltdWwoR2UsbnIpfDAsUz0oUz1TK01hdGguaW11bChHZSxBbil8MCkrTWF0aC5pbXVsKFVlLG5yKXwwLEY9RitNYXRoLmltdWwoVWUsQW4pfDAsVD1UK01hdGguaW11bChDdCxXdCl8''@;'; + put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKEN0LHBuKXwwKStNYXRoLmltdWwoZnQsV3QpfDAsRj1GK01hdGguaW11bChmdCxwbil8MCxUPVQrTWF0aC5pbXVsKGV0LE50KXwwLFM9KFM9UytNYXRoLmltdWwoZXQsc24pfDApK01hdGguaW11bChhdCxOdCl8MCxGPUYrTWF0aC5pbXVsKGF0LHNuKXwwLFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwob24sd24pfDAsUz0oUz1TK01hdGguaW11bChvbix0bil8MCkrTWF0aC5pbXVsKF90LHduKXwwLEY9RitNYXRoLmltdWwoX3QsdG4pfDAsVD1UK01hdGguaW11bChtdCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKG10LEJuKXwwKStNYXRoLmltdWwoaHQsVHIpfDAsRj1GK01h''@;'; + put 'put ''dGguaW11bChodCxCbil8MCxUPVQrTWF0aC5pbXVsKHd0LG1uKXwwLFM9KFM9UytNYXRoLmltdWwod3QsdW4pfDApK01hdGguaW11bCh2dCxtbil8MCxGPUYrTWF0aC5pbXVsKHZ0LHVuKXwwO3ZhciBScj0oVisoVD1UK01hdGguaW11bChRZSxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0''@;'; + put 'put ''aC5pbXVsKFFlLEd0KXwwKStNYXRoLmltdWwoJGUsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoJGUsR3QpfDApKyhTPj4+MTMpfDApKyhScj4+PjI2KXwwLFJyJj02NzEwODg2MyxUPU1hdGguaW11bChkbix4ciksUz0oUz1NYXRoLmltdWwoZG4scXQpKStNYXRoLmltdWwoeW4s''@;'; + put 'put ''eHIpfDAsRj1NYXRoLmltdWwoeW4scXQpLFQ9VCtNYXRoLmltdWwoanQsbnIpfDAsUz0oUz1TK01hdGguaW11bChqdCxBbil8MCkrTWF0aC5pbXVsKFF0LG5yKXwwLEY9RitNYXRoLmltdWwoUXQsQW4pfDAsVD1UK01hdGguaW11bChHZSxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHBuKXww''@;'; + put 'put ''KStNYXRoLmltdWwoVWUsV3QpfDAsRj1GK01hdGguaW11bChVZSxwbil8MCxUPVQrTWF0aC5pbXVsKEN0LE50KXwwLFM9KFM9UytNYXRoLmltdWwoQ3Qsc24pfDApK01hdGguaW11bChmdCxOdCl8MCxGPUYrTWF0aC5pbXVsKGZ0LHNuKXwwLFQ9VCtNYXRoLmltdWwoZXQsd24pfDAsUz0oUz1T''@;'; + put 'put ''K01hdGguaW11bChldCx0bil8MCkrTWF0aC5pbXVsKGF0LHduKXwwLEY9RitNYXRoLmltdWwoYXQsdG4pfDAsVD1UK01hdGguaW11bChvbixUcil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLEJuKXwwKStNYXRoLmltdWwoX3QsVHIpfDAsRj1GK01hdGguaW11bChfdCxCbil8MCxUPVQrTWF0aC5p''@;'; + put 'put ''bXVsKG10LG1uKXwwLFM9KFM9UytNYXRoLmltdWwobXQsdW4pfDApK01hdGguaW11bChodCxtbil8MCxGPUYrTWF0aC5pbXVsKGh0LHVuKXwwO3ZhciBsaT0oVisoVD1UK01hdGguaW11bCh3dCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKHd0LEd0KXwwKStNYXRoLmltdWwo''@;'; + put 'put ''dnQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwodnQsR3QpfDApKyhTPj4+MTMpfDApKyhsaT4+PjI2KXwwLGxpJj02NzEwODg2MyxUPU1hdGguaW11bChkbixuciksUz0oUz1NYXRoLmltdWwoZG4sQW4pKStNYXRoLmltdWwoeW4sbnIpfDAsRj1NYXRoLmltdWwoeW4sQW4pLFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwoanQsV3QpfDAsUz0oUz1TK01hdGguaW11bChqdCxwbil8MCkrTWF0aC5pbXVsKFF0LFd0KXwwLEY9RitNYXRoLmltdWwoUXQscG4pfDAsVD1UK01hdGguaW11bChHZSxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHNuKXwwKStNYXRoLmltdWwoVWUsTnQpfDAsRj1GK01h''@;'; + put 'put ''dGguaW11bChVZSxzbil8MCxUPVQrTWF0aC5pbXVsKEN0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsdG4pfDApK01hdGguaW11bChmdCx3bil8MCxGPUYrTWF0aC5pbXVsKGZ0LHRuKXwwLFQ9VCtNYXRoLmltdWwoZXQsVHIpfDAsUz0oUz1TK01hdGguaW11bChldCxCbil8MCkrTWF0aC5p''@;'; + put 'put ''bXVsKGF0LFRyKXwwLEY9RitNYXRoLmltdWwoYXQsQm4pfDAsVD1UK01hdGguaW11bChvbixtbil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHVuKXwwKStNYXRoLmltdWwoX3QsbW4pfDAsRj1GK01hdGguaW11bChfdCx1bil8MDt2YXIgTWk9KFYrKFQ9VCtNYXRoLmltdWwobXQsX24pfDApfDAp''@;'; + put 'put ''KygoODE5MSYoUz0oUz1TK01hdGguaW11bChtdCxHdCl8MCkrTWF0aC5pbXVsKGh0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKGh0LEd0KXwwKSsoUz4+PjEzKXwwKSsoTWk+Pj4yNil8MCxNaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sV3QpLFM9KFM9TWF0aC5pbXVsKGRu''@;'; + put 'put ''LHBuKSkrTWF0aC5pbXVsKHluLFd0KXwwLEY9TWF0aC5pbXVsKHluLHBuKSxUPVQrTWF0aC5pbXVsKGp0LE50KXwwLFM9KFM9UytNYXRoLmltdWwoanQsc24pfDApK01hdGguaW11bChRdCxOdCl8MCxGPUYrTWF0aC5pbXVsKFF0LHNuKXwwLFQ9VCtNYXRoLmltdWwoR2Usd24pfDAsUz0oUz1T''@;'; + put 'put ''K01hdGguaW11bChHZSx0bil8MCkrTWF0aC5pbXVsKFVlLHduKXwwLEY9RitNYXRoLmltdWwoVWUsdG4pfDAsVD1UK01hdGguaW11bChDdCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LEJuKXwwKStNYXRoLmltdWwoZnQsVHIpfDAsRj1GK01hdGguaW11bChmdCxCbil8MCxUPVQrTWF0aC5p''@;'; + put 'put ''bXVsKGV0LG1uKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsdW4pfDApK01hdGguaW11bChhdCxtbil8MCxGPUYrTWF0aC5pbXVsKGF0LHVuKXwwO3ZhciBvMD0oVisoVD1UK01hdGguaW11bChvbixfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKG9uLEd0KXwwKStNYXRoLmltdWwo''@;'; + put 'put ''X3QsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoX3QsR3QpfDApKyhTPj4+MTMpfDApKyhvMD4+PjI2KXwwLG8wJj02NzEwODg2MyxUPU1hdGguaW11bChkbixOdCksUz0oUz1NYXRoLmltdWwoZG4sc24pKStNYXRoLmltdWwoeW4sTnQpfDAsRj1NYXRoLmltdWwoeW4sc24pLFQ9''@;'; + put 'put ''VCtNYXRoLmltdWwoanQsd24pfDAsUz0oUz1TK01hdGguaW11bChqdCx0bil8MCkrTWF0aC5pbXVsKFF0LHduKXwwLEY9RitNYXRoLmltdWwoUXQsdG4pfDAsVD1UK01hdGguaW11bChHZSxUcil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLEJuKXwwKStNYXRoLmltdWwoVWUsVHIpfDAsRj1GK01h''@;'; + put 'put ''dGguaW11bChVZSxCbil8MCxUPVQrTWF0aC5pbXVsKEN0LG1uKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsdW4pfDApK01hdGguaW11bChmdCxtbil8MCxGPUYrTWF0aC5pbXVsKGZ0LHVuKXwwO3ZhciBuMD0oVisoVD1UK01hdGguaW11bChldCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0''@;'; + put 'put ''aC5pbXVsKGV0LEd0KXwwKStNYXRoLmltdWwoYXQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoYXQsR3QpfDApKyhTPj4+MTMpfDApKyhuMD4+PjI2KXwwLG4wJj02NzEwODg2MyxUPU1hdGguaW11bChkbix3biksUz0oUz1NYXRoLmltdWwoZG4sdG4pKStNYXRoLmltdWwoeW4s''@;'; + put 'put ''d24pfDAsRj1NYXRoLmltdWwoeW4sdG4pLFQ9VCtNYXRoLmltdWwoanQsVHIpfDAsUz0oUz1TK01hdGguaW11bChqdCxCbil8MCkrTWF0aC5pbXVsKFF0LFRyKXwwLEY9RitNYXRoLmltdWwoUXQsQm4pfDAsVD1UK01hdGguaW11bChHZSxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHVuKXww''@;'; + put 'put ''KStNYXRoLmltdWwoVWUsbW4pfDAsRj1GK01hdGguaW11bChVZSx1bil8MDt2YXIgZDA9KFYrKFQ9VCtNYXRoLmltdWwoQ3QsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDdCxHdCl8MCkrTWF0aC5pbXVsKGZ0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKGZ0''@;'; + put 'put ''LEd0KXwwKSsoUz4+PjEzKXwwKSsoZDA+Pj4yNil8MCxkMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sVHIpLFM9KFM9TWF0aC5pbXVsKGRuLEJuKSkrTWF0aC5pbXVsKHluLFRyKXwwLEY9TWF0aC5pbXVsKHluLEJuKSxUPVQrTWF0aC5pbXVsKGp0LG1uKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''anQsdW4pfDApK01hdGguaW11bChRdCxtbil8MCxGPUYrTWF0aC5pbXVsKFF0LHVuKXwwO3ZhciBtMD0oVisoVD1UK01hdGguaW11bChHZSxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEdlLEd0KXwwKStNYXRoLmltdWwoVWUsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRo''@;'; + put 'put ''LmltdWwoVWUsR3QpfDApKyhTPj4+MTMpfDApKyhtMD4+PjI2KXwwLG0wJj02NzEwODg2MyxUPU1hdGguaW11bChkbixtbiksUz0oUz1NYXRoLmltdWwoZG4sdW4pKStNYXRoLmltdWwoeW4sbW4pfDAsRj1NYXRoLmltdWwoeW4sdW4pO3ZhciBHMD0oVisoVD1UK01hdGguaW11bChqdCxfbil8''@;'; + put 'put ''MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGp0LEd0KXwwKStNYXRoLmltdWwoUXQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoUXQsR3QpfDApKyhTPj4+MTMpfDApKyhHMD4+PjI2KXwwLEcwJj02NzEwODg2Mzt2YXIgRGk9KFYrKFQ9TWF0aC5pbXVsKGRuLF9uKSl8''@;'; + put 'put ''MCkrKCg4MTkxJihTPShTPU1hdGguaW11bChkbixHdCkpK01hdGguaW11bCh5bixfbil8MCkpPDwxMyl8MDtyZXR1cm4gVj0oKEY9TWF0aC5pbXVsKHluLEd0KSkrKFM+Pj4xMyl8MCkrKERpPj4+MjYpfDAsRGkmPTY3MTA4ODYzLFBbMF09a24sUFsxXT1WbixQWzJdPWVuLFBbM109SW4sUFs0''@;'; + put 'put ''XT1KbixQWzVdPW9yLFBbNl09Z3IsUFs3XT1LcixQWzhdPVZyLFBbOV09aWksUFsxMF09UnIsUFsxMV09bGksUFsxMl09TWksUFsxM109bzAsUFsxNF09bjAsUFsxNV09ZDAsUFsxNl09bTAsUFsxN109RzAsUFsxOF09RGksMCE9PVYmJihQWzE5XT1WLG5lLmxlbmd0aCsrKSxuZX07ZnVuY3Rp''@;'; + put 'put ''b24gb2UoaGUsTyx6KXtyZXR1cm4obmV3IGNlKS5tdWxwKGhlLE8seil9ZnVuY3Rpb24gY2UoaGUsTyl7dGhpcy54PWhlLHRoaXMueT1PfU1hdGguaW11bHx8KEo9cSksVS5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oTyx6KXt2YXIgbmUsdGU9dGhpcy5sZW5ndGgrTy5sZW5ndGg7cmV0dXJu''@;'; + put 'put ''IG5lPTEwPT09dGhpcy5sZW5ndGgmJjEwPT09Ty5sZW5ndGg/Sih0aGlzLE8seik6dGU8NjM/cSh0aGlzLE8seik6dGU8MTAyND9mdW5jdGlvbiBzZShoZSxPLHope3oubmVnYXRpdmU9Ty5uZWdhdGl2ZV5oZS5uZWdhdGl2ZSx6Lmxlbmd0aD1oZS5sZW5ndGgrTy5sZW5ndGg7Zm9yKHZhciBu''@;'; + put 'put ''ZT0wLHRlPTAseD0wO3g8ei5sZW5ndGgtMTt4Kyspe3ZhciBQPXRlO3RlPTA7Zm9yKHZhciBWPTY3MTA4ODYzJm5lLFQ9TWF0aC5taW4oeCxPLmxlbmd0aC0xKSxTPU1hdGgubWF4KDAseC1oZS5sZW5ndGgrMSk7Uzw9VDtTKyspe3ZhciBEZT0oMHxoZS53b3Jkc1t4LVNdKSooMHxPLndvcmRz''@;'; + put 'put ''W1NdKSxQZT02NzEwODg2MyZEZTtWPTY3MTA4ODYzJihQZT1QZStWfDApLHRlKz0oUD0oUD1QKyhEZS82NzEwODg2NHwwKXwwKSsoUGU+Pj4yNil8MCk+Pj4yNixQJj02NzEwODg2M316LndvcmRzW3hdPVYsbmU9UCxQPXRlfXJldHVybiAwIT09bmU/ei53b3Jkc1t4XT1uZTp6Lmxlbmd0aC0t''@;'; + put 'put ''LHouc3RyaXAoKX0odGhpcyxPLHopOm9lKHRoaXMsTyx6KSxuZX0sY2UucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PW5ldyBBcnJheShPKSxuZT1VLnByb3RvdHlwZS5fY291bnRCaXRzKE8pLTEsdGU9MDt0ZTxPO3RlKyspelt0ZV09dGhpcy5yZXZCaW4odGUsbmUs''@;'; + put 'put ''Tyk7cmV0dXJuIHp9LGNlLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24oTyx6LG5lKXtpZigwPT09T3x8Tz09PW5lLTEpcmV0dXJuIE87Zm9yKHZhciB0ZT0wLHg9MDt4PHo7eCsrKXRlfD0oMSZPKTw8ei14LTEsTz4+PTE7cmV0dXJuIHRlfSxjZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlv''@;'; + put 'put ''bihPLHosbmUsdGUseCxQKXtmb3IodmFyIFY9MDtWPFA7VisrKXRlW1ZdPXpbT1tWXV0seFtWXT1uZVtPW1ZdXX0sY2UucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihPLHosbmUsdGUseCxQKXt0aGlzLnBlcm11dGUoUCxPLHosbmUsdGUseCk7Zm9yKHZhciBWPTE7Vjx4O1Y8PD0xKWZv''@;'; + put 'put ''cih2YXIgVD1WPDwxLFM9TWF0aC5jb3MoMipNYXRoLlBJL1QpLEY9TWF0aC5zaW4oMipNYXRoLlBJL1QpLHllPTA7eWU8eDt5ZSs9VClmb3IodmFyIENlPVMsRGU9RixQZT0wO1BlPFY7UGUrKyl7dmFyIFFlPW5lW3llK1BlXSwkZT10ZVt5ZStQZV0sZ3Q9bmVbeWUrUGUrVl0sd3Q9dGVbeWUr''@;'; + put 'put ''UGUrVl0sdnQ9Q2UqZ3QtRGUqd3Q7d3Q9Q2Uqd3QrRGUqZ3QsbmVbeWUrUGVdPVFlKyhndD12dCksdGVbeWUrUGVdPSRlK3d0LG5lW3llK1BlK1ZdPVFlLWd0LHRlW3llK1BlK1ZdPSRlLXd0LFBlIT09VCYmKHZ0PVMqQ2UtRipEZSxEZT1TKkRlK0YqQ2UsQ2U9dnQpfX0sY2UucHJvdG90eXBl''@;'; + put 'put ''Lmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKE8seil7dmFyIG5lPTF8TWF0aC5tYXgoeixPKSx0ZT0xJm5lLHg9MDtmb3IobmU9bmUvMnwwO25lO25lPj4+PTEpeCsrO3JldHVybiAxPDx4KzErdGV9LGNlLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oTyx6LG5lKXtpZighKG5lPD0xKSlmb3Io''@;'; + put 'put ''dmFyIHRlPTA7dGU8bmUvMjt0ZSsrKXt2YXIgeD1PW3RlXTtPW3RlXT1PW25lLXRlLTFdLE9bbmUtdGUtMV09eCx4PXpbdGVdLHpbdGVdPS16W25lLXRlLTFdLHpbbmUtdGUtMV09LXh9fSxjZS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKE8seil7Zm9yKHZhciBuZT0wLHRlPTA7''@;'; + put 'put ''dGU8ei8yO3RlKyspe3ZhciB4PTgxOTIqTWF0aC5yb3VuZChPWzIqdGUrMV0veikrTWF0aC5yb3VuZChPWzIqdGVdL3opK25lO09bdGVdPTY3MTA4ODYzJngsbmU9eDw2NzEwODg2ND8wOngvNjcxMDg4NjR8MH1yZXR1cm4gT30sY2UucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oTyx6''@;'; + put 'put ''LG5lLHRlKXtmb3IodmFyIHg9MCxQPTA7UDx6O1ArKyluZVsyKlBdPTgxOTEmKHgrPTB8T1tQXSksbmVbMipQKzFdPTgxOTEmKHg+Pj49MTMpLHg+Pj49MTM7Zm9yKFA9Mip6O1A8dGU7KytQKW5lW1BdPTA7RSgwPT09eCksRSgwPT0oLTgxOTImeCkpfSxjZS5wcm90b3R5cGUuc3R1Yj1mdW5j''@;'; + put 'put ''dGlvbihPKXtmb3IodmFyIHo9bmV3IEFycmF5KE8pLG5lPTA7bmU8TztuZSsrKXpbbmVdPTA7cmV0dXJuIHp9LGNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKE8seixuZSl7dmFyIHRlPTIqdGhpcy5ndWVzc0xlbjEzYihPLmxlbmd0aCx6Lmxlbmd0aCkseD10aGlzLm1ha2VSQlQodGUpLFA9''@;'; + put 'put ''dGhpcy5zdHViKHRlKSxWPW5ldyBBcnJheSh0ZSksVD1uZXcgQXJyYXkodGUpLFM9bmV3IEFycmF5KHRlKSxGPW5ldyBBcnJheSh0ZSkseWU9bmV3IEFycmF5KHRlKSxDZT1uZXcgQXJyYXkodGUpLERlPW5lLndvcmRzO0RlLmxlbmd0aD10ZSx0aGlzLmNvbnZlcnQxM2IoTy53b3JkcyxPLmxl''@;'; + put 'put ''bmd0aCxWLHRlKSx0aGlzLmNvbnZlcnQxM2Ioei53b3Jkcyx6Lmxlbmd0aCxGLHRlKSx0aGlzLnRyYW5zZm9ybShWLFAsVCxTLHRlLHgpLHRoaXMudHJhbnNmb3JtKEYsUCx5ZSxDZSx0ZSx4KTtmb3IodmFyIFBlPTA7UGU8dGU7UGUrKyl7dmFyIFFlPVRbUGVdKnllW1BlXS1TW1BlXSpDZVtQ''@;'; + put 'put ''ZV07U1tQZV09VFtQZV0qQ2VbUGVdK1NbUGVdKnllW1BlXSxUW1BlXT1RZX1yZXR1cm4gdGhpcy5jb25qdWdhdGUoVCxTLHRlKSx0aGlzLnRyYW5zZm9ybShULFMsRGUsUCx0ZSx4KSx0aGlzLmNvbmp1Z2F0ZShEZSxQLHRlKSx0aGlzLm5vcm1hbGl6ZTEzYihEZSx0ZSksbmUubmVnYXRpdmU9''@;'; + put 'put ''Ty5uZWdhdGl2ZV56Lm5lZ2F0aXZlLG5lLmxlbmd0aD1PLmxlbmd0aCt6Lmxlbmd0aCxuZS5zdHJpcCgpfSxVLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oTyl7dmFyIHo9bmV3IFUobnVsbCk7cmV0dXJuIHoud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK08ubGVuZ3RoKSx0aGlzLm11bFRv''@;'; + put 'put ''KE8seil9LFUucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oTyl7dmFyIHo9bmV3IFUobnVsbCk7cmV0dXJuIHoud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK08ubGVuZ3RoKSxvZSh0aGlzLE8seil9LFUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5t''@;'; + put 'put ''dWxUbyhPLHRoaXMpfSxVLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyksRShPPDY3MTA4ODY0KTtmb3IodmFyIHo9MCxuZT0wO25lPHRoaXMubGVuZ3RoO25lKyspe3ZhciB0ZT0oMHx0aGlzLndvcmRzW25lXSkqTyx4PSg2NzEwODg2MyZ0ZSkrKDY3''@;'; + put 'put ''MTA4ODYzJnopO3o+Pj0yNix6Kz10ZS82NzEwODg2NHwwLHorPXg+Pj4yNix0aGlzLndvcmRzW25lXT02NzEwODg2MyZ4fXJldHVybiAwIT09eiYmKHRoaXMud29yZHNbbmVdPXosdGhpcy5sZW5ndGgrKyksdGhpc30sVS5wcm90b3R5cGUubXVsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5j''@;'; + put 'put ''bG9uZSgpLmltdWxuKE8pfSxVLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LFUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LFUucHJvdG90eXBlLnBvdz1mdW5jdGlvbihPKXt2YXIgej1mdW5j''@;'; + put 'put ''dGlvbiBlZShoZSl7Zm9yKHZhciBPPW5ldyBBcnJheShoZS5iaXRMZW5ndGgoKSksej0wO3o8Ty5sZW5ndGg7eisrKXt2YXIgdGU9eiUyNjtPW3pdPShoZS53b3Jkc1t6LzI2fDBdJjE8PHRlKT4+PnRlfXJldHVybiBPfShPKTtpZigwPT09ei5sZW5ndGgpcmV0dXJuIG5ldyBVKDEpO2Zvcih2''@;'; + put 'put ''YXIgbmU9dGhpcyx0ZT0wO3RlPHoubGVuZ3RoJiYwPT09elt0ZV07dGUrKyxuZT1uZS5zcXIoKSk7aWYoKyt0ZTx6Lmxlbmd0aClmb3IodmFyIHg9bmUuc3FyKCk7dGU8ei5sZW5ndGg7dGUrKyx4PXguc3FyKCkpMCE9PXpbdGVdJiYobmU9bmUubXVsKHgpKTtyZXR1cm4gbmV9LFUucHJvdG90''@;'; + put 'put ''eXBlLml1c2hsbj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIHgsej1PJTI2LG5lPShPLXopLzI2LHRlPTY3MTA4ODYzPj4+MjYtejw8MjYtejtpZigwIT09eil7dmFyIFA9MDtmb3IoeD0wO3g8dGhpcy5sZW5ndGg7eCsrKXt2YXIgVj10aGlzLndvcmRzW3hd''@;'; + put 'put ''JnRlO3RoaXMud29yZHNbeF09KDB8dGhpcy53b3Jkc1t4XSktVjw8enxQLFA9Vj4+PjI2LXp9UCYmKHRoaXMud29yZHNbeF09UCx0aGlzLmxlbmd0aCsrKX1pZigwIT09bmUpe2Zvcih4PXRoaXMubGVuZ3RoLTE7eD49MDt4LS0pdGhpcy53b3Jkc1t4K25lXT10aGlzLndvcmRzW3hdO2Zvcih4''@;'; + put 'put ''PTA7eDxuZTt4KyspdGhpcy53b3Jkc1t4XT0wO3RoaXMubGVuZ3RoKz1uZX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oTyl9LFUucHJvdG90eXBlLml1c2hybj1mdW5jdGlv''@;'; + put 'put ''bihPLHosbmUpe3ZhciB0ZTtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCksdGU9ej8oei16JTI2KS8yNjowO3ZhciB4PU8lMjYsUD1NYXRoLm1pbigoTy14KS8yNix0aGlzLmxlbmd0aCksVj02NzEwODg2M142NzEwODg2Mz4+Png8PHgsVD1uZTtpZih0ZS09UCx0ZT1NYXRoLm1heCgwLHRl''@;'; + put 'put ''KSxUKXtmb3IodmFyIFM9MDtTPFA7UysrKVQud29yZHNbU109dGhpcy53b3Jkc1tTXTtULmxlbmd0aD1QfWlmKDAhPT1QKWlmKHRoaXMubGVuZ3RoPlApZm9yKHRoaXMubGVuZ3RoLT1QLFM9MDtTPHRoaXMubGVuZ3RoO1MrKyl0aGlzLndvcmRzW1NdPXRoaXMud29yZHNbUytQXTtlbHNlIHRo''@;'; + put 'put ''aXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBGPTA7Zm9yKFM9dGhpcy5sZW5ndGgtMTtTPj0wJiYoMCE9PUZ8fFM+PXRlKTtTLS0pe3ZhciB5ZT0wfHRoaXMud29yZHNbU107dGhpcy53b3Jkc1tTXT1GPDwyNi14fHllPj4+eCxGPXllJlZ9cmV0dXJuIFQmJjAhPT1GJiYoVC53b3Jk''@;'; + put 'put ''c1tULmxlbmd0aCsrXT1GKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbihPLHosbmUpe3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybihPLHosbmUpfSxV''@;'; + put 'put ''LnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oTyl9LFUucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKE8pfSxVLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25l''@;'; + put 'put ''KCkuaXNocm4oTyl9LFUucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKE8pfSxVLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIHo9TyUyNixuZT0oTy16KS8yNjtyZXR1cm4hKHRo''@;'; + put 'put ''aXMubGVuZ3RoPD1uZXx8ISh0aGlzLndvcmRzW25lXSYxPDx6KSl9LFUucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIHo9TyUyNixuZT0oTy16KS8yNjtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9u''@;'; + put 'put ''bHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PW5lP3RoaXM6KDAhPT16JiZuZSsrLHRoaXMubGVuZ3RoPU1hdGgubWluKG5lLHRoaXMubGVuZ3RoKSwwIT09eiYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+ejw8eiksdGhpcy5z''@;'; + put 'put ''dHJpcCgpKX0sVS5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oTyl9LFUucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKE8pe3JldHVybiBFKCJudW1iZXIiPT10eXBlb2YgTyksRShPPDY3MTA4ODY0KSxPPDA/dGhpcy5pc3VibigtTyk6MCE9''@;'; + put 'put ''PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTxPPyh0aGlzLndvcmRzWzBdPU8tKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3VibihPKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhp''@;'; + put 'put ''cy5faWFkZG4oTyl9LFUucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbihPKXt0aGlzLndvcmRzWzBdKz1PO2Zvcih2YXIgej0wO3o8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbel0+PTY3MTA4ODY0O3orKyl0aGlzLndvcmRzW3pdLT02NzEwODg2NCx6PT09dGhpcy5sZW5ndGgtMT90aGlzLndv''@;'; + put 'put ''cmRzW3orMV09MTp0aGlzLndvcmRzW3orMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgseisxKSx0aGlzfSxVLnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbihPKXtpZihFKCJudW1iZXIiPT10eXBlb2YgTyksRShPPDY3MTA4ODY0KSxPPDApcmV0dXJuIHRoaXMu''@;'; + put 'put ''aWFkZG4oLU8pO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbihPKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndvcmRzWzBdLT1PLDE9PT10aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1swXTwwKXRoaXMud29yZHNbMF09LXRoaXMud29y''@;'; + put 'put ''ZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciB6PTA7ejx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t6XTwwO3orKyl0aGlzLndvcmRzW3pdKz02NzEwODg2NCx0aGlzLndvcmRzW3orMV0tPTE7cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbihP''@;'; + put 'put ''KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKE8pfSxVLnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oTyl9LFUucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LFUucHJvdG90eXBlLmFicz1m''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxVLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgeDt0aGlzLl9leHBhbmQoTy5sZW5ndGgrbmUpO3ZhciBQLFY9MDtmb3IoeD0wO3g8Ty5sZW5ndGg7eCsrKXtQPSgwfHRoaXMud29yZHNbeCtu''@;'; + put 'put ''ZV0pK1Y7dmFyIFQ9KDB8Ty53b3Jkc1t4XSkqejtWPSgoUC09NjcxMDg4NjMmVCk+PjI2KS0oVC82NzEwODg2NHwwKSx0aGlzLndvcmRzW3grbmVdPTY3MTA4ODYzJlB9Zm9yKDt4PHRoaXMubGVuZ3RoLW5lO3grKylWPShQPSgwfHRoaXMud29yZHNbeCtuZV0pK1YpPj4yNix0aGlzLndvcmRz''@;'; + put 'put ''W3grbmVdPTY3MTA4ODYzJlA7aWYoMD09PVYpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoRSgtMT09PVYpLFY9MCx4PTA7eDx0aGlzLmxlbmd0aDt4KyspVj0oUD0tKDB8dGhpcy53b3Jkc1t4XSkrVik+PjI2LHRoaXMud29yZHNbeF09NjcxMDg4NjMmUDtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0x''@;'; + put 'put ''LHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24oTyx6KXt2YXIgbmUsdGU9dGhpcy5jbG9uZSgpLHg9TyxQPTB8eC53b3Jkc1t4Lmxlbmd0aC0xXTswIT0obmU9MjYtdGhpcy5fY291bnRCaXRzKFApKSYmKHg9eC51c2hsbihuZSksdGUuaXVzaGxuKG5lKSxQPTB8''@;'; + put 'put ''eC53b3Jkc1t4Lmxlbmd0aC0xXSk7dmFyIFMsVD10ZS5sZW5ndGgteC5sZW5ndGg7aWYoIm1vZCIhPT16KXsoUz1uZXcgVShudWxsKSkubGVuZ3RoPVQrMSxTLndvcmRzPW5ldyBBcnJheShTLmxlbmd0aCk7Zm9yKHZhciBGPTA7RjxTLmxlbmd0aDtGKyspUy53b3Jkc1tGXT0wfXZhciB5ZT10''@;'; + put 'put ''ZS5jbG9uZSgpLl9pc2hsbnN1Ym11bCh4LDEsVCk7MD09PXllLm5lZ2F0aXZlJiYodGU9eWUsUyYmKFMud29yZHNbVF09MSkpO2Zvcih2YXIgQ2U9VC0xO0NlPj0wO0NlLS0pe3ZhciBEZT02NzEwODg2NCooMHx0ZS53b3Jkc1t4Lmxlbmd0aCtDZV0pKygwfHRlLndvcmRzW3gubGVuZ3RoK0Nl''@;'; + put 'put ''LTFdKTtmb3IoRGU9TWF0aC5taW4oRGUvUHwwLDY3MTA4ODYzKSx0ZS5faXNobG5zdWJtdWwoeCxEZSxDZSk7MCE9PXRlLm5lZ2F0aXZlOylEZS0tLHRlLm5lZ2F0aXZlPTAsdGUuX2lzaGxuc3VibXVsKHgsMSxDZSksdGUuaXNaZXJvKCl8fCh0ZS5uZWdhdGl2ZV49MSk7UyYmKFMud29yZHNb''@;'; + put 'put ''Q2VdPURlKX1yZXR1cm4gUyYmUy5zdHJpcCgpLHRlLnN0cmlwKCksImRpdiIhPT16JiYwIT09bmUmJnRlLml1c2hybihuZSkse2RpdjpTfHxudWxsLG1vZDp0ZX19LFUucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihPLHosbmUpe3JldHVybiBFKCFPLmlzWmVybygpKSx0aGlzLmlzWmVybygp''@;'; + put 'put ''P3tkaXY6bmV3IFUoMCksbW9kOm5ldyBVKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PU8ubmVnYXRpdmU/KFA9dGhpcy5uZWcoKS5kaXZtb2QoTyx6KSwibW9kIiE9PXomJih0ZT1QLmRpdi5uZWcoKSksImRpdiIhPT16JiYoeD1QLm1vZC5uZWcoKSxuZSYmMCE9PXgubmVnYXRpdmUmJngu''@;'; + put 'put ''aWFkZChPKSkse2Rpdjp0ZSxtb2Q6eH0pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZT8oUD10aGlzLmRpdm1vZChPLm5lZygpLHopLCJtb2QiIT09eiYmKHRlPVAuZGl2Lm5lZygpKSx7ZGl2OnRlLG1vZDpQLm1vZH0pOjAhPSh0aGlzLm5lZ2F0aXZlJk8ubmVnYXRpdmUpPyhQ''@;'; + put 'put ''PXRoaXMubmVnKCkuZGl2bW9kKE8ubmVnKCkseiksImRpdiIhPT16JiYoeD1QLm1vZC5uZWcoKSxuZSYmMCE9PXgubmVnYXRpdmUmJnguaXN1YihPKSkse2RpdjpQLmRpdixtb2Q6eH0pOk8ubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcChPKTwwP3tkaXY6bmV3IFUoMCksbW9kOnRoaXN9''@;'; + put 'put ''OjE9PT1PLmxlbmd0aD8iZGl2Ij09PXo/e2Rpdjp0aGlzLmRpdm4oTy53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09ej97ZGl2Om51bGwsbW9kOm5ldyBVKHRoaXMubW9kbihPLndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKE8ud29yZHNbMF0pLG1vZDpuZXcgVSh0aGlzLm1vZG4oTy53''@;'; + put 'put ''b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KE8seik7dmFyIHRlLHgsUH0sVS5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmRpdm1vZChPLCJkaXYiLCExKS5kaXZ9LFUucHJvdG90eXBlLm1vZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywibW9kIiwhMSku''@;'; + put 'put ''bW9kfSxVLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmRpdm1vZChPLCJtb2QiLCEwKS5tb2R9LFUucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKE8pe3ZhciB6PXRoaXMuZGl2bW9kKE8pO2lmKHoubW9kLmlzWmVybygpKXJldHVybiB6LmRpdjt2YXIgbmU9MCE9''@;'; + put 'put ''PXouZGl2Lm5lZ2F0aXZlP3oubW9kLmlzdWIoTyk6ei5tb2QsdGU9Ty51c2hybigxKSx4PU8uYW5kbG4oMSksUD1uZS5jbXAodGUpO3JldHVybiBQPDB8fDE9PT14JiYwPT09UD96LmRpdjowIT09ei5kaXYubmVnYXRpdmU/ei5kaXYuaXN1Ym4oMSk6ei5kaXYuaWFkZG4oMSl9LFUucHJvdG90''@;'; + put 'put ''eXBlLm1vZG49ZnVuY3Rpb24oTyl7RShPPD02NzEwODg2Myk7Zm9yKHZhciB6PSgxPDwyNiklTyxuZT0wLHRlPXRoaXMubGVuZ3RoLTE7dGU+PTA7dGUtLSluZT0oeipuZSsoMHx0aGlzLndvcmRzW3RlXSkpJU87cmV0dXJuIG5lfSxVLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihPKXtFKE88''@;'; + put 'put ''PTY3MTA4ODYzKTtmb3IodmFyIHo9MCxuZT10aGlzLmxlbmd0aC0xO25lPj0wO25lLS0pe3ZhciB0ZT0oMHx0aGlzLndvcmRzW25lXSkrNjcxMDg4NjQqejt0aGlzLndvcmRzW25lXT10ZS9PfDAsej10ZSVPfXJldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24o''@;'; + put 'put ''Tyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihPKX0sVS5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlKSxFKCFPLmlzWmVybygpKTt2YXIgej10aGlzLG5lPU8uY2xvbmUoKTt6PTAhPT16Lm5lZ2F0aXZlP3oudW1vZChPKTp6LmNsb25lKCk7Zm9yKHZhciB0''@;'; + put 'put ''ZT1uZXcgVSgxKSx4PW5ldyBVKDApLFA9bmV3IFUoMCksVj1uZXcgVSgxKSxUPTA7ei5pc0V2ZW4oKSYmbmUuaXNFdmVuKCk7KXouaXVzaHJuKDEpLG5lLml1c2hybigxKSwrK1Q7Zm9yKHZhciBTPW5lLmNsb25lKCksRj16LmNsb25lKCk7IXouaXNaZXJvKCk7KXtmb3IodmFyIHllPTAsQ2U9''@;'; + put 'put ''MTswPT0oei53b3Jkc1swXSZDZSkmJnllPDI2OysreWUsQ2U8PD0xKTtpZih5ZT4wKWZvcih6Lml1c2hybih5ZSk7eWUtLSA+MDspKHRlLmlzT2RkKCl8fHguaXNPZGQoKSkmJih0ZS5pYWRkKFMpLHguaXN1YihGKSksdGUuaXVzaHJuKDEpLHguaXVzaHJuKDEpO2Zvcih2YXIgRGU9MCxQZT0x''@;'; + put 'put ''OzA9PShuZS53b3Jkc1swXSZQZSkmJkRlPDI2OysrRGUsUGU8PD0xKTtpZihEZT4wKWZvcihuZS5pdXNocm4oRGUpO0RlLS0gPjA7KShQLmlzT2RkKCl8fFYuaXNPZGQoKSkmJihQLmlhZGQoUyksVi5pc3ViKEYpKSxQLml1c2hybigxKSxWLml1c2hybigxKTt6LmNtcChuZSk+PTA/KHouaXN1''@;'; + put 'put ''YihuZSksdGUuaXN1YihQKSx4LmlzdWIoVikpOihuZS5pc3ViKHopLFAuaXN1Yih0ZSksVi5pc3ViKHgpKX1yZXR1cm57YTpQLGI6VixnY2Q6bmUuaXVzaGxuKFQpfX0sVS5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUpLEUoIU8uaXNaZXJvKCkpO3ZhciB5''@;'; + put 'put ''ZSx6PXRoaXMsbmU9Ty5jbG9uZSgpO3o9MCE9PXoubmVnYXRpdmU/ei51bW9kKE8pOnouY2xvbmUoKTtmb3IodmFyIHRlPW5ldyBVKDEpLHg9bmV3IFUoMCksUD1uZS5jbG9uZSgpO3ouY21wbigxKT4wJiZuZS5jbXBuKDEpPjA7KXtmb3IodmFyIFY9MCxUPTE7MD09KHoud29yZHNbMF0mVCkm''@;'; + put 'put ''JlY8MjY7KytWLFQ8PD0xKTtpZihWPjApZm9yKHouaXVzaHJuKFYpO1YtLSA+MDspdGUuaXNPZGQoKSYmdGUuaWFkZChQKSx0ZS5pdXNocm4oMSk7Zm9yKHZhciBTPTAsRj0xOzA9PShuZS53b3Jkc1swXSZGKSYmUzwyNjsrK1MsRjw8PTEpO2lmKFM+MClmb3IobmUuaXVzaHJuKFMpO1MtLSA+''@;'; + put 'put ''MDspeC5pc09kZCgpJiZ4LmlhZGQoUCkseC5pdXNocm4oMSk7ei5jbXAobmUpPj0wPyh6LmlzdWIobmUpLHRlLmlzdWIoeCkpOihuZS5pc3ViKHopLHguaXN1Yih0ZSkpfXJldHVybih5ZT0wPT09ei5jbXBuKDEpP3RlOngpLmNtcG4oMCk8MCYmeWUuaWFkZChPKSx5ZX0sVS5wcm90b3R5cGUu''@;'; + put 'put ''Z2NkPWZ1bmN0aW9uKE8pe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIE8uYWJzKCk7aWYoTy5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgej10aGlzLmNsb25lKCksbmU9Ty5jbG9uZSgpO3oubmVnYXRpdmU9MCxuZS5uZWdhdGl2ZT0wO2Zvcih2YXIgdGU9MDt6LmlzRXZlbigpJiZu''@;'; + put 'put ''ZS5pc0V2ZW4oKTt0ZSsrKXouaXVzaHJuKDEpLG5lLml1c2hybigxKTtmb3IoOzspe2Zvcig7ei5pc0V2ZW4oKTspei5pdXNocm4oMSk7Zm9yKDtuZS5pc0V2ZW4oKTspbmUuaXVzaHJuKDEpO3ZhciB4PXouY21wKG5lKTtpZih4PDApe3ZhciBQPXo7ej1uZSxuZT1QfWVsc2UgaWYoMD09PXh8''@;'; + put 'put ''fDA9PT1uZS5jbXBuKDEpKWJyZWFrO3ouaXN1YihuZSl9cmV0dXJuIG5lLml1c2hsbih0ZSl9LFUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZWdjZChPKS5hLnVtb2QoTyl9LFUucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndv''@;'; + put 'put ''cmRzWzBdKX0sVS5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy53b3Jkc1swXSl9LFUucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLndvcmRzWzBdJk99LFUucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5''@;'; + put 'put ''cGVvZiBPKTt2YXIgej1PJTI2LG5lPShPLXopLzI2LHRlPTE8PHo7aWYodGhpcy5sZW5ndGg8PW5lKXJldHVybiB0aGlzLl9leHBhbmQobmUrMSksdGhpcy53b3Jkc1tuZV18PXRlLHRoaXM7Zm9yKHZhciB4PXRlLFA9bmU7MCE9PXgmJlA8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj0wfHRoaXMu''@;'; + put 'put ''d29yZHNbUF07eD0oVis9eCk+Pj4yNix0aGlzLndvcmRzW1BdPVYmPTY3MTA4ODYzfXJldHVybiAwIT09eCYmKHRoaXMud29yZHNbUF09eCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxVLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53''@;'; + put 'put ''b3Jkc1swXX0sVS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihPKXt2YXIgbmUsej1PPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiF6KXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZ6KXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKW5lPTE7ZWxzZXt6JiYoTz0t''@;'; + put 'put ''TyksRShPPD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgdGU9MHx0aGlzLndvcmRzWzBdO25lPXRlPT09Tz8wOnRlPE8/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtbmU6bmV9LFUucHJvdG90eXBlLmNtcD1mdW5jdGlvbihPKXtpZigwIT09dGhpcy5uZWdhdGl2''@;'; + put 'put ''ZSYmMD09PU8ubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1PLm5lZ2F0aXZlKXJldHVybiAxO3ZhciB6PXRoaXMudWNtcChPKTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtejp6fSxVLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKE8pe2lmKHRoaXMubGVu''@;'; + put 'put ''Z3RoPk8ubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPE8ubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgej0wLG5lPXRoaXMubGVuZ3RoLTE7bmU+PTA7bmUtLSl7dmFyIHRlPTB8dGhpcy53b3Jkc1tuZV0seD0wfE8ud29yZHNbbmVdO2lmKHRlIT09eCl7dGU8eD96PS0xOnRlPngmJih6''@;'; + put 'put ''PTEpO2JyZWFrfX1yZXR1cm4gen0sVS5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKE8pe3JldHVybiAxPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5ndD1mdW5jdGlvbihPKXtyZXR1cm4gMT09PXRoaXMuY21wKE8pfSxVLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlz''@;'; + put 'put ''LmNtcG4oTyk+PTB9LFUucHJvdG90eXBlLmd0ZT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXAoTyk+PTB9LFUucHJvdG90eXBlLmx0bj1mdW5jdGlvbihPKXtyZXR1cm4tMT09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oTyl7cmV0dXJuLTE9PT10aGlzLmNtcChP''@;'; + put 'put ''KX0sVS5wcm90b3R5cGUubHRlbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXBuKE8pPD0wfSxVLnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wKE8pPD0wfSxVLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oTyl7cmV0dXJuIDA9PT10aGlzLmNtcG4oTyl9LFUucHJv''@;'; + put 'put ''dG90eXBlLmVxPWZ1bmN0aW9uKE8pe3JldHVybiAwPT09dGhpcy5jbXAoTyl9LFUucmVkPWZ1bmN0aW9uKE8pe3JldHVybiBuZXcgVGUoTyl9LFUucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKE8pe3JldHVybiBFKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29u''@;'; + put 'put ''dGV4dCIpLEUoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksTy5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKE8pfSxVLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRo''@;'; + put 'put ''IG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sVS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnJlZD1PLHRoaXN9LFUucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKE8pe3JldHVybiBFKCF0aGlz''@;'; + put 'put ''LnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKE8pfSxVLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQo''@;'; + put 'put ''dGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlz''@;'; + put 'put ''LnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlz''@;'; + put 'put ''dWIodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlz''@;'; + put 'put ''LnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsTyksdGhpcy5yZWQubXVsKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGgg''@;'; + put 'put ''cmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLE8pLHRoaXMucmVkLmltdWwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5''@;'; + put 'put ''MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LFUucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sVS5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biBFKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LFUucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3''@;'; + put 'put ''aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxVLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQmJiFPLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0''@;'; + put 'put ''aGlzLnJlZC5wb3codGhpcyxPKX07dmFyIGRlPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gdmUoaGUsTyl7dGhpcy5uYW1lPWhlLHRoaXMucD1uZXcgVShPLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgVSgxKS5p''@;'; + put 'put ''dXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gQWUoKXt2ZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9u''@;'; + put 'put ''IGtlKCl7dmUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBTZSgpe3ZlLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZm''@;'; + put 'put ''ZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gSWUoKXt2ZS5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIFRlKGhlKXtpZigic3RyaW5nIj09dHlwZW9mIGhlKXt2''@;'; + put 'put ''YXIgTz1VLl9wcmltZShoZSk7dGhpcy5tPU8ucCx0aGlzLnByaW1lPU99ZWxzZSBFKGhlLmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPWhlLHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBFZShoZSl7VGUuY2FsbCh0aGlzLGhlKSx0aGlzLnNoaWZ0PXRo''@;'; + put 'put ''aXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBVKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSks''@;'; + put 'put ''dGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfXZlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIE89bmV3IFUobnVsbCk7''@;'; + put 'put ''cmV0dXJuIE8ud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxPfSx2ZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihPKXt2YXIgbmUsej1PO2Rve3RoaXMuc3BsaXQoeix0aGlzLnRtcCksbmU9KHo9KHo9dGhpcy5pbXVsSyh6KSkuaWFkZCh0aGlzLnRtcCkpLmJpdExl''@;'; + put 'put ''bmd0aCgpfXdoaWxlKG5lPnRoaXMubik7dmFyIHRlPW5lPHRoaXMubj8tMTp6LnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PXRlPyh6LndvcmRzWzBdPTAsei5sZW5ndGg9MSk6dGU+MD96LmlzdWIodGhpcy5wKTp2b2lkIDAhPT16LnN0cmlwP3ouc3RyaXAoKTp6Ll9zdHJpcCgpLHp9LHZlLnBy''@;'; + put 'put ''b3RvdHlwZS5zcGxpdD1mdW5jdGlvbihPLHope08uaXVzaHJuKHRoaXMubiwwLHopfSx2ZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7cmV0dXJuIE8uaW11bCh0aGlzLmspfSxNZShBZSx2ZSksQWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKE8seil7Zm9yKHZhciB0ZT1NYXRoLm1p''@;'; + put 'put ''bihPLmxlbmd0aCw5KSx4PTA7eDx0ZTt4Kyspei53b3Jkc1t4XT1PLndvcmRzW3hdO2lmKHoubGVuZ3RoPXRlLE8ubGVuZ3RoPD05KXJldHVybiBPLndvcmRzWzBdPTAsdm9pZChPLmxlbmd0aD0xKTt2YXIgUD1PLndvcmRzWzldO2Zvcih6LndvcmRzW3oubGVuZ3RoKytdPTQxOTQzMDMmUCx4''@;'; + put 'put ''PTEwO3g8Ty5sZW5ndGg7eCsrKXt2YXIgVj0wfE8ud29yZHNbeF07Ty53b3Jkc1t4LTEwXT0oNDE5NDMwMyZWKTw8NHxQPj4+MjIsUD1WfU8ud29yZHNbeC0xMF09UD4+Pj0yMixPLmxlbmd0aC09MD09PVAmJk8ubGVuZ3RoPjEwPzEwOjl9LEFlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihP''@;'; + put 'put ''KXtPLndvcmRzW08ubGVuZ3RoXT0wLE8ud29yZHNbTy5sZW5ndGgrMV09MCxPLmxlbmd0aCs9Mjtmb3IodmFyIHo9MCxuZT0wO25lPE8ubGVuZ3RoO25lKyspe3ZhciB0ZT0wfE8ud29yZHNbbmVdO08ud29yZHNbbmVdPTY3MTA4ODYzJih6Kz05NzcqdGUpLHo9NjQqdGUrKHovNjcxMDg4NjR8''@;'; + put 'put ''MCl9cmV0dXJuIDA9PT1PLndvcmRzW08ubGVuZ3RoLTFdJiYoTy5sZW5ndGgtLSwwPT09Ty53b3Jkc1tPLmxlbmd0aC0xXSYmTy5sZW5ndGgtLSksT30sTWUoa2UsdmUpLE1lKFNlLHZlKSxNZShJZSx2ZSksSWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej0wLG5lPTA7''@;'; + put 'put ''bmU8Ty5sZW5ndGg7bmUrKyl7dmFyIHRlPTE5KigwfE8ud29yZHNbbmVdKSt6LHg9NjcxMDg4NjMmdGU7dGU+Pj49MjYsTy53b3Jkc1tuZV09eCx6PXRlfXJldHVybiAwIT09eiYmKE8ud29yZHNbTy5sZW5ndGgrK109eiksT30sVS5fcHJpbWU9ZnVuY3Rpb24oTyl7aWYoZGVbT10pcmV0dXJu''@;'; + put 'put ''IGRlW09dO3ZhciB6O2lmKCJrMjU2Ij09PU8pej1uZXcgQWU7ZWxzZSBpZigicDIyNCI9PT1PKXo9bmV3IGtlO2Vsc2UgaWYoInAxOTIiPT09Tyl6PW5ldyBTZTtlbHNle2lmKCJwMjU1MTkiIT09Tyl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIitPKTt6PW5ldyBJZX1yZXR1cm4g''@;'; + put 'put ''ZGVbT109eix6fSxUZS5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxFKE8ucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFRlLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5j''@;'; + put 'put ''dGlvbihPLHope0UoMD09KE8ubmVnYXRpdmV8ei5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksRShPLnJlZCYmTy5yZWQ9PT16LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxUZS5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbihPKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UoTykuX2ZvcmNlUmVkKHRoaXMpOk8udW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0sVGUucHJvdG90eXBlLm5lZz1mdW5jdGlvbihPKXtyZXR1cm4gTy5pc1plcm8oKT9PLmNsb25lKCk6dGhpcy5tLnN1YihPKS5fZm9yY2VSZWQo''@;'; + put 'put ''dGhpcyl9LFRlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oTyx6KXt0aGlzLl92ZXJpZnkyKE8seik7dmFyIG5lPU8uYWRkKHopO3JldHVybiBuZS5jbXAodGhpcy5tKT49MCYmbmUuaXN1Yih0aGlzLm0pLG5lLl9mb3JjZVJlZCh0aGlzKX0sVGUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oTyx6''@;'; + put 'put ''KXt0aGlzLl92ZXJpZnkyKE8seik7dmFyIG5lPU8uaWFkZCh6KTtyZXR1cm4gbmUuY21wKHRoaXMubSk+PTAmJm5lLmlzdWIodGhpcy5tKSxuZX0sVGUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5zdWIoeik7cmV0dXJuIG5lLmNtcG4o''@;'; + put 'put ''MCk8MCYmbmUuaWFkZCh0aGlzLm0pLG5lLl9mb3JjZVJlZCh0aGlzKX0sVGUucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oTyx6KXt0aGlzLl92ZXJpZnkyKE8seik7dmFyIG5lPU8uaXN1Yih6KTtyZXR1cm4gbmUuY21wbigwKTwwJiZuZS5pYWRkKHRoaXMubSksbmV9LFRlLnByb3RvdHlwZS5z''@;'; + put 'put ''aGw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShPKSx0aGlzLmltb2QoTy51c2hsbih6KSl9LFRlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoTyx6KSx0aGlzLmltb2QoTy5pbXVsKHopKX0sVGUucHJvdG90eXBlLm11bD1mdW5j''@;'; + put 'put ''dGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkyKE8seiksdGhpcy5pbW9kKE8ubXVsKHopKX0sVGUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW11bChPLE8uY2xvbmUoKSl9LFRlLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubXVsKE8s''@;'; + put 'put ''Tyl9LFRlLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKE8pe2lmKE8uaXNaZXJvKCkpcmV0dXJuIE8uY2xvbmUoKTt2YXIgej10aGlzLm0uYW5kbG4oMyk7aWYoRSh6JTI9PTEpLDM9PT16KXt2YXIgbmU9dGhpcy5tLmFkZChuZXcgVSgxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyhPLG5l''@;'; + put 'put ''KX1mb3IodmFyIHRlPXRoaXMubS5zdWJuKDEpLHg9MDshdGUuaXNaZXJvKCkmJjA9PT10ZS5hbmRsbigxKTspeCsrLHRlLml1c2hybigxKTtFKCF0ZS5pc1plcm8oKSk7dmFyIFA9bmV3IFUoMSkudG9SZWQodGhpcyksVj1QLnJlZE5lZygpLFQ9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLFM9''@;'; + put 'put ''dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihTPW5ldyBVKDIqUypTKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3coUyxUKS5jbXAoVik7KVMucmVkSUFkZChWKTtmb3IodmFyIEY9dGhpcy5wb3coUyx0ZSkseWU9dGhpcy5wb3coTyx0ZS5hZGRuKDEpLml1c2hybigxKSksQ2U9dGhpcy5wb3coTyx0''@;'; + put 'put ''ZSksRGU9eDswIT09Q2UuY21wKFApOyl7Zm9yKHZhciBQZT1DZSxRZT0wOzAhPT1QZS5jbXAoUCk7UWUrKylQZT1QZS5yZWRTcXIoKTtFKFFlPERlKTt2YXIgJGU9dGhpcy5wb3coRixuZXcgVSgxKS5pdXNobG4oRGUtUWUtMSkpO3llPXllLnJlZE11bCgkZSksRj0kZS5yZWRTcXIoKSxDZT1D''@;'; + put 'put ''ZS5yZWRNdWwoRiksRGU9UWV9cmV0dXJuIHllfSxUZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihPKXt2YXIgej1PLl9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09ei5uZWdhdGl2ZT8oei5uZWdhdGl2ZT0wLHRoaXMuaW1vZCh6KS5yZWROZWcoKSk6dGhpcy5pbW9kKHopfSxUZS5wcm90b3R5''@;'; + put 'put ''cGUucG93PWZ1bmN0aW9uKE8seil7aWYoei5pc1plcm8oKSlyZXR1cm4gbmV3IFUoMSkudG9SZWQodGhpcyk7aWYoMD09PXouY21wbigxKSlyZXR1cm4gTy5jbG9uZSgpO3ZhciB0ZT1uZXcgQXJyYXkoMTYpO3RlWzBdPW5ldyBVKDEpLnRvUmVkKHRoaXMpLHRlWzFdPU87Zm9yKHZhciB4PTI7''@;'; + put 'put ''eDx0ZS5sZW5ndGg7eCsrKXRlW3hdPXRoaXMubXVsKHRlW3gtMV0sTyk7dmFyIFA9dGVbMF0sVj0wLFQ9MCxTPXouYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1TJiYoUz0yNikseD16Lmxlbmd0aC0xO3g+PTA7eC0tKXtmb3IodmFyIEY9ei53b3Jkc1t4XSx5ZT1TLTE7eWU+PTA7eWUtLSl7dmFy''@;'; + put 'put ''IENlPUY+PnllJjE7UCE9PXRlWzBdJiYoUD10aGlzLnNxcihQKSksMCE9PUNlfHwwIT09Vj8oVjw8PTEsVnw9Q2UsKDQ9PSsrVHx8MD09PXgmJjA9PT15ZSkmJihQPXRoaXMubXVsKFAsdGVbVl0pLFQ9MCxWPTApKTpUPTB9Uz0yNn1yZXR1cm4gUH0sVGUucHJvdG90eXBlLmNvbnZlcnRUbz1m''@;'; + put 'put ''dW5jdGlvbihPKXt2YXIgej1PLnVtb2QodGhpcy5tKTtyZXR1cm4gej09PU8/ei5jbG9uZSgpOnp9LFRlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihPKXt2YXIgej1PLmNsb25lKCk7cmV0dXJuIHoucmVkPW51bGwsen0sVS5tb250PWZ1bmN0aW9uKE8pe3JldHVybiBuZXcgRWUo''@;'; + put 'put ''Tyl9LE1lKEVlLFRlKSxFZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltb2QoTy51c2hsbih0aGlzLnNoaWZ0KSl9LEVlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihPKXt2YXIgej10aGlzLmltb2QoTy5tdWwodGhpcy5yaW52KSk7cmV0dXJu''@;'; + put 'put ''IHoucmVkPW51bGwsen0sRWUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oTyx6KXtpZihPLmlzWmVybygpfHx6LmlzWmVybygpKXJldHVybiBPLndvcmRzWzBdPTAsTy5sZW5ndGg9MSxPO3ZhciBuZT1PLmltdWwoeiksdGU9bmUubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1h''@;'; + put 'put ''c2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLHg9bmUuaXN1Yih0ZSkuaXVzaHJuKHRoaXMuc2hpZnQpLFA9eDtyZXR1cm4geC5jbXAodGhpcy5tKT49MD9QPXguaXN1Yih0aGlzLm0pOnguY21wbigwKTwwJiYoUD14LmlhZGQodGhpcy5tKSksUC5fZm9yY2VSZWQodGhpcyl9LEVlLnByb3Rv''@;'; + put 'put ''dHlwZS5tdWw9ZnVuY3Rpb24oTyx6KXtpZihPLmlzWmVybygpfHx6LmlzWmVybygpKXJldHVybiBuZXcgVSgwKS5fZm9yY2VSZWQodGhpcyk7dmFyIG5lPU8ubXVsKHopLHRlPW5lLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5t''@;'; + put 'put ''KSx4PW5lLmlzdWIodGUpLml1c2hybih0aGlzLnNoaWZ0KSxQPXg7cmV0dXJuIHguY21wKHRoaXMubSk+PTA/UD14LmlzdWIodGhpcy5tKTp4LmNtcG4oMCk8MCYmKFA9eC5pYWRkKHRoaXMubSkpLFAuX2ZvcmNlUmVkKHRoaXMpfSxFZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihPKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5pbW9kKE8uX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShYZT1MLm5tZChYZSksdGhpcyl9LDU5MDY5OlhlPT57InVzZSBzdHJpY3QiO3ZhciBtZSxKZT0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3Q/UmVmbGVjdDpudWxsLEw9SmUmJiJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBKZS5hcHBseT9KZS5hcHBseTpmdW5jdGlvbih2ZSxBZSxrZSl7cmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHZlLEFlLGtlKX07bWU9SmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBKZS5vd25LZXlzP0plLm93bktleXM6T2JqZWN0LmdldE93blByb3Bl''@;'; + put 'put ''cnR5U3ltYm9scz9mdW5jdGlvbih2ZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHZlKS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh2ZSkpfTpmdW5jdGlvbih2ZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHZlKX07dmFyIEU9TnVt''@;'; + put 'put ''YmVyLmlzTmFOfHxmdW5jdGlvbih2ZSl7cmV0dXJuIHZlIT12ZX07ZnVuY3Rpb24gTWUoKXtNZS5pbml0LmNhbGwodGhpcyl9WGUuZXhwb3J0cz1NZSxYZS5leHBvcnRzLm9uY2U9ZnVuY3Rpb24gc2UoZGUsdmUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihBZSxrZSl7ZnVuY3Rpb24g''@;'; + put 'put ''U2UoVGUpe2RlLnJlbW92ZUxpc3RlbmVyKHZlLEllKSxrZShUZSl9ZnVuY3Rpb24gSWUoKXsiZnVuY3Rpb24iPT10eXBlb2YgZGUucmVtb3ZlTGlzdGVuZXImJmRlLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsU2UpLEFlKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSl9Y2UoZGUsdmUsSWUse29u''@;'; + put 'put ''Y2U6ITB9KSwiZXJyb3IiIT09dmUmJmZ1bmN0aW9uIG9lKGRlLHZlLEFlKXsiZnVuY3Rpb24iPT10eXBlb2YgZGUub24mJmNlKGRlLCJlcnJvciIsdmUsQWUpfShkZSxTZSx7b25jZTohMH0pfSl9LE1lLkV2ZW50RW1pdHRlcj1NZSxNZS5wcm90b3R5cGUuX2V2ZW50cz12b2lkIDAsTWUucHJv''@;'; + put 'put ''dG90eXBlLl9ldmVudHNDb3VudD0wLE1lLnByb3RvdHlwZS5fbWF4TGlzdGVuZXJzPXZvaWQgMDt2YXIgVT0xMDtmdW5jdGlvbiBRKGRlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZGUpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJsaXN0ZW5lciIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBl''@;'; + put 'put ''IEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIGRlKX1mdW5jdGlvbiBaKGRlKXtyZXR1cm4gdm9pZCAwPT09ZGUuX21heExpc3RlbmVycz9NZS5kZWZhdWx0TWF4TGlzdGVuZXJzOmRlLl9tYXhMaXN0ZW5lcnN9ZnVuY3Rpb24gaWUoZGUsdmUsQWUsa2Upe3ZhciBTZSxJZSxUZTtp''@;'; + put 'put ''ZihRKEFlKSx2b2lkIDA9PT0oSWU9ZGUuX2V2ZW50cyk/KEllPWRlLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSxkZS5fZXZlbnRzQ291bnQ9MCk6KHZvaWQgMCE9PUllLm5ld0xpc3RlbmVyJiYoZGUuZW1pdCgibmV3TGlzdGVuZXIiLHZlLEFlLmxpc3RlbmVyP0FlLmxpc3RlbmVyOkFl''@;'; + put 'put ''KSxJZT1kZS5fZXZlbnRzKSxUZT1JZVt2ZV0pLHZvaWQgMD09PVRlKVRlPUllW3ZlXT1BZSwrK2RlLl9ldmVudHNDb3VudDtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBUZT9UZT1JZVt2ZV09a2U/W0FlLFRlXTpbVGUsQWVdOmtlP1RlLnVuc2hpZnQoQWUpOlRlLnB1c2goQWUpLChTZT1a''@;'; + put 'put ''KGRlKSk+MCYmVGUubGVuZ3RoPlNlJiYhVGUud2FybmVkKXtUZS53YXJuZWQ9ITA7dmFyIEVlPW5ldyBFcnJvcigiUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAiK1RlLmxlbmd0aCsiICIrU3RyaW5nKHZlKSsiIGxpc3RlbmVycyBhZGRlZC4gVXNlIGVtaXR0''@;'; + put 'put ''ZXIuc2V0TWF4TGlzdGVuZXJzKCkgdG8gaW5jcmVhc2UgbGltaXQiKTtFZS5uYW1lPSJNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmciLEVlLmVtaXR0ZXI9ZGUsRWUudHlwZT12ZSxFZS5jb3VudD1UZS5sZW5ndGgsZnVuY3Rpb24gQihkZSl7Y29uc29sZSYmY29uc29sZS53YXJuJiZjb25z''@;'; + put 'put ''b2xlLndhcm4oZGUpfShFZSl9cmV0dXJuIGRlfWZ1bmN0aW9uIGxlKCl7aWYoIXRoaXMuZmlyZWQpcmV0dXJuIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSx0aGlzLndyYXBGbiksdGhpcy5maXJlZD0hMCwwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLmxpc3RlbmVyLmNh''@;'; + put 'put ''bGwodGhpcy50YXJnZXQpOnRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsYXJndW1lbnRzKX1mdW5jdGlvbiBZKGRlLHZlLEFlKXt2YXIga2U9e2ZpcmVkOiExLHdyYXBGbjp2b2lkIDAsdGFyZ2V0OmRlLHR5cGU6dmUsbGlzdGVuZXI6QWV9LFNlPWxlLmJpbmQoa2UpO3JldHVybiBT''@;'; + put 'put ''ZS5saXN0ZW5lcj1BZSxrZS53cmFwRm49U2UsU2V9ZnVuY3Rpb24gVyhkZSx2ZSxBZSl7dmFyIGtlPWRlLl9ldmVudHM7aWYodm9pZCAwPT09a2UpcmV0dXJuW107dmFyIFNlPWtlW3ZlXTtyZXR1cm4gdm9pZCAwPT09U2U/W106ImZ1bmN0aW9uIj09dHlwZW9mIFNlP0FlP1tTZS5saXN0ZW5l''@;'; + put 'put ''cnx8U2VdOltTZV06QWU/ZnVuY3Rpb24gSihkZSl7Zm9yKHZhciB2ZT1uZXcgQXJyYXkoZGUubGVuZ3RoKSxBZT0wO0FlPHZlLmxlbmd0aDsrK0FlKXZlW0FlXT1kZVtBZV0ubGlzdGVuZXJ8fGRlW0FlXTtyZXR1cm4gdmV9KFNlKTplZShTZSxTZS5sZW5ndGgpfWZ1bmN0aW9uIE4oZGUpe3Zh''@;'; + put 'put ''ciB2ZT10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09dmUpe3ZhciBBZT12ZVtkZV07aWYoImZ1bmN0aW9uIj09dHlwZW9mIEFlKXJldHVybiAxO2lmKHZvaWQgMCE9PUFlKXJldHVybiBBZS5sZW5ndGh9cmV0dXJuIDB9ZnVuY3Rpb24gZWUoZGUsdmUpe2Zvcih2YXIgQWU9bmV3IEFycmF5KHZl''@;'; + put 'put ''KSxrZT0wO2tlPHZlOysra2UpQWVba2VdPWRlW2tlXTtyZXR1cm4gQWV9ZnVuY3Rpb24gY2UoZGUsdmUsQWUsa2Upe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBkZS5vbilrZS5vbmNlP2RlLm9uY2UodmUsQWUpOmRlLm9uKHZlLEFlKTtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBkZS5hZGRF''@;'; + put 'put ''dmVudExpc3RlbmVyKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAiZW1pdHRlciIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBkZSk7ZGUuYWRkRXZlbnRMaXN0ZW5lcih2ZSxmdW5jdGlvbiBTZShJZSl7a2Uub25jZSYmZGUu''@;'; + put 'put ''cmVtb3ZlRXZlbnRMaXN0ZW5lcih2ZSxTZSksQWUoSWUpfSl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShNZSwiZGVmYXVsdE1heExpc3RlbmVycyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFV9LHNldDpmdW5jdGlvbihkZSl7aWYoIm51bWJlciIhPXR5cGVvZiBkZXx8''@;'; + put 'put ''ZGU8MHx8RShkZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiAiZGVmYXVsdE1heExpc3RlbmVycyIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJytkZSsiLiIpO1U9ZGV9fSksTWUuaW5pdD1mdW5jdGlvbigp''@;'; + put 'put ''eyh2b2lkIDA9PT10aGlzLl9ldmVudHN8fHRoaXMuX2V2ZW50cz09PU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSYmKHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTApLHRoaXMuX21heExpc3RlbmVycz10aGlzLl9tYXhMaXN0''@;'; + put 'put ''ZW5lcnN8fHZvaWQgMH0sTWUucHJvdG90eXBlLnNldE1heExpc3RlbmVycz1mdW5jdGlvbih2ZSl7aWYoIm51bWJlciIhPXR5cGVvZiB2ZXx8dmU8MHx8RSh2ZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiAibiIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9u''@;'; + put 'put ''LW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyt2ZSsiLiIpO3JldHVybiB0aGlzLl9tYXhMaXN0ZW5lcnM9dmUsdGhpc30sTWUucHJvdG90eXBlLmdldE1heExpc3RlbmVycz1mdW5jdGlvbigpe3JldHVybiBaKHRoaXMpfSxNZS5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbih2ZSl7Zm9yKHZh''@;'; + put 'put ''ciBBZT1bXSxrZT0xO2tlPGFyZ3VtZW50cy5sZW5ndGg7a2UrKylBZS5wdXNoKGFyZ3VtZW50c1trZV0pO3ZhciBTZT0iZXJyb3IiPT09dmUsSWU9dGhpcy5fZXZlbnRzO2lmKHZvaWQgMCE9PUllKVNlPVNlJiZ2b2lkIDA9PT1JZS5lcnJvcjtlbHNlIGlmKCFTZSlyZXR1cm4hMTtpZihTZSl7''@;'; + put 'put ''dmFyIFRlO2lmKEFlLmxlbmd0aD4wJiYoVGU9QWVbMF0pLFRlIGluc3RhbmNlb2YgRXJyb3IpdGhyb3cgVGU7dmFyIEVlPW5ldyBFcnJvcigiVW5oYW5kbGVkIGVycm9yLiIrKFRlPyIgKCIrVGUubWVzc2FnZSsiKSI6IiIpKTt0aHJvdyBFZS5jb250ZXh0PVRlLEVlfXZhciBoZT1JZVt2ZV07''@;'; + put 'put ''aWYodm9pZCAwPT09aGUpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGhlKUwoaGUsdGhpcyxBZSk7ZWxzZXt2YXIgTz1oZS5sZW5ndGgsej1lZShoZSxPKTtmb3Ioa2U9MDtrZTxPOysra2UpTCh6W2tlXSx0aGlzLEFlKX1yZXR1cm4hMH0sTWUucHJvdG90eXBlLm9uPU1lLnByb3Rv''@;'; + put 'put ''dHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbih2ZSxBZSl7cmV0dXJuIGllKHRoaXMsdmUsQWUsITEpfSxNZS5wcm90b3R5cGUucHJlcGVuZExpc3RlbmVyPWZ1bmN0aW9uKHZlLEFlKXtyZXR1cm4gaWUodGhpcyx2ZSxBZSwhMCl9LE1lLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKHZlLEFlKXty''@;'; + put 'put ''ZXR1cm4gUShBZSksdGhpcy5vbih2ZSxZKHRoaXMsdmUsQWUpKSx0aGlzfSxNZS5wcm90b3R5cGUucHJlcGVuZE9uY2VMaXN0ZW5lcj1mdW5jdGlvbih2ZSxBZSl7cmV0dXJuIFEoQWUpLHRoaXMucHJlcGVuZExpc3RlbmVyKHZlLFkodGhpcyx2ZSxBZSkpLHRoaXN9LE1lLnByb3RvdHlwZS5v''@;'; + put 'put ''ZmY9TWUucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKHZlLEFlKXt2YXIga2UsU2UsSWUsVGUsRWU7aWYoUShBZSksdm9pZCAwPT09KFNlPXRoaXMuX2V2ZW50cykpcmV0dXJuIHRoaXM7aWYodm9pZCAwPT09KGtlPVNlW3ZlXSkpcmV0dXJuIHRoaXM7aWYoa2U9PT1BZXx8a2Uu''@;'; + put 'put ''bGlzdGVuZXI9PT1BZSkwPT0tLXRoaXMuX2V2ZW50c0NvdW50P3RoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpOihkZWxldGUgU2VbdmVdLFNlLnJlbW92ZUxpc3RlbmVyJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIix2ZSxrZS5saXN0ZW5lcnx8QWUpKTtlbHNlIGlmKCJmdW5j''@;'; + put 'put ''dGlvbiIhPXR5cGVvZiBrZSl7Zm9yKEllPS0xLFRlPWtlLmxlbmd0aC0xO1RlPj0wO1RlLS0paWYoa2VbVGVdPT09QWV8fGtlW1RlXS5saXN0ZW5lcj09PUFlKXtFZT1rZVtUZV0ubGlzdGVuZXIsSWU9VGU7YnJlYWt9aWYoSWU8MClyZXR1cm4gdGhpczswPT09SWU/a2Uuc2hpZnQoKTpmdW5j''@;'; + put 'put ''dGlvbiBxKGRlLHZlKXtmb3IoO3ZlKzE8ZGUubGVuZ3RoO3ZlKyspZGVbdmVdPWRlW3ZlKzFdO2RlLnBvcCgpfShrZSxJZSksMT09PWtlLmxlbmd0aCYmKFNlW3ZlXT1rZVswXSksdm9pZCAwIT09U2UucmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLHZlLEVlfHxB''@;'; + put 'put ''ZSl9cmV0dXJuIHRoaXN9LE1lLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24odmUpe3ZhciBBZSxrZSxTZTtpZih2b2lkIDA9PT0oa2U9dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2b2lkIDA9PT1rZS5yZW1vdmVMaXN0ZW5lcilyZXR1cm4gMD09PWFyZ3VtZW50''@;'; + put 'put ''cy5sZW5ndGg/KHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTApOnZvaWQgMCE9PWtlW3ZlXSYmKDA9PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk6ZGVsZXRlIGtlW3ZlXSksdGhpcztpZigwPT09''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aCl7dmFyIFRlLEllPU9iamVjdC5rZXlzKGtlKTtmb3IoU2U9MDtTZTxJZS5sZW5ndGg7KytTZSkicmVtb3ZlTGlzdGVuZXIiIT09KFRlPUllW1NlXSkmJnRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKFRlKTtyZXR1cm4gdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoInJl''@;'; + put 'put ''bW92ZUxpc3RlbmVyIiksdGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCx0aGlzfWlmKCJmdW5jdGlvbiI9PXR5cGVvZihBZT1rZVt2ZV0pKXRoaXMucmVtb3ZlTGlzdGVuZXIodmUsQWUpO2Vsc2UgaWYodm9pZCAwIT09QWUpZm9yKFNlPUFlLmxl''@;'; + put 'put ''bmd0aC0xO1NlPj0wO1NlLS0pdGhpcy5yZW1vdmVMaXN0ZW5lcih2ZSxBZVtTZV0pO3JldHVybiB0aGlzfSxNZS5wcm90b3R5cGUubGlzdGVuZXJzPWZ1bmN0aW9uKHZlKXtyZXR1cm4gVyh0aGlzLHZlLCEwKX0sTWUucHJvdG90eXBlLnJhd0xpc3RlbmVycz1mdW5jdGlvbih2ZSl7cmV0dXJu''@;'; + put 'put ''IFcodGhpcyx2ZSwhMSl9LE1lLmxpc3RlbmVyQ291bnQ9ZnVuY3Rpb24oZGUsdmUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBkZS5saXN0ZW5lckNvdW50P2RlLmxpc3RlbmVyQ291bnQodmUpOk4uY2FsbChkZSx2ZSl9LE1lLnByb3RvdHlwZS5saXN0ZW5lckNvdW50PU4sTWUucHJvdG90''@;'; + put 'put ''eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQ+MD9tZSh0aGlzLl9ldmVudHMpOltdfX0sNDAzNDc6KFhlLEplLEwpPT57dmFyIG1lPUwoNzM1MDIpLkJ1ZmZlcixCPUwoODA5NSk7WGUuZXhwb3J0cz1mdW5jdGlvbiBFKE1lLFUsUSxaKXtpZihtZS5p''@;'; + put 'put ''c0J1ZmZlcihNZSl8fChNZT1tZS5mcm9tKE1lLCJiaW5hcnkiKSksVSYmKG1lLmlzQnVmZmVyKFUpfHwoVT1tZS5mcm9tKFUsImJpbmFyeSIpKSw4IT09VS5sZW5ndGgpKXRocm93IG5ldyBSYW5nZUVycm9yKCJzYWx0IHNob3VsZCBiZSBCdWZmZXIgd2l0aCA4IGJ5dGUgbGVuZ3RoIik7Zm9y''@;'; + put 'put ''KHZhciBpZT1RLzgsbGU9bWUuYWxsb2MoaWUpLFk9bWUuYWxsb2MoWnx8MCksVz1tZS5hbGxvYygwKTtpZT4wfHxaPjA7KXt2YXIgTj1uZXcgQjtOLnVwZGF0ZShXKSxOLnVwZGF0ZShNZSksVSYmTi51cGRhdGUoVSksVz1OLmRpZ2VzdCgpO3ZhciBlZT0wO2lmKGllPjApe3ZhciBxPWxlLmxl''@;'; + put 'put ''bmd0aC1pZTtlZT1NYXRoLm1pbihpZSxXLmxlbmd0aCksVy5jb3B5KGxlLHEsMCxlZSksaWUtPWVlfWlmKGVlPFcubGVuZ3RoJiZaPjApe3ZhciBKPVkubGVuZ3RoLVosc2U9TWF0aC5taW4oWixXLmxlbmd0aC1lZSk7Vy5jb3B5KFksSixlZSxlZStzZSksWi09c2V9fXJldHVybiBXLmZpbGwo''@;'; + put 'put ''MCkse2tleTpsZSxpdjpZfX19LDI0NzE1OlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbiBKZShMLG1lLEIpe2Z1bmN0aW9uIEUoUSxaKXtpZighbWVbUV0pe2lmKCFMW1FdKXtpZihNZSlyZXR1cm4gTWUoUSwhMCk7dmFyIGxlPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK1ErIici''@;'; + put 'put ''KTt0aHJvdyBsZS5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixsZX12YXIgWT1tZVtRXT17ZXhwb3J0czp7fX07TFtRXVswXS5jYWxsKFkuZXhwb3J0cyxmdW5jdGlvbihXKXtyZXR1cm4gRShMW1FdWzFdW1ddfHxXKX0sWSxZLmV4cG9ydHMsSmUsTCxtZSxCKX1yZXR1cm4gbWVbUV0uZXhwb3J0''@;'; + put 'put ''c31mb3IodmFyIE1lPXZvaWQgMCxVPTA7VTxCLmxlbmd0aDtVKyspRShCW1VdKTtyZXR1cm4gRX0oezE6W2Z1bmN0aW9uKEplLEwsbWUpeyFmdW5jdGlvbihCKXsidXNlIHN0cmljdCI7dmFyIEUsTWU9L14tPyg/OlxkKyg/OlwuXGQqKT98XC5cZCspKD86ZVsrLV0/XGQrKT8kL2ksVT1NYXRo''@;'; + put 'put ''LmNlaWwsUT1NYXRoLmZsb29yLFo9IltCaWdOdW1iZXIgRXJyb3JdICIsaWU9WisiTnVtYmVyIHByaW1pdGl2ZSBoYXMgbW9yZSB0aGFuIDE1IHNpZ25pZmljYW50IGRpZ2l0czogIixsZT0xZTE0LFk9MTQsVz05MDA3MTk5MjU0NzQwOTkxLE49WzEsMTAsMTAwLDFlMywxZTQsMWU1LDFlNiwx''@;'; + put 'put ''ZTcsMWU4LDFlOSwxZTEwLDFlMTEsMWUxMiwxZTEzXSxlZT0xZTcscT0xZTk7ZnVuY3Rpb24gSihrZSl7dmFyIFNlPTB8a2U7cmV0dXJuIDA8a2V8fGtlPT09U2U/U2U6U2UtMX1mdW5jdGlvbiBzZShrZSl7Zm9yKHZhciBTZSxJZSxUZT0xLEVlPWtlLmxlbmd0aCxoZT1rZVswXSsiIjtUZTxF''@;'; + put 'put ''ZTspe2ZvcihTZT1rZVtUZSsrXSsiIixJZT1ZLVNlLmxlbmd0aDtJZS0tO1NlPSIwIitTZSk7aGUrPVNlfWZvcihFZT1oZS5sZW5ndGg7NDg9PT1oZS5jaGFyQ29kZUF0KC0tRWUpOyk7cmV0dXJuIGhlLnNsaWNlKDAsRWUrMXx8MSl9ZnVuY3Rpb24gb2Uoa2UsU2Upe3ZhciBJZSxUZSxFZT1r''@;'; + put 'put ''ZS5jLGhlPVNlLmMsTz1rZS5zLHo9U2UucyxuZT1rZS5lLHRlPVNlLmU7aWYoIU98fCF6KXJldHVybiBudWxsO2lmKFRlPWhlJiYhaGVbMF0sKEllPUVlJiYhRWVbMF0pfHxUZSlyZXR1cm4gSWU/VGU/MDotejpPO2lmKE8hPXopcmV0dXJuIE87aWYoSWU9TzwwLFRlPW5lPT10ZSwhRWV8fCFo''@;'; + put 'put ''ZSlyZXR1cm4gVGU/MDohRWVeSWU/MTotMTtpZighVGUpcmV0dXJuIHRlPG5lXkllPzE6LTE7Zm9yKHo9KG5lPUVlLmxlbmd0aCk8KHRlPWhlLmxlbmd0aCk/bmU6dGUsTz0wO088ejtPKyspaWYoRWVbT10hPWhlW09dKXJldHVybiBFZVtPXT5oZVtPXV5JZT8xOi0xO3JldHVybiBuZT09dGU/''@;'; + put 'put ''MDp0ZTxuZV5JZT8xOi0xfWZ1bmN0aW9uIGNlKGtlLFNlLEllLFRlKXtpZihrZTxTZXx8SWU8a2V8fGtlIT09KGtlPDA/VShrZSk6UShrZSkpKXRocm93IEVycm9yKForKFRlfHwiQXJndW1lbnQiKSsoIm51bWJlciI9PXR5cGVvZiBrZT9rZTxTZXx8SWU8a2U/IiBvdXQgb2YgcmFuZ2U6ICI6''@;'; + put 'put ''IiBub3QgYW4gaW50ZWdlcjogIjoiIG5vdCBhIHByaW1pdGl2ZSBudW1iZXI6ICIpK1N0cmluZyhrZSkpfWZ1bmN0aW9uIGRlKGtlKXt2YXIgU2U9a2UuYy5sZW5ndGgtMTtyZXR1cm4gSihrZS5lL1kpPT1TZSYma2UuY1tTZV0lMiE9MH1mdW5jdGlvbiB2ZShrZSxTZSl7cmV0dXJuKDE8a2Uu''@;'; + put 'put ''bGVuZ3RoP2tlLmNoYXJBdCgwKSsiLiIra2Uuc2xpY2UoMSk6a2UpKyhTZTwwPyJlIjoiZSsiKStTZX1mdW5jdGlvbiBBZShrZSxTZSxJZSl7dmFyIFRlLEVlO2lmKFNlPDApe2ZvcihFZT1JZSsiLiI7KytTZTtFZSs9SWUpO2tlPUVlK2tlfWVsc2UgaWYoKytTZT4oVGU9a2UubGVuZ3RoKSl7''@;'; + put 'put ''Zm9yKEVlPUllLFNlLT1UZTstLVNlO0VlKz1JZSk7a2UrPUVlfWVsc2UgU2U8VGUmJihrZT1rZS5zbGljZSgwLFNlKSsiLiIra2Uuc2xpY2UoU2UpKTtyZXR1cm4ga2V9KEU9ZnVuY3Rpb24ga2UoU2Upe3ZhciBJZSxUZSxFZSxoZSxPLHosbmUsdGUseCxQLFY9QXQucHJvdG90eXBlPXtjb25z''@;'; + put 'put ''dHJ1Y3RvcjpBdCx0b1N0cmluZzpudWxsLHZhbHVlT2Y6bnVsbH0sVD1uZXcgQXQoMSksUz0yMCxGPTQseWU9LTcsQ2U9MjEsRGU9LTFlNyxQZT0xZTcsUWU9ITEsJGU9MSxndD0wLHd0PXtwcmVmaXg6IiIsZ3JvdXBTaXplOjMsc2Vjb25kYXJ5R3JvdXBTaXplOjAsZ3JvdXBTZXBhcmF0b3I6''@;'; + put 'put ''IiwiLGRlY2ltYWxTZXBhcmF0b3I6Ii4iLGZyYWN0aW9uR3JvdXBTaXplOjAsZnJhY3Rpb25Hcm91cFNlcGFyYXRvcjoiXHhhMCIsc3VmZml4OiIifSx2dD0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IjtmdW5jdGlvbiBBdCh0dCxldCl7dmFyIGF0LEx0LEN0LGZ0LEh0''@;'; + put 'put ''LEdlLFVlLHl0LGp0PXRoaXM7aWYoIShqdCBpbnN0YW5jZW9mIEF0KSlyZXR1cm4gbmV3IEF0KHR0LGV0KTtpZihudWxsPT1ldCl7aWYodHQgaW5zdGFuY2VvZiBBdClyZXR1cm4ganQucz10dC5zLGp0LmU9dHQuZSx2b2lkKGp0LmM9KHR0PXR0LmMpP3R0LnNsaWNlKCk6dHQpO2lmKChHZT0i''@;'; + put 'put ''bnVtYmVyIj09dHlwZW9mIHR0KSYmMCp0dD09MCl7aWYoanQucz0xL3R0PDA/KHR0PS10dCwtMSk6MSx0dD09PX5+dHQpe2ZvcihmdD0wLEh0PXR0OzEwPD1IdDtIdC89MTAsZnQrKyk7cmV0dXJuIGp0LmU9ZnQsdm9pZChqdC5jPVt0dF0pfXl0PVN0cmluZyh0dCl9ZWxzZXtpZih5dD1TdHJp''@;'; + put 'put ''bmcodHQpLCFNZS50ZXN0KHl0KSlyZXR1cm4gRWUoanQseXQsR2UpO2p0LnM9NDU9PXl0LmNoYXJDb2RlQXQoMCk/KHl0PXl0LnNsaWNlKDEpLC0xKToxfS0xPChmdD15dC5pbmRleE9mKCIuIikpJiYoeXQ9eXQucmVwbGFjZSgiLiIsIiIpKSwwPChIdD15dC5zZWFyY2goL2UvaSkpPyhmdDww''@;'; + put 'put ''JiYoZnQ9SHQpLGZ0Kz0reXQuc2xpY2UoSHQrMSkseXQ9eXQuc3Vic3RyaW5nKDAsSHQpKTpmdDwwJiYoZnQ9eXQubGVuZ3RoKX1lbHNle2lmKGNlKGV0LDIsdnQubGVuZ3RoLCJCYXNlIikseXQ9U3RyaW5nKHR0KSwxMD09ZXQpcmV0dXJuIG9uKGp0PW5ldyBBdCh0dCBpbnN0YW5jZW9mIEF0''@;'; + put 'put ''P3R0Onl0KSxTK2p0LmUrMSxGKTtpZihHZT0ibnVtYmVyIj09dHlwZW9mIHR0KXtpZigwKnR0IT0wKXJldHVybiBFZShqdCx5dCxHZSxldCk7aWYoanQucz0xL3R0PDA/KHl0PXl0LnNsaWNlKDEpLC0xKToxLEF0LkRFQlVHJiYxNTx5dC5yZXBsYWNlKC9eMFwuMCp8XC4vLCIiKS5sZW5ndGgp''@;'; + put 'put ''dGhyb3cgRXJyb3IoaWUrdHQpO0dlPSExfWVsc2UganQucz00NT09PXl0LmNoYXJDb2RlQXQoMCk/KHl0PXl0LnNsaWNlKDEpLC0xKToxO2ZvcihhdD12dC5zbGljZSgwLGV0KSxmdD1IdD0wLFVlPXl0Lmxlbmd0aDtIdDxVZTtIdCsrKWlmKGF0LmluZGV4T2YoTHQ9eXQuY2hhckF0KEh0KSk8''@;'; + put 'put ''MCl7aWYoIi4iPT1MdCl7aWYoZnQ8SHQpe2Z0PVVlO2NvbnRpbnVlfX1lbHNlIGlmKCFDdCYmKHl0PT15dC50b1VwcGVyQ2FzZSgpJiYoeXQ9eXQudG9Mb3dlckNhc2UoKSl8fHl0PT15dC50b0xvd2VyQ2FzZSgpJiYoeXQ9eXQudG9VcHBlckNhc2UoKSkpKXtDdD0hMCxIdD0tMSxmdD0wO2Nv''@;'; + put 'put ''bnRpbnVlfXJldHVybiBFZShqdCxTdHJpbmcodHQpLEdlLGV0KX0tMTwoZnQ9KHl0PVRlKHl0LGV0LDEwLGp0LnMpKS5pbmRleE9mKCIuIikpP3l0PXl0LnJlcGxhY2UoIi4iLCIiKTpmdD15dC5sZW5ndGh9Zm9yKEh0PTA7NDg9PT15dC5jaGFyQ29kZUF0KEh0KTtIdCsrKTtmb3IoVWU9eXQu''@;'; + put 'put ''bGVuZ3RoOzQ4PT09eXQuY2hhckNvZGVBdCgtLVVlKTspO2lmKHl0PXl0LnNsaWNlKEh0LCsrVWUpKXtpZihVZS09SHQsR2UmJkF0LkRFQlVHJiYxNTxVZSYmKFc8dHR8fHR0IT09USh0dCkpKXRocm93IEVycm9yKGllK2p0LnMqdHQpO2lmKFBlPChmdD1mdC1IdC0xKSlqdC5jPWp0LmU9bnVs''@;'; + put 'put ''bDtlbHNlIGlmKGZ0PERlKWp0LmM9W2p0LmU9MF07ZWxzZXtpZihqdC5lPWZ0LGp0LmM9W10sSHQ9KGZ0KzEpJVksZnQ8MCYmKEh0Kz1ZKSxIdDxVZSl7Zm9yKEh0JiZqdC5jLnB1c2goK3l0LnNsaWNlKDAsSHQpKSxVZS09WTtIdDxVZTspanQuYy5wdXNoKCt5dC5zbGljZShIdCxIdCs9WSkp''@;'; + put 'put ''O3l0PXl0LnNsaWNlKEh0KSxIdD1ZLXl0Lmxlbmd0aH1lbHNlIEh0LT1VZTtmb3IoO0h0LS07eXQrPSIwIik7anQuYy5wdXNoKCt5dCl9fWVsc2UganQuYz1banQuZT0wXX1mdW5jdGlvbiBtdCh0dCxldCxhdCxMdCl7dmFyIEN0LGZ0LEh0LEdlLFVlO2lmKG51bGw9PWF0P2F0PUY6Y2UoYXQs''@;'; + put 'put ''MCw4KSwhdHQuYylyZXR1cm4gdHQudG9TdHJpbmcoKTtpZihDdD10dC5jWzBdLEh0PXR0LmUsbnVsbD09ZXQpVWU9c2UodHQuYyksVWU9MT09THR8fDI9PUx0JiYoSHQ8PXllfHxDZTw9SHQpP3ZlKFVlLEh0KTpBZShVZSxIdCwiMCIpO2Vsc2UgaWYoZnQ9KHR0PW9uKG5ldyBBdCh0dCksZXQs''@;'; + put 'put ''YXQpKS5lLEdlPShVZT1zZSh0dC5jKSkubGVuZ3RoLDE9PUx0fHwyPT1MdCYmKGV0PD1mdHx8ZnQ8PXllKSl7Zm9yKDtHZTxldDtVZSs9IjAiLEdlKyspO1VlPXZlKFVlLGZ0KX1lbHNlIGlmKGV0LT1IdCxVZT1BZShVZSxmdCwiMCIpLEdlPGZ0KzEpe2lmKDA8LS1ldClmb3IoVWUrPSIuIjtl''@;'; + put 'put ''dC0tO1VlKz0iMCIpO31lbHNlIGlmKDA8KGV0Kz1mdC1HZSkpZm9yKGZ0KzE9PUdlJiYoVWUrPSIuIik7ZXQtLTtVZSs9IjAiKTtyZXR1cm4gdHQuczwwJiZDdD8iLSIrVWU6VWV9ZnVuY3Rpb24gaHQodHQsZXQpe2Zvcih2YXIgYXQsTHQ9MSxDdD1uZXcgQXQodHRbMF0pO0x0PHR0Lmxlbmd0''@;'; + put 'put ''aDtMdCsrKXtpZighKGF0PW5ldyBBdCh0dFtMdF0pKS5zKXtDdD1hdDticmVha31ldC5jYWxsKEN0LGF0KSYmKEN0PWF0KX1yZXR1cm4gQ3R9ZnVuY3Rpb24gQnQodHQsZXQsYXQpe2Zvcih2YXIgTHQ9MSxDdD1ldC5sZW5ndGg7IWV0Wy0tQ3RdO2V0LnBvcCgpKTtmb3IoQ3Q9ZXRbMF07MTA8''@;'; + put 'put ''PUN0O0N0Lz0xMCxMdCsrKTtyZXR1cm4gdHQuYz0oYXQ9THQrYXQqWS0xKT5QZT90dC5lPW51bGw6YXQ8RGU/W3R0LmU9MF06KHR0LmU9YXQsZXQpLHR0fWZ1bmN0aW9uIG9uKHR0LGV0LGF0LEx0KXt2YXIgQ3QsZnQsSHQsR2UsVWUseXQsanQsUXQ9dHQuYyxnbj1OO2lmKFF0KXtlOntmb3Io''@;'; + put 'put ''Q3Q9MSxHZT1RdFswXTsxMDw9R2U7R2UvPTEwLEN0KyspO2lmKChmdD1ldC1DdCk8MClmdCs9WSxqdD0oVWU9UXRbeXQ9MF0pL2duW0N0LShIdD1ldCktMV0lMTB8MDtlbHNlIGlmKCh5dD1VKChmdCsxKS9ZKSk+PVF0Lmxlbmd0aCl7aWYoIUx0KWJyZWFrIGU7Zm9yKDtRdC5sZW5ndGg8PXl0''@;'; + put 'put ''O1F0LnB1c2goMCkpO1VlPWp0PTAsSHQ9KGZ0JT1ZKS1ZKyhDdD0xKX1lbHNle2ZvcihVZT1HZT1RdFt5dF0sQ3Q9MTsxMDw9R2U7R2UvPTEwLEN0KyspO2p0PShIdD0oZnQlPVkpLVkrQ3QpPDA/MDpVZS9nbltDdC1IdC0xXSUxMHwwfWlmKEx0PUx0fHxldDwwfHxudWxsIT1RdFt5dCsxXXx8''@;'; + put 'put ''KEh0PDA/VWU6VWUlZ25bQ3QtSHQtMV0pLEx0PWF0PDQ/KGp0fHxMdCkmJigwPT1hdHx8YXQ9PSh0dC5zPDA/MzoyKSk6NTxqdHx8NT09anQmJig0PT1hdHx8THR8fDY9PWF0JiYoMDxmdD8wPEh0P1VlL2duW0N0LUh0XTowOlF0W3l0LTFdKSUxMCYxfHxhdD09KHR0LnM8MD84OjcpKSxldDwx''@;'; + put 'put ''fHwhUXRbMF0pcmV0dXJuIFF0Lmxlbmd0aD0wLEx0PyhRdFswXT1nblsoWS0oZXQtPXR0LmUrMSklWSklWV0sdHQuZT0tZXR8fDApOlF0WzBdPXR0LmU9MCx0dDtpZigwPT1mdD8oUXQubGVuZ3RoPXl0LEdlPTEseXQtLSk6KFF0Lmxlbmd0aD15dCsxLEdlPWduW1ktZnRdLFF0W3l0XT0wPEh0''@;'; + put 'put ''P1EoVWUvZ25bQ3QtSHRdJWduW0h0XSkqR2U6MCksTHQpZm9yKDs7KXtpZigwPT15dCl7Zm9yKGZ0PTEsSHQ9UXRbMF07MTA8PUh0O0h0Lz0xMCxmdCsrKTtmb3IoSHQ9UXRbMF0rPUdlLEdlPTE7MTA8PUh0O0h0Lz0xMCxHZSsrKTtmdCE9R2UmJih0dC5lKyssUXRbMF09PWxlJiYoUXRbMF09''@;'; + put 'put ''MSkpO2JyZWFrfWlmKFF0W3l0XSs9R2UsUXRbeXRdIT1sZSlicmVhaztRdFt5dC0tXT0wLEdlPTF9Zm9yKGZ0PVF0Lmxlbmd0aDswPT09UXRbLS1mdF07UXQucG9wKCkpO310dC5lPlBlP3R0LmM9dHQuZT1udWxsOnR0LmU8RGUmJih0dC5jPVt0dC5lPTBdKX1yZXR1cm4gdHR9ZnVuY3Rpb24g''@;'; + put 'put ''X3QodHQpe3ZhciBldCxhdD10dC5lO3JldHVybiBudWxsPT09YXQ/dHQudG9TdHJpbmcoKTooZXQ9c2UodHQuYyksZXQ9YXQ8PXllfHxDZTw9YXQ/dmUoZXQsYXQpOkFlKGV0LGF0LCIwIiksdHQuczwwPyItIitldDpldCl9cmV0dXJuIEF0LmNsb25lPWtlLEF0LlJPVU5EX1VQPTAsQXQuUk9V''@;'; + put 'put ''TkRfRE9XTj0xLEF0LlJPVU5EX0NFSUw9MixBdC5ST1VORF9GTE9PUj0zLEF0LlJPVU5EX0hBTEZfVVA9NCxBdC5ST1VORF9IQUxGX0RPV049NSxBdC5ST1VORF9IQUxGX0VWRU49NixBdC5ST1VORF9IQUxGX0NFSUw9NyxBdC5ST1VORF9IQUxGX0ZMT09SPTgsQXQuRVVDTElEPTksQXQuY29u''@;'; + put 'put ''ZmlnPUF0LnNldD1mdW5jdGlvbih0dCl7dmFyIGV0LGF0O2lmKG51bGwhPXR0KXtpZigib2JqZWN0IiE9dHlwZW9mIHR0KXRocm93IEVycm9yKForIk9iamVjdCBleHBlY3RlZDogIit0dCk7aWYodHQuaGFzT3duUHJvcGVydHkoZXQ9IkRFQ0lNQUxfUExBQ0VTIikmJihjZShhdD10dFtldF0s''@;'; + put 'put ''MCxxLGV0KSxTPWF0KSx0dC5oYXNPd25Qcm9wZXJ0eShldD0iUk9VTkRJTkdfTU9ERSIpJiYoY2UoYXQ9dHRbZXRdLDAsOCxldCksRj1hdCksdHQuaGFzT3duUHJvcGVydHkoZXQ9IkVYUE9ORU5USUFMX0FUIikmJigoYXQ9dHRbZXRdKSYmYXQucG9wPyhjZShhdFswXSwtcSwwLGV0KSxjZShh''@;'; + put 'put ''dFsxXSwwLHEsZXQpLHllPWF0WzBdLENlPWF0WzFdKTooY2UoYXQsLXEscSxldCkseWU9LShDZT1hdDwwPy1hdDphdCkpKSx0dC5oYXNPd25Qcm9wZXJ0eShldD0iUkFOR0UiKSlpZigoYXQ9dHRbZXRdKSYmYXQucG9wKWNlKGF0WzBdLC1xLC0xLGV0KSxjZShhdFsxXSwxLHEsZXQpLERlPWF0''@;'; + put 'put ''WzBdLFBlPWF0WzFdO2Vsc2V7aWYoY2UoYXQsLXEscSxldCksIWF0KXRocm93IEVycm9yKForZXQrIiBjYW5ub3QgYmUgemVybzogIithdCk7RGU9LShQZT1hdDwwPy1hdDphdCl9aWYodHQuaGFzT3duUHJvcGVydHkoZXQ9IkNSWVBUTyIpKXtpZigoYXQ9dHRbZXRdKSE9PSEhYXQpdGhyb3cg''@;'; + put 'put ''RXJyb3IoWitldCsiIG5vdCB0cnVlIG9yIGZhbHNlOiAiK2F0KTtpZihhdCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjcnlwdG98fCFjcnlwdG98fCFjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzJiYhY3J5cHRvLnJhbmRvbUJ5dGVzKXRocm93IFFlPSFhdCxFcnJvcihaKyJjcnlwdG8gdW5hdmFp''@;'; + put 'put ''bGFibGUiKTtRZT1hdH1lbHNlIFFlPWF0fWlmKHR0Lmhhc093blByb3BlcnR5KGV0PSJNT0RVTE9fTU9ERSIpJiYoY2UoYXQ9dHRbZXRdLDAsOSxldCksJGU9YXQpLHR0Lmhhc093blByb3BlcnR5KGV0PSJQT1dfUFJFQ0lTSU9OIikmJihjZShhdD10dFtldF0sMCxxLGV0KSxndD1hdCksdHQu''@;'; + put 'put ''aGFzT3duUHJvcGVydHkoZXQ9IkZPUk1BVCIpKXtpZigib2JqZWN0IiE9dHlwZW9mKGF0PXR0W2V0XSkpdGhyb3cgRXJyb3IoWitldCsiIG5vdCBhbiBvYmplY3Q6ICIrYXQpO3d0PWF0fWlmKHR0Lmhhc093blByb3BlcnR5KGV0PSJBTFBIQUJFVCIpKXtpZigic3RyaW5nIiE9dHlwZW9mKGF0''@;'; + put 'put ''PXR0W2V0XSl8fC9eLiR8WystLlxzXXwoLikuKlwxLy50ZXN0KGF0KSl0aHJvdyBFcnJvcihaK2V0KyIgaW52YWxpZDogIithdCk7dnQ9YXR9fXJldHVybntERUNJTUFMX1BMQUNFUzpTLFJPVU5ESU5HX01PREU6RixFWFBPTkVOVElBTF9BVDpbeWUsQ2VdLFJBTkdFOltEZSxQZV0sQ1JZUFRP''@;'; + put 'put ''OlFlLE1PRFVMT19NT0RFOiRlLFBPV19QUkVDSVNJT046Z3QsRk9STUFUOnd0LEFMUEhBQkVUOnZ0fX0sQXQuaXNCaWdOdW1iZXI9ZnVuY3Rpb24odHQpe3JldHVybiB0dCBpbnN0YW5jZW9mIEF0fHx0dCYmITA9PT10dC5faXNCaWdOdW1iZXJ8fCExfSxBdC5tYXhpbXVtPUF0Lm1heD1mdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBodChhcmd1bWVudHMsVi5sdCl9LEF0Lm1pbmltdW09QXQubWluPWZ1bmN0aW9uKCl7cmV0dXJuIGh0KGFyZ3VtZW50cyxWLmd0KX0sQXQucmFuZG9tPShoZT05MDA3MTk5MjU0NzQwOTkyLE89TWF0aC5yYW5kb20oKSpoZSYyMDk3MTUxP2Z1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IFEoTWF0aC5yYW5kb20oKSpoZSl9OmZ1bmN0aW9uKCl7cmV0dXJuIDgzODg2MDgqKDEwNzM3NDE4MjQqTWF0aC5yYW5kb20oKXwwKSsoODM4ODYwOCpNYXRoLnJhbmRvbSgpfDApfSxmdW5jdGlvbih0dCl7dmFyIGV0LGF0LEx0LEN0LGZ0LEh0PTAsR2U9W10sVWU9bmV3IEF0KFQpO2lmKG51''@;'; + put 'put ''bGw9PXR0P3R0PVM6Y2UodHQsMCxxKSxDdD1VKHR0L1kpLFFlKWlmKGNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2ZvcihldD1jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheShDdCo9MikpO0h0PEN0Oyk5ZTE1PD0oZnQ9MTMxMDcyKmV0W0h0XSsoZXRbSHQrMV0+Pj4xMSkp''@;'; + put 'put ''PyhhdD1jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheSgyKSksZXRbSHRdPWF0WzBdLGV0W0h0KzFdPWF0WzFdKTooR2UucHVzaChmdCUxZTE0KSxIdCs9Mik7SHQ9Q3QvMn1lbHNle2lmKCFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgUWU9ITEsRXJyb3IoWisiY3J5cHRv''@;'; + put 'put ''IHVuYXZhaWxhYmxlIik7Zm9yKGV0PWNyeXB0by5yYW5kb21CeXRlcyhDdCo9Nyk7SHQ8Q3Q7KTllMTU8PShmdD0yODE0NzQ5NzY3MTA2NTYqKDMxJmV0W0h0XSkrMTA5OTUxMTYyNzc3NipldFtIdCsxXSs0Mjk0OTY3Mjk2KmV0W0h0KzJdKzE2Nzc3MjE2KmV0W0h0KzNdKyhldFtIdCs0XTw8''@;'; + put 'put ''MTYpKyhldFtIdCs1XTw8OCkrZXRbSHQrNl0pP2NyeXB0by5yYW5kb21CeXRlcyg3KS5jb3B5KGV0LEh0KTooR2UucHVzaChmdCUxZTE0KSxIdCs9Nyk7SHQ9Q3QvN31pZighUWUpZm9yKDtIdDxDdDspKGZ0PU8oKSk8OWUxNSYmKEdlW0h0KytdPWZ0JTFlMTQpO2ZvcihDdD1HZVstLUh0XSx0''@;'; + put 'put ''dCU9WSxDdCYmdHQmJihHZVtIdF09UShDdC8oZnQ9TltZLXR0XSkpKmZ0KTswPT09R2VbSHRdO0dlLnBvcCgpLEh0LS0pO2lmKEh0PDApR2U9W0x0PTBdO2Vsc2V7Zm9yKEx0PS0xOzA9PT1HZVswXTtHZS5zcGxpY2UoMCwxKSxMdC09WSk7Zm9yKEh0PTEsZnQ9R2VbMF07MTA8PWZ0O2Z0Lz0x''@;'; + put 'put ''MCxIdCsrKTtIdDxZJiYoTHQtPVktSHQpfXJldHVybiBVZS5lPUx0LFVlLmM9R2UsVWV9KSxBdC5zdW09ZnVuY3Rpb24oKXtmb3IodmFyIHR0PTEsZXQ9YXJndW1lbnRzLGF0PW5ldyBBdChldFswXSk7dHQ8ZXQubGVuZ3RoOylhdD1hdC5wbHVzKGV0W3R0KytdKTtyZXR1cm4gYXR9LFRlPWZ1''@;'; + put 'put ''bmN0aW9uKCl7dmFyIHR0PSIwMTIzNDU2Nzg5IjtmdW5jdGlvbiBldChhdCxMdCxDdCxmdCl7Zm9yKHZhciBIdCxHZSxVZT1bMF0seXQ9MCxqdD1hdC5sZW5ndGg7eXQ8anQ7KXtmb3IoR2U9VWUubGVuZ3RoO0dlLS07VWVbR2VdKj1MdCk7Zm9yKFVlWzBdKz1mdC5pbmRleE9mKGF0LmNoYXJB''@;'; + put 'put ''dCh5dCsrKSksSHQ9MDtIdDxVZS5sZW5ndGg7SHQrKylVZVtIdF0+Q3QtMSYmKG51bGw9PVVlW0h0KzFdJiYoVWVbSHQrMV09MCksVWVbSHQrMV0rPVVlW0h0XS9DdHwwLFVlW0h0XSU9Q3QpfXJldHVybiBVZS5yZXZlcnNlKCl9cmV0dXJuIGZ1bmN0aW9uKGF0LEx0LEN0LGZ0LEh0KXt2YXIg''@;'; + put 'put ''R2UsVWUseXQsanQsUXQsZ24sZG4seW4sbG49YXQuaW5kZXhPZigiLiIpLE5uPVMsYm49Rjtmb3IoMDw9bG4mJihqdD1ndCxndD0wLGF0PWF0LnJlcGxhY2UoIi4iLCIiKSxnbj0oeW49bmV3IEF0KEx0KSkucG93KGF0Lmxlbmd0aC1sbiksZ3Q9anQseW4uYz1ldChBZShzZShnbi5jKSxnbi5l''@;'; + put 'put ''LCIwIiksMTAsQ3QsdHQpLHluLmU9eW4uYy5sZW5ndGgpLHl0PWp0PShkbj1ldChhdCxMdCxDdCxIdD8oR2U9dnQsdHQpOihHZT10dCx2dCkpKS5sZW5ndGg7MD09ZG5bLS1qdF07ZG4ucG9wKCkpO2lmKCFkblswXSlyZXR1cm4gR2UuY2hhckF0KDApO2lmKGxuPDA/LS15dDooZ24uYz1kbixn''@;'; + put 'put ''bi5lPXl0LGduLnM9ZnQsZG49KGduPUllKGduLHluLE5uLGJuLEN0KSkuYyxRdD1nbi5yLHl0PWduLmUpLGxuPWRuW1VlPXl0K05uKzFdLGp0PUN0LzIsUXQ9UXR8fFVlPDB8fG51bGwhPWRuW1VlKzFdLFF0PWJuPDQ/KG51bGwhPWxufHxRdCkmJigwPT1ibnx8Ym49PShnbi5zPDA/MzoyKSk6''@;'; + put 'put ''anQ8bG58fGxuPT1qdCYmKDQ9PWJufHxRdHx8Nj09Ym4mJjEmZG5bVWUtMV18fGJuPT0oZ24uczwwPzg6NykpLFVlPDF8fCFkblswXSlhdD1RdD9BZShHZS5jaGFyQXQoMSksLU5uLEdlLmNoYXJBdCgwKSk6R2UuY2hhckF0KDApO2Vsc2V7aWYoZG4ubGVuZ3RoPVVlLFF0KWZvcigtLUN0Oysr''@;'; + put 'put ''ZG5bLS1VZV0+Q3Q7KWRuW1VlXT0wLFVlfHwoKyt5dCxkbj1bMV0uY29uY2F0KGRuKSk7Zm9yKGp0PWRuLmxlbmd0aDshZG5bLS1qdF07KTtmb3IobG49MCxhdD0iIjtsbjw9anQ7YXQrPUdlLmNoYXJBdChkbltsbisrXSkpO2F0PUFlKGF0LHl0LEdlLmNoYXJBdCgwKSl9cmV0dXJuIGF0fX0o''@;'; + put 'put ''KSxJZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHR0KEx0LEN0LGZ0KXt2YXIgSHQsR2UsVWUseXQsanQ9MCxRdD1MdC5sZW5ndGgsZ249Q3QlZWUsZG49Q3QvZWV8MDtmb3IoTHQ9THQuc2xpY2UoKTtRdC0tOylqdD0oKEdlPWduKihVZT1MdFtRdF0lZWUpKyhIdD1kbipVZSsoeXQ9THRbUXRdL2Vl''@;'; + put 'put ''fDApKmduKSVlZSplZStqdCkvZnR8MCkrKEh0L2VlfDApK2RuKnl0LEx0W1F0XT1HZSVmdDtyZXR1cm4ganQmJihMdD1banRdLmNvbmNhdChMdCkpLEx0fWZ1bmN0aW9uIGV0KEx0LEN0LGZ0LEh0KXt2YXIgR2UsVWU7aWYoZnQhPUh0KVVlPUh0PGZ0PzE6LTE7ZWxzZSBmb3IoR2U9VWU9MDtH''@;'; + put 'put ''ZTxmdDtHZSsrKWlmKEx0W0dlXSE9Q3RbR2VdKXtVZT1MdFtHZV0+Q3RbR2VdPzE6LTE7YnJlYWt9cmV0dXJuIFVlfWZ1bmN0aW9uIGF0KEx0LEN0LGZ0LEh0KXtmb3IodmFyIEdlPTA7ZnQtLTspTHRbZnRdLT1HZSxMdFtmdF09KEdlPUx0W2Z0XTxDdFtmdF0/MTowKSpIdCtMdFtmdF0tQ3Rb''@;'; + put 'put ''ZnRdO2Zvcig7IUx0WzBdJiYxPEx0Lmxlbmd0aDtMdC5zcGxpY2UoMCwxKSk7fXJldHVybiBmdW5jdGlvbihMdCxDdCxmdCxIdCxHZSl7dmFyIFVlLHl0LGp0LFF0LGduLGRuLHluLGxuLE5uLGJuLGVyLHNyLFhuLEZyLHhyLHF0LHByLG5yPUx0LnM9PUN0LnM/MTotMSxBbj1MdC5jLHFuPUN0''@;'; + put 'put ''LmM7aWYoIShBbiYmQW5bMF0mJnFuJiZxblswXSkpcmV0dXJuIG5ldyBBdChMdC5zJiZDdC5zJiYoQW4/IXFufHxBblswXSE9cW5bMF06cW4pP0FuJiYwPT1BblswXXx8IXFuPzAqbnI6bnIvMDpOYU4pO2ZvcihObj0obG49bmV3IEF0KG5yKSkuYz1bXSxucj1mdCsoeXQ9THQuZS1DdC5lKSsx''@;'; + put 'put ''LEdlfHwoR2U9bGUseXQ9SihMdC5lL1kpLUooQ3QuZS9ZKSxucj1uci9ZfDApLGp0PTA7cW5banRdPT0oQW5banRdfHwwKTtqdCsrKTtpZihxbltqdF0+KEFuW2p0XXx8MCkmJnl0LS0sbnI8MClObi5wdXNoKDEpLFF0PSEwO2Vsc2V7Zm9yKEZyPUFuLmxlbmd0aCxxdD1xbi5sZW5ndGgsbnIr''@;'; + put 'put ''PTIsMTwoZ249UShHZS8ocW5banQ9MF0rMSkpKSYmKHFuPXR0KHFuLGduLEdlKSxBbj10dChBbixnbixHZSkscXQ9cW4ubGVuZ3RoLEZyPUFuLmxlbmd0aCksWG49cXQsZXI9KGJuPUFuLnNsaWNlKDAscXQpKS5sZW5ndGg7ZXI8cXQ7Ym5bZXIrK109MCk7cHI9cW4uc2xpY2UoKSxwcj1bMF0u''@;'; + put 'put ''Y29uY2F0KHByKSx4cj1xblswXSxxblsxXT49R2UvMiYmeHIrKztkb3tpZihnbj0wLChVZT1ldChxbixibixxdCxlcikpPDApe2lmKHNyPWJuWzBdLHF0IT1lciYmKHNyPXNyKkdlKyhiblsxXXx8MCkpLDE8KGduPVEoc3IveHIpKSlmb3IoR2U8PWduJiYoZ249R2UtMSkseW49KGRuPXR0KHFu''@;'; + put 'put ''LGduLEdlKSkubGVuZ3RoLGVyPWJuLmxlbmd0aDsxPT1ldChkbixibix5bixlcik7KWduLS0sYXQoZG4scXQ8eW4/cHI6cW4seW4sR2UpLHluPWRuLmxlbmd0aCxVZT0xO2Vsc2UgMD09Z24mJihVZT1nbj0xKSx5bj0oZG49cW4uc2xpY2UoKSkubGVuZ3RoO2lmKHluPGVyJiYoZG49WzBdLmNv''@;'; + put 'put ''bmNhdChkbikpLGF0KGJuLGRuLGVyLEdlKSxlcj1ibi5sZW5ndGgsLTE9PVVlKWZvcig7ZXQocW4sYm4scXQsZXIpPDE7KWduKyssYXQoYm4scXQ8ZXI/cHI6cW4sZXIsR2UpLGVyPWJuLmxlbmd0aH1lbHNlIDA9PT1VZSYmKGduKyssYm49WzBdKTtObltqdCsrXT1nbixiblswXT9ibltlcisr''@;'; + put 'put ''XT1BbltYbl18fDA6KGJuPVtBbltYbl1dLGVyPTEpfXdoaWxlKChYbisrPEZyfHxudWxsIT1iblswXSkmJm5yLS0pO1F0PW51bGwhPWJuWzBdLE5uWzBdfHxObi5zcGxpY2UoMCwxKX1pZihHZT09bGUpe2ZvcihqdD0xLG5yPU5uWzBdOzEwPD1ucjtuci89MTAsanQrKyk7b24obG4sZnQrKGxu''@;'; + put 'put ''LmU9anQreXQqWS0xKSsxLEh0LFF0KX1lbHNlIGxuLmU9eXQsbG4ucj0rUXQ7cmV0dXJuIGxufX0oKSx6PS9eKC0/KTAoW3hib10pKD89XHdbXHcuXSokKS9pLG5lPS9eKFteLl0rKVwuJC8sdGU9L15cLihbXi5dKykkLyx4PS9eLT8oSW5maW5pdHl8TmFOKSQvLFA9L15ccypcKyg/PVtcdy5d''@;'; + put 'put ''KXxeXHMrfFxzKyQvZyxFZT1mdW5jdGlvbih0dCxldCxhdCxMdCl7dmFyIEN0LGZ0PWF0P2V0OmV0LnJlcGxhY2UoUCwiIik7aWYoeC50ZXN0KGZ0KSl0dC5zPWlzTmFOKGZ0KT9udWxsOmZ0PDA/LTE6MSx0dC5jPXR0LmU9bnVsbDtlbHNle2lmKCFhdCYmKGZ0PWZ0LnJlcGxhY2UoeixmdW5j''@;'; + put 'put ''dGlvbihIdCxHZSxVZSl7cmV0dXJuIEN0PSJ4Ij09KFVlPVVlLnRvTG93ZXJDYXNlKCkpPzE2OiJiIj09VWU/Mjo4LEx0JiZMdCE9Q3Q/SHQ6R2V9KSxMdCYmKEN0PUx0LGZ0PWZ0LnJlcGxhY2UobmUsIiQxIikucmVwbGFjZSh0ZSwiMC4kMSIpKSxldCE9ZnQpKXJldHVybiBuZXcgQXQoZnQs''@;'; + put 'put ''Q3QpO2lmKEF0LkRFQlVHKXRocm93IEVycm9yKForIk5vdCBhIisoTHQ/IiBiYXNlICIrTHQ6IiIpKyIgbnVtYmVyOiAiK2V0KTt0dC5jPXR0LmU9dHQucz1udWxsfX0sVi5hYnNvbHV0ZVZhbHVlPVYuYWJzPWZ1bmN0aW9uKCl7dmFyIHR0PW5ldyBBdCh0aGlzKTtyZXR1cm4gdHQuczwwJiYo''@;'; + put 'put ''dHQucz0xKSx0dH0sVi5jb21wYXJlZFRvPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gb2UodGhpcyxuZXcgQXQodHQsZXQpKX0sVi5kZWNpbWFsUGxhY2VzPVYuZHA9ZnVuY3Rpb24odHQsZXQpe3ZhciBhdCxMdCxDdDtpZihudWxsIT10dClyZXR1cm4gY2UodHQsMCxxKSxudWxsPT1ldD9ldD1G''@;'; + put 'put ''OmNlKGV0LDAsOCksb24obmV3IEF0KHRoaXMpLHR0K3RoaXMuZSsxLGV0KTtpZighKGF0PXRoaXMuYykpcmV0dXJuIG51bGw7aWYoTHQ9KChDdD1hdC5sZW5ndGgtMSktSih0aGlzLmUvWSkpKlksQ3Q9YXRbQ3RdKWZvcig7Q3QlMTA9PTA7Q3QvPTEwLEx0LS0pO3JldHVybiBMdDwwJiYoTHQ9''@;'; + put 'put ''MCksTHR9LFYuZGl2aWRlZEJ5PVYuZGl2PWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gSWUodGhpcyxuZXcgQXQodHQsZXQpLFMsRil9LFYuZGl2aWRlZFRvSW50ZWdlckJ5PVYuaWRpdj1mdW5jdGlvbih0dCxldCl7cmV0dXJuIEllKHRoaXMsbmV3IEF0KHR0LGV0KSwwLDEpfSxWLmV4cG9uZW50''@;'; + put 'put ''aWF0ZWRCeT1WLnBvdz1mdW5jdGlvbih0dCxldCl7dmFyIGF0LEx0LEN0LGZ0LEh0LEdlLFVlLHl0LGp0PXRoaXM7aWYoKHR0PW5ldyBBdCh0dCkpLmMmJiF0dC5pc0ludGVnZXIoKSl0aHJvdyBFcnJvcihaKyJFeHBvbmVudCBub3QgYW4gaW50ZWdlcjogIitfdCh0dCkpO2lmKG51bGwhPWV0''@;'; + put 'put ''JiYoZXQ9bmV3IEF0KGV0KSksSHQ9MTQ8dHQuZSwhanQuY3x8IWp0LmNbMF18fDE9PWp0LmNbMF0mJiFqdC5lJiYxPT1qdC5jLmxlbmd0aHx8IXR0LmN8fCF0dC5jWzBdKXJldHVybiB5dD1uZXcgQXQoTWF0aC5wb3coK190KGp0KSxIdD8yLWRlKHR0KTorX3QodHQpKSksZXQ/eXQubW9kKGV0''@;'; + put 'put ''KTp5dDtpZihHZT10dC5zPDAsZXQpe2lmKGV0LmM/IWV0LmNbMF06IWV0LnMpcmV0dXJuIG5ldyBBdChOYU4pOyhMdD0hR2UmJmp0LmlzSW50ZWdlcigpJiZldC5pc0ludGVnZXIoKSkmJihqdD1qdC5tb2QoZXQpKX1lbHNle2lmKDk8dHQuZSYmKDA8anQuZXx8anQuZTwtMXx8KDA9PWp0LmU/''@;'; + put 'put ''MTxqdC5jWzBdfHxIdCYmMjRlNzw9anQuY1sxXTpqdC5jWzBdPDhlMTN8fEh0JiZqdC5jWzBdPD05OTk5OTc1ZTcpKSlyZXR1cm4gZnQ9anQuczwwJiZkZSh0dCk/LTA6MCwtMTxqdC5lJiYoZnQ9MS9mdCksbmV3IEF0KEdlPzEvZnQ6ZnQpO2d0JiYoZnQ9VShndC9ZKzIpKX1mb3IoVWU9SHQ/''@;'; + put 'put ''KGF0PW5ldyBBdCguNSksR2UmJih0dC5zPTEpLGRlKHR0KSk6KEN0PU1hdGguYWJzKCtfdCh0dCkpKSUyLHl0PW5ldyBBdChUKTs7KXtpZihVZSl7aWYoISh5dD15dC50aW1lcyhqdCkpLmMpYnJlYWs7ZnQ/eXQuYy5sZW5ndGg+ZnQmJih5dC5jLmxlbmd0aD1mdCk6THQmJih5dD15dC5tb2Qo''@;'; + put 'put ''ZXQpKX1pZihDdCl7aWYoMD09PShDdD1RKEN0LzIpKSlicmVhaztVZT1DdCUyfWVsc2UgaWYob24odHQ9dHQudGltZXMoYXQpLHR0LmUrMSwxKSwxNDx0dC5lKVVlPWRlKHR0KTtlbHNle2lmKDA9PShDdD0rX3QodHQpKSlicmVhaztVZT1DdCUyfWp0PWp0LnRpbWVzKGp0KSxmdD9qdC5jJiZq''@;'; + put 'put ''dC5jLmxlbmd0aD5mdCYmKGp0LmMubGVuZ3RoPWZ0KTpMdCYmKGp0PWp0Lm1vZChldCkpfXJldHVybiBMdD95dDooR2UmJih5dD1ULmRpdih5dCkpLGV0P3l0Lm1vZChldCk6ZnQ/b24oeXQsZ3QsRix2b2lkIDApOnl0KX0sVi5pbnRlZ2VyVmFsdWU9ZnVuY3Rpb24odHQpe3ZhciBldD1uZXcg''@;'; + put 'put ''QXQodGhpcyk7cmV0dXJuIG51bGw9PXR0P3R0PUY6Y2UodHQsMCw4KSxvbihldCxldC5lKzEsdHQpfSxWLmlzRXF1YWxUbz1WLmVxPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gMD09PW9lKHRoaXMsbmV3IEF0KHR0LGV0KSl9LFYuaXNGaW5pdGU9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuY30s''@;'; + put 'put ''Vi5pc0dyZWF0ZXJUaGFuPVYuZ3Q9ZnVuY3Rpb24odHQsZXQpe3JldHVybiAwPG9lKHRoaXMsbmV3IEF0KHR0LGV0KSl9LFYuaXNHcmVhdGVyVGhhbk9yRXF1YWxUbz1WLmd0ZT1mdW5jdGlvbih0dCxldCl7cmV0dXJuIDE9PT0oZXQ9b2UodGhpcyxuZXcgQXQodHQsZXQpKSl8fDA9PT1ldH0s''@;'; + put 'put ''Vi5pc0ludGVnZXI9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuYyYmSih0aGlzLmUvWSk+dGhpcy5jLmxlbmd0aC0yfSxWLmlzTGVzc1RoYW49Vi5sdD1mdW5jdGlvbih0dCxldCl7cmV0dXJuIG9lKHRoaXMsbmV3IEF0KHR0LGV0KSk8MH0sVi5pc0xlc3NUaGFuT3JFcXVhbFRvPVYubHRlPWZ1''@;'; + put 'put ''bmN0aW9uKHR0LGV0KXtyZXR1cm4tMT09PShldD1vZSh0aGlzLG5ldyBBdCh0dCxldCkpKXx8MD09PWV0fSxWLmlzTmFOPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuc30sVi5pc05lZ2F0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuczwwfSxWLmlzUG9zaXRpdmU9ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gMDx0aGlzLnN9LFYuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmMmJjA9PXRoaXMuY1swXX0sVi5taW51cz1mdW5jdGlvbih0dCxldCl7dmFyIGF0LEx0LEN0LGZ0LEh0PXRoaXMsR2U9SHQucztpZihldD0odHQ9bmV3IEF0KHR0LGV0KSkucywhR2V8fCFldClyZXR1cm4gbmV3''@;'; + put 'put ''IEF0KE5hTik7aWYoR2UhPWV0KXJldHVybiB0dC5zPS1ldCxIdC5wbHVzKHR0KTt2YXIgVWU9SHQuZS9ZLHl0PXR0LmUvWSxqdD1IdC5jLFF0PXR0LmM7aWYoIVVlfHwheXQpe2lmKCFqdHx8IVF0KXJldHVybiBqdD8odHQucz0tZXQsdHQpOm5ldyBBdChRdD9IdDpOYU4pO2lmKCFqdFswXXx8''@;'; + put 'put ''IVF0WzBdKXJldHVybiBRdFswXT8odHQucz0tZXQsdHQpOm5ldyBBdChqdFswXT9IdDozPT1GPy0wOjApfWlmKFVlPUooVWUpLHl0PUooeXQpLGp0PWp0LnNsaWNlKCksR2U9VWUteXQpe2ZvcigoQ3Q9KGZ0PUdlPDApPyhHZT0tR2UsanQpOih5dD1VZSxRdCkpLnJldmVyc2UoKSxldD1HZTtl''@;'; + put 'put ''dC0tO0N0LnB1c2goMCkpO0N0LnJldmVyc2UoKX1lbHNlIGZvcihMdD0oZnQ9KEdlPWp0Lmxlbmd0aCk8KGV0PVF0Lmxlbmd0aCkpP0dlOmV0LEdlPWV0PTA7ZXQ8THQ7ZXQrKylpZihqdFtldF0hPVF0W2V0XSl7ZnQ9anRbZXRdPFF0W2V0XTticmVha31pZihmdCYmKEN0PWp0LGp0PVF0LFF0''@;'; + put 'put ''PUN0LHR0LnM9LXR0LnMpLDA8KGV0PShMdD1RdC5sZW5ndGgpLShhdD1qdC5sZW5ndGgpKSlmb3IoO2V0LS07anRbYXQrK109MCk7Zm9yKGV0PWxlLTE7R2U8THQ7KXtpZihqdFstLUx0XTxRdFtMdF0pe2ZvcihhdD1MdDthdCYmIWp0Wy0tYXRdO2p0W2F0XT1ldCk7LS1qdFthdF0sanRbTHRd''@;'; + put 'put ''Kz1sZX1qdFtMdF0tPVF0W0x0XX1mb3IoOzA9PWp0WzBdO2p0LnNwbGljZSgwLDEpLC0teXQpO3JldHVybiBqdFswXT9CdCh0dCxqdCx5dCk6KHR0LnM9Mz09Rj8tMToxLHR0LmM9W3R0LmU9MF0sdHQpfSxWLm1vZHVsbz1WLm1vZD1mdW5jdGlvbih0dCxldCl7dmFyIGF0LEx0LEN0PXRoaXM7''@;'; + put 'put ''cmV0dXJuIHR0PW5ldyBBdCh0dCxldCksIUN0LmN8fCF0dC5zfHx0dC5jJiYhdHQuY1swXT9uZXcgQXQoTmFOKTohdHQuY3x8Q3QuYyYmIUN0LmNbMF0/bmV3IEF0KEN0KTooOT09JGU/KEx0PXR0LnMsdHQucz0xLGF0PUllKEN0LHR0LDAsMyksdHQucz1MdCxhdC5zKj1MdCk6YXQ9SWUoQ3Qs''@;'; + put 'put ''dHQsMCwkZSksKHR0PUN0Lm1pbnVzKGF0LnRpbWVzKHR0KSkpLmNbMF18fDEhPSRlfHwodHQucz1DdC5zKSx0dCl9LFYubXVsdGlwbGllZEJ5PVYudGltZXM9ZnVuY3Rpb24odHQsZXQpe3ZhciBhdCxMdCxDdCxmdCxIdCxHZSxVZSx5dCxqdCxRdCxnbixkbix5bixsbixObixibj10aGlzLGVy''@;'; + put 'put ''PWJuLmMsc3I9KHR0PW5ldyBBdCh0dCxldCkpLmM7aWYoIShlciYmc3ImJmVyWzBdJiZzclswXSkpcmV0dXJuIWJuLnN8fCF0dC5zfHxlciYmIWVyWzBdJiYhc3J8fHNyJiYhc3JbMF0mJiFlcj90dC5jPXR0LmU9dHQucz1udWxsOih0dC5zKj1ibi5zLGVyJiZzcj8odHQuYz1bMF0sdHQuZT0w''@;'; + put 'put ''KTp0dC5jPXR0LmU9bnVsbCksdHQ7Zm9yKEx0PUooYm4uZS9ZKStKKHR0LmUvWSksdHQucyo9Ym4ucywoVWU9ZXIubGVuZ3RoKTwoUXQ9c3IubGVuZ3RoKSYmKHluPWVyLGVyPXNyLHNyPXluLEN0PVVlLFVlPVF0LFF0PUN0KSxDdD1VZStRdCx5bj1bXTtDdC0tO3luLnB1c2goMCkpO2Zvcihs''@;'; + put 'put ''bj1sZSxObj1lZSxDdD1RdDswPD0tLUN0Oyl7Zm9yKGF0PTAsZ249c3JbQ3RdJU5uLGRuPXNyW0N0XS9ObnwwLGZ0PUN0KyhIdD1VZSk7Q3Q8ZnQ7KWF0PSgoeXQ9Z24qKHl0PWVyWy0tSHRdJU5uKSsoR2U9ZG4qeXQrKGp0PWVyW0h0XS9ObnwwKSpnbiklTm4qTm4reW5bZnRdK2F0KS9sbnww''@;'; + put 'put ''KSsoR2UvTm58MCkrZG4qanQseW5bZnQtLV09eXQlbG47eW5bZnRdPWF0fXJldHVybiBhdD8rK0x0OnluLnNwbGljZSgwLDEpLEJ0KHR0LHluLEx0KX0sVi5uZWdhdGVkPWZ1bmN0aW9uKCl7dmFyIHR0PW5ldyBBdCh0aGlzKTtyZXR1cm4gdHQucz0tdHQuc3x8bnVsbCx0dH0sVi5wbHVzPWZ1''@;'; + put 'put ''bmN0aW9uKHR0LGV0KXt2YXIgYXQsTHQ9dGhpcyxDdD1MdC5zO2lmKGV0PSh0dD1uZXcgQXQodHQsZXQpKS5zLCFDdHx8IWV0KXJldHVybiBuZXcgQXQoTmFOKTtpZihDdCE9ZXQpcmV0dXJuIHR0LnM9LWV0LEx0Lm1pbnVzKHR0KTt2YXIgZnQ9THQuZS9ZLEh0PXR0LmUvWSxHZT1MdC5jLFVl''@;'; + put 'put ''PXR0LmM7aWYoIWZ0fHwhSHQpe2lmKCFHZXx8IVVlKXJldHVybiBuZXcgQXQoQ3QvMCk7aWYoIUdlWzBdfHwhVWVbMF0pcmV0dXJuIFVlWzBdP3R0Om5ldyBBdChHZVswXT9MdDowKkN0KX1pZihmdD1KKGZ0KSxIdD1KKEh0KSxHZT1HZS5zbGljZSgpLEN0PWZ0LUh0KXtmb3IoKGF0PTA8Q3Q/''@;'; + put 'put ''KEh0PWZ0LFVlKTooQ3Q9LUN0LEdlKSkucmV2ZXJzZSgpO0N0LS07YXQucHVzaCgwKSk7YXQucmV2ZXJzZSgpfWZvcigoQ3Q9R2UubGVuZ3RoKS0oZXQ9VWUubGVuZ3RoKTwwJiYoYXQ9VWUsVWU9R2UsR2U9YXQsZXQ9Q3QpLEN0PTA7ZXQ7KUN0PShHZVstLWV0XT1HZVtldF0rVWVbZXRdK0N0''@;'; + put 'put ''KS9sZXwwLEdlW2V0XT1sZT09PUdlW2V0XT8wOkdlW2V0XSVsZTtyZXR1cm4gQ3QmJihHZT1bQ3RdLmNvbmNhdChHZSksKytIdCksQnQodHQsR2UsSHQpfSxWLnByZWNpc2lvbj1WLnNkPWZ1bmN0aW9uKHR0LGV0KXt2YXIgYXQsTHQsQ3Q7aWYobnVsbCE9dHQmJnR0IT09ISF0dClyZXR1cm4g''@;'; + put 'put ''Y2UodHQsMSxxKSxudWxsPT1ldD9ldD1GOmNlKGV0LDAsOCksb24obmV3IEF0KHRoaXMpLHR0LGV0KTtpZighKGF0PXRoaXMuYykpcmV0dXJuIG51bGw7aWYoTHQ9KEN0PWF0Lmxlbmd0aC0xKSpZKzEsQ3Q9YXRbQ3RdKXtmb3IoO0N0JTEwPT0wO0N0Lz0xMCxMdC0tKTtmb3IoQ3Q9YXRbMF07''@;'; + put 'put ''MTA8PUN0O0N0Lz0xMCxMdCsrKTt9cmV0dXJuIHR0JiZ0aGlzLmUrMT5MdCYmKEx0PXRoaXMuZSsxKSxMdH0sVi5zaGlmdGVkQnk9ZnVuY3Rpb24odHQpe3JldHVybiBjZSh0dCwtVyxXKSx0aGlzLnRpbWVzKCIxZSIrdHQpfSxWLnNxdWFyZVJvb3Q9Vi5zcXJ0PWZ1bmN0aW9uKCl7dmFyIHR0''@;'; + put 'put ''LGV0LGF0LEx0LEN0LGZ0PXRoaXMsSHQ9ZnQuYyxHZT1mdC5zLFVlPWZ0LmUseXQ9Uys0LGp0PW5ldyBBdCgiMC41Iik7aWYoMSE9PUdlfHwhSHR8fCFIdFswXSlyZXR1cm4gbmV3IEF0KCFHZXx8R2U8MCYmKCFIdHx8SHRbMF0pP05hTjpIdD9mdDoxLzApO2lmKChhdD0wPT0oR2U9TWF0aC5z''@;'; + put 'put ''cXJ0KCtfdChmdCkpKXx8R2U9PTEvMD8oKChldD1zZShIdCkpLmxlbmd0aCtVZSklMj09MCYmKGV0Kz0iMCIpLEdlPU1hdGguc3FydCgrZXQpLFVlPUooKFVlKzEpLzIpLShVZTwwfHxVZSUyKSxuZXcgQXQoZXQ9R2U9PTEvMD8iMWUiK1VlOihldD1HZS50b0V4cG9uZW50aWFsKCkpLnNsaWNl''@;'; + put 'put ''KDAsZXQuaW5kZXhPZigiZSIpKzEpK1VlKSk6bmV3IEF0KEdlKyIiKSkuY1swXSlmb3IoKEdlPShVZT1hdC5lKSt5dCk8MyYmKEdlPTApOzspaWYoYXQ9anQudGltZXMoKEN0PWF0KS5wbHVzKEllKGZ0LEN0LHl0LDEpKSksc2UoQ3QuYykuc2xpY2UoMCxHZSk9PT0oZXQ9c2UoYXQuYykpLnNs''@;'; + put 'put ''aWNlKDAsR2UpKXtpZihhdC5lPFVlJiYtLUdlLCI5OTk5IiE9KGV0PWV0LnNsaWNlKEdlLTMsR2UrMSkpJiYoTHR8fCI0OTk5IiE9ZXQpKXsrZXQmJigrZXQuc2xpY2UoMSl8fCI1IiE9ZXQuY2hhckF0KDApKXx8KG9uKGF0LGF0LmUrUysyLDEpLHR0PSFhdC50aW1lcyhhdCkuZXEoZnQpKTti''@;'; + put 'put ''cmVha31pZighTHQmJihvbihDdCxDdC5lK1MrMiwwKSxDdC50aW1lcyhDdCkuZXEoZnQpKSl7YXQ9Q3Q7YnJlYWt9eXQrPTQsR2UrPTQsTHQ9MX1yZXR1cm4gb24oYXQsYXQuZStTKzEsRix0dCl9LFYudG9FeHBvbmVudGlhbD1mdW5jdGlvbih0dCxldCl7cmV0dXJuIG51bGwhPXR0JiYoY2Uo''@;'; + put 'put ''dHQsMCxxKSx0dCsrKSxtdCh0aGlzLHR0LGV0LDEpfSxWLnRvRml4ZWQ9ZnVuY3Rpb24odHQsZXQpe3JldHVybiBudWxsIT10dCYmKGNlKHR0LDAscSksdHQ9dHQrdGhpcy5lKzEpLG10KHRoaXMsdHQsZXQpfSxWLnRvRm9ybWF0PWZ1bmN0aW9uKHR0LGV0LGF0KXt2YXIgTHQ7aWYobnVsbD09''@;'; + put 'put ''YXQpbnVsbCE9dHQmJmV0JiYib2JqZWN0Ij09dHlwZW9mIGV0PyhhdD1ldCxldD1udWxsKTp0dCYmIm9iamVjdCI9PXR5cGVvZiB0dD8oYXQ9dHQsdHQ9ZXQ9bnVsbCk6YXQ9d3Q7ZWxzZSBpZigib2JqZWN0IiE9dHlwZW9mIGF0KXRocm93IEVycm9yKForIkFyZ3VtZW50IG5vdCBhbiBvYmpl''@;'; + put 'put ''Y3Q6ICIrYXQpO2lmKEx0PXRoaXMudG9GaXhlZCh0dCxldCksdGhpcy5jKXt2YXIgQ3QsZnQ9THQuc3BsaXQoIi4iKSxIdD0rYXQuZ3JvdXBTaXplLEdlPSthdC5zZWNvbmRhcnlHcm91cFNpemUsVWU9YXQuZ3JvdXBTZXBhcmF0b3J8fCIiLHl0PWZ0WzBdLGp0PWZ0WzFdLFF0PXRoaXMuczww''@;'; + put 'put ''LGduPVF0P3l0LnNsaWNlKDEpOnl0LGRuPWduLmxlbmd0aDtpZihHZSYmKEN0PUh0LEh0PUdlLGRuLT1HZT1DdCksMDxIdCYmMDxkbil7Zm9yKHl0PWduLnN1YnN0cigwLEN0PWRuJUh0fHxIdCk7Q3Q8ZG47Q3QrPUh0KXl0Kz1VZStnbi5zdWJzdHIoQ3QsSHQpOzA8R2UmJih5dCs9VWUrZ24u''@;'; + put 'put ''c2xpY2UoQ3QpKSxRdCYmKHl0PSItIit5dCl9THQ9anQ/eXQrKGF0LmRlY2ltYWxTZXBhcmF0b3J8fCIiKSsoKEdlPSthdC5mcmFjdGlvbkdyb3VwU2l6ZSk/anQucmVwbGFjZShuZXcgUmVnRXhwKCJcXGR7IitHZSsifVxcQiIsImciKSwiJCYiKyhhdC5mcmFjdGlvbkdyb3VwU2VwYXJhdG9y''@;'; + put 'put ''fHwiIikpOmp0KTp5dH1yZXR1cm4oYXQucHJlZml4fHwiIikrTHQrKGF0LnN1ZmZpeHx8IiIpfSxWLnRvRnJhY3Rpb249ZnVuY3Rpb24odHQpe3ZhciBldCxhdCxMdCxDdCxmdCxIdCxHZSxVZSx5dCxqdCxRdCxnbixkbj10aGlzLHluPWRuLmM7aWYobnVsbCE9dHQmJighKEdlPW5ldyBBdCh0''@;'; + put 'put ''dCkpLmlzSW50ZWdlcigpJiYoR2UuY3x8MSE9PUdlLnMpfHxHZS5sdChUKSkpdGhyb3cgRXJyb3IoWisiQXJndW1lbnQgIisoR2UuaXNJbnRlZ2VyKCk/Im91dCBvZiByYW5nZTogIjoibm90IGFuIGludGVnZXI6ICIpK190KEdlKSk7aWYoIXluKXJldHVybiBuZXcgQXQoZG4pO2ZvcihldD1u''@;'; + put 'put ''ZXcgQXQoVCkseXQ9YXQ9bmV3IEF0KFQpLEx0PVVlPW5ldyBBdChUKSxnbj1zZSh5biksZnQ9ZXQuZT1nbi5sZW5ndGgtZG4uZS0xLGV0LmNbMF09TlsoSHQ9ZnQlWSk8MD9ZK0h0Okh0XSx0dD0hdHR8fDA8R2UuY29tcGFyZWRUbyhldCk/MDxmdD9ldDp5dDpHZSxIdD1QZSxQZT0xLzAsR2U9''@;'; + put 'put ''bmV3IEF0KGduKSxVZS5jWzBdPTA7anQ9SWUoR2UsZXQsMCwxKSwxIT0oQ3Q9YXQucGx1cyhqdC50aW1lcyhMdCkpKS5jb21wYXJlZFRvKHR0KTspYXQ9THQsTHQ9Q3QseXQ9VWUucGx1cyhqdC50aW1lcyhDdD15dCkpLFVlPUN0LGV0PUdlLm1pbnVzKGp0LnRpbWVzKEN0PWV0KSksR2U9Q3Q7''@;'; + put 'put ''cmV0dXJuIEN0PUllKHR0Lm1pbnVzKGF0KSxMdCwwLDEpLFVlPVVlLnBsdXMoQ3QudGltZXMoeXQpKSxhdD1hdC5wbHVzKEN0LnRpbWVzKEx0KSksVWUucz15dC5zPWRuLnMsUXQ9SWUoeXQsTHQsZnQqPTIsRikubWludXMoZG4pLmFicygpLmNvbXBhcmVkVG8oSWUoVWUsYXQsZnQsRikubWlu''@;'; + put 'put ''dXMoZG4pLmFicygpKTwxP1t5dCxMdF06W1VlLGF0XSxQZT1IdCxRdH0sVi50b051bWJlcj1mdW5jdGlvbigpe3JldHVybitfdCh0aGlzKX0sVi50b1ByZWNpc2lvbj1mdW5jdGlvbih0dCxldCl7cmV0dXJuIG51bGwhPXR0JiZjZSh0dCwxLHEpLG10KHRoaXMsdHQsZXQsMil9LFYudG9TdHJp''@;'; + put 'put ''bmc9ZnVuY3Rpb24odHQpe3ZhciBldCxhdD10aGlzLEx0PWF0LnMsQ3Q9YXQuZTtyZXR1cm4gbnVsbD09PUN0P0x0PyhldD0iSW5maW5pdHkiLEx0PDAmJihldD0iLSIrZXQpKTpldD0iTmFOIjooZXQ9bnVsbD09dHQ/Q3Q8PXllfHxDZTw9Q3Q/dmUoc2UoYXQuYyksQ3QpOkFlKHNlKGF0LmMp''@;'; + put 'put ''LEN0LCIwIik6MTA9PT10dD9BZShzZSgoYXQ9b24obmV3IEF0KGF0KSxTK0N0KzEsRikpLmMpLGF0LmUsIjAiKTooY2UodHQsMix2dC5sZW5ndGgsIkJhc2UiKSxUZShBZShzZShhdC5jKSxDdCwiMCIpLDEwLHR0LEx0LCEwKSksTHQ8MCYmYXQuY1swXSYmKGV0PSItIitldCkpLGV0fSxWLnZh''@;'; + put 'put ''bHVlT2Y9Vi50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gX3QodGhpcyl9LFYuX2lzQmlnTnVtYmVyPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yJiYoVltTeW1ib2wudG9TdHJpbmdUYWddPSJCaWdOdW1iZXIiLFZbU3ltYm9s''@;'; + put 'put ''LmZvcigibm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20iKV09Vi52YWx1ZU9mKSxudWxsIT1TZSYmQXQuc2V0KFNlKSxBdH0oKSkuZGVmYXVsdD1FLkJpZ051bWJlcj1FLHZvaWQgMCE9PUwmJkwuZXhwb3J0cz9MLmV4cG9ydHM9RTooQnx8KEI9InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiZz''@;'; + put 'put ''ZWxmP3NlbGY6d2luZG93KSxCLkJpZ051bWJlcj1FKX0odGhpcyl9LHt9XSwyOltmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7TC5leHBvcnRzPXtsYW5ndWFnZVRhZzoiZW4tVVMiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Ro''@;'; + put 'put ''b3VzYW5kOiJrIixtaWxsaW9uOiJtIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LHNwYWNlU2VwYXJhdGVkOiExLG9yZGluYWw6ZnVuY3Rpb24oQil7dmFyIEU9QiUxMDtyZXR1cm4gMT09fn4oQiUxMDAvMTApPyJ0aCI6MT09PUU/InN0IjoyPT09RT8ibmQiOjM9PT1FPyJyZCI6InRoIn0s''@;'; + put 'put ''Y3VycmVuY3k6e3N5bWJvbDoiJCIscG9zaXRpb246InByZWZpeCIsY29kZToiVVNEIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBh''@;'; + put 'put ''cmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5Ont0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYToyfSxmdWxsV2l0aE5vRGVjaW1hbHM6''@;'; + put 'put ''e291dHB1dDoiY3VycmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX19LHt9XSwzOltmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihKLHNlKXtyZXR1cm4gZnVuY3Rpb24ob2Upe2lmKEFycmF5LmlzQXJyYXkob2UpKXJldHVybiBvZX0oSil8''@;'; + put 'put ''fGZ1bmN0aW9uKG9lLGNlKXt2YXIgZGU9W10sdmU9ITAsQWU9ITEsa2U9dm9pZCAwO3RyeXtmb3IodmFyIFNlLEllPW9lW1N5bWJvbC5pdGVyYXRvcl0oKTshKHZlPShTZT1JZS5uZXh0KCkpLmRvbmUpJiYoZGUucHVzaChTZS52YWx1ZSksIWNlfHxkZS5sZW5ndGghPT1jZSk7dmU9ITApO31j''@;'; + put 'put ''YXRjaChUZSl7QWU9ITAsa2U9VGV9ZmluYWxseXt0cnl7dmV8fG51bGw9PUllLnJldHVybnx8SWUucmV0dXJuKCl9ZmluYWxseXtpZihBZSl0aHJvdyBrZX19cmV0dXJuIGRlfShKLHNlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1''@;'; + put 'put ''Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9KCl9dmFyIEU9SmUoIi4vZ2xvYmFsU3RhdGUiKSxNZT1KZSgiLi92YWxpZGF0aW5nIiksVT1KZSgiLi9wYXJzaW5nIiksUT1bIkIiLCJLQiIsIk1CIiwiR0IiLCJUQiIsIlBCIiwiRUIiLCJaQiIsIllCIl0sWj17Z2VuZXJhbDp7c2NhbGU6''@;'; + put 'put ''MTAyNCxzdWZmaXhlczpRLG1hcmtlcjoiYmQifSxiaW5hcnk6e3NjYWxlOjEwMjQsc3VmZml4ZXM6WyJCIiwiS2lCIiwiTWlCIiwiR2lCIiwiVGlCIiwiUGlCIiwiRWlCIiwiWmlCIiwiWWlCIl0sbWFya2VyOiJiIn0sZGVjaW1hbDp7c2NhbGU6MWUzLHN1ZmZpeGVzOlEsbWFya2VyOiJkIn19''@;'; + put 'put ''LGllPXt0b3RhbExlbmd0aDowLGNoYXJhY3RlcmlzdGljOjAsZm9yY2VBdmVyYWdlOiExLGF2ZXJhZ2U6ITEsbWFudGlzc2E6LTEsb3B0aW9uYWxNYW50aXNzYTohMCx0aG91c2FuZFNlcGFyYXRlZDohMSxzcGFjZVNlcGFyYXRlZDohMSxuZWdhdGl2ZToic2lnbiIsZm9yY2VTaWduOiExfTtm''@;'; + put 'put ''dW5jdGlvbiBsZShKKXt2YXIgc2U9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LG9lPTI8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMl06dm9pZCAwO2lmKCJzdHJpbmciPT10eXBlb2Ygc2UmJihzZT1VLnBhcnNlRm9ybWF0KHNl''@;'; + put 'put ''KSksIU1lLnZhbGlkYXRlRm9ybWF0KHNlKSlyZXR1cm4iRVJST1I6IGludmFsaWQgZm9ybWF0Ijt2YXIgY2U9c2UucHJlZml4fHwiIixkZT1zZS5wb3N0Zml4fHwiIix2ZT1mdW5jdGlvbihBZSxrZSxTZSl7c3dpdGNoKGtlLm91dHB1dCl7Y2FzZSJjdXJyZW5jeSI6cmV0dXJuIGZ1bmN0aW9u''@;'; + put 'put ''KHZ0LEF0LG10KXt2YXIgaHQ9bXQuY3VycmVudEN1cnJlbmN5KCksQnQ9T2JqZWN0LmFzc2lnbih7fSxpZSxBdCksb249dm9pZCAwLF90PSIiLHR0PSEhQnQudG90YWxMZW5ndGh8fCEhQnQuZm9yY2VBdmVyYWdlfHxCdC5hdmVyYWdlLGV0PUF0LmN1cnJlbmN5UG9zaXRpb258fGh0LnBvc2l0''@;'; + put 'put ''aW9uLGF0PUF0LmN1cnJlbmN5U3ltYm9sfHxodC5zeW1ib2w7QnQuc3BhY2VTZXBhcmF0ZWQmJihfdD0iICIpLCJpbmZpeCI9PT1ldCYmKG9uPV90K2F0K190KTt2YXIgTHQ9ZWUoe2luc3RhbmNlOnZ0LHByb3ZpZGVkRm9ybWF0OkF0LHN0YXRlOm10LGRlY2ltYWxTZXBhcmF0b3I6b259KTty''@;'; + put 'put ''ZXR1cm4icHJlZml4Ij09PWV0JiYoTHQ9dnQuX3ZhbHVlPDAmJiJzaWduIj09PUJ0Lm5lZ2F0aXZlPyItIi5jb25jYXQoX3QpLmNvbmNhdChhdCkuY29uY2F0KEx0LnNsaWNlKDEpKTphdCtfdCtMdCksZXQmJiJwb3N0Zml4IiE9PWV0fHwoTHQ9THQrKF90PXR0PyIiOl90KSthdCksTHR9KEFl''@;'; + put 'put ''LGtlPXEoa2UsRS5jdXJyZW50Q3VycmVuY3lEZWZhdWx0Rm9ybWF0KCkpLEUpO2Nhc2UicGVyY2VudCI6cmV0dXJuIGtlPXEoa2UsRS5jdXJyZW50UGVyY2VudGFnZURlZmF1bHRGb3JtYXQoKSksbXQ9RSxCdD0oQXQ9a2UpLnByZWZpeFN5bWJvbCxvbj1lZSh7aW5zdGFuY2U6U2UoMTAwKkFl''@;'; + put 'put ''Ll92YWx1ZSkscHJvdmlkZWRGb3JtYXQ6QXQsc3RhdGU6bXR9KSxfdD1PYmplY3QuYXNzaWduKHt9LGllLEF0KSxCdD8iJSIuY29uY2F0KF90LnNwYWNlU2VwYXJhdGVkPyIgIjoiIikuY29uY2F0KG9uKToiIi5jb25jYXQob24pLmNvbmNhdChfdC5zcGFjZVNlcGFyYXRlZD8iICI6IiIsIiUi''@;'; + put 'put ''KTtjYXNlImJ5dGUiOnJldHVybiBrZT1xKGtlLEUuY3VycmVudEJ5dGVEZWZhdWx0Rm9ybWF0KCkpLEY9RSx5ZT1TZSxDZT0oUz1rZSkuYmFzZXx8ImJpbmFyeSIsJGU9KFBlPVkoQWUuX3ZhbHVlLChEZT1aW0NlXSkuc3VmZml4ZXMsRGUuc2NhbGUpKS5zdWZmaXgsZ3Q9ZWUoe2luc3RhbmNl''@;'; + put 'put ''OnllKFBlLnZhbHVlKSxwcm92aWRlZEZvcm1hdDpTLHN0YXRlOkYsZGVmYXVsdHM6Ri5jdXJyZW50Qnl0ZURlZmF1bHRGb3JtYXQoKX0pLHd0PUYuY3VycmVudEFiYnJldmlhdGlvbnMoKSwiIi5jb25jYXQoZ3QpLmNvbmNhdCh3dC5zcGFjZWQ/IiAiOiIiKS5jb25jYXQoJGUpO2Nhc2UidGlt''@;'; + put 'put ''ZSI6cmV0dXJuIGtlPXEoa2UsRS5jdXJyZW50VGltZURlZmF1bHRGb3JtYXQoKSksdGU9QWUseD1NYXRoLmZsb29yKHRlLl92YWx1ZS82MC82MCksUD1NYXRoLmZsb29yKCh0ZS5fdmFsdWUtNjAqeCo2MCkvNjApLFY9TWF0aC5yb3VuZCh0ZS5fdmFsdWUtNjAqeCo2MC02MCpQKSwiIi5jb25j''@;'; + put 'put ''YXQoeCwiOiIpLmNvbmNhdChQPDEwPyIwIjoiIikuY29uY2F0KFAsIjoiKS5jb25jYXQoVjwxMD8iMCI6IiIpLmNvbmNhdChWKTtjYXNlIm9yZGluYWwiOnJldHVybiBJZT1BZSxUZT1rZT1xKGtlLEUuY3VycmVudE9yZGluYWxEZWZhdWx0Rm9ybWF0KCkpLGhlPShFZT1FKS5jdXJyZW50T3Jk''@;'; + put 'put ''aW5hbCgpLE89T2JqZWN0LmFzc2lnbih7fSxpZSxUZSksej1lZSh7aW5zdGFuY2U6SWUscHJvdmlkZWRGb3JtYXQ6VGUsc3RhdGU6RWV9KSxuZT1oZShJZS5fdmFsdWUpLCIiLmNvbmNhdCh6KS5jb25jYXQoTy5zcGFjZVNlcGFyYXRlZD8iICI6IiIpLmNvbmNhdChuZSk7ZGVmYXVsdDpyZXR1''@;'; + put 'put ''cm4gZWUoe2luc3RhbmNlOkFlLHByb3ZpZGVkRm9ybWF0OmtlLG51bWJybzpTZX0pfXZhciBBdCxtdCxCdCxvbixfdCxJZSxUZSxFZSxoZSxPLHosbmUsdGUseCxQLFYsUyxGLHllLENlLERlLFBlLCRlLGd0LHd0fShKLHNlLG9lKTtyZXR1cm4odmU9Y2UrdmUpK2RlfWZ1bmN0aW9uIFkoSixz''@;'; + put 'put ''ZSxvZSl7dmFyIGNlPXNlWzBdLGRlPU1hdGguYWJzKEopO2lmKG9lPD1kZSl7Zm9yKHZhciB2ZT0xO3ZlPHNlLmxlbmd0aDsrK3ZlKXt2YXIgQWU9TWF0aC5wb3cob2UsdmUpLGtlPU1hdGgucG93KG9lLHZlKzEpO2lmKEFlPD1kZSYmZGU8a2Upe2NlPXNlW3ZlXSxKLz1BZTticmVha319Y2U9''@;'; + put 'put ''PT1zZVswXSYmKEovPU1hdGgucG93KG9lLHNlLmxlbmd0aC0xKSxjZT1zZVtzZS5sZW5ndGgtMV0pfXJldHVybnt2YWx1ZTpKLHN1ZmZpeDpjZX19ZnVuY3Rpb24gVyhKKXtmb3IodmFyIHNlPSIiLG9lPTA7b2U8SjtvZSsrKXNlKz0iMCI7cmV0dXJuIHNlfWZ1bmN0aW9uIGVlKEope3ZhciBz''@;'; + put 'put ''ZT1KLmluc3RhbmNlLG9lPUoucHJvdmlkZWRGb3JtYXQsY2U9Si5zdGF0ZSxkZT12b2lkIDA9PT1jZT9FOmNlLHZlPUouZGVjaW1hbFNlcGFyYXRvcixBZT1KLmRlZmF1bHRzLGtlPXZvaWQgMD09PUFlP2RlLmN1cnJlbnREZWZhdWx0cygpOkFlLFNlPXNlLl92YWx1ZTtpZigwPT09U2UmJmRl''@;'; + put 'put ''Lmhhc1plcm9Gb3JtYXQoKSlyZXR1cm4gZGUuZ2V0WmVyb0Zvcm1hdCgpO2lmKCFpc0Zpbml0ZShTZSkpcmV0dXJuIFNlLnRvU3RyaW5nKCk7dmFyIEllLFRlLEVlLGhlLE8sbmUsdGUseD1PYmplY3QuYXNzaWduKHt9LGllLGtlLG9lKSxQPXgudG90YWxMZW5ndGgsVj1QPzA6eC5jaGFyYWN0''@;'; + put 'put ''ZXJpc3RpYyxUPXgub3B0aW9uYWxDaGFyYWN0ZXJpc3RpYyxTPXguZm9yY2VBdmVyYWdlLEY9ISFQfHwhIVN8fHguYXZlcmFnZSx5ZT1QPy0xOkYmJnZvaWQgMD09PW9lLm1hbnRpc3NhPzA6eC5tYW50aXNzYSxDZT0hUCYmKHZvaWQgMD09PW9lLm9wdGlvbmFsTWFudGlzc2E/LTE9PT15ZTp4''@;'; + put 'put ''Lm9wdGlvbmFsTWFudGlzc2EpLERlPXgudHJpbU1hbnRpc3NhLFBlPXgudGhvdXNhbmRTZXBhcmF0ZWQsUWU9eC5zcGFjZVNlcGFyYXRlZCwkZT14Lm5lZ2F0aXZlLGd0PXguZm9yY2VTaWduLHd0PXguZXhwb25lbnRpYWwsdnQ9IiI7aWYoRil7dmFyIEF0PWZ1bmN0aW9uKHR0KXt2YXIgZXQ9''@;'; + put 'put ''dHQudmFsdWUsYXQ9dHQuZm9yY2VBdmVyYWdlLEx0PXR0LmFiYnJldmlhdGlvbnMsQ3Q9dHQuc3BhY2VTZXBhcmF0ZWQsZnQ9dm9pZCAwIT09Q3QmJkN0LEh0PXR0LnRvdGFsTGVuZ3RoLEdlPXZvaWQgMD09PUh0PzA6SHQsVWU9IiIseXQ9TWF0aC5hYnMoZXQpLGp0PS0xO2lmKHl0Pj1NYXRo''@;'; + put 'put ''LnBvdygxMCwxMikmJiFhdHx8InRyaWxsaW9uIj09PWF0PyhVZT1MdC50cmlsbGlvbixldC89TWF0aC5wb3coMTAsMTIpKTp5dDxNYXRoLnBvdygxMCwxMikmJnl0Pj1NYXRoLnBvdygxMCw5KSYmIWF0fHwiYmlsbGlvbiI9PT1hdD8oVWU9THQuYmlsbGlvbixldC89TWF0aC5wb3coMTAsOSkp''@;'; + put 'put ''Onl0PE1hdGgucG93KDEwLDkpJiZ5dD49TWF0aC5wb3coMTAsNikmJiFhdHx8Im1pbGxpb24iPT09YXQ/KFVlPUx0Lm1pbGxpb24sZXQvPU1hdGgucG93KDEwLDYpKTooeXQ8TWF0aC5wb3coMTAsNikmJnl0Pj1NYXRoLnBvdygxMCwzKSYmIWF0fHwidGhvdXNhbmQiPT09YXQpJiYoVWU9THQu''@;'; + put 'put ''dGhvdXNhbmQsZXQvPU1hdGgucG93KDEwLDMpKSxVZSYmKFVlPShmdD8iICI6IiIpK1VlKSxHZSl7dmFyIFF0PWV0LnRvU3RyaW5nKCkuc3BsaXQoIi4iKVswXTtqdD1NYXRoLm1heChHZS1RdC5sZW5ndGgsMCl9cmV0dXJue3ZhbHVlOmV0LGFiYnJldmlhdGlvbjpVZSxtYW50aXNzYVByZWNp''@;'; + put 'put ''c2lvbjpqdH19KHt2YWx1ZTpTZSxmb3JjZUF2ZXJhZ2U6UyxhYmJyZXZpYXRpb25zOmRlLmN1cnJlbnRBYmJyZXZpYXRpb25zKCksc3BhY2VTZXBhcmF0ZWQ6UWUsdG90YWxMZW5ndGg6UH0pO1NlPUF0LnZhbHVlLHZ0Kz1BdC5hYmJyZXZpYXRpb24sUCYmKHllPUF0Lm1hbnRpc3NhUHJlY2lz''@;'; + put 'put ''aW9uKX1pZih3dCl7dmFyIG10PShUZT0oSWU9e3ZhbHVlOlNlLGNoYXJhY3RlcmlzdGljUHJlY2lzaW9uOlZ9KS52YWx1ZSxoZT12b2lkIDA9PT0oRWU9SWUuY2hhcmFjdGVyaXN0aWNQcmVjaXNpb24pPzA6RWUsbmU9KE89QihUZS50b0V4cG9uZW50aWFsKCkuc3BsaXQoImUiKSwyKSlbMV0s''@;'; + put 'put ''dGU9K09bMF0saGUmJjE8aGUmJih0ZSo9TWF0aC5wb3coMTAsaGUtMSksbmU9MDw9KG5lPStuZS0oaGUtMSkpPyIrIi5jb25jYXQobmUpOm5lKSx7dmFsdWU6dGUsYWJicmV2aWF0aW9uOiJlIi5jb25jYXQobmUpfSk7U2U9bXQudmFsdWUsdnQ9bXQuYWJicmV2aWF0aW9uK3Z0fXZhciBodCxC''@;'; + put 'put ''dCxvbixfdD1mdW5jdGlvbih0dCxldCxhdCxMdCxDdCl7aWYoLTE9PT1MdClyZXR1cm4gdHQ7dmFyIGZ0PWZ1bmN0aW9uIE4oSixzZSl7cmV0dXJuLTEhPT1KLnRvU3RyaW5nKCkuaW5kZXhPZigiZSIpP2Z1bmN0aW9uKG9lLGNlKXt2YXIgZGU9b2UudG9TdHJpbmcoKSx2ZT1CKGRlLnNwbGl0''@;'; + put 'put ''KCJlIiksMiksa2U9dmVbMV0sU2U9Qih2ZVswXS5zcGxpdCgiLiIpLDIpLEllPVNlWzBdLFRlPVNlWzFdLEVlPXZvaWQgMD09PVRlPyIiOlRlO2lmKDA8K2tlKWRlPUllK0VlK1coa2UtRWUubGVuZ3RoKTtlbHNle3ZhciBoZT0iLiI7aGU9K0llPDA/Ii0wIi5jb25jYXQoaGUpOiIwIi5jb25j''@;'; + put 'put ''YXQoaGUpO3ZhciBPPShXKC1rZS0xKStNYXRoLmFicyhJZSkrRWUpLnN1YnN0cigwLGNlKTtPLmxlbmd0aDxjZSYmKE8rPVcoY2UtTy5sZW5ndGgpKSxkZT1oZStPfXJldHVybiAwPCtrZSYmMDxjZSYmKGRlKz0iLiIuY29uY2F0KFcoY2UpKSksZGV9KEosc2UpOihNYXRoLnJvdW5kKCsiIi5j''@;'; + put 'put ''b25jYXQoSiwiZSsiKS5jb25jYXQoc2UpKS9NYXRoLnBvdygxMCxzZSkpLnRvRml4ZWQoc2UpfShldCxMdCksSHQ9QihmdC50b1N0cmluZygpLnNwbGl0KCIuIiksMiksR2U9SHRbMF0sVWU9SHRbMV0seXQ9dm9pZCAwPT09VWU/IiI6VWU7aWYoeXQubWF0Y2goL14wKyQvKSYmKGF0fHxDdCkp''@;'; + put 'put ''cmV0dXJuIEdlO3ZhciBqdD15dC5tYXRjaCgvMCskLyk7cmV0dXJuIEN0JiZqdD8iIi5jb25jYXQoR2UsIi4iKS5jb25jYXQoeXQudG9TdHJpbmcoKS5zbGljZSgwLGp0LmluZGV4KSk6ZnQudG9TdHJpbmcoKX0oU2UudG9TdHJpbmcoKSxTZSxDZSx5ZSxEZSk7cmV0dXJuIF90PWZ1bmN0aW9u''@;'; + put 'put ''KHR0LGV0LGF0LEx0LEN0KXt2YXIgZnQ9THQuY3VycmVudERlbGltaXRlcnMoKSxIdD1mdC50aG91c2FuZHM7Q3Q9Q3R8fGZ0LmRlY2ltYWw7dmFyIEdlPWZ0LnRob3VzYW5kc1NpemV8fDMsVWU9dHQudG9TdHJpbmcoKSx5dD1VZS5zcGxpdCgiLiIpWzBdLGp0PVVlLnNwbGl0KCIuIilbMV07''@;'; + put 'put ''cmV0dXJuIGF0JiYoZXQ8MCYmKHl0PXl0LnNsaWNlKDEpKSxmdW5jdGlvbihRdCxnbil7Zm9yKHZhciBkbj1bXSx5bj0wLGxuPVF0OzA8bG47bG4tLSl5bj09PWduJiYoZG4udW5zaGlmdChsbikseW49MCkseW4rKztyZXR1cm4gZG59KHl0Lmxlbmd0aCxHZSkuZm9yRWFjaChmdW5jdGlvbihR''@;'; + put 'put ''dCxnbil7eXQ9eXQuc2xpY2UoMCxRdCtnbikrSHQreXQuc2xpY2UoUXQrZ24pfSksZXQ8MCYmKHl0PSItIi5jb25jYXQoeXQpKSksanQ/eXQrQ3QranQ6eXR9KF90PWZ1bmN0aW9uKHR0LGV0LGF0LEx0KXt2YXIgQ3Q9dHQsZnQ9QihDdC50b1N0cmluZygpLnNwbGl0KCIuIiksMiksSHQ9ZnRb''@;'; + put 'put ''MF0sR2U9ZnRbMV07aWYoSHQubWF0Y2goL14tPzAkLykmJmF0KXJldHVybiBHZT8iIi5jb25jYXQoSHQucmVwbGFjZSgiMCIsIiIpLCIuIikuY29uY2F0KEdlKTpIdC5yZXBsYWNlKCIwIiwiIik7aWYoSHQubGVuZ3RoPEx0KWZvcih2YXIgVWU9THQtSHQubGVuZ3RoLHl0PTA7eXQ8VWU7eXQr''@;'; + put 'put ''KylDdD0iMCIuY29uY2F0KEN0KTtyZXR1cm4gQ3QudG9TdHJpbmcoKX0oX3QsMCxULFYpLFNlLFBlLGRlLHZlKSwoRnx8d3QpJiYoX3QrPXZ0KSwoZ3R8fFNlPDApJiYoaHQ9X3Qsb249JGUsX3Q9MD09PShCdD1TZSk/aHQ6MD09K2h0P2h0LnJlcGxhY2UoIi0iLCIiKTowPEJ0PyIrIi5jb25j''@;'; + put 'put ''YXQoaHQpOiJzaWduIj09PW9uP2h0OiIoIi5jb25jYXQoaHQucmVwbGFjZSgiLSIsIiIpLCIpIikpLF90fWZ1bmN0aW9uIHEoSixzZSl7aWYoIUopcmV0dXJuIHNlO3ZhciBvZT1PYmplY3Qua2V5cyhKKTtyZXR1cm4gMT09PW9lLmxlbmd0aCYmIm91dHB1dCI9PT1vZVswXT9zZTpKfUwuZXhw''@;'; + put 'put ''b3J0cz1mdW5jdGlvbihKKXtyZXR1cm57Zm9ybWF0OmZ1bmN0aW9uKCl7Zm9yKHZhciBzZT1hcmd1bWVudHMubGVuZ3RoLG9lPW5ldyBBcnJheShzZSksY2U9MDtjZTxzZTtjZSsrKW9lW2NlXT1hcmd1bWVudHNbY2VdO3JldHVybiBsZS5hcHBseSh2b2lkIDAsb2UuY29uY2F0KFtKXSkpfSxn''@;'; + put 'put ''ZXRCeXRlVW5pdDpmdW5jdGlvbigpe2Zvcih2YXIgc2U9YXJndW1lbnRzLmxlbmd0aCxvZT1uZXcgQXJyYXkoc2UpLGNlPTA7Y2U8c2U7Y2UrKylvZVtjZV09YXJndW1lbnRzW2NlXTtyZXR1cm4gZnVuY3Rpb24oZGUpe3ZhciB2ZT1aLmdlbmVyYWw7cmV0dXJuIFkoZGUuX3ZhbHVlLHZlLnN1''@;'; + put 'put ''ZmZpeGVzLHZlLnNjYWxlKS5zdWZmaXh9LmFwcGx5KHZvaWQgMCxvZS5jb25jYXQoW0pdKSl9LGdldEJpbmFyeUJ5dGVVbml0OmZ1bmN0aW9uKCl7Zm9yKHZhciBzZT1hcmd1bWVudHMubGVuZ3RoLG9lPW5ldyBBcnJheShzZSksY2U9MDtjZTxzZTtjZSsrKW9lW2NlXT1hcmd1bWVudHNbY2Vd''@;'; + put 'put ''O3JldHVybiBmdW5jdGlvbihkZSl7dmFyIHZlPVouYmluYXJ5O3JldHVybiBZKGRlLl92YWx1ZSx2ZS5zdWZmaXhlcyx2ZS5zY2FsZSkuc3VmZml4fS5hcHBseSh2b2lkIDAsb2UuY29uY2F0KFtKXSkpfSxnZXREZWNpbWFsQnl0ZVVuaXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHNlPWFyZ3VtZW50''@;'; + put 'put ''cy5sZW5ndGgsb2U9bmV3IEFycmF5KHNlKSxjZT0wO2NlPHNlO2NlKyspb2VbY2VdPWFyZ3VtZW50c1tjZV07cmV0dXJuIGZ1bmN0aW9uKGRlKXt2YXIgdmU9Wi5kZWNpbWFsO3JldHVybiBZKGRlLl92YWx1ZSx2ZS5zdWZmaXhlcyx2ZS5zY2FsZSkuc3VmZml4fS5hcHBseSh2b2lkIDAsb2Uu''@;'; + put 'put ''Y29uY2F0KFtKXSkpfSxmb3JtYXRPckRlZmF1bHQ6cX19fSx7Ii4vZ2xvYmFsU3RhdGUiOjQsIi4vcGFyc2luZyI6OCwiLi92YWxpZGF0aW5nIjoxMH1dLDQ6W2Z1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj1KZSgiLi9lbi1VUyIpLEU9SmUoIi4vdmFsaWRhdGluZyIpLE1l''@;'; + put 'put ''PUplKCIuL3BhcnNpbmciKSxVPXt9LFE9dm9pZCAwLFo9e30saWU9bnVsbCxsZT17fTtmdW5jdGlvbiBZKE4pe1E9Tn1mdW5jdGlvbiBXKCl7cmV0dXJuIFpbUV19VS5sYW5ndWFnZXM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxaKX0sVS5jdXJyZW50TGFuZ3VhZ2U9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gUX0sVS5jdXJyZW50Q3VycmVuY3k9ZnVuY3Rpb24oKXtyZXR1cm4gVygpLmN1cnJlbmN5fSxVLmN1cnJlbnRBYmJyZXZpYXRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIFcoKS5hYmJyZXZpYXRpb25zfSxVLmN1cnJlbnREZWxpbWl0ZXJzPWZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IFcoKS5kZWxpbWl0ZXJzfSxVLmN1cnJlbnRPcmRpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIFcoKS5vcmRpbmFsfSxVLmN1cnJlbnREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LFcoKS5kZWZhdWx0cyxsZSl9LFUuY3VycmVudE9yZGluYWxEZWZhdWx0Rm9ybWF0''@;'; + put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sVS5jdXJyZW50RGVmYXVsdHMoKSxXKCkub3JkaW5hbEZvcm1hdCl9LFUuY3VycmVudEJ5dGVEZWZhdWx0Rm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sVS5jdXJyZW50RGVmYXVsdHMoKSxXKCkuYnl0''@;'; + put 'put ''ZUZvcm1hdCl9LFUuY3VycmVudFBlcmNlbnRhZ2VEZWZhdWx0Rm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sVS5jdXJyZW50RGVmYXVsdHMoKSxXKCkucGVyY2VudGFnZUZvcm1hdCl9LFUuY3VycmVudEN1cnJlbmN5RGVmYXVsdEZvcm1hdD1mdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiBPYmplY3QuYXNzaWduKHt9LFUuY3VycmVudERlZmF1bHRzKCksVygpLmN1cnJlbmN5Rm9ybWF0KX0sVS5jdXJyZW50VGltZURlZmF1bHRGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxVLmN1cnJlbnREZWZhdWx0cygpLFcoKS50aW1lRm9ybWF0KX0sVS5z''@;'; + put 'put ''ZXREZWZhdWx0cz1mdW5jdGlvbihOKXtOPU1lLnBhcnNlRm9ybWF0KE4pLEUudmFsaWRhdGVGb3JtYXQoTikmJihsZT1OKX0sVS5nZXRaZXJvRm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIGllfSxVLnNldFplcm9Gb3JtYXQ9ZnVuY3Rpb24oTil7cmV0dXJuIGllPSJzdHJpbmciPT10eXBlb2Yg''@;'; + put 'put ''Tj9OOm51bGx9LFUuaGFzWmVyb0Zvcm1hdD1mdW5jdGlvbigpe3JldHVybiBudWxsIT09aWV9LFUubGFuZ3VhZ2VEYXRhPWZ1bmN0aW9uKE4pe2lmKE4pe2lmKFpbTl0pcmV0dXJuIFpbTl07dGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHRhZyAiJy5jb25jYXQoTiwnIicpKX1yZXR1cm4gVygp''@;'; + put 'put ''fSxVLnJlZ2lzdGVyTGFuZ3VhZ2U9ZnVuY3Rpb24oTil7dmFyIGVlPTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07aWYoIUUudmFsaWRhdGVMYW5ndWFnZShOKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbGFuZ3VhZ2UgZGF0YSIpO1pb''@;'; + put 'put ''Ti5sYW5ndWFnZVRhZ109TixlZSYmWShOLmxhbmd1YWdlVGFnKX0sVS5zZXRMYW5ndWFnZT1mdW5jdGlvbihOKXt2YXIgZWU9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOkIubGFuZ3VhZ2VUYWc7aWYoIVpbTl0pe3ZhciBxPU4uc3BsaXQo''@;'; + put 'put ''Ii0iKVswXSxKPU9iamVjdC5rZXlzKFopLmZpbmQoZnVuY3Rpb24oc2Upe3JldHVybiBzZS5zcGxpdCgiLSIpWzBdPT09cX0pO3JldHVybiBaW0pdP3ZvaWQgWShKKTp2b2lkIFkoZWUpfVkoTil9LFUucmVnaXN0ZXJMYW5ndWFnZShCKSxRPUIubGFuZ3VhZ2VUYWcsTC5leHBvcnRzPVV9LHsi''@;'; + put 'put ''Li9lbi1VUyI6MiwiLi9wYXJzaW5nIjo4LCIuL3ZhbGlkYXRpbmciOjEwfV0sNTpbZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO0wuZXhwb3J0cz1mdW5jdGlvbihCKXtyZXR1cm57bG9hZExhbmd1YWdlc0luTm9kZTpmdW5jdGlvbihFKXtyZXR1cm4gTWU9Qix2b2lkIEUuZm9yRWFj''@;'; + put 'put ''aChmdW5jdGlvbihVKXt2YXIgUT12b2lkIDA7dHJ5e1E9SmUoIi4uL2xhbmd1YWdlcy8iLmNvbmNhdChVKSl9Y2F0Y2goWil7Y29uc29sZS5lcnJvcignVW5hYmxlIHRvIGxvYWQgIicuY29uY2F0KFUsJyIuIE5vIG1hdGNoaW5nIGxhbmd1YWdlIGZpbGUgZm91bmQuJykpfVEmJk1lLnJlZ2lz''@;'; + put 'put ''dGVyTGFuZ3VhZ2UoUSl9KTt2YXIgTWV9fX19LHt9XSw2OltmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7dmFyIEI9SmUoImJpZ251bWJlci5qcyIpO2Z1bmN0aW9uIEUoTWUsVSxRKXt2YXIgWj1uZXcgQihNZS5fdmFsdWUpLGllPVU7cmV0dXJuIFEuaXNOdW1icm8oVSkmJihpZT1V''@;'; + put 'put ''Ll92YWx1ZSksaWU9bmV3IEIoaWUpLE1lLl92YWx1ZT1aLm1pbnVzKGllKS50b051bWJlcigpLE1lfUwuZXhwb3J0cz1mdW5jdGlvbihNZSl7cmV0dXJue2FkZDpmdW5jdGlvbihVLFEpe3JldHVybiBpZT1RLGxlPU1lLFk9bmV3IEIoKFo9VSkuX3ZhbHVlKSxXPWllLGxlLmlzTnVtYnJvKGll''@;'; + put 'put ''KSYmKFc9aWUuX3ZhbHVlKSxXPW5ldyBCKFcpLFouX3ZhbHVlPVkucGx1cyhXKS50b051bWJlcigpLFo7dmFyIFosaWUsbGUsWSxXfSxzdWJ0cmFjdDpmdW5jdGlvbihVLFEpe3JldHVybiBFKFUsUSxNZSl9LG11bHRpcGx5OmZ1bmN0aW9uKFUsUSl7cmV0dXJuIGllPVEsbGU9TWUsWT1uZXcg''@;'; + put 'put ''QigoWj1VKS5fdmFsdWUpLFc9aWUsbGUuaXNOdW1icm8oaWUpJiYoVz1pZS5fdmFsdWUpLFc9bmV3IEIoVyksWi5fdmFsdWU9WS50aW1lcyhXKS50b051bWJlcigpLFo7dmFyIFosaWUsbGUsWSxXfSxkaXZpZGU6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gaWU9USxsZT1NZSxZPW5ldyBCKChaPVUp''@;'; + put 'put ''Ll92YWx1ZSksVz1pZSxsZS5pc051bWJybyhpZSkmJihXPWllLl92YWx1ZSksVz1uZXcgQihXKSxaLl92YWx1ZT1ZLmRpdmlkZWRCeShXKS50b051bWJlcigpLFo7dmFyIFosaWUsbGUsWSxXfSxzZXQ6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gWj1VLGxlPWllPVEsTWUuaXNOdW1icm8oaWUpJiYo''@;'; + put 'put ''bGU9aWUuX3ZhbHVlKSxaLl92YWx1ZT1sZSxaO3ZhciBaLGllLGxlfSxkaWZmZXJlbmNlOmZ1bmN0aW9uKFUsUSl7cmV0dXJuIFo9USxFKGxlPShpZT1NZSkoVS5fdmFsdWUpLFosaWUpLE1hdGguYWJzKGxlLl92YWx1ZSk7dmFyIFosaWUsbGV9fX19LHsiYmlnbnVtYmVyLmpzIjoxfV0sNzpb''@;'; + put 'put ''ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoZWUscSl7Zm9yKHZhciBKPTA7SjxxLmxlbmd0aDtKKyspe3ZhciBzZT1xW0pdO3NlLmVudW1lcmFibGU9c2UuZW51bWVyYWJsZXx8ITEsc2UuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBzZSYmKHNlLndyaXRhYmxl''@;'; + put 'put ''PSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZWUsc2Uua2V5LHNlKX19dmFyIEU9SmUoIi4vZ2xvYmFsU3RhdGUiKSxNZT1KZSgiLi92YWxpZGF0aW5nIiksVT1KZSgiLi9sb2FkaW5nIikoTiksUT1KZSgiLi91bmZvcm1hdHRpbmciKSxaPUplKCIuL2Zvcm1hdHRpbmciKShOKSxpZT1KZSgi''@;'; + put 'put ''Li9tYW5pcHVsYXRpbmciKShOKSxsZT1KZSgiLi9wYXJzaW5nIiksWT1mdW5jdGlvbigpe2Z1bmN0aW9uIGVlKG9lKXsoZnVuY3Rpb24oY2UsZGUpe2lmKCEoY2UgaW5zdGFuY2VvZiBkZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9''@;'; + put 'put ''KSh0aGlzLGVlKSx0aGlzLl92YWx1ZT1vZX12YXIgcSxKO3JldHVybiBxPWVlLChKPVt7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLl92YWx1ZSl9fSx7a2V5OiJmb3JtYXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFouZm9ybWF0KHRoaXMsMDxhcmd1bWVu''@;'; + put 'put ''dHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9KX19LHtrZXk6ImZvcm1hdEN1cnJlbmN5Iix2YWx1ZTpmdW5jdGlvbihvZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBvZSYmKG9lPWxlLnBhcnNlRm9ybWF0KG9lKSksKG9lPVouZm9ybWF0T3JEZWZhdWx0''@;'; + put 'put ''KG9lLEUuY3VycmVudEN1cnJlbmN5RGVmYXVsdEZvcm1hdCgpKSkub3V0cHV0PSJjdXJyZW5jeSIsWi5mb3JtYXQodGhpcyxvZSl9fSx7a2V5OiJmb3JtYXRUaW1lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBvZT0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1''@;'; + put 'put ''bWVudHNbMF06e307cmV0dXJuIG9lLm91dHB1dD0idGltZSIsWi5mb3JtYXQodGhpcyxvZSl9fSx7a2V5OiJiaW5hcnlCeXRlVW5pdHMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFouZ2V0QmluYXJ5Qnl0ZVVuaXQodGhpcyl9fSx7a2V5OiJkZWNpbWFsQnl0ZVVuaXRzIix2YWx1ZTpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiBaLmdldERlY2ltYWxCeXRlVW5pdCh0aGlzKX19LHtrZXk6ImJ5dGVVbml0cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gWi5nZXRCeXRlVW5pdCh0aGlzKX19LHtrZXk6ImRpZmZlcmVuY2UiLHZhbHVlOmZ1bmN0aW9uKG9lKXtyZXR1cm4gaWUuZGlmZmVyZW5jZSh0''@;'; + put 'put ''aGlzLG9lKX19LHtrZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24ob2Upe3JldHVybiBpZS5hZGQodGhpcyxvZSl9fSx7a2V5OiJzdWJ0cmFjdCIsdmFsdWU6ZnVuY3Rpb24ob2Upe3JldHVybiBpZS5zdWJ0cmFjdCh0aGlzLG9lKX19LHtrZXk6Im11bHRpcGx5Iix2YWx1ZTpmdW5jdGlvbihvZSl7''@;'; + put 'put ''cmV0dXJuIGllLm11bHRpcGx5KHRoaXMsb2UpfX0se2tleToiZGl2aWRlIix2YWx1ZTpmdW5jdGlvbihvZSl7cmV0dXJuIGllLmRpdmlkZSh0aGlzLG9lKX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24ob2Upe3JldHVybiBpZS5zZXQodGhpcyxXKG9lKSl9fSx7a2V5OiJ2YWx1ZSIsdmFs''@;'; + put 'put ''dWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9fSx7a2V5OiJ2YWx1ZU9mIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX19XSkmJkIocS5wcm90b3R5cGUsSiksZWV9KCk7ZnVuY3Rpb24gVyhlZSl7dmFyIHE9ZWU7cmV0dXJuIE4uaXNOdW1icm8oZWUpP3E9ZWUu''@;'; + put 'put ''X3ZhbHVlOiJzdHJpbmciPT10eXBlb2YgZWU/cT1OLnVuZm9ybWF0KGVlKTppc05hTihlZSkmJihxPU5hTikscX1mdW5jdGlvbiBOKGVlKXtyZXR1cm4gbmV3IFkoVyhlZSkpfU4udmVyc2lvbj0iMi4xLjIiLE4uaXNOdW1icm89ZnVuY3Rpb24oZWUpe3JldHVybiBlZSBpbnN0YW5jZW9mIFl9''@;'; + put 'put ''LE4ubGFuZ3VhZ2U9RS5jdXJyZW50TGFuZ3VhZ2UsTi5yZWdpc3Rlckxhbmd1YWdlPUUucmVnaXN0ZXJMYW5ndWFnZSxOLnNldExhbmd1YWdlPUUuc2V0TGFuZ3VhZ2UsTi5sYW5ndWFnZXM9RS5sYW5ndWFnZXMsTi5sYW5ndWFnZURhdGE9RS5sYW5ndWFnZURhdGEsTi56ZXJvRm9ybWF0PUUu''@;'; + put 'put ''c2V0WmVyb0Zvcm1hdCxOLmRlZmF1bHRGb3JtYXQ9RS5jdXJyZW50RGVmYXVsdHMsTi5zZXREZWZhdWx0cz1FLnNldERlZmF1bHRzLE4uZGVmYXVsdEN1cnJlbmN5Rm9ybWF0PUUuY3VycmVudEN1cnJlbmN5RGVmYXVsdEZvcm1hdCxOLnZhbGlkYXRlPU1lLnZhbGlkYXRlLE4ubG9hZExhbmd1''@;'; + put 'put ''YWdlc0luTm9kZT1VLmxvYWRMYW5ndWFnZXNJbk5vZGUsTi51bmZvcm1hdD1RLnVuZm9ybWF0LEwuZXhwb3J0cz1OfSx7Ii4vZm9ybWF0dGluZyI6MywiLi9nbG9iYWxTdGF0ZSI6NCwiLi9sb2FkaW5nIjo1LCIuL21hbmlwdWxhdGluZyI6NiwiLi9wYXJzaW5nIjo4LCIuL3VuZm9ybWF0dGlu''@;'; + put 'put ''ZyI6OSwiLi92YWxpZGF0aW5nIjoxMH1dLDg6W2Z1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtMLmV4cG9ydHM9e3BhcnNlRm9ybWF0OmZ1bmN0aW9uKEIpe3ZhciBFLE1lLFUsUSxaLGllLGxlLFksVyxOLGVlLHEsSixzZSxvZSxjZSxkZSx2ZSxBZSxrZSxTZT0xPGFyZ3VtZW50cy5s''@;'; + put 'put ''ZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuInN0cmluZyIhPXR5cGVvZiBCP0I6KE1lPVNlLFo9U2UsZnVuY3Rpb24oSWUsVGUpe2lmKC0xPT09SWUuaW5kZXhPZigiJCIpKXtpZigtMT09PUllLmluZGV4T2YoIiUiKSlyZXR1cm4tMSE9PUllLmlu''@;'; + put 'put ''ZGV4T2YoImJkIik/KFRlLm91dHB1dD0iYnl0ZSIsVGUuYmFzZT0iZ2VuZXJhbCIpOi0xIT09SWUuaW5kZXhPZigiYiIpPyhUZS5vdXRwdXQ9ImJ5dGUiLFRlLmJhc2U9ImJpbmFyeSIpOi0xIT09SWUuaW5kZXhPZigiZCIpPyhUZS5vdXRwdXQ9ImJ5dGUiLFRlLmJhc2U9ImRlY2ltYWwiKTot''@;'; + put 'put ''MT09PUllLmluZGV4T2YoIjoiKT8tMSE9PUllLmluZGV4T2YoIm8iKSYmKFRlLm91dHB1dD0ib3JkaW5hbCIpOlRlLm91dHB1dD0idGltZSI7VGUub3V0cHV0PSJwZXJjZW50In1lbHNlIFRlLm91dHB1dD0iY3VycmVuY3kifShCPShpZT0oUT1CPShVPShFPUIpLm1hdGNoKC9eeyhbXn1dKil9''@;'; + put 'put ''LykpPyhNZS5wcmVmaXg9VVsxXSxFLnNsaWNlKFVbMF0ubGVuZ3RoKSk6RSkubWF0Y2goL3soW159XSopfSQvKSk/KFoucG9zdGZpeD1pZVsxXSxRLnNsaWNlKDAsLWllWzBdLmxlbmd0aCkpOlEsU2UpLGxlPVNlLChZPUIubWF0Y2goL1sxLTldK1swLTldKi8pKSYmKGxlLnRvdGFsTGVuZ3Ro''@;'; + put 'put ''PStZWzBdKSxXPVNlLChOPUIuc3BsaXQoIi4iKVswXS5tYXRjaCgvMCsvKSkmJihXLmNoYXJhY3RlcmlzdGljPU5bMF0ubGVuZ3RoKSxmdW5jdGlvbihJZSxUZSl7aWYoLTEhPT1JZS5pbmRleE9mKCIuIikpe3ZhciBFZT1JZS5zcGxpdCgiLiIpWzBdO1RlLm9wdGlvbmFsQ2hhcmFjdGVyaXN0''@;'; + put 'put ''aWM9LTE9PT1FZS5pbmRleE9mKCIwIil9fShCLFNlKSxlZT1TZSwtMSE9PUIuaW5kZXhPZigiYSIpJiYoZWUuYXZlcmFnZT0hMCksSj1TZSwtMSE9PShxPUIpLmluZGV4T2YoIksiKT9KLmZvcmNlQXZlcmFnZT0idGhvdXNhbmQiOi0xIT09cS5pbmRleE9mKCJNIik/Si5mb3JjZUF2ZXJhZ2U9''@;'; + put 'put ''Im1pbGxpb24iOi0xIT09cS5pbmRleE9mKCJCIik/Si5mb3JjZUF2ZXJhZ2U9ImJpbGxpb24iOi0xIT09cS5pbmRleE9mKCJUIikmJihKLmZvcmNlQXZlcmFnZT0idHJpbGxpb24iKSxmdW5jdGlvbihJZSxUZSl7dmFyIEVlPUllLnNwbGl0KCIuIilbMV07aWYoRWUpe3ZhciBoZT1FZS5tYXRj''@;'; + put 'put ''aCgvMCsvKTtoZSYmKFRlLm1hbnRpc3NhPWhlWzBdLmxlbmd0aCl9fShCLFNlKSxvZT1TZSwoc2U9QikubWF0Y2goL1xbXC5dLyk/b2Uub3B0aW9uYWxNYW50aXNzYT0hMDpzZS5tYXRjaCgvXC4vKSYmKG9lLm9wdGlvbmFsTWFudGlzc2E9ITEpLGNlPVNlLC0xIT09Qi5pbmRleE9mKCIsIikm''@;'; + put 'put ''JihjZS50aG91c2FuZFNlcGFyYXRlZD0hMCksZGU9U2UsLTEhPT1CLmluZGV4T2YoIiAiKSYmKGRlLnNwYWNlU2VwYXJhdGVkPSEwKSxBZT1TZSwodmU9QikubWF0Y2goL15cKz9cKFteKV0qXCkkLykmJihBZS5uZWdhdGl2ZT0icGFyZW50aGVzaXMiKSx2ZS5tYXRjaCgvXlwrPy0vKSYmKEFl''@;'; + put 'put ''Lm5lZ2F0aXZlPSJzaWduIiksa2U9U2UsQi5tYXRjaCgvXlwrLykmJihrZS5mb3JjZVNpZ249ITApLFNlKX19fSx7fV0sOTpbZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO3ZhciBCPVt7a2V5OiJaaUIiLGZhY3RvcjpNYXRoLnBvdygxMDI0LDcpfSx7a2V5OiJaQiIsZmFjdG9yOk1h''@;'; + put 'put ''dGgucG93KDFlMyw3KX0se2tleToiWWlCIixmYWN0b3I6TWF0aC5wb3coMTAyNCw4KX0se2tleToiWUIiLGZhY3RvcjpNYXRoLnBvdygxZTMsOCl9LHtrZXk6IlRpQiIsZmFjdG9yOk1hdGgucG93KDEwMjQsNCl9LHtrZXk6IlRCIixmYWN0b3I6TWF0aC5wb3coMWUzLDQpfSx7a2V5OiJQaUIi''@;'; + put 'put ''LGZhY3RvcjpNYXRoLnBvdygxMDI0LDUpfSx7a2V5OiJQQiIsZmFjdG9yOk1hdGgucG93KDFlMyw1KX0se2tleToiTWlCIixmYWN0b3I6TWF0aC5wb3coMTAyNCwyKX0se2tleToiTUIiLGZhY3RvcjpNYXRoLnBvdygxZTMsMil9LHtrZXk6IktpQiIsZmFjdG9yOk1hdGgucG93KDEwMjQsMSl9''@;'; + put 'put ''LHtrZXk6IktCIixmYWN0b3I6TWF0aC5wb3coMWUzLDEpfSx7a2V5OiJHaUIiLGZhY3RvcjpNYXRoLnBvdygxMDI0LDMpfSx7a2V5OiJHQiIsZmFjdG9yOk1hdGgucG93KDFlMywzKX0se2tleToiRWlCIixmYWN0b3I6TWF0aC5wb3coMTAyNCw2KX0se2tleToiRUIiLGZhY3RvcjpNYXRoLnBv''@;'; + put 'put ''dygxZTMsNil9LHtrZXk6IkIiLGZhY3RvcjoxfV07ZnVuY3Rpb24gRShVKXtyZXR1cm4gVS5yZXBsYWNlKC9bLS9cXF4kKis/LigpfFtcXXt9XS9nLCJcXCQmIil9TC5leHBvcnRzPXt1bmZvcm1hdDpmdW5jdGlvbihVLFEpe3ZhciBaLFk9SmUoIi4vZ2xvYmFsU3RhdGUiKSxXPVkuY3VycmVu''@;'; + put 'put ''dERlbGltaXRlcnMoKSxOPVkuY3VycmVudEN1cnJlbmN5KCkuc3ltYm9sLGVlPVkuY3VycmVudE9yZGluYWwoKSxxPVkuZ2V0WmVyb0Zvcm1hdCgpLEo9WS5jdXJyZW50QWJicmV2aWF0aW9ucygpLHNlPXZvaWQgMDtpZigic3RyaW5nIj09dHlwZW9mIFUpc2U9ZnVuY3Rpb24ob2UsY2Upe2lm''@;'; + put 'put ''KCFvZS5pbmRleE9mKCI6Iil8fCI6Ij09PWNlLnRob3VzYW5kcylyZXR1cm4hMTt2YXIgZGU9b2Uuc3BsaXQoIjoiKTtpZigzIT09ZGUubGVuZ3RoKXJldHVybiExO3ZhciBBZT0rZGVbMV0sa2U9K2RlWzJdO3JldHVybiFpc05hTigrZGVbMF0pJiYhaXNOYU4oQWUpJiYhaXNOYU4oa2UpfShV''@;'; + put 'put ''LFcpPysoWj1VLnNwbGl0KCI6IikpWzJdKzYwKitaWzFdKzM2MDAqK1pbMF06ZnVuY3Rpb24gTWUoVSxRKXt2YXIgWj0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06IiIsaWU9Mzxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1szXTp2b2lk''@;'; + put 'put ''IDAsbGU9NDxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1s0XTp2b2lkIDAsWT01PGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzVdOnZvaWQgMCxXPTY8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbNl06dm9pZCAwO2lmKCIiIT09VSlyZXR1cm4gVT09PWxlPzA6ZnVuY3Rpb24gTihl''@;'; + put 'put ''ZSxxKXt2YXIgSj0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06IiIsc2U9Mzxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1szXTp2b2lkIDAsb2U9NDxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1s0XTp2b2lkIDAsY2U9NTxhcmd1bWVu''@;'; + put 'put ''dHMubGVuZ3RoP2FyZ3VtZW50c1s1XTp2b2lkIDAsZGU9Njxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1s2XTp2b2lkIDA7aWYoIWlzTmFOKCtlZSkpcmV0dXJuK2VlO3ZhciB2ZT0iIixBZT1lZS5yZXBsYWNlKC8oXlteKF0qKVwoKC4qKVwpKFteKV0qJCkvLCIkMSQyJDMiKTtpZihBZSE9''@;'; + put 'put ''PWVlKXJldHVybi0xKk4oQWUscSxKLHNlLG9lLGNlLGRlKTtmb3IodmFyIGtlPTA7a2U8Qi5sZW5ndGg7a2UrKyl7dmFyIFNlPUJba2VdO2lmKCh2ZT1lZS5yZXBsYWNlKFNlLmtleSwiIikpIT09ZWUpcmV0dXJuIE4odmUscSxKLHNlLG9lLGNlLGRlKSpTZS5mYWN0b3J9aWYoKHZlPWVlLnJl''@;'; + put 'put ''cGxhY2UoIiUiLCIiKSkhPT1lZSlyZXR1cm4gTih2ZSxxLEosc2Usb2UsY2UsZGUpLzEwMDt2YXIgSWU9cGFyc2VGbG9hdChlZSk7aWYoIWlzTmFOKEllKSl7dmFyIFRlPXNlKEllKTtpZihUZSYmIi4iIT09VGUmJih2ZT1lZS5yZXBsYWNlKG5ldyBSZWdFeHAoIiIuY29uY2F0KEUoVGUpLCIk''@;'; + put 'put ''IikpLCIiKSkhPT1lZSlyZXR1cm4gTih2ZSxxLEosc2Usb2UsY2UsZGUpO3ZhciBFZT17fTtPYmplY3Qua2V5cyhjZSkuZm9yRWFjaChmdW5jdGlvbihQKXtFZVtjZVtQXV09UH0pO2Zvcih2YXIgaGU9T2JqZWN0LmtleXMoRWUpLnNvcnQoKS5yZXZlcnNlKCksTz1oZS5sZW5ndGgsej0wO3o8''@;'; + put 'put ''Tzt6Kyspe3ZhciBuZT1oZVt6XSx0ZT1FZVtuZV07aWYoKHZlPWVlLnJlcGxhY2UobmUsIiIpKSE9PWVlKXt2YXIgeD12b2lkIDA7c3dpdGNoKHRlKXtjYXNlInRob3VzYW5kIjp4PU1hdGgucG93KDEwLDMpO2JyZWFrO2Nhc2UibWlsbGlvbiI6eD1NYXRoLnBvdygxMCw2KTticmVhaztjYXNl''@;'; + put 'put ''ImJpbGxpb24iOng9TWF0aC5wb3coMTAsOSk7YnJlYWs7Y2FzZSJ0cmlsbGlvbiI6eD1NYXRoLnBvdygxMCwxMil9cmV0dXJuIE4odmUscSxKLHNlLG9lLGNlLGRlKSp4fX19fShmdW5jdGlvbihOLGVlKXt2YXIgSj1OLnJlcGxhY2UoMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1''@;'; + put 'put ''bWVudHNbMl0/YXJndW1lbnRzWzJdOiIiLCIiKTtyZXR1cm4oSj1KLnJlcGxhY2UobmV3IFJlZ0V4cCgiKFswLTldKSIuY29uY2F0KEUoZWUudGhvdXNhbmRzKSwiKFswLTldKSIpLCJnIiksIiQxJDIiKSkucmVwbGFjZShlZS5kZWNpbWFsLCIuIil9KFUsUSxaKSxRLFosaWUsbGUsWSxXKX0o''@;'; + put 'put ''VSxXLE4sZWUscSxKLFEpO2Vsc2V7aWYoIm51bWJlciIhPXR5cGVvZiBVKXJldHVybjtzZT1VfWlmKHZvaWQgMCE9PXNlKXJldHVybiBzZX19fSx7Ii4vZ2xvYmFsU3RhdGUiOjR9XSwxMDpbZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoVyl7cmV0dXJuIGZ1bmN0''@;'; + put 'put ''aW9uKE4pe2lmKEFycmF5LmlzQXJyYXkoTikpe2Zvcih2YXIgZWU9MCxxPW5ldyBBcnJheShOLmxlbmd0aCk7ZWU8Ti5sZW5ndGg7ZWUrKylxW2VlXT1OW2VlXTtyZXR1cm4gcX19KFcpfHxmdW5jdGlvbihOKXtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KE4pfHwiW29iamVjdCBBcmd1''@;'; + put 'put ''bWVudHNdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChOKSlyZXR1cm4gQXJyYXkuZnJvbShOKX0oVyl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UiKX0oKX1mdW5jdGlvbiBF''@;'; + put 'put ''KFcpe3JldHVybihFPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKE4pe3JldHVybiB0eXBlb2YgTn06ZnVuY3Rpb24oTil7cmV0dXJuIE4mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJk4uY29uc3RydWN0b3I9''@;'; + put 'put ''PT1TeW1ib2wmJk4hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBOfSkoVyl9dmFyIE1lPUplKCIuL3VuZm9ybWF0dGluZyIpLFU9L15bYS16XXsyLDN9KC1bYS16QS1aXXs0fSk/KC0oW0EtWl17Mn18WzAtOV17M30pKT8kLyxRPXtvdXRwdXQ6e3R5cGU6InN0cmluZyIsdmFs''@;'; + put 'put ''aWRWYWx1ZXM6WyJjdXJyZW5jeSIsInBlcmNlbnQiLCJieXRlIiwidGltZSIsIm9yZGluYWwiLCJudW1iZXIiXX0sYmFzZTp7dHlwZToic3RyaW5nIix2YWxpZFZhbHVlczpbImRlY2ltYWwiLCJiaW5hcnkiLCJnZW5lcmFsIl0scmVzdHJpY3Rpb246ZnVuY3Rpb24oVyxOKXtyZXR1cm4iYnl0''@;'; + put 'put ''ZSI9PT1OLm91dHB1dH0sbWVzc2FnZToiYGJhc2VgIG11c3QgYmUgcHJvdmlkZWQgb25seSB3aGVuIHRoZSBvdXRwdXQgaXMgYGJ5dGVgIixtYW5kYXRvcnk6ZnVuY3Rpb24oVyl7cmV0dXJuImJ5dGUiPT09Vy5vdXRwdXR9fSxjaGFyYWN0ZXJpc3RpYzp7dHlwZToibnVtYmVyIixyZXN0cmlj''@;'; + put 'put ''dGlvbjpmdW5jdGlvbihXKXtyZXR1cm4gMDw9V30sbWVzc2FnZToidmFsdWUgbXVzdCBiZSBwb3NpdGl2ZSJ9LHByZWZpeDoic3RyaW5nIixwb3N0Zml4OiJzdHJpbmciLGZvcmNlQXZlcmFnZTp7dHlwZToic3RyaW5nIix2YWxpZFZhbHVlczpbInRyaWxsaW9uIiwiYmlsbGlvbiIsIm1pbGxp''@;'; + put 'put ''b24iLCJ0aG91c2FuZCJdfSxhdmVyYWdlOiJib29sZWFuIixjdXJyZW5jeVBvc2l0aW9uOnt0eXBlOiJzdHJpbmciLHZhbGlkVmFsdWVzOlsicHJlZml4IiwiaW5maXgiLCJwb3N0Zml4Il19LGN1cnJlbmN5U3ltYm9sOiJzdHJpbmciLHRvdGFsTGVuZ3RoOnt0eXBlOiJudW1iZXIiLHJlc3Ry''@;'; + put 'put ''aWN0aW9uczpbe3Jlc3RyaWN0aW9uOmZ1bmN0aW9uKFcpe3JldHVybiAwPD1XfSxtZXNzYWdlOiJ2YWx1ZSBtdXN0IGJlIHBvc2l0aXZlIn0se3Jlc3RyaWN0aW9uOmZ1bmN0aW9uKFcsTil7cmV0dXJuIU4uZXhwb25lbnRpYWx9LG1lc3NhZ2U6ImB0b3RhbExlbmd0aGAgaXMgaW5jb21wYXRp''@;'; + put 'put ''YmxlIHdpdGggYGV4cG9uZW50aWFsYCJ9XX0sbWFudGlzc2E6e3R5cGU6Im51bWJlciIscmVzdHJpY3Rpb246ZnVuY3Rpb24oVyl7cmV0dXJuIDA8PVd9LG1lc3NhZ2U6InZhbHVlIG11c3QgYmUgcG9zaXRpdmUifSxvcHRpb25hbE1hbnRpc3NhOiJib29sZWFuIix0cmltTWFudGlzc2E6ImJv''@;'; + put 'put ''b2xlYW4iLG9wdGlvbmFsQ2hhcmFjdGVyaXN0aWM6ImJvb2xlYW4iLHRob3VzYW5kU2VwYXJhdGVkOiJib29sZWFuIixzcGFjZVNlcGFyYXRlZDoiYm9vbGVhbiIsYWJicmV2aWF0aW9uczp7dHlwZToib2JqZWN0IixjaGlsZHJlbjp7dGhvdXNhbmQ6InN0cmluZyIsbWlsbGlvbjoic3RyaW5n''@;'; + put 'put ''IixiaWxsaW9uOiJzdHJpbmciLHRyaWxsaW9uOiJzdHJpbmcifX0sbmVnYXRpdmU6e3R5cGU6InN0cmluZyIsdmFsaWRWYWx1ZXM6WyJzaWduIiwicGFyZW50aGVzaXMiXX0sZm9yY2VTaWduOiJib29sZWFuIixleHBvbmVudGlhbDp7dHlwZToiYm9vbGVhbiJ9LHByZWZpeFN5bWJvbDp7dHlw''@;'; + put 'put ''ZToiYm9vbGVhbiIscmVzdHJpY3Rpb246ZnVuY3Rpb24oVyxOKXtyZXR1cm4icGVyY2VudCI9PT1OLm91dHB1dH0sbWVzc2FnZToiYHByZWZpeFN5bWJvbGAgY2FuIGJlIHByb3ZpZGVkIG9ubHkgd2hlbiB0aGUgb3V0cHV0IGlzIGBwZXJjZW50YCJ9fSxaPXtsYW5ndWFnZVRhZzp7dHlwZToi''@;'; + put 'put ''c3RyaW5nIixtYW5kYXRvcnk6ITAscmVzdHJpY3Rpb246ZnVuY3Rpb24oVyl7cmV0dXJuIFcubWF0Y2goVSl9LG1lc3NhZ2U6InRoZSBsYW5ndWFnZSB0YWcgbXVzdCBmb2xsb3cgdGhlIEJDUCA0NyBzcGVjaWZpY2F0aW9uIChzZWUgaHR0cHM6Ly90b29scy5pZWZ0Lm9yZy9odG1sL2JjcDQ3''@;'; + put 'put ''KSJ9LGRlbGltaXRlcnM6e3R5cGU6Im9iamVjdCIsY2hpbGRyZW46e3Rob3VzYW5kczoic3RyaW5nIixkZWNpbWFsOiJzdHJpbmciLHRob3VzYW5kc1NpemU6Im51bWJlciJ9LG1hbmRhdG9yeTohMH0sYWJicmV2aWF0aW9uczp7dHlwZToib2JqZWN0IixjaGlsZHJlbjp7dGhvdXNhbmQ6e3R5''@;'; + put 'put ''cGU6InN0cmluZyIsbWFuZGF0b3J5OiEwfSxtaWxsaW9uOnt0eXBlOiJzdHJpbmciLG1hbmRhdG9yeTohMH0sYmlsbGlvbjp7dHlwZToic3RyaW5nIixtYW5kYXRvcnk6ITB9LHRyaWxsaW9uOnt0eXBlOiJzdHJpbmciLG1hbmRhdG9yeTohMH19LG1hbmRhdG9yeTohMH0sc3BhY2VTZXBhcmF0''@;'; + put 'put ''ZWQ6ImJvb2xlYW4iLG9yZGluYWw6e3R5cGU6ImZ1bmN0aW9uIixtYW5kYXRvcnk6ITB9LGN1cnJlbmN5Ont0eXBlOiJvYmplY3QiLGNoaWxkcmVuOntzeW1ib2w6InN0cmluZyIscG9zaXRpb246InN0cmluZyIsY29kZToic3RyaW5nIn0sbWFuZGF0b3J5OiEwfSxkZWZhdWx0czoiZm9ybWF0''@;'; + put 'put ''IixvcmRpbmFsRm9ybWF0OiJmb3JtYXQiLGJ5dGVGb3JtYXQ6ImZvcm1hdCIscGVyY2VudGFnZUZvcm1hdDoiZm9ybWF0IixjdXJyZW5jeUZvcm1hdDoiZm9ybWF0Iix0aW1lRGVmYXVsdHM6ImZvcm1hdCIsZm9ybWF0czp7dHlwZToib2JqZWN0IixjaGlsZHJlbjp7Zm91ckRpZ2l0czp7dHlw''@;'; + put 'put ''ZToiZm9ybWF0IixtYW5kYXRvcnk6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e3R5cGU6ImZvcm1hdCIsbWFuZGF0b3J5OiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7dHlwZToiZm9ybWF0IixtYW5kYXRvcnk6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7dHlwZToiZm9ybWF0''@;'; + put 'put ''IixtYW5kYXRvcnk6ITB9fX19O2Z1bmN0aW9uIGllKFcpe3JldHVybiEhTWUudW5mb3JtYXQoVyl9ZnVuY3Rpb24gbGUoVyxOLGVlKXt2YXIgcT0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdLEo9T2JqZWN0LmtleXMoVykubWFwKGZ1bmN0''@;'; + put 'put ''aW9uKHNlKXtpZighTltzZV0pcmV0dXJuIGNvbnNvbGUuZXJyb3IoIiIuY29uY2F0KGVlLCIgSW52YWxpZCBrZXk6ICIpLmNvbmNhdChzZSkpLCExO3ZhciBvZT1XW3NlXSxjZT1OW3NlXTtpZigic3RyaW5nIj09dHlwZW9mIGNlJiYoY2U9e3R5cGU6Y2V9KSwiZm9ybWF0Ij09PWNlLnR5cGUp''@;'; + put 'put ''e2lmKCFsZShvZSxRLCJbVmFsaWRhdGUgIi5jb25jYXQoc2UsIl0iKSwhMCkpcmV0dXJuITF9ZWxzZSBpZihFKG9lKSE9PWNlLnR5cGUpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIiIuY29uY2F0KGVlLCIgIikuY29uY2F0KHNlLCcgdHlwZSBtaXNtYXRjaGVkOiAiJykuY29uY2F0KGNlLnR5cGUs''@;'; + put 'put ''JyIgZXhwZWN0ZWQsICInKS5jb25jYXQoRShvZSksJyIgcHJvdmlkZWQnKSksITE7aWYoY2UucmVzdHJpY3Rpb25zJiZjZS5yZXN0cmljdGlvbnMubGVuZ3RoKWZvcih2YXIgZGU9Y2UucmVzdHJpY3Rpb25zLmxlbmd0aCx2ZT0wO3ZlPGRlO3ZlKyspe3ZhciBBZT1jZS5yZXN0cmljdGlvbnNb''@;'; + put 'put ''dmVdLFNlPUFlLm1lc3NhZ2U7aWYoISgwLEFlLnJlc3RyaWN0aW9uKShvZSxXKSlyZXR1cm4gY29uc29sZS5lcnJvcigiIi5jb25jYXQoZWUsIiAiKS5jb25jYXQoc2UsIiBpbnZhbGlkIHZhbHVlOiAiKS5jb25jYXQoU2UpKSwhMX1yZXR1cm4gY2UucmVzdHJpY3Rpb24mJiFjZS5yZXN0cmlj''@;'; + put 'put ''dGlvbihvZSxXKT8oY29uc29sZS5lcnJvcigiIi5jb25jYXQoZWUsIiAiKS5jb25jYXQoc2UsIiBpbnZhbGlkIHZhbHVlOiAiKS5jb25jYXQoY2UubWVzc2FnZSkpLCExKTpjZS52YWxpZFZhbHVlcyYmLTE9PT1jZS52YWxpZFZhbHVlcy5pbmRleE9mKG9lKT8oY29uc29sZS5lcnJvcigiIi5j''@;'; + put 'put ''b25jYXQoZWUsIiAiKS5jb25jYXQoc2UsIiBpbnZhbGlkIHZhbHVlOiBtdXN0IGJlIGFtb25nICIpLmNvbmNhdChKU09OLnN0cmluZ2lmeShjZS52YWxpZFZhbHVlcyksJywgIicpLmNvbmNhdChvZSwnIiBwcm92aWRlZCcpKSwhMSk6IShjZS5jaGlsZHJlbiYmIWxlKG9lLGNlLmNoaWxkcmVu''@;'; + put 'put ''LCJbVmFsaWRhdGUgIi5jb25jYXQoc2UsIl0iKSkpfSk7cmV0dXJuIHF8fEoucHVzaC5hcHBseShKLEIoT2JqZWN0LmtleXMoTikubWFwKGZ1bmN0aW9uKHNlKXt2YXIgb2U9TltzZV07aWYoInN0cmluZyI9PXR5cGVvZiBvZSYmKG9lPXt0eXBlOm9lfSksb2UubWFuZGF0b3J5KXt2YXIgY2U9''@;'; + put 'put ''b2UubWFuZGF0b3J5O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjZSYmKGNlPWNlKFcpKSxjZSYmdm9pZCAwPT09V1tzZV0pcmV0dXJuIGNvbnNvbGUuZXJyb3IoIiIuY29uY2F0KGVlLCcgTWlzc2luZyBtYW5kYXRvcnkga2V5ICInKS5jb25jYXQoc2UsJyInKSksITF9cmV0dXJuITB9KSkpLEou''@;'; + put 'put ''cmVkdWNlKGZ1bmN0aW9uKHNlLG9lKXtyZXR1cm4gc2UmJm9lfSwhMCl9ZnVuY3Rpb24gWShXKXtyZXR1cm4gbGUoVyxRLCJbVmFsaWRhdGUgZm9ybWF0XSIpfUwuZXhwb3J0cz17dmFsaWRhdGU6ZnVuY3Rpb24oVyxOKXt2YXIgZWU9aWUoVykscT1ZKE4pO3JldHVybiBlZSYmcX0sdmFsaWRh''@;'; + put 'put ''dGVGb3JtYXQ6WSx2YWxpZGF0ZUlucHV0OmllLHZhbGlkYXRlTGFuZ3VhZ2U6ZnVuY3Rpb24oVyl7cmV0dXJuIGxlKFcsWiwiW1ZhbGlkYXRlIGxhbmd1YWdlXSIpfX19LHsiLi91bmZvcm1hdHRpbmciOjl9XX0se30sWzddKSg3KX0sMzk2NTA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3Zh''@;'; + put 'put ''ciBtZT1MKDE4NDQ0KS5CdWZmZXIsQj1MKDY1Njg1KS5UcmFuc2Zvcm07ZnVuY3Rpb24gVShRKXtCLmNhbGwodGhpcyksdGhpcy5fYmxvY2s9bWUuYWxsb2NVbnNhZmUoUSksdGhpcy5fYmxvY2tTaXplPVEsdGhpcy5fYmxvY2tPZmZzZXQ9MCx0aGlzLl9sZW5ndGg9WzAsMCwwLDBdLHRoaXMu''@;'; + put 'put ''X2ZpbmFsaXplZD0hMX1MKDgzODk0KShVLEIpLFUucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oUSxaLGllKXt2YXIgbGU9bnVsbDt0cnl7dGhpcy51cGRhdGUoUSxaKX1jYXRjaChZKXtsZT1ZfWllKGxlKX0sVS5wcm90b3R5cGUuX2ZsdXNoPWZ1bmN0aW9uKFEpe3ZhciBaPW51bGw7''@;'; + put 'put ''dHJ5e3RoaXMucHVzaCh0aGlzLmRpZ2VzdCgpKX1jYXRjaChpZSl7Wj1pZX1RKFopfSxVLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oUSxaKXtpZihmdW5jdGlvbiBNZShRLFope2lmKCFtZS5pc0J1ZmZlcihRKSYmInN0cmluZyIhPXR5cGVvZiBRKXRocm93IG5ldyBUeXBlRXJyb3IoWisi''@;'; + put 'put ''IG11c3QgYmUgYSBzdHJpbmcgb3IgYSBidWZmZXIiKX0oUSwiRGF0YSIpLHRoaXMuX2ZpbmFsaXplZCl0aHJvdyBuZXcgRXJyb3IoIkRpZ2VzdCBhbHJlYWR5IGNhbGxlZCIpO21lLmlzQnVmZmVyKFEpfHwoUT1tZS5mcm9tKFEsWikpO2Zvcih2YXIgaWU9dGhpcy5fYmxvY2ssbGU9MDt0aGlz''@;'; + put 'put ''Ll9ibG9ja09mZnNldCtRLmxlbmd0aC1sZT49dGhpcy5fYmxvY2tTaXplOyl7Zm9yKHZhciBZPXRoaXMuX2Jsb2NrT2Zmc2V0O1k8dGhpcy5fYmxvY2tTaXplOylpZVtZKytdPVFbbGUrK107dGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9MH1mb3IoO2xlPFEubGVuZ3RoOylpZVt0''@;'; + put 'put ''aGlzLl9ibG9ja09mZnNldCsrXT1RW2xlKytdO2Zvcih2YXIgVz0wLE49OCpRLmxlbmd0aDtOPjA7KytXKXRoaXMuX2xlbmd0aFtXXSs9TiwoTj10aGlzLl9sZW5ndGhbV10vNDI5NDk2NzI5NnwwKT4wJiYodGhpcy5fbGVuZ3RoW1ddLT00Mjk0OTY3Mjk2Kk4pO3JldHVybiB0aGlzfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRlIGlzIG5vdCBpbXBsZW1lbnRlZCIpfSxVLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oUSl7aWYodGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7''@;'; + put 'put ''dGhpcy5fZmluYWxpemVkPSEwO3ZhciBaPXRoaXMuX2RpZ2VzdCgpO3ZvaWQgMCE9PVEmJihaPVoudG9TdHJpbmcoUSkpLHRoaXMuX2Jsb2NrLmZpbGwoMCksdGhpcy5fYmxvY2tPZmZzZXQ9MDtmb3IodmFyIGllPTA7aWU8NDsrK2llKXRoaXMuX2xlbmd0aFtpZV09MDtyZXR1cm4gWn0sVS5w''@;'; + put 'put ''cm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX2RpZ2VzdCBpcyBub3QgaW1wbGVtZW50ZWQiKX0sWGUuZXhwb3J0cz1VfSwxODQ0NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5MzE3MiksQj1tZS5CdWZmZXI7ZnVuY3Rpb24gRShVLFEpe2Zvcih2YXIgWiBpbiBV''@;'; + put 'put ''KVFbWl09VVtaXX1mdW5jdGlvbiBNZShVLFEsWil7cmV0dXJuIEIoVSxRLFopfUIuZnJvbSYmQi5hbGxvYyYmQi5hbGxvY1Vuc2FmZSYmQi5hbGxvY1Vuc2FmZVNsb3c/WGUuZXhwb3J0cz1tZTooRShtZSxKZSksSmUuQnVmZmVyPU1lKSxNZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShCLnBy''@;'; + put 'put ''b3RvdHlwZSksRShCLE1lKSxNZS5mcm9tPWZ1bmN0aW9uKFUsUSxaKXtpZigibnVtYmVyIj09dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gQihVLFEsWil9LE1lLmFsbG9jPWZ1bmN0aW9uKFUsUSxaKXtpZigibnVt''@;'; + put 'put ''YmVyIiE9dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBpZT1CKFUpO3JldHVybiB2b2lkIDAhPT1RPyJzdHJpbmciPT10eXBlb2YgWj9pZS5maWxsKFEsWik6aWUuZmlsbChRKTppZS5maWxsKDApLGllfSxNZS5hbGxvY1Vuc2Fm''@;'; + put 'put ''ZT1mdW5jdGlvbihVKXtpZigibnVtYmVyIiE9dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBCKFUpfSxNZS5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24oVSl7aWYoIm51bWJlciIhPXR5cGVvZiBVKXRocm93IG5ldyBUeXBl''@;'; + put 'put ''RXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gbWUuU2xvd0J1ZmZlcihVKX19LDM3MDg0OihYZSxKZSxMKT0+e3ZhciBtZT1KZTttZS51dGlscz1MKDI5Mjk5KSxtZS5jb21tb249TCgzMzgwMCksbWUuc2hhPUwoNTQ5NjIpLG1lLnJpcGVtZD1MKDk5NDU4KSxtZS5o''@;'; + put 'put ''bWFjPUwoMTIxOTQpLG1lLnNoYTE9bWUuc2hhLnNoYTEsbWUuc2hhMjU2PW1lLnNoYS5zaGEyNTYsbWUuc2hhMjI0PW1lLnNoYS5zaGEyMjQsbWUuc2hhMzg0PW1lLnNoYS5zaGEzODQsbWUuc2hhNTEyPW1lLnNoYS5zaGE1MTIsbWUucmlwZW1kMTYwPW1lLnJpcGVtZC5yaXBlbWQxNjB9LDMz''@;'; + put 'put ''ODAwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyOTI5OSksQj1MKDMyMzkxKTtmdW5jdGlvbiBFKCl7dGhpcy5wZW5kaW5nPW51bGwsdGhpcy5wZW5kaW5nVG90YWw9MCx0aGlzLmJsb2NrU2l6ZT10aGlzLmNvbnN0cnVjdG9yLmJsb2NrU2l6ZSx0aGlzLm91dFNpemU9dGhp''@;'; + put 'put ''cy5jb25zdHJ1Y3Rvci5vdXRTaXplLHRoaXMuaG1hY1N0cmVuZ3RoPXRoaXMuY29uc3RydWN0b3IuaG1hY1N0cmVuZ3RoLHRoaXMucGFkTGVuZ3RoPXRoaXMuY29uc3RydWN0b3IucGFkTGVuZ3RoLzgsdGhpcy5lbmRpYW49ImJpZyIsdGhpcy5fZGVsdGE4PXRoaXMuYmxvY2tTaXplLzgsdGhp''@;'; + put 'put ''cy5fZGVsdGEzMj10aGlzLmJsb2NrU2l6ZS8zMn1KZS5CbG9ja0hhc2g9RSxFLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oVSxRKXtpZihVPW1lLnRvQXJyYXkoVSxRKSx0aGlzLnBlbmRpbmc9dGhpcy5wZW5kaW5nP3RoaXMucGVuZGluZy5jb25jYXQoVSk6VSx0aGlzLnBlbmRpbmdUb3Rh''@;'; + put 'put ''bCs9VS5sZW5ndGgsdGhpcy5wZW5kaW5nLmxlbmd0aD49dGhpcy5fZGVsdGE4KXt2YXIgWj0oVT10aGlzLnBlbmRpbmcpLmxlbmd0aCV0aGlzLl9kZWx0YTg7dGhpcy5wZW5kaW5nPVUuc2xpY2UoVS5sZW5ndGgtWixVLmxlbmd0aCksMD09PXRoaXMucGVuZGluZy5sZW5ndGgmJih0aGlzLnBl''@;'; + put 'put ''bmRpbmc9bnVsbCksVT1tZS5qb2luMzIoVSwwLFUubGVuZ3RoLVosdGhpcy5lbmRpYW4pO2Zvcih2YXIgaWU9MDtpZTxVLmxlbmd0aDtpZSs9dGhpcy5fZGVsdGEzMil0aGlzLl91cGRhdGUoVSxpZSxpZSt0aGlzLl9kZWx0YTMyKX1yZXR1cm4gdGhpc30sRS5wcm90b3R5cGUuZGlnZXN0PWZ1''@;'; + put 'put ''bmN0aW9uKFUpe3JldHVybiB0aGlzLnVwZGF0ZSh0aGlzLl9wYWQoKSksQihudWxsPT09dGhpcy5wZW5kaW5nKSx0aGlzLl9kaWdlc3QoVSl9LEUucHJvdG90eXBlLl9wYWQ9ZnVuY3Rpb24oKXt2YXIgVT10aGlzLnBlbmRpbmdUb3RhbCxRPXRoaXMuX2RlbHRhOCxaPVEtKFUrdGhpcy5wYWRM''@;'; + put 'put ''ZW5ndGgpJVEsaWU9bmV3IEFycmF5KFordGhpcy5wYWRMZW5ndGgpO2llWzBdPTEyODtmb3IodmFyIGxlPTE7bGU8WjtsZSsrKWllW2xlXT0wO2lmKFU8PD0zLCJiaWciPT09dGhpcy5lbmRpYW4pe2Zvcih2YXIgWT04O1k8dGhpcy5wYWRMZW5ndGg7WSsrKWllW2xlKytdPTA7aWVbbGUrK109''@;'; + put 'put ''MCxpZVtsZSsrXT0wLGllW2xlKytdPTAsaWVbbGUrK109MCxpZVtsZSsrXT1VPj4+MjQmMjU1LGllW2xlKytdPVU+Pj4xNiYyNTUsaWVbbGUrK109VT4+PjgmMjU1LGllW2xlKytdPTI1NSZVfWVsc2UgZm9yKGllW2xlKytdPTI1NSZVLGllW2xlKytdPVU+Pj44JjI1NSxpZVtsZSsrXT1VPj4+''@;'; + put 'put ''MTYmMjU1LGllW2xlKytdPVU+Pj4yNCYyNTUsaWVbbGUrK109MCxpZVtsZSsrXT0wLGllW2xlKytdPTAsaWVbbGUrK109MCxZPTg7WTx0aGlzLnBhZExlbmd0aDtZKyspaWVbbGUrK109MDtyZXR1cm4gaWV9fSwxMjE5NDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjkyOTkp''@;'; + put 'put ''LEI9TCgzMjM5MSk7ZnVuY3Rpb24gRShNZSxVLFEpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEUpKXJldHVybiBuZXcgRShNZSxVLFEpO3RoaXMuSGFzaD1NZSx0aGlzLmJsb2NrU2l6ZT1NZS5ibG9ja1NpemUvOCx0aGlzLm91dFNpemU9TWUub3V0U2l6ZS84LHRoaXMuaW5uZXI9bnVsbCx0aGlz''@;'; + put 'put ''Lm91dGVyPW51bGwsdGhpcy5faW5pdChtZS50b0FycmF5KFUsUSkpfVhlLmV4cG9ydHM9RSxFLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihVKXtVLmxlbmd0aD50aGlzLmJsb2NrU2l6ZSYmKFU9KG5ldyB0aGlzLkhhc2gpLnVwZGF0ZShVKS5kaWdlc3QoKSksQihVLmxlbmd0aDw9dGhpcy5i''@;'; + put 'put ''bG9ja1NpemUpO2Zvcih2YXIgUT1VLmxlbmd0aDtRPHRoaXMuYmxvY2tTaXplO1ErKylVLnB1c2goMCk7Zm9yKFE9MDtRPFUubGVuZ3RoO1ErKylVW1FdXj01NDtmb3IodGhpcy5pbm5lcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKFUpLFE9MDtRPFUubGVuZ3RoO1ErKylVW1FdXj0xMDY7dGhp''@;'; + put 'put ''cy5vdXRlcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKFUpfSxFLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oVSxRKXtyZXR1cm4gdGhpcy5pbm5lci51cGRhdGUoVSxRKSx0aGlzfSxFLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oVSl7cmV0dXJuIHRoaXMub3V0ZXIudXBkYXRlKHRoaXMu''@;'; + put 'put ''aW5uZXIuZGlnZXN0KCkpLHRoaXMub3V0ZXIuZGlnZXN0KFUpfX0sOTk0NTg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI5Mjk5KSxCPUwoMzM4MDApLEU9bWUucm90bDMyLE1lPW1lLnN1bTMyLFU9bWUuc3VtMzJfMyxRPW1lLnN1bTMyXzQsWj1CLkJsb2NrSGFzaDtmdW5j''@;'; + put 'put ''dGlvbiBpZSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGllKSlyZXR1cm4gbmV3IGllO1ouY2FsbCh0aGlzKSx0aGlzLmg9WzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSx0aGlzLmVuZGlhbj0ibGl0dGxlIn1mdW5jdGlvbiBsZShzZSxvZSxj''@;'; + put 'put ''ZSxkZSl7cmV0dXJuIHNlPD0xNT9vZV5jZV5kZTpzZTw9MzE/b2UmY2V8fm9lJmRlOnNlPD00Nz8ob2V8fmNlKV5kZTpzZTw9NjM/b2UmZGV8Y2UmfmRlOm9lXihjZXx+ZGUpfWZ1bmN0aW9uIFcoc2Upe3JldHVybiBzZTw9MTU/MTM1MjgyOTkyNjpzZTw9MzE/MTU0ODYwMzY4NDpzZTw9NDc/''@;'; + put 'put ''MTgzNjA3MjY5MTpzZTw9NjM/MjA1Mzk5NDIxNzowfW1lLmluaGVyaXRzKGllLFopLEplLnJpcGVtZDE2MD1pZSxpZS5ibG9ja1NpemU9NTEyLGllLm91dFNpemU9MTYwLGllLmhtYWNTdHJlbmd0aD0xOTIsaWUucGFkTGVuZ3RoPTY0LGllLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKG9l''@;'; + put 'put ''LGNlKXtmb3IodmFyIGRlPXRoaXMuaFswXSx2ZT10aGlzLmhbMV0sQWU9dGhpcy5oWzJdLGtlPXRoaXMuaFszXSxTZT10aGlzLmhbNF0sSWU9ZGUsVGU9dmUsRWU9QWUsaGU9a2UsTz1TZSx6PTA7ejw4MDt6Kyspe3ZhciBuZT1NZShFKFEoZGUsbGUoeix2ZSxBZSxrZSksb2VbTlt6XStjZV0s''@;'; + put 'put ''KHNlPXopPD0xNT8wOnNlPD0zMT8xNTE4NTAwMjQ5OnNlPD00Nz8xODU5Nzc1MzkzOnNlPD02Mz8yNDAwOTU5NzA4OjI4NDA4NTM4MzgpLHFbel0pLFNlKTtkZT1TZSxTZT1rZSxrZT1FKEFlLDEwKSxBZT12ZSx2ZT1uZSxuZT1NZShFKFEoSWUsbGUoNzkteixUZSxFZSxoZSksb2VbZWVbel0r''@;'; + put 'put ''Y2VdLFcoeikpLEpbel0pLE8pLEllPU8sTz1oZSxoZT1FKEVlLDEwKSxFZT1UZSxUZT1uZX12YXIgc2U7bmU9VSh0aGlzLmhbMV0sQWUsaGUpLHRoaXMuaFsxXT1VKHRoaXMuaFsyXSxrZSxPKSx0aGlzLmhbMl09VSh0aGlzLmhbM10sU2UsSWUpLHRoaXMuaFszXT1VKHRoaXMuaFs0XSxkZSxU''@;'; + put 'put ''ZSksdGhpcy5oWzRdPVUodGhpcy5oWzBdLHZlLEVlKSx0aGlzLmhbMF09bmV9LGllLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKG9lKXtyZXR1cm4iaGV4Ij09PW9lP21lLnRvSGV4MzIodGhpcy5oLCJsaXR0bGUiKTptZS5zcGxpdDMyKHRoaXMuaCwibGl0dGxlIil9O3ZhciBOPVswLDEs''@;'; + put 'put ''MiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDcsNCwxMywxLDEwLDYsMTUsMywxMiwwLDksNSwyLDE0LDExLDgsMywxMCwxNCw0LDksMTUsOCwxLDIsNywwLDYsMTMsMTEsNSwxMiwxLDksMTEsMTAsMCw4LDEyLDQsMTMsMyw3LDE1LDE0LDUsNiwyLDQsMCw1LDksNywxMiwyLDEw''@;'; + put 'put ''LDE0LDEsMyw4LDExLDYsMTUsMTNdLGVlPVs1LDE0LDcsMCw5LDIsMTEsNCwxMyw2LDE1LDgsMSwxMCwzLDEyLDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQsOSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYsNCwxLDMsMTEsMTUsMCw1LDEyLDIs''@;'; + put 'put ''MTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQsMSw1LDgsNyw2LDIsMTMsMTQsMCwzLDksMTFdLHE9WzExLDE0LDE1LDEyLDUsOCw3LDksMTEsMTMsMTQsMTUsNiw3LDksOCw3LDYsOCwxMywxMSw5LDcsMTUsNywxMiwxNSw5LDExLDcsMTMsMTIsMTEsMTMsNiw3LDE0LDksMTMsMTUsMTQsOCwxMyw2''@;'; + put 'put ''LDUsMTIsNyw1LDExLDEyLDE0LDE1LDE0LDE1LDksOCw5LDE0LDUsNiw4LDYsNSwxMiw5LDE1LDUsMTEsNiw4LDEzLDEyLDUsMTIsMTMsMTQsMTEsOCw1LDZdLEo9WzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYs''@;'; + put 'put ''MTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdfSw1NDk2MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7SmUu''@;'; + put 'put ''c2hhMT1MKDU5MDA3KSxKZS5zaGEyMjQ9TCgxMDA1NSksSmUuc2hhMjU2PUwoMTkzNDIpLEplLnNoYTM4ND1MKDg4NjM0KSxKZS5zaGE1MTI9TCg3MDAzOSl9LDU5MDA3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyOTI5OSksQj1MKDMzODAwKSxFPUwoMzMxMTMpLE1lPW1l''@;'; + put 'put ''LnJvdGwzMixVPW1lLnN1bTMyLFE9bWUuc3VtMzJfNSxaPUUuZnRfMSxpZT1CLkJsb2NrSGFzaCxsZT1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMzM5NTQ2OTc4Ml07ZnVuY3Rpb24gWSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFkpKXJldHVybiBuZXcgWTtpZS5jYWxsKHRo''@;'; + put 'put ''aXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdLHRoaXMuVz1uZXcgQXJyYXkoODApfW1lLmluaGVyaXRzKFksaWUpLFhlLmV4cG9ydHM9WSxZLmJsb2NrU2l6ZT01MTIsWS5vdXRTaXplPTE2MCxZLmhtYWNTdHJlbmd0aD04''@;'; + put 'put ''MCxZLnBhZExlbmd0aD02NCxZLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKE4sZWUpe2Zvcih2YXIgcT10aGlzLlcsSj0wO0o8MTY7SisrKXFbSl09TltlZStKXTtmb3IoO0o8cS5sZW5ndGg7SisrKXFbSl09TWUocVtKLTNdXnFbSi04XV5xW0otMTRdXnFbSi0xNl0sMSk7dmFyIHNlPXRo''@;'; + put 'put ''aXMuaFswXSxvZT10aGlzLmhbMV0sY2U9dGhpcy5oWzJdLGRlPXRoaXMuaFszXSx2ZT10aGlzLmhbNF07Zm9yKEo9MDtKPHEubGVuZ3RoO0orKyl7dmFyIEFlPX5+KEovMjApLGtlPVEoTWUoc2UsNSksWihBZSxvZSxjZSxkZSksdmUscVtKXSxsZVtBZV0pO3ZlPWRlLGRlPWNlLGNlPU1lKG9l''@;'; + put 'put ''LDMwKSxvZT1zZSxzZT1rZX10aGlzLmhbMF09VSh0aGlzLmhbMF0sc2UpLHRoaXMuaFsxXT1VKHRoaXMuaFsxXSxvZSksdGhpcy5oWzJdPVUodGhpcy5oWzJdLGNlKSx0aGlzLmhbM109VSh0aGlzLmhbM10sZGUpLHRoaXMuaFs0XT1VKHRoaXMuaFs0XSx2ZSl9LFkucHJvdG90eXBlLl9kaWdl''@;'; + put 'put ''c3Q9ZnVuY3Rpb24oTil7cmV0dXJuImhleCI9PT1OP21lLnRvSGV4MzIodGhpcy5oLCJiaWciKTptZS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSwxMDA1NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjkyOTkpLEI9TCgxOTM0Mik7ZnVuY3Rpb24gRSgpe2lmKCEodGhpcyBp''@;'; + put 'put ''bnN0YW5jZW9mIEUpKXJldHVybiBuZXcgRTtCLmNhbGwodGhpcyksdGhpcy5oPVszMjM4MzcxMDMyLDkxNDE1MDY2Myw4MTI3MDI5OTksNDE0NDkxMjY5Nyw0MjkwNzc1ODU3LDE3NTA2MDMwMjUsMTY5NDA3NjgzOSwzMjA0MDc1NDI4XX1tZS5pbmhlcml0cyhFLEIpLFhlLmV4cG9ydHM9RSxF''@;'; + put 'put ''LmJsb2NrU2l6ZT01MTIsRS5vdXRTaXplPTIyNCxFLmhtYWNTdHJlbmd0aD0xOTIsRS5wYWRMZW5ndGg9NjQsRS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihVKXtyZXR1cm4iaGV4Ij09PVU/bWUudG9IZXgzMih0aGlzLmguc2xpY2UoMCw3KSwiYmlnIik6bWUuc3BsaXQzMih0aGlzLmgu''@;'; + put 'put ''c2xpY2UoMCw3KSwiYmlnIil9fSwxOTM0MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjkyOTkpLEI9TCgzMzgwMCksRT1MKDMzMTEzKSxNZT1MKDMyMzkxKSxVPW1lLnN1bTMyLFE9bWUuc3VtMzJfNCxaPW1lLnN1bTMyXzUsaWU9RS5jaDMyLGxlPUUubWFqMzIsWT1FLnMw''@;'; + put 'put ''XzI1NixXPUUuczFfMjU2LE49RS5nMF8yNTYsZWU9RS5nMV8yNTYscT1CLkJsb2NrSGFzaCxKPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2''@;'; + put 'put ''MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4''@;'; + put 'put ''MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTky''@;'; + put 'put ''MSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1''@;'; + put 'put ''NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO2Z1bmN0aW9uIHNlKCl7aWYoISh0aGlzIGluc3RhbmNlb2Ygc2UpKXJldHVybiBuZXcgc2U7cS5jYWxsKHRoaXMpLHRoaXMuaD1bMTc3OTAz''@;'; + put 'put ''MzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdLHRoaXMuaz1KLHRoaXMuVz1uZXcgQXJyYXkoNjQpfW1lLmluaGVyaXRzKHNlLHEpLFhlLmV4cG9ydHM9c2Usc2UuYmxvY2tTaXplPTUxMixzZS5v''@;'; + put 'put ''dXRTaXplPTI1NixzZS5obWFjU3RyZW5ndGg9MTkyLHNlLnBhZExlbmd0aD02NCxzZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihjZSxkZSl7Zm9yKHZhciB2ZT10aGlzLlcsQWU9MDtBZTwxNjtBZSsrKXZlW0FlXT1jZVtkZStBZV07Zm9yKDtBZTx2ZS5sZW5ndGg7QWUrKyl2ZVtBZV09''@;'; + put 'put ''UShlZSh2ZVtBZS0yXSksdmVbQWUtN10sTih2ZVtBZS0xNV0pLHZlW0FlLTE2XSk7dmFyIGtlPXRoaXMuaFswXSxTZT10aGlzLmhbMV0sSWU9dGhpcy5oWzJdLFRlPXRoaXMuaFszXSxFZT10aGlzLmhbNF0saGU9dGhpcy5oWzVdLE89dGhpcy5oWzZdLHo9dGhpcy5oWzddO2ZvcihNZSh0aGlz''@;'; + put 'put ''LmsubGVuZ3RoPT09dmUubGVuZ3RoKSxBZT0wO0FlPHZlLmxlbmd0aDtBZSsrKXt2YXIgbmU9Wih6LFcoRWUpLGllKEVlLGhlLE8pLHRoaXMua1tBZV0sdmVbQWVdKSx0ZT1VKFkoa2UpLGxlKGtlLFNlLEllKSk7ej1PLE89aGUsaGU9RWUsRWU9VShUZSxuZSksVGU9SWUsSWU9U2UsU2U9a2Us''@;'; + put 'put ''a2U9VShuZSx0ZSl9dGhpcy5oWzBdPVUodGhpcy5oWzBdLGtlKSx0aGlzLmhbMV09VSh0aGlzLmhbMV0sU2UpLHRoaXMuaFsyXT1VKHRoaXMuaFsyXSxJZSksdGhpcy5oWzNdPVUodGhpcy5oWzNdLFRlKSx0aGlzLmhbNF09VSh0aGlzLmhbNF0sRWUpLHRoaXMuaFs1XT1VKHRoaXMuaFs1XSxo''@;'; + put 'put ''ZSksdGhpcy5oWzZdPVUodGhpcy5oWzZdLE8pLHRoaXMuaFs3XT1VKHRoaXMuaFs3XSx6KX0sc2UucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oY2Upe3JldHVybiJoZXgiPT09Y2U/bWUudG9IZXgzMih0aGlzLmgsImJpZyIpOm1lLnNwbGl0MzIodGhpcy5oLCJiaWciKX19LDg4NjM0OihY''@;'; + put 'put ''ZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyOTI5OSksQj1MKDcwMDM5KTtmdW5jdGlvbiBFKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgRSkpcmV0dXJuIG5ldyBFO0IuY2FsbCh0aGlzKSx0aGlzLmg9WzM0MTgwNzAzNjUsMzIzODM3MTAzMiwxNjU0MjcwMjUwLDkxNDE1MDY2Mywy''@;'; + put 'put ''NDM4NTI5MzcwLDgxMjcwMjk5OSwzNTU0NjIzNjAsNDE0NDkxMjY5NywxNzMxNDA1NDE1LDQyOTA3NzU4NTcsMjM5NDE4MDIzMSwxNzUwNjAzMDI1LDM2NzUwMDg1MjUsMTY5NDA3NjgzOSwxMjAzMDYyODEzLDMyMDQwNzU0MjhdfW1lLmluaGVyaXRzKEUsQiksWGUuZXhwb3J0cz1FLEUuYmxv''@;'; + put 'put ''Y2tTaXplPTEwMjQsRS5vdXRTaXplPTM4NCxFLmhtYWNTdHJlbmd0aD0xOTIsRS5wYWRMZW5ndGg9MTI4LEUucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oVSl7cmV0dXJuImhleCI9PT1VP21lLnRvSGV4MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKTptZS5zcGxpdDMyKHRoaXMuaC5z''@;'; + put 'put ''bGljZSgwLDEyKSwiYmlnIil9fSw3MDAzOTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjkyOTkpLEI9TCgzMzgwMCksRT1MKDMyMzkxKSxNZT1tZS5yb3RyNjRfaGksVT1tZS5yb3RyNjRfbG8sUT1tZS5zaHI2NF9oaSxaPW1lLnNocjY0X2xvLGllPW1lLnN1bTY0LGxlPW1l''@;'; + put 'put ''LnN1bTY0X2hpLFk9bWUuc3VtNjRfbG8sVz1tZS5zdW02NF80X2hpLE49bWUuc3VtNjRfNF9sbyxlZT1tZS5zdW02NF81X2hpLHE9bWUuc3VtNjRfNV9sbyxKPUIuQmxvY2tIYXNoLHNlPVsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0''@;'; + put 'put ''NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMsNDA4MTYyODQ3MiwxNTA4OTcwOTkzLDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3NjcxNTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQsMzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1''@;'; + put 'put ''Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5MjUwNzgzODgsNDA2ODE4MjM4MywyMTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAzLDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5''@;'; + put 'put ''LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAwOTMzLDc3MDI1NTk4MywxNDk1OTkwOTAxLDEyNDkxNTAxMjIsMTg1NjQzMTIzNSwxNTU1MDgxNjkyLDMxNzUyMTgxMzIsMTk5NjA2NDk4NiwyMTk4OTUwODM3LDI1NTQyMjA4ODIsMzk5OTcxOTMzOSwyODIxODM0MzQ5LDc2''@;'; + put 'put ''Njc4NDAxNiwyOTUyOTk2ODA4LDI1NjY1OTQ4NzksMzIxMDMxMzY3MSwzMjAzMzM3OTU2LDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiwzNTg0NTI4NzExLDI0NjY5NDg5MDEsMTEzOTI2OTkzLDM3NTgzMjYzODMsMzM4MjQxODk1LDE2ODcxNzkzNiw2NjYzMDcyMDUsMTE4ODE3OTk2NCw3NzM1Mjk5''@;'; + put 'put ''MTIsMTU0NjA0NTczNCwxMjk0NzU3MzcyLDE1MjI4MDU0ODUsMTM5NjE4MjI5MSwyNjQzODMzODIzLDE2OTUxODM3MDAsMjM0MzUyNzM5MCwxOTg2NjYxMDUxLDEwMTQ0Nzc0ODAsMjE3NzAyNjM1MCwxMjA2NzU5MTQyLDI0NTY5NTYwMzcsMzQ0MDc3NjI3LDI3MzA0ODU5MjEsMTI5MDg2MzQ2''@;'; + put 'put ''MCwyODIwMzAyNDExLDMxNTg0NTQyNzMsMzI1OTczMDgwMCwzNTA1OTUyNjU3LDMzNDU3NjQ3NzEsMTA2MjE3MDA4LDM1MTYwNjU4MTcsMzYwNjAwODM0NCwzNjAwMzUyODA0LDE0MzI3MjU3NzYsNDA5NDU3MTkwOSwxNDY3MDMxNTk0LDI3NTQyMzM0NCw4NTExNjk3MjAsNDMwMjI3NzM0LDMx''@;'; + put 'put ''MDA4MjM3NTIsNTA2OTQ4NjE2LDEzNjMyNTgxOTUsNjU5MDYwNTU2LDM3NTA2ODU1OTMsODgzOTk3ODc3LDM3ODUwNTAyODAsOTU4MTM5NTcxLDMzMTgzMDc0MjcsMTMyMjgyMjIxOCwzODEyNzIzNDAzLDE1MzcwMDIwNjMsMjAwMzAzNDk5NSwxNzQ3ODczNzc5LDM2MDIwMzY4OTksMTk1NTU2''@;'; + put 'put ''MjIyMiwxNTc1OTkwMDEyLDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCwyMjI3NzMwNDUyLDI3MTY5MDQzMDYsMjM2MTg1MjQyNCw0NDI3NzYwNDQsMjQyODQzNjQ3NCw1OTM2OTgzNDQsMjc1NjczNDE4NywzNzMzMTEwMjQ5LDMyMDQwMzE0NzksMjk5OTM1MTU3MywzMzI5MzI1Mjk4LDM4MTU5MjA0''@;'; + put 'put ''MjcsMzM5MTU2OTYxNCwzOTI4MzgzOTAwLDM1MTUyNjcyNzEsNTY2MjgwNzExLDM5NDAxODc2MDYsMzQ1NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIsMTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5MzgwMzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMy''@;'; + put 'put ''MDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwxMDg2NzkyODUxLDEwMTcwMzYyOTgsMzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIz''@;'; + put 'put ''MTYsMTI0NjE4OTU5MV07ZnVuY3Rpb24gb2UoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBvZSkpcmV0dXJuIG5ldyBvZTtKLmNhbGwodGhpcyksdGhpcy5oPVsxNzc5MDMzNzAzLDQwODkyMzU3MjAsMzE0NDEzNDI3NywyMjI3ODczNTk1LDEwMTM5MDQyNDIsNDI3MTE3NTcyMywyNzczNDgwNzYy''@;'; + put 'put ''LDE1OTU3NTAxMjksMTM1OTg5MzExOSwyOTE3NTY1MTM3LDI2MDA4MjI5MjQsNzI1NTExMTk5LDUyODczNDYzNSw0MjE1Mzg5NTQ3LDE1NDE0NTkyMjUsMzI3MDMzMjA5XSx0aGlzLms9c2UsdGhpcy5XPW5ldyBBcnJheSgxNjApfWZ1bmN0aW9uIGNlKG5lLHRlLHgsUCxWKXt2YXIgVD1uZSZ4''@;'; + put 'put ''Xn5uZSZWO3JldHVybiBUPDAmJihUKz00Mjk0OTY3Mjk2KSxUfWZ1bmN0aW9uIGRlKG5lLHRlLHgsUCxWLFQpe3ZhciBTPXRlJlBefnRlJlQ7cmV0dXJuIFM8MCYmKFMrPTQyOTQ5NjcyOTYpLFN9ZnVuY3Rpb24gdmUobmUsdGUseCxQLFYpe3ZhciBUPW5lJnhebmUmVl54JlY7cmV0dXJuIFQ8''@;'; + put 'put ''MCYmKFQrPTQyOTQ5NjcyOTYpLFR9ZnVuY3Rpb24gQWUobmUsdGUseCxQLFYsVCl7dmFyIFM9dGUmUF50ZSZUXlAmVDtyZXR1cm4gUzwwJiYoUys9NDI5NDk2NzI5NiksU31mdW5jdGlvbiBrZShuZSx0ZSl7dmFyIFQ9TWUobmUsdGUsMjgpXk1lKHRlLG5lLDIpXk1lKHRlLG5lLDcpO3JldHVy''@;'; + put 'put ''biBUPDAmJihUKz00Mjk0OTY3Mjk2KSxUfWZ1bmN0aW9uIFNlKG5lLHRlKXt2YXIgVD1VKG5lLHRlLDI4KV5VKHRlLG5lLDIpXlUodGUsbmUsNyk7cmV0dXJuIFQ8MCYmKFQrPTQyOTQ5NjcyOTYpLFR9ZnVuY3Rpb24gSWUobmUsdGUpe3ZhciBUPU1lKG5lLHRlLDE0KV5NZShuZSx0ZSwxOCle''@;'; + put 'put ''TWUodGUsbmUsOSk7cmV0dXJuIFQ8MCYmKFQrPTQyOTQ5NjcyOTYpLFR9ZnVuY3Rpb24gVGUobmUsdGUpe3ZhciBUPVUobmUsdGUsMTQpXlUobmUsdGUsMTgpXlUodGUsbmUsOSk7cmV0dXJuIFQ8MCYmKFQrPTQyOTQ5NjcyOTYpLFR9ZnVuY3Rpb24gRWUobmUsdGUpe3ZhciBUPU1lKG5lLHRl''@;'; + put 'put ''LDEpXk1lKG5lLHRlLDgpXlEobmUsdGUsNyk7cmV0dXJuIFQ8MCYmKFQrPTQyOTQ5NjcyOTYpLFR9ZnVuY3Rpb24gaGUobmUsdGUpe3ZhciBUPVUobmUsdGUsMSleVShuZSx0ZSw4KV5aKG5lLHRlLDcpO3JldHVybiBUPDAmJihUKz00Mjk0OTY3Mjk2KSxUfWZ1bmN0aW9uIE8obmUsdGUpe3Zh''@;'; + put 'put ''ciBUPU1lKG5lLHRlLDE5KV5NZSh0ZSxuZSwyOSleUShuZSx0ZSw2KTtyZXR1cm4gVDwwJiYoVCs9NDI5NDk2NzI5NiksVH1mdW5jdGlvbiB6KG5lLHRlKXt2YXIgVD1VKG5lLHRlLDE5KV5VKHRlLG5lLDI5KV5aKG5lLHRlLDYpO3JldHVybiBUPDAmJihUKz00Mjk0OTY3Mjk2KSxUfW1lLmlu''@;'; + put 'put ''aGVyaXRzKG9lLEopLFhlLmV4cG9ydHM9b2Usb2UuYmxvY2tTaXplPTEwMjQsb2Uub3V0U2l6ZT01MTIsb2UuaG1hY1N0cmVuZ3RoPTE5MixvZS5wYWRMZW5ndGg9MTI4LG9lLnByb3RvdHlwZS5fcHJlcGFyZUJsb2NrPWZ1bmN0aW9uKHRlLHgpe2Zvcih2YXIgUD10aGlzLlcsVj0wO1Y8MzI7''@;'; + put 'put ''VisrKVBbVl09dGVbeCtWXTtmb3IoO1Y8UC5sZW5ndGg7Vis9Mil7dmFyIFQ9TyhQW1YtNF0sUFtWLTNdKSxTPXooUFtWLTRdLFBbVi0zXSksRj1QW1YtMTRdLHllPVBbVi0xM10sQ2U9RWUoUFtWLTMwXSxQW1YtMjldKSxEZT1oZShQW1YtMzBdLFBbVi0yOV0pLFBlPVBbVi0zMl0sUWU9UFtW''@;'; + put 'put ''LTMxXTtQW1ZdPVcoVCxTLEYseWUsQ2UsRGUsUGUsUWUpLFBbVisxXT1OKFQsUyxGLHllLENlLERlLFBlLFFlKX19LG9lLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHRlLHgpe3RoaXMuX3ByZXBhcmVCbG9jayh0ZSx4KTt2YXIgUD10aGlzLlcsVj10aGlzLmhbMF0sVD10aGlzLmhbMV0s''@;'; + put 'put ''Uz10aGlzLmhbMl0sRj10aGlzLmhbM10seWU9dGhpcy5oWzRdLENlPXRoaXMuaFs1XSxEZT10aGlzLmhbNl0sUGU9dGhpcy5oWzddLFFlPXRoaXMuaFs4XSwkZT10aGlzLmhbOV0sZ3Q9dGhpcy5oWzEwXSx3dD10aGlzLmhbMTFdLHZ0PXRoaXMuaFsxMl0sQXQ9dGhpcy5oWzEzXSxtdD10aGlz''@;'; + put 'put ''LmhbMTRdLGh0PXRoaXMuaFsxNV07RSh0aGlzLmsubGVuZ3RoPT09UC5sZW5ndGgpO2Zvcih2YXIgQnQ9MDtCdDxQLmxlbmd0aDtCdCs9Mil7dmFyIG9uPW10LF90PWh0LHR0PUllKFFlLCRlKSxldD1UZShRZSwkZSksYXQ9Y2UoUWUsMCxndCwwLHZ0KSxMdD1kZSgwLCRlLDAsd3QsMCxBdCks''@;'; + put 'put ''Q3Q9dGhpcy5rW0J0XSxmdD10aGlzLmtbQnQrMV0sSHQ9UFtCdF0sR2U9UFtCdCsxXSxVZT1lZShvbixfdCx0dCxldCxhdCxMdCxDdCxmdCxIdCxHZSkseXQ9cShvbixfdCx0dCxldCxhdCxMdCxDdCxmdCxIdCxHZSk7b249a2UoVixUKSxfdD1TZShWLFQpLHR0PXZlKFYsMCxTLDAseWUpLGV0''@;'; + put 'put ''PUFlKDAsVCwwLEYsMCxDZSk7dmFyIGp0PWxlKG9uLF90LHR0LGV0KSxRdD1ZKG9uLF90LHR0LGV0KTttdD12dCxodD1BdCx2dD1ndCxBdD13dCxndD1RZSx3dD0kZSxRZT1sZShEZSxQZSxVZSx5dCksJGU9WShQZSxQZSxVZSx5dCksRGU9eWUsUGU9Q2UseWU9UyxDZT1GLFM9VixGPVQsVj1s''@;'; + put 'put ''ZShVZSx5dCxqdCxRdCksVD1ZKFVlLHl0LGp0LFF0KX1pZSh0aGlzLmgsMCxWLFQpLGllKHRoaXMuaCwyLFMsRiksaWUodGhpcy5oLDQseWUsQ2UpLGllKHRoaXMuaCw2LERlLFBlKSxpZSh0aGlzLmgsOCxRZSwkZSksaWUodGhpcy5oLDEwLGd0LHd0KSxpZSh0aGlzLmgsMTIsdnQsQXQpLGll''@;'; + put 'put ''KHRoaXMuaCwxNCxtdCxodCl9LG9lLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKHRlKXtyZXR1cm4iaGV4Ij09PXRlP21lLnRvSGV4MzIodGhpcy5oLCJiaWciKTptZS5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSwzMzExMzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIEI9TCgyOTI5''@;'; + put 'put ''OSkucm90cjMyO2Z1bmN0aW9uIE1lKFcsTixlZSl7cmV0dXJuIFcmTl5+VyZlZX1mdW5jdGlvbiBVKFcsTixlZSl7cmV0dXJuIFcmTl5XJmVlXk4mZWV9ZnVuY3Rpb24gUShXLE4sZWUpe3JldHVybiBXXk5eZWV9SmUuZnRfMT1mdW5jdGlvbiBFKFcsTixlZSxxKXtyZXR1cm4gMD09PVc/TWUo''@;'; + put 'put ''TixlZSxxKToxPT09V3x8Mz09PVc/UShOLGVlLHEpOjI9PT1XP1UoTixlZSxxKTp2b2lkIDB9LEplLmNoMzI9TWUsSmUubWFqMzI9VSxKZS5wMzI9USxKZS5zMF8yNTY9ZnVuY3Rpb24gWihXKXtyZXR1cm4gQihXLDIpXkIoVywxMyleQihXLDIyKX0sSmUuczFfMjU2PWZ1bmN0aW9uIGllKFcp''@;'; + put 'put ''e3JldHVybiBCKFcsNileQihXLDExKV5CKFcsMjUpfSxKZS5nMF8yNTY9ZnVuY3Rpb24gbGUoVyl7cmV0dXJuIEIoVyw3KV5CKFcsMTgpXlc+Pj4zfSxKZS5nMV8yNTY9ZnVuY3Rpb24gWShXKXtyZXR1cm4gQihXLDE3KV5CKFcsMTkpXlc+Pj4xMH19LDI5Mjk5OihYZSxKZSxMKT0+eyJ1c2Ug''@;'; + put 'put ''c3RyaWN0Ijt2YXIgbWU9TCgzMjM5MSksQj1MKDgzODk0KTtmdW5jdGlvbiBFKHosbmUpe3JldHVybiEoNTUyOTYhPSg2NDUxMiZ6LmNoYXJDb2RlQXQobmUpKXx8bmU8MHx8bmUrMT49ei5sZW5ndGgpJiY1NjMyMD09KDY0NTEyJnouY2hhckNvZGVBdChuZSsxKSl9ZnVuY3Rpb24gUSh6KXty''@;'; + put 'put ''ZXR1cm4oej4+PjI0fHo+Pj44JjY1MjgwfHo8PDgmMTY3MTE2ODB8KDI1NSZ6KTw8MjQpPj4+MH1mdW5jdGlvbiBpZSh6KXtyZXR1cm4gMT09PXoubGVuZ3RoPyIwIit6Onp9ZnVuY3Rpb24gbGUoeil7cmV0dXJuIDc9PT16Lmxlbmd0aD8iMCIrejo2PT09ei5sZW5ndGg/IjAwIit6OjU9PT16''@;'; + put 'put ''Lmxlbmd0aD8iMDAwIit6OjQ9PT16Lmxlbmd0aD8iMDAwMCIrejozPT09ei5sZW5ndGg/IjAwMDAwIit6OjI9PT16Lmxlbmd0aD8iMDAwMDAwIit6OjE9PT16Lmxlbmd0aD8iMDAwMDAwMCIrejp6fUplLmluaGVyaXRzPUIsSmUudG9BcnJheT1mdW5jdGlvbiBNZSh6LG5lKXtpZihBcnJheS5p''@;'; + put 'put ''c0FycmF5KHopKXJldHVybiB6LnNsaWNlKCk7aWYoIXopcmV0dXJuW107dmFyIHRlPVtdO2lmKCJzdHJpbmciPT10eXBlb2YgeilpZihuZSl7aWYoImhleCI9PT1uZSlmb3IoKHo9ei5yZXBsYWNlKC9bXmEtejAtOV0rL2dpLCIiKSkubGVuZ3RoJTIhPTAmJih6PSIwIit6KSxQPTA7UDx6Lmxl''@;'; + put 'put ''bmd0aDtQKz0yKXRlLnB1c2gocGFyc2VJbnQoeltQXSt6W1ArMV0sMTYpKX1lbHNlIGZvcih2YXIgeD0wLFA9MDtQPHoubGVuZ3RoO1ArKyl7dmFyIFY9ei5jaGFyQ29kZUF0KFApO1Y8MTI4P3RlW3grK109VjpWPDIwNDg/KHRlW3grK109Vj4+NnwxOTIsdGVbeCsrXT02MyZWfDEyOCk6RSh6''@;'; + put 'put ''LFApPyhWPTY1NTM2KygoMTAyMyZWKTw8MTApKygxMDIzJnouY2hhckNvZGVBdCgrK1ApKSx0ZVt4KytdPVY+PjE4fDI0MCx0ZVt4KytdPVY+PjEyJjYzfDEyOCx0ZVt4KytdPVY+PjYmNjN8MTI4LHRlW3grK109NjMmVnwxMjgpOih0ZVt4KytdPVY+PjEyfDIyNCx0ZVt4KytdPVY+PjYmNjN8''@;'; + put 'put ''MTI4LHRlW3grK109NjMmVnwxMjgpfWVsc2UgZm9yKFA9MDtQPHoubGVuZ3RoO1ArKyl0ZVtQXT0wfHpbUF07cmV0dXJuIHRlfSxKZS50b0hleD1mdW5jdGlvbiBVKHope2Zvcih2YXIgbmU9IiIsdGU9MDt0ZTx6Lmxlbmd0aDt0ZSsrKW5lKz1pZSh6W3RlXS50b1N0cmluZygxNikpO3JldHVy''@;'; + put 'put ''biBuZX0sSmUuaHRvbmw9USxKZS50b0hleDMyPWZ1bmN0aW9uIFooeixuZSl7Zm9yKHZhciB0ZT0iIix4PTA7eDx6Lmxlbmd0aDt4Kyspe3ZhciBQPXpbeF07ImxpdHRsZSI9PT1uZSYmKFA9UShQKSksdGUrPWxlKFAudG9TdHJpbmcoMTYpKX1yZXR1cm4gdGV9LEplLnplcm8yPWllLEplLnpl''@;'; + put 'put ''cm84PWxlLEplLmpvaW4zMj1mdW5jdGlvbiBZKHosbmUsdGUseCl7dmFyIFA9dGUtbmU7bWUoUCU0PT0wKTtmb3IodmFyIFY9bmV3IEFycmF5KFAvNCksVD0wLFM9bmU7VDxWLmxlbmd0aDtUKyssUys9NClWW1RdPSgiYmlnIj09PXg/eltTXTw8MjR8eltTKzFdPDwxNnx6W1MrMl08PDh8eltT''@;'; + put 'put ''KzNdOnpbUyszXTw8MjR8eltTKzJdPDwxNnx6W1MrMV08PDh8eltTXSk+Pj4wO3JldHVybiBWfSxKZS5zcGxpdDMyPWZ1bmN0aW9uIFcoeixuZSl7Zm9yKHZhciB0ZT1uZXcgQXJyYXkoNCp6Lmxlbmd0aCkseD0wLFA9MDt4PHoubGVuZ3RoO3grKyxQKz00KXt2YXIgVj16W3hdOyJiaWciPT09''@;'; + put 'put ''bmU/KHRlW1BdPVY+Pj4yNCx0ZVtQKzFdPVY+Pj4xNiYyNTUsdGVbUCsyXT1WPj4+OCYyNTUsdGVbUCszXT0yNTUmVik6KHRlW1ArM109Vj4+PjI0LHRlW1ArMl09Vj4+PjE2JjI1NSx0ZVtQKzFdPVY+Pj44JjI1NSx0ZVtQXT0yNTUmVil9cmV0dXJuIHRlfSxKZS5yb3RyMzI9ZnVuY3Rpb24g''@;'; + put 'put ''Tih6LG5lKXtyZXR1cm4gej4+Pm5lfHo8PDMyLW5lfSxKZS5yb3RsMzI9ZnVuY3Rpb24gZWUoeixuZSl7cmV0dXJuIHo8PG5lfHo+Pj4zMi1uZX0sSmUuc3VtMzI9ZnVuY3Rpb24gcSh6LG5lKXtyZXR1cm4geituZT4+PjB9LEplLnN1bTMyXzM9ZnVuY3Rpb24gSih6LG5lLHRlKXtyZXR1cm4g''@;'; + put 'put ''eituZSt0ZT4+PjB9LEplLnN1bTMyXzQ9ZnVuY3Rpb24gc2UoeixuZSx0ZSx4KXtyZXR1cm4geituZSt0ZSt4Pj4+MH0sSmUuc3VtMzJfNT1mdW5jdGlvbiBvZSh6LG5lLHRlLHgsUCl7cmV0dXJuIHorbmUrdGUreCtQPj4+MH0sSmUuc3VtNjQ9ZnVuY3Rpb24gY2UoeixuZSx0ZSx4KXt2YXIg''@;'; + put 'put ''VD14K3pbbmUrMV0+Pj4wO3pbbmVdPShUPHg/MTowKSt0ZSt6W25lXT4+PjAseltuZSsxXT1UfSxKZS5zdW02NF9oaT1mdW5jdGlvbiBkZSh6LG5lLHRlLHgpe3JldHVybihuZSt4Pj4+MDxuZT8xOjApK3ordGU+Pj4wfSxKZS5zdW02NF9sbz1mdW5jdGlvbiB2ZSh6LG5lLHRlLHgpe3JldHVy''@;'; + put 'put ''biBuZSt4Pj4+MH0sSmUuc3VtNjRfNF9oaT1mdW5jdGlvbiBBZSh6LG5lLHRlLHgsUCxWLFQsUyl7dmFyIEY9MCx5ZT1uZTtyZXR1cm4gRis9KHllPXllK3g+Pj4wKTxuZT8xOjAsRis9KHllPXllK1Y+Pj4wKTxWPzE6MCx6K3RlK1ArVCsoRis9KHllPXllK1M+Pj4wKTxTPzE6MCk+Pj4wfSxK''@;'; + put 'put ''ZS5zdW02NF80X2xvPWZ1bmN0aW9uIGtlKHosbmUsdGUseCxQLFYsVCxTKXtyZXR1cm4gbmUreCtWK1M+Pj4wfSxKZS5zdW02NF81X2hpPWZ1bmN0aW9uIFNlKHosbmUsdGUseCxQLFYsVCxTLEYseWUpe3ZhciBDZT0wLERlPW5lO3JldHVybiBDZSs9KERlPURlK3g+Pj4wKTxuZT8xOjAsQ2Ur''@;'; + put 'put ''PShEZT1EZStWPj4+MCk8Vj8xOjAsQ2UrPShEZT1EZStTPj4+MCk8Uz8xOjAseit0ZStQK1QrRisoQ2UrPShEZT1EZSt5ZT4+PjApPHllPzE6MCk+Pj4wfSxKZS5zdW02NF81X2xvPWZ1bmN0aW9uIEllKHosbmUsdGUseCxQLFYsVCxTLEYseWUpe3JldHVybiBuZSt4K1YrUyt5ZT4+PjB9LEpl''@;'; + put 'put ''LnJvdHI2NF9oaT1mdW5jdGlvbiBUZSh6LG5lLHRlKXtyZXR1cm4obmU8PDMyLXRlfHo+Pj50ZSk+Pj4wfSxKZS5yb3RyNjRfbG89ZnVuY3Rpb24gRWUoeixuZSx0ZSl7cmV0dXJuKHo8PDMyLXRlfG5lPj4+dGUpPj4+MH0sSmUuc2hyNjRfaGk9ZnVuY3Rpb24gaGUoeixuZSx0ZSl7cmV0dXJu''@;'; + put 'put ''IHo+Pj50ZX0sSmUuc2hyNjRfbG89ZnVuY3Rpb24gTyh6LG5lLHRlKXtyZXR1cm4oejw8MzItdGV8bmU+Pj50ZSk+Pj4wfX0sNTI0Mzg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDM3MDg0KSxCPUwoNTgxOTUpLEU9TCgzMjM5MSk7ZnVuY3Rpb24gTWUoVSl7aWYoISh0aGlz''@;'; + put 'put ''IGluc3RhbmNlb2YgTWUpKXJldHVybiBuZXcgTWUoVSk7dGhpcy5oYXNoPVUuaGFzaCx0aGlzLnByZWRSZXNpc3Q9ISFVLnByZWRSZXNpc3QsdGhpcy5vdXRMZW49dGhpcy5oYXNoLm91dFNpemUsdGhpcy5taW5FbnRyb3B5PVUubWluRW50cm9weXx8dGhpcy5oYXNoLmhtYWNTdHJlbmd0aCx0''@;'; + put 'put ''aGlzLl9yZXNlZWQ9bnVsbCx0aGlzLnJlc2VlZEludGVydmFsPW51bGwsdGhpcy5LPW51bGwsdGhpcy5WPW51bGw7dmFyIFE9Qi50b0FycmF5KFUuZW50cm9weSxVLmVudHJvcHlFbmN8fCJoZXgiKSxaPUIudG9BcnJheShVLm5vbmNlLFUubm9uY2VFbmN8fCJoZXgiKSxpZT1CLnRvQXJyYXko''@;'; + put 'put ''VS5wZXJzLFUucGVyc0VuY3x8ImhleCIpO0UoUS5sZW5ndGg+PXRoaXMubWluRW50cm9weS84LCJOb3QgZW5vdWdoIGVudHJvcHkuIE1pbmltdW0gaXM6ICIrdGhpcy5taW5FbnRyb3B5KyIgYml0cyIpLHRoaXMuX2luaXQoUSxaLGllKX1YZS5leHBvcnRzPU1lLE1lLnByb3RvdHlwZS5faW5p''@;'; + put 'put ''dD1mdW5jdGlvbihRLFosaWUpe3ZhciBsZT1RLmNvbmNhdChaKS5jb25jYXQoaWUpO3RoaXMuSz1uZXcgQXJyYXkodGhpcy5vdXRMZW4vOCksdGhpcy5WPW5ldyBBcnJheSh0aGlzLm91dExlbi84KTtmb3IodmFyIFk9MDtZPHRoaXMuVi5sZW5ndGg7WSsrKXRoaXMuS1tZXT0wLHRoaXMuVltZ''@;'; + put 'put ''XT0xO3RoaXMuX3VwZGF0ZShsZSksdGhpcy5fcmVzZWVkPTEsdGhpcy5yZXNlZWRJbnRlcnZhbD0yODE0NzQ5NzY3MTA2NTZ9LE1lLnByb3RvdHlwZS5faG1hYz1mdW5jdGlvbigpe3JldHVybiBuZXcgbWUuaG1hYyh0aGlzLmhhc2gsdGhpcy5LKX0sTWUucHJvdG90eXBlLl91cGRhdGU9ZnVu''@;'; + put 'put ''Y3Rpb24oUSl7dmFyIFo9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLnVwZGF0ZShbMF0pO1EmJihaPVoudXBkYXRlKFEpKSx0aGlzLks9Wi5kaWdlc3QoKSx0aGlzLlY9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLmRpZ2VzdCgpLFEmJih0aGlzLks9dGhpcy5faG1hYygpLnVwZGF0''@;'; + put 'put ''ZSh0aGlzLlYpLnVwZGF0ZShbMV0pLnVwZGF0ZShRKS5kaWdlc3QoKSx0aGlzLlY9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLmRpZ2VzdCgpKX0sTWUucHJvdG90eXBlLnJlc2VlZD1mdW5jdGlvbihRLFosaWUsbGUpeyJzdHJpbmciIT10eXBlb2YgWiYmKGxlPWllLGllPVosWj1udWxs''@;'; + put 'put ''KSxRPUIudG9BcnJheShRLFopLGllPUIudG9BcnJheShpZSxsZSksRShRLmxlbmd0aD49dGhpcy5taW5FbnRyb3B5LzgsIk5vdCBlbm91Z2ggZW50cm9weS4gTWluaW11bSBpczogIit0aGlzLm1pbkVudHJvcHkrIiBiaXRzIiksdGhpcy5fdXBkYXRlKFEuY29uY2F0KGllfHxbXSkpLHRoaXMu''@;'; + put 'put ''X3Jlc2VlZD0xfSxNZS5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24oUSxaLGllLGxlKXtpZih0aGlzLl9yZXNlZWQ+dGhpcy5yZXNlZWRJbnRlcnZhbCl0aHJvdyBuZXcgRXJyb3IoIlJlc2VlZCBpcyByZXF1aXJlZCIpOyJzdHJpbmciIT10eXBlb2YgWiYmKGxlPWllLGllPVosWj1udWxs''@;'; + put 'put ''KSxpZSYmKGllPUIudG9BcnJheShpZSxsZXx8ImhleCIpLHRoaXMuX3VwZGF0ZShpZSkpO2Zvcih2YXIgWT1bXTtZLmxlbmd0aDxROyl0aGlzLlY9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLmRpZ2VzdCgpLFk9WS5jb25jYXQodGhpcy5WKTt2YXIgVz1ZLnNsaWNlKDAsUSk7cmV0dXJu''@;'; + put 'put ''IHRoaXMuX3VwZGF0ZShpZSksdGhpcy5fcmVzZWVkKyssQi5lbmNvZGUoVyxaKX19LDQ2OTc4OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MjAzOCkuQnVmZmVyO0plLl9kYmNzPWxlO2Zvcih2YXIgQj0tMSxNZT0tMTAsVT0tMWUzLFE9bmV3IEFycmF5KDI1NiksaWU9MDtp''@;'; + put 'put ''ZTwyNTY7aWUrKylRW2llXT1CO2Z1bmN0aW9uIGxlKGVlLHEpe2lmKHRoaXMuZW5jb2RpbmdOYW1lPWVlLmVuY29kaW5nTmFtZSwhZWUpdGhyb3cgbmV3IEVycm9yKCJEQkNTIGNvZGVjIGlzIGNhbGxlZCB3aXRob3V0IHRoZSBkYXRhLiIpO2lmKCFlZS50YWJsZSl0aHJvdyBuZXcgRXJyb3Io''@;'; + put 'put ''IkVuY29kaW5nICciK3RoaXMuZW5jb2RpbmdOYW1lKyInIGhhcyBubyBkYXRhLiIpO3ZhciBKPWVlLnRhYmxlKCk7dGhpcy5kZWNvZGVUYWJsZXM9W10sdGhpcy5kZWNvZGVUYWJsZXNbMF09US5zbGljZSgwKSx0aGlzLmRlY29kZVRhYmxlU2VxPVtdO2Zvcih2YXIgc2U9MDtzZTxKLmxlbmd0''@;'; + put 'put ''aDtzZSsrKXRoaXMuX2FkZERlY29kZUNodW5rKEpbc2VdKTt0aGlzLmRlZmF1bHRDaGFyVW5pY29kZT1xLmRlZmF1bHRDaGFyVW5pY29kZSx0aGlzLmVuY29kZVRhYmxlPVtdLHRoaXMuZW5jb2RlVGFibGVTZXE9W107dmFyIG9lPXt9O2lmKGVlLmVuY29kZVNraXBWYWxzKWZvcihzZT0wO3Nl''@;'; + put 'put ''PGVlLmVuY29kZVNraXBWYWxzLmxlbmd0aDtzZSsrKXt2YXIgY2U9ZWUuZW5jb2RlU2tpcFZhbHNbc2VdO2lmKCJudW1iZXIiPT10eXBlb2YgY2Upb2VbY2VdPSEwO2Vsc2UgZm9yKHZhciBkZT1jZS5mcm9tO2RlPD1jZS50bztkZSsrKW9lW2RlXT0hMH1pZih0aGlzLl9maWxsRW5jb2RlVGFi''@;'; + put 'put ''bGUoMCwwLG9lKSxlZS5lbmNvZGVBZGQpZm9yKHZhciB2ZSBpbiBlZS5lbmNvZGVBZGQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVlLmVuY29kZUFkZCx2ZSkmJnRoaXMuX3NldEVuY29kZUNoYXIodmUuY2hhckNvZGVBdCgwKSxlZS5lbmNvZGVBZGRbdmVdKTtpZih0''@;'; + put 'put ''aGlzLmRlZkNoYXJTQj10aGlzLmVuY29kZVRhYmxlWzBdW3EuZGVmYXVsdENoYXJTaW5nbGVCeXRlLmNoYXJDb2RlQXQoMCldLHRoaXMuZGVmQ2hhclNCPT09QiYmKHRoaXMuZGVmQ2hhclNCPXRoaXMuZW5jb2RlVGFibGVbMF1bIj8iXSksdGhpcy5kZWZDaGFyU0I9PT1CJiYodGhpcy5kZWZD''@;'; + put 'put ''aGFyU0I9Ij8iLmNoYXJDb2RlQXQoMCkpLCJmdW5jdGlvbiI9PXR5cGVvZiBlZS5nYjE4MDMwKXt0aGlzLmdiMTgwMzA9ZWUuZ2IxODAzMCgpO3ZhciBBZT10aGlzLmRlY29kZVRhYmxlcy5sZW5ndGgsa2U9dGhpcy5kZWNvZGVUYWJsZXNbQWVdPVEuc2xpY2UoMCksU2U9dGhpcy5kZWNvZGVU''@;'; + put 'put ''YWJsZXMubGVuZ3RoLEllPXRoaXMuZGVjb2RlVGFibGVzW1NlXT1RLnNsaWNlKDApO2ZvcihzZT0xMjk7c2U8PTI1NDtzZSsrKXt2YXIgRWU9dGhpcy5kZWNvZGVUYWJsZXNbVS10aGlzLmRlY29kZVRhYmxlc1swXVtzZV1dO2ZvcihkZT00ODtkZTw9NTc7ZGUrKylFZVtkZV09VS1BZX1mb3Io''@;'; + put 'put ''c2U9MTI5O3NlPD0yNTQ7c2UrKylrZVtzZV09VS1TZTtmb3Ioc2U9NDg7c2U8PTU3O3NlKyspSWVbc2VdPS0yfX1mdW5jdGlvbiBZKGVlLHEpe3RoaXMubGVhZFN1cnJvZ2F0ZT0tMSx0aGlzLnNlcU9iaj12b2lkIDAsdGhpcy5lbmNvZGVUYWJsZT1xLmVuY29kZVRhYmxlLHRoaXMuZW5jb2Rl''@;'; + put 'put ''VGFibGVTZXE9cS5lbmNvZGVUYWJsZVNlcSx0aGlzLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZT1xLmRlZkNoYXJTQix0aGlzLmdiMTgwMzA9cS5nYjE4MDMwfWZ1bmN0aW9uIFcoZWUscSl7dGhpcy5ub2RlSWR4PTAsdGhpcy5wcmV2QnVmPW1lLmFsbG9jKDApLHRoaXMuZGVjb2RlVGFibGVzPXEu''@;'; + put 'put ''ZGVjb2RlVGFibGVzLHRoaXMuZGVjb2RlVGFibGVTZXE9cS5kZWNvZGVUYWJsZVNlcSx0aGlzLmRlZmF1bHRDaGFyVW5pY29kZT1xLmRlZmF1bHRDaGFyVW5pY29kZSx0aGlzLmdiMTgwMzA9cS5nYjE4MDMwfWZ1bmN0aW9uIE4oZWUscSl7aWYoZWVbMF0+cSlyZXR1cm4tMTtmb3IodmFyIEo9''@;'; + put 'put ''MCxzZT1lZS5sZW5ndGg7SjxzZS0xOyl7dmFyIG9lPUorTWF0aC5mbG9vcigoc2UtSisxKS8yKTtlZVtvZV08PXE/Sj1vZTpzZT1vZX1yZXR1cm4gSn1sZS5wcm90b3R5cGUuZW5jb2Rlcj1ZLGxlLnByb3RvdHlwZS5kZWNvZGVyPVcsbGUucHJvdG90eXBlLl9nZXREZWNvZGVUcmllTm9kZT1m''@;'; + put 'put ''dW5jdGlvbihlZSl7Zm9yKHZhciBxPVtdO2VlPjA7ZWU+Pj04KXEucHVzaCgyNTUmZWUpOzA9PXEubGVuZ3RoJiZxLnB1c2goMCk7Zm9yKHZhciBKPXRoaXMuZGVjb2RlVGFibGVzWzBdLHNlPXEubGVuZ3RoLTE7c2U+MDtzZS0tKXt2YXIgb2U9SltxW3NlXV07aWYob2U9PUIpSltxW3NlXV09''@;'; + put 'put ''VS10aGlzLmRlY29kZVRhYmxlcy5sZW5ndGgsdGhpcy5kZWNvZGVUYWJsZXMucHVzaChKPVEuc2xpY2UoMCkpO2Vsc2V7aWYoIShvZTw9VSkpdGhyb3cgbmV3IEVycm9yKCJPdmVyd3JpdGUgYnl0ZSBpbiAiK3RoaXMuZW5jb2RpbmdOYW1lKyIsIGFkZHI6ICIrZWUudG9TdHJpbmcoMTYpKTtK''@;'; + put 'put ''PXRoaXMuZGVjb2RlVGFibGVzW1Utb2VdfX1yZXR1cm4gSn0sbGUucHJvdG90eXBlLl9hZGREZWNvZGVDaHVuaz1mdW5jdGlvbihlZSl7dmFyIHE9cGFyc2VJbnQoZWVbMF0sMTYpLEo9dGhpcy5fZ2V0RGVjb2RlVHJpZU5vZGUocSk7cSY9MjU1O2Zvcih2YXIgc2U9MTtzZTxlZS5sZW5ndGg7''@;'; + put 'put ''c2UrKyl7dmFyIG9lPWVlW3NlXTtpZigic3RyaW5nIj09dHlwZW9mIG9lKWZvcih2YXIgY2U9MDtjZTxvZS5sZW5ndGg7KXt2YXIgZGU9b2UuY2hhckNvZGVBdChjZSsrKTtpZig1NTI5Njw9ZGUmJmRlPDU2MzIwKXt2YXIgdmU9b2UuY2hhckNvZGVBdChjZSsrKTtpZighKDU2MzIwPD12ZSYm''@;'; + put 'put ''dmU8NTczNDQpKXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHN1cnJvZ2F0ZSBwYWlyIGluICIrdGhpcy5lbmNvZGluZ05hbWUrIiBhdCBjaHVuayAiK2VlWzBdKTtKW3ErK109NjU1MzYrMTAyNCooZGUtNTUyOTYpKyh2ZS01NjMyMCl9ZWxzZSBpZig0MDgwPGRlJiZkZTw9NDA5NSl7Zm9y''@;'; + put 'put ''KHZhciBBZT00MDk1LWRlKzIsa2U9W10sU2U9MDtTZTxBZTtTZSsrKWtlLnB1c2gob2UuY2hhckNvZGVBdChjZSsrKSk7SltxKytdPU1lLXRoaXMuZGVjb2RlVGFibGVTZXEubGVuZ3RoLHRoaXMuZGVjb2RlVGFibGVTZXEucHVzaChrZSl9ZWxzZSBKW3ErK109ZGV9ZWxzZXtpZigibnVtYmVy''@;'; + put 'put ''IiE9dHlwZW9mIG9lKXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHR5cGUgJyIrdHlwZW9mIG9lKyInIGdpdmVuIGluICIrdGhpcy5lbmNvZGluZ05hbWUrIiBhdCBjaHVuayAiK2VlWzBdKTt2YXIgSWU9SltxLTFdKzE7Zm9yKGNlPTA7Y2U8b2U7Y2UrKylKW3ErK109SWUrK319aWYocT4y''@;'; + put 'put ''NTUpdGhyb3cgbmV3IEVycm9yKCJJbmNvcnJlY3QgY2h1bmsgaW4gIit0aGlzLmVuY29kaW5nTmFtZSsiIGF0IGFkZHIgIitlZVswXSsiOiB0b28gbG9uZyIrcSl9LGxlLnByb3RvdHlwZS5fZ2V0RW5jb2RlQnVja2V0PWZ1bmN0aW9uKGVlKXt2YXIgcT1lZT4+ODtyZXR1cm4gdm9pZCAwPT09''@;'; + put 'put ''dGhpcy5lbmNvZGVUYWJsZVtxXSYmKHRoaXMuZW5jb2RlVGFibGVbcV09US5zbGljZSgwKSksdGhpcy5lbmNvZGVUYWJsZVtxXX0sbGUucHJvdG90eXBlLl9zZXRFbmNvZGVDaGFyPWZ1bmN0aW9uKGVlLHEpe3ZhciBKPXRoaXMuX2dldEVuY29kZUJ1Y2tldChlZSksc2U9MjU1JmVlO0pbc2Vd''@;'; + put 'put ''PD1NZT90aGlzLmVuY29kZVRhYmxlU2VxW01lLUpbc2VdXVstMV09cTpKW3NlXT09QiYmKEpbc2VdPXEpfSxsZS5wcm90b3R5cGUuX3NldEVuY29kZVNlcXVlbmNlPWZ1bmN0aW9uKGVlLHEpe3ZhciBjZSxKPWVlWzBdLHNlPXRoaXMuX2dldEVuY29kZUJ1Y2tldChKKSxvZT0yNTUmSjtzZVtv''@;'; + put 'put ''ZV08PU1lP2NlPXRoaXMuZW5jb2RlVGFibGVTZXFbTWUtc2Vbb2VdXTooY2U9e30sc2Vbb2VdIT09QiYmKGNlWy0xXT1zZVtvZV0pLHNlW29lXT1NZS10aGlzLmVuY29kZVRhYmxlU2VxLmxlbmd0aCx0aGlzLmVuY29kZVRhYmxlU2VxLnB1c2goY2UpKTtmb3IodmFyIGRlPTE7ZGU8ZWUubGVu''@;'; + put 'put ''Z3RoLTE7ZGUrKyl7dmFyIHZlPWNlW0pdOyJvYmplY3QiPT10eXBlb2YgdmU/Y2U9dmU6KGNlPWNlW0pdPXt9LHZvaWQgMCE9PXZlJiYoY2VbLTFdPXZlKSl9Y2VbSj1lZVtlZS5sZW5ndGgtMV1dPXF9LGxlLnByb3RvdHlwZS5fZmlsbEVuY29kZVRhYmxlPWZ1bmN0aW9uKGVlLHEsSil7Zm9y''@;'; + put 'put ''KHZhciBzZT10aGlzLmRlY29kZVRhYmxlc1tlZV0sb2U9MDtvZTwyNTY7b2UrKyl7dmFyIGNlPXNlW29lXSxkZT1xK29lO0pbZGVdfHwoY2U+PTA/dGhpcy5fc2V0RW5jb2RlQ2hhcihjZSxkZSk6Y2U8PVU/dGhpcy5fZmlsbEVuY29kZVRhYmxlKFUtY2UsZGU8PDgsSik6Y2U8PU1lJiZ0aGlz''@;'; + put 'put ''Ll9zZXRFbmNvZGVTZXF1ZW5jZSh0aGlzLmRlY29kZVRhYmxlU2VxW01lLWNlXSxkZSkpfX0sWS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZWUpe2Zvcih2YXIgcT1tZS5hbGxvYyhlZS5sZW5ndGgqKHRoaXMuZ2IxODAzMD80OjMpKSxKPXRoaXMubGVhZFN1cnJvZ2F0ZSxzZT10aGlzLnNl''@;'; + put 'put ''cU9iaixvZT0tMSxjZT0wLGRlPTA7Oyl7aWYoLTE9PT1vZSl7aWYoY2U9PWVlLmxlbmd0aClicmVhazt2YXIgdmU9ZWUuY2hhckNvZGVBdChjZSsrKX1lbHNlIHZlPW9lLG9lPS0xO2lmKDU1Mjk2PD12ZSYmdmU8NTczNDQpaWYodmU8NTYzMjApe2lmKC0xPT09Sil7Sj12ZTtjb250aW51ZX1K''@;'; + put 'put ''PXZlLHZlPUJ9ZWxzZS0xIT09Sj8odmU9NjU1MzYrMTAyNCooSi01NTI5NikrKHZlLTU2MzIwKSxKPS0xKTp2ZT1CO2Vsc2UtMSE9PUomJihvZT12ZSx2ZT1CLEo9LTEpO3ZhciBBZT1CO2lmKHZvaWQgMCE9PXNlJiZ2ZSE9Qil7dmFyIGtlPXNlW3ZlXTtpZigib2JqZWN0Ij09dHlwZW9mIGtl''@;'; + put 'put ''KXtzZT1rZTtjb250aW51ZX0ibnVtYmVyIj09dHlwZW9mIGtlP0FlPWtlOm51bGw9PWtlJiZ2b2lkIDAhPT0oa2U9c2VbLTFdKSYmKEFlPWtlLG9lPXZlKSxzZT12b2lkIDB9ZWxzZSBpZih2ZT49MCl7dmFyIFNlPXRoaXMuZW5jb2RlVGFibGVbdmU+PjhdO2lmKHZvaWQgMCE9PVNlJiYoQWU9''@;'; + put 'put ''U2VbMjU1JnZlXSksQWU8PU1lKXtzZT10aGlzLmVuY29kZVRhYmxlU2VxW01lLUFlXTtjb250aW51ZX1pZihBZT09QiYmdGhpcy5nYjE4MDMwKXt2YXIgSWU9Tih0aGlzLmdiMTgwMzAudUNoYXJzLHZlKTtpZigtMSE9SWUpe0FlPXRoaXMuZ2IxODAzMC5nYkNoYXJzW0llXSsodmUtdGhpcy5n''@;'; + put 'put ''YjE4MDMwLnVDaGFyc1tJZV0pLHFbZGUrK109MTI5K01hdGguZmxvb3IoQWUvMTI2MDApLEFlJT0xMjYwMCxxW2RlKytdPTQ4K01hdGguZmxvb3IoQWUvMTI2MCksQWUlPTEyNjAscVtkZSsrXT0xMjkrTWF0aC5mbG9vcihBZS8xMCkscVtkZSsrXT00OCsoQWUlPTEwKTtjb250aW51ZX19fUFl''@;'; + put 'put ''PT09QiYmKEFlPXRoaXMuZGVmYXVsdENoYXJTaW5nbGVCeXRlKSxBZTwyNTY/cVtkZSsrXT1BZTpBZTw2NTUzNj8ocVtkZSsrXT1BZT4+OCxxW2RlKytdPTI1NSZBZSk6KHFbZGUrK109QWU+PjE2LHFbZGUrK109QWU+PjgmMjU1LHFbZGUrK109MjU1JkFlKX1yZXR1cm4gdGhpcy5zZXFPYmo9''@;'; + put 'put ''c2UsdGhpcy5sZWFkU3Vycm9nYXRlPUoscS5zbGljZSgwLGRlKX0sWS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7aWYoLTEhPT10aGlzLmxlYWRTdXJyb2dhdGV8fHZvaWQgMCE9PXRoaXMuc2VxT2JqKXt2YXIgZWU9bWUuYWxsb2MoMTApLHE9MDtpZih0aGlzLnNlcU9iail7dmFyIEo9dGhp''@;'; + put 'put ''cy5zZXFPYmpbLTFdO3ZvaWQgMCE9PUomJihKPDI1Nj9lZVtxKytdPUo6KGVlW3ErK109Sj4+OCxlZVtxKytdPTI1NSZKKSksdGhpcy5zZXFPYmo9dm9pZCAwfXJldHVybi0xIT09dGhpcy5sZWFkU3Vycm9nYXRlJiYoZWVbcSsrXT10aGlzLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZSx0aGlzLmxl''@;'; + put 'put ''YWRTdXJyb2dhdGU9LTEpLGVlLnNsaWNlKDAscSl9fSxZLnByb3RvdHlwZS5maW5kSWR4PU4sVy5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZWUpe3ZhciBxPW1lLmFsbG9jKDIqZWUubGVuZ3RoKSxKPXRoaXMubm9kZUlkeCxzZT10aGlzLnByZXZCdWYsb2U9dGhpcy5wcmV2QnVmLmxlbmd0''@;'; + put 'put ''aCxjZT0tdGhpcy5wcmV2QnVmLmxlbmd0aDtvZT4wJiYoc2U9bWUuY29uY2F0KFtzZSxlZS5zbGljZSgwLDEwKV0pKTtmb3IodmFyIHZlPTAsQWU9MDt2ZTxlZS5sZW5ndGg7dmUrKyl7dmFyIGRlLGtlPXZlPj0wP2VlW3ZlXTpzZVt2ZStvZV07aWYoISgoZGU9dGhpcy5kZWNvZGVUYWJsZXNb''@;'; + put 'put ''Sl1ba2VdKT49MCkpaWYoZGU9PT1CKXZlPWNlLGRlPXRoaXMuZGVmYXVsdENoYXJVbmljb2RlLmNoYXJDb2RlQXQoMCk7ZWxzZSBpZigtMj09PWRlKXt2YXIgU2U9Y2U+PTA/ZWUuc2xpY2UoY2UsdmUrMSk6c2Uuc2xpY2UoY2Urb2UsdmUrMStvZSksSWU9MTI2MDAqKFNlWzBdLTEyOSkrMTI2''@;'; + put 'put ''MCooU2VbMV0tNDgpKzEwKihTZVsyXS0xMjkpKyhTZVszXS00OCksVGU9Tih0aGlzLmdiMTgwMzAuZ2JDaGFycyxJZSk7ZGU9dGhpcy5nYjE4MDMwLnVDaGFyc1tUZV0rSWUtdGhpcy5nYjE4MDMwLmdiQ2hhcnNbVGVdfWVsc2V7aWYoZGU8PVUpe0o9VS1kZTtjb250aW51ZX1pZighKGRlPD1N''@;'; + put 'put ''ZSkpdGhyb3cgbmV3IEVycm9yKCJpY29udi1saXRlIGludGVybmFsIGVycm9yOiBpbnZhbGlkIGRlY29kaW5nIHRhYmxlIHZhbHVlICIrZGUrIiBhdCAiK0orIi8iK2tlKTtmb3IodmFyIEVlPXRoaXMuZGVjb2RlVGFibGVTZXFbTWUtZGVdLGhlPTA7aGU8RWUubGVuZ3RoLTE7aGUrKylxW0Fl''@;'; + put 'put ''KytdPTI1NSYoZGU9RWVbaGVdKSxxW0FlKytdPWRlPj44O2RlPUVlW0VlLmxlbmd0aC0xXX1pZihkZT42NTUzNSl7ZGUtPTY1NTM2O3ZhciBPPTU1Mjk2K01hdGguZmxvb3IoZGUvMTAyNCk7cVtBZSsrXT0yNTUmTyxxW0FlKytdPU8+PjgsZGU9NTYzMjArZGUlMTAyNH1xW0FlKytdPTI1NSZk''@;'; + put 'put ''ZSxxW0FlKytdPWRlPj44LEo9MCxjZT12ZSsxfXJldHVybiB0aGlzLm5vZGVJZHg9Six0aGlzLnByZXZCdWY9Y2U+PTA/ZWUuc2xpY2UoY2UpOnNlLnNsaWNlKGNlK29lKSxxLnNsaWNlKDAsQWUpLnRvU3RyaW5nKCJ1Y3MyIil9LFcucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe2Zvcih2YXIg''@;'; + put 'put ''ZWU9IiI7dGhpcy5wcmV2QnVmLmxlbmd0aD4wOyl7ZWUrPXRoaXMuZGVmYXVsdENoYXJVbmljb2RlO3ZhciBxPXRoaXMucHJldkJ1Zi5zbGljZSgxKTt0aGlzLnByZXZCdWY9bWUuYWxsb2MoMCksdGhpcy5ub2RlSWR4PTAscS5sZW5ndGg+MCYmKGVlKz10aGlzLndyaXRlKHEpKX1yZXR1cm4g''@;'; + put 'put ''dGhpcy5ub2RlSWR4PTAsZWV9fSw0OTUwNDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz17c2hpZnRqaXM6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBMKDI3MDE0KX0sZW5jb2RlQWRkOnsiXHhhNSI6OTIsIlx1MjAzZSI6MTI2fSxlbmNvZGVTa2lw''@;'; + put 'put ''VmFsczpbe2Zyb206NjA3MzYsdG86NjM4MDh9XX0sY3NzaGlmdGppczoic2hpZnRqaXMiLG1za2Fuamk6InNoaWZ0amlzIixzamlzOiJzaGlmdGppcyIsd2luZG93czMxajoic2hpZnRqaXMiLG1zMzFqOiJzaGlmdGppcyIseHNqaXM6InNoaWZ0amlzIix3aW5kb3dzOTMyOiJzaGlmdGppcyIs''@;'; + put 'put ''bXM5MzI6InNoaWZ0amlzIiw5MzI6InNoaWZ0amlzIixjcDkzMjoic2hpZnRqaXMiLGV1Y2pwOnt0eXBlOiJfZGJjcyIsdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gTCgzMTUzMil9LGVuY29kZUFkZDp7Ilx4YTUiOjkyLCJcdTIwM2UiOjEyNn19LGdiMjMxMjoiY3A5MzYiLGdiMjMxMjgwOiJj''@;'; + put 'put ''cDkzNiIsZ2IyMzEyMTk4MDoiY3A5MzYiLGNzZ2IyMzEyOiJjcDkzNiIsY3Npc281OGdiMjMxMjgwOiJjcDkzNiIsZXVjY246ImNwOTM2Iix3aW5kb3dzOTM2OiJjcDkzNiIsbXM5MzY6ImNwOTM2Iiw5MzY6ImNwOTM2IixjcDkzNjp7dHlwZToiX2RiY3MiLHRhYmxlOmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIEwoMTMzMzYpfX0sZ2JrOnt0eXBlOiJfZGJjcyIsdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gTCgxMzMzNikuY29uY2F0KEwoNDQzNDYpKX19LHhnYms6ImdiayIsaXNvaXI1ODoiZ2JrIixnYjE4MDMwOnt0eXBlOiJfZGJjcyIsdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gTCgxMzMzNiku''@;'; + put 'put ''Y29uY2F0KEwoNDQzNDYpKX0sZ2IxODAzMDpmdW5jdGlvbigpe3JldHVybiBMKDM2MjU4KX0sZW5jb2RlU2tpcFZhbHM6WzEyOF0sZW5jb2RlQWRkOnsiXHUyMGFjIjo0MTY5OX19LGNoaW5lc2U6ImdiMTgwMzAiLHdpbmRvd3M5NDk6ImNwOTQ5Iixtczk0OToiY3A5NDkiLDk0OToiY3A5NDki''@;'; + put 'put ''LGNwOTQ5Ont0eXBlOiJfZGJjcyIsdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gTCg3NzM0OCl9fSxjc2V1Y2tyOiJjcDk0OSIsY3Nrc2M1NjAxMTk4NzoiY3A5NDkiLGV1Y2tyOiJjcDk0OSIsaXNvaXIxNDk6ImNwOTQ5Iixrb3JlYW46ImNwOTQ5Iixrc2M1NjAxMTk4NzoiY3A5NDkiLGtzYzU2''@;'; + put 'put ''MDExOTg5OiJjcDk0OSIsa3NjNTYwMToiY3A5NDkiLHdpbmRvd3M5NTA6ImNwOTUwIixtczk1MDoiY3A5NTAiLDk1MDoiY3A5NTAiLGNwOTUwOnt0eXBlOiJfZGJjcyIsdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gTCg3NDI4NCl9fSxiaWc1OiJiaWc1aGtzY3MiLGJpZzVoa3Njczp7dHlwZToi''@;'; + put 'put ''X2RiY3MiLHRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIEwoNzQyODQpLmNvbmNhdChMKDYzNDgwKSl9LGVuY29kZVNraXBWYWxzOls0MTY3Nl19LGNuYmlnNToiYmlnNWhrc2NzIixjc2JpZzU6ImJpZzVoa3NjcyIseHhiaWc1OiJiaWc1aGtzY3MifX0sNzk3MTQ6KFhlLEplLEwpPT57InVzZSBz''@;'; + put 'put ''dHJpY3QiO2Zvcih2YXIgbWU9W0woNTY5MTcpLEwoODI2MDYpLEwoOTM3NjApLEwoMjg3NzgpLEwoNDEzMTMpLEwoNjg2MTkpLEwoNzQxMTQpLEwoNDY5NzgpLEwoNDk1MDQpXSxCPTA7QjxtZS5sZW5ndGg7QisrKXt2YXIgRT1tZVtCXTtmb3IodmFyIE1lIGluIEUpT2JqZWN0LnByb3RvdHlw''@;'; + put 'put ''ZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEUsTWUpJiYoSmVbTWVdPUVbTWVdKX19LDU2OTE3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MjAzOCkuQnVmZmVyO2Z1bmN0aW9uIEIobGUsWSl7dGhpcy5lbmM9bGUuZW5jb2RpbmdOYW1lLHRoaXMuYm9tQXdhcmU9bGUuYm9tQXdh''@;'; + put 'put ''cmUsImJhc2U2NCI9PT10aGlzLmVuYz90aGlzLmVuY29kZXI9UToiY2VzdTgiPT09dGhpcy5lbmMmJih0aGlzLmVuYz0idXRmOCIsdGhpcy5lbmNvZGVyPVosIlx1ezFmNGE5fSIhPT1tZS5mcm9tKCJlZGEwYmRlZGIyYTkiLCJoZXgiKS50b1N0cmluZygpJiYodGhpcy5kZWNvZGVyPWllLHRo''@;'; + put 'put ''aXMuZGVmYXVsdENoYXJVbmljb2RlPVkuZGVmYXVsdENoYXJVbmljb2RlKSl9WGUuZXhwb3J0cz17dXRmODp7dHlwZToiX2ludGVybmFsIixib21Bd2FyZTohMH0sY2VzdTg6e3R5cGU6Il9pbnRlcm5hbCIsYm9tQXdhcmU6ITB9LHVuaWNvZGUxMXV0Zjg6InV0ZjgiLHVjczI6e3R5cGU6Il9p''@;'; + put 'put ''bnRlcm5hbCIsYm9tQXdhcmU6ITB9LHV0ZjE2bGU6InVjczIiLGJpbmFyeTp7dHlwZToiX2ludGVybmFsIn0sYmFzZTY0Ont0eXBlOiJfaW50ZXJuYWwifSxoZXg6e3R5cGU6Il9pbnRlcm5hbCJ9LF9pbnRlcm5hbDpCfSxCLnByb3RvdHlwZS5lbmNvZGVyPVUsQi5wcm90b3R5cGUuZGVjb2Rl''@;'; + put 'put ''cj1NZTt2YXIgRT1MKDczMDU0KS5zO2Z1bmN0aW9uIE1lKGxlLFkpe0UuY2FsbCh0aGlzLFkuZW5jKX1mdW5jdGlvbiBVKGxlLFkpe3RoaXMuZW5jPVkuZW5jfWZ1bmN0aW9uIFEobGUsWSl7dGhpcy5wcmV2U3RyPSIifWZ1bmN0aW9uIFoobGUsWSl7fWZ1bmN0aW9uIGllKGxlLFkpe3RoaXMu''@;'; + put 'put ''YWNjPTAsdGhpcy5jb250Qnl0ZXM9MCx0aGlzLmFjY0J5dGVzPTAsdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU9WS5kZWZhdWx0Q2hhclVuaWNvZGV9RS5wcm90b3R5cGUuZW5kfHwoRS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7fSksTWUucHJvdG90eXBlPUUucHJvdG90eXBlLFUucHJvdG90''@;'; + put 'put ''eXBlLndyaXRlPWZ1bmN0aW9uKGxlKXtyZXR1cm4gbWUuZnJvbShsZSx0aGlzLmVuYyl9LFUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe30sUS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24obGUpe3ZhciBZPShsZT10aGlzLnByZXZTdHIrbGUpLmxlbmd0aC1sZS5sZW5ndGglNDtyZXR1cm4g''@;'; + put 'put ''dGhpcy5wcmV2U3RyPWxlLnNsaWNlKFkpLGxlPWxlLnNsaWNlKDAsWSksbWUuZnJvbShsZSwiYmFzZTY0Iil9LFEucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3JldHVybiBtZS5mcm9tKHRoaXMucHJldlN0ciwiYmFzZTY0Iil9LFoucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGxlKXtmb3Io''@;'; + put 'put ''dmFyIFk9bWUuYWxsb2MoMypsZS5sZW5ndGgpLFc9MCxOPTA7TjxsZS5sZW5ndGg7TisrKXt2YXIgZWU9bGUuY2hhckNvZGVBdChOKTtlZTwxMjg/WVtXKytdPWVlOmVlPDIwNDg/KFlbVysrXT0xOTIrKGVlPj4+NiksWVtXKytdPTEyOCsoNjMmZWUpKTooWVtXKytdPTIyNCsoZWU+Pj4xMiks''@;'; + put 'put ''WVtXKytdPTEyOCsoZWU+Pj42JjYzKSxZW1crK109MTI4Kyg2MyZlZSkpfXJldHVybiBZLnNsaWNlKDAsVyl9LFoucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe30saWUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGxlKXtmb3IodmFyIFk9dGhpcy5hY2MsVz10aGlzLmNvbnRCeXRlcyxOPXRo''@;'; + put 'put ''aXMuYWNjQnl0ZXMsZWU9IiIscT0wO3E8bGUubGVuZ3RoO3ErKyl7dmFyIEo9bGVbcV07MTI4IT0oMTkyJkopPyhXPjAmJihlZSs9dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUsVz0wKSxKPDEyOD9lZSs9U3RyaW5nLmZyb21DaGFyQ29kZShKKTpKPDIyND8oWT0zMSZKLFc9MSxOPTEpOko8MjQw''@;'; + put 'put ''PyhZPTE1JkosVz0yLE49MSk6ZWUrPXRoaXMuZGVmYXVsdENoYXJVbmljb2RlKTpXPjA/KFk9WTw8Nnw2MyZKLE4rKywwPT0tLVcmJihlZSs9Mj09PU4mJlk8MTI4JiZZPjB8fDM9PT1OJiZZPDIwNDg/dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU6U3RyaW5nLmZyb21DaGFyQ29kZShZKSkpOmVl''@;'; + put 'put ''Kz10aGlzLmRlZmF1bHRDaGFyVW5pY29kZX1yZXR1cm4gdGhpcy5hY2M9WSx0aGlzLmNvbnRCeXRlcz1XLHRoaXMuYWNjQnl0ZXM9TixlZX0saWUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3ZhciBsZT0wO3JldHVybiB0aGlzLmNvbnRCeXRlcz4wJiYobGUrPXRoaXMuZGVmYXVsdENoYXJV''@;'; + put 'put ''bmljb2RlKSxsZX19LDQxMzEzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MjAzOCkuQnVmZmVyO2Z1bmN0aW9uIEIoVSxRKXtpZighVSl0aHJvdyBuZXcgRXJyb3IoIlNCQ1MgY29kZWMgaXMgY2FsbGVkIHdpdGhvdXQgdGhlIGRhdGEuIik7aWYoIVUuY2hhcnN8fDEyOCE9''@;'; + put 'put ''PVUuY2hhcnMubGVuZ3RoJiYyNTYhPT1VLmNoYXJzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkVuY29kaW5nICciK1UudHlwZSsiJyBoYXMgaW5jb3JyZWN0ICdjaGFycycgKG11c3QgYmUgb2YgbGVuIDEyOCBvciAyNTYpIik7aWYoMTI4PT09VS5jaGFycy5sZW5ndGgpe2Zvcih2YXIgWj0i''@;'; + put 'put ''IixpZT0wO2llPDEyODtpZSsrKVorPVN0cmluZy5mcm9tQ2hhckNvZGUoaWUpO1UuY2hhcnM9WitVLmNoYXJzfXRoaXMuZGVjb2RlQnVmPW1lLmZyb20oVS5jaGFycywidWNzMiIpO3ZhciBsZT1tZS5hbGxvYyg2NTUzNixRLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZS5jaGFyQ29kZUF0KDApKTtm''@;'; + put 'put ''b3IoaWU9MDtpZTxVLmNoYXJzLmxlbmd0aDtpZSsrKWxlW1UuY2hhcnMuY2hhckNvZGVBdChpZSldPWllO3RoaXMuZW5jb2RlQnVmPWxlfWZ1bmN0aW9uIEUoVSxRKXt0aGlzLmVuY29kZUJ1Zj1RLmVuY29kZUJ1Zn1mdW5jdGlvbiBNZShVLFEpe3RoaXMuZGVjb2RlQnVmPVEuZGVjb2RlQnVm''@;'; + put 'put ''fUplLl9zYmNzPUIsQi5wcm90b3R5cGUuZW5jb2Rlcj1FLEIucHJvdG90eXBlLmRlY29kZXI9TWUsRS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oVSl7Zm9yKHZhciBRPW1lLmFsbG9jKFUubGVuZ3RoKSxaPTA7WjxVLmxlbmd0aDtaKyspUVtaXT10aGlzLmVuY29kZUJ1ZltVLmNoYXJDb2Rl''@;'; + put 'put ''QXQoWildO3JldHVybiBRfSxFLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt9LE1lLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihVKXtmb3IodmFyIFE9dGhpcy5kZWNvZGVCdWYsWj1tZS5hbGxvYygyKlUubGVuZ3RoKSxpZT0wLGxlPTAsWT0wO1k8VS5sZW5ndGg7WSsrKVpbbGU9MipZXT1R''@;'; + put 'put ''W2llPTIqVVtZXV0sWltsZSsxXT1RW2llKzFdO3JldHVybiBaLnRvU3RyaW5nKCJ1Y3MyIil9LE1lLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt9fSw3NDExNDpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPXs0Mzc6ImNwNDM3Iiw3Mzc6ImNwNzM3Iiw3NzU6ImNwNzc1Iiw4NTA6ImNw''@;'; + put 'put ''ODUwIiw4NTI6ImNwODUyIiw4NTU6ImNwODU1Iiw4NTY6ImNwODU2Iiw4NTc6ImNwODU3Iiw4NTg6ImNwODU4Iiw4NjA6ImNwODYwIiw4NjE6ImNwODYxIiw4NjI6ImNwODYyIiw4NjM6ImNwODYzIiw4NjQ6ImNwODY0Iiw4NjU6ImNwODY1Iiw4NjY6ImNwODY2Iiw4Njk6ImNwODY5Iiw4NzQ6''@;'; + put 'put ''IndpbmRvd3M4NzQiLDkyMjoiY3A5MjIiLDEwNDY6ImNwMTA0NiIsMTEyNDoiY3AxMTI0IiwxMTI1OiJjcDExMjUiLDExMjk6ImNwMTEyOSIsMTEzMzoiY3AxMTMzIiwxMTYxOiJjcDExNjEiLDExNjI6ImNwMTE2MiIsMTE2MzoiY3AxMTYzIiwxMjUwOiJ3aW5kb3dzMTI1MCIsMTI1MToid2lu''@;'; + put 'put ''ZG93czEyNTEiLDEyNTI6IndpbmRvd3MxMjUyIiwxMjUzOiJ3aW5kb3dzMTI1MyIsMTI1NDoid2luZG93czEyNTQiLDEyNTU6IndpbmRvd3MxMjU1IiwxMjU2OiJ3aW5kb3dzMTI1NiIsMTI1Nzoid2luZG93czEyNTciLDEyNTg6IndpbmRvd3MxMjU4IiwyODU5MToiaXNvODg1OTEiLDI4NTky''@;'; + put 'put ''OiJpc284ODU5MiIsMjg1OTM6Imlzbzg4NTkzIiwyODU5NDoiaXNvODg1OTQiLDI4NTk1OiJpc284ODU5NSIsMjg1OTY6Imlzbzg4NTk2IiwyODU5NzoiaXNvODg1OTciLDI4NTk4OiJpc284ODU5OCIsMjg1OTk6Imlzbzg4NTk5IiwyODYwMDoiaXNvODg1OTEwIiwyODYwMToiaXNvODg1OTEx''@;'; + put 'put ''IiwyODYwMzoiaXNvODg1OTEzIiwyODYwNDoiaXNvODg1OTE0IiwyODYwNToiaXNvODg1OTE1IiwyODYwNjoiaXNvODg1OTE2Iix3aW5kb3dzODc0Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjBhY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAyNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTBcdTBlMDFcdTBlMDJcdTBlMDNcdTBlMDRcdTBl''@;'; + put 'put ''MDVcdTBlMDZcdTBlMDdcdTBlMDhcdTBlMDlcdTBlMGFcdTBlMGJcdTBlMGNcdTBlMGRcdTBlMGVcdTBlMGZcdTBlMTBcdTBlMTFcdTBlMTJcdTBlMTNcdTBlMTRcdTBlMTVcdTBlMTZcdTBlMTdcdTBlMThcdTBlMTlcdTBlMWFcdTBlMWJcdTBlMWNcdTBlMWRcdTBlMWVcdTBlMWZcdTBlMjBc''@;'; + put 'put ''dTBlMjFcdTBlMjJcdTBlMjNcdTBlMjRcdTBlMjVcdTBlMjZcdTBlMjdcdTBlMjhcdTBlMjlcdTBlMmFcdTBlMmJcdTBlMmNcdTBlMmRcdTBlMmVcdTBlMmZcdTBlMzBcdTBlMzFcdTBlMzJcdTBlMzNcdTBlMzRcdTBlMzVcdTBlMzZcdTBlMzdcdTBlMzhcdTBlMzlcdTBlM2FcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdTBlM2ZcdTBlNDBcdTBlNDFcdTBlNDJcdTBlNDNcdTBlNDRcdTBlNDVcdTBlNDZcdTBlNDdcdTBlNDhcdTBlNDlcdTBlNGFcdTBlNGJcdTBlNGNcdTBlNGRcdTBlNGVcdTBlNGZcdTBlNTBcdTBlNTFcdTBlNTJcdTBlNTNcdTBlNTRcdTBlNTVcdTBlNTZcdTBlNTdc''@;'; + put 'put ''dTBlNThcdTBlNTlcdTBlNWFcdTBlNWJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQifSx3aW44NzQ6IndpbmRvd3M4NzQiLGNwODc0OiJ3aW5kb3dzODc0Iix3aW5kb3dzMTI1MDp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNcdWZmZmRcdTIwMWFcdWZmZmRcdTIwMWVcdTIwMjZcdTIwMjBc''@;'; + put 'put ''dTIwMjFcdWZmZmRcdTIwMzBcdTAxNjBcdTIwMzlcdTAxNWFcdTAxNjRcdTAxN2RcdTAxNzlcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdTAxNjFcdTIwM2FcdTAxNWJcdTAxNjVcdTAxN2VcdTAxN2FceGEwXHUwMmM3XHUwMmQ4''@;'; + put 'put ''XHUwMTQxXHhhNFx1MDEwNFx4YTZceGE3XHhhOFx4YTlcdTAxNWVceGFiXHhhY1x4YWRceGFlXHUwMTdiXHhiMFx4YjFcdTAyZGJcdTAxNDJceGI0XHhiNVx4YjZceGI3XHhiOFx1MDEwNVx1MDE1Zlx4YmJcdTAxM2RcdTAyZGRcdTAxM2VcdTAxN2NcdTAxNTRceGMxXHhjMlx1MDEwMlx4YzRc''@;'; + put 'put ''dTAxMzlcdTAxMDZceGM3XHUwMTBjXHhjOVx1MDExOFx4Y2JcdTAxMWFceGNkXHhjZVx1MDEwZVx1MDExMFx1MDE0M1x1MDE0N1x4ZDNceGQ0XHUwMTUwXHhkNlx4ZDdcdTAxNThcdTAxNmVceGRhXHUwMTcwXHhkY1x4ZGRcdTAxNjJceGRmXHUwMTU1XHhlMVx4ZTJcdTAxMDNceGU0XHUwMTNh''@;'; + put 'put ''XHUwMTA3XHhlN1x1MDEwZFx4ZTlcdTAxMTlceGViXHUwMTFiXHhlZFx4ZWVcdTAxMGZcdTAxMTFcdTAxNDRcdTAxNDhceGYzXHhmNFx1MDE1MVx4ZjZceGY3XHUwMTU5XHUwMTZmXHhmYVx1MDE3MVx4ZmNceGZkXHUwMTYzXHUwMmQ5In0sd2luMTI1MDoid2luZG93czEyNTAiLGNwMTI1MDoi''@;'; + put 'put ''d2luZG93czEyNTAiLHdpbmRvd3MxMjUxOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQwMlx1MDQwM1x1MjAxYVx1MDQ1M1x1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MjBhY1x1MjAzMFx1MDQwOVx1MjAzOVx1MDQwYVx1MDQwY1x1MDQwYlx1MDQwZlx1MDQ1Mlx1MjAxOFx1MjAxOVx1MjAx''@;'; + put 'put ''Y1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1MDQ1OVx1MjAzYVx1MDQ1YVx1MDQ1Y1x1MDQ1Ylx1MDQ1Zlx4YTBcdTA0MGVcdTA0NWVcdTA0MDhceGE0XHUwNDkwXHhhNlx4YTdcdTA0MDFceGE5XHUwNDA0XHhhYlx4YWNceGFkXHhhZVx1MDQwN1x4YjBceGIxXHUwNDA2''@;'; + put 'put ''XHUwNDU2XHUwNDkxXHhiNVx4YjZceGI3XHUwNDUxXHUyMTE2XHUwNDU0XHhiYlx1MDQ1OFx1MDQwNVx1MDQ1NVx1MDQ1N1x1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQx''@;'; + put 'put ''Zlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1''@;'; + put 'put ''MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0ZiJ9LHdpbjEyNTE6IndpbmRvd3MxMjUxIixjcDEyNTE6IndpbmRvd3Mx''@;'; + put 'put ''MjUxIix3aW5kb3dzMTI1Mjp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdTAxNjBcdTIwMzlcdTAxNTJcdWZmZmRcdTAxN2RcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRc''@;'; + put 'put ''dTIwMjJcdTIwMTNcdTIwMTRcdTAyZGNcdTIxMjJcdTAxNjFcdTIwM2FcdTAxNTNcdWZmZmRcdTAxN2VcdTAxNzhceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4''@;'; + put 'put ''XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2ZceGQwXHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHhkZFx4ZGVceGRmXHhlMFx4ZTFc''@;'; + put 'put ''eGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx4ZjBceGYxXHhmMlx4ZjNceGY0XHhmNVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNceGZkXHhmZVx4ZmYifSx3aW4xMjUyOiJ3aW5kb3dzMTI1MiIsY3AxMjUyOiJ3aW5kb3dzMTI1MiIs''@;'; + put 'put ''d2luZG93czEyNTM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHVmZmZkXHUyMDMwXHVmZmZkXHUyMDM5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIy''@;'; + put 'put ''XHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIyXHVmZmZkXHUyMDNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhMFx1MDM4NVx1MDM4Nlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlcdWZmZmRceGFiXHhhY1x4YWRceGFlXHUyMDE1XHhiMFx4YjFceGIyXHhiM1x1MDM4NFx4YjVceGI2XHhi''@;'; + put 'put ''N1x1MDM4OFx1MDM4OVx1MDM4YVx4YmJcdTAzOGNceGJkXHUwMzhlXHUwMzhmXHUwMzkwXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHVmZmZkXHUwM2Ez''@;'; + put 'put ''XHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHUwM2FhXHUwM2FiXHUwM2FjXHUwM2FkXHUwM2FlXHUwM2FmXHUwM2IwXHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUw''@;'; + put 'put ''M2JmXHUwM2MwXHUwM2MxXHUwM2MyXHUwM2MzXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHUwM2NhXHUwM2NiXHUwM2NjXHUwM2NkXHUwM2NlXHVmZmZkIn0sd2luMTI1Mzoid2luZG93czEyNTMiLGNwMTI1Mzoid2luZG93czEyNTMiLHdpbmRvd3MxMjU0Ont0eXBlOiJf''@;'; + put 'put ''c2JjcyIsY2hhcnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1''@;'; + put 'put ''MjEyMlx1MDE2MVx1MjAzYVx1MDE1M1x1ZmZmZFx1ZmZmZFx1MDE3OFx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVc''@;'; + put 'put ''eGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1MDExZVx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1MDEzMFx1MDE1ZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2''@;'; + put 'put ''XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHUwMTFmXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHUwMTMxXHUwMTVmXHhmZiJ9LHdpbjEyNTQ6IndpbmRvd3MxMjU0IixjcDEyNTQ6IndpbmRvd3MxMjU0Iix3aW5kb3dzMTI1NTp7''@;'; + put 'put ''dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdWZmZmRcdTIwMzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRc''@;'; + put 'put ''dTAyZGNcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGEwXHhhMVx4YTJceGEzXHUyMGFhXHhhNVx4YTZceGE3XHhhOFx4YTlceGQ3XHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhmN1x4YmJceGJj''@;'; + put 'put ''XHhiZFx4YmVceGJmXHUwNWIwXHUwNWIxXHUwNWIyXHUwNWIzXHUwNWI0XHUwNWI1XHUwNWI2XHUwNWI3XHUwNWI4XHUwNWI5XHUwNWJhXHUwNWJiXHUwNWJjXHUwNWJkXHUwNWJlXHUwNWJmXHUwNWMwXHUwNWMxXHUwNWMyXHUwNWMzXHUwNWYwXHUwNWYxXHUwNWYyXHUwNWYzXHUwNWY0XHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNWQwXHUwNWQxXHUwNWQyXHUwNWQzXHUwNWQ0XHUwNWQ1XHUwNWQ2XHUwNWQ3XHUwNWQ4XHUwNWQ5XHUwNWRhXHUwNWRiXHUwNWRjXHUwNWRkXHUwNWRlXHUwNWRmXHUwNWUwXHUwNWUxXHUwNWUyXHUwNWUzXHUwNWU0''@;'; + put 'put ''XHUwNWU1XHUwNWU2XHUwNWU3XHUwNWU4XHUwNWU5XHUwNWVhXHVmZmZkXHVmZmZkXHUyMDBlXHUyMDBmXHVmZmZkIn0sd2luMTI1NToid2luZG93czEyNTUiLGNwMTI1NToid2luZG93czEyNTUiLHdpbmRvd3MxMjU2Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjBhY1x1MDY3ZVx1MjAxYVx1''@;'; + put 'put ''MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1MDY3OVx1MjAzOVx1MDE1Mlx1MDY4Nlx1MDY5OFx1MDY4OFx1MDZhZlx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDZhOVx1MjEyMlx1MDY5MVx1MjAzYVx1MDE1M1x1MjAwY1x1MjAw''@;'; + put 'put ''ZFx1MDZiYVx4YTBcdTA2MGNceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx1MDZiZVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx1MDYxYlx4YmJceGJjXHhiZFx4YmVcdTA2MWZcdTA2YzFcdTA2MjFcdTA2MjJcdTA2''@;'; + put 'put ''MjNcdTA2MjRcdTA2MjVcdTA2MjZcdTA2MjdcdTA2MjhcdTA2MjlcdTA2MmFcdTA2MmJcdTA2MmNcdTA2MmRcdTA2MmVcdTA2MmZcdTA2MzBcdTA2MzFcdTA2MzJcdTA2MzNcdTA2MzRcdTA2MzVcdTA2MzZceGQ3XHUwNjM3XHUwNjM4XHUwNjM5XHUwNjNhXHUwNjQwXHUwNjQxXHUwNjQyXHUw''@;'; + put 'put ''NjQzXHhlMFx1MDY0NFx4ZTJcdTA2NDVcdTA2NDZcdTA2NDdcdTA2NDhceGU3XHhlOFx4ZTlceGVhXHhlYlx1MDY0OVx1MDY0YVx4ZWVceGVmXHUwNjRiXHUwNjRjXHUwNjRkXHUwNjRlXHhmNFx1MDY0Zlx1MDY1MFx4ZjdcdTA2NTFceGY5XHUwNjUyXHhmYlx4ZmNcdTIwMGVcdTIwMGZcdTA2''@;'; + put 'put ''ZDIifSx3aW4xMjU2OiJ3aW5kb3dzMTI1NiIsY3AxMjU2OiJ3aW5kb3dzMTI1NiIsd2luZG93czEyNTc6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZkXHUyMDFhXHVmZmZkXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHVmZmZkXHUyMDMwXHVmZmZkXHUyMDM5XHVmZmZkXHhhOFx1''@;'; + put 'put ''MDJjN1x4YjhcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRceGFmXHUwMmRiXHVmZmZkXHhhMFx1ZmZmZFx4YTJceGEzXHhhNFx1ZmZmZFx4YTZceGE3XHhkOFx4YTlcdTAxNTZceGFiXHhhY1x4YWRc''@;'; + put 'put ''eGFlXHhjNlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhmOFx4YjlcdTAxNTdceGJiXHhiY1x4YmRceGJlXHhlNlx1MDEwNFx1MDEyZVx1MDEwMFx1MDEwNlx4YzRceGM1XHUwMTE4XHUwMTEyXHUwMTBjXHhjOVx1MDE3OVx1MDExNlx1MDEyMlx1MDEzNlx1MDEyYVx1MDEzYlx1''@;'; + put 'put ''MDE2MFx1MDE0M1x1MDE0NVx4ZDNcdTAxNGNceGQ1XHhkNlx4ZDdcdTAxNzJcdTAxNDFcdTAxNWFcdTAxNmFceGRjXHUwMTdiXHUwMTdkXHhkZlx1MDEwNVx1MDEyZlx1MDEwMVx1MDEwN1x4ZTRceGU1XHUwMTE5XHUwMTEzXHUwMTBkXHhlOVx1MDE3YVx1MDExN1x1MDEyM1x1MDEzN1x1MDEy''@;'; + put 'put ''Ylx1MDEzY1x1MDE2MVx1MDE0NFx1MDE0Nlx4ZjNcdTAxNGRceGY1XHhmNlx4ZjdcdTAxNzNcdTAxNDJcdTAxNWJcdTAxNmJceGZjXHUwMTdjXHUwMTdlXHUwMmQ5In0sd2luMTI1Nzoid2luZG93czEyNTciLGNwMTI1Nzoid2luZG93czEyNTciLHdpbmRvd3MxMjU4Ont0eXBlOiJfc2JjcyIs''@;'; + put 'put ''Y2hhcnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1ZmZmZFx1MjAzOVx1MDE1Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1''@;'; + put 'put ''ZmZmZFx1MjAzYVx1MDE1M1x1ZmZmZFx1ZmZmZFx1MDE3OFx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhj''@;'; + put 'put ''MFx4YzFceGMyXHUwMTAyXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JcdTAzMDBceGNkXHhjZVx4Y2ZcdTAxMTBceGQxXHUwMzA5XHhkM1x4ZDRcdTAxYTBceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHUwMWFmXHUwMzAzXHhkZlx4ZTBceGUxXHhlMlx1MDEwM1x4ZTRceGU1''@;'; + put 'put ''XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHUwMzAxXHhlZFx4ZWVceGVmXHUwMTExXHhmMVx1MDMyM1x4ZjNceGY0XHUwMWExXHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x1MDFiMFx1MjBhYlx4ZmYifSx3aW4xMjU4OiJ3aW5kb3dzMTI1OCIsY3AxMjU4OiJ3aW5kb3dzMTI1OCIsaXNv''@;'; + put 'put ''ODg1OTE6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHhhMVx4''@;'; + put 'put ''YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhj''@;'; + put 'put ''Ylx4Y2NceGNkXHhjZVx4Y2ZceGQwXHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHhkZFx4ZGVceGRmXHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx4ZjBceGYxXHhmMlx4ZjNceGY0''@;'; + put 'put ''XHhmNVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNceGZkXHhmZVx4ZmYifSxjcDI4NTkxOiJpc284ODU5MSIsaXNvODg1OTI6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBc''@;'; + put 'put ''eDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwMTA0XHUwMmQ4XHUwMTQxXHhhNFx1MDEzZFx1MDE1YVx4YTdceGE4XHUwMTYwXHUwMTVlXHUwMTY0XHUwMTc5XHhhZFx1MDE3ZFx1MDE3Ylx4YjBcdTAxMDVcdTAyZGJcdTAx''@;'; + put 'put ''NDJceGI0XHUwMTNlXHUwMTViXHUwMmM3XHhiOFx1MDE2MVx1MDE1Zlx1MDE2NVx1MDE3YVx1MDJkZFx1MDE3ZVx1MDE3Y1x1MDE1NFx4YzFceGMyXHUwMTAyXHhjNFx1MDEzOVx1MDEwNlx4YzdcdTAxMGNceGM5XHUwMTE4XHhjYlx1MDExYVx4Y2RceGNlXHUwMTBlXHUwMTEwXHUwMTQzXHUw''@;'; + put 'put ''MTQ3XHhkM1x4ZDRcdTAxNTBceGQ2XHhkN1x1MDE1OFx1MDE2ZVx4ZGFcdTAxNzBceGRjXHhkZFx1MDE2Mlx4ZGZcdTAxNTVceGUxXHhlMlx1MDEwM1x4ZTRcdTAxM2FcdTAxMDdceGU3XHUwMTBkXHhlOVx1MDExOVx4ZWJcdTAxMWJceGVkXHhlZVx1MDEwZlx1MDExMVx1MDE0NFx1MDE0OFx4''@;'; + put 'put ''ZjNceGY0XHUwMTUxXHhmNlx4ZjdcdTAxNTlcdTAxNmZceGZhXHUwMTcxXHhmY1x4ZmRcdTAxNjNcdTAyZDkifSxjcDI4NTkyOiJpc284ODU5MiIsaXNvODg1OTM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4''@;'; + put 'put ''Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwMTI2XHUwMmQ4XHhhM1x4YTRcdWZmZmRcdTAxMjRceGE3XHhhOFx1MDEzMFx1MDE1ZVx1MDExZVx1MDEzNFx4YWRcdWZmZmRcdTAxN2JceGIw''@;'; + put 'put ''XHUwMTI3XHhiMlx4YjNceGI0XHhiNVx1MDEyNVx4YjdceGI4XHUwMTMxXHUwMTVmXHUwMTFmXHUwMTM1XHhiZFx1ZmZmZFx1MDE3Y1x4YzBceGMxXHhjMlx1ZmZmZFx4YzRcdTAxMGFcdTAxMDhceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2ZcdWZmZmRceGQxXHhkMlx4ZDNc''@;'; + put 'put ''eGQ0XHUwMTIwXHhkNlx4ZDdcdTAxMWNceGQ5XHhkYVx4ZGJceGRjXHUwMTZjXHUwMTVjXHhkZlx4ZTBceGUxXHhlMlx1ZmZmZFx4ZTRcdTAxMGJcdTAxMDlceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZcdWZmZmRceGYxXHhmMlx4ZjNceGY0XHUwMTIxXHhmNlx4ZjdcdTAx''@;'; + put 'put ''MWRceGY5XHhmYVx4ZmJceGZjXHUwMTZkXHUwMTVkXHUwMmQ5In0sY3AyODU5MzoiaXNvODg1OTMiLGlzbzg4NTk0Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJc''@;'; + put 'put ''eDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MDEwNFx1MDEzOFx1MDE1Nlx4YTRcdTAxMjhcdTAxM2JceGE3XHhhOFx1MDE2MFx1MDExMlx1MDEyMlx1MDE2Nlx4YWRcdTAxN2RceGFmXHhiMFx1MDEwNVx1MDJkYlx1MDE1N1x4YjRcdTAx''@;'; + put 'put ''MjlcdTAxM2NcdTAyYzdceGI4XHUwMTYxXHUwMTEzXHUwMTIzXHUwMTY3XHUwMTRhXHUwMTdlXHUwMTRiXHUwMTAwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHUwMTJlXHUwMTBjXHhjOVx1MDExOFx4Y2JcdTAxMTZceGNkXHhjZVx1MDEyYVx1MDExMFx1MDE0NVx1MDE0Y1x1MDEzNlx4ZDRc''@;'; + put 'put ''eGQ1XHhkNlx4ZDdceGQ4XHUwMTcyXHhkYVx4ZGJceGRjXHUwMTY4XHUwMTZhXHhkZlx1MDEwMVx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx1MDEyZlx1MDEwZFx4ZTlcdTAxMTlceGViXHUwMTE3XHhlZFx4ZWVcdTAxMmJcdTAxMTFcdTAxNDZcdTAxNGRcdTAxMzdceGY0XHhmNVx4ZjZceGY3''@;'; + put 'put ''XHhmOFx1MDE3M1x4ZmFceGZiXHhmY1x1MDE2OVx1MDE2Ylx1MDJkOSJ9LGNwMjg1OTQ6Imlzbzg4NTk0Iixpc284ODU5NTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFc''@;'; + put 'put ''eDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTA0MDFcdTA0MDJcdTA0MDNcdTA0MDRcdTA0MDVcdTA0MDZcdTA0MDdcdTA0MDhcdTA0MDlcdTA0MGFcdTA0MGJcdTA0MGNceGFkXHUwNDBlXHUwNDBmXHUwNDEwXHUwNDExXHUwNDEy''@;'; + put 'put ''XHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUw''@;'; + put 'put ''NDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5''@;'; + put 'put ''XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHUyMTE2XHUwNDUxXHUwNDUyXHUwNDUzXHUwNDU0XHUwNDU1XHUwNDU2XHUwNDU3XHUwNDU4XHUwNDU5XHUwNDVhXHUwNDViXHUwNDVjXHhhN1x1MDQ1ZVx1MDQ1ZiJ9LGNwMjg1OTU6Imlzbzg4NTk1Iixpc284ODU5Njp7dHlw''@;'; + put 'put ''ZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRceGE0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNjBjXHhhZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDYxYlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDYx''@;'; + put 'put ''Zlx1ZmZmZFx1MDYyMVx1MDYyMlx1MDYyM1x1MDYyNFx1MDYyNVx1MDYyNlx1MDYyN1x1MDYyOFx1MDYyOVx1MDYyYVx1MDYyYlx1MDYyY1x1MDYyZFx1MDYyZVx1MDYyZlx1MDYzMFx1MDYzMVx1MDYzMlx1MDYzM1x1MDYzNFx1MDYzNVx1MDYzNlx1MDYzN1x1MDYzOFx1MDYzOVx1MDYzYVx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDY0MFx1MDY0MVx1MDY0Mlx1MDY0M1x1MDY0NFx1MDY0NVx1MDY0Nlx1MDY0N1x1MDY0OFx1MDY0OVx1MDY0YVx1MDY0Ylx1MDY0Y1x1MDY0ZFx1MDY0ZVx1MDY0Zlx1MDY1MFx1MDY1MVx1MDY1Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LGNwMjg1OTY6Imlzbzg4NTk2Iixpc284ODU5Nzp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4''@;'; + put 'put ''OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTIwMThcdTIwMTlceGEzXHUyMGFjXHUyMGFmXHhhNlx4YTdceGE4XHhhOVx1MDM3YVx4YWJceGFjXHhhZFx1ZmZmZFx1MjAxNVx4YjBceGIxXHhiMlx4YjNc''@;'; + put 'put ''dTAzODRcdTAzODVcdTAzODZceGI3XHUwMzg4XHUwMzg5XHUwMzhhXHhiYlx1MDM4Y1x4YmRcdTAzOGVcdTAzOGZcdTAzOTBcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZcdTAz''@;'; + put 'put ''YTBcdTAzYTFcdWZmZmRcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdTAzYWFcdTAzYWJcdTAzYWNcdTAzYWRcdTAzYWVcdTAzYWZcdTAzYjBcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJc''@;'; + put 'put ''dTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzJcdTAzYzNcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlcdTAzY2FcdTAzY2JcdTAzY2NcdTAzY2RcdTAzY2VcdWZmZmQifSxjcDI4NTk3OiJpc284ODU5NyIsaXNvODg1OTg6e3R5cGU6Il9zYmNzIixj''@;'; + put 'put ''aGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHVmZmZkXHhhMlx4YTNceGE0XHhhNVx4YTZc''@;'; + put 'put ''eGE3XHhhOFx4YTlceGQ3XHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhmN1x4YmJceGJjXHhiZFx4YmVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMTdcdTA1ZDBcdTA1ZDFcdTA1ZDJcdTA1ZDNcdTA1ZDRcdTA1ZDVc''@;'; + put 'put ''dTA1ZDZcdTA1ZDdcdTA1ZDhcdTA1ZDlcdTA1ZGFcdTA1ZGJcdTA1ZGNcdTA1ZGRcdTA1ZGVcdTA1ZGZcdTA1ZTBcdTA1ZTFcdTA1ZTJcdTA1ZTNcdTA1ZTRcdTA1ZTVcdTA1ZTZcdTA1ZTdcdTA1ZThcdTA1ZTlcdTA1ZWFcdWZmZmRcdWZmZmRcdTIwMGVcdTIwMGZcdWZmZmQifSxjcDI4NTk4''@;'; + put 'put ''OiJpc284ODU5OCIsaXNvODg1OTk6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5''@;'; + put 'put ''ZVx4OWZceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZceGM3''@;'; + put 'put ''XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2ZcdTAxMWVceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNcdTAxMzBcdTAxNWVceGRmXHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhl''@;'; + put 'put ''Zlx1MDExZlx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x1MDEzMVx1MDE1Zlx4ZmYifSxjcDI4NTk5OiJpc284ODU5OSIsaXNvODg1OTEwOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlc''@;'; + put 'put ''eDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MDEwNFx1MDExMlx1MDEyMlx1MDEyYVx1MDEyOFx1MDEzNlx4YTdcdTAxM2JcdTAxMTBcdTAxNjBcdTAxNjZcdTAxN2RceGFk''@;'; + put 'put ''XHUwMTZhXHUwMTRhXHhiMFx1MDEwNVx1MDExM1x1MDEyM1x1MDEyYlx1MDEyOVx1MDEzN1x4YjdcdTAxM2NcdTAxMTFcdTAxNjFcdTAxNjdcdTAxN2VcdTIwMTVcdTAxNmJcdTAxNGJcdTAxMDBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZcdTAxMmVcdTAxMGNceGM5XHUwMTE4XHhjYlx1MDEx''@;'; + put 'put ''Nlx4Y2RceGNlXHhjZlx4ZDBcdTAxNDVcdTAxNGNceGQzXHhkNFx4ZDVceGQ2XHUwMTY4XHhkOFx1MDE3Mlx4ZGFceGRiXHhkY1x4ZGRceGRlXHhkZlx1MDEwMVx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx1MDEyZlx1MDEwZFx4ZTlcdTAxMTlceGViXHUwMTE3XHhlZFx4ZWVceGVmXHhmMFx1''@;'; + put 'put ''MDE0Nlx1MDE0ZFx4ZjNceGY0XHhmNVx4ZjZcdTAxNjlceGY4XHUwMTczXHhmYVx4ZmJceGZjXHhmZFx4ZmVcdTAxMzgifSxjcDI4NjAwOiJpc284ODU5MTAiLGlzbzg4NTkxMTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4''@;'; + put 'put ''YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTBlMDFcdTBlMDJcdTBlMDNcdTBlMDRcdTBlMDVcdTBlMDZcdTBlMDdcdTBlMDhcdTBlMDlcdTBlMGFcdTBlMGJcdTBlMGNcdTBl''@;'; + put 'put ''MGRcdTBlMGVcdTBlMGZcdTBlMTBcdTBlMTFcdTBlMTJcdTBlMTNcdTBlMTRcdTBlMTVcdTBlMTZcdTBlMTdcdTBlMThcdTBlMTlcdTBlMWFcdTBlMWJcdTBlMWNcdTBlMWRcdTBlMWVcdTBlMWZcdTBlMjBcdTBlMjFcdTBlMjJcdTBlMjNcdTBlMjRcdTBlMjVcdTBlMjZcdTBlMjdcdTBlMjhc''@;'; + put 'put ''dTBlMjlcdTBlMmFcdTBlMmJcdTBlMmNcdTBlMmRcdTBlMmVcdTBlMmZcdTBlMzBcdTBlMzFcdTBlMzJcdTBlMzNcdTBlMzRcdTBlMzVcdTBlMzZcdTBlMzdcdTBlMzhcdTBlMzlcdTBlM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTBlM2ZcdTBlNDBcdTBlNDFcdTBlNDJcdTBlNDNcdTBl''@;'; + put 'put ''NDRcdTBlNDVcdTBlNDZcdTBlNDdcdTBlNDhcdTBlNDlcdTBlNGFcdTBlNGJcdTBlNGNcdTBlNGRcdTBlNGVcdTBlNGZcdTBlNTBcdTBlNTFcdTBlNTJcdTBlNTNcdTBlNTRcdTBlNTVcdTBlNTZcdTBlNTdcdTBlNThcdTBlNTlcdTBlNWFcdTBlNWJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQi''@;'; + put 'put ''fSxjcDI4NjAxOiJpc284ODU5MTEiLGlzbzg4NTkxMzp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDli''@;'; + put 'put ''XHg5Y1x4OWRceDllXHg5Zlx4YTBcdTIwMWRceGEyXHhhM1x4YTRcdTIwMWVceGE2XHhhN1x4ZDhceGE5XHUwMTU2XHhhYlx4YWNceGFkXHhhZVx4YzZceGIwXHhiMVx4YjJceGIzXHUyMDFjXHhiNVx4YjZceGI3XHhmOFx4YjlcdTAxNTdceGJiXHhiY1x4YmRceGJlXHhlNlx1MDEwNFx1MDEy''@;'; + put 'put ''ZVx1MDEwMFx1MDEwNlx4YzRceGM1XHUwMTE4XHUwMTEyXHUwMTBjXHhjOVx1MDE3OVx1MDExNlx1MDEyMlx1MDEzNlx1MDEyYVx1MDEzYlx1MDE2MFx1MDE0M1x1MDE0NVx4ZDNcdTAxNGNceGQ1XHhkNlx4ZDdcdTAxNzJcdTAxNDFcdTAxNWFcdTAxNmFceGRjXHUwMTdiXHUwMTdkXHhkZlx1''@;'; + put 'put ''MDEwNVx1MDEyZlx1MDEwMVx1MDEwN1x4ZTRceGU1XHUwMTE5XHUwMTEzXHUwMTBkXHhlOVx1MDE3YVx1MDExN1x1MDEyM1x1MDEzN1x1MDEyYlx1MDEzY1x1MDE2MVx1MDE0NFx1MDE0Nlx4ZjNcdTAxNGRceGY1XHhmNlx4ZjdcdTAxNzNcdTAxNDJcdTAxNWJcdTAxNmJceGZjXHUwMTdjXHUw''@;'; + put 'put ''MTdlXHUyMDE5In0sY3AyODYwMzoiaXNvODg1OTEzIixpc284ODU5MTQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4''@;'; + put 'put ''OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUxZTAyXHUxZTAzXHhhM1x1MDEwYVx1MDEwYlx1MWUwYVx4YTdcdTFlODBceGE5XHUxZTgyXHUxZTBiXHUxZWYyXHhhZFx4YWVcdTAxNzhcdTFlMWVcdTFlMWZcdTAxMjBcdTAxMjFcdTFlNDBcdTFlNDFceGI2XHUxZTU2XHUxZTgxXHUx''@;'; + put 'put ''ZTU3XHUxZTgzXHUxZTYwXHUxZWYzXHUxZTg0XHUxZTg1XHUxZTYxXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1MDE3NFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx1MWU2YVx4ZDhceGQ5XHhkYVx4ZGJceGRjXHhkZFx1''@;'; + put 'put ''MDE3Nlx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHUwMTc1XHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHUxZTZiXHhmOFx4ZjlceGZhXHhmYlx4ZmNceGZkXHUwMTc3XHhmZiJ9LGNwMjg2MDQ6Imlzbzg4NTkxNCIs''@;'; + put 'put ''aXNvODg1OTE1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx4''@;'; + put 'put ''YTFceGEyXHhhM1x1MjBhY1x4YTVcdTAxNjBceGE3XHUwMTYxXHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNcdTAxN2RceGI1XHhiNlx4YjdcdTAxN2VceGI5XHhiYVx4YmJcdTAxNTJcdTAxNTNcdTAxNzhceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhj''@;'; + put 'put ''Nlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx4ZDBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHhkZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVm''@;'; + put 'put ''XHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiJ9LGNwMjg2MDU6Imlzbzg4NTkxNSIsaXNvODg1OTE2Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4''@;'; + put 'put ''Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MDEwNFx1MDEwNVx1MDE0MVx1MjBhY1x1MjAxZVx1MDE2MFx4YTdcdTAxNjFceGE5XHUwMjE4XHhhYlx1MDE3OVx4YWRcdTAxN2FcdTAx''@;'; + put 'put ''N2JceGIwXHhiMVx1MDEwY1x1MDE0Mlx1MDE3ZFx1MjAxZFx4YjZceGI3XHUwMTdlXHUwMTBkXHUwMjE5XHhiYlx1MDE1Mlx1MDE1M1x1MDE3OFx1MDE3Y1x4YzBceGMxXHhjMlx1MDEwMlx4YzRcdTAxMDZceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHUwMTEwXHUw''@;'; + put 'put ''MTQzXHhkMlx4ZDNceGQ0XHUwMTUwXHhkNlx1MDE1YVx1MDE3MFx4ZDlceGRhXHhkYlx4ZGNcdTAxMThcdTAyMWFceGRmXHhlMFx4ZTFceGUyXHUwMTAzXHhlNFx1MDEwN1x4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZcdTAxMTFcdTAxNDRceGYyXHhmM1x4ZjRcdTAx''@;'; + put 'put ''NTFceGY2XHUwMTViXHUwMTcxXHhmOVx4ZmFceGZiXHhmY1x1MDExOVx1MDIxYlx4ZmYifSxjcDI4NjA2OiJpc284ODU5MTYiLGNwNDM3Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVceGVjXHhjNFx4YzVc''@;'; + put 'put ''eGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx4ZmZceGQ2XHhkY1x4YTJceGEzXHhhNVx1MjBhN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx4YWFceGJhXHhiZlx1MjMxMFx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1''@;'; + put 'put ''MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2''@;'; + put 'put ''OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFl''@;'; + put 'put ''XHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIn0saWJtNDM3OiJjcDQzNyIsY3NpYm00Mzc6ImNwNDM3IixjcDczNzp7dHlwZToiX3NiY3MiLGNoYXJzOiJc''@;'; + put 'put ''dTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZcdTAzYTBcdTAzYTFcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdTAzYjFcdTAzYjJcdTAzYjNcdTAz''@;'; + put 'put ''YjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzNcdTAzYzJcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJc''@;'; + put 'put ''dTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1''@;'; + put 'put ''NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYzlcdTAzYWNcdTAzYWRcdTAzYWVcdTAzY2FcdTAzYWZcdTAzY2NcdTAzY2RcdTAzY2JcdTAzY2VcdTAzODZcdTAzODhcdTAzODlcdTAzOGFc''@;'; + put 'put ''dTAzOGNcdTAzOGVcdTAzOGZceGIxXHUyMjY1XHUyMjY0XHUwM2FhXHUwM2FiXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxpYm03Mzc6ImNwNzM3Iixjc2libTczNzoiY3A3MzciLGNwNzc1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDEwNlx4''@;'; + put 'put ''ZmNceGU5XHUwMTAxXHhlNFx1MDEyM1x4ZTVcdTAxMDdcdTAxNDJcdTAxMTNcdTAxNTZcdTAxNTdcdTAxMmJcdTAxNzlceGM0XHhjNVx4YzlceGU2XHhjNlx1MDE0ZFx4ZjZcdTAxMjJceGEyXHUwMTVhXHUwMTViXHhkNlx4ZGNceGY4XHhhM1x4ZDhceGQ3XHhhNFx1MDEwMFx1MDEyYVx4ZjNc''@;'; + put 'put ''dTAxN2JcdTAxN2NcdTAxN2FcdTIwMWRceGE2XHhhOVx4YWVceGFjXHhiZFx4YmNcdTAxNDFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MDEwNFx1MDEwY1x1MDExOFx1MDExNlx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MDEyZVx1MDE2MFx1MjUxMFx1MjUxNFx1''@;'; + put 'put ''MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MDE3Mlx1MDE2YVx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MDE3ZFx1MDEwNVx1MDEwZFx1MDExOVx1MDExN1x1MDEyZlx1MDE2MVx1MDE3M1x1MDE2Ylx1MDE3ZVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4''@;'; + put 'put ''NFx1MjU4Y1x1MjU5MFx1MjU4MFx4ZDNceGRmXHUwMTRjXHUwMTQzXHhmNVx4ZDVceGI1XHUwMTQ0XHUwMTM2XHUwMTM3XHUwMTNiXHUwMTNjXHUwMTQ2XHUwMTEyXHUwMTQ1XHUyMDE5XHhhZFx4YjFcdTIwMWNceGJlXHhiNlx4YTdceGY3XHUyMDFlXHhiMFx1MjIxOVx4YjdceGI5XHhiM1x4''@;'; + put 'put ''YjJcdTI1YTBceGEwIn0saWJtNzc1OiJjcDc3NSIsY3NpYm03NzU6ImNwNzc1IixjcDg1MDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHhlY1x4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhm''@;'; + put 'put ''Ylx4ZjlceGZmXHhkNlx4ZGNceGY4XHhhM1x4ZDhceGQ3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHhhZVx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx4YzFceGMyXHhjMFx4YTlcdTI1NjNcdTI1NTFcdTI1''@;'; + put 'put ''NTdcdTI1NWRceGEyXHhhNVx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x4ZTNceGMzXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx4ZjBceGQwXHhjYVx4Y2JceGM4XHUwMTMxXHhjZFx4Y2VceGNmXHUyNTE4XHUyNTBjXHUy''@;'; + put 'put ''NTg4XHUyNTg0XHhhNlx4Y2NcdTI1ODBceGQzXHhkZlx4ZDRceGQyXHhmNVx4ZDVceGI1XHhmZVx4ZGVceGRhXHhkYlx4ZDlceGZkXHhkZFx4YWZceGI0XHhhZFx4YjFcdTIwMTdceGJlXHhiNlx4YTdceGY3XHhiOFx4YjBceGE4XHhiN1x4YjlceGIzXHhiMlx1MjVhMFx4YTAifSxpYm04NTA6''@;'; + put 'put ''ImNwODUwIixjc2libTg1MDoiY3A4NTAiLGNwODUyOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGU0XHUwMTZmXHUwMTA3XHhlN1x1MDE0Mlx4ZWJcdTAxNTBcdTAxNTFceGVlXHUwMTc5XHhjNFx1MDEwNlx4YzlcdTAxMzlcdTAxM2FceGY0XHhmNlx1MDEzZFx1MDEz''@;'; + put 'put ''ZVx1MDE1YVx1MDE1Ylx4ZDZceGRjXHUwMTY0XHUwMTY1XHUwMTQxXHhkN1x1MDEwZFx4ZTFceGVkXHhmM1x4ZmFcdTAxMDRcdTAxMDVcdTAxN2RcdTAxN2VcdTAxMThcdTAxMTlceGFjXHUwMTdhXHUwMTBjXHUwMTVmXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRceGMx''@;'; + put 'put ''XHhjMlx1MDExYVx1MDE1ZVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MDE3Ylx1MDE3Y1x1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MDEwMlx1MDEwM1x1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x4YTRcdTAxMTFcdTAxMTBc''@;'; + put 'put ''dTAxMGVceGNiXHUwMTBmXHUwMTQ3XHhjZFx4Y2VcdTAxMWJcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTAxNjJcdTAxNmVcdTI1ODBceGQzXHhkZlx4ZDRcdTAxNDNcdTAxNDRcdTAxNDhcdTAxNjBcdTAxNjFcdTAxNTRceGRhXHUwMTU1XHUwMTcwXHhmZFx4ZGRcdTAxNjNceGI0XHhhZFx1''@;'; + put 'put ''MDJkZFx1MDJkYlx1MDJjN1x1MDJkOFx4YTdceGY3XHhiOFx4YjBceGE4XHUwMmQ5XHUwMTcxXHUwMTU4XHUwMTU5XHUyNWEwXHhhMCJ9LGlibTg1MjoiY3A4NTIiLGNzaWJtODUyOiJjcDg1MiIsY3A4NTU6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDUyXHUwNDAyXHUwNDUzXHUwNDAzXHUw''@;'; + put 'put ''NDUxXHUwNDAxXHUwNDU0XHUwNDA0XHUwNDU1XHUwNDA1XHUwNDU2XHUwNDA2XHUwNDU3XHUwNDA3XHUwNDU4XHUwNDA4XHUwNDU5XHUwNDA5XHUwNDVhXHUwNDBhXHUwNDViXHUwNDBiXHUwNDVjXHUwNDBjXHUwNDVlXHUwNDBlXHUwNDVmXHUwNDBmXHUwNDRlXHUwNDJlXHUwNDRhXHUwNDJh''@;'; + put 'put ''XHUwNDMwXHUwNDEwXHUwNDMxXHUwNDExXHUwNDQ2XHUwNDI2XHUwNDM0XHUwNDE0XHUwNDM1XHUwNDE1XHUwNDQ0XHUwNDI0XHUwNDMzXHUwNDEzXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTA0NDVcdTA0MjVcdTA0MzhcdTA0MThcdTI1NjNcdTI1NTFcdTI1NTdc''@;'; + put 'put ''dTI1NWRcdTA0MzlcdTA0MTlcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTA0M2FcdTA0MWFcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNceGE0XHUwNDNiXHUwNDFiXHUwNDNjXHUwNDFjXHUwNDNkXHUwNDFkXHUwNDNlXHUwNDFl''@;'; + put 'put ''XHUwNDNmXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUwNDFmXHUwNDRmXHUyNTgwXHUwNDJmXHUwNDQwXHUwNDIwXHUwNDQxXHUwNDIxXHUwNDQyXHUwNDIyXHUwNDQzXHUwNDIzXHUwNDM2XHUwNDE2XHUwNDMyXHUwNDEyXHUwNDRjXHUwNDJjXHUyMTE2XHhhZFx1MDQ0Ylx1MDQyYlx1MDQz''@;'; + put 'put ''N1x1MDQxN1x1MDQ0OFx1MDQyOFx1MDQ0ZFx1MDQyZFx1MDQ0OVx1MDQyOVx1MDQ0N1x1MDQyN1x4YTdcdTI1YTBceGEwIn0saWJtODU1OiJjcDg1NSIsY3NpYm04NTU6ImNwODU1IixjcDg1Njp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA1ZDBcdTA1ZDFcdTA1ZDJcdTA1ZDNcdTA1ZDRcdTA1''@;'; + put 'put ''ZDVcdTA1ZDZcdTA1ZDdcdTA1ZDhcdTA1ZDlcdTA1ZGFcdTA1ZGJcdTA1ZGNcdTA1ZGRcdTA1ZGVcdTA1ZGZcdTA1ZTBcdTA1ZTFcdTA1ZTJcdTA1ZTNcdTA1ZTRcdTA1ZTVcdTA1ZTZcdTA1ZTdcdTA1ZThcdTA1ZTlcdTA1ZWFcdWZmZmRceGEzXHVmZmZkXHhkN1x1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YWVceGFjXHhiZFx4YmNcdWZmZmRceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTlcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRceGEyXHhhNVx1MjUxMFx1''@;'; + put 'put ''MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1ZmZmZFx1ZmZmZFx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x4YTRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI1MThcdTI1MGNcdTI1ODhc''@;'; + put 'put ''dTI1ODRceGE2XHVmZmZkXHUyNTgwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhiNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YWZceGI0XHhhZFx4YjFcdTIwMTdceGJlXHhiNlx4YTdceGY3XHhiOFx4YjBceGE4XHhiN1x4YjlceGIz''@;'; + put 'put ''XHhiMlx1MjVhMFx4YTAifSxpYm04NTY6ImNwODU2Iixjc2libTg1NjoiY3A4NTYiLGNwODU3Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVcdTAxMzFceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhm''@;'; + put 'put ''Mlx4ZmJceGY5XHUwMTMwXHhkNlx4ZGNceGY4XHhhM1x4ZDhcdTAxNWVcdTAxNWZceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFcdTAxMWVcdTAxMWZceGJmXHhhZVx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx4YzFceGMyXHhjMFx4YTlcdTI1''@;'; + put 'put ''NjNcdTI1NTFcdTI1NTdcdTI1NWRceGEyXHhhNVx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x4ZTNceGMzXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx4YmFceGFhXHhjYVx4Y2JceGM4XHVmZmZkXHhjZFx4Y2VceGNmXHUy''@;'; + put 'put ''NTE4XHUyNTBjXHUyNTg4XHUyNTg0XHhhNlx4Y2NcdTI1ODBceGQzXHhkZlx4ZDRceGQyXHhmNVx4ZDVceGI1XHVmZmZkXHhkN1x4ZGFceGRiXHhkOVx4ZWNceGZmXHhhZlx4YjRceGFkXHhiMVx1ZmZmZFx4YmVceGI2XHhhN1x4ZjdceGI4XHhiMFx4YThceGI3XHhiOVx4YjNceGIyXHUyNWEw''@;'; + put 'put ''XHhhMCJ9LGlibTg1NzoiY3A4NTciLGNzaWJtODU3OiJjcDg1NyIsY3A4NTg6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx4ZWNceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhmMlx4ZmJceGY5XHhm''@;'; + put 'put ''Zlx4ZDZceGRjXHhmOFx4YTNceGQ4XHhkN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx4YWFceGJhXHhiZlx4YWVceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRceGMxXHhjMlx4YzBceGE5XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVk''@;'; + put 'put ''XHhhMlx4YTVcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NceGUzXHhjM1x1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x4YTRceGYwXHhkMFx4Y2FceGNiXHhjOFx1MjBhY1x4Y2RceGNlXHhjZlx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4''@;'; + put 'put ''NFx4YTZceGNjXHUyNTgwXHhkM1x4ZGZceGQ0XHhkMlx4ZjVceGQ1XHhiNVx4ZmVceGRlXHhkYVx4ZGJceGQ5XHhmZFx4ZGRceGFmXHhiNFx4YWRceGIxXHUyMDE3XHhiZVx4YjZceGE3XHhmN1x4YjhceGIwXHhhOFx4YjdceGI5XHhiM1x4YjJcdTI1YTBceGEwIn0saWJtODU4OiJjcDg1OCIs''@;'; + put 'put ''Y3NpYm04NTg6ImNwODU4IixjcDg2MDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhlM1x4ZTBceGMxXHhlN1x4ZWFceGNhXHhlOFx4Y2RceGQ0XHhlY1x4YzNceGMyXHhjOVx4YzBceGM4XHhmNFx4ZjVceGYyXHhkYVx4ZjlceGNjXHhkNVx4ZGNceGEyXHhhM1x4ZDlc''@;'; + put 'put ''dTIwYTdceGQzXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHhkMlx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1''@;'; + put 'put ''MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUw''@;'; + put 'put ''Y1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIy''@;'; + put 'put ''NDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIn0saWJtODYwOiJjcDg2MCIsY3NpYm04NjA6ImNwODYwIixjcDg2MTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZDBceGYwXHhkZVx4YzRc''@;'; + put 'put ''eGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGZlXHhmYlx4ZGRceGZkXHhkNlx4ZGNceGY4XHhhM1x4ZDhcdTIwYTdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhjMVx4Y2RceGQzXHhkYVx4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1''@;'; + put 'put ''MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1Njdc''@;'; + put 'put ''dTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1''@;'; + put 'put ''MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGlibTg2MToiY3A4NjEiLGNzaWJtODYxOiJjcDg2MSIsY3A4NjI6e3R5cGU6Il9zYmNzIixjaGFy''@;'; + put 'put ''czoiXHUwNWQwXHUwNWQxXHUwNWQyXHUwNWQzXHUwNWQ0XHUwNWQ1XHUwNWQ2XHUwNWQ3XHUwNWQ4XHUwNWQ5XHUwNWRhXHUwNWRiXHUwNWRjXHUwNWRkXHUwNWRlXHUwNWRmXHUwNWUwXHUwNWUxXHUwNWUyXHUwNWUzXHUwNWU0XHUwNWU1XHUwNWU2XHUwNWU3XHUwNWU4XHUwNWU5XHUwNWVh''@;'; + put 'put ''XHhhMlx4YTNceGE1XHUyMGE3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHUyMzEwXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUy''@;'; + put 'put ''NTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZi''@;'; + put 'put ''XHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUy''@;'; + put 'put ''MzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxpYm04NjI6ImNwODYyIixjc2libTg2MjoiY3A4NjIiLGNwODYzOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGMyXHhlMFx4YjZceGU3XHhlYVx4ZWJceGU4''@;'; + put 'put ''XHhlZlx4ZWVcdTIwMTdceGMwXHhhN1x4YzlceGM4XHhjYVx4ZjRceGNiXHhjZlx4ZmJceGY5XHhhNFx4ZDRceGRjXHhhMlx4YTNceGQ5XHhkYlx1MDE5Mlx4YTZceGI0XHhmM1x4ZmFceGE4XHhiOFx4YjNceGFmXHhjZVx1MjMxMFx4YWNceGJkXHhiY1x4YmVceGFiXHhiYlx1MjU5MVx1MjU5''@;'; + put 'put ''Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1''@;'; + put 'put ''MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUw''@;'; + put 'put ''Mzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIn0saWJtODYzOiJjcDg2MyIsY3NpYm04NjM6ImNwODYzIixjcDg2NDp7''@;'; + put 'put ''dHlwZToiX3NiY3MiLGNoYXJzOiJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyRcdTA2NmEmJygpKissLS4vMDEyMzQ1Njc4''@;'; + put 'put ''OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhiMFx4YjdcdTIyMTlcdTIyMWFcdTI1OTJcdTI1MDBcdTI1MDJcdTI1M2NcdTI1MjRcdTI1MmNcdTI1MWNcdTI1MzRcdTI1MTBcdTI1MGNcdTI1MTRcdTI1''@;'; + put 'put ''MThcdTAzYjJcdTIyMWVcdTAzYzZceGIxXHhiZFx4YmNcdTIyNDhceGFiXHhiYlx1ZmVmN1x1ZmVmOFx1ZmZmZFx1ZmZmZFx1ZmVmYlx1ZmVmY1x1ZmZmZFx4YTBceGFkXHVmZTgyXHhhM1x4YTRcdWZlODRcdWZmZmRcdWZmZmRcdWZlOGVcdWZlOGZcdWZlOTVcdWZlOTlcdTA2MGNcdWZlOWRc''@;'; + put 'put ''dWZlYTFcdWZlYTVcdTA2NjBcdTA2NjFcdTA2NjJcdTA2NjNcdTA2NjRcdTA2NjVcdTA2NjZcdTA2NjdcdTA2NjhcdTA2NjlcdWZlZDFcdTA2MWJcdWZlYjFcdWZlYjVcdWZlYjlcdTA2MWZceGEyXHVmZTgwXHVmZTgxXHVmZTgzXHVmZTg1XHVmZWNhXHVmZThiXHVmZThkXHVmZTkxXHVmZTkz''@;'; + put 'put ''XHVmZTk3XHVmZTliXHVmZTlmXHVmZWEzXHVmZWE3XHVmZWE5XHVmZWFiXHVmZWFkXHVmZWFmXHVmZWIzXHVmZWI3XHVmZWJiXHVmZWJmXHVmZWMxXHVmZWM1XHVmZWNiXHVmZWNmXHhhNlx4YWNceGY3XHhkN1x1ZmVjOVx1MDY0MFx1ZmVkM1x1ZmVkN1x1ZmVkYlx1ZmVkZlx1ZmVlM1x1ZmVl''@;'; + put 'put ''N1x1ZmVlYlx1ZmVlZFx1ZmVlZlx1ZmVmM1x1ZmViZFx1ZmVjY1x1ZmVjZVx1ZmVjZFx1ZmVlMVx1ZmU3ZFx1MDY1MVx1ZmVlNVx1ZmVlOVx1ZmVlY1x1ZmVmMFx1ZmVmMlx1ZmVkMFx1ZmVkNVx1ZmVmNVx1ZmVmNlx1ZmVkZFx1ZmVkOVx1ZmVmMVx1MjVhMFx1ZmZmZCJ9LGlibTg2NDoiY3A4''@;'; + put 'put ''NjQiLGNzaWJtODY0OiJjcDg2NCIsY3A4NjU6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx4ZWNceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhmMlx4ZmJceGY5XHhmZlx4ZDZceGRjXHhmOFx4YTNc''@;'; + put 'put ''eGQ4XHUyMGE3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHUyMzEwXHhhY1x4YmRceGJjXHhhMVx4YWJceGE0XHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVj''@;'; + put 'put ''XHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUy''@;'; + put 'put ''NTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIx''@;'; + put 'put ''XHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxpYm04NjU6ImNwODY1Iixjc2libTg2NToiY3A4NjUiLGNwODY2Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQx''@;'; + put 'put ''OFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1''@;'; + put 'put ''MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUx''@;'; + put 'put ''MFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1''@;'; + put 'put ''MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MDQwMVx1MDQ1MVx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQw''@;'; + put 'put ''ZVx1MDQ1ZVx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMTE2XHhhNFx1MjVhMFx4YTAifSxpYm04NjY6ImNwODY2Iixjc2libTg2NjoiY3A4NjYiLGNwODY5Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDM4Nlx1ZmZmZFx4YjdceGFj''@;'; + put 'put ''XHhhNlx1MjAxOFx1MjAxOVx1MDM4OFx1MjAxNVx1MDM4OVx1MDM4YVx1MDNhYVx1MDM4Y1x1ZmZmZFx1ZmZmZFx1MDM4ZVx1MDNhYlx4YTlcdTAzOGZceGIyXHhiM1x1MDNhY1x4YTNcdTAzYWRcdTAzYWVcdTAzYWZcdTAzY2FcdTAzOTBcdTAzY2NcdTAzY2RcdTAzOTFcdTAzOTJcdTAzOTNc''@;'; + put 'put ''dTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdceGJkXHUwMzk4XHUwMzk5XHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTAzOWVcdTAzOWZcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1''@;'; + put 'put ''MWNcdTI1MDBcdTI1M2NcdTAzYTBcdTAzYTFcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdTAzYjFcdTAzYjJcdTAzYjNcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTAzYjRcdTAzYjVc''@;'; + put 'put ''dTI1ODBcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzNcdTAzYzJcdTAzYzRcdTAzODRceGFkXHhiMVx1MDNjNVx1MDNjNlx1MDNjN1x4YTdcdTAzYzhcdTAzODVceGIwXHhhOFx1MDNjOVx1MDNjYlx1''@;'; + put 'put ''MDNiMFx1MDNjZVx1MjVhMFx4YTAifSxpYm04Njk6ImNwODY5Iixjc2libTg2OToiY3A4NjkiLGNwOTIyOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5''@;'; + put 'put ''NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHUyMDNlXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4''@;'; + put 'put ''YmRceGJlXHhiZlx4YzBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2ZcdTAxNjBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHUwMTdkXHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhl''@;'; + put 'put ''NVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZcdTAxNjFceGYxXHhmMlx4ZjNceGY0XHhmNVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNceGZkXHUwMTdlXHhmZiJ9LGlibTkyMjoiY3A5MjIiLGNzaWJtOTIyOiJjcDkyMiIsY3AxMDQ2Ont0eXBlOiJfc2JjcyIs''@;'; + put 'put ''Y2hhcnM6Ilx1ZmU4OFx4ZDdceGY3XHVmOGY2XHVmOGY1XHVmOGY0XHVmOGY3XHVmZTcxXHg4OFx1MjVhMFx1MjUwMlx1MjUwMFx1MjUxMFx1MjUwY1x1MjUxNFx1MjUxOFx1ZmU3OVx1ZmU3Ylx1ZmU3ZFx1ZmU3Zlx1ZmU3N1x1ZmU4YVx1ZmVmMFx1ZmVmM1x1ZmVmMlx1ZmVjZVx1ZmVjZlx1''@;'; + put 'put ''ZmVkMFx1ZmVmNlx1ZmVmOFx1ZmVmYVx1ZmVmY1x4YTBcdWY4ZmFcdWY4ZjlcdWY4ZjhceGE0XHVmOGZiXHVmZThiXHVmZTkxXHVmZTk3XHVmZTliXHVmZTlmXHVmZWEzXHUwNjBjXHhhZFx1ZmVhN1x1ZmViM1x1MDY2MFx1MDY2MVx1MDY2Mlx1MDY2M1x1MDY2NFx1MDY2NVx1MDY2Nlx1MDY2''@;'; + put 'put ''N1x1MDY2OFx1MDY2OVx1ZmViN1x1MDYxYlx1ZmViYlx1ZmViZlx1ZmVjYVx1MDYxZlx1ZmVjYlx1MDYyMVx1MDYyMlx1MDYyM1x1MDYyNFx1MDYyNVx1MDYyNlx1MDYyN1x1MDYyOFx1MDYyOVx1MDYyYVx1MDYyYlx1MDYyY1x1MDYyZFx1MDYyZVx1MDYyZlx1MDYzMFx1MDYzMVx1MDYzMlx1''@;'; + put 'put ''MDYzM1x1MDYzNFx1MDYzNVx1MDYzNlx1MDYzN1x1ZmVjN1x1MDYzOVx1MDYzYVx1ZmVjY1x1ZmU4Mlx1ZmU4NFx1ZmU4ZVx1ZmVkM1x1MDY0MFx1MDY0MVx1MDY0Mlx1MDY0M1x1MDY0NFx1MDY0NVx1MDY0Nlx1MDY0N1x1MDY0OFx1MDY0OVx1MDY0YVx1MDY0Ylx1MDY0Y1x1MDY0ZFx1MDY0''@;'; + put 'put ''ZVx1MDY0Zlx1MDY1MFx1MDY1MVx1MDY1Mlx1ZmVkN1x1ZmVkYlx1ZmVkZlx1ZjhmY1x1ZmVmNVx1ZmVmN1x1ZmVmOVx1ZmVmYlx1ZmVlM1x1ZmVlN1x1ZmVlY1x1ZmVlOVx1ZmZmZCJ9LGlibTEwNDY6ImNwMTA0NiIsY3NpYm0xMDQ2OiJjcDEwNDYiLGNwMTEyNDp7dHlwZToiX3NiY3MiLGNo''@;'; + put 'put ''YXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTA0MDFcdTA0MDJcdTA0OTBcdTA0MDRcdTA0''@;'; + put 'put ''MDVcdTA0MDZcdTA0MDdcdTA0MDhcdTA0MDlcdTA0MGFcdTA0MGJcdTA0MGNceGFkXHUwNDBlXHUwNDBmXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUw''@;'; + put 'put ''NDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNj''@;'; + put 'put ''XHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHUyMTE2XHUwNDUxXHUwNDUyXHUwNDkxXHUwNDU0XHUwNDU1XHUwNDU2XHUwNDU3XHUw''@;'; + put 'put ''NDU4XHUwNDU5XHUwNDVhXHUwNDViXHUwNDVjXHhhN1x1MDQ1ZVx1MDQ1ZiJ9LGlibTExMjQ6ImNwMTEyNCIsY3NpYm0xMTI0OiJjcDExMjQiLGNwMTEyNTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThc''@;'; + put 'put ''dTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0''@;'; + put 'put ''MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBc''@;'; + put 'put ''dTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1''@;'; + put 'put ''ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdTA0MDFcdTA0NTFcdTA0OTBcdTA0OTFcdTA0MDRcdTA0NTRcdTA0MDZc''@;'; + put 'put ''dTA0NTZcdTA0MDdcdTA0NTdceGI3XHUyMjFhXHUyMTE2XHhhNFx1MjVhMFx4YTAifSxpYm0xMTI1OiJjcDExMjUiLGNzaWJtMTEyNToiY3AxMTI1IixjcDExMjk6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4''@;'; + put 'put ''Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x1MDE1M1x4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHUwMTc4''@;'; + put 'put ''XHhiNVx4YjZceGI3XHUwMTUyXHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx1MDEwMlx4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHUwMzAwXHhjZFx4Y2VceGNmXHUwMTEwXHhkMVx1MDMwOVx4ZDNceGQ0XHUwMWEwXHhkNlx4ZDdceGQ4XHhkOVx4ZGFc''@;'; + put 'put ''eGRiXHhkY1x1MDFhZlx1MDMwM1x4ZGZceGUwXHhlMVx4ZTJcdTAxMDNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx1MDMwMVx4ZWRceGVlXHhlZlx1MDExMVx4ZjFcdTAzMjNceGYzXHhmNFx1MDFhMVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNcdTAxYjBcdTIwYWJceGZm''@;'; + put 'put ''In0saWJtMTEyOToiY3AxMTI5Iixjc2libTExMjk6ImNwMTEyOSIsY3AxMTMzOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4''@;'; + put 'put ''OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MGU4MVx1MGU4Mlx1MGU4NFx1MGU4N1x1MGU4OFx1MGVhYVx1MGU4YVx1MGU4ZFx1MGU5NFx1MGU5NVx1MGU5Nlx1MGU5N1x1MGU5OVx1MGU5YVx1MGU5Ylx1MGU5Y1x1MGU5ZFx1MGU5ZVx1MGU5Zlx1MGVhMVx1MGVhMlx1MGVh''@;'; + put 'put ''M1x1MGVhNVx1MGVhN1x1MGVhYlx1MGVhZFx1MGVhZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGVhZlx1MGViMFx1MGViMlx1MGViM1x1MGViNFx1MGViNVx1MGViNlx1MGViN1x1MGViOFx1MGViOVx1MGViY1x1MGViMVx1MGViYlx1MGViZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGVjMFx1MGVjMVx1''@;'; + put 'put ''MGVjMlx1MGVjM1x1MGVjNFx1MGVjOFx1MGVjOVx1MGVjYVx1MGVjYlx1MGVjY1x1MGVjZFx1MGVjNlx1ZmZmZFx1MGVkY1x1MGVkZFx1MjBhZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1ZmZmZFx1MGVkMFx1MGVkMVx1MGVkMlx1MGVkM1x1MGVkNFx1MGVkNVx1MGVkNlx1MGVkN1x1MGVkOFx1MGVkOVx1ZmZmZFx1ZmZmZFx4YTJceGFjXHhhNlx1ZmZmZCJ9LGlibTExMzM6ImNwMTEzMyIsY3NpYm0xMTMzOiJjcDExMzMiLGNwMTE2MTp7dHlwZToiX3NiY3MiLGNo''@;'; + put 'put ''YXJzOiJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTBlNDhcdTBlMDFcdTBlMDJcdTBlMDNcdTBlMDRcdTBlMDVcdTBlMDZcdTBlMDdcdTBlMDhcdTBlMDlcdTBlMGFcdTBlMGJcdTBlMGNcdTBlMGRcdTBlMGVcdTBlMGZcdTBlMTBcdTBlMTFcdTBlMTJcdTBlMTNcdTBlMTRcdTBlMTVc''@;'; + put 'put ''dTBlMTZcdTBlMTdcdTBlMThcdTBlMTlcdTBlMWFcdTBlMWJcdTBlMWNcdTBlMWRcdTBlMWVcdTBlMWZcdTBlMjBcdTBlMjFcdTBlMjJcdTBlMjNcdTBlMjRcdTBlMjVcdTBlMjZcdTBlMjdcdTBlMjhcdTBlMjlcdTBlMmFcdTBlMmJcdTBlMmNcdTBlMmRcdTBlMmVcdTBlMmZcdTBlMzBcdTBl''@;'; + put 'put ''MzFcdTBlMzJcdTBlMzNcdTBlMzRcdTBlMzVcdTBlMzZcdTBlMzdcdTBlMzhcdTBlMzlcdTBlM2FcdTBlNDlcdTBlNGFcdTBlNGJcdTIwYWNcdTBlM2ZcdTBlNDBcdTBlNDFcdTBlNDJcdTBlNDNcdTBlNDRcdTBlNDVcdTBlNDZcdTBlNDdcdTBlNDhcdTBlNDlcdTBlNGFcdTBlNGJcdTBlNGNc''@;'; + put 'put ''dTBlNGRcdTBlNGVcdTBlNGZcdTBlNTBcdTBlNTFcdTBlNTJcdTBlNTNcdTBlNTRcdTBlNTVcdTBlNTZcdTBlNTdcdTBlNThcdTBlNTlcdTBlNWFcdTBlNWJceGEyXHhhY1x4YTZceGEwIn0saWJtMTE2MToiY3AxMTYxIixjc2libTExNjE6ImNwMTE2MSIsY3AxMTYyOnt0eXBlOiJfc2JjcyIs''@;'; + put 'put ''Y2hhcnM6Ilx1MjBhY1x4ODFceDgyXHg4M1x4ODRcdTIwMjZceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MGUwMVx1''@;'; + put 'put ''MGUwMlx1MGUwM1x1MGUwNFx1MGUwNVx1MGUwNlx1MGUwN1x1MGUwOFx1MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUxM1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1MGUxYlx1MGUxY1x1MGUx''@;'; + put 'put ''ZFx1MGUxZVx1MGUxZlx1MGUyMFx1MGUyMVx1MGUyMlx1MGUyM1x1MGUyNFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUzNlx1MGUzN1x1MGUzOFx1''@;'; + put 'put ''MGUzOVx1MGUzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGUzZlx1MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1MGU1''@;'; + put 'put ''NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OVx1MGU1YVx1MGU1Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LGlibTExNjI6ImNwMTE2MiIsY3NpYm0xMTYyOiJjcDExNjIiLGNwMTE2Mzp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4''@;'; + put 'put ''N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNcdTIwYWNceGE1XHhhNlx4YTdcdTAxNTNceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFm''@;'; + put 'put ''XHhiMFx4YjFceGIyXHhiM1x1MDE3OFx4YjVceGI2XHhiN1x1MDE1Mlx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJcdTAxMDJceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx1MDMwMFx4Y2RceGNlXHhjZlx1MDExMFx4ZDFcdTAzMDlceGQzXHhkNFx1MDFh''@;'; + put 'put ''MFx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNcdTAxYWZcdTAzMDNceGRmXHhlMFx4ZTFceGUyXHUwMTAzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJcdTAzMDFceGVkXHhlZVx4ZWZcdTAxMTFceGYxXHUwMzIzXHhmM1x4ZjRcdTAxYTFceGY2XHhmN1x4ZjhceGY5XHhmYVx4''@;'; + put 'put ''ZmJceGZjXHUwMWIwXHUyMGFiXHhmZiJ9LGlibTExNjM6ImNwMTE2MyIsY3NpYm0xMTYzOiJjcDExNjMiLG1hY2Nyb2F0aWFuOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhl''@;'; + put 'put ''Ylx4ZWRceGVjXHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHUyMDIwXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx1MDE2MFx1MjEyMlx4YjRceGE4XHUyMjYwXHUwMTdkXHhkOFx1MjIxZVx4YjFcdTIyNjRcdTIyNjVcdTIyMDZceGI1''@;'; + put 'put ''XHUyMjAyXHUyMjExXHUyMjBmXHUwMTYxXHUyMjJiXHhhYVx4YmFcdTIxMjZcdTAxN2VceGY4XHhiZlx4YTFceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUwMTA2XHhhYlx1MDEwY1x1MjAyNlx4YTBceGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNcdTAxMTBcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThc''@;'; + put 'put ''dTIwMTlceGY3XHUyNWNhXHVmZmZkXHhhOVx1MjA0NFx4YTRcdTIwMzlcdTIwM2FceGM2XHhiYlx1MjAxM1x4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHUwMTA3XHhjMVx1MDEwZFx4YzhceGNkXHhjZVx4Y2ZceGNjXHhkM1x4ZDRcdTAxMTFceGQyXHhkYVx4ZGJceGQ5XHUwMTMxXHUwMmM2''@;'; + put 'put ''XHUwMmRjXHhhZlx1MDNjMFx4Y2JcdTAyZGFceGI4XHhjYVx4ZTZcdTAyYzcifSxtYWNjeXJpbGxpYzp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRc''@;'; + put 'put ''dTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx1MDQwNlx4YWVceGE5XHUyMTIyXHUwNDAy''@;'; + put 'put ''XHUwNDUyXHUyMjYwXHUwNDAzXHUwNDUzXHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx1MDQ1Nlx4YjVcdTIyMDJcdTA0MDhcdTA0MDRcdTA0NTRcdTA0MDdcdTA0NTdcdTA0MDlcdTA0NTlcdTA0MGFcdTA0NWFcdTA0NThcdTA0MDVceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUyMjA2XHhhYlx4YmJc''@;'; + put 'put ''dTIwMjZceGEwXHUwNDBiXHUwNDViXHUwNDBjXHUwNDVjXHUwNDU1XHUyMDEzXHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MjAxZVx1MDQwZVx1MDQ1ZVx1MDQwZlx1MDQ1Zlx1MjExNlx1MDQwMVx1MDQ1MVx1MDQ0Zlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1''@;'; + put 'put ''MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx4YTQifSxtYWNn''@;'; + put 'put ''cmVlazp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM0XHhiOVx4YjJceGM5XHhiM1x4ZDZceGRjXHUwMzg1XHhlMFx4ZTJceGU0XHUwMzg0XHhhOFx4ZTdceGU5XHhlOFx4ZWFceGViXHhhM1x1MjEyMlx4ZWVceGVmXHUyMDIyXHhiZFx1MjAzMFx4ZjRceGY2XHhhNlx4YWRceGY5XHhmYlx4ZmNc''@;'; + put 'put ''dTIwMjBcdTAzOTNcdTAzOTRcdTAzOThcdTAzOWJcdTAzOWVcdTAzYTBceGRmXHhhZVx4YTlcdTAzYTNcdTAzYWFceGE3XHUyMjYwXHhiMFx1MDM4N1x1MDM5MVx4YjFcdTIyNjRcdTIyNjVceGE1XHUwMzkyXHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk5XHUwMzlhXHUwMzljXHUwM2E2XHUwM2Fi''@;'; + put 'put ''XHUwM2E4XHUwM2E5XHUwM2FjXHUwMzlkXHhhY1x1MDM5Zlx1MDNhMVx1MjI0OFx1MDNhNFx4YWJceGJiXHUyMDI2XHhhMFx1MDNhNVx1MDNhN1x1MDM4Nlx1MDM4OFx1MDE1M1x1MjAxM1x1MjAxNVx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTAzODlcdTAzOGFcdTAzOGNcdTAzOGVc''@;'; + put 'put ''dTAzYWRcdTAzYWVcdTAzYWZcdTAzY2NcdTAzOGZcdTAzY2RcdTAzYjFcdTAzYjJcdTAzYzhcdTAzYjRcdTAzYjVcdTAzYzZcdTAzYjNcdTAzYjdcdTAzYjlcdTAzYmVcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmZcdTAzYzBcdTAzY2VcdTAzYzFcdTAzYzNcdTAzYzRcdTAzYjhcdTAz''@;'; + put 'put ''YzlcdTAzYzJcdTAzYzdcdTAzYzVcdTAzYjZcdTAzY2FcdTAzY2JcdTAzOTBcdTAzYjBcdWZmZmQifSxtYWNpY2VsYW5kOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4''@;'; + put 'put ''ZWRceGVjXHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHhkZFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBceGM2XHhkOFx1MjIxZVx4YjFcdTIyNjRcdTIyNjVceGE1XHhiNVx1MjIwMlx1MjIx''@;'; + put 'put ''MVx1MjIwZlx1MDNjMFx1MjIyYlx4YWFceGJhXHUyMTI2XHhlNlx4ZjhceGJmXHhhMVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBceGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNh''@;'; + put 'put ''XHhmZlx1MDE3OFx1MjA0NFx4YTRceGQwXHhmMFx4ZGVceGZlXHhmZFx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUw''@;'; + put 'put ''MmRhXHhiOFx1MDJkZFx1MDJkYlx1MDJjNyJ9LG1hY3JvbWFuOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4ZWRceGVjXHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0XHhm''@;'; + put 'put ''Nlx4ZjVceGZhXHhmOVx4ZmJceGZjXHUyMDIwXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIx''@;'; + put 'put ''MjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhhNFx1MjAzOVx1MjAz''@;'; + put 'put ''YVx1ZmIwMVx1ZmIwMlx1MjAyMVx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUwMmRhXHhiOFx1MDJkZFx1MDJkYlx1''@;'; + put 'put ''MDJjNyJ9LG1hY3JvbWFuaWE6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4''@;'; + put 'put ''ZmNcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx4YjRceGE4XHUyMjYwXHUwMTAyXHUwMTVlXHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZcdTAxMDNcdTAxNWZc''@;'; + put 'put ''eGJmXHhhMVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBceGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHhmZlx1MDE3OFx1MjA0NFx4YTRcdTIwMzlcdTIwM2FcdTAxNjJcdTAx''@;'; + put 'put ''NjNcdTIwMjFceGI3XHUyMDFhXHUyMDFlXHUyMDMwXHhjMlx4Y2FceGMxXHhjYlx4YzhceGNkXHhjZVx4Y2ZceGNjXHhkM1x4ZDRcdWZmZmRceGQyXHhkYVx4ZGJceGQ5XHUwMTMxXHUwMmM2XHUwMmRjXHhhZlx1MDJkOFx1MDJkOVx1MDJkYVx4YjhcdTAyZGRcdTAyZGJcdTAyYzcifSxtYWN0''@;'; + put 'put ''aGFpOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YWJceGJiXHUyMDI2XHVmODhjXHVmODhmXHVmODkyXHVmODk1XHVmODk4XHVmODhiXHVmODhlXHVmODkxXHVmODk0XHVmODk3XHUyMDFjXHUyMDFkXHVmODk5XHVmZmZkXHUyMDIyXHVmODg0XHVmODg5XHVmODg1XHVmODg2XHVmODg3XHVmODg4''@;'; + put 'put ''XHVmODhhXHVmODhkXHVmODkwXHVmODkzXHVmODk2XHUyMDE4XHUyMDE5XHVmZmZkXHhhMFx1MGUwMVx1MGUwMlx1MGUwM1x1MGUwNFx1MGUwNVx1MGUwNlx1MGUwN1x1MGUwOFx1MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUx''@;'; + put 'put ''M1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1MGUxYlx1MGUxY1x1MGUxZFx1MGUxZVx1MGUxZlx1MGUyMFx1MGUyMVx1MGUyMlx1MGUyM1x1MGUyNFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1''@;'; + put 'put ''MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUzNlx1MGUzN1x1MGUzOFx1MGUzOVx1MGUzYVx1ZmVmZlx1MjAwYlx1MjAxM1x1MjAxNFx1MGUzZlx1MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0''@;'; + put 'put ''YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MjEyMlx1MGU0Zlx1MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OVx4YWVceGE5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn0sbWFjdHVya2lzaDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM0XHhj''@;'; + put 'put ''NVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVmXHhmMVx4ZjNceGYyXHhmNFx4ZjZceGY1XHhmYVx4ZjlceGZiXHhmY1x1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5''@;'; + put 'put ''XHUyMTIyXHhiNFx4YThcdTIyNjBceGM2XHhkOFx1MjIxZVx4YjFcdTIyNjRcdTIyNjVceGE1XHhiNVx1MjIwMlx1MjIxMVx1MjIwZlx1MDNjMFx1MjIyYlx4YWFceGJhXHUyMTI2XHhlNlx4ZjhceGJmXHhhMVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBc''@;'; + put 'put ''eGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHhmZlx1MDE3OFx1MDExZVx1MDExZlx1MDEzMFx1MDEzMVx1MDE1ZVx1MDE1Zlx1MjAyMVx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4''@;'; + put 'put ''Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRhXHhkYlx4ZDlcdWZmZmRcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUwMmRhXHhiOFx1MDJkZFx1MDJkYlx1MDJjNyJ9LG1hY3VrcmFpbmU6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEz''@;'; + put 'put ''XHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUw''@;'; + put 'put ''NDJmXHUyMDIwXHhiMFx1MDQ5MFx4YTNceGE3XHUyMDIyXHhiNlx1MDQwNlx4YWVceGE5XHUyMTIyXHUwNDAyXHUwNDUyXHUyMjYwXHUwNDAzXHUwNDUzXHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx1MDQ1Nlx4YjVcdTA0OTFcdTA0MDhcdTA0MDRcdTA0NTRcdTA0MDdcdTA0NTdcdTA0MDlcdTA0''@;'; + put 'put ''NTlcdTA0MGFcdTA0NWFcdTA0NThcdTA0MDVceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHUwNDBiXHUwNDViXHUwNDBjXHUwNDVjXHUwNDU1XHUyMDEzXHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MjAxZVx1MDQwZVx1MDQ1ZVx1MDQw''@;'; + put 'put ''Zlx1MDQ1Zlx1MjExNlx1MDQwMVx1MDQ1MVx1MDQ0Zlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1''@;'; + put 'put ''MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx4YTQifSxrb2k4cjp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTI1MDBcdTI1MDJcdTI1MGNcdTI1MTBcdTI1MTRcdTI1MThcdTI1MWNcdTI1MjRcdTI1MmNcdTI1MzRcdTI1M2NcdTI1ODBcdTI1ODRc''@;'; + put 'put ''dTI1ODhcdTI1OGNcdTI1OTBcdTI1OTFcdTI1OTJcdTI1OTNcdTIzMjBcdTI1YTBcdTIyMTlcdTIyMWFcdTIyNDhcdTIyNjRcdTIyNjVceGEwXHUyMzIxXHhiMFx4YjJceGI3XHhmN1x1MjU1MFx1MjU1MVx1MjU1Mlx1MDQ1MVx1MjU1M1x1MjU1NFx1MjU1NVx1MjU1Nlx1MjU1N1x1MjU1OFx1''@;'; + put 'put ''MjU1OVx1MjU1YVx1MjU1Ylx1MjU1Y1x1MjU1ZFx1MjU1ZVx1MjU1Zlx1MjU2MFx1MjU2MVx1MDQwMVx1MjU2Mlx1MjU2M1x1MjU2NFx1MjU2NVx1MjU2Nlx1MjU2N1x1MjU2OFx1MjU2OVx1MjU2YVx1MjU2Ylx1MjU2Y1x4YTlcdTA0NGVcdTA0MzBcdTA0MzFcdTA0NDZcdTA0MzRcdTA0MzVc''@;'; + put 'put ''dTA0NDRcdTA0MzNcdTA0NDVcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NGZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0MzZcdTA0MzJcdTA0NGNcdTA0NGJcdTA0MzdcdTA0NDhcdTA0NGRcdTA0NDlcdTA0NDdcdTA0NGFcdTA0MmVcdTA0''@;'; + put 'put ''MTBcdTA0MTFcdTA0MjZcdTA0MTRcdTA0MTVcdTA0MjRcdTA0MTNcdTA0MjVcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MmZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MTZcdTA0MTJcdTA0MmNcdTA0MmJcdTA0MTdcdTA0MjhcdTA0MmRc''@;'; + put 'put ''dTA0MjlcdTA0MjdcdTA0MmEifSxrb2k4dTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTI1MDBcdTI1MDJcdTI1MGNcdTI1MTBcdTI1MTRcdTI1MThcdTI1MWNcdTI1MjRcdTI1MmNcdTI1MzRcdTI1M2NcdTI1ODBcdTI1ODRcdTI1ODhcdTI1OGNcdTI1OTBcdTI1OTFcdTI1OTJcdTI1OTNcdTIz''@;'; + put 'put ''MjBcdTI1YTBcdTIyMTlcdTIyMWFcdTIyNDhcdTIyNjRcdTIyNjVceGEwXHUyMzIxXHhiMFx4YjJceGI3XHhmN1x1MjU1MFx1MjU1MVx1MjU1Mlx1MDQ1MVx1MDQ1NFx1MjU1NFx1MDQ1Nlx1MDQ1N1x1MjU1N1x1MjU1OFx1MjU1OVx1MjU1YVx1MjU1Ylx1MDQ5MVx1MjU1ZFx1MjU1ZVx1MjU1''@;'; + put 'put ''Zlx1MjU2MFx1MjU2MVx1MDQwMVx1MDQwNFx1MjU2M1x1MDQwNlx1MDQwN1x1MjU2Nlx1MjU2N1x1MjU2OFx1MjU2OVx1MjU2YVx1MDQ5MFx1MjU2Y1x4YTlcdTA0NGVcdTA0MzBcdTA0MzFcdTA0NDZcdTA0MzRcdTA0MzVcdTA0NDRcdTA0MzNcdTA0NDVcdTA0MzhcdTA0MzlcdTA0M2FcdTA0''@;'; + put 'put ''M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NGZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0MzZcdTA0MzJcdTA0NGNcdTA0NGJcdTA0MzdcdTA0NDhcdTA0NGRcdTA0NDlcdTA0NDdcdTA0NGFcdTA0MmVcdTA0MTBcdTA0MTFcdTA0MjZcdTA0MTRcdTA0MTVcdTA0MjRcdTA0MTNc''@;'; + put 'put ''dTA0MjVcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MmZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MTZcdTA0MTJcdTA0MmNcdTA0MmJcdTA0MTdcdTA0MjhcdTA0MmRcdTA0MjlcdTA0MjdcdTA0MmEifSxrb2k4cnU6e3R5cGU6Il9zYmNz''@;'; + put 'put ''IixjaGFyczoiXHUyNTAwXHUyNTAyXHUyNTBjXHUyNTEwXHUyNTE0XHUyNTE4XHUyNTFjXHUyNTI0XHUyNTJjXHUyNTM0XHUyNTNjXHUyNTgwXHUyNTg0XHUyNTg4XHUyNThjXHUyNTkwXHUyNTkxXHUyNTkyXHUyNTkzXHUyMzIwXHUyNWEwXHUyMjE5XHUyMjFhXHUyMjQ4XHUyMjY0XHUyMjY1''@;'; + put 'put ''XHhhMFx1MjMyMVx4YjBceGIyXHhiN1x4ZjdcdTI1NTBcdTI1NTFcdTI1NTJcdTA0NTFcdTA0NTRcdTI1NTRcdTA0NTZcdTA0NTdcdTI1NTdcdTI1NThcdTI1NTlcdTI1NWFcdTI1NWJcdTA0OTFcdTA0NWVcdTI1NWVcdTI1NWZcdTI1NjBcdTI1NjFcdTA0MDFcdTA0MDRcdTI1NjNcdTA0MDZc''@;'; + put 'put ''dTA0MDdcdTI1NjZcdTI1NjdcdTI1NjhcdTI1NjlcdTI1NmFcdTA0OTBcdTA0MGVceGE5XHUwNDRlXHUwNDMwXHUwNDMxXHUwNDQ2XHUwNDM0XHUwNDM1XHUwNDQ0XHUwNDMzXHUwNDQ1XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDRmXHUwNDQw''@;'; + put 'put ''XHUwNDQxXHUwNDQyXHUwNDQzXHUwNDM2XHUwNDMyXHUwNDRjXHUwNDRiXHUwNDM3XHUwNDQ4XHUwNDRkXHUwNDQ5XHUwNDQ3XHUwNDRhXHUwNDJlXHUwNDEwXHUwNDExXHUwNDI2XHUwNDE0XHUwNDE1XHUwNDI0XHUwNDEzXHUwNDI1XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUw''@;'; + put 'put ''NDFkXHUwNDFlXHUwNDFmXHUwNDJmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDE2XHUwNDEyXHUwNDJjXHUwNDJiXHUwNDE3XHUwNDI4XHUwNDJkXHUwNDI5XHUwNDI3XHUwNDJhIn0sa29pOHQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDliXHUwNDkzXHUyMDFhXHUwNDkyXHUyMDFl''@;'; + put 'put ''XHUyMDI2XHUyMDIwXHUyMDIxXHVmZmZkXHUyMDMwXHUwNGIzXHUyMDM5XHUwNGIyXHUwNGI3XHUwNGI2XHVmZmZkXHUwNDlhXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIyXHVmZmZkXHUyMDNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHUwNGVmXHUwNGVlXHUwNDUxXHhhNFx1MDRlM1x4YTZceGE3XHVmZmZkXHVmZmZkXHVmZmZkXHhhYlx4YWNceGFkXHhhZVx1ZmZmZFx4YjBceGIxXHhiMlx1MDQwMVx1ZmZmZFx1MDRlMlx4YjZceGI3XHVmZmZkXHUyMTE2XHVmZmZkXHhiYlx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTlcdTA0''@;'; + put 'put ''NGVcdTA0MzBcdTA0MzFcdTA0NDZcdTA0MzRcdTA0MzVcdTA0NDRcdTA0MzNcdTA0NDVcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NGZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0MzZcdTA0MzJcdTA0NGNcdTA0NGJcdTA0MzdcdTA0NDhc''@;'; + put 'put ''dTA0NGRcdTA0NDlcdTA0NDdcdTA0NGFcdTA0MmVcdTA0MTBcdTA0MTFcdTA0MjZcdTA0MTRcdTA0MTVcdTA0MjRcdTA0MTNcdTA0MjVcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MmZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MTZcdTA0''@;'; + put 'put ''MTJcdTA0MmNcdTA0MmJcdTA0MTdcdTA0MjhcdTA0MmRcdTA0MjlcdTA0MjdcdTA0MmEifSxhcm1zY2lpODp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4''@;'; + put 'put ''OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdWZmZmRcdTA1ODdcdTA1ODkpKFx4YmJceGFiXHUyMDE0Llx1MDU1ZCwtXHUwNThhXHUyMDI2XHUwNTVjXHUwNTViXHUwNTVlXHUwNTMxXHUwNTYxXHUwNTMyXHUwNTYyXHUwNTMzXHUwNTYzXHUwNTM0''@;'; + put 'put ''XHUwNTY0XHUwNTM1XHUwNTY1XHUwNTM2XHUwNTY2XHUwNTM3XHUwNTY3XHUwNTM4XHUwNTY4XHUwNTM5XHUwNTY5XHUwNTNhXHUwNTZhXHUwNTNiXHUwNTZiXHUwNTNjXHUwNTZjXHUwNTNkXHUwNTZkXHUwNTNlXHUwNTZlXHUwNTNmXHUwNTZmXHUwNTQwXHUwNTcwXHUwNTQxXHUwNTcxXHUw''@;'; + put 'put ''NTQyXHUwNTcyXHUwNTQzXHUwNTczXHUwNTQ0XHUwNTc0XHUwNTQ1XHUwNTc1XHUwNTQ2XHUwNTc2XHUwNTQ3XHUwNTc3XHUwNTQ4XHUwNTc4XHUwNTQ5XHUwNTc5XHUwNTRhXHUwNTdhXHUwNTRiXHUwNTdiXHUwNTRjXHUwNTdjXHUwNTRkXHUwNTdkXHUwNTRlXHUwNTdlXHUwNTRmXHUwNTdm''@;'; + put 'put ''XHUwNTUwXHUwNTgwXHUwNTUxXHUwNTgxXHUwNTUyXHUwNTgyXHUwNTUzXHUwNTgzXHUwNTU0XHUwNTg0XHUwNTU1XHUwNTg1XHUwNTU2XHUwNTg2XHUwNTVhXHVmZmZkIn0scmsxMDQ4Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQwMlx1MDQwM1x1MjAxYVx1MDQ1M1x1MjAxZVx1MjAyNlx1''@;'; + put 'put ''MjAyMFx1MjAyMVx1MjBhY1x1MjAzMFx1MDQwOVx1MjAzOVx1MDQwYVx1MDQ5YVx1MDRiYVx1MDQwZlx1MDQ1Mlx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1MDQ1OVx1MjAzYVx1MDQ1YVx1MDQ5Ylx1MDRiYlx1MDQ1Zlx4YTBcdTA0YjBc''@;'; + put 'put ''dTA0YjFcdTA0ZDhceGE0XHUwNGU4XHhhNlx4YTdcdTA0MDFceGE5XHUwNDkyXHhhYlx4YWNceGFkXHhhZVx1MDRhZVx4YjBceGIxXHUwNDA2XHUwNDU2XHUwNGU5XHhiNVx4YjZceGI3XHUwNDUxXHUyMTE2XHUwNDkzXHhiYlx1MDRkOVx1MDRhMlx1MDRhM1x1MDRhZlx1MDQxMFx1MDQxMVx1''@;'; + put 'put ''MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQy''@;'; + put 'put ''ZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1''@;'; + put 'put ''MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0ZiJ9LHRjdm46e3R5cGU6Il9zYmNzIixjaGFyczoiXDBceGRhXHUxZWU0XHgwM1x1MWVlYVx1MWVlY1x1MWVlZVx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBcdTFlZThcdTFlZjBcdTFlZjJcdTFlZjZcdTFlZjhceGRk''@;'; + put 'put ''XHUxZWY0XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzBcdTFlYTJceGMzXHhjMVx1MWVhMFx1''@;'; + put 'put ''MWViNlx1MWVhY1x4YzhcdTFlYmFcdTFlYmNceGM5XHUxZWI4XHUxZWM2XHhjY1x1MWVjOFx1MDEyOFx4Y2RcdTFlY2FceGQyXHUxZWNlXHhkNVx4ZDNcdTFlY2NcdTFlZDhcdTFlZGNcdTFlZGVcdTFlZTBcdTFlZGFcdTFlZTJceGQ5XHUxZWU2XHUwMTY4XHhhMFx1MDEwMlx4YzJceGNhXHhk''@;'; + put 'put ''NFx1MDFhMFx1MDFhZlx1MDExMFx1MDEwM1x4ZTJceGVhXHhmNFx1MDFhMVx1MDFiMFx1MDExMVx1MWViMFx1MDMwMFx1MDMwOVx1MDMwM1x1MDMwMVx1MDMyM1x4ZTBcdTFlYTNceGUzXHhlMVx1MWVhMVx1MWViMlx1MWViMVx1MWViM1x1MWViNVx1MWVhZlx1MWViNFx1MWVhZVx1MWVhNlx1''@;'; + put 'put ''MWVhOFx1MWVhYVx1MWVhNFx1MWVjMFx1MWViN1x1MWVhN1x1MWVhOVx1MWVhYlx1MWVhNVx1MWVhZFx4ZThcdTFlYzJcdTFlYmJcdTFlYmRceGU5XHUxZWI5XHUxZWMxXHUxZWMzXHUxZWM1XHUxZWJmXHUxZWM3XHhlY1x1MWVjOVx1MWVjNFx1MWViZVx1MWVkMlx1MDEyOVx4ZWRcdTFlY2Jc''@;'; + put 'put ''eGYyXHUxZWQ0XHUxZWNmXHhmNVx4ZjNcdTFlY2RcdTFlZDNcdTFlZDVcdTFlZDdcdTFlZDFcdTFlZDlcdTFlZGRcdTFlZGZcdTFlZTFcdTFlZGJcdTFlZTNceGY5XHUxZWQ2XHUxZWU3XHUwMTY5XHhmYVx1MWVlNVx1MWVlYlx1MWVlZFx1MWVlZlx1MWVlOVx1MWVmMVx1MWVmM1x1MWVmN1x1''@;'; + put 'put ''MWVmOVx4ZmRcdTFlZjVcdTFlZDAifSxnZW9yZ2lhbmFjYWRlbXk6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdTAxNjBcdTIwMzlcdTAxNTJceDhkXHg4ZVx4OGZceDkwXHUyMDE4XHUyMDE5XHUy''@;'; + put 'put ''MDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTUzXHg5ZFx4OWVcdTAxNzhceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4''@;'; + put 'put ''YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx1MTBkMFx1MTBkMVx1MTBkMlx1MTBkM1x1MTBkNFx1MTBkNVx1MTBkNlx1MTBkN1x1MTBkOFx1MTBkOVx1MTBkYVx1MTBkYlx1MTBkY1x1MTBkZFx1MTBkZVx1MTBkZlx1MTBlMFx1MTBlMVx1MTBlMlx1MTBlM1x1MTBlNFx1MTBl''@;'; + put 'put ''NVx1MTBlNlx1MTBlN1x1MTBlOFx1MTBlOVx1MTBlYVx1MTBlYlx1MTBlY1x1MTBlZFx1MTBlZVx1MTBlZlx1MTBmMFx1MTBmMVx1MTBmMlx1MTBmM1x1MTBmNFx1MTBmNVx1MTBmNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx4ZjBceGYxXHhmMlx4ZjNceGY0XHhmNVx4''@;'; + put 'put ''ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNceGZkXHhmZVx4ZmYifSxnZW9yZ2lhbnBzOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwMTYwXHUyMDM5XHUwMTUyXHg4ZFx4OGVceDhmXHg5MFx1''@;'; + put 'put ''MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1MDE2MVx1MjAzYVx1MDE1M1x4OWRceDllXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNc''@;'; + put 'put ''eGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZcdTEwZDBcdTEwZDFcdTEwZDJcdTEwZDNcdTEwZDRcdTEwZDVcdTEwZDZcdTEwZjFcdTEwZDdcdTEwZDhcdTEwZDlcdTEwZGFcdTEwZGJcdTEwZGNcdTEwZjJcdTEwZGRcdTEwZGVcdTEwZGZcdTEwZTBcdTEw''@;'; + put 'put ''ZTFcdTEwZTJcdTEwZjNcdTEwZTNcdTEwZTRcdTEwZTVcdTEwZTZcdTEwZTdcdTEwZThcdTEwZTlcdTEwZWFcdTEwZWJcdTEwZWNcdTEwZWRcdTEwZWVcdTEwZjRcdTEwZWZcdTEwZjBcdTEwZjVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhmMFx4ZjFceGYyXHhm''@;'; + put 'put ''M1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiJ9LHB0MTU0Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQ5Nlx1MDQ5Mlx1MDRlZVx1MDQ5M1x1MjAxZVx1MjAyNlx1MDRiNlx1MDRhZVx1MDRiMlx1MDRhZlx1MDRhMFx1MDRlMlx1MDRhMlx1MDQ5YVx1''@;'; + put 'put ''MDRiYVx1MDRiOFx1MDQ5N1x1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDRiM1x1MDRiN1x1MDRhMVx1MDRlM1x1MDRhM1x1MDQ5Ylx1MDRiYlx1MDRiOVx4YTBcdTA0MGVcdTA0NWVcdTA0MDhcdTA0ZThcdTA0OThcdTA0YjBceGE3XHUwNDAxXHhhOVx1MDRk''@;'; + put 'put ''OFx4YWJceGFjXHUwNGVmXHhhZVx1MDQ5Y1x4YjBcdTA0YjFcdTA0MDZcdTA0NTZcdTA0OTlcdTA0ZTlceGI2XHhiN1x1MDQ1MVx1MjExNlx1MDRkOVx4YmJcdTA0NThcdTA0YWFcdTA0YWJcdTA0OWRcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0''@;'; + put 'put ''MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNc''@;'; + put 'put ''dTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0''@;'; + put 'put ''NGYifSx2aXNjaWk6e3R5cGU6Il9zYmNzIixjaGFyczoiXDBceDAxXHUxZWIyXHgwM1x4MDRcdTFlYjRcdTFlYWFceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHUxZWY2XHgxNVx4MTZceDE3XHgxOFx1MWVmOFx4MWFceDFiXHgxY1x4MWRcdTFlZjRceDFmICFcIiMk''@;'; + put 'put ''JSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTFlYTBcdTFlYWVcdTFlYjBcdTFlYjZcdTFlYTRcdTFlYTZcdTFlYThcdTFlYWNcdTFlYmNcdTFlYjhcdTFlYmVcdTFl''@;'; + put 'put ''YzBcdTFlYzJcdTFlYzRcdTFlYzZcdTFlZDBcdTFlZDJcdTFlZDRcdTFlZDZcdTFlZDhcdTFlZTJcdTFlZGFcdTFlZGNcdTFlZGVcdTFlY2FcdTFlY2VcdTFlY2NcdTFlYzhcdTFlZTZcdTAxNjhcdTFlZTRcdTFlZjJceGQ1XHUxZWFmXHUxZWIxXHUxZWI3XHUxZWE1XHUxZWE3XHUxZWE5XHUx''@;'; + put 'put ''ZWFkXHUxZWJkXHUxZWI5XHUxZWJmXHUxZWMxXHUxZWMzXHUxZWM1XHUxZWM3XHUxZWQxXHUxZWQzXHUxZWQ1XHUxZWQ3XHUxZWUwXHUwMWEwXHUxZWQ5XHUxZWRkXHUxZWRmXHUxZWNiXHUxZWYwXHUxZWU4XHUxZWVhXHUxZWVjXHUwMWExXHUxZWRiXHUwMWFmXHhjMFx4YzFceGMyXHhjM1x1''@;'; + put 'put ''MWVhMlx1MDEwMlx1MWViM1x1MWViNVx4YzhceGM5XHhjYVx1MWViYVx4Y2NceGNkXHUwMTI4XHUxZWYzXHUwMTEwXHUxZWU5XHhkMlx4ZDNceGQ0XHUxZWExXHUxZWY3XHUxZWViXHUxZWVkXHhkOVx4ZGFcdTFlZjlcdTFlZjVceGRkXHUxZWUxXHUwMWIwXHhlMFx4ZTFceGUyXHhlM1x1MWVh''@;'; + put 'put ''M1x1MDEwM1x1MWVlZlx1MWVhYlx4ZThceGU5XHhlYVx1MWViYlx4ZWNceGVkXHUwMTI5XHUxZWM5XHUwMTExXHUxZWYxXHhmMlx4ZjNceGY0XHhmNVx1MWVjZlx1MWVjZFx1MWVlNVx4ZjlceGZhXHUwMTY5XHUxZWU3XHhmZFx1MWVlM1x1MWVlZSJ9LGlzbzY0NmNuOnt0eXBlOiJfc2JjcyIs''@;'; + put 'put ''Y2hhcnM6IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjXHhhNSUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZH''@;'; + put 'put ''SElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fVx1MjAzZVx4N2ZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmQifSxpc282NDZqcDp7dHlwZToiX3NiY3MiLGNoYXJzOiJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJico''@;'; + put 'put ''KSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXHhhNV1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fVx1MjAzZVx4N2ZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; + put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; + put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQifSxocHJvbWFuODp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5''@;'; + put 'put ''Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGMwXHhjMlx4YzhceGNhXHhjYlx4Y2VceGNmXHhiNFx1MDJjYlx1MDJjNlx4YThcdTAyZGNceGQ5XHhkYlx1MjBhNFx4YWZceGRkXHhmZFx4YjBceGM3XHhlN1x4ZDFceGYxXHhhMVx4YmZceGE0XHhhM1x4YTVceGE3''@;'; + put 'put ''XHUwMTkyXHhhMlx4ZTJceGVhXHhmNFx4ZmJceGUxXHhlOVx4ZjNceGZhXHhlMFx4ZThceGYyXHhmOVx4ZTRceGViXHhmNlx4ZmNceGM1XHhlZVx4ZDhceGM2XHhlNVx4ZWRceGY4XHhlNlx4YzRceGVjXHhkNlx4ZGNceGM5XHhlZlx4ZGZceGQ0XHhjMVx4YzNceGUzXHhkMFx4ZjBceGNkXHhj''@;'; + put 'put ''Y1x4ZDNceGQyXHhkNVx4ZjVcdTAxNjBcdTAxNjFceGRhXHUwMTc4XHhmZlx4ZGVceGZlXHhiN1x4YjVceGI2XHhiZVx1MjAxNFx4YmNceGJkXHhhYVx4YmFceGFiXHUyNWEwXHhiYlx4YjFcdWZmZmQifSxtYWNpbnRvc2g6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjNFx4YzVceGM3XHhjOVx4''@;'; + put 'put ''ZDFceGQ2XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx4YjRc''@;'; + put 'put ''eGE4XHUyMjYwXHhjNlx4ZDhcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHhhNVx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAzYzBcdTIyMmJceGFhXHhiYVx1MjEyNlx4ZTZceGY4XHhiZlx4YTFceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHhjMFx4YzNceGQ1''@;'; + put 'put ''XHUwMTUyXHUwMTUzXHUyMDEzXHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MjVjYVx4ZmZcdTAxNzhcdTIwNDRceGE0XHUyMDM5XHUyMDNhXHVmYjAxXHVmYjAyXHUyMDIxXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhj''@;'; + put 'put ''Y1x4ZDNceGQ0XHVmZmZkXHhkMlx4ZGFceGRiXHhkOVx1MDEzMVx1MDJjNlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3In0sYXNjaWk6e3R5cGU6Il9zYmNzIixjaGFyczoiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; + put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; + put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn0sdGlzNjIwOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; + put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGUwMVx1MGUwMlx1MGUwM1x1MGUwNFx1MGUwNVx1MGUw''@;'; + put 'put ''Nlx1MGUwN1x1MGUwOFx1MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUxM1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1MGUxYlx1MGUxY1x1MGUxZFx1MGUxZVx1MGUxZlx1MGUyMFx1MGUyMVx1''@;'; + put 'put ''MGUyMlx1MGUyM1x1MGUyNFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUzNlx1MGUzN1x1MGUzOFx1MGUzOVx1MGUzYVx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; + put 'put ''ZFx1ZmZmZFx1MGUzZlx1MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1''@;'; + put 'put ''MGU1OVx1MGU1YVx1MGU1Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9fX0sNjg2MTk6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz17MTAwMjk6Im1hY2NlbnRldXJvIixtYWNjZW50ZXVybzp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM0XHUwMTAwXHUwMTAxXHhjOVx1MDEwNFx4ZDZc''@;'; + put 'put ''eGRjXHhlMVx1MDEwNVx1MDEwY1x4ZTRcdTAxMGRcdTAxMDZcdTAxMDdceGU5XHUwMTc5XHUwMTdhXHUwMTBlXHhlZFx1MDEwZlx1MDExMlx1MDExM1x1MDExNlx4ZjNcdTAxMTdceGY0XHhmNlx4ZjVceGZhXHUwMTFhXHUwMTFiXHhmY1x1MjAyMFx4YjBcdTAxMThceGEzXHhhN1x1MjAyMlx4''@;'; + put 'put ''YjZceGRmXHhhZVx4YTlcdTIxMjJcdTAxMTlceGE4XHUyMjYwXHUwMTIzXHUwMTJlXHUwMTJmXHUwMTJhXHUyMjY0XHUyMjY1XHUwMTJiXHUwMTM2XHUyMjAyXHUyMjExXHUwMTQyXHUwMTNiXHUwMTNjXHUwMTNkXHUwMTNlXHUwMTM5XHUwMTNhXHUwMTQ1XHUwMTQ2XHUwMTQzXHhhY1x1MjIx''@;'; + put 'put ''YVx1MDE0NFx1MDE0N1x1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx1MDE0OFx1MDE1MFx4ZDVcdTAxNTFcdTAxNGNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHUwMTRkXHUwMTU0XHUwMTU1XHUwMTU4XHUyMDM5XHUyMDNhXHUwMTU5XHUwMTU2XHUwMTU3''@;'; + put 'put ''XHUwMTYwXHUyMDFhXHUyMDFlXHUwMTYxXHUwMTVhXHUwMTViXHhjMVx1MDE2NFx1MDE2NVx4Y2RcdTAxN2RcdTAxN2VcdTAxNmFceGQzXHhkNFx1MDE2Ylx1MDE2ZVx4ZGFcdTAxNmZcdTAxNzBcdTAxNzFcdTAxNzJcdTAxNzNceGRkXHhmZFx1MDEzN1x1MDE3Ylx1MDE0MVx1MDE3Y1x1MDEy''@;'; + put 'put ''Mlx1MDJjNyJ9LDgwODoiY3A4MDgiLGlibTgwODoiY3A4MDgiLGNwODA4Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQy''@;'; + put 'put ''MFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1''@;'; + put 'put ''MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1''@;'; + put 'put ''Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1''@;'; + put 'put ''MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MDQwMVx1MDQ1MVx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwZVx1MDQ1ZVx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMTE2XHUyMGFjXHUyNWEwXHhh''@;'; + put 'put ''MCJ9LG1pazp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0''@;'; + put 'put ''MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFc''@;'; + put 'put ''dTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NjNcdTI1NTFcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1''@;'; + put 'put ''NTBcdTI1NmNcdTI1MTBcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTIxMTZceGE3XHUyNTU3XHUyNTVkXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThc''@;'; + put 'put ''dTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxjcDcyMDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ZTlceGUy''@;'; + put 'put ''XHg4NFx4ZTBceDg2XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHg4ZFx4OGVceDhmXHg5MFx1MDY1MVx1MDY1Mlx4ZjRceGE0XHUwNjQwXHhmYlx4ZjlcdTA2MjFcdTA2MjJcdTA2MjNcdTA2MjRceGEzXHUwNjI1XHUwNjI2XHUwNjI3XHUwNjI4XHUwNjI5XHUwNjJhXHUwNjJiXHUwNjJjXHUw''@;'; + put 'put ''NjJkXHUwNjJlXHUwNjJmXHUwNjMwXHUwNjMxXHUwNjMyXHUwNjMzXHUwNjM0XHUwNjM1XHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1''@;'; + put 'put ''MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRc''@;'; + put 'put ''dTI1OGNcdTI1OTBcdTI1ODBcdTA2MzZcdTA2MzdcdTA2MzhcdTA2MzlcdTA2M2FcdTA2NDFceGI1XHUwNjQyXHUwNjQzXHUwNjQ0XHUwNjQ1XHUwNjQ2XHUwNjQ3XHUwNjQ4XHUwNjQ5XHUwNjRhXHUyMjYxXHUwNjRiXHUwNjRjXHUwNjRkXHUwNjRlXHUwNjRmXHUwNjUwXHUyMjQ4XHhiMFx1''@;'; + put 'put ''MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGFzY2lpOGJpdDoiYXNjaWkiLHVzYXNjaWk6ImFzY2lpIixhbnNpeDM0OiJhc2NpaSIsYW5zaXgzNDE5Njg6ImFzY2lpIixhbnNpeDM0MTk4NjoiYXNjaWkiLGNzYXNjaWk6ImFzY2lpIixjcDM2NzoiYXNjaWkiLGlibTM2Nzoi''@;'; + put 'put ''YXNjaWkiLGlzb2lyNjoiYXNjaWkiLGlzbzY0NnVzOiJhc2NpaSIsaXNvNjQ2aXJ2OiJhc2NpaSIsdXM6ImFzY2lpIixsYXRpbjE6Imlzbzg4NTkxIixsYXRpbjI6Imlzbzg4NTkyIixsYXRpbjM6Imlzbzg4NTkzIixsYXRpbjQ6Imlzbzg4NTk0IixsYXRpbjU6Imlzbzg4NTk5IixsYXRpbjY6''@;'; + put 'put ''Imlzbzg4NTkxMCIsbGF0aW43OiJpc284ODU5MTMiLGxhdGluODoiaXNvODg1OTE0IixsYXRpbjk6Imlzbzg4NTkxNSIsbGF0aW4xMDoiaXNvODg1OTE2Iixjc2lzb2xhdGluMToiaXNvODg1OTEiLGNzaXNvbGF0aW4yOiJpc284ODU5MiIsY3Npc29sYXRpbjM6Imlzbzg4NTkzIixjc2lzb2xh''@;'; + put 'put ''dGluNDoiaXNvODg1OTQiLGNzaXNvbGF0aW5jeXJpbGxpYzoiaXNvODg1OTUiLGNzaXNvbGF0aW5hcmFiaWM6Imlzbzg4NTk2Iixjc2lzb2xhdGluZ3JlZWs6Imlzbzg4NTk3Iixjc2lzb2xhdGluaGVicmV3OiJpc284ODU5OCIsY3Npc29sYXRpbjU6Imlzbzg4NTk5Iixjc2lzb2xhdGluNjoi''@;'; + put 'put ''aXNvODg1OTEwIixsMToiaXNvODg1OTEiLGwyOiJpc284ODU5MiIsbDM6Imlzbzg4NTkzIixsNDoiaXNvODg1OTQiLGw1OiJpc284ODU5OSIsbDY6Imlzbzg4NTkxMCIsbDc6Imlzbzg4NTkxMyIsbDg6Imlzbzg4NTkxNCIsbDk6Imlzbzg4NTkxNSIsbDEwOiJpc284ODU5MTYiLGlzb2lyMTQ6''@;'; + put 'put ''ImlzbzY0NmpwIixpc29pcjU3OiJpc282NDZjbiIsaXNvaXIxMDA6Imlzbzg4NTkxIixpc29pcjEwMToiaXNvODg1OTIiLGlzb2lyMTA5OiJpc284ODU5MyIsaXNvaXIxMTA6Imlzbzg4NTk0Iixpc29pcjE0NDoiaXNvODg1OTUiLGlzb2lyMTI3OiJpc284ODU5NiIsaXNvaXIxMjY6Imlzbzg4''@;'; + put 'put ''NTk3Iixpc29pcjEzODoiaXNvODg1OTgiLGlzb2lyMTQ4OiJpc284ODU5OSIsaXNvaXIxNTc6Imlzbzg4NTkxMCIsaXNvaXIxNjY6InRpczYyMCIsaXNvaXIxNzk6Imlzbzg4NTkxMyIsaXNvaXIxOTk6Imlzbzg4NTkxNCIsaXNvaXIyMDM6Imlzbzg4NTkxNSIsaXNvaXIyMjY6Imlzbzg4NTkx''@;'; + put 'put ''NiIsY3A4MTk6Imlzbzg4NTkxIixpYm04MTk6Imlzbzg4NTkxIixjeXJpbGxpYzoiaXNvODg1OTUiLGFyYWJpYzoiaXNvODg1OTYiLGFyYWJpYzg6Imlzbzg4NTk2IixlY21hMTE0OiJpc284ODU5NiIsYXNtbzcwODoiaXNvODg1OTYiLGdyZWVrOiJpc284ODU5NyIsZ3JlZWs4OiJpc284ODU5''@;'; + put 'put ''NyIsZWNtYTExODoiaXNvODg1OTciLGVsb3Q5Mjg6Imlzbzg4NTk3IixoZWJyZXc6Imlzbzg4NTk4IixoZWJyZXc4OiJpc284ODU5OCIsdHVya2lzaDoiaXNvODg1OTkiLHR1cmtpc2g4OiJpc284ODU5OSIsdGhhaToiaXNvODg1OTExIix0aGFpODoiaXNvODg1OTExIixjZWx0aWM6Imlzbzg4''@;'; + put 'put ''NTkxNCIsY2VsdGljODoiaXNvODg1OTE0Iixpc29jZWx0aWM6Imlzbzg4NTkxNCIsdGlzNjIwMDoidGlzNjIwIix0aXM2MjAyNTI5MToidGlzNjIwIix0aXM2MjAyNTMzMDoidGlzNjIwIiwxZTQ6Im1hY3JvbWFuIiwxMDAwNjoibWFjZ3JlZWsiLDEwMDA3OiJtYWNjeXJpbGxpYyIsMTAwNzk6''@;'; + put 'put ''Im1hY2ljZWxhbmQiLDEwMDgxOiJtYWN0dXJraXNoIixjc3BjOGNvZGVwYWdlNDM3OiJjcDQzNyIsY3NwYzc3NWJhbHRpYzoiY3A3NzUiLGNzcGM4NTBtdWx0aWxpbmd1YWw6ImNwODUwIixjc3BjcDg1MjoiY3A4NTIiLGNzcGM4NjJsYXRpbmhlYnJldzoiY3A4NjIiLGNwZ3I6ImNwODY5Iixt''@;'; + put 'put ''c2VlOiJjcDEyNTAiLG1zY3lybDoiY3AxMjUxIixtc2Fuc2k6ImNwMTI1MiIsbXNncmVlazoiY3AxMjUzIixtc3R1cms6ImNwMTI1NCIsbXNoZWJyOiJjcDEyNTUiLG1zYXJhYjoiY3AxMjU2Iix3aW5iYWx0cmltOiJjcDEyNTciLGNwMjA4NjY6ImtvaThyIiwyMDg2Njoia29pOHIiLGlibTg3''@;'; + put 'put ''ODoia29pOHIiLGNza29pOHI6ImtvaThyIixjcDIxODY2OiJrb2k4dSIsMjE4NjY6ImtvaTh1IixpYm0xMTY4OiJrb2k4dSIsc3RyazEwNDgyMDAyOiJyazEwNDgiLHRjdm41NzEyOiJ0Y3ZuIix0Y3ZuNTcxMjE6InRjdm4iLGdiMTk4ODgwOiJpc282NDZjbiIsY246ImlzbzY0NmNuIixjc2lz''@;'; + put 'put ''bzE0amlzYzYyMjBybzoiaXNvNjQ2anAiLGppc2M2MjIwMTk2OXJvOiJpc282NDZqcCIsanA6ImlzbzY0NmpwIixjc2hwcm9tYW44OiJocHJvbWFuOCIscjg6Imhwcm9tYW44Iixyb21hbjg6Imhwcm9tYW44Iix4cm9tYW44OiJocHJvbWFuOCIsaWJtMTA1MToiaHByb21hbjgiLG1hYzoibWFj''@;'; + put 'put ''aW50b3NoIixjc21hY2ludG9zaDoibWFjaW50b3NoIn19LDkzNzYwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MjAzOCkuQnVmZmVyO2Z1bmN0aW9uIEIoKXt9ZnVuY3Rpb24gRSgpe31mdW5jdGlvbiBNZSgpe3RoaXMub3ZlcmZsb3dCeXRlPS0xfWZ1bmN0aW9uIFUobGUs''@;'; + put 'put ''WSl7dGhpcy5pY29udj1ZfWZ1bmN0aW9uIFEobGUsWSl7dm9pZCAwPT09KGxlPWxlfHx7fSkuYWRkQk9NJiYobGUuYWRkQk9NPSEwKSx0aGlzLmVuY29kZXI9WS5pY29udi5nZXRFbmNvZGVyKCJ1dGYtMTZsZSIsbGUpfWZ1bmN0aW9uIFoobGUsWSl7dGhpcy5kZWNvZGVyPW51bGwsdGhpcy5p''@;'; + put 'put ''bml0aWFsQnl0ZXM9W10sdGhpcy5pbml0aWFsQnl0ZXNMZW49MCx0aGlzLm9wdGlvbnM9bGV8fHt9LHRoaXMuaWNvbnY9WS5pY29udn1mdW5jdGlvbiBpZShsZSxZKXt2YXIgVz1ZfHwidXRmLTE2bGUiO2lmKGxlLmxlbmd0aD49MilpZigyNTQ9PWxlWzBdJiYyNTU9PWxlWzFdKVc9InV0Zi0x''@;'; + put 'put ''NmJlIjtlbHNlIGlmKDI1NT09bGVbMF0mJjI1ND09bGVbMV0pVz0idXRmLTE2bGUiO2Vsc2V7Zm9yKHZhciBOPTAsZWU9MCxxPU1hdGgubWluKGxlLmxlbmd0aC1sZS5sZW5ndGglMiw2NCksSj0wO0o8cTtKKz0yKTA9PT1sZVtKXSYmMCE9PWxlW0orMV0mJmVlKyssMCE9PWxlW0pdJiYwPT09''@;'; + put 'put ''bGVbSisxXSYmTisrO2VlPk4/Vz0idXRmLTE2YmUiOmVlPE4mJihXPSJ1dGYtMTZsZSIpfXJldHVybiBXfUplLnV0ZjE2YmU9QixCLnByb3RvdHlwZS5lbmNvZGVyPUUsQi5wcm90b3R5cGUuZGVjb2Rlcj1NZSxCLnByb3RvdHlwZS5ib21Bd2FyZT0hMCxFLnByb3RvdHlwZS53cml0ZT1mdW5j''@;'; + put 'put ''dGlvbihsZSl7Zm9yKHZhciBZPW1lLmZyb20obGUsInVjczIiKSxXPTA7VzxZLmxlbmd0aDtXKz0yKXt2YXIgTj1ZW1ddO1lbV109WVtXKzFdLFlbVysxXT1OfXJldHVybiBZfSxFLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt9LE1lLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihsZSl7aWYo''@;'; + put 'put ''MD09bGUubGVuZ3RoKXJldHVybiIiO3ZhciBZPW1lLmFsbG9jKGxlLmxlbmd0aCsxKSxXPTAsTj0wO2ZvcigtMSE9PXRoaXMub3ZlcmZsb3dCeXRlJiYoWVswXT1sZVswXSxZWzFdPXRoaXMub3ZlcmZsb3dCeXRlLFc9MSxOPTIpO1c8bGUubGVuZ3RoLTE7Vys9MixOKz0yKVlbTl09bGVbVysx''@;'; + put 'put ''XSxZW04rMV09bGVbV107cmV0dXJuIHRoaXMub3ZlcmZsb3dCeXRlPVc9PWxlLmxlbmd0aC0xP2xlW2xlLmxlbmd0aC0xXTotMSxZLnNsaWNlKDAsTikudG9TdHJpbmcoInVjczIiKX0sTWUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe30sSmUudXRmMTY9VSxVLnByb3RvdHlwZS5lbmNvZGVy''@;'; + put 'put ''PVEsVS5wcm90b3R5cGUuZGVjb2Rlcj1aLFEucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGxlKXtyZXR1cm4gdGhpcy5lbmNvZGVyLndyaXRlKGxlKX0sUS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5jb2Rlci5lbmQoKX0sWi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rp''@;'; + put 'put ''b24obGUpe2lmKCF0aGlzLmRlY29kZXIpe2lmKHRoaXMuaW5pdGlhbEJ5dGVzLnB1c2gobGUpLHRoaXMuaW5pdGlhbEJ5dGVzTGVuKz1sZS5sZW5ndGgsdGhpcy5pbml0aWFsQnl0ZXNMZW48MTYpcmV0dXJuIiI7dmFyIFk9aWUobGU9bWUuY29uY2F0KHRoaXMuaW5pdGlhbEJ5dGVzKSx0aGlz''@;'; + put 'put ''Lm9wdGlvbnMuZGVmYXVsdEVuY29kaW5nKTt0aGlzLmRlY29kZXI9dGhpcy5pY29udi5nZXREZWNvZGVyKFksdGhpcy5vcHRpb25zKSx0aGlzLmluaXRpYWxCeXRlcy5sZW5ndGg9dGhpcy5pbml0aWFsQnl0ZXNMZW49MH1yZXR1cm4gdGhpcy5kZWNvZGVyLndyaXRlKGxlKX0sWi5wcm90b3R5''@;'; + put 'put ''cGUuZW5kPWZ1bmN0aW9uKCl7aWYoIXRoaXMuZGVjb2Rlcil7dmFyIGxlPW1lLmNvbmNhdCh0aGlzLmluaXRpYWxCeXRlcyksWT1pZShsZSx0aGlzLm9wdGlvbnMuZGVmYXVsdEVuY29kaW5nKTt0aGlzLmRlY29kZXI9dGhpcy5pY29udi5nZXREZWNvZGVyKFksdGhpcy5vcHRpb25zKTt2YXIg''@;'; + put 'put ''Vz10aGlzLmRlY29kZXIud3JpdGUobGUpLE49dGhpcy5kZWNvZGVyLmVuZCgpO3JldHVybiBOP1crTjpXfXJldHVybiB0aGlzLmRlY29kZXIuZW5kKCl9fSw4MjYwNjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNjIwMzgpLkJ1ZmZlcjtmdW5jdGlvbiBCKGxlLFkpe3RoaXMu''@;'; + put 'put ''aWNvbnY9WSx0aGlzLmJvbUF3YXJlPSEwLHRoaXMuaXNMRT1sZS5pc0xFfWZ1bmN0aW9uIEUobGUsWSl7dGhpcy5pc0xFPVkuaXNMRSx0aGlzLmhpZ2hTdXJyb2dhdGU9MH1mdW5jdGlvbiBNZShsZSxZKXt0aGlzLmlzTEU9WS5pc0xFLHRoaXMuYmFkQ2hhcj1ZLmljb252LmRlZmF1bHRDaGFy''@;'; + put 'put ''VW5pY29kZS5jaGFyQ29kZUF0KDApLHRoaXMub3ZlcmZsb3c9bnVsbH1mdW5jdGlvbiBVKGxlLFkpe3RoaXMuaWNvbnY9WX1mdW5jdGlvbiBRKGxlLFkpe3ZvaWQgMD09PShsZT1sZXx8e30pLmFkZEJPTSYmKGxlLmFkZEJPTT0hMCksdGhpcy5lbmNvZGVyPVkuaWNvbnYuZ2V0RW5jb2Rlcihs''@;'; + put 'put ''ZS5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGYtMzJsZSIsbGUpfWZ1bmN0aW9uIFoobGUsWSl7dGhpcy5kZWNvZGVyPW51bGwsdGhpcy5pbml0aWFsQnl0ZXM9W10sdGhpcy5pbml0aWFsQnl0ZXNMZW49MCx0aGlzLm9wdGlvbnM9bGV8fHt9LHRoaXMuaWNvbnY9WS5pY29udn1mdW5jdGlvbiBpZShs''@;'; + put 'put ''ZSxZKXt2YXIgVz1ZfHwidXRmLTMybGUiO2lmKGxlLmxlbmd0aD49NClpZig2NTI3OT09PWxlLnJlYWRVSW50MzJCRSgwKSlXPSJ1dGYtMzJiZSI7ZWxzZSBpZig2NTI3OT09PWxlLnJlYWRVSW50MzJMRSgwKSlXPSJ1dGYtMzJsZSI7ZWxzZXtmb3IodmFyIE49MCxlZT0wLHE9MCxKPTAsc2U9''@;'; + put 'put ''TWF0aC5taW4obGUubGVuZ3RoLWxlLmxlbmd0aCU0LDEyOCksb2U9MDtvZTxzZTtvZSs9NCl7dmFyIGNlPWxlW29lXSxkZT1sZVtvZSsxXSx2ZT1sZVtvZSsyXSxBZT1sZVtvZSszXTsoMCE9PWNlfHxkZT4xNikmJisrZWUsKDAhPT1BZXx8dmU+MTYpJiYrK04sMD09PWNlJiYwPT09ZGUmJjA9''@;'; + put 'put ''PT12ZSYmMCE9PUFlJiZKKyssMCE9PWNlJiYwPT09ZGUmJjA9PT12ZSYmMD09PUFlJiZxKyt9ZWU8Tj9XPSJ1dGYtMzJiZSI6TjxlZSYmKFc9InV0Zi0zMmxlIiksSj5xP1c9InV0Zi0zMmJlIjpKPHEmJihXPSJ1dGYtMzJsZSIpfXJldHVybiBXfUplLl91dGYzMj1CLEplLnV0ZjMybGU9e3R5''@;'; + put 'put ''cGU6Il91dGYzMiIsaXNMRTohMH0sSmUudXRmMzJiZT17dHlwZToiX3V0ZjMyIixpc0xFOiExfSxKZS51Y3M0bGU9InV0ZjMybGUiLEplLnVjczRiZT0idXRmMzJiZSIsQi5wcm90b3R5cGUuZW5jb2Rlcj1FLEIucHJvdG90eXBlLmRlY29kZXI9TWUsRS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rp''@;'; + put 'put ''b24obGUpe2Zvcih2YXIgWT1tZS5mcm9tKGxlLCJ1Y3MyIiksVz1tZS5hbGxvYygyKlkubGVuZ3RoKSxOPXRoaXMuaXNMRT9XLndyaXRlVUludDMyTEU6Vy53cml0ZVVJbnQzMkJFLGVlPTAscT0wO3E8WS5sZW5ndGg7cSs9Mil7dmFyIEo9WS5yZWFkVUludDE2TEUocSksc2U9NTUyOTY8PUom''@;'; + put 'put ''Jko8NTYzMjA7aWYodGhpcy5oaWdoU3Vycm9nYXRlKXtpZighc2UmJjU2MzIwPD1KJiZKPDU3MzQ0KXtOLmNhbGwoVyw2NTUzNisodGhpcy5oaWdoU3Vycm9nYXRlLTU1Mjk2PDwxMHxKLTU2MzIwKSxlZSksZWUrPTQsdGhpcy5oaWdoU3Vycm9nYXRlPTA7Y29udGludWV9Ti5jYWxsKFcsdGhp''@;'; + put 'put ''cy5oaWdoU3Vycm9nYXRlLGVlKSxlZSs9NH1zZT90aGlzLmhpZ2hTdXJyb2dhdGU9SjooTi5jYWxsKFcsSixlZSksZWUrPTQsdGhpcy5oaWdoU3Vycm9nYXRlPTApfXJldHVybiBlZTxXLmxlbmd0aCYmKFc9Vy5zbGljZSgwLGVlKSksV30sRS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7aWYo''@;'; + put 'put ''dGhpcy5oaWdoU3Vycm9nYXRlKXt2YXIgbGU9bWUuYWxsb2MoNCk7cmV0dXJuIHRoaXMuaXNMRT9sZS53cml0ZVVJbnQzMkxFKHRoaXMuaGlnaFN1cnJvZ2F0ZSwwKTpsZS53cml0ZVVJbnQzMkJFKHRoaXMuaGlnaFN1cnJvZ2F0ZSwwKSx0aGlzLmhpZ2hTdXJyb2dhdGU9MCxsZX19LE1lLnBy''@;'; + put 'put ''b3RvdHlwZS53cml0ZT1mdW5jdGlvbihsZSl7aWYoMD09PWxlLmxlbmd0aClyZXR1cm4iIjt0aGlzLm92ZXJmbG93JiYobGU9bWUuY29uY2F0KFt0aGlzLm92ZXJmbG93LGxlXSkpO3ZhciBZPWxlLmxlbmd0aC1sZS5sZW5ndGglNDtsZS5sZW5ndGghPT1ZPyh0aGlzLm92ZXJmbG93PWxlLnNs''@;'; + put 'put ''aWNlKFkpLGxlPWxlLnNsaWNlKDAsWSkpOnRoaXMub3ZlcmZsb3c9bnVsbDtmb3IodmFyIFc9bWUuYWxsb2MoWSksTj0wLGVlPTA7ZWU8WTtlZSs9NCl7dmFyIHE9dGhpcy5pc0xFP2xlLnJlYWRVSW50MzJMRShlZSk6bGUucmVhZFVJbnQzMkJFKGVlKTtpZihxPDY1NTM2KVcud3JpdGVVSW50''@;'; + put 'put ''MTZMRShxLE4pLE4rPTI7ZWxzZSBpZihxPjExMTQxMTEpVy53cml0ZVVJbnQxNkxFKHRoaXMuYmFkQ2hhcixOKSxOKz0yO2Vsc2V7dmFyIHNlPTU2MzIwKygxMDIzJihxLT02NTUzNikpO1cud3JpdGVVSW50MTZMRSg1NTI5NnxxPj4xMCxOKSxXLndyaXRlVUludDE2TEUoc2UsTis9MiksTis9''@;'; + put 'put ''Mn19cmV0dXJuIFcuc2xpY2UoMCxOKS50b1N0cmluZygidWNzMiIpfSxNZS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7dGhpcy5vdmVyZmxvdz1udWxsfSxKZS51dGYzMj1VLEplLnVjczQ9VSxVLnByb3RvdHlwZS5lbmNvZGVyPVEsVS5wcm90b3R5cGUuZGVjb2Rlcj1aLFEucHJvdG90eXBl''@;'; + put 'put ''LndyaXRlPWZ1bmN0aW9uKGxlKXtyZXR1cm4gdGhpcy5lbmNvZGVyLndyaXRlKGxlKX0sUS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5jb2Rlci5lbmQoKX0sWi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24obGUpe2lmKCF0aGlzLmRlY29kZXIpe2lmKHRoaXMuaW5p''@;'; + put 'put ''dGlhbEJ5dGVzLnB1c2gobGUpLHRoaXMuaW5pdGlhbEJ5dGVzTGVuKz1sZS5sZW5ndGgsdGhpcy5pbml0aWFsQnl0ZXNMZW48MzIpcmV0dXJuIiI7dmFyIFc9aWUobWUuY29uY2F0KHRoaXMuaW5pdGlhbEJ5dGVzKSx0aGlzLm9wdGlvbnMuZGVmYXVsdEVuY29kaW5nKTt0aGlzLmRlY29kZXI9''@;'; + put 'put ''dGhpcy5pY29udi5nZXREZWNvZGVyKFcsdGhpcy5vcHRpb25zKSx0aGlzLmluaXRpYWxCeXRlcy5sZW5ndGg9dGhpcy5pbml0aWFsQnl0ZXNMZW49MH1yZXR1cm4gdGhpcy5kZWNvZGVyLndyaXRlKGxlKX0sWi5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7aWYoIXRoaXMuZGVjb2Rlcil7dmFy''@;'; + put 'put ''IGxlPW1lLmNvbmNhdCh0aGlzLmluaXRpYWxCeXRlcyksWT1pZShsZSx0aGlzLm9wdGlvbnMuZGVmYXVsdEVuY29kaW5nKTt0aGlzLmRlY29kZXI9dGhpcy5pY29udi5nZXREZWNvZGVyKFksdGhpcy5vcHRpb25zKTt2YXIgVz10aGlzLmRlY29kZXIud3JpdGUobGUpLE49dGhpcy5kZWNvZGVy''@;'; + put 'put ''LmVuZCgpO3JldHVybiBOP1crTjpXfXJldHVybiB0aGlzLmRlY29kZXIuZW5kKCl9fSwyODc3ODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNjIwMzgpLkJ1ZmZlcjtmdW5jdGlvbiBCKHNlLG9lKXt0aGlzLmljb252PW9lfUplLnV0Zjc9QixKZS51bmljb2RlMTF1dGY3PSJ1''@;'; + put 'put ''dGY3IixCLnByb3RvdHlwZS5lbmNvZGVyPU1lLEIucHJvdG90eXBlLmRlY29kZXI9VSxCLnByb3RvdHlwZS5ib21Bd2FyZT0hMDt2YXIgRT0vW15BLVphLXowLTknXChcKSwtXC5cLzpcPyBcblxyXHRdKy9nO2Z1bmN0aW9uIE1lKHNlLG9lKXt0aGlzLmljb252PW9lLmljb252fWZ1bmN0aW9u''@;'; + put 'put ''IFUoc2Usb2Upe3RoaXMuaWNvbnY9b2UuaWNvbnYsdGhpcy5pbkJhc2U2ND0hMSx0aGlzLmJhc2U2NEFjY3VtPSIifU1lLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihzZSl7cmV0dXJuIG1lLmZyb20oc2UucmVwbGFjZShFLGZ1bmN0aW9uKG9lKXtyZXR1cm4iKyIrKCIrIj09PW9lPyIiOnRo''@;'; + put 'put ''aXMuaWNvbnYuZW5jb2RlKG9lLCJ1dGYxNi1iZSIpLnRvU3RyaW5nKCJiYXNlNjQiKS5yZXBsYWNlKC89KyQvLCIiKSkrIi0ifS5iaW5kKHRoaXMpKSl9LE1lLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt9O2Zvcih2YXIgUT0vW0EtWmEtejAtOVwvK10vLFo9W10saWU9MDtpZTwyNTY7aWUr''@;'; + put 'put ''KylaW2llXT1RLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShpZSkpO3ZhciBsZT0iKyIuY2hhckNvZGVBdCgwKSxZPSItIi5jaGFyQ29kZUF0KDApLFc9IiYiLmNoYXJDb2RlQXQoMCk7ZnVuY3Rpb24gTihzZSxvZSl7dGhpcy5pY29udj1vZX1mdW5jdGlvbiBlZShzZSxvZSl7dGhpcy5pY29u''@;'; + put 'put ''dj1vZS5pY29udix0aGlzLmluQmFzZTY0PSExLHRoaXMuYmFzZTY0QWNjdW09bWUuYWxsb2MoNiksdGhpcy5iYXNlNjRBY2N1bUlkeD0wfWZ1bmN0aW9uIHEoc2Usb2Upe3RoaXMuaWNvbnY9b2UuaWNvbnYsdGhpcy5pbkJhc2U2ND0hMSx0aGlzLmJhc2U2NEFjY3VtPSIifVUucHJvdG90eXBl''@;'; + put 'put ''LndyaXRlPWZ1bmN0aW9uKHNlKXtmb3IodmFyIG9lPSIiLGNlPTAsZGU9dGhpcy5pbkJhc2U2NCx2ZT10aGlzLmJhc2U2NEFjY3VtLEFlPTA7QWU8c2UubGVuZ3RoO0FlKyspaWYoZGUpe2lmKCFaW3NlW0FlXV0pe2lmKEFlPT1jZSYmc2VbQWVdPT1ZKW9lKz0iKyI7ZWxzZXt2YXIga2U9dmUr''@;'; + put 'put ''c2Uuc2xpY2UoY2UsQWUpLnRvU3RyaW5nKCk7b2UrPXRoaXMuaWNvbnYuZGVjb2RlKG1lLmZyb20oa2UsImJhc2U2NCIpLCJ1dGYxNi1iZSIpfXNlW0FlXSE9WSYmQWUtLSxjZT1BZSsxLGRlPSExLHZlPSIifX1lbHNlIHNlW0FlXT09bGUmJihvZSs9dGhpcy5pY29udi5kZWNvZGUoc2Uuc2xp''@;'; + put 'put ''Y2UoY2UsQWUpLCJhc2NpaSIpLGNlPUFlKzEsZGU9ITApO2lmKGRlKXt2YXIgU2U9KGtlPXZlK3NlLnNsaWNlKGNlKS50b1N0cmluZygpKS5sZW5ndGgta2UubGVuZ3RoJTg7dmU9a2Uuc2xpY2UoU2UpLGtlPWtlLnNsaWNlKDAsU2UpLG9lKz10aGlzLmljb252LmRlY29kZShtZS5mcm9tKGtl''@;'; + put 'put ''LCJiYXNlNjQiKSwidXRmMTYtYmUiKX1lbHNlIG9lKz10aGlzLmljb252LmRlY29kZShzZS5zbGljZShjZSksImFzY2lpIik7cmV0dXJuIHRoaXMuaW5CYXNlNjQ9ZGUsdGhpcy5iYXNlNjRBY2N1bT12ZSxvZX0sVS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7dmFyIHNlPSIiO3JldHVybiB0''@;'; + put 'put ''aGlzLmluQmFzZTY0JiZ0aGlzLmJhc2U2NEFjY3VtLmxlbmd0aD4wJiYoc2U9dGhpcy5pY29udi5kZWNvZGUobWUuZnJvbSh0aGlzLmJhc2U2NEFjY3VtLCJiYXNlNjQiKSwidXRmMTYtYmUiKSksdGhpcy5pbkJhc2U2ND0hMSx0aGlzLmJhc2U2NEFjY3VtPSIiLHNlfSxKZS51dGY3aW1hcD1O''@;'; + put 'put ''LE4ucHJvdG90eXBlLmVuY29kZXI9ZWUsTi5wcm90b3R5cGUuZGVjb2Rlcj1xLE4ucHJvdG90eXBlLmJvbUF3YXJlPSEwLGVlLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihzZSl7Zm9yKHZhciBvZT10aGlzLmluQmFzZTY0LGNlPXRoaXMuYmFzZTY0QWNjdW0sZGU9dGhpcy5iYXNlNjRBY2N1''@;'; + put 'put ''bUlkeCx2ZT1tZS5hbGxvYyg1KnNlLmxlbmd0aCsxMCksQWU9MCxrZT0wO2tlPHNlLmxlbmd0aDtrZSsrKXt2YXIgU2U9c2UuY2hhckNvZGVBdChrZSk7MzI8PVNlJiZTZTw9MTI2PyhvZSYmKGRlPjAmJihBZSs9dmUud3JpdGUoY2Uuc2xpY2UoMCxkZSkudG9TdHJpbmcoImJhc2U2NCIpLnJl''@;'; + put 'put ''cGxhY2UoL1wvL2csIiwiKS5yZXBsYWNlKC89KyQvLCIiKSxBZSksZGU9MCksdmVbQWUrK109WSxvZT0hMSksb2V8fCh2ZVtBZSsrXT1TZSxTZT09PVcmJih2ZVtBZSsrXT1ZKSkpOihvZXx8KHZlW0FlKytdPVcsb2U9ITApLG9lJiYoY2VbZGUrK109U2U+PjgsY2VbZGUrK109MjU1JlNlLGRl''@;'; + put 'put ''PT1jZS5sZW5ndGgmJihBZSs9dmUud3JpdGUoY2UudG9TdHJpbmcoImJhc2U2NCIpLnJlcGxhY2UoL1wvL2csIiwiKSxBZSksZGU9MCkpKX1yZXR1cm4gdGhpcy5pbkJhc2U2ND1vZSx0aGlzLmJhc2U2NEFjY3VtSWR4PWRlLHZlLnNsaWNlKDAsQWUpfSxlZS5wcm90b3R5cGUuZW5kPWZ1bmN0''@;'; + put 'put ''aW9uKCl7dmFyIHNlPW1lLmFsbG9jKDEwKSxvZT0wO3JldHVybiB0aGlzLmluQmFzZTY0JiYodGhpcy5iYXNlNjRBY2N1bUlkeD4wJiYob2UrPXNlLndyaXRlKHRoaXMuYmFzZTY0QWNjdW0uc2xpY2UoMCx0aGlzLmJhc2U2NEFjY3VtSWR4KS50b1N0cmluZygiYmFzZTY0IikucmVwbGFjZSgv''@;'; + put 'put ''XC8vZywiLCIpLnJlcGxhY2UoLz0rJC8sIiIpLG9lKSx0aGlzLmJhc2U2NEFjY3VtSWR4PTApLHNlW29lKytdPVksdGhpcy5pbkJhc2U2ND0hMSksc2Uuc2xpY2UoMCxvZSl9O3ZhciBKPVouc2xpY2UoKTtKWyIsIi5jaGFyQ29kZUF0KDApXT0hMCxxLnByb3RvdHlwZS53cml0ZT1mdW5jdGlv''@;'; + put 'put ''bihzZSl7Zm9yKHZhciBvZT0iIixjZT0wLGRlPXRoaXMuaW5CYXNlNjQsdmU9dGhpcy5iYXNlNjRBY2N1bSxBZT0wO0FlPHNlLmxlbmd0aDtBZSsrKWlmKGRlKXtpZighSltzZVtBZV1dKXtpZihBZT09Y2UmJnNlW0FlXT09WSlvZSs9IiYiO2Vsc2V7dmFyIGtlPXZlK3NlLnNsaWNlKGNlLEFl''@;'; + put 'put ''KS50b1N0cmluZygpLnJlcGxhY2UoLywvZywiLyIpO29lKz10aGlzLmljb252LmRlY29kZShtZS5mcm9tKGtlLCJiYXNlNjQiKSwidXRmMTYtYmUiKX1zZVtBZV0hPVkmJkFlLS0sY2U9QWUrMSxkZT0hMSx2ZT0iIn19ZWxzZSBzZVtBZV09PVcmJihvZSs9dGhpcy5pY29udi5kZWNvZGUoc2Uu''@;'; + put 'put ''c2xpY2UoY2UsQWUpLCJhc2NpaSIpLGNlPUFlKzEsZGU9ITApO2lmKGRlKXt2YXIgU2U9KGtlPXZlK3NlLnNsaWNlKGNlKS50b1N0cmluZygpLnJlcGxhY2UoLywvZywiLyIpKS5sZW5ndGgta2UubGVuZ3RoJTg7dmU9a2Uuc2xpY2UoU2UpLGtlPWtlLnNsaWNlKDAsU2UpLG9lKz10aGlzLmlj''@;'; + put 'put ''b252LmRlY29kZShtZS5mcm9tKGtlLCJiYXNlNjQiKSwidXRmMTYtYmUiKX1lbHNlIG9lKz10aGlzLmljb252LmRlY29kZShzZS5zbGljZShjZSksImFzY2lpIik7cmV0dXJuIHRoaXMuaW5CYXNlNjQ9ZGUsdGhpcy5iYXNlNjRBY2N1bT12ZSxvZX0scS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9u''@;'; + put 'put ''KCl7dmFyIHNlPSIiO3JldHVybiB0aGlzLmluQmFzZTY0JiZ0aGlzLmJhc2U2NEFjY3VtLmxlbmd0aD4wJiYoc2U9dGhpcy5pY29udi5kZWNvZGUobWUuZnJvbSh0aGlzLmJhc2U2NEFjY3VtLCJiYXNlNjQiKSwidXRmMTYtYmUiKSksdGhpcy5pbkJhc2U2ND0hMSx0aGlzLmJhc2U2NEFjY3Vt''@;'; + put 'put ''PSIiLHNlfX0sNDYwOTk6KFhlLEplKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtZShFLE1lKXt0aGlzLmVuY29kZXI9RSx0aGlzLmFkZEJPTT0hMH1mdW5jdGlvbiBCKEUsTWUpe3RoaXMuZGVjb2Rlcj1FLHRoaXMucGFzcz0hMSx0aGlzLm9wdGlvbnM9TWV8fHt9fUplLlByZXBlbmRCT009''@;'; + put 'put ''bWUsbWUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmFkZEJPTSYmKEU9Ilx1ZmVmZiIrRSx0aGlzLmFkZEJPTT0hMSksdGhpcy5lbmNvZGVyLndyaXRlKEUpfSxtZS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5jb2Rlci5lbmQoKX0sSmUu''@;'; + put 'put ''U3RyaXBCT009QixCLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihFKXt2YXIgTWU9dGhpcy5kZWNvZGVyLndyaXRlKEUpO3JldHVybiB0aGlzLnBhc3N8fCFNZXx8KCJcdWZlZmYiPT09TWVbMF0mJihNZT1NZS5zbGljZSgxKSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLnN0cmlw''@;'; + put 'put ''Qk9NJiZ0aGlzLm9wdGlvbnMuc3RyaXBCT00oKSksdGhpcy5wYXNzPSEwKSxNZX0sQi5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVjb2Rlci5lbmQoKX19LDQxOTI1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MjAzOCkuQnVmZmVyLEI9TCg0NjA5''@;'; + put 'put ''OSksRT1YZS5leHBvcnRzO0UuZW5jb2RpbmdzPW51bGwsRS5kZWZhdWx0Q2hhclVuaWNvZGU9Ilx1ZmZmZCIsRS5kZWZhdWx0Q2hhclNpbmdsZUJ5dGU9Ij8iLEUuZW5jb2RlPWZ1bmN0aW9uKFosaWUsbGUpe1o9IiIrKFp8fCIiKTt2YXIgWT1FLmdldEVuY29kZXIoaWUsbGUpLFc9WS53cml0''@;'; + put 'put ''ZShaKSxOPVkuZW5kKCk7cmV0dXJuIE4mJk4ubGVuZ3RoPjA/bWUuY29uY2F0KFtXLE5dKTpXfSxFLmRlY29kZT1mdW5jdGlvbihaLGllLGxlKXsic3RyaW5nIj09dHlwZW9mIFomJihFLnNraXBEZWNvZGVXYXJuaW5nfHwoY29uc29sZS5lcnJvcigiSWNvbnYtbGl0ZSB3YXJuaW5nOiBkZWNv''@;'; + put 'put ''ZGUoKS1pbmcgc3RyaW5ncyBpcyBkZXByZWNhdGVkLiBSZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vYXNodHVjaGtpbi9pY29udi1saXRlL3dpa2kvVXNlLUJ1ZmZlcnMtd2hlbi1kZWNvZGluZyIpLEUuc2tpcERlY29kZVdhcm5pbmc9ITApLFo9bWUuZnJvbSgiIisoWnx8IiIpLCJiaW5h''@;'; + put 'put ''cnkiKSk7dmFyIFk9RS5nZXREZWNvZGVyKGllLGxlKSxXPVkud3JpdGUoWiksTj1ZLmVuZCgpO3JldHVybiBOP1crTjpXfSxFLmVuY29kaW5nRXhpc3RzPWZ1bmN0aW9uKFope3RyeXtyZXR1cm4gRS5nZXRDb2RlYyhaKSwhMH1jYXRjaChpZSl7cmV0dXJuITF9fSxFLnRvRW5jb2Rpbmc9RS5l''@;'; + put 'put ''bmNvZGUsRS5mcm9tRW5jb2Rpbmc9RS5kZWNvZGUsRS5fY29kZWNEYXRhQ2FjaGU9e30sRS5nZXRDb2RlYz1mdW5jdGlvbihaKXtFLmVuY29kaW5nc3x8KEUuZW5jb2RpbmdzPUwoNzk3MTQpKTtmb3IodmFyIGllPUUuX2Nhbm9uaWNhbGl6ZUVuY29kaW5nKFopLGxlPXt9Ozspe3ZhciBZPUUu''@;'; + put 'put ''X2NvZGVjRGF0YUNhY2hlW2llXTtpZihZKXJldHVybiBZO3ZhciBXPUUuZW5jb2RpbmdzW2llXTtzd2l0Y2godHlwZW9mIFcpe2Nhc2Uic3RyaW5nIjppZT1XO2JyZWFrO2Nhc2Uib2JqZWN0Ijpmb3IodmFyIE4gaW4gVylsZVtOXT1XW05dO2xlLmVuY29kaW5nTmFtZXx8KGxlLmVuY29kaW5n''@;'; + put 'put ''TmFtZT1pZSksaWU9Vy50eXBlO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOnJldHVybiBsZS5lbmNvZGluZ05hbWV8fChsZS5lbmNvZGluZ05hbWU9aWUpLFk9bmV3IFcobGUsRSksRS5fY29kZWNEYXRhQ2FjaGVbbGUuZW5jb2RpbmdOYW1lXT1ZLFk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkVu''@;'; + put 'put ''Y29kaW5nIG5vdCByZWNvZ25pemVkOiAnIitaKyInIChzZWFyY2hlZCBhczogJyIraWUrIicpIil9fX0sRS5fY2Fub25pY2FsaXplRW5jb2Rpbmc9ZnVuY3Rpb24oUSl7cmV0dXJuKCIiK1EpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvOlxkezR9JHxbXjAtOWEtel0vZywiIil9LEUuZ2V0RW5j''@;'; + put 'put ''b2Rlcj1mdW5jdGlvbihaLGllKXt2YXIgbGU9RS5nZXRDb2RlYyhaKSxZPW5ldyBsZS5lbmNvZGVyKGllLGxlKTtyZXR1cm4gbGUuYm9tQXdhcmUmJmllJiZpZS5hZGRCT00mJihZPW5ldyBCLlByZXBlbmRCT00oWSxpZSkpLFl9LEUuZ2V0RGVjb2Rlcj1mdW5jdGlvbihaLGllKXt2YXIgbGU9''@;'; + put 'put ''RS5nZXRDb2RlYyhaKSxZPW5ldyBsZS5kZWNvZGVyKGllLGxlKTtyZXR1cm4gbGUuYm9tQXdhcmUmJiEoaWUmJiExPT09aWUuc3RyaXBCT00pJiYoWT1uZXcgQi5TdHJpcEJPTShZLGllKSksWX07dmFyIE1lPSJ1bmRlZmluZWQiIT10eXBlb2YgcHJvY2VzcyYmcHJvY2Vzcy52ZXJzaW9ucyYm''@;'; + put 'put ''cHJvY2Vzcy52ZXJzaW9ucy5ub2RlO2lmKE1lKXt2YXIgVT1NZS5zcGxpdCgiLiIpLm1hcChOdW1iZXIpOyhVWzBdPjB8fFVbMV0+PTEwKSYmTCg2OTMzMSkoRSksTCgxOTUyNykoRSl9fSw0ODQ2MTooWGUsSmUpPT57SmUucmVhZD1mdW5jdGlvbihMLG1lLEIsRSxNZSl7dmFyIFUsUSxaPTgq''@;'; + put 'put ''TWUtRS0xLGllPSgxPDxaKS0xLGxlPWllPj4xLFk9LTcsVz1CP01lLTE6MCxOPUI/LTE6MSxlZT1MW21lK1ddO2ZvcihXKz1OLFU9ZWUmKDE8PC1ZKS0xLGVlPj49LVksWSs9WjtZPjA7VT0yNTYqVStMW21lK1ddLFcrPU4sWS09OCk7Zm9yKFE9VSYoMTw8LVkpLTEsVT4+PS1ZLFkrPUU7WT4w''@;'; + put 'put ''O1E9MjU2KlErTFttZStXXSxXKz1OLFktPTgpO2lmKDA9PT1VKVU9MS1sZTtlbHNle2lmKFU9PT1pZSlyZXR1cm4gUT9OYU46MS8wKihlZT8tMToxKTtRKz1NYXRoLnBvdygyLEUpLFUtPWxlfXJldHVybihlZT8tMToxKSpRKk1hdGgucG93KDIsVS1FKX0sSmUud3JpdGU9ZnVuY3Rpb24oTCxt''@;'; + put 'put ''ZSxCLEUsTWUsVSl7dmFyIFEsWixpZSxsZT04KlUtTWUtMSxZPSgxPDxsZSktMSxXPVk+PjEsTj0yMz09PU1lP01hdGgucG93KDIsLTI0KS1NYXRoLnBvdygyLC03Nyk6MCxlZT1FPzA6VS0xLHE9RT8xOi0xLEo9bWU8MHx8MD09PW1lJiYxL21lPDA/MTowO2ZvcihtZT1NYXRoLmFicyhtZSks''@;'; + put 'put ''aXNOYU4obWUpfHxtZT09PTEvMD8oWj1pc05hTihtZSk/MTowLFE9WSk6KFE9TWF0aC5mbG9vcihNYXRoLmxvZyhtZSkvTWF0aC5MTjIpLG1lKihpZT1NYXRoLnBvdygyLC1RKSk8MSYmKFEtLSxpZSo9MiksKG1lKz1RK1c+PTE/Ti9pZTpOKk1hdGgucG93KDIsMS1XKSkqaWU+PTImJihRKyss''@;'; + put 'put ''aWUvPTIpLFErVz49WT8oWj0wLFE9WSk6UStXPj0xPyhaPShtZSppZS0xKSpNYXRoLnBvdygyLE1lKSxRKz1XKTooWj1tZSpNYXRoLnBvdygyLFctMSkqTWF0aC5wb3coMixNZSksUT0wKSk7TWU+PTg7TFtCK2VlXT0yNTUmWixlZSs9cSxaLz0yNTYsTWUtPTgpO2ZvcihRPVE8PE1lfFosbGUr''@;'; + put 'put ''PU1lO2xlPjA7TFtCK2VlXT0yNTUmUSxlZSs9cSxRLz0yNTYsbGUtPTgpO0xbQitlZS1xXXw9MTI4Kkp9fSw4Mzg5NDpYZT0+e1hlLmV4cG9ydHM9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oTCxtZSl7bWUmJihMLnN1cGVyXz1tZSxMLnByb3RvdHlwZT1PYmpl''@;'; + put 'put ''Y3QuY3JlYXRlKG1lLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOkwsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSkpfTpmdW5jdGlvbihMLG1lKXtpZihtZSl7TC5zdXBlcl89bWU7dmFyIEI9ZnVuY3Rpb24oKXt9O0IucHJvdG90eXBlPW1lLnByb3Rv''@;'; + put 'put ''dHlwZSxMLnByb3RvdHlwZT1uZXcgQixMLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1MfX19LDgwOTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDgzODk0KSxCPUwoMzk2NTApLEU9TCg3MzUwMikuQnVmZmVyLE1lPW5ldyBBcnJheSgxNik7ZnVuY3Rpb24gVSgpe0IuY2FsbCh0''@;'; + put 'put ''aGlzLDY0KSx0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OH1mdW5jdGlvbiBRKFcsTil7cmV0dXJuIFc8PE58Vz4+PjMyLU59ZnVuY3Rpb24gWihXLE4sZWUscSxKLHNlLG9lKXtyZXR1cm4gUShXKyhOJmVl''@;'; + put 'put ''fH5OJnEpK0orc2V8MCxvZSkrTnwwfWZ1bmN0aW9uIGllKFcsTixlZSxxLEosc2Usb2Upe3JldHVybiBRKFcrKE4mcXxlZSZ+cSkrSitzZXwwLG9lKStOfDB9ZnVuY3Rpb24gbGUoVyxOLGVlLHEsSixzZSxvZSl7cmV0dXJuIFEoVysoTl5lZV5xKStKK3NlfDAsb2UpK058MH1mdW5jdGlvbiBZ''@;'; + put 'put ''KFcsTixlZSxxLEosc2Usb2Upe3JldHVybiBRKFcrKGVlXihOfH5xKSkrSitzZXwwLG9lKStOfDB9bWUoVSxCKSxVLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciBXPU1lLE49MDtOPDE2OysrTilXW05dPXRoaXMuX2Jsb2NrLnJlYWRJbnQzMkxFKDQqTik7dmFyIGVlPXRo''@;'; + put 'put ''aXMuX2EscT10aGlzLl9iLEo9dGhpcy5fYyxzZT10aGlzLl9kO2VlPVooZWUscSxKLHNlLFdbMF0sMzYxNDA5MDM2MCw3KSxzZT1aKHNlLGVlLHEsSixXWzFdLDM5MDU0MDI3MTAsMTIpLEo9WihKLHNlLGVlLHEsV1syXSw2MDYxMDU4MTksMTcpLHE9WihxLEosc2UsZWUsV1szXSwzMjUwNDQx''@;'; + put 'put ''OTY2LDIyKSxlZT1aKGVlLHEsSixzZSxXWzRdLDQxMTg1NDgzOTksNyksc2U9WihzZSxlZSxxLEosV1s1XSwxMjAwMDgwNDI2LDEyKSxKPVooSixzZSxlZSxxLFdbNl0sMjgyMTczNTk1NSwxNykscT1aKHEsSixzZSxlZSxXWzddLDQyNDkyNjEzMTMsMjIpLGVlPVooZWUscSxKLHNlLFdbOF0s''@;'; + put 'put ''MTc3MDAzNTQxNiw3KSxzZT1aKHNlLGVlLHEsSixXWzldLDIzMzY1NTI4NzksMTIpLEo9WihKLHNlLGVlLHEsV1sxMF0sNDI5NDkyNTIzMywxNykscT1aKHEsSixzZSxlZSxXWzExXSwyMzA0NTYzMTM0LDIyKSxlZT1aKGVlLHEsSixzZSxXWzEyXSwxODA0NjAzNjgyLDcpLHNlPVooc2UsZWUs''@;'; + put 'put ''cSxKLFdbMTNdLDQyNTQ2MjYxOTUsMTIpLEo9WihKLHNlLGVlLHEsV1sxNF0sMjc5Mjk2NTAwNiwxNyksZWU9aWUoZWUscT1aKHEsSixzZSxlZSxXWzE1XSwxMjM2NTM1MzI5LDIyKSxKLHNlLFdbMV0sNDEyOTE3MDc4Niw1KSxzZT1pZShzZSxlZSxxLEosV1s2XSwzMjI1NDY1NjY0LDkpLEo9''@;'; + put 'put ''aWUoSixzZSxlZSxxLFdbMTFdLDY0MzcxNzcxMywxNCkscT1pZShxLEosc2UsZWUsV1swXSwzOTIxMDY5OTk0LDIwKSxlZT1pZShlZSxxLEosc2UsV1s1XSwzNTkzNDA4NjA1LDUpLHNlPWllKHNlLGVlLHEsSixXWzEwXSwzODAxNjA4Myw5KSxKPWllKEosc2UsZWUscSxXWzE1XSwzNjM0NDg4''@;'; + put 'put ''OTYxLDE0KSxxPWllKHEsSixzZSxlZSxXWzRdLDM4ODk0Mjk0NDgsMjApLGVlPWllKGVlLHEsSixzZSxXWzldLDU2ODQ0NjQzOCw1KSxzZT1pZShzZSxlZSxxLEosV1sxNF0sMzI3NTE2MzYwNiw5KSxKPWllKEosc2UsZWUscSxXWzNdLDQxMDc2MDMzMzUsMTQpLHE9aWUocSxKLHNlLGVlLFdb''@;'; + put 'put ''OF0sMTE2MzUzMTUwMSwyMCksZWU9aWUoZWUscSxKLHNlLFdbMTNdLDI4NTAyODU4MjksNSksc2U9aWUoc2UsZWUscSxKLFdbMl0sNDI0MzU2MzUxMiw5KSxKPWllKEosc2UsZWUscSxXWzddLDE3MzUzMjg0NzMsMTQpLGVlPWxlKGVlLHE9aWUocSxKLHNlLGVlLFdbMTJdLDIzNjgzNTk1NjIs''@;'; + put 'put ''MjApLEosc2UsV1s1XSw0Mjk0NTg4NzM4LDQpLHNlPWxlKHNlLGVlLHEsSixXWzhdLDIyNzIzOTI4MzMsMTEpLEo9bGUoSixzZSxlZSxxLFdbMTFdLDE4MzkwMzA1NjIsMTYpLHE9bGUocSxKLHNlLGVlLFdbMTRdLDQyNTk2NTc3NDAsMjMpLGVlPWxlKGVlLHEsSixzZSxXWzFdLDI3NjM5NzUy''@;'; + put 'put ''MzYsNCksc2U9bGUoc2UsZWUscSxKLFdbNF0sMTI3Mjg5MzM1MywxMSksSj1sZShKLHNlLGVlLHEsV1s3XSw0MTM5NDY5NjY0LDE2KSxxPWxlKHEsSixzZSxlZSxXWzEwXSwzMjAwMjM2NjU2LDIzKSxlZT1sZShlZSxxLEosc2UsV1sxM10sNjgxMjc5MTc0LDQpLHNlPWxlKHNlLGVlLHEsSixX''@;'; + put 'put ''WzBdLDM5MzY0MzAwNzQsMTEpLEo9bGUoSixzZSxlZSxxLFdbM10sMzU3MjQ0NTMxNywxNikscT1sZShxLEosc2UsZWUsV1s2XSw3NjAyOTE4OSwyMyksZWU9bGUoZWUscSxKLHNlLFdbOV0sMzY1NDYwMjgwOSw0KSxzZT1sZShzZSxlZSxxLEosV1sxMl0sMzg3MzE1MTQ2MSwxMSksSj1sZShK''@;'; + put 'put ''LHNlLGVlLHEsV1sxNV0sNTMwNzQyNTIwLDE2KSxlZT1ZKGVlLHE9bGUocSxKLHNlLGVlLFdbMl0sMzI5OTYyODY0NSwyMyksSixzZSxXWzBdLDQwOTYzMzY0NTIsNiksc2U9WShzZSxlZSxxLEosV1s3XSwxMTI2ODkxNDE1LDEwKSxKPVkoSixzZSxlZSxxLFdbMTRdLDI4Nzg2MTIzOTEsMTUp''@;'; + put 'put ''LHE9WShxLEosc2UsZWUsV1s1XSw0MjM3NTMzMjQxLDIxKSxlZT1ZKGVlLHEsSixzZSxXWzEyXSwxNzAwNDg1NTcxLDYpLHNlPVkoc2UsZWUscSxKLFdbM10sMjM5OTk4MDY5MCwxMCksSj1ZKEosc2UsZWUscSxXWzEwXSw0MjkzOTE1NzczLDE1KSxxPVkocSxKLHNlLGVlLFdbMV0sMjI0MDA0''@;'; + put 'put ''NDQ5NywyMSksZWU9WShlZSxxLEosc2UsV1s4XSwxODczMzEzMzU5LDYpLHNlPVkoc2UsZWUscSxKLFdbMTVdLDQyNjQzNTU1NTIsMTApLEo9WShKLHNlLGVlLHEsV1s2XSwyNzM0NzY4OTE2LDE1KSxxPVkocSxKLHNlLGVlLFdbMTNdLDEzMDkxNTE2NDksMjEpLGVlPVkoZWUscSxKLHNlLFdb''@;'; + put 'put ''NF0sNDE0OTQ0NDIyNiw2KSxzZT1ZKHNlLGVlLHEsSixXWzExXSwzMTc0NzU2OTE3LDEwKSxKPVkoSixzZSxlZSxxLFdbMl0sNzE4Nzg3MjU5LDE1KSxxPVkocSxKLHNlLGVlLFdbOV0sMzk1MTQ4MTc0NSwyMSksdGhpcy5fYT10aGlzLl9hK2VlfDAsdGhpcy5fYj10aGlzLl9iK3F8MCx0aGlz''@;'; + put 'put ''Ll9jPXRoaXMuX2MrSnwwLHRoaXMuX2Q9dGhpcy5fZCtzZXwwfSxVLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0''@;'; + put 'put ''LDY0KSx0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0''@;'; + put 'put ''aFsxXSw2MCksdGhpcy5fdXBkYXRlKCk7dmFyIFc9RS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIFcud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksVy53cml0ZUludDMyTEUodGhpcy5fYiw0KSxXLndyaXRlSW50MzJMRSh0aGlzLl9jLDgpLFcud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLFd9LFhl''@;'; + put 'put ''LmV4cG9ydHM9VX0sMTcwNzk6KFhlLEplLEwpPT57dmFyIG1lPUwoMTM3OCksQj1MKDM3OTUwKTtmdW5jdGlvbiBFKE1lKXt0aGlzLnJhbmQ9TWV8fG5ldyBCLlJhbmR9WGUuZXhwb3J0cz1FLEUuY3JlYXRlPWZ1bmN0aW9uKFUpe3JldHVybiBuZXcgRShVKX0sRS5wcm90b3R5cGUuX3JhbmRi''@;'; + put 'put ''ZWxvdz1mdW5jdGlvbihVKXt2YXIgUT1VLmJpdExlbmd0aCgpLFo9TWF0aC5jZWlsKFEvOCk7ZG97dmFyIGllPW5ldyBtZSh0aGlzLnJhbmQuZ2VuZXJhdGUoWikpfXdoaWxlKGllLmNtcChVKT49MCk7cmV0dXJuIGllfSxFLnByb3RvdHlwZS5fcmFuZHJhbmdlPWZ1bmN0aW9uKFUsUSl7dmFy''@;'; + put 'put ''IFo9US5zdWIoVSk7cmV0dXJuIFUuYWRkKHRoaXMuX3JhbmRiZWxvdyhaKSl9LEUucHJvdG90eXBlLnRlc3Q9ZnVuY3Rpb24oVSxRLFope3ZhciBpZT1VLmJpdExlbmd0aCgpLGxlPW1lLm1vbnQoVSksWT1uZXcgbWUoMSkudG9SZWQobGUpO1F8fChRPU1hdGgubWF4KDEsaWUvNDh8MCkpO2Zv''@;'; + put 'put ''cih2YXIgVz1VLnN1Ym4oMSksTj0wOyFXLnRlc3RuKE4pO04rKyk7Zm9yKHZhciBlZT1VLnNocm4oTikscT1XLnRvUmVkKGxlKTtRPjA7US0tKXt2YXIgc2U9dGhpcy5fcmFuZHJhbmdlKG5ldyBtZSgyKSxXKTtaJiZaKHNlKTt2YXIgb2U9c2UudG9SZWQobGUpLnJlZFBvdyhlZSk7aWYoMCE9''@;'; + put 'put ''PW9lLmNtcChZKSYmMCE9PW9lLmNtcChxKSl7Zm9yKHZhciBjZT0xO2NlPE47Y2UrKyl7aWYoMD09PShvZT1vZS5yZWRTcXIoKSkuY21wKFkpKXJldHVybiExO2lmKDA9PT1vZS5jbXAocSkpYnJlYWt9aWYoY2U9PT1OKXJldHVybiExfX1yZXR1cm4hMH0sRS5wcm90b3R5cGUuZ2V0RGl2aXNv''@;'; + put 'put ''cj1mdW5jdGlvbihVLFEpe3ZhciBaPVUuYml0TGVuZ3RoKCksaWU9bWUubW9udChVKSxsZT1uZXcgbWUoMSkudG9SZWQoaWUpO1F8fChRPU1hdGgubWF4KDEsWi80OHwwKSk7Zm9yKHZhciBZPVUuc3VibigxKSxXPTA7IVkudGVzdG4oVyk7VysrKTtmb3IodmFyIE49VS5zaHJuKFcpLGVlPVku''@;'; + put 'put ''dG9SZWQoaWUpO1E+MDtRLS0pe3ZhciBxPXRoaXMuX3JhbmRyYW5nZShuZXcgbWUoMiksWSksSj1VLmdjZChxKTtpZigwIT09Si5jbXBuKDEpKXJldHVybiBKO3ZhciBzZT1xLnRvUmVkKGllKS5yZWRQb3coTik7aWYoMCE9PXNlLmNtcChsZSkmJjAhPT1zZS5jbXAoZWUpKXtmb3IodmFyIG9l''@;'; + put 'put ''PTE7b2U8VztvZSsrKXtpZigwPT09KHNlPXNlLnJlZFNxcigpKS5jbXAobGUpKXJldHVybiBzZS5mcm9tUmVkKCkuc3VibigxKS5nY2QoVSk7aWYoMD09PXNlLmNtcChlZSkpYnJlYWt9aWYob2U9PT1XKXJldHVybihzZT1zZS5yZWRTcXIoKSkuZnJvbVJlZCgpLnN1Ym4oMSkuZ2NkKFUpfX1y''@;'; + put 'put ''ZXR1cm4hMX19LDEzNzg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBFKGhlLE8pe2lmKCFoZSl0aHJvdyBuZXcgRXJyb3IoT3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBNZShoZSxPKXtoZS5zdXBlcl89Tzt2YXIgej1mdW5j''@;'; + put 'put ''dGlvbigpe307ei5wcm90b3R5cGU9Ty5wcm90b3R5cGUsaGUucHJvdG90eXBlPW5ldyB6LGhlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1oZX1mdW5jdGlvbiBVKGhlLE8seil7aWYoVS5pc0JOKGhlKSlyZXR1cm4gaGU7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0''@;'; + put 'put ''aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PWhlJiYoKCJsZSI9PT1PfHwiYmUiPT09TykmJih6PU8sTz0xMCksdGhpcy5faW5pdChoZXx8MCxPfHwxMCx6fHwiYmUiKSl9dmFyIFE7Im9iamVjdCI9PXR5cGVvZiBtZT9tZS5leHBvcnRzPVU6Qi5CTj1VLFUuQk49VSxVLndvcmRTaXplPTI2O3Ry''@;'; + put 'put ''eXtRPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6TCg1NjYxOSkuQnVmZmVyfWNhdGNoKGhlKXt9ZnVuY3Rpb24gWihoZSxPKXt2YXIgej1oZS5jaGFyQ29kZUF0KE8pO3JldHVybiB6Pj02NSYmejw9NzA/ei01NTp6Pj05''@;'; + put 'put ''NyYmejw9MTAyP3otODc6ei00OCYxNX1mdW5jdGlvbiBpZShoZSxPLHope3ZhciBuZT1aKGhlLHopO3JldHVybiB6LTE+PU8mJihuZXw9WihoZSx6LTEpPDw0KSxuZX1mdW5jdGlvbiBsZShoZSxPLHosbmUpe2Zvcih2YXIgdGU9MCx4PU1hdGgubWluKGhlLmxlbmd0aCx6KSxQPU87UDx4O1Ar''@;'; + put 'put ''Kyl7dmFyIFY9aGUuY2hhckNvZGVBdChQKS00ODt0ZSo9bmUsdGUrPVY+PTQ5P1YtNDkrMTA6Vj49MTc/Vi0xNysxMDpWfXJldHVybiB0ZX1VLmlzQk49ZnVuY3Rpb24oTyl7cmV0dXJuIE8gaW5zdGFuY2VvZiBVfHxudWxsIT09TyYmIm9iamVjdCI9PXR5cGVvZiBPJiZPLmNvbnN0cnVjdG9y''@;'; + put 'put ''LndvcmRTaXplPT09VS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShPLndvcmRzKX0sVS5tYXg9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik+MD9POnp9LFUubWluPWZ1bmN0aW9uKE8seil7cmV0dXJuIE8uY21wKHopPDA/Tzp6fSxVLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihPLHos''@;'; + put 'put ''bmUpe2lmKCJudW1iZXIiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihPLHosbmUpO2lmKCJvYmplY3QiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdEFycmF5KE8seixuZSk7ImhleCI9PT16JiYoej0xNiksRSh6PT09KDB8eikmJno+PTImJno8PTM2KTt2YXIgdGU9MDsi''@;'; + put 'put ''LSI9PT0oTz1PLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKHRlKyssdGhpcy5uZWdhdGl2ZT0xKSx0ZTxPLmxlbmd0aCYmKDE2PT09ej90aGlzLl9wYXJzZUhleChPLHRlLG5lKToodGhpcy5fcGFyc2VCYXNlKE8seix0ZSksImxlIj09PW5lJiZ0aGlzLl9pbml0QXJyYXko''@;'; + put 'put ''dGhpcy50b0FycmF5KCkseixuZSkpKX0sVS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oTyx6LG5lKXtPPDAmJih0aGlzLm5lZ2F0aXZlPTEsTz0tTyksTzw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmT10sdGhpcy5sZW5ndGg9MSk6Tzw0NTAzNTk5NjI3MzcwNDk2Pyh0''@;'; + put 'put ''aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihFKE88OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmTyxPLzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1uZSYmdGhpcy5faW5pdEFy''@;'; + put 'put ''cmF5KHRoaXMudG9BcnJheSgpLHosbmUpfSxVLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKE8seixuZSl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8ubGVuZ3RoKSxPLmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1h''@;'; + put 'put ''dGguY2VpbChPLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB0ZT0wO3RlPHRoaXMubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09MDt2YXIgeCxQLFY9MDtpZigiYmUiPT09bmUpZm9yKHRlPU8ubGVuZ3RoLTEseD0wO3RlPj0wO3RlLT0zKXRo''@;'; + put 'put ''aXMud29yZHNbeF18PShQPU9bdGVdfE9bdGUtMV08PDh8T1t0ZS0yXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7ZWxzZSBpZigibGUiPT09bmUpZm9yKHRlPTAseD0wO3RlPE8ubGVuZ3RoO3RlKz0z''@;'; + put 'put ''KXRoaXMud29yZHNbeF18PShQPU9bdGVdfE9bdGUrMV08PDh8T1t0ZSsyXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1''@;'; + put 'put ''bmN0aW9uKE8seixuZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChPLmxlbmd0aC16KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB0ZT0wO3RlPHRoaXMubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09MDt2YXIgVix4PTAsUD0wO2lmKCJiZSI9PT1uZSlm''@;'; + put 'put ''b3IodGU9Ty5sZW5ndGgtMTt0ZT49ejt0ZS09MilWPWllKE8seix0ZSk8PHgsdGhpcy53b3Jkc1tQXXw9NjcxMDg4NjMmVix4Pj0xOD8oeC09MTgsdGhpcy53b3Jkc1tQKz0xXXw9Vj4+PjI2KTp4Kz04O2Vsc2UgZm9yKHRlPShPLmxlbmd0aC16KSUyPT0wP3orMTp6O3RlPE8ubGVuZ3RoO3Rl''@;'; + put 'put ''Kz0yKVY9aWUoTyx6LHRlKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKE8seixuZSl7dGhpcy53b3Jkcz1bMF0sdGhpcy5s''@;'; + put 'put ''ZW5ndGg9MTtmb3IodmFyIHRlPTAseD0xO3g8PTY3MTA4ODYzO3gqPXopdGUrKzt0ZS0tLHg9eC96fDA7Zm9yKHZhciBQPU8ubGVuZ3RoLW5lLFY9UCV0ZSxUPU1hdGgubWluKFAsUC1WKStuZSxTPTAsRj1uZTtGPFQ7Ris9dGUpUz1sZShPLEYsRit0ZSx6KSx0aGlzLmltdWxuKHgpLHRoaXMu''@;'; + put 'put ''d29yZHNbMF0rUzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1TOnRoaXMuX2lhZGRuKFMpO2lmKDAhPT1WKXt2YXIgeWU9MTtmb3IoUz1sZShPLEYsTy5sZW5ndGgseiksRj0wO0Y8VjtGKyspeWUqPXo7dGhpcy5pbXVsbih5ZSksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNb''@;'; + put 'put ''MF0rPVM6dGhpcy5faWFkZG4oUyl9dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKE8pe08ud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoO3orKylPLndvcmRzW3pdPXRoaXMud29yZHNbel07Ty5sZW5ndGg9dGhpcy5s''@;'; + put 'put ''ZW5ndGgsTy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLE8ucmVkPXRoaXMucmVkfSxVLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiB0aGlzLmNvcHkoTyksT30sVS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3Ro''@;'; + put 'put ''PE87KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sVS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxV''@;'; + put 'put ''LnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sVS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikr''@;'; + put 'put ''dGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgWT1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAw''@;'; + put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxXPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1''@;'; + put 'put ''LDUsNSw1LDUsNSw1LDUsNSw1LDVdLE49WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2''@;'; + put 'put ''OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVu''@;'; + put 'put ''Y3Rpb24gcShoZSxPLHope3oubmVnYXRpdmU9Ty5uZWdhdGl2ZV5oZS5uZWdhdGl2ZTt2YXIgbmU9aGUubGVuZ3RoK08ubGVuZ3RofDA7ei5sZW5ndGg9bmUsbmU9bmUtMXwwO3ZhciB0ZT0wfGhlLndvcmRzWzBdLHg9MHxPLndvcmRzWzBdLFA9dGUqeCxUPVAvNjcxMDg4NjR8MDt6LndvcmRz''@;'; + put 'put ''WzBdPTY3MTA4ODYzJlA7Zm9yKHZhciBTPTE7UzxuZTtTKyspe2Zvcih2YXIgRj1UPj4+MjYseWU9NjcxMDg4NjMmVCxDZT1NYXRoLm1pbihTLE8ubGVuZ3RoLTEpLERlPU1hdGgubWF4KDAsUy1oZS5sZW5ndGgrMSk7RGU8PUNlO0RlKyspRis9KFA9KHRlPTB8aGUud29yZHNbUy1EZXwwXSkq''@;'; + put 'put ''KHg9MHxPLndvcmRzW0RlXSkreWUpLzY3MTA4ODY0fDAseWU9NjcxMDg4NjMmUDt6LndvcmRzW1NdPTB8eWUsVD0wfEZ9cmV0dXJuIDAhPT1UP3oud29yZHNbU109MHxUOnoubGVuZ3RoLS0sei5zdHJpcCgpfVUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKE8seil7dmFyIG5lO2lmKHo9''@;'; + put 'put ''MHx6fHwxLDE2PT09KE89T3x8MTApfHwiaGV4Ij09PU8pe25lPSIiO2Zvcih2YXIgdGU9MCx4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLndvcmRzW1BdLFQ9KDE2Nzc3MjE1JihWPDx0ZXx4KSkudG9TdHJpbmcoMTYpO25lPTAhPSh4PVY+Pj4yNC10ZSYxNjc3NzIxNSl8''@;'; + put 'put ''fFAhPT10aGlzLmxlbmd0aC0xP1lbNi1ULmxlbmd0aF0rVCtuZTpUK25lLCh0ZSs9Mik+PTI2JiYodGUtPTI2LFAtLSl9Zm9yKDAhPT14JiYobmU9eC50b1N0cmluZygxNikrbmUpO25lLmxlbmd0aCV6IT0wOyluZT0iMCIrbmU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYobmU9Ii0iK25l''@;'; + put 'put ''KSxuZX1pZihPPT09KDB8TykmJk8+PTImJk88PTM2KXt2YXIgUz1XW09dLEY9TltPXTtuZT0iIjt2YXIgeWU9dGhpcy5jbG9uZSgpO2Zvcih5ZS5uZWdhdGl2ZT0wOyF5ZS5pc1plcm8oKTspe3ZhciBDZT15ZS5tb2RuKEYpLnRvU3RyaW5nKE8pO25lPSh5ZT15ZS5pZGl2bihGKSkuaXNaZXJv''@;'; + put 'put ''KCk/Q2UrbmU6WVtTLUNlLmxlbmd0aF0rQ2UrbmV9Zm9yKHRoaXMuaXNaZXJvKCkmJihuZT0iMCIrbmUpO25lLmxlbmd0aCV6IT0wOyluZT0iMCIrbmU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYobmU9Ii0iK25lKSxuZX1FKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2''@;'; + put 'put ''Iil9LFUucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIE89dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP08rPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9PKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4''@;'; + put 'put ''ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmRSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LU86T30sVS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxV''@;'; + put 'put ''LnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihPLHope3JldHVybiBFKHZvaWQgMCE9PVEpLHRoaXMudG9BcnJheUxpa2UoUSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksTyx6KX0sVS5wcm90b3R5cGUudG9B''@;'; + put 'put ''cnJheUxpa2U9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9dGhpcy5ieXRlTGVuZ3RoKCkseD1uZXx8TWF0aC5tYXgoMSx0ZSk7RSh0ZTw9eCwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLEUoeD4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0''@;'; + put 'put ''cmlwKCk7dmFyIFQsUyxQPSJsZSI9PT16LFY9bmV3IE8oeCksRj10aGlzLmNsb25lKCk7aWYoUCl7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVltTXT1UO2Zvcig7Uzx4O1MrKylWW1NdPTB9ZWxzZXtmb3IoUz0wO1M8eC10ZTtTKyspVltTXT0w''@;'; + put 'put ''O2ZvcihTPTA7IUYuaXNaZXJvKCk7UysrKVQ9Ri5hbmRsbigyNTUpLEYuaXVzaHJuKDgpLFZbeC1TLTFdPVR9cmV0dXJuIFZ9LFUucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihPKXtyZXR1cm4gMzItTWF0aC5jbHozMihPKX06ZnVuY3Rpb24oTyl7dmFyIHo9Tyxu''@;'; + put 'put ''ZT0wO3JldHVybiB6Pj00MDk2JiYobmUrPTEzLHo+Pj49MTMpLHo+PTY0JiYobmUrPTcsej4+Pj03KSx6Pj04JiYobmUrPTQsej4+Pj00KSx6Pj0yJiYobmUrPTIsej4+Pj0yKSxuZSt6fSxVLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oTyl7aWYoMD09PU8pcmV0dXJuIDI2O3ZhciB6''@;'; + put 'put ''PU8sbmU9MDtyZXR1cm4gMD09KDgxOTEmeikmJihuZSs9MTMsej4+Pj0xMyksMD09KDEyNyZ6KSYmKG5lKz03LHo+Pj49NyksMD09KDE1JnopJiYobmUrPTQsej4+Pj00KSwwPT0oMyZ6KSYmKG5lKz0yLHo+Pj49MiksMD09KDEmeikmJm5lKyssbmV9LFUucHJvdG90eXBlLmJpdExlbmd0aD1m''@;'; + put 'put ''dW5jdGlvbigpe3ZhciB6PXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK3p9LFUucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIE89MCx6PTA7ejx0''@;'; + put 'put ''aGlzLmxlbmd0aDt6Kyspe3ZhciBuZT10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW3pdKTtpZihPKz1uZSwyNiE9PW5lKWJyZWFrfXJldHVybiBPfSxVLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxVLnByb3Rv''@;'; + put 'put ''dHlwZS50b1R3b3M9ZnVuY3Rpb24oTyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oTykuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy50ZXN0bihPLTEpP3RoaXMubm90bihPKS5pYWRk''@;'; + put 'put ''bigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sVS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LFUucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LFUucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oTyl7Zm9yKDt0aGlzLmxlbmd0aDxPLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgej0wO3o8Ty5sZW5ndGg7eisrKXRoaXMud29y''@;'; + put 'put ''ZHNbel09dGhpcy53b3Jkc1t6XXxPLndvcmRzW3pdO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdW9yKE8pfSxVLnByb3RvdHlwZS5vcj1mdW5jdGlvbihPKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihPKTpPLmNsb25lKCkuaW9yKHRoaXMpfSxVLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKE8pOk8uY2xvbmUoKS5pdW9yKHRoaXMpfSxV''@;'; + put 'put ''LnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihPKXt2YXIgejt6PXRoaXMubGVuZ3RoPk8ubGVuZ3RoP086dGhpcztmb3IodmFyIG5lPTA7bmU8ei5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT10aGlzLndvcmRzW25lXSZPLndvcmRzW25lXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgs''@;'; + put 'put ''dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1YW5kKE8pfSxVLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUo''@;'; + put 'put ''KS5pYW5kKE8pOk8uY2xvbmUoKS5pYW5kKHRoaXMpfSxVLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoTyk6Ty5jbG9uZSgpLml1YW5kKHRoaXMpfSxVLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihPKXt2''@;'; + put 'put ''YXIgeixuZTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8oej10aGlzLG5lPU8pOih6PU8sbmU9dGhpcyk7Zm9yKHZhciB0ZT0wO3RlPG5lLmxlbmd0aDt0ZSsrKXRoaXMud29yZHNbdGVdPXoud29yZHNbdGVdXm5lLndvcmRzW3RlXTtpZih0aGlzIT09eilmb3IoO3RlPHoubGVuZ3RoO3RlKyspdGhp''@;'; + put 'put ''cy53b3Jkc1t0ZV09ei53b3Jkc1t0ZV07cmV0dXJuIHRoaXMubGVuZ3RoPXoubGVuZ3RoLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihPKX0sVS5wcm90b3R5cGUueG9y''@;'; + put 'put ''PWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihPKTpPLmNsb25lKCkuaXhvcih0aGlzKX0sVS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKE8pOk8u''@;'; + put 'put ''Y2xvbmUoKS5pdXhvcih0aGlzKX0sVS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PTB8TWF0aC5jZWlsKE8vMjYpLG5lPU8lMjY7dGhpcy5fZXhwYW5kKHopLG5lPjAmJnotLTtmb3IodmFyIHRlPTA7dGU8ejt0ZSsrKXRoaXMu''@;'; + put 'put ''d29yZHNbdGVdPTY3MTA4ODYzJn50aGlzLndvcmRzW3RlXTtyZXR1cm4gbmU+MCYmKHRoaXMud29yZHNbdGVdPX50aGlzLndvcmRzW3RlXSY2NzEwODg2Mz4+MjYtbmUpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUubm90bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3Ru''@;'; + put 'put ''KE8pfSxVLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKE8seil7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciBuZT1PLzI2fDAsdGU9TyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKG5lKzEpLHRoaXMud29yZHNbbmVdPXo/dGhpcy53b3Jkc1tuZV18MTw8dGU6dGhpcy53b3Jkc1tuZV0m''@;'; + put 'put ''figxPDx0ZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8pe3ZhciB6LG5lLHRlO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHo9dGhpcy5pc3ViKE8pLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9y''@;'; + put 'put ''bVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIE8ubmVnYXRpdmU9MCx6PXRoaXMuaXN1YihPKSxPLm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8obmU9dGhpcyx0ZT1PKToobmU9Tyx0ZT10aGlzKTtmb3IodmFy''@;'; + put 'put ''IHg9MCxQPTA7UDx0ZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09NjcxMDg4NjMmKHo9KDB8bmUud29yZHNbUF0pKygwfHRlLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtmb3IoOzAhPT14JiZQPG5lLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxuZS53b3Jkc1tQXSkr''@;'; + put 'put ''eCkseD16Pj4+MjY7aWYodGhpcy5sZW5ndGg9bmUubGVuZ3RoLDAhPT14KXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPXgsdGhpcy5sZW5ndGgrKztlbHNlIGlmKG5lIT09dGhpcylmb3IoO1A8bmUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPW5lLndvcmRzW1BdO3JldHVybiB0aGlzfSxVLnBy''@;'; + put 'put ''b3RvdHlwZS5hZGQ9ZnVuY3Rpb24oTyl7dmFyIHo7cmV0dXJuIDAhPT1PLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oTy5uZWdhdGl2ZT0wLHo9dGhpcy5zdWIoTyksTy5uZWdhdGl2ZV49MSx6KTowPT09Ty5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9''@;'; + put 'put ''MCx6PU8uc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx6KTp0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChPKTpPLmNsb25lKCkuaWFkZCh0aGlzKX0sVS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPKXtpZigwIT09Ty5uZWdhdGl2ZSl7Ty5uZWdhdGl2ZT0wO3ZhciB6''@;'; + put 'put ''PXRoaXMuaWFkZChPKTtyZXR1cm4gTy5uZWdhdGl2ZT0xLHouX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIHRlLHgsbmU9dGhpcy5jbXAoTyk7aWYo''@;'; + put 'put ''MD09PW5lKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztuZT4wPyh0ZT10aGlzLHg9Tyk6KHRlPU8seD10aGlzKTtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspUD0oej0oMHx0ZS53b3Jkc1tWXSktKDB8eC53b3Jkc1tWXSkr''@;'; + put 'put ''UCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtmb3IoOzAhPT1QJiZWPHRlLmxlbmd0aDtWKyspUD0oej0oMHx0ZS53b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtpZigwPT09UCYmVjx0ZS5sZW5ndGgmJnRlIT09dGhpcylmb3IoO1Y8dGUubGVuZ3RoO1Yr''@;'; + put 'put ''Kyl0aGlzLndvcmRzW1ZdPXRlLndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxWKSx0ZSE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXN1''@;'; + put 'put ''YihPKX07dmFyIEo9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgVCxTLEYsdGU9Ty53b3Jkcyx4PXoud29yZHMsUD1uZS53b3JkcyxWPTAseWU9MHx0ZVswXSxDZT04MTkxJnllLERlPXllPj4+MTMsUGU9MHx0ZVsxXSxRZT04MTkxJlBlLCRlPVBlPj4+MTMsZ3Q9MHx0ZVsyXSx3dD04MTkxJmd0LHZ0''@;'; + put 'put ''PWd0Pj4+MTMsQXQ9MHx0ZVszXSxtdD04MTkxJkF0LGh0PUF0Pj4+MTMsQnQ9MHx0ZVs0XSxvbj04MTkxJkJ0LF90PUJ0Pj4+MTMsdHQ9MHx0ZVs1XSxldD04MTkxJnR0LGF0PXR0Pj4+MTMsTHQ9MHx0ZVs2XSxDdD04MTkxJkx0LGZ0PUx0Pj4+MTMsSHQ9MHx0ZVs3XSxHZT04MTkxJkh0LFVl''@;'; + put 'put ''PUh0Pj4+MTMseXQ9MHx0ZVs4XSxqdD04MTkxJnl0LFF0PXl0Pj4+MTMsZ249MHx0ZVs5XSxkbj04MTkxJmduLHluPWduPj4+MTMsbG49MHx4WzBdLE5uPTgxOTEmbG4sYm49bG4+Pj4xMyxlcj0wfHhbMV0sc3I9ODE5MSZlcixYbj1lcj4+PjEzLEZyPTB8eFsyXSx4cj04MTkxJkZyLHF0PUZy''@;'; + put 'put ''Pj4+MTMscHI9MHx4WzNdLG5yPTgxOTEmcHIsQW49cHI+Pj4xMyxxbj0wfHhbNF0sV3Q9ODE5MSZxbixwbj1xbj4+PjEzLEtuPTB8eFs1XSxOdD04MTkxJktuLHNuPUtuPj4+MTMsVW49MHx4WzZdLHduPTgxOTEmVW4sdG49VW4+Pj4xMyx6bj0wfHhbN10sVHI9ODE5MSZ6bixCbj16bj4+PjEz''@;'; + put 'put ''LGtyPTB8eFs4XSxtbj04MTkxJmtyLHVuPWtyPj4+MTMsY249MHx4WzldLF9uPTgxOTEmY24sR3Q9Y24+Pj4xMztuZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsbmUubGVuZ3RoPTE5O3ZhciBrbj0oVisoVD1NYXRoLmltdWwoQ2UsTm4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5p''@;'; + put 'put ''bXVsKENlLGJuKSkrTWF0aC5pbXVsKERlLE5uKXwwKSk8PDEzKXwwO1Y9KChGPU1hdGguaW11bChEZSxibikpKyhTPj4+MTMpfDApKyhrbj4+PjI2KXwwLGtuJj02NzEwODg2MyxUPU1hdGguaW11bChRZSxObiksUz0oUz1NYXRoLmltdWwoUWUsYm4pKStNYXRoLmltdWwoJGUsTm4pfDAsRj1N''@;'; + put 'put ''YXRoLmltdWwoJGUsYm4pO3ZhciBWbj0oVisoVD1UK01hdGguaW11bChDZSxzcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLFhuKXwwKStNYXRoLmltdWwoRGUsc3IpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsWG4pfDApKyhTPj4+MTMpfDApKyhWbj4+PjI2''@;'; + put 'put ''KXwwLFZuJj02NzEwODg2MyxUPU1hdGguaW11bCh3dCxObiksUz0oUz1NYXRoLmltdWwod3QsYm4pKStNYXRoLmltdWwodnQsTm4pfDAsRj1NYXRoLmltdWwodnQsYm4pLFQ9VCtNYXRoLmltdWwoUWUsc3IpfDAsUz0oUz1TK01hdGguaW11bChRZSxYbil8MCkrTWF0aC5pbXVsKCRlLHNyKXww''@;'; + put 'put ''LEY9RitNYXRoLmltdWwoJGUsWG4pfDA7dmFyIGVuPShWKyhUPVQrTWF0aC5pbXVsKENlLHhyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscXQpfDApK01hdGguaW11bChEZSx4cil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxxdCl8MCkrKFM+Pj4xMyl8MCkr''@;'; + put 'put ''KGVuPj4+MjYpfDAsZW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG10LE5uKSxTPShTPU1hdGguaW11bChtdCxibikpK01hdGguaW11bChodCxObil8MCxGPU1hdGguaW11bChodCxibiksVD1UK01hdGguaW11bCh3dCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LFhuKXwwKStNYXRoLmltdWwo''@;'; + put 'put ''dnQsc3IpfDAsRj1GK01hdGguaW11bCh2dCxYbil8MCxUPVQrTWF0aC5pbXVsKFFlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoUWUscXQpfDApK01hdGguaW11bCgkZSx4cil8MCxGPUYrTWF0aC5pbXVsKCRlLHF0KXwwO3ZhciBJbj0oVisoVD1UK01hdGguaW11bChDZSxucil8MCl8MCkrKCg4''@;'; + put 'put ''MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEFuKXwwKStNYXRoLmltdWwoRGUsbnIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQW4pfDApKyhTPj4+MTMpfDApKyhJbj4+PjI2KXwwLEluJj02NzEwODg2MyxUPU1hdGguaW11bChvbixObiksUz0oUz1NYXRoLmltdWwob24sYm4p''@;'; + put 'put ''KStNYXRoLmltdWwoX3QsTm4pfDAsRj1NYXRoLmltdWwoX3QsYm4pLFQ9VCtNYXRoLmltdWwobXQsc3IpfDAsUz0oUz1TK01hdGguaW11bChtdCxYbil8MCkrTWF0aC5pbXVsKGh0LHNyKXwwLEY9RitNYXRoLmltdWwoaHQsWG4pfDAsVD1UK01hdGguaW11bCh3dCx4cil8MCxTPShTPVMrTWF0''@;'; + put 'put ''aC5pbXVsKHd0LHF0KXwwKStNYXRoLmltdWwodnQseHIpfDAsRj1GK01hdGguaW11bCh2dCxxdCl8MCxUPVQrTWF0aC5pbXVsKFFlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsQW4pfDApK01hdGguaW11bCgkZSxucil8MCxGPUYrTWF0aC5pbXVsKCRlLEFuKXwwO3ZhciBKbj0oVisoVD1U''@;'; + put 'put ''K01hdGguaW11bChDZSxXdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHBuKXwwKStNYXRoLmltdWwoRGUsV3QpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUscG4pfDApKyhTPj4+MTMpfDApKyhKbj4+PjI2KXwwLEpuJj02NzEwODg2MyxUPU1hdGguaW11bChl''@;'; + put 'put ''dCxObiksUz0oUz1NYXRoLmltdWwoZXQsYm4pKStNYXRoLmltdWwoYXQsTm4pfDAsRj1NYXRoLmltdWwoYXQsYm4pLFQ9VCtNYXRoLmltdWwob24sc3IpfDAsUz0oUz1TK01hdGguaW11bChvbixYbil8MCkrTWF0aC5pbXVsKF90LHNyKXwwLEY9RitNYXRoLmltdWwoX3QsWG4pfDAsVD1UK01h''@;'; + put 'put ''dGguaW11bChtdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKG10LHF0KXwwKStNYXRoLmltdWwoaHQseHIpfDAsRj1GK01hdGguaW11bChodCxxdCl8MCxUPVQrTWF0aC5pbXVsKHd0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwod3QsQW4pfDApK01hdGguaW11bCh2dCxucil8MCxGPUYrTWF0aC5p''@;'; + put 'put ''bXVsKHZ0LEFuKXwwLFQ9VCtNYXRoLmltdWwoUWUsV3QpfDAsUz0oUz1TK01hdGguaW11bChRZSxwbil8MCkrTWF0aC5pbXVsKCRlLFd0KXwwLEY9RitNYXRoLmltdWwoJGUscG4pfDA7dmFyIG9yPShWKyhUPVQrTWF0aC5pbXVsKENlLE50KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwoQ2Usc24pfDApK01hdGguaW11bChEZSxOdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxzbil8MCkrKFM+Pj4xMyl8MCkrKG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEN0LE5uKSxTPShTPU1hdGguaW11bChDdCxibikpK01hdGguaW11bChmdCxObil8''@;'; + put 'put ''MCxGPU1hdGguaW11bChmdCxibiksVD1UK01hdGguaW11bChldCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LFhuKXwwKStNYXRoLmltdWwoYXQsc3IpfDAsRj1GK01hdGguaW11bChhdCxYbil8MCxUPVQrTWF0aC5pbXVsKG9uLHhyKXwwLFM9KFM9UytNYXRoLmltdWwob24scXQpfDApK01h''@;'; + put 'put ''dGguaW11bChfdCx4cil8MCxGPUYrTWF0aC5pbXVsKF90LHF0KXwwLFQ9VCtNYXRoLmltdWwobXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChtdCxBbil8MCkrTWF0aC5pbXVsKGh0LG5yKXwwLEY9RitNYXRoLmltdWwoaHQsQW4pfDAsVD1UK01hdGguaW11bCh3dCxXdCl8MCxTPShTPVMrTWF0''@;'; + put 'put ''aC5pbXVsKHd0LHBuKXwwKStNYXRoLmltdWwodnQsV3QpfDAsRj1GK01hdGguaW11bCh2dCxwbil8MCxUPVQrTWF0aC5pbXVsKFFlLE50KXwwLFM9KFM9UytNYXRoLmltdWwoUWUsc24pfDApK01hdGguaW11bCgkZSxOdCl8MCxGPUYrTWF0aC5pbXVsKCRlLHNuKXwwO3ZhciBncj0oVisoVD1U''@;'; + put 'put ''K01hdGguaW11bChDZSx3bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHRuKXwwKStNYXRoLmltdWwoRGUsd24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsdG4pfDApKyhTPj4+MTMpfDApKyhncj4+PjI2KXwwLGdyJj02NzEwODg2MyxUPU1hdGguaW11bChH''@;'; + put 'put ''ZSxObiksUz0oUz1NYXRoLmltdWwoR2UsYm4pKStNYXRoLmltdWwoVWUsTm4pfDAsRj1NYXRoLmltdWwoVWUsYm4pLFQ9VCtNYXRoLmltdWwoQ3Qsc3IpfDAsUz0oUz1TK01hdGguaW11bChDdCxYbil8MCkrTWF0aC5pbXVsKGZ0LHNyKXwwLEY9RitNYXRoLmltdWwoZnQsWG4pfDAsVD1UK01h''@;'; + put 'put ''dGguaW11bChldCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHF0KXwwKStNYXRoLmltdWwoYXQseHIpfDAsRj1GK01hdGguaW11bChhdCxxdCl8MCxUPVQrTWF0aC5pbXVsKG9uLG5yKXwwLFM9KFM9UytNYXRoLmltdWwob24sQW4pfDApK01hdGguaW11bChfdCxucil8MCxGPUYrTWF0aC5p''@;'; + put 'put ''bXVsKF90LEFuKXwwLFQ9VCtNYXRoLmltdWwobXQsV3QpfDAsUz0oUz1TK01hdGguaW11bChtdCxwbil8MCkrTWF0aC5pbXVsKGh0LFd0KXwwLEY9RitNYXRoLmltdWwoaHQscG4pfDAsVD1UK01hdGguaW11bCh3dCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHNuKXwwKStNYXRoLmltdWwo''@;'; + put 'put ''dnQsTnQpfDAsRj1GK01hdGguaW11bCh2dCxzbil8MCxUPVQrTWF0aC5pbXVsKFFlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdG4pfDApK01hdGguaW11bCgkZSx3bil8MCxGPUYrTWF0aC5pbXVsKCRlLHRuKXwwO3ZhciBLcj0oVisoVD1UK01hdGguaW11bChDZSxUcil8MCl8MCkrKCg4''@;'; + put 'put ''MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEJuKXwwKStNYXRoLmltdWwoRGUsVHIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQm4pfDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2MyxUPU1hdGguaW11bChqdCxObiksUz0oUz1NYXRoLmltdWwoanQsYm4p''@;'; + put 'put ''KStNYXRoLmltdWwoUXQsTm4pfDAsRj1NYXRoLmltdWwoUXQsYm4pLFQ9VCtNYXRoLmltdWwoR2Usc3IpfDAsUz0oUz1TK01hdGguaW11bChHZSxYbil8MCkrTWF0aC5pbXVsKFVlLHNyKXwwLEY9RitNYXRoLmltdWwoVWUsWG4pfDAsVD1UK01hdGguaW11bChDdCx4cil8MCxTPShTPVMrTWF0''@;'; + put 'put ''aC5pbXVsKEN0LHF0KXwwKStNYXRoLmltdWwoZnQseHIpfDAsRj1GK01hdGguaW11bChmdCxxdCl8MCxUPVQrTWF0aC5pbXVsKGV0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQW4pfDApK01hdGguaW11bChhdCxucil8MCxGPUYrTWF0aC5pbXVsKGF0LEFuKXwwLFQ9VCtNYXRoLmltdWwo''@;'; + put 'put ''b24sV3QpfDAsUz0oUz1TK01hdGguaW11bChvbixwbil8MCkrTWF0aC5pbXVsKF90LFd0KXwwLEY9RitNYXRoLmltdWwoX3QscG4pfDAsVD1UK01hdGguaW11bChtdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LHNuKXwwKStNYXRoLmltdWwoaHQsTnQpfDAsRj1GK01hdGguaW11bChodCxz''@;'; + put 'put ''bil8MCxUPVQrTWF0aC5pbXVsKHd0LHduKXwwLFM9KFM9UytNYXRoLmltdWwod3QsdG4pfDApK01hdGguaW11bCh2dCx3bil8MCxGPUYrTWF0aC5pbXVsKHZ0LHRuKXwwLFQ9VCtNYXRoLmltdWwoUWUsVHIpfDAsUz0oUz1TK01hdGguaW11bChRZSxCbil8MCkrTWF0aC5pbXVsKCRlLFRyKXww''@;'; + put 'put ''LEY9RitNYXRoLmltdWwoJGUsQm4pfDA7dmFyIFZyPShWKyhUPVQrTWF0aC5pbXVsKENlLG1uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdW4pfDApK01hdGguaW11bChEZSxtbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx1bil8MCkrKFM+Pj4xMyl8MCkr''@;'; + put 'put ''KFZyPj4+MjYpfDAsVnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE5uKSxTPShTPU1hdGguaW11bChkbixibikpK01hdGguaW11bCh5bixObil8MCxGPU1hdGguaW11bCh5bixibiksVD1UK01hdGguaW11bChqdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LFhuKXwwKStNYXRoLmltdWwo''@;'; + put 'put ''UXQsc3IpfDAsRj1GK01hdGguaW11bChRdCxYbil8MCxUPVQrTWF0aC5pbXVsKEdlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UscXQpfDApK01hdGguaW11bChVZSx4cil8MCxGPUYrTWF0aC5pbXVsKFVlLHF0KXwwLFQ9VCtNYXRoLmltdWwoQ3QsbnIpfDAsUz0oUz1TK01hdGguaW11bChD''@;'; + put 'put ''dCxBbil8MCkrTWF0aC5pbXVsKGZ0LG5yKXwwLEY9RitNYXRoLmltdWwoZnQsQW4pfDAsVD1UK01hdGguaW11bChldCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHBuKXwwKStNYXRoLmltdWwoYXQsV3QpfDAsRj1GK01hdGguaW11bChhdCxwbil8MCxUPVQrTWF0aC5pbXVsKG9uLE50KXww''@;'; + put 'put ''LFM9KFM9UytNYXRoLmltdWwob24sc24pfDApK01hdGguaW11bChfdCxOdCl8MCxGPUYrTWF0aC5pbXVsKF90LHNuKXwwLFQ9VCtNYXRoLmltdWwobXQsd24pfDAsUz0oUz1TK01hdGguaW11bChtdCx0bil8MCkrTWF0aC5pbXVsKGh0LHduKXwwLEY9RitNYXRoLmltdWwoaHQsdG4pfDAsVD1U''@;'; + put 'put ''K01hdGguaW11bCh3dCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LEJuKXwwKStNYXRoLmltdWwodnQsVHIpfDAsRj1GK01hdGguaW11bCh2dCxCbil8MCxUPVQrTWF0aC5pbXVsKFFlLG1uKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdW4pfDApK01hdGguaW11bCgkZSxtbil8MCxGPUYrTWF0''@;'; + put 'put ''aC5pbXVsKCRlLHVuKXwwO3ZhciBpaT0oVisoVD1UK01hdGguaW11bChDZSxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEd0KXwwKStNYXRoLmltdWwoRGUsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsR3QpfDApKyhTPj4+MTMpfDApKyhpaT4+PjI2''@;'; + put 'put ''KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChkbixzciksUz0oUz1NYXRoLmltdWwoZG4sWG4pKStNYXRoLmltdWwoeW4sc3IpfDAsRj1NYXRoLmltdWwoeW4sWG4pLFQ9VCtNYXRoLmltdWwoanQseHIpfDAsUz0oUz1TK01hdGguaW11bChqdCxxdCl8MCkrTWF0aC5pbXVsKFF0LHhyKXww''@;'; + put 'put ''LEY9RitNYXRoLmltdWwoUXQscXQpfDAsVD1UK01hdGguaW11bChHZSxucil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLEFuKXwwKStNYXRoLmltdWwoVWUsbnIpfDAsRj1GK01hdGguaW11bChVZSxBbil8MCxUPVQrTWF0aC5pbXVsKEN0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscG4pfDAp''@;'; + put 'put ''K01hdGguaW11bChmdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGZ0LHBuKXwwLFQ9VCtNYXRoLmltdWwoZXQsTnQpfDAsUz0oUz1TK01hdGguaW11bChldCxzbil8MCkrTWF0aC5pbXVsKGF0LE50KXwwLEY9RitNYXRoLmltdWwoYXQsc24pfDAsVD1UK01hdGguaW11bChvbix3bil8MCxTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKG9uLHRuKXwwKStNYXRoLmltdWwoX3Qsd24pfDAsRj1GK01hdGguaW11bChfdCx0bil8MCxUPVQrTWF0aC5pbXVsKG10LFRyKXwwLFM9KFM9UytNYXRoLmltdWwobXQsQm4pfDApK01hdGguaW11bChodCxUcil8MCxGPUYrTWF0aC5pbXVsKGh0LEJuKXwwLFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwod3QsbW4pfDAsUz0oUz1TK01hdGguaW11bCh3dCx1bil8MCkrTWF0aC5pbXVsKHZ0LG1uKXwwLEY9RitNYXRoLmltdWwodnQsdW4pfDA7dmFyIFJyPShWKyhUPVQrTWF0aC5pbXVsKFFlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUWUsR3QpfDApK01hdGguaW11bCgk''@;'; + put 'put ''ZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bCgkZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHhyKSxTPShTPU1hdGguaW11bChkbixxdCkpK01hdGguaW11bCh5bix4cil8MCxGPU1hdGguaW11bCh5bixxdCksVD1U''@;'; + put 'put ''K01hdGguaW11bChqdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEFuKXwwKStNYXRoLmltdWwoUXQsbnIpfDAsRj1GK01hdGguaW11bChRdCxBbil8MCxUPVQrTWF0aC5pbXVsKEdlLFd0KXwwLFM9KFM9UytNYXRoLmltdWwoR2UscG4pfDApK01hdGguaW11bChVZSxXdCl8MCxGPUYrTWF0''@;'; + put 'put ''aC5pbXVsKFVlLHBuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsTnQpfDAsUz0oUz1TK01hdGguaW11bChDdCxzbil8MCkrTWF0aC5pbXVsKGZ0LE50KXwwLEY9RitNYXRoLmltdWwoZnQsc24pfDAsVD1UK01hdGguaW11bChldCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHRuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoYXQsd24pfDAsRj1GK01hdGguaW11bChhdCx0bil8MCxUPVQrTWF0aC5pbXVsKG9uLFRyKXwwLFM9KFM9UytNYXRoLmltdWwob24sQm4pfDApK01hdGguaW11bChfdCxUcil8MCxGPUYrTWF0aC5pbXVsKF90LEJuKXwwLFQ9VCtNYXRoLmltdWwobXQsbW4pfDAsUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bChtdCx1bil8MCkrTWF0aC5pbXVsKGh0LG1uKXwwLEY9RitNYXRoLmltdWwoaHQsdW4pfDA7dmFyIGxpPShWKyhUPVQrTWF0aC5pbXVsKHd0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwod3QsR3QpfDApK01hdGguaW11bCh2dCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01h''@;'; + put 'put ''dGguaW11bCh2dCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG5yKSxTPShTPU1hdGguaW11bChkbixBbikpK01hdGguaW11bCh5bixucil8MCxGPU1hdGguaW11bCh5bixBbiksVD1UK01hdGguaW11bChqdCxXdCl8MCxTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKGp0LHBuKXwwKStNYXRoLmltdWwoUXQsV3QpfDAsRj1GK01hdGguaW11bChRdCxwbil8MCxUPVQrTWF0aC5pbXVsKEdlLE50KXwwLFM9KFM9UytNYXRoLmltdWwoR2Usc24pfDApK01hdGguaW11bChVZSxOdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHNuKXwwLFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwoQ3Qsd24pfDAsUz0oUz1TK01hdGguaW11bChDdCx0bil8MCkrTWF0aC5pbXVsKGZ0LHduKXwwLEY9RitNYXRoLmltdWwoZnQsdG4pfDAsVD1UK01hdGguaW11bChldCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LEJuKXwwKStNYXRoLmltdWwoYXQsVHIpfDAsRj1GK01hdGguaW11bChh''@;'; + put 'put ''dCxCbil8MCxUPVQrTWF0aC5pbXVsKG9uLG1uKXwwLFM9KFM9UytNYXRoLmltdWwob24sdW4pfDApK01hdGguaW11bChfdCxtbil8MCxGPUYrTWF0aC5pbXVsKF90LHVuKXwwO3ZhciBNaT0oVisoVD1UK01hdGguaW11bChtdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKG10''@;'; + put 'put ''LEd0KXwwKStNYXRoLmltdWwoaHQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoaHQsR3QpfDApKyhTPj4+MTMpfDApKyhNaT4+PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChkbixXdCksUz0oUz1NYXRoLmltdWwoZG4scG4pKStNYXRoLmltdWwoeW4sV3QpfDAsRj1N''@;'; + put 'put ''YXRoLmltdWwoeW4scG4pLFQ9VCtNYXRoLmltdWwoanQsTnQpfDAsUz0oUz1TK01hdGguaW11bChqdCxzbil8MCkrTWF0aC5pbXVsKFF0LE50KXwwLEY9RitNYXRoLmltdWwoUXQsc24pfDAsVD1UK01hdGguaW11bChHZSx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHRuKXwwKStNYXRoLmlt''@;'; + put 'put ''dWwoVWUsd24pfDAsRj1GK01hdGguaW11bChVZSx0bil8MCxUPVQrTWF0aC5pbXVsKEN0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsQm4pfDApK01hdGguaW11bChmdCxUcil8MCxGPUYrTWF0aC5pbXVsKGZ0LEJuKXwwLFQ9VCtNYXRoLmltdWwoZXQsbW4pfDAsUz0oUz1TK01hdGguaW11''@;'; + put 'put ''bChldCx1bil8MCkrTWF0aC5pbXVsKGF0LG1uKXwwLEY9RitNYXRoLmltdWwoYXQsdW4pfDA7dmFyIG8wPShWKyhUPVQrTWF0aC5pbXVsKG9uLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwob24sR3QpfDApK01hdGguaW11bChfdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01h''@;'; + put 'put ''dGguaW11bChfdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE50KSxTPShTPU1hdGguaW11bChkbixzbikpK01hdGguaW11bCh5bixOdCl8MCxGPU1hdGguaW11bCh5bixzbiksVD1UK01hdGguaW11bChqdCx3bil8MCxTPShTPVMr''@;'; + put 'put ''TWF0aC5pbXVsKGp0LHRuKXwwKStNYXRoLmltdWwoUXQsd24pfDAsRj1GK01hdGguaW11bChRdCx0bil8MCxUPVQrTWF0aC5pbXVsKEdlLFRyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQm4pfDApK01hdGguaW11bChVZSxUcil8MCxGPUYrTWF0aC5pbXVsKFVlLEJuKXwwLFQ9VCtNYXRoLmlt''@;'; + put 'put ''dWwoQ3QsbW4pfDAsUz0oUz1TK01hdGguaW11bChDdCx1bil8MCkrTWF0aC5pbXVsKGZ0LG1uKXwwLEY9RitNYXRoLmltdWwoZnQsdW4pfDA7dmFyIG4wPShWKyhUPVQrTWF0aC5pbXVsKGV0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoZXQsR3QpfDApK01hdGguaW11bChh''@;'; + put 'put ''dCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChhdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG4wPj4+MjYpfDAsbjAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHduKSxTPShTPU1hdGguaW11bChkbix0bikpK01hdGguaW11bCh5bix3bil8MCxGPU1hdGguaW11bCh5bix0biksVD1U''@;'; + put 'put ''K01hdGguaW11bChqdCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEJuKXwwKStNYXRoLmltdWwoUXQsVHIpfDAsRj1GK01hdGguaW11bChRdCxCbil8MCxUPVQrTWF0aC5pbXVsKEdlLG1uKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsdW4pfDApK01hdGguaW11bChVZSxtbil8MCxGPUYrTWF0''@;'; + put 'put ''aC5pbXVsKFVlLHVuKXwwO3ZhciBkMD0oVisoVD1UK01hdGguaW11bChDdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEN0LEd0KXwwKStNYXRoLmltdWwoZnQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoZnQsR3QpfDApKyhTPj4+MTMpfDApKyhkMD4+PjI2''@;'; + put 'put ''KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChkbixUciksUz0oUz1NYXRoLmltdWwoZG4sQm4pKStNYXRoLmltdWwoeW4sVHIpfDAsRj1NYXRoLmltdWwoeW4sQm4pLFQ9VCtNYXRoLmltdWwoanQsbW4pfDAsUz0oUz1TK01hdGguaW11bChqdCx1bil8MCkrTWF0aC5pbXVsKFF0LG1uKXww''@;'; + put 'put ''LEY9RitNYXRoLmltdWwoUXQsdW4pfDA7dmFyIG0wPShWKyhUPVQrTWF0aC5pbXVsKEdlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoR2UsR3QpfDApK01hdGguaW11bChVZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChVZSxHdCl8MCkrKFM+Pj4xMyl8MCkr''@;'; + put 'put ''KG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG1uKSxTPShTPU1hdGguaW11bChkbix1bikpK01hdGguaW11bCh5bixtbil8MCxGPU1hdGguaW11bCh5bix1bik7dmFyIEcwPShWKyhUPVQrTWF0aC5pbXVsKGp0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmlt''@;'; + put 'put ''dWwoanQsR3QpfDApK01hdGguaW11bChRdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChRdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKEcwPj4+MjYpfDAsRzAmPTY3MTA4ODYzO3ZhciBEaT0oVisoVD1NYXRoLmltdWwoZG4sX24pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKGRu''@;'; + put 'put ''LEd0KSkrTWF0aC5pbXVsKHluLF9uKXwwKSk8PDEzKXwwO3JldHVybiBWPSgoRj1NYXRoLmltdWwoeW4sR3QpKSsoUz4+PjEzKXwwKSsoRGk+Pj4yNil8MCxEaSY9NjcxMDg4NjMsUFswXT1rbixQWzFdPVZuLFBbMl09ZW4sUFszXT1JbixQWzRdPUpuLFBbNV09b3IsUFs2XT1ncixQWzddPUty''@;'; + put 'put ''LFBbOF09VnIsUFs5XT1paSxQWzEwXT1ScixQWzExXT1saSxQWzEyXT1NaSxQWzEzXT1vMCxQWzE0XT1uMCxQWzE1XT1kMCxQWzE2XT1tMCxQWzE3XT1HMCxQWzE4XT1EaSwwIT09ViYmKFBbMTldPVYsbmUubGVuZ3RoKyspLG5lfTtmdW5jdGlvbiBvZShoZSxPLHope3JldHVybihuZXcgY2Up''@;'; + put 'put ''Lm11bHAoaGUsTyx6KX1mdW5jdGlvbiBjZShoZSxPKXt0aGlzLng9aGUsdGhpcy55PU99TWF0aC5pbXVsfHwoSj1xKSxVLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbihPLHope3ZhciBuZSx0ZT10aGlzLmxlbmd0aCtPLmxlbmd0aDtyZXR1cm4gbmU9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1P''@;'; + put 'put ''Lmxlbmd0aD9KKHRoaXMsTyx6KTp0ZTw2Mz9xKHRoaXMsTyx6KTp0ZTwxMDI0P2Z1bmN0aW9uIHNlKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlLHoubGVuZ3RoPWhlLmxlbmd0aCtPLmxlbmd0aDtmb3IodmFyIG5lPTAsdGU9MCx4PTA7eDx6Lmxlbmd0aC0xO3gr''@;'; + put 'put ''Kyl7dmFyIFA9dGU7dGU9MDtmb3IodmFyIFY9NjcxMDg4NjMmbmUsVD1NYXRoLm1pbih4LE8ubGVuZ3RoLTEpLFM9TWF0aC5tYXgoMCx4LWhlLmxlbmd0aCsxKTtTPD1UO1MrKyl7dmFyIERlPSgwfGhlLndvcmRzW3gtU10pKigwfE8ud29yZHNbU10pLFBlPTY3MTA4ODYzJkRlO1Y9NjcxMDg4''@;'; + put 'put ''NjMmKFBlPVBlK1Z8MCksdGUrPShQPShQPVArKERlLzY3MTA4ODY0fDApfDApKyhQZT4+PjI2KXwwKT4+PjI2LFAmPTY3MTA4ODYzfXoud29yZHNbeF09VixuZT1QLFA9dGV9cmV0dXJuIDAhPT1uZT96LndvcmRzW3hdPW5lOnoubGVuZ3RoLS0sei5zdHJpcCgpfSh0aGlzLE8seik6b2UodGhp''@;'; + put 'put ''cyxPLHopLG5lfSxjZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihPKXtmb3IodmFyIHo9bmV3IEFycmF5KE8pLG5lPVUucHJvdG90eXBlLl9jb3VudEJpdHMoTyktMSx0ZT0wO3RlPE87dGUrKyl6W3RlXT10aGlzLnJldkJpbih0ZSxuZSxPKTtyZXR1cm4gen0sY2UucHJvdG90eXBlLnJl''@;'; + put 'put ''dkJpbj1mdW5jdGlvbihPLHosbmUpe2lmKDA9PT1PfHxPPT09bmUtMSlyZXR1cm4gTztmb3IodmFyIHRlPTAseD0wO3g8ejt4KyspdGV8PSgxJk8pPDx6LXgtMSxPPj49MTtyZXR1cm4gdGV9LGNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFApe2Zvcih2YXIgVj0w''@;'; + put 'put ''O1Y8UDtWKyspdGVbVl09eltPW1ZdXSx4W1ZdPW5lW09bVl1dfSxjZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFApe3RoaXMucGVybXV0ZShQLE8seixuZSx0ZSx4KTtmb3IodmFyIFY9MTtWPHg7Vjw8PTEpZm9yKHZhciBUPVY8PDEsUz1NYXRoLmNvcygyKk1h''@;'; + put 'put ''dGguUEkvVCksRj1NYXRoLnNpbigyKk1hdGguUEkvVCkseWU9MDt5ZTx4O3llKz1UKWZvcih2YXIgQ2U9UyxEZT1GLFBlPTA7UGU8VjtQZSsrKXt2YXIgUWU9bmVbeWUrUGVdLCRlPXRlW3llK1BlXSxndD1uZVt5ZStQZStWXSx3dD10ZVt5ZStQZStWXSx2dD1DZSpndC1EZSp3dDt3dD1DZSp3''@;'; + put 'put ''dCtEZSpndCxuZVt5ZStQZV09UWUrKGd0PXZ0KSx0ZVt5ZStQZV09JGUrd3QsbmVbeWUrUGUrVl09UWUtZ3QsdGVbeWUrUGUrVl09JGUtd3QsUGUhPT1UJiYodnQ9UypDZS1GKkRlLERlPVMqRGUrRipDZSxDZT12dCl9fSxjZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oTyx6KXt2''@;'; + put 'put ''YXIgbmU9MXxNYXRoLm1heCh6LE8pLHRlPTEmbmUseD0wO2ZvcihuZT1uZS8yfDA7bmU7bmU+Pj49MSl4Kys7cmV0dXJuIDE8PHgrMSt0ZX0sY2UucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihPLHosbmUpe2lmKCEobmU8PTEpKWZvcih2YXIgdGU9MDt0ZTxuZS8yO3RlKyspe3ZhciB4''@;'; + put 'put ''PU9bdGVdO09bdGVdPU9bbmUtdGUtMV0sT1tuZS10ZS0xXT14LHg9elt0ZV0selt0ZV09LXpbbmUtdGUtMV0seltuZS10ZS0xXT0teH19LGNlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oTyx6KXtmb3IodmFyIG5lPTAsdGU9MDt0ZTx6LzI7dGUrKyl7dmFyIHg9ODE5MipNYXRo''@;'; + put 'put ''LnJvdW5kKE9bMip0ZSsxXS96KStNYXRoLnJvdW5kKE9bMip0ZV0veikrbmU7T1t0ZV09NjcxMDg4NjMmeCxuZT14PDY3MTA4ODY0PzA6eC82NzEwODg2NHwwfXJldHVybiBPfSxjZS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbihPLHosbmUsdGUpe2Zvcih2YXIgeD0wLFA9MDtQPHo7''@;'; + put 'put ''UCsrKW5lWzIqUF09ODE5MSYoeCs9MHxPW1BdKSxuZVsyKlArMV09ODE5MSYoeD4+Pj0xMykseD4+Pj0xMztmb3IoUD0yKno7UDx0ZTsrK1ApbmVbUF09MDtFKDA9PT14KSxFKDA9PSgtODE5MiZ4KSl9LGNlLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXko''@;'; + put 'put ''TyksbmU9MDtuZTxPO25lKyspeltuZV09MDtyZXR1cm4gen0sY2UucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9Mip0aGlzLmd1ZXNzTGVuMTNiKE8ubGVuZ3RoLHoubGVuZ3RoKSx4PXRoaXMubWFrZVJCVCh0ZSksUD10aGlzLnN0dWIodGUpLFY9bmV3IEFycmF5KHRl''@;'; + put 'put ''KSxUPW5ldyBBcnJheSh0ZSksUz1uZXcgQXJyYXkodGUpLEY9bmV3IEFycmF5KHRlKSx5ZT1uZXcgQXJyYXkodGUpLENlPW5ldyBBcnJheSh0ZSksRGU9bmUud29yZHM7RGUubGVuZ3RoPXRlLHRoaXMuY29udmVydDEzYihPLndvcmRzLE8ubGVuZ3RoLFYsdGUpLHRoaXMuY29udmVydDEzYih6''@;'; + put 'put ''LndvcmRzLHoubGVuZ3RoLEYsdGUpLHRoaXMudHJhbnNmb3JtKFYsUCxULFMsdGUseCksdGhpcy50cmFuc2Zvcm0oRixQLHllLENlLHRlLHgpO2Zvcih2YXIgUGU9MDtQZTx0ZTtQZSsrKXt2YXIgUWU9VFtQZV0qeWVbUGVdLVNbUGVdKkNlW1BlXTtTW1BlXT1UW1BlXSpDZVtQZV0rU1tQZV0q''@;'; + put 'put ''eWVbUGVdLFRbUGVdPVFlfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShULFMsdGUpLHRoaXMudHJhbnNmb3JtKFQsUyxEZSxQLHRlLHgpLHRoaXMuY29uanVnYXRlKERlLFAsdGUpLHRoaXMubm9ybWFsaXplMTNiKERlLHRlKSxuZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsbmUubGVu''@;'; + put 'put ''Z3RoPU8ubGVuZ3RoK3oubGVuZ3RoLG5lLnN0cmlwKCl9LFUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLHRoaXMubXVsVG8oTyx6KX0sVS5wcm90b3R5cGUubXVsZj1mdW5j''@;'; + put 'put ''dGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLG9lKHRoaXMsTyx6KX0sVS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKE8sdGhpcyl9LFUucHJvdG90eXBlLmlt''@;'; + put 'put ''dWxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpO2Zvcih2YXIgej0wLG5lPTA7bmU8dGhpcy5sZW5ndGg7bmUrKyl7dmFyIHRlPSgwfHRoaXMud29yZHNbbmVdKSpPLHg9KDY3MTA4ODYzJnRlKSsoNjcxMDg4NjMmeik7ej4+PTI2LHorPXRlLzY3MTA4''@;'; + put 'put ''ODY0fDAseis9eD4+PjI2LHRoaXMud29yZHNbbmVdPTY3MTA4ODYzJnh9cmV0dXJuIDAhPT16JiYodGhpcy53b3Jkc1tuZV09eix0aGlzLmxlbmd0aCsrKSx0aGlzfSxVLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oTyl9LFUucHJvdG90eXBl''@;'; + put 'put ''LnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sVS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sVS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKE8pe3ZhciB6PWZ1bmN0aW9uIGVlKGhlKXtmb3IodmFyIE89bmV3IEFy''@;'; + put 'put ''cmF5KGhlLmJpdExlbmd0aCgpKSx6PTA7ejxPLmxlbmd0aDt6Kyspe3ZhciB0ZT16JTI2O09bel09KGhlLndvcmRzW3ovMjZ8MF0mMTw8dGUpPj4+dGV9cmV0dXJuIE99KE8pO2lmKDA9PT16Lmxlbmd0aClyZXR1cm4gbmV3IFUoMSk7Zm9yKHZhciBuZT10aGlzLHRlPTA7dGU8ei5sZW5ndGgm''@;'; + put 'put ''JjA9PT16W3RlXTt0ZSsrLG5lPW5lLnNxcigpKTtpZigrK3RlPHoubGVuZ3RoKWZvcih2YXIgeD1uZS5zcXIoKTt0ZTx6Lmxlbmd0aDt0ZSsrLHg9eC5zcXIoKSkwIT09elt0ZV0mJihuZT1uZS5tdWwoeCkpO3JldHVybiBuZX0sVS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKE8pe0UoIm51''@;'; + put 'put ''bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgeCx6PU8lMjYsbmU9KE8teikvMjYsdGU9NjcxMDg4NjM+Pj4yNi16PDwyNi16O2lmKDAhPT16KXt2YXIgUD0wO2Zvcih4PTA7eDx0aGlzLmxlbmd0aDt4Kyspe3ZhciBWPXRoaXMud29yZHNbeF0mdGU7dGhpcy53b3Jkc1t4XT0oMHx0aGlzLndv''@;'; + put 'put ''cmRzW3hdKS1WPDx6fFAsUD1WPj4+MjYten1QJiYodGhpcy53b3Jkc1t4XT1QLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1uZSl7Zm9yKHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl0aGlzLndvcmRzW3grbmVdPXRoaXMud29yZHNbeF07Zm9yKHg9MDt4PG5lO3grKyl0aGlzLndvcmRzW3hdPTA7''@;'; + put 'put ''dGhpcy5sZW5ndGgrPW5lfXJldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihPKX0sVS5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKE8seixuZSl7dmFyIHRlO0UoIm51bWJlciI9''@;'; + put 'put ''PXR5cGVvZiBPJiZPPj0wKSx0ZT16Pyh6LXolMjYpLzI2OjA7dmFyIHg9TyUyNixQPU1hdGgubWluKChPLXgpLzI2LHRoaXMubGVuZ3RoKSxWPTY3MTA4ODYzXjY3MTA4ODYzPj4+eDw8eCxUPW5lO2lmKHRlLT1QLHRlPU1hdGgubWF4KDAsdGUpLFQpe2Zvcih2YXIgUz0wO1M8UDtTKyspVC53''@;'; + put 'put ''b3Jkc1tTXT10aGlzLndvcmRzW1NdO1QubGVuZ3RoPVB9aWYoMCE9PVApaWYodGhpcy5sZW5ndGg+UClmb3IodGhpcy5sZW5ndGgtPVAsUz0wO1M8dGhpcy5sZW5ndGg7UysrKXRoaXMud29yZHNbU109dGhpcy53b3Jkc1tTK1BdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7''@;'; + put 'put ''dmFyIEY9MDtmb3IoUz10aGlzLmxlbmd0aC0xO1M+PTAmJigwIT09Rnx8Uz49dGUpO1MtLSl7dmFyIHllPTB8dGhpcy53b3Jkc1tTXTt0aGlzLndvcmRzW1NdPUY8PDI2LXh8eWU+Pj54LEY9eWUmVn1yZXR1cm4gVCYmMCE9PUYmJihULndvcmRzW1QubGVuZ3RoKytdPUYpLDA9PT10aGlzLmxl''@;'; + put 'put ''bmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKE8seixuZSl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKE8seixuZSl9LFUucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oTyl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihPKX0sVS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oTyl9LFUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihPKX0sVS5wcm90b3R5cGUudXNo''@;'; + put 'put ''cm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oTyl9LFUucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LG5lPShPLXopLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PW5lfHwhKHRoaXMud29yZHNb''@;'; + put 'put ''bmVdJjE8PHopKX0sVS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LG5lPShPLXopLzI2O3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0''@;'; + put 'put ''aGlzLmxlbmd0aDw9bmU/dGhpczooMCE9PXomJm5lKyssdGhpcy5sZW5ndGg9TWF0aC5taW4obmUsdGhpcy5sZW5ndGgpLDAhPT16JiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj56PDx6KSx0aGlzLnN0cmlwKCkpfSxVLnByb3RvdHlwZS5tYXNrbj1m''@;'; + put 'put ''dW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihPKX0sVS5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MD90aGlzLmlzdWJuKC1PKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5n''@;'; + put 'put ''dGgmJigwfHRoaXMud29yZHNbMF0pPE8/KHRoaXMud29yZHNbMF09Ty0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihPKX0sVS5wcm90b3R5cGUuX2lh''@;'; + put 'put ''ZGRuPWZ1bmN0aW9uKE8pe3RoaXMud29yZHNbMF0rPU87Zm9yKHZhciB6PTA7ejx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t6XT49NjcxMDg4NjQ7eisrKXRoaXMud29yZHNbel0tPTY3MTA4ODY0LHo9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbeisxXT0xOnRoaXMud29yZHNbeisxXSsr''@;'; + put 'put ''O3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx6KzEpLHRoaXN9LFUucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKE8pe2lmKEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MClyZXR1cm4gdGhpcy5pYWRkbigtTyk7aWYoMCE9PXRoaXMubmVnYXRp''@;'; + put 'put ''dmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPU8sMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBm''@;'; + put 'put ''b3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPDA7eisrKXRoaXMud29yZHNbel0rPTY3MTA4ODY0LHRoaXMud29yZHNbeisxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4o''@;'; + put 'put ''Tyl9LFUucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihPKX0sVS5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sVS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUo''@;'; + put 'put ''KS5pYWJzKCl9LFUucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihPLHosbmUpe3ZhciB4O3RoaXMuX2V4cGFuZChPLmxlbmd0aCtuZSk7dmFyIFAsVj0wO2Zvcih4PTA7eDxPLmxlbmd0aDt4Kyspe1A9KDB8dGhpcy53b3Jkc1t4K25lXSkrVjt2YXIgVD0oMHxPLndvcmRzW3hdKSp6''@;'; + put 'put ''O1Y9KChQLT02NzEwODg2MyZUKT4+MjYpLShULzY3MTA4ODY0fDApLHRoaXMud29yZHNbeCtuZV09NjcxMDg4NjMmUH1mb3IoO3g8dGhpcy5sZW5ndGgtbmU7eCsrKVY9KFA9KDB8dGhpcy53b3Jkc1t4K25lXSkrVik+PjI2LHRoaXMud29yZHNbeCtuZV09NjcxMDg4NjMmUDtpZigwPT09Vily''@;'; + put 'put ''ZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihFKC0xPT09ViksVj0wLHg9MDt4PHRoaXMubGVuZ3RoO3grKylWPShQPS0oMHx0aGlzLndvcmRzW3hdKStWKT4+MjYsdGhpcy53b3Jkc1t4XT02NzEwODg2MyZQO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5f''@;'; + put 'put ''d29yZERpdj1mdW5jdGlvbihPLHope3ZhciBuZSx0ZT10aGlzLmNsb25lKCkseD1PLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdOzAhPShuZT0yNi10aGlzLl9jb3VudEJpdHMoUCkpJiYoeD14LnVzaGxuKG5lKSx0ZS5pdXNobG4obmUpLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdKTt2YXIgUyxU''@;'; + put 'put ''PXRlLmxlbmd0aC14Lmxlbmd0aDtpZigibW9kIiE9PXopeyhTPW5ldyBVKG51bGwpKS5sZW5ndGg9VCsxLFMud29yZHM9bmV3IEFycmF5KFMubGVuZ3RoKTtmb3IodmFyIEY9MDtGPFMubGVuZ3RoO0YrKylTLndvcmRzW0ZdPTB9dmFyIHllPXRlLmNsb25lKCkuX2lzaGxuc3VibXVsKHgsMSxU''@;'; + put 'put ''KTswPT09eWUubmVnYXRpdmUmJih0ZT15ZSxTJiYoUy53b3Jkc1tUXT0xKSk7Zm9yKHZhciBDZT1ULTE7Q2U+PTA7Q2UtLSl7dmFyIERlPTY3MTA4ODY0KigwfHRlLndvcmRzW3gubGVuZ3RoK0NlXSkrKDB8dGUud29yZHNbeC5sZW5ndGgrQ2UtMV0pO2ZvcihEZT1NYXRoLm1pbihEZS9QfDAs''@;'; + put 'put ''NjcxMDg4NjMpLHRlLl9pc2hsbnN1Ym11bCh4LERlLENlKTswIT09dGUubmVnYXRpdmU7KURlLS0sdGUubmVnYXRpdmU9MCx0ZS5faXNobG5zdWJtdWwoeCwxLENlKSx0ZS5pc1plcm8oKXx8KHRlLm5lZ2F0aXZlXj0xKTtTJiYoUy53b3Jkc1tDZV09RGUpfXJldHVybiBTJiZTLnN0cmlwKCks''@;'; + put 'put ''dGUuc3RyaXAoKSwiZGl2IiE9PXomJjAhPT1uZSYmdGUuaXVzaHJuKG5lKSx7ZGl2OlN8fG51bGwsbW9kOnRlfX0sVS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKE8seixuZSl7cmV0dXJuIEUoIU8uaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgVSgwKSxtb2Q6bmV3IFUoMCl9''@;'; + put 'put ''OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZT8oUD10aGlzLm5lZygpLmRpdm1vZChPLHopLCJtb2QiIT09eiYmKHRlPVAuZGl2Lm5lZygpKSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLG5lJiYwIT09eC5uZWdhdGl2ZSYmeC5pYWRkKE8pKSx7ZGl2OnRlLG1vZDp4fSk6MD09''@;'; + put 'put ''PXRoaXMubmVnYXRpdmUmJjAhPT1PLm5lZ2F0aXZlPyhQPXRoaXMuZGl2bW9kKE8ubmVnKCkseiksIm1vZCIhPT16JiYodGU9UC5kaXYubmVnKCkpLHtkaXY6dGUsbW9kOlAubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmTy5uZWdhdGl2ZSk/KFA9dGhpcy5uZWcoKS5kaXZtb2QoTy5uZWcoKSx6''@;'; + put 'put ''KSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLG5lJiYwIT09eC5uZWdhdGl2ZSYmeC5pc3ViKE8pKSx7ZGl2OlAuZGl2LG1vZDp4fSk6Ty5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKE8pPDA/e2RpdjpuZXcgVSgwKSxtb2Q6dGhpc306MT09PU8ubGVuZ3RoPyJkaXYiPT09ej97ZGl2''@;'; + put 'put ''OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT16P3tkaXY6bnVsbCxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oTy53b3Jkc1swXSksbW9kOm5ldyBVKHRoaXMubW9kbihPLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoTyx6''@;'; + put 'put ''KTt2YXIgdGUseCxQfSxVLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sImRpdiIsITEpLmRpdn0sVS5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmRpdm1vZChPLCJtb2QiLCExKS5tb2R9LFUucHJvdG90eXBlLnVtb2Q9ZnVuY3Rp''@;'; + put 'put ''b24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITApLm1vZH0sVS5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5kaXZtb2QoTyk7aWYoei5tb2QuaXNaZXJvKCkpcmV0dXJuIHouZGl2O3ZhciBuZT0wIT09ei5kaXYubmVnYXRpdmU/ei5tb2QuaXN1YihP''@;'; + put 'put ''KTp6Lm1vZCx0ZT1PLnVzaHJuKDEpLHg9Ty5hbmRsbigxKSxQPW5lLmNtcCh0ZSk7cmV0dXJuIFA8MHx8MT09PXgmJjA9PT1QP3ouZGl2OjAhPT16LmRpdi5uZWdhdGl2ZT96LmRpdi5pc3VibigxKTp6LmRpdi5pYWRkbigxKX0sVS5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihPKXtFKE88PTY3''@;'; + put 'put ''MTA4ODYzKTtmb3IodmFyIHo9KDE8PDI2KSVPLG5lPTAsdGU9dGhpcy5sZW5ndGgtMTt0ZT49MDt0ZS0tKW5lPSh6Km5lKygwfHRoaXMud29yZHNbdGVdKSklTztyZXR1cm4gbmV9LFUucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0wLG5lPXRo''@;'; + put 'put ''aXMubGVuZ3RoLTE7bmU+PTA7bmUtLSl7dmFyIHRlPSgwfHRoaXMud29yZHNbbmVdKSs2NzEwODg2NCp6O3RoaXMud29yZHNbbmVdPXRlL098MCx6PXRlJU99cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZu''@;'; + put 'put ''KE8pfSxVLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUpLEUoIU8uaXNaZXJvKCkpO3ZhciB6PXRoaXMsbmU9Ty5jbG9uZSgpO3o9MCE9PXoubmVnYXRpdmU/ei51bW9kKE8pOnouY2xvbmUoKTtmb3IodmFyIHRlPW5ldyBVKDEpLHg9bmV3IFUoMCksUD1uZXcg''@;'; + put 'put ''VSgwKSxWPW5ldyBVKDEpLFQ9MDt6LmlzRXZlbigpJiZuZS5pc0V2ZW4oKTspei5pdXNocm4oMSksbmUuaXVzaHJuKDEpLCsrVDtmb3IodmFyIFM9bmUuY2xvbmUoKSxGPXouY2xvbmUoKTshei5pc1plcm8oKTspe2Zvcih2YXIgeWU9MCxDZT0xOzA9PSh6LndvcmRzWzBdJkNlKSYmeWU8MjY7''@;'; + put 'put ''Kyt5ZSxDZTw8PTEpO2lmKHllPjApZm9yKHouaXVzaHJuKHllKTt5ZS0tID4wOykodGUuaXNPZGQoKXx8eC5pc09kZCgpKSYmKHRlLmlhZGQoUykseC5pc3ViKEYpKSx0ZS5pdXNocm4oMSkseC5pdXNocm4oMSk7Zm9yKHZhciBEZT0wLFBlPTE7MD09KG5lLndvcmRzWzBdJlBlKSYmRGU8MjY7''@;'; + put 'put ''KytEZSxQZTw8PTEpO2lmKERlPjApZm9yKG5lLml1c2hybihEZSk7RGUtLSA+MDspKFAuaXNPZGQoKXx8Vi5pc09kZCgpKSYmKFAuaWFkZChTKSxWLmlzdWIoRikpLFAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpO3ouY21wKG5lKT49MD8oei5pc3ViKG5lKSx0ZS5pc3ViKFApLHguaXN1YihWKSk6''@;'; + put 'put ''KG5lLmlzdWIoeiksUC5pc3ViKHRlKSxWLmlzdWIoeCkpfXJldHVybnthOlAsYjpWLGdjZDpuZS5pdXNobG4oVCl9fSxVLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7dmFyIHllLHo9dGhpcyxuZT1PLmNsb25lKCk7ej0wIT09''@;'; + put 'put ''ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgdGU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPW5lLmNsb25lKCk7ei5jbXBuKDEpPjAmJm5lLmNtcG4oMSk+MDspe2Zvcih2YXIgVj0wLFQ9MTswPT0oei53b3Jkc1swXSZUKSYmVjwyNjsrK1YsVDw8PTEpO2lmKFY+MClmb3Io''@;'; + put 'put ''ei5pdXNocm4oVik7Vi0tID4wOyl0ZS5pc09kZCgpJiZ0ZS5pYWRkKFApLHRlLml1c2hybigxKTtmb3IodmFyIFM9MCxGPTE7MD09KG5lLndvcmRzWzBdJkYpJiZTPDI2OysrUyxGPDw9MSk7aWYoUz4wKWZvcihuZS5pdXNocm4oUyk7Uy0tID4wOyl4LmlzT2RkKCkmJnguaWFkZChQKSx4Lml1''@;'; + put 'put ''c2hybigxKTt6LmNtcChuZSk+PTA/KHouaXN1YihuZSksdGUuaXN1Yih4KSk6KG5lLmlzdWIoeikseC5pc3ViKHRlKSl9cmV0dXJuKHllPTA9PT16LmNtcG4oMSk/dGU6eCkuY21wbigwKTwwJiZ5ZS5pYWRkKE8pLHllfSxVLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oTyl7aWYodGhpcy5pc1pl''@;'; + put 'put ''cm8oKSlyZXR1cm4gTy5hYnMoKTtpZihPLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciB6PXRoaXMuY2xvbmUoKSxuZT1PLmNsb25lKCk7ei5uZWdhdGl2ZT0wLG5lLm5lZ2F0aXZlPTA7Zm9yKHZhciB0ZT0wO3ouaXNFdmVuKCkmJm5lLmlzRXZlbigpO3RlKyspei5pdXNocm4oMSks''@;'; + put 'put ''bmUuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt6LmlzRXZlbigpOyl6Lml1c2hybigxKTtmb3IoO25lLmlzRXZlbigpOyluZS5pdXNocm4oMSk7dmFyIHg9ei5jbXAobmUpO2lmKHg8MCl7dmFyIFA9ejt6PW5lLG5lPVB9ZWxzZSBpZigwPT09eHx8MD09PW5lLmNtcG4oMSkpYnJlYWs7ei5pc3Vi''@;'; + put 'put ''KG5lKX1yZXR1cm4gbmUuaXVzaGxuKHRlKX0sVS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5lZ2NkKE8pLmEudW1vZChPKX0sVS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5pc09kZD1m''@;'; + put 'put ''dW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sVS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMud29yZHNbMF0mT30sVS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8pO3ZhciB6PU8lMjYsbmU9KE8teikv''@;'; + put 'put ''MjYsdGU9MTw8ejtpZih0aGlzLmxlbmd0aDw9bmUpcmV0dXJuIHRoaXMuX2V4cGFuZChuZSsxKSx0aGlzLndvcmRzW25lXXw9dGUsdGhpcztmb3IodmFyIHg9dGUsUD1uZTswIT09eCYmUDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPTB8dGhpcy53b3Jkc1tQXTt4PShWKz14KT4+PjI2LHRoaXMu''@;'; + put 'put ''d29yZHNbUF09ViY9NjcxMDg4NjN9cmV0dXJuIDAhPT14JiYodGhpcy53b3Jkc1tQXT14LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxVLnByb3RvdHlwZS5jbXBuPWZ1''@;'; + put 'put ''bmN0aW9uKE8pe3ZhciBuZSx6PU88MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXopcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnopcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpbmU9MTtlbHNle3omJihPPS1PKSxFKE88PTY3MTA4ODYzLCJOdW1iZXIgaXMg''@;'; + put 'put ''dG9vIGJpZyIpO3ZhciB0ZT0wfHRoaXMud29yZHNbMF07bmU9dGU9PT1PPzA6dGU8Tz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1uZTpuZX0sVS5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKE8pe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4tMTtp''@;'; + put 'put ''ZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHo9dGhpcy51Y21wKE8pO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC16Onp9LFUucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oTyl7aWYodGhpcy5sZW5ndGg+Ty5sZW5ndGgpcmV0dXJuIDE7aWYodGhp''@;'; + put 'put ''cy5sZW5ndGg8Ty5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB6PTAsbmU9dGhpcy5sZW5ndGgtMTtuZT49MDtuZS0tKXt2YXIgdGU9MHx0aGlzLndvcmRzW25lXSx4PTB8Ty53b3Jkc1tuZV07aWYodGUhPT14KXt0ZTx4P3o9LTE6dGU+eCYmKHo9MSk7YnJlYWt9fXJldHVybiB6fSxVLnByb3Rv''@;'; + put 'put ''dHlwZS5ndG49ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmd0PWZ1bmN0aW9uKE8pe3JldHVybiAxPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKT49MH0sVS5wcm90b3R5cGUuZ3Rl''@;'; + put 'put ''PWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKT49MH0sVS5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5sdD1mdW5jdGlvbihPKXtyZXR1cm4tMT09PXRoaXMuY21wKE8pfSxVLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9u''@;'; + put 'put ''KE8pe3JldHVybiB0aGlzLmNtcG4oTyk8PTB9LFUucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXAoTyk8PTB9LFUucHJvdG90eXBlLmVxbj1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oTyl7cmV0dXJu''@;'; + put 'put ''IDA9PT10aGlzLmNtcChPKX0sVS5yZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBUZShPKX0sVS5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksRSgwPT09dGhpcy5uZWdhdGl2ZSwi''@;'; + put 'put ''cmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxPLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4''@;'; + put 'put ''dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxVLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucmVkPU8sdGhpc30sVS5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJl''@;'; + put 'put ''ZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJQWRk''@;'; + put 'put ''PWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRo''@;'; + put 'put ''IHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRT''@;'; + put 'put ''aGw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRo''@;'; + put 'put ''IHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5tdWwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJp''@;'; + put 'put ''ZnkyKHRoaXMsTyksdGhpcy5yZWQuaW11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0s''@;'; + put 'put ''VS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LFUucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZEludm0gd29ya3Mg''@;'; + put 'put ''b25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sVS5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5f''@;'; + put 'put ''dmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LFUucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCYmIU8ucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLE8pfTt2YXIgZGU9''@;'; + put 'put ''e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiB2ZShoZSxPKXt0aGlzLm5hbWU9aGUsdGhpcy5wPW5ldyBVKE8sMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBVKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0''@;'; + put 'put ''aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBBZSgpe3ZlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24ga2UoKXt2ZS5jYWxsKHRoaXMsInAyMjQiLCJm''@;'; + put 'put ''ZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIFNlKCl7dmUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBJ''@;'; + put 'put ''ZSgpe3ZlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gVGUoaGUpe2lmKCJzdHJpbmciPT10eXBlb2YgaGUpe3ZhciBPPVUuX3ByaW1lKGhlKTt0aGlzLm09Ty5w''@;'; + put 'put ''LHRoaXMucHJpbWU9T31lbHNlIEUoaGUuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09aGUsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIEVlKGhlKXtUZS5jYWxsKHRoaXMsaGUpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQl''@;'; + put 'put ''MjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IFUoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlz''@;'; + put 'put ''LnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9dmUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgTz1uZXcgVShudWxsKTtyZXR1cm4gTy53b3Jkcz1uZXcgQXJyYXkoTWF0''@;'; + put 'put ''aC5jZWlsKHRoaXMubi8xMykpLE99LHZlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKE8pe3ZhciBuZSx6PU87ZG97dGhpcy5zcGxpdCh6LHRoaXMudG1wKSxuZT0oej0oej10aGlzLmltdWxLKHopKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUobmU+dGhpcy5uKTt2YXIg''@;'; + put 'put ''dGU9bmU8dGhpcy5uPy0xOnoudWNtcCh0aGlzLnApO3JldHVybiAwPT09dGU/KHoud29yZHNbMF09MCx6Lmxlbmd0aD0xKTp0ZT4wP3ouaXN1Yih0aGlzLnApOnZvaWQgMCE9PXouc3RyaXA/ei5zdHJpcCgpOnouX3N0cmlwKCksen0sdmUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKE8seil7''@;'; + put 'put ''Ty5pdXNocm4odGhpcy5uLDAseil9LHZlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtyZXR1cm4gTy5pbXVsKHRoaXMuayl9LE1lKEFlLHZlKSxBZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtmb3IodmFyIHRlPU1hdGgubWluKE8ubGVuZ3RoLDkpLHg9MDt4PHRlO3grKyl6''@;'; + put 'put ''LndvcmRzW3hdPU8ud29yZHNbeF07aWYoei5sZW5ndGg9dGUsTy5sZW5ndGg8PTkpcmV0dXJuIE8ud29yZHNbMF09MCx2b2lkKE8ubGVuZ3RoPTEpO3ZhciBQPU8ud29yZHNbOV07Zm9yKHoud29yZHNbei5sZW5ndGgrK109NDE5NDMwMyZQLHg9MTA7eDxPLmxlbmd0aDt4Kyspe3ZhciBWPTB8''@;'; + put 'put ''Ty53b3Jkc1t4XTtPLndvcmRzW3gtMTBdPSg0MTk0MzAzJlYpPDw0fFA+Pj4yMixQPVZ9Ty53b3Jkc1t4LTEwXT1QPj4+PTIyLE8ubGVuZ3RoLT0wPT09UCYmTy5sZW5ndGg+MTA/MTA6OX0sQWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe08ud29yZHNbTy5sZW5ndGhdPTAsTy53b3Jk''@;'; + put 'put ''c1tPLmxlbmd0aCsxXT0wLE8ubGVuZ3RoKz0yO2Zvcih2YXIgej0wLG5lPTA7bmU8Ty5sZW5ndGg7bmUrKyl7dmFyIHRlPTB8Ty53b3Jkc1tuZV07Ty53b3Jkc1tuZV09NjcxMDg4NjMmKHorPTk3Nyp0ZSksej02NCp0ZSsoei82NzEwODg2NHwwKX1yZXR1cm4gMD09PU8ud29yZHNbTy5sZW5n''@;'; + put 'put ''dGgtMV0mJihPLmxlbmd0aC0tLDA9PT1PLndvcmRzW08ubGVuZ3RoLTFdJiZPLmxlbmd0aC0tKSxPfSxNZShrZSx2ZSksTWUoU2UsdmUpLE1lKEllLHZlKSxJZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PTAsbmU9MDtuZTxPLmxlbmd0aDtuZSsrKXt2YXIgdGU9MTkq''@;'; + put 'put ''KDB8Ty53b3Jkc1tuZV0pK3oseD02NzEwODg2MyZ0ZTt0ZT4+Pj0yNixPLndvcmRzW25lXT14LHo9dGV9cmV0dXJuIDAhPT16JiYoTy53b3Jkc1tPLmxlbmd0aCsrXT16KSxPfSxVLl9wcmltZT1mdW5jdGlvbihPKXtpZihkZVtPXSlyZXR1cm4gZGVbT107dmFyIHo7aWYoImsyNTYiPT09Tyl6''@;'; + put 'put ''PW5ldyBBZTtlbHNlIGlmKCJwMjI0Ij09PU8pej1uZXcga2U7ZWxzZSBpZigicDE5MiI9PT1PKXo9bmV3IFNlO2Vsc2V7aWYoInAyNTUxOSIhPT1PKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK08pO3o9bmV3IEllfXJldHVybiBkZVtPXT16LHp9LFRlLnByb3RvdHlwZS5fdmVy''@;'; + put 'put ''aWZ5MT1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKE8seil7RSgwPT0oTy5uZWdhdGl2ZXx6''@;'; + put 'put ''Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxFKE8ucmVkJiZPLnJlZD09PXoucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFRlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJl''@;'; + put 'put ''ZHVjZShPKS5fZm9yY2VSZWQodGhpcyk6Ty51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKE8pe3JldHVybiBPLmlzWmVybygpP08uY2xvbmUoKTp0aGlzLm0uc3ViKE8pLl9mb3JjZVJlZCh0aGlzKX0sVGUucHJvdG90eXBlLmFkZD1mdW5j''@;'; + put 'put ''dGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5hZGQoeik7cmV0dXJuIG5lLmNtcCh0aGlzLm0pPj0wJiZuZS5pc3ViKHRoaXMubSksbmUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9''@;'; + put 'put ''Ty5pYWRkKHopO3JldHVybiBuZS5jbXAodGhpcy5tKT49MCYmbmUuaXN1Yih0aGlzLm0pLG5lfSxUZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLnN1Yih6KTtyZXR1cm4gbmUuY21wbigwKTwwJiZuZS5pYWRkKHRoaXMubSksbmUuX2Zv''@;'; + put 'put ''cmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5pc3ViKHopO3JldHVybiBuZS5jbXBuKDApPDAmJm5lLmlhZGQodGhpcy5tKSxuZX0sVGUucHJvdG90eXBlLnNobD1mdW5jdGlvbihPLHope3JldHVybiB0aGlz''@;'; + put 'put ''Ll92ZXJpZnkxKE8pLHRoaXMuaW1vZChPLnVzaGxuKHopKX0sVGUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLmltdWwoeikpfSxUZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3Zlcmlm''@;'; + put 'put ''eTIoTyx6KSx0aGlzLmltb2QoTy5tdWwoeikpfSxUZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbXVsKE8sTy5jbG9uZSgpKX0sVGUucHJvdG90eXBlLnNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5tdWwoTyxPKX0sVGUucHJvdG90eXBlLnNxcnQ9ZnVuY3Rp''@;'; + put 'put ''b24oTyl7aWYoTy5pc1plcm8oKSlyZXR1cm4gTy5jbG9uZSgpO3ZhciB6PXRoaXMubS5hbmRsbigzKTtpZihFKHolMj09MSksMz09PXope3ZhciBuZT10aGlzLm0uYWRkKG5ldyBVKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KE8sbmUpfWZvcih2YXIgdGU9dGhpcy5tLnN1Ym4oMSks''@;'; + put 'put ''eD0wOyF0ZS5pc1plcm8oKSYmMD09PXRlLmFuZGxuKDEpOyl4KyssdGUuaXVzaHJuKDEpO0UoIXRlLmlzWmVybygpKTt2YXIgUD1uZXcgVSgxKS50b1JlZCh0aGlzKSxWPVAucmVkTmVnKCksVD10aGlzLm0uc3VibigxKS5pdXNocm4oMSksUz10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKFM9bmV3''@;'; + put 'put ''IFUoMipTKlMpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhTLFQpLmNtcChWKTspUy5yZWRJQWRkKFYpO2Zvcih2YXIgRj10aGlzLnBvdyhTLHRlKSx5ZT10aGlzLnBvdyhPLHRlLmFkZG4oMSkuaXVzaHJuKDEpKSxDZT10aGlzLnBvdyhPLHRlKSxEZT14OzAhPT1DZS5jbXAoUCk7KXtmb3Io''@;'; + put 'put ''dmFyIFBlPUNlLFFlPTA7MCE9PVBlLmNtcChQKTtRZSsrKVBlPVBlLnJlZFNxcigpO0UoUWU8RGUpO3ZhciAkZT10aGlzLnBvdyhGLG5ldyBVKDEpLml1c2hsbihEZS1RZS0xKSk7eWU9eWUucmVkTXVsKCRlKSxGPSRlLnJlZFNxcigpLENlPUNlLnJlZE11bChGKSxEZT1RZX1yZXR1cm4geWV9''@;'; + put 'put ''LFRlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3ZhciB6PU8uX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT16Lm5lZ2F0aXZlPyh6Lm5lZ2F0aXZlPTAsdGhpcy5pbW9kKHopLnJlZE5lZygpKTp0aGlzLmltb2Qoeil9LFRlLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyx6KXtpZih6Lmlz''@;'; + put 'put ''WmVybygpKXJldHVybiBuZXcgVSgxKS50b1JlZCh0aGlzKTtpZigwPT09ei5jbXBuKDEpKXJldHVybiBPLmNsb25lKCk7dmFyIHRlPW5ldyBBcnJheSgxNik7dGVbMF09bmV3IFUoMSkudG9SZWQodGhpcyksdGVbMV09Tztmb3IodmFyIHg9Mjt4PHRlLmxlbmd0aDt4KyspdGVbeF09dGhpcy5t''@;'; + put 'put ''dWwodGVbeC0xXSxPKTt2YXIgUD10ZVswXSxWPTAsVD0wLFM9ei5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PVMmJihTPTI2KSx4PXoubGVuZ3RoLTE7eD49MDt4LS0pe2Zvcih2YXIgRj16LndvcmRzW3hdLHllPVMtMTt5ZT49MDt5ZS0tKXt2YXIgQ2U9Rj4+eWUmMTtQIT09dGVbMF0mJihQPXRo''@;'; + put 'put ''aXMuc3FyKFApKSwwIT09Q2V8fDAhPT1WPyhWPDw9MSxWfD1DZSwoND09KytUfHwwPT09eCYmMD09PXllKSYmKFA9dGhpcy5tdWwoUCx0ZVtWXSksVD0wLFY9MCkpOlQ9MH1TPTI2fXJldHVybiBQfSxUZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKE8pe3ZhciB6PU8udW1vZCh0aGlz''@;'; + put 'put ''Lm0pO3JldHVybiB6PT09Tz96LmNsb25lKCk6en0sVGUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PU8uY2xvbmUoKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxVLm1vbnQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBFZShPKX0sTWUoRWUsVGUpLEVlLnByb3RvdHlwZS5j''@;'; + put 'put ''b252ZXJ0VG89ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLnVzaGxuKHRoaXMuc2hpZnQpKX0sRWUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PXRoaXMuaW1vZChPLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxFZS5wcm90b3R5cGUu''@;'; + put 'put ''aW11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIE8ud29yZHNbMF09MCxPLmxlbmd0aD0xLE87dmFyIG5lPU8uaW11bCh6KSx0ZT1uZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSks''@;'; + put 'put ''eD1uZS5pc3ViKHRlKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sRWUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPLHope2lmKE8u''@;'; + put 'put ''aXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgbmU9Ty5tdWwoeiksdGU9bmUubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLHg9bmUuaXN1Yih0ZSkuaXVzaHJuKHRoaXMu''@;'; + put 'put ''c2hpZnQpLFA9eDtyZXR1cm4geC5jbXAodGhpcy5tKT49MD9QPXguaXN1Yih0aGlzLm0pOnguY21wbigwKTwwJiYoUD14LmlhZGQodGhpcy5tKSksUC5fZm9yY2VSZWQodGhpcyl9LEVlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltb2QoTy5faW52bXAodGhpcy5t''@;'; + put 'put ''KS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KFhlPUwubm1kKFhlKSx0aGlzKX0sMzIzOTE6WGU9PntmdW5jdGlvbiBKZShMLG1lKXtpZighTCl0aHJvdyBuZXcgRXJyb3IobWV8fCJBc3NlcnRpb24gZmFpbGVkIil9WGUuZXhwb3J0cz1KZSxKZS5lcXVhbD1mdW5jdGlvbihtZSxC''@;'; + put 'put ''LEUpe2lmKG1lIT1CKXRocm93IG5ldyBFcnJvcihFfHwiQXNzZXJ0aW9uIGZhaWxlZDogIittZSsiICE9ICIrQil9fSw1ODE5NTooWGUsSmUpPT57InVzZSBzdHJpY3QiO3ZhciBMPUplO2Z1bmN0aW9uIEIoTWUpe3JldHVybiAxPT09TWUubGVuZ3RoPyIwIitNZTpNZX1mdW5jdGlvbiBFKE1l''@;'; + put 'put ''KXtmb3IodmFyIFU9IiIsUT0wO1E8TWUubGVuZ3RoO1ErKylVKz1CKE1lW1FdLnRvU3RyaW5nKDE2KSk7cmV0dXJuIFV9TC50b0FycmF5PWZ1bmN0aW9uIG1lKE1lLFUpe2lmKEFycmF5LmlzQXJyYXkoTWUpKXJldHVybiBNZS5zbGljZSgpO2lmKCFNZSlyZXR1cm5bXTt2YXIgUT1bXTtpZigi''@;'; + put 'put ''c3RyaW5nIiE9dHlwZW9mIE1lKXtmb3IodmFyIFo9MDtaPE1lLmxlbmd0aDtaKyspUVtaXT0wfE1lW1pdO3JldHVybiBRfWlmKCJoZXgiPT09VSlmb3IoKE1lPU1lLnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKE1lPSIwIitNZSksWj0wO1o8TWUubGVuZ3RoO1or''@;'; + put 'put ''PTIpUS5wdXNoKHBhcnNlSW50KE1lW1pdK01lW1orMV0sMTYpKTtlbHNlIGZvcihaPTA7WjxNZS5sZW5ndGg7WisrKXt2YXIgaWU9TWUuY2hhckNvZGVBdChaKSxsZT1pZT4+OCxZPTI1NSZpZTtsZT9RLnB1c2gobGUsWSk6US5wdXNoKFkpfXJldHVybiBRfSxMLnplcm8yPUIsTC50b0hleD1F''@;'; + put 'put ''LEwuZW5jb2RlPWZ1bmN0aW9uKFUsUSl7cmV0dXJuImhleCI9PT1RP0UoVSk6VX19LDI3MDg4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiYWYiLHttb250aHM6IkphbnVhcmllX0ZlYnJ1YXJpZV9NYWFydF9BcHJpbF9NZWlf''@;'; + put 'put ''SnVuaWVfSnVsaWVfQXVndXN0dXNfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTXJ0X0Fwcl9NZWlfSnVuX0p1bF9BdWdfU2VwX09rdF9Ob3ZfRGVzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTb25kYWdfTWFhbmRh''@;'; + put 'put ''Z19EaW5zZGFnX1dvZW5zZGFnX0RvbmRlcmRhZ19WcnlkYWdfU2F0ZXJkYWciLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU29uX01hYV9EaW5fV29lX0Rvbl9WcnlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTb19NYV9EaV9Xb19Eb19Wcl9TYSIuc3BsaXQoIl8iKSxtZXJpZGll''@;'; + put 'put ''bVBhcnNlOi92bXxubS9pLGlzUE06ZnVuY3Rpb24oRSl7cmV0dXJuL15ubSQvaS50ZXN0KEUpfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFPDEyP1U/InZtIjoiVk0iOlU/Im5tIjoiTk0ifSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJE''@;'; + put 'put ''RC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltWYW5kYWcgb21dIExUIixuZXh0RGF5OiJbTVx4ZjRyZSBvbV0gTFQiLG5leHRXZWVrOiJkZGRkIFtvbV0g''@;'; + put 'put ''TFQiLGxhc3REYXk6IltHaXN0ZXIgb21dIExUIixsYXN0V2VlazoiW0xhYXNdIGRkZGQgW29tXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToib29yICVzIixwYXN0OiIlcyBnZWxlZGUiLHM6IiduIHBhYXIgc2Vrb25kZXMiLHNzOiIlZCBzZWtvbmRlcyIsbToiJ24g''@;'; + put 'put ''bWludXV0IixtbToiJWQgbWludXRlIixoOiInbiB1dXIiLGhoOiIlZCB1cmUiLGQ6IiduIGRhZyIsZGQ6IiVkIGRhZSIsTToiJ24gbWFhbmQiLE1NOiIlZCBtYWFuZGUiLHk6IiduIGphYXIiLHl5OiIlZCBqYWFyIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdGV8ZGUpLyxv''@;'; + put 'put ''cmRpbmFsOmZ1bmN0aW9uKEUpe3JldHVybiBFKygxPT09RXx8OD09PUV8fEU+PTIwPyJzdGUiOiJkZSIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw1MjUwMjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj1mdW5jdGlvbihaKXty''@;'; + put 'put ''ZXR1cm4gMD09PVo/MDoxPT09Wj8xOjI9PT1aPzI6WiUxMDA+PTMmJlolMTAwPD0xMD8zOlolMTAwPj0xMT80OjV9LEU9e3M6WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSIsIlx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1''@;'; + put 'put ''MDYyOSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmZcdTA2MjkiLFsiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjJhXHUwNjI3XHUwNjQ2IiwiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjJhXHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyYlx1MDY0OFx1MDYyN1x1MDY0NiIsIiVkIFx1''@;'; + put 'put ''MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSIsIiVkIFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSJdLG06WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSIsIlx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYy''@;'; + put 'put ''OSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmZcdTA2MjkiLFsiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjJhXHUwNjI3XHUwNjQ2IiwiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjJhXHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyZlx1MDY0Mlx1MDYyN1x1MDYyNlx1MDY0MiIsIiVk''@;'; + put 'put ''IFx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSIsIiVkIFx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSJdLGg6WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSIsIlx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSBcdTA2NDhc''@;'; + put 'put ''dTA2MjdcdTA2MmRcdTA2MmZcdTA2MjkiLFsiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXHUwNjI3XHUwNjQ2IiwiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyN1x1MDYyYSIsIiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1''@;'; + put 'put ''MDYyOSIsIiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSJdLGQ6WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDY0YVx1MDY0OFx1MDY0NSIsIlx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmYiLFsiXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjI3''@;'; + put 'put ''XHUwNjQ2IiwiXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyM1x1MDY0YVx1MDYyN1x1MDY0NSIsIiVkIFx1MDY0YVx1MDY0OFx1MDY0NVx1MDY0Ylx1MDYyNyIsIiVkIFx1MDY0YVx1MDY0OFx1MDY0NSJdLE06WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1XHUw''@;'; + put 'put ''NjQ2IFx1MDYzNFx1MDY0N1x1MDYzMSIsIlx1MDYzNFx1MDY0N1x1MDYzMSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmYiLFsiXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjI3XHUwNjQ2IiwiXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyM1x1MDYzNFx1MDY0N1x1MDYz''@;'; + put 'put ''MSIsIiVkIFx1MDYzNFx1MDY0N1x1MDYzMVx1MDYyNyIsIiVkIFx1MDYzNFx1MDY0N1x1MDYzMSJdLHk6WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDYzOVx1MDYyN1x1MDY0NSIsIlx1MDYzOVx1MDYyN1x1MDY0NSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmYiLFsiXHUw''@;'; + put 'put ''NjM5XHUwNjI3XHUwNjQ1XHUwNjI3XHUwNjQ2IiwiXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyM1x1MDYzOVx1MDY0OFx1MDYyN1x1MDY0NSIsIiVkIFx1MDYzOVx1MDYyN1x1MDY0NVx1MDY0Ylx1MDYyNyIsIiVkIFx1MDYzOVx1MDYyN1x1MDY0NSJdfSxNZT1m''@;'; + put 'put ''dW5jdGlvbihaKXtyZXR1cm4gZnVuY3Rpb24oaWUsbGUsWSxXKXt2YXIgTj1CKGllKSxlZT1FW1pdW0IoaWUpXTtyZXR1cm4gMj09PU4mJihlZT1lZVtsZT8wOjFdKSxlZS5yZXBsYWNlKC8lZC9pLGllKX19LFU9WyJcdTA2MmNcdTA2MjdcdTA2NDZcdTA2NDFcdTA2NGEiLCJcdTA2NDFcdTA2''@;'; + put 'put ''NGFcdTA2NDFcdTA2MzFcdTA2NGEiLCJcdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzMiLCJcdTA2MjNcdTA2NDFcdTA2MzFcdTA2NGFcdTA2NDQiLCJcdTA2NDVcdTA2MjdcdTA2NGEiLCJcdTA2MmNcdTA2NDhcdTA2MjdcdTA2NDYiLCJcdTA2MmNcdTA2NDhcdTA2NGFcdTA2NDRcdTA2NGFcdTA2''@;'; + put 'put ''MjkiLCJcdTA2MjNcdTA2NDhcdTA2MmEiLCJcdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzEiLCJcdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MmZcdTA2NGFcdTA2MzNcdTA2''@;'; + put 'put ''NDVcdTA2MjhcdTA2MzEiXTttZS5kZWZpbmVMb2NhbGUoImFyLWR6Iix7bW9udGhzOlUsbW9udGhzU2hvcnQ6VSx3ZWVrZGF5czoiXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyN1x1MDY0NFx1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MjdcdTA2NDRcdTA2''@;'; + put 'put ''MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MjdcdTA2NDRcdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjI3XHUw''@;'; + put 'put ''NjQ0XHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjVcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYy''@;'; + put 'put ''N1x1MDYyMV9cdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNjJkX1x1MDY0Nl9cdTA2MmJfXHUwNjMxX1x1MDYyZV9cdTA2MmNfXHUwNjMzIi5zcGxpdCgiXyIpLHdl''@;'; + put 'put ''ZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJEL1x1MjAwZk0vXHUyMDBmWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRp''@;'; + put 'put ''ZW1QYXJzZTovXHUwNjM1fFx1MDY0NS8saXNQTTpmdW5jdGlvbihaKXtyZXR1cm4iXHUwNjQ1Ij09PVp9LG1lcmlkaWVtOmZ1bmN0aW9uKFosaWUsbGUpe3JldHVybiBaPDEyPyJcdTA2MzUiOiJcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1''@;'; + put 'put ''MDY0NSBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDY0Ylx1MDYyNyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4''@;'; + put 'put ''dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixs''@;'; + put 'put ''YXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDYyOFx1MDYzOVx1MDYyZiAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixz''@;'; + put 'put ''Ok1lKCJzIiksc3M6TWUoInMiKSxtOk1lKCJtIiksbW06TWUoIm0iKSxoOk1lKCJoIiksaGg6TWUoImgiKSxkOk1lKCJkIiksZGQ6TWUoImQiKSxNOk1lKCJNIiksTU06TWUoIk0iKSx5Ok1lKCJ5IikseXk6TWUoInkiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihaKXtyZXR1cm4gWi5yZXBsYWNl''@;'; + put 'put ''KC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6MCxkb3k6NH19KX0oTCgxNTQzOSkpfSwzMDEyODpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImFyLWt3Iix7bW9udGhzOiJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzFf''@;'; + put 'put ''XHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDRcdTA2''@;'; + put 'put ''NGFcdTA2NDhcdTA2MzJfXHUwNjNhXHUwNjM0XHUwNjJhX1x1MDYzNFx1MDYyYVx1MDY0Nlx1MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDYyY1x1MDY0Nlx1MDYyOFx1MDYzMSIu''@;'; + put 'put ''c3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNjRhXHUwNjQ2XHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0MVx1MDYyOFx1MDYzMVx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIzXHUwNjI4XHUwNjMxXHUwNjRhXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0''@;'; + put 'put ''YV9cdTA2NGFcdTA2NDhcdTA2NDZcdTA2NGFcdTA2NDhfXHUwNjRhXHUwNjQ4XHUwNjQ0XHUwNjRhXHUwNjQ4XHUwNjMyX1x1MDYzYVx1MDYzNFx1MDYyYV9cdTA2MzRcdTA2MmFcdTA2NDZcdTA2MjhcdTA2MzFfXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxX1x1MDY0Nlx1''@;'; + put 'put ''MDY0OFx1MDY0Nlx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2MmNcdTA2NDZcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDYyN1x1MDY0NFx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2NDRcdTA2MjVcdTA2MmFcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjI3XHUwNjQ0XHUw''@;'; + put 'put ''NjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjI3XHUwNjQ0XHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYyN1x1''@;'; + put 'put ''MDY0NFx1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2MjdcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjJhXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2MzFcdTA2MjhcdTA2MzlcdTA2''@;'; + put 'put ''MjdcdTA2MjFfXHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDYyZF9cdTA2NDZfXHUwNjJiX1x1MDYzMV9cdTA2MmVfXHUwNjJjX1x1MDYzMyIuc3BsaXQoIl8iKSx3''@;'; + put 'put ''ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVE''@;'; + put 'put ''YXk6IltcdTA2MjdcdTA2NDRcdTA2NGFcdTA2NDhcdTA2NDUgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHREYXk6IltcdTA2M2FcdTA2MmZcdTA2MjcgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1''@;'; + put 'put ''MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdERheToiW1x1MDYyM1x1MDY0NVx1MDYzMyBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMz''@;'; + put 'put ''XHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA2NDFcdTA2NGEgJXMiLHBhc3Q6Ilx1MDY0''@;'; + put 'put ''NVx1MDY0Nlx1MDYzMCAlcyIsczoiXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IixzczoiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IixtOiJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiLG1tOiIlZCBcdTA2MmZcdTA2NDJcdTA2MjdcdTA2MjZcdTA2NDIiLGg6Ilx1''@;'; + put 'put ''MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSIsaGg6IiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyN1x1MDYyYSIsZDoiXHUwNjRhXHUwNjQ4XHUwNjQ1IixkZDoiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IixNOiJcdTA2MzRcdTA2NDdcdTA2MzEiLE1NOiIlZCBcdTA2MjNcdTA2MzRcdTA2''@;'; + put 'put ''NDdcdTA2MzEiLHk6Ilx1MDYzM1x1MDY0Nlx1MDYyOSIseXk6IiVkIFx1MDYzM1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyYSJ9LHdlZWs6e2RvdzowLGRveToxMn19KX0oTCgxNTQzOSkpfSw4NDUxOTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17''@;'; + put 'put ''MToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiIsNzoiNyIsODoiOCIsOToiOSIsMDoiMCJ9LEU9ZnVuY3Rpb24oaWUpe3JldHVybiAwPT09aWU/MDoxPT09aWU/MToyPT09aWU/MjppZSUxMDA+PTMmJmllJTEwMDw9MTA/MzppZSUxMDA+PTExPzQ6NX0sTWU9e3M6WyJcdTA2MjNc''@;'; + put 'put ''dTA2NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSIsIlx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmZcdTA2MjkiLFsiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjJhXHUwNjI3XHUwNjQ2''@;'; + put 'put ''IiwiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjJhXHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyYlx1MDY0OFx1MDYyN1x1MDY0NiIsIiVkIFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSIsIiVkIFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSJdLG06WyJcdTA2MjNcdTA2''@;'; + put 'put ''NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSIsIlx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmZcdTA2MjkiLFsiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjJhXHUwNjI3XHUwNjQ2Iiwi''@;'; + put 'put ''XHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjJhXHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyZlx1MDY0Mlx1MDYyN1x1MDYyNlx1MDY0MiIsIiVkIFx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSIsIiVkIFx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSJdLGg6WyJcdTA2MjNc''@;'; + put 'put ''dTA2NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSIsIlx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmZcdTA2MjkiLFsiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXHUwNjI3XHUwNjQ2IiwiXHUwNjMzXHUwNjI3XHUw''@;'; + put 'put ''NjM5XHUwNjJhXHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyN1x1MDYyYSIsIiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSIsIiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSJdLGQ6WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDY0YVx1''@;'; + put 'put ''MDY0OFx1MDY0NSIsIlx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmYiLFsiXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjI3XHUwNjQ2IiwiXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyM1x1MDY0YVx1MDYyN1x1MDY0NSIsIiVkIFx1MDY0''@;'; + put 'put ''YVx1MDY0OFx1MDY0NVx1MDY0Ylx1MDYyNyIsIiVkIFx1MDY0YVx1MDY0OFx1MDY0NSJdLE06WyJcdTA2MjNcdTA2NDJcdTA2NDQgXHUwNjQ1XHUwNjQ2IFx1MDYzNFx1MDY0N1x1MDYzMSIsIlx1MDYzNFx1MDY0N1x1MDYzMSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmYiLFsiXHUwNjM0XHUw''@;'; + put 'put ''NjQ3XHUwNjMxXHUwNjI3XHUwNjQ2IiwiXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyM1x1MDYzNFx1MDY0N1x1MDYzMSIsIiVkIFx1MDYzNFx1MDY0N1x1MDYzMVx1MDYyNyIsIiVkIFx1MDYzNFx1MDY0N1x1MDYzMSJdLHk6WyJcdTA2MjNcdTA2NDJcdTA2NDQg''@;'; + put 'put ''XHUwNjQ1XHUwNjQ2IFx1MDYzOVx1MDYyN1x1MDY0NSIsIlx1MDYzOVx1MDYyN1x1MDY0NSBcdTA2NDhcdTA2MjdcdTA2MmRcdTA2MmYiLFsiXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjI3XHUwNjQ2IiwiXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjRhXHUwNjQ2Il0sIiVkIFx1MDYyM1x1MDYzOVx1''@;'; + put 'put ''MDY0OFx1MDYyN1x1MDY0NSIsIiVkIFx1MDYzOVx1MDYyN1x1MDY0NVx1MDY0Ylx1MDYyNyIsIiVkIFx1MDYzOVx1MDYyN1x1MDY0NSJdfSxVPWZ1bmN0aW9uKGllKXtyZXR1cm4gZnVuY3Rpb24obGUsWSxXLE4pe3ZhciBlZT1FKGxlKSxxPU1lW2llXVtFKGxlKV07cmV0dXJuIDI9PT1lZSYm''@;'; + put 'put ''KHE9cVtZPzA6MV0pLHEucmVwbGFjZSgvJWQvaSxsZSl9fSxRPVsiXHUwNjRhXHUwNjQ2XHUwNjI3XHUwNjRhXHUwNjMxIiwiXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRhXHUwNjMxIiwiXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzIiwiXHUwNjIzXHUwNjI4XHUwNjMxXHUwNjRhXHUw''@;'; + put 'put ''NjQ0IiwiXHUwNjQ1XHUwNjI3XHUwNjRhXHUwNjQ4IiwiXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4IiwiXHUwNjRhXHUwNjQ4XHUwNjQ0XHUwNjRhXHUwNjQ4IiwiXHUwNjIzXHUwNjNhXHUwNjMzXHUwNjM3XHUwNjMzIiwiXHUwNjMzXHUwNjI4XHUwNjJhXHUwNjQ1XHUwNjI4XHUw''@;'; + put 'put ''NjMxIiwiXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxIiwiXHUwNjQ2XHUwNjQ4XHUwNjQxXHUwNjQ1XHUwNjI4XHUwNjMxIiwiXHUwNjJmXHUwNjRhXHUwNjMzXHUwNjQ1XHUwNjI4XHUwNjMxIl07bWUuZGVmaW5lTG9jYWxlKCJhci1seSIse21vbnRoczpRLG1vbnRoc1No''@;'; + put 'put ''b3J0OlEsd2Vla2RheXM6Ilx1MDYyN1x1MDY0NFx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2NDRcdTA2MjVcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjI3XHUwNjQ0XHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyM1x1MDYzMVx1''@;'; + put 'put ''MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjI3XHUwNjQ0XHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYyN1x1MDY0NFx1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2MjNcdTA2''@;'; + put 'put ''MmRcdTA2MmZfXHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9c''@;'; + put 'put ''dTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDYyZF9cdTA2NDZfXHUwNjJiX1x1MDYzMV9cdTA2MmVfXHUwNjJjX1x1MDYzMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpz''@;'; + put 'put ''cyIsTDoiRC9cdTIwMGZNL1x1MjAwZllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDYzNXxcdTA2NDUvLGlzUE06ZnVuY3Rpb24oaWUpe3JldHVybiJcdTA2NDUiPT09''@;'; + put 'put ''aWV9LG1lcmlkaWVtOmZ1bmN0aW9uKGllLGxlLFkpe3JldHVybiBpZTwxMj8iXHUwNjM1IjoiXHUwNjQ1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2NDRcdTA2NGFcdTA2NDhcdTA2NDUgXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1''@;'; + put 'put ''MDYyOV0gTFQiLG5leHREYXk6IltcdTA2M2FcdTA2MmZcdTA2NGJcdTA2MjcgXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3''@;'; + put 'put ''XHUwNjM5XHUwNjI5XSBMVCIsbGFzdERheToiW1x1MDYyM1x1MDY0NVx1MDYzMyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2''@;'; + put 'put ''MjdcdTA2MzlcdTA2MjldIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA2MjhcdTA2MzlcdTA2MmYgJXMiLHBhc3Q6Ilx1MDY0NVx1MDY0Nlx1MDYzMCAlcyIsczpVKCJzIiksc3M6VSgicyIpLG06VSgibSIpLG1tOlUoIm0iKSxoOlUoImgiKSxoaDpVKCJoIiks''@;'; + put 'put ''ZDpVKCJkIiksZGQ6VSgiZCIpLE06VSgiTSIpLE1NOlUoIk0iKSx5OlUoInkiKSx5eTpVKCJ5Iil9LHByZXBhcnNlOmZ1bmN0aW9uKGllKXtyZXR1cm4gaWUucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihpZSl7cmV0dXJuIGllLnJlcGxhY2UoL1xkL2csZnVu''@;'; + put 'put ''Y3Rpb24obGUpe3JldHVybiBCW2xlXX0pLnJlcGxhY2UoLywvZywiXHUwNjBjIil9LHdlZWs6e2Rvdzo2LGRveToxMn19KX0oTCgxNTQzOSkpfSw2NTQ0MzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImFyLW1hIix7bW9udGhz''@;'; + put 'put ''OiJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1MDY0YVx1MDY0OFx1MDY0Nlx1''@;'; + put 'put ''MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDhcdTA2MzJfXHUwNjNhXHUwNjM0XHUwNjJhX1x1MDYzNFx1MDYyYVx1MDY0Nlx1MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjQ2XHUwNjI4XHUwNjMx''@;'; + put 'put ''X1x1MDYyZlx1MDYyY1x1MDY0Nlx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNjRhXHUwNjQ2XHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0MVx1MDYyOFx1MDYzMVx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIzXHUwNjI4XHUw''@;'; + put 'put ''NjMxXHUwNjRhXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YV9cdTA2NGFcdTA2NDhcdTA2NDZcdTA2NGFcdTA2NDhfXHUwNjRhXHUwNjQ4XHUwNjQ0XHUwNjRhXHUwNjQ4XHUwNjMyX1x1MDYzYVx1MDYzNFx1MDYyYV9cdTA2MzRcdTA2MmFcdTA2NDZcdTA2MjhcdTA2MzFfXHUwNjIzXHUwNjQz''@;'; + put 'put ''XHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0Nlx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2MmNcdTA2NDZcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDYyN1x1MDY0NFx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2NDRcdTA2MjVcdTA2MmJc''@;'; + put 'put ''dTA2NDZcdTA2NGFcdTA2NDZfXHUwNjI3XHUwNjQ0XHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjI3XHUwNjQ0''@;'; + put 'put ''XHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYyN1x1MDY0NFx1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2MjdcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1''@;'; + put 'put ''MDYyMV9cdTA2MjdcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDYyZF9cdTA2NDZfXHUwNjJiX1x1MDYzMV9c''@;'; + put 'put ''dTA2MmVfXHUwNjJjX1x1MDYzMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQg''@;'; + put 'put ''TU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2NDRcdTA2NGFcdTA2NDhcdTA2NDUgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHREYXk6IltcdTA2M2FcdTA2MmZcdTA2MjcgXHUwNjM5''@;'; + put 'put ''XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdERheToiW1x1MDYyM1x1MDY0NVx1MDYzMyBcdTA2''@;'; + put 'put ''MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0''@;'; + put 'put ''dXJlOiJcdTA2NDFcdTA2NGEgJXMiLHBhc3Q6Ilx1MDY0NVx1MDY0Nlx1MDYzMCAlcyIsczoiXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IixzczoiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IixtOiJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiLG1tOiIlZCBcdTA2''@;'; + put 'put ''MmZcdTA2NDJcdTA2MjdcdTA2MjZcdTA2NDIiLGg6Ilx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSIsaGg6IiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyN1x1MDYyYSIsZDoiXHUwNjRhXHUwNjQ4XHUwNjQ1IixkZDoiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IixNOiJcdTA2MzRcdTA2''@;'; + put 'put ''NDdcdTA2MzEiLE1NOiIlZCBcdTA2MjNcdTA2MzRcdTA2NDdcdTA2MzEiLHk6Ilx1MDYzM1x1MDY0Nlx1MDYyOSIseXk6IiVkIFx1MDYzM1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyYSJ9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDE3NjQyOmZ1bmN0aW9uKFhlLEplLEwpeyFm''@;'; + put 'put ''dW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiJcdTA2NjEiLDI6Ilx1MDY2MiIsMzoiXHUwNjYzIiw0OiJcdTA2NjQiLDU6Ilx1MDY2NSIsNjoiXHUwNjY2Iiw3OiJcdTA2NjciLDg6Ilx1MDY2OCIsOToiXHUwNjY5IiwwOiJcdTA2NjAifSxFPXsiXHUwNjYxIjoiMSIsIlx1MDY2''@;'; + put 'put ''MiI6IjIiLCJcdTA2NjMiOiIzIiwiXHUwNjY0IjoiNCIsIlx1MDY2NSI6IjUiLCJcdTA2NjYiOiI2IiwiXHUwNjY3IjoiNyIsIlx1MDY2OCI6IjgiLCJcdTA2NjkiOiI5IiwiXHUwNjYwIjoiMCJ9O21lLmRlZmluZUxvY2FsZSgiYXItc2EiLHttb250aHM6Ilx1MDY0YVx1MDY0Nlx1MDYyN1x1''@;'; + put 'put ''MDY0YVx1MDYzMV9cdTA2NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyM1x1MDYyOFx1MDYzMVx1MDY0YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFcdTA2NDhfXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4X1x1MDY0''@;'; + put 'put ''YVx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0OF9cdTA2MjNcdTA2M2FcdTA2MzNcdTA2MzdcdTA2MzNfXHUwNjMzXHUwNjI4XHUwNjJhXHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2''@;'; + put 'put ''MzFfXHUwNjJmXHUwNjRhXHUwNjMzXHUwNjQ1XHUwNjI4XHUwNjMxIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjNc''@;'; + put 'put ''dTA2MjhcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhXHUwNjQ4X1x1MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDhfXHUwNjIzXHUwNjNhXHUwNjMzXHUwNjM3XHUwNjMzX1x1MDYzM1x1MDYyOFx1MDYyYVx1MDY0''@;'; + put 'put ''NVx1MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjQxXHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDY0YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNjI3XHUwNjQ0XHUwNjIz''@;'; + put 'put ''XHUwNjJkXHUwNjJmX1x1MDYyN1x1MDY0NFx1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MjdcdTA2NDRcdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0''@;'; + put 'put ''NFx1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MjdcdTA2NDRcdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjVcdTA2MmJcdTA2NDZcdTA2NGFc''@;'; + put 'put ''dTA2NDZfXHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVr''@;'; + put 'put ''ZGF5c01pbjoiXHUwNjJkX1x1MDY0Nl9cdTA2MmJfXHUwNjMxX1x1MDYyZV9cdTA2MmNfXHUwNjMzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVki''@;'; + put 'put ''LExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MzV8XHUwNjQ1Lyxpc1BNOmZ1bmN0aW9uKFUpe3JldHVybiJcdTA2NDUiPT09VX0sbWVyaWRpZW06ZnVuY3Rpb24oVSxRLFope3JldHVybiBVPDEyPyJcdTA2''@;'; + put 'put ''MzUiOiJcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDYyNyBcdTA2MzlcdTA2''@;'; + put 'put ''NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1''@;'; + put 'put ''MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6''@;'; + put 'put ''Ilx1MDY0MVx1MDY0YSAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOiJcdTA2MmJcdTA2NDhcdTA2MjdcdTA2NDYiLHNzOiIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiLG06Ilx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSIsbW06IiVkIFx1MDYyZlx1''@;'; + put 'put ''MDY0Mlx1MDYyN1x1MDYyNlx1MDY0MiIsaDoiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IixoaDoiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIixkOiJcdTA2NGFcdTA2NDhcdTA2NDUiLGRkOiIlZCBcdTA2MjNcdTA2NGFcdTA2MjdcdTA2NDUiLE06Ilx1MDYzNFx1MDY0N1x1''@;'; + put 'put ''MDYzMSIsTU06IiVkIFx1MDYyM1x1MDYzNFx1MDY0N1x1MDYzMSIseToiXHUwNjMzXHUwNjQ2XHUwNjI5Iix5eToiJWQgXHUwNjMzXHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJhIn0scHJlcGFyc2U6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvW1x1MDY2MVx1MDY2Mlx1MDY2M1x1MDY2''@;'; + put 'put ''NFx1MDY2NVx1MDY2Nlx1MDY2N1x1MDY2OFx1MDY2OVx1MDY2MF0vZyxmdW5jdGlvbihRKXtyZXR1cm4gRVtRXX0pLnJlcGxhY2UoL1x1MDYwYy9nLCIsIil9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0pLnJl''@;'; + put 'put ''cGxhY2UoLywvZywiXHUwNjBjIil9LHdlZWs6e2RvdzowLGRveTo2fX0pfShMKDE1NDM5KSl9LDY4NTkyOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiYXItdG4iLHttb250aHM6Ilx1MDYyY1x1MDYyN1x1MDY0Nlx1MDY0MVx1''@;'; + put 'put ''MDY0YV9cdTA2NDFcdTA2NGFcdTA2NDFcdTA2MzFcdTA2NGFfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyM1x1MDY0MVx1MDYzMVx1MDY0YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFfXHUwNjJjXHUwNjQ4XHUwNjI3XHUwNjQ2X1x1MDYyY1x1MDY0OFx1MDY0YVx1MDY0NFx1MDY0''@;'; + put 'put ''YVx1MDYyOV9cdTA2MjNcdTA2NDhcdTA2MmFfXHUwNjMzXHUwNjI4XHUwNjJhXHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjJmXHUwNjRhXHUwNjMzXHUwNjQ1XHUw''@;'; + put 'put ''NjI4XHUwNjMxIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA2MmNcdTA2MjdcdTA2NDZcdTA2NDFcdTA2NGFfXHUwNjQxXHUwNjRhXHUwNjQxXHUwNjMxXHUwNjRhX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjNcdTA2NDFcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3''@;'; + put 'put ''XHUwNjRhX1x1MDYyY1x1MDY0OFx1MDYyN1x1MDY0Nl9cdTA2MmNcdTA2NDhcdTA2NGFcdTA2NDRcdTA2NGFcdTA2MjlfXHUwNjIzXHUwNjQ4XHUwNjJhX1x1MDYzM1x1MDYyOFx1MDYyYVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUw''@;'; + put 'put ''NjQ2XHUwNjQ4XHUwNjQxXHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDY0YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyN1x1MDY0NFx1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0''@;'; + put 'put ''Nl9cdTA2MjdcdTA2NDRcdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MjdcdTA2NDRcdTA2MmNcdTA2NDVcdTA2''@;'; + put 'put ''MzlcdTA2MjlfXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjVcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyM1x1MDYz''@;'; + put 'put ''MVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNjJkX1x1MDY0Nl9cdTA2MmJfXHUwNjMxX1x1MDYyZV9cdTA2MmNfXHUw''@;'; + put 'put ''NjMzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0i''@;'; + put 'put ''fSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDYyNyBcdTA2MzlcdTA2NDRcdTA2NDkgXHUw''@;'; + put 'put ''NjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0NFx1MDY0OSBc''@;'; + put 'put ''dTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDY0MVx1MDY0''@;'; + put 'put ''YSAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOiJcdTA2MmJcdTA2NDhcdTA2MjdcdTA2NDYiLHNzOiIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiLG06Ilx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSIsbW06IiVkIFx1MDYyZlx1MDY0Mlx1MDYyN1x1''@;'; + put 'put ''MDYyNlx1MDY0MiIsaDoiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IixoaDoiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIixkOiJcdTA2NGFcdTA2NDhcdTA2NDUiLGRkOiIlZCBcdTA2MjNcdTA2NGFcdTA2MjdcdTA2NDUiLE06Ilx1MDYzNFx1MDY0N1x1MDYzMSIsTU06IiVk''@;'; + put 'put ''IFx1MDYyM1x1MDYzNFx1MDY0N1x1MDYzMSIseToiXHUwNjMzXHUwNjQ2XHUwNjI5Iix5eToiJWQgXHUwNjMzXHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJhIn0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMTcwMzg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNl''@;'; + put 'put ''IHN0cmljdCI7dmFyIEI9ezE6Ilx1MDY2MSIsMjoiXHUwNjYyIiwzOiJcdTA2NjMiLDQ6Ilx1MDY2NCIsNToiXHUwNjY1Iiw2OiJcdTA2NjYiLDc6Ilx1MDY2NyIsODoiXHUwNjY4Iiw5OiJcdTA2NjkiLDA6Ilx1MDY2MCJ9LEU9eyJcdTA2NjEiOiIxIiwiXHUwNjYyIjoiMiIsIlx1MDY2MyI6''@;'; + put 'put ''IjMiLCJcdTA2NjQiOiI0IiwiXHUwNjY1IjoiNSIsIlx1MDY2NiI6IjYiLCJcdTA2NjciOiI3IiwiXHUwNjY4IjoiOCIsIlx1MDY2OSI6IjkiLCJcdTA2NjAiOiIwIn0sTWU9ZnVuY3Rpb24obGUpe3JldHVybiAwPT09bGU/MDoxPT09bGU/MToyPT09bGU/MjpsZSUxMDA+PTMmJmxlJTEwMDw9''@;'; + put 'put ''MTA/MzpsZSUxMDA+PTExPzQ6NX0sVT17czpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MmJc''@;'; + put 'put ''dTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiJWQgXHUwNjJiXHUwNjI3''@;'; + put 'put ''XHUwNjQ2XHUwNjRhXHUwNjI5Il0sbTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MmZcdTA2''@;'; + put 'put ''NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiJWQgXHUwNjJmXHUw''@;'; + put 'put ''NjQyXHUwNjRhXHUwNjQyXHUwNjI5Il0saDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MzNcdTA2MjdcdTA2Mzlc''@;'; + put 'put ''dTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5Il0sZDpbIlx1MDYy''@;'; + put 'put ''M1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjRhXHUwNjQ4XHUwNjQ1IiwiXHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQg''@;'; + put 'put ''XHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1Il0sTTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM0XHUwNjQ3XHUwNjMxIiwiXHUwNjM0XHUwNjQ3XHUwNjMxIFx1''@;'; + put 'put ''MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2MjdcdTA2NDYiLCJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjI3IiwiJWQgXHUwNjM0XHUw''@;'; + put 'put ''NjQ3XHUwNjMxIl0seTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM5XHUwNjI3XHUwNjQ1IiwiXHUwNjM5XHUwNjI3XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2MzlcdTA2MjdcdTA2''@;'; + put 'put ''NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM5XHUwNjQ4XHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1Il19LFE9ZnVuY3Rpb24obGUpe3JldHVybiBmdW5jdGlvbihZLFcsTixlZSl7dmFyIHE9TWUo''@;'; + put 'put ''WSksSj1VW2xlXVtNZShZKV07cmV0dXJuIDI9PT1xJiYoSj1KW1c/MDoxXSksSi5yZXBsYWNlKC8lZC9pLFkpfX0sWj1bIlx1MDY0YVx1MDY0Nlx1MDYyN1x1MDY0YVx1MDYzMSIsIlx1MDY0MVx1MDYyOFx1MDYzMVx1MDYyN1x1MDY0YVx1MDYzMSIsIlx1MDY0NVx1MDYyN1x1MDYzMVx1MDYz''@;'; + put 'put ''MyIsIlx1MDYyM1x1MDYyOFx1MDYzMVx1MDY0YVx1MDY0NCIsIlx1MDY0NVx1MDYyN1x1MDY0YVx1MDY0OCIsIlx1MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OCIsIlx1MDY0YVx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0OCIsIlx1MDYyM1x1MDYzYVx1MDYzM1x1MDYzN1x1MDYzMyIsIlx1''@;'; + put 'put ''MDYzM1x1MDYyOFx1MDYyYVx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMSIsIlx1MDY0Nlx1MDY0OFx1MDY0MVx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyZlx1MDY0YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSJdO21lLmRlZmluZUxv''@;'; + put 'put ''Y2FsZSgiYXIiLHttb250aHM6Wixtb250aHNTaG9ydDpaLHdlZWtkYXlzOiJcdTA2MjdcdTA2NDRcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYy''@;'; + put 'put ''MV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJf''@;'; + put 'put ''Iiksd2Vla2RheXNTaG9ydDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1MDY0YVx1MDYz''@;'; + put 'put ''M19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9y''@;'; + put 'put ''bWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkQvXHUyMDBmTS9cdTIwMGZZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MzV8XHUwNjQ1Lyxpc1BNOmZ1''@;'; + put 'put ''bmN0aW9uKGxlKXtyZXR1cm4iXHUwNjQ1Ij09PWxlfSxtZXJpZGllbTpmdW5jdGlvbihsZSxZLFcpe3JldHVybiBsZTwxMj8iXHUwNjM1IjoiXHUwNjQ1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2NDRcdTA2NGFcdTA2NDhcdTA2NDUgXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYy''@;'; + put 'put ''N1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHREYXk6IltcdTA2M2FcdTA2MmZcdTA2NGJcdTA2MjcgXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDZcdTA2''@;'; + put 'put ''MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdERheToiW1x1MDYyM1x1MDY0NVx1MDYzMyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0Nlx1''@;'; + put 'put ''MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA2MjhcdTA2MzlcdTA2MmYgJXMiLHBhc3Q6Ilx1MDY0NVx1MDY0Nlx1MDYzMCAlcyIsczpRKCJzIiksc3M6USgicyIpLG06USgibSIpLG1t''@;'; + put 'put ''OlEoIm0iKSxoOlEoImgiKSxoaDpRKCJoIiksZDpRKCJkIiksZGQ6USgiZCIpLE06USgiTSIpLE1NOlEoIk0iKSx5OlEoInkiKSx5eTpRKCJ5Iil9LHByZXBhcnNlOmZ1bmN0aW9uKGxlKXtyZXR1cm4gbGUucmVwbGFjZSgvW1x1MDY2MVx1MDY2Mlx1MDY2M1x1MDY2NFx1MDY2NVx1MDY2Nlx1''@;'; + put 'put ''MDY2N1x1MDY2OFx1MDY2OVx1MDY2MF0vZyxmdW5jdGlvbihZKXtyZXR1cm4gRVtZXX0pLnJlcGxhY2UoL1x1MDYwYy9nLCIsIil9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24obGUpe3JldHVybiBsZS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKFkpe3JldHVybiBCW1ldfSkucmVwbGFjZSgvLC9nLCJc''@;'; + put 'put ''dTA2MGMiKX0sd2Vlazp7ZG93OjYsZG95OjEyfX0pfShMKDE1NDM5KSl9LDUxMjEzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiItaW5jaSIsNToiLWluY2kiLDg6Ii1pbmNpIiw3MDoiLWluY2kiLDgwOiItaW5jaSIsMjoiLW5jaSIsNzoi''@;'; + put 'put ''LW5jaSIsMjA6Ii1uY2kiLDUwOiItbmNpIiwzOiItXHhmY25jXHhmYyIsNDoiLVx4ZmNuY1x4ZmMiLDEwMDoiLVx4ZmNuY1x4ZmMiLDY6Ii1uY1x1MDEzMSIsOToiLXVuY3UiLDEwOiItdW5jdSIsMzA6Ii11bmN1Iiw2MDoiLVx1MDEzMW5jXHUwMTMxIiw5MDoiLVx1MDEzMW5jXHUwMTMxIn07''@;'; + put 'put ''bWUuZGVmaW5lTG9jYWxlKCJheiIse21vbnRoczoieWFudmFyX2ZldnJhbF9tYXJ0X2FwcmVsX21heV9peXVuX2l5dWxfYXZxdXN0X3NlbnR5YWJyX29rdHlhYnJfbm95YWJyX2Rla2FiciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoieWFuX2Zldl9tYXJfYXByX21heV9peW5faXlsX2F2cV9z''@;'; + put 'put ''ZW5fb2t0X25veV9kZWsiLnNwbGl0KCJfIiksd2Vla2RheXM6IkJhemFyX0JhemFyIGVydFx1MDI1OXNpX1x4YzdcdTAyNTlyXHUwMTVmXHUwMjU5bmJcdTAyNTkgYXhcdTAxNWZhbVx1MDEzMV9ceGM3XHUwMjU5clx1MDE1Zlx1MDI1OW5iXHUwMjU5X0NceGZjbVx1MDI1OSBheFx1MDE1ZmFt''@;'; + put 'put ''XHUwMTMxX0NceGZjbVx1MDI1OV9cdTAxNWVcdTAyNTluYlx1MDI1OSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJCYXpfQnpFX1x4YzdBeF9ceGM3XHUwMjU5cl9DQXhfQ1x4ZmNtX1x1MDE1ZVx1MDI1OW4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkJ6X0JFX1x4YzdBX1x4YzdcdTAy''@;'; + put 'put ''NTlfQ0FfQ1x4ZmNfXHUwMTVlXHUwMjU5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRk''@;'; + put 'put ''ZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltidWdceGZjbiBzYWF0XSBMVCIsbmV4dERheToiW3NhYmFoIHNhYXRdIExUIixuZXh0V2VlazoiW2dcdTAyNTlsXHUwMjU5biBoXHUwMjU5ZnRcdTAyNTldIGRkZGQgW3NhYXRdIExUIixsYXN0RGF5OiJbZFx4ZmNu''@;'; + put 'put ''XHUwMjU5bl0gTFQiLGxhc3RXZWVrOiJba2VceGU3XHUwMjU5biBoXHUwMjU5ZnRcdTAyNTldIGRkZGQgW3NhYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBzb25yYSIscGFzdDoiJXMgXHUwMjU5dnZcdTAyNTlsIixzOiJiaXIgbmVceGU3XHUwMjU5IHNh''@;'; + put 'put ''bml5XHUwMjU5IixzczoiJWQgc2FuaXlcdTAyNTkiLG06ImJpciBkXHUwMjU5cWlxXHUwMjU5IixtbToiJWQgZFx1MDI1OXFpcVx1MDI1OSIsaDoiYmlyIHNhYXQiLGhoOiIlZCBzYWF0IixkOiJiaXIgZ1x4ZmNuIixkZDoiJWQgZ1x4ZmNuIixNOiJiaXIgYXkiLE1NOiIlZCBheSIseToiYmly''@;'; + put 'put ''IGlsIix5eToiJWQgaWwifSxtZXJpZGllbVBhcnNlOi9nZWNcdTAyNTl8c1x1MDI1OWhcdTAyNTlyfGdceGZjbmRceGZjenxheFx1MDE1ZmFtLyxpc1BNOmZ1bmN0aW9uKE1lKXtyZXR1cm4vXihnXHhmY25kXHhmY3p8YXhcdTAxNWZhbSkkLy50ZXN0KE1lKX0sbWVyaWRpZW06ZnVuY3Rpb24o''@;'; + put 'put ''TWUsVSxRKXtyZXR1cm4gTWU8ND8iZ2VjXHUwMjU5IjpNZTwxMj8ic1x1MDI1OWhcdTAyNTlyIjpNZTwxNz8iZ1x4ZmNuZFx4ZmN6IjoiYXhcdTAxNWZhbSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDEzMW5jXHUwMTMxfGluY2l8bmNpfFx4ZmNuY1x4ZmN8bmNcdTAx''@;'; + put 'put ''MzF8dW5jdSkvLG9yZGluYWw6ZnVuY3Rpb24oTWUpe2lmKDA9PT1NZSlyZXR1cm4gTWUrIi1cdTAxMzFuY1x1MDEzMSI7dmFyIFU9TWUlMTA7cmV0dXJuIE1lKyhCW1VdfHxCW01lJTEwMC1VXXx8QltNZT49MTAwPzEwMDpudWxsXSl9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9''@;'; + put 'put ''LDY5MTkxOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEUoVSxRLFope3JldHVybiJtIj09PVo/UT8iXHUwNDQ1XHUwNDMyXHUwNDU2XHUwNDNiXHUwNDU2XHUwNDNkXHUwNDMwIjoiXHUwNDQ1XHUwNDMyXHUwNDU2XHUwNDNiXHUwNDU2XHUw''@;'; + put 'put ''NDNkXHUwNDQzIjoiaCI9PT1aP1E/Ilx1MDQzM1x1MDQzMFx1MDQzNFx1MDQzN1x1MDQ1Nlx1MDQzZFx1MDQzMCI6Ilx1MDQzM1x1MDQzMFx1MDQzNFx1MDQzN1x1MDQ1Nlx1MDQzZFx1MDQ0MyI6VSsiICIrZnVuY3Rpb24gQihVLFEpe3ZhciBaPVUuc3BsaXQoIl8iKTtyZXR1cm4gUSUxMD09''@;'; + put 'put ''MSYmUSUxMDAhPTExP1pbMF06USUxMD49MiYmUSUxMDw9NCYmKFElMTAwPDEwfHxRJTEwMD49MjApP1pbMV06WlsyXX0oe3NzOlE/Ilx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzMF9cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0NGJfXHUw''@;'; + put 'put ''NDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IjoiXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDQzX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0Yl9cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLG1tOlE/''@;'; + put 'put ''Ilx1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZFx1MDQzMF9cdTA0NDVcdTA0MzJcdTA0NTZcdTA0M2JcdTA0NTZcdTA0M2RcdTA0NGJfXHUwNDQ1XHUwNDMyXHUwNDU2XHUwNDNiXHUwNDU2XHUwNDNkIjoiXHUwNDQ1XHUwNDMyXHUwNDU2XHUwNDNiXHUwNDU2XHUwNDNkXHUw''@;'; + put 'put ''NDQzX1x1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZFx1MDQ0Yl9cdTA0NDVcdTA0MzJcdTA0NTZcdTA0M2JcdTA0NTZcdTA0M2QiLGhoOlE/Ilx1MDQzM1x1MDQzMFx1MDQzNFx1MDQzN1x1MDQ1Nlx1MDQzZFx1MDQzMF9cdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZc''@;'; + put 'put ''dTA0M2RcdTA0NGJfXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUwNDU2XHUwNDNkIjoiXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUwNDU2XHUwNDNkXHUwNDQzX1x1MDQzM1x1MDQzMFx1MDQzNFx1MDQzN1x1MDQ1Nlx1MDQzZFx1MDQ0Yl9cdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0''@;'; + put 'put ''NTZcdTA0M2QiLGRkOiJcdTA0MzRcdTA0MzdcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDM0XHUwNDNkXHUwNDU2X1x1MDQzNFx1MDQzN1x1MDQ1MVx1MDQzZCIsTU06Ilx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0Nl9cdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDZcdTA0NGJfXHUw''@;'; + put 'put ''NDNjXHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQ2XHUwNDMwXHUwNDVlIix5eToiXHUwNDMzXHUwNDNlXHUwNDM0X1x1MDQzM1x1MDQzMFx1MDQzNFx1MDQ0Yl9cdTA0MzNcdTA0MzBcdTA0MzRcdTA0M2VcdTA0NWUifVtaXSwrVSl9bWUuZGVmaW5lTG9jYWxlKCJiZSIse21vbnRoczp7Zm9ybWF0''@;'; + put 'put ''OiJcdTA0NDFcdTA0NDJcdTA0NDNcdTA0MzRcdTA0MzdcdTA0MzVcdTA0M2RcdTA0NGZfXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDMwXHUwNDMzXHUwNDMwX1x1MDQ0MVx1MDQzMFx1MDQzYVx1MDQzMFx1MDQzMlx1MDQ1Nlx1MDQzYVx1MDQzMF9cdTA0M2FcdTA0NDBcdTA0MzBcdTA0NDFcdTA0''@;'; + put 'put ''MzBcdTA0MzJcdTA0NTZcdTA0M2FcdTA0MzBfXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDVlXHUwNDNkXHUwNDRmX1x1MDQ0N1x1MDQ0ZFx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQzZFx1MDQ0Zl9cdTA0M2JcdTA0NTZcdTA0M2ZcdTA0MzVcdTA0M2RcdTA0NGZfXHUwNDM2XHUwNDNkXHUwNDU2XHUw''@;'; + put 'put ''NDVlXHUwNDNkXHUwNDRmX1x1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzZFx1MDQ0Zl9cdTA0M2FcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NGJcdTA0NDdcdTA0M2RcdTA0NTZcdTA0M2FcdTA0MzBfXHUwNDNiXHUwNDU2XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNmXHUw''@;'; + put 'put ''NDMwXHUwNDM0XHUwNDMwX1x1MDQ0MVx1MDQzZFx1MDQzNVx1MDQzNlx1MDQzZFx1MDQ0ZiIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA0NDFcdTA0NDJcdTA0NDNcdTA0MzRcdTA0MzdcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDRiX1x1MDQ0MVx1MDQzMFx1''@;'; + put 'put ''MDQzYVx1MDQzMFx1MDQzMlx1MDQ1Nlx1MDQzYV9cdTA0M2FcdTA0NDBcdTA0MzBcdTA0NDFcdTA0MzBcdTA0MzJcdTA0NTZcdTA0M2FfXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQ0N1x1MDQ0ZFx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQzZFx1MDQ0Y19c''@;'; + put 'put ''dTA0M2JcdTA0NTZcdTA0M2ZcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDM2XHUwNDNkXHUwNDU2XHUwNDMyXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0M2FcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NGJc''@;'; + put 'put ''dTA0NDdcdTA0M2RcdTA0NTZcdTA0M2FfXHUwNDNiXHUwNDU2XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNmXHUwNDMwXHUwNDM0X1x1MDQ0MVx1MDQzZFx1MDQzNVx1MDQzNlx1MDQzMFx1MDQzZFx1MDQ0YyIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6Ilx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQz''@;'; + put 'put ''NF9cdTA0M2JcdTA0NGVcdTA0NDJfXHUwNDQxXHUwNDMwXHUwNDNhX1x1MDQzYVx1MDQ0MFx1MDQzMFx1MDQ0MV9cdTA0NDJcdTA0NDBcdTA0MzBcdTA0MzJfXHUwNDQ3XHUwNDRkXHUwNDQwXHUwNDMyX1x1MDQzYlx1MDQ1Nlx1MDQzZl9cdTA0MzZcdTA0M2RcdTA0NTZcdTA0MzJfXHUwNDMy''@;'; + put 'put ''XHUwNDM1XHUwNDQwX1x1MDQzYVx1MDQzMFx1MDQ0MVx1MDQ0Ml9cdTA0M2JcdTA0NTZcdTA0NDFcdTA0NDJfXHUwNDQxXHUwNDNkXHUwNDM1XHUwNDM2Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOntmb3JtYXQ6Ilx1MDQzZFx1MDQ0Zlx1MDQzNFx1MDQzN1x1MDQzNVx1MDQzYlx1MDQ0ZV9cdTA0''@;'; + put 'put ''M2ZcdTA0MzBcdTA0M2RcdTA0NGZcdTA0MzRcdTA0MzdcdTA0MzVcdTA0M2JcdTA0MzBcdTA0M2FfXHUwNDMwXHUwNDVlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDMwXHUwNDNhX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzNFx1MDQ0M19cdTA0NDdcdTA0MzBcdTA0NDZcdTA0MzJcdTA0''@;'; + put 'put ''MzVcdTA0NDBfXHUwNDNmXHUwNDRmXHUwNDQyXHUwNDNkXHUwNDU2XHUwNDQ2XHUwNDQzX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQ0MyIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA0M2RcdTA0NGZcdTA0MzRcdTA0MzdcdTA0MzVcdTA0M2JcdTA0NGZfXHUwNDNmXHUw''@;'; + put 'put ''NDMwXHUwNDNkXHUwNDRmXHUwNDM0XHUwNDM3XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDNhX1x1MDQzMFx1MDQ1ZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzMFx1MDQzYV9cdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzRcdTA0MzBfXHUwNDQ3XHUwNDMwXHUwNDQ2XHUwNDMyXHUwNDM1XHUw''@;'; + put 'put ''NDQwX1x1MDQzZlx1MDQ0Zlx1MDQ0Mlx1MDQzZFx1MDQ1Nlx1MDQ0Nlx1MDQzMF9cdTA0NDFcdTA0NDNcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzAiLnNwbGl0KCJfIiksaXNGb3JtYXQ6L1xbID9bXHUwNDIzXHUwNDQzXHUwNDVlXSA/KD86XHUwNDNjXHUwNDU2XHUwNDNkXHUwNDQzXHUwNDNi''@;'; + put 'put ''XHUwNDQzXHUwNDRlfFx1MDQzZFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzZlx1MDQzZFx1MDQ0M1x1MDQ0ZSk/ID9cXSA/ZGRkZC99LHdlZWtkYXlzU2hvcnQ6Ilx1MDQzZFx1MDQzNF9cdTA0M2ZcdTA0M2RfXHUwNDMwXHUwNDQyX1x1MDQ0MVx1MDQ0MF9cdTA0NDdcdTA0NDZfXHUw''@;'; + put 'put ''NDNmXHUwNDQyX1x1MDQ0MVx1MDQzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDNkXHUwNDM0X1x1MDQzZlx1MDQzZF9cdTA0MzBcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1MDQ0Nl9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0''@;'; + put 'put ''OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSBcdTA0MzMuIixMTEw6IkQgTU1NTSBZWVlZIFx1MDQzMy4sIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBcdTA0MzMuLCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUw''@;'; + put 'put ''NDIxXHUwNDUxXHUwNDNkXHUwNDNkXHUwNDRmIFx1MDQ1ZV0gTFQiLG5leHREYXk6IltcdTA0MTdcdTA0MzBcdTA0NWVcdTA0NDJcdTA0NDBcdTA0MzAgXHUwNDVlXSBMVCIsbGFzdERheToiW1x1MDQyM1x1MDQ0N1x1MDQzZVx1MDQ0MFx1MDQzMCBcdTA0NWVdIExUIixuZXh0V2VlazpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiJbXHUwNDIzXSBkZGRkIFtcdTA0NWVdIExUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDU6Y2FzZSA2OnJldHVybiJbXHUwNDIzIFx1MDQzY1x1MDQ1Nlx1MDQzZFx1MDQ0M1x1MDQzYlx1MDQ0M1x1MDQ0''@;'; + put 'put ''ZV0gZGRkZCBbXHUwNDVlXSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6cmV0dXJuIltcdTA0MjMgXHUwNDNjXHUwNDU2XHUwNDNkXHUwNDQzXHUwNDNiXHUwNDRiXSBkZGRkIFtcdTA0NWVdIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDQzZlx1MDQ0MFx1''@;'; + put 'put ''MDQzMFx1MDQzNyAlcyIscGFzdDoiJXMgXHUwNDQyXHUwNDMwXHUwNDNjXHUwNDQzIixzOiJcdTA0M2RcdTA0MzVcdTA0M2FcdTA0MzBcdTA0M2JcdTA0NGNcdTA0M2FcdTA0NTYgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixtOkUsbW06RSxoOkUsaGg6RSxkOiJcdTA0''@;'; + put 'put ''MzRcdTA0MzdcdTA0MzVcdTA0M2RcdTA0NGMiLGRkOkUsTToiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQ2IixNTTpFLHk6Ilx1MDQzM1x1MDQzZVx1MDQzNCIseXk6RX0sbWVyaWRpZW1QYXJzZTovXHUwNDNkXHUwNDNlXHUwNDQ3XHUwNDRifFx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQ1''@;'; + put 'put ''Nlx1MDQ0Nlx1MDQ0YnxcdTA0MzRcdTA0M2RcdTA0NGZ8XHUwNDMyXHUwNDM1XHUwNDQ3XHUwNDMwXHUwNDQwXHUwNDMwLyxpc1BNOmZ1bmN0aW9uKFUpe3JldHVybi9eKFx1MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJcdTA0MzVcdTA0NDdcdTA0MzBcdTA0NDBcdTA0MzApJC8udGVzdChVKX0s''@;'; + put 'put ''bWVyaWRpZW06ZnVuY3Rpb24oVSxRLFope3JldHVybiBVPDQ/Ilx1MDQzZFx1MDQzZVx1MDQ0N1x1MDQ0YiI6VTwxMj8iXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDU2XHUwNDQ2XHUwNDRiIjpVPDE3PyJcdTA0MzRcdTA0M2RcdTA0NGYiOiJcdTA0MzJcdTA0MzVcdTA0NDdcdTA0MzBcdTA0NDBc''@;'; + put 'put ''dTA0MzAifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0NTZ8XHUwNDRifFx1MDQzM1x1MDQzMCkvLG9yZGluYWw6ZnVuY3Rpb24oVSxRKXtzd2l0Y2goUSl7Y2FzZSJNIjpjYXNlImQiOmNhc2UiREREIjpjYXNlInciOmNhc2UiVyI6cmV0dXJuIFUlMTAhPTImJlUlMTAh''@;'; + put 'put ''PTN8fFUlMTAwPT0xMnx8VSUxMDA9PTEzP1UrIi1cdTA0NGIiOlUrIi1cdTA0NTYiO2Nhc2UiRCI6cmV0dXJuIFUrIi1cdTA0MzNcdTA0MzAiO2RlZmF1bHQ6cmV0dXJuIFV9fSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw5MDMyMjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rp''@;'; + put 'put ''b24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImJnIix7bW9udGhzOiJcdTA0NGZcdTA0M2RcdTA0NDNcdTA0MzBcdTA0NDBcdTA0MzhfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDQzXHUwNDMwXHUwNDQwXHUwNDM4X1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0''@;'; + put 'put ''MzBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQ0ZVx1MDQzZFx1MDQzOF9cdTA0NGVcdTA0M2JcdTA0MzhfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyX1x1MDQ0MVx1MDQzNVx1MDQzZlx1MDQ0Mlx1MDQzNVx1MDQzY1x1MDQzMlx1''@;'; + put 'put ''MDQ0MFx1MDQzOF9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0M2VcdTA0M2NcdTA0MzJcdTA0NDBcdTA0MzhfXHUwNDNkXHUwNDNlXHUwNDM1XHUwNDNjXHUwNDMyXHUwNDQwXHUwNDM4X1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzNVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOCIuc3BsaXQoIl8iKSxt''@;'; + put 'put ''b250aHNTaG9ydDoiXHUwNDRmXHUwNDNkXHUwNDQzX1x1MDQ0NFx1MDQzNVx1MDQzMl9cdTA0M2NcdTA0MzBcdTA0NDBfXHUwNDMwXHUwNDNmXHUwNDQwX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0NGVcdTA0M2RcdTA0MzhfXHUwNDRlXHUwNDNiXHUwNDM4X1x1MDQzMFx1MDQzMlx1MDQzM19c''@;'; + put 'put ''dTA0NDFcdTA0MzVcdTA0M2ZfXHUwNDNlXHUwNDNhXHUwNDQyX1x1MDQzZFx1MDQzZVx1MDQzNV9cdTA0MzRcdTA0MzVcdTA0M2EiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQ0Zl9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRc''@;'; + put 'put ''dTA0MzVcdTA0M2JcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQ0Zlx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0NGFcdTA0NDBcdTA0NDJcdTA0NGFcdTA0M2FfXHUwNDNm''@;'; + put 'put ''XHUwNDM1XHUwNDQyXHUwNDRhXHUwNDNhX1x1MDQ0MVx1MDQ0YVx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0M2RcdTA0MzVcdTA0MzRfXHUwNDNmXHUwNDNlXHUwNDNkX1x1MDQzMlx1MDQ0Mlx1MDQzZV9cdTA0NDFcdTA0NDBcdTA0NGZf''@;'; + put 'put ''XHUwNDQ3XHUwNDM1XHUwNDQyX1x1MDQzZlx1MDQzNVx1MDQ0Ml9cdTA0NDFcdTA0NGFcdTA0MzEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQzZFx1MDQzNF9cdTA0M2ZcdTA0M2RfXHUwNDMyXHUwNDQyX1x1MDQ0MVx1MDQ0MF9cdTA0NDdcdTA0NDJfXHUwNDNmXHUwNDQyX1x1MDQ0''@;'; + put 'put ''MVx1MDQzMSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiRC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJb''@;'; + put 'put ''XHUwNDE0XHUwNDNkXHUwNDM1XHUwNDQxIFx1MDQzMl0gTFQiLG5leHREYXk6IltcdTA0MjNcdTA0NDJcdTA0NDBcdTA0MzUgXHUwNDMyXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDQzMl0gTFQiLGxhc3REYXk6IltcdTA0MTJcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDMyXSBMVCIs''@;'; + put 'put ''bGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDY6cmV0dXJuIltcdTA0MWNcdTA0MzhcdTA0M2RcdTA0MzBcdTA0M2JcdTA0MzBcdTA0NDJcdTA0MzBdIGRkZGQgW1x1MDQzMl0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpy''@;'; + put 'put ''ZXR1cm4iW1x1MDQxY1x1MDQzOFx1MDQzZFx1MDQzMFx1MDQzYlx1MDQzOFx1MDQ0Zl0gZGRkZCBbXHUwNDMyXSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzQgJXMiLHBhc3Q6Ilx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQz''@;'; + put 'put ''NFx1MDQzOCAlcyIsczoiXHUwNDNkXHUwNDRmXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDNhXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsc3M6IiVkIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsbToiXHUwNDNjXHUw''@;'; + put 'put ''NDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDMwIixtbToiJWQgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDM4IixoOiJcdTA0NDdcdTA0MzBcdTA0NDEiLGhoOiIlZCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0MzAiLGQ6Ilx1MDQzNFx1MDQzNVx1MDQzZCIsZGQ6IiVkIFx1MDQz''@;'; + put 'put ''NFx1MDQzNVx1MDQzZFx1MDQzMCIsdzoiXHUwNDQxXHUwNDM1XHUwNDM0XHUwNDNjXHUwNDM4XHUwNDQ2XHUwNDMwIix3dzoiJWQgXHUwNDQxXHUwNDM1XHUwNDM0XHUwNDNjXHUwNDM4XHUwNDQ2XHUwNDM4IixNOiJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDYiLE1NOiIlZCBcdTA0''@;'; + put 'put ''M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDZcdTA0MzAiLHk6Ilx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMCIseXk6IiVkIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzOCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQzNVx1MDQz''@;'; + put 'put ''MnxcdTA0MzVcdTA0M2R8XHUwNDQyXHUwNDM4fFx1MDQzMlx1MDQzOHxcdTA0NDBcdTA0Mzh8XHUwNDNjXHUwNDM4KS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgTWU9RSUxMCxVPUUlMTAwO3JldHVybiAwPT09RT9FKyItXHUwNDM1XHUwNDMyIjowPT09VT9FKyItXHUwNDM1XHUwNDNkIjpV''@;'; + put 'put ''PjEwJiZVPDIwP0UrIi1cdTA0NDJcdTA0MzgiOjE9PT1NZT9FKyItXHUwNDMyXHUwNDM4IjoyPT09TWU/RSsiLVx1MDQ0MFx1MDQzOCI6Nz09PU1lfHw4PT09TWU/RSsiLVx1MDQzY1x1MDQzOCI6RSsiLVx1MDQ0Mlx1MDQzOCJ9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDI4''@;'; + put 'put ''MDQyOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiYm0iLHttb250aHM6Ilphbnd1eWVrYWxvX0Zld3VydXlla2Fsb19NYXJpc2lrYWxvX0F3aXJpbGlrYWxvX01cdTAyNWJrYWxvX1p1d1x1MDI1Ym5rYWxvX1p1bHV5ZWthbG9f''@;'; + put 'put ''VXRpa2Fsb19TXHUwMjVidGFuYnVydWthbG9fXHUwMjU0a3V0XHUwMjU0YnVydWthbG9fTm93YW5idXJ1a2Fsb19EZXNhbmJ1cnVrYWxvIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJaYW5fRmV3X01hcl9Bd2lfTVx1MDI1Yl9adXdfWnVsX1V0aV9TXHUwMjVidF9cdTAyNTRrdV9Ob3dfRGVz''@;'; + put 'put ''Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJLYXJpX050XHUwMjViblx1MDI1Ym5fVGFyYXRhX0FyYWJhX0FsYW1pc2FfSnVtYV9TaWJpcmkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiS2FyX050XHUwMjViX1Rhcl9BcmFfQWxhX0p1bV9TaWIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ikth''@;'; + put 'put ''X050X1RhX0FyX0FsX0p1X1NpIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJNTU1NIFt0aWxlXSBEIFtzYW5dIFlZWVkiLExMTDoiTU1NTSBbdGlsZV0gRCBbc2FuXSBZWVlZIFtsXHUwMjViclx1MDI1Yl0g''@;'; + put 'put ''SEg6bW0iLExMTEw6ImRkZGQgTU1NTSBbdGlsZV0gRCBbc2FuXSBZWVlZIFtsXHUwMjViclx1MDI1Yl0gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0JpIGxcdTAyNWJyXHUwMjViXSBMVCIsbmV4dERheToiW1NpbmkgbFx1MDI1YnJcdTAyNWJdIExUIixuZXh0V2VlazoiZGRkZCBbZG9u''@;'; + put 'put ''IGxcdTAyNWJyXHUwMjViXSBMVCIsbGFzdERheToiW0t1bnUgbFx1MDI1YnJcdTAyNWJdIExUIixsYXN0V2VlazoiZGRkZCBbdFx1MDI1Ym1cdTAyNWJuZW4gbFx1MDI1YnJcdTAyNWJdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBrXHUwMjU0blx1MDI1NCIs''@;'; + put 'put ''cGFzdDoiYSBiXHUwMjViICVzIGJcdTAyNTQiLHM6InNhbmdhIGRhbWEgZGFtYSIsc3M6InNla29uZGkgJWQiLG06Im1pbml0aSBrZWxlbiIsbW06Im1pbml0aSAlZCIsaDoibFx1MDI1YnJcdTAyNWIga2VsZW4iLGhoOiJsXHUwMjViclx1MDI1YiAlZCIsZDoidGlsZSBrZWxlbiIsZGQ6InRp''@;'; + put 'put ''bGUgJWQiLE06ImthbG8ga2VsZW4iLE1NOiJrYWxvICVkIix5OiJzYW4ga2VsZW4iLHl5OiJzYW4gJWQifSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw2NTkwMzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwOWU3Iiwy''@;'; + put 'put ''OiJcdTA5ZTgiLDM6Ilx1MDllOSIsNDoiXHUwOWVhIiw1OiJcdTA5ZWIiLDY6Ilx1MDllYyIsNzoiXHUwOWVkIiw4OiJcdTA5ZWUiLDk6Ilx1MDllZiIsMDoiXHUwOWU2In0sRT17Ilx1MDllNyI6IjEiLCJcdTA5ZTgiOiIyIiwiXHUwOWU5IjoiMyIsIlx1MDllYSI6IjQiLCJcdTA5ZWIiOiI1''@;'; + put 'put ''IiwiXHUwOWVjIjoiNiIsIlx1MDllZCI6IjciLCJcdTA5ZWUiOiI4IiwiXHUwOWVmIjoiOSIsIlx1MDllNiI6IjAifTttZS5kZWZpbmVMb2NhbGUoImJuLWJkIix7bW9udGhzOiJcdTA5OWNcdTA5YmVcdTA5YThcdTA5YzFcdTA5ZGZcdTA5YmVcdTA5YjBcdTA5YmZfXHUwOWFiXHUwOWM3XHUw''@;'; + put 'put ''OWFjXHUwOWNkXHUwOWIwXHUwOWMxXHUwOWRmXHUwOWJlXHUwOWIwXHUwOWJmX1x1MDlhZVx1MDliZVx1MDliMFx1MDljZFx1MDk5YV9cdTA5OGZcdTA5YWFcdTA5Y2RcdTA5YjBcdTA5YmZcdTA5YjJfXHUwOWFlXHUwOWM3X1x1MDk5Y1x1MDljMVx1MDlhOF9cdTA5OWNcdTA5YzFcdTA5YjJc''@;'; + put 'put ''dTA5YmVcdTA5ODdfXHUwOTg2XHUwOTk3XHUwOWI4XHUwOWNkXHUwOTlmX1x1MDliOFx1MDljN1x1MDlhYVx1MDljZFx1MDk5Zlx1MDljN1x1MDlhZVx1MDljZFx1MDlhY1x1MDliMF9cdTA5ODVcdTA5OTVcdTA5Y2RcdTA5OWZcdTA5Y2JcdTA5YWNcdTA5YjBfXHUwOWE4XHUwOWFkXHUwOWM3''@;'; + put 'put ''XHUwOWFlXHUwOWNkXHUwOWFjXHUwOWIwX1x1MDlhMVx1MDliZlx1MDliOFx1MDljN1x1MDlhZVx1MDljZFx1MDlhY1x1MDliMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwOTljXHUwOWJlXHUwOWE4XHUwOWMxX1x1MDlhYlx1MDljN1x1MDlhY1x1MDljZFx1MDliMFx1MDljMV9cdTA5''@;'; + put 'put ''YWVcdTA5YmVcdTA5YjBcdTA5Y2RcdTA5OWFfXHUwOThmXHUwOWFhXHUwOWNkXHUwOWIwXHUwOWJmXHUwOWIyX1x1MDlhZVx1MDljN19cdTA5OWNcdTA5YzFcdTA5YThfXHUwOTljXHUwOWMxXHUwOWIyXHUwOWJlXHUwOTg3X1x1MDk4Nlx1MDk5N1x1MDliOFx1MDljZFx1MDk5Zl9cdTA5Yjhc''@;'; + put 'put ''dTA5YzdcdTA5YWFcdTA5Y2RcdTA5OWZfXHUwOTg1XHUwOTk1XHUwOWNkXHUwOTlmXHUwOWNiX1x1MDlhOFx1MDlhZFx1MDljN19cdTA5YTFcdTA5YmZcdTA5YjhcdTA5YzciLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDliMFx1MDlhY1x1MDliZlx1MDlhY1x1MDliZVx1MDliMF9cdTA5Yjhc''@;'; + put 'put ''dTA5Y2JcdTA5YWVcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWFlXHUwOTk5XHUwOWNkXHUwOTk3XHUwOWIyXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDlhY1x1MDljMVx1MDlhN1x1MDlhY1x1MDliZVx1MDliMF9cdTA5YWNcdTA5YzNcdTA5YjlcdTA5YjhcdTA5Y2RcdTA5YWFcdTA5YTRcdTA5YmZc''@;'; + put 'put ''dTA5YWNcdTA5YmVcdTA5YjBfXHUwOWI2XHUwOWMxXHUwOTk1XHUwOWNkXHUwOWIwXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDliNlx1MDlhOFx1MDliZlx1MDlhY1x1MDliZVx1MDliMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA5YjBcdTA5YWNcdTA5YmZfXHUwOWI4XHUwOWNiXHUw''@;'; + put 'put ''OWFlX1x1MDlhZVx1MDk5OVx1MDljZFx1MDk5N1x1MDliMl9cdTA5YWNcdTA5YzFcdTA5YTdfXHUwOWFjXHUwOWMzXHUwOWI5XHUwOWI4XHUwOWNkXHUwOWFhXHUwOWE0XHUwOWJmX1x1MDliNlx1MDljMVx1MDk5NVx1MDljZFx1MDliMF9cdTA5YjZcdTA5YThcdTA5YmYiLnNwbGl0KCJfIiks''@;'; + put 'put ''d2Vla2RheXNNaW46Ilx1MDliMFx1MDlhY1x1MDliZl9cdTA5YjhcdTA5Y2JcdTA5YWVfXHUwOWFlXHUwOTk5XHUwOWNkXHUwOTk3XHUwOWIyX1x1MDlhY1x1MDljMVx1MDlhN19cdTA5YWNcdTA5YzNcdTA5YjlfXHUwOWI2XHUwOWMxXHUwOTk1XHUwOWNkXHUwOWIwX1x1MDliNlx1MDlhOFx1''@;'; + put 'put ''MDliZiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBcdTA5YjhcdTA5YWVcdTA5ZGYiLExUUzoiQSBoOm1tOnNzIFx1MDliOFx1MDlhZVx1MDlkZiIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOWI4XHUw''@;'; + put 'put ''OWFlXHUwOWRmIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MDliOFx1MDlhZVx1MDlkZiJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwOTg2XHUwOTljXSBMVCIsbmV4dERheToiW1x1MDk4Nlx1MDk5N1x1MDliZVx1MDlhZVx1MDljMFx1MDk5NVx1MDliZVx1MDliMl0gTFQi''@;'; + put 'put ''LG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MDk5N1x1MDlhNFx1MDk5NVx1MDliZVx1MDliMl0gTFQiLGxhc3RXZWVrOiJbXHUwOTk3XHUwOWE0XSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwOWFhXHUwOWIwXHUwOWM3IixwYXN0''@;'; + put 'put ''OiIlcyBcdTA5ODZcdTA5OTdcdTA5YzciLHM6Ilx1MDk5NVx1MDlkZlx1MDljN1x1MDk5NSBcdTA5YjhcdTA5YzdcdTA5OTVcdTA5YzdcdTA5YThcdTA5Y2RcdTA5YTEiLHNzOiIlZCBcdTA5YjhcdTA5YzdcdTA5OTVcdTA5YzdcdTA5YThcdTA5Y2RcdTA5YTEiLG06Ilx1MDk4Zlx1MDk5NSBc''@;'; + put 'put ''dTA5YWVcdTA5YmZcdTA5YThcdTA5YmZcdTA5OWYiLG1tOiIlZCBcdTA5YWVcdTA5YmZcdTA5YThcdTA5YmZcdTA5OWYiLGg6Ilx1MDk4Zlx1MDk5NSBcdTA5OThcdTA5YThcdTA5Y2RcdTA5OWZcdTA5YmUiLGhoOiIlZCBcdTA5OThcdTA5YThcdTA5Y2RcdTA5OWZcdTA5YmUiLGQ6Ilx1MDk4''@;'; + put 'put ''Zlx1MDk5NSBcdTA5YTZcdTA5YmZcdTA5YTgiLGRkOiIlZCBcdTA5YTZcdTA5YmZcdTA5YTgiLE06Ilx1MDk4Zlx1MDk5NSBcdTA5YWVcdTA5YmVcdTA5YjgiLE1NOiIlZCBcdTA5YWVcdTA5YmVcdTA5YjgiLHk6Ilx1MDk4Zlx1MDk5NSBcdTA5YWNcdTA5OWJcdTA5YjAiLHl5OiIlZCBcdTA5''@;'; + put 'put ''YWNcdTA5OWJcdTA5YjAifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9bXHUwOWU3XHUwOWU4XHUwOWU5XHUwOWVhXHUwOWViXHUwOWVjXHUwOWVkXHUwOWVlXHUwOWVmXHUwOWU2XS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rp''@;'; + put 'put ''b24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0pfSxtZXJpZGllbVBhcnNlOi9cdTA5YjBcdTA5YmVcdTA5YTR8XHUwOWFkXHUwOWNiXHUwOWIwfFx1MDliOFx1MDk5NVx1MDliZVx1MDliMnxcdTA5YTZcdTA5YzFcdTA5YWFcdTA5YzFcdTA5YjB8''@;'; + put 'put ''XHUwOWFjXHUwOWJmXHUwOTk1XHUwOWJlXHUwOWIyfFx1MDliOFx1MDlhOFx1MDljZFx1MDlhN1x1MDljZFx1MDlhZlx1MDliZXxcdTA5YjBcdTA5YmVcdTA5YTQvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihVLFEpe3JldHVybiAxMj09PVUmJihVPTApLCJcdTA5YjBcdTA5YmVcdTA5YTQiPT09''@;'; + put 'put ''UT9VPDQ/VTpVKzEyOiJcdTA5YWRcdTA5Y2JcdTA5YjAiPT09UXx8Ilx1MDliOFx1MDk5NVx1MDliZVx1MDliMiI9PT1RP1U6Ilx1MDlhNlx1MDljMVx1MDlhYVx1MDljMVx1MDliMCI9PT1RP1U+PTM/VTpVKzEyOiJcdTA5YWNcdTA5YmZcdTA5OTVcdTA5YmVcdTA5YjIiPT09UXx8Ilx1MDli''@;'; + put 'put ''OFx1MDlhOFx1MDljZFx1MDlhN1x1MDljZFx1MDlhZlx1MDliZSI9PT1RP1UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsWil7cmV0dXJuIFU8ND8iXHUwOWIwXHUwOWJlXHUwOWE0IjpVPDY/Ilx1MDlhZFx1MDljYlx1MDliMCI6VTwxMj8iXHUwOWI4XHUwOTk1XHUwOWJlXHUw''@;'; + put 'put ''OWIyIjpVPDE1PyJcdTA5YTZcdTA5YzFcdTA5YWFcdTA5YzFcdTA5YjAiOlU8MTg/Ilx1MDlhY1x1MDliZlx1MDk5NVx1MDliZVx1MDliMiI6VTwyMD8iXHUwOWI4XHUwOWE4XHUwOWNkXHUwOWE3XHUwOWNkXHUwOWFmXHUwOWJlIjoiXHUwOWIwXHUwOWJlXHUwOWE0In0sd2Vlazp7ZG93OjAs''@;'; + put 'put ''ZG95OjZ9fSl9KEwoMTU0MzkpKX0sNTk2MjA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ilx1MDllNyIsMjoiXHUwOWU4IiwzOiJcdTA5ZTkiLDQ6Ilx1MDllYSIsNToiXHUwOWViIiw2OiJcdTA5ZWMiLDc6Ilx1MDllZCIsODoiXHUwOWVl''@;'; + put 'put ''Iiw5OiJcdTA5ZWYiLDA6Ilx1MDllNiJ9LEU9eyJcdTA5ZTciOiIxIiwiXHUwOWU4IjoiMiIsIlx1MDllOSI6IjMiLCJcdTA5ZWEiOiI0IiwiXHUwOWViIjoiNSIsIlx1MDllYyI6IjYiLCJcdTA5ZWQiOiI3IiwiXHUwOWVlIjoiOCIsIlx1MDllZiI6IjkiLCJcdTA5ZTYiOiIwIn07bWUuZGVm''@;'; + put 'put ''aW5lTG9jYWxlKCJibiIse21vbnRoczoiXHUwOTljXHUwOWJlXHUwOWE4XHUwOWMxXHUwOWRmXHUwOWJlXHUwOWIwXHUwOWJmX1x1MDlhYlx1MDljN1x1MDlhY1x1MDljZFx1MDliMFx1MDljMVx1MDlkZlx1MDliZVx1MDliMFx1MDliZl9cdTA5YWVcdTA5YmVcdTA5YjBcdTA5Y2RcdTA5OWFf''@;'; + put 'put ''XHUwOThmXHUwOWFhXHUwOWNkXHUwOWIwXHUwOWJmXHUwOWIyX1x1MDlhZVx1MDljN19cdTA5OWNcdTA5YzFcdTA5YThfXHUwOTljXHUwOWMxXHUwOWIyXHUwOWJlXHUwOTg3X1x1MDk4Nlx1MDk5N1x1MDliOFx1MDljZFx1MDk5Zl9cdTA5YjhcdTA5YzdcdTA5YWFcdTA5Y2RcdTA5OWZcdTA5''@;'; + put 'put ''YzdcdTA5YWVcdTA5Y2RcdTA5YWNcdTA5YjBfXHUwOTg1XHUwOTk1XHUwOWNkXHUwOTlmXHUwOWNiXHUwOWFjXHUwOWIwX1x1MDlhOFx1MDlhZFx1MDljN1x1MDlhZVx1MDljZFx1MDlhY1x1MDliMF9cdTA5YTFcdTA5YmZcdTA5YjhcdTA5YzdcdTA5YWVcdTA5Y2RcdTA5YWNcdTA5YjAiLnNw''@;'; + put 'put ''bGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDk5Y1x1MDliZVx1MDlhOFx1MDljMV9cdTA5YWJcdTA5YzdcdTA5YWNcdTA5Y2RcdTA5YjBcdTA5YzFfXHUwOWFlXHUwOWJlXHUwOWIwXHUwOWNkXHUwOTlhX1x1MDk4Zlx1MDlhYVx1MDljZFx1MDliMFx1MDliZlx1MDliMl9cdTA5YWVcdTA5Yzdf''@;'; + put 'put ''XHUwOTljXHUwOWMxXHUwOWE4X1x1MDk5Y1x1MDljMVx1MDliMlx1MDliZVx1MDk4N19cdTA5ODZcdTA5OTdcdTA5YjhcdTA5Y2RcdTA5OWZfXHUwOWI4XHUwOWM3XHUwOWFhXHUwOWNkXHUwOTlmX1x1MDk4NVx1MDk5NVx1MDljZFx1MDk5Zlx1MDljYl9cdTA5YThcdTA5YWRcdTA5YzdfXHUw''@;'; + put 'put ''OWExXHUwOWJmXHUwOWI4XHUwOWM3Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA5YjBcdTA5YWNcdTA5YmZcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWI4XHUwOWNiXHUwOWFlXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDlhZVx1MDk5OVx1MDljZFx1MDk5N1x1MDliMlx1MDlhY1x1MDliZVx1MDli''@;'; + put 'put ''MF9cdTA5YWNcdTA5YzFcdTA5YTdcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWFjXHUwOWMzXHUwOWI5XHUwOWI4XHUwOWNkXHUwOWFhXHUwOWE0XHUwOWJmXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDliNlx1MDljMVx1MDk5NVx1MDljZFx1MDliMFx1MDlhY1x1MDliZVx1MDliMF9cdTA5YjZcdTA5''@;'; + put 'put ''YThcdTA5YmZcdTA5YWNcdTA5YmVcdTA5YjAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwOWIwXHUwOWFjXHUwOWJmX1x1MDliOFx1MDljYlx1MDlhZV9cdTA5YWVcdTA5OTlcdTA5Y2RcdTA5OTdcdTA5YjJfXHUwOWFjXHUwOWMxXHUwOWE3X1x1MDlhY1x1MDljM1x1MDliOVx1MDli''@;'; + put 'put ''OFx1MDljZFx1MDlhYVx1MDlhNFx1MDliZl9cdTA5YjZcdTA5YzFcdTA5OTVcdTA5Y2RcdTA5YjBfXHUwOWI2XHUwOWE4XHUwOWJmIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA5YjBcdTA5YWNcdTA5YmZfXHUwOWI4XHUwOWNiXHUwOWFlX1x1MDlhZVx1MDk5OVx1MDljZFx1MDk5N1x1''@;'; + put 'put ''MDliMl9cdTA5YWNcdTA5YzFcdTA5YTdfXHUwOWFjXHUwOWMzXHUwOWI5X1x1MDliNlx1MDljMVx1MDk5NVx1MDljZFx1MDliMF9cdTA5YjZcdTA5YThcdTA5YmYiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0gXHUwOWI4XHUwOWFlXHUwOWRmIixMVFM6IkEgaDptbTpz''@;'; + put 'put ''cyBcdTA5YjhcdTA5YWVcdTA5ZGYiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MDliOFx1MDlhZVx1MDlkZiIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSBcdTA5YjhcdTA5YWVcdTA5ZGYifSxjYWxlbmRhcjp7c2Ft''@;'; + put 'put ''ZURheToiW1x1MDk4Nlx1MDk5Y10gTFQiLG5leHREYXk6IltcdTA5ODZcdTA5OTdcdTA5YmVcdTA5YWVcdTA5YzBcdTA5OTVcdTA5YmVcdTA5YjJdIExUIixuZXh0V2VlazoiZGRkZCwgTFQiLGxhc3REYXk6IltcdTA5OTdcdTA5YTRcdTA5OTVcdTA5YmVcdTA5YjJdIExUIixsYXN0V2Vlazoi''@;'; + put 'put ''W1x1MDk5N1x1MDlhNF0gZGRkZCwgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MDlhYVx1MDliMFx1MDljNyIscGFzdDoiJXMgXHUwOTg2XHUwOTk3XHUwOWM3IixzOiJcdTA5OTVcdTA5ZGZcdTA5YzdcdTA5OTUgXHUwOWI4XHUwOWM3XHUwOTk1XHUwOWM3''@;'; + put 'put ''XHUwOWE4XHUwOWNkXHUwOWExIixzczoiJWQgXHUwOWI4XHUwOWM3XHUwOTk1XHUwOWM3XHUwOWE4XHUwOWNkXHUwOWExIixtOiJcdTA5OGZcdTA5OTUgXHUwOWFlXHUwOWJmXHUwOWE4XHUwOWJmXHUwOTlmIixtbToiJWQgXHUwOWFlXHUwOWJmXHUwOWE4XHUwOWJmXHUwOTlmIixoOiJcdTA5''@;'; + put 'put ''OGZcdTA5OTUgXHUwOTk4XHUwOWE4XHUwOWNkXHUwOTlmXHUwOWJlIixoaDoiJWQgXHUwOTk4XHUwOWE4XHUwOWNkXHUwOTlmXHUwOWJlIixkOiJcdTA5OGZcdTA5OTUgXHUwOWE2XHUwOWJmXHUwOWE4IixkZDoiJWQgXHUwOWE2XHUwOWJmXHUwOWE4IixNOiJcdTA5OGZcdTA5OTUgXHUwOWFl''@;'; + put 'put ''XHUwOWJlXHUwOWI4IixNTToiJWQgXHUwOWFlXHUwOWJlXHUwOWI4Iix5OiJcdTA5OGZcdTA5OTUgXHUwOWFjXHUwOTliXHUwOWIwIix5eToiJWQgXHUwOWFjXHUwOTliXHUwOWIwIn0scHJlcGFyc2U6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvW1x1MDllN1x1MDllOFx1MDllOVx1''@;'; + put 'put ''MDllYVx1MDllYlx1MDllY1x1MDllZFx1MDllZVx1MDllZlx1MDllNl0vZyxmdW5jdGlvbihRKXtyZXR1cm4gRVtRXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oUSl7cmV0dXJuIEJbUV19KX0sbWVyaWRpZW1QYXJzZTovXHUwOWIw''@;'; + put 'put ''XHUwOWJlXHUwOWE0fFx1MDliOFx1MDk5NVx1MDliZVx1MDliMnxcdTA5YTZcdTA5YzFcdTA5YWFcdTA5YzFcdTA5YjB8XHUwOWFjXHUwOWJmXHUwOTk1XHUwOWJlXHUwOWIyfFx1MDliMFx1MDliZVx1MDlhNC8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKFUsUSl7cmV0dXJuIDEyPT09VSYmKFU9''@;'; + put 'put ''MCksIlx1MDliMFx1MDliZVx1MDlhNCI9PT1RJiZVPj00fHwiXHUwOWE2XHUwOWMxXHUwOWFhXHUwOWMxXHUwOWIwIj09PVEmJlU8NXx8Ilx1MDlhY1x1MDliZlx1MDk5NVx1MDliZVx1MDliMiI9PT1RP1UrMTI6VX0sbWVyaWRpZW06ZnVuY3Rpb24oVSxRLFope3JldHVybiBVPDQ/Ilx1MDli''@;'; + put 'put ''MFx1MDliZVx1MDlhNCI6VTwxMD8iXHUwOWI4XHUwOTk1XHUwOWJlXHUwOWIyIjpVPDE3PyJcdTA5YTZcdTA5YzFcdTA5YWFcdTA5YzFcdTA5YjAiOlU8MjA/Ilx1MDlhY1x1MDliZlx1MDk5NVx1MDliZVx1MDliMiI6Ilx1MDliMFx1MDliZVx1MDlhNCJ9LHdlZWs6e2RvdzowLGRveTo2fX0p''@;'; + put 'put ''fShMKDE1NDM5KSl9LDY5NjQ1OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiJcdTBmMjEiLDI6Ilx1MGYyMiIsMzoiXHUwZjIzIiw0OiJcdTBmMjQiLDU6Ilx1MGYyNSIsNjoiXHUwZjI2Iiw3OiJcdTBmMjciLDg6Ilx1MGYyOCIsOToiXHUw''@;'; + put 'put ''ZjI5IiwwOiJcdTBmMjAifSxFPXsiXHUwZjIxIjoiMSIsIlx1MGYyMiI6IjIiLCJcdTBmMjMiOiIzIiwiXHUwZjI0IjoiNCIsIlx1MGYyNSI6IjUiLCJcdTBmMjYiOiI2IiwiXHUwZjI3IjoiNyIsIlx1MGYyOCI6IjgiLCJcdTBmMjkiOiI5IiwiXHUwZjIwIjoiMCJ9O21lLmRlZmluZUxvY2Fs''@;'; + put 'put ''ZSgiYm8iLHttb250aHM6Ilx1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1MVx1MGY0NFx1MGYwYlx1MGY1NFx1MGY3Y19cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNDJcdTBmNDlcdTBmNzJcdTBmNjZcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUw''@;'; + put 'put ''ZjU2XHUwZjBiXHUwZjQyXHUwZjY2XHUwZjc0XHUwZjU4XHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1Nlx1MGY1ZVx1MGY3Mlx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNjNcdTBmOTRcdTBmMGJcdTBmNTRfXHUw''@;'; + put 'put ''ZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjUxXHUwZmIyXHUwZjc0XHUwZjQyXHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1Nlx1MGY1MVx1MGY3NFx1MGY1M1x1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBm''@;'; + put 'put ''NTZcdTBmNjJcdTBmOTJcdTBmYjFcdTBmNTFcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjUxXHUwZjQyXHUwZjc0XHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1Nlx1MGY0NVx1MGY3NFx1MGYwYlx1MGY1NF9cdTBm''@;'; + put 'put ''NWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNTZcdTBmNDVcdTBmNzRcdTBmMGJcdTBmNDJcdTBmNDVcdTBmNzJcdTBmNDJcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjU2XHUwZjQ1XHUwZjc0XHUwZjBiXHUwZjQyXHUwZjQ5XHUwZjcyXHUwZjY2''@;'; + put 'put ''XHUwZjBiXHUwZjU0Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBmNWZcdTBmYjNcdTBmMGIxX1x1MGY1Zlx1MGZiM1x1MGYwYjJfXHUwZjVmXHUwZmIzXHUwZjBiM19cdTBmNWZcdTBmYjNcdTBmMGI0X1x1MGY1Zlx1MGZiM1x1MGYwYjVfXHUwZjVmXHUwZmIzXHUwZjBiNl9cdTBmNWZc''@;'; + put 'put ''dTBmYjNcdTBmMGI3X1x1MGY1Zlx1MGZiM1x1MGYwYjhfXHUwZjVmXHUwZmIzXHUwZjBiOV9cdTBmNWZcdTBmYjNcdTBmMGIxMF9cdTBmNWZcdTBmYjNcdTBmMGIxMV9cdTBmNWZcdTBmYjNcdTBmMGIxMiIuc3BsaXQoIl8iKSxtb250aHNTaG9ydFJlZ2V4Oi9eKFx1MGY1Zlx1MGZiM1x1MGYw''@;'; + put 'put ''YlxkezEsMn0pLyxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTBmNDJcdTBmNWZcdTBmNjBcdTBmMGJcdTBmNDlcdTBmNzJcdTBmMGJcdTBmNThcdTBmMGJfXHUwZjQyXHUwZjVmXHUwZjYwXHUwZjBiXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiX1x1MGY0Mlx1MGY1Zlx1''@;'; + put 'put ''MGY2MFx1MGYwYlx1MGY1OFx1MGY3Mlx1MGY0Mlx1MGYwYlx1MGY1MVx1MGY1OFx1MGY2Mlx1MGYwYl9cdTBmNDJcdTBmNWZcdTBmNjBcdTBmMGJcdTBmNjNcdTBmYjdcdTBmNDJcdTBmMGJcdTBmNTRcdTBmMGJfXHUwZjQyXHUwZjVmXHUwZjYwXHUwZjBiXHUwZjU1XHUwZjc0XHUwZjYyXHUw''@;'; + put 'put ''ZjBiXHUwZjU2XHUwZjc0X1x1MGY0Mlx1MGY1Zlx1MGY2MFx1MGYwYlx1MGY1NFx1MGYwYlx1MGY2Nlx1MGY0NFx1MGY2Nlx1MGYwYl9cdTBmNDJcdTBmNWZcdTBmNjBcdTBmMGJcdTBmNjZcdTBmYTRcdTBmN2FcdTBmNTNcdTBmMGJcdTBmNTRcdTBmMGIiLnNwbGl0KCJfIiksd2Vla2RheXNT''@;'; + put 'put ''aG9ydDoiXHUwZjQ5XHUwZjcyXHUwZjBiXHUwZjU4XHUwZjBiX1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYl9cdTBmNThcdTBmNzJcdTBmNDJcdTBmMGJcdTBmNTFcdTBmNThcdTBmNjJcdTBmMGJfXHUwZjYzXHUwZmI3XHUwZjQyXHUwZjBiXHUwZjU0XHUwZjBiX1x1MGY1NVx1MGY3''@;'; + put 'put ''NFx1MGY2Mlx1MGYwYlx1MGY1Nlx1MGY3NF9cdTBmNTRcdTBmMGJcdTBmNjZcdTBmNDRcdTBmNjZcdTBmMGJfXHUwZjY2XHUwZmE0XHUwZjdhXHUwZjUzXHUwZjBiXHUwZjU0XHUwZjBiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBmNDlcdTBmNzJfXHUwZjVmXHUwZmIzX1x1MGY1OFx1''@;'; + put 'put ''MGY3Mlx1MGY0Ml9cdTBmNjNcdTBmYjdcdTBmNDJfXHUwZjU1XHUwZjc0XHUwZjYyX1x1MGY2Nlx1MGY0NFx1MGY2Nl9cdTBmNjZcdTBmYTRcdTBmN2FcdTBmNTMiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0iLExUUzoiQSBoOm1tOnNzIixMOiJERC9NTS9ZWVlZIixM''@;'; + put 'put ''TDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwZjUxXHUwZjcyXHUwZjBiXHUwZjYyXHUwZjcyXHUwZjQ0XSBMVCIsbmV4dERheToiW1x1MGY2Nlx1MGY0NFx1MGYw''@;'; + put 'put ''Ylx1MGY0OVx1MGY3Mlx1MGY1M10gTFQiLG5leHRXZWVrOiJbXHUwZjU2XHUwZjUxXHUwZjc0XHUwZjUzXHUwZjBiXHUwZjU1XHUwZmIyXHUwZjQyXHUwZjBiXHUwZjYyXHUwZjk3XHUwZjdhXHUwZjY2XHUwZjBiXHUwZjU4XSwgTFQiLGxhc3REYXk6IltcdTBmNDFcdTBmMGJcdTBmNjZcdTBm''@;'; + put 'put ''NDRdIExUIixsYXN0V2VlazoiW1x1MGY1Nlx1MGY1MVx1MGY3NFx1MGY1M1x1MGYwYlx1MGY1NVx1MGZiMlx1MGY0Mlx1MGYwYlx1MGY1OFx1MGY1MFx1MGY2MFx1MGYwYlx1MGY1OF0gZGRkZCwgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MGY2M1x1MGYw''@;'; + put 'put ''YiIscGFzdDoiJXMgXHUwZjY2XHUwZjk0XHUwZjUzXHUwZjBiXHUwZjYzIixzOiJcdTBmNjNcdTBmNThcdTBmMGJcdTBmNjZcdTBmNDQiLHNzOiIlZCBcdTBmNjZcdTBmOTBcdTBmNjJcdTBmMGJcdTBmNDZcdTBmMGQiLG06Ilx1MGY2Nlx1MGY5MFx1MGY2Mlx1MGYwYlx1MGY1OFx1MGYwYlx1''@;'; + put 'put ''MGY0Mlx1MGY0NVx1MGY3Mlx1MGY0MiIsbW06IiVkIFx1MGY2Nlx1MGY5MFx1MGY2Mlx1MGYwYlx1MGY1OCIsaDoiXHUwZjQ2XHUwZjc0XHUwZjBiXHUwZjVhXHUwZjdjXHUwZjUxXHUwZjBiXHUwZjQyXHUwZjQ1XHUwZjcyXHUwZjQyIixoaDoiJWQgXHUwZjQ2XHUwZjc0XHUwZjBiXHUwZjVh''@;'; + put 'put ''XHUwZjdjXHUwZjUxIixkOiJcdTBmNDlcdTBmNzJcdTBmNTNcdTBmMGJcdTBmNDJcdTBmNDVcdTBmNzJcdTBmNDIiLGRkOiIlZCBcdTBmNDlcdTBmNzJcdTBmNTNcdTBmMGIiLE06Ilx1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY0Mlx1MGY0NVx1MGY3Mlx1MGY0MiIsTU06IiVk''@;'; + put 'put ''IFx1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1NiIseToiXHUwZjYzXHUwZjdjXHUwZjBiXHUwZjQyXHUwZjQ1XHUwZjcyXHUwZjQyIix5eToiJWQgXHUwZjYzXHUwZjdjIn0scHJlcGFyc2U6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvW1x1MGYyMVx1MGYyMlx1MGYyM1x1MGYyNFx1MGYy''@;'; + put 'put ''NVx1MGYyNlx1MGYyN1x1MGYyOFx1MGYyOVx1MGYyMF0vZyxmdW5jdGlvbihRKXtyZXR1cm4gRVtRXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oUSl7cmV0dXJuIEJbUV19KX0sbWVyaWRpZW1QYXJzZTovXHUwZjU4XHUwZjVhXHUw''@;'; + put 'put ''ZjUzXHUwZjBiXHUwZjU4XHUwZjdjfFx1MGY1ZVx1MGY3Y1x1MGY0Mlx1MGY2Nlx1MGYwYlx1MGY0MFx1MGY2NnxcdTBmNDlcdTBmNzJcdTBmNTNcdTBmMGJcdTBmNDJcdTBmNzRcdTBmNDR8XHUwZjUxXHUwZjQyXHUwZjdjXHUwZjQ0XHUwZjBiXHUwZjUxXHUwZjQyfFx1MGY1OFx1MGY1YVx1''@;'; + put 'put ''MGY1M1x1MGYwYlx1MGY1OFx1MGY3Yy8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKFUsUSl7cmV0dXJuIDEyPT09VSYmKFU9MCksIlx1MGY1OFx1MGY1YVx1MGY1M1x1MGYwYlx1MGY1OFx1MGY3YyI9PT1RJiZVPj00fHwiXHUwZjQ5XHUwZjcyXHUwZjUzXHUwZjBiXHUwZjQyXHUwZjc0XHUwZjQ0''@;'; + put 'put ''Ij09PVEmJlU8NXx8Ilx1MGY1MVx1MGY0Mlx1MGY3Y1x1MGY0NFx1MGYwYlx1MGY1MVx1MGY0MiI9PT1RP1UrMTI6VX0sbWVyaWRpZW06ZnVuY3Rpb24oVSxRLFope3JldHVybiBVPDQ/Ilx1MGY1OFx1MGY1YVx1MGY1M1x1MGYwYlx1MGY1OFx1MGY3YyI6VTwxMD8iXHUwZjVlXHUwZjdjXHUw''@;'; + put 'put ''ZjQyXHUwZjY2XHUwZjBiXHUwZjQwXHUwZjY2IjpVPDE3PyJcdTBmNDlcdTBmNzJcdTBmNTNcdTBmMGJcdTBmNDJcdTBmNzRcdTBmNDQiOlU8MjA/Ilx1MGY1MVx1MGY0Mlx1MGY3Y1x1MGY0NFx1MGYwYlx1MGY1MVx1MGY0MiI6Ilx1MGY1OFx1MGY1YVx1MGY1M1x1MGYwYlx1MGY1OFx1MGY3''@;'; + put 'put ''YyJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShMKDE1NDM5KSl9LDQ1MDIwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoSixzZSxvZSl7cmV0dXJuIEorIiAiK2Z1bmN0aW9uIFUoSixzZSl7cmV0dXJuIDI9PT1zZT9mdW5jdGlvbiBRKEop''@;'; + put 'put ''e3ZhciBzZT17bToidiIsYjoidiIsZDoieiJ9O3JldHVybiB2b2lkIDA9PT1zZVtKLmNoYXJBdCgwKV0/SjpzZVtKLmNoYXJBdCgwKV0rSi5zdWJzdHJpbmcoMSl9KEopOkp9KHttbToibXVudXRlbm4iLE1NOiJtaXoiLGRkOiJkZXZlemgifVtvZV0sSil9ZnVuY3Rpb24gTWUoSil7cmV0dXJu''@;'; + put 'put ''IEo+OT9NZShKJTEwKTpKfXZhciBaPVsvXmdlbi9pLC9eY1tcdTAyYmNcJ11od2UvaSwvXm1ldS9pLC9eZWJyL2ksL15tYWUvaSwvXihtZXp8ZXZlKS9pLC9eZ291L2ksL15lb3MvaSwvXmd3ZS9pLC9eaGVyL2ksL15kdS9pLC9ea2VyL2ldLGllPS9eKGdlbnZlcnxjW1x1MDJiY1wnXWh3ZXZy''@;'; + put 'put ''ZXJ8bWV1cnpofGVicmVsfG1hZXxtZXpoZXZlbnxnb3VlcmV8ZW9zdHxnd2VuZ29sb3xoZXJlfGR1fGtlcnp1fGdlbnxjW1x1MDJiY1wnXWh3ZXxtZXV8ZWJyfG1hZXxldmV8Z291fGVvc3xnd2V8aGVyfGR1fGtlcikvaSxlZT1bL15TdS9pLC9eTHUvaSwvXk1lKFtecl18JCkvaSwvXk1lci9p''@;'; + put 'put ''LC9eWWEvaSwvXkd3L2ksL15TYS9pXTttZS5kZWZpbmVMb2NhbGUoImJyIix7bW9udGhzOiJHZW52ZXJfQ1x1MDJiY2h3ZXZyZXJfTWV1cnpoX0VicmVsX01hZV9NZXpoZXZlbl9Hb3VlcmVfRW9zdF9Hd2VuZ29sb19IZXJlX0R1X0tlcnp1Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJHZW5f''@;'; + put 'put ''Q1x1MDJiY2h3ZV9NZXVfRWJyX01hZV9FdmVfR291X0Vvc19Hd2VfSGVyX0R1X0tlciIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VsX0x1bl9NZXVyemhfTWVyY1x1MDJiY2hlcl9ZYW91X0d3ZW5lcl9TYWRvcm4iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VsX0x1bl9NZXVfTWVyX1lh''@;'; + put 'put ''b19Hd2VfU2FkIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9MdV9NZV9NZXJfWWFfR3dfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZTplZSxmdWxsV2Vla2RheXNQYXJzZTpbL15zdWwvaSwvXmx1bi9pLC9ebWV1cnpoL2ksL15tZXJjW1x1MDJiY1wnXWhlci9pLC9eeWFvdS9pLC9e''@;'; + put 'put ''Z3dlbmVyL2ksL15zYWRvcm4vaV0sc2hvcnRXZWVrZGF5c1BhcnNlOlsvXlN1bC9pLC9eTHVuL2ksL15NZXUvaSwvXk1lci9pLC9eWWFvL2ksL15Hd2UvaSwvXlNhZC9pXSxtaW5XZWVrZGF5c1BhcnNlOmVlLG1vbnRoc1JlZ2V4OmllLG1vbnRoc1Nob3J0UmVnZXg6aWUsbW9udGhzU3RyaWN0''@;'; + put 'put ''UmVnZXg6L14oZ2VudmVyfGNbXHUwMmJjXCddaHdldnJlcnxtZXVyemh8ZWJyZWx8bWFlfG1lemhldmVufGdvdWVyZXxlb3N0fGd3ZW5nb2xvfGhlcmV8ZHV8a2VyenUpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihnZW58Y1tcdTAyYmNcJ11od2V8bWV1fGVicnxtYWV8ZXZlfGdvdXxl''@;'; + put 'put ''b3N8Z3dlfGhlcnxkdXxrZXIpL2ksbW9udGhzUGFyc2U6Wixsb25nTW9udGhzUGFyc2U6WixzaG9ydE1vbnRoc1BhcnNlOlosbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgW2Egdml6XSBNTU1NIFlZWVkiLExMTDoiRCBbYSB2''@;'; + put 'put ''aXpdIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBbYSB2aXpdIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSGl6aXYgZGFdIExUIixuZXh0RGF5OiJbV2FyY1x1MDJiY2hvYXpoIGRhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2RhXSBMVCIsbGFzdERheToiW0Rl''@;'; + put 'put ''Y1x1MDJiY2ggZGFdIExUIixsYXN0V2VlazoiZGRkZCBbcGFzZXQgZGFdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJhLWJlbm4gJXMiLHBhc3Q6IiVzIFx1MDJiY3pvIixzOiJ1biBuZWJldWQgc2Vnb25kZW5ub1x4ZjkiLHNzOiIlZCBlaWxlbm4iLG06InVyIHZ1''@;'; + put 'put ''bnV0ZW5uIixtbTpCLGg6InVuIGV1ciIsaGg6IiVkIGV1ciIsZDoidW4gZGV2ZXpoIixkZDpCLE06InVyIG1peiIsTU06Qix5OiJ1ciBibG9heiIseXk6ZnVuY3Rpb24gRShKKXtzd2l0Y2goTWUoSikpe2Nhc2UgMTpjYXNlIDM6Y2FzZSA0OmNhc2UgNTpjYXNlIDk6cmV0dXJuIEorIiBibG9h''@;'; + put 'put ''eiI7ZGVmYXVsdDpyZXR1cm4gSisiIHZsb2F6In19fSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KGFceGYxfHZldCkvLG9yZGluYWw6ZnVuY3Rpb24oSil7cmV0dXJuIEorKDE9PT1KPyJhXHhmMSI6InZldCIpfSx3ZWVrOntkb3c6MSxkb3k6NH0sbWVyaWRpZW1QYXJzZTovYS5t''@;'; + put 'put ''LnxnLm0uLyxpc1BNOmZ1bmN0aW9uKEope3JldHVybiJnLm0uIj09PUp9LG1lcmlkaWVtOmZ1bmN0aW9uKEosc2Usb2Upe3JldHVybiBKPDEyPyJhLm0uIjoiZy5tLiJ9fSl9KEwoMTU0MzkpKX0sNjQ3OTI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVu''@;'; + put 'put ''Y3Rpb24gQihNZSxVLFEpe3ZhciBaPU1lKyIgIjtzd2l0Y2goUSl7Y2FzZSJzcyI6cmV0dXJuIForKDE9PT1NZT8ic2VrdW5kYSI6Mj09PU1lfHwzPT09TWV8fDQ9PT1NZT8ic2VrdW5kZSI6InNla3VuZGkiKTtjYXNlIm0iOnJldHVybiBVPyJqZWRuYSBtaW51dGEiOiJqZWRuZSBtaW51dGUi''@;'; + put 'put ''O2Nhc2UibW0iOnJldHVybiBaKygxPT09TWU/Im1pbnV0YSI6Mj09PU1lfHwzPT09TWV8fDQ9PT1NZT8ibWludXRlIjoibWludXRhIik7Y2FzZSJoIjpyZXR1cm4gVT8iamVkYW4gc2F0IjoiamVkbm9nIHNhdGEiO2Nhc2UiaGgiOnJldHVybiBaKygxPT09TWU/InNhdCI6Mj09PU1lfHwzPT09''@;'; + put 'put ''TWV8fDQ9PT1NZT8ic2F0YSI6InNhdGkiKTtjYXNlImRkIjpyZXR1cm4gWisoMT09PU1lPyJkYW4iOiJkYW5hIik7Y2FzZSJNTSI6cmV0dXJuIForKDE9PT1NZT8ibWplc2VjIjoyPT09TWV8fDM9PT1NZXx8ND09PU1lPyJtamVzZWNhIjoibWplc2VjaSIpO2Nhc2UieXkiOnJldHVybiBaKygx''@;'; + put 'put ''PT09TWU/ImdvZGluYSI6Mj09PU1lfHwzPT09TWV8fDQ9PT1NZT8iZ29kaW5lIjoiZ29kaW5hIil9fW1lLmRlZmluZUxvY2FsZSgiYnMiLHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcnRfYXByaWxfbWFqX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmFyX29rdG9iYXJfbm92ZW1iYXJfZGVj''@;'; + put 'put ''ZW1iYXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbi5fZmViLl9tYXIuX2Fwci5fbWFqLl9qdW4uX2p1bC5fYXVnLl9zZXAuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Im5lZGplbGphX3BvbmVkamVsamFrX3V0b3Jha19zcmlq''@;'; + put 'put ''ZWRhX1x1MDEwZGV0dnJ0YWtfcGV0YWtfc3Vib3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Im5lZC5fcG9uLl91dG8uX3NyaS5fXHUwMTBkZXQuX3BldC5fc3ViLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fdXRfc3JfXHUwMTBkZV9wZV9zdSIuc3BsaXQoIl8iKSx3ZWVr''@;'; + put 'put ''ZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6''@;'; + put 'put ''IltkYW5hcyB1XSBMVCIsbmV4dERheToiW3N1dHJhIHVdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt1XSBbbmVkamVsanVdIFt1XSBMVCI7Y2FzZSAzOnJldHVybiJbdV0gW3NyaWplZHVdIFt1XSBMVCI7Y2FzZSA2OnJldHVybiJb''@;'; + put 'put ''dV0gW3N1Ym90dV0gW3VdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIlt1XSBkZGRkIFt1XSBMVCJ9fSxsYXN0RGF5OiJbanVcdTAxMGRlciB1XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOmNhc2UgMzpyZXR1cm4iW3By''@;'; + put 'put ''b1x1MDE2MWx1XSBkZGRkIFt1XSBMVCI7Y2FzZSA2OnJldHVybiJbcHJvXHUwMTYxbGVdIFtzdWJvdGVdIFt1XSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbcHJvXHUwMTYxbGldIGRkZGQgW3VdIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1''@;'; + put 'put ''cmU6InphICVzIixwYXN0OiJwcmlqZSAlcyIsczoicGFyIHNla3VuZGkiLHNzOkIsbTpCLG1tOkIsaDpCLGhoOkIsZDoiZGFuIixkZDpCLE06Im1qZXNlYyIsTU06Qix5OiJnb2RpbnUiLHl5OkJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVr''@;'; + put 'put ''Ontkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw0Nzk4MDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImNhIix7bW9udGhzOntzdGFuZGFsb25lOiJnZW5lcl9mZWJyZXJfbWFyXHhlN19hYnJpbF9tYWlnX2p1bnlfanVsaW9s''@;'; + put 'put ''X2Fnb3N0X3NldGVtYnJlX29jdHVicmVfbm92ZW1icmVfZGVzZW1icmUiLnNwbGl0KCJfIiksZm9ybWF0OiJkZSBnZW5lcl9kZSBmZWJyZXJfZGUgbWFyXHhlN19kJ2FicmlsX2RlIG1haWdfZGUganVueV9kZSBqdWxpb2xfZCdhZ29zdF9kZSBzZXRlbWJyZV9kJ29jdHVicmVfZGUgbm92ZW1i''@;'; + put 'put ''cmVfZGUgZGVzZW1icmUiLnNwbGl0KCJfIiksaXNGb3JtYXQ6L0Rbb0RdPyhccykrTU1NTS99LG1vbnRoc1Nob3J0OiJnZW4uX2ZlYnIuX21hclx4ZTdfYWJyLl9tYWlnX2p1bnlfanVsLl9hZy5fc2V0Ll9vY3QuX25vdi5fZGVzLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdl''@;'; + put 'put ''ZWtkYXlzOiJkaXVtZW5nZV9kaWxsdW5zX2RpbWFydHNfZGltZWNyZXNfZGlqb3VzX2RpdmVuZHJlc19kaXNzYWJ0ZSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkZy5fZGwuX2R0Ll9kYy5fZGouX2R2Ll9kcy4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRnX2RsX2R0X2RjX2RqX2R2''@;'; + put 'put ''X2RzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBbZGVdIFlZWVkiLGxsOiJEIE1NTSBZWVlZIixMTEw6IkQgTU1NTSBbZGVdIFlZWVkgW2EgbGVzXSBIOm1t''@;'; + put 'put ''IixsbGw6IkQgTU1NIFlZWVksIEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFtkZV0gWVlZWSBbYSBsZXNdIEg6bW0iLGxsbGw6ImRkZCBEIE1NTSBZWVlZLCBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2F2dWkgYSAiKygxIT09dGhpcy5ob3VycygpPyJsZXMi''@;'; + put 'put ''OiJsYSIpKyJdIExUIn0sbmV4dERheTpmdW5jdGlvbigpe3JldHVybiJbZGVtXHhlMCBhICIrKDEhPT10aGlzLmhvdXJzKCk/ImxlcyI6ImxhIikrIl0gTFQifSxuZXh0V2VlazpmdW5jdGlvbigpe3JldHVybiJkZGRkIFthICIrKDEhPT10aGlzLmhvdXJzKCk/ImxlcyI6ImxhIikrIl0gTFQi''@;'; + put 'put ''fSxsYXN0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIlthaGlyIGEgIisoMSE9PXRoaXMuaG91cnMoKT8ibGVzIjoibGEiKSsiXSBMVCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltlbF0gZGRkZCBbcGFzc2F0IGEgIisoMSE9PXRoaXMuaG91cnMoKT8ibGVzIjoibGEiKSsiXSBMVCJ9LHNh''@;'; + put 'put ''bWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImQnYXF1XHhlZCAlcyIscGFzdDoiZmEgJXMiLHM6InVucyBzZWdvbnMiLHNzOiIlZCBzZWdvbnMiLG06InVuIG1pbnV0IixtbToiJWQgbWludXRzIixoOiJ1bmEgaG9yYSIsaGg6IiVkIGhvcmVzIixkOiJ1biBkaWEiLGRkOiIlZCBk''@;'; + put 'put ''aWVzIixNOiJ1biBtZXMiLE1NOiIlZCBtZXNvcyIseToidW4gYW55Iix5eToiJWQgYW55cyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0ocnxufHR8XHhlOHxhKS8sb3JkaW5hbDpmdW5jdGlvbihFLE1lKXt2YXIgVT0xPT09RT8iciI6Mj09PUU/Im4iOjM9PT1FPyJyIjo0PT09''@;'; + put 'put ''RT8idCI6Ilx4ZTgiO3JldHVybigidyI9PT1NZXx8IlciPT09TWUpJiYoVT0iYSIpLEUrVX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNDczMjI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9e2Zvcm1hdDoibGVkZW5fXHhmYW5v''@;'; + put 'put ''cl9iXHUwMTU5ZXplbl9kdWJlbl9rdlx1MDExYnRlbl9cdTAxMGRlcnZlbl9cdTAxMGRlcnZlbmVjX3NycGVuX3pceGUxXHUwMTU5XHhlZF9cdTAxNTlceGVkamVuX2xpc3RvcGFkX3Byb3NpbmVjIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6ImxlZG5hX1x4ZmFub3JhX2JcdTAxNTllem5hX2R1''@;'; + put 'put ''Ym5hX2t2XHUwMTFidG5hX1x1MDEwZGVydm5hX1x1MDEwZGVydmVuY2Vfc3JwbmFfelx4ZTFcdTAxNTlceGVkX1x1MDE1OVx4ZWRqbmFfbGlzdG9wYWR1X3Byb3NpbmNlIi5zcGxpdCgiXyIpfSxFPSJsZWRfXHhmYW5vX2JcdTAxNTllX2R1Yl9rdlx1MDExYl9cdTAxMGR2bl9cdTAxMGR2Y19z''@;'; + put 'put ''cnBfelx4ZTFcdTAxNTlfXHUwMTU5XHhlZGpfbGlzX3BybyIuc3BsaXQoIl8iKSxNZT1bL15sZWQvaSwvXlx4ZmFuby9pLC9eYlx1MDE1OWUvaSwvXmR1Yi9pLC9ea3ZcdTAxMWIvaSwvXihcdTAxMGR2bnxcdTAxMGRlcnZlbiR8XHUwMTBkZXJ2bmEpL2ksL14oXHUwMTBkdmN8XHUwMTBkZXJ2''@;'; + put 'put ''ZW5lY3xcdTAxMGRlcnZlbmNlKS9pLC9ec3JwL2ksL156XHhlMVx1MDE1OS9pLC9eXHUwMTU5XHhlZGovaSwvXmxpcy9pLC9ecHJvL2ldLFU9L14obGVkZW58XHhmYW5vcnxiXHUwMTU5ZXplbnxkdWJlbnxrdlx1MDExYnRlbnxcdTAxMGRlcnZlbmVjfFx1MDEwZGVydmVuY2V8XHUwMTBkZXJ2''@;'; + put 'put ''ZW58XHUwMTBkZXJ2bmF8c3JwZW58elx4ZTFcdTAxNTlceGVkfFx1MDE1OVx4ZWRqZW58bGlzdG9wYWR8cHJvc2luZWN8bGVkfFx4ZmFub3xiXHUwMTU5ZXxkdWJ8a3ZcdTAxMWJ8XHUwMTBkdm58XHUwMTBkdmN8c3JwfHpceGUxXHUwMTU5fFx1MDE1OVx4ZWRqfGxpc3xwcm8pL2k7ZnVuY3Rp''@;'; + put 'put ''b24gUShsZSl7cmV0dXJuIGxlPjEmJmxlPDUmJjEhPX5+KGxlLzEwKX1mdW5jdGlvbiBaKGxlLFksVyxOKXt2YXIgZWU9bGUrIiAiO3N3aXRjaChXKXtjYXNlInMiOnJldHVybiBZfHxOPyJwXHhlMXIgc2VrdW5kIjoicFx4ZTFyIHNla3VuZGFtaSI7Y2FzZSJzcyI6cmV0dXJuIFl8fE4/ZWUr''@;'; + put 'put ''KFEobGUpPyJzZWt1bmR5Ijoic2VrdW5kIik6ZWUrInNla3VuZGFtaSI7Y2FzZSJtIjpyZXR1cm4gWT8ibWludXRhIjpOPyJtaW51dHUiOiJtaW51dG91IjtjYXNlIm1tIjpyZXR1cm4gWXx8Tj9lZSsoUShsZSk/Im1pbnV0eSI6Im1pbnV0Iik6ZWUrIm1pbnV0YW1pIjtjYXNlImgiOnJldHVy''@;'; + put 'put ''biBZPyJob2RpbmEiOk4/ImhvZGludSI6ImhvZGlub3UiO2Nhc2UiaGgiOnJldHVybiBZfHxOP2VlKyhRKGxlKT8iaG9kaW55IjoiaG9kaW4iKTplZSsiaG9kaW5hbWkiO2Nhc2UiZCI6cmV0dXJuIFl8fE4/ImRlbiI6ImRuZW0iO2Nhc2UiZGQiOnJldHVybiBZfHxOP2VlKyhRKGxlKT8iZG55''@;'; + put 'put ''IjoiZG5ceGVkIik6ZWUrImRueSI7Y2FzZSJNIjpyZXR1cm4gWXx8Tj8ibVx1MDExYnNceGVkYyI6Im1cdTAxMWJzXHhlZGNlbSI7Y2FzZSJNTSI6cmV0dXJuIFl8fE4/ZWUrKFEobGUpPyJtXHUwMTFic1x4ZWRjZSI6Im1cdTAxMWJzXHhlZGNcdTAxNmYiKTplZSsibVx1MDExYnNceGVkY2ki''@;'; + put 'put ''O2Nhc2UieSI6cmV0dXJuIFl8fE4/InJvayI6InJva2VtIjtjYXNlInl5IjpyZXR1cm4gWXx8Tj9lZSsoUShsZSk/InJva3kiOiJsZXQiKTplZSsibGV0eSJ9fW1lLmRlZmluZUxvY2FsZSgiY3MiLHttb250aHM6Qixtb250aHNTaG9ydDpFLG1vbnRoc1JlZ2V4OlUsbW9udGhzU2hvcnRSZWdl''@;'; + put 'put ''eDpVLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKGxlZGVufGxlZG5hfFx4ZmFub3JhfFx4ZmFub3J8Ylx1MDE1OWV6ZW58Ylx1MDE1OWV6bmF8ZHViZW58ZHVibmF8a3ZcdTAxMWJ0ZW58a3ZcdTAxMWJ0bmF8XHUwMTBkZXJ2ZW5lY3xcdTAxMGRlcnZlbmNlfFx1MDEwZGVydmVufFx1MDEwZGVydm5h''@;'; + put 'put ''fHNycGVufHNycG5hfHpceGUxXHUwMTU5XHhlZHxcdTAxNTlceGVkamVufFx1MDE1OVx4ZWRqbmF8bGlzdG9wYWR1fGxpc3RvcGFkfHByb3NpbmVjfHByb3NpbmNlKS9pLG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6L14obGVkfFx4ZmFub3xiXHUwMTU5ZXxkdWJ8a3ZcdTAxMWJ8XHUwMTBkdm58''@;'; + put 'put ''XHUwMTBkdmN8c3JwfHpceGUxXHUwMTU5fFx1MDE1OVx4ZWRqfGxpc3xwcm8pL2ksbW9udGhzUGFyc2U6TWUsbG9uZ01vbnRoc1BhcnNlOk1lLHNob3J0TW9udGhzUGFyc2U6TWUsd2Vla2RheXM6Im5lZFx1MDExYmxlX3BvbmRcdTAxMWJsXHhlZF9ceGZhdGVyXHhmZF9zdFx1MDE1OWVkYV9c''@;'; + put 'put ''dTAxMGR0dnJ0ZWtfcFx4ZTF0ZWtfc29ib3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Im5lX3BvX1x4ZmF0X3N0X1x1MDEwZHRfcFx4ZTFfc28iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Im5lX3BvX1x4ZmF0X3N0X1x1MDEwZHRfcFx4ZTFfc28iLnNwbGl0KCJfIiksbG9uZ0RhdGVG''@;'; + put 'put ''b3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQgRC4gTU1NTSBZWVlZIEg6bW0iLGw6IkQuIE0uIFlZWVkifSxjYWxlbmRhcjp7c2FtZURheToiW2RuZXMgdl0gTFQi''@;'; + put 'put ''LG5leHREYXk6Ilt6XHhlZHRyYSB2XSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbdiBuZWRcdTAxMWJsaSB2XSBMVCI7Y2FzZSAxOmNhc2UgMjpyZXR1cm4iW3ZdIGRkZGQgW3ZdIExUIjtjYXNlIDM6cmV0dXJuIlt2ZSBzdFx1MDE1''@;'; + put 'put ''OWVkdSB2XSBMVCI7Y2FzZSA0OnJldHVybiJbdmUgXHUwMTBkdHZydGVrIHZdIExUIjtjYXNlIDU6cmV0dXJuIlt2IHBceGUxdGVrIHZdIExUIjtjYXNlIDY6cmV0dXJuIlt2IHNvYm90dSB2XSBMVCJ9fSxsYXN0RGF5OiJbdlx1MDEwZGVyYSB2XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtz''@;'; + put 'put ''d2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbbWludWxvdSBuZWRcdTAxMWJsaSB2XSBMVCI7Y2FzZSAxOmNhc2UgMjpyZXR1cm4iW21pbnVsXHhlOV0gZGRkZCBbdl0gTFQiO2Nhc2UgMzpyZXR1cm4iW21pbnVsb3Ugc3RcdTAxNTllZHUgdl0gTFQiO2Nhc2UgNDpjYXNlIDU6cmV0''@;'; + put 'put ''dXJuIlttaW51bFx4ZmRdIGRkZGQgW3ZdIExUIjtjYXNlIDY6cmV0dXJuIlttaW51bG91IHNvYm90dSB2XSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ6YSAlcyIscGFzdDoicFx1MDE1OWVkICVzIixzOlosc3M6WixtOlosbW06WixoOlosaGg6WixkOlosZGQ6''@;'; + put 'put ''WixNOlosTU06Wix5OloseXk6Wn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDkwMzY1OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxv''@;'; + put 'put ''Y2FsZSgiY3YiLHttb250aHM6Ilx1MDQzYVx1MDRkMVx1MDQ0MFx1MDQzYlx1MDQzMFx1MDQ0N19cdTA0M2RcdTA0MzBcdTA0NDBcdTA0ZDFcdTA0NDFfXHUwNDNmXHUwNDQzXHUwNDQ4X1x1MDQzMFx1MDQzYVx1MDQzMF9cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNGFiXHUwNGQ3XHUwNDQwXHUw''@;'; + put 'put ''NDQyXHUwNDNjXHUwNDM1X1x1MDQ0M1x1MDQ0Mlx1MDRkMV9cdTA0YWJcdTA0NDNcdTA0NDBcdTA0M2JcdTA0MzBfXHUwNDMwXHUwNDMyXHUwNGQxXHUwNDNkX1x1MDQ0ZVx1MDQzZlx1MDQzMF9cdTA0NDdcdTA0ZjNcdTA0M2FfXHUwNDQwXHUwNDMwXHUwNDQ4XHUwNDQyXHUwNDMwXHUwNDMy''@;'; + put 'put ''Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA0M2FcdTA0ZDFcdTA0NDBfXHUwNDNkXHUwNDMwXHUwNDQwX1x1MDQzZlx1MDQ0M1x1MDQ0OF9cdTA0MzBcdTA0M2FcdTA0MzBfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDRhYlx1MDRkN1x1MDQ0MF9cdTA0NDNcdTA0NDJcdTA0ZDFfXHUwNGFi''@;'; + put 'put ''XHUwNDQzXHUwNDQwX1x1MDQzMFx1MDQzMlx1MDQzZF9cdTA0NGVcdTA0M2ZcdTA0MzBfXHUwNDQ3XHUwNGYzXHUwNDNhX1x1MDQ0MFx1MDQzMFx1MDQ0OCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNDMyXHUwNDRiXHUwNDQwXHUwNDQxXHUwNDMwXHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNh''@;'; + put 'put ''XHUwNDQzXHUwNDNkX1x1MDQ0Mlx1MDQ0M1x1MDQzZFx1MDQ0Mlx1MDQzOFx1MDQzYVx1MDQ0M1x1MDQzZF9cdTA0NGJcdTA0NDJcdTA0M2JcdTA0MzBcdTA0NDBcdTA0MzhcdTA0M2FcdTA0NDNcdTA0M2RfXHUwNDRlXHUwNDNkXHUwNDNhXHUwNDQzXHUwNDNkX1x1MDQzYVx1MDRkN1x1MDRh''@;'; + put 'put ''Ylx1MDQzZFx1MDQzNVx1MDQ0MFx1MDQzZFx1MDQzOFx1MDQzYVx1MDQ0M1x1MDQzZF9cdTA0NGRcdTA0NDBcdTA0M2RcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RfXHUwNDQ4XHUwNGQxXHUwNDNjXHUwNDMwXHUwNDQyXHUwNDNhXHUwNDQzXHUwNDNkIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hv''@;'; + put 'put ''cnQ6Ilx1MDQzMlx1MDQ0Ylx1MDQ0MF9cdTA0NDJcdTA0NDNcdTA0M2RfXHUwNDRiXHUwNDQyXHUwNDNiX1x1MDQ0ZVx1MDQzZF9cdTA0M2FcdTA0ZDdcdTA0YWJfXHUwNDRkXHUwNDQwXHUwNDNkX1x1MDQ0OFx1MDRkMVx1MDQzYyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDMyXHUw''@;'; + put 'put ''NDQwX1x1MDQ0Mlx1MDQzZF9cdTA0NGJcdTA0NDJfXHUwNDRlXHUwNDNkX1x1MDQzYVx1MDRhYl9cdTA0NGRcdTA0NDBfXHUwNDQ4XHUwNDNjIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELU1NLVlZWVkiLExMOiJZWVlZIFtcdTA0''@;'; + put 'put ''YWJcdTA0NDNcdTA0M2JcdTA0NDVcdTA0MzhdIE1NTU0gW1x1MDQ0M1x1MDQzOVx1MDRkMVx1MDQ0NVx1MDRkN1x1MDQzZF0gRFstXHUwNDNjXHUwNGQ3XHUwNDQ4XHUwNGQ3XSIsTExMOiJZWVlZIFtcdTA0YWJcdTA0NDNcdTA0M2JcdTA0NDVcdTA0MzhdIE1NTU0gW1x1MDQ0M1x1MDQzOVx1''@;'; + put 'put ''MDRkMVx1MDQ0NVx1MDRkN1x1MDQzZF0gRFstXHUwNDNjXHUwNGQ3XHUwNDQ4XHUwNGQ3XSwgSEg6bW0iLExMTEw6ImRkZGQsIFlZWVkgW1x1MDRhYlx1MDQ0M1x1MDQzYlx1MDQ0NVx1MDQzOF0gTU1NTSBbXHUwNDQzXHUwNDM5XHUwNGQxXHUwNDQ1XHUwNGQ3XHUwNDNkXSBEWy1cdTA0M2Nc''@;'; + put 'put ''dTA0ZDdcdTA0NDhcdTA0ZDddLCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDFmXHUwNDMwXHUwNDRmXHUwNDNkXSBMVCBbXHUwNDQxXHUwNDM1XHUwNDQ1XHUwNDM1XHUwNDQyXHUwNDQwXHUwNDM1XSIsbmV4dERheToiW1x1MDQyYlx1MDQ0MFx1MDQzMFx1MDQzZF0gTFQgW1x1''@;'; + put 'put ''MDQ0MVx1MDQzNVx1MDQ0NVx1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzNV0iLGxhc3REYXk6IltcdTA0ZDZcdTA0M2RcdTA0MzVcdTA0NDBdIExUIFtcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzVdIixuZXh0V2VlazoiW1x1MDRhYVx1MDQzOFx1MDQ0Mlx1MDQzNVx1''@;'; + put 'put ''MDQ0MV0gZGRkZCBMVCBbXHUwNDQxXHUwNDM1XHUwNDQ1XHUwNDM1XHUwNDQyXHUwNDQwXHUwNDM1XSIsbGFzdFdlZWs6IltcdTA0MThcdTA0NDBcdTA0NDJcdTA0M2RcdTA0ZDddIGRkZGQgTFQgW1x1MDQ0MVx1MDQzNVx1MDQ0NVx1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzNV0iLHNhbWVFbHNl''@;'; + put 'put ''OiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ZnVuY3Rpb24oRSl7cmV0dXJuIEUrKC9cdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDIkL2kuZXhlYyhFKT8iXHUwNDQwXHUwNDM1XHUwNDNkIjovXHUwNGFiXHUwNDQzXHUwNDNiJC9pLmV4ZWMoRSk/Ilx1MDQ0Mlx1MDQzMFx1MDQzZCI6''@;'; + put 'put ''Ilx1MDQ0MFx1MDQzMFx1MDQzZCIpfSxwYXN0OiIlcyBcdTA0M2FcdTA0MzBcdTA0NGZcdTA0M2JcdTA0M2JcdTA0MzAiLHM6Ilx1MDQzZlx1MDRkN1x1MDQ0MC1cdTA0MzhcdTA0M2EgXHUwNGFiXHUwNDM1XHUwNDNhXHUwNDNhXHUwNDQzXHUwNDNkXHUwNDQyIixzczoiJWQgXHUwNGFiXHUw''@;'; + put 'put ''NDM1XHUwNDNhXHUwNDNhXHUwNDQzXHUwNDNkXHUwNDQyIixtOiJcdTA0M2ZcdTA0ZDdcdTA0NDAgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyIixtbToiJWQgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyIixoOiJcdTA0M2ZcdTA0ZDdcdTA0NDAgXHUwNDQxXHUwNDM1XHUw''@;'; + put 'put ''NDQ1XHUwNDM1XHUwNDQyIixoaDoiJWQgXHUwNDQxXHUwNDM1XHUwNDQ1XHUwNDM1XHUwNDQyIixkOiJcdTA0M2ZcdTA0ZDdcdTA0NDAgXHUwNDNhXHUwNDQzXHUwNDNkIixkZDoiJWQgXHUwNDNhXHUwNDQzXHUwNDNkIixNOiJcdTA0M2ZcdTA0ZDdcdTA0NDAgXHUwNDQzXHUwNDM5XHUwNGQx''@;'; + put 'put ''XHUwNDQ1IixNTToiJWQgXHUwNDQzXHUwNDM5XHUwNGQxXHUwNDQ1Iix5OiJcdTA0M2ZcdTA0ZDdcdTA0NDAgXHUwNGFiXHUwNDQzXHUwNDNiIix5eToiJWQgXHUwNGFiXHUwNDQzXHUwNDNiIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS1cdTA0M2NcdTA0ZDdcdTA0NDgvLG9y''@;'; + put 'put ''ZGluYWw6IiVkLVx1MDQzY1x1MDRkN1x1MDQ0OCIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMzIwOTI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJjeSIse21vbnRoczoiSW9uYXdyX0Nod2Vmcm9yX01hd3J0''@;'; + put 'put ''aF9FYnJpbGxfTWFpX01laGVmaW5fR29yZmZlbm5hZl9Bd3N0X01lZGlfSHlkcmVmX1RhY2h3ZWRkX1JoYWdmeXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Iklvbl9DaHdlX01hd19FYnJfTWFpX01laF9Hb3JfQXdzX01lZF9IeWRfVGFjaF9SaGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJE''@;'; + put 'put ''eWRkIFN1bF9EeWRkIExsdW5fRHlkZCBNYXdydGhfRHlkZCBNZXJjaGVyX0R5ZGQgSWF1X0R5ZGQgR3dlbmVyX0R5ZGQgU2Fkd3JuIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN1bF9MbHVuX01hd19NZXJfSWF1X0d3ZV9TYWQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X0xsX01h''@;'; + put 'put ''X01lX0lhX0d3X1NhIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZ''@;'; + put 'put ''WVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIZWRkaXcgYW1dIExUIixuZXh0RGF5OiJbWWZvcnkgYW1dIExUIixuZXh0V2VlazoiZGRkZCBbYW1dIExUIixsYXN0RGF5OiJbRGRvZSBhbV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtkaXdldGhhZiBhbV0gTFQiLHNhbWVFbHNlOiJMIn0s''@;'; + put 'put ''cmVsYXRpdmVUaW1lOntmdXR1cmU6Im1ld24gJXMiLHBhc3Q6IiVzIHluIFx4ZjRsIixzOiJ5Y2h5ZGlnIGVpbGlhZGF1IixzczoiJWQgZWlsaWFkIixtOiJtdW51ZCIsbW06IiVkIG11bnVkIixoOiJhd3IiLGhoOiIlZCBhd3IiLGQ6ImRpd3Jub2QiLGRkOiIlZCBkaXdybm9kIixNOiJtaXMi''@;'; + put 'put ''LE1NOiIlZCBtaXMiLHk6ImJsd3lkZHluIix5eToiJWQgZmx5bmVkZCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZmVkfGFpbnxhZnxpbHx5ZGR8ZWR8ZWcpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBVPSIiO3JldHVybiBFPjIwP1U9NDA9PT1FfHw1MD09PUV8fDYwPT09''@;'; + put 'put ''RXx8ODA9PT1FfHwxMDA9PT1FPyJmZWQiOiJhaW4iOkU+MCYmKFU9WyIiLCJhZiIsImlsIiwieWRkIiwieWRkIiwiZWQiLCJlZCIsImVkIiwiZmVkIiwiZmVkIiwiZmVkIiwiZWciLCJmZWQiLCJlZyIsImVnIiwiZmVkIiwiZWciLCJlZyIsImZlZCIsImVnIiwiZmVkIl1bRV0pLEUrVX0sd2Vl''@;'; + put 'put ''azp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNzczODc6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJkYSIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFydHNfYXByaWxfbWFqX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVt''@;'; + put 'put ''YmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbl9mZWJfbWFyX2Fwcl9tYWpfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzXHhmOG5kYWdfbWFuZGFnX3RpcnNkYWdfb25zZGFnX3RvcnNkYWdf''@;'; + put 'put ''ZnJlZGFnX2xceGY4cmRhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzXHhmOG5fbWFuX3Rpcl9vbnNfdG9yX2ZyZV9sXHhmOHIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InNceGY4X21hX3RpX29uX3RvX2ZyX2xceGY4Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6''@;'; + put 'put ''bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIFtkLl0gRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltpIGRhZyBrbC5dIExUIixuZXh0RGF5OiJb''@;'; + put 'put ''aSBtb3JnZW4ga2wuXSBMVCIsbmV4dFdlZWs6InBceGU1IGRkZGQgW2tsLl0gTFQiLGxhc3REYXk6IltpIGdceGU1ciBrbC5dIExUIixsYXN0V2VlazoiW2ldIGRkZGRbcyBrbC5dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvbSAlcyIscGFzdDoiJXMgc2lkZW4i''@;'; + put 'put ''LHM6ImZceGU1IHNla3VuZGVyIixzczoiJWQgc2VrdW5kZXIiLG06ImV0IG1pbnV0IixtbToiJWQgbWludXR0ZXIiLGg6ImVuIHRpbWUiLGhoOiIlZCB0aW1lciIsZDoiZW4gZGFnIixkZDoiJWQgZGFnZSIsTToiZW4gbVx4ZTVuZWQiLE1NOiIlZCBtXHhlNW5lZGVyIix5OiJldCBceGU1ciIs''@;'; + put 'put ''eXk6IiVkIFx4ZTVyIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDI5NDU5OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoTWUsVSxR''@;'; + put 'put ''LFope3ZhciBpZT17bTpbImVpbmUgTWludXRlIiwiZWluZXIgTWludXRlIl0saDpbImVpbmUgU3R1bmRlIiwiZWluZXIgU3R1bmRlIl0sZDpbImVpbiBUYWciLCJlaW5lbSBUYWciXSxkZDpbTWUrIiBUYWdlIixNZSsiIFRhZ2VuIl0sdzpbImVpbmUgV29jaGUiLCJlaW5lciBXb2NoZSJdLE06''@;'; + put 'put ''WyJlaW4gTW9uYXQiLCJlaW5lbSBNb25hdCJdLE1NOltNZSsiIE1vbmF0ZSIsTWUrIiBNb25hdGVuIl0seTpbImVpbiBKYWhyIiwiZWluZW0gSmFociJdLHl5OltNZSsiIEphaHJlIixNZSsiIEphaHJlbiJdfTtyZXR1cm4gVT9pZVtRXVswXTppZVtRXVsxXX1tZS5kZWZpbmVMb2NhbGUoImRl''@;'; + put 'put ''LWF0Iix7bW9udGhzOiJKXHhlNG5uZXJfRmVicnVhcl9NXHhlNHJ6X0FwcmlsX01haV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKXHhlNG4uX0ZlYi5fTVx4ZTRyel9BcHIuX01haV9KdW5pX0p1''@;'; + put 'put ''bGlfQXVnLl9TZXAuX09rdC5fTm92Ll9EZXouIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6IlNvbm50YWdfTW9udGFnX0RpZW5zdGFnX01pdHR3b2NoX0Rvbm5lcnN0YWdfRnJlaXRhZ19TYW1zdGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlNvLl9Nby5f''@;'; + put 'put ''RGkuX01pLl9Eby5fRnIuX1NhLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU29fTW9fRGlfTWlfRG9fRnJfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBN''@;'; + put 'put ''TU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2hldXRlIHVtXSBMVCBbVWhyXSIsc2FtZUVsc2U6IkwiLG5leHREYXk6Ilttb3JnZW4gdW1dIExUIFtVaHJdIixuZXh0V2VlazoiZGRk''@;'; + put 'put ''ZCBbdW1dIExUIFtVaHJdIixsYXN0RGF5OiJbZ2VzdGVybiB1bV0gTFQgW1Vocl0iLGxhc3RXZWVrOiJbbGV0enRlbl0gZGRkZCBbdW1dIExUIFtVaHJdIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiJ2b3IgJXMiLHM6ImVpbiBwYWFyIFNla3VuZGVuIixzczoiJWQgU2Vr''@;'; + put 'put ''dW5kZW4iLG06QixtbToiJWQgTWludXRlbiIsaDpCLGhoOiIlZCBTdHVuZGVuIixkOkIsZGQ6Qix3OkIsd3c6IiVkIFdvY2hlbiIsTTpCLE1NOkIseTpCLHl5OkJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0o''@;'; + put 'put ''TCgxNTQzOSkpfSw2NzI0MzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKE1lLFUsUSxaKXt2YXIgaWU9e206WyJlaW5lIE1pbnV0ZSIsImVpbmVyIE1pbnV0ZSJdLGg6WyJlaW5lIFN0dW5kZSIsImVpbmVyIFN0dW5kZSJdLGQ6WyJlaW4g''@;'; + put 'put ''VGFnIiwiZWluZW0gVGFnIl0sZGQ6W01lKyIgVGFnZSIsTWUrIiBUYWdlbiJdLHc6WyJlaW5lIFdvY2hlIiwiZWluZXIgV29jaGUiXSxNOlsiZWluIE1vbmF0IiwiZWluZW0gTW9uYXQiXSxNTTpbTWUrIiBNb25hdGUiLE1lKyIgTW9uYXRlbiJdLHk6WyJlaW4gSmFociIsImVpbmVtIEphaHIi''@;'; + put 'put ''XSx5eTpbTWUrIiBKYWhyZSIsTWUrIiBKYWhyZW4iXX07cmV0dXJuIFU/aWVbUV1bMF06aWVbUV1bMV19bWUuZGVmaW5lTG9jYWxlKCJkZS1jaCIse21vbnRoczoiSmFudWFyX0ZlYnJ1YXJfTVx4ZTRyel9BcHJpbF9NYWlfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3Zl''@;'; + put 'put ''bWJlcl9EZXplbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuLl9GZWIuX01ceGU0cnpfQXByLl9NYWlfSnVuaV9KdWxpX0F1Zy5fU2VwLl9Pa3QuX05vdi5fRGV6LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJTb25udGFnX01vbnRhZ19EaWVuc3Rh''@;'; + put 'put ''Z19NaXR0d29jaF9Eb25uZXJzdGFnX0ZyZWl0YWdfU2Ftc3RhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTb19Nb19EaV9NaV9Eb19Gcl9TYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU29fTW9fRGlfTWlfRG9fRnJfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEw''@;'; + put 'put ''LGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2hldXRlIHVtXSBM''@;'; + put 'put ''VCBbVWhyXSIsc2FtZUVsc2U6IkwiLG5leHREYXk6Ilttb3JnZW4gdW1dIExUIFtVaHJdIixuZXh0V2VlazoiZGRkZCBbdW1dIExUIFtVaHJdIixsYXN0RGF5OiJbZ2VzdGVybiB1bV0gTFQgW1Vocl0iLGxhc3RXZWVrOiJbbGV0enRlbl0gZGRkZCBbdW1dIExUIFtVaHJdIn0scmVsYXRpdmVU''@;'; + put 'put ''aW1lOntmdXR1cmU6ImluICVzIixwYXN0OiJ2b3IgJXMiLHM6ImVpbiBwYWFyIFNla3VuZGVuIixzczoiJWQgU2VrdW5kZW4iLG06QixtbToiJWQgTWludXRlbiIsaDpCLGhoOiIlZCBTdHVuZGVuIixkOkIsZGQ6Qix3OkIsd3c6IiVkIFdvY2hlbiIsTTpCLE1NOkIseTpCLHl5OkJ9LGRheU9m''@;'; + put 'put ''TW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw1NDMwNzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKE1lLFUsUSxaKXt2YXIgaWU9e206WyJlaW5l''@;'; + put 'put ''IE1pbnV0ZSIsImVpbmVyIE1pbnV0ZSJdLGg6WyJlaW5lIFN0dW5kZSIsImVpbmVyIFN0dW5kZSJdLGQ6WyJlaW4gVGFnIiwiZWluZW0gVGFnIl0sZGQ6W01lKyIgVGFnZSIsTWUrIiBUYWdlbiJdLHc6WyJlaW5lIFdvY2hlIiwiZWluZXIgV29jaGUiXSxNOlsiZWluIE1vbmF0IiwiZWluZW0g''@;'; + put 'put ''TW9uYXQiXSxNTTpbTWUrIiBNb25hdGUiLE1lKyIgTW9uYXRlbiJdLHk6WyJlaW4gSmFociIsImVpbmVtIEphaHIiXSx5eTpbTWUrIiBKYWhyZSIsTWUrIiBKYWhyZW4iXX07cmV0dXJuIFU/aWVbUV1bMF06aWVbUV1bMV19bWUuZGVmaW5lTG9jYWxlKCJkZSIse21vbnRoczoiSmFudWFyX0Zl''@;'; + put 'put ''YnJ1YXJfTVx4ZTRyel9BcHJpbF9NYWlfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXplbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuLl9GZWIuX01ceGU0cnpfQXByLl9NYWlfSnVuaV9KdWxpX0F1Zy5fU2VwLl9Pa3QuX05vdi5fRGV6LiIu''@;'; + put 'put ''c3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJTb25udGFnX01vbnRhZ19EaWVuc3RhZ19NaXR0d29jaF9Eb25uZXJzdGFnX0ZyZWl0YWdfU2Ftc3RhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTby5fTW8uX0RpLl9NaS5fRG8uX0ZyLl9TYS4iLnNwbGl0KCJf''@;'; + put 'put ''Iiksd2Vla2RheXNNaW46IlNvX01vX0RpX01pX0RvX0ZyX1NhIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBI''@;'; + put 'put ''SDptbSIsTExMTDoiZGRkZCwgRC4gTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltoZXV0ZSB1bV0gTFQgW1Vocl0iLHNhbWVFbHNlOiJMIixuZXh0RGF5OiJbbW9yZ2VuIHVtXSBMVCBbVWhyXSIsbmV4dFdlZWs6ImRkZGQgW3VtXSBMVCBbVWhyXSIsbGFzdERheToiW2dl''@;'; + put 'put ''c3Rlcm4gdW1dIExUIFtVaHJdIixsYXN0V2VlazoiW2xldHp0ZW5dIGRkZGQgW3VtXSBMVCBbVWhyXSJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoidm9yICVzIixzOiJlaW4gcGFhciBTZWt1bmRlbiIsc3M6IiVkIFNla3VuZGVuIixtOkIsbW06IiVkIE1pbnV0ZW4iLGg6''@;'; + put 'put ''QixoaDoiJWQgU3R1bmRlbiIsZDpCLGRkOkIsdzpCLHd3OiIlZCBXb2NoZW4iLE06QixNTTpCLHk6Qix5eTpCfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMzk2NTk6ZnVuY3Rpb24oWGUs''@;'; + put 'put ''SmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9WyJcdTA3OTZcdTA3YWNcdTA3ODJcdTA3YWFcdTA3ODdcdTA3YTZcdTA3ODNcdTA3YTkiLCJcdTA3OGFcdTA3YWNcdTA3ODRcdTA3YjBcdTA3ODNcdTA3YWFcdTA3ODdcdTA3YTZcdTA3ODNcdTA3YTkiLCJcdTA3ODlcdTA3''@;'; + put 'put ''YTdcdTA3ODNcdTA3YThcdTA3OTdcdTA3YWEiLCJcdTA3ODdcdTA3YWRcdTA3OTVcdTA3YjBcdTA3ODNcdTA3YTlcdTA3OGRcdTA3YWEiLCJcdTA3ODlcdTA3YWQiLCJcdTA3OTZcdTA3YWJcdTA3ODJcdTA3YjAiLCJcdTA3OTZcdTA3YWFcdTA3OGRcdTA3YTZcdTA3ODdcdTA3YTgiLCJcdTA3''@;'; + put 'put ''ODdcdTA3YWZcdTA3OGVcdTA3YTZcdTA3OTBcdTA3YjBcdTA3OTNcdTA3YWEiLCJcdTA3OTBcdTA3YWNcdTA3OTVcdTA3YjBcdTA3OTNcdTA3YWNcdTA3ODlcdTA3YjBcdTA3ODRcdTA3YTZcdTA3ODNcdTA3YWEiLCJcdTA3ODdcdTA3YWVcdTA3ODZcdTA3YjBcdTA3OTNcdTA3YWZcdTA3ODRc''@;'; + put 'put ''dTA3YTZcdTA3ODNcdTA3YWEiLCJcdTA3ODJcdTA3YWVcdTA3ODhcdTA3YWNcdTA3ODlcdTA3YjBcdTA3ODRcdTA3YTZcdTA3ODNcdTA3YWEiLCJcdTA3OTFcdTA3YThcdTA3OTBcdTA3YWNcdTA3ODlcdTA3YjBcdTA3ODRcdTA3YTZcdTA3ODNcdTA3YWEiXSxFPVsiXHUwNzg3XHUwN2E3XHUw''@;'; + put 'put ''NzhiXHUwN2E4XHUwNzg3XHUwN2IwXHUwNzhjXHUwN2E2IiwiXHUwNzgwXHUwN2FmXHUwNzg5XHUwN2E2IiwiXHUwNzg3XHUwN2E2XHUwNzgyXHUwN2IwXHUwNzhlXHUwN2E3XHUwNzgzXHUwN2E2IiwiXHUwNzg0XHUwN2FhXHUwNzhiXHUwN2E2IiwiXHUwNzg0XHUwN2FhXHUwNzgzXHUwN2E3''@;'; + put 'put ''XHUwNzkwXHUwN2IwXHUwNzhhXHUwN2E2XHUwNzhjXHUwN2E4IiwiXHUwNzgwXHUwN2FhXHUwNzg2XHUwN2FhXHUwNzgzXHUwN2FhIiwiXHUwNzgwXHUwN2FlXHUwNzgyXHUwN2E4XHUwNzgwXHUwN2E4XHUwNzgzXHUwN2FhIl07bWUuZGVmaW5lTG9jYWxlKCJkdiIse21vbnRoczpCLG1vbnRo''@;'; + put 'put ''c1Nob3J0OkIsd2Vla2RheXM6RSx3ZWVrZGF5c1Nob3J0OkUsd2Vla2RheXNNaW46Ilx1MDc4N1x1MDdhN1x1MDc4Ylx1MDdhOF9cdTA3ODBcdTA3YWZcdTA3ODlcdTA3YTZfXHUwNzg3XHUwN2E2XHUwNzgyXHUwN2IwX1x1MDc4NFx1MDdhYVx1MDc4Ylx1MDdhNl9cdTA3ODRcdTA3YWFcdTA3''@;'; + put 'put ''ODNcdTA3YTdfXHUwNzgwXHUwN2FhXHUwNzg2XHUwN2FhX1x1MDc4MFx1MDdhZVx1MDc4Mlx1MDdhOCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJEL00vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1t''@;'; + put 'put ''IixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwNzg5XHUwNzg2fFx1MDc4OVx1MDc4YS8saXNQTTpmdW5jdGlvbihVKXtyZXR1cm4iXHUwNzg5XHUwNzhhIj09PVV9LG1lcmlkaWVtOmZ1bmN0aW9uKFUsUSxaKXtyZXR1cm4gVTwxMj8iXHUwNzg5XHUw''@;'; + put 'put ''Nzg2IjoiXHUwNzg5XHUwNzhhIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA3ODlcdTA3YThcdTA3ODdcdTA3YTZcdTA3OGJcdTA3YWFdIExUIixuZXh0RGF5OiJbXHUwNzg5XHUwN2E3XHUwNzhiXHUwN2E2XHUwNzg5XHUwN2E3XSBMVCIsbmV4dFdlZWs6ImRkZGQgTFQiLGxhc3REYXk6Iltc''@;'; + put 'put ''dTA3ODdcdTA3YThcdTA3ODdcdTA3YjBcdTA3OTRcdTA3YWNdIExUIixsYXN0V2VlazoiW1x1MDc4YVx1MDdhN1x1MDc4N1x1MDdhOFx1MDc4Y1x1MDdhYVx1MDc4OFx1MDdhOF0gZGRkZCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNzhjXHUwN2FjXHUwNzgz''@;'; + put 'put ''XHUwN2FkXHUwNzhlXHUwN2E2XHUwNzg3XHUwN2E4ICVzIixwYXN0OiJcdTA3ODZcdTA3YWFcdTA3ODNcdTA3YThcdTA3ODJcdTA3YjAgJXMiLHM6Ilx1MDc5MFx1MDdhOFx1MDc4Nlx1MDdhYVx1MDc4Mlx1MDdiMFx1MDc4Y1x1MDdhYVx1MDc4Nlx1MDdhZVx1MDc4NVx1MDdhY1x1MDc4N1x1''@;'; + put 'put ''MDdiMCIsc3M6ImQlIFx1MDc5MFx1MDdhOFx1MDc4Nlx1MDdhYVx1MDc4Mlx1MDdiMFx1MDc4Y1x1MDdhYSIsbToiXHUwNzg5XHUwN2E4XHUwNzgyXHUwN2E4XHUwNzkzXHUwN2FjXHUwNzg3XHUwN2IwIixtbToiXHUwNzg5XHUwN2E4XHUwNzgyXHUwN2E4XHUwNzkzXHUwN2FhICVkIixoOiJc''@;'; + put 'put ''dTA3OGVcdTA3YTZcdTA3OTFcdTA3YThcdTA3ODdcdTA3YThcdTA3ODNcdTA3YWNcdTA3ODdcdTA3YjAiLGhoOiJcdTA3OGVcdTA3YTZcdTA3OTFcdTA3YThcdTA3ODdcdTA3YThcdTA3ODNcdTA3YWEgJWQiLGQ6Ilx1MDc4Ylx1MDdhYVx1MDc4OFx1MDdhNlx1MDc4MFx1MDdhY1x1MDc4N1x1''@;'; + put 'put ''MDdiMCIsZGQ6Ilx1MDc4Ylx1MDdhYVx1MDc4OFx1MDdhNlx1MDc5MFx1MDdiMCAlZCIsTToiXHUwNzg5XHUwN2E2XHUwNzgwXHUwN2FjXHUwNzg3XHUwN2IwIixNTToiXHUwNzg5XHUwN2E2XHUwNzkwXHUwN2IwICVkIix5OiJcdTA3ODdcdTA3YTZcdTA3ODBcdTA3YTZcdTA3ODNcdTA3YWNc''@;'; + put 'put ''dTA3ODdcdTA3YjAiLHl5OiJcdTA3ODdcdTA3YTZcdTA3ODBcdTA3YTZcdTA3ODNcdTA3YWEgJWQifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoLywvZywiXHUwNjBj''@;'; + put 'put ''Iil9LHdlZWs6e2Rvdzo3LGRveToxMn19KX0oTCgxNTQzOSkpfSwzNDYwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZWwiLHttb250aHNOb21pbmF0aXZlRWw6Ilx1MDM5OVx1MDNiMVx1MDNiZFx1MDNiZlx1MDNjNVx1MDNh''@;'; + put 'put ''Y1x1MDNjMVx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzYTZcdTAzYjVcdTAzYjJcdTAzYzFcdTAzYmZcdTAzYzVcdTAzYWNcdTAzYzFcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzljXHUwM2FjXHUwM2MxXHUwM2M0XHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5MVx1MDNjMFx1MDNjMVx1MDNhZlx1MDNi''@;'; + put 'put ''Ylx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOWNcdTAzYWNcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzk5XHUwM2JmXHUwM2NkXHUwM2JkXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5OVx1MDNiZlx1MDNjZFx1MDNiYlx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOTFcdTAzY2RcdTAzYjNcdTAzYmZcdTAz''@;'; + put 'put ''YzVcdTAzYzNcdTAzYzRcdTAzYmZcdTAzYzJfXHUwM2EzXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2FkXHUwM2JjXHUwM2IyXHUwM2MxXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5Zlx1MDNiYVx1MDNjNFx1MDNjZVx1MDNiMlx1MDNjMVx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOWRcdTAzYmZcdTAz''@;'; + put 'put ''YWRcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzk0XHUwM2I1XHUwM2JhXHUwM2FkXHUwM2JjXHUwM2IyXHUwM2MxXHUwM2I5XHUwM2JmXHUwM2MyIi5zcGxpdCgiXyIpLG1vbnRoc0dlbml0aXZlRWw6Ilx1MDM5OVx1MDNiMVx1MDNiZFx1MDNiZlx1MDNjNVx1MDNi''@;'; + put 'put ''MVx1MDNjMVx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzYTZcdTAzYjVcdTAzYjJcdTAzYzFcdTAzYmZcdTAzYzVcdTAzYjFcdTAzYzFcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzljXHUwM2IxXHUwM2MxXHUwM2M0XHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5MVx1MDNjMFx1MDNjMVx1MDNiOVx1MDNi''@;'; + put 'put ''Ylx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzOWNcdTAzYjFcdTAzOTBcdTAzYmZcdTAzYzVfXHUwMzk5XHUwM2JmXHUwM2M1XHUwM2JkXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5OVx1MDNiZlx1MDNjNVx1MDNiYlx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzOTFcdTAzYzVcdTAzYjNcdTAzYmZcdTAz''@;'; + put 'put ''Y2RcdTAzYzNcdTAzYzRcdTAzYmZcdTAzYzVfXHUwM2EzXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2I1XHUwM2JjXHUwM2IyXHUwM2MxXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5Zlx1MDNiYVx1MDNjNFx1MDNjOVx1MDNiMlx1MDNjMVx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzOWRcdTAzYmZcdTAz''@;'; + put 'put ''YjVcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzk0XHUwM2I1XHUwM2JhXHUwM2I1XHUwM2JjXHUwM2IyXHUwM2MxXHUwM2FmXHUwM2JmXHUwM2M1Ii5zcGxpdCgiXyIpLG1vbnRoczpmdW5jdGlvbihNZSxVKXtyZXR1cm4gTWU/InN0cmluZyI9PXR5cGVvZiBVJiYv''@;'; + put 'put ''RC8udGVzdChVLnN1YnN0cmluZygwLFUuaW5kZXhPZigiTU1NTSIpKSk/dGhpcy5fbW9udGhzR2VuaXRpdmVFbFtNZS5tb250aCgpXTp0aGlzLl9tb250aHNOb21pbmF0aXZlRWxbTWUubW9udGgoKV06dGhpcy5fbW9udGhzTm9taW5hdGl2ZUVsfSxtb250aHNTaG9ydDoiXHUwMzk5XHUwM2Ix''@;'; + put 'put ''XHUwM2JkX1x1MDNhNlx1MDNiNVx1MDNiMl9cdTAzOWNcdTAzYjFcdTAzYzFfXHUwMzkxXHUwM2MwXHUwM2MxX1x1MDM5Y1x1MDNiMVx1MDNjYV9cdTAzOTlcdTAzYmZcdTAzYzVcdTAzYmRfXHUwMzk5XHUwM2JmXHUwM2M1XHUwM2JiX1x1MDM5MVx1MDNjNVx1MDNiM19cdTAzYTNcdTAzYjVc''@;'; + put 'put ''dTAzYzBfXHUwMzlmXHUwM2JhXHUwM2M0X1x1MDM5ZFx1MDNiZlx1MDNiNV9cdTAzOTRcdTAzYjVcdTAzYmEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDM5YVx1MDNjNVx1MDNjMVx1MDNiOVx1MDNiMVx1MDNiYVx1MDNhZV9cdTAzOTRcdTAzYjVcdTAzYzVcdTAzYzRcdTAzYWRcdTAzYzFc''@;'; + put 'put ''dTAzYjFfXHUwM2E0XHUwM2MxXHUwM2FmXHUwM2M0XHUwM2I3X1x1MDNhNFx1MDNiNVx1MDNjNFx1MDNhY1x1MDNjMVx1MDNjNFx1MDNiN19cdTAzYTBcdTAzYWRcdTAzYmNcdTAzYzBcdTAzYzRcdTAzYjdfXHUwM2EwXHUwM2IxXHUwM2MxXHUwM2IxXHUwM2MzXHUwM2JhXHUwM2I1XHUwM2M1''@;'; + put 'put ''XHUwM2FlX1x1MDNhM1x1MDNhY1x1MDNiMlx1MDNiMlx1MDNiMVx1MDNjNFx1MDNiZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTAzOWFcdTAzYzVcdTAzYzFfXHUwMzk0XHUwM2I1XHUwM2M1X1x1MDNhNFx1MDNjMVx1MDNiOV9cdTAzYTRcdTAzYjVcdTAzYzRfXHUwM2EwXHUwM2I1''@;'; + put 'put ''XHUwM2JjX1x1MDNhMFx1MDNiMVx1MDNjMV9cdTAzYTNcdTAzYjFcdTAzYjIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDM5YVx1MDNjNV9cdTAzOTRcdTAzYjVfXHUwM2E0XHUwM2MxX1x1MDNhNFx1MDNiNV9cdTAzYTBcdTAzYjVfXHUwM2EwXHUwM2IxX1x1MDNhM1x1MDNiMSIuc3Bs''@;'; + put 'put ''aXQoIl8iKSxtZXJpZGllbTpmdW5jdGlvbihNZSxVLFEpe3JldHVybiBNZT4xMT9RPyJcdTAzYmNcdTAzYmMiOiJcdTAzOWNcdTAzOWMiOlE/Ilx1MDNjMFx1MDNiYyI6Ilx1MDNhMFx1MDM5YyJ9LGlzUE06ZnVuY3Rpb24oTWUpe3JldHVybiJcdTAzYmMiPT09KE1lKyIiKS50b0xvd2VyQ2Fz''@;'; + put 'put ''ZSgpWzBdfSxtZXJpZGllbVBhcnNlOi9bXHUwM2EwXHUwMzljXVwuP1x1MDM5Yz9cLj8vaSxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQs''@;'; + put 'put ''IEQgTU1NTSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyRWw6e3NhbWVEYXk6IltcdTAzYTNcdTAzYWVcdTAzYmNcdTAzYjVcdTAzYzFcdTAzYjEge31dIExUIixuZXh0RGF5OiJbXHUwMzkxXHUwM2NkXHUwM2MxXHUwM2I5XHUwM2JmIHt9XSBMVCIsbmV4dFdlZWs6ImRkZGQgW3t9XSBMVCIsbGFz''@;'; + put 'put ''dERheToiW1x1MDNhN1x1MDNiOFx1MDNiNVx1MDNjMiB7fV0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDY9PT10aGlzLmRheSgpPyJbXHUwM2M0XHUwM2JmIFx1MDNjMFx1MDNjMVx1MDNiZlx1MDNiN1x1MDNiM1x1MDNiZlx1MDNjZFx1MDNiY1x1MDNiNVx1MDNiZFx1MDNiZl0g''@;'; + put 'put ''ZGRkZCBbe31dIExUIjoiW1x1MDNjNFx1MDNiN1x1MDNiZCBcdTAzYzBcdTAzYzFcdTAzYmZcdTAzYjdcdTAzYjNcdTAzYmZcdTAzY2RcdTAzYmNcdTAzYjVcdTAzYmRcdTAzYjddIGRkZGQgW3t9XSBMVCJ9LHNhbWVFbHNlOiJMIn0sY2FsZW5kYXI6ZnVuY3Rpb24oTWUsVSl7dmFyIFE9dGhp''@;'; + put 'put ''cy5fY2FsZW5kYXJFbFtNZV0sWj1VJiZVLmhvdXJzKCk7cmV0dXJuIGZ1bmN0aW9uIEIoTWUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgRnVuY3Rpb24mJk1lIGluc3RhbmNlb2YgRnVuY3Rpb258fCJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh''@;'; + put 'put ''bGwoTWUpfShRKSYmKFE9US5hcHBseShVKSksUS5yZXBsYWNlKCJ7fSIsWiUxMj09MT8iXHUwM2MzXHUwM2M0XHUwM2I3IjoiXHUwM2MzXHUwM2M0XHUwM2I5XHUwM2MyIil9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTAzYzNcdTAzYjUgJXMiLHBhc3Q6IiVzIFx1MDNjMFx1MDNjMVx1MDNi''@;'; + put 'put ''OVx1MDNiZCIsczoiXHUwM2JiXHUwM2FmXHUwM2IzXHUwM2IxIFx1MDNiNFx1MDNiNVx1MDNjNVx1MDNjNFx1MDNiNVx1MDNjMVx1MDNjY1x1MDNiYlx1MDNiNVx1MDNjMFx1MDNjNFx1MDNiMSIsc3M6IiVkIFx1MDNiNFx1MDNiNVx1MDNjNVx1MDNjNFx1MDNiNVx1MDNjMVx1MDNjY1x1MDNi''@;'; + put 'put ''Ylx1MDNiNVx1MDNjMFx1MDNjNFx1MDNiMSIsbToiXHUwM2FkXHUwM2JkXHUwM2IxIFx1MDNiYlx1MDNiNVx1MDNjMFx1MDNjNFx1MDNjYyIsbW06IiVkIFx1MDNiYlx1MDNiNVx1MDNjMFx1MDNjNFx1MDNhYyIsaDoiXHUwM2JjXHUwM2FmXHUwM2IxIFx1MDNjZVx1MDNjMVx1MDNiMSIsaGg6''@;'; + put 'put ''IiVkIFx1MDNjZVx1MDNjMVx1MDNiNVx1MDNjMiIsZDoiXHUwM2JjXHUwM2FmXHUwM2IxIFx1MDNiY1x1MDNhZFx1MDNjMVx1MDNiMSIsZGQ6IiVkIFx1MDNiY1x1MDNhZFx1MDNjMVx1MDNiNVx1MDNjMiIsTToiXHUwM2FkXHUwM2JkXHUwM2IxXHUwM2MyIFx1MDNiY1x1MDNhZVx1MDNiZFx1''@;'; + put 'put ''MDNiMVx1MDNjMiIsTU06IiVkIFx1MDNiY1x1MDNhZVx1MDNiZFx1MDNiNVx1MDNjMiIseToiXHUwM2FkXHUwM2JkXHUwM2IxXHUwM2MyIFx1MDNjN1x1MDNjMVx1MDNjY1x1MDNiZFx1MDNiZlx1MDNjMiIseXk6IiVkIFx1MDNjN1x1MDNjMVx1MDNjY1x1MDNiZFx1MDNiOVx1MDNiMSJ9LGRh''@;'; + put 'put ''eU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cdTAzYjcvLG9yZGluYWw6IiVkXHUwM2I3Iix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw5NDM2OTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImVuLWF1Iix7''@;'; + put 'put ''bW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0Rl''@;'; + put 'put ''YyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9N''@;'; + put 'put ''b19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQSJ9LGNh''@;'; + put 'put ''bGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVU''@;'; + put 'put ''aW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixNOiJhIG1vbnRoIixNTToiJWQg''@;'; + put 'put ''bW9udGhzIix5OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBNZT1FJTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/InRoIjoxPT09TWU/InN0IjoyPT09TWU/Im5k''@;'; + put 'put ''IjozPT09TWU/InJkIjoidGgiKX0sd2Vlazp7ZG93OjAsZG95OjR9fSl9KEwoMTU0MzkpKX0sNjA1MzA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJlbi1jYSIse21vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJp''@;'; + put 'put ''bF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6IlN1bmRheV9Nb25k''@;'; + put 'put ''YXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU3VfTW9fVHVfV2VfVGhfRnJfU2EiLnNwbGl0KCJfIiksbG9uZ0Rh''@;'; + put 'put ''dGVGb3JtYXQ6e0xUOiJoOm1tIEEiLExUUzoiaDptbTpzcyBBIixMOiJZWVlZLU1NLUREIixMTDoiTU1NTSBELCBZWVlZIixMTEw6Ik1NTU0gRCwgWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIs''@;'; + put 'put ''bmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdv''@;'; + put 'put ''IixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMi''@;'; + put 'put ''fSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgTWU9RSUxMDtyZXR1cm4gRSsoMT09fn4oRSUxMDAvMTApPyJ0aCI6MT09PU1lPyJzdCI6Mj09PU1lPyJuZCI6Mz09PU1lPyJyZCI6InRoIil9fSl9KEwoMTU0Mzkp''@;'; + put 'put ''KX0sOTk5ODpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImVuLWdiIix7bW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0Rl''@;'; + put 'put ''Y2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0''@;'; + put 'put ''KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixM''@;'; + put 'put ''TDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUb2RheSBhdF0gTFQiLG5leHREYXk6IltUb21vcnJvdyBhdF0gTFQiLG5leHRXZWVrOiJkZGRkIFthdF0gTFQiLGxhc3REYXk6''@;'; + put 'put ''IltZZXN0ZXJkYXkgYXRdIExUIixsYXN0V2VlazoiW0xhc3RdIGRkZGQgW2F0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6IiVzIGFnbyIsczoiYSBmZXcgc2Vjb25kcyIsc3M6IiVkIHNlY29uZHMiLG06ImEgbWludXRlIixtbToiJWQgbWlu''@;'; + put 'put ''dXRlcyIsaDoiYW4gaG91ciIsaGg6IiVkIGhvdXJzIixkOiJhIGRheSIsZGQ6IiVkIGRheXMiLE06ImEgbW9udGgiLE1NOiIlZCBtb250aHMiLHk6ImEgeWVhciIseXk6IiVkIHllYXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdHxuZHxyZHx0aCkvLG9yZGluYWw6ZnVu''@;'; + put 'put ''Y3Rpb24oRSl7dmFyIE1lPUUlMTA7cmV0dXJuIEUrKDE9PX5+KEUlMTAwLzEwKT8idGgiOjE9PT1NZT8ic3QiOjI9PT1NZT8ibmQiOjM9PT1NZT8icmQiOiJ0aCIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwxMzM5MTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUp''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImVuLWllIix7bW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmVi''@;'; + put 'put ''X01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1Ro''@;'; + put 'put ''dV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0i''@;'; + put 'put ''LExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRk''@;'; + put 'put ''ZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5''@;'; + put 'put ''IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgTWU9RSUxMDtyZXR1cm4gRSsoMT09fn4oRSUx''@;'; + put 'put ''MDAvMTApPyJ0aCI6MT09PU1lPyJzdCI6Mj09PU1lPyJuZCI6Mz09PU1lPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDc1NDE0OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZW4taWwiLHtt''@;'; + put 'put ''b250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVj''@;'; + put 'put ''Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01v''@;'; + put 'put ''X1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRh''@;'; + put 'put ''cjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7''@;'; + put 'put ''ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRo''@;'; + put 'put ''cyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgTWU9RSUxMDtyZXR1cm4gRSsoMT09fn4oRSUxMDAvMTApPyJ0aCI6MT09PU1lPyJzdCI6Mj09PU1lPyJuZCI6Mz09''@;'; + put 'put ''PU1lPyJyZCI6InRoIil9fSl9KEwoMTU0MzkpKX0sMTk2MTU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJlbi1pbiIse21vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9T''@;'; + put 'put ''ZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6IlN1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1''@;'; + put 'put ''cnNkYXlfRnJpZGF5X1NhdHVyZGF5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU3VfTW9fVHVfV2VfVGhfRnJfU2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJoOm1tIEEiLExU''@;'; + put 'put ''UzoiaDptbTpzcyBBIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgaDptbSBBIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIs''@;'; + put 'put ''bmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQg''@;'; + put 'put ''c2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9c''@;'; + put 'put ''ZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgTWU9RSUxMDtyZXR1cm4gRSsoMT09fn4oRSUxMDAvMTApPyJ0aCI6MT09PU1lPyJzdCI6Mj09PU1lPyJuZCI6Mz09PU1lPyJyZCI6InRoIil9LHdlZWs6e2RvdzowLGRveTo2fX0pfShMKDE1NDM5KSl9LDIxMjQ4''@;'; + put 'put ''OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZW4tbnoiLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIi''@;'; + put 'put ''LnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3''@;'; + put 'put ''ZWVrZGF5c1Nob3J0OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiaDptbSBBIixMVFM6Img6bW06c3MgQSIsTDoiREQvTU0vWVlZWSIsTEw6IkQg''@;'; + put 'put ''TU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUb2RheSBhdF0gTFQiLG5leHREYXk6IltUb21vcnJvdyBhdF0gTFQiLG5leHRXZWVrOiJkZGRkIFthdF0gTFQiLGxhc3REYXk6IltZ''@;'; + put 'put ''ZXN0ZXJkYXkgYXRdIExUIixsYXN0V2VlazoiW0xhc3RdIGRkZGQgW2F0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6IiVzIGFnbyIsczoiYSBmZXcgc2Vjb25kcyIsc3M6IiVkIHNlY29uZHMiLG06ImEgbWludXRlIixtbToiJWQgbWludXRl''@;'; + put 'put ''cyIsaDoiYW4gaG91ciIsaGg6IiVkIGhvdXJzIixkOiJhIGRheSIsZGQ6IiVkIGRheXMiLE06ImEgbW9udGgiLE1NOiIlZCBtb250aHMiLHk6ImEgeWVhciIseXk6IiVkIHllYXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdHxuZHxyZHx0aCkvLG9yZGluYWw6ZnVuY3Rp''@;'; + put 'put ''b24oRSl7dmFyIE1lPUUlMTA7cmV0dXJuIEUrKDE9PX5+KEUlMTAwLzEwKT8idGgiOjE9PT1NZT8ic3QiOjI9PT1NZT8ibmQiOjM9PT1NZT8icmQiOiJ0aCIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwxMzc2NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1''@;'; + put 'put ''c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImVuLXNnIix7bW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01h''@;'; + put 'put ''cl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9G''@;'; + put 'put ''cmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExM''@;'; + put 'put ''TEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUb2RheSBhdF0gTFQiLG5leHREYXk6IltUb21vcnJvdyBhdF0gTFQiLG5leHRXZWVrOiJkZGRkIFthdF0gTFQiLGxhc3REYXk6IltZZXN0ZXJkYXkgYXRdIExUIixsYXN0V2VlazoiW0xhc3RdIGRkZGQg''@;'; + put 'put ''W2F0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6IiVzIGFnbyIsczoiYSBmZXcgc2Vjb25kcyIsc3M6IiVkIHNlY29uZHMiLG06ImEgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoiYW4gaG91ciIsaGg6IiVkIGhvdXJzIixkOiJhIGRheSIs''@;'; + put 'put ''ZGQ6IiVkIGRheXMiLE06ImEgbW9udGgiLE1NOiIlZCBtb250aHMiLHk6ImEgeWVhciIseXk6IiVkIHllYXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdHxuZHxyZHx0aCkvLG9yZGluYWw6ZnVuY3Rpb24oRSl7dmFyIE1lPUUlMTA7cmV0dXJuIEUrKDE9PX5+KEUlMTAw''@;'; + put 'put ''LzEwKT8idGgiOjE9PT1NZT8ic3QiOjI9PT1NZT8ibmQiOjM9PT1NZT8icmQiOiJ0aCIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw4NDUzMDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImVvIix7bW9udGhz''@;'; + put 'put ''OiJqYW51YXJvX2ZlYnJ1YXJvX21hcnRvX2Fwcmlsb19tYWpvX2p1bmlvX2p1bGlvX2FcdTAxNmRndXN0b19zZXB0ZW1icm9fb2t0b2Jyb19ub3ZlbWJyb19kZWNlbWJybyIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuX2ZlYl9tYXJ0X2Fwcl9tYWpfanVuX2p1bF9hXHUwMTZkZ19zZXB0''@;'; + put 'put ''X29rdF9ub3ZfZGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJkaW1hblx1MDEwOW9fbHVuZG9fbWFyZG9fbWVya3JlZG9fXHUwMTM1YVx1MDE2ZGRvX3ZlbmRyZWRvX3NhYmF0byIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkaW1fbHVuX21hcmRfbWVya19cdTAxMzVhXHUwMTZkX3Zlbl9z''@;'; + put 'put ''YWIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRpX2x1X21hX21lX1x1MDEzNWFfdmVfc2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS1NTS1ERCIsTEw6IltsYV0gRFstYW4gZGVdIE1NTU0sIFlZWVkiLExMTDoiW2xhXSBE''@;'; + put 'put ''Wy1hbiBkZV0gTU1NTSwgWVlZWSBISDptbSIsTExMTDoiZGRkZFtuXSwgW2xhXSBEWy1hbiBkZV0gTU1NTSwgWVlZWSBISDptbSIsbGxsbDoiZGRkLCBbbGFdIERbLWFuIGRlXSBNTU0sIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9bYXBdXC50XC5tL2ksaXNQTTpmdW5jdGlvbihFKXty''@;'; + put 'put ''ZXR1cm4icCI9PT1FLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFPjExP1U/InAudC5tLiI6IlAuVC5NLiI6VT8iYS50Lm0uIjoiQS5ULk0uIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIb2RpYVx1MDE2ZCBqZV0gTFQiLG5leHREYXk6''@;'; + put 'put ''IltNb3JnYVx1MDE2ZCBqZV0gTFQiLG5leHRXZWVrOiJkZGRkW24gamVdIExUIixsYXN0RGF5OiJbSGllcmFcdTAxNmQgamVdIExUIixsYXN0V2VlazoiW3Bhc2ludGFuXSBkZGRkW24gamVdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJwb3N0ICVzIixwYXN0OiJh''@;'; + put 'put ''bnRhXHUwMTZkICVzIixzOiJrZWxrYWogc2VrdW5kb2oiLHNzOiIlZCBzZWt1bmRvaiIsbToidW51IG1pbnV0byIsbW06IiVkIG1pbnV0b2oiLGg6InVudSBob3JvIixoaDoiJWQgaG9yb2oiLGQ6InVudSB0YWdvIixkZDoiJWQgdGFnb2oiLE06InVudSBtb25hdG8iLE1NOiIlZCBtb25hdG9q''@;'; + put 'put ''Iix5OiJ1bnUgamFybyIseXk6IiVkIGphcm9qIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfWEvLG9yZGluYWw6IiVkYSIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMTg5NDQ6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFy''@;'; + put 'put ''IEI9ImVuZS5fZmViLl9tYXIuX2Fici5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuIi5zcGxpdCgiXyIpLEU9ImVuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljIi5zcGxpdCgiXyIpLE1lPVsvXmVuZS9pLC9eZmViL2ksL15tYXIv''@;'; + put 'put ''aSwvXmFici9pLC9ebWF5L2ksL15qdW4vaSwvXmp1bC9pLC9eYWdvL2ksL15zZXAvaSwvXm9jdC9pLC9ebm92L2ksL15kaWMvaV0sVT0vXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVt''@;'; + put 'put ''YnJlfGVuZVwuP3xmZWJcLj98bWFyXC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pO21lLmRlZmluZUxvY2FsZSgiZXMtZG8iLHttb250aHM6ImVuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxp''@;'; + put 'put ''b19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oWixpZSl7cmV0dXJuIFo/Ly1NTU0tLy50ZXN0KGllKT9FW1oubW9udGgoKV06QltaLm1vbnRoKCldOkJ9LG1vbnRoc1JlZ2V4OlUsbW9udGhzU2hv''@;'; + put 'put ''cnRSZWdleDpVLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmUpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihlbmVcLj98ZmViXC4/fG1h''@;'; + put 'put ''clwuP3xhYnJcLj98bWF5XC4/fGp1blwuP3xqdWxcLj98YWdvXC4/fHNlcFwuP3xvY3RcLj98bm92XC4/fGRpY1wuPykvaSxtb250aHNQYXJzZTpNZSxsb25nTW9udGhzUGFyc2U6TWUsc2hvcnRNb250aHNQYXJzZTpNZSx3ZWVrZGF5czoiZG9taW5nb19sdW5lc19tYXJ0ZXNfbWlceGU5cmNv''@;'; + put 'put ''bGVzX2p1ZXZlc192aWVybmVzX3NceGUxYmFkbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkb20uX2x1bi5fbWFyLl9taVx4ZTkuX2p1ZS5fdmllLl9zXHhlMWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9taV9qdV92aV9zXHhlMSIuc3BsaXQoIl8iKSx3ZWVrZGF5''@;'; + put 'put ''c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJoOm1tIEEiLExUUzoiaDptbTpzcyBBIixMOiJERC9NTS9ZWVlZIixMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIixMTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgW2RlXSBNTU1NIFtkZV0g''@;'; + put 'put ''WVlZWSBoOm1tIEEifSxjYWxlbmRhcjp7c2FtZURheTpmdW5jdGlvbigpe3JldHVybiJbaG95IGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxuZXh0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIlttYVx4ZjFhbmEgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsi''@;'; + put 'put ''XSBMVCJ9LG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuImRkZGQgW2EgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxsYXN0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltheWVyIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxsYXN0V2VlazpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiJbZWxdIGRkZGQgW3Bhc2FkbyBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZW4gJXMiLHBhc3Q6ImhhY2UgJXMiLHM6InVub3Mgc2VndW5kb3MiLHNzOiIlZCBzZWd1bmRvcyIs''@;'; + put 'put ''bToidW4gbWludXRvIixtbToiJWQgbWludXRvcyIsaDoidW5hIGhvcmEiLGhoOiIlZCBob3JhcyIsZDoidW4gZFx4ZWRhIixkZDoiJWQgZFx4ZWRhcyIsdzoidW5hIHNlbWFuYSIsd3c6IiVkIHNlbWFuYXMiLE06InVuIG1lcyIsTU06IiVkIG1lc2VzIix5OiJ1biBhXHhmMW8iLHl5OiIlZCBh''@;'; + put 'put ''XHhmMW9zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMjkxMTY6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ImVuZS5fZmViLl9t''@;'; + put 'put ''YXIuX2Fici5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuIi5zcGxpdCgiXyIpLEU9ImVuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljIi5zcGxpdCgiXyIpLE1lPVsvXmVuZS9pLC9eZmViL2ksL15tYXIvaSwvXmFici9pLC9ebWF5''@;'; + put 'put ''L2ksL15qdW4vaSwvXmp1bC9pLC9eYWdvL2ksL15zZXAvaSwvXm9jdC9pLC9ebm92L2ksL15kaWMvaV0sVT0vXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlfGVuZVwuP3xmZWJc''@;'; + put 'put ''Lj98bWFyXC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pO21lLmRlZmluZUxvY2FsZSgiZXMtbXgiLHttb250aHM6ImVuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGll''@;'; + put 'put ''bWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oWixpZSl7cmV0dXJuIFo/Ly1NTU0tLy50ZXN0KGllKT9FW1oubW9udGgoKV06QltaLm1vbnRoKCldOkJ9LG1vbnRoc1JlZ2V4OlUsbW9udGhzU2hvcnRSZWdleDpVLG1vbnRo''@;'; + put 'put ''c1N0cmljdFJlZ2V4Oi9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmUpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihlbmVcLj98ZmViXC4/fG1hclwuP3xhYnJcLj98bWF5''@;'; + put 'put ''XC4/fGp1blwuP3xqdWxcLj98YWdvXC4/fHNlcFwuP3xvY3RcLj98bm92XC4/fGRpY1wuPykvaSxtb250aHNQYXJzZTpNZSxsb25nTW9udGhzUGFyc2U6TWUsc2hvcnRNb250aHNQYXJzZTpNZSx3ZWVrZGF5czoiZG9taW5nb19sdW5lc19tYXJ0ZXNfbWlceGU5cmNvbGVzX2p1ZXZlc192aWVy''@;'; + put 'put ''bmVzX3NceGUxYmFkbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkb20uX2x1bi5fbWFyLl9taVx4ZTkuX2p1ZS5fdmllLl9zXHhlMWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9taV9qdV92aV9zXHhlMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAs''@;'; + put 'put ''bG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6''@;'; + put 'put ''e3NhbWVEYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2hveSBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dERheTpmdW5jdGlvbigpe3JldHVybiJbbWFceGYxYW5hIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxuZXh0V2VlazpmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiJkZGRkIFthIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbGFzdERheTpmdW5jdGlvbigpe3JldHVybiJbYXllciBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iW2VsXSBkZGRk''@;'; + put 'put ''IFtwYXNhZG8gYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImVuICVzIixwYXN0OiJoYWNlICVzIixzOiJ1bm9zIHNlZ3VuZG9zIixzczoiJWQgc2VndW5kb3MiLG06InVuIG1pbnV0byIsbW06IiVkIG1p''@;'; + put 'put ''bnV0b3MiLGg6InVuYSBob3JhIixoaDoiJWQgaG9yYXMiLGQ6InVuIGRceGVkYSIsZGQ6IiVkIGRceGVkYXMiLHc6InVuYSBzZW1hbmEiLHd3OiIlZCBzZW1hbmFzIixNOiJ1biBtZXMiLE1NOiIlZCBtZXNlcyIseToidW4gYVx4ZjFvIix5eToiJWQgYVx4ZjFvcyJ9LGRheU9mTW9udGhPcmRp''@;'; + put 'put ''bmFsUGFyc2U6L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLHdlZWs6e2RvdzowLGRveTo0fSxpbnZhbGlkRGF0ZToiRmVjaGEgaW52XHhlMWxpZGEifSl9KEwoMTU0MzkpKX0sODM2MDk6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ImVu''@;'; + put 'put ''ZS5fZmViLl9tYXIuX2Fici5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuIi5zcGxpdCgiXyIpLEU9ImVuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljIi5zcGxpdCgiXyIpLE1lPVsvXmVuZS9pLC9eZmViL2ksL15tYXIvaSwvXmFi''@;'; + put 'put ''ci9pLC9ebWF5L2ksL15qdW4vaSwvXmp1bC9pLC9eYWdvL2ksL15zZXAvaSwvXm9jdC9pLC9ebm92L2ksL15kaWMvaV0sVT0vXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlfGVu''@;'; + put 'put ''ZVwuP3xmZWJcLj98bWFyXC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pO21lLmRlZmluZUxvY2FsZSgiZXMtdXMiLHttb250aHM6ImVuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29z''@;'; + put 'put ''dG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oWixpZSl7cmV0dXJuIFo/Ly1NTU0tLy50ZXN0KGllKT9FW1oubW9udGgoKV06QltaLm1vbnRoKCldOkJ9LG1vbnRoc1JlZ2V4OlUsbW9udGhzU2hvcnRSZWdl''@;'; + put 'put ''eDpVLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmUpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihlbmVcLj98ZmViXC4/fG1hclwuP3xh''@;'; + put 'put ''YnJcLj98bWF5XC4/fGp1blwuP3xqdWxcLj98YWdvXC4/fHNlcFwuP3xvY3RcLj98bm92XC4/fGRpY1wuPykvaSxtb250aHNQYXJzZTpNZSxsb25nTW9udGhzUGFyc2U6TWUsc2hvcnRNb250aHNQYXJzZTpNZSx3ZWVrZGF5czoiZG9taW5nb19sdW5lc19tYXJ0ZXNfbWlceGU5cmNvbGVzX2p1''@;'; + put 'put ''ZXZlc192aWVybmVzX3NceGUxYmFkbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkb20uX2x1bi5fbWFyLl9taVx4ZTkuX2p1ZS5fdmllLl9zXHhlMWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9taV9qdV92aV9zXHhlMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNl''@;'; + put 'put ''RXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJoOm1tIEEiLExUUzoiaDptbTpzcyBBIixMOiJNTS9ERC9ZWVlZIixMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIixMTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBo''@;'; + put 'put ''Om1tIEEifSxjYWxlbmRhcjp7c2FtZURheTpmdW5jdGlvbigpe3JldHVybiJbaG95IGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxuZXh0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIlttYVx4ZjFhbmEgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9''@;'; + put 'put ''LG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuImRkZGQgW2EgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxsYXN0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltheWVyIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxsYXN0V2VlazpmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiJbZWxdIGRkZGQgW3Bhc2FkbyBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZW4gJXMiLHBhc3Q6ImhhY2UgJXMiLHM6InVub3Mgc2VndW5kb3MiLHNzOiIlZCBzZWd1bmRvcyIsbToidW4g''@;'; + put 'put ''bWludXRvIixtbToiJWQgbWludXRvcyIsaDoidW5hIGhvcmEiLGhoOiIlZCBob3JhcyIsZDoidW4gZFx4ZWRhIixkZDoiJWQgZFx4ZWRhcyIsdzoidW5hIHNlbWFuYSIsd3c6IiVkIHNlbWFuYXMiLE06InVuIG1lcyIsTU06IiVkIG1lc2VzIix5OiJ1biBhXHhmMW8iLHl5OiIlZCBhXHhmMW9z''@;'; + put 'put ''In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sODY4NjY6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ImVuZS5fZmViLl9tYXIuX2Fi''@;'; + put 'put ''ci5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuIi5zcGxpdCgiXyIpLEU9ImVuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljIi5zcGxpdCgiXyIpLE1lPVsvXmVuZS9pLC9eZmViL2ksL15tYXIvaSwvXmFici9pLC9ebWF5L2ksL15q''@;'; + put 'put ''dW4vaSwvXmp1bC9pLC9eYWdvL2ksL15zZXAvaSwvXm9jdC9pLC9ebm92L2ksL15kaWMvaV0sVT0vXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlfGVuZVwuP3xmZWJcLj98bWFy''@;'; + put 'put ''XC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pO21lLmRlZmluZUxvY2FsZSgiZXMiLHttb250aHM6ImVuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1''@;'; + put 'put ''YnJlX25vdmllbWJyZV9kaWNpZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oWixpZSl7cmV0dXJuIFo/Ly1NTU0tLy50ZXN0KGllKT9FW1oubW9udGgoKV06QltaLm1vbnRoKCldOkJ9LG1vbnRoc1JlZ2V4OlUsbW9udGhzU2hvcnRSZWdleDpVLG1vbnRoc1N0cmljdFJl''@;'; + put 'put ''Z2V4Oi9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmUpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihlbmVcLj98ZmViXC4/fG1hclwuP3xhYnJcLj98bWF5XC4/fGp1blwu''@;'; + put 'put ''P3xqdWxcLj98YWdvXC4/fHNlcFwuP3xvY3RcLj98bm92XC4/fGRpY1wuPykvaSxtb250aHNQYXJzZTpNZSxsb25nTW9udGhzUGFyc2U6TWUsc2hvcnRNb250aHNQYXJzZTpNZSx3ZWVrZGF5czoiZG9taW5nb19sdW5lc19tYXJ0ZXNfbWlceGU5cmNvbGVzX2p1ZXZlc192aWVybmVzX3NceGUx''@;'; + put 'put ''YmFkbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkb20uX2x1bi5fbWFyLl9taVx4ZTkuX2p1ZS5fdmllLl9zXHhlMWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9taV9qdV92aV9zXHhlMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVG''@;'; + put 'put ''b3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4iW2hveSBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dERheTpmdW5jdGlvbigpe3JldHVybiJbbWFceGYxYW5hIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxuZXh0V2VlazpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biJkZGRkIFthIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbGFzdERheTpmdW5jdGlvbigpe3JldHVybiJbYXllciBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iW2VsXSBkZGRkIFtwYXNhZG8g''@;'; + put 'put ''YSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImVuICVzIixwYXN0OiJoYWNlICVzIixzOiJ1bm9zIHNlZ3VuZG9zIixzczoiJWQgc2VndW5kb3MiLG06InVuIG1pbnV0byIsbW06IiVkIG1pbnV0b3MiLGg6''@;'; + put 'put ''InVuYSBob3JhIixoaDoiJWQgaG9yYXMiLGQ6InVuIGRceGVkYSIsZGQ6IiVkIGRceGVkYXMiLHc6InVuYSBzZW1hbmEiLHd3OiIlZCBzZW1hbmFzIixNOiJ1biBtZXMiLE1NOiIlZCBtZXNlcyIseToidW4gYVx4ZjFvIix5eToiJWQgYVx4ZjFvcyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6''@;'; + put 'put ''L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLHdlZWs6e2RvdzoxLGRveTo0fSxpbnZhbGlkRGF0ZToiRmVjaGEgaW52XHhlMWxpZGEifSl9KEwoMTU0MzkpKX0sOTY3MjU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihNZSxVLFEs''@;'; + put 'put ''Wil7dmFyIGllPXtzOlsibVx4ZjVuZSBzZWt1bmRpIiwibVx4ZjVuaSBzZWt1bmQiLCJwYWFyIHNla3VuZGl0Il0sc3M6W01lKyJzZWt1bmRpIixNZSsic2VrdW5kaXQiXSxtOlsiXHhmY2hlIG1pbnV0aSIsIlx4ZmNrcyBtaW51dCJdLG1tOltNZSsiIG1pbnV0aSIsTWUrIiBtaW51dGl0Il0s''@;'; + put 'put ''aDpbIlx4ZmNoZSB0dW5uaSIsInR1bmQgYWVnYSIsIlx4ZmNrcyB0dW5kIl0saGg6W01lKyIgdHVubmkiLE1lKyIgdHVuZGkiXSxkOlsiXHhmY2hlIHBceGU0ZXZhIiwiXHhmY2tzIHBceGU0ZXYiXSxNOlsia3V1IGFqYSIsImt1dSBhZWdhIiwiXHhmY2tzIGt1dSJdLE1NOltNZSsiIGt1dSIs''@;'; + put 'put ''TWUrIiBrdXVkIl0seTpbIlx4ZmNoZSBhYXN0YSIsImFhc3RhIiwiXHhmY2tzIGFhc3RhIl0seXk6W01lKyIgYWFzdGEiLE1lKyIgYWFzdGF0Il19O3JldHVybiBVP2llW1FdWzJdP2llW1FdWzJdOmllW1FdWzFdOlo/aWVbUV1bMF06aWVbUV1bMV19bWUuZGVmaW5lTG9jYWxlKCJldCIse21v''@;'; + put 'put ''bnRoczoiamFhbnVhcl92ZWVicnVhcl9tXHhlNHJ0c19hcHJpbGxfbWFpX2p1dW5pX2p1dWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b29iZXJfbm92ZW1iZXJfZGV0c2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYWFuX3ZlZWJyX21ceGU0cnRzX2Fwcl9tYWlfanV1bmlfanV1bGlf''@;'; + put 'put ''YXVnX3NlcHRfb2t0X25vdl9kZXRzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJwXHhmY2hhcFx4ZTRldl9lc21hc3BceGU0ZXZfdGVpc2lwXHhlNGV2X2tvbG1hcFx4ZTRldl9uZWxqYXBceGU0ZXZfcmVlZGVfbGF1cFx4ZTRldiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJQX0VfVF9LX05f''@;'; + put 'put ''Ul9MIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJQX0VfVF9LX05fUl9MIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBIOm1tIixMTExMOiJkZGRkLCBE''@;'; + put 'put ''LiBNTU1NIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVFx4ZTRuYSxdIExUIixuZXh0RGF5OiJbSG9tbWUsXSBMVCIsbmV4dFdlZWs6IltKXHhlNHJnbWluZV0gZGRkZCBMVCIsbGFzdERheToiW0VpbGUsXSBMVCIsbGFzdFdlZWs6IltFZWxtaW5lXSBkZGRkIExUIixzYW1lRWxz''@;'; + put 'put ''ZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBwXHhlNHJhc3QiLHBhc3Q6IiVzIHRhZ2FzaSIsczpCLHNzOkIsbTpCLG1tOkIsaDpCLGhoOkIsZDpCLGRkOiIlZCBwXHhlNGV2YSIsTTpCLE1NOkIseTpCLHl5OkJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3Jk''@;'; + put 'put ''aW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw2NzkzMTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImV1Iix7bW9udGhzOiJ1cnRhcnJpbGFfb3RzYWlsYV9tYXJ0eG9hX2FwaXJpbGFfbWFpYXR6''@;'; + put 'put ''YV9la2FpbmFfdXp0YWlsYV9hYnV6dHVhX2lyYWlsYV91cnJpYV9hemFyb2FfYWJlbmR1YSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoidXJ0Ll9vdHMuX21hci5fYXBpLl9tYWkuX2VrYS5fdXp0Ll9hYnUuX2lyYS5fdXJyLl9hemEuX2FiZS4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFj''@;'; + put 'put ''dDohMCx3ZWVrZGF5czoiaWdhbmRlYV9hc3RlbGVoZW5hX2FzdGVhcnRlYV9hc3RlYXprZW5hX29zdGVndW5hX29zdGlyYWxhX2xhcnVuYmF0YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJpZy5fYWwuX2FyLl9hei5fb2cuX29sLl9sci4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Imln''@;'; + put 'put ''X2FsX2FyX2F6X29nX29sX2xyIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZLU1NLUREIixMTDoiWVlZWVtrb10gTU1NTVtyZW5dIERbYV0iLExMTDoiWVlZWVtrb10gTU1NTVtyZW5dIERb''@;'; + put 'put ''YV0gSEg6bW0iLExMTEw6ImRkZGQsIFlZWVlba29dIE1NTU1bcmVuXSBEW2FdIEhIOm1tIixsOiJZWVlZLU0tRCIsbGw6IllZWVlba29dIE1NTSBEW2FdIixsbGw6IllZWVlba29dIE1NTSBEW2FdIEhIOm1tIixsbGxsOiJkZGQsIFlZWVlba29dIE1NTSBEW2FdIEhIOm1tIn0sY2FsZW5kYXI6''@;'; + put 'put ''e3NhbWVEYXk6IltnYXVyXSBMVFtldGFuXSIsbmV4dERheToiW2JpaGFyXSBMVFtldGFuXSIsbmV4dFdlZWs6ImRkZGQgTFRbZXRhbl0iLGxhc3REYXk6IlthdHpvXSBMVFtldGFuXSIsbGFzdFdlZWs6IlthdXJyZWtvXSBkZGRkIExUW2V0YW5dIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGlt''@;'; + put 'put ''ZTp7ZnV0dXJlOiIlcyBiYXJydSIscGFzdDoiZHVlbGEgJXMiLHM6InNlZ3VuZG8gYmF0enVrIixzczoiJWQgc2VndW5kbyIsbToibWludXR1IGJhdCIsbW06IiVkIG1pbnV0dSIsaDoib3JkdSBiYXQiLGhoOiIlZCBvcmR1IixkOiJlZ3VuIGJhdCIsZGQ6IiVkIGVndW4iLE06ImhpbGFiZXRl''@;'; + put 'put ''IGJhdCIsTU06IiVkIGhpbGFiZXRlIix5OiJ1cnRlIGJhdCIseXk6IiVkIHVydGUifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sNTY0MTc6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9u''@;'; + put 'put ''KG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ilx1MDZmMSIsMjoiXHUwNmYyIiwzOiJcdTA2ZjMiLDQ6Ilx1MDZmNCIsNToiXHUwNmY1Iiw2OiJcdTA2ZjYiLDc6Ilx1MDZmNyIsODoiXHUwNmY4Iiw5OiJcdTA2ZjkiLDA6Ilx1MDZmMCJ9LEU9eyJcdTA2ZjEiOiIxIiwiXHUwNmYyIjoiMiIs''@;'; + put 'put ''Ilx1MDZmMyI6IjMiLCJcdTA2ZjQiOiI0IiwiXHUwNmY1IjoiNSIsIlx1MDZmNiI6IjYiLCJcdTA2ZjciOiI3IiwiXHUwNmY4IjoiOCIsIlx1MDZmOSI6IjkiLCJcdTA2ZjAiOiIwIn07bWUuZGVmaW5lTG9jYWxlKCJmYSIse21vbnRoczoiXHUwNjk4XHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNmNj''@;'; + put 'put ''XHUwNjQ3X1x1MDY0MVx1MDY0OFx1MDYzMVx1MDZjY1x1MDY0N19cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIyXHUwNjQ4XHUwNjMxXHUwNmNjXHUwNjQ0X1x1MDY0NVx1MDY0N19cdTA2OThcdTA2NDhcdTA2MjZcdTA2NDZfXHUwNjk4XHUwNjQ4XHUwNjI2XHUwNmNjXHUwNjQ3X1x1''@;'; + put 'put ''MDYyN1x1MDY0OFx1MDYyYV9cdTA2MzNcdTA2N2VcdTA2MmFcdTA2MjdcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjI3XHUwNmE5XHUwNjJhXHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2MzNcdTA2MjdcdTA2NDVcdTA2MjhcdTA2MzEi''@;'; + put 'put ''LnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDY5OFx1MDYyN1x1MDY0Nlx1MDY0OFx1MDZjY1x1MDY0N19cdTA2NDFcdTA2NDhcdTA2MzFcdTA2Y2NcdTA2NDdfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyMlx1MDY0OFx1MDYzMVx1MDZjY1x1MDY0NF9cdTA2NDVcdTA2NDdfXHUw''@;'; + put 'put ''Njk4XHUwNjQ4XHUwNjI2XHUwNjQ2X1x1MDY5OFx1MDY0OFx1MDYyNlx1MDZjY1x1MDY0N19cdTA2MjdcdTA2NDhcdTA2MmFfXHUwNjMzXHUwNjdlXHUwNjJhXHUwNjI3XHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyN1x1MDZhOVx1MDYyYVx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2Mjdc''@;'; + put 'put ''dTA2NDVcdTA2MjhcdTA2MzFfXHUwNjJmXHUwNjMzXHUwNjI3XHUwNjQ1XHUwNjI4XHUwNjMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA2Y2NcdTA2YTlcdTIwMGNcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjJmXHUwNjQ4XHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDYzM1x1''@;'; + put 'put ''MDY0N1x1MjAwY1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2ODZcdTA2NDdcdTA2MjdcdTA2MzFcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjdlXHUwNjQ2XHUwNjJjXHUyMDBjXHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDYyY1x1MDY0NVx1MDYzOVx1MDY0N19cdTA2MzRc''@;'; + put 'put ''dTA2NDZcdTA2MjhcdTA2NDciLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNmNjXHUwNmE5XHUyMDBjXHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDYyZlx1MDY0OFx1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2MzNcdTA2NDdcdTIwMGNcdTA2MzRcdTA2NDZcdTA2MjhcdTA2''@;'; + put 'put ''NDdfXHUwNjg2XHUwNjQ3XHUwNjI3XHUwNjMxXHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDY3ZVx1MDY0Nlx1MDYyY1x1MjAwY1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2NDdfXHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3Ii5zcGxpdCgiXyIpLHdl''@;'; + put 'put ''ZWtkYXlzTWluOiJcdTA2Y2NfXHUwNjJmX1x1MDYzM19cdTA2ODZfXHUwNjdlX1x1MDYyY19cdTA2MzQiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZ''@;'; + put 'put ''WSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2NDJcdTA2MjhcdTA2NDQgXHUwNjI3XHUwNjMyIFx1MDYzOFx1MDY0N1x1MDYzMXxcdTA2MjhcdTA2MzlcdTA2MmYgXHUwNjI3XHUwNjMyIFx1MDYzOFx1''@;'; + put 'put ''MDY0N1x1MDYzMS8saXNQTTpmdW5jdGlvbihVKXtyZXR1cm4vXHUwNjI4XHUwNjM5XHUwNjJmIFx1MDYyN1x1MDYzMiBcdTA2MzhcdTA2NDdcdTA2MzEvLnRlc3QoVSl9LG1lcmlkaWVtOmZ1bmN0aW9uKFUsUSxaKXtyZXR1cm4gVTwxMj8iXHUwNjQyXHUwNjI4XHUwNjQ0IFx1MDYyN1x1MDYz''@;'; + put 'put ''MiBcdTA2MzhcdTA2NDdcdTA2MzEiOiJcdTA2MjhcdTA2MzlcdTA2MmYgXHUwNjI3XHUwNjMyIFx1MDYzOFx1MDY0N1x1MDYzMSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI3XHUwNjQ1XHUwNjMxXHUwNjQ4XHUwNjMyIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyYV0gTFQiLG5leHREYXk6''@;'; + put 'put ''IltcdTA2NDFcdTA2MzFcdTA2MmZcdTA2MjcgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzM1x1MDYyN1x1MDYzOVx1MDYyYV0gTFQiLGxhc3REYXk6IltcdTA2MmZcdTA2Y2NcdTA2MzFcdTA2NDhcdTA2MzIgXHUwNjMzXHUwNjI3XHUwNjM5XHUw''@;'; + put 'put ''NjJhXSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MDY3ZVx1MDZjY1x1MDYzNF0gW1x1MDYzM1x1MDYyN1x1MDYzOVx1MDYyYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDYyZlx1MDYzMSAlcyIscGFzdDoiJXMgXHUwNjdlXHUwNmNjXHUwNjM0IixzOiJcdTA2''@;'; + put 'put ''ODZcdTA2NDZcdTA2MmYgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNmNjXHUwNjQ3IixzczoiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNmNjXHUwNjQ3IixtOiJcdTA2Y2NcdTA2YTkgXHUwNjJmXHUwNjQyXHUwNmNjXHUwNjQyXHUwNjQ3IixtbToiJWQgXHUwNjJmXHUwNjQyXHUwNmNjXHUwNjQy''@;'; + put 'put ''XHUwNjQ3IixoOiJcdTA2Y2NcdTA2YTkgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhIixoaDoiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhIixkOiJcdTA2Y2NcdTA2YTkgXHUwNjMxXHUwNjQ4XHUwNjMyIixkZDoiJWQgXHUwNjMxXHUwNjQ4XHUwNjMyIixNOiJcdTA2Y2NcdTA2YTkgXHUw''@;'; + put 'put ''NjQ1XHUwNjI3XHUwNjQ3IixNTToiJWQgXHUwNjQ1XHUwNjI3XHUwNjQ3Iix5OiJcdTA2Y2NcdTA2YTkgXHUwNjMzXHUwNjI3XHUwNjQ0Iix5eToiJWQgXHUwNjMzXHUwNjI3XHUwNjQ0In0scHJlcGFyc2U6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvW1x1MDZmMC1cdTA2ZjldL2cs''@;'; + put 'put ''ZnVuY3Rpb24oUSl7cmV0dXJuIEVbUV19KS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oUSl7cmV0dXJuIEJbUV19KS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSxkYXlPZk1vbnRoT3JkaW5hbFBh''@;'; + put 'put ''cnNlOi9cZHsxLDJ9XHUwNjQ1LyxvcmRpbmFsOiIlZFx1MDY0NSIsd2Vlazp7ZG93OjYsZG95OjEyfX0pfShMKDE1NDM5KSl9LDIwOTQ0OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPSJub2xsYSB5a3NpIGtha3NpIGtvbG1lIG5lbGpceGU0IHZp''@;'; + put 'put ''aXNpIGt1dXNpIHNlaXRzZW1ceGU0biBrYWhkZWtzYW4geWhkZWtzXHhlNG4iLnNwbGl0KCIgIiksRT1bIm5vbGxhIiwieWhkZW4iLCJrYWhkZW4iLCJrb2xtZW4iLCJuZWxqXHhlNG4iLCJ2aWlkZW4iLCJrdXVkZW4iLEJbN10sQls4XSxCWzldXTtmdW5jdGlvbiBNZShaLGllLGxlLFkpe3Zh''@;'; + put 'put ''ciBXPSIiO3N3aXRjaChsZSl7Y2FzZSJzIjpyZXR1cm4gWT8ibXV1dGFtYW4gc2VrdW5uaW4iOiJtdXV0YW1hIHNla3VudGkiO2Nhc2Uic3MiOlc9WT8ic2VrdW5uaW4iOiJzZWt1bnRpYSI7YnJlYWs7Y2FzZSJtIjpyZXR1cm4gWT8ibWludXV0aW4iOiJtaW51dXR0aSI7Y2FzZSJtbSI6Vz1Z''@;'; + put 'put ''PyJtaW51dXRpbiI6Im1pbnV1dHRpYSI7YnJlYWs7Y2FzZSJoIjpyZXR1cm4gWT8idHVubmluIjoidHVudGkiO2Nhc2UiaGgiOlc9WT8idHVubmluIjoidHVudGlhIjticmVhaztjYXNlImQiOnJldHVybiBZPyJwXHhlNGl2XHhlNG4iOiJwXHhlNGl2XHhlNCI7Y2FzZSJkZCI6Vz1ZPyJwXHhl''@;'; + put 'put ''NGl2XHhlNG4iOiJwXHhlNGl2XHhlNFx4ZTQiO2JyZWFrO2Nhc2UiTSI6cmV0dXJuIFk/Imt1dWthdWRlbiI6Imt1dWthdXNpIjtjYXNlIk1NIjpXPVk/Imt1dWthdWRlbiI6Imt1dWthdXR0YSI7YnJlYWs7Y2FzZSJ5IjpyZXR1cm4gWT8idnVvZGVuIjoidnVvc2kiO2Nhc2UieXkiOlc9WT8i''@;'; + put 'put ''dnVvZGVuIjoidnVvdHRhIn1yZXR1cm4gZnVuY3Rpb24gVShaLGllKXtyZXR1cm4gWjwxMD9pZT9FW1pdOkJbWl06Wn0oWixZKSsiICIrV31tZS5kZWZpbmVMb2NhbGUoImZpIix7bW9udGhzOiJ0YW1taWt1dV9oZWxtaWt1dV9tYWFsaXNrdXVfaHVodGlrdXVfdG91a29rdXVfa2VzXHhlNGt1''@;'; + put 'put ''dV9oZWluXHhlNGt1dV9lbG9rdXVfc3l5c2t1dV9sb2tha3V1X21hcnJhc2t1dV9qb3VsdWt1dSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoidGFtbWlfaGVsbWlfbWFhbGlzX2h1aHRpX3RvdWtvX2tlc1x4ZTRfaGVpblx4ZTRfZWxvX3N5eXNfbG9rYV9tYXJyYXNfam91bHUiLnNwbGl0KCJf''@;'; + put 'put ''Iiksd2Vla2RheXM6InN1bm51bnRhaV9tYWFuYW50YWlfdGlpc3RhaV9rZXNraXZpaWtrb190b3JzdGFpX3BlcmphbnRhaV9sYXVhbnRhaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzdV9tYV90aV9rZV90b19wZV9sYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic3VfbWFfdGlfa2Vf''@;'; + put 'put ''dG9fcGVfbGEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISC5tbSIsTFRTOiJISC5tbS5zcyIsTDoiREQuTU0uWVlZWSIsTEw6IkRvIE1NTU1bdGFdIFlZWVkiLExMTDoiRG8gTU1NTVt0YV0gWVlZWSwgW2tsb10gSEgubW0iLExMTEw6ImRkZGQsIERvIE1NTU1bdGFdIFlZWVks''@;'; + put 'put ''IFtrbG9dIEhILm1tIixsOiJELk0uWVlZWSIsbGw6IkRvIE1NTSBZWVlZIixsbGw6IkRvIE1NTSBZWVlZLCBba2xvXSBISC5tbSIsbGxsbDoiZGRkLCBEbyBNTU0gWVlZWSwgW2tsb10gSEgubW0ifSxjYWxlbmRhcjp7c2FtZURheToiW3RceGU0blx4ZTRceGU0bl0gW2tsb10gTFQiLG5leHRE''@;'; + put 'put ''YXk6IltodW9tZW5uYV0gW2tsb10gTFQiLG5leHRXZWVrOiJkZGRkIFtrbG9dIExUIixsYXN0RGF5OiJbZWlsZW5dIFtrbG9dIExUIixsYXN0V2VlazoiW3ZpaW1lXSBkZGRkW25hXSBba2xvXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgcFx4ZTRceGU0c3Rc''@;'; + put 'put ''eGU0IixwYXN0OiIlcyBzaXR0ZW4iLHM6TWUsc3M6TWUsbTpNZSxtbTpNZSxoOk1lLGhoOk1lLGQ6TWUsZGQ6TWUsTTpNZSxNTTpNZSx5Ok1lLHl5Ok1lfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0''@;'; + put 'put ''MzkpKX0sNjE3NjY6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJmaWwiLHttb250aHM6IkVuZXJvX1BlYnJlcm9fTWFyc29fQWJyaWxfTWF5b19IdW55b19IdWx5b19BZ29zdG9fU2V0eWVtYnJlX09rdHVicmVfTm9ieWVtYnJl''@;'; + put 'put ''X0Rpc3llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiRW5lX1BlYl9NYXJfQWJyX01heV9IdW5fSHVsX0Fnb19TZXRfT2t0X05vYl9EaXMiLnNwbGl0KCJfIiksd2Vla2RheXM6Ikxpbmdnb19MdW5lc19NYXJ0ZXNfTWl5ZXJrdWxlc19IdXdlYmVzX0JpeWVybmVzX1NhYmFkbyIuc3Bs''@;'; + put 'put ''aXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJMaW5fTHVuX01hcl9NaXlfSHV3X0JpeV9TYWIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkxpX0x1X01hX01pX0h1X0JpX1NhYiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJNTS9EL1lZWVki''@;'; + put 'put ''LExMOiJNTU1NIEQsIFlZWVkiLExMTDoiTU1NTSBELCBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBNTU1NIERELCBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IkxUIFtuZ2F5b25nIGFyYXddIixuZXh0RGF5OiJbQnVrYXMgbmddIExUIixuZXh0V2VlazoiTFQgW3NhIHN1c3Vub2Qg''@;'; + put 'put ''bmFdIGRkZGQiLGxhc3REYXk6IkxUIFtrYWhhcG9uXSIsbGFzdFdlZWs6IkxUIFtub29uZyBuYWthcmFhbmddIGRkZGQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InNhIGxvb2IgbmcgJXMiLHBhc3Q6IiVzIGFuZyBuYWthbGlwYXMiLHM6ImlsYW5nIHNlZ3VuZG8iLHNz''@;'; + put 'put ''OiIlZCBzZWd1bmRvIixtOiJpc2FuZyBtaW51dG8iLG1tOiIlZCBtaW51dG8iLGg6ImlzYW5nIG9yYXMiLGhoOiIlZCBvcmFzIixkOiJpc2FuZyBhcmF3IixkZDoiJWQgYXJhdyIsTToiaXNhbmcgYnV3YW4iLE1NOiIlZCBidXdhbiIseToiaXNhbmcgdGFvbiIseXk6IiVkIHRhb24ifSxkYXlP''@;'; + put 'put ''Zk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3JldHVybiBFfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw5NTg2NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImZvIix7''@;'; + put 'put ''bW9udGhzOiJqYW51YXJfZmVicnVhcl9tYXJzX2Fwclx4ZWRsX21haV9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2Rlc2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW5fZmViX21hcl9hcHJfbWFpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2Rl''@;'; + put 'put ''cyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoic3VubnVkYWd1cl9tXHhlMW5hZGFndXJfdFx4ZmRzZGFndXJfbWlrdWRhZ3VyX2hceGYzc2RhZ3VyX2ZyXHhlZGdnamFkYWd1cl9sZXlnYXJkYWd1ciIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzdW5fbVx4ZTFuX3RceGZkc19taWtfaFx4ZjNz''@;'; + put 'put ''X2ZyXHhlZF9sZXkiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InN1X21ceGUxX3RceGZkX21pX2hceGYzX2ZyX2xlIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0g''@;'; + put 'put ''WVlZWSBISDptbSIsTExMTDoiZGRkZCBELiBNTU1NLCBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltceGNkIGRhZyBrbC5dIExUIixuZXh0RGF5OiJbXHhjZCBtb3JnaW4ga2wuXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2tsLl0gTFQiLGxhc3REYXk6IltceGNkIGdqXHhlMXIga2wu''@;'; + put 'put ''XSBMVCIsbGFzdFdlZWs6IltzXHhlZFx4ZjBzdHVdIGRkZGQgW2tsXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToidW0gJXMiLHBhc3Q6IiVzIHNceGVkXHhmMGFuaSIsczoiZlx4ZTEgc2VrdW5kIixzczoiJWQgc2VrdW5kaXIiLG06ImVpbiBtaW51dHR1ciIsbW06''@;'; + put 'put ''IiVkIG1pbnV0dGlyIixoOiJlaW4gdFx4ZWRtaSIsaGg6IiVkIHRceGVkbWFyIixkOiJlaW4gZGFndXIiLGRkOiIlZCBkYWdhciIsTToiZWluIG1ceGUxbmFceGYwdXIiLE1NOiIlZCBtXHhlMW5hXHhmMGlyIix5OiJlaXR0IFx4ZTFyIix5eToiJWQgXHhlMXIifSxkYXlPZk1vbnRoT3JkaW5h''@;'; + put 'put ''bFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMTY4NDg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJmci1jYSIse21vbnRoczoiamFudmllcl9mXHhlOXZy''@;'; + put 'put ''aWVyX21hcnNfYXZyaWxfbWFpX2p1aW5fanVpbGxldF9hb1x4ZmJ0X3NlcHRlbWJyZV9vY3RvYnJlX25vdmVtYnJlX2RceGU5Y2VtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW52Ll9mXHhlOXZyLl9tYXJzX2F2ci5fbWFpX2p1aW5fanVpbC5fYW9ceGZidF9zZXB0Ll9vY3QuX25v''@;'; + put 'put ''di5fZFx4ZTljLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJkaW1hbmNoZV9sdW5kaV9tYXJkaV9tZXJjcmVkaV9qZXVkaV92ZW5kcmVkaV9zYW1lZGkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZGltLl9sdW4uX21hci5fbWVyLl9qZXUuX3Zlbi5fc2Ft''@;'; + put 'put ''LiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZGlfbHVfbWFfbWVfamVfdmVfc2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IllZWVktTU0tREQiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1N''@;'; + put 'put ''TU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbQXVqb3VyZFx1MjAxOWh1aSBceGUwXSBMVCIsbmV4dERheToiW0RlbWFpbiBceGUwXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x4ZTBdIExUIixsYXN0RGF5OiJbSGllciBceGUw''@;'; + put 'put ''XSBMVCIsbGFzdFdlZWs6ImRkZGQgW2Rlcm5pZXIgXHhlMF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImRhbnMgJXMiLHBhc3Q6ImlsIHkgYSAlcyIsczoicXVlbHF1ZXMgc2Vjb25kZXMiLHNzOiIlZCBzZWNvbmRlcyIsbToidW5lIG1pbnV0ZSIsbW06IiVkIG1p''@;'; + put 'put ''bnV0ZXMiLGg6InVuZSBoZXVyZSIsaGg6IiVkIGhldXJlcyIsZDoidW4gam91ciIsZGQ6IiVkIGpvdXJzIixNOiJ1biBtb2lzIixNTToiJWQgbW9pcyIseToidW4gYW4iLHl5OiIlZCBhbnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KGVyfGUpLyxvcmRpbmFsOmZ1bmN0aW9u''@;'; + put 'put ''KEUsTWUpe3N3aXRjaChNZSl7ZGVmYXVsdDpjYXNlIk0iOmNhc2UiUSI6Y2FzZSJEIjpjYXNlIkRERCI6Y2FzZSJkIjpyZXR1cm4gRSsoMT09PUU/ImVyIjoiZSIpO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gRSsoMT09PUU/InJlIjoiZSIpfX19KX0oTCgxNTQzOSkpfSw3Nzc3MzpmdW5jdGlv''@;'; + put 'put ''bihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImZyLWNoIix7bW9udGhzOiJqYW52aWVyX2ZceGU5dnJpZXJfbWFyc19hdnJpbF9tYWlfanVpbl9qdWlsbGV0X2FvXHhmYnRfc2VwdGVtYnJlX29jdG9icmVfbm92ZW1icmVfZFx4ZTljZW1icmUi''@;'; + put 'put ''LnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ImphbnYuX2ZceGU5dnIuX21hcnNfYXZyLl9tYWlfanVpbl9qdWlsLl9hb1x4ZmJ0X3NlcHQuX29jdC5fbm92Ll9kXHhlOWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6ImRpbWFuY2hlX2x1bmRpX21hcmRpX21lcmNy''@;'; + put 'put ''ZWRpX2pldWRpX3ZlbmRyZWRpX3NhbWVkaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkaW0uX2x1bi5fbWFyLl9tZXIuX2pldS5fdmVuLl9zYW0uIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkaV9sdV9tYV9tZV9qZV92ZV9zYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6''@;'; + put 'put ''ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltBdWpvdXJkXHUyMDE5''@;'; + put 'put ''aHVpIFx4ZTBdIExUIixuZXh0RGF5OiJbRGVtYWluIFx4ZTBdIExUIixuZXh0V2VlazoiZGRkZCBbXHhlMF0gTFQiLGxhc3REYXk6IltIaWVyIFx4ZTBdIExUIixsYXN0V2VlazoiZGRkZCBbZGVybmllciBceGUwXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFu''@;'; + put 'put ''cyAlcyIscGFzdDoiaWwgeSBhICVzIixzOiJxdWVscXVlcyBzZWNvbmRlcyIsc3M6IiVkIHNlY29uZGVzIixtOiJ1bmUgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoidW5lIGhldXJlIixoaDoiJWQgaGV1cmVzIixkOiJ1biBqb3VyIixkZDoiJWQgam91cnMiLE06InVuIG1vaXMiLE1NOiIl''@;'; + put 'put ''ZCBtb2lzIix5OiJ1biBhbiIseXk6IiVkIGFucyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZXJ8ZSkvLG9yZGluYWw6ZnVuY3Rpb24oRSxNZSl7c3dpdGNoKE1lKXtkZWZhdWx0OmNhc2UiTSI6Y2FzZSJRIjpjYXNlIkQiOmNhc2UiREREIjpjYXNlImQiOnJldHVybiBFKygx''@;'; + put 'put ''PT09RT8iZXIiOiJlIik7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBFKygxPT09RT8icmUiOiJlIil9fSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwxNjM2OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBNZT0vKGphbnZcLj98Zlx4ZTl2''@;'; + put 'put ''clwuP3xtYXJzfGF2clwuP3xtYWl8anVpbnxqdWlsXC4/fGFvXHhmYnR8c2VwdFwuP3xvY3RcLj98bm92XC4/fGRceGU5Y1wuP3xqYW52aWVyfGZceGU5dnJpZXJ8bWFyc3xhdnJpbHxtYWl8anVpbnxqdWlsbGV0fGFvXHhmYnR8c2VwdGVtYnJlfG9jdG9icmV8bm92ZW1icmV8ZFx4ZTljZW1i''@;'; + put 'put ''cmUpL2ksVT1bL15qYW52L2ksL15mXHhlOXZyL2ksL15tYXJzL2ksL15hdnIvaSwvXm1haS9pLC9eanVpbi9pLC9eanVpbC9pLC9eYW9ceGZidC9pLC9ec2VwdC9pLC9eb2N0L2ksL15ub3YvaSwvXmRceGU5Yy9pXTttZS5kZWZpbmVMb2NhbGUoImZyIix7bW9udGhzOiJqYW52aWVyX2ZceGU5''@;'; + put 'put ''dnJpZXJfbWFyc19hdnJpbF9tYWlfanVpbl9qdWlsbGV0X2FvXHhmYnRfc2VwdGVtYnJlX29jdG9icmVfbm92ZW1icmVfZFx4ZTljZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ImphbnYuX2ZceGU5dnIuX21hcnNfYXZyLl9tYWlfanVpbl9qdWlsLl9hb1x4ZmJ0X3NlcHQuX29jdC5f''@;'; + put 'put ''bm92Ll9kXHhlOWMuIi5zcGxpdCgiXyIpLG1vbnRoc1JlZ2V4Ok1lLG1vbnRoc1Nob3J0UmVnZXg6TWUsbW9udGhzU3RyaWN0UmVnZXg6L14oamFudmllcnxmXHhlOXZyaWVyfG1hcnN8YXZyaWx8bWFpfGp1aW58anVpbGxldHxhb1x4ZmJ0fHNlcHRlbWJyZXxvY3RvYnJlfG5vdmVtYnJlfGRc''@;'; + put 'put ''eGU5Y2VtYnJlKS9pLG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6LyhqYW52XC4/fGZceGU5dnJcLj98bWFyc3xhdnJcLj98bWFpfGp1aW58anVpbFwuP3xhb1x4ZmJ0fHNlcHRcLj98b2N0XC4/fG5vdlwuP3xkXHhlOWNcLj8pL2ksbW9udGhzUGFyc2U6VSxsb25nTW9udGhzUGFyc2U6VSxzaG9y''@;'; + put 'put ''dE1vbnRoc1BhcnNlOlUsd2Vla2RheXM6ImRpbWFuY2hlX2x1bmRpX21hcmRpX21lcmNyZWRpX2pldWRpX3ZlbmRyZWRpX3NhbWVkaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkaW0uX2x1bi5fbWFyLl9tZXIuX2pldS5fdmVuLl9zYW0uIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJk''@;'; + put 'put ''aV9sdV9tYV9tZV9qZV92ZV9zYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQg''@;'; + put 'put ''TU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltBdWpvdXJkXHUyMDE5aHVpIFx4ZTBdIExUIixuZXh0RGF5OiJbRGVtYWluIFx4ZTBdIExUIixuZXh0V2VlazoiZGRkZCBbXHhlMF0gTFQiLGxhc3REYXk6IltIaWVyIFx4ZTBdIExUIixsYXN0V2VlazoiZGRkZCBbZGVybmll''@;'; + put 'put ''ciBceGUwXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFucyAlcyIscGFzdDoiaWwgeSBhICVzIixzOiJxdWVscXVlcyBzZWNvbmRlcyIsc3M6IiVkIHNlY29uZGVzIixtOiJ1bmUgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoidW5lIGhldXJlIixoaDoiJWQg''@;'; + put 'put ''aGV1cmVzIixkOiJ1biBqb3VyIixkZDoiJWQgam91cnMiLHc6InVuZSBzZW1haW5lIix3dzoiJWQgc2VtYWluZXMiLE06InVuIG1vaXMiLE1NOiIlZCBtb2lzIix5OiJ1biBhbiIseXk6IiVkIGFucyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZXJ8KS8sb3JkaW5hbDpmdW5j''@;'; + put 'put ''dGlvbihaLGllKXtzd2l0Y2goaWUpe2Nhc2UiRCI6cmV0dXJuIForKDE9PT1aPyJlciI6IiIpO2RlZmF1bHQ6Y2FzZSJNIjpjYXNlIlEiOmNhc2UiREREIjpjYXNlImQiOnJldHVybiBaKygxPT09Wj8iZXIiOiJlIik7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBaKygxPT09Wj8icmUiOiJlIil9''@;'; + put 'put ''fSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwxNDk0MDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0iamFuLl9mZWIuX21ydC5fYXByLl9tYWlfanVuLl9qdWwuX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVzLiIuc3BsaXQoIl8iKSxF''@;'; + put 'put ''PSJqYW5fZmViX21ydF9hcHJfbWFpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2RlcyIuc3BsaXQoIl8iKTttZS5kZWZpbmVMb2NhbGUoImZ5Iix7bW9udGhzOiJqYW5uZXdhcmlzX2ZlYnJld2FyaXNfbWFhcnRfYXByaWxfbWFhaWVfanVueV9qdWx5X2F1Z3VzdHVzX3NlcHRpbWJlcl9va3Rv''@;'; + put 'put ''YmVyX25vdmltYmVyX2Rlc2ltYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OmZ1bmN0aW9uKFUsUSl7cmV0dXJuIFU/Ly1NTU0tLy50ZXN0KFEpP0VbVS5tb250aCgpXTpCW1UubW9udGgoKV06Qn0sbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoic25laW5fbW9hbmRlaV90aWlzZGVp''@;'; + put 'put ''X3dvYW5zZGVpX3RvbmdlcnNkZWlfZnJlZWRfc25lb24iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoic2kuX21vLl90aS5fd28uX3RvLl9mci5fc28uIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTaV9Nb19UaV9Xb19Ub19Gcl9TbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6''@;'; + put 'put ''ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQtTU0tWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6Iltoam9lZCBvbV0gTFQi''@;'; + put 'put ''LG5leHREYXk6Ilttb2FybiBvbV0gTFQiLG5leHRXZWVrOiJkZGRkIFtvbV0gTFQiLGxhc3REYXk6IltqdXN0ZXIgb21dIExUIixsYXN0V2VlazoiW1x4ZjRmclx4ZmJuZV0gZGRkZCBbb21dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvZXIgJXMiLHBhc3Q6IiVz''@;'; + put 'put ''IGx5biIsczoiaW4gcGVhciBzZWtvbmRlbiIsc3M6IiVkIHNla29uZGVuIixtOiJpZW4gbWluXHhmYXQiLG1tOiIlZCBtaW51dGVuIixoOiJpZW4gb2VyZSIsaGg6IiVkIG9lcmVuIixkOiJpZW4gZGVpIixkZDoiJWQgZGFnZW4iLE06ImllbiBtb2FubmUiLE1NOiIlZCBtb2FubmVuIix5OiJp''@;'; + put 'put ''ZW4gamllciIseXk6IiVkIGppZXJyZW4ifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0ZXxkZSkvLG9yZGluYWw6ZnVuY3Rpb24oVSl7cmV0dXJuIFUrKDE9PT1VfHw4PT09VXx8VT49MjA/InN0ZSI6ImRlIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDkx''@;'; + put 'put ''NDAyOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZ2EiLHttb250aHM6WyJFYW5ceGUxaXIiLCJGZWFiaHJhIiwiTVx4ZTFydGEiLCJBaWJyZVx4ZTFuIiwiQmVhbHRhaW5lIiwiTWVpdGhlYW1oIiwiSVx4ZmFpbCIsIkxceGZh''@;'; + put 'put ''bmFzYSIsIk1lXHhlMW4gRlx4ZjNtaGFpciIsIkRlaXJlYWRoIEZceGYzbWhhaXIiLCJTYW1oYWluIiwiTm9sbGFpZyJdLG1vbnRoc1Nob3J0OlsiRWFuIiwiRmVhYmgiLCJNXHhlMXJ0IiwiQWliIiwiQmVhbCIsIk1laXRoIiwiSVx4ZmFpbCIsIkxceGZhbiIsIk0uRi4iLCJELkYuIiwiU2Ft''@;'; + put 'put ''aCIsIk5vbGwiXSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOlsiRFx4ZTkgRG9taG5haWdoIiwiRFx4ZTkgTHVhaW4iLCJEXHhlOSBNXHhlMWlydCIsIkRceGU5IENceGU5YWRhb2luIiwiRFx4ZTlhcmRhb2luIiwiRFx4ZTkgaEFvaW5lIiwiRFx4ZTkgU2F0aGFpcm4iXSx3ZWVrZGF5''@;'; + put 'put ''c1Nob3J0OlsiRG9taCIsIkx1YW4iLCJNXHhlMWlydCIsIkNceGU5YWQiLCJEXHhlOWFyIiwiQW9pbmUiLCJTYXRoIl0sd2Vla2RheXNNaW46WyJEbyIsIkx1IiwiTVx4ZTEiLCJDXHhlOSIsIkRceGU5IiwiQSIsIlNhIl0sbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpz''@;'; + put 'put ''cyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSW5uaXUgYWddIExUIixuZXh0RGF5OiJbQW1ceGUxcmFjaCBhZ10gTFQiLG5leHRXZWVrOiJk''@;'; + put 'put ''ZGRkIFthZ10gTFQiLGxhc3REYXk6IltJbm5ceGU5IGFnXSBMVCIsbGFzdFdlZWs6ImRkZGQgW3NlbyBjYWl0ZV0gW2FnXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaSAlcyIscGFzdDoiJXMgXHhmMyBzaGluIixzOiJjXHhmYXBsYSBzb2ljaW5kIixzczoiJWQg''@;'; + put 'put ''c29pY2luZCIsbToiblx4ZjNpbVx4ZTlhZCIsbW06IiVkIG5ceGYzaW1ceGU5YWQiLGg6InVhaXIgYW4gY2hsb2lnIixoaDoiJWQgdWFpciBhbiBjaGxvaWciLGQ6ImxceGUxIixkZDoiJWQgbFx4ZTEiLE06Im1ceGVkIixNTToiJWQgbVx4ZWRvbm5hIix5OiJibGlhaW4iLHl5OiIlZCBibGlh''@;'; + put 'put ''aW4ifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KGR8bmF8bWgpLyxvcmRpbmFsOmZ1bmN0aW9uKGllKXtyZXR1cm4gaWUrKDE9PT1pZT8iZCI6aWUlMTA9PTI/Im5hIjoibWgiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNDY5MjQ6ZnVuY3Rpb24oWGUsSmUs''@;'; + put 'put ''TCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJnZCIse21vbnRoczpbIkFtIEZhb2lsbGVhY2giLCJBbiBHZWFycmFuIiwiQW0gTVx4ZTBydCIsIkFuIEdpYmxlYW4iLCJBbiBDXHhlOGl0ZWFuIiwiQW4gdC1ceGQyZ21oaW9zIiwiQW4gdC1JdWNoYXIiLCJB''@;'; + put 'put ''biBMXHhmOW5hc3RhbCIsIkFuIHQtU3VsdGFpbiIsIkFuIERceGUwbWhhaXIiLCJBbiB0LVNhbWhhaW4iLCJBbiBEXHhmOWJobGFjaGQiXSxtb250aHNTaG9ydDpbIkZhb2kiLCJHZWFyIiwiTVx4ZTBydCIsIkdpYmwiLCJDXHhlOGl0IiwiXHhkMmdtaCIsIkl1Y2giLCJMXHhmOW4iLCJTdWx0''@;'; + put 'put ''IiwiRFx4ZTBtaCIsIlNhbWgiLCJEXHhmOWJoIl0sbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czpbIkRpZFx4ZjJtaG5haWNoIiwiRGlsdWFpbiIsIkRpbVx4ZTBpcnQiLCJEaWNpYWRhaW4iLCJEaWFyZGFvaW4iLCJEaWhhb2luZSIsIkRpc2F0aGFpcm5lIl0sd2Vla2RheXNTaG9ydDpb''@;'; + put 'put ''IkRpZCIsIkRpbCIsIkRpbSIsIkRpYyIsIkRpYSIsIkRpaCIsIkRpcyJdLHdlZWtkYXlzTWluOlsiRFx4ZjIiLCJMdSIsIk1ceGUwIiwiQ2kiLCJBciIsIkhhIiwiU2EiXSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1N''@;'; + put 'put ''IFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltBbi1kaXVnaCBhaWddIExUIixuZXh0RGF5OiJbQS1tXHhlMGlyZWFjaCBhaWddIExUIixuZXh0V2VlazoiZGRkZCBbYWlnXSBMVCIsbGFzdERh''@;'; + put 'put ''eToiW0FuLWRceGU4IGFpZ10gTFQiLGxhc3RXZWVrOiJkZGRkIFtzZW8gY2hhaWRoXSBbYWlnXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiYW5uIGFuICVzIixwYXN0OiJiaG8gY2hpb25uICVzIixzOiJiZWFnYW4gZGlvZ2FuIixzczoiJWQgZGlvZ2FuIixtOiJt''@;'; + put 'put ''aW9uYWlkIixtbToiJWQgbWlvbmFpZGVhbiIsaDoidWFpciIsaGg6IiVkIHVhaXJlYW4iLGQ6ImxhdGhhIixkZDoiJWQgbGF0aGEiLE06Im1ceGVjb3MiLE1NOiIlZCBtXHhlY29zYW4iLHk6ImJsaWFkaG5hIix5eToiJWQgYmxpYWRobmEifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsx''@;'; + put 'put ''LDJ9KGR8bmF8bWgpLyxvcmRpbmFsOmZ1bmN0aW9uKGllKXtyZXR1cm4gaWUrKDE9PT1pZT8iZCI6aWUlMTA9PTI/Im5hIjoibWgiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMTYzOTg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUu''@;'; + put 'put ''ZGVmaW5lTG9jYWxlKCJnbCIse21vbnRoczoieGFuZWlyb19mZWJyZWlyb19tYXJ6b19hYnJpbF9tYWlvX3h1XHhmMW9feHVsbG9fYWdvc3RvX3NldGVtYnJvX291dHVicm9fbm92ZW1icm9fZGVjZW1icm8iLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Inhhbi5fZmViLl9tYXIuX2Fici5fbWFp''@;'; + put 'put ''Ll94dVx4ZjEuX3h1bC5fYWdvLl9zZXQuX291dC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6ImRvbWluZ29fbHVuc19tYXJ0ZXNfbVx4ZTlyY29yZXNfeG92ZXNfdmVucmVzX3NceGUxYmFkbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJk''@;'; + put 'put ''b20uX2x1bi5fbWFyLl9tXHhlOXIuX3hvdi5fdmVuLl9zXHhlMWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9tXHhlOV94b192ZV9zXHhlMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3Mi''@;'; + put 'put ''LEw6IkREL01NL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2hveGUgIisoMSE9''@;'; + put 'put ''PXRoaXMuaG91cnMoKT8iXHhlMXMiOiJceGUxIikrIl0gTFQifSxuZXh0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIlttYVx4ZjFceGUxICIrKDEhPT10aGlzLmhvdXJzKCk/Ilx4ZTFzIjoiXHhlMSIpKyJdIExUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbIisoMSE9PXRoaXMu''@;'; + put 'put ''aG91cnMoKT8iXHhlMXMiOiJhIikrIl0gTFQifSxsYXN0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltvbnRlICIrKDEhPT10aGlzLmhvdXJzKCk/Ilx4ZTEiOiJhIikrIl0gTFQifSxsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiJbb10gZGRkZCBbcGFzYWRvICIrKDEhPT10aGlzLmhvdXJzKCk/''@;'; + put 'put ''Ilx4ZTFzIjoiYSIpKyJdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTpmdW5jdGlvbihFKXtyZXR1cm4gMD09PUUuaW5kZXhPZigidW4iKT8ibiIrRToiZW4gIitFfSxwYXN0OiJoYWkgJXMiLHM6InVucyBzZWd1bmRvcyIsc3M6IiVkIHNlZ3VuZG9zIixtOiJ1biBt''@;'; + put 'put ''aW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bmhhIGhvcmEiLGhoOiIlZCBob3JhcyIsZDoidW4gZFx4ZWRhIixkZDoiJWQgZFx4ZWRhcyIsTToidW4gbWVzIixNTToiJWQgbWVzZXMiLHk6InVuIGFubyIseXk6IiVkIGFub3MifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhi''@;'; + put 'put ''YS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw3MjQ1NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKE1lLFUsUSxaKXt2YXIgaWU9e3M6WyJcdTA5MjVcdTA5NGJcdTA5MjFcdTA5MmZcdTA5''@;'; + put 'put ''M2UgXHUwOTM4XHUwOTQ1XHUwOTE1XHUwOTAyXHUwOTIxXHUwOTNlXHUwOTAyXHUwOTI4XHUwOTQwIiwiXHUwOTI1XHUwOTRiXHUwOTIxXHUwOTQ3IFx1MDkzOFx1MDk0NVx1MDkxNVx1MDkwMlx1MDkyMSJdLHNzOltNZSsiIFx1MDkzOFx1MDk0NVx1MDkxNVx1MDkwMlx1MDkyMVx1MDkzZVx1''@;'; + put 'put ''MDkwMlx1MDkyOFx1MDk0MCIsTWUrIiBcdTA5MzhcdTA5NDVcdTA5MTVcdTA5MDJcdTA5MjEiXSxtOlsiXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyZVx1MDkzZlx1MDkyM1x1MDkxZlx1MDkzZVx1MDkyOCIsIlx1MDkwZlx1MDkxNSBcdTA5MmVcdTA5M2ZcdTA5MjhcdTA5NDJcdTA5MWYiXSxt''@;'; + put 'put ''bTpbTWUrIiBcdTA5MmVcdTA5M2ZcdTA5MjNcdTA5MWZcdTA5M2VcdTA5MDJcdTA5MjhcdTA5NDAiLE1lKyIgXHUwOTJlXHUwOTNmXHUwOTIzXHUwOTFmXHUwOTNlXHUwOTAyIl0saDpbIlx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MzVcdTA5MzBcdTA5M2VcdTA5MjgiLCJcdTA5MGZcdTA5MTUg''@;'; + put 'put ''XHUwOTM1XHUwOTMwIl0saGg6W01lKyIgXHUwOTM1XHUwOTMwXHUwOTNlXHUwOTAyXHUwOTI4XHUwOTQwIixNZSsiIFx1MDkzNVx1MDkzMFx1MDkzZVx1MDkwMiJdLGQ6WyJcdTA5MGZcdTA5MTVcdTA5M2UgXHUwOTI2XHUwOTNmXHUwOTM4XHUwOTNlXHUwOTI4IiwiXHUwOTBmXHUwOTE1IFx1''@;'; + put 'put ''MDkyNlx1MDk0MFx1MDkzOCJdLGRkOltNZSsiIFx1MDkyNlx1MDkzZlx1MDkzOFx1MDkzZVx1MDkwMlx1MDkyOFx1MDk0MCIsTWUrIiBcdTA5MjZcdTA5NDBcdTA5MzgiXSxNOlsiXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyZVx1MDk0ZFx1MDkzOVx1MDkyZlx1MDkyOFx1MDk0ZFx1MDkyZlx1''@;'; + put 'put ''MDkzZVx1MDkyOCIsIlx1MDkwZlx1MDkxNSBcdTA5MmVcdTA5NGRcdTA5MzlcdTA5MmZcdTA5MjhcdTA5NGIiXSxNTTpbTWUrIiBcdTA5MmVcdTA5NGRcdTA5MzlcdTA5MmZcdTA5MjhcdTA5NGRcdTA5MmZcdTA5M2VcdTA5MjhcdTA5NDAiLE1lKyIgXHUwOTJlXHUwOTRkXHUwOTM5XHUwOTJm''@;'; + put 'put ''XHUwOTI4XHUwOTQ3Il0seTpbIlx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MzVcdTA5MzBcdTA5NGRcdTA5MzhcdTA5M2VcdTA5MjgiLCJcdTA5MGZcdTA5MTUgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM4Il0seXk6W01lKyIgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM4XHUwOTNlXHUwOTAyXHUw''@;'; + put 'put ''OTI4XHUwOTQwIixNZSsiIFx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzOFx1MDkzZVx1MDkwMiJdfTtyZXR1cm4gWj9pZVtRXVswXTppZVtRXVsxXX1tZS5kZWZpbmVMb2NhbGUoImdvbS1kZXZhIix7bW9udGhzOntzdGFuZGFsb25lOiJcdTA5MWNcdTA5M2VcdTA5MjhcdTA5NDdcdTA5MzVcdTA5''@;'; + put 'put ''M2VcdTA5MzBcdTA5NDBfXHUwOTJiXHUwOTQ3XHUwOTJjXHUwOTRkXHUwOTMwXHUwOTQxXHUwOTM1XHUwOTNlXHUwOTMwXHUwOTQwX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYV9cdTA5MGZcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDBcdTA5MzJfXHUwOTJlXHUwOTQ3X1x1MDkxY1x1''@;'; + put 'put ''MDk0Mlx1MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzJcdTA5MmZfXHUwOTExXHUwOTE3XHUwOTM4XHUwOTRkXHUwOTFmX1x1MDkzOFx1MDkyYVx1MDk0ZFx1MDkxZlx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMF9cdTA5MTFcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGJcdTA5MmNcdTA5MzBfXHUwOTI4''@;'; + put 'put ''XHUwOTRiXHUwOTM1XHUwOTRkXHUwOTM5XHUwOTQ3XHUwOTAyXHUwOTJjXHUwOTMwX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMCIuc3BsaXQoIl8iKSxmb3JtYXQ6Ilx1MDkxY1x1MDkzZVx1MDkyOFx1MDk0N1x1MDkzNVx1MDkzZVx1MDkzMFx1MDk0MFx1MDkx''@;'; + put 'put ''YVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MmJcdTA5NDdcdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDFcdTA5MzVcdTA5M2VcdTA5MzBcdTA5NDBcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNl''@;'; + put 'put ''X1x1MDkwZlx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0MFx1MDkzMlx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MmVcdTA5NDdcdTA5MmZcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTFjXHUwOTQyXHUwOTI4XHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNl''@;'; + put 'put ''X1x1MDkxY1x1MDk0MVx1MDkzMlx1MDkyZlx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MTFcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MWZcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTM4XHUwOTJhXHUwOTRkXHUwOTFmXHUwOTQ3XHUwOTAyXHUwOTJjXHUwOTMw''@;'; + put 'put ''XHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkxMVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Ylx1MDkyY1x1MDkzMFx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MjhcdTA5NGJcdTA5MzVcdTA5NGRcdTA5MzlcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzBcdTA5M2Vc''@;'; + put 'put ''dTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTIxXHUwOTNmXHUwOTM4XHUwOTQ3XHUwOTAyXHUwOTJjXHUwOTMwXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi9NTU1NKFxzKStEW29EXT8vfSxtb250aHNTaG9ydDoiXHUwOTFjXHUwOTNlXHUw''@;'; + put 'put ''OTI4XHUwOTQ3Ll9cdTA5MmJcdTA5NDdcdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDEuX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYV9cdTA5MGZcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDAuX1x1MDkyZVx1MDk0N19cdTA5MWNcdTA5NDJcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyLl9c''@;'; + put 'put ''dTA5MTFcdTA5MTcuX1x1MDkzOFx1MDkyYVx1MDk0ZFx1MDkxZlx1MDk0N1x1MDkwMi5fXHUwOTExXHUwOTE1XHUwOTRkXHUwOTFmXHUwOTRiLl9cdTA5MjhcdTA5NGJcdTA5MzVcdTA5NGRcdTA5MzlcdTA5NDdcdTA5MDIuX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1MDkwMi4iLnNwbGl0''@;'; + put 'put ''KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwOTA2XHUwOTJmXHUwOTI0XHUwOTNlXHUwOTMwX1x1MDkzOFx1MDk0Ylx1MDkyZVx1MDkzZVx1MDkzMF9cdTA5MmVcdTA5MDJcdTA5MTdcdTA5MzNcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTQxXHUwOTI3XHUwOTM1XHUwOTNl''@;'; + put 'put ''XHUwOTMwX1x1MDkyY1x1MDkzZlx1MDkzMFx1MDk0N1x1MDkzOFx1MDk0ZFx1MDkyNFx1MDkzZVx1MDkzMF9cdTA5MzhcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzBcdTA5M2VcdTA5MzBfXHUwOTM2XHUwOTQ3XHUwOTI4XHUwOTM1XHUwOTNlXHUwOTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hv''@;'; + put 'put ''cnQ6Ilx1MDkwNlx1MDkyZlx1MDkyNC5fXHUwOTM4XHUwOTRiXHUwOTJlLl9cdTA5MmVcdTA5MDJcdTA5MTdcdTA5MzMuX1x1MDkyY1x1MDk0MVx1MDkyNy5fXHUwOTJjXHUwOTRkXHUwOTMwXHUwOTQ3XHUwOTM4XHUwOTRkXHUwOTI0Ll9cdTA5MzhcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzAu''@;'; + put 'put ''X1x1MDkzNlx1MDk0N1x1MDkyOC4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDkwNl9cdTA5MzhcdTA5NGJfXHUwOTJlXHUwOTAyX1x1MDkyY1x1MDk0MV9cdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDdfXHUwOTM4XHUwOTQxX1x1MDkzNlx1MDk0NyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Bh''@;'; + put 'put ''cnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0gW1x1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZVx1MDkwMl0iLExUUzoiQSBoOm1tOnNzIFtcdTA5MzVcdTA5M2VcdTA5MWNcdTA5MjRcdTA5M2VcdTA5MDJdIixMOiJERC1NTS1ZWVlZIixMTDoiRCBNTU1NIFlZWVki''@;'; + put 'put ''LExMTDoiRCBNTU1NIFlZWVkgQSBoOm1tIFtcdTA5MzVcdTA5M2VcdTA5MWNcdTA5MjRcdTA5M2VcdTA5MDJdIixMTExMOiJkZGRkLCBNTU1NIERvLCBZWVlZLCBBIGg6bW0gW1x1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZVx1MDkwMl0iLGxsbGw6ImRkZCwgRCBNTU0gWVlZWSwgQSBo''@;'; + put 'put ''Om1tIFtcdTA5MzVcdTA5M2VcdTA5MWNcdTA5MjRcdTA5M2VcdTA5MDJdIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA5MDZcdTA5MmZcdTA5MWNdIExUIixuZXh0RGF5OiJbXHUwOTJiXHUwOTNlXHUwOTMyXHUwOTRkXHUwOTJmXHUwOTNlXHUwOTAyXSBMVCIsbmV4dFdlZWs6IltcdTA5MmJc''@;'; + put 'put ''dTA5NDFcdTA5MjFcdTA5MzJcdTA5NGJdIGRkZGRbLF0gTFQiLGxhc3REYXk6IltcdTA5MTVcdTA5M2VcdTA5MzJdIExUIixsYXN0V2VlazoiW1x1MDkyYlx1MDkzZVx1MDkxZlx1MDkzMlx1MDk0Yl0gZGRkZFssXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMi''@;'; + put 'put ''LHBhc3Q6IiVzIFx1MDkwNlx1MDkyNlx1MDk0MFx1MDkwMiIsczpCLHNzOkIsbTpCLG1tOkIsaDpCLGhoOkIsZDpCLGRkOkIsTTpCLE1NOkIseTpCLHl5OkJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oXHUwOTM1XHUwOTQ3XHUwOTMwKS8sb3JkaW5hbDpmdW5jdGlvbihNZSxV''@;'; + put 'put ''KXtyZXR1cm4iRCI9PT1VP01lKyJcdTA5MzVcdTA5NDdcdTA5MzAiOk1lfSx3ZWVrOntkb3c6MCxkb3k6M30sbWVyaWRpZW1QYXJzZTovXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTQwfFx1MDkzOFx1MDkxNVx1MDkzZVx1MDkzM1x1MDk0MFx1MDkwMnxcdTA5MjZcdTA5MjhcdTA5MmFcdTA5M2Vc''@;'; + put 'put ''dTA5MzBcdTA5M2VcdTA5MDJ8XHUwOTM4XHUwOTNlXHUwOTAyXHUwOTFjXHUwOTQ3LyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oTWUsVSl7cmV0dXJuIDEyPT09TWUmJihNZT0wKSwiXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTQwIj09PVU/TWU8ND9NZTpNZSsxMjoiXHUwOTM4XHUwOTE1XHUwOTNl''@;'; + put 'put ''XHUwOTMzXHUwOTQwXHUwOTAyIj09PVU/TWU6Ilx1MDkyNlx1MDkyOFx1MDkyYVx1MDkzZVx1MDkzMFx1MDkzZVx1MDkwMiI9PT1VP01lPjEyP01lOk1lKzEyOiJcdTA5MzhcdTA5M2VcdTA5MDJcdTA5MWNcdTA5NDciPT09VT9NZSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKE1lLFUs''@;'; + put 'put ''USl7cmV0dXJuIE1lPDQ/Ilx1MDkzMFx1MDkzZVx1MDkyNFx1MDk0MCI6TWU8MTI/Ilx1MDkzOFx1MDkxNVx1MDkzZVx1MDkzM1x1MDk0MFx1MDkwMiI6TWU8MTY/Ilx1MDkyNlx1MDkyOFx1MDkyYVx1MDkzZVx1MDkzMFx1MDkzZVx1MDkwMiI6TWU8MjA/Ilx1MDkzOFx1MDkzZVx1MDkwMlx1''@;'; + put 'put ''MDkxY1x1MDk0NyI6Ilx1MDkzMFx1MDkzZVx1MDkyNFx1MDk0MCJ9fSl9KEwoMTU0MzkpKX0sNTI1NDU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihNZSxVLFEsWil7dmFyIGllPXtzOlsidGhvZGRlYSBzZWtvbmRhbW5pIiwidGhvZGRl''@;'; + put 'put ''IHNla29uZCJdLHNzOltNZSsiIHNla29uZGFtbmkiLE1lKyIgc2Vrb25kIl0sbTpbImVrYSBtaW50YW4iLCJlayBtaW51dCJdLG1tOltNZSsiIG1pbnRhbW5pIixNZSsiIG1pbnRhbSJdLGg6WyJla2Egdm9yYW4iLCJlayB2b3IiXSxoaDpbTWUrIiB2b3JhbW5pIixNZSsiIHZvcmFtIl0sZDpb''@;'; + put 'put ''ImVrYSBkaXNhbiIsImVrIGRpcyJdLGRkOltNZSsiIGRpc2FtbmkiLE1lKyIgZGlzIl0sTTpbImVrYSBtaG9pbmVhbiIsImVrIG1ob2lubyJdLE1NOltNZSsiIG1ob2luZWFtbmkiLE1lKyIgbWhvaW5lIl0seTpbImVrYSB2b3JzYW4iLCJlayB2b3JvcyJdLHl5OltNZSsiIHZvcnNhbW5pIixN''@;'; + put 'put ''ZSsiIHZvcnNhbSJdfTtyZXR1cm4gWj9pZVtRXVswXTppZVtRXVsxXX1tZS5kZWZpbmVMb2NhbGUoImdvbS1sYXRuIix7bW9udGhzOntzdGFuZGFsb25lOiJKYW5lcl9GZWJyZXJfTWFyc19BYnJpbF9NYWlfSnVuX0p1bGFpX0Fnb3N0X1NldGVtYnJfT3R1YnJfTm92ZW1icl9EZXplbWJyIi5z''@;'; + put 'put ''cGxpdCgiXyIpLGZvcm1hdDoiSmFuZXJhY2hlYV9GZWJyZXJhY2hlYV9NYXJzYWNoZWFfQWJyaWxhY2hlYV9NYWlhY2hlYV9KdW5hY2hlYV9KdWxhaWFjaGVhX0Fnb3N0YWNoZWFfU2V0ZW1icmFjaGVhX090dWJyYWNoZWFfTm92ZW1icmFjaGVhX0RlemVtYnJhY2hlYSIuc3BsaXQoIl8iKSxp''@;'; + put 'put ''c0Zvcm1hdDovTU1NTShccykrRFtvRF0/L30sbW9udGhzU2hvcnQ6Ikphbi5fRmViLl9NYXJzX0Fici5fTWFpX0p1bl9KdWwuX0Fnby5fU2V0Ll9PdHUuX05vdi5fRGV6LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJBaXRhcl9Tb21hcl9Nb25nbGxhcl9CdWRo''@;'; + put 'put ''dmFyX0JpcmVzdGFyX1N1a3Jhcl9Tb24ndmFyIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkFpdC5fU29tLl9Nb24uX0J1ZC5fQnJlLl9TdWsuX1Nvbi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkFpX1NtX01vX0J1X0JyX1N1X1NuIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFj''@;'; + put 'put ''dDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBbdmF6dGFdIixMVFM6IkEgaDptbTpzcyBbdmF6dGFdIixMOiJERC1NTS1ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgQSBoOm1tIFt2YXp0YV0iLExMTEw6ImRkZGQsIE1NTU0gRG8sIFlZWVksIEEgaDptbSBb''@;'; + put 'put ''dmF6dGFdIixsbGxsOiJkZGQsIEQgTU1NIFlZWVksIEEgaDptbSBbdmF6dGFdIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltBaXpdIExUIixuZXh0RGF5OiJbRmFsZWFtXSBMVCIsbmV4dFdlZWs6IltGdWRkbG9dIGRkZGRbLF0gTFQiLGxhc3REYXk6IltLYWxdIExUIixsYXN0V2VlazoiW0ZhdHRs''@;'; + put 'put ''b10gZGRkZFssXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMiLHBhc3Q6IiVzIGFkaW0iLHM6QixzczpCLG06QixtbTpCLGg6QixoaDpCLGQ6QixkZDpCLE06QixNTTpCLHk6Qix5eTpCfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KGVyKS8sb3Jk''@;'; + put 'put ''aW5hbDpmdW5jdGlvbihNZSxVKXtyZXR1cm4iRCI9PT1VP01lKyJlciI6TWV9LHdlZWs6e2RvdzowLGRveTozfSxtZXJpZGllbVBhcnNlOi9yYXRpfHNva2FsbGltfGRvbnBhcmFtfHNhbmplLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oTWUsVSl7cmV0dXJuIDEyPT09TWUmJihNZT0wKSwicmF0''@;'; + put 'put ''aSI9PT1VP01lPDQ/TWU6TWUrMTI6InNva2FsbGltIj09PVU/TWU6ImRvbnBhcmFtIj09PVU/TWU+MTI/TWU6TWUrMTI6InNhbmplIj09PVU/TWUrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihNZSxVLFEpe3JldHVybiBNZTw0PyJyYXRpIjpNZTwxMj8ic29rYWxsaW0iOk1lPDE2PyJk''@;'; + put 'put ''b25wYXJhbSI6TWU8MjA/InNhbmplIjoicmF0aSJ9fSl9KEwoMTU0MzkpKX0sNDI2NDE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ilx1MGFlNyIsMjoiXHUwYWU4IiwzOiJcdTBhZTkiLDQ6Ilx1MGFlYSIsNToiXHUwYWViIiw2OiJcdTBh''@;'; + put 'put ''ZWMiLDc6Ilx1MGFlZCIsODoiXHUwYWVlIiw5OiJcdTBhZWYiLDA6Ilx1MGFlNiJ9LEU9eyJcdTBhZTciOiIxIiwiXHUwYWU4IjoiMiIsIlx1MGFlOSI6IjMiLCJcdTBhZWEiOiI0IiwiXHUwYWViIjoiNSIsIlx1MGFlYyI6IjYiLCJcdTBhZWQiOiI3IiwiXHUwYWVlIjoiOCIsIlx1MGFlZiI6''@;'; + put 'put ''IjkiLCJcdTBhZTYiOiIwIn07bWUuZGVmaW5lTG9jYWxlKCJndSIse21vbnRoczoiXHUwYTljXHUwYWJlXHUwYWE4XHUwYWNkXHUwYWFmXHUwYWMxXHUwYTg2XHUwYWIwXHUwYWMwX1x1MGFhYlx1MGFjN1x1MGFhY1x1MGFjZFx1MGFiMFx1MGFjMVx1MGE4Nlx1MGFiMFx1MGFjMF9cdTBhYWVc''@;'; + put 'put ''dTBhYmVcdTBhYjBcdTBhY2RcdTBhOWFfXHUwYThmXHUwYWFhXHUwYWNkXHUwYWIwXHUwYWJmXHUwYWIyX1x1MGFhZVx1MGFjN19cdTBhOWNcdTBhYzJcdTBhYThfXHUwYTljXHUwYWMxXHUwYWIyXHUwYWJlXHUwYTg4X1x1MGE5MVx1MGE5N1x1MGFiOFx1MGFjZFx1MGE5Zl9cdTBhYjhcdTBh''@;'; + put 'put ''YWFcdTBhY2RcdTBhOWZcdTBhYzdcdTBhYWVcdTBhY2RcdTBhYWNcdTBhYjBfXHUwYTkxXHUwYTk1XHUwYWNkXHUwYTlmXHUwYWNkXHUwYWFjXHUwYWIwX1x1MGFhOFx1MGFiNVx1MGFjN1x1MGFhZVx1MGFjZFx1MGFhY1x1MGFiMF9cdTBhYTFcdTBhYmZcdTBhYjhcdTBhYzdcdTBhYWVcdTBh''@;'; + put 'put ''Y2RcdTBhYWNcdTBhYjAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MGE5Y1x1MGFiZVx1MGFhOFx1MGFjZFx1MGFhZlx1MGFjMS5fXHUwYWFiXHUwYWM3XHUwYWFjXHUwYWNkXHUwYWIwXHUwYWMxLl9cdTBhYWVcdTBhYmVcdTBhYjBcdTBhY2RcdTBhOWFfXHUwYThmXHUwYWFhXHUwYWNk''@;'; + put 'put ''XHUwYWIwXHUwYWJmLl9cdTBhYWVcdTBhYzdfXHUwYTljXHUwYWMyXHUwYWE4X1x1MGE5Y1x1MGFjMVx1MGFiMlx1MGFiZS5fXHUwYTkxXHUwYTk3Ll9cdTBhYjhcdTBhYWFcdTBhY2RcdTBhOWZcdTBhYzcuX1x1MGE5MVx1MGE5NVx1MGFjZFx1MGE5Zlx1MGFjZC5fXHUwYWE4XHUwYWI1XHUw''@;'; + put 'put ''YWM3Ll9cdTBhYTFcdTBhYmZcdTBhYjhcdTBhYzcuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MGFiMFx1MGFiNVx1MGFiZlx1MGFiNVx1MGFiZVx1MGFiMF9cdTBhYjhcdTBhY2JcdTBhYWVcdTBhYjVcdTBhYmVcdTBhYjBfXHUwYWFlXHUwYTgyXHUwYTk3''@;'; + put 'put ''XHUwYWIzXHUwYWI1XHUwYWJlXHUwYWIwX1x1MGFhY1x1MGFjMVx1MGFhN1x1MGFjZFx1MGFiNVx1MGFiZVx1MGFiMF9cdTBhOTdcdTBhYzFcdTBhYjBcdTBhYzFcdTBhYjVcdTBhYmVcdTBhYjBfXHUwYWI2XHUwYWMxXHUwYTk1XHUwYWNkXHUwYWIwXHUwYWI1XHUwYWJlXHUwYWIwX1x1MGFi''@;'; + put 'put ''Nlx1MGFhOFx1MGFiZlx1MGFiNVx1MGFiZVx1MGFiMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBhYjBcdTBhYjVcdTBhYmZfXHUwYWI4XHUwYWNiXHUwYWFlX1x1MGFhZVx1MGE4Mlx1MGE5N1x1MGFiM19cdTBhYWNcdTBhYzFcdTBhYTdcdTBhY2RfXHUwYTk3XHUwYWMxXHUwYWIw''@;'; + put 'put ''XHUwYWMxX1x1MGFiNlx1MGFjMVx1MGE5NVx1MGFjZFx1MGFiMF9cdTBhYjZcdTBhYThcdTBhYmYiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGFiMF9cdTBhYjhcdTBhY2JfXHUwYWFlXHUwYTgyX1x1MGFhY1x1MGFjMV9cdTBhOTdcdTBhYzFfXHUwYWI2XHUwYWMxX1x1MGFiNiIuc3Bs''@;'; + put 'put ''aXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBcdTBhYjVcdTBhYmVcdTBhOTdcdTBhY2RcdTBhYWZcdTBhYzciLExUUzoiQSBoOm1tOnNzIFx1MGFiNVx1MGFiZVx1MGE5N1x1MGFjZFx1MGFhZlx1MGFjNyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQg''@;'; + put 'put ''TU1NTSBZWVlZLCBBIGg6bW0gXHUwYWI1XHUwYWJlXHUwYTk3XHUwYWNkXHUwYWFmXHUwYWM3IixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MGFiNVx1MGFiZVx1MGE5N1x1MGFjZFx1MGFhZlx1MGFjNyJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwYTg2XHUwYTljXSBMVCIs''@;'; + put 'put ''bmV4dERheToiW1x1MGE5NVx1MGFiZVx1MGFiMlx1MGFjN10gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MGE5N1x1MGE4N1x1MGE5NVx1MGFiZVx1MGFiMlx1MGFjN10gTFQiLGxhc3RXZWVrOiJbXHUwYWFhXHUwYWJlXHUwYTliXHUwYWIyXHUwYWJlXSBkZGRkLCBMVCIs''@;'; + put 'put ''c2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwYWFlXHUwYWJlIixwYXN0OiIlcyBcdTBhYWFcdTBhYjlcdTBhYzdcdTBhYjJcdTBhYmUiLHM6Ilx1MGE4NVx1MGFhZVx1MGFjMVx1MGE5NSBcdTBhYWFcdTBhYjNcdTBhY2IiLHNzOiIlZCBcdTBhYjhcdTBhYzdcdTBh''@;'; + put 'put ''OTVcdTBhODJcdTBhYTEiLG06Ilx1MGE4Zlx1MGE5NSBcdTBhYWVcdTBhYmZcdTBhYThcdTBhYmZcdTBhOWYiLG1tOiIlZCBcdTBhYWVcdTBhYmZcdTBhYThcdTBhYmZcdTBhOWYiLGg6Ilx1MGE4Zlx1MGE5NSBcdTBhOTVcdTBhYjJcdTBhYmVcdTBhOTUiLGhoOiIlZCBcdTBhOTVcdTBhYjJc''@;'; + put 'put ''dTBhYmVcdTBhOTUiLGQ6Ilx1MGE4Zlx1MGE5NSBcdTBhYTZcdTBhYmZcdTBhYjVcdTBhYjgiLGRkOiIlZCBcdTBhYTZcdTBhYmZcdTBhYjVcdTBhYjgiLE06Ilx1MGE4Zlx1MGE5NSBcdTBhYWVcdTBhYjlcdTBhYmZcdTBhYThcdTBhY2IiLE1NOiIlZCBcdTBhYWVcdTBhYjlcdTBhYmZcdTBh''@;'; + put 'put ''YThcdTBhY2IiLHk6Ilx1MGE4Zlx1MGE5NSBcdTBhYjVcdTBhYjBcdTBhY2RcdTBhYjciLHl5OiIlZCBcdTBhYjVcdTBhYjBcdTBhY2RcdTBhYjcifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9bXHUwYWU3XHUwYWU4XHUwYWU5XHUwYWVhXHUwYWViXHUwYWVjXHUw''@;'; + put 'put ''YWVkXHUwYWVlXHUwYWVmXHUwYWU2XS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0pfSxtZXJpZGllbVBhcnNlOi9cdTBhYjBcdTBhYmVcdTBhYTR8XHUwYWFj''@;'; + put 'put ''XHUwYWFhXHUwYWNiXHUwYWIwfFx1MGFiOFx1MGFiNVx1MGFiZVx1MGFiMHxcdTBhYjhcdTBhYmVcdTBhODJcdTBhOWMvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihVLFEpe3JldHVybiAxMj09PVUmJihVPTApLCJcdTBhYjBcdTBhYmVcdTBhYTQiPT09UT9VPDQ/VTpVKzEyOiJcdTBhYjhcdTBh''@;'; + put 'put ''YjVcdTBhYmVcdTBhYjAiPT09UT9VOiJcdTBhYWNcdTBhYWFcdTBhY2JcdTBhYjAiPT09UT9VPj0xMD9VOlUrMTI6Ilx1MGFiOFx1MGFiZVx1MGE4Mlx1MGE5YyI9PT1RP1UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsWil7cmV0dXJuIFU8ND8iXHUwYWIwXHUwYWJlXHUwYWE0''@;'; + put 'put ''IjpVPDEwPyJcdTBhYjhcdTBhYjVcdTBhYmVcdTBhYjAiOlU8MTc/Ilx1MGFhY1x1MGFhYVx1MGFjYlx1MGFiMCI6VTwyMD8iXHUwYWI4XHUwYWJlXHUwYTgyXHUwYTljIjoiXHUwYWIwXHUwYWJlXHUwYWE0In0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sNzUzNjpmdW5jdGlv''@;'; + put 'put ''bihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImhlIix7bW9udGhzOiJcdTA1ZDlcdTA1ZTBcdTA1ZDVcdTA1ZDBcdTA1ZThfXHUwNWU0XHUwNWQxXHUwNWU4XHUwNWQ1XHUwNWQwXHUwNWU4X1x1MDVkZVx1MDVlOFx1MDVlNV9cdTA1ZDBcdTA1''@;'; + put 'put ''ZTRcdTA1ZThcdTA1ZDlcdTA1ZGNfXHUwNWRlXHUwNWQwXHUwNWQ5X1x1MDVkOVx1MDVkNVx1MDVlMFx1MDVkOV9cdTA1ZDlcdTA1ZDVcdTA1ZGNcdTA1ZDlfXHUwNWQwXHUwNWQ1XHUwNWQyXHUwNWQ1XHUwNWUxXHUwNWQ4X1x1MDVlMVx1MDVlNFx1MDVkOFx1MDVkZVx1MDVkMVx1MDVlOF9c''@;'; + put 'put ''dTA1ZDBcdTA1ZDVcdTA1ZTdcdTA1ZDhcdTA1ZDVcdTA1ZDFcdTA1ZThfXHUwNWUwXHUwNWQ1XHUwNWQxXHUwNWRlXHUwNWQxXHUwNWU4X1x1MDVkM1x1MDVlNlx1MDVkZVx1MDVkMVx1MDVlOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNWQ5XHUwNWUwXHUwNWQ1XHUwNWYzX1x1MDVl''@;'; + put 'put ''NFx1MDVkMVx1MDVlOFx1MDVmM19cdTA1ZGVcdTA1ZThcdTA1ZTVfXHUwNWQwXHUwNWU0XHUwNWU4XHUwNWYzX1x1MDVkZVx1MDVkMFx1MDVkOV9cdTA1ZDlcdTA1ZDVcdTA1ZTBcdTA1ZDlfXHUwNWQ5XHUwNWQ1XHUwNWRjXHUwNWQ5X1x1MDVkMFx1MDVkNVx1MDVkMlx1MDVmM19cdTA1ZTFc''@;'; + put 'put ''dTA1ZTRcdTA1ZDhcdTA1ZjNfXHUwNWQwXHUwNWQ1XHUwNWU3XHUwNWYzX1x1MDVlMFx1MDVkNVx1MDVkMVx1MDVmM19cdTA1ZDNcdTA1ZTZcdTA1ZGVcdTA1ZjMiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDVlOFx1MDVkMFx1MDVlOVx1MDVkNVx1MDVkZl9cdTA1ZTlcdTA1ZTBcdTA1ZDlf''@;'; + put 'put ''XHUwNWU5XHUwNWRjXHUwNWQ5XHUwNWU5XHUwNWQ5X1x1MDVlOFx1MDVkMVx1MDVkOVx1MDVlMlx1MDVkOV9cdTA1ZDdcdTA1ZGVcdTA1ZDlcdTA1ZTlcdTA1ZDlfXHUwNWU5XHUwNWQ5XHUwNWU5XHUwNWQ5X1x1MDVlOVx1MDVkMVx1MDVlYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJc''@;'; + put 'put ''dTA1ZDBcdTA1ZjNfXHUwNWQxXHUwNWYzX1x1MDVkMlx1MDVmM19cdTA1ZDNcdTA1ZjNfXHUwNWQ0XHUwNWYzX1x1MDVkNVx1MDVmM19cdTA1ZTlcdTA1ZjMiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDVkMF9cdTA1ZDFfXHUwNWQyX1x1MDVkM19cdTA1ZDRfXHUwNWQ1X1x1MDVlOSIu''@;'; + put 'put ''c3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBbXHUwNWQxXU1NTU0gWVlZWSIsTExMOiJEIFtcdTA1ZDFdTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIFtcdTA1ZDFdTU1NTSBZWVlZIEhIOm1tIixs''@;'; + put 'put ''OiJEL00vWVlZWSIsbGw6IkQgTU1NIFlZWVkiLGxsbDoiRCBNTU0gWVlZWSBISDptbSIsbGxsbDoiZGRkLCBEIE1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA1ZDRcdTA1ZDlcdTA1ZDVcdTA1ZGQgXHUwNWQxXHUwNWJlXUxUIixuZXh0RGF5OiJbXHUwNWRlXHUwNWQ3''@;'; + put 'put ''XHUwNWU4IFx1MDVkMVx1MDViZV1MVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDVkMVx1MDVlOVx1MDVlMlx1MDVkNF0gTFQiLGxhc3REYXk6IltcdTA1ZDBcdTA1ZWFcdTA1ZGVcdTA1ZDVcdTA1ZGMgXHUwNWQxXHUwNWJlXUxUIixsYXN0V2VlazoiW1x1MDVkMVx1MDVkOVx1MDVkNVx1MDVkZF0g''@;'; + put 'put ''ZGRkZCBbXHUwNWQ0XHUwNWQwXHUwNWQ3XHUwNWU4XHUwNWQ1XHUwNWRmIFx1MDVkMVx1MDVlOVx1MDVlMlx1MDVkNF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDVkMVx1MDVlMlx1MDVkNVx1MDVkMyAlcyIscGFzdDoiXHUwNWRjXHUwNWU0XHUwNWUwXHUw''@;'; + put 'put ''NWQ5ICVzIixzOiJcdTA1ZGVcdTA1ZTFcdTA1ZTRcdTA1ZTggXHUwNWU5XHUwNWUwXHUwNWQ5XHUwNWQ1XHUwNWVhIixzczoiJWQgXHUwNWU5XHUwNWUwXHUwNWQ5XHUwNWQ1XHUwNWVhIixtOiJcdTA1ZDNcdTA1ZTdcdTA1ZDQiLG1tOiIlZCBcdTA1ZDNcdTA1ZTdcdTA1ZDVcdTA1ZWEiLGg6''@;'; + put 'put ''Ilx1MDVlOVx1MDVlMlx1MDVkNCIsaGg6ZnVuY3Rpb24oRSl7cmV0dXJuIDI9PT1FPyJcdTA1ZTlcdTA1ZTJcdTA1ZWFcdTA1ZDlcdTA1ZDlcdTA1ZGQiOkUrIiBcdTA1ZTlcdTA1ZTJcdTA1ZDVcdTA1ZWEifSxkOiJcdTA1ZDlcdTA1ZDVcdTA1ZGQiLGRkOmZ1bmN0aW9uKEUpe3JldHVybiAy''@;'; + put 'put ''PT09RT8iXHUwNWQ5XHUwNWQ1XHUwNWRlXHUwNWQ5XHUwNWQ5XHUwNWRkIjpFKyIgXHUwNWQ5XHUwNWRlXHUwNWQ5XHUwNWRkIn0sTToiXHUwNWQ3XHUwNWQ1XHUwNWQzXHUwNWU5IixNTTpmdW5jdGlvbihFKXtyZXR1cm4gMj09PUU/Ilx1MDVkN1x1MDVkNVx1MDVkM1x1MDVlOVx1MDVkOVx1''@;'; + put 'put ''MDVkOVx1MDVkZCI6RSsiIFx1MDVkN1x1MDVkNVx1MDVkM1x1MDVlOVx1MDVkOVx1MDVkZCJ9LHk6Ilx1MDVlOVx1MDVlMFx1MDVkNCIseXk6ZnVuY3Rpb24oRSl7cmV0dXJuIDI9PT1FPyJcdTA1ZTlcdTA1ZTBcdTA1ZWFcdTA1ZDlcdTA1ZDlcdTA1ZGQiOkUlMTA9PTAmJjEwIT09RT9FKyIg''@;'; + put 'put ''XHUwNWU5XHUwNWUwXHUwNWQ0IjpFKyIgXHUwNWU5XHUwNWUwXHUwNWQ5XHUwNWRkIn19LG1lcmlkaWVtUGFyc2U6L1x1MDVkMFx1MDVkN1x1MDVkNCJcdTA1ZTZ8XHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ0Ilx1MDVlNnxcdTA1ZDBcdTA1ZDdcdTA1ZThcdTA1ZDkgXHUwNWQ0XHUwNWU2XHUw''@;'; + put 'put ''NWQ0XHUwNWU4XHUwNWQ5XHUwNWQ5XHUwNWRkfFx1MDVkY1x1MDVlNFx1MDVlMFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGR8XHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ1XHUwNWVhIFx1MDVkMVx1MDVkNVx1MDVlN1x1MDVlOHxcdTA1ZDFcdTA1ZDFc''@;'; + put 'put ''dTA1ZDVcdTA1ZTdcdTA1ZTh8XHUwNWQxXHUwNWUyXHUwNWU4XHUwNWQxL2ksaXNQTTpmdW5jdGlvbihFKXtyZXR1cm4vXihcdTA1ZDBcdTA1ZDdcdTA1ZDQiXHUwNWU2fFx1MDVkMFx1MDVkN1x1MDVlOFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGR8''@;'; + put 'put ''XHUwNWQxXHUwNWUyXHUwNWU4XHUwNWQxKSQvLnRlc3QoRSl9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEU8NT8iXHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ1XHUwNWVhIFx1MDVkMVx1MDVkNVx1MDVlN1x1MDVlOCI6RTwxMD8iXHUwNWQxXHUwNWQxXHUwNWQ1XHUwNWU3XHUw''@;'; + put 'put ''NWU4IjpFPDEyP1U/J1x1MDVkY1x1MDVlNFx1MDVlMFx1MDVkNCJcdTA1ZTYnOiJcdTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDkgXHUwNWQ0XHUwNWU2XHUwNWQ0XHUwNWU4XHUwNWQ5XHUwNWQ5XHUwNWRkIjpFPDE4P1U/J1x1MDVkMFx1MDVkN1x1MDVkNCJcdTA1ZTYnOiJcdTA1ZDBcdTA1ZDdc''@;'; + put 'put ''dTA1ZThcdTA1ZDkgXHUwNWQ0XHUwNWU2XHUwNWQ0XHUwNWU4XHUwNWQ5XHUwNWQ5XHUwNWRkIjoiXHUwNWQxXHUwNWUyXHUwNWU4XHUwNWQxIn19KX0oTCgxNTQzOSkpfSw5NjMzNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwOTY3''@;'; + put 'put ''IiwyOiJcdTA5NjgiLDM6Ilx1MDk2OSIsNDoiXHUwOTZhIiw1OiJcdTA5NmIiLDY6Ilx1MDk2YyIsNzoiXHUwOTZkIiw4OiJcdTA5NmUiLDk6Ilx1MDk2ZiIsMDoiXHUwOTY2In0sRT17Ilx1MDk2NyI6IjEiLCJcdTA5NjgiOiIyIiwiXHUwOTY5IjoiMyIsIlx1MDk2YSI6IjQiLCJcdTA5NmIi''@;'; + put 'put ''OiI1IiwiXHUwOTZjIjoiNiIsIlx1MDk2ZCI6IjciLCJcdTA5NmUiOiI4IiwiXHUwOTZmIjoiOSIsIlx1MDk2NiI6IjAifSxNZT1bL15cdTA5MWNcdTA5MjgvaSwvXlx1MDkyYlx1MDkzY1x1MDkzMHxcdTA5MmJcdTA5MzAvaSwvXlx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYS9pLC9e''@;'; + put 'put ''XHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4L2ksL15cdTA5MmVcdTA5MDgvaSwvXlx1MDkxY1x1MDk0Mlx1MDkyOC9pLC9eXHUwOTFjXHUwOTQxXHUwOTMyL2ksL15cdTA5MDVcdTA5MTcvaSwvXlx1MDkzOFx1MDkzZlx1MDkyNFx1MDkwMnxcdTA5MzhcdTA5M2ZcdTA5MjQvaSwvXlx1''@;'; + put 'put ''MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mi9pLC9eXHUwOTI4XHUwOTM1fFx1MDkyOFx1MDkzNVx1MDkwMi9pLC9eXHUwOTI2XHUwOTNmXHUwOTM4XHUwOTAyfFx1MDkyNlx1MDkzZlx1MDkzOC9pXTttZS5kZWZpbmVMb2NhbGUoImhpIix7bW9udGhzOntmb3JtYXQ6Ilx1MDkxY1x1MDky''@;'; + put 'put ''OFx1MDkzNVx1MDkzMFx1MDk0MF9cdTA5MmJcdTA5M2NcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDBfXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OFx1MDkzMl9cdTA5MmVcdTA5MDhfXHUwOTFjXHUwOTQyXHUwOTI4X1x1MDkxY1x1''@;'; + put 'put ''MDk0MVx1MDkzMlx1MDkzZVx1MDkwOF9cdTA5MDVcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MjRfXHUwOTM4XHUwOTNmXHUwOTI0XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwX1x1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mlx1MDkyY1x1MDkzMF9cdTA5MjhcdTA5MzVcdTA5MmVcdTA5NGRc''@;'; + put 'put ''dTA5MmNcdTA5MzBfXHUwOTI2XHUwOTNmXHUwOTM4XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6Ilx1MDkxY1x1MDkyOFx1MDkzNVx1MDkzMFx1MDk0MF9cdTA5MmJcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDBfXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRk''@;'; + put 'put ''XHUwOTFhX1x1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OFx1MDkzMl9cdTA5MmVcdTA5MDhfXHUwOTFjXHUwOTQyXHUwOTI4X1x1MDkxY1x1MDk0MVx1MDkzMlx1MDkzZVx1MDkwOF9cdTA5MDVcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MjRfXHUwOTM4XHUwOTNmXHUwOTI0XHUwOTAyXHUw''@;'; + put 'put ''OTJjXHUwOTMwX1x1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mlx1MDkyY1x1MDkzMF9cdTA5MjhcdTA5MzVcdTA5MDJcdTA5MmNcdTA5MzBfXHUwOTI2XHUwOTNmXHUwOTM4XHUwOTAyXHUwOTJjXHUwOTMwIi5zcGxpdCgiXyIpfSxtb250aHNTaG9ydDoiXHUwOTFjXHUwOTI4Ll9cdTA5''@;'; + put 'put ''MmJcdTA5M2NcdTA5MzAuX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYV9cdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDguX1x1MDkyZVx1MDkwOF9cdTA5MWNcdTA5NDJcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyLl9cdTA5MDVcdTA5MTcuX1x1MDkzOFx1MDkzZlx1MDkyNC5f''@;'; + put 'put ''XHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyLl9cdTA5MjhcdTA5MzUuX1x1MDkyNlx1MDkzZlx1MDkzOC4iLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDkzMFx1MDkzNVx1MDkzZlx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MzhcdTA5NGJcdTA5MmVcdTA5MzVcdTA5M2VcdTA5MzBfXHUw''@;'; + put 'put ''OTJlXHUwOTAyXHUwOTE3XHUwOTMyXHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkyY1x1MDk0MVx1MDkyN1x1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MTdcdTA5NDFcdTA5MzBcdTA5NDJcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTM2XHUwOTQxXHUwOTE1XHUwOTRkXHUwOTMwXHUwOTM1XHUwOTNlXHUw''@;'; + put 'put ''OTMwX1x1MDkzNlx1MDkyOFx1MDkzZlx1MDkzNVx1MDkzZVx1MDkzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA5MzBcdTA5MzVcdTA5M2ZfXHUwOTM4XHUwOTRiXHUwOTJlX1x1MDkyZVx1MDkwMlx1MDkxN1x1MDkzMl9cdTA5MmNcdTA5NDFcdTA5MjdfXHUwOTE3XHUwOTQxXHUw''@;'; + put 'put ''OTMwXHUwOTQyX1x1MDkzNlx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMF9cdTA5MzZcdTA5MjhcdTA5M2YiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDkzMF9cdTA5MzhcdTA5NGJfXHUwOTJlXHUwOTAyX1x1MDkyY1x1MDk0MV9cdTA5MTdcdTA5NDFfXHUwOTM2XHUwOTQxX1x1MDkzNiIu''@;'; + put 'put ''c3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBcdTA5MmNcdTA5MWNcdTA5NDciLExUUzoiQSBoOm1tOnNzIFx1MDkyY1x1MDkxY1x1MDk0NyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOTJjXHUwOTFjXHUw''@;'; + put 'put ''OTQ3IixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MDkyY1x1MDkxY1x1MDk0NyJ9LG1vbnRoc1BhcnNlOk1lLGxvbmdNb250aHNQYXJzZTpNZSxzaG9ydE1vbnRoc1BhcnNlOlsvXlx1MDkxY1x1MDkyOC9pLC9eXHUwOTJiXHUwOTNjXHUwOTMwL2ksL15cdTA5MmVcdTA5M2Vc''@;'; + put 'put ''dTA5MzBcdTA5NGRcdTA5MWEvaSwvXlx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OC9pLC9eXHUwOTJlXHUwOTA4L2ksL15cdTA5MWNcdTA5NDJcdTA5MjgvaSwvXlx1MDkxY1x1MDk0MVx1MDkzMi9pLC9eXHUwOTA1XHUwOTE3L2ksL15cdTA5MzhcdTA5M2ZcdTA5MjQvaSwvXlx1MDkw''@;'; + put 'put ''NVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mi9pLC9eXHUwOTI4XHUwOTM1L2ksL15cdTA5MjZcdTA5M2ZcdTA5MzgvaV0sbW9udGhzUmVnZXg6L14oXHUwOTFjXHUwOTI4XHUwOTM1XHUwOTMwXHUwOTQwfFx1MDkxY1x1MDkyOFwuP3xcdTA5MmJcdTA5M2NcdTA5MzBcdTA5MzVcdTA5MzBcdTA5''@;'; + put 'put ''NDB8XHUwOTJiXHUwOTMwXHUwOTM1XHUwOTMwXHUwOTQwfFx1MDkyYlx1MDkzY1x1MDkzMFwuP3xcdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWE/fFx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OFx1MDkzMnxcdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDhcLj98XHUwOTJl''@;'; + put 'put ''XHUwOTA4P3xcdTA5MWNcdTA5NDJcdTA5Mjg/fFx1MDkxY1x1MDk0MVx1MDkzMlx1MDkzZVx1MDkwOHxcdTA5MWNcdTA5NDFcdTA5MzJcLj98XHUwOTA1XHUwOTE3XHUwOTM4XHUwOTRkXHUwOTI0fFx1MDkwNVx1MDkxN1wuP3xcdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MmVcdTA5NGRcdTA5MmNc''@;'; + put 'put ''dTA5MzB8XHUwOTM4XHUwOTNmXHUwOTI0XHUwOTAyXHUwOTJjXHUwOTMwfFx1MDkzOFx1MDkzZlx1MDkyNFwuP3xcdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcdTA5MmNcdTA5MzB8XHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyXC4/fFx1MDkyOFx1MDkzNVx1MDkyZVx1MDk0''@;'; + put 'put ''ZFx1MDkyY1x1MDkzMHxcdTA5MjhcdTA5MzVcdTA5MDJcdTA5MmNcdTA5MzB8XHUwOTI4XHUwOTM1XC4/fFx1MDkyNlx1MDkzZlx1MDkzOFx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMHxcdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MDJcdTA5MmNcdTA5MzB8XHUwOTI2XHUwOTNmXHUwOTM4XC4/KS9p''@;'; + put 'put ''LG1vbnRoc1Nob3J0UmVnZXg6L14oXHUwOTFjXHUwOTI4XHUwOTM1XHUwOTMwXHUwOTQwfFx1MDkxY1x1MDkyOFwuP3xcdTA5MmJcdTA5M2NcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJiXHUwOTMwXHUwOTM1XHUwOTMwXHUwOTQwfFx1MDkyYlx1MDkzY1x1MDkzMFwuP3xcdTA5MmVc''@;'; + put 'put ''dTA5M2VcdTA5MzBcdTA5NGRcdTA5MWE/fFx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OFx1MDkzMnxcdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDhcLj98XHUwOTJlXHUwOTA4P3xcdTA5MWNcdTA5NDJcdTA5Mjg/fFx1MDkxY1x1MDk0MVx1MDkzMlx1MDkzZVx1MDkwOHxcdTA5''@;'; + put 'put ''MWNcdTA5NDFcdTA5MzJcLj98XHUwOTA1XHUwOTE3XHUwOTM4XHUwOTRkXHUwOTI0fFx1MDkwNVx1MDkxN1wuP3xcdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUwOTM4XHUwOTNmXHUwOTI0XHUwOTAyXHUwOTJjXHUwOTMwfFx1MDkzOFx1MDkzZlx1MDkyNFwu''@;'; + put 'put ''P3xcdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcdTA5MmNcdTA5MzB8XHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyXC4/fFx1MDkyOFx1MDkzNVx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMHxcdTA5MjhcdTA5MzVcdTA5MDJcdTA5MmNcdTA5MzB8XHUwOTI4XHUwOTM1XC4/fFx1''@;'; + put 'put ''MDkyNlx1MDkzZlx1MDkzOFx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMHxcdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MDJcdTA5MmNcdTA5MzB8XHUwOTI2XHUwOTNmXHUwOTM4XC4/KS9pLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKFx1MDkxY1x1MDkyOFx1MDkzNVx1MDkzMFx1MDk0MD98XHUwOTJiXHUw''@;'; + put 'put ''OTNjXHUwOTMwXHUwOTM1XHUwOTMwXHUwOTQwfFx1MDkyYlx1MDkzMFx1MDkzNVx1MDkzMFx1MDk0MD98XHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhP3xcdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDhcdTA5MzI/fFx1MDkyZVx1MDkwOD98XHUwOTFjXHUwOTQyXHUwOTI4P3xc''@;'; + put 'put ''dTA5MWNcdTA5NDFcdTA5MzJcdTA5M2VcdTA5MDg/fFx1MDkwNVx1MDkxN1x1MDkzOFx1MDk0ZFx1MDkyND98XHUwOTM4XHUwOTNmXHUwOTI0XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkzOFx1MDkzZlx1MDkyNFx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MzhcdTA5M2ZcdTA5MjQ/XC4/''@;'; + put 'put ''fFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mlx1MDkyY1x1MDkzMHxcdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcLj98XHUwOTI4XHUwOTM1XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyOFx1MDkzNVx1MDkwMlx1MDkyY1x1MDkzMD98XHUwOTI2XHUwOTNmXHUwOTM4''@;'; + put 'put ''XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyNlx1MDkzZlx1MDkzOFx1MDkwMlx1MDkyY1x1MDkzMD8pL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihcdTA5MWNcdTA5MjhcLj98XHUwOTJiXHUwOTNjXHUwOTMwXC4/fFx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYT98XHUw''@;'; + put 'put ''OTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XC4/fFx1MDkyZVx1MDkwOD98XHUwOTFjXHUwOTQyXHUwOTI4P3xcdTA5MWNcdTA5NDFcdTA5MzJcLj98XHUwOTA1XHUwOTE3XC4/fFx1MDkzOFx1MDkzZlx1MDkyNFwuP3xcdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcLj98XHUwOTI4''@;'; + put 'put ''XHUwOTM1XC4/fFx1MDkyNlx1MDkzZlx1MDkzOFwuPykvaSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDkwNlx1MDkxY10gTFQiLG5leHREYXk6IltcdTA5MTVcdTA5MzJdIExUIixuZXh0V2VlazoiZGRkZCwgTFQiLGxhc3REYXk6IltcdTA5MTVcdTA5MzJdIExUIixsYXN0V2VlazoiW1x1MDky''@;'; + put 'put ''YVx1MDkzZlx1MDkxYlx1MDkzMlx1MDk0N10gZGRkZCwgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MDkyZVx1MDk0N1x1MDkwMiIscGFzdDoiJXMgXHUwOTJhXHUwOTM5XHUwOTMyXHUwOTQ3IixzOiJcdTA5MTVcdTA5NDFcdTA5MWIgXHUwOTM5XHUwOTQw''@;'; + put 'put ''IFx1MDkxNVx1MDk0ZFx1MDkzN1x1MDkyMyIsc3M6IiVkIFx1MDkzOFx1MDk0N1x1MDkxNVx1MDkwMlx1MDkyMSIsbToiXHUwOTBmXHUwOTE1IFx1MDkyZVx1MDkzZlx1MDkyOFx1MDkxZiIsbW06IiVkIFx1MDkyZVx1MDkzZlx1MDkyOFx1MDkxZiIsaDoiXHUwOTBmXHUwOTE1IFx1MDkxOFx1''@;'; + put 'put ''MDkwMlx1MDkxZlx1MDkzZSIsaGg6IiVkIFx1MDkxOFx1MDkwMlx1MDkxZlx1MDk0NyIsZDoiXHUwOTBmXHUwOTE1IFx1MDkyNlx1MDkzZlx1MDkyOCIsZGQ6IiVkIFx1MDkyNlx1MDkzZlx1MDkyOCIsTToiXHUwOTBmXHUwOTE1IFx1MDkyZVx1MDkzOVx1MDk0MFx1MDkyOFx1MDk0NyIsTU06''@;'; + put 'put ''IiVkIFx1MDkyZVx1MDkzOVx1MDk0MFx1MDkyOFx1MDk0NyIseToiXHUwOTBmXHUwOTE1IFx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzNyIseXk6IiVkIFx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzNyJ9LHByZXBhcnNlOmZ1bmN0aW9uKFope3JldHVybiBaLnJlcGxhY2UoL1tcdTA5NjdcdTA5Njhc''@;'; + put 'put ''dTA5NjlcdTA5NmFcdTA5NmJcdTA5NmNcdTA5NmRcdTA5NmVcdTA5NmZcdTA5NjZdL2csZnVuY3Rpb24oaWUpe3JldHVybiBFW2llXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFope3JldHVybiBaLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oaWUpe3JldHVybiBCW2llXX0pfSxtZXJpZGllbVBh''@;'; + put 'put ''cnNlOi9cdTA5MzBcdTA5M2VcdTA5MjR8XHUwOTM4XHUwOTQxXHUwOTJjXHUwOTM5fFx1MDkyNlx1MDk0Ylx1MDkyYVx1MDkzOVx1MDkzMHxcdTA5MzZcdTA5M2VcdTA5MmUvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihaLGllKXtyZXR1cm4gMTI9PT1aJiYoWj0wKSwiXHUwOTMwXHUwOTNlXHUw''@;'; + put 'put ''OTI0Ij09PWllP1o8ND9aOlorMTI6Ilx1MDkzOFx1MDk0MVx1MDkyY1x1MDkzOSI9PT1pZT9aOiJcdTA5MjZcdTA5NGJcdTA5MmFcdTA5MzlcdTA5MzAiPT09aWU/Wj49MTA/WjpaKzEyOiJcdTA5MzZcdTA5M2VcdTA5MmUiPT09aWU/WisxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKFos''@;'; + put 'put ''aWUsbGUpe3JldHVybiBaPDQ/Ilx1MDkzMFx1MDkzZVx1MDkyNCI6WjwxMD8iXHUwOTM4XHUwOTQxXHUwOTJjXHUwOTM5IjpaPDE3PyJcdTA5MjZcdTA5NGJcdTA5MmFcdTA5MzlcdTA5MzAiOlo8MjA/Ilx1MDkzNlx1MDkzZVx1MDkyZSI6Ilx1MDkzMFx1MDkzZVx1MDkyNCJ9LHdlZWs6e2Rv''@;'; + put 'put ''dzowLGRveTo2fX0pfShMKDE1NDM5KSl9LDc0NTg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihNZSxVLFEpe3ZhciBaPU1lKyIgIjtzd2l0Y2goUSl7Y2FzZSJzcyI6cmV0dXJuIForKDE9PT1NZT8ic2VrdW5kYSI6Mj09PU1lfHwzPT09''@;'; + put 'put ''TWV8fDQ9PT1NZT8ic2VrdW5kZSI6InNla3VuZGkiKTtjYXNlIm0iOnJldHVybiBVPyJqZWRuYSBtaW51dGEiOiJqZWRuZSBtaW51dGUiO2Nhc2UibW0iOnJldHVybiBaKygxPT09TWU/Im1pbnV0YSI6Mj09PU1lfHwzPT09TWV8fDQ9PT1NZT8ibWludXRlIjoibWludXRhIik7Y2FzZSJoIjpy''@;'; + put 'put ''ZXR1cm4gVT8iamVkYW4gc2F0IjoiamVkbm9nIHNhdGEiO2Nhc2UiaGgiOnJldHVybiBaKygxPT09TWU/InNhdCI6Mj09PU1lfHwzPT09TWV8fDQ9PT1NZT8ic2F0YSI6InNhdGkiKTtjYXNlImRkIjpyZXR1cm4gWisoMT09PU1lPyJkYW4iOiJkYW5hIik7Y2FzZSJNTSI6cmV0dXJuIForKDE9''@;'; + put 'put ''PT1NZT8ibWplc2VjIjoyPT09TWV8fDM9PT1NZXx8ND09PU1lPyJtamVzZWNhIjoibWplc2VjaSIpO2Nhc2UieXkiOnJldHVybiBaKygxPT09TWU/ImdvZGluYSI6Mj09PU1lfHwzPT09TWV8fDQ9PT1NZT8iZ29kaW5lIjoiZ29kaW5hIil9fW1lLmRlZmluZUxvY2FsZSgiaHIiLHttb250aHM6''@;'; + put 'put ''e2Zvcm1hdDoic2lqZVx1MDEwZG5qYV92ZWxqYVx1MDEwZGVfb1x1MDE3ZXVqa2FfdHJhdm5qYV9zdmlibmphX2xpcG5qYV9zcnBuamFfa29sb3ZvemFfcnVqbmFfbGlzdG9wYWRhX3N0dWRlbm9nYV9wcm9zaW5jYSIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJzaWplXHUwMTBkYW5qX3ZlbGph''@;'; + put 'put ''XHUwMTBkYV9vXHUwMTdldWpha190cmF2YW5qX3N2aWJhbmpfbGlwYW5qX3NycGFual9rb2xvdm96X3J1amFuX2xpc3RvcGFkX3N0dWRlbmlfcHJvc2luYWMiLnNwbGl0KCJfIil9LG1vbnRoc1Nob3J0OiJzaWouX3ZlbGouX29cdTAxN2V1Ll90cmEuX3N2aS5fbGlwLl9zcnAuX2tvbC5fcnVq''@;'; + put 'put ''Ll9saXMuX3N0dS5fcHJvLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJuZWRqZWxqYV9wb25lZGplbGpha191dG9yYWtfc3JpamVkYV9cdTAxMGRldHZydGFrX3BldGFrX3N1Ym90YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJuZWQuX3Bvbi5fdXRvLl9z''@;'; + put 'put ''cmkuX1x1MDEwZGV0Ll9wZXQuX3N1Yi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Im5lX3BvX3V0X3NyX1x1MDEwZGVfcGVfc3UiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixM''@;'; + put 'put ''TDoiRG8gTU1NTSBZWVlZIixMTEw6IkRvIE1NTU0gWVlZWSBIOm1tIixMTExMOiJkZGRkLCBEbyBNTU1NIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbZGFuYXMgdV0gTFQiLG5leHREYXk6IltzdXRyYSB1XSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXko''@;'; + put 'put ''KSl7Y2FzZSAwOnJldHVybiJbdV0gW25lZGplbGp1XSBbdV0gTFQiO2Nhc2UgMzpyZXR1cm4iW3VdIFtzcmlqZWR1XSBbdV0gTFQiO2Nhc2UgNjpyZXR1cm4iW3VdIFtzdWJvdHVdIFt1XSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbdV0gZGRkZCBbdV0gTFQifX0s''@;'; + put 'put ''bGFzdERheToiW2p1XHUwMTBkZXIgdV0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW3Byb1x1MDE2MWx1XSBbbmVkamVsanVdIFt1XSBMVCI7Y2FzZSAzOnJldHVybiJbcHJvXHUwMTYxbHVdIFtzcmlqZWR1XSBbdV0gTFQiO2Nhc2Ug''@;'; + put 'put ''NjpyZXR1cm4iW3Byb1x1MDE2MWxlXSBbc3Vib3RlXSBbdV0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW3Byb1x1MDE2MWxpXSBkZGRkIFt1XSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ6YSAlcyIscGFzdDoicHJpamUgJXMiLHM6''@;'; + put 'put ''InBhciBzZWt1bmRpIixzczpCLG06QixtbTpCLGg6QixoaDpCLGQ6ImRhbiIsZGQ6QixNOiJtamVzZWMiLE1NOkIseToiZ29kaW51Iix5eTpCfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0s''@;'; + put 'put ''NTY1NDA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9InZhc1x4ZTFybmFwIGhceGU5dGZcdTAxNTFuIGtlZGRlbiBzemVyZFx4ZTFuIGNzXHhmY3RceGY2cnRceGY2a1x4ZjZuIHBceGU5bnRla2VuIHN6b21iYXRvbiIuc3BsaXQoIiAiKTtmdW5j''@;'; + put 'put ''dGlvbiBFKFEsWixpZSxsZSl7dmFyIFk9UTtzd2l0Y2goaWUpe2Nhc2UicyI6cmV0dXJuIGxlfHxaPyJuXHhlOWhceGUxbnkgbVx4ZTFzb2RwZXJjIjoiblx4ZTloXHhlMW55IG1ceGUxc29kcGVyY2UiO2Nhc2Uic3MiOnJldHVybiBZKyhsZXx8Wik/IiBtXHhlMXNvZHBlcmMiOiIgbVx4ZTFz''@;'; + put 'put ''b2RwZXJjZSI7Y2FzZSJtIjpyZXR1cm4iZWd5IisobGV8fFo/IiBwZXJjIjoiIHBlcmNlIik7Y2FzZSJtbSI6cmV0dXJuIFkrKGxlfHxaPyIgcGVyYyI6IiBwZXJjZSIpO2Nhc2UiaCI6cmV0dXJuImVneSIrKGxlfHxaPyIgXHhmM3JhIjoiIFx4ZjNyXHhlMWphIik7Y2FzZSJoaCI6cmV0dXJu''@;'; + put 'put ''IFkrKGxlfHxaPyIgXHhmM3JhIjoiIFx4ZjNyXHhlMWphIik7Y2FzZSJkIjpyZXR1cm4iZWd5IisobGV8fFo/IiBuYXAiOiIgbmFwamEiKTtjYXNlImRkIjpyZXR1cm4gWSsobGV8fFo/IiBuYXAiOiIgbmFwamEiKTtjYXNlIk0iOnJldHVybiJlZ3kiKyhsZXx8Wj8iIGhceGYzbmFwIjoiIGhc''@;'; + put 'put ''eGYzbmFwamEiKTtjYXNlIk1NIjpyZXR1cm4gWSsobGV8fFo/IiBoXHhmM25hcCI6IiBoXHhmM25hcGphIik7Y2FzZSJ5IjpyZXR1cm4iZWd5IisobGV8fFo/IiBceGU5diI6IiBceGU5dmUiKTtjYXNlInl5IjpyZXR1cm4gWSsobGV8fFo/IiBceGU5diI6IiBceGU5dmUiKX1yZXR1cm4iIn1m''@;'; + put 'put ''dW5jdGlvbiBNZShRKXtyZXR1cm4oUT8iIjoiW21ceGZhbHRdICIpKyJbIitCW3RoaXMuZGF5KCldKyJdIExUWy1rb3JdIn1tZS5kZWZpbmVMb2NhbGUoImh1Iix7bW9udGhzOiJqYW51XHhlMXJfZmVicnVceGUxcl9tXHhlMXJjaXVzX1x4ZTFwcmlsaXNfbVx4ZTFqdXNfalx4ZmFuaXVzX2pc''@;'; + put 'put ''eGZhbGl1c19hdWd1c3p0dXNfc3plcHRlbWJlcl9va3RceGYzYmVyX25vdmVtYmVyX2RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW4uX2ZlYi5fbVx4ZTFyYy5fXHhlMXByLl9tXHhlMWouX2pceGZhbi5falx4ZmFsLl9hdWcuX3N6ZXB0Ll9va3QuX25vdi5fZGVjLiIuc3Bs''@;'; + put 'put ''aXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJ2YXNceGUxcm5hcF9oXHhlOXRmXHUwMTUxX2tlZGRfc3plcmRhX2NzXHhmY3RceGY2cnRceGY2a19wXHhlOW50ZWtfc3pvbWJhdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJ2YXNfaFx4ZTl0X2tlZGRfc3plX2NzXHhm''@;'; + put 'put ''Y3RfcFx4ZTluX3N6byIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoidl9oX2tfc3plX2NzX3Bfc3pvIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJZWVlZLk1NLkRELiIsTEw6IllZWVkuIE1NTU0gRC4iLExMTDoiWVlZWS4gTU1NTSBELiBI''@;'; + put 'put ''Om1tIixMTExMOiJZWVlZLiBNTU1NIEQuLCBkZGRkIEg6bW0ifSxtZXJpZGllbVBhcnNlOi9kZXxkdS9pLGlzUE06ZnVuY3Rpb24oUSl7cmV0dXJuInUiPT09US5jaGFyQXQoMSkudG9Mb3dlckNhc2UoKX0sbWVyaWRpZW06ZnVuY3Rpb24oUSxaLGllKXtyZXR1cm4gUTwxMj8hMD09PWllPyJk''@;'; + put 'put ''ZSI6IkRFIjohMD09PWllPyJkdSI6IkRVIn0sY2FsZW5kYXI6e3NhbWVEYXk6IlttYV0gTFRbLWtvcl0iLG5leHREYXk6Iltob2xuYXBdIExUWy1rb3JdIixuZXh0V2VlazpmdW5jdGlvbigpe3JldHVybiBNZS5jYWxsKHRoaXMsITApfSxsYXN0RGF5OiJbdGVnbmFwXSBMVFsta29yXSIsbGFz''@;'; + put 'put ''dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gTWUuY2FsbCh0aGlzLCExKX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgbVx4ZmFsdmEiLHBhc3Q6IiVzIixzOkUsc3M6RSxtOkUsbW06RSxoOkUsaGg6RSxkOkUsZGQ6RSxNOkUsTU06RSx5OkUseXk6RX0sZGF5T2ZNb250''@;'; + put 'put ''aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDY1MjgzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiaHktYW0iLHttb250aHM6e2Zvcm1hdDoi''@;'; + put 'put ''XHUwNTcwXHUwNTc4XHUwNTgyXHUwNTc2XHUwNTdlXHUwNTYxXHUwNTgwXHUwNTZiX1x1MDU4M1x1MDU2NVx1MDU3Zlx1MDU4MFx1MDU3ZVx1MDU2MVx1MDU4MFx1MDU2Yl9cdTA1NzRcdTA1NjFcdTA1ODBcdTA1N2ZcdTA1NmJfXHUwNTYxXHUwNTdhXHUwNTgwXHUwNTZiXHUwNTZjXHUwNTZi''@;'; + put 'put ''X1x1MDU3NFx1MDU2MVx1MDU3NVx1MDU2Ylx1MDU3ZFx1MDU2Yl9cdTA1NzBcdTA1NzhcdTA1ODJcdTA1NzZcdTA1NmJcdTA1N2RcdTA1NmJfXHUwNTcwXHUwNTc4XHUwNTgyXHUwNTZjXHUwNTZiXHUwNTdkXHUwNTZiX1x1MDU4NVx1MDU2M1x1MDU3OFx1MDU3ZFx1MDU3Zlx1MDU3OFx1MDU3''@;'; + put 'put ''ZFx1MDU2Yl9cdTA1N2RcdTA1NjVcdTA1N2FcdTA1N2ZcdTA1NjVcdTA1NzRcdTA1NjJcdTA1NjVcdTA1ODBcdTA1NmJfXHUwNTcwXHUwNTc4XHUwNTZmXHUwNTdmXHUwNTY1XHUwNTc0XHUwNTYyXHUwNTY1XHUwNTgwXHUwNTZiX1x1MDU3Nlx1MDU3OFx1MDU3NVx1MDU2NVx1MDU3NFx1MDU2''@;'; + put 'put ''Mlx1MDU2NVx1MDU4MFx1MDU2Yl9cdTA1NjRcdTA1NjVcdTA1NmZcdTA1N2ZcdTA1NjVcdTA1NzRcdTA1NjJcdTA1NjVcdTA1ODBcdTA1NmIiLnNwbGl0KCJfIiksc3RhbmRhbG9uZToiXHUwNTcwXHUwNTc4XHUwNTgyXHUwNTc2XHUwNTdlXHUwNTYxXHUwNTgwX1x1MDU4M1x1MDU2NVx1MDU3''@;'; + put 'put ''Zlx1MDU4MFx1MDU3ZVx1MDU2MVx1MDU4MF9cdTA1NzRcdTA1NjFcdTA1ODBcdTA1N2ZfXHUwNTYxXHUwNTdhXHUwNTgwXHUwNTZiXHUwNTZjX1x1MDU3NFx1MDU2MVx1MDU3NVx1MDU2Ylx1MDU3ZF9cdTA1NzBcdTA1NzhcdTA1ODJcdTA1NzZcdTA1NmJcdTA1N2RfXHUwNTcwXHUwNTc4XHUw''@;'; + put 'put ''NTgyXHUwNTZjXHUwNTZiXHUwNTdkX1x1MDU4NVx1MDU2M1x1MDU3OFx1MDU3ZFx1MDU3Zlx1MDU3OFx1MDU3ZF9cdTA1N2RcdTA1NjVcdTA1N2FcdTA1N2ZcdTA1NjVcdTA1NzRcdTA1NjJcdTA1NjVcdTA1ODBfXHUwNTcwXHUwNTc4XHUwNTZmXHUwNTdmXHUwNTY1XHUwNTc0XHUwNTYyXHUw''@;'; + put 'put ''NTY1XHUwNTgwX1x1MDU3Nlx1MDU3OFx1MDU3NVx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MF9cdTA1NjRcdTA1NjVcdTA1NmZcdTA1N2ZcdTA1NjVcdTA1NzRcdTA1NjJcdTA1NjVcdTA1ODAiLnNwbGl0KCJfIil9LG1vbnRoc1Nob3J0OiJcdTA1NzBcdTA1NzZcdTA1N2VfXHUwNTgz''@;'; + put 'put ''XHUwNTdmXHUwNTgwX1x1MDU3NFx1MDU4MFx1MDU3Zl9cdTA1NjFcdTA1N2FcdTA1ODBfXHUwNTc0XHUwNTc1XHUwNTdkX1x1MDU3MFx1MDU3Nlx1MDU3ZF9cdTA1NzBcdTA1NmNcdTA1N2RfXHUwNTg1XHUwNTYzXHUwNTdkX1x1MDU3ZFx1MDU3YVx1MDU3Zl9cdTA1NzBcdTA1NmZcdTA1N2Zf''@;'; + put 'put ''XHUwNTc2XHUwNTc0XHUwNTYyX1x1MDU2NFx1MDU2Zlx1MDU3ZiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNTZmXHUwNTZiXHUwNTgwXHUwNTYxXHUwNTZmXHUwNTZiX1x1MDU2NVx1MDU4MFx1MDU2Zlx1MDU3OFx1MDU4Mlx1MDU3N1x1MDU2MVx1MDU2Mlx1MDU2OVx1MDU2Yl9cdTA1NjVc''@;'; + put 'put ''dTA1ODBcdTA1NjVcdTA1ODRcdTA1NzdcdTA1NjFcdTA1NjJcdTA1NjlcdTA1NmJfXHUwNTc5XHUwNTc4XHUwNTgwXHUwNTY1XHUwNTg0XHUwNTc3XHUwNTYxXHUwNTYyXHUwNTY5XHUwNTZiX1x1MDU3MFx1MDU2Ylx1MDU3Nlx1MDU2M1x1MDU3N1x1MDU2MVx1MDU2Mlx1MDU2OVx1MDU2Yl9c''@;'; + put 'put ''dTA1NzhcdTA1ODJcdTA1ODBcdTA1NjJcdTA1NjFcdTA1NjlfXHUwNTc3XHUwNTYxXHUwNTYyXHUwNTYxXHUwNTY5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDU2Zlx1MDU4MFx1MDU2Zl9cdTA1NjVcdTA1ODBcdTA1NmZfXHUwNTY1XHUwNTgwXHUwNTg0X1x1MDU3OVx1MDU4MFx1''@;'; + put 'put ''MDU4NF9cdTA1NzBcdTA1NzZcdTA1NjNfXHUwNTc4XHUwNTgyXHUwNTgwXHUwNTYyX1x1MDU3N1x1MDU2Mlx1MDU2OSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNTZmXHUwNTgwXHUwNTZmX1x1MDU2NVx1MDU4MFx1MDU2Zl9cdTA1NjVcdTA1ODBcdTA1ODRfXHUwNTc5XHUwNTgwXHUw''@;'; + put 'put ''NTg0X1x1MDU3MFx1MDU3Nlx1MDU2M19cdTA1NzhcdTA1ODJcdTA1ODBcdTA1NjJfXHUwNTc3XHUwNTYyXHUwNTY5Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSBcdTA1NjkuIixMTEw6''@;'; + put 'put ''IkQgTU1NTSBZWVlZIFx1MDU2OS4sIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBcdTA1NjkuLCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNTYxXHUwNTc1XHUwNTdkXHUwNTg1XHUwNTgwXSBMVCIsbmV4dERheToiW1x1MDU3ZVx1MDU2MVx1MDU3Mlx1MDU2OF0gTFQi''@;'; + put 'put ''LGxhc3REYXk6IltcdTA1NjVcdTA1ODBcdTA1NjVcdTA1NmZdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3JldHVybiJkZGRkIFtcdTA1ODVcdTA1ODBcdTA1NjggXHUwNTZhXHUwNTYxXHUwNTc0XHUwNTY4XSBMVCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltcdTA1NjFcdTA1NzZc''@;'; + put 'put ''dTA1ODFcdTA1NjFcdTA1NmVdIGRkZGQgW1x1MDU4NVx1MDU4MFx1MDU2OCBcdTA1NmFcdTA1NjFcdTA1NzRcdTA1NjhdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNTcwXHUwNTY1XHUwNTdmXHUwNTc4IixwYXN0OiIlcyBcdTA1NjFcdTA1N2NcdTA1''@;'; + put 'put ''NjFcdTA1N2IiLHM6Ilx1MDU3NFx1MDU2YiBcdTA1ODRcdTA1NjFcdTA1NzZcdTA1NmIgXHUwNTdlXHUwNTYxXHUwNTc1XHUwNTgwXHUwNTZmXHUwNTc1XHUwNTYxXHUwNTc2IixzczoiJWQgXHUwNTdlXHUwNTYxXHUwNTc1XHUwNTgwXHUwNTZmXHUwNTc1XHUwNTYxXHUwNTc2IixtOiJcdTA1''@;'; + put 'put ''ODBcdTA1NzhcdTA1N2FcdTA1NjUiLG1tOiIlZCBcdTA1ODBcdTA1NzhcdTA1N2FcdTA1NjUiLGg6Ilx1MDU2YVx1MDU2MVx1MDU3NCIsaGg6IiVkIFx1MDU2YVx1MDU2MVx1MDU3NCIsZDoiXHUwNTg1XHUwNTgwIixkZDoiJWQgXHUwNTg1XHUwNTgwIixNOiJcdTA1NjFcdTA1NzRcdTA1NmJc''@;'; + put 'put ''dTA1N2QiLE1NOiIlZCBcdTA1NjFcdTA1NzRcdTA1NmJcdTA1N2QiLHk6Ilx1MDU3Zlx1MDU2MVx1MDU4MFx1MDU2YiIseXk6IiVkIFx1MDU3Zlx1MDU2MVx1MDU4MFx1MDU2YiJ9LG1lcmlkaWVtUGFyc2U6L1x1MDU2M1x1MDU2Ylx1MDU3N1x1MDU2NVx1MDU4MFx1MDU3ZVx1MDU2MXxcdTA1''@;'; + put 'put ''NjFcdTA1N2NcdTA1NjFcdTA1N2VcdTA1NzhcdTA1N2ZcdTA1N2VcdTA1NjF8XHUwNTgxXHUwNTY1XHUwNTgwXHUwNTY1XHUwNTZmXHUwNTdlXHUwNTYxfFx1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zlx1MDU3OFx1MDU3NVx1MDU2MVx1MDU3Ni8saXNQTTpmdW5jdGlvbihFKXtyZXR1cm4vXihc''@;'; + put 'put ''dTA1ODFcdTA1NjVcdTA1ODBcdTA1NjVcdTA1NmZcdTA1N2VcdTA1NjF8XHUwNTY1XHUwNTgwXHUwNTY1XHUwNTZmXHUwNTc4XHUwNTc1XHUwNTYxXHUwNTc2KSQvLnRlc3QoRSl9LG1lcmlkaWVtOmZ1bmN0aW9uKEUpe3JldHVybiBFPDQ/Ilx1MDU2M1x1MDU2Ylx1MDU3N1x1MDU2NVx1MDU4''@;'; + put 'put ''MFx1MDU3ZVx1MDU2MSI6RTwxMj8iXHUwNTYxXHUwNTdjXHUwNTYxXHUwNTdlXHUwNTc4XHUwNTdmXHUwNTdlXHUwNTYxIjpFPDE3PyJcdTA1ODFcdTA1NjVcdTA1ODBcdTA1NjVcdTA1NmZcdTA1N2VcdTA1NjEiOiJcdTA1NjVcdTA1ODBcdTA1NjVcdTA1NmZcdTA1NzhcdTA1NzVcdTA1NjFc''@;'; + put 'put ''dTA1NzYifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9fFxkezEsMn0tKFx1MDU2Ylx1MDU3NnxcdTA1ODBcdTA1NjQpLyxvcmRpbmFsOmZ1bmN0aW9uKEUsTWUpe3N3aXRjaChNZSl7Y2FzZSJEREQiOmNhc2UidyI6Y2FzZSJXIjpjYXNlIkRERG8iOnJldHVybiAxPT09RT9FKyIt''@;'; + put 'put ''XHUwNTZiXHUwNTc2IjpFKyItXHUwNTgwXHUwNTY0IjtkZWZhdWx0OnJldHVybiBFfX0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sOTg3ODA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJpZCIse21vbnRoczoi''@;'; + put 'put ''SmFudWFyaV9GZWJydWFyaV9NYXJldF9BcHJpbF9NZWlfSnVuaV9KdWxpX0FndXN0dXNfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NZWlfSnVuX0p1bF9BZ3RfU2VwX09rdF9Ob3ZfRGVzIi5zcGxp''@;'; + put 'put ''dCgiXyIpLHdlZWtkYXlzOiJNaW5nZ3VfU2VuaW5fU2VsYXNhX1JhYnVfS2FtaXNfSnVtYXRfU2FidHUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiTWluX1Nlbl9TZWxfUmFiX0thbV9KdW1fU2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJNZ19Tbl9TbF9SYl9LbV9KbV9TYiIuc3Bs''@;'; + put 'put ''aXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhILm1tIixMVFM6IkhILm1tLnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSJ9LG1lcmlkaWVtUGFy''@;'; + put 'put ''c2U6L3BhZ2l8c2lhbmd8c29yZXxtYWxhbS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKEUsTWUpe3JldHVybiAxMj09PUUmJihFPTApLCJwYWdpIj09PU1lP0U6InNpYW5nIj09PU1lP0U+PTExP0U6RSsxMjoic29yZSI9PT1NZXx8Im1hbGFtIj09PU1lP0UrMTI6dm9pZCAwfSxtZXJpZGllbTpm''@;'; + put 'put ''dW5jdGlvbihFLE1lLFUpe3JldHVybiBFPDExPyJwYWdpIjpFPDE1PyJzaWFuZyI6RTwxOT8ic29yZSI6Im1hbGFtIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIYXJpIGluaSBwdWt1bF0gTFQiLG5leHREYXk6IltCZXNvayBwdWt1bF0gTFQiLG5leHRXZWVrOiJkZGRkIFtwdWt1bF0gTFQiLGxh''@;'; + put 'put ''c3REYXk6IltLZW1hcmluIHB1a3VsXSBMVCIsbGFzdFdlZWs6ImRkZGQgW2xhbHUgcHVrdWxdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkYWxhbSAlcyIscGFzdDoiJXMgeWFuZyBsYWx1IixzOiJiZWJlcmFwYSBkZXRpayIsc3M6IiVkIGRldGlrIixtOiJzZW1l''@;'; + put 'put ''bml0IixtbToiJWQgbWVuaXQiLGg6InNlamFtIixoaDoiJWQgamFtIixkOiJzZWhhcmkiLGRkOiIlZCBoYXJpIixNOiJzZWJ1bGFuIixNTToiJWQgYnVsYW4iLHk6InNldGFodW4iLHl5OiIlZCB0YWh1biJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShMKDE1NDM5KSl9LDE0MjA1OmZ1bmN0aW9u''@;'; + put 'put ''KFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoVSl7cmV0dXJuIFUlMTAwPT0xMXx8VSUxMCE9MX1mdW5jdGlvbiBFKFUsUSxaLGllKXt2YXIgbGU9VSsiICI7c3dpdGNoKFope2Nhc2UicyI6cmV0dXJuIFF8fGllPyJub2trcmFyIHNla1x4ZmFuZHVyIjoi''@;'; + put 'put ''bm9ra3J1bSBzZWtceGZhbmR1bSI7Y2FzZSJzcyI6cmV0dXJuIEIoVSk/bGUrKFF8fGllPyJzZWtceGZhbmR1ciI6InNla1x4ZmFuZHVtIik6bGUrInNla1x4ZmFuZGEiO2Nhc2UibSI6cmV0dXJuIFE/Im1ceGVkblx4ZmF0YSI6Im1ceGVkblx4ZmF0dSI7Y2FzZSJtbSI6cmV0dXJuIEIoVSk/''@;'; + put 'put ''bGUrKFF8fGllPyJtXHhlZG5ceGZhdHVyIjoibVx4ZWRuXHhmYXR1bSIpOlE/bGUrIm1ceGVkblx4ZmF0YSI6bGUrIm1ceGVkblx4ZmF0dSI7Y2FzZSJoaCI6cmV0dXJuIEIoVSk/bGUrKFF8fGllPyJrbHVra3VzdHVuZGlyIjoia2x1a2t1c3R1bmR1bSIpOmxlKyJrbHVra3VzdHVuZCI7Y2Fz''@;'; + put 'put ''ZSJkIjpyZXR1cm4gUT8iZGFndXIiOmllPyJkYWciOiJkZWdpIjtjYXNlImRkIjpyZXR1cm4gQihVKT9RP2xlKyJkYWdhciI6bGUrKGllPyJkYWdhIjoiZFx4ZjZndW0iKTpRP2xlKyJkYWd1ciI6bGUrKGllPyJkYWciOiJkZWdpIik7Y2FzZSJNIjpyZXR1cm4gUT8ibVx4ZTFudVx4ZjB1ciI6''@;'; + put 'put ''aWU/Im1ceGUxbnVceGYwIjoibVx4ZTFudVx4ZjBpIjtjYXNlIk1NIjpyZXR1cm4gQihVKT9RP2xlKyJtXHhlMW51XHhmMGlyIjpsZSsoaWU/Im1ceGUxbnVceGYwaSI6Im1ceGUxbnVceGYwdW0iKTpRP2xlKyJtXHhlMW51XHhmMHVyIjpsZSsoaWU/Im1ceGUxbnVceGYwIjoibVx4ZTFudVx4''@;'; + put 'put ''ZjBpIik7Y2FzZSJ5IjpyZXR1cm4gUXx8aWU/Ilx4ZTFyIjoiXHhlMXJpIjtjYXNlInl5IjpyZXR1cm4gQihVKT9sZSsoUXx8aWU/Ilx4ZTFyIjoiXHhlMXJ1bSIpOmxlKyhRfHxpZT8iXHhlMXIiOiJceGUxcmkiKX19bWUuZGVmaW5lTG9jYWxlKCJpcyIse21vbnRoczoiamFuXHhmYWFyX2Zl''@;'; + put 'put ''YnJceGZhYXJfbWFyc19hcHJceGVkbF9tYVx4ZWRfalx4ZmFuXHhlZF9qXHhmYWxceGVkX1x4ZTFnXHhmYXN0X3NlcHRlbWJlcl9va3RceGYzYmVyX25ceGYzdmVtYmVyX2Rlc2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW5fZmViX21hcl9hcHJfbWFceGVkX2pceGZhbl9qXHhm''@;'; + put 'put ''YWxfXHhlMWdceGZhX3NlcF9va3Rfblx4ZjN2X2RlcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoic3VubnVkYWd1cl9tXHhlMW51ZGFndXJfXHhmZXJpXHhmMGp1ZGFndXJfbWlceGYwdmlrdWRhZ3VyX2ZpbW10dWRhZ3VyX2ZceGY2c3R1ZGFndXJfbGF1Z2FyZGFndXIiLnNwbGl0KCJfIiksd2Vl''@;'; + put 'put ''a2RheXNTaG9ydDoic3VuX21ceGUxbl9ceGZlcmlfbWlceGYwX2ZpbV9mXHhmNnNfbGF1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9NXHhlMV9ceGRlcl9NaV9GaV9GXHhmNl9MYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQu''@;'; + put 'put ''TU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgW2tsLl0gSDptbSIsTExMTDoiZGRkZCwgRC4gTU1NTSBZWVlZIFtrbC5dIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x4ZWQgZGFnIGtsLl0gTFQiLG5leHREYXk6IltceGUxIG1vcmd1biBrbC5dIExUIixu''@;'; + put 'put ''ZXh0V2VlazoiZGRkZCBba2wuXSBMVCIsbGFzdERheToiW1x4ZWQgZ1x4ZTZyIGtsLl0gTFQiLGxhc3RXZWVrOiJbc1x4ZWRceGYwYXN0YV0gZGRkZCBba2wuXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZWZ0aXIgJXMiLHBhc3Q6ImZ5cmlyICVzIHNceGVkXHhm''@;'; + put 'put ''MGFuIixzOkUsc3M6RSxtOkUsbW06RSxoOiJrbHVra3VzdHVuZCIsaGg6RSxkOkUsZGQ6RSxNOkUsTU06RSx5OkUseXk6RX0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDI5OTg1OmZ1bmN0''@;'; + put 'put ''aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiaXQtY2giLHttb250aHM6Imdlbm5haW9fZmViYnJhaW9fbWFyem9fYXByaWxlX21hZ2dpb19naXVnbm9fbHVnbGlvX2Fnb3N0b19zZXR0ZW1icmVfb3R0b2JyZV9ub3ZlbWJyZV9kaWNlbWJy''@;'; + put 'put ''ZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiZ2VuX2ZlYl9tYXJfYXByX21hZ19naXVfbHVnX2Fnb19zZXRfb3R0X25vdl9kaWMiLnNwbGl0KCJfIiksd2Vla2RheXM6ImRvbWVuaWNhX2x1bmVkXHhlY19tYXJ0ZWRceGVjX21lcmNvbGVkXHhlY19naW92ZWRceGVjX3ZlbmVyZFx4ZWNfc2Fi''@;'; + put 'put ''YXRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbV9sdW5fbWFyX21lcl9naW9fdmVuX3NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZG9fbHVfbWFfbWVfZ2lfdmVfc2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQu''@;'; + put 'put ''TU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltPZ2dpIGFsbGVdIExUIixuZXh0RGF5OiJbRG9tYW5pIGFsbGVdIExUIixuZXh0V2VlazoiZGRkZCBbYWxsZV0g''@;'; + put 'put ''TFQiLGxhc3REYXk6IltJZXJpIGFsbGVdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5kYXkoKT8iW2xhIHNjb3JzYV0gZGRkZCBbYWxsZV0gTFQiOiJbbG8gc2NvcnNvXSBkZGRkIFthbGxlXSBMVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6''@;'; + put 'put ''ZnVuY3Rpb24oRSl7cmV0dXJuKC9eWzAtOV0uKyQvLnRlc3QoRSk/InRyYSI6ImluIikrIiAiK0V9LHBhc3Q6IiVzIGZhIixzOiJhbGN1bmkgc2Vjb25kaSIsc3M6IiVkIHNlY29uZGkiLG06InVuIG1pbnV0byIsbW06IiVkIG1pbnV0aSIsaDoidW4nb3JhIixoaDoiJWQgb3JlIixkOiJ1biBn''@;'; + put 'put ''aW9ybm8iLGRkOiIlZCBnaW9ybmkiLE06InVuIG1lc2UiLE1NOiIlZCBtZXNpIix5OiJ1biBhbm5vIix5eToiJWQgYW5uaSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDM0MjEx''@;'; + put 'put ''OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiaXQiLHttb250aHM6Imdlbm5haW9fZmViYnJhaW9fbWFyem9fYXByaWxlX21hZ2dpb19naXVnbm9fbHVnbGlvX2Fnb3N0b19zZXR0ZW1icmVfb3R0b2JyZV9ub3ZlbWJyZV9kaWNl''@;'; + put 'put ''bWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiZ2VuX2ZlYl9tYXJfYXByX21hZ19naXVfbHVnX2Fnb19zZXRfb3R0X25vdl9kaWMiLnNwbGl0KCJfIiksd2Vla2RheXM6ImRvbWVuaWNhX2x1bmVkXHhlY19tYXJ0ZWRceGVjX21lcmNvbGVkXHhlY19naW92ZWRceGVjX3ZlbmVyZFx4ZWNf''@;'; + put 'put ''c2FiYXRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbV9sdW5fbWFyX21lcl9naW9fdmVuX3NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZG9fbHVfbWFfbWVfZ2lfdmVfc2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoi''@;'; + put 'put ''REQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW09nZ2kgYSIrKHRoaXMuaG91cnMoKT4xPyJsbGUgIjowPT09dGhpcy5ob3Vy''@;'; + put 'put ''cygpPyIgIjoibGwnIikrIl1MVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW0RvbWFuaSBhIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbYSIrKHRoaXMuaG91cnMo''@;'; + put 'put ''KT4xPyJsbGUgIjowPT09dGhpcy5ob3VycygpPyIgIjoibGwnIikrIl1MVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW0llcmkgYSIrKHRoaXMuaG91cnMoKT4xPyJsbGUgIjowPT09dGhpcy5ob3VycygpPyIgIjoibGwnIikrIl1MVCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IDA9PT10aGlzLmRheSgpPyJbTGEgc2NvcnNhXSBkZGRkIFthIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIjoiW0xvIHNjb3Jzb10gZGRkZCBbYSIrKHRoaXMuaG91cnMoKT4xPyJsbGUgIjowPT09dGhpcy5ob3VycygpPyIgIjoibGwn''@;'; + put 'put ''IikrIl1MVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InRyYSAlcyIscGFzdDoiJXMgZmEiLHM6ImFsY3VuaSBzZWNvbmRpIixzczoiJWQgc2Vjb25kaSIsbToidW4gbWludXRvIixtbToiJWQgbWludXRpIixoOiJ1bidvcmEiLGhoOiIlZCBvcmUiLGQ6InVuIGdpb3Ju''@;'; + put 'put ''byIsZGQ6IiVkIGdpb3JuaSIsdzoidW5hIHNldHRpbWFuYSIsd3c6IiVkIHNldHRpbWFuZSIsTToidW4gbWVzZSIsTU06IiVkIG1lc2kiLHk6InVuIGFubm8iLHl5OiIlZCBhbm5pIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7''@;'; + put 'put ''ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMzEwMDM6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJqYSIse2VyYXM6W3tzaW5jZToiMjAxOS0wNS0wMSIsb2Zmc2V0OjEsbmFtZToiXHU0ZWU0XHU1NDhjIixuYXJyb3c6Ilx1''@;'; + put 'put ''MzJmZiIsYWJicjoiUiJ9LHtzaW5jZToiMTk4OS0wMS0wOCIsdW50aWw6IjIwMTktMDQtMzAiLG9mZnNldDoxLG5hbWU6Ilx1NWU3M1x1NjIxMCIsbmFycm93OiJcdTMzN2IiLGFiYnI6IkgifSx7c2luY2U6IjE5MjYtMTItMjUiLHVudGlsOiIxOTg5LTAxLTA3IixvZmZzZXQ6MSxuYW1lOiJc''@;'; + put 'put ''dTY2MmRcdTU0OGMiLG5hcnJvdzoiXHUzMzdjIixhYmJyOiJTIn0se3NpbmNlOiIxOTEyLTA3LTMwIix1bnRpbDoiMTkyNi0xMi0yNCIsb2Zmc2V0OjEsbmFtZToiXHU1OTI3XHU2YjYzIixuYXJyb3c6Ilx1MzM3ZCIsYWJicjoiVCJ9LHtzaW5jZToiMTg3My0wMS0wMSIsdW50aWw6IjE5MTIt''@;'; + put 'put ''MDctMjkiLG9mZnNldDo2LG5hbWU6Ilx1NjYwZVx1NmNiYiIsbmFycm93OiJcdTMzN2UiLGFiYnI6Ik0ifSx7c2luY2U6IjAwMDEtMDEtMDEiLHVudGlsOiIxODczLTEyLTMxIixvZmZzZXQ6MSxuYW1lOiJcdTg5N2ZcdTY2YTYiLG5hcnJvdzoiQUQiLGFiYnI6IkFEIn0se3NpbmNlOiIwMDAw''@;'; + put 'put ''LTEyLTMxIix1bnRpbDotMS8wLG9mZnNldDoxLG5hbWU6Ilx1N2QwMFx1NTE0M1x1NTI0ZCIsbmFycm93OiJCQyIsYWJicjoiQkMifV0sZXJhWWVhck9yZGluYWxSZWdleDovKFx1NTE0M3xcZCspXHU1ZTc0LyxlcmFZZWFyT3JkaW5hbFBhcnNlOmZ1bmN0aW9uKEUsTWUpe3JldHVybiJcdTUx''@;'; + put 'put ''NDMiPT09TWVbMV0/MTpwYXJzZUludChNZVsxXXx8RSwxMCl9LG1vbnRoczoiMVx1NjcwOF8yXHU2NzA4XzNcdTY3MDhfNFx1NjcwOF81XHU2NzA4XzZcdTY3MDhfN1x1NjcwOF84XHU2NzA4XzlcdTY3MDhfMTBcdTY3MDhfMTFcdTY3MDhfMTJcdTY3MDgiLnNwbGl0KCJfIiksbW9udGhzU2hv''@;'; + put 'put ''cnQ6IjFcdTY3MDhfMlx1NjcwOF8zXHU2NzA4XzRcdTY3MDhfNVx1NjcwOF82XHU2NzA4XzdcdTY3MDhfOFx1NjcwOF85XHU2NzA4XzEwXHU2NzA4XzExXHU2NzA4XzEyXHU2NzA4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTY1ZTVcdTY2ZGNcdTY1ZTVfXHU2NzA4XHU2NmRjXHU2NWU1X1x1''@;'; + put 'put ''NzA2Ylx1NjZkY1x1NjVlNV9cdTZjMzRcdTY2ZGNcdTY1ZTVfXHU2NzI4XHU2NmRjXHU2NWU1X1x1OTFkMVx1NjZkY1x1NjVlNV9cdTU3MWZcdTY2ZGNcdTY1ZTUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHU2NWU1X1x1NjcwOF9cdTcwNmJfXHU2YzM0X1x1NjcyOF9cdTkxZDFfXHU1''@;'; + put 'put ''NzFmIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTY1ZTVfXHU2NzA4X1x1NzA2Yl9cdTZjMzRfXHU2NzI4X1x1OTFkMV9cdTU3MWYiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS9NTS9ERCIsTEw6IllZWVlcdTVlNzRNXHU2''@;'; + put 'put ''NzA4RFx1NjVlNSIsTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUgSEg6bW0iLExMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBkZGRkIEhIOm1tIixsOiJZWVlZL01NL0REIixsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVl''@;'; + put 'put ''NSBISDptbSIsbGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1KGRkZCkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTUzNDhcdTUyNGR8XHU1MzQ4XHU1ZjhjL2ksaXNQTTpmdW5jdGlvbihFKXtyZXR1cm4iXHU1MzQ4XHU1ZjhjIj09PUV9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7''@;'; + put 'put ''cmV0dXJuIEU8MTI/Ilx1NTM0OFx1NTI0ZCI6Ilx1NTM0OFx1NWY4YyJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHU0ZWNhXHU2NWU1XSBMVCIsbmV4dERheToiW1x1NjYwZVx1NjVlNV0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKEUpe3JldHVybiBFLndlZWsoKSE9PXRoaXMud2VlaygpPyJbXHU2''@;'; + put 'put ''NzY1XHU5MDMxXWRkZGQgTFQiOiJkZGRkIExUIn0sbGFzdERheToiW1x1NjYyOFx1NjVlNV0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLndlZWsoKSE9PUUud2VlaygpPyJbXHU1MTQ4XHU5MDMxXWRkZGQgTFQiOiJkZGRkIExUIn0sc2FtZUVsc2U6IkwifSxkYXlPZk1v''@;'; + put 'put ''bnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHU2NWU1LyxvcmRpbmFsOmZ1bmN0aW9uKEUsTWUpe3N3aXRjaChNZSl7Y2FzZSJ5IjpyZXR1cm4gMT09PUU/Ilx1NTE0M1x1NWU3NCI6RSsiXHU1ZTc0IjtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBFKyJcdTY1ZTUiO2RlZmF1bHQ6''@;'; + put 'put ''cmV0dXJuIEV9fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTVmOGMiLHBhc3Q6IiVzXHU1MjRkIixzOiJcdTY1NzBcdTc5ZDIiLHNzOiIlZFx1NzlkMiIsbToiMVx1NTIwNiIsbW06IiVkXHU1MjA2IixoOiIxXHU2NjQyXHU5NTkzIixoaDoiJWRcdTY2NDJcdTk1OTMiLGQ6IjFcdTY1ZTUi''@;'; + put 'put ''LGRkOiIlZFx1NjVlNSIsTToiMVx1MzBmNlx1NjcwOCIsTU06IiVkXHUzMGY2XHU2NzA4Iix5OiIxXHU1ZTc0Iix5eToiJWRcdTVlNzQifX0pfShMKDE1NDM5KSl9LDYwNDIwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgianYi''@;'; + put 'put ''LHttb250aHM6IkphbnVhcmlfRmVicnVhcmlfTWFyZXRfQXByaWxfTWVpX0p1bmlfSnVsaV9BZ3VzdHVzX1NlcHRlbWJlcl9Pa3RvYmVyX05vcGVtYmVyX0Rlc2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWVpX0p1bl9KdWxfQWdzX1NlcF9Pa3RfTm9w''@;'; + put 'put ''X0RlcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiTWluZ2d1X1NlbmVuX1NlbG9zb19SZWJ1X0tlbWlzX0plbXV3YWhfU2VwdHUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiTWluX1Nlbl9TZWxfUmViX0tlbV9KZW1fU2VwIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJNZ19Tbl9TbF9SYl9L''@;'; + put 'put ''bV9KbV9TcCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhILm1tIixMVFM6IkhILm1tLnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSJ9''@;'; + put 'put ''LG1lcmlkaWVtUGFyc2U6L2VuamluZ3xzaXlhbmd8c29udGVufG5kYWx1LyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oRSxNZSl7cmV0dXJuIDEyPT09RSYmKEU9MCksImVuamluZyI9PT1NZT9FOiJzaXlhbmciPT09TWU/RT49MTE/RTpFKzEyOiJzb250ZW4iPT09TWV8fCJuZGFsdSI9PT1NZT9F''@;'; + put 'put ''KzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oRSxNZSxVKXtyZXR1cm4gRTwxMT8iZW5qaW5nIjpFPDE1PyJzaXlhbmciOkU8MTk/InNvbnRlbiI6Im5kYWx1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltEaW50ZW4gcHVuaWtvIHB1a3VsXSBMVCIsbmV4dERheToiW01iZW5qYW5nIHB1a3Vs''@;'; + put 'put ''XSBMVCIsbmV4dFdlZWs6ImRkZGQgW3B1a3VsXSBMVCIsbGFzdERheToiW0thbGEgd2luZ2kgcHVrdWxdIExUIixsYXN0V2VlazoiZGRkZCBba2VwZW5na2VyIHB1a3VsXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToid29udGVuIGluZyAlcyIscGFzdDoiJXMgaW5n''@;'; + put 'put ''a2FuZyBrZXBlbmdrZXIiLHM6InNhd2V0YXdpcyBkZXRpayIsc3M6IiVkIGRldGlrIixtOiJzZXR1bmdnYWwgbWVuaXQiLG1tOiIlZCBtZW5pdCIsaDoic2V0dW5nZ2FsIGphbSIsaGg6IiVkIGphbSIsZDoic2VkaW50ZW4iLGRkOiIlZCBkaW50ZW4iLE06InNld3VsYW4iLE1NOiIlZCB3dWxh''@;'; + put 'put ''biIseToic2V0YXVuIix5eToiJWQgdGF1biJ9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDQwODUxOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgia2EiLHttb250aHM6Ilx1MTBkOFx1MTBkMFx1MTBkY1x1MTBk''@;'; + put 'put ''NVx1MTBkMFx1MTBlMFx1MTBkOF9cdTEwZDdcdTEwZDRcdTEwZDFcdTEwZDRcdTEwZTBcdTEwZDVcdTEwZDBcdTEwZGFcdTEwZDhfXHUxMGRiXHUxMGQwXHUxMGUwXHUxMGUyXHUxMGQ4X1x1MTBkMFx1MTBkZVx1MTBlMFx1MTBkOFx1MTBkYVx1MTBkOF9cdTEwZGJcdTEwZDBcdTEwZDhcdTEw''@;'; + put 'put ''ZTFcdTEwZDhfXHUxMGQ4XHUxMGQ1XHUxMGRjXHUxMGQ4XHUxMGUxXHUxMGQ4X1x1MTBkOFx1MTBkNVx1MTBkYVx1MTBkOFx1MTBlMVx1MTBkOF9cdTEwZDBcdTEwZDJcdTEwZDVcdTEwZDhcdTEwZTFcdTEwZTJcdTEwZGRfXHUxMGUxXHUxMGQ0XHUxMGU1XHUxMGUyXHUxMGQ0XHUxMGRiXHUx''@;'; + put 'put ''MGQxXHUxMGQ0XHUxMGUwXHUxMGQ4X1x1MTBkZFx1MTBlNVx1MTBlMlx1MTBkZFx1MTBkYlx1MTBkMVx1MTBkNFx1MTBlMFx1MTBkOF9cdTEwZGNcdTEwZGRcdTEwZDRcdTEwZGJcdTEwZDFcdTEwZDRcdTEwZTBcdTEwZDhfXHUxMGQzXHUxMGQ0XHUxMGQ5XHUxMGQ0XHUxMGRiXHUxMGQxXHUx''@;'; + put 'put ''MGQ0XHUxMGUwXHUxMGQ4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTEwZDhcdTEwZDBcdTEwZGNfXHUxMGQ3XHUxMGQ0XHUxMGQxX1x1MTBkYlx1MTBkMFx1MTBlMF9cdTEwZDBcdTEwZGVcdTEwZTBfXHUxMGRiXHUxMGQwXHUxMGQ4X1x1MTBkOFx1MTBkNVx1MTBkY19cdTEwZDhcdTEw''@;'; + put 'put ''ZDVcdTEwZGFfXHUxMGQwXHUxMGQyXHUxMGQ1X1x1MTBlMVx1MTBkNFx1MTBlNV9cdTEwZGRcdTEwZTVcdTEwZTJfXHUxMGRjXHUxMGRkXHUxMGQ0X1x1MTBkM1x1MTBkNFx1MTBkOSIuc3BsaXQoIl8iKSx3ZWVrZGF5czp7c3RhbmRhbG9uZToiXHUxMGQ5XHUxMGQ1XHUxMGQ4XHUxMGUwXHUx''@;'; + put 'put ''MGQwX1x1MTBkZFx1MTBlMFx1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1MTBkOF9cdTEwZTFcdTEwZDBcdTEwZGJcdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZDhfXHUxMGRkXHUxMGQ3XHUxMGVlXHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGQ4X1x1''@;'; + put 'put ''MTBlZVx1MTBlM1x1MTBkN1x1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1MTBkOF9cdTEwZGVcdTEwZDBcdTEwZTBcdTEwZDBcdTEwZTFcdTEwZDlcdTEwZDRcdTEwZDVcdTEwZDhfXHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGQ4Ii5zcGxpdCgiXyIpLGZvcm1hdDoi''@;'; + put 'put ''XHUxMGQ5XHUxMGQ1XHUxMGQ4XHUxMGUwXHUxMGQwXHUxMGUxX1x1MTBkZFx1MTBlMFx1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1MTBlMV9cdTEwZTFcdTEwZDBcdTEwZGJcdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZTFfXHUxMGRkXHUxMGQ3XHUxMGVlXHUxMGU4''@;'; + put 'put ''XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGUxX1x1MTBlZVx1MTBlM1x1MTBkN1x1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1MTBlMV9cdTEwZGVcdTEwZDBcdTEwZTBcdTEwZDBcdTEwZTFcdTEwZDlcdTEwZDRcdTEwZDVcdTEwZTFfXHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQw''@;'; + put 'put ''XHUxMGQ3XHUxMGUxIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi8oXHUxMGVjXHUxMGQ4XHUxMGRjXHUxMGQwfFx1MTBlOFx1MTBkNFx1MTBkYlx1MTBkM1x1MTBkNFx1MTBkMikvfSx3ZWVrZGF5c1Nob3J0OiJcdTEwZDlcdTEwZDVcdTEwZDhfXHUxMGRkXHUxMGUwXHUxMGU4X1x1MTBlMVx1MTBk''@;'; + put 'put ''MFx1MTBkYl9cdTEwZGRcdTEwZDdcdTEwZWVfXHUxMGVlXHUxMGUzXHUxMGQ3X1x1MTBkZVx1MTBkMFx1MTBlMF9cdTEwZThcdTEwZDBcdTEwZDEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MTBkOVx1MTBkNV9cdTEwZGRcdTEwZTBfXHUxMGUxXHUxMGQwX1x1MTBkZFx1MTBkN19cdTEw''@;'; + put 'put ''ZWVcdTEwZTNfXHUxMGRlXHUxMGQwX1x1MTBlOFx1MTBkMCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZ''@;'; + put 'put ''WVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTEwZDNcdTEwZTZcdTEwZDRcdTEwZTFdIExUWy1cdTEwZDZcdTEwZDRdIixuZXh0RGF5OiJbXHUxMGVlXHUxMGQ1XHUxMGQwXHUxMGRhXSBMVFstXHUxMGQ2XHUxMGQ0XSIsbGFzdERheToiW1x1MTBkMlx1MTBlM1x1MTBlOFx1MTBk''@;'; + put 'put ''OFx1MTBkY10gTFRbLVx1MTBkNlx1MTBkNF0iLG5leHRXZWVrOiJbXHUxMGU4XHUxMGQ0XHUxMGRiXHUxMGQzXHUxMGQ0XHUxMGQyXSBkZGRkIExUWy1cdTEwZDZcdTEwZDRdIixsYXN0V2VlazoiW1x1MTBlY1x1MTBkOFx1MTBkY1x1MTBkMF0gZGRkZCBMVC1cdTEwZDZcdTEwZDQiLHNhbWVF''@;'; + put 'put ''bHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ZnVuY3Rpb24oRSl7cmV0dXJuIEUucmVwbGFjZSgvKFx1MTBlY1x1MTBkMFx1MTBkYnxcdTEwZWNcdTEwZTNcdTEwZDd8XHUxMGUxXHUxMGQwXHUxMGQwXHUxMGQ3fFx1MTBlY1x1MTBkNFx1MTBkYXxcdTEwZDNcdTEwZTZ8XHUxMGQ3XHUx''@;'; + put 'put ''MGQ1KShcdTEwZDh8XHUxMGQ0KS8sZnVuY3Rpb24oTWUsVSxRKXtyZXR1cm4iXHUxMGQ4Ij09PVE/VSsiXHUxMGU4XHUxMGQ4IjpVK1ErIlx1MTBlOFx1MTBkOCJ9KX0scGFzdDpmdW5jdGlvbihFKXtyZXR1cm4vKFx1MTBlY1x1MTBkMFx1MTBkYlx1MTBkOHxcdTEwZWNcdTEwZTNcdTEwZDdc''@;'; + put 'put ''dTEwZDh8XHUxMGUxXHUxMGQwXHUxMGQwXHUxMGQ3XHUxMGQ4fFx1MTBkM1x1MTBlNlx1MTBkNHxcdTEwZDdcdTEwZDVcdTEwZDQpLy50ZXN0KEUpP0UucmVwbGFjZSgvKFx1MTBkOHxcdTEwZDQpJC8sIlx1MTBkOFx1MTBlMSBcdTEwZWNcdTEwZDhcdTEwZGMiKTovXHUxMGVjXHUxMGQ0XHUx''@;'; + put 'put ''MGRhXHUxMGQ4Ly50ZXN0KEUpP0UucmVwbGFjZSgvXHUxMGVjXHUxMGQ0XHUxMGRhXHUxMGQ4JC8sIlx1MTBlY1x1MTBkYVx1MTBkOFx1MTBlMSBcdTEwZWNcdTEwZDhcdTEwZGMiKTpFfSxzOiJcdTEwZTBcdTEwZDBcdTEwZGJcdTEwZDNcdTEwZDRcdTEwZGNcdTEwZDhcdTEwZGJcdTEwZDQg''@;'; + put 'put ''XHUxMGVjXHUxMGQwXHUxMGRiXHUxMGQ4IixzczoiJWQgXHUxMGVjXHUxMGQwXHUxMGRiXHUxMGQ4IixtOiJcdTEwZWNcdTEwZTNcdTEwZDdcdTEwZDgiLG1tOiIlZCBcdTEwZWNcdTEwZTNcdTEwZDdcdTEwZDgiLGg6Ilx1MTBlMVx1MTBkMFx1MTBkMFx1MTBkN1x1MTBkOCIsaGg6IiVkIFx1''@;'; + put 'put ''MTBlMVx1MTBkMFx1MTBkMFx1MTBkN1x1MTBkOCIsZDoiXHUxMGQzXHUxMGU2XHUxMGQ0IixkZDoiJWQgXHUxMGQzXHUxMGU2XHUxMGQ0IixNOiJcdTEwZDdcdTEwZDVcdTEwZDQiLE1NOiIlZCBcdTEwZDdcdTEwZDVcdTEwZDQiLHk6Ilx1MTBlY1x1MTBkNFx1MTBkYVx1MTBkOCIseXk6IiVk''@;'; + put 'put ''IFx1MTBlY1x1MTBkNFx1MTBkYVx1MTBkOCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6LzB8MS1cdTEwZGFcdTEwZDh8XHUxMGRiXHUxMGQ0LVxkezEsMn18XGR7MSwyfS1cdTEwZDQvLG9yZGluYWw6ZnVuY3Rpb24oRSl7cmV0dXJuIDA9PT1FP0U6MT09PUU/RSsiLVx1MTBkYVx1MTBkOCI6''@;'; + put 'put ''RTwyMHx8RTw9MTAwJiZFJTIwPT0wfHxFJTEwMD09MD8iXHUxMGRiXHUxMGQ0LSIrRTpFKyItXHUxMGQ0In0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMTYwNzQ6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezA6Ii1cdTA0NDhc''@;'; + put 'put ''dTA0NTYiLDE6Ii1cdTA0NDhcdTA0NTYiLDI6Ii1cdTA0NDhcdTA0NTYiLDM6Ii1cdTA0NDhcdTA0NTYiLDQ6Ii1cdTA0NDhcdTA0NTYiLDU6Ii1cdTA0NDhcdTA0NTYiLDY6Ii1cdTA0NDhcdTA0NGIiLDc6Ii1cdTA0NDhcdTA0NTYiLDg6Ii1cdTA0NDhcdTA0NTYiLDk6Ii1cdTA0NDhcdTA0''@;'; + put 'put ''NGIiLDEwOiItXHUwNDQ4XHUwNDRiIiwyMDoiLVx1MDQ0OFx1MDQ0YiIsMzA6Ii1cdTA0NDhcdTA0NGIiLDQwOiItXHUwNDQ4XHUwNDRiIiw1MDoiLVx1MDQ0OFx1MDQ1NiIsNjA6Ii1cdTA0NDhcdTA0NGIiLDcwOiItXHUwNDQ4XHUwNDU2Iiw4MDoiLVx1MDQ0OFx1MDQ1NiIsOTA6Ii1cdTA0''@;'; + put 'put ''NDhcdTA0NGIiLDEwMDoiLVx1MDQ0OFx1MDQ1NiJ9O21lLmRlZmluZUxvY2FsZSgia2siLHttb250aHM6Ilx1MDQ5Ylx1MDQzMFx1MDRhM1x1MDQ0Mlx1MDQzMFx1MDQ0MF9cdTA0MzBcdTA0OWJcdTA0M2ZcdTA0MzBcdTA0M2RfXHUwNDNkXHUwNDMwXHUwNDQzXHUwNDQwXHUwNDRiXHUwNDM3''@;'; + put 'put ''X1x1MDQ0MVx1MDRkOVx1MDQ0M1x1MDQ1Nlx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0M2NcdTA0NGJcdTA0NDBfXHUwNDNjXHUwNDMwXHUwNDQzXHUwNDQxXHUwNDRiXHUwNDNjX1x1MDQ0OFx1MDQ1Nlx1MDQzYlx1MDQzNFx1MDQzNV9cdTA0NDJcdTA0MzBcdTA0M2NcdTA0NGJcdTA0MzdfXHUw''@;'; + put 'put ''NDliXHUwNDRiXHUwNDQwXHUwNDNhXHUwNGFmXHUwNDM5XHUwNDM1XHUwNDNhX1x1MDQ5Ylx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZF9cdTA0OWJcdTA0MzBcdTA0NDBcdTA0MzBcdTA0NDhcdTA0MzBfXHUwNDM2XHUwNDM1XHUwNDNiXHUwNDQyXHUwNDNlXHUwNDliXHUwNDQxXHUwNDMwXHUw''@;'; + put 'put ''NDNkIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA0OWJcdTA0MzBcdTA0YTNfXHUwNDMwXHUwNDliXHUwNDNmX1x1MDQzZFx1MDQzMFx1MDQ0M19cdTA0NDFcdTA0ZDlcdTA0NDNfXHUwNDNjXHUwNDMwXHUwNDNjX1x1MDQzY1x1MDQzMFx1MDQ0M19cdTA0NDhcdTA0NTZcdTA0M2JfXHUw''@;'; + put 'put ''NDQyXHUwNDMwXHUwNDNjX1x1MDQ5Ylx1MDQ0Ylx1MDQ0MF9cdTA0OWJcdTA0MzBcdTA0MzdfXHUwNDliXHUwNDMwXHUwNDQwX1x1MDQzNlx1MDQzNVx1MDQzYiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNDM2XHUwNDM1XHUwNDNhXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDMxXHUwNDU2X1x1''@;'; + put 'put ''MDQzNFx1MDRhZlx1MDQzOVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQzMVx1MDQ1Nl9cdTA0NDFcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzFcdTA0NTZfXHUwNDQxXHUwNGQ5XHUwNDQwXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDMxXHUwNDU2X1x1MDQzMVx1MDQzNVx1MDQzOVx1''@;'; + put 'put ''MDQ0MVx1MDQzNVx1MDQzZFx1MDQzMVx1MDQ1Nl9cdTA0MzZcdTA0YjFcdTA0M2NcdTA0MzBfXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDMxXHUwNDU2Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDQzNlx1MDQzNVx1MDQzYV9cdTA0MzRcdTA0YWZcdTA0MzlfXHUwNDQxXHUwNDM1XHUw''@;'; + put 'put ''NDM5X1x1MDQ0MVx1MDRkOVx1MDQ0MF9cdTA0MzFcdTA0MzVcdTA0MzlfXHUwNDM2XHUwNGIxXHUwNDNjX1x1MDQ0MVx1MDQzNVx1MDQzZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDM2XHUwNDNhX1x1MDQzNFx1MDQzOV9cdTA0NDFcdTA0MzlfXHUwNDQxXHUwNDQwX1x1MDQzMVx1''@;'; + put 'put ''MDQzOV9cdTA0MzZcdTA0M2NfXHUwNDQxXHUwNDNkIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkg''@;'; + put 'put ''SEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDQxMVx1MDRhZlx1MDQzM1x1MDQ1Nlx1MDQzZCBcdTA0NDFcdTA0MzBcdTA0OTNcdTA0MzBcdTA0NDJdIExUIixuZXh0RGF5OiJbXHUwNDE1XHUwNDQwXHUwNDQyXHUwNDM1XHUwNGEzIFx1MDQ0MVx1MDQzMFx1MDQ5M1x1MDQzMFx1MDQ0''@;'; + put 'put ''Ml0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA0NDFcdTA0MzBcdTA0OTNcdTA0MzBcdTA0NDJdIExUIixsYXN0RGF5OiJbXHUwNDFhXHUwNDM1XHUwNDQ4XHUwNDM1IFx1MDQ0MVx1MDQzMFx1MDQ5M1x1MDQzMFx1MDQ0Ml0gTFQiLGxhc3RXZWVrOiJbXHUwNGU4XHUwNDQyXHUwNDNhXHUwNDM1''@;'; + put 'put ''XHUwNDNkIFx1MDQzMFx1MDQzZlx1MDQ0Mlx1MDQzMFx1MDQzZFx1MDQ0Ylx1MDRhM10gZGRkZCBbXHUwNDQxXHUwNDMwXHUwNDkzXHUwNDMwXHUwNDQyXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNDU2XHUwNDQ4XHUwNDU2XHUwNDNkXHUwNDM0XHUw''@;'; + put 'put ''NDM1IixwYXN0OiIlcyBcdTA0MzFcdTA0YjFcdTA0NDBcdTA0NGJcdTA0M2QiLHM6Ilx1MDQzMVx1MDQ1Nlx1MDQ0MFx1MDQzZFx1MDQzNVx1MDQ0OFx1MDQzNSBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLHNzOiIlZCBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0''@;'; + put 'put ''M2RcdTA0MzQiLG06Ilx1MDQzMVx1MDQ1Nlx1MDQ0MCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLG1tOiIlZCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLGg6Ilx1MDQzMVx1MDQ1Nlx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0OTNcdTA0MzBcdTA0NDIiLGhoOiIlZCBc''@;'; + put 'put ''dTA0NDFcdTA0MzBcdTA0OTNcdTA0MzBcdTA0NDIiLGQ6Ilx1MDQzMVx1MDQ1Nlx1MDQ0MCBcdTA0M2FcdTA0YWZcdTA0M2QiLGRkOiIlZCBcdTA0M2FcdTA0YWZcdTA0M2QiLE06Ilx1MDQzMVx1MDQ1Nlx1MDQ0MCBcdTA0MzBcdTA0MzkiLE1NOiIlZCBcdTA0MzBcdTA0MzkiLHk6Ilx1MDQz''@;'; + put 'put ''MVx1MDQ1Nlx1MDQ0MCBcdTA0MzZcdTA0NGJcdTA0M2IiLHl5OiIlZCBcdTA0MzZcdTA0NGJcdTA0M2IifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0NDhcdTA0NTZ8XHUwNDQ4XHUwNDRiKS8sb3JkaW5hbDpmdW5jdGlvbihNZSl7cmV0dXJuIE1lKyhCW01lXXx8QltN''@;'; + put 'put ''ZSUxMF18fEJbTWU+PTEwMD8xMDA6bnVsbF0pfSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw1MzM0MzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUxN2UxIiwyOiJcdTE3ZTIiLDM6Ilx1MTdlMyIsNDoiXHUxN2U0Iiw1''@;'; + put 'put ''OiJcdTE3ZTUiLDY6Ilx1MTdlNiIsNzoiXHUxN2U3Iiw4OiJcdTE3ZTgiLDk6Ilx1MTdlOSIsMDoiXHUxN2UwIn0sRT17Ilx1MTdlMSI6IjEiLCJcdTE3ZTIiOiIyIiwiXHUxN2UzIjoiMyIsIlx1MTdlNCI6IjQiLCJcdTE3ZTUiOiI1IiwiXHUxN2U2IjoiNiIsIlx1MTdlNyI6IjciLCJcdTE3''@;'; + put 'put ''ZTgiOiI4IiwiXHUxN2U5IjoiOSIsIlx1MTdlMCI6IjAifTttZS5kZWZpbmVMb2NhbGUoImttIix7bW9udGhzOiJcdTE3OThcdTE3ODBcdTE3OWFcdTE3YjZfXHUxNzgwXHUxN2JiXHUxNzk4XHUxN2QyXHUxNzk3XHUxN2M4X1x1MTc5OFx1MTdiOFx1MTc5M1x1MTdiNl9cdTE3OThcdTE3YzFc''@;'; + put 'put ''dTE3OWZcdTE3YjZfXHUxN2E3XHUxNzlmXHUxNzk3XHUxN2I2X1x1MTc5OFx1MTdiN1x1MTc5MFx1MTdiYlx1MTc5M1x1MTdiNl9cdTE3ODBcdTE3ODBcdTE3ZDJcdTE3ODBcdTE3OGFcdTE3YjZfXHUxNzlmXHUxN2I4XHUxN2EwXHUxN2I2X1x1MTc4MFx1MTc4OVx1MTdkMlx1MTc4OVx1MTdi''@;'; + put 'put ''Nl9cdTE3OGZcdTE3YmJcdTE3OWJcdTE3YjZfXHUxNzljXHUxN2I3XHUxNzg1XHUxN2QyXHUxNzg2XHUxN2I3XHUxNzgwXHUxN2I2X1x1MTc5Mlx1MTdkMlx1MTc5M1x1MTdiYyIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUxNzk4XHUxNzgwXHUxNzlhXHUxN2I2X1x1MTc4MFx1MTdiYlx1''@;'; + put 'put ''MTc5OFx1MTdkMlx1MTc5N1x1MTdjOF9cdTE3OThcdTE3YjhcdTE3OTNcdTE3YjZfXHUxNzk4XHUxN2MxXHUxNzlmXHUxN2I2X1x1MTdhN1x1MTc5Zlx1MTc5N1x1MTdiNl9cdTE3OThcdTE3YjdcdTE3OTBcdTE3YmJcdTE3OTNcdTE3YjZfXHUxNzgwXHUxNzgwXHUxN2QyXHUxNzgwXHUxNzhh''@;'; + put 'put ''XHUxN2I2X1x1MTc5Zlx1MTdiOFx1MTdhMFx1MTdiNl9cdTE3ODBcdTE3ODlcdTE3ZDJcdTE3ODlcdTE3YjZfXHUxNzhmXHUxN2JiXHUxNzliXHUxN2I2X1x1MTc5Y1x1MTdiN1x1MTc4NVx1MTdkMlx1MTc4Nlx1MTdiN1x1MTc4MFx1MTdiNl9cdTE3OTJcdTE3ZDJcdTE3OTNcdTE3YmMiLnNw''@;'; + put 'put ''bGl0KCJfIiksd2Vla2RheXM6Ilx1MTdhMlx1MTdiNlx1MTc5MVx1MTdiN1x1MTc4Zlx1MTdkMlx1MTc5OV9cdTE3ODVcdTE3ZDBcdTE3OTNcdTE3ZDJcdTE3OTFfXHUxN2EyXHUxNzg0XHUxN2QyXHUxNzgyXHUxN2I2XHUxNzlhX1x1MTc5Nlx1MTdiYlx1MTc5Ml9cdTE3OTZcdTE3ZDJcdTE3''@;'; + put 'put ''OWFcdTE3YTBcdTE3OWZcdTE3ZDJcdTE3OTRcdTE3OGZcdTE3YjdcdTE3Y2RfXHUxNzlmXHUxN2JiXHUxNzgwXHUxN2QyXHUxNzlhX1x1MTc5Zlx1MTdjNVx1MTc5YVx1MTdjZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTE3YTJcdTE3YjZfXHUxNzg1X1x1MTdhMl9cdTE3OTZfXHUx''@;'; + put 'put ''Nzk2XHUxN2QyXHUxNzlhX1x1MTc5Zlx1MTdiYl9cdTE3OWYiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MTdhMlx1MTdiNl9cdTE3ODVfXHUxN2EyX1x1MTc5Nl9cdTE3OTZcdTE3ZDJcdTE3OWFfXHUxNzlmXHUxN2JiX1x1MTc5ZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6''@;'; + put 'put ''ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MTc5Nlx1MTdkMlx1MTc5''@;'; + put 'put ''YVx1MTdiOVx1MTc4MHxcdTE3OWJcdTE3ZDJcdTE3ODRcdTE3YjZcdTE3ODUvLGlzUE06ZnVuY3Rpb24oVSl7cmV0dXJuIlx1MTc5Ylx1MTdkMlx1MTc4NFx1MTdiNlx1MTc4NSI9PT1VfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsWil7cmV0dXJuIFU8MTI/Ilx1MTc5Nlx1MTdkMlx1MTc5YVx1''@;'; + put 'put ''MTdiOVx1MTc4MCI6Ilx1MTc5Ylx1MTdkMlx1MTc4NFx1MTdiNlx1MTc4NSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUxNzkwXHUxN2QyXHUxNzg0XHUxN2MzXHUxNzkzXHUxN2MxXHUxN2M3IFx1MTc5OFx1MTdjOVx1MTdjNFx1MTc4NF0gTFQiLG5leHREYXk6IltcdTE3OWZcdTE3ZDJcdTE3''@;'; + put 'put ''YTJcdTE3YzJcdTE3ODAgXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MTc5OFx1MTdjOVx1MTdjNFx1MTc4NF0gTFQiLGxhc3REYXk6IltcdTE3OThcdTE3ZDJcdTE3OWZcdTE3YjdcdTE3OWJcdTE3OThcdTE3YjdcdTE3ODkgXHUxNzk4XHUxN2M5XHUx''@;'; + put 'put ''N2M0XHUxNzg0XSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MTc5Zlx1MTc5NFx1MTdkMlx1MTc4Zlx1MTdiNlx1MTdhMFx1MTdjZFx1MTc5OFx1MTdiYlx1MTc5M10gW1x1MTc5OFx1MTdjOVx1MTdjNFx1MTc4NF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzXHUx''@;'; + put 'put ''NzkxXHUxN2MwXHUxNzhmIixwYXN0OiIlc1x1MTc5OFx1MTdiYlx1MTc5MyIsczoiXHUxNzk0XHUxN2M5XHUxN2JiXHUxNzkzXHUxN2QyXHUxNzk4XHUxN2I2XHUxNzkzXHUxNzljXHUxN2I3XHUxNzkzXHUxN2I2XHUxNzkxXHUxN2I4IixzczoiJWQgXHUxNzljXHUxN2I3XHUxNzkzXHUxN2I2''@;'; + put 'put ''XHUxNzkxXHUxN2I4IixtOiJcdTE3OThcdTE3YmRcdTE3OTlcdTE3OTNcdTE3YjZcdTE3OTFcdTE3YjgiLG1tOiIlZCBcdTE3OTNcdTE3YjZcdTE3OTFcdTE3YjgiLGg6Ilx1MTc5OFx1MTdiZFx1MTc5OVx1MTc5OFx1MTdjOVx1MTdjNFx1MTc4NCIsaGg6IiVkIFx1MTc5OFx1MTdjOVx1MTdj''@;'; + put 'put ''NFx1MTc4NCIsZDoiXHUxNzk4XHUxN2JkXHUxNzk5XHUxNzkwXHUxN2QyXHUxNzg0XHUxN2MzIixkZDoiJWQgXHUxNzkwXHUxN2QyXHUxNzg0XHUxN2MzIixNOiJcdTE3OThcdTE3YmRcdTE3OTlcdTE3ODFcdTE3YzIiLE1NOiIlZCBcdTE3ODFcdTE3YzIiLHk6Ilx1MTc5OFx1MTdiZFx1MTc5''@;'; + put 'put ''OVx1MTc4Nlx1MTdkMlx1MTc5M1x1MTdiNlx1MTdjNiIseXk6IiVkIFx1MTc4Nlx1MTdkMlx1MTc5M1x1MTdiNlx1MTdjNiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1x1MTc5MVx1MTdiOFxkezEsMn0vLG9yZGluYWw6Ilx1MTc5MVx1MTdiOCVkIixwcmVwYXJzZTpmdW5jdGlvbihVKXty''@;'; + put 'put ''ZXR1cm4gVS5yZXBsYWNlKC9bXHUxN2UxXHUxN2UyXHUxN2UzXHUxN2U0XHUxN2U1XHUxN2U2XHUxN2U3XHUxN2U4XHUxN2U5XHUxN2UwXS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihR''@;'; + put 'put ''KXtyZXR1cm4gQltRXX0pfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw0NDc5OTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwY2U3IiwyOiJcdTBjZTgiLDM6Ilx1MGNlOSIsNDoiXHUwY2VhIiw1OiJcdTBjZWIiLDY6''@;'; + put 'put ''Ilx1MGNlYyIsNzoiXHUwY2VkIiw4OiJcdTBjZWUiLDk6Ilx1MGNlZiIsMDoiXHUwY2U2In0sRT17Ilx1MGNlNyI6IjEiLCJcdTBjZTgiOiIyIiwiXHUwY2U5IjoiMyIsIlx1MGNlYSI6IjQiLCJcdTBjZWIiOiI1IiwiXHUwY2VjIjoiNiIsIlx1MGNlZCI6IjciLCJcdTBjZWUiOiI4IiwiXHUw''@;'; + put 'put ''Y2VmIjoiOSIsIlx1MGNlNiI6IjAifTttZS5kZWZpbmVMb2NhbGUoImtuIix7bW9udGhzOiJcdTBjOWNcdTBjYThcdTBjYjVcdTBjYjBcdTBjYmZfXHUwY2FiXHUwY2M2XHUwY2FjXHUwY2NkXHUwY2IwXHUwY2I1XHUwY2IwXHUwY2JmX1x1MGNhZVx1MGNiZVx1MGNiMFx1MGNjZFx1MGM5YVx1''@;'; + put 'put ''MGNjZF9cdTBjOGZcdTBjYWFcdTBjY2RcdTBjYjBcdTBjYmZcdTBjYjJcdTBjY2RfXHUwY2FlXHUwY2M2XHUwY2Q1X1x1MGM5Y1x1MGNjMlx1MGNhOFx1MGNjZF9cdTBjOWNcdTBjYzFcdTBjYjJcdTBjYzZcdTBjZDZfXHUwYzg2XHUwYzk3XHUwY2I4XHUwY2NkXHUwYzlmXHUwY2NkX1x1MGNi''@;'; + put 'put ''OFx1MGNjNlx1MGNhYVx1MGNjZFx1MGM5Zlx1MGNjNlx1MGM4Mlx1MGNhY1x1MGNiMFx1MGNjZF9cdTBjODVcdTBjOTVcdTBjY2RcdTBjOWZcdTBjYzZcdTBjYzJcdTBjZDVcdTBjYWNcdTBjYjBcdTBjY2RfXHUwY2E4XHUwY2I1XHUwY2M2XHUwYzgyXHUwY2FjXHUwY2IwXHUwY2NkX1x1MGNh''@;'; + put 'put ''MVx1MGNiZlx1MGNiOFx1MGNjNlx1MGM4Mlx1MGNhY1x1MGNiMFx1MGNjZCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwYzljXHUwY2E4X1x1MGNhYlx1MGNjNlx1MGNhY1x1MGNjZFx1MGNiMF9cdTBjYWVcdTBjYmVcdTBjYjBcdTBjY2RcdTBjOWFcdTBjY2RfXHUwYzhmXHUwY2FhXHUw''@;'; + put 'put ''Y2NkXHUwY2IwXHUwY2JmXHUwY2IyXHUwY2NkX1x1MGNhZVx1MGNjNlx1MGNkNV9cdTBjOWNcdTBjYzJcdTBjYThcdTBjY2RfXHUwYzljXHUwY2MxXHUwY2IyXHUwY2M2XHUwY2Q2X1x1MGM4Nlx1MGM5N1x1MGNiOFx1MGNjZFx1MGM5Zlx1MGNjZF9cdTBjYjhcdTBjYzZcdTBjYWFcdTBjY2Rc''@;'; + put 'put ''dTBjOWZcdTBjYzZcdTBjODJfXHUwYzg1XHUwYzk1XHUwY2NkXHUwYzlmXHUwY2M2XHUwY2MyXHUwY2Q1X1x1MGNhOFx1MGNiNVx1MGNjNlx1MGM4Ml9cdTBjYTFcdTBjYmZcdTBjYjhcdTBjYzZcdTBjODIiLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwY2Fk''@;'; + put 'put ''XHUwY2JlXHUwY2E4XHUwY2MxXHUwY2I1XHUwY2JlXHUwY2IwX1x1MGNiOFx1MGNjNlx1MGNjMlx1MGNkNVx1MGNhZVx1MGNiNVx1MGNiZVx1MGNiMF9cdTBjYWVcdTBjODJcdTBjOTdcdTBjYjNcdTBjYjVcdTBjYmVcdTBjYjBfXHUwY2FjXHUwY2MxXHUwY2E3XHUwY2I1XHUwY2JlXHUwY2Iw''@;'; + put 'put ''X1x1MGM5N1x1MGNjMVx1MGNiMFx1MGNjMVx1MGNiNVx1MGNiZVx1MGNiMF9cdTBjYjZcdTBjYzFcdTBjOTVcdTBjY2RcdTBjYjBcdTBjYjVcdTBjYmVcdTBjYjBfXHUwY2I2XHUwY2E4XHUwY2JmXHUwY2I1XHUwY2JlXHUwY2IwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGNhZFx1''@;'; + put 'put ''MGNiZVx1MGNhOFx1MGNjMV9cdTBjYjhcdTBjYzZcdTBjYzJcdTBjZDVcdTBjYWVfXHUwY2FlXHUwYzgyXHUwYzk3XHUwY2IzX1x1MGNhY1x1MGNjMVx1MGNhN19cdTBjOTdcdTBjYzFcdTBjYjBcdTBjYzFfXHUwY2I2XHUwY2MxXHUwYzk1XHUwY2NkXHUwY2IwX1x1MGNiNlx1MGNhOFx1MGNi''@;'; + put 'put ''ZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwY2FkXHUwY2JlX1x1MGNiOFx1MGNjNlx1MGNjMlx1MGNkNV9cdTBjYWVcdTBjODJfXHUwY2FjXHUwY2MxX1x1MGM5N1x1MGNjMV9cdTBjYjZcdTBjYzFfXHUwY2I2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIixM''@;'; + put 'put ''VFM6IkEgaDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZLCBBIGg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MGM4N1x1MGM4Mlx1MGNhNlx1MGNjMV0gTFQiLG5leHREYXk6''@;'; + put 'put ''IltcdTBjYThcdTBjYmVcdTBjYjNcdTBjYzZdIExUIixuZXh0V2VlazoiZGRkZCwgTFQiLGxhc3REYXk6IltcdTBjYThcdTBjYmZcdTBjYThcdTBjY2RcdTBjYThcdTBjYzZdIExUIixsYXN0V2VlazoiW1x1MGM5NVx1MGNjNlx1MGNjMlx1MGNhOFx1MGNjNlx1MGNhZl0gZGRkZCwgTFQiLHNh''@;'; + put 'put ''bWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MGNhOFx1MGM4Mlx1MGNhNFx1MGNiMCIscGFzdDoiJXMgXHUwY2I5XHUwY2JmXHUwYzgyXHUwY2E2XHUwY2M2IixzOiJcdTBjOTVcdTBjYzZcdTBjYjJcdTBjYjVcdTBjYzEgXHUwYzk1XHUwY2NkXHUwY2I3XHUwY2EzXHUw''@;'; + put 'put ''Yzk3XHUwY2IzXHUwY2MxIixzczoiJWQgXHUwY2I4XHUwY2M2XHUwYzk1XHUwY2M2XHUwYzgyXHUwY2ExXHUwY2MxXHUwYzk3XHUwY2IzXHUwY2MxIixtOiJcdTBjOTJcdTBjODJcdTBjYTZcdTBjYzEgXHUwY2E4XHUwY2JmXHUwY2FlXHUwY2JmXHUwY2I3IixtbToiJWQgXHUwY2E4XHUwY2Jm''@;'; + put 'put ''XHUwY2FlXHUwY2JmXHUwY2I3IixoOiJcdTBjOTJcdTBjODJcdTBjYTZcdTBjYzEgXHUwYzk3XHUwYzgyXHUwYzlmXHUwY2M2IixoaDoiJWQgXHUwYzk3XHUwYzgyXHUwYzlmXHUwY2M2IixkOiJcdTBjOTJcdTBjODJcdTBjYTZcdTBjYzEgXHUwY2E2XHUwY2JmXHUwY2E4IixkZDoiJWQgXHUw''@;'; + put 'put ''Y2E2XHUwY2JmXHUwY2E4IixNOiJcdTBjOTJcdTBjODJcdTBjYTZcdTBjYzEgXHUwY2E0XHUwY2JmXHUwYzgyXHUwYzk3XHUwY2IzXHUwY2MxIixNTToiJWQgXHUwY2E0XHUwY2JmXHUwYzgyXHUwYzk3XHUwY2IzXHUwY2MxIix5OiJcdTBjOTJcdTBjODJcdTBjYTZcdTBjYzEgXHUwY2I1XHUw''@;'; + put 'put ''Y2IwXHUwY2NkXHUwY2I3Iix5eToiJWQgXHUwY2I1XHUwY2IwXHUwY2NkXHUwY2I3In0scHJlcGFyc2U6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvW1x1MGNlN1x1MGNlOFx1MGNlOVx1MGNlYVx1MGNlYlx1MGNlY1x1MGNlZFx1MGNlZVx1MGNlZlx1MGNlNl0vZyxmdW5jdGlvbihR''@;'; + put 'put ''KXtyZXR1cm4gRVtRXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oUSl7cmV0dXJuIEJbUV19KX0sbWVyaWRpZW1QYXJzZTovXHUwY2IwXHUwY2JlXHUwY2E0XHUwY2NkXHUwY2IwXHUwY2JmfFx1MGNhY1x1MGNjNlx1MGNiM1x1MGNi''@;'; + put 'put ''Zlx1MGM5N1x1MGNjZFx1MGM5N1x1MGNjNnxcdTBjYWVcdTBjYTdcdTBjY2RcdTBjYWZcdTBjYmVcdTBjYjlcdTBjY2RcdTBjYTh8XHUwY2I4XHUwYzgyXHUwYzljXHUwY2M2LyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gMTI9PT1VJiYoVT0wKSwiXHUwY2IwXHUwY2JlXHUw''@;'; + put 'put ''Y2E0XHUwY2NkXHUwY2IwXHUwY2JmIj09PVE/VTw0P1U6VSsxMjoiXHUwY2FjXHUwY2M2XHUwY2IzXHUwY2JmXHUwYzk3XHUwY2NkXHUwYzk3XHUwY2M2Ij09PVE/VToiXHUwY2FlXHUwY2E3XHUwY2NkXHUwY2FmXHUwY2JlXHUwY2I5XHUwY2NkXHUwY2E4Ij09PVE/VT49MTA/VTpVKzEyOiJc''@;'; + put 'put ''dTBjYjhcdTBjODJcdTBjOWNcdTBjYzYiPT09UT9VKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oVSxRLFope3JldHVybiBVPDQ/Ilx1MGNiMFx1MGNiZVx1MGNhNFx1MGNjZFx1MGNiMFx1MGNiZiI6VTwxMD8iXHUwY2FjXHUwY2M2XHUwY2IzXHUwY2JmXHUwYzk3XHUwY2NkXHUwYzk3''@;'; + put 'put ''XHUwY2M2IjpVPDE3PyJcdTBjYWVcdTBjYTdcdTBjY2RcdTBjYWZcdTBjYmVcdTBjYjlcdTBjY2RcdTBjYTgiOlU8MjA/Ilx1MGNiOFx1MGM4Mlx1MGM5Y1x1MGNjNiI6Ilx1MGNiMFx1MGNiZVx1MGNhNFx1MGNjZFx1MGNiMFx1MGNiZiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEs''@;'; + put 'put ''Mn0oXHUwY2E4XHUwY2M2XHUwY2Q1KS8sb3JkaW5hbDpmdW5jdGlvbihVKXtyZXR1cm4gVSsiXHUwY2E4XHUwY2M2XHUwY2Q1In0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sMTM1NDk6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVm''@;'; + put 'put ''aW5lTG9jYWxlKCJrbyIse21vbnRoczoiMVx1YzZkNF8yXHVjNmQ0XzNcdWM2ZDRfNFx1YzZkNF81XHVjNmQ0XzZcdWM2ZDRfN1x1YzZkNF84XHVjNmQ0XzlcdWM2ZDRfMTBcdWM2ZDRfMTFcdWM2ZDRfMTJcdWM2ZDQiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjFcdWM2ZDRfMlx1YzZkNF8z''@;'; + put 'put ''XHVjNmQ0XzRcdWM2ZDRfNVx1YzZkNF82XHVjNmQ0XzdcdWM2ZDRfOFx1YzZkNF85XHVjNmQ0XzEwXHVjNmQ0XzExXHVjNmQ0XzEyXHVjNmQ0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdWM3N2NcdWM2OTRcdWM3N2NfXHVjNmQ0XHVjNjk0XHVjNzdjX1x1ZDY1NFx1YzY5NFx1Yzc3Y19cdWMy''@;'; + put 'put ''MThcdWM2OTRcdWM3N2NfXHViYWE5XHVjNjk0XHVjNzdjX1x1YWUwOFx1YzY5NFx1Yzc3Y19cdWQxYTBcdWM2OTRcdWM3N2MiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHVjNzdjX1x1YzZkNF9cdWQ2NTRfXHVjMjE4X1x1YmFhOV9cdWFlMDhfXHVkMWEwIi5zcGxpdCgiXyIpLHdlZWtk''@;'; + put 'put ''YXlzTWluOiJcdWM3N2NfXHVjNmQ0X1x1ZDY1NF9cdWMyMThfXHViYWE5X1x1YWUwOF9cdWQxYTAiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0iLExUUzoiQSBoOm1tOnNzIixMOiJZWVlZLk1NLkRELiIsTEw6IllZWVlcdWIxNDQgTU1NTSBEXHVjNzdjIixMTEw6IllZ''@;'; + put 'put ''WVlcdWIxNDQgTU1NTSBEXHVjNzdjIEEgaDptbSIsTExMTDoiWVlZWVx1YjE0NCBNTU1NIERcdWM3N2MgZGRkZCBBIGg6bW0iLGw6IllZWVkuTU0uREQuIixsbDoiWVlZWVx1YjE0NCBNTU1NIERcdWM3N2MiLGxsbDoiWVlZWVx1YjE0NCBNTU1NIERcdWM3N2MgQSBoOm1tIixsbGxsOiJZWVlZ''@;'; + put 'put ''XHViMTQ0IE1NTU0gRFx1Yzc3YyBkZGRkIEEgaDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJcdWM2MjRcdWIyOTggTFQiLG5leHREYXk6Ilx1YjBiNFx1Yzc3YyBMVCIsbmV4dFdlZWs6ImRkZGQgTFQiLGxhc3REYXk6Ilx1YzViNFx1YzgxYyBMVCIsbGFzdFdlZWs6Ilx1YzljMFx1YjA5Y1x1''@;'; + put 'put ''YzhmYyBkZGRkIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdWQ2YzQiLHBhc3Q6IiVzIFx1YzgwNCIsczoiXHViYTg3IFx1Y2QwOCIsc3M6IiVkXHVjZDA4IixtOiIxXHViZDg0IixtbToiJWRcdWJkODQiLGg6Ilx1ZDU1YyBcdWMyZGNcdWFjMDQiLGhoOiIl''@;'; + put 'put ''ZFx1YzJkY1x1YWMwNCIsZDoiXHVkNTU4XHViOGU4IixkZDoiJWRcdWM3N2MiLE06Ilx1ZDU1YyBcdWIyZWMiLE1NOiIlZFx1YjJlYyIseToiXHVjNzdjIFx1YjE0NCIseXk6IiVkXHViMTQ0In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdWM3N2N8XHVjNmQ0fFx1YzhmYykv''@;'; + put 'put ''LG9yZGluYWw6ZnVuY3Rpb24oRSxNZSl7c3dpdGNoKE1lKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBFKyJcdWM3N2MiO2Nhc2UiTSI6cmV0dXJuIEUrIlx1YzZkNCI7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBFKyJcdWM4ZmMiO2RlZmF1bHQ6cmV0dXJuIEV9fSxtZXJpZGll''@;'; + put 'put ''bVBhcnNlOi9cdWM2MjRcdWM4MDR8XHVjNjI0XHVkNmM0Lyxpc1BNOmZ1bmN0aW9uKEUpe3JldHVybiJcdWM2MjRcdWQ2YzQiPT09RX0sbWVyaWRpZW06ZnVuY3Rpb24oRSxNZSxVKXtyZXR1cm4gRTwxMj8iXHVjNjI0XHVjODA0IjoiXHVjNjI0XHVkNmM0In19KX0oTCgxNTQzOSkpfSw5MTAz''@;'; + put 'put ''NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwNjYxIiwyOiJcdTA2NjIiLDM6Ilx1MDY2MyIsNDoiXHUwNjY0Iiw1OiJcdTA2NjUiLDY6Ilx1MDY2NiIsNzoiXHUwNjY3Iiw4OiJcdTA2NjgiLDk6Ilx1MDY2OSIsMDoiXHUwNjYwIn0s''@;'; + put 'put ''RT17Ilx1MDY2MSI6IjEiLCJcdTA2NjIiOiIyIiwiXHUwNjYzIjoiMyIsIlx1MDY2NCI6IjQiLCJcdTA2NjUiOiI1IiwiXHUwNjY2IjoiNiIsIlx1MDY2NyI6IjciLCJcdTA2NjgiOiI4IiwiXHUwNjY5IjoiOSIsIlx1MDY2MCI6IjAifSxNZT1bIlx1MDZhOVx1MDYyN1x1MDY0Nlx1MDY0OFx1''@;'; + put 'put ''MDY0Nlx1MDZjYyBcdTA2MmZcdTA2NDhcdTA2NDhcdTA2ZDVcdTA2NDUiLCJcdTA2MzRcdTA2NDhcdTA2MjhcdTA2MjdcdTA2MmEiLCJcdTA2MjZcdTA2MjdcdTA2MzJcdTA2MjdcdTA2MzEiLCJcdTA2NDZcdTA2Y2NcdTA2MzNcdTA2MjdcdTA2NDYiLCJcdTA2MjZcdTA2MjdcdTA2Y2NcdTA2''@;'; + put 'put ''MjdcdTA2MzEiLCJcdTA2MmRcdTA2NDhcdTA2MzJcdTA2ZDVcdTA2Y2NcdTA2MzFcdTA2MjdcdTA2NDYiLCJcdTA2MmFcdTA2ZDVcdTA2NDVcdTA2NDVcdTA2NDhcdTA2MzIiLCJcdTA2MjZcdTA2MjdcdTA2MjgiLCJcdTA2MjZcdTA2ZDVcdTA2Y2NcdTA2NDRcdTA2NDhcdTA2NDhcdTA2NDQi''@;'; + put 'put ''LCJcdTA2MmFcdTA2MzRcdTA2MzFcdTA2Y2NcdTA2NDZcdTA2Y2MgXHUwNmNjXHUwNmQ1XHUwNjQzXHUwNmQ1XHUwNjQ1IiwiXHUwNjJhXHUwNjM0XHUwNjMxXHUwNmNjXHUwNjQ2XHUwNmNjIFx1MDYyZlx1MDY0OFx1MDY0OFx1MDZkNVx1MDY0NSIsIlx1MDY0M1x1MDYyN1x1MDY0Nlx1MDY0''@;'; + put 'put ''OFx1MDY0Nlx1MDZjYyBcdTA2Y2NcdTA2ZDVcdTA2YTlcdTA2ZDVcdTA2NDUiXTttZS5kZWZpbmVMb2NhbGUoImt1Iix7bW9udGhzOk1lLG1vbnRoc1Nob3J0Ok1lLHdlZWtkYXlzOiJcdTA2Y2NcdTA2NDdcdTIwMGNcdTA2NDNcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdc''@;'; + put 'put ''dTIwMGNfXHUwNjJmXHUwNjQ4XHUwNjQ4XHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1XHUwNjQ1XHUwNjQ3XHUyMDBjX1x1MDYzM1x1MDZjZVx1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NVx1MDY0NVx1MDY0N1x1MjAwY19cdTA2ODZcdTA2NDhcdTA2MjdcdTA2MzFcdTA2MzRcdTA2NDdcdTIwMGNc''@;'; + put 'put ''dTA2NDVcdTA2NDVcdTA2NDdcdTIwMGNfXHUwNjdlXHUwNmNlXHUwNjQ2XHUwNjJjXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1XHUwNjQ1XHUwNjQ3XHUyMDBjX1x1MDY0N1x1MDY0N1x1MjAwY1x1MDZjY1x1MDY0Nlx1MDZjY19cdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdc''@;'; + put 'put ''dTIwMGMiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1X1x1MDYyZlx1MDY0OFx1MDY0OFx1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NV9cdTA2MzNcdTA2Y2VcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVfXHUw''@;'; + put 'put ''Njg2XHUwNjQ4XHUwNjI3XHUwNjMxXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1X1x1MDY3ZVx1MDZjZVx1MDY0Nlx1MDYyY1x1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NV9cdTA2NDdcdTA2NDdcdTIwMGNcdTA2Y2NcdTA2NDZcdTA2Y2NfXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1XHUwNjQ1XHUw''@;'; + put 'put ''NjQ3XHUyMDBjIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2Y2NfXHUwNjJmX1x1MDYzM19cdTA2ODZfXHUwNjdlX1x1MDY0N19cdTA2MzQiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRE''@;'; + put 'put ''L01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MjZcdTA2Y2VcdTA2NDhcdTA2MjdcdTA2MzFcdTA2NDdcdTIwMGN8XHUwNjI4XHUwNjQ3XHUyMDBjXHUwNmNj''@;'; + put 'put ''XHUwNjI3XHUwNjQ2XHUwNmNjLyxpc1BNOmZ1bmN0aW9uKFEpe3JldHVybi9cdTA2MjZcdTA2Y2VcdTA2NDhcdTA2MjdcdTA2MzFcdTA2NDdcdTIwMGMvLnRlc3QoUSl9LG1lcmlkaWVtOmZ1bmN0aW9uKFEsWixpZSl7cmV0dXJuIFE8MTI/Ilx1MDYyOFx1MDY0N1x1MjAwY1x1MDZjY1x1MDYy''@;'; + put 'put ''N1x1MDY0Nlx1MDZjYyI6Ilx1MDYyNlx1MDZjZVx1MDY0OFx1MDYyN1x1MDYzMVx1MDY0N1x1MjAwYyJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI2XHUwNjQ3XHUyMDBjXHUwNjQ1XHUwNjMxXHUwNmM2IFx1MDY0M1x1MDYyN1x1MDYyYVx1MDY5OFx1MDY0NVx1MDZjZVx1MDYzMV0gTFQi''@;'; + put 'put ''LG5leHREYXk6IltcdTA2MjhcdTA2NDdcdTIwMGNcdTA2Y2NcdTA2MjdcdTA2NDZcdTA2Y2MgXHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDY0M1x1MDYyN1x1MDYyYVx1MDY5OFx1MDY0NVx1MDZjZVx1MDYzMV0gTFQi''@;'; + put 'put ''LGxhc3REYXk6IltcdTA2MmZcdTA2NDhcdTA2Y2VcdTA2NDZcdTA2Y2UgXHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MDY0M1x1MDYyN1x1MDYyYVx1MDY5OFx1MDY0NVx1MDZjZVx1MDYzMV0gTFQiLHNhbWVFbHNlOiJM''@;'; + put 'put ''In0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDY0NFx1MDY0N1x1MjAwYyAlcyIscGFzdDoiJXMiLHM6Ilx1MDY4Nlx1MDY0N1x1MjAwY1x1MDY0Nlx1MDYyZiBcdTA2ODZcdTA2MzFcdTA2NDNcdTA2NDdcdTIwMGNcdTA2Y2NcdTA2NDdcdTIwMGNcdTA2NDMiLHNzOiJcdTA2ODZcdTA2MzFc''@;'; + put 'put ''dTA2NDNcdTA2NDdcdTIwMGMgJWQiLG06Ilx1MDZjY1x1MDY0N1x1MjAwY1x1MDY0MyBcdTA2MmVcdTA2NDhcdTA2NDRcdTA2NDdcdTIwMGNcdTA2NDMiLG1tOiIlZCBcdTA2MmVcdTA2NDhcdTA2NDRcdTA2NDdcdTIwMGNcdTA2NDMiLGg6Ilx1MDZjY1x1MDY0N1x1MjAwY1x1MDY0MyBcdTA2''@;'; + put 'put ''NDNcdTA2MjdcdTA2MmFcdTA2OThcdTA2NDVcdTA2Y2VcdTA2MzEiLGhoOiIlZCBcdTA2NDNcdTA2MjdcdTA2MmFcdTA2OThcdTA2NDVcdTA2Y2VcdTA2MzEiLGQ6Ilx1MDZjY1x1MDY0N1x1MjAwY1x1MDY0MyBcdTA2OTVcdTA2YzZcdTA2OTgiLGRkOiIlZCBcdTA2OTVcdTA2YzZcdTA2OTgi''@;'; + put 'put ''LE06Ilx1MDZjY1x1MDY0N1x1MjAwY1x1MDY0MyBcdTA2NDVcdTA2MjdcdTA2NDZcdTA2YWYiLE1NOiIlZCBcdTA2NDVcdTA2MjdcdTA2NDZcdTA2YWYiLHk6Ilx1MDZjY1x1MDY0N1x1MjAwY1x1MDY0MyBcdTA2MzNcdTA2MjdcdTA2YjUiLHl5OiIlZCBcdTA2MzNcdTA2MjdcdTA2YjUifSxw''@;'; + put 'put ''cmVwYXJzZTpmdW5jdGlvbihRKXtyZXR1cm4gUS5yZXBsYWNlKC9bXHUwNjYxXHUwNjYyXHUwNjYzXHUwNjY0XHUwNjY1XHUwNjY2XHUwNjY3XHUwNjY4XHUwNjY5XHUwNjYwXS9nLGZ1bmN0aW9uKFope3JldHVybiBFW1pdfSkucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpm''@;'; + put 'put ''dW5jdGlvbihRKXtyZXR1cm4gUS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKFope3JldHVybiBCW1pdfSkucmVwbGFjZSgvLC9nLCJcdTA2MGMiKX0sd2Vlazp7ZG93OjYsZG95OjEyfX0pfShMKDE1NDM5KSl9LDkzMTI1OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJp''@;'; + put 'put ''Y3QiO3ZhciBCPXswOiItXHUwNDQ3XHUwNGFmIiwxOiItXHUwNDQ3XHUwNDM4IiwyOiItXHUwNDQ3XHUwNDM4IiwzOiItXHUwNDQ3XHUwNGFmIiw0OiItXHUwNDQ3XHUwNGFmIiw1OiItXHUwNDQ3XHUwNDM4Iiw2OiItXHUwNDQ3XHUwNDRiIiw3OiItXHUwNDQ3XHUwNDM4Iiw4OiItXHUwNDQ3''@;'; + put 'put ''XHUwNDM4Iiw5OiItXHUwNDQ3XHUwNDQzIiwxMDoiLVx1MDQ0N1x1MDQ0MyIsMjA6Ii1cdTA0NDdcdTA0NGIiLDMwOiItXHUwNDQ3XHUwNDQzIiw0MDoiLVx1MDQ0N1x1MDQ0YiIsNTA6Ii1cdTA0NDdcdTA0YWYiLDYwOiItXHUwNDQ3XHUwNDRiIiw3MDoiLVx1MDQ0N1x1MDQzOCIsODA6Ii1c''@;'; + put 'put ''dTA0NDdcdTA0MzgiLDkwOiItXHUwNDQ3XHUwNDQzIiwxMDA6Ii1cdTA0NDdcdTA0YWYifTttZS5kZWZpbmVMb2NhbGUoImt5Iix7bW9udGhzOiJcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGNfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDRjX1x1''@;'; + put 'put ''MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JcdTA0NGNfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZFx1MDQ0Y19cdTA0MzhcdTA0NGVcdTA0M2JcdTA0NGNfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQy''@;'; + put 'put ''X1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Y19cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGNfXHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRjX1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0''@;'; + put 'put ''MFx1MDQ0YyIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNDRmXHUwNDNkXHUwNDMyX1x1MDQ0NFx1MDQzNVx1MDQzMl9cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJfXHUwNDMwXHUwNDNmXHUwNDQwX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0MzhcdTA0NGVcdTA0M2RcdTA0NGNfXHUwNDM4''@;'; + put 'put ''XHUwNDRlXHUwNDNiXHUwNDRjX1x1MDQzMFx1MDQzMlx1MDQzM19cdTA0NDFcdTA0MzVcdTA0M2RfXHUwNDNlXHUwNDNhXHUwNDQyX1x1MDQzZFx1MDQzZVx1MDQ0Zl9cdTA0MzRcdTA0MzVcdTA0M2EiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDQxNlx1MDQzNVx1MDQzYVx1MDQ0OFx1MDQz''@;'; + put 'put ''NVx1MDQzY1x1MDQzMVx1MDQzOF9cdTA0MTRcdTA0YWZcdTA0MzlcdTA0NDhcdTA0ZTlcdTA0M2NcdTA0MzFcdTA0YWZfXHUwNDI4XHUwNDM1XHUwNDM5XHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDMxXHUwNDM4X1x1MDQyOFx1MDQzMFx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzY1x1MDQzMVx1MDQz''@;'; + put 'put ''OF9cdTA0MTFcdTA0MzVcdTA0MzlcdTA0NDhcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzhfXHUwNDE2XHUwNDQzXHUwNDNjXHUwNDMwX1x1MDQxOFx1MDQ0OFx1MDQzNVx1MDQzY1x1MDQzMVx1MDQzOCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0MTZcdTA0MzVcdTA0M2FfXHUwNDE0''@;'; + put 'put ''XHUwNGFmXHUwNDM5X1x1MDQyOFx1MDQzNVx1MDQzOV9cdTA0MjhcdTA0MzBcdTA0NDBfXHUwNDExXHUwNDM1XHUwNDM5X1x1MDQxNlx1MDQ0M1x1MDQzY19cdTA0MThcdTA0NDhcdTA0MzUiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQxNlx1MDQzYV9cdTA0MTRcdTA0MzlfXHUwNDI4''@;'; + put 'put ''XHUwNDM5X1x1MDQyOFx1MDQ0MF9cdTA0MTFcdTA0MzlfXHUwNDE2XHUwNDNjX1x1MDQxOFx1MDQ0OCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6''@;'; + put 'put ''bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MTFcdTA0YWZcdTA0MzNcdTA0YWZcdTA0M2QgXHUwNDQxXHUwNDMwXHUwNDMwXHUwNDQyXSBMVCIsbmV4dERheToiW1x1MDQyZFx1MDQ0MFx1MDQ0Mlx1MDQzNVx1MDRhMyBcdTA0NDFc''@;'; + put 'put ''dTA0MzBcdTA0MzBcdTA0NDJdIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNDQxXHUwNDMwXHUwNDMwXHUwNDQyXSBMVCIsbGFzdERheToiW1x1MDQxYVx1MDQzNVx1MDQ0N1x1MDQ0ZFx1MDQ0ZCBcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDJdIExUIixsYXN0V2VlazoiW1x1MDRlOFx1MDQ0Mlx1''@;'; + put 'put ''MDQzYVx1MDRlOVx1MDQzZCBcdTA0MzBcdTA0M2ZcdTA0NDJcdTA0MzBcdTA0M2RcdTA0NGJcdTA0M2RdIGRkZGQgW1x1MDQzYVx1MDRhZlx1MDQzZFx1MDRhZl0gW1x1MDQ0MVx1MDQzMFx1MDQzMFx1MDQ0Ml0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1''@;'; + put 'put ''MDQzOFx1MDQ0N1x1MDQzOFx1MDQzZFx1MDQzNFx1MDQzNSIscGFzdDoiJXMgXHUwNDNjXHUwNDQzXHUwNDQwXHUwNDQzXHUwNDNkIixzOiJcdTA0MzFcdTA0MzhcdTA0NDBcdTA0M2RcdTA0MzVcdTA0NDdcdTA0MzUgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0Iixzczoi''@;'; + put 'put ''JWQgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixtOiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDNjXHUwNGFmXHUwNDNkXHUwNGU5XHUwNDQyIixtbToiJWQgXHUwNDNjXHUwNGFmXHUwNDNkXHUwNGU5XHUwNDQyIixoOiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDQxXHUw''@;'; + put 'put ''NDMwXHUwNDMwXHUwNDQyIixoaDoiJWQgXHUwNDQxXHUwNDMwXHUwNDMwXHUwNDQyIixkOiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDNhXHUwNGFmXHUwNDNkIixkZDoiJWQgXHUwNDNhXHUwNGFmXHUwNDNkIixNOiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDMwXHUwNDM5IixNTToiJWQgXHUw''@;'; + put 'put ''NDMwXHUwNDM5Iix5OiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDM2XHUwNDRiXHUwNDNiIix5eToiJWQgXHUwNDM2XHUwNDRiXHUwNDNiIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS0oXHUwNDQ3XHUwNDM4fFx1MDQ0N1x1MDQ0YnxcdTA0NDdcdTA0YWZ8XHUwNDQ3XHUwNDQz''@;'; + put 'put ''KS8sb3JkaW5hbDpmdW5jdGlvbihNZSl7cmV0dXJuIE1lKyhCW01lXXx8QltNZSUxMF18fEJbTWU+PTEwMD8xMDA6bnVsbF0pfSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw2OTU4NjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlv''@;'; + put 'put ''biBCKFosaWUsbGUsWSl7dmFyIFc9e206WyJlbmcgTWludXR0IiwiZW5nZXIgTWludXR0Il0saDpbImVuZyBTdG9ubiIsImVuZ2VyIFN0b25uIl0sZDpbImVlbiBEYWciLCJlbmdlbSBEYWciXSxNOlsiZWUgTW91bnQiLCJlbmdlbSBNb3VudCJdLHk6WyJlZSBKb2VyIiwiZW5nZW0gSm9lciJd''@;'; + put 'put ''fTtyZXR1cm4gaWU/V1tsZV1bMF06V1tsZV1bMV19ZnVuY3Rpb24gVShaKXtpZihaPXBhcnNlSW50KFosMTApLGlzTmFOKFopKXJldHVybiExO2lmKFo8MClyZXR1cm4hMDtpZihaPDEwKXJldHVybiA0PD1aJiZaPD03O2lmKFo8MTAwKXt2YXIgaWU9WiUxMDtyZXR1cm4gVSgwPT09aWU/Wi8x''@;'; + put 'put ''MDppZSl9aWYoWjwxZTQpe2Zvcig7Wj49MTA7KVovPTEwO3JldHVybiBVKFopfXJldHVybiBVKFovPTFlMyl9bWUuZGVmaW5lTG9jYWxlKCJsYiIse21vbnRoczoiSmFudWFyX0ZlYnJ1YXJfTVx4ZTRlcnpfQWJyXHhlYmxsX01lZV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVy''@;'; + put 'put ''X05vdmVtYmVyX0RlemVtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW4uX0ZlYnIuX01yei5fQWJyLl9NZWVfSnVuLl9KdWwuX0F1Zy5fU2VwdC5fT2t0Ll9Ob3YuX0Rlei4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiU29ubmRlZ19NXHhlOWluZGVn''@;'; + put 'put ''X0RceGVibnNjaGRlZ19NXHhlYnR0d29jaF9Eb25uZXNjaGRlZ19GcmVpZGVnX1NhbXNjaGRlZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTby5fTVx4ZTkuX0RceGViLl9NXHhlYi5fRG8uX0ZyLl9TYS4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlNvX01ceGU5X0RceGViX01ceGVi''@;'; + put 'put ''X0RvX0ZyX1NhIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0gW0F1ZXJdIixMVFM6Ikg6bW06c3MgW0F1ZXJdIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBIOm1tIFtBdWVyXSIsTExM''@;'; + put 'put ''TDoiZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0gW0F1ZXJdIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIYXV0IHVtXSBMVCIsc2FtZUVsc2U6IkwiLG5leHREYXk6IltNdWVyIHVtXSBMVCIsbmV4dFdlZWs6ImRkZGQgW3VtXSBMVCIsbGFzdERheToiW0dceGVic2NodGVyIHVtXSBMVCIsbGFzdFdl''@;'; + put 'put ''ZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAyOmNhc2UgNDpyZXR1cm4iW0xlc2NodGVuXSBkZGRkIFt1bV0gTFQiO2RlZmF1bHQ6cmV0dXJuIltMZXNjaHRlXSBkZGRkIFt1bV0gTFQifX19LHJlbGF0aXZlVGltZTp7ZnV0dXJlOmZ1bmN0aW9uIEUoWil7cmV0dXJuIFUo''@;'; + put 'put ''Wi5zdWJzdHIoMCxaLmluZGV4T2YoIiAiKSkpPyJhICIrWjoiYW4gIitafSxwYXN0OmZ1bmN0aW9uIE1lKFope3JldHVybiBVKFouc3Vic3RyKDAsWi5pbmRleE9mKCIgIikpKT8idmlydSAiK1o6InZpcnVuICIrWn0sczoiZSBwdWVyIFNla29ubmVuIixzczoiJWQgU2Vrb25uZW4iLG06Qixt''@;'; + put 'put ''bToiJWQgTWludXR0ZW4iLGg6QixoaDoiJWQgU3Rvbm5lbiIsZDpCLGRkOiIlZCBEZWVnIixNOkIsTU06IiVkIE1ceGU5aW50Iix5OkIseXk6IiVkIEpvZXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwo''@;'; + put 'put ''MTU0MzkpKX0sMzIzNDk6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJsbyIse21vbnRoczoiXHUwZWExXHUwZWIxXHUwZTg3XHUwZTgxXHUwZWFkXHUwZTk5X1x1MGU4MVx1MGViOFx1MGVhMVx1MGU5ZVx1MGViMl9cdTBlYTFc''@;'; + put 'put ''dTBlYjVcdTBlOTlcdTBlYjJfXHUwZWMwXHUwZWExXHUwZWFhXHUwZWIyX1x1MGU5ZVx1MGViNlx1MGU5NFx1MGVhYVx1MGViMFx1MGU5ZVx1MGViMl9cdTBlYTFcdTBlYjRcdTBlOTZcdTBlYjhcdTBlOTlcdTBlYjJfXHUwZTgxXHUwZWNkXHUwZWE1XHUwZWIwXHUwZTgxXHUwZWJiXHUwZTk0''@;'; + put 'put ''X1x1MGVhYVx1MGViNFx1MGU4N1x1MGVhYlx1MGViMl9cdTBlODFcdTBlYjFcdTBlOTlcdTBlOGRcdTBlYjJfXHUwZTk1XHUwZWI4XHUwZWE1XHUwZWIyX1x1MGU5ZVx1MGViMFx1MGU4OFx1MGViNFx1MGU4MV9cdTBlOTdcdTBlYjFcdTBlOTlcdTBlYTdcdTBlYjIiLnNwbGl0KCJfIiksbW9u''@;'; + put 'put ''dGhzU2hvcnQ6Ilx1MGVhMVx1MGViMVx1MGU4N1x1MGU4MVx1MGVhZFx1MGU5OV9cdTBlODFcdTBlYjhcdTBlYTFcdTBlOWVcdTBlYjJfXHUwZWExXHUwZWI1XHUwZTk5XHUwZWIyX1x1MGVjMFx1MGVhMVx1MGVhYVx1MGViMl9cdTBlOWVcdTBlYjZcdTBlOTRcdTBlYWFcdTBlYjBcdTBlOWVc''@;'; + put 'put ''dTBlYjJfXHUwZWExXHUwZWI0XHUwZTk2XHUwZWI4XHUwZTk5XHUwZWIyX1x1MGU4MVx1MGVjZFx1MGVhNVx1MGViMFx1MGU4MVx1MGViYlx1MGU5NF9cdTBlYWFcdTBlYjRcdTBlODdcdTBlYWJcdTBlYjJfXHUwZTgxXHUwZWIxXHUwZTk5XHUwZThkXHUwZWIyX1x1MGU5NVx1MGViOFx1MGVh''@;'; + put 'put ''NVx1MGViMl9cdTBlOWVcdTBlYjBcdTBlODhcdTBlYjRcdTBlODFfXHUwZTk3XHUwZWIxXHUwZTk5XHUwZWE3XHUwZWIyIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTBlYWRcdTBlYjJcdTBlOTdcdTBlYjRcdTBlOTRfXHUwZTg4XHUwZWIxXHUwZTk5X1x1MGVhZFx1MGViMVx1MGU4N1x1MGU4''@;'; + put 'put ''NFx1MGViMlx1MGU5OV9cdTBlOWVcdTBlYjhcdTBlOTRfXHUwZTllXHUwZWIwXHUwZWFiXHUwZWIxXHUwZTk0X1x1MGVhYVx1MGViOFx1MGU4MV9cdTBlYzBcdTBlYWFcdTBlYmJcdTBlYjIiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwZTk3XHUwZWI0XHUwZTk0X1x1MGU4OFx1MGVi''@;'; + put 'put ''MVx1MGU5OV9cdTBlYWRcdTBlYjFcdTBlODdcdTBlODRcdTBlYjJcdTBlOTlfXHUwZTllXHUwZWI4XHUwZTk0X1x1MGU5ZVx1MGViMFx1MGVhYlx1MGViMVx1MGU5NF9cdTBlYWFcdTBlYjhcdTBlODFfXHUwZWMwXHUwZWFhXHUwZWJiXHUwZWIyIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJc''@;'; + put 'put ''dTBlOTdfXHUwZTg4X1x1MGVhZFx1MGU4NF9cdTBlOWVfXHUwZTllXHUwZWFiX1x1MGVhYVx1MGU4MV9cdTBlYWEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1N''@;'; + put 'put ''TU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiXHUwZWE3XHUwZWIxXHUwZTk5ZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMFx1MGU4YVx1MGViYlx1MGVjOVx1MGViMnxcdTBlOTVcdTBlYWRcdTBlOTlc''@;'; + put 'put ''dTBlYzFcdTBlYTVcdTBlODcvLGlzUE06ZnVuY3Rpb24oRSl7cmV0dXJuIlx1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMVx1MGVhNVx1MGU4NyI9PT1FfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFPDEyPyJcdTBlOTVcdTBlYWRcdTBlOTlcdTBlYzBcdTBlOGFcdTBlYmJcdTBl''@;'; + put 'put ''YzlcdTBlYjIiOiJcdTBlOTVcdTBlYWRcdTBlOTlcdTBlYzFcdTBlYTVcdTBlODcifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MGVhMVx1MGViN1x1MGVjOVx1MGU5OVx1MGViNVx1MGVjOVx1MGVjMFx1MGVhN1x1MGVhNVx1MGViMl0gTFQiLG5leHREYXk6IltcdTBlYTFcdTBlYjdcdTBlYzlc''@;'; + put 'put ''dTBlYWRcdTBlYjdcdTBlYzhcdTBlOTlcdTBlYzBcdTBlYTdcdTBlYTVcdTBlYjJdIExUIixuZXh0V2VlazoiW1x1MGVhN1x1MGViMVx1MGU5OV1kZGRkW1x1MGVkY1x1MGVjOVx1MGViMlx1MGVjMFx1MGVhN1x1MGVhNVx1MGViMl0gTFQiLGxhc3REYXk6IltcdTBlYTFcdTBlYjdcdTBlYzlc''@;'; + put 'put ''dTBlYTdcdTBlYjJcdTBlOTlcdTBlOTlcdTBlYjVcdTBlYzlcdTBlYzBcdTBlYTdcdTBlYTVcdTBlYjJdIExUIixsYXN0V2VlazoiW1x1MGVhN1x1MGViMVx1MGU5OV1kZGRkW1x1MGVjMVx1MGVhNVx1MGVjOVx1MGVhN1x1MGU5OVx1MGViNVx1MGVjOVx1MGVjMFx1MGVhN1x1MGVhNVx1MGVi''@;'; + put 'put ''Ml0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MGVhZFx1MGViNVx1MGU4MSAlcyIscGFzdDoiJXNcdTBlOWNcdTBlYzhcdTBlYjJcdTBlOTlcdTBlYTFcdTBlYjIiLHM6Ilx1MGU5YVx1MGVjZFx1MGVjOFx1MGVjMFx1MGU5N1x1MGViYlx1MGVjOFx1MGViMlx1''@;'; + put 'put ''MGVjM1x1MGU5NFx1MGVhN1x1MGViNFx1MGU5OVx1MGViMlx1MGU5N1x1MGViNSIsc3M6IiVkIFx1MGVhN1x1MGViNFx1MGU5OVx1MGViMlx1MGU5N1x1MGViNSIsbToiMSBcdTBlOTlcdTBlYjJcdTBlOTdcdTBlYjUiLG1tOiIlZCBcdTBlOTlcdTBlYjJcdTBlOTdcdTBlYjUiLGg6IjEgXHUw''@;'; + put 'put ''ZThhXHUwZWJiXHUwZWM4XHUwZWE3XHUwZWMyXHUwZWExXHUwZTg3IixoaDoiJWQgXHUwZThhXHUwZWJiXHUwZWM4XHUwZWE3XHUwZWMyXHUwZWExXHUwZTg3IixkOiIxIFx1MGVhMVx1MGViN1x1MGVjOSIsZGQ6IiVkIFx1MGVhMVx1MGViN1x1MGVjOSIsTToiMSBcdTBlYzBcdTBlOTRcdTBl''@;'; + put 'put ''YjdcdTBlYWRcdTBlOTkiLE1NOiIlZCBcdTBlYzBcdTBlOTRcdTBlYjdcdTBlYWRcdTBlOTkiLHk6IjEgXHUwZTliXHUwZWI1Iix5eToiJWQgXHUwZTliXHUwZWI1In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovKFx1MGU5N1x1MGViNVx1MGVjOClcZHsxLDJ9LyxvcmRpbmFsOmZ1bmN0aW9u''@;'; + put 'put ''KEUpe3JldHVybiJcdTBlOTdcdTBlYjVcdTBlYzgiK0V9fSl9KEwoMTU0MzkpKX0sOTI0MDA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9e3NzOiJzZWt1bmRcdTAxMTdfc2VrdW5kXHUwMTdlaVx1MDE3M19zZWt1bmRlcyIsbToibWludXRcdTAx''@;'; + put 'put ''MTdfbWludXRcdTAxMTdzX21pbnV0XHUwMTE5IixtbToibWludXRcdTAxMTdzX21pbnVcdTAxMGRpXHUwMTczX21pbnV0ZXMiLGg6InZhbGFuZGFfdmFsYW5kb3NfdmFsYW5kXHUwMTA1IixoaDoidmFsYW5kb3NfdmFsYW5kXHUwMTczX3ZhbGFuZGFzIixkOiJkaWVuYV9kaWVub3NfZGllblx1''@;'; + put 'put ''MDEwNSIsZGQ6ImRpZW5vc19kaWVuXHUwMTczX2RpZW5hcyIsTToibVx1MDExN251b19tXHUwMTE3bmVzaW9fbVx1MDExN25lc1x1MDEyZiIsTU06Im1cdTAxMTduZXNpYWlfbVx1MDExN25lc2lcdTAxNzNfbVx1MDExN25lc2l1cyIseToibWV0YWlfbWV0XHUwMTczX21ldHVzIix5eToibWV0''@;'; + put 'put ''YWlfbWV0XHUwMTczX21ldHVzIn07ZnVuY3Rpb24gTWUobGUsWSxXLE4pe3JldHVybiBZP1EoVylbMF06Tj9RKFcpWzFdOlEoVylbMl19ZnVuY3Rpb24gVShsZSl7cmV0dXJuIGxlJTEwPT0wfHxsZT4xMCYmbGU8MjB9ZnVuY3Rpb24gUShsZSl7cmV0dXJuIEJbbGVdLnNwbGl0KCJfIil9ZnVu''@;'; + put 'put ''Y3Rpb24gWihsZSxZLFcsTil7dmFyIGVlPWxlKyIgIjtyZXR1cm4gMT09PWxlP2VlK01lKDAsWSxXWzBdLE4pOlk/ZWUrKFUobGUpP1EoVylbMV06UShXKVswXSk6Tj9lZStRKFcpWzFdOmVlKyhVKGxlKT9RKFcpWzFdOlEoVylbMl0pfW1lLmRlZmluZUxvY2FsZSgibHQiLHttb250aHM6e2Zv''@;'; + put 'put ''cm1hdDoic2F1c2lvX3Zhc2FyaW9fa292b19iYWxhbmRcdTAxN2Vpb19nZWd1XHUwMTdlXHUwMTE3c19iaXJcdTAxN2VlbGlvX2xpZXBvc19ydWdwalx1MDE2Ylx1MDEwZGlvX3J1Z3NcdTAxMTdqb19zcGFsaW9fbGFwa3JpXHUwMTBkaW9fZ3J1b2RcdTAxN2VpbyIuc3BsaXQoIl8iKSxzdGFu''@;'; + put 'put ''ZGFsb25lOiJzYXVzaXNfdmFzYXJpc19rb3Zhc19iYWxhbmRpc19nZWd1XHUwMTdlXHUwMTE3X2Jpclx1MDE3ZWVsaXNfbGllcGFfcnVncGpcdTAxNmJ0aXNfcnVnc1x1MDExN2ppc19zcGFsaXNfbGFwa3JpdGlzX2dydW9kaXMiLnNwbGl0KCJfIiksaXNGb3JtYXQ6L0Rbb0RdPyhcW1teXFtc''@;'; + put 'put ''XV0qXF18XHMpK01NTU0/fE1NTU0/KFxbW15cW1xdXSpcXXxccykrRFtvRF0/L30sbW9udGhzU2hvcnQ6InNhdV92YXNfa292X2JhbF9nZWdfYmlyX2xpZV9yZ3BfcmdzX3NwYV9sYXBfZ3JkIi5zcGxpdCgiXyIpLHdlZWtkYXlzOntmb3JtYXQ6InNla21hZGllblx1MDEyZl9waXJtYWRpZW5c''@;'; + put 'put ''dTAxMmZfYW50cmFkaWVuXHUwMTJmX3RyZVx1MDEwZGlhZGllblx1MDEyZl9rZXR2aXJ0YWRpZW5cdTAxMmZfcGVua3RhZGllblx1MDEyZl9cdTAxNjFlXHUwMTYxdGFkaWVuXHUwMTJmIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6InNla21hZGllbmlzX3Bpcm1hZGllbmlzX2FudHJhZGllbmlz''@;'; + put 'put ''X3RyZVx1MDEwZGlhZGllbmlzX2tldHZpcnRhZGllbmlzX3Blbmt0YWRpZW5pc19cdTAxNjFlXHUwMTYxdGFkaWVuaXMiLnNwbGl0KCJfIiksaXNGb3JtYXQ6L2RkZGQgSEg6bW0vfSx3ZWVrZGF5c1Nob3J0OiJTZWtfUGlyX0FudF9UcmVfS2V0X1Blbl9cdTAxNjBlXHUwMTYxIi5zcGxpdCgi''@;'; + put 'put ''XyIpLHdlZWtkYXlzTWluOiJTX1BfQV9UX0tfUG5fXHUwMTYwIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZLU1NLUREIixMTDoiWVlZWSBbbS5dIE1NTU0gRCBbZC5dIixMTEw6IllZWVkg''@;'; + put 'put ''W20uXSBNTU1NIEQgW2QuXSwgSEg6bW0gW3ZhbC5dIixMTExMOiJZWVlZIFttLl0gTU1NTSBEIFtkLl0sIGRkZGQsIEhIOm1tIFt2YWwuXSIsbDoiWVlZWS1NTS1ERCIsbGw6IllZWVkgW20uXSBNTU1NIEQgW2QuXSIsbGxsOiJZWVlZIFttLl0gTU1NTSBEIFtkLl0sIEhIOm1tIFt2YWwuXSIs''@;'; + put 'put ''bGxsbDoiWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBkZGQsIEhIOm1tIFt2YWwuXSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwMTYwaWFuZGllbl0gTFQiLG5leHREYXk6IltSeXRval0gTFQiLG5leHRXZWVrOiJkZGRkIExUIixsYXN0RGF5OiJbVmFrYXJdIExUIixsYXN0V2VlazoiW1ByYVx1''@;'; + put 'put ''MDExN2p1c1x1MDEyZl0gZGRkZCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToicG8gJXMiLHBhc3Q6InByaWVcdTAxNjEgJXMiLHM6ZnVuY3Rpb24gRShsZSxZLFcsTil7cmV0dXJuIFk/ImtlbGlvcyBzZWt1bmRcdTAxMTdzIjpOPyJrZWxpXHUwMTczIHNla3VuZFx1''@;'; + put 'put ''MDE3ZWlcdTAxNzMiOiJrZWxpYXMgc2VrdW5kZXMifSxzczpaLG06TWUsbW06WixoOk1lLGhoOlosZDpNZSxkZDpaLE06TWUsTU06Wix5Ok1lLHl5Olp9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tb2ppLyxvcmRpbmFsOmZ1bmN0aW9uKGxlKXtyZXR1cm4gbGUrIi1vamkifSx3''@;'; + put 'put ''ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwzOTk5MTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17c3M6InNla3VuZGVzX3Nla3VuZFx1MDExM21fc2VrdW5kZV9zZWt1bmRlcyIuc3BsaXQoIl8iKSxtOiJtaW5cdTAxNmJ0ZXNfbWlu''@;'; + put 'put ''XHUwMTZidFx1MDExM21fbWluXHUwMTZidGVfbWluXHUwMTZidGVzIi5zcGxpdCgiXyIpLG1tOiJtaW5cdTAxNmJ0ZXNfbWluXHUwMTZidFx1MDExM21fbWluXHUwMTZidGVfbWluXHUwMTZidGVzIi5zcGxpdCgiXyIpLGg6InN0dW5kYXNfc3R1bmRcdTAxMDFtX3N0dW5kYV9zdHVuZGFzIi5z''@;'; + put 'put ''cGxpdCgiXyIpLGhoOiJzdHVuZGFzX3N0dW5kXHUwMTAxbV9zdHVuZGFfc3R1bmRhcyIuc3BsaXQoIl8iKSxkOiJkaWVuYXNfZGllblx1MDEwMW1fZGllbmFfZGllbmFzIi5zcGxpdCgiXyIpLGRkOiJkaWVuYXNfZGllblx1MDEwMW1fZGllbmFfZGllbmFzIi5zcGxpdCgiXyIpLE06Im1cdTAx''@;'; + put 'put ''MTNuZVx1MDE2MWFfbVx1MDExM25lXHUwMTYxaWVtX21cdTAxMTNuZXNpc19tXHUwMTEzbmVcdTAxNjFpIi5zcGxpdCgiXyIpLE1NOiJtXHUwMTEzbmVcdTAxNjFhX21cdTAxMTNuZVx1MDE2MWllbV9tXHUwMTEzbmVzaXNfbVx1MDExM25lXHUwMTYxaSIuc3BsaXQoIl8iKSx5OiJnYWRhX2dh''@;'; + put 'put ''ZGllbV9nYWRzX2dhZGkiLnNwbGl0KCJfIikseXk6ImdhZGFfZ2FkaWVtX2dhZHNfZ2FkaSIuc3BsaXQoIl8iKX07ZnVuY3Rpb24gRShpZSxsZSxZKXtyZXR1cm4gWT9sZSUxMD09MSYmbGUlMTAwIT0xMT9pZVsyXTppZVszXTpsZSUxMD09MSYmbGUlMTAwIT0xMT9pZVswXTppZVsxXX1mdW5j''@;'; + put 'put ''dGlvbiBNZShpZSxsZSxZKXtyZXR1cm4gaWUrIiAiK0UoQltZXSxpZSxsZSl9ZnVuY3Rpb24gVShpZSxsZSxZKXtyZXR1cm4gRShCW1ldLGllLGxlKX1tZS5kZWZpbmVMb2NhbGUoImx2Iix7bW9udGhzOiJqYW52XHUwMTAxcmlzX2ZlYnJ1XHUwMTAxcmlzX21hcnRzX2Fwclx1MDEyYmxpc19t''@;'; + put 'put ''YWlqc19qXHUwMTZibmlqc19qXHUwMTZibGlqc19hdWd1c3RzX3NlcHRlbWJyaXNfb2t0b2JyaXNfbm92ZW1icmlzX2RlY2VtYnJpcyIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuX2ZlYl9tYXJfYXByX21haV9qXHUwMTZibl9qXHUwMTZibF9hdWdfc2VwX29rdF9ub3ZfZGVjIi5zcGxp''@;'; + put 'put ''dCgiXyIpLHdlZWtkYXlzOiJzdlx1MDExM3RkaWVuYV9waXJtZGllbmFfb3RyZGllbmFfdHJlXHUwMTYxZGllbmFfY2V0dXJ0ZGllbmFfcGlla3RkaWVuYV9zZXN0ZGllbmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3ZfUF9PX1RfQ19Qa19TIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWlu''@;'; + put 'put ''OiJTdl9QX09fVF9DX1BrX1MiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkuIixMTDoiWVlZWS4gW2dhZGFdIEQuIE1NTU0iLExMTDoiWVlZWS4gW2dhZGFdIEQuIE1NTU0sIEhI''@;'; + put 'put ''Om1tIixMTExMOiJZWVlZLiBbZ2FkYV0gRC4gTU1NTSwgZGRkZCwgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDE2MG9kaWVuIHB1bGtzdGVuXSBMVCIsbmV4dERheToiW1JcdTAxMmJ0IHB1bGtzdGVuXSBMVCIsbmV4dFdlZWs6ImRkZGQgW3B1bGtzdGVuXSBMVCIsbGFzdERheToi''@;'; + put 'put ''W1Zha2FyIHB1bGtzdGVuXSBMVCIsbGFzdFdlZWs6IltQYWdcdTAxMDFqdVx1MDE2MVx1MDEwMV0gZGRkZCBbcHVsa3N0ZW5dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJwXHUwMTEzYyAlcyIscGFzdDoicGlybXMgJXMiLHM6ZnVuY3Rpb24gUShpZSxsZSl7cmV0''@;'; + put 'put ''dXJuIGxlPyJkYVx1MDE3ZWFzIHNla3VuZGVzIjoiZGFcdTAxN2VcdTAxMDFtIHNla3VuZFx1MDExM20ifSxzczpNZSxtOlUsbW06TWUsaDpVLGhoOk1lLGQ6VSxkZDpNZSxNOlUsTU06TWUseTpVLHl5Ok1lfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVk''@;'; + put 'put ''LiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMjg0Nzc6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9e3dvcmRzOntzczpbInNla3VuZCIsInNla3VuZGEiLCJzZWt1bmRpIl0sbTpbImplZGFuIG1pbnV0IiwiamVkbm9nIG1pbnV0''@;'; + put 'put ''YSJdLG1tOlsibWludXQiLCJtaW51dGEiLCJtaW51dGEiXSxoOlsiamVkYW4gc2F0IiwiamVkbm9nIHNhdGEiXSxoaDpbInNhdCIsInNhdGEiLCJzYXRpIl0sZGQ6WyJkYW4iLCJkYW5hIiwiZGFuYSJdLE1NOlsibWplc2VjIiwibWplc2VjYSIsIm1qZXNlY2kiXSx5eTpbImdvZGluYSIsImdv''@;'; + put 'put ''ZGluZSIsImdvZGluYSJdfSxjb3JyZWN0R3JhbW1hdGljYWxDYXNlOmZ1bmN0aW9uKE1lLFUpe3JldHVybiAxPT09TWU/VVswXTpNZT49MiYmTWU8PTQ/VVsxXTpVWzJdfSx0cmFuc2xhdGU6ZnVuY3Rpb24oTWUsVSxRKXt2YXIgWj1CLndvcmRzW1FdO3JldHVybiAxPT09US5sZW5ndGg/VT9a''@;'; + put 'put ''WzBdOlpbMV06TWUrIiAiK0IuY29ycmVjdEdyYW1tYXRpY2FsQ2FzZShNZSxaKX19O21lLmRlZmluZUxvY2FsZSgibWUiLHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcnRfYXByaWxfbWFqX2p1bl9qdWxfYXZndXN0X3NlcHRlbWJhcl9va3RvYmFyX25vdmVtYmFyX2RlY2VtYmFyIi5zcGxp''@;'; + put 'put ''dCgiXyIpLG1vbnRoc1Nob3J0OiJqYW4uX2ZlYi5fbWFyLl9hcHIuX21hal9qdW5fanVsX2F2Zy5fc2VwLl9va3QuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJuZWRqZWxqYV9wb25lZGplbGpha191dG9yYWtfc3JpamVkYV9cdTAxMGRldHZy''@;'; + put 'put ''dGFrX3BldGFrX3N1Ym90YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJuZWQuX3Bvbi5fdXRvLl9zcmkuX1x1MDEwZGV0Ll9wZXQuX3N1Yi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Im5lX3BvX3V0X3NyX1x1MDEwZGVfcGVfc3UiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0''@;'; + put 'put ''OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbZGFuYXMgdV0gTFQi''@;'; + put 'put ''LG5leHREYXk6IltzanV0cmEgdV0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW3VdIFtuZWRqZWxqdV0gW3VdIExUIjtjYXNlIDM6cmV0dXJuIlt1XSBbc3JpamVkdV0gW3VdIExUIjtjYXNlIDY6cmV0dXJuIlt1XSBbc3Vib3R1XSBb''@;'; + put 'put ''dV0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW3VdIGRkZGQgW3VdIExUIn19LGxhc3REYXk6IltqdVx1MDEwZGUgdV0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuWyJbcHJvXHUwMTYxbGVdIFtuZWRqZWxqZV0gW3VdIExUIiwiW3Byb1x1MDE2MWxvZ10g''@;'; + put 'put ''W3BvbmVkamVsamthXSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9nXSBbdXRvcmthXSBbdV0gTFQiLCJbcHJvXHUwMTYxbGVdIFtzcmlqZWRlXSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9nXSBbXHUwMTBkZXR2cnRrYV0gW3VdIExUIiwiW3Byb1x1MDE2MWxvZ10gW3BldGthXSBbdV0gTFQiLCJbcHJv''@;'; + put 'put ''XHUwMTYxbGVdIFtzdWJvdGVdIFt1XSBMVCJdW3RoaXMuZGF5KCldfSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ6YSAlcyIscGFzdDoicHJpamUgJXMiLHM6Im5la29saWtvIHNla3VuZGkiLHNzOkIudHJhbnNsYXRlLG06Qi50cmFuc2xhdGUsbW06Qi50cmFuc2xhdGUs''@;'; + put 'put ''aDpCLnRyYW5zbGF0ZSxoaDpCLnRyYW5zbGF0ZSxkOiJkYW4iLGRkOkIudHJhbnNsYXRlLE06Im1qZXNlYyIsTU06Qi50cmFuc2xhdGUseToiZ29kaW51Iix5eTpCLnRyYW5zbGF0ZX0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2Rvdzox''@;'; + put 'put ''LGRveTo3fX0pfShMKDE1NDM5KSl9LDU1MTE4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgibWkiLHttb250aHM6IktvaGktdFx1MDEwMXRlX0h1aS10YW5ndXJ1X1BvdXRcdTAxNmItdGUtcmFuZ2lfUGFlbmdhLXdoXHUwMTAx''@;'; + put 'put ''d2hcdTAxMDFfSGFyYXR1YV9QaXBpcmlfSFx1MDE0ZG5nb2luZ29pX0hlcmUtdHVyaS1rXHUwMTRka1x1MDEwMV9NYWh1cnVfV2hpcmluZ2EtXHUwMTAxLW51a3VfV2hpcmluZ2EtXHUwMTAxLXJhbmdpX0hha2loZWEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IktvaGlfSHVpX1BvdV9QYWVf''@;'; + put 'put ''SGFyYV9QaXBpX0hcdTAxNGRuZ29pX0hlcmVfTWFodV9XaGktbnVfV2hpLXJhX0hha2kiLnNwbGl0KCJfIiksbW9udGhzUmVnZXg6Lyg/OlsnYS16XHUwMTAxXHUwMTREXHUwMTZCXStcLT8pezEsM30vaSxtb250aHNTdHJpY3RSZWdleDovKD86WydhLXpcdTAxMDFcdTAxNERcdTAxNkJdK1wt''@;'; + put 'put ''Pyl7MSwzfS9pLG1vbnRoc1Nob3J0UmVnZXg6Lyg/OlsnYS16XHUwMTAxXHUwMTREXHUwMTZCXStcLT8pezEsM30vaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi8oPzpbJ2Etelx1MDEwMVx1MDE0RFx1MDE2Ql0rXC0/KXsxLDJ9L2ksd2Vla2RheXM6IlJcdTAxMDF0YXB1X01hbmVfVFx1MDE2''@;'; + put 'put ''YnJlaV9XZW5lcmVpX1RcdTAxMDFpdGVfUGFyYWlyZV9IXHUwMTAxdGFyZWkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiVGFfTWFfVFx1MDE2Yl9XZV9UXHUwMTAxaV9QYV9IXHUwMTAxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJUYV9NYV9UXHUwMTZiX1dlX1RcdTAxMDFpX1BhX0hc''@;'; + put 'put ''dTAxMDEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIFtpXSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgW2ldIEhIOm1tIn0sY2FsZW5kYXI6''@;'; + put 'put ''e3NhbWVEYXk6IltpIHRlaWUgbWFoYW5hLCBpXSBMVCIsbmV4dERheToiW2Fwb3BvIGldIExUIixuZXh0V2VlazoiZGRkZCBbaV0gTFQiLGxhc3REYXk6IltpbmFuYWhpIGldIExUIixsYXN0V2VlazoiZGRkZCBbd2hha2FtdXR1bmdhIGldIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGlt''@;'; + put 'put ''ZTp7ZnV0dXJlOiJpIHJvdG8gaSAlcyIscGFzdDoiJXMgaSBtdWEiLHM6InRlIGhcdTAxMTNrb25hIHJ1YXJ1YSIsc3M6IiVkIGhcdTAxMTNrb25hIixtOiJoZSBtZW5ldGkiLG1tOiIlZCBtZW5ldGkiLGg6InRlIGhhb3JhIixoaDoiJWQgaGFvcmEiLGQ6ImhlIHJhIixkZDoiJWQgcmEiLE06''@;'; + put 'put ''ImhlIG1hcmFtYSIsTU06IiVkIG1hcmFtYSIseToiaGUgdGF1Iix5eToiJWQgdGF1In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMTU5NDM6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1''@;'; + put 'put ''bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJtayIse21vbnRoczoiXHUwNDU4XHUwNDMwXHUwNDNkXHUwNDQzXHUwNDMwXHUwNDQwXHUwNDM4X1x1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQ0M1x1MDQzMFx1MDQ0MFx1MDQzOF9cdTA0M2NcdTA0MzBcdTA0NDBc''@;'; + put 'put ''dTA0NDJfXHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQ1OF9cdTA0NThcdTA0NDNcdTA0M2RcdTA0MzhfXHUwNDU4XHUwNDQzXHUwNDNiXHUwNDM4X1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Ml9cdTA0NDFcdTA0MzVcdTA0M2ZcdTA0''@;'; + put 'put ''NDJcdTA0MzVcdTA0M2NcdTA0MzJcdTA0NDBcdTA0MzhfXHUwNDNlXHUwNDNhXHUwNDQyXHUwNDNlXHUwNDNjXHUwNDMyXHUwNDQwXHUwNDM4X1x1MDQzZFx1MDQzZVx1MDQzNVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOF9cdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzVcdTA0M2NcdTA0MzJcdTA0''@;'; + put 'put ''NDBcdTA0MzgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQ1OFx1MDQzMFx1MDQzZF9cdTA0NDRcdTA0MzVcdTA0MzJfXHUwNDNjXHUwNDMwXHUwNDQwX1x1MDQzMFx1MDQzZlx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0NThfXHUwNDU4XHUwNDQzXHUwNDNkX1x1MDQ1OFx1MDQ0M1x1MDQz''@;'; + put 'put ''Yl9cdTA0MzBcdTA0MzJcdTA0MzNfXHUwNDQxXHUwNDM1XHUwNDNmX1x1MDQzZVx1MDQzYVx1MDQ0Ml9cdTA0M2RcdTA0M2VcdTA0MzVfXHUwNDM0XHUwNDM1XHUwNDNhIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzBfXHUwNDNmXHUw''@;'; + put 'put ''NDNlXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNiXHUwNDNkXHUwNDM4XHUwNDNhX1x1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzZFx1MDQzOFx1MDQzYV9cdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzBfXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMyXHUwNDQwXHUwNDQyXHUw''@;'; + put 'put ''NDNlXHUwNDNhX1x1MDQzZlx1MDQzNVx1MDQ0Mlx1MDQzZVx1MDQzYV9cdTA0NDFcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDNkXHUwNDM1XHUwNDM0X1x1MDQzZlx1MDQzZVx1MDQzZF9cdTA0MzJcdTA0NDJcdTA0M2VfXHUw''@;'; + put 'put ''NDQxXHUwNDQwXHUwNDM1X1x1MDQ0N1x1MDQzNVx1MDQ0Ml9cdTA0M2ZcdTA0MzVcdTA0NDJfXHUwNDQxXHUwNDMwXHUwNDMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0M2RlX1x1MDQzZm9fXHUwNDMyXHUwNDQyX1x1MDQ0MVx1MDQ0MF9cdTA0NDdcdTA0MzVfXHUwNDNmXHUwNDM1''@;'; + put 'put ''X1x1MDQ0MWEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToi''@;'; + put 'put ''W1x1MDQxNFx1MDQzNVx1MDQzZFx1MDQzNVx1MDQ0MSBcdTA0MzJcdTA0M2VdIExUIixuZXh0RGF5OiJbXHUwNDIzXHUwNDQyXHUwNDQwXHUwNDM1IFx1MDQzMlx1MDQzZV0gTFQiLG5leHRXZWVrOiJbXHUwNDEyXHUwNDNlXSBkZGRkIFtcdTA0MzJcdTA0M2VdIExUIixsYXN0RGF5OiJbXHUw''@;'; + put 'put ''NDEyXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMwIFx1MDQzMlx1MDQzZV0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpjYXNlIDM6Y2FzZSA2OnJldHVybiJbXHUwNDE4XHUwNDM3XHUwNDNjXHUwNDM4XHUwNDNkXHUwNDMwXHUwNDQyXHUwNDMwXHUw''@;'; + put 'put ''NDQyXHUwNDMwXSBkZGRkIFtcdTA0MzJcdTA0M2VdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIltcdTA0MThcdTA0MzdcdTA0M2NcdTA0MzhcdTA0M2RcdTA0MzBcdTA0NDJcdTA0MzhcdTA0M2VcdTA0NDJdIGRkZGQgW1x1MDQzMlx1MDQzZV0gTFQifX0sc2FtZUVs''@;'; + put 'put ''c2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNDM3XHUwNDMwICVzIixwYXN0OiJcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0MzQgJXMiLHM6Ilx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQzYVx1MDQ0MyBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRc''@;'; + put 'put ''dTA0MzgiLHNzOiIlZCBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzgiLG06Ilx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzMCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzAiLG1tOiIlZCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0''@;'; + put 'put ''MzgiLGg6Ilx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzZCBcdTA0NDdcdTA0MzBcdTA0NDEiLGhoOiIlZCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0MzAiLGQ6Ilx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzZCBcdTA0MzRcdTA0MzVcdTA0M2QiLGRkOiIlZCBcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzAi''@;'; + put 'put ''LE06Ilx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzZCBcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDYiLE1NOiIlZCBcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDZcdTA0MzgiLHk6Ilx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzMCBcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2Rc''@;'; + put 'put ''dTA0MzAiLHl5OiIlZCBcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzgifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0MzVcdTA0MzJ8XHUwNDM1XHUwNDNkfFx1MDQ0Mlx1MDQzOHxcdTA0MzJcdTA0Mzh8XHUwNDQwXHUwNDM4fFx1MDQzY1x1MDQzOCkv''@;'; + put 'put ''LG9yZGluYWw6ZnVuY3Rpb24oRSl7dmFyIE1lPUUlMTAsVT1FJTEwMDtyZXR1cm4gMD09PUU/RSsiLVx1MDQzNVx1MDQzMiI6MD09PVU/RSsiLVx1MDQzNVx1MDQzZCI6VT4xMCYmVTwyMD9FKyItXHUwNDQyXHUwNDM4IjoxPT09TWU/RSsiLVx1MDQzMlx1MDQzOCI6Mj09PU1lP0UrIi1cdTA0''@;'; + put 'put ''NDBcdTA0MzgiOjc9PT1NZXx8OD09PU1lP0UrIi1cdTA0M2NcdTA0MzgiOkUrIi1cdTA0NDJcdTA0MzgifSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSwxMzg0OTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoIm1s''@;'; + put 'put ''Iix7bW9udGhzOiJcdTBkMWNcdTBkMjhcdTBkNDFcdTBkMzVcdTBkMzBcdTBkM2ZfXHUwZDJiXHUwZDQ2XHUwZDJjXHUwZDRkXHUwZDMwXHUwZDQxXHUwZDM1XHUwZDMwXHUwZDNmX1x1MGQyZVx1MGQzZVx1MGQ3Y1x1MGQxYVx1MGQ0ZFx1MGQxYVx1MGQ0ZF9cdTBkMGZcdTBkMmFcdTBkNGRc''@;'; + put 'put ''dTBkMzBcdTBkM2ZcdTBkN2RfXHUwZDJlXHUwZDQ3XHUwZDJmXHUwZDRkX1x1MGQxY1x1MGQ0Mlx1MGQ3YV9cdTBkMWNcdTBkNDJcdTBkMzJcdTBkNDhfXHUwZDEzXHUwZDE3XHUwZDM4XHUwZDRkXHUwZDMxXHUwZDRkXHUwZDMxXHUwZDRkX1x1MGQzOFx1MGQ0Nlx1MGQyYVx1MGQ0ZFx1MGQz''@;'; + put 'put ''MVx1MGQ0ZFx1MGQzMVx1MGQwMlx1MGQyY1x1MGQ3Y19cdTBkMTJcdTBkMTVcdTBkNGRcdTBkMWZcdTBkNGJcdTBkMmNcdTBkN2NfXHUwZDI4XHUwZDM1XHUwZDAyXHUwZDJjXHUwZDdjX1x1MGQyMVx1MGQzZlx1MGQzOFx1MGQwMlx1MGQyY1x1MGQ3YyIuc3BsaXQoIl8iKSxtb250aHNTaG9y''@;'; + put 'put ''dDoiXHUwZDFjXHUwZDI4XHUwZDQxLl9cdTBkMmJcdTBkNDZcdTBkMmNcdTBkNGRcdTBkMzBcdTBkNDEuX1x1MGQyZVx1MGQzZVx1MGQ3Yy5fXHUwZDBmXHUwZDJhXHUwZDRkXHUwZDMwXHUwZDNmLl9cdTBkMmVcdTBkNDdcdTBkMmZcdTBkNGRfXHUwZDFjXHUwZDQyXHUwZDdhX1x1MGQxY1x1''@;'; + put 'put ''MGQ0Mlx1MGQzMlx1MGQ0OC5fXHUwZDEzXHUwZDE3Ll9cdTBkMzhcdTBkNDZcdTBkMmFcdTBkNGRcdTBkMzFcdTBkNGRcdTBkMzEuX1x1MGQxMlx1MGQxNVx1MGQ0ZFx1MGQxZlx1MGQ0Yi5fXHUwZDI4XHUwZDM1XHUwZDAyLl9cdTBkMjFcdTBkM2ZcdTBkMzhcdTBkMDIuIi5zcGxpdCgiXyIp''@;'; + put 'put ''LG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MGQxZVx1MGQzZVx1MGQyZlx1MGQzMVx1MGQzZVx1MGQzNFx1MGQ0ZFx1MGQxYV9cdTBkMjRcdTBkM2ZcdTBkMTlcdTBkNGRcdTBkMTVcdTBkMzNcdTBkM2VcdTBkMzRcdTBkNGRcdTBkMWFfXHUwZDFhXHUwZDRhXHUwZDM1XHUwZDRk''@;'; + put 'put ''XHUwZDM1XHUwZDNlXHUwZDM0XHUwZDRkXHUwZDFhX1x1MGQyY1x1MGQ0MVx1MGQyN1x1MGQyOFx1MGQzZVx1MGQzNFx1MGQ0ZFx1MGQxYV9cdTBkMzVcdTBkNGRcdTBkMmZcdTBkM2VcdTBkMzRcdTBkM2VcdTBkMzRcdTBkNGRcdTBkMWFfXHUwZDM1XHUwZDQ2XHUwZDMzXHUwZDRkXHUwZDMz''@;'; + put 'put ''XHUwZDNmXHUwZDJmXHUwZDNlXHUwZDM0XHUwZDRkXHUwZDFhX1x1MGQzNlx1MGQyOFx1MGQzZlx1MGQyZlx1MGQzZVx1MGQzNFx1MGQ0ZFx1MGQxYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBkMWVcdTBkM2VcdTBkMmZcdTBkN2NfXHUwZDI0XHUwZDNmXHUwZDE5XHUwZDRkXHUw''@;'; + put 'put ''ZDE1XHUwZDdlX1x1MGQxYVx1MGQ0YVx1MGQzNVx1MGQ0ZFx1MGQzNV9cdTBkMmNcdTBkNDFcdTBkMjdcdTBkN2JfXHUwZDM1XHUwZDRkXHUwZDJmXHUwZDNlXHUwZDM0XHUwZDAyX1x1MGQzNVx1MGQ0Nlx1MGQzM1x1MGQ0ZFx1MGQzM1x1MGQzZl9cdTBkMzZcdTBkMjhcdTBkM2YiLnNwbGl0''@;'; + put 'put ''KCJfIiksd2Vla2RheXNNaW46Ilx1MGQxZVx1MGQzZV9cdTBkMjRcdTBkM2ZfXHUwZDFhXHUwZDRhX1x1MGQyY1x1MGQ0MV9cdTBkMzVcdTBkNGRcdTBkMmZcdTBkM2VfXHUwZDM1XHUwZDQ2X1x1MGQzNiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSAtXHUwZDI4XHUw''@;'; + put 'put ''ZDQxIixMVFM6IkEgaDptbTpzcyAtXHUwZDI4XHUwZDQxIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSAtXHUwZDI4XHUwZDQxIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIC1cdTBkMjhcdTBkNDEifSxjYWxlbmRhcjp7''@;'; + put 'put ''c2FtZURheToiW1x1MGQwN1x1MGQyOFx1MGQ0ZFx1MGQyOFx1MGQ0ZF0gTFQiLG5leHREYXk6IltcdTBkMjhcdTBkM2VcdTBkMzNcdTBkNDZdIExUIixuZXh0V2VlazoiZGRkZCwgTFQiLGxhc3REYXk6IltcdTBkMDdcdTBkMjhcdTBkNGRcdTBkMjhcdTBkMzJcdTBkNDZdIExUIixsYXN0V2Vl''@;'; + put 'put ''azoiW1x1MGQxNVx1MGQzNFx1MGQzZlx1MGQxZVx1MGQ0ZFx1MGQxZV0gZGRkZCwgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MGQxNVx1MGQzNFx1MGQzZlx1MGQxZVx1MGQ0ZFx1MGQxZVx1MGQ0ZCIscGFzdDoiJXMgXHUwZDJlXHUwZDQxXHUwZDdiXHUw''@;'; + put 'put ''ZDJhXHUwZDRkIixzOiJcdTBkMDVcdTBkN2RcdTBkMmEgXHUwZDI4XHUwZDNmXHUwZDJlXHUwZDNmXHUwZDM3XHUwZDE5XHUwZDRkXHUwZDE5XHUwZDdlIixzczoiJWQgXHUwZDM4XHUwZDQ2XHUwZDE1XHUwZDRkXHUwZDE1XHUwZDdiXHUwZDIxXHUwZDRkIixtOiJcdTBkMTJcdTBkMzBcdTBk''@;'; + put 'put ''NDEgXHUwZDJlXHUwZDNmXHUwZDI4XHUwZDNmXHUwZDMxXHUwZDRkXHUwZDMxXHUwZDRkIixtbToiJWQgXHUwZDJlXHUwZDNmXHUwZDI4XHUwZDNmXHUwZDMxXHUwZDRkXHUwZDMxXHUwZDRkIixoOiJcdTBkMTJcdTBkMzBcdTBkNDEgXHUwZDJlXHUwZDIzXHUwZDNmXHUwZDE1XHUwZDRkXHUw''@;'; + put 'put ''ZDE1XHUwZDQyXHUwZDdjIixoaDoiJWQgXHUwZDJlXHUwZDIzXHUwZDNmXHUwZDE1XHUwZDRkXHUwZDE1XHUwZDQyXHUwZDdjIixkOiJcdTBkMTJcdTBkMzBcdTBkNDEgXHUwZDI2XHUwZDNmXHUwZDM1XHUwZDM4XHUwZDAyIixkZDoiJWQgXHUwZDI2XHUwZDNmXHUwZDM1XHUwZDM4XHUwZDAy''@;'; + put 'put ''IixNOiJcdTBkMTJcdTBkMzBcdTBkNDEgXHUwZDJlXHUwZDNlXHUwZDM4XHUwZDAyIixNTToiJWQgXHUwZDJlXHUwZDNlXHUwZDM4XHUwZDAyIix5OiJcdTBkMTJcdTBkMzBcdTBkNDEgXHUwZDM1XHUwZDdjXHUwZDM3XHUwZDAyIix5eToiJWQgXHUwZDM1XHUwZDdjXHUwZDM3XHUwZDAyIn0s''@;'; + put 'put ''bWVyaWRpZW1QYXJzZTovXHUwZDMwXHUwZDNlXHUwZDI0XHUwZDRkXHUwZDMwXHUwZDNmfFx1MGQzMFx1MGQzZVx1MGQzNVx1MGQzZlx1MGQzMlx1MGQ0NnxcdTBkMDlcdTBkMWFcdTBkNGRcdTBkMWEgXHUwZDE1XHUwZDM0XHUwZDNmXHUwZDFlXHUwZDRkXHUwZDFlXHUwZDRkfFx1MGQzNVx1''@;'; + put 'put ''MGQ0OFx1MGQxNVx1MGQ0MVx1MGQyOFx1MGQ0ZFx1MGQyOFx1MGQ0N1x1MGQzMFx1MGQwMnxcdTBkMzBcdTBkM2VcdTBkMjRcdTBkNGRcdTBkMzBcdTBkM2YvaSxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oRSxNZSl7cmV0dXJuIDEyPT09RSYmKEU9MCksIlx1MGQzMFx1MGQzZVx1MGQyNFx1MGQ0''@;'; + put 'put ''ZFx1MGQzMFx1MGQzZiI9PT1NZSYmRT49NHx8Ilx1MGQwOVx1MGQxYVx1MGQ0ZFx1MGQxYSBcdTBkMTVcdTBkMzRcdTBkM2ZcdTBkMWVcdTBkNGRcdTBkMWVcdTBkNGQiPT09TWV8fCJcdTBkMzVcdTBkNDhcdTBkMTVcdTBkNDFcdTBkMjhcdTBkNGRcdTBkMjhcdTBkNDdcdTBkMzBcdTBkMDIi''@;'; + put 'put ''PT09TWU/RSsxMjpFfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFPDQ/Ilx1MGQzMFx1MGQzZVx1MGQyNFx1MGQ0ZFx1MGQzMFx1MGQzZiI6RTwxMj8iXHUwZDMwXHUwZDNlXHUwZDM1XHUwZDNmXHUwZDMyXHUwZDQ2IjpFPDE3PyJcdTBkMDlcdTBkMWFcdTBkNGRcdTBkMWEg''@;'; + put 'put ''XHUwZDE1XHUwZDM0XHUwZDNmXHUwZDFlXHUwZDRkXHUwZDFlXHUwZDRkIjpFPDIwPyJcdTBkMzVcdTBkNDhcdTBkMTVcdTBkNDFcdTBkMjhcdTBkNGRcdTBkMjhcdTBkNDdcdTBkMzBcdTBkMDIiOiJcdTBkMzBcdTBkM2VcdTBkMjRcdTBkNGRcdTBkMzBcdTBkM2YifX0pfShMKDE1NDM5KSl9''@;'; + put 'put ''LDMxOTc3OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoTWUsVSxRLFope3N3aXRjaChRKXtjYXNlInMiOnJldHVybiBVPyJcdTA0NDVcdTA0NGRcdTA0MzRcdTA0NDVcdTA0NGRcdTA0M2QgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUw''@;'; + put 'put ''NDNkXHUwNDM0IjoiXHUwNDQ1XHUwNDRkXHUwNDM0XHUwNDQ1XHUwNDRkXHUwNDNkIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0Ylx1MDQzZCI7Y2FzZSJzcyI6cmV0dXJuIE1lKyhVPyIgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IjoiIFx1''@;'; + put 'put ''MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0Ylx1MDQzZCIpO2Nhc2UibSI6Y2FzZSJtbSI6cmV0dXJuIE1lKyhVPyIgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyIjoiIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0Ylx1MDQzZCIpO2Nhc2Ui''@;'; + put 'put ''aCI6Y2FzZSJoaCI6cmV0dXJuIE1lKyhVPyIgXHUwNDQ2XHUwNDMwXHUwNDMzIjoiIFx1MDQ0Nlx1MDQzMFx1MDQzM1x1MDQzOFx1MDQzOVx1MDQzZCIpO2Nhc2UiZCI6Y2FzZSJkZCI6cmV0dXJuIE1lKyhVPyIgXHUwNGU5XHUwNDM0XHUwNGU5XHUwNDQwIjoiIFx1MDRlOVx1MDQzNFx1MDQ0''@;'; + put 'put ''MFx1MDQzOFx1MDQzOVx1MDQzZCIpO2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIE1lKyhVPyIgXHUwNDQxXHUwNDMwXHUwNDQwIjoiIFx1MDQ0MVx1MDQzMFx1MDQ0MFx1MDQ0Ylx1MDQzZCIpO2Nhc2UieSI6Y2FzZSJ5eSI6cmV0dXJuIE1lKyhVPyIgXHUwNDM2XHUwNDM4XHUwNDNiIjoiIFx1''@;'; + put 'put ''MDQzNlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzOVx1MDQzZCIpO2RlZmF1bHQ6cmV0dXJuIE1lfX1tZS5kZWZpbmVMb2NhbGUoIm1uIix7bW9udGhzOiJcdTA0MWRcdTA0NGRcdTA0MzNcdTA0MzRcdTA0YWZcdTA0MzNcdTA0NGRcdTA0NGRcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQy''@;'; + put 'put ''NVx1MDQzZVx1MDQ1MVx1MDQ0MFx1MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDEzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM0XHUwNDQzXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0''@;'; + put 'put ''MTRcdTA0ZTlcdTA0NDBcdTA0ZTlcdTA0MzJcdTA0MzRcdTA0YWZcdTA0MzNcdTA0NGRcdTA0NGRcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQyMlx1MDQzMFx1MDQzMlx1MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDE3XHUw''@;'; + put 'put ''NDQzXHUwNDQwXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDQzXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTRcdTA0M2VcdTA0M2JcdTA0MzRcdTA0NDNcdTA0MzNcdTA0MzBcdTA0MzBcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxZFx1MDQzMFx1''@;'; + put 'put ''MDQzOVx1MDQzY1x1MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDE1XHUwNDQxXHUwNDM0XHUwNGFmXHUwNDMzXHUwNDRkXHUwNDRkXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTBcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzRc''@;'; + put 'put ''dTA0NDNcdTA0MzNcdTA0MzBcdTA0MzBcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxMFx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQzZCBcdTA0M2RcdTA0NGRcdTA0MzNcdTA0MzRcdTA0YWZcdTA0MzNcdTA0NGRcdTA0NGRcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxMFx1MDQ0''@;'; + put 'put ''MFx1MDQzMlx1MDQzMFx1MDQzZCBcdTA0NDVcdTA0M2VcdTA0NTFcdTA0NDBcdTA0MzRcdTA0NDNcdTA0MzNcdTA0MzBcdTA0MzBcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiIxIFx1MDQ0MVx1MDQzMFx1MDQ0MF8yIFx1MDQ0MVx1MDQzMFx1MDQ0''@;'; + put 'put ''MF8zIFx1MDQ0MVx1MDQzMFx1MDQ0MF80IFx1MDQ0MVx1MDQzMFx1MDQ0MF81IFx1MDQ0MVx1MDQzMFx1MDQ0MF82IFx1MDQ0MVx1MDQzMFx1MDQ0MF83IFx1MDQ0MVx1MDQzMFx1MDQ0MF84IFx1MDQ0MVx1MDQzMFx1MDQ0MF85IFx1MDQ0MVx1MDQzMFx1MDQ0MF8xMCBcdTA0NDFcdTA0MzBc''@;'; + put 'put ''dTA0NDBfMTEgXHUwNDQxXHUwNDMwXHUwNDQwXzEyIFx1MDQ0MVx1MDQzMFx1MDQ0MCIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTA0MWRcdTA0NGZcdTA0M2NfXHUwNDE0XHUwNDMwXHUwNDMyXHUwNDMwXHUwNDMwX1x1MDQxY1x1MDQ0Zlx1MDQzM1x1MDQz''@;'; + put 'put ''Y1x1MDQzMFx1MDQ0MF9cdTA0MWJcdTA0NDVcdTA0MzBcdTA0MzNcdTA0MzJcdTA0MzBfXHUwNDFmXHUwNGFmXHUwNDQwXHUwNDRkXHUwNDMyX1x1MDQxMVx1MDQzMFx1MDQzMFx1MDQ0MVx1MDQzMFx1MDQzZF9cdTA0MTFcdTA0NGZcdTA0M2NcdTA0MzFcdTA0MzAiLnNwbGl0KCJfIiksd2Vl''@;'; + put 'put ''a2RheXNTaG9ydDoiXHUwNDFkXHUwNDRmXHUwNDNjX1x1MDQxNFx1MDQzMFx1MDQzMl9cdTA0MWNcdTA0NGZcdTA0MzNfXHUwNDFiXHUwNDQ1XHUwNDMwX1x1MDQxZlx1MDRhZlx1MDQ0MF9cdTA0MTFcdTA0MzBcdTA0MzBfXHUwNDExXHUwNDRmXHUwNDNjIi5zcGxpdCgiXyIpLHdlZWtkYXlz''@;'; + put 'put ''TWluOiJcdTA0MWRcdTA0NGZfXHUwNDE0XHUwNDMwX1x1MDQxY1x1MDQ0Zl9cdTA0MWJcdTA0NDVfXHUwNDFmXHUwNGFmX1x1MDQxMVx1MDQzMF9cdTA0MTFcdTA0NGYiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6''@;'; + put 'put ''bW06c3MiLEw6IllZWVktTU0tREQiLExMOiJZWVlZIFx1MDQzZVx1MDQzZFx1MDQ0YiBNTU1NXHUwNDRiXHUwNDNkIEQiLExMTDoiWVlZWSBcdTA0M2VcdTA0M2RcdTA0NGIgTU1NTVx1MDQ0Ylx1MDQzZCBEIEhIOm1tIixMTExMOiJkZGRkLCBZWVlZIFx1MDQzZVx1MDQzZFx1MDQ0YiBNTU1N''@;'; + put 'put ''XHUwNDRiXHUwNDNkIEQgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA0YWVcdTA0ZTh8XHUwNGFlXHUwNDI1L2ksaXNQTTpmdW5jdGlvbihNZSl7cmV0dXJuIlx1MDRhZVx1MDQyNSI9PT1NZX0sbWVyaWRpZW06ZnVuY3Rpb24oTWUsVSxRKXtyZXR1cm4gTWU8MTI/Ilx1MDRhZVx1MDRlOCI6''@;'; + put 'put ''Ilx1MDRhZVx1MDQyNSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNGU4XHUwNDNkXHUwNGU5XHUwNGU5XHUwNDM0XHUwNGU5XHUwNDQwXSBMVCIsbmV4dERheToiW1x1MDQxY1x1MDQzMFx1MDQ0MFx1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0OF0gTFQiLG5leHRXZWVrOiJbXHUwNDE4XHUwNDQw''@;'; + put 'put ''XHUwNDRkXHUwNDQ1XSBkZGRkIExUIixsYXN0RGF5OiJbXHUwNGU4XHUwNDQ3XHUwNDM4XHUwNDMzXHUwNDM0XHUwNGU5XHUwNDQwXSBMVCIsbGFzdFdlZWs6IltcdTA0ZThcdTA0M2RcdTA0MzNcdTA0ZTlcdTA0NDBcdTA0NDFcdTA0ZTlcdTA0M2RdIGRkZGQgTFQiLHNhbWVFbHNlOiJMIn0s''@;'; + put 'put ''cmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzMCIscGFzdDoiJXMgXHUwNGU5XHUwNDNjXHUwNDNkXHUwNGU5IixzOkIsc3M6QixtOkIsbW06QixoOkIsaGg6QixkOkIsZGQ6QixNOkIsTU06Qix5OkIseXk6Qn0sZGF5T2ZNb250aE9yZGluYWxQ''@;'; + put 'put ''YXJzZTovXGR7MSwyfSBcdTA0ZTlcdTA0MzRcdTA0ZTlcdTA0NDAvLG9yZGluYWw6ZnVuY3Rpb24oTWUsVSl7c3dpdGNoKFUpe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0dXJuIE1lKyIgXHUwNGU5XHUwNDM0XHUwNGU5XHUwNDQwIjtkZWZhdWx0OnJldHVybiBNZX19fSl9KEwoMTU0''@;'; + put 'put ''MzkpKX0sNjYxODQ6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ilx1MDk2NyIsMjoiXHUwOTY4IiwzOiJcdTA5NjkiLDQ6Ilx1MDk2YSIsNToiXHUwOTZiIiw2OiJcdTA5NmMiLDc6Ilx1MDk2ZCIsODoiXHUwOTZlIiw5OiJcdTA5NmYiLDA6''@;'; + put 'put ''Ilx1MDk2NiJ9LEU9eyJcdTA5NjciOiIxIiwiXHUwOTY4IjoiMiIsIlx1MDk2OSI6IjMiLCJcdTA5NmEiOiI0IiwiXHUwOTZiIjoiNSIsIlx1MDk2YyI6IjYiLCJcdTA5NmQiOiI3IiwiXHUwOTZlIjoiOCIsIlx1MDk2ZiI6IjkiLCJcdTA5NjYiOiIwIn07ZnVuY3Rpb24gTWUoUSxaLGllLGxl''@;'; + put 'put ''KXt2YXIgWT0iIjtpZihaKXN3aXRjaChpZSl7Y2FzZSJzIjpZPSJcdTA5MTVcdTA5M2VcdTA5MzlcdTA5NDAgXHUwOTM4XHUwOTQ3XHUwOTE1XHUwOTAyXHUwOTI2IjticmVhaztjYXNlInNzIjpZPSIlZCBcdTA5MzhcdTA5NDdcdTA5MTVcdTA5MDJcdTA5MjYiO2JyZWFrO2Nhc2UibSI6WT0i''@;'; + put 'put ''XHUwOTBmXHUwOTE1IFx1MDkyZVx1MDkzZlx1MDkyOFx1MDkzZlx1MDkxZiI7YnJlYWs7Y2FzZSJtbSI6WT0iJWQgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTNmXHUwOTFmXHUwOTQ3IjticmVhaztjYXNlImgiOlk9Ilx1MDkwZlx1MDkxNSBcdTA5MjRcdTA5M2VcdTA5MzgiO2JyZWFrO2Nhc2Ui''@;'; + put 'put ''aGgiOlk9IiVkIFx1MDkyNFx1MDkzZVx1MDkzOCI7YnJlYWs7Y2FzZSJkIjpZPSJcdTA5MGZcdTA5MTUgXHUwOTI2XHUwOTNmXHUwOTM1XHUwOTM4IjticmVhaztjYXNlImRkIjpZPSIlZCBcdTA5MjZcdTA5M2ZcdTA5MzVcdTA5MzgiO2JyZWFrO2Nhc2UiTSI6WT0iXHUwOTBmXHUwOTE1IFx1''@;'; + put 'put ''MDkyZVx1MDkzOVx1MDkzZlx1MDkyOFx1MDkzZSI7YnJlYWs7Y2FzZSJNTSI6WT0iJWQgXHUwOTJlXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTQ3IjticmVhaztjYXNlInkiOlk9Ilx1MDkwZlx1MDkxNSBcdTA5MzVcdTA5MzBcdTA5NGRcdTA5MzciO2JyZWFrO2Nhc2UieXkiOlk9IiVkIFx1MDkz''@;'; + put 'put ''NVx1MDkzMFx1MDk0ZFx1MDkzN1x1MDk0NyJ9ZWxzZSBzd2l0Y2goaWUpe2Nhc2UicyI6WT0iXHUwOTE1XHUwOTNlXHUwOTM5XHUwOTQwIFx1MDkzOFx1MDk0N1x1MDkxNVx1MDkwMlx1MDkyNlx1MDkzZVx1MDkwMiI7YnJlYWs7Y2FzZSJzcyI6WT0iJWQgXHUwOTM4XHUwOTQ3XHUwOTE1XHUw''@;'; + put 'put ''OTAyXHUwOTI2XHUwOTNlXHUwOTAyIjticmVhaztjYXNlIm0iOlk9Ilx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MmVcdTA5M2ZcdTA5MjhcdTA5M2ZcdTA5MWZcdTA5M2UiO2JyZWFrO2Nhc2UibW0iOlk9IiVkIFx1MDkyZVx1MDkzZlx1MDkyOFx1MDkzZlx1MDkxZlx1MDkzZVx1MDkwMiI7YnJl''@;'; + put 'put ''YWs7Y2FzZSJoIjpZPSJcdTA5MGZcdTA5MTVcdTA5M2UgXHUwOTI0XHUwOTNlXHUwOTM4XHUwOTNlIjticmVhaztjYXNlImhoIjpZPSIlZCBcdTA5MjRcdTA5M2VcdTA5MzhcdTA5M2VcdTA5MDIiO2JyZWFrO2Nhc2UiZCI6WT0iXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyNlx1MDkzZlx1MDkz''@;'; + put 'put ''NVx1MDkzOFx1MDkzZSI7YnJlYWs7Y2FzZSJkZCI6WT0iJWQgXHUwOTI2XHUwOTNmXHUwOTM1XHUwOTM4XHUwOTNlXHUwOTAyIjticmVhaztjYXNlIk0iOlk9Ilx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MmVcdTA5MzlcdTA5M2ZcdTA5MjhcdTA5NGRcdTA5MmZcdTA5M2UiO2JyZWFrO2Nhc2Ui''@;'; + put 'put ''TU0iOlk9IiVkIFx1MDkyZVx1MDkzOVx1MDkzZlx1MDkyOFx1MDk0ZFx1MDkyZlx1MDkzZVx1MDkwMiI7YnJlYWs7Y2FzZSJ5IjpZPSJcdTA5MGZcdTA5MTVcdTA5M2UgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3XHUwOTNlIjticmVhaztjYXNlInl5IjpZPSIlZCBcdTA5MzVcdTA5MzBcdTA5''@;'; + put 'put ''NGRcdTA5MzdcdTA5M2VcdTA5MDIifXJldHVybiBZLnJlcGxhY2UoLyVkL2ksUSl9bWUuZGVmaW5lTG9jYWxlKCJtciIse21vbnRoczoiXHUwOTFjXHUwOTNlXHUwOTI4XHUwOTQ3XHUwOTM1XHUwOTNlXHUwOTMwXHUwOTQwX1x1MDkyYlx1MDk0N1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0MVx1''@;'; + put 'put ''MDkzNVx1MDkzZVx1MDkzMFx1MDk0MF9cdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFfXHUwOTBmXHUwOTJhXHUwOTRkXHUwOTMwXHUwOTNmXHUwOTMyX1x1MDkyZVx1MDk0N19cdTA5MWNcdTA5NDJcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTQ4X1x1MDkxMVx1MDkxN1x1MDkz''@;'; + put 'put ''OFx1MDk0ZFx1MDkxZl9cdTA5MzhcdTA5MmFcdTA5NGRcdTA5MWZcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzBfXHUwOTExXHUwOTE1XHUwOTRkXHUwOTFmXHUwOTRiXHUwOTJjXHUwOTMwX1x1MDkyOFx1MDk0Ylx1MDkzNVx1MDk0ZFx1MDkzOVx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMF9cdTA5''@;'; + put 'put ''MjFcdTA5M2ZcdTA5MzhcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDkxY1x1MDkzZVx1MDkyOFx1MDk0Ny5fXHUwOTJiXHUwOTQ3XHUwOTJjXHUwOTRkXHUwOTMwXHUwOTQxLl9cdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWEuX1x1MDkw''@;'; + put 'put ''Zlx1MDkyYVx1MDk0ZFx1MDkzMFx1MDkzZi5fXHUwOTJlXHUwOTQ3Ll9cdTA5MWNcdTA5NDJcdTA5MjguX1x1MDkxY1x1MDk0MVx1MDkzMlx1MDk0OC5fXHUwOTExXHUwOTE3Ll9cdTA5MzhcdTA5MmFcdTA5NGRcdTA5MWZcdTA5NDdcdTA5MDIuX1x1MDkxMVx1MDkxNVx1MDk0ZFx1MDkxZlx1''@;'; + put 'put ''MDk0Yi5fXHUwOTI4XHUwOTRiXHUwOTM1XHUwOTRkXHUwOTM5XHUwOTQ3XHUwOTAyLl9cdTA5MjFcdTA5M2ZcdTA5MzhcdTA5NDdcdTA5MDIuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MDkzMFx1MDkzNVx1MDkzZlx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5''@;'; + put 'put ''MzhcdTA5NGJcdTA5MmVcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTJlXHUwOTAyXHUwOTE3XHUwOTMzXHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkyY1x1MDk0MVx1MDkyN1x1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MTdcdTA5NDFcdTA5MzBcdTA5NDJcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTM2XHUw''@;'; + put 'put ''OTQxXHUwOTE1XHUwOTRkXHUwOTMwXHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkzNlx1MDkyOFx1MDkzZlx1MDkzNVx1MDkzZVx1MDkzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA5MzBcdTA5MzVcdTA5M2ZfXHUwOTM4XHUwOTRiXHUwOTJlX1x1MDkyZVx1MDkwMlx1MDkxN1x1MDkz''@;'; + put 'put ''M19cdTA5MmNcdTA5NDFcdTA5MjdfXHUwOTE3XHUwOTQxXHUwOTMwXHUwOTQyX1x1MDkzNlx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMF9cdTA5MzZcdTA5MjhcdTA5M2YiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDkzMF9cdTA5MzhcdTA5NGJfXHUwOTJlXHUwOTAyX1x1MDkyY1x1MDk0''@;'; + put 'put ''MV9cdTA5MTdcdTA5NDFfXHUwOTM2XHUwOTQxX1x1MDkzNiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBcdTA5MzVcdTA5M2VcdTA5MWNcdTA5MjRcdTA5M2UiLExUUzoiQSBoOm1tOnNzIFx1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZSIsTDoiREQvTU0vWVlZ''@;'; + put 'put ''WSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUw''@;'; + put 'put ''OTA2XHUwOTFjXSBMVCIsbmV4dERheToiW1x1MDkwOVx1MDkyNlx1MDk0ZFx1MDkyZlx1MDkzZV0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MDkxNVx1MDkzZVx1MDkzMl0gTFQiLGxhc3RXZWVrOiJbXHUwOTJlXHUwOTNlXHUwOTE3XHUwOTQwXHUwOTMyXSBkZGRkLCBM''@;'; + put 'put ''VCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTA5MmVcdTA5MjdcdTA5NGRcdTA5MmZcdTA5NDciLHBhc3Q6IiVzXHUwOTJhXHUwOTQyXHUwOTMwXHUwOTRkXHUwOTM1XHUwOTQwIixzOk1lLHNzOk1lLG06TWUsbW06TWUsaDpNZSxoaDpNZSxkOk1lLGRkOk1lLE06''@;'; + put 'put ''TWUsTU06TWUseTpNZSx5eTpNZX0scHJlcGFyc2U6ZnVuY3Rpb24oUSl7cmV0dXJuIFEucmVwbGFjZSgvW1x1MDk2N1x1MDk2OFx1MDk2OVx1MDk2YVx1MDk2Ylx1MDk2Y1x1MDk2ZFx1MDk2ZVx1MDk2Zlx1MDk2Nl0vZyxmdW5jdGlvbihaKXtyZXR1cm4gRVtaXX0pfSxwb3N0Zm9ybWF0OmZ1''@;'; + put 'put ''bmN0aW9uKFEpe3JldHVybiBRLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oWil7cmV0dXJuIEJbWl19KX0sbWVyaWRpZW1QYXJzZTovXHUwOTJhXHUwOTM5XHUwOTNlXHUwOTFmXHUwOTQ3fFx1MDkzOFx1MDkxNVx1MDkzZVx1MDkzM1x1MDk0MHxcdTA5MjZcdTA5NDFcdTA5MmFcdTA5M2VcdTA5''@;'; + put 'put ''MzBcdTA5NDB8XHUwOTM4XHUwOTNlXHUwOTJmXHUwOTAyXHUwOTE1XHUwOTNlXHUwOTMzXHUwOTQwfFx1MDkzMFx1MDkzZVx1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0MC8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKFEsWil7cmV0dXJuIDEyPT09USYmKFE9MCksIlx1MDkyYVx1MDkzOVx1MDkzZVx1''@;'; + put 'put ''MDkxZlx1MDk0NyI9PT1afHwiXHUwOTM4XHUwOTE1XHUwOTNlXHUwOTMzXHUwOTQwIj09PVo/UToiXHUwOTI2XHUwOTQxXHUwOTJhXHUwOTNlXHUwOTMwXHUwOTQwIj09PVp8fCJcdTA5MzhcdTA5M2VcdTA5MmZcdTA5MDJcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDAiPT09Wnx8Ilx1MDkzMFx1''@;'; + put 'put ''MDkzZVx1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0MCI9PT1aP1E+PTEyP1E6USsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKFEsWixpZSl7cmV0dXJuIFE+PTAmJlE8Nj8iXHUwOTJhXHUwOTM5XHUwOTNlXHUwOTFmXHUwOTQ3IjpRPDEyPyJcdTA5MzhcdTA5MTVcdTA5M2VcdTA5MzNcdTA5''@;'; + put 'put ''NDAiOlE8MTc/Ilx1MDkyNlx1MDk0MVx1MDkyYVx1MDkzZVx1MDkzMFx1MDk0MCI6UTwyMD8iXHUwOTM4XHUwOTNlXHUwOTJmXHUwOTAyXHUwOTE1XHUwOTNlXHUwOTMzXHUwOTQwIjoiXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQwIn0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9''@;'; + put 'put ''KEwoMTU0MzkpKX0sNjQ1MjQ6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJtcy1teSIse21vbnRoczoiSmFudWFyaV9GZWJydWFyaV9NYWNfQXByaWxfTWVpX0p1bl9KdWxhaV9PZ29zX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVt''@;'; + put 'put ''YmVyX0Rpc2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hY19BcHJfTWVpX0p1bl9KdWxfT2dzX1NlcF9Pa3RfTm92X0RpcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiQWhhZF9Jc25pbl9TZWxhc2FfUmFidV9LaGFtaXNfSnVtYWF0X1NhYnR1Ii5zcGxpdCgiXyIpLHdl''@;'; + put 'put ''ZWtkYXlzU2hvcnQ6IkFoZF9Jc25fU2VsX1JhYl9LaGFfSnVtX1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiQWhfSXNfU2xfUmJfS21fSm1fU2IiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISC5tbSIsTFRTOiJISC5tbS5zcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1N''@;'; + put 'put ''TSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0ifSxtZXJpZGllbVBhcnNlOi9wYWdpfHRlbmdhaGFyaXxwZXRhbmd8bWFsYW0vLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLE1lKXtyZXR1cm4gMTI9PT1F''@;'; + put 'put ''JiYoRT0wKSwicGFnaSI9PT1NZT9FOiJ0ZW5nYWhhcmkiPT09TWU/RT49MTE/RTpFKzEyOiJwZXRhbmciPT09TWV8fCJtYWxhbSI9PT1NZT9FKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oRSxNZSxVKXtyZXR1cm4gRTwxMT8icGFnaSI6RTwxNT8idGVuZ2FoYXJpIjpFPDE5PyJwZXRh''@;'; + put 'put ''bmciOiJtYWxhbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSGFyaSBpbmkgcHVrdWxdIExUIixuZXh0RGF5OiJbRXNvayBwdWt1bF0gTFQiLG5leHRXZWVrOiJkZGRkIFtwdWt1bF0gTFQiLGxhc3REYXk6IltLZWxtYXJpbiBwdWt1bF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtsZXBhcyBwdWt1bF0g''@;'; + put 'put ''TFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImRhbGFtICVzIixwYXN0OiIlcyB5YW5nIGxlcGFzIixzOiJiZWJlcmFwYSBzYWF0IixzczoiJWQgc2FhdCIsbToic2VtaW5pdCIsbW06IiVkIG1pbml0IixoOiJzZWphbSIsaGg6IiVkIGphbSIsZDoic2VoYXJpIixkZDoi''@;'; + put 'put ''JWQgaGFyaSIsTToic2VidWxhbiIsTU06IiVkIGJ1bGFuIix5OiJzZXRhaHVuIix5eToiJWQgdGFodW4ifSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw3MDQ4NTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoIm1z''@;'; + put 'put ''Iix7bW9udGhzOiJKYW51YXJpX0ZlYnJ1YXJpX01hY19BcHJpbF9NZWlfSnVuX0p1bGFpX09nb3NfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGlzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFjX0Fwcl9NZWlfSnVuX0p1bF9PZ3NfU2VwX09rdF9Ob3ZfRGlz''@;'; + put 'put ''Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJBaGFkX0lzbmluX1NlbGFzYV9SYWJ1X0toYW1pc19KdW1hYXRfU2FidHUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiQWhkX0lzbl9TZWxfUmFiX0toYV9KdW1fU2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJBaF9Jc19TbF9SYl9LbV9KbV9T''@;'; + put 'put ''YiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhILm1tIixMVFM6IkhILm1tLnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSJ9LG1lcmlk''@;'; + put 'put ''aWVtUGFyc2U6L3BhZ2l8dGVuZ2FoYXJpfHBldGFuZ3xtYWxhbS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKEUsTWUpe3JldHVybiAxMj09PUUmJihFPTApLCJwYWdpIj09PU1lP0U6InRlbmdhaGFyaSI9PT1NZT9FPj0xMT9FOkUrMTI6InBldGFuZyI9PT1NZXx8Im1hbGFtIj09PU1lP0UrMTI6''@;'; + put 'put ''dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFPDExPyJwYWdpIjpFPDE1PyJ0ZW5nYWhhcmkiOkU8MTk/InBldGFuZyI6Im1hbGFtIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIYXJpIGluaSBwdWt1bF0gTFQiLG5leHREYXk6IltFc29rIHB1a3VsXSBMVCIsbmV4dFdl''@;'; + put 'put ''ZWs6ImRkZGQgW3B1a3VsXSBMVCIsbGFzdERheToiW0tlbG1hcmluIHB1a3VsXSBMVCIsbGFzdFdlZWs6ImRkZGQgW2xlcGFzIHB1a3VsXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFsYW0gJXMiLHBhc3Q6IiVzIHlhbmcgbGVwYXMiLHM6ImJlYmVyYXBhIHNh''@;'; + put 'put ''YXQiLHNzOiIlZCBzYWF0IixtOiJzZW1pbml0IixtbToiJWQgbWluaXQiLGg6InNlamFtIixoaDoiJWQgamFtIixkOiJzZWhhcmkiLGRkOiIlZCBoYXJpIixNOiJzZWJ1bGFuIixNTToiJWQgYnVsYW4iLHk6InNldGFodW4iLHl5OiIlZCB0YWh1biJ9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShM''@;'; + put 'put ''KDE1NDM5KSl9LDM2NjgxOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgibXQiLHttb250aHM6Ikphbm5hcl9GcmFyX01hcnp1X0FwcmlsX01lamp1X1x1MDEyMHVuanVfTHVsanVfQXd3aXNzdV9TZXR0ZW1icnVfT3R0dWJydV9O''@;'; + put 'put ''b3ZlbWJydV9EaVx1MDEwYmVtYnJ1Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRnJhX01hcl9BcHJfTWVqX1x1MDEyMHVuX0x1bF9Bd3dfU2V0X090dF9Ob3ZfRGlcdTAxMGIiLnNwbGl0KCJfIiksd2Vla2RheXM6IklsLVx1MDEyNmFkZF9JdC1UbmVqbl9JdC1UbGlldGFfTC1FcmJn''@;'; + put 'put ''XHUwMTI3YV9JbC1cdTAxMjZhbWlzX0lsLVx1MDEyMGltZ1x1MDEyN2FfSXMtU2lidCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTAxMjZhZF9UbmVfVGxpX0VyYl9cdTAxMjZhbV9cdTAxMjBpbV9TaWIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDEyNmFfVG5fVGxfRXJfXHUw''@;'; + put 'put ''MTI2YV9cdTAxMjBpX1NpIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRh''@;'; + put 'put ''cjp7c2FtZURheToiW0lsbHVtIGZpbC1dTFQiLG5leHREYXk6IltHXHUwMTI3YWRhIGZpbC1dTFQiLG5leHRXZWVrOiJkZGRkIFtmaWwtXUxUIixsYXN0RGF5OiJbSWwtYmllcmFcdTAxMjcgZmlsLV1MVCIsbGFzdFdlZWs6ImRkZGQgW2xpIGdcdTAxMjdhZGRhXSBbZmlsLV1MVCIsc2FtZUVs''@;'; + put 'put ''c2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZlx1MjAxOSAlcyIscGFzdDoiJXMgaWx1IixzOiJmdGl0IHNla29uZGkiLHNzOiIlZCBzZWtvbmRpIixtOiJtaW51dGEiLG1tOiIlZCBtaW51dGkiLGg6InNpZWdcdTAxMjdhIixoaDoiJWQgc2llZ1x1MDEyN2F0IixkOiJcdTAxMjF1cm5h''@;'; + put 'put ''dGEiLGRkOiIlZCBcdTAxMjFyYW5ldCIsTToieGFoYXIiLE1NOiIlZCB4aHVyIix5OiJzZW5hIix5eToiJWQgc25pIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNTIwMjQ6ZnVu''@;'; + put 'put ''Y3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ilx1MTA0MSIsMjoiXHUxMDQyIiwzOiJcdTEwNDMiLDQ6Ilx1MTA0NCIsNToiXHUxMDQ1Iiw2OiJcdTEwNDYiLDc6Ilx1MTA0NyIsODoiXHUxMDQ4Iiw5OiJcdTEwNDkiLDA6Ilx1MTA0MCJ9LEU9eyJc''@;'; + put 'put ''dTEwNDEiOiIxIiwiXHUxMDQyIjoiMiIsIlx1MTA0MyI6IjMiLCJcdTEwNDQiOiI0IiwiXHUxMDQ1IjoiNSIsIlx1MTA0NiI6IjYiLCJcdTEwNDciOiI3IiwiXHUxMDQ4IjoiOCIsIlx1MTA0OSI6IjkiLCJcdTEwNDAiOiIwIn07bWUuZGVmaW5lTG9jYWxlKCJteSIse21vbnRoczoiXHUxMDA3''@;'; + put 'put ''XHUxMDE0XHUxMDNhXHUxMDE0XHUxMDFkXHUxMDJiXHUxMDFiXHUxMDJlX1x1MTAxNlx1MTAzMVx1MTAxNlx1MTAzMVx1MTAyY1x1MTAzYVx1MTAxZFx1MTAyYlx1MTAxYlx1MTAyZV9cdTEwMTlcdTEwMTBcdTEwM2FfXHUxMDI3XHUxMDE1XHUxMDNjXHUxMDJlX1x1MTAxOVx1MTAzMV9cdTEw''@;'; + put 'put ''MDdcdTEwM2RcdTEwMTRcdTEwM2FfXHUxMDA3XHUxMDMwXHUxMDFjXHUxMDJkXHUxMDJmXHUxMDA0XHUxMDNhX1x1MTAxZVx1MTAzY1x1MTAwMlx1MTAyZlx1MTAxMFx1MTAzYV9cdTEwMDVcdTEwMDBcdTEwM2FcdTEwMTBcdTEwMDRcdTEwM2FcdTEwMThcdTEwMmNfXHUxMDIxXHUxMDMxXHUx''@;'; + put 'put ''MDJjXHUxMDAwXHUxMDNhXHUxMDEwXHUxMDJkXHUxMDJmXHUxMDE4XHUxMDJjX1x1MTAxNFx1MTAyZFx1MTAyZlx1MTAxZFx1MTAwNFx1MTAzYVx1MTAxOFx1MTAyY19cdTEwMTJcdTEwMmVcdTEwMDdcdTEwMDRcdTEwM2FcdTEwMThcdTEwMmMiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1''@;'; + put 'put ''MTAwN1x1MTAxNFx1MTAzYV9cdTEwMTZcdTEwMzFfXHUxMDE5XHUxMDEwXHUxMDNhX1x1MTAxNVx1MTAzY1x1MTAyZV9cdTEwMTlcdTEwMzFfXHUxMDA3XHUxMDNkXHUxMDE0XHUxMDNhX1x1MTAxY1x1MTAyZFx1MTAyZlx1MTAwNFx1MTAzYV9cdTEwMWVcdTEwM2NfXHUxMDA1XHUxMDAwXHUx''@;'; + put 'put ''MDNhX1x1MTAyMVx1MTAzMVx1MTAyY1x1MTAwMFx1MTAzYV9cdTEwMTRcdTEwMmRcdTEwMmZfXHUxMDEyXHUxMDJlIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTEwMTBcdTEwMTRcdTEwMDRcdTEwM2FcdTEwMzlcdTEwMDJcdTEwMTRcdTEwM2RcdTEwMzFfXHUxMDEwXHUxMDE0XHUxMDA0XHUx''@;'; + put 'put ''MDNhXHUxMDM5XHUxMDFjXHUxMDJjX1x1MTAyMVx1MTAwNFx1MTAzYVx1MTAzOVx1MTAwMlx1MTAyYl9cdTEwMTdcdTEwMmZcdTEwMTJcdTEwMzlcdTEwMTNcdTEwMWZcdTEwMzBcdTEwMzhfXHUxMDAwXHUxMDNjXHUxMDJjXHUxMDFlXHUxMDE1XHUxMDEwXHUxMDMxXHUxMDM4X1x1MTAxZVx1''@;'; + put 'put ''MTAzMVx1MTAyY1x1MTAwMFx1MTAzY1x1MTAyY19cdTEwMDVcdTEwMTRcdTEwMzEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUxMDE0XHUxMDNkXHUxMDMxX1x1MTAxY1x1MTAyY19cdTEwMDJcdTEwMmJfXHUxMDFmXHUxMDMwXHUxMDM4X1x1MTAwMFx1MTAzY1x1MTAyY19cdTEwMWVc''@;'; + put 'put ''dTEwMzFcdTEwMmNfXHUxMDE0XHUxMDMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTEwMTRcdTEwM2RcdTEwMzFfXHUxMDFjXHUxMDJjX1x1MTAwMlx1MTAyYl9cdTEwMWZcdTEwMzBcdTEwMzhfXHUxMDAwXHUxMDNjXHUxMDJjX1x1MTAxZVx1MTAzMVx1MTAyY19cdTEwMTRcdTEwMzEi''@;'; + put 'put ''LnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTEw''@;'; + put 'put ''MWFcdTEwMTRcdTEwMzEuXSBMVCBbXHUxMDE5XHUxMDNlXHUxMDJjXSIsbmV4dERheToiW1x1MTAxOVx1MTAxNFx1MTAwMFx1MTAzYVx1MTAxNlx1MTAzY1x1MTAxNFx1MTAzYV0gTFQgW1x1MTAxOVx1MTAzZVx1MTAyY10iLG5leHRXZWVrOiJkZGRkIExUIFtcdTEwMTlcdTEwM2VcdTEwMmNd''@;'; + put 'put ''IixsYXN0RGF5OiJbXHUxMDE5XHUxMDE0XHUxMDMxLlx1MTAwMF0gTFQgW1x1MTAxOVx1MTAzZVx1MTAyY10iLGxhc3RXZWVrOiJbXHUxMDE1XHUxMDNjXHUxMDJlXHUxMDM4XHUxMDAxXHUxMDMyXHUxMDM3XHUxMDFlXHUxMDMxXHUxMDJjXSBkZGRkIExUIFtcdTEwMTlcdTEwM2VcdTEwMmNd''@;'; + put 'put ''IixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTEwMWNcdTEwMmNcdTEwMTlcdTEwMGFcdTEwM2FcdTEwMzcgJXMgXHUxMDE5XHUxMDNlXHUxMDJjIixwYXN0OiJcdTEwMWNcdTEwM2RcdTEwMTRcdTEwM2FcdTEwMDFcdTEwMzJcdTEwMzdcdTEwMWVcdTEwMzFcdTEwMmMg''@;'; + put 'put ''JXMgXHUxMDAwIixzOiJcdTEwMDVcdTEwMDBcdTEwMzlcdTEwMDBcdTEwMTRcdTEwM2EuXHUxMDIxXHUxMDE0XHUxMDBhXHUxMDNhXHUxMDM4XHUxMDA0XHUxMDFhXHUxMDNhIixzczoiJWQgXHUxMDA1XHUxMDAwXHUxMDM5XHUxMDAwXHUxMDE0XHUxMDM3XHUxMDNhIixtOiJcdTEwMTBcdTEw''@;'; + put 'put ''MDVcdTEwM2FcdTEwMTlcdTEwMmRcdTEwMTRcdTEwMDVcdTEwM2EiLG1tOiIlZCBcdTEwMTlcdTEwMmRcdTEwMTRcdTEwMDVcdTEwM2EiLGg6Ilx1MTAxMFx1MTAwNVx1MTAzYVx1MTAxNFx1MTAyY1x1MTAxYlx1MTAyZSIsaGg6IiVkIFx1MTAxNFx1MTAyY1x1MTAxYlx1MTAyZSIsZDoiXHUx''@;'; + put 'put ''MDEwXHUxMDA1XHUxMDNhXHUxMDFiXHUxMDAwXHUxMDNhIixkZDoiJWQgXHUxMDFiXHUxMDAwXHUxMDNhIixNOiJcdTEwMTBcdTEwMDVcdTEwM2FcdTEwMWMiLE1NOiIlZCBcdTEwMWMiLHk6Ilx1MTAxMFx1MTAwNVx1MTAzYVx1MTAxNFx1MTAzZVx1MTAwNVx1MTAzYSIseXk6IiVkIFx1MTAx''@;'; + put 'put ''NFx1MTAzZVx1MTAwNVx1MTAzYSJ9LHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1tcdTEwNDFcdTEwNDJcdTEwNDNcdTEwNDRcdTEwNDVcdTEwNDZcdTEwNDdcdTEwNDhcdTEwNDlcdTEwNDBdL2csZnVuY3Rpb24oUSl7cmV0dXJuIEVbUV19KX0scG9zdGZvcm1hdDpm''@;'; + put 'put ''dW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKFEpe3JldHVybiBCW1FdfSl9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDQyNjg4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgibmIi''@;'; + put 'put ''LHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcnNfYXByaWxfbWFpX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbi5fZmViLl9tYXJzX2Fwci5fbWFpX2p1bmlfanVsaV9hdWcuX3NlcC5fb2t0''@;'; + put 'put ''Ll9ub3YuX2Rlcy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoic1x4ZjhuZGFnX21hbmRhZ190aXJzZGFnX29uc2RhZ190b3JzZGFnX2ZyZWRhZ19sXHhmOHJkYWciLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoic1x4ZjguX21hLl90aS5fb24uX3RvLl9mci5f''@;'; + put 'put ''bFx4ZjguIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJzXHhmOF9tYV90aV9vbl90b19mcl9sXHhmOCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZ''@;'; + put 'put ''WSIsTExMOiJELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0iLExMTEw6ImRkZGQgRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltpIGRhZyBrbC5dIExUIixuZXh0RGF5OiJbaSBtb3JnZW4ga2wuXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2tsLl0gTFQiLGxhc3RE''@;'; + put 'put ''YXk6IltpIGdceGU1ciBrbC5dIExUIixsYXN0V2VlazoiW2ZvcnJpZ2VdIGRkZGQgW2tsLl0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im9tICVzIixwYXN0OiIlcyBzaWRlbiIsczoibm9lbiBzZWt1bmRlciIsc3M6IiVkIHNla3VuZGVyIixtOiJldHQgbWludXR0''@;'; + put 'put ''IixtbToiJWQgbWludXR0ZXIiLGg6ImVuIHRpbWUiLGhoOiIlZCB0aW1lciIsZDoiZW4gZGFnIixkZDoiJWQgZGFnZXIiLHc6ImVuIHVrZSIsd3c6IiVkIHVrZXIiLE06ImVuIG1ceGU1bmVkIixNTToiJWQgbVx4ZTVuZWRlciIseToiZXR0IFx4ZTVyIix5eToiJWQgXHhlNXIifSxkYXlPZk1v''@;'; + put 'put ''bnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNjg5MTQ6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ilx1MDk2NyIsMjoiXHUwOTY4IiwzOiJcdTA5Njki''@;'; + put 'put ''LDQ6Ilx1MDk2YSIsNToiXHUwOTZiIiw2OiJcdTA5NmMiLDc6Ilx1MDk2ZCIsODoiXHUwOTZlIiw5OiJcdTA5NmYiLDA6Ilx1MDk2NiJ9LEU9eyJcdTA5NjciOiIxIiwiXHUwOTY4IjoiMiIsIlx1MDk2OSI6IjMiLCJcdTA5NmEiOiI0IiwiXHUwOTZiIjoiNSIsIlx1MDk2YyI6IjYiLCJcdTA5''@;'; + put 'put ''NmQiOiI3IiwiXHUwOTZlIjoiOCIsIlx1MDk2ZiI6IjkiLCJcdTA5NjYiOiIwIn07bWUuZGVmaW5lTG9jYWxlKCJuZSIse21vbnRoczoiXHUwOTFjXHUwOTI4XHUwOTM1XHUwOTMwXHUwOTQwX1x1MDkyYlx1MDk0N1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0MVx1MDkzNVx1MDkzMFx1MDk0MF9c''@;'; + put 'put ''dTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFfXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTNmXHUwOTMyX1x1MDkyZVx1MDkwOF9cdTA5MWNcdTA5NDFcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4X1x1MDkwNVx1MDkxN1x1MDkzN1x1MDk0ZFx1MDkxZl9cdTA5''@;'; + put 'put ''MzhcdTA5NDdcdTA5MmFcdTA5NGRcdTA5MWZcdTA5NDdcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzBfXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTRiXHUwOTJjXHUwOTMwX1x1MDkyOFx1MDk0Ylx1MDkyZFx1MDk0N1x1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMF9cdTA5MjFcdTA5M2ZcdTA5''@;'; + put 'put ''MzhcdTA5NDdcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDkxY1x1MDkyOC5fXHUwOTJiXHUwOTQ3XHUwOTJjXHUwOTRkXHUwOTMwXHUwOTQxLl9cdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFfXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMw''@;'; + put 'put ''XHUwOTNmLl9cdTA5MmVcdTA5MDhfXHUwOTFjXHUwOTQxXHUwOTI4X1x1MDkxY1x1MDk0MVx1MDkzMlx1MDkzZVx1MDkwOC5fXHUwOTA1XHUwOTE3Ll9cdTA5MzhcdTA5NDdcdTA5MmFcdTA5NGRcdTA5MWYuX1x1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Yi5fXHUwOTI4XHUwOTRiXHUw''@;'; + put 'put ''OTJkXHUwOTQ3Ll9cdTA5MjFcdTA5M2ZcdTA5MzhcdTA5NDcuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MDkwNlx1MDkwN1x1MDkyNFx1MDkyY1x1MDkzZVx1MDkzMF9cdTA5MzhcdTA5NGJcdTA5MmVcdTA5MmNcdTA5M2VcdTA5MzBfXHUwOTJlXHUwOTE5''@;'; + put 'put ''XHUwOTRkXHUwOTE3XHUwOTMyXHUwOTJjXHUwOTNlXHUwOTMwX1x1MDkyY1x1MDk0MVx1MDkyN1x1MDkyY1x1MDkzZVx1MDkzMF9cdTA5MmNcdTA5M2ZcdTA5MzlcdTA5M2ZcdTA5MmNcdTA5M2VcdTA5MzBfXHUwOTM2XHUwOTQxXHUwOTE1XHUwOTRkXHUwOTMwXHUwOTJjXHUwOTNlXHUwOTMw''@;'; + put 'put ''X1x1MDkzNlx1MDkyOFx1MDkzZlx1MDkyY1x1MDkzZVx1MDkzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA5MDZcdTA5MDdcdTA5MjQuX1x1MDkzOFx1MDk0Ylx1MDkyZS5fXHUwOTJlXHUwOTE5XHUwOTRkXHUwOTE3XHUwOTMyLl9cdTA5MmNcdTA5NDFcdTA5MjcuX1x1MDkyY1x1''@;'; + put 'put ''MDkzZlx1MDkzOVx1MDkzZi5fXHUwOTM2XHUwOTQxXHUwOTE1XHUwOTRkXHUwOTMwLl9cdTA5MzZcdTA5MjhcdTA5M2YuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA5MDYuX1x1MDkzOFx1MDk0Yi5fXHUwOTJlXHUwOTAyLl9cdTA5MmNcdTA5NDEuX1x1MDkyY1x1MDkzZi5fXHUwOTM2''@;'; + put 'put ''XHUwOTQxLl9cdTA5MzYuIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkFcdTA5MTVcdTA5NGIgaDptbSBcdTA5MmNcdTA5MWNcdTA5NDciLExUUzoiQVx1MDkxNVx1MDk0YiBoOm1tOnNzIFx1MDkyY1x1MDkxY1x1MDk0NyIsTDoiREQvTU0v''@;'; + put 'put ''WVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZLCBBXHUwOTE1XHUwOTRiIGg6bW0gXHUwOTJjXHUwOTFjXHUwOTQ3IixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQVx1MDkxNVx1MDk0YiBoOm1tIFx1MDkyY1x1MDkxY1x1MDk0NyJ9LHByZXBhcnNlOmZ1bmN0aW9uKFUp''@;'; + put 'put ''e3JldHVybiBVLnJlcGxhY2UoL1tcdTA5NjdcdTA5NjhcdTA5NjlcdTA5NmFcdTA5NmJcdTA5NmNcdTA5NmRcdTA5NmVcdTA5NmZcdTA5NjZdL2csZnVuY3Rpb24oUSl7cmV0dXJuIEVbUV19KX0scG9zdGZvcm1hdDpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9u''@;'; + put 'put ''KFEpe3JldHVybiBCW1FdfSl9LG1lcmlkaWVtUGFyc2U6L1x1MDkzMFx1MDkzZVx1MDkyNFx1MDkzZnxcdTA5MmNcdTA5M2ZcdTA5MzlcdTA5M2VcdTA5Mjh8XHUwOTI2XHUwOTNmXHUwOTA5XHUwOTAxXHUwOTM4XHUwOTRifFx1MDkzOFx1MDkzZVx1MDkwMVx1MDkxZC8sbWVyaWRpZW1Ib3Vy''@;'; + put 'put ''OmZ1bmN0aW9uKFUsUSl7cmV0dXJuIDEyPT09VSYmKFU9MCksIlx1MDkzMFx1MDkzZVx1MDkyNFx1MDkzZiI9PT1RP1U8ND9VOlUrMTI6Ilx1MDkyY1x1MDkzZlx1MDkzOVx1MDkzZVx1MDkyOCI9PT1RP1U6Ilx1MDkyNlx1MDkzZlx1MDkwOVx1MDkwMVx1MDkzOFx1MDk0YiI9PT1RP1U+PTEw''@;'; + put 'put ''P1U6VSsxMjoiXHUwOTM4XHUwOTNlXHUwOTAxXHUwOTFkIj09PVE/VSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKFUsUSxaKXtyZXR1cm4gVTwzPyJcdTA5MzBcdTA5M2VcdTA5MjRcdTA5M2YiOlU8MTI/Ilx1MDkyY1x1MDkzZlx1MDkzOVx1MDkzZVx1MDkyOCI6VTwxNj8iXHUwOTI2''@;'; + put 'put ''XHUwOTNmXHUwOTA5XHUwOTAxXHUwOTM4XHUwOTRiIjpVPDIwPyJcdTA5MzhcdTA5M2VcdTA5MDFcdTA5MWQiOiJcdTA5MzBcdTA5M2VcdTA5MjRcdTA5M2YifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDkwNlx1MDkxY10gTFQiLG5leHREYXk6IltcdTA5MmRcdTA5NGJcdTA5MzJcdTA5M2Zd''@;'; + put 'put ''IExUIixuZXh0V2VlazoiW1x1MDkwNlx1MDkwOVx1MDkwMVx1MDkyNlx1MDk0Yl0gZGRkZFssXSBMVCIsbGFzdERheToiW1x1MDkzOVx1MDkzZlx1MDkxY1x1MDk0Yl0gTFQiLGxhc3RXZWVrOiJbXHUwOTE3XHUwOTBmXHUwOTE1XHUwOTRiXSBkZGRkWyxdIExUIixzYW1lRWxzZToiTCJ9LHJl''@;'; + put 'put ''bGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1MDkyZVx1MDkzZSIscGFzdDoiJXMgXHUwOTA1XHUwOTE3XHUwOTNlXHUwOTIxXHUwOTNmIixzOiJcdTA5MTVcdTA5NDdcdTA5MzlcdTA5NDAgXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTIzIixzczoiJWQgXHUwOTM4XHUwOTQ3XHUwOTE1XHUwOTQ3XHUw''@;'; + put 'put ''OTIzXHUwOTRkXHUwOTIxIixtOiJcdTA5MGZcdTA5MTUgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTQ3XHUwOTFmIixtbToiJWQgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTQ3XHUwOTFmIixoOiJcdTA5MGZcdTA5MTUgXHUwOTE4XHUwOTIzXHUwOTRkXHUwOTFmXHUwOTNlIixoaDoiJWQgXHUwOTE4''@;'; + put 'put ''XHUwOTIzXHUwOTRkXHUwOTFmXHUwOTNlIixkOiJcdTA5MGZcdTA5MTUgXHUwOTI2XHUwOTNmXHUwOTI4IixkZDoiJWQgXHUwOTI2XHUwOTNmXHUwOTI4IixNOiJcdTA5MGZcdTA5MTUgXHUwOTJlXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTNlIixNTToiJWQgXHUwOTJlXHUwOTM5XHUwOTNmXHUw''@;'; + put 'put ''OTI4XHUwOTNlIix5OiJcdTA5MGZcdTA5MTUgXHUwOTJjXHUwOTMwXHUwOTRkXHUwOTM3Iix5eToiJWQgXHUwOTJjXHUwOTMwXHUwOTRkXHUwOTM3In0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sNTIyNzI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0''@;'; + put 'put ''cmljdCI7dmFyIEI9Imphbi5fZmViLl9tcnQuX2Fwci5fbWVpX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksRT0iamFuX2ZlYl9tcnRfYXByX21laV9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksTWU9Wy9eamFuL2ksL15mZWIv''@;'; + put 'put ''aSwvXm1hYXJ0fG1ydC4/JC9pLC9eYXByL2ksL15tZWkkL2ksL15qdW5baS5dPyQvaSwvXmp1bFtpLl0/JC9pLC9eYXVnL2ksL15zZXAvaSwvXm9rdC9pLC9ebm92L2ksL15kZWMvaV0sVT0vXihqYW51YXJpfGZlYnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVzfHNlcHRl''@;'; + put 'put ''bWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyfGphblwuP3xmZWJcLj98bXJ0XC4/fGFwclwuP3xqdVtubF1cLj98YXVnXC4/fHNlcFwuP3xva3RcLj98bm92XC4/fGRlY1wuPykvaTttZS5kZWZpbmVMb2NhbGUoIm5sLWJlIix7bW9udGhzOiJqYW51YXJpX2ZlYnJ1YXJpX21hYXJ0X2Fw''@;'; + put 'put ''cmlsX21laV9qdW5pX2p1bGlfYXVndXN0dXNfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oWixpZSl7cmV0dXJuIFo/Ly1NTU0tLy50ZXN0KGllKT9FW1oubW9udGgoKV06QltaLm1vbnRoKCldOkJ9LG1vbnRoc1Jl''@;'; + put 'put ''Z2V4OlUsbW9udGhzU2hvcnRSZWdleDpVLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKGphbnVhcml8ZmVicnVhcml8bWFhcnR8YXByaWx8bWVpfGp1W25sXWl8YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihqYW5c''@;'; + put 'put ''Lj98ZmViXC4/fG1ydFwuP3xhcHJcLj98bWVpfGp1W25sXVwuP3xhdWdcLj98c2VwXC4/fG9rdFwuP3xub3ZcLj98ZGVjXC4/KS9pLG1vbnRoc1BhcnNlOk1lLGxvbmdNb250aHNQYXJzZTpNZSxzaG9ydE1vbnRoc1BhcnNlOk1lLHdlZWtkYXlzOiJ6b25kYWdfbWFhbmRhZ19kaW5zZGFnX3dv''@;'; + put 'put ''ZW5zZGFnX2RvbmRlcmRhZ192cmlqZGFnX3phdGVyZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InpvLl9tYS5fZGkuX3dvLl9kby5fdnIuX3phLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiem9fbWFfZGlfd29fZG9fdnJfemEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0''@;'; + put 'put ''OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbdmFuZGFhZyBvbV0g''@;'; + put 'put ''TFQiLG5leHREYXk6Ilttb3JnZW4gb21dIExUIixuZXh0V2VlazoiZGRkZCBbb21dIExUIixsYXN0RGF5OiJbZ2lzdGVyZW4gb21dIExUIixsYXN0V2VlazoiW2FmZ2Vsb3Blbl0gZGRkZCBbb21dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvdmVyICVzIixwYXN0''@;'; + put 'put ''OiIlcyBnZWxlZGVuIixzOiJlZW4gcGFhciBzZWNvbmRlbiIsc3M6IiVkIHNlY29uZGVuIixtOiJceGU5XHhlOW4gbWludXV0IixtbToiJWQgbWludXRlbiIsaDoiXHhlOVx4ZTluIHV1ciIsaGg6IiVkIHV1ciIsZDoiXHhlOVx4ZTluIGRhZyIsZGQ6IiVkIGRhZ2VuIixNOiJceGU5XHhlOW4g''@;'; + put 'put ''bWFhbmQiLE1NOiIlZCBtYWFuZGVuIix5OiJceGU5XHhlOW4gamFhciIseXk6IiVkIGphYXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0ZXxkZSkvLG9yZGluYWw6ZnVuY3Rpb24oWil7cmV0dXJuIForKDE9PT1afHw4PT09Wnx8Wj49MjA/InN0ZSI6ImRlIil9LHdlZWs6''@;'; + put 'put ''e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDExNzU4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPSJqYW4uX2ZlYi5fbXJ0Ll9hcHIuX21laV9qdW4uX2p1bC5fYXVnLl9zZXAuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLEU9Imphbl9m''@;'; + put 'put ''ZWJfbXJ0X2Fwcl9tZWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjIi5zcGxpdCgiXyIpLE1lPVsvXmphbi9pLC9eZmViL2ksL15tYWFydHxtcnQuPyQvaSwvXmFwci9pLC9ebWVpJC9pLC9eanVuW2kuXT8kL2ksL15qdWxbaS5dPyQvaSwvXmF1Zy9pLC9ec2VwL2ksL15va3QvaSwvXm5v''@;'; + put 'put ''di9pLC9eZGVjL2ldLFU9L14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcnxqYW5cLj98ZmViXC4/fG1ydFwuP3xhcHJcLj98anVbbmxdXC4/fGF1Z1wuP3xzZXBcLj98b2t0XC4/fG5v''@;'; + put 'put ''dlwuP3xkZWNcLj8pL2k7bWUuZGVmaW5lTG9jYWxlKCJubCIse21vbnRoczoiamFudWFyaV9mZWJydWFyaV9tYWFydF9hcHJpbF9tZWlfanVuaV9qdWxpX2F1Z3VzdHVzX3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OmZ1bmN0aW9u''@;'; + put 'put ''KFosaWUpe3JldHVybiBaPy8tTU1NLS8udGVzdChpZSk/RVtaLm1vbnRoKCldOkJbWi5tb250aCgpXTpCfSxtb250aHNSZWdleDpVLG1vbnRoc1Nob3J0UmVnZXg6VSxtb250aHNTdHJpY3RSZWdleDovXihqYW51YXJpfGZlYnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVz''@;'; + put 'put ''fHNlcHRlbWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyKS9pLG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6L14oamFuXC4/fGZlYlwuP3xtcnRcLj98YXByXC4/fG1laXxqdVtubF1cLj98YXVnXC4/fHNlcFwuP3xva3RcLj98bm92XC4/fGRlY1wuPykvaSxtb250aHNQYXJzZTpNZSxsb25n''@;'; + put 'put ''TW9udGhzUGFyc2U6TWUsc2hvcnRNb250aHNQYXJzZTpNZSx3ZWVrZGF5czoiem9uZGFnX21hYW5kYWdfZGluc2RhZ193b2Vuc2RhZ19kb25kZXJkYWdfdnJpamRhZ196YXRlcmRhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJ6by5fbWEuX2RpLl93by5fZG8uX3ZyLl96YS4iLnNwbGl0''@;'; + put 'put ''KCJfIiksd2Vla2RheXNNaW46InpvX21hX2RpX3dvX2RvX3ZyX3phIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC1NTS1ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkg''@;'; + put 'put ''SEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW3ZhbmRhYWcgb21dIExUIixuZXh0RGF5OiJbbW9yZ2VuIG9tXSBMVCIsbmV4dFdlZWs6ImRkZGQgW29tXSBMVCIsbGFzdERheToiW2dpc3RlcmVuIG9tXSBMVCIsbGFzdFdlZWs6IlthZmdl''@;'; + put 'put ''bG9wZW5dIGRkZGQgW29tXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToib3ZlciAlcyIscGFzdDoiJXMgZ2VsZWRlbiIsczoiZWVuIHBhYXIgc2Vjb25kZW4iLHNzOiIlZCBzZWNvbmRlbiIsbToiXHhlOVx4ZTluIG1pbnV1dCIsbW06IiVkIG1pbnV0ZW4iLGg6Ilx4''@;'; + put 'put ''ZTlceGU5biB1dXIiLGhoOiIlZCB1dXIiLGQ6Ilx4ZTlceGU5biBkYWciLGRkOiIlZCBkYWdlbiIsdzoiXHhlOVx4ZTluIHdlZWsiLHd3OiIlZCB3ZWtlbiIsTToiXHhlOVx4ZTluIG1hYW5kIixNTToiJWQgbWFhbmRlbiIseToiXHhlOVx4ZTluIGphYXIiLHl5OiIlZCBqYWFyIn0sZGF5T2ZN''@;'; + put 'put ''b250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdGV8ZGUpLyxvcmRpbmFsOmZ1bmN0aW9uKFope3JldHVybiBaKygxPT09Wnx8OD09PVp8fFo+PTIwPyJzdGUiOiJkZSIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw0MTUxMDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24o''@;'; + put 'put ''bWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoIm5uIix7bW9udGhzOiJqYW51YXJfZmVicnVhcl9tYXJzX2FwcmlsX21haV9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2Rlc2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW4uX2ZlYi5f''@;'; + put 'put ''bWFyc19hcHIuX21haV9qdW5pX2p1bGlfYXVnLl9zZXAuX29rdC5fbm92Ll9kZXMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6InN1bmRhZ19tXHhlNW5kYWdfdHlzZGFnX29uc2RhZ190b3JzZGFnX2ZyZWRhZ19sYXVyZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlz''@;'; + put 'put ''U2hvcnQ6InN1Ll9tXHhlNS5fdHkuX29uLl90by5fZnIuX2xhdS4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InN1X21ceGU1X3R5X29uX3RvX2ZyX2xhIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixM''@;'; + put 'put ''OiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBba2wuXSBIOm1tIixMTExMOiJkZGRkIEQuIE1NTU0gWVlZWSBba2wuXSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSSBkYWcga2xva2thXSBMVCIsbmV4dERheToiW0kgbW9yZ29uIGtsb2trYV0g''@;'; + put 'put ''TFQiLG5leHRXZWVrOiJkZGRkIFtrbG9ra2FdIExUIixsYXN0RGF5OiJbSSBnXHhlNXIga2xva2thXSBMVCIsbGFzdFdlZWs6IltGXHhmOHJlZ1x4ZTVhbmRlXSBkZGRkIFtrbG9ra2FdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvbSAlcyIscGFzdDoiJXMgc2lk''@;'; + put 'put ''YW4iLHM6Im5va3JlIHNla3VuZCIsc3M6IiVkIHNla3VuZCIsbToiZWl0IG1pbnV0dCIsbW06IiVkIG1pbnV0dCIsaDoiZWluIHRpbWUiLGhoOiIlZCB0aW1hciIsZDoiZWluIGRhZyIsZGQ6IiVkIGRhZ2FyIix3OiJlaSB2ZWtlIix3dzoiJWQgdmVrZXIiLE06ImVpbiBtXHhlNW5hZCIsTU06''@;'; + put 'put ''IiVkIG1ceGU1bmFkZXIiLHk6ImVpdCBceGU1ciIseXk6IiVkIFx4ZTVyIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDUyNzk3OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7''@;'; + put 'put ''InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgib2MtbG5jIix7bW9udGhzOntzdGFuZGFsb25lOiJnZW5pXHhlOHJfZmVicmlceGU4cl9tYXJceGU3X2FicmlsX21haV9qdW5oX2p1bGhldF9hZ29zdF9zZXRlbWJyZV9vY3RceGYyYnJlX25vdmVtYnJlX2RlY2VtYnJlIi5zcGxpdCgiXyIp''@;'; + put 'put ''LGZvcm1hdDoiZGUgZ2VuaVx4ZThyX2RlIGZlYnJpXHhlOHJfZGUgbWFyXHhlN19kJ2FicmlsX2RlIG1haV9kZSBqdW5oX2RlIGp1bGhldF9kJ2Fnb3N0X2RlIHNldGVtYnJlX2Qnb2N0XHhmMmJyZV9kZSBub3ZlbWJyZV9kZSBkZWNlbWJyZSIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovRFtvRF0/''@;'; + put 'put ''KFxzKStNTU1NL30sbW9udGhzU2hvcnQ6Imdlbi5fZmVici5fbWFyXHhlN19hYnIuX21haV9qdW5oX2p1bGguX2Fnby5fc2V0Ll9vY3QuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJkaW1lbmdlX2RpbHVuc19kaW1hcnNfZGltXHhlOGNyZXNf''@;'; + put 'put ''ZGlqXHhmMnVzX2RpdmVuZHJlc19kaXNzYWJ0ZSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkZy5fZGwuX2RtLl9kYy5fZGouX2R2Ll9kcy4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRnX2RsX2RtX2RjX2RqX2R2X2RzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxs''@;'; + put 'put ''b25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBbZGVdIFlZWVkiLGxsOiJEIE1NTSBZWVlZIixMTEw6IkQgTU1NTSBbZGVdIFlZWVkgW2FdIEg6bW0iLGxsbDoiRCBNTU0gWVlZWSwgSDptbSIsTExMTDoiZGRkZCBEIE1NTU0g''@;'; + put 'put ''W2RlXSBZWVlZIFthXSBIOm1tIixsbGxsOiJkZGQgRCBNTU0gWVlZWSwgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbdVx4ZThpIGFdIExUIixuZXh0RGF5OiJbZGVtYW4gYV0gTFQiLG5leHRXZWVrOiJkZGRkIFthXSBMVCIsbGFzdERheToiW2lceGU4ciBhXSBMVCIsbGFzdFdlZWs6ImRk''@;'; + put 'put ''ZGQgW3Bhc3NhdCBhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZCdhcXVceGVkICVzIixwYXN0OiJmYSAlcyIsczoidW5hcyBzZWdvbmRhcyIsc3M6IiVkIHNlZ29uZGFzIixtOiJ1bmEgbWludXRhIixtbToiJWQgbWludXRhcyIsaDoidW5hIG9yYSIsaGg6IiVk''@;'; + put 'put ''IG9yYXMiLGQ6InVuIGpvcm4iLGRkOiIlZCBqb3JucyIsTToidW4gbWVzIixNTToiJWQgbWVzZXMiLHk6InVuIGFuIix5eToiJWQgYW5zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShyfG58dHxceGU4fGEpLyxvcmRpbmFsOmZ1bmN0aW9uKEUsTWUpe3ZhciBVPTE9PT1FPyJy''@;'; + put 'put ''IjoyPT09RT8ibiI6Mz09PUU/InIiOjQ9PT1FPyJ0IjoiXHhlOCI7cmV0dXJuKCJ3Ij09PU1lfHwiVyI9PT1NZSkmJihVPSJhIiksRStVfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwzNzk0NDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2''@;'; + put 'put ''YXIgQj17MToiXHUwYTY3IiwyOiJcdTBhNjgiLDM6Ilx1MGE2OSIsNDoiXHUwYTZhIiw1OiJcdTBhNmIiLDY6Ilx1MGE2YyIsNzoiXHUwYTZkIiw4OiJcdTBhNmUiLDk6Ilx1MGE2ZiIsMDoiXHUwYTY2In0sRT17Ilx1MGE2NyI6IjEiLCJcdTBhNjgiOiIyIiwiXHUwYTY5IjoiMyIsIlx1MGE2''@;'; + put 'put ''YSI6IjQiLCJcdTBhNmIiOiI1IiwiXHUwYTZjIjoiNiIsIlx1MGE2ZCI6IjciLCJcdTBhNmUiOiI4IiwiXHUwYTZmIjoiOSIsIlx1MGE2NiI6IjAifTttZS5kZWZpbmVMb2NhbGUoInBhLWluIix7bW9udGhzOiJcdTBhMWNcdTBhMjhcdTBhMzVcdTBhMzBcdTBhNDBfXHUwYTJiXHUwYTNjXHUw''@;'; + put 'put ''YTMwXHUwYTM1XHUwYTMwXHUwYTQwX1x1MGEyZVx1MGEzZVx1MGEzMFx1MGExYV9cdTBhMDVcdTBhMmFcdTBhNGRcdTBhMzBcdTBhNDhcdTBhMzJfXHUwYTJlXHUwYTA4X1x1MGExY1x1MGE0Mlx1MGEyOF9cdTBhMWNcdTBhNDFcdTBhMzJcdTBhM2VcdTBhMDhfXHUwYTA1XHUwYTE3XHUwYTM4''@;'; + put 'put ''XHUwYTI0X1x1MGEzOFx1MGEyNFx1MGE3MFx1MGEyY1x1MGEzMF9cdTBhMDVcdTBhMTVcdTBhMjRcdTBhNDJcdTBhMmNcdTBhMzBfXHUwYTI4XHUwYTM1XHUwYTcwXHUwYTJjXHUwYTMwX1x1MGEyNlx1MGEzOFx1MGE3MFx1MGEyY1x1MGEzMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUw''@;'; + put 'put ''YTFjXHUwYTI4XHUwYTM1XHUwYTMwXHUwYTQwX1x1MGEyYlx1MGEzY1x1MGEzMFx1MGEzNVx1MGEzMFx1MGE0MF9cdTBhMmVcdTBhM2VcdTBhMzBcdTBhMWFfXHUwYTA1XHUwYTJhXHUwYTRkXHUwYTMwXHUwYTQ4XHUwYTMyX1x1MGEyZVx1MGEwOF9cdTBhMWNcdTBhNDJcdTBhMjhfXHUwYTFj''@;'; + put 'put ''XHUwYTQxXHUwYTMyXHUwYTNlXHUwYTA4X1x1MGEwNVx1MGExN1x1MGEzOFx1MGEyNF9cdTBhMzhcdTBhMjRcdTBhNzBcdTBhMmNcdTBhMzBfXHUwYTA1XHUwYTE1XHUwYTI0XHUwYTQyXHUwYTJjXHUwYTMwX1x1MGEyOFx1MGEzNVx1MGE3MFx1MGEyY1x1MGEzMF9cdTBhMjZcdTBhMzhcdTBh''@;'; + put 'put ''NzBcdTBhMmNcdTBhMzAiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MGExMFx1MGEyNFx1MGEzNVx1MGEzZVx1MGEzMF9cdTBhMzhcdTBhNGJcdTBhMmVcdTBhMzVcdTBhM2VcdTBhMzBfXHUwYTJlXHUwYTcwXHUwYTE3XHUwYTMyXHUwYTM1XHUwYTNlXHUwYTMwX1x1MGEyY1x1MGE0MVx1MGEy''@;'; + put 'put ''N1x1MGEzNVx1MGEzZVx1MGEzMF9cdTBhMzVcdTBhNDBcdTBhMzBcdTBhMzVcdTBhM2VcdTBhMzBfXHUwYTM4XHUwYTNjXHUwYTQxXHUwYTcxXHUwYTE1XHUwYTMwXHUwYTM1XHUwYTNlXHUwYTMwX1x1MGEzOFx1MGEzY1x1MGEyOFx1MGE0MFx1MGExYVx1MGEzMFx1MGEzNVx1MGEzZVx1MGEz''@;'; + put 'put ''MCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBhMTBcdTBhMjRfXHUwYTM4XHUwYTRiXHUwYTJlX1x1MGEyZVx1MGE3MFx1MGExN1x1MGEzMl9cdTBhMmNcdTBhNDFcdTBhMjdfXHUwYTM1XHUwYTQwXHUwYTMwX1x1MGEzOFx1MGEzY1x1MGE0MVx1MGExNVx1MGEzMF9cdTBhMzhcdTBh''@;'; + put 'put ''M2NcdTBhMjhcdTBhNDAiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGExMFx1MGEyNF9cdTBhMzhcdTBhNGJcdTBhMmVfXHUwYTJlXHUwYTcwXHUwYTE3XHUwYTMyX1x1MGEyY1x1MGE0MVx1MGEyN19cdTBhMzVcdTBhNDBcdTBhMzBfXHUwYTM4XHUwYTNjXHUwYTQxXHUwYTE1XHUwYTMw''@;'; + put 'put ''X1x1MGEzOFx1MGEzY1x1MGEyOFx1MGE0MCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBcdTBhMzVcdTBhMWNcdTBhNDciLExUUzoiQSBoOm1tOnNzIFx1MGEzNVx1MGExY1x1MGE0NyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZ''@;'; + put 'put ''WVlZLCBBIGg6bW0gXHUwYTM1XHUwYTFjXHUwYTQ3IixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MGEzNVx1MGExY1x1MGE0NyJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwYTA1XHUwYTFjXSBMVCIsbmV4dERheToiW1x1MGExNVx1MGEzMl0gTFQiLG5leHRXZWVrOiJbXHUw''@;'; + put 'put ''YTA1XHUwYTE3XHUwYTMyXHUwYTNlXSBkZGRkLCBMVCIsbGFzdERheToiW1x1MGExNVx1MGEzMl0gTFQiLGxhc3RXZWVrOiJbXHUwYTJhXHUwYTNmXHUwYTFiXHUwYTMyXHUwYTQ3XSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwYTM1XHUwYTNm''@;'; + put 'put ''XHUwYTcxXHUwYTFhIixwYXN0OiIlcyBcdTBhMmFcdTBhM2ZcdTBhMWJcdTBhMzJcdTBhNDciLHM6Ilx1MGExNVx1MGE0MVx1MGExZCBcdTBhMzhcdTBhMTVcdTBhM2ZcdTBhNzBcdTBhMWYiLHNzOiIlZCBcdTBhMzhcdTBhMTVcdTBhM2ZcdTBhNzBcdTBhMWYiLG06Ilx1MGEwN1x1MGExNSBc''@;'; + put 'put ''dTBhMmVcdTBhM2ZcdTBhNzBcdTBhMWYiLG1tOiIlZCBcdTBhMmVcdTBhM2ZcdTBhNzBcdTBhMWYiLGg6Ilx1MGEwN1x1MGE3MVx1MGExNSBcdTBhMThcdTBhNzBcdTBhMWZcdTBhM2UiLGhoOiIlZCBcdTBhMThcdTBhNzBcdTBhMWZcdTBhNDciLGQ6Ilx1MGEwN1x1MGE3MVx1MGExNSBcdTBh''@;'; + put 'put ''MjZcdTBhM2ZcdTBhMjgiLGRkOiIlZCBcdTBhMjZcdTBhM2ZcdTBhMjgiLE06Ilx1MGEwN1x1MGE3MVx1MGExNSBcdTBhMmVcdTBhMzlcdTBhNDBcdTBhMjhcdTBhM2UiLE1NOiIlZCBcdTBhMmVcdTBhMzlcdTBhNDBcdTBhMjhcdTBhNDciLHk6Ilx1MGEwN1x1MGE3MVx1MGExNSBcdTBhMzhc''@;'; + put 'put ''dTBhM2VcdTBhMzIiLHl5OiIlZCBcdTBhMzhcdTBhM2VcdTBhMzIifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9bXHUwYTY3XHUwYTY4XHUwYTY5XHUwYTZhXHUwYTZiXHUwYTZjXHUwYTZkXHUwYTZlXHUwYTZmXHUwYTY2XS9nLGZ1bmN0aW9uKFEpe3JldHVybiBF''@;'; + put 'put ''W1FdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0pfSxtZXJpZGllbVBhcnNlOi9cdTBhMzBcdTBhM2VcdTBhMjR8XHUwYTM4XHUwYTM1XHUwYTQ3XHUwYTMwfFx1MGEyNlx1MGE0MVx1MGEyYVx1MGEzOVx1''@;'; + put 'put ''MGEzZlx1MGEzMHxcdTBhMzhcdTBhM2NcdTBhM2VcdTBhMmUvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihVLFEpe3JldHVybiAxMj09PVUmJihVPTApLCJcdTBhMzBcdTBhM2VcdTBhMjQiPT09UT9VPDQ/VTpVKzEyOiJcdTBhMzhcdTBhMzVcdTBhNDdcdTBhMzAiPT09UT9VOiJcdTBhMjZcdTBh''@;'; + put 'put ''NDFcdTBhMmFcdTBhMzlcdTBhM2ZcdTBhMzAiPT09UT9VPj0xMD9VOlUrMTI6Ilx1MGEzOFx1MGEzY1x1MGEzZVx1MGEyZSI9PT1RP1UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsWil7cmV0dXJuIFU8ND8iXHUwYTMwXHUwYTNlXHUwYTI0IjpVPDEwPyJcdTBhMzhcdTBhMzVc''@;'; + put 'put ''dTBhNDdcdTBhMzAiOlU8MTc/Ilx1MGEyNlx1MGE0MVx1MGEyYVx1MGEzOVx1MGEzZlx1MGEzMCI6VTwyMD8iXHUwYTM4XHUwYTNjXHUwYTNlXHUwYTJlIjoiXHUwYTMwXHUwYTNlXHUwYTI0In0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sMTYwNTpmdW5jdGlvbihYZSxKZSxM''@;'; + put 'put ''KXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0ic3R5Y3plXHUwMTQ0X2x1dHlfbWFyemVjX2t3aWVjaWVcdTAxNDRfbWFqX2N6ZXJ3aWVjX2xpcGllY19zaWVycGllXHUwMTQ0X3dyemVzaWVcdTAxNDRfcGFcdTAxN2Fkemllcm5pa19saXN0b3BhZF9ncnVkemllXHUwMTQ0Ii5z''@;'; + put 'put ''cGxpdCgiXyIpLEU9InN0eWN6bmlhX2x1dGVnb19tYXJjYV9rd2lldG5pYV9tYWphX2N6ZXJ3Y2FfbGlwY2Ffc2llcnBuaWFfd3J6ZVx1MDE1Ym5pYV9wYVx1MDE3YWR6aWVybmlrYV9saXN0b3BhZGFfZ3J1ZG5pYSIuc3BsaXQoIl8iKSxNZT1bL15zdHkvaSwvXmx1dC9pLC9ebWFyL2ksL15r''@;'; + put 'put ''d2kvaSwvXm1hai9pLC9eY3plL2ksL15saXAvaSwvXnNpZS9pLC9ed3J6L2ksL15wYVx1MDE3YS9pLC9ebGlzL2ksL15ncnUvaV07ZnVuY3Rpb24gVShpZSl7cmV0dXJuIGllJTEwPDUmJmllJTEwPjEmJn5+KGllLzEwKSUxMCE9MX1mdW5jdGlvbiBRKGllLGxlLFkpe3ZhciBXPWllKyIgIjtz''@;'; + put 'put ''d2l0Y2goWSl7Y2FzZSJzcyI6cmV0dXJuIFcrKFUoaWUpPyJzZWt1bmR5Ijoic2VrdW5kIik7Y2FzZSJtIjpyZXR1cm4gbGU/Im1pbnV0YSI6Im1pbnV0XHUwMTE5IjtjYXNlIm1tIjpyZXR1cm4gVysoVShpZSk/Im1pbnV0eSI6Im1pbnV0Iik7Y2FzZSJoIjpyZXR1cm4gbGU/ImdvZHppbmEi''@;'; + put 'put ''OiJnb2R6aW5cdTAxMTkiO2Nhc2UiaGgiOnJldHVybiBXKyhVKGllKT8iZ29kemlueSI6ImdvZHppbiIpO2Nhc2Uid3ciOnJldHVybiBXKyhVKGllKT8idHlnb2RuaWUiOiJ0eWdvZG5pIik7Y2FzZSJNTSI6cmV0dXJuIFcrKFUoaWUpPyJtaWVzaVx1MDEwNWNlIjoibWllc2lcdTAxMTljeSIp''@;'; + put 'put ''O2Nhc2UieXkiOnJldHVybiBXKyhVKGllKT8ibGF0YSI6ImxhdCIpfX1tZS5kZWZpbmVMb2NhbGUoInBsIix7bW9udGhzOmZ1bmN0aW9uKGllLGxlKXtyZXR1cm4gaWU/L0QgTU1NTS8udGVzdChsZSk/RVtpZS5tb250aCgpXTpCW2llLm1vbnRoKCldOkJ9LG1vbnRoc1Nob3J0OiJzdHlfbHV0''@;'; + put 'put ''X21hcl9rd2lfbWFqX2N6ZV9saXBfc2llX3dyel9wYVx1MDE3YV9saXNfZ3J1Ii5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlOk1lLGxvbmdNb250aHNQYXJzZTpNZSxzaG9ydE1vbnRoc1BhcnNlOk1lLHdlZWtkYXlzOiJuaWVkemllbGFfcG9uaWVkemlhXHUwMTQyZWtfd3RvcmVrX1x1MDE1YnJv''@;'; + put 'put ''ZGFfY3p3YXJ0ZWtfcGlcdTAxMDV0ZWtfc29ib3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Im5kel9wb25fd3RfXHUwMTVicl9jendfcHRfc29iIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJOZF9Qbl9XdF9cdTAxNWFyX0N6X1B0X1NvIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0''@;'; + put 'put ''OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0R6aVx1MDE1YiBvXSBMVCIsbmV4dERheToiW0p1''@;'; + put 'put ''dHJvIG9dIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIltXIG5pZWR6aWVsXHUwMTE5IG9dIExUIjtjYXNlIDI6cmV0dXJuIltXZSB3dG9yZWsgb10gTFQiO2Nhc2UgMzpyZXR1cm4iW1cgXHUwMTVicm9kXHUwMTE5IG9dIExUIjtjYXNl''@;'; + put 'put ''IDY6cmV0dXJuIltXIHNvYm90XHUwMTE5IG9dIExUIjtkZWZhdWx0OnJldHVybiJbV10gZGRkZCBbb10gTFQifX0sbGFzdERheToiW1djem9yYWogb10gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW1cgemVzelx1MDE0Mlx1MDEwNSBu''@;'; + put 'put ''aWVkemllbFx1MDExOSBvXSBMVCI7Y2FzZSAzOnJldHVybiJbVyB6ZXN6XHUwMTQyXHUwMTA1IFx1MDE1YnJvZFx1MDExOSBvXSBMVCI7Y2FzZSA2OnJldHVybiJbVyB6ZXN6XHUwMTQyXHUwMTA1IHNvYm90XHUwMTE5IG9dIExUIjtkZWZhdWx0OnJldHVybiJbVyB6ZXN6XHUwMTQyeV0gZGRk''@;'; + put 'put ''ZCBbb10gTFQifX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiemEgJXMiLHBhc3Q6IiVzIHRlbXUiLHM6ImtpbGthIHNla3VuZCIsc3M6USxtOlEsbW06USxoOlEsaGg6USxkOiIxIGR6aWVcdTAxNDQiLGRkOiIlZCBkbmkiLHc6InR5ZHppZVx1MDE0NCIsd3c6USxNOiJt''@;'; + put 'put ''aWVzaVx1MDEwNWMiLE1NOlEseToicm9rIix5eTpRfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNzM4NDA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7''@;'; + put 'put ''bWUuZGVmaW5lTG9jYWxlKCJwdC1iciIse21vbnRoczoiamFuZWlyb19mZXZlcmVpcm9fbWFyXHhlN29fYWJyaWxfbWFpb19qdW5ob19qdWxob19hZ29zdG9fc2V0ZW1icm9fb3V0dWJyb19ub3ZlbWJyb19kZXplbWJybyIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuX2Zldl9tYXJfYWJy''@;'; + put 'put ''X21haV9qdW5fanVsX2Fnb19zZXRfb3V0X25vdl9kZXoiLnNwbGl0KCJfIiksd2Vla2RheXM6ImRvbWluZ29fc2VndW5kYS1mZWlyYV90ZXJceGU3YS1mZWlyYV9xdWFydGEtZmVpcmFfcXVpbnRhLWZlaXJhX3NleHRhLWZlaXJhX3NceGUxYmFkbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0''@;'; + put 'put ''OiJkb21fc2VnX3Rlcl9xdWFfcXVpX3NleF9zXHhlMWIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRvXzJceGFhXzNceGFhXzRceGFhXzVceGFhXzZceGFhX3NceGUxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhI''@;'; + put 'put ''Om1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIixMTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSBbXHhlMHNdIEhIOm1tIixMTExMOiJkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgW1x4ZTBzXSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSG9q''@;'; + put 'put ''ZSBceGUwc10gTFQiLG5leHREYXk6IltBbWFuaFx4ZTMgXHhlMHNdIExUIixuZXh0V2VlazoiZGRkZCBbXHhlMHNdIExUIixsYXN0RGF5OiJbT250ZW0gXHhlMHNdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5kYXkoKXx8Nj09PXRoaXMuZGF5KCk/IltceGRhbHRp''@;'; + put 'put ''bW9dIGRkZGQgW1x4ZTBzXSBMVCI6IltceGRhbHRpbWFdIGRkZGQgW1x4ZTBzXSBMVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImVtICVzIixwYXN0OiJoXHhlMSAlcyIsczoicG91Y29zIHNlZ3VuZG9zIixzczoiJWQgc2VndW5kb3MiLG06InVtIG1pbnV0byIsbW06''@;'; + put 'put ''IiVkIG1pbnV0b3MiLGg6InVtYSBob3JhIixoaDoiJWQgaG9yYXMiLGQ6InVtIGRpYSIsZGQ6IiVkIGRpYXMiLE06InVtIG1ceGVhcyIsTU06IiVkIG1lc2VzIix5OiJ1bSBhbm8iLHl5OiIlZCBhbm9zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVk''@;'; + put 'put ''XHhiYSIsaW52YWxpZERhdGU6IkRhdGEgaW52XHhlMWxpZGEifSl9KEwoMTU0MzkpKX0sNTQyMjU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJwdCIse21vbnRoczoiamFuZWlyb19mZXZlcmVpcm9fbWFyXHhlN29fYWJyaWxf''@;'; + put 'put ''bWFpb19qdW5ob19qdWxob19hZ29zdG9fc2V0ZW1icm9fb3V0dWJyb19ub3ZlbWJyb19kZXplbWJybyIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuX2Zldl9tYXJfYWJyX21haV9qdW5fanVsX2Fnb19zZXRfb3V0X25vdl9kZXoiLnNwbGl0KCJfIiksd2Vla2RheXM6IkRvbWluZ29fU2Vn''@;'; + put 'put ''dW5kYS1mZWlyYV9UZXJceGU3YS1mZWlyYV9RdWFydGEtZmVpcmFfUXVpbnRhLWZlaXJhX1NleHRhLWZlaXJhX1NceGUxYmFkbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJEb21fU2VnX1Rlcl9RdWFfUXVpX1NleF9TXHhlMWIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkRvXzJceGFh''@;'; + put 'put ''XzNceGFhXzRceGFhXzVceGFhXzZceGFhX1NceGUxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIixMTEw6IkQgW2RlXSBNTU1N''@;'; + put 'put ''IFtkZV0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIb2plIFx4ZTBzXSBMVCIsbmV4dERheToiW0FtYW5oXHhlMyBceGUwc10gTFQiLG5leHRXZWVrOiJkZGRkIFtceGUwc10gTFQiLGxhc3REYXk6IltP''@;'; + put 'put ''bnRlbSBceGUwc10gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmRheSgpfHw2PT09dGhpcy5kYXkoKT8iW1x4ZGFsdGltb10gZGRkZCBbXHhlMHNdIExUIjoiW1x4ZGFsdGltYV0gZGRkZCBbXHhlMHNdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1''@;'; + put 'put ''dHVyZToiZW0gJXMiLHBhc3Q6ImhceGUxICVzIixzOiJzZWd1bmRvcyIsc3M6IiVkIHNlZ3VuZG9zIixtOiJ1bSBtaW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bWEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1bSBkaWEiLGRkOiIlZCBkaWFzIix3OiJ1bWEgc2VtYW5hIix3dzoiJWQgc2Vt''@;'; + put 'put ''YW5hcyIsTToidW0gbVx4ZWFzIixNTToiJWQgbWVzZXMiLHk6InVtIGFubyIseXk6IiVkIGFub3MifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw0NTEyODpmdW5jdGlvbihYZSxK''@;'; + put 'put ''ZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKE1lLFUsUSl7dmFyIGllPSIgIjtyZXR1cm4oTWUlMTAwPj0yMHx8TWU+PTEwMCYmTWUlMTAwPT0wKSYmKGllPSIgZGUgIiksTWUraWUre3NzOiJzZWN1bmRlIixtbToibWludXRlIixoaDoib3JlIixkZDoiemlsZSIs''@;'; + put 'put ''d3c6InNcdTAxMDNwdFx1MDEwM21ceGUybmkiLE1NOiJsdW5pIix5eToiYW5pIn1bUV19bWUuZGVmaW5lTG9jYWxlKCJybyIse21vbnRoczoiaWFudWFyaWVfZmVicnVhcmllX21hcnRpZV9hcHJpbGllX21haV9pdW5pZV9pdWxpZV9hdWd1c3Rfc2VwdGVtYnJpZV9vY3RvbWJyaWVfbm9pZW1i''@;'; + put 'put ''cmllX2RlY2VtYnJpZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiaWFuLl9mZWIuX21hcnQuX2Fwci5fbWFpX2l1bi5faXVsLl9hdWcuX3NlcHQuX29jdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6ImR1bWluaWNcdTAxMDNfbHVuaV9tYXJc''@;'; + put 'put ''dTAyMWJpX21pZXJjdXJpX2pvaV92aW5lcmlfc1x4ZTJtYlx1MDEwM3RcdTAxMDMiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiRHVtX0x1bl9NYXJfTWllX0pvaV9WaW5fU1x4ZTJtIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJEdV9MdV9NYV9NaV9Kb19WaV9TXHhlMiIuc3BsaXQoIl8i''@;'; + put 'put ''KSxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2F6aSBsYV0gTFQiLG5leHRE''@;'; + put 'put ''YXk6IlttXHhlMmluZSBsYV0gTFQiLG5leHRXZWVrOiJkZGRkIFtsYV0gTFQiLGxhc3REYXk6IltpZXJpIGxhXSBMVCIsbGFzdFdlZWs6Iltmb3N0YV0gZGRkZCBbbGFdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJwZXN0ZSAlcyIscGFzdDoiJXMgXHhlZW4gdXJt''@;'; + put 'put ''XHUwMTAzIixzOiJjXHhlMnRldmEgc2VjdW5kZSIsc3M6QixtOiJ1biBtaW51dCIsbW06QixoOiJvIG9yXHUwMTAzIixoaDpCLGQ6Im8gemkiLGRkOkIsdzoibyBzXHUwMTAzcHRcdTAxMDNtXHhlMm5cdTAxMDMiLHd3OkIsTToibyBsdW5cdTAxMDMiLE1NOkIseToidW4gYW4iLHl5OkJ9LHdl''@;'; + put 'put ''ZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDM1MTI3OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEUoUSxaLGllKXtyZXR1cm4ibSI9PT1pZT9aPyJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzAiOiJcdTA0M2Nc''@;'; + put 'put ''dTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NDMiOlErIiAiK2Z1bmN0aW9uIEIoUSxaKXt2YXIgaWU9US5zcGxpdCgiXyIpO3JldHVybiBaJTEwPT0xJiZaJTEwMCE9MTE/aWVbMF06WiUxMD49MiYmWiUxMDw9NCYmKFolMTAwPDEwfHxaJTEwMD49MjApP2llWzFdOmllWzJdfSh7c3M6Wj8i''@;'; + put 'put ''XHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDMwX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0Yl9cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiOiJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0''@;'; + put 'put ''NDNfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDRiX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCIsbW06Wj8iXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDMwX1x1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0Yl9c''@;'; + put 'put ''dTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiOiJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NDNfXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDRiX1x1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0MiIsaGg6Ilx1MDQ0N1x1MDQzMFx1MDQ0MV9cdTA0''@;'; + put 'put ''NDdcdTA0MzBcdTA0NDFcdTA0MzBfXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNlXHUwNDMyIixkZDoiXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzNFx1MDQzZFx1MDQ0Zl9cdTA0MzRcdTA0M2RcdTA0MzVcdTA0MzkiLHd3OiJcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0''@;'; + put 'put ''NGZfXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNiXHUwNDM4X1x1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQ0YyIsTU06Ilx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0Nl9cdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDZcdTA0MzBfXHUwNDNjXHUwNDM1XHUw''@;'; + put 'put ''NDQxXHUwNDRmXHUwNDQ2XHUwNDM1XHUwNDMyIix5eToiXHUwNDMzXHUwNDNlXHUwNDM0X1x1MDQzM1x1MDQzZVx1MDQzNFx1MDQzMF9cdTA0M2JcdTA0MzVcdTA0NDIifVtpZV0sK1EpfXZhciBNZT1bL15cdTA0NGZcdTA0M2RcdTA0MzIvaSwvXlx1MDQ0NFx1MDQzNVx1MDQzMi9pLC9eXHUw''@;'; + put 'put ''NDNjXHUwNDMwXHUwNDQwL2ksL15cdTA0MzBcdTA0M2ZcdTA0NDAvaSwvXlx1MDQzY1x1MDQzMFtcdTA0MzlcdTA0NGZdL2ksL15cdTA0MzhcdTA0NGVcdTA0M2QvaSwvXlx1MDQzOFx1MDQ0ZVx1MDQzYi9pLC9eXHUwNDMwXHUwNDMyXHUwNDMzL2ksL15cdTA0NDFcdTA0MzVcdTA0M2QvaSwv''@;'; + put 'put ''Xlx1MDQzZVx1MDQzYVx1MDQ0Mi9pLC9eXHUwNDNkXHUwNDNlXHUwNDRmL2ksL15cdTA0MzRcdTA0MzVcdTA0M2EvaV07bWUuZGVmaW5lTG9jYWxlKCJydSIse21vbnRoczp7Zm9ybWF0OiJcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGZfXHUwNDQ0XHUwNDM1XHUwNDMyXHUw''@;'; + put 'put ''NDQwXHUwNDMwXHUwNDNiXHUwNDRmX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzMF9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JcdTA0NGZfXHUwNDNjXHUwNDMwXHUwNDRmX1x1MDQzOFx1MDQ0ZVx1MDQzZFx1MDQ0Zl9cdTA0MzhcdTA0NGVcdTA0M2JcdTA0NGZfXHUwNDMw''@;'; + put 'put ''XHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwX1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Zl9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGZfXHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRm''@;'; + put 'put ''X1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MFx1MDQ0ZiIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGNfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDRjX1x1MDQzY1x1MDQzMFx1MDQ0''@;'; + put 'put ''MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JcdTA0NGNfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZFx1MDQ0Y19cdTA0MzhcdTA0NGVcdTA0M2JcdTA0NGNfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyX1x1MDQ0MVx1MDQzNVx1''@;'; + put 'put ''MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Y19cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGNfXHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRjX1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MFx1MDQ0YyIuc3BsaXQo''@;'; + put 'put ''Il8iKX0sbW9udGhzU2hvcnQ6e2Zvcm1hdDoiXHUwNDRmXHUwNDNkXHUwNDMyLl9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDAuX1x1MDQzY1x1MDQzMFx1MDQ0MC5fXHUwNDMwXHUwNDNmXHUwNDQwLl9cdTA0M2NcdTA0MzBcdTA0NGZfXHUwNDM4XHUwNDRlXHUwNDNkXHUwNDRmX1x1MDQzOFx1''@;'; + put 'put ''MDQ0ZVx1MDQzYlx1MDQ0Zl9cdTA0MzBcdTA0MzJcdTA0MzMuX1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mi5fXHUwNDNlXHUwNDNhXHUwNDQyLl9cdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzEuX1x1MDQzNFx1MDQzNVx1MDQzYS4iLnNwbGl0KCJfIiksc3RhbmRhbG9uZToiXHUwNDRmXHUwNDNk''@;'; + put 'put ''XHUwNDMyLl9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDAuX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDAuX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0MzhcdTA0NGVcdTA0M2RcdTA0NGNfXHUwNDM4XHUwNDRlXHUwNDNiXHUwNDRjX1x1MDQzMFx1MDQzMlx1MDQz''@;'; + put 'put ''My5fXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyLl9cdTA0M2VcdTA0M2FcdTA0NDIuX1x1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMS5fXHUwNDM0XHUwNDM1XHUwNDNhLiIuc3BsaXQoIl8iKX0sd2Vla2RheXM6e3N0YW5kYWxvbmU6Ilx1MDQzMlx1MDQzZVx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQz''@;'; + put 'put ''NVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Y1x1MDQzNV9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQz''@;'; + put 'put ''NFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzNfXHUwNDNmXHUwNDRmXHUwNDQyXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDMwX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSxmb3JtYXQ6Ilx1MDQzMlx1''@;'; + put 'put ''MDQzZVx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Y1x1MDQzNV9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNkXHUwNDM4XHUw''@;'; + put 'put ''NDNhX1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0M19cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzNfXHUwNDNmXHUwNDRmXHUwNDQyXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDQzX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQ0MyIu''@;'; + put 'put ''c3BsaXQoIl8iKSxpc0Zvcm1hdDovXFsgP1tcdTA0MTJcdTA0MzJdID8oPzpcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0NDNcdTA0NGV8XHUwNDQxXHUwNDNiXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDQzXHUwNDRlfFx1MDQ0ZFx1MDQ0Mlx1MDQ0Myk/ID9d''@;'; + put 'put ''ID9kZGRkL30sd2Vla2RheXNTaG9ydDoiXHUwNDMyXHUwNDQxX1x1MDQzZlx1MDQzZF9cdTA0MzJcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1MDQ0Ml9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0MzJcdTA0NDFfXHUwNDNmXHUwNDNk''@;'; + put 'put ''X1x1MDQzMlx1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDQyX1x1MDQzZlx1MDQ0Ml9cdTA0NDFcdTA0MzEiLnNwbGl0KCJfIiksbW9udGhzUGFyc2U6TWUsbG9uZ01vbnRoc1BhcnNlOk1lLHNob3J0TW9udGhzUGFyc2U6TWUsbW9udGhzUmVnZXg6L14oXHUwNDRmXHUwNDNkXHUwNDMy''@;'; + put 'put ''XHUwNDMwXHUwNDQwW1x1MDQ0Y1x1MDQ0Zl18XHUwNDRmXHUwNDNkXHUwNDMyXC4/fFx1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQzYltcdTA0NGNcdTA0NGZdfFx1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MD9cLj98XHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDMwP3xcdTA0''@;'; + put 'put ''M2NcdTA0MzBcdTA0NDBcLj98XHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDNiW1x1MDQ0Y1x1MDQ0Zl18XHUwNDMwXHUwNDNmXHUwNDQwXC4/fFx1MDQzY1x1MDQzMFtcdTA0MzlcdTA0NGZdfFx1MDQzOFx1MDQ0ZVx1MDQzZFtcdTA0NGNcdTA0NGZdfFx1MDQzOFx1MDQ0ZVx1MDQzZFwu''@;'; + put 'put ''P3xcdTA0MzhcdTA0NGVcdTA0M2JbXHUwNDRjXHUwNDRmXXxcdTA0MzhcdTA0NGVcdTA0M2JcLj98XHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwP3xcdTA0MzBcdTA0MzJcdTA0MzNcLj98XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQw''@;'; + put 'put ''W1x1MDQ0Y1x1MDQ0Zl18XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyP1wuP3xcdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0M2VcdTA0M2FcdTA0NDJcLj98XHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Y1x1MDQ0Zl18XHUw''@;'; + put 'put ''NDNkXHUwNDNlXHUwNDRmXHUwNDMxP1wuP3xcdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzBcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0MzRcdTA0MzVcdTA0M2FcLj8pL2ksbW9udGhzU2hvcnRSZWdleDovXihcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBbXHUwNDRjXHUwNDRm''@;'; + put 'put ''XXxcdTA0NGZcdTA0M2RcdTA0MzJcLj98XHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiW1x1MDQ0Y1x1MDQ0Zl18XHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwP1wuP3xcdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzA/fFx1MDQzY1x1MDQzMFx1MDQ0MFwuP3xcdTA0MzBc''@;'; + put 'put ''dTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JbXHUwNDRjXHUwNDRmXXxcdTA0MzBcdTA0M2ZcdTA0NDBcLj98XHUwNDNjXHUwNDMwW1x1MDQzOVx1MDQ0Zl18XHUwNDM4XHUwNDRlXHUwNDNkW1x1MDQ0Y1x1MDQ0Zl18XHUwNDM4XHUwNDRlXHUwNDNkXC4/fFx1MDQzOFx1MDQ0ZVx1MDQzYltcdTA0''@;'; + put 'put ''NGNcdTA0NGZdfFx1MDQzOFx1MDQ0ZVx1MDQzYlwuP3xcdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzA/fFx1MDQzMFx1MDQzMlx1MDQzM1wuP3xcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0NDFcdTA0''@;'; + put 'put ''MzVcdTA0M2RcdTA0NDI/XC4/fFx1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQzZVx1MDQzYVx1MDQ0MlwuP3xcdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzE/XC4/''@;'; + put 'put ''fFx1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQzNFx1MDQzNVx1MDQzYVwuPykvaSxtb250aHNTdHJpY3RSZWdleDovXihcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBbXHUwNDRmXHUwNDRjXXxcdTA0NDRcdTA0MzVcdTA0MzJcdTA0''@;'; + put 'put ''NDBcdTA0MzBcdTA0M2JbXHUwNDRmXHUwNDRjXXxcdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzA/fFx1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYltcdTA0NGZcdTA0NGNdfFx1MDQzY1x1MDQzMFtcdTA0NGZcdTA0MzldfFx1MDQzOFx1MDQ0ZVx1MDQzZFtcdTA0NGZcdTA0NGNd''@;'; + put 'put ''fFx1MDQzOFx1MDQ0ZVx1MDQzYltcdTA0NGZcdTA0NGNdfFx1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMD98XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Zlx1MDQ0Y118XHUwNDNlXHUwNDNhXHUwNDQyXHUwNDRmXHUwNDMx''@;'; + put 'put ''XHUwNDQwW1x1MDQ0Zlx1MDQ0Y118XHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Zlx1MDQ0Y118XHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwW1x1MDQ0Zlx1MDQ0Y10pL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihcdTA0NGZcdTA0M2RcdTA0MzJc''@;'; + put 'put ''LnxcdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDA/XC58XHUwNDNjXHUwNDMwXHUwNDQwW1x1MDQ0Mi5dfFx1MDQzMFx1MDQzZlx1MDQ0MFwufFx1MDQzY1x1MDQzMFtcdTA0NGZcdTA0MzldfFx1MDQzOFx1MDQ0ZVx1MDQzZFtcdTA0NGNcdTA0NGYuXXxcdTA0MzhcdTA0NGVcdTA0M2JbXHUwNDRj''@;'; + put 'put ''XHUwNDRmLl18XHUwNDMwXHUwNDMyXHUwNDMzXC58XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyP1wufFx1MDQzZVx1MDQzYVx1MDQ0MlwufFx1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMT9cLnxcdTA0MzRcdTA0MzVcdTA0M2FcLikvaSxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDpt''@;'; + put 'put ''bTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIFx1MDQzMy4iLExMTDoiRCBNTU1NIFlZWVkgXHUwNDMzLiwgSDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgXHUwNDMzLiwgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDIxXHUwNDM1XHUwNDMzXHUwNDNlXHUw''@;'; + put 'put ''NDM0XHUwNDNkXHUwNDRmLCBcdTA0MzJdIExUIixuZXh0RGF5OiJbXHUwNDE3XHUwNDMwXHUwNDMyXHUwNDQyXHUwNDQwXHUwNDMwLCBcdTA0MzJdIExUIixsYXN0RGF5OiJbXHUwNDEyXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMwLCBcdTA0MzJdIExUIixuZXh0V2VlazpmdW5jdGlvbihRKXtp''@;'; + put 'put ''ZihRLndlZWsoKT09PXRoaXMud2VlaygpKXJldHVybiAyPT09dGhpcy5kYXkoKT8iW1x1MDQxMlx1MDQzZV0gZGRkZCwgW1x1MDQzMl0gTFQiOiJbXHUwNDEyXSBkZGRkLCBbXHUwNDMyXSBMVCI7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW1x1MDQxMiBcdTA0NDFcdTA0M2Jc''@;'; + put 'put ''dTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVcdTA0NDlcdTA0MzVcdTA0MzVdIGRkZGQsIFtcdTA0MzJdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpyZXR1cm4iW1x1MDQxMiBcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVcdTA0NDlcdTA0MzhcdTA0MzldIGRkZGQsIFtcdTA0''@;'; + put 'put ''MzJdIExUIjtjYXNlIDM6Y2FzZSA1OmNhc2UgNjpyZXR1cm4iW1x1MDQxMiBcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVcdTA0NDlcdTA0NDNcdTA0NGVdIGRkZGQsIFtcdTA0MzJdIExUIn19LGxhc3RXZWVrOmZ1bmN0aW9uKFEpe2lmKFEud2VlaygpPT09dGhpcy53ZWVr''@;'; + put 'put ''KCkpcmV0dXJuIDI9PT10aGlzLmRheSgpPyJbXHUwNDEyXHUwNDNlXSBkZGRkLCBbXHUwNDMyXSBMVCI6IltcdTA0MTJdIGRkZGQsIFtcdTA0MzJdIExUIjtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbXHUwNDEyIFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQz''@;'; + put 'put ''ZVx1MDQzNV0gZGRkZCwgW1x1MDQzMl0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OnJldHVybiJbXHUwNDEyIFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQ0Ylx1MDQzOV0gZGRkZCwgW1x1MDQzMl0gTFQiO2Nhc2UgMzpjYXNlIDU6Y2FzZSA2OnJldHVybiJbXHUwNDEyIFx1''@;'; + put 'put ''MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQ0M1x1MDQ0ZV0gZGRkZCwgW1x1MDQzMl0gTFQifX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3ICVzIixwYXN0OiIlcyBcdTA0M2RcdTA0MzBcdTA0MzdcdTA0''@;'; + put 'put ''MzBcdTA0MzQiLHM6Ilx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZSBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLHNzOkUsbTpFLG1tOkUsaDoiXHUwNDQ3XHUwNDMwXHUwNDQxIixoaDpFLGQ6Ilx1MDQzNFx1MDQzNVx1''@;'; + put 'put ''MDQzZFx1MDQ0YyIsZGQ6RSx3OiJcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0NGYiLHd3OkUsTToiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQ2IixNTTpFLHk6Ilx1MDQzM1x1MDQzZVx1MDQzNCIseXk6RX0sbWVyaWRpZW1QYXJzZTovXHUwNDNkXHUwNDNlXHUwNDQ3''@;'; + put 'put ''XHUwNDM4fFx1MDQ0M1x1MDQ0Mlx1MDQ0MFx1MDQzMHxcdTA0MzRcdTA0M2RcdTA0NGZ8XHUwNDMyXHUwNDM1XHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMwL2ksaXNQTTpmdW5jdGlvbihRKXtyZXR1cm4vXihcdTA0MzRcdTA0M2RcdTA0NGZ8XHUwNDMyXHUwNDM1XHUwNDQ3XHUwNDM1XHUwNDQw''@;'; + put 'put ''XHUwNDMwKSQvLnRlc3QoUSl9LG1lcmlkaWVtOmZ1bmN0aW9uKFEsWixpZSl7cmV0dXJuIFE8ND8iXHUwNDNkXHUwNDNlXHUwNDQ3XHUwNDM4IjpRPDEyPyJcdTA0NDNcdTA0NDJcdTA0NDBcdTA0MzAiOlE8MTc/Ilx1MDQzNFx1MDQzZFx1MDQ0ZiI6Ilx1MDQzMlx1MDQzNVx1MDQ0N1x1MDQz''@;'; + put 'put ''NVx1MDQ0MFx1MDQzMCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQzOXxcdTA0MzNcdTA0M2V8XHUwNDRmKS8sb3JkaW5hbDpmdW5jdGlvbihRLFope3N3aXRjaChaKXtjYXNlIk0iOmNhc2UiZCI6Y2FzZSJEREQiOnJldHVybiBRKyItXHUwNDM5IjtjYXNlIkQiOnJl''@;'; + put 'put ''dHVybiBRKyItXHUwNDMzXHUwNDNlIjtjYXNlInciOmNhc2UiVyI6cmV0dXJuIFErIi1cdTA0NGYiO2RlZmF1bHQ6cmV0dXJuIFF9fSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwzMjUyNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIg''@;'; + put 'put ''Qj1bIlx1MDYyY1x1MDY0Nlx1MDY0OFx1MDYzMVx1MDY0YSIsIlx1MDY0MVx1MDY0YVx1MDYyOFx1MDYzMVx1MDY0OFx1MDYzMVx1MDY0YSIsIlx1MDY0NVx1MDYyN1x1MDYzMVx1MDY4NiIsIlx1MDYyN1x1MDY3ZVx1MDYzMVx1MDY0YVx1MDY0NCIsIlx1MDY0NVx1MDYyNlx1MDY0YSIsIlx1''@;'; + put 'put ''MDYyY1x1MDY0OFx1MDY0NiIsIlx1MDYyY1x1MDY0OFx1MDY0NFx1MDYyN1x1MDYyMVx1MDY1MCIsIlx1MDYyMlx1MDZhZlx1MDYzM1x1MDY3ZCIsIlx1MDYzM1x1MDY0YVx1MDY3ZVx1MDY3ZFx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyMlx1MDZhYVx1MDY3ZFx1MDY0OFx1MDYyOFx1MDYz''@;'; + put 'put ''MSIsIlx1MDY0Nlx1MDY0OFx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDY4YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSJdLEU9WyJcdTA2MjJcdTA2ODZcdTA2MzEiLCJcdTA2MzNcdTA2NDhcdTA2NDVcdTA2MzEiLCJcdTA2MjdcdTA2YjFcdTA2MjdcdTA2MzFcdTA2NDgiLCJcdTA2MjdcdTA2''@;'; + put 'put ''MzFcdTA2MjhcdTA2MzkiLCJcdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzMiLCJcdTA2MmNcdTA2NDVcdTA2MzkiLCJcdTA2ODdcdTA2NDZcdTA2ODdcdTA2MzEiXTttZS5kZWZpbmVMb2NhbGUoInNkIix7bW9udGhzOkIsbW9udGhzU2hvcnQ6Qix3ZWVrZGF5czpFLHdlZWtkYXlzU2hvcnQ6RSx3''@;'; + put 'put ''ZWVrZGF5c01pbjpFLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZFx1MDYwYyBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1''@;'; + put 'put ''MDYzNVx1MDYyOFx1MDYyZHxcdTA2MzRcdTA2MjdcdTA2NDUvLGlzUE06ZnVuY3Rpb24oVSl7cmV0dXJuIlx1MDYzNFx1MDYyN1x1MDY0NSI9PT1VfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsWil7cmV0dXJuIFU8MTI/Ilx1MDYzNVx1MDYyOFx1MDYyZCI6Ilx1MDYzNFx1MDYyN1x1MDY0NSJ9''@;'; + put 'put ''LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI3XHUwNjg0XSBMVCIsbmV4dERheToiW1x1MDYzM1x1MDY4MFx1MDYyN1x1MDZiYlx1MDY0YV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA2MjdcdTA2YjNcdTA2NGFcdTA2NDYgXHUwNjQ3XHUwNjQxXHUwNjJhXHUwNjRhIFx1MDYyYVx1MDY0YV0g''@;'; + put 'put ''TFQiLGxhc3REYXk6IltcdTA2YWFcdTA2MjdcdTA2NDRcdTA2NDdcdTA2NDddIExUIixsYXN0V2VlazoiW1x1MDZhZlx1MDYzMlx1MDYzMVx1MDY0YVx1MDY0NCBcdTA2NDdcdTA2NDFcdTA2MmFcdTA2NGFdIGRkZGQgW1x1MDYyYVx1MDY0YV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVU''@;'; + put 'put ''aW1lOntmdXR1cmU6IiVzIFx1MDY3ZVx1MDY0OFx1MDYyMSIscGFzdDoiJXMgXHUwNjI3XHUwNmIzIixzOiJcdTA2ODZcdTA2NDZcdTA2MmYgXHUwNjMzXHUwNjRhXHUwNmFhXHUwNjQ2XHUwNjhhIixzczoiJWQgXHUwNjMzXHUwNjRhXHUwNmFhXHUwNjQ2XHUwNjhhIixtOiJcdTA2NDdcdTA2''@;'; + put 'put ''YWEgXHUwNjQ1XHUwNjQ2XHUwNjdkIixtbToiJWQgXHUwNjQ1XHUwNjQ2XHUwNjdkIixoOiJcdTA2NDdcdTA2YWEgXHUwNmFhXHUwNjQ0XHUwNjI3XHUwNmFhIixoaDoiJWQgXHUwNmFhXHUwNjQ0XHUwNjI3XHUwNmFhIixkOiJcdTA2NDdcdTA2YWEgXHUwNjhmXHUwNjRhXHUwNjQ2XHUwNjQ3''@;'; + put 'put ''XHUwNjQ2IixkZDoiJWQgXHUwNjhmXHUwNjRhXHUwNjQ2XHUwNjQ3XHUwNjQ2IixNOiJcdTA2NDdcdTA2YWEgXHUwNjQ1XHUwNjQ3XHUwNjRhXHUwNjQ2XHUwNjQ4IixNTToiJWQgXHUwNjQ1XHUwNjQ3XHUwNjRhXHUwNjQ2XHUwNjI3Iix5OiJcdTA2NDdcdTA2YWEgXHUwNjMzXHUwNjI3XHUw''@;'; + put 'put ''NjQ0Iix5eToiJWQgXHUwNjMzXHUwNjI3XHUwNjQ0In0scHJlcGFyc2U6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0o''@;'; + put 'put ''TCgxNTQzOSkpfSw1OTg5MzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInNlIix7bW9udGhzOiJvXHUwMTExXHUwMTExYWphZ2VtXHhlMW5udV9ndW92dmFtXHhlMW5udV9uanVrXHUwMTBkYW1ceGUxbm51X2N1b1x1MDE0Ym9t''@;'; + put 'put ''XHhlMW5udV9taWVzc2VtXHhlMW5udV9nZWFzc2VtXHhlMW5udV9zdW9pZG5lbVx4ZTFubnVfYm9yZ2VtXHhlMW5udV9cdTAxMGRha1x1MDEwZGFtXHhlMW5udV9nb2xnZ290bVx4ZTFubnVfc2tceGUxYm1hbVx4ZTFubnVfanVvdmxhbVx4ZTFubnUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6''@;'; + put 'put ''Im9cdTAxMTFcdTAxMTFqX2d1b3Zfbmp1a19jdW9fbWllc19nZWFzX3N1b2lfYm9yZ19cdTAxMGRha1x1MDEwZF9nb2xnX3NrXHhlMWJfanVvdiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoic290bmFiZWFpdmlfdnVvc3NceGUxcmdhX21hXHUwMTRiXHUwMTRiZWJceGUxcmdhX2dhc2thdmFoa2t1''@;'; + put 'put ''X2R1b3Jhc3RhdF9iZWFyamFkYXRfbFx4ZTF2dmFyZGF0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InNvdG5fdnVvc19tYVx1MDE0Yl9nYXNrX2R1b3JfYmVhcl9sXHhlMXYiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InNfdl9tX2dfZF9iX0wiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3Jt''@;'; + put 'put ''YXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6Ik1NTU0gRC4gW2IuXSBZWVlZIixMTEw6Ik1NTU0gRC4gW2IuXSBZWVlZIFt0aS5dIEhIOm1tIixMTExMOiJkZGRkLCBNTU1NIEQuIFtiLl0gWVlZWSBbdGkuXSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5''@;'; + put 'put ''OiJbb3RuZSB0aV0gTFQiLG5leHREYXk6IltpaHR0aW4gdGldIExUIixuZXh0V2VlazoiZGRkZCBbdGldIExUIixsYXN0RGF5OiJbaWt0ZSB0aV0gTFQiLGxhc3RXZWVrOiJbb3ZkZGl0XSBkZGRkIFt0aV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIGdlYVx1''@;'; + put 'put ''MDE3ZWVzIixwYXN0OiJtYVx1MDE0Yml0ICVzIixzOiJtb2FkZGUgc2VrdW5kZGF0IixzczoiJWQgc2VrdW5kZGF0IixtOiJva3RhIG1pbnVodGEiLG1tOiIlZCBtaW51aHRhdCIsaDoib2t0YSBkaWltbXUiLGhoOiIlZCBkaWltbXV0IixkOiJva3RhIGJlYWl2aSIsZGQ6IiVkIGJlYWl2dml0''@;'; + put 'put ''IixNOiJva3RhIG1ceGUxbm51IixNTToiJWQgbVx4ZTFudXQiLHk6Im9rdGEgamFoa2kiLHl5OiIlZCBqYWdpdCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwzMzEyMzpmdW5jdGlvbihY''@;'; + put 'put ''ZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInNpIix7bW9udGhzOiJcdTBkYTJcdTBkYjFcdTBkYzBcdTBkY2ZcdTBkYmJcdTBkZDJfXHUwZGI0XHUwZGQ5XHUwZGI2XHUwZGJiXHUwZGMwXHUwZGNmXHUwZGJiXHUwZGQyX1x1MGRiOFx1MGRjZlx1''@;'; + put 'put ''MGRiYlx1MGRjYVx1MGRhZFx1MGRkNF9cdTBkODVcdTBkYjRcdTBkY2FcdTIwMGRcdTBkYmJcdTBkZGFcdTBkYmRcdTBkY2FfXHUwZGI4XHUwZGQwXHUwZGJhXHUwZGQyX1x1MGRhMlx1MGRkNlx1MGRiMVx1MGRkMl9cdTBkYTJcdTBkZDZcdTBkYmRcdTBkZDJfXHUwZDg1XHUwZDljXHUwZGRk''@;'; + put 'put ''XHUwZGMzXHUwZGNhXHUwZGFkXHUwZGQ0X1x1MGRjM1x1MGRkMFx1MGRiNFx1MGRjYVx1MGRhZFx1MGRkMFx1MGRiOFx1MGRjYVx1MGRiNlx1MGRiYlx1MGRjYV9cdTBkOTRcdTBkOWFcdTBkY2FcdTBkYWRcdTBkZGRcdTBkYjZcdTBkYmJcdTBkY2FfXHUwZGIxXHUwZGRjXHUwZGMwXHUwZGQw''@;'; + put 'put ''XHUwZGI4XHUwZGNhXHUwZGI2XHUwZGJiXHUwZGNhX1x1MGRhZlx1MGRkOVx1MGRjM1x1MGRkMFx1MGRiOFx1MGRjYVx1MGRiNlx1MGRiYlx1MGRjYSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwZGEyXHUwZGIxX1x1MGRiNFx1MGRkOVx1MGRiNl9cdTBkYjhcdTBkY2ZcdTBkYmJcdTBk''@;'; + put 'put ''Y2FfXHUwZDg1XHUwZGI0XHUwZGNhX1x1MGRiOFx1MGRkMFx1MGRiYVx1MGRkMl9cdTBkYTJcdTBkZDZcdTBkYjFcdTBkZDJfXHUwZGEyXHUwZGQ2XHUwZGJkXHUwZGQyX1x1MGQ4NVx1MGQ5Y1x1MGRkZF9cdTBkYzNcdTBkZDBcdTBkYjRcdTBkY2FfXHUwZDk0XHUwZDlhXHUwZGNhX1x1MGRi''@;'; + put 'put ''MVx1MGRkY1x1MGRjMFx1MGRkMF9cdTBkYWZcdTBkZDlcdTBkYzNcdTBkZDAiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MGQ4OVx1MGRiYlx1MGRkMlx1MGRhZlx1MGRjZl9cdTBkYzNcdTBkYjNcdTBkZDRcdTBkYWZcdTBkY2ZfXHUwZDg1XHUwZDlmXHUwZGM0XHUwZGJiXHUwZGQ0XHUwZGMw''@;'; + put 'put ''XHUwZGNmXHUwZGFmXHUwZGNmX1x1MGRiNlx1MGRhZlx1MGRjZlx1MGRhZlx1MGRjZl9cdTBkYjZcdTBkY2FcdTIwMGRcdTBkYmJcdTBkYzRcdTBkYzNcdTBkY2FcdTBkYjRcdTBkYWRcdTBkZDJcdTBkYjFcdTBkY2FcdTBkYWZcdTBkY2ZfXHUwZGMzXHUwZGQyXHUwZDlhXHUwZGQ0XHUwZGJi''@;'; + put 'put ''XHUwZGNmXHUwZGFmXHUwZGNmX1x1MGRjM1x1MGRkOVx1MGRiMVx1MGRjM1x1MGRkNFx1MGRiYlx1MGRjZlx1MGRhZlx1MGRjZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBkODlcdTBkYmJcdTBkZDJfXHUwZGMzXHUwZGIzXHUwZGQ0X1x1MGQ4NVx1MGQ5Zl9cdTBkYjZcdTBkYWZc''@;'; + put 'put ''dTBkY2ZfXHUwZGI2XHUwZGNhXHUyMDBkXHUwZGJiXHUwZGM0X1x1MGRjM1x1MGRkMlx1MGQ5YVx1MGRkNF9cdTBkYzNcdTBkZDlcdTBkYjEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGQ4OV9cdTBkYzNfXHUwZDg1X1x1MGRiNl9cdTBkYjZcdTBkY2FcdTIwMGRcdTBkYmJfXHUwZGMz''@;'; + put 'put ''XHUwZGQyX1x1MGRjM1x1MGRkOSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJhIGg6bW0iLExUUzoiYSBoOm1tOnNzIixMOiJZWVlZL01NL0REIixMTDoiWVlZWSBNTU1NIEQiLExMTDoiWVlZWSBNTU1NIEQsIGEgaDptbSIsTExMTDoiWVlZ''@;'; + put 'put ''WSBNTU1NIEQgW1x1MGRjMFx1MGRkMFx1MGRiMVx1MGRkMl0gZGRkZCwgYSBoOm1tOnNzIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBkODVcdTBkYWZdIExUW1x1MGRhN10iLG5leHREYXk6IltcdTBkYzRcdTBkZDlcdTBkYTddIExUW1x1MGRhN10iLG5leHRXZWVrOiJkZGRkIExUW1x1MGRh''@;'; + put 'put ''N10iLGxhc3REYXk6IltcdTBkOGFcdTBkYmFcdTBkZGFdIExUW1x1MGRhN10iLGxhc3RXZWVrOiJbXHUwZGI0XHUwZGMzXHUwZGQ0XHUwZDljXHUwZGQyXHUwZGJhXSBkZGRkIExUW1x1MGRhN10iLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzXHUwZDlhXHUwZGQyXHUw''@;'; + put 'put ''ZGIxXHUwZGNhIixwYXN0OiIlc1x1MGQ5YVx1MGRhNyBcdTBkYjRcdTBkZDlcdTBkYmIiLHM6Ilx1MGRhZFx1MGRhZFx1MGRjYVx1MGRiNFx1MGRiYiBcdTBkOWFcdTBkZDJcdTBkYzRcdTBkZDJcdTBkYjRcdTBkYmEiLHNzOiJcdTBkYWRcdTBkYWRcdTBkY2FcdTBkYjRcdTBkYmIgJWQiLG06''@;'; + put 'put ''Ilx1MGRiOFx1MGRkMlx1MGRiMVx1MGRkMlx1MGRhZFx1MGRjYVx1MGRhZFx1MGRkNFx1MGRjMCIsbW06Ilx1MGRiOFx1MGRkMlx1MGRiMVx1MGRkMlx1MGRhZFx1MGRjYVx1MGRhZFx1MGRkNCAlZCIsaDoiXHUwZGI0XHUwZGQwXHUwZGJhIixoaDoiXHUwZGI0XHUwZGQwXHUwZGJhICVkIixk''@;'; + put 'put ''OiJcdTBkYWZcdTBkZDJcdTBkYjFcdTBkYmEiLGRkOiJcdTBkYWZcdTBkZDJcdTBkYjEgJWQiLE06Ilx1MGRiOFx1MGRjZlx1MGRjM1x1MGRiYSIsTU06Ilx1MGRiOFx1MGRjZlx1MGRjMyAlZCIseToiXHUwZGMwXHUwZGMzXHUwZGJiIix5eToiXHUwZGMwXHUwZGMzXHUwZGJiICVkIn0sZGF5''@;'; + put 'put ''T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfSBcdTBkYzBcdTBkZDBcdTBkYjFcdTBkZDIvLG9yZGluYWw6ZnVuY3Rpb24oRSl7cmV0dXJuIEUrIiBcdTBkYzBcdTBkZDBcdTBkYjFcdTBkZDIifSxtZXJpZGllbVBhcnNlOi9cdTBkYjRcdTBkZDlcdTBkYmIgXHUwZGMwXHUwZGJiXHUwZGQ0''@;'; + put 'put ''fFx1MGRiNFx1MGRjM1x1MGRjYSBcdTBkYzBcdTBkYmJcdTBkZDR8XHUwZGI0XHUwZGQ5Llx1MGRjMHxcdTBkYjQuXHUwZGMwLi8saXNQTTpmdW5jdGlvbihFKXtyZXR1cm4iXHUwZGI0Llx1MGRjMC4iPT09RXx8Ilx1MGRiNFx1MGRjM1x1MGRjYSBcdTBkYzBcdTBkYmJcdTBkZDQiPT09RX0s''@;'; + put 'put ''bWVyaWRpZW06ZnVuY3Rpb24oRSxNZSxVKXtyZXR1cm4gRT4xMT9VPyJcdTBkYjQuXHUwZGMwLiI6Ilx1MGRiNFx1MGRjM1x1MGRjYSBcdTBkYzBcdTBkYmJcdTBkZDQiOlU/Ilx1MGRiNFx1MGRkOS5cdTBkYzAuIjoiXHUwZGI0XHUwZGQ5XHUwZGJiIFx1MGRjMFx1MGRiYlx1MGRkNCJ9fSl9''@;'; + put 'put ''KEwoMTU0MzkpKX0sNTk2MzU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ImphbnVceGUxcl9mZWJydVx4ZTFyX21hcmVjX2Fwclx4ZWRsX21ceGUxal9qXHhmYW5falx4ZmFsX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0XHhmM2Jlcl9ub3ZlbWJlcl9k''@;'; + put 'put ''ZWNlbWJlciIuc3BsaXQoIl8iKSxFPSJqYW5fZmViX21hcl9hcHJfbVx4ZTFqX2pceGZhbl9qXHhmYWxfYXVnX3NlcF9va3Rfbm92X2RlYyIuc3BsaXQoIl8iKTtmdW5jdGlvbiBNZShaKXtyZXR1cm4gWj4xJiZaPDV9ZnVuY3Rpb24gVShaLGllLGxlLFkpe3ZhciBXPVorIiAiO3N3aXRjaChs''@;'; + put 'put ''ZSl7Y2FzZSJzIjpyZXR1cm4gaWV8fFk/InBceGUxciBzZWtceGZhbmQiOiJwXHhlMXIgc2VrdW5kYW1pIjtjYXNlInNzIjpyZXR1cm4gaWV8fFk/VysoTWUoWik/InNla3VuZHkiOiJzZWtceGZhbmQiKTpXKyJzZWt1bmRhbWkiO2Nhc2UibSI6cmV0dXJuIGllPyJtaW5ceGZhdGEiOlk/Im1p''@;'; + put 'put ''blx4ZmF0dSI6Im1pblx4ZmF0b3UiO2Nhc2UibW0iOnJldHVybiBpZXx8WT9XKyhNZShaKT8ibWluXHhmYXR5IjoibWluXHhmYXQiKTpXKyJtaW5ceGZhdGFtaSI7Y2FzZSJoIjpyZXR1cm4gaWU/ImhvZGluYSI6WT8iaG9kaW51IjoiaG9kaW5vdSI7Y2FzZSJoaCI6cmV0dXJuIGllfHxZP1cr''@;'; + put 'put ''KE1lKFopPyJob2RpbnkiOiJob2RceGVkbiIpOlcrImhvZGluYW1pIjtjYXNlImQiOnJldHVybiBpZXx8WT8iZGVcdTAxNDgiOiJkXHUwMTQ4b20iO2Nhc2UiZGQiOnJldHVybiBpZXx8WT9XKyhNZShaKT8iZG5pIjoiZG5ceGVkIik6VysiZFx1MDE0OGFtaSI7Y2FzZSJNIjpyZXR1cm4gaWV8''@;'; + put 'put ''fFk/Im1lc2lhYyI6Im1lc2lhY29tIjtjYXNlIk1NIjpyZXR1cm4gaWV8fFk/VysoTWUoWik/Im1lc2lhY2UiOiJtZXNpYWNvdiIpOlcrIm1lc2lhY21pIjtjYXNlInkiOnJldHVybiBpZXx8WT8icm9rIjoicm9rb20iO2Nhc2UieXkiOnJldHVybiBpZXx8WT9XKyhNZShaKT8icm9reSI6InJv''@;'; + put 'put ''a292Iik6Vysicm9rbWkifX1tZS5kZWZpbmVMb2NhbGUoInNrIix7bW9udGhzOkIsbW9udGhzU2hvcnQ6RSx3ZWVrZGF5czoibmVkZVx1MDEzZWFfcG9uZGVsb2tfdXRvcm9rX3N0cmVkYV9cdTAxNjF0dnJ0b2tfcGlhdG9rX3NvYm90YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJuZV9w''@;'; + put 'put ''b191dF9zdF9cdTAxNjF0X3BpX3NvIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJuZV9wb191dF9zdF9cdTAxNjF0X3BpX3NvIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQu''@;'; + put 'put ''IE1NTU0gWVlZWSBIOm1tIixMTExMOiJkZGRkIEQuIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltkbmVzIG9dIExUIixuZXh0RGF5OiJbemFqdHJhIG9dIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt2IG5lZGVc''@;'; + put 'put ''dTAxM2V1IG9dIExUIjtjYXNlIDE6Y2FzZSAyOnJldHVybiJbdl0gZGRkZCBbb10gTFQiO2Nhc2UgMzpyZXR1cm4iW3Ygc3RyZWR1IG9dIExUIjtjYXNlIDQ6cmV0dXJuIlt2byBcdTAxNjF0dnJ0b2sgb10gTFQiO2Nhc2UgNTpyZXR1cm4iW3YgcGlhdG9rIG9dIExUIjtjYXNlIDY6cmV0dXJu''@;'; + put 'put ''Ilt2IHNvYm90dSBvXSBMVCJ9fSxsYXN0RGF5OiJbdlx1MDEwZGVyYSBvXSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbbWludWxceGZhIG5lZGVcdTAxM2V1IG9dIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJu''@;'; + put 'put ''IlttaW51bFx4ZmRdIGRkZGQgW29dIExUIjtjYXNlIDM6cmV0dXJuIlttaW51bFx4ZmEgc3RyZWR1IG9dIExUIjtjYXNlIDY6cmV0dXJuIlttaW51bFx4ZmEgc29ib3R1IG9dIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InphICVzIixwYXN0OiJwcmVkICVzIixz''@;'; + put 'put ''OlUsc3M6VSxtOlUsbW06VSxoOlUsaGg6VSxkOlUsZGQ6VSxNOlUsTU06VSx5OlUseXk6VX0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDc4MTA2OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5j''@;'; + put 'put ''dGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoTWUsVSxRLFope3ZhciBpZT1NZSsiICI7c3dpdGNoKFEpe2Nhc2UicyI6cmV0dXJuIFV8fFo/Im5la2FqIHNla3VuZCI6Im5la2FqIHNla3VuZGFtaSI7Y2FzZSJzcyI6cmV0dXJuIGllKygxPT09TWU/VT8ic2VrdW5kbyI6InNla3Vu''@;'; + put 'put ''ZGkiOjI9PT1NZT9VfHxaPyJzZWt1bmRpIjoic2VrdW5kYWgiOk1lPDU/VXx8Wj8ic2VrdW5kZSI6InNla3VuZGFoIjoic2VrdW5kIik7Y2FzZSJtIjpyZXR1cm4gVT8iZW5hIG1pbnV0YSI6ImVubyBtaW51dG8iO2Nhc2UibW0iOnJldHVybiBpZSsoMT09PU1lP1U/Im1pbnV0YSI6Im1pbnV0''@;'; + put 'put ''byI6Mj09PU1lP1V8fFo/Im1pbnV0aSI6Im1pbnV0YW1hIjpNZTw1P1V8fFo/Im1pbnV0ZSI6Im1pbnV0YW1pIjpVfHxaPyJtaW51dCI6Im1pbnV0YW1pIik7Y2FzZSJoIjpyZXR1cm4gVT8iZW5hIHVyYSI6ImVubyB1cm8iO2Nhc2UiaGgiOnJldHVybiBpZSsoMT09PU1lP1U/InVyYSI6InVy''@;'; + put 'put ''byI6Mj09PU1lP1V8fFo/InVyaSI6InVyYW1hIjpNZTw1P1V8fFo/InVyZSI6InVyYW1pIjpVfHxaPyJ1ciI6InVyYW1pIik7Y2FzZSJkIjpyZXR1cm4gVXx8Wj8iZW4gZGFuIjoiZW5pbSBkbmVtIjtjYXNlImRkIjpyZXR1cm4gaWUrKDE9PT1NZT9VfHxaPyJkYW4iOiJkbmVtIjoyPT09TWU/''@;'; + put 'put ''VXx8Wj8iZG5pIjoiZG5ldm9tYSI6VXx8Wj8iZG5pIjoiZG5ldmkiKTtjYXNlIk0iOnJldHVybiBVfHxaPyJlbiBtZXNlYyI6ImVuaW0gbWVzZWNlbSI7Y2FzZSJNTSI6cmV0dXJuIGllKygxPT09TWU/VXx8Wj8ibWVzZWMiOiJtZXNlY2VtIjoyPT09TWU/VXx8Wj8ibWVzZWNhIjoibWVzZWNl''@;'; + put 'put ''bWEiOk1lPDU/VXx8Wj8ibWVzZWNlIjoibWVzZWNpIjpVfHxaPyJtZXNlY2V2IjoibWVzZWNpIik7Y2FzZSJ5IjpyZXR1cm4gVXx8Wj8iZW5vIGxldG8iOiJlbmltIGxldG9tIjtjYXNlInl5IjpyZXR1cm4gaWUrKDE9PT1NZT9VfHxaPyJsZXRvIjoibGV0b20iOjI9PT1NZT9VfHxaPyJsZXRp''@;'; + put 'put ''IjoibGV0b21hIjpNZTw1P1V8fFo/ImxldGEiOiJsZXRpIjpVfHxaPyJsZXQiOiJsZXRpIil9fW1lLmRlZmluZUxvY2FsZSgic2wiLHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcmVjX2FwcmlsX21hal9qdW5pal9qdWxpal9hdmd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVj''@;'; + put 'put ''ZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbi5fZmViLl9tYXIuX2Fwci5fbWFqLl9qdW4uX2p1bC5fYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Im5lZGVsamFfcG9uZWRlbGpla190b3Jla19zcmVkYV9c''@;'; + put 'put ''dTAxMGRldHJ0ZWtfcGV0ZWtfc29ib3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Im5lZC5fcG9uLl90b3IuX3NyZS5fXHUwMTBkZXQuX3BldC5fc29iLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fdG9fc3JfXHUwMTBkZV9wZV9zbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Bh''@;'; + put 'put ''cnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELiBNTS4gWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2Rh''@;'; + put 'put ''bmVzIG9iXSBMVCIsbmV4dERheToiW2p1dHJpIG9iXSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbdl0gW25lZGVsam9dIFtvYl0gTFQiO2Nhc2UgMzpyZXR1cm4iW3ZdIFtzcmVkb10gW29iXSBMVCI7Y2FzZSA2OnJldHVybiJbdl0g''@;'; + put 'put ''W3NvYm90b10gW29iXSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbdl0gZGRkZCBbb2JdIExUIn19LGxhc3REYXk6Ilt2XHUwMTBkZXJhaiBvYl0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW3ByZWpcdTAx''@;'; + put 'put ''NjFuam9dIFtuZWRlbGpvXSBbb2JdIExUIjtjYXNlIDM6cmV0dXJuIltwcmVqXHUwMTYxbmpvXSBbc3JlZG9dIFtvYl0gTFQiO2Nhc2UgNjpyZXR1cm4iW3ByZWpcdTAxNjFuam9dIFtzb2JvdG9dIFtvYl0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW3ByZWpcdTAx''@;'; + put 'put ''NjFuamldIGRkZGQgW29iXSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTAxMGRleiAlcyIscGFzdDoicHJlZCAlcyIsczpCLHNzOkIsbTpCLG1tOkIsaDpCLGhoOkIsZDpCLGRkOkIsTTpCLE1NOkIseTpCLHl5OkJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6''@;'; + put 'put ''L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw4ODc5OTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInNxIix7bW9udGhzOiJKYW5hcl9TaGt1cnRfTWFyc19QcmlsbF9N''@;'; + put 'put ''YWpfUWVyc2hvcl9Lb3JyaWtfR3VzaHRfU2h0YXRvcl9UZXRvcl9OXHhlYm50b3JfRGhqZXRvciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX1Noa19NYXJfUHJpX01hal9RZXJfS29yX0d1c19TaHRfVGV0X05ceGVibl9EaGoiLnNwbGl0KCJfIiksd2Vla2RheXM6IkUgRGllbF9FIEhc''@;'; + put 'put ''eGViblx4ZWJfRSBNYXJ0XHhlYl9FIE1ceGVicmt1clx4ZWJfRSBFbmp0ZV9FIFByZW10ZV9FIFNodHVuXHhlYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJEaWVfSFx4ZWJuX01hcl9NXHhlYnJfRW5qX1ByZV9TaHQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkRfSF9NYV9NXHhlYl9F''@;'; + put 'put ''X1BfU2giLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLG1lcmlkaWVtUGFyc2U6L1BEfE1ELyxpc1BNOmZ1bmN0aW9uKEUpe3JldHVybiJNIj09PUUuY2hhckF0KDApfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFPDEyPyJQRCI6Ik1EIn0sbG9uZ0RhdGVGb3Jt''@;'; + put 'put ''YXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbU290IG5ceGViXSBMVCIsbmV4dERheToiW05l''@;'; + put 'put ''c1x4ZWJyIG5ceGViXSBMVCIsbmV4dFdlZWs6ImRkZGQgW25ceGViXSBMVCIsbGFzdERheToiW0RqZSBuXHhlYl0gTFQiLGxhc3RXZWVrOiJkZGRkIFtlIGthbHVhciBuXHhlYl0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im5ceGViICVzIixwYXN0OiIlcyBtXHhl''@;'; + put 'put ''YiBwYXJceGViIixzOiJkaXNhIHNla29uZGEiLHNzOiIlZCBzZWtvbmRhIixtOiJualx4ZWIgbWludXRceGViIixtbToiJWQgbWludXRhIixoOiJualx4ZWIgb3JceGViIixoaDoiJWQgb3JceGViIixkOiJualx4ZWIgZGl0XHhlYiIsZGQ6IiVkIGRpdFx4ZWIiLE06Im5qXHhlYiBtdWFqIixN''@;'; + put 'put ''TToiJWQgbXVhaiIseToibmpceGViIHZpdCIseXk6IiVkIHZpdGUifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNTI4NzI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNl''@;'; + put 'put ''IHN0cmljdCI7dmFyIEI9e3dvcmRzOntzczpbIlx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzMCIsIlx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzNSIsIlx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCJdLG06''@;'; + put 'put ''WyJcdTA0NThcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2QgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyIiwiXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQzMCJdLG1tOlsiXHUwNDNjXHUwNDM4XHUwNDNk''@;'; + put 'put ''XHUwNDQzXHUwNDQyIiwiXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDMwIiwiXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDMwIl0saDpbIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0NDFcdTA0MzBcdTA0NDIiLCJcdTA0NThcdTA0MzVcdTA0''@;'; + put 'put ''MzRcdTA0M2RcdTA0M2VcdTA0MzMgXHUwNDQxXHUwNDMwXHUwNDQyXHUwNDMwIl0saGg6WyJcdTA0NDFcdTA0MzBcdTA0NDIiLCJcdTA0NDFcdTA0MzBcdTA0NDJcdTA0MzAiLCJcdTA0NDFcdTA0MzBcdTA0NDJcdTA0MzgiXSxkOlsiXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNkIFx1''@;'; + put 'put ''MDQzNFx1MDQzMFx1MDQzZCIsIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzMyBcdTA0MzRcdTA0MzBcdTA0M2RcdTA0MzAiXSxkZDpbIlx1MDQzNFx1MDQzMFx1MDQzZCIsIlx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzMCIsIlx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzMCJdLE06''@;'; + put 'put ''WyJcdTA0NThcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2QgXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQ2IiwiXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzIFx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0Nlx1MDQzMCJdLE1NOlsiXHUwNDNjXHUwNDM1XHUwNDQx''@;'; + put 'put ''XHUwNDM1XHUwNDQ2IiwiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQ2XHUwNDMwIiwiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQ2XHUwNDM4Il0seTpbIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQ0MyBcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0NDMi''@;'; + put 'put ''LCJcdTA0NThcdTA0MzVcdTA0MzRcdTA0M2RcdTA0MzUgXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDM1Il0seXk6WyJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0NDMiLCJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzUiLCJcdTA0MzNcdTA0''@;'; + put 'put ''M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzAiXX0sY29ycmVjdEdyYW1tYXRpY2FsQ2FzZTpmdW5jdGlvbihNZSxVKXtyZXR1cm4gTWUlMTA+PTEmJk1lJTEwPD00JiYoTWUlMTAwPDEwfHxNZSUxMDA+PTIwKT9NZSUxMD09MT9VWzBdOlVbMV06VVsyXX0sdHJhbnNsYXRlOmZ1bmN0aW9uKE1l''@;'; + put 'put ''LFUsUSxaKXt2YXIgbGUsaWU9Qi53b3Jkc1tRXTtyZXR1cm4gMT09PVEubGVuZ3RoPyJ5Ij09PVEmJlU/Ilx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzMCBcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzAiOlp8fFU/aWVbMF06aWVbMV06KGxlPUIuY29ycmVjdEdyYW1t''@;'; + put 'put ''YXRpY2FsQ2FzZShNZSxpZSksInl5Ij09PVEmJlUmJiJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0NDMiPT09bGU/TWUrIiBcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzAiOk1lKyIgIitsZSl9fTttZS5kZWZpbmVMb2NhbGUoInNyLWN5cmwiLHttb250aHM6''@;'; + put 'put ''Ilx1MDQ1OFx1MDQzMFx1MDQzZFx1MDQ0M1x1MDQzMFx1MDQ0MF9cdTA0NDRcdTA0MzVcdTA0MzFcdTA0NDBcdTA0NDNcdTA0MzBcdTA0NDBfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYl9cdTA0M2NcdTA0MzBcdTA0NThfXHUwNDU4XHUw''@;'; + put 'put ''NDQzXHUwNDNkX1x1MDQ1OFx1MDQ0M1x1MDQzYl9cdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJfXHUwNDQxXHUwNDM1XHUwNDNmXHUwNDQyXHUwNDM1XHUwNDNjXHUwNDMxXHUwNDMwXHUwNDQwX1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQzZVx1MDQzMVx1MDQzMFx1MDQ0MF9c''@;'; + put 'put ''dTA0M2RcdTA0M2VcdTA0MzJcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzBcdTA0NDBfXHUwNDM0XHUwNDM1XHUwNDQ2XHUwNDM1XHUwNDNjXHUwNDMxXHUwNDMwXHUwNDQwIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA0NThcdTA0MzBcdTA0M2QuX1x1MDQ0NFx1MDQzNVx1MDQzMS5fXHUw''@;'; + put 'put ''NDNjXHUwNDMwXHUwNDQwLl9cdTA0MzBcdTA0M2ZcdTA0NDAuX1x1MDQzY1x1MDQzMFx1MDQ1OF9cdTA0NThcdTA0NDNcdTA0M2RfXHUwNDU4XHUwNDQzXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzMy5fXHUwNDQxXHUwNDM1XHUwNDNmLl9cdTA0M2VcdTA0M2FcdTA0NDIuX1x1MDQzZFx1MDQz''@;'; + put 'put ''ZVx1MDQzMi5fXHUwNDM0XHUwNDM1XHUwNDQ2LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0NTlcdTA0MzBfXHUwNDNmXHUwNDNlXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDU5XHUwNDMwXHUwNDNhX1x1''@;'; + put 'put ''MDQ0M1x1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzMFx1MDQzYV9cdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzBfXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMyXHUwNDQwXHUwNDQyXHUwNDMwXHUwNDNhX1x1MDQzZlx1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzYV9cdTA0NDFcdTA0NDNcdTA0MzFc''@;'; + put 'put ''dTA0M2VcdTA0NDJcdTA0MzAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDNkXHUwNDM1XHUwNDM0Ll9cdTA0M2ZcdTA0M2VcdTA0M2QuX1x1MDQ0M1x1MDQ0Mlx1MDQzZS5fXHUwNDQxXHUwNDQwXHUwNDM1Ll9cdTA0NDdcdTA0MzVcdTA0NDIuX1x1MDQzZlx1MDQzNVx1MDQ0Mi5f''@;'; + put 'put ''XHUwNDQxXHUwNDQzXHUwNDMxLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDNkXHUwNDM1X1x1MDQzZlx1MDQzZV9cdTA0NDNcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1MDQzNV9cdTA0M2ZcdTA0MzVfXHUwNDQxXHUwNDQzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFj''@;'; + put 'put ''dDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiRC4gTS4gWVlZWS4iLExMOiJELiBNTU1NIFlZWVkuIixMTEw6IkQuIE1NTU0gWVlZWS4gSDptbSIsTExMTDoiZGRkZCwgRC4gTU1NTSBZWVlZLiBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MzRc''@;'; + put 'put ''dTA0MzBcdTA0M2RcdTA0MzBcdTA0NDEgXHUwNDQzXSBMVCIsbmV4dERheToiW1x1MDQ0MVx1MDQ0M1x1MDQ0Mlx1MDQ0MFx1MDQzMCBcdTA0NDNdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIltcdTA0NDNdIFtcdTA0M2RcdTA0MzVc''@;'; + put 'put ''dTA0MzRcdTA0MzVcdTA0NTlcdTA0NDNdIFtcdTA0NDNdIExUIjtjYXNlIDM6cmV0dXJuIltcdTA0NDNdIFtcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDNdIFtcdTA0NDNdIExUIjtjYXNlIDY6cmV0dXJuIltcdTA0NDNdIFtcdTA0NDFcdTA0NDNcdTA0MzFcdTA0M2VcdTA0NDJcdTA0''@;'; + put 'put ''NDNdIFtcdTA0NDNdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIltcdTA0NDNdIGRkZGQgW1x1MDQ0M10gTFQifX0sbGFzdERheToiW1x1MDQ1OFx1MDQ0M1x1MDQ0N1x1MDQzNSBcdTA0NDNdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3JldHVyblsiW1x1MDQzZlx1''@;'; + put 'put ''MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQzNV0gW1x1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQ1OVx1MDQzNV0gW1x1MDQ0M10gTFQiLCJbXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDNlXHUwNDMzXSBbXHUwNDNmXHUwNDNlXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1''@;'; + put 'put ''XHUwNDU5XHUwNDNhXHUwNDMwXSBbXHUwNDQzXSBMVCIsIltcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0M2VcdTA0MzNdIFtcdTA0NDNcdTA0NDJcdTA0M2VcdTA0NDBcdTA0M2FcdTA0MzBdIFtcdTA0NDNdIExUIiwiW1x1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1''@;'; + put 'put ''MDQzNV0gW1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzNV0gW1x1MDQ0M10gTFQiLCJbXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDNlXHUwNDMzXSBbXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMyXHUwNDQwXHUwNDQyXHUwNDNhXHUwNDMwXSBbXHUwNDQzXSBMVCIsIltc''@;'; + put 'put ''dTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0M2VcdTA0MzNdIFtcdTA0M2ZcdTA0MzVcdTA0NDJcdTA0M2FcdTA0MzBdIFtcdTA0NDNdIExUIiwiW1x1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQzNV0gW1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQz''@;'; + put 'put ''NV0gW1x1MDQ0M10gTFQiXVt0aGlzLmRheSgpXX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNDM3XHUwNDMwICVzIixwYXN0OiJcdTA0M2ZcdTA0NDBcdTA0MzUgJXMiLHM6Ilx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQzOFx1MDQzYVx1MDQzZSBc''@;'; + put 'put ''dTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzgiLHNzOkIudHJhbnNsYXRlLG06Qi50cmFuc2xhdGUsbW06Qi50cmFuc2xhdGUsaDpCLnRyYW5zbGF0ZSxoaDpCLnRyYW5zbGF0ZSxkOkIudHJhbnNsYXRlLGRkOkIudHJhbnNsYXRlLE06Qi50cmFuc2xhdGUsTU06Qi50''@;'; + put 'put ''cmFuc2xhdGUseTpCLnRyYW5zbGF0ZSx5eTpCLnRyYW5zbGF0ZX0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDk3OTQ5OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBz''@;'; + put 'put ''dHJpY3QiO3ZhciBCPXt3b3Jkczp7c3M6WyJzZWt1bmRhIiwic2VrdW5kZSIsInNla3VuZGkiXSxtOlsiamVkYW4gbWludXQiLCJqZWRub2cgbWludXRhIl0sbW06WyJtaW51dCIsIm1pbnV0YSIsIm1pbnV0YSJdLGg6WyJqZWRhbiBzYXQiLCJqZWRub2cgc2F0YSJdLGhoOlsic2F0Iiwic2F0''@;'; + put 'put ''YSIsInNhdGkiXSxkOlsiamVkYW4gZGFuIiwiamVkbm9nIGRhbmEiXSxkZDpbImRhbiIsImRhbmEiLCJkYW5hIl0sTTpbImplZGFuIG1lc2VjIiwiamVkbm9nIG1lc2VjYSJdLE1NOlsibWVzZWMiLCJtZXNlY2EiLCJtZXNlY2kiXSx5OlsiamVkbnUgZ29kaW51IiwiamVkbmUgZ29kaW5lIl0s''@;'; + put 'put ''eXk6WyJnb2RpbnUiLCJnb2RpbmUiLCJnb2RpbmEiXX0sY29ycmVjdEdyYW1tYXRpY2FsQ2FzZTpmdW5jdGlvbihNZSxVKXtyZXR1cm4gTWUlMTA+PTEmJk1lJTEwPD00JiYoTWUlMTAwPDEwfHxNZSUxMDA+PTIwKT9NZSUxMD09MT9VWzBdOlVbMV06VVsyXX0sdHJhbnNsYXRlOmZ1bmN0aW9u''@;'; + put 'put ''KE1lLFUsUSxaKXt2YXIgbGUsaWU9Qi53b3Jkc1tRXTtyZXR1cm4gMT09PVEubGVuZ3RoPyJ5Ij09PVEmJlU/ImplZG5hIGdvZGluYSI6Wnx8VT9pZVswXTppZVsxXToobGU9Qi5jb3JyZWN0R3JhbW1hdGljYWxDYXNlKE1lLGllKSwieXkiPT09USYmVSYmImdvZGludSI9PT1sZT9NZSsiIGdv''@;'; + put 'put ''ZGluYSI6TWUrIiAiK2xlKX19O21lLmRlZmluZUxvY2FsZSgic3IiLHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcnRfYXByaWxfbWFqX2p1bl9qdWxfYXZndXN0X3NlcHRlbWJhcl9va3RvYmFyX25vdmVtYmFyX2RlY2VtYmFyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW4uX2ZlYi5f''@;'; + put 'put ''bWFyLl9hcHIuX21hal9qdW5fanVsX2F2Zy5fc2VwLl9va3QuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJuZWRlbGphX3BvbmVkZWxqYWtfdXRvcmFrX3NyZWRhX1x1MDEwZGV0dnJ0YWtfcGV0YWtfc3Vib3RhIi5zcGxpdCgiXyIpLHdlZWtk''@;'; + put 'put ''YXlzU2hvcnQ6Im5lZC5fcG9uLl91dG8uX3NyZS5fXHUwMTBkZXQuX3BldC5fc3ViLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fdXRfc3JfXHUwMTBkZV9wZV9zdSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6''@;'; + put 'put ''Ikg6bW06c3MiLEw6IkQuIE0uIFlZWVkuIixMTDoiRC4gTU1NTSBZWVlZLiIsTExMOiJELiBNTU1NIFlZWVkuIEg6bW0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWS4gSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbZGFuYXMgdV0gTFQiLG5leHREYXk6IltzdXRyYSB1XSBMVCIsbmV4dFdl''@;'; + put 'put ''ZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbdV0gW25lZGVsanVdIFt1XSBMVCI7Y2FzZSAzOnJldHVybiJbdV0gW3NyZWR1XSBbdV0gTFQiO2Nhc2UgNjpyZXR1cm4iW3VdIFtzdWJvdHVdIFt1XSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1''@;'; + put 'put ''OnJldHVybiJbdV0gZGRkZCBbdV0gTFQifX0sbGFzdERheToiW2p1XHUwMTBkZSB1XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm5bIltwcm9cdTAxNjFsZV0gW25lZGVsamVdIFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFtwb25lZGVsamthXSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9n''@;'; + put 'put ''XSBbdXRvcmthXSBbdV0gTFQiLCJbcHJvXHUwMTYxbGVdIFtzcmVkZV0gW3VdIExUIiwiW3Byb1x1MDE2MWxvZ10gW1x1MDEwZGV0dnJ0a2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFtwZXRrYV0gW3VdIExUIiwiW3Byb1x1MDE2MWxlXSBbc3Vib3RlXSBbdV0gTFQiXVt0aGlzLmRheSgp''@;'; + put 'put ''XX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiemEgJXMiLHBhc3Q6InByZSAlcyIsczoibmVrb2xpa28gc2VrdW5kaSIsc3M6Qi50cmFuc2xhdGUsbTpCLnRyYW5zbGF0ZSxtbTpCLnRyYW5zbGF0ZSxoOkIudHJhbnNsYXRlLGhoOkIudHJhbnNsYXRlLGQ6Qi50cmFuc2xh''@;'; + put 'put ''dGUsZGQ6Qi50cmFuc2xhdGUsTTpCLnRyYW5zbGF0ZSxNTTpCLnRyYW5zbGF0ZSx5OkIudHJhbnNsYXRlLHl5OkIudHJhbnNsYXRlfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sODYxNjc6''@;'; + put 'put ''ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJzcyIse21vbnRoczoiQmhpbWJpZHZ3YW5lX0luZGxvdmFuYV9JbmRsb3YnbGVua2h1bHVfTWFiYXNhX0lua2h3ZWtod2V0aV9JbmhsYWJhX0tob2x3YW5lX0luZ2NpX0lueW9uaV9J''@;'; + put 'put ''bXBoYWxhX0x3ZXRpX0luZ29uZ29uaSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiQmhpX0luYV9JbnVfTWFiX0lua19JbmhfS2hvX0lnY19JbnlfSW1wX0x3ZV9JZ28iLnNwbGl0KCJfIiksd2Vla2RheXM6Ikxpc29udGZvX1Vtc29tYnVsdWtvX0xlc2liaWxpX0xlc2l0c2F0ZnVfTGVzaW5l''@;'; + put 'put ''X0xlc2lobGFudV9VbWdjaWJlbG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiTGlzX1VtYl9Mc2JfTGVzX0xzaV9Mc2hfVW1nIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJMaV9Vc19MYl9MdF9Mc19MaF9VZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVG''@;'; + put 'put ''b3JtYXQ6e0xUOiJoOm1tIEEiLExUUzoiaDptbTpzcyBBIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgaDptbSBBIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEifSxjYWxlbmRhcjp7c2FtZURheToiW05hbXVobGEgbmdhXSBMVCIsbmV4''@;'; + put 'put ''dERheToiW0t1c2FzYSBuZ2FdIExUIixuZXh0V2VlazoiZGRkZCBbbmdhXSBMVCIsbGFzdERheToiW0l0b2xvIG5nYV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtsZWxpcGhlbGlsZV0gW25nYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im5nYSAlcyIscGFzdDoid2Vu''@;'; + put 'put ''dGVrYSBuZ2EgJXMiLHM6ImVtaXp1endhbmEgbG9tY2FuZSIsc3M6IiVkIG16dXp3YW5hIixtOiJ1bXp1enUiLG1tOiIlZCBlbWl6dXp1IixoOiJsaWhvcmEiLGhoOiIlZCBlbWFob3JhIixkOiJsaWxhbmdhIixkZDoiJWQgZW1hbGFuZ2EiLE06ImlueWFuZ2EiLE1NOiIlZCB0aW55YW5nYSIs''@;'; + put 'put ''eToidW1ueWFrYSIseXk6IiVkIGltaW55YWthIn0sbWVyaWRpZW1QYXJzZTovZWt1c2VuaXxlbWluaXxlbnRzYW1iYW1hfGVidXN1a3UvLG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEU8MTE/ImVrdXNlbmkiOkU8MTU/ImVtaW5pIjpFPDE5PyJlbnRzYW1iYW1hIjoiZWJ1c3Vr''@;'; + put 'put ''dSJ9LG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLE1lKXtyZXR1cm4gMTI9PT1FJiYoRT0wKSwiZWt1c2VuaSI9PT1NZT9FOiJlbWluaSI9PT1NZT9FPj0xMT9FOkUrMTI6ImVudHNhbWJhbWEiPT09TWV8fCJlYnVzdWt1Ij09PU1lPzA9PT1FPzA6RSsxMjp2b2lkIDB9LGRheU9mTW9udGhPcmRp''@;'; + put 'put ''bmFsUGFyc2U6L1xkezEsMn0vLG9yZGluYWw6IiVkIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwzOTcxMzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInN2Iix7bW9udGhzOiJqYW51YXJpX2ZlYnJ1YXJpX21h''@;'; + put 'put ''cnNfYXByaWxfbWFqX2p1bmlfanVsaV9hdWd1c3RpX3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW5fZmViX21hcl9hcHJfbWFqX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoic1x4''@;'; + put 'put ''ZjZuZGFnX21ceGU1bmRhZ190aXNkYWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2xceGY2cmRhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzXHhmNm5fbVx4ZTVuX3Rpc19vbnNfdG9yX2ZyZV9sXHhmNnIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InNceGY2X21ceGU1X3RpX29uX3Rv''@;'; + put 'put ''X2ZyX2xceGY2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IllZWVktTU0tREQiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBba2wuXSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBba2wuXSBISDptbSIsbGxs''@;'; + put 'put ''OiJEIE1NTSBZWVlZIEhIOm1tIixsbGxsOiJkZGQgRCBNTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSWRhZ10gTFQiLG5leHREYXk6IltJbW9yZ29uXSBMVCIsbGFzdERheToiW0lnXHhlNXJdIExUIixuZXh0V2VlazoiW1BceGU1XSBkZGRkIExUIixsYXN0V2VlazoiW0ld''@;'; + put 'put ''IGRkZGRbc10gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im9tICVzIixwYXN0OiJmXHhmNnIgJXMgc2VkYW4iLHM6Im5ceGU1Z3JhIHNla3VuZGVyIixzczoiJWQgc2VrdW5kZXIiLG06ImVuIG1pbnV0IixtbToiJWQgbWludXRlciIsaDoiZW4gdGltbWUiLGhoOiIl''@;'; + put 'put ''ZCB0aW1tYXIiLGQ6ImVuIGRhZyIsZGQ6IiVkIGRhZ2FyIixNOiJlbiBtXHhlNW5hZCIsTU06IiVkIG1ceGU1bmFkZXIiLHk6ImV0dCBceGU1ciIseXk6IiVkIFx4ZTVyIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcOmV8XDphKS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIg''@;'; + put 'put ''TWU9RSUxMDtyZXR1cm4gRSsoMT09fn4oRSUxMDAvMTApPyI6ZSI6MT09PU1lfHwyPT09TWU/IjphIjoiOmUiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNDE5ODI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxl''@;'; + put 'put ''KCJzdyIse21vbnRoczoiSmFudWFyaV9GZWJydWFyaV9NYWNoaV9BcHJpbGlfTWVpX0p1bmlfSnVsYWlfQWdvc3RpX1NlcHRlbWJhX09rdG9iYV9Ob3ZlbWJhX0Rlc2VtYmEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFjX0Fwcl9NZWlfSnVuX0p1bF9BZ29fU2VwX09rdF9O''@;'; + put 'put ''b3ZfRGVzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJKdW1hcGlsaV9KdW1hdGF0dV9KdW1hbm5lX0p1bWF0YW5vX0FsaGFtaXNpX0lqdW1hYV9KdW1hbW9zaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJKcGxfSnRhdF9Kbm5lX0p0YW5fQWxoX0lqbV9KbW9zIi5zcGxpdCgiXyIpLHdlZWtk''@;'; + put 'put ''YXlzTWluOiJKMl9KM19KNF9KNV9BbF9Jal9KMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJoaDptbSBBIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExM''@;'; + put 'put ''TEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltsZW8gc2FhXSBMVCIsbmV4dERheToiW2tlc2hvIHNhYV0gTFQiLG5leHRXZWVrOiJbd2lraSBpamF5b10gZGRkZCBbc2FhdF0gTFQiLGxhc3REYXk6IltqYW5hXSBMVCIsbGFzdFdlZWs6Ilt3aWtpIGls''@;'; + put 'put ''aXlvcGl0YV0gZGRkZCBbc2FhdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIGJhYWRheWUiLHBhc3Q6InRva2VhICVzIixzOiJoaXZpIHB1bmRlIixzczoic2VrdW5kZSAlZCIsbToiZGFraWthIG1vamEiLG1tOiJkYWtpa2EgJWQiLGg6InNhYSBsaW1vamEi''@;'; + put 'put ''LGhoOiJtYXNhYSAlZCIsZDoic2lrdSBtb2phIixkZDoic2lrdSAlZCIsTToibXdlemkgbW1vamEiLE1NOiJtaWV6aSAlZCIseToibXdha2EgbW1vamEiLHl5OiJtaWFrYSAlZCJ9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDIyNzMyOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5j''@;'; + put 'put ''dGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiJcdTBiZTciLDI6Ilx1MGJlOCIsMzoiXHUwYmU5Iiw0OiJcdTBiZWEiLDU6Ilx1MGJlYiIsNjoiXHUwYmVjIiw3OiJcdTBiZWQiLDg6Ilx1MGJlZSIsOToiXHUwYmVmIiwwOiJcdTBiZTYifSxFPXsiXHUwYmU3IjoiMSIsIlx1MGJlOCI6''@;'; + put 'put ''IjIiLCJcdTBiZTkiOiIzIiwiXHUwYmVhIjoiNCIsIlx1MGJlYiI6IjUiLCJcdTBiZWMiOiI2IiwiXHUwYmVkIjoiNyIsIlx1MGJlZSI6IjgiLCJcdTBiZWYiOiI5IiwiXHUwYmU2IjoiMCJ9O21lLmRlZmluZUxvY2FsZSgidGEiLHttb250aHM6Ilx1MGI5Y1x1MGJhOVx1MGJiNVx1MGJiMFx1''@;'; + put 'put ''MGJiZl9cdTBiYWFcdTBiYmZcdTBiYWFcdTBiY2RcdTBiYjBcdTBiYjVcdTBiYjBcdTBiYmZfXHUwYmFlXHUwYmJlXHUwYmIwXHUwYmNkXHUwYjlhXHUwYmNkX1x1MGI4Zlx1MGJhYVx1MGJjZFx1MGJiMFx1MGJiMlx1MGJjZF9cdTBiYWVcdTBiYzdfXHUwYjljXHUwYmMyXHUwYmE5XHUwYmNk''@;'; + put 'put ''X1x1MGI5Y1x1MGJjMlx1MGJiMlx1MGJjOF9cdTBiODZcdTBiOTVcdTBiYjhcdTBiY2RcdTBiOWZcdTBiY2RfXHUwYjlhXHUwYmM2XHUwYmFhXHUwYmNkXHUwYjlmXHUwYmM2XHUwYmFlXHUwYmNkXHUwYmFhXHUwYmIwXHUwYmNkX1x1MGI4NVx1MGI5NVx1MGJjZFx1MGI5Zlx1MGJjN1x1MGJi''@;'; + put 'put ''ZVx1MGJhYVx1MGJiMFx1MGJjZF9cdTBiYThcdTBiYjVcdTBiYWVcdTBiY2RcdTBiYWFcdTBiYjBcdTBiY2RfXHUwYjlmXHUwYmJmXHUwYjlhXHUwYmFlXHUwYmNkXHUwYmFhXHUwYmIwXHUwYmNkIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBiOWNcdTBiYTlcdTBiYjVcdTBiYjBcdTBi''@;'; + put 'put ''YmZfXHUwYmFhXHUwYmJmXHUwYmFhXHUwYmNkXHUwYmIwXHUwYmI1XHUwYmIwXHUwYmJmX1x1MGJhZVx1MGJiZVx1MGJiMFx1MGJjZFx1MGI5YVx1MGJjZF9cdTBiOGZcdTBiYWFcdTBiY2RcdTBiYjBcdTBiYjJcdTBiY2RfXHUwYmFlXHUwYmM3X1x1MGI5Y1x1MGJjMlx1MGJhOVx1MGJjZF9c''@;'; + put 'put ''dTBiOWNcdTBiYzJcdTBiYjJcdTBiYzhfXHUwYjg2XHUwYjk1XHUwYmI4XHUwYmNkXHUwYjlmXHUwYmNkX1x1MGI5YVx1MGJjNlx1MGJhYVx1MGJjZFx1MGI5Zlx1MGJjNlx1MGJhZVx1MGJjZFx1MGJhYVx1MGJiMFx1MGJjZF9cdTBiODVcdTBiOTVcdTBiY2RcdTBiOWZcdTBiYzdcdTBiYmVc''@;'; + put 'put ''dTBiYWFcdTBiYjBcdTBiY2RfXHUwYmE4XHUwYmI1XHUwYmFlXHUwYmNkXHUwYmFhXHUwYmIwXHUwYmNkX1x1MGI5Zlx1MGJiZlx1MGI5YVx1MGJhZVx1MGJjZFx1MGJhYVx1MGJiMFx1MGJjZCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwYjllXHUwYmJlXHUwYmFmXHUwYmJmXHUwYmIxXHUw''@;'; + put 'put ''YmNkXHUwYmIxXHUwYmMxXHUwYjk1XHUwYmNkXHUwYjk1XHUwYmJmXHUwYmI0XHUwYmFlXHUwYmM4X1x1MGJhNFx1MGJiZlx1MGI5OVx1MGJjZFx1MGI5NVx1MGI5Zlx1MGJjZFx1MGI5NVx1MGJiZlx1MGJiNFx1MGJhZVx1MGJjOF9cdTBiOWFcdTBiYzZcdTBiYjVcdTBiY2RcdTBiYjVcdTBi''@;'; + put 'put ''YmVcdTBiYWZcdTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBiYzhfXHUwYmFhXHUwYmMxXHUwYmE0XHUwYmE5XHUwYmNkXHUwYjk1XHUwYmJmXHUwYmI0XHUwYmFlXHUwYmM4X1x1MGJiNVx1MGJiZlx1MGJhZlx1MGJiZVx1MGJiNFx1MGI5NVx1MGJjZFx1MGI5NVx1MGJiZlx1MGJi''@;'; + put 'put ''NFx1MGJhZVx1MGJjOF9cdTBiYjVcdTBiYzZcdTBiYjNcdTBiY2RcdTBiYjNcdTBiYmZcdTBiOTVcdTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBiYzhfXHUwYjlhXHUwYmE5XHUwYmJmXHUwYjk1XHUwYmNkXHUwYjk1XHUwYmJmXHUwYmI0XHUwYmFlXHUwYmM4Ii5zcGxpdCgiXyIp''@;'; + put 'put ''LHdlZWtkYXlzU2hvcnQ6Ilx1MGI5ZVx1MGJiZVx1MGJhZlx1MGJiZlx1MGJiMVx1MGJjMV9cdTBiYTRcdTBiYmZcdTBiOTlcdTBiY2RcdTBiOTVcdTBiYjNcdTBiY2RfXHUwYjlhXHUwYmM2XHUwYmI1XHUwYmNkXHUwYmI1XHUwYmJlXHUwYmFmXHUwYmNkX1x1MGJhYVx1MGJjMVx1MGJhNFx1''@;'; + put 'put ''MGJhOVx1MGJjZF9cdTBiYjVcdTBiYmZcdTBiYWZcdTBiYmVcdTBiYjRcdTBiYTlcdTBiY2RfXHUwYmI1XHUwYmM2XHUwYmIzXHUwYmNkXHUwYmIzXHUwYmJmX1x1MGI5YVx1MGJhOVx1MGJiZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwYjllXHUwYmJlX1x1MGJhNFx1MGJiZl9cdTBi''@;'; + put 'put ''OWFcdTBiYzZfXHUwYmFhXHUwYmMxX1x1MGJiNVx1MGJiZl9cdTBiYjVcdTBiYzZfXHUwYjlhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgSEg6bW0i''@;'; + put 'put ''LExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwYjg3XHUwYmE5XHUwYmNkXHUwYmIxXHUwYmMxXSBMVCIsbmV4dERheToiW1x1MGJhOFx1MGJiZVx1MGJiM1x1MGJjOF0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MGJh''@;'; + put 'put ''OFx1MGJjN1x1MGJiMVx1MGJjZFx1MGJiMVx1MGJjMV0gTFQiLGxhc3RXZWVrOiJbXHUwYjk1XHUwYjlmXHUwYmE4XHUwYmNkXHUwYmE0IFx1MGJiNVx1MGJiZVx1MGJiMFx1MGJhZVx1MGJjZF0gZGRkZCwgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MGI4''@;'; + put 'put ''N1x1MGJiMlx1MGJjZCIscGFzdDoiJXMgXHUwYmFlXHUwYmMxXHUwYmE5XHUwYmNkIixzOiJcdTBiOTJcdTBiYjBcdTBiYzEgXHUwYjlhXHUwYmJmXHUwYmIyIFx1MGJiNVx1MGJiZlx1MGJhOFx1MGJiZVx1MGI5Zlx1MGJiZlx1MGI5NVx1MGJiM1x1MGJjZCIsc3M6IiVkIFx1MGJiNVx1MGJi''@;'; + put 'put ''Zlx1MGJhOFx1MGJiZVx1MGI5Zlx1MGJiZlx1MGI5NVx1MGJiM1x1MGJjZCIsbToiXHUwYjkyXHUwYmIwXHUwYmMxIFx1MGJhOFx1MGJiZlx1MGJhZVx1MGJiZlx1MGI5Zlx1MGJhZVx1MGJjZCIsbW06IiVkIFx1MGJhOFx1MGJiZlx1MGJhZVx1MGJiZlx1MGI5Zlx1MGI5OVx1MGJjZFx1MGI5''@;'; + put 'put ''NVx1MGJiM1x1MGJjZCIsaDoiXHUwYjkyXHUwYmIwXHUwYmMxIFx1MGJhZVx1MGJhM1x1MGJiZiBcdTBiYThcdTBiYzdcdTBiYjBcdTBiYWVcdTBiY2QiLGhoOiIlZCBcdTBiYWVcdTBiYTNcdTBiYmYgXHUwYmE4XHUwYmM3XHUwYmIwXHUwYmFlXHUwYmNkIixkOiJcdTBiOTJcdTBiYjBcdTBi''@;'; + put 'put ''YzEgXHUwYmE4XHUwYmJlXHUwYmIzXHUwYmNkIixkZDoiJWQgXHUwYmE4XHUwYmJlXHUwYjlmXHUwYmNkXHUwYjk1XHUwYmIzXHUwYmNkIixNOiJcdTBiOTJcdTBiYjBcdTBiYzEgXHUwYmFlXHUwYmJlXHUwYmE0XHUwYmFlXHUwYmNkIixNTToiJWQgXHUwYmFlXHUwYmJlXHUwYmE0XHUwYjk5''@;'; + put 'put ''XHUwYmNkXHUwYjk1XHUwYmIzXHUwYmNkIix5OiJcdTBiOTJcdTBiYjBcdTBiYzEgXHUwYmI1XHUwYmIwXHUwYmMxXHUwYjlmXHUwYmFlXHUwYmNkIix5eToiJWQgXHUwYjg2XHUwYmEzXHUwYmNkXHUwYjlmXHUwYmMxXHUwYjk1XHUwYmIzXHUwYmNkIn0sZGF5T2ZNb250aE9yZGluYWxQYXJz''@;'; + put 'put ''ZTovXGR7MSwyfVx1MGJiNVx1MGJhNFx1MGJjMS8sb3JkaW5hbDpmdW5jdGlvbihVKXtyZXR1cm4gVSsiXHUwYmI1XHUwYmE0XHUwYmMxIn0scHJlcGFyc2U6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvW1x1MGJlN1x1MGJlOFx1MGJlOVx1MGJlYVx1MGJlYlx1MGJlY1x1MGJlZFx1''@;'; + put 'put ''MGJlZVx1MGJlZlx1MGJlNl0vZyxmdW5jdGlvbihRKXtyZXR1cm4gRVtRXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oUSl7cmV0dXJuIEJbUV19KX0sbWVyaWRpZW1QYXJzZTovXHUwYmFmXHUwYmJlXHUwYmFlXHUwYmFlXHUwYmNk''@;'; + put 'put ''fFx1MGJiNVx1MGJjOFx1MGI5NVx1MGJiMVx1MGJjOHxcdTBiOTVcdTBiYmVcdTBiYjJcdTBiYzh8XHUwYmE4XHUwYmEzXHUwYmNkXHUwYmFhXHUwYjk1XHUwYmIyXHUwYmNkfFx1MGI4ZVx1MGJiMVx1MGJjZFx1MGJhYVx1MGJiZVx1MGI5Zlx1MGJjMXxcdTBiYWVcdTBiYmVcdTBiYjJcdTBi''@;'; + put 'put ''YzgvLG1lcmlkaWVtOmZ1bmN0aW9uKFUsUSxaKXtyZXR1cm4gVTwyPyIgXHUwYmFmXHUwYmJlXHUwYmFlXHUwYmFlXHUwYmNkIjpVPDY/IiBcdTBiYjVcdTBiYzhcdTBiOTVcdTBiYjFcdTBiYzgiOlU8MTA/IiBcdTBiOTVcdTBiYmVcdTBiYjJcdTBiYzgiOlU8MTQ/IiBcdTBiYThcdTBiYTNc''@;'; + put 'put ''dTBiY2RcdTBiYWFcdTBiOTVcdTBiYjJcdTBiY2QiOlU8MTg/IiBcdTBiOGVcdTBiYjFcdTBiY2RcdTBiYWFcdTBiYmVcdTBiOWZcdTBiYzEiOlU8MjI/IiBcdTBiYWVcdTBiYmVcdTBiYjJcdTBiYzgiOiIgXHUwYmFmXHUwYmJlXHUwYmFlXHUwYmFlXHUwYmNkIn0sbWVyaWRpZW1Ib3VyOmZ1''@;'; + put 'put ''bmN0aW9uKFUsUSl7cmV0dXJuIDEyPT09VSYmKFU9MCksIlx1MGJhZlx1MGJiZVx1MGJhZVx1MGJhZVx1MGJjZCI9PT1RP1U8Mj9VOlUrMTI6Ilx1MGJiNVx1MGJjOFx1MGI5NVx1MGJiMVx1MGJjOCI9PT1RfHwiXHUwYjk1XHUwYmJlXHUwYmIyXHUwYmM4Ij09PVF8fCJcdTBiYThcdTBiYTNc''@;'; + put 'put ''dTBiY2RcdTBiYWFcdTBiOTVcdTBiYjJcdTBiY2QiPT09USYmVT49MTA/VTpVKzEyfSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkpfSw0MzYzNjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInRlIix7bW9udGhzOiJc''@;'; + put 'put ''dTBjMWNcdTBjMjhcdTBjMzVcdTBjMzBcdTBjM2ZfXHUwYzJiXHUwYzNmXHUwYzJjXHUwYzRkXHUwYzMwXHUwYzM1XHUwYzMwXHUwYzNmX1x1MGMyZVx1MGMzZVx1MGMzMFx1MGM0ZFx1MGMxYVx1MGMzZl9cdTBjMGZcdTBjMmFcdTBjNGRcdTBjMzBcdTBjM2ZcdTBjMzJcdTBjNGRfXHUwYzJl''@;'; + put 'put ''XHUwYzQ3X1x1MGMxY1x1MGM0Mlx1MGMyOFx1MGM0ZF9cdTBjMWNcdTBjNDFcdTBjMzJcdTBjNDhfXHUwYzA2XHUwYzE3XHUwYzM4XHUwYzRkXHUwYzFmXHUwYzQxX1x1MGMzOFx1MGM0Nlx1MGMyYVx1MGM0ZFx1MGMxZlx1MGM0Nlx1MGMwMlx1MGMyY1x1MGMzMFx1MGM0ZF9cdTBjMDVcdTBj''@;'; + put 'put ''MTVcdTBjNGRcdTBjMWZcdTBjNGJcdTBjMmNcdTBjMzBcdTBjNGRfXHUwYzI4XHUwYzM1XHUwYzAyXHUwYzJjXHUwYzMwXHUwYzRkX1x1MGMyMVx1MGMzZlx1MGMzOFx1MGM0Nlx1MGMwMlx1MGMyY1x1MGMzMFx1MGM0ZCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwYzFjXHUwYzI4Ll9c''@;'; + put 'put ''dTBjMmJcdTBjM2ZcdTBjMmNcdTBjNGRcdTBjMzAuX1x1MGMyZVx1MGMzZVx1MGMzMFx1MGM0ZFx1MGMxYVx1MGMzZl9cdTBjMGZcdTBjMmFcdTBjNGRcdTBjMzBcdTBjM2YuX1x1MGMyZVx1MGM0N19cdTBjMWNcdTBjNDJcdTBjMjhcdTBjNGRfXHUwYzFjXHUwYzQxXHUwYzMyXHUwYzQ4X1x1''@;'; + put 'put ''MGMwNlx1MGMxNy5fXHUwYzM4XHUwYzQ2XHUwYzJhXHUwYzRkLl9cdTBjMDVcdTBjMTVcdTBjNGRcdTBjMWZcdTBjNGIuX1x1MGMyOFx1MGMzNS5fXHUwYzIxXHUwYzNmXHUwYzM4XHUwYzQ2LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTBjMDZcdTBjMjZc''@;'; + put 'put ''dTBjM2ZcdTBjMzVcdTBjM2VcdTBjMzBcdTBjMDJfXHUwYzM4XHUwYzRiXHUwYzJlXHUwYzM1XHUwYzNlXHUwYzMwXHUwYzAyX1x1MGMyZVx1MGMwMlx1MGMxN1x1MGMzM1x1MGMzNVx1MGMzZVx1MGMzMFx1MGMwMl9cdTBjMmNcdTBjNDFcdTBjMjdcdTBjMzVcdTBjM2VcdTBjMzBcdTBjMDJf''@;'; + put 'put ''XHUwYzE3XHUwYzQxXHUwYzMwXHUwYzQxXHUwYzM1XHUwYzNlXHUwYzMwXHUwYzAyX1x1MGMzNlx1MGM0MVx1MGMxNVx1MGM0ZFx1MGMzMFx1MGMzNVx1MGMzZVx1MGMzMFx1MGMwMl9cdTBjMzZcdTBjMjhcdTBjM2ZcdTBjMzVcdTBjM2VcdTBjMzBcdTBjMDIiLnNwbGl0KCJfIiksd2Vla2Rh''@;'; + put 'put ''eXNTaG9ydDoiXHUwYzA2XHUwYzI2XHUwYzNmX1x1MGMzOFx1MGM0Ylx1MGMyZV9cdTBjMmVcdTBjMDJcdTBjMTdcdTBjMzNfXHUwYzJjXHUwYzQxXHUwYzI3X1x1MGMxN1x1MGM0MVx1MGMzMFx1MGM0MV9cdTBjMzZcdTBjNDFcdTBjMTVcdTBjNGRcdTBjMzBfXHUwYzM2XHUwYzI4XHUwYzNm''@;'; + put 'put ''Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBjMDZfXHUwYzM4XHUwYzRiX1x1MGMyZVx1MGMwMl9cdTBjMmNcdTBjNDFfXHUwYzE3XHUwYzQxX1x1MGMzNlx1MGM0MV9cdTBjMzYiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0iLExUUzoiQSBoOm1tOnNzIixMOiJE''@;'; + put 'put ''RC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwYzI4XHUwYzQ3XHUwYzIxXHUwYzQxXSBMVCIsbmV4dERheToiW1x1MGMzMFx1MGM0N1x1MGMy''@;'; + put 'put ''YVx1MGM0MV0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MGMyOFx1MGMzZlx1MGMyOFx1MGM0ZFx1MGMyOF0gTFQiLGxhc3RXZWVrOiJbXHUwYzE3XHUwYzI0XSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwYzMyXHUwYzRi''@;'; + put 'put ''IixwYXN0OiIlcyBcdTBjMTVcdTBjNGRcdTBjMzBcdTBjM2ZcdTBjMjRcdTBjMDIiLHM6Ilx1MGMxNVx1MGM0YVx1MGMyOFx1MGM0ZFx1MGMyOFx1MGMzZiBcdTBjMTVcdTBjNGRcdTBjMzdcdTBjMjNcdTBjM2VcdTBjMzJcdTBjNDEiLHNzOiIlZCBcdTBjMzhcdTBjNDZcdTBjMTVcdTBjMjhc''@;'; + put 'put ''dTBjNGRcdTBjMzJcdTBjNDEiLG06Ilx1MGMxMlx1MGMxNSBcdTBjMjhcdTBjM2ZcdTBjMmVcdTBjM2ZcdTBjMzdcdTBjMDIiLG1tOiIlZCBcdTBjMjhcdTBjM2ZcdTBjMmVcdTBjM2ZcdTBjMzdcdTBjM2VcdTBjMzJcdTBjNDEiLGg6Ilx1MGMxMlx1MGMxNSBcdTBjMTdcdTBjMDJcdTBjMWYi''@;'; + put 'put ''LGhoOiIlZCBcdTBjMTdcdTBjMDJcdTBjMWZcdTBjMzJcdTBjNDEiLGQ6Ilx1MGMxMlx1MGMxNSBcdTBjMzBcdTBjNGJcdTBjMWNcdTBjNDEiLGRkOiIlZCBcdTBjMzBcdTBjNGJcdTBjMWNcdTBjNDFcdTBjMzJcdTBjNDEiLE06Ilx1MGMxMlx1MGMxNSBcdTBjMjhcdTBjNDZcdTBjMzIiLE1N''@;'; + put 'put ''OiIlZCBcdTBjMjhcdTBjNDZcdTBjMzJcdTBjMzJcdTBjNDEiLHk6Ilx1MGMxMlx1MGMxNSBcdTBjMzhcdTBjMDJcdTBjMzVcdTBjMjRcdTBjNGRcdTBjMzhcdTBjMzBcdTBjMDIiLHl5OiIlZCBcdTBjMzhcdTBjMDJcdTBjMzVcdTBjMjRcdTBjNGRcdTBjMzhcdTBjMzBcdTBjM2VcdTBjMzJc''@;'; + put 'put ''dTBjNDEifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHUwYzM1LyxvcmRpbmFsOiIlZFx1MGMzNSIsbWVyaWRpZW1QYXJzZTovXHUwYzMwXHUwYzNlXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzNmfFx1MGMwOVx1MGMyNlx1MGMyZlx1MGMwMnxcdTBjMmVcdTBjMjdcdTBjNGRcdTBj''@;'; + put 'put ''MmZcdTBjM2VcdTBjMzlcdTBjNGRcdTBjMjhcdTBjMDJ8XHUwYzM4XHUwYzNlXHUwYzJmXHUwYzAyXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzAyLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oRSxNZSl7cmV0dXJuIDEyPT09RSYmKEU9MCksIlx1MGMzMFx1MGMzZVx1MGMyNFx1MGM0ZFx1MGMzMFx1''@;'; + put 'put ''MGMzZiI9PT1NZT9FPDQ/RTpFKzEyOiJcdTBjMDlcdTBjMjZcdTBjMmZcdTBjMDIiPT09TWU/RToiXHUwYzJlXHUwYzI3XHUwYzRkXHUwYzJmXHUwYzNlXHUwYzM5XHUwYzRkXHUwYzI4XHUwYzAyIj09PU1lP0U+PTEwP0U6RSsxMjoiXHUwYzM4XHUwYzNlXHUwYzJmXHUwYzAyXHUwYzI0XHUw''@;'; + put 'put ''YzRkXHUwYzMwXHUwYzAyIj09PU1lP0UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFPDQ/Ilx1MGMzMFx1MGMzZVx1MGMyNFx1MGM0ZFx1MGMzMFx1MGMzZiI6RTwxMD8iXHUwYzA5XHUwYzI2XHUwYzJmXHUwYzAyIjpFPDE3PyJcdTBjMmVcdTBjMjdcdTBj''@;'; + put 'put ''NGRcdTBjMmZcdTBjM2VcdTBjMzlcdTBjNGRcdTBjMjhcdTBjMDIiOkU8MjA/Ilx1MGMzOFx1MGMzZVx1MGMyZlx1MGMwMlx1MGMyNFx1MGM0ZFx1MGMzMFx1MGMwMiI6Ilx1MGMzMFx1MGMzZVx1MGMyNFx1MGM0ZFx1MGMzMFx1MGMzZiJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShMKDE1NDM5''@;'; + put 'put ''KSl9LDIxMTU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ0ZXQiLHttb250aHM6IkphbmVpcnVfRmV2ZXJlaXJ1X01hcnN1X0FicmlsX01haXVfSnVceGYxdV9KdWxsdV9BZ3VzdHVfU2V0ZW1icnVfT3V0dWJydV9Ob3ZlbWJy''@;'; + put 'put ''dV9EZXplbWJydSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0Zldl9NYXJfQWJyX01haV9KdW5fSnVsX0Fnb19TZXRfT3V0X05vdl9EZXoiLnNwbGl0KCJfIiksd2Vla2RheXM6IkRvbWluZ3VfU2VndW5kYV9UZXJzYV9LdWFydGFfS2ludGFfU2VzdGFfU2FiYWR1Ii5zcGxpdCgiXyIp''@;'; + put 'put ''LHdlZWtkYXlzU2hvcnQ6IkRvbV9TZWdfVGVyc19LdWFfS2ludF9TZXN0X1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiRG9fU2VnX1RlX0t1X0tpX1Nlc19TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixM''@;'; + put 'put ''TDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltPaGluIGloYV0gTFQiLG5leHREYXk6IltBYmFuIGloYV0gTFQiLG5leHRXZWVrOiJkZGRkIFtpaGFdIExUIixsYXN0RGF5OiJb''@;'; + put 'put ''SG9yaXNlaWsgaWhhXSBMVCIsbGFzdFdlZWs6ImRkZGQgW3NlbWFuYSBrb3R1a10gW2loYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImloYSAlcyIscGFzdDoiJXMgbGl1YmEiLHM6InNlZ3VuZHUgYmFsdW4iLHNzOiJzZWd1bmR1ICVkIixtOiJtaW51dHUgaWRh''@;'; + put 'put ''IixtbToibWludXR1ICVkIixoOiJvcmFzIGlkYSIsaGg6Im9yYXMgJWQiLGQ6Imxvcm9uIGlkYSIsZGQ6Imxvcm9uICVkIixNOiJmdWxhbiBpZGEiLE1NOiJmdWxhbiAlZCIseToidGluYW4gaWRhIix5eToidGluYW4gJWQifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5k''@;'; + put 'put ''fHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgTWU9RSUxMDtyZXR1cm4gRSsoMT09fn4oRSUxMDAvMTApPyJ0aCI6MT09PU1lPyJzdCI6Mj09PU1lPyJuZCI6Mz09PU1lPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDY5ODAxOmZ1bmN0aW9uKFhl''@;'; + put 'put ''LEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXswOiItXHUwNDQzXHUwNDNjIiwxOiItXHUwNDQzXHUwNDNjIiwyOiItXHUwNDRlXHUwNDNjIiwzOiItXHUwNDRlXHUwNDNjIiw0OiItXHUwNDQzXHUwNDNjIiw1OiItXHUwNDQzXHUwNDNjIiw2OiItXHUwNDQzXHUwNDNj''@;'; + put 'put ''Iiw3OiItXHUwNDQzXHUwNDNjIiw4OiItXHUwNDQzXHUwNDNjIiw5OiItXHUwNDQzXHUwNDNjIiwxMDoiLVx1MDQ0M1x1MDQzYyIsMTI6Ii1cdTA0NDNcdTA0M2MiLDEzOiItXHUwNDQzXHUwNDNjIiwyMDoiLVx1MDQ0M1x1MDQzYyIsMzA6Ii1cdTA0NGVcdTA0M2MiLDQwOiItXHUwNDQzXHUw''@;'; + put 'put ''NDNjIiw1MDoiLVx1MDQ0M1x1MDQzYyIsNjA6Ii1cdTA0NDNcdTA0M2MiLDcwOiItXHUwNDQzXHUwNDNjIiw4MDoiLVx1MDQ0M1x1MDQzYyIsOTA6Ii1cdTA0NDNcdTA0M2MiLDEwMDoiLVx1MDQ0M1x1MDQzYyJ9O21lLmRlZmluZUxvY2FsZSgidGciLHttb250aHM6e2Zvcm1hdDoiXHUwNDRm''@;'; + put 'put ''XHUwNDNkXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4X1x1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQzYlx1MDQzOF9cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhfXHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDNiXHUwNDM4X1x1MDQzY1x1MDQzMFx1MDQzOVx1MDQz''@;'; + put 'put ''OF9cdTA0MzhcdTA0NGVcdTA0M2RcdTA0MzhfXHUwNDM4XHUwNDRlXHUwNDNiXHUwNDM4X1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzOF9cdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBcdTA0MzhfXHUwNDNlXHUwNDNhXHUwNDQyXHUw''@;'; + put 'put ''NDRmXHUwNDMxXHUwNDQwXHUwNDM4X1x1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQzOF9cdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzBcdTA0MzFcdTA0NDBcdTA0MzgiLnNwbGl0KCJfIiksc3RhbmRhbG9uZToiXHUwNDRmXHUwNDNkXHUwNDMyXHUwNDMwXHUwNDQwX1x1MDQ0NFx1''@;'; + put 'put ''MDQzNVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQzYl9cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJfXHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0MzhcdTA0NGVcdTA0M2RfXHUwNDM4XHUwNDRlXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0''@;'; + put 'put ''M1x1MDQ0MVx1MDQ0Ml9cdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBfXHUwNDNlXHUwNDNhXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwX1x1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMVx1MDQ0MF9cdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzBcdTA0MzFcdTA0NDAiLnNw''@;'; + put 'put ''bGl0KCJfIil9LG1vbnRoc1Nob3J0OiJcdTA0NGZcdTA0M2RcdTA0MzJfXHUwNDQ0XHUwNDM1XHUwNDMyX1x1MDQzY1x1MDQzMFx1MDQ0MF9cdTA0MzBcdTA0M2ZcdTA0NDBfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZF9cdTA0MzhcdTA0NGVcdTA0M2JfXHUwNDMwXHUw''@;'; + put 'put ''NDMyXHUwNDMzX1x1MDQ0MVx1MDQzNVx1MDQzZF9cdTA0M2VcdTA0M2FcdTA0NDJfXHUwNDNkXHUwNDNlXHUwNDRmX1x1MDQzNFx1MDQzNVx1MDQzYSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNDRmXHUwNDNhXHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDM1X1x1MDQzNFx1MDQ0M1x1''@;'; + put 'put ''MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzNV9cdTA0NDFcdTA0MzVcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzVfXHUwNDQ3XHUwNDNlXHUwNDQwXHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDM1X1x1MDQzZlx1MDQzMFx1MDQzZFx1MDRiN1x1MDQ0OFx1MDQzMFx1MDQzZFx1''@;'; + put 'put ''MDQzMVx1MDQzNV9cdTA0YjdcdTA0NDNcdTA0M2NcdTA0NGFcdTA0MzBfXHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDM1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDQ0Zlx1MDQ0OFx1MDQzMV9cdTA0MzRcdTA0NDhcdTA0MzFfXHUwNDQxXHUwNDQ4XHUwNDMxX1x1MDQ0N1x1''@;'; + put 'put ''MDQ0OFx1MDQzMV9cdTA0M2ZcdTA0NDhcdTA0MzFfXHUwNGI3XHUwNDQzXHUwNDNjX1x1MDQ0OFx1MDQzZFx1MDQzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDRmXHUwNDQ4X1x1MDQzNFx1MDQ0OF9cdTA0NDFcdTA0NDhfXHUwNDQ3XHUwNDQ4X1x1MDQzZlx1MDQ0OF9cdTA0Yjdc''@;'; + put 'put ''dTA0M2NfXHUwNDQ4XHUwNDMxIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxl''@;'; + put 'put ''bmRhcjp7c2FtZURheToiW1x1MDQxOFx1MDQzY1x1MDQ0MFx1MDRlZlx1MDQzNyBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDJcdTA0MzhdIExUIixuZXh0RGF5OiJbXHUwNDI0XHUwNDMwXHUwNDQwXHUwNDM0XHUwNDNlIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Mlx1MDQzOF0gTFQiLGxhc3RE''@;'; + put 'put ''YXk6IltcdTA0MTRcdTA0MzhcdTA0NDBcdTA0ZWZcdTA0MzcgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyXHUwNDM4XSBMVCIsbmV4dFdlZWs6ImRkZGRbXHUwNDM4XSBbXHUwNGIzXHUwNDMwXHUwNDQ0XHUwNDQyXHUwNDMwXHUwNDM4IFx1MDQzZVx1MDQ0Zlx1MDQzZFx1MDQzNFx1MDQzMCBc''@;'; + put 'put ''dTA0NDFcdTA0M2VcdTA0MzBcdTA0NDJcdTA0MzhdIExUIixsYXN0V2VlazoiZGRkZFtcdTA0MzhdIFtcdTA0YjNcdTA0MzBcdTA0NDRcdTA0NDJcdTA0MzBcdTA0MzggXHUwNDMzXHUwNDQzXHUwNDM3XHUwNDMwXHUwNDQ4XHUwNDQyXHUwNDMwIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Mlx1''@;'; + put 'put ''MDQzOF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDQzMVx1MDQzMFx1MDQ0YVx1MDQzNFx1MDQzOCAlcyIscGFzdDoiJXMgXHUwNDNmXHUwNDM1XHUwNDQ4IixzOiJcdTA0NGZcdTA0M2FcdTA0NDdcdTA0MzBcdTA0M2RcdTA0MzQgXHUwNDQxXHUwNDNlXHUw''@;'; + put 'put ''NDNkXHUwNDM4XHUwNDRmIixtOiJcdTA0NGZcdTA0M2EgXHUwNDM0XHUwNDMwXHUwNDliXHUwNDM4XHUwNDliXHUwNDMwIixtbToiJWQgXHUwNDM0XHUwNDMwXHUwNDliXHUwNDM4XHUwNDliXHUwNDMwIixoOiJcdTA0NGZcdTA0M2EgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyIixoaDoiJWQg''@;'; + put 'put ''XHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyIixkOiJcdTA0NGZcdTA0M2EgXHUwNDQwXHUwNGVmXHUwNDM3IixkZDoiJWQgXHUwNDQwXHUwNGVmXHUwNDM3IixNOiJcdTA0NGZcdTA0M2EgXHUwNDNjXHUwNDNlXHUwNGIzIixNTToiJWQgXHUwNDNjXHUwNDNlXHUwNGIzIix5OiJcdTA0NGZcdTA0''@;'; + put 'put ''M2EgXHUwNDQxXHUwNDNlXHUwNDNiIix5eToiJWQgXHUwNDQxXHUwNDNlXHUwNDNiIn0sbWVyaWRpZW1QYXJzZTovXHUwNDQ4XHUwNDMwXHUwNDMxfFx1MDQ0MVx1MDQ0M1x1MDQzMVx1MDRiM3xcdTA0NDBcdTA0ZWZcdTA0Mzd8XHUwNDMxXHUwNDM1XHUwNDMzXHUwNDNlXHUwNGIzLyxtZXJp''@;'; + put 'put ''ZGllbUhvdXI6ZnVuY3Rpb24oTWUsVSl7cmV0dXJuIDEyPT09TWUmJihNZT0wKSwiXHUwNDQ4XHUwNDMwXHUwNDMxIj09PVU/TWU8ND9NZTpNZSsxMjoiXHUwNDQxXHUwNDQzXHUwNDMxXHUwNGIzIj09PVU/TWU6Ilx1MDQ0MFx1MDRlZlx1MDQzNyI9PT1VP01lPj0xMT9NZTpNZSsxMjoiXHUw''@;'; + put 'put ''NDMxXHUwNDM1XHUwNDMzXHUwNDNlXHUwNGIzIj09PVU/TWUrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihNZSxVLFEpe3JldHVybiBNZTw0PyJcdTA0NDhcdTA0MzBcdTA0MzEiOk1lPDExPyJcdTA0NDFcdTA0NDNcdTA0MzFcdTA0YjMiOk1lPDE2PyJcdTA0NDBcdTA0ZWZcdTA0Mzci''@;'; + put 'put ''Ok1lPDE5PyJcdTA0MzFcdTA0MzVcdTA0MzNcdTA0M2VcdTA0YjMiOiJcdTA0NDhcdTA0MzBcdTA0MzEifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0NDNcdTA0M2N8XHUwNDRlXHUwNDNjKS8sb3JkaW5hbDpmdW5jdGlvbihNZSl7cmV0dXJuIE1lKyhCW01lXXx8QltN''@;'; + put 'put ''ZSUxMF18fEJbTWU+PTEwMD8xMDA6bnVsbF0pfSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSwyODY4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgidGgiLHttb250aHM6Ilx1MGUyMVx1MGUwMVx1MGUyM1x1MGUz''@;'; + put 'put ''Mlx1MGUwNFx1MGUyMV9cdTBlMDFcdTBlMzhcdTBlMjFcdTBlMjBcdTBlMzJcdTBlMWVcdTBlMzFcdTBlMTlcdTBlMThcdTBlNGNfXHUwZTIxXHUwZTM1XHUwZTE5XHUwZTMyXHUwZTA0XHUwZTIxX1x1MGU0MFx1MGUyMVx1MGUyOVx1MGUzMlx1MGUyMlx1MGUxOV9cdTBlMWVcdTBlMjRcdTBl''@;'; + put 'put ''MjlcdTBlMjBcdTBlMzJcdTBlMDRcdTBlMjFfXHUwZTIxXHUwZTM0XHUwZTE2XHUwZTM4XHUwZTE5XHUwZTMyXHUwZTIyXHUwZTE5X1x1MGUwMVx1MGUyM1x1MGUwMVx1MGUwZVx1MGUzMlx1MGUwNFx1MGUyMV9cdTBlMmFcdTBlMzRcdTBlMDdcdTBlMmJcdTBlMzJcdTBlMDRcdTBlMjFfXHUw''@;'; + put 'put ''ZTAxXHUwZTMxXHUwZTE5XHUwZTIyXHUwZTMyXHUwZTIyXHUwZTE5X1x1MGUxNVx1MGUzOFx1MGUyNVx1MGUzMlx1MGUwNFx1MGUyMV9cdTBlMWVcdTBlMjRcdTBlMjhcdTBlMDhcdTBlMzRcdTBlMDFcdTBlMzJcdTBlMjJcdTBlMTlfXHUwZTE4XHUwZTMxXHUwZTE5XHUwZTI3XHUwZTMyXHUw''@;'; + put 'put ''ZTA0XHUwZTIxIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBlMjEuXHUwZTA0Ll9cdTBlMDEuXHUwZTFlLl9cdTBlMjFcdTBlMzUuXHUwZTA0Ll9cdTBlNDBcdTBlMjEuXHUwZTIyLl9cdTBlMWUuXHUwZTA0Ll9cdTBlMjFcdTBlMzQuXHUwZTIyLl9cdTBlMDEuXHUwZTA0Ll9cdTBlMmEu''@;'; + put 'put ''XHUwZTA0Ll9cdTBlMDEuXHUwZTIyLl9cdTBlMTUuXHUwZTA0Ll9cdTBlMWUuXHUwZTIyLl9cdTBlMTguXHUwZTA0LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTBlMmRcdTBlMzJcdTBlMTdcdTBlMzRcdTBlMTVcdTBlMjJcdTBlNGNfXHUwZTA4XHUwZTMx''@;'; + put 'put ''XHUwZTE5XHUwZTE3XHUwZTIzXHUwZTRjX1x1MGUyZFx1MGUzMVx1MGUwN1x1MGUwNFx1MGUzMlx1MGUyM19cdTBlMWVcdTBlMzhcdTBlMThfXHUwZTFlXHUwZTI0XHUwZTJiXHUwZTMxXHUwZTJhXHUwZTFhXHUwZTE0XHUwZTM1X1x1MGUyOFx1MGUzOFx1MGUwMVx1MGUyM1x1MGU0Y19cdTBl''@;'; + put 'put ''NDBcdTBlMmFcdTBlMzJcdTBlMjNcdTBlNGMiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwZTJkXHUwZTMyXHUwZTE3XHUwZTM0XHUwZTE1XHUwZTIyXHUwZTRjX1x1MGUwOFx1MGUzMVx1MGUxOVx1MGUxN1x1MGUyM1x1MGU0Y19cdTBlMmRcdTBlMzFcdTBlMDdcdTBlMDRcdTBlMzJc''@;'; + put 'put ''dTBlMjNfXHUwZTFlXHUwZTM4XHUwZTE4X1x1MGUxZVx1MGUyNFx1MGUyYlx1MGUzMVx1MGUyYV9cdTBlMjhcdTBlMzhcdTBlMDFcdTBlMjNcdTBlNGNfXHUwZTQwXHUwZTJhXHUwZTMyXHUwZTIzXHUwZTRjIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBlMmRcdTBlMzIuX1x1MGUwOC5f''@;'; + put 'put ''XHUwZTJkLl9cdTBlMWUuX1x1MGUxZVx1MGUyNC5fXHUwZTI4Ll9cdTBlMmEuIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZ''@;'; + put 'put ''WVlZIFx1MGU0MFx1MGUyN1x1MGUyNVx1MGUzMiBIOm1tIixMTExMOiJcdTBlMjdcdTBlMzFcdTBlMTlkZGRkXHUwZTE3XHUwZTM1XHUwZTQ4IEQgTU1NTSBZWVlZIFx1MGU0MFx1MGUyN1x1MGUyNVx1MGUzMiBIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwZTAxXHUwZTQ4XHUwZTJkXHUwZTE5''@;'; + put 'put ''XHUwZTQwXHUwZTE3XHUwZTM1XHUwZTQ4XHUwZTIyXHUwZTA3fFx1MGUyYlx1MGUyNVx1MGUzMVx1MGUwN1x1MGU0MFx1MGUxN1x1MGUzNVx1MGU0OFx1MGUyMlx1MGUwNy8saXNQTTpmdW5jdGlvbihFKXtyZXR1cm4iXHUwZTJiXHUwZTI1XHUwZTMxXHUwZTA3XHUwZTQwXHUwZTE3XHUwZTM1''@;'; + put 'put ''XHUwZTQ4XHUwZTIyXHUwZTA3Ij09PUV9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIEU8MTI/Ilx1MGUwMVx1MGU0OFx1MGUyZFx1MGUxOVx1MGU0MFx1MGUxN1x1MGUzNVx1MGU0OFx1MGUyMlx1MGUwNyI6Ilx1MGUyYlx1MGUyNVx1MGUzMVx1MGUwN1x1MGU0MFx1MGUxN1x1''@;'; + put 'put ''MGUzNVx1MGU0OFx1MGUyMlx1MGUwNyJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwZTI3XHUwZTMxXHUwZTE5XHUwZTE5XHUwZTM1XHUwZTQ5IFx1MGU0MFx1MGUyN1x1MGUyNVx1MGUzMl0gTFQiLG5leHREYXk6IltcdTBlMWVcdTBlMjNcdTBlMzhcdTBlNDhcdTBlMDdcdTBlMTlcdTBlMzVc''@;'; + put 'put ''dTBlNDkgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMyXSBMVCIsbmV4dFdlZWs6ImRkZGRbXHUwZTJiXHUwZTE5XHUwZTQ5XHUwZTMyIFx1MGU0MFx1MGUyN1x1MGUyNVx1MGUzMl0gTFQiLGxhc3REYXk6IltcdTBlNDBcdTBlMjFcdTBlMzdcdTBlNDhcdTBlMmRcdTBlMjdcdTBlMzJcdTBlMTlc''@;'; + put 'put ''dTBlMTlcdTBlMzVcdTBlNDkgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMyXSBMVCIsbGFzdFdlZWs6IltcdTBlMjdcdTBlMzFcdTBlMTldZGRkZFtcdTBlMTdcdTBlMzVcdTBlNDhcdTBlNDFcdTBlMjVcdTBlNDlcdTBlMjcgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMyXSBMVCIsc2FtZUVsc2U6''@;'; + put 'put ''IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwZTJkXHUwZTM1XHUwZTAxICVzIixwYXN0OiIlc1x1MGUxN1x1MGUzNVx1MGU0OFx1MGU0MVx1MGUyNVx1MGU0OVx1MGUyNyIsczoiXHUwZTQ0XHUwZTIxXHUwZTQ4XHUwZTAxXHUwZTM1XHUwZTQ4XHUwZTI3XHUwZTM0XHUwZTE5XHUwZTMy''@;'; + put 'put ''XHUwZTE3XHUwZTM1IixzczoiJWQgXHUwZTI3XHUwZTM0XHUwZTE5XHUwZTMyXHUwZTE3XHUwZTM1IixtOiIxIFx1MGUxOVx1MGUzMlx1MGUxN1x1MGUzNSIsbW06IiVkIFx1MGUxOVx1MGUzMlx1MGUxN1x1MGUzNSIsaDoiMSBcdTBlMGFcdTBlMzFcdTBlNDhcdTBlMjdcdTBlNDJcdTBlMjFc''@;'; + put 'put ''dTBlMDciLGhoOiIlZCBcdTBlMGFcdTBlMzFcdTBlNDhcdTBlMjdcdTBlNDJcdTBlMjFcdTBlMDciLGQ6IjEgXHUwZTI3XHUwZTMxXHUwZTE5IixkZDoiJWQgXHUwZTI3XHUwZTMxXHUwZTE5Iix3OiIxIFx1MGUyYVx1MGUzMVx1MGUxYlx1MGUxNFx1MGUzMlx1MGUyYlx1MGU0YyIsd3c6IiVk''@;'; + put 'put ''IFx1MGUyYVx1MGUzMVx1MGUxYlx1MGUxNFx1MGUzMlx1MGUyYlx1MGU0YyIsTToiMSBcdTBlNDBcdTBlMTRcdTBlMzdcdTBlMmRcdTBlMTkiLE1NOiIlZCBcdTBlNDBcdTBlMTRcdTBlMzdcdTBlMmRcdTBlMTkiLHk6IjEgXHUwZTFiXHUwZTM1Iix5eToiJWQgXHUwZTFiXHUwZTM1In19KX0o''@;'; + put 'put ''TCgxNTQzOSkpfSwzMTMxMDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiJ2luamkiLDU6IidpbmppIiw4OiInaW5qaSIsNzA6IidpbmppIiw4MDoiJ2luamkiLDI6IiduamkiLDc6IiduamkiLDIwOiInbmppIiw1MDoiJ25qaSIsMzoiJ1x4''@;'; + put 'put ''ZmNuamkiLDQ6IidceGZjbmppIiwxMDA6IidceGZjbmppIiw2OiInbmp5Iiw5OiIndW5qeSIsMTA6Iid1bmp5IiwzMDoiJ3VuankiLDYwOiIneW5qeSIsOTA6Iid5bmp5In07bWUuZGVmaW5lTG9jYWxlKCJ0ayIse21vbnRoczoiXHhkZGFud2FyX0Zld3JhbF9NYXJ0X0FwcmVsX01hXHhmZF9J''@;'; + put 'put ''XHhmZHVuX0lceGZkdWxfQXdndXN0X1NlbnRceGZkYWJyX09rdFx4ZmRhYnJfTm9ceGZkYWJyX0Rla2FiciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHhkZGFuX0Zld19NYXJfQXByX01hXHhmZF9JXHhmZG5fSVx4ZmRsX0F3Z19TZW5fT2t0X05vXHhmZF9EZWsiLnNwbGl0KCJfIiksd2Vl''@;'; + put 'put ''a2RheXM6Ilx4ZGRla1x1MDE1ZmVuYmVfRHVcdTAxNWZlbmJlX1NpXHUwMTVmZW5iZV9ceGM3YXJcdTAxNWZlbmJlX1Blblx1MDE1ZmVuYmVfQW5uYV9cdTAxNWVlbmJlIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx4ZGRla19EdVx1MDE1Zl9TaVx1MDE1Zl9ceGM3YXJfUGVuX0Fubl9c''@;'; + put 'put ''dTAxNWVlbiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHhkZGtfRFx1MDE1Zl9TXHUwMTVmX1x4YzdyX1BuX0FuX1x1MDE1ZW4iLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6''@;'; + put 'put ''IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbYnVnXHhmY24gc2FnYXRdIExUIixuZXh0RGF5OiJbZXJ0aXIgc2FnYXRdIExUIixuZXh0V2VlazoiW2luZGlraV0gZGRkZCBbc2FnYXRdIExUIixsYXN0RGF5OiJb''@;'; + put 'put ''ZFx4ZmNceGZkbl0gTFQiLGxhc3RXZWVrOiJbZ2VceGU3ZW5dIGRkZGQgW3NhZ2F0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgc29cdTAxNDgiLHBhc3Q6IiVzIFx4ZjZcdTAxNDgiLHM6ImJpcm5ceGU0XHhlN2Ugc2VrdW50IixtOiJiaXIgbWludXQiLG1t''@;'; + put 'put ''OiIlZCBtaW51dCIsaDoiYmlyIHNhZ2F0IixoaDoiJWQgc2FnYXQiLGQ6ImJpciBnXHhmY24iLGRkOiIlZCBnXHhmY24iLE06ImJpciBhXHhmZCIsTU06IiVkIGFceGZkIix5OiJiaXIgXHhmZHlsIix5eToiJWQgXHhmZHlsIn0sb3JkaW5hbDpmdW5jdGlvbihNZSxVKXtzd2l0Y2goVSl7Y2Fz''@;'; + put 'put ''ZSJkIjpjYXNlIkQiOmNhc2UiRG8iOmNhc2UiREQiOnJldHVybiBNZTtkZWZhdWx0OmlmKDA9PT1NZSlyZXR1cm4gTWUrIid1bmp5Ijt2YXIgUT1NZSUxMDtyZXR1cm4gTWUrKEJbUV18fEJbTWUlMTAwLVFdfHxCW01lPj0xMDA/MTAwOm51bGxdKX19LHdlZWs6e2RvdzoxLGRveTo3fX0pfShM''@;'; + put 'put ''KDE1NDM5KSl9LDIyMzYwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgidGwtcGgiLHttb250aHM6IkVuZXJvX1BlYnJlcm9fTWFyc29fQWJyaWxfTWF5b19IdW55b19IdWx5b19BZ29zdG9fU2V0eWVtYnJlX09rdHVicmVfTm9i''@;'; + put 'put ''eWVtYnJlX0Rpc3llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiRW5lX1BlYl9NYXJfQWJyX01heV9IdW5fSHVsX0Fnb19TZXRfT2t0X05vYl9EaXMiLnNwbGl0KCJfIiksd2Vla2RheXM6Ikxpbmdnb19MdW5lc19NYXJ0ZXNfTWl5ZXJrdWxlc19IdXdlYmVzX0JpeWVybmVzX1NhYmFk''@;'; + put 'put ''byIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJMaW5fTHVuX01hcl9NaXlfSHV3X0JpeV9TYWIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkxpX0x1X01hX01pX0h1X0JpX1NhYiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJNTS9E''@;'; + put 'put ''L1lZWVkiLExMOiJNTU1NIEQsIFlZWVkiLExMTDoiTU1NTSBELCBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBNTU1NIERELCBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IkxUIFtuZ2F5b25nIGFyYXddIixuZXh0RGF5OiJbQnVrYXMgbmddIExUIixuZXh0V2VlazoiTFQgW3NhIHN1''@;'; + put 'put ''c3Vub2QgbmFdIGRkZGQiLGxhc3REYXk6IkxUIFtrYWhhcG9uXSIsbGFzdFdlZWs6IkxUIFtub29uZyBuYWthcmFhbmddIGRkZGQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InNhIGxvb2IgbmcgJXMiLHBhc3Q6IiVzIGFuZyBuYWthbGlwYXMiLHM6ImlsYW5nIHNlZ3Vu''@;'; + put 'put ''ZG8iLHNzOiIlZCBzZWd1bmRvIixtOiJpc2FuZyBtaW51dG8iLG1tOiIlZCBtaW51dG8iLGg6ImlzYW5nIG9yYXMiLGhoOiIlZCBvcmFzIixkOiJpc2FuZyBhcmF3IixkZDoiJWQgYXJhdyIsTToiaXNhbmcgYnV3YW4iLE1NOiIlZCBidXdhbiIseToiaXNhbmcgdGFvbiIseXk6IiVkIHRhb24i''@;'; + put 'put ''fSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3JldHVybiBFfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw2NjY0NTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0icGFnaF93YVx1''@;'; + put 'put ''MjAxOV9jaGFcdTIwMTlfd2VqX2xvU192YWdoX2phdl9Tb2NoX2Nob3JnaF9IdXQiLnNwbGl0KCJfIik7ZnVuY3Rpb24gVShpZSxsZSxZLFcpe3ZhciBOPWZ1bmN0aW9uIFEoaWUpe3ZhciBsZT1NYXRoLmZsb29yKGllJTFlMy8xMDApLFk9TWF0aC5mbG9vcihpZSUxMDAvMTApLFc9aWUlMTAs''@;'; + put 'put ''Tj0iIjtyZXR1cm4gbGU+MCYmKE4rPUJbbGVdKyJ2YXRsaCIpLFk+MCYmKE4rPSgiIiE9PU4/IiAiOiIiKStCW1ldKyJtYUgiKSxXPjAmJihOKz0oIiIhPT1OPyIgIjoiIikrQltXXSksIiI9PT1OPyJwYWdoIjpOfShpZSk7c3dpdGNoKFkpe2Nhc2Uic3MiOnJldHVybiBOKyIgbHVwIjtjYXNl''@;'; + put 'put ''Im1tIjpyZXR1cm4gTisiIHR1cCI7Y2FzZSJoaCI6cmV0dXJuIE4rIiByZXAiO2Nhc2UiZGQiOnJldHVybiBOKyIgamFqIjtjYXNlIk1NIjpyZXR1cm4gTisiIGphciI7Y2FzZSJ5eSI6cmV0dXJuIE4rIiBESVMifX1tZS5kZWZpbmVMb2NhbGUoInRsaCIse21vbnRoczoidGVyYVx1MjAxOSBq''@;'; + put 'put ''YXIgd2FcdTIwMTlfdGVyYVx1MjAxOSBqYXIgY2hhXHUyMDE5X3RlcmFcdTIwMTkgamFyIHdlal90ZXJhXHUyMDE5IGphciBsb1NfdGVyYVx1MjAxOSBqYXIgdmFnaF90ZXJhXHUyMDE5IGphciBqYXZfdGVyYVx1MjAxOSBqYXIgU29jaF90ZXJhXHUyMDE5IGphciBjaG9yZ2hfdGVyYVx1MjAx''@;'; + put 'put ''OSBqYXIgSHV0X3RlcmFcdTIwMTkgamFyIHdhXHUyMDE5bWFIX3RlcmFcdTIwMTkgamFyIHdhXHUyMDE5bWFIIHdhXHUyMDE5X3RlcmFcdTIwMTkgamFyIHdhXHUyMDE5bWFIIGNoYVx1MjAxOSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFyIHdhXHUyMDE5X2phciBjaGFcdTIwMTlfamFy''@;'; + put 'put ''IHdlal9qYXIgbG9TX2phciB2YWdoX2phciBqYXZfamFyIFNvY2hfamFyIGNob3JnaF9qYXIgSHV0X2phciB3YVx1MjAxOW1hSF9qYXIgd2FcdTIwMTltYUggd2FcdTIwMTlfamFyIHdhXHUyMDE5bWFIIGNoYVx1MjAxOSIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlz''@;'; + put 'put ''OiJsb2ptSXRqYWpfRGFTamFqX3Bvdmphal9naEl0bGhqYWpfbG9naGphal9idXFqYWpfZ2hJbmphaiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJsb2ptSXRqYWpfRGFTamFqX3Bvdmphal9naEl0bGhqYWpfbG9naGphal9idXFqYWpfZ2hJbmphaiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01p''@;'; + put 'put ''bjoibG9qbUl0amFqX0RhU2phal9wb3ZqYWpfZ2hJdGxoamFqX2xvZ2hqYWpfYnVxamFqX2doSW5qYWoiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhI''@;'; + put 'put ''Om1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbRGFIamFqXSBMVCIsbmV4dERheToiW3dhXHUyMDE5bGVTXSBMVCIsbmV4dFdlZWs6IkxMTCIsbGFzdERheToiW3dhXHUyMDE5SHVcdTIwMTldIExUIixsYXN0V2VlazoiTExMIixzYW1lRWxz''@;'; + put 'put ''ZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOmZ1bmN0aW9uIEUoaWUpe3ZhciBsZT1pZTtyZXR1cm4tMSE9PWllLmluZGV4T2YoImphaiIpP2xlLnNsaWNlKDAsLTMpKyJsZVMiOi0xIT09aWUuaW5kZXhPZigiamFyIik/bGUuc2xpY2UoMCwtMykrIndhUSI6LTEhPT1pZS5pbmRleE9mKCJE''@;'; + put 'put ''SVMiKT9sZS5zbGljZSgwLC0zKSsibmVtIjpsZSsiIHBJcSJ9LHBhc3Q6ZnVuY3Rpb24gTWUoaWUpe3ZhciBsZT1pZTtyZXR1cm4tMSE9PWllLmluZGV4T2YoImphaiIpP2xlLnNsaWNlKDAsLTMpKyJIdVx1MjAxOSI6LTEhPT1pZS5pbmRleE9mKCJqYXIiKT9sZS5zbGljZSgwLC0zKSsid2Vu''@;'; + put 'put ''IjotMSE9PWllLmluZGV4T2YoIkRJUyIpP2xlLnNsaWNlKDAsLTMpKyJiZW4iOmxlKyIgcmV0In0sczoicHVTIGx1cCIsc3M6VSxtOiJ3YVx1MjAxOSB0dXAiLG1tOlUsaDoid2FcdTIwMTkgcmVwIixoaDpVLGQ6IndhXHUyMDE5IGphaiIsZGQ6VSxNOiJ3YVx1MjAxOSBqYXIiLE1NOlUseToi''@;'; + put 'put ''d2FcdTIwMTkgRElTIix5eTpVfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sOTgzNzQ6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Iidp''@;'; + put 'put ''bmNpIiw1OiInaW5jaSIsODoiJ2luY2kiLDcwOiInaW5jaSIsODA6IidpbmNpIiwyOiInbmNpIiw3OiInbmNpIiwyMDoiJ25jaSIsNTA6IiduY2kiLDM6IidceGZjbmNceGZjIiw0OiInXHhmY25jXHhmYyIsMTAwOiInXHhmY25jXHhmYyIsNjoiJ25jXHUwMTMxIiw5OiIndW5jdSIsMTA6Iid1''@;'; + put 'put ''bmN1IiwzMDoiJ3VuY3UiLDYwOiInXHUwMTMxbmNcdTAxMzEiLDkwOiInXHUwMTMxbmNcdTAxMzEifTttZS5kZWZpbmVMb2NhbGUoInRyIix7bW9udGhzOiJPY2FrX1x1MDE1ZXViYXRfTWFydF9OaXNhbl9NYXlcdTAxMzFzX0hhemlyYW5fVGVtbXV6X0FcdTAxMWZ1c3Rvc19FeWxceGZjbF9F''@;'; + put 'put ''a2ltX0thc1x1MDEzMW1fQXJhbFx1MDEzMWsiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ik9jYV9cdTAxNWV1Yl9NYXJfTmlzX01heV9IYXpfVGVtX0FcdTAxMWZ1X0V5bF9Fa2lfS2FzX0FyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiUGF6YXJfUGF6YXJ0ZXNpX1NhbFx1MDEzMV9ceGM3YXJc''@;'; + put 'put ''dTAxNWZhbWJhX1Blclx1MDE1ZmVtYmVfQ3VtYV9DdW1hcnRlc2kiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiUGF6X1B6dF9TYWxfXHhjN2FyX1Blcl9DdW1fQ210Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJQel9QdF9TYV9ceGM3YV9QZV9DdV9DdCIuc3BsaXQoIl8iKSxtZXJpZGll''@;'; + put 'put ''bTpmdW5jdGlvbihNZSxVLFEpe3JldHVybiBNZTwxMj9RPyJceGY2XHhmNiI6Ilx4ZDZceGQ2IjpRPyJceGY2cyI6Ilx4ZDZTIn0sbWVyaWRpZW1QYXJzZTovXHhmNlx4ZjZ8XHhkNlx4ZDZ8XHhmNnN8XHhkNlMvLGlzUE06ZnVuY3Rpb24oTWUpe3JldHVybiJceGY2cyI9PT1NZXx8Ilx4ZDZT''@;'; + put 'put ''Ij09PU1lfSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltidWdceGZj''@;'; + put 'put ''biBzYWF0XSBMVCIsbmV4dERheToiW3lhclx1MDEzMW4gc2FhdF0gTFQiLG5leHRXZWVrOiJbZ2VsZWNla10gZGRkZCBbc2FhdF0gTFQiLGxhc3REYXk6IltkXHhmY25dIExUIixsYXN0V2VlazoiW2dlXHhlN2VuXSBkZGRkIFtzYWF0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6''@;'; + put 'put ''e2Z1dHVyZToiJXMgc29ucmEiLHBhc3Q6IiVzIFx4ZjZuY2UiLHM6ImJpcmthXHhlNyBzYW5peWUiLHNzOiIlZCBzYW5peWUiLG06ImJpciBkYWtpa2EiLG1tOiIlZCBkYWtpa2EiLGg6ImJpciBzYWF0IixoaDoiJWQgc2FhdCIsZDoiYmlyIGdceGZjbiIsZGQ6IiVkIGdceGZjbiIsdzoiYmly''@;'; + put 'put ''IGhhZnRhIix3dzoiJWQgaGFmdGEiLE06ImJpciBheSIsTU06IiVkIGF5Iix5OiJiaXIgeVx1MDEzMWwiLHl5OiIlZCB5XHUwMTMxbCJ9LG9yZGluYWw6ZnVuY3Rpb24oTWUsVSl7c3dpdGNoKFUpe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRvIjpjYXNlIkREIjpyZXR1cm4gTWU7ZGVmYXVsdDpp''@;'; + put 'put ''ZigwPT09TWUpcmV0dXJuIE1lKyInXHUwMTMxbmNcdTAxMzEiO3ZhciBRPU1lJTEwO3JldHVybiBNZSsoQltRXXx8QltNZSUxMDAtUV18fEJbTWU+PTEwMD8xMDA6bnVsbF0pfX0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMjU2OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlv''@;'; + put 'put ''bihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEUoTWUsVSxRLFope3ZhciBpZT17czpbInZpZW5zYXMgc2VjdW5kcyIsIidpZW5zYXMgc2VjdW5kcyJdLHNzOltNZSsiIHNlY3VuZHMiLE1lKyIgc2VjdW5kcyJdLG06WyInbiBtXHhlZHV0IiwiJ2llbnMgbVx4ZWR1dCJdLG1tOltNZSsiIG1c''@;'; + put 'put ''eGVkdXRzIixNZSsiIG1ceGVkdXRzIl0saDpbIiduIFx4ZmVvcmEiLCInaWVuc2EgXHhmZW9yYSJdLGhoOltNZSsiIFx4ZmVvcmFzIixNZSsiIFx4ZmVvcmFzIl0sZDpbIiduIHppdWEiLCInaWVuc2Egeml1YSJdLGRkOltNZSsiIHppdWFzIixNZSsiIHppdWFzIl0sTTpbIiduIG1lcyIsIidp''@;'; + put 'put ''ZW5zIG1lcyJdLE1NOltNZSsiIG1lc2VuIixNZSsiIG1lc2VuIl0seTpbIiduIGFyIiwiJ2llbnMgYXIiXSx5eTpbTWUrIiBhcnMiLE1lKyIgYXJzIl19O3JldHVybiBafHxVP2llW1FdWzBdOmllW1FdWzFdfW1lLmRlZmluZUxvY2FsZSgidHpsIix7bW9udGhzOiJKYW51YXJfRmV2cmFnbGhf''@;'; + put 'put ''TWFyXHhlN19BdnJceGVmdV9NYWlfR1x4ZmNuX0p1bGlhX0d1c2NodF9TZXRlbXZhcl9MaXN0b3BceGU0dHNfTm9lbXZhcl9aZWNlbXZhciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0Zldl9NYXJfQXZyX01haV9HXHhmY25fSnVsX0d1c19TZXRfTGlzX05vZV9aZWMiLnNwbGl0KCJf''@;'; + put 'put ''Iiksd2Vla2RheXM6IlNceGZhbGFkaV9MXHhmYW5lXHhlN2lfTWFpdHppX01ceGUxcmN1cmlfWGhceGZhYWRpX1ZpXHhlOW5lclx4ZTdpX1NceGUxdHVyaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTXHhmYWxfTFx4ZmFuX01haV9NXHhlMXJfWGhceGZhX1ZpXHhlOV9TXHhlMXQiLnNw''@;'; + put 'put ''bGl0KCJfIiksd2Vla2RheXNNaW46IlNceGZhX0xceGZhX01hX01ceGUxX1hoX1ZpX1NceGUxIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEgubW0iLExUUzoiSEgubW0uc3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFtkYWxsYXNdIFlZWVkiLExMTDoiRC4gTU1NTSBb''@;'; + put 'put ''ZGFsbGFzXSBZWVlZIEhILm1tIixMTExMOiJkZGRkLCBbbGldIEQuIE1NTU0gW2RhbGxhc10gWVlZWSBISC5tbSJ9LG1lcmlkaWVtUGFyc2U6L2RcJ298ZFwnYS9pLGlzUE06ZnVuY3Rpb24oTWUpe3JldHVybiJkJ28iPT09TWUudG9Mb3dlckNhc2UoKX0sbWVyaWRpZW06ZnVuY3Rpb24oTWUs''@;'; + put 'put ''VSxRKXtyZXR1cm4gTWU+MTE/UT8iZCdvIjoiRCdPIjpRPyJkJ2EiOiJEJ0EifSxjYWxlbmRhcjp7c2FtZURheToiW294aGkgXHhlMF0gTFQiLG5leHREYXk6IltkZW1ceGUwIFx4ZTBdIExUIixuZXh0V2VlazoiZGRkZCBbXHhlMF0gTFQiLGxhc3REYXk6IltpZWlyaSBceGUwXSBMVCIsbGFz''@;'; + put 'put ''dFdlZWs6IltzXHhmY3IgZWxdIGRkZGQgW2xhc3RldSBceGUwXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToib3NwcmVpICVzIixwYXN0OiJqYSVzIixzOkUsc3M6RSxtOkUsbW06RSxoOkUsaGg6RSxkOkUsZGQ6RSxNOkUsTU06RSx5OkUseXk6RX0sZGF5T2ZNb250''@;'; + put 'put ''aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDYxNjMxOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgidHptLWxhdG4iLHttb250aHM6ImlubmF5''@;'; + put 'put ''cl9iclx1MDJlNGF5clx1MDJlNF9tYXJcdTAyZTRzXHUwMmU0X2licmlyX21heXl3X3l3bnl3X3l3bHl3el9cdTAyNjN3XHUwMTYxdF9cdTAxNjF3dGFuYmlyX2t0XHUwMmU0d2JyXHUwMmU0X253d2FuYmlyX2R3am5iaXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ImlubmF5cl9iclx1MDJl''@;'; + put 'put ''NGF5clx1MDJlNF9tYXJcdTAyZTRzXHUwMmU0X2licmlyX21heXl3X3l3bnl3X3l3bHl3el9cdTAyNjN3XHUwMTYxdF9cdTAxNjF3dGFuYmlyX2t0XHUwMmU0d2JyXHUwMmU0X253d2FuYmlyX2R3am5iaXIiLnNwbGl0KCJfIiksd2Vla2RheXM6ImFzYW1hc19heW5hc19hc2luYXNfYWtyYXNf''@;'; + put 'put ''YWt3YXNfYXNpbXdhc19hc2lcdTFlMGR5YXMiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiYXNhbWFzX2F5bmFzX2FzaW5hc19ha3Jhc19ha3dhc19hc2ltd2FzX2FzaVx1MWUwZHlhcyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiYXNhbWFzX2F5bmFzX2FzaW5hc19ha3Jhc19ha3dhc19h''@;'; + put 'put ''c2ltd2FzX2FzaVx1MWUwZHlhcyIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxl''@;'; + put 'put ''bmRhcjp7c2FtZURheToiW2FzZGtoIGddIExUIixuZXh0RGF5OiJbYXNrYSBnXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2ddIExUIixsYXN0RGF5OiJbYXNzYW50IGddIExUIixsYXN0V2VlazoiZGRkZCBbZ10gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImRhZGtoIHMg''@;'; + put 'put ''eWFuICVzIixwYXN0OiJ5YW4gJXMiLHM6ImltaWsiLHNzOiIlZCBpbWlrIixtOiJtaW51XHUxZTBkIixtbToiJWQgbWludVx1MWUwZCIsaDoic2FcdTAyNWJhIixoaDoiJWQgdGFzc2FcdTAyNWJpbiIsZDoiYXNzIixkZDoiJWQgb3NzYW4iLE06ImF5b3dyIixNTToiJWQgaXl5aXJuIix5OiJh''@;'; + put 'put ''c2dhcyIseXk6IiVkIGlzZ2FzbiJ9LHdlZWs6e2Rvdzo2LGRveToxMn19KX0oTCgxNTQzOSkpfSw2MTU5NTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInR6bSIse21vbnRoczoiXHUyZDQ5XHUyZDRmXHUyZDRmXHUyZDMwXHUy''@;'; + put 'put ''ZDYyXHUyZDU0X1x1MmQzMVx1MmQ1NVx1MmQzMFx1MmQ2Mlx1MmQ1NV9cdTJkNGVcdTJkMzBcdTJkNTVcdTJkNWFfXHUyZDQ5XHUyZDMxXHUyZDU0XHUyZDQ5XHUyZDU0X1x1MmQ0ZVx1MmQzMFx1MmQ2Mlx1MmQ2Mlx1MmQ1M19cdTJkNjJcdTJkNTNcdTJkNGZcdTJkNjJcdTJkNTNfXHUyZDYy''@;'; + put 'put ''XHUyZDUzXHUyZDRkXHUyZDYyXHUyZDUzXHUyZDYzX1x1MmQ1Nlx1MmQ1M1x1MmQ1Ylx1MmQ1Y19cdTJkNWJcdTJkNTNcdTJkNWNcdTJkMzBcdTJkNGZcdTJkMzFcdTJkNDlcdTJkNTRfXHUyZDNkXHUyZDVmXHUyZDUzXHUyZDMxXHUyZDU1X1x1MmQ0Zlx1MmQ1M1x1MmQ2MVx1MmQzMFx1MmQ0''@;'; + put 'put ''Zlx1MmQzMVx1MmQ0OVx1MmQ1NF9cdTJkMzdcdTJkNTNcdTJkNGFcdTJkNGZcdTJkMzFcdTJkNDlcdTJkNTQiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MmQ0OVx1MmQ0Zlx1MmQ0Zlx1MmQzMFx1MmQ2Mlx1MmQ1NF9cdTJkMzFcdTJkNTVcdTJkMzBcdTJkNjJcdTJkNTVfXHUyZDRlXHUy''@;'; + put 'put ''ZDMwXHUyZDU1XHUyZDVhX1x1MmQ0OVx1MmQzMVx1MmQ1NFx1MmQ0OVx1MmQ1NF9cdTJkNGVcdTJkMzBcdTJkNjJcdTJkNjJcdTJkNTNfXHUyZDYyXHUyZDUzXHUyZDRmXHUyZDYyXHUyZDUzX1x1MmQ2Mlx1MmQ1M1x1MmQ0ZFx1MmQ2Mlx1MmQ1M1x1MmQ2M19cdTJkNTZcdTJkNTNcdTJkNWJc''@;'; + put 'put ''dTJkNWNfXHUyZDViXHUyZDUzXHUyZDVjXHUyZDMwXHUyZDRmXHUyZDMxXHUyZDQ5XHUyZDU0X1x1MmQzZFx1MmQ1Zlx1MmQ1M1x1MmQzMVx1MmQ1NV9cdTJkNGZcdTJkNTNcdTJkNjFcdTJkMzBcdTJkNGZcdTJkMzFcdTJkNDlcdTJkNTRfXHUyZDM3XHUyZDUzXHUyZDRhXHUyZDRmXHUyZDMx''@;'; + put 'put ''XHUyZDQ5XHUyZDU0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTJkMzBcdTJkNTlcdTJkMzBcdTJkNGVcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDYyXHUyZDRmXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQ0Zlx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkM2RcdTJkNTRcdTJkMzBc''@;'; + put 'put ''dTJkNTlfXHUyZDMwXHUyZDNkXHUyZDYxXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQ0ZVx1MmQ2MVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNTlcdTJkNDlcdTJkMzlcdTJkNjJcdTJkMzBcdTJkNTkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUyZDMwXHUyZDU5XHUy''@;'; + put 'put ''ZDMwXHUyZDRlXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ2Mlx1MmQ0Zlx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNTlcdTJkNDlcdTJkNGZcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDNkXHUyZDU0XHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQzZFx1MmQ2MVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNTlc''@;'; + put 'put ''dTJkNDlcdTJkNGVcdTJkNjFcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDM5XHUyZDYyXHUyZDMwXHUyZDU5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTJkMzBcdTJkNTlcdTJkMzBcdTJkNGVcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDYyXHUyZDRmXHUyZDMwXHUyZDU5''@;'; + put 'put ''X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQ0Zlx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkM2RcdTJkNTRcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDNkXHUyZDYxXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQ0ZVx1MmQ2MVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNTlcdTJkNDlcdTJk''@;'; + put 'put ''MzlcdTJkNjJcdTJkMzBcdTJkNTkiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2Fs''@;'; + put 'put ''ZW5kYXI6e3NhbWVEYXk6IltcdTJkMzBcdTJkNTlcdTJkMzdcdTJkNDUgXHUyZDM0XSBMVCIsbmV4dERheToiW1x1MmQzMFx1MmQ1OVx1MmQzZFx1MmQzMCBcdTJkMzRdIExUIixuZXh0V2VlazoiZGRkZCBbXHUyZDM0XSBMVCIsbGFzdERheToiW1x1MmQzMFx1MmQ1YVx1MmQzMFx1MmQ0Zlx1''@;'; + put 'put ''MmQ1YyBcdTJkMzRdIExUIixsYXN0V2VlazoiZGRkZCBbXHUyZDM0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUyZDM3XHUyZDMwXHUyZDM3XHUyZDQ1IFx1MmQ1OSBcdTJkNjJcdTJkMzBcdTJkNGYgJXMiLHBhc3Q6Ilx1MmQ2Mlx1MmQzMFx1MmQ0ZiAlcyIs''@;'; + put 'put ''czoiXHUyZDQ5XHUyZDRlXHUyZDQ5XHUyZDNkIixzczoiJWQgXHUyZDQ5XHUyZDRlXHUyZDQ5XHUyZDNkIixtOiJcdTJkNGVcdTJkNDlcdTJkNGZcdTJkNTNcdTJkM2EiLG1tOiIlZCBcdTJkNGVcdTJkNDlcdTJkNGZcdTJkNTNcdTJkM2EiLGg6Ilx1MmQ1OVx1MmQzMFx1MmQ0NFx1MmQzMCIs''@;'; + put 'put ''aGg6IiVkIFx1MmQ1Y1x1MmQzMFx1MmQ1OVx1MmQ1OVx1MmQzMFx1MmQ0NFx1MmQ0OVx1MmQ0ZiIsZDoiXHUyZDMwXHUyZDU5XHUyZDU5IixkZDoiJWQgb1x1MmQ1OVx1MmQ1OVx1MmQzMFx1MmQ0ZiIsTToiXHUyZDMwXHUyZDYyb1x1MmQ1M1x1MmQ1NCIsTU06IiVkIFx1MmQ0OVx1MmQ2Mlx1''@;'; + put 'put ''MmQ2Mlx1MmQ0OVx1MmQ1NFx1MmQ0ZiIseToiXHUyZDMwXHUyZDU5XHUyZDMzXHUyZDMwXHUyZDU5Iix5eToiJWQgXHUyZDQ5XHUyZDU5XHUyZDMzXHUyZDMwXHUyZDU5XHUyZDRmIn0sd2Vlazp7ZG93OjYsZG95OjEyfX0pfShMKDE1NDM5KSl9LDYwNTA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1''@;'; + put 'put ''bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ1Zy1jbiIse21vbnRoczoiXHUwNjRhXHUwNjI3XHUwNjQ2XHUwNmNiXHUwNjI3XHUwNjMxX1x1MDY0MVx1MDZkMFx1MDZjYlx1MDYzMVx1MDYyN1x1MDY0NF9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MmFfXHUwNjI2XHUw''@;'; + put 'put ''NjI3XHUwNjdlXHUwNjMxXHUwNmQwXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YV9cdTA2MjZcdTA2NDlcdTA2NGFcdTA2YzdcdTA2NDZfXHUwNjI2XHUwNjQ5XHUwNjRhXHUwNmM3XHUwNjQ0X1x1MDYyNlx1MDYyN1x1MDZjYlx1MDYzYVx1MDZjN1x1MDYzM1x1MDYyYV9cdTA2MzNcdTA2ZDBc''@;'; + put 'put ''dTA2NDZcdTA2MmFcdTA2ZDVcdTA2MjhcdTA2NDlcdTA2MzFfXHUwNjI2XHUwNmM2XHUwNjQzXHUwNjJhXHUwNmQ1XHUwNjI4XHUwNjQ5XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0YVx1MDYyN1x1MDYyOFx1MDY0OVx1MDYzMV9cdTA2MmZcdTA2ZDBcdTA2NDNcdTA2MjdcdTA2MjhcdTA2NDlc''@;'; + put 'put ''dTA2MzEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDY0YVx1MDYyN1x1MDY0Nlx1MDZjYlx1MDYyN1x1MDYzMV9cdTA2NDFcdTA2ZDBcdTA2Y2JcdTA2MzFcdTA2MjdcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjJhX1x1MDYyNlx1MDYyN1x1MDY3ZVx1MDYzMVx1MDZkMFx1MDY0''@;'; + put 'put ''NF9cdTA2NDVcdTA2MjdcdTA2NGFfXHUwNjI2XHUwNjQ5XHUwNjRhXHUwNmM3XHUwNjQ2X1x1MDYyNlx1MDY0OVx1MDY0YVx1MDZjN1x1MDY0NF9cdTA2MjZcdTA2MjdcdTA2Y2JcdTA2M2FcdTA2YzdcdTA2MzNcdTA2MmFfXHUwNjMzXHUwNmQwXHUwNjQ2XHUwNjJhXHUwNmQ1XHUwNjI4XHUw''@;'; + put 'put ''NjQ5XHUwNjMxX1x1MDYyNlx1MDZjNlx1MDY0M1x1MDYyYVx1MDZkNVx1MDYyOFx1MDY0OVx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2NGFcdTA2MjdcdTA2MjhcdTA2NDlcdTA2MzFfXHUwNjJmXHUwNmQwXHUwNjQzXHUwNjI3XHUwNjI4XHUwNjQ5XHUwNjMxIi5zcGxpdCgiXyIpLHdlZWtkYXlz''@;'; + put 'put ''OiJcdTA2NGFcdTA2ZDVcdTA2NDNcdTA2MzRcdTA2ZDVcdTA2NDZcdTA2MjhcdTA2ZDVfXHUwNjJmXHUwNmM4XHUwNjM0XHUwNmQ1XHUwNjQ2XHUwNjI4XHUwNmQ1X1x1MDYzM1x1MDZkNVx1MDY0YVx1MDYzNFx1MDZkNVx1MDY0Nlx1MDYyOFx1MDZkNV9cdTA2ODZcdTA2MjdcdTA2MzFcdTA2''@;'; + put 'put ''MzRcdTA2ZDVcdTA2NDZcdTA2MjhcdTA2ZDVfXHUwNjdlXHUwNmQ1XHUwNjRhXHUwNjM0XHUwNmQ1XHUwNjQ2XHUwNjI4XHUwNmQ1X1x1MDYyY1x1MDZjOFx1MDY0NVx1MDZkNV9cdTA2MzRcdTA2ZDVcdTA2NDZcdTA2MjhcdTA2ZDUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjRh''@;'; + put 'put ''XHUwNmQ1X1x1MDYyZlx1MDZjOF9cdTA2MzNcdTA2ZDVfXHUwNjg2XHUwNjI3X1x1MDY3ZVx1MDZkNV9cdTA2MmNcdTA2YzhfXHUwNjM0XHUwNmQ1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2NGFcdTA2ZDVfXHUwNjJmXHUwNmM4X1x1MDYzM1x1MDZkNV9cdTA2ODZcdTA2MjdfXHUw''@;'; + put 'put ''NjdlXHUwNmQ1X1x1MDYyY1x1MDZjOF9cdTA2MzRcdTA2ZDUiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS1NTS1ERCIsTEw6IllZWVktXHUwNjRhXHUwNjQ5XHUwNjQ0XHUwNjQ5TS1cdTA2MjZcdTA2MjdcdTA2NGFcdTA2NDZc''@;'; + put 'put ''dTA2NDlcdTA2YWRELVx1MDY0M1x1MDZjOFx1MDY0Nlx1MDY0OSIsTExMOiJZWVlZLVx1MDY0YVx1MDY0OVx1MDY0NFx1MDY0OU0tXHUwNjI2XHUwNjI3XHUwNjRhXHUwNjQ2XHUwNjQ5XHUwNmFkRC1cdTA2NDNcdTA2YzhcdTA2NDZcdTA2NDlcdTA2MGMgSEg6bW0iLExMTEw6ImRkZGRcdTA2''@;'; + put 'put ''MGMgWVlZWS1cdTA2NGFcdTA2NDlcdTA2NDRcdTA2NDlNLVx1MDYyNlx1MDYyN1x1MDY0YVx1MDY0Nlx1MDY0OVx1MDZhZEQtXHUwNjQzXHUwNmM4XHUwNjQ2XHUwNjQ5XHUwNjBjIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwNjRhXHUwNmQwXHUwNjMxXHUwNjQ5XHUwNjQ1IFx1MDY0M1x1''@;'; + put 'put ''MDZkMFx1MDY4Nlx1MDZkNXxcdTA2MzNcdTA2ZDVcdTA2YmVcdTA2ZDVcdTA2MzF8XHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDYyOFx1MDZjN1x1MDYzMVx1MDZjN1x1MDY0NnxcdTA2ODZcdTA2YzhcdTA2MzR8XHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5''@;'; + put 'put ''XHUwNjQ2IFx1MDY0M1x1MDZkMFx1MDY0YVx1MDY0OVx1MDY0NnxcdTA2NDNcdTA2ZDVcdTA2ODYvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLE1lKXtyZXR1cm4gMTI9PT1FJiYoRT0wKSwiXHUwNjRhXHUwNmQwXHUwNjMxXHUwNjQ5XHUwNjQ1IFx1MDY0M1x1MDZkMFx1MDY4Nlx1MDZkNSI9''@;'; + put 'put ''PT1NZXx8Ilx1MDYzM1x1MDZkNVx1MDZiZVx1MDZkNVx1MDYzMSI9PT1NZXx8Ilx1MDY4Nlx1MDZjOFx1MDYzNFx1MDYyYVx1MDY0OVx1MDY0NiBcdTA2MjhcdTA2YzdcdTA2MzFcdTA2YzdcdTA2NDYiPT09TWU/RToiXHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDY0''@;'; + put 'put ''M1x1MDZkMFx1MDY0YVx1MDY0OVx1MDY0NiI9PT1NZXx8Ilx1MDY0M1x1MDZkNVx1MDY4NiI9PT1NZT9FKzEyOkU+PTExP0U6RSsxMn0sbWVyaWRpZW06ZnVuY3Rpb24oRSxNZSxVKXt2YXIgUT0xMDAqRStNZTtyZXR1cm4gUTw2MDA/Ilx1MDY0YVx1MDZkMFx1MDYzMVx1MDY0OVx1MDY0NSBc''@;'; + put 'put ''dTA2NDNcdTA2ZDBcdTA2ODZcdTA2ZDUiOlE8OTAwPyJcdTA2MzNcdTA2ZDVcdTA2YmVcdTA2ZDVcdTA2MzEiOlE8MTEzMD8iXHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDYyOFx1MDZjN1x1MDYzMVx1MDZjN1x1MDY0NiI6UTwxMjMwPyJcdTA2ODZcdTA2YzhcdTA2''@;'; + put 'put ''MzQiOlE8MTgwMD8iXHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDY0M1x1MDZkMFx1MDY0YVx1MDY0OVx1MDY0NiI6Ilx1MDY0M1x1MDZkNVx1MDY4NiJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI4XHUwNmM4XHUwNmFmXHUwNmM4XHUwNjQ2IFx1MDYzM1x1MDYy''@;'; + put 'put ''N1x1MDYyNlx1MDZkNVx1MDYyYV0gTFQiLG5leHREYXk6IltcdTA2MjZcdTA2ZDVcdTA2MmFcdTA2ZDUgXHUwNjMzXHUwNjI3XHUwNjI2XHUwNmQ1XHUwNjJhXSBMVCIsbmV4dFdlZWs6IltcdTA2NDNcdTA2ZDBcdTA2NDRcdTA2ZDVcdTA2MzFcdTA2NDNcdTA2NDldIGRkZGQgW1x1MDYzM1x1''@;'; + put 'put ''MDYyN1x1MDYyNlx1MDZkNVx1MDYyYV0gTFQiLGxhc3REYXk6IltcdTA2MmFcdTA2YzZcdTA2NDZcdTA2YzhcdTA2YWZcdTA2YzhcdTA2NDZdIExUIixsYXN0V2VlazoiW1x1MDYyNlx1MDYyN1x1MDY0NFx1MDYyZlx1MDY0OVx1MDY0Nlx1MDY0Mlx1MDY0OV0gZGRkZCBbXHUwNjMzXHUwNjI3''@;'; + put 'put ''XHUwNjI2XHUwNmQ1XHUwNjJhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNjQzXHUwNmQwXHUwNjRhXHUwNjQ5XHUwNjQ2IixwYXN0OiIlcyBcdTA2MjhcdTA2YzdcdTA2MzFcdTA2YzdcdTA2NDYiLHM6Ilx1MDY0Nlx1MDZkNVx1MDY4Nlx1MDY4Nlx1''@;'; + put 'put ''MDZkNSBcdTA2MzNcdTA2ZDBcdTA2NDNcdTA2NDhcdTA2NDZcdTA2MmEiLHNzOiIlZCBcdTA2MzNcdTA2ZDBcdTA2NDNcdTA2NDhcdTA2NDZcdTA2MmEiLG06Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2NDVcdTA2NDlcdTA2NDZcdTA2YzdcdTA2MmEiLG1tOiIlZCBcdTA2NDVcdTA2NDlcdTA2''@;'; + put 'put ''NDZcdTA2YzdcdTA2MmEiLGg6Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2MzNcdTA2MjdcdTA2MjZcdTA2ZDVcdTA2MmEiLGhoOiIlZCBcdTA2MzNcdTA2MjdcdTA2MjZcdTA2ZDVcdTA2MmEiLGQ6Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2NDNcdTA2YzhcdTA2NDYiLGRkOiIlZCBcdTA2NDNc''@;'; + put 'put ''dTA2YzhcdTA2NDYiLE06Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2MjZcdTA2MjdcdTA2NGEiLE1NOiIlZCBcdTA2MjZcdTA2MjdcdTA2NGEiLHk6Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2NGFcdTA2NDlcdTA2NDQiLHl5OiIlZCBcdTA2NGFcdTA2NDlcdTA2NDQifSxkYXlPZk1vbnRoT3Jk''@;'; + put 'put ''aW5hbFBhcnNlOi9cZHsxLDJ9KC1cdTA2NDNcdTA2YzhcdTA2NDZcdTA2NDl8LVx1MDYyNlx1MDYyN1x1MDY0YXwtXHUwNmJlXHUwNmQ1XHUwNjdlXHUwNjJhXHUwNmQ1KS8sb3JkaW5hbDpmdW5jdGlvbihFLE1lKXtzd2l0Y2goTWUpe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0dXJu''@;'; + put 'put ''IEUrIi1cdTA2NDNcdTA2YzhcdTA2NDZcdTA2NDkiO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gRSsiLVx1MDZiZVx1MDZkNVx1MDY3ZVx1MDYyYVx1MDZkNSI7ZGVmYXVsdDpyZXR1cm4gRX19LHByZXBhcnNlOmZ1bmN0aW9uKEUpe3JldHVybiBFLnJlcGxhY2UoL1x1MDYwYy9nLCIsIil9LHBv''@;'; + put 'put ''c3Rmb3JtYXQ6ZnVuY3Rpb24oRSl7cmV0dXJuIEUucmVwbGFjZSgvLC9nLCJcdTA2MGMiKX0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sNjU2MTA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShaLGllLGxlKXtyZXR1cm4i''@;'; + put 'put ''bSI9PT1sZT9pZT8iXHUwNDQ1XHUwNDMyXHUwNDM4XHUwNDNiXHUwNDM4XHUwNDNkXHUwNDMwIjoiXHUwNDQ1XHUwNDMyXHUwNDM4XHUwNDNiXHUwNDM4XHUwNDNkXHUwNDQzIjoiaCI9PT1sZT9pZT8iXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDMwIjoiXHUwNDMzXHUwNDNl''@;'; + put 'put ''XHUwNDM0XHUwNDM4XHUwNDNkXHUwNDQzIjpaKyIgIitmdW5jdGlvbiBCKFosaWUpe3ZhciBsZT1aLnNwbGl0KCJfIik7cmV0dXJuIGllJTEwPT0xJiZpZSUxMDAhPTExP2xlWzBdOmllJTEwPj0yJiZpZSUxMDw9NCYmKGllJTEwMDwxMHx8aWUlMTAwPj0yMCk/bGVbMV06bGVbMl19KHtzczpp''@;'; + put 'put ''ZT8iXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDMwX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOF9cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiOiJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRc''@;'; + put 'put ''dTA0NDNfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM4X1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCIsbW06aWU/Ilx1MDQ0NVx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzZFx1MDQzMF9cdTA0NDVcdTA0MzJcdTA0MzhcdTA0M2JcdTA0''@;'; + put 'put ''MzhcdTA0M2RcdTA0MzhfXHUwNDQ1XHUwNDMyXHUwNDM4XHUwNDNiXHUwNDM4XHUwNDNkIjoiXHUwNDQ1XHUwNDMyXHUwNDM4XHUwNDNiXHUwNDM4XHUwNDNkXHUwNDQzX1x1MDQ0NVx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzZFx1MDQzOF9cdTA0NDVcdTA0MzJcdTA0MzhcdTA0M2Jc''@;'; + put 'put ''dTA0MzhcdTA0M2QiLGhoOmllPyJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzBfXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDM4X1x1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZCI6Ilx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQ0M19c''@;'; + put 'put ''dTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzhfXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkIixkZDoiXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzNFx1MDQzZFx1MDQ1Nl9cdTA0MzRcdTA0M2RcdTA0NTZcdTA0MzIiLE1NOiJcdTA0M2NcdTA0NTZcdTA0NDFc''@;'; + put 'put ''dTA0NGZcdTA0NDZcdTA0NGNfXHUwNDNjXHUwNDU2XHUwNDQxXHUwNDRmXHUwNDQ2XHUwNDU2X1x1MDQzY1x1MDQ1Nlx1MDQ0MVx1MDQ0Zlx1MDQ0Nlx1MDQ1Nlx1MDQzMiIseXk6Ilx1MDQ0MFx1MDQ1Nlx1MDQzYV9cdTA0NDBcdTA0M2VcdTA0M2FcdTA0MzhfXHUwNDQwXHUwNDNlXHUwNDNh''@;'; + put 'put ''XHUwNDU2XHUwNDMyIn1bbGVdLCtaKX1mdW5jdGlvbiBVKFope3JldHVybiBmdW5jdGlvbigpe3JldHVybiBaKyJcdTA0M2UiKygxMT09PXRoaXMuaG91cnMoKT8iXHUwNDMxIjoiIikrIl0gTFQifX1tZS5kZWZpbmVMb2NhbGUoInVrIix7bW9udGhzOntmb3JtYXQ6Ilx1MDQ0MVx1MDQ1Nlx1''@;'; + put 'put ''MDQ0N1x1MDQzZFx1MDQ0Zl9cdTA0M2JcdTA0NGVcdTA0NDJcdTA0M2VcdTA0MzNcdTA0M2VfXHUwNDMxXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3XHUwNDNkXHUwNDRmX1x1MDQzYVx1MDQzMlx1MDQ1Nlx1MDQ0Mlx1MDQzZFx1MDQ0Zl9cdTA0NDJcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M2Rc''@;'; + put 'put ''dTA0NGZfXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMyXHUwNDNkXHUwNDRmX1x1MDQzYlx1MDQzOFx1MDQzZlx1MDQzZFx1MDQ0Zl9cdTA0NDFcdTA0MzVcdTA0NDBcdTA0M2ZcdTA0M2RcdTA0NGZfXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDNkXHUwNDRmX1x1MDQzNlx1MDQz''@;'; + put 'put ''ZVx1MDQzMlx1MDQ0Mlx1MDQzZFx1MDQ0Zl9cdTA0M2JcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0MzBcdTA0MzRcdTA0MzBfXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDM0XHUwNDNkXHUwNDRmIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6Ilx1MDQ0MVx1MDQ1Nlx1MDQ0N1x1MDQz''@;'; + put 'put ''NVx1MDQzZFx1MDQ0Y19cdTA0M2JcdTA0NGVcdTA0NDJcdTA0MzhcdTA0MzlfXHUwNDMxXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3XHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzYVx1MDQzMlx1MDQ1Nlx1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0NDJcdTA0NDBcdTA0MzBcdTA0MzJcdTA0''@;'; + put 'put ''MzVcdTA0M2RcdTA0NGNfXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzYlx1MDQzOFx1MDQzZlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0NDFcdTA0MzVcdTA0NDBcdTA0M2ZcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM1XHUw''@;'; + put 'put ''NDQxXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzNlx1MDQzZVx1MDQzMlx1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0M2JcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M2VcdTA0M2ZcdTA0MzBcdTA0MzRfXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjIi5zcGxpdCgi''@;'; + put 'put ''XyIpfSxtb250aHNTaG9ydDoiXHUwNDQxXHUwNDU2XHUwNDQ3X1x1MDQzYlx1MDQ0ZVx1MDQ0Ml9cdTA0MzFcdTA0MzVcdTA0NDBfXHUwNDNhXHUwNDMyXHUwNDU2XHUwNDQyX1x1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzMl9cdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzJfXHUwNDNiXHUwNDM4XHUw''@;'; + put 'put ''NDNmX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzZl9cdTA0MzJcdTA0MzVcdTA0NDBfXHUwNDM2XHUwNDNlXHUwNDMyXHUwNDQyX1x1MDQzYlx1MDQzOFx1MDQ0MVx1MDQ0Ml9cdTA0MzNcdTA0NDBcdTA0NDNcdTA0MzQiLnNwbGl0KCJfIiksd2Vla2RheXM6ZnVuY3Rpb24gTWUoWixpZSl7dmFy''@;'; + put 'put ''IGxlPXtub21pbmF0aXZlOiJcdTA0M2RcdTA0MzVcdTA0MzRcdTA0NTZcdTA0M2JcdTA0NGZfXHUwNDNmXHUwNDNlXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDU2XHUwNDNiXHUwNDNlXHUwNDNhX1x1MDQzMlx1MDQ1Nlx1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzZVx1MDQzYV9cdTA0NDFc''@;'; + put 'put ''dTA0MzVcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzBfXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwX1x1MDQzZlx1MjAxOVx1MDQ0Zlx1MDQ0Mlx1MDQzZFx1MDQzOFx1MDQ0Nlx1MDQ0Zl9cdTA0NDFcdTA0NDNcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzAiLnNwbGl0KCJfIiks''@;'; + put 'put ''YWNjdXNhdGl2ZToiXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDU2XHUwNDNiXHUwNDRlX1x1MDQzZlx1MDQzZVx1MDQzZFx1MDQzNVx1MDQzNFx1MDQ1Nlx1MDQzYlx1MDQzZVx1MDQzYV9cdTA0MzJcdTA0NTZcdTA0MzJcdTA0NDJcdTA0M2VcdTA0NDBcdTA0M2VcdTA0M2FfXHUwNDQxXHUwNDM1''@;'; + put 'put ''XHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQzX1x1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MF9cdTA0M2ZcdTIwMTlcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzhcdTA0NDZcdTA0NGVfXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDQzIi5zcGxpdCgiXyIpLGdlbml0''@;'; + put 'put ''aXZlOiJcdTA0M2RcdTA0MzVcdTA0MzRcdTA0NTZcdTA0M2JcdTA0NTZfXHUwNDNmXHUwNDNlXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDU2XHUwNDNiXHUwNDNhXHUwNDMwX1x1MDQzMlx1MDQ1Nlx1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzYVx1MDQzMF9cdTA0NDFcdTA0MzVcdTA0NDBc''@;'; + put 'put ''dTA0MzVcdTA0MzRcdTA0MzhfXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMzXHUwNDMwX1x1MDQzZlx1MjAxOVx1MDQ0Zlx1MDQ0Mlx1MDQzZFx1MDQzOFx1MDQ0Nlx1MDQ1Nl9cdTA0NDFcdTA0NDNcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzgiLnNwbGl0KCJfIil9''@;'; + put 'put ''O3JldHVybiEwPT09Wj9sZS5ub21pbmF0aXZlLnNsaWNlKDEsNykuY29uY2F0KGxlLm5vbWluYXRpdmUuc2xpY2UoMCwxKSk6Wj9sZVsvKFxbW1x1MDQxMlx1MDQzMlx1MDQyM1x1MDQ0M11cXSkgP2RkZGQvLnRlc3QoaWUpPyJhY2N1c2F0aXZlIjovXFs/KD86XHUwNDNjXHUwNDM4XHUwNDNk''@;'; + put 'put ''XHUwNDQzXHUwNDNiXHUwNDNlXHUwNDU3fFx1MDQzZFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzZlx1MDQzZFx1MDQzZVx1MDQ1Nyk/ID9cXSA/ZGRkZC8udGVzdChpZSk/Imdlbml0aXZlIjoibm9taW5hdGl2ZSJdW1ouZGF5KCldOmxlLm5vbWluYXRpdmV9LHdlZWtkYXlzU2hvcnQ6''@;'; + put 'put ''Ilx1MDQzZFx1MDQzNF9cdTA0M2ZcdTA0M2RfXHUwNDMyXHUwNDQyX1x1MDQ0MVx1MDQ0MF9cdTA0NDdcdTA0NDJfXHUwNDNmXHUwNDQyX1x1MDQ0MVx1MDQzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDNkXHUwNDM0X1x1MDQzZlx1MDQzZF9cdTA0MzJcdTA0NDJfXHUwNDQxXHUw''@;'; + put 'put ''NDQwX1x1MDQ0N1x1MDQ0Ml9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSBcdTA0NDAuIixMTEw6IkQgTU1NTSBZWVlZIFx1MDQ0MC4sIEhI''@;'; + put 'put ''Om1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBcdTA0NDAuLCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OlUoIltcdTA0MjFcdTA0NGNcdTA0M2VcdTA0MzNcdTA0M2VcdTA0MzRcdTA0M2RcdTA0NTYgIiksbmV4dERheTpVKCJbXHUwNDE3XHUwNDMwXHUwNDMyXHUwNDQyXHUwNDQwXHUw''@;'; + put 'put ''NDMwICIpLGxhc3REYXk6VSgiW1x1MDQxMlx1MDQ0N1x1MDQzZVx1MDQ0MFx1MDQzMCAiKSxuZXh0V2VlazpVKCJbXHUwNDIzXSBkZGRkIFsiKSxsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6Y2FzZSAzOmNhc2UgNTpjYXNlIDY6cmV0dXJuIFUoIltcdTA0''@;'; + put 'put ''MWNcdTA0MzhcdTA0M2RcdTA0NDNcdTA0M2JcdTA0M2VcdTA0NTddIGRkZGQgWyIpLmNhbGwodGhpcyk7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6cmV0dXJuIFUoIltcdTA0MWNcdTA0MzhcdTA0M2RcdTA0NDNcdTA0M2JcdTA0M2VcdTA0MzNcdTA0M2VdIGRkZGQgWyIpLmNhbGwodGhpcyl9fSxz''@;'; + put 'put ''YW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0MzdcdTA0MzAgJXMiLHBhc3Q6IiVzIFx1MDQ0Mlx1MDQzZVx1MDQzY1x1MDQ0MyIsczoiXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDU2XHUwNDNiXHUwNDRjXHUwNDNhXHUwNDMwIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1''@;'; + put 'put ''MDQzZFx1MDQzNCIsc3M6RSxtOkUsbW06RSxoOiJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0NDMiLGhoOkUsZDoiXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjIixkZDpFLE06Ilx1MDQzY1x1MDQ1Nlx1MDQ0MVx1MDQ0Zlx1MDQ0Nlx1MDQ0YyIsTU06RSx5OiJcdTA0NDBcdTA0''@;'; + put 'put ''NTZcdTA0M2EiLHl5OkV9LG1lcmlkaWVtUGFyc2U6L1x1MDQzZFx1MDQzZVx1MDQ0N1x1MDQ1NnxcdTA0NDBcdTA0MzBcdTA0M2RcdTA0M2FcdTA0NDN8XHUwNDM0XHUwNDNkXHUwNDRmfFx1MDQzMlx1MDQzNVx1MDQ0N1x1MDQzZVx1MDQ0MFx1MDQzMC8saXNQTTpmdW5jdGlvbihaKXtyZXR1''@;'; + put 'put ''cm4vXihcdTA0MzRcdTA0M2RcdTA0NGZ8XHUwNDMyXHUwNDM1XHUwNDQ3XHUwNDNlXHUwNDQwXHUwNDMwKSQvLnRlc3QoWil9LG1lcmlkaWVtOmZ1bmN0aW9uKFosaWUsbGUpe3JldHVybiBaPDQ/Ilx1MDQzZFx1MDQzZVx1MDQ0N1x1MDQ1NiI6WjwxMj8iXHUwNDQwXHUwNDMwXHUwNDNkXHUw''@;'; + put 'put ''NDNhXHUwNDQzIjpaPDE3PyJcdTA0MzRcdTA0M2RcdTA0NGYiOiJcdTA0MzJcdTA0MzVcdTA0NDdcdTA0M2VcdTA0NDBcdTA0MzAifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0Mzl8XHUwNDMzXHUwNDNlKS8sb3JkaW5hbDpmdW5jdGlvbihaLGllKXtzd2l0Y2goaWUp''@;'; + put 'put ''e2Nhc2UiTSI6Y2FzZSJkIjpjYXNlIkRERCI6Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBaKyItXHUwNDM5IjtjYXNlIkQiOnJldHVybiBaKyItXHUwNDMzXHUwNDNlIjtkZWZhdWx0OnJldHVybiBafX0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sODYwNzc6ZnVuY3Rpb24oWGUs''@;'; + put 'put ''SmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9WyJcdTA2MmNcdTA2NDZcdTA2NDhcdTA2MzFcdTA2Y2MiLCJcdTA2NDFcdTA2MzFcdTA2NDhcdTA2MzFcdTA2Y2MiLCJcdTA2NDVcdTA2MjdcdTA2MzFcdTA2ODYiLCJcdTA2MjdcdTA2N2VcdTA2MzFcdTA2Y2NcdTA2NDQi''@;'; + put 'put ''LCJcdTA2NDVcdTA2MjZcdTA2Y2MiLCJcdTA2MmNcdTA2NDhcdTA2NDYiLCJcdTA2MmNcdTA2NDhcdTA2NDRcdTA2MjdcdTA2MjZcdTA2Y2MiLCJcdTA2MjdcdTA2YWZcdTA2MzNcdTA2MmEiLCJcdTA2MzNcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MjdcdTA2YTlcdTA2MmFcdTA2''@;'; + put 'put ''NDhcdTA2MjhcdTA2MzEiLCJcdTA2NDZcdTA2NDhcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MmZcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiXSxFPVsiXHUwNjI3XHUwNjJhXHUwNjQ4XHUwNjI3XHUwNjMxIiwiXHUwNjdlXHUwNmNjXHUwNjMxIiwiXHUwNjQ1XHUwNjQ2XHUwNmFmXHUwNjQ0''@;'; + put 'put ''IiwiXHUwNjI4XHUwNjJmXHUwNmJlIiwiXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjMxXHUwNjI3XHUwNjJhIiwiXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNmMxIiwiXHUwNmMxXHUwNjQxXHUwNjJhXHUwNmMxIl07bWUuZGVmaW5lTG9jYWxlKCJ1ciIse21vbnRoczpCLG1vbnRoc1Nob3J0OkIsd2Vl''@;'; + put 'put ''a2RheXM6RSx3ZWVrZGF5c1Nob3J0OkUsd2Vla2RheXNNaW46RSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGRcdTA2MGMgRCBNTU1NIFlZWVkg''@;'; + put 'put ''SEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MzVcdTA2MjhcdTA2MmR8XHUwNjM0XHUwNjI3XHUwNjQ1Lyxpc1BNOmZ1bmN0aW9uKFUpe3JldHVybiJcdTA2MzRcdTA2MjdcdTA2NDUiPT09VX0sbWVyaWRpZW06ZnVuY3Rpb24oVSxRLFope3JldHVybiBVPDEyPyJcdTA2MzVcdTA2MjhcdTA2''@;'; + put 'put ''MmQiOiJcdTA2MzRcdTA2MjdcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyMlx1MDYyYyBcdTA2MjhcdTA2NDhcdTA2NDJcdTA2MmFdIExUIixuZXh0RGF5OiJbXHUwNmE5XHUwNjQ0IFx1MDYyOFx1MDY0OFx1MDY0Mlx1MDYyYV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA2Mjhc''@;'; + put 'put ''dTA2NDhcdTA2NDJcdTA2MmFdIExUIixsYXN0RGF5OiJbXHUwNmFmXHUwNjMwXHUwNjM0XHUwNjJhXHUwNmMxIFx1MDYzMVx1MDY0OFx1MDYzMiBcdTA2MjhcdTA2NDhcdTA2NDJcdTA2MmFdIExUIixsYXN0V2VlazoiW1x1MDZhZlx1MDYzMFx1MDYzNFx1MDYyYVx1MDZjMV0gZGRkZCBbXHUw''@;'; + put 'put ''NjI4XHUwNjQ4XHUwNjQyXHUwNjJhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNjI4XHUwNjM5XHUwNjJmIixwYXN0OiIlcyBcdTA2NDJcdTA2MjhcdTA2NDQiLHM6Ilx1MDY4Nlx1MDY0Nlx1MDYyZiBcdTA2MzNcdTA2Y2NcdTA2YTlcdTA2NDZcdTA2''@;'; + put 'put ''ODgiLHNzOiIlZCBcdTA2MzNcdTA2Y2NcdTA2YTlcdTA2NDZcdTA2ODgiLG06Ilx1MDYyN1x1MDZjY1x1MDZhOSBcdTA2NDVcdTA2NDZcdTA2NzkiLG1tOiIlZCBcdTA2NDVcdTA2NDZcdTA2NzkiLGg6Ilx1MDYyN1x1MDZjY1x1MDZhOSBcdTA2YWZcdTA2YmVcdTA2NDZcdTA2NzlcdTA2YzEi''@;'; + put 'put ''LGhoOiIlZCBcdTA2YWZcdTA2YmVcdTA2NDZcdTA2NzlcdTA2ZDIiLGQ6Ilx1MDYyN1x1MDZjY1x1MDZhOSBcdTA2MmZcdTA2NDYiLGRkOiIlZCBcdTA2MmZcdTA2NDYiLE06Ilx1MDYyN1x1MDZjY1x1MDZhOSBcdTA2NDVcdTA2MjdcdTA2YzEiLE1NOiIlZCBcdTA2NDVcdTA2MjdcdTA2YzEi''@;'; + put 'put ''LHk6Ilx1MDYyN1x1MDZjY1x1MDZhOSBcdTA2MzNcdTA2MjdcdTA2NDQiLHl5OiIlZCBcdTA2MzNcdTA2MjdcdTA2NDQifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2Uo''@;'; + put 'put ''LywvZywiXHUwNjBjIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDEyMjA3OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgidXotbGF0biIse21vbnRoczoiWWFudmFyX0ZldnJhbF9NYXJ0X0FwcmVsX01heV9J''@;'; + put 'put ''eXVuX0l5dWxfQXZndXN0X1NlbnRhYnJfT2t0YWJyX05veWFicl9EZWthYnIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Illhbl9GZXZfTWFyX0Fwcl9NYXlfSXl1bl9JeXVsX0F2Z19TZW5fT2t0X05veV9EZWsiLnNwbGl0KCJfIiksd2Vla2RheXM6Illha3NoYW5iYV9EdXNoYW5iYV9TZXNo''@;'; + put 'put ''YW5iYV9DaG9yc2hhbmJhX1BheXNoYW5iYV9KdW1hX1NoYW5iYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJZYWtfRHVzaF9TZXNoX0Nob3JfUGF5X0p1bV9TaGFuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJZYV9EdV9TZV9DaG9fUGFfSnVfU2hhIi5zcGxpdCgiXyIpLGxvbmdEYXRl''@;'; + put 'put ''Rm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiRCBNTU1NIFlZWVksIGRkZGQgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0J1Z3VuIHNvYXRdIExUIFtkYV0iLG5l''@;'; + put 'put ''eHREYXk6IltFcnRhZ2FdIExUIFtkYV0iLG5leHRXZWVrOiJkZGRkIFtrdW5pIHNvYXRdIExUIFtkYV0iLGxhc3REYXk6IltLZWNoYSBzb2F0XSBMVCBbZGFdIixsYXN0V2VlazoiW08ndGdhbl0gZGRkZCBba3VuaSBzb2F0XSBMVCBbZGFdIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7''@;'; + put 'put ''ZnV0dXJlOiJZYXFpbiAlcyBpY2hpZGEiLHBhc3Q6IkJpciBuZWNoYSAlcyBvbGRpbiIsczoic29uaXlhIixzczoiJWQgc29uaXlhIixtOiJiaXIgZGFxaXFhIixtbToiJWQgZGFxaXFhIixoOiJiaXIgc29hdCIsaGg6IiVkIHNvYXQiLGQ6ImJpciBrdW4iLGRkOiIlZCBrdW4iLE06ImJpciBv''@;'; + put 'put ''eSIsTU06IiVkIG95Iix5OiJiaXIgeWlsIix5eToiJWQgeWlsIn0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMjI4NjI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ1eiIse21vbnRoczoiXHUwNDRmXHUwNDNk''@;'; + put 'put ''XHUwNDMyXHUwNDMwXHUwNDQwX1x1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQzYl9cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJfXHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0MzhcdTA0NGVcdTA0M2RfXHUwNDM4XHUwNDRlXHUw''@;'; + put 'put ''NDNiX1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Ml9cdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBfXHUwNDNlXHUwNDNhXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwX1x1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMVx1MDQ0MF9cdTA0MzRcdTA0MzVc''@;'; + put 'put ''dTA0M2FcdTA0MzBcdTA0MzFcdTA0NDAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQ0Zlx1MDQzZFx1MDQzMl9cdTA0NDRcdTA0MzVcdTA0MzJfXHUwNDNjXHUwNDMwXHUwNDQwX1x1MDQzMFx1MDQzZlx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDM4XHUwNDRlXHUwNDNkX1x1''@;'; + put 'put ''MDQzOFx1MDQ0ZVx1MDQzYl9cdTA0MzBcdTA0MzJcdTA0MzNfXHUwNDQxXHUwNDM1XHUwNDNkX1x1MDQzZVx1MDQzYVx1MDQ0Ml9cdTA0M2RcdTA0M2VcdTA0NGZfXHUwNDM0XHUwNDM1XHUwNDNhIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA0MmZcdTA0M2FcdTA0NDhcdTA0MzBcdTA0M2Rc''@;'; + put 'put ''dTA0MzFcdTA0MzBfXHUwNDE0XHUwNDQzXHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDMwX1x1MDQyMVx1MDQzNVx1MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzMF9cdTA0MjdcdTA0M2VcdTA0NDBcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzBfXHUwNDFmXHUwNDMwXHUwNDM5''@;'; + put 'put ''XHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDMwX1x1MDQxNlx1MDQ0M1x1MDQzY1x1MDQzMF9cdTA0MjhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDJmXHUwNDNhXHUwNDQ4X1x1MDQxNFx1MDQ0M1x1MDQ0OF9cdTA0MjFcdTA0MzVc''@;'; + put 'put ''dTA0NDhfXHUwNDI3XHUwNDNlXHUwNDQwX1x1MDQxZlx1MDQzMFx1MDQzOV9cdTA0MTZcdTA0NDNcdTA0M2NfXHUwNDI4XHUwNDMwXHUwNDNkIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0MmZcdTA0M2FfXHUwNDE0XHUwNDQzX1x1MDQyMVx1MDQzNV9cdTA0MjdcdTA0M2VfXHUwNDFm''@;'; + put 'put ''XHUwNDMwX1x1MDQxNlx1MDQ0M19cdTA0MjhcdTA0MzAiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJEIE1NTU0gWVlZWSwgZGRk''@;'; + put 'put ''ZCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDExXHUwNDQzXHUwNDMzXHUwNDQzXHUwNDNkIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Ml0gTFQgW1x1MDQzNFx1MDQzMF0iLG5leHREYXk6IltcdTA0MmRcdTA0NDBcdTA0NDJcdTA0MzBcdTA0MzNcdTA0MzBdIExUIFtcdTA0MzRc''@;'; + put 'put ''dTA0MzBdIixuZXh0V2VlazoiZGRkZCBbXHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM4IFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Ml0gTFQgW1x1MDQzNFx1MDQzMF0iLGxhc3REYXk6IltcdTA0MWFcdTA0MzVcdTA0NDdcdTA0MzAgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyXSBMVCBbXHUwNDM0''@;'; + put 'put ''XHUwNDMwXSIsbGFzdFdlZWs6IltcdTA0MjNcdTA0NDJcdTA0MzNcdTA0MzBcdTA0M2RdIGRkZGQgW1x1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzOCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDJdIExUIFtcdTA0MzRcdTA0MzBdIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJc''@;'; + put 'put ''dTA0MmZcdTA0M2FcdTA0MzhcdTA0M2QgJXMgXHUwNDM4XHUwNDQ3XHUwNDM4XHUwNDM0XHUwNDMwIixwYXN0OiJcdTA0MTFcdTA0MzhcdTA0NDAgXHUwNDNkXHUwNDM1XHUwNDQ3XHUwNDMwICVzIFx1MDQzZVx1MDQzYlx1MDQzNFx1MDQzOFx1MDQzZCIsczoiXHUwNDQ0XHUwNDQzXHUwNDQw''@;'; + put 'put ''XHUwNDQxXHUwNDMwXHUwNDQyIixzczoiJWQgXHUwNDQ0XHUwNDQzXHUwNDQwXHUwNDQxXHUwNDMwXHUwNDQyIixtOiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDM0XHUwNDMwXHUwNDNhXHUwNDM4XHUwNDNhXHUwNDMwIixtbToiJWQgXHUwNDM0XHUwNDMwXHUwNDNhXHUwNDM4XHUwNDNhXHUw''@;'; + put 'put ''NDMwIixoOiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyIixoaDoiJWQgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyIixkOiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDNhXHUwNDQzXHUwNDNkIixkZDoiJWQgXHUwNDNhXHUwNDQzXHUwNDNkIixNOiJcdTA0MzFc''@;'; + put 'put ''dTA0MzhcdTA0NDAgXHUwNDNlXHUwNDM5IixNTToiJWQgXHUwNDNlXHUwNDM5Iix5OiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDM5XHUwNDM4XHUwNDNiIix5eToiJWQgXHUwNDM5XHUwNDM4XHUwNDNiIn0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sNDgwOTM6ZnVuY3Rpb24o''@;'; + put 'put ''WGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ2aSIse21vbnRoczoidGhceGUxbmcgMV90aFx4ZTFuZyAyX3RoXHhlMW5nIDNfdGhceGUxbmcgNF90aFx4ZTFuZyA1X3RoXHhlMW5nIDZfdGhceGUxbmcgN190aFx4ZTFuZyA4X3RoXHhlMW5nIDlf''@;'; + put 'put ''dGhceGUxbmcgMTBfdGhceGUxbmcgMTFfdGhceGUxbmcgMTIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IlRoZyAwMV9UaGcgMDJfVGhnIDAzX1RoZyAwNF9UaGcgMDVfVGhnIDA2X1RoZyAwN19UaGcgMDhfVGhnIDA5X1RoZyAxMF9UaGcgMTFfVGhnIDEyIi5zcGxpdCgiXyIpLG1vbnRoc1Bh''@;'; + put 'put ''cnNlRXhhY3Q6ITAsd2Vla2RheXM6ImNoXHUxZWU3IG5oXHUxZWFkdF90aFx1MWVlOSBoYWlfdGhcdTFlZTkgYmFfdGhcdTFlZTkgdFx1MDFiMF90aFx1MWVlOSBuXHUwMTAzbV90aFx1MWVlOSBzXHhlMXVfdGhcdTFlZTkgYlx1MWVhM3kiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiQ05f''@;'; + put 'put ''VDJfVDNfVDRfVDVfVDZfVDciLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkNOX1QyX1QzX1Q0X1Q1X1Q2X1Q3Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxtZXJpZGllbVBhcnNlOi9zYXxjaC9pLGlzUE06ZnVuY3Rpb24oRSl7cmV0dXJuL15jaCQvaS50ZXN0KEUpfSxtZXJp''@;'; + put 'put ''ZGllbTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFPDEyP1U/InNhIjoiU0EiOlU/ImNoIjoiQ0gifSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFtuXHUwMTAzbV0gWVlZWSIsTExMOiJEIE1NTU0gW25cdTAxMDNt''@;'; + put 'put ''XSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gW25cdTAxMDNtXSBZWVlZIEhIOm1tIixsOiJERC9NL1lZWVkiLGxsOiJEIE1NTSBZWVlZIixsbGw6IkQgTU1NIFlZWVkgSEg6bW0iLGxsbGw6ImRkZCwgRCBNTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSFx4ZjRt''@;'; + put 'put ''IG5heSBsXHhmYWNdIExUIixuZXh0RGF5OiJbTmdceGUweSBtYWkgbFx4ZmFjXSBMVCIsbmV4dFdlZWs6ImRkZGQgW3R1XHUxZWE3biB0XHUxZWRiaSBsXHhmYWNdIExUIixsYXN0RGF5OiJbSFx4ZjRtIHF1YSBsXHhmYWNdIExUIixsYXN0V2VlazoiZGRkZCBbdHVcdTFlYTduIHRyXHUwMWIw''@;'; + put 'put ''XHUxZWRiYyBsXHhmYWNdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyB0XHUxZWRiaSIscGFzdDoiJXMgdHJcdTAxYjBcdTFlZGJjIixzOiJ2XHhlMGkgZ2lceGUyeSIsc3M6IiVkIGdpXHhlMnkiLG06Im1cdTFlZDl0IHBoXHhmYXQiLG1tOiIlZCBwaFx4ZmF0''@;'; + put 'put ''IixoOiJtXHUxZWQ5dCBnaVx1MWVkZCIsaGg6IiVkIGdpXHUxZWRkIixkOiJtXHUxZWQ5dCBuZ1x4ZTB5IixkZDoiJWQgbmdceGUweSIsdzoibVx1MWVkOXQgdHVcdTFlYTduIix3dzoiJWQgdHVcdTFlYTduIixNOiJtXHUxZWQ5dCB0aFx4ZTFuZyIsTU06IiVkIHRoXHhlMW5nIix5OiJtXHUx''@;'; + put 'put ''ZWQ5dCBuXHUwMTAzbSIseXk6IiVkIG5cdTAxMDNtIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS8sb3JkaW5hbDpmdW5jdGlvbihFKXtyZXR1cm4gRX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMjU1OTA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1l''@;'; + put 'put ''KXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ4LXBzZXVkbyIse21vbnRoczoiSn5ceGUxXHhmMVx4ZmFceGUxfnJceGZkX0Z+XHhlOWJyXHhmYX5ceGUxclx4ZmRffk1ceGUxcmN+aF9ceGMxcH5yXHhlZGxffk1ceGUxXHhmZF9+Slx4ZmFceGYxXHhlOX5fSlx4ZmFsflx4ZmRfXHhj''@;'; + put 'put ''MVx4ZmF+Z1x4ZmFzdH5fU1x4ZTlwfnRceGU5bWJ+XHhlOXJfXHhkM35jdFx4ZjNiflx4ZTlyX1x4ZDF+XHhmM3ZceGU5bX5iXHhlOXJffkRceGU5Y1x4ZTl+bWJceGU5ciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSn5ceGUxXHhmMV9+Rlx4ZTliX35NXHhlMXJfflx4YzFwcl9+TVx4ZTFc''@;'; + put 'put ''eGZkX35KXHhmYVx4ZjFffkpceGZhbF9+XHhjMVx4ZmFnX35TXHhlOXBfflx4ZDNjdF9+XHhkMVx4ZjN2X35EXHhlOWMiLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiU35ceGZhXHhmMWRceGUxflx4ZmRfTVx4ZjN+XHhmMWRceGUxXHhmZH5fVFx4ZmFceGU5fnNk''@;'; + put 'put ''XHhlMVx4ZmR+X1dceGU5ZH5ceGYxXHhlOXNkflx4ZTFceGZkX1R+aFx4ZmFyc35kXHhlMVx4ZmRffkZyXHhlZGR+XHhlMVx4ZmRfU35ceGUxdFx4ZmFyfmRceGUxXHhmZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTflx4ZmFceGYxX35NXHhmM1x4ZjFfflRceGZhXHhlOV9+V1x4ZTlk''@;'; + put 'put ''X35UaFx4ZmFffkZyXHhlZF9+U1x4ZTF0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTflx4ZmFfTVx4ZjN+X1RceGZhX35XXHhlOV9UfmhfRnJ+X1NceGUxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMOiJERC9NTS9ZWVlZ''@;'; + put 'put ''IixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUflx4ZjNkXHhlMX5ceGZkIFx4ZTF0XSBMVCIsbmV4dERheToiW1R+XHhmM21ceGYzfnJyXHhmM353IFx4ZTF0XSBMVCIs''@;'; + put 'put ''bmV4dFdlZWs6ImRkZGQgW1x4ZTF0XSBMVCIsbGFzdERheToiW1x4ZGR+XHhlOXN0flx4ZTlyZFx4ZTF+XHhmZCBceGUxdF0gTFQiLGxhc3RXZWVrOiJbTH5ceGUxc3RdIGRkZGQgW1x4ZTF0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHhlZH5ceGYxICVzIixw''@;'; + put 'put ''YXN0OiIlcyBceGUxfmdceGYzIixzOiJceGUxIH5mXHhlOXcgfnNceGU5Y1x4ZjN+XHhmMWRzIixzczoiJWQgc35ceGU5Y1x4ZjNceGYxfmRzIixtOiJceGUxIH5tXHhlZFx4ZjF+XHhmYXRceGU5IixtbToiJWQgbX5ceGVkXHhmMVx4ZmF+dFx4ZTlzIixoOiJceGUxflx4ZjEgaFx4ZjN+XHhm''@;'; + put 'put ''YXIiLGhoOiIlZCBoflx4ZjNceGZhcnMiLGQ6Ilx4ZTEgfmRceGUxXHhmZCIsZGQ6IiVkIGR+XHhlMVx4ZmRzIixNOiJceGUxIH5tXHhmM1x4ZjF+dGgiLE1NOiIlZCBtflx4ZjNceGYxdH5ocyIseToiXHhlMSB+XHhmZFx4ZTlceGUxciIseXk6IiVkIFx4ZmR+XHhlOVx4ZTFycyJ9LGRheU9m''@;'; + put 'put ''TW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0odGh8c3R8bmR8cmQpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBNZT1FJTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/InRoIjoxPT09TWU/InN0IjoyPT09TWU/Im5kIjozPT09TWU/InJkIjoidGgiKX0sd2Vlazp7ZG93OjEsZG95OjR9''@;'; + put 'put ''fSl9KEwoMTU0MzkpKX0sOTA1ODpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInlvIix7bW9udGhzOiJTXHUxZWI5XHUwMzAxclx1MWViOVx1MDMwMV9FXHUwMzAwcmVcdTAzMDBsZVx1MDMwMF9cdTFlYjhyXHUxZWI5XHUwMzAw''@;'; + put 'put ''bmFcdTAzMDBfSVx1MDMwMGdiZVx1MDMwMV9FXHUwMzAwYmliaV9PXHUwMzAwa3VcdTAzMDBkdV9BZ1x1MWViOW1vX09cdTAzMDBndVx1MDMwMW5fT3dld2VfXHUxZWNjXHUwMzAwd2FcdTAzMDByYVx1MDMwMF9CZVx1MDMwMWx1XHUwMzAxX1x1MWVjY1x1MDMwMHBcdTFlYjlcdTAzMDBcdTAz''@;'; + put 'put ''MDAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IlNcdTFlYjlcdTAzMDFyX0VcdTAzMDBybF9cdTFlYjhybl9JXHUwMzAwZ2JfRVx1MDMwMGJpX09cdTAzMDBrdVx1MDMwMF9BZ1x1MWViOV9PXHUwMzAwZ3VcdTAzMDFfT3dlX1x1MWVjY1x1MDMwMHdhXHUwMzAwX0JlXHUwMzAxbF9cdTFlY2Nc''@;'; + put 'put ''dTAzMDBwXHUxZWI5XHUwMzAwXHUwMzAwIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJBXHUwMzAwaVx1MDMwMGt1XHUwMzAxX0FqZVx1MDMwMV9JXHUwMzAwc1x1MWViOVx1MDMwMWd1bl9cdTFlY2NqXHUxZWNkXHUwMzAxcnVcdTAzMDFfXHUxZWNjalx1MWVjZFx1MDMwMWJcdTFlY2RfXHUxZWI4''@;'; + put 'put ''dGlcdTAzMDBfQVx1MDMwMGJhXHUwMzAxbVx1MWViOVx1MDMwMXRhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkFcdTAzMDBpXHUwMzAwa19BamVcdTAzMDFfSVx1MDMwMHNcdTFlYjlcdTAzMDFfXHUxZWNjanJfXHUxZWNjamJfXHUxZWI4dGlcdTAzMDBfQVx1MDMwMGJhXHUwMzAxIi5z''@;'; + put 'put ''cGxpdCgiXyIpLHdlZWtkYXlzTWluOiJBXHUwMzAwaVx1MDMwMF9Bal9JXHUwMzAwc19cdTFlY2NyX1x1MWVjY2JfXHUxZWI4dF9BXHUwMzAwYiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0g''@;'; + put 'put ''WVlZWSIsTExMOiJEIE1NTU0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbT1x1MDMwMG5pXHUwMzAwIG5pXSBMVCIsbmV4dERheToiW1x1MWVjY1x1MDMwMGxhIG5pXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MWVjY3Nc''@;'; + put 'put ''dTFlYjlcdTAzMDAgdG9cdTAzMDFuJ2JcdTFlY2RdIFtuaV0gTFQiLGxhc3REYXk6IltBXHUwMzAwbmEgbmldIExUIixsYXN0V2VlazoiZGRkZCBbXHUxZWNjc1x1MWViOVx1MDMwMCB0b1x1MDMwMWxcdTFlY2RcdTAzMDFdIFtuaV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntm''@;'; + put 'put ''dXR1cmU6Im5pXHUwMzAxICVzIixwYXN0OiIlcyBrXHUxZWNkamFcdTAzMDEiLHM6ImlcdTAzMDBzXHUxZWI5anVcdTAzMDEgYWF5YVx1MDMwMSBkaWUiLHNzOiJhYXlhXHUwMzAxICVkIixtOiJpXHUwMzAwc1x1MWViOWp1XHUwMzAxIGthbiIsbW06ImlcdTAzMDBzXHUxZWI5anVcdTAzMDEg''@;'; + put 'put ''JWQiLGg6IndhXHUwMzAxa2F0aSBrYW4iLGhoOiJ3YVx1MDMwMWthdGkgJWQiLGQ6Ilx1MWVjZGpcdTFlY2RcdTAzMDEga2FuIixkZDoiXHUxZWNkalx1MWVjZFx1MDMwMSAlZCIsTToib3N1XHUwMzAwIGthbiIsTU06Im9zdVx1MDMwMCAlZCIseToiXHUxZWNkZHVcdTAzMDFuIGthbiIseXk6''@;'; + put 'put ''Ilx1MWVjZGR1XHUwMzAxbiAlZCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1x1MWVjZGpcdTFlY2RcdTAzMDFcc1xkezEsMn0vLG9yZGluYWw6Ilx1MWVjZGpcdTFlY2RcdTAzMDEgJWQiLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDc3OTA4OmZ1bmN0aW9uKFhlLEplLEwp''@;'; + put 'put ''eyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiemgtY24iLHttb250aHM6Ilx1NGUwMFx1NjcwOF9cdTRlOGNcdTY3MDhfXHU0ZTA5XHU2NzA4X1x1NTZkYlx1NjcwOF9cdTRlOTRcdTY3MDhfXHU1MTZkXHU2NzA4X1x1NGUwM1x1NjcwOF9cdTUxNmJcdTY3MDhf''@;'; + put 'put ''XHU0ZTVkXHU2NzA4X1x1NTM0MVx1NjcwOF9cdTUzNDFcdTRlMDBcdTY3MDhfXHU1MzQxXHU0ZThjXHU2NzA4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiIxXHU2NzA4XzJcdTY3MDhfM1x1NjcwOF80XHU2NzA4XzVcdTY3MDhfNlx1NjcwOF83XHU2NzA4XzhcdTY3MDhfOVx1NjcwOF8xMFx1''@;'; + put 'put ''NjcwOF8xMVx1NjcwOF8xMlx1NjcwOCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHU2NjFmXHU2NzFmXHU2NWU1X1x1NjYxZlx1NjcxZlx1NGUwMF9cdTY2MWZcdTY3MWZcdTRlOGNfXHU2NjFmXHU2NzFmXHU0ZTA5X1x1NjYxZlx1NjcxZlx1NTZkYl9cdTY2MWZcdTY3MWZcdTRlOTRfXHU2NjFm''@;'; + put 'put ''XHU2NzFmXHU1MTZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1NTQ2OFx1NjVlNV9cdTU0NjhcdTRlMDBfXHU1NDY4XHU0ZThjX1x1NTQ2OFx1NGUwOV9cdTU0NjhcdTU2ZGJfXHU1NDY4XHU0ZTk0X1x1NTQ2OFx1NTE2ZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHU2NWU1X1x1''@;'; + put 'put ''NGUwMF9cdTRlOGNfXHU0ZTA5X1x1NTZkYl9cdTRlOTRfXHU1MTZkIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IllZWVkvTU0vREQiLExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2''@;'; + put 'put ''NWU1QWhcdTcwYjltbVx1NTIwNiIsTExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1ZGRkZEFoXHU3MGI5bW1cdTUyMDYiLGw6IllZWVkvTS9EIixsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsbGxsbDoiWVlZWVx1''@;'; + put 'put ''NWU3NE1cdTY3MDhEXHU2NWU1ZGRkZCBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1NTFjY1x1NjY2OHxcdTY1ZTlcdTRlMGF8XHU0ZTBhXHU1MzQ4fFx1NGUyZFx1NTM0OHxcdTRlMGJcdTUzNDh8XHU2NjVhXHU0ZTBhLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oRSxNZSl7cmV0dXJuIDEyPT09''@;'; + put 'put ''RSYmKEU9MCksIlx1NTFjY1x1NjY2OCI9PT1NZXx8Ilx1NjVlOVx1NGUwYSI9PT1NZXx8Ilx1NGUwYVx1NTM0OCI9PT1NZT9FOiJcdTRlMGJcdTUzNDgiPT09TWV8fCJcdTY2NWFcdTRlMGEiPT09TWU/RSsxMjpFPj0xMT9FOkUrMTJ9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7dmFyIFE9''@;'; + put 'put ''MTAwKkUrTWU7cmV0dXJuIFE8NjAwPyJcdTUxY2NcdTY2NjgiOlE8OTAwPyJcdTY1ZTlcdTRlMGEiOlE8MTEzMD8iXHU0ZTBhXHU1MzQ4IjpRPDEyMzA/Ilx1NGUyZFx1NTM0OCI6UTwxODAwPyJcdTRlMGJcdTUzNDgiOiJcdTY2NWFcdTRlMGEifSxjYWxlbmRhcjp7c2FtZURheToiW1x1NGVj''@;'; + put 'put ''YVx1NTkyOV1MVCIsbmV4dERheToiW1x1NjYwZVx1NTkyOV1MVCIsbmV4dFdlZWs6ZnVuY3Rpb24oRSl7cmV0dXJuIEUud2VlaygpIT09dGhpcy53ZWVrKCk/IltcdTRlMGJdZGRkTFQiOiJbXHU2NzJjXWRkZExUIn0sbGFzdERheToiW1x1NjYyOFx1NTkyOV1MVCIsbGFzdFdlZWs6ZnVuY3Rp''@;'; + put 'put ''b24oRSl7cmV0dXJuIHRoaXMud2VlaygpIT09RS53ZWVrKCk/IltcdTRlMGFdZGRkTFQiOiJbXHU2NzJjXWRkZExUIn0sc2FtZUVsc2U6IkwifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KFx1NjVlNXxcdTY3MDh8XHU1NDY4KS8sb3JkaW5hbDpmdW5jdGlvbihFLE1lKXtzd2l0''@;'; + put 'put ''Y2goTWUpe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0dXJuIEUrIlx1NjVlNSI7Y2FzZSJNIjpyZXR1cm4gRSsiXHU2NzA4IjtjYXNlInciOmNhc2UiVyI6cmV0dXJuIEUrIlx1NTQ2OCI7ZGVmYXVsdDpyZXR1cm4gRX19LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1NTQwZSIscGFz''@;'; + put 'put ''dDoiJXNcdTUyNGQiLHM6Ilx1NTFlMFx1NzlkMiIsc3M6IiVkIFx1NzlkMiIsbToiMSBcdTUyMDZcdTk0OWYiLG1tOiIlZCBcdTUyMDZcdTk0OWYiLGg6IjEgXHU1YzBmXHU2NWY2IixoaDoiJWQgXHU1YzBmXHU2NWY2IixkOiIxIFx1NTkyOSIsZGQ6IiVkIFx1NTkyOSIsdzoiMSBcdTU0Njgi''@;'; + put 'put ''LHd3OiIlZCBcdTU0NjgiLE06IjEgXHU0ZTJhXHU2NzA4IixNTToiJWQgXHU0ZTJhXHU2NzA4Iix5OiIxIFx1NWU3NCIseXk6IiVkIFx1NWU3NCJ9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDg4Njc6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmlj''@;'; + put 'put ''dCI7bWUuZGVmaW5lTG9jYWxlKCJ6aC1oayIse21vbnRoczoiXHU0ZTAwXHU2NzA4X1x1NGU4Y1x1NjcwOF9cdTRlMDlcdTY3MDhfXHU1NmRiXHU2NzA4X1x1NGU5NFx1NjcwOF9cdTUxNmRcdTY3MDhfXHU0ZTAzXHU2NzA4X1x1NTE2Ylx1NjcwOF9cdTRlNWRcdTY3MDhfXHU1MzQxXHU2NzA4''@;'; + put 'put ''X1x1NTM0MVx1NGUwMFx1NjcwOF9cdTUzNDFcdTRlOGNcdTY3MDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjFcdTY3MDhfMlx1NjcwOF8zXHU2NzA4XzRcdTY3MDhfNVx1NjcwOF82XHU2NzA4XzdcdTY3MDhfOFx1NjcwOF85XHU2NzA4XzEwXHU2NzA4XzExXHU2NzA4XzEyXHU2NzA4Ii5z''@;'; + put 'put ''cGxpdCgiXyIpLHdlZWtkYXlzOiJcdTY2MWZcdTY3MWZcdTY1ZTVfXHU2NjFmXHU2NzFmXHU0ZTAwX1x1NjYxZlx1NjcxZlx1NGU4Y19cdTY2MWZcdTY3MWZcdTRlMDlfXHU2NjFmXHU2NzFmXHU1NmRiX1x1NjYxZlx1NjcxZlx1NGU5NF9cdTY2MWZcdTY3MWZcdTUxNmQiLnNwbGl0KCJfIiks''@;'; + put 'put ''d2Vla2RheXNTaG9ydDoiXHU5MDMxXHU2NWU1X1x1OTAzMVx1NGUwMF9cdTkwMzFcdTRlOGNfXHU5MDMxXHU0ZTA5X1x1OTAzMVx1NTZkYl9cdTkwMzFcdTRlOTRfXHU5MDMxXHU1MTZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTY1ZTVfXHU0ZTAwX1x1NGU4Y19cdTRlMDlfXHU1NmRi''@;'; + put 'put ''X1x1NGU5NF9cdTUxNmQiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS9NTS9ERCIsTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUgSEg6bW0iLExMTEw6IllZWVlcdTVl''@;'; + put 'put ''NzRNXHU2NzA4RFx1NjVlNWRkZGQgSEg6bW0iLGw6IllZWVkvTS9EIixsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsbGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1ZGRkZCBISDptbSJ9LG1lcmlkaWVtUGFyc2U6''@;'; + put 'put ''L1x1NTFjY1x1NjY2OHxcdTY1ZTlcdTRlMGF8XHU0ZTBhXHU1MzQ4fFx1NGUyZFx1NTM0OHxcdTRlMGJcdTUzNDh8XHU2NjVhXHU0ZTBhLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oRSxNZSl7cmV0dXJuIDEyPT09RSYmKEU9MCksIlx1NTFjY1x1NjY2OCI9PT1NZXx8Ilx1NjVlOVx1NGUwYSI9''@;'; + put 'put ''PT1NZXx8Ilx1NGUwYVx1NTM0OCI9PT1NZT9FOiJcdTRlMmRcdTUzNDgiPT09TWU/RT49MTE/RTpFKzEyOiJcdTRlMGJcdTUzNDgiPT09TWV8fCJcdTY2NWFcdTRlMGEiPT09TWU/RSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsTWUsVSl7dmFyIFE9MTAwKkUrTWU7cmV0dXJuIFE8''@;'; + put 'put ''NjAwPyJcdTUxY2NcdTY2NjgiOlE8OTAwPyJcdTY1ZTlcdTRlMGEiOlE8MTIwMD8iXHU0ZTBhXHU1MzQ4IjoxMjAwPT09UT8iXHU0ZTJkXHU1MzQ4IjpRPDE4MDA/Ilx1NGUwYlx1NTM0OCI6Ilx1NjY1YVx1NGUwYSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHU0ZWNhXHU1OTI5XUxUIixuZXh0''@;'; + put 'put ''RGF5OiJbXHU2NjBlXHU1OTI5XUxUIixuZXh0V2VlazoiW1x1NGUwYl1kZGRkTFQiLGxhc3REYXk6IltcdTY2MjhcdTU5MjldTFQiLGxhc3RXZWVrOiJbXHU0ZTBhXWRkZGRMVCIsc2FtZUVsc2U6IkwifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KFx1NjVlNXxcdTY3MDh8XHU5''@;'; + put 'put ''MDMxKS8sb3JkaW5hbDpmdW5jdGlvbihFLE1lKXtzd2l0Y2goTWUpe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0dXJuIEUrIlx1NjVlNSI7Y2FzZSJNIjpyZXR1cm4gRSsiXHU2NzA4IjtjYXNlInciOmNhc2UiVyI6cmV0dXJuIEUrIlx1OTAzMSI7ZGVmYXVsdDpyZXR1cm4gRX19LHJl''@;'; + put 'put ''bGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1NWY4YyIscGFzdDoiJXNcdTUyNGQiLHM6Ilx1NWU3ZVx1NzlkMiIsc3M6IiVkIFx1NzlkMiIsbToiMSBcdTUyMDZcdTk0MTgiLG1tOiIlZCBcdTUyMDZcdTk0MTgiLGg6IjEgXHU1YzBmXHU2NjQyIixoaDoiJWQgXHU1YzBmXHU2NjQyIixkOiIxIFx1''@;'; + put 'put ''NTkyOSIsZGQ6IiVkIFx1NTkyOSIsTToiMSBcdTUwMGJcdTY3MDgiLE1NOiIlZCBcdTUwMGJcdTY3MDgiLHk6IjEgXHU1ZTc0Iix5eToiJWQgXHU1ZTc0In19KX0oTCgxNTQzOSkpfSwzMTEzMzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVM''@;'; + put 'put ''b2NhbGUoInpoLW1vIix7bW9udGhzOiJcdTRlMDBcdTY3MDhfXHU0ZThjXHU2NzA4X1x1NGUwOVx1NjcwOF9cdTU2ZGJcdTY3MDhfXHU0ZTk0XHU2NzA4X1x1NTE2ZFx1NjcwOF9cdTRlMDNcdTY3MDhfXHU1MTZiXHU2NzA4X1x1NGU1ZFx1NjcwOF9cdTUzNDFcdTY3MDhfXHU1MzQxXHU0ZTAw''@;'; + put 'put ''XHU2NzA4X1x1NTM0MVx1NGU4Y1x1NjcwOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiMVx1NjcwOF8yXHU2NzA4XzNcdTY3MDhfNFx1NjcwOF81XHU2NzA4XzZcdTY3MDhfN1x1NjcwOF84XHU2NzA4XzlcdTY3MDhfMTBcdTY3MDhfMTFcdTY3MDhfMTJcdTY3MDgiLnNwbGl0KCJfIiksd2Vl''@;'; + put 'put ''a2RheXM6Ilx1NjYxZlx1NjcxZlx1NjVlNV9cdTY2MWZcdTY3MWZcdTRlMDBfXHU2NjFmXHU2NzFmXHU0ZThjX1x1NjYxZlx1NjcxZlx1NGUwOV9cdTY2MWZcdTY3MWZcdTU2ZGJfXHU2NjFmXHU2NzFmXHU0ZTk0X1x1NjYxZlx1NjcxZlx1NTE2ZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0''@;'; + put 'put ''OiJcdTkwMzFcdTY1ZTVfXHU5MDMxXHU0ZTAwX1x1OTAzMVx1NGU4Y19cdTkwMzFcdTRlMDlfXHU5MDMxXHU1NmRiX1x1OTAzMVx1NGU5NF9cdTkwMzFcdTUxNmQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1NjVlNV9cdTRlMDBfXHU0ZThjX1x1NGUwOV9cdTU2ZGJfXHU0ZTk0X1x1NTE2''@;'; + put 'put ''ZCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsTExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2''@;'; + put 'put ''NWU1ZGRkZCBISDptbSIsbDoiRC9NL1lZWVkiLGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IEhIOm1tIixsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHU1MWNjXHU2NjY4''@;'; + put 'put ''fFx1NjVlOVx1NGUwYXxcdTRlMGFcdTUzNDh8XHU0ZTJkXHU1MzQ4fFx1NGUwYlx1NTM0OHxcdTY2NWFcdTRlMGEvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLE1lKXtyZXR1cm4gMTI9PT1FJiYoRT0wKSwiXHU1MWNjXHU2NjY4Ij09PU1lfHwiXHU2NWU5XHU0ZTBhIj09PU1lfHwiXHU0ZTBh''@;'; + put 'put ''XHU1MzQ4Ij09PU1lP0U6Ilx1NGUyZFx1NTM0OCI9PT1NZT9FPj0xMT9FOkUrMTI6Ilx1NGUwYlx1NTM0OCI9PT1NZXx8Ilx1NjY1YVx1NGUwYSI9PT1NZT9FKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oRSxNZSxVKXt2YXIgUT0xMDAqRStNZTtyZXR1cm4gUTw2MDA/Ilx1NTFjY1x1''@;'; + put 'put ''NjY2OCI6UTw5MDA/Ilx1NjVlOVx1NGUwYSI6UTwxMTMwPyJcdTRlMGFcdTUzNDgiOlE8MTIzMD8iXHU0ZTJkXHU1MzQ4IjpRPDE4MDA/Ilx1NGUwYlx1NTM0OCI6Ilx1NjY1YVx1NGUwYSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHU0ZWNhXHU1OTI5XSBMVCIsbmV4dERheToiW1x1NjYwZVx1''@;'; + put 'put ''NTkyOV0gTFQiLG5leHRXZWVrOiJbXHU0ZTBiXWRkZGQgTFQiLGxhc3REYXk6IltcdTY2MjhcdTU5MjldIExUIixsYXN0V2VlazoiW1x1NGUwYV1kZGRkIExUIixzYW1lRWxzZToiTCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oXHU2NWU1fFx1NjcwOHxcdTkwMzEpLyxvcmRp''@;'; + put 'put ''bmFsOmZ1bmN0aW9uKEUsTWUpe3N3aXRjaChNZSl7Y2FzZSJkIjpjYXNlIkQiOmNhc2UiREREIjpyZXR1cm4gRSsiXHU2NWU1IjtjYXNlIk0iOnJldHVybiBFKyJcdTY3MDgiO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gRSsiXHU5MDMxIjtkZWZhdWx0OnJldHVybiBFfX0scmVsYXRpdmVUaW1l''@;'; + put 'put ''OntmdXR1cmU6IiVzXHU1MTY3IixwYXN0OiIlc1x1NTI0ZCIsczoiXHU1ZTdlXHU3OWQyIixzczoiJWQgXHU3OWQyIixtOiIxIFx1NTIwNlx1OTQxOCIsbW06IiVkIFx1NTIwNlx1OTQxOCIsaDoiMSBcdTVjMGZcdTY2NDIiLGhoOiIlZCBcdTVjMGZcdTY2NDIiLGQ6IjEgXHU1OTI5IixkZDoi''@;'; + put 'put ''JWQgXHU1OTI5IixNOiIxIFx1NTAwYlx1NjcwOCIsTU06IiVkIFx1NTAwYlx1NjcwOCIseToiMSBcdTVlNzQiLHl5OiIlZCBcdTVlNzQifX0pfShMKDE1NDM5KSl9LDgzMjkxOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiemgt''@;'; + put 'put ''dHciLHttb250aHM6Ilx1NGUwMFx1NjcwOF9cdTRlOGNcdTY3MDhfXHU0ZTA5XHU2NzA4X1x1NTZkYlx1NjcwOF9cdTRlOTRcdTY3MDhfXHU1MTZkXHU2NzA4X1x1NGUwM1x1NjcwOF9cdTUxNmJcdTY3MDhfXHU0ZTVkXHU2NzA4X1x1NTM0MVx1NjcwOF9cdTUzNDFcdTRlMDBcdTY3MDhfXHU1''@;'; + put 'put ''MzQxXHU0ZThjXHU2NzA4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiIxXHU2NzA4XzJcdTY3MDhfM1x1NjcwOF80XHU2NzA4XzVcdTY3MDhfNlx1NjcwOF83XHU2NzA4XzhcdTY3MDhfOVx1NjcwOF8xMFx1NjcwOF8xMVx1NjcwOF8xMlx1NjcwOCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHU2''@;'; + put 'put ''NjFmXHU2NzFmXHU2NWU1X1x1NjYxZlx1NjcxZlx1NGUwMF9cdTY2MWZcdTY3MWZcdTRlOGNfXHU2NjFmXHU2NzFmXHU0ZTA5X1x1NjYxZlx1NjcxZlx1NTZkYl9cdTY2MWZcdTY3MWZcdTRlOTRfXHU2NjFmXHU2NzFmXHU1MTZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1OTAzMVx1''@;'; + put 'put ''NjVlNV9cdTkwMzFcdTRlMDBfXHU5MDMxXHU0ZThjX1x1OTAzMVx1NGUwOV9cdTkwMzFcdTU2ZGJfXHU5MDMxXHU0ZTk0X1x1OTAzMVx1NTE2ZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHU2NWU1X1x1NGUwMF9cdTRlOGNfXHU0ZTA5X1x1NTZkYl9cdTRlOTRfXHU1MTZkIi5zcGxpdCgi''@;'; + put 'put ''XyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IllZWVkvTU0vREQiLExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IEhIOm1tIixMTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkIEhI''@;'; + put 'put ''Om1tIixsOiJZWVlZL00vRCIsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUgSEg6bW0iLGxsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNWRkZGQgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTUxY2NcdTY2Njh8XHU2NWU5XHU0''@;'; + put 'put ''ZTBhfFx1NGUwYVx1NTM0OHxcdTRlMmRcdTUzNDh8XHU0ZTBiXHU1MzQ4fFx1NjY1YVx1NGUwYS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKEUsTWUpe3JldHVybiAxMj09PUUmJihFPTApLCJcdTUxY2NcdTY2NjgiPT09TWV8fCJcdTY1ZTlcdTRlMGEiPT09TWV8fCJcdTRlMGFcdTUzNDgiPT09''@;'; + put 'put ''TWU/RToiXHU0ZTJkXHU1MzQ4Ij09PU1lP0U+PTExP0U6RSsxMjoiXHU0ZTBiXHU1MzQ4Ij09PU1lfHwiXHU2NjVhXHU0ZTBhIj09PU1lP0UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihFLE1lLFUpe3ZhciBRPTEwMCpFK01lO3JldHVybiBRPDYwMD8iXHU1MWNjXHU2NjY4IjpRPDkw''@;'; + put 'put ''MD8iXHU2NWU5XHU0ZTBhIjpRPDExMzA/Ilx1NGUwYVx1NTM0OCI6UTwxMjMwPyJcdTRlMmRcdTUzNDgiOlE8MTgwMD8iXHU0ZTBiXHU1MzQ4IjoiXHU2NjVhXHU0ZTBhIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTRlY2FcdTU5MjldIExUIixuZXh0RGF5OiJbXHU2NjBlXHU1OTI5XSBMVCIs''@;'; + put 'put ''bmV4dFdlZWs6IltcdTRlMGJdZGRkZCBMVCIsbGFzdERheToiW1x1NjYyOFx1NTkyOV0gTFQiLGxhc3RXZWVrOiJbXHU0ZTBhXWRkZGQgTFQiLHNhbWVFbHNlOiJMIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdTY1ZTV8XHU2NzA4fFx1OTAzMSkvLG9yZGluYWw6ZnVuY3Rp''@;'; + put 'put ''b24oRSxNZSl7c3dpdGNoKE1lKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBFKyJcdTY1ZTUiO2Nhc2UiTSI6cmV0dXJuIEUrIlx1NjcwOCI7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBFKyJcdTkwMzEiO2RlZmF1bHQ6cmV0dXJuIEV9fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToi''@;'; + put 'put ''JXNcdTVmOGMiLHBhc3Q6IiVzXHU1MjRkIixzOiJcdTVlN2VcdTc5ZDIiLHNzOiIlZCBcdTc5ZDIiLG06IjEgXHU1MjA2XHU5NDE4IixtbToiJWQgXHU1MjA2XHU5NDE4IixoOiIxIFx1NWMwZlx1NjY0MiIsaGg6IiVkIFx1NWMwZlx1NjY0MiIsZDoiMSBcdTU5MjkiLGRkOiIlZCBcdTU5Mjki''@;'; + put 'put ''LE06IjEgXHU1MDBiXHU2NzA4IixNTToiJWQgXHU1MDBiXHU2NzA4Iix5OiIxIFx1NWU3NCIseXk6IiVkIFx1NWU3NCJ9fSl9KEwoMTU0MzkpKX0sMTU0Mzk6ZnVuY3Rpb24oWGUsSmUsTCl7KFhlPUwubm1kKFhlKSkuZXhwb3J0cz1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgbWUsc2U7''@;'; + put 'put ''ZnVuY3Rpb24gQigpe3JldHVybiBtZS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTWUoemUpe3JldHVybiB6ZSBpbnN0YW5jZW9mIEFycmF5fHwiW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHplKX1mdW5jdGlvbiBVKHplKXtyZXR1cm4g''@;'; + put 'put ''bnVsbCE9emUmJiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHplKX1mdW5jdGlvbiBRKHplLFZ0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHplLFZ0KX1mdW5jdGlvbiBaKHplKXtpZihPYmplY3QuZ2V0T3du''@;'; + put 'put ''UHJvcGVydHlOYW1lcylyZXR1cm4gMD09PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHplKS5sZW5ndGg7dmFyIFZ0O2ZvcihWdCBpbiB6ZSlpZihRKHplLFZ0KSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBpZSh6ZSl7cmV0dXJuIHZvaWQgMD09PXplfWZ1bmN0aW9uIGxlKHplKXty''@;'; + put 'put ''ZXR1cm4ibnVtYmVyIj09dHlwZW9mIHplfHwiW29iamVjdCBOdW1iZXJdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh6ZSl9ZnVuY3Rpb24gWSh6ZSl7cmV0dXJuIHplIGluc3RhbmNlb2YgRGF0ZXx8IltvYmplY3QgRGF0ZV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmlu''@;'; + put 'put ''Zy5jYWxsKHplKX1mdW5jdGlvbiBXKHplLFZ0KXt2YXIgUm4saG49W10sdHI9emUubGVuZ3RoO2ZvcihSbj0wO1JuPHRyOysrUm4paG4ucHVzaChWdCh6ZVtSbl0sUm4pKTtyZXR1cm4gaG59ZnVuY3Rpb24gTih6ZSxWdCl7Zm9yKHZhciBobiBpbiBWdClRKFZ0LGhuKSYmKHplW2huXT1WdFto''@;'; + put 'put ''bl0pO3JldHVybiBRKFZ0LCJ0b1N0cmluZyIpJiYoemUudG9TdHJpbmc9VnQudG9TdHJpbmcpLFEoVnQsInZhbHVlT2YiKSYmKHplLnZhbHVlT2Y9VnQudmFsdWVPZiksemV9ZnVuY3Rpb24gZWUoemUsVnQsaG4sUm4pe3JldHVybiBLbyh6ZSxWdCxobixSbiwhMCkudXRjKCl9ZnVuY3Rpb24g''@;'; + put 'put ''Sih6ZSl7cmV0dXJuIG51bGw9PXplLl9wZiYmKHplLl9wZj17ZW1wdHk6ITEsdW51c2VkVG9rZW5zOltdLHVudXNlZElucHV0OltdLG92ZXJmbG93Oi0yLGNoYXJzTGVmdE92ZXI6MCxudWxsSW5wdXQ6ITEsaW52YWxpZEVyYTpudWxsLGludmFsaWRNb250aDpudWxsLGludmFsaWRGb3JtYXQ6''@;'; + put 'put ''ITEsdXNlckludmFsaWRhdGVkOiExLGlzbzohMSxwYXJzZWREYXRlUGFydHM6W10sZXJhOm51bGwsbWVyaWRpZW06bnVsbCxyZmMyODIyOiExLHdlZWtkYXlNaXNtYXRjaDohMX0pLHplLl9wZn1mdW5jdGlvbiBvZSh6ZSl7aWYobnVsbD09emUuX2lzVmFsaWQpe3ZhciBWdD1KKHplKSxobj1z''@;'; + put 'put ''ZS5jYWxsKFZ0LnBhcnNlZERhdGVQYXJ0cyxmdW5jdGlvbih0cil7cmV0dXJuIG51bGwhPXRyfSksUm49IWlzTmFOKHplLl9kLmdldFRpbWUoKSkmJlZ0Lm92ZXJmbG93PDAmJiFWdC5lbXB0eSYmIVZ0LmludmFsaWRFcmEmJiFWdC5pbnZhbGlkTW9udGgmJiFWdC5pbnZhbGlkV2Vla2RheSYm''@;'; + put 'put ''IVZ0LndlZWtkYXlNaXNtYXRjaCYmIVZ0Lm51bGxJbnB1dCYmIVZ0LmludmFsaWRGb3JtYXQmJiFWdC51c2VySW52YWxpZGF0ZWQmJighVnQubWVyaWRpZW18fFZ0Lm1lcmlkaWVtJiZobik7aWYoemUuX3N0cmljdCYmKFJuPVJuJiYwPT09VnQuY2hhcnNMZWZ0T3ZlciYmMD09PVZ0LnVudXNl''@;'; + put 'put ''ZFRva2Vucy5sZW5ndGgmJnZvaWQgMD09PVZ0LmJpZ0hvdXIpLG51bGwhPU9iamVjdC5pc0Zyb3plbiYmT2JqZWN0LmlzRnJvemVuKHplKSlyZXR1cm4gUm47emUuX2lzVmFsaWQ9Um59cmV0dXJuIHplLl9pc1ZhbGlkfWZ1bmN0aW9uIGNlKHplKXt2YXIgVnQ9ZWUoTmFOKTtyZXR1cm4gbnVs''@;'; + put 'put ''bCE9emU/TihKKFZ0KSx6ZSk6SihWdCkudXNlckludmFsaWRhdGVkPSEwLFZ0fXNlPUFycmF5LnByb3RvdHlwZS5zb21lP0FycmF5LnByb3RvdHlwZS5zb21lOmZ1bmN0aW9uKHplKXt2YXIgUm4sVnQ9T2JqZWN0KHRoaXMpLGhuPVZ0Lmxlbmd0aD4+PjA7Zm9yKFJuPTA7Um48aG47Um4rKylp''@;'; + put 'put ''ZihSbiBpbiBWdCYmemUuY2FsbCh0aGlzLFZ0W1JuXSxSbixWdCkpcmV0dXJuITA7cmV0dXJuITF9O3ZhciBkZT1CLm1vbWVudFByb3BlcnRpZXM9W10sdmU9ITE7ZnVuY3Rpb24gQWUoemUsVnQpe3ZhciBobixSbix0cixlaT1kZS5sZW5ndGg7aWYoaWUoVnQuX2lzQU1vbWVudE9iamVjdCl8''@;'; + put 'put ''fCh6ZS5faXNBTW9tZW50T2JqZWN0PVZ0Ll9pc0FNb21lbnRPYmplY3QpLGllKFZ0Ll9pKXx8KHplLl9pPVZ0Ll9pKSxpZShWdC5fZil8fCh6ZS5fZj1WdC5fZiksaWUoVnQuX2wpfHwoemUuX2w9VnQuX2wpLGllKFZ0Ll9zdHJpY3QpfHwoemUuX3N0cmljdD1WdC5fc3RyaWN0KSxpZShWdC5f''@;'; + put 'put ''dHptKXx8KHplLl90em09VnQuX3R6bSksaWUoVnQuX2lzVVRDKXx8KHplLl9pc1VUQz1WdC5faXNVVEMpLGllKFZ0Ll9vZmZzZXQpfHwoemUuX29mZnNldD1WdC5fb2Zmc2V0KSxpZShWdC5fcGYpfHwoemUuX3BmPUooVnQpKSxpZShWdC5fbG9jYWxlKXx8KHplLl9sb2NhbGU9VnQuX2xvY2Fs''@;'; + put 'put ''ZSksZWk+MClmb3IoaG49MDtobjxlaTtobisrKWllKHRyPVZ0W1JuPWRlW2huXV0pfHwoemVbUm5dPXRyKTtyZXR1cm4gemV9ZnVuY3Rpb24ga2UoemUpe0FlKHRoaXMsemUpLHRoaXMuX2Q9bmV3IERhdGUobnVsbCE9emUuX2Q/emUuX2QuZ2V0VGltZSgpOk5hTiksdGhpcy5pc1ZhbGlkKCl8''@;'; + put 'put ''fCh0aGlzLl9kPW5ldyBEYXRlKE5hTikpLCExPT09dmUmJih2ZT0hMCxCLnVwZGF0ZU9mZnNldCh0aGlzKSx2ZT0hMSl9ZnVuY3Rpb24gU2UoemUpe3JldHVybiB6ZSBpbnN0YW5jZW9mIGtlfHxudWxsIT16ZSYmbnVsbCE9emUuX2lzQU1vbWVudE9iamVjdH1mdW5jdGlvbiBJZSh6ZSl7ITE9''@;'; + put 'put ''PT1CLnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncyYmInVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLndhcm4mJmNvbnNvbGUud2FybigiRGVwcmVjYXRpb24gd2FybmluZzogIit6ZSl9ZnVuY3Rpb24gVGUoemUsVnQpe3ZhciBobj0hMDtyZXR1cm4gTihmdW5jdGlvbigp''@;'; + put 'put ''e2lmKG51bGwhPUIuZGVwcmVjYXRpb25IYW5kbGVyJiZCLmRlcHJlY2F0aW9uSGFuZGxlcihudWxsLHplKSxobil7dmFyIHRyLGVpLFlpLFJuPVtdLGRhPWFyZ3VtZW50cy5sZW5ndGg7Zm9yKGVpPTA7ZWk8ZGE7ZWkrKyl7aWYodHI9IiIsIm9iamVjdCI9PXR5cGVvZiBhcmd1bWVudHNbZWld''@;'; + put 'put ''KXtmb3IoWWkgaW4gdHIrPSJcblsiK2VpKyJdICIsYXJndW1lbnRzWzBdKVEoYXJndW1lbnRzWzBdLFlpKSYmKHRyKz1ZaSsiOiAiK2FyZ3VtZW50c1swXVtZaV0rIiwgIik7dHI9dHIuc2xpY2UoMCwtMil9ZWxzZSB0cj1hcmd1bWVudHNbZWldO1JuLnB1c2godHIpfUllKHplKyJcbkFyZ3Vt''@;'; + put 'put ''ZW50czogIitBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChSbikuam9pbigiIikrIlxuIisobmV3IEVycm9yKS5zdGFjayksaG49ITF9cmV0dXJuIFZ0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sVnQpfXZhciB4LEVlPXt9O2Z1bmN0aW9uIGhlKHplLFZ0KXtudWxsIT1CLmRlcHJlY2F0aW9u''@;'; + put 'put ''SGFuZGxlciYmQi5kZXByZWNhdGlvbkhhbmRsZXIoemUsVnQpLEVlW3plXXx8KEllKFZ0KSxFZVt6ZV09ITApfWZ1bmN0aW9uIE8oemUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgRnVuY3Rpb24mJnplIGluc3RhbmNlb2YgRnVuY3Rpb258fCJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1PYmpl''@;'; + put 'put ''Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoemUpfWZ1bmN0aW9uIG5lKHplLFZ0KXt2YXIgUm4saG49Tih7fSx6ZSk7Zm9yKFJuIGluIFZ0KVEoVnQsUm4pJiYoVSh6ZVtSbl0pJiZVKFZ0W1JuXSk/KGhuW1JuXT17fSxOKGhuW1JuXSx6ZVtSbl0pLE4oaG5bUm5dLFZ0W1JuXSkpOm51bGwh''@;'; + put 'put ''PVZ0W1JuXT9obltSbl09VnRbUm5dOmRlbGV0ZSBobltSbl0pO2ZvcihSbiBpbiB6ZSlRKHplLFJuKSYmIVEoVnQsUm4pJiZVKHplW1JuXSkmJihobltSbl09Tih7fSxobltSbl0pKTtyZXR1cm4gaG59ZnVuY3Rpb24gdGUoemUpe251bGwhPXplJiZ0aGlzLnNldCh6ZSl9Qi5zdXBwcmVzc0Rl''@;'; + put 'put ''cHJlY2F0aW9uV2FybmluZ3M9ITEsQi5kZXByZWNhdGlvbkhhbmRsZXI9bnVsbCx4PU9iamVjdC5rZXlzP09iamVjdC5rZXlzOmZ1bmN0aW9uKHplKXt2YXIgVnQsaG49W107Zm9yKFZ0IGluIHplKVEoemUsVnQpJiZobi5wdXNoKFZ0KTtyZXR1cm4gaG59O2Z1bmN0aW9uIFQoemUsVnQsaG4p''@;'; + put 'put ''e3ZhciBSbj0iIitNYXRoLmFicyh6ZSk7cmV0dXJuKHplPj0wP2huPyIrIjoiIjoiLSIpK01hdGgucG93KDEwLE1hdGgubWF4KDAsVnQtUm4ubGVuZ3RoKSkudG9TdHJpbmcoKS5zdWJzdHIoMSkrUm59dmFyIFM9LyhcW1teXFtdKlxdKXwoXFwpPyhbSGhdbW0oc3MpP3xNb3xNTT9NP00/fERv''@;'; + put 'put ''fERERG98REQ/RD9EP3xkZGQ/ZD98ZG8/fHdbb3x3XT98V1tvfFddP3xRbz98TnsxLDV9fFlZWVlZWXxZWVlZWXxZWVlZfFlZfHl7Miw0fXx5bz98Z2coZ2dnPyk/fEdHKEdHRz8pP3xlfEV8YXxBfGhoP3xISD98a2s/fG1tP3xzcz98U3sxLDl9fHh8WHx6ej98Wlo/fC4pL2csRj0vKFxbW15c''@;'; + put 'put ''W10qXF0pfChcXCk/KExUU3xMVHxMTD9MP0w/fGx7MSw0fSkvZyx5ZT17fSxDZT17fTtmdW5jdGlvbiBEZSh6ZSxWdCxobixSbil7dmFyIHRyPVJuOyJzdHJpbmciPT10eXBlb2YgUm4mJih0cj1mdW5jdGlvbigpe3JldHVybiB0aGlzW1JuXSgpfSksemUmJihDZVt6ZV09dHIpLFZ0JiYoQ2Vb''@;'; + put 'put ''VnRbMF1dPWZ1bmN0aW9uKCl7cmV0dXJuIFQodHIuYXBwbHkodGhpcyxhcmd1bWVudHMpLFZ0WzFdLFZ0WzJdKX0pLGhuJiYoQ2VbaG5dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm9yZGluYWwodHIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHplKX0pfWZ1bmN0aW9uIFBl''@;'; + put 'put ''KHplKXtyZXR1cm4gemUubWF0Y2goL1xbW1xzXFNdLyk/emUucmVwbGFjZSgvXlxbfFxdJC9nLCIiKTp6ZS5yZXBsYWNlKC9cXC9nLCIiKX1mdW5jdGlvbiAkZSh6ZSxWdCl7cmV0dXJuIHplLmlzVmFsaWQoKT8oVnQ9Z3QoVnQsemUubG9jYWxlRGF0YSgpKSx5ZVtWdF09eWVbVnRdfHxmdW5j''@;'; + put 'put ''dGlvbiBRZSh6ZSl7dmFyIGhuLFJuLFZ0PXplLm1hdGNoKFMpO2Zvcihobj0wLFJuPVZ0Lmxlbmd0aDtobjxSbjtobisrKVZ0W2huXT1DZVtWdFtobl1dP0NlW1Z0W2huXV06UGUoVnRbaG5dKTtyZXR1cm4gZnVuY3Rpb24odHIpe3ZhciBZaSxlaT0iIjtmb3IoWWk9MDtZaTxSbjtZaSsrKWVp''@;'; + put 'put ''Kz1PKFZ0W1lpXSk/VnRbWWldLmNhbGwodHIsemUpOlZ0W1lpXTtyZXR1cm4gZWl9fShWdCkseWVbVnRdKHplKSk6emUubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCl9ZnVuY3Rpb24gZ3QoemUsVnQpe3ZhciBobj01O2Z1bmN0aW9uIFJuKHRyKXtyZXR1cm4gVnQubG9uZ0RhdGVGb3JtYXQo''@;'; + put 'put ''dHIpfHx0cn1mb3IoRi5sYXN0SW5kZXg9MDtobj49MCYmRi50ZXN0KHplKTspemU9emUucmVwbGFjZShGLFJuKSxGLmxhc3RJbmRleD0wLGhuLT0xO3JldHVybiB6ZX12YXIgYXQ9e307ZnVuY3Rpb24gTHQoemUsVnQpe3ZhciBobj16ZS50b0xvd2VyQ2FzZSgpO2F0W2huXT1hdFtobisicyJd''@;'; + put 'put ''PWF0W1Z0XT16ZX1mdW5jdGlvbiBDdCh6ZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB6ZT9hdFt6ZV18fGF0W3plLnRvTG93ZXJDYXNlKCldOnZvaWQgMH1mdW5jdGlvbiBmdCh6ZSl7dmFyIGhuLFJuLFZ0PXt9O2ZvcihSbiBpbiB6ZSlRKHplLFJuKSYmKGhuPUN0KFJuKSkmJihWdFtobl09''@;'; + put 'put ''emVbUm5dKTtyZXR1cm4gVnR9dmFyIEh0PXt9O2Z1bmN0aW9uIEdlKHplLFZ0KXtIdFt6ZV09VnR9ZnVuY3Rpb24geXQoemUpe3JldHVybiB6ZSU0PT0wJiZ6ZSUxMDAhPTB8fHplJTQwMD09MH1mdW5jdGlvbiBqdCh6ZSl7cmV0dXJuIHplPDA/TWF0aC5jZWlsKHplKXx8MDpNYXRoLmZsb29y''@;'; + put 'put ''KHplKX1mdW5jdGlvbiBRdCh6ZSl7dmFyIFZ0PSt6ZSxobj0wO3JldHVybiAwIT09VnQmJmlzRmluaXRlKFZ0KSYmKGhuPWp0KFZ0KSksaG59ZnVuY3Rpb24gZ24oemUsVnQpe3JldHVybiBmdW5jdGlvbihobil7cmV0dXJuIG51bGwhPWhuPyh5bih0aGlzLHplLGhuKSxCLnVwZGF0ZU9mZnNl''@;'; + put 'put ''dCh0aGlzLFZ0KSx0aGlzKTpkbih0aGlzLHplKX19ZnVuY3Rpb24gZG4oemUsVnQpe3JldHVybiB6ZS5pc1ZhbGlkKCk/emUuX2RbImdldCIrKHplLl9pc1VUQz8iVVRDIjoiIikrVnRdKCk6TmFOfWZ1bmN0aW9uIHluKHplLFZ0LGhuKXt6ZS5pc1ZhbGlkKCkmJiFpc05hTihobikmJigiRnVs''@;'; + put 'put ''bFllYXIiPT09VnQmJnl0KHplLnllYXIoKSkmJjE9PT16ZS5tb250aCgpJiYyOT09PXplLmRhdGUoKT8oaG49UXQoaG4pLHplLl9kWyJzZXQiKyh6ZS5faXNVVEM/IlVUQyI6IiIpK1Z0XShobix6ZS5tb250aCgpLGlpKGhuLHplLm1vbnRoKCkpKSk6emUuX2RbInNldCIrKHplLl9pc1VUQz8i''@;'; + put 'put ''VVRDIjoiIikrVnRdKGhuKSl9dmFyIHduLGJuPS9cZC8sZXI9L1xkXGQvLHNyPS9cZHszfS8sWG49L1xkezR9LyxGcj0vWystXT9cZHs2fS8seHI9L1xkXGQ/LyxxdD0vXGRcZFxkXGQ/Lyxwcj0vXGRcZFxkXGRcZFxkPy8sbnI9L1xkezEsM30vLEFuPS9cZHsxLDR9Lyxxbj0vWystXT9cZHsx''@;'; + put 'put ''LDZ9LyxXdD0vXGQrLyxwbj0vWystXT9cZCsvLEtuPS9afFsrLV1cZFxkOj9cZFxkL2dpLE50PS9afFsrLV1cZFxkKD86Oj9cZFxkKT8vZ2ksVW49L1swLTldezAsMjU2fVsnYS16XHUwMEEwLVx1MDVGRlx1MDcwMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkYwN1x1RkYxMC1cdUZG''@;'; + put 'put ''RUZdezEsMjU2fXxbXHUwNjAwLVx1MDZGRlwvXXsxLDI1Nn0oXHMqP1tcdTA2MDAtXHUwNkZGXXsxLDI1Nn0pezEsMn0vaTtmdW5jdGlvbiB0bih6ZSxWdCxobil7d25bemVdPU8oVnQpP1Z0OmZ1bmN0aW9uKFJuLHRyKXtyZXR1cm4gUm4mJmhuP2huOlZ0fX1mdW5jdGlvbiB6bih6ZSxWdCl7''@;'; + put 'put ''cmV0dXJuIFEod24semUpP3duW3plXShWdC5fc3RyaWN0LFZ0Ll9sb2NhbGUpOm5ldyBSZWdFeHAoZnVuY3Rpb24gVHIoemUpe3JldHVybiBCbih6ZS5yZXBsYWNlKCJcXCIsIiIpLnJlcGxhY2UoL1xcKFxbKXxcXChcXSl8XFsoW15cXVxbXSopXF18XFwoLikvZyxmdW5jdGlvbihWdCxobixS''@;'; + put 'put ''bix0cixlaSl7cmV0dXJuIGhufHxSbnx8dHJ8fGVpfSkpfSh6ZSkpfWZ1bmN0aW9uIEJuKHplKXtyZXR1cm4gemUucmVwbGFjZSgvWy1cL1xcXiQqKz8uKCl8W1xde31dL2csIlxcJCYiKX13bj17fTt2YXIga3I9e307ZnVuY3Rpb24gbW4oemUsVnQpe3ZhciBobix0cixSbj1WdDtmb3IoInN0''@;'; + put 'put ''cmluZyI9PXR5cGVvZiB6ZSYmKHplPVt6ZV0pLGxlKFZ0KSYmKFJuPWZ1bmN0aW9uKGVpLFlpKXtZaVtWdF09UXQoZWkpfSksdHI9emUubGVuZ3RoLGhuPTA7aG48dHI7aG4rKylrclt6ZVtobl1dPVJufWZ1bmN0aW9uIHVuKHplLFZ0KXttbih6ZSxmdW5jdGlvbihobixSbix0cixlaSl7dHIu''@;'; + put 'put ''X3c9dHIuX3d8fHt9LFZ0KGhuLHRyLl93LHRyLGVpKX0pfWZ1bmN0aW9uIGNuKHplLFZ0LGhuKXtudWxsIT1WdCYmUShrcix6ZSkmJmtyW3plXShWdCxobi5fYSxobix6ZSl9dmFyIFZyO2Z1bmN0aW9uIGlpKHplLFZ0KXtpZihpc05hTih6ZSl8fGlzTmFOKFZ0KSlyZXR1cm4gTmFOO3ZhciBo''@;'; + put 'put ''bj1mdW5jdGlvbiBLcih6ZSxWdCl7cmV0dXJuKHplJVZ0K1Z0KSVWdH0oVnQsMTIpO3JldHVybiB6ZSs9KFZ0LWhuKS8xMiwxPT09aG4/eXQoemUpPzI5OjI4OjMxLWhuJTclMn1Wcj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZj9BcnJheS5wcm90b3R5cGUuaW5kZXhPZjpmdW5jdGlvbih6ZSl7''@;'; + put 'put ''dmFyIFZ0O2ZvcihWdD0wO1Z0PHRoaXMubGVuZ3RoOysrVnQpaWYodGhpc1tWdF09PT16ZSlyZXR1cm4gVnQ7cmV0dXJuLTF9LERlKCJNIixbIk1NIiwyXSwiTW8iLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9udGgoKSsxfSksRGUoIk1NTSIsMCwwLGZ1bmN0aW9uKHplKXtyZXR1cm4gdGhp''@;'; + put 'put ''cy5sb2NhbGVEYXRhKCkubW9udGhzU2hvcnQodGhpcyx6ZSl9KSxEZSgiTU1NTSIsMCwwLGZ1bmN0aW9uKHplKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubW9udGhzKHRoaXMsemUpfSksTHQoIm1vbnRoIiwiTSIpLEdlKCJtb250aCIsOCksdG4oIk0iLHhyKSx0bigiTU0iLHhyLGVyKSx0''@;'; + put 'put ''bigiTU1NIixmdW5jdGlvbih6ZSxWdCl7cmV0dXJuIFZ0Lm1vbnRoc1Nob3J0UmVnZXgoemUpfSksdG4oIk1NTU0iLGZ1bmN0aW9uKHplLFZ0KXtyZXR1cm4gVnQubW9udGhzUmVnZXgoemUpfSksbW4oWyJNIiwiTU0iXSxmdW5jdGlvbih6ZSxWdCl7VnRbMV09UXQoemUpLTF9KSxtbihbIk1N''@;'; + put 'put ''TSIsIk1NTU0iXSxmdW5jdGlvbih6ZSxWdCxobixSbil7dmFyIHRyPWhuLl9sb2NhbGUubW9udGhzUGFyc2UoemUsUm4saG4uX3N0cmljdCk7bnVsbCE9dHI/VnRbMV09dHI6SihobikuaW52YWxpZE1vbnRoPXplfSk7dmFyIFJyPSJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9K''@;'; + put 'put ''dW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLGxpPSJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSxNaT0vRFtvRF0/KFxbW15cW1xdXSpcXXxccykrTU1NTT8vLG8w''@;'; + put 'put ''PVVuLG4wPVVuO2Z1bmN0aW9uIEcwKHplLFZ0LGhuKXt2YXIgUm4sdHIsZWksWWk9emUudG9Mb2NhbGVMb3dlckNhc2UoKTtpZighdGhpcy5fbW9udGhzUGFyc2UpZm9yKHRoaXMuX21vbnRoc1BhcnNlPVtdLHRoaXMuX2xvbmdNb250aHNQYXJzZT1bXSx0aGlzLl9zaG9ydE1vbnRoc1BhcnNl''@;'; + put 'put ''PVtdLFJuPTA7Um48MTI7KytSbillaT1lZShbMmUzLFJuXSksdGhpcy5fc2hvcnRNb250aHNQYXJzZVtSbl09dGhpcy5tb250aHNTaG9ydChlaSwiIikudG9Mb2NhbGVMb3dlckNhc2UoKSx0aGlzLl9sb25nTW9udGhzUGFyc2VbUm5dPXRoaXMubW9udGhzKGVpLCIiKS50b0xvY2FsZUxvd2Vy''@;'; + put 'put ''Q2FzZSgpO3JldHVybiBobj8iTU1NIj09PVZ0Py0xIT09KHRyPVZyLmNhbGwodGhpcy5fc2hvcnRNb250aHNQYXJzZSxZaSkpP3RyOm51bGw6LTEhPT0odHI9VnIuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsWWkpKT90cjpudWxsOiJNTU0iPT09VnQ/LTEhPT0odHI9VnIuY2FsbCh0aGlz''@;'; + put 'put ''Ll9zaG9ydE1vbnRoc1BhcnNlLFlpKSl8fC0xIT09KHRyPVZyLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLFlpKSk/dHI6bnVsbDotMSE9PSh0cj1Wci5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSxZaSkpfHwtMSE9PSh0cj1Wci5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsWWkp''@;'; + put 'put ''KT90cjpudWxsfWZ1bmN0aW9uIFcwKHplLFZ0KXt2YXIgaG47aWYoIXplLmlzVmFsaWQoKSlyZXR1cm4gemU7aWYoInN0cmluZyI9PXR5cGVvZiBWdClpZigvXlxkKyQvLnRlc3QoVnQpKVZ0PVF0KFZ0KTtlbHNlIGlmKCFsZShWdD16ZS5sb2NhbGVEYXRhKCkubW9udGhzUGFyc2UoVnQpKSly''@;'; + put 'put ''ZXR1cm4gemU7cmV0dXJuIGhuPU1hdGgubWluKHplLmRhdGUoKSxpaSh6ZS55ZWFyKCksVnQpKSx6ZS5fZFsic2V0IisoemUuX2lzVVRDPyJVVEMiOiIiKSsiTW9udGgiXShWdCxobiksemV9ZnVuY3Rpb24gRW8oemUpe3JldHVybiBudWxsIT16ZT8oVzAodGhpcyx6ZSksQi51cGRhdGVPZmZz''@;'; + put 'put ''ZXQodGhpcywhMCksdGhpcyk6ZG4odGhpcywiTW9udGgiKX1mdW5jdGlvbiBRaSgpe2Z1bmN0aW9uIHplKFlpLGRhKXtyZXR1cm4gZGEubGVuZ3RoLVlpLmxlbmd0aH12YXIgdHIsZWksVnQ9W10saG49W10sUm49W107Zm9yKHRyPTA7dHI8MTI7dHIrKyllaT1lZShbMmUzLHRyXSksVnQucHVz''@;'; + put 'put ''aCh0aGlzLm1vbnRoc1Nob3J0KGVpLCIiKSksaG4ucHVzaCh0aGlzLm1vbnRocyhlaSwiIikpLFJuLnB1c2godGhpcy5tb250aHMoZWksIiIpKSxSbi5wdXNoKHRoaXMubW9udGhzU2hvcnQoZWksIiIpKTtmb3IoVnQuc29ydCh6ZSksaG4uc29ydCh6ZSksUm4uc29ydCh6ZSksdHI9MDt0cjwx''@;'; + put 'put ''Mjt0cisrKVZ0W3RyXT1CbihWdFt0cl0pLGhuW3RyXT1Cbihoblt0cl0pO2Zvcih0cj0wO3RyPDI0O3RyKyspUm5bdHJdPUJuKFJuW3RyXSk7dGhpcy5fbW9udGhzUmVnZXg9bmV3IFJlZ0V4cCgiXigiK1JuLmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl9tb250aHNTaG9ydFJlZ2V4PXRoaXMu''@;'; + put 'put ''X21vbnRoc1JlZ2V4LHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4PW5ldyBSZWdFeHAoIl4oIitobi5qb2luKCJ8IikrIikiLCJpIiksdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleD1uZXcgUmVnRXhwKCJeKCIrVnQuam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uIE1hKHplKXtyZXR1cm4g''@;'; + put 'put ''eXQoemUpPzM2NjozNjV9RGUoIlkiLDAsMCxmdW5jdGlvbigpe3ZhciB6ZT10aGlzLnllYXIoKTtyZXR1cm4gemU8PTk5OTk/VCh6ZSw0KToiKyIremV9KSxEZSgwLFsiWVkiLDJdLDAsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy55ZWFyKCklMTAwfSksRGUoMCxbIllZWVkiLDRdLDAsInllYXIi''@;'; + put 'put ''KSxEZSgwLFsiWVlZWVkiLDVdLDAsInllYXIiKSxEZSgwLFsiWVlZWVlZIiw2LCEwXSwwLCJ5ZWFyIiksTHQoInllYXIiLCJ5IiksR2UoInllYXIiLDEpLHRuKCJZIixwbiksdG4oIllZIix4cixlciksdG4oIllZWVkiLEFuLFhuKSx0bigiWVlZWVkiLHFuLEZyKSx0bigiWVlZWVlZIixxbixG''@;'; + put 'put ''ciksbW4oWyJZWVlZWSIsIllZWVlZWSJdLDApLG1uKCJZWVlZIixmdW5jdGlvbih6ZSxWdCl7VnRbMF09Mj09PXplLmxlbmd0aD9CLnBhcnNlVHdvRGlnaXRZZWFyKHplKTpRdCh6ZSl9KSxtbigiWVkiLGZ1bmN0aW9uKHplLFZ0KXtWdFswXT1CLnBhcnNlVHdvRGlnaXRZZWFyKHplKX0pLG1u''@;'; + put 'put ''KCJZIixmdW5jdGlvbih6ZSxWdCl7VnRbMF09cGFyc2VJbnQoemUsMTApfSksQi5wYXJzZVR3b0RpZ2l0WWVhcj1mdW5jdGlvbih6ZSl7cmV0dXJuIFF0KHplKSsoUXQoemUpPjY4PzE5MDA6MmUzKX07dmFyIG5sPWduKCJGdWxsWWVhciIsITApO2Z1bmN0aW9uIEFpKHplLFZ0LGhuLFJuLHRy''@;'; + put 'put ''LGVpLFlpKXt2YXIgZGE7cmV0dXJuIHplPDEwMCYmemU+PTA/KGRhPW5ldyBEYXRlKHplKzQwMCxWdCxobixSbix0cixlaSxZaSksaXNGaW5pdGUoZGEuZ2V0RnVsbFllYXIoKSkmJmRhLnNldEZ1bGxZZWFyKHplKSk6ZGE9bmV3IERhdGUoemUsVnQsaG4sUm4sdHIsZWksWWkpLGRhfWZ1bmN0''@;'; + put 'put ''aW9uIHZpKHplKXt2YXIgVnQsaG47cmV0dXJuIHplPDEwMCYmemU+PTA/KChobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKVswXT16ZSs0MDAsVnQ9bmV3IERhdGUoRGF0ZS5VVEMuYXBwbHkobnVsbCxobikpLGlzRmluaXRlKFZ0LmdldFVUQ0Z1bGxZZWFyKCkpJiZW''@;'; + put 'put ''dC5zZXRVVENGdWxsWWVhcih6ZSkpOlZ0PW5ldyBEYXRlKERhdGUuVVRDLmFwcGx5KG51bGwsYXJndW1lbnRzKSksVnR9ZnVuY3Rpb24gYjAoemUsVnQsaG4pe3ZhciBSbj03K1Z0LWhuO3JldHVybi0oNyt2aSh6ZSwwLFJuKS5nZXRVVENEYXkoKS1WdCklNytSbi0xfWZ1bmN0aW9uIHNhKHpl''@;'; + put 'put ''LFZ0LGhuLFJuLHRyKXt2YXIgemEsQnMsZGE9MSs3KihWdC0xKSsoNytobi1SbiklNytiMCh6ZSxSbix0cik7cmV0dXJuIGRhPD0wP0JzPU1hKHphPXplLTEpK2RhOmRhPk1hKHplKT8oemE9emUrMSxCcz1kYS1NYSh6ZSkpOih6YT16ZSxCcz1kYSkse3llYXI6emEsZGF5T2ZZZWFyOkJzfX1m''@;'; + put 'put ''dW5jdGlvbiBybCh6ZSxWdCxobil7dmFyIGVpLFlpLFJuPWIwKHplLnllYXIoKSxWdCxobiksdHI9TWF0aC5mbG9vcigoemUuZGF5T2ZZZWFyKCktUm4tMSkvNykrMTtyZXR1cm4gdHI8MT9laT10citiaShZaT16ZS55ZWFyKCktMSxWdCxobik6dHI+YmkoemUueWVhcigpLFZ0LGhuKT8oZWk9''@;'; + put 'put ''dHItYmkoemUueWVhcigpLFZ0LGhuKSxZaT16ZS55ZWFyKCkrMSk6KFlpPXplLnllYXIoKSxlaT10cikse3dlZWs6ZWkseWVhcjpZaX19ZnVuY3Rpb24gYmkoemUsVnQsaG4pe3ZhciBSbj1iMCh6ZSxWdCxobiksdHI9YjAoemUrMSxWdCxobik7cmV0dXJuKE1hKHplKS1Sbit0cikvN31EZSgi''@;'; + put 'put ''dyIsWyJ3dyIsMl0sIndvIiwid2VlayIpLERlKCJXIixbIldXIiwyXSwiV28iLCJpc29XZWVrIiksTHQoIndlZWsiLCJ3IiksTHQoImlzb1dlZWsiLCJXIiksR2UoIndlZWsiLDUpLEdlKCJpc29XZWVrIiw1KSx0bigidyIseHIpLHRuKCJ3dyIseHIsZXIpLHRuKCJXIix4ciksdG4oIldXIix4''@;'; + put 'put ''cixlciksdW4oWyJ3Iiwid3ciLCJXIiwiV1ciXSxmdW5jdGlvbih6ZSxWdCxobixSbil7VnRbUm4uc3Vic3RyKDAsMSldPVF0KHplKX0pO2Z1bmN0aW9uIHZuKHplLFZ0KXtyZXR1cm4gemUuc2xpY2UoVnQsNykuY29uY2F0KHplLnNsaWNlKDAsVnQpKX1EZSgiZCIsMCwiZG8iLCJkYXkiKSxE''@;'; + put 'put ''ZSgiZGQiLDAsMCxmdW5jdGlvbih6ZSl7cmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzTWluKHRoaXMsemUpfSksRGUoImRkZCIsMCwwLGZ1bmN0aW9uKHplKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXNTaG9ydCh0aGlzLHplKX0pLERlKCJkZGRkIiwwLDAsZnVu''@;'; + put 'put ''Y3Rpb24oemUpe3JldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5cyh0aGlzLHplKX0pLERlKCJlIiwwLDAsIndlZWtkYXkiKSxEZSgiRSIsMCwwLCJpc29XZWVrZGF5IiksTHQoImRheSIsImQiKSxMdCgid2Vla2RheSIsImUiKSxMdCgiaXNvV2Vla2RheSIsIkUiKSxHZSgiZGF5Iiwx''@;'; + put 'put ''MSksR2UoIndlZWtkYXkiLDExKSxHZSgiaXNvV2Vla2RheSIsMTEpLHRuKCJkIix4ciksdG4oImUiLHhyKSx0bigiRSIseHIpLHRuKCJkZCIsZnVuY3Rpb24oemUsVnQpe3JldHVybiBWdC53ZWVrZGF5c01pblJlZ2V4KHplKX0pLHRuKCJkZGQiLGZ1bmN0aW9uKHplLFZ0KXtyZXR1cm4gVnQu''@;'; + put 'put ''d2Vla2RheXNTaG9ydFJlZ2V4KHplKX0pLHRuKCJkZGRkIixmdW5jdGlvbih6ZSxWdCl7cmV0dXJuIFZ0LndlZWtkYXlzUmVnZXgoemUpfSksdW4oWyJkZCIsImRkZCIsImRkZGQiXSxmdW5jdGlvbih6ZSxWdCxobixSbil7dmFyIHRyPWhuLl9sb2NhbGUud2Vla2RheXNQYXJzZSh6ZSxSbixo''@;'; + put 'put ''bi5fc3RyaWN0KTtudWxsIT10cj9WdC5kPXRyOkooaG4pLmludmFsaWRXZWVrZGF5PXplfSksdW4oWyJkIiwiZSIsIkUiXSxmdW5jdGlvbih6ZSxWdCxobixSbil7VnRbUm5dPVF0KHplKX0pO3ZhciBfMD0iU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlf''@;'; + put 'put ''U2F0dXJkYXkiLnNwbGl0KCJfIiksZ2M9IlN1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCIuc3BsaXQoIl8iKSxkZD0iU3VfTW9fVHVfV2VfVGhfRnJfU2EiLnNwbGl0KCJfIiksQjE9VW4sYXU9VW4sUDE9VW47ZnVuY3Rpb24gZDMoemUsVnQsaG4pe3ZhciBSbix0cixlaSxZaT16ZS50b0xv''@;'; + put 'put ''Y2FsZUxvd2VyQ2FzZSgpO2lmKCF0aGlzLl93ZWVrZGF5c1BhcnNlKWZvcih0aGlzLl93ZWVrZGF5c1BhcnNlPVtdLHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZT1bXSx0aGlzLl9taW5XZWVrZGF5c1BhcnNlPVtdLFJuPTA7Um48NzsrK1JuKWVpPWVlKFsyZTMsMV0pLmRheShSbiksdGhpcy5f''@;'; + put 'put ''bWluV2Vla2RheXNQYXJzZVtSbl09dGhpcy53ZWVrZGF5c01pbihlaSwiIikudG9Mb2NhbGVMb3dlckNhc2UoKSx0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbUm5dPXRoaXMud2Vla2RheXNTaG9ydChlaSwiIikudG9Mb2NhbGVMb3dlckNhc2UoKSx0aGlzLl93ZWVrZGF5c1BhcnNlW1JuXT10''@;'; + put 'put ''aGlzLndlZWtkYXlzKGVpLCIiKS50b0xvY2FsZUxvd2VyQ2FzZSgpO3JldHVybiBobj8iZGRkZCI9PT1WdD8tMSE9PSh0cj1Wci5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsWWkpKT90cjpudWxsOiJkZGQiPT09VnQ/LTEhPT0odHI9VnIuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2Us''@;'; + put 'put ''WWkpKT90cjpudWxsOi0xIT09KHRyPVZyLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSxZaSkpP3RyOm51bGw6ImRkZGQiPT09VnQ/LTEhPT0odHI9VnIuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLFlpKSl8fC0xIT09KHRyPVZyLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLFlp''@;'; + put 'put ''KSl8fC0xIT09KHRyPVZyLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSxZaSkpP3RyOm51bGw6ImRkZCI9PT1WdD8tMSE9PSh0cj1Wci5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSxZaSkpfHwtMSE9PSh0cj1Wci5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsWWkpKXx8LTEhPT0o''@;'; + put 'put ''dHI9VnIuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLFlpKSk/dHI6bnVsbDotMSE9PSh0cj1Wci5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsWWkpKXx8LTEhPT0odHI9VnIuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLFlpKSl8fC0xIT09KHRyPVZyLmNhbGwodGhpcy5fc2hvcnRX''@;'; + put 'put ''ZWVrZGF5c1BhcnNlLFlpKSk/dHI6bnVsbH1mdW5jdGlvbiBocygpe2Z1bmN0aW9uIHplKEt1LFBzKXtyZXR1cm4gUHMubGVuZ3RoLUt1Lmxlbmd0aH12YXIgZWksWWksZGEsemEsQnMsVnQ9W10saG49W10sUm49W10sdHI9W107Zm9yKGVpPTA7ZWk8NztlaSsrKVlpPWVlKFsyZTMsMV0pLmRh''@;'; + put 'put ''eShlaSksZGE9Qm4odGhpcy53ZWVrZGF5c01pbihZaSwiIikpLHphPUJuKHRoaXMud2Vla2RheXNTaG9ydChZaSwiIikpLEJzPUJuKHRoaXMud2Vla2RheXMoWWksIiIpKSxWdC5wdXNoKGRhKSxobi5wdXNoKHphKSxSbi5wdXNoKEJzKSx0ci5wdXNoKGRhKSx0ci5wdXNoKHphKSx0ci5wdXNo''@;'; + put 'put ''KEJzKTtWdC5zb3J0KHplKSxobi5zb3J0KHplKSxSbi5zb3J0KHplKSx0ci5zb3J0KHplKSx0aGlzLl93ZWVrZGF5c1JlZ2V4PW5ldyBSZWdFeHAoIl4oIit0ci5qb2luKCJ8IikrIikiLCJpIiksdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4PXRoaXMuX3dlZWtkYXlzUmVnZXgsdGhpcy5fd2Vl''@;'; + put 'put ''a2RheXNNaW5SZWdleD10aGlzLl93ZWVrZGF5c1JlZ2V4LHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXg9bmV3IFJlZ0V4cCgiXigiK1JuLmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXg9bmV3IFJlZ0V4cCgiXigiK2huLmpvaW4oInwiKSsiKSIsImki''@;'; + put 'put ''KSx0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4PW5ldyBSZWdFeHAoIl4oIitWdC5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gbjIoKXtyZXR1cm4gdGhpcy5ob3VycygpJTEyfHwxMn1mdW5jdGlvbiBUaSh6ZSxWdCl7RGUoemUsMCwwLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9j''@;'; + put 'put ''YWxlRGF0YSgpLm1lcmlkaWVtKHRoaXMuaG91cnMoKSx0aGlzLm1pbnV0ZXMoKSxWdCl9KX1mdW5jdGlvbiBScyh6ZSxWdCl7cmV0dXJuIFZ0Ll9tZXJpZGllbVBhcnNlfURlKCJIIixbIkhIIiwyXSwwLCJob3VyIiksRGUoImgiLFsiaGgiLDJdLDAsbjIpLERlKCJrIixbImtrIiwyXSwwLGZ1''@;'; + put 'put ''bmN0aW9uIFQyKCl7cmV0dXJuIHRoaXMuaG91cnMoKXx8MjR9KSxEZSgiaG1tIiwwLDAsZnVuY3Rpb24oKXtyZXR1cm4iIituMi5hcHBseSh0aGlzKStUKHRoaXMubWludXRlcygpLDIpfSksRGUoImhtbXNzIiwwLDAsZnVuY3Rpb24oKXtyZXR1cm4iIituMi5hcHBseSh0aGlzKStUKHRoaXMu''@;'; + put 'put ''bWludXRlcygpLDIpK1QodGhpcy5zZWNvbmRzKCksMil9KSxEZSgiSG1tIiwwLDAsZnVuY3Rpb24oKXtyZXR1cm4iIit0aGlzLmhvdXJzKCkrVCh0aGlzLm1pbnV0ZXMoKSwyKX0pLERlKCJIbW1zcyIsMCwwLGZ1bmN0aW9uKCl7cmV0dXJuIiIrdGhpcy5ob3VycygpK1QodGhpcy5taW51dGVz''@;'; + put 'put ''KCksMikrVCh0aGlzLnNlY29uZHMoKSwyKX0pLFRpKCJhIiwhMCksVGkoIkEiLCExKSxMdCgiaG91ciIsImgiKSxHZSgiaG91ciIsMTMpLHRuKCJhIixScyksdG4oIkEiLFJzKSx0bigiSCIseHIpLHRuKCJoIix4ciksdG4oImsiLHhyKSx0bigiSEgiLHhyLGVyKSx0bigiaGgiLHhyLGVyKSx0''@;'; + put 'put ''bigia2siLHhyLGVyKSx0bigiaG1tIixxdCksdG4oImhtbXNzIixwciksdG4oIkhtbSIscXQpLHRuKCJIbW1zcyIscHIpLG1uKFsiSCIsIkhIIl0sMyksbW4oWyJrIiwia2siXSxmdW5jdGlvbih6ZSxWdCxobil7dmFyIFJuPVF0KHplKTtWdFszXT0yND09PVJuPzA6Um59KSxtbihbImEiLCJB''@;'; + put 'put ''Il0sZnVuY3Rpb24oemUsVnQsaG4pe2huLl9pc1BtPWhuLl9sb2NhbGUuaXNQTSh6ZSksaG4uX21lcmlkaWVtPXplfSksbW4oWyJoIiwiaGgiXSxmdW5jdGlvbih6ZSxWdCxobil7VnRbM109UXQoemUpLEooaG4pLmJpZ0hvdXI9ITB9KSxtbigiaG1tIixmdW5jdGlvbih6ZSxWdCxobil7dmFy''@;'; + put 'put ''IFJuPXplLmxlbmd0aC0yO1Z0WzNdPVF0KHplLnN1YnN0cigwLFJuKSksVnRbNF09UXQoemUuc3Vic3RyKFJuKSksSihobikuYmlnSG91cj0hMH0pLG1uKCJobW1zcyIsZnVuY3Rpb24oemUsVnQsaG4pe3ZhciBSbj16ZS5sZW5ndGgtNCx0cj16ZS5sZW5ndGgtMjtWdFszXT1RdCh6ZS5zdWJz''@;'; + put 'put ''dHIoMCxSbikpLFZ0WzRdPVF0KHplLnN1YnN0cihSbiwyKSksVnRbNV09UXQoemUuc3Vic3RyKHRyKSksSihobikuYmlnSG91cj0hMH0pLG1uKCJIbW0iLGZ1bmN0aW9uKHplLFZ0LGhuKXt2YXIgUm49emUubGVuZ3RoLTI7VnRbM109UXQoemUuc3Vic3RyKDAsUm4pKSxWdFs0XT1RdCh6ZS5z''@;'; + put 'put ''dWJzdHIoUm4pKX0pLG1uKCJIbW1zcyIsZnVuY3Rpb24oemUsVnQsaG4pe3ZhciBSbj16ZS5sZW5ndGgtNCx0cj16ZS5sZW5ndGgtMjtWdFszXT1RdCh6ZS5zdWJzdHIoMCxSbikpLFZ0WzRdPVF0KHplLnN1YnN0cihSbiwyKSksVnRbNV09UXQoemUuc3Vic3RyKHRyKSl9KTt2YXIgTmM9Z24o''@;'; + put 'put ''IkhvdXJzIiwhMCk7dmFyIFVzLEM0PXtjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExU''@;'; + put 'put ''IixzYW1lRWxzZToiTCJ9LGxvbmdEYXRlRm9ybWF0OntMVFM6Img6bW06c3MgQSIsTFQ6Img6bW0gQSIsTDoiTU0vREQvWVlZWSIsTEw6Ik1NTU0gRCwgWVlZWSIsTExMOiJNTU1NIEQsIFlZWVkgaDptbSBBIixMTExMOiJkZGRkLCBNTU1NIEQsIFlZWVkgaDptbSBBIn0saW52YWxpZERhdGU6''@;'; + put 'put ''IkludmFsaWQgZGF0ZSIsb3JkaW5hbDoiJWQiLGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0vLHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVz''@;'; + put 'put ''IixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsdzoiYSB3ZWVrIix3dzoiJWQgd2Vla3MiLE06ImEgbW9udGgiLE1NOiIlZCBtb250aHMiLHk6ImEgeWVhciIseXk6IiVkIHllYXJzIn0sbW9udGhzOlJyLG1vbnRoc1Nob3J0OmxpLHdlZWs6e2Rvdzow''@;'; + put 'put ''LGRveTo2fSx3ZWVrZGF5czpfMCx3ZWVrZGF5c01pbjpkZCx3ZWVrZGF5c1Nob3J0OmdjLG1lcmlkaWVtUGFyc2U6L1thcF1cLj9tP1wuPy9pfSxyMj17fSxXaT17fTtmdW5jdGlvbiBtcyh6ZSxWdCl7dmFyIGhuLFJuPU1hdGgubWluKHplLmxlbmd0aCxWdC5sZW5ndGgpO2Zvcihobj0wO2hu''@;'; + put 'put ''PFJuO2huKz0xKWlmKHplW2huXSE9PVZ0W2huXSlyZXR1cm4gaG47cmV0dXJuIFJufWZ1bmN0aW9uIEYxKHplKXtyZXR1cm4gemUmJnplLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgiXyIsIi0iKX1mdW5jdGlvbiBSaSh6ZSl7dmFyIFZ0PW51bGw7aWYodm9pZCAwPT09cjJbemVdJiZYZSYmWGUu''@;'; + put 'put ''ZXhwb3J0cyYmZnVuY3Rpb24gX3MoemUpe3JldHVybiBudWxsIT16ZS5tYXRjaCgiXlteL1xcXFxdKiQiKX0oemUpKXRyeXtWdD1Vcy5fYWJicixMKDQ2NzAwKSgiLi8iK3plKSxIMShWdCl9Y2F0Y2goUm4pe3IyW3plXT1udWxsfXJldHVybiByMlt6ZV19ZnVuY3Rpb24gSDEoemUsVnQpe3Zh''@;'; + put 'put ''ciBobjtyZXR1cm4gemUmJigoaG49aWUoVnQpP3UxKHplKTpRMih6ZSxWdCkpP1VzPWhuOiJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS53YXJuJiZjb25zb2xlLndhcm4oIkxvY2FsZSAiK3plKyIgbm90IGZvdW5kLiBEaWQgeW91IGZvcmdldCB0byBsb2FkIGl0PyIpKSxV''@;'; + put 'put ''cy5fYWJicn1mdW5jdGlvbiBRMih6ZSxWdCl7aWYobnVsbCE9PVZ0KXt2YXIgaG4sUm49QzQ7aWYoVnQuYWJicj16ZSxudWxsIT1yMlt6ZV0paGUoImRlZmluZUxvY2FsZU92ZXJyaWRlIiwidXNlIG1vbWVudC51cGRhdGVMb2NhbGUobG9jYWxlTmFtZSwgY29uZmlnKSB0byBjaGFuZ2UgYW4g''@;'; + put 'put ''ZXhpc3RpbmcgbG9jYWxlLiBtb21lbnQuZGVmaW5lTG9jYWxlKGxvY2FsZU5hbWUsIGNvbmZpZykgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgY3JlYXRpbmcgYSBuZXcgbG9jYWxlIFNlZSBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2RlZmluZS1sb2NhbGUvIGZvciBt''@;'; + put 'put ''b3JlIGluZm8uIiksUm49cjJbemVdLl9jb25maWc7ZWxzZSBpZihudWxsIT1WdC5wYXJlbnRMb2NhbGUpaWYobnVsbCE9cjJbVnQucGFyZW50TG9jYWxlXSlSbj1yMltWdC5wYXJlbnRMb2NhbGVdLl9jb25maWc7ZWxzZXtpZihudWxsPT0oaG49UmkoVnQucGFyZW50TG9jYWxlKSkpcmV0dXJu''@;'; + put 'put ''IFdpW1Z0LnBhcmVudExvY2FsZV18fChXaVtWdC5wYXJlbnRMb2NhbGVdPVtdKSxXaVtWdC5wYXJlbnRMb2NhbGVdLnB1c2goe25hbWU6emUsY29uZmlnOlZ0fSksbnVsbDtSbj1obi5fY29uZmlnfXJldHVybiByMlt6ZV09bmV3IHRlKG5lKFJuLFZ0KSksV2lbemVdJiZXaVt6ZV0uZm9yRWFj''@;'; + put 'put ''aChmdW5jdGlvbih0cil7UTIodHIubmFtZSx0ci5jb25maWcpfSksSDEoemUpLHIyW3plXX1yZXR1cm4gZGVsZXRlIHIyW3plXSxudWxsfWZ1bmN0aW9uIHUxKHplKXt2YXIgVnQ7aWYoemUmJnplLl9sb2NhbGUmJnplLl9sb2NhbGUuX2FiYnImJih6ZT16ZS5fbG9jYWxlLl9hYmJyKSwhemUp''@;'; + put 'put ''cmV0dXJuIFVzO2lmKCFNZSh6ZSkpe2lmKFZ0PVJpKHplKSlyZXR1cm4gVnQ7emU9W3plXX1yZXR1cm4gZnVuY3Rpb24gS2woemUpe2Zvcih2YXIgaG4sUm4sdHIsZWksVnQ9MDtWdDx6ZS5sZW5ndGg7KXtmb3IoaG49KGVpPUYxKHplW1Z0XSkuc3BsaXQoIi0iKSkubGVuZ3RoLFJuPShSbj1G''@;'; + put 'put ''MSh6ZVtWdCsxXSkpP1JuLnNwbGl0KCItIik6bnVsbDtobj4wOyl7aWYodHI9UmkoZWkuc2xpY2UoMCxobikuam9pbigiLSIpKSlyZXR1cm4gdHI7aWYoUm4mJlJuLmxlbmd0aD49aG4mJm1zKGVpLFJuKT49aG4tMSlicmVhaztobi0tfVZ0Kyt9cmV0dXJuIFVzfSh6ZSl9ZnVuY3Rpb24gcDMo''@;'; + put 'put ''emUpe3ZhciBWdCxobj16ZS5fYTtyZXR1cm4gaG4mJi0yPT09Sih6ZSkub3ZlcmZsb3cmJihWdD1oblsxXTwwfHxoblsxXT4xMT8xOmhuWzJdPDF8fGhuWzJdPmlpKGhuWzBdLGhuWzFdKT8yOmhuWzNdPDB8fGhuWzNdPjI0fHwyND09PWhuWzNdJiYoMCE9PWhuWzRdfHwwIT09aG5bNV18fDAh''@;'; + put 'put ''PT1obls2XSk/Mzpobls0XTwwfHxobls0XT41OT80OmhuWzVdPDB8fGhuWzVdPjU5PzU6aG5bNl08MHx8aG5bNl0+OTk5PzY6LTEsSih6ZSkuX292ZXJmbG93RGF5T2ZZZWFyJiYoVnQ8MHx8VnQ+MikmJihWdD0yKSxKKHplKS5fb3ZlcmZsb3dXZWVrcyYmLTE9PT1WdCYmKFZ0PTcpLEooemUp''@;'; + put 'put ''Ll9vdmVyZmxvd1dlZWtkYXkmJi0xPT09VnQmJihWdD04KSxKKHplKS5vdmVyZmxvdz1WdCksemV9dmFyIFl1PS9eXHMqKCg/OlsrLV1cZHs2fXxcZHs0fSktKD86XGRcZC1cZFxkfFdcZFxkLVxkfFdcZFxkfFxkXGRcZHxcZFxkKSkoPzooVHwgKShcZFxkKD86OlxkXGQoPzo6XGRcZCg/Olsu''@;'; + put 'put ''LF1cZCspPyk/KT8pKFsrLV1cZFxkKD86Oj9cZFxkKT98XHMqWik/KT8kLyxzbz0vXlxzKigoPzpbKy1dXGR7Nn18XGR7NH0pKD86XGRcZFxkXGR8V1xkXGRcZHxXXGRcZHxcZFxkXGR8XGRcZHwpKSg/OihUfCApKFxkXGQoPzpcZFxkKD86XGRcZCg/OlsuLF1cZCspPyk/KT8pKFsrLV1cZFxk''@;'; + put 'put ''KD86Oj9cZFxkKT98XHMqWik/KT8kLyxZYT0vWnxbKy1dXGRcZCg/Ojo/XGRcZCk/Lyxhcz1bWyJZWVlZWVktTU0tREQiLC9bKy1dXGR7Nn0tXGRcZC1cZFxkL10sWyJZWVlZLU1NLUREIiwvXGR7NH0tXGRcZC1cZFxkL10sWyJHR0dHLVtXXVdXLUUiLC9cZHs0fS1XXGRcZC1cZC9dLFsiR0dH''@;'; + put 'put ''Ry1bV11XVyIsL1xkezR9LVdcZFxkLywhMV0sWyJZWVlZLURERCIsL1xkezR9LVxkezN9L10sWyJZWVlZLU1NIiwvXGR7NH0tXGRcZC8sITFdLFsiWVlZWVlZTU1ERCIsL1srLV1cZHsxMH0vXSxbIllZWVlNTUREIiwvXGR7OH0vXSxbIkdHR0dbV11XV0UiLC9cZHs0fVdcZHszfS9dLFsiR0dH''@;'; + put 'put ''R1tXXVdXIiwvXGR7NH1XXGR7Mn0vLCExXSxbIllZWVlEREQiLC9cZHs3fS9dLFsiWVlZWU1NIiwvXGR7Nn0vLCExXSxbIllZWVkiLC9cZHs0fS8sITFdXSxYYT1bWyJISDptbTpzcy5TU1NTIiwvXGRcZDpcZFxkOlxkXGRcLlxkKy9dLFsiSEg6bW06c3MsU1NTUyIsL1xkXGQ6XGRcZDpcZFxk''@;'; + put 'put ''LFxkKy9dLFsiSEg6bW06c3MiLC9cZFxkOlxkXGQ6XGRcZC9dLFsiSEg6bW0iLC9cZFxkOlxkXGQvXSxbIkhIbW1zcy5TU1NTIiwvXGRcZFxkXGRcZFxkXC5cZCsvXSxbIkhIbW1zcyxTU1NTIiwvXGRcZFxkXGRcZFxkLFxkKy9dLFsiSEhtbXNzIiwvXGRcZFxkXGRcZFxkL10sWyJISG1tIiwv''@;'; + put 'put ''XGRcZFxkXGQvXSxbIkhIIiwvXGRcZC9dXSxVdT0vXlwvP0RhdGVcKCgtP1xkKykvaSxBMT0vXig/OihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLD9ccyk/KFxkezEsMn0pXHMoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpXHMoXGR7Miw0fSlc''@;'; + put 'put ''cyhcZFxkKTooXGRcZCkoPzo6KFxkXGQpKT9ccyg/OihVVHxHTVR8W0VDTVBdW1NEXVQpfChbWnpdKXwoWystXVxkezR9KSkkLyxtaD17VVQ6MCxHTVQ6MCxFRFQ6LTI0MCxFU1Q6LTMwMCxDRFQ6LTMwMCxDU1Q6LTM2MCxNRFQ6LTM2MCxNU1Q6LTQyMCxQRFQ6LTQyMCxQU1Q6LTQ4MH07ZnVu''@;'; + put 'put ''Y3Rpb24gX2EoemUpe3ZhciBWdCxobixlaSxZaSxkYSx6YSxSbj16ZS5faSx0cj1ZdS5leGVjKFJuKXx8c28uZXhlYyhSbiksQnM9YXMubGVuZ3RoLEt1PVhhLmxlbmd0aDtpZih0cil7Zm9yKEooemUpLmlzbz0hMCxWdD0wLGhuPUJzO1Z0PGhuO1Z0KyspaWYoYXNbVnRdWzFdLmV4ZWModHJb''@;'; + put 'put ''MV0pKXtZaT1hc1tWdF1bMF0sZWk9ITEhPT1hc1tWdF1bMl07YnJlYWt9aWYobnVsbD09WWkpcmV0dXJuIHZvaWQoemUuX2lzVmFsaWQ9ITEpO2lmKHRyWzNdKXtmb3IoVnQ9MCxobj1LdTtWdDxobjtWdCsrKWlmKFhhW1Z0XVsxXS5leGVjKHRyWzNdKSl7ZGE9KHRyWzJdfHwiICIpK1hhW1Z0''@;'; + put 'put ''XVswXTticmVha31pZihudWxsPT1kYSlyZXR1cm4gdm9pZCh6ZS5faXNWYWxpZD0hMSl9aWYoIWVpJiZudWxsIT1kYSlyZXR1cm4gdm9pZCh6ZS5faXNWYWxpZD0hMSk7aWYodHJbNF0pe2lmKCFZYS5leGVjKHRyWzRdKSlyZXR1cm4gdm9pZCh6ZS5faXNWYWxpZD0hMSk7emE9IloifXplLl9m''@;'; + put 'put ''PVlpKyhkYXx8IiIpKyh6YXx8IiIpLGxmKHplKX1lbHNlIHplLl9pc1ZhbGlkPSExfWZ1bmN0aW9uIGs0KHplKXt2YXIgVnQ9cGFyc2VJbnQoemUsMTApO3JldHVybiBWdDw9NDk/MmUzK1Z0OlZ0PD05OTk/MTkwMCtWdDpWdH1mdW5jdGlvbiB2cyh6ZSl7dmFyIGhuLFZ0PUExLmV4ZWMoZnVu''@;'; + put 'put ''Y3Rpb24gc2woemUpe3JldHVybiB6ZS5yZXBsYWNlKC9cKFteKCldKlwpfFtcblx0XS9nLCIgIikucmVwbGFjZSgvKFxzXHMrKS9nLCIgIikucmVwbGFjZSgvXlxzXHMqLywiIikucmVwbGFjZSgvXHNccyokLywiIil9KHplLl9pKSk7aWYoVnQpe2lmKGhuPWZ1bmN0aW9uIGpwKHplLFZ0LGhu''@;'; + put 'put ''LFJuLHRyLGVpKXt2YXIgWWk9W2s0KHplKSxsaS5pbmRleE9mKFZ0KSxwYXJzZUludChobiwxMCkscGFyc2VJbnQoUm4sMTApLHBhcnNlSW50KHRyLDEwKV07cmV0dXJuIGVpJiZZaS5wdXNoKHBhcnNlSW50KGVpLDEwKSksWWl9KFZ0WzRdLFZ0WzNdLFZ0WzJdLFZ0WzVdLFZ0WzZdLFZ0Wzdd''@;'; + put 'put ''KSwhZnVuY3Rpb24gdWwoemUsVnQsaG4pe3JldHVybiF6ZXx8Z2MuaW5kZXhPZih6ZSk9PT1uZXcgRGF0ZShWdFswXSxWdFsxXSxWdFsyXSkuZ2V0RGF5KCl8fChKKGhuKS53ZWVrZGF5TWlzbWF0Y2g9ITAsaG4uX2lzVmFsaWQ9ITEsITEpfShWdFsxXSxobix6ZSkpcmV0dXJuO3plLl9hPWhu''@;'; + put 'put ''LHplLl90em09ZnVuY3Rpb24gWTAoemUsVnQsaG4pe2lmKHplKXJldHVybiBtaFt6ZV07aWYoVnQpcmV0dXJuIDA7dmFyIFJuPXBhcnNlSW50KGhuLDEwKSx0cj1SbiUxMDA7cmV0dXJuKFJuLXRyKS8xMDAqNjArdHJ9KFZ0WzhdLFZ0WzldLFZ0WzEwXSksemUuX2Q9dmkuYXBwbHkobnVsbCx6''@;'; + put 'put ''ZS5fYSksemUuX2Quc2V0VVRDTWludXRlcyh6ZS5fZC5nZXRVVENNaW51dGVzKCktemUuX3R6bSksSih6ZSkucmZjMjgyMj0hMH1lbHNlIHplLl9pc1ZhbGlkPSExfWZ1bmN0aW9uIEZvKHplLFZ0LGhuKXtyZXR1cm4gbnVsbCE9emU/emU6bnVsbCE9VnQ/VnQ6aG59ZnVuY3Rpb24geTEoemUp''@;'; + put 'put ''e3ZhciBWdCxobix0cixlaSxZaSxSbj1bXTtpZighemUuX2Qpe2Zvcih0cj1mdW5jdGlvbiBwZCh6ZSl7dmFyIFZ0PW5ldyBEYXRlKEIubm93KCkpO3JldHVybiB6ZS5fdXNlVVRDP1tWdC5nZXRVVENGdWxsWWVhcigpLFZ0LmdldFVUQ01vbnRoKCksVnQuZ2V0VVRDRGF0ZSgpXTpbVnQuZ2V0''@;'; + put 'put ''RnVsbFllYXIoKSxWdC5nZXRNb250aCgpLFZ0LmdldERhdGUoKV19KHplKSx6ZS5fdyYmbnVsbD09emUuX2FbMl0mJm51bGw9PXplLl9hWzFdJiZmdW5jdGlvbiB3MSh6ZSl7dmFyIFZ0LGhuLFJuLHRyLGVpLFlpLGRhLHphLEJzO251bGwhPShWdD16ZS5fdykuR0d8fG51bGwhPVZ0Lld8fG51''@;'; + put 'put ''bGwhPVZ0LkU/KGVpPTEsWWk9NCxobj1GbyhWdC5HRyx6ZS5fYVswXSxybChDcygpLDEsNCkueWVhciksUm49Rm8oVnQuVywxKSwoKHRyPUZvKFZ0LkUsMSkpPDF8fHRyPjcpJiYoemE9ITApKTooZWk9emUuX2xvY2FsZS5fd2Vlay5kb3csWWk9emUuX2xvY2FsZS5fd2Vlay5kb3ksQnM9cmwo''@;'; + put 'put ''Q3MoKSxlaSxZaSksaG49Rm8oVnQuZ2csemUuX2FbMF0sQnMueWVhciksUm49Rm8oVnQudyxCcy53ZWVrKSxudWxsIT1WdC5kPygodHI9VnQuZCk8MHx8dHI+NikmJih6YT0hMCk6bnVsbCE9VnQuZT8odHI9VnQuZStlaSwoVnQuZTwwfHxWdC5lPjYpJiYoemE9ITApKTp0cj1laSksUm48MXx8''@;'; + put 'put ''Um4+YmkoaG4sZWksWWkpP0ooemUpLl9vdmVyZmxvd1dlZWtzPSEwOm51bGwhPXphP0ooemUpLl9vdmVyZmxvd1dlZWtkYXk9ITA6KGRhPXNhKGhuLFJuLHRyLGVpLFlpKSx6ZS5fYVswXT1kYS55ZWFyLHplLl9kYXlPZlllYXI9ZGEuZGF5T2ZZZWFyKX0oemUpLG51bGwhPXplLl9kYXlPZlll''@;'; + put 'put ''YXImJihZaT1Gbyh6ZS5fYVswXSx0clswXSksKHplLl9kYXlPZlllYXI+TWEoWWkpfHwwPT09emUuX2RheU9mWWVhcikmJihKKHplKS5fb3ZlcmZsb3dEYXlPZlllYXI9ITApLGhuPXZpKFlpLDAsemUuX2RheU9mWWVhciksemUuX2FbMV09aG4uZ2V0VVRDTW9udGgoKSx6ZS5fYVsyXT1obi5n''@;'; + put 'put ''ZXRVVENEYXRlKCkpLFZ0PTA7VnQ8MyYmbnVsbD09emUuX2FbVnRdOysrVnQpemUuX2FbVnRdPVJuW1Z0XT10cltWdF07Zm9yKDtWdDw3O1Z0KyspemUuX2FbVnRdPVJuW1Z0XT1udWxsPT16ZS5fYVtWdF0/Mj09PVZ0PzE6MDp6ZS5fYVtWdF07MjQ9PT16ZS5fYVszXSYmMD09PXplLl9hWzRd''@;'; + put 'put ''JiYwPT09emUuX2FbNV0mJjA9PT16ZS5fYVs2XSYmKHplLl9uZXh0RGF5PSEwLHplLl9hWzNdPTApLHplLl9kPSh6ZS5fdXNlVVRDP3ZpOkFpKS5hcHBseShudWxsLFJuKSxlaT16ZS5fdXNlVVRDP3plLl9kLmdldFVUQ0RheSgpOnplLl9kLmdldERheSgpLG51bGwhPXplLl90em0mJnplLl9k''@;'; + put 'put ''LnNldFVUQ01pbnV0ZXMoemUuX2QuZ2V0VVRDTWludXRlcygpLXplLl90em0pLHplLl9uZXh0RGF5JiYoemUuX2FbM109MjQpLHplLl93JiZ2b2lkIDAhPT16ZS5fdy5kJiZ6ZS5fdy5kIT09ZWkmJihKKHplKS53ZWVrZGF5TWlzbWF0Y2g9ITApfX1mdW5jdGlvbiBsZih6ZSl7aWYoemUuX2Yh''@;'; + put 'put ''PT1CLklTT184NjAxKWlmKHplLl9mIT09Qi5SRkNfMjgyMil7emUuX2E9W10sSih6ZSkuZW1wdHk9ITA7dmFyIGhuLFJuLHRyLGVpLFlpLEJzLEt1LFZ0PSIiK3plLl9pLGRhPVZ0Lmxlbmd0aCx6YT0wO2ZvcihLdT0odHI9Z3QoemUuX2YsemUuX2xvY2FsZSkubWF0Y2goUyl8fFtdKS5sZW5n''@;'; + put 'put ''dGgsaG49MDtobjxLdTtobisrKShSbj0oVnQubWF0Y2goem4oZWk9dHJbaG5dLHplKSl8fFtdKVswXSkmJigoWWk9VnQuc3Vic3RyKDAsVnQuaW5kZXhPZihSbikpKS5sZW5ndGg+MCYmSih6ZSkudW51c2VkSW5wdXQucHVzaChZaSksVnQ9VnQuc2xpY2UoVnQuaW5kZXhPZihSbikrUm4ubGVu''@;'; + put 'put ''Z3RoKSx6YSs9Um4ubGVuZ3RoKSxDZVtlaV0/KFJuP0ooemUpLmVtcHR5PSExOkooemUpLnVudXNlZFRva2Vucy5wdXNoKGVpKSxjbihlaSxSbix6ZSkpOnplLl9zdHJpY3QmJiFSbiYmSih6ZSkudW51c2VkVG9rZW5zLnB1c2goZWkpO0ooemUpLmNoYXJzTGVmdE92ZXI9ZGEtemEsVnQubGVu''@;'; + put 'put ''Z3RoPjAmJkooemUpLnVudXNlZElucHV0LnB1c2goVnQpLHplLl9hWzNdPD0xMiYmITA9PT1KKHplKS5iaWdIb3VyJiZ6ZS5fYVszXT4wJiYoSih6ZSkuYmlnSG91cj12b2lkIDApLEooemUpLnBhcnNlZERhdGVQYXJ0cz16ZS5fYS5zbGljZSgwKSxKKHplKS5tZXJpZGllbT16ZS5fbWVyaWRp''@;'; + put 'put ''ZW0semUuX2FbM109ZnVuY3Rpb24gZ2QoemUsVnQsaG4pe3ZhciBSbjtyZXR1cm4gbnVsbD09aG4/VnQ6bnVsbCE9emUubWVyaWRpZW1Ib3VyP3plLm1lcmlkaWVtSG91cihWdCxobik6KG51bGwhPXplLmlzUE0mJigoUm49emUuaXNQTShobikpJiZWdDwxMiYmKFZ0Kz0xMiksIVJuJiYxMj09''@;'; + put 'put ''PVZ0JiYoVnQ9MCkpLFZ0KX0oemUuX2xvY2FsZSx6ZS5fYVszXSx6ZS5fbWVyaWRpZW0pLG51bGwhPT0oQnM9Sih6ZSkuZXJhKSYmKHplLl9hWzBdPXplLl9sb2NhbGUuZXJhc0NvbnZlcnRZZWFyKEJzLHplLl9hWzBdKSkseTEoemUpLHAzKHplKX1lbHNlIHZzKHplKTtlbHNlIF9hKHplKX1m''@;'; + put 'put ''dW5jdGlvbiBUdSh6ZSl7dmFyIFZ0PXplLl9pLGhuPXplLl9mO3JldHVybiB6ZS5fbG9jYWxlPXplLl9sb2NhbGV8fHUxKHplLl9sKSxudWxsPT09VnR8fHZvaWQgMD09PWhuJiYiIj09PVZ0P2NlKHtudWxsSW5wdXQ6ITB9KTooInN0cmluZyI9PXR5cGVvZiBWdCYmKHplLl9pPVZ0PXplLl9s''@;'; + put 'put ''b2NhbGUucHJlcGFyc2UoVnQpKSxTZShWdCk/bmV3IGtlKHAzKFZ0KSk6KFkoVnQpP3plLl9kPVZ0Ok1lKGhuKT9mdW5jdGlvbiAkbCh6ZSl7dmFyIFZ0LGhuLFJuLHRyLGVpLFlpLGRhPSExLHphPXplLl9mLmxlbmd0aDtpZigwPT09emEpcmV0dXJuIEooemUpLmludmFsaWRGb3JtYXQ9ITAs''@;'; + put 'put ''dm9pZCh6ZS5fZD1uZXcgRGF0ZShOYU4pKTtmb3IodHI9MDt0cjx6YTt0cisrKWVpPTAsWWk9ITEsVnQ9QWUoe30semUpLG51bGwhPXplLl91c2VVVEMmJihWdC5fdXNlVVRDPXplLl91c2VVVEMpLFZ0Ll9mPXplLl9mW3RyXSxsZihWdCksb2UoVnQpJiYoWWk9ITApLGVpKz1KKFZ0KS5jaGFy''@;'; + put 'put ''c0xlZnRPdmVyLGVpKz0xMCpKKFZ0KS51bnVzZWRUb2tlbnMubGVuZ3RoLEooVnQpLnNjb3JlPWVpLGRhP2VpPFJuJiYoUm49ZWksaG49VnQpOihudWxsPT1Sbnx8ZWk8Um58fFlpKSYmKFJuPWVpLGhuPVZ0LFlpJiYoZGE9ITApKTtOKHplLGhufHxWdCl9KHplKTpobj9sZih6ZSk6ZnVuY3Rp''@;'; + put 'put ''b24gc2YoemUpe3ZhciBWdD16ZS5faTtpZShWdCk/emUuX2Q9bmV3IERhdGUoQi5ub3coKSk6WShWdCk/emUuX2Q9bmV3IERhdGUoVnQudmFsdWVPZigpKToic3RyaW5nIj09dHlwZW9mIFZ0P2Z1bmN0aW9uIGZhKHplKXt2YXIgVnQ9VXUuZXhlYyh6ZS5faSk7bnVsbD09PVZ0PyhfYSh6ZSks''@;'; + put 'put ''ITE9PT16ZS5faXNWYWxpZCYmKGRlbGV0ZSB6ZS5faXNWYWxpZCx2cyh6ZSksITE9PT16ZS5faXNWYWxpZCYmKGRlbGV0ZSB6ZS5faXNWYWxpZCx6ZS5fc3RyaWN0P3plLl9pc1ZhbGlkPSExOkIuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soemUpKSkpOnplLl9kPW5ldyBEYXRlKCtWdFsxXSl9''@;'; + put 'put ''KHplKTpNZShWdCk/KHplLl9hPVcoVnQuc2xpY2UoMCksZnVuY3Rpb24oaG4pe3JldHVybiBwYXJzZUludChobiwxMCl9KSx5MSh6ZSkpOlUoVnQpP2Z1bmN0aW9uIHh1KHplKXtpZighemUuX2Qpe3ZhciBWdD1mdCh6ZS5faSk7emUuX2E9VyhbVnQueWVhcixWdC5tb250aCx2b2lkIDA9PT1W''@;'; + put 'put ''dC5kYXk/VnQuZGF0ZTpWdC5kYXksVnQuaG91cixWdC5taW51dGUsVnQuc2Vjb25kLFZ0Lm1pbGxpc2Vjb25kXSxmdW5jdGlvbihSbil7cmV0dXJuIFJuJiZwYXJzZUludChSbiwxMCl9KSx5MSh6ZSl9fSh6ZSk6bGUoVnQpP3plLl9kPW5ldyBEYXRlKFZ0KTpCLmNyZWF0ZUZyb21JbnB1dEZh''@;'; + put 'put ''bGxiYWNrKHplKX0oemUpLG9lKHplKXx8KHplLl9kPW51bGwpLHplKSl9ZnVuY3Rpb24gS28oemUsVnQsaG4sUm4sdHIpe3ZhciBlaT17fTtyZXR1cm4oITA9PT1WdHx8ITE9PT1WdCkmJihSbj1WdCxWdD12b2lkIDApLCghMD09PWhufHwhMT09PWhuKSYmKFJuPWhuLGhuPXZvaWQgMCksKFUo''@;'; + put 'put ''emUpJiZaKHplKXx8TWUoemUpJiYwPT09emUubGVuZ3RoKSYmKHplPXZvaWQgMCksZWkuX2lzQU1vbWVudE9iamVjdD0hMCxlaS5fdXNlVVRDPWVpLl9pc1VUQz10cixlaS5fbD1obixlaS5faT16ZSxlaS5fZj1WdCxlaS5fc3RyaWN0PVJuLGZ1bmN0aW9uIGx1KHplKXt2YXIgVnQ9bmV3IGtl''@;'; + put 'put ''KHAzKFR1KHplKSkpO3JldHVybiBWdC5fbmV4dERheSYmKFZ0LmFkZCgxLCJkIiksVnQuX25leHREYXk9dm9pZCAwKSxWdH0oZWkpfWZ1bmN0aW9uIENzKHplLFZ0LGhuLFJuKXtyZXR1cm4gS28oemUsVnQsaG4sUm4sITEpfUIuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2s9VGUoInZhbHVlIHBy''@;'; + put 'put ''b3ZpZGVkIGlzIG5vdCBpbiBhIHJlY29nbml6ZWQgUkZDMjgyMiBvciBJU08gZm9ybWF0LiBtb21lbnQgY29uc3RydWN0aW9uIGZhbGxzIGJhY2sgdG8ganMgRGF0ZSgpLCB3aGljaCBpcyBub3QgcmVsaWFibGUgYWNyb3NzIGFsbCBicm93c2VycyBhbmQgdmVyc2lvbnMuIE5vbiBSRkMyODIy''@;'; + put 'put ''L0lTTyBkYXRlIGZvcm1hdHMgYXJlIGRpc2NvdXJhZ2VkLiBQbGVhc2UgcmVmZXIgdG8gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9qcy1kYXRlLyBmb3IgbW9yZSBpbmZvLiIsZnVuY3Rpb24oemUpe3plLl9kPW5ldyBEYXRlKHplLl9pKyh6ZS5fdXNlVVRDPyIgVVRD''@;'; + put 'put ''IjoiIikpfSksQi5JU09fODYwMT1mdW5jdGlvbigpe30sQi5SRkNfMjgyMj1mdW5jdGlvbigpe307dmFyIHpnPVRlKCJtb21lbnQoKS5taW4gaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudC5tYXggaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9taW4tbWF4''@;'; + put 'put ''LyIsZnVuY3Rpb24oKXt2YXIgemU9Q3MuYXBwbHkobnVsbCxhcmd1bWVudHMpO3JldHVybiB0aGlzLmlzVmFsaWQoKSYmemUuaXNWYWxpZCgpP3plPHRoaXM/dGhpczp6ZTpjZSgpfSksVmY9VGUoIm1vbWVudCgpLm1heCBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50Lm1pbiBpbnN0ZWFkLiBo''@;'; + put 'put ''dHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL21pbi1tYXgvIixmdW5jdGlvbigpe3ZhciB6ZT1Dcy5hcHBseShudWxsLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuaXNWYWxpZCgpJiZ6ZS5pc1ZhbGlkKCk/emU+dGhpcz90aGlzOnplOmNlKCl9KTtmdW5jdGlvbiBLdyh6ZSxW''@;'; + put 'put ''dCl7dmFyIGhuLFJuO2lmKDE9PT1WdC5sZW5ndGgmJk1lKFZ0WzBdKSYmKFZ0PVZ0WzBdKSwhVnQubGVuZ3RoKXJldHVybiBDcygpO2Zvcihobj1WdFswXSxSbj0xO1JuPFZ0Lmxlbmd0aDsrK1JuKSghVnRbUm5dLmlzVmFsaWQoKXx8VnRbUm5dW3plXShobikpJiYoaG49VnRbUm5dKTtyZXR1''@;'; + put 'put ''cm4gaG59dmFyIEFoPVsieWVhciIsInF1YXJ0ZXIiLCJtb250aCIsIndlZWsiLCJkYXkiLCJob3VyIiwibWludXRlIiwic2Vjb25kIiwibWlsbGlzZWNvbmQiXTtmdW5jdGlvbiBacCh6ZSl7dmFyIFZ0PWZ0KHplKSxobj1WdC55ZWFyfHwwLFJuPVZ0LnF1YXJ0ZXJ8fDAsdHI9VnQubW9udGh8''@;'; + put 'put ''fDAsZWk9VnQud2Vla3x8VnQuaXNvV2Vla3x8MCxZaT1WdC5kYXl8fDAsZGE9VnQuaG91cnx8MCx6YT1WdC5taW51dGV8fDAsQnM9VnQuc2Vjb25kfHwwLEt1PVZ0Lm1pbGxpc2Vjb25kfHwwO3RoaXMuX2lzVmFsaWQ9ZnVuY3Rpb24gJHcoemUpe3ZhciBWdCxSbixobj0hMSx0cj1BaC5sZW5n''@;'; + put 'put ''dGg7Zm9yKFZ0IGluIHplKWlmKFEoemUsVnQpJiYoLTE9PT1Wci5jYWxsKEFoLFZ0KXx8bnVsbCE9emVbVnRdJiZpc05hTih6ZVtWdF0pKSlyZXR1cm4hMTtmb3IoUm49MDtSbjx0cjsrK1JuKWlmKHplW0FoW1JuXV0pe2lmKGhuKXJldHVybiExO3BhcnNlRmxvYXQoemVbQWhbUm5dXSkhPT1R''@;'; + put 'put ''dCh6ZVtBaFtSbl1dKSYmKGhuPSEwKX1yZXR1cm4hMH0oVnQpLHRoaXMuX21pbGxpc2Vjb25kcz0rS3UrMWUzKkJzKzZlNCp6YSsxZTMqZGEqNjAqNjAsdGhpcy5fZGF5cz0rWWkrNyplaSx0aGlzLl9tb250aHM9K3RyKzMqUm4rMTIqaG4sdGhpcy5fZGF0YT17fSx0aGlzLl9sb2NhbGU9dTEo''@;'; + put 'put ''KSx0aGlzLl9idWJibGUoKX1mdW5jdGlvbiBhdih6ZSl7cmV0dXJuIHplIGluc3RhbmNlb2YgWnB9ZnVuY3Rpb24gR2coemUpe3JldHVybiB6ZTwwPy0xKk1hdGgucm91bmQoLTEqemUpOk1hdGgucm91bmQoemUpfWZ1bmN0aW9uIFdnKHplLFZ0KXtEZSh6ZSwwLDAsZnVuY3Rpb24oKXt2YXIg''@;'; + put 'put ''aG49dGhpcy51dGNPZmZzZXQoKSxSbj0iKyI7cmV0dXJuIGhuPDAmJihobj0taG4sUm49Ii0iKSxSbitUKH5+KGhuLzYwKSwyKStWdCtUKH5+aG4lNjAsMil9KX1XZygiWiIsIjoiKSxXZygiWloiLCIiKSx0bigiWiIsTnQpLHRuKCJaWiIsTnQpLG1uKFsiWiIsIlpaIl0sZnVuY3Rpb24oemUs''@;'; + put 'put ''VnQsaG4pe2huLl91c2VVVEM9ITAsaG4uX3R6bT1sdihOdCx6ZSl9KTt2YXIgQ009LyhbXCtcLV18XGRcZCkvZ2k7ZnVuY3Rpb24gbHYoemUsVnQpe3ZhciB0cixlaSxobj0oVnR8fCIiKS5tYXRjaCh6ZSk7cmV0dXJuIG51bGw9PT1obj9udWxsOjA9PT0oZWk9NjAqKHRyPSgoaG5baG4ubGVu''@;'; + put 'put ''Z3RoLTFdfHxbXSkrIiIpLm1hdGNoKENNKXx8WyItIiwwLDBdKVsxXStRdCh0clsyXSkpPzA6IisiPT09dHJbMF0/ZWk6LWVpfWZ1bmN0aW9uIFlnKHplLFZ0KXt2YXIgaG4sUm47cmV0dXJuIFZ0Ll9pc1VUQz8oaG49VnQuY2xvbmUoKSxSbj0oU2UoemUpfHxZKHplKT96ZS52YWx1ZU9mKCk6''@;'; + put 'put ''Q3MoemUpLnZhbHVlT2YoKSktaG4udmFsdWVPZigpLGhuLl9kLnNldFRpbWUoaG4uX2QudmFsdWVPZigpK1JuKSxCLnVwZGF0ZU9mZnNldChobiwhMSksaG4pOkNzKHplKS5sb2NhbCgpfWZ1bmN0aW9uIHdoKHplKXtyZXR1cm4tTWF0aC5yb3VuZCh6ZS5fZC5nZXRUaW1lem9uZU9mZnNldCgp''@;'; + put 'put ''KX1mdW5jdGlvbiBlYigpe3JldHVybiEhdGhpcy5pc1ZhbGlkKCkmJnRoaXMuX2lzVVRDJiYwPT09dGhpcy5fb2Zmc2V0fUIudXBkYXRlT2Zmc2V0PWZ1bmN0aW9uKCl7fTt2YXIgUWc9L14oLXxcKyk/KD86KFxkKilbLiBdKT8oXGQrKTooXGQrKSg/OjooXGQrKShcLlxkKik/KT8kLyxXcD0v''@;'; + put 'put ''XigtfFwrKT9QKD86KFstK10/WzAtOSwuXSopWSk/KD86KFstK10/WzAtOSwuXSopTSk/KD86KFstK10/WzAtOSwuXSopVyk/KD86KFstK10/WzAtOSwuXSopRCk/KD86VCg/OihbLStdP1swLTksLl0qKUgpPyg/OihbLStdP1swLTksLl0qKU0pPyg/OihbLStdP1swLTksLl0qKVMpPyk/JC87''@;'; + put 'put ''ZnVuY3Rpb24gUXMoemUsVnQpe3ZhciB0cixlaSxZaSxobj16ZSxSbj1udWxsO3JldHVybiBhdih6ZSk/aG49e21zOnplLl9taWxsaXNlY29uZHMsZDp6ZS5fZGF5cyxNOnplLl9tb250aHN9OmxlKHplKXx8IWlzTmFOKCt6ZSk/KGhuPXt9LFZ0P2huW1Z0XT0remU6aG4ubWlsbGlzZWNvbmRz''@;'; + put 'put ''PSt6ZSk6KFJuPVFnLmV4ZWMoemUpKT8odHI9Ii0iPT09Um5bMV0/LTE6MSxobj17eTowLGQ6UXQoUm5bMl0pKnRyLGg6UXQoUm5bM10pKnRyLG06UXQoUm5bNF0pKnRyLHM6UXQoUm5bNV0pKnRyLG1zOlF0KEdnKDFlMypSbls2XSkpKnRyfSk6KFJuPVdwLmV4ZWMoemUpKT9obj17eTpiaChS''@;'; + put 'put ''blsyXSx0cj0iLSI9PT1SblsxXT8tMToxKSxNOmJoKFJuWzNdLHRyKSx3OmJoKFJuWzRdLHRyKSxkOmJoKFJuWzVdLHRyKSxoOmJoKFJuWzZdLHRyKSxtOmJoKFJuWzddLHRyKSxzOmJoKFJuWzhdLHRyKX06bnVsbD09aG4/aG49e306Im9iamVjdCI9PXR5cGVvZiBobiYmKCJmcm9tImluIGhu''@;'; + put 'put ''fHwidG8iaW4gaG4pJiYoWWk9ZnVuY3Rpb24gSmcoemUsVnQpe3ZhciBobjtyZXR1cm4gemUuaXNWYWxpZCgpJiZWdC5pc1ZhbGlkKCk/KFZ0PVlnKFZ0LHplKSx6ZS5pc0JlZm9yZShWdCk/aG49WXAoemUsVnQpOigoaG49WXAoVnQsemUpKS5taWxsaXNlY29uZHM9LWhuLm1pbGxpc2Vjb25k''@;'; + put 'put ''cyxobi5tb250aHM9LWhuLm1vbnRocyksaG4pOnttaWxsaXNlY29uZHM6MCxtb250aHM6MH19KENzKGhuLmZyb20pLENzKGhuLnRvKSksKGhuPXt9KS5tcz1ZaS5taWxsaXNlY29uZHMsaG4uTT1ZaS5tb250aHMpLGVpPW5ldyBacChobiksYXYoemUpJiZRKHplLCJfbG9jYWxlIikmJihlaS5f''@;'; + put 'put ''bG9jYWxlPXplLl9sb2NhbGUpLGF2KHplKSYmUSh6ZSwiX2lzVmFsaWQiKSYmKGVpLl9pc1ZhbGlkPXplLl9pc1ZhbGlkKSxlaX1mdW5jdGlvbiBiaCh6ZSxWdCl7dmFyIGhuPXplJiZwYXJzZUZsb2F0KHplLnJlcGxhY2UoIiwiLCIuIikpO3JldHVybihpc05hTihobik/MDpobikqVnR9ZnVu''@;'; + put 'put ''Y3Rpb24gWXAoemUsVnQpe3ZhciBobj17fTtyZXR1cm4gaG4ubW9udGhzPVZ0Lm1vbnRoKCktemUubW9udGgoKSsxMiooVnQueWVhcigpLXplLnllYXIoKSksemUuY2xvbmUoKS5hZGQoaG4ubW9udGhzLCJNIikuaXNBZnRlcihWdCkmJi0taG4ubW9udGhzLGhuLm1pbGxpc2Vjb25kcz0rVnQt''@;'; + put 'put ''K3plLmNsb25lKCkuYWRkKGhuLm1vbnRocywiTSIpLGhufWZ1bmN0aW9uIFZjKHplLFZ0KXtyZXR1cm4gZnVuY3Rpb24oaG4sUm4pe3ZhciBlaTtyZXR1cm4gbnVsbCE9PVJuJiYhaXNOYU4oK1JuKSYmKGhlKFZ0LCJtb21lbnQoKS4iK1Z0KyIocGVyaW9kLCBudW1iZXIpIGlzIGRlcHJlY2F0''@;'; + put 'put ''ZWQuIFBsZWFzZSB1c2UgbW9tZW50KCkuIitWdCsiKG51bWJlciwgcGVyaW9kKS4gU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvYWRkLWludmVydGVkLXBhcmFtLyBmb3IgbW9yZSBpbmZvLiIpLGVpPWhuLGhuPVJuLFJuPWVpKSxFNCh0aGlzLFFzKGhuLFJuKSx6''@;'; + put 'put ''ZSksdGhpc319ZnVuY3Rpb24gRTQoemUsVnQsaG4sUm4pe3ZhciB0cj1WdC5fbWlsbGlzZWNvbmRzLGVpPUdnKFZ0Ll9kYXlzKSxZaT1HZyhWdC5fbW9udGhzKTshemUuaXNWYWxpZCgpfHwoUm49bnVsbD09Um58fFJuLFlpJiZXMCh6ZSxkbih6ZSwiTW9udGgiKStZaSpobiksZWkmJnluKHpl''@;'; + put 'put ''LCJEYXRlIixkbih6ZSwiRGF0ZSIpK2VpKmhuKSx0ciYmemUuX2Quc2V0VGltZSh6ZS5fZC52YWx1ZU9mKCkrdHIqaG4pLFJuJiZCLnVwZGF0ZU9mZnNldCh6ZSxlaXx8WWkpKX1Rcy5mbj1acC5wcm90b3R5cGUsUXMuaW52YWxpZD1mdW5jdGlvbiB5aCgpe3JldHVybiBRcyhOYU4pfTt2YXIg''@;'; + put 'put ''a009VmMoMSwiYWRkIiksZnY9VmMoLTEsInN1YnRyYWN0Iik7ZnVuY3Rpb24gaHYoemUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgemV8fHplIGluc3RhbmNlb2YgU3RyaW5nfWZ1bmN0aW9uIHN1KHplKXtyZXR1cm4gU2UoemUpfHxZKHplKXx8aHYoemUpfHxsZSh6ZSl8fGZ1bmN0aW9uIFNN''@;'; + put 'put ''KHplKXt2YXIgVnQ9TWUoemUpLGhuPSExO3JldHVybiBWdCYmKGhuPTA9PT16ZS5maWx0ZXIoZnVuY3Rpb24oUm4pe3JldHVybiFsZShSbikmJmh2KHplKX0pLmxlbmd0aCksVnQmJmhufSh6ZSl8fGZ1bmN0aW9uIEoyKHplKXt2YXIgdHIsVnQ9VSh6ZSkmJiFaKHplKSxobj0hMSxSbj1bInll''@;'; + put 'put ''YXJzIiwieWVhciIsInkiLCJtb250aHMiLCJtb250aCIsIk0iLCJkYXlzIiwiZGF5IiwiZCIsImRhdGVzIiwiZGF0ZSIsIkQiLCJob3VycyIsImhvdXIiLCJoIiwibWludXRlcyIsIm1pbnV0ZSIsIm0iLCJzZWNvbmRzIiwic2Vjb25kIiwicyIsIm1pbGxpc2Vjb25kcyIsIm1pbGxpc2Vjb25k''@;'; + put 'put ''IiwibXMiXSxZaT1Sbi5sZW5ndGg7Zm9yKHRyPTA7dHI8WWk7dHIrPTEpaG49aG58fFEoemUsUm5bdHJdKTtyZXR1cm4gVnQmJmhufSh6ZSl8fG51bGw9PXplfWZ1bmN0aW9uIHRiKHplKXt2YXIgdHIsVnQ9VSh6ZSkmJiFaKHplKSxobj0hMSxSbj1bInNhbWVEYXkiLCJuZXh0RGF5IiwibGFz''@;'; + put 'put ''dERheSIsIm5leHRXZWVrIiwibGFzdFdlZWsiLCJzYW1lRWxzZSJdO2Zvcih0cj0wO3RyPFJuLmxlbmd0aDt0cis9MSlobj1obnx8USh6ZSxSblt0cl0pO3JldHVybiBWdCYmaG59ZnVuY3Rpb24gX2goemUsVnQpe2lmKHplLmRhdGUoKTxWdC5kYXRlKCkpcmV0dXJuLV9oKFZ0LHplKTt2YXIg''@;'; + put 'put ''aG49MTIqKFZ0LnllYXIoKS16ZS55ZWFyKCkpKyhWdC5tb250aCgpLXplLm1vbnRoKCkpLFJuPXplLmNsb25lKCkuYWRkKGhuLCJtb250aHMiKTtyZXR1cm4tKGhuKyhWdC1SbjwwPyhWdC1SbikvKFJuLXplLmNsb25lKCkuYWRkKGhuLTEsIm1vbnRocyIpKTooVnQtUm4pLyh6ZS5jbG9uZSgp''@;'; + put 'put ''LmFkZChobisxLCJtb250aHMiKS1SbikpKXx8MH1mdW5jdGlvbiBwdCh6ZSl7dmFyIFZ0O3JldHVybiB2b2lkIDA9PT16ZT90aGlzLl9sb2NhbGUuX2FiYnI6KG51bGwhPShWdD11MSh6ZSkpJiYodGhpcy5fbG9jYWxlPVZ0KSx0aGlzKX1CLmRlZmF1bHRGb3JtYXQ9IllZWVktTU0tRERUSEg6''@;'; + put 'put ''bW06c3NaIixCLmRlZmF1bHRGb3JtYXRVdGM9IllZWVktTU0tRERUSEg6bW06c3NbWl0iO3ZhciBJdD1UZSgibW9tZW50KCkubGFuZygpIGlzIGRlcHJlY2F0ZWQuIEluc3RlYWQsIHVzZSBtb21lbnQoKS5sb2NhbGVEYXRhKCkgdG8gZ2V0IHRoZSBsYW5ndWFnZSBjb25maWd1cmF0aW9uLiBV''@;'; + put 'put ''c2UgbW9tZW50KCkubG9jYWxlKCkgdG8gY2hhbmdlIGxhbmd1YWdlcy4iLGZ1bmN0aW9uKHplKXtyZXR1cm4gdm9pZCAwPT09emU/dGhpcy5sb2NhbGVEYXRhKCk6dGhpcy5sb2NhbGUoemUpfSk7ZnVuY3Rpb24gUHQoKXtyZXR1cm4gdGhpcy5fbG9jYWxlfXZhciBydD02ZTQsYT02MCpydCxK''@;'; + put 'put ''dD0zNTA2MzI4KmE7ZnVuY3Rpb24gaHIoemUsVnQpe3JldHVybih6ZSVWdCtWdCklVnR9ZnVuY3Rpb24gUGkoemUsVnQsaG4pe3JldHVybiB6ZTwxMDAmJnplPj0wP25ldyBEYXRlKHplKzQwMCxWdCxobiktSnQ6bmV3IERhdGUoemUsVnQsaG4pLnZhbHVlT2YoKX1mdW5jdGlvbiBqbih6ZSxW''@;'; + put 'put ''dCxobil7cmV0dXJuIHplPDEwMCYmemU+PTA/RGF0ZS5VVEMoemUrNDAwLFZ0LGhuKS1KdDpEYXRlLlVUQyh6ZSxWdCxobil9ZnVuY3Rpb24gcWwoemUsVnQpe3JldHVybiBWdC5lcmFzQWJiclJlZ2V4KHplKX1mdW5jdGlvbiBKcCgpe3ZhciB0cixlaSx6ZT1bXSxWdD1bXSxobj1bXSxSbj1b''@;'; + put 'put ''XSxZaT10aGlzLmVyYXMoKTtmb3IodHI9MCxlaT1ZaS5sZW5ndGg7dHI8ZWk7Kyt0cilWdC5wdXNoKEJuKFlpW3RyXS5uYW1lKSksemUucHVzaChCbihZaVt0cl0uYWJicikpLGhuLnB1c2goQm4oWWlbdHJdLm5hcnJvdykpLFJuLnB1c2goQm4oWWlbdHJdLm5hbWUpKSxSbi5wdXNoKEJuKFlp''@;'; + put 'put ''W3RyXS5hYmJyKSksUm4ucHVzaChCbihZaVt0cl0ubmFycm93KSk7dGhpcy5fZXJhc1JlZ2V4PW5ldyBSZWdFeHAoIl4oIitSbi5qb2luKCJ8IikrIikiLCJpIiksdGhpcy5fZXJhc05hbWVSZWdleD1uZXcgUmVnRXhwKCJeKCIrVnQuam9pbigifCIpKyIpIiwiaSIpLHRoaXMuX2VyYXNBYmJy''@;'; + put 'put ''UmVnZXg9bmV3IFJlZ0V4cCgiXigiK3plLmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl9lcmFzTmFycm93UmVnZXg9bmV3IFJlZ0V4cCgiXigiK2huLmpvaW4oInwiKSsiKSIsImkiKX1mdW5jdGlvbiBYcCh6ZSxWdCl7RGUoMCxbemUsemUubGVuZ3RoXSwwLFZ0KX1mdW5jdGlvbiBpYih6ZSxW''@;'; + put 'put ''dCxobixSbix0cil7dmFyIGVpO3JldHVybiBudWxsPT16ZT9ybCh0aGlzLFJuLHRyKS55ZWFyOihWdD4oZWk9YmkoemUsUm4sdHIpKSYmKFZ0PWVpKSxJTS5jYWxsKHRoaXMsemUsVnQsaG4sUm4sdHIpKX1mdW5jdGlvbiBJTSh6ZSxWdCxobixSbix0cil7dmFyIGVpPXNhKHplLFZ0LGhuLFJu''@;'; + put 'put ''LHRyKSxZaT12aShlaS55ZWFyLDAsZWkuZGF5T2ZZZWFyKTtyZXR1cm4gdGhpcy55ZWFyKFlpLmdldFVUQ0Z1bGxZZWFyKCkpLHRoaXMubW9udGgoWWkuZ2V0VVRDTW9udGgoKSksdGhpcy5kYXRlKFlpLmdldFVUQ0RhdGUoKSksdGhpc31EZSgiTiIsMCwwLCJlcmFBYmJyIiksRGUoIk5OIiww''@;'; + put 'put ''LDAsImVyYUFiYnIiKSxEZSgiTk5OIiwwLDAsImVyYUFiYnIiKSxEZSgiTk5OTiIsMCwwLCJlcmFOYW1lIiksRGUoIk5OTk5OIiwwLDAsImVyYU5hcnJvdyIpLERlKCJ5IixbInkiLDFdLCJ5byIsImVyYVllYXIiKSxEZSgieSIsWyJ5eSIsMl0sMCwiZXJhWWVhciIpLERlKCJ5IixbInl5eSIs''@;'; + put 'put ''M10sMCwiZXJhWWVhciIpLERlKCJ5IixbInl5eXkiLDRdLDAsImVyYVllYXIiKSx0bigiTiIscWwpLHRuKCJOTiIscWwpLHRuKCJOTk4iLHFsKSx0bigiTk5OTiIsZnVuY3Rpb24gaGEoemUsVnQpe3JldHVybiBWdC5lcmFzTmFtZVJlZ2V4KHplKX0pLHRuKCJOTk5OTiIsZnVuY3Rpb24gRGEo''@;'; + put 'put ''emUsVnQpe3JldHVybiBWdC5lcmFzTmFycm93UmVnZXgoemUpfSksbW4oWyJOIiwiTk4iLCJOTk4iLCJOTk5OIiwiTk5OTk4iXSxmdW5jdGlvbih6ZSxWdCxobixSbil7dmFyIHRyPWhuLl9sb2NhbGUuZXJhc1BhcnNlKHplLFJuLGhuLl9zdHJpY3QpO3RyP0ooaG4pLmVyYT10cjpKKGhuKS5p''@;'; + put 'put ''bnZhbGlkRXJhPXplfSksdG4oInkiLFd0KSx0bigieXkiLFd0KSx0bigieXl5IixXdCksdG4oInl5eXkiLFd0KSx0bigieW8iLGZ1bmN0aW9uIFQ4KHplLFZ0KXtyZXR1cm4gVnQuX2VyYVllYXJPcmRpbmFsUmVnZXh8fFd0fSksbW4oWyJ5IiwieXkiLCJ5eXkiLCJ5eXl5Il0sMCksbW4oWyJ5''@;'; + put 'put ''byJdLGZ1bmN0aW9uKHplLFZ0LGhuLFJuKXt2YXIgdHI7aG4uX2xvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCYmKHRyPXplLm1hdGNoKGhuLl9sb2NhbGUuX2VyYVllYXJPcmRpbmFsUmVnZXgpKSxWdFswXT1obi5fbG9jYWxlLmVyYVllYXJPcmRpbmFsUGFyc2U/aG4uX2xvY2FsZS5lcmFZ''@;'; + put 'put ''ZWFyT3JkaW5hbFBhcnNlKHplLHRyKTpwYXJzZUludCh6ZSwxMCl9KSxEZSgwLFsiZ2ciLDJdLDAsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53ZWVrWWVhcigpJTEwMH0pLERlKDAsWyJHRyIsMl0sMCxmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzb1dlZWtZZWFyKCklMTAwfSksWHAoImdnZ2ci''@;'; + put 'put ''LCJ3ZWVrWWVhciIpLFhwKCJnZ2dnZyIsIndlZWtZZWFyIiksWHAoIkdHR0ciLCJpc29XZWVrWWVhciIpLFhwKCJHR0dHRyIsImlzb1dlZWtZZWFyIiksTHQoIndlZWtZZWFyIiwiZ2ciKSxMdCgiaXNvV2Vla1llYXIiLCJHRyIpLEdlKCJ3ZWVrWWVhciIsMSksR2UoImlzb1dlZWtZZWFyIiwx''@;'; + put 'put ''KSx0bigiRyIscG4pLHRuKCJnIixwbiksdG4oIkdHIix4cixlciksdG4oImdnIix4cixlciksdG4oIkdHR0ciLEFuLFhuKSx0bigiZ2dnZyIsQW4sWG4pLHRuKCJHR0dHRyIscW4sRnIpLHRuKCJnZ2dnZyIscW4sRnIpLHVuKFsiZ2dnZyIsImdnZ2dnIiwiR0dHRyIsIkdHR0dHIl0sZnVuY3Rp''@;'; + put 'put ''b24oemUsVnQsaG4sUm4pe1Z0W1JuLnN1YnN0cigwLDIpXT1RdCh6ZSl9KSx1bihbImdnIiwiR0ciXSxmdW5jdGlvbih6ZSxWdCxobixSbil7VnRbUm5dPUIucGFyc2VUd29EaWdpdFllYXIoemUpfSksRGUoIlEiLDAsIlFvIiwicXVhcnRlciIpLEx0KCJxdWFydGVyIiwiUSIpLEdlKCJxdWFy''@;'; + put 'put ''dGVyIiw3KSx0bigiUSIsYm4pLG1uKCJRIixmdW5jdGlvbih6ZSxWdCl7VnRbMV09MyooUXQoemUpLTEpfSksRGUoIkQiLFsiREQiLDJdLCJEbyIsImRhdGUiKSxMdCgiZGF0ZSIsIkQiKSxHZSgiZGF0ZSIsOSksdG4oIkQiLHhyKSx0bigiREQiLHhyLGVyKSx0bigiRG8iLGZ1bmN0aW9uKHpl''@;'; + put 'put ''LFZ0KXtyZXR1cm4gemU/VnQuX2RheU9mTW9udGhPcmRpbmFsUGFyc2V8fFZ0Ll9vcmRpbmFsUGFyc2U6VnQuX2RheU9mTW9udGhPcmRpbmFsUGFyc2VMZW5pZW50fSksbW4oWyJEIiwiREQiXSwyKSxtbigiRG8iLGZ1bmN0aW9uKHplLFZ0KXtWdFsyXT1RdCh6ZS5tYXRjaCh4cilbMF0pfSk7''@;'; + put 'put ''dmFyIHcyPWduKCJEYXRlIiwhMCk7RGUoIkRERCIsWyJEREREIiwzXSwiREREbyIsImRheU9mWWVhciIpLEx0KCJkYXlPZlllYXIiLCJEREQiKSxHZSgiZGF5T2ZZZWFyIiw0KSx0bigiREREIixuciksdG4oIkREREQiLHNyKSxtbihbIkRERCIsIkREREQiXSxmdW5jdGlvbih6ZSxWdCxobil7''@;'; + put 'put ''aG4uX2RheU9mWWVhcj1RdCh6ZSl9KSxEZSgibSIsWyJtbSIsMl0sMCwibWludXRlIiksTHQoIm1pbnV0ZSIsIm0iKSxHZSgibWludXRlIiwxNCksdG4oIm0iLHhyKSx0bigibW0iLHhyLGVyKSxtbihbIm0iLCJtbSJdLDQpO3ZhciBBZD1nbigiTWludXRlcyIsITEpO0RlKCJzIixbInNzIiwy''@;'; + put 'put ''XSwwLCJzZWNvbmQiKSxMdCgic2Vjb25kIiwicyIpLEdlKCJzZWNvbmQiLDE1KSx0bigicyIseHIpLHRuKCJzcyIseHIsZXIpLG1uKFsicyIsInNzIl0sNSk7dmFyIGZmLEk4LEtwPWduKCJTZWNvbmRzIiwhMSk7Zm9yKERlKCJTIiwwLDAsZnVuY3Rpb24oKXtyZXR1cm5+fih0aGlzLm1pbGxp''@;'; + put 'put ''c2Vjb25kKCkvMTAwKX0pLERlKDAsWyJTUyIsMl0sMCxmdW5jdGlvbigpe3JldHVybn5+KHRoaXMubWlsbGlzZWNvbmQoKS8xMCl9KSxEZSgwLFsiU1NTIiwzXSwwLCJtaWxsaXNlY29uZCIpLERlKDAsWyJTU1NTIiw0XSwwLGZ1bmN0aW9uKCl7cmV0dXJuIDEwKnRoaXMubWlsbGlzZWNvbmQo''@;'; + put 'put ''KX0pLERlKDAsWyJTU1NTUyIsNV0sMCxmdW5jdGlvbigpe3JldHVybiAxMDAqdGhpcy5taWxsaXNlY29uZCgpfSksRGUoMCxbIlNTU1NTUyIsNl0sMCxmdW5jdGlvbigpe3JldHVybiAxZTMqdGhpcy5taWxsaXNlY29uZCgpfSksRGUoMCxbIlNTU1NTU1MiLDddLDAsZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gMWU0KnRoaXMubWlsbGlzZWNvbmQoKX0pLERlKDAsWyJTU1NTU1NTUyIsOF0sMCxmdW5jdGlvbigpe3JldHVybiAxZTUqdGhpcy5taWxsaXNlY29uZCgpfSksRGUoMCxbIlNTU1NTU1NTUyIsOV0sMCxmdW5jdGlvbigpe3JldHVybiAxZTYqdGhpcy5taWxsaXNlY29uZCgpfSksTHQoIm1p''@;'; + put 'put ''bGxpc2Vjb25kIiwibXMiKSxHZSgibWlsbGlzZWNvbmQiLDE2KSx0bigiUyIsbnIsYm4pLHRuKCJTUyIsbnIsZXIpLHRuKCJTU1MiLG5yLHNyKSxmZj0iU1NTUyI7ZmYubGVuZ3RoPD05O2ZmKz0iUyIpdG4oZmYsV3QpO2Z1bmN0aW9uIERNKHplLFZ0KXtWdFs2XT1RdCgxZTMqKCIwLiIremUp''@;'; + put 'put ''KX1mb3IoZmY9IlMiO2ZmLmxlbmd0aDw9OTtmZis9IlMiKW1uKGZmLERNKTtJOD1nbigiTWlsbGlzZWNvbmRzIiwhMSksRGUoInoiLDAsMCwiem9uZUFiYnIiKSxEZSgienoiLDAsMCwiem9uZU5hbWUiKTt2YXIgYTA9a2UucHJvdG90eXBlO2Z1bmN0aW9uIEpzKHplKXtyZXR1cm4gemV9YTAu''@;'; + put 'put ''YWRkPWtNLGEwLmNhbGVuZGFyPWZ1bmN0aW9uIHZjKHplLFZ0KXsxPT09YXJndW1lbnRzLmxlbmd0aCYmKGFyZ3VtZW50c1swXT9zdShhcmd1bWVudHNbMF0pPyh6ZT1hcmd1bWVudHNbMF0sVnQ9dm9pZCAwKTp0Yihhcmd1bWVudHNbMF0pJiYoVnQ9YXJndW1lbnRzWzBdLHplPXZvaWQgMCk6''@;'; + put 'put ''KHplPXZvaWQgMCxWdD12b2lkIDApKTt2YXIgaG49emV8fENzKCksUm49WWcoaG4sdGhpcykuc3RhcnRPZigiZGF5IiksdHI9Qi5jYWxlbmRhckZvcm1hdCh0aGlzLFJuKXx8InNhbWVFbHNlIixlaT1WdCYmKE8oVnRbdHJdKT9WdFt0cl0uY2FsbCh0aGlzLGhuKTpWdFt0cl0pO3JldHVybiB0''@;'; + put 'put ''aGlzLmZvcm1hdChlaXx8dGhpcy5sb2NhbGVEYXRhKCkuY2FsZW5kYXIodHIsdGhpcyxDcyhobikpKX0sYTAuY2xvbmU9ZnVuY3Rpb24gZHYoKXtyZXR1cm4gbmV3IGtlKHRoaXMpfSxhMC5kaWZmPWZ1bmN0aW9uIE4xKHplLFZ0LGhuKXt2YXIgUm4sdHIsZWk7aWYoIXRoaXMuaXNWYWxpZCgp''@;'; + put 'put ''KXJldHVybiBOYU47aWYoIShSbj1ZZyh6ZSx0aGlzKSkuaXNWYWxpZCgpKXJldHVybiBOYU47c3dpdGNoKHRyPTZlNCooUm4udXRjT2Zmc2V0KCktdGhpcy51dGNPZmZzZXQoKSksVnQ9Q3QoVnQpKXtjYXNlInllYXIiOmVpPV9oKHRoaXMsUm4pLzEyO2JyZWFrO2Nhc2UibW9udGgiOmVpPV9o''@;'; + put 'put ''KHRoaXMsUm4pO2JyZWFrO2Nhc2UicXVhcnRlciI6ZWk9X2godGhpcyxSbikvMzticmVhaztjYXNlInNlY29uZCI6ZWk9KHRoaXMtUm4pLzFlMzticmVhaztjYXNlIm1pbnV0ZSI6ZWk9KHRoaXMtUm4pLzZlNDticmVhaztjYXNlImhvdXIiOmVpPSh0aGlzLVJuKS8zNmU1O2JyZWFrO2Nhc2Ui''@;'; + put 'put ''ZGF5IjplaT0odGhpcy1Sbi10cikvODY0ZTU7YnJlYWs7Y2FzZSJ3ZWVrIjplaT0odGhpcy1Sbi10cikvNjA0OGU1O2JyZWFrO2RlZmF1bHQ6ZWk9dGhpcy1Sbn1yZXR1cm4gaG4/ZWk6anQoZWkpfSxhMC5lbmRPZj1mdW5jdGlvbiBBbyh6ZSl7dmFyIFZ0LGhuO2lmKHZvaWQgMD09PSh6ZT1D''@;'; + put 'put ''dCh6ZSkpfHwibWlsbGlzZWNvbmQiPT09emV8fCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gdGhpcztzd2l0Y2goaG49dGhpcy5faXNVVEM/am46UGksemUpe2Nhc2UieWVhciI6VnQ9aG4odGhpcy55ZWFyKCkrMSwwLDEpLTE7YnJlYWs7Y2FzZSJxdWFydGVyIjpWdD1obih0aGlzLnllYXIoKSx0''@;'; + put 'put ''aGlzLm1vbnRoKCktdGhpcy5tb250aCgpJTMrMywxKS0xO2JyZWFrO2Nhc2UibW9udGgiOlZ0PWhuKHRoaXMueWVhcigpLHRoaXMubW9udGgoKSsxLDEpLTE7YnJlYWs7Y2FzZSJ3ZWVrIjpWdD1obih0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksdGhpcy5kYXRlKCktdGhpcy53ZWVrZGF5KCkr''@;'; + put 'put ''NyktMTticmVhaztjYXNlImlzb1dlZWsiOlZ0PWhuKHRoaXMueWVhcigpLHRoaXMubW9udGgoKSx0aGlzLmRhdGUoKS0odGhpcy5pc29XZWVrZGF5KCktMSkrNyktMTticmVhaztjYXNlImRheSI6Y2FzZSJkYXRlIjpWdD1obih0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksdGhpcy5kYXRlKCkr''@;'; + put 'put ''MSktMTticmVhaztjYXNlImhvdXIiOlZ0PXRoaXMuX2QudmFsdWVPZigpLFZ0Kz1hLWhyKFZ0Kyh0aGlzLl9pc1VUQz8wOnRoaXMudXRjT2Zmc2V0KCkqcnQpLGEpLTE7YnJlYWs7Y2FzZSJtaW51dGUiOlZ0PXRoaXMuX2QudmFsdWVPZigpLFZ0Kz1ydC1ocihWdCxydCktMTticmVhaztjYXNl''@;'; + put 'put ''InNlY29uZCI6VnQ9dGhpcy5fZC52YWx1ZU9mKCksVnQrPTFlMy1ocihWdCwxZTMpLTF9cmV0dXJuIHRoaXMuX2Quc2V0VGltZShWdCksQi51cGRhdGVPZmZzZXQodGhpcywhMCksdGhpc30sYTAuZm9ybWF0PWZ1bmN0aW9uIHFnKHplKXt6ZXx8KHplPXRoaXMuaXNVdGMoKT9CLmRlZmF1bHRG''@;'; + put 'put ''b3JtYXRVdGM6Qi5kZWZhdWx0Rm9ybWF0KTt2YXIgVnQ9JGUodGhpcyx6ZSk7cmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLnBvc3Rmb3JtYXQoVnQpfSxhMC5mcm9tPWZ1bmN0aW9uIG5iKHplLFZ0KXtyZXR1cm4gdGhpcy5pc1ZhbGlkKCkmJihTZSh6ZSkmJnplLmlzVmFsaWQoKXx8Q3MoemUp''@;'; + put 'put ''LmlzVmFsaWQoKSk/UXMoe3RvOnRoaXMsZnJvbTp6ZX0pLmxvY2FsZSh0aGlzLmxvY2FsZSgpKS5odW1hbml6ZSghVnQpOnRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCl9LGEwLmZyb21Ob3c9ZnVuY3Rpb24gZjIoemUpe3JldHVybiB0aGlzLmZyb20oQ3MoKSx6ZSl9LGEwLnRvPWZ1''@;'; + put 'put ''bmN0aW9uIG9SKHplLFZ0KXtyZXR1cm4gdGhpcy5pc1ZhbGlkKCkmJihTZSh6ZSkmJnplLmlzVmFsaWQoKXx8Q3MoemUpLmlzVmFsaWQoKSk/UXMoe2Zyb206dGhpcyx0bzp6ZX0pLmxvY2FsZSh0aGlzLmxvY2FsZSgpKS5odW1hbml6ZSghVnQpOnRoaXMubG9jYWxlRGF0YSgpLmludmFsaWRE''@;'; + put 'put ''YXRlKCl9LGEwLnRvTm93PWZ1bmN0aW9uIEVNKHplKXtyZXR1cm4gdGhpcy50byhDcygpLHplKX0sYTAuZ2V0PWZ1bmN0aW9uIGxuKHplKXtyZXR1cm4gTyh0aGlzW3plPUN0KHplKV0pP3RoaXNbemVdKCk6dGhpc30sYTAuaW52YWxpZEF0PWZ1bmN0aW9uIG8yKCl7cmV0dXJuIEoodGhpcyku''@;'; + put 'put ''b3ZlcmZsb3d9LGEwLmlzQWZ0ZXI9ZnVuY3Rpb24gWGcoemUsVnQpe3ZhciBobj1TZSh6ZSk/emU6Q3MoemUpO3JldHVybiEoIXRoaXMuaXNWYWxpZCgpfHwhaG4uaXNWYWxpZCgpKSYmKCJtaWxsaXNlY29uZCI9PT0oVnQ9Q3QoVnQpfHwibWlsbGlzZWNvbmQiKT90aGlzLnZhbHVlT2YoKT5o''@;'; + put 'put ''bi52YWx1ZU9mKCk6aG4udmFsdWVPZigpPHRoaXMuY2xvbmUoKS5zdGFydE9mKFZ0KS52YWx1ZU9mKCkpfSxhMC5pc0JlZm9yZT1mdW5jdGlvbiBRcCh6ZSxWdCl7dmFyIGhuPVNlKHplKT96ZTpDcyh6ZSk7cmV0dXJuISghdGhpcy5pc1ZhbGlkKCl8fCFobi5pc1ZhbGlkKCkpJiYoIm1pbGxp''@;'; + put 'put ''c2Vjb25kIj09PShWdD1DdChWdCl8fCJtaWxsaXNlY29uZCIpP3RoaXMudmFsdWVPZigpPGhuLnZhbHVlT2YoKTp0aGlzLmNsb25lKCkuZW5kT2YoVnQpLnZhbHVlT2YoKTxobi52YWx1ZU9mKCkpfSxhMC5pc0JldHdlZW49ZnVuY3Rpb24gUXUoemUsVnQsaG4sUm4pe3ZhciB0cj1TZSh6ZSk/''@;'; + put 'put ''emU6Q3MoemUpLGVpPVNlKFZ0KT9WdDpDcyhWdCk7cmV0dXJuISEodGhpcy5pc1ZhbGlkKCkmJnRyLmlzVmFsaWQoKSYmZWkuaXNWYWxpZCgpKSYmKCIoIj09PShSbj1Sbnx8IigpIilbMF0/dGhpcy5pc0FmdGVyKHRyLGhuKTohdGhpcy5pc0JlZm9yZSh0cixobikpJiYoIikiPT09Um5bMV0/''@;'; + put 'put ''dGhpcy5pc0JlZm9yZShlaSxobik6IXRoaXMuaXNBZnRlcihlaSxobikpfSxhMC5pc1NhbWU9ZnVuY3Rpb24gS2coemUsVnQpe3ZhciBSbixobj1TZSh6ZSk/emU6Q3MoemUpO3JldHVybiEoIXRoaXMuaXNWYWxpZCgpfHwhaG4uaXNWYWxpZCgpKSYmKCJtaWxsaXNlY29uZCI9PT0oVnQ9Q3Qo''@;'; + put 'put ''VnQpfHwibWlsbGlzZWNvbmQiKT90aGlzLnZhbHVlT2YoKT09PWhuLnZhbHVlT2YoKTooUm49aG4udmFsdWVPZigpLHRoaXMuY2xvbmUoKS5zdGFydE9mKFZ0KS52YWx1ZU9mKCk8PVJuJiZSbjw9dGhpcy5jbG9uZSgpLmVuZE9mKFZ0KS52YWx1ZU9mKCkpKX0sYTAuaXNTYW1lT3JBZnRlcj1m''@;'; + put 'put ''dW5jdGlvbiB1dSh6ZSxWdCl7cmV0dXJuIHRoaXMuaXNTYW1lKHplLFZ0KXx8dGhpcy5pc0FmdGVyKHplLFZ0KX0sYTAuaXNTYW1lT3JCZWZvcmU9ZnVuY3Rpb24gTU0oemUsVnQpe3JldHVybiB0aGlzLmlzU2FtZSh6ZSxWdCl8fHRoaXMuaXNCZWZvcmUoemUsVnQpfSxhMC5pc1ZhbGlkPWZ1''@;'; + put 'put ''bmN0aW9uIHhuKCl7cmV0dXJuIG9lKHRoaXMpfSxhMC5sYW5nPUl0LGEwLmxvY2FsZT1wdCxhMC5sb2NhbGVEYXRhPVB0LGEwLm1heD1WZixhMC5taW49emcsYTAucGFyc2luZ0ZsYWdzPWZ1bmN0aW9uIGkyKCl7cmV0dXJuIE4oe30sSih0aGlzKSl9LGEwLnNldD1mdW5jdGlvbiBObih6ZSxW''@;'; + put 'put ''dCl7aWYoIm9iamVjdCI9PXR5cGVvZiB6ZSl7dmFyIFJuLGhuPWZ1bmN0aW9uIFVlKHplKXt2YXIgaG4sVnQ9W107Zm9yKGhuIGluIHplKVEoemUsaG4pJiZWdC5wdXNoKHt1bml0OmhuLHByaW9yaXR5Okh0W2huXX0pO3JldHVybiBWdC5zb3J0KGZ1bmN0aW9uKFJuLHRyKXtyZXR1cm4gUm4u''@;'; + put 'put ''cHJpb3JpdHktdHIucHJpb3JpdHl9KSxWdH0oemU9ZnQoemUpKSx0cj1obi5sZW5ndGg7Zm9yKFJuPTA7Um48dHI7Um4rKyl0aGlzW2huW1JuXS51bml0XSh6ZVtobltSbl0udW5pdF0pfWVsc2UgaWYoTyh0aGlzW3plPUN0KHplKV0pKXJldHVybiB0aGlzW3plXShWdCk7cmV0dXJuIHRoaXN9''@;'; + put 'put ''LGEwLnN0YXJ0T2Y9ZnVuY3Rpb24gXyh6ZSl7dmFyIFZ0LGhuO2lmKHZvaWQgMD09PSh6ZT1DdCh6ZSkpfHwibWlsbGlzZWNvbmQiPT09emV8fCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gdGhpcztzd2l0Y2goaG49dGhpcy5faXNVVEM/am46UGksemUpe2Nhc2UieWVhciI6VnQ9aG4odGhpcy55''@;'; + put 'put ''ZWFyKCksMCwxKTticmVhaztjYXNlInF1YXJ0ZXIiOlZ0PWhuKHRoaXMueWVhcigpLHRoaXMubW9udGgoKS10aGlzLm1vbnRoKCklMywxKTticmVhaztjYXNlIm1vbnRoIjpWdD1obih0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksMSk7YnJlYWs7Y2FzZSJ3ZWVrIjpWdD1obih0aGlzLnllYXIo''@;'; + put 'put ''KSx0aGlzLm1vbnRoKCksdGhpcy5kYXRlKCktdGhpcy53ZWVrZGF5KCkpO2JyZWFrO2Nhc2UiaXNvV2VlayI6VnQ9aG4odGhpcy55ZWFyKCksdGhpcy5tb250aCgpLHRoaXMuZGF0ZSgpLSh0aGlzLmlzb1dlZWtkYXkoKS0xKSk7YnJlYWs7Y2FzZSJkYXkiOmNhc2UiZGF0ZSI6VnQ9aG4odGhp''@;'; + put 'put ''cy55ZWFyKCksdGhpcy5tb250aCgpLHRoaXMuZGF0ZSgpKTticmVhaztjYXNlImhvdXIiOlZ0PXRoaXMuX2QudmFsdWVPZigpLFZ0LT1ocihWdCsodGhpcy5faXNVVEM/MDp0aGlzLnV0Y09mZnNldCgpKnJ0KSxhKTticmVhaztjYXNlIm1pbnV0ZSI6VnQ9dGhpcy5fZC52YWx1ZU9mKCksVnQt''@;'; + put 'put ''PWhyKFZ0LHJ0KTticmVhaztjYXNlInNlY29uZCI6VnQ9dGhpcy5fZC52YWx1ZU9mKCksVnQtPWhyKFZ0LDFlMyl9cmV0dXJuIHRoaXMuX2Quc2V0VGltZShWdCksQi51cGRhdGVPZmZzZXQodGhpcywhMCksdGhpc30sYTAuc3VidHJhY3Q9ZnYsYTAudG9BcnJheT1mdW5jdGlvbiBWMSgpe3Zh''@;'; + put 'put ''ciB6ZT10aGlzO3JldHVyblt6ZS55ZWFyKCksemUubW9udGgoKSx6ZS5kYXRlKCksemUuaG91cigpLHplLm1pbnV0ZSgpLHplLnNlY29uZCgpLHplLm1pbGxpc2Vjb25kKCldfSxhMC50b09iamVjdD1mdW5jdGlvbiBscygpe3ZhciB6ZT10aGlzO3JldHVybnt5ZWFyczp6ZS55ZWFyKCksbW9u''@;'; + put 'put ''dGhzOnplLm1vbnRoKCksZGF0ZTp6ZS5kYXRlKCksaG91cnM6emUuaG91cnMoKSxtaW51dGVzOnplLm1pbnV0ZXMoKSxzZWNvbmRzOnplLnNlY29uZHMoKSxtaWxsaXNlY29uZHM6emUubWlsbGlzZWNvbmRzKCl9fSxhMC50b0RhdGU9ZnVuY3Rpb24gYWUoKXtyZXR1cm4gbmV3IERhdGUodGhp''@;'; + put 'put ''cy52YWx1ZU9mKCkpfSxhMC50b0lTT1N0cmluZz1mdW5jdGlvbiBDYSh6ZSl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBudWxsO3ZhciBWdD0hMCE9PXplLGhuPVZ0P3RoaXMuY2xvbmUoKS51dGMoKTp0aGlzO3JldHVybiBobi55ZWFyKCk8MHx8aG4ueWVhcigpPjk5OTk/JGUoaG4sVnQ/''@;'; + put 'put ''IllZWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1taXSI6IllZWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1oiKTpPKERhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nKT9WdD90aGlzLnRvRGF0ZSgpLnRvSVNPU3RyaW5nKCk6bmV3IERhdGUodGhpcy52YWx1ZU9mKCkrNjAqdGhpcy51dGNPZmZz''@;'; + put 'put ''ZXQoKSoxZTMpLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgiWiIsJGUoaG4sIloiKSk6JGUoaG4sVnQ/IllZWVktTU0tRERbVF1ISDptbTpzcy5TU1NbWl0iOiJZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTWiIpfSxhMC5pbnNwZWN0PWZ1bmN0aW9uICRnKCl7aWYoIXRoaXMuaXNWYWxpZCgpKXJl''@;'; + put 'put ''dHVybiJtb21lbnQuaW52YWxpZCgvKiAiK3RoaXMuX2krIiAqLykiO3ZhciBobixSbix6ZT0ibW9tZW50IixWdD0iIjtyZXR1cm4gdGhpcy5pc0xvY2FsKCl8fCh6ZT0wPT09dGhpcy51dGNPZmZzZXQoKT8ibW9tZW50LnV0YyI6Im1vbWVudC5wYXJzZVpvbmUiLFZ0PSJaIiksaG49IlsiK3pl''@;'; + put 'put ''KycoIl0nLFJuPTA8PXRoaXMueWVhcigpJiZ0aGlzLnllYXIoKTw9OTk5OT8iWVlZWSI6IllZWVlZWSIsdGhpcy5mb3JtYXQoaG4rUm4rIi1NTS1ERFtUXUhIOm1tOnNzLlNTUyIrVnQrJ1siKV0nKX0sInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPVN5bWJvbC5mb3ImJihhMFtT''@;'; + put 'put ''eW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpXT1mdW5jdGlvbigpe3JldHVybiJNb21lbnQ8Iit0aGlzLmZvcm1hdCgpKyI+In0pLGEwLnRvSlNPTj1mdW5jdGlvbiBNbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0sYTAudG9T''@;'; + put 'put ''dHJpbmc9ZnVuY3Rpb24gbWQoKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmxvY2FsZSgiZW4iKS5mb3JtYXQoImRkZCBNTU0gREQgWVlZWSBISDptbTpzcyBbR01UXVpaIil9LGEwLnVuaXg9ZnVuY3Rpb24gJG8oKXtyZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKS8xZTMpfSxhMC52YWx1''@;'; + put 'put ''ZU9mPWZ1bmN0aW9uIFNpKCl7cmV0dXJuIHRoaXMuX2QudmFsdWVPZigpLTZlNCoodGhpcy5fb2Zmc2V0fHwwKX0sYTAuY3JlYXRpb25EYXRhPWZ1bmN0aW9uIGpjKCl7cmV0dXJue2lucHV0OnRoaXMuX2ksZm9ybWF0OnRoaXMuX2YsbG9jYWxlOnRoaXMuX2xvY2FsZSxpc1VUQzp0aGlzLl9p''@;'; + put 'put ''c1VUQyxzdHJpY3Q6dGhpcy5fc3RyaWN0fX0sYTAuZXJhTmFtZT1mdW5jdGlvbiBwdigpe3ZhciB6ZSxWdCxobixSbj10aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7Zm9yKHplPTAsVnQ9Um4ubGVuZ3RoO3plPFZ0OysremUpaWYoaG49dGhpcy5jbG9uZSgpLnN0YXJ0T2YoImRheSIpLnZhbHVl''@;'; + put 'put ''T2YoKSxSblt6ZV0uc2luY2U8PWhuJiZobjw9Um5bemVdLnVudGlsfHxSblt6ZV0udW50aWw8PWhuJiZobjw9Um5bemVdLnNpbmNlKXJldHVybiBSblt6ZV0ubmFtZTtyZXR1cm4iIn0sYTAuZXJhTmFycm93PWZ1bmN0aW9uIGd2KCl7dmFyIHplLFZ0LGhuLFJuPXRoaXMubG9jYWxlRGF0YSgp''@;'; + put 'put ''LmVyYXMoKTtmb3IoemU9MCxWdD1Sbi5sZW5ndGg7emU8VnQ7Kyt6ZSlpZihobj10aGlzLmNsb25lKCkuc3RhcnRPZigiZGF5IikudmFsdWVPZigpLFJuW3plXS5zaW5jZTw9aG4mJmhuPD1Sblt6ZV0udW50aWx8fFJuW3plXS51bnRpbDw9aG4mJmhuPD1Sblt6ZV0uc2luY2UpcmV0dXJuIFJu''@;'; + put 'put ''W3plXS5uYXJyb3c7cmV0dXJuIiJ9LGEwLmVyYUFiYnI9ZnVuY3Rpb24gcmIoKXt2YXIgemUsVnQsaG4sUm49dGhpcy5sb2NhbGVEYXRhKCkuZXJhcygpO2Zvcih6ZT0wLFZ0PVJuLmxlbmd0aDt6ZTxWdDsrK3plKWlmKGhuPXRoaXMuY2xvbmUoKS5zdGFydE9mKCJkYXkiKS52YWx1ZU9mKCks''@;'; + put 'put ''Um5bemVdLnNpbmNlPD1obiYmaG48PVJuW3plXS51bnRpbHx8Um5bemVdLnVudGlsPD1obiYmaG48PVJuW3plXS5zaW5jZSlyZXR1cm4gUm5bemVdLmFiYnI7cmV0dXJuIiJ9LGEwLmVyYVllYXI9ZnVuY3Rpb24gRG4oKXt2YXIgemUsVnQsaG4sUm4sdHI9dGhpcy5sb2NhbGVEYXRhKCkuZXJh''@;'; + put 'put ''cygpO2Zvcih6ZT0wLFZ0PXRyLmxlbmd0aDt6ZTxWdDsrK3plKWlmKGhuPXRyW3plXS5zaW5jZTw9dHJbemVdLnVudGlsPzE6LTEsUm49dGhpcy5jbG9uZSgpLnN0YXJ0T2YoImRheSIpLnZhbHVlT2YoKSx0clt6ZV0uc2luY2U8PVJuJiZSbjw9dHJbemVdLnVudGlsfHx0clt6ZV0udW50aWw8''@;'; + put 'put ''PVJuJiZSbjw9dHJbemVdLnNpbmNlKXJldHVybih0aGlzLnllYXIoKS1CKHRyW3plXS5zaW5jZSkueWVhcigpKSpobit0clt6ZV0ub2Zmc2V0O3JldHVybiB0aGlzLnllYXIoKX0sYTAueWVhcj1ubCxhMC5pc0xlYXBZZWFyPWZ1bmN0aW9uIGdsKCl7cmV0dXJuIHl0KHRoaXMueWVhcigpKX0s''@;'; + put 'put ''YTAud2Vla1llYXI9ZnVuY3Rpb24gWmYoemUpe3JldHVybiBpYi5jYWxsKHRoaXMsemUsdGhpcy53ZWVrKCksdGhpcy53ZWVrZGF5KCksdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93LHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRveSl9LGEwLmlzb1dlZWtZZWFyPWZ1bmN0aW9uIFVsKHpl''@;'; + put 'put ''KXtyZXR1cm4gaWIuY2FsbCh0aGlzLHplLHRoaXMuaXNvV2VlaygpLHRoaXMuaXNvV2Vla2RheSgpLDEsNCl9LGEwLnF1YXJ0ZXI9YTAucXVhcnRlcnM9ZnVuY3Rpb24gdmQoemUpe3JldHVybiBudWxsPT16ZT9NYXRoLmNlaWwoKHRoaXMubW9udGgoKSsxKS8zKTp0aGlzLm1vbnRoKDMqKHpl''@;'; + put 'put ''LTEpK3RoaXMubW9udGgoKSUzKX0sYTAubW9udGg9RW8sYTAuZGF5c0luTW9udGg9ZnVuY3Rpb24gcW8oKXtyZXR1cm4gaWkodGhpcy55ZWFyKCksdGhpcy5tb250aCgpKX0sYTAud2Vlaz1hMC53ZWVrcz1mdW5jdGlvbiBYMCh6ZSl7dmFyIFZ0PXRoaXMubG9jYWxlRGF0YSgpLndlZWsodGhp''@;'; + put 'put ''cyk7cmV0dXJuIG51bGw9PXplP1Z0OnRoaXMuYWRkKDcqKHplLVZ0KSwiZCIpfSxhMC5pc29XZWVrPWEwLmlzb1dlZWtzPWZ1bmN0aW9uIHVhKHplKXt2YXIgVnQ9cmwodGhpcywxLDQpLndlZWs7cmV0dXJuIG51bGw9PXplP1Z0OnRoaXMuYWRkKDcqKHplLVZ0KSwiZCIpfSxhMC53ZWVrc0lu''@;'; + put 'put ''WWVhcj1mdW5jdGlvbiBJdSgpe3ZhciB6ZT10aGlzLmxvY2FsZURhdGEoKS5fd2VlaztyZXR1cm4gYmkodGhpcy55ZWFyKCksemUuZG93LHplLmRveSl9LGEwLndlZWtzSW5XZWVrWWVhcj1mdW5jdGlvbiBBcigpe3ZhciB6ZT10aGlzLmxvY2FsZURhdGEoKS5fd2VlaztyZXR1cm4gYmkodGhp''@;'; + put 'put ''cy53ZWVrWWVhcigpLHplLmRvdyx6ZS5kb3kpfSxhMC5pc29XZWVrc0luWWVhcj1mdW5jdGlvbiB6Zigpe3JldHVybiBiaSh0aGlzLnllYXIoKSwxLDQpfSxhMC5pc29XZWVrc0luSVNPV2Vla1llYXI9ZnVuY3Rpb24gRjIoKXtyZXR1cm4gYmkodGhpcy5pc29XZWVrWWVhcigpLDEsNCl9LGEw''@;'; + put 'put ''LmRhdGU9dzIsYTAuZGF5PWEwLmRheXM9ZnVuY3Rpb24gczEoemUpe2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gbnVsbCE9emU/dGhpczpOYU47dmFyIFZ0PXRoaXMuX2lzVVRDP3RoaXMuX2QuZ2V0VVRDRGF5KCk6dGhpcy5fZC5nZXREYXkoKTtyZXR1cm4gbnVsbCE9emU/KHplPWZ1bmN0''@;'; + put 'put ''aW9uIGowKHplLFZ0KXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHplP3plOmlzTmFOKHplKT8ibnVtYmVyIj09dHlwZW9mKHplPVZ0LndlZWtkYXlzUGFyc2UoemUpKT96ZTpudWxsOnBhcnNlSW50KHplLDEwKX0oemUsdGhpcy5sb2NhbGVEYXRhKCkpLHRoaXMuYWRkKHplLVZ0LCJkIikpOlZ0''@;'; + put 'put ''fSxhMC53ZWVrZGF5PWZ1bmN0aW9uIFowKHplKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG51bGwhPXplP3RoaXM6TmFOO3ZhciBWdD0odGhpcy5kYXkoKSs3LXRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRvdyklNztyZXR1cm4gbnVsbD09emU/VnQ6dGhpcy5hZGQoemUtVnQsImQiKX0s''@;'; + put 'put ''YTAuaXNvV2Vla2RheT1mdW5jdGlvbiBmaSh6ZSl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBudWxsIT16ZT90aGlzOk5hTjtpZihudWxsIT16ZSl7dmFyIFZ0PWZ1bmN0aW9uIEJsKHplLFZ0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHplP1Z0LndlZWtkYXlzUGFyc2UoemUpJTd8fDc6''@;'; + put 'put ''aXNOYU4oemUpP251bGw6emV9KHplLHRoaXMubG9jYWxlRGF0YSgpKTtyZXR1cm4gdGhpcy5kYXkodGhpcy5kYXkoKSU3P1Z0OlZ0LTcpfXJldHVybiB0aGlzLmRheSgpfHw3fSxhMC5kYXlPZlllYXI9ZnVuY3Rpb24gZW0oemUpe3ZhciBWdD1NYXRoLnJvdW5kKCh0aGlzLmNsb25lKCkuc3Rh''@;'; + put 'put ''cnRPZigiZGF5IiktdGhpcy5jbG9uZSgpLnN0YXJ0T2YoInllYXIiKSkvODY0ZTUpKzE7cmV0dXJuIG51bGw9PXplP1Z0OnRoaXMuYWRkKHplLVZ0LCJkIil9LGEwLmhvdXI9YTAuaG91cnM9TmMsYTAubWludXRlPWEwLm1pbnV0ZXM9QWQsYTAuc2Vjb25kPWEwLnNlY29uZHM9S3AsYTAubWls''@;'; + put 'put ''bGlzZWNvbmQ9YTAubWlsbGlzZWNvbmRzPUk4LGEwLnV0Y09mZnNldD1mdW5jdGlvbiBHcCh6ZSxWdCxobil7dmFyIHRyLFJuPXRoaXMuX29mZnNldHx8MDtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG51bGwhPXplP3RoaXM6TmFOO2lmKG51bGwhPXplKXtpZigic3RyaW5nIj09dHlwZW9m''@;'; + put 'put ''IHplKXtpZihudWxsPT09KHplPWx2KE50LHplKSkpcmV0dXJuIHRoaXN9ZWxzZSBNYXRoLmFicyh6ZSk8MTYmJiFobiYmKHplKj02MCk7cmV0dXJuIXRoaXMuX2lzVVRDJiZWdCYmKHRyPXdoKHRoaXMpKSx0aGlzLl9vZmZzZXQ9emUsdGhpcy5faXNVVEM9ITAsbnVsbCE9dHImJnRoaXMuYWRk''@;'; + put 'put ''KHRyLCJtIiksUm4hPT16ZSYmKCFWdHx8dGhpcy5fY2hhbmdlSW5Qcm9ncmVzcz9FNCh0aGlzLFFzKHplLVJuLCJtIiksMSwhMSk6dGhpcy5fY2hhbmdlSW5Qcm9ncmVzc3x8KHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3M9ITAsQi51cGRhdGVPZmZzZXQodGhpcywhMCksdGhpcy5fY2hhbmdlSW5Q''@;'; + put 'put ''cm9ncmVzcz1udWxsKSksdGhpc31yZXR1cm4gdGhpcy5faXNVVEM/Um46d2godGhpcyl9LGEwLnV0Yz1mdW5jdGlvbiB1dih6ZSl7cmV0dXJuIHRoaXMudXRjT2Zmc2V0KDAsemUpfSxhMC5sb2NhbD1mdW5jdGlvbiBJMih6ZSl7cmV0dXJuIHRoaXMuX2lzVVRDJiYodGhpcy51dGNPZmZzZXQo''@;'; + put 'put ''MCx6ZSksdGhpcy5faXNVVEM9ITEsemUmJnRoaXMuc3VidHJhY3Qod2godGhpcyksIm0iKSksdGhpc30sYTAucGFyc2Vab25lPWZ1bmN0aW9uIHVmKCl7aWYobnVsbCE9dGhpcy5fdHptKXRoaXMudXRjT2Zmc2V0KHRoaXMuX3R6bSwhMSwhMCk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIHRo''@;'; + put 'put ''aXMuX2kpe3ZhciB6ZT1sdihLbix0aGlzLl9pKTtudWxsIT16ZT90aGlzLnV0Y09mZnNldCh6ZSk6dGhpcy51dGNPZmZzZXQoMCwhMCl9cmV0dXJuIHRoaXN9LGEwLmhhc0FsaWduZWRIb3VyT2Zmc2V0PWZ1bmN0aW9uIFVnKHplKXtyZXR1cm4hIXRoaXMuaXNWYWxpZCgpJiYoemU9emU/Q3Mo''@;'; + put 'put ''emUpLnV0Y09mZnNldCgpOjAsKHRoaXMudXRjT2Zmc2V0KCktemUpJTYwPT0wKX0sYTAuaXNEU1Q9ZnVuY3Rpb24gamYoKXtyZXR1cm4gdGhpcy51dGNPZmZzZXQoKT50aGlzLmNsb25lKCkubW9udGgoMCkudXRjT2Zmc2V0KCl8fHRoaXMudXRjT2Zmc2V0KCk+dGhpcy5jbG9uZSgpLm1vbnRo''@;'; + put 'put ''KDUpLnV0Y09mZnNldCgpfSxhMC5pc0xvY2FsPWZ1bmN0aW9uIFAyKCl7cmV0dXJuISF0aGlzLmlzVmFsaWQoKSYmIXRoaXMuX2lzVVRDfSxhMC5pc1V0Y09mZnNldD1mdW5jdGlvbiBjdigpe3JldHVybiEhdGhpcy5pc1ZhbGlkKCkmJnRoaXMuX2lzVVRDfSxhMC5pc1V0Yz1lYixhMC5pc1VU''@;'; + put 'put ''Qz1lYixhMC56b25lQWJicj1mdW5jdGlvbiBDaCgpe3JldHVybiB0aGlzLl9pc1VUQz8iVVRDIjoiIn0sYTAuem9uZU5hbWU9ZnVuY3Rpb24geWQoKXtyZXR1cm4gdGhpcy5faXNVVEM/IkNvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lIjoiIn0sYTAuZGF0ZXM9VGUoImRhdGVzIGFjY2Vzc29y''@;'; + put 'put ''IGlzIGRlcHJlY2F0ZWQuIFVzZSBkYXRlIGluc3RlYWQuIix3MiksYTAubW9udGhzPVRlKCJtb250aHMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIG1vbnRoIGluc3RlYWQiLEVvKSxhMC55ZWFycz1UZSgieWVhcnMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIHllYXIgaW5zdGVh''@;'; + put 'put ''ZCIsbmwpLGEwLnpvbmU9VGUoIm1vbWVudCgpLnpvbmUgaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudCgpLnV0Y09mZnNldCBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL3pvbmUvIixmdW5jdGlvbiBzdih6ZSxWdCl7cmV0dXJuIG51bGwhPXplPygic3Ry''@;'; + put 'put ''aW5nIiE9dHlwZW9mIHplJiYoemU9LXplKSx0aGlzLnV0Y09mZnNldCh6ZSxWdCksdGhpcyk6LXRoaXMudXRjT2Zmc2V0KCl9KSxhMC5pc0RTVFNoaWZ0ZWQ9VGUoImlzRFNUU2hpZnRlZCBpcyBkZXByZWNhdGVkLiBTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9k''@;'; + put 'put ''c3Qtc2hpZnRlZC8gZm9yIG1vcmUgaW5mb3JtYXRpb24iLGZ1bmN0aW9uIHF3KCl7aWYoIWllKHRoaXMuX2lzRFNUU2hpZnRlZCkpcmV0dXJuIHRoaXMuX2lzRFNUU2hpZnRlZDt2YXIgVnQsemU9e307cmV0dXJuIEFlKHplLHRoaXMpLCh6ZT1UdSh6ZSkpLl9hPyhWdD16ZS5faXNVVEM/ZWUo''@;'; + put 'put ''emUuX2EpOkNzKHplLl9hKSx0aGlzLl9pc0RTVFNoaWZ0ZWQ9dGhpcy5pc1ZhbGlkKCkmJmZ1bmN0aW9uIHpwKHplLFZ0LGhuKXt2YXIgWWksUm49TWF0aC5taW4oemUubGVuZ3RoLFZ0Lmxlbmd0aCksdHI9TWF0aC5hYnMoemUubGVuZ3RoLVZ0Lmxlbmd0aCksZWk9MDtmb3IoWWk9MDtZaTxS''@;'; + put 'put ''bjtZaSsrKShobiYmemVbWWldIT09VnRbWWldfHwhaG4mJlF0KHplW1lpXSkhPT1RdChWdFtZaV0pKSYmZWkrKztyZXR1cm4gZWkrdHJ9KHplLl9hLFZ0LnRvQXJyYXkoKSk+MCk6dGhpcy5faXNEU1RTaGlmdGVkPSExLHRoaXMuX2lzRFNUU2hpZnRlZH0pO3ZhciB0YT10ZS5wcm90b3R5cGU7''@;'; + put 'put ''ZnVuY3Rpb24gajEoemUsVnQsaG4sUm4pe3ZhciB0cj11MSgpLGVpPWVlKCkuc2V0KFJuLFZ0KTtyZXR1cm4gdHJbaG5dKGVpLHplKX1mdW5jdGlvbiBjMSh6ZSxWdCxobil7aWYobGUoemUpJiYoVnQ9emUsemU9dm9pZCAwKSx6ZT16ZXx8IiIsbnVsbCE9VnQpcmV0dXJuIGoxKHplLFZ0LGhu''@;'; + put 'put ''LCJtb250aCIpO3ZhciBSbix0cj1bXTtmb3IoUm49MDtSbjwxMjtSbisrKXRyW1JuXT1qMSh6ZSxSbixobiwibW9udGgiKTtyZXR1cm4gdHJ9ZnVuY3Rpb24gaGYoemUsVnQsaG4sUm4peyJib29sZWFuIj09dHlwZW9mIHplPyhsZShWdCkmJihobj1WdCxWdD12b2lkIDApLFZ0PVZ0fHwiIik6''@;'; + put 'put ''KGhuPVZ0PXplLHplPSExLGxlKFZ0KSYmKGhuPVZ0LFZ0PXZvaWQgMCksVnQ9VnR8fCIiKTt2YXIgWWksdHI9dTEoKSxlaT16ZT90ci5fd2Vlay5kb3c6MCxkYT1bXTtpZihudWxsIT1obilyZXR1cm4gajEoVnQsKGhuK2VpKSU3LFJuLCJkYXkiKTtmb3IoWWk9MDtZaTw3O1lpKyspZGFbWWld''@;'; + put 'put ''PWoxKFZ0LChZaStlaSklNyxSbiwiZGF5Iik7cmV0dXJuIGRhfXRhLmNhbGVuZGFyPWZ1bmN0aW9uIFYoemUsVnQsaG4pe3ZhciBSbj10aGlzLl9jYWxlbmRhclt6ZV18fHRoaXMuX2NhbGVuZGFyLnNhbWVFbHNlO3JldHVybiBPKFJuKT9Sbi5jYWxsKFZ0LGhuKTpSbn0sdGEubG9uZ0RhdGVG''@;'; + put 'put ''b3JtYXQ9ZnVuY3Rpb24gdnQoemUpe3ZhciBWdD10aGlzLl9sb25nRGF0ZUZvcm1hdFt6ZV0saG49dGhpcy5fbG9uZ0RhdGVGb3JtYXRbemUudG9VcHBlckNhc2UoKV07cmV0dXJuIFZ0fHwhaG4/VnQ6KHRoaXMuX2xvbmdEYXRlRm9ybWF0W3plXT1obi5tYXRjaChTKS5tYXAoZnVuY3Rpb24o''@;'; + put 'put ''Um4pe3JldHVybiJNTU1NIj09PVJufHwiTU0iPT09Um58fCJERCI9PT1Sbnx8ImRkZGQiPT09Um4/Um4uc2xpY2UoMSk6Um59KS5qb2luKCIiKSx0aGlzLl9sb25nRGF0ZUZvcm1hdFt6ZV0pfSx0YS5pbnZhbGlkRGF0ZT1mdW5jdGlvbiBtdCgpe3JldHVybiB0aGlzLl9pbnZhbGlkRGF0ZX0s''@;'; + put 'put ''dGEub3JkaW5hbD1mdW5jdGlvbiBvbih6ZSl7cmV0dXJuIHRoaXMuX29yZGluYWwucmVwbGFjZSgiJWQiLHplKX0sdGEucHJlcGFyc2U9SnMsdGEucG9zdGZvcm1hdD1Kcyx0YS5yZWxhdGl2ZVRpbWU9ZnVuY3Rpb24gdHQoemUsVnQsaG4sUm4pe3ZhciB0cj10aGlzLl9yZWxhdGl2ZVRpbWVb''@;'; + put 'put ''aG5dO3JldHVybiBPKHRyKT90cih6ZSxWdCxobixSbik6dHIucmVwbGFjZSgvJWQvaSx6ZSl9LHRhLnBhc3RGdXR1cmU9ZnVuY3Rpb24gZXQoemUsVnQpe3ZhciBobj10aGlzLl9yZWxhdGl2ZVRpbWVbemU+MD8iZnV0dXJlIjoicGFzdCJdO3JldHVybiBPKGhuKT9obihWdCk6aG4ucmVwbGFj''@;'; + put 'put ''ZSgvJXMvaSxWdCl9LHRhLnNldD1mdW5jdGlvbiB6KHplKXt2YXIgVnQsaG47Zm9yKGhuIGluIHplKVEoemUsaG4pJiYoTyhWdD16ZVtobl0pP3RoaXNbaG5dPVZ0OnRoaXNbIl8iK2huXT1WdCk7dGhpcy5fY29uZmlnPXplLHRoaXMuX2RheU9mTW9udGhPcmRpbmFsUGFyc2VMZW5pZW50PW5l''@;'; + put 'put ''dyBSZWdFeHAoKHRoaXMuX2RheU9mTW9udGhPcmRpbmFsUGFyc2Uuc291cmNlfHx0aGlzLl9vcmRpbmFsUGFyc2Uuc291cmNlKSsifCIrL1xkezEsMn0vLnNvdXJjZSl9LHRhLmVyYXM9ZnVuY3Rpb24gQXMoemUsVnQpe3ZhciBobixSbix0cixlaT10aGlzLl9lcmFzfHx1MSgiZW4iKS5fZXJh''@;'; + put 'put ''cztmb3IoaG49MCxSbj1laS5sZW5ndGg7aG48Um47Kytobilzd2l0Y2goInN0cmluZyI9PXR5cGVvZiBlaVtobl0uc2luY2UmJih0cj1CKGVpW2huXS5zaW5jZSkuc3RhcnRPZigiZGF5IiksZWlbaG5dLnNpbmNlPXRyLnZhbHVlT2YoKSksdHlwZW9mIGVpW2huXS51bnRpbCl7Y2FzZSJ1bmRl''@;'; + put 'put ''ZmluZWQiOmVpW2huXS51bnRpbD0xLzA7YnJlYWs7Y2FzZSJzdHJpbmciOnRyPUIoZWlbaG5dLnVudGlsKS5zdGFydE9mKCJkYXkiKS52YWx1ZU9mKCksZWlbaG5dLnVudGlsPXRyLnZhbHVlT2YoKX1yZXR1cm4gZWl9LHRhLmVyYXNQYXJzZT1mdW5jdGlvbiB4TSh6ZSxWdCxobil7dmFyIFJu''@;'; + put 'put ''LHRyLFlpLGRhLHphLGVpPXRoaXMuZXJhcygpO2Zvcih6ZT16ZS50b1VwcGVyQ2FzZSgpLFJuPTAsdHI9ZWkubGVuZ3RoO1JuPHRyOysrUm4paWYoWWk9ZWlbUm5dLm5hbWUudG9VcHBlckNhc2UoKSxkYT1laVtSbl0uYWJici50b1VwcGVyQ2FzZSgpLHphPWVpW1JuXS5uYXJyb3cudG9VcHBl''@;'; + put 'put ''ckNhc2UoKSxobilzd2l0Y2goVnQpe2Nhc2UiTiI6Y2FzZSJOTiI6Y2FzZSJOTk4iOmlmKGRhPT09emUpcmV0dXJuIGVpW1JuXTticmVhaztjYXNlIk5OTk4iOmlmKFlpPT09emUpcmV0dXJuIGVpW1JuXTticmVhaztjYXNlIk5OTk5OIjppZih6YT09PXplKXJldHVybiBlaVtSbl19ZWxzZSBp''@;'; + put 'put ''ZihbWWksZGEsemFdLmluZGV4T2YoemUpPj0wKXJldHVybiBlaVtSbl19LHRhLmVyYXNDb252ZXJ0WWVhcj1mdW5jdGlvbiBUTSh6ZSxWdCl7dmFyIGhuPXplLnNpbmNlPD16ZS51bnRpbD8xOi0xO3JldHVybiB2b2lkIDA9PT1WdD9CKHplLnNpbmNlKS55ZWFyKCk6Qih6ZS5zaW5jZSkueWVh''@;'; + put 'put ''cigpKyhWdC16ZS5vZmZzZXQpKmhufSx0YS5lcmFzQWJiclJlZ2V4PWZ1bmN0aW9uIGVvKHplKXtyZXR1cm4gUSh0aGlzLCJfZXJhc0FiYnJSZWdleCIpfHxKcC5jYWxsKHRoaXMpLHplP3RoaXMuX2VyYXNBYmJyUmVnZXg6dGhpcy5fZXJhc1JlZ2V4fSx0YS5lcmFzTmFtZVJlZ2V4PWZ1bmN0''@;'; + put 'put ''aW9uIGNmKHplKXtyZXR1cm4gUSh0aGlzLCJfZXJhc05hbWVSZWdleCIpfHxKcC5jYWxsKHRoaXMpLHplP3RoaXMuX2VyYXNOYW1lUmVnZXg6dGhpcy5fZXJhc1JlZ2V4fSx0YS5lcmFzTmFycm93UmVnZXg9ZnVuY3Rpb24gRDAoemUpe3JldHVybiBRKHRoaXMsIl9lcmFzTmFycm93UmVnZXgi''@;'; + put 'put ''KXx8SnAuY2FsbCh0aGlzKSx6ZT90aGlzLl9lcmFzTmFycm93UmVnZXg6dGhpcy5fZXJhc1JlZ2V4fSx0YS5tb250aHM9ZnVuY3Rpb24gZDAoemUsVnQpe3JldHVybiB6ZT9NZSh0aGlzLl9tb250aHMpP3RoaXMuX21vbnRoc1t6ZS5tb250aCgpXTp0aGlzLl9tb250aHNbKHRoaXMuX21vbnRo''@;'; + put 'put ''cy5pc0Zvcm1hdHx8TWkpLnRlc3QoVnQpPyJmb3JtYXQiOiJzdGFuZGFsb25lIl1bemUubW9udGgoKV06TWUodGhpcy5fbW9udGhzKT90aGlzLl9tb250aHM6dGhpcy5fbW9udGhzLnN0YW5kYWxvbmV9LHRhLm1vbnRoc1Nob3J0PWZ1bmN0aW9uIG0wKHplLFZ0KXtyZXR1cm4gemU/TWUodGhp''@;'; + put 'put ''cy5fbW9udGhzU2hvcnQpP3RoaXMuX21vbnRoc1Nob3J0W3plLm1vbnRoKCldOnRoaXMuX21vbnRoc1Nob3J0W01pLnRlc3QoVnQpPyJmb3JtYXQiOiJzdGFuZGFsb25lIl1bemUubW9udGgoKV06TWUodGhpcy5fbW9udGhzU2hvcnQpP3RoaXMuX21vbnRoc1Nob3J0OnRoaXMuX21vbnRoc1No''@;'; + put 'put ''b3J0LnN0YW5kYWxvbmV9LHRhLm1vbnRoc1BhcnNlPWZ1bmN0aW9uIERpKHplLFZ0LGhuKXt2YXIgUm4sdHIsZWk7aWYodGhpcy5fbW9udGhzUGFyc2VFeGFjdClyZXR1cm4gRzAuY2FsbCh0aGlzLHplLFZ0LGhuKTtmb3IodGhpcy5fbW9udGhzUGFyc2V8fCh0aGlzLl9tb250aHNQYXJzZT1b''@;'; + put 'put ''XSx0aGlzLl9sb25nTW9udGhzUGFyc2U9W10sdGhpcy5fc2hvcnRNb250aHNQYXJzZT1bXSksUm49MDtSbjwxMjtSbisrKXtpZih0cj1lZShbMmUzLFJuXSksaG4mJiF0aGlzLl9sb25nTW9udGhzUGFyc2VbUm5dJiYodGhpcy5fbG9uZ01vbnRoc1BhcnNlW1JuXT1uZXcgUmVnRXhwKCJeIit0''@;'; + put 'put ''aGlzLm1vbnRocyh0ciwiIikucmVwbGFjZSgiLiIsIiIpKyIkIiwiaSIpLHRoaXMuX3Nob3J0TW9udGhzUGFyc2VbUm5dPW5ldyBSZWdFeHAoIl4iK3RoaXMubW9udGhzU2hvcnQodHIsIiIpLnJlcGxhY2UoIi4iLCIiKSsiJCIsImkiKSksIWhuJiYhdGhpcy5fbW9udGhzUGFyc2VbUm5dJiYo''@;'; + put 'put ''ZWk9Il4iK3RoaXMubW9udGhzKHRyLCIiKSsifF4iK3RoaXMubW9udGhzU2hvcnQodHIsIiIpLHRoaXMuX21vbnRoc1BhcnNlW1JuXT1uZXcgUmVnRXhwKGVpLnJlcGxhY2UoIi4iLCIiKSwiaSIpKSxobiYmIk1NTU0iPT09VnQmJnRoaXMuX2xvbmdNb250aHNQYXJzZVtSbl0udGVzdCh6ZSkp''@;'; + put 'put ''cmV0dXJuIFJuO2lmKGhuJiYiTU1NIj09PVZ0JiZ0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW1JuXS50ZXN0KHplKSlyZXR1cm4gUm47aWYoIWhuJiZ0aGlzLl9tb250aHNQYXJzZVtSbl0udGVzdCh6ZSkpcmV0dXJuIFJufX0sdGEubW9udGhzUmVnZXg9ZnVuY3Rpb24gbGwoemUpe3JldHVybiB0''@;'; + put 'put ''aGlzLl9tb250aHNQYXJzZUV4YWN0PyhRKHRoaXMsIl9tb250aHNSZWdleCIpfHxRaS5jYWxsKHRoaXMpLHplP3RoaXMuX21vbnRoc1N0cmljdFJlZ2V4OnRoaXMuX21vbnRoc1JlZ2V4KTooUSh0aGlzLCJfbW9udGhzUmVnZXgiKXx8KHRoaXMuX21vbnRoc1JlZ2V4PW4wKSx0aGlzLl9tb250''@;'; + put 'put ''aHNTdHJpY3RSZWdleCYmemU/dGhpcy5fbW9udGhzU3RyaWN0UmVnZXg6dGhpcy5fbW9udGhzUmVnZXgpfSx0YS5tb250aHNTaG9ydFJlZ2V4PWZ1bmN0aW9uIGNhKHplKXtyZXR1cm4gdGhpcy5fbW9udGhzUGFyc2VFeGFjdD8oUSh0aGlzLCJfbW9udGhzUmVnZXgiKXx8UWkuY2FsbCh0aGlz''@;'; + put 'put ''KSx6ZT90aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4OnRoaXMuX21vbnRoc1Nob3J0UmVnZXgpOihRKHRoaXMsIl9tb250aHNTaG9ydFJlZ2V4Iil8fCh0aGlzLl9tb250aHNTaG9ydFJlZ2V4PW8wKSx0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4JiZ6ZT90aGlzLl9tb250aHNTaG9y''@;'; + put 'put ''dFN0cmljdFJlZ2V4OnRoaXMuX21vbnRoc1Nob3J0UmVnZXgpfSx0YS53ZWVrPWZ1bmN0aW9uIG91KHplKXtyZXR1cm4gcmwoemUsdGhpcy5fd2Vlay5kb3csdGhpcy5fd2Vlay5kb3kpLndlZWt9LHRhLmZpcnN0RGF5T2ZZZWFyPWZ1bmN0aW9uIE9zKCl7cmV0dXJuIHRoaXMuX3dlZWsuZG95''@;'; + put 'put ''fSx0YS5maXJzdERheU9mV2Vlaz1mdW5jdGlvbiBVMCgpe3JldHVybiB0aGlzLl93ZWVrLmRvd30sdGEud2Vla2RheXM9ZnVuY3Rpb24gbWMoemUsVnQpe3ZhciBobj1NZSh0aGlzLl93ZWVrZGF5cyk/dGhpcy5fd2Vla2RheXM6dGhpcy5fd2Vla2RheXNbemUmJiEwIT09emUmJnRoaXMuX3dl''@;'; + put 'put ''ZWtkYXlzLmlzRm9ybWF0LnRlc3QoVnQpPyJmb3JtYXQiOiJzdGFuZGFsb25lIl07cmV0dXJuITA9PT16ZT92bihobix0aGlzLl93ZWVrLmRvdyk6emU/aG5bemUuZGF5KCldOmhufSx0YS53ZWVrZGF5c01pbj1mdW5jdGlvbiBQbCh6ZSl7cmV0dXJuITA9PT16ZT92bih0aGlzLl93ZWVrZGF5''@;'; + put 'put ''c01pbix0aGlzLl93ZWVrLmRvdyk6emU/dGhpcy5fd2Vla2RheXNNaW5bemUuZGF5KCldOnRoaXMuX3dlZWtkYXlzTWlufSx0YS53ZWVrZGF5c1Nob3J0PWZ1bmN0aW9uIHgyKHplKXtyZXR1cm4hMD09PXplP3ZuKHRoaXMuX3dlZWtkYXlzU2hvcnQsdGhpcy5fd2Vlay5kb3cpOnplP3RoaXMu''@;'; + put 'put ''X3dlZWtkYXlzU2hvcnRbemUuZGF5KCldOnRoaXMuX3dlZWtkYXlzU2hvcnR9LHRhLndlZWtkYXlzUGFyc2U9ZnVuY3Rpb24gVTIoemUsVnQsaG4pe3ZhciBSbix0cixlaTtpZih0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpcmV0dXJuIGQzLmNhbGwodGhpcyx6ZSxWdCxobik7Zm9yKHRoaXMu''@;'; + put 'put ''X3dlZWtkYXlzUGFyc2V8fCh0aGlzLl93ZWVrZGF5c1BhcnNlPVtdLHRoaXMuX21pbldlZWtkYXlzUGFyc2U9W10sdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlPVtdLHRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlPVtdKSxSbj0wO1JuPDc7Um4rKyl7aWYodHI9ZWUoWzJlMywxXSkuZGF5KFJuKSxo''@;'; + put 'put ''biYmIXRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlW1JuXSYmKHRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlW1JuXT1uZXcgUmVnRXhwKCJeIit0aGlzLndlZWtkYXlzKHRyLCIiKS5yZXBsYWNlKCIuIiwiXFwuPyIpKyIkIiwiaSIpLHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtSbl09bmV3IFJlZ0V4''@;'; + put 'put ''cCgiXiIrdGhpcy53ZWVrZGF5c1Nob3J0KHRyLCIiKS5yZXBsYWNlKCIuIiwiXFwuPyIpKyIkIiwiaSIpLHRoaXMuX21pbldlZWtkYXlzUGFyc2VbUm5dPW5ldyBSZWdFeHAoIl4iK3RoaXMud2Vla2RheXNNaW4odHIsIiIpLnJlcGxhY2UoIi4iLCJcXC4/IikrIiQiLCJpIikpLHRoaXMuX3dl''@;'; + put 'put ''ZWtkYXlzUGFyc2VbUm5dfHwoZWk9Il4iK3RoaXMud2Vla2RheXModHIsIiIpKyJ8XiIrdGhpcy53ZWVrZGF5c1Nob3J0KHRyLCIiKSsifF4iK3RoaXMud2Vla2RheXNNaW4odHIsIiIpLHRoaXMuX3dlZWtkYXlzUGFyc2VbUm5dPW5ldyBSZWdFeHAoZWkucmVwbGFjZSgiLiIsIiIpLCJpIikp''@;'; + put 'put ''LGhuJiYiZGRkZCI9PT1WdCYmdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbUm5dLnRlc3QoemUpKXJldHVybiBSbjtpZihobiYmImRkZCI9PT1WdCYmdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW1JuXS50ZXN0KHplKSlyZXR1cm4gUm47aWYoaG4mJiJkZCI9PT1WdCYmdGhpcy5fbWluV2Vla2Rh''@;'; + put 'put ''eXNQYXJzZVtSbl0udGVzdCh6ZSkpcmV0dXJuIFJuO2lmKCFobiYmdGhpcy5fd2Vla2RheXNQYXJzZVtSbl0udGVzdCh6ZSkpcmV0dXJuIFJufX0sdGEud2Vla2RheXNSZWdleD1mdW5jdGlvbiBSMCh6ZSl7cmV0dXJuIHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdD8oUSh0aGlzLCJfd2Vla2Rh''@;'; + put 'put ''eXNSZWdleCIpfHxocy5jYWxsKHRoaXMpLHplP3RoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXg6dGhpcy5fd2Vla2RheXNSZWdleCk6KFEodGhpcywiX3dlZWtkYXlzUmVnZXgiKXx8KHRoaXMuX3dlZWtkYXlzUmVnZXg9QjEpLHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXgmJnplP3RoaXMuX3dl''@;'; + put 'put ''ZWtkYXlzU3RyaWN0UmVnZXg6dGhpcy5fd2Vla2RheXNSZWdleCl9LHRhLndlZWtkYXlzU2hvcnRSZWdleD1mdW5jdGlvbiBtbyh6ZSl7cmV0dXJuIHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdD8oUSh0aGlzLCJfd2Vla2RheXNSZWdleCIpfHxocy5jYWxsKHRoaXMpLHplP3RoaXMuX3dlZWtk''@;'; + put 'put ''YXlzU2hvcnRTdHJpY3RSZWdleDp0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXgpOihRKHRoaXMsIl93ZWVrZGF5c1Nob3J0UmVnZXgiKXx8KHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleD1hdSksdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4JiZ6ZT90aGlzLl93ZWVrZGF5c1Nob3J0U3Ry''@;'; + put 'put ''aWN0UmVnZXg6dGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4KX0sdGEud2Vla2RheXNNaW5SZWdleD1mdW5jdGlvbiBycyh6ZSl7cmV0dXJuIHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdD8oUSh0aGlzLCJfd2Vla2RheXNSZWdleCIpfHxocy5jYWxsKHRoaXMpLHplP3RoaXMuX3dlZWtkYXlzTWlu''@;'; + put 'put ''U3RyaWN0UmVnZXg6dGhpcy5fd2Vla2RheXNNaW5SZWdleCk6KFEodGhpcywiX3dlZWtkYXlzTWluUmVnZXgiKXx8KHRoaXMuX3dlZWtkYXlzTWluUmVnZXg9UDEpLHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXgmJnplP3RoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXg6dGhpcy5fd2Vl''@;'; + put 'put ''a2RheXNNaW5SZWdleCl9LHRhLmlzUE09ZnVuY3Rpb24gTmYoemUpe3JldHVybiJwIj09PSh6ZSsiIikudG9Mb3dlckNhc2UoKS5jaGFyQXQoMCl9LHRhLm1lcmlkaWVtPWZ1bmN0aW9uIGNvKHplLFZ0LGhuKXtyZXR1cm4gemU+MTE/aG4/InBtIjoiUE0iOmhuPyJhbSI6IkFNIn0sSDEoImVu''@;'; + put 'put ''Iix7ZXJhczpbe3NpbmNlOiIwMDAxLTAxLTAxIix1bnRpbDoxLzAsb2Zmc2V0OjEsbmFtZToiQW5ubyBEb21pbmkiLG5hcnJvdzoiQUQiLGFiYnI6IkFEIn0se3NpbmNlOiIwMDAwLTEyLTMxIix1bnRpbDotMS8wLG9mZnNldDoxLG5hbWU6IkJlZm9yZSBDaHJpc3QiLG5hcnJvdzoiQkMiLGFi''@;'; + put 'put ''YnI6IkJDIn1dLGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0odGh8c3R8bmR8cmQpLyxvcmRpbmFsOmZ1bmN0aW9uKHplKXt2YXIgVnQ9emUlMTA7cmV0dXJuIHplKygxPT09UXQoemUlMTAwLzEwKT8idGgiOjE9PT1WdD8ic3QiOjI9PT1WdD8ibmQiOjM9PT1WdD8icmQiOiJ0aCIp''@;'; + put 'put ''fX0pLEIubGFuZz1UZSgibW9tZW50LmxhbmcgaXMgZGVwcmVjYXRlZC4gVXNlIG1vbWVudC5sb2NhbGUgaW5zdGVhZC4iLEgxKSxCLmxhbmdEYXRhPVRlKCJtb21lbnQubGFuZ0RhdGEgaXMgZGVwcmVjYXRlZC4gVXNlIG1vbWVudC5sb2NhbGVEYXRhIGluc3RlYWQuIix1MSk7dmFyIEdjPU1h''@;'; + put 'put ''dGguYWJzO2Z1bmN0aW9uIHg0KHplLFZ0LGhuLFJuKXt2YXIgdHI9UXMoVnQsaG4pO3JldHVybiB6ZS5fbWlsbGlzZWNvbmRzKz1Sbip0ci5fbWlsbGlzZWNvbmRzLHplLl9kYXlzKz1Sbip0ci5fZGF5cyx6ZS5fbW9udGhzKz1Sbip0ci5fbW9udGhzLHplLl9idWJibGUoKX1mdW5jdGlvbiBM''@;'; + put 'put ''OCh6ZSl7cmV0dXJuIHplPDA/TWF0aC5mbG9vcih6ZSk6TWF0aC5jZWlsKHplKX1mdW5jdGlvbiAkcCh6ZSl7cmV0dXJuIDQ4MDAqemUvMTQ2MDk3fWZ1bmN0aW9uIE84KHplKXtyZXR1cm4gMTQ2MDk3KnplLzQ4MDB9ZnVuY3Rpb24ga2goemUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0''@;'; + put 'put ''aGlzLmFzKHplKX19dmFyIGU2PWtoKCJtcyIpLHQ2PWtoKCJzIiksUjg9a2goIm0iKSxBYz1raCgiaCIpLEdmPWtoKCJkIiksYWI9a2goInciKSx3ZD1raCgiTSIpLG12PWtoKCJRIiksdG09a2goInkiKTtmdW5jdGlvbiBKdSh6ZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNW''@;'; + put 'put ''YWxpZCgpP3RoaXMuX2RhdGFbemVdOk5hTn19dmFyIFQ0PUp1KCJtaWxsaXNlY29uZHMiKSxyNj1KdSgic2Vjb25kcyIpLGxiPUp1KCJtaW51dGVzIiksdnY9SnUoImhvdXJzIiksSTQ9SnUoImRheXMiKSxPTT1KdSgibW9udGhzIiksZmw9SnUoInllYXJzIik7dmFyIFh1PU1hdGgucm91bmQs''@;'; + put 'put ''RHU9e3NzOjQ0LHM6NDUsbTo0NSxoOjIyLGQ6MjYsdzpudWxsLE06MTF9O2Z1bmN0aW9uIGczKHplLFZ0LGhuLFJuLHRyKXtyZXR1cm4gdHIucmVsYXRpdmVUaW1lKFZ0fHwxLCEhaG4semUsUm4pfXZhciBQOD1NYXRoLmFicztmdW5jdGlvbiBXZih6ZSl7cmV0dXJuKHplPjApLSh6ZTwwKXx8''@;'; + put 'put ''K3plfWZ1bmN0aW9uIEF2KCl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO3ZhciBSbix0cixlaSxZaSx6YSxCcyxLdSxQcyx6ZT1QOCh0aGlzLl9taWxsaXNlY29uZHMpLzFlMyxWdD1QOCh0aGlzLl9kYXlzKSxobj1QOCh0aGlzLl9t''@;'; + put 'put ''b250aHMpLGRhPXRoaXMuYXNTZWNvbmRzKCk7cmV0dXJuIGRhPyhSbj1qdCh6ZS82MCksdHI9anQoUm4vNjApLHplJT02MCxSbiU9NjAsZWk9anQoaG4vMTIpLGhuJT0xMixZaT16ZT96ZS50b0ZpeGVkKDMpLnJlcGxhY2UoL1wuPzArJC8sIiIpOiIiLHphPWRhPDA/Ii0iOiIiLEJzPVdmKHRo''@;'; + put 'put ''aXMuX21vbnRocykhPT1XZihkYSk/Ii0iOiIiLEt1PVdmKHRoaXMuX2RheXMpIT09V2YoZGEpPyItIjoiIixQcz1XZih0aGlzLl9taWxsaXNlY29uZHMpIT09V2YoZGEpPyItIjoiIix6YSsiUCIrKGVpP0JzK2VpKyJZIjoiIikrKGhuP0JzK2huKyJNIjoiIikrKFZ0P0t1K1Z0KyJEIjoiIikr''@;'; + put 'put ''KHRyfHxSbnx8emU/IlQiOiIiKSsodHI/UHMrdHIrIkgiOiIiKSsoUm4/UHMrUm4rIk0iOiIiKSsoemU/UHMrWWkrIlMiOiIiKSk6IlAwRCJ9dmFyIGJsPVpwLnByb3RvdHlwZTtyZXR1cm4gYmwuaXNWYWxpZD1mdW5jdGlvbiBfTSgpe3JldHVybiB0aGlzLl9pc1ZhbGlkfSxibC5hYnM9ZnVu''@;'; + put 'put ''Y3Rpb24gY3UoKXt2YXIgemU9dGhpcy5fZGF0YTtyZXR1cm4gdGhpcy5fbWlsbGlzZWNvbmRzPUdjKHRoaXMuX21pbGxpc2Vjb25kcyksdGhpcy5fZGF5cz1HYyh0aGlzLl9kYXlzKSx0aGlzLl9tb250aHM9R2ModGhpcy5fbW9udGhzKSx6ZS5taWxsaXNlY29uZHM9R2MoemUubWlsbGlzZWNv''@;'; + put 'put ''bmRzKSx6ZS5zZWNvbmRzPUdjKHplLnNlY29uZHMpLHplLm1pbnV0ZXM9R2MoemUubWludXRlcyksemUuaG91cnM9R2MoemUuaG91cnMpLHplLm1vbnRocz1HYyh6ZS5tb250aHMpLHplLnllYXJzPUdjKHplLnllYXJzKSx0aGlzfSxibC5hZGQ9ZnVuY3Rpb24gZGYoemUsVnQpe3JldHVybiB4''@;'; + put 'put ''NCh0aGlzLHplLFZ0LDEpfSxibC5zdWJ0cmFjdD1mdW5jdGlvbiBQcih6ZSxWdCl7cmV0dXJuIHg0KHRoaXMsemUsVnQsLTEpfSxibC5hcz1mdW5jdGlvbiBxcCh6ZSl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBOYU47dmFyIFZ0LGhuLFJuPXRoaXMuX21pbGxpc2Vjb25kcztpZigibW9u''@;'; + put 'put ''dGgiPT09KHplPUN0KHplKSl8fCJxdWFydGVyIj09PXplfHwieWVhciI9PT16ZSlzd2l0Y2goVnQ9dGhpcy5fZGF5cytSbi84NjRlNSxobj10aGlzLl9tb250aHMrJHAoVnQpLHplKXtjYXNlIm1vbnRoIjpyZXR1cm4gaG47Y2FzZSJxdWFydGVyIjpyZXR1cm4gaG4vMztjYXNlInllYXIiOnJl''@;'; + put 'put ''dHVybiBobi8xMn1lbHNlIHN3aXRjaChWdD10aGlzLl9kYXlzK01hdGgucm91bmQoTzgodGhpcy5fbW9udGhzKSksemUpe2Nhc2Uid2VlayI6cmV0dXJuIFZ0LzcrUm4vNjA0OGU1O2Nhc2UiZGF5IjpyZXR1cm4gVnQrUm4vODY0ZTU7Y2FzZSJob3VyIjpyZXR1cm4gMjQqVnQrUm4vMzZlNTtj''@;'; + put 'put ''YXNlIm1pbnV0ZSI6cmV0dXJuIDE0NDAqVnQrUm4vNmU0O2Nhc2Uic2Vjb25kIjpyZXR1cm4gODY0MDAqVnQrUm4vMWUzO2Nhc2UibWlsbGlzZWNvbmQiOnJldHVybiBNYXRoLmZsb29yKDg2NGU1KlZ0KStSbjtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5rbm93biB1bml0ICIremUpfX0s''@;'; + put 'put ''YmwuYXNNaWxsaXNlY29uZHM9ZTYsYmwuYXNTZWNvbmRzPXQ2LGJsLmFzTWludXRlcz1SOCxibC5hc0hvdXJzPUFjLGJsLmFzRGF5cz1HZixibC5hc1dlZWtzPWFiLGJsLmFzTW9udGhzPXdkLGJsLmFzUXVhcnRlcnM9bXYsYmwuYXNZZWFycz10bSxibC52YWx1ZU9mPWZ1bmN0aW9uIHBmKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuaXNWYWxpZCgpP3RoaXMuX21pbGxpc2Vjb25kcys4NjRlNSp0aGlzLl9kYXlzK3RoaXMuX21vbnRocyUxMioyNTkyZTYrMzE1MzZlNipRdCh0aGlzLl9tb250aHMvMTIpOk5hTn0sYmwuX2J1YmJsZT1mdW5jdGlvbiBMTSgpe3ZhciB0cixlaSxZaSxkYSx6YSx6ZT10aGlz''@;'; + put 'put ''Ll9taWxsaXNlY29uZHMsVnQ9dGhpcy5fZGF5cyxobj10aGlzLl9tb250aHMsUm49dGhpcy5fZGF0YTtyZXR1cm4gemU+PTAmJlZ0Pj0wJiZobj49MHx8emU8PTAmJlZ0PD0wJiZobjw9MHx8KHplKz04NjRlNSpMOChPOChobikrVnQpLFZ0PTAsaG49MCksUm4ubWlsbGlzZWNvbmRzPXplJTFl''@;'; + put 'put ''Myx0cj1qdCh6ZS8xZTMpLFJuLnNlY29uZHM9dHIlNjAsZWk9anQodHIvNjApLFJuLm1pbnV0ZXM9ZWklNjAsWWk9anQoZWkvNjApLFJuLmhvdXJzPVlpJTI0LFZ0Kz1qdChZaS8yNCksaG4rPXphPWp0KCRwKFZ0KSksVnQtPUw4KE84KHphKSksZGE9anQoaG4vMTIpLGhuJT0xMixSbi5kYXlz''@;'; + put 'put ''PVZ0LFJuLm1vbnRocz1obixSbi55ZWFycz1kYSx0aGlzfSxibC5jbG9uZT1mdW5jdGlvbiBCOCgpe3JldHVybiBRcyh0aGlzKX0sYmwuZ2V0PWZ1bmN0aW9uIG42KHplKXtyZXR1cm4gemU9Q3QoemUpLHRoaXMuaXNWYWxpZCgpP3RoaXNbemUrInMiXSgpOk5hTn0sYmwubWlsbGlzZWNvbmRz''@;'; + put 'put ''PVQ0LGJsLnNlY29uZHM9cjYsYmwubWludXRlcz1sYixibC5ob3Vycz12dixibC5kYXlzPUk0LGJsLndlZWtzPWZ1bmN0aW9uIG5tKCl7cmV0dXJuIGp0KHRoaXMuZGF5cygpLzcpfSxibC5tb250aHM9T00sYmwueWVhcnM9ZmwsYmwuaHVtYW5pemU9ZnVuY3Rpb24gc2IoemUsVnQpe2lmKCF0''@;'; + put 'put ''aGlzLmlzVmFsaWQoKSlyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTt2YXIgdHIsZWksaG49ITEsUm49RHU7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB6ZSYmKFZ0PXplLHplPSExKSwiYm9vbGVhbiI9PXR5cGVvZiB6ZSYmKGhuPXplKSwib2JqZWN0Ij09dHlwZW9mIFZ0''@;'; + put 'put ''JiYoUm49T2JqZWN0LmFzc2lnbih7fSxEdSxWdCksbnVsbCE9VnQucyYmbnVsbD09VnQuc3MmJihSbi5zcz1WdC5zLTEpKSxlaT1mdW5jdGlvbiBpNih6ZSxWdCxobixSbil7dmFyIHRyPVFzKHplKS5hYnMoKSxlaT1YdSh0ci5hcygicyIpKSxZaT1YdSh0ci5hcygibSIpKSxkYT1YdSh0ci5h''@;'; + put 'put ''cygiaCIpKSx6YT1YdSh0ci5hcygiZCIpKSxCcz1YdSh0ci5hcygiTSIpKSxLdT1YdSh0ci5hcygidyIpKSxQcz1YdSh0ci5hcygieSIpKSxXYz1laTw9aG4uc3MmJlsicyIsZWldfHxlaTxobi5zJiZbInNzIixlaV18fFlpPD0xJiZbIm0iXXx8WWk8aG4ubSYmWyJtbSIsWWldfHxkYTw9MSYm''@;'; + put 'put ''WyJoIl18fGRhPGhuLmgmJlsiaGgiLGRhXXx8emE8PTEmJlsiZCJdfHx6YTxobi5kJiZbImRkIix6YV07cmV0dXJuIG51bGwhPWhuLncmJihXYz1XY3x8S3U8PTEmJlsidyJdfHxLdTxobi53JiZbInd3IixLdV0pLChXYz1XY3x8QnM8PTEmJlsiTSJdfHxCczxobi5NJiZbIk1NIixCc118fFBz''@;'; + put 'put ''PD0xJiZbInkiXXx8WyJ5eSIsUHNdKVsyXT1WdCxXY1szXT0remU+MCxXY1s0XT1SbixnMy5hcHBseShudWxsLFdjKX0odGhpcywhaG4sUm4sdHI9dGhpcy5sb2NhbGVEYXRhKCkpLGhuJiYoZWk9dHIucGFzdEZ1dHVyZSgrdGhpcyxlaSkpLHRyLnBvc3Rmb3JtYXQoZWkpfSxibC50b0lTT1N0''@;'; + put 'put ''cmluZz1BdixibC50b1N0cmluZz1BdixibC50b0pTT049QXYsYmwubG9jYWxlPXB0LGJsLmxvY2FsZURhdGE9UHQsYmwudG9Jc29TdHJpbmc9VGUoInRvSXNvU3RyaW5nKCkgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSB0b0lTT1N0cmluZygpIGluc3RlYWQgKG5vdGljZSB0aGUgY2FwaXRh''@;'; + put 'put ''bHMpIixBdiksYmwubGFuZz1JdCxEZSgiWCIsMCwwLCJ1bml4IiksRGUoIngiLDAsMCwidmFsdWVPZiIpLHRuKCJ4IixwbiksdG4oIlgiLC9bKy1dP1xkKyhcLlxkezEsM30pPy8pLG1uKCJYIixmdW5jdGlvbih6ZSxWdCxobil7aG4uX2Q9bmV3IERhdGUoMWUzKnBhcnNlRmxvYXQoemUpKX0p''@;'; + put 'put ''LG1uKCJ4IixmdW5jdGlvbih6ZSxWdCxobil7aG4uX2Q9bmV3IERhdGUoUXQoemUpKX0pLEIudmVyc2lvbj0iMi4yOS40IixmdW5jdGlvbiBFKHplKXttZT16ZX0oQ3MpLEIuZm49YTAsQi5taW49ZnVuY3Rpb24gdmgoKXtyZXR1cm4gS3coImlzQmVmb3JlIixbXS5zbGljZS5jYWxsKGFyZ3Vt''@;'; + put 'put ''ZW50cywwKSl9LEIubWF4PWZ1bmN0aW9uIFM0KCl7cmV0dXJuIEt3KCJpc0FmdGVyIixbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSl9LEIubm93PWZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93P0RhdGUubm93KCk6K25ldyBEYXRlfSxCLnV0Yz1lZSxCLnVuaXg9ZnVuY3Rpb24gRmwoemUp''@;'; + put 'put ''e3JldHVybiBDcygxZTMqemUpfSxCLm1vbnRocz1mdW5jdGlvbiBaYyh6ZSxWdCl7cmV0dXJuIGMxKHplLFZ0LCJtb250aHMiKX0sQi5pc0RhdGU9WSxCLmxvY2FsZT1IMSxCLmludmFsaWQ9Y2UsQi5kdXJhdGlvbj1RcyxCLmlzTW9tZW50PVNlLEIud2Vla2RheXM9ZnVuY3Rpb24gWjEoemUs''@;'; + put 'put ''VnQsaG4pe3JldHVybiBoZih6ZSxWdCxobiwid2Vla2RheXMiKX0sQi5wYXJzZVpvbmU9ZnVuY3Rpb24gRDgoKXtyZXR1cm4gQ3MuYXBwbHkobnVsbCxhcmd1bWVudHMpLnBhcnNlWm9uZSgpfSxCLmxvY2FsZURhdGE9dTEsQi5pc0R1cmF0aW9uPWF2LEIubW9udGhzU2hvcnQ9ZnVuY3Rpb24g''@;'; + put 'put ''c3MoemUsVnQpe3JldHVybiBjMSh6ZSxWdCwibW9udGhzU2hvcnQiKX0sQi53ZWVrZGF5c01pbj1mdW5jdGlvbiBvYih6ZSxWdCxobil7cmV0dXJuIGhmKHplLFZ0LGhuLCJ3ZWVrZGF5c01pbiIpfSxCLmRlZmluZUxvY2FsZT1RMixCLnVwZGF0ZUxvY2FsZT1mdW5jdGlvbiBDMCh6ZSxWdCl7''@;'; + put 'put ''aWYobnVsbCE9VnQpe3ZhciBobixSbix0cj1DNDtudWxsIT1yMlt6ZV0mJm51bGwhPXIyW3plXS5wYXJlbnRMb2NhbGU/cjJbemVdLnNldChuZShyMlt6ZV0uX2NvbmZpZyxWdCkpOihudWxsIT0oUm49UmkoemUpKSYmKHRyPVJuLl9jb25maWcpLFZ0PW5lKHRyLFZ0KSxudWxsPT1SbiYmKFZ0''@;'; + put 'put ''LmFiYnI9emUpLChobj1uZXcgdGUoVnQpKS5wYXJlbnRMb2NhbGU9cjJbemVdLHIyW3plXT1obiksSDEoemUpfWVsc2UgbnVsbCE9cjJbemVdJiYobnVsbCE9cjJbemVdLnBhcmVudExvY2FsZT8ocjJbemVdPXIyW3plXS5wYXJlbnRMb2NhbGUsemU9PT1IMSgpJiZIMSh6ZSkpOm51bGwhPXIy''@;'; + put 'put ''W3plXSYmZGVsZXRlIHIyW3plXSk7cmV0dXJuIHIyW3plXX0sQi5sb2NhbGVzPWZ1bmN0aW9uIG1sKCl7cmV0dXJuIHgocjIpfSxCLndlZWtkYXlzU2hvcnQ9ZnVuY3Rpb24gemMoemUsVnQsaG4pe3JldHVybiBoZih6ZSxWdCxobiwid2Vla2RheXNTaG9ydCIpfSxCLm5vcm1hbGl6ZVVuaXRz''@;'; + put 'put ''PUN0LEIucmVsYXRpdmVUaW1lUm91bmRpbmc9ZnVuY3Rpb24gbzYoemUpe3JldHVybiB2b2lkIDA9PT16ZT9YdToiZnVuY3Rpb24iPT10eXBlb2YgemUmJihYdT16ZSwhMCl9LEIucmVsYXRpdmVUaW1lVGhyZXNob2xkPWZ1bmN0aW9uIGE2KHplLFZ0KXtyZXR1cm4gdm9pZCAwIT09RHVbemVd''@;'; + put 'put ''JiYodm9pZCAwPT09VnQ/RHVbemVdOihEdVt6ZV09VnQsInMiPT09emUmJihEdS5zcz1WdC0xKSwhMCkpfSxCLmNhbGVuZGFyRm9ybWF0PWZ1bmN0aW9uIFVwKHplLFZ0KXt2YXIgaG49emUuZGlmZihWdCwiZGF5cyIsITApO3JldHVybiBobjwtNj8ic2FtZUVsc2UiOmhuPC0xPyJsYXN0V2Vl''@;'; + put 'put ''ayI6aG48MD8ibGFzdERheSI6aG48MT8ic2FtZURheSI6aG48Mj8ibmV4dERheSI6aG48Nz8ibmV4dFdlZWsiOiJzYW1lRWxzZSJ9LEIucHJvdG90eXBlPWEwLEIuSFRNTDVfRk1UPXtEQVRFVElNRV9MT0NBTDoiWVlZWS1NTS1ERFRISDptbSIsREFURVRJTUVfTE9DQUxfU0VDT05EUzoiWVlZ''@;'; + put 'put ''WS1NTS1ERFRISDptbTpzcyIsREFURVRJTUVfTE9DQUxfTVM6IllZWVktTU0tRERUSEg6bW06c3MuU1NTIixEQVRFOiJZWVlZLU1NLUREIixUSU1FOiJISDptbSIsVElNRV9TRUNPTkRTOiJISDptbTpzcyIsVElNRV9NUzoiSEg6bW06c3MuU1NTIixXRUVLOiJHR0dHLVtXXVdXIixNT05USDoi''@;'; + put 'put ''WVlZWS1NTSJ9LEJ9KCl9LDUyOTk5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4Nzk3Nyk7SmUuY2VydGlmaWNhdGU9TCgxMjM5MCk7dmFyIEI9bWUuZGVmaW5lKCJSU0FQcml2YXRlS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIiku''@;'; + put 'put ''aW50KCksdGhpcy5rZXkoIm1vZHVsdXMiKS5pbnQoKSx0aGlzLmtleSgicHVibGljRXhwb25lbnQiKS5pbnQoKSx0aGlzLmtleSgicHJpdmF0ZUV4cG9uZW50IikuaW50KCksdGhpcy5rZXkoInByaW1lMSIpLmludCgpLHRoaXMua2V5KCJwcmltZTIiKS5pbnQoKSx0aGlzLmtleSgiZXhwb25l''@;'; + put 'put ''bnQxIikuaW50KCksdGhpcy5rZXkoImV4cG9uZW50MiIpLmludCgpLHRoaXMua2V5KCJjb2VmZmljaWVudCIpLmludCgpKX0pO0plLlJTQVByaXZhdGVLZXk9Qjt2YXIgRT1tZS5kZWZpbmUoIlJTQVB1YmxpY0tleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgibW9kdWx1''@;'; + put 'put ''cyIpLmludCgpLHRoaXMua2V5KCJwdWJsaWNFeHBvbmVudCIpLmludCgpKX0pO0plLlJTQVB1YmxpY0tleT1FO3ZhciBNZT1tZS5kZWZpbmUoIlN1YmplY3RQdWJsaWNLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UoVSksdGhpcy5r''@;'; + put 'put ''ZXkoInN1YmplY3RQdWJsaWNLZXkiKS5iaXRzdHIoKSl9KTtKZS5QdWJsaWNLZXk9TWU7dmFyIFU9bWUuZGVmaW5lKCJBbGdvcml0aG1JZGVudGlmaWVyIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS5vYmppZCgpLHRoaXMua2V5KCJub25lIikubnVs''@;'; + put 'put ''bF8oKS5vcHRpb25hbCgpLHRoaXMua2V5KCJjdXJ2ZSIpLm9iamlkKCkub3B0aW9uYWwoKSx0aGlzLmtleSgicGFyYW1zIikuc2VxKCkub2JqKHRoaXMua2V5KCJwIikuaW50KCksdGhpcy5rZXkoInEiKS5pbnQoKSx0aGlzLmtleSgiZyIpLmludCgpKS5vcHRpb25hbCgpKX0pLFE9bWUuZGVm''@;'; + put 'put ''aW5lKCJQcml2YXRlS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UoVSksdGhpcy5rZXkoInN1YmplY3RQcml2YXRlS2V5Iikub2N0c3RyKCkpfSk7SmUuUHJpdmF0ZUtleT1RO3ZhciBa''@;'; + put 'put ''PW1lLmRlZmluZSgiRW5jcnlwdGVkUHJpdmF0ZUtleUluZm8iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLnNlcSgpLm9iaih0aGlzLmtleSgiaWQiKS5vYmppZCgpLHRoaXMua2V5KCJkZWNyeXB0Iikuc2VxKCkub2JqKHRoaXMua2V5KCJrZGUiKS5z''@;'; + put 'put ''ZXEoKS5vYmoodGhpcy5rZXkoImlkIikub2JqaWQoKSx0aGlzLmtleSgia2RlcGFyYW1zIikuc2VxKCkub2JqKHRoaXMua2V5KCJzYWx0Iikub2N0c3RyKCksdGhpcy5rZXkoIml0ZXJzIikuaW50KCkpKSx0aGlzLmtleSgiY2lwaGVyIikuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvIikub2Jq''@;'; + put 'put ''aWQoKSx0aGlzLmtleSgiaXYiKS5vY3RzdHIoKSkpKSx0aGlzLmtleSgic3ViamVjdFByaXZhdGVLZXkiKS5vY3RzdHIoKSl9KTtKZS5FbmNyeXB0ZWRQcml2YXRlS2V5PVo7dmFyIGllPW1lLmRlZmluZSgiRFNBUHJpdmF0ZUtleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtl''@;'; + put 'put ''eSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJwIikuaW50KCksdGhpcy5rZXkoInEiKS5pbnQoKSx0aGlzLmtleSgiZyIpLmludCgpLHRoaXMua2V5KCJwdWJfa2V5IikuaW50KCksdGhpcy5rZXkoInByaXZfa2V5IikuaW50KCkpfSk7SmUuRFNBUHJpdmF0ZUtleT1pZSxKZS5EU0FwYXJh''@;'; + put 'put ''bT1tZS5kZWZpbmUoIkRTQXBhcmFtIixmdW5jdGlvbigpe3RoaXMuaW50KCl9KTt2YXIgbGU9bWUuZGVmaW5lKCJFQ1ByaXZhdGVLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgicHJpdmF0ZUtleSIpLm9jdHN0cigpLHRo''@;'; + put 'put ''aXMua2V5KCJwYXJhbWV0ZXJzIikub3B0aW9uYWwoKS5leHBsaWNpdCgwKS51c2UoWSksdGhpcy5rZXkoInB1YmxpY0tleSIpLm9wdGlvbmFsKCkuZXhwbGljaXQoMSkuYml0c3RyKCkpfSk7SmUuRUNQcml2YXRlS2V5PWxlO3ZhciBZPW1lLmRlZmluZSgiRUNQYXJhbWV0ZXJzIixmdW5jdGlv''@;'; + put 'put ''bigpe3RoaXMuY2hvaWNlKHtuYW1lZEN1cnZlOnRoaXMub2JqaWQoKX0pfSk7SmUuc2lnbmF0dXJlPW1lLmRlZmluZSgic2lnbmF0dXJlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJyIikuaW50KCksdGhpcy5rZXkoInMiKS5pbnQoKSl9KX0sMTIzOTA6KFhlLEplLEwp''@;'; + put 'put ''PT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg3OTc3KSxCPW1lLmRlZmluZSgiVGltZSIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7dXRjVGltZTp0aGlzLnV0Y3RpbWUoKSxnZW5lcmFsVGltZTp0aGlzLmdlbnRpbWUoKX0pfSksRT1tZS5kZWZpbmUoIkF0dHJpYnV0ZVR5cGVWYWx1ZSIsZnVu''@;'; + put 'put ''Y3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidHlwZSIpLm9iamlkKCksdGhpcy5rZXkoInZhbHVlIikuYW55KCkpfSksTWU9bWUuZGVmaW5lKCJBbGdvcml0aG1JZGVudGlmaWVyIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS5vYmppZCgp''@;'; + put 'put ''LHRoaXMua2V5KCJwYXJhbWV0ZXJzIikub3B0aW9uYWwoKSx0aGlzLmtleSgiY3VydmUiKS5vYmppZCgpLm9wdGlvbmFsKCkpfSksVT1tZS5kZWZpbmUoIlN1YmplY3RQdWJsaWNLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UoTWUp''@;'; + put 'put ''LHRoaXMua2V5KCJzdWJqZWN0UHVibGljS2V5IikuYml0c3RyKCkpfSksUT1tZS5kZWZpbmUoIlJlbGF0aXZlRGlzdGluZ3Vpc2hlZE5hbWUiLGZ1bmN0aW9uKCl7dGhpcy5zZXRvZihFKX0pLFo9bWUuZGVmaW5lKCJSRE5TZXF1ZW5jZSIsZnVuY3Rpb24oKXt0aGlzLnNlcW9mKFEpfSksaWU9''@;'; + put 'put ''bWUuZGVmaW5lKCJOYW1lIixmdW5jdGlvbigpe3RoaXMuY2hvaWNlKHtyZG5TZXF1ZW5jZTp0aGlzLnVzZShaKX0pfSksbGU9bWUuZGVmaW5lKCJWYWxpZGl0eSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgibm90QmVmb3JlIikudXNlKEIpLHRoaXMua2V5KCJub3RBZnRl''@;'; + put 'put ''ciIpLnVzZShCKSl9KSxZPW1lLmRlZmluZSgiRXh0ZW5zaW9uIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJleHRuSUQiKS5vYmppZCgpLHRoaXMua2V5KCJjcml0aWNhbCIpLmJvb2woKS5kZWYoITEpLHRoaXMua2V5KCJleHRuVmFsdWUiKS5vY3RzdHIoKSl9KSxXPW1l''@;'; + put 'put ''LmRlZmluZSgiVEJTQ2VydGlmaWNhdGUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5leHBsaWNpdCgwKS5pbnQoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJzZXJpYWxOdW1iZXIiKS5pbnQoKSx0aGlzLmtleSgic2lnbmF0dXJlIikudXNlKE1lKSx0aGlz''@;'; + put 'put ''LmtleSgiaXNzdWVyIikudXNlKGllKSx0aGlzLmtleSgidmFsaWRpdHkiKS51c2UobGUpLHRoaXMua2V5KCJzdWJqZWN0IikudXNlKGllKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleUluZm8iKS51c2UoVSksdGhpcy5rZXkoImlzc3VlclVuaXF1ZUlEIikuaW1wbGljaXQoMSkuYml0c3Ry''@;'; + put 'put ''KCkub3B0aW9uYWwoKSx0aGlzLmtleSgic3ViamVjdFVuaXF1ZUlEIikuaW1wbGljaXQoMikuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleSgiZXh0ZW5zaW9ucyIpLmV4cGxpY2l0KDMpLnNlcW9mKFkpLm9wdGlvbmFsKCkpfSksTj1tZS5kZWZpbmUoIlg1MDlDZXJ0aWZpY2F0ZSIsZnVu''@;'; + put 'put ''Y3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidGJzQ2VydGlmaWNhdGUiKS51c2UoVyksdGhpcy5rZXkoInNpZ25hdHVyZUFsZ29yaXRobSIpLnVzZShNZSksdGhpcy5rZXkoInNpZ25hdHVyZVZhbHVlIikuYml0c3RyKCkpfSk7WGUuZXhwb3J0cz1OfSw2NTI2OTooWGUsSmUsTCk9''@;'; + put 'put ''Pnt2YXIgbWU9L1Byb2MtVHlwZTogNCxFTkNSWVBURURbXG5ccl0rREVLLUluZm86IEFFUy0oKD86MTI4KXwoPzoxOTIpfCg/OjI1NikpLUNCQywoWzAtOUEtSF0rKVtcblxyXSsoWzAtOUEtelxuXHIrLz1dKylbXG5ccl0rL20sQj0vXi0tLS0tQkVHSU4gKCg/Oi4qPyBLRVkpfENFUlRJRklD''@;'; + put 'put ''QVRFKS0tLS0tL20sRT0vXi0tLS0tQkVHSU4gKCg/Oi4qPyBLRVkpfENFUlRJRklDQVRFKS0tLS0tKFswLTlBLXpcblxyKy89XSspLS0tLS1FTkQgXDEtLS0tLSQvbSxNZT1MKDQwMzQ3KSxVPUwoODQzMzApLFE9TCg3MzUwMikuQnVmZmVyO1hlLmV4cG9ydHM9ZnVuY3Rpb24oWixpZSl7dmFy''@;'; + put 'put ''IFcsbGU9Wi50b1N0cmluZygpLFk9bGUubWF0Y2gobWUpO2lmKFkpe3ZhciBlZT0iYWVzIitZWzFdLHE9US5mcm9tKFlbMl0sImhleCIpLEo9US5mcm9tKFlbM10ucmVwbGFjZSgvW1xyXG5dL2csIiIpLCJiYXNlNjQiKSxzZT1NZShpZSxxLnNsaWNlKDAsOCkscGFyc2VJbnQoWVsxXSwxMCkp''@;'; + put 'put ''LmtleSxvZT1bXSxjZT1VLmNyZWF0ZURlY2lwaGVyaXYoZWUsc2UscSk7b2UucHVzaChjZS51cGRhdGUoSikpLG9lLnB1c2goY2UuZmluYWwoKSksVz1RLmNvbmNhdChvZSl9ZWxzZXt2YXIgTj1sZS5tYXRjaChFKTtXPVEuZnJvbShOWzJdLnJlcGxhY2UoL1tcclxuXS9nLCIiKSwiYmFzZTY0''@;'; + put 'put ''Iil9cmV0dXJue3RhZzpsZS5tYXRjaChCKVsxXSxkYXRhOld9fX0sMjI3NzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNTI5OTkpLEI9TCgyMjU2MiksRT1MKDY1MjY5KSxNZT1MKDg0MzMwKSxVPUwoOTkzNTcpLFE9TCg3MzUwMikuQnVmZmVyO2Z1bmN0aW9uIFoobGUpe3ZhciBZOyJvYmplY3Qi''@;'; + put 'put ''PT10eXBlb2YgbGUmJiFRLmlzQnVmZmVyKGxlKSYmKFk9bGUucGFzc3BocmFzZSxsZT1sZS5rZXkpLCJzdHJpbmciPT10eXBlb2YgbGUmJihsZT1RLmZyb20obGUpKTt2YXIgcSxKLFc9RShsZSxZKSxOPVcudGFnLGVlPVcuZGF0YTtzd2l0Y2goTil7Y2FzZSJDRVJUSUZJQ0FURSI6Sj1tZS5j''@;'; + put 'put ''ZXJ0aWZpY2F0ZS5kZWNvZGUoZWUsImRlciIpLnRic0NlcnRpZmljYXRlLnN1YmplY3RQdWJsaWNLZXlJbmZvO2Nhc2UiUFVCTElDIEtFWSI6c3dpdGNoKEp8fChKPW1lLlB1YmxpY0tleS5kZWNvZGUoZWUsImRlciIpKSxxPUouYWxnb3JpdGhtLmFsZ29yaXRobS5qb2luKCIuIikpe2Nhc2Ui''@;'; + put 'put ''MS4yLjg0MC4xMTM1NDkuMS4xLjEiOnJldHVybiBtZS5SU0FQdWJsaWNLZXkuZGVjb2RlKEouc3ViamVjdFB1YmxpY0tleS5kYXRhLCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1cm4gSi5zdWJqZWN0UHJpdmF0ZUtleT1KLnN1YmplY3RQdWJsaWNLZXkse3R5cGU6ImVjIixk''@;'; + put 'put ''YXRhOkp9O2Nhc2UiMS4yLjg0MC4xMDA0MC40LjEiOnJldHVybiBKLmFsZ29yaXRobS5wYXJhbXMucHViX2tleT1tZS5EU0FwYXJhbS5kZWNvZGUoSi5zdWJqZWN0UHVibGljS2V5LmRhdGEsImRlciIpLHt0eXBlOiJkc2EiLGRhdGE6Si5hbGdvcml0aG0ucGFyYW1zfTtkZWZhdWx0OnRocm93''@;'; + put 'put ''IG5ldyBFcnJvcigidW5rbm93biBrZXkgaWQgIitxKX1jYXNlIkVOQ1JZUFRFRCBQUklWQVRFIEtFWSI6ZWU9ZnVuY3Rpb24gaWUobGUsWSl7dmFyIFc9bGUuYWxnb3JpdGhtLmRlY3J5cHQua2RlLmtkZXBhcmFtcy5zYWx0LE49cGFyc2VJbnQobGUuYWxnb3JpdGhtLmRlY3J5cHQua2RlLmtk''@;'; + put 'put ''ZXBhcmFtcy5pdGVycy50b1N0cmluZygpLDEwKSxlZT1CW2xlLmFsZ29yaXRobS5kZWNyeXB0LmNpcGhlci5hbGdvLmpvaW4oIi4iKV0scT1sZS5hbGdvcml0aG0uZGVjcnlwdC5jaXBoZXIuaXYsSj1sZS5zdWJqZWN0UHJpdmF0ZUtleSxzZT1wYXJzZUludChlZS5zcGxpdCgiLSIpWzFdLDEw''@;'; + put 'put ''KS84LG9lPVUucGJrZGYyU3luYyhZLFcsTixzZSwic2hhMSIpLGNlPU1lLmNyZWF0ZURlY2lwaGVyaXYoZWUsb2UscSksZGU9W107cmV0dXJuIGRlLnB1c2goY2UudXBkYXRlKEopKSxkZS5wdXNoKGNlLmZpbmFsKCkpLFEuY29uY2F0KGRlKX0oZWU9bWUuRW5jcnlwdGVkUHJpdmF0ZUtleS5k''@;'; + put 'put ''ZWNvZGUoZWUsImRlciIpLFkpO2Nhc2UiUFJJVkFURSBLRVkiOnN3aXRjaChxPShKPW1lLlByaXZhdGVLZXkuZGVjb2RlKGVlLCJkZXIiKSkuYWxnb3JpdGhtLmFsZ29yaXRobS5qb2luKCIuIikpe2Nhc2UiMS4yLjg0MC4xMTM1NDkuMS4xLjEiOnJldHVybiBtZS5SU0FQcml2YXRlS2V5LmRl''@;'; + put 'put ''Y29kZShKLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1cm57Y3VydmU6Si5hbGdvcml0aG0uY3VydmUscHJpdmF0ZUtleTptZS5FQ1ByaXZhdGVLZXkuZGVjb2RlKEouc3ViamVjdFByaXZhdGVLZXksImRlciIpLnByaXZhdGVLZXl9O2Nhc2Ui''@;'; + put 'put ''MS4yLjg0MC4xMDA0MC40LjEiOnJldHVybiBKLmFsZ29yaXRobS5wYXJhbXMucHJpdl9rZXk9bWUuRFNBcGFyYW0uZGVjb2RlKEouc3ViamVjdFByaXZhdGVLZXksImRlciIpLHt0eXBlOiJkc2EiLHBhcmFtczpKLmFsZ29yaXRobS5wYXJhbXN9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1''@;'; + put 'put ''bmtub3duIGtleSBpZCAiK3EpfWNhc2UiUlNBIFBVQkxJQyBLRVkiOnJldHVybiBtZS5SU0FQdWJsaWNLZXkuZGVjb2RlKGVlLCJkZXIiKTtjYXNlIlJTQSBQUklWQVRFIEtFWSI6cmV0dXJuIG1lLlJTQVByaXZhdGVLZXkuZGVjb2RlKGVlLCJkZXIiKTtjYXNlIkRTQSBQUklWQVRFIEtFWSI6''@;'; + put 'put ''cmV0dXJue3R5cGU6ImRzYSIscGFyYW1zOm1lLkRTQVByaXZhdGVLZXkuZGVjb2RlKGVlLCJkZXIiKX07Y2FzZSJFQyBQUklWQVRFIEtFWSI6cmV0dXJue2N1cnZlOihlZT1tZS5FQ1ByaXZhdGVLZXkuZGVjb2RlKGVlLCJkZXIiKSkucGFyYW1ldGVycy52YWx1ZSxwcml2YXRlS2V5OmVlLnBy''@;'; + put 'put ''aXZhdGVLZXl9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSB0eXBlICIrTil9fVhlLmV4cG9ydHM9WixaLnNpZ25hdHVyZT1tZS5zaWduYXR1cmV9LDk5MzU3OihYZSxKZSxMKT0+e0plLnBia2RmMj1MKDkwNDE1KSxKZS5wYmtkZjJTeW5jPUwoNzc0NzIpfSw5MDQxNToo''@;'; + put 'put ''WGUsSmUsTCk9Pnt2YXIgUSxXLG1lPUwoNzM1MDIpLkJ1ZmZlcixCPUwoNjI2OTcpLEU9TCg3ODg2NyksTWU9TCg3NzQ3MiksVT1MKDk0NTY2KSxaPWdsb2JhbC5jcnlwdG8mJmdsb2JhbC5jcnlwdG8uc3VidGxlLGllPXtzaGE6IlNIQS0xIiwic2hhLTEiOiJTSEEtMSIsc2hhMToiU0hBLTEi''@;'; + put 'put ''LHNoYTI1NjoiU0hBLTI1NiIsInNoYS0yNTYiOiJTSEEtMjU2IixzaGEzODQ6IlNIQS0zODQiLCJzaGEtMzg0IjoiU0hBLTM4NCIsInNoYS01MTIiOiJTSEEtNTEyIixzaGE1MTI6IlNIQS01MTIifSxsZT1bXTtmdW5jdGlvbiBOKCl7cmV0dXJuIFd8fChXPWdsb2JhbC5wcm9jZXNzJiZnbG9i''@;'; + put 'put ''YWwucHJvY2Vzcy5uZXh0VGljaz9nbG9iYWwucHJvY2Vzcy5uZXh0VGljazpnbG9iYWwucXVldWVNaWNyb3Rhc2s/Z2xvYmFsLnF1ZXVlTWljcm90YXNrOmdsb2JhbC5zZXRJbW1lZGlhdGU/Z2xvYmFsLnNldEltbWVkaWF0ZTpnbG9iYWwuc2V0VGltZW91dCl9ZnVuY3Rpb24gZWUoSixzZSxv''@;'; + put 'put ''ZSxjZSxkZSl7cmV0dXJuIFouaW1wb3J0S2V5KCJyYXciLEose25hbWU6IlBCS0RGMiJ9LCExLFsiZGVyaXZlQml0cyJdKS50aGVuKGZ1bmN0aW9uKHZlKXtyZXR1cm4gWi5kZXJpdmVCaXRzKHtuYW1lOiJQQktERjIiLHNhbHQ6c2UsaXRlcmF0aW9uczpvZSxoYXNoOntuYW1lOmRlfX0sdmUs''@;'; + put 'put ''Y2U8PDMpfSkudGhlbihmdW5jdGlvbih2ZSl7cmV0dXJuIG1lLmZyb20odmUpfSl9WGUuZXhwb3J0cz1mdW5jdGlvbihKLHNlLG9lLGNlLGRlLHZlKXsiZnVuY3Rpb24iPT10eXBlb2YgZGUmJih2ZT1kZSxkZT12b2lkIDApO3ZhciBBZT1pZVsoZGU9ZGV8fCJzaGExIikudG9Mb3dlckNhc2Uo''@;'; + put 'put ''KV07aWYoQWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBnbG9iYWwuUHJvbWlzZSl7aWYoQihvZSxjZSksSj1VKEosRSwiUGFzc3dvcmQiKSxzZT1VKHNlLEUsIlNhbHQiKSwiZnVuY3Rpb24iIT10eXBlb2YgdmUpdGhyb3cgbmV3IEVycm9yKCJObyBjYWxsYmFjayBwcm92aWRlZCB0byBwYmtkZjIi''@;'; + put 'put ''KTshZnVuY3Rpb24gcShKLHNlKXtKLnRoZW4oZnVuY3Rpb24ob2Upe04oKShmdW5jdGlvbigpe3NlKG51bGwsb2UpfSl9LGZ1bmN0aW9uKG9lKXtOKCkoZnVuY3Rpb24oKXtzZShvZSl9KX0pfShmdW5jdGlvbiBZKEope2lmKGdsb2JhbC5wcm9jZXNzJiYhZ2xvYmFsLnByb2Nlc3MuYnJvd3Nl''@;'; + put 'put ''cnx8IVp8fCFaLmltcG9ydEtleXx8IVouZGVyaXZlQml0cylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCExKTtpZih2b2lkIDAhPT1sZVtKXSlyZXR1cm4gbGVbSl07dmFyIHNlPWVlKFE9UXx8bWUuYWxsb2MoOCksUSwxMCwxMjgsSikudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSkuY2F0Y2go''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4hMX0pO3JldHVybiBsZVtKXT1zZSxzZX0oQWUpLnRoZW4oZnVuY3Rpb24oa2Upe3JldHVybiBrZT9lZShKLHNlLG9lLGNlLEFlKTpNZShKLHNlLG9lLGNlLGRlKX0pLHZlKX1lbHNlIE4oKShmdW5jdGlvbigpe3ZhciBrZTt0cnl7a2U9TWUoSixzZSxvZSxjZSxk''@;'; + put 'put ''ZSl9Y2F0Y2goU2Upe3JldHVybiB2ZShTZSl9dmUobnVsbCxrZSl9KX19LDc4ODY3OlhlPT57dmFyIEplO0plPWdsb2JhbC5wcm9jZXNzJiZnbG9iYWwucHJvY2Vzcy5icm93c2VyPyJ1dGYtOCI6Z2xvYmFsLnByb2Nlc3MmJmdsb2JhbC5wcm9jZXNzLnZlcnNpb24/cGFyc2VJbnQocHJvY2Vz''@;'; + put 'put ''cy52ZXJzaW9uLnNwbGl0KCIuIilbMF0uc2xpY2UoMSksMTApPj02PyJ1dGYtOCI6ImJpbmFyeSI6InV0Zi04IixYZS5leHBvcnRzPUplfSw2MjY5NzpYZT0+e3ZhciBKZT1NYXRoLnBvdygyLDMwKS0xO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTCxtZSl7aWYoIm51bWJlciIhPXR5cGVvZiBMKXRo''@;'; + put 'put ''cm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdGlvbnMgbm90IGEgbnVtYmVyIik7aWYoTDwwKXRocm93IG5ldyBUeXBlRXJyb3IoIkJhZCBpdGVyYXRpb25zIik7aWYoIm51bWJlciIhPXR5cGVvZiBtZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJLZXkgbGVuZ3RoIG5vdCBhIG51bWJlciIpO2lmKG1l''@;'; + put 'put ''PDB8fG1lPkplfHxtZSE9bWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQmFkIGtleSBsZW5ndGgiKX19LDc3NDcyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1NjQwKSxCPUwoNzU2MzQpLEU9TCg5NTI0NCksTWU9TCg3MzUwMikuQnVmZmVyLFU9TCg2MjY5NyksUT1MKDc4ODY3KSxaPUwoOTQ1NjYp''@;'; + put 'put ''LGllPU1lLmFsbG9jKDEyOCksbGU9e21kNToxNixzaGExOjIwLHNoYTIyNDoyOCxzaGEyNTY6MzIsc2hhMzg0OjQ4LHNoYTUxMjo2NCxybWQxNjA6MjAscmlwZW1kMTYwOjIwfTtmdW5jdGlvbiBZKGVlLHEsSil7dmFyIHNlPWZ1bmN0aW9uIFcoZWUpe3JldHVybiJybWQxNjAiPT09ZWV8fCJy''@;'; + put 'put ''aXBlbWQxNjAiPT09ZWU/ZnVuY3Rpb24gSihzZSl7cmV0dXJuKG5ldyBCKS51cGRhdGUoc2UpLmRpZ2VzdCgpfToibWQ1Ij09PWVlP21lOmZ1bmN0aW9uIHEoc2Upe3JldHVybiBFKGVlKS51cGRhdGUoc2UpLmRpZ2VzdCgpfX0oZWUpLG9lPSJzaGE1MTIiPT09ZWV8fCJzaGEzODQiPT09ZWU/''@;'; + put 'put ''MTI4OjY0O3EubGVuZ3RoPm9lP3E9c2UocSk6cS5sZW5ndGg8b2UmJihxPU1lLmNvbmNhdChbcSxpZV0sb2UpKTtmb3IodmFyIGNlPU1lLmFsbG9jVW5zYWZlKG9lK2xlW2VlXSksZGU9TWUuYWxsb2NVbnNhZmUob2UrbGVbZWVdKSx2ZT0wO3ZlPG9lO3ZlKyspY2VbdmVdPTU0XnFbdmVdLGRl''@;'; + put 'put ''W3ZlXT05Ml5xW3ZlXTt2YXIgQWU9TWUuYWxsb2NVbnNhZmUob2UrSis0KTtjZS5jb3B5KEFlLDAsMCxvZSksdGhpcy5pcGFkMT1BZSx0aGlzLmlwYWQyPWNlLHRoaXMub3BhZD1kZSx0aGlzLmFsZz1lZSx0aGlzLmJsb2Nrc2l6ZT1vZSx0aGlzLmhhc2g9c2UsdGhpcy5zaXplPWxlW2VlXX1Z''@;'; + put 'put ''LnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oZWUscSl7cmV0dXJuIGVlLmNvcHkocSx0aGlzLmJsb2Nrc2l6ZSksdGhpcy5oYXNoKHEpLmNvcHkodGhpcy5vcGFkLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2godGhpcy5vcGFkKX0sWGUuZXhwb3J0cz1mdW5jdGlvbiBOKGVlLHEsSixzZSxvZSl7''@;'; + put 'put ''VShKLHNlKTt2YXIgY2U9bmV3IFkob2U9b2V8fCJzaGExIixlZT1aKGVlLFEsIlBhc3N3b3JkIiksKHE9WihxLFEsIlNhbHQiKSkubGVuZ3RoKSxkZT1NZS5hbGxvY1Vuc2FmZShzZSksdmU9TWUuYWxsb2NVbnNhZmUocS5sZW5ndGgrNCk7cS5jb3B5KHZlLDAsMCxxLmxlbmd0aCk7Zm9yKHZh''@;'; + put 'put ''ciBBZT0wLGtlPWxlW29lXSxTZT1NYXRoLmNlaWwoc2Uva2UpLEllPTE7SWU8PVNlO0llKyspe3ZlLndyaXRlVUludDMyQkUoSWUscS5sZW5ndGgpO2Zvcih2YXIgVGU9Y2UucnVuKHZlLGNlLmlwYWQxKSxFZT1UZSxoZT0xO2hlPEo7aGUrKyl7RWU9Y2UucnVuKEVlLGNlLmlwYWQyKTtmb3Io''@;'; + put 'put ''dmFyIE89MDtPPGtlO08rKylUZVtPXV49RWVbT119VGUuY29weShkZSxBZSksQWUrPWtlfXJldHVybiBkZX19LDk0NTY2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDczNTAyKS5CdWZmZXI7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUsTWUpe2lmKG1lLmlzQnVmZmVyKEIpKXJldHVybiBCO2lmKCJz''@;'; + put 'put ''dHJpbmciPT10eXBlb2YgQilyZXR1cm4gbWUuZnJvbShCLEUpO2lmKEFycmF5QnVmZmVyLmlzVmlldyhCKSlyZXR1cm4gbWUuZnJvbShCLmJ1ZmZlcik7dGhyb3cgbmV3IFR5cGVFcnJvcihNZSsiIG11c3QgYmUgYSBzdHJpbmcsIGEgQnVmZmVyLCBhIHR5cGVkIGFycmF5IG9yIGEgRGF0YVZp''@;'; + put 'put ''ZXciKX19LDQxMDc4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSxCKXsidXNlIHN0cmljdCI7dmFyIEU7dHJ5e0U9TCgxNTQzOSl9Y2F0Y2goTWUpe31YZS5leHBvcnRzPWZ1bmN0aW9uKG1lKXt2YXIgQj0iZnVuY3Rpb24iPT10eXBlb2YgbWUsRT0hIXdpbmRvdy5hZGRFdmVudExp''@;'; + put 'put ''c3RlbmVyLE1lPXdpbmRvdy5kb2N1bWVudCxVPXdpbmRvdy5zZXRUaW1lb3V0LFE9ZnVuY3Rpb24oUCxWLFQsUyl7RT9QLmFkZEV2ZW50TGlzdGVuZXIoVixULCEhUyk6UC5hdHRhY2hFdmVudCgib24iK1YsVCl9LFo9ZnVuY3Rpb24oUCxWLFQsUyl7RT9QLnJlbW92ZUV2ZW50TGlzdGVuZXIo''@;'; + put 'put ''VixULCEhUyk6UC5kZXRhY2hFdmVudCgib24iK1YsVCl9LGxlPWZ1bmN0aW9uKFAsVil7cmV0dXJuLTEhPT0oIiAiK1AuY2xhc3NOYW1lKyIgIikuaW5kZXhPZigiICIrVisiICIpfSxZPWZ1bmN0aW9uKFAsVil7bGUoUCxWKXx8KFAuY2xhc3NOYW1lPSIiPT09UC5jbGFzc05hbWU/VjpQLmNs''@;'; + put 'put ''YXNzTmFtZSsiICIrVil9LFc9ZnVuY3Rpb24oUCxWKXtQLmNsYXNzTmFtZT1mdW5jdGlvbihQKXtyZXR1cm4gUC50cmltP1AudHJpbSgpOlAucmVwbGFjZSgvXlxzK3xccyskL2csIiIpfSgoIiAiK1AuY2xhc3NOYW1lKyIgIikucmVwbGFjZSgiICIrVisiICIsIiAiKSl9LE49ZnVuY3Rpb24o''@;'; + put 'put ''UCl7cmV0dXJuL0FycmF5Ly50ZXN0KE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChQKSl9LGVlPWZ1bmN0aW9uKFApe3JldHVybi9EYXRlLy50ZXN0KE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChQKSkmJiFpc05hTihQLmdldFRpbWUoKSl9LHE9ZnVuY3Rpb24oUCl7dmFy''@;'; + put 'put ''IFY9UC5nZXREYXkoKTtyZXR1cm4gMD09PVZ8fDY9PT1WfSxKPWZ1bmN0aW9uKFApe3JldHVybiBQJTQ9PTAmJlAlMTAwIT0wfHxQJTQwMD09MH0sc2U9ZnVuY3Rpb24oUCxWKXtyZXR1cm5bMzEsSihQKT8yOToyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV1bVl19LG9lPWZ1bmN0''@;'; + put 'put ''aW9uKFApe2VlKFApJiZQLnNldEhvdXJzKDAsMCwwLDApfSxjZT1mdW5jdGlvbihQLFYpe3JldHVybiBQLmdldFRpbWUoKT09PVYuZ2V0VGltZSgpfSxkZT1mdW5jdGlvbihQLFYsVCl7dmFyIFMsRjtmb3IoUyBpbiBWKShGPXZvaWQgMCE9PVBbU10pJiYib2JqZWN0Ij09dHlwZW9mIFZbU10m''@;'; + put 'put ''Jm51bGwhPT1WW1NdJiZ2b2lkIDA9PT1WW1NdLm5vZGVOYW1lP2VlKFZbU10pP1QmJihQW1NdPW5ldyBEYXRlKFZbU10uZ2V0VGltZSgpKSk6TihWW1NdKT9UJiYoUFtTXT1WW1NdLnNsaWNlKDApKTpQW1NdPWRlKHt9LFZbU10sVCk6KFR8fCFGKSYmKFBbU109VltTXSk7cmV0dXJuIFB9LHZl''@;'; + put 'put ''PWZ1bmN0aW9uKFAsVixUKXt2YXIgUztNZS5jcmVhdGVFdmVudD8oKFM9TWUuY3JlYXRlRXZlbnQoIkhUTUxFdmVudHMiKSkuaW5pdEV2ZW50KFYsITAsITEpLFM9ZGUoUyxUKSxQLmRpc3BhdGNoRXZlbnQoUykpOk1lLmNyZWF0ZUV2ZW50T2JqZWN0JiYoUz1NZS5jcmVhdGVFdmVudE9iamVj''@;'; + put 'put ''dCgpLFM9ZGUoUyxUKSxQLmZpcmVFdmVudCgib24iK1YsUykpfSxBZT1mdW5jdGlvbihQKXtyZXR1cm4gUC5tb250aDwwJiYoUC55ZWFyLT1NYXRoLmNlaWwoTWF0aC5hYnMoUC5tb250aCkvMTIpLFAubW9udGgrPTEyKSxQLm1vbnRoPjExJiYoUC55ZWFyKz1NYXRoLmZsb29yKE1hdGguYWJz''@;'; + put 'put ''KFAubW9udGgpLzEyKSxQLm1vbnRoLT0xMiksUH0sa2U9e2ZpZWxkOm51bGwsYm91bmQ6dm9pZCAwLGFyaWFMYWJlbDoiVXNlIHRoZSBhcnJvdyBrZXlzIHRvIHBpY2sgYSBkYXRlIixwb3NpdGlvbjoiYm90dG9tIGxlZnQiLHJlcG9zaXRpb246ITAsZm9ybWF0OiJZWVlZLU1NLUREIix0b1N0''@;'; + put 'put ''cmluZzpudWxsLHBhcnNlOm51bGwsZGVmYXVsdERhdGU6bnVsbCxzZXREZWZhdWx0RGF0ZTohMSxmaXJzdERheTowLGZpcnN0V2Vla09mWWVhck1pbkRheXM6NCxmb3JtYXRTdHJpY3Q6ITEsbWluRGF0ZTpudWxsLG1heERhdGU6bnVsbCx5ZWFyUmFuZ2U6MTAsc2hvd1dlZWtOdW1iZXI6ITEs''@;'; + put 'put ''cGlja1dob2xlV2VlazohMSxtaW5ZZWFyOjAsbWF4WWVhcjo5OTk5LG1pbk1vbnRoOnZvaWQgMCxtYXhNb250aDp2b2lkIDAsc3RhcnRSYW5nZTpudWxsLGVuZFJhbmdlOm51bGwsaXNSVEw6ITEseWVhclN1ZmZpeDoiIixzaG93TW9udGhBZnRlclllYXI6ITEsc2hvd0RheXNJbk5leHRBbmRQ''@;'; + put 'put ''cmV2aW91c01vbnRoczohMSxlbmFibGVTZWxlY3Rpb25EYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHM6ITEsbnVtYmVyT2ZNb250aHM6MSxtYWluQ2FsZW5kYXI6ImxlZnQiLGNvbnRhaW5lcjp2b2lkIDAsYmx1ckZpZWxkT25TZWxlY3Q6ITAsaTE4bjp7cHJldmlvdXNNb250aDoiUHJldmlv''@;'; + put 'put ''dXMgTW9udGgiLG5leHRNb250aDoiTmV4dCBNb250aCIsbW9udGhzOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSx3ZWVrZGF5czpbIlN1''@;'; + put 'put ''bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sd2Vla2RheXNTaG9ydDpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdfSx0aGVtZTpudWxsLGV2ZW50czpbXSxvblNlbGVjdDpudWxsLG9u''@;'; + put 'put ''T3BlbjpudWxsLG9uQ2xvc2U6bnVsbCxvbkRyYXc6bnVsbCxrZXlib2FyZElucHV0OiEwfSxTZT1mdW5jdGlvbihQLFYsVCl7Zm9yKFYrPVAuZmlyc3REYXk7Vj49NzspVi09NztyZXR1cm4gVD9QLmkxOG4ud2Vla2RheXNTaG9ydFtWXTpQLmkxOG4ud2Vla2RheXNbVl19LEllPWZ1bmN0aW9u''@;'; + put 'put ''KFApe3ZhciBWPVtdLFQ9ImZhbHNlIjtpZihQLmlzRW1wdHkpe2lmKCFQLnNob3dEYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHMpcmV0dXJuJzx0ZCBjbGFzcz0iaXMtZW1wdHkiPjwvdGQ+JztWLnB1c2goImlzLW91dHNpZGUtY3VycmVudC1tb250aCIpLFAuZW5hYmxlU2VsZWN0aW9uRGF5''@;'; + put 'put ''c0luTmV4dEFuZFByZXZpb3VzTW9udGhzfHxWLnB1c2goImlzLXNlbGVjdGlvbi1kaXNhYmxlZCIpfXJldHVybiBQLmlzRGlzYWJsZWQmJlYucHVzaCgiaXMtZGlzYWJsZWQiKSxQLmlzVG9kYXkmJlYucHVzaCgiaXMtdG9kYXkiKSxQLmlzU2VsZWN0ZWQmJihWLnB1c2goImlzLXNlbGVjdGVk''@;'; + put 'put ''IiksVD0idHJ1ZSIpLFAuaGFzRXZlbnQmJlYucHVzaCgiaGFzLWV2ZW50IiksUC5pc0luUmFuZ2UmJlYucHVzaCgiaXMtaW5yYW5nZSIpLFAuaXNTdGFydFJhbmdlJiZWLnB1c2goImlzLXN0YXJ0cmFuZ2UiKSxQLmlzRW5kUmFuZ2UmJlYucHVzaCgiaXMtZW5kcmFuZ2UiKSwnPHRkIGRhdGEt''@;'; + put 'put ''ZGF5PSInK1AuZGF5KyciIGNsYXNzPSInK1Yuam9pbigiICIpKyciIGFyaWEtc2VsZWN0ZWQ9IicrVCsnIj48YnV0dG9uIGNsYXNzPSJwaWthLWJ1dHRvbiBwaWthLWRheSIgdHlwZT0iYnV0dG9uIiBkYXRhLXBpa2EteWVhcj0iJytQLnllYXIrJyIgZGF0YS1waWthLW1vbnRoPSInK1AubW9u''@;'; + put 'put ''dGgrJyIgZGF0YS1waWthLWRheT0iJytQLmRheSsnIj4nK1AuZGF5KyI8L2J1dHRvbj48L3RkPiJ9LEVlPWZ1bmN0aW9uKFAsVixULFMpe3ZhciBGPW5ldyBEYXRlKFQsVixQKTtyZXR1cm4nPHRkIGNsYXNzPSJwaWthLXdlZWsiPicrKEI/bWUoRikuaXNvV2VlaygpOmZ1bmN0aW9uKFAsVil7''@;'; + put 'put ''UC5zZXRIb3VycygwLDAsMCwwKTt2YXIgVD1QLmdldERhdGUoKSxTPVAuZ2V0RGF5KCksRj1WLHllPUYtMSxEZT1mdW5jdGlvbih3dCl7cmV0dXJuKHd0KzctMSklN307UC5zZXREYXRlKFQreWUtRGUoUykpO3ZhciBQZT1uZXcgRGF0ZShQLmdldEZ1bGxZZWFyKCksMCxGKSwkZT0oUC5nZXRU''@;'; + put 'put ''aW1lKCktUGUuZ2V0VGltZSgpKS84NjRlNTtyZXR1cm4gMStNYXRoLnJvdW5kKCgkZS15ZStEZShQZS5nZXREYXkoKSkpLzcpfShGLFMpKSsiPC90ZD4ifSxoZT1mdW5jdGlvbihQLFYsVCxTKXtyZXR1cm4nPHRyIGNsYXNzPSJwaWthLXJvdycrKFQ/IiBwaWNrLXdob2xlLXdlZWsiOiIiKSso''@;'; + put 'put ''Uz8iIGlzLXNlbGVjdGVkIjoiIikrJyI+JysoVj9QLnJldmVyc2UoKTpQKS5qb2luKCIiKSsiPC90cj4ifSxuZT1mdW5jdGlvbihQLFYsVCxTLEYseWUpe3ZhciBDZSxEZSxQZSx2dCxBdCxRZT1QLl9vLCRlPVQ9PT1RZS5taW5ZZWFyLGd0PVQ9PT1RZS5tYXhZZWFyLHd0PSc8ZGl2IGlkPSIn''@;'; + put 'put ''K3llKyciIGNsYXNzPSJwaWthLXRpdGxlIiByb2xlPSJoZWFkaW5nIiBhcmlhLWxpdmU9ImFzc2VydGl2ZSI+JyxtdD0hMCxodD0hMDtmb3IoUGU9W10sQ2U9MDtDZTwxMjtDZSsrKVBlLnB1c2goJzxvcHRpb24gdmFsdWU9IicrKFQ9PT1GP0NlLVY6MTIrQ2UtVikrJyInKyhDZT09PVM/JyBz''@;'; + put 'put ''ZWxlY3RlZD0ic2VsZWN0ZWQiJzoiIikrKCRlJiZDZTxRZS5taW5Nb250aHx8Z3QmJkNlPlFlLm1heE1vbnRoPycgZGlzYWJsZWQ9ImRpc2FibGVkIic6IiIpKyI+IitRZS5pMThuLm1vbnRoc1tDZV0rIjwvb3B0aW9uPiIpO2Zvcih2dD0nPGRpdiBjbGFzcz0icGlrYS1sYWJlbCI+JytRZS5p''@;'; + put 'put ''MThuLm1vbnRoc1tTXSsnPHNlbGVjdCBjbGFzcz0icGlrYS1zZWxlY3QgcGlrYS1zZWxlY3QtbW9udGgiIHRhYmluZGV4PSItMSI+JytQZS5qb2luKCIiKSsiPC9zZWxlY3Q+PC9kaXY+IixOKFFlLnllYXJSYW5nZSk/KENlPVFlLnllYXJSYW5nZVswXSxEZT1RZS55ZWFyUmFuZ2VbMV0rMSk6''@;'; + put 'put ''KENlPVQtUWUueWVhclJhbmdlLERlPTErVCtRZS55ZWFyUmFuZ2UpLFBlPVtdO0NlPERlJiZDZTw9UWUubWF4WWVhcjtDZSsrKUNlPj1RZS5taW5ZZWFyJiZQZS5wdXNoKCc8b3B0aW9uIHZhbHVlPSInK0NlKyciJysoQ2U9PT1UPycgc2VsZWN0ZWQ9InNlbGVjdGVkIic6IiIpKyI+IitDZSsi''@;'; + put 'put ''PC9vcHRpb24+Iik7cmV0dXJuIEF0PSc8ZGl2IGNsYXNzPSJwaWthLWxhYmVsIj4nK1QrUWUueWVhclN1ZmZpeCsnPHNlbGVjdCBjbGFzcz0icGlrYS1zZWxlY3QgcGlrYS1zZWxlY3QteWVhciIgdGFiaW5kZXg9Ii0xIj4nK1BlLmpvaW4oIiIpKyI8L3NlbGVjdD48L2Rpdj4iLHd0Kz1RZS5z''@;'; + put 'put ''aG93TW9udGhBZnRlclllYXI/QXQrdnQ6dnQrQXQsJGUmJigwPT09U3x8UWUubWluTW9udGg+PVMpJiYobXQ9ITEpLGd0JiYoMTE9PT1TfHxRZS5tYXhNb250aDw9UykmJihodD0hMSksMD09PVYmJih3dCs9JzxidXR0b24gY2xhc3M9InBpa2EtcHJldicrKG10PyIiOiIgaXMtZGlzYWJsZWQi''@;'; + put 'put ''KSsnIiB0eXBlPSJidXR0b24iPicrUWUuaTE4bi5wcmV2aW91c01vbnRoKyI8L2J1dHRvbj4iKSxWPT09UC5fby5udW1iZXJPZk1vbnRocy0xJiYod3QrPSc8YnV0dG9uIGNsYXNzPSJwaWthLW5leHQnKyhodD8iIjoiIGlzLWRpc2FibGVkIikrJyIgdHlwZT0iYnV0dG9uIj4nK1FlLmkxOG4u''@;'; + put 'put ''bmV4dE1vbnRoKyI8L2J1dHRvbj4iKSx3dCsiPC9kaXY+In0sdGU9ZnVuY3Rpb24oUCxWLFQpe3JldHVybic8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGlrYS10YWJsZSIgcm9sZT0iZ3JpZCIgYXJpYS1sYWJlbGxlZGJ5PSInK1QrJyI+JytmdW5jdGlv''@;'; + put 'put ''bihQKXt2YXIgVixUPVtdO2ZvcihQLnNob3dXZWVrTnVtYmVyJiZULnB1c2goIjx0aD48L3RoPiIpLFY9MDtWPDc7VisrKVQucHVzaCgnPHRoIHNjb3BlPSJjb2wiPjxhYmJyIHRpdGxlPSInK1NlKFAsVikrJyI+JytTZShQLFYsITApKyI8L2FiYnI+PC90aD4iKTtyZXR1cm4iPHRoZWFkPjx0''@;'; + put 'put ''cj4iKyhQLmlzUlRMP1QucmV2ZXJzZSgpOlQpLmpvaW4oIiIpKyI8L3RyPjwvdGhlYWQ+In0oUCkrZnVuY3Rpb24oUCl7cmV0dXJuIjx0Ym9keT4iK1Auam9pbigiIikrIjwvdGJvZHk+In0oVikrIjwvdGFibGU+In0seD1mdW5jdGlvbihQKXt2YXIgVj10aGlzLFQ9Vi5jb25maWcoUCk7Vi5f''@;'; + put 'put ''b25Nb3VzZURvd249ZnVuY3Rpb24oRil7aWYoVi5fdil7dmFyIHllPShGPUZ8fHdpbmRvdy5ldmVudCkudGFyZ2V0fHxGLnNyY0VsZW1lbnQ7aWYoeWUpaWYobGUoeWUsImlzLWRpc2FibGVkIil8fCghbGUoeWUsInBpa2EtYnV0dG9uIil8fGxlKHllLCJpcy1lbXB0eSIpfHxsZSh5ZS5wYXJl''@;'; + put 'put ''bnROb2RlLCJpcy1kaXNhYmxlZCIpP2xlKHllLCJwaWthLXByZXYiKT9WLnByZXZNb250aCgpOmxlKHllLCJwaWthLW5leHQiKSYmVi5uZXh0TW9udGgoKTooVi5zZXREYXRlKG5ldyBEYXRlKHllLmdldEF0dHJpYnV0ZSgiZGF0YS1waWthLXllYXIiKSx5ZS5nZXRBdHRyaWJ1dGUoImRhdGEt''@;'; + put 'put ''cGlrYS1tb250aCIpLHllLmdldEF0dHJpYnV0ZSgiZGF0YS1waWthLWRheSIpKSksVC5ib3VuZCYmVShmdW5jdGlvbigpe1YuaGlkZSgpLFQuYmx1ckZpZWxkT25TZWxlY3QmJlQuZmllbGQmJlQuZmllbGQuYmx1cigpfSwxMDApKSksbGUoeWUsInBpa2Etc2VsZWN0IikpVi5fYz0hMDtlbHNl''@;'; + put 'put ''e2lmKCFGLnByZXZlbnREZWZhdWx0KXJldHVybiBGLnJldHVyblZhbHVlPSExLCExO0YucHJldmVudERlZmF1bHQoKX19fSxWLl9vbkNoYW5nZT1mdW5jdGlvbihGKXt2YXIgeWU9KEY9Rnx8d2luZG93LmV2ZW50KS50YXJnZXR8fEYuc3JjRWxlbWVudDsheWV8fChsZSh5ZSwicGlrYS1zZWxl''@;'; + put 'put ''Y3QtbW9udGgiKT9WLmdvdG9Nb250aCh5ZS52YWx1ZSk6bGUoeWUsInBpa2Etc2VsZWN0LXllYXIiKSYmVi5nb3RvWWVhcih5ZS52YWx1ZSkpfSxWLl9vbktleUNoYW5nZT1mdW5jdGlvbihGKXtpZihGPUZ8fHdpbmRvdy5ldmVudCxWLmlzVmlzaWJsZSgpKXN3aXRjaChGLmtleUNvZGUpe2Nh''@;'; + put 'put ''c2UgMTM6Y2FzZSAyNzpULmZpZWxkJiZULmZpZWxkLmJsdXIoKTticmVhaztjYXNlIDM3OlYuYWRqdXN0RGF0ZSgic3VidHJhY3QiLDEpO2JyZWFrO2Nhc2UgMzg6Vi5hZGp1c3REYXRlKCJzdWJ0cmFjdCIsNyk7YnJlYWs7Y2FzZSAzOTpWLmFkanVzdERhdGUoImFkZCIsMSk7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSA0MDpWLmFkanVzdERhdGUoImFkZCIsNyk7YnJlYWs7Y2FzZSA4OmNhc2UgNDY6Vi5zZXREYXRlKG51bGwpfX0sVi5fcGFyc2VGaWVsZFZhbHVlPWZ1bmN0aW9uKCl7aWYoVC5wYXJzZSlyZXR1cm4gVC5wYXJzZShULmZpZWxkLnZhbHVlLFQuZm9ybWF0KTtpZihCKXt2YXIgRj1tZShULmZp''@;'; + put 'put ''ZWxkLnZhbHVlLFQuZm9ybWF0LFQuZm9ybWF0U3RyaWN0KTtyZXR1cm4gRiYmRi5pc1ZhbGlkKCk/Ri50b0RhdGUoKTpudWxsfXJldHVybiBuZXcgRGF0ZShEYXRlLnBhcnNlKFQuZmllbGQudmFsdWUpKX0sVi5fb25JbnB1dENoYW5nZT1mdW5jdGlvbihGKXt2YXIgeWU7Ri5maXJlZEJ5IT09''@;'; + put 'put ''ViYmKHllPVYuX3BhcnNlRmllbGRWYWx1ZSgpLGVlKHllKSYmVi5zZXREYXRlKHllKSxWLl92fHxWLnNob3coKSl9LFYuX29uSW5wdXRGb2N1cz1mdW5jdGlvbigpe1Yuc2hvdygpfSxWLl9vbklucHV0Q2xpY2s9ZnVuY3Rpb24oKXtWLnNob3coKX0sVi5fb25JbnB1dEJsdXI9ZnVuY3Rpb24o''@;'; + put 'put ''KXt2YXIgRj1NZS5hY3RpdmVFbGVtZW50O2Rve2lmKGxlKEYsInBpa2Etc2luZ2xlIikpcmV0dXJufXdoaWxlKEY9Ri5wYXJlbnROb2RlKTtWLl9jfHwoVi5fYj1VKGZ1bmN0aW9uKCl7Vi5oaWRlKCl9LDUwKSksVi5fYz0hMX0sVi5fb25DbGljaz1mdW5jdGlvbihGKXt2YXIgeWU9KEY9Rnx8''@;'; + put 'put ''d2luZG93LmV2ZW50KS50YXJnZXR8fEYuc3JjRWxlbWVudCxDZT15ZTtpZih5ZSl7IUUmJmxlKHllLCJwaWthLXNlbGVjdCIpJiYoeWUub25jaGFuZ2V8fCh5ZS5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwicmV0dXJuOyIpLFEoeWUsImNoYW5nZSIsVi5fb25DaGFuZ2UpKSk7ZG97aWYobGUo''@;'; + put 'put ''Q2UsInBpa2Etc2luZ2xlIil8fENlPT09VC50cmlnZ2VyKXJldHVybn13aGlsZShDZT1DZS5wYXJlbnROb2RlKTtWLl92JiZ5ZSE9PVQudHJpZ2dlciYmQ2UhPT1ULnRyaWdnZXImJlYuaGlkZSgpfX0sVi5lbD1NZS5jcmVhdGVFbGVtZW50KCJkaXYiKSxWLmVsLmNsYXNzTmFtZT0icGlrYS1z''@;'; + put 'put ''aW5nbGUiKyhULmlzUlRMPyIgaXMtcnRsIjoiIikrKFQudGhlbWU/IiAiK1QudGhlbWU6IiIpLFEoVi5lbCwibW91c2Vkb3duIixWLl9vbk1vdXNlRG93biwhMCksUShWLmVsLCJ0b3VjaGVuZCIsVi5fb25Nb3VzZURvd24sITApLFEoVi5lbCwiY2hhbmdlIixWLl9vbkNoYW5nZSksVC5rZXli''@;'; + put 'put ''b2FyZElucHV0JiZRKE1lLCJrZXlkb3duIixWLl9vbktleUNoYW5nZSksVC5maWVsZCYmKFQuY29udGFpbmVyP1QuY29udGFpbmVyLmFwcGVuZENoaWxkKFYuZWwpOlQuYm91bmQ/TWUuYm9keS5hcHBlbmRDaGlsZChWLmVsKTpULmZpZWxkLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKFYuZWws''@;'; + put 'put ''VC5maWVsZC5uZXh0U2libGluZyksUShULmZpZWxkLCJjaGFuZ2UiLFYuX29uSW5wdXRDaGFuZ2UpLFQuZGVmYXVsdERhdGV8fChULmRlZmF1bHREYXRlPVYuX3BhcnNlRmllbGRWYWx1ZSgpLFQuc2V0RGVmYXVsdERhdGU9ITApKTt2YXIgUz1ULmRlZmF1bHREYXRlO2VlKFMpP1Quc2V0RGVm''@;'; + put 'put ''YXVsdERhdGU/Vi5zZXREYXRlKFMsITApOlYuZ290b0RhdGUoUyk6Vi5nb3RvRGF0ZShuZXcgRGF0ZSksVC5ib3VuZD8odGhpcy5oaWRlKCksVi5lbC5jbGFzc05hbWUrPSIgaXMtYm91bmQiLFEoVC50cmlnZ2VyLCJjbGljayIsVi5fb25JbnB1dENsaWNrKSxRKFQudHJpZ2dlciwiZm9jdXMi''@;'; + put 'put ''LFYuX29uSW5wdXRGb2N1cyksUShULnRyaWdnZXIsImJsdXIiLFYuX29uSW5wdXRCbHVyKSk6dGhpcy5zaG93KCl9O3JldHVybiB4LnByb3RvdHlwZT17Y29uZmlnOmZ1bmN0aW9uKFApe3RoaXMuX298fCh0aGlzLl9vPWRlKHt9LGtlLCEwKSk7dmFyIFY9ZGUodGhpcy5fbyxQLCEwKTtWLmlz''@;'; + put 'put ''UlRMPSEhVi5pc1JUTCxWLmZpZWxkPVYuZmllbGQmJlYuZmllbGQubm9kZU5hbWU/Vi5maWVsZDpudWxsLFYudGhlbWU9InN0cmluZyI9PXR5cGVvZiBWLnRoZW1lJiZWLnRoZW1lP1YudGhlbWU6bnVsbCxWLmJvdW5kPSEhKHZvaWQgMCE9PVYuYm91bmQ/Vi5maWVsZCYmVi5ib3VuZDpWLmZp''@;'; + put 'put ''ZWxkKSxWLnRyaWdnZXI9Vi50cmlnZ2VyJiZWLnRyaWdnZXIubm9kZU5hbWU/Vi50cmlnZ2VyOlYuZmllbGQsVi5kaXNhYmxlV2Vla2VuZHM9ISFWLmRpc2FibGVXZWVrZW5kcyxWLmRpc2FibGVEYXlGbj0iZnVuY3Rpb24iPT10eXBlb2YgVi5kaXNhYmxlRGF5Rm4/Vi5kaXNhYmxlRGF5Rm46''@;'; + put 'put ''bnVsbDt2YXIgVD1wYXJzZUludChWLm51bWJlck9mTW9udGhzLDEwKXx8MTtpZihWLm51bWJlck9mTW9udGhzPVQ+ND80OlQsZWUoVi5taW5EYXRlKXx8KFYubWluRGF0ZT0hMSksZWUoVi5tYXhEYXRlKXx8KFYubWF4RGF0ZT0hMSksVi5taW5EYXRlJiZWLm1heERhdGUmJlYubWF4RGF0ZTxW''@;'; + put 'put ''Lm1pbkRhdGUmJihWLm1heERhdGU9Vi5taW5EYXRlPSExKSxWLm1pbkRhdGUmJnRoaXMuc2V0TWluRGF0ZShWLm1pbkRhdGUpLFYubWF4RGF0ZSYmdGhpcy5zZXRNYXhEYXRlKFYubWF4RGF0ZSksTihWLnllYXJSYW5nZSkpe3ZhciBTPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKS0xMDtWLnll''@;'; + put 'put ''YXJSYW5nZVswXT1wYXJzZUludChWLnllYXJSYW5nZVswXSwxMCl8fFMsVi55ZWFyUmFuZ2VbMV09cGFyc2VJbnQoVi55ZWFyUmFuZ2VbMV0sMTApfHxTfWVsc2UgVi55ZWFyUmFuZ2U9TWF0aC5hYnMocGFyc2VJbnQoVi55ZWFyUmFuZ2UsMTApKXx8a2UueWVhclJhbmdlLFYueWVhclJhbmdl''@;'; + put 'put ''PjEwMCYmKFYueWVhclJhbmdlPTEwMCk7cmV0dXJuIFZ9LHRvU3RyaW5nOmZ1bmN0aW9uKFApe3JldHVybiBQPVB8fHRoaXMuX28uZm9ybWF0LGVlKHRoaXMuX2QpP3RoaXMuX28udG9TdHJpbmc/dGhpcy5fby50b1N0cmluZyh0aGlzLl9kLFApOkI/bWUodGhpcy5fZCkuZm9ybWF0KFApOnRo''@;'; + put 'put ''aXMuX2QudG9EYXRlU3RyaW5nKCk6IiJ9LGdldE1vbWVudDpmdW5jdGlvbigpe3JldHVybiBCP21lKHRoaXMuX2QpOm51bGx9LHNldE1vbWVudDpmdW5jdGlvbihQLFYpe0ImJm1lLmlzTW9tZW50KFApJiZ0aGlzLnNldERhdGUoUC50b0RhdGUoKSxWKX0sZ2V0RGF0ZTpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiBlZSh0aGlzLl9kKT9uZXcgRGF0ZSh0aGlzLl9kLmdldFRpbWUoKSk6bnVsbH0sc2V0RGF0ZTpmdW5jdGlvbihQLFYpe2lmKCFQKXJldHVybiB0aGlzLl9kPW51bGwsdGhpcy5fby5maWVsZCYmKHRoaXMuX28uZmllbGQudmFsdWU9IiIsdmUodGhpcy5fby5maWVsZCwiY2hhbmdlIix7''@;'; + put 'put ''ZmlyZWRCeTp0aGlzfSkpLHRoaXMuZHJhdygpO2lmKCJzdHJpbmciPT10eXBlb2YgUCYmKFA9bmV3IERhdGUoRGF0ZS5wYXJzZShQKSkpLGVlKFApKXt2YXIgVD10aGlzLl9vLm1pbkRhdGUsUz10aGlzLl9vLm1heERhdGU7ZWUoVCkmJlA8VD9QPVQ6ZWUoUykmJlA+UyYmKFA9UyksdGhpcy5f''@;'; + put 'put ''ZD1uZXcgRGF0ZShQLmdldFRpbWUoKSksb2UodGhpcy5fZCksdGhpcy5nb3RvRGF0ZSh0aGlzLl9kKSx0aGlzLl9vLmZpZWxkJiYodGhpcy5fby5maWVsZC52YWx1ZT10aGlzLnRvU3RyaW5nKCksdmUodGhpcy5fby5maWVsZCwiY2hhbmdlIix7ZmlyZWRCeTp0aGlzfSkpLCFWJiYiZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YgdGhpcy5fby5vblNlbGVjdCYmdGhpcy5fby5vblNlbGVjdC5jYWxsKHRoaXMsdGhpcy5nZXREYXRlKCkpfX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLnNldERhdGUobnVsbCl9LGdvdG9EYXRlOmZ1bmN0aW9uKFApe3ZhciBWPSEwO2lmKGVlKFApKXtpZih0aGlzLmNhbGVu''@;'; + put 'put ''ZGFycyl7dmFyIFQ9bmV3IERhdGUodGhpcy5jYWxlbmRhcnNbMF0ueWVhcix0aGlzLmNhbGVuZGFyc1swXS5tb250aCwxKSxTPW5ldyBEYXRlKHRoaXMuY2FsZW5kYXJzW3RoaXMuY2FsZW5kYXJzLmxlbmd0aC0xXS55ZWFyLHRoaXMuY2FsZW5kYXJzW3RoaXMuY2FsZW5kYXJzLmxlbmd0aC0x''@;'; + put 'put ''XS5tb250aCwxKSxGPVAuZ2V0VGltZSgpO1Muc2V0TW9udGgoUy5nZXRNb250aCgpKzEpLFMuc2V0RGF0ZShTLmdldERhdGUoKS0xKSxWPUY8VC5nZXRUaW1lKCl8fFMuZ2V0VGltZSgpPEZ9ViYmKHRoaXMuY2FsZW5kYXJzPVt7bW9udGg6UC5nZXRNb250aCgpLHllYXI6UC5nZXRGdWxsWWVh''@;'; + put 'put ''cigpfV0sInJpZ2h0Ij09PXRoaXMuX28ubWFpbkNhbGVuZGFyJiYodGhpcy5jYWxlbmRhcnNbMF0ubW9udGgrPTEtdGhpcy5fby5udW1iZXJPZk1vbnRocykpLHRoaXMuYWRqdXN0Q2FsZW5kYXJzKCl9fSxhZGp1c3REYXRlOmZ1bmN0aW9uKFAsVil7dmFyIEYsVD10aGlzLmdldERhdGUoKXx8''@;'; + put 'put ''bmV3IERhdGUsUz0yNCpwYXJzZUludChWKSo2MCo2MCoxZTM7ImFkZCI9PT1QP0Y9bmV3IERhdGUoVC52YWx1ZU9mKCkrUyk6InN1YnRyYWN0Ij09PVAmJihGPW5ldyBEYXRlKFQudmFsdWVPZigpLVMpKSx0aGlzLnNldERhdGUoRil9LGFkanVzdENhbGVuZGFyczpmdW5jdGlvbigpe3RoaXMu''@;'; + put 'put ''Y2FsZW5kYXJzWzBdPUFlKHRoaXMuY2FsZW5kYXJzWzBdKTtmb3IodmFyIFA9MTtQPHRoaXMuX28ubnVtYmVyT2ZNb250aHM7UCsrKXRoaXMuY2FsZW5kYXJzW1BdPUFlKHttb250aDp0aGlzLmNhbGVuZGFyc1swXS5tb250aCtQLHllYXI6dGhpcy5jYWxlbmRhcnNbMF0ueWVhcn0pO3RoaXMu''@;'; + put 'put ''ZHJhdygpfSxnb3RvVG9kYXk6ZnVuY3Rpb24oKXt0aGlzLmdvdG9EYXRlKG5ldyBEYXRlKX0sZ290b01vbnRoOmZ1bmN0aW9uKFApe2lzTmFOKFApfHwodGhpcy5jYWxlbmRhcnNbMF0ubW9udGg9cGFyc2VJbnQoUCwxMCksdGhpcy5hZGp1c3RDYWxlbmRhcnMoKSl9LG5leHRNb250aDpmdW5j''@;'; + put 'put ''dGlvbigpe3RoaXMuY2FsZW5kYXJzWzBdLm1vbnRoKyssdGhpcy5hZGp1c3RDYWxlbmRhcnMoKX0scHJldk1vbnRoOmZ1bmN0aW9uKCl7dGhpcy5jYWxlbmRhcnNbMF0ubW9udGgtLSx0aGlzLmFkanVzdENhbGVuZGFycygpfSxnb3RvWWVhcjpmdW5jdGlvbihQKXtpc05hTihQKXx8KHRoaXMu''@;'; + put 'put ''Y2FsZW5kYXJzWzBdLnllYXI9cGFyc2VJbnQoUCwxMCksdGhpcy5hZGp1c3RDYWxlbmRhcnMoKSl9LHNldE1pbkRhdGU6ZnVuY3Rpb24oUCl7UCBpbnN0YW5jZW9mIERhdGU/KG9lKFApLHRoaXMuX28ubWluRGF0ZT1QLHRoaXMuX28ubWluWWVhcj1QLmdldEZ1bGxZZWFyKCksdGhpcy5fby5t''@;'; + put 'put ''aW5Nb250aD1QLmdldE1vbnRoKCkpOih0aGlzLl9vLm1pbkRhdGU9a2UubWluRGF0ZSx0aGlzLl9vLm1pblllYXI9a2UubWluWWVhcix0aGlzLl9vLm1pbk1vbnRoPWtlLm1pbk1vbnRoLHRoaXMuX28uc3RhcnRSYW5nZT1rZS5zdGFydFJhbmdlKSx0aGlzLmRyYXcoKX0sc2V0TWF4RGF0ZTpm''@;'; + put 'put ''dW5jdGlvbihQKXtQIGluc3RhbmNlb2YgRGF0ZT8ob2UoUCksdGhpcy5fby5tYXhEYXRlPVAsdGhpcy5fby5tYXhZZWFyPVAuZ2V0RnVsbFllYXIoKSx0aGlzLl9vLm1heE1vbnRoPVAuZ2V0TW9udGgoKSk6KHRoaXMuX28ubWF4RGF0ZT1rZS5tYXhEYXRlLHRoaXMuX28ubWF4WWVhcj1rZS5t''@;'; + put 'put ''YXhZZWFyLHRoaXMuX28ubWF4TW9udGg9a2UubWF4TW9udGgsdGhpcy5fby5lbmRSYW5nZT1rZS5lbmRSYW5nZSksdGhpcy5kcmF3KCl9LHNldFN0YXJ0UmFuZ2U6ZnVuY3Rpb24oUCl7dGhpcy5fby5zdGFydFJhbmdlPVB9LHNldEVuZFJhbmdlOmZ1bmN0aW9uKFApe3RoaXMuX28uZW5kUmFu''@;'; + put 'put ''Z2U9UH0sZHJhdzpmdW5jdGlvbihQKXtpZih0aGlzLl92fHxQKXt2YXIgRGUsVj10aGlzLl9vLFQ9Vi5taW5ZZWFyLFM9Vi5tYXhZZWFyLEY9Vi5taW5Nb250aCx5ZT1WLm1heE1vbnRoLENlPSIiO3RoaXMuX3k8PVQmJih0aGlzLl95PVQsIWlzTmFOKEYpJiZ0aGlzLl9tPEYmJih0aGlzLl9t''@;'; + put 'put ''PUYpKSx0aGlzLl95Pj1TJiYodGhpcy5feT1TLCFpc05hTih5ZSkmJnRoaXMuX20+eWUmJih0aGlzLl9tPXllKSk7Zm9yKHZhciBQZT0wO1BlPFYubnVtYmVyT2ZNb250aHM7UGUrKylEZT0icGlrYS10aXRsZS0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnJlcGxhY2UoL1teYS16XSsv''@;'; + put 'put ''ZywiIikuc3Vic3RyKDAsMiksQ2UrPSc8ZGl2IGNsYXNzPSJwaWthLWxlbmRhciI+JytuZSh0aGlzLFBlLHRoaXMuY2FsZW5kYXJzW1BlXS55ZWFyLHRoaXMuY2FsZW5kYXJzW1BlXS5tb250aCx0aGlzLmNhbGVuZGFyc1swXS55ZWFyLERlKSt0aGlzLnJlbmRlcih0aGlzLmNhbGVuZGFyc1tQ''@;'; + put 'put ''ZV0ueWVhcix0aGlzLmNhbGVuZGFyc1tQZV0ubW9udGgsRGUpKyI8L2Rpdj4iO3RoaXMuZWwuaW5uZXJIVE1MPUNlLFYuYm91bmQmJiJoaWRkZW4iIT09Vi5maWVsZC50eXBlJiZVKGZ1bmN0aW9uKCl7Vi50cmlnZ2VyLmZvY3VzKCl9LDEpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9vLm9u''@;'; + put 'put ''RHJhdyYmdGhpcy5fby5vbkRyYXcodGhpcyksVi5ib3VuZCYmVi5maWVsZC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLFYuYXJpYUxhYmVsKX19LGFkanVzdFBvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIFAsVixULFMsRix5ZSxDZSxEZSxQZSxRZSwkZSxndDtpZighdGhpcy5fby5jb250YWlu''@;'; + put 'put ''ZXIpe2lmKHRoaXMuZWwuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixWPVA9dGhpcy5fby50cmlnZ2VyLFQ9dGhpcy5lbC5vZmZzZXRXaWR0aCxTPXRoaXMuZWwub2Zmc2V0SGVpZ2h0LEY9d2luZG93LmlubmVyV2lkdGh8fE1lLmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCx5ZT13aW5k''@;'; + put 'put ''b3cuaW5uZXJIZWlnaHR8fE1lLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsQ2U9d2luZG93LnBhZ2VZT2Zmc2V0fHxNZS5ib2R5LnNjcm9sbFRvcHx8TWUuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCwkZT0hMCxndD0hMCwiZnVuY3Rpb24iPT10eXBlb2YgUC5nZXRCb3VuZGluZ0Ns''@;'; + put 'put ''aWVudFJlY3QpRGU9KFFlPVAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLmxlZnQrd2luZG93LnBhZ2VYT2Zmc2V0LFBlPVFlLmJvdHRvbSt3aW5kb3cucGFnZVlPZmZzZXQ7ZWxzZSBmb3IoRGU9Vi5vZmZzZXRMZWZ0LFBlPVYub2Zmc2V0VG9wK1Yub2Zmc2V0SGVpZ2h0O1Y9Vi5vZmZzZXRQ''@;'; + put 'put ''YXJlbnQ7KURlKz1WLm9mZnNldExlZnQsUGUrPVYub2Zmc2V0VG9wOyh0aGlzLl9vLnJlcG9zaXRpb24mJkRlK1Q+Rnx8dGhpcy5fby5wb3NpdGlvbi5pbmRleE9mKCJyaWdodCIpPi0xJiZEZS1UK1Aub2Zmc2V0V2lkdGg+MCkmJihEZT1EZS1UK1Aub2Zmc2V0V2lkdGgsJGU9ITEpLCh0aGlz''@;'; + put 'put ''Ll9vLnJlcG9zaXRpb24mJlBlK1M+eWUrQ2V8fHRoaXMuX28ucG9zaXRpb24uaW5kZXhPZigidG9wIik+LTEmJlBlLVMtUC5vZmZzZXRIZWlnaHQ+MCkmJihQZT1QZS1TLVAub2Zmc2V0SGVpZ2h0LGd0PSExKSx0aGlzLmVsLnN0eWxlLmxlZnQ9RGUrInB4Iix0aGlzLmVsLnN0eWxlLnRvcD1Q''@;'; + put 'put ''ZSsicHgiLFkodGhpcy5lbCwkZT8ibGVmdC1hbGlnbmVkIjoicmlnaHQtYWxpZ25lZCIpLFkodGhpcy5lbCxndD8iYm90dG9tLWFsaWduZWQiOiJ0b3AtYWxpZ25lZCIpLFcodGhpcy5lbCwkZT8icmlnaHQtYWxpZ25lZCI6ImxlZnQtYWxpZ25lZCIpLFcodGhpcy5lbCxndD8idG9wLWFsaWdu''@;'; + put 'put ''ZWQiOiJib3R0b20tYWxpZ25lZCIpfX0scmVuZGVyOmZ1bmN0aW9uKFAsVixUKXt2YXIgUz10aGlzLl9vLEY9bmV3IERhdGUseWU9c2UoUCxWKSxDZT1uZXcgRGF0ZShQLFYsMSkuZ2V0RGF5KCksRGU9W10sUGU9W107b2UoRiksUy5maXJzdERheT4wJiYoQ2UtPVMuZmlyc3REYXkpPDAmJihD''@;'; + put 'put ''ZSs9Nyk7Zm9yKHZhciBRZT0wPT09Vj8xMTpWLTEsJGU9MTE9PT1WPzA6VisxLGd0PTA9PT1WP1AtMTpQLHd0PTExPT09Vj9QKzE6UCx2dD1zZShndCxRZSksQXQ9eWUrQ2UsbXQ9QXQ7bXQ+NzspbXQtPTc7QXQrPTctbXQ7Zm9yKHZhciBodD0hMSxCdD0wLG9uPTA7QnQ8QXQ7QnQrKyl7dmFy''@;'; + put 'put ''IF90PW5ldyBEYXRlKFAsVixCdC1DZSsxKSx0dD0hIWVlKHRoaXMuX2QpJiZjZShfdCx0aGlzLl9kKSxldD1jZShfdCxGKSxhdD0tMSE9PVMuZXZlbnRzLmluZGV4T2YoX3QudG9EYXRlU3RyaW5nKCkpLEx0PUJ0PENlfHxCdD49eWUrQ2UsQ3Q9QnQtQ2UrMSxmdD1WLEh0PVAsR2U9Uy5zdGFy''@;'; + put 'put ''dFJhbmdlJiZjZShTLnN0YXJ0UmFuZ2UsX3QpLFVlPVMuZW5kUmFuZ2UmJmNlKFMuZW5kUmFuZ2UsX3QpLHl0PVMuc3RhcnRSYW5nZSYmUy5lbmRSYW5nZSYmUy5zdGFydFJhbmdlPF90JiZfdDxTLmVuZFJhbmdlLGp0PVMubWluRGF0ZSYmX3Q8Uy5taW5EYXRlfHxTLm1heERhdGUmJl90PlMu''@;'; + put 'put ''bWF4RGF0ZXx8Uy5kaXNhYmxlV2Vla2VuZHMmJnEoX3QpfHxTLmRpc2FibGVEYXlGbiYmUy5kaXNhYmxlRGF5Rm4oX3QpO0x0JiYoQnQ8Q2U/KEN0PXZ0K0N0LGZ0PVFlLEh0PWd0KTooQ3QtPXllLGZ0PSRlLEh0PXd0KSksUy5waWNrV2hvbGVXZWVrJiZ0dCYmKGh0PSEwKSxQZS5wdXNoKEll''@;'; + put 'put ''KHtkYXk6Q3QsbW9udGg6ZnQseWVhcjpIdCxoYXNFdmVudDphdCxpc1NlbGVjdGVkOnR0LGlzVG9kYXk6ZXQsaXNEaXNhYmxlZDpqdCxpc0VtcHR5Okx0LGlzU3RhcnRSYW5nZTpHZSxpc0VuZFJhbmdlOlVlLGlzSW5SYW5nZTp5dCxzaG93RGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzOlMu''@;'; + put 'put ''c2hvd0RheXNJbk5leHRBbmRQcmV2aW91c01vbnRocyxlbmFibGVTZWxlY3Rpb25EYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHM6Uy5lbmFibGVTZWxlY3Rpb25EYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHN9KSksNz09KytvbiYmKFMuc2hvd1dlZWtOdW1iZXImJlBlLnVuc2hpZnQoRWUo''@;'; + put 'put ''QnQtQ2UsVixQLFMuZmlyc3RXZWVrT2ZZZWFyTWluRGF5cykpLERlLnB1c2goaGUoUGUsUy5pc1JUTCxTLnBpY2tXaG9sZVdlZWssaHQpKSxQZT1bXSxvbj0wLGh0PSExKX1yZXR1cm4gdGUoUyxEZSxUKX0saXNWaXNpYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Z9LHNob3c6ZnVuY3Rp''@;'; + put 'put ''b24oKXt0aGlzLmlzVmlzaWJsZSgpfHwodGhpcy5fdj0hMCx0aGlzLmRyYXcoKSxXKHRoaXMuZWwsImlzLWhpZGRlbiIpLHRoaXMuX28uYm91bmQmJihRKE1lLCJjbGljayIsdGhpcy5fb25DbGljayksdGhpcy5hZGp1c3RQb3NpdGlvbigpKSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fby5v''@;'; + put 'put ''bk9wZW4mJnRoaXMuX28ub25PcGVuLmNhbGwodGhpcykpfSxoaWRlOmZ1bmN0aW9uKCl7dmFyIFA9dGhpcy5fdjshMSE9PVAmJih0aGlzLl9vLmJvdW5kJiZaKE1lLCJjbGljayIsdGhpcy5fb25DbGljayksdGhpcy5fby5jb250YWluZXJ8fCh0aGlzLmVsLnN0eWxlLnBvc2l0aW9uPSJzdGF0''@;'; + put 'put ''aWMiLHRoaXMuZWwuc3R5bGUubGVmdD0iYXV0byIsdGhpcy5lbC5zdHlsZS50b3A9ImF1dG8iKSxZKHRoaXMuZWwsImlzLWhpZGRlbiIpLHRoaXMuX3Y9ITEsdm9pZCAwIT09UCYmImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuX28ub25DbG9zZSYmdGhpcy5fby5vbkNsb3NlLmNhbGwodGhpcykp''@;'; + put 'put ''fSxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIFA9dGhpcy5fbzt0aGlzLmhpZGUoKSxaKHRoaXMuZWwsIm1vdXNlZG93biIsdGhpcy5fb25Nb3VzZURvd24sITApLFoodGhpcy5lbCwidG91Y2hlbmQiLHRoaXMuX29uTW91c2VEb3duLCEwKSxaKHRoaXMuZWwsImNoYW5nZSIsdGhpcy5fb25DaGFu''@;'; + put 'put ''Z2UpLFAua2V5Ym9hcmRJbnB1dCYmWihNZSwia2V5ZG93biIsdGhpcy5fb25LZXlDaGFuZ2UpLFAuZmllbGQmJihaKFAuZmllbGQsImNoYW5nZSIsdGhpcy5fb25JbnB1dENoYW5nZSksUC5ib3VuZCYmKFooUC50cmlnZ2VyLCJjbGljayIsdGhpcy5fb25JbnB1dENsaWNrKSxaKFAudHJpZ2dl''@;'; + put 'put ''ciwiZm9jdXMiLHRoaXMuX29uSW5wdXRGb2N1cyksWihQLnRyaWdnZXIsImJsdXIiLHRoaXMuX29uSW5wdXRCbHVyKSkpLHRoaXMuZWwucGFyZW50Tm9kZSYmdGhpcy5lbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWwpfX0seH0oRSl9KCl9LDYzNzAxOihYZSxKZSxMKT0+e0plLnB1''@;'; + put 'put ''YmxpY0VuY3J5cHQ9TCgxNjU2MiksSmUucHJpdmF0ZURlY3J5cHQ9TCgzNjcwNSksSmUucHJpdmF0ZUVuY3J5cHQ9ZnVuY3Rpb24oQixFKXtyZXR1cm4gSmUucHVibGljRW5jcnlwdChCLEUsITApfSxKZS5wdWJsaWNEZWNyeXB0PWZ1bmN0aW9uKEIsRSl7cmV0dXJuIEplLnByaXZhdGVEZWNy''@;'; + put 'put ''eXB0KEIsRSwhMCl9fSw4Njk0NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5NjM4NiksQj1MKDczNTAyKS5CdWZmZXI7ZnVuY3Rpb24gRShNZSl7dmFyIFU9Qi5hbGxvY1Vuc2FmZSg0KTtyZXR1cm4gVS53cml0ZVVJbnQzMkJFKE1lLDApLFV9WGUuZXhwb3J0cz1mdW5jdGlvbihNZSxVKXtmb3Io''@;'; + put 'put ''dmFyIGllLFE9Qi5hbGxvYygwKSxaPTA7US5sZW5ndGg8VTspaWU9RShaKyspLFE9Qi5jb25jYXQoW1EsbWUoInNoYTEiKS51cGRhdGUoTWUpLnVwZGF0ZShpZSkuZGlnZXN0KCldKTtyZXR1cm4gUS5zbGljZSgwLFUpfX0sODIwNTc6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIp''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBFKGhlLE8pe2lmKCFoZSl0aHJvdyBuZXcgRXJyb3IoT3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBNZShoZSxPKXtoZS5zdXBlcl89Tzt2YXIgej1mdW5jdGlvbigpe307ei5wcm90b3R5cGU9Ty5wcm90b3R5cGUsaGUucHJvdG90eXBlPW5l''@;'; + put 'put ''dyB6LGhlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1oZX1mdW5jdGlvbiBVKGhlLE8seil7aWYoVS5pc0JOKGhlKSlyZXR1cm4gaGU7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PWhlJiYoKCJsZSI9PT1PfHwiYmUiPT09''@;'; + put 'put ''TykmJih6PU8sTz0xMCksdGhpcy5faW5pdChoZXx8MCxPfHwxMCx6fHwiYmUiKSl9dmFyIFE7Im9iamVjdCI9PXR5cGVvZiBtZT9tZS5leHBvcnRzPVU6Qi5CTj1VLFUuQk49VSxVLndvcmRTaXplPTI2O3RyeXtRPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cu''@;'; + put 'put ''QnVmZmVyP3dpbmRvdy5CdWZmZXI6TCg3NzEwOCkuQnVmZmVyfWNhdGNoKGhlKXt9ZnVuY3Rpb24gWihoZSxPKXt2YXIgej1oZS5jaGFyQ29kZUF0KE8pO3JldHVybiB6Pj02NSYmejw9NzA/ei01NTp6Pj05NyYmejw9MTAyP3otODc6ei00OCYxNX1mdW5jdGlvbiBpZShoZSxPLHope3ZhciBu''@;'; + put 'put ''ZT1aKGhlLHopO3JldHVybiB6LTE+PU8mJihuZXw9WihoZSx6LTEpPDw0KSxuZX1mdW5jdGlvbiBsZShoZSxPLHosbmUpe2Zvcih2YXIgdGU9MCx4PU1hdGgubWluKGhlLmxlbmd0aCx6KSxQPU87UDx4O1ArKyl7dmFyIFY9aGUuY2hhckNvZGVBdChQKS00ODt0ZSo9bmUsdGUrPVY+PTQ5P1Yt''@;'; + put 'put ''NDkrMTA6Vj49MTc/Vi0xNysxMDpWfXJldHVybiB0ZX1VLmlzQk49ZnVuY3Rpb24oTyl7cmV0dXJuIE8gaW5zdGFuY2VvZiBVfHxudWxsIT09TyYmIm9iamVjdCI9PXR5cGVvZiBPJiZPLmNvbnN0cnVjdG9yLndvcmRTaXplPT09VS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShPLndvcmRzKX0s''@;'; + put 'put ''VS5tYXg9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik+MD9POnp9LFUubWluPWZ1bmN0aW9uKE8seil7cmV0dXJuIE8uY21wKHopPDA/Tzp6fSxVLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihPLHosbmUpe2lmKCJudW1iZXIiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdE51bWJl''@;'; + put 'put ''cihPLHosbmUpO2lmKCJvYmplY3QiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdEFycmF5KE8seixuZSk7ImhleCI9PT16JiYoej0xNiksRSh6PT09KDB8eikmJno+PTImJno8PTM2KTt2YXIgdGU9MDsiLSI9PT0oTz1PLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKHRl''@;'; + put 'put ''KyssdGhpcy5uZWdhdGl2ZT0xKSx0ZTxPLmxlbmd0aCYmKDE2PT09ej90aGlzLl9wYXJzZUhleChPLHRlLG5lKToodGhpcy5fcGFyc2VCYXNlKE8seix0ZSksImxlIj09PW5lJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixuZSkpKX0sVS5wcm90b3R5cGUuX2luaXROdW1iZXI9''@;'; + put 'put ''ZnVuY3Rpb24oTyx6LG5lKXtPPDAmJih0aGlzLm5lZ2F0aXZlPTEsTz0tTyksTzw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmT10sdGhpcy5sZW5ndGg9MSk6Tzw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMu''@;'; + put 'put ''bGVuZ3RoPTIpOihFKE88OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmTyxPLzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1uZSYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHosbmUpfSxVLnByb3RvdHlwZS5faW5pdEFycmF5''@;'; + put 'put ''PWZ1bmN0aW9uKE8seixuZSl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8ubGVuZ3RoKSxPLmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChPLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxl''@;'; + put 'put ''bmd0aCk7Zm9yKHZhciB0ZT0wO3RlPHRoaXMubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09MDt2YXIgeCxQLFY9MDtpZigiYmUiPT09bmUpZm9yKHRlPU8ubGVuZ3RoLTEseD0wO3RlPj0wO3RlLT0zKXRoaXMud29yZHNbeF18PShQPU9bdGVdfE9bdGUtMV08PDh8T1t0ZS0yXTw8MTYpPDxW''@;'; + put 'put ''JjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7ZWxzZSBpZigibGUiPT09bmUpZm9yKHRlPTAseD0wO3RlPE8ubGVuZ3RoO3RlKz0zKXRoaXMud29yZHNbeF18PShQPU9bdGVdfE9bdGUrMV08PDh8T1t0ZSsyXTw8MTYp''@;'; + put 'put ''PDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKE8seixuZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChPLmxlbmd0aC16''@;'; + put 'put ''KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB0ZT0wO3RlPHRoaXMubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09MDt2YXIgVix4PTAsUD0wO2lmKCJiZSI9PT1uZSlmb3IodGU9Ty5sZW5ndGgtMTt0ZT49ejt0ZS09MilWPWllKE8seix0ZSk8PHgsdGhp''@;'; + put 'put ''cy53b3Jkc1tQXXw9NjcxMDg4NjMmVix4Pj0xOD8oeC09MTgsdGhpcy53b3Jkc1tQKz0xXXw9Vj4+PjI2KTp4Kz04O2Vsc2UgZm9yKHRlPShPLmxlbmd0aC16KSUyPT0wP3orMTp6O3RlPE8ubGVuZ3RoO3RlKz0yKVY9aWUoTyx6LHRlKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+''@;'; + put 'put ''PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKE8seixuZSl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIHRlPTAseD0xO3g8PTY3MTA4ODYzO3gqPXopdGUrKzt0''@;'; + put 'put ''ZS0tLHg9eC96fDA7Zm9yKHZhciBQPU8ubGVuZ3RoLW5lLFY9UCV0ZSxUPU1hdGgubWluKFAsUC1WKStuZSxTPTAsRj1uZTtGPFQ7Ris9dGUpUz1sZShPLEYsRit0ZSx6KSx0aGlzLmltdWxuKHgpLHRoaXMud29yZHNbMF0rUzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1TOnRoaXMuX2lhZGRu''@;'; + put 'put ''KFMpO2lmKDAhPT1WKXt2YXIgeWU9MTtmb3IoUz1sZShPLEYsTy5sZW5ndGgseiksRj0wO0Y8VjtGKyspeWUqPXo7dGhpcy5pbXVsbih5ZSksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyl9dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5j''@;'; + put 'put ''b3B5PWZ1bmN0aW9uKE8pe08ud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoO3orKylPLndvcmRzW3pdPXRoaXMud29yZHNbel07Ty5sZW5ndGg9dGhpcy5sZW5ndGgsTy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLE8ucmVkPXRoaXMucmVkfSxV''@;'; + put 'put ''LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiB0aGlzLmNvcHkoTyksT30sVS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE87KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sVS5w''@;'; + put 'put ''cm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxVLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMu''@;'; + put 'put ''bGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sVS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgWT1bIiIsIjAiLCIwMCIsIjAwMCIs''@;'; + put 'put ''IjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAw''@;'; + put 'put ''MDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIs''@;'; + put 'put ''IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxXPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLE49WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwx''@;'; + put 'put ''Njc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQz''@;'; + put 'put ''LDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gcShoZSxPLHope3oubmVnYXRpdmU9Ty5uZWdhdGl2ZV5oZS5uZWdhdGl2''@;'; + put 'put ''ZTt2YXIgbmU9aGUubGVuZ3RoK08ubGVuZ3RofDA7ei5sZW5ndGg9bmUsbmU9bmUtMXwwO3ZhciB0ZT0wfGhlLndvcmRzWzBdLHg9MHxPLndvcmRzWzBdLFA9dGUqeCxUPVAvNjcxMDg4NjR8MDt6LndvcmRzWzBdPTY3MTA4ODYzJlA7Zm9yKHZhciBTPTE7UzxuZTtTKyspe2Zvcih2YXIgRj1U''@;'; + put 'put ''Pj4+MjYseWU9NjcxMDg4NjMmVCxDZT1NYXRoLm1pbihTLE8ubGVuZ3RoLTEpLERlPU1hdGgubWF4KDAsUy1oZS5sZW5ndGgrMSk7RGU8PUNlO0RlKyspRis9KFA9KHRlPTB8aGUud29yZHNbUy1EZXwwXSkqKHg9MHxPLndvcmRzW0RlXSkreWUpLzY3MTA4ODY0fDAseWU9NjcxMDg4NjMmUDt6''@;'; + put 'put ''LndvcmRzW1NdPTB8eWUsVD0wfEZ9cmV0dXJuIDAhPT1UP3oud29yZHNbU109MHxUOnoubGVuZ3RoLS0sei5zdHJpcCgpfVUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKE8seil7dmFyIG5lO2lmKHo9MHx6fHwxLDE2PT09KE89T3x8MTApfHwiaGV4Ij09PU8pe25lPSIiO2Zvcih2YXIg''@;'; + put 'put ''dGU9MCx4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLndvcmRzW1BdLFQ9KDE2Nzc3MjE1JihWPDx0ZXx4KSkudG9TdHJpbmcoMTYpO25lPTAhPSh4PVY+Pj4yNC10ZSYxNjc3NzIxNSl8fFAhPT10aGlzLmxlbmd0aC0xP1lbNi1ULmxlbmd0aF0rVCtuZTpUK25lLCh0ZSs9''@;'; + put 'put ''Mik+PTI2JiYodGUtPTI2LFAtLSl9Zm9yKDAhPT14JiYobmU9eC50b1N0cmluZygxNikrbmUpO25lLmxlbmd0aCV6IT0wOyluZT0iMCIrbmU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYobmU9Ii0iK25lKSxuZX1pZihPPT09KDB8TykmJk8+PTImJk88PTM2KXt2YXIgUz1XW09dLEY9TltP''@;'; + put 'put ''XTtuZT0iIjt2YXIgeWU9dGhpcy5jbG9uZSgpO2Zvcih5ZS5uZWdhdGl2ZT0wOyF5ZS5pc1plcm8oKTspe3ZhciBDZT15ZS5tb2RuKEYpLnRvU3RyaW5nKE8pO25lPSh5ZT15ZS5pZGl2bihGKSkuaXNaZXJvKCk/Q2UrbmU6WVtTLUNlLmxlbmd0aF0rQ2UrbmV9Zm9yKHRoaXMuaXNaZXJvKCkm''@;'; + put 'put ''JihuZT0iMCIrbmUpO25lLmxlbmd0aCV6IT0wOyluZT0iMCIrbmU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYobmU9Ii0iK25lKSxuZX1FKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LFUucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIE89dGhpcy53''@;'; + put 'put ''b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP08rPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9PKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmRSghMSwiTnVtYmVyIGNh''@;'; + put 'put ''biBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LU86T30sVS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxVLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihPLHope3JldHVybiBFKHZvaWQg''@;'; + put 'put ''MCE9PVEpLHRoaXMudG9BcnJheUxpa2UoUSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksTyx6KX0sVS5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9dGhpcy5ieXRlTGVuZ3Ro''@;'; + put 'put ''KCkseD1uZXx8TWF0aC5tYXgoMSx0ZSk7RSh0ZTw9eCwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLEUoeD4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIFQsUyxQPSJsZSI9PT16LFY9bmV3IE8oeCksRj10aGlzLmNsb25l''@;'; + put 'put ''KCk7aWYoUCl7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVltTXT1UO2Zvcig7Uzx4O1MrKylWW1NdPTB9ZWxzZXtmb3IoUz0wO1M8eC10ZTtTKyspVltTXT0wO2ZvcihTPTA7IUYuaXNaZXJvKCk7UysrKVQ9Ri5hbmRsbigyNTUpLEYuaXVzaHJu''@;'; + put 'put ''KDgpLFZbeC1TLTFdPVR9cmV0dXJuIFZ9LFUucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihPKXtyZXR1cm4gMzItTWF0aC5jbHozMihPKX06ZnVuY3Rpb24oTyl7dmFyIHo9TyxuZT0wO3JldHVybiB6Pj00MDk2JiYobmUrPTEzLHo+Pj49MTMpLHo+PTY0JiYobmUr''@;'; + put 'put ''PTcsej4+Pj03KSx6Pj04JiYobmUrPTQsej4+Pj00KSx6Pj0yJiYobmUrPTIsej4+Pj0yKSxuZSt6fSxVLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oTyl7aWYoMD09PU8pcmV0dXJuIDI2O3ZhciB6PU8sbmU9MDtyZXR1cm4gMD09KDgxOTEmeikmJihuZSs9MTMsej4+Pj0xMyksMD09''@;'; + put 'put ''KDEyNyZ6KSYmKG5lKz03LHo+Pj49NyksMD09KDE1JnopJiYobmUrPTQsej4+Pj00KSwwPT0oMyZ6KSYmKG5lKz0yLHo+Pj49MiksMD09KDEmeikmJm5lKyssbmV9LFUucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciB6PXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMu''@;'; + put 'put ''bGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK3p9LFUucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIE89MCx6PTA7ejx0aGlzLmxlbmd0aDt6Kyspe3ZhciBuZT10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRz''@;'; + put 'put ''W3pdKTtpZihPKz1uZSwyNiE9PW5lKWJyZWFrfXJldHVybiBPfSxVLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxVLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oTyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZl''@;'; + put 'put ''P3RoaXMuYWJzKCkuaW5vdG4oTykuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy50ZXN0bihPLTEpP3RoaXMubm90bihPKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5pc05lZz1mdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sVS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LFUucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LFUu''@;'; + put 'put ''cHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oTyl7Zm9yKDt0aGlzLmxlbmd0aDxPLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgej0wO3o8Ty5sZW5ndGg7eisrKXRoaXMud29yZHNbel09dGhpcy53b3Jkc1t6XXxPLndvcmRzW3pdO3JldHVybiB0aGlzLnN0cmlw''@;'; + put 'put ''KCl9LFUucHJvdG90eXBlLmlvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdW9yKE8pfSxVLnByb3RvdHlwZS5vcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihPKTpPLmNs''@;'; + put 'put ''b25lKCkuaW9yKHRoaXMpfSxVLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKE8pOk8uY2xvbmUoKS5pdW9yKHRoaXMpfSxVLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihPKXt2YXIgejt6PXRoaXMubGVuZ3Ro''@;'; + put 'put ''Pk8ubGVuZ3RoP086dGhpcztmb3IodmFyIG5lPTA7bmU8ei5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT10aGlzLndvcmRzW25lXSZPLndvcmRzW25lXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKE8pe3JldHVy''@;'; + put 'put ''biBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1YW5kKE8pfSxVLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKE8pOk8uY2xvbmUoKS5pYW5kKHRoaXMpfSxVLnByb3RvdHlwZS51YW5k''@;'; + put 'put ''PWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoTyk6Ty5jbG9uZSgpLml1YW5kKHRoaXMpfSxVLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihPKXt2YXIgeixuZTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8oej10aGlzLG5lPU8pOih6PU8s''@;'; + put 'put ''bmU9dGhpcyk7Zm9yKHZhciB0ZT0wO3RlPG5lLmxlbmd0aDt0ZSsrKXRoaXMud29yZHNbdGVdPXoud29yZHNbdGVdXm5lLndvcmRzW3RlXTtpZih0aGlzIT09eilmb3IoO3RlPHoubGVuZ3RoO3RlKyspdGhpcy53b3Jkc1t0ZV09ei53b3Jkc1t0ZV07cmV0dXJuIHRoaXMubGVuZ3RoPXoubGVu''@;'; + put 'put ''Z3RoLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihPKX0sVS5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNs''@;'; + put 'put ''b25lKCkuaXhvcihPKTpPLmNsb25lKCkuaXhvcih0aGlzKX0sVS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKE8pOk8uY2xvbmUoKS5pdXhvcih0aGlzKX0sVS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24o''@;'; + put 'put ''Tyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PTB8TWF0aC5jZWlsKE8vMjYpLG5lPU8lMjY7dGhpcy5fZXhwYW5kKHopLG5lPjAmJnotLTtmb3IodmFyIHRlPTA7dGU8ejt0ZSsrKXRoaXMud29yZHNbdGVdPTY3MTA4ODYzJn50aGlzLndvcmRzW3RlXTtyZXR1cm4gbmU+MCYm''@;'; + put 'put ''KHRoaXMud29yZHNbdGVdPX50aGlzLndvcmRzW3RlXSY2NzEwODg2Mz4+MjYtbmUpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUubm90bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKE8pfSxVLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKE8seil7RSgibnVtYmVyIj09''@;'; + put 'put ''dHlwZW9mIE8mJk8+PTApO3ZhciBuZT1PLzI2fDAsdGU9TyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKG5lKzEpLHRoaXMud29yZHNbbmVdPXo/dGhpcy53b3Jkc1tuZV18MTw8dGU6dGhpcy53b3Jkc1tuZV0mfigxPDx0ZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9u''@;'; + put 'put ''KE8pe3ZhciB6LG5lLHRlO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHo9dGhpcy5pc3ViKE8pLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0''@;'; + put 'put ''dXJuIE8ubmVnYXRpdmU9MCx6PXRoaXMuaXN1YihPKSxPLm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8obmU9dGhpcyx0ZT1PKToobmU9Tyx0ZT10aGlzKTtmb3IodmFyIHg9MCxQPTA7UDx0ZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09NjcxMDg4NjMm''@;'; + put 'put ''KHo9KDB8bmUud29yZHNbUF0pKygwfHRlLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtmb3IoOzAhPT14JiZQPG5lLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxuZS53b3Jkc1tQXSkreCkseD16Pj4+MjY7aWYodGhpcy5sZW5ndGg9bmUubGVuZ3RoLDAhPT14KXRoaXMu''@;'; + put 'put ''d29yZHNbdGhpcy5sZW5ndGhdPXgsdGhpcy5sZW5ndGgrKztlbHNlIGlmKG5lIT09dGhpcylmb3IoO1A8bmUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPW5lLndvcmRzW1BdO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oTyl7dmFyIHo7cmV0dXJuIDAhPT1PLm5lZ2F0''@;'; + put 'put ''aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oTy5uZWdhdGl2ZT0wLHo9dGhpcy5zdWIoTyksTy5uZWdhdGl2ZV49MSx6KTowPT09Ty5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCx6PU8uc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx6KTp0aGlzLmxlbmd0aD5P''@;'; + put 'put ''Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChPKTpPLmNsb25lKCkuaWFkZCh0aGlzKX0sVS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPKXtpZigwIT09Ty5uZWdhdGl2ZSl7Ty5uZWdhdGl2ZT0wO3ZhciB6PXRoaXMuaWFkZChPKTtyZXR1cm4gTy5uZWdhdGl2ZT0xLHouX25vcm1TaWduKCl9''@;'; + put 'put ''aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIHRlLHgsbmU9dGhpcy5jbXAoTyk7aWYoMD09PW5lKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlz''@;'; + put 'put ''LndvcmRzWzBdPTAsdGhpcztuZT4wPyh0ZT10aGlzLHg9Tyk6KHRlPU8seD10aGlzKTtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspUD0oej0oMHx0ZS53b3Jkc1tWXSktKDB8eC53b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtmb3IoOzAhPT1QJiZWPHRl''@;'; + put 'put ''Lmxlbmd0aDtWKyspUD0oej0oMHx0ZS53b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtpZigwPT09UCYmVjx0ZS5sZW5ndGgmJnRlIT09dGhpcylmb3IoO1Y8dGUubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXRlLndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1N''@;'; + put 'put ''YXRoLm1heCh0aGlzLmxlbmd0aCxWKSx0ZSE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihPKX07dmFyIEo9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgVCxTLEYsdGU9Ty53b3Jk''@;'; + put 'put ''cyx4PXoud29yZHMsUD1uZS53b3JkcyxWPTAseWU9MHx0ZVswXSxDZT04MTkxJnllLERlPXllPj4+MTMsUGU9MHx0ZVsxXSxRZT04MTkxJlBlLCRlPVBlPj4+MTMsZ3Q9MHx0ZVsyXSx3dD04MTkxJmd0LHZ0PWd0Pj4+MTMsQXQ9MHx0ZVszXSxtdD04MTkxJkF0LGh0PUF0Pj4+MTMsQnQ9MHx0''@;'; + put 'put ''ZVs0XSxvbj04MTkxJkJ0LF90PUJ0Pj4+MTMsdHQ9MHx0ZVs1XSxldD04MTkxJnR0LGF0PXR0Pj4+MTMsTHQ9MHx0ZVs2XSxDdD04MTkxJkx0LGZ0PUx0Pj4+MTMsSHQ9MHx0ZVs3XSxHZT04MTkxJkh0LFVlPUh0Pj4+MTMseXQ9MHx0ZVs4XSxqdD04MTkxJnl0LFF0PXl0Pj4+MTMsZ249MHx0''@;'; + put 'put ''ZVs5XSxkbj04MTkxJmduLHluPWduPj4+MTMsbG49MHx4WzBdLE5uPTgxOTEmbG4sYm49bG4+Pj4xMyxlcj0wfHhbMV0sc3I9ODE5MSZlcixYbj1lcj4+PjEzLEZyPTB8eFsyXSx4cj04MTkxJkZyLHF0PUZyPj4+MTMscHI9MHx4WzNdLG5yPTgxOTEmcHIsQW49cHI+Pj4xMyxxbj0wfHhbNF0s''@;'; + put 'put ''V3Q9ODE5MSZxbixwbj1xbj4+PjEzLEtuPTB8eFs1XSxOdD04MTkxJktuLHNuPUtuPj4+MTMsVW49MHx4WzZdLHduPTgxOTEmVW4sdG49VW4+Pj4xMyx6bj0wfHhbN10sVHI9ODE5MSZ6bixCbj16bj4+PjEzLGtyPTB8eFs4XSxtbj04MTkxJmtyLHVuPWtyPj4+MTMsY249MHx4WzldLF9uPTgx''@;'; + put 'put ''OTEmY24sR3Q9Y24+Pj4xMztuZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsbmUubGVuZ3RoPTE5O3ZhciBrbj0oVisoVD1NYXRoLmltdWwoQ2UsTm4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKENlLGJuKSkrTWF0aC5pbXVsKERlLE5uKXwwKSk8PDEzKXwwO1Y9KChGPU1h''@;'; + put 'put ''dGguaW11bChEZSxibikpKyhTPj4+MTMpfDApKyhrbj4+PjI2KXwwLGtuJj02NzEwODg2MyxUPU1hdGguaW11bChRZSxObiksUz0oUz1NYXRoLmltdWwoUWUsYm4pKStNYXRoLmltdWwoJGUsTm4pfDAsRj1NYXRoLmltdWwoJGUsYm4pO3ZhciBWbj0oVisoVD1UK01hdGguaW11bChDZSxzcil8''@;'; + put 'put ''MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLFhuKXwwKStNYXRoLmltdWwoRGUsc3IpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsWG4pfDApKyhTPj4+MTMpfDApKyhWbj4+PjI2KXwwLFZuJj02NzEwODg2MyxUPU1hdGguaW11bCh3dCxObiksUz0oUz1NYXRoLmlt''@;'; + put 'put ''dWwod3QsYm4pKStNYXRoLmltdWwodnQsTm4pfDAsRj1NYXRoLmltdWwodnQsYm4pLFQ9VCtNYXRoLmltdWwoUWUsc3IpfDAsUz0oUz1TK01hdGguaW11bChRZSxYbil8MCkrTWF0aC5pbXVsKCRlLHNyKXwwLEY9RitNYXRoLmltdWwoJGUsWG4pfDA7dmFyIGVuPShWKyhUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KENlLHhyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscXQpfDApK01hdGguaW11bChEZSx4cil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxxdCl8MCkrKFM+Pj4xMyl8MCkrKGVuPj4+MjYpfDAsZW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG10LE5uKSxTPShT''@;'; + put 'put ''PU1hdGguaW11bChtdCxibikpK01hdGguaW11bChodCxObil8MCxGPU1hdGguaW11bChodCxibiksVD1UK01hdGguaW11bCh3dCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LFhuKXwwKStNYXRoLmltdWwodnQsc3IpfDAsRj1GK01hdGguaW11bCh2dCxYbil8MCxUPVQrTWF0aC5pbXVsKFFl''@;'; + put 'put ''LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoUWUscXQpfDApK01hdGguaW11bCgkZSx4cil8MCxGPUYrTWF0aC5pbXVsKCRlLHF0KXwwO3ZhciBJbj0oVisoVD1UK01hdGguaW11bChDZSxucil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEFuKXwwKStNYXRoLmltdWwoRGUsbnIp''@;'; + put 'put ''fDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQW4pfDApKyhTPj4+MTMpfDApKyhJbj4+PjI2KXwwLEluJj02NzEwODg2MyxUPU1hdGguaW11bChvbixObiksUz0oUz1NYXRoLmltdWwob24sYm4pKStNYXRoLmltdWwoX3QsTm4pfDAsRj1NYXRoLmltdWwoX3QsYm4pLFQ9VCtNYXRo''@;'; + put 'put ''LmltdWwobXQsc3IpfDAsUz0oUz1TK01hdGguaW11bChtdCxYbil8MCkrTWF0aC5pbXVsKGh0LHNyKXwwLEY9RitNYXRoLmltdWwoaHQsWG4pfDAsVD1UK01hdGguaW11bCh3dCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHF0KXwwKStNYXRoLmltdWwodnQseHIpfDAsRj1GK01hdGguaW11''@;'; + put 'put ''bCh2dCxxdCl8MCxUPVQrTWF0aC5pbXVsKFFlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsQW4pfDApK01hdGguaW11bCgkZSxucil8MCxGPUYrTWF0aC5pbXVsKCRlLEFuKXwwO3ZhciBKbj0oVisoVD1UK01hdGguaW11bChDZSxXdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVs''@;'; + put 'put ''KENlLHBuKXwwKStNYXRoLmltdWwoRGUsV3QpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUscG4pfDApKyhTPj4+MTMpfDApKyhKbj4+PjI2KXwwLEpuJj02NzEwODg2MyxUPU1hdGguaW11bChldCxObiksUz0oUz1NYXRoLmltdWwoZXQsYm4pKStNYXRoLmltdWwoYXQsTm4pfDAs''@;'; + put 'put ''Rj1NYXRoLmltdWwoYXQsYm4pLFQ9VCtNYXRoLmltdWwob24sc3IpfDAsUz0oUz1TK01hdGguaW11bChvbixYbil8MCkrTWF0aC5pbXVsKF90LHNyKXwwLEY9RitNYXRoLmltdWwoX3QsWG4pfDAsVD1UK01hdGguaW11bChtdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKG10LHF0KXwwKStNYXRo''@;'; + put 'put ''LmltdWwoaHQseHIpfDAsRj1GK01hdGguaW11bChodCxxdCl8MCxUPVQrTWF0aC5pbXVsKHd0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwod3QsQW4pfDApK01hdGguaW11bCh2dCxucil8MCxGPUYrTWF0aC5pbXVsKHZ0LEFuKXwwLFQ9VCtNYXRoLmltdWwoUWUsV3QpfDAsUz0oUz1TK01hdGgu''@;'; + put 'put ''aW11bChRZSxwbil8MCkrTWF0aC5pbXVsKCRlLFd0KXwwLEY9RitNYXRoLmltdWwoJGUscG4pfDA7dmFyIG9yPShWKyhUPVQrTWF0aC5pbXVsKENlLE50KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2Usc24pfDApK01hdGguaW11bChEZSxOdCl8MCkpPDwxMyl8MDtWPSgoRj1G''@;'; + put 'put ''K01hdGguaW11bChEZSxzbil8MCkrKFM+Pj4xMyl8MCkrKG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEN0LE5uKSxTPShTPU1hdGguaW11bChDdCxibikpK01hdGguaW11bChmdCxObil8MCxGPU1hdGguaW11bChmdCxibiksVD1UK01hdGguaW11bChldCxzcil8MCxTPShT''@;'; + put 'put ''PVMrTWF0aC5pbXVsKGV0LFhuKXwwKStNYXRoLmltdWwoYXQsc3IpfDAsRj1GK01hdGguaW11bChhdCxYbil8MCxUPVQrTWF0aC5pbXVsKG9uLHhyKXwwLFM9KFM9UytNYXRoLmltdWwob24scXQpfDApK01hdGguaW11bChfdCx4cil8MCxGPUYrTWF0aC5pbXVsKF90LHF0KXwwLFQ9VCtNYXRo''@;'; + put 'put ''LmltdWwobXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChtdCxBbil8MCkrTWF0aC5pbXVsKGh0LG5yKXwwLEY9RitNYXRoLmltdWwoaHQsQW4pfDAsVD1UK01hdGguaW11bCh3dCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHBuKXwwKStNYXRoLmltdWwodnQsV3QpfDAsRj1GK01hdGguaW11''@;'; + put 'put ''bCh2dCxwbil8MCxUPVQrTWF0aC5pbXVsKFFlLE50KXwwLFM9KFM9UytNYXRoLmltdWwoUWUsc24pfDApK01hdGguaW11bCgkZSxOdCl8MCxGPUYrTWF0aC5pbXVsKCRlLHNuKXwwO3ZhciBncj0oVisoVD1UK01hdGguaW11bChDZSx3bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVs''@;'; + put 'put ''KENlLHRuKXwwKStNYXRoLmltdWwoRGUsd24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsdG4pfDApKyhTPj4+MTMpfDApKyhncj4+PjI2KXwwLGdyJj02NzEwODg2MyxUPU1hdGguaW11bChHZSxObiksUz0oUz1NYXRoLmltdWwoR2UsYm4pKStNYXRoLmltdWwoVWUsTm4pfDAs''@;'; + put 'put ''Rj1NYXRoLmltdWwoVWUsYm4pLFQ9VCtNYXRoLmltdWwoQ3Qsc3IpfDAsUz0oUz1TK01hdGguaW11bChDdCxYbil8MCkrTWF0aC5pbXVsKGZ0LHNyKXwwLEY9RitNYXRoLmltdWwoZnQsWG4pfDAsVD1UK01hdGguaW11bChldCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHF0KXwwKStNYXRo''@;'; + put 'put ''LmltdWwoYXQseHIpfDAsRj1GK01hdGguaW11bChhdCxxdCl8MCxUPVQrTWF0aC5pbXVsKG9uLG5yKXwwLFM9KFM9UytNYXRoLmltdWwob24sQW4pfDApK01hdGguaW11bChfdCxucil8MCxGPUYrTWF0aC5pbXVsKF90LEFuKXwwLFQ9VCtNYXRoLmltdWwobXQsV3QpfDAsUz0oUz1TK01hdGgu''@;'; + put 'put ''aW11bChtdCxwbil8MCkrTWF0aC5pbXVsKGh0LFd0KXwwLEY9RitNYXRoLmltdWwoaHQscG4pfDAsVD1UK01hdGguaW11bCh3dCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHNuKXwwKStNYXRoLmltdWwodnQsTnQpfDAsRj1GK01hdGguaW11bCh2dCxzbil8MCxUPVQrTWF0aC5pbXVsKFFl''@;'; + put 'put ''LHduKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdG4pfDApK01hdGguaW11bCgkZSx3bil8MCxGPUYrTWF0aC5pbXVsKCRlLHRuKXwwO3ZhciBLcj0oVisoVD1UK01hdGguaW11bChDZSxUcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEJuKXwwKStNYXRoLmltdWwoRGUsVHIp''@;'; + put 'put ''fDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQm4pfDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2MyxUPU1hdGguaW11bChqdCxObiksUz0oUz1NYXRoLmltdWwoanQsYm4pKStNYXRoLmltdWwoUXQsTm4pfDAsRj1NYXRoLmltdWwoUXQsYm4pLFQ9VCtNYXRo''@;'; + put 'put ''LmltdWwoR2Usc3IpfDAsUz0oUz1TK01hdGguaW11bChHZSxYbil8MCkrTWF0aC5pbXVsKFVlLHNyKXwwLEY9RitNYXRoLmltdWwoVWUsWG4pfDAsVD1UK01hdGguaW11bChDdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHF0KXwwKStNYXRoLmltdWwoZnQseHIpfDAsRj1GK01hdGguaW11''@;'; + put 'put ''bChmdCxxdCl8MCxUPVQrTWF0aC5pbXVsKGV0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQW4pfDApK01hdGguaW11bChhdCxucil8MCxGPUYrTWF0aC5pbXVsKGF0LEFuKXwwLFQ9VCtNYXRoLmltdWwob24sV3QpfDAsUz0oUz1TK01hdGguaW11bChvbixwbil8MCkrTWF0aC5pbXVsKF90''@;'; + put 'put ''LFd0KXwwLEY9RitNYXRoLmltdWwoX3QscG4pfDAsVD1UK01hdGguaW11bChtdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LHNuKXwwKStNYXRoLmltdWwoaHQsTnQpfDAsRj1GK01hdGguaW11bChodCxzbil8MCxUPVQrTWF0aC5pbXVsKHd0LHduKXwwLFM9KFM9UytNYXRoLmltdWwod3Qs''@;'; + put 'put ''dG4pfDApK01hdGguaW11bCh2dCx3bil8MCxGPUYrTWF0aC5pbXVsKHZ0LHRuKXwwLFQ9VCtNYXRoLmltdWwoUWUsVHIpfDAsUz0oUz1TK01hdGguaW11bChRZSxCbil8MCkrTWF0aC5pbXVsKCRlLFRyKXwwLEY9RitNYXRoLmltdWwoJGUsQm4pfDA7dmFyIFZyPShWKyhUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KENlLG1uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdW4pfDApK01hdGguaW11bChEZSxtbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx1bil8MCkrKFM+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE5uKSxTPShT''@;'; + put 'put ''PU1hdGguaW11bChkbixibikpK01hdGguaW11bCh5bixObil8MCxGPU1hdGguaW11bCh5bixibiksVD1UK01hdGguaW11bChqdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LFhuKXwwKStNYXRoLmltdWwoUXQsc3IpfDAsRj1GK01hdGguaW11bChRdCxYbil8MCxUPVQrTWF0aC5pbXVsKEdl''@;'; + put 'put ''LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UscXQpfDApK01hdGguaW11bChVZSx4cil8MCxGPUYrTWF0aC5pbXVsKFVlLHF0KXwwLFQ9VCtNYXRoLmltdWwoQ3QsbnIpfDAsUz0oUz1TK01hdGguaW11bChDdCxBbil8MCkrTWF0aC5pbXVsKGZ0LG5yKXwwLEY9RitNYXRoLmltdWwoZnQsQW4p''@;'; + put 'put ''fDAsVD1UK01hdGguaW11bChldCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHBuKXwwKStNYXRoLmltdWwoYXQsV3QpfDAsRj1GK01hdGguaW11bChhdCxwbil8MCxUPVQrTWF0aC5pbXVsKG9uLE50KXwwLFM9KFM9UytNYXRoLmltdWwob24sc24pfDApK01hdGguaW11bChfdCxOdCl8MCxG''@;'; + put 'put ''PUYrTWF0aC5pbXVsKF90LHNuKXwwLFQ9VCtNYXRoLmltdWwobXQsd24pfDAsUz0oUz1TK01hdGguaW11bChtdCx0bil8MCkrTWF0aC5pbXVsKGh0LHduKXwwLEY9RitNYXRoLmltdWwoaHQsdG4pfDAsVD1UK01hdGguaW11bCh3dCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LEJuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwodnQsVHIpfDAsRj1GK01hdGguaW11bCh2dCxCbil8MCxUPVQrTWF0aC5pbXVsKFFlLG1uKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdW4pfDApK01hdGguaW11bCgkZSxtbil8MCxGPUYrTWF0aC5pbXVsKCRlLHVuKXwwO3ZhciBpaT0oVisoVD1UK01hdGguaW11bChDZSxfbil8''@;'; + put 'put ''MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEd0KXwwKStNYXRoLmltdWwoRGUsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsR3QpfDApKyhTPj4+MTMpfDApKyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChkbixzciksUz0oUz1NYXRoLmlt''@;'; + put 'put ''dWwoZG4sWG4pKStNYXRoLmltdWwoeW4sc3IpfDAsRj1NYXRoLmltdWwoeW4sWG4pLFQ9VCtNYXRoLmltdWwoanQseHIpfDAsUz0oUz1TK01hdGguaW11bChqdCxxdCl8MCkrTWF0aC5pbXVsKFF0LHhyKXwwLEY9RitNYXRoLmltdWwoUXQscXQpfDAsVD1UK01hdGguaW11bChHZSxucil8MCxT''@;'; + put 'put ''PShTPVMrTWF0aC5pbXVsKEdlLEFuKXwwKStNYXRoLmltdWwoVWUsbnIpfDAsRj1GK01hdGguaW11bChVZSxBbil8MCxUPVQrTWF0aC5pbXVsKEN0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscG4pfDApK01hdGguaW11bChmdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGZ0LHBuKXwwLFQ9VCtN''@;'; + put 'put ''YXRoLmltdWwoZXQsTnQpfDAsUz0oUz1TK01hdGguaW11bChldCxzbil8MCkrTWF0aC5pbXVsKGF0LE50KXwwLEY9RitNYXRoLmltdWwoYXQsc24pfDAsVD1UK01hdGguaW11bChvbix3bil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHRuKXwwKStNYXRoLmltdWwoX3Qsd24pfDAsRj1GK01hdGgu''@;'; + put 'put ''aW11bChfdCx0bil8MCxUPVQrTWF0aC5pbXVsKG10LFRyKXwwLFM9KFM9UytNYXRoLmltdWwobXQsQm4pfDApK01hdGguaW11bChodCxUcil8MCxGPUYrTWF0aC5pbXVsKGh0LEJuKXwwLFQ9VCtNYXRoLmltdWwod3QsbW4pfDAsUz0oUz1TK01hdGguaW11bCh3dCx1bil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KHZ0LG1uKXwwLEY9RitNYXRoLmltdWwodnQsdW4pfDA7dmFyIFJyPShWKyhUPVQrTWF0aC5pbXVsKFFlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUWUsR3QpfDApK01hdGguaW11bCgkZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bCgkZSxHdCl8MCkrKFM+''@;'; + put 'put ''Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHhyKSxTPShTPU1hdGguaW11bChkbixxdCkpK01hdGguaW11bCh5bix4cil8MCxGPU1hdGguaW11bCh5bixxdCksVD1UK01hdGguaW11bChqdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEFuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoUXQsbnIpfDAsRj1GK01hdGguaW11bChRdCxBbil8MCxUPVQrTWF0aC5pbXVsKEdlLFd0KXwwLFM9KFM9UytNYXRoLmltdWwoR2UscG4pfDApK01hdGguaW11bChVZSxXdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHBuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsTnQpfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bChDdCxzbil8MCkrTWF0aC5pbXVsKGZ0LE50KXwwLEY9RitNYXRoLmltdWwoZnQsc24pfDAsVD1UK01hdGguaW11bChldCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHRuKXwwKStNYXRoLmltdWwoYXQsd24pfDAsRj1GK01hdGguaW11bChhdCx0bil8MCxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KG9uLFRyKXwwLFM9KFM9UytNYXRoLmltdWwob24sQm4pfDApK01hdGguaW11bChfdCxUcil8MCxGPUYrTWF0aC5pbXVsKF90LEJuKXwwLFQ9VCtNYXRoLmltdWwobXQsbW4pfDAsUz0oUz1TK01hdGguaW11bChtdCx1bil8MCkrTWF0aC5pbXVsKGh0LG1uKXwwLEY9RitNYXRoLmltdWwoaHQs''@;'; + put 'put ''dW4pfDA7dmFyIGxpPShWKyhUPVQrTWF0aC5pbXVsKHd0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwod3QsR3QpfDApK01hdGguaW11bCh2dCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bCh2dCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3''@;'; + put 'put ''MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG5yKSxTPShTPU1hdGguaW11bChkbixBbikpK01hdGguaW11bCh5bixucil8MCxGPU1hdGguaW11bCh5bixBbiksVD1UK01hdGguaW11bChqdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHBuKXwwKStNYXRoLmltdWwoUXQsV3QpfDAsRj1GK01hdGgu''@;'; + put 'put ''aW11bChRdCxwbil8MCxUPVQrTWF0aC5pbXVsKEdlLE50KXwwLFM9KFM9UytNYXRoLmltdWwoR2Usc24pfDApK01hdGguaW11bChVZSxOdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHNuKXwwLFQ9VCtNYXRoLmltdWwoQ3Qsd24pfDAsUz0oUz1TK01hdGguaW11bChDdCx0bil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KGZ0LHduKXwwLEY9RitNYXRoLmltdWwoZnQsdG4pfDAsVD1UK01hdGguaW11bChldCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LEJuKXwwKStNYXRoLmltdWwoYXQsVHIpfDAsRj1GK01hdGguaW11bChhdCxCbil8MCxUPVQrTWF0aC5pbXVsKG9uLG1uKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; + put 'put ''b24sdW4pfDApK01hdGguaW11bChfdCxtbil8MCxGPUYrTWF0aC5pbXVsKF90LHVuKXwwO3ZhciBNaT0oVisoVD1UK01hdGguaW11bChtdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKG10LEd0KXwwKStNYXRoLmltdWwoaHQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRo''@;'; + put 'put ''LmltdWwoaHQsR3QpfDApKyhTPj4+MTMpfDApKyhNaT4+PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChkbixXdCksUz0oUz1NYXRoLmltdWwoZG4scG4pKStNYXRoLmltdWwoeW4sV3QpfDAsRj1NYXRoLmltdWwoeW4scG4pLFQ9VCtNYXRoLmltdWwoanQsTnQpfDAsUz0oUz1TK01h''@;'; + put 'put ''dGguaW11bChqdCxzbil8MCkrTWF0aC5pbXVsKFF0LE50KXwwLEY9RitNYXRoLmltdWwoUXQsc24pfDAsVD1UK01hdGguaW11bChHZSx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHRuKXwwKStNYXRoLmltdWwoVWUsd24pfDAsRj1GK01hdGguaW11bChVZSx0bil8MCxUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KEN0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsQm4pfDApK01hdGguaW11bChmdCxUcil8MCxGPUYrTWF0aC5pbXVsKGZ0LEJuKXwwLFQ9VCtNYXRoLmltdWwoZXQsbW4pfDAsUz0oUz1TK01hdGguaW11bChldCx1bil8MCkrTWF0aC5pbXVsKGF0LG1uKXwwLEY9RitNYXRoLmltdWwoYXQs''@;'; + put 'put ''dW4pfDA7dmFyIG8wPShWKyhUPVQrTWF0aC5pbXVsKG9uLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwob24sR3QpfDApK01hdGguaW11bChfdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChfdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3''@;'; + put 'put ''MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE50KSxTPShTPU1hdGguaW11bChkbixzbikpK01hdGguaW11bCh5bixOdCl8MCxGPU1hdGguaW11bCh5bixzbiksVD1UK01hdGguaW11bChqdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHRuKXwwKStNYXRoLmltdWwoUXQsd24pfDAsRj1GK01hdGgu''@;'; + put 'put ''aW11bChRdCx0bil8MCxUPVQrTWF0aC5pbXVsKEdlLFRyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQm4pfDApK01hdGguaW11bChVZSxUcil8MCxGPUYrTWF0aC5pbXVsKFVlLEJuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsbW4pfDAsUz0oUz1TK01hdGguaW11bChDdCx1bil8MCkrTWF0aC5pbXVs''@;'; + put 'put ''KGZ0LG1uKXwwLEY9RitNYXRoLmltdWwoZnQsdW4pfDA7dmFyIG4wPShWKyhUPVQrTWF0aC5pbXVsKGV0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoZXQsR3QpfDApK01hdGguaW11bChhdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChhdCxHdCl8MCkrKFM+''@;'; + put 'put ''Pj4xMyl8MCkrKG4wPj4+MjYpfDAsbjAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHduKSxTPShTPU1hdGguaW11bChkbix0bikpK01hdGguaW11bCh5bix3bil8MCxGPU1hdGguaW11bCh5bix0biksVD1UK01hdGguaW11bChqdCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEJuKXwwKStN''@;'; + put 'put ''YXRoLmltdWwoUXQsVHIpfDAsRj1GK01hdGguaW11bChRdCxCbil8MCxUPVQrTWF0aC5pbXVsKEdlLG1uKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsdW4pfDApK01hdGguaW11bChVZSxtbil8MCxGPUYrTWF0aC5pbXVsKFVlLHVuKXwwO3ZhciBkMD0oVisoVD1UK01hdGguaW11bChDdCxfbil8''@;'; + put 'put ''MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEN0LEd0KXwwKStNYXRoLmltdWwoZnQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoZnQsR3QpfDApKyhTPj4+MTMpfDApKyhkMD4+PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChkbixUciksUz0oUz1NYXRoLmlt''@;'; + put 'put ''dWwoZG4sQm4pKStNYXRoLmltdWwoeW4sVHIpfDAsRj1NYXRoLmltdWwoeW4sQm4pLFQ9VCtNYXRoLmltdWwoanQsbW4pfDAsUz0oUz1TK01hdGguaW11bChqdCx1bil8MCkrTWF0aC5pbXVsKFF0LG1uKXwwLEY9RitNYXRoLmltdWwoUXQsdW4pfDA7dmFyIG0wPShWKyhUPVQrTWF0aC5pbXVs''@;'; + put 'put ''KEdlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoR2UsR3QpfDApK01hdGguaW11bChVZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChVZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG1uKSxTPShT''@;'; + put 'put ''PU1hdGguaW11bChkbix1bikpK01hdGguaW11bCh5bixtbil8MCxGPU1hdGguaW11bCh5bix1bik7dmFyIEcwPShWKyhUPVQrTWF0aC5pbXVsKGp0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoanQsR3QpfDApK01hdGguaW11bChRdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1G''@;'; + put 'put ''K01hdGguaW11bChRdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKEcwPj4+MjYpfDAsRzAmPTY3MTA4ODYzO3ZhciBEaT0oVisoVD1NYXRoLmltdWwoZG4sX24pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKGRuLEd0KSkrTWF0aC5pbXVsKHluLF9uKXwwKSk8PDEzKXwwO3JldHVybiBWPSgoRj1N''@;'; + put 'put ''YXRoLmltdWwoeW4sR3QpKSsoUz4+PjEzKXwwKSsoRGk+Pj4yNil8MCxEaSY9NjcxMDg4NjMsUFswXT1rbixQWzFdPVZuLFBbMl09ZW4sUFszXT1JbixQWzRdPUpuLFBbNV09b3IsUFs2XT1ncixQWzddPUtyLFBbOF09VnIsUFs5XT1paSxQWzEwXT1ScixQWzExXT1saSxQWzEyXT1NaSxQWzEz''@;'; + put 'put ''XT1vMCxQWzE0XT1uMCxQWzE1XT1kMCxQWzE2XT1tMCxQWzE3XT1HMCxQWzE4XT1EaSwwIT09ViYmKFBbMTldPVYsbmUubGVuZ3RoKyspLG5lfTtmdW5jdGlvbiBvZShoZSxPLHope3JldHVybihuZXcgY2UpLm11bHAoaGUsTyx6KX1mdW5jdGlvbiBjZShoZSxPKXt0aGlzLng9aGUsdGhpcy55''@;'; + put 'put ''PU99TWF0aC5pbXVsfHwoSj1xKSxVLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbihPLHope3ZhciBuZSx0ZT10aGlzLmxlbmd0aCtPLmxlbmd0aDtyZXR1cm4gbmU9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1PLmxlbmd0aD9KKHRoaXMsTyx6KTp0ZTw2Mz9xKHRoaXMsTyx6KTp0ZTwxMDI0P2Z1''@;'; + put 'put ''bmN0aW9uIHNlKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlLHoubGVuZ3RoPWhlLmxlbmd0aCtPLmxlbmd0aDtmb3IodmFyIG5lPTAsdGU9MCx4PTA7eDx6Lmxlbmd0aC0xO3grKyl7dmFyIFA9dGU7dGU9MDtmb3IodmFyIFY9NjcxMDg4NjMmbmUsVD1NYXRoLm1p''@;'; + put 'put ''bih4LE8ubGVuZ3RoLTEpLFM9TWF0aC5tYXgoMCx4LWhlLmxlbmd0aCsxKTtTPD1UO1MrKyl7dmFyIERlPSgwfGhlLndvcmRzW3gtU10pKigwfE8ud29yZHNbU10pLFBlPTY3MTA4ODYzJkRlO1Y9NjcxMDg4NjMmKFBlPVBlK1Z8MCksdGUrPShQPShQPVArKERlLzY3MTA4ODY0fDApfDApKyhQ''@;'; + put 'put ''ZT4+PjI2KXwwKT4+PjI2LFAmPTY3MTA4ODYzfXoud29yZHNbeF09VixuZT1QLFA9dGV9cmV0dXJuIDAhPT1uZT96LndvcmRzW3hdPW5lOnoubGVuZ3RoLS0sei5zdHJpcCgpfSh0aGlzLE8seik6b2UodGhpcyxPLHopLG5lfSxjZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihPKXtmb3Io''@;'; + put 'put ''dmFyIHo9bmV3IEFycmF5KE8pLG5lPVUucHJvdG90eXBlLl9jb3VudEJpdHMoTyktMSx0ZT0wO3RlPE87dGUrKyl6W3RlXT10aGlzLnJldkJpbih0ZSxuZSxPKTtyZXR1cm4gen0sY2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihPLHosbmUpe2lmKDA9PT1PfHxPPT09bmUtMSlyZXR1cm4g''@;'; + put 'put ''Tztmb3IodmFyIHRlPTAseD0wO3g8ejt4KyspdGV8PSgxJk8pPDx6LXgtMSxPPj49MTtyZXR1cm4gdGV9LGNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFApe2Zvcih2YXIgVj0wO1Y8UDtWKyspdGVbVl09eltPW1ZdXSx4W1ZdPW5lW09bVl1dfSxjZS5wcm90b3R5''@;'; + put 'put ''cGUudHJhbnNmb3JtPWZ1bmN0aW9uKE8seixuZSx0ZSx4LFApe3RoaXMucGVybXV0ZShQLE8seixuZSx0ZSx4KTtmb3IodmFyIFY9MTtWPHg7Vjw8PTEpZm9yKHZhciBUPVY8PDEsUz1NYXRoLmNvcygyKk1hdGguUEkvVCksRj1NYXRoLnNpbigyKk1hdGguUEkvVCkseWU9MDt5ZTx4O3llKz1U''@;'; + put 'put ''KWZvcih2YXIgQ2U9UyxEZT1GLFBlPTA7UGU8VjtQZSsrKXt2YXIgUWU9bmVbeWUrUGVdLCRlPXRlW3llK1BlXSxndD1uZVt5ZStQZStWXSx3dD10ZVt5ZStQZStWXSx2dD1DZSpndC1EZSp3dDt3dD1DZSp3dCtEZSpndCxuZVt5ZStQZV09UWUrKGd0PXZ0KSx0ZVt5ZStQZV09JGUrd3QsbmVb''@;'; + put 'put ''eWUrUGUrVl09UWUtZ3QsdGVbeWUrUGUrVl09JGUtd3QsUGUhPT1UJiYodnQ9UypDZS1GKkRlLERlPVMqRGUrRipDZSxDZT12dCl9fSxjZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oTyx6KXt2YXIgbmU9MXxNYXRoLm1heCh6LE8pLHRlPTEmbmUseD0wO2ZvcihuZT1uZS8yfDA7''@;'; + put 'put ''bmU7bmU+Pj49MSl4Kys7cmV0dXJuIDE8PHgrMSt0ZX0sY2UucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihPLHosbmUpe2lmKCEobmU8PTEpKWZvcih2YXIgdGU9MDt0ZTxuZS8yO3RlKyspe3ZhciB4PU9bdGVdO09bdGVdPU9bbmUtdGUtMV0sT1tuZS10ZS0xXT14LHg9elt0ZV0selt0''@;'; + put 'put ''ZV09LXpbbmUtdGUtMV0seltuZS10ZS0xXT0teH19LGNlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oTyx6KXtmb3IodmFyIG5lPTAsdGU9MDt0ZTx6LzI7dGUrKyl7dmFyIHg9ODE5MipNYXRoLnJvdW5kKE9bMip0ZSsxXS96KStNYXRoLnJvdW5kKE9bMip0ZV0veikrbmU7T1t0''@;'; + put 'put ''ZV09NjcxMDg4NjMmeCxuZT14PDY3MTA4ODY0PzA6eC82NzEwODg2NHwwfXJldHVybiBPfSxjZS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbihPLHosbmUsdGUpe2Zvcih2YXIgeD0wLFA9MDtQPHo7UCsrKW5lWzIqUF09ODE5MSYoeCs9MHxPW1BdKSxuZVsyKlArMV09ODE5MSYoeD4+''@;'; + put 'put ''Pj0xMykseD4+Pj0xMztmb3IoUD0yKno7UDx0ZTsrK1ApbmVbUF09MDtFKDA9PT14KSxFKDA9PSgtODE5MiZ4KSl9LGNlLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksbmU9MDtuZTxPO25lKyspeltuZV09MDtyZXR1cm4gen0sY2UucHJvdG90eXBl''@;'; + put 'put ''Lm11bHA9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9Mip0aGlzLmd1ZXNzTGVuMTNiKE8ubGVuZ3RoLHoubGVuZ3RoKSx4PXRoaXMubWFrZVJCVCh0ZSksUD10aGlzLnN0dWIodGUpLFY9bmV3IEFycmF5KHRlKSxUPW5ldyBBcnJheSh0ZSksUz1uZXcgQXJyYXkodGUpLEY9bmV3IEFycmF5KHRl''@;'; + put 'put ''KSx5ZT1uZXcgQXJyYXkodGUpLENlPW5ldyBBcnJheSh0ZSksRGU9bmUud29yZHM7RGUubGVuZ3RoPXRlLHRoaXMuY29udmVydDEzYihPLndvcmRzLE8ubGVuZ3RoLFYsdGUpLHRoaXMuY29udmVydDEzYih6LndvcmRzLHoubGVuZ3RoLEYsdGUpLHRoaXMudHJhbnNmb3JtKFYsUCxULFMsdGUs''@;'; + put 'put ''eCksdGhpcy50cmFuc2Zvcm0oRixQLHllLENlLHRlLHgpO2Zvcih2YXIgUGU9MDtQZTx0ZTtQZSsrKXt2YXIgUWU9VFtQZV0qeWVbUGVdLVNbUGVdKkNlW1BlXTtTW1BlXT1UW1BlXSpDZVtQZV0rU1tQZV0qeWVbUGVdLFRbUGVdPVFlfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShULFMsdGUpLHRo''@;'; + put 'put ''aXMudHJhbnNmb3JtKFQsUyxEZSxQLHRlLHgpLHRoaXMuY29uanVnYXRlKERlLFAsdGUpLHRoaXMubm9ybWFsaXplMTNiKERlLHRlKSxuZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsbmUubGVuZ3RoPU8ubGVuZ3RoK3oubGVuZ3RoLG5lLnN0cmlwKCl9LFUucHJvdG90eXBlLm11''@;'; + put 'put ''bD1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLHRoaXMubXVsVG8oTyx6KX0sVS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJy''@;'; + put 'put ''YXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLG9lKHRoaXMsTyx6KX0sVS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKE8sdGhpcyl9LFUucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4''@;'; + put 'put ''NjQpO2Zvcih2YXIgej0wLG5lPTA7bmU8dGhpcy5sZW5ndGg7bmUrKyl7dmFyIHRlPSgwfHRoaXMud29yZHNbbmVdKSpPLHg9KDY3MTA4ODYzJnRlKSsoNjcxMDg4NjMmeik7ej4+PTI2LHorPXRlLzY3MTA4ODY0fDAseis9eD4+PjI2LHRoaXMud29yZHNbbmVdPTY3MTA4ODYzJnh9cmV0dXJu''@;'; + put 'put ''IDAhPT16JiYodGhpcy53b3Jkc1tuZV09eix0aGlzLmxlbmd0aCsrKSx0aGlzfSxVLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oTyl9LFUucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sVS5wcm90b3R5''@;'; + put 'put ''cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sVS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKE8pe3ZhciB6PWZ1bmN0aW9uIGVlKGhlKXtmb3IodmFyIE89bmV3IEFycmF5KGhlLmJpdExlbmd0aCgpKSx6PTA7ejxPLmxlbmd0aDt6Kyspe3ZhciB0ZT16''@;'; + put 'put ''JTI2O09bel09KGhlLndvcmRzW3ovMjZ8MF0mMTw8dGUpPj4+dGV9cmV0dXJuIE99KE8pO2lmKDA9PT16Lmxlbmd0aClyZXR1cm4gbmV3IFUoMSk7Zm9yKHZhciBuZT10aGlzLHRlPTA7dGU8ei5sZW5ndGgmJjA9PT16W3RlXTt0ZSsrLG5lPW5lLnNxcigpKTtpZigrK3RlPHoubGVuZ3RoKWZv''@;'; + put 'put ''cih2YXIgeD1uZS5zcXIoKTt0ZTx6Lmxlbmd0aDt0ZSsrLHg9eC5zcXIoKSkwIT09elt0ZV0mJihuZT1uZS5tdWwoeCkpO3JldHVybiBuZX0sVS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgeCx6PU8lMjYsbmU9KE8teikvMjYs''@;'; + put 'put ''dGU9NjcxMDg4NjM+Pj4yNi16PDwyNi16O2lmKDAhPT16KXt2YXIgUD0wO2Zvcih4PTA7eDx0aGlzLmxlbmd0aDt4Kyspe3ZhciBWPXRoaXMud29yZHNbeF0mdGU7dGhpcy53b3Jkc1t4XT0oMHx0aGlzLndvcmRzW3hdKS1WPDx6fFAsUD1WPj4+MjYten1QJiYodGhpcy53b3Jkc1t4XT1QLHRo''@;'; + put 'put ''aXMubGVuZ3RoKyspfWlmKDAhPT1uZSl7Zm9yKHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl0aGlzLndvcmRzW3grbmVdPXRoaXMud29yZHNbeF07Zm9yKHg9MDt4PG5lO3grKyl0aGlzLndvcmRzW3hdPTA7dGhpcy5sZW5ndGgrPW5lfXJldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBl''@;'; + put 'put ''LmlzaGxuPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihPKX0sVS5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKE8seixuZSl7dmFyIHRlO0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKSx0ZT16Pyh6LXolMjYpLzI2OjA7dmFyIHg9TyUyNixQ''@;'; + put 'put ''PU1hdGgubWluKChPLXgpLzI2LHRoaXMubGVuZ3RoKSxWPTY3MTA4ODYzXjY3MTA4ODYzPj4+eDw8eCxUPW5lO2lmKHRlLT1QLHRlPU1hdGgubWF4KDAsdGUpLFQpe2Zvcih2YXIgUz0wO1M8UDtTKyspVC53b3Jkc1tTXT10aGlzLndvcmRzW1NdO1QubGVuZ3RoPVB9aWYoMCE9PVApaWYodGhp''@;'; + put 'put ''cy5sZW5ndGg+UClmb3IodGhpcy5sZW5ndGgtPVAsUz0wO1M8dGhpcy5sZW5ndGg7UysrKXRoaXMud29yZHNbU109dGhpcy53b3Jkc1tTK1BdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIEY9MDtmb3IoUz10aGlzLmxlbmd0aC0xO1M+PTAmJigwIT09Rnx8Uz49dGUp''@;'; + put 'put ''O1MtLSl7dmFyIHllPTB8dGhpcy53b3Jkc1tTXTt0aGlzLndvcmRzW1NdPUY8PDI2LXh8eWU+Pj54LEY9eWUmVn1yZXR1cm4gVCYmMCE9PUYmJihULndvcmRzW1QubGVuZ3RoKytdPUYpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlw''@;'; + put 'put ''KCl9LFUucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKE8seixuZSl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKE8seixuZSl9LFUucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihPKX0sVS5wcm90b3R5cGUudXNobG49''@;'; + put 'put ''ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oTyl9LFUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihPKX0sVS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oTyl9LFUu''@;'; + put 'put ''cHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LG5lPShPLXopLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PW5lfHwhKHRoaXMud29yZHNbbmVdJjE8PHopKX0sVS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKE8pe0UoIm51''@;'; + put 'put ''bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LG5lPShPLXopLzI2O3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9bmU/dGhpczooMCE9PXomJm5lKyssdGhpcy5sZW5ndGg9TWF0''@;'; + put 'put ''aC5taW4obmUsdGhpcy5sZW5ndGgpLDAhPT16JiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj56PDx6KSx0aGlzLnN0cmlwKCkpfSxVLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihPKX0sVS5wcm90''@;'; + put 'put ''b3R5cGUuaWFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MD90aGlzLmlzdWJuKC1PKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPE8/KHRoaXMud29yZHNbMF09Ty0oMHx0aGlz''@;'; + put 'put ''LndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihPKX0sVS5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKE8pe3RoaXMud29yZHNbMF0rPU87Zm9yKHZhciB6PTA7ejx0''@;'; + put 'put ''aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t6XT49NjcxMDg4NjQ7eisrKXRoaXMud29yZHNbel0tPTY3MTA4ODY0LHo9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbeisxXT0xOnRoaXMud29yZHNbeisxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx6KzEpLHRo''@;'; + put 'put ''aXN9LFUucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKE8pe2lmKEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MClyZXR1cm4gdGhpcy5pYWRkbigtTyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKE8pLHRoaXMubmVn''@;'; + put 'put ''YXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPU8sMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPDA7eisrKXRo''@;'; + put 'put ''aXMud29yZHNbel0rPTY3MTA4ODY0LHRoaXMud29yZHNbeisxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oTyl9LFUucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xv''@;'; + put 'put ''bmUoKS5pc3VibihPKX0sVS5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sVS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LFUucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihPLHos''@;'; + put 'put ''bmUpe3ZhciB4O3RoaXMuX2V4cGFuZChPLmxlbmd0aCtuZSk7dmFyIFAsVj0wO2Zvcih4PTA7eDxPLmxlbmd0aDt4Kyspe1A9KDB8dGhpcy53b3Jkc1t4K25lXSkrVjt2YXIgVD0oMHxPLndvcmRzW3hdKSp6O1Y9KChQLT02NzEwODg2MyZUKT4+MjYpLShULzY3MTA4ODY0fDApLHRoaXMud29y''@;'; + put 'put ''ZHNbeCtuZV09NjcxMDg4NjMmUH1mb3IoO3g8dGhpcy5sZW5ndGgtbmU7eCsrKVY9KFA9KDB8dGhpcy53b3Jkc1t4K25lXSkrVik+PjI2LHRoaXMud29yZHNbeCtuZV09NjcxMDg4NjMmUDtpZigwPT09VilyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihFKC0xPT09ViksVj0wLHg9MDt4PHRoaXMu''@;'; + put 'put ''bGVuZ3RoO3grKylWPShQPS0oMHx0aGlzLndvcmRzW3hdKStWKT4+MjYsdGhpcy53b3Jkc1t4XT02NzEwODg2MyZQO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihPLHope3ZhciBuZSx0ZT10aGlzLmNsb25lKCkseD1P''@;'; + put 'put ''LFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdOzAhPShuZT0yNi10aGlzLl9jb3VudEJpdHMoUCkpJiYoeD14LnVzaGxuKG5lKSx0ZS5pdXNobG4obmUpLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdKTt2YXIgUyxUPXRlLmxlbmd0aC14Lmxlbmd0aDtpZigibW9kIiE9PXopeyhTPW5ldyBVKG51bGwp''@;'; + put 'put ''KS5sZW5ndGg9VCsxLFMud29yZHM9bmV3IEFycmF5KFMubGVuZ3RoKTtmb3IodmFyIEY9MDtGPFMubGVuZ3RoO0YrKylTLndvcmRzW0ZdPTB9dmFyIHllPXRlLmNsb25lKCkuX2lzaGxuc3VibXVsKHgsMSxUKTswPT09eWUubmVnYXRpdmUmJih0ZT15ZSxTJiYoUy53b3Jkc1tUXT0xKSk7Zm9y''@;'; + put 'put ''KHZhciBDZT1ULTE7Q2U+PTA7Q2UtLSl7dmFyIERlPTY3MTA4ODY0KigwfHRlLndvcmRzW3gubGVuZ3RoK0NlXSkrKDB8dGUud29yZHNbeC5sZW5ndGgrQ2UtMV0pO2ZvcihEZT1NYXRoLm1pbihEZS9QfDAsNjcxMDg4NjMpLHRlLl9pc2hsbnN1Ym11bCh4LERlLENlKTswIT09dGUubmVnYXRp''@;'; + put 'put ''dmU7KURlLS0sdGUubmVnYXRpdmU9MCx0ZS5faXNobG5zdWJtdWwoeCwxLENlKSx0ZS5pc1plcm8oKXx8KHRlLm5lZ2F0aXZlXj0xKTtTJiYoUy53b3Jkc1tDZV09RGUpfXJldHVybiBTJiZTLnN0cmlwKCksdGUuc3RyaXAoKSwiZGl2IiE9PXomJjAhPT1uZSYmdGUuaXVzaHJuKG5lKSx7ZGl2''@;'; + put 'put ''OlN8fG51bGwsbW9kOnRlfX0sVS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKE8seixuZSl7cmV0dXJuIEUoIU8uaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgVSgwKSxtb2Q6bmV3IFUoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZT8oUD10aGlzLm5lZygp''@;'; + put 'put ''LmRpdm1vZChPLHopLCJtb2QiIT09eiYmKHRlPVAuZGl2Lm5lZygpKSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLG5lJiYwIT09eC5uZWdhdGl2ZSYmeC5pYWRkKE8pKSx7ZGl2OnRlLG1vZDp4fSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1PLm5lZ2F0aXZlPyhQPXRoaXMuZGl2bW9kKE8u''@;'; + put 'put ''bmVnKCkseiksIm1vZCIhPT16JiYodGU9UC5kaXYubmVnKCkpLHtkaXY6dGUsbW9kOlAubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmTy5uZWdhdGl2ZSk/KFA9dGhpcy5uZWcoKS5kaXZtb2QoTy5uZWcoKSx6KSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLG5lJiYwIT09eC5uZWdhdGl2ZSYm''@;'; + put 'put ''eC5pc3ViKE8pKSx7ZGl2OlAuZGl2LG1vZDp4fSk6Ty5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKE8pPDA/e2RpdjpuZXcgVSgwKSxtb2Q6dGhpc306MT09PU8ubGVuZ3RoPyJkaXYiPT09ej97ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT16P3tkaXY6''@;'; + put 'put ''bnVsbCxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oTy53b3Jkc1swXSksbW9kOm5ldyBVKHRoaXMubW9kbihPLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoTyx6KTt2YXIgdGUseCxQfSxVLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oTyl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuZGl2bW9kKE8sImRpdiIsITEpLmRpdn0sVS5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmRpdm1vZChPLCJtb2QiLCExKS5tb2R9LFUucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITApLm1vZH0sVS5wcm90''@;'; + put 'put ''b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5kaXZtb2QoTyk7aWYoei5tb2QuaXNaZXJvKCkpcmV0dXJuIHouZGl2O3ZhciBuZT0wIT09ei5kaXYubmVnYXRpdmU/ei5tb2QuaXN1YihPKTp6Lm1vZCx0ZT1PLnVzaHJuKDEpLHg9Ty5hbmRsbigxKSxQPW5lLmNtcCh0ZSk7''@;'; + put 'put ''cmV0dXJuIFA8MHx8MT09PXgmJjA9PT1QP3ouZGl2OjAhPT16LmRpdi5uZWdhdGl2ZT96LmRpdi5pc3VibigxKTp6LmRpdi5pYWRkbigxKX0sVS5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihPKXtFKE88PTY3MTA4ODYzKTtmb3IodmFyIHo9KDE8PDI2KSVPLG5lPTAsdGU9dGhpcy5sZW5ndGgt''@;'; + put 'put ''MTt0ZT49MDt0ZS0tKW5lPSh6Km5lKygwfHRoaXMud29yZHNbdGVdKSklTztyZXR1cm4gbmV9LFUucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0wLG5lPXRoaXMubGVuZ3RoLTE7bmU+PTA7bmUtLSl7dmFyIHRlPSgwfHRoaXMud29yZHNbbmVd''@;'; + put 'put ''KSs2NzEwODg2NCp6O3RoaXMud29yZHNbbmVdPXRlL098MCx6PXRlJU99cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKE8pfSxVLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRp''@;'; + put 'put ''dmUpLEUoIU8uaXNaZXJvKCkpO3ZhciB6PXRoaXMsbmU9Ty5jbG9uZSgpO3o9MCE9PXoubmVnYXRpdmU/ei51bW9kKE8pOnouY2xvbmUoKTtmb3IodmFyIHRlPW5ldyBVKDEpLHg9bmV3IFUoMCksUD1uZXcgVSgwKSxWPW5ldyBVKDEpLFQ9MDt6LmlzRXZlbigpJiZuZS5pc0V2ZW4oKTspei5p''@;'; + put 'put ''dXNocm4oMSksbmUuaXVzaHJuKDEpLCsrVDtmb3IodmFyIFM9bmUuY2xvbmUoKSxGPXouY2xvbmUoKTshei5pc1plcm8oKTspe2Zvcih2YXIgeWU9MCxDZT0xOzA9PSh6LndvcmRzWzBdJkNlKSYmeWU8MjY7Kyt5ZSxDZTw8PTEpO2lmKHllPjApZm9yKHouaXVzaHJuKHllKTt5ZS0tID4wOyko''@;'; + put 'put ''dGUuaXNPZGQoKXx8eC5pc09kZCgpKSYmKHRlLmlhZGQoUykseC5pc3ViKEYpKSx0ZS5pdXNocm4oMSkseC5pdXNocm4oMSk7Zm9yKHZhciBEZT0wLFBlPTE7MD09KG5lLndvcmRzWzBdJlBlKSYmRGU8MjY7KytEZSxQZTw8PTEpO2lmKERlPjApZm9yKG5lLml1c2hybihEZSk7RGUtLSA+MDsp''@;'; + put 'put ''KFAuaXNPZGQoKXx8Vi5pc09kZCgpKSYmKFAuaWFkZChTKSxWLmlzdWIoRikpLFAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpO3ouY21wKG5lKT49MD8oei5pc3ViKG5lKSx0ZS5pc3ViKFApLHguaXN1YihWKSk6KG5lLmlzdWIoeiksUC5pc3ViKHRlKSxWLmlzdWIoeCkpfXJldHVybnthOlAsYjpW''@;'; + put 'put ''LGdjZDpuZS5pdXNobG4oVCl9fSxVLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7dmFyIHllLHo9dGhpcyxuZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgdGU9bmV3IFUo''@;'; + put 'put ''MSkseD1uZXcgVSgwKSxQPW5lLmNsb25lKCk7ei5jbXBuKDEpPjAmJm5lLmNtcG4oMSk+MDspe2Zvcih2YXIgVj0wLFQ9MTswPT0oei53b3Jkc1swXSZUKSYmVjwyNjsrK1YsVDw8PTEpO2lmKFY+MClmb3Ioei5pdXNocm4oVik7Vi0tID4wOyl0ZS5pc09kZCgpJiZ0ZS5pYWRkKFApLHRlLml1''@;'; + put 'put ''c2hybigxKTtmb3IodmFyIFM9MCxGPTE7MD09KG5lLndvcmRzWzBdJkYpJiZTPDI2OysrUyxGPDw9MSk7aWYoUz4wKWZvcihuZS5pdXNocm4oUyk7Uy0tID4wOyl4LmlzT2RkKCkmJnguaWFkZChQKSx4Lml1c2hybigxKTt6LmNtcChuZSk+PTA/KHouaXN1YihuZSksdGUuaXN1Yih4KSk6KG5l''@;'; + put 'put ''LmlzdWIoeikseC5pc3ViKHRlKSl9cmV0dXJuKHllPTA9PT16LmNtcG4oMSk/dGU6eCkuY21wbigwKTwwJiZ5ZS5pYWRkKE8pLHllfSxVLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oTyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gTy5hYnMoKTtpZihPLmlzWmVybygpKXJldHVybiB0aGlzLmFi''@;'; + put 'put ''cygpO3ZhciB6PXRoaXMuY2xvbmUoKSxuZT1PLmNsb25lKCk7ei5uZWdhdGl2ZT0wLG5lLm5lZ2F0aXZlPTA7Zm9yKHZhciB0ZT0wO3ouaXNFdmVuKCkmJm5lLmlzRXZlbigpO3RlKyspei5pdXNocm4oMSksbmUuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt6LmlzRXZlbigpOyl6Lml1c2hybigx''@;'; + put 'put ''KTtmb3IoO25lLmlzRXZlbigpOyluZS5pdXNocm4oMSk7dmFyIHg9ei5jbXAobmUpO2lmKHg8MCl7dmFyIFA9ejt6PW5lLG5lPVB9ZWxzZSBpZigwPT09eHx8MD09PW5lLmNtcG4oMSkpYnJlYWs7ei5pc3ViKG5lKX1yZXR1cm4gbmUuaXVzaGxuKHRlKX0sVS5wcm90b3R5cGUuaW52bT1mdW5j''@;'; + put 'put ''dGlvbihPKXtyZXR1cm4gdGhpcy5lZ2NkKE8pLmEudW1vZChPKX0sVS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sVS5wcm90b3R5''@;'; + put 'put ''cGUuYW5kbG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMud29yZHNbMF0mT30sVS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8pO3ZhciB6PU8lMjYsbmU9KE8teikvMjYsdGU9MTw8ejtpZih0aGlzLmxlbmd0aDw9bmUpcmV0dXJuIHRoaXMuX2V4cGFu''@;'; + put 'put ''ZChuZSsxKSx0aGlzLndvcmRzW25lXXw9dGUsdGhpcztmb3IodmFyIHg9dGUsUD1uZTswIT09eCYmUDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPTB8dGhpcy53b3Jkc1tQXTt4PShWKz14KT4+PjI2LHRoaXMud29yZHNbUF09ViY9NjcxMDg4NjN9cmV0dXJuIDAhPT14JiYodGhpcy53b3Jkc1tQ''@;'; + put 'put ''XT14LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxVLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKE8pe3ZhciBuZSx6PU88MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXop''@;'; + put 'put ''cmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnopcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpbmU9MTtlbHNle3omJihPPS1PKSxFKE88PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciB0ZT0wfHRoaXMud29yZHNbMF07bmU9dGU9PT1PPzA6dGU8''@;'; + put 'put ''Tz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1uZTpuZX0sVS5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKE8pe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIDE7dmFy''@;'; + put 'put ''IHo9dGhpcy51Y21wKE8pO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC16Onp9LFUucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oTyl7aWYodGhpcy5sZW5ndGg+Ty5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8Ty5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB6PTAsbmU9dGhpcy5s''@;'; + put 'put ''ZW5ndGgtMTtuZT49MDtuZS0tKXt2YXIgdGU9MHx0aGlzLndvcmRzW25lXSx4PTB8Ty53b3Jkc1tuZV07aWYodGUhPT14KXt0ZTx4P3o9LTE6dGU+eCYmKHo9MSk7YnJlYWt9fXJldHVybiB6fSxVLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcG4oTyl9LFUu''@;'; + put 'put ''cHJvdG90eXBlLmd0PWZ1bmN0aW9uKE8pe3JldHVybiAxPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKT49MH0sVS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKT49MH0sVS5wcm90b3R5cGUu''@;'; + put 'put ''bHRuPWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5sdD1mdW5jdGlvbihPKXtyZXR1cm4tMT09PXRoaXMuY21wKE8pfSxVLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcG4oTyk8PTB9LFUucHJvdG90eXBlLmx0ZT1mdW5j''@;'; + put 'put ''dGlvbihPKXtyZXR1cm4gdGhpcy5jbXAoTyk8PTB9LFUucHJvdG90eXBlLmVxbj1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oTyl7cmV0dXJuIDA9PT10aGlzLmNtcChPKX0sVS5yZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBU''@;'; + put 'put ''ZShPKX0sVS5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksRSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxPLmNvbnZlcnRUbyh0aGlz''@;'; + put 'put ''KS5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxVLnByb3RvdHlwZS5fZm9y''@;'; + put 'put ''Y2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucmVkPU8sdGhpc30sVS5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBl''@;'; + put 'put ''LnJlZEFkZD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9u''@;'; + put 'put ''bHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsTyl9LFUucHJvdG90eXBl''@;'; + put 'put ''LnJlZElTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFNobCB3b3JrcyBv''@;'; + put 'put ''bmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJl''@;'; + put 'put ''ZC5tdWwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsTyksdGhpcy5yZWQuaW11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5y''@;'; + put 'put ''ZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVk''@;'; + put 'put ''LCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LFUucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51''@;'; + put 'put ''bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyks''@;'; + put 'put ''dGhpcy5yZWQuaW52bSh0aGlzKX0sVS5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LFUucHJvdG90eXBlLnJl''@;'; + put 'put ''ZFBvdz1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCYmIU8ucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLE8pfTt2YXIgZGU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5j''@;'; + put 'put ''dGlvbiB2ZShoZSxPKXt0aGlzLm5hbWU9aGUsdGhpcy5wPW5ldyBVKE8sMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBVKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBBZSgpe3ZlLmNhbGwodGhpcywi''@;'; + put 'put ''azI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24ga2UoKXt2ZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAw''@;'; + put 'put ''MDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIFNlKCl7dmUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBJZSgpe3ZlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZm''@;'; + put 'put ''ZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gVGUoaGUpe2lmKCJzdHJpbmciPT10eXBlb2YgaGUpe3ZhciBPPVUuX3ByaW1lKGhlKTt0aGlzLm09Ty5wLHRoaXMucHJpbWU9T31lbHNlIEUoaGUuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUg''@;'; + put 'put ''Z3JlYXRlciB0aGFuIDEiKSx0aGlzLm09aGUsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIEVlKGhlKXtUZS5jYWxsKHRoaXMsaGUpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3''@;'; + put 'put ''IFUoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1v''@;'; + put 'put ''ZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9dmUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgTz1uZXcgVShudWxsKTtyZXR1cm4gTy53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLE99LHZlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0''@;'; + put 'put ''aW9uKE8pe3ZhciBuZSx6PU87ZG97dGhpcy5zcGxpdCh6LHRoaXMudG1wKSxuZT0oej0oej10aGlzLmltdWxLKHopKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUobmU+dGhpcy5uKTt2YXIgdGU9bmU8dGhpcy5uPy0xOnoudWNtcCh0aGlzLnApO3JldHVybiAwPT09dGU/KHou''@;'; + put 'put ''d29yZHNbMF09MCx6Lmxlbmd0aD0xKTp0ZT4wP3ouaXN1Yih0aGlzLnApOnZvaWQgMCE9PXouc3RyaXA/ei5zdHJpcCgpOnouX3N0cmlwKCksen0sdmUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKE8seil7Ty5pdXNocm4odGhpcy5uLDAseil9LHZlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlv''@;'; + put 'put ''bihPKXtyZXR1cm4gTy5pbXVsKHRoaXMuayl9LE1lKEFlLHZlKSxBZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtmb3IodmFyIHRlPU1hdGgubWluKE8ubGVuZ3RoLDkpLHg9MDt4PHRlO3grKyl6LndvcmRzW3hdPU8ud29yZHNbeF07aWYoei5sZW5ndGg9dGUsTy5sZW5ndGg8PTkp''@;'; + put 'put ''cmV0dXJuIE8ud29yZHNbMF09MCx2b2lkKE8ubGVuZ3RoPTEpO3ZhciBQPU8ud29yZHNbOV07Zm9yKHoud29yZHNbei5sZW5ndGgrK109NDE5NDMwMyZQLHg9MTA7eDxPLmxlbmd0aDt4Kyspe3ZhciBWPTB8Ty53b3Jkc1t4XTtPLndvcmRzW3gtMTBdPSg0MTk0MzAzJlYpPDw0fFA+Pj4yMixQ''@;'; + put 'put ''PVZ9Ty53b3Jkc1t4LTEwXT1QPj4+PTIyLE8ubGVuZ3RoLT0wPT09UCYmTy5sZW5ndGg+MTA/MTA6OX0sQWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe08ud29yZHNbTy5sZW5ndGhdPTAsTy53b3Jkc1tPLmxlbmd0aCsxXT0wLE8ubGVuZ3RoKz0yO2Zvcih2YXIgej0wLG5lPTA7bmU8''@;'; + put 'put ''Ty5sZW5ndGg7bmUrKyl7dmFyIHRlPTB8Ty53b3Jkc1tuZV07Ty53b3Jkc1tuZV09NjcxMDg4NjMmKHorPTk3Nyp0ZSksej02NCp0ZSsoei82NzEwODg2NHwwKX1yZXR1cm4gMD09PU8ud29yZHNbTy5sZW5ndGgtMV0mJihPLmxlbmd0aC0tLDA9PT1PLndvcmRzW08ubGVuZ3RoLTFdJiZPLmxl''@;'; + put 'put ''bmd0aC0tKSxPfSxNZShrZSx2ZSksTWUoU2UsdmUpLE1lKEllLHZlKSxJZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PTAsbmU9MDtuZTxPLmxlbmd0aDtuZSsrKXt2YXIgdGU9MTkqKDB8Ty53b3Jkc1tuZV0pK3oseD02NzEwODg2MyZ0ZTt0ZT4+Pj0yNixPLndvcmRz''@;'; + put 'put ''W25lXT14LHo9dGV9cmV0dXJuIDAhPT16JiYoTy53b3Jkc1tPLmxlbmd0aCsrXT16KSxPfSxVLl9wcmltZT1mdW5jdGlvbihPKXtpZihkZVtPXSlyZXR1cm4gZGVbT107dmFyIHo7aWYoImsyNTYiPT09Tyl6PW5ldyBBZTtlbHNlIGlmKCJwMjI0Ij09PU8pej1uZXcga2U7ZWxzZSBpZigicDE5''@;'; + put 'put ''MiI9PT1PKXo9bmV3IFNlO2Vsc2V7aWYoInAyNTUxOSIhPT1PKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK08pO3o9bmV3IEllfXJldHVybiBkZVtPXT16LHp9LFRlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25s''@;'; + put 'put ''eSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKE8seil7RSgwPT0oTy5uZWdhdGl2ZXx6Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxFKE8u''@;'; + put 'put ''cmVkJiZPLnJlZD09PXoucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFRlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShPKS5fZm9yY2VSZWQodGhpcyk6Ty51bW9kKHRoaXMubSkuX2ZvcmNlUmVk''@;'; + put 'put ''KHRoaXMpfSxUZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKE8pe3JldHVybiBPLmlzWmVybygpP08uY2xvbmUoKTp0aGlzLm0uc3ViKE8pLl9mb3JjZVJlZCh0aGlzKX0sVGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5hZGQoeik7cmV0''@;'; + put 'put ''dXJuIG5lLmNtcCh0aGlzLm0pPj0wJiZuZS5pc3ViKHRoaXMubSksbmUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5pYWRkKHopO3JldHVybiBuZS5jbXAodGhpcy5tKT49MCYmbmUuaXN1Yih0aGlz''@;'; + put 'put ''Lm0pLG5lfSxUZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBuZT1PLnN1Yih6KTtyZXR1cm4gbmUuY21wbigwKTwwJiZuZS5pYWRkKHRoaXMubSksbmUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPLHope3Ro''@;'; + put 'put ''aXMuX3ZlcmlmeTIoTyx6KTt2YXIgbmU9Ty5pc3ViKHopO3JldHVybiBuZS5jbXBuKDApPDAmJm5lLmlhZGQodGhpcy5tKSxuZX0sVGUucHJvdG90eXBlLnNobD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkxKE8pLHRoaXMuaW1vZChPLnVzaGxuKHopKX0sVGUucHJvdG90eXBl''@;'; + put 'put ''LmltdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLmltdWwoeikpfSxUZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoTyx6KSx0aGlzLmltb2QoTy5tdWwoeikpfSxUZS5wcm90b3R5cGUuaXNxcj1m''@;'; + put 'put ''dW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbXVsKE8sTy5jbG9uZSgpKX0sVGUucHJvdG90eXBlLnNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5tdWwoTyxPKX0sVGUucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oTyl7aWYoTy5pc1plcm8oKSlyZXR1cm4gTy5jbG9uZSgpO3ZhciB6PXRoaXMu''@;'; + put 'put ''bS5hbmRsbigzKTtpZihFKHolMj09MSksMz09PXope3ZhciBuZT10aGlzLm0uYWRkKG5ldyBVKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KE8sbmUpfWZvcih2YXIgdGU9dGhpcy5tLnN1Ym4oMSkseD0wOyF0ZS5pc1plcm8oKSYmMD09PXRlLmFuZGxuKDEpOyl4KyssdGUuaXVzaHJu''@;'; + put 'put ''KDEpO0UoIXRlLmlzWmVybygpKTt2YXIgUD1uZXcgVSgxKS50b1JlZCh0aGlzKSxWPVAucmVkTmVnKCksVD10aGlzLm0uc3VibigxKS5pdXNocm4oMSksUz10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKFM9bmV3IFUoMipTKlMpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhTLFQpLmNtcChWKTsp''@;'; + put 'put ''Uy5yZWRJQWRkKFYpO2Zvcih2YXIgRj10aGlzLnBvdyhTLHRlKSx5ZT10aGlzLnBvdyhPLHRlLmFkZG4oMSkuaXVzaHJuKDEpKSxDZT10aGlzLnBvdyhPLHRlKSxEZT14OzAhPT1DZS5jbXAoUCk7KXtmb3IodmFyIFBlPUNlLFFlPTA7MCE9PVBlLmNtcChQKTtRZSsrKVBlPVBlLnJlZFNxcigp''@;'; + put 'put ''O0UoUWU8RGUpO3ZhciAkZT10aGlzLnBvdyhGLG5ldyBVKDEpLml1c2hsbihEZS1RZS0xKSk7eWU9eWUucmVkTXVsKCRlKSxGPSRlLnJlZFNxcigpLENlPUNlLnJlZE11bChGKSxEZT1RZX1yZXR1cm4geWV9LFRlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3ZhciB6PU8uX2ludm1wKHRo''@;'; + put 'put ''aXMubSk7cmV0dXJuIDAhPT16Lm5lZ2F0aXZlPyh6Lm5lZ2F0aXZlPTAsdGhpcy5pbW9kKHopLnJlZE5lZygpKTp0aGlzLmltb2Qoeil9LFRlLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyx6KXtpZih6LmlzWmVybygpKXJldHVybiBuZXcgVSgxKS50b1JlZCh0aGlzKTtpZigwPT09ei5jbXBu''@;'; + put 'put ''KDEpKXJldHVybiBPLmNsb25lKCk7dmFyIHRlPW5ldyBBcnJheSgxNik7dGVbMF09bmV3IFUoMSkudG9SZWQodGhpcyksdGVbMV09Tztmb3IodmFyIHg9Mjt4PHRlLmxlbmd0aDt4KyspdGVbeF09dGhpcy5tdWwodGVbeC0xXSxPKTt2YXIgUD10ZVswXSxWPTAsVD0wLFM9ei5iaXRMZW5ndGgo''@;'; + put 'put ''KSUyNjtmb3IoMD09PVMmJihTPTI2KSx4PXoubGVuZ3RoLTE7eD49MDt4LS0pe2Zvcih2YXIgRj16LndvcmRzW3hdLHllPVMtMTt5ZT49MDt5ZS0tKXt2YXIgQ2U9Rj4+eWUmMTtQIT09dGVbMF0mJihQPXRoaXMuc3FyKFApKSwwIT09Q2V8fDAhPT1WPyhWPDw9MSxWfD1DZSwoND09KytUfHww''@;'; + put 'put ''PT09eCYmMD09PXllKSYmKFA9dGhpcy5tdWwoUCx0ZVtWXSksVD0wLFY9MCkpOlQ9MH1TPTI2fXJldHVybiBQfSxUZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKE8pe3ZhciB6PU8udW1vZCh0aGlzLm0pO3JldHVybiB6PT09Tz96LmNsb25lKCk6en0sVGUucHJvdG90eXBlLmNvbnZl''@;'; + put 'put ''cnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PU8uY2xvbmUoKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxVLm1vbnQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBFZShPKX0sTWUoRWUsVGUpLEVlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLnVzaGxuKHRo''@;'; + put 'put ''aXMuc2hpZnQpKX0sRWUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PXRoaXMuaW1vZChPLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxFZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0''@;'; + put 'put ''dXJuIE8ud29yZHNbMF09MCxPLmxlbmd0aD0xLE87dmFyIG5lPU8uaW11bCh6KSx0ZT1uZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1uZS5pc3ViKHRlKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNt''@;'; + put 'put ''cCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sRWUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDApLl9mb3JjZVJlZCh0''@;'; + put 'put ''aGlzKTt2YXIgbmU9Ty5tdWwoeiksdGU9bmUubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLHg9bmUuaXN1Yih0ZSkuaXVzaHJuKHRoaXMuc2hpZnQpLFA9eDtyZXR1cm4geC5jbXAodGhpcy5tKT49MD9QPXguaXN1Yih0aGlz''@;'; + put 'put ''Lm0pOnguY21wbigwKTwwJiYoUD14LmlhZGQodGhpcy5tKSksUC5fZm9yY2VSZWQodGhpcyl9LEVlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltb2QoTy5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KFhlPUwubm1kKFhlKSx0''@;'; + put 'put ''aGlzKX0sMzY3MDU6KFhlLEplLEwpPT57dmFyIG1lPUwoMjI3NzIpLEI9TCg4Njk0NSksRT1MKDc5NDAxKSxNZT1MKDgyMDU3KSxVPUwoODQ2NiksUT1MKDk2Mzg2KSxaPUwoMzg2NTEpLGllPUwoNzM1MDIpLkJ1ZmZlcjtYZS5leHBvcnRzPWZ1bmN0aW9uKGVlLHEsSil7dmFyIHNlO3NlPWVl''@;'; + put 'put ''LnBhZGRpbmc/ZWUucGFkZGluZzpKPzE6NDt2YXIgZGUsb2U9bWUoZWUpLGNlPW9lLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2lmKHEubGVuZ3RoPmNlfHxuZXcgTWUocSkuY21wKG9lLm1vZHVsdXMpPj0wKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO2RlPUo/WihuZXcgTWUo''@;'; + put 'put ''cSksb2UpOlUocSxvZSk7dmFyIHZlPWllLmFsbG9jKGNlLWRlLmxlbmd0aCk7aWYoZGU9aWUuY29uY2F0KFt2ZSxkZV0sY2UpLDQ9PT1zZSlyZXR1cm4gZnVuY3Rpb24gbGUoTixlZSl7dmFyIHE9Ti5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxKPVEoInNoYTEiKS51cGRhdGUoaWUuYWxsb2MoMCkp''@;'; + put 'put ''LmRpZ2VzdCgpLHNlPUoubGVuZ3RoO2lmKDAhPT1lZVswXSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTt2YXIgb2U9ZWUuc2xpY2UoMSxzZSsxKSxjZT1lZS5zbGljZShzZSsxKSxkZT1FKG9lLEIoY2Usc2UpKSx2ZT1FKGNlLEIoZGUscS1zZS0xKSk7aWYoZnVuY3Rpb24g''@;'; + put 'put ''VyhOLGVlKXtOPWllLmZyb20oTiksZWU9aWUuZnJvbShlZSk7dmFyIHE9MCxKPU4ubGVuZ3RoO04ubGVuZ3RoIT09ZWUubGVuZ3RoJiYocSsrLEo9TWF0aC5taW4oTi5sZW5ndGgsZWUubGVuZ3RoKSk7Zm9yKHZhciBzZT0tMTsrK3NlPEo7KXErPU5bc2VdXmVlW3NlXTtyZXR1cm4gcX0oSix2''@;'; + put 'put ''ZS5zbGljZSgwLHNlKSkpdGhyb3cgbmV3IEVycm9yKCJkZWNyeXB0aW9uIGVycm9yIik7Zm9yKHZhciBBZT1zZTswPT09dmVbQWVdOylBZSsrO2lmKDEhPT12ZVtBZSsrXSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtyZXR1cm4gdmUuc2xpY2UoQWUpfShvZSxkZSk7aWYo''@;'; + put 'put ''MT09PXNlKXJldHVybiBmdW5jdGlvbiBZKE4sZWUscSl7Zm9yKHZhciBKPWVlLnNsaWNlKDAsMiksc2U9MixvZT0wOzAhPT1lZVtzZSsrXTspaWYoc2U+PWVlLmxlbmd0aCl7b2UrKzticmVha312YXIgY2U9ZWUuc2xpY2UoMixzZS0xKTtpZigoIjAwMDIiIT09Si50b1N0cmluZygiaGV4Iikm''@;'; + put 'put ''JiFxfHwiMDAwMSIhPT1KLnRvU3RyaW5nKCJoZXgiKSYmcSkmJm9lKyssY2UubGVuZ3RoPDgmJm9lKyssb2UpdGhyb3cgbmV3IEVycm9yKCJkZWNyeXB0aW9uIGVycm9yIik7cmV0dXJuIGVlLnNsaWNlKHNlKX0oMCxkZSxKKTtpZigzPT09c2UpcmV0dXJuIGRlO3Rocm93IG5ldyBFcnJvcigi''@;'; + put 'put ''dW5rbm93biBwYWRkaW5nIil9fSwxNjU2MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMjc3MiksQj1MKDUzNzUzKSxFPUwoOTYzODYpLE1lPUwoODY5NDUpLFU9TCg3OTQwMSksUT1MKDgyMDU3KSxaPUwoMzg2NTEpLGllPUwoODQ2NiksbGU9TCg3MzUwMikuQnVmZmVyO1hlLmV4cG9ydHM9ZnVu''@;'; + put 'put ''Y3Rpb24ocSxKLHNlKXt2YXIgb2U7b2U9cS5wYWRkaW5nP3EucGFkZGluZzpzZT8xOjQ7dmFyIGRlLGNlPW1lKHEpO2lmKDQ9PT1vZSlkZT1mdW5jdGlvbiBZKGVlLHEpe3ZhciBKPWVlLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLHNlPXEubGVuZ3RoLG9lPUUoInNoYTEiKS51cGRhdGUobGUuYWxs''@;'; + put 'put ''b2MoMCkpLmRpZ2VzdCgpLGNlPW9lLmxlbmd0aCxkZT0yKmNlO2lmKHNlPkotZGUtMil0aHJvdyBuZXcgRXJyb3IoIm1lc3NhZ2UgdG9vIGxvbmciKTt2YXIgdmU9bGUuYWxsb2MoSi1zZS1kZS0yKSxBZT1KLWNlLTEsa2U9QihjZSksU2U9VShsZS5jb25jYXQoW29lLHZlLGxlLmFsbG9jKDEs''@;'; + put 'put ''MSkscV0sQWUpLE1lKGtlLEFlKSksSWU9VShrZSxNZShTZSxjZSkpO3JldHVybiBuZXcgUShsZS5jb25jYXQoW2xlLmFsbG9jKDEpLEllLFNlXSxKKSl9KGNlLEopO2Vsc2UgaWYoMT09PW9lKWRlPWZ1bmN0aW9uIFcoZWUscSxKKXt2YXIgY2Usc2U9cS5sZW5ndGgsb2U9ZWUubW9kdWx1cy5i''@;'; + put 'put ''eXRlTGVuZ3RoKCk7aWYoc2U+b2UtMTEpdGhyb3cgbmV3IEVycm9yKCJtZXNzYWdlIHRvbyBsb25nIik7cmV0dXJuIGNlPUo/bGUuYWxsb2Mob2Utc2UtMywyNTUpOmZ1bmN0aW9uIE4oZWUpe2Zvcih2YXIgY2UscT1sZS5hbGxvY1Vuc2FmZShlZSksSj0wLHNlPUIoMiplZSksb2U9MDtKPGVl''@;'; + put 'put ''OylvZT09PXNlLmxlbmd0aCYmKHNlPUIoMiplZSksb2U9MCksKGNlPXNlW29lKytdKSYmKHFbSisrXT1jZSk7cmV0dXJuIHF9KG9lLXNlLTMpLG5ldyBRKGxlLmNvbmNhdChbbGUuZnJvbShbMCxKPzE6Ml0pLGNlLGxlLmFsbG9jKDEpLHFdLG9lKSl9KGNlLEosc2UpO2Vsc2V7aWYoMyE9PW9l''@;'; + put 'put ''KXRocm93IG5ldyBFcnJvcigidW5rbm93biBwYWRkaW5nIik7aWYoKGRlPW5ldyBRKEopKS5jbXAoY2UubW9kdWx1cyk+PTApdGhyb3cgbmV3IEVycm9yKCJkYXRhIHRvbyBsb25nIGZvciBtb2R1bHVzIil9cmV0dXJuIHNlP2llKGRlLGNlKTpaKGRlLGNlKX19LDM4NjUxOihYZSxKZSxMKT0+''@;'; + put 'put ''e3ZhciBtZT1MKDgyMDU3KSxCPUwoNzM1MDIpLkJ1ZmZlcjtYZS5leHBvcnRzPWZ1bmN0aW9uIEUoTWUsVSl7cmV0dXJuIEIuZnJvbShNZS50b1JlZChtZS5tb250KFUubW9kdWx1cykpLnJlZFBvdyhuZXcgbWUoVS5wdWJsaWNFeHBvbmVudCkpLmZyb21SZWQoKS50b0FycmF5KCkpfX0sNzk0''@;'; + put 'put ''MDE6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uKEwsbWUpe2Zvcih2YXIgQj1MLmxlbmd0aCxFPS0xOysrRTxCOylMW0VdXj1tZVtFXTtyZXR1cm4gTH19LDUzNzUzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTWU9TCg3MzUwMikuQnVmZmVyLFU9Z2xvYmFsLmNyeXB0b3x8Z2xvYmFs''@;'; + put 'put ''Lm1zQ3J5cHRvO1hlLmV4cG9ydHM9VSYmVS5nZXRSYW5kb21WYWx1ZXM/ZnVuY3Rpb24gUShaLGllKXtpZihaPjQyOTQ5NjcyOTUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInJlcXVlc3RlZCB0b28gbWFueSByYW5kb20gYnl0ZXMiKTt2YXIgbGU9TWUuYWxsb2NVbnNhZmUoWik7aWYoWj4wKWlm''@;'; + put 'put ''KFo+NjU1MzYpZm9yKHZhciBZPTA7WTxaO1krPTY1NTM2KVUuZ2V0UmFuZG9tVmFsdWVzKGxlLnNsaWNlKFksWSs2NTUzNikpO2Vsc2UgVS5nZXRSYW5kb21WYWx1ZXMobGUpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBpZT9wcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uKCl7aWUobnVsbCxs''@;'; + put 'put ''ZSl9KTpsZX06ZnVuY3Rpb24gRSgpe3Rocm93IG5ldyBFcnJvcigiU2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3Nlci5cblVzZSBDaHJvbWUsIEZpcmVmb3ggb3IgSW50ZXJuZXQgRXhwbG9yZXIgMTEiKX19LDE0Mjc1OihYZSxK''@;'; + put 'put ''ZSxMKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtZSgpe3Rocm93IG5ldyBFcnJvcigic2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3NlclxudXNlIGNocm9tZSwgRmlyZUZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfXZhciBC''@;'; + put 'put ''PUwoNzM1MDIpLEU9TCg1Mzc1MyksTWU9Qi5CdWZmZXIsVT1CLmtNYXhMZW5ndGgsUT1nbG9iYWwuY3J5cHRvfHxnbG9iYWwubXNDcnlwdG8sWj1NYXRoLnBvdygyLDMyKS0xO2Z1bmN0aW9uIGllKGVlLHEpe2lmKCJudW1iZXIiIT10eXBlb2YgZWV8fGVlIT1lZSl0aHJvdyBuZXcgVHlwZUVy''@;'; + put 'put ''cm9yKCJvZmZzZXQgbXVzdCBiZSBhIG51bWJlciIpO2lmKGVlPlp8fGVlPDApdGhyb3cgbmV3IFR5cGVFcnJvcigib2Zmc2V0IG11c3QgYmUgYSB1aW50MzIiKTtpZihlZT5VfHxlZT5xKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gbGUoZWUs''@;'; + put 'put ''cSxKKXtpZigibnVtYmVyIiE9dHlwZW9mIGVlfHxlZSE9ZWUpdGhyb3cgbmV3IFR5cGVFcnJvcigic2l6ZSBtdXN0IGJlIGEgbnVtYmVyIik7aWYoZWU+Wnx8ZWU8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJzaXplIG11c3QgYmUgYSB1aW50MzIiKTtpZihlZStxPkp8fGVlPlUpdGhyb3cgbmV3''@;'; + put 'put ''IFJhbmdlRXJyb3IoImJ1ZmZlciB0b28gc21hbGwiKX1mdW5jdGlvbiBXKGVlLHEsSixzZSl7aWYocHJvY2Vzcy5icm93c2VyKXt2YXIgY2U9bmV3IFVpbnQ4QXJyYXkoZWUuYnVmZmVyLHEsSik7cmV0dXJuIFEuZ2V0UmFuZG9tVmFsdWVzKGNlKSxzZT92b2lkIHByb2Nlc3MubmV4dFRpY2so''@;'; + put 'put ''ZnVuY3Rpb24oKXtzZShudWxsLGVlKX0pOmVlfWlmKCFzZSlyZXR1cm4gRShKKS5jb3B5KGVlLHEpLGVlO0UoSixmdW5jdGlvbih2ZSxBZSl7aWYodmUpcmV0dXJuIHNlKHZlKTtBZS5jb3B5KGVlLHEpLHNlKG51bGwsZWUpfSl9USYmUS5nZXRSYW5kb21WYWx1ZXN8fCFwcm9jZXNzLmJyb3dz''@;'; + put 'put ''ZXI/KEplLnJhbmRvbUZpbGw9ZnVuY3Rpb24gWShlZSxxLEosc2Upe2lmKCEoTWUuaXNCdWZmZXIoZWUpfHxlZSBpbnN0YW5jZW9mIGdsb2JhbC5VaW50OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtp''@;'; + put 'put ''ZigiZnVuY3Rpb24iPT10eXBlb2YgcSlzZT1xLHE9MCxKPWVlLmxlbmd0aDtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBKKXNlPUosSj1lZS5sZW5ndGgtcTtlbHNlIGlmKCJmdW5jdGlvbiIhPXR5cGVvZiBzZSl0aHJvdyBuZXcgVHlwZUVycm9yKCciY2IiIGFyZ3VtZW50IG11c3QgYmUg''@;'; + put 'put ''YSBmdW5jdGlvbicpO3JldHVybiBpZShxLGVlLmxlbmd0aCksbGUoSixxLGVlLmxlbmd0aCksVyhlZSxxLEosc2UpfSxKZS5yYW5kb21GaWxsU3luYz1mdW5jdGlvbiBOKGVlLHEsSil7aWYodm9pZCAwPT09cSYmKHE9MCksIShNZS5pc0J1ZmZlcihlZSl8fGVlIGluc3RhbmNlb2YgZ2xvYmFs''@;'; + put 'put ''LlVpbnQ4QXJyYXkpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWYiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgb3IgVWludDhBcnJheScpO3JldHVybiBpZShxLGVlLmxlbmd0aCksdm9pZCAwPT09SiYmKEo9ZWUubGVuZ3RoLXEpLGxlKEoscSxlZS5sZW5ndGgpLFcoZWUscSxKKX0pOihK''@;'; + put 'put ''ZS5yYW5kb21GaWxsPW1lLEplLnJhbmRvbUZpbGxTeW5jPW1lKX0sNzA4OTE6WGU9PnsidXNlIHN0cmljdCI7dmFyIEw9e307ZnVuY3Rpb24gbWUoUSxaLGllKXtpZXx8KGllPUVycm9yKTt2YXIgWT1mdW5jdGlvbihXKXtmdW5jdGlvbiBOKGVlLHEsSil7cmV0dXJuIFcuY2FsbCh0aGlzLGZ1''@;'; + put 'put ''bmN0aW9uIGxlKFcsTixlZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBaP1o6WihXLE4sZWUpfShlZSxxLEopKXx8dGhpc31yZXR1cm4gZnVuY3Rpb24gSmUoUSxaKXtRLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFoucHJvdG90eXBlKSxRLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1RLFEuX19w''@;'; + put 'put ''cm90b19fPVp9KE4sVyksTn0oaWUpO1kucHJvdG90eXBlLm5hbWU9aWUubmFtZSxZLnByb3RvdHlwZS5jb2RlPVEsTFtRXT1ZfWZ1bmN0aW9uIEIoUSxaKXtpZihBcnJheS5pc0FycmF5KFEpKXt2YXIgaWU9US5sZW5ndGg7cmV0dXJuIFE9US5tYXAoZnVuY3Rpb24obGUpe3JldHVybiBTdHJp''@;'; + put 'put ''bmcobGUpfSksaWU+Mj8ib25lIG9mICIuY29uY2F0KFosIiAiKS5jb25jYXQoUS5zbGljZSgwLGllLTEpLmpvaW4oIiwgIiksIiwgb3IgIikrUVtpZS0xXToyPT09aWU/Im9uZSBvZiAiLmNvbmNhdChaLCIgIikuY29uY2F0KFFbMF0sIiBvciAiKS5jb25jYXQoUVsxXSk6Im9mICIuY29uY2F0''@;'; + put 'put ''KFosIiAiKS5jb25jYXQoUVswXSl9cmV0dXJuIm9mICIuY29uY2F0KFosIiAiKS5jb25jYXQoU3RyaW5nKFEpKX1tZSgiRVJSX0lOVkFMSURfT1BUX1ZBTFVFIixmdW5jdGlvbihRLFope3JldHVybidUaGUgdmFsdWUgIicrWisnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gIicrUSsnIid9LFR5''@;'; + put 'put ''cGVFcnJvciksbWUoIkVSUl9JTlZBTElEX0FSR19UWVBFIixmdW5jdGlvbihRLFosaWUpe3ZhciBsZSxZO2lmKCJzdHJpbmciPT10eXBlb2YgWiYmZnVuY3Rpb24gRShRLFosaWUpe3JldHVybiBRLnN1YnN0cighaWV8fGllPDA/MDoraWUsWi5sZW5ndGgpPT09Wn0oWiwibm90ICIpPyhsZT0i''@;'; + put 'put ''bXVzdCBub3QgYmUiLFo9Wi5yZXBsYWNlKC9ebm90IC8sIiIpKTpsZT0ibXVzdCBiZSIsZnVuY3Rpb24gTWUoUSxaLGllKXtyZXR1cm4odm9pZCAwPT09aWV8fGllPlEubGVuZ3RoKSYmKGllPVEubGVuZ3RoKSxRLnN1YnN0cmluZyhpZS1aLmxlbmd0aCxpZSk9PT1afShRLCIgYXJndW1lbnQi''@;'; + put 'put ''KSlZPSJUaGUgIi5jb25jYXQoUSwiICIpLmNvbmNhdChsZSwiICIpLmNvbmNhdChCKFosInR5cGUiKSk7ZWxzZXt2YXIgVz1mdW5jdGlvbiBVKFEsWixpZSl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBpZSYmKGllPTApLCEoaWUrWi5sZW5ndGg+US5sZW5ndGgpJiYtMSE9PVEuaW5kZXhPZiha''@;'; + put 'put ''LGllKX0oUSwiLiIpPyJwcm9wZXJ0eSI6ImFyZ3VtZW50IjtZPSdUaGUgIicuY29uY2F0KFEsJyIgJykuY29uY2F0KFcsIiAiKS5jb25jYXQobGUsIiAiKS5jb25jYXQoQihaLCJ0eXBlIikpfXJldHVybiBZKyIuIFJlY2VpdmVkIHR5cGUgIi5jb25jYXQodHlwZW9mIGllKX0sVHlwZUVycm9y''@;'; + put 'put ''KSxtZSgiRVJSX1NUUkVBTV9QVVNIX0FGVEVSX0VPRiIsInN0cmVhbS5wdXNoKCkgYWZ0ZXIgRU9GIiksbWUoIkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVEIixmdW5jdGlvbihRKXtyZXR1cm4iVGhlICIrUSsiIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQifSksbWUoIkVSUl9TVFJFQU1f''@;'; + put 'put ''UFJFTUFUVVJFX0NMT1NFIiwiUHJlbWF0dXJlIGNsb3NlIiksbWUoIkVSUl9TVFJFQU1fREVTVFJPWUVEIixmdW5jdGlvbihRKXtyZXR1cm4iQ2Fubm90IGNhbGwgIitRKyIgYWZ0ZXIgYSBzdHJlYW0gd2FzIGRlc3Ryb3llZCJ9KSxtZSgiRVJSX01VTFRJUExFX0NBTExCQUNLIiwiQ2FsbGJh''@;'; + put 'put ''Y2sgY2FsbGVkIG11bHRpcGxlIHRpbWVzIiksbWUoIkVSUl9TVFJFQU1fQ0FOTk9UX1BJUEUiLCJDYW5ub3QgcGlwZSwgbm90IHJlYWRhYmxlIiksbWUoIkVSUl9TVFJFQU1fV1JJVEVfQUZURVJfRU5EIiwid3JpdGUgYWZ0ZXIgZW5kIiksbWUoIkVSUl9TVFJFQU1fTlVMTF9WQUxVRVMiLCJN''@;'; + put 'put ''YXkgbm90IHdyaXRlIG51bGwgdmFsdWVzIHRvIHN0cmVhbSIsVHlwZUVycm9yKSxtZSgiRVJSX1VOS05PV05fRU5DT0RJTkciLGZ1bmN0aW9uKFEpe3JldHVybiJVbmtub3duIGVuY29kaW5nOiAiK1F9LFR5cGVFcnJvciksbWUoIkVSUl9TVFJFQU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQi''@;'; + put 'put ''LCJzdHJlYW0udW5zaGlmdCgpIGFmdGVyIGVuZCBldmVudCIpLFhlLmV4cG9ydHMucT1MfSw0MTMzOTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPU9iamVjdC5rZXlzfHxmdW5jdGlvbihZKXt2YXIgVz1bXTtmb3IodmFyIE4gaW4gWSlXLnB1c2goTik7cmV0dXJuIFd9O1hlLmV4''@;'; + put 'put ''cG9ydHM9Wjt2YXIgQj1MKDMxNTQpLEU9TCgyMDUyMCk7TCg4Mzg5NCkoWixCKTtmb3IodmFyIE1lPW1lKEUucHJvdG90eXBlKSxVPTA7VTxNZS5sZW5ndGg7VSsrKXt2YXIgUT1NZVtVXTtaLnByb3RvdHlwZVtRXXx8KFoucHJvdG90eXBlW1FdPUUucHJvdG90eXBlW1FdKX1mdW5jdGlvbiBa''@;'; + put 'put ''KFkpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFopKXJldHVybiBuZXcgWihZKTtCLmNhbGwodGhpcyxZKSxFLmNhbGwodGhpcyxZKSx0aGlzLmFsbG93SGFsZk9wZW49ITAsWSYmKCExPT09WS5yZWFkYWJsZSYmKHRoaXMucmVhZGFibGU9ITEpLCExPT09WS53cml0YWJsZSYmKHRoaXMud3JpdGFi''@;'; + put 'put ''bGU9ITEpLCExPT09WS5hbGxvd0hhbGZPcGVuJiYodGhpcy5hbGxvd0hhbGZPcGVuPSExLHRoaXMub25jZSgiZW5kIixpZSkpKX1mdW5jdGlvbiBpZSgpe3RoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWR8fHByb2Nlc3MubmV4dFRpY2sobGUsdGhpcyl9ZnVuY3Rpb24gbGUoWSl7WS5lbmQoKX1P''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoWi5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWi5wcm90b3R5cGUs''@;'; + put 'put ''IndyaXRhYmxlQnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIoKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWi5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51''@;'; + put 'put ''bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFoucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFk''@;'; + put 'put ''YWJsZVN0YXRlJiZ2b2lkIDAhPT10aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbihXKXt2b2lkIDA9PT10aGlzLl9yZWFkYWJsZVN0YXRlfHx2b2lkIDA9PT10aGlzLl93''@;'; + put 'put ''cml0YWJsZVN0YXRlfHwodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9Vyx0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD1XKX19KX0sNTYwNzE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9Qjt2YXIgbWU9TCg2MDI1KTtmdW5jdGlvbiBCKEUpe2lmKCEodGhp''@;'; + put 'put ''cyBpbnN0YW5jZW9mIEIpKXJldHVybiBuZXcgQihFKTttZS5jYWxsKHRoaXMsRSl9TCg4Mzg5NCkoQixtZSksQi5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihFLE1lLFUpe1UobnVsbCxFKX19LDMxNTQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZTtYZS5leHBvcnRzPWhl''@;'; + put 'put ''LGhlLlJlYWRhYmxlU3RhdGU9RWUsTCg1OTA2OSk7dmFyIFksRT1mdW5jdGlvbihCdCxvbil7cmV0dXJuIEJ0Lmxpc3RlbmVycyhvbikubGVuZ3RofSxNZT1MKDQ5NzApLFU9TCg5MzE3MikuQnVmZmVyLFE9Z2xvYmFsLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fSxsZT1MKDk0NjE2KTtZPWxl''@;'; + put 'put ''JiZsZS5kZWJ1Z2xvZz9sZS5kZWJ1Z2xvZygic3RyZWFtIik6ZnVuY3Rpb24oKXt9O3ZhciB2ZSxBZSxrZSxXPUwoMjUwMTkpLE49TCg0MTkyMCkscT1MKDQ3MTAyKS5nZXRIaWdoV2F0ZXJNYXJrLEo9TCg3MDg5MSkucSxzZT1KLkVSUl9JTlZBTElEX0FSR19UWVBFLG9lPUouRVJSX1NUUkVB''@;'; + put 'put ''TV9QVVNIX0FGVEVSX0VPRixjZT1KLkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELGRlPUouRVJSX1NUUkVBTV9VTlNISUZUX0FGVEVSX0VORF9FVkVOVDtMKDgzODk0KShoZSxNZSk7dmFyIFNlPU4uZXJyb3JPckRlc3Ryb3ksSWU9WyJlcnJvciIsImNsb3NlIiwiZGVzdHJveSIsInBhdXNl''@;'; + put 'put ''IiwicmVzdW1lIl07ZnVuY3Rpb24gRWUoaHQsQnQsb24pe21lPW1lfHxMKDQxMzM5KSwiYm9vbGVhbiIhPXR5cGVvZiBvbiYmKG9uPUJ0IGluc3RhbmNlb2YgbWUpLHRoaXMub2JqZWN0TW9kZT0hIShodD1odHx8e30pLm9iamVjdE1vZGUsb24mJih0aGlzLm9iamVjdE1vZGU9dGhpcy5vYmpl''@;'; + put 'put ''Y3RNb2RlfHwhIWh0LnJlYWRhYmxlT2JqZWN0TW9kZSksdGhpcy5oaWdoV2F0ZXJNYXJrPXEodGhpcyxodCwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIixvbiksdGhpcy5idWZmZXI9bmV3IFcsdGhpcy5sZW5ndGg9MCx0aGlzLnBpcGVzPW51bGwsdGhpcy5waXBlc0NvdW50PTAsdGhpcy5mbG93''@;'; + put 'put ''aW5nPW51bGwsdGhpcy5lbmRlZD0hMSx0aGlzLmVuZEVtaXR0ZWQ9ITEsdGhpcy5yZWFkaW5nPSExLHRoaXMuc3luYz0hMCx0aGlzLm5lZWRSZWFkYWJsZT0hMSx0aGlzLmVtaXR0ZWRSZWFkYWJsZT0hMSx0aGlzLnJlYWRhYmxlTGlzdGVuaW5nPSExLHRoaXMucmVzdW1lU2NoZWR1bGVkPSEx''@;'; + put 'put ''LHRoaXMucGF1c2VkPSEwLHRoaXMuZW1pdENsb3NlPSExIT09aHQuZW1pdENsb3NlLHRoaXMuYXV0b0Rlc3Ryb3k9ISFodC5hdXRvRGVzdHJveSx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLmRlZmF1bHRFbmNvZGluZz1odC5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmF3YWl0RHJhaW49''@;'; + put 'put ''MCx0aGlzLnJlYWRpbmdNb3JlPSExLHRoaXMuZGVjb2Rlcj1udWxsLHRoaXMuZW5jb2Rpbmc9bnVsbCxodC5lbmNvZGluZyYmKHZlfHwodmU9TCg3MzA1NCkucyksdGhpcy5kZWNvZGVyPW5ldyB2ZShodC5lbmNvZGluZyksdGhpcy5lbmNvZGluZz1odC5lbmNvZGluZyl9ZnVuY3Rpb24gaGUo''@;'; + put 'put ''aHQpe2lmKG1lPW1lfHxMKDQxMzM5KSwhKHRoaXMgaW5zdGFuY2VvZiBoZSkpcmV0dXJuIG5ldyBoZShodCk7dGhpcy5fcmVhZGFibGVTdGF0ZT1uZXcgRWUoaHQsdGhpcyx0aGlzIGluc3RhbmNlb2YgbWUpLHRoaXMucmVhZGFibGU9ITAsaHQmJigiZnVuY3Rpb24iPT10eXBlb2YgaHQucmVh''@;'; + put 'put ''ZCYmKHRoaXMuX3JlYWQ9aHQucmVhZCksImZ1bmN0aW9uIj09dHlwZW9mIGh0LmRlc3Ryb3kmJih0aGlzLl9kZXN0cm95PWh0LmRlc3Ryb3kpKSxNZS5jYWxsKHRoaXMpfWZ1bmN0aW9uIE8oaHQsQnQsb24sX3QsdHQpe1koInJlYWRhYmxlQWRkQ2h1bmsiLEJ0KTt2YXIgYXQsZXQ9aHQuX3Jl''@;'; + put 'put ''YWRhYmxlU3RhdGU7aWYobnVsbD09PUJ0KWV0LnJlYWRpbmc9ITEsZnVuY3Rpb24gVihodCxCdCl7aWYoWSgib25Fb2ZDaHVuayIpLCFCdC5lbmRlZCl7aWYoQnQuZGVjb2Rlcil7dmFyIG9uPUJ0LmRlY29kZXIuZW5kKCk7b24mJm9uLmxlbmd0aCYmKEJ0LmJ1ZmZlci5wdXNoKG9uKSxCdC5s''@;'; + put 'put ''ZW5ndGgrPUJ0Lm9iamVjdE1vZGU/MTpvbi5sZW5ndGgpfUJ0LmVuZGVkPSEwLEJ0LnN5bmM/VChodCk6KEJ0Lm5lZWRSZWFkYWJsZT0hMSxCdC5lbWl0dGVkUmVhZGFibGV8fChCdC5lbWl0dGVkUmVhZGFibGU9ITAsUyhodCkpKX19KGh0LGV0KTtlbHNlIGlmKHR0fHwoYXQ9ZnVuY3Rpb24g''@;'; + put 'put ''bmUoaHQsQnQpe3ZhciBvbjtyZXR1cm4hZnVuY3Rpb24gaWUoaHQpe3JldHVybiBVLmlzQnVmZmVyKGh0KXx8aHQgaW5zdGFuY2VvZiBRfShCdCkmJiJzdHJpbmciIT10eXBlb2YgQnQmJnZvaWQgMCE9PUJ0JiYhaHQub2JqZWN0TW9kZSYmKG9uPW5ldyBzZSgiY2h1bmsiLFsic3RyaW5nIiwi''@;'; + put 'put ''QnVmZmVyIiwiVWludDhBcnJheSJdLEJ0KSksb259KGV0LEJ0KSksYXQpU2UoaHQsYXQpO2Vsc2UgaWYoZXQub2JqZWN0TW9kZXx8QnQmJkJ0Lmxlbmd0aD4wKWlmKCJzdHJpbmciIT10eXBlb2YgQnQmJiFldC5vYmplY3RNb2RlJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoQnQpIT09VS5wcm90''@;'; + put 'put ''b3R5cGUmJihCdD1mdW5jdGlvbiBaKGh0KXtyZXR1cm4gVS5mcm9tKGh0KX0oQnQpKSxfdClldC5lbmRFbWl0dGVkP1NlKGh0LG5ldyBkZSk6eihodCxldCxCdCwhMCk7ZWxzZSBpZihldC5lbmRlZClTZShodCxuZXcgb2UpO2Vsc2V7aWYoZXQuZGVzdHJveWVkKXJldHVybiExO2V0LnJlYWRp''@;'; + put 'put ''bmc9ITEsZXQuZGVjb2RlciYmIW9uPyhCdD1ldC5kZWNvZGVyLndyaXRlKEJ0KSxldC5vYmplY3RNb2RlfHwwIT09QnQubGVuZ3RoP3ooaHQsZXQsQnQsITEpOkYoaHQsZXQpKTp6KGh0LGV0LEJ0LCExKX1lbHNlIF90fHwoZXQucmVhZGluZz0hMSxGKGh0LGV0KSk7cmV0dXJuIWV0LmVuZGVk''@;'; + put 'put ''JiYoZXQubGVuZ3RoPGV0LmhpZ2hXYXRlck1hcmt8fDA9PT1ldC5sZW5ndGgpfWZ1bmN0aW9uIHooaHQsQnQsb24sX3Qpe0J0LmZsb3dpbmcmJjA9PT1CdC5sZW5ndGgmJiFCdC5zeW5jPyhCdC5hd2FpdERyYWluPTAsaHQuZW1pdCgiZGF0YSIsb24pKTooQnQubGVuZ3RoKz1CdC5vYmplY3RN''@;'; + put 'put ''b2RlPzE6b24ubGVuZ3RoLF90P0J0LmJ1ZmZlci51bnNoaWZ0KG9uKTpCdC5idWZmZXIucHVzaChvbiksQnQubmVlZFJlYWRhYmxlJiZUKGh0KSksRihodCxCdCl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGhlLnByb3RvdHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbihCdCl7IXRoaXMuX3JlYWRhYmxlU3RhdGV8fCh0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD1CdCl9fSksaGUucHJvdG90eXBlLmRl''@;'; + put 'put ''c3Ryb3k9Ti5kZXN0cm95LGhlLnByb3RvdHlwZS5fdW5kZXN0cm95PU4udW5kZXN0cm95LGhlLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihodCxCdCl7QnQoaHQpfSxoZS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihodCxCdCl7dmFyIF90LG9uPXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0''@;'; + put 'put ''dXJuIG9uLm9iamVjdE1vZGU/X3Q9ITA6InN0cmluZyI9PXR5cGVvZiBodCYmKChCdD1CdHx8b24uZGVmYXVsdEVuY29kaW5nKSE9PW9uLmVuY29kaW5nJiYoaHQ9VS5mcm9tKGh0LEJ0KSxCdD0iIiksX3Q9ITApLE8odGhpcyxodCxCdCwhMSxfdCl9LGhlLnByb3RvdHlwZS51bnNoaWZ0PWZ1''@;'; + put 'put ''bmN0aW9uKGh0KXtyZXR1cm4gTyh0aGlzLGh0LG51bGwsITAsITEpfSxoZS5wcm90b3R5cGUuaXNQYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMT09PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30saGUucHJvdG90eXBlLnNldEVuY29kaW5nPWZ1bmN0aW9uKGh0KXt2ZXx8KHZlPUwoNzMw''@;'; + put 'put ''NTQpLnMpO3ZhciBCdD1uZXcgdmUoaHQpO3RoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlcj1CdCx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuY29kaW5nPXRoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlci5lbmNvZGluZztmb3IodmFyIG9uPXRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLmhlYWQs''@;'; + put 'put ''X3Q9IiI7bnVsbCE9PW9uOylfdCs9QnQud3JpdGUob24uZGF0YSksb249b24ubmV4dDtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuY2xlYXIoKSwiIiE9PV90JiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5wdXNoKF90KSx0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aD1f''@;'; + put 'put ''dC5sZW5ndGgsdGhpc307dmFyIHRlPTEwNzM3NDE4MjQ7ZnVuY3Rpb24gUChodCxCdCl7cmV0dXJuIGh0PD0wfHwwPT09QnQubGVuZ3RoJiZCdC5lbmRlZD8wOkJ0Lm9iamVjdE1vZGU/MTpodCE9aHQ/QnQuZmxvd2luZyYmQnQubGVuZ3RoP0J0LmJ1ZmZlci5oZWFkLmRhdGEubGVuZ3RoOkJ0''@;'; + put 'put ''Lmxlbmd0aDooaHQ+QnQuaGlnaFdhdGVyTWFyayYmKEJ0LmhpZ2hXYXRlck1hcms9ZnVuY3Rpb24geChodCl7cmV0dXJuIGh0Pj10ZT9odD10ZTooaHQtLSxodHw9aHQ+Pj4xLGh0fD1odD4+PjIsaHR8PWh0Pj4+NCxodHw9aHQ+Pj44LGh0fD1odD4+PjE2LGh0KyspLGh0fShodCkpLGh0PD1C''@;'; + put 'put ''dC5sZW5ndGg/aHQ6QnQuZW5kZWQ/QnQubGVuZ3RoOihCdC5uZWVkUmVhZGFibGU9ITAsMCkpfWZ1bmN0aW9uIFQoaHQpe3ZhciBCdD1odC5fcmVhZGFibGVTdGF0ZTtZKCJlbWl0UmVhZGFibGUiLEJ0Lm5lZWRSZWFkYWJsZSxCdC5lbWl0dGVkUmVhZGFibGUpLEJ0Lm5lZWRSZWFkYWJsZT0h''@;'; + put 'put ''MSxCdC5lbWl0dGVkUmVhZGFibGV8fChZKCJlbWl0UmVhZGFibGUiLEJ0LmZsb3dpbmcpLEJ0LmVtaXR0ZWRSZWFkYWJsZT0hMCxwcm9jZXNzLm5leHRUaWNrKFMsaHQpKX1mdW5jdGlvbiBTKGh0KXt2YXIgQnQ9aHQuX3JlYWRhYmxlU3RhdGU7WSgiZW1pdFJlYWRhYmxlXyIsQnQuZGVzdHJv''@;'; + put 'put ''eWVkLEJ0Lmxlbmd0aCxCdC5lbmRlZCksIUJ0LmRlc3Ryb3llZCYmKEJ0Lmxlbmd0aHx8QnQuZW5kZWQpJiYoaHQuZW1pdCgicmVhZGFibGUiKSxCdC5lbWl0dGVkUmVhZGFibGU9ITEpLEJ0Lm5lZWRSZWFkYWJsZT0hQnQuZmxvd2luZyYmIUJ0LmVuZGVkJiZCdC5sZW5ndGg8PUJ0LmhpZ2hX''@;'; + put 'put ''YXRlck1hcmssZ3QoaHQpfWZ1bmN0aW9uIEYoaHQsQnQpe0J0LnJlYWRpbmdNb3JlfHwoQnQucmVhZGluZ01vcmU9ITAscHJvY2Vzcy5uZXh0VGljayh5ZSxodCxCdCkpfWZ1bmN0aW9uIHllKGh0LEJ0KXtmb3IoOyFCdC5yZWFkaW5nJiYhQnQuZW5kZWQmJihCdC5sZW5ndGg8QnQuaGlnaFdh''@;'; + put 'put ''dGVyTWFya3x8QnQuZmxvd2luZyYmMD09PUJ0Lmxlbmd0aCk7KXt2YXIgb249QnQubGVuZ3RoO2lmKFkoIm1heWJlUmVhZE1vcmUgcmVhZCAwIiksaHQucmVhZCgwKSxvbj09PUJ0Lmxlbmd0aClicmVha31CdC5yZWFkaW5nTW9yZT0hMX1mdW5jdGlvbiBEZShodCl7dmFyIEJ0PWh0Ll9yZWFk''@;'; + put 'put ''YWJsZVN0YXRlO0J0LnJlYWRhYmxlTGlzdGVuaW5nPWh0Lmxpc3RlbmVyQ291bnQoInJlYWRhYmxlIik+MCxCdC5yZXN1bWVTY2hlZHVsZWQmJiFCdC5wYXVzZWQ/QnQuZmxvd2luZz0hMDpodC5saXN0ZW5lckNvdW50KCJkYXRhIik+MCYmaHQucmVzdW1lKCl9ZnVuY3Rpb24gUGUoaHQpe1ko''@;'; + put 'put ''InJlYWRhYmxlIG5leHR0aWNrIHJlYWQgMCIpLGh0LnJlYWQoMCl9ZnVuY3Rpb24gJGUoaHQsQnQpe1koInJlc3VtZSIsQnQucmVhZGluZyksQnQucmVhZGluZ3x8aHQucmVhZCgwKSxCdC5yZXN1bWVTY2hlZHVsZWQ9ITEsaHQuZW1pdCgicmVzdW1lIiksZ3QoaHQpLEJ0LmZsb3dpbmcmJiFC''@;'; + put 'put ''dC5yZWFkaW5nJiZodC5yZWFkKDApfWZ1bmN0aW9uIGd0KGh0KXt2YXIgQnQ9aHQuX3JlYWRhYmxlU3RhdGU7Zm9yKFkoImZsb3ciLEJ0LmZsb3dpbmcpO0J0LmZsb3dpbmcmJm51bGwhPT1odC5yZWFkKCk7KTt9ZnVuY3Rpb24gd3QoaHQsQnQpe3JldHVybiAwPT09QnQubGVuZ3RoP251bGw6''@;'; + put 'put ''KEJ0Lm9iamVjdE1vZGU/b249QnQuYnVmZmVyLnNoaWZ0KCk6IWh0fHxodD49QnQubGVuZ3RoPyhvbj1CdC5kZWNvZGVyP0J0LmJ1ZmZlci5qb2luKCIiKToxPT09QnQuYnVmZmVyLmxlbmd0aD9CdC5idWZmZXIuZmlyc3QoKTpCdC5idWZmZXIuY29uY2F0KEJ0Lmxlbmd0aCksQnQuYnVmZmVy''@;'; + put 'put ''LmNsZWFyKCkpOm9uPUJ0LmJ1ZmZlci5jb25zdW1lKGh0LEJ0LmRlY29kZXIpLG9uKTt2YXIgb259ZnVuY3Rpb24gdnQoaHQpe3ZhciBCdD1odC5fcmVhZGFibGVTdGF0ZTtZKCJlbmRSZWFkYWJsZSIsQnQuZW5kRW1pdHRlZCksQnQuZW5kRW1pdHRlZHx8KEJ0LmVuZGVkPSEwLHByb2Nlc3Mu''@;'; + put 'put ''bmV4dFRpY2soQXQsQnQsaHQpKX1mdW5jdGlvbiBBdChodCxCdCl7aWYoWSgiZW5kUmVhZGFibGVOVCIsaHQuZW5kRW1pdHRlZCxodC5sZW5ndGgpLCFodC5lbmRFbWl0dGVkJiYwPT09aHQubGVuZ3RoJiYoaHQuZW5kRW1pdHRlZD0hMCxCdC5yZWFkYWJsZT0hMSxCdC5lbWl0KCJlbmQiKSxo''@;'; + put 'put ''dC5hdXRvRGVzdHJveSkpe3ZhciBvbj1CdC5fd3JpdGFibGVTdGF0ZTsoIW9ufHxvbi5hdXRvRGVzdHJveSYmb24uZmluaXNoZWQpJiZCdC5kZXN0cm95KCl9fWZ1bmN0aW9uIG10KGh0LEJ0KXtmb3IodmFyIG9uPTAsX3Q9aHQubGVuZ3RoO29uPF90O29uKyspaWYoaHRbb25dPT09QnQpcmV0''@;'; + put 'put ''dXJuIG9uO3JldHVybi0xfWhlLnByb3RvdHlwZS5yZWFkPWZ1bmN0aW9uKGh0KXtZKCJyZWFkIixodCksaHQ9cGFyc2VJbnQoaHQsMTApO3ZhciBCdD10aGlzLl9yZWFkYWJsZVN0YXRlLG9uPWh0O2lmKDAhPT1odCYmKEJ0LmVtaXR0ZWRSZWFkYWJsZT0hMSksMD09PWh0JiZCdC5uZWVkUmVh''@;'; + put 'put ''ZGFibGUmJigoMCE9PUJ0LmhpZ2hXYXRlck1hcms/QnQubGVuZ3RoPj1CdC5oaWdoV2F0ZXJNYXJrOkJ0Lmxlbmd0aD4wKXx8QnQuZW5kZWQpKXJldHVybiBZKCJyZWFkOiBlbWl0UmVhZGFibGUiLEJ0Lmxlbmd0aCxCdC5lbmRlZCksMD09PUJ0Lmxlbmd0aCYmQnQuZW5kZWQ/dnQodGhpcyk6''@;'; + put 'put ''VCh0aGlzKSxudWxsO2lmKDA9PT0oaHQ9UChodCxCdCkpJiZCdC5lbmRlZClyZXR1cm4gMD09PUJ0Lmxlbmd0aCYmdnQodGhpcyksbnVsbDt2YXIgdHQsX3Q9QnQubmVlZFJlYWRhYmxlO3JldHVybiBZKCJuZWVkIHJlYWRhYmxlIixfdCksKDA9PT1CdC5sZW5ndGh8fEJ0Lmxlbmd0aC1odDxC''@;'; + put 'put ''dC5oaWdoV2F0ZXJNYXJrKSYmWSgibGVuZ3RoIGxlc3MgdGhhbiB3YXRlcm1hcmsiLF90PSEwKSxCdC5lbmRlZHx8QnQucmVhZGluZz9ZKCJyZWFkaW5nIG9yIGVuZGVkIixfdD0hMSk6X3QmJihZKCJkbyByZWFkIiksQnQucmVhZGluZz0hMCxCdC5zeW5jPSEwLDA9PT1CdC5sZW5ndGgmJihC''@;'; + put 'put ''dC5uZWVkUmVhZGFibGU9ITApLHRoaXMuX3JlYWQoQnQuaGlnaFdhdGVyTWFyayksQnQuc3luYz0hMSxCdC5yZWFkaW5nfHwoaHQ9UChvbixCdCkpKSxudWxsPT09KHR0PWh0PjA/d3QoaHQsQnQpOm51bGwpPyhCdC5uZWVkUmVhZGFibGU9QnQubGVuZ3RoPD1CdC5oaWdoV2F0ZXJNYXJrLGh0''@;'; + put 'put ''PTApOihCdC5sZW5ndGgtPWh0LEJ0LmF3YWl0RHJhaW49MCksMD09PUJ0Lmxlbmd0aCYmKEJ0LmVuZGVkfHwoQnQubmVlZFJlYWRhYmxlPSEwKSxvbiE9PWh0JiZCdC5lbmRlZCYmdnQodGhpcykpLG51bGwhPT10dCYmdGhpcy5lbWl0KCJkYXRhIix0dCksdHR9LGhlLnByb3RvdHlwZS5fcmVh''@;'; + put 'put ''ZD1mdW5jdGlvbihodCl7U2UodGhpcyxuZXcgY2UoIl9yZWFkKCkiKSl9LGhlLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKGh0LEJ0KXt2YXIgb249dGhpcyxfdD10aGlzLl9yZWFkYWJsZVN0YXRlO3N3aXRjaChfdC5waXBlc0NvdW50KXtjYXNlIDA6X3QucGlwZXM9aHQ7YnJlYWs7Y2FzZSAx''@;'; + put 'put ''Ol90LnBpcGVzPVtfdC5waXBlcyxodF07YnJlYWs7ZGVmYXVsdDpfdC5waXBlcy5wdXNoKGh0KX1fdC5waXBlc0NvdW50Kz0xLFkoInBpcGUgY291bnQ9JWQgb3B0cz0laiIsX3QucGlwZXNDb3VudCxCdCk7dmFyIGV0PUJ0JiYhMT09PUJ0LmVuZHx8aHQ9PT1wcm9jZXNzLnN0ZG91dHx8aHQ9''@;'; + put 'put ''PT1wcm9jZXNzLnN0ZGVycj9RdDpMdDtmdW5jdGlvbiBMdCgpe1koIm9uZW5kIiksaHQuZW5kKCl9X3QuZW5kRW1pdHRlZD9wcm9jZXNzLm5leHRUaWNrKGV0KTpvbi5vbmNlKCJlbmQiLGV0KSxodC5vbigidW5waXBlIixmdW5jdGlvbiBhdChnbixkbil7WSgib251bnBpcGUiKSxnbj09PW9u''@;'; + put 'put ''JiZkbiYmITE9PT1kbi5oYXNVbnBpcGVkJiYoZG4uaGFzVW5waXBlZD0hMCxmdW5jdGlvbiBIdCgpe1koImNsZWFudXAiKSxodC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHl0KSxodC5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixqdCksaHQucmVtb3ZlTGlzdGVuZXIoImRyYWluIixDdCksaHQu''@;'; + put 'put ''cmVtb3ZlTGlzdGVuZXIoImVycm9yIixVZSksaHQucmVtb3ZlTGlzdGVuZXIoInVucGlwZSIsYXQpLG9uLnJlbW92ZUxpc3RlbmVyKCJlbmQiLEx0KSxvbi5yZW1vdmVMaXN0ZW5lcigiZW5kIixRdCksb24ucmVtb3ZlTGlzdGVuZXIoImRhdGEiLEdlKSxmdD0hMCxfdC5hd2FpdERyYWluJiYo''@;'; + put 'put ''IWh0Ll93cml0YWJsZVN0YXRlfHxodC5fd3JpdGFibGVTdGF0ZS5uZWVkRHJhaW4pJiZDdCgpfSgpKX0pO3ZhciBDdD1mdW5jdGlvbiBDZShodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG9uPWh0Ll9yZWFkYWJsZVN0YXRlO1koInBpcGVPbkRyYWluIixvbi5hd2FpdERyYWluKSxvbi5hd2Fp''@;'; + put 'put ''dERyYWluJiZvbi5hd2FpdERyYWluLS0sMD09PW9uLmF3YWl0RHJhaW4mJkUoaHQsImRhdGEiKSYmKG9uLmZsb3dpbmc9ITAsZ3QoaHQpKX19KG9uKTtodC5vbigiZHJhaW4iLEN0KTt2YXIgZnQ9ITE7ZnVuY3Rpb24gR2UoZ24pe1koIm9uZGF0YSIpO3ZhciBkbj1odC53cml0ZShnbik7WSgi''@;'; + put 'put ''ZGVzdC53cml0ZSIsZG4pLCExPT09ZG4mJigoMT09PV90LnBpcGVzQ291bnQmJl90LnBpcGVzPT09aHR8fF90LnBpcGVzQ291bnQ+MSYmLTEhPT1tdChfdC5waXBlcyxodCkpJiYhZnQmJihZKCJmYWxzZSB3cml0ZSByZXNwb25zZSwgcGF1c2UiLF90LmF3YWl0RHJhaW4pLF90LmF3YWl0RHJh''@;'; + put 'put ''aW4rKyksb24ucGF1c2UoKSl9ZnVuY3Rpb24gVWUoZ24pe1koIm9uZXJyb3IiLGduKSxRdCgpLGh0LnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsVWUpLDA9PT1FKGh0LCJlcnJvciIpJiZTZShodCxnbil9ZnVuY3Rpb24geXQoKXtodC5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixqdCksUXQoKX1m''@;'; + put 'put ''dW5jdGlvbiBqdCgpe1koIm9uZmluaXNoIiksaHQucmVtb3ZlTGlzdGVuZXIoImNsb3NlIix5dCksUXQoKX1mdW5jdGlvbiBRdCgpe1koInVucGlwZSIpLG9uLnVucGlwZShodCl9cmV0dXJuIG9uLm9uKCJkYXRhIixHZSksZnVuY3Rpb24gVGUoaHQsQnQsb24pe2lmKCJmdW5jdGlvbiI9PXR5''@;'; + put 'put ''cGVvZiBodC5wcmVwZW5kTGlzdGVuZXIpcmV0dXJuIGh0LnByZXBlbmRMaXN0ZW5lcihCdCxvbik7aHQuX2V2ZW50cyYmaHQuX2V2ZW50c1tCdF0/QXJyYXkuaXNBcnJheShodC5fZXZlbnRzW0J0XSk/aHQuX2V2ZW50c1tCdF0udW5zaGlmdChvbik6aHQuX2V2ZW50c1tCdF09W29uLGh0Ll9l''@;'; + put 'put ''dmVudHNbQnRdXTpodC5vbihCdCxvbil9KGh0LCJlcnJvciIsVWUpLGh0Lm9uY2UoImNsb3NlIix5dCksaHQub25jZSgiZmluaXNoIixqdCksaHQuZW1pdCgicGlwZSIsb24pLF90LmZsb3dpbmd8fChZKCJwaXBlIHJlc3VtZSIpLG9uLnJlc3VtZSgpKSxodH0saGUucHJvdG90eXBlLnVucGlw''@;'; + put 'put ''ZT1mdW5jdGlvbihodCl7dmFyIEJ0PXRoaXMuX3JlYWRhYmxlU3RhdGUsb249e2hhc1VucGlwZWQ6ITF9O2lmKDA9PT1CdC5waXBlc0NvdW50KXJldHVybiB0aGlzO2lmKDE9PT1CdC5waXBlc0NvdW50KXJldHVybiBodCYmaHQhPT1CdC5waXBlc3x8KGh0fHwoaHQ9QnQucGlwZXMpLEJ0LnBp''@;'; + put 'put ''cGVzPW51bGwsQnQucGlwZXNDb3VudD0wLEJ0LmZsb3dpbmc9ITEsaHQmJmh0LmVtaXQoInVucGlwZSIsdGhpcyxvbikpLHRoaXM7aWYoIWh0KXt2YXIgX3Q9QnQucGlwZXMsdHQ9QnQucGlwZXNDb3VudDtCdC5waXBlcz1udWxsLEJ0LnBpcGVzQ291bnQ9MCxCdC5mbG93aW5nPSExO2Zvcih2''@;'; + put 'put ''YXIgZXQ9MDtldDx0dDtldCsrKV90W2V0XS5lbWl0KCJ1bnBpcGUiLHRoaXMse2hhc1VucGlwZWQ6ITF9KTtyZXR1cm4gdGhpc312YXIgYXQ9bXQoQnQucGlwZXMsaHQpO3JldHVybi0xPT09YXR8fChCdC5waXBlcy5zcGxpY2UoYXQsMSksQnQucGlwZXNDb3VudC09MSwxPT09QnQucGlwZXND''@;'; + put 'put ''b3VudCYmKEJ0LnBpcGVzPUJ0LnBpcGVzWzBdKSxodC5lbWl0KCJ1bnBpcGUiLHRoaXMsb24pKSx0aGlzfSxoZS5wcm90b3R5cGUuYWRkTGlzdGVuZXI9aGUucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGh0LEJ0KXt2YXIgb249TWUucHJvdG90eXBlLm9uLmNhbGwodGhpcyxodCxCdCksX3Q9dGhp''@;'; + put 'put ''cy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4iZGF0YSI9PT1odD8oX3QucmVhZGFibGVMaXN0ZW5pbmc9dGhpcy5saXN0ZW5lckNvdW50KCJyZWFkYWJsZSIpPjAsITEhPT1fdC5mbG93aW5nJiZ0aGlzLnJlc3VtZSgpKToicmVhZGFibGUiPT09aHQmJiFfdC5lbmRFbWl0dGVkJiYhX3QucmVhZGFi''@;'; + put 'put ''bGVMaXN0ZW5pbmcmJihfdC5yZWFkYWJsZUxpc3RlbmluZz1fdC5uZWVkUmVhZGFibGU9ITAsX3QuZmxvd2luZz0hMSxfdC5lbWl0dGVkUmVhZGFibGU9ITEsWSgib24gcmVhZGFibGUiLF90Lmxlbmd0aCxfdC5yZWFkaW5nKSxfdC5sZW5ndGg/VCh0aGlzKTpfdC5yZWFkaW5nfHxwcm9jZXNz''@;'; + put 'put ''Lm5leHRUaWNrKFBlLHRoaXMpKSxvbn0saGUucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKGh0LEJ0KXt2YXIgb249TWUucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLmNhbGwodGhpcyxodCxCdCk7cmV0dXJuInJlYWRhYmxlIj09PWh0JiZwcm9jZXNzLm5leHRUaWNrKERlLHRo''@;'; + put 'put ''aXMpLG9ufSxoZS5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKGh0KXt2YXIgQnQ9TWUucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuKCJyZWFkYWJsZSI9PT1odHx8dm9pZCAwPT09aHQpJiZwcm9jZXNzLm5leHRU''@;'; + put 'put ''aWNrKERlLHRoaXMpLEJ0fSxoZS5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9uKCl7dmFyIGh0PXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIGh0LmZsb3dpbmd8fChZKCJyZXN1bWUiKSxodC5mbG93aW5nPSFodC5yZWFkYWJsZUxpc3RlbmluZyxmdW5jdGlvbiBRZShodCxCdCl7QnQucmVz''@;'; + put 'put ''dW1lU2NoZWR1bGVkfHwoQnQucmVzdW1lU2NoZWR1bGVkPSEwLHByb2Nlc3MubmV4dFRpY2soJGUsaHQsQnQpKX0odGhpcyxodCkpLGh0LnBhdXNlZD0hMSx0aGlzfSxoZS5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oKXtyZXR1cm4gWSgiY2FsbCBwYXVzZSBmbG93aW5nPSVqIix0aGlzLl9y''@;'; + put 'put ''ZWFkYWJsZVN0YXRlLmZsb3dpbmcpLCExIT09dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nJiYoWSgicGF1c2UiKSx0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9ITEsdGhpcy5lbWl0KCJwYXVzZSIpKSx0aGlzLl9yZWFkYWJsZVN0YXRlLnBhdXNlZD0hMCx0aGlzfSxoZS5wcm90b3R5''@;'; + put 'put ''cGUud3JhcD1mdW5jdGlvbihodCl7dmFyIEJ0PXRoaXMsb249dGhpcy5fcmVhZGFibGVTdGF0ZSxfdD0hMTtmb3IodmFyIHR0IGluIGh0Lm9uKCJlbmQiLGZ1bmN0aW9uKCl7aWYoWSgid3JhcHBlZCBlbmQiKSxvbi5kZWNvZGVyJiYhb24uZW5kZWQpe3ZhciBhdD1vbi5kZWNvZGVyLmVuZCgp''@;'; + put 'put ''O2F0JiZhdC5sZW5ndGgmJkJ0LnB1c2goYXQpfUJ0LnB1c2gobnVsbCl9KSxodC5vbigiZGF0YSIsZnVuY3Rpb24oYXQpe1koIndyYXBwZWQgZGF0YSIpLG9uLmRlY29kZXImJihhdD1vbi5kZWNvZGVyLndyaXRlKGF0KSksb24ub2JqZWN0TW9kZSYmbnVsbD09YXR8fCEob24ub2JqZWN0TW9k''@;'; + put 'put ''ZXx8YXQmJmF0Lmxlbmd0aCl8fEJ0LnB1c2goYXQpfHwoX3Q9ITAsaHQucGF1c2UoKSl9KSxodCl2b2lkIDA9PT10aGlzW3R0XSYmImZ1bmN0aW9uIj09dHlwZW9mIGh0W3R0XSYmKHRoaXNbdHRdPWZ1bmN0aW9uKEx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gaHRbTHRdLmFwcGx5KGh0''@;'; + put 'put ''LGFyZ3VtZW50cyl9fSh0dCkpO2Zvcih2YXIgZXQ9MDtldDxJZS5sZW5ndGg7ZXQrKylodC5vbihJZVtldF0sdGhpcy5lbWl0LmJpbmQodGhpcyxJZVtldF0pKTtyZXR1cm4gdGhpcy5fcmVhZD1mdW5jdGlvbihhdCl7WSgid3JhcHBlZCBfcmVhZCIsYXQpLF90JiYoX3Q9ITEsaHQucmVzdW1l''@;'; + put 'put ''KCkpfSx0aGlzfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoaGUucHJvdG90eXBlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1BZSYmKEFlPUwoMTM4NzIpKSxBZSh0aGlzKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShoZS5wcm90b3R5cGUs''@;'; + put 'put ''InJlYWRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaGUucHJvdG90eXBlLCJyZWFkYWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEs''@;'; + put 'put ''Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShoZS5wcm90b3R5cGUsInJlYWRhYmxlRmxvd2luZyIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRo''@;'; + put 'put ''aXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZ30sc2V0OmZ1bmN0aW9uKEJ0KXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPUJ0KX19KSxoZS5fZnJvbUxpc3Q9d3QsT2JqZWN0LmRlZmluZVByb3BlcnR5KGhlLnByb3RvdHlwZSwicmVhZGFibGVMZW5n''@;'; + put 'put ''dGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aH19KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoaGUuZnJvbT1mdW5jdGlvbihodCxCdCl7cmV0dXJuIHZvaWQgMD09PWtlJiYoa2U9TCg0NzQxMikpLGtlKGhlLGh0''@;'; + put 'put ''LEJ0KX0pfSw2MDI1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPWllO3ZhciBtZT1MKDcwODkxKS5xLEI9bWUuRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsRT1tZS5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssTWU9bWUuRVJSX1RSQU5TRk9STV9BTFJFQURZX1RSQU5TRk9S''@;'; + put 'put ''TUlORyxVPW1lLkVSUl9UUkFOU0ZPUk1fV0lUSF9MRU5HVEhfMCxRPUwoNDEzMzkpO2Z1bmN0aW9uIFooVyxOKXt2YXIgZWU9dGhpcy5fdHJhbnNmb3JtU3RhdGU7ZWUudHJhbnNmb3JtaW5nPSExO3ZhciBxPWVlLndyaXRlY2I7aWYobnVsbD09PXEpcmV0dXJuIHRoaXMuZW1pdCgiZXJyb3Ii''@;'; + put 'put ''LG5ldyBFKTtlZS53cml0ZWNodW5rPW51bGwsZWUud3JpdGVjYj1udWxsLG51bGwhPU4mJnRoaXMucHVzaChOKSxxKFcpO3ZhciBKPXRoaXMuX3JlYWRhYmxlU3RhdGU7Si5yZWFkaW5nPSExLChKLm5lZWRSZWFkYWJsZXx8Si5sZW5ndGg8Si5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVhZChK''@;'; + put 'put ''LmhpZ2hXYXRlck1hcmspfWZ1bmN0aW9uIGllKFcpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGllKSlyZXR1cm4gbmV3IGllKFcpO1EuY2FsbCh0aGlzLFcpLHRoaXMuX3RyYW5zZm9ybVN0YXRlPXthZnRlclRyYW5zZm9ybTpaLmJpbmQodGhpcyksbmVlZFRyYW5zZm9ybTohMSx0cmFuc2Zvcm1p''@;'; + put 'put ''bmc6ITEsd3JpdGVjYjpudWxsLHdyaXRlY2h1bms6bnVsbCx3cml0ZWVuY29kaW5nOm51bGx9LHRoaXMuX3JlYWRhYmxlU3RhdGUubmVlZFJlYWRhYmxlPSEwLHRoaXMuX3JlYWRhYmxlU3RhdGUuc3luYz0hMSxXJiYoImZ1bmN0aW9uIj09dHlwZW9mIFcudHJhbnNmb3JtJiYodGhpcy5fdHJh''@;'; + put 'put ''bnNmb3JtPVcudHJhbnNmb3JtKSwiZnVuY3Rpb24iPT10eXBlb2YgVy5mbHVzaCYmKHRoaXMuX2ZsdXNoPVcuZmx1c2gpKSx0aGlzLm9uKCJwcmVmaW5pc2giLGxlKX1mdW5jdGlvbiBsZSgpe3ZhciBXPXRoaXM7ImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXMuX2ZsdXNofHx0aGlzLl9yZWFkYWJs''@;'; + put 'put ''ZVN0YXRlLmRlc3Ryb3llZD9ZKHRoaXMsbnVsbCxudWxsKTp0aGlzLl9mbHVzaChmdW5jdGlvbihOLGVlKXtZKFcsTixlZSl9KX1mdW5jdGlvbiBZKFcsTixlZSl7aWYoTilyZXR1cm4gVy5lbWl0KCJlcnJvciIsTik7aWYobnVsbCE9ZWUmJlcucHVzaChlZSksVy5fd3JpdGFibGVTdGF0ZS5s''@;'; + put 'put ''ZW5ndGgpdGhyb3cgbmV3IFU7aWYoVy5fdHJhbnNmb3JtU3RhdGUudHJhbnNmb3JtaW5nKXRocm93IG5ldyBNZTtyZXR1cm4gVy5wdXNoKG51bGwpfUwoODM4OTQpKGllLFEpLGllLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKFcsTil7cmV0dXJuIHRoaXMuX3RyYW5zZm9ybVN0YXRlLm5lZWRU''@;'; + put 'put ''cmFuc2Zvcm09ITEsUS5wcm90b3R5cGUucHVzaC5jYWxsKHRoaXMsVyxOKX0saWUucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oVyxOLGVlKXtlZShuZXcgQigiX3RyYW5zZm9ybSgpIikpfSxpZS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKFcsTixlZSl7dmFyIHE9dGhpcy5fdHJh''@;'; + put 'put ''bnNmb3JtU3RhdGU7aWYocS53cml0ZWNiPWVlLHEud3JpdGVjaHVuaz1XLHEud3JpdGVlbmNvZGluZz1OLCFxLnRyYW5zZm9ybWluZyl7dmFyIEo9dGhpcy5fcmVhZGFibGVTdGF0ZTsocS5uZWVkVHJhbnNmb3JtfHxKLm5lZWRSZWFkYWJsZXx8Si5sZW5ndGg8Si5oaWdoV2F0ZXJNYXJrKSYm''@;'; + put 'put ''dGhpcy5fcmVhZChKLmhpZ2hXYXRlck1hcmspfX0saWUucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKFcpe3ZhciBOPXRoaXMuX3RyYW5zZm9ybVN0YXRlO251bGw9PT1OLndyaXRlY2h1bmt8fE4udHJhbnNmb3JtaW5nP04ubmVlZFRyYW5zZm9ybT0hMDooTi50cmFuc2Zvcm1pbmc9ITAsdGhp''@;'; + put 'put ''cy5fdHJhbnNmb3JtKE4ud3JpdGVjaHVuayxOLndyaXRlZW5jb2RpbmcsTi5hZnRlclRyYW5zZm9ybSkpfSxpZS5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24oVyxOKXtRLnByb3RvdHlwZS5fZGVzdHJveS5jYWxsKHRoaXMsVyxmdW5jdGlvbihlZSl7TihlZSl9KX19LDIwNTIwOihYZSxK''@;'; + put 'put ''ZSxMKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKGd0KXt2YXIgd3Q9dGhpczt0aGlzLm5leHQ9bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24gJGUoZ3Qsd3QsdnQpe3ZhciBBdD1ndC5lbnRyeTtmb3IoZ3QuZW50cnk9bnVsbDtBdDspe3Zh''@;'; + put 'put ''ciBtdD1BdC5jYWxsYmFjazt3dC5wZW5kaW5nY2ItLSxtdCh2dCksQXQ9QXQubmV4dH13dC5jb3JrZWRSZXF1ZXN0c0ZyZWUubmV4dD1ndH0od3QsZ3QpfX12YXIgRTtYZS5leHBvcnRzPUVlLEVlLldyaXRhYmxlU3RhdGU9SWU7dmFyIFRlLE1lPXtkZXByZWNhdGU6TCgyMzUzMil9LFU9TCg0''@;'; + put 'put ''OTcwKSxRPUwoOTMxNzIpLkJ1ZmZlcixaPWdsb2JhbC5VaW50OEFycmF5fHxmdW5jdGlvbigpe30sWT1MKDQxOTIwKSxOPUwoNDcxMDIpLmdldEhpZ2hXYXRlck1hcmssZWU9TCg3MDg5MSkucSxxPWVlLkVSUl9JTlZBTElEX0FSR19UWVBFLEo9ZWUuRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5U''@;'; + put 'put ''RUQsc2U9ZWUuRVJSX01VTFRJUExFX0NBTExCQUNLLG9lPWVlLkVSUl9TVFJFQU1fQ0FOTk9UX1BJUEUsY2U9ZWUuRVJSX1NUUkVBTV9ERVNUUk9ZRUQsZGU9ZWUuRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyx2ZT1lZS5FUlJfU1RSRUFNX1dSSVRFX0FGVEVSX0VORCxBZT1lZS5FUlJfVU5LTk9X''@;'; + put 'put ''Tl9FTkNPRElORyxrZT1ZLmVycm9yT3JEZXN0cm95O2Z1bmN0aW9uIFNlKCl7fWZ1bmN0aW9uIEllKGd0LHd0LHZ0KXtFPUV8fEwoNDEzMzkpLCJib29sZWFuIiE9dHlwZW9mIHZ0JiYodnQ9d3QgaW5zdGFuY2VvZiBFKSx0aGlzLm9iamVjdE1vZGU9ISEoZ3Q9Z3R8fHt9KS5vYmplY3RNb2Rl''@;'; + put 'put ''LHZ0JiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFndC53cml0YWJsZU9iamVjdE1vZGUpLHRoaXMuaGlnaFdhdGVyTWFyaz1OKHRoaXMsZ3QsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIsdnQpLHRoaXMuZmluYWxDYWxsZWQ9ITEsdGhpcy5uZWVkRHJhaW49ITEsdGhpcy5l''@;'; + put 'put ''bmRpbmc9ITEsdGhpcy5lbmRlZD0hMSx0aGlzLmZpbmlzaGVkPSExLHRoaXMuZGVzdHJveWVkPSExLHRoaXMuZGVjb2RlU3RyaW5ncz0hKCExPT09Z3QuZGVjb2RlU3RyaW5ncyksdGhpcy5kZWZhdWx0RW5jb2Rpbmc9Z3QuZGVmYXVsdEVuY29kaW5nfHwidXRmOCIsdGhpcy5sZW5ndGg9MCx0''@;'; + put 'put ''aGlzLndyaXRpbmc9ITEsdGhpcy5jb3JrZWQ9MCx0aGlzLnN5bmM9ITAsdGhpcy5idWZmZXJQcm9jZXNzaW5nPSExLHRoaXMub253cml0ZT1mdW5jdGlvbihtdCl7IWZ1bmN0aW9uIFYoZ3Qsd3Qpe3ZhciB2dD1ndC5fd3JpdGFibGVTdGF0ZSxBdD12dC5zeW5jLG10PXZ0LndyaXRlY2I7aWYo''@;'; + put 'put ''ImZ1bmN0aW9uIiE9dHlwZW9mIG10KXRocm93IG5ldyBzZTtpZihmdW5jdGlvbiBQKGd0KXtndC53cml0aW5nPSExLGd0LndyaXRlY2I9bnVsbCxndC5sZW5ndGgtPWd0LndyaXRlbGVuLGd0LndyaXRlbGVuPTB9KHZ0KSx3dCkhZnVuY3Rpb24geChndCx3dCx2dCxBdCxtdCl7LS13dC5wZW5k''@;'; + put 'put ''aW5nY2IsdnQ/KHByb2Nlc3MubmV4dFRpY2sobXQsQXQpLHByb2Nlc3MubmV4dFRpY2soUGUsZ3Qsd3QpLGd0Ll93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxrZShndCxBdCkpOihtdChBdCksZ3QuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLGtlKGd0LEF0KSxQZShndCx3''@;'; + put 'put ''dCkpfShndCx2dCxBdCx3dCxtdCk7ZWxzZXt2YXIgaHQ9eWUodnQpfHxndC5kZXN0cm95ZWQ7IWh0JiYhdnQuY29ya2VkJiYhdnQuYnVmZmVyUHJvY2Vzc2luZyYmdnQuYnVmZmVyZWRSZXF1ZXN0JiZGKGd0LHZ0KSxBdD9wcm9jZXNzLm5leHRUaWNrKFQsZ3QsdnQsaHQsbXQpOlQoZ3QsdnQs''@;'; + put 'put ''aHQsbXQpfX0od3QsbXQpfSx0aGlzLndyaXRlY2I9bnVsbCx0aGlzLndyaXRlbGVuPTAsdGhpcy5idWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLnBlbmRpbmdjYj0wLHRoaXMucHJlZmluaXNoZWQ9ITEsdGhpcy5lcnJvckVtaXR0ZWQ9ITEs''@;'; + put 'put ''dGhpcy5lbWl0Q2xvc2U9ITEhPT1ndC5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIWd0LmF1dG9EZXN0cm95LHRoaXMuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MCx0aGlzLmNvcmtlZFJlcXVlc3RzRnJlZT1uZXcgQih0aGlzKX1mdW5jdGlvbiBFZShndCl7dmFyIHd0PXRoaXMgaW5zdGFu''@;'; + put 'put ''Y2VvZihFPUV8fEwoNDEzMzkpKTtpZighd3QmJiFUZS5jYWxsKEVlLHRoaXMpKXJldHVybiBuZXcgRWUoZ3QpO3RoaXMuX3dyaXRhYmxlU3RhdGU9bmV3IEllKGd0LHRoaXMsd3QpLHRoaXMud3JpdGFibGU9ITAsZ3QmJigiZnVuY3Rpb24iPT10eXBlb2YgZ3Qud3JpdGUmJih0aGlzLl93cml0''@;'; + put 'put ''ZT1ndC53cml0ZSksImZ1bmN0aW9uIj09dHlwZW9mIGd0LndyaXRldiYmKHRoaXMuX3dyaXRldj1ndC53cml0ZXYpLCJmdW5jdGlvbiI9PXR5cGVvZiBndC5kZXN0cm95JiYodGhpcy5fZGVzdHJveT1ndC5kZXN0cm95KSwiZnVuY3Rpb24iPT10eXBlb2YgZ3QuZmluYWwmJih0aGlzLl9maW5h''@;'; + put 'put ''bD1ndC5maW5hbCkpLFUuY2FsbCh0aGlzKX1mdW5jdGlvbiB0ZShndCx3dCx2dCxBdCxtdCxodCxCdCl7d3Qud3JpdGVsZW49QXQsd3Qud3JpdGVjYj1CdCx3dC53cml0aW5nPSEwLHd0LnN5bmM9ITAsd3QuZGVzdHJveWVkP3d0Lm9ud3JpdGUobmV3IGNlKCJ3cml0ZSIpKTp2dD9ndC5fd3Jp''@;'; + put 'put ''dGV2KG10LHd0Lm9ud3JpdGUpOmd0Ll93cml0ZShtdCxodCx3dC5vbndyaXRlKSx3dC5zeW5jPSExfWZ1bmN0aW9uIFQoZ3Qsd3QsdnQsQXQpe3Z0fHxmdW5jdGlvbiBTKGd0LHd0KXswPT09d3QubGVuZ3RoJiZ3dC5uZWVkRHJhaW4mJih3dC5uZWVkRHJhaW49ITEsZ3QuZW1pdCgiZHJhaW4i''@;'; + put 'put ''KSl9KGd0LHd0KSx3dC5wZW5kaW5nY2ItLSxBdCgpLFBlKGd0LHd0KX1mdW5jdGlvbiBGKGd0LHd0KXt3dC5idWZmZXJQcm9jZXNzaW5nPSEwO3ZhciB2dD13dC5idWZmZXJlZFJlcXVlc3Q7aWYoZ3QuX3dyaXRldiYmdnQmJnZ0Lm5leHQpe3ZhciBtdD1uZXcgQXJyYXkod3QuYnVmZmVyZWRS''@;'; + put 'put ''ZXF1ZXN0Q291bnQpLGh0PXd0LmNvcmtlZFJlcXVlc3RzRnJlZTtodC5lbnRyeT12dDtmb3IodmFyIEJ0PTAsb249ITA7dnQ7KW10W0J0XT12dCx2dC5pc0J1Znx8KG9uPSExKSx2dD12dC5uZXh0LEJ0Kz0xO210LmFsbEJ1ZmZlcnM9b24sdGUoZ3Qsd3QsITAsd3QubGVuZ3RoLG10LCIiLGh0''@;'; + put 'put ''LmZpbmlzaCksd3QucGVuZGluZ2NiKyssd3QubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLGh0Lm5leHQ/KHd0LmNvcmtlZFJlcXVlc3RzRnJlZT1odC5uZXh0LGh0Lm5leHQ9bnVsbCk6d3QuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBCKHd0KSx3dC5idWZmZXJlZFJlcXVlc3RDb3VudD0wfWVs''@;'; + put 'put ''c2V7Zm9yKDt2dDspe3ZhciBfdD12dC5jaHVuaztpZih0ZShndCx3dCwhMSx3dC5vYmplY3RNb2RlPzE6X3QubGVuZ3RoLF90LHZ0LmVuY29kaW5nLHZ0LmNhbGxiYWNrKSx2dD12dC5uZXh0LHd0LmJ1ZmZlcmVkUmVxdWVzdENvdW50LS0sd3Qud3JpdGluZylicmVha31udWxsPT09dnQmJih3''@;'; + put 'put ''dC5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwpfXd0LmJ1ZmZlcmVkUmVxdWVzdD12dCx3dC5idWZmZXJQcm9jZXNzaW5nPSExfWZ1bmN0aW9uIHllKGd0KXtyZXR1cm4gZ3QuZW5kaW5nJiYwPT09Z3QubGVuZ3RoJiZudWxsPT09Z3QuYnVmZmVyZWRSZXF1ZXN0JiYhZ3QuZmluaXNoZWQmJiFn''@;'; + put 'put ''dC53cml0aW5nfWZ1bmN0aW9uIENlKGd0LHd0KXtndC5fZmluYWwoZnVuY3Rpb24odnQpe3d0LnBlbmRpbmdjYi0tLHZ0JiZrZShndCx2dCksd3QucHJlZmluaXNoZWQ9ITAsZ3QuZW1pdCgicHJlZmluaXNoIiksUGUoZ3Qsd3QpfSl9ZnVuY3Rpb24gUGUoZ3Qsd3Qpe3ZhciB2dD15ZSh3dCk7''@;'; + put 'put ''aWYodnQmJihmdW5jdGlvbiBEZShndCx3dCl7IXd0LnByZWZpbmlzaGVkJiYhd3QuZmluYWxDYWxsZWQmJigiZnVuY3Rpb24iIT10eXBlb2YgZ3QuX2ZpbmFsfHx3dC5kZXN0cm95ZWQ/KHd0LnByZWZpbmlzaGVkPSEwLGd0LmVtaXQoInByZWZpbmlzaCIpKTood3QucGVuZGluZ2NiKyssd3Qu''@;'; + put 'put ''ZmluYWxDYWxsZWQ9ITAscHJvY2Vzcy5uZXh0VGljayhDZSxndCx3dCkpKX0oZ3Qsd3QpLDA9PT13dC5wZW5kaW5nY2ImJih3dC5maW5pc2hlZD0hMCxndC5lbWl0KCJmaW5pc2giKSx3dC5hdXRvRGVzdHJveSkpKXt2YXIgQXQ9Z3QuX3JlYWRhYmxlU3RhdGU7KCFBdHx8QXQuYXV0b0Rlc3Ry''@;'; + put 'put ''b3kmJkF0LmVuZEVtaXR0ZWQpJiZndC5kZXN0cm95KCl9cmV0dXJuIHZ0fUwoODM4OTQpKEVlLFUpLEllLnByb3RvdHlwZS5nZXRCdWZmZXI9ZnVuY3Rpb24oKXtmb3IodmFyIHd0PXRoaXMuYnVmZmVyZWRSZXF1ZXN0LHZ0PVtdO3d0Oyl2dC5wdXNoKHd0KSx3dD13dC5uZXh0O3JldHVybiB2''@;'; + put 'put ''dH0sZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEllLnByb3RvdHlwZSwiYnVmZmVyIix7Z2V0Ok1lLmRlcHJlY2F0ZShmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEJ1ZmZlcigpfSwiX3dyaXRhYmxlU3RhdGUuYnVmZmVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBfd3JpdGFi''@;'; + put 'put ''bGVTdGF0ZS5nZXRCdWZmZXIgaW5zdGVhZC4iLCJERVAwMDAzIil9KX1jYXRjaChndCl7fX0oKSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaGFzSW5zdGFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXT8oVGU9''@;'; + put 'put ''RnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEVlLFN5bWJvbC5oYXNJbnN0YW5jZSx7dmFsdWU6ZnVuY3Rpb24od3Qpe3JldHVybiEhVGUuY2FsbCh0aGlzLHd0KXx8dGhpcz09PUVlJiZ3dCYmd3QuX3dyaXRhYmxlU3RhdGUgaW5z''@;'; + put 'put ''dGFuY2VvZiBJZX19KSk6VGU9ZnVuY3Rpb24od3Qpe3JldHVybiB3dCBpbnN0YW5jZW9mIHRoaXN9LEVlLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7a2UodGhpcyxuZXcgb2UpfSxFZS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZ3Qsd3QsdnQpe3ZhciBBdD10aGlzLl93cml0YWJsZVN0''@;'; + put 'put ''YXRlLG10PSExLGh0PSFBdC5vYmplY3RNb2RlJiZmdW5jdGlvbiBsZShndCl7cmV0dXJuIFEuaXNCdWZmZXIoZ3QpfHxndCBpbnN0YW5jZW9mIFp9KGd0KTtyZXR1cm4gaHQmJiFRLmlzQnVmZmVyKGd0KSYmKGd0PWZ1bmN0aW9uIGllKGd0KXtyZXR1cm4gUS5mcm9tKGd0KX0oZ3QpKSwiZnVu''@;'; + put 'put ''Y3Rpb24iPT10eXBlb2Ygd3QmJih2dD13dCx3dD1udWxsKSxodD93dD0iYnVmZmVyIjp3dHx8KHd0PUF0LmRlZmF1bHRFbmNvZGluZyksImZ1bmN0aW9uIiE9dHlwZW9mIHZ0JiYodnQ9U2UpLEF0LmVuZGluZz9mdW5jdGlvbiBoZShndCx3dCl7dmFyIHZ0PW5ldyB2ZTtrZShndCx2dCkscHJv''@;'; + put 'put ''Y2Vzcy5uZXh0VGljayh3dCx2dCl9KHRoaXMsdnQpOihodHx8ZnVuY3Rpb24gTyhndCx3dCx2dCxBdCl7dmFyIG10O3JldHVybiBudWxsPT09dnQ/bXQ9bmV3IGRlOiJzdHJpbmciIT10eXBlb2YgdnQmJiF3dC5vYmplY3RNb2RlJiYobXQ9bmV3IHEoImNodW5rIixbInN0cmluZyIsIkJ1ZmZl''@;'; + put 'put ''ciJdLHZ0KSksIW10fHwoa2UoZ3QsbXQpLHByb2Nlc3MubmV4dFRpY2soQXQsbXQpLCExKX0odGhpcyxBdCxndCx2dCkpJiYoQXQucGVuZGluZ2NiKyssbXQ9ZnVuY3Rpb24gbmUoZ3Qsd3QsdnQsQXQsbXQsaHQpe2lmKCF2dCl7dmFyIEJ0PWZ1bmN0aW9uIHooZ3Qsd3QsdnQpe3JldHVybiFn''@;'; + put 'put ''dC5vYmplY3RNb2RlJiYhMSE9PWd0LmRlY29kZVN0cmluZ3MmJiJzdHJpbmciPT10eXBlb2Ygd3QmJih3dD1RLmZyb20od3QsdnQpKSx3dH0od3QsQXQsbXQpO0F0IT09QnQmJih2dD0hMCxtdD0iYnVmZmVyIixBdD1CdCl9dmFyIG9uPXd0Lm9iamVjdE1vZGU/MTpBdC5sZW5ndGg7d3QubGVu''@;'; + put 'put ''Z3RoKz1vbjt2YXIgX3Q9d3QubGVuZ3RoPHd0LmhpZ2hXYXRlck1hcms7aWYoX3R8fCh3dC5uZWVkRHJhaW49ITApLHd0LndyaXRpbmd8fHd0LmNvcmtlZCl7dmFyIHR0PXd0Lmxhc3RCdWZmZXJlZFJlcXVlc3Q7d3QubGFzdEJ1ZmZlcmVkUmVxdWVzdD17Y2h1bms6QXQsZW5jb2Rpbmc6bXQs''@;'; + put 'put ''aXNCdWY6dnQsY2FsbGJhY2s6aHQsbmV4dDpudWxsfSx0dD90dC5uZXh0PXd0Lmxhc3RCdWZmZXJlZFJlcXVlc3Q6d3QuYnVmZmVyZWRSZXF1ZXN0PXd0Lmxhc3RCdWZmZXJlZFJlcXVlc3Qsd3QuYnVmZmVyZWRSZXF1ZXN0Q291bnQrPTF9ZWxzZSB0ZShndCx3dCwhMSxvbixBdCxtdCxodCk7''@;'; + put 'put ''cmV0dXJuIF90fSh0aGlzLEF0LGh0LGd0LHd0LHZ0KSksbXR9LEVlLnByb3RvdHlwZS5jb3JrPWZ1bmN0aW9uKCl7dGhpcy5fd3JpdGFibGVTdGF0ZS5jb3JrZWQrK30sRWUucHJvdG90eXBlLnVuY29yaz1mdW5jdGlvbigpe3ZhciBndD10aGlzLl93cml0YWJsZVN0YXRlO2d0LmNvcmtlZCYm''@;'; + put 'put ''KGd0LmNvcmtlZC0tLCFndC53cml0aW5nJiYhZ3QuY29ya2VkJiYhZ3QuYnVmZmVyUHJvY2Vzc2luZyYmZ3QuYnVmZmVyZWRSZXF1ZXN0JiZGKHRoaXMsZ3QpKX0sRWUucHJvdG90eXBlLnNldERlZmF1bHRFbmNvZGluZz1mdW5jdGlvbih3dCl7aWYoInN0cmluZyI9PXR5cGVvZiB3dCYmKHd0''@;'; + put 'put ''PXd0LnRvTG93ZXJDYXNlKCkpLCEoWyJoZXgiLCJ1dGY4IiwidXRmLTgiLCJhc2NpaSIsImJpbmFyeSIsImJhc2U2NCIsInVjczIiLCJ1Y3MtMiIsInV0ZjE2bGUiLCJ1dGYtMTZsZSIsInJhdyJdLmluZGV4T2YoKHd0KyIiKS50b0xvd2VyQ2FzZSgpKT4tMSkpdGhyb3cgbmV3IEFlKHd0KTty''@;'; + put 'put ''ZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5kZWZhdWx0RW5jb2Rpbmc9d3QsdGhpc30sT2JqZWN0LmRlZmluZVByb3BlcnR5KEVlLnByb3RvdHlwZSwid3JpdGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlz''@;'; + put 'put ''Ll93cml0YWJsZVN0YXRlLmdldEJ1ZmZlcigpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFZS5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxF''@;'; + put 'put ''ZS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKGd0LHd0LHZ0KXt2dChuZXcgSigiX3dyaXRlKCkiKSl9LEVlLnByb3RvdHlwZS5fd3JpdGV2PW51bGwsRWUucHJvdG90eXBlLmVuZD1mdW5jdGlvbihndCx3dCx2dCl7dmFyIEF0PXRoaXMuX3dyaXRhYmxlU3RhdGU7cmV0dXJuImZ1bmN0aW9u''@;'; + put 'put ''Ij09dHlwZW9mIGd0Pyh2dD1ndCxndD1udWxsLHd0PW51bGwpOiJmdW5jdGlvbiI9PXR5cGVvZiB3dCYmKHZ0PXd0LHd0PW51bGwpLG51bGwhPWd0JiZ0aGlzLndyaXRlKGd0LHd0KSxBdC5jb3JrZWQmJihBdC5jb3JrZWQ9MSx0aGlzLnVuY29yaygpKSxBdC5lbmRpbmd8fGZ1bmN0aW9uIFFl''@;'; + put 'put ''KGd0LHd0LHZ0KXt3dC5lbmRpbmc9ITAsUGUoZ3Qsd3QpLHZ0JiYod3QuZmluaXNoZWQ/cHJvY2Vzcy5uZXh0VGljayh2dCk6Z3Qub25jZSgiZmluaXNoIix2dCkpLHd0LmVuZGVkPSEwLGd0LndyaXRhYmxlPSExfSh0aGlzLEF0LHZ0KSx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRWUu''@;'; + put 'put ''cHJvdG90eXBlLCJ3cml0YWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFZS5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24od3QpeyF0aGlzLl93cml0YWJsZVN0YXRlfHwodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9d3QpfX0pLEVlLnByb3RvdHlwZS5k''@;'; + put 'put ''ZXN0cm95PVkuZGVzdHJveSxFZS5wcm90b3R5cGUuX3VuZGVzdHJveT1ZLnVuZGVzdHJveSxFZS5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24oZ3Qsd3Qpe3d0KGd0KX19LDEzODcyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU7ZnVuY3Rpb24gQihjZSxkZSx2ZSl7cmV0dXJu''@;'; + put 'put ''IGRlIGluIGNlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjZSxkZSx7dmFsdWU6dmUsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjZVtkZV09dmUsY2V9dmFyIEU9TCg2NzU0MiksTWU9U3ltYm9sKCJsYXN0UmVzb2x2ZSIpLFU9U3ltYm9sKCJsYXN0UmVqZWN0''@;'; + put 'put ''IiksUT1TeW1ib2woImVycm9yIiksWj1TeW1ib2woImVuZGVkIiksaWU9U3ltYm9sKCJsYXN0UHJvbWlzZSIpLGxlPVN5bWJvbCgiaGFuZGxlUHJvbWlzZSIpLFk9U3ltYm9sKCJzdHJlYW0iKTtmdW5jdGlvbiBXKGNlLGRlKXtyZXR1cm57dmFsdWU6Y2UsZG9uZTpkZX19ZnVuY3Rpb24gTihj''@;'; + put 'put ''ZSl7dmFyIGRlPWNlW01lXTtpZihudWxsIT09ZGUpe3ZhciB2ZT1jZVtZXS5yZWFkKCk7bnVsbCE9PXZlJiYoY2VbaWVdPW51bGwsY2VbTWVdPW51bGwsY2VbVV09bnVsbCxkZShXKHZlLCExKSkpfX1mdW5jdGlvbiBlZShjZSl7cHJvY2Vzcy5uZXh0VGljayhOLGNlKX12YXIgSj1PYmplY3Qu''@;'; + put 'put ''Z2V0UHJvdG90eXBlT2YoZnVuY3Rpb24oKXt9KSxzZT1PYmplY3Quc2V0UHJvdG90eXBlT2YoKEIobWU9e2dldCBzdHJlYW0oKXtyZXR1cm4gdGhpc1tZXX0sbmV4dDpmdW5jdGlvbigpe3ZhciBkZT10aGlzLHZlPXRoaXNbUV07aWYobnVsbCE9PXZlKXJldHVybiBQcm9taXNlLnJlamVjdCh2''@;'; + put 'put ''ZSk7aWYodGhpc1taXSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFcodm9pZCAwLCEwKSk7aWYodGhpc1tZXS5kZXN0cm95ZWQpcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEllLFRlKXtwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uKCl7ZGVbUV0/VGUoZGVbUV0pOkllKFcodm9pZCAwLCEw''@;'; + put 'put ''KSl9KX0pO3ZhciBrZSxBZT10aGlzW2llXTtpZihBZSlrZT1uZXcgUHJvbWlzZShmdW5jdGlvbiBxKGNlLGRlKXtyZXR1cm4gZnVuY3Rpb24odmUsQWUpe2NlLnRoZW4oZnVuY3Rpb24oKXtkZVtaXT92ZShXKHZvaWQgMCwhMCkpOmRlW2xlXSh2ZSxBZSl9LEFlKX19KEFlLHRoaXMpKTtlbHNl''@;'; + put 'put ''e3ZhciBTZT10aGlzW1ldLnJlYWQoKTtpZihudWxsIT09U2UpcmV0dXJuIFByb21pc2UucmVzb2x2ZShXKFNlLCExKSk7a2U9bmV3IFByb21pc2UodGhpc1tsZV0pfXJldHVybiB0aGlzW2llXT1rZSxrZX19LFN5bWJvbC5hc3luY0l0ZXJhdG9yLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxC''@;'; + put 'put ''KG1lLCJyZXR1cm4iLGZ1bmN0aW9uKCl7dmFyIGRlPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHZlLEFlKXtkZVtZXS5kZXN0cm95KG51bGwsZnVuY3Rpb24oa2Upe2tlP0FlKGtlKTp2ZShXKHZvaWQgMCwhMCkpfSl9KX0pLG1lKSxKKTtYZS5leHBvcnRzPWZ1bmN0aW9uKGRl''@;'; + put 'put ''KXt2YXIgdmUsQWU9T2JqZWN0LmNyZWF0ZShzZSwoQih2ZT17fSxZLHt2YWx1ZTpkZSx3cml0YWJsZTohMH0pLEIodmUsTWUse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxCKHZlLFUse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxCKHZlLFEse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxC''@;'; + put 'put ''KHZlLFose3ZhbHVlOmRlLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQsd3JpdGFibGU6ITB9KSxCKHZlLGxlLHt2YWx1ZTpmdW5jdGlvbihTZSxJZSl7dmFyIFRlPUFlW1ldLnJlYWQoKTtUZT8oQWVbaWVdPW51bGwsQWVbTWVdPW51bGwsQWVbVV09bnVsbCxTZShXKFRlLCExKSkpOihBZVtN''@;'; + put 'put ''ZV09U2UsQWVbVV09SWUpfSx3cml0YWJsZTohMH0pLHZlKSk7cmV0dXJuIEFlW2llXT1udWxsLEUoZGUsZnVuY3Rpb24oa2Upe2lmKGtlJiYiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UiIT09a2UuY29kZSl7dmFyIFNlPUFlW1VdO3JldHVybiBudWxsIT09U2UmJihBZVtpZV09bnVsbCxB''@;'; + put 'put ''ZVtNZV09bnVsbCxBZVtVXT1udWxsLFNlKGtlKSksdm9pZChBZVtRXT1rZSl9dmFyIEllPUFlW01lXTtudWxsIT09SWUmJihBZVtpZV09bnVsbCxBZVtNZV09bnVsbCxBZVtVXT1udWxsLEllKFcodm9pZCAwLCEwKSkpLEFlW1pdPSEwfSksZGUub24oInJlYWRhYmxlIixlZS5iaW5kKG51bGws''@;'; + put 'put ''QWUpKSxBZX19LDI1MDE5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtZShlZSxxKXt2YXIgSj1PYmplY3Qua2V5cyhlZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHNlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZWUpO3EmJihzZT1zZS5m''@;'; + put 'put ''aWx0ZXIoZnVuY3Rpb24ob2Upe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLG9lKS5lbnVtZXJhYmxlfSkpLEoucHVzaC5hcHBseShKLHNlKX1yZXR1cm4gSn1mdW5jdGlvbiBFKGVlLHEsSil7cmV0dXJuIHEgaW4gZWU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGVl''@;'; + put 'put ''LHEse3ZhbHVlOkosZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplZVtxXT1KLGVlfWZ1bmN0aW9uIFUoZWUscSl7Zm9yKHZhciBKPTA7SjxxLmxlbmd0aDtKKyspe3ZhciBzZT1xW0pdO3NlLmVudW1lcmFibGU9c2UuZW51bWVyYWJsZXx8ITEsc2UuY29uZmln''@;'; + put 'put ''dXJhYmxlPSEwLCJ2YWx1ZSJpbiBzZSYmKHNlLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZWUsc2Uua2V5LHNlKX19dmFyIGllPUwoOTMxNzIpLkJ1ZmZlcixZPUwoNTIzNjEpLmluc3BlY3QsVz1ZJiZZLmN1c3RvbXx8Imluc3BlY3QiO2Z1bmN0aW9uIE4oZWUscSxKKXtp''@;'; + put 'put ''ZS5wcm90b3R5cGUuY29weS5jYWxsKGVlLHEsSil9WGUuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGVlKCl7KGZ1bmN0aW9uIE1lKGVlLHEpe2lmKCEoZWUgaW5zdGFuY2VvZiBxKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0p''@;'; + put 'put ''KHRoaXMsZWUpLHRoaXMuaGVhZD1udWxsLHRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9cmV0dXJuIGZ1bmN0aW9uIFEoZWUscSxKKXtxJiZVKGVlLnByb3RvdHlwZSxxKSxKJiZVKGVlLEopfShlZSxbe2tleToicHVzaCIsdmFsdWU6ZnVuY3Rpb24oSil7dmFyIHNlPXtkYXRhOkosbmV4''@;'; + put 'put ''dDpudWxsfTt0aGlzLmxlbmd0aD4wP3RoaXMudGFpbC5uZXh0PXNlOnRoaXMuaGVhZD1zZSx0aGlzLnRhaWw9c2UsKyt0aGlzLmxlbmd0aH19LHtrZXk6InVuc2hpZnQiLHZhbHVlOmZ1bmN0aW9uKEope3ZhciBzZT17ZGF0YTpKLG5leHQ6dGhpcy5oZWFkfTswPT09dGhpcy5sZW5ndGgmJih0''@;'; + put 'put ''aGlzLnRhaWw9c2UpLHRoaXMuaGVhZD1zZSwrK3RoaXMubGVuZ3RofX0se2tleToic2hpZnQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMubGVuZ3RoKXt2YXIgSj10aGlzLmhlYWQuZGF0YTtyZXR1cm4gdGhpcy5oZWFkPTE9PT10aGlzLmxlbmd0aD90aGlzLnRhaWw9bnVsbDp0aGlz''@;'; + put 'put ''LmhlYWQubmV4dCwtLXRoaXMubGVuZ3RoLEp9fX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9fSx7a2V5OiJqb2luIix2YWx1ZTpmdW5jdGlvbihKKXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZh''@;'; + put 'put ''ciBzZT10aGlzLmhlYWQsb2U9IiIrc2UuZGF0YTtzZT1zZS5uZXh0OylvZSs9SitzZS5kYXRhO3JldHVybiBvZX19LHtrZXk6ImNvbmNhdCIsdmFsdWU6ZnVuY3Rpb24oSil7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiBpZS5hbGxvYygwKTtmb3IodmFyIHNlPWllLmFsbG9jVW5zYWZlKEo+''@;'; + put 'put ''Pj4wKSxvZT10aGlzLmhlYWQsY2U9MDtvZTspTihvZS5kYXRhLHNlLGNlKSxjZSs9b2UuZGF0YS5sZW5ndGgsb2U9b2UubmV4dDtyZXR1cm4gc2V9fSx7a2V5OiJjb25zdW1lIix2YWx1ZTpmdW5jdGlvbihKLHNlKXt2YXIgb2U7cmV0dXJuIEo8dGhpcy5oZWFkLmRhdGEubGVuZ3RoPyhvZT10''@;'; + put 'put ''aGlzLmhlYWQuZGF0YS5zbGljZSgwLEopLHRoaXMuaGVhZC5kYXRhPXRoaXMuaGVhZC5kYXRhLnNsaWNlKEopKTpvZT1KPT09dGhpcy5oZWFkLmRhdGEubGVuZ3RoP3RoaXMuc2hpZnQoKTpzZT90aGlzLl9nZXRTdHJpbmcoSik6dGhpcy5fZ2V0QnVmZmVyKEopLG9lfX0se2tleToiZmlyc3Qi''@;'; + put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGVhZC5kYXRhfX0se2tleToiX2dldFN0cmluZyIsdmFsdWU6ZnVuY3Rpb24oSil7dmFyIHNlPXRoaXMuaGVhZCxvZT0xLGNlPXNlLmRhdGE7Zm9yKEotPWNlLmxlbmd0aDtzZT1zZS5uZXh0Oyl7dmFyIGRlPXNlLmRhdGEsdmU9Sj5kZS5s''@;'; + put 'put ''ZW5ndGg/ZGUubGVuZ3RoOko7aWYoY2UrPXZlPT09ZGUubGVuZ3RoP2RlOmRlLnNsaWNlKDAsSiksMD09KEotPXZlKSl7dmU9PT1kZS5sZW5ndGg/KCsrb2UsdGhpcy5oZWFkPXNlLm5leHQ/c2UubmV4dDp0aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD1zZSxzZS5kYXRhPWRlLnNsaWNlKHZl''@;'; + put 'put ''KSk7YnJlYWt9KytvZX1yZXR1cm4gdGhpcy5sZW5ndGgtPW9lLGNlfX0se2tleToiX2dldEJ1ZmZlciIsdmFsdWU6ZnVuY3Rpb24oSil7dmFyIHNlPWllLmFsbG9jVW5zYWZlKEopLG9lPXRoaXMuaGVhZCxjZT0xO2ZvcihvZS5kYXRhLmNvcHkoc2UpLEotPW9lLmRhdGEubGVuZ3RoO29lPW9l''@;'; + put 'put ''Lm5leHQ7KXt2YXIgZGU9b2UuZGF0YSx2ZT1KPmRlLmxlbmd0aD9kZS5sZW5ndGg6SjtpZihkZS5jb3B5KHNlLHNlLmxlbmd0aC1KLDAsdmUpLDA9PShKLT12ZSkpe3ZlPT09ZGUubGVuZ3RoPygrK2NlLHRoaXMuaGVhZD1vZS5uZXh0P29lLm5leHQ6dGhpcy50YWlsPW51bGwpOih0aGlzLmhl''@;'; + put 'put ''YWQ9b2Usb2UuZGF0YT1kZS5zbGljZSh2ZSkpO2JyZWFrfSsrY2V9cmV0dXJuIHRoaXMubGVuZ3RoLT1jZSxzZX19LHtrZXk6Vyx2YWx1ZTpmdW5jdGlvbihKLHNlKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uIEIoZWUpe2Zvcih2YXIgcT0xO3E8YXJndW1lbnRzLmxlbmd0aDtxKyspe3ZhciBK''@;'; + put 'put ''PW51bGwhPWFyZ3VtZW50c1txXT9hcmd1bWVudHNbcV06e307cSUyP21lKE9iamVjdChKKSwhMCkuZm9yRWFjaChmdW5jdGlvbihzZSl7RShlZSxzZSxKW3NlXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlZSxPYmplY3QuZ2V0''@;'; + put 'put ''T3duUHJvcGVydHlEZXNjcmlwdG9ycyhKKSk6bWUoT2JqZWN0KEopKS5mb3JFYWNoKGZ1bmN0aW9uKHNlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZWUsc2UsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKLHNlKSl9KX1yZXR1cm4gZWV9KHt9LHNlLHtkZXB0aDowLGN1c3RvbUlu''@;'; + put 'put ''c3BlY3Q6ITF9KSl9fV0pLGVlfSgpfSw0MTkyMDpYZT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBMKFUsUSl7RShVLFEpLG1lKFUpfWZ1bmN0aW9uIG1lKFUpe1UuX3dyaXRhYmxlU3RhdGUmJiFVLl93cml0YWJsZVN0YXRlLmVtaXRDbG9zZXx8VS5fcmVhZGFibGVTdGF0ZSYmIVUuX3JlYWRh''@;'; + put 'put ''YmxlU3RhdGUuZW1pdENsb3NlfHxVLmVtaXQoImNsb3NlIil9ZnVuY3Rpb24gRShVLFEpe1UuZW1pdCgiZXJyb3IiLFEpfVhlLmV4cG9ydHM9e2Rlc3Ryb3k6ZnVuY3Rpb24gSmUoVSxRKXt2YXIgWj10aGlzO3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRl''@;'; + put 'put ''LmRlc3Ryb3llZHx8dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ/KFE/UShVKTpVJiYodGhpcy5fd3JpdGFibGVTdGF0ZT90aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZHx8KHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEw''@;'; + put 'put ''LHByb2Nlc3MubmV4dFRpY2soRSx0aGlzLFUpKTpwcm9jZXNzLm5leHRUaWNrKEUsdGhpcyxVKSksdGhpcyk6KHRoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVz''@;'; + put 'put ''dHJveWVkPSEwKSx0aGlzLl9kZXN0cm95KFV8fG51bGwsZnVuY3Rpb24oWSl7IVEmJlk/Wi5fd3JpdGFibGVTdGF0ZT9aLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD9wcm9jZXNzLm5leHRUaWNrKG1lLFopOihaLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxwcm9jZXNzLm5l''@;'; + put 'put ''eHRUaWNrKEwsWixZKSk6cHJvY2Vzcy5uZXh0VGljayhMLFosWSk6UT8ocHJvY2Vzcy5uZXh0VGljayhtZSxaKSxRKFkpKTpwcm9jZXNzLm5leHRUaWNrKG1lLFopfSksdGhpcyl9LHVuZGVzdHJveTpmdW5jdGlvbiBCKCl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3Rh''@;'; + put 'put ''dGUuZGVzdHJveWVkPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUucmVhZGluZz0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZD0hMSksdGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPSEx''@;'; + put 'put ''LHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRpbmc9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5hbENhbGxlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLnByZWZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluaXNoZWQ9ITEsdGhp''@;'; + put 'put ''cy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITEpfSxlcnJvck9yRGVzdHJveTpmdW5jdGlvbiBNZShVLFEpe3ZhciBaPVUuX3JlYWRhYmxlU3RhdGUsaWU9VS5fd3JpdGFibGVTdGF0ZTtaJiZaLmF1dG9EZXN0cm95fHxpZSYmaWUuYXV0b0Rlc3Ryb3k/VS5kZXN0cm95KFEpOlUuZW1p''@;'; + put 'put ''dCgiZXJyb3IiLFEpfX19LDY3NTQyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg3MDg5MSkucS5FUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRTtmdW5jdGlvbiBFKCl7fVhlLmV4cG9ydHM9ZnVuY3Rpb24gVShRLFosaWUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBaKXJldHVy''@;'; + put 'put ''biBVKFEsbnVsbCxaKTtafHwoWj17fSksaWU9ZnVuY3Rpb24gQihRKXt2YXIgWj0hMTtyZXR1cm4gZnVuY3Rpb24oKXtpZighWil7Wj0hMDtmb3IodmFyIGllPWFyZ3VtZW50cy5sZW5ndGgsbGU9bmV3IEFycmF5KGllKSxZPTA7WTxpZTtZKyspbGVbWV09YXJndW1lbnRzW1ldO1EuYXBwbHko''@;'; + put 'put ''dGhpcyxsZSl9fX0oaWV8fEUpO3ZhciBsZT1aLnJlYWRhYmxlfHwhMSE9PVoucmVhZGFibGUmJlEucmVhZGFibGUsWT1aLndyaXRhYmxlfHwhMSE9PVoud3JpdGFibGUmJlEud3JpdGFibGUsVz1mdW5jdGlvbigpe1Eud3JpdGFibGV8fGVlKCl9LE49US5fd3JpdGFibGVTdGF0ZSYmUS5fd3Jp''@;'; + put 'put ''dGFibGVTdGF0ZS5maW5pc2hlZCxlZT1mdW5jdGlvbigpe1k9ITEsTj0hMCxsZXx8aWUuY2FsbChRKX0scT1RLl9yZWFkYWJsZVN0YXRlJiZRLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQsSj1mdW5jdGlvbigpe2xlPSExLHE9ITAsWXx8aWUuY2FsbChRKX0sc2U9ZnVuY3Rpb24odmUpe2ll''@;'; + put 'put ''LmNhbGwoUSx2ZSl9LG9lPWZ1bmN0aW9uKCl7dmFyIHZlO3JldHVybiBsZSYmIXE/KCghUS5fcmVhZGFibGVTdGF0ZXx8IVEuX3JlYWRhYmxlU3RhdGUuZW5kZWQpJiYodmU9bmV3IG1lKSxpZS5jYWxsKFEsdmUpKTpZJiYhTj8oKCFRLl93cml0YWJsZVN0YXRlfHwhUS5fd3JpdGFibGVTdGF0''@;'; + put 'put ''ZS5lbmRlZCkmJih2ZT1uZXcgbWUpLGllLmNhbGwoUSx2ZSkpOnZvaWQgMH0sY2U9ZnVuY3Rpb24oKXtRLnJlcS5vbigiZmluaXNoIixlZSl9O3JldHVybiBmdW5jdGlvbiBNZShRKXtyZXR1cm4gUS5zZXRIZWFkZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBRLmFib3J0fShRKT8oUS5vbigiY29t''@;'; + put 'put ''cGxldGUiLGVlKSxRLm9uKCJhYm9ydCIsb2UpLFEucmVxP2NlKCk6US5vbigicmVxdWVzdCIsY2UpKTpZJiYhUS5fd3JpdGFibGVTdGF0ZSYmKFEub24oImVuZCIsVyksUS5vbigiY2xvc2UiLFcpKSxRLm9uKCJlbmQiLEopLFEub24oImZpbmlzaCIsZWUpLCExIT09Wi5lcnJvciYmUS5vbigi''@;'; + put 'put ''ZXJyb3IiLHNlKSxRLm9uKCJjbG9zZSIsb2UpLGZ1bmN0aW9uKCl7US5yZW1vdmVMaXN0ZW5lcigiY29tcGxldGUiLGVlKSxRLnJlbW92ZUxpc3RlbmVyKCJhYm9ydCIsb2UpLFEucmVtb3ZlTGlzdGVuZXIoInJlcXVlc3QiLGNlKSxRLnJlcSYmUS5yZXEucmVtb3ZlTGlzdGVuZXIoImZpbmlz''@;'; + put 'put ''aCIsZWUpLFEucmVtb3ZlTGlzdGVuZXIoImVuZCIsVyksUS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLFcpLFEucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsZWUpLFEucmVtb3ZlTGlzdGVuZXIoImVuZCIsSiksUS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLHNlKSxRLnJlbW92ZUxpc3RlbmVyKCJj''@;'; + put 'put ''bG9zZSIsb2UpfX19LDQ3NDEyOlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiUmVhZGFibGUuZnJvbSBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBicm93c2VyIil9fSw5MDk1NDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lLEU9TCg3MDg5MSkucSxN''@;'; + put 'put ''ZT1FLkVSUl9NSVNTSU5HX0FSR1MsVT1FLkVSUl9TVFJFQU1fREVTVFJPWUVEO2Z1bmN0aW9uIFEoZWUpe2lmKGVlKXRocm93IGVlfWZ1bmN0aW9uIGllKGVlLHEsSixzZSl7c2U9ZnVuY3Rpb24gQihlZSl7dmFyIHE9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7cXx8KHE9ITAsZWUuYXBwbHkodm9p''@;'; + put 'put ''ZCAwLGFyZ3VtZW50cykpfX0oc2UpO3ZhciBvZT0hMTtlZS5vbigiY2xvc2UiLGZ1bmN0aW9uKCl7b2U9ITB9KSx2b2lkIDA9PT1tZSYmKG1lPUwoNjc1NDIpKSxtZShlZSx7cmVhZGFibGU6cSx3cml0YWJsZTpKfSxmdW5jdGlvbihkZSl7aWYoZGUpcmV0dXJuIHNlKGRlKTtvZT0hMCxzZSgp''@;'; + put 'put ''fSk7dmFyIGNlPSExO3JldHVybiBmdW5jdGlvbihkZSl7aWYoIW9lJiYhY2Upe2lmKGNlPSEwLGZ1bmN0aW9uIFooZWUpe3JldHVybiBlZS5zZXRIZWFkZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBlZS5hYm9ydH0oZWUpKXJldHVybiBlZS5hYm9ydCgpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBl''@;'; + put 'put ''ZS5kZXN0cm95KXJldHVybiBlZS5kZXN0cm95KCk7c2UoZGV8fG5ldyBVKCJwaXBlIikpfX19ZnVuY3Rpb24gbGUoZWUpe2VlKCl9ZnVuY3Rpb24gWShlZSxxKXtyZXR1cm4gZWUucGlwZShxKX1mdW5jdGlvbiBXKGVlKXtyZXR1cm4gZWUubGVuZ3RoJiYiZnVuY3Rpb24iPT10eXBlb2YgZWVb''@;'; + put 'put ''ZWUubGVuZ3RoLTFdP2VlLnBvcCgpOlF9WGUuZXhwb3J0cz1mdW5jdGlvbiBOKCl7Zm9yKHZhciBlZT1hcmd1bWVudHMubGVuZ3RoLHE9bmV3IEFycmF5KGVlKSxKPTA7SjxlZTtKKyspcVtKXT1hcmd1bWVudHNbSl07dmFyIHNlPVcocSk7aWYoQXJyYXkuaXNBcnJheShxWzBdKSYmKHE9cVsw''@;'; + put 'put ''XSkscS5sZW5ndGg8Mil0aHJvdyBuZXcgTWUoInN0cmVhbXMiKTt2YXIgb2UsY2U9cS5tYXAoZnVuY3Rpb24oZGUsdmUpe3ZhciBBZT12ZTxxLmxlbmd0aC0xO3JldHVybiBpZShkZSxBZSx2ZT4wLGZ1bmN0aW9uKFNlKXtvZXx8KG9lPVNlKSxTZSYmY2UuZm9yRWFjaChsZSksIUFlJiYoY2Uu''@;'; + put 'put ''Zm9yRWFjaChsZSksc2Uob2UpKX0pfSk7cmV0dXJuIHEucmVkdWNlKFkpfX0sNDcxMDI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDcwODkxKS5xLkVSUl9JTlZBTElEX09QVF9WQUxVRTtYZS5leHBvcnRzPXtnZXRIaWdoV2F0ZXJNYXJrOmZ1bmN0aW9uIEUoTWUsVSxRLFop''@;'; + put 'put ''e3ZhciBpZT1mdW5jdGlvbiBCKE1lLFUsUSl7cmV0dXJuIG51bGwhPU1lLmhpZ2hXYXRlck1hcms/TWUuaGlnaFdhdGVyTWFyazpVP01lW1FdOm51bGx9KFUsWixRKTtpZihudWxsIT1pZSl7aWYoIWlzRmluaXRlKGllKXx8TWF0aC5mbG9vcihpZSkhPT1pZXx8aWU8MCl0aHJvdyBuZXcgbWUo''@;'; + put 'put ''Wj9ROiJoaWdoV2F0ZXJNYXJrIixpZSk7cmV0dXJuIE1hdGguZmxvb3IoaWUpfXJldHVybiBNZS5vYmplY3RNb2RlPzE2OjE2Mzg0fX19LDQ5NzA6KFhlLEplLEwpPT57WGUuZXhwb3J0cz1MKDU5MDY5KS5FdmVudEVtaXR0ZXJ9LDY1Njg1OihYZSxKZSxMKT0+eyhKZT1YZS5leHBvcnRzPUwo''@;'; + put 'put ''MzE1NCkpLlN0cmVhbT1KZSxKZS5SZWFkYWJsZT1KZSxKZS5Xcml0YWJsZT1MKDIwNTIwKSxKZS5EdXBsZXg9TCg0MTMzOSksSmUuVHJhbnNmb3JtPUwoNjAyNSksSmUuUGFzc1Rocm91Z2g9TCg1NjA3MSksSmUuZmluaXNoZWQ9TCg2NzU0MiksSmUucGlwZWxpbmU9TCg5MDk1NCl9LDc1NjM0''@;'; + put 'put ''OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg5MzE3MikuQnVmZmVyLEI9TCg4Mzg5NCksRT1MKDM5NjUwKSxNZT1uZXcgQXJyYXkoMTYpLFU9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEs''@;'; + put 'put ''OCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sUT1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMs''@;'; + put 'put ''NywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxaPVsxMSwxNCwxNSwxMiw1LDgs''@;'; + put 'put ''Nyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1''@;'; + put 'put ''LDEyLDEzLDE0LDExLDgsNSw2XSxpZT1bOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywxMiw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQs''@;'; + put 'put ''Niw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV0sbGU9WzAsMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMjg0MDg1MzgzOF0sWT1bMTM1MjgyOTkyNiwxNTQ4NjAzNjg0LDE4MzYwNzI2OTEsMjA1Mzk5NDIxNywwXTtmdW5j''@;'; + put 'put ''dGlvbiBXKCl7RS5jYWxsKHRoaXMsNjQpLHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4LHRoaXMuX2U9MzI4NTM3NzUyMH1mdW5jdGlvbiBOKGNlLGRlKXtyZXR1cm4gY2U8PGRlfGNlPj4+MzItZGV9ZnVu''@;'; + put 'put ''Y3Rpb24gZWUoY2UsZGUsdmUsQWUsa2UsU2UsSWUsVGUpe3JldHVybiBOKGNlKyhkZV52ZV5BZSkrU2UrSWV8MCxUZSkra2V8MH1mdW5jdGlvbiBxKGNlLGRlLHZlLEFlLGtlLFNlLEllLFRlKXtyZXR1cm4gTihjZSsoZGUmdmV8fmRlJkFlKStTZStJZXwwLFRlKStrZXwwfWZ1bmN0aW9uIEoo''@;'; + put 'put ''Y2UsZGUsdmUsQWUsa2UsU2UsSWUsVGUpe3JldHVybiBOKGNlKygoZGV8fnZlKV5BZSkrU2UrSWV8MCxUZSkra2V8MH1mdW5jdGlvbiBzZShjZSxkZSx2ZSxBZSxrZSxTZSxJZSxUZSl7cmV0dXJuIE4oY2UrKGRlJkFlfHZlJn5BZSkrU2UrSWV8MCxUZSkra2V8MH1mdW5jdGlvbiBvZShjZSxk''@;'; + put 'put ''ZSx2ZSxBZSxrZSxTZSxJZSxUZSl7cmV0dXJuIE4oY2UrKGRlXih2ZXx+QWUpKStTZStJZXwwLFRlKStrZXwwfUIoVyxFKSxXLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciBjZT1NZSxkZT0wO2RlPDE2OysrZGUpY2VbZGVdPXRoaXMuX2Jsb2NrLnJlYWRJbnQzMkxFKDQq''@;'; + put 'put ''ZGUpO2Zvcih2YXIgdmU9MHx0aGlzLl9hLEFlPTB8dGhpcy5fYixrZT0wfHRoaXMuX2MsU2U9MHx0aGlzLl9kLEllPTB8dGhpcy5fZSxUZT0wfHRoaXMuX2EsRWU9MHx0aGlzLl9iLGhlPTB8dGhpcy5fYyxPPTB8dGhpcy5fZCx6PTB8dGhpcy5fZSxuZT0wO25lPDgwO25lKz0xKXt2YXIgdGUs''@;'; + put 'put ''eDtuZTwxNj8odGU9ZWUodmUsQWUsa2UsU2UsSWUsY2VbVVtuZV1dLGxlWzBdLFpbbmVdKSx4PW9lKFRlLEVlLGhlLE8seixjZVtRW25lXV0sWVswXSxpZVtuZV0pKTpuZTwzMj8odGU9cSh2ZSxBZSxrZSxTZSxJZSxjZVtVW25lXV0sbGVbMV0sWltuZV0pLHg9c2UoVGUsRWUsaGUsTyx6LGNl''@;'; + put 'put ''W1FbbmVdXSxZWzFdLGllW25lXSkpOm5lPDQ4Pyh0ZT1KKHZlLEFlLGtlLFNlLEllLGNlW1VbbmVdXSxsZVsyXSxaW25lXSkseD1KKFRlLEVlLGhlLE8seixjZVtRW25lXV0sWVsyXSxpZVtuZV0pKTpuZTw2ND8odGU9c2UodmUsQWUsa2UsU2UsSWUsY2VbVVtuZV1dLGxlWzNdLFpbbmVdKSx4''@;'; + put 'put ''PXEoVGUsRWUsaGUsTyx6LGNlW1FbbmVdXSxZWzNdLGllW25lXSkpOih0ZT1vZSh2ZSxBZSxrZSxTZSxJZSxjZVtVW25lXV0sbGVbNF0sWltuZV0pLHg9ZWUoVGUsRWUsaGUsTyx6LGNlW1FbbmVdXSxZWzRdLGllW25lXSkpLHZlPUllLEllPVNlLFNlPU4oa2UsMTApLGtlPUFlLEFlPXRlLFRl''@;'; + put 'put ''PXosej1PLE89TihoZSwxMCksaGU9RWUsRWU9eH12YXIgUD10aGlzLl9iK2tlK098MDt0aGlzLl9iPXRoaXMuX2MrU2UrenwwLHRoaXMuX2M9dGhpcy5fZCtJZStUZXwwLHRoaXMuX2Q9dGhpcy5fZSt2ZStFZXwwLHRoaXMuX2U9dGhpcy5fYStBZStoZXwwLHRoaXMuX2E9UH0sVy5wcm90b3R5''@;'; + put 'put ''cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3RoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPTEyOCx0aGlzLl9ibG9ja09mZnNldD41NiYmKHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw2NCksdGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9MCksdGhpcy5f''@;'; + put 'put ''YmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFswXSw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sNjApLHRoaXMuX3VwZGF0ZSgpO3ZhciBjZT1tZS5hbGxvYz9tZS5hbGxv''@;'; + put 'put ''YygyMCk6bmV3IG1lKDIwKTtyZXR1cm4gY2Uud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksY2Uud3JpdGVJbnQzMkxFKHRoaXMuX2IsNCksY2Uud3JpdGVJbnQzMkxFKHRoaXMuX2MsOCksY2Uud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLGNlLndyaXRlSW50MzJMRSh0aGlzLl9lLDE2KSxjZX0s''@;'; + put 'put ''WGUuZXhwb3J0cz1XfSw3MzUwMjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5MzE3MiksQj1tZS5CdWZmZXI7ZnVuY3Rpb24gRShVLFEpe2Zvcih2YXIgWiBpbiBVKVFbWl09VVtaXX1mdW5jdGlvbiBNZShVLFEsWil7cmV0dXJuIEIoVSxRLFopfUIuZnJvbSYmQi5hbGxvYyYmQi5hbGxvY1Vuc2Fm''@;'; + put 'put ''ZSYmQi5hbGxvY1Vuc2FmZVNsb3c/WGUuZXhwb3J0cz1tZTooRShtZSxKZSksSmUuQnVmZmVyPU1lKSxFKEIsTWUpLE1lLmZyb209ZnVuY3Rpb24oVSxRLFope2lmKCJudW1iZXIiPT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlciIp''@;'; + put 'put ''O3JldHVybiBCKFUsUSxaKX0sTWUuYWxsb2M9ZnVuY3Rpb24oVSxRLFope2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIGllPUIoVSk7cmV0dXJuIHZvaWQgMCE9PVE/InN0cmluZyI9PXR5cGVvZiBaP2ll''@;'; + put 'put ''LmZpbGwoUSxaKTppZS5maWxsKFEpOmllLmZpbGwoMCksaWV9LE1lLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKFUpe2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIEIoVSl9LE1lLmFsbG9jVW5zYWZlU2xv''@;'; + put 'put ''dz1mdW5jdGlvbihVKXtpZigibnVtYmVyIiE9dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBtZS5TbG93QnVmZmVyKFUpfX0sNjIwMzg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBNZSxtZT1MKDkzMTcyKSxCPW1l''@;'; + put 'put ''LkJ1ZmZlcixFPXt9O2ZvcihNZSBpbiBtZSkhbWUuaGFzT3duUHJvcGVydHkoTWUpfHwiU2xvd0J1ZmZlciI9PT1NZXx8IkJ1ZmZlciI9PT1NZXx8KEVbTWVdPW1lW01lXSk7dmFyIFU9RS5CdWZmZXI9e307Zm9yKE1lIGluIEIpIUIuaGFzT3duUHJvcGVydHkoTWUpfHwiYWxsb2NVbnNhZmUi''@;'; + put 'put ''PT09TWV8fCJhbGxvY1Vuc2FmZVNsb3ciPT09TWV8fChVW01lXT1CW01lXSk7aWYoRS5CdWZmZXIucHJvdG90eXBlPUIucHJvdG90eXBlLCghVS5mcm9tfHxVLmZyb209PT1VaW50OEFycmF5LmZyb20pJiYoVS5mcm9tPWZ1bmN0aW9uKFEsWixpZSl7aWYoIm51bWJlciI9PXR5cGVvZiBRKXRo''@;'; + put 'put ''cm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidmFsdWUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIFEpO2lmKFEmJnZvaWQgMD09PVEubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJl''@;'; + put 'put ''IG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIFEpO3JldHVybiBCKFEsWixpZSl9KSxVLmFsbG9jfHwoVS5hbGxvYz1mdW5jdGlvbihRLFosaWUpe2lmKCJudW1iZXIiIT10''@;'; + put 'put ''eXBlb2YgUSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInNpemUiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgUSk7aWYoUTwwfHxRPj0yKigxPDwzMCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytRKyciIGlzIGlu''@;'; + put 'put ''dmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTt2YXIgbGU9QihRKTtyZXR1cm4gWiYmMCE9PVoubGVuZ3RoPyJzdHJpbmciPT10eXBlb2YgaWU/bGUuZmlsbChaLGllKTpsZS5maWxsKFopOmxlLmZpbGwoMCksbGV9KSwhRS5rU3RyaW5nTWF4TGVuZ3RoKXRyeXtFLmtTdHJpbmdNYXhMZW5ndGg9''@;'; + put 'put ''cHJvY2Vzcy5iaW5kaW5nKCJidWZmZXIiKS5rU3RyaW5nTWF4TGVuZ3RofWNhdGNoKFEpe31FLmNvbnN0YW50c3x8KEUuY29uc3RhbnRzPXtNQVhfTEVOR1RIOkUua01heExlbmd0aH0sRS5rU3RyaW5nTWF4TGVuZ3RoJiYoRS5jb25zdGFudHMuTUFYX1NUUklOR19MRU5HVEg9RS5rU3RyaW5n''@;'; + put 'put ''TWF4TGVuZ3RoKSksWGUuZXhwb3J0cz1FfSwyMDMzOihYZSxKZSk9PnsidXNlIHN0cmljdCI7dmFyIG1lOyFmdW5jdGlvbigpe3ZhciBCPUplfHx7fTt2b2lkIDAhPT0obWU9ZnVuY3Rpb24oKXtyZXR1cm4gQn0uYXBwbHkoSmUsW10pKSYmKFhlLmV4cG9ydHM9bWUpLEIuZGVmYXVsdD1CO3Zh''@;'; + put 'put ''ciBFPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIsVT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLFo9L3VybFwoWyInXT8oLis/KVsiJ10/XCkvLGllPXt3b2ZmMjoiZm9udC93b2ZmMiIsd29mZjoiZm9udC93b2ZmIixvdGY6ImFwcGxpY2F0aW9uL3gtZm9udC1vcGVudHlw''@;'; + put 'put ''ZSIsdHRmOiJhcHBsaWNhdGlvbi94LWZvbnQtdHRmIixlb3Q6ImFwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0IixzZm50OiJhcHBsaWNhdGlvbi9mb250LXNmbnQiLHN2ZzoiaW1hZ2Uvc3ZnK3htbCJ9LGxlPWZ1bmN0aW9uKHope3JldHVybiB6IGluc3RhbmNlb2YgSFRNTEVsZW1lbnR8''@;'; + put 'put ''fHogaW5zdGFuY2VvZiBTVkdFbGVtZW50fSxZPWZ1bmN0aW9uKHope2lmKCFsZSh6KSl0aHJvdyBuZXcgRXJyb3IoImFuIEhUTUxFbGVtZW50IG9yIFNWR0VsZW1lbnQgaXMgcmVxdWlyZWQ7IGdvdCAiK3opfSxXPWZ1bmN0aW9uKHope3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuZSx0''@;'; + put 'put ''ZSl7bGUoeik/bmUoeik6dGUobmV3IEVycm9yKCJhbiBIVE1MRWxlbWVudCBvciBTVkdFbGVtZW50IGlzIHJlcXVpcmVkOyBnb3QgIit6KSl9KX0sZWU9ZnVuY3Rpb24oeil7dmFyIG5lPU9iamVjdC5rZXlzKGllKS5maWx0ZXIoZnVuY3Rpb24odGUpe3JldHVybiB6LmluZGV4T2YoIi4iK3Rl''@;'; + put 'put ''KT4wfSkubWFwKGZ1bmN0aW9uKHRlKXtyZXR1cm4gaWVbdGVdfSk7cmV0dXJuIG5lP25lWzBdOihjb25zb2xlLmVycm9yKCJVbmtub3duIGZvbnQgZm9ybWF0IGZvciAiK3orIi4gRm9udHMgbWF5IG5vdCBiZSB3b3JraW5nIGNvcnJlY3RseS4iKSwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt''@;'; + put 'put ''Iil9LEo9ZnVuY3Rpb24oeixuZSx0ZSl7dmFyIHg9ei52aWV3Qm94JiZ6LnZpZXdCb3guYmFzZVZhbCYmei52aWV3Qm94LmJhc2VWYWxbdGVdfHxudWxsIT09bmUuZ2V0QXR0cmlidXRlKHRlKSYmIW5lLmdldEF0dHJpYnV0ZSh0ZSkubWF0Y2goLyUkLykmJnBhcnNlSW50KG5lLmdldEF0dHJp''@;'; + put 'put ''YnV0ZSh0ZSkpfHx6LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW3RlXXx8cGFyc2VJbnQobmUuc3R5bGVbdGVdKXx8cGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoeikuZ2V0UHJvcGVydHlWYWx1ZSh0ZSkpO3JldHVybiBudWxsPT14fHxpc05hTihwYXJzZUZsb2F0KHgpKT8wOnh9''@;'; + put 'put ''LGNlPWZ1bmN0aW9uKHope2Zvcih2YXIgbmU9d2luZG93LmF0b2Ioei5zcGxpdCgiLCIpWzFdKSx0ZT16LnNwbGl0KCIsIilbMF0uc3BsaXQoIjoiKVsxXS5zcGxpdCgiOyIpWzBdLHg9bmV3IEFycmF5QnVmZmVyKG5lLmxlbmd0aCksUD1uZXcgVWludDhBcnJheSh4KSxWPTA7VjxuZS5sZW5n''@;'; + put 'put ''dGg7VisrKVBbVl09bmUuY2hhckNvZGVBdChWKTtyZXR1cm4gbmV3IEJsb2IoW3hdLHt0eXBlOnRlfSl9LGtlPXt9LEllPW51bGwsRWU9ZnVuY3Rpb24oeixuZSl7dmFyIHRlPW5lfHx7fSx4PXRlLnNlbGVjdG9yUmVtYXAsUD10ZS5tb2RpZnlTdHlsZSxUPXRlLmZvbnRzLFM9dGUuZXhjbHVk''@;'; + put 'put ''ZVVudXNlZENzcyxGPXRlLm1vZGlmeUNzc3x8ZnVuY3Rpb24oUGUsUWUpe3JldHVybih4P3goUGUpOlBlKSsieyIrKFA/UChRZSk6UWUpKyJ9XG4ifSx5ZT1bXSxDZT12b2lkIDA9PT1ULERlPVR8fFtdO3JldHVybihJZXx8KEllPUFycmF5LmZyb20oZG9jdW1lbnQuc3R5bGVTaGVldHMpLm1h''@;'; + put 'put ''cChmdW5jdGlvbih6KXt0cnl7cmV0dXJue3J1bGVzOnouY3NzUnVsZXMsaHJlZjp6LmhyZWZ9fWNhdGNoKG5lKXtyZXR1cm4gY29uc29sZS53YXJuKCJTdHlsZXNoZWV0IGNvdWxkIG5vdCBiZSBsb2FkZWQ6ICIrei5ocmVmLG5lKSx7fX19KSkpLmZvckVhY2goZnVuY3Rpb24oUGUpe3ZhciBR''@;'; + put 'put ''ZT1QZS5ydWxlcywkZT1QZS5ocmVmOyFRZXx8QXJyYXkuZnJvbShRZSkuZm9yRWFjaChmdW5jdGlvbihndCl7aWYodm9pZCAwIT09Z3Quc3R5bGUpaWYoZnVuY3Rpb24oeixuZSl7aWYobmUpdHJ5e3JldHVybiB6LnF1ZXJ5U2VsZWN0b3IobmUpfHx6LnBhcmVudE5vZGUmJnoucGFyZW50Tm9k''@;'; + put 'put ''ZS5xdWVyeVNlbGVjdG9yKG5lKX1jYXRjaCh0ZSl7Y29uc29sZS53YXJuKCdJbnZhbGlkIENTUyBzZWxlY3RvciAiJytuZSsnIicsdGUpfX0oeixndC5zZWxlY3RvclRleHQpKXllLnB1c2goRihndC5zZWxlY3RvclRleHQsZ3Quc3R5bGUuY3NzVGV4dCkpO2Vsc2UgaWYoQ2UmJmd0LmNzc1Rl''@;'; + put 'put ''eHQubWF0Y2goL15AZm9udC1mYWNlLykpe3ZhciB3dD1mdW5jdGlvbih6LG5lKXt2YXIgdGU9ei5jc3NUZXh0Lm1hdGNoKFopLHg9dGUmJnRlWzFdfHwiIjtpZih4JiYheC5tYXRjaCgvXmRhdGE6LykmJiJhYm91dDpibGFuayIhPT14KXt2YXIgUD14LnN0YXJ0c1dpdGgoIi4uLyIpP25lKyIv''@;'; + put 'put ''Li4vIit4Onguc3RhcnRzV2l0aCgiLi8iKT9uZSsiLy4iK3g6eDtyZXR1cm57dGV4dDp6LmNzc1RleHQsZm9ybWF0OmVlKFApLHVybDpQfX19KGd0LCRlKTt3dCYmRGUucHVzaCh3dCl9ZWxzZSBTfHx5ZS5wdXNoKGd0LmNzc1RleHQpfSl9KSxmdW5jdGlvbih6KXtyZXR1cm4gUHJvbWlzZS5h''@;'; + put 'put ''bGwoei5tYXAoZnVuY3Rpb24obmUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0ZSx4KXtpZihrZVtuZS51cmxdKXJldHVybiB0ZShrZVtuZS51cmxdKTt2YXIgUD1uZXcgWE1MSHR0cFJlcXVlc3Q7UC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3ZhciBWPWZ1bmN0''@;'; + put 'put ''aW9uKHope2Zvcih2YXIgbmU9IiIsdGU9bmV3IFVpbnQ4QXJyYXkoeikseD0wO3g8dGUuYnl0ZUxlbmd0aDt4KyspbmUrPVN0cmluZy5mcm9tQ2hhckNvZGUodGVbeF0pO3JldHVybiB3aW5kb3cuYnRvYShuZSl9KFAucmVzcG9uc2UpLFQ9bmUudGV4dC5yZXBsYWNlKFosJ3VybCgiZGF0YTon''@;'; + put 'put ''K25lLmZvcm1hdCsiO2Jhc2U2NCwiK1YrJyIpJykrIlxuIjtrZVtuZS51cmxdPVQsdGUoVCl9KSxQLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbihWKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBsb2FkIGZvbnQgZnJvbTogIituZS51cmwsViksa2VbbmUudXJsXT1udWxsLHRl''@;'; + put 'put ''KG51bGwpfSksUC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsZnVuY3Rpb24oVil7Y29uc29sZS53YXJuKCJBYm9ydGVkIGxvYWRpbmcgZm9udCBmcm9tOiAiK25lLnVybCxWKSx0ZShudWxsKX0pLFAub3BlbigiR0VUIixuZS51cmwpLFAucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsUC5z''@;'; + put 'put ''ZW5kKCl9KX0pKS50aGVuKGZ1bmN0aW9uKG5lKXtyZXR1cm4gbmUuZmlsdGVyKGZ1bmN0aW9uKHRlKXtyZXR1cm4gdGV9KS5qb2luKCIiKX0pfShEZSkudGhlbihmdW5jdGlvbihQZSl7cmV0dXJuIHllLmpvaW4oIlxuIikrUGV9KX0saGU9ZnVuY3Rpb24oKXtpZighbmF2aWdhdG9yLm1zU2F2''@;'; + put 'put ''ZU9yT3BlbkJsb2ImJiEoImRvd25sb2FkImluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSkpcmV0dXJue3BvcHVwOndpbmRvdy5vcGVuKCl9fTtCLnByZXBhcmVTdmc9ZnVuY3Rpb24oTyx6LG5lKXtZKE8pO3ZhciB0ZT16fHx7fSx4PXRlLmxlZnQsUD12b2lkIDA9PT14PzA6eCxWPXRl''@;'; + put 'put ''LnRvcCxUPXZvaWQgMD09PVY/MDpWLFM9dGUud2lkdGgsRj10ZS5oZWlnaHQseWU9dGUuc2NhbGUsQ2U9dm9pZCAwPT09eWU/MTp5ZSxEZT10ZS5yZXNwb25zaXZlLFBlPXZvaWQgMCE9PURlJiZEZSxRZT10ZS5leGNsdWRlQ3NzLCRlPXZvaWQgMCE9PVFlJiZRZTtyZXR1cm4gZnVuY3Rpb24o''@;'; + put 'put ''eil7cmV0dXJuIFByb21pc2UuYWxsKEFycmF5LmZyb20oei5xdWVyeVNlbGVjdG9yQWxsKCJpbWFnZSIpKS5tYXAoZnVuY3Rpb24obmUpe3ZhciB0ZT1uZS5nZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsImhyZWYiKXx8bmUuZ2V0QXR0cmlidXRlKCJocmVm''@;'; + put 'put ''Iik7cmV0dXJuIHRlPyhmdW5jdGlvbih6KXtyZXR1cm4geiYmMD09PXoubGFzdEluZGV4T2YoImh0dHAiLDApJiYtMT09PXoubGFzdEluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3QpfSh0ZSkmJih0ZSs9KC0xPT09dGUuaW5kZXhPZigiPyIpPyI/IjoiJiIpKyJ0PSIrKG5ldyBEYXRlKS52''@;'; + put 'put ''YWx1ZU9mKCkpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHgsUCl7dmFyIFY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksVD1uZXcgSW1hZ2U7VC5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixULnNyYz10ZSxULm9uZXJyb3I9ZnVuY3Rpb24oKXtyZXR1cm4gUChuZXcgRXJyb3IoIkNv''@;'; + put 'put ''dWxkIG5vdCBsb2FkICIrdGUpKX0sVC5vbmxvYWQ9ZnVuY3Rpb24oKXtWLndpZHRoPVQud2lkdGgsVi5oZWlnaHQ9VC5oZWlnaHQsVi5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZShULDAsMCksbmUuc2V0QXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJocmVm''@;'; + put 'put ''IixWLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIikpLHgoITApfX0pKTpQcm9taXNlLnJlc29sdmUobnVsbCl9KSl9KE8pLnRoZW4oZnVuY3Rpb24oKXt2YXIgZ3Q9Ty5jbG9uZU5vZGUoITApO2d0LnN0eWxlLmJhY2tncm91bmRDb2xvcj0oenx8e30pLmJhY2tncm91bmRDb2xvcnx8Ty5zdHlsZS5i''@;'; + put 'put ''YWNrZ3JvdW5kQ29sb3I7dmFyIHd0PWZ1bmN0aW9uKHosbmUsdGUseCl7aWYoInN2ZyI9PT16LnRhZ05hbWUpcmV0dXJue3dpZHRoOnRlfHxKKHosbmUsIndpZHRoIiksaGVpZ2h0Onh8fEooeixuZSwiaGVpZ2h0Iil9O2lmKHouZ2V0QkJveCl7dmFyIFA9ei5nZXRCQm94KCk7cmV0dXJue3dp''@;'; + put 'put ''ZHRoOlAueCtQLndpZHRoLGhlaWdodDpQLnkrUC5oZWlnaHR9fX0oTyxndCxTLEYpLHZ0PXd0LndpZHRoLEF0PXd0LmhlaWdodDtpZigic3ZnIiE9PU8udGFnTmFtZSl7aWYoIU8uZ2V0QkJveClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJBdHRlbXB0ZWQgdG8gcmVuZGVyIG5vbi1TVkcg''@;'; + put 'put ''ZWxlbWVudCIsTyk7bnVsbCE9Z3QuZ2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iKSYmZ3Quc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLGd0LmdldEF0dHJpYnV0ZSgidHJhbnNmb3JtIikucmVwbGFjZSgvdHJhbnNsYXRlXCguKj9cKS8sIiIpKTt2YXIgbXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu''@;'; + put 'put ''dE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpO210LmFwcGVuZENoaWxkKGd0KSxndD1tdH1pZihndC5zZXRBdHRyaWJ1dGUoInZlcnNpb24iLCIxLjEiKSxndC5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLFtQLFQsdnQsQXRdLmpvaW4oIiAiKSksZ3QuZ2V0QXR0cmlidXRl''@;'; + put 'put ''KCJ4bWxucyIpfHxndC5zZXRBdHRyaWJ1dGVOUyhFLCJ4bWxucyIsVSksZ3QuZ2V0QXR0cmlidXRlKCJ4bWxuczp4bGluayIpfHxndC5zZXRBdHRyaWJ1dGVOUyhFLCJ4bWxuczp4bGluayIsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiKSxQZT8oZ3QucmVtb3ZlQXR0cmlidXRlKCJ3''@;'; + put 'put ''aWR0aCIpLGd0LnJlbW92ZUF0dHJpYnV0ZSgiaGVpZ2h0IiksZ3Quc2V0QXR0cmlidXRlKCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwieE1pbllNaW4gbWVldCIpKTooZ3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsdnQqQ2UpLGd0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IixBdCpDZSkpLEFycmF5LmZy''@;'; + put 'put ''b20oZ3QucXVlcnlTZWxlY3RvckFsbCgiZm9yZWlnbk9iamVjdCA+ICoiKSkuZm9yRWFjaChmdW5jdGlvbihvbil7b24uc2V0QXR0cmlidXRlTlMoRSwieG1sbnMiLCJzdmciPT09b24udGFnTmFtZT9VOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIil9KSwhJGUpcmV0dXJuIEVlKE8s''@;'; + put 'put ''eikudGhlbihmdW5jdGlvbihvbil7dmFyIF90PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7X3Quc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9jc3MiKSxfdC5pbm5lckhUTUw9IjwhW0NEQVRBW1xuIitvbisiXG5dXT4iO3ZhciB0dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk''@;'; + put 'put ''ZWZzIik7dHQuYXBwZW5kQ2hpbGQoX3QpLGd0Lmluc2VydEJlZm9yZSh0dCxndC5maXJzdENoaWxkKTt2YXIgZXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZXQuYXBwZW5kQ2hpbGQoZ3QpO3ZhciBhdD1ldC5pbm5lckhUTUwucmVwbGFjZSgvTlNcZCs6aHJlZi9naSwneG1sbnM6''@;'; + put 'put ''eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhsaW5rOmhyZWYnKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgbmUpcmV0dXJue3NyYzphdCx3aWR0aDp2dCxoZWlnaHQ6QXR9O25lKGF0LHZ0LEF0KX0pO3ZhciBodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtodC5h''@;'; + put 'put ''cHBlbmRDaGlsZChndCk7dmFyIEJ0PWh0LmlubmVySFRNTDtpZigiZnVuY3Rpb24iIT10eXBlb2YgbmUpcmV0dXJue3NyYzpCdCx3aWR0aDp2dCxoZWlnaHQ6QXR9O25lKEJ0LHZ0LEF0KX0pfSxCLnN2Z0FzRGF0YVVyaT1mdW5jdGlvbihPLHosbmUpe3JldHVybiBZKE8pLEIucHJlcGFyZVN2''@;'; + put 'put ''ZyhPLHopLnRoZW4oZnVuY3Rpb24odGUpe3ZhciBQPXRlLndpZHRoLFY9dGUuaGVpZ2h0LFQ9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsIit3aW5kb3cuYnRvYShmdW5jdGlvbih6KXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh6KS5yZXBsYWNlKC8l''@;'; + put 'put ''KFswLTlBLUZdezJ9KS9nLGZ1bmN0aW9uKG5lLHRlKXt2YXIgeD1TdHJpbmcuZnJvbUNoYXJDb2RlKCIweCIrdGUpO3JldHVybiIlIj09PXg/IiUyNSI6eH0pKX0oJzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQg''@;'; + put 'put ''U1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiIFs8IUVOVElUWSBuYnNwICImIzE2MDsiPl0+Jyt0ZS5zcmMpKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgbmUmJm5lKFQsUCxWKSxUfSl9LEIuc3ZnQXNQbmdVcmk9ZnVuY3Rp''@;'; + put 'put ''b24oTyx6LG5lKXtZKE8pO3ZhciB0ZT16fHx7fSx4PXRlLmVuY29kZXJUeXBlLFA9dm9pZCAwPT09eD8iaW1hZ2UvcG5nIjp4LFY9dGUuZW5jb2Rlck9wdGlvbnMsVD12b2lkIDA9PT1WPy44OlYsUz10ZS5jYW52ZyxGPWZ1bmN0aW9uKENlKXt2YXIgRGU9Q2Uuc3JjLFBlPUNlLndpZHRoLFFl''@;'; + put 'put ''PUNlLmhlaWdodCwkZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxndD0kZS5nZXRDb250ZXh0KCIyZCIpLHd0PXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxOyRlLndpZHRoPVBlKnd0LCRlLmhlaWdodD1RZSp3dCwkZS5zdHlsZS53aWR0aD0kZS53aWR0aCsicHgiLCRlLnN0''@;'; + put 'put ''eWxlLmhlaWdodD0kZS5oZWlnaHQrInB4IixndC5zZXRUcmFuc2Zvcm0od3QsMCwwLHd0LDAsMCksUz9TKCRlLERlKTpndC5kcmF3SW1hZ2UoRGUsMCwwKTt2YXIgdnQ9dm9pZCAwO3RyeXt2dD0kZS50b0RhdGFVUkwoUCxUKX1jYXRjaChBdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTZWN1''@;'; + put 'put ''cml0eUVycm9yJiZBdCBpbnN0YW5jZW9mIFNlY3VyaXR5RXJyb3J8fCJTZWN1cml0eUVycm9yIj09PUF0Lm5hbWUpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiUmVuZGVyZWQgU1ZHIGltYWdlcyBjYW5ub3QgYmUgZG93bmxvYWRlZCBpbiB0aGlzIGJyb3dzZXIuIik7dGhyb3cgQXR9cmV0''@;'; + put 'put ''dXJuImZ1bmN0aW9uIj09dHlwZW9mIG5lJiZuZSh2dCwkZS53aWR0aCwkZS5oZWlnaHQpLFByb21pc2UucmVzb2x2ZSh2dCl9O3JldHVybiBTP0IucHJlcGFyZVN2ZyhPLHopLnRoZW4oRik6Qi5zdmdBc0RhdGFVcmkoTyx6KS50aGVuKGZ1bmN0aW9uKHllKXtyZXR1cm4gbmV3IFByb21pc2Uo''@;'; + put 'put ''ZnVuY3Rpb24oQ2UsRGUpe3ZhciBQZT1uZXcgSW1hZ2U7UGUub25sb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIENlKEYoe3NyYzpQZSx3aWR0aDpQZS53aWR0aCxoZWlnaHQ6UGUuaGVpZ2h0fSkpfSxQZS5vbmVycm9yPWZ1bmN0aW9uKCl7RGUoIlRoZXJlIHdhcyBhbiBlcnJvciBsb2FkaW5nIHRo''@;'; + put 'put ''ZSBkYXRhIFVSSSBhcyBhbiBpbWFnZSBvbiB0aGUgZm9sbG93aW5nIFNWR1xuIit3aW5kb3cuYXRvYih5ZS5zbGljZSgyNikpKyJPcGVuIHRoZSBmb2xsb3dpbmcgbGluayB0byBzZWUgYnJvd3NlcidzIGRpYWdub3Npc1xuIit5ZSl9LFBlLnNyYz15ZX0pfSl9LEIuZG93bmxvYWQ9ZnVuY3Rp''@;'; + put 'put ''b24oTyx6LG5lKXtpZihuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYiluYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihjZSh6KSxPKTtlbHNle3ZhciB0ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7aWYoImRvd25sb2FkImluIHRlKXt0ZS5kb3dubG9hZD1PLHRlLnN0eWxlLmRpc3Bs''@;'; + put 'put ''YXk9Im5vbmUiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGUpO3RyeXt2YXIgeD1jZSh6KSxQPVVSTC5jcmVhdGVPYmplY3RVUkwoeCk7dGUuaHJlZj1QLHRlLm9uY2xpY2s9ZnVuY3Rpb24oKXtyZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmV0dXJuIFVSTC5y''@;'; + put 'put ''ZXZva2VPYmplY3RVUkwoUCl9KX19Y2F0Y2goVil7Y29uc29sZS5lcnJvcihWKSxjb25zb2xlLndhcm4oIkVycm9yIHdoaWxlIGdldHRpbmcgb2JqZWN0IFVSTC4gRmFsbGluZyBiYWNrIHRvIHN0cmluZyBVUkwuIiksdGUuaHJlZj16fXRlLmNsaWNrKCksZG9jdW1lbnQuYm9keS5yZW1vdmVD''@;'; + put 'put ''aGlsZCh0ZSl9ZWxzZSBuZSYmbmUucG9wdXAmJihuZS5wb3B1cC5kb2N1bWVudC50aXRsZT1PLG5lLnBvcHVwLmxvY2F0aW9uLnJlcGxhY2UoeikpfX0sQi5zYXZlU3ZnPWZ1bmN0aW9uKE8seixuZSl7dmFyIHRlPWhlKCk7cmV0dXJuIFcoTykudGhlbihmdW5jdGlvbih4KXtyZXR1cm4gQi5z''@;'; + put 'put ''dmdBc0RhdGFVcmkoeCxuZXx8e30pfSkudGhlbihmdW5jdGlvbih4KXtyZXR1cm4gQi5kb3dubG9hZCh6LHgsdGUpfSl9LEIuc2F2ZVN2Z0FzUG5nPWZ1bmN0aW9uKE8seixuZSl7dmFyIHRlPWhlKCk7cmV0dXJuIFcoTykudGhlbihmdW5jdGlvbih4KXtyZXR1cm4gQi5zdmdBc1BuZ1VyaSh4''@;'; + put 'put ''LG5lfHx7fSl9KS50aGVuKGZ1bmN0aW9uKHgpe3JldHVybiBCLmRvd25sb2FkKHoseCx0ZSl9KX19KCl9LDg2NjkyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDczNTAyKS5CdWZmZXI7ZnVuY3Rpb24gQihFLE1lKXt0aGlzLl9ibG9jaz1tZS5hbGxvYyhFKSx0aGlzLl9maW5hbFNpemU9TWUsdGhp''@;'; + put 'put ''cy5fYmxvY2tTaXplPUUsdGhpcy5fbGVuPTB9Qi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKEUsTWUpeyJzdHJpbmciPT10eXBlb2YgRSYmKEU9bWUuZnJvbShFLE1lPU1lfHwidXRmOCIpKTtmb3IodmFyIFU9dGhpcy5fYmxvY2ssUT10aGlzLl9ibG9ja1NpemUsWj1FLmxlbmd0aCxpZT10''@;'; + put 'put ''aGlzLl9sZW4sbGU9MDtsZTxaOyl7Zm9yKHZhciBZPWllJVEsVz1NYXRoLm1pbihaLWxlLFEtWSksTj0wO048VztOKyspVVtZK05dPUVbbGUrTl07bGUrPVcsKGllKz1XKSVRPT0wJiZ0aGlzLl91cGRhdGUoVSl9cmV0dXJuIHRoaXMuX2xlbis9Wix0aGlzfSxCLnByb3RvdHlwZS5kaWdlc3Q9''@;'; + put 'put ''ZnVuY3Rpb24oRSl7dmFyIE1lPXRoaXMuX2xlbiV0aGlzLl9ibG9ja1NpemU7dGhpcy5fYmxvY2tbTWVdPTEyOCx0aGlzLl9ibG9jay5maWxsKDAsTWUrMSksTWU+PXRoaXMuX2ZpbmFsU2l6ZSYmKHRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jayksdGhpcy5fYmxvY2suZmlsbCgwKSk7dmFyIFU9''@;'; + put 'put ''OCp0aGlzLl9sZW47aWYoVTw9NDI5NDk2NzI5NSl0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKFUsdGhpcy5fYmxvY2tTaXplLTQpO2Vsc2V7dmFyIFE9KDQyOTQ5NjcyOTUmVSk+Pj4wO3RoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoKFUtUSkvNDI5NDk2NzI5Nix0aGlzLl9ibG9ja1NpemUt''@;'; + put 'put ''OCksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRShRLHRoaXMuX2Jsb2NrU2l6ZS00KX10aGlzLl91cGRhdGUodGhpcy5fYmxvY2spO3ZhciBpZT10aGlzLl9oYXNoKCk7cmV0dXJuIEU/aWUudG9TdHJpbmcoRSk6aWV9LEIucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcg''@;'; + put 'put ''RXJyb3IoIl91cGRhdGUgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzcyIpfSxYZS5leHBvcnRzPUJ9LDk1MjQ0OihYZSxKZSxMKT0+e3ZhciBtZT1YZS5leHBvcnRzPWZ1bmN0aW9uKEUpe0U9RS50b0xvd2VyQ2FzZSgpO3ZhciBNZT1tZVtFXTtpZighTWUpdGhyb3cgbmV3IEVycm9y''@;'; + put 'put ''KEUrIiBpcyBub3Qgc3VwcG9ydGVkICh3ZSBhY2NlcHQgcHVsbCByZXF1ZXN0cykiKTtyZXR1cm4gbmV3IE1lfTttZS5zaGE9TCg4ODkzMiksbWUuc2hhMT1MKDE3NzM2KSxtZS5zaGEyMjQ9TCgyNTA0NCksbWUuc2hhMjU2PUwoMTUwMTQpLG1lLnNoYTM4ND1MKDc2NTQwKSxtZS5zaGE1MTI9''@;'; + put 'put ''TCgxMDExNyl9LDg4OTMyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDgzODk0KSxCPUwoODY2OTIpLEU9TCg3MzUwMikuQnVmZmVyLE1lPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsLTE4OTQwMDc1ODgsLTg5OTQ5NzUxNF0sVT1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIFEoKXt0aGlzLmluaXQoKSx0''@;'; + put 'put ''aGlzLl93PVUsQi5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIFooWSl7cmV0dXJuIFk8PDV8WT4+PjI3fWZ1bmN0aW9uIGllKFkpe3JldHVybiBZPDwzMHxZPj4+Mn1mdW5jdGlvbiBsZShZLFcsTixlZSl7cmV0dXJuIDA9PT1ZP1cmTnx+VyZlZToyPT09WT9XJk58VyZlZXxOJmVlOldeTl5l''@;'; + put 'put ''ZX1tZShRLEIpLFEucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LFEucHJvdG90eXBlLl91cGRhdGU9''@;'; + put 'put ''ZnVuY3Rpb24oWSl7Zm9yKHZhciBXPXRoaXMuX3csTj0wfHRoaXMuX2EsZWU9MHx0aGlzLl9iLHE9MHx0aGlzLl9jLEo9MHx0aGlzLl9kLHNlPTB8dGhpcy5fZSxvZT0wO29lPDE2Oysrb2UpV1tvZV09WS5yZWFkSW50MzJCRSg0Km9lKTtmb3IoO29lPDgwOysrb2UpV1tvZV09V1tvZS0zXV5X''@;'; + put 'put ''W29lLThdXldbb2UtMTRdXldbb2UtMTZdO2Zvcih2YXIgY2U9MDtjZTw4MDsrK2NlKXt2YXIgZGU9fn4oY2UvMjApLHZlPVooTikrbGUoZGUsZWUscSxKKStzZStXW2NlXStNZVtkZV18MDtzZT1KLEo9cSxxPWllKGVlKSxlZT1OLE49dmV9dGhpcy5fYT1OK3RoaXMuX2F8MCx0aGlzLl9iPWVl''@;'; + put 'put ''K3RoaXMuX2J8MCx0aGlzLl9jPXErdGhpcy5fY3wwLHRoaXMuX2Q9Sit0aGlzLl9kfDAsdGhpcy5fZT1zZSt0aGlzLl9lfDB9LFEucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIFk9RS5hbGxvY1Vuc2FmZSgyMCk7cmV0dXJuIFkud3JpdGVJbnQzMkJFKDB8dGhpcy5fYSwwKSxZLndy''@;'; + put 'put ''aXRlSW50MzJCRSgwfHRoaXMuX2IsNCksWS53cml0ZUludDMyQkUoMHx0aGlzLl9jLDgpLFkud3JpdGVJbnQzMkJFKDB8dGhpcy5fZCwxMiksWS53cml0ZUludDMyQkUoMHx0aGlzLl9lLDE2KSxZfSxYZS5leHBvcnRzPVF9LDE3NzM2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDgzODk0KSxCPUwo''@;'; + put 'put ''ODY2OTIpLEU9TCg3MzUwMikuQnVmZmVyLE1lPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsLTE4OTQwMDc1ODgsLTg5OTQ5NzUxNF0sVT1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIFEoKXt0aGlzLmluaXQoKSx0aGlzLl93PVUsQi5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIFooVyl7cmV0dXJu''@;'; + put 'put ''IFc8PDF8Vz4+PjMxfWZ1bmN0aW9uIGllKFcpe3JldHVybiBXPDw1fFc+Pj4yN31mdW5jdGlvbiBsZShXKXtyZXR1cm4gVzw8MzB8Vz4+PjJ9ZnVuY3Rpb24gWShXLE4sZWUscSl7cmV0dXJuIDA9PT1XP04mZWV8fk4mcToyPT09Vz9OJmVlfE4mcXxlZSZxOk5eZWVecX1tZShRLEIpLFEucHJv''@;'; + put 'put ''dG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LFEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oVyl7Zm9y''@;'; + put 'put ''KHZhciBOPXRoaXMuX3csZWU9MHx0aGlzLl9hLHE9MHx0aGlzLl9iLEo9MHx0aGlzLl9jLHNlPTB8dGhpcy5fZCxvZT0wfHRoaXMuX2UsY2U9MDtjZTwxNjsrK2NlKU5bY2VdPVcucmVhZEludDMyQkUoNCpjZSk7Zm9yKDtjZTw4MDsrK2NlKU5bY2VdPVooTltjZS0zXV5OW2NlLThdXk5bY2Ut''@;'; + put 'put ''MTRdXk5bY2UtMTZdKTtmb3IodmFyIGRlPTA7ZGU8ODA7KytkZSl7dmFyIHZlPX5+KGRlLzIwKSxBZT1pZShlZSkrWSh2ZSxxLEosc2UpK29lK05bZGVdK01lW3ZlXXwwO29lPXNlLHNlPUosSj1sZShxKSxxPWVlLGVlPUFlfXRoaXMuX2E9ZWUrdGhpcy5fYXwwLHRoaXMuX2I9cSt0aGlzLl9i''@;'; + put 'put ''fDAsdGhpcy5fYz1KK3RoaXMuX2N8MCx0aGlzLl9kPXNlK3RoaXMuX2R8MCx0aGlzLl9lPW9lK3RoaXMuX2V8MH0sUS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgVz1FLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gVy53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLFcud3JpdGVJbnQz''@;'; + put 'put ''MkJFKDB8dGhpcy5fYiw0KSxXLndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksVy53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSxXLndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLFd9LFhlLmV4cG9ydHM9UX0sMjUwNDQ6KFhlLEplLEwpPT57dmFyIG1lPUwoODM4OTQpLEI9TCgxNTAxNCks''@;'; + put 'put ''RT1MKDg2NjkyKSxNZT1MKDczNTAyKS5CdWZmZXIsVT1uZXcgQXJyYXkoNjQpO2Z1bmN0aW9uIFEoKXt0aGlzLmluaXQoKSx0aGlzLl93PVUsRS5jYWxsKHRoaXMsNjQsNTYpfW1lKFEsQiksUS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTMyMzgzNzEwMzIsdGhp''@;'; + put 'put ''cy5fYj05MTQxNTA2NjMsdGhpcy5fYz04MTI3MDI5OTksdGhpcy5fZD00MTQ0OTEyNjk3LHRoaXMuX2U9NDI5MDc3NTg1Nyx0aGlzLl9mPTE3NTA2MDMwMjUsdGhpcy5fZz0xNjk0MDc2ODM5LHRoaXMuX2g9MzIwNDA3NTQyOCx0aGlzfSxRLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciBaPU1lLmFsbG9jVW5zYWZlKDI4KTtyZXR1cm4gWi53cml0ZUludDMyQkUodGhpcy5fYSwwKSxaLndyaXRlSW50MzJCRSh0aGlzLl9iLDQpLFoud3JpdGVJbnQzMkJFKHRoaXMuX2MsOCksWi53cml0ZUludDMyQkUodGhpcy5fZCwxMiksWi53cml0ZUludDMyQkUodGhpcy5fZSwxNiksWi53''@;'; + put 'put ''cml0ZUludDMyQkUodGhpcy5fZiwyMCksWi53cml0ZUludDMyQkUodGhpcy5fZywyNCksWn0sWGUuZXhwb3J0cz1RfSwxNTAxNDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4Mzg5NCksQj1MKDg2NjkyKSxFPUwoNzM1MDIpLkJ1ZmZlcixNZT1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0''@;'; + put 'put ''NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQs''@;'; + put 'put ''MjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5''@;'; + put 'put ''OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzcz''@;'; + put 'put ''NCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxV''@;'; + put 'put ''PW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gUSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9VSxCLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gWihlZSxxLEope3JldHVybiBKXmVlJihxXkopfWZ1bmN0aW9uIGllKGVlLHEsSil7cmV0dXJuIGVlJnF8SiYoZWV8cSl9ZnVuY3Rpb24gbGUoZWUpe3Jl''@;'; + put 'put ''dHVybihlZT4+PjJ8ZWU8PDMwKV4oZWU+Pj4xM3xlZTw8MTkpXihlZT4+PjIyfGVlPDwxMCl9ZnVuY3Rpb24gWShlZSl7cmV0dXJuKGVlPj4+NnxlZTw8MjYpXihlZT4+PjExfGVlPDwyMSleKGVlPj4+MjV8ZWU8PDcpfWZ1bmN0aW9uIFcoZWUpe3JldHVybihlZT4+Pjd8ZWU8PDI1KV4oZWU+''@;'; + put 'put ''Pj4xOHxlZTw8MTQpXmVlPj4+M31mdW5jdGlvbiBOKGVlKXtyZXR1cm4oZWU+Pj4xN3xlZTw8MTUpXihlZT4+PjE5fGVlPDwxMyleZWU+Pj4xMH1tZShRLEIpLFEucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzc5MDMzNzAzLHRoaXMuX2I9MzE0NDEzNDI3Nyx0''@;'; + put 'put ''aGlzLl9jPTEwMTM5MDQyNDIsdGhpcy5fZD0yNzczNDgwNzYyLHRoaXMuX2U9MTM1OTg5MzExOSx0aGlzLl9mPTI2MDA4MjI5MjQsdGhpcy5fZz01Mjg3MzQ2MzUsdGhpcy5faD0xNTQxNDU5MjI1LHRoaXN9LFEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZWUpe2Zvcih2YXIgcT10aGlz''@;'; + put 'put ''Ll93LEo9MHx0aGlzLl9hLHNlPTB8dGhpcy5fYixvZT0wfHRoaXMuX2MsY2U9MHx0aGlzLl9kLGRlPTB8dGhpcy5fZSx2ZT0wfHRoaXMuX2YsQWU9MHx0aGlzLl9nLGtlPTB8dGhpcy5faCxTZT0wO1NlPDE2OysrU2UpcVtTZV09ZWUucmVhZEludDMyQkUoNCpTZSk7Zm9yKDtTZTw2NDsrK1Nl''@;'; + put 'put ''KXFbU2VdPU4ocVtTZS0yXSkrcVtTZS03XStXKHFbU2UtMTVdKStxW1NlLTE2XXwwO2Zvcih2YXIgSWU9MDtJZTw2NDsrK0llKXt2YXIgVGU9a2UrWShkZSkrWihkZSx2ZSxBZSkrTWVbSWVdK3FbSWVdfDAsRWU9bGUoSikraWUoSixzZSxvZSl8MDtrZT1BZSxBZT12ZSx2ZT1kZSxkZT1jZStU''@;'; + put 'put ''ZXwwLGNlPW9lLG9lPXNlLHNlPUosSj1UZStFZXwwfXRoaXMuX2E9Sit0aGlzLl9hfDAsdGhpcy5fYj1zZSt0aGlzLl9ifDAsdGhpcy5fYz1vZSt0aGlzLl9jfDAsdGhpcy5fZD1jZSt0aGlzLl9kfDAsdGhpcy5fZT1kZSt0aGlzLl9lfDAsdGhpcy5fZj12ZSt0aGlzLl9mfDAsdGhpcy5fZz1B''@;'; + put 'put ''ZSt0aGlzLl9nfDAsdGhpcy5faD1rZSt0aGlzLl9ofDB9LFEucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGVlPUUuYWxsb2NVbnNhZmUoMzIpO3JldHVybiBlZS53cml0ZUludDMyQkUodGhpcy5fYSwwKSxlZS53cml0ZUludDMyQkUodGhpcy5fYiw0KSxlZS53cml0ZUludDMyQkUo''@;'; + put 'put ''dGhpcy5fYyw4KSxlZS53cml0ZUludDMyQkUodGhpcy5fZCwxMiksZWUud3JpdGVJbnQzMkJFKHRoaXMuX2UsMTYpLGVlLndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKSxlZS53cml0ZUludDMyQkUodGhpcy5fZywyNCksZWUud3JpdGVJbnQzMkJFKHRoaXMuX2gsMjgpLGVlfSxYZS5leHBvcnRz''@;'; + put 'put ''PVF9LDc2NTQwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDgzODk0KSxCPUwoMTAxMTcpLEU9TCg4NjY5MiksTWU9TCg3MzUwMikuQnVmZmVyLFU9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gUSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9VSxFLmNhbGwodGhpcywxMjgsMTEyKX1tZShRLEIpLFEucHJv''@;'; + put 'put ''dG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWg9MzQxODA3MDM2NSx0aGlzLl9iaD0xNjU0MjcwMjUwLHRoaXMuX2NoPTI0Mzg1MjkzNzAsdGhpcy5fZGg9MzU1NDYyMzYwLHRoaXMuX2VoPTE3MzE0MDU0MTUsdGhpcy5fZmg9MjM5NDE4MDIzMSx0aGlzLl9naD0zNjc1MDA4''@;'; + put 'put ''NTI1LHRoaXMuX2hoPTEyMDMwNjI4MTMsdGhpcy5fYWw9MzIzODM3MTAzMix0aGlzLl9ibD05MTQxNTA2NjMsdGhpcy5fY2w9ODEyNzAyOTk5LHRoaXMuX2RsPTQxNDQ5MTI2OTcsdGhpcy5fZWw9NDI5MDc3NTg1Nyx0aGlzLl9mbD0xNzUwNjAzMDI1LHRoaXMuX2dsPTE2OTQwNzY4MzksdGhp''@;'; + put 'put ''cy5faGw9MzIwNDA3NTQyOCx0aGlzfSxRLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBaPU1lLmFsbG9jVW5zYWZlKDQ4KTtmdW5jdGlvbiBpZShsZSxZLFcpe1oud3JpdGVJbnQzMkJFKGxlLFcpLFoud3JpdGVJbnQzMkJFKFksVys0KX1yZXR1cm4gaWUodGhpcy5fYWgsdGhpcy5f''@;'; + put 'put ''YWwsMCksaWUodGhpcy5fYmgsdGhpcy5fYmwsOCksaWUodGhpcy5fY2gsdGhpcy5fY2wsMTYpLGllKHRoaXMuX2RoLHRoaXMuX2RsLDI0KSxpZSh0aGlzLl9laCx0aGlzLl9lbCwzMiksaWUodGhpcy5fZmgsdGhpcy5fZmwsNDApLFp9LFhlLmV4cG9ydHM9UX0sMTAxMTc6KFhlLEplLEwpPT57''@;'; + put 'put ''dmFyIG1lPUwoODM4OTQpLEI9TCg4NjY5MiksRT1MKDczNTAyKS5CdWZmZXIsTWU9WzExMTYzNTI0MDgsMzYwOTc2NzQ1OCwxODk5NDQ3NDQxLDYwMjg5MTcyNSwzMDQ5MzIzNDcxLDM5NjQ0ODQzOTksMzkyMTAwOTU3MywyMTczMjk1NTQ4LDk2MTk4NzE2Myw0MDgxNjI4NDcyLDE1MDg5NzA5''@;'; + put 'put ''OTMsMzA1MzgzNDI2NSwyNDUzNjM1NzQ4LDI5Mzc2NzE1NzksMjg3MDc2MzIyMSwzNjY0NjA5NTYwLDM2MjQzODEwODAsMjczNDg4MzM5NCwzMTA1OTg0MDEsMTE2NDk5NjU0Miw2MDcyMjUyNzgsMTMyMzYxMDc2NCwxNDI2ODgxOTg3LDM1OTAzMDQ5OTQsMTkyNTA3ODM4OCw0MDY4MTgyMzgz''@;'; + put 'put ''LDIxNjIwNzgyMDYsOTkxMzM2MTEzLDI2MTQ4ODgxMDMsNjMzODAzMzE3LDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCwzODM1MzkwNDAxLDI2NjY2MTM0NTgsNDAyMjIyNDc3NCw5NDQ3MTExMzksMjY0MzQ3MDc4LDIzNDEyNjI3NzMsNjA0ODA3NjI4LDIwMDc4MDA5MzMsNzcwMjU1OTgzLDE0OTU5''@;'; + put 'put ''OTA5MDEsMTI0OTE1MDEyMiwxODU2NDMxMjM1LDE1NTUwODE2OTIsMzE3NTIxODEzMiwxOTk2MDY0OTg2LDIxOTg5NTA4MzcsMjU1NDIyMDg4MiwzOTk5NzE5MzM5LDI4MjE4MzQzNDksNzY2Nzg0MDE2LDI5NTI5OTY4MDgsMjU2NjU5NDg3OSwzMjEwMzEzNjcxLDMyMDMzMzc5NTYsMzMzNjU3''@;'; + put 'put ''MTg5MSwxMDM0NDU3MDI2LDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSwxMTM5MjY5OTMsMzc1ODMyNjM4MywzMzgyNDE4OTUsMTY4NzE3OTM2LDY2NjMwNzIwNSwxMTg4MTc5OTY0LDc3MzUyOTkxMiwxNTQ2MDQ1NzM0LDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSwxMzk2MTgyMjkxLDI2NDM4MzM4MjMs''@;'; + put 'put ''MTY5NTE4MzcwMCwyMzQzNTI3MzkwLDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCwyMTc3MDI2MzUwLDEyMDY3NTkxNDIsMjQ1Njk1NjAzNywzNDQwNzc2MjcsMjczMDQ4NTkyMSwxMjkwODYzNDYwLDI4MjAzMDI0MTEsMzE1ODQ1NDI3MywzMjU5NzMwODAwLDM1MDU5NTI2NTcsMzM0NTc2NDc3MSwx''@;'; + put 'put ''MDYyMTcwMDgsMzUxNjA2NTgxNywzNjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcxOTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4''@;'; + put 'put ''NzcsMzc4NTA1MDI4MCw5NTgxMzk1NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUzNzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsMjcxNjkwNDMw''@;'; + put 'put ''NiwyMzYxODUyNDI0LDQ0Mjc3NjA0NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMxMTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUxNTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsMzUxNTI2NzI3MSw1NjYyODA3MTEsMzk0MDE4NzYwNiwz''@;'; + put 'put ''NDU0MDY5NTM0LDQxMTg2MzAyNzEsNDAwMDIzOTk5MiwxMTY0MTg0NzQsMTkxNDEzODU1NCwxNzQyOTI0MjEsMjczMTA1NTI3MCwyODkzODAzNTYsMzIwMzk5MzAwNiw0NjAzOTMyNjksMzIwNjIwMzE1LDY4NTQ3MTczMyw1ODc0OTY4MzYsODUyMTQyOTcxLDEwODY3OTI4NTEsMTAxNzAzNjI5''@;'; + put 'put ''OCwzNjU1NDMxMDAsMTEyNjAwMDU4MCwyNjE4Mjk3Njc2LDEyODgwMzM0NzAsMzQwOTg1NTE1OCwxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYsMTYwNzE2NzkxNSw5ODcxNjc0NjgsMTgxNjQwMjMxNiwxMjQ2MTg5NTkxXSxVPW5ldyBBcnJheSgxNjApO2Z1bmN0aW9uIFEoKXt0aGlzLmluaXQoKSx0''@;'; + put 'put ''aGlzLl93PVUsQi5jYWxsKHRoaXMsMTI4LDExMil9ZnVuY3Rpb24gWihzZSxvZSxjZSl7cmV0dXJuIGNlXnNlJihvZV5jZSl9ZnVuY3Rpb24gaWUoc2Usb2UsY2Upe3JldHVybiBzZSZvZXxjZSYoc2V8b2UpfWZ1bmN0aW9uIGxlKHNlLG9lKXtyZXR1cm4oc2U+Pj4yOHxvZTw8NCleKG9lPj4+''@;'; + put 'put ''MnxzZTw8MzApXihvZT4+Pjd8c2U8PDI1KX1mdW5jdGlvbiBZKHNlLG9lKXtyZXR1cm4oc2U+Pj4xNHxvZTw8MTgpXihzZT4+PjE4fG9lPDwxNCleKG9lPj4+OXxzZTw8MjMpfWZ1bmN0aW9uIFcoc2Usb2Upe3JldHVybihzZT4+PjF8b2U8PDMxKV4oc2U+Pj44fG9lPDwyNClec2U+Pj43fWZ1''@;'; + put 'put ''bmN0aW9uIE4oc2Usb2Upe3JldHVybihzZT4+PjF8b2U8PDMxKV4oc2U+Pj44fG9lPDwyNCleKHNlPj4+N3xvZTw8MjUpfWZ1bmN0aW9uIGVlKHNlLG9lKXtyZXR1cm4oc2U+Pj4xOXxvZTw8MTMpXihvZT4+PjI5fHNlPDwzKV5zZT4+PjZ9ZnVuY3Rpb24gcShzZSxvZSl7cmV0dXJuKHNlPj4+''@;'; + put 'put ''MTl8b2U8PDEzKV4ob2U+Pj4yOXxzZTw8MyleKHNlPj4+NnxvZTw8MjYpfWZ1bmN0aW9uIEooc2Usb2Upe3JldHVybiBzZT4+PjA8b2U+Pj4wPzE6MH1tZShRLEIpLFEucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWg9MTc3OTAzMzcwMyx0aGlzLl9iaD0zMTQ0MTM0''@;'; + put 'put ''Mjc3LHRoaXMuX2NoPTEwMTM5MDQyNDIsdGhpcy5fZGg9Mjc3MzQ4MDc2Mix0aGlzLl9laD0xMzU5ODkzMTE5LHRoaXMuX2ZoPTI2MDA4MjI5MjQsdGhpcy5fZ2g9NTI4NzM0NjM1LHRoaXMuX2hoPTE1NDE0NTkyMjUsdGhpcy5fYWw9NDA4OTIzNTcyMCx0aGlzLl9ibD0yMjI3ODczNTk1LHRo''@;'; + put 'put ''aXMuX2NsPTQyNzExNzU3MjMsdGhpcy5fZGw9MTU5NTc1MDEyOSx0aGlzLl9lbD0yOTE3NTY1MTM3LHRoaXMuX2ZsPTcyNTUxMTE5OSx0aGlzLl9nbD00MjE1Mzg5NTQ3LHRoaXMuX2hsPTMyNzAzMzIwOSx0aGlzfSxRLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHNlKXtmb3IodmFyIG9l''@;'; + put 'put ''PXRoaXMuX3csY2U9MHx0aGlzLl9haCxkZT0wfHRoaXMuX2JoLHZlPTB8dGhpcy5fY2gsQWU9MHx0aGlzLl9kaCxrZT0wfHRoaXMuX2VoLFNlPTB8dGhpcy5fZmgsSWU9MHx0aGlzLl9naCxUZT0wfHRoaXMuX2hoLEVlPTB8dGhpcy5fYWwsaGU9MHx0aGlzLl9ibCxPPTB8dGhpcy5fY2wsej0w''@;'; + put 'put ''fHRoaXMuX2RsLG5lPTB8dGhpcy5fZWwsdGU9MHx0aGlzLl9mbCx4PTB8dGhpcy5fZ2wsUD0wfHRoaXMuX2hsLFY9MDtWPDMyO1YrPTIpb2VbVl09c2UucmVhZEludDMyQkUoNCpWKSxvZVtWKzFdPXNlLnJlYWRJbnQzMkJFKDQqVis0KTtmb3IoO1Y8MTYwO1YrPTIpe3ZhciBUPW9lW1YtMzBd''@;'; + put 'put ''LFM9b2VbVi0zMCsxXSxGPVcoVCxTKSx5ZT1OKFMsVCksQ2U9ZWUoVD1vZVtWLTRdLFM9b2VbVi00KzFdKSxEZT1xKFMsVCksJGU9b2VbVi0zMl0sZ3Q9b2VbVi0zMisxXSx3dD15ZStvZVtWLTE0KzFdfDAsdnQ9RitvZVtWLTE0XStKKHd0LHllKXwwO3Z0PSh2dD12dCtDZStKKHd0PXd0K0Rl''@;'; + put 'put ''fDAsRGUpfDApKyRlK0ood3Q9d3QrZ3R8MCxndCl8MCxvZVtWXT12dCxvZVtWKzFdPXd0fWZvcih2YXIgQXQ9MDtBdDwxNjA7QXQrPTIpe3Z0PW9lW0F0XSx3dD1vZVtBdCsxXTt2YXIgbXQ9aWUoY2UsZGUsdmUpLGh0PWllKEVlLGhlLE8pLEJ0PWxlKGNlLEVlKSxvbj1sZShFZSxjZSksX3Q9''@;'; + put 'put ''WShrZSxuZSksdHQ9WShuZSxrZSksZXQ9TWVbQXRdLGF0PU1lW0F0KzFdLEx0PVooa2UsU2UsSWUpLEN0PVoobmUsdGUseCksZnQ9UCt0dHwwLEh0PVRlK190K0ooZnQsUCl8MDtIdD0oSHQ9KEh0PUh0K0x0K0ooZnQ9ZnQrQ3R8MCxDdCl8MCkrZXQrSihmdD1mdCthdHwwLGF0KXwwKSt2dCtK''@;'; + put 'put ''KGZ0PWZ0K3d0fDAsd3QpfDA7dmFyIEdlPW9uK2h0fDAsVWU9QnQrbXQrSihHZSxvbil8MDtUZT1JZSxQPXgsSWU9U2UseD10ZSxTZT1rZSx0ZT1uZSxrZT1BZStIdCtKKG5lPXorZnR8MCx6KXwwLEFlPXZlLHo9Tyx2ZT1kZSxPPWhlLGRlPWNlLGhlPUVlLGNlPUh0K1VlK0ooRWU9ZnQrR2V8''@;'; + put 'put ''MCxmdCl8MH10aGlzLl9hbD10aGlzLl9hbCtFZXwwLHRoaXMuX2JsPXRoaXMuX2JsK2hlfDAsdGhpcy5fY2w9dGhpcy5fY2wrT3wwLHRoaXMuX2RsPXRoaXMuX2RsK3p8MCx0aGlzLl9lbD10aGlzLl9lbCtuZXwwLHRoaXMuX2ZsPXRoaXMuX2ZsK3RlfDAsdGhpcy5fZ2w9dGhpcy5fZ2wreHww''@;'; + put 'put ''LHRoaXMuX2hsPXRoaXMuX2hsK1B8MCx0aGlzLl9haD10aGlzLl9haCtjZStKKHRoaXMuX2FsLEVlKXwwLHRoaXMuX2JoPXRoaXMuX2JoK2RlK0oodGhpcy5fYmwsaGUpfDAsdGhpcy5fY2g9dGhpcy5fY2grdmUrSih0aGlzLl9jbCxPKXwwLHRoaXMuX2RoPXRoaXMuX2RoK0FlK0oodGhpcy5f''@;'; + put 'put ''ZGwseil8MCx0aGlzLl9laD10aGlzLl9laCtrZStKKHRoaXMuX2VsLG5lKXwwLHRoaXMuX2ZoPXRoaXMuX2ZoK1NlK0oodGhpcy5fZmwsdGUpfDAsdGhpcy5fZ2g9dGhpcy5fZ2grSWUrSih0aGlzLl9nbCx4KXwwLHRoaXMuX2hoPXRoaXMuX2hoK1RlK0oodGhpcy5faGwsUCl8MH0sUS5wcm90''@;'; + put 'put ''b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgc2U9RS5hbGxvY1Vuc2FmZSg2NCk7ZnVuY3Rpb24gb2UoY2UsZGUsdmUpe3NlLndyaXRlSW50MzJCRShjZSx2ZSksc2Uud3JpdGVJbnQzMkJFKGRlLHZlKzQpfXJldHVybiBvZSh0aGlzLl9haCx0aGlzLl9hbCwwKSxvZSh0aGlzLl9iaCx0aGlz''@;'; + put 'put ''Ll9ibCw4KSxvZSh0aGlzLl9jaCx0aGlzLl9jbCwxNiksb2UodGhpcy5fZGgsdGhpcy5fZGwsMjQpLG9lKHRoaXMuX2VoLHRoaXMuX2VsLDMyKSxvZSh0aGlzLl9maCx0aGlzLl9mbCw0MCksb2UodGhpcy5fZ2gsdGhpcy5fZ2wsNDgpLG9lKHRoaXMuX2hoLHRoaXMuX2hsLDU2KSxzZX0sWGUu''@;'; + put 'put ''ZXhwb3J0cz1RfSwyOTU6KFhlLEplLEwpPT57WGUuZXhwb3J0cz1FO3ZhciBtZT1MKDU5MDY5KS5FdmVudEVtaXR0ZXI7ZnVuY3Rpb24gRSgpe21lLmNhbGwodGhpcyl9TCg4Mzg5NCkoRSxtZSksRS5SZWFkYWJsZT1MKDMxNTQpLEUuV3JpdGFibGU9TCgyMDUyMCksRS5EdXBsZXg9TCg0MTMz''@;'; + put 'put ''OSksRS5UcmFuc2Zvcm09TCg2MDI1KSxFLlBhc3NUaHJvdWdoPUwoNTYwNzEpLEUuZmluaXNoZWQ9TCg2NzU0MiksRS5waXBlbGluZT1MKDkwOTU0KSxFLlN0cmVhbT1FLEUucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oTWUsVSl7dmFyIFE9dGhpcztmdW5jdGlvbiBaKHEpe01lLndyaXRhYmxl''@;'; + put 'put ''JiYhMT09PU1lLndyaXRlKHEpJiZRLnBhdXNlJiZRLnBhdXNlKCl9ZnVuY3Rpb24gaWUoKXtRLnJlYWRhYmxlJiZRLnJlc3VtZSYmUS5yZXN1bWUoKX1RLm9uKCJkYXRhIixaKSxNZS5vbigiZHJhaW4iLGllKSwhTWUuX2lzU3RkaW8mJighVXx8ITEhPT1VLmVuZCkmJihRLm9uKCJlbmQiLFkp''@;'; + put 'put ''LFEub24oImNsb3NlIixXKSk7dmFyIGxlPSExO2Z1bmN0aW9uIFkoKXtsZXx8KGxlPSEwLE1lLmVuZCgpKX1mdW5jdGlvbiBXKCl7bGV8fChsZT0hMCwiZnVuY3Rpb24iPT10eXBlb2YgTWUuZGVzdHJveSYmTWUuZGVzdHJveSgpKX1mdW5jdGlvbiBOKHEpe2lmKGVlKCksMD09PW1lLmxpc3Rl''@;'; + put 'put ''bmVyQ291bnQodGhpcywiZXJyb3IiKSl0aHJvdyBxfWZ1bmN0aW9uIGVlKCl7US5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsWiksTWUucmVtb3ZlTGlzdGVuZXIoImRyYWluIixpZSksUS5yZW1vdmVMaXN0ZW5lcigiZW5kIixZKSxRLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsVyksUS5yZW1vdmVM''@;'; + put 'put ''aXN0ZW5lcigiZXJyb3IiLE4pLE1lLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsTiksUS5yZW1vdmVMaXN0ZW5lcigiZW5kIixlZSksUS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGVlKSxNZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGVlKX1yZXR1cm4gUS5vbigiZXJyb3IiLE4pLE1lLm9uKCJl''@;'; + put 'put ''cnJvciIsTiksUS5vbigiZW5kIixlZSksUS5vbigiY2xvc2UiLGVlKSxNZS5vbigiY2xvc2UiLGVlKSxNZS5lbWl0KCJwaXBlIixRKSxNZX19LDczMDU0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgzMDg1OCkuQnVmZmVyLEI9bWUuaXNFbmNvZGluZ3x8ZnVuY3Rpb24oY2Up''@;'; + put 'put ''e3N3aXRjaCgoY2U9IiIrY2UpJiZjZS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpjYXNl''@;'; + put 'put ''InJhdyI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIFUoY2Upe3ZhciBkZTtzd2l0Y2godGhpcy5lbmNvZGluZz1mdW5jdGlvbiBNZShjZSl7dmFyIGRlPWZ1bmN0aW9uIEUoY2Upe2lmKCFjZSlyZXR1cm4idXRmOCI7Zm9yKHZhciBkZTs7KXN3aXRjaChjZSl7Y2FzZSJ1''@;'; + put 'put ''dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4idXRmOCI7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiJ1dGYxNmxlIjtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiJsYXRpbjEiO2Nhc2UiYmFzZTY0IjpjYXNlImFzY2lpIjpj''@;'; + put 'put ''YXNlImhleCI6cmV0dXJuIGNlO2RlZmF1bHQ6aWYoZGUpcmV0dXJuO2NlPSgiIitjZSkudG9Mb3dlckNhc2UoKSxkZT0hMH19KGNlKTtpZigic3RyaW5nIiE9dHlwZW9mIGRlJiYobWUuaXNFbmNvZGluZz09PUJ8fCFCKGNlKSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAi''@;'; + put 'put ''K2NlKTtyZXR1cm4gZGV8fGNlfShjZSksdGhpcy5lbmNvZGluZyl7Y2FzZSJ1dGYxNmxlIjp0aGlzLnRleHQ9Tix0aGlzLmVuZD1lZSxkZT00O2JyZWFrO2Nhc2UidXRmOCI6dGhpcy5maWxsTGFzdD1sZSxkZT00O2JyZWFrO2Nhc2UiYmFzZTY0Ijp0aGlzLnRleHQ9cSx0aGlzLmVuZD1KLGRl''@;'; + put 'put ''PTM7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdGhpcy53cml0ZT1zZSx2b2lkKHRoaXMuZW5kPW9lKX10aGlzLmxhc3ROZWVkPTAsdGhpcy5sYXN0VG90YWw9MCx0aGlzLmxhc3RDaGFyPW1lLmFsbG9jVW5zYWZlKGRlKX1mdW5jdGlvbiBRKGNlKXtyZXR1cm4gY2U8PTEyNz8wOmNlPj41PT02PzI6''@;'; + put 'put ''Y2U+PjQ9PTE0PzM6Y2U+PjM9PTMwPzQ6Y2U+PjY9PTI/LTE6LTJ9ZnVuY3Rpb24gbGUoY2Upe3ZhciBkZT10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLHZlPWZ1bmN0aW9uIGllKGNlLGRlLHZlKXtpZigxMjghPSgxOTImZGVbMF0pKXJldHVybiBjZS5sYXN0TmVlZD0wLCJcdWZmZmQi''@;'; + put 'put ''O2lmKGNlLmxhc3ROZWVkPjEmJmRlLmxlbmd0aD4xKXtpZigxMjghPSgxOTImZGVbMV0pKXJldHVybiBjZS5sYXN0TmVlZD0xLCJcdWZmZmQiO2lmKGNlLmxhc3ROZWVkPjImJmRlLmxlbmd0aD4yJiYxMjghPSgxOTImZGVbMl0pKXJldHVybiBjZS5sYXN0TmVlZD0yLCJcdWZmZmQifX0odGhp''@;'; + put 'put ''cyxjZSk7cmV0dXJuIHZvaWQgMCE9PXZlP3ZlOnRoaXMubGFzdE5lZWQ8PWNlLmxlbmd0aD8oY2UuY29weSh0aGlzLmxhc3RDaGFyLGRlLDAsdGhpcy5sYXN0TmVlZCksdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAsdGhpcy5sYXN0VG90YWwpKTooY2UuY29weSh0aGlz''@;'; + put 'put ''Lmxhc3RDaGFyLGRlLDAsY2UubGVuZ3RoKSx2b2lkKHRoaXMubGFzdE5lZWQtPWNlLmxlbmd0aCkpfWZ1bmN0aW9uIE4oY2UsZGUpe2lmKChjZS5sZW5ndGgtZGUpJTI9PTApe3ZhciB2ZT1jZS50b1N0cmluZygidXRmMTZsZSIsZGUpO2lmKHZlKXt2YXIgQWU9dmUuY2hhckNvZGVBdCh2ZS5s''@;'; + put 'put ''ZW5ndGgtMSk7aWYoQWU+PTU1Mjk2JiZBZTw9NTYzMTkpcmV0dXJuIHRoaXMubGFzdE5lZWQ9Mix0aGlzLmxhc3RUb3RhbD00LHRoaXMubGFzdENoYXJbMF09Y2VbY2UubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09Y2VbY2UubGVuZ3RoLTFdLHZlLnNsaWNlKDAsLTEpfXJldHVybiB2ZX1y''@;'; + put 'put ''ZXR1cm4gdGhpcy5sYXN0TmVlZD0xLHRoaXMubGFzdFRvdGFsPTIsdGhpcy5sYXN0Q2hhclswXT1jZVtjZS5sZW5ndGgtMV0sY2UudG9TdHJpbmcoInV0ZjE2bGUiLGRlLGNlLmxlbmd0aC0xKX1mdW5jdGlvbiBlZShjZSl7dmFyIGRlPWNlJiZjZS5sZW5ndGg/dGhpcy53cml0ZShjZSk6IiI7''@;'; + put 'put ''cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZGUrdGhpcy5sYXN0Q2hhci50b1N0cmluZygidXRmMTZsZSIsMCx0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkKTpkZX1mdW5jdGlvbiBxKGNlLGRlKXt2YXIgdmU9KGNlLmxlbmd0aC1kZSklMztyZXR1cm4gMD09PXZlP2NlLnRvU3RyaW5nKCJiYXNl''@;'; + put 'put ''NjQiLGRlKToodGhpcy5sYXN0TmVlZD0zLXZlLHRoaXMubGFzdFRvdGFsPTMsMT09PXZlP3RoaXMubGFzdENoYXJbMF09Y2VbY2UubGVuZ3RoLTFdOih0aGlzLmxhc3RDaGFyWzBdPWNlW2NlLmxlbmd0aC0yXSx0aGlzLmxhc3RDaGFyWzFdPWNlW2NlLmxlbmd0aC0xXSksY2UudG9TdHJpbmco''@;'; + put 'put ''ImJhc2U2NCIsZGUsY2UubGVuZ3RoLXZlKSl9ZnVuY3Rpb24gSihjZSl7dmFyIGRlPWNlJiZjZS5sZW5ndGg/dGhpcy53cml0ZShjZSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZGUrdGhpcy5sYXN0Q2hhci50b1N0cmluZygiYmFzZTY0IiwwLDMtdGhpcy5sYXN0TmVlZCk6ZGV9ZnVuY3Rp''@;'; + put 'put ''b24gc2UoY2Upe3JldHVybiBjZS50b1N0cmluZyh0aGlzLmVuY29kaW5nKX1mdW5jdGlvbiBvZShjZSl7cmV0dXJuIGNlJiZjZS5sZW5ndGg/dGhpcy53cml0ZShjZSk6IiJ9SmUucz1VLFUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGNlKXtpZigwPT09Y2UubGVuZ3RoKXJldHVybiIiO3Zh''@;'; + put 'put ''ciBkZSx2ZTtpZih0aGlzLmxhc3ROZWVkKXtpZih2b2lkIDA9PT0oZGU9dGhpcy5maWxsTGFzdChjZSkpKXJldHVybiIiO3ZlPXRoaXMubGFzdE5lZWQsdGhpcy5sYXN0TmVlZD0wfWVsc2UgdmU9MDtyZXR1cm4gdmU8Y2UubGVuZ3RoP2RlP2RlK3RoaXMudGV4dChjZSx2ZSk6dGhpcy50ZXh0''@;'; + put 'put ''KGNlLHZlKTpkZXx8IiJ9LFUucHJvdG90eXBlLmVuZD1mdW5jdGlvbiBXKGNlKXt2YXIgZGU9Y2UmJmNlLmxlbmd0aD90aGlzLndyaXRlKGNlKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD9kZSsiXHVmZmZkIjpkZX0sVS5wcm90b3R5cGUudGV4dD1mdW5jdGlvbiBZKGNlLGRlKXt2YXIgdmU9''@;'; + put 'put ''ZnVuY3Rpb24gWihjZSxkZSx2ZSl7dmFyIEFlPWRlLmxlbmd0aC0xO2lmKEFlPHZlKXJldHVybiAwO3ZhciBrZT1RKGRlW0FlXSk7cmV0dXJuIGtlPj0wPyhrZT4wJiYoY2UubGFzdE5lZWQ9a2UtMSksa2UpOi0tQWU8dmV8fC0yPT09a2U/MDooa2U9UShkZVtBZV0pKT49MD8oa2U+MCYmKGNl''@;'; + put 'put ''Lmxhc3ROZWVkPWtlLTIpLGtlKTotLUFlPHZlfHwtMj09PWtlPzA6KGtlPVEoZGVbQWVdKSk+PTA/KGtlPjAmJigyPT09a2U/a2U9MDpjZS5sYXN0TmVlZD1rZS0zKSxrZSk6MH0odGhpcyxjZSxkZSk7aWYoIXRoaXMubGFzdE5lZWQpcmV0dXJuIGNlLnRvU3RyaW5nKCJ1dGY4IixkZSk7dGhp''@;'; + put 'put ''cy5sYXN0VG90YWw9dmU7dmFyIEFlPWNlLmxlbmd0aC0odmUtdGhpcy5sYXN0TmVlZCk7cmV0dXJuIGNlLmNvcHkodGhpcy5sYXN0Q2hhciwwLEFlKSxjZS50b1N0cmluZygidXRmOCIsZGUsQWUpfSxVLnByb3RvdHlwZS5maWxsTGFzdD1mdW5jdGlvbihjZSl7aWYodGhpcy5sYXN0TmVlZDw9''@;'; + put 'put ''Y2UubGVuZ3RoKXJldHVybiBjZS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKTtjZS5jb3B5KHRoaXMubGFzdENoYXIsdGhp''@;'; + put 'put ''cy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLGNlLmxlbmd0aCksdGhpcy5sYXN0TmVlZC09Y2UubGVuZ3RofX0sMzA4NTg6KFhlLEplLEwpPT57dmFyIG1lPUwoOTMxNzIpLEI9bWUuQnVmZmVyO2Z1bmN0aW9uIEUoVSxRKXtmb3IodmFyIFogaW4gVSlRW1pdPVVbWl19ZnVuY3Rpb24gTWUo''@;'; + put 'put ''VSxRLFope3JldHVybiBCKFUsUSxaKX1CLmZyb20mJkIuYWxsb2MmJkIuYWxsb2NVbnNhZmUmJkIuYWxsb2NVbnNhZmVTbG93P1hlLmV4cG9ydHM9bWU6KEUobWUsSmUpLEplLkJ1ZmZlcj1NZSksTWUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoQi5wcm90b3R5cGUpLEUoQixNZSksTWUuZnJv''@;'; + put 'put ''bT1mdW5jdGlvbihVLFEsWil7aWYoIm51bWJlciI9PXR5cGVvZiBVKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIEIoVSxRLFopfSxNZS5hbGxvYz1mdW5jdGlvbihVLFEsWil7aWYoIm51bWJlciIhPXR5cGVvZiBVKXRocm93IG5l''@;'; + put 'put ''dyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTt2YXIgaWU9QihVKTtyZXR1cm4gdm9pZCAwIT09UT8ic3RyaW5nIj09dHlwZW9mIFo/aWUuZmlsbChRLFopOmllLmZpbGwoUSk6aWUuZmlsbCgwKSxpZX0sTWUuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oVSl7aWYoIm51bWJl''@;'; + put 'put ''ciIhPXR5cGVvZiBVKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gQihVKX0sTWUuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKFUpe2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJl''@;'; + put 'put ''IGEgbnVtYmVyIik7cmV0dXJuIG1lLlNsb3dCdWZmZXIoVSl9fSwyNDg3OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5OTU2NSk7WGUuZXhwb3J0cz17VGV4dEVuY29kZXI6bWUuVGV4dEVuY29kZXIsVGV4dERlY29kZXI6bWUuVGV4dERlY29kZXJ9fSw4NjM4OTpmdW5jdGlvbihYZSl7IWZ1bmN0''@;'; + put 'put ''aW9uKEplKXsidXNlIHN0cmljdCI7WGUuZXhwb3J0cyYmKFhlLmV4cG9ydHM9SmUpLEplWyJlbmNvZGluZy1pbmRleGVzIl09e2JpZzU6W251bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLDE3MzkyLDE5NTA2LDE3OTIzLDE3ODMwLDE3Nzg0LDE2MDM1OSwxOTgzMSwxNzg0MywxNjI5OTMsMTk2ODIsMTYzMDEzLDE1MjUzLDE4MjMwLDE4MjQ0LDE5NTI3LDE5NTIwLDE0ODE1OSwxNDQ5MTksMTYwNTk0LDE1OTM3MSwxNTk5NTQsMTk1NDMsMTcyODgxLDE4MjU1LDE3ODgyLDE5''@;'; + put 'put ''NTg5LDE2MjkyNCwxOTcxOSwxOTEwOCwxODA4MSwxNTg0OTksMjkyMjEsMTU0MTk2LDEzNzgyNywxNDY5NTAsMTQ3Mjk3LDI2MTg5LDIyMjY3LG51bGwsMzIxNDksMjI4MTMsMTY2ODQxLDE1ODYwLDM4NzA4LDE2Mjc5OSwyMzUxNSwxMzg1OTAsMjMyMDQsMTM4NjEsMTcxNjk2LDIzMjQ5LDIz''@;'; + put 'put ''NDc5LDIzODA0LDI2NDc4LDM0MTk1LDE3MDMwOSwyOTc5MywyOTg1MywxNDQ1MywxMzg1NzksMTQ1MDU0LDE1NTY4MSwxNjEwOCwxNTM4MjIsMTUwOTMsMzE0ODQsNDA4NTUsMTQ3ODA5LDE2NjE1NywxNDM4NTAsMTMzNzcwLDE0Mzk2NiwxNzE2MiwzMzkyNCw0MDg1NCwzNzkzNSwxODczNiwz''@;'; + put 'put ''NDMyMywyMjY3OCwzODczMCwzNzQwMCwzMTE4NCwzMTI4MiwyNjIwOCwyNzE3NywzNDk3MywyOTc3MiwzMTY4NSwyNjQ5OCwzMTI3NiwyMTA3MSwzNjkzNCwxMzU0MiwyOTYzNiwxNTUwNjUsMjk4OTQsNDA5MDMsMjI0NTEsMTg3MzUsMjE1ODAsMTY2ODksMTQ1MDM4LDIyNTUyLDMxMzQ2LDE2''@;'; + put 'put ''MjY2MSwzNTcyNywxODA5NCwxNTkzNjgsMTY3NjksMTU1MDMzLDMxNjYyLDE0MDQ3Niw0MDkwNCwxNDA0ODEsMTQwNDg5LDE0MDQ5Miw0MDkwNSwzNDA1MiwxNDQ4MjcsMTY1NjQsNDA5MDYsMTc2MzMsMTc1NjE1LDI1MjgxLDI4NzgyLDQwOTA3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTI3MzYsMTI3MzcsMTI3MzgsMTI3MzksMTI3NDAsMTMxMzQw''@;'; + put 'put ''LDEyNzQxLDEzMTI4MSwxMzEyNzcsMTI3NDIsMTI3NDMsMTMxMjc1LDEzOTI0MCwxMjc0NCwxMzEyNzQsMTI3NDUsMTI3NDYsMTI3NDcsMTI3NDgsMTMxMzQyLDEyNzQ5LDEyNzUwLDI1NiwxOTMsNDYxLDE5MiwyNzQsMjAxLDI4MiwyMDAsMzMyLDIxMSw0NjUsMjEwLG51bGwsNzg3MCxudWxs''@;'; + put 'put ''LDc4NzIsMjAyLDI1NywyMjUsNDYyLDIyNCw1OTMsMjc1LDIzMywyODMsMjMyLDI5OSwyMzcsNDY0LDIzNiwzMzMsMjQzLDQ2NiwyNDIsMzYzLDI1MCw0NjgsMjQ5LDQ3MCw0NzIsNDc0LDQ3NiwyNTIsbnVsbCw3ODcxLG51bGwsNzg3MywyMzQsNjA5LDkxNzgsOTE3OSxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxNzI5NjksMTM1NDkzLG51bGwsMjU4NjYsbnVsbCxudWxsLDIwMDI5LDI4MzgxLDQwMjcwLDM3MzQzLG51bGwsbnVsbCwxNjE1ODksMjU3NDUsMjAyNTAs''@;'; + put 'put ''MjAyNjQsMjAzOTIsMjA4MjIsMjA4NTIsMjA4OTIsMjA5NjQsMjExNTMsMjExNjAsMjEzMDcsMjEzMjYsMjE0NTcsMjE0NjQsMjIyNDIsMjI3NjgsMjI3ODgsMjI3OTEsMjI4MzQsMjI4MzYsMjMzOTgsMjM0NTQsMjM0NTUsMjM3MDYsMjQxOTgsMjQ2MzUsMjU5OTMsMjY2MjIsMjY2MjgsMjY3''@;'; + put 'put ''MjUsMjc5ODIsMjg4NjAsMzAwMDUsMzI0MjAsMzI0MjgsMzI0NDIsMzI0NTUsMzI0NjMsMzI0NzksMzI1MTgsMzI1NjcsMzM0MDIsMzM0ODcsMzM2NDcsMzUyNzAsMzU3NzQsMzU4MTAsMzY3MTAsMzY3MTEsMzY3MTgsMjk3MTMsMzE5OTYsMzIyMDUsMjY5NTAsMzE0MzMsMjEwMzEsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCwzNzI2MCwzMDkwNCwzNzIxNCwzMjk1NixudWxsLDM2MTA3LDMzMDE0LDEzMzYwNyxudWxsLG51bGwsMzI5MjcsNDA2NDcsMTk2NjEsNDAzOTMsNDA0NjAsMTk1MTgsMTcxNTEwLDE1OTc1OCw0MDQ1OCwxNzIzMzksMTM3NjEsbnVsbCwyODMxNCwzMzM0MiwyOTk3Nyxu''@;'; + put 'put ''dWxsLDE4NzA1LDM5NTMyLDM5NTY3LDQwODU3LDMxMTExLDE2NDk3MiwxMzg2OTgsMTMyNTYwLDE0MjA1NCwyMDAwNCwyMDA5NywyMDA5NiwyMDEwMywyMDE1OSwyMDIwMywyMDI3OSwxMzM4OCwyMDQxMywxNTk0NCwyMDQ4MywyMDYxNiwxMzQzNywxMzQ1OSwxMzQ3NywyMDg3MCwyMjc4OSwy''@;'; + put 'put ''MDk1NSwyMDk4OCwyMDk5NywyMDEwNSwyMTExMywyMTEzNiwyMTI4NywxMzc2NywyMTQxNywxMzY0OSwyMTQyNCwxMzY1MSwyMTQ0MiwyMTUzOSwxMzY3NywxMzY4MiwxMzk1MywyMTY1MSwyMTY2NywyMTY4NCwyMTY4OSwyMTcxMiwyMTc0MywyMTc4NCwyMTc5NSwyMTgwMCwxMzcyMCwyMTgy''@;'; + put 'put ''MywxMzczMywxMzc1OSwyMTk3NSwxMzc2NSwxNjMyMDQsMjE3OTcsbnVsbCwxMzQyMTAsMTM0NDIxLDE1MTg1MSwyMTkwNCwxNDI1MzQsMTQ4MjgsMTMxOTA1LDM2NDIyLDE1MDk2OCwxNjkxODksMTY0NjcsMTY0MDMwLDMwNTg2LDE0MjM5MiwxNDkwMCwxODM4OSwxNjQxODksMTU4MTk0LDE1''@;'; + put 'put ''MTAxOCwyNTgyMSwxMzQ1MjQsMTM1MDkyLDEzNDM1NywxMzU0MTIsMjU3NDEsMzY0NzgsMTM0ODA2LDEzNDE1NSwxMzUwMTIsMTQyNTA1LDE2NDQzOCwxNDg2OTEsbnVsbCwxMzQ0NzAsMTcwNTczLDE2NDA3MywxODQyMCwxNTEyMDcsMTQyNTMwLDM5NjAyLDE0OTUxLDE2OTQ2MCwxNjM2NSwx''@;'; + put 'put ''MzU3NCwxNTIyNjMsMTY5OTQwLDE2MTk5MiwxNDI2NjAsNDAzMDIsMzg5MzMsbnVsbCwxNzM2OSwxNTU4MTMsMjU3ODAsMjE3MzEsMTQyNjY4LDE0MjI4MiwxMzUyODcsMTQ4NDMsMTM1Mjc5LDE1NzQwMiwxNTc0NjIsMTYyMjA4LDI1ODM0LDE1MTYzNCwxMzQyMTEsMzY0NTYsMTM5NjgxLDE2''@;'; + put 'put ''NjczMiwxMzI5MTMsbnVsbCwxODQ0MywxMzE0OTcsMTYzNzgsMjI2NDMsMTQyNzMzLG51bGwsMTQ4OTM2LDEzMjM0OCwxNTU3OTksMTM0OTg4LDEzNDU1MCwyMTg4MSwxNjU3MSwxNzMzOCxudWxsLDE5MTI0LDE0MTkyNiwxMzUzMjUsMzMxOTQsMzkxNTcsMTM0NTU2LDI1NDY1LDE0ODQ2LDE0''@;'; + put 'put ''MTE3MywzNjI4OCwyMjE3NywyNTcyNCwxNTkzOSxudWxsLDE3MzU2OSwxMzQ2NjUsMTQyMDMxLDE0MjUzNyxudWxsLDEzNTM2OCwxNDU4NTgsMTQ3MzgsMTQ4NTQsMTY0NTA3LDEzNjg4LDE1NTIwOSwxMzk0NjMsMjIwOTgsMTM0OTYxLDE0MjUxNCwxNjk3NjAsMTM1MDAsMjc3MDksMTUxMDk5''@;'; + put 'put ''LG51bGwsbnVsbCwxNjExNDAsMTQyOTg3LDEzOTc4NCwxNzM2NTksMTY3MTE3LDEzNDc3OCwxMzQxOTYsMTU3NzI0LDMyNjU5LDEzNTM3NSwxNDEzMTUsMTQxNjI1LDEzODE5LDE1MjAzNSwxMzQ3OTYsMTM1MDUzLDEzNDgyNiwxNjI3NSwxMzQ5NjAsMTM0NDcxLDEzNTUwMywxMzQ3MzIsbnVs''@;'; + put 'put ''bCwxMzQ4MjcsMTM0MDU3LDEzNDQ3MiwxMzUzNjAsMTM1NDg1LDE2Mzc3LDE0MDk1MCwyNTY1MCwxMzUwODUsMTQ0MzcyLDE2MTMzNywxNDIyODYsMTM0NTI2LDEzNDUyNywxNDI0MTcsMTQyNDIxLDE0ODcyLDEzNDgwOCwxMzUzNjcsMTM0OTU4LDE3MzYxOCwxNTg1NDQsMTY3MTIyLDE2NzMy''@;'; + put 'put ''MSwxNjcxMTQsMzgzMTQsMjE3MDgsMzM0NzYsMjE5NDUsbnVsbCwxNzE3MTUsMzk5NzQsMzk2MDYsMTYxNjMwLDE0MjgzMCwyODk5MiwzMzEzMywzMzAwNCwyMzU4MCwxNTcwNDIsMzMwNzYsMTQyMzEsMjEzNDMsMTY0MDI5LDM3MzAyLDEzNDkwNiwxMzQ2NzEsMTM0Nzc1LDEzNDkwNywxMzc4''@;'; + put 'put ''OSwxNTEwMTksMTM4MzMsMTM0MzU4LDIyMTkxLDE0MTIzNywxMzUzNjksMTM0NjcyLDEzNDc3NiwxMzUyODgsMTM1NDk2LDE2NDM1OSwxMzYyNzcsMTM0Nzc3LDE1MTEyMCwxNDI3NTYsMjMxMjQsMTM1MTk3LDEzNTE5OCwxMzU0MTMsMTM1NDE0LDIyNDI4LDEzNDY3MywxNjE0MjgsMTY0NTU3''@;'; + put 'put ''LDEzNTA5MywxMzQ3NzksMTUxOTM0LDE0MDgzLDEzNTA5NCwxMzU1NTIsMTUyMjgwLDE3MjczMywxNDk5NzgsMTM3Mjc0LDE0NzgzMSwxNjQ0NzYsMjI2ODEsMjEwOTYsMTM4NTAsMTUzNDA1LDMxNjY2LDIzNDAwLDE4NDMyLDE5MjQ0LDQwNzQzLDE4OTE5LDM5OTY3LDM5ODIxLDE1NDQ4NCwx''@;'; + put 'put ''NDM2NzcsMjIwMTEsMTM4MTAsMjIxNTMsMjAwMDgsMjI3ODYsMTM4MTc3LDE5NDY4MCwzODczNywxMzEyMDYsMjAwNTksMjAxNTUsMTM2MzAsMjM1ODcsMjQ0MDEsMjQ1MTYsMTQ1ODYsMjUxNjQsMjU5MDksMjc1MTQsMjc3MDEsMjc3MDYsMjg3ODAsMjkyMjcsMjAwMTIsMjkzNTcsMTQ5NzM3''@;'; + put 'put ''LDMyNTk0LDMxMDM1LDMxOTkzLDMyNTk1LDE1NjI2NiwxMzUwNSxudWxsLDE1NjQ5MSwzMjc3MCwzMjg5NiwxNTcyMDIsMTU4MDMzLDIxMzQxLDM0OTE2LDM1MjY1LDE2MTk3MCwzNTc0NCwzNjEyNSwzODAyMSwzODI2NCwzODI3MSwzODM3NiwxNjc0MzksMzg4ODYsMzkwMjksMzkxMTgsMzkx''@;'; + put 'put ''MzQsMzkyNjcsMTdlNCw0MDA2MCw0MDQ3OSw0MDY0NCwyNzUwMyw2Mzc1MSwyMDAyMywxMzEyMDcsMzg0MjksMjUxNDMsMzgwNTAsbnVsbCwyMDUzOSwyODE1OCwxNzExMjMsNDA4NzAsMTU4MTcsMzQ5NTksMTQ3NzkwLDI4NzkxLDIzNzk3LDE5MjMyLDE1MjAxMywxMzY1NywxNTQ5MjgsMjQ4''@;'; + put 'put ''NjYsMTY2NDUwLDM2Nzc1LDM3MzY2LDI5MDczLDI2MzkzLDI5NjI2LDE0NDAwMSwxNzIyOTUsMTU0OTksMTM3NjAwLDE5MjE2LDMwOTQ4LDI5Njk4LDIwOTEwLDE2NTY0NywxNjM5MywyNzIzNSwxNzI3MzAsMTY5MzEsMzQzMTksMTMzNzQzLDMxMjc0LDE3MDMxMSwxNjY2MzQsMzg3NDEsMjg3''@;'; + put 'put ''NDksMjEyODQsMTM5MzkwLDM3ODc2LDMwNDI1LDE2NjM3MSw0MDg3MSwzMDY4NSwyMDEzMSwyMDQ2NCwyMDY2OCwyMDAxNSwyMDI0Nyw0MDg3MiwyMTU1NiwzMjEzOSwyMjY3NCwyMjczNiwxMzg2NzgsMjQyMTAsMjQyMTcsMjQ1MTQsMTQxMDc0LDI1OTk1LDE0NDM3NywyNjkwNSwyNzIwMywx''@;'; + put 'put ''NDY1MzEsMjc5MDMsbnVsbCwyOTE4NCwxNDg3NDEsMjk1ODAsMTYwOTEsMTUwMDM1LDIzMzE3LDI5ODgxLDM1NzE1LDE1NDc4OCwxNTMyMzcsMzEzNzksMzE3MjQsMzE5MzksMzIzNjQsMzM1MjgsMzQxOTksNDA4NzMsMzQ5NjAsNDA4NzQsMzY1MzcsNDA4NzUsMzY4MTUsMzQxNDMsMzkzOTIs''@;'; + put 'put ''Mzc0MDksNDA4NzYsMTY3MzUzLDEzNjI1NSwxNjQ5NywxNzA1OCwyMzA2NixudWxsLG51bGwsbnVsbCwzOTAxNiwyNjQ3NSwxNzAxNCwyMjMzMyxudWxsLDM0MjYyLDE0OTg4MywzMzQ3MSwxNjAwMTMsMTk1ODUsMTU5MDkyLDIzOTMxLDE1ODQ4NSwxNTk2NzgsNDA4NzcsNDA4NzgsMjM0NDYs''@;'; + put 'put ''NDA4NzksMjYzNDMsMzIzNDcsMjgyNDcsMzExNzgsMTU3NTIsMTc2MDMsMTQzOTU4LDE0MTIwNiwxNzMwNiwxNzcxOCxudWxsLDIzNzY1LDE0NjIwMiwzNTU3NywyMzY3MiwxNTYzNCwxNDQ3MjEsMjM5MjgsNDA4ODIsMjkwMTUsMTc3NTIsMTQ3NjkyLDEzODc4NywxOTU3NSwxNDcxMiwxMzM4''@;'; + put 'put ''NiwxMzE0OTIsMTU4Nzg1LDM1NTMyLDIwNDA0LDEzMTY0MSwyMjk3NSwzMzEzMiwzODk5OCwxNzAyMzQsMjQzNzksMTM0MDQ3LG51bGwsMTM5NzEzLDE2NjI1MywxNjY0MiwxODEwNywxNjgwNTcsMTYxMzUsNDA4ODMsMTcyNDY5LDE2NjMyLDE0Mjk0LDE4MTY3LDE1ODc5MCwxNjc2NCwxNjU1''@;'; + put 'put ''NTQsMTYwNzY3LDE3NzczLDE0NTQ4LDE1MjczMCwxNzc2MSwxNzY5MSwxOTg0OSwxOTU3OSwxOTgzMCwxNzg5OCwxNjMyOCwxNTAyODcsMTM5MjEsMTc2MzAsMTc1OTcsMTY4NzcsMjM4NzAsMjM4ODAsMjM4OTQsMTU4NjgsMTQzNTEsMjM5NzIsMjM5OTMsMTQzNjgsMTQzOTIsMjQxMzAsMjQy''@;'; + put 'put ''NTMsMjQzNTcsMjQ0NTEsMTQ2MDAsMTQ2MTIsMTQ2NTUsMTQ2NjksMjQ3OTEsMjQ4OTMsMjM3ODEsMTQ3MjksMjUwMTUsMjUwMTcsMjUwMzksMTQ3NzYsMjUxMzIsMjUyMzIsMjUzMTcsMjUzNjgsMTQ4NDAsMjIxOTMsMTQ4NTEsMjU1NzAsMjU1OTUsMjU2MDcsMjU2OTAsMTQ5MjMsMjU3OTIs''@;'; + put 'put ''MjM4MjksMjIwNDksNDA4NjMsMTQ5OTksMjU5OTAsMTUwMzcsMjYxMTEsMjYxOTUsMTUwOTAsMjYyNTgsMTUxMzgsMjYzOTAsMTUxNzAsMjY1MzIsMjY2MjQsMTUxOTIsMjY2OTgsMjY3NTYsMTUyMTgsMTUyMTcsMTUyMjcsMjY4ODksMjY5NDcsMjkyNzYsMjY5ODAsMjcwMzksMjcwMTMsMTUy''@;'; + put 'put ''OTIsMjcwOTQsMTUzMjUsMjcyMzcsMjcyNTIsMjcyNDksMjcyNjYsMTUzNDAsMjcyODksMTUzNDYsMjczMDcsMjczMTcsMjczNDgsMjczODIsMjc1MjEsMjc1ODUsMjc2MjYsMjc3NjUsMjc4MTgsMTU1NjMsMjc5MDYsMjc5MTAsMjc5NDIsMjgwMzMsMTU1OTksMjgwNjgsMjgwODEsMjgxODEs''@;'; + put 'put ''MjgxODQsMjgyMDEsMjgyOTQsMTY2MzM2LDI4MzQ3LDI4Mzg2LDI4Mzc4LDQwODMxLDI4MzkyLDI4MzkzLDI4NDUyLDI4NDY4LDE1Njg2LDE0NzI2NSwyODU0NSwyODYwNiwxNTcyMiwxNTczMywyOTExMSwyMzcwNSwxNTc1NCwyODcxNiwxNTc2MSwyODc1MiwyODc1NiwyODc4MywyODc5OSwy''@;'; + put 'put ''ODgwOSwxMzE4NzcsMTczNDUsMTM4MDksMTM0ODcyLDE0NzE1OSwyMjQ2MiwxNTk0NDMsMjg5OTAsMTUzNTY4LDEzOTAyLDI3MDQyLDE2Njg4OSwyMzQxMiwzMTMwNSwxNTM4MjUsMTY5MTc3LDMxMzMzLDMxMzU3LDE1NDAyOCwzMTQxOSwzMTQwOCwzMTQyNiwzMTQyNywyOTEzNywxNTY4MTMs''@;'; + put 'put ''MTY4NDIsMzE0NTAsMzE0NTMsMzE0NjYsMTY4NzksMjE2ODIsMTU0NjI1LDMxNDk5LDMxNTczLDMxNTI5LDE1MjMzNCwxNTQ4NzgsMzE2NTAsMzE1OTksMzM2OTIsMTU0NTQ4LDE1ODg0NywzMTY5NiwzMzgyNSwzMTYzNCwzMTY3MiwxNTQ5MTIsMTU3ODksMTU0NzI1LDMzOTM4LDMxNzM4LDMx''@;'; + put 'put ''NzUwLDMxNzk3LDE1NDgxNywzMTgxMiwzMTg3NSwxNDk2MzQsMzE5MTAsMjYyMzcsMTQ4ODU2LDMxOTQ1LDMxOTQzLDMxOTc0LDMxODYwLDMxOTg3LDMxOTg5LDMxOTUwLDMyMzU5LDE3NjkzLDE1OTMwMCwzMjA5MywxNTk0NDYsMjk4MzcsMzIxMzcsMzIxNzEsMjg5ODEsMzIxNzksMzIyMTAs''@;'; + put 'put ''MTQ3NTQzLDE1NTY4OSwzMjIyOCwxNTYzNSwzMjI0NSwxMzcyMDksMzIyMjksMTY0NzE3LDMyMjg1LDE1NTkzNywxNTU5OTQsMzIzNjYsMzI0MDIsMTcxOTUsMzc5OTYsMzIyOTUsMzI1NzYsMzI1NzcsMzI1ODMsMzEwMzAsMTU2MzY4LDM5MzkzLDMyNjYzLDE1NjQ5NywzMjY3NSwxMzY4MDEs''@;'; + put 'put ''MTMxMTc2LDE3NzU2LDE0NTI1NCwxNzY2NywxNjQ2NjYsMzI3NjIsMTU2ODA5LDMyNzczLDMyNzc2LDMyNzk3LDMyODA4LDMyODE1LDE3MjE2NywxNTg5MTUsMzI4MjcsMzI4MjgsMzI4NjUsMTQxMDc2LDE4ODI1LDE1NzIyMiwxNDY5MTUsMTU3NDE2LDI2NDA1LDMyOTM1LDE2NjQ3MiwzMzAz''@;'; + put 'put ''MSwzMzA1MCwyMjcwNCwxNDEwNDYsMjc3NzUsMTU2ODI0LDE1MTQ4MCwyNTgzMSwxMzYzMzAsMzMzMDQsMTM3MzEwLDI3MjE5LDE1MDExNywxNTAxNjUsMTc1MzAsMzMzMjEsMTMzOTAxLDE1ODI5MCwxNDY4MTQsMjA0NzMsMTM2NDQ1LDM0MDE4LDMzNjM0LDE1ODQ3NCwxNDk5MjcsMTQ0Njg4''@;'; + put 'put ''LDEzNzA3NSwxNDY5MzYsMzM0NTAsMjY5MDcsMTk0OTY0LDE2ODU5LDM0MTIzLDMzNDg4LDMzNTYyLDEzNDY3OCwxMzcxNDAsMTQwMTcsMTQzNzQxLDE0NDczMCwzMzQwMywzMzUwNiwzMzU2MCwxNDcwODMsMTU5MTM5LDE1ODQ2OSwxNTg2MTUsMTQ0ODQ2LDE1ODA3LDMzNTY1LDIxOTk2LDMz''@;'; + put 'put ''NjY5LDE3Njc1LDE1OTE0MSwzMzcwOCwzMzcyOSwzMzc0NywxMzQzOCwxNTk0NDQsMjcyMjMsMzQxMzgsMTM0NjIsMTU5Mjk4LDE0MzA4NywzMzg4MCwxNTQ1OTYsMzM5MDUsMTU4MjcsMTc2MzYsMjczMDMsMzM4NjYsMTQ2NjEzLDMxMDY0LDMzOTYwLDE1ODYxNCwxNTkzNTEsMTU5Mjk5LDM0''@;'; + put 'put ''MDE0LDMzODA3LDMzNjgxLDE3NTY4LDMzOTM5LDM0MDIwLDE1NDc2OSwxNjk2MCwxNTQ4MTYsMTc3MzEsMzQxMDAsMjMyODIsMTU5Mzg1LDE3NzAzLDM0MTYzLDE3Njg2LDI2NTU5LDM0MzI2LDE2NTQxMywxNjU0MzUsMzQyNDEsMTU5ODgwLDM0MzA2LDEzNjU3OCwxNTk5NDksMTk0OTk0LDE3''@;'; + put 'put ''NzcwLDM0MzQ0LDEzODk2LDEzNzM3OCwyMTQ5NSwxNjA2NjYsMzQ0MzAsMzQ2NzMsMTcyMjgwLDM0Nzk4LDE0MjM3NSwzNDczNywzNDc3OCwzNDgzMSwyMjExMywzNDQxMiwyNjcxMCwxNzkzNSwzNDg4NSwzNDg4NiwxNjEyNDgsMTQ2ODczLDE2MTI1MiwzNDkxMCwzNDk3MiwxODAxMSwzNDk5''@;'; + put 'put ''NiwzNDk5NywyNTUzNywzNTAxMywzMDU4MywxNjE1NTEsMzUyMDcsMzUyMTAsMzUyMzgsMzUyNDEsMzUyMzksMzUyNjAsMTY2NDM3LDM1MzAzLDE2MjA4NCwxNjI0OTMsMzU0ODQsMzA2MTEsMzczNzQsMzU0NzIsMTYyMzkzLDMxNDY1LDE2MjYxOCwxNDczNDMsMTgxOTUsMTYyNjE2LDI5MDUy''@;'; + put 'put ''LDM1NTk2LDM1NjE1LDE1MjYyNCwxNTI5MzMsMzU2NDcsMzU2NjAsMzU2NjEsMzU0OTcsMTUwMTM4LDM1NzI4LDM1NzM5LDM1NTAzLDEzNjkyNywxNzk0MSwzNDg5NSwzNTk5NSwxNjMxNTYsMTYzMjE1LDE5NTAyOCwxNDExNywxNjMxNTUsMzYwNTQsMTYzMjI0LDE2MzI2MSwzNjExNCwzNjA5''@;'; + put 'put ''OSwxMzc0ODgsMzYwNTksMjg3NjQsMzYxMTMsMTUwNzI5LDE2MDgwLDM2MjE1LDM2MjY1LDE2Mzg0MiwxMzUxODgsMTQ5ODk4LDE1MjI4LDE2NDI4NCwxNjAwMTIsMzE0NjMsMzY1MjUsMzY1MzQsMzY1NDcsMzc1ODgsMzY2MzMsMzY2NTMsMTY0NzA5LDE2NDg4MiwzNjc3MywzNzYzNSwxNzI3''@;'; + put 'put ''MDMsMTMzNzEyLDM2Nzg3LDE4NzMwLDE2NjM2NiwxNjUxODEsMTQ2ODc1LDI0MzEyLDE0Mzk3MCwzNjg1NywxNzIwNTIsMTY1NTY0LDE2NTEyMSwxNDAwNjksMTQ3MjAsMTU5NDQ3LDM2OTE5LDE2NTE4MCwxNjI0OTQsMzY5NjEsMTY1MjI4LDE2NTM4NywzNzAzMiwxNjU2NTEsMzcwNjAsMTY1''@;'; + put 'put ''NjA2LDM3MDM4LDM3MTE3LDM3MjIzLDE1MDg4LDM3Mjg5LDM3MzE2LDMxOTE2LDE2NjE5NSwxMzg4ODksMzczOTAsMjc4MDcsMzc0NDEsMzc0NzQsMTUzMDE3LDM3NTYxLDE2NjU5OCwxNDY1ODcsMTY2NjY4LDE1MzA1MSwxMzQ0NDksMzc2NzYsMzc3MzksMTY2NjI1LDE2Njg5MSwyODgxNSwy''@;'; + put 'put ''MzIzNSwxNjY2MjYsMTY2NjI5LDE4Nzg5LDM3NDQ0LDE2Njg5MiwxNjY5NjksMTY2OTExLDM3NzQ3LDM3OTc5LDM2NTQwLDM4Mjc3LDM4MzEwLDM3OTI2LDM4MzA0LDI4NjYyLDE3MDgxLDE0MDkyMiwxNjU1OTIsMTM1ODA0LDE0Njk5MCwxODkxMSwyNzY3NiwzODUyMywzODU1MCwxNjc0OCwz''@;'; + put 'put ''ODU2MywxNTk0NDUsMjUwNTAsMzg1ODIsMzA5NjUsMTY2NjI0LDM4NTg5LDIxNDUyLDE4ODQ5LDE1ODkwNCwxMzE3MDAsMTU2Njg4LDE2ODExMSwxNjgxNjUsMTUwMjI1LDEzNzQ5MywxNDQxMzgsMzg3MDUsMzQzNzAsMzg3MTAsMTg5NTksMTc3MjUsMTc3OTcsMTUwMjQ5LDI4Nzg5LDIzMzYx''@;'; + put 'put ''LDM4NjgzLDM4NzQ4LDE2ODQwNSwzODc0MywyMzM3MCwxNjg0MjcsMzg3NTEsMzc5MjUsMjA2ODgsMTQzNTQzLDE0MzU0OCwzODc5MywzODgxNSwzODgzMywzODg0NiwzODg0OCwzODg2NiwzODg4MCwxNTI2ODQsMzg4OTQsMjk3MjQsMTY5MDExLDM4OTExLDM4OTAxLDE2ODk4OSwxNjIxNzAs''@;'; + put 'put ''MTkxNTMsMzg5NjQsMzg5NjMsMzg5ODcsMzkwMTQsMTUxMTgsMTYwMTE3LDE1Njk3LDEzMjY1NiwxNDc4MDQsMTUzMzUwLDM5MTE0LDM5MDk1LDM5MTEyLDM5MTExLDE5MTk5LDE1OTAxNSwxMzY5MTUsMjE5MzYsMzkxMzcsMzkxNDIsMzkxNDgsMzc3NTIsMzkyMjUsMTUwMDU3LDE5MzE0LDE3''@;'; + put 'put ''MDA3MSwxNzAyNDUsMzk0MTMsMzk0MzYsMzk0ODMsMzk0NDAsMzk1MTIsMTUzMzgxLDE0MDIwLDE2ODExMywxNzA5NjUsMzk2NDgsMzk2NTAsMTcwNzU3LDM5NjY4LDE5NDcwLDM5NzAwLDM5NzI1LDE2NTM3NiwyMDUzMiwzOTczMiwxNTgxMjAsMTQ1MzEsMTQzNDg1LDM5NzYwLDM5NzQ0LDE3''@;'; + put 'put ''MTMyNiwyMzEwOSwxMzczMTUsMzk4MjIsMTQ4MDQzLDM5OTM4LDM5OTM1LDM5OTQ4LDE3MTYyNCw0MDQwNCwxNzE5NTksMTcyNDM0LDE3MjQ1OSwxNzIyNTcsMTcyMzIzLDE3MjUxMSw0MDMxOCw0MDMyMywxNzIzNDAsNDA0NjIsMjY3NjAsNDAzODgsMTM5NjExLDE3MjQzNSwxNzI1NzYsMTM3''@;'; + put 'put ''NTMxLDE3MjU5NSw0MDI0OSwxNzIyMTcsMTcyNzI0LDQwNTkyLDQwNTk3LDQwNjA2LDQwNjEwLDE5NzY0LDQwNjE4LDQwNjIzLDE0ODMyNCw0MDY0MSwxNTIwMCwxNDgyMSwxNTY0NSwyMDI3NCwxNDI3MCwxNjY5NTUsNDA3MDYsNDA3MTIsMTkzNTAsMzc5MjQsMTU5MTM4LDQwNzI3LDQwNzI2''@;'; + put 'put ''LDQwNzYxLDIyMTc1LDIyMTU0LDQwNzczLDM5MzUyLDE2ODA3NSwzODg5OCwzMzkxOSw0MDgwMiw0MDgwOSwzMTQ1Miw0MDg0NiwyOTIwNiwxOTM5MCwxNDk4NzcsMTQ5OTQ3LDI5MDQ3LDE1MDAwOCwxNDgyOTYsMTUwMDk3LDI5NTk4LDE2Njg3NCwxMzc0NjYsMzExMzUsMTY2MjcwLDE2NzQ3''@;'; + put 'put ''OCwzNzczNywzNzg3NSwxNjY0NjgsMzc2MTIsMzc3NjEsMzc4MzUsMTY2MjUyLDE0ODY2NSwyOTIwNywxNjEwNywzMDU3OCwzMTI5OSwyODg4MCwxNDg1OTUsMTQ4NDcyLDI5MDU0LDEzNzE5OSwyODgzNSwxMzc0MDYsMTQ0NzkzLDE2MDcxLDEzNzM0OSwxNTI2MjMsMTM3MjA4LDE0MTE0LDEz''@;'; + put 'put ''Njk1NSwxMzcyNzMsMTQwNDksMTM3MDc2LDEzNzQyNSwxNTU0NjcsMTQxMTUsMTM2ODk2LDIyMzYzLDE1MDA1MywxMzYxOTAsMTM1ODQ4LDEzNjEzNCwxMzYzNzQsMzQwNTEsMTQ1MDYyLDM0MDUxLDMzODc3LDE0OTkwOCwxNjAxMDEsMTQ2OTkzLDE1MjkyNCwxNDcxOTUsMTU5ODI2LDE3NjUy''@;'; + put 'put ''LDE0NTEzNCwxNzAzOTcsMTU5NTI2LDI2NjE3LDE0MTMxLDE1MzgxLDE1ODQ3LDIyNjM2LDEzNzUwNiwyNjY0MCwxNjQ3MSwxNDUyMTUsMTQ3NjgxLDE0NzU5NSwxNDc3MjcsMTU4NzUzLDIxNzA3LDIyMTc0LDE1NzM2MSwyMjE2MiwxMzUxMzUsMTM0MDU2LDEzNDY2OSwzNzgzMCwxNjY2NzUs''@;'; + put 'put ''Mzc3ODgsMjAyMTYsMjA3NzksMTQzNjEsMTQ4NTM0LDIwMTU2LDEzMjE5NywxMzE5NjcsMjAyOTksMjAzNjIsMTUzMTY5LDIzMTQ0LDEzMTQ5OSwxMzIwNDMsMTQ3NDUsMTMxODUwLDEzMjExNiwxMzM2NSwyMDI2NSwxMzE3NzYsMTY3NjAzLDEzMTcwMSwzNTU0NiwxMzE1OTYsMjAxMjAsMjA2''@;'; + put 'put ''ODUsMjA3NDksMjAzODYsMjAyMjcsMTUwMDMwLDE0NzA4MiwyMDI5MCwyMDUyNiwyMDU4OCwyMDYwOSwyMDQyOCwyMDQ1MywyMDU2OCwyMDczMiwyMDgyNSwyMDgyNywyMDgyOSwyMDgzMCwyODI3OCwxNDQ3ODksMTQ3MDAxLDE0NzEzNSwyODAxOCwxMzczNDgsMTQ3MDgxLDIwOTA0LDIwOTMx''@;'; + put 'put ''LDEzMjU3NiwxNzYyOSwxMzIyNTksMTMyMjQyLDEzMjI0MSwzNjIxOCwxNjY1NTYsMTMyODc4LDIxMDgxLDIxMTU2LDEzMzIzNSwyMTIxNywzNzc0MiwxODA0MiwyOTA2OCwxNDgzNjQsMTM0MTc2LDE0OTkzMiwxMzUzOTYsMjcwODksMTM0Njg1LDI5ODE3LDE2MDk0LDI5ODQ5LDI5NzE2LDI5''@;'; + put 'put ''NzgyLDI5NTkyLDE5MzQyLDE1MDIwNCwxNDc1OTcsMjE0NTYsMTM3MDAsMjkxOTksMTQ3NjU3LDIxOTQwLDEzMTkwOSwyMTcwOSwxMzQwODYsMjIzMDEsMzc0NjksMzg2NDQsMzc3MzQsMjI0OTMsMjI0MTMsMjIzOTksMTM4ODYsMjI3MzEsMjMxOTMsMTY2NDcwLDEzNjk1NCwxMzcwNzEsMTM2''@;'; + put 'put ''OTc2LDIzMDg0LDIyOTY4LDM3NTE5LDIzMTY2LDIzMjQ3LDIzMDU4LDE1MzkyNiwxMzc3MTUsMTM3MzEzLDE0ODExNywxNDA2OSwyNzkwOSwyOTc2MywyMzA3MywxNTUyNjcsMjMxNjksMTY2ODcxLDEzMjExNSwzNzg1NiwyOTgzNiwxMzU5MzksMjg5MzMsMTg4MDIsMzc4OTYsMTY2Mzk1LDM3''@;'; + put 'put ''ODIxLDE0MjQwLDIzNTgyLDIzNzEwLDI0MTU4LDI0MTM2LDEzNzYyMiwxMzc1OTYsMTQ2MTU4LDI0MjY5LDIzMzc1LDEzNzQ3NSwxMzc0NzYsMTQwODEsMTM3Mzc2LDE0MDQ1LDEzNjk1OCwxNDAzNSwzMzA2NiwxNjY0NzEsMTM4NjgyLDE0NDQ5OCwxNjYzMTIsMjQzMzIsMjQzMzQsMTM3NTEx''@;'; + put 'put ''LDEzNzEzMSwyMzE0NywxMzcwMTksMjMzNjQsMzQzMjQsMTYxMjc3LDM0OTEyLDI0NzAyLDE0MTQwOCwxNDA4NDMsMjQ1MzksMTYwNTYsMTQwNzE5LDE0MDczNCwxNjgwNzIsMTU5NjAzLDI1MDI0LDEzMTEzNCwxMzExNDIsMTQwODI3LDI0OTg1LDI0OTg0LDI0NjkzLDE0MjQ5MSwxNDI1OTks''@;'; + put 'put ''MTQ5MjA0LDE2ODI2OSwyNTcxMywxNDkwOTMsMTQyMTg2LDE0ODg5LDE0MjExNCwxNDQ0NjQsMTcwMjE4LDE0Mjk2OCwyNTM5OSwxNzMxNDcsMjU3ODIsMjUzOTMsMjU1NTMsMTQ5OTg3LDE0MjY5NSwyNTI1MiwxNDI0OTcsMjU2NTksMjU5NjMsMjY5OTQsMTUzNDgsMTQzNTAyLDE0NDA0NSwx''@;'; + put 'put ''NDk4OTcsMTQ0MDQzLDIxNzczLDE0NDA5NiwxMzc0MzMsMTY5MDIzLDI2MzE4LDE0NDAwOSwxNDM3OTUsMTUwNzIsMTY3ODQsMTUyOTY0LDE2NjY5MCwxNTI5NzUsMTM2OTU2LDE1MjkyMywxNTI2MTMsMzA5NTgsMTQzNjE5LDEzNzI1OCwxNDM5MjQsMTM0MTIsMTQzODg3LDE0Mzc0NiwxNDgx''@;'; + put 'put ''NjksMjYyNTQsMTU5MDEyLDI2MjE5LDE5MzQ3LDI2MTYwLDE2MTkwNCwxMzg3MzEsMjYyMTEsMTQ0MDgyLDE0NDA5NywyNjE0MiwxNTM3MTQsMTQ1NDUsMTQ1NDY2LDE0NTM0MCwxNTI1NywxNDUzMTQsMTQ0MzgyLDI5OTA0LDE1MjU0LDI2NTExLDE0OTAzNCwyNjgwNiwyNjY1NCwxNTMwMCwy''@;'; + put 'put ''NzMyNiwxNDQzNSwxNDUzNjUsMTQ4NjE1LDI3MTg3LDI3MjE4LDI3MzM3LDI3Mzk3LDEzNzQ5MCwyNTg3MywyNjc3NiwyNzIxMiwxNTMxOSwyNzI1OCwyNzQ3OSwxNDczOTIsMTQ2NTg2LDM3NzkyLDM3NjE4LDE2Njg5MCwxNjY2MDMsMzc1MTMsMTYzODcwLDE2NjM2NCwzNzk5MSwyODA2OSwy''@;'; + put 'put ''ODQyNywxNDk5OTYsMjgwMDcsMTQ3MzI3LDE1NzU5LDI4MTY0LDE0NzUxNiwyMzEwMSwyODE3MCwyMjU5OSwyNzk0MCwzMDc4NiwyODk4NywxNDgyNTAsMTQ4MDg2LDI4OTEzLDI5MjY0LDI5MzE5LDI5MzMyLDE0OTM5MSwxNDkyODUsMjA4NTcsMTUwMTgwLDEzMjU4NywyOTgxOCwxNDcxOTIs''@;'; + put 'put ''MTQ0OTkxLDE1MDA5MCwxNDk3ODMsMTU1NjE3LDE2MTM0LDE2MDQ5LDE1MDIzOSwxNjY5NDcsMTQ3MjUzLDI0NzQzLDE2MTE1LDI5OTAwLDI5NzU2LDM3NzY3LDI5NzUxLDE3NTY3LDE1OTIxMCwxNzc0NSwzMDA4MywxNjIyNywxNTA3NDUsMTUwNzkwLDE2MjE2LDMwMDM3LDMwMzIzLDE3MzUx''@;'; + put 'put ''MCwxNTEyOSwyOTgwMCwxNjY2MDQsMTQ5OTMxLDE0OTkwMiwxNTA5OSwxNTgyMSwxNTAwOTQsMTYxMjcsMTQ5OTU3LDE0OTc0NywzNzM3MCwyMjMyMiwzNzY5OCwxNjY2MjcsMTM3MzE2LDIwNzAzLDE1MjA5NywxNTIwMzksMzA1ODQsMTQzOTIyLDMwNDc4LDMwNDc5LDMwNTg3LDE0OTE0Mywx''@;'; + put 'put ''NDUyODEsMTQ5NDIsMTQ5NzQ0LDI5NzUyLDI5ODUxLDE2MDYzLDE1MDIwMiwxNTAyMTUsMTY1ODQsMTUwMTY2LDE1NjA3OCwzNzYzOSwxNTI5NjEsMzA3NTAsMzA4NjEsMzA4NTYsMzA5MzAsMjk2NDgsMzEwNjUsMTYxNjAxLDE1MzMxNSwxNjY1NCwzMTEzMSwzMzk0MiwzMTE0MSwyNzE4MSwx''@;'; + put 'put ''NDcxOTQsMzEyOTAsMzEyMjAsMTY3NTAsMTM2OTM0LDE2NjkwLDM3NDI5LDMxMjE3LDEzNDQ3NiwxNDk5MDAsMTMxNzM3LDE0Njg3NCwxMzcwNzAsMTM3MTksMjE4NjcsMTM2ODAsMTM5OTQsMTMxNTQwLDEzNDE1NywzMTQ1OCwyMzEyOSwxNDEwNDUsMTU0Mjg3LDE1NDI2OCwyMzA1MywxMzE2''@;'; + put 'put ''NzUsMzA5NjAsMjMwODIsMTU0NTY2LDMxNDg2LDE2ODg5LDMxODM3LDMxODUzLDE2OTEzLDE1NDU0NywxNTUzMjQsMTU1MzAyLDMxOTQ5LDE1MDAwOSwxMzcxMzYsMzE4ODYsMzE4NjgsMzE5MTgsMjczMTQsMzIyMjAsMzIyNjMsMzIyMTEsMzI1OTAsMTU2MjU3LDE1NTk5NiwxNjI2MzIsMzIx''@;'; + put 'put ''NTEsMTU1MjY2LDE3MDAyLDE1ODU4MSwxMzMzOTgsMjY1ODIsMTMxMTUwLDE0NDg0NywyMjQ2OCwxNTY2OTAsMTU2NjY0LDE0OTg1OCwzMjczMywzMTUyNywxMzMxNjQsMTU0MzQ1LDE1NDk0NywzMTUwMCwxNTUxNTAsMzkzOTgsMzQzNzMsMzk1MjMsMjcxNjQsMTQ0NDQ3LDE0ODE4LDE1MDAw''@;'; + put 'put ''NywxNTcxMDEsMzk0NTUsMTU3MDg4LDMzOTIwLDE2MDAzOSwxNTg5MjksMTc2NDIsMzMwNzksMTc0MTAsMzI5NjYsMzMwMzMsMzMwOTAsMTU3NjIwLDM5MTA3LDE1ODI3NCwzMzM3OCwzMzM4MSwxNTgyODksMzM4NzUsMTU5MTQzLDM0MzIwLDE2MDI4MywyMzE3NCwxNjc2NywxMzcyODAsMjMz''@;'; + put 'put ''MzksMTM3Mzc3LDIzMjY4LDEzNzQzMiwzNDQ2NCwxOTUwMDQsMTQ2ODMxLDM0ODYxLDE2MDgwMiwyMzA0MiwzNDkyNiwyMDI5MywzNDk1MSwzNTAwNywzNTA0NiwzNTE3MywzNTE0OSwxNTMyMTksMzUxNTYsMTYxNjY5LDE2MTY2OCwxNjY5MDEsMTY2ODczLDE2NjgxMiwxNjYzOTMsMTYwNDUs''@;'; + put 'put ''MzM5NTUsMTgxNjUsMTgxMjcsMTQzMjIsMzUzODksMzUzNTYsMTY5MDMyLDI0Mzk3LDM3NDE5LDE0ODEwMCwyNjA2OCwyODk2OSwyODg2OCwxMzcyODUsNDAzMDEsMzU5OTksMzYwNzMsMTYzMjkyLDIyOTM4LDMwNjU5LDIzMDI0LDE3MjYyLDE0MDM2LDM2Mzk0LDM2NTE5LDE1MDUzNywzNjY1''@;'; + put 'put ''NiwzNjY4MiwxNzE0MCwyNzczNiwyODYwMywxNDAwNjUsMTg1ODcsMjg1MzcsMjgyOTksMTM3MTc4LDM5OTEzLDE0MDA1LDE0OTgwNywzNzA1MSwzNzAxNSwyMTg3MywxODY5NCwzNzMwNywzNzg5MiwxNjY0NzUsMTY0ODIsMTY2NjUyLDM3OTI3LDE2Njk0MSwxNjY5NzEsMzQwMjEsMzUzNzEs''@;'; + put 'put ''MzgyOTcsMzgzMTEsMzgyOTUsMzgyOTQsMTY3MjIwLDI5NzY1LDE2MDY2LDE0OTc1OSwxNTAwODIsMTQ4NDU4LDE2MTAzLDE0MzkwOSwzODU0MywxNjc2NTUsMTY3NTI2LDE2NzUyNSwxNjA3NiwxNDk5OTcsMTUwMTM2LDE0NzQzOCwyOTcxNCwyOTgwMywxNjEyNCwzODcyMSwxNjgxMTIsMjY2''@;'; + put 'put ''OTUsMTg5NzMsMTY4MDgzLDE1MzU2NywzODc0OSwzNzczNiwxNjYyODEsMTY2OTUwLDE2NjcwMywxNTY2MDYsMzc1NjIsMjMzMTMsMzU2ODksMTg3NDgsMjk2ODksMTQ3OTk1LDM4ODExLDM4NzY5LDM5MjI0LDEzNDk1MCwyNDAwMSwxNjY4NTMsMTUwMTk0LDM4OTQzLDE2OTE3OCwzNzYyMiwx''@;'; + put 'put ''Njk0MzEsMzczNDksMTc2MDAsMTY2NzM2LDE1MDExOSwxNjY3NTYsMzkxMzIsMTY2NDY5LDE2MTI4LDM3NDE4LDE4NzI1LDMzODEyLDM5MjI3LDM5MjQ1LDE2MjU2NiwxNTg2OSwzOTMyMywxOTMxMSwzOTMzOCwzOTUxNiwxNjY3NTcsMTUzODAwLDI3Mjc5LDM5NDU3LDIzMjk0LDM5NDcxLDE3''@;'; + put 'put ''MDIyNSwxOTM0NCwxNzAzMTIsMzkzNTYsMTkzODksMTkzNTEsMzc3NTcsMjI2NDIsMTM1OTM4LDIyNTYyLDE0OTk0NCwxMzY0MjQsMzA3ODgsMTQxMDg3LDE0Njg3MiwyNjgyMSwxNTc0MSwzNzk3NiwxNDYzMSwyNDkxMiwxNDExODUsMTQxNjc1LDI0ODM5LDQwMDE1LDQwMDE5LDQwMDU5LDM5''@;'; + put 'put ''OTg5LDM5OTUyLDM5ODA3LDM5ODg3LDE3MTU2NSwzOTgzOSwxNzI1MzMsMTcyMjg2LDQwMjI1LDE5NjMwLDE0NzcxNiw0MDQ3MiwxOTYzMiw0MDIwNCwxNzI0NjgsMTcyMjY5LDE3MjI3NSwxNzAyODcsNDAzNTcsMzM5ODEsMTU5MjUwLDE1OTcxMSwxNTg1OTQsMzQzMDAsMTc3MTUsMTU5MTQw''@;'; + put 'put ''LDE1OTM2NCwxNTkyMTYsMzM4MjQsMzQyODYsMTU5MjMyLDE0NTM2NywxNTU3NDgsMzEyMDIsMTQ0Nzk2LDE0NDk2MCwxODczMywxNDk5ODIsMTU3MTQsMzc4NTEsMzc1NjYsMzc3MDQsMTMxNzc1LDMwOTA1LDM3NDk1LDM3OTY1LDIwNDUyLDEzMzc2LDM2OTY0LDE1MjkyNSwzMDc4MSwzMDgw''@;'; + put 'put ''NCwzMDkwMiwzMDc5NSwxMzcwNDcsMTQzODE3LDE0OTgyNSwxMzk3OCwyMDMzOCwyODYzNCwyODYzMywyODcwMiwyODcwMiwyMTUyNCwxNDc4OTMsMjI0NTksMjI3NzEsMjI0MTAsNDAyMTQsMjI0ODcsMjg5ODAsMTM0ODcsMTQ3ODg0LDI5MTYzLDE1ODc4NCwxNTE0NDcsMjMzMzYsMTM3MTQx''@;'; + put 'put ''LDE2NjQ3MywyNDg0NCwyMzI0NiwyMzA1MSwxNzA4NCwxNDg2MTYsMTQxMjQsMTkzMjMsMTY2Mzk2LDM3ODE5LDM3ODE2LDEzNzQzMCwxMzQ5NDEsMzM5MDYsMTU4OTEyLDEzNjIxMSwxNDgyMTgsMTQyMzc0LDE0ODQxNywyMjkzMiwxNDY4NzEsMTU3NTA1LDMyMTY4LDE1NTk5NSwxNTU4MTIs''@;'; + put 'put ''MTQ5OTQ1LDE0OTg5OSwxNjYzOTQsMzc2MDUsMjk2NjYsMTYxMDUsMjk4NzYsMTY2NzU1LDEzNzM3NSwxNjA5NywxNTAxOTUsMjczNTIsMjk2ODMsMjk2OTEsMTYwODYsMTUwMDc4LDE1MDE2NCwxMzcxNzcsMTUwMTE4LDEzMjAwNywxMzYyMjgsMTQ5OTg5LDI5NzY4LDE0OTc4MiwyODgzNywx''@;'; + put 'put ''NDk4NzgsMzc1MDgsMjk2NzAsMzc3MjcsMTMyMzUwLDM3NjgxLDE2NjYwNiwxNjY0MjIsMzc3NjYsMTY2ODg3LDE1MzA0NSwxODc0MSwxNjY1MzAsMjkwMzUsMTQ5ODI3LDEzNDM5OSwyMjE4MCwxMzI2MzQsMTM0MTIzLDEzNDMyOCwyMTc2MiwzMTE3MiwxMzcyMTAsMzIyNTQsMTM2ODk4LDE1''@;'; + put 'put ''MDA5NiwxMzcyOTgsMTc3MTAsMzc4ODksMTQwOTAsMTY2NTkyLDE0OTkzMywyMjk2MCwxMzc0MDcsMTM3MzQ3LDE2MDkwMCwyMzIwMSwxNDA1MCwxNDY3NzksMTRlMywzNzQ3MSwyMzE2MSwxNjY1MjksMTM3MzE0LDM3NzQ4LDE1NTY1LDEzMzgxMiwxOTA5NCwxNDczMCwyMDcyNCwxNTcyMSwx''@;'; + put 'put ''NTY5MiwxMzYwOTIsMjkwNDUsMTcxNDcsMTY0Mzc2LDI4MTc1LDE2ODE2NCwxNzY0MywyNzk5MSwxNjM0MDcsMjg3NzUsMjc4MjMsMTU1NzQsMTQ3NDM3LDE0Njk4OSwyODE2MiwyODQyOCwxNTcyNywxMzIwODUsMzAwMzMsMTQwMTIsMTM1MTIsMTgwNDgsMTYwOTAsMTg1NDUsMjI5ODAsMzc0''@;'; + put 'put ''ODYsMTg3NTAsMzY2NzMsMTY2OTQwLDE1ODY1NiwyMjU0NiwyMjQ3MiwxNDAzOCwxMzYyNzQsMjg5MjYsMTQ4MzIyLDE1MDEyOSwxNDMzMzEsMTM1ODU2LDE0MDIyMSwyNjgwOSwyNjk4MywxMzYwODgsMTQ0NjEzLDE2MjgwNCwxNDUxMTksMTY2NTMxLDE0NTM2NiwxNDQzNzgsMTUwNjg3LDI3''@;'; + put 'put ''MTYyLDE0NTA2OSwxNTg5MDMsMzM4NTQsMTc2MzEsMTc2MTQsMTU5MDE0LDE1OTA1NywxNTg4NTAsMTU5NzEwLDI4NDM5LDE2MDAwOSwzMzU5NywxMzcwMTgsMzM3NzMsMTU4ODQ4LDE1OTgyNywxMzcxNzksMjI5MjEsMjMxNzAsMTM3MTM5LDIzMTM3LDIzMTUzLDEzNzQ3NywxNDc5NjQsMTQx''@;'; + put 'put ''MjUsMjMwMjMsMTM3MDIwLDE0MDIzLDI5MDcwLDM3Nzc2LDI2MjY2LDE0ODEzMywyMzE1MCwyMzA4MywxNDgxMTUsMjcxNzksMTQ3MTkzLDE2MTU5MCwxNDg1NzEsMTQ4MTcwLDI4OTU3LDE0ODA1NywxNjYzNjksMjA0MDAsMTU5MDE2LDIzNzQ2LDE0ODY4NiwxNjM0MDUsMTQ4NDEzLDI3MTQ4''@;'; + put 'put ''LDE0ODA1NCwxMzU5NDAsMjg4MzgsMjg5NzksMTQ4NDU3LDE1NzgxLDI3ODcxLDE5NDU5NywxNTAwOTUsMzIzNTcsMjMwMTksMjM4NTUsMTU4NTksMjQ0MTIsMTUwMTA5LDEzNzE4MywzMjE2NCwzMzgzMCwyMTYzNywxNDYxNzAsMTQ0MTI4LDEzMTYwNCwyMjM5OCwxMzMzMzMsMTMyNjMzLDE2''@;'; + put 'put ''MzU3LDEzOTE2NiwxNzI3MjYsMjg2NzUsMTY4MjgzLDIzOTIwLDI5NTgzLDMxOTU1LDE2NjQ4OSwxNjg5OTIsMjA0MjQsMzI3NDMsMjkzODksMjk0NTYsMTYyNTQ4LDI5NDk2LDI5NDk3LDE1MzMzNCwyOTUwNSwyOTUxMiwxNjA0MSwxNjI1ODQsMzY5NzIsMjkxNzMsMTQ5NzQ2LDI5NjY1LDMz''@;'; + put 'put ''MjcwLDE2MDc0LDMwNDc2LDE2MDgxLDI3ODEwLDIyMjY5LDI5NzIxLDI5NzI2LDI5NzI3LDE2MDk4LDE2MTEyLDE2MTE2LDE2MTIyLDI5OTA3LDE2MTQyLDE2MjExLDMwMDE4LDMwMDYxLDMwMDY2LDMwMDkzLDE2MjUyLDMwMTUyLDMwMTcyLDE2MzIwLDMwMjg1LDE2MzQzLDMwMzI0LDE2MzQ4''@;'; + put 'put ''LDMwMzMwLDE1MTM4OCwyOTA2NCwyMjA1MSwzNTIwMCwyMjYzMywxNjQxMywzMDUzMSwxNjQ0MSwyNjQ2NSwxNjQ1MywxMzc4NywzMDYxNiwxNjQ5MCwxNjQ5NSwyMzY0NiwzMDY1NCwzMDY2NywyMjc3MCwzMDc0NCwyODg1NywzMDc0OCwxNjU1MiwzMDc3NywzMDc5MSwzMDgwMSwzMDgyMiwz''@;'; + put 'put ''Mzg2NCwxNTI4ODUsMzEwMjcsMjY2MjcsMzEwMjYsMTY2NDMsMTY2NDksMzExMjEsMzExMjksMzY3OTUsMzEyMzgsMzY3OTYsMTY3NDMsMzEzNzcsMTY4MTgsMzE0MjAsMzM0MDEsMTY4MzYsMzE0MzksMzE0NTEsMTY4NDcsMjAwMDEsMzE1ODYsMzE1OTYsMzE2MTEsMzE3NjIsMzE3NzEsMTY5''@;'; + put 'put ''OTIsMTcwMTgsMzE4NjcsMzE5MDAsMTcwMzYsMzE5MjgsMTcwNDQsMzE5ODEsMzY3NTUsMjg4NjQsMTM0MzUxLDMyMjA3LDMyMjEyLDMyMjA4LDMyMjUzLDMyNjg2LDMyNjkyLDI5MzQzLDE3MzAzLDMyODAwLDMyODA1LDMxNTQ1LDMyODE0LDMyODE3LDMyODUyLDE1ODIwLDIyNDUyLDI4ODMy''@;'; + put 'put ''LDMyOTUxLDMzMDAxLDE3Mzg5LDMzMDM2LDI5NDgyLDMzMDM4LDMzMDQyLDMwMDQ4LDMzMDQ0LDE3NDA5LDE1MTYxLDMzMTEwLDMzMTEzLDMzMTE0LDE3NDI3LDIyNTg2LDMzMTQ4LDMzMTU2LDE3NDQ1LDMzMTcxLDE3NDUzLDMzMTg5LDIyNTExLDMzMjE3LDMzMjUyLDMzMzY0LDE3NTUxLDMz''@;'; + put 'put ''NDQ2LDMzMzk4LDMzNDgyLDMzNDk2LDMzNTM1LDE3NTg0LDMzNjIzLDM4NTA1LDI3MDE4LDMzNzk3LDI4OTE3LDMzODkyLDI0ODAzLDMzOTI4LDE3NjY4LDMzOTgyLDM0MDE3LDM0MDQwLDM0MDY0LDM0MTA0LDM0MTMwLDE3NzIzLDM0MTU5LDM0MTYwLDM0MjcyLDE3NzgzLDM0NDE4LDM0NDUw''@;'; + put 'put ''LDM0NDgyLDM0NTQzLDM4NDY5LDM0Njk5LDE3OTI2LDE3OTQzLDM0OTkwLDM1MDcxLDM1MTA4LDM1MTQzLDM1MjE3LDE2MjE1MSwzNTM2OSwzNTM4NCwzNTQ3NiwzNTUwOCwzNTkyMSwzNjA1MiwzNjA4MiwzNjEyNCwxODMyOCwyMjYyMywzNjI5MSwxODQxMywyMDIwNiwzNjQxMCwyMTk3Niwy''@;'; + put 'put ''MjM1NiwzNjQ2NSwyMjAwNSwzNjUyOCwxODQ4NywzNjU1OCwzNjU3OCwzNjU4MCwzNjU4OSwzNjU5NCwzNjc5MSwzNjgwMSwzNjgxMCwzNjgxMiwzNjkxNSwzOTM2NCwxODYwNSwzOTEzNiwzNzM5NSwxODcxOCwzNzQxNiwzNzQ2NCwzNzQ4MywzNzU1MywzNzU1MCwzNzU2NywzNzYwMywzNzYx''@;'; + put 'put ''MSwzNzYxOSwzNzYyMCwzNzYyOSwzNzY5OSwzNzc2NCwzNzgwNSwxODc1NywxODc2OSw0MDYzOSwzNzkxMSwyMTI0OSwzNzkxNywzNzkzMywzNzk1MCwxODc5NCwzNzk3MiwzODAwOSwzODE4OSwzODMwNiwxODg1NSwzODM4OCwzODQ1MSwxODkxNywyNjUyOCwxODk4MCwzODcyMCwxODk5Nywz''@;'; + put 'put ''ODgzNCwzODg1MCwyMjEwMCwxOTE3MiwyNDgwOCwzOTA5NywxOTIyNSwzOTE1MywyMjU5NiwzOTE4MiwzOTE5MywyMDkxNiwzOTE5NiwzOTIyMywzOTIzNCwzOTI2MSwzOTI2NiwxOTMxMiwzOTM2NSwxOTM1NywzOTQ4NCwzOTY5NSwzMTM2MywzOTc4NSwzOTgwOSwzOTkwMSwzOTkyMSwzOTky''@;'; + put 'put ''NCwxOTU2NSwzOTk2OCwxNDE5MSwxMzgxNzgsNDAyNjUsMzk5OTQsNDA3MDIsMjIwOTYsNDAzMzksNDAzODEsNDAzODQsNDA0NDQsMzgxMzQsMzY3OTAsNDA1NzEsNDA2MjAsNDA2MjUsNDA2MzcsNDA2NDYsMzgxMDgsNDA2NzQsNDA2ODksNDA2OTYsMzE0MzIsNDA3NzIsMTMxMjIwLDEzMTc2''@;'; + put 'put ''NywxMzJlMywyNjkwNiwzODA4MywyMjk1NiwxMzIzMTEsMjI1OTIsMzgwODEsMTQyNjUsMTMyNTY1LDEzMjYyOSwxMzI3MjYsMTM2ODkwLDIyMzU5LDI5MDQzLDEzMzgyNiwxMzM4MzcsMTM0MDc5LDIxNjEwLDE5NDYxOSwxMzQwOTEsMjE2NjIsMTM0MTM5LDEzNDIwMywxMzQyMjcsMTM0MjQ1''@;'; + put 'put ''LDEzNDI2OCwyNDgwNywxMzQyODUsMjIxMzgsMTM0MzI1LDEzNDM2NSwxMzQzODEsMTM0NTExLDEzNDU3OCwxMzQ2MDAsMjY5NjUsMzk5ODMsMzQ3MjUsMTM0NjYwLDEzNDY3MCwxMzQ4NzEsMTM1MDU2LDEzNDk1NywxMzQ3NzEsMjM1ODQsMTM1MTAwLDI0MDc1LDEzNTI2MCwxMzUyNDcsMTM1''@;'; + put 'put ''Mjg2LDI2Mzk4LDEzNTI5MSwxMzUzMDQsMTM1MzE4LDEzODk1LDEzNTM1OSwxMzUzNzksMTM1NDcxLDEzNTQ4MywyMTM0OCwzMzk2NSwxMzU5MDcsMTM2MDUzLDEzNTk5MCwzNTcxMywxMzY1NjcsMTM2NzI5LDEzNzE1NSwxMzcxNTksMjAwODgsMjg4NTksMTM3MjYxLDEzNzU3OCwxMzc3NzMs''@;'; + put 'put ''MTM3Nzk3LDEzODI4MiwxMzgzNTIsMTM4NDEyLDEzODk1MiwyNTI4MywxMzg5NjUsMTM5MDI5LDI5MDgwLDI2NzA5LDEzOTMzMywyNzExMywxNDAyNCwxMzk5MDAsMTQwMjQ3LDE0MDI4MiwxNDEwOTgsMTQxNDI1LDE0MTY0NywzMzUzMywxNDE2NzEsMTQxNzE1LDE0MjAzNywzNTIzNywxNDIw''@;'; + put 'put ''NTYsMzY3NjgsMTQyMDk0LDM4ODQwLDE0MjE0MywzODk4MywzOTYxMywxNDI0MTIsbnVsbCwxNDI0NzIsMTQyNTE5LDE1NDYwMCwxNDI2MDAsMTQyNjEwLDE0Mjc3NSwxNDI3NDEsMTQyOTE0LDE0MzIyMCwxNDMzMDgsMTQzNDExLDE0MzQ2MiwxNDQxNTksMTQ0MzUwLDI0NDk3LDI2MTg0LDI2''@;'; + put 'put ''MzAzLDE2MjQyNSwxNDQ3NDMsMTQ0ODgzLDI5MTg1LDE0OTk0NiwzMDY3OSwxNDQ5MjIsMTQ1MTc0LDMyMzkxLDEzMTkxMCwyMjcwOSwyNjM4MiwyNjkwNCwxNDYwODcsMTYxMzY3LDE1NTYxOCwxNDY5NjEsMTQ3MTI5LDE2MTI3OCwxMzk0MTgsMTg2NDAsMTkxMjgsMTQ3NzM3LDE2NjU1NCwx''@;'; + put 'put ''NDgyMDYsMTQ4MjM3LDE0NzUxNSwxNDgyNzYsMTQ4Mzc0LDE1MDA4NSwxMzI1NTQsMjA5NDYsMTMyNjI1LDIyOTQzLDEzODkyMCwxNTI5NCwxNDY2ODcsMTQ4NDg0LDE0ODY5NCwyMjQwOCwxNDkxMDgsMTQ3NDcsMTQ5Mjk1LDE2NTM1MiwxNzA0NDEsMTQxNzgsMTM5NzE1LDM1Njc4LDE2Njcz''@;'; + put 'put ''NCwzOTM4MiwxNDk1MjIsMTQ5NzU1LDE1MDAzNywyOTE5MywxNTAyMDgsMTM0MjY0LDIyODg1LDE1MTIwNSwxNTE0MzAsMTMyOTg1LDM2NTcwLDE1MTU5NiwyMTEzNSwyMjMzNSwyOTA0MSwxNTIyMTcsMTUyNjAxLDE0NzI3NCwxNTAxODMsMjE5NDgsMTUyNjQ2LDE1MjY4NiwxNTg1NDYsMzcz''@;'; + put 'put ''MzIsMTM0MjcsMTUyODk1LDE2MTMzMCwxNTI5MjYsMTgyMDAsMTUyOTMwLDE1MjkzNCwxNTM1NDMsMTQ5ODIzLDE1MzY5MywyMDU4MiwxMzU2MywxNDQzMzIsMjQ3OTgsMTUzODU5LDE4MzAwLDE2NjIxNiwxNTQyODYsMTU0NTA1LDE1NDYzMCwxMzg2NDAsMjI0MzMsMjkwMDksMjg1OTgsMTU1''@;'; + put 'put ''OTA2LDE2MjgzNCwzNjk1MCwxNTYwODIsMTUxNDUwLDM1NjgyLDE1NjY3NCwxNTY3NDYsMjM4OTksMTU4NzExLDM2NjYyLDE1NjgwNCwxMzc1MDAsMzU1NjIsMTUwMDA2LDE1NjgwOCwxNDc0MzksMTU2OTQ2LDE5MzkyLDE1NzExOSwxNTczNjUsMTQxMDgzLDM3OTg5LDE1MzU2OSwyNDk4MSwy''@;'; + put 'put ''MzA3OSwxOTQ3NjUsMjA0MTEsMjIyMDEsMTQ4NzY5LDE1NzQzNiwyMDA3NCwxNDk4MTIsMzg0ODYsMjgwNDcsMTU4OTA5LDEzODQ4LDM1MTkxLDE1NzU5MywxNTc4MDYsMTU2Njg5LDE1Nzc5MCwyOTE1MSwxNTc4OTUsMzE1NTQsMTY4MTI4LDEzMzY0OSwxNTc5OTAsMzcxMjQsMTU4MDA5LDMx''@;'; + put 'put ''MzAxLDQwNDMyLDE1ODIwMiwzOTQ2MiwxNTgyNTMsMTM5MTksMTU2Nzc3LDEzMTEwNSwzMTEwNywxNTgyNjAsMTU4NTU1LDIzODUyLDE0NDY2NSwzMzc0MywxNTg2MjEsMTgxMjgsMTU4ODg0LDMwMDExLDM0OTE3LDE1OTE1MCwyMjcxMCwxNDEwOCwxNDA2ODUsMTU5ODE5LDE2MDIwNSwxNTQ0''@;'; + put 'put ''NCwxNjAzODQsMTYwMzg5LDM3NTA1LDEzOTY0MiwxNjAzOTUsMzc2ODAsMTYwNDg2LDE0OTk2OCwyNzcwNSwzODA0NywxNjA4NDgsMTM0OTA0LDM0ODU1LDM1MDYxLDE0MTYwNiwxNjQ5NzksMTM3MTM3LDI4MzQ0LDE1MDA1OCwxMzcyNDgsMTQ3NTYsMTQwMDksMjM1NjgsMzEyMDMsMTc3Mjcs''@;'; + put 'put ''MjYyOTQsMTcxMTgxLDE3MDE0OCwzNTEzOSwxNjE3NDAsMTYxODgwLDIyMjMwLDE2NjA3LDEzNjcxNCwxNDc1MywxNDUxOTksMTY0MDcyLDEzNjEzMywyOTEwMSwzMzYzOCwxNjIyNjksMTY4MzYwLDIzMTQzLDE5NjM5LDE1OTkxOSwxNjYzMTUsMTYyMzAxLDE2MjMxNCwxNjI1NzEsMTYzMTc0''@;'; + put 'put ''LDE0NzgzNCwzMTU1NSwzMTEwMiwxNjM4NDksMjg1OTcsMTcyNzY3LDI3MTM5LDE2NDYzMiwyMTQxMCwxNTkyMzksMzc4MjMsMjY2NzgsMzg3NDksMTY0MjA3LDE2Mzg3NSwxNTgxMzMsMTM2MTczLDE0MzkxOSwxNjM5MTIsMjM5NDEsMTY2OTYwLDE2Mzk3MSwyMjI5MywzODk0NywxNjYyMTcs''@;'; + put 'put ''MjM5NzksMTQ5ODk2LDI2MDQ2LDI3MDkzLDIxNDU4LDE1MDE4MSwxNDczMjksMTUzNzcsMjY0MjIsMTYzOTg0LDE2NDA4NCwxNjQxNDIsMTM5MTY5LDE2NDE3NSwxNjQyMzMsMTY0MjcxLDE2NDM3OCwxNjQ2MTQsMTY0NjU1LDE2NDc0NiwxMzc3MCwxNjQ5NjgsMTY1NTQ2LDE4NjgyLDI1NTc0''@;'; + put 'put ''LDE2NjIzMCwzMDcyOCwzNzQ2MSwxNjYzMjgsMTczOTQsMTY2Mzc1LDE3Mzc1LDE2NjM3NiwxNjY3MjYsMTY2ODY4LDIzMDMyLDE2NjkyMSwzNjYxOSwxNjc4NzcsMTY4MTcyLDMxNTY5LDE2ODIwOCwxNjgyNTIsMTU4NjMsMTY4Mjg2LDE1MDIxOCwzNjgxNiwyOTMyNywyMjE1NSwxNjkxOTEs''@;'; + put 'put ''MTY5NDQ5LDE2OTM5MiwxNjk0MDAsMTY5Nzc4LDE3MDE5MywxNzAzMTMsMTcwMzQ2LDE3MDQzNSwxNzA1MzYsMTcwNzY2LDE3MTM1NCwxNzE0MTksMzI0MTUsMTcxNzY4LDE3MTgxMSwxOTYyMCwzODIxNSwxNzI2OTEsMjkwOTAsMTcyNzk5LDE5ODU3LDM2ODgyLDE3MzUxNSwxOTg2OCwxMzQz''@;'; + put 'put ''MDAsMzY3OTgsMjE5NTMsMzY3OTQsMTQwNDY0LDM2NzkzLDE1MDE2MywxNzY3MywzMjM4MywyODUwMiwyNzMxMywyMDIwMiwxMzU0MCwxNjY3MDAsMTYxOTQ5LDE0MTM4LDM2NDgwLDEzNzIwNSwxNjM4NzYsMTY2NzY0LDE2NjgwOSwxNjIzNjYsMTU3MzU5LDE1ODUxLDE2MTM2NSwxNDY2MTUs''@;'; + put 'put ''MTUzMTQxLDE1Mzk0MiwyMDEyMiwxNTUyNjUsMTU2MjQ4LDIyMjA3LDEzNDc2NSwzNjM2NiwyMzQwNSwxNDcwODAsMTUwNjg2LDI1NTY2LDI1Mjk2LDEzNzIwNiwxMzczMzksMjU5MDQsMjIwNjEsMTU0Njk4LDIxNTMwLDE1MjMzNywxNTgxNCwxNzE0MTYsMTk1ODEsMjIwNTAsMjIwNDYsMzI1''@;'; + put 'put ''ODUsMTU1MzUyLDIyOTAxLDE0Njc1MiwzNDY3MiwxOTk5NiwxMzUxNDYsMTM0NDczLDE0NTA4MiwzMzA0Nyw0MDI4NiwzNjEyMCwzMDI2Nyw0MDAwNSwzMDI4NiwzMDY0OSwzNzcwMSwyMTU1NCwzMzA5NiwzMzUyNywyMjA1MywzMzA3NCwzMzgxNiwzMjk1NywyMTk5NCwzMTA3NCwyMjA4Mywy''@;'; + put 'put ''MTUyNiwxMzQ4MTMsMTM3NzQsMjIwMjEsMjIwMDEsMjYzNTMsMTY0NTc4LDEzODY5LDMwMDA0LDIyZTMsMjE5NDYsMjE2NTUsMjE4NzQsMTM0MjA5LDEzNDI5NCwyNDI3MiwxNTE4ODAsMTM0Nzc0LDE0MjQzNCwxMzQ4MTgsNDA2MTksMzIwOTAsMjE5ODIsMTM1Mjg1LDI1MjQ1LDM4NzY1LDIx''@;'; + put 'put ''NjUyLDM2MDQ1LDI5MTc0LDM3MjM4LDI1NTk2LDI1NTI5LDI1NTk4LDIxODY1LDE0MjE0Nyw0MDA1MCwxNDMwMjcsMjA4OTAsMTM1MzUsMTM0NTY3LDIwOTAzLDIxNTgxLDIxNzkwLDIxNzc5LDMwMzEwLDM2Mzk3LDE1NzgzNCwzMDEyOSwzMjk1MCwzNDgyMCwzNDY5NCwzNTAxNSwzMzIwNiwz''@;'; + put 'put ''MzgyMCwxMzUzNjEsMTc2NDQsMjk0NDQsMTQ5MjU0LDIzNDQwLDMzNTQ3LDE1Nzg0MywyMjEzOSwxNDEwNDQsMTYzMTE5LDE0Nzg3NSwxNjMxODcsMTU5NDQwLDE2MDQzOCwzNzIzMiwxMzU2NDEsMzczODQsMTQ2Njg0LDE3MzczNywxMzQ4MjgsMTM0OTA1LDI5Mjg2LDEzODQwMiwxODI1NCwx''@;'; + put 'put ''NTE0OTAsMTYzODMzLDEzNTE0NywxNjYzNCw0MDAyOSwyNTg4NywxNDI3NTIsMTg2NzUsMTQ5NDcyLDE3MTM4OCwxMzUxNDgsMTM0NjY2LDI0Njc0LDE2MTE4NywxMzUxNDksbnVsbCwxNTU3MjAsMTM1NTU5LDI5MDkxLDMyMzk4LDQwMjcyLDE5OTk0LDE5OTcyLDEzNjg3LDIzMzA5LDI3ODI2''@;'; + put 'put ''LDIxMzUxLDEzOTk2LDE0ODEyLDIxMzczLDEzOTg5LDE0OTAxNiwyMjY4MiwxNTAzODIsMzMzMjUsMjE1NzksMjI0NDIsMTU0MjYxLDEzMzQ5NyxudWxsLDE0OTMwLDE0MDM4OSwyOTU1NiwxNzE2OTIsMTk3MjEsMzk5MTcsMTQ2Njg2LDE3MTgyNCwxOTU0NywxNTE0NjUsMTY5Mzc0LDE3MTk5''@;'; + put 'put ''OCwzMzg4NCwxNDY4NzAsMTYwNDM0LDE1NzYxOSwxNDUxODQsMjUzOTAsMzIwMzcsMTQ3MTkxLDE0Njk4OCwxNDg5MCwzNjg3MiwyMTE5NiwxNTk4OCwxMzk0NiwxNzg5NywxMzIyMzgsMzAyNzIsMjMyODAsMTM0ODM4LDMwODQyLDE2MzYzMCwyMjY5NSwxNjU3NSwyMjE0MCwzOTgxOSwyMzky''@;'; + put 'put ''NCwzMDI5MiwxNzMxMDgsNDA1ODEsMTk2ODEsMzAyMDEsMTQzMzEsMjQ4NTcsMTQzNTc4LDE0ODQ2NixudWxsLDIyMTA5LDEzNTg0OSwyMjQzOSwxNDk4NTksMTcxNTI2LDIxMDQ0LDE1OTkxOCwxMzc0MSwyNzcyMiw0MDMxNiwzMTgzMCwzOTczNywyMjQ5NCwxMzcwNjgsMjM2MzUsMjU4MTEs''@;'; + put 'put ''MTY5MTY4LDE1NjQ2OSwxNjAxMDAsMzQ0NzcsMTM0NDQwLDE1OTAxMCwxNTAyNDIsMTM0NTEzLG51bGwsMjA5OTAsMTM5MDIzLDIzOTUwLDM4NjU5LDEzODcwNSw0MDU3NywzNjk0MCwzMTUxOSwzOTY4MiwyMzc2MSwzMTY1MSwyNTE5MiwyNTM5NywzOTY3OSwzMTY5NSwzOTcyMiwzMTg3MCwz''@;'; + put 'put ''OTcyNiwzMTgxMCwzMTg3OCwzOTk1NywzMTc0MCwzOTY4OSw0MDcyNywzOTk2MywxNDk4MjIsNDA3OTQsMjE4NzUsMjM0OTEsMjA0NzcsNDA2MDAsMjA0NjYsMjEwODgsMTU4NzgsMjEyMDEsMjIzNzUsMjA1NjYsMjI5NjcsMjQwODIsMzg4NTYsNDAzNjMsMzY3MDAsMjE2MDksMzg4MzYsMzky''@;'; + put 'put ''MzIsMzg4NDIsMjEyOTIsMjQ4ODAsMjY5MjQsMjE0NjYsMzk5NDYsNDAxOTQsMTk1MTUsMzg0NjUsMjcwMDgsMjA2NDYsMzAwMjIsMTM3MDY5LDM5Mzg2LDIxMTA3LG51bGwsMzcyMDksMzg1MjksMzcyMTIsbnVsbCwzNzIwMSwxNjc1NzUsMjU0NzEsMTU5MDExLDI3MzM4LDIyMDMzLDM3MjYy''@;'; + put 'put ''LDMwMDc0LDI1MjIxLDEzMjA5MiwyOTUxOSwzMTg1NiwxNTQ2NTcsMTQ2Njg1LG51bGwsMTQ5Nzg1LDMwNDIyLDM5ODM3LDIwMDEwLDEzNDM1NiwzMzcyNiwzNDg4MixudWxsLDIzNjI2LDI3MDcyLDIwNzE3LDIyMzk0LDIxMDIzLDI0MDUzLDIwMTc0LDI3Njk3LDEzMTU3MCwyMDI4MSwyMTY2''@;'; + put 'put ''MCwyMTcyMiwyMTE0NiwzNjIyNiwxMzgyMiwyNDMzMiwxMzgxMSxudWxsLDI3NDc0LDM3MjQ0LDQwODY5LDM5ODMxLDM4OTU4LDM5MDkyLDM5NjEwLDQwNjE2LDQwNTgwLDI5MDUwLDMxNTA4LG51bGwsMjc2NDIsMzQ4NDAsMzI2MzIsbnVsbCwyMjA0OCwxNzM2NDIsMzY0NzEsNDA3ODcsbnVs''@;'; + put 'put ''bCwzNjMwOCwzNjQzMSw0MDQ3NiwzNjM1MywyNTIxOCwxNjQ3MzMsMzYzOTIsMzY0NjksMzE0NDMsMTUwMTM1LDMxMjk0LDMwOTM2LDI3ODgyLDM1NDMxLDMwMjE1LDE2NjQ5MCw0MDc0MiwyNzg1NCwzNDc3NCwzMDE0NywxNzI3MjIsMzA4MDMsMTk0NjI0LDM2MTA4LDI5NDEwLDI5NTUzLDM1''@;'; + put 'put ''NjI5LDI5NDQyLDI5OTM3LDM2MDc1LDE1MDIwMywzNDM1MSwyNDUwNiwzNDk3NiwxNzU5MSxudWxsLDEzNzI3NSwxNTkyMzcsbnVsbCwzNTQ1NCwxNDA1NzEsbnVsbCwyNDgyOSwzMDMxMSwzOTYzOSw0MDI2MCwzNzc0MiwzOTgyMywzNDgwNSxudWxsLDM0ODMxLDM2MDg3LDI5NDg0LDM4Njg5''@;'; + put 'put ''LDM5ODU2LDEzNzgyLDI5MzYyLDE5NDYzLDMxODI1LDM5MjQyLDE1NTk5MywyNDkyMSwxOTQ2MCw0MDU5OCwyNDk1NyxudWxsLDIyMzY3LDI0OTQzLDI1MjU0LDI1MTQ1LDI1Mjk0LDE0OTQwLDI1MDU4LDIxNDE4LDE0NDM3MywyNTQ0NCwyNjYyNiwxMzc3OCwyMzg5NSwxNjY4NTAsMzY4MjYs''@;'; + put 'put ''MTY3NDgxLG51bGwsMjA2OTcsMTM4NTY2LDMwOTgyLDIxMjk4LDM4NDU2LDEzNDk3MSwxNjQ4NSxudWxsLDMwNzE4LG51bGwsMzE5MzgsMTU1NDE4LDMxOTYyLDMxMjc3LDMyODcwLDMyODY3LDMyMDc3LDI5OTU3LDI5OTM4LDM1MjIwLDMzMzA2LDI2MzgwLDMyODY2LDE2MDkwMiwzMjg1OSwy''@;'; + put 'put ''OTkzNiwzMzAyNywzMDUwMCwzNTIwOSwxNTc2NDQsMzAwMzUsMTU5NDQxLDM0NzI5LDM0NzY2LDMzMjI0LDM0NzAwLDM1NDAxLDM2MDEzLDM1NjUxLDMwNTA3LDI5OTQ0LDM0MDEwLDEzODc3LDI3MDU4LDM2MjYyLG51bGwsMzUyNDEsMjk4MDAsMjgwODksMzQ3NTMsMTQ3NDczLDI5OTI3LDE1''@;'; + put 'put ''ODM1LDI5MDQ2LDI0NzQwLDI0OTg4LDE1NTY5LDI5MDI2LDI0Njk1LG51bGwsMzI2MjUsMTY2NzAxLDI5MjY0LDI0ODA5LDE5MzI2LDIxMDI0LDE1Mzg0LDE0NjYzMSwxNTUzNTEsMTYxMzY2LDE1Mjg4MSwxMzc1NDAsMTM1OTM0LDE3MDI0MywxNTkxOTYsMTU5OTE3LDIzNzQ1LDE1NjA3Nywx''@;'; + put 'put ''NjY0MTUsMTQ1MDE1LDEzMTMxMCwxNTc3NjYsMTUxMzEwLDE3NzYyLDIzMzI3LDE1NjQ5Miw0MDc4NCw0MDYxNCwxNTYyNjcsMTIyODgsNjUyOTIsMTIyODksMTIyOTAsNjUyOTQsODIzMSw2NTMwNyw2NTMwNiw2NTMxMSw2NTI4MSw2NTA3Miw4MjMwLDgyMjksNjUxMDQsNjUxMDUsNjUxMDYs''@;'; + put 'put ''MTgzLDY1MTA4LDY1MTA5LDY1MTEwLDY1MTExLDY1MzcyLDgyMTEsNjUwNzMsODIxMiw2NTA3NSw5NTg4LDY1MDc2LDY1MTAzLDY1Mjg4LDY1Mjg5LDY1MDc3LDY1MDc4LDY1MzcxLDY1MzczLDY1MDc5LDY1MDgwLDEyMzA4LDEyMzA5LDY1MDgxLDY1MDgyLDEyMzA0LDEyMzA1LDY1MDgzLDY1''@;'; + put 'put ''MDg0LDEyMjk4LDEyMjk5LDY1MDg1LDY1MDg2LDEyMjk2LDEyMjk3LDY1MDg3LDY1MDg4LDEyMzAwLDEyMzAxLDY1MDg5LDY1MDkwLDEyMzAyLDEyMzAzLDY1MDkxLDY1MDkyLDY1MTEzLDY1MTE0LDY1MTE1LDY1MTE2LDY1MTE3LDY1MTE4LDgyMTYsODIxNyw4MjIwLDgyMjEsMTIzMTcsMTIz''@;'; + put 'put ''MTgsODI0NSw4MjQyLDY1MjgzLDY1Mjg2LDY1MjkwLDgyNTEsMTY3LDEyMjkxLDk2NzUsOTY3OSw5NjUxLDk2NTAsOTY3OCw5NzM0LDk3MzMsOTY3MSw5NjcwLDk2MzMsOTYzMiw5NjYxLDk2NjAsMTI5NjMsODQ1MywxNzUsNjU1MDcsNjUzNDMsNzE3LDY1MDk3LDY1MDk4LDY1MTAxLDY1MTAy''@;'; + put 'put ''LDY1MDk5LDY1MTAwLDY1MTE5LDY1MTIwLDY1MTIxLDY1MjkxLDY1MjkzLDIxNSwyNDcsMTc3LDg3MzAsNjUzMDgsNjUzMTAsNjUzMDksODgwNiw4ODA3LDg4MDAsODczNCw4Nzg2LDg4MDEsNjUxMjIsNjUxMjMsNjUxMjQsNjUxMjUsNjUxMjYsNjUzNzQsODc0NSw4NzQ2LDg4NjksODczNiw4''@;'; + put 'put ''NzM1LDg4OTUsMTMyNjYsMTMyNjUsODc0Nyw4NzUwLDg3NTcsODc1Niw5NzkyLDk3OTQsODg1Myw4ODU3LDg1OTMsODU5NSw4NTkyLDg1OTQsODU5OCw4NTk5LDg2MDEsODYwMCw4NzQxLDg3MzksNjUyOTUsNjUzNDAsODcyNSw2NTEyOCw2NTI4NCw2NTUwOSwxMjMwNiw2NTUwNCw2NTUwNSw2''@;'; + put 'put ''NTI4NSw2NTMxMiw4NDUxLDg0NTcsNjUxMjksNjUxMzAsNjUxMzEsMTMyNjksMTMyMTIsMTMyMTMsMTMyMTQsMTMyNjIsMTMyMTcsMTMxOTgsMTMxOTksMTMyNTIsMTc2LDIwODI1LDIwODI3LDIwODMwLDIwODI5LDIwODMzLDIwODM1LDIxOTkxLDI5OTI5LDMxOTUwLDk2MDEsOTYwMiw5NjAz''@;'; + put 'put ''LDk2MDQsOTYwNSw5NjA2LDk2MDcsOTYwOCw5NjE1LDk2MTQsOTYxMyw5NjEyLDk2MTEsOTYxMCw5NjA5LDk1MzIsOTUyNCw5NTE2LDk1MDgsOTUwMCw5NjIwLDk0NzIsOTQ3NCw5NjIxLDk0ODQsOTQ4OCw5NDkyLDk0OTYsOTU4MSw5NTgyLDk1ODQsOTU4Myw5NTUyLDk1NjYsOTU3OCw5NTY5''@;'; + put 'put ''LDk2OTgsOTY5OSw5NzAxLDk3MDAsOTU4NSw5NTg2LDk1ODcsNjUyOTYsNjUyOTcsNjUyOTgsNjUyOTksNjUzMDAsNjUzMDEsNjUzMDIsNjUzMDMsNjUzMDQsNjUzMDUsODU0NCw4NTQ1LDg1NDYsODU0Nyw4NTQ4LDg1NDksODU1MCw4NTUxLDg1NTIsODU1MywxMjMyMSwxMjMyMiwxMjMyMywx''@;'; + put 'put ''MjMyNCwxMjMyNSwxMjMyNiwxMjMyNywxMjMyOCwxMjMyOSwyMTMxMywyMTMxNiwyMTMxNyw2NTMxMyw2NTMxNCw2NTMxNSw2NTMxNiw2NTMxNyw2NTMxOCw2NTMxOSw2NTMyMCw2NTMyMSw2NTMyMiw2NTMyMyw2NTMyNCw2NTMyNSw2NTMyNiw2NTMyNyw2NTMyOCw2NTMyOSw2NTMzMCw2NTMz''@;'; + put 'put ''MSw2NTMzMiw2NTMzMyw2NTMzNCw2NTMzNSw2NTMzNiw2NTMzNyw2NTMzOCw2NTM0NSw2NTM0Niw2NTM0Nyw2NTM0OCw2NTM0OSw2NTM1MCw2NTM1MSw2NTM1Miw2NTM1Myw2NTM1NCw2NTM1NSw2NTM1Niw2NTM1Nyw2NTM1OCw2NTM1OSw2NTM2MCw2NTM2MSw2NTM2Miw2NTM2Myw2NTM2NCw2''@;'; + put 'put ''NTM2NSw2NTM2Niw2NTM2Nyw2NTM2OCw2NTM2OSw2NTM3MCw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1''@;'; + put 'put ''Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSwxMjU0OSwxMjU1MCwxMjU1MSwxMjU1MiwxMjU1MywxMjU1NCwxMjU1NSwxMjU1NiwxMjU1NywxMjU1OCwxMjU1OSwxMjU2MCwxMjU2MSwxMjU2MiwxMjU2MywxMjU2NCwxMjU2NSwx''@;'; + put 'put ''MjU2NiwxMjU2NywxMjU2OCwxMjU2OSwxMjU3MCwxMjU3MSwxMjU3MiwxMjU3MywxMjU3NCwxMjU3NSwxMjU3NiwxMjU3NywxMjU3OCwxMjU3OSwxMjU4MCwxMjU4MSwxMjU4MiwxMjU4MywxMjU4NCwxMjU4NSw3MjksNzEzLDcxNCw3MTEsNzE1LDkyMTYsOTIxNyw5MjE4LDkyMTksOTIyMCw5''@;'; + put 'put ''MjIxLDkyMjIsOTIyMyw5MjI0LDkyMjUsOTIyNiw5MjI3LDkyMjgsOTIyOSw5MjMwLDkyMzEsOTIzMiw5MjMzLDkyMzQsOTIzNSw5MjM2LDkyMzcsOTIzOCw5MjM5LDkyNDAsOTI0MSw5MjQyLDkyNDMsOTI0NCw5MjQ1LDkyNDYsOTI0Nyw5MjQ5LDgzNjQsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE5OTY4LDIwMDU3LDE5OTY5LDE5OTcxLDIwMDM1LDIwMDYxLDIwMTAy''@;'; + put 'put ''LDIwMTA4LDIwMTU0LDIwNzk5LDIwODM3LDIwODQzLDIwOTYwLDIwOTkyLDIwOTkzLDIxMTQ3LDIxMjY5LDIxMzEzLDIxMzQwLDIxNDQ4LDE5OTc3LDE5OTc5LDE5OTc2LDE5OTc4LDIwMDExLDIwMDI0LDIwOTYxLDIwMDM3LDIwMDQwLDIwMDYzLDIwMDYyLDIwMTEwLDIwMTI5LDIwODAwLDIw''@;'; + put 'put ''OTk1LDIxMjQyLDIxMzE1LDIxNDQ5LDIxNDc1LDIyMzAzLDIyNzYzLDIyODA1LDIyODIzLDIyODk5LDIzMzc2LDIzMzc3LDIzMzc5LDIzNTQ0LDIzNTY3LDIzNTg2LDIzNjA4LDIzNjY1LDI0MDI5LDI0MDM3LDI0MDQ5LDI0MDUwLDI0MDUxLDI0MDYyLDI0MTc4LDI0MzE4LDI0MzMxLDI0MzM5''@;'; + put 'put ''LDI1MTY1LDE5OTg1LDE5OTg0LDE5OTgxLDIwMDEzLDIwMDE2LDIwMDI1LDIwMDQzLDIzNjA5LDIwMTA0LDIwMTEzLDIwMTE3LDIwMTE0LDIwMTE2LDIwMTMwLDIwMTYxLDIwMTYwLDIwMTYzLDIwMTY2LDIwMTY3LDIwMTczLDIwMTcwLDIwMTcxLDIwMTY0LDIwODAzLDIwODAxLDIwODM5LDIw''@;'; + put 'put ''ODQ1LDIwODQ2LDIwODQ0LDIwODg3LDIwOTgyLDIwOTk4LDIwOTk5LDIxZTMsMjEyNDMsMjEyNDYsMjEyNDcsMjEyNzAsMjEzMDUsMjEzMjAsMjEzMTksMjEzMTcsMjEzNDIsMjEzODAsMjE0NTEsMjE0NTAsMjE0NTMsMjI3NjQsMjI4MjUsMjI4MjcsMjI4MjYsMjI4MjksMjMzODAsMjM1Njks''@;'; + put 'put ''MjM1ODgsMjM2MTAsMjM2NjMsMjQwNTIsMjQxODcsMjQzMTksMjQzNDAsMjQzNDEsMjQ1MTUsMjUwOTYsMjUxNDIsMjUxNjMsMjUxNjYsMjU5MDMsMjU5OTEsMjYwMDcsMjYwMjAsMjYwNDEsMjYwODUsMjYzNTIsMjYzNzYsMjY0MDgsMjc0MjQsMjc0OTAsMjc1MTMsMjc1OTUsMjc2MDQsMjc2''@;'; + put 'put ''MTEsMjc2NjMsMjc3MDAsMjg3NzksMjkyMjYsMjkyMzgsMjkyNDMsMjkyNTUsMjkyNzMsMjkyNzUsMjkzNTYsMjk1NzksMTk5OTMsMTk5OTAsMTk5ODksMTk5ODgsMTk5OTIsMjAwMjcsMjAwNDUsMjAwNDcsMjAwNDYsMjAxOTcsMjAxODQsMjAxODAsMjAxODEsMjAxODIsMjAxODMsMjAxOTUs''@;'; + put 'put ''MjAxOTYsMjAxODUsMjAxOTAsMjA4MDUsMjA4MDQsMjA4NzMsMjA4NzQsMjA5MDgsMjA5ODUsMjA5ODYsMjA5ODQsMjEwMDIsMjExNTIsMjExNTEsMjEyNTMsMjEyNTQsMjEyNzEsMjEyNzcsMjAxOTEsMjEzMjIsMjEzMjEsMjEzNDUsMjEzNDQsMjEzNTksMjEzNTgsMjE0MzUsMjE0ODcsMjE0''@;'; + put 'put ''NzYsMjE0OTEsMjE0ODQsMjE0ODYsMjE0ODEsMjE0ODAsMjE1MDAsMjE0OTYsMjE0OTMsMjE0ODMsMjE0NzgsMjE0ODIsMjE0OTAsMjE0ODksMjE0ODgsMjE0NzcsMjE0ODUsMjE0OTksMjIyMzUsMjIyMzQsMjI4MDYsMjI4MzAsMjI4MzMsMjI5MDAsMjI5MDIsMjMzODEsMjM0MjcsMjM2MTIs''@;'; + put 'put ''MjQwNDAsMjQwMzksMjQwMzgsMjQwNjYsMjQwNjcsMjQxNzksMjQxODgsMjQzMjEsMjQzNDQsMjQzNDMsMjQ1MTcsMjUwOTgsMjUxNzEsMjUxNzIsMjUxNzAsMjUxNjksMjYwMjEsMjYwODYsMjY0MTQsMjY0MTIsMjY0MTAsMjY0MTEsMjY0MTMsMjc0OTEsMjc1OTcsMjc2NjUsMjc2NjQsMjc3''@;'; + put 'put ''MDQsMjc3MTMsMjc3MTIsMjc3MTAsMjkzNTksMjk1NzIsMjk1NzcsMjk5MTYsMjk5MjYsMjk5NzYsMjk5ODMsMjk5OTIsMjk5OTMsM2U0LDMwMDAxLDMwMDAyLDMwMDAzLDMwMDkxLDMwMzMzLDMwMzgyLDMwMzk5LDMwNDQ2LDMwNjgzLDMwNjkwLDMwNzA3LDMxMDM0LDMxMTY2LDMxMzQ4LDMx''@;'; + put 'put ''NDM1LDE5OTk4LDE5OTk5LDIwMDUwLDIwMDUxLDIwMDczLDIwMTIxLDIwMTMyLDIwMTM0LDIwMTMzLDIwMjIzLDIwMjMzLDIwMjQ5LDIwMjM0LDIwMjQ1LDIwMjM3LDIwMjQwLDIwMjQxLDIwMjM5LDIwMjEwLDIwMjE0LDIwMjE5LDIwMjA4LDIwMjExLDIwMjIxLDIwMjI1LDIwMjM1LDIwODA5''@;'; + put 'put ''LDIwODA3LDIwODA2LDIwODA4LDIwODQwLDIwODQ5LDIwODc3LDIwOTEyLDIxMDE1LDIxMDA5LDIxMDEwLDIxMDA2LDIxMDE0LDIxMTU1LDIxMjU2LDIxMjgxLDIxMjgwLDIxMzYwLDIxMzYxLDIxNTEzLDIxNTE5LDIxNTE2LDIxNTE0LDIxNTIwLDIxNTA1LDIxNTE1LDIxNTA4LDIxNTIxLDIx''@;'; + put 'put ''NTE3LDIxNTEyLDIxNTA3LDIxNTE4LDIxNTEwLDIxNTIyLDIyMjQwLDIyMjM4LDIyMjM3LDIyMzIzLDIyMzIwLDIyMzEyLDIyMzE3LDIyMzE2LDIyMzE5LDIyMzEzLDIyODA5LDIyODEwLDIyODM5LDIyODQwLDIyOTE2LDIyOTA0LDIyOTE1LDIyOTA5LDIyOTA1LDIyOTE0LDIyOTEzLDIzMzgz''@;'; + put 'put ''LDIzMzg0LDIzNDMxLDIzNDMyLDIzNDI5LDIzNDMzLDIzNTQ2LDIzNTc0LDIzNjczLDI0MDMwLDI0MDcwLDI0MTgyLDI0MTgwLDI0MzM1LDI0MzQ3LDI0NTM3LDI0NTM0LDI1MTAyLDI1MTAwLDI1MTAxLDI1MTA0LDI1MTg3LDI1MTc5LDI1MTc2LDI1OTEwLDI2MDg5LDI2MDg4LDI2MDkyLDI2''@;'; + put 'put ''MDkzLDI2MzU0LDI2MzU1LDI2Mzc3LDI2NDI5LDI2NDIwLDI2NDE3LDI2NDIxLDI3NDI1LDI3NDkyLDI3NTE1LDI3NjcwLDI3NzQxLDI3NzM1LDI3NzM3LDI3NzQzLDI3NzQ0LDI3NzI4LDI3NzMzLDI3NzQ1LDI3NzM5LDI3NzI1LDI3NzI2LDI4Nzg0LDI5Mjc5LDI5Mjc3LDMwMzM0LDMxNDgx''@;'; + put 'put ''LDMxODU5LDMxOTkyLDMyNTY2LDMyNjUwLDMyNzAxLDMyNzY5LDMyNzcxLDMyNzgwLDMyNzg2LDMyODE5LDMyODk1LDMyOTA1LDMyOTA3LDMyOTA4LDMzMjUxLDMzMjU4LDMzMjY3LDMzMjc2LDMzMjkyLDMzMzA3LDMzMzExLDMzMzkwLDMzMzk0LDMzNDA2LDM0NDExLDM0ODgwLDM0ODkyLDM0''@;'; + put 'put ''OTE1LDM1MTk5LDM4NDMzLDIwMDE4LDIwMTM2LDIwMzAxLDIwMzAzLDIwMjk1LDIwMzExLDIwMzE4LDIwMjc2LDIwMzE1LDIwMzA5LDIwMjcyLDIwMzA0LDIwMzA1LDIwMjg1LDIwMjgyLDIwMjgwLDIwMjkxLDIwMzA4LDIwMjg0LDIwMjk0LDIwMzIzLDIwMzE2LDIwMzIwLDIwMjcxLDIwMzAy''@;'; + put 'put ''LDIwMjc4LDIwMzEzLDIwMzE3LDIwMjk2LDIwMzE0LDIwODEyLDIwODExLDIwODEzLDIwODUzLDIwOTE4LDIwOTE5LDIxMDI5LDIxMDI4LDIxMDMzLDIxMDM0LDIxMDMyLDIxMTYzLDIxMTYxLDIxMTYyLDIxMTY0LDIxMjgzLDIxMzYzLDIxMzY1LDIxNTMzLDIxNTQ5LDIxNTM0LDIxNTY2LDIx''@;'; + put 'put ''NTQyLDIxNTgyLDIxNTQzLDIxNTc0LDIxNTcxLDIxNTU1LDIxNTc2LDIxNTcwLDIxNTMxLDIxNTQ1LDIxNTc4LDIxNTYxLDIxNTYzLDIxNTYwLDIxNTUwLDIxNTU3LDIxNTU4LDIxNTM2LDIxNTY0LDIxNTY4LDIxNTUzLDIxNTQ3LDIxNTM1LDIxNTQ4LDIyMjUwLDIyMjU2LDIyMjQ0LDIyMjUx''@;'; + put 'put ''LDIyMzQ2LDIyMzUzLDIyMzM2LDIyMzQ5LDIyMzQzLDIyMzUwLDIyMzM0LDIyMzUyLDIyMzUxLDIyMzMxLDIyNzY3LDIyODQ2LDIyOTQxLDIyOTMwLDIyOTUyLDIyOTQyLDIyOTQ3LDIyOTM3LDIyOTM0LDIyOTI1LDIyOTQ4LDIyOTMxLDIyOTIyLDIyOTQ5LDIzMzg5LDIzMzg4LDIzMzg2LDIz''@;'; + put 'put ''Mzg3LDIzNDM2LDIzNDM1LDIzNDM5LDIzNTk2LDIzNjE2LDIzNjE3LDIzNjE1LDIzNjE0LDIzNjk2LDIzNjk3LDIzNzAwLDIzNjkyLDI0MDQzLDI0MDc2LDI0MjA3LDI0MTk5LDI0MjAyLDI0MzExLDI0MzI0LDI0MzUxLDI0NDIwLDI0NDE4LDI0NDM5LDI0NDQxLDI0NTM2LDI0NTI0LDI0NTM1''@;'; + put 'put ''LDI0NTI1LDI0NTYxLDI0NTU1LDI0NTY4LDI0NTU0LDI1MTA2LDI1MTA1LDI1MjIwLDI1MjM5LDI1MjM4LDI1MjE2LDI1MjA2LDI1MjI1LDI1MTk3LDI1MjI2LDI1MjEyLDI1MjE0LDI1MjA5LDI1MjAzLDI1MjM0LDI1MTk5LDI1MjQwLDI1MTk4LDI1MjM3LDI1MjM1LDI1MjMzLDI1MjIyLDI1''@;'; + put 'put ''OTEzLDI1OTE1LDI1OTEyLDI2MDk3LDI2MzU2LDI2NDYzLDI2NDQ2LDI2NDQ3LDI2NDQ4LDI2NDQ5LDI2NDYwLDI2NDU0LDI2NDYyLDI2NDQxLDI2NDM4LDI2NDY0LDI2NDUxLDI2NDU1LDI3NDkzLDI3NTk5LDI3NzE0LDI3NzQyLDI3ODAxLDI3Nzc3LDI3Nzg0LDI3Nzg1LDI3NzgxLDI3ODAz''@;'; + put 'put ''LDI3NzU0LDI3NzcwLDI3NzkyLDI3NzYwLDI3Nzg4LDI3NzUyLDI3Nzk4LDI3Nzk0LDI3NzczLDI3Nzc5LDI3NzYyLDI3Nzc0LDI3NzY0LDI3NzgyLDI3NzY2LDI3Nzg5LDI3Nzk2LDI3ODAwLDI3Nzc4LDI4NzkwLDI4Nzk2LDI4Nzk3LDI4NzkyLDI5MjgyLDI5MjgxLDI5MjgwLDI5MzgwLDI5''@;'; + put 'put ''Mzc4LDI5NTkwLDI5OTk2LDI5OTk1LDMwMDA3LDMwMDA4LDMwMzM4LDMwNDQ3LDMwNjkxLDMxMTY5LDMxMTY4LDMxMTY3LDMxMzUwLDMxOTk1LDMyNTk3LDMyOTE4LDMyOTE1LDMyOTI1LDMyOTIwLDMyOTIzLDMyOTIyLDMyOTQ2LDMzMzkxLDMzNDI2LDMzNDE5LDMzNDIxLDM1MjExLDM1Mjgy''@;'; + put 'put ''LDM1MzI4LDM1ODk1LDM1OTEwLDM1OTI1LDM1OTk3LDM2MTk2LDM2MjA4LDM2Mjc1LDM2NTIzLDM2NTU0LDM2NzYzLDM2Nzg0LDM2ODAyLDM2ODA2LDM2ODA1LDM2ODA0LDI0MDMzLDM3MDA5LDM3MDI2LDM3MDM0LDM3MDMwLDM3MDI3LDM3MTkzLDM3MzE4LDM3MzI0LDM4NDUwLDM4NDQ2LDM4''@;'; + put 'put ''NDQ5LDM4NDQyLDM4NDQ0LDIwMDA2LDIwMDU0LDIwMDgzLDIwMTA3LDIwMTIzLDIwMTI2LDIwMTM5LDIwMTQwLDIwMzM1LDIwMzgxLDIwMzY1LDIwMzM5LDIwMzUxLDIwMzMyLDIwMzc5LDIwMzYzLDIwMzU4LDIwMzU1LDIwMzM2LDIwMzQxLDIwMzYwLDIwMzI5LDIwMzQ3LDIwMzc0LDIwMzUw''@;'; + put 'put ''LDIwMzY3LDIwMzY5LDIwMzQ2LDIwODIwLDIwODE4LDIwODIxLDIwODQxLDIwODU1LDIwODU0LDIwODU2LDIwOTI1LDIwOTg5LDIxMDUxLDIxMDQ4LDIxMDQ3LDIxMDUwLDIxMDQwLDIxMDM4LDIxMDQ2LDIxMDU3LDIxMTgyLDIxMTc5LDIxMzMwLDIxMzMyLDIxMzMxLDIxMzI5LDIxMzUwLDIx''@;'; + put 'put ''MzY3LDIxMzY4LDIxMzY5LDIxNDYyLDIxNDYwLDIxNDYzLDIxNjE5LDIxNjIxLDIxNjU0LDIxNjI0LDIxNjUzLDIxNjMyLDIxNjI3LDIxNjIzLDIxNjM2LDIxNjUwLDIxNjM4LDIxNjI4LDIxNjQ4LDIxNjE3LDIxNjIyLDIxNjQ0LDIxNjU4LDIxNjAyLDIxNjA4LDIxNjQzLDIxNjI5LDIxNjQ2''@;'; + put 'put ''LDIyMjY2LDIyNDAzLDIyMzkxLDIyMzc4LDIyMzc3LDIyMzY5LDIyMzc0LDIyMzcyLDIyMzk2LDIyODEyLDIyODU3LDIyODU1LDIyODU2LDIyODUyLDIyODY4LDIyOTc0LDIyOTcxLDIyOTk2LDIyOTY5LDIyOTU4LDIyOTkzLDIyOTgyLDIyOTkyLDIyOTg5LDIyOTg3LDIyOTk1LDIyOTg2LDIy''@;'; + put 'put ''OTU5LDIyOTYzLDIyOTk0LDIyOTgxLDIzMzkxLDIzMzk2LDIzMzk1LDIzNDQ3LDIzNDUwLDIzNDQ4LDIzNDUyLDIzNDQ5LDIzNDUxLDIzNTc4LDIzNjI0LDIzNjIxLDIzNjIyLDIzNzM1LDIzNzEzLDIzNzM2LDIzNzIxLDIzNzIzLDIzNzI5LDIzNzMxLDI0MDg4LDI0MDkwLDI0MDg2LDI0MDg1''@;'; + put 'put ''LDI0MDkxLDI0MDgxLDI0MTg0LDI0MjE4LDI0MjE1LDI0MjIwLDI0MjEzLDI0MjE0LDI0MzEwLDI0MzU4LDI0MzU5LDI0MzYxLDI0NDQ4LDI0NDQ5LDI0NDQ3LDI0NDQ0LDI0NTQxLDI0NTQ0LDI0NTczLDI0NTY1LDI0NTc1LDI0NTkxLDI0NTk2LDI0NjIzLDI0NjI5LDI0NTk4LDI0NjE4LDI0''@;'; + put 'put ''NTk3LDI0NjA5LDI0NjE1LDI0NjE3LDI0NjE5LDI0NjAzLDI1MTEwLDI1MTA5LDI1MTUxLDI1MTUwLDI1MTUyLDI1MjE1LDI1Mjg5LDI1MjkyLDI1Mjg0LDI1Mjc5LDI1MjgyLDI1MjczLDI1Mjk4LDI1MzA3LDI1MjU5LDI1Mjk5LDI1MzAwLDI1MjkxLDI1Mjg4LDI1MjU2LDI1Mjc3LDI1Mjc2''@;'; + put 'put ''LDI1Mjk2LDI1MzA1LDI1Mjg3LDI1MjkzLDI1MjY5LDI1MzA2LDI1MjY1LDI1MzA0LDI1MzAyLDI1MzAzLDI1Mjg2LDI1MjYwLDI1Mjk0LDI1OTE4LDI2MDIzLDI2MDQ0LDI2MTA2LDI2MTMyLDI2MTMxLDI2MTI0LDI2MTE4LDI2MTE0LDI2MTI2LDI2MTEyLDI2MTI3LDI2MTMzLDI2MTIyLDI2''@;'; + put 'put ''MTE5LDI2MzgxLDI2Mzc5LDI2NDc3LDI2NTA3LDI2NTE3LDI2NDgxLDI2NTI0LDI2NDgzLDI2NDg3LDI2NTAzLDI2NTI1LDI2NTE5LDI2NDc5LDI2NDgwLDI2NDk1LDI2NTA1LDI2NDk0LDI2NTEyLDI2NDg1LDI2NTIyLDI2NTE1LDI2NDkyLDI2NDc0LDI2NDgyLDI3NDI3LDI3NDk0LDI3NDk1''@;'; + put 'put ''LDI3NTE5LDI3NjY3LDI3Njc1LDI3ODc1LDI3ODgwLDI3ODkxLDI3ODI1LDI3ODUyLDI3ODc3LDI3ODI3LDI3ODM3LDI3ODM4LDI3ODM2LDI3ODc0LDI3ODE5LDI3ODYxLDI3ODU5LDI3ODMyLDI3ODQ0LDI3ODMzLDI3ODQxLDI3ODIyLDI3ODYzLDI3ODQ1LDI3ODg5LDI3ODM5LDI3ODM1LDI3''@;'; + put 'put ''ODczLDI3ODY3LDI3ODUwLDI3ODIwLDI3ODg3LDI3ODY4LDI3ODYyLDI3ODcyLDI4ODIxLDI4ODE0LDI4ODE4LDI4ODEwLDI4ODI1LDI5MjI4LDI5MjI5LDI5MjQwLDI5MjU2LDI5Mjg3LDI5Mjg5LDI5Mzc2LDI5MzkwLDI5NDAxLDI5Mzk5LDI5MzkyLDI5NjA5LDI5NjA4LDI5NTk5LDI5NjEx''@;'; + put 'put ''LDI5NjA1LDMwMDEzLDMwMTA5LDMwMTA1LDMwMTA2LDMwMzQwLDMwNDAyLDMwNDUwLDMwNDUyLDMwNjkzLDMwNzE3LDMxMDM4LDMxMDQwLDMxMDQxLDMxMTc3LDMxMTc2LDMxMzU0LDMxMzUzLDMxNDgyLDMxOTk4LDMyNTk2LDMyNjUyLDMyNjUxLDMyNzczLDMyOTU0LDMyOTMzLDMyOTMwLDMy''@;'; + put 'put ''OTQ1LDMyOTI5LDMyOTM5LDMyOTM3LDMyOTQ4LDMyOTM4LDMyOTQzLDMzMjUzLDMzMjc4LDMzMjkzLDMzNDU5LDMzNDM3LDMzNDMzLDMzNDUzLDMzNDY5LDMzNDM5LDMzNDY1LDMzNDU3LDMzNDUyLDMzNDQ1LDMzNDU1LDMzNDY0LDMzNDQzLDMzNDU2LDMzNDcwLDMzNDYzLDM0MzgyLDM0NDE3''@;'; + put 'put ''LDIxMDIxLDM0OTIwLDM2NTU1LDM2ODE0LDM2ODIwLDM2ODE3LDM3MDQ1LDM3MDQ4LDM3MDQxLDM3MDQ2LDM3MzE5LDM3MzI5LDM4MjYzLDM4MjcyLDM4NDI4LDM4NDY0LDM4NDYzLDM4NDU5LDM4NDY4LDM4NDY2LDM4NTg1LDM4NjMyLDM4NzM4LDM4NzUwLDIwMTI3LDIwMTQxLDIwMTQyLDIw''@;'; + put 'put ''NDQ5LDIwNDA1LDIwMzk5LDIwNDE1LDIwNDQ4LDIwNDMzLDIwNDMxLDIwNDQ1LDIwNDE5LDIwNDA2LDIwNDQwLDIwNDQ3LDIwNDI2LDIwNDM5LDIwMzk4LDIwNDMyLDIwNDIwLDIwNDE4LDIwNDQyLDIwNDMwLDIwNDQ2LDIwNDA3LDIwODIzLDIwODgyLDIwODgxLDIwODk2LDIxMDcwLDIxMDU5''@;'; + put 'put ''LDIxMDY2LDIxMDY5LDIxMDY4LDIxMDY3LDIxMDYzLDIxMTkxLDIxMTkzLDIxMTg3LDIxMTg1LDIxMjYxLDIxMzM1LDIxMzcxLDIxNDAyLDIxNDY3LDIxNjc2LDIxNjk2LDIxNjcyLDIxNzEwLDIxNzA1LDIxNjg4LDIxNjcwLDIxNjgzLDIxNzAzLDIxNjk4LDIxNjkzLDIxNjc0LDIxNjk3LDIx''@;'; + put 'put ''NzAwLDIxNzA0LDIxNjc5LDIxNjc1LDIxNjgxLDIxNjkxLDIxNjczLDIxNjcxLDIxNjk1LDIyMjcxLDIyNDAyLDIyNDExLDIyNDMyLDIyNDM1LDIyNDM0LDIyNDc4LDIyNDQ2LDIyNDE5LDIyODY5LDIyODY1LDIyODYzLDIyODYyLDIyODY0LDIzMDA0LDIzZTMsMjMwMzksMjMwMTEsMjMwMTYs''@;'; + put 'put ''MjMwNDMsMjMwMTMsMjMwMTgsMjMwMDIsMjMwMTQsMjMwNDEsMjMwMzUsMjM0MDEsMjM0NTksMjM0NjIsMjM0NjAsMjM0NTgsMjM0NjEsMjM1NTMsMjM2MzAsMjM2MzEsMjM2MjksMjM2MjcsMjM3NjksMjM3NjIsMjQwNTUsMjQwOTMsMjQxMDEsMjQwOTUsMjQxODksMjQyMjQsMjQyMzAsMjQz''@;'; + put 'put ''MTQsMjQzMjgsMjQzNjUsMjQ0MjEsMjQ0NTYsMjQ0NTMsMjQ0NTgsMjQ0NTksMjQ0NTUsMjQ0NjAsMjQ0NTcsMjQ1OTQsMjQ2MDUsMjQ2MDgsMjQ2MTMsMjQ1OTAsMjQ2MTYsMjQ2NTMsMjQ2ODgsMjQ2ODAsMjQ2NzQsMjQ2NDYsMjQ2NDMsMjQ2ODQsMjQ2ODMsMjQ2ODIsMjQ2NzYsMjUxNTMs''@;'; + put 'put ''MjUzMDgsMjUzNjYsMjUzNTMsMjUzNDAsMjUzMjUsMjUzNDUsMjUzMjYsMjUzNDEsMjUzNTEsMjUzMjksMjUzMzUsMjUzMjcsMjUzMjQsMjUzNDIsMjUzMzIsMjUzNjEsMjUzNDYsMjU5MTksMjU5MjUsMjYwMjcsMjYwNDUsMjYwODIsMjYxNDksMjYxNTcsMjYxNDQsMjYxNTEsMjYxNTksMjYx''@;'; + put 'put ''NDMsMjYxNTIsMjYxNjEsMjYxNDgsMjYzNTksMjY2MjMsMjY1NzksMjY2MDksMjY1ODAsMjY1NzYsMjY2MDQsMjY1NTAsMjY1NDMsMjY2MTMsMjY2MDEsMjY2MDcsMjY1NjQsMjY1NzcsMjY1NDgsMjY1ODYsMjY1OTcsMjY1NTIsMjY1NzUsMjY1OTAsMjY2MTEsMjY1NDQsMjY1ODUsMjY1OTQs''@;'; + put 'put ''MjY1ODksMjY1NzgsMjc0OTgsMjc1MjMsMjc1MjYsMjc1NzMsMjc2MDIsMjc2MDcsMjc2NzksMjc4NDksMjc5MTUsMjc5NTQsMjc5NDYsMjc5NjksMjc5NDEsMjc5MTYsMjc5NTMsMjc5MzQsMjc5MjcsMjc5NjMsMjc5NjUsMjc5NjYsMjc5NTgsMjc5MzEsMjc4OTMsMjc5NjEsMjc5NDMsMjc5''@;'; + put 'put ''NjAsMjc5NDUsMjc5NTAsMjc5NTcsMjc5MTgsMjc5NDcsMjg4NDMsMjg4NTgsMjg4NTEsMjg4NDQsMjg4NDcsMjg4NDUsMjg4NTYsMjg4NDYsMjg4MzYsMjkyMzIsMjkyOTgsMjkyOTUsMjkzMDAsMjk0MTcsMjk0MDgsMjk0MDksMjk2MjMsMjk2NDIsMjk2MjcsMjk2MTgsMjk2NDUsMjk2MzIs''@;'; + put 'put ''Mjk2MTksMjk5NzgsMjk5OTcsMzAwMzEsMzAwMjgsMzAwMzAsMzAwMjcsMzAxMjMsMzAxMTYsMzAxMTcsMzAxMTQsMzAxMTUsMzAzMjgsMzAzNDIsMzAzNDMsMzAzNDQsMzA0MDgsMzA0MDYsMzA0MDMsMzA0MDUsMzA0NjUsMzA0NTcsMzA0NTYsMzA0NzMsMzA0NzUsMzA0NjIsMzA0NjAsMzA0''@;'; + put 'put ''NzEsMzA2ODQsMzA3MjIsMzA3NDAsMzA3MzIsMzA3MzMsMzEwNDYsMzEwNDksMzEwNDgsMzEwNDcsMzExNjEsMzExNjIsMzExODUsMzExODYsMzExNzksMzEzNTksMzEzNjEsMzE0ODcsMzE0ODUsMzE4NjksMzIwMDIsMzIwMDUsMzJlMywzMjAwOSwzMjAwNywzMjAwNCwzMjAwNiwzMjU2OCwz''@;'; + put 'put ''MjY1NCwzMjcwMywzMjc3MiwzMjc4NCwzMjc4MSwzMjc4NSwzMjgyMiwzMjk4MiwzMjk5NywzMjk4NiwzMjk2MywzMjk2NCwzMjk3MiwzMjk5MywzMjk4NywzMjk3NCwzMjk5MCwzMjk5NiwzMjk4OSwzMzI2OCwzMzMxNCwzMzUxMSwzMzUzOSwzMzU0MSwzMzUwNywzMzQ5OSwzMzUxMCwzMzU0''@;'; + put 'put ''MCwzMzUwOSwzMzUzOCwzMzU0NSwzMzQ5MCwzMzQ5NSwzMzUyMSwzMzUzNywzMzUwMCwzMzQ5MiwzMzQ4OSwzMzUwMiwzMzQ5MSwzMzUwMywzMzUxOSwzMzU0MiwzNDM4NCwzNDQyNSwzNDQyNywzNDQyNiwzNDg5MywzNDkyMywzNTIwMSwzNTI4NCwzNTMzNiwzNTMzMCwzNTMzMSwzNTk5OCwz''@;'; + put 'put ''NmUzLDM2MjEyLDM2MjExLDM2Mjc2LDM2NTU3LDM2NTU2LDM2ODQ4LDM2ODM4LDM2ODM0LDM2ODQyLDM2ODM3LDM2ODQ1LDM2ODQzLDM2ODM2LDM2ODQwLDM3MDY2LDM3MDcwLDM3MDU3LDM3MDU5LDM3MTk1LDM3MTk0LDM3MzI1LDM4Mjc0LDM4NDgwLDM4NDc1LDM4NDc2LDM4NDc3LDM4NzU0''@;'; + put 'put ''LDM4NzYxLDM4ODU5LDM4ODkzLDM4ODk5LDM4OTEzLDM5MDgwLDM5MTMxLDM5MTM1LDM5MzE4LDM5MzIxLDIwMDU2LDIwMTQ3LDIwNDkyLDIwNDkzLDIwNTE1LDIwNDYzLDIwNTE4LDIwNTE3LDIwNDcyLDIwNTIxLDIwNTAyLDIwNDg2LDIwNTQwLDIwNTExLDIwNTA2LDIwNDk4LDIwNDk3LDIw''@;'; + put 'put ''NDc0LDIwNDgwLDIwNTAwLDIwNTIwLDIwNDY1LDIwNTEzLDIwNDkxLDIwNTA1LDIwNTA0LDIwNDY3LDIwNDYyLDIwNTI1LDIwNTIyLDIwNDc4LDIwNTIzLDIwNDg5LDIwODYwLDIwOTAwLDIwOTAxLDIwODk4LDIwOTQxLDIwOTQwLDIwOTM0LDIwOTM5LDIxMDc4LDIxMDg0LDIxMDc2LDIxMDgz''@;'; + put 'put ''LDIxMDg1LDIxMjkwLDIxMzc1LDIxNDA3LDIxNDA1LDIxNDcxLDIxNzM2LDIxNzc2LDIxNzYxLDIxODE1LDIxNzU2LDIxNzMzLDIxNzQ2LDIxNzY2LDIxNzU0LDIxNzgwLDIxNzM3LDIxNzQxLDIxNzI5LDIxNzY5LDIxNzQyLDIxNzM4LDIxNzM0LDIxNzk5LDIxNzY3LDIxNzU3LDIxNzc1LDIy''@;'; + put 'put ''Mjc1LDIyMjc2LDIyNDY2LDIyNDg0LDIyNDc1LDIyNDY3LDIyNTM3LDIyNzk5LDIyODcxLDIyODcyLDIyODc0LDIzMDU3LDIzMDY0LDIzMDY4LDIzMDcxLDIzMDY3LDIzMDU5LDIzMDIwLDIzMDcyLDIzMDc1LDIzMDgxLDIzMDc3LDIzMDUyLDIzMDQ5LDIzNDAzLDIzNjQwLDIzNDcyLDIzNDc1''@;'; + put 'put ''LDIzNDc4LDIzNDc2LDIzNDcwLDIzNDc3LDIzNDgxLDIzNDgwLDIzNTU2LDIzNjMzLDIzNjM3LDIzNjMyLDIzNzg5LDIzODA1LDIzODAzLDIzNzg2LDIzNzg0LDIzNzkyLDIzNzk4LDIzODA5LDIzNzk2LDI0MDQ2LDI0MTA5LDI0MTA3LDI0MjM1LDI0MjM3LDI0MjMxLDI0MzY5LDI0NDY2LDI0''@;'; + put 'put ''NDY1LDI0NDY0LDI0NjY1LDI0Njc1LDI0Njc3LDI0NjU2LDI0NjYxLDI0Njg1LDI0NjgxLDI0Njg3LDI0NzA4LDI0NzM1LDI0NzMwLDI0NzE3LDI0NzI0LDI0NzE2LDI0NzA5LDI0NzI2LDI1MTU5LDI1MzMxLDI1MzUyLDI1MzQzLDI1NDIyLDI1NDA2LDI1MzkxLDI1NDI5LDI1NDEwLDI1NDE0''@;'; + put 'put ''LDI1NDIzLDI1NDE3LDI1NDAyLDI1NDI0LDI1NDA1LDI1Mzg2LDI1Mzg3LDI1Mzg0LDI1NDIxLDI1NDIwLDI1OTI4LDI1OTI5LDI2MDA5LDI2MDQ5LDI2MDUzLDI2MTc4LDI2MTg1LDI2MTkxLDI2MTc5LDI2MTk0LDI2MTg4LDI2MTgxLDI2MTc3LDI2MzYwLDI2Mzg4LDI2Mzg5LDI2MzkxLDI2''@;'; + put 'put ''NjU3LDI2NjgwLDI2Njk2LDI2Njk0LDI2NzA3LDI2NjgxLDI2NjkwLDI2NzA4LDI2NjY1LDI2ODAzLDI2NjQ3LDI2NzAwLDI2NzA1LDI2Njg1LDI2NjEyLDI2NzA0LDI2Njg4LDI2Njg0LDI2NjkxLDI2NjY2LDI2NjkzLDI2NjQzLDI2NjQ4LDI2Njg5LDI3NTMwLDI3NTI5LDI3NTc1LDI3Njgz''@;'; + put 'put ''LDI3Njg3LDI3Njg4LDI3Njg2LDI3Njg0LDI3ODg4LDI4MDEwLDI4MDUzLDI4MDQwLDI4MDM5LDI4MDA2LDI4MDI0LDI4MDIzLDI3OTkzLDI4MDUxLDI4MDEyLDI4MDQxLDI4MDE0LDI3OTk0LDI4MDIwLDI4MDA5LDI4MDQ0LDI4MDQyLDI4MDI1LDI4MDM3LDI4MDA1LDI4MDUyLDI4ODc0LDI4''@;'; + put 'put ''ODg4LDI4OTAwLDI4ODg5LDI4ODcyLDI4ODc5LDI5MjQxLDI5MzA1LDI5NDM2LDI5NDMzLDI5NDM3LDI5NDMyLDI5NDMxLDI5NTc0LDI5Njc3LDI5NzA1LDI5Njc4LDI5NjY0LDI5Njc0LDI5NjYyLDMwMDM2LDMwMDQ1LDMwMDQ0LDMwMDQyLDMwMDQxLDMwMTQyLDMwMTQ5LDMwMTUxLDMwMTMw''@;'; + put 'put ''LDMwMTMxLDMwMTQxLDMwMTQwLDMwMTM3LDMwMTQ2LDMwMTM2LDMwMzQ3LDMwMzg0LDMwNDEwLDMwNDEzLDMwNDE0LDMwNTA1LDMwNDk1LDMwNDk2LDMwNTA0LDMwNjk3LDMwNzY4LDMwNzU5LDMwNzc2LDMwNzQ5LDMwNzcyLDMwNzc1LDMwNzU3LDMwNzY1LDMwNzUyLDMwNzUxLDMwNzcwLDMx''@;'; + put 'put ''MDYxLDMxMDU2LDMxMDcyLDMxMDcxLDMxMDYyLDMxMDcwLDMxMDY5LDMxMDYzLDMxMDY2LDMxMjA0LDMxMjAzLDMxMjA3LDMxMTk5LDMxMjA2LDMxMjA5LDMxMTkyLDMxMzY0LDMxMzY4LDMxNDQ5LDMxNDk0LDMxNTA1LDMxODgxLDMyMDMzLDMyMDIzLDMyMDExLDMyMDEwLDMyMDMyLDMyMDM0''@;'; + put 'put ''LDMyMDIwLDMyMDE2LDMyMDIxLDMyMDI2LDMyMDI4LDMyMDEzLDMyMDI1LDMyMDI3LDMyNTcwLDMyNjA3LDMyNjYwLDMyNzA5LDMyNzA1LDMyNzc0LDMyNzkyLDMyNzg5LDMyNzkzLDMyNzkxLDMyODI5LDMyODMxLDMzMDA5LDMzMDI2LDMzMDA4LDMzMDI5LDMzMDA1LDMzMDEyLDMzMDMwLDMz''@;'; + put 'put ''MDE2LDMzMDExLDMzMDMyLDMzMDIxLDMzMDM0LDMzMDIwLDMzMDA3LDMzMjYxLDMzMjYwLDMzMjgwLDMzMjk2LDMzMzIyLDMzMzIzLDMzMzIwLDMzMzI0LDMzNDY3LDMzNTc5LDMzNjE4LDMzNjIwLDMzNjEwLDMzNTkyLDMzNjE2LDMzNjA5LDMzNTg5LDMzNTg4LDMzNjE1LDMzNTg2LDMzNTkz''@;'; + put 'put ''LDMzNTkwLDMzNTU5LDMzNjAwLDMzNTg1LDMzNTc2LDMzNjAzLDM0Mzg4LDM0NDQyLDM0NDc0LDM0NDUxLDM0NDY4LDM0NDczLDM0NDQ0LDM0NDY3LDM0NDYwLDM0OTI4LDM0OTM1LDM0OTQ1LDM0OTQ2LDM0OTQxLDM0OTM3LDM1MzUyLDM1MzQ0LDM1MzQyLDM1MzQwLDM1MzQ5LDM1MzM4LDM1''@;'; + put 'put ''MzUxLDM1MzQ3LDM1MzUwLDM1MzQzLDM1MzQ1LDM1OTEyLDM1OTYyLDM1OTYxLDM2MDAxLDM2MDAyLDM2MjE1LDM2NTI0LDM2NTYyLDM2NTY0LDM2NTU5LDM2Nzg1LDM2ODY1LDM2ODcwLDM2ODU1LDM2ODY0LDM2ODU4LDM2ODUyLDM2ODY3LDM2ODYxLDM2ODY5LDM2ODU2LDM3MDEzLDM3MDg5''@;'; + put 'put ''LDM3MDg1LDM3MDkwLDM3MjAyLDM3MTk3LDM3MTk2LDM3MzM2LDM3MzQxLDM3MzM1LDM3MzQwLDM3MzM3LDM4Mjc1LDM4NDk4LDM4NDk5LDM4NDk3LDM4NDkxLDM4NDkzLDM4NTAwLDM4NDg4LDM4NDk0LDM4NTg3LDM5MTM4LDM5MzQwLDM5NTkyLDM5NjQwLDM5NzE3LDM5NzMwLDM5NzQwLDIw''@;'; + put 'put ''MDk0LDIwNjAyLDIwNjA1LDIwNTcyLDIwNTUxLDIwNTQ3LDIwNTU2LDIwNTcwLDIwNTUzLDIwNTgxLDIwNTk4LDIwNTU4LDIwNTY1LDIwNTk3LDIwNTk2LDIwNTk5LDIwNTU5LDIwNDk1LDIwNTkxLDIwNTg5LDIwODI4LDIwODg1LDIwOTc2LDIxMDk4LDIxMTAzLDIxMjAyLDIxMjA5LDIxMjA4''@;'; + put 'put ''LDIxMjA1LDIxMjY0LDIxMjYzLDIxMjczLDIxMzExLDIxMzEyLDIxMzEwLDIxNDQzLDI2MzY0LDIxODMwLDIxODY2LDIxODYyLDIxODI4LDIxODU0LDIxODU3LDIxODI3LDIxODM0LDIxODA5LDIxODQ2LDIxODM5LDIxODQ1LDIxODA3LDIxODYwLDIxODE2LDIxODA2LDIxODUyLDIxODA0LDIx''@;'; + put 'put ''ODU5LDIxODExLDIxODI1LDIxODQ3LDIyMjgwLDIyMjgzLDIyMjgxLDIyNDk1LDIyNTMzLDIyNTM4LDIyNTM0LDIyNDk2LDIyNTAwLDIyNTIyLDIyNTMwLDIyNTgxLDIyNTE5LDIyNTIxLDIyODE2LDIyODgyLDIzMDk0LDIzMTA1LDIzMTEzLDIzMTQyLDIzMTQ2LDIzMTA0LDIzMTAwLDIzMTM4''@;'; + put 'put ''LDIzMTMwLDIzMTEwLDIzMTE0LDIzNDA4LDIzNDk1LDIzNDkzLDIzNDkyLDIzNDkwLDIzNDg3LDIzNDk0LDIzNTYxLDIzNTYwLDIzNTU5LDIzNjQ4LDIzNjQ0LDIzNjQ1LDIzODE1LDIzODE0LDIzODIyLDIzODM1LDIzODMwLDIzODQyLDIzODI1LDIzODQ5LDIzODI4LDIzODMzLDIzODQ0LDIz''@;'; + put 'put ''ODQ3LDIzODMxLDI0MDM0LDI0MTIwLDI0MTE4LDI0MTE1LDI0MTE5LDI0MjQ3LDI0MjQ4LDI0MjQ2LDI0MjQ1LDI0MjU0LDI0MzczLDI0Mzc1LDI0NDA3LDI0NDI4LDI0NDI1LDI0NDI3LDI0NDcxLDI0NDczLDI0NDc4LDI0NDcyLDI0NDgxLDI0NDgwLDI0NDc2LDI0NzAzLDI0NzM5LDI0NzEz''@;'; + put 'put ''LDI0NzM2LDI0NzQ0LDI0Nzc5LDI0NzU2LDI0ODA2LDI0NzY1LDI0NzczLDI0NzYzLDI0NzU3LDI0Nzk2LDI0NzY0LDI0NzkyLDI0Nzg5LDI0Nzc0LDI0Nzk5LDI0NzYwLDI0Nzk0LDI0Nzc1LDI1MTE0LDI1MTE1LDI1MTYwLDI1NTA0LDI1NTExLDI1NDU4LDI1NDk0LDI1NTA2LDI1NTA5LDI1''@;'; + put 'put ''NDYzLDI1NDQ3LDI1NDk2LDI1NTE0LDI1NDU3LDI1NTEzLDI1NDgxLDI1NDc1LDI1NDk5LDI1NDUxLDI1NTEyLDI1NDc2LDI1NDgwLDI1NDk3LDI1NTA1LDI1NTE2LDI1NDkwLDI1NDg3LDI1NDcyLDI1NDY3LDI1NDQ5LDI1NDQ4LDI1NDY2LDI1OTQ5LDI1OTQyLDI1OTM3LDI1OTQ1LDI1OTQz''@;'; + put 'put ''LDIxODU1LDI1OTM1LDI1OTQ0LDI1OTQxLDI1OTQwLDI2MDEyLDI2MDExLDI2MDI4LDI2MDYzLDI2MDU5LDI2MDYwLDI2MDYyLDI2MjA1LDI2MjAyLDI2MjEyLDI2MjE2LDI2MjE0LDI2MjA2LDI2MzYxLDIxMjA3LDI2Mzk1LDI2NzUzLDI2Nzk5LDI2Nzg2LDI2NzcxLDI2ODA1LDI2NzUxLDI2''@;'; + put 'put ''NzQyLDI2ODAxLDI2NzkxLDI2Nzc1LDI2ODAwLDI2NzU1LDI2ODIwLDI2Nzk3LDI2NzU4LDI2NzU3LDI2NzcyLDI2NzgxLDI2NzkyLDI2NzgzLDI2Nzg1LDI2NzU0LDI3NDQyLDI3NTc4LDI3NjI3LDI3NjI4LDI3NjkxLDI4MDQ2LDI4MDkyLDI4MTQ3LDI4MTIxLDI4MDgyLDI4MTI5LDI4MTA4''@;'; + put 'put ''LDI4MTMyLDI4MTU1LDI4MTU0LDI4MTY1LDI4MTAzLDI4MTA3LDI4MDc5LDI4MTEzLDI4MDc4LDI4MTI2LDI4MTUzLDI4MDg4LDI4MTUxLDI4MTQ5LDI4MTAxLDI4MTE0LDI4MTg2LDI4MDg1LDI4MTIyLDI4MTM5LDI4MTIwLDI4MTM4LDI4MTQ1LDI4MTQyLDI4MTM2LDI4MTAyLDI4MTAwLDI4''@;'; + put 'put ''MDc0LDI4MTQwLDI4MDk1LDI4MTM0LDI4OTIxLDI4OTM3LDI4OTM4LDI4OTI1LDI4OTExLDI5MjQ1LDI5MzA5LDI5MzEzLDI5NDY4LDI5NDY3LDI5NDYyLDI5NDU5LDI5NDY1LDI5NTc1LDI5NzAxLDI5NzA2LDI5Njk5LDI5NzAyLDI5Njk0LDI5NzA5LDI5OTIwLDI5OTQyLDI5OTQzLDI5OTgw''@;'; + put 'put ''LDI5OTg2LDMwMDUzLDMwMDU0LDMwMDUwLDMwMDY0LDMwMDk1LDMwMTY0LDMwMTY1LDMwMTMzLDMwMTU0LDMwMTU3LDMwMzUwLDMwNDIwLDMwNDE4LDMwNDI3LDMwNTE5LDMwNTI2LDMwNTI0LDMwNTE4LDMwNTIwLDMwNTIyLDMwODI3LDMwNzg3LDMwNzk4LDMxMDc3LDMxMDgwLDMxMDg1LDMx''@;'; + put 'put ''MjI3LDMxMzc4LDMxMzgxLDMxNTIwLDMxNTI4LDMxNTE1LDMxNTMyLDMxNTI2LDMxNTEzLDMxNTE4LDMxNTM0LDMxODkwLDMxODk1LDMxODkzLDMyMDcwLDMyMDY3LDMyMTEzLDMyMDQ2LDMyMDU3LDMyMDYwLDMyMDY0LDMyMDQ4LDMyMDUxLDMyMDY4LDMyMDQ3LDMyMDY2LDMyMDUwLDMyMDQ5''@;'; + put 'put ''LDMyNTczLDMyNjcwLDMyNjY2LDMyNzE2LDMyNzE4LDMyNzIyLDMyNzk2LDMyODQyLDMyODM4LDMzMDcxLDMzMDQ2LDMzMDU5LDMzMDY3LDMzMDY1LDMzMDcyLDMzMDYwLDMzMjgyLDMzMzMzLDMzMzM1LDMzMzM0LDMzMzM3LDMzNjc4LDMzNjk0LDMzNjg4LDMzNjU2LDMzNjk4LDMzNjg2LDMz''@;'; + put 'put ''NzI1LDMzNzA3LDMzNjgyLDMzNjc0LDMzNjgzLDMzNjczLDMzNjk2LDMzNjU1LDMzNjU5LDMzNjYwLDMzNjcwLDMzNzAzLDM0Mzg5LDI0NDI2LDM0NTAzLDM0NDk2LDM0NDg2LDM0NTAwLDM0NDg1LDM0NTAyLDM0NTA3LDM0NDgxLDM0NDc5LDM0NTA1LDM0ODk5LDM0OTc0LDM0OTUyLDM0OTg3''@;'; + put 'put ''LDM0OTYyLDM0OTY2LDM0OTU3LDM0OTU1LDM1MjE5LDM1MjE1LDM1MzcwLDM1MzU3LDM1MzYzLDM1MzY1LDM1Mzc3LDM1MzczLDM1MzU5LDM1MzU1LDM1MzYyLDM1OTEzLDM1OTMwLDM2MDA5LDM2MDEyLDM2MDExLDM2MDA4LDM2MDEwLDM2MDA3LDM2MTk5LDM2MTk4LDM2Mjg2LDM2MjgyLDM2''@;'; + put 'put ''NTcxLDM2NTc1LDM2ODg5LDM2ODc3LDM2ODkwLDM2ODg3LDM2ODk5LDM2ODk1LDM2ODkzLDM2ODgwLDM2ODg1LDM2ODk0LDM2ODk2LDM2ODc5LDM2ODk4LDM2ODg2LDM2ODkxLDM2ODg0LDM3MDk2LDM3MTAxLDM3MTE3LDM3MjA3LDM3MzI2LDM3MzY1LDM3MzUwLDM3MzQ3LDM3MzUxLDM3MzU3''@;'; + put 'put ''LDM3MzUzLDM4MjgxLDM4NTA2LDM4NTE3LDM4NTE1LDM4NTIwLDM4NTEyLDM4NTE2LDM4NTE4LDM4NTE5LDM4NTA4LDM4NTkyLDM4NjM0LDM4NjMzLDMxNDU2LDMxNDU1LDM4OTE0LDM4OTE1LDM5NzcwLDQwMTY1LDQwNTY1LDQwNTc1LDQwNjEzLDQwNjM1LDIwNjQyLDIwNjIxLDIwNjEzLDIw''@;'; + put 'put ''NjMzLDIwNjI1LDIwNjA4LDIwNjMwLDIwNjMyLDIwNjM0LDI2MzY4LDIwOTc3LDIxMTA2LDIxMTA4LDIxMTA5LDIxMDk3LDIxMjE0LDIxMjEzLDIxMjExLDIxMzM4LDIxNDEzLDIxODgzLDIxODg4LDIxOTI3LDIxODg0LDIxODk4LDIxOTE3LDIxOTEyLDIxODkwLDIxOTE2LDIxOTMwLDIxOTA4''@;'; + put 'put ''LDIxODk1LDIxODk5LDIxODkxLDIxOTM5LDIxOTM0LDIxOTE5LDIxODIyLDIxOTM4LDIxOTE0LDIxOTQ3LDIxOTMyLDIxOTM3LDIxODg2LDIxODk3LDIxOTMxLDIxOTEzLDIyMjg1LDIyNTc1LDIyNTcwLDIyNTgwLDIyNTY0LDIyNTc2LDIyNTc3LDIyNTYxLDIyNTU3LDIyNTYwLDIyNzc3LDIy''@;'; + put 'put ''Nzc4LDIyODgwLDIzMTU5LDIzMTk0LDIzMTY3LDIzMTg2LDIzMTk1LDIzMjA3LDIzNDExLDIzNDA5LDIzNTA2LDIzNTAwLDIzNTA3LDIzNTA0LDIzNTYyLDIzNTYzLDIzNjAxLDIzODg0LDIzODg4LDIzODYwLDIzODc5LDI0MDYxLDI0MTMzLDI0MTI1LDI0MTI4LDI0MTMxLDI0MTkwLDI0MjY2''@;'; + put 'put ''LDI0MjU3LDI0MjU4LDI0MjYwLDI0MzgwLDI0NDI5LDI0NDg5LDI0NDkwLDI0NDg4LDI0Nzg1LDI0ODAxLDI0NzU0LDI0NzU4LDI0ODAwLDI0ODYwLDI0ODY3LDI0ODI2LDI0ODUzLDI0ODE2LDI0ODI3LDI0ODIwLDI0OTM2LDI0ODE3LDI0ODQ2LDI0ODIyLDI0ODQxLDI0ODMyLDI0ODUwLDI1''@;'; + put 'put ''MTE5LDI1MTYxLDI1NTA3LDI1NDg0LDI1NTUxLDI1NTM2LDI1NTc3LDI1NTQ1LDI1NTQyLDI1NTQ5LDI1NTU0LDI1NTcxLDI1NTUyLDI1NTY5LDI1NTU4LDI1NTgxLDI1NTgyLDI1NDYyLDI1NTg4LDI1NTc4LDI1NTYzLDI1NjgyLDI1NTYyLDI1NTkzLDI1OTUwLDI1OTU4LDI1OTU0LDI1OTU1''@;'; + put 'put ''LDI2MDAxLDI2ZTMsMjYwMzEsMjYyMjIsMjYyMjQsMjYyMjgsMjYyMzAsMjYyMjMsMjYyNTcsMjYyMzQsMjYyMzgsMjYyMzEsMjYzNjYsMjYzNjcsMjYzOTksMjYzOTcsMjY4NzQsMjY4MzcsMjY4NDgsMjY4NDAsMjY4MzksMjY4ODUsMjY4NDcsMjY4NjksMjY4NjIsMjY4NTUsMjY4NzMsMjY4''@;'; + put 'put ''MzQsMjY4NjYsMjY4NTEsMjY4MjcsMjY4MjksMjY4OTMsMjY4OTgsMjY4OTQsMjY4MjUsMjY4NDIsMjY5OTAsMjY4NzUsMjc0NTQsMjc0NTAsMjc0NTMsMjc1NDQsMjc1NDIsMjc1ODAsMjc2MzEsMjc2OTQsMjc2OTUsMjc2OTIsMjgyMDcsMjgyMTYsMjgyNDQsMjgxOTMsMjgyMTAsMjgyNjMs''@;'; + put 'put ''MjgyMzQsMjgxOTIsMjgxOTcsMjgxOTUsMjgxODcsMjgyNTEsMjgyNDgsMjgxOTYsMjgyNDYsMjgyNzAsMjgyMDUsMjgxOTgsMjgyNzEsMjgyMTIsMjgyMzcsMjgyMTgsMjgyMDQsMjgyMjcsMjgxODksMjgyMjIsMjgzNjMsMjgyOTcsMjgxODUsMjgyMzgsMjgyNTksMjgyMjgsMjgyNzQsMjgy''@;'; + put 'put ''NjUsMjgyNTUsMjg5NTMsMjg5NTQsMjg5NjYsMjg5NzYsMjg5NjEsMjg5ODIsMjkwMzgsMjg5NTYsMjkyNjAsMjkzMTYsMjkzMTIsMjk0OTQsMjk0NzcsMjk0OTIsMjk0ODEsMjk3NTQsMjk3MzgsMjk3NDcsMjk3MzAsMjk3MzMsMjk3NDksMjk3NTAsMjk3NDgsMjk3NDMsMjk3MjMsMjk3MzQs''@;'; + put 'put ''Mjk3MzYsMjk5ODksMjk5OTAsMzAwNTksMzAwNTgsMzAxNzgsMzAxNzEsMzAxNzksMzAxNjksMzAxNjgsMzAxNzQsMzAxNzYsMzAzMzEsMzAzMzIsMzAzNTgsMzAzNTUsMzAzODgsMzA0MjgsMzA1NDMsMzA3MDEsMzA4MTMsMzA4MjgsMzA4MzEsMzEyNDUsMzEyNDAsMzEyNDMsMzEyMzcsMzEy''@;'; + put 'put ''MzIsMzEzODQsMzEzODMsMzEzODIsMzE0NjEsMzE0NTksMzE1NjEsMzE1NzQsMzE1NTgsMzE1NjgsMzE1NzAsMzE1NzIsMzE1NjUsMzE1NjMsMzE1NjcsMzE1NjksMzE5MDMsMzE5MDksMzIwOTQsMzIwODAsMzIxMDQsMzIwODUsMzIwNDMsMzIxMTAsMzIxMTQsMzIwOTcsMzIxMDIsMzIwOTgs''@;'; + put 'put ''MzIxMTIsMzIxMTUsMjE4OTIsMzI3MjQsMzI3MjUsMzI3NzksMzI4NTAsMzI5MDEsMzMxMDksMzMxMDgsMzMwOTksMzMxMDUsMzMxMDIsMzMwODEsMzMwOTQsMzMwODYsMzMxMDAsMzMxMDcsMzMxNDAsMzMyOTgsMzMzMDgsMzM3NjksMzM3OTUsMzM3ODQsMzM4MDUsMzM3NjAsMzM3MzMsMzM4''@;'; + put 'put ''MDMsMzM3MjksMzM3NzUsMzM3NzcsMzM3ODAsMzM4NzksMzM4MDIsMzM3NzYsMzM4MDQsMzM3NDAsMzM3ODksMzM3NzgsMzM3MzgsMzM4NDgsMzM4MDYsMzM3OTYsMzM3NTYsMzM3OTksMzM3NDgsMzM3NTksMzQzOTUsMzQ1MjcsMzQ1MjEsMzQ1NDEsMzQ1MTYsMzQ1MjMsMzQ1MzIsMzQ1MTIs''@;'; + put 'put ''MzQ1MjYsMzQ5MDMsMzUwMDksMzUwMTAsMzQ5OTMsMzUyMDMsMzUyMjIsMzUzODcsMzU0MjQsMzU0MTMsMzU0MjIsMzUzODgsMzUzOTMsMzU0MTIsMzU0MTksMzU0MDgsMzUzOTgsMzUzODAsMzUzODYsMzUzODIsMzU0MTQsMzU5MzcsMzU5NzAsMzYwMTUsMzYwMjgsMzYwMTksMzYwMjksMzYw''@;'; + put 'put ''MzMsMzYwMjcsMzYwMzIsMzYwMjAsMzYwMjMsMzYwMjIsMzYwMzEsMzYwMjQsMzYyMzQsMzYyMjksMzYyMjUsMzYzMDIsMzYzMTcsMzYyOTksMzYzMTQsMzYzMDUsMzYzMDAsMzYzMTUsMzYyOTQsMzY2MDMsMzY2MDAsMzY2MDQsMzY3NjQsMzY5MTAsMzY5MTcsMzY5MTMsMzY5MjAsMzY5MTQs''@;'; + put 'put ''MzY5MTgsMzcxMjIsMzcxMDksMzcxMjksMzcxMTgsMzcyMTksMzcyMjEsMzczMjcsMzczOTYsMzczOTcsMzc0MTEsMzczODUsMzc0MDYsMzczODksMzczOTIsMzczODMsMzczOTMsMzgyOTIsMzgyODcsMzgyODMsMzgyODksMzgyOTEsMzgyOTAsMzgyODYsMzg1MzgsMzg1NDIsMzg1MzksMzg1''@;'; + put 'put ''MjUsMzg1MzMsMzg1MzQsMzg1NDEsMzg1MTQsMzg1MzIsMzg1OTMsMzg1OTcsMzg1OTYsMzg1OTgsMzg1OTksMzg2MzksMzg2NDIsMzg4NjAsMzg5MTcsMzg5MTgsMzg5MjAsMzkxNDMsMzkxNDYsMzkxNTEsMzkxNDUsMzkxNTQsMzkxNDksMzkzNDIsMzkzNDEsNDA2NDMsNDA2NTMsNDA2NTcs''@;'; + put 'put ''MjAwOTgsMjA2NTMsMjA2NjEsMjA2NTgsMjA2NTksMjA2NzcsMjA2NzAsMjA2NTIsMjA2NjMsMjA2NjcsMjA2NTUsMjA2NzksMjExMTksMjExMTEsMjExMTcsMjEyMTUsMjEyMjIsMjEyMjAsMjEyMTgsMjEyMTksMjEyOTUsMjE5ODMsMjE5OTIsMjE5NzEsMjE5OTAsMjE5NjYsMjE5ODAsMjE5''@;'; + put 'put ''NTksMjE5NjksMjE5ODcsMjE5ODgsMjE5OTksMjE5NzgsMjE5ODUsMjE5NTcsMjE5NTgsMjE5ODksMjE5NjEsMjIyOTAsMjIyOTEsMjI2MjIsMjI2MDksMjI2MTYsMjI2MTUsMjI2MTgsMjI2MTIsMjI2MzUsMjI2MDQsMjI2MzcsMjI2MDIsMjI2MjYsMjI2MTAsMjI2MDMsMjI4ODcsMjMyMzMs''@;'; + put 'put ''MjMyNDEsMjMyNDQsMjMyMzAsMjMyMjksMjMyMjgsMjMyMTksMjMyMzQsMjMyMTgsMjM5MTMsMjM5MTksMjQxNDAsMjQxODUsMjQyNjUsMjQyNjQsMjQzMzgsMjQ0MDksMjQ0OTIsMjQ0OTQsMjQ4NTgsMjQ4NDcsMjQ5MDQsMjQ4NjMsMjQ4MTksMjQ4NTksMjQ4MjUsMjQ4MzMsMjQ4NDAsMjQ5''@;'; + put 'put ''MTAsMjQ5MDgsMjQ5MDAsMjQ5MDksMjQ4OTQsMjQ4ODQsMjQ4NzEsMjQ4NDUsMjQ4MzgsMjQ4ODcsMjUxMjEsMjUxMjIsMjU2MTksMjU2NjIsMjU2MzAsMjU2NDIsMjU2NDUsMjU2NjEsMjU2NDQsMjU2MTUsMjU2MjgsMjU2MjAsMjU2MTMsMjU2NTQsMjU2MjIsMjU2MjMsMjU2MDYsMjU5NjQs''@;'; + put 'put ''MjYwMTUsMjYwMzIsMjYyNjMsMjYyNDksMjYyNDcsMjYyNDgsMjYyNjIsMjYyNDQsMjYyNjQsMjYyNTMsMjYzNzEsMjcwMjgsMjY5ODksMjY5NzAsMjY5OTksMjY5NzYsMjY5NjQsMjY5OTcsMjY5MjgsMjcwMTAsMjY5NTQsMjY5ODQsMjY5ODcsMjY5NzQsMjY5NjMsMjcwMDEsMjcwMTQsMjY5''@;'; + put 'put ''NzMsMjY5NzksMjY5NzEsMjc0NjMsMjc1MDYsMjc1ODQsMjc1ODMsMjc2MDMsMjc2NDUsMjgzMjIsMjgzMzUsMjgzNzEsMjgzNDIsMjgzNTQsMjgzMDQsMjgzMTcsMjgzNTksMjgzNTcsMjgzMjUsMjgzMTIsMjgzNDgsMjgzNDYsMjgzMzEsMjgzNjksMjgzMTAsMjgzMTYsMjgzNTYsMjgzNzIs''@;'; + put 'put ''MjgzMzAsMjgzMjcsMjgzNDAsMjkwMDYsMjkwMTcsMjkwMzMsMjkwMjgsMjkwMDEsMjkwMzEsMjkwMjAsMjkwMzYsMjkwMzAsMjkwMDQsMjkwMjksMjkwMjIsMjg5OTgsMjkwMzIsMjkwMTQsMjkyNDIsMjkyNjYsMjk0OTUsMjk1MDksMjk1MDMsMjk1MDIsMjk4MDcsMjk3ODYsMjk3ODEsMjk3''@;'; + put 'put ''OTEsMjk3OTAsMjk3NjEsMjk3NTksMjk3ODUsMjk3ODcsMjk3ODgsMzAwNzAsMzAwNzIsMzAyMDgsMzAxOTIsMzAyMDksMzAxOTQsMzAxOTMsMzAyMDIsMzAyMDcsMzAxOTYsMzAxOTUsMzA0MzAsMzA0MzEsMzA1NTUsMzA1NzEsMzA1NjYsMzA1NTgsMzA1NjMsMzA1ODUsMzA1NzAsMzA1NzIs''@;'; + put 'put ''MzA1NTYsMzA1NjUsMzA1NjgsMzA1NjIsMzA3MDIsMzA4NjIsMzA4OTYsMzA4NzEsMzA4NzIsMzA4NjAsMzA4NTcsMzA4NDQsMzA4NjUsMzA4NjcsMzA4NDcsMzEwOTgsMzExMDMsMzExMDUsMzM4MzYsMzExNjUsMzEyNjAsMzEyNTgsMzEyNjQsMzEyNTIsMzEyNjMsMzEyNjIsMzEzOTEsMzEz''@;'; + put 'put ''OTIsMzE2MDcsMzE2ODAsMzE1ODQsMzE1OTgsMzE1OTEsMzE5MjEsMzE5MjMsMzE5MjUsMzIxNDcsMzIxMjEsMzIxNDUsMzIxMjksMzIxNDMsMzIwOTEsMzI2MjIsMzI2MTcsMzI2MTgsMzI2MjYsMzI2ODEsMzI2ODAsMzI2NzYsMzI4NTQsMzI4NTYsMzI5MDIsMzI5MDAsMzMxMzcsMzMxMzYs''@;'; + put 'put ''MzMxNDQsMzMxMjUsMzMxMzQsMzMxMzksMzMxMzEsMzMxNDUsMzMxNDYsMzMxMjYsMzMyODUsMzMzNTEsMzM5MjIsMzM5MTEsMzM4NTMsMzM4NDEsMzM5MDksMzM4OTQsMzM4OTksMzM4NjUsMzM5MDAsMzM4ODMsMzM4NTIsMzM4NDUsMzM4ODksMzM4OTEsMzM4OTcsMzM5MDEsMzM4NjIsMzQz''@;'; + put 'put ''OTgsMzQzOTYsMzQzOTksMzQ1NTMsMzQ1NzksMzQ1NjgsMzQ1NjcsMzQ1NjAsMzQ1NTgsMzQ1NTUsMzQ1NjIsMzQ1NjMsMzQ1NjYsMzQ1NzAsMzQ5MDUsMzUwMzksMzUwMjgsMzUwMzMsMzUwMzYsMzUwMzIsMzUwMzcsMzUwNDEsMzUwMTgsMzUwMjksMzUwMjYsMzUyMjgsMzUyOTksMzU0MzUs''@;'; + put 'put ''MzU0NDIsMzU0NDMsMzU0MzAsMzU0MzMsMzU0NDAsMzU0NjMsMzU0NTIsMzU0MjcsMzU0ODgsMzU0NDEsMzU0NjEsMzU0MzcsMzU0MjYsMzU0MzgsMzU0MzYsMzU0NDksMzU0NTEsMzUzOTAsMzU0MzIsMzU5MzgsMzU5NzgsMzU5NzcsMzYwNDIsMzYwMzksMzYwNDAsMzYwMzYsMzYwMTgsMzYw''@;'; + put 'put ''MzUsMzYwMzQsMzYwMzcsMzYzMjEsMzYzMTksMzYzMjgsMzYzMzUsMzYzMzksMzYzNDYsMzYzMzAsMzYzMjQsMzYzMjYsMzY1MzAsMzY2MTEsMzY2MTcsMzY2MDYsMzY2MTgsMzY3NjcsMzY3ODYsMzY5MzksMzY5MzgsMzY5NDcsMzY5MzAsMzY5NDgsMzY5MjQsMzY5NDksMzY5NDQsMzY5MzUs''@;'; + put 'put ''MzY5NDMsMzY5NDIsMzY5NDEsMzY5NDUsMzY5MjYsMzY5MjksMzcxMzgsMzcxNDMsMzcyMjgsMzcyMjYsMzcyMjUsMzczMjEsMzc0MzEsMzc0NjMsMzc0MzIsMzc0MzcsMzc0NDAsMzc0MzgsMzc0NjcsMzc0NTEsMzc0NzYsMzc0NTcsMzc0MjgsMzc0NDksMzc0NTMsMzc0NDUsMzc0MzMsMzc0''@;'; + put 'put ''MzksMzc0NjYsMzgyOTYsMzg1NTIsMzg1NDgsMzg1NDksMzg2MDUsMzg2MDMsMzg2MDEsMzg2MDIsMzg2NDcsMzg2NTEsMzg2NDksMzg2NDYsMzg3NDIsMzg3NzIsMzg3NzQsMzg5MjgsMzg5MjksMzg5MzEsMzg5MjIsMzg5MzAsMzg5MjQsMzkxNjQsMzkxNTYsMzkxNjUsMzkxNjYsMzkzNDcs''@;'; + put 'put ''MzkzNDUsMzkzNDgsMzk2NDksNDAxNjksNDA1NzgsNDA3MTgsNDA3MjMsNDA3MzYsMjA3MTEsMjA3MTgsMjA3MDksMjA2OTQsMjA3MTcsMjA2OTgsMjA2OTMsMjA2ODcsMjA2ODksMjA3MjEsMjA2ODYsMjA3MTMsMjA4MzQsMjA5NzksMjExMjMsMjExMjIsMjEyOTcsMjE0MjEsMjIwMTQsMjIw''@;'; + put 'put ''MTYsMjIwNDMsMjIwMzksMjIwMTMsMjIwMzYsMjIwMjIsMjIwMjUsMjIwMjksMjIwMzAsMjIwMDcsMjIwMzgsMjIwNDcsMjIwMjQsMjIwMzIsMjIwMDYsMjIyOTYsMjIyOTQsMjI2NDUsMjI2NTQsMjI2NTksMjI2NzUsMjI2NjYsMjI2NDksMjI2NjEsMjI2NTMsMjI3ODEsMjI4MjEsMjI4MTgs''@;'; + put 'put ''MjI4MjAsMjI4OTAsMjI4ODksMjMyNjUsMjMyNzAsMjMyNzMsMjMyNTUsMjMyNTQsMjMyNTYsMjMyNjcsMjM0MTMsMjM1MTgsMjM1MjcsMjM1MjEsMjM1MjUsMjM1MjYsMjM1MjgsMjM1MjIsMjM1MjQsMjM1MTksMjM1NjUsMjM2NTAsMjM5NDAsMjM5NDMsMjQxNTUsMjQxNjMsMjQxNDksMjQx''@;'; + put 'put ''NTEsMjQxNDgsMjQyNzUsMjQyNzgsMjQzMzAsMjQzOTAsMjQ0MzIsMjQ1MDUsMjQ5MDMsMjQ4OTUsMjQ5MDcsMjQ5NTEsMjQ5MzAsMjQ5MzEsMjQ5MjcsMjQ5MjIsMjQ5MjAsMjQ5NDksMjUxMzAsMjU3MzUsMjU2ODgsMjU2ODQsMjU3NjQsMjU3MjAsMjU2OTUsMjU3MjIsMjU2ODEsMjU3MDMs''@;'; + put 'put ''MjU2NTIsMjU3MDksMjU3MjMsMjU5NzAsMjYwMTcsMjYwNzEsMjYwNzAsMjYyNzQsMjYyODAsMjYyNjksMjcwMzYsMjcwNDgsMjcwMjksMjcwNzMsMjcwNTQsMjcwOTEsMjcwODMsMjcwMzUsMjcwNjMsMjcwNjcsMjcwNTEsMjcwNjAsMjcwODgsMjcwODUsMjcwNTMsMjcwODQsMjcwNDYsMjcw''@;'; + put 'put ''NzUsMjcwNDMsMjc0NjUsMjc0NjgsMjc2OTksMjg0NjcsMjg0MzYsMjg0MTQsMjg0MzUsMjg0MDQsMjg0NTcsMjg0NzgsMjg0NDgsMjg0NjAsMjg0MzEsMjg0MTgsMjg0NTAsMjg0MTUsMjgzOTksMjg0MjIsMjg0NjUsMjg0NzIsMjg0NjYsMjg0NTEsMjg0MzcsMjg0NTksMjg0NjMsMjg1NTIs''@;'; + put 'put ''Mjg0NTgsMjgzOTYsMjg0MTcsMjg0MDIsMjgzNjQsMjg0MDcsMjkwNzYsMjkwODEsMjkwNTMsMjkwNjYsMjkwNjAsMjkwNzQsMjkyNDYsMjkzMzAsMjkzMzQsMjk1MDgsMjk1MjAsMjk3OTYsMjk3OTUsMjk4MDIsMjk4MDgsMjk4MDUsMjk5NTYsMzAwOTcsMzAyNDcsMzAyMjEsMzAyMTksMzAy''@;'; + put 'put ''MTcsMzAyMjcsMzA0MzMsMzA0MzUsMzA1OTYsMzA1ODksMzA1OTEsMzA1NjEsMzA5MTMsMzA4NzksMzA4ODcsMzA4OTksMzA4ODksMzA4ODMsMzExMTgsMzExMTksMzExMTcsMzEyNzgsMzEyODEsMzE0MDIsMzE0MDEsMzE0NjksMzE0NzEsMzE2NDksMzE2MzcsMzE2MjcsMzE2MDUsMzE2Mzks''@;'; + put 'put ''MzE2NDUsMzE2MzYsMzE2MzEsMzE2NzIsMzE2MjMsMzE2MjAsMzE5MjksMzE5MzMsMzE5MzQsMzIxODcsMzIxNzYsMzIxNTYsMzIxODksMzIxOTAsMzIxNjAsMzIyMDIsMzIxODAsMzIxNzgsMzIxNzcsMzIxODYsMzIxNjIsMzIxOTEsMzIxODEsMzIxODQsMzIxNzMsMzIyMTAsMzIxOTksMzIx''@;'; + put 'put ''NzIsMzI2MjQsMzI3MzYsMzI3MzcsMzI3MzUsMzI4NjIsMzI4NTgsMzI5MDMsMzMxMDQsMzMxNTIsMzMxNjcsMzMxNjAsMzMxNjIsMzMxNTEsMzMxNTQsMzMyNTUsMzMyNzQsMzMyODcsMzMzMDAsMzMzMTAsMzMzNTUsMzM5OTMsMzM5ODMsMzM5OTAsMzM5ODgsMzM5NDUsMzM5NTAsMzM5NzAs''@;'; + put 'put ''MzM5NDgsMzM5OTUsMzM5NzYsMzM5ODQsMzQwMDMsMzM5MzYsMzM5ODAsMzQwMDEsMzM5OTQsMzQ2MjMsMzQ1ODgsMzQ2MTksMzQ1OTQsMzQ1OTcsMzQ2MTIsMzQ1ODQsMzQ2NDUsMzQ2MTUsMzQ2MDEsMzUwNTksMzUwNzQsMzUwNjAsMzUwNjUsMzUwNjQsMzUwNjksMzUwNDgsMzUwOTgsMzUw''@;'; + put 'put ''NTUsMzU0OTQsMzU0NjgsMzU0ODYsMzU0OTEsMzU0NjksMzU0ODksMzU0NzUsMzU0OTIsMzU0OTgsMzU0OTMsMzU0OTYsMzU0ODAsMzU0NzMsMzU0ODIsMzU0OTUsMzU5NDYsMzU5ODEsMzU5ODAsMzYwNTEsMzYwNDksMzYwNTAsMzYyMDMsMzYyNDksMzYyNDUsMzYzNDgsMzY2MjgsMzY2MjYs''@;'; + put 'put ''MzY2MjksMzY2MjcsMzY3NzEsMzY5NjAsMzY5NTIsMzY5NTYsMzY5NjMsMzY5NTMsMzY5NTgsMzY5NjIsMzY5NTcsMzY5NTUsMzcxNDUsMzcxNDQsMzcxNTAsMzcyMzcsMzcyNDAsMzcyMzksMzcyMzYsMzc0OTYsMzc1MDQsMzc1MDksMzc1MjgsMzc1MjYsMzc0OTksMzc1MjMsMzc1MzIsMzc1''@;'; + put 'put ''NDQsMzc1MDAsMzc1MjEsMzgzMDUsMzgzMTIsMzgzMTMsMzgzMDcsMzgzMDksMzgzMDgsMzg1NTMsMzg1NTYsMzg1NTUsMzg2MDQsMzg2MTAsMzg2NTYsMzg3ODAsMzg3ODksMzg5MDIsMzg5MzUsMzg5MzYsMzkwODcsMzkwODksMzkxNzEsMzkxNzMsMzkxODAsMzkxNzcsMzkzNjEsMzk1OTks''@;'; + put 'put ''Mzk2MDAsMzk2NTQsMzk3NDUsMzk3NDYsNDAxODAsNDAxODIsNDAxNzksNDA2MzYsNDA3NjMsNDA3NzgsMjA3NDAsMjA3MzYsMjA3MzEsMjA3MjUsMjA3MjksMjA3MzgsMjA3NDQsMjA3NDUsMjA3NDEsMjA5NTYsMjExMjcsMjExMjgsMjExMjksMjExMzMsMjExMzAsMjEyMzIsMjE0MjYsMjIw''@;'; + put 'put ''NjIsMjIwNzUsMjIwNzMsMjIwNjYsMjIwNzksMjIwNjgsMjIwNTcsMjIwOTksMjIwOTQsMjIxMDMsMjIxMzIsMjIwNzAsMjIwNjMsMjIwNjQsMjI2NTYsMjI2ODcsMjI2ODYsMjI3MDcsMjI2ODQsMjI3MDIsMjI2OTcsMjI2OTQsMjI4OTMsMjMzMDUsMjMyOTEsMjMzMDcsMjMyODUsMjMzMDgs''@;'; + put 'put ''MjMzMDQsMjM1MzQsMjM1MzIsMjM1MjksMjM1MzEsMjM2NTIsMjM2NTMsMjM5NjUsMjM5NTYsMjQxNjIsMjQxNTksMjQxNjEsMjQyOTAsMjQyODIsMjQyODcsMjQyODUsMjQyOTEsMjQyODgsMjQzOTIsMjQ0MzMsMjQ1MDMsMjQ1MDEsMjQ5NTAsMjQ5MzUsMjQ5NDIsMjQ5MjUsMjQ5MTcsMjQ5''@;'; + put 'put ''NjIsMjQ5NTYsMjQ5NDQsMjQ5MzksMjQ5NTgsMjQ5OTksMjQ5NzYsMjUwMDMsMjQ5NzQsMjUwMDQsMjQ5ODYsMjQ5OTYsMjQ5ODAsMjUwMDYsMjUxMzQsMjU3MDUsMjU3MTEsMjU3MjEsMjU3NTgsMjU3NzgsMjU3MzYsMjU3NDQsMjU3NzYsMjU3NjUsMjU3NDcsMjU3NDksMjU3NjksMjU3NDYs''@;'; + put 'put ''MjU3NzQsMjU3NzMsMjU3NzEsMjU3NTQsMjU3NzIsMjU3NTMsMjU3NjIsMjU3NzksMjU5NzMsMjU5NzUsMjU5NzYsMjYyODYsMjYyODMsMjYyOTIsMjYyODksMjcxNzEsMjcxNjcsMjcxMTIsMjcxMzcsMjcxNjYsMjcxNjEsMjcxMzMsMjcxNjksMjcxNTUsMjcxNDYsMjcxMjMsMjcxMzgsMjcx''@;'; + put 'put ''NDEsMjcxMTcsMjcxNTMsMjc0NzIsMjc0NzAsMjc1NTYsMjc1ODksMjc1OTAsMjg0NzksMjg1NDAsMjg1NDgsMjg0OTcsMjg1MTgsMjg1MDAsMjg1NTAsMjg1MjUsMjg1MDcsMjg1MzYsMjg1MjYsMjg1NTgsMjg1MzgsMjg1MjgsMjg1MTYsMjg1NjcsMjg1MDQsMjgzNzMsMjg1MjcsMjg1MTIs''@;'; + put 'put ''Mjg1MTEsMjkwODcsMjkxMDAsMjkxMDUsMjkwOTYsMjkyNzAsMjkzMzksMjk1MTgsMjk1MjcsMjk4MDEsMjk4MzUsMjk4MjcsMjk4MjIsMjk4MjQsMzAwNzksMzAyNDAsMzAyNDksMzAyMzksMzAyNDQsMzAyNDYsMzAyNDEsMzAyNDIsMzAzNjIsMzAzOTQsMzA0MzYsMzA2MDYsMzA1OTksMzA2''@;'; + put 'put ''MDQsMzA2MDksMzA2MDMsMzA5MjMsMzA5MTcsMzA5MDYsMzA5MjIsMzA5MTAsMzA5MzMsMzA5MDgsMzA5MjgsMzEyOTUsMzEyOTIsMzEyOTYsMzEyOTMsMzEyODcsMzEyOTEsMzE0MDcsMzE0MDYsMzE2NjEsMzE2NjUsMzE2ODQsMzE2NjgsMzE2ODYsMzE2ODcsMzE2ODEsMzE2NDgsMzE2OTIs''@;'; + put 'put ''MzE5NDYsMzIyMjQsMzIyNDQsMzIyMzksMzIyNTEsMzIyMTYsMzIyMzYsMzIyMjEsMzIyMzIsMzIyMjcsMzIyMTgsMzIyMjIsMzIyMzMsMzIxNTgsMzIyMTcsMzIyNDIsMzIyNDksMzI2MjksMzI2MzEsMzI2ODcsMzI3NDUsMzI4MDYsMzMxNzksMzMxODAsMzMxODEsMzMxODQsMzMxNzgsMzMx''@;'; + put 'put ''NzYsMzQwNzEsMzQxMDksMzQwNzQsMzQwMzAsMzQwOTIsMzQwOTMsMzQwNjcsMzQwNjUsMzQwODMsMzQwODEsMzQwNjgsMzQwMjgsMzQwODUsMzQwNDcsMzQwNTQsMzQ2OTAsMzQ2NzYsMzQ2NzgsMzQ2NTYsMzQ2NjIsMzQ2ODAsMzQ2NjQsMzQ2NDksMzQ2NDcsMzQ2MzYsMzQ2NDMsMzQ5MDcs''@;'; + put 'put ''MzQ5MDksMzUwODgsMzUwNzksMzUwOTAsMzUwOTEsMzUwOTMsMzUwODIsMzU1MTYsMzU1MzgsMzU1MjcsMzU1MjQsMzU0NzcsMzU1MzEsMzU1NzYsMzU1MDYsMzU1MjksMzU1MjIsMzU1MTksMzU1MDQsMzU1NDIsMzU1MzMsMzU1MTAsMzU1MTMsMzU1NDcsMzU5MTYsMzU5MTgsMzU5NDgsMzYw''@;'; + put 'put ''NjQsMzYwNjIsMzYwNzAsMzYwNjgsMzYwNzYsMzYwNzcsMzYwNjYsMzYwNjcsMzYwNjAsMzYwNzQsMzYwNjUsMzYyMDUsMzYyNTUsMzYyNTksMzYzOTUsMzYzNjgsMzYzODEsMzYzODYsMzYzNjcsMzYzOTMsMzYzODMsMzYzODUsMzYzODIsMzY1MzgsMzY2MzcsMzY2MzUsMzY2MzksMzY2NDks''@;'; + put 'put ''MzY2NDYsMzY2NTAsMzY2MzYsMzY2MzgsMzY2NDUsMzY5NjksMzY5NzQsMzY5NjgsMzY5NzMsMzY5ODMsMzcxNjgsMzcxNjUsMzcxNTksMzcxNjksMzcyNTUsMzcyNTcsMzcyNTksMzcyNTEsMzc1NzMsMzc1NjMsMzc1NTksMzc2MTAsMzc1NDgsMzc2MDQsMzc1NjksMzc1NTUsMzc1NjQsMzc1''@;'; + put 'put ''ODYsMzc1NzUsMzc2MTYsMzc1NTQsMzgzMTcsMzgzMjEsMzg2NjAsMzg2NjIsMzg2NjMsMzg2NjUsMzg3NTIsMzg3OTcsMzg3OTUsMzg3OTksMzg5NDUsMzg5NTUsMzg5NDAsMzkwOTEsMzkxNzgsMzkxODcsMzkxODYsMzkxOTIsMzkzODksMzkzNzYsMzkzOTEsMzkzODcsMzkzNzcsMzkzODEs''@;'; + put 'put ''MzkzNzgsMzkzODUsMzk2MDcsMzk2NjIsMzk2NjMsMzk3MTksMzk3NDksMzk3NDgsMzk3OTksMzk3OTEsNDAxOTgsNDAyMDEsNDAxOTUsNDA2MTcsNDA2MzgsNDA2NTQsMjI2OTYsNDA3ODYsMjA3NTQsMjA3NjAsMjA3NTYsMjA3NTIsMjA3NTcsMjA4NjQsMjA5MDYsMjA5NTcsMjExMzcsMjEx''@;'; + put 'put ''MzksMjEyMzUsMjIxMDUsMjIxMjMsMjIxMzcsMjIxMjEsMjIxMTYsMjIxMzYsMjIxMjIsMjIxMjAsMjIxMTcsMjIxMjksMjIxMjcsMjIxMjQsMjIxMTQsMjIxMzQsMjI3MjEsMjI3MTgsMjI3MjcsMjI3MjUsMjI4OTQsMjMzMjUsMjMzNDgsMjM0MTYsMjM1MzYsMjM1NjYsMjQzOTQsMjUwMTAs''@;'; + put 'put ''MjQ5NzcsMjUwMDEsMjQ5NzAsMjUwMzcsMjUwMTQsMjUwMjIsMjUwMzQsMjUwMzIsMjUxMzYsMjU3OTcsMjU3OTMsMjU4MDMsMjU3ODcsMjU3ODgsMjU4MTgsMjU3OTYsMjU3OTksMjU3OTQsMjU4MDUsMjU3OTEsMjU4MTAsMjU4MTIsMjU3OTAsMjU5NzIsMjYzMTAsMjYzMTMsMjYyOTcsMjYz''@;'; + put 'put ''MDgsMjYzMTEsMjYyOTYsMjcxOTcsMjcxOTIsMjcxOTQsMjcyMjUsMjcyNDMsMjcyMjQsMjcxOTMsMjcyMDQsMjcyMzQsMjcyMzMsMjcyMTEsMjcyMDcsMjcxODksMjcyMzEsMjcyMDgsMjc0ODEsMjc1MTEsMjc2NTMsMjg2MTAsMjg1OTMsMjg1NzcsMjg2MTEsMjg1ODAsMjg2MDksMjg1ODMs''@;'; + put 'put ''Mjg1OTUsMjg2MDgsMjg2MDEsMjg1OTgsMjg1ODIsMjg1NzYsMjg1OTYsMjkxMTgsMjkxMjksMjkxMzYsMjkxMzgsMjkxMjgsMjkxNDEsMjkxMTMsMjkxMzQsMjkxNDUsMjkxNDgsMjkxMjMsMjkxMjQsMjk1NDQsMjk4NTIsMjk4NTksMjk4NDgsMjk4NTUsMjk4NTQsMjk5MjIsMjk5NjQsMjk5''@;'; + put 'put ''NjUsMzAyNjAsMzAyNjQsMzAyNjYsMzA0MzksMzA0MzcsMzA2MjQsMzA2MjIsMzA2MjMsMzA2MjksMzA5NTIsMzA5MzgsMzA5NTYsMzA5NTEsMzExNDIsMzEzMDksMzEzMTAsMzEzMDIsMzEzMDgsMzEzMDcsMzE0MTgsMzE3MDUsMzE3NjEsMzE2ODksMzE3MTYsMzE3MDcsMzE3MTMsMzE3MjEs''@;'; + put 'put ''MzE3MTgsMzE5NTcsMzE5NTgsMzIyNjYsMzIyNzMsMzIyNjQsMzIyODMsMzIyOTEsMzIyODYsMzIyODUsMzIyNjUsMzIyNzIsMzI2MzMsMzI2OTAsMzI3NTIsMzI3NTMsMzI3NTAsMzI4MDgsMzMyMDMsMzMxOTMsMzMxOTIsMzMyNzUsMzMyODgsMzMzNjgsMzMzNjksMzQxMjIsMzQxMzcsMzQx''@;'; + put 'put ''MjAsMzQxNTIsMzQxNTMsMzQxMTUsMzQxMjEsMzQxNTcsMzQxNTQsMzQxNDIsMzQ2OTEsMzQ3MTksMzQ3MTgsMzQ3MjIsMzQ3MDEsMzQ5MTMsMzUxMTQsMzUxMjIsMzUxMDksMzUxMTUsMzUxMDUsMzUyNDIsMzUyMzgsMzU1NTgsMzU1NzgsMzU1NjMsMzU1NjksMzU1ODQsMzU1NDgsMzU1NTks''@;'; + put 'put ''MzU1NjYsMzU1ODIsMzU1ODUsMzU1ODYsMzU1NzUsMzU1NjUsMzU1NzEsMzU1NzQsMzU1ODAsMzU5NDcsMzU5NDksMzU5ODcsMzYwODQsMzY0MjAsMzY0MDEsMzY0MDQsMzY0MTgsMzY0MDksMzY0MDUsMzY2NjcsMzY2NTUsMzY2NjQsMzY2NTksMzY3NzYsMzY3NzQsMzY5ODEsMzY5ODAsMzY5''@;'; + put 'put ''ODQsMzY5NzgsMzY5ODgsMzY5ODYsMzcxNzIsMzcyNjYsMzc2NjQsMzc2ODYsMzc2MjQsMzc2ODMsMzc2NzksMzc2NjYsMzc2MjgsMzc2NzUsMzc2MzYsMzc2NTgsMzc2NDgsMzc2NzAsMzc2NjUsMzc2NTMsMzc2NzgsMzc2NTcsMzgzMzEsMzg1NjcsMzg1NjgsMzg1NzAsMzg2MTMsMzg2NzAs''@;'; + put 'put ''Mzg2NzMsMzg2NzgsMzg2NjksMzg2NzUsMzg2NzEsMzg3NDcsMzg3NDgsMzg3NTgsMzg4MDgsMzg5NjAsMzg5NjgsMzg5NzEsMzg5NjcsMzg5NTcsMzg5NjksMzg5NDgsMzkxODQsMzkyMDgsMzkxOTgsMzkxOTUsMzkyMDEsMzkxOTQsMzk0MDUsMzkzOTQsMzk0MDksMzk2MDgsMzk2MTIsMzk2''@;'; + put 'put ''NzUsMzk2NjEsMzk3MjAsMzk4MjUsNDAyMTMsNDAyMjcsNDAyMzAsNDAyMzIsNDAyMTAsNDAyMTksNDA2NjQsNDA2NjAsNDA4NDUsNDA4NjAsMjA3NzgsMjA3NjcsMjA3NjksMjA3ODYsMjEyMzcsMjIxNTgsMjIxNDQsMjIxNjAsMjIxNDksMjIxNTEsMjIxNTksMjI3NDEsMjI3MzksMjI3Mzcs''@;'; + put 'put ''MjI3MzQsMjMzNDQsMjMzMzgsMjMzMzIsMjM0MTgsMjM2MDcsMjM2NTYsMjM5OTYsMjM5OTQsMjM5OTcsMjM5OTIsMjQxNzEsMjQzOTYsMjQ1MDksMjUwMzMsMjUwMjYsMjUwMzEsMjUwNjIsMjUwMzUsMjUxMzgsMjUxNDAsMjU4MDYsMjU4MDIsMjU4MTYsMjU4MjQsMjU4NDAsMjU4MzAsMjU4''@;'; + put 'put ''MzYsMjU4NDEsMjU4MjYsMjU4MzcsMjU5ODYsMjU5ODcsMjYzMjksMjYzMjYsMjcyNjQsMjcyODQsMjcyNjgsMjcyOTgsMjcyOTIsMjczNTUsMjcyOTksMjcyNjIsMjcyODcsMjcyODAsMjcyOTYsMjc0ODQsMjc1NjYsMjc2MTAsMjc2NTYsMjg2MzIsMjg2NTcsMjg2MzksMjg2NDAsMjg2MzUs''@;'; + put 'put ''Mjg2NDQsMjg2NTEsMjg2NTUsMjg1NDQsMjg2NTIsMjg2NDEsMjg2NDksMjg2MjksMjg2NTQsMjg2NTYsMjkxNTksMjkxNTEsMjkxNjYsMjkxNTgsMjkxNTcsMjkxNjUsMjkxNjQsMjkxNzIsMjkxNTIsMjkyMzcsMjkyNTQsMjk1NTIsMjk1NTQsMjk4NjUsMjk4NzIsMjk4NjIsMjk4NjQsMzAy''@;'; + put 'put ''NzgsMzAyNzQsMzAyODQsMzA0NDIsMzA2NDMsMzA2MzQsMzA2NDAsMzA2MzYsMzA2MzEsMzA2MzcsMzA3MDMsMzA5NjcsMzA5NzAsMzA5NjQsMzA5NTksMzA5NzcsMzExNDMsMzExNDYsMzEzMTksMzE0MjMsMzE3NTEsMzE3NTcsMzE3NDIsMzE3MzUsMzE3NTYsMzE3MTIsMzE5NjgsMzE5NjQs''@;'; + put 'put ''MzE5NjYsMzE5NzAsMzE5NjcsMzE5NjEsMzE5NjUsMzIzMDIsMzIzMTgsMzIzMjYsMzIzMTEsMzIzMDYsMzIzMjMsMzIyOTksMzIzMTcsMzIzMDUsMzIzMjUsMzIzMjEsMzIzMDgsMzIzMTMsMzIzMjgsMzIzMDksMzIzMTksMzIzMDMsMzI1ODAsMzI3NTUsMzI3NjQsMzI4ODEsMzI4ODIsMzI4''@;'; + put 'put ''ODAsMzI4NzksMzI4ODMsMzMyMjIsMzMyMTksMzMyMTAsMzMyMTgsMzMyMTYsMzMyMTUsMzMyMTMsMzMyMjUsMzMyMTQsMzMyNTYsMzMyODksMzMzOTMsMzQyMTgsMzQxODAsMzQxNzQsMzQyMDQsMzQxOTMsMzQxOTYsMzQyMjMsMzQyMDMsMzQxODMsMzQyMTYsMzQxODYsMzQ0MDcsMzQ3NTIs''@;'; + put 'put ''MzQ3NjksMzQ3MzksMzQ3NzAsMzQ3NTgsMzQ3MzEsMzQ3NDcsMzQ3NDYsMzQ3NjAsMzQ3NjMsMzUxMzEsMzUxMjYsMzUxNDAsMzUxMjgsMzUxMzMsMzUyNDQsMzU1OTgsMzU2MDcsMzU2MDksMzU2MTEsMzU1OTQsMzU2MTYsMzU2MTMsMzU1ODgsMzU2MDAsMzU5MDUsMzU5MDMsMzU5NTUsMzYw''@;'; + put 'put ''OTAsMzYwOTMsMzYwOTIsMzYwODgsMzYwOTEsMzYyNjQsMzY0MjUsMzY0MjcsMzY0MjQsMzY0MjYsMzY2NzYsMzY2NzAsMzY2NzQsMzY2NzcsMzY2NzEsMzY5OTEsMzY5ODksMzY5OTYsMzY5OTMsMzY5OTQsMzY5OTIsMzcxNzcsMzcyODMsMzcyNzgsMzcyNzYsMzc3MDksMzc3NjIsMzc2NzIs''@;'; + put 'put ''Mzc3NDksMzc3MDYsMzc3MzMsMzc3MDcsMzc2NTYsMzc3NTgsMzc3NDAsMzc3MjMsMzc3NDQsMzc3MjIsMzc3MTYsMzgzNDYsMzgzNDcsMzgzNDgsMzgzNDQsMzgzNDIsMzg1NzcsMzg1ODQsMzg2MTQsMzg2ODQsMzg2ODYsMzg4MTYsMzg4NjcsMzg5ODIsMzkwOTQsMzkyMjEsMzk0MjUsMzk0''@;'; + put 'put ''MjMsMzk4NTQsMzk4NTEsMzk4NTAsMzk4NTMsNDAyNTEsNDAyNTUsNDA1ODcsNDA2NTUsNDA2NzAsNDA2NjgsNDA2NjksNDA2NjcsNDA3NjYsNDA3NzksMjE0NzQsMjIxNjUsMjIxOTAsMjI3NDUsMjI3NDQsMjMzNTIsMjQ0MTMsMjUwNTksMjUxMzksMjU4NDQsMjU4NDIsMjU4NTQsMjU4NjIs''@;'; + put 'put ''MjU4NTAsMjU4NTEsMjU4NDcsMjYwMzksMjYzMzIsMjY0MDYsMjczMTUsMjczMDgsMjczMzEsMjczMjMsMjczMjAsMjczMzAsMjczMTAsMjczMTEsMjc0ODcsMjc1MTIsMjc1NjcsMjg2ODEsMjg2ODMsMjg2NzAsMjg2NzgsMjg2NjYsMjg2ODksMjg2ODcsMjkxNzksMjkxODAsMjkxODIsMjkx''@;'; + put 'put ''NzYsMjk1NTksMjk1NTcsMjk4NjMsMjk4ODcsMjk5NzMsMzAyOTQsMzAyOTYsMzAyOTAsMzA2NTMsMzA2NTUsMzA2NTEsMzA2NTIsMzA5OTAsMzExNTAsMzEzMjksMzEzMzAsMzEzMjgsMzE0MjgsMzE0MjksMzE3ODcsMzE3ODMsMzE3ODYsMzE3NzQsMzE3NzksMzE3NzcsMzE5NzUsMzIzNDAs''@;'; + put 'put ''MzIzNDEsMzIzNTAsMzIzNDYsMzIzNTMsMzIzMzgsMzIzNDUsMzI1ODQsMzI3NjEsMzI3NjMsMzI4ODcsMzI4ODYsMzMyMjksMzMyMzEsMzMyOTAsMzQyNTUsMzQyMTcsMzQyNTMsMzQyNTYsMzQyNDksMzQyMjQsMzQyMzQsMzQyMzMsMzQyMTQsMzQ3OTksMzQ3OTYsMzQ4MDIsMzQ3ODQsMzUy''@;'; + put 'put ''MDYsMzUyNTAsMzUzMTYsMzU2MjQsMzU2NDEsMzU2MjgsMzU2MjcsMzU5MjAsMzYxMDEsMzY0NDEsMzY0NTEsMzY0NTQsMzY0NTIsMzY0NDcsMzY0MzcsMzY1NDQsMzY2ODEsMzY2ODUsMzY5OTksMzY5OTUsMzdlMywzNzI5MSwzNzI5MiwzNzMyOCwzNzc4MCwzNzc3MCwzNzc4MiwzNzc5NCwz''@;'; + put 'put ''NzgxMSwzNzgwNiwzNzgwNCwzNzgwOCwzNzc4NCwzNzc4NiwzNzc4MywzODM1NiwzODM1OCwzODM1MiwzODM1NywzODYyNiwzODYyMCwzODYxNywzODYxOSwzODYyMiwzODY5MiwzODgxOSwzODgyMiwzODgyOSwzODkwNSwzODk4OSwzODk5MSwzODk4OCwzODk5MCwzODk5NSwzOTA5OCwzOTIz''@;'; + put 'put ''MCwzOTIzMSwzOTIyOSwzOTIxNCwzOTMzMywzOTQzOCwzOTYxNywzOTY4MywzOTY4NiwzOTc1OSwzOTc1OCwzOTc1NywzOTg4MiwzOTg4MSwzOTkzMywzOTg4MCwzOTg3Miw0MDI3Myw0MDI4NSw0MDI4OCw0MDY3Miw0MDcyNSw0MDc0OCwyMDc4NywyMjE4MSwyMjc1MCwyMjc1MSwyMjc1NCwy''@;'; + put 'put ''MzU0MSw0MDg0OCwyNDMwMCwyNTA3NCwyNTA3OSwyNTA3OCwyNTA3NywyNTg1NiwyNTg3MSwyNjMzNiwyNjMzMywyNzM2NSwyNzM1NywyNzM1NCwyNzM0NywyODY5OSwyODcwMywyODcxMiwyODY5OCwyODcwMSwyODY5MywyODY5NiwyOTE5MCwyOTE5NywyOTI3MiwyOTM0NiwyOTU2MCwyOTU2''@;'; + put 'put ''MiwyOTg4NSwyOTg5OCwyOTkyMywzMDA4NywzMDA4NiwzMDMwMywzMDMwNSwzMDY2MywzMTAwMSwzMTE1MywzMTMzOSwzMTMzNywzMTgwNiwzMTgwNywzMTgwMCwzMTgwNSwzMTc5OSwzMTgwOCwzMjM2MywzMjM2NSwzMjM3NywzMjM2MSwzMjM2MiwzMjY0NSwzMjM3MSwzMjY5NCwzMjY5Nywz''@;'; + put 'put ''MjY5NiwzMzI0MCwzNDI4MSwzNDI2OSwzNDI4MiwzNDI2MSwzNDI3NiwzNDI3NywzNDI5NSwzNDgxMSwzNDgyMSwzNDgyOSwzNDgwOSwzNDgxNCwzNTE2OCwzNTE2NywzNTE1OCwzNTE2NiwzNTY0OSwzNTY3NiwzNTY3MiwzNTY1NywzNTY3NCwzNTY2MiwzNTY2MywzNTY1NCwzNTY3MywzNjEw''@;'; + put 'put ''NCwzNjEwNiwzNjQ3NiwzNjQ2NiwzNjQ4NywzNjQ3MCwzNjQ2MCwzNjQ3NCwzNjQ2OCwzNjY5MiwzNjY4NiwzNjc4MSwzNzAwMiwzNzAwMywzNzI5NywzNzI5NCwzNzg1NywzNzg0MSwzNzg1NSwzNzgyNywzNzgzMiwzNzg1MiwzNzg1MywzNzg0NiwzNzg1OCwzNzgzNywzNzg0OCwzNzg2MCwz''@;'; + put 'put ''Nzg0NywzNzg2NCwzODM2NCwzODU4MCwzODYyNywzODY5OCwzODY5NSwzODc1MywzODg3NiwzODkwNywzOTAwNiwzOWUzLDM5MDAzLDM5MTAwLDM5MjM3LDM5MjQxLDM5NDQ2LDM5NDQ5LDM5NjkzLDM5OTEyLDM5OTExLDM5ODk0LDM5ODk5LDQwMzI5LDQwMjg5LDQwMzA2LDQwMjk4LDQwMzAw''@;'; + put 'put ''LDQwNTk0LDQwNTk5LDQwNTk1LDQwNjI4LDIxMjQwLDIyMTg0LDIyMTk5LDIyMTk4LDIyMTk2LDIyMjA0LDIyNzU2LDIzMzYwLDIzMzYzLDIzNDIxLDIzNTQyLDI0MDA5LDI1MDgwLDI1MDgyLDI1ODgwLDI1ODc2LDI1ODgxLDI2MzQyLDI2NDA3LDI3MzcyLDI4NzM0LDI4NzIwLDI4NzIyLDI5''@;'; + put 'put ''MjAwLDI5NTYzLDI5OTAzLDMwMzA2LDMwMzA5LDMxMDE0LDMxMDE4LDMxMDIwLDMxMDE5LDMxNDMxLDMxNDc4LDMxODIwLDMxODExLDMxODIxLDMxOTgzLDMxOTg0LDM2NzgyLDMyMzgxLDMyMzgwLDMyMzg2LDMyNTg4LDMyNzY4LDMzMjQyLDMzMzgyLDM0Mjk5LDM0Mjk3LDM0MzIxLDM0Mjk4''@;'; + put 'put ''LDM0MzEwLDM0MzE1LDM0MzExLDM0MzE0LDM0ODM2LDM0ODM3LDM1MTcyLDM1MjU4LDM1MzIwLDM1Njk2LDM1NjkyLDM1Njg2LDM1Njk1LDM1Njc5LDM1NjkxLDM2MTExLDM2MTA5LDM2NDg5LDM2NDgxLDM2NDg1LDM2NDgyLDM3MzAwLDM3MzIzLDM3OTEyLDM3ODkxLDM3ODg1LDM4MzY5LDM4''@;'; + put 'put ''NzA0LDM5MTA4LDM5MjUwLDM5MjQ5LDM5MzM2LDM5NDY3LDM5NDcyLDM5NDc5LDM5NDc3LDM5OTU1LDM5OTQ5LDQwNTY5LDQwNjI5LDQwNjgwLDQwNzUxLDQwNzk5LDQwODAzLDQwODAxLDIwNzkxLDIwNzkyLDIyMjA5LDIyMjA4LDIyMjEwLDIyODA0LDIzNjYwLDI0MDEzLDI1MDg0LDI1MDg2''@;'; + put 'put ''LDI1ODg1LDI1ODg0LDI2MDA1LDI2MzQ1LDI3Mzg3LDI3Mzk2LDI3Mzg2LDI3NTcwLDI4NzQ4LDI5MjExLDI5MzUxLDI5OTEwLDI5OTA4LDMwMzEzLDMwNjc1LDMxODI0LDMyMzk5LDMyMzk2LDMyNzAwLDM0MzI3LDM0MzQ5LDM0MzMwLDM0ODUxLDM0ODUwLDM0ODQ5LDM0ODQ3LDM1MTc4LDM1''@;'; + put 'put ''MTgwLDM1MjYxLDM1NzAwLDM1NzAzLDM1NzA5LDM2MTE1LDM2NDkwLDM2NDkzLDM2NDkxLDM2NzAzLDM2NzgzLDM3MzA2LDM3OTM0LDM3OTM5LDM3OTQxLDM3OTQ2LDM3OTQ0LDM3OTM4LDM3OTMxLDM4MzcwLDM4NzEyLDM4NzEzLDM4NzA2LDM4OTExLDM5MDE1LDM5MDEzLDM5MjU1LDM5NDkz''@;'; + put 'put ''LDM5NDkxLDM5NDg4LDM5NDg2LDM5NjMxLDM5NzY0LDM5NzYxLDM5OTgxLDM5OTczLDQwMzY3LDQwMzcyLDQwMzg2LDQwMzc2LDQwNjA1LDQwNjg3LDQwNzI5LDQwNzk2LDQwODA2LDQwODA3LDIwNzk2LDIwNzk1LDIyMjE2LDIyMjE4LDIyMjE3LDIzNDIzLDI0MDIwLDI0MDE4LDI0Mzk4LDI1''@;'; + put 'put ''MDg3LDI1ODkyLDI3NDAyLDI3NDg5LDI4NzUzLDI4NzYwLDI5NTY4LDI5OTI0LDMwMDkwLDMwMzE4LDMwMzE2LDMxMTU1LDMxODQwLDMxODM5LDMyODk0LDMyODkzLDMzMjQ3LDM1MTg2LDM1MTgzLDM1MzI0LDM1NzEyLDM2MTE4LDM2MTE5LDM2NDk3LDM2NDk5LDM2NzA1LDM3MTkyLDM3OTU2''@;'; + put 'put ''LDM3OTY5LDM3OTcwLDM4NzE3LDM4NzE4LDM4ODUxLDM4ODQ5LDM5MDE5LDM5MjUzLDM5NTA5LDM5NTAxLDM5NjM0LDM5NzA2LDQwMDA5LDM5OTg1LDM5OTk4LDM5OTk1LDQwNDAzLDQwNDA3LDQwNzU2LDQwODEyLDQwODEwLDQwODUyLDIyMjIwLDI0MDIyLDI1MDg4LDI1ODkxLDI1ODk5LDI1''@;'; + put 'put ''ODk4LDI2MzQ4LDI3NDA4LDI5OTE0LDMxNDM0LDMxODQ0LDMxODQzLDMxODQ1LDMyNDAzLDMyNDA2LDMyNDA0LDMzMjUwLDM0MzYwLDM0MzY3LDM0ODY1LDM1NzIyLDM3MDA4LDM3MDA3LDM3OTg3LDM3OTg0LDM3OTg4LDM4NzYwLDM5MDIzLDM5MjYwLDM5NTE0LDM5NTE1LDM5NTExLDM5NjM1''@;'; + put 'put ''LDM5NjM2LDM5NjMzLDQwMDIwLDQwMDIzLDQwMDIyLDQwNDIxLDQwNjA3LDQwNjkyLDIyMjI1LDIyNzYxLDI1OTAwLDI4NzY2LDMwMzIxLDMwMzIyLDMwNjc5LDMyNTkyLDMyNjQ4LDM0ODcwLDM0ODczLDM0OTE0LDM1NzMxLDM1NzMwLDM1NzM0LDMzMzk5LDM2MTIzLDM3MzEyLDM3OTk0LDM4''@;'; + put 'put ''NzIyLDM4NzI4LDM4NzI0LDM4ODU0LDM5MDI0LDM5NTE5LDM5NzE0LDM5NzY4LDQwMDMxLDQwNDQxLDQwNDQyLDQwNTcyLDQwNTczLDQwNzExLDQwODIzLDQwODE4LDI0MzA3LDI3NDE0LDI4NzcxLDMxODUyLDMxODU0LDM0ODc1LDM1MjY0LDM2NTEzLDM3MzEzLDM4MDAyLDM4ZTMsMzkwMjUs''@;'; + put 'put ''MzkyNjIsMzk2MzgsMzk3MTUsNDA2NTIsMjg3NzIsMzA2ODIsMzU3MzgsMzgwMDcsMzg4NTcsMzk1MjIsMzk1MjUsMzI0MTIsMzU3NDAsMzY1MjIsMzczMTcsMzgwMTMsMzgwMTQsMzgwMTIsNDAwNTUsNDAwNTYsNDA2OTUsMzU5MjQsMzgwMTUsNDA0NzQsMjkyMjQsMzk1MzAsMzk3MjksNDA0''@;'; + put 'put ''NzUsNDA0NzgsMzE4NTgsOTMxMiw5MzEzLDkzMTQsOTMxNSw5MzE2LDkzMTcsOTMxOCw5MzE5LDkzMjAsOTMyMSw5MzMyLDkzMzMsOTMzNCw5MzM1LDkzMzYsOTMzNyw5MzM4LDkzMzksOTM0MCw5MzQxLDg1NjAsODU2MSw4NTYyLDg1NjMsODU2NCw4NTY1LDg1NjYsODU2Nyw4NTY4LDg1Njks''@;'; + put 'put ''MjAwMjIsMjAwMzEsMjAxMDEsMjAxMjgsMjA4NjYsMjA4ODYsMjA5MDcsMjEyNDEsMjEzMDQsMjEzNTMsMjE0MzAsMjI3OTQsMjM0MjQsMjQwMjcsMTIwODMsMjQxOTEsMjQzMDgsMjQ0MDAsMjQ0MTcsMjU5MDgsMjYwODAsMzAwOTgsMzAzMjYsMzY3ODksMzg1ODIsMTY4LDcxMCwxMjU0MSwx''@;'; + put 'put ''MjU0MiwxMjQ0NSwxMjQ0NiwxMjI5MSwyMDE4OSwxMjI5MywxMjI5NCwxMjI5NSwxMjU0MCw2NTMzOSw2NTM0MSwxMDA0NSwxMjM1MywxMjM1NCwxMjM1NSwxMjM1NiwxMjM1NywxMjM1OCwxMjM1OSwxMjM2MCwxMjM2MSwxMjM2MiwxMjM2MywxMjM2NCwxMjM2NSwxMjM2NiwxMjM2NywxMjM2''@;'; + put 'put ''OCwxMjM2OSwxMjM3MCwxMjM3MSwxMjM3MiwxMjM3MywxMjM3NCwxMjM3NSwxMjM3NiwxMjM3NywxMjM3OCwxMjM3OSwxMjM4MCwxMjM4MSwxMjM4MiwxMjM4MywxMjM4NCwxMjM4NSwxMjM4NiwxMjM4NywxMjM4OCwxMjM4OSwxMjM5MCwxMjM5MSwxMjM5MiwxMjM5MywxMjM5NCwxMjM5NSwx''@;'; + put 'put ''MjM5NiwxMjM5NywxMjM5OCwxMjM5OSwxMjQwMCwxMjQwMSwxMjQwMiwxMjQwMywxMjQwNCwxMjQwNSwxMjQwNiwxMjQwNywxMjQwOCwxMjQwOSwxMjQxMCwxMjQxMSwxMjQxMiwxMjQxMywxMjQxNCwxMjQxNSwxMjQxNiwxMjQxNywxMjQxOCwxMjQxOSwxMjQyMCwxMjQyMSwxMjQyMiwxMjQy''@;'; + put 'put ''MywxMjQyNCwxMjQyNSwxMjQyNiwxMjQyNywxMjQyOCwxMjQyOSwxMjQzMCwxMjQzMSwxMjQzMiwxMjQzMywxMjQzNCwxMjQzNSwxMjQ0OSwxMjQ1MCwxMjQ1MSwxMjQ1MiwxMjQ1MywxMjQ1NCwxMjQ1NSwxMjQ1NiwxMjQ1NywxMjQ1OCwxMjQ1OSwxMjQ2MCwxMjQ2MSwxMjQ2MiwxMjQ2Mywx''@;'; + put 'put ''MjQ2NCwxMjQ2NSwxMjQ2NiwxMjQ2NywxMjQ2OCwxMjQ2OSwxMjQ3MCwxMjQ3MSwxMjQ3MiwxMjQ3MywxMjQ3NCwxMjQ3NSwxMjQ3NiwxMjQ3NywxMjQ3OCwxMjQ3OSwxMjQ4MCwxMjQ4MSwxMjQ4MiwxMjQ4MywxMjQ4NCwxMjQ4NSwxMjQ4NiwxMjQ4NywxMjQ4OCwxMjQ4OSwxMjQ5MCwxMjQ5''@;'; + put 'put ''MSwxMjQ5MiwxMjQ5MywxMjQ5NCwxMjQ5NSwxMjQ5NiwxMjQ5NywxMjQ5OCwxMjQ5OSwxMjUwMCwxMjUwMSwxMjUwMiwxMjUwMywxMjUwNCwxMjUwNSwxMjUwNiwxMjUwNywxMjUwOCwxMjUwOSwxMjUxMCwxMjUxMSwxMjUxMiwxMjUxMywxMjUxNCwxMjUxNSwxMjUxNiwxMjUxNywxMjUxOCwx''@;'; + put 'put ''MjUxOSwxMjUyMCwxMjUyMSwxMjUyMiwxMjUyMywxMjUyNCwxMjUyNSwxMjUyNiwxMjUyNywxMjUyOCwxMjUyOSwxMjUzMCwxMjUzMSwxMjUzMiwxMjUzMywxMjUzNCwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDI1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIs''@;'; + put 'put ''MTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMTA1LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQs''@;'; + put 'put ''MTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMyw4Njc5LDg2MzIsODYzMywxMjc1MSwxMzEyNzYsMjAwNTgsMTMxMjEwLDIwOTk0LDE3NTUzLDQwODgwLDIwODcyLDQwODgx''@;'; + put 'put ''LDE2MTI4NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDY1NTA2LDY1NTA4LDY1Mjg3LDY1MjgyLDEyODQ5LDg0NzAsODQ4MSwxMjQ0MywxMjQ0NCwxMTkwNCwxMTkwOCwxMTkxMCwxMTkxMSwxMTkxMiwxMTkxNCwxMTkxNiwxMTkxNywxMTkyNSwxMTkzMiwxMTkzMywxMTk0''@;'; + put 'put ''MSwxMTk0MywxMTk0NiwxMTk0OCwxMTk1MCwxMTk1OCwxMTk2NCwxMTk2NiwxMTk3NCwxMTk3OCwxMTk4MCwxMTk4MSwxMTk4MywxMTk5MCwxMTk5MSwxMTk5OCwxMjAwMyxudWxsLG51bGwsbnVsbCw2NDMsNTkyLDYwMyw1OTYsNjI5LDMzOSwyNDgsMzMxLDY1MCw2MTgsMjAwMzQsMjAwNjAs''@;'; + put 'put ''MjA5ODEsMjEyNzQsMjEzNzgsMTk5NzUsMTk5ODAsMjAwMzksMjAxMDksMjIyMzEsNjQwMTIsMjM2NjIsMjQ0MzUsMTk5ODMsMjA4NzEsMTk5ODIsMjAwMTQsMjAxMTUsMjAxNjIsMjAxNjksMjAxNjgsMjA4ODgsMjEyNDQsMjEzNTYsMjE0MzMsMjIzMDQsMjI3ODcsMjI4MjgsMjM1NjgsMjQw''@;'; + put 'put ''NjMsMjYwODEsMjc1NzEsMjc1OTYsMjc2NjgsMjkyNDcsMjAwMTcsMjAwMjgsMjAyMDAsMjAxODgsMjAyMDEsMjAxOTMsMjAxODksMjAxODYsMjEwMDQsMjEyNzYsMjEzMjQsMjIzMDYsMjIzMDcsMjI4MDcsMjI4MzEsMjM0MjUsMjM0MjgsMjM1NzAsMjM2MTEsMjM2NjgsMjM2NjcsMjQwNjgs''@;'; + put 'put ''MjQxOTIsMjQxOTQsMjQ1MjEsMjUwOTcsMjUxNjgsMjc2NjksMjc3MDIsMjc3MTUsMjc3MTEsMjc3MDcsMjkzNTgsMjkzNjAsMjk1NzgsMzExNjAsMzI5MDYsMzg0MzAsMjAyMzgsMjAyNDgsMjAyNjgsMjAyMTMsMjAyNDQsMjAyMDksMjAyMjQsMjAyMTUsMjAyMzIsMjAyNTMsMjAyMjYsMjAy''@;'; + put 'put ''MjksMjAyNTgsMjAyNDMsMjAyMjgsMjAyMTIsMjAyNDIsMjA5MTMsMjEwMTEsMjEwMDEsMjEwMDgsMjExNTgsMjEyODIsMjEyNzksMjEzMjUsMjEzODYsMjE1MTEsMjIyNDEsMjIyMzksMjIzMTgsMjIzMTQsMjIzMjQsMjI4NDQsMjI5MTIsMjI5MDgsMjI5MTcsMjI5MDcsMjI5MTAsMjI5MDMs''@;'; + put 'put ''MjI5MTEsMjMzODIsMjM1NzMsMjM1ODksMjM2NzYsMjM2NzQsMjM2NzUsMjM2NzgsMjQwMzEsMjQxODEsMjQxOTYsMjQzMjIsMjQzNDYsMjQ0MzYsMjQ1MzMsMjQ1MzIsMjQ1MjcsMjUxODAsMjUxODIsMjUxODgsMjUxODUsMjUxOTAsMjUxODYsMjUxNzcsMjUxODQsMjUxNzgsMjUxODksMjYw''@;'; + put 'put ''OTUsMjYwOTQsMjY0MzAsMjY0MjUsMjY0MjQsMjY0MjcsMjY0MjYsMjY0MzEsMjY0MjgsMjY0MTksMjc2NzIsMjc3MTgsMjc3MzAsMjc3NDAsMjc3MjcsMjc3MjIsMjc3MzIsMjc3MjMsMjc3MjQsMjg3ODUsMjkyNzgsMjkzNjQsMjkzNjUsMjk1ODIsMjk5OTQsMzAzMzUsMzEzNDksMzI1OTMs''@;'; + put 'put ''MzM0MDAsMzM0MDQsMzM0MDgsMzM0MDUsMzM0MDcsMzQzODEsMzUxOTgsMzcwMTcsMzcwMTUsMzcwMTYsMzcwMTksMzcwMTIsMzg0MzQsMzg0MzYsMzg0MzIsMzg0MzUsMjAzMTAsMjAyODMsMjAzMjIsMjAyOTcsMjAzMDcsMjAzMjQsMjAyODYsMjAzMjcsMjAzMDYsMjAzMTksMjAyODksMjAz''@;'; + put 'put ''MTIsMjAyNjksMjAyNzUsMjAyODcsMjAzMjEsMjA4NzksMjA5MjEsMjEwMjAsMjEwMjIsMjEwMjUsMjExNjUsMjExNjYsMjEyNTcsMjEzNDcsMjEzNjIsMjEzOTAsMjEzOTEsMjE1NTIsMjE1NTksMjE1NDYsMjE1ODgsMjE1NzMsMjE1MjksMjE1MzIsMjE1NDEsMjE1MjgsMjE1NjUsMjE1ODMs''@;'; + put 'put ''MjE1NjksMjE1NDQsMjE1NDAsMjE1NzUsMjIyNTQsMjIyNDcsMjIyNDUsMjIzMzcsMjIzNDEsMjIzNDgsMjIzNDUsMjIzNDcsMjIzNTQsMjI3OTAsMjI4NDgsMjI5NTAsMjI5MzYsMjI5NDQsMjI5MzUsMjI5MjYsMjI5NDYsMjI5MjgsMjI5MjcsMjI5NTEsMjI5NDUsMjM0MzgsMjM0NDIsMjM1''@;'; + put 'put ''OTIsMjM1OTQsMjM2OTMsMjM2OTUsMjM2ODgsMjM2OTEsMjM2ODksMjM2OTgsMjM2OTAsMjM2ODYsMjM2OTksMjM3MDEsMjQwMzIsMjQwNzQsMjQwNzgsMjQyMDMsMjQyMDEsMjQyMDQsMjQyMDAsMjQyMDUsMjQzMjUsMjQzNDksMjQ0NDAsMjQ0MzgsMjQ1MzAsMjQ1MjksMjQ1MjgsMjQ1NTcs''@;'; + put 'put ''MjQ1NTIsMjQ1NTgsMjQ1NjMsMjQ1NDUsMjQ1NDgsMjQ1NDcsMjQ1NzAsMjQ1NTksMjQ1NjcsMjQ1NzEsMjQ1NzYsMjQ1NjQsMjUxNDYsMjUyMTksMjUyMjgsMjUyMzAsMjUyMzEsMjUyMzYsMjUyMjMsMjUyMDEsMjUyMTEsMjUyMTAsMjUyMDAsMjUyMTcsMjUyMjQsMjUyMDcsMjUyMTMsMjUy''@;'; + put 'put ''MDIsMjUyMDQsMjU5MTEsMjYwOTYsMjYxMDAsMjYwOTksMjYwOTgsMjYxMDEsMjY0MzcsMjY0MzksMjY0NTcsMjY0NTMsMjY0NDQsMjY0NDAsMjY0NjEsMjY0NDUsMjY0NTgsMjY0NDMsMjc2MDAsMjc2NzMsMjc2NzQsMjc3NjgsMjc3NTEsMjc3NTUsMjc3ODAsMjc3ODcsMjc3OTEsMjc3NjEs''@;'; + put 'put ''Mjc3NTksMjc3NTMsMjc4MDIsMjc3NTcsMjc3ODMsMjc3OTcsMjc4MDQsMjc3NTAsMjc3NjMsMjc3NDksMjc3NzEsMjc3OTAsMjg3ODgsMjg3OTQsMjkyODMsMjkzNzUsMjkzNzMsMjkzNzksMjkzODIsMjkzNzcsMjkzNzAsMjkzODEsMjk1ODksMjk1OTEsMjk1ODcsMjk1ODgsMjk1ODYsMzAw''@;'; + put 'put ''MTAsMzAwMDksMzAxMDAsMzAxMDEsMzAzMzcsMzEwMzcsMzI4MjAsMzI5MTcsMzI5MjEsMzI5MTIsMzI5MTQsMzI5MjQsMzM0MjQsMzM0MjMsMzM0MTMsMzM0MjIsMzM0MjUsMzM0MjcsMzM0MTgsMzM0MTEsMzM0MTIsMzU5NjAsMzY4MDksMzY3OTksMzcwMjMsMzcwMjUsMzcwMjksMzcwMjIs''@;'; + put 'put ''MzcwMzEsMzcwMjQsMzg0NDgsMzg0NDAsMzg0NDcsMzg0NDUsMjAwMTksMjAzNzYsMjAzNDgsMjAzNTcsMjAzNDksMjAzNTIsMjAzNTksMjAzNDIsMjAzNDAsMjAzNjEsMjAzNTYsMjAzNDMsMjAzMDAsMjAzNzUsMjAzMzAsMjAzNzgsMjAzNDUsMjAzNTMsMjAzNDQsMjAzNjgsMjAzODAsMjAz''@;'; + put 'put ''NzIsMjAzODIsMjAzNzAsMjAzNTQsMjAzNzMsMjAzMzEsMjAzMzQsMjA4OTQsMjA5MjQsMjA5MjYsMjEwNDUsMjEwNDIsMjEwNDMsMjEwNjIsMjEwNDEsMjExODAsMjEyNTgsMjEyNTksMjEzMDgsMjEzOTQsMjEzOTYsMjE2MzksMjE2MzEsMjE2MzMsMjE2NDksMjE2MzQsMjE2NDAsMjE2MTEs''@;'; + put 'put ''MjE2MjYsMjE2MzAsMjE2MDUsMjE2MTIsMjE2MjAsMjE2MDYsMjE2NDUsMjE2MTUsMjE2MDEsMjE2MDAsMjE2NTYsMjE2MDMsMjE2MDcsMjE2MDQsMjIyNjMsMjIyNjUsMjIzODMsMjIzODYsMjIzODEsMjIzNzksMjIzODUsMjIzODQsMjIzOTAsMjI0MDAsMjIzODksMjIzOTUsMjIzODcsMjIz''@;'; + put 'put ''ODgsMjIzNzAsMjIzNzYsMjIzOTcsMjI3OTYsMjI4NTMsMjI5NjUsMjI5NzAsMjI5OTEsMjI5OTAsMjI5NjIsMjI5ODgsMjI5NzcsMjI5NjYsMjI5NzIsMjI5NzksMjI5OTgsMjI5NjEsMjI5NzMsMjI5NzYsMjI5ODQsMjI5NjQsMjI5ODMsMjMzOTQsMjMzOTcsMjM0NDMsMjM0NDUsMjM2MjAs''@;'; + put 'put ''MjM2MjMsMjM3MjYsMjM3MTYsMjM3MTIsMjM3MzMsMjM3MjcsMjM3MjAsMjM3MjQsMjM3MTEsMjM3MTUsMjM3MjUsMjM3MTQsMjM3MjIsMjM3MTksMjM3MDksMjM3MTcsMjM3MzQsMjM3MjgsMjM3MTgsMjQwODcsMjQwODQsMjQwODksMjQzNjAsMjQzNTQsMjQzNTUsMjQzNTYsMjQ0MDQsMjQ0''@;'; + put 'put ''NTAsMjQ0NDYsMjQ0NDUsMjQ1NDIsMjQ1NDksMjQ2MjEsMjQ2MTQsMjQ2MDEsMjQ2MjYsMjQ1ODcsMjQ2MjgsMjQ1ODYsMjQ1OTksMjQ2MjcsMjQ2MDIsMjQ2MDYsMjQ2MjAsMjQ2MTAsMjQ1ODksMjQ1OTIsMjQ2MjIsMjQ1OTUsMjQ1OTMsMjQ1ODgsMjQ1ODUsMjQ2MDQsMjUxMDgsMjUxNDks''@;'; + put 'put ''MjUyNjEsMjUyNjgsMjUyOTcsMjUyNzgsMjUyNTgsMjUyNzAsMjUyOTAsMjUyNjIsMjUyNjcsMjUyNjMsMjUyNzUsMjUyNTcsMjUyNjQsMjUyNzIsMjU5MTcsMjYwMjQsMjYwNDMsMjYxMjEsMjYxMDgsMjYxMTYsMjYxMzAsMjYxMjAsMjYxMDcsMjYxMTUsMjYxMjMsMjYxMjUsMjYxMTcsMjYx''@;'; + put 'put ''MDksMjYxMjksMjYxMjgsMjYzNTgsMjYzNzgsMjY1MDEsMjY0NzYsMjY1MTAsMjY1MTQsMjY0ODYsMjY0OTEsMjY1MjAsMjY1MDIsMjY1MDAsMjY0ODQsMjY1MDksMjY1MDgsMjY0OTAsMjY1MjcsMjY1MTMsMjY1MjEsMjY0OTksMjY0OTMsMjY0OTcsMjY0ODgsMjY0ODksMjY1MTYsMjc0Mjks''@;'; + put 'put ''Mjc1MjAsMjc1MTgsMjc2MTQsMjc2NzcsMjc3OTUsMjc4ODQsMjc4ODMsMjc4ODYsMjc4NjUsMjc4MzAsMjc4NjAsMjc4MjEsMjc4NzksMjc4MzEsMjc4NTYsMjc4NDIsMjc4MzQsMjc4NDMsMjc4NDYsMjc4ODUsMjc4OTAsMjc4NTgsMjc4NjksMjc4MjgsMjc3ODYsMjc4MDUsMjc3NzYsMjc4''@;'; + put 'put ''NzAsMjc4NDAsMjc5NTIsMjc4NTMsMjc4NDcsMjc4MjQsMjc4OTcsMjc4NTUsMjc4ODEsMjc4NTcsMjg4MjAsMjg4MjQsMjg4MDUsMjg4MTksMjg4MDYsMjg4MDQsMjg4MTcsMjg4MjIsMjg4MDIsMjg4MjYsMjg4MDMsMjkyOTAsMjkzOTgsMjkzODcsMjk0MDAsMjkzODUsMjk0MDQsMjkzOTQs''@;'; + put 'put ''MjkzOTYsMjk0MDIsMjkzODgsMjkzOTMsMjk2MDQsMjk2MDEsMjk2MTMsMjk2MDYsMjk2MDIsMjk2MDAsMjk2MTIsMjk1OTcsMjk5MTcsMjk5MjgsMzAwMTUsMzAwMTYsMzAwMTQsMzAwOTIsMzAxMDQsMzAzODMsMzA0NTEsMzA0NDksMzA0NDgsMzA0NTMsMzA3MTIsMzA3MTYsMzA3MTMsMzA3''@;'; + put 'put ''MTUsMzA3MTQsMzA3MTEsMzEwNDIsMzEwMzksMzExNzMsMzEzNTIsMzEzNTUsMzE0ODMsMzE4NjEsMzE5OTcsMzI4MjEsMzI5MTEsMzI5NDIsMzI5MzEsMzI5NTIsMzI5NDksMzI5NDEsMzMzMTIsMzM0NDAsMzM0NzIsMzM0NTEsMzM0MzQsMzM0MzIsMzM0MzUsMzM0NjEsMzM0NDcsMzM0NTQs''@;'; + put 'put ''MzM0NjgsMzM0MzgsMzM0NjYsMzM0NjAsMzM0NDgsMzM0NDEsMzM0NDksMzM0NzQsMzM0NDQsMzM0NzUsMzM0NjIsMzM0NDIsMzQ0MTYsMzQ0MTUsMzQ0MTMsMzQ0MTQsMzU5MjYsMzY4MTgsMzY4MTEsMzY4MTksMzY4MTMsMzY4MjIsMzY4MjEsMzY4MjMsMzcwNDIsMzcwNDQsMzcwMzksMzcw''@;'; + put 'put ''NDMsMzcwNDAsMzg0NTcsMzg0NjEsMzg0NjAsMzg0NTgsMzg0NjcsMjA0MjksMjA0MjEsMjA0MzUsMjA0MDIsMjA0MjUsMjA0MjcsMjA0MTcsMjA0MzYsMjA0NDQsMjA0NDEsMjA0MTEsMjA0MDMsMjA0NDMsMjA0MjMsMjA0MzgsMjA0MTAsMjA0MTYsMjA0MDksMjA0NjAsMjEwNjAsMjEwNjUs''@;'; + put 'put ''MjExODQsMjExODYsMjEzMDksMjEzNzIsMjEzOTksMjEzOTgsMjE0MDEsMjE0MDAsMjE2OTAsMjE2NjUsMjE2NzcsMjE2NjksMjE3MTEsMjE2OTksMzM1NDksMjE2ODcsMjE2NzgsMjE3MTgsMjE2ODYsMjE3MDEsMjE3MDIsMjE2NjQsMjE2MTYsMjE2OTIsMjE2NjYsMjE2OTQsMjE2MTgsMjE3''@;'; + put 'put ''MjYsMjE2ODAsMjI0NTMsMjI0MzAsMjI0MzEsMjI0MzYsMjI0MTIsMjI0MjMsMjI0MjksMjI0MjcsMjI0MjAsMjI0MjQsMjI0MTUsMjI0MjUsMjI0MzcsMjI0MjYsMjI0MjEsMjI3NzIsMjI3OTcsMjI4NjcsMjMwMDksMjMwMDYsMjMwMjIsMjMwNDAsMjMwMjUsMjMwMDUsMjMwMzQsMjMwMzcs''@;'; + put 'put ''MjMwMzYsMjMwMzAsMjMwMTIsMjMwMjYsMjMwMzEsMjMwMDMsMjMwMTcsMjMwMjcsMjMwMjksMjMwMDgsMjMwMzgsMjMwMjgsMjMwMjEsMjM0NjQsMjM2MjgsMjM3NjAsMjM3NjgsMjM3NTYsMjM3NjcsMjM3NTUsMjM3NzEsMjM3NzQsMjM3NzAsMjM3NTMsMjM3NTEsMjM3NTQsMjM3NjYsMjM3''@;'; + put 'put ''NjMsMjM3NjQsMjM3NTksMjM3NTIsMjM3NTAsMjM3NTgsMjM3NzUsMjM4MDAsMjQwNTcsMjQwOTcsMjQwOTgsMjQwOTksMjQwOTYsMjQxMDAsMjQyNDAsMjQyMjgsMjQyMjYsMjQyMTksMjQyMjcsMjQyMjksMjQzMjcsMjQzNjYsMjQ0MDYsMjQ0NTQsMjQ2MzEsMjQ2MzMsMjQ2NjAsMjQ2OTAs''@;'; + put 'put ''MjQ2NzAsMjQ2NDUsMjQ2NTksMjQ2NDcsMjQ2NDksMjQ2NjcsMjQ2NTIsMjQ2NDAsMjQ2NDIsMjQ2NzEsMjQ2MTIsMjQ2NDQsMjQ2NjQsMjQ2NzgsMjQ2ODYsMjUxNTQsMjUxNTUsMjUyOTUsMjUzNTcsMjUzNTUsMjUzMzMsMjUzNTgsMjUzNDcsMjUzMjMsMjUzMzcsMjUzNTksMjUzNTYsMjUz''@;'; + put 'put ''MzYsMjUzMzQsMjUzNDQsMjUzNjMsMjUzNjQsMjUzMzgsMjUzNjUsMjUzMzksMjUzMjgsMjU5MjEsMjU5MjMsMjYwMjYsMjYwNDcsMjYxNjYsMjYxNDUsMjYxNjIsMjYxNjUsMjYxNDAsMjYxNTAsMjYxNDYsMjYxNjMsMjYxNTUsMjYxNzAsMjYxNDEsMjYxNjQsMjYxNjksMjYxNTgsMjYzODMs''@;'; + put 'put ''MjYzODQsMjY1NjEsMjY2MTAsMjY1NjgsMjY1NTQsMjY1ODgsMjY1NTUsMjY2MTYsMjY1ODQsMjY1NjAsMjY1NTEsMjY1NjUsMjY2MDMsMjY1OTYsMjY1OTEsMjY1NDksMjY1NzMsMjY1NDcsMjY2MTUsMjY2MTQsMjY2MDYsMjY1OTUsMjY1NjIsMjY1NTMsMjY1NzQsMjY1OTksMjY2MDgsMjY1''@;'; + put 'put ''NDYsMjY2MjAsMjY1NjYsMjY2MDUsMjY1NzIsMjY1NDIsMjY1OTgsMjY1ODcsMjY2MTgsMjY1NjksMjY1NzAsMjY1NjMsMjY2MDIsMjY1NzEsMjc0MzIsMjc1MjIsMjc1MjQsMjc1NzQsMjc2MDYsMjc2MDgsMjc2MTYsMjc2ODAsMjc2ODEsMjc5NDQsMjc5NTYsMjc5NDksMjc5MzUsMjc5NjQs''@;'; + put 'put ''Mjc5NjcsMjc5MjIsMjc5MTQsMjc4NjYsMjc5NTUsMjc5MDgsMjc5MjksMjc5NjIsMjc5MzAsMjc5MjEsMjc5MDQsMjc5MzMsMjc5NzAsMjc5MDUsMjc5MjgsMjc5NTksMjc5MDcsMjc5MTksMjc5NjgsMjc5MTEsMjc5MzYsMjc5NDgsMjc5MTIsMjc5MzgsMjc5MTMsMjc5MjAsMjg4NTUsMjg4''@;'; + put 'put ''MzEsMjg4NjIsMjg4NDksMjg4NDgsMjg4MzMsMjg4NTIsMjg4NTMsMjg4NDEsMjkyNDksMjkyNTcsMjkyNTgsMjkyOTIsMjkyOTYsMjkyOTksMjkyOTQsMjkzODYsMjk0MTIsMjk0MTYsMjk0MTksMjk0MDcsMjk0MTgsMjk0MTQsMjk0MTEsMjk1NzMsMjk2NDQsMjk2MzQsMjk2NDAsMjk2Mzcs''@;'; + put 'put ''Mjk2MjUsMjk2MjIsMjk2MjEsMjk2MjAsMjk2NzUsMjk2MzEsMjk2MzksMjk2MzAsMjk2MzUsMjk2MzgsMjk2MjQsMjk2NDMsMjk5MzIsMjk5MzQsMjk5OTgsMzAwMjMsMzAwMjQsMzAxMTksMzAxMjIsMzAzMjksMzA0MDQsMzA0NzIsMzA0NjcsMzA0NjgsMzA0NjksMzA0NzQsMzA0NTUsMzA0''@;'; + put 'put ''NTksMzA0NTgsMzA2OTUsMzA2OTYsMzA3MjYsMzA3MzcsMzA3MzgsMzA3MjUsMzA3MzYsMzA3MzUsMzA3MzQsMzA3MjksMzA3MjMsMzA3MzksMzEwNTAsMzEwNTIsMzEwNTEsMzEwNDUsMzEwNDQsMzExODksMzExODEsMzExODMsMzExOTAsMzExODIsMzEzNjAsMzEzNTgsMzE0NDEsMzE0ODgs''@;'; + put 'put ''MzE0ODksMzE4NjYsMzE4NjQsMzE4NjUsMzE4NzEsMzE4NzIsMzE4NzMsMzIwMDMsMzIwMDgsMzIwMDEsMzI2MDAsMzI2NTcsMzI2NTMsMzI3MDIsMzI3NzUsMzI3ODIsMzI3ODMsMzI3ODgsMzI4MjMsMzI5ODQsMzI5NjcsMzI5OTIsMzI5NzcsMzI5NjgsMzI5NjIsMzI5NzYsMzI5NjUsMzI5''@;'; + put 'put ''OTUsMzI5ODUsMzI5ODgsMzI5NzAsMzI5ODEsMzI5NjksMzI5NzUsMzI5ODMsMzI5OTgsMzI5NzMsMzMyNzksMzMzMTMsMzM0MjgsMzM0OTcsMzM1MzQsMzM1MjksMzM1NDMsMzM1MTIsMzM1MzYsMzM0OTMsMzM1OTQsMzM1MTUsMzM0OTQsMzM1MjQsMzM1MTYsMzM1MDUsMzM1MjIsMzM1MjUs''@;'; + put 'put ''MzM1NDgsMzM1MzEsMzM1MjYsMzM1MjAsMzM1MTQsMzM1MDgsMzM1MDQsMzM1MzAsMzM1MjMsMzM1MTcsMzQ0MjMsMzQ0MjAsMzQ0MjgsMzQ0MTksMzQ4ODEsMzQ4OTQsMzQ5MTksMzQ5MjIsMzQ5MjEsMzUyODMsMzUzMzIsMzUzMzUsMzYyMTAsMzY4MzUsMzY4MzMsMzY4NDYsMzY4MzIsMzcx''@;'; + put 'put ''MDUsMzcwNTMsMzcwNTUsMzcwNzcsMzcwNjEsMzcwNTQsMzcwNjMsMzcwNjcsMzcwNjQsMzczMzIsMzczMzEsMzg0ODQsMzg0NzksMzg0ODEsMzg0ODMsMzg0NzQsMzg0NzgsMjA1MTAsMjA0ODUsMjA0ODcsMjA0OTksMjA1MTQsMjA1MjgsMjA1MDcsMjA0NjksMjA0NjgsMjA1MzEsMjA1MzUs''@;'; + put 'put ''MjA1MjQsMjA0NzAsMjA0NzEsMjA1MDMsMjA1MDgsMjA1MTIsMjA1MTksMjA1MzMsMjA1MjcsMjA1MjksMjA0OTQsMjA4MjYsMjA4ODQsMjA4ODMsMjA5MzgsMjA5MzIsMjA5MzMsMjA5MzYsMjA5NDIsMjEwODksMjEwODIsMjEwNzQsMjEwODYsMjEwODcsMjEwNzcsMjEwOTAsMjExOTcsMjEy''@;'; + put 'put ''NjIsMjE0MDYsMjE3OTgsMjE3MzAsMjE3ODMsMjE3NzgsMjE3MzUsMjE3NDcsMjE3MzIsMjE3ODYsMjE3NTksMjE3NjQsMjE3NjgsMjE3MzksMjE3NzcsMjE3NjUsMjE3NDUsMjE3NzAsMjE3NTUsMjE3NTEsMjE3NTIsMjE3MjgsMjE3NzQsMjE3NjMsMjE3NzEsMjIyNzMsMjIyNzQsMjI0NzYs''@;'; + put 'put ''MjI1NzgsMjI0ODUsMjI0ODIsMjI0NTgsMjI0NzAsMjI0NjEsMjI0NjAsMjI0NTYsMjI0NTQsMjI0NjMsMjI0NzEsMjI0ODAsMjI0NTcsMjI0NjUsMjI3OTgsMjI4NTgsMjMwNjUsMjMwNjIsMjMwODUsMjMwODYsMjMwNjEsMjMwNTUsMjMwNjMsMjMwNTAsMjMwNzAsMjMwOTEsMjM0MDQsMjM0''@;'; + put 'put ''NjMsMjM0NjksMjM0NjgsMjM1NTUsMjM2MzgsMjM2MzYsMjM3ODgsMjM4MDcsMjM3OTAsMjM3OTMsMjM3OTksMjM4MDgsMjM4MDEsMjQxMDUsMjQxMDQsMjQyMzIsMjQyMzgsMjQyMzQsMjQyMzYsMjQzNzEsMjQzNjgsMjQ0MjMsMjQ2NjksMjQ2NjYsMjQ2NzksMjQ2NDEsMjQ3MzgsMjQ3MTIs''@;'; + put 'put ''MjQ3MDQsMjQ3MjIsMjQ3MDUsMjQ3MzMsMjQ3MDcsMjQ3MjUsMjQ3MzEsMjQ3MjcsMjQ3MTEsMjQ3MzIsMjQ3MTgsMjUxMTMsMjUxNTgsMjUzMzAsMjUzNjAsMjU0MzAsMjUzODgsMjU0MTIsMjU0MTMsMjUzOTgsMjU0MTEsMjU1NzIsMjU0MDEsMjU0MTksMjU0MTgsMjU0MDQsMjUzODUsMjU0''@;'; + put 'put ''MDksMjUzOTYsMjU0MzIsMjU0MjgsMjU0MzMsMjUzODksMjU0MTUsMjUzOTUsMjU0MzQsMjU0MjUsMjU0MDAsMjU0MzEsMjU0MDgsMjU0MTYsMjU5MzAsMjU5MjYsMjYwNTQsMjYwNTEsMjYwNTIsMjYwNTAsMjYxODYsMjYyMDcsMjYxODMsMjYxOTMsMjYzODYsMjYzODcsMjY2NTUsMjY2NTAs''@;'; + put 'put ''MjY2OTcsMjY2NzQsMjY2NzUsMjY2ODMsMjY2OTksMjY3MDMsMjY2NDYsMjY2NzMsMjY2NTIsMjY2NzcsMjY2NjcsMjY2NjksMjY2NzEsMjY3MDIsMjY2OTIsMjY2NzYsMjY2NTMsMjY2NDIsMjY2NDQsMjY2NjIsMjY2NjQsMjY2NzAsMjY3MDEsMjY2ODIsMjY2NjEsMjY2NTYsMjc0MzYsMjc0''@;'; + put 'put ''MzksMjc0MzcsMjc0NDEsMjc0NDQsMjc1MDEsMzI4OTgsMjc1MjgsMjc2MjIsMjc2MjAsMjc2MjQsMjc2MTksMjc2MTgsMjc2MjMsMjc2ODUsMjgwMjYsMjgwMDMsMjgwMDQsMjgwMjIsMjc5MTcsMjgwMDEsMjgwNTAsMjc5OTIsMjgwMDIsMjgwMTMsMjgwMTUsMjgwNDksMjgwNDUsMjgxNDMs''@;'; + put 'put ''MjgwMzEsMjgwMzgsMjc5OTgsMjgwMDcsMjhlMywyODA1NSwyODAxNiwyODAyOCwyNzk5OSwyODAzNCwyODA1NiwyNzk1MSwyODAwOCwyODA0MywyODAzMCwyODAzMiwyODAzNiwyNzkyNiwyODAzNSwyODAyNywyODAyOSwyODAyMSwyODA0OCwyODg5MiwyODg4MywyODg4MSwyODg5MywyODg3''@;'; + put 'put ''NSwzMjU2OSwyODg5OCwyODg4NywyODg4MiwyODg5NCwyODg5NiwyODg4NCwyODg3NywyODg2OSwyODg3MCwyODg3MSwyODg5MCwyODg3OCwyODg5NywyOTI1MCwyOTMwNCwyOTMwMywyOTMwMiwyOTQ0MCwyOTQzNCwyOTQyOCwyOTQzOCwyOTQzMCwyOTQyNywyOTQzNSwyOTQ0MSwyOTY1MSwy''@;'; + put 'put ''OTY1NywyOTY2OSwyOTY1NCwyOTYyOCwyOTY3MSwyOTY2NywyOTY3MywyOTY2MCwyOTY1MCwyOTY1OSwyOTY1MiwyOTY2MSwyOTY1OCwyOTY1NSwyOTY1NiwyOTY3MiwyOTkxOCwyOTkxOSwyOTk0MCwyOTk0MSwyOTk4NSwzMDA0MywzMDA0NywzMDEyOCwzMDE0NSwzMDEzOSwzMDE0OCwzMDE0''@;'; + put 'put ''NCwzMDE0MywzMDEzNCwzMDEzOCwzMDM0NiwzMDQwOSwzMDQ5MywzMDQ5MSwzMDQ4MCwzMDQ4MywzMDQ4MiwzMDQ5OSwzMDQ4MSwzMDQ4NSwzMDQ4OSwzMDQ5MCwzMDQ5OCwzMDUwMywzMDc1NSwzMDc2NCwzMDc1NCwzMDc3MywzMDc2NywzMDc2MCwzMDc2NiwzMDc2MywzMDc1MywzMDc2MSwz''@;'; + put 'put ''MDc3MSwzMDc2MiwzMDc2OSwzMTA2MCwzMTA2NywzMTA1NSwzMTA2OCwzMTA1OSwzMTA1OCwzMTA1NywzMTIxMSwzMTIxMiwzMTIwMCwzMTIxNCwzMTIxMywzMTIxMCwzMTE5NiwzMTE5OCwzMTE5NywzMTM2NiwzMTM2OSwzMTM2NSwzMTM3MSwzMTM3MiwzMTM3MCwzMTM2NywzMTQ0OCwzMTUw''@;'; + put 'put ''NCwzMTQ5MiwzMTUwNywzMTQ5MywzMTUwMywzMTQ5NiwzMTQ5OCwzMTUwMiwzMTQ5NywzMTUwNiwzMTg3NiwzMTg4OSwzMTg4MiwzMTg4NCwzMTg4MCwzMTg4NSwzMTg3NywzMjAzMCwzMjAyOSwzMjAxNywzMjAxNCwzMjAyNCwzMjAyMiwzMjAxOSwzMjAzMSwzMjAxOCwzMjAxNSwzMjAxMiwz''@;'; + put 'put ''MjYwNCwzMjYwOSwzMjYwNiwzMjYwOCwzMjYwNSwzMjYwMywzMjY2MiwzMjY1OCwzMjcwNywzMjcwNiwzMjcwNCwzMjc5MCwzMjgzMCwzMjgyNSwzMzAxOCwzMzAxMCwzMzAxNywzMzAxMywzMzAyNSwzMzAxOSwzMzAyNCwzMzI4MSwzMzMyNywzMzMxNywzMzU4NywzMzU4MSwzMzYwNCwzMzU2''@;'; + put 'put ''MSwzMzYxNywzMzU3MywzMzYyMiwzMzU5OSwzMzYwMSwzMzU3NCwzMzU2NCwzMzU3MCwzMzYwMiwzMzYxNCwzMzU2MywzMzU3OCwzMzU0NCwzMzU5NiwzMzYxMywzMzU1OCwzMzU3MiwzMzU2OCwzMzU5MSwzMzU4MywzMzU3NywzMzYwNywzMzYwNSwzMzYxMiwzMzYxOSwzMzU2NiwzMzU4MCwz''@;'; + put 'put ''MzYxMSwzMzU3NSwzMzYwOCwzNDM4NywzNDM4NiwzNDQ2NiwzNDQ3MiwzNDQ1NCwzNDQ0NSwzNDQ0OSwzNDQ2MiwzNDQzOSwzNDQ1NSwzNDQzOCwzNDQ0MywzNDQ1OCwzNDQzNywzNDQ2OSwzNDQ1NywzNDQ2NSwzNDQ3MSwzNDQ1MywzNDQ1NiwzNDQ0NiwzNDQ2MSwzNDQ0OCwzNDQ1MiwzNDg4''@;'; + put 'put ''MywzNDg4NCwzNDkyNSwzNDkzMywzNDkzNCwzNDkzMCwzNDk0NCwzNDkyOSwzNDk0MywzNDkyNywzNDk0NywzNDk0MiwzNDkzMiwzNDk0MCwzNTM0NiwzNTkxMSwzNTkyNywzNTk2MywzNjAwNCwzNjAwMywzNjIxNCwzNjIxNiwzNjI3NywzNjI3OSwzNjI3OCwzNjU2MSwzNjU2MywzNjg2Miwz''@;'; + put 'put ''Njg1MywzNjg2NiwzNjg2MywzNjg1OSwzNjg2OCwzNjg2MCwzNjg1NCwzNzA3OCwzNzA4OCwzNzA4MSwzNzA4MiwzNzA5MSwzNzA4NywzNzA5MywzNzA4MCwzNzA4MywzNzA3OSwzNzA4NCwzNzA5MiwzNzIwMCwzNzE5OCwzNzE5OSwzNzMzMywzNzM0NiwzNzMzOCwzODQ5MiwzODQ5NSwzODU4''@;'; + put 'put ''OCwzOTEzOSwzOTY0NywzOTcyNywyMDA5NSwyMDU5MiwyMDU4NiwyMDU3NywyMDU3NCwyMDU3NiwyMDU2MywyMDU1NSwyMDU3MywyMDU5NCwyMDU1MiwyMDU1NywyMDU0NSwyMDU3MSwyMDU1NCwyMDU3OCwyMDUwMSwyMDU0OSwyMDU3NSwyMDU4NSwyMDU4NywyMDU3OSwyMDU4MCwyMDU1MCwy''@;'; + put 'put ''MDU0NCwyMDU5MCwyMDU5NSwyMDU2NywyMDU2MSwyMDk0NCwyMTA5OSwyMTEwMSwyMTEwMCwyMTEwMiwyMTIwNiwyMTIwMywyMTI5MywyMTQwNCwyMTg3NywyMTg3OCwyMTgyMCwyMTgzNywyMTg0MCwyMTgxMiwyMTgwMiwyMTg0MSwyMTg1OCwyMTgxNCwyMTgxMywyMTgwOCwyMTg0MiwyMTgy''@;'; + put 'put ''OSwyMTc3MiwyMTgxMCwyMTg2MSwyMTgzOCwyMTgxNywyMTgzMiwyMTgwNSwyMTgxOSwyMTgyNCwyMTgzNSwyMjI4MiwyMjI3OSwyMjUyMywyMjU0OCwyMjQ5OCwyMjUxOCwyMjQ5MiwyMjUxNiwyMjUyOCwyMjUwOSwyMjUyNSwyMjUzNiwyMjUyMCwyMjUzOSwyMjUxNSwyMjQ3OSwyMjUzNSwy''@;'; + put 'put ''MjUxMCwyMjQ5OSwyMjUxNCwyMjUwMSwyMjUwOCwyMjQ5NywyMjU0MiwyMjUyNCwyMjU0NCwyMjUwMywyMjUyOSwyMjU0MCwyMjUxMywyMjUwNSwyMjUxMiwyMjU0MSwyMjUzMiwyMjg3NiwyMzEzNiwyMzEyOCwyMzEyNSwyMzE0MywyMzEzNCwyMzA5NiwyMzA5MywyMzE0OSwyMzEyMCwyMzEz''@;'; + put 'put ''NSwyMzE0MSwyMzE0OCwyMzEyMywyMzE0MCwyMzEyNywyMzEwNywyMzEzMywyMzEyMiwyMzEwOCwyMzEzMSwyMzExMiwyMzE4MiwyMzEwMiwyMzExNywyMzA5NywyMzExNiwyMzE1MiwyMzE0NSwyMzExMSwyMzEyMSwyMzEyNiwyMzEwNiwyMzEzMiwyMzQxMCwyMzQwNiwyMzQ4OSwyMzQ4OCwy''@;'; + put 'put ''MzY0MSwyMzgzOCwyMzgxOSwyMzgzNywyMzgzNCwyMzg0MCwyMzgyMCwyMzg0OCwyMzgyMSwyMzg0NiwyMzg0NSwyMzgyMywyMzg1NiwyMzgyNiwyMzg0MywyMzgzOSwyMzg1NCwyNDEyNiwyNDExNiwyNDI0MSwyNDI0NCwyNDI0OSwyNDI0MiwyNDI0MywyNDM3NCwyNDM3NiwyNDQ3NSwyNDQ3''@;'; + put 'put ''MCwyNDQ3OSwyNDcxNCwyNDcyMCwyNDcxMCwyNDc2NiwyNDc1MiwyNDc2MiwyNDc4NywyNDc4OCwyNDc4MywyNDgwNCwyNDc5MywyNDc5NywyNDc3NiwyNDc1MywyNDc5NSwyNDc1OSwyNDc3OCwyNDc2NywyNDc3MSwyNDc4MSwyNDc2OCwyNTM5NCwyNTQ0NSwyNTQ4MiwyNTQ3NCwyNTQ2OSwy''@;'; + put 'put ''NTUzMywyNTUwMiwyNTUxNywyNTUwMSwyNTQ5NSwyNTUxNSwyNTQ4NiwyNTQ1NSwyNTQ3OSwyNTQ4OCwyNTQ1NCwyNTUxOSwyNTQ2MSwyNTUwMCwyNTQ1MywyNTUxOCwyNTQ2OCwyNTUwOCwyNTQwMywyNTUwMywyNTQ2NCwyNTQ3NywyNTQ3MywyNTQ4OSwyNTQ4NSwyNTQ1NiwyNTkzOSwyNjA2''@;'; + put 'put ''MSwyNjIxMywyNjIwOSwyNjIwMywyNjIwMSwyNjIwNCwyNjIxMCwyNjM5MiwyNjc0NSwyNjc1OSwyNjc2OCwyNjc4MCwyNjczMywyNjczNCwyNjc5OCwyNjc5NSwyNjk2NiwyNjczNSwyNjc4NywyNjc5NiwyNjc5MywyNjc0MSwyNjc0MCwyNjgwMiwyNjc2NywyNjc0MywyNjc3MCwyNjc0OCwy''@;'; + put 'put ''NjczMSwyNjczOCwyNjc5NCwyNjc1MiwyNjczNywyNjc1MCwyNjc3OSwyNjc3NCwyNjc2MywyNjc4NCwyNjc2MSwyNjc4OCwyNjc0NCwyNjc0NywyNjc2OSwyNjc2NCwyNjc2MiwyNjc0OSwyNzQ0NiwyNzQ0MywyNzQ0NywyNzQ0OCwyNzUzNywyNzUzNSwyNzUzMywyNzUzNCwyNzUzMiwyNzY5''@;'; + put 'put ''MCwyODA5NiwyODA3NSwyODA4NCwyODA4MywyODI3NiwyODA3NiwyODEzNywyODEzMCwyODA4NywyODE1MCwyODExNiwyODE2MCwyODEwNCwyODEyOCwyODEyNywyODExOCwyODA5NCwyODEzMywyODEyNCwyODEyNSwyODEyMywyODE0OCwyODEwNiwyODA5MywyODE0MSwyODE0NCwyODA5MCwy''@;'; + put 'put ''ODExNywyODA5OCwyODExMSwyODEwNSwyODExMiwyODE0NiwyODExNSwyODE1NywyODExOSwyODEwOSwyODEzMSwyODA5MSwyODkyMiwyODk0MSwyODkxOSwyODk1MSwyODkxNiwyODk0MCwyODkxMiwyODkzMiwyODkxNSwyODk0NCwyODkyNCwyODkyNywyODkzNCwyODk0NywyODkyOCwyODky''@;'; + put 'put ''MCwyODkxOCwyODkzOSwyODkzMCwyODk0MiwyOTMxMCwyOTMwNywyOTMwOCwyOTMxMSwyOTQ2OSwyOTQ2MywyOTQ0NywyOTQ1NywyOTQ2NCwyOTQ1MCwyOTQ0OCwyOTQzOSwyOTQ1NSwyOTQ3MCwyOTU3NiwyOTY4NiwyOTY4OCwyOTY4NSwyOTcwMCwyOTY5NywyOTY5MywyOTcwMywyOTY5Niwy''@;'; + put 'put ''OTY5MCwyOTY5MiwyOTY5NSwyOTcwOCwyOTcwNywyOTY4NCwyOTcwNCwzMDA1MiwzMDA1MSwzMDE1OCwzMDE2MiwzMDE1OSwzMDE1NSwzMDE1NiwzMDE2MSwzMDE2MCwzMDM1MSwzMDM0NSwzMDQxOSwzMDUyMSwzMDUxMSwzMDUwOSwzMDUxMywzMDUxNCwzMDUxNiwzMDUxNSwzMDUyNSwzMDUw''@;'; + put 'put ''MSwzMDUyMywzMDUxNywzMDc5MiwzMDgwMiwzMDc5MywzMDc5NywzMDc5NCwzMDc5NiwzMDc1OCwzMDc4OSwzMDgwMCwzMTA3NiwzMTA3OSwzMTA4MSwzMTA4MiwzMTA3NSwzMTA4MywzMTA3MywzMTE2MywzMTIyNiwzMTIyNCwzMTIyMiwzMTIyMywzMTM3NSwzMTM4MCwzMTM3NiwzMTU0MSwz''@;'; + put 'put ''MTU1OSwzMTU0MCwzMTUyNSwzMTUzNiwzMTUyMiwzMTUyNCwzMTUzOSwzMTUxMiwzMTUzMCwzMTUxNywzMTUzNywzMTUzMSwzMTUzMywzMTUzNSwzMTUzOCwzMTU0NCwzMTUxNCwzMTUyMywzMTg5MiwzMTg5NiwzMTg5NCwzMTkwNywzMjA1MywzMjA2MSwzMjA1NiwzMjA1NCwzMjA1OCwzMjA2''@;'; + put 'put ''OSwzMjA0NCwzMjA0MSwzMjA2NSwzMjA3MSwzMjA2MiwzMjA2MywzMjA3NCwzMjA1OSwzMjA0MCwzMjYxMSwzMjY2MSwzMjY2OCwzMjY2OSwzMjY2NywzMjcxNCwzMjcxNSwzMjcxNywzMjcyMCwzMjcyMSwzMjcxMSwzMjcxOSwzMjcxMywzMjc5OSwzMjc5OCwzMjc5NSwzMjgzOSwzMjgzNSwz''@;'; + put 'put ''Mjg0MCwzMzA0OCwzMzA2MSwzMzA0OSwzMzA1MSwzMzA2OSwzMzA1NSwzMzA2OCwzMzA1NCwzMzA1NywzMzA0NSwzMzA2MywzMzA1MywzMzA1OCwzMzI5NywzMzMzNiwzMzMzMSwzMzMzOCwzMzMzMiwzMzMzMCwzMzM5NiwzMzY4MCwzMzY5OSwzMzcwNCwzMzY3NywzMzY1OCwzMzY1MSwzMzcw''@;'; + put 'put ''MCwzMzY1MiwzMzY3OSwzMzY2NSwzMzY4NSwzMzY4OSwzMzY1MywzMzY4NCwzMzcwNSwzMzY2MSwzMzY2NywzMzY3NiwzMzY5MywzMzY5MSwzMzcwNiwzMzY3NSwzMzY2MiwzMzcwMSwzMzcxMSwzMzY3MiwzMzY4NywzMzcxMiwzMzY2MywzMzcwMiwzMzY3MSwzMzcxMCwzMzY1NCwzMzY5MCwz''@;'; + put 'put ''NDM5MywzNDM5MCwzNDQ5NSwzNDQ4NywzNDQ5OCwzNDQ5NywzNDUwMSwzNDQ5MCwzNDQ4MCwzNDUwNCwzNDQ4OSwzNDQ4MywzNDQ4OCwzNDUwOCwzNDQ4NCwzNDQ5MSwzNDQ5MiwzNDQ5OSwzNDQ5MywzNDQ5NCwzNDg5OCwzNDk1MywzNDk2NSwzNDk4NCwzNDk3OCwzNDk4NiwzNDk3MCwzNDk2''@;'; + put 'put ''MSwzNDk3NywzNDk3NSwzNDk2OCwzNDk4MywzNDk2OSwzNDk3MSwzNDk2NywzNDk4MCwzNDk4OCwzNDk1NiwzNDk2MywzNDk1OCwzNTIwMiwzNTI4NiwzNTI4OSwzNTI4NSwzNTM3NiwzNTM2NywzNTM3MiwzNTM1OCwzNTg5NywzNTg5OSwzNTkzMiwzNTkzMywzNTk2NSwzNjAwNSwzNjIyMSwz''@;'; + put 'put ''NjIxOSwzNjIxNywzNjI4NCwzNjI5MCwzNjI4MSwzNjI4NywzNjI4OSwzNjU2OCwzNjU3NCwzNjU3MywzNjU3MiwzNjU2NywzNjU3NiwzNjU3NywzNjkwMCwzNjg3NSwzNjg4MSwzNjg5MiwzNjg3NiwzNjg5NywzNzEwMywzNzA5OCwzNzEwNCwzNzEwOCwzNzEwNiwzNzEwNywzNzA3NiwzNzA5''@;'; + put 'put ''OSwzNzEwMCwzNzA5NywzNzIwNiwzNzIwOCwzNzIxMCwzNzIwMywzNzIwNSwzNzM1NiwzNzM2NCwzNzM2MSwzNzM2MywzNzM2OCwzNzM0OCwzNzM2OSwzNzM1NCwzNzM1NSwzNzM2NywzNzM1MiwzNzM1OCwzODI2NiwzODI3OCwzODI4MCwzODUyNCwzODUwOSwzODUwNywzODUxMywzODUxMSwz''@;'; + put 'put ''ODU5MSwzODc2MiwzODkxNiwzOTE0MSwzOTMxOSwyMDYzNSwyMDYyOSwyMDYyOCwyMDYzOCwyMDYxOSwyMDY0MywyMDYxMSwyMDYyMCwyMDYyMiwyMDYzNywyMDU4NCwyMDYzNiwyMDYyNiwyMDYxMCwyMDYxNSwyMDgzMSwyMDk0OCwyMTI2NiwyMTI2NSwyMTQxMiwyMTQxNSwyMTkwNSwyMTky''@;'; + put 'put ''OCwyMTkyNSwyMTkzMywyMTg3OSwyMjA4NSwyMTkyMiwyMTkwNywyMTg5NiwyMTkwMywyMTk0MSwyMTg4OSwyMTkyMywyMTkwNiwyMTkyNCwyMTg4NSwyMTkwMCwyMTkyNiwyMTg4NywyMTkwOSwyMTkyMSwyMTkwMiwyMjI4NCwyMjU2OSwyMjU4MywyMjU1MywyMjU1OCwyMjU2NywyMjU2Mywy''@;'; + put 'put ''MjU2OCwyMjUxNywyMjYwMCwyMjU2NSwyMjU1NiwyMjU1NSwyMjU3OSwyMjU5MSwyMjU4MiwyMjU3NCwyMjU4NSwyMjU4NCwyMjU3MywyMjU3MiwyMjU4NywyMjg4MSwyMzIxNSwyMzE4OCwyMzE5OSwyMzE2MiwyMzIwMiwyMzE5OCwyMzE2MCwyMzIwNiwyMzE2NCwyMzIwNSwyMzIxMiwyMzE4''@;'; + put 'put ''OSwyMzIxNCwyMzA5NSwyMzE3MiwyMzE3OCwyMzE5MSwyMzE3MSwyMzE3OSwyMzIwOSwyMzE2MywyMzE2NSwyMzE4MCwyMzE5NiwyMzE4MywyMzE4NywyMzE5NywyMzUzMCwyMzUwMSwyMzQ5OSwyMzUwOCwyMzUwNSwyMzQ5OCwyMzUwMiwyMzU2NCwyMzYwMCwyMzg2MywyMzg3NSwyMzkxNSwy''@;'; + put 'put ''Mzg3MywyMzg4MywyMzg3MSwyMzg2MSwyMzg4OSwyMzg4NiwyMzg5MywyMzg1OSwyMzg2NiwyMzg5MCwyMzg2OSwyMzg1NywyMzg5NywyMzg3NCwyMzg2NSwyMzg4MSwyMzg2NCwyMzg2OCwyMzg1OCwyMzg2MiwyMzg3MiwyMzg3NywyNDEzMiwyNDEyOSwyNDQwOCwyNDQ4NiwyNDQ4NSwyNDQ5''@;'; + put 'put ''MSwyNDc3NywyNDc2MSwyNDc4MCwyNDgwMiwyNDc4MiwyNDc3MiwyNDg1MiwyNDgxOCwyNDg0MiwyNDg1NCwyNDgzNywyNDgyMSwyNDg1MSwyNDgyNCwyNDgyOCwyNDgzMCwyNDc2OSwyNDgzNSwyNDg1NiwyNDg2MSwyNDg0OCwyNDgzMSwyNDgzNiwyNDg0MywyNTE2MiwyNTQ5MiwyNTUyMSwy''@;'; + put 'put ''NTUyMCwyNTU1MCwyNTU3MywyNTU3NiwyNTU4MywyNTUzOSwyNTc1NywyNTU4NywyNTU0NiwyNTU2OCwyNTU5MCwyNTU1NywyNTU4NiwyNTU4OSwyNTY5NywyNTU2NywyNTUzNCwyNTU2NSwyNTU2NCwyNTU0MCwyNTU2MCwyNTU1NSwyNTUzOCwyNTU0MywyNTU0OCwyNTU0NywyNTU0NCwyNTU4''@;'; + put 'put ''NCwyNTU1OSwyNTU2MSwyNTkwNiwyNTk1OSwyNTk2MiwyNTk1NiwyNTk0OCwyNTk2MCwyNTk1NywyNTk5NiwyNjAxMywyNjAxNCwyNjAzMCwyNjA2NCwyNjA2NiwyNjIzNiwyNjIyMCwyNjIzNSwyNjI0MCwyNjIyNSwyNjIzMywyNjIxOCwyNjIyNiwyNjM2OSwyNjg5MiwyNjgzNSwyNjg4NCwy''@;'; + put 'put ''Njg0NCwyNjkyMiwyNjg2MCwyNjg1OCwyNjg2NSwyNjg5NSwyNjgzOCwyNjg3MSwyNjg1OSwyNjg1MiwyNjg3MCwyNjg5OSwyNjg5NiwyNjg2NywyNjg0OSwyNjg4NywyNjgyOCwyNjg4OCwyNjk5MiwyNjgwNCwyNjg5NywyNjg2MywyNjgyMiwyNjkwMCwyNjg3MiwyNjgzMiwyNjg3NywyNjg3''@;'; + put 'put ''NiwyNjg1NiwyNjg5MSwyNjg5MCwyNjkwMywyNjgzMCwyNjgyNCwyNjg0NSwyNjg0NiwyNjg1NCwyNjg2OCwyNjgzMywyNjg4NiwyNjgzNiwyNjg1NywyNjkwMSwyNjkxNywyNjgyMywyNzQ0OSwyNzQ1MSwyNzQ1NSwyNzQ1MiwyNzU0MCwyNzU0MywyNzU0NSwyNzU0MSwyNzU4MSwyNzYzMiwy''@;'; + put 'put ''NzYzNCwyNzYzNSwyNzY5NiwyODE1NiwyODIzMCwyODIzMSwyODE5MSwyODIzMywyODI5NiwyODIyMCwyODIyMSwyODIyOSwyODI1OCwyODIwMywyODIyMywyODIyNSwyODI1MywyODI3NSwyODE4OCwyODIxMSwyODIzNSwyODIyNCwyODI0MSwyODIxOSwyODE2MywyODIwNiwyODI1NCwyODI2''@;'; + put 'put ''NCwyODI1MiwyODI1NywyODIwOSwyODIwMCwyODI1NiwyODI3MywyODI2NywyODIxNywyODE5NCwyODIwOCwyODI0MywyODI2MSwyODE5OSwyODI4MCwyODI2MCwyODI3OSwyODI0NSwyODI4MSwyODI0MiwyODI2MiwyODIxMywyODIxNCwyODI1MCwyODk2MCwyODk1OCwyODk3NSwyODkyMywy''@;'; + put 'put ''ODk3NCwyODk3NywyODk2MywyODk2NSwyODk2MiwyODk3OCwyODk1OSwyODk2OCwyODk4NiwyODk1NSwyOTI1OSwyOTI3NCwyOTMyMCwyOTMyMSwyOTMxOCwyOTMxNywyOTMyMywyOTQ1OCwyOTQ1MSwyOTQ4OCwyOTQ3NCwyOTQ4OSwyOTQ5MSwyOTQ3OSwyOTQ5MCwyOTQ4NSwyOTQ3OCwyOTQ3''@;'; + put 'put ''NSwyOTQ5MywyOTQ1MiwyOTc0MiwyOTc0MCwyOTc0NCwyOTczOSwyOTcxOCwyOTcyMiwyOTcyOSwyOTc0MSwyOTc0NSwyOTczMiwyOTczMSwyOTcyNSwyOTczNywyOTcyOCwyOTc0NiwyOTk0NywyOTk5OSwzMDA2MywzMDA2MCwzMDE4MywzMDE3MCwzMDE3NywzMDE4MiwzMDE3MywzMDE3NSwz''@;'; + put 'put ''MDE4MCwzMDE2NywzMDM1NywzMDM1NCwzMDQyNiwzMDUzNCwzMDUzNSwzMDUzMiwzMDU0MSwzMDUzMywzMDUzOCwzMDU0MiwzMDUzOSwzMDU0MCwzMDY4NiwzMDcwMCwzMDgxNiwzMDgyMCwzMDgyMSwzMDgxMiwzMDgyOSwzMDgzMywzMDgyNiwzMDgzMCwzMDgzMiwzMDgyNSwzMDgyNCwzMDgx''@;'; + put 'put ''NCwzMDgxOCwzMTA5MiwzMTA5MSwzMTA5MCwzMTA4OCwzMTIzNCwzMTI0MiwzMTIzNSwzMTI0NCwzMTIzNiwzMTM4NSwzMTQ2MiwzMTQ2MCwzMTU2MiwzMTU0NywzMTU1NiwzMTU2MCwzMTU2NCwzMTU2NiwzMTU1MiwzMTU3NiwzMTU1NywzMTkwNiwzMTkwMiwzMTkxMiwzMTkwNSwzMjA4OCwz''@;'; + put 'put ''MjExMSwzMjA5OSwzMjA4MywzMjA4NiwzMjEwMywzMjEwNiwzMjA3OSwzMjEwOSwzMjA5MiwzMjEwNywzMjA4MiwzMjA4NCwzMjEwNSwzMjA4MSwzMjA5NSwzMjA3OCwzMjU3NCwzMjU3NSwzMjYxMywzMjYxNCwzMjY3NCwzMjY3MiwzMjY3MywzMjcyNywzMjg0OSwzMjg0NywzMjg0OCwzMzAy''@;'; + put 'put ''MiwzMjk4MCwzMzA5MSwzMzA5OCwzMzEwNiwzMzEwMywzMzA5NSwzMzA4NSwzMzEwMSwzMzA4MiwzMzI1NCwzMzI2MiwzMzI3MSwzMzI3MiwzMzI3MywzMzI4NCwzMzM0MCwzMzM0MSwzMzM0MywzMzM5NywzMzU5NSwzMzc0MywzMzc4NSwzMzgyNywzMzcyOCwzMzc2OCwzMzgxMCwzMzc2Nywz''@;'; + put 'put ''Mzc2NCwzMzc4OCwzMzc4MiwzMzgwOCwzMzczNCwzMzczNiwzMzc3MSwzMzc2MywzMzcyNywzMzc5MywzMzc1NywzMzc2NSwzMzc1MiwzMzc5MSwzMzc2MSwzMzczOSwzMzc0MiwzMzc1MCwzMzc4MSwzMzczNywzMzgwMSwzMzgwNywzMzc1OCwzMzgwOSwzMzc5OCwzMzczMCwzMzc3OSwzMzc0''@;'; + put 'put ''OSwzMzc4NiwzMzczNSwzMzc0NSwzMzc3MCwzMzgxMSwzMzczMSwzMzc3MiwzMzc3NCwzMzczMiwzMzc4NywzMzc1MSwzMzc2MiwzMzgxOSwzMzc1NSwzMzc5MCwzNDUyMCwzNDUzMCwzNDUzNCwzNDUxNSwzNDUzMSwzNDUyMiwzNDUzOCwzNDUyNSwzNDUzOSwzNDUyNCwzNDU0MCwzNDUzNywz''@;'; + put 'put ''NDUxOSwzNDUzNiwzNDUxMywzNDg4OCwzNDkwMiwzNDkwMSwzNTAwMiwzNTAzMSwzNTAwMSwzNWUzLDM1MDA4LDM1MDA2LDM0OTk4LDM1MDA0LDM0OTk5LDM1MDA1LDM0OTk0LDM1MDczLDM1MDE3LDM1MjIxLDM1MjI0LDM1MjIzLDM1MjkzLDM1MjkwLDM1MjkxLDM1NDA2LDM1NDA1LDM1Mzg1''@;'; + put 'put ''LDM1NDE3LDM1MzkyLDM1NDE1LDM1NDE2LDM1Mzk2LDM1Mzk3LDM1NDEwLDM1NDAwLDM1NDA5LDM1NDAyLDM1NDA0LDM1NDA3LDM1OTM1LDM1OTY5LDM1OTY4LDM2MDI2LDM2MDMwLDM2MDE2LDM2MDI1LDM2MDIxLDM2MjI4LDM2MjI0LDM2MjMzLDM2MzEyLDM2MzA3LDM2MzAxLDM2Mjk1LDM2''@;'; + put 'put ''MzEwLDM2MzE2LDM2MzAzLDM2MzA5LDM2MzEzLDM2Mjk2LDM2MzExLDM2MjkzLDM2NTkxLDM2NTk5LDM2NjAyLDM2NjAxLDM2NTgyLDM2NTkwLDM2NTgxLDM2NTk3LDM2NTgzLDM2NTg0LDM2NTk4LDM2NTg3LDM2NTkzLDM2NTg4LDM2NTk2LDM2NTg1LDM2OTA5LDM2OTE2LDM2OTExLDM3MTI2''@;'; + put 'put ''LDM3MTY0LDM3MTI0LDM3MTE5LDM3MTE2LDM3MTI4LDM3MTEzLDM3MTE1LDM3MTIxLDM3MTIwLDM3MTI3LDM3MTI1LDM3MTIzLDM3MjE3LDM3MjIwLDM3MjE1LDM3MjE4LDM3MjE2LDM3Mzc3LDM3Mzg2LDM3NDEzLDM3Mzc5LDM3NDAyLDM3NDE0LDM3MzkxLDM3Mzg4LDM3Mzc2LDM3Mzk0LDM3''@;'; + put 'put ''Mzc1LDM3MzczLDM3MzgyLDM3MzgwLDM3NDE1LDM3Mzc4LDM3NDA0LDM3NDEyLDM3NDAxLDM3Mzk5LDM3MzgxLDM3Mzk4LDM4MjY3LDM4Mjg1LDM4Mjg0LDM4Mjg4LDM4NTM1LDM4NTI2LDM4NTM2LDM4NTM3LDM4NTMxLDM4NTI4LDM4NTk0LDM4NjAwLDM4NTk1LDM4NjQxLDM4NjQwLDM4NzY0''@;'; + put 'put ''LDM4NzY4LDM4NzY2LDM4OTE5LDM5MDgxLDM5MTQ3LDQwMTY2LDQwNjk3LDIwMDk5LDIwMTAwLDIwMTUwLDIwNjY5LDIwNjcxLDIwNjc4LDIwNjU0LDIwNjc2LDIwNjgyLDIwNjYwLDIwNjgwLDIwNjc0LDIwNjU2LDIwNjczLDIwNjY2LDIwNjU3LDIwNjgzLDIwNjgxLDIwNjYyLDIwNjY0LDIw''@;'; + put 'put ''OTUxLDIxMTE0LDIxMTEyLDIxMTE1LDIxMTE2LDIxOTU1LDIxOTc5LDIxOTY0LDIxOTY4LDIxOTYzLDIxOTYyLDIxOTgxLDIxOTUyLDIxOTcyLDIxOTU2LDIxOTkzLDIxOTUxLDIxOTcwLDIxOTAxLDIxOTY3LDIxOTczLDIxOTg2LDIxOTc0LDIxOTYwLDIyMDAyLDIxOTY1LDIxOTc3LDIxOTU0''@;'; + put 'put ''LDIyMjkyLDIyNjExLDIyNjMyLDIyNjI4LDIyNjA3LDIyNjA1LDIyNjAxLDIyNjM5LDIyNjEzLDIyNjA2LDIyNjIxLDIyNjE3LDIyNjI5LDIyNjE5LDIyNTg5LDIyNjI3LDIyNjQxLDIyNzgwLDIzMjM5LDIzMjM2LDIzMjQzLDIzMjI2LDIzMjI0LDIzMjE3LDIzMjIxLDIzMjE2LDIzMjMxLDIz''@;'; + put 'put ''MjQwLDIzMjI3LDIzMjM4LDIzMjIzLDIzMjMyLDIzMjQyLDIzMjIwLDIzMjIyLDIzMjQ1LDIzMjI1LDIzMTg0LDIzNTEwLDIzNTEyLDIzNTEzLDIzNTgzLDIzNjAzLDIzOTIxLDIzOTA3LDIzODgyLDIzOTA5LDIzOTIyLDIzOTE2LDIzOTAyLDIzOTEyLDIzOTExLDIzOTA2LDI0MDQ4LDI0MTQz''@;'; + put 'put ''LDI0MTQyLDI0MTM4LDI0MTQxLDI0MTM5LDI0MjYxLDI0MjY4LDI0MjYyLDI0MjY3LDI0MjYzLDI0Mzg0LDI0NDk1LDI0NDkzLDI0ODIzLDI0OTA1LDI0OTA2LDI0ODc1LDI0OTAxLDI0ODg2LDI0ODgyLDI0ODc4LDI0OTAyLDI0ODc5LDI0OTExLDI0ODczLDI0ODk2LDI1MTIwLDM3MjI0LDI1''@;'; + put 'put ''MTIzLDI1MTI1LDI1MTI0LDI1NTQxLDI1NTg1LDI1NTc5LDI1NjE2LDI1NjE4LDI1NjA5LDI1NjMyLDI1NjM2LDI1NjUxLDI1NjY3LDI1NjMxLDI1NjIxLDI1NjI0LDI1NjU3LDI1NjU1LDI1NjM0LDI1NjM1LDI1NjEyLDI1NjM4LDI1NjQ4LDI1NjQwLDI1NjY1LDI1NjUzLDI1NjQ3LDI1NjEw''@;'; + put 'put ''LDI1NjI2LDI1NjY0LDI1NjM3LDI1NjM5LDI1NjExLDI1NTc1LDI1NjI3LDI1NjQ2LDI1NjMzLDI1NjE0LDI1OTY3LDI2MDAyLDI2MDY3LDI2MjQ2LDI2MjUyLDI2MjYxLDI2MjU2LDI2MjUxLDI2MjUwLDI2MjY1LDI2MjYwLDI2MjMyLDI2NDAwLDI2OTgyLDI2OTc1LDI2OTM2LDI2OTU4LDI2''@;'; + put 'put ''OTc4LDI2OTkzLDI2OTQzLDI2OTQ5LDI2OTg2LDI2OTM3LDI2OTQ2LDI2OTY3LDI2OTY5LDI3MDAyLDI2OTUyLDI2OTUzLDI2OTMzLDI2OTg4LDI2OTMxLDI2OTQxLDI2OTgxLDI2ODY0LDI3ZTMsMjY5MzIsMjY5ODUsMjY5NDQsMjY5OTEsMjY5NDgsMjY5OTgsMjY5NjgsMjY5NDUsMjY5OTYs''@;'; + put 'put ''MjY5NTYsMjY5MzksMjY5NTUsMjY5MzUsMjY5NzIsMjY5NTksMjY5NjEsMjY5MzAsMjY5NjIsMjY5MjcsMjcwMDMsMjY5NDAsMjc0NjIsMjc0NjEsMjc0NTksMjc0NTgsMjc0NjQsMjc0NTcsMjc1NDcsNjQwMTMsMjc2NDMsMjc2NDQsMjc2NDEsMjc2MzksMjc2NDAsMjgzMTUsMjgzNzQsMjgz''@;'; + put 'put ''NjAsMjgzMDMsMjgzNTIsMjgzMTksMjgzMDcsMjgzMDgsMjgzMjAsMjgzMzcsMjgzNDUsMjgzNTgsMjgzNzAsMjgzNDksMjgzNTMsMjgzMTgsMjgzNjEsMjgzNDMsMjgzMzYsMjgzNjUsMjgzMjYsMjgzNjcsMjgzMzgsMjgzNTAsMjgzNTUsMjgzODAsMjgzNzYsMjgzMTMsMjgzMDYsMjgzMDIs''@;'; + put 'put ''MjgzMDEsMjgzMjQsMjgzMjEsMjgzNTEsMjgzMzksMjgzNjgsMjgzNjIsMjgzMTEsMjgzMzQsMjgzMjMsMjg5OTksMjkwMTIsMjkwMTAsMjkwMjcsMjkwMjQsMjg5OTMsMjkwMjEsMjkwMjYsMjkwNDIsMjkwNDgsMjkwMzQsMjkwMjUsMjg5OTQsMjkwMTYsMjg5OTUsMjkwMDMsMjkwNDAsMjkw''@;'; + put 'put ''MjMsMjkwMDgsMjkwMTEsMjg5OTYsMjkwMDUsMjkwMTgsMjkyNjMsMjkzMjUsMjkzMjQsMjkzMjksMjkzMjgsMjkzMjYsMjk1MDAsMjk1MDYsMjk0OTksMjk0OTgsMjk1MDQsMjk1MTQsMjk1MTMsMjk3NjQsMjk3NzAsMjk3NzEsMjk3NzgsMjk3NzcsMjk3ODMsMjk3NjAsMjk3NzUsMjk3NzYs''@;'; + put 'put ''Mjk3NzQsMjk3NjIsMjk3NjYsMjk3NzMsMjk3ODAsMjk5MjEsMjk5NTEsMjk5NTAsMjk5NDksMjk5ODEsMzAwNzMsMzAwNzEsMjcwMTEsMzAxOTEsMzAyMjMsMzAyMTEsMzAxOTksMzAyMDYsMzAyMDQsMzAyMDEsMzAyMDAsMzAyMjQsMzAyMDMsMzAxOTgsMzAxODksMzAxOTcsMzAyMDUsMzAz''@;'; + put 'put ''NjEsMzAzODksMzA0MjksMzA1NDksMzA1NTksMzA1NjAsMzA1NDYsMzA1NTAsMzA1NTQsMzA1NjksMzA1NjcsMzA1NDgsMzA1NTMsMzA1NzMsMzA2ODgsMzA4NTUsMzA4NzQsMzA4NjgsMzA4NjMsMzA4NTIsMzA4NjksMzA4NTMsMzA4NTQsMzA4ODEsMzA4NTEsMzA4NDEsMzA4NzMsMzA4NDgs''@;'; + put 'put ''MzA4NzAsMzA4NDMsMzExMDAsMzExMDYsMzExMDEsMzEwOTcsMzEyNDksMzEyNTYsMzEyNTcsMzEyNTAsMzEyNTUsMzEyNTMsMzEyNjYsMzEyNTEsMzEyNTksMzEyNDgsMzEzOTUsMzEzOTQsMzEzOTAsMzE0NjcsMzE1OTAsMzE1ODgsMzE1OTcsMzE2MDQsMzE1OTMsMzE2MDIsMzE1ODksMzE2''@;'; + put 'put ''MDMsMzE2MDEsMzE2MDAsMzE1ODUsMzE2MDgsMzE2MDYsMzE1ODcsMzE5MjIsMzE5MjQsMzE5MTksMzIxMzYsMzIxMzQsMzIxMjgsMzIxNDEsMzIxMjcsMzIxMzMsMzIxMjIsMzIxNDIsMzIxMjMsMzIxMzEsMzIxMjQsMzIxNDAsMzIxNDgsMzIxMzIsMzIxMjUsMzIxNDYsMzI2MjEsMzI2MTks''@;'; + put 'put ''MzI2MTUsMzI2MTYsMzI2MjAsMzI2NzgsMzI2NzcsMzI2NzksMzI3MzEsMzI3MzIsMzI4MDEsMzMxMjQsMzMxMjAsMzMxNDMsMzMxMTYsMzMxMjksMzMxMTUsMzMxMjIsMzMxMzgsMjY0MDEsMzMxMTgsMzMxNDIsMzMxMjcsMzMxMzUsMzMwOTIsMzMxMjEsMzMzMDksMzMzNTMsMzMzNDgsMzMz''@;'; + put 'put ''NDQsMzMzNDYsMzMzNDksMzQwMzMsMzM4NTUsMzM4NzgsMzM5MTAsMzM5MTMsMzM5MzUsMzM5MzMsMzM4OTMsMzM4NzMsMzM4NTYsMzM5MjYsMzM4OTUsMzM4NDAsMzM4NjksMzM5MTcsMzM4ODIsMzM4ODEsMzM5MDgsMzM5MDcsMzM4ODUsMzQwNTUsMzM4ODYsMzM4NDcsMzM4NTAsMzM4NDQs''@;'; + put 'put ''MzM5MTQsMzM4NTksMzM5MTIsMzM4NDIsMzM4NjEsMzM4MzMsMzM3NTMsMzM4NjcsMzM4MzksMzM4NTgsMzM4MzcsMzM4ODcsMzM5MDQsMzM4NDksMzM4NzAsMzM4NjgsMzM4NzQsMzM5MDMsMzM5ODksMzM5MzQsMzM4NTEsMzM4NjMsMzM4NDYsMzM4NDMsMzM4OTYsMzM5MTgsMzM4NjAsMzM4''@;'; + put 'put ''MzUsMzM4ODgsMzM4NzYsMzM5MDIsMzM4NzIsMzQ1NzEsMzQ1NjQsMzQ1NTEsMzQ1NzIsMzQ1NTQsMzQ1MTgsMzQ1NDksMzQ2MzcsMzQ1NTIsMzQ1NzQsMzQ1NjksMzQ1NjEsMzQ1NTAsMzQ1NzMsMzQ1NjUsMzUwMzAsMzUwMTksMzUwMjEsMzUwMjIsMzUwMzgsMzUwMzUsMzUwMzQsMzUwMjAs''@;'; + put 'put ''MzUwMjQsMzUyMDUsMzUyMjcsMzUyOTUsMzUzMDEsMzUzMDAsMzUyOTcsMzUyOTYsMzUyOTgsMzUyOTIsMzUzMDIsMzU0NDYsMzU0NjIsMzU0NTUsMzU0MjUsMzUzOTEsMzU0NDcsMzU0NTgsMzU0NjAsMzU0NDUsMzU0NTksMzU0NTcsMzU0NDQsMzU0NTAsMzU5MDAsMzU5MTUsMzU5MTQsMzU5''@;'; + put 'put ''NDEsMzU5NDAsMzU5NDIsMzU5NzQsMzU5NzIsMzU5NzMsMzYwNDQsMzYyMDAsMzYyMDEsMzYyNDEsMzYyMzYsMzYyMzgsMzYyMzksMzYyMzcsMzYyNDMsMzYyNDQsMzYyNDAsMzYyNDIsMzYzMzYsMzYzMjAsMzYzMzIsMzYzMzcsMzYzMzQsMzYzMDQsMzYzMjksMzYzMjMsMzYzMjIsMzYzMjcs''@;'; + put 'put ''MzYzMzgsMzYzMzEsMzYzNDAsMzY2MTQsMzY2MDcsMzY2MDksMzY2MDgsMzY2MTMsMzY2MTUsMzY2MTYsMzY2MTAsMzY2MTksMzY5NDYsMzY5MjcsMzY5MzIsMzY5MzcsMzY5MjUsMzcxMzYsMzcxMzMsMzcxMzUsMzcxMzcsMzcxNDIsMzcxNDAsMzcxMzEsMzcxMzQsMzcyMzAsMzcyMzEsMzc0''@;'; + put 'put ''NDgsMzc0NTgsMzc0MjQsMzc0MzQsMzc0NzgsMzc0MjcsMzc0NzcsMzc0NzAsMzc1MDcsMzc0MjIsMzc0NTAsMzc0NDYsMzc0ODUsMzc0ODQsMzc0NTUsMzc0NzIsMzc0NzksMzc0ODcsMzc0MzAsMzc0NzMsMzc0ODgsMzc0MjUsMzc0NjAsMzc0NzUsMzc0NTYsMzc0OTAsMzc0NTQsMzc0NTks''@;'; + put 'put ''Mzc0NTIsMzc0NjIsMzc0MjYsMzgzMDMsMzgzMDAsMzgzMDIsMzgyOTksMzg1NDYsMzg1NDcsMzg1NDUsMzg1NTEsMzg2MDYsMzg2NTAsMzg2NTMsMzg2NDgsMzg2NDUsMzg3NzEsMzg3NzUsMzg3NzYsMzg3NzAsMzg5MjcsMzg5MjUsMzg5MjYsMzkwODQsMzkxNTgsMzkxNjEsMzkzNDMsMzkz''@;'; + put 'put ''NDYsMzkzNDQsMzkzNDksMzk1OTcsMzk1OTUsMzk3NzEsNDAxNzAsNDAxNzMsNDAxNjcsNDA1NzYsNDA3MDEsMjA3MTAsMjA2OTIsMjA2OTUsMjA3MTIsMjA3MjMsMjA2OTksMjA3MTQsMjA3MDEsMjA3MDgsMjA2OTEsMjA3MTYsMjA3MjAsMjA3MTksMjA3MDcsMjA3MDQsMjA5NTIsMjExMjAs''@;'; + put 'put ''MjExMjEsMjEyMjUsMjEyMjcsMjEyOTYsMjE0MjAsMjIwNTUsMjIwMzcsMjIwMjgsMjIwMzQsMjIwMTIsMjIwMzEsMjIwNDQsMjIwMTcsMjIwMzUsMjIwMTgsMjIwMTAsMjIwNDUsMjIwMjAsMjIwMTUsMjIwMDksMjI2NjUsMjI2NTIsMjI2NzIsMjI2ODAsMjI2NjIsMjI2NTcsMjI2NTUsMjI2''@;'; + put 'put ''NDQsMjI2NjcsMjI2NTAsMjI2NjMsMjI2NzMsMjI2NzAsMjI2NDYsMjI2NTgsMjI2NjQsMjI2NTEsMjI2NzYsMjI2NzEsMjI3ODIsMjI4OTEsMjMyNjAsMjMyNzgsMjMyNjksMjMyNTMsMjMyNzQsMjMyNTgsMjMyNzcsMjMyNzUsMjMyODMsMjMyNjYsMjMyNjQsMjMyNTksMjMyNzYsMjMyNjIs''@;'; + put 'put ''MjMyNjEsMjMyNTcsMjMyNzIsMjMyNjMsMjM0MTUsMjM1MjAsMjM1MjMsMjM2NTEsMjM5MzgsMjM5MzYsMjM5MzMsMjM5NDIsMjM5MzAsMjM5MzcsMjM5MjcsMjM5NDYsMjM5NDUsMjM5NDQsMjM5MzQsMjM5MzIsMjM5NDksMjM5MjksMjM5MzUsMjQxNTIsMjQxNTMsMjQxNDcsMjQyODAsMjQy''@;'; + put 'put ''NzMsMjQyNzksMjQyNzAsMjQyODQsMjQyNzcsMjQyODEsMjQyNzQsMjQyNzYsMjQzODgsMjQzODcsMjQ0MzEsMjQ1MDIsMjQ4NzYsMjQ4NzIsMjQ4OTcsMjQ5MjYsMjQ5NDUsMjQ5NDcsMjQ5MTQsMjQ5MTUsMjQ5NDYsMjQ5NDAsMjQ5NjAsMjQ5NDgsMjQ5MTYsMjQ5NTQsMjQ5MjMsMjQ5MzMs''@;'; + put 'put ''MjQ4OTEsMjQ5MzgsMjQ5MjksMjQ5MTgsMjUxMjksMjUxMjcsMjUxMzEsMjU2NDMsMjU2NzcsMjU2OTEsMjU2OTMsMjU3MTYsMjU3MTgsMjU3MTQsMjU3MTUsMjU3MjUsMjU3MTcsMjU3MDIsMjU3NjYsMjU2NzgsMjU3MzAsMjU2OTQsMjU2OTIsMjU2NzUsMjU2ODMsMjU2OTYsMjU2ODAsMjU3''@;'; + put 'put ''MjcsMjU2NjMsMjU3MDgsMjU3MDcsMjU2ODksMjU3MDEsMjU3MTksMjU5NzEsMjYwMTYsMjYyNzMsMjYyNzIsMjYyNzEsMjYzNzMsMjYzNzIsMjY0MDIsMjcwNTcsMjcwNjIsMjcwODEsMjcwNDAsMjcwODYsMjcwMzAsMjcwNTYsMjcwNTIsMjcwNjgsMjcwMjUsMjcwMzMsMjcwMjIsMjcwNDcs''@;'; + put 'put ''MjcwMjEsMjcwNDksMjcwNzAsMjcwNTUsMjcwNzEsMjcwNzYsMjcwNjksMjcwNDQsMjcwOTIsMjcwNjUsMjcwODIsMjcwMzQsMjcwODcsMjcwNTksMjcwMjcsMjcwNTAsMjcwNDEsMjcwMzgsMjcwOTcsMjcwMzEsMjcwMjQsMjcwNzQsMjcwNjEsMjcwNDUsMjcwNzgsMjc0NjYsMjc0NjksMjc0''@;'; + put 'put ''NjcsMjc1NTAsMjc1NTEsMjc1NTIsMjc1ODcsMjc1ODgsMjc2NDYsMjgzNjYsMjg0MDUsMjg0MDEsMjg0MTksMjg0NTMsMjg0MDgsMjg0NzEsMjg0MTEsMjg0NjIsMjg0MjUsMjg0OTQsMjg0NDEsMjg0NDIsMjg0NTUsMjg0NDAsMjg0NzUsMjg0MzQsMjgzOTcsMjg0MjYsMjg0NzAsMjg1MzEs''@;'; + put 'put ''Mjg0MDksMjgzOTgsMjg0NjEsMjg0ODAsMjg0NjQsMjg0NzYsMjg0NjksMjgzOTUsMjg0MjMsMjg0MzAsMjg0ODMsMjg0MjEsMjg0MTMsMjg0MDYsMjg0NzMsMjg0NDQsMjg0MTIsMjg0NzQsMjg0NDcsMjg0MjksMjg0NDYsMjg0MjQsMjg0NDksMjkwNjMsMjkwNzIsMjkwNjUsMjkwNTYsMjkw''@;'; + put 'put ''NjEsMjkwNTgsMjkwNzEsMjkwNTEsMjkwNjIsMjkwNTcsMjkwNzksMjkyNTIsMjkyNjcsMjkzMzUsMjkzMzMsMjkzMzEsMjk1MDcsMjk1MTcsMjk1MjEsMjk1MTYsMjk3OTQsMjk4MTEsMjk4MDksMjk4MTMsMjk4MTAsMjk3OTksMjk4MDYsMjk5NTIsMjk5NTQsMjk5NTUsMzAwNzcsMzAwOTYs''@;'; + put 'put ''MzAyMzAsMzAyMTYsMzAyMjAsMzAyMjksMzAyMjUsMzAyMTgsMzAyMjgsMzAzOTIsMzA1OTMsMzA1ODgsMzA1OTcsMzA1OTQsMzA1NzQsMzA1OTIsMzA1NzUsMzA1OTAsMzA1OTUsMzA4OTgsMzA4OTAsMzA5MDAsMzA4OTMsMzA4ODgsMzA4NDYsMzA4OTEsMzA4NzgsMzA4ODUsMzA4ODAsMzA4''@;'; + put 'put ''OTIsMzA4ODIsMzA4ODQsMzExMjgsMzExMTQsMzExMTUsMzExMjYsMzExMjUsMzExMjQsMzExMjMsMzExMjcsMzExMTIsMzExMjIsMzExMjAsMzEyNzUsMzEzMDYsMzEyODAsMzEyNzksMzEyNzIsMzEyNzAsMzE0MDAsMzE0MDMsMzE0MDQsMzE0NzAsMzE2MjQsMzE2NDQsMzE2MjYsMzE2MzMs''@;'; + put 'put ''MzE2MzIsMzE2MzgsMzE2MjksMzE2MjgsMzE2NDMsMzE2MzAsMzE2MjEsMzE2NDAsMjExMjQsMzE2NDEsMzE2NTIsMzE2MTgsMzE5MzEsMzE5MzUsMzE5MzIsMzE5MzAsMzIxNjcsMzIxODMsMzIxOTQsMzIxNjMsMzIxNzAsMzIxOTMsMzIxOTIsMzIxOTcsMzIxNTcsMzIyMDYsMzIxOTYsMzIx''@;'; + put 'put ''OTgsMzIyMDMsMzIyMDQsMzIxNzUsMzIxODUsMzIxNTAsMzIxODgsMzIxNTksMzIxNjYsMzIxNzQsMzIxNjksMzIxNjEsMzIyMDEsMzI2MjcsMzI3MzgsMzI3MzksMzI3NDEsMzI3MzQsMzI4MDQsMzI4NjEsMzI4NjAsMzMxNjEsMzMxNTgsMzMxNTUsMzMxNTksMzMxNjUsMzMxNjQsMzMxNjMs''@;'; + put 'put ''MzMzMDEsMzM5NDMsMzM5NTYsMzM5NTMsMzM5NTEsMzM5NzgsMzM5OTgsMzM5ODYsMzM5NjQsMzM5NjYsMzM5NjMsMzM5NzcsMzM5NzIsMzM5ODUsMzM5OTcsMzM5NjIsMzM5NDYsMzM5NjksMzRlMywzMzk0OSwzMzk1OSwzMzk3OSwzMzk1NCwzMzk0MCwzMzk5MSwzMzk5NiwzMzk0NywzMzk2''@;'; + put 'put ''MSwzMzk2NywzMzk2MCwzNDAwNiwzMzk0NCwzMzk3NCwzMzk5OSwzMzk1MiwzNDAwNywzNDAwNCwzNDAwMiwzNDAxMSwzMzk2OCwzMzkzNywzNDQwMSwzNDYxMSwzNDU5NSwzNDYwMCwzNDY2NywzNDYyNCwzNDYwNiwzNDU5MCwzNDU5MywzNDU4NSwzNDU4NywzNDYyNywzNDYwNCwzNDYyNSwz''@;'; + put 'put ''NDYyMiwzNDYzMCwzNDU5MiwzNDYxMCwzNDYwMiwzNDYwNSwzNDYyMCwzNDU3OCwzNDYxOCwzNDYwOSwzNDYxMywzNDYyNiwzNDU5OCwzNDU5OSwzNDYxNiwzNDU5NiwzNDU4NiwzNDYwOCwzNDU3NywzNTA2MywzNTA0NywzNTA1NywzNTA1OCwzNTA2NiwzNTA3MCwzNTA1NCwzNTA2OCwzNTA2''@;'; + put 'put ''MiwzNTA2NywzNTA1NiwzNTA1MiwzNTA1MSwzNTIyOSwzNTIzMywzNTIzMSwzNTIzMCwzNTMwNSwzNTMwNywzNTMwNCwzNTQ5OSwzNTQ4MSwzNTQ2NywzNTQ3NCwzNTQ3MSwzNTQ3OCwzNTkwMSwzNTk0NCwzNTk0NSwzNjA1MywzNjA0NywzNjA1NSwzNjI0NiwzNjM2MSwzNjM1NCwzNjM1MSwz''@;'; + put 'put ''NjM2NSwzNjM0OSwzNjM2MiwzNjM1NSwzNjM1OSwzNjM1OCwzNjM1NywzNjM1MCwzNjM1MiwzNjM1NiwzNjYyNCwzNjYyNSwzNjYyMiwzNjYyMSwzNzE1NSwzNzE0OCwzNzE1MiwzNzE1NCwzNzE1MSwzNzE0OSwzNzE0NiwzNzE1NiwzNzE1MywzNzE0NywzNzI0MiwzNzIzNCwzNzI0MSwzNzIz''@;'; + put 'put ''NSwzNzU0MSwzNzU0MCwzNzQ5NCwzNzUzMSwzNzQ5OCwzNzUzNiwzNzUyNCwzNzU0NiwzNzUxNywzNzU0MiwzNzUzMCwzNzU0NywzNzQ5NywzNzUyNywzNzUwMywzNzUzOSwzNzYxNCwzNzUxOCwzNzUwNiwzNzUyNSwzNzUzOCwzNzUwMSwzNzUxMiwzNzUzNywzNzUxNCwzNzUxMCwzNzUxNiwz''@;'; + put 'put ''NzUyOSwzNzU0MywzNzUwMiwzNzUxMSwzNzU0NSwzNzUzMywzNzUxNSwzNzQyMSwzODU1OCwzODU2MSwzODY1NSwzODc0NCwzODc4MSwzODc3OCwzODc4MiwzODc4NywzODc4NCwzODc4NiwzODc3OSwzODc4OCwzODc4NSwzODc4MywzODg2MiwzODg2MSwzODkzNCwzOTA4NSwzOTA4NiwzOTE3''@;'; + put 'put ''MCwzOTE2OCwzOTE3NSwzOTMyNSwzOTMyNCwzOTM2MywzOTM1MywzOTM1NSwzOTM1NCwzOTM2MiwzOTM1NywzOTM2NywzOTYwMSwzOTY1MSwzOTY1NSwzOTc0MiwzOTc0MywzOTc3NiwzOTc3NywzOTc3NSw0MDE3Nyw0MDE3OCw0MDE4MSw0MDYxNSwyMDczNSwyMDczOSwyMDc4NCwyMDcyOCwy''@;'; + put 'put ''MDc0MiwyMDc0MywyMDcyNiwyMDczNCwyMDc0NywyMDc0OCwyMDczMywyMDc0NiwyMTEzMSwyMTEzMiwyMTIzMywyMTIzMSwyMjA4OCwyMjA4MiwyMjA5MiwyMjA2OSwyMjA4MSwyMjA5MCwyMjA4OSwyMjA4NiwyMjEwNCwyMjEwNiwyMjA4MCwyMjA2NywyMjA3NywyMjA2MCwyMjA3OCwyMjA3''@;'; + put 'put ''MiwyMjA1OCwyMjA3NCwyMjI5OCwyMjY5OSwyMjY4NSwyMjcwNSwyMjY4OCwyMjY5MSwyMjcwMywyMjcwMCwyMjY5MywyMjY4OSwyMjc4MywyMzI5NSwyMzI4NCwyMzI5MywyMzI4NywyMzI4NiwyMzI5OSwyMzI4OCwyMzI5OCwyMzI4OSwyMzI5NywyMzMwMywyMzMwMSwyMzMxMSwyMzY1NSwy''@;'; + put 'put ''Mzk2MSwyMzk1OSwyMzk2NywyMzk1NCwyMzk3MCwyMzk1NSwyMzk1NywyMzk2OCwyMzk2NCwyMzk2OSwyMzk2MiwyMzk2NiwyNDE2OSwyNDE1NywyNDE2MCwyNDE1NiwzMjI0MywyNDI4MywyNDI4NiwyNDI4OSwyNDM5MywyNDQ5OCwyNDk3MSwyNDk2MywyNDk1MywyNTAwOSwyNTAwOCwyNDk5''@;'; + put 'put ''NCwyNDk2OSwyNDk4NywyNDk3OSwyNTAwNywyNTAwNSwyNDk5MSwyNDk3OCwyNTAwMiwyNDk5MywyNDk3MywyNDkzNCwyNTAxMSwyNTEzMywyNTcxMCwyNTcxMiwyNTc1MCwyNTc2MCwyNTczMywyNTc1MSwyNTc1NiwyNTc0MywyNTczOSwyNTczOCwyNTc0MCwyNTc2MywyNTc1OSwyNTcwNCwy''@;'; + put 'put ''NTc3NywyNTc1MiwyNTk3NCwyNTk3OCwyNTk3NywyNTk3OSwyNjAzNCwyNjAzNSwyNjI5MywyNjI4OCwyNjI4MSwyNjI5MCwyNjI5NSwyNjI4MiwyNjI4NywyNzEzNiwyNzE0MiwyNzE1OSwyNzEwOSwyNzEyOCwyNzE1NywyNzEyMSwyNzEwOCwyNzE2OCwyNzEzNSwyNzExNiwyNzEwNiwyNzE2''@;'; + put 'put ''MywyNzE2NSwyNzEzNCwyNzE3NSwyNzEyMiwyNzExOCwyNzE1NiwyNzEyNywyNzExMSwyNzIwMCwyNzE0NCwyNzExMCwyNzEzMSwyNzE0OSwyNzEzMiwyNzExNSwyNzE0NSwyNzE0MCwyNzE2MCwyNzE3MywyNzE1MSwyNzEyNiwyNzE3NCwyNzE0MywyNzEyNCwyNzE1OCwyNzQ3MywyNzU1Nywy''@;'; + put 'put ''NzU1NSwyNzU1NCwyNzU1OCwyNzY0OSwyNzY0OCwyNzY0NywyNzY1MCwyODQ4MSwyODQ1NCwyODU0MiwyODU1MSwyODYxNCwyODU2MiwyODU1NywyODU1MywyODU1NiwyODUxNCwyODQ5NSwyODU0OSwyODUwNiwyODU2NiwyODUzNCwyODUyNCwyODU0NiwyODUwMSwyODUzMCwyODQ5OCwyODQ5''@;'; + put 'put ''NiwyODUwMywyODU2NCwyODU2MywyODUwOSwyODQxNiwyODUxMywyODUyMywyODU0MSwyODUxOSwyODU2MCwyODQ5OSwyODU1NSwyODUyMSwyODU0MywyODU2NSwyODUxNSwyODUzNSwyODUyMiwyODUzOSwyOTEwNiwyOTEwMywyOTA4MywyOTEwNCwyOTA4OCwyOTA4MiwyOTA5NywyOTEwOSwy''@;'; + put 'put ''OTA4NSwyOTA5MywyOTA4NiwyOTA5MiwyOTA4OSwyOTA5OCwyOTA4NCwyOTA5NSwyOTEwNywyOTMzNiwyOTMzOCwyOTUyOCwyOTUyMiwyOTUzNCwyOTUzNSwyOTUzNiwyOTUzMywyOTUzMSwyOTUzNywyOTUzMCwyOTUyOSwyOTUzOCwyOTgzMSwyOTgzMywyOTgzNCwyOTgzMCwyOTgyNSwyOTgy''@;'; + put 'put ''MSwyOTgyOSwyOTgzMiwyOTgyMCwyOTgxNywyOTk2MCwyOTk1OSwzMDA3OCwzMDI0NSwzMDIzOCwzMDIzMywzMDIzNywzMDIzNiwzMDI0MywzMDIzNCwzMDI0OCwzMDIzNSwzMDM2NCwzMDM2NSwzMDM2NiwzMDM2MywzMDYwNSwzMDYwNywzMDYwMSwzMDYwMCwzMDkyNSwzMDkwNywzMDkyNywz''@;'; + put 'put ''MDkyNCwzMDkyOSwzMDkyNiwzMDkzMiwzMDkyMCwzMDkxNSwzMDkxNiwzMDkyMSwzMTEzMCwzMTEzNywzMTEzNiwzMTEzMiwzMTEzOCwzMTEzMSwyNzUxMCwzMTI4OSwzMTQxMCwzMTQxMiwzMTQxMSwzMTY3MSwzMTY5MSwzMTY3OCwzMTY2MCwzMTY5NCwzMTY2MywzMTY3MywzMTY5MCwzMTY2''@;'; + put 'put ''OSwzMTk0MSwzMTk0NCwzMTk0OCwzMTk0NywzMjI0NywzMjIxOSwzMjIzNCwzMjIzMSwzMjIxNSwzMjIyNSwzMjI1OSwzMjI1MCwzMjIzMCwzMjI0NiwzMjI0MSwzMjI0MCwzMjIzOCwzMjIyMywzMjYzMCwzMjY4NCwzMjY4OCwzMjY4NSwzMjc0OSwzMjc0NywzMjc0NiwzMjc0OCwzMjc0Miwz''@;'; + put 'put ''Mjc0NCwzMjg2OCwzMjg3MSwzMzE4NywzMzE4MywzMzE4MiwzMzE3MywzMzE4NiwzMzE3NywzMzE3NSwzMzMwMiwzMzM1OSwzMzM2MywzMzM2MiwzMzM2MCwzMzM1OCwzMzM2MSwzNDA4NCwzNDEwNywzNDA2MywzNDA0OCwzNDA4OSwzNDA2MiwzNDA1NywzNDA2MSwzNDA3OSwzNDA1OCwzNDA4''@;'; + put 'put ''NywzNDA3NiwzNDA0MywzNDA5MSwzNDA0MiwzNDA1NiwzNDA2MCwzNDAzNiwzNDA5MCwzNDAzNCwzNDA2OSwzNDAzOSwzNDAyNywzNDAzNSwzNDA0NCwzNDA2NiwzNDAyNiwzNDAyNSwzNDA3MCwzNDA0NiwzNDA4OCwzNDA3NywzNDA5NCwzNDA1MCwzNDA0NSwzNDA3OCwzNDAzOCwzNDA5Nywz''@;'; + put 'put ''NDA4NiwzNDAyMywzNDAyNCwzNDAzMiwzNDAzMSwzNDA0MSwzNDA3MiwzNDA4MCwzNDA5NiwzNDA1OSwzNDA3MywzNDA5NSwzNDQwMiwzNDY0NiwzNDY1OSwzNDY2MCwzNDY3OSwzNDc4NSwzNDY3NSwzNDY0OCwzNDY0NCwzNDY1MSwzNDY0MiwzNDY1NywzNDY1MCwzNDY0MSwzNDY1NCwzNDY2''@;'; + put 'put ''OSwzNDY2NiwzNDY0MCwzNDYzOCwzNDY1NSwzNDY1MywzNDY3MSwzNDY2OCwzNDY4MiwzNDY3MCwzNDY1MiwzNDY2MSwzNDYzOSwzNDY4MywzNDY3NywzNDY1OCwzNDY2MywzNDY2NSwzNDkwNiwzNTA3NywzNTA4NCwzNTA5MiwzNTA4MywzNTA5NSwzNTA5NiwzNTA5NywzNTA3OCwzNTA5NCwz''@;'; + put 'put ''NTA4OSwzNTA4NiwzNTA4MSwzNTIzNCwzNTIzNiwzNTIzNSwzNTMwOSwzNTMxMiwzNTMwOCwzNTUzNSwzNTUyNiwzNTUxMiwzNTUzOSwzNTUzNywzNTU0MCwzNTU0MSwzNTUxNSwzNTU0MywzNTUxOCwzNTUyMCwzNTUyNSwzNTU0NCwzNTUyMywzNTUxNCwzNTUxNywzNTU0NSwzNTkwMiwzNTkx''@;'; + put 'put ''NywzNTk4MywzNjA2OSwzNjA2MywzNjA1NywzNjA3MiwzNjA1OCwzNjA2MSwzNjA3MSwzNjI1NiwzNjI1MiwzNjI1NywzNjI1MSwzNjM4NCwzNjM4NywzNjM4OSwzNjM4OCwzNjM5OCwzNjM3MywzNjM3OSwzNjM3NCwzNjM2OSwzNjM3NywzNjM5MCwzNjM5MSwzNjM3MiwzNjM3MCwzNjM3Niwz''@;'; + put 'put ''NjM3MSwzNjM4MCwzNjM3NSwzNjM3OCwzNjY1MiwzNjY0NCwzNjYzMiwzNjYzNCwzNjY0MCwzNjY0MywzNjYzMCwzNjYzMSwzNjk3OSwzNjk3NiwzNjk3NSwzNjk2NywzNjk3MSwzNzE2NywzNzE2MywzNzE2MSwzNzE2MiwzNzE3MCwzNzE1OCwzNzE2NiwzNzI1MywzNzI1NCwzNzI1OCwzNzI0''@;'; + put 'put ''OSwzNzI1MCwzNzI1MiwzNzI0OCwzNzU4NCwzNzU3MSwzNzU3MiwzNzU2OCwzNzU5MywzNzU1OCwzNzU4MywzNzYxNywzNzU5OSwzNzU5MiwzNzYwOSwzNzU5MSwzNzU5NywzNzU4MCwzNzYxNSwzNzU3MCwzNzYwOCwzNzU3OCwzNzU3NiwzNzU4MiwzNzYwNiwzNzU4MSwzNzU4OSwzNzU3Nywz''@;'; + put 'put ''NzYwMCwzNzU5OCwzNzYwNywzNzU4NSwzNzU4NywzNzU1NywzNzYwMSwzNzU3NCwzNzU1NiwzODI2OCwzODMxNiwzODMxNSwzODMxOCwzODMyMCwzODU2NCwzODU2MiwzODYxMSwzODY2MSwzODY2NCwzODY1OCwzODc0NiwzODc5NCwzODc5OCwzODc5MiwzODg2NCwzODg2MywzODk0MiwzODk0''@;'; + put 'put ''MSwzODk1MCwzODk1MywzODk1MiwzODk0NCwzODkzOSwzODk1MSwzOTA5MCwzOTE3NiwzOTE2MiwzOTE4NSwzOTE4OCwzOTE5MCwzOTE5MSwzOTE4OSwzOTM4OCwzOTM3MywzOTM3NSwzOTM3OSwzOTM4MCwzOTM3NCwzOTM2OSwzOTM4MiwzOTM4NCwzOTM3MSwzOTM4MywzOTM3MiwzOTYwMywz''@;'; + put 'put ''OTY2MCwzOTY1OSwzOTY2NywzOTY2NiwzOTY2NSwzOTc1MCwzOTc0NywzOTc4MywzOTc5NiwzOTc5MywzOTc4MiwzOTc5OCwzOTc5NywzOTc5MiwzOTc4NCwzOTc4MCwzOTc4OCw0MDE4OCw0MDE4Niw0MDE4OSw0MDE5MSw0MDE4Myw0MDE5OSw0MDE5Miw0MDE4NSw0MDE4Nyw0MDIwMCw0MDE5''@;'; + put 'put ''Nyw0MDE5Niw0MDU3OSw0MDY1OSw0MDcxOSw0MDcyMCwyMDc2NCwyMDc1NSwyMDc1OSwyMDc2MiwyMDc1MywyMDk1OCwyMTMwMCwyMTQ3MywyMjEyOCwyMjExMiwyMjEyNiwyMjEzMSwyMjExOCwyMjExNSwyMjEyNSwyMjEzMCwyMjExMCwyMjEzNSwyMjMwMCwyMjI5OSwyMjcyOCwyMjcxNywy''@;'; + put 'put ''MjcyOSwyMjcxOSwyMjcxNCwyMjcyMiwyMjcxNiwyMjcyNiwyMzMxOSwyMzMyMSwyMzMyMywyMzMyOSwyMzMxNiwyMzMxNSwyMzMxMiwyMzMxOCwyMzMzNiwyMzMyMiwyMzMyOCwyMzMyNiwyMzUzNSwyMzk4MCwyMzk4NSwyMzk3NywyMzk3NSwyMzk4OSwyMzk4NCwyMzk4MiwyMzk3OCwyMzk3''@;'; + put 'put ''NiwyMzk4NiwyMzk4MSwyMzk4MywyMzk4OCwyNDE2NywyNDE2OCwyNDE2NiwyNDE3NSwyNDI5NywyNDI5NSwyNDI5NCwyNDI5NiwyNDI5MywyNDM5NSwyNDUwOCwyNDk4OSwyNWUzLDI0OTgyLDI1MDI5LDI1MDEyLDI1MDMwLDI1MDI1LDI1MDM2LDI1MDE4LDI1MDIzLDI1MDE2LDI0OTcyLDI1''@;'; + put 'put ''ODE1LDI1ODE0LDI1ODA4LDI1ODA3LDI1ODAxLDI1Nzg5LDI1NzM3LDI1Nzk1LDI1ODE5LDI1ODQzLDI1ODE3LDI1OTA3LDI1OTgzLDI1OTgwLDI2MDE4LDI2MzEyLDI2MzAyLDI2MzA0LDI2MzE0LDI2MzE1LDI2MzE5LDI2MzAxLDI2Mjk5LDI2Mjk4LDI2MzE2LDI2NDAzLDI3MTg4LDI3MjM4''@;'; + put 'put ''LDI3MjA5LDI3MjM5LDI3MTg2LDI3MjQwLDI3MTk4LDI3MjI5LDI3MjQ1LDI3MjU0LDI3MjI3LDI3MjE3LDI3MTc2LDI3MjI2LDI3MTk1LDI3MTk5LDI3MjAxLDI3MjQyLDI3MjM2LDI3MjE2LDI3MjE1LDI3MjIwLDI3MjQ3LDI3MjQxLDI3MjMyLDI3MTk2LDI3MjMwLDI3MjIyLDI3MjIxLDI3''@;'; + put 'put ''MjEzLDI3MjE0LDI3MjA2LDI3NDc3LDI3NDc2LDI3NDc4LDI3NTU5LDI3NTYyLDI3NTYzLDI3NTkyLDI3NTkxLDI3NjUyLDI3NjUxLDI3NjU0LDI4NTg5LDI4NjE5LDI4NTc5LDI4NjE1LDI4NjA0LDI4NjIyLDI4NjE2LDI4NTEwLDI4NjEyLDI4NjA1LDI4NTc0LDI4NjE4LDI4NTg0LDI4Njc2''@;'; + put 'put ''LDI4NTgxLDI4NTkwLDI4NjAyLDI4NTg4LDI4NTg2LDI4NjIzLDI4NjA3LDI4NjAwLDI4NTc4LDI4NjE3LDI4NTg3LDI4NjIxLDI4NTkxLDI4NTk0LDI4NTkyLDI5MTI1LDI5MTIyLDI5MTE5LDI5MTEyLDI5MTQyLDI5MTIwLDI5MTIxLDI5MTMxLDI5MTQwLDI5MTMwLDI5MTI3LDI5MTM1LDI5''@;'; + put 'put ''MTE3LDI5MTQ0LDI5MTE2LDI5MTI2LDI5MTQ2LDI5MTQ3LDI5MzQxLDI5MzQyLDI5NTQ1LDI5NTQyLDI5NTQzLDI5NTQ4LDI5NTQxLDI5NTQ3LDI5NTQ2LDI5ODIzLDI5ODUwLDI5ODU2LDI5ODQ0LDI5ODQyLDI5ODQ1LDI5ODU3LDI5OTYzLDMwMDgwLDMwMjU1LDMwMjUzLDMwMjU3LDMwMjY5''@;'; + put 'put ''LDMwMjU5LDMwMjY4LDMwMjYxLDMwMjU4LDMwMjU2LDMwMzk1LDMwNDM4LDMwNjE4LDMwNjIxLDMwNjI1LDMwNjIwLDMwNjE5LDMwNjI2LDMwNjI3LDMwNjEzLDMwNjE3LDMwNjE1LDMwOTQxLDMwOTUzLDMwOTQ5LDMwOTU0LDMwOTQyLDMwOTQ3LDMwOTM5LDMwOTQ1LDMwOTQ2LDMwOTU3LDMw''@;'; + put 'put ''OTQzLDMwOTQ0LDMxMTQwLDMxMzAwLDMxMzA0LDMxMzAzLDMxNDE0LDMxNDE2LDMxNDEzLDMxNDA5LDMxNDE1LDMxNzEwLDMxNzE1LDMxNzE5LDMxNzA5LDMxNzAxLDMxNzE3LDMxNzA2LDMxNzIwLDMxNzM3LDMxNzAwLDMxNzIyLDMxNzE0LDMxNzA4LDMxNzIzLDMxNzA0LDMxNzExLDMxOTU0''@;'; + put 'put ''LDMxOTU2LDMxOTU5LDMxOTUyLDMxOTUzLDMyMjc0LDMyMjg5LDMyMjc5LDMyMjY4LDMyMjg3LDMyMjg4LDMyMjc1LDMyMjcwLDMyMjg0LDMyMjc3LDMyMjgyLDMyMjkwLDMyMjY3LDMyMjcxLDMyMjc4LDMyMjY5LDMyMjc2LDMyMjkzLDMyMjkyLDMyNTc5LDMyNjM1LDMyNjM2LDMyNjM0LDMy''@;'; + put 'put ''Njg5LDMyNzUxLDMyODEwLDMyODA5LDMyODc2LDMzMjAxLDMzMTkwLDMzMTk4LDMzMjA5LDMzMjA1LDMzMTk1LDMzMjAwLDMzMTk2LDMzMjA0LDMzMjAyLDMzMjA3LDMzMTkxLDMzMjY2LDMzMzY1LDMzMzY2LDMzMzY3LDM0MTM0LDM0MTE3LDM0MTU1LDM0MTI1LDM0MTMxLDM0MTQ1LDM0MTM2''@;'; + put 'put ''LDM0MTEyLDM0MTE4LDM0MTQ4LDM0MTEzLDM0MTQ2LDM0MTE2LDM0MTI5LDM0MTE5LDM0MTQ3LDM0MTEwLDM0MTM5LDM0MTYxLDM0MTI2LDM0MTU4LDM0MTY1LDM0MTMzLDM0MTUxLDM0MTQ0LDM0MTg4LDM0MTUwLDM0MTQxLDM0MTMyLDM0MTQ5LDM0MTU2LDM0NDAzLDM0NDA1LDM0NDA0LDM0''@;'; + put 'put ''NzE1LDM0NzAzLDM0NzExLDM0NzA3LDM0NzA2LDM0Njk2LDM0Njg5LDM0NzEwLDM0NzEyLDM0NjgxLDM0Njk1LDM0NzIzLDM0NjkzLDM0NzA0LDM0NzA1LDM0NzE3LDM0NjkyLDM0NzA4LDM0NzE2LDM0NzE0LDM0Njk3LDM1MTAyLDM1MTEwLDM1MTIwLDM1MTE3LDM1MTE4LDM1MTExLDM1MTIx''@;'; + put 'put ''LDM1MTA2LDM1MTEzLDM1MTA3LDM1MTE5LDM1MTE2LDM1MTAzLDM1MzEzLDM1NTUyLDM1NTU0LDM1NTcwLDM1NTcyLDM1NTczLDM1NTQ5LDM1NjA0LDM1NTU2LDM1NTUxLDM1NTY4LDM1NTI4LDM1NTUwLDM1NTUzLDM1NTYwLDM1NTgzLDM1NTY3LDM1NTc5LDM1OTg1LDM1OTg2LDM1OTg0LDM2''@;'; + put 'put ''MDg1LDM2MDc4LDM2MDgxLDM2MDgwLDM2MDgzLDM2MjA0LDM2MjA2LDM2MjYxLDM2MjYzLDM2NDAzLDM2NDE0LDM2NDA4LDM2NDE2LDM2NDIxLDM2NDA2LDM2NDEyLDM2NDEzLDM2NDE3LDM2NDAwLDM2NDE1LDM2NTQxLDM2NjYyLDM2NjU0LDM2NjYxLDM2NjU4LDM2NjY1LDM2NjYzLDM2NjYw''@;'; + put 'put ''LDM2OTgyLDM2OTg1LDM2OTg3LDM2OTk4LDM3MTE0LDM3MTcxLDM3MTczLDM3MTc0LDM3MjY3LDM3MjY0LDM3MjY1LDM3MjYxLDM3MjYzLDM3NjcxLDM3NjYyLDM3NjQwLDM3NjYzLDM3NjM4LDM3NjQ3LDM3NzU0LDM3Njg4LDM3NjkyLDM3NjU5LDM3NjY3LDM3NjUwLDM3NjMzLDM3NzAyLDM3''@;'; + put 'put ''Njc3LDM3NjQ2LDM3NjQ1LDM3NTc5LDM3NjYxLDM3NjI2LDM3NjY5LDM3NjUxLDM3NjI1LDM3NjIzLDM3Njg0LDM3NjM0LDM3NjY4LDM3NjMxLDM3NjczLDM3Njg5LDM3Njg1LDM3Njc0LDM3NjUyLDM3NjQ0LDM3NjQzLDM3NjMwLDM3NjQxLDM3NjMyLDM3NjI3LDM3NjU0LDM4MzMyLDM4MzQ5''@;'; + put 'put ''LDM4MzM0LDM4MzI5LDM4MzMwLDM4MzI2LDM4MzM1LDM4MzI1LDM4MzMzLDM4NTY5LDM4NjEyLDM4NjY3LDM4Njc0LDM4NjcyLDM4ODA5LDM4ODA3LDM4ODA0LDM4ODk2LDM4OTA0LDM4OTY1LDM4OTU5LDM4OTYyLDM5MjA0LDM5MTk5LDM5MjA3LDM5MjA5LDM5MzI2LDM5NDA2LDM5NDA0LDM5''@;'; + put 'put ''Mzk3LDM5Mzk2LDM5NDA4LDM5Mzk1LDM5NDAyLDM5NDAxLDM5Mzk5LDM5NjA5LDM5NjE1LDM5NjA0LDM5NjExLDM5NjcwLDM5Njc0LDM5NjczLDM5NjcxLDM5NzMxLDM5ODA4LDM5ODEzLDM5ODE1LDM5ODA0LDM5ODA2LDM5ODAzLDM5ODEwLDM5ODI3LDM5ODI2LDM5ODI0LDM5ODAyLDM5ODI5''@;'; + put 'put ''LDM5ODA1LDM5ODE2LDQwMjI5LDQwMjE1LDQwMjI0LDQwMjIyLDQwMjEyLDQwMjMzLDQwMjIxLDQwMjE2LDQwMjI2LDQwMjA4LDQwMjE3LDQwMjIzLDQwNTg0LDQwNTgyLDQwNTgzLDQwNjIyLDQwNjIxLDQwNjYxLDQwNjYyLDQwNjk4LDQwNzIyLDQwNzY1LDIwNzc0LDIwNzczLDIwNzcwLDIw''@;'; + put 'put ''NzcyLDIwNzY4LDIwNzc3LDIxMjM2LDIyMTYzLDIyMTU2LDIyMTU3LDIyMTUwLDIyMTQ4LDIyMTQ3LDIyMTQyLDIyMTQ2LDIyMTQzLDIyMTQ1LDIyNzQyLDIyNzQwLDIyNzM1LDIyNzM4LDIzMzQxLDIzMzMzLDIzMzQ2LDIzMzMxLDIzMzQwLDIzMzM1LDIzMzM0LDIzMzQzLDIzMzQyLDIzNDE5''@;'; + put 'put ''LDIzNTM3LDIzNTM4LDIzOTkxLDI0MTcyLDI0MTcwLDI0NTEwLDI0NTA3LDI1MDI3LDI1MDEzLDI1MDIwLDI1MDYzLDI1MDU2LDI1MDYxLDI1MDYwLDI1MDY0LDI1MDU0LDI1ODM5LDI1ODMzLDI1ODI3LDI1ODM1LDI1ODI4LDI1ODMyLDI1OTg1LDI1OTg0LDI2MDM4LDI2MDc0LDI2MzIyLDI3''@;'; + put 'put ''Mjc3LDI3Mjg2LDI3MjY1LDI3MzAxLDI3MjczLDI3Mjk1LDI3MjkxLDI3Mjk3LDI3Mjk0LDI3MjcxLDI3MjgzLDI3Mjc4LDI3Mjg1LDI3MjY3LDI3MzA0LDI3MzAwLDI3MjgxLDI3MjYzLDI3MzAyLDI3MjkwLDI3MjY5LDI3Mjc2LDI3MjgyLDI3NDgzLDI3NTY1LDI3NjU3LDI4NjIwLDI4NTg1''@;'; + put 'put ''LDI4NjYwLDI4NjI4LDI4NjQzLDI4NjM2LDI4NjUzLDI4NjQ3LDI4NjQ2LDI4NjM4LDI4NjU4LDI4NjM3LDI4NjQyLDI4NjQ4LDI5MTUzLDI5MTY5LDI5MTYwLDI5MTcwLDI5MTU2LDI5MTY4LDI5MTU0LDI5NTU1LDI5NTUwLDI5NTUxLDI5ODQ3LDI5ODc0LDI5ODY3LDI5ODQwLDI5ODY2LDI5''@;'; + put 'put ''ODY5LDI5ODczLDI5ODYxLDI5ODcxLDI5OTY4LDI5OTY5LDI5OTcwLDI5OTY3LDMwMDg0LDMwMjc1LDMwMjgwLDMwMjgxLDMwMjc5LDMwMzcyLDMwNDQxLDMwNjQ1LDMwNjM1LDMwNjQyLDMwNjQ3LDMwNjQ2LDMwNjQ0LDMwNjQxLDMwNjMyLDMwNzA0LDMwOTYzLDMwOTczLDMwOTc4LDMwOTcx''@;'; + put 'put ''LDMwOTcyLDMwOTYyLDMwOTgxLDMwOTY5LDMwOTc0LDMwOTgwLDMxMTQ3LDMxMTQ0LDMxMzI0LDMxMzIzLDMxMzE4LDMxMzIwLDMxMzE2LDMxMzIyLDMxNDIyLDMxNDI0LDMxNDI1LDMxNzQ5LDMxNzU5LDMxNzMwLDMxNzQ0LDMxNzQzLDMxNzM5LDMxNzU4LDMxNzMyLDMxNzU1LDMxNzMxLDMx''@;'; + put 'put ''NzQ2LDMxNzUzLDMxNzQ3LDMxNzQ1LDMxNzM2LDMxNzQxLDMxNzUwLDMxNzI4LDMxNzI5LDMxNzYwLDMxNzU0LDMxOTc2LDMyMzAxLDMyMzE2LDMyMzIyLDMyMzA3LDM4OTg0LDMyMzEyLDMyMjk4LDMyMzI5LDMyMzIwLDMyMzI3LDMyMjk3LDMyMzMyLDMyMzA0LDMyMzE1LDMyMzEwLDMyMzI0''@;'; + put 'put ''LDMyMzE0LDMyNTgxLDMyNjM5LDMyNjM4LDMyNjM3LDMyNzU2LDMyNzU0LDMyODEyLDMzMjExLDMzMjIwLDMzMjI4LDMzMjI2LDMzMjIxLDMzMjIzLDMzMjEyLDMzMjU3LDMzMzcxLDMzMzcwLDMzMzcyLDM0MTc5LDM0MTc2LDM0MTkxLDM0MjE1LDM0MTk3LDM0MjA4LDM0MTg3LDM0MjExLDM0''@;'; + put 'put ''MTcxLDM0MjEyLDM0MjAyLDM0MjA2LDM0MTY3LDM0MTcyLDM0MTg1LDM0MjA5LDM0MTcwLDM0MTY4LDM0MTM1LDM0MTkwLDM0MTk4LDM0MTgyLDM0MTg5LDM0MjAxLDM0MjA1LDM0MTc3LDM0MjEwLDM0MTc4LDM0MTg0LDM0MTgxLDM0MTY5LDM0MTY2LDM0MjAwLDM0MTkyLDM0MjA3LDM0NDA4''@;'; + put 'put ''LDM0NzUwLDM0NzMwLDM0NzMzLDM0NzU3LDM0NzM2LDM0NzMyLDM0NzQ1LDM0NzQxLDM0NzQ4LDM0NzM0LDM0NzYxLDM0NzU1LDM0NzU0LDM0NzY0LDM0NzQzLDM0NzM1LDM0NzU2LDM0NzYyLDM0NzQwLDM0NzQyLDM0NzUxLDM0NzQ0LDM0NzQ5LDM0NzgyLDM0NzM4LDM1MTI1LDM1MTIzLDM1''@;'; + put 'put ''MTMyLDM1MTM0LDM1MTM3LDM1MTU0LDM1MTI3LDM1MTM4LDM1MjQ1LDM1MjQ3LDM1MjQ2LDM1MzE0LDM1MzE1LDM1NjE0LDM1NjA4LDM1NjA2LDM1NjAxLDM1NTg5LDM1NTk1LDM1NjE4LDM1NTk5LDM1NjAyLDM1NjA1LDM1NTkxLDM1NTk3LDM1NTkyLDM1NTkwLDM1NjEyLDM1NjAzLDM1NjEw''@;'; + put 'put ''LDM1OTE5LDM1OTUyLDM1OTU0LDM1OTUzLDM1OTUxLDM1OTg5LDM1OTg4LDM2MDg5LDM2MjA3LDM2NDMwLDM2NDI5LDM2NDM1LDM2NDMyLDM2NDI4LDM2NDIzLDM2Njc1LDM2NjcyLDM2OTk3LDM2OTkwLDM3MTc2LDM3Mjc0LDM3MjgyLDM3Mjc1LDM3MjczLDM3Mjc5LDM3MjgxLDM3Mjc3LDM3''@;'; + put 'put ''MjgwLDM3NzkzLDM3NzYzLDM3ODA3LDM3NzMyLDM3NzE4LDM3NzAzLDM3NzU2LDM3NzIwLDM3NzI0LDM3NzUwLDM3NzA1LDM3NzEyLDM3NzEzLDM3NzI4LDM3NzQxLDM3Nzc1LDM3NzA4LDM3NzM4LDM3NzUzLDM3NzE5LDM3NzE3LDM3NzE0LDM3NzExLDM3NzQ1LDM3NzUxLDM3NzU1LDM3NzI5''@;'; + put 'put ''LDM3NzI2LDM3NzMxLDM3NzM1LDM3NzYwLDM3NzEwLDM3NzIxLDM4MzQzLDM4MzM2LDM4MzQ1LDM4MzM5LDM4MzQxLDM4MzI3LDM4NTc0LDM4NTc2LDM4NTcyLDM4Njg4LDM4Njg3LDM4NjgwLDM4Njg1LDM4NjgxLDM4ODEwLDM4ODE3LDM4ODEyLDM4ODE0LDM4ODEzLDM4ODY5LDM4ODY4LDM4''@;'; + put 'put ''ODk3LDM4OTc3LDM4OTgwLDM4OTg2LDM4OTg1LDM4OTgxLDM4OTc5LDM5MjA1LDM5MjExLDM5MjEyLDM5MjEwLDM5MjE5LDM5MjE4LDM5MjE1LDM5MjEzLDM5MjE3LDM5MjE2LDM5MzIwLDM5MzMxLDM5MzI5LDM5NDI2LDM5NDE4LDM5NDEyLDM5NDE1LDM5NDE3LDM5NDE2LDM5NDE0LDM5NDE5''@;'; + put 'put ''LDM5NDIxLDM5NDIyLDM5NDIwLDM5NDI3LDM5NjE0LDM5Njc4LDM5Njc3LDM5NjgxLDM5Njc2LDM5NzUyLDM5ODM0LDM5ODQ4LDM5ODM4LDM5ODM1LDM5ODQ2LDM5ODQxLDM5ODQ1LDM5ODQ0LDM5ODE0LDM5ODQyLDM5ODQwLDM5ODU1LDQwMjQzLDQwMjU3LDQwMjk1LDQwMjQ2LDQwMjM4LDQw''@;'; + put 'put ''MjM5LDQwMjQxLDQwMjQ4LDQwMjQwLDQwMjYxLDQwMjU4LDQwMjU5LDQwMjU0LDQwMjQ3LDQwMjU2LDQwMjUzLDMyNzU3LDQwMjM3LDQwNTg2LDQwNTg1LDQwNTg5LDQwNjI0LDQwNjQ4LDQwNjY2LDQwNjk5LDQwNzAzLDQwNzQwLDQwNzM5LDQwNzM4LDQwNzg4LDQwODY0LDIwNzg1LDIwNzgx''@;'; + put 'put ''LDIwNzgyLDIyMTY4LDIyMTcyLDIyMTY3LDIyMTcwLDIyMTczLDIyMTY5LDIyODk2LDIzMzU2LDIzNjU3LDIzNjU4LDI0ZTMsMjQxNzMsMjQxNzQsMjUwNDgsMjUwNTUsMjUwNjksMjUwNzAsMjUwNzMsMjUwNjYsMjUwNzIsMjUwNjcsMjUwNDYsMjUwNjUsMjU4NTUsMjU4NjAsMjU4NTMsMjU4''@;'; + put 'put ''NDgsMjU4NTcsMjU4NTksMjU4NTIsMjYwMDQsMjYwNzUsMjYzMzAsMjYzMzEsMjYzMjgsMjczMzMsMjczMjEsMjczMjUsMjczNjEsMjczMzQsMjczMjIsMjczMTgsMjczMTksMjczMzUsMjczMTYsMjczMDksMjc0ODYsMjc1OTMsMjc2NTksMjg2NzksMjg2ODQsMjg2ODUsMjg2NzMsMjg2Nzcs''@;'; + put 'put ''Mjg2OTIsMjg2ODYsMjg2NzEsMjg2NzIsMjg2NjcsMjg3MTAsMjg2NjgsMjg2NjMsMjg2ODIsMjkxODUsMjkxODMsMjkxNzcsMjkxODcsMjkxODEsMjk1NTgsMjk4ODAsMjk4ODgsMjk4NzcsMjk4ODksMjk4ODYsMjk4NzgsMjk4ODMsMjk4OTAsMjk5NzIsMjk5NzEsMzAzMDAsMzAzMDgsMzAy''@;'; + put 'put ''OTcsMzAyODgsMzAyOTEsMzAyOTUsMzAyOTgsMzAzNzQsMzAzOTcsMzA0NDQsMzA2NTgsMzA2NTAsMzA5NzUsMzA5ODgsMzA5OTUsMzA5OTYsMzA5ODUsMzA5OTIsMzA5OTQsMzA5OTMsMzExNDksMzExNDgsMzEzMjcsMzE3NzIsMzE3ODUsMzE3NjksMzE3NzYsMzE3NzUsMzE3ODksMzE3NzMs''@;'; + put 'put ''MzE3ODIsMzE3ODQsMzE3NzgsMzE3ODEsMzE3OTIsMzIzNDgsMzIzMzYsMzIzNDIsMzIzNTUsMzIzNDQsMzIzNTQsMzIzNTEsMzIzMzcsMzIzNTIsMzIzNDMsMzIzMzksMzI2OTMsMzI2OTEsMzI3NTksMzI3NjAsMzI4ODUsMzMyMzMsMzMyMzQsMzMyMzIsMzMzNzUsMzMzNzQsMzQyMjgsMzQy''@;'; + put 'put ''NDYsMzQyNDAsMzQyNDMsMzQyNDIsMzQyMjcsMzQyMjksMzQyMzcsMzQyNDcsMzQyNDQsMzQyMzksMzQyNTEsMzQyNTQsMzQyNDgsMzQyNDUsMzQyMjUsMzQyMzAsMzQyNTgsMzQzNDAsMzQyMzIsMzQyMzEsMzQyMzgsMzQ0MDksMzQ3OTEsMzQ3OTAsMzQ3ODYsMzQ3NzksMzQ3OTUsMzQ3OTQs''@;'; + put 'put ''MzQ3ODksMzQ3ODMsMzQ4MDMsMzQ3ODgsMzQ3NzIsMzQ3ODAsMzQ3NzEsMzQ3OTcsMzQ3NzYsMzQ3ODcsMzQ3MjQsMzQ3NzUsMzQ3NzcsMzQ4MTcsMzQ4MDQsMzQ3OTIsMzQ3ODEsMzUxNTUsMzUxNDcsMzUxNTEsMzUxNDgsMzUxNDIsMzUxNTIsMzUxNTMsMzUxNDUsMzU2MjYsMzU2MjMsMzU2''@;'; + put 'put ''MTksMzU2MzUsMzU2MzIsMzU2MzcsMzU2NTUsMzU2MzEsMzU2NDQsMzU2NDYsMzU2MzMsMzU2MjEsMzU2MzksMzU2MjIsMzU2MzgsMzU2MzAsMzU2MjAsMzU2NDMsMzU2NDUsMzU2NDIsMzU5MDYsMzU5NTcsMzU5OTMsMzU5OTIsMzU5OTEsMzYwOTQsMzYxMDAsMzYwOTgsMzYwOTYsMzY0NDQs''@;'; + put 'put ''MzY0NTAsMzY0NDgsMzY0MzksMzY0MzgsMzY0NDYsMzY0NTMsMzY0NTUsMzY0NDMsMzY0NDIsMzY0NDksMzY0NDUsMzY0NTcsMzY0MzYsMzY2NzgsMzY2NzksMzY2ODAsMzY2ODMsMzcxNjAsMzcxNzgsMzcxNzksMzcxODIsMzcyODgsMzcyODUsMzcyODcsMzcyOTUsMzcyOTAsMzc4MTMsMzc3''@;'; + put 'put ''NzIsMzc3NzgsMzc4MTUsMzc3ODcsMzc3ODksMzc3NjksMzc3OTksMzc3NzQsMzc4MDIsMzc3OTAsMzc3OTgsMzc3ODEsMzc3NjgsMzc3ODUsMzc3OTEsMzc3NzMsMzc4MDksMzc3NzcsMzc4MTAsMzc3OTYsMzc4MDAsMzc4MTIsMzc3OTUsMzc3OTcsMzgzNTQsMzgzNTUsMzgzNTMsMzg1Nzks''@;'; + put 'put ''Mzg2MTUsMzg2MTgsMjQwMDIsMzg2MjMsMzg2MTYsMzg2MjEsMzg2OTEsMzg2OTAsMzg2OTMsMzg4MjgsMzg4MzAsMzg4MjQsMzg4MjcsMzg4MjAsMzg4MjYsMzg4MTgsMzg4MjEsMzg4NzEsMzg4NzMsMzg4NzAsMzg4NzIsMzg5MDYsMzg5OTIsMzg5OTMsMzg5OTQsMzkwOTYsMzkyMzMsMzky''@;'; + put 'put ''MjgsMzkyMjYsMzk0MzksMzk0MzUsMzk0MzMsMzk0MzcsMzk0MjgsMzk0NDEsMzk0MzQsMzk0MjksMzk0MzEsMzk0MzAsMzk2MTYsMzk2NDQsMzk2ODgsMzk2ODQsMzk2ODUsMzk3MjEsMzk3MzMsMzk3NTQsMzk3NTYsMzk3NTUsMzk4NzksMzk4NzgsMzk4NzUsMzk4NzEsMzk4NzMsMzk4NjEs''@;'; + put 'put ''Mzk4NjQsMzk4OTEsMzk4NjIsMzk4NzYsMzk4NjUsMzk4NjksNDAyODQsNDAyNzUsNDAyNzEsNDAyNjYsNDAyODMsNDAyNjcsNDAyODEsNDAyNzgsNDAyNjgsNDAyNzksNDAyNzQsNDAyNzYsNDAyODcsNDAyODAsNDAyODIsNDA1OTAsNDA1ODgsNDA2NzEsNDA3MDUsNDA3MDQsNDA3MjYsNDA3''@;'; + put 'put ''NDEsNDA3NDcsNDA3NDYsNDA3NDUsNDA3NDQsNDA3ODAsNDA3ODksMjA3ODgsMjA3ODksMjExNDIsMjEyMzksMjE0MjgsMjIxODcsMjIxODksMjIxODIsMjIxODMsMjIxODYsMjIxODgsMjI3NDYsMjI3NDksMjI3NDcsMjI4MDIsMjMzNTcsMjMzNTgsMjMzNTksMjQwMDMsMjQxNzYsMjQ1MTEs''@;'; + put 'put ''MjUwODMsMjU4NjMsMjU4NzIsMjU4NjksMjU4NjUsMjU4NjgsMjU4NzAsMjU5ODgsMjYwNzgsMjYwNzcsMjYzMzQsMjczNjcsMjczNjAsMjczNDAsMjczNDUsMjczNTMsMjczMzksMjczNTksMjczNTYsMjczNDQsMjczNzEsMjczNDMsMjczNDEsMjczNTgsMjc0ODgsMjc1NjgsMjc2NjAsMjg2''@;'; + put 'put ''OTcsMjg3MTEsMjg3MDQsMjg2OTQsMjg3MTUsMjg3MDUsMjg3MDYsMjg3MDcsMjg3MTMsMjg2OTUsMjg3MDgsMjg3MDAsMjg3MTQsMjkxOTYsMjkxOTQsMjkxOTEsMjkxODYsMjkxODksMjkzNDksMjkzNTAsMjkzNDgsMjkzNDcsMjkzNDUsMjk4OTksMjk4OTMsMjk4NzksMjk4OTEsMjk5NzQs''@;'; + put 'put ''MzAzMDQsMzA2NjUsMzA2NjYsMzA2NjAsMzA3MDUsMzEwMDUsMzEwMDMsMzEwMDksMzEwMDQsMzA5OTksMzEwMDYsMzExNTIsMzEzMzUsMzEzMzYsMzE3OTUsMzE4MDQsMzE4MDEsMzE3ODgsMzE4MDMsMzE5ODAsMzE5NzgsMzIzNzQsMzIzNzMsMzIzNzYsMzIzNjgsMzIzNzUsMzIzNjcsMzIz''@;'; + put 'put ''NzgsMzIzNzAsMzIzNzIsMzIzNjAsMzI1ODcsMzI1ODYsMzI2NDMsMzI2NDYsMzI2OTUsMzI3NjUsMzI3NjYsMzI4ODgsMzMyMzksMzMyMzcsMzMzODAsMzMzNzcsMzMzNzksMzQyODMsMzQyODksMzQyODUsMzQyNjUsMzQyNzMsMzQyODAsMzQyNjYsMzQyNjMsMzQyODQsMzQyOTAsMzQyOTYs''@;'; + put 'put ''MzQyNjQsMzQyNzEsMzQyNzUsMzQyNjgsMzQyNTcsMzQyODgsMzQyNzgsMzQyODcsMzQyNzAsMzQyNzQsMzQ4MTYsMzQ4MTAsMzQ4MTksMzQ4MDYsMzQ4MDcsMzQ4MjUsMzQ4MjgsMzQ4MjcsMzQ4MjIsMzQ4MTIsMzQ4MjQsMzQ4MTUsMzQ4MjYsMzQ4MTgsMzUxNzAsMzUxNjIsMzUxNjMsMzUx''@;'; + put 'put ''NTksMzUxNjksMzUxNjQsMzUxNjAsMzUxNjUsMzUxNjEsMzUyMDgsMzUyNTUsMzUyNTQsMzUzMTgsMzU2NjQsMzU2NTYsMzU2NTgsMzU2NDgsMzU2NjcsMzU2NzAsMzU2NjgsMzU2NTksMzU2NjksMzU2NjUsMzU2NTAsMzU2NjYsMzU2NzEsMzU5MDcsMzU5NTksMzU5NTgsMzU5OTQsMzYxMDIs''@;'; + put 'put ''MzYxMDMsMzYxMDUsMzYyNjgsMzYyNjYsMzYyNjksMzYyNjcsMzY0NjEsMzY0NzIsMzY0NjcsMzY0NTgsMzY0NjMsMzY0NzUsMzY1NDYsMzY2OTAsMzY2ODksMzY2ODcsMzY2ODgsMzY2OTEsMzY3ODgsMzcxODQsMzcxODMsMzcyOTYsMzcyOTMsMzc4NTQsMzc4MzEsMzc4MzksMzc4MjYsMzc4''@;'; + put 'put ''NTAsMzc4NDAsMzc4ODEsMzc4NjgsMzc4MzYsMzc4NDksMzc4MDEsMzc4NjIsMzc4MzQsMzc4NDQsMzc4NzAsMzc4NTksMzc4NDUsMzc4MjgsMzc4MzgsMzc4MjQsMzc4NDIsMzc4NjMsMzgyNjksMzgzNjIsMzgzNjMsMzg2MjUsMzg2OTcsMzg2OTksMzg3MDAsMzg2OTYsMzg2OTQsMzg4MzUs''@;'; + put 'put ''Mzg4MzksMzg4MzgsMzg4NzcsMzg4NzgsMzg4NzksMzkwMDQsMzkwMDEsMzkwMDUsMzg5OTksMzkxMDMsMzkxMDEsMzkwOTksMzkxMDIsMzkyNDAsMzkyMzksMzkyMzUsMzkzMzQsMzkzMzUsMzk0NTAsMzk0NDUsMzk0NjEsMzk0NTMsMzk0NjAsMzk0NTEsMzk0NTgsMzk0NTYsMzk0NjMsMzk0''@;'; + put 'put ''NTksMzk0NTQsMzk0NTIsMzk0NDQsMzk2MTgsMzk2OTEsMzk2OTAsMzk2OTQsMzk2OTIsMzk3MzUsMzk5MTQsMzk5MTUsMzk5MDQsMzk5MDIsMzk5MDgsMzk5MTAsMzk5MDYsMzk5MjAsMzk4OTIsMzk4OTUsMzk5MTYsMzk5MDAsMzk4OTcsMzk5MDksMzk4OTMsMzk5MDUsMzk4OTgsNDAzMTEs''@;'; + put 'put ''NDAzMjEsNDAzMzAsNDAzMjQsNDAzMjgsNDAzMDUsNDAzMjAsNDAzMTIsNDAzMjYsNDAzMzEsNDAzMzIsNDAzMTcsNDAyOTksNDAzMDgsNDAzMDksNDAzMDQsNDAyOTcsNDAzMjUsNDAzMDcsNDAzMTUsNDAzMjIsNDAzMDMsNDAzMTMsNDAzMTksNDAzMjcsNDAyOTYsNDA1OTYsNDA1OTMsNDA2''@;'; + put 'put ''NDAsNDA3MDAsNDA3NDksNDA3NjgsNDA3NjksNDA3ODEsNDA3OTAsNDA3OTEsNDA3OTIsMjEzMDMsMjIxOTQsMjIxOTcsMjIxOTUsMjI3NTUsMjMzNjUsMjQwMDYsMjQwMDcsMjQzMDIsMjQzMDMsMjQ1MTIsMjQ1MTMsMjUwODEsMjU4NzksMjU4NzgsMjU4NzcsMjU4NzUsMjYwNzksMjYzNDQs''@;'; + put 'put ''MjYzMzksMjYzNDAsMjczNzksMjczNzYsMjczNzAsMjczNjgsMjczODUsMjczNzcsMjczNzQsMjczNzUsMjg3MzIsMjg3MjUsMjg3MTksMjg3MjcsMjg3MjQsMjg3MjEsMjg3MzgsMjg3MjgsMjg3MzUsMjg3MzAsMjg3MjksMjg3MzYsMjg3MzEsMjg3MjMsMjg3MzcsMjkyMDMsMjkyMDQsMjkz''@;'; + put 'put ''NTIsMjk1NjUsMjk1NjQsMjk4ODIsMzAzNzksMzAzNzgsMzAzOTgsMzA0NDUsMzA2NjgsMzA2NzAsMzA2NzEsMzA2NjksMzA3MDYsMzEwMTMsMzEwMTEsMzEwMTUsMzEwMTYsMzEwMTIsMzEwMTcsMzExNTQsMzEzNDIsMzEzNDAsMzEzNDEsMzE0NzksMzE4MTcsMzE4MTYsMzE4MTgsMzE4MTUs''@;'; + put 'put ''MzE4MTMsMzE5ODIsMzIzNzksMzIzODIsMzIzODUsMzIzODQsMzI2OTgsMzI3NjcsMzI4ODksMzMyNDMsMzMyNDEsMzMyOTEsMzMzODQsMzMzODUsMzQzMzgsMzQzMDMsMzQzMDUsMzQzMDIsMzQzMzEsMzQzMDQsMzQyOTQsMzQzMDgsMzQzMTMsMzQzMDksMzQzMTYsMzQzMDEsMzQ4NDEsMzQ4''@;'; + put 'put ''MzIsMzQ4MzMsMzQ4MzksMzQ4MzUsMzQ4MzgsMzUxNzEsMzUxNzQsMzUyNTcsMzUzMTksMzU2ODAsMzU2OTAsMzU2NzcsMzU2ODgsMzU2ODMsMzU2ODUsMzU2ODcsMzU2OTMsMzYyNzAsMzY0ODYsMzY0ODgsMzY0ODQsMzY2OTcsMzY2OTQsMzY2OTUsMzY2OTMsMzY2OTYsMzY2OTgsMzcwMDUs''@;'; + put 'put ''MzcxODcsMzcxODUsMzczMDMsMzczMDEsMzcyOTgsMzcyOTksMzc4OTksMzc5MDcsMzc4ODMsMzc5MjAsMzc5MDMsMzc5MDgsMzc4ODYsMzc5MDksMzc5MDQsMzc5MjgsMzc5MTMsMzc5MDEsMzc4NzcsMzc4ODgsMzc4NzksMzc4OTUsMzc5MDIsMzc5MTAsMzc5MDYsMzc4ODIsMzc4OTcsMzc4''@;'; + put 'put ''ODAsMzc4OTgsMzc4ODcsMzc4ODQsMzc5MDAsMzc4NzgsMzc5MDUsMzc4OTQsMzgzNjYsMzgzNjgsMzgzNjcsMzg3MDIsMzg3MDMsMzg4NDEsMzg4NDMsMzg5MDksMzg5MTAsMzkwMDgsMzkwMTAsMzkwMTEsMzkwMDcsMzkxMDUsMzkxMDYsMzkyNDgsMzkyNDYsMzkyNTcsMzkyNDQsMzkyNDMs''@;'; + put 'put ''MzkyNTEsMzk0NzQsMzk0NzYsMzk0NzMsMzk0NjgsMzk0NjYsMzk0NzgsMzk0NjUsMzk0NzAsMzk0ODAsMzk0NjksMzk2MjMsMzk2MjYsMzk2MjIsMzk2OTYsMzk2OTgsMzk2OTcsMzk5NDcsMzk5NDQsMzk5MjcsMzk5NDEsMzk5NTQsMzk5MjgsNGU0LDM5OTQzLDM5OTUwLDM5OTQyLDM5OTU5''@;'; + put 'put ''LDM5OTU2LDM5OTQ1LDQwMzUxLDQwMzQ1LDQwMzU2LDQwMzQ5LDQwMzM4LDQwMzQ0LDQwMzM2LDQwMzQ3LDQwMzUyLDQwMzQwLDQwMzQ4LDQwMzYyLDQwMzQzLDQwMzUzLDQwMzQ2LDQwMzU0LDQwMzYwLDQwMzUwLDQwMzU1LDQwMzgzLDQwMzYxLDQwMzQyLDQwMzU4LDQwMzU5LDQwNjAxLDQw''@;'; + put 'put ''NjAzLDQwNjAyLDQwNjc3LDQwNjc2LDQwNjc5LDQwNjc4LDQwNzUyLDQwNzUwLDQwNzk1LDQwODAwLDQwNzk4LDQwNzk3LDQwNzkzLDQwODQ5LDIwNzk0LDIwNzkzLDIxMTQ0LDIxMTQzLDIyMjExLDIyMjA1LDIyMjA2LDIzMzY4LDIzMzY3LDI0MDExLDI0MDE1LDI0MzA1LDI1MDg1LDI1ODgz''@;'; + put 'put ''LDI3Mzk0LDI3Mzg4LDI3Mzk1LDI3Mzg0LDI3MzkyLDI4NzM5LDI4NzQwLDI4NzQ2LDI4NzQ0LDI4NzQ1LDI4NzQxLDI4NzQyLDI5MjEzLDI5MjEwLDI5MjA5LDI5NTY2LDI5OTc1LDMwMzE0LDMwNjcyLDMxMDIxLDMxMDI1LDMxMDIzLDMxODI4LDMxODI3LDMxOTg2LDMyMzk0LDMyMzkxLDMy''@;'; + put 'put ''MzkyLDMyMzk1LDMyMzkwLDMyMzk3LDMyNTg5LDMyNjk5LDMyODE2LDMzMjQ1LDM0MzI4LDM0MzQ2LDM0MzQyLDM0MzM1LDM0MzM5LDM0MzMyLDM0MzI5LDM0MzQzLDM0MzUwLDM0MzM3LDM0MzM2LDM0MzQ1LDM0MzM0LDM0MzQxLDM0ODU3LDM0ODQ1LDM0ODQzLDM0ODQ4LDM0ODUyLDM0ODQ0''@;'; + put 'put ''LDM0ODU5LDM0ODkwLDM1MTgxLDM1MTc3LDM1MTgyLDM1MTc5LDM1MzIyLDM1NzA1LDM1NzA0LDM1NjUzLDM1NzA2LDM1NzA3LDM2MTEyLDM2MTE2LDM2MjcxLDM2NDk0LDM2NDkyLDM2NzAyLDM2Njk5LDM2NzAxLDM3MTkwLDM3MTg4LDM3MTg5LDM3MzA1LDM3OTUxLDM3OTQ3LDM3OTQyLDM3''@;'; + put 'put ''OTI5LDM3OTQ5LDM3OTQ4LDM3OTM2LDM3OTQ1LDM3OTMwLDM3OTQzLDM3OTMyLDM3OTUyLDM3OTM3LDM4MzczLDM4MzcyLDM4MzcxLDM4NzA5LDM4NzE0LDM4ODQ3LDM4ODgxLDM5MDEyLDM5MTEzLDM5MTEwLDM5MTA0LDM5MjU2LDM5MjU0LDM5NDgxLDM5NDg1LDM5NDk0LDM5NDkyLDM5NDkw''@;'; + put 'put ''LDM5NDg5LDM5NDgyLDM5NDg3LDM5NjI5LDM5NzAxLDM5NzAzLDM5NzA0LDM5NzAyLDM5NzM4LDM5NzYyLDM5OTc5LDM5OTY1LDM5OTY0LDM5OTgwLDM5OTcxLDM5OTc2LDM5OTc3LDM5OTcyLDM5OTY5LDQwMzc1LDQwMzc0LDQwMzgwLDQwMzg1LDQwMzkxLDQwMzk0LDQwMzk5LDQwMzgyLDQw''@;'; + put 'put ''Mzg5LDQwMzg3LDQwMzc5LDQwMzczLDQwMzk4LDQwMzc3LDQwMzc4LDQwMzY0LDQwMzkyLDQwMzY5LDQwMzY1LDQwMzk2LDQwMzcxLDQwMzk3LDQwMzcwLDQwNTcwLDQwNjA0LDQwNjgzLDQwNjg2LDQwNjg1LDQwNzMxLDQwNzI4LDQwNzMwLDQwNzUzLDQwNzgyLDQwODA1LDQwODA0LDQwODUw''@;'; + put 'put ''LDIwMTUzLDIyMjE0LDIyMjEzLDIyMjE5LDIyODk3LDIzMzcxLDIzMzcyLDI0MDIxLDI0MDE3LDI0MzA2LDI1ODg5LDI1ODg4LDI1ODk0LDI1ODkwLDI3NDAzLDI3NDAwLDI3NDAxLDI3NjYxLDI4NzU3LDI4NzU4LDI4NzU5LDI4NzU0LDI5MjE0LDI5MjE1LDI5MzUzLDI5NTY3LDI5OTEyLDI5''@;'; + put 'put ''OTA5LDI5OTEzLDI5OTExLDMwMzE3LDMwMzgxLDMxMDI5LDMxMTU2LDMxMzQ0LDMxMzQ1LDMxODMxLDMxODM2LDMxODMzLDMxODM1LDMxODM0LDMxOTg4LDMxOTg1LDMyNDAxLDMyNTkxLDMyNjQ3LDMzMjQ2LDMzMzg3LDM0MzU2LDM0MzU3LDM0MzU1LDM0MzQ4LDM0MzU0LDM0MzU4LDM0ODYw''@;'; + put 'put ''LDM0ODU2LDM0ODU0LDM0ODU4LDM0ODUzLDM1MTg1LDM1MjYzLDM1MjYyLDM1MzIzLDM1NzEwLDM1NzE2LDM1NzE0LDM1NzE4LDM1NzE3LDM1NzExLDM2MTE3LDM2NTAxLDM2NTAwLDM2NTA2LDM2NDk4LDM2NDk2LDM2NTAyLDM2NTAzLDM2NzA0LDM2NzA2LDM3MTkxLDM3OTY0LDM3OTY4LDM3''@;'; + put 'put ''OTYyLDM3OTYzLDM3OTY3LDM3OTU5LDM3OTU3LDM3OTYwLDM3OTYxLDM3OTU4LDM4NzE5LDM4ODgzLDM5MDE4LDM5MDE3LDM5MTE1LDM5MjUyLDM5MjU5LDM5NTAyLDM5NTA3LDM5NTA4LDM5NTAwLDM5NTAzLDM5NDk2LDM5NDk4LDM5NDk3LDM5NTA2LDM5NTA0LDM5NjMyLDM5NzA1LDM5NzIz''@;'; + put 'put ''LDM5NzM5LDM5NzY2LDM5NzY1LDQwMDA2LDQwMDA4LDM5OTk5LDQwMDA0LDM5OTkzLDM5OTg3LDQwMDAxLDM5OTk2LDM5OTkxLDM5OTg4LDM5OTg2LDM5OTk3LDM5OTkwLDQwNDExLDQwNDAyLDQwNDE0LDQwNDEwLDQwMzk1LDQwNDAwLDQwNDEyLDQwNDAxLDQwNDE1LDQwNDI1LDQwNDA5LDQw''@;'; + put 'put ''NDA4LDQwNDA2LDQwNDM3LDQwNDA1LDQwNDEzLDQwNjMwLDQwNjg4LDQwNzU3LDQwNzU1LDQwNzU0LDQwNzcwLDQwODExLDQwODUzLDQwODY2LDIwNzk3LDIxMTQ1LDIyNzYwLDIyNzU5LDIyODk4LDIzMzczLDI0MDI0LDM0ODYzLDI0Mzk5LDI1MDg5LDI1MDkxLDI1MDkyLDI1ODk3LDI1ODkz''@;'; + put 'put ''LDI2MDA2LDI2MzQ3LDI3NDA5LDI3NDEwLDI3NDA3LDI3NTk0LDI4NzYzLDI4NzYyLDI5MjE4LDI5NTcwLDI5NTY5LDI5NTcxLDMwMzIwLDMwNjc2LDMxODQ3LDMxODQ2LDMyNDA1LDMzMzg4LDM0MzYyLDM0MzY4LDM0MzYxLDM0MzY0LDM0MzUzLDM0MzYzLDM0MzY2LDM0ODY0LDM0ODY2LDM0''@;'; + put 'put ''ODYyLDM0ODY3LDM1MTkwLDM1MTg4LDM1MTg3LDM1MzI2LDM1NzI0LDM1NzI2LDM1NzIzLDM1NzIwLDM1OTA5LDM2MTIxLDM2NTA0LDM2NzA4LDM2NzA3LDM3MzA4LDM3OTg2LDM3OTczLDM3OTgxLDM3OTc1LDM3OTgyLDM4ODUyLDM4ODUzLDM4OTEyLDM5NTEwLDM5NTEzLDM5NzEwLDM5NzEx''@;'; + put 'put ''LDM5NzEyLDQwMDE4LDQwMDI0LDQwMDE2LDQwMDEwLDQwMDEzLDQwMDExLDQwMDIxLDQwMDI1LDQwMDEyLDQwMDE0LDQwNDQzLDQwNDM5LDQwNDMxLDQwNDE5LDQwNDI3LDQwNDQwLDQwNDIwLDQwNDM4LDQwNDE3LDQwNDMwLDQwNDIyLDQwNDM0LDQwNDMyLDQwNDE4LDQwNDI4LDQwNDM2LDQw''@;'; + put 'put ''NDM1LDQwNDI0LDQwNDI5LDQwNjQyLDQwNjU2LDQwNjkwLDQwNjkxLDQwNzEwLDQwNzMyLDQwNzYwLDQwNzU5LDQwNzU4LDQwNzcxLDQwNzgzLDQwODE3LDQwODE2LDQwODE0LDQwODE1LDIyMjI3LDIyMjIxLDIzMzc0LDIzNjYxLDI1OTAxLDI2MzQ5LDI2MzUwLDI3NDExLDI4NzY3LDI4NzY5''@;'; + put 'put ''LDI4NzY1LDI4NzY4LDI5MjE5LDI5OTE1LDI5OTI1LDMwNjc3LDMxMDMyLDMxMTU5LDMxMTU4LDMxODUwLDMyNDA3LDMyNjQ5LDMzMzg5LDM0MzcxLDM0ODcyLDM0ODcxLDM0ODY5LDM0ODkxLDM1NzMyLDM1NzMzLDM2NTEwLDM2NTExLDM2NTEyLDM2NTA5LDM3MzEwLDM3MzA5LDM3MzE0LDM3''@;'; + put 'put ''OTk1LDM3OTkyLDM3OTkzLDM4NjI5LDM4NzI2LDM4NzIzLDM4NzI3LDM4ODU1LDM4ODg1LDM5NTE4LDM5NjM3LDM5NzY5LDQwMDM1LDQwMDM5LDQwMDM4LDQwMDM0LDQwMDMwLDQwMDMyLDQwNDUwLDQwNDQ2LDQwNDU1LDQwNDUxLDQwNDU0LDQwNDUzLDQwNDQ4LDQwNDQ5LDQwNDU3LDQwNDQ3''@;'; + put 'put ''LDQwNDQ1LDQwNDUyLDQwNjA4LDQwNzM0LDQwNzc0LDQwODIwLDQwODIxLDQwODIyLDIyMjI4LDI1OTAyLDI2MDQwLDI3NDE2LDI3NDE3LDI3NDE1LDI3NDE4LDI4NzcwLDI5MjIyLDI5MzU0LDMwNjgwLDMwNjgxLDMxMDMzLDMxODQ5LDMxODUxLDMxOTkwLDMyNDEwLDMyNDA4LDMyNDExLDMy''@;'; + put 'put ''NDA5LDMzMjQ4LDMzMjQ5LDM0Mzc0LDM0Mzc1LDM0Mzc2LDM1MTkzLDM1MTk0LDM1MTk2LDM1MTk1LDM1MzI3LDM1NzM2LDM1NzM3LDM2NTE3LDM2NTE2LDM2NTE1LDM3OTk4LDM3OTk3LDM3OTk5LDM4MDAxLDM4MDAzLDM4NzI5LDM5MDI2LDM5MjYzLDQwMDQwLDQwMDQ2LDQwMDQ1LDQwNDU5''@;'; + put 'put ''LDQwNDYxLDQwNDY0LDQwNDYzLDQwNDY2LDQwNDY1LDQwNjA5LDQwNjkzLDQwNzEzLDQwNzc1LDQwODI0LDQwODI3LDQwODI2LDQwODI1LDIyMzAyLDI4Nzc0LDMxODU1LDM0ODc2LDM2Mjc0LDM2NTE4LDM3MzE1LDM4MDA0LDM4MDA4LDM4MDA2LDM4MDA1LDM5NTIwLDQwMDUyLDQwMDUxLDQw''@;'; + put 'put ''MDQ5LDQwMDUzLDQwNDY4LDQwNDY3LDQwNjk0LDQwNzE0LDQwODY4LDI4Nzc2LDI4NzczLDMxOTkxLDM0NDEwLDM0ODc4LDM0ODc3LDM0ODc5LDM1NzQyLDM1OTk2LDM2NTIxLDM2NTUzLDM4NzMxLDM5MDI3LDM5MDI4LDM5MTE2LDM5MjY1LDM5MzM5LDM5NTI0LDM5NTI2LDM5NTI3LDM5NzE2''@;'; + put 'put ''LDQwNDY5LDQwNDcxLDQwNzc2LDI1MDk1LDI3NDIyLDI5MjIzLDM0MzgwLDM2NTIwLDM4MDE4LDM4MDE2LDM4MDE3LDM5NTI5LDM5NTI4LDM5NzI2LDQwNDczLDI5MjI1LDM0Mzc5LDM1NzQzLDM4MDE5LDQwMDU3LDQwNjMxLDMwMzI1LDM5NTMxLDQwMDU4LDQwNDc3LDI4Nzc3LDI4Nzc4LDQw''@;'; + put 'put ''NjEyLDQwODMwLDQwNzc3LDQwODU2LDMwODQ5LDM3NTYxLDM1MDIzLDIyNzE1LDI0NjU4LDMxOTExLDIzMjkwLDk1NTYsOTU3NCw5NTU5LDk1NjgsOTU4MCw5NTcxLDk1NjIsOTU3Nyw5NTY1LDk1NTQsOTU3Miw5NTU3LDk1NjYsOTU3OCw5NTY5LDk1NjAsOTU3NSw5NTYzLDk1NTUsOTU3Myw5''@;'; + put 'put ''NTU4LDk1NjcsOTU3OSw5NTcwLDk1NjEsOTU3Niw5NTY0LDk1NTMsOTU1Miw5NTgxLDk1ODIsOTU4NCw5NTgzLDY1NTE3LDEzMjQyMywzNzU5NSwxMzI1NzUsMTQ3Mzk3LDM0MTI0LDE3MDc3LDI5Njc5LDIwOTE3LDEzODk3LDE0OTgyNiwxNjYzNzIsMzc3MDAsMTM3NjkxLDMzNTE4LDE0NjYz''@;'; + put 'put ''MiwzMDc4MCwyNjQzNiwyNTMxMSwxNDk4MTEsMTY2MzE0LDEzMTc0NCwxNTg2NDMsMTM1OTQxLDIwMzk1LDE0MDUyNSwyMDQ4OCwxNTkwMTcsMTYyNDM2LDE0NDg5NiwxNTAxOTMsMTQwNTYzLDIwNTIxLDEzMTk2NiwyNDQ4NCwxMzE5NjgsMTMxOTExLDI4Mzc5LDEzMjEyNywyMDYwNSwyMDcz''@;'; + put 'put ''NywxMzQzNCwyMDc1MCwzOTAyMCwxNDE0NywzMzgxNCwxNDk5MjQsMTMyMjMxLDIwODMyLDE0NDMwOCwyMDg0MiwxMzQxNDMsMTM5NTE2LDEzMTgxMywxNDA1OTIsMTMyNDk0LDE0MzkyMywxMzc2MDMsMjM0MjYsMzQ2ODUsMTMyNTMxLDE0NjU4NSwyMDkxNCwyMDkyMCw0MDI0NCwyMDkzNywy''@;'; + put 'put ''MDk0MywyMDk0NSwxNTU4MCwyMDk0NywxNTAxODIsMjA5MTUsMjA5NjIsMjEzMTQsMjA5NzMsMzM3NDEsMjY5NDIsMTQ1MTk3LDI0NDQzLDIxMDAzLDIxMDMwLDIxMDUyLDIxMTczLDIxMDc5LDIxMTQwLDIxMTc3LDIxMTg5LDMxNzY1LDM0MTE0LDIxMjE2LDM0MzE3LDE1ODQ4MywyMTI1Mywx''@;'; + put 'put ''NjY2MjIsMjE4MzMsMjgzNzcsMTQ3MzI4LDEzMzQ2MCwxNDc0MzYsMjEyOTksMjEzMTYsMTM0MTE0LDI3ODUxLDEzNjk5OCwyNjY1MSwyOTY1MywyNDY1MCwxNjA0MiwxNDU0MCwxMzY5MzYsMjkxNDksMTc1NzAsMjEzNTcsMjEzNjQsMTY1NTQ3LDIxMzc0LDIxMzc1LDEzNjU5OCwxMzY3MjMs''@;'; + put 'put ''MzA2OTQsMjEzOTUsMTY2NTU1LDIxNDA4LDIxNDE5LDIxNDIyLDI5NjA3LDE1MzQ1OCwxNjIxNywyOTU5NiwyMTQ0MSwyMTQ0NSwyNzcyMSwyMDA0MSwyMjUyNiwyMTQ2NSwxNTAxOSwxMzQwMzEsMjE0NzIsMTQ3NDM1LDE0Mjc1NSwyMTQ5NCwxMzQyNjMsMjE1MjMsMjg3OTMsMjE4MDMsMjYx''@;'; + put 'put ''OTksMjc5OTUsMjE2MTMsMTU4NTQ3LDEzNDUxNiwyMTg1MywyMTY0NywyMTY2OCwxODM0MiwxMzY5NzMsMTM0ODc3LDE1Nzk2LDEzNDQ3NywxNjYzMzIsMTQwOTUyLDIxODMxLDE5NjkzLDIxNTUxLDI5NzE5LDIxODk0LDIxOTI5LDIyMDIxLDEzNzQzMSwxNDc1MTQsMTc3NDYsMTQ4NTMzLDI2''@;'; + put 'put ''MjkxLDEzNTM0OCwyMjA3MSwyNjMxNywxNDQwMTAsMjYyNzYsMjYyODUsMjIwOTMsMjIwOTUsMzA5NjEsMjIyNTcsMzg3OTEsMjE1MDIsMjIyNzIsMjIyNTUsMjIyNTMsMTY2NzU4LDEzODU5LDEzNTc1OSwyMjM0MiwxNDc4NzcsMjc3NTgsMjg4MTEsMjIzMzgsMTQwMDEsMTU4ODQ2LDIyNTAy''@;'; + put 'put ''LDEzNjIxNCwyMjUzMSwxMzYyNzYsMTQ4MzIzLDIyNTY2LDE1MDUxNywyMjYyMCwyMjY5OCwxMzY2NSwyMjc1MiwyMjc0OCwxMzU3NDAsMjI3NzksMjM1NTEsMjIzMzksMTcyMzY4LDE0ODA4OCwzNzg0MywxMzcyOSwyMjgxNSwyNjc5MCwxNDAxOSwyODI0OSwxMzY3NjYsMjMwNzYsMjE4NDMs''@;'; + put 'put ''MTM2ODUwLDM0MDUzLDIyOTg1LDEzNDQ3OCwxNTg4NDksMTU5MDE4LDEzNzE4MCwyMzAwMSwxMzcyMTEsMTM3MTM4LDE1OTE0MiwyODAxNywxMzcyNTYsMTM2OTE3LDIzMDMzLDE1OTMwMSwyMzIxMSwyMzEzOSwxNDA1NCwxNDk5MjksMjMxNTksMTQwODgsMjMxOTAsMjk3OTcsMjMyNTEsMTU5''@;'; + put 'put ''NjQ5LDE0MDYyOCwxNTc0OSwxMzc0ODksMTQxMzAsMTM2ODg4LDI0MTk1LDIxMjAwLDIzNDE0LDI1OTkyLDIzNDIwLDE2MjMxOCwxNjM4OCwxODUyNSwxMzE1ODgsMjM1MDksMjQ5MjgsMTM3NzgwLDE1NDA2MCwxMzI1MTcsMjM1MzksMjM0NTMsMTk3MjgsMjM1NTcsMTM4MDUyLDIzNTcxLDI5''@;'; + put 'put ''NjQ2LDIzNTcyLDEzODQwNSwxNTg1MDQsMjM2MjUsMTg2NTMsMjM2ODUsMjM3ODUsMjM3OTEsMjM5NDcsMTM4NzQ1LDEzODgwNywyMzgyNCwyMzgzMiwyMzg3OCwxMzg5MTYsMjM3MzgsMjQwMjMsMzM1MzIsMTQzODEsMTQ5NzYxLDEzOTMzNywxMzk2MzUsMzM0MTUsMTQzOTAsMTUyOTgsMjQx''@;'; + put 'put ''MTAsMjcyNzQsMjQxODEsMjQxODYsMTQ4NjY4LDEzNDM1NSwyMTQxNCwyMDE1MSwyNDI3MiwyMTQxNiwxMzcwNzMsMjQwNzMsMjQzMDgsMTY0OTk0LDI0MzEzLDI0MzE1LDE0NDk2LDI0MzE2LDI2Njg2LDM3OTE1LDI0MzMzLDEzMTUyMSwxOTQ3MDgsMTUwNzAsMTg2MDYsMTM1OTk0LDI0Mzc4''@;'; + put 'put ''LDE1NzgzMiwxNDAyNDAsMjQ0MDgsMTQwNDAxLDI0NDE5LDM4ODQ1LDE1OTM0MiwyNDQzNCwzNzY5NiwxNjY0NTQsMjQ0ODcsMjM5OTAsMTU3MTEsMTUyMTQ0LDEzOTExNCwxNTk5OTIsMTQwOTA0LDM3MzM0LDEzMTc0MiwxNjY0NDEsMjQ2MjUsMjYyNDUsMTM3MzM1LDE0NjkxLDE1ODE1LDEz''@;'; + put 'put ''ODgxLDIyNDE2LDE0MTIzNiwzMTA4OSwxNTkzNiwyNDczNCwyNDc0MCwyNDc1NSwxNDk4OTAsMTQ5OTAzLDE2MjM4NywyOTg2MCwyMDcwNSwyMzIwMCwyNDkzMiwzMzgyOCwyNDg5OCwxOTQ3MjYsMTU5NDQyLDI0OTYxLDIwOTgwLDEzMjY5NCwyNDk2NywyMzQ2NiwxNDczODMsMTQxNDA3LDI1''@;'; + put 'put ''MDQzLDE2NjgxMywxNzAzMzMsMjUwNDAsMTQ2NDIsMTQxNjk2LDE0MTUwNSwyNDYxMSwyNDkyNCwyNTg4NiwyNTQ4MywxMzEzNTIsMjUyODUsMTM3MDcyLDI1MzAxLDE0Mjg2MSwyNTQ1MiwxNDk5ODMsMTQ4NzEsMjU2NTYsMjU1OTIsMTM2MDc4LDEzNzIxMiwyNTc0NCwyODU1NCwxNDI5MDIs''@;'; + put 'put ''Mzg5MzIsMTQ3NTk2LDE1MzM3MywyNTgyNSwyNTgyOSwzODAxMSwxNDk1MCwyNTY1OCwxNDkzNSwyNTkzMywyODQzOCwxNTAwNTYsMTUwMDUxLDI1OTg5LDI1OTY1LDI1OTUxLDE0MzQ4NiwyNjAzNywxNDk4MjQsMTkyNTUsMjYwNjUsMTY2MDAsMTM3MjU3LDI2MDgwLDI2MDgzLDI0NTQzLDE0''@;'; + put 'put ''NDM4NCwyNjEzNiwxNDM4NjMsMTQzODY0LDI2MTgwLDE0Mzc4MCwxNDM3ODEsMjYxODcsMTM0NzczLDI2MjE1LDE1MjAzOCwyNjIyNywyNjIyOCwxMzg4MTMsMTQzOTIxLDE2NTM2NCwxNDM4MTYsMTUyMzM5LDMwNjYxLDE0MTU1OSwzOTMzMiwyNjM3MCwxNDgzODAsMTUwMDQ5LDE1MTQ3LDI3''@;'; + put 'put ''MTMwLDE0NTM0NiwyNjQ2MiwyNjQ3MSwyNjQ2NiwxNDc5MTcsMTY4MTczLDI2NTgzLDE3NjQxLDI2NjU4LDI4MjQwLDM3NDM2LDI2NjI1LDE0NDM1OCwxNTkxMzYsMjY3MTcsMTQ0NDk1LDI3MTA1LDI3MTQ3LDE2NjYyMywyNjk5NSwyNjgxOSwxNDQ4NDUsMjY4ODEsMjY4ODAsMTU2NjYsMTQ4''@;'; + put 'put ''NDksMTQ0OTU2LDE1MjMyLDI2NTQwLDI2OTc3LDE2NjQ3NCwxNzE0OCwyNjkzNCwyNzAzMiwxNTI2NSwxMzIwNDEsMzM2MzUsMjA2MjQsMjcxMjksMTQ0OTg1LDEzOTU2MiwyNzIwNSwxNDUxNTUsMjcyOTMsMTUzNDcsMjY1NDUsMjczMzYsMTY4MzQ4LDE1MzczLDI3NDIxLDEzMzQxMSwyNDc5''@;'; + put 'put ''OCwyNzQ0NSwyNzUwOCwxNDEyNjEsMjgzNDEsMTQ2MTM5LDEzMjAyMSwxMzc1NjAsMTQxNDQsMjE1MzcsMTQ2MjY2LDI3NjE3LDE0NzE5NiwyNzYxMiwyNzcwMywxNDA0MjcsMTQ5NzQ1LDE1ODU0NSwyNzczOCwzMzMxOCwyNzc2OSwxNDY4NzYsMTc2MDUsMTQ2ODc3LDE0Nzg3NiwxNDk3NzIs''@;'; + put 'put ''MTQ5NzYwLDE0NjYzMywxNDA1MywxNTU5NSwxMzQ0NTAsMzk4MTEsMTQzODY1LDE0MDQzMywzMjY1NSwyNjY3OSwxNTkwMTMsMTU5MTM3LDE1OTIxMSwyODA1NCwyNzk5NiwyODI4NCwyODQyMCwxNDk4ODcsMTQ3NTg5LDE1OTM0NiwzNDA5OSwxNTk2MDQsMjA5MzUsMjc4MDQsMjgxODksMzM4''@;'; + put 'put ''MzgsMTY2Njg5LDI4MjA3LDE0Njk5MSwyOTc3OSwxNDczMzAsMzExODAsMjgyMzksMjMxODUsMTQzNDM1LDI4NjY0LDE0MDkzLDI4NTczLDE0Njk5MiwyODQxMCwxMzYzNDMsMTQ3NTE3LDE3NzQ5LDM3ODcyLDI4NDg0LDI4NTA4LDE1Njk0LDI4NTMyLDE2ODMwNCwxNTY3NSwyODU3NSwxNDc3''@;'; + put 'put ''ODAsMjg2MjcsMTQ3NjAxLDE0Nzc5NywxNDc1MTMsMTQ3NDQwLDE0NzM4MCwxNDc3NzUsMjA5NTksMTQ3Nzk4LDE0Nzc5OSwxNDc3NzYsMTU2MTI1LDI4NzQ3LDI4Nzk4LDI4ODM5LDI4ODAxLDI4ODc2LDI4ODg1LDI4ODg2LDI4ODk1LDE2NjQ0LDE1ODQ4LDI5MTA4LDI5MDc4LDE0ODA4Nywy''@;'; + put 'put ''ODk3MSwyODk5NywyMzE3NiwyOTAwMiwyOTAzOCwyMzcwOCwxNDgzMjUsMjkwMDcsMzc3MzAsMTQ4MTYxLDI4OTcyLDE0ODU3MCwxNTAwNTUsMTUwMDUwLDI5MTE0LDE2Njg4OCwyODg2MSwyOTE5OCwzNzk1NCwyOTIwNSwyMjgwMSwzNzk1NSwyOTIyMCwzNzY5NywxNTMwOTMsMjkyMzAsMjky''@;'; + put 'put ''NDgsMTQ5ODc2LDI2ODEzLDI5MjY5LDI5MjcxLDE1OTU3LDE0MzQyOCwyNjYzNywyODQ3NywyOTMxNCwyOTQ4MiwyOTQ4MywxNDk1MzksMTY1OTMxLDE4NjY5LDE2NTg5MiwyOTQ4MCwyOTQ4NiwyOTY0NywyOTYxMCwxMzQyMDIsMTU4MjU0LDI5NjQxLDI5NzY5LDE0NzkzOCwxMzY5MzUsMTUw''@;'; + put 'put ''MDUyLDI2MTQ3LDE0MDIxLDE0OTk0MywxNDk5MDEsMTUwMDExLDI5Njg3LDI5NzE3LDI2ODgzLDE1MDA1NCwyOTc1MywxMzI1NDcsMTYwODcsMjk3ODgsMTQxNDg1LDI5NzkyLDE2NzYwMiwyOTc2NywyOTY2OCwyOTgxNCwzMzcyMSwyOTgwNCwxNDEyOCwyOTgxMiwzNzg3MywyNzE4MCwyOTgy''@;'; + put 'put ''NiwxODc3MSwxNTAxNTYsMTQ3ODA3LDE1MDEzNywxNjY3OTksMjMzNjYsMTY2OTE1LDEzNzM3NCwyOTg5NiwxMzc2MDgsMjk5NjYsMjk5MjksMjk5ODIsMTY3NjQxLDEzNzgwMywyMzUxMSwxNjc1OTYsMzc3NjUsMzAwMjksMzAwMjYsMzAwNTUsMzAwNjIsMTUxNDI2LDE2MTMyLDE1MDgwMywz''@;'; + put 'put ''MDA5NCwyOTc4OSwzMDExMCwzMDEzMiwzMDIxMCwzMDI1MiwzMDI4OSwzMDI4NywzMDMxOSwzMDMyNiwxNTY2NjEsMzAzNTIsMzMyNjMsMTQzMjgsMTU3OTY5LDE1Nzk2NiwzMDM2OSwzMDM3MywzMDM5MSwzMDQxMiwxNTk2NDcsMzM4OTAsMTUxNzA5LDE1MTkzMywxMzg3ODAsMzA0OTQsMzA1''@;'; + put 'put ''MDIsMzA1MjgsMjU3NzUsMTUyMDk2LDMwNTUyLDE0NDA0NCwzMDYzOSwxNjYyNDQsMTY2MjQ4LDEzNjg5NywzMDcwOCwzMDcyOSwxMzYwNTQsMTUwMDM0LDI2ODI2LDMwODk1LDMwOTE5LDMwOTMxLDM4NTY1LDMxMDIyLDE1MzA1NiwzMDkzNSwzMTAyOCwzMDg5NywxNjEyOTIsMzY3OTIsMzQ5''@;'; + put 'put ''NDgsMTY2Njk5LDE1NTc3OSwxNDA4MjgsMzExMTAsMzUwNzIsMjY4ODIsMzExMDQsMTUzNjg3LDMxMTMzLDE2MjYxNywzMTAzNiwzMTE0NSwyODIwMiwxNjAwMzgsMTYwNDAsMzExNzQsMTY4MjA1LDMxMTg4XSwiZXVjLWtyIjpbNDQwMzQsNDQwMzUsNDQwMzcsNDQwMzgsNDQwNDMsNDQwNDQs''@;'; + put 'put ''NDQwNDUsNDQwNDYsNDQwNDcsNDQwNTYsNDQwNjIsNDQwNjMsNDQwNjUsNDQwNjYsNDQwNjcsNDQwNjksNDQwNzAsNDQwNzEsNDQwNzIsNDQwNzMsNDQwNzQsNDQwNzUsNDQwNzgsNDQwODIsNDQwODMsNDQwODQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDQwODUsNDQwODYsNDQw''@;'; + put 'put ''ODcsNDQwOTAsNDQwOTEsNDQwOTMsNDQwOTQsNDQwOTUsNDQwOTcsNDQwOTgsNDQwOTksNDQxMDAsNDQxMDEsNDQxMDIsNDQxMDMsNDQxMDQsNDQxMDUsNDQxMDYsNDQxMDgsNDQxMTAsNDQxMTEsNDQxMTIsNDQxMTMsNDQxMTQsNDQxMTUsNDQxMTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsNDQxMTgsNDQxMTksNDQxMjEsNDQxMjIsNDQxMjMsNDQxMjUsNDQxMjYsNDQxMjcsNDQxMjgsNDQxMjksNDQxMzAsNDQxMzEsNDQxMzIsNDQxMzMsNDQxMzQsNDQxMzUsNDQxMzYsNDQxMzcsNDQxMzgsNDQxMzksNDQxNDAsNDQxNDEsNDQxNDIsNDQxNDMsNDQxNDYsNDQxNDcsNDQx''@;'; + put 'put ''NDksNDQxNTAsNDQxNTMsNDQxNTUsNDQxNTYsNDQxNTcsNDQxNTgsNDQxNTksNDQxNjIsNDQxNjcsNDQxNjgsNDQxNzMsNDQxNzQsNDQxNzUsNDQxNzcsNDQxNzgsNDQxNzksNDQxODEsNDQxODIsNDQxODMsNDQxODQsNDQxODUsNDQxODYsNDQxODcsNDQxOTAsNDQxOTQsNDQxOTUsNDQxOTYs''@;'; + put 'put ''NDQxOTcsNDQxOTgsNDQxOTksNDQyMDMsNDQyMDUsNDQyMDYsNDQyMDksNDQyMTAsNDQyMTEsNDQyMTIsNDQyMTMsNDQyMTQsNDQyMTUsNDQyMTgsNDQyMjIsNDQyMjMsNDQyMjQsNDQyMjYsNDQyMjcsNDQyMjksNDQyMzAsNDQyMzEsNDQyMzMsNDQyMzQsNDQyMzUsNDQyMzcsNDQyMzgsNDQy''@;'; + put 'put ''MzksNDQyNDAsNDQyNDEsNDQyNDIsNDQyNDMsNDQyNDQsNDQyNDYsNDQyNDgsNDQyNDksNDQyNTAsNDQyNTEsNDQyNTIsNDQyNTMsNDQyNTQsNDQyNTUsNDQyNTgsNDQyNTksNDQyNjEsNDQyNjIsNDQyNjUsNDQyNjcsNDQyNjksNDQyNzAsNDQyNzQsNDQyNzYsNDQyNzksNDQyODAsNDQyODEs''@;'; + put 'put ''NDQyODIsNDQyODMsNDQyODYsNDQyODcsNDQyODksNDQyOTAsNDQyOTEsNDQyOTMsNDQyOTUsNDQyOTYsNDQyOTcsNDQyOTgsNDQyOTksNDQzMDIsNDQzMDQsNDQzMDYsNDQzMDcsNDQzMDgsNDQzMDksNDQzMTAsNDQzMTEsNDQzMTMsNDQzMTQsNDQzMTUsNDQzMTcsNDQzMTgsNDQzMTksNDQz''@;'; + put 'put ''MjEsNDQzMjIsNDQzMjMsNDQzMjQsNDQzMjUsNDQzMjYsNDQzMjcsNDQzMjgsNDQzMzAsNDQzMzEsNDQzMzQsNDQzMzUsNDQzMzYsNDQzMzcsNDQzMzgsNDQzMzksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDQzNDIsNDQzNDMsNDQzNDUsNDQzNDYsNDQzNDcsNDQzNDksNDQzNTAs''@;'; + put 'put ''NDQzNTEsNDQzNTIsNDQzNTMsNDQzNTQsNDQzNTUsNDQzNTgsNDQzNjAsNDQzNjIsNDQzNjMsNDQzNjQsNDQzNjUsNDQzNjYsNDQzNjcsNDQzNjksNDQzNzAsNDQzNzEsNDQzNzMsNDQzNzQsNDQzNzUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDQzNzcsNDQzNzgsNDQzNzksNDQz''@;'; + put 'put ''ODAsNDQzODEsNDQzODIsNDQzODMsNDQzODQsNDQzODYsNDQzODgsNDQzODksNDQzOTAsNDQzOTEsNDQzOTIsNDQzOTMsNDQzOTQsNDQzOTUsNDQzOTgsNDQzOTksNDQ0MDEsNDQ0MDIsNDQ0MDcsNDQ0MDgsNDQ0MDksNDQ0MTAsNDQ0MTQsNDQ0MTYsNDQ0MTksNDQ0MjAsNDQ0MjEsNDQ0MjIs''@;'; + put 'put ''NDQ0MjMsNDQ0MjYsNDQ0MjcsNDQ0MjksNDQ0MzAsNDQ0MzEsNDQ0MzMsNDQ0MzQsNDQ0MzUsNDQ0MzYsNDQ0MzcsNDQ0MzgsNDQ0MzksNDQ0NDAsNDQ0NDEsNDQ0NDIsNDQ0NDMsNDQ0NDYsNDQ0NDcsNDQ0NDgsNDQ0NDksNDQ0NTAsNDQ0NTEsNDQ0NTMsNDQ0NTQsNDQ0NTUsNDQ0NTYsNDQ0''@;'; + put 'put ''NTcsNDQ0NTgsNDQ0NTksNDQ0NjAsNDQ0NjEsNDQ0NjIsNDQ0NjMsNDQ0NjQsNDQ0NjUsNDQ0NjYsNDQ0NjcsNDQ0NjgsNDQ0NjksNDQ0NzAsNDQ0NzIsNDQ0NzMsNDQ0NzQsNDQ0NzUsNDQ0NzYsNDQ0NzcsNDQ0NzgsNDQ0NzksNDQ0ODIsNDQ0ODMsNDQ0ODUsNDQ0ODYsNDQ0ODcsNDQ0ODks''@;'; + put 'put ''NDQ0OTAsNDQ0OTEsNDQ0OTIsNDQ0OTMsNDQ0OTQsNDQ0OTUsNDQ0OTgsNDQ1MDAsNDQ1MDEsNDQ1MDIsNDQ1MDMsNDQ1MDQsNDQ1MDUsNDQ1MDYsNDQ1MDcsNDQ1MDksNDQ1MTAsNDQ1MTEsNDQ1MTMsNDQ1MTQsNDQ1MTUsNDQ1MTcsNDQ1MTgsNDQ1MTksNDQ1MjAsNDQ1MjEsNDQ1MjIsNDQ1''@;'; + put 'put ''MjMsNDQ1MjQsNDQ1MjUsNDQ1MjYsNDQ1MjcsNDQ1MjgsNDQ1MjksNDQ1MzAsNDQ1MzEsNDQ1MzIsNDQ1MzMsNDQ1MzQsNDQ1MzUsNDQ1MzgsNDQ1MzksNDQ1NDEsNDQ1NDIsNDQ1NDYsNDQ1NDcsNDQ1NDgsNDQ1NDksNDQ1NTAsNDQ1NTEsNDQ1NTQsNDQ1NTYsNDQ1NTgsNDQ1NTksNDQ1NjAs''@;'; + put 'put ''NDQ1NjEsNDQ1NjIsNDQ1NjMsNDQ1NjUsNDQ1NjYsNDQ1NjcsNDQ1NjgsNDQ1NjksNDQ1NzAsNDQ1NzEsNDQ1NzIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDQ1NzMsNDQ1NzQsNDQ1NzUsNDQ1NzYsNDQ1NzcsNDQ1NzgsNDQ1NzksNDQ1ODAsNDQ1ODEsNDQ1ODIsNDQ1ODMsNDQ1''@;'; + put 'put ''ODQsNDQ1ODUsNDQ1ODYsNDQ1ODcsNDQ1ODgsNDQ1ODksNDQ1OTAsNDQ1OTEsNDQ1OTQsNDQ1OTUsNDQ1OTcsNDQ1OTgsNDQ2MDEsNDQ2MDMsNDQ2MDQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDQ2MDUsNDQ2MDYsNDQ2MDcsNDQ2MTAsNDQ2MTIsNDQ2MTUsNDQ2MTYsNDQ2MTcs''@;'; + put 'put ''NDQ2MTksNDQ2MjMsNDQ2MjUsNDQ2MjYsNDQ2MjcsNDQ2MjksNDQ2MzEsNDQ2MzIsNDQ2MzMsNDQ2MzQsNDQ2MzUsNDQ2MzgsNDQ2NDIsNDQ2NDMsNDQ2NDQsNDQ2NDYsNDQ2NDcsNDQ2NTAsNDQ2NTEsNDQ2NTMsNDQ2NTQsNDQ2NTUsNDQ2NTcsNDQ2NTgsNDQ2NTksNDQ2NjAsNDQ2NjEsNDQ2''@;'; + put 'put ''NjIsNDQ2NjMsNDQ2NjYsNDQ2NzAsNDQ2NzEsNDQ2NzIsNDQ2NzMsNDQ2NzQsNDQ2NzUsNDQ2NzgsNDQ2NzksNDQ2ODAsNDQ2ODEsNDQ2ODIsNDQ2ODMsNDQ2ODUsNDQ2ODYsNDQ2ODcsNDQ2ODgsNDQ2ODksNDQ2OTAsNDQ2OTEsNDQ2OTIsNDQ2OTMsNDQ2OTQsNDQ2OTUsNDQ2OTYsNDQ2OTcs''@;'; + put 'put ''NDQ2OTgsNDQ2OTksNDQ3MDAsNDQ3MDEsNDQ3MDIsNDQ3MDMsNDQ3MDQsNDQ3MDUsNDQ3MDYsNDQ3MDcsNDQ3MDgsNDQ3MDksNDQ3MTAsNDQ3MTEsNDQ3MTIsNDQ3MTMsNDQ3MTQsNDQ3MTUsNDQ3MTYsNDQ3MTcsNDQ3MTgsNDQ3MTksNDQ3MjAsNDQ3MjEsNDQ3MjIsNDQ3MjMsNDQ3MjQsNDQ3''@;'; + put 'put ''MjUsNDQ3MjYsNDQ3MjcsNDQ3MjgsNDQ3MjksNDQ3MzAsNDQ3MzEsNDQ3MzUsNDQ3MzcsNDQ3MzgsNDQ3MzksNDQ3NDEsNDQ3NDIsNDQ3NDMsNDQ3NDQsNDQ3NDUsNDQ3NDYsNDQ3NDcsNDQ3NTAsNDQ3NTQsNDQ3NTUsNDQ3NTYsNDQ3NTcsNDQ3NTgsNDQ3NTksNDQ3NjIsNDQ3NjMsNDQ3NjUs''@;'; + put 'put ''NDQ3NjYsNDQ3NjcsNDQ3NjgsNDQ3NjksNDQ3NzAsNDQ3NzEsNDQ3NzIsNDQ3NzMsNDQ3NzQsNDQ3NzUsNDQ3NzcsNDQ3NzgsNDQ3ODAsNDQ3ODIsNDQ3ODMsNDQ3ODQsNDQ3ODUsNDQ3ODYsNDQ3ODcsNDQ3ODksNDQ3OTAsNDQ3OTEsNDQ3OTMsNDQ3OTQsNDQ3OTUsNDQ3OTcsNDQ3OTgsNDQ3''@;'; + put 'put ''OTksNDQ4MDAsNDQ4MDEsNDQ4MDIsNDQ4MDMsNDQ4MDQsNDQ4MDUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDQ4MDYsNDQ4MDksNDQ4MTAsNDQ4MTEsNDQ4MTIsNDQ4MTQsNDQ4MTUsNDQ4MTcsNDQ4MTgsNDQ4MTksNDQ4MjAsNDQ4MjEsNDQ4MjIsNDQ4MjMsNDQ4MjQsNDQ4MjUs''@;'; + put 'put ''NDQ4MjYsNDQ4MjcsNDQ4MjgsNDQ4MjksNDQ4MzAsNDQ4MzEsNDQ4MzIsNDQ4MzMsNDQ4MzQsNDQ4MzUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDQ4MzYsNDQ4MzcsNDQ4MzgsNDQ4MzksNDQ4NDAsNDQ4NDEsNDQ4NDIsNDQ4NDMsNDQ4NDYsNDQ4NDcsNDQ4NDksNDQ4NTEsNDQ4''@;'; + put 'put ''NTMsNDQ4NTQsNDQ4NTUsNDQ4NTYsNDQ4NTcsNDQ4NTgsNDQ4NTksNDQ4NjIsNDQ4NjQsNDQ4NjgsNDQ4NjksNDQ4NzAsNDQ4NzEsNDQ4NzQsNDQ4NzUsNDQ4NzYsNDQ4NzcsNDQ4NzgsNDQ4NzksNDQ4ODEsNDQ4ODIsNDQ4ODMsNDQ4ODQsNDQ4ODUsNDQ4ODYsNDQ4ODcsNDQ4ODgsNDQ4ODks''@;'; + put 'put ''NDQ4OTAsNDQ4OTEsNDQ4OTQsNDQ4OTUsNDQ4OTYsNDQ4OTcsNDQ4OTgsNDQ4OTksNDQ5MDIsNDQ5MDMsNDQ5MDQsNDQ5MDUsNDQ5MDYsNDQ5MDcsNDQ5MDgsNDQ5MDksNDQ5MTAsNDQ5MTEsNDQ5MTIsNDQ5MTMsNDQ5MTQsNDQ5MTUsNDQ5MTYsNDQ5MTcsNDQ5MTgsNDQ5MTksNDQ5MjAsNDQ5''@;'; + put 'put ''MjIsNDQ5MjMsNDQ5MjQsNDQ5MjUsNDQ5MjYsNDQ5MjcsNDQ5MjksNDQ5MzAsNDQ5MzEsNDQ5MzMsNDQ5MzQsNDQ5MzUsNDQ5MzcsNDQ5MzgsNDQ5MzksNDQ5NDAsNDQ5NDEsNDQ5NDIsNDQ5NDMsNDQ5NDYsNDQ5NDcsNDQ5NDgsNDQ5NTAsNDQ5NTEsNDQ5NTIsNDQ5NTMsNDQ5NTQsNDQ5NTUs''@;'; + put 'put ''NDQ5NTcsNDQ5NTgsNDQ5NTksNDQ5NjAsNDQ5NjEsNDQ5NjIsNDQ5NjMsNDQ5NjQsNDQ5NjUsNDQ5NjYsNDQ5NjcsNDQ5NjgsNDQ5NjksNDQ5NzAsNDQ5NzEsNDQ5NzIsNDQ5NzMsNDQ5NzQsNDQ5NzUsNDQ5NzYsNDQ5NzcsNDQ5NzgsNDQ5NzksNDQ5ODAsNDQ5ODEsNDQ5ODIsNDQ5ODMsNDQ5''@;'; + put 'put ''ODYsNDQ5ODcsNDQ5ODksNDQ5OTAsNDQ5OTEsNDQ5OTMsNDQ5OTQsNDQ5OTUsNDQ5OTYsNDQ5OTcsNDQ5OTgsNDUwMDIsNDUwMDQsNDUwMDcsNDUwMDgsNDUwMDksNDUwMTAsNDUwMTEsNDUwMTMsNDUwMTQsNDUwMTUsNDUwMTYsNDUwMTcsNDUwMTgsNDUwMTksNDUwMjEsNDUwMjIsNDUwMjMs''@;'; + put 'put ''NDUwMjQsNDUwMjUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDUwMjYsNDUwMjcsNDUwMjgsNDUwMjksNDUwMzAsNDUwMzEsNDUwMzQsNDUwMzUsNDUwMzYsNDUwMzcsNDUwMzgsNDUwMzksNDUwNDIsNDUwNDMsNDUwNDUsNDUwNDYsNDUwNDcsNDUwNDksNDUwNTAsNDUwNTEsNDUw''@;'; + put 'put ''NTIsNDUwNTMsNDUwNTQsNDUwNTUsNDUwNTgsNDUwNTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDUwNjEsNDUwNjIsNDUwNjMsNDUwNjQsNDUwNjUsNDUwNjYsNDUwNjcsNDUwNjksNDUwNzAsNDUwNzEsNDUwNzMsNDUwNzQsNDUwNzUsNDUwNzcsNDUwNzgsNDUwNzksNDUwODAs''@;'; + put 'put ''NDUwODEsNDUwODIsNDUwODMsNDUwODYsNDUwODcsNDUwODgsNDUwODksNDUwOTAsNDUwOTEsNDUwOTIsNDUwOTMsNDUwOTQsNDUwOTUsNDUwOTcsNDUwOTgsNDUwOTksNDUxMDAsNDUxMDEsNDUxMDIsNDUxMDMsNDUxMDQsNDUxMDUsNDUxMDYsNDUxMDcsNDUxMDgsNDUxMDksNDUxMTAsNDUx''@;'; + put 'put ''MTEsNDUxMTIsNDUxMTMsNDUxMTQsNDUxMTUsNDUxMTYsNDUxMTcsNDUxMTgsNDUxMTksNDUxMjAsNDUxMjEsNDUxMjIsNDUxMjMsNDUxMjYsNDUxMjcsNDUxMjksNDUxMzEsNDUxMzMsNDUxMzUsNDUxMzYsNDUxMzcsNDUxMzgsNDUxNDIsNDUxNDQsNDUxNDYsNDUxNDcsNDUxNDgsNDUxNTAs''@;'; + put 'put ''NDUxNTEsNDUxNTIsNDUxNTMsNDUxNTQsNDUxNTUsNDUxNTYsNDUxNTcsNDUxNTgsNDUxNTksNDUxNjAsNDUxNjEsNDUxNjIsNDUxNjMsNDUxNjQsNDUxNjUsNDUxNjYsNDUxNjcsNDUxNjgsNDUxNjksNDUxNzAsNDUxNzEsNDUxNzIsNDUxNzMsNDUxNzQsNDUxNzUsNDUxNzYsNDUxNzcsNDUx''@;'; + put 'put ''NzgsNDUxNzksNDUxODIsNDUxODMsNDUxODUsNDUxODYsNDUxODcsNDUxODksNDUxOTAsNDUxOTEsNDUxOTIsNDUxOTMsNDUxOTQsNDUxOTUsNDUxOTgsNDUyMDAsNDUyMDIsNDUyMDMsNDUyMDQsNDUyMDUsNDUyMDYsNDUyMDcsNDUyMTEsNDUyMTMsNDUyMTQsNDUyMTksNDUyMjAsNDUyMjEs''@;'; + put 'put ''NDUyMjIsNDUyMjMsNDUyMjYsNDUyMzIsNDUyMzQsNDUyMzgsNDUyMzksNDUyNDEsNDUyNDIsNDUyNDMsNDUyNDUsNDUyNDYsNDUyNDcsNDUyNDgsNDUyNDksNDUyNTAsNDUyNTEsNDUyNTQsNDUyNTgsNDUyNTksNDUyNjAsNDUyNjEsNDUyNjIsNDUyNjMsNDUyNjYsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsNDUyNjcsNDUyNjksNDUyNzAsNDUyNzEsNDUyNzMsNDUyNzQsNDUyNzUsNDUyNzYsNDUyNzcsNDUyNzgsNDUyNzksNDUyODEsNDUyODIsNDUyODMsNDUyODQsNDUyODYsNDUyODcsNDUyODgsNDUyODksNDUyOTAsNDUyOTEsNDUyOTIsNDUyOTMsNDUyOTQsNDUyOTUs''@;'; + put 'put ''NDUyOTYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDUyOTcsNDUyOTgsNDUyOTksNDUzMDAsNDUzMDEsNDUzMDIsNDUzMDMsNDUzMDQsNDUzMDUsNDUzMDYsNDUzMDcsNDUzMDgsNDUzMDksNDUzMTAsNDUzMTEsNDUzMTIsNDUzMTMsNDUzMTQsNDUzMTUsNDUzMTYsNDUzMTcsNDUz''@;'; + put 'put ''MTgsNDUzMTksNDUzMjIsNDUzMjUsNDUzMjYsNDUzMjcsNDUzMjksNDUzMzIsNDUzMzMsNDUzMzQsNDUzMzUsNDUzMzgsNDUzNDIsNDUzNDMsNDUzNDQsNDUzNDUsNDUzNDYsNDUzNTAsNDUzNTEsNDUzNTMsNDUzNTQsNDUzNTUsNDUzNTcsNDUzNTgsNDUzNTksNDUzNjAsNDUzNjEsNDUzNjIs''@;'; + put 'put ''NDUzNjMsNDUzNjYsNDUzNzAsNDUzNzEsNDUzNzIsNDUzNzMsNDUzNzQsNDUzNzUsNDUzNzgsNDUzNzksNDUzODEsNDUzODIsNDUzODMsNDUzODUsNDUzODYsNDUzODcsNDUzODgsNDUzODksNDUzOTAsNDUzOTEsNDUzOTQsNDUzOTUsNDUzOTgsNDUzOTksNDU0MDEsNDU0MDIsNDU0MDMsNDU0''@;'; + put 'put ''MDUsNDU0MDYsNDU0MDcsNDU0MDksNDU0MTAsNDU0MTEsNDU0MTIsNDU0MTMsNDU0MTQsNDU0MTUsNDU0MTYsNDU0MTcsNDU0MTgsNDU0MTksNDU0MjAsNDU0MjEsNDU0MjIsNDU0MjMsNDU0MjQsNDU0MjUsNDU0MjYsNDU0MjcsNDU0MjgsNDU0MjksNDU0MzAsNDU0MzEsNDU0MzQsNDU0MzUs''@;'; + put 'put ''NDU0MzcsNDU0MzgsNDU0MzksNDU0NDEsNDU0NDMsNDU0NDQsNDU0NDUsNDU0NDYsNDU0NDcsNDU0NTAsNDU0NTIsNDU0NTQsNDU0NTUsNDU0NTYsNDU0NTcsNDU0NjEsNDU0NjIsNDU0NjMsNDU0NjUsNDU0NjYsNDU0NjcsNDU0NjksNDU0NzAsNDU0NzEsNDU0NzIsNDU0NzMsNDU0NzQsNDU0''@;'; + put 'put ''NzUsNDU0NzYsNDU0NzcsNDU0NzgsNDU0NzksNDU0ODEsNDU0ODIsNDU0ODMsNDU0ODQsNDU0ODUsNDU0ODYsNDU0ODcsNDU0ODgsNDU0ODksNDU0OTAsNDU0OTEsNDU0OTIsNDU0OTMsNDU0OTQsNDU0OTUsNDU0OTYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDU0OTcsNDU0OTgs''@;'; + put 'put ''NDU0OTksNDU1MDAsNDU1MDEsNDU1MDIsNDU1MDMsNDU1MDQsNDU1MDUsNDU1MDYsNDU1MDcsNDU1MDgsNDU1MDksNDU1MTAsNDU1MTEsNDU1MTIsNDU1MTMsNDU1MTQsNDU1MTUsNDU1MTcsNDU1MTgsNDU1MTksNDU1MjEsNDU1MjIsNDU1MjMsNDU1MjUsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsNDU1MjYsNDU1MjcsNDU1MjgsNDU1MjksNDU1MzAsNDU1MzEsNDU1MzQsNDU1MzYsNDU1MzcsNDU1MzgsNDU1MzksNDU1NDAsNDU1NDEsNDU1NDIsNDU1NDMsNDU1NDYsNDU1NDcsNDU1NDksNDU1NTAsNDU1NTEsNDU1NTMsNDU1NTQsNDU1NTUsNDU1NTYsNDU1NTcsNDU1NTgs''@;'; + put 'put ''NDU1NTksNDU1NjAsNDU1NjIsNDU1NjQsNDU1NjYsNDU1NjcsNDU1NjgsNDU1NjksNDU1NzAsNDU1NzEsNDU1NzQsNDU1NzUsNDU1NzcsNDU1NzgsNDU1ODEsNDU1ODIsNDU1ODMsNDU1ODQsNDU1ODUsNDU1ODYsNDU1ODcsNDU1OTAsNDU1OTIsNDU1OTQsNDU1OTUsNDU1OTYsNDU1OTcsNDU1''@;'; + put 'put ''OTgsNDU1OTksNDU2MDEsNDU2MDIsNDU2MDMsNDU2MDQsNDU2MDUsNDU2MDYsNDU2MDcsNDU2MDgsNDU2MDksNDU2MTAsNDU2MTEsNDU2MTIsNDU2MTMsNDU2MTQsNDU2MTUsNDU2MTYsNDU2MTcsNDU2MTgsNDU2MTksNDU2MjEsNDU2MjIsNDU2MjMsNDU2MjQsNDU2MjUsNDU2MjYsNDU2Mjcs''@;'; + put 'put ''NDU2MjksNDU2MzAsNDU2MzEsNDU2MzIsNDU2MzMsNDU2MzQsNDU2MzUsNDU2MzYsNDU2MzcsNDU2MzgsNDU2MzksNDU2NDAsNDU2NDEsNDU2NDIsNDU2NDMsNDU2NDQsNDU2NDUsNDU2NDYsNDU2NDcsNDU2NDgsNDU2NDksNDU2NTAsNDU2NTEsNDU2NTIsNDU2NTMsNDU2NTQsNDU2NTUsNDU2''@;'; + put 'put ''NTcsNDU2NTgsNDU2NTksNDU2NjEsNDU2NjIsNDU2NjMsNDU2NjUsNDU2NjYsNDU2NjcsNDU2NjgsNDU2NjksNDU2NzAsNDU2NzEsNDU2NzQsNDU2NzUsNDU2NzYsNDU2NzcsNDU2NzgsNDU2NzksNDU2ODAsNDU2ODEsNDU2ODIsNDU2ODMsNDU2ODYsNDU2ODcsNDU2ODgsNDU2ODksNDU2OTAs''@;'; + put 'put ''NDU2OTEsNDU2OTMsNDU2OTQsNDU2OTUsNDU2OTYsNDU2OTcsNDU2OTgsNDU2OTksNDU3MDIsNDU3MDMsNDU3MDQsNDU3MDYsNDU3MDcsNDU3MDgsNDU3MDksNDU3MTAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDU3MTEsNDU3MTQsNDU3MTUsNDU3MTcsNDU3MTgsNDU3MTksNDU3''@;'; + put 'put ''MjMsNDU3MjQsNDU3MjUsNDU3MjYsNDU3MjcsNDU3MzAsNDU3MzIsNDU3MzUsNDU3MzYsNDU3MzcsNDU3MzksNDU3NDEsNDU3NDIsNDU3NDMsNDU3NDUsNDU3NDYsNDU3NDcsNDU3NDksNDU3NTAsNDU3NTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDU3NTIsNDU3NTMsNDU3NTQs''@;'; + put 'put ''NDU3NTUsNDU3NTYsNDU3NTcsNDU3NTgsNDU3NTksNDU3NjAsNDU3NjEsNDU3NjIsNDU3NjMsNDU3NjQsNDU3NjUsNDU3NjYsNDU3NjcsNDU3NzAsNDU3NzEsNDU3NzMsNDU3NzQsNDU3NzUsNDU3NzcsNDU3NzksNDU3ODAsNDU3ODEsNDU3ODIsNDU3ODMsNDU3ODYsNDU3ODgsNDU3OTAsNDU3''@;'; + put 'put ''OTEsNDU3OTIsNDU3OTMsNDU3OTUsNDU3OTksNDU4MDEsNDU4MDIsNDU4MDgsNDU4MDksNDU4MTAsNDU4MTQsNDU4MjAsNDU4MjEsNDU4MjIsNDU4MjYsNDU4MjcsNDU4MjksNDU4MzAsNDU4MzEsNDU4MzMsNDU4MzQsNDU4MzUsNDU4MzYsNDU4MzcsNDU4MzgsNDU4MzksNDU4NDIsNDU4NDYs''@;'; + put 'put ''NDU4NDcsNDU4NDgsNDU4NDksNDU4NTAsNDU4NTEsNDU4NTMsNDU4NTQsNDU4NTUsNDU4NTYsNDU4NTcsNDU4NTgsNDU4NTksNDU4NjAsNDU4NjEsNDU4NjIsNDU4NjMsNDU4NjQsNDU4NjUsNDU4NjYsNDU4NjcsNDU4NjgsNDU4NjksNDU4NzAsNDU4NzEsNDU4NzIsNDU4NzMsNDU4NzQsNDU4''@;'; + put 'put ''NzUsNDU4NzYsNDU4NzcsNDU4NzgsNDU4NzksNDU4ODAsNDU4ODEsNDU4ODIsNDU4ODMsNDU4ODQsNDU4ODUsNDU4ODYsNDU4ODcsNDU4ODgsNDU4ODksNDU4OTAsNDU4OTEsNDU4OTIsNDU4OTMsNDU4OTQsNDU4OTUsNDU4OTYsNDU4OTcsNDU4OTgsNDU4OTksNDU5MDAsNDU5MDEsNDU5MDIs''@;'; + put 'put ''NDU5MDMsNDU5MDQsNDU5MDUsNDU5MDYsNDU5MDcsNDU5MTEsNDU5MTMsNDU5MTQsNDU5MTcsNDU5MjAsNDU5MjEsNDU5MjIsNDU5MjMsNDU5MjYsNDU5MjgsNDU5MzAsNDU5MzIsNDU5MzMsNDU5MzUsNDU5MzgsNDU5MzksNDU5NDEsNDU5NDIsNDU5NDMsNDU5NDUsNDU5NDYsNDU5NDcsNDU5''@;'; + put 'put ''NDgsNDU5NDksNDU5NTAsNDU5NTEsNDU5NTQsNDU5NTgsNDU5NTksNDU5NjAsNDU5NjEsNDU5NjIsNDU5NjMsNDU5NjUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDU5NjYsNDU5NjcsNDU5NjksNDU5NzAsNDU5NzEsNDU5NzMsNDU5NzQsNDU5NzUsNDU5NzYsNDU5NzcsNDU5Nzgs''@;'; + put 'put ''NDU5NzksNDU5ODAsNDU5ODEsNDU5ODIsNDU5ODMsNDU5ODYsNDU5ODcsNDU5ODgsNDU5ODksNDU5OTAsNDU5OTEsNDU5OTMsNDU5OTQsNDU5OTUsNDU5OTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDU5OTgsNDU5OTksNDZlMyw0NjAwMSw0NjAwMiw0NjAwMyw0NjAwNCw0NjAw''@;'; + put 'put ''NSw0NjAwNiw0NjAwNyw0NjAwOCw0NjAwOSw0NjAxMCw0NjAxMSw0NjAxMiw0NjAxMyw0NjAxNCw0NjAxNSw0NjAxNiw0NjAxNyw0NjAxOCw0NjAxOSw0NjAyMiw0NjAyMyw0NjAyNSw0NjAyNiw0NjAyOSw0NjAzMSw0NjAzMyw0NjAzNCw0NjAzNSw0NjAzOCw0NjA0MCw0NjA0Miw0NjA0NCw0''@;'; + put 'put ''NjA0Niw0NjA0Nyw0NjA0OSw0NjA1MCw0NjA1MSw0NjA1Myw0NjA1NCw0NjA1NSw0NjA1Nyw0NjA1OCw0NjA1OSw0NjA2MCw0NjA2MSw0NjA2Miw0NjA2Myw0NjA2NCw0NjA2NSw0NjA2Niw0NjA2Nyw0NjA2OCw0NjA2OSw0NjA3MCw0NjA3MSw0NjA3Miw0NjA3Myw0NjA3NCw0NjA3NSw0NjA3''@;'; + put 'put ''Nyw0NjA3OCw0NjA3OSw0NjA4MCw0NjA4MSw0NjA4Miw0NjA4Myw0NjA4NCw0NjA4NSw0NjA4Niw0NjA4Nyw0NjA4OCw0NjA4OSw0NjA5MCw0NjA5MSw0NjA5Miw0NjA5Myw0NjA5NCw0NjA5NSw0NjA5Nyw0NjA5OCw0NjA5OSw0NjEwMCw0NjEwMSw0NjEwMiw0NjEwMyw0NjEwNSw0NjEwNiw0''@;'; + put 'put ''NjEwNyw0NjEwOSw0NjExMCw0NjExMSw0NjExMyw0NjExNCw0NjExNSw0NjExNiw0NjExNyw0NjExOCw0NjExOSw0NjEyMiw0NjEyNCw0NjEyNSw0NjEyNiw0NjEyNyw0NjEyOCw0NjEyOSw0NjEzMCw0NjEzMSw0NjEzMyw0NjEzNCw0NjEzNSw0NjEzNiw0NjEzNyw0NjEzOCw0NjEzOSw0NjE0''@;'; + put 'put ''MCw0NjE0MSw0NjE0Miw0NjE0Myw0NjE0NCw0NjE0NSw0NjE0Niw0NjE0Nyw0NjE0OCw0NjE0OSw0NjE1MCw0NjE1MSw0NjE1Miw0NjE1Myw0NjE1NCw0NjE1NSw0NjE1Niw0NjE1Nyw0NjE1OCw0NjE1OSw0NjE2Miw0NjE2Myw0NjE2NSw0NjE2Niw0NjE2Nyw0NjE2OSw0NjE3MCw0NjE3MSw0''@;'; + put 'put ''NjE3Miw0NjE3Myw0NjE3NCw0NjE3NSw0NjE3OCw0NjE4MCw0NjE4MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NjE4Myw0NjE4NCw0NjE4NSw0NjE4Niw0NjE4Nyw0NjE4OSw0NjE5MCw0NjE5MSw0NjE5Miw0NjE5Myw0NjE5NCw0NjE5NSw0NjE5Niw0NjE5Nyw0NjE5OCw0NjE5''@;'; + put 'put ''OSw0NjIwMCw0NjIwMSw0NjIwMiw0NjIwMyw0NjIwNCw0NjIwNSw0NjIwNiw0NjIwNyw0NjIwOSw0NjIxMCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NjIxMSw0NjIxMiw0NjIxMyw0NjIxNCw0NjIxNSw0NjIxNyw0NjIxOCw0NjIxOSw0NjIyMCw0NjIyMSw0NjIyMiw0NjIyMyw0''@;'; + put 'put ''NjIyNCw0NjIyNSw0NjIyNiw0NjIyNyw0NjIyOCw0NjIyOSw0NjIzMCw0NjIzMSw0NjIzMiw0NjIzMyw0NjIzNCw0NjIzNSw0NjIzNiw0NjIzOCw0NjIzOSw0NjI0MCw0NjI0MSw0NjI0Miw0NjI0Myw0NjI0NSw0NjI0Niw0NjI0Nyw0NjI0OSw0NjI1MCw0NjI1MSw0NjI1Myw0NjI1NCw0NjI1''@;'; + put 'put ''NSw0NjI1Niw0NjI1Nyw0NjI1OCw0NjI1OSw0NjI2MCw0NjI2Miw0NjI2NCw0NjI2Niw0NjI2Nyw0NjI2OCw0NjI2OSw0NjI3MCw0NjI3MSw0NjI3Myw0NjI3NCw0NjI3NSw0NjI3Nyw0NjI3OCw0NjI3OSw0NjI4MSw0NjI4Miw0NjI4Myw0NjI4NCw0NjI4NSw0NjI4Niw0NjI4Nyw0NjI4OSw0''@;'; + put 'put ''NjI5MCw0NjI5MSw0NjI5Miw0NjI5NCw0NjI5NSw0NjI5Niw0NjI5Nyw0NjI5OCw0NjI5OSw0NjMwMiw0NjMwMyw0NjMwNSw0NjMwNiw0NjMwOSw0NjMxMSw0NjMxMiw0NjMxMyw0NjMxNCw0NjMxNSw0NjMxOCw0NjMyMCw0NjMyMiw0NjMyMyw0NjMyNCw0NjMyNSw0NjMyNiw0NjMyNyw0NjMy''@;'; + put 'put ''OSw0NjMzMCw0NjMzMSw0NjMzMiw0NjMzMyw0NjMzNCw0NjMzNSw0NjMzNiw0NjMzNyw0NjMzOCw0NjMzOSw0NjM0MCw0NjM0MSw0NjM0Miw0NjM0Myw0NjM0NCw0NjM0NSw0NjM0Niw0NjM0Nyw0NjM0OCw0NjM0OSw0NjM1MCw0NjM1MSw0NjM1Miw0NjM1Myw0NjM1NCw0NjM1NSw0NjM1OCw0''@;'; + put 'put ''NjM1OSw0NjM2MSw0NjM2Miw0NjM2NSw0NjM2Niw0NjM2Nyw0NjM2OCw0NjM2OSw0NjM3MCw0NjM3MSw0NjM3NCw0NjM3OSw0NjM4MCw0NjM4MSw0NjM4Miw0NjM4Myw0NjM4Niw0NjM4Nyw0NjM4OSw0NjM5MCw0NjM5MSw0NjM5Myw0NjM5NCw0NjM5NSw0NjM5Niw0NjM5Nyw0NjM5OCw0NjM5''@;'; + put 'put ''OSw0NjQwMiw0NjQwNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NjQwNyw0NjQwOCw0NjQwOSw0NjQxMCw0NjQxNCw0NjQxNSw0NjQxNyw0NjQxOCw0NjQxOSw0NjQyMSw0NjQyMiw0NjQyMyw0NjQyNCw0NjQyNSw0NjQyNiw0NjQyNyw0NjQzMCw0NjQzNCw0NjQzNSw0NjQzNiw0''@;'; + put 'put ''NjQzNyw0NjQzOCw0NjQzOSw0NjQ0MCw0NjQ0MSw0NjQ0MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NjQ0Myw0NjQ0NCw0NjQ0NSw0NjQ0Niw0NjQ0Nyw0NjQ0OCw0NjQ0OSw0NjQ1MCw0NjQ1MSw0NjQ1Miw0NjQ1Myw0NjQ1NCw0NjQ1NSw0NjQ1Niw0NjQ1Nyw0NjQ1OCw0NjQ1''@;'; + put 'put ''OSw0NjQ2MCw0NjQ2MSw0NjQ2Miw0NjQ2Myw0NjQ2NCw0NjQ2NSw0NjQ2Niw0NjQ2Nyw0NjQ2OCw0NjQ2OSw0NjQ3MCw0NjQ3MSw0NjQ3Miw0NjQ3Myw0NjQ3NCw0NjQ3NSw0NjQ3Niw0NjQ3Nyw0NjQ3OCw0NjQ3OSw0NjQ4MCw0NjQ4MSw0NjQ4Miw0NjQ4Myw0NjQ4NCw0NjQ4NSw0NjQ4Niw0''@;'; + put 'put ''NjQ4Nyw0NjQ4OCw0NjQ4OSw0NjQ5MCw0NjQ5MSw0NjQ5Miw0NjQ5Myw0NjQ5NCw0NjQ5NSw0NjQ5OCw0NjQ5OSw0NjUwMSw0NjUwMiw0NjUwMyw0NjUwNSw0NjUwOCw0NjUwOSw0NjUxMCw0NjUxMSw0NjUxNCw0NjUxOCw0NjUxOSw0NjUyMCw0NjUyMSw0NjUyMiw0NjUyNiw0NjUyNyw0NjUy''@;'; + put 'put ''OSw0NjUzMCw0NjUzMSw0NjUzMyw0NjUzNCw0NjUzNSw0NjUzNiw0NjUzNyw0NjUzOCw0NjUzOSw0NjU0Miw0NjU0Niw0NjU0Nyw0NjU0OCw0NjU0OSw0NjU1MCw0NjU1MSw0NjU1Myw0NjU1NCw0NjU1NSw0NjU1Niw0NjU1Nyw0NjU1OCw0NjU1OSw0NjU2MCw0NjU2MSw0NjU2Miw0NjU2Myw0''@;'; + put 'put ''NjU2NCw0NjU2NSw0NjU2Niw0NjU2Nyw0NjU2OCw0NjU2OSw0NjU3MCw0NjU3MSw0NjU3Myw0NjU3NCw0NjU3NSw0NjU3Niw0NjU3Nyw0NjU3OCw0NjU3OSw0NjU4MCw0NjU4MSw0NjU4Miw0NjU4Myw0NjU4NCw0NjU4NSw0NjU4Niw0NjU4Nyw0NjU4OCw0NjU4OSw0NjU5MCw0NjU5MSw0NjU5''@;'; + put 'put ''Miw0NjU5Myw0NjU5NCw0NjU5NSw0NjU5Niw0NjU5Nyw0NjU5OCw0NjU5OSw0NjYwMCw0NjYwMSw0NjYwMiw0NjYwMyw0NjYwNCw0NjYwNSw0NjYwNiw0NjYwNyw0NjYxMCw0NjYxMSw0NjYxMyw0NjYxNCw0NjYxNSw0NjYxNyw0NjYxOCw0NjYxOSw0NjYyMCw0NjYyMSxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCw0NjYyMiw0NjYyMyw0NjYyNCw0NjYyNSw0NjYyNiw0NjYyNyw0NjYyOCw0NjYzMCw0NjYzMSw0NjYzMiw0NjYzMyw0NjYzNCw0NjYzNSw0NjYzNyw0NjYzOCw0NjYzOSw0NjY0MCw0NjY0MSw0NjY0Miw0NjY0Myw0NjY0NSw0NjY0Niw0NjY0Nyw0NjY0OCw0NjY0''@;'; + put 'put ''OSw0NjY1MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NjY1MSw0NjY1Miw0NjY1Myw0NjY1NCw0NjY1NSw0NjY1Niw0NjY1Nyw0NjY1OCw0NjY1OSw0NjY2MCw0NjY2MSw0NjY2Miw0NjY2Myw0NjY2NSw0NjY2Niw0NjY2Nyw0NjY2OCw0NjY2OSw0NjY3MCw0NjY3MSw0NjY3Miw0''@;'; + put 'put ''NjY3Myw0NjY3NCw0NjY3NSw0NjY3Niw0NjY3Nyw0NjY3OCw0NjY3OSw0NjY4MCw0NjY4MSw0NjY4Miw0NjY4Myw0NjY4NCw0NjY4NSw0NjY4Niw0NjY4Nyw0NjY4OCw0NjY4OSw0NjY5MCw0NjY5MSw0NjY5Myw0NjY5NCw0NjY5NSw0NjY5Nyw0NjY5OCw0NjY5OSw0NjcwMCw0NjcwMSw0Njcw''@;'; + put 'put ''Miw0NjcwMyw0NjcwNCw0NjcwNSw0NjcwNiw0NjcwNyw0NjcwOCw0NjcwOSw0NjcxMCw0NjcxMSw0NjcxMiw0NjcxMyw0NjcxNCw0NjcxNSw0NjcxNiw0NjcxNyw0NjcxOCw0NjcxOSw0NjcyMCw0NjcyMSw0NjcyMiw0NjcyMyw0NjcyNCw0NjcyNSw0NjcyNiw0NjcyNyw0NjcyOCw0NjcyOSw0''@;'; + put 'put ''NjczMCw0NjczMSw0NjczMiw0NjczMyw0NjczNCw0NjczNSw0NjczNiw0NjczNyw0NjczOCw0NjczOSw0Njc0MCw0Njc0MSw0Njc0Miw0Njc0Myw0Njc0NCw0Njc0NSw0Njc0Niw0Njc0Nyw0Njc1MCw0Njc1MSw0Njc1Myw0Njc1NCw0Njc1NSw0Njc1Nyw0Njc1OCw0Njc1OSw0Njc2MCw0Njc2''@;'; + put 'put ''MSw0Njc2Miw0Njc2NSw0Njc2Niw0Njc2Nyw0Njc2OCw0Njc3MCw0Njc3MSw0Njc3Miw0Njc3Myw0Njc3NCw0Njc3NSw0Njc3Niw0Njc3Nyw0Njc3OCw0Njc3OSw0Njc4MCw0Njc4MSw0Njc4Miw0Njc4Myw0Njc4NCw0Njc4NSw0Njc4Niw0Njc4Nyw0Njc4OCw0Njc4OSw0Njc5MCw0Njc5MSw0''@;'; + put 'put ''Njc5Miw0Njc5Myw0Njc5NCw0Njc5NSw0Njc5Niw0Njc5Nyw0Njc5OCw0Njc5OSw0NjgwMCw0NjgwMSw0NjgwMiw0NjgwMyw0NjgwNSw0NjgwNiw0NjgwNyw0NjgwOCw0NjgwOSw0NjgxMCw0NjgxMSw0NjgxMiw0NjgxMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NjgxNCw0Njgx''@;'; + put 'put ''NSw0NjgxNiw0NjgxNyw0NjgxOCw0NjgxOSw0NjgyMCw0NjgyMSw0NjgyMiw0NjgyMyw0NjgyNCw0NjgyNSw0NjgyNiw0NjgyNyw0NjgyOCw0NjgyOSw0NjgzMCw0NjgzMSw0NjgzMyw0NjgzNCw0NjgzNSw0NjgzNyw0NjgzOCw0NjgzOSw0Njg0MSw0Njg0MixudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCw0Njg0Myw0Njg0NCw0Njg0NSw0Njg0Niw0Njg0Nyw0Njg1MCw0Njg1MSw0Njg1Miw0Njg1NCw0Njg1NSw0Njg1Niw0Njg1Nyw0Njg1OCw0Njg1OSw0Njg2MCw0Njg2MSw0Njg2Miw0Njg2Myw0Njg2NCw0Njg2NSw0Njg2Niw0Njg2Nyw0Njg2OCw0Njg2OSw0Njg3MCw0Njg3''@;'; + put 'put ''MSw0Njg3Miw0Njg3Myw0Njg3NCw0Njg3NSw0Njg3Niw0Njg3Nyw0Njg3OCw0Njg3OSw0Njg4MCw0Njg4MSw0Njg4Miw0Njg4Myw0Njg4NCw0Njg4NSw0Njg4Niw0Njg4Nyw0Njg5MCw0Njg5MSw0Njg5Myw0Njg5NCw0Njg5Nyw0Njg5OCw0Njg5OSw0NjkwMCw0NjkwMSw0NjkwMiw0NjkwMyw0''@;'; + put 'put ''NjkwNiw0NjkwOCw0NjkwOSw0NjkxMCw0NjkxMSw0NjkxMiw0NjkxMyw0NjkxNCw0NjkxNSw0NjkxNyw0NjkxOCw0NjkxOSw0NjkyMSw0NjkyMiw0NjkyMyw0NjkyNSw0NjkyNiw0NjkyNyw0NjkyOCw0NjkyOSw0NjkzMCw0NjkzMSw0NjkzNCw0NjkzNSw0NjkzNiw0NjkzNyw0NjkzOCw0Njkz''@;'; + put 'put ''OSw0Njk0MCw0Njk0MSw0Njk0Miw0Njk0Myw0Njk0NSw0Njk0Niw0Njk0Nyw0Njk0OSw0Njk1MCw0Njk1MSw0Njk1Myw0Njk1NCw0Njk1NSw0Njk1Niw0Njk1Nyw0Njk1OCw0Njk1OSw0Njk2Miw0Njk2NCw0Njk2Niw0Njk2Nyw0Njk2OCw0Njk2OSw0Njk3MCw0Njk3MSw0Njk3NCw0Njk3NSw0''@;'; + put 'put ''Njk3Nyw0Njk3OCw0Njk3OSw0Njk4MSw0Njk4Miw0Njk4Myw0Njk4NCw0Njk4NSw0Njk4Niw0Njk4Nyw0Njk5MCw0Njk5NSw0Njk5Niw0Njk5Nyw0NzAwMiw0NzAwMyw0NzAwNSw0NzAwNiw0NzAwNyw0NzAwOSw0NzAxMCw0NzAxMSw0NzAxMiw0NzAxMyw0NzAxNCw0NzAxNSw0NzAxOCw0NzAy''@;'; + put 'put ''Miw0NzAyMyw0NzAyNCw0NzAyNSw0NzAyNiw0NzAyNyw0NzAzMCw0NzAzMSw0NzAzMyw0NzAzNCw0NzAzNSw0NzAzNiw0NzAzNyw0NzAzOCw0NzAzOSw0NzA0MCw0NzA0MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NzA0Miw0NzA0Myw0NzA0NCw0NzA0NSw0NzA0Niw0NzA0OCw0''@;'; + put 'put ''NzA1MCw0NzA1MSw0NzA1Miw0NzA1Myw0NzA1NCw0NzA1NSw0NzA1Niw0NzA1Nyw0NzA1OCw0NzA1OSw0NzA2MCw0NzA2MSw0NzA2Miw0NzA2Myw0NzA2NCw0NzA2NSw0NzA2Niw0NzA2Nyw0NzA2OCw0NzA2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NzA3MCw0NzA3MSw0NzA3''@;'; + put 'put ''Miw0NzA3Myw0NzA3NCw0NzA3NSw0NzA3Niw0NzA3Nyw0NzA3OCw0NzA3OSw0NzA4MCw0NzA4MSw0NzA4Miw0NzA4Myw0NzA4Niw0NzA4Nyw0NzA4OSw0NzA5MCw0NzA5MSw0NzA5Myw0NzA5NCw0NzA5NSw0NzA5Niw0NzA5Nyw0NzA5OCw0NzA5OSw0NzEwMiw0NzEwNiw0NzEwNyw0NzEwOCw0''@;'; + put 'put ''NzEwOSw0NzExMCw0NzExNCw0NzExNSw0NzExNyw0NzExOCw0NzExOSw0NzEyMSw0NzEyMiw0NzEyMyw0NzEyNCw0NzEyNSw0NzEyNiw0NzEyNyw0NzEzMCw0NzEzMiw0NzEzNCw0NzEzNSw0NzEzNiw0NzEzNyw0NzEzOCw0NzEzOSw0NzE0Miw0NzE0Myw0NzE0NSw0NzE0Niw0NzE0Nyw0NzE0''@;'; + put 'put ''OSw0NzE1MCw0NzE1MSw0NzE1Miw0NzE1Myw0NzE1NCw0NzE1NSw0NzE1OCw0NzE2Miw0NzE2Myw0NzE2NCw0NzE2NSw0NzE2Niw0NzE2Nyw0NzE2OSw0NzE3MCw0NzE3MSw0NzE3Myw0NzE3NCw0NzE3NSw0NzE3Niw0NzE3Nyw0NzE3OCw0NzE3OSw0NzE4MCw0NzE4MSw0NzE4Miw0NzE4Myw0''@;'; + put 'put ''NzE4NCw0NzE4Niw0NzE4OCw0NzE4OSw0NzE5MCw0NzE5MSw0NzE5Miw0NzE5Myw0NzE5NCw0NzE5NSw0NzE5OCw0NzE5OSw0NzIwMSw0NzIwMiw0NzIwMyw0NzIwNSw0NzIwNiw0NzIwNyw0NzIwOCw0NzIwOSw0NzIxMCw0NzIxMSw0NzIxNCw0NzIxNiw0NzIxOCw0NzIxOSw0NzIyMCw0NzIy''@;'; + put 'put ''MSw0NzIyMiw0NzIyMyw0NzIyNSw0NzIyNiw0NzIyNyw0NzIyOSw0NzIzMCw0NzIzMSw0NzIzMiw0NzIzMyw0NzIzNCw0NzIzNSw0NzIzNiw0NzIzNyw0NzIzOCw0NzIzOSw0NzI0MCw0NzI0MSw0NzI0Miw0NzI0Myw0NzI0NCw0NzI0Niw0NzI0Nyw0NzI0OCw0NzI0OSw0NzI1MCw0NzI1MSw0''@;'; + put 'put ''NzI1Miw0NzI1Myw0NzI1NCw0NzI1NSw0NzI1Niw0NzI1Nyw0NzI1OCw0NzI1OSw0NzI2MCw0NzI2MSw0NzI2Miw0NzI2MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NzI2NCw0NzI2NSw0NzI2Niw0NzI2Nyw0NzI2OCw0NzI2OSw0NzI3MCw0NzI3MSw0NzI3Myw0NzI3NCw0NzI3''@;'; + put 'put ''NSw0NzI3Niw0NzI3Nyw0NzI3OCw0NzI3OSw0NzI4MSw0NzI4Miw0NzI4Myw0NzI4NSw0NzI4Niw0NzI4Nyw0NzI4OSw0NzI5MCw0NzI5MSw0NzI5Miw0NzI5MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NzI5NCw0NzI5NSw0NzI5OCw0NzMwMCw0NzMwMiw0NzMwMyw0NzMwNCw0''@;'; + put 'put ''NzMwNSw0NzMwNiw0NzMwNyw0NzMwOSw0NzMxMCw0NzMxMSw0NzMxMyw0NzMxNCw0NzMxNSw0NzMxNyw0NzMxOCw0NzMxOSw0NzMyMCw0NzMyMSw0NzMyMiw0NzMyMyw0NzMyNCw0NzMyNiw0NzMyOCw0NzMzMCw0NzMzMSw0NzMzMiw0NzMzMyw0NzMzNCw0NzMzNSw0NzMzOCw0NzMzOSw0NzM0''@;'; + put 'put ''MSw0NzM0Miw0NzM0Myw0NzM0NSw0NzM0Niw0NzM0Nyw0NzM0OCw0NzM0OSw0NzM1MCw0NzM1MSw0NzM1NCw0NzM1Niw0NzM1OCw0NzM1OSw0NzM2MCw0NzM2MSw0NzM2Miw0NzM2Myw0NzM2NSw0NzM2Niw0NzM2Nyw0NzM2OCw0NzM2OSw0NzM3MCw0NzM3MSw0NzM3Miw0NzM3Myw0NzM3NCw0''@;'; + put 'put ''NzM3NSw0NzM3Niw0NzM3Nyw0NzM3OCw0NzM3OSw0NzM4MCw0NzM4MSw0NzM4Miw0NzM4Myw0NzM4NSw0NzM4Niw0NzM4Nyw0NzM4OCw0NzM4OSw0NzM5MCw0NzM5MSw0NzM5Myw0NzM5NCw0NzM5NSw0NzM5Niw0NzM5Nyw0NzM5OCw0NzM5OSw0NzQwMCw0NzQwMSw0NzQwMiw0NzQwMyw0NzQw''@;'; + put 'put ''NCw0NzQwNSw0NzQwNiw0NzQwNyw0NzQwOCw0NzQwOSw0NzQxMCw0NzQxMSw0NzQxMiw0NzQxMyw0NzQxNCw0NzQxNSw0NzQxNiw0NzQxNyw0NzQxOCw0NzQxOSw0NzQyMiw0NzQyMyw0NzQyNSw0NzQyNiw0NzQyNyw0NzQyOSw0NzQzMCw0NzQzMSw0NzQzMiw0NzQzMyw0NzQzNCw0NzQzNSw0''@;'; + put 'put ''NzQzNyw0NzQzOCw0NzQ0MCw0NzQ0Miw0NzQ0Myw0NzQ0NCw0NzQ0NSw0NzQ0Niw0NzQ0Nyw0NzQ1MCw0NzQ1MSw0NzQ1Myw0NzQ1NCw0NzQ1NSw0NzQ1Nyw0NzQ1OCw0NzQ1OSw0NzQ2MCw0NzQ2MSw0NzQ2Miw0NzQ2Myw0NzQ2Niw0NzQ2OCw0NzQ3MCw0NzQ3MSw0NzQ3Miw0NzQ3Myw0NzQ3''@;'; + put 'put ''NCw0NzQ3NSw0NzQ3OCw0NzQ3OSw0NzQ4MSw0NzQ4Miw0NzQ4Myw0NzQ4NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NzQ4Niw0NzQ4Nyw0NzQ4OCw0NzQ4OSw0NzQ5MCw0NzQ5MSw0NzQ5NCw0NzQ5Niw0NzQ5OSw0NzUwMCw0NzUwMyw0NzUwNCw0NzUwNSw0NzUwNiw0NzUwNyw0''@;'; + put 'put ''NzUwOCw0NzUwOSw0NzUxMCw0NzUxMSw0NzUxMiw0NzUxMyw0NzUxNCw0NzUxNSw0NzUxNiw0NzUxNyw0NzUxOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NzUxOSw0NzUyMCw0NzUyMSw0NzUyMiw0NzUyMyw0NzUyNCw0NzUyNSw0NzUyNiw0NzUyNyw0NzUyOCw0NzUyOSw0NzUz''@;'; + put 'put ''MCw0NzUzMSw0NzUzNCw0NzUzNSw0NzUzNyw0NzUzOCw0NzUzOSw0NzU0MSw0NzU0Miw0NzU0Myw0NzU0NCw0NzU0NSw0NzU0Niw0NzU0Nyw0NzU1MCw0NzU1Miw0NzU1NCw0NzU1NSw0NzU1Niw0NzU1Nyw0NzU1OCw0NzU1OSw0NzU2Miw0NzU2Myw0NzU2NSw0NzU3MSw0NzU3Miw0NzU3Myw0''@;'; + put 'put ''NzU3NCw0NzU3NSw0NzU3OCw0NzU4MCw0NzU4Myw0NzU4NCw0NzU4Niw0NzU5MCw0NzU5MSw0NzU5Myw0NzU5NCw0NzU5NSw0NzU5Nyw0NzU5OCw0NzU5OSw0NzYwMCw0NzYwMSw0NzYwMiw0NzYwMyw0NzYwNiw0NzYxMSw0NzYxMiw0NzYxMyw0NzYxNCw0NzYxNSw0NzYxOCw0NzYxOSw0NzYy''@;'; + put 'put ''MCw0NzYyMSw0NzYyMiw0NzYyMyw0NzYyNSw0NzYyNiw0NzYyNyw0NzYyOCw0NzYyOSw0NzYzMCw0NzYzMSw0NzYzMiw0NzYzMyw0NzYzNCw0NzYzNSw0NzYzNiw0NzYzOCw0NzYzOSw0NzY0MCw0NzY0MSw0NzY0Miw0NzY0Myw0NzY0NCw0NzY0NSw0NzY0Niw0NzY0Nyw0NzY0OCw0NzY0OSw0''@;'; + put 'put ''NzY1MCw0NzY1MSw0NzY1Miw0NzY1Myw0NzY1NCw0NzY1NSw0NzY1Niw0NzY1Nyw0NzY1OCw0NzY1OSw0NzY2MCw0NzY2MSw0NzY2Miw0NzY2Myw0NzY2NCw0NzY2NSw0NzY2Niw0NzY2Nyw0NzY2OCw0NzY2OSw0NzY3MCw0NzY3MSw0NzY3NCw0NzY3NSw0NzY3Nyw0NzY3OCw0NzY3OSw0NzY4''@;'; + put 'put ''MSw0NzY4Myw0NzY4NCw0NzY4NSw0NzY4Niw0NzY4Nyw0NzY5MCw0NzY5Miw0NzY5NSw0NzY5Niw0NzY5Nyw0NzY5OCw0NzcwMiw0NzcwMyw0NzcwNSw0NzcwNiw0NzcwNyw0NzcwOSw0NzcxMCw0NzcxMSw0NzcxMiw0NzcxMyw0NzcxNCw0NzcxNSw0NzcxOCw0NzcyMiw0NzcyMyw0NzcyNCw0''@;'; + put 'put ''NzcyNSw0NzcyNiw0NzcyNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NzczMCw0NzczMSw0NzczMyw0NzczNCw0NzczNSw0NzczNyw0NzczOCw0NzczOSw0Nzc0MCw0Nzc0MSw0Nzc0Miw0Nzc0Myw0Nzc0NCw0Nzc0NSw0Nzc0Niw0Nzc1MCw0Nzc1Miw0Nzc1Myw0Nzc1NCw0Nzc1''@;'; + put 'put ''NSw0Nzc1Nyw0Nzc1OCw0Nzc1OSw0Nzc2MCw0Nzc2MSw0Nzc2MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0Nzc2Myw0Nzc2NCw0Nzc2NSw0Nzc2Niw0Nzc2Nyw0Nzc2OCw0Nzc2OSw0Nzc3MCw0Nzc3MSw0Nzc3Miw0Nzc3Myw0Nzc3NCw0Nzc3NSw0Nzc3Niw0Nzc3Nyw0Nzc3OCw0''@;'; + put 'put ''Nzc3OSw0Nzc4MCw0Nzc4MSw0Nzc4Miw0Nzc4Myw0Nzc4Niw0Nzc4OSw0Nzc5MCw0Nzc5MSw0Nzc5Myw0Nzc5NSw0Nzc5Niw0Nzc5Nyw0Nzc5OCw0Nzc5OSw0NzgwMiw0NzgwNCw0NzgwNiw0NzgwNyw0NzgwOCw0NzgwOSw0NzgxMCw0NzgxMSw0NzgxMyw0NzgxNCw0NzgxNSw0NzgxNyw0Nzgx''@;'; + put 'put ''OCw0NzgxOSw0NzgyMCw0NzgyMSw0NzgyMiw0NzgyMyw0NzgyNCw0NzgyNSw0NzgyNiw0NzgyNyw0NzgyOCw0NzgyOSw0NzgzMCw0NzgzMSw0NzgzNCw0NzgzNSw0NzgzNiw0NzgzNyw0NzgzOCw0NzgzOSw0Nzg0MCw0Nzg0MSw0Nzg0Miw0Nzg0Myw0Nzg0NCw0Nzg0NSw0Nzg0Niw0Nzg0Nyw0''@;'; + put 'put ''Nzg0OCw0Nzg0OSw0Nzg1MCw0Nzg1MSw0Nzg1Miw0Nzg1Myw0Nzg1NCw0Nzg1NSw0Nzg1Niw0Nzg1Nyw0Nzg1OCw0Nzg1OSw0Nzg2MCw0Nzg2MSw0Nzg2Miw0Nzg2Myw0Nzg2NCw0Nzg2NSw0Nzg2Niw0Nzg2Nyw0Nzg2OSw0Nzg3MCw0Nzg3MSw0Nzg3Myw0Nzg3NCw0Nzg3NSw0Nzg3Nyw0Nzg3''@;'; + put 'put ''OCw0Nzg3OSw0Nzg4MCw0Nzg4MSw0Nzg4Miw0Nzg4Myw0Nzg4NCw0Nzg4Niw0Nzg4OCw0Nzg5MCw0Nzg5MSw0Nzg5Miw0Nzg5Myw0Nzg5NCw0Nzg5NSw0Nzg5Nyw0Nzg5OCw0Nzg5OSw0NzkwMSw0NzkwMiw0NzkwMyw0NzkwNSw0NzkwNiw0NzkwNyw0NzkwOCw0NzkwOSw0NzkxMCw0NzkxMSw0''@;'; + put 'put ''NzkxMiw0NzkxNCw0NzkxNiw0NzkxNyw0NzkxOCw0NzkxOSw0NzkyMCw0NzkyMSw0NzkyMiw0NzkyMyw0NzkyNyw0NzkyOSw0NzkzMCw0NzkzNSw0NzkzNiw0NzkzNyw0NzkzOCw0NzkzOSw0Nzk0Miw0Nzk0NCw0Nzk0Niw0Nzk0Nyw0Nzk0OCw0Nzk1MCw0Nzk1Myw0Nzk1NCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCw0Nzk1NSw0Nzk1Nyw0Nzk1OCw0Nzk1OSw0Nzk2MSw0Nzk2Miw0Nzk2Myw0Nzk2NCw0Nzk2NSw0Nzk2Niw0Nzk2Nyw0Nzk2OCw0Nzk3MCw0Nzk3Miw0Nzk3Myw0Nzk3NCw0Nzk3NSw0Nzk3Niw0Nzk3Nyw0Nzk3OCw0Nzk3OSw0Nzk4MSw0Nzk4Miw0Nzk4Myw0''@;'; + put 'put ''Nzk4NCw0Nzk4NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0Nzk4Niw0Nzk4Nyw0Nzk4OCw0Nzk4OSw0Nzk5MCw0Nzk5MSw0Nzk5Miw0Nzk5Myw0Nzk5NCw0Nzk5NSw0Nzk5Niw0Nzk5Nyw0Nzk5OCw0Nzk5OSw0OGUzLDQ4MDAxLDQ4MDAyLDQ4MDAzLDQ4MDA0LDQ4MDA1LDQ4MDA2''@;'; + put 'put ''LDQ4MDA3LDQ4MDA5LDQ4MDEwLDQ4MDExLDQ4MDEzLDQ4MDE0LDQ4MDE1LDQ4MDE3LDQ4MDE4LDQ4MDE5LDQ4MDIwLDQ4MDIxLDQ4MDIyLDQ4MDIzLDQ4MDI0LDQ4MDI1LDQ4MDI2LDQ4MDI3LDQ4MDI4LDQ4MDI5LDQ4MDMwLDQ4MDMxLDQ4MDMyLDQ4MDMzLDQ4MDM0LDQ4MDM1LDQ4MDM3LDQ4''@;'; + put 'put ''MDM4LDQ4MDM5LDQ4MDQxLDQ4MDQyLDQ4MDQzLDQ4MDQ1LDQ4MDQ2LDQ4MDQ3LDQ4MDQ4LDQ4MDQ5LDQ4MDUwLDQ4MDUxLDQ4MDUzLDQ4MDU0LDQ4MDU2LDQ4MDU3LDQ4MDU4LDQ4MDU5LDQ4MDYwLDQ4MDYxLDQ4MDYyLDQ4MDYzLDQ4MDY1LDQ4MDY2LDQ4MDY3LDQ4MDY5LDQ4MDcwLDQ4MDcx''@;'; + put 'put ''LDQ4MDczLDQ4MDc0LDQ4MDc1LDQ4MDc2LDQ4MDc3LDQ4MDc4LDQ4MDc5LDQ4MDgxLDQ4MDgyLDQ4MDg0LDQ4MDg1LDQ4MDg2LDQ4MDg3LDQ4MDg4LDQ4MDg5LDQ4MDkwLDQ4MDkxLDQ4MDkyLDQ4MDkzLDQ4MDk0LDQ4MDk1LDQ4MDk2LDQ4MDk3LDQ4MDk4LDQ4MDk5LDQ4MTAwLDQ4MTAxLDQ4''@;'; + put 'put ''MTAyLDQ4MTAzLDQ4MTA0LDQ4MTA1LDQ4MTA2LDQ4MTA3LDQ4MTA4LDQ4MTA5LDQ4MTEwLDQ4MTExLDQ4MTEyLDQ4MTEzLDQ4MTE0LDQ4MTE1LDQ4MTE2LDQ4MTE3LDQ4MTE4LDQ4MTE5LDQ4MTIyLDQ4MTIzLDQ4MTI1LDQ4MTI2LDQ4MTI5LDQ4MTMxLDQ4MTMyLDQ4MTMzLDQ4MTM0LDQ4MTM1''@;'; + put 'put ''LDQ4MTM4LDQ4MTQyLDQ4MTQ0LDQ4MTQ2LDQ4MTQ3LDQ4MTUzLDQ4MTU0LDQ4MTYwLDQ4MTYxLDQ4MTYyLDQ4MTYzLDQ4MTY2LDQ4MTY4LDQ4MTcwLDQ4MTcxLDQ4MTcyLDQ4MTc0LDQ4MTc1LDQ4MTc4LDQ4MTc5LDQ4MTgxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ4MTgyLDQ4''@;'; + put 'put ''MTgzLDQ4MTg1LDQ4MTg2LDQ4MTg3LDQ4MTg4LDQ4MTg5LDQ4MTkwLDQ4MTkxLDQ4MTk0LDQ4MTk4LDQ4MTk5LDQ4MjAwLDQ4MjAyLDQ4MjAzLDQ4MjA2LDQ4MjA3LDQ4MjA5LDQ4MjEwLDQ4MjExLDQ4MjEyLDQ4MjEzLDQ4MjE0LDQ4MjE1LDQ4MjE2LDQ4MjE3LG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLDQ4MjE4LDQ4MjE5LDQ4MjIwLDQ4MjIyLDQ4MjIzLDQ4MjI0LDQ4MjI1LDQ4MjI2LDQ4MjI3LDQ4MjI4LDQ4MjI5LDQ4MjMwLDQ4MjMxLDQ4MjMyLDQ4MjMzLDQ4MjM0LDQ4MjM1LDQ4MjM2LDQ4MjM3LDQ4MjM4LDQ4MjM5LDQ4MjQwLDQ4MjQxLDQ4MjQyLDQ4MjQzLDQ4''@;'; + put 'put ''MjQ0LDQ4MjQ1LDQ4MjQ2LDQ4MjQ3LDQ4MjQ4LDQ4MjQ5LDQ4MjUwLDQ4MjUxLDQ4MjUyLDQ4MjUzLDQ4MjU0LDQ4MjU1LDQ4MjU2LDQ4MjU3LDQ4MjU4LDQ4MjU5LDQ4MjYyLDQ4MjYzLDQ4MjY1LDQ4MjY2LDQ4MjY5LDQ4MjcxLDQ4MjcyLDQ4MjczLDQ4Mjc0LDQ4Mjc1LDQ4Mjc4LDQ4Mjgw''@;'; + put 'put ''LDQ4MjgzLDQ4Mjg0LDQ4Mjg1LDQ4Mjg2LDQ4Mjg3LDQ4MjkwLDQ4MjkxLDQ4MjkzLDQ4Mjk0LDQ4Mjk3LDQ4Mjk4LDQ4Mjk5LDQ4MzAwLDQ4MzAxLDQ4MzAyLDQ4MzAzLDQ4MzA2LDQ4MzEwLDQ4MzExLDQ4MzEyLDQ4MzEzLDQ4MzE0LDQ4MzE1LDQ4MzE4LDQ4MzE5LDQ4MzIxLDQ4MzIyLDQ4''@;'; + put 'put ''MzIzLDQ4MzI1LDQ4MzI2LDQ4MzI3LDQ4MzI4LDQ4MzI5LDQ4MzMwLDQ4MzMxLDQ4MzMyLDQ4MzM0LDQ4MzM4LDQ4MzM5LDQ4MzQwLDQ4MzQyLDQ4MzQzLDQ4MzQ1LDQ4MzQ2LDQ4MzQ3LDQ4MzQ5LDQ4MzUwLDQ4MzUxLDQ4MzUyLDQ4MzUzLDQ4MzU0LDQ4MzU1LDQ4MzU2LDQ4MzU3LDQ4MzU4''@;'; + put 'put ''LDQ4MzU5LDQ4MzYwLDQ4MzYxLDQ4MzYyLDQ4MzYzLDQ4MzY0LDQ4MzY1LDQ4MzY2LDQ4MzY3LDQ4MzY4LDQ4MzY5LDQ4MzcwLDQ4MzcxLDQ4Mzc1LDQ4Mzc3LDQ4Mzc4LDQ4Mzc5LDQ4MzgxLDQ4MzgyLDQ4MzgzLDQ4Mzg0LDQ4Mzg1LDQ4Mzg2LDQ4Mzg3LDQ4MzkwLDQ4MzkyLDQ4Mzk0LDQ4''@;'; + put 'put ''Mzk1LDQ4Mzk2LDQ4Mzk3LDQ4Mzk4LDQ4Mzk5LDQ4NDAxLDQ4NDAyLDQ4NDAzLDQ4NDA1LDQ4NDA2LDQ4NDA3LDQ4NDA4LDQ4NDA5LDQ4NDEwLDQ4NDExLDQ4NDEyLDQ4NDEzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ4NDE0LDQ4NDE1LDQ4NDE2LDQ4NDE3LDQ4NDE4LDQ4NDE5''@;'; + put 'put ''LDQ4NDIxLDQ4NDIyLDQ4NDIzLDQ4NDI0LDQ4NDI1LDQ4NDI2LDQ4NDI3LDQ4NDI5LDQ4NDMwLDQ4NDMxLDQ4NDMyLDQ4NDMzLDQ4NDM0LDQ4NDM1LDQ4NDM2LDQ4NDM3LDQ4NDM4LDQ4NDM5LDQ4NDQwLDQ4NDQxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ4NDQyLDQ4NDQzLDQ4''@;'; + put 'put ''NDQ0LDQ4NDQ1LDQ4NDQ2LDQ4NDQ3LDQ4NDQ5LDQ4NDUwLDQ4NDUxLDQ4NDUyLDQ4NDUzLDQ4NDU0LDQ4NDU1LDQ4NDU4LDQ4NDU5LDQ4NDYxLDQ4NDYyLDQ4NDYzLDQ4NDY1LDQ4NDY2LDQ4NDY3LDQ4NDY4LDQ4NDY5LDQ4NDcwLDQ4NDcxLDQ4NDc0LDQ4NDc1LDQ4NDc2LDQ4NDc3LDQ4NDc4''@;'; + put 'put ''LDQ4NDc5LDQ4NDgwLDQ4NDgxLDQ4NDgyLDQ4NDgzLDQ4NDg1LDQ4NDg2LDQ4NDg3LDQ4NDg5LDQ4NDkwLDQ4NDkxLDQ4NDkyLDQ4NDkzLDQ4NDk0LDQ4NDk1LDQ4NDk2LDQ4NDk3LDQ4NDk4LDQ4NDk5LDQ4NTAwLDQ4NTAxLDQ4NTAyLDQ4NTAzLDQ4NTA0LDQ4NTA1LDQ4NTA2LDQ4NTA3LDQ4''@;'; + put 'put ''NTA4LDQ4NTA5LDQ4NTEwLDQ4NTExLDQ4NTE0LDQ4NTE1LDQ4NTE3LDQ4NTE4LDQ4NTIzLDQ4NTI0LDQ4NTI1LDQ4NTI2LDQ4NTI3LDQ4NTMwLDQ4NTMyLDQ4NTM0LDQ4NTM1LDQ4NTM2LDQ4NTM5LDQ4NTQxLDQ4NTQyLDQ4NTQzLDQ4NTQ0LDQ4NTQ1LDQ4NTQ2LDQ4NTQ3LDQ4NTQ5LDQ4NTUw''@;'; + put 'put ''LDQ4NTUxLDQ4NTUyLDQ4NTUzLDQ4NTU0LDQ4NTU1LDQ4NTU2LDQ4NTU3LDQ4NTU4LDQ4NTU5LDQ4NTYxLDQ4NTYyLDQ4NTYzLDQ4NTY0LDQ4NTY1LDQ4NTY2LDQ4NTY3LDQ4NTY5LDQ4NTcwLDQ4NTcxLDQ4NTcyLDQ4NTczLDQ4NTc0LDQ4NTc1LDQ4NTc2LDQ4NTc3LDQ4NTc4LDQ4NTc5LDQ4''@;'; + put 'put ''NTgwLDQ4NTgxLDQ4NTgyLDQ4NTgzLDQ4NTg0LDQ4NTg1LDQ4NTg2LDQ4NTg3LDQ4NTg4LDQ4NTg5LDQ4NTkwLDQ4NTkxLDQ4NTkyLDQ4NTkzLDQ4NTk0LDQ4NTk1LDQ4NTk4LDQ4NTk5LDQ4NjAxLDQ4NjAyLDQ4NjAzLDQ4NjA1LDQ4NjA2LDQ4NjA3LDQ4NjA4LDQ4NjA5LDQ4NjEwLDQ4NjEx''@;'; + put 'put ''LDQ4NjEyLDQ4NjEzLDQ4NjE0LDQ4NjE1LDQ4NjE2LDQ4NjE4LDQ4NjE5LDQ4NjIwLDQ4NjIxLDQ4NjIyLDQ4NjIzLDQ4NjI1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ4NjI2LDQ4NjI3LDQ4NjI5LDQ4NjMwLDQ4NjMxLDQ4NjMzLDQ4NjM0LDQ4NjM1LDQ4NjM2LDQ4NjM3LDQ4''@;'; + put 'put ''NjM4LDQ4NjM5LDQ4NjQxLDQ4NjQyLDQ4NjQ0LDQ4NjQ2LDQ4NjQ3LDQ4NjQ4LDQ4NjQ5LDQ4NjUwLDQ4NjUxLDQ4NjU0LDQ4NjU1LDQ4NjU3LDQ4NjU4LDQ4NjU5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ4NjYxLDQ4NjYyLDQ4NjYzLDQ4NjY0LDQ4NjY1LDQ4NjY2LDQ4NjY3''@;'; + put 'put ''LDQ4NjcwLDQ4NjcyLDQ4NjczLDQ4Njc0LDQ4Njc1LDQ4Njc2LDQ4Njc3LDQ4Njc4LDQ4Njc5LDQ4NjgwLDQ4NjgxLDQ4NjgyLDQ4NjgzLDQ4Njg0LDQ4Njg1LDQ4Njg2LDQ4Njg3LDQ4Njg4LDQ4Njg5LDQ4NjkwLDQ4NjkxLDQ4NjkyLDQ4NjkzLDQ4Njk0LDQ4Njk1LDQ4Njk2LDQ4Njk3LDQ4''@;'; + put 'put ''Njk4LDQ4Njk5LDQ4NzAwLDQ4NzAxLDQ4NzAyLDQ4NzAzLDQ4NzA0LDQ4NzA1LDQ4NzA2LDQ4NzA3LDQ4NzEwLDQ4NzExLDQ4NzEzLDQ4NzE0LDQ4NzE1LDQ4NzE3LDQ4NzE5LDQ4NzIwLDQ4NzIxLDQ4NzIyLDQ4NzIzLDQ4NzI2LDQ4NzI4LDQ4NzMyLDQ4NzMzLDQ4NzM0LDQ4NzM1LDQ4NzM4''@;'; + put 'put ''LDQ4NzM5LDQ4NzQxLDQ4NzQyLDQ4NzQzLDQ4NzQ1LDQ4NzQ3LDQ4NzQ4LDQ4NzQ5LDQ4NzUwLDQ4NzUxLDQ4NzU0LDQ4NzU4LDQ4NzU5LDQ4NzYwLDQ4NzYxLDQ4NzYyLDQ4NzY2LDQ4NzY3LDQ4NzY5LDQ4NzcwLDQ4NzcxLDQ4NzczLDQ4Nzc0LDQ4Nzc1LDQ4Nzc2LDQ4Nzc3LDQ4Nzc4LDQ4''@;'; + put 'put ''Nzc5LDQ4NzgyLDQ4Nzg2LDQ4Nzg3LDQ4Nzg4LDQ4Nzg5LDQ4NzkwLDQ4NzkxLDQ4Nzk0LDQ4Nzk1LDQ4Nzk2LDQ4Nzk3LDQ4Nzk4LDQ4Nzk5LDQ4ODAwLDQ4ODAxLDQ4ODAyLDQ4ODAzLDQ4ODA0LDQ4ODA1LDQ4ODA2LDQ4ODA3LDQ4ODA5LDQ4ODEwLDQ4ODExLDQ4ODEyLDQ4ODEzLDQ4ODE0''@;'; + put 'put ''LDQ4ODE1LDQ4ODE2LDQ4ODE3LDQ4ODE4LDQ4ODE5LDQ4ODIwLDQ4ODIxLDQ4ODIyLDQ4ODIzLDQ4ODI0LDQ4ODI1LDQ4ODI2LDQ4ODI3LDQ4ODI4LDQ4ODI5LDQ4ODMwLDQ4ODMxLDQ4ODMyLDQ4ODMzLDQ4ODM0LDQ4ODM1LDQ4ODM2LDQ4ODM3LDQ4ODM4LDQ4ODM5LDQ4ODQwLDQ4ODQxLDQ4''@;'; + put 'put ''ODQyLDQ4ODQzLDQ4ODQ0LDQ4ODQ1LDQ4ODQ2LDQ4ODQ3LDQ4ODUwLDQ4ODUxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ4ODUzLDQ4ODU0LDQ4ODU3LDQ4ODU4LDQ4ODU5LDQ4ODYwLDQ4ODYxLDQ4ODYyLDQ4ODYzLDQ4ODY1LDQ4ODY2LDQ4ODcwLDQ4ODcxLDQ4ODcyLDQ4ODcz''@;'; + put 'put ''LDQ4ODc0LDQ4ODc1LDQ4ODc3LDQ4ODc4LDQ4ODc5LDQ4ODgwLDQ4ODgxLDQ4ODgyLDQ4ODgzLDQ4ODg0LDQ4ODg1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ4ODg2LDQ4ODg3LDQ4ODg4LDQ4ODg5LDQ4ODkwLDQ4ODkxLDQ4ODkyLDQ4ODkzLDQ4ODk0LDQ4ODk1LDQ4ODk2LDQ4''@;'; + put 'put ''ODk4LDQ4ODk5LDQ4OTAwLDQ4OTAxLDQ4OTAyLDQ4OTAzLDQ4OTA2LDQ4OTA3LDQ4OTA4LDQ4OTA5LDQ4OTEwLDQ4OTExLDQ4OTEyLDQ4OTEzLDQ4OTE0LDQ4OTE1LDQ4OTE2LDQ4OTE3LDQ4OTE4LDQ4OTE5LDQ4OTIyLDQ4OTI2LDQ4OTI3LDQ4OTI4LDQ4OTI5LDQ4OTMwLDQ4OTMxLDQ4OTMy''@;'; + put 'put ''LDQ4OTMzLDQ4OTM0LDQ4OTM1LDQ4OTM2LDQ4OTM3LDQ4OTM4LDQ4OTM5LDQ4OTQwLDQ4OTQxLDQ4OTQyLDQ4OTQzLDQ4OTQ0LDQ4OTQ1LDQ4OTQ2LDQ4OTQ3LDQ4OTQ4LDQ4OTQ5LDQ4OTUwLDQ4OTUxLDQ4OTUyLDQ4OTUzLDQ4OTU0LDQ4OTU1LDQ4OTU2LDQ4OTU3LDQ4OTU4LDQ4OTU5LDQ4''@;'; + put 'put ''OTYyLDQ4OTYzLDQ4OTY1LDQ4OTY2LDQ4OTY3LDQ4OTY5LDQ4OTcwLDQ4OTcxLDQ4OTcyLDQ4OTczLDQ4OTc0LDQ4OTc1LDQ4OTc4LDQ4OTc5LDQ4OTgwLDQ4OTgyLDQ4OTgzLDQ4OTg0LDQ4OTg1LDQ4OTg2LDQ4OTg3LDQ4OTg4LDQ4OTg5LDQ4OTkwLDQ4OTkxLDQ4OTkyLDQ4OTkzLDQ4OTk0''@;'; + put 'put ''LDQ4OTk1LDQ4OTk2LDQ4OTk3LDQ4OTk4LDQ4OTk5LDQ5ZTMsNDkwMDEsNDkwMDIsNDkwMDMsNDkwMDQsNDkwMDUsNDkwMDYsNDkwMDcsNDkwMDgsNDkwMDksNDkwMTAsNDkwMTEsNDkwMTIsNDkwMTMsNDkwMTQsNDkwMTUsNDkwMTYsNDkwMTcsNDkwMTgsNDkwMTksNDkwMjAsNDkwMjEsNDkw''@;'; + put 'put ''MjIsNDkwMjMsNDkwMjQsNDkwMjUsNDkwMjYsNDkwMjcsNDkwMjgsNDkwMjksNDkwMzAsNDkwMzEsNDkwMzIsNDkwMzMsNDkwMzQsNDkwMzUsNDkwMzYsNDkwMzcsNDkwMzgsNDkwMzksNDkwNDAsNDkwNDEsNDkwNDIsNDkwNDMsNDkwNDUsNDkwNDYsNDkwNDcsNDkwNDgsNDkwNDksNDkwNTAs''@;'; + put 'put ''NDkwNTEsNDkwNTIsNDkwNTMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDkwNTQsNDkwNTUsNDkwNTYsNDkwNTcsNDkwNTgsNDkwNTksNDkwNjAsNDkwNjEsNDkwNjIsNDkwNjMsNDkwNjQsNDkwNjUsNDkwNjYsNDkwNjcsNDkwNjgsNDkwNjksNDkwNzAsNDkwNzEsNDkwNzMsNDkw''@;'; + put 'put ''NzQsNDkwNzUsNDkwNzYsNDkwNzcsNDkwNzgsNDkwNzksNDkwODAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDkwODEsNDkwODIsNDkwODMsNDkwODQsNDkwODUsNDkwODYsNDkwODcsNDkwODgsNDkwODksNDkwOTAsNDkwOTEsNDkwOTIsNDkwOTQsNDkwOTUsNDkwOTYsNDkwOTcs''@;'; + put 'put ''NDkwOTgsNDkwOTksNDkxMDIsNDkxMDMsNDkxMDUsNDkxMDYsNDkxMDcsNDkxMDksNDkxMTAsNDkxMTEsNDkxMTIsNDkxMTMsNDkxMTQsNDkxMTUsNDkxMTcsNDkxMTgsNDkxMjAsNDkxMjIsNDkxMjMsNDkxMjQsNDkxMjUsNDkxMjYsNDkxMjcsNDkxMjgsNDkxMjksNDkxMzAsNDkxMzEsNDkx''@;'; + put 'put ''MzIsNDkxMzMsNDkxMzQsNDkxMzUsNDkxMzYsNDkxMzcsNDkxMzgsNDkxMzksNDkxNDAsNDkxNDEsNDkxNDIsNDkxNDMsNDkxNDQsNDkxNDUsNDkxNDYsNDkxNDcsNDkxNDgsNDkxNDksNDkxNTAsNDkxNTEsNDkxNTIsNDkxNTMsNDkxNTQsNDkxNTUsNDkxNTYsNDkxNTcsNDkxNTgsNDkxNTks''@;'; + put 'put ''NDkxNjAsNDkxNjEsNDkxNjIsNDkxNjMsNDkxNjQsNDkxNjUsNDkxNjYsNDkxNjcsNDkxNjgsNDkxNjksNDkxNzAsNDkxNzEsNDkxNzIsNDkxNzMsNDkxNzQsNDkxNzUsNDkxNzYsNDkxNzcsNDkxNzgsNDkxNzksNDkxODAsNDkxODEsNDkxODIsNDkxODMsNDkxODQsNDkxODUsNDkxODYsNDkx''@;'; + put 'put ''ODcsNDkxODgsNDkxODksNDkxOTAsNDkxOTEsNDkxOTIsNDkxOTMsNDkxOTQsNDkxOTUsNDkxOTYsNDkxOTcsNDkxOTgsNDkxOTksNDkyMDAsNDkyMDEsNDkyMDIsNDkyMDMsNDkyMDQsNDkyMDUsNDkyMDYsNDkyMDcsNDkyMDgsNDkyMDksNDkyMTAsNDkyMTEsNDkyMTMsNDkyMTQsNDkyMTUs''@;'; + put 'put ''NDkyMTYsNDkyMTcsNDkyMTgsNDkyMTksNDkyMjAsNDkyMjEsNDkyMjIsNDkyMjMsNDkyMjQsNDkyMjUsNDkyMjYsNDkyMjcsNDkyMjgsNDkyMjksNDkyMzAsNDkyMzEsNDkyMzIsNDkyMzQsNDkyMzUsNDkyMzYsNDkyMzcsNDkyMzgsNDkyMzksNDkyNDEsNDkyNDIsNDkyNDMsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsNDkyNDUsNDkyNDYsNDkyNDcsNDkyNDksNDkyNTAsNDkyNTEsNDkyNTIsNDkyNTMsNDkyNTQsNDkyNTUsNDkyNTgsNDkyNTksNDkyNjAsNDkyNjEsNDkyNjIsNDkyNjMsNDkyNjQsNDkyNjUsNDkyNjYsNDkyNjcsNDkyNjgsNDkyNjksNDkyNzAsNDkyNzEs''@;'; + put 'put ''NDkyNzIsNDkyNzMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDkyNzQsNDkyNzUsNDkyNzYsNDkyNzcsNDkyNzgsNDkyNzksNDkyODAsNDkyODEsNDkyODIsNDkyODMsNDkyODQsNDkyODUsNDkyODYsNDkyODcsNDkyODgsNDkyODksNDkyOTAsNDkyOTEsNDkyOTIsNDkyOTMsNDky''@;'; + put 'put ''OTQsNDkyOTUsNDkyOTgsNDkyOTksNDkzMDEsNDkzMDIsNDkzMDMsNDkzMDUsNDkzMDYsNDkzMDcsNDkzMDgsNDkzMDksNDkzMTAsNDkzMTEsNDkzMTQsNDkzMTYsNDkzMTgsNDkzMTksNDkzMjAsNDkzMjEsNDkzMjIsNDkzMjMsNDkzMjYsNDkzMjksNDkzMzAsNDkzMzUsNDkzMzYsNDkzMzcs''@;'; + put 'put ''NDkzMzgsNDkzMzksNDkzNDIsNDkzNDYsNDkzNDcsNDkzNDgsNDkzNTAsNDkzNTEsNDkzNTQsNDkzNTUsNDkzNTcsNDkzNTgsNDkzNTksNDkzNjEsNDkzNjIsNDkzNjMsNDkzNjQsNDkzNjUsNDkzNjYsNDkzNjcsNDkzNzAsNDkzNzQsNDkzNzUsNDkzNzYsNDkzNzcsNDkzNzgsNDkzNzksNDkz''@;'; + put 'put ''ODIsNDkzODMsNDkzODUsNDkzODYsNDkzODcsNDkzODksNDkzOTAsNDkzOTEsNDkzOTIsNDkzOTMsNDkzOTQsNDkzOTUsNDkzOTgsNDk0MDAsNDk0MDIsNDk0MDMsNDk0MDQsNDk0MDUsNDk0MDYsNDk0MDcsNDk0MDksNDk0MTAsNDk0MTEsNDk0MTMsNDk0MTQsNDk0MTUsNDk0MTcsNDk0MTgs''@;'; + put 'put ''NDk0MTksNDk0MjAsNDk0MjEsNDk0MjIsNDk0MjMsNDk0MjUsNDk0MjYsNDk0MjcsNDk0MjgsNDk0MzAsNDk0MzEsNDk0MzIsNDk0MzMsNDk0MzQsNDk0MzUsNDk0NDEsNDk0NDIsNDk0NDUsNDk0NDgsNDk0NDksNDk0NTAsNDk0NTEsNDk0NTQsNDk0NTgsNDk0NTksNDk0NjAsNDk0NjEsNDk0''@;'; + put 'put ''NjMsNDk0NjYsNDk0NjcsNDk0NjksNDk0NzAsNDk0NzEsNDk0NzMsNDk0NzQsNDk0NzUsNDk0NzYsNDk0NzcsNDk0NzgsNDk0NzksNDk0ODIsNDk0ODYsNDk0ODcsNDk0ODgsNDk0ODksNDk0OTAsNDk0OTEsNDk0OTQsNDk0OTUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDk0OTcs''@;'; + put 'put ''NDk0OTgsNDk0OTksNDk1MDEsNDk1MDIsNDk1MDMsNDk1MDQsNDk1MDUsNDk1MDYsNDk1MDcsNDk1MTAsNDk1MTQsNDk1MTUsNDk1MTYsNDk1MTcsNDk1MTgsNDk1MTksNDk1MjEsNDk1MjIsNDk1MjMsNDk1MjUsNDk1MjYsNDk1MjcsNDk1MjksNDk1MzAsNDk1MzEsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsNDk1MzIsNDk1MzMsNDk1MzQsNDk1MzUsNDk1MzYsNDk1MzcsNDk1MzgsNDk1MzksNDk1NDAsNDk1NDIsNDk1NDMsNDk1NDQsNDk1NDUsNDk1NDYsNDk1NDcsNDk1NTEsNDk1NTMsNDk1NTQsNDk1NTUsNDk1NTcsNDk1NTksNDk1NjAsNDk1NjEsNDk1NjIsNDk1NjMs''@;'; + put 'put ''NDk1NjYsNDk1NjgsNDk1NzAsNDk1NzEsNDk1NzIsNDk1NzQsNDk1NzUsNDk1NzgsNDk1NzksNDk1ODEsNDk1ODIsNDk1ODMsNDk1ODUsNDk1ODYsNDk1ODcsNDk1ODgsNDk1ODksNDk1OTAsNDk1OTEsNDk1OTIsNDk1OTMsNDk1OTQsNDk1OTUsNDk1OTYsNDk1OTgsNDk1OTksNDk2MDAsNDk2''@;'; + put 'put ''MDEsNDk2MDIsNDk2MDMsNDk2MDUsNDk2MDYsNDk2MDcsNDk2MDksNDk2MTAsNDk2MTEsNDk2MTMsNDk2MTQsNDk2MTUsNDk2MTYsNDk2MTcsNDk2MTgsNDk2MTksNDk2MjEsNDk2MjIsNDk2MjUsNDk2MjYsNDk2MjcsNDk2MjgsNDk2MjksNDk2MzAsNDk2MzEsNDk2MzMsNDk2MzQsNDk2MzUs''@;'; + put 'put ''NDk2MzcsNDk2MzgsNDk2MzksNDk2NDEsNDk2NDIsNDk2NDMsNDk2NDQsNDk2NDUsNDk2NDYsNDk2NDcsNDk2NTAsNDk2NTIsNDk2NTMsNDk2NTQsNDk2NTUsNDk2NTYsNDk2NTcsNDk2NTgsNDk2NTksNDk2NjIsNDk2NjMsNDk2NjUsNDk2NjYsNDk2NjcsNDk2NjksNDk2NzAsNDk2NzEsNDk2''@;'; + put 'put ''NzIsNDk2NzMsNDk2NzQsNDk2NzUsNDk2NzgsNDk2ODAsNDk2ODIsNDk2ODMsNDk2ODQsNDk2ODUsNDk2ODYsNDk2ODcsNDk2OTAsNDk2OTEsNDk2OTMsNDk2OTQsNDk2OTcsNDk2OTgsNDk2OTksNDk3MDAsNDk3MDEsNDk3MDIsNDk3MDMsNDk3MDYsNDk3MDgsNDk3MTAsNDk3MTIsNDk3MTUs''@;'; + put 'put ''NDk3MTcsNDk3MTgsNDk3MTksNDk3MjAsNDk3MjEsNDk3MjIsNDk3MjMsNDk3MjQsNDk3MjUsNDk3MjYsNDk3MjcsNDk3MjgsNDk3MjksNDk3MzAsNDk3MzEsNDk3MzIsNDk3MzMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDk3MzQsNDk3MzUsNDk3MzcsNDk3MzgsNDk3MzksNDk3''@;'; + put 'put ''NDAsNDk3NDEsNDk3NDIsNDk3NDMsNDk3NDYsNDk3NDcsNDk3NDksNDk3NTAsNDk3NTEsNDk3NTMsNDk3NTQsNDk3NTUsNDk3NTYsNDk3NTcsNDk3NTgsNDk3NTksNDk3NjEsNDk3NjIsNDk3NjMsNDk3NjQsNDk3NjYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDk3NjcsNDk3Njgs''@;'; + put 'put ''NDk3NjksNDk3NzAsNDk3NzEsNDk3NzQsNDk3NzUsNDk3NzcsNDk3NzgsNDk3NzksNDk3ODEsNDk3ODIsNDk3ODMsNDk3ODQsNDk3ODUsNDk3ODYsNDk3ODcsNDk3OTAsNDk3OTIsNDk3OTQsNDk3OTUsNDk3OTYsNDk3OTcsNDk3OTgsNDk3OTksNDk4MDIsNDk4MDMsNDk4MDQsNDk4MDUsNDk4''@;'; + put 'put ''MDYsNDk4MDcsNDk4MDksNDk4MTAsNDk4MTEsNDk4MTIsNDk4MTMsNDk4MTQsNDk4MTUsNDk4MTcsNDk4MTgsNDk4MjAsNDk4MjIsNDk4MjMsNDk4MjQsNDk4MjUsNDk4MjYsNDk4MjcsNDk4MzAsNDk4MzEsNDk4MzMsNDk4MzQsNDk4MzUsNDk4MzgsNDk4MzksNDk4NDAsNDk4NDEsNDk4NDIs''@;'; + put 'put ''NDk4NDMsNDk4NDYsNDk4NDgsNDk4NTAsNDk4NTEsNDk4NTIsNDk4NTMsNDk4NTQsNDk4NTUsNDk4NTYsNDk4NTcsNDk4NTgsNDk4NTksNDk4NjAsNDk4NjEsNDk4NjIsNDk4NjMsNDk4NjQsNDk4NjUsNDk4NjYsNDk4NjcsNDk4NjgsNDk4NjksNDk4NzAsNDk4NzEsNDk4NzIsNDk4NzMsNDk4''@;'; + put 'put ''NzQsNDk4NzUsNDk4NzYsNDk4NzcsNDk4NzgsNDk4NzksNDk4ODAsNDk4ODEsNDk4ODIsNDk4ODMsNDk4ODYsNDk4ODcsNDk4ODksNDk4OTAsNDk4OTMsNDk4OTQsNDk4OTUsNDk4OTYsNDk4OTcsNDk4OTgsNDk5MDIsNDk5MDQsNDk5MDYsNDk5MDcsNDk5MDgsNDk5MDksNDk5MTEsNDk5MTQs''@;'; + put 'put ''NDk5MTcsNDk5MTgsNDk5MTksNDk5MjEsNDk5MjIsNDk5MjMsNDk5MjQsNDk5MjUsNDk5MjYsNDk5MjcsNDk5MzAsNDk5MzEsNDk5MzQsNDk5MzUsNDk5MzYsNDk5MzcsNDk5MzgsNDk5NDIsNDk5NDMsNDk5NDUsNDk5NDYsNDk5NDcsNDk5NDksNDk5NTAsNDk5NTEsNDk5NTIsNDk5NTMsNDk5''@;'; + put 'put ''NTQsNDk5NTUsNDk5NTgsNDk5NTksNDk5NjIsNDk5NjMsNDk5NjQsNDk5NjUsNDk5NjYsNDk5NjcsNDk5NjgsNDk5NjksNDk5NzAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDk5NzEsNDk5NzIsNDk5NzMsNDk5NzQsNDk5NzUsNDk5NzYsNDk5NzcsNDk5NzgsNDk5NzksNDk5ODAs''@;'; + put 'put ''NDk5ODEsNDk5ODIsNDk5ODMsNDk5ODQsNDk5ODUsNDk5ODYsNDk5ODcsNDk5ODgsNDk5OTAsNDk5OTEsNDk5OTIsNDk5OTMsNDk5OTQsNDk5OTUsNDk5OTYsNDk5OTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDk5OTgsNDk5OTksNWU0LDUwMDAxLDUwMDAyLDUwMDAzLDUwMDA0''@;'; + put 'put ''LDUwMDA1LDUwMDA2LDUwMDA3LDUwMDA4LDUwMDA5LDUwMDEwLDUwMDExLDUwMDEyLDUwMDEzLDUwMDE0LDUwMDE1LDUwMDE2LDUwMDE3LDUwMDE4LDUwMDE5LDUwMDIwLDUwMDIxLDUwMDIyLDUwMDIzLDUwMDI2LDUwMDI3LDUwMDI5LDUwMDMwLDUwMDMxLDUwMDMzLDUwMDM1LDUwMDM2LDUw''@;'; + put 'put ''MDM3LDUwMDM4LDUwMDM5LDUwMDQyLDUwMDQzLDUwMDQ2LDUwMDQ3LDUwMDQ4LDUwMDQ5LDUwMDUwLDUwMDUxLDUwMDUzLDUwMDU0LDUwMDU1LDUwMDU3LDUwMDU4LDUwMDU5LDUwMDYxLDUwMDYyLDUwMDYzLDUwMDY0LDUwMDY1LDUwMDY2LDUwMDY3LDUwMDY4LDUwMDY5LDUwMDcwLDUwMDcx''@;'; + put 'put ''LDUwMDcyLDUwMDczLDUwMDc0LDUwMDc1LDUwMDc2LDUwMDc3LDUwMDc4LDUwMDc5LDUwMDgwLDUwMDgxLDUwMDgyLDUwMDgzLDUwMDg0LDUwMDg1LDUwMDg2LDUwMDg3LDUwMDg4LDUwMDg5LDUwMDkwLDUwMDkxLDUwMDkyLDUwMDkzLDUwMDk0LDUwMDk1LDUwMDk2LDUwMDk3LDUwMDk4LDUw''@;'; + put 'put ''MDk5LDUwMTAwLDUwMTAxLDUwMTAyLDUwMTAzLDUwMTA0LDUwMTA1LDUwMTA2LDUwMTA3LDUwMTA4LDUwMTA5LDUwMTEwLDUwMTExLDUwMTEzLDUwMTE0LDUwMTE1LDUwMTE2LDUwMTE3LDUwMTE4LDUwMTE5LDUwMTIwLDUwMTIxLDUwMTIyLDUwMTIzLDUwMTI0LDUwMTI1LDUwMTI2LDUwMTI3''@;'; + put 'put ''LDUwMTI4LDUwMTI5LDUwMTMwLDUwMTMxLDUwMTMyLDUwMTMzLDUwMTM0LDUwMTM1LDUwMTM4LDUwMTM5LDUwMTQxLDUwMTQyLDUwMTQ1LDUwMTQ3LDUwMTQ4LDUwMTQ5LDUwMTUwLDUwMTUxLDUwMTU0LDUwMTU1LDUwMTU2LDUwMTU4LDUwMTU5LDUwMTYwLDUwMTYxLDUwMTYyLDUwMTYzLDUw''@;'; + put 'put ''MTY2LDUwMTY3LDUwMTY5LDUwMTcwLDUwMTcxLDUwMTcyLDUwMTczLDUwMTc0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUwMTc1LDUwMTc2LDUwMTc3LDUwMTc4LDUwMTc5LDUwMTgwLDUwMTgxLDUwMTgyLDUwMTgzLDUwMTg1LDUwMTg2LDUwMTg3LDUwMTg4LDUwMTg5LDUwMTkw''@;'; + put 'put ''LDUwMTkxLDUwMTkzLDUwMTk0LDUwMTk1LDUwMTk2LDUwMTk3LDUwMTk4LDUwMTk5LDUwMjAwLDUwMjAxLDUwMjAyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUwMjAzLDUwMjA0LDUwMjA1LDUwMjA2LDUwMjA3LDUwMjA4LDUwMjA5LDUwMjEwLDUwMjExLDUwMjEzLDUwMjE0LDUw''@;'; + put 'put ''MjE1LDUwMjE2LDUwMjE3LDUwMjE4LDUwMjE5LDUwMjIxLDUwMjIyLDUwMjIzLDUwMjI1LDUwMjI2LDUwMjI3LDUwMjI5LDUwMjMwLDUwMjMxLDUwMjMyLDUwMjMzLDUwMjM0LDUwMjM1LDUwMjM4LDUwMjM5LDUwMjQwLDUwMjQxLDUwMjQyLDUwMjQzLDUwMjQ0LDUwMjQ1LDUwMjQ2LDUwMjQ3''@;'; + put 'put ''LDUwMjQ5LDUwMjUwLDUwMjUxLDUwMjUyLDUwMjUzLDUwMjU0LDUwMjU1LDUwMjU2LDUwMjU3LDUwMjU4LDUwMjU5LDUwMjYwLDUwMjYxLDUwMjYyLDUwMjYzLDUwMjY0LDUwMjY1LDUwMjY2LDUwMjY3LDUwMjY4LDUwMjY5LDUwMjcwLDUwMjcxLDUwMjcyLDUwMjczLDUwMjc0LDUwMjc1LDUw''@;'; + put 'put ''Mjc4LDUwMjc5LDUwMjgxLDUwMjgyLDUwMjgzLDUwMjg1LDUwMjg2LDUwMjg3LDUwMjg4LDUwMjg5LDUwMjkwLDUwMjkxLDUwMjk0LDUwMjk1LDUwMjk2LDUwMjk4LDUwMjk5LDUwMzAwLDUwMzAxLDUwMzAyLDUwMzAzLDUwMzA1LDUwMzA2LDUwMzA3LDUwMzA4LDUwMzA5LDUwMzEwLDUwMzEx''@;'; + put 'put ''LDUwMzEyLDUwMzEzLDUwMzE0LDUwMzE1LDUwMzE2LDUwMzE3LDUwMzE4LDUwMzE5LDUwMzIwLDUwMzIxLDUwMzIyLDUwMzIzLDUwMzI1LDUwMzI2LDUwMzI3LDUwMzI4LDUwMzI5LDUwMzMwLDUwMzMxLDUwMzMzLDUwMzM0LDUwMzM1LDUwMzM2LDUwMzM3LDUwMzM4LDUwMzM5LDUwMzQwLDUw''@;'; + put 'put ''MzQxLDUwMzQyLDUwMzQzLDUwMzQ0LDUwMzQ1LDUwMzQ2LDUwMzQ3LDUwMzQ4LDUwMzQ5LDUwMzUwLDUwMzUxLDUwMzUyLDUwMzUzLDUwMzU0LDUwMzU1LDUwMzU2LDUwMzU3LDUwMzU4LDUwMzU5LDUwMzYxLDUwMzYyLDUwMzYzLDUwMzY1LDUwMzY2LDUwMzY3LDUwMzY4LDUwMzY5LDUwMzcw''@;'; + put 'put ''LDUwMzcxLDUwMzcyLDUwMzczLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUwMzc0LDUwMzc1LDUwMzc2LDUwMzc3LDUwMzc4LDUwMzc5LDUwMzgwLDUwMzgxLDUwMzgyLDUwMzgzLDUwMzg0LDUwMzg1LDUwMzg2LDUwMzg3LDUwMzg4LDUwMzg5LDUwMzkwLDUwMzkxLDUwMzkyLDUw''@;'; + put 'put ''MzkzLDUwMzk0LDUwMzk1LDUwMzk2LDUwMzk3LDUwMzk4LDUwMzk5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUwNDAwLDUwNDAxLDUwNDAyLDUwNDAzLDUwNDA0LDUwNDA1LDUwNDA2LDUwNDA3LDUwNDA4LDUwNDEwLDUwNDExLDUwNDEyLDUwNDEzLDUwNDE0LDUwNDE1LDUwNDE4''@;'; + put 'put ''LDUwNDE5LDUwNDIxLDUwNDIyLDUwNDIzLDUwNDI1LDUwNDI3LDUwNDI4LDUwNDI5LDUwNDMwLDUwNDM0LDUwNDM1LDUwNDM2LDUwNDM3LDUwNDM4LDUwNDM5LDUwNDQwLDUwNDQxLDUwNDQyLDUwNDQzLDUwNDQ1LDUwNDQ2LDUwNDQ3LDUwNDQ5LDUwNDUwLDUwNDUxLDUwNDUzLDUwNDU0LDUw''@;'; + put 'put ''NDU1LDUwNDU2LDUwNDU3LDUwNDU4LDUwNDU5LDUwNDYxLDUwNDYyLDUwNDYzLDUwNDY0LDUwNDY1LDUwNDY2LDUwNDY3LDUwNDY4LDUwNDY5LDUwNDcwLDUwNDcxLDUwNDc0LDUwNDc1LDUwNDc3LDUwNDc4LDUwNDc5LDUwNDgxLDUwNDgyLDUwNDgzLDUwNDg0LDUwNDg1LDUwNDg2LDUwNDg3''@;'; + put 'put ''LDUwNDkwLDUwNDkyLDUwNDk0LDUwNDk1LDUwNDk2LDUwNDk3LDUwNDk4LDUwNDk5LDUwNTAyLDUwNTAzLDUwNTA3LDUwNTExLDUwNTEyLDUwNTEzLDUwNTE0LDUwNTE4LDUwNTIyLDUwNTIzLDUwNTI0LDUwNTI3LDUwNTMwLDUwNTMxLDUwNTMzLDUwNTM0LDUwNTM1LDUwNTM3LDUwNTM4LDUw''@;'; + put 'put ''NTM5LDUwNTQwLDUwNTQxLDUwNTQyLDUwNTQzLDUwNTQ2LDUwNTUwLDUwNTUxLDUwNTUyLDUwNTUzLDUwNTU0LDUwNTU1LDUwNTU4LDUwNTU5LDUwNTYxLDUwNTYyLDUwNTYzLDUwNTY1LDUwNTY2LDUwNTY4LDUwNTY5LDUwNTcwLDUwNTcxLDUwNTc0LDUwNTc2LDUwNTc4LDUwNTc5LDUwNTgw''@;'; + put 'put ''LDUwNTgyLDUwNTg1LDUwNTg2LDUwNTg3LDUwNTg5LDUwNTkwLDUwNTkxLDUwNTkzLDUwNTk0LDUwNTk1LDUwNTk2LDUwNTk3LDUwNTk4LDUwNTk5LDUwNjAwLDUwNjAyLDUwNjAzLDUwNjA0LDUwNjA1LDUwNjA2LDUwNjA3LDUwNjA4LDUwNjA5LDUwNjEwLDUwNjExLDUwNjE0LG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLDUwNjE1LDUwNjE4LDUwNjIzLDUwNjI0LDUwNjI1LDUwNjI2LDUwNjI3LDUwNjM1LDUwNjM3LDUwNjM5LDUwNjQyLDUwNjQzLDUwNjQ1LDUwNjQ2LDUwNjQ3LDUwNjQ5LDUwNjUwLDUwNjUxLDUwNjUyLDUwNjUzLDUwNjU0LDUwNjU1LDUwNjU4LDUwNjYw''@;'; + put 'put ''LDUwNjYyLDUwNjYzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUwNjY0LDUwNjY1LDUwNjY2LDUwNjY3LDUwNjcxLDUwNjczLDUwNjc0LDUwNjc1LDUwNjc3LDUwNjgwLDUwNjgxLDUwNjgyLDUwNjgzLDUwNjkwLDUwNjkxLDUwNjkyLDUwNjk3LDUwNjk4LDUwNjk5LDUwNzAxLDUw''@;'; + put 'put ''NzAyLDUwNzAzLDUwNzA1LDUwNzA2LDUwNzA3LDUwNzA4LDUwNzA5LDUwNzEwLDUwNzExLDUwNzE0LDUwNzE3LDUwNzE4LDUwNzE5LDUwNzIwLDUwNzIxLDUwNzIyLDUwNzIzLDUwNzI2LDUwNzI3LDUwNzI5LDUwNzMwLDUwNzMxLDUwNzM1LDUwNzM3LDUwNzM4LDUwNzQyLDUwNzQ0LDUwNzQ2''@;'; + put 'put ''LDUwNzQ4LDUwNzQ5LDUwNzUwLDUwNzUxLDUwNzU0LDUwNzU1LDUwNzU3LDUwNzU4LDUwNzU5LDUwNzYxLDUwNzYyLDUwNzYzLDUwNzY0LDUwNzY1LDUwNzY2LDUwNzY3LDUwNzcwLDUwNzc0LDUwNzc1LDUwNzc2LDUwNzc3LDUwNzc4LDUwNzc5LDUwNzgyLDUwNzgzLDUwNzg1LDUwNzg2LDUw''@;'; + put 'put ''Nzg3LDUwNzg4LDUwNzg5LDUwNzkwLDUwNzkxLDUwNzkyLDUwNzkzLDUwNzk0LDUwNzk1LDUwNzk3LDUwNzk4LDUwODAwLDUwODAyLDUwODAzLDUwODA0LDUwODA1LDUwODA2LDUwODA3LDUwODEwLDUwODExLDUwODEzLDUwODE0LDUwODE1LDUwODE3LDUwODE4LDUwODE5LDUwODIwLDUwODIx''@;'; + put 'put ''LDUwODIyLDUwODIzLDUwODI2LDUwODI4LDUwODMwLDUwODMxLDUwODMyLDUwODMzLDUwODM0LDUwODM1LDUwODM4LDUwODM5LDUwODQxLDUwODQyLDUwODQzLDUwODQ1LDUwODQ2LDUwODQ3LDUwODQ4LDUwODQ5LDUwODUwLDUwODUxLDUwODU0LDUwODU2LDUwODU4LDUwODU5LDUwODYwLDUw''@;'; + put 'put ''ODYxLDUwODYyLDUwODYzLDUwODY2LDUwODY3LDUwODY5LDUwODcwLDUwODcxLDUwODc1LDUwODc2LDUwODc3LDUwODc4LDUwODc5LDUwODgyLDUwODg0LDUwODg2LDUwODg3LDUwODg4LDUwODg5LDUwODkwLDUwODkxLDUwODk0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUwODk1''@;'; + put 'put ''LDUwODk3LDUwODk4LDUwODk5LDUwOTAxLDUwOTAyLDUwOTAzLDUwOTA0LDUwOTA1LDUwOTA2LDUwOTA3LDUwOTEwLDUwOTExLDUwOTE0LDUwOTE1LDUwOTE2LDUwOTE3LDUwOTE4LDUwOTE5LDUwOTIyLDUwOTIzLDUwOTI1LDUwOTI2LDUwOTI3LDUwOTI5LDUwOTMwLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLDUwOTMxLDUwOTMyLDUwOTMzLDUwOTM0LDUwOTM1LDUwOTM4LDUwOTM5LDUwOTQwLDUwOTQyLDUwOTQzLDUwOTQ0LDUwOTQ1LDUwOTQ2LDUwOTQ3LDUwOTUwLDUwOTUxLDUwOTUzLDUwOTU0LDUwOTU1LDUwOTU3LDUwOTU4LDUwOTU5LDUwOTYwLDUwOTYxLDUwOTYy''@;'; + put 'put ''LDUwOTYzLDUwOTY2LDUwOTY4LDUwOTcwLDUwOTcxLDUwOTcyLDUwOTczLDUwOTc0LDUwOTc1LDUwOTc4LDUwOTc5LDUwOTgxLDUwOTgyLDUwOTgzLDUwOTg1LDUwOTg2LDUwOTg3LDUwOTg4LDUwOTg5LDUwOTkwLDUwOTkxLDUwOTk0LDUwOTk2LDUwOTk4LDUxZTMsNTEwMDEsNTEwMDIsNTEw''@;'; + put 'put ''MDMsNTEwMDYsNTEwMDcsNTEwMDksNTEwMTAsNTEwMTEsNTEwMTMsNTEwMTQsNTEwMTUsNTEwMTYsNTEwMTcsNTEwMTksNTEwMjIsNTEwMjQsNTEwMzMsNTEwMzQsNTEwMzUsNTEwMzcsNTEwMzgsNTEwMzksNTEwNDEsNTEwNDIsNTEwNDMsNTEwNDQsNTEwNDUsNTEwNDYsNTEwNDcsNTEwNDks''@;'; + put 'put ''NTEwNTAsNTEwNTIsNTEwNTMsNTEwNTQsNTEwNTUsNTEwNTYsNTEwNTcsNTEwNTgsNTEwNTksNTEwNjIsNTEwNjMsNTEwNjUsNTEwNjYsNTEwNjcsNTEwNzEsNTEwNzIsNTEwNzMsNTEwNzQsNTEwNzgsNTEwODMsNTEwODQsNTEwODUsNTEwODcsNTEwOTAsNTEwOTEsNTEwOTMsNTEwOTcsNTEw''@;'; + put 'put ''OTksNTExMDAsNTExMDEsNTExMDIsNTExMDMsNTExMDYsNTExMTEsNTExMTIsNTExMTMsNTExMTQsNTExMTUsNTExMTgsNTExMTksNTExMjEsNTExMjIsNTExMjMsNTExMjUsNTExMjYsNTExMjcsNTExMjgsNTExMjksNTExMzAsNTExMzEsNTExMzQsNTExMzgsNTExMzksNTExNDAsNTExNDEs''@;'; + put 'put ''NTExNDIsNTExNDMsNTExNDYsNTExNDcsNTExNDksNTExNTEsNTExNTMsNTExNTQsNTExNTUsNTExNTYsNTExNTcsNTExNTgsNTExNTksNTExNjEsNTExNjIsNTExNjMsNTExNjQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTExNjYsNTExNjcsNTExNjgsNTExNjksNTExNzAsNTEx''@;'; + put 'put ''NzEsNTExNzMsNTExNzQsNTExNzUsNTExNzcsNTExNzgsNTExNzksNTExODEsNTExODIsNTExODMsNTExODQsNTExODUsNTExODYsNTExODcsNTExODgsNTExODksNTExOTAsNTExOTEsNTExOTIsNTExOTMsNTExOTQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTExOTUsNTExOTYs''@;'; + put 'put ''NTExOTcsNTExOTgsNTExOTksNTEyMDIsNTEyMDMsNTEyMDUsNTEyMDYsNTEyMDcsNTEyMDksNTEyMTEsNTEyMTIsNTEyMTMsNTEyMTQsNTEyMTUsNTEyMTgsNTEyMjAsNTEyMjMsNTEyMjQsNTEyMjUsNTEyMjYsNTEyMjcsNTEyMzAsNTEyMzEsNTEyMzMsNTEyMzQsNTEyMzUsNTEyMzcsNTEy''@;'; + put 'put ''MzgsNTEyMzksNTEyNDAsNTEyNDEsNTEyNDIsNTEyNDMsNTEyNDYsNTEyNDgsNTEyNTAsNTEyNTEsNTEyNTIsNTEyNTMsNTEyNTQsNTEyNTUsNTEyNTcsNTEyNTgsNTEyNTksNTEyNjEsNTEyNjIsNTEyNjMsNTEyNjUsNTEyNjYsNTEyNjcsNTEyNjgsNTEyNjksNTEyNzAsNTEyNzEsNTEyNzQs''@;'; + put 'put ''NTEyNzUsNTEyNzgsNTEyNzksNTEyODAsNTEyODEsNTEyODIsNTEyODMsNTEyODUsNTEyODYsNTEyODcsNTEyODgsNTEyODksNTEyOTAsNTEyOTEsNTEyOTIsNTEyOTMsNTEyOTQsNTEyOTUsNTEyOTYsNTEyOTcsNTEyOTgsNTEyOTksNTEzMDAsNTEzMDEsNTEzMDIsNTEzMDMsNTEzMDQsNTEz''@;'; + put 'put ''MDUsNTEzMDYsNTEzMDcsNTEzMDgsNTEzMDksNTEzMTAsNTEzMTEsNTEzMTQsNTEzMTUsNTEzMTcsNTEzMTgsNTEzMTksNTEzMjEsNTEzMjMsNTEzMjQsNTEzMjUsNTEzMjYsNTEzMjcsNTEzMzAsNTEzMzIsNTEzMzYsNTEzMzcsNTEzMzgsNTEzNDIsNTEzNDMsNTEzNDQsNTEzNDUsNTEzNDYs''@;'; + put 'put ''NTEzNDcsNTEzNDksNTEzNTAsNTEzNTEsNTEzNTIsNTEzNTMsNTEzNTQsNTEzNTUsNTEzNTYsNTEzNTgsNTEzNjAsNTEzNjIsNTEzNjMsNTEzNjQsNTEzNjUsNTEzNjYsNTEzNjcsNTEzNjksNTEzNzAsNTEzNzEsNTEzNzIsNTEzNzMsNTEzNzQsNTEzNzUsNTEzNzYsNTEzNzcsNTEzNzgsNTEz''@;'; + put 'put ''NzksNTEzODAsNTEzODEsNTEzODIsNTEzODMsNTEzODQsNTEzODUsNTEzODYsNTEzODcsNTEzOTAsNTEzOTEsNTEzOTIsNTEzOTMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTEzOTQsNTEzOTUsNTEzOTcsNTEzOTgsNTEzOTksNTE0MDEsNTE0MDIsNTE0MDMsNTE0MDUsNTE0MDYs''@;'; + put 'put ''NTE0MDcsNTE0MDgsNTE0MDksNTE0MTAsNTE0MTEsNTE0MTQsNTE0MTYsNTE0MTgsNTE0MTksNTE0MjAsNTE0MjEsNTE0MjIsNTE0MjMsNTE0MjYsNTE0MjcsNTE0MjksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE0MzAsNTE0MzEsNTE0MzIsNTE0MzMsNTE0MzQsNTE0MzUsNTE0''@;'; + put 'put ''MzYsNTE0MzcsNTE0MzgsNTE0MzksNTE0NDAsNTE0NDEsNTE0NDIsNTE0NDMsNTE0NDQsNTE0NDYsNTE0NDcsNTE0NDgsNTE0NDksNTE0NTAsNTE0NTEsNTE0NTQsNTE0NTUsNTE0NTcsNTE0NTgsNTE0NTksNTE0NjMsNTE0NjQsNTE0NjUsNTE0NjYsNTE0NjcsNTE0NzAsMTIyODgsMTIyODks''@;'; + put 'put ''MTIyOTAsMTgzLDgyMjksODIzMCwxNjgsMTIyOTEsMTczLDgyMTMsODc0MSw2NTM0MCw4NzY0LDgyMTYsODIxNyw4MjIwLDgyMjEsMTIzMDgsMTIzMDksMTIyOTYsMTIyOTcsMTIyOTgsMTIyOTksMTIzMDAsMTIzMDEsMTIzMDIsMTIzMDMsMTIzMDQsMTIzMDUsMTc3LDIxNSwyNDcsODgwMCw4''@;'; + put 'put ''ODA0LDg4MDUsODczNCw4NzU2LDE3Niw4MjQyLDgyNDMsODQ1MSw4NDkxLDY1NTA0LDY1NTA1LDY1NTA5LDk3OTQsOTc5Miw4NzM2LDg4NjksODk3OCw4NzA2LDg3MTEsODgwMSw4Nzg2LDE2Nyw4MjUxLDk3MzQsOTczMyw5Njc1LDk2NzksOTY3OCw5NjcxLDk2NzAsOTYzMyw5NjMyLDk2NTEs''@;'; + put 'put ''OTY1MCw5NjYxLDk2NjAsODU5NCw4NTkyLDg1OTMsODU5NSw4NTk2LDEyMzA3LDg4MTAsODgxMSw4NzMwLDg3NjUsODczMyw4NzU3LDg3NDcsODc0OCw4NzEyLDg3MTUsODgzOCw4ODM5LDg4MzQsODgzNSw4NzQ2LDg3NDUsODc0Myw4NzQ0LDY1NTA2LDUxNDcyLDUxNDc0LDUxNDc1LDUxNDc2''@;'; + put 'put ''LDUxNDc3LDUxNDc4LDUxNDc5LDUxNDgxLDUxNDgyLDUxNDgzLDUxNDg0LDUxNDg1LDUxNDg2LDUxNDg3LDUxNDg4LDUxNDg5LDUxNDkwLDUxNDkxLDUxNDkyLDUxNDkzLDUxNDk0LDUxNDk1LDUxNDk2LDUxNDk3LDUxNDk4LDUxNDk5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUx''@;'; + put 'put ''NTAxLDUxNTAyLDUxNTAzLDUxNTA0LDUxNTA1LDUxNTA2LDUxNTA3LDUxNTA5LDUxNTEwLDUxNTExLDUxNTEyLDUxNTEzLDUxNTE0LDUxNTE1LDUxNTE2LDUxNTE3LDUxNTE4LDUxNTE5LDUxNTIwLDUxNTIxLDUxNTIyLDUxNTIzLDUxNTI0LDUxNTI1LDUxNTI2LDUxNTI3LG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLDUxNTI4LDUxNTI5LDUxNTMwLDUxNTMxLDUxNTMyLDUxNTMzLDUxNTM0LDUxNTM1LDUxNTM4LDUxNTM5LDUxNTQxLDUxNTQyLDUxNTQzLDUxNTQ1LDUxNTQ2LDUxNTQ3LDUxNTQ4LDUxNTQ5LDUxNTUwLDUxNTUxLDUxNTU0LDUxNTU2LDUxNTU3LDUxNTU4LDUx''@;'; + put 'put ''NTU5LDUxNTYwLDUxNTYxLDUxNTYyLDUxNTYzLDUxNTY1LDUxNTY2LDUxNTY3LDg2NTgsODY2MCw4NzA0LDg3MDcsMTgwLDY1Mzc0LDcxMSw3MjgsNzMzLDczMCw3MjksMTg0LDczMSwxNjEsMTkxLDcyMCw4NzUwLDg3MjEsODcxOSwxNjQsODQ1Nyw4MjQwLDk2NjUsOTY2NCw5NjU1LDk2NTQs''@;'; + put 'put ''OTgyOCw5ODI0LDk4MjUsOTgyOSw5ODMxLDk4MjcsODg1Nyw5NjcyLDk2MzUsOTY4MCw5NjgxLDk2MTgsOTYzNiw5NjM3LDk2NDAsOTYzOSw5NjM4LDk2NDEsOTgzMiw5NzQzLDk3NDIsOTc1Niw5NzU4LDE4Miw4MjI0LDgyMjUsODU5Nyw4NTk5LDg2MDEsODU5OCw4NjAwLDk4MzcsOTgzMyw5''@;'; + put 'put ''ODM0LDk4MzYsMTI5MjcsMTI4MjgsODQ3MCwxMzI1NSw4NDgyLDEzMjUwLDEzMjcyLDg0ODEsODM2NCwxNzQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLDUxNTY5LDUxNTcwLDUxNTcxLDUxNTczLDUxNTc0LDUxNTc1LDUxNTc2LDUxNTc3LDUxNTc4LDUxNTc5LDUxNTgxLDUxNTgyLDUxNTgzLDUxNTg0LDUxNTg1LDUxNTg2LDUxNTg3LDUxNTg4LDUxNTg5LDUxNTkwLDUxNTkxLDUxNTk0LDUxNTk1LDUxNTk3LDUxNTk4LDUx''@;'; + put 'put ''NTk5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxNjAxLDUxNjAyLDUxNjAzLDUxNjA0LDUxNjA1LDUxNjA2LDUxNjA3LDUxNjEwLDUxNjEyLDUxNjE0LDUxNjE1LDUxNjE2LDUxNjE3LDUxNjE4LDUxNjE5LDUxNjIwLDUxNjIxLDUxNjIyLDUxNjIzLDUxNjI0LDUxNjI1LDUxNjI2''@;'; + put 'put ''LDUxNjI3LDUxNjI4LDUxNjI5LDUxNjMwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxNjMxLDUxNjMyLDUxNjMzLDUxNjM0LDUxNjM1LDUxNjM2LDUxNjM3LDUxNjM4LDUxNjM5LDUxNjQwLDUxNjQxLDUxNjQyLDUxNjQzLDUxNjQ0LDUxNjQ1LDUxNjQ2LDUxNjQ3LDUxNjUwLDUx''@;'; + put 'put ''NjUxLDUxNjUzLDUxNjU0LDUxNjU3LDUxNjU5LDUxNjYwLDUxNjYxLDUxNjYyLDUxNjYzLDUxNjY2LDUxNjY4LDUxNjcxLDUxNjcyLDUxNjc1LDY1MjgxLDY1MjgyLDY1MjgzLDY1Mjg0LDY1Mjg1LDY1Mjg2LDY1Mjg3LDY1Mjg4LDY1Mjg5LDY1MjkwLDY1MjkxLDY1MjkyLDY1MjkzLDY1Mjk0''@;'; + put 'put ''LDY1Mjk1LDY1Mjk2LDY1Mjk3LDY1Mjk4LDY1Mjk5LDY1MzAwLDY1MzAxLDY1MzAyLDY1MzAzLDY1MzA0LDY1MzA1LDY1MzA2LDY1MzA3LDY1MzA4LDY1MzA5LDY1MzEwLDY1MzExLDY1MzEyLDY1MzEzLDY1MzE0LDY1MzE1LDY1MzE2LDY1MzE3LDY1MzE4LDY1MzE5LDY1MzIwLDY1MzIxLDY1''@;'; + put 'put ''MzIyLDY1MzIzLDY1MzI0LDY1MzI1LDY1MzI2LDY1MzI3LDY1MzI4LDY1MzI5LDY1MzMwLDY1MzMxLDY1MzMyLDY1MzMzLDY1MzM0LDY1MzM1LDY1MzM2LDY1MzM3LDY1MzM4LDY1MzM5LDY1NTEwLDY1MzQxLDY1MzQyLDY1MzQzLDY1MzQ0LDY1MzQ1LDY1MzQ2LDY1MzQ3LDY1MzQ4LDY1MzQ5''@;'; + put 'put ''LDY1MzUwLDY1MzUxLDY1MzUyLDY1MzUzLDY1MzU0LDY1MzU1LDY1MzU2LDY1MzU3LDY1MzU4LDY1MzU5LDY1MzYwLDY1MzYxLDY1MzYyLDY1MzYzLDY1MzY0LDY1MzY1LDY1MzY2LDY1MzY3LDY1MzY4LDY1MzY5LDY1MzcwLDY1MzcxLDY1MzcyLDY1MzczLDY1NTA3LDUxNjc4LDUxNjc5LDUx''@;'; + put 'put ''NjgxLDUxNjgzLDUxNjg1LDUxNjg2LDUxNjg4LDUxNjg5LDUxNjkwLDUxNjkxLDUxNjk0LDUxNjk4LDUxNjk5LDUxNzAwLDUxNzAxLDUxNzAyLDUxNzAzLDUxNzA2LDUxNzA3LDUxNzA5LDUxNzEwLDUxNzExLDUxNzEzLDUxNzE0LDUxNzE1LDUxNzE2LG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLDUxNzE3LDUxNzE4LDUxNzE5LDUxNzIyLDUxNzI2LDUxNzI3LDUxNzI4LDUxNzI5LDUxNzMwLDUxNzMxLDUxNzMzLDUxNzM0LDUxNzM1LDUxNzM3LDUxNzM4LDUxNzM5LDUxNzQwLDUxNzQxLDUxNzQyLDUxNzQzLDUxNzQ0LDUxNzQ1LDUxNzQ2LDUxNzQ3LDUxNzQ4LDUxNzQ5LG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxNzUwLDUxNzUxLDUxNzUyLDUxNzU0LDUxNzU1LDUxNzU2LDUxNzU3LDUxNzU4LDUxNzU5LDUxNzYwLDUxNzYxLDUxNzYyLDUxNzYzLDUxNzY0LDUxNzY1LDUxNzY2LDUxNzY3LDUxNzY4LDUxNzY5LDUxNzcwLDUxNzcxLDUxNzcyLDUxNzcz''@;'; + put 'put ''LDUxNzc0LDUxNzc1LDUxNzc2LDUxNzc3LDUxNzc4LDUxNzc5LDUxNzgwLDUxNzgxLDUxNzgyLDEyNTkzLDEyNTk0LDEyNTk1LDEyNTk2LDEyNTk3LDEyNTk4LDEyNTk5LDEyNjAwLDEyNjAxLDEyNjAyLDEyNjAzLDEyNjA0LDEyNjA1LDEyNjA2LDEyNjA3LDEyNjA4LDEyNjA5LDEyNjEwLDEy''@;'; + put 'put ''NjExLDEyNjEyLDEyNjEzLDEyNjE0LDEyNjE1LDEyNjE2LDEyNjE3LDEyNjE4LDEyNjE5LDEyNjIwLDEyNjIxLDEyNjIyLDEyNjIzLDEyNjI0LDEyNjI1LDEyNjI2LDEyNjI3LDEyNjI4LDEyNjI5LDEyNjMwLDEyNjMxLDEyNjMyLDEyNjMzLDEyNjM0LDEyNjM1LDEyNjM2LDEyNjM3LDEyNjM4''@;'; + put 'put ''LDEyNjM5LDEyNjQwLDEyNjQxLDEyNjQyLDEyNjQzLDEyNjQ0LDEyNjQ1LDEyNjQ2LDEyNjQ3LDEyNjQ4LDEyNjQ5LDEyNjUwLDEyNjUxLDEyNjUyLDEyNjUzLDEyNjU0LDEyNjU1LDEyNjU2LDEyNjU3LDEyNjU4LDEyNjU5LDEyNjYwLDEyNjYxLDEyNjYyLDEyNjYzLDEyNjY0LDEyNjY1LDEy''@;'; + put 'put ''NjY2LDEyNjY3LDEyNjY4LDEyNjY5LDEyNjcwLDEyNjcxLDEyNjcyLDEyNjczLDEyNjc0LDEyNjc1LDEyNjc2LDEyNjc3LDEyNjc4LDEyNjc5LDEyNjgwLDEyNjgxLDEyNjgyLDEyNjgzLDEyNjg0LDEyNjg1LDEyNjg2LDUxNzgzLDUxNzg0LDUxNzg1LDUxNzg2LDUxNzg3LDUxNzkwLDUxNzkx''@;'; + put 'put ''LDUxNzkzLDUxNzk0LDUxNzk1LDUxNzk3LDUxNzk4LDUxNzk5LDUxODAwLDUxODAxLDUxODAyLDUxODAzLDUxODA2LDUxODEwLDUxODExLDUxODEyLDUxODEzLDUxODE0LDUxODE1LDUxODE3LDUxODE4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxODE5LDUxODIwLDUxODIxLDUx''@;'; + put 'put ''ODIyLDUxODIzLDUxODI0LDUxODI1LDUxODI2LDUxODI3LDUxODI4LDUxODI5LDUxODMwLDUxODMxLDUxODMyLDUxODMzLDUxODM0LDUxODM1LDUxODM2LDUxODM4LDUxODM5LDUxODQwLDUxODQxLDUxODQyLDUxODQzLDUxODQ1LDUxODQ2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LDUxODQ3LDUxODQ4LDUxODQ5LDUxODUwLDUxODUxLDUxODUyLDUxODUzLDUxODU0LDUxODU1LDUxODU2LDUxODU3LDUxODU4LDUxODU5LDUxODYwLDUxODYxLDUxODYyLDUxODYzLDUxODY1LDUxODY2LDUxODY3LDUxODY4LDUxODY5LDUxODcwLDUxODcxLDUxODcyLDUxODczLDUxODc0LDUx''@;'; + put 'put ''ODc1LDUxODc2LDUxODc3LDUxODc4LDUxODc5LDg1NjAsODU2MSw4NTYyLDg1NjMsODU2NCw4NTY1LDg1NjYsODU2Nyw4NTY4LDg1NjksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDg1NDQsODU0NSw4NTQ2LDg1NDcsODU0OCw4NTQ5LDg1NTAsODU1MSw4NTUyLDg1NTMsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsOTQ1LDk0''@;'; + put 'put ''Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjMsOTY0LDk2NSw5NjYsOTY3LDk2OCw5NjksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE4ODAsNTE4ODEsNTE4ODIsNTE4ODMsNTE4ODQsNTE4ODUsNTE4ODYsNTE4''@;'; + put 'put ''ODcsNTE4ODgsNTE4ODksNTE4OTAsNTE4OTEsNTE4OTIsNTE4OTMsNTE4OTQsNTE4OTUsNTE4OTYsNTE4OTcsNTE4OTgsNTE4OTksNTE5MDIsNTE5MDMsNTE5MDUsNTE5MDYsNTE5MDcsNTE5MDksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE5MTAsNTE5MTEsNTE5MTIsNTE5MTMs''@;'; + put 'put ''NTE5MTQsNTE5MTUsNTE5MTgsNTE5MjAsNTE5MjIsNTE5MjQsNTE5MjUsNTE5MjYsNTE5MjcsNTE5MzAsNTE5MzEsNTE5MzIsNTE5MzMsNTE5MzQsNTE5MzUsNTE5MzcsNTE5MzgsNTE5MzksNTE5NDAsNTE5NDEsNTE5NDIsNTE5NDMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE5''@;'; + put 'put ''NDQsNTE5NDUsNTE5NDYsNTE5NDcsNTE5NDksNTE5NTAsNTE5NTEsNTE5NTIsNTE5NTMsNTE5NTQsNTE5NTUsNTE5NTcsNTE5NTgsNTE5NTksNTE5NjAsNTE5NjEsNTE5NjIsNTE5NjMsNTE5NjQsNTE5NjUsNTE5NjYsNTE5NjcsNTE5NjgsNTE5NjksNTE5NzAsNTE5NzEsNTE5NzIsNTE5NzMs''@;'; + put 'put ''NTE5NzQsNTE5NzUsNTE5NzcsNTE5NzgsOTQ3Miw5NDc0LDk0ODQsOTQ4OCw5NDk2LDk0OTIsOTUwMCw5NTE2LDk1MDgsOTUyNCw5NTMyLDk0NzMsOTQ3NSw5NDg3LDk0OTEsOTQ5OSw5NDk1LDk1MDcsOTUyMyw5NTE1LDk1MzEsOTU0Nyw5NTA0LDk1MTksOTUxMiw5NTI3LDk1MzUsOTUwMSw5''@;'; + put 'put ''NTIwLDk1MDksOTUyOCw5NTM4LDk0OTAsOTQ4OSw5NDk4LDk0OTcsOTQ5NCw5NDkzLDk0ODYsOTQ4NSw5NTAyLDk1MDMsOTUwNSw5NTA2LDk1MTAsOTUxMSw5NTEzLDk1MTQsOTUxNyw5NTE4LDk1MjEsOTUyMiw5NTI1LDk1MjYsOTUyOSw5NTMwLDk1MzMsOTUzNCw5NTM2LDk1MzcsOTUzOSw5''@;'; + put 'put ''NTQwLDk1NDEsOTU0Miw5NTQzLDk1NDQsOTU0NSw5NTQ2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1''@;'; + put 'put ''MTk3OSw1MTk4MCw1MTk4MSw1MTk4Miw1MTk4Myw1MTk4NSw1MTk4Niw1MTk4Nyw1MTk4OSw1MTk5MCw1MTk5MSw1MTk5Myw1MTk5NCw1MTk5NSw1MTk5Niw1MTk5Nyw1MTk5OCw1MTk5OSw1MjAwMiw1MjAwMyw1MjAwNCw1MjAwNSw1MjAwNiw1MjAwNyw1MjAwOCw1MjAwOSxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCw1MjAxMCw1MjAxMSw1MjAxMiw1MjAxMyw1MjAxNCw1MjAxNSw1MjAxNiw1MjAxNyw1MjAxOCw1MjAxOSw1MjAyMCw1MjAyMSw1MjAyMiw1MjAyMyw1MjAyNCw1MjAyNSw1MjAyNiw1MjAyNyw1MjAyOCw1MjAyOSw1MjAzMCw1MjAzMSw1MjAzMiw1MjAzNCw1''@;'; + put 'put ''MjAzNSw1MjAzNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjAzNyw1MjAzOCw1MjAzOSw1MjA0Miw1MjA0Myw1MjA0NSw1MjA0Niw1MjA0Nyw1MjA0OSw1MjA1MCw1MjA1MSw1MjA1Miw1MjA1Myw1MjA1NCw1MjA1NSw1MjA1OCw1MjA1OSw1MjA2MCw1MjA2Miw1MjA2Myw1MjA2''@;'; + put 'put ''NCw1MjA2NSw1MjA2Niw1MjA2Nyw1MjA2OSw1MjA3MCw1MjA3MSw1MjA3Miw1MjA3Myw1MjA3NCw1MjA3NSw1MjA3NiwxMzIwNSwxMzIwNiwxMzIwNyw4NDY3LDEzMjA4LDEzMjUyLDEzMjE5LDEzMjIwLDEzMjIxLDEzMjIyLDEzMjA5LDEzMjEwLDEzMjExLDEzMjEyLDEzMjEzLDEzMjE0LDEz''@;'; + put 'put ''MjE1LDEzMjE2LDEzMjE3LDEzMjE4LDEzMjU4LDEzMTk3LDEzMTk4LDEzMTk5LDEzMjYzLDEzMTkyLDEzMTkzLDEzMjU2LDEzMjIzLDEzMjI0LDEzMjMyLDEzMjMzLDEzMjM0LDEzMjM1LDEzMjM2LDEzMjM3LDEzMjM4LDEzMjM5LDEzMjQwLDEzMjQxLDEzMTg0LDEzMTg1LDEzMTg2LDEzMTg3''@;'; + put 'put ''LDEzMTg4LDEzMjQyLDEzMjQzLDEzMjQ0LDEzMjQ1LDEzMjQ2LDEzMjQ3LDEzMjAwLDEzMjAxLDEzMjAyLDEzMjAzLDEzMjA0LDg0ODYsMTMyNDgsMTMyNDksMTMxOTQsMTMxOTUsMTMxOTYsMTMyNzAsMTMyNTMsMTMyMjksMTMyMzAsMTMyMzEsMTMyNzUsMTMyMjUsMTMyMjYsMTMyMjcsMTMy''@;'; + put 'put ''MjgsMTMyNzcsMTMyNjQsMTMyNjcsMTMyNTEsMTMyNTcsMTMyNzYsMTMyNTQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTIwNzcsNTIwNzgsNTIwNzksNTIwODAsNTIwODEsNTIwODIsNTIwODMsNTIw''@;'; + put 'put ''ODQsNTIwODUsNTIwODYsNTIwODcsNTIwOTAsNTIwOTEsNTIwOTIsNTIwOTMsNTIwOTQsNTIwOTUsNTIwOTYsNTIwOTcsNTIwOTgsNTIwOTksNTIxMDAsNTIxMDEsNTIxMDIsNTIxMDMsNTIxMDQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTIxMDUsNTIxMDYsNTIxMDcsNTIxMDgs''@;'; + put 'put ''NTIxMDksNTIxMTAsNTIxMTEsNTIxMTIsNTIxMTMsNTIxMTQsNTIxMTUsNTIxMTYsNTIxMTcsNTIxMTgsNTIxMTksNTIxMjAsNTIxMjEsNTIxMjIsNTIxMjMsNTIxMjUsNTIxMjYsNTIxMjcsNTIxMjgsNTIxMjksNTIxMzAsNTIxMzEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTIx''@;'; + put 'put ''MzIsNTIxMzMsNTIxMzQsNTIxMzUsNTIxMzYsNTIxMzcsNTIxMzgsNTIxMzksNTIxNDAsNTIxNDEsNTIxNDIsNTIxNDMsNTIxNDQsNTIxNDUsNTIxNDYsNTIxNDcsNTIxNDgsNTIxNDksNTIxNTAsNTIxNTEsNTIxNTMsNTIxNTQsNTIxNTUsNTIxNTYsNTIxNTcsNTIxNTgsNTIxNTksNTIxNjAs''@;'; + put 'put ''NTIxNjEsNTIxNjIsNTIxNjMsNTIxNjQsMTk4LDIwOCwxNzAsMjk0LG51bGwsMzA2LG51bGwsMzE5LDMyMSwyMTYsMzM4LDE4NiwyMjIsMzU4LDMzMCxudWxsLDEyODk2LDEyODk3LDEyODk4LDEyODk5LDEyOTAwLDEyOTAxLDEyOTAyLDEyOTAzLDEyOTA0LDEyOTA1LDEyOTA2LDEyOTA3LDEy''@;'; + put 'put ''OTA4LDEyOTA5LDEyOTEwLDEyOTExLDEyOTEyLDEyOTEzLDEyOTE0LDEyOTE1LDEyOTE2LDEyOTE3LDEyOTE4LDEyOTE5LDEyOTIwLDEyOTIxLDEyOTIyLDEyOTIzLDk0MjQsOTQyNSw5NDI2LDk0MjcsOTQyOCw5NDI5LDk0MzAsOTQzMSw5NDMyLDk0MzMsOTQzNCw5NDM1LDk0MzYsOTQzNyw5''@;'; + put 'put ''NDM4LDk0MzksOTQ0MCw5NDQxLDk0NDIsOTQ0Myw5NDQ0LDk0NDUsOTQ0Niw5NDQ3LDk0NDgsOTQ0OSw5MzEyLDkzMTMsOTMxNCw5MzE1LDkzMTYsOTMxNyw5MzE4LDkzMTksOTMyMCw5MzIxLDkzMjIsOTMyMyw5MzI0LDkzMjUsOTMyNiwxODksODUzMSw4NTMyLDE4OCwxOTAsODUzOSw4NTQw''@;'; + put 'put ''LDg1NDEsODU0Miw1MjE2NSw1MjE2Niw1MjE2Nyw1MjE2OCw1MjE2OSw1MjE3MCw1MjE3MSw1MjE3Miw1MjE3Myw1MjE3NCw1MjE3NSw1MjE3Niw1MjE3Nyw1MjE3OCw1MjE3OSw1MjE4MSw1MjE4Miw1MjE4Myw1MjE4NCw1MjE4NSw1MjE4Niw1MjE4Nyw1MjE4OCw1MjE4OSw1MjE5MCw1MjE5''@;'; + put 'put ''MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjE5Miw1MjE5Myw1MjE5NCw1MjE5NSw1MjE5Nyw1MjE5OCw1MjIwMCw1MjIwMiw1MjIwMyw1MjIwNCw1MjIwNSw1MjIwNiw1MjIwNyw1MjIwOCw1MjIwOSw1MjIxMCw1MjIxMSw1MjIxMiw1MjIxMyw1MjIxNCw1MjIxNSw1MjIxNiw1''@;'; + put 'put ''MjIxNyw1MjIxOCw1MjIxOSw1MjIyMCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjIyMSw1MjIyMiw1MjIyMyw1MjIyNCw1MjIyNSw1MjIyNiw1MjIyNyw1MjIyOCw1MjIyOSw1MjIzMCw1MjIzMSw1MjIzMiw1MjIzMyw1MjIzNCw1MjIzNSw1MjIzOCw1MjIzOSw1MjI0MSw1MjI0''@;'; + put 'put ''Miw1MjI0Myw1MjI0NSw1MjI0Niw1MjI0Nyw1MjI0OCw1MjI0OSw1MjI1MCw1MjI1MSw1MjI1NCw1MjI1NSw1MjI1Niw1MjI1OSw1MjI2MCwyMzAsMjczLDI0MCwyOTUsMzA1LDMwNywzMTIsMzIwLDMyMiwyNDgsMzM5LDIyMywyNTQsMzU5LDMzMSwzMjksMTI4MDAsMTI4MDEsMTI4MDIsMTI4''@;'; + put 'put ''MDMsMTI4MDQsMTI4MDUsMTI4MDYsMTI4MDcsMTI4MDgsMTI4MDksMTI4MTAsMTI4MTEsMTI4MTIsMTI4MTMsMTI4MTQsMTI4MTUsMTI4MTYsMTI4MTcsMTI4MTgsMTI4MTksMTI4MjAsMTI4MjEsMTI4MjIsMTI4MjMsMTI4MjQsMTI4MjUsMTI4MjYsMTI4MjcsOTM3Miw5MzczLDkzNzQsOTM3''@;'; + put 'put ''NSw5Mzc2LDkzNzcsOTM3OCw5Mzc5LDkzODAsOTM4MSw5MzgyLDkzODMsOTM4NCw5Mzg1LDkzODYsOTM4Nyw5Mzg4LDkzODksOTM5MCw5MzkxLDkzOTIsOTM5Myw5Mzk0LDkzOTUsOTM5Niw5Mzk3LDkzMzIsOTMzMyw5MzM0LDkzMzUsOTMzNiw5MzM3LDkzMzgsOTMzOSw5MzQwLDkzNDEsOTM0''@;'; + put 'put ''Miw5MzQzLDkzNDQsOTM0NSw5MzQ2LDE4NSwxNzgsMTc5LDgzMDgsODMxOSw4MzIxLDgzMjIsODMyMyw4MzI0LDUyMjYxLDUyMjYyLDUyMjY2LDUyMjY3LDUyMjY5LDUyMjcxLDUyMjczLDUyMjc0LDUyMjc1LDUyMjc2LDUyMjc3LDUyMjc4LDUyMjc5LDUyMjgyLDUyMjg3LDUyMjg4LDUyMjg5''@;'; + put 'put ''LDUyMjkwLDUyMjkxLDUyMjk0LDUyMjk1LDUyMjk3LDUyMjk4LDUyMjk5LDUyMzAxLDUyMzAyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMzAzLDUyMzA0LDUyMzA1LDUyMzA2LDUyMzA3LDUyMzEwLDUyMzE0LDUyMzE1LDUyMzE2LDUyMzE3LDUyMzE4LDUyMzE5LDUyMzIxLDUy''@;'; + put 'put ''MzIyLDUyMzIzLDUyMzI1LDUyMzI3LDUyMzI5LDUyMzMwLDUyMzMxLDUyMzMyLDUyMzMzLDUyMzM0LDUyMzM1LDUyMzM3LDUyMzM4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMzM5LDUyMzQwLDUyMzQyLDUyMzQzLDUyMzQ0LDUyMzQ1LDUyMzQ2LDUyMzQ3LDUyMzQ4LDUyMzQ5''@;'; + put 'put ''LDUyMzUwLDUyMzUxLDUyMzUyLDUyMzUzLDUyMzU0LDUyMzU1LDUyMzU2LDUyMzU3LDUyMzU4LDUyMzU5LDUyMzYwLDUyMzYxLDUyMzYyLDUyMzYzLDUyMzY0LDUyMzY1LDUyMzY2LDUyMzY3LDUyMzY4LDUyMzY5LDUyMzcwLDUyMzcxLDEyMzUzLDEyMzU0LDEyMzU1LDEyMzU2LDEyMzU3LDEy''@;'; + put 'put ''MzU4LDEyMzU5LDEyMzYwLDEyMzYxLDEyMzYyLDEyMzYzLDEyMzY0LDEyMzY1LDEyMzY2LDEyMzY3LDEyMzY4LDEyMzY5LDEyMzcwLDEyMzcxLDEyMzcyLDEyMzczLDEyMzc0LDEyMzc1LDEyMzc2LDEyMzc3LDEyMzc4LDEyMzc5LDEyMzgwLDEyMzgxLDEyMzgyLDEyMzgzLDEyMzg0LDEyMzg1''@;'; + put 'put ''LDEyMzg2LDEyMzg3LDEyMzg4LDEyMzg5LDEyMzkwLDEyMzkxLDEyMzkyLDEyMzkzLDEyMzk0LDEyMzk1LDEyMzk2LDEyMzk3LDEyMzk4LDEyMzk5LDEyNDAwLDEyNDAxLDEyNDAyLDEyNDAzLDEyNDA0LDEyNDA1LDEyNDA2LDEyNDA3LDEyNDA4LDEyNDA5LDEyNDEwLDEyNDExLDEyNDEyLDEy''@;'; + put 'put ''NDEzLDEyNDE0LDEyNDE1LDEyNDE2LDEyNDE3LDEyNDE4LDEyNDE5LDEyNDIwLDEyNDIxLDEyNDIyLDEyNDIzLDEyNDI0LDEyNDI1LDEyNDI2LDEyNDI3LDEyNDI4LDEyNDI5LDEyNDMwLDEyNDMxLDEyNDMyLDEyNDMzLDEyNDM0LDEyNDM1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjM3Miw1MjM3Myw1MjM3NCw1MjM3NSw1MjM3OCw1MjM3OSw1MjM4MSw1MjM4Miw1MjM4Myw1MjM4NSw1MjM4Niw1MjM4Nyw1MjM4OCw1MjM4OSw1MjM5MCw1MjM5MSw1MjM5NCw1MjM5OCw1MjM5OSw1MjQwMCw1MjQwMSw1MjQwMiw1MjQwMyw1''@;'; + put 'put ''MjQwNiw1MjQwNyw1MjQwOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjQxMCw1MjQxMSw1MjQxMyw1MjQxNCw1MjQxNSw1MjQxNiw1MjQxNyw1MjQxOCw1MjQxOSw1MjQyMiw1MjQyNCw1MjQyNiw1MjQyNyw1MjQyOCw1MjQyOSw1MjQzMCw1MjQzMSw1MjQzMyw1MjQzNCw1MjQz''@;'; + put 'put ''NSw1MjQzNyw1MjQzOCw1MjQzOSw1MjQ0MCw1MjQ0MSw1MjQ0MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjQ0Myw1MjQ0NCw1MjQ0NSw1MjQ0Niw1MjQ0Nyw1MjQ0OCw1MjQ0OSw1MjQ1MCw1MjQ1MSw1MjQ1Myw1MjQ1NCw1MjQ1NSw1MjQ1Niw1MjQ1Nyw1MjQ1OCw1MjQ1OSw1''@;'; + put 'put ''MjQ2MSw1MjQ2Miw1MjQ2Myw1MjQ2NSw1MjQ2Niw1MjQ2Nyw1MjQ2OCw1MjQ2OSw1MjQ3MCw1MjQ3MSw1MjQ3Miw1MjQ3Myw1MjQ3NCw1MjQ3NSw1MjQ3Niw1MjQ3NywxMjQ0OSwxMjQ1MCwxMjQ1MSwxMjQ1MiwxMjQ1MywxMjQ1NCwxMjQ1NSwxMjQ1NiwxMjQ1NywxMjQ1OCwxMjQ1OSwxMjQ2''@;'; + put 'put ''MCwxMjQ2MSwxMjQ2MiwxMjQ2MywxMjQ2NCwxMjQ2NSwxMjQ2NiwxMjQ2NywxMjQ2OCwxMjQ2OSwxMjQ3MCwxMjQ3MSwxMjQ3MiwxMjQ3MywxMjQ3NCwxMjQ3NSwxMjQ3NiwxMjQ3NywxMjQ3OCwxMjQ3OSwxMjQ4MCwxMjQ4MSwxMjQ4MiwxMjQ4MywxMjQ4NCwxMjQ4NSwxMjQ4NiwxMjQ4Nywx''@;'; + put 'put ''MjQ4OCwxMjQ4OSwxMjQ5MCwxMjQ5MSwxMjQ5MiwxMjQ5MywxMjQ5NCwxMjQ5NSwxMjQ5NiwxMjQ5NywxMjQ5OCwxMjQ5OSwxMjUwMCwxMjUwMSwxMjUwMiwxMjUwMywxMjUwNCwxMjUwNSwxMjUwNiwxMjUwNywxMjUwOCwxMjUwOSwxMjUxMCwxMjUxMSwxMjUxMiwxMjUxMywxMjUxNCwxMjUx''@;'; + put 'put ''NSwxMjUxNiwxMjUxNywxMjUxOCwxMjUxOSwxMjUyMCwxMjUyMSwxMjUyMiwxMjUyMywxMjUyNCwxMjUyNSwxMjUyNiwxMjUyNywxMjUyOCwxMjUyOSwxMjUzMCwxMjUzMSwxMjUzMiwxMjUzMywxMjUzNCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI0NzgsNTI0''@;'; + put 'put ''NzksNTI0ODAsNTI0ODIsNTI0ODMsNTI0ODQsNTI0ODUsNTI0ODYsNTI0ODcsNTI0OTAsNTI0OTEsNTI0OTMsNTI0OTQsNTI0OTUsNTI0OTcsNTI0OTgsNTI0OTksNTI1MDAsNTI1MDEsNTI1MDIsNTI1MDMsNTI1MDYsNTI1MDgsNTI1MTAsNTI1MTEsNTI1MTIsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsNTI1MTMsNTI1MTQsNTI1MTUsNTI1MTcsNTI1MTgsNTI1MTksNTI1MjEsNTI1MjIsNTI1MjMsNTI1MjUsNTI1MjYsNTI1MjcsNTI1MjgsNTI1MjksNTI1MzAsNTI1MzEsNTI1MzIsNTI1MzMsNTI1MzQsNTI1MzUsNTI1MzYsNTI1MzgsNTI1MzksNTI1NDAsNTI1NDEsNTI1''@;'; + put 'put ''NDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI1NDMsNTI1NDQsNTI1NDUsNTI1NDYsNTI1NDcsNTI1NDgsNTI1NDksNTI1NTAsNTI1NTEsNTI1NTIsNTI1NTMsNTI1NTQsNTI1NTUsNTI1NTYsNTI1NTcsNTI1NTgsNTI1NTksNTI1NjAsNTI1NjEsNTI1NjIsNTI1NjMsNTI1NjQs''@;'; + put 'put ''NTI1NjUsNTI1NjYsNTI1NjcsNTI1NjgsNTI1NjksNTI1NzAsNTI1NzEsNTI1NzMsNTI1NzQsNTI1NzUsMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTAyNSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTks''@;'; + put 'put ''MTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcs''@;'; + put 'put ''MTEwNSwxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDExMDMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjU3Nyw1MjU3OCw1MjU3OSw1MjU4MSw1MjU4Miw1MjU4Myw1MjU4NCw1MjU4NSw1MjU4Niw1MjU4Nyw1MjU5MCw1MjU5Miw1MjU5NCw1MjU5NSw1MjU5Niw1MjU5Nyw1MjU5OCw1MjU5OSw1MjYwMSw1MjYwMiw1MjYwMyw1MjYw''@;'; + put 'put ''NCw1MjYwNSw1MjYwNiw1MjYwNyw1MjYwOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjYwOSw1MjYxMCw1MjYxMSw1MjYxMiw1MjYxMyw1MjYxNCw1MjYxNSw1MjYxNyw1MjYxOCw1MjYxOSw1MjYyMCw1MjYyMSw1MjYyMiw1MjYyMyw1MjYyNCw1MjYyNSw1MjYyNiw1MjYyNyw1''@;'; + put 'put ''MjYzMCw1MjYzMSw1MjYzMyw1MjYzNCw1MjYzNSw1MjYzNyw1MjYzOCw1MjYzOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjY0MCw1MjY0MSw1MjY0Miw1MjY0Myw1MjY0Niw1MjY0OCw1MjY1MCw1MjY1MSw1MjY1Miw1MjY1Myw1MjY1NCw1MjY1NSw1MjY1Nyw1MjY1OCw1MjY1''@;'; + put 'put ''OSw1MjY2MCw1MjY2MSw1MjY2Miw1MjY2Myw1MjY2NCw1MjY2NSw1MjY2Niw1MjY2Nyw1MjY2OCw1MjY2OSw1MjY3MCw1MjY3MSw1MjY3Miw1MjY3Myw1MjY3NCw1MjY3NSw1MjY3NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNjc4LDUyNjc5LDUyNjgwLDUyNjgxLDUyNjgyLDUyNjgzLDUyNjg1LDUyNjg2LDUyNjg3LDUyNjg5LDUyNjkwLDUyNjkxLDUyNjkyLDUyNjkzLDUy''@;'; + put 'put ''Njk0LDUyNjk1LDUyNjk2LDUyNjk3LDUyNjk4LDUyNjk5LDUyNzAwLDUyNzAxLDUyNzAyLDUyNzAzLDUyNzA0LDUyNzA1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNzA2LDUyNzA3LDUyNzA4LDUyNzA5LDUyNzEwLDUyNzExLDUyNzEzLDUyNzE0LDUyNzE1LDUyNzE3LDUyNzE4''@;'; + put 'put ''LDUyNzE5LDUyNzIxLDUyNzIyLDUyNzIzLDUyNzI0LDUyNzI1LDUyNzI2LDUyNzI3LDUyNzMwLDUyNzMyLDUyNzM0LDUyNzM1LDUyNzM2LDUyNzM3LDUyNzM4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNzM5LDUyNzQxLDUyNzQyLDUyNzQzLDUyNzQ1LDUyNzQ2LDUyNzQ3LDUy''@;'; + put 'put ''NzQ5LDUyNzUwLDUyNzUxLDUyNzUyLDUyNzUzLDUyNzU0LDUyNzU1LDUyNzU3LDUyNzU4LDUyNzU5LDUyNzYwLDUyNzYyLDUyNzYzLDUyNzY0LDUyNzY1LDUyNzY2LDUyNzY3LDUyNzcwLDUyNzcxLDUyNzczLDUyNzc0LDUyNzc1LDUyNzc3LDUyNzc4LDUyNzc5LG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI3ODAsNTI3ODEsNTI3ODIsNTI3ODMsNTI3ODYsNTI3ODgsNTI3OTAs''@;'; + put 'put ''NTI3OTEsNTI3OTIsNTI3OTMsNTI3OTQsNTI3OTUsNTI3OTYsNTI3OTcsNTI3OTgsNTI3OTksNTI4MDAsNTI4MDEsNTI4MDIsNTI4MDMsNTI4MDQsNTI4MDUsNTI4MDYsNTI4MDcsNTI4MDgsNTI4MDksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI4MTAsNTI4MTEsNTI4MTIsNTI4''@;'; + put 'put ''MTMsNTI4MTQsNTI4MTUsNTI4MTYsNTI4MTcsNTI4MTgsNTI4MTksNTI4MjAsNTI4MjEsNTI4MjIsNTI4MjMsNTI4MjYsNTI4MjcsNTI4MjksNTI4MzAsNTI4MzQsNTI4MzUsNTI4MzYsNTI4MzcsNTI4MzgsNTI4MzksNTI4NDIsNTI4NDQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''NTI4NDYsNTI4NDcsNTI4NDgsNTI4NDksNTI4NTAsNTI4NTEsNTI4NTQsNTI4NTUsNTI4NTcsNTI4NTgsNTI4NTksNTI4NjEsNTI4NjIsNTI4NjMsNTI4NjQsNTI4NjUsNTI4NjYsNTI4NjcsNTI4NzAsNTI4NzIsNTI4NzQsNTI4NzUsNTI4NzYsNTI4NzcsNTI4NzgsNTI4NzksNTI4ODIsNTI4''@;'; + put 'put ''ODMsNTI4ODUsNTI4ODYsNTI4ODcsNTI4ODksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCw1Mjg5MCw1Mjg5MSw1Mjg5Miw1Mjg5Myw1Mjg5NCw1Mjg5NSw1Mjg5OCw1MjkwMiw1MjkwMyw1MjkwNCw1MjkwNSw1MjkwNiw1MjkwNyw1MjkxMCw1MjkxMSw1MjkxMiw1MjkxMyw1MjkxNCw1MjkxNSw1MjkxNiw1MjkxNyw1MjkxOCw1MjkxOSw1MjkyMCw1MjkyMSw1MjkyMixudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjkyMyw1MjkyNCw1MjkyNSw1MjkyNiw1MjkyNyw1MjkyOCw1MjkzMCw1MjkzMSw1MjkzMiw1MjkzMyw1MjkzNCw1MjkzNSw1MjkzNiw1MjkzNyw1MjkzOCw1MjkzOSw1Mjk0MCw1Mjk0MSw1Mjk0Miw1Mjk0Myw1Mjk0NCw1Mjk0NSw1Mjk0Niw1Mjk0''@;'; + put 'put ''Nyw1Mjk0OCw1Mjk0OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mjk1MCw1Mjk1MSw1Mjk1Miw1Mjk1Myw1Mjk1NCw1Mjk1NSw1Mjk1Niw1Mjk1Nyw1Mjk1OCw1Mjk1OSw1Mjk2MCw1Mjk2MSw1Mjk2Miw1Mjk2Myw1Mjk2Niw1Mjk2Nyw1Mjk2OSw1Mjk3MCw1Mjk3Myw1Mjk3NCw1''@;'; + put 'put ''Mjk3NSw1Mjk3Niw1Mjk3Nyw1Mjk3OCw1Mjk3OSw1Mjk4Miw1Mjk4Niw1Mjk4Nyw1Mjk4OCw1Mjk4OSw1Mjk5MCw1Mjk5MSw0NDAzMiw0NDAzMyw0NDAzNiw0NDAzOSw0NDA0MCw0NDA0MSw0NDA0Miw0NDA0OCw0NDA0OSw0NDA1MCw0NDA1MSw0NDA1Miw0NDA1Myw0NDA1NCw0NDA1NSw0NDA1''@;'; + put 'put ''Nyw0NDA1OCw0NDA1OSw0NDA2MCw0NDA2MSw0NDA2NCw0NDA2OCw0NDA3Niw0NDA3Nyw0NDA3OSw0NDA4MCw0NDA4MSw0NDA4OCw0NDA4OSw0NDA5Miw0NDA5Niw0NDEwNyw0NDEwOSw0NDExNiw0NDEyMCw0NDEyNCw0NDE0NCw0NDE0NSw0NDE0OCw0NDE1MSw0NDE1Miw0NDE1NCw0NDE2MCw0''@;'; + put 'put ''NDE2MSw0NDE2Myw0NDE2NCw0NDE2NSw0NDE2Niw0NDE2OSw0NDE3MCw0NDE3MSw0NDE3Miw0NDE3Niw0NDE4MCw0NDE4OCw0NDE4OSw0NDE5MSw0NDE5Miw0NDE5Myw0NDIwMCw0NDIwMSw0NDIwMiw0NDIwNCw0NDIwNyw0NDIwOCw0NDIxNiw0NDIxNyw0NDIxOSw0NDIyMCw0NDIyMSw0NDIy''@;'; + put 'put ''NSw0NDIyOCw0NDIzMiw0NDIzNiw0NDI0NSw0NDI0Nyw0NDI1Niw0NDI1Nyw0NDI2MCw0NDI2Myw0NDI2NCw0NDI2Niw0NDI2OCw0NDI3MSw0NDI3Miw0NDI3Myw0NDI3NSw0NDI3Nyw0NDI3OCw0NDI4NCw0NDI4NSw0NDI4OCw0NDI5Miw0NDI5NCw1Mjk5NCw1Mjk5NSw1Mjk5Nyw1Mjk5OCw1''@;'; + put 'put ''Mjk5OSw1MzAwMSw1MzAwMiw1MzAwMyw1MzAwNCw1MzAwNSw1MzAwNiw1MzAwNyw1MzAxMCw1MzAxMiw1MzAxNCw1MzAxNSw1MzAxNiw1MzAxNyw1MzAxOCw1MzAxOSw1MzAyMSw1MzAyMiw1MzAyMyw1MzAyNSw1MzAyNiw1MzAyNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzAy''@;'; + put 'put ''OSw1MzAzMCw1MzAzMSw1MzAzMiw1MzAzMyw1MzAzNCw1MzAzNSw1MzAzOCw1MzA0Miw1MzA0Myw1MzA0NCw1MzA0NSw1MzA0Niw1MzA0Nyw1MzA0OSw1MzA1MCw1MzA1MSw1MzA1Miw1MzA1Myw1MzA1NCw1MzA1NSw1MzA1Niw1MzA1Nyw1MzA1OCw1MzA1OSw1MzA2MCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCw1MzA2MSw1MzA2Miw1MzA2Myw1MzA2NCw1MzA2NSw1MzA2Niw1MzA2Nyw1MzA2OCw1MzA2OSw1MzA3MCw1MzA3MSw1MzA3Miw1MzA3Myw1MzA3NCw1MzA3NSw1MzA3OCw1MzA3OSw1MzA4MSw1MzA4Miw1MzA4Myw1MzA4NSw1MzA4Niw1MzA4Nyw1MzA4OCw1MzA4''@;'; + put 'put ''OSw1MzA5MCw1MzA5MSw1MzA5NCw1MzA5Niw1MzA5OCw1MzA5OSw1MzEwMCw0NDMwMCw0NDMwMSw0NDMwMyw0NDMwNSw0NDMxMiw0NDMxNiw0NDMyMCw0NDMyOSw0NDMzMiw0NDMzMyw0NDM0MCw0NDM0MSw0NDM0NCw0NDM0OCw0NDM1Niw0NDM1Nyw0NDM1OSw0NDM2MSw0NDM2OCw0NDM3Miw0''@;'; + put 'put ''NDM3Niw0NDM4NSw0NDM4Nyw0NDM5Niw0NDM5Nyw0NDQwMCw0NDQwMyw0NDQwNCw0NDQwNSw0NDQwNiw0NDQxMSw0NDQxMiw0NDQxMyw0NDQxNSw0NDQxNyw0NDQxOCw0NDQyNCw0NDQyNSw0NDQyOCw0NDQzMiw0NDQ0NCw0NDQ0NSw0NDQ1Miw0NDQ3MSw0NDQ4MCw0NDQ4MSw0NDQ4NCw0NDQ4''@;'; + put 'put ''OCw0NDQ5Niw0NDQ5Nyw0NDQ5OSw0NDUwOCw0NDUxMiw0NDUxNiw0NDUzNiw0NDUzNyw0NDU0MCw0NDU0Myw0NDU0NCw0NDU0NSw0NDU1Miw0NDU1Myw0NDU1NSw0NDU1Nyw0NDU2NCw0NDU5Miw0NDU5Myw0NDU5Niw0NDU5OSw0NDYwMCw0NDYwMiw0NDYwOCw0NDYwOSw0NDYxMSw0NDYxMyw0''@;'; + put 'put ''NDYxNCw0NDYxOCw0NDYyMCw0NDYyMSw0NDYyMiw0NDYyNCw0NDYyOCw0NDYzMCw0NDYzNiw0NDYzNyw0NDYzOSw0NDY0MCw0NDY0MSw0NDY0NSw0NDY0OCw0NDY0OSw0NDY1Miw0NDY1Niw0NDY2NCw1MzEwMSw1MzEwMiw1MzEwMyw1MzEwNiw1MzEwNyw1MzEwOSw1MzExMCw1MzExMSw1MzEx''@;'; + put 'put ''Myw1MzExNCw1MzExNSw1MzExNiw1MzExNyw1MzExOCw1MzExOSw1MzEyMSw1MzEyMiw1MzEyMyw1MzEyNCw1MzEyNiw1MzEyNyw1MzEyOCw1MzEyOSw1MzEzMCw1MzEzMSw1MzEzMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzEzNCw1MzEzNSw1MzEzNiw1MzEzNyw1MzEzOCw1''@;'; + put 'put ''MzEzOSw1MzE0MCw1MzE0MSw1MzE0Miw1MzE0Myw1MzE0NCw1MzE0NSw1MzE0Niw1MzE0Nyw1MzE0OCw1MzE0OSw1MzE1MCw1MzE1MSw1MzE1Miw1MzE1NCw1MzE1NSw1MzE1Niw1MzE1Nyw1MzE1OCw1MzE1OSw1MzE2MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzE2Miw1MzE2''@;'; + put 'put ''Myw1MzE2NCw1MzE2NSw1MzE2Niw1MzE2Nyw1MzE2OSw1MzE3MCw1MzE3MSw1MzE3Miw1MzE3Myw1MzE3NCw1MzE3NSw1MzE3Niw1MzE3Nyw1MzE3OCw1MzE3OSw1MzE4MCw1MzE4MSw1MzE4Miw1MzE4Myw1MzE4NCw1MzE4NSw1MzE4Niw1MzE4Nyw1MzE4OSw1MzE5MCw1MzE5MSw1MzE5Miw1''@;'; + put 'put ''MzE5Myw1MzE5NCw1MzE5NSw0NDY2NSw0NDY2Nyw0NDY2OCw0NDY2OSw0NDY3Niw0NDY3Nyw0NDY4NCw0NDczMiw0NDczMyw0NDczNCw0NDczNiw0NDc0MCw0NDc0OCw0NDc0OSw0NDc1MSw0NDc1Miw0NDc1Myw0NDc2MCw0NDc2MSw0NDc2NCw0NDc3Niw0NDc3OSw0NDc4MSw0NDc4OCw0NDc5''@;'; + put 'put ''Miw0NDc5Niw0NDgwNyw0NDgwOCw0NDgxMyw0NDgxNiw0NDg0NCw0NDg0NSw0NDg0OCw0NDg1MCw0NDg1Miw0NDg2MCw0NDg2MSw0NDg2Myw0NDg2NSw0NDg2Niw0NDg2Nyw0NDg3Miw0NDg3Myw0NDg4MCw0NDg5Miw0NDg5Myw0NDkwMCw0NDkwMSw0NDkyMSw0NDkyOCw0NDkzMiw0NDkzNiw0''@;'; + put 'put ''NDk0NCw0NDk0NSw0NDk0OSw0NDk1Niw0NDk4NCw0NDk4NSw0NDk4OCw0NDk5Miw0NDk5OSw0NWUzLDQ1MDAxLDQ1MDAzLDQ1MDA1LDQ1MDA2LDQ1MDEyLDQ1MDIwLDQ1MDMyLDQ1MDMzLDQ1MDQwLDQ1MDQxLDQ1MDQ0LDQ1MDQ4LDQ1MDU2LDQ1MDU3LDQ1MDYwLDQ1MDY4LDQ1MDcyLDQ1MDc2''@;'; + put 'put ''LDQ1MDg0LDQ1MDg1LDQ1MDk2LDQ1MTI0LDQ1MTI1LDQ1MTI4LDQ1MTMwLDQ1MTMyLDQ1MTM0LDQ1MTM5LDQ1MTQwLDQ1MTQxLDQ1MTQzLDQ1MTQ1LDUzMTk2LDUzMTk3LDUzMTk4LDUzMTk5LDUzMjAwLDUzMjAxLDUzMjAyLDUzMjAzLDUzMjA0LDUzMjA1LDUzMjA2LDUzMjA3LDUzMjA4LDUz''@;'; + put 'put ''MjA5LDUzMjEwLDUzMjExLDUzMjEyLDUzMjEzLDUzMjE0LDUzMjE1LDUzMjE4LDUzMjE5LDUzMjIxLDUzMjIyLDUzMjIzLDUzMjI1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMjI2LDUzMjI3LDUzMjI4LDUzMjI5LDUzMjMwLDUzMjMxLDUzMjM0LDUzMjM2LDUzMjM4LDUzMjM5''@;'; + put 'put ''LDUzMjQwLDUzMjQxLDUzMjQyLDUzMjQzLDUzMjQ1LDUzMjQ2LDUzMjQ3LDUzMjQ5LDUzMjUwLDUzMjUxLDUzMjUzLDUzMjU0LDUzMjU1LDUzMjU2LDUzMjU3LDUzMjU4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMjU5LDUzMjYwLDUzMjYxLDUzMjYyLDUzMjYzLDUzMjY0LDUz''@;'; + put 'put ''MjY2LDUzMjY3LDUzMjY4LDUzMjY5LDUzMjcwLDUzMjcxLDUzMjczLDUzMjc0LDUzMjc1LDUzMjc2LDUzMjc3LDUzMjc4LDUzMjc5LDUzMjgwLDUzMjgxLDUzMjgyLDUzMjgzLDUzMjg0LDUzMjg1LDUzMjg2LDUzMjg3LDUzMjg4LDUzMjg5LDUzMjkwLDUzMjkxLDUzMjkyLDQ1MTQ5LDQ1MTgw''@;'; + put 'put ''LDQ1MTgxLDQ1MTg0LDQ1MTg4LDQ1MTk2LDQ1MTk3LDQ1MTk5LDQ1MjAxLDQ1MjA4LDQ1MjA5LDQ1MjEwLDQ1MjEyLDQ1MjE1LDQ1MjE2LDQ1MjE3LDQ1MjE4LDQ1MjI0LDQ1MjI1LDQ1MjI3LDQ1MjI4LDQ1MjI5LDQ1MjMwLDQ1MjMxLDQ1MjMzLDQ1MjM1LDQ1MjM2LDQ1MjM3LDQ1MjQwLDQ1''@;'; + put 'put ''MjQ0LDQ1MjUyLDQ1MjUzLDQ1MjU1LDQ1MjU2LDQ1MjU3LDQ1MjY0LDQ1MjY1LDQ1MjY4LDQ1MjcyLDQ1MjgwLDQ1Mjg1LDQ1MzIwLDQ1MzIxLDQ1MzIzLDQ1MzI0LDQ1MzI4LDQ1MzMwLDQ1MzMxLDQ1MzM2LDQ1MzM3LDQ1MzM5LDQ1MzQwLDQ1MzQxLDQ1MzQ3LDQ1MzQ4LDQ1MzQ5LDQ1MzUy''@;'; + put 'put ''LDQ1MzU2LDQ1MzY0LDQ1MzY1LDQ1MzY3LDQ1MzY4LDQ1MzY5LDQ1Mzc2LDQ1Mzc3LDQ1MzgwLDQ1Mzg0LDQ1MzkyLDQ1MzkzLDQ1Mzk2LDQ1Mzk3LDQ1NDAwLDQ1NDA0LDQ1NDA4LDQ1NDMyLDQ1NDMzLDQ1NDM2LDQ1NDQwLDQ1NDQyLDQ1NDQ4LDQ1NDQ5LDQ1NDUxLDQ1NDUzLDQ1NDU4LDQ1''@;'; + put 'put ''NDU5LDQ1NDYwLDQ1NDY0LDQ1NDY4LDQ1NDgwLDQ1NTE2LDQ1NTIwLDQ1NTI0LDQ1NTMyLDQ1NTMzLDUzMjk0LDUzMjk1LDUzMjk2LDUzMjk3LDUzMjk4LDUzMjk5LDUzMzAyLDUzMzAzLDUzMzA1LDUzMzA2LDUzMzA3LDUzMzA5LDUzMzEwLDUzMzExLDUzMzEyLDUzMzEzLDUzMzE0LDUzMzE1''@;'; + put 'put ''LDUzMzE4LDUzMzIwLDUzMzIyLDUzMzIzLDUzMzI0LDUzMzI1LDUzMzI2LDUzMzI3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMzI5LDUzMzMwLDUzMzMxLDUzMzMzLDUzMzM0LDUzMzM1LDUzMzM3LDUzMzM4LDUzMzM5LDUzMzQwLDUzMzQxLDUzMzQyLDUzMzQzLDUzMzQ1LDUz''@;'; + put 'put ''MzQ2LDUzMzQ3LDUzMzQ4LDUzMzQ5LDUzMzUwLDUzMzUxLDUzMzUyLDUzMzUzLDUzMzU0LDUzMzU1LDUzMzU4LDUzMzU5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMzYxLDUzMzYyLDUzMzYzLDUzMzY1LDUzMzY2LDUzMzY3LDUzMzY4LDUzMzY5LDUzMzcwLDUzMzcxLDUzMzc0''@;'; + put 'put ''LDUzMzc1LDUzMzc2LDUzMzc4LDUzMzc5LDUzMzgwLDUzMzgxLDUzMzgyLDUzMzgzLDUzMzg0LDUzMzg1LDUzMzg2LDUzMzg3LDUzMzg4LDUzMzg5LDUzMzkwLDUzMzkxLDUzMzkyLDUzMzkzLDUzMzk0LDUzMzk1LDUzMzk2LDQ1NTM1LDQ1NTQ0LDQ1NTQ1LDQ1NTQ4LDQ1NTUyLDQ1NTYxLDQ1''@;'; + put 'put ''NTYzLDQ1NTY1LDQ1NTcyLDQ1NTczLDQ1NTc2LDQ1NTc5LDQ1NTgwLDQ1NTg4LDQ1NTg5LDQ1NTkxLDQ1NTkzLDQ1NjAwLDQ1NjIwLDQ1NjI4LDQ1NjU2LDQ1NjYwLDQ1NjY0LDQ1NjcyLDQ1NjczLDQ1Njg0LDQ1Njg1LDQ1NjkyLDQ1NzAwLDQ1NzAxLDQ1NzA1LDQ1NzEyLDQ1NzEzLDQ1NzE2''@;'; + put 'put ''LDQ1NzIwLDQ1NzIxLDQ1NzIyLDQ1NzI4LDQ1NzI5LDQ1NzMxLDQ1NzMzLDQ1NzM0LDQ1NzM4LDQ1NzQwLDQ1NzQ0LDQ1NzQ4LDQ1NzY4LDQ1NzY5LDQ1NzcyLDQ1Nzc2LDQ1Nzc4LDQ1Nzg0LDQ1Nzg1LDQ1Nzg3LDQ1Nzg5LDQ1Nzk0LDQ1Nzk2LDQ1Nzk3LDQ1Nzk4LDQ1ODAwLDQ1ODAzLDQ1''@;'; + put 'put ''ODA0LDQ1ODA1LDQ1ODA2LDQ1ODA3LDQ1ODExLDQ1ODEyLDQ1ODEzLDQ1ODE1LDQ1ODE2LDQ1ODE3LDQ1ODE4LDQ1ODE5LDQ1ODIzLDQ1ODI0LDQ1ODI1LDQ1ODI4LDQ1ODMyLDQ1ODQwLDQ1ODQxLDQ1ODQzLDQ1ODQ0LDQ1ODQ1LDQ1ODUyLDQ1OTA4LDQ1OTA5LDQ1OTEwLDQ1OTEyLDQ1OTE1''@;'; + put 'put ''LDQ1OTE2LDQ1OTE4LDQ1OTE5LDQ1OTI0LDQ1OTI1LDUzMzk3LDUzMzk4LDUzMzk5LDUzNDAwLDUzNDAxLDUzNDAyLDUzNDAzLDUzNDA0LDUzNDA1LDUzNDA2LDUzNDA3LDUzNDA4LDUzNDA5LDUzNDEwLDUzNDExLDUzNDE0LDUzNDE1LDUzNDE3LDUzNDE4LDUzNDE5LDUzNDIxLDUzNDIyLDUz''@;'; + put 'put ''NDIzLDUzNDI0LDUzNDI1LDUzNDI2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzNDI3LDUzNDMwLDUzNDMyLDUzNDM0LDUzNDM1LDUzNDM2LDUzNDM3LDUzNDM4LDUzNDM5LDUzNDQyLDUzNDQzLDUzNDQ1LDUzNDQ2LDUzNDQ3LDUzNDUwLDUzNDUxLDUzNDUyLDUzNDUzLDUzNDU0''@;'; + put 'put ''LDUzNDU1LDUzNDU4LDUzNDYyLDUzNDYzLDUzNDY0LDUzNDY1LDUzNDY2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzNDY3LDUzNDcwLDUzNDcxLDUzNDczLDUzNDc0LDUzNDc1LDUzNDc3LDUzNDc4LDUzNDc5LDUzNDgwLDUzNDgxLDUzNDgyLDUzNDgzLDUzNDg2LDUzNDkwLDUz''@;'; + put 'put ''NDkxLDUzNDkyLDUzNDkzLDUzNDk0LDUzNDk1LDUzNDk3LDUzNDk4LDUzNDk5LDUzNTAwLDUzNTAxLDUzNTAyLDUzNTAzLDUzNTA0LDUzNTA1LDUzNTA2LDUzNTA3LDUzNTA4LDQ1OTI3LDQ1OTI5LDQ1OTMxLDQ1OTM0LDQ1OTM2LDQ1OTM3LDQ1OTQwLDQ1OTQ0LDQ1OTUyLDQ1OTUzLDQ1OTU1''@;'; + put 'put ''LDQ1OTU2LDQ1OTU3LDQ1OTY0LDQ1OTY4LDQ1OTcyLDQ1OTg0LDQ1OTg1LDQ1OTkyLDQ1OTk2LDQ2MDIwLDQ2MDIxLDQ2MDI0LDQ2MDI3LDQ2MDI4LDQ2MDMwLDQ2MDMyLDQ2MDM2LDQ2MDM3LDQ2MDM5LDQ2MDQxLDQ2MDQzLDQ2MDQ1LDQ2MDQ4LDQ2MDUyLDQ2MDU2LDQ2MDc2LDQ2MDk2LDQ2''@;'; + put 'put ''MTA0LDQ2MTA4LDQ2MTEyLDQ2MTIwLDQ2MTIxLDQ2MTIzLDQ2MTMyLDQ2MTYwLDQ2MTYxLDQ2MTY0LDQ2MTY4LDQ2MTc2LDQ2MTc3LDQ2MTc5LDQ2MTgxLDQ2MTg4LDQ2MjA4LDQ2MjE2LDQ2MjM3LDQ2MjQ0LDQ2MjQ4LDQ2MjUyLDQ2MjYxLDQ2MjYzLDQ2MjY1LDQ2MjcyLDQ2Mjc2LDQ2Mjgw''@;'; + put 'put ''LDQ2Mjg4LDQ2MjkzLDQ2MzAwLDQ2MzAxLDQ2MzA0LDQ2MzA3LDQ2MzA4LDQ2MzEwLDQ2MzE2LDQ2MzE3LDQ2MzE5LDQ2MzIxLDQ2MzI4LDQ2MzU2LDQ2MzU3LDQ2MzYwLDQ2MzYzLDQ2MzY0LDQ2MzcyLDQ2MzczLDQ2Mzc1LDQ2Mzc2LDQ2Mzc3LDQ2Mzc4LDQ2Mzg0LDQ2Mzg1LDQ2Mzg4LDQ2''@;'; + put 'put ''MzkyLDUzNTA5LDUzNTEwLDUzNTExLDUzNTEyLDUzNTEzLDUzNTE0LDUzNTE1LDUzNTE2LDUzNTE4LDUzNTE5LDUzNTIwLDUzNTIxLDUzNTIyLDUzNTIzLDUzNTI0LDUzNTI1LDUzNTI2LDUzNTI3LDUzNTI4LDUzNTI5LDUzNTMwLDUzNTMxLDUzNTMyLDUzNTMzLDUzNTM0LDUzNTM1LG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzNTM2LDUzNTM3LDUzNTM4LDUzNTM5LDUzNTQwLDUzNTQxLDUzNTQyLDUzNTQzLDUzNTQ0LDUzNTQ1LDUzNTQ2LDUzNTQ3LDUzNTQ4LDUzNTQ5LDUzNTUwLDUzNTUxLDUzNTU0LDUzNTU1LDUzNTU3LDUzNTU4LDUzNTU5LDUzNTYxLDUzNTYzLDUz''@;'; + put 'put ''NTY0LDUzNTY1LDUzNTY2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzNTY3LDUzNTcwLDUzNTc0LDUzNTc1LDUzNTc2LDUzNTc3LDUzNTc4LDUzNTc5LDUzNTgyLDUzNTgzLDUzNTg1LDUzNTg2LDUzNTg3LDUzNTg5LDUzNTkwLDUzNTkxLDUzNTkyLDUzNTkzLDUzNTk0LDUzNTk1''@;'; + put 'put ''LDUzNTk4LDUzNjAwLDUzNjAyLDUzNjAzLDUzNjA0LDUzNjA1LDUzNjA2LDUzNjA3LDUzNjA5LDUzNjEwLDUzNjExLDUzNjEzLDQ2NDAwLDQ2NDAxLDQ2NDAzLDQ2NDA0LDQ2NDA1LDQ2NDExLDQ2NDEyLDQ2NDEzLDQ2NDE2LDQ2NDIwLDQ2NDI4LDQ2NDI5LDQ2NDMxLDQ2NDMyLDQ2NDMzLDQ2''@;'; + put 'put ''NDk2LDQ2NDk3LDQ2NTAwLDQ2NTA0LDQ2NTA2LDQ2NTA3LDQ2NTEyLDQ2NTEzLDQ2NTE1LDQ2NTE2LDQ2NTE3LDQ2NTIzLDQ2NTI0LDQ2NTI1LDQ2NTI4LDQ2NTMyLDQ2NTQwLDQ2NTQxLDQ2NTQzLDQ2NTQ0LDQ2NTQ1LDQ2NTUyLDQ2NTcyLDQ2NjA4LDQ2NjA5LDQ2NjEyLDQ2NjE2LDQ2NjI5''@;'; + put 'put ''LDQ2NjM2LDQ2NjQ0LDQ2NjY0LDQ2NjkyLDQ2Njk2LDQ2NzQ4LDQ2NzQ5LDQ2NzUyLDQ2NzU2LDQ2NzYzLDQ2NzY0LDQ2NzY5LDQ2ODA0LDQ2ODMyLDQ2ODM2LDQ2ODQwLDQ2ODQ4LDQ2ODQ5LDQ2ODUzLDQ2ODg4LDQ2ODg5LDQ2ODkyLDQ2ODk1LDQ2ODk2LDQ2OTA0LDQ2OTA1LDQ2OTA3LDQ2''@;'; + put 'put ''OTE2LDQ2OTIwLDQ2OTI0LDQ2OTMyLDQ2OTMzLDQ2OTQ0LDQ2OTQ4LDQ2OTUyLDQ2OTYwLDQ2OTYxLDQ2OTYzLDQ2OTY1LDQ2OTcyLDQ2OTczLDQ2OTc2LDQ2OTgwLDQ2OTg4LDQ2OTg5LDQ2OTkxLDQ2OTkyLDQ2OTkzLDQ2OTk0LDQ2OTk4LDQ2OTk5LDUzNjE0LDUzNjE1LDUzNjE2LDUzNjE3''@;'; + put 'put ''LDUzNjE4LDUzNjE5LDUzNjIwLDUzNjIxLDUzNjIyLDUzNjIzLDUzNjI0LDUzNjI1LDUzNjI2LDUzNjI3LDUzNjI5LDUzNjMwLDUzNjMxLDUzNjMyLDUzNjMzLDUzNjM0LDUzNjM1LDUzNjM3LDUzNjM4LDUzNjM5LDUzNjQxLDUzNjQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUz''@;'; + put 'put ''NjQzLDUzNjQ0LDUzNjQ1LDUzNjQ2LDUzNjQ3LDUzNjQ4LDUzNjQ5LDUzNjUwLDUzNjUxLDUzNjUyLDUzNjUzLDUzNjU0LDUzNjU1LDUzNjU2LDUzNjU3LDUzNjU4LDUzNjU5LDUzNjYwLDUzNjYxLDUzNjYyLDUzNjYzLDUzNjY2LDUzNjY3LDUzNjY5LDUzNjcwLDUzNjcxLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLDUzNjczLDUzNjc0LDUzNjc1LDUzNjc2LDUzNjc3LDUzNjc4LDUzNjc5LDUzNjgyLDUzNjg0LDUzNjg2LDUzNjg3LDUzNjg4LDUzNjg5LDUzNjkxLDUzNjkzLDUzNjk0LDUzNjk1LDUzNjk3LDUzNjk4LDUzNjk5LDUzNzAwLDUzNzAxLDUzNzAyLDUzNzAzLDUz''@;'; + put 'put ''NzA0LDUzNzA1LDUzNzA2LDUzNzA3LDUzNzA4LDUzNzA5LDUzNzEwLDUzNzExLDQ3ZTMsNDcwMDEsNDcwMDQsNDcwMDgsNDcwMTYsNDcwMTcsNDcwMTksNDcwMjAsNDcwMjEsNDcwMjgsNDcwMjksNDcwMzIsNDcwNDcsNDcwNDksNDcwODQsNDcwODUsNDcwODgsNDcwOTIsNDcxMDAsNDcxMDEs''@;'; + put 'put ''NDcxMDMsNDcxMDQsNDcxMDUsNDcxMTEsNDcxMTIsNDcxMTMsNDcxMTYsNDcxMjAsNDcxMjgsNDcxMjksNDcxMzEsNDcxMzMsNDcxNDAsNDcxNDEsNDcxNDQsNDcxNDgsNDcxNTYsNDcxNTcsNDcxNTksNDcxNjAsNDcxNjEsNDcxNjgsNDcxNzIsNDcxODUsNDcxODcsNDcxOTYsNDcxOTcsNDcy''@;'; + put 'put ''MDAsNDcyMDQsNDcyMTIsNDcyMTMsNDcyMTUsNDcyMTcsNDcyMjQsNDcyMjgsNDcyNDUsNDcyNzIsNDcyODAsNDcyODQsNDcyODgsNDcyOTYsNDcyOTcsNDcyOTksNDczMDEsNDczMDgsNDczMTIsNDczMTYsNDczMjUsNDczMjcsNDczMjksNDczMzYsNDczMzcsNDczNDAsNDczNDQsNDczNTIs''@;'; + put 'put ''NDczNTMsNDczNTUsNDczNTcsNDczNjQsNDczODQsNDczOTIsNDc0MjAsNDc0MjEsNDc0MjQsNDc0MjgsNDc0MzYsNDc0MzksNDc0NDEsNDc0NDgsNDc0NDksNDc0NTIsNDc0NTYsNDc0NjQsNDc0NjUsNTM3MTIsNTM3MTMsNTM3MTQsNTM3MTUsNTM3MTYsNTM3MTcsNTM3MTgsNTM3MTksNTM3''@;'; + put 'put ''MjEsNTM3MjIsNTM3MjMsNTM3MjQsNTM3MjUsNTM3MjYsNTM3MjcsNTM3MjgsNTM3MjksNTM3MzAsNTM3MzEsNTM3MzIsNTM3MzMsNTM3MzQsNTM3MzUsNTM3MzYsNTM3MzcsNTM3MzgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM3MzksNTM3NDAsNTM3NDEsNTM3NDIsNTM3NDMs''@;'; + put 'put ''NTM3NDQsNTM3NDUsNTM3NDYsNTM3NDcsNTM3NDksNTM3NTAsNTM3NTEsNTM3NTMsNTM3NTQsNTM3NTUsNTM3NTYsNTM3NTcsNTM3NTgsNTM3NTksNTM3NjAsNTM3NjEsNTM3NjIsNTM3NjMsNTM3NjQsNTM3NjUsNTM3NjYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM3NjgsNTM3''@;'; + put 'put ''NzAsNTM3NzEsNTM3NzIsNTM3NzMsNTM3NzQsNTM3NzUsNTM3NzcsNTM3NzgsNTM3NzksNTM3ODAsNTM3ODEsNTM3ODIsNTM3ODMsNTM3ODQsNTM3ODUsNTM3ODYsNTM3ODcsNTM3ODgsNTM3ODksNTM3OTAsNTM3OTEsNTM3OTIsNTM3OTMsNTM3OTQsNTM3OTUsNTM3OTYsNTM3OTcsNTM3OTgs''@;'; + put 'put ''NTM3OTksNTM4MDAsNTM4MDEsNDc0NjcsNDc0NjksNDc0NzYsNDc0NzcsNDc0ODAsNDc0ODQsNDc0OTIsNDc0OTMsNDc0OTUsNDc0OTcsNDc0OTgsNDc1MDEsNDc1MDIsNDc1MzIsNDc1MzMsNDc1MzYsNDc1NDAsNDc1NDgsNDc1NDksNDc1NTEsNDc1NTMsNDc1NjAsNDc1NjEsNDc1NjQsNDc1''@;'; + put 'put ''NjYsNDc1NjcsNDc1NjgsNDc1NjksNDc1NzAsNDc1NzYsNDc1NzcsNDc1NzksNDc1ODEsNDc1ODIsNDc1ODUsNDc1ODcsNDc1ODgsNDc1ODksNDc1OTIsNDc1OTYsNDc2MDQsNDc2MDUsNDc2MDcsNDc2MDgsNDc2MDksNDc2MTAsNDc2MTYsNDc2MTcsNDc2MjQsNDc2MzcsNDc2NzIsNDc2NzMs''@;'; + put 'put ''NDc2NzYsNDc2ODAsNDc2ODIsNDc2ODgsNDc2ODksNDc2OTEsNDc2OTMsNDc2OTQsNDc2OTksNDc3MDAsNDc3MDEsNDc3MDQsNDc3MDgsNDc3MTYsNDc3MTcsNDc3MTksNDc3MjAsNDc3MjEsNDc3MjgsNDc3MjksNDc3MzIsNDc3MzYsNDc3NDcsNDc3NDgsNDc3NDksNDc3NTEsNDc3NTYsNDc3''@;'; + put 'put ''ODQsNDc3ODUsNDc3ODcsNDc3ODgsNDc3OTIsNDc3OTQsNDc4MDAsNDc4MDEsNDc4MDMsNDc4MDUsNDc4MTIsNDc4MTYsNDc4MzIsNDc4MzMsNDc4NjgsNTM4MDIsNTM4MDMsNTM4MDYsNTM4MDcsNTM4MDksNTM4MTAsNTM4MTEsNTM4MTMsNTM4MTQsNTM4MTUsNTM4MTYsNTM4MTcsNTM4MTgs''@;'; + put 'put ''NTM4MTksNTM4MjIsNTM4MjQsNTM4MjYsNTM4MjcsNTM4MjgsNTM4MjksNTM4MzAsNTM4MzEsNTM4MzMsNTM4MzQsNTM4MzUsNTM4MzYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM4MzcsNTM4MzgsNTM4MzksNTM4NDAsNTM4NDEsNTM4NDIsNTM4NDMsNTM4NDQsNTM4NDUsNTM4''@;'; + put 'put ''NDYsNTM4NDcsNTM4NDgsNTM4NDksNTM4NTAsNTM4NTEsNTM4NTMsNTM4NTQsNTM4NTUsNTM4NTYsNTM4NTcsNTM4NTgsNTM4NTksNTM4NjEsNTM4NjIsNTM4NjMsNTM4NjQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM4NjUsNTM4NjYsNTM4NjcsNTM4NjgsNTM4NjksNTM4NzAs''@;'; + put 'put ''NTM4NzEsNTM4NzIsNTM4NzMsNTM4NzQsNTM4NzUsNTM4NzYsNTM4NzcsNTM4NzgsNTM4NzksNTM4ODAsNTM4ODEsNTM4ODIsNTM4ODMsNTM4ODQsNTM4ODUsNTM4ODYsNTM4ODcsNTM4OTAsNTM4OTEsNTM4OTMsNTM4OTQsNTM4OTUsNTM4OTcsNTM4OTgsNTM4OTksNTM5MDAsNDc4NzIsNDc4''@;'; + put 'put ''NzYsNDc4ODUsNDc4ODcsNDc4ODksNDc4OTYsNDc5MDAsNDc5MDQsNDc5MTMsNDc5MTUsNDc5MjQsNDc5MjUsNDc5MjYsNDc5MjgsNDc5MzEsNDc5MzIsNDc5MzMsNDc5MzQsNDc5NDAsNDc5NDEsNDc5NDMsNDc5NDUsNDc5NDksNDc5NTEsNDc5NTIsNDc5NTYsNDc5NjAsNDc5NjksNDc5NzEs''@;'; + put 'put ''NDc5ODAsNDgwMDgsNDgwMTIsNDgwMTYsNDgwMzYsNDgwNDAsNDgwNDQsNDgwNTIsNDgwNTUsNDgwNjQsNDgwNjgsNDgwNzIsNDgwODAsNDgwODMsNDgxMjAsNDgxMjEsNDgxMjQsNDgxMjcsNDgxMjgsNDgxMzAsNDgxMzYsNDgxMzcsNDgxMzksNDgxNDAsNDgxNDEsNDgxNDMsNDgxNDUsNDgx''@;'; + put 'put ''NDgsNDgxNDksNDgxNTAsNDgxNTEsNDgxNTIsNDgxNTUsNDgxNTYsNDgxNTcsNDgxNTgsNDgxNTksNDgxNjQsNDgxNjUsNDgxNjcsNDgxNjksNDgxNzMsNDgxNzYsNDgxNzcsNDgxODAsNDgxODQsNDgxOTIsNDgxOTMsNDgxOTUsNDgxOTYsNDgxOTcsNDgyMDEsNDgyMDQsNDgyMDUsNDgyMDgs''@;'; + put 'put ''NDgyMjEsNDgyNjAsNDgyNjEsNDgyNjQsNDgyNjcsNDgyNjgsNDgyNzAsNDgyNzYsNDgyNzcsNDgyNzksNTM5MDEsNTM5MDIsNTM5MDMsNTM5MDYsNTM5MDcsNTM5MDgsNTM5MTAsNTM5MTEsNTM5MTIsNTM5MTMsNTM5MTQsNTM5MTUsNTM5MTcsNTM5MTgsNTM5MTksNTM5MjEsNTM5MjIsNTM5''@;'; + put 'put ''MjMsNTM5MjUsNTM5MjYsNTM5MjcsNTM5MjgsNTM5MjksNTM5MzAsNTM5MzEsNTM5MzMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM5MzQsNTM5MzUsNTM5MzYsNTM5MzgsNTM5MzksNTM5NDAsNTM5NDEsNTM5NDIsNTM5NDMsNTM5NDYsNTM5NDcsNTM5NDksNTM5NTAsNTM5NTMs''@;'; + put 'put ''NTM5NTUsNTM5NTYsNTM5NTcsNTM5NTgsNTM5NTksNTM5NjIsNTM5NjQsNTM5NjUsNTM5NjYsNTM5NjcsNTM5NjgsNTM5NjksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM5NzAsNTM5NzEsNTM5NzMsNTM5NzQsNTM5NzUsNTM5NzcsNTM5NzgsNTM5NzksNTM5ODEsNTM5ODIsNTM5''@;'; + put 'put ''ODMsNTM5ODQsNTM5ODUsNTM5ODYsNTM5ODcsNTM5OTAsNTM5OTEsNTM5OTIsNTM5OTMsNTM5OTQsNTM5OTUsNTM5OTYsNTM5OTcsNTM5OTgsNTM5OTksNTQwMDIsNTQwMDMsNTQwMDUsNTQwMDYsNTQwMDcsNTQwMDksNTQwMTAsNDgyODEsNDgyODIsNDgyODgsNDgyODksNDgyOTIsNDgyOTUs''@;'; + put 'put ''NDgyOTYsNDgzMDQsNDgzMDUsNDgzMDcsNDgzMDgsNDgzMDksNDgzMTYsNDgzMTcsNDgzMjAsNDgzMjQsNDgzMzMsNDgzMzUsNDgzMzYsNDgzMzcsNDgzNDEsNDgzNDQsNDgzNDgsNDgzNzIsNDgzNzMsNDgzNzQsNDgzNzYsNDgzODAsNDgzODgsNDgzODksNDgzOTEsNDgzOTMsNDg0MDAsNDg0''@;'; + put 'put ''MDQsNDg0MjAsNDg0MjgsNDg0NDgsNDg0NTYsNDg0NTcsNDg0NjAsNDg0NjQsNDg0NzIsNDg0NzMsNDg0ODQsNDg0ODgsNDg1MTIsNDg1MTMsNDg1MTYsNDg1MTksNDg1MjAsNDg1MjEsNDg1MjIsNDg1MjgsNDg1MjksNDg1MzEsNDg1MzMsNDg1MzcsNDg1MzgsNDg1NDAsNDg1NDgsNDg1NjAs''@;'; + put 'put ''NDg1NjgsNDg1OTYsNDg1OTcsNDg2MDAsNDg2MDQsNDg2MTcsNDg2MjQsNDg2MjgsNDg2MzIsNDg2NDAsNDg2NDMsNDg2NDUsNDg2NTIsNDg2NTMsNDg2NTYsNDg2NjAsNDg2NjgsNDg2NjksNDg2NzEsNDg3MDgsNDg3MDksNDg3MTIsNDg3MTYsNDg3MTgsNDg3MjQsNDg3MjUsNDg3MjcsNDg3''@;'; + put 'put ''MjksNDg3MzAsNDg3MzEsNDg3MzYsNDg3MzcsNDg3NDAsNTQwMTEsNTQwMTIsNTQwMTMsNTQwMTQsNTQwMTUsNTQwMTgsNTQwMjAsNTQwMjIsNTQwMjMsNTQwMjQsNTQwMjUsNTQwMjYsNTQwMjcsNTQwMzEsNTQwMzMsNTQwMzQsNTQwMzUsNTQwMzcsNTQwMzksNTQwNDAsNTQwNDEsNTQwNDIs''@;'; + put 'put ''NTQwNDMsNTQwNDYsNTQwNTAsNTQwNTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQwNTIsNTQwNTQsNTQwNTUsNTQwNTgsNTQwNTksNTQwNjEsNTQwNjIsNTQwNjMsNTQwNjUsNTQwNjYsNTQwNjcsNTQwNjgsNTQwNjksNTQwNzAsNTQwNzEsNTQwNzQsNTQwNzgsNTQwNzksNTQw''@;'; + put 'put ''ODAsNTQwODEsNTQwODIsNTQwODMsNTQwODYsNTQwODcsNTQwODgsNTQwODksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQwOTAsNTQwOTEsNTQwOTIsNTQwOTMsNTQwOTQsNTQwOTUsNTQwOTYsNTQwOTcsNTQwOTgsNTQwOTksNTQxMDAsNTQxMDEsNTQxMDIsNTQxMDMsNTQxMDQs''@;'; + put 'put ''NTQxMDUsNTQxMDYsNTQxMDcsNTQxMDgsNTQxMDksNTQxMTAsNTQxMTEsNTQxMTIsNTQxMTMsNTQxMTQsNTQxMTUsNTQxMTYsNTQxMTcsNTQxMTgsNTQxMTksNTQxMjAsNTQxMjEsNDg3NDQsNDg3NDYsNDg3NTIsNDg3NTMsNDg3NTUsNDg3NTYsNDg3NTcsNDg3NjMsNDg3NjQsNDg3NjUsNDg3''@;'; + put 'put ''NjgsNDg3NzIsNDg3ODAsNDg3ODEsNDg3ODMsNDg3ODQsNDg3ODUsNDg3OTIsNDg3OTMsNDg4MDgsNDg4NDgsNDg4NDksNDg4NTIsNDg4NTUsNDg4NTYsNDg4NjQsNDg4NjcsNDg4NjgsNDg4NjksNDg4NzYsNDg4OTcsNDg5MDQsNDg5MDUsNDg5MjAsNDg5MjEsNDg5MjMsNDg5MjQsNDg5MjUs''@;'; + put 'put ''NDg5NjAsNDg5NjEsNDg5NjQsNDg5NjgsNDg5NzYsNDg5NzcsNDg5ODEsNDkwNDQsNDkwNzIsNDkwOTMsNDkxMDAsNDkxMDEsNDkxMDQsNDkxMDgsNDkxMTYsNDkxMTksNDkxMjEsNDkyMTIsNDkyMzMsNDkyNDAsNDkyNDQsNDkyNDgsNDkyNTYsNDkyNTcsNDkyOTYsNDkyOTcsNDkzMDAsNDkz''@;'; + put 'put ''MDQsNDkzMTIsNDkzMTMsNDkzMTUsNDkzMTcsNDkzMjQsNDkzMjUsNDkzMjcsNDkzMjgsNDkzMzEsNDkzMzIsNDkzMzMsNDkzMzQsNDkzNDAsNDkzNDEsNDkzNDMsNDkzNDQsNDkzNDUsNDkzNDksNDkzNTIsNDkzNTMsNDkzNTYsNDkzNjAsNDkzNjgsNDkzNjksNDkzNzEsNDkzNzIsNDkzNzMs''@;'; + put 'put ''NDkzODAsNTQxMjIsNTQxMjMsNTQxMjQsNTQxMjUsNTQxMjYsNTQxMjcsNTQxMjgsNTQxMjksNTQxMzAsNTQxMzEsNTQxMzIsNTQxMzMsNTQxMzQsNTQxMzUsNTQxMzYsNTQxMzcsNTQxMzgsNTQxMzksNTQxNDIsNTQxNDMsNTQxNDUsNTQxNDYsNTQxNDcsNTQxNDksNTQxNTAsNTQxNTEsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQxNTIsNTQxNTMsNTQxNTQsNTQxNTUsNTQxNTgsNTQxNjIsNTQxNjMsNTQxNjQsNTQxNjUsNTQxNjYsNTQxNjcsNTQxNzAsNTQxNzEsNTQxNzMsNTQxNzQsNTQxNzUsNTQxNzcsNTQxNzgsNTQxNzksNTQxODAsNTQxODEsNTQxODIsNTQxODMs''@;'; + put 'put ''NTQxODYsNTQxODgsNTQxOTAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQxOTEsNTQxOTIsNTQxOTMsNTQxOTQsNTQxOTUsNTQxOTcsNTQxOTgsNTQxOTksNTQyMDEsNTQyMDIsNTQyMDMsNTQyMDUsNTQyMDYsNTQyMDcsNTQyMDgsNTQyMDksNTQyMTAsNTQyMTEsNTQyMTQsNTQy''@;'; + put 'put ''MTUsNTQyMTgsNTQyMTksNTQyMjAsNTQyMjEsNTQyMjIsNTQyMjMsNTQyMjUsNTQyMjYsNTQyMjcsNTQyMjgsNTQyMjksNTQyMzAsNDkzODEsNDkzODQsNDkzODgsNDkzOTYsNDkzOTcsNDkzOTksNDk0MDEsNDk0MDgsNDk0MTIsNDk0MTYsNDk0MjQsNDk0MjksNDk0MzYsNDk0MzcsNDk0Mzgs''@;'; + put 'put ''NDk0MzksNDk0NDAsNDk0NDMsNDk0NDQsNDk0NDYsNDk0NDcsNDk0NTIsNDk0NTMsNDk0NTUsNDk0NTYsNDk0NTcsNDk0NjIsNDk0NjQsNDk0NjUsNDk0NjgsNDk0NzIsNDk0ODAsNDk0ODEsNDk0ODMsNDk0ODQsNDk0ODUsNDk0OTIsNDk0OTMsNDk0OTYsNDk1MDAsNDk1MDgsNDk1MDksNDk1''@;'; + put 'put ''MTEsNDk1MTIsNDk1MTMsNDk1MjAsNDk1MjQsNDk1MjgsNDk1NDEsNDk1NDgsNDk1NDksNDk1NTAsNDk1NTIsNDk1NTYsNDk1NTgsNDk1NjQsNDk1NjUsNDk1NjcsNDk1NjksNDk1NzMsNDk1NzYsNDk1NzcsNDk1ODAsNDk1ODQsNDk1OTcsNDk2MDQsNDk2MDgsNDk2MTIsNDk2MjAsNDk2MjMs''@;'; + put 'put ''NDk2MjQsNDk2MzIsNDk2MzYsNDk2NDAsNDk2NDgsNDk2NDksNDk2NTEsNDk2NjAsNDk2NjEsNDk2NjQsNDk2NjgsNDk2NzYsNDk2NzcsNDk2NzksNDk2ODEsNDk2ODgsNDk2ODksNDk2OTIsNDk2OTUsNDk2OTYsNDk3MDQsNDk3MDUsNDk3MDcsNDk3MDksNTQyMzEsNTQyMzMsNTQyMzQsNTQy''@;'; + put 'put ''MzUsNTQyMzYsNTQyMzcsNTQyMzgsNTQyMzksNTQyNDAsNTQyNDIsNTQyNDQsNTQyNDUsNTQyNDYsNTQyNDcsNTQyNDgsNTQyNDksNTQyNTAsNTQyNTEsNTQyNTQsNTQyNTUsNTQyNTcsNTQyNTgsNTQyNTksNTQyNjEsNTQyNjIsNTQyNjMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''NTQyNjQsNTQyNjUsNTQyNjYsNTQyNjcsNTQyNzAsNTQyNzIsNTQyNzQsNTQyNzUsNTQyNzYsNTQyNzcsNTQyNzgsNTQyNzksNTQyODEsNTQyODIsNTQyODMsNTQyODQsNTQyODUsNTQyODYsNTQyODcsNTQyODgsNTQyODksNTQyOTAsNTQyOTEsNTQyOTIsNTQyOTMsNTQyOTQsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsNTQyOTUsNTQyOTYsNTQyOTcsNTQyOTgsNTQyOTksNTQzMDAsNTQzMDIsNTQzMDMsNTQzMDQsNTQzMDUsNTQzMDYsNTQzMDcsNTQzMDgsNTQzMDksNTQzMTAsNTQzMTEsNTQzMTIsNTQzMTMsNTQzMTQsNTQzMTUsNTQzMTYsNTQzMTcsNTQzMTgsNTQzMTks''@;'; + put 'put ''NTQzMjAsNTQzMjEsNTQzMjIsNTQzMjMsNTQzMjQsNTQzMjUsNTQzMjYsNTQzMjcsNDk3MTEsNDk3MTMsNDk3MTQsNDk3MTYsNDk3MzYsNDk3NDQsNDk3NDUsNDk3NDgsNDk3NTIsNDk3NjAsNDk3NjUsNDk3NzIsNDk3NzMsNDk3NzYsNDk3ODAsNDk3ODgsNDk3ODksNDk3OTEsNDk3OTMsNDk4''@;'; + put 'put ''MDAsNDk4MDEsNDk4MDgsNDk4MTYsNDk4MTksNDk4MjEsNDk4MjgsNDk4MjksNDk4MzIsNDk4MzYsNDk4MzcsNDk4NDQsNDk4NDUsNDk4NDcsNDk4NDksNDk4ODQsNDk4ODUsNDk4ODgsNDk4OTEsNDk4OTIsNDk4OTksNDk5MDAsNDk5MDEsNDk5MDMsNDk5MDUsNDk5MTAsNDk5MTIsNDk5MTMs''@;'; + put 'put ''NDk5MTUsNDk5MTYsNDk5MjAsNDk5MjgsNDk5MjksNDk5MzIsNDk5MzMsNDk5MzksNDk5NDAsNDk5NDEsNDk5NDQsNDk5NDgsNDk5NTYsNDk5NTcsNDk5NjAsNDk5NjEsNDk5ODksNTAwMjQsNTAwMjUsNTAwMjgsNTAwMzIsNTAwMzQsNTAwNDAsNTAwNDEsNTAwNDQsNTAwNDUsNTAwNTIsNTAw''@;'; + put 'put ''NTYsNTAwNjAsNTAxMTIsNTAxMzYsNTAxMzcsNTAxNDAsNTAxNDMsNTAxNDQsNTAxNDYsNTAxNTIsNTAxNTMsNTAxNTcsNTAxNjQsNTAxNjUsNTAxNjgsNTAxODQsNTAxOTIsNTAyMTIsNTAyMjAsNTAyMjQsNTQzMjgsNTQzMjksNTQzMzAsNTQzMzEsNTQzMzIsNTQzMzMsNTQzMzQsNTQzMzUs''@;'; + put 'put ''NTQzMzcsNTQzMzgsNTQzMzksNTQzNDEsNTQzNDIsNTQzNDMsNTQzNDQsNTQzNDUsNTQzNDYsNTQzNDcsNTQzNDgsNTQzNDksNTQzNTAsNTQzNTEsNTQzNTIsNTQzNTMsNTQzNTQsNTQzNTUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQzNTYsNTQzNTcsNTQzNTgsNTQzNTksNTQz''@;'; + put 'put ''NjAsNTQzNjEsNTQzNjIsNTQzNjMsNTQzNjUsNTQzNjYsNTQzNjcsNTQzNjksNTQzNzAsNTQzNzEsNTQzNzMsNTQzNzQsNTQzNzUsNTQzNzYsNTQzNzcsNTQzNzgsNTQzNzksNTQzODAsNTQzODIsNTQzODQsNTQzODUsNTQzODYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQzODcs''@;'; + put 'put ''NTQzODgsNTQzODksNTQzOTAsNTQzOTEsNTQzOTQsNTQzOTUsNTQzOTcsNTQzOTgsNTQ0MDEsNTQ0MDMsNTQ0MDQsNTQ0MDUsNTQ0MDYsNTQ0MDcsNTQ0MTAsNTQ0MTIsNTQ0MTQsNTQ0MTUsNTQ0MTYsNTQ0MTcsNTQ0MTgsNTQ0MTksNTQ0MjEsNTQ0MjIsNTQ0MjMsNTQ0MjQsNTQ0MjUsNTQ0''@;'; + put 'put ''MjYsNTQ0MjcsNTQ0MjgsNTQ0MjksNTAyMjgsNTAyMzYsNTAyMzcsNTAyNDgsNTAyNzYsNTAyNzcsNTAyODAsNTAyODQsNTAyOTIsNTAyOTMsNTAyOTcsNTAzMDQsNTAzMjQsNTAzMzIsNTAzNjAsNTAzNjQsNTA0MDksNTA0MTYsNTA0MTcsNTA0MjAsNTA0MjQsNTA0MjYsNTA0MzEsNTA0MzIs''@;'; + put 'put ''NTA0MzMsNTA0NDQsNTA0NDgsNTA0NTIsNTA0NjAsNTA0NzIsNTA0NzMsNTA0NzYsNTA0ODAsNTA0ODgsNTA0ODksNTA0OTEsNTA0OTMsNTA1MDAsNTA1MDEsNTA1MDQsNTA1MDUsNTA1MDYsNTA1MDgsNTA1MDksNTA1MTAsNTA1MTUsNTA1MTYsNTA1MTcsNTA1MTksNTA1MjAsNTA1MjEsNTA1''@;'; + put 'put ''MjUsNTA1MjYsNTA1MjgsNTA1MjksNTA1MzIsNTA1MzYsNTA1NDQsNTA1NDUsNTA1NDcsNTA1NDgsNTA1NDksNTA1NTYsNTA1NTcsNTA1NjAsNTA1NjQsNTA1NjcsNTA1NzIsNTA1NzMsNTA1NzUsNTA1NzcsNTA1ODEsNTA1ODMsNTA1ODQsNTA1ODgsNTA1OTIsNTA2MDEsNTA2MTIsNTA2MTMs''@;'; + put 'put ''NTA2MTYsNTA2MTcsNTA2MTksNTA2MjAsNTA2MjEsNTA2MjIsNTA2MjgsNTA2MjksNTA2MzAsNTA2MzEsNTA2MzIsNTA2MzMsNTA2MzQsNTA2MzYsNTA2MzgsNTQ0MzAsNTQ0MzEsNTQ0MzIsNTQ0MzMsNTQ0MzQsNTQ0MzUsNTQ0MzYsNTQ0MzcsNTQ0MzgsNTQ0MzksNTQ0NDAsNTQ0NDIsNTQ0''@;'; + put 'put ''NDMsNTQ0NDQsNTQ0NDUsNTQ0NDYsNTQ0NDcsNTQ0NDgsNTQ0NDksNTQ0NTAsNTQ0NTEsNTQ0NTIsNTQ0NTMsNTQ0NTQsNTQ0NTUsNTQ0NTYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQ0NTcsNTQ0NTgsNTQ0NTksNTQ0NjAsNTQ0NjEsNTQ0NjIsNTQ0NjMsNTQ0NjQsNTQ0NjUs''@;'; + put 'put ''NTQ0NjYsNTQ0NjcsNTQ0NjgsNTQ0NjksNTQ0NzAsNTQ0NzEsNTQ0NzIsNTQ0NzMsNTQ0NzQsNTQ0NzUsNTQ0NzcsNTQ0NzgsNTQ0NzksNTQ0ODEsNTQ0ODIsNTQ0ODMsNTQ0ODUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQ0ODYsNTQ0ODcsNTQ0ODgsNTQ0ODksNTQ0OTAsNTQ0''@;'; + put 'put ''OTEsNTQ0OTMsNTQ0OTQsNTQ0OTYsNTQ0OTcsNTQ0OTgsNTQ0OTksNTQ1MDAsNTQ1MDEsNTQ1MDIsNTQ1MDMsNTQ1MDUsNTQ1MDYsNTQ1MDcsNTQ1MDksNTQ1MTAsNTQ1MTEsNTQ1MTMsNTQ1MTQsNTQ1MTUsNTQ1MTYsNTQ1MTcsNTQ1MTgsNTQ1MTksNTQ1MjEsNTQ1MjIsNTQ1MjQsNTA2NDAs''@;'; + put 'put ''NTA2NDEsNTA2NDQsNTA2NDgsNTA2NTYsNTA2NTcsNTA2NTksNTA2NjEsNTA2NjgsNTA2NjksNTA2NzAsNTA2NzIsNTA2NzYsNTA2NzgsNTA2NzksNTA2ODQsNTA2ODUsNTA2ODYsNTA2ODcsNTA2ODgsNTA2ODksNTA2OTMsNTA2OTQsNTA2OTUsNTA2OTYsNTA3MDAsNTA3MDQsNTA3MTIsNTA3''@;'; + put 'put ''MTMsNTA3MTUsNTA3MTYsNTA3MjQsNTA3MjUsNTA3MjgsNTA3MzIsNTA3MzMsNTA3MzQsNTA3MzYsNTA3MzksNTA3NDAsNTA3NDEsNTA3NDMsNTA3NDUsNTA3NDcsNTA3NTIsNTA3NTMsNTA3NTYsNTA3NjAsNTA3NjgsNTA3NjksNTA3NzEsNTA3NzIsNTA3NzMsNTA3ODAsNTA3ODEsNTA3ODQs''@;'; + put 'put ''NTA3OTYsNTA3OTksNTA4MDEsNTA4MDgsNTA4MDksNTA4MTIsNTA4MTYsNTA4MjQsNTA4MjUsNTA4MjcsNTA4MjksNTA4MzYsNTA4MzcsNTA4NDAsNTA4NDQsNTA4NTIsNTA4NTMsNTA4NTUsNTA4NTcsNTA4NjQsNTA4NjUsNTA4NjgsNTA4NzIsNTA4NzMsNTA4NzQsNTA4ODAsNTA4ODEsNTA4''@;'; + put 'put ''ODMsNTA4ODUsNTA4OTIsNTA4OTMsNTA4OTYsNTA5MDAsNTA5MDgsNTA5MDksNTA5MTIsNTA5MTMsNTA5MjAsNTQ1MjYsNTQ1MjcsNTQ1MjgsNTQ1MjksNTQ1MzAsNTQ1MzEsNTQ1MzMsNTQ1MzQsNTQ1MzUsNTQ1MzcsNTQ1MzgsNTQ1MzksNTQ1NDEsNTQ1NDIsNTQ1NDMsNTQ1NDQsNTQ1NDUs''@;'; + put 'put ''NTQ1NDYsNTQ1NDcsNTQ1NTAsNTQ1NTIsNTQ1NTMsNTQ1NTQsNTQ1NTUsNTQ1NTYsNTQ1NTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQ1NTgsNTQ1NTksNTQ1NjAsNTQ1NjEsNTQ1NjIsNTQ1NjMsNTQ1NjQsNTQ1NjUsNTQ1NjYsNTQ1NjcsNTQ1NjgsNTQ1NjksNTQ1NzAsNTQ1''@;'; + put 'put ''NzEsNTQ1NzIsNTQ1NzMsNTQ1NzQsNTQ1NzUsNTQ1NzYsNTQ1NzcsNTQ1NzgsNTQ1NzksNTQ1ODAsNTQ1ODEsNTQ1ODIsNTQ1ODMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQ1ODQsNTQ1ODUsNTQ1ODYsNTQ1ODcsNTQ1OTAsNTQ1OTEsNTQ1OTMsNTQ1OTQsNTQ1OTUsNTQ1OTcs''@;'; + put 'put ''NTQ1OTgsNTQ1OTksNTQ2MDAsNTQ2MDEsNTQ2MDIsNTQ2MDMsNTQ2MDYsNTQ2MDgsNTQ2MTAsNTQ2MTEsNTQ2MTIsNTQ2MTMsNTQ2MTQsNTQ2MTUsNTQ2MTgsNTQ2MTksNTQ2MjEsNTQ2MjIsNTQ2MjMsNTQ2MjUsNTQ2MjYsNTQ2MjcsNTA5MjEsNTA5MjQsNTA5MjgsNTA5MzYsNTA5MzcsNTA5''@;'; + put 'put ''NDEsNTA5NDgsNTA5NDksNTA5NTIsNTA5NTYsNTA5NjQsNTA5NjUsNTA5NjcsNTA5NjksNTA5NzYsNTA5NzcsNTA5ODAsNTA5ODQsNTA5OTIsNTA5OTMsNTA5OTUsNTA5OTcsNTA5OTksNTEwMDQsNTEwMDUsNTEwMDgsNTEwMTIsNTEwMTgsNTEwMjAsNTEwMjEsNTEwMjMsNTEwMjUsNTEwMjYs''@;'; + put 'put ''NTEwMjcsNTEwMjgsNTEwMjksNTEwMzAsNTEwMzEsNTEwMzIsNTEwMzYsNTEwNDAsNTEwNDgsNTEwNTEsNTEwNjAsNTEwNjEsNTEwNjQsNTEwNjgsNTEwNjksNTEwNzAsNTEwNzUsNTEwNzYsNTEwNzcsNTEwNzksNTEwODAsNTEwODEsNTEwODIsNTEwODYsNTEwODgsNTEwODksNTEwOTIsNTEw''@;'; + put 'put ''OTQsNTEwOTUsNTEwOTYsNTEwOTgsNTExMDQsNTExMDUsNTExMDcsNTExMDgsNTExMDksNTExMTAsNTExMTYsNTExMTcsNTExMjAsNTExMjQsNTExMzIsNTExMzMsNTExMzUsNTExMzYsNTExMzcsNTExNDQsNTExNDUsNTExNDgsNTExNTAsNTExNTIsNTExNjAsNTExNjUsNTExNzIsNTExNzYs''@;'; + put 'put ''NTExODAsNTEyMDAsNTEyMDEsNTEyMDQsNTEyMDgsNTEyMTAsNTQ2MjgsNTQ2MzAsNTQ2MzEsNTQ2MzQsNTQ2MzYsNTQ2MzgsNTQ2MzksNTQ2NDAsNTQ2NDEsNTQ2NDIsNTQ2NDMsNTQ2NDYsNTQ2NDcsNTQ2NDksNTQ2NTAsNTQ2NTEsNTQ2NTMsNTQ2NTQsNTQ2NTUsNTQ2NTYsNTQ2NTcsNTQ2''@;'; + put 'put ''NTgsNTQ2NTksNTQ2NjIsNTQ2NjYsNTQ2NjcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQ2NjgsNTQ2NjksNTQ2NzAsNTQ2NzEsNTQ2NzMsNTQ2NzQsNTQ2NzUsNTQ2NzYsNTQ2NzcsNTQ2NzgsNTQ2NzksNTQ2ODAsNTQ2ODEsNTQ2ODIsNTQ2ODMsNTQ2ODQsNTQ2ODUsNTQ2ODYs''@;'; + put 'put ''NTQ2ODcsNTQ2ODgsNTQ2ODksNTQ2OTAsNTQ2OTEsNTQ2OTIsNTQ2OTQsNTQ2OTUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQ2OTYsNTQ2OTcsNTQ2OTgsNTQ2OTksNTQ3MDAsNTQ3MDEsNTQ3MDIsNTQ3MDMsNTQ3MDQsNTQ3MDUsNTQ3MDYsNTQ3MDcsNTQ3MDgsNTQ3MDksNTQ3''@;'; + put 'put ''MTAsNTQ3MTEsNTQ3MTIsNTQ3MTMsNTQ3MTQsNTQ3MTUsNTQ3MTYsNTQ3MTcsNTQ3MTgsNTQ3MTksNTQ3MjAsNTQ3MjEsNTQ3MjIsNTQ3MjMsNTQ3MjQsNTQ3MjUsNTQ3MjYsNTQ3MjcsNTEyMTYsNTEyMTcsNTEyMTksNTEyMjEsNTEyMjIsNTEyMjgsNTEyMjksNTEyMzIsNTEyMzYsNTEyNDQs''@;'; + put 'put ''NTEyNDUsNTEyNDcsNTEyNDksNTEyNTYsNTEyNjAsNTEyNjQsNTEyNzIsNTEyNzMsNTEyNzYsNTEyNzcsNTEyODQsNTEzMTIsNTEzMTMsNTEzMTYsNTEzMjAsNTEzMjIsNTEzMjgsNTEzMjksNTEzMzEsNTEzMzMsNTEzMzQsNTEzMzUsNTEzMzksNTEzNDAsNTEzNDEsNTEzNDgsNTEzNTcsNTEz''@;'; + put 'put ''NTksNTEzNjEsNTEzNjgsNTEzODgsNTEzODksNTEzOTYsNTE0MDAsNTE0MDQsNTE0MTIsNTE0MTMsNTE0MTUsNTE0MTcsNTE0MjQsNTE0MjUsNTE0MjgsNTE0NDUsNTE0NTIsNTE0NTMsNTE0NTYsNTE0NjAsNTE0NjEsNTE0NjIsNTE0NjgsNTE0NjksNTE0NzEsNTE0NzMsNTE0ODAsNTE1MDAs''@;'; + put 'put ''NTE1MDgsNTE1MzYsNTE1MzcsNTE1NDAsNTE1NDQsNTE1NTIsNTE1NTMsNTE1NTUsNTE1NjQsNTE1NjgsNTE1NzIsNTE1ODAsNTE1OTIsNTE1OTMsNTE1OTYsNTE2MDAsNTE2MDgsNTE2MDksNTE2MTEsNTE2MTMsNTE2NDgsNTE2NDksNTE2NTIsNTE2NTUsNTE2NTYsNTE2NTgsNTE2NjQsNTE2''@;'; + put 'put ''NjUsNTE2NjcsNTQ3MzAsNTQ3MzEsNTQ3MzMsNTQ3MzQsNTQ3MzUsNTQ3MzcsNTQ3MzksNTQ3NDAsNTQ3NDEsNTQ3NDIsNTQ3NDMsNTQ3NDYsNTQ3NDgsNTQ3NTAsNTQ3NTEsNTQ3NTIsNTQ3NTMsNTQ3NTQsNTQ3NTUsNTQ3NTgsNTQ3NTksNTQ3NjEsNTQ3NjIsNTQ3NjMsNTQ3NjUsNTQ3NjYs''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQ3NjcsNTQ3NjgsNTQ3NjksNTQ3NzAsNTQ3NzEsNTQ3NzQsNTQ3NzYsNTQ3NzgsNTQ3NzksNTQ3ODAsNTQ3ODEsNTQ3ODIsNTQ3ODMsNTQ3ODYsNTQ3ODcsNTQ3ODksNTQ3OTAsNTQ3OTEsNTQ3OTMsNTQ3OTQsNTQ3OTUsNTQ3OTYsNTQ3''@;'; + put 'put ''OTcsNTQ3OTgsNTQ3OTksNTQ4MDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQ4MDYsNTQ4MDcsNTQ4MDgsNTQ4MDksNTQ4MTAsNTQ4MTEsNTQ4MTMsNTQ4MTQsNTQ4MTUsNTQ4MTcsNTQ4MTgsNTQ4MTksNTQ4MjEsNTQ4MjIsNTQ4MjMsNTQ4MjQsNTQ4MjUsNTQ4MjYsNTQ4Mjcs''@;'; + put 'put ''NTQ4MjgsNTQ4MzAsNTQ4MzEsNTQ4MzIsNTQ4MzMsNTQ4MzQsNTQ4MzUsNTQ4MzYsNTQ4MzcsNTQ4MzgsNTQ4MzksNTQ4NDIsNTQ4NDMsNTE2NjksNTE2NzAsNTE2NzMsNTE2NzQsNTE2NzYsNTE2NzcsNTE2ODAsNTE2ODIsNTE2ODQsNTE2ODcsNTE2OTIsNTE2OTMsNTE2OTUsNTE2OTYsNTE2''@;'; + put 'put ''OTcsNTE3MDQsNTE3MDUsNTE3MDgsNTE3MTIsNTE3MjAsNTE3MjEsNTE3MjMsNTE3MjQsNTE3MjUsNTE3MzIsNTE3MzYsNTE3NTMsNTE3ODgsNTE3ODksNTE3OTIsNTE3OTYsNTE4MDQsNTE4MDUsNTE4MDcsNTE4MDgsNTE4MDksNTE4MTYsNTE4MzcsNTE4NDQsNTE4NjQsNTE5MDAsNTE5MDEs''@;'; + put 'put ''NTE5MDQsNTE5MDgsNTE5MTYsNTE5MTcsNTE5MTksNTE5MjEsNTE5MjMsNTE5MjgsNTE5MjksNTE5MzYsNTE5NDgsNTE5NTYsNTE5NzYsNTE5ODQsNTE5ODgsNTE5OTIsNTJlMyw1MjAwMSw1MjAzMyw1MjA0MCw1MjA0MSw1MjA0NCw1MjA0OCw1MjA1Niw1MjA1Nyw1MjA2MSw1MjA2OCw1MjA4''@;'; + put 'put ''OCw1MjA4OSw1MjEyNCw1MjE1Miw1MjE4MCw1MjE5Niw1MjE5OSw1MjIwMSw1MjIzNiw1MjIzNyw1MjI0MCw1MjI0NCw1MjI1Miw1MjI1Myw1MjI1Nyw1MjI1OCw1MjI2Myw1MjI2NCw1MjI2NSw1MjI2OCw1MjI3MCw1MjI3Miw1MjI4MCw1MjI4MSw1MjI4Myw1NDg0NSw1NDg0Niw1NDg0Nyw1''@;'; + put 'put ''NDg0OSw1NDg1MCw1NDg1MSw1NDg1Miw1NDg1NCw1NDg1NSw1NDg1OCw1NDg2MCw1NDg2Miw1NDg2Myw1NDg2NCw1NDg2Niw1NDg2Nyw1NDg3MCw1NDg3MSw1NDg3Myw1NDg3NCw1NDg3NSw1NDg3Nyw1NDg3OCw1NDg3OSw1NDg4MCw1NDg4MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCw1NDg4Miw1NDg4Myw1NDg4NCw1NDg4NSw1NDg4Niw1NDg4OCw1NDg5MCw1NDg5MSw1NDg5Miw1NDg5Myw1NDg5NCw1NDg5NSw1NDg5OCw1NDg5OSw1NDkwMSw1NDkwMiw1NDkwMyw1NDkwNCw1NDkwNSw1NDkwNiw1NDkwNyw1NDkwOCw1NDkwOSw1NDkxMCw1NDkxMSw1NDkxMixudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDkxMyw1NDkxNCw1NDkxNiw1NDkxOCw1NDkxOSw1NDkyMCw1NDkyMSw1NDkyMiw1NDkyMyw1NDkyNiw1NDkyNyw1NDkyOSw1NDkzMCw1NDkzMSw1NDkzMyw1NDkzNCw1NDkzNSw1NDkzNiw1NDkzNyw1NDkzOCw1NDkzOSw1NDk0MCw1NDk0Miw1NDk0''@;'; + put 'put ''NCw1NDk0Niw1NDk0Nyw1NDk0OCw1NDk0OSw1NDk1MCw1NDk1MSw1NDk1Myw1NDk1NCw1MjI4NCw1MjI4NSw1MjI4Niw1MjI5Miw1MjI5Myw1MjI5Niw1MjMwMCw1MjMwOCw1MjMwOSw1MjMxMSw1MjMxMiw1MjMxMyw1MjMyMCw1MjMyNCw1MjMyNiw1MjMyOCw1MjMzNiw1MjM0MSw1MjM3Niw1''@;'; + put 'put ''MjM3Nyw1MjM4MCw1MjM4NCw1MjM5Miw1MjM5Myw1MjM5NSw1MjM5Niw1MjM5Nyw1MjQwNCw1MjQwNSw1MjQwOCw1MjQxMiw1MjQyMCw1MjQyMSw1MjQyMyw1MjQyNSw1MjQzMiw1MjQzNiw1MjQ1Miw1MjQ2MCw1MjQ2NCw1MjQ4MSw1MjQ4OCw1MjQ4OSw1MjQ5Miw1MjQ5Niw1MjUwNCw1MjUw''@;'; + put 'put ''NSw1MjUwNyw1MjUwOSw1MjUxNiw1MjUyMCw1MjUyNCw1MjUzNyw1MjU3Miw1MjU3Niw1MjU4MCw1MjU4OCw1MjU4OSw1MjU5MSw1MjU5Myw1MjYwMCw1MjYxNiw1MjYyOCw1MjYyOSw1MjYzMiw1MjYzNiw1MjY0NCw1MjY0NSw1MjY0Nyw1MjY0OSw1MjY1Niw1MjY3Niw1MjY4NCw1MjY4OCw1''@;'; + put 'put ''MjcxMiw1MjcxNiw1MjcyMCw1MjcyOCw1MjcyOSw1MjczMSw1MjczMyw1Mjc0MCw1Mjc0NCw1Mjc0OCw1Mjc1Niw1Mjc2MSw1Mjc2OCw1Mjc2OSw1Mjc3Miw1Mjc3Niw1Mjc4NCw1Mjc4NSw1Mjc4Nyw1Mjc4OSw1NDk1NSw1NDk1Nyw1NDk1OCw1NDk1OSw1NDk2MSw1NDk2Miw1NDk2Myw1NDk2''@;'; + put 'put ''NCw1NDk2NSw1NDk2Niw1NDk2Nyw1NDk2OCw1NDk3MCw1NDk3Miw1NDk3Myw1NDk3NCw1NDk3NSw1NDk3Niw1NDk3Nyw1NDk3OCw1NDk3OSw1NDk4Miw1NDk4Myw1NDk4NSw1NDk4Niw1NDk4NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDk4OSw1NDk5MCw1NDk5MSw1NDk5Miw1''@;'; + put 'put ''NDk5NCw1NDk5NSw1NDk5Nyw1NDk5OCw1NWUzLDU1MDAyLDU1MDAzLDU1MDA0LDU1MDA1LDU1MDA2LDU1MDA3LDU1MDA5LDU1MDEwLDU1MDExLDU1MDEzLDU1MDE0LDU1MDE1LDU1MDE3LDU1MDE4LDU1MDE5LDU1MDIwLDU1MDIxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU1MDIy''@;'; + put 'put ''LDU1MDIzLDU1MDI1LDU1MDI2LDU1MDI3LDU1MDI4LDU1MDMwLDU1MDMxLDU1MDMyLDU1MDMzLDU1MDM0LDU1MDM1LDU1MDM4LDU1MDM5LDU1MDQxLDU1MDQyLDU1MDQzLDU1MDQ1LDU1MDQ2LDU1MDQ3LDU1MDQ4LDU1MDQ5LDU1MDUwLDU1MDUxLDU1MDUyLDU1MDUzLDU1MDU0LDU1MDU1LDU1''@;'; + put 'put ''MDU2LDU1MDU4LDU1MDU5LDU1MDYwLDUyODI0LDUyODI1LDUyODI4LDUyODMxLDUyODMyLDUyODMzLDUyODQwLDUyODQxLDUyODQzLDUyODQ1LDUyODUyLDUyODUzLDUyODU2LDUyODYwLDUyODY4LDUyODY5LDUyODcxLDUyODczLDUyODgwLDUyODgxLDUyODg0LDUyODg4LDUyODk2LDUyODk3''@;'; + put 'put ''LDUyODk5LDUyOTAwLDUyOTAxLDUyOTA4LDUyOTA5LDUyOTI5LDUyOTY0LDUyOTY1LDUyOTY4LDUyOTcxLDUyOTcyLDUyOTgwLDUyOTgxLDUyOTgzLDUyOTg0LDUyOTg1LDUyOTkyLDUyOTkzLDUyOTk2LDUzZTMsNTMwMDgsNTMwMDksNTMwMTEsNTMwMTMsNTMwMjAsNTMwMjQsNTMwMjgsNTMw''@;'; + put 'put ''MzYsNTMwMzcsNTMwMzksNTMwNDAsNTMwNDEsNTMwNDgsNTMwNzYsNTMwNzcsNTMwODAsNTMwODQsNTMwOTIsNTMwOTMsNTMwOTUsNTMwOTcsNTMxMDQsNTMxMDUsNTMxMDgsNTMxMTIsNTMxMjAsNTMxMjUsNTMxMzIsNTMxNTMsNTMxNjAsNTMxNjgsNTMxODgsNTMyMTYsNTMyMTcsNTMyMjAs''@;'; + put 'put ''NTMyMjQsNTMyMzIsNTMyMzMsNTMyMzUsNTMyMzcsNTMyNDQsNTMyNDgsNTMyNTIsNTMyNjUsNTMyNzIsNTMyOTMsNTMzMDAsNTMzMDEsNTMzMDQsNTMzMDgsNTUwNjEsNTUwNjIsNTUwNjMsNTUwNjYsNTUwNjcsNTUwNjksNTUwNzAsNTUwNzEsNTUwNzMsNTUwNzQsNTUwNzUsNTUwNzYsNTUw''@;'; + put 'put ''NzcsNTUwNzgsNTUwNzksNTUwODIsNTUwODQsNTUwODYsNTUwODcsNTUwODgsNTUwODksNTUwOTAsNTUwOTEsNTUwOTQsNTUwOTUsNTUwOTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTUwOTgsNTUwOTksNTUxMDEsNTUxMDIsNTUxMDMsNTUxMDQsNTUxMDUsNTUxMDYsNTUxMDcs''@;'; + put 'put ''NTUxMDksNTUxMTAsNTUxMTIsNTUxMTQsNTUxMTUsNTUxMTYsNTUxMTcsNTUxMTgsNTUxMTksNTUxMjIsNTUxMjMsNTUxMjUsNTUxMzAsNTUxMzEsNTUxMzIsNTUxMzMsNTUxMzQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTUxMzUsNTUxMzgsNTUxNDAsNTUxNDIsNTUxNDMsNTUx''@;'; + put 'put ''NDQsNTUxNDYsNTUxNDcsNTUxNDksNTUxNTAsNTUxNTEsNTUxNTMsNTUxNTQsNTUxNTUsNTUxNTcsNTUxNTgsNTUxNTksNTUxNjAsNTUxNjEsNTUxNjIsNTUxNjMsNTUxNjYsNTUxNjcsNTUxNjgsNTUxNzAsNTUxNzEsNTUxNzIsNTUxNzMsNTUxNzQsNTUxNzUsNTUxNzgsNTUxNzksNTMzMTYs''@;'; + put 'put ''NTMzMTcsNTMzMTksNTMzMjEsNTMzMjgsNTMzMzIsNTMzMzYsNTMzNDQsNTMzNTYsNTMzNTcsNTMzNjAsNTMzNjQsNTMzNzIsNTMzNzMsNTMzNzcsNTM0MTIsNTM0MTMsNTM0MTYsNTM0MjAsNTM0MjgsNTM0MjksNTM0MzEsNTM0MzMsNTM0NDAsNTM0NDEsNTM0NDQsNTM0NDgsNTM0NDksNTM0''@;'; + put 'put ''NTYsNTM0NTcsNTM0NTksNTM0NjAsNTM0NjEsNTM0NjgsNTM0NjksNTM0NzIsNTM0NzYsNTM0ODQsNTM0ODUsNTM0ODcsNTM0ODgsNTM0ODksNTM0OTYsNTM1MTcsNTM1NTIsNTM1NTMsNTM1NTYsNTM1NjAsNTM1NjIsNTM1NjgsNTM1NjksNTM1NzEsNTM1NzIsNTM1NzMsNTM1ODAsNTM1ODEs''@;'; + put 'put ''NTM1ODQsNTM1ODgsNTM1OTYsNTM1OTcsNTM1OTksNTM2MDEsNTM2MDgsNTM2MTIsNTM2MjgsNTM2MzYsNTM2NDAsNTM2NjQsNTM2NjUsNTM2NjgsNTM2NzIsNTM2ODAsNTM2ODEsNTM2ODMsNTM2ODUsNTM2OTAsNTM2OTIsNTM2OTYsNTM3MjAsNTM3NDgsNTM3NTIsNTM3NjcsNTM3NjksNTM3''@;'; + put 'put ''NzYsNTM4MDQsNTM4MDUsNTM4MDgsNTM4MTIsNTM4MjAsNTM4MjEsNTM4MjMsNTM4MjUsNTM4MzIsNTM4NTIsNTUxODEsNTUxODIsNTUxODMsNTUxODUsNTUxODYsNTUxODcsNTUxODgsNTUxODksNTUxOTAsNTUxOTEsNTUxOTQsNTUxOTYsNTUxOTgsNTUxOTksNTUyMDAsNTUyMDEsNTUyMDIs''@;'; + put 'put ''NTUyMDMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM4NjAsNTM4ODgsNTM4ODksNTM4OTIsNTM4OTYsNTM5MDQsNTM5MDUsNTM5MDksNTM5MTYsNTM5MjAsNTM5MjQsNTM5MzIsNTM5MzcsNTM5NDQsNTM5NDUsNTM5NDgsNTM5''@;'; + put 'put ''NTEsNTM5NTIsNTM5NTQsNTM5NjAsNTM5NjEsNTM5NjMsNTM5NzIsNTM5NzYsNTM5ODAsNTM5ODgsNTM5ODksNTRlMyw1NDAwMSw1NDAwNCw1NDAwOCw1NDAxNiw1NDAxNyw1NDAxOSw1NDAyMSw1NDAyOCw1NDAyOSw1NDAzMCw1NDAzMiw1NDAzNiw1NDAzOCw1NDA0NCw1NDA0NSw1NDA0Nyw1''@;'; + put 'put ''NDA0OCw1NDA0OSw1NDA1Myw1NDA1Niw1NDA1Nyw1NDA2MCw1NDA2NCw1NDA3Miw1NDA3Myw1NDA3NSw1NDA3Niw1NDA3Nyw1NDA4NCw1NDA4NSw1NDE0MCw1NDE0MSw1NDE0NCw1NDE0OCw1NDE1Niw1NDE1Nyw1NDE1OSw1NDE2MCw1NDE2MSw1NDE2OCw1NDE2OSw1NDE3Miw1NDE3Niw1NDE4''@;'; + put 'put ''NCw1NDE4NSw1NDE4Nyw1NDE4OSw1NDE5Niw1NDIwMCw1NDIwNCw1NDIxMiw1NDIxMyw1NDIxNiw1NDIxNyw1NDIyNCw1NDIzMiw1NDI0MSw1NDI0Myw1NDI1Miw1NDI1Myw1NDI1Niw1NDI2MCw1NDI2OCw1NDI2OSw1NDI3MSw1NDI3MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDI4MCw1NDMwMSw1NDMzNiw1NDM0MCw1NDM2NCw1NDM2OCw1NDM3Miw1NDM4''@;'; + put 'put ''MSw1NDM4Myw1NDM5Miw1NDM5Myw1NDM5Niw1NDM5OSw1NDQwMCw1NDQwMiw1NDQwOCw1NDQwOSw1NDQxMSw1NDQxMyw1NDQyMCw1NDQ0MSw1NDQ3Niw1NDQ4MCw1NDQ4NCw1NDQ5Miw1NDQ5NSw1NDUwNCw1NDUwOCw1NDUxMiw1NDUyMCw1NDUyMyw1NDUyNSw1NDUzMiw1NDUzNiw1NDU0MCw1''@;'; + put 'put ''NDU0OCw1NDU0OSw1NDU1MSw1NDU4OCw1NDU4OSw1NDU5Miw1NDU5Niw1NDYwNCw1NDYwNSw1NDYwNyw1NDYwOSw1NDYxNiw1NDYxNyw1NDYyMCw1NDYyNCw1NDYyOSw1NDYzMiw1NDYzMyw1NDYzNSw1NDYzNyw1NDY0NCw1NDY0NSw1NDY0OCw1NDY1Miw1NDY2MCw1NDY2MSw1NDY2Myw1NDY2''@;'; + put 'put ''NCw1NDY2NSw1NDY3Miw1NDY5Myw1NDcyOCw1NDcyOSw1NDczMiw1NDczNiw1NDczOCw1NDc0NCw1NDc0NSw1NDc0Nyw1NDc0OSw1NDc1Niw1NDc1Nyw1NDc2MCw1NDc2NCw1NDc3Miw1NDc3Myw1NDc3NSw1NDc3Nyw1NDc4NCw1NDc4NSw1NDc4OCw1NDc5Miw1NDgwMCw1NDgwMSw1NDgwMyw1''@;'; + put 'put ''NDgwNCw1NDgwNSw1NDgxMiw1NDgxNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCw1NDgyMCw1NDgyOSw1NDg0MCw1NDg0MSw1NDg0NCw1NDg0OCw1NDg1Myw1NDg1Niw1NDg1Nyw1NDg1OSw1NDg2MSw1NDg2NSw1NDg2OCw1NDg2OSw1NDg3Miw1NDg3Niw1NDg4Nyw1NDg4OSw1NDg5Niw1NDg5Nyw1NDkwMCw1NDkxNSw1NDkxNyw1NDkyNCw1NDkyNSw1NDkyOCw1''@;'; + put 'put ''NDkzMiw1NDk0MSw1NDk0Myw1NDk0NSw1NDk1Miw1NDk1Niw1NDk2MCw1NDk2OSw1NDk3MSw1NDk4MCw1NDk4MSw1NDk4NCw1NDk4OCw1NDk5Myw1NDk5Niw1NDk5OSw1NTAwMSw1NTAwOCw1NTAxMiw1NTAxNiw1NTAyNCw1NTAyOSw1NTAzNiw1NTAzNyw1NTA0MCw1NTA0NCw1NTA1Nyw1NTA2''@;'; + put 'put ''NCw1NTA2NSw1NTA2OCw1NTA3Miw1NTA4MCw1NTA4MSw1NTA4Myw1NTA4NSw1NTA5Miw1NTA5Myw1NTA5Niw1NTEwMCw1NTEwOCw1NTExMSw1NTExMyw1NTEyMCw1NTEyMSw1NTEyNCw1NTEyNiw1NTEyNyw1NTEyOCw1NTEyOSw1NTEzNiw1NTEzNyw1NTEzOSw1NTE0MSw1NTE0NSw1NTE0OCw1''@;'; + put 'put ''NTE1Miw1NTE1Niw1NTE2NCw1NTE2NSw1NTE2OSw1NTE3Niw1NTE3Nyw1NTE4MCw1NTE4NCw1NTE5Miw1NTE5Myw1NTE5NSw1NTE5NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLDIwMjg1LDIwMzM5LDIwNTUxLDIwNzI5LDIxMTUyLDIxNDg3LDIxNjIxLDIxNzMzLDIyMDI1LDIzMjMzLDIzNDc4LDI2MjQ3LDI2NTUwLDI2NTUxLDI2NjA3LDI3NDY4LDI5NjM0LDMwMTQ2LDMxMjkyLDMzNDk5LDMzNTQwLDM0OTAzLDM0OTUyLDM1Mzgy''@;'; + put 'put ''LDM2MDQwLDM2MzAzLDM2NjAzLDM2ODM4LDM5MzgxLDIxMDUxLDIxMzY0LDIxNTA4LDI0NjgyLDI0OTMyLDI3NTgwLDI5NjQ3LDMzMDUwLDM1MjU4LDM1MjgyLDM4MzA3LDIwMzU1LDIxMDAyLDIyNzE4LDIyOTA0LDIzMDE0LDI0MTc4LDI0MTg1LDI1MDMxLDI1NTM2LDI2NDM4LDI2NjA0LDI2''@;'; + put 'put ''NzUxLDI4NTY3LDMwMjg2LDMwNDc1LDMwOTY1LDMxMjQwLDMxNDg3LDMxNzc3LDMyOTI1LDMzMzkwLDMzMzkzLDM1NTYzLDM4MjkxLDIwMDc1LDIxOTE3LDI2MzU5LDI4MjEyLDMwODgzLDMxNDY5LDMzODgzLDM1MDg4LDM0NjM4LDM4ODI0LDIxMjA4LDIyMzUwLDIyNTcwLDIzODg0LDI0ODYz''@;'; + put 'put ''LDI1MDIyLDI1MTIxLDI1OTU0LDI2NTc3LDI3MjA0LDI4MTg3LDI5OTc2LDMwMTMxLDMwNDM1LDMwNjQwLDMyMDU4LDM3MDM5LDM3OTY5LDM3OTcwLDQwODUzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIxMjgzLDIzNzI0LDMwMDAyLDMyOTg3LDM3NDQwLDM4Mjk2LDIxMDgzLDIyNTM2LDIzMDA0LDIzNzEzLDIzODMxLDI0MjQ3LDI0Mzc4LDI0Mzk0LDI0OTUx''@;'; + put 'put ''LDI3NzQzLDMwMDc0LDMwMDg2LDMxOTY4LDMyMTE1LDMyMTc3LDMyNjUyLDMzMTA4LDMzMzEzLDM0MTkzLDM1MTM3LDM1NjExLDM3NjI4LDM4NDc3LDQwMDA3LDIwMTcxLDIwMjE1LDIwNDkxLDIwOTc3LDIyNjA3LDI0ODg3LDI0ODk0LDI0OTM2LDI1OTEzLDI3MTE0LDI4NDMzLDMwMTE3LDMw''@;'; + put 'put ''MzQyLDMwNDIyLDMxNjIzLDMzNDQ1LDMzOTk1LDYzNzQ0LDM3Nzk5LDM4MjgzLDIxODg4LDIzNDU4LDIyMzUzLDYzNzQ1LDMxOTIzLDMyNjk3LDM3MzAxLDIwNTIwLDIxNDM1LDIzNjIxLDI0MDQwLDI1Mjk4LDI1NDU0LDI1ODE4LDI1ODMxLDI4MTkyLDI4ODQ0LDMxMDY3LDM2MzE3LDM2Mzgy''@;'; + put 'put ''LDYzNzQ2LDM2OTg5LDM3NDQ1LDM3NjI0LDIwMDk0LDIwMjE0LDIwNTgxLDI0MDYyLDI0MzE0LDI0ODM4LDI2OTY3LDMzMTM3LDM0Mzg4LDM2NDIzLDM3NzQ5LDM5NDY3LDIwMDYyLDIwNjI1LDI2NDgwLDI2Njg4LDIwNzQ1LDIxMTMzLDIxMTM4LDI3Mjk4LG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMwNjUyLDM3MzkyLDQwNjYwLDIxMTYzLDI0NjIzLDM2ODUw''@;'; + put 'put ''LDIwNTUyLDI1MDAxLDI1NTgxLDI1ODAyLDI2Njg0LDI3MjY4LDI4NjA4LDMzMTYwLDM1MjMzLDM4NTQ4LDIyNTMzLDI5MzA5LDI5MzU2LDI5OTU2LDMyMTIxLDMyMzY1LDMyOTM3LDM1MjExLDM1NzAwLDM2OTYzLDQwMjczLDI1MjI1LDI3NzcwLDI4NTAwLDMyMDgwLDMyNTcwLDM1MzYzLDIw''@;'; + put 'put ''ODYwLDI0OTA2LDMxNjQ1LDM1NjA5LDM3NDYzLDM3NzcyLDIwMTQwLDIwNDM1LDIwNTEwLDIwNjcwLDIwNzQyLDIxMTg1LDIxMTk3LDIxMzc1LDIyMzg0LDIyNjU5LDI0MjE4LDI0NDY1LDI0OTUwLDI1MDA0LDI1ODA2LDI1OTY0LDI2MjIzLDI2Mjk5LDI2MzU2LDI2Nzc1LDI4MDM5LDI4ODA1''@;'; + put 'put ''LDI4OTEzLDI5ODU1LDI5ODYxLDI5ODk4LDMwMTY5LDMwODI4LDMwOTU2LDMxNDU1LDMxNDc4LDMyMDY5LDMyMTQ3LDMyNzg5LDMyODMxLDMzMDUxLDMzNjg2LDM1Njg2LDM2NjI5LDM2ODg1LDM3ODU3LDM4OTE1LDM4OTY4LDM5NTE0LDM5OTEyLDIwNDE4LDIxODQzLDIyNTg2LDIyODY1LDIz''@;'; + put 'put ''Mzk1LDIzNjIyLDI0NzYwLDI1MTA2LDI2NjkwLDI2ODAwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLDI2ODU2LDI4MzMwLDMwMDI4LDMwMzI4LDMwOTI2LDMxMjkzLDMxOTk1LDMyMzYzLDMyMzgwLDM1MzM2LDM1NDg5LDM1OTAzLDM4NTQyLDQwMzg4LDIxNDc2LDIxNDgxLDIxNTc4LDIxNjE3LDIyMjY2LDIyOTkzLDIzMzk2LDIzNjExLDI0MjM1LDI1MzM1LDI1''@;'; + put 'put ''OTExLDI1OTI1LDI1OTcwLDI2MjcyLDI2NTQzLDI3MDczLDI3ODM3LDMwMjA0LDMwMzUyLDMwNTkwLDMxMjk1LDMyNjYwLDMyNzcxLDMyOTI5LDMzMTY3LDMzNTEwLDMzNTMzLDMzNzc2LDM0MjQxLDM0ODY1LDM0OTk2LDM1NDkzLDYzNzQ3LDM2NzY0LDM3Njc4LDM4NTk5LDM5MDE1LDM5NjQw''@;'; + put 'put ''LDQwNzIzLDIxNzQxLDI2MDExLDI2MzU0LDI2NzY3LDMxMjk2LDM1ODk1LDQwMjg4LDIyMjU2LDIyMzcyLDIzODI1LDI2MTE4LDI2ODAxLDI2ODI5LDI4NDE0LDI5NzM2LDM0OTc0LDM5OTA4LDI3NzUyLDYzNzQ4LDM5NTkyLDIwMzc5LDIwODQ0LDIwODQ5LDIxMTUxLDIzMzgwLDI0MDM3LDI0''@;'; + put 'put ''NjU2LDI0Njg1LDI1MzI5LDI1NTExLDI1OTE1LDI5NjU3LDMxMzU0LDM0NDY3LDM2MDAyLDM4Nzk5LDIwMDE4LDIzNTIxLDI1MDk2LDI2NTI0LDI5OTE2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMxMTg1LDMzNzQ3LDM1NDYzLDM1NTA2LDM2MzI4LDM2OTQyLDM3NzA3LDM4OTgyLDI0Mjc1LDI3MTEyLDM0MzAzLDM3MTAxLDYzNzQ5LDIwODk2LDIzNDQ4LDIz''@;'; + put 'put ''NTMyLDI0OTMxLDI2ODc0LDI3NDU0LDI4NzQ4LDI5NzQzLDI5OTEyLDMxNjQ5LDMyNTkyLDMzNzMzLDM1MjY0LDM2MDExLDM4MzY0LDM5MjA4LDIxMDM4LDI0NjY5LDI1MzI0LDM2ODY2LDIwMzYyLDIwODA5LDIxMjgxLDIyNzQ1LDI0MjkxLDI2MzM2LDI3OTYwLDI4ODI2LDI5Mzc4LDI5NjU0''@;'; + put 'put ''LDMxNTY4LDMzMDA5LDM3OTc5LDIxMzUwLDI1NDk5LDMyNjE5LDIwMDU0LDIwNjA4LDIyNjAyLDIyNzUwLDI0NjE4LDI0ODcxLDI1Mjk2LDI3MDg4LDM5NzQ1LDIzNDM5LDMyMDI0LDMyOTQ1LDM2NzAzLDIwMTMyLDIwNjg5LDIxNjc2LDIxOTMyLDIzMzA4LDIzOTY4LDI0MDM5LDI1ODk4LDI1''@;'; + put 'put ''OTM0LDI2NjU3LDI3MjExLDI5NDA5LDMwMzUwLDMwNzAzLDMyMDk0LDMyNzYxLDMzMTg0LDM0MTI2LDM0NTI3LDM2NjExLDM2Njg2LDM3MDY2LDM5MTcxLDM5NTA5LDM5ODUxLDE5OTkyLDIwMDM3LDIwMDYxLDIwMTY3LDIwNDY1LDIwODU1LDIxMjQ2LG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIxMzEyLDIxNDc1LDIxNDc3LDIxNjQ2LDIyMDM2LDIyMzg5LDIy''@;'; + put 'put ''NDM0LDIzNDk1LDIzOTQzLDI0MjcyLDI1MDg0LDI1MzA0LDI1OTM3LDI2NTUyLDI2NjAxLDI3MDgzLDI3NDcyLDI3NTkwLDI3NjI4LDI3NzE0LDI4MzE3LDI4NzkyLDI5Mzk5LDI5NTkwLDI5Njk5LDMwNjU1LDMwNjk3LDMxMzUwLDMyMTI3LDMyNzc3LDMzMjc2LDMzMjg1LDMzMjkwLDMzNTAz''@;'; + put 'put ''LDM0OTE0LDM1NjM1LDM2MDkyLDM2NTQ0LDM2ODgxLDM3MDQxLDM3NDc2LDM3NTU4LDM5Mzc4LDM5NDkzLDQwMTY5LDQwNDA3LDQwODYwLDIyMjgzLDIzNjE2LDMzNzM4LDM4ODE2LDM4ODI3LDQwNjI4LDIxNTMxLDMxMzg0LDMyNjc2LDM1MDMzLDM2NTU3LDM3MDg5LDIyNTI4LDIzNjI0LDI1''@;'; + put 'put ''NDk2LDMxMzkxLDIzNDcwLDI0MzM5LDMxMzUzLDMxNDA2LDMzNDIyLDM2NTI0LDIwNTE4LDIxMDQ4LDIxMjQwLDIxMzY3LDIyMjgwLDI1MzMxLDI1NDU4LDI3NDAyLDI4MDk5LDMwNTE5LDIxNDEzLDI5NTI3LDM0MTUyLDM2NDcwLDM4MzU3LDI2NDI2LDI3MzMxLDI4NTI4LDM1NDM3LDM2NTU2''@;'; + put 'put ''LDM5MjQzLDYzNzUwLDI2MjMxLDI3NTEyLDM2MDIwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLDM5NzQwLDYzNzUxLDIxNDgzLDIyMzE3LDIyODYyLDI1NTQyLDI3MTMxLDI5Njc0LDMwNzg5LDMxNDE4LDMxNDI5LDMxOTk4LDMzOTA5LDM1MjE1LDM2MjExLDM2OTE3LDM4MzEyLDIxMjQzLDIyMzQzLDMwMDIzLDMxNTg0LDMzNzQwLDM3NDA2LDYzNzUyLDI3MjI0''@;'; + put 'put ''LDIwODExLDIxMDY3LDIxMTI3LDI1MTE5LDI2ODQwLDI2OTk3LDM4NTUzLDIwNjc3LDIxMTU2LDIxMjIwLDI1MDI3LDI2MDIwLDI2NjgxLDI3MTM1LDI5ODIyLDMxNTYzLDMzNDY1LDMzNzcxLDM1MjUwLDM1NjQxLDM2ODE3LDM5MjQxLDYzNzUzLDIwMTcwLDIyOTM1LDI1ODEwLDI2MTI5LDI3''@;'; + put 'put ''Mjc4LDI5NzQ4LDMxMTA1LDMxMTY1LDMzNDQ5LDM0OTQyLDM0OTQzLDM1MTY3LDYzNzU0LDM3NjcwLDIwMjM1LDIxNDUwLDI0NjEzLDI1MjAxLDI3NzYyLDMyMDI2LDMyMTAyLDIwMTIwLDIwODM0LDMwNjg0LDMyOTQzLDIwMjI1LDIwMjM4LDIwODU0LDIwODY0LDIxOTgwLDIyMTIwLDIyMzMx''@;'; + put 'put ''LDIyNTIyLDIyNTI0LDIyODA0LDIyODU1LDIyOTMxLDIzNDkyLDIzNjk2LDIzODIyLDI0MDQ5LDI0MTkwLDI0NTI0LDI1MjE2LDI2MDcxLDI2MDgzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI2Mzk4LDI2Mzk5LDI2NDYyLDI2ODI3LDI2ODIwLDI3MjMxLDI3NDUwLDI3NjgzLDI3NzczLDI3Nzc4LDI4MTAzLDI5NTkyLDI5NzM0LDI5NzM4LDI5ODI2LDI5ODU5''@;'; + put 'put ''LDMwMDcyLDMwMDc5LDMwODQ5LDMwOTU5LDMxMDQxLDMxMDQ3LDMxMDQ4LDMxMDk4LDMxNjM3LDMyZTMsMzIxODYsMzI2NDgsMzI3NzQsMzI4MTMsMzI5MDgsMzUzNTIsMzU2NjMsMzU5MTIsMzYyMTUsMzc2NjUsMzc2NjgsMzkxMzgsMzkyNDksMzk0MzgsMzk0MzksMzk1MjUsNDA1OTQsMzIy''@;'; + put 'put ''MDIsMjAzNDIsMjE1MTMsMjUzMjYsMjY3MDgsMzczMjksMjE5MzEsMjA3OTQsNjM3NTUsNjM3NTYsMjMwNjgsMjUwNjIsNjM3NTcsMjUyOTUsMjUzNDMsNjM3NTgsNjM3NTksNjM3NjAsNjM3NjEsNjM3NjIsNjM3NjMsMzcwMjcsNjM3NjQsNjM3NjUsNjM3NjYsNjM3NjcsNjM3NjgsMzU1ODIs''@;'; + put 'put ''NjM3NjksNjM3NzAsNjM3NzEsNjM3NzIsMjYyNjIsNjM3NzMsMjkwMTQsNjM3NzQsNjM3NzUsMzg2MjcsNjM3NzYsMjU0MjMsMjU0NjYsMjEzMzUsNjM3NzcsMjY1MTEsMjY5NzYsMjgyNzUsNjM3NzgsMzAwMDcsNjM3NzksNjM3ODAsNjM3ODEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzIwMTMsNjM3ODIsNjM3ODMsMzQ5MzAsMjIyMTgsMjMwNjQsNjM3ODQs''@;'; + put 'put ''NjM3ODUsNjM3ODYsNjM3ODcsNjM3ODgsMjAwMzUsNjM3ODksMjA4MzksMjI4NTYsMjY2MDgsMzI3ODQsNjM3OTAsMjI4OTksMjQxODAsMjU3NTQsMzExNzgsMjQ1NjUsMjQ2ODQsMjUyODgsMjU0NjcsMjM1MjcsMjM1MTEsMjExNjIsNjM3OTEsMjI5MDAsMjQzNjEsMjQ1OTQsNjM3OTIsNjM3''@;'; + put 'put ''OTMsNjM3OTQsMjk3ODUsNjM3OTUsNjM3OTYsNjM3OTcsNjM3OTgsNjM3OTksNjM4MDAsMzkzNzcsNjM4MDEsNjM4MDIsNjM4MDMsNjM4MDQsNjM4MDUsNjM4MDYsNjM4MDcsNjM4MDgsNjM4MDksNjM4MTAsNjM4MTEsMjg2MTEsNjM4MTIsNjM4MTMsMzMyMTUsMzY3ODYsMjQ4MTcsNjM4MTQs''@;'; + put 'put ''NjM4MTUsMzMxMjYsNjM4MTYsNjM4MTcsMjM2MTUsNjM4MTgsNjM4MTksNjM4MjAsNjM4MjEsNjM4MjIsNjM4MjMsNjM4MjQsNjM4MjUsMjMyNzMsMzUzNjUsMjY0OTEsMzIwMTYsNjM4MjYsNjM4MjcsNjM4MjgsNjM4MjksNjM4MzAsNjM4MzEsMzMwMjEsNjM4MzIsNjM4MzMsMjM2MTIsMjc4''@;'; + put 'put ''NzcsMjEzMTEsMjgzNDYsMjI4MTAsMzM1OTAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsMjAwMjUsMjAxNTAsMjAyOTQsMjE5MzQsMjIyOTYsMjI3MjcsMjQ0MDYsMjYwMzksMjYwODYsMjcyNjQsMjc1NzMsMjgyMzcsMzA3MDEsMzE0NzEsMzE3NzQsMzIyMjIsMzQ1MDcsMzQ5NjIsMzcxNzAsMzc3MjMsMjU3ODcsMjg2MDYsMjk1NjIsMzAxMzYsMzY5NDgsMjE4''@;'; + put 'put ''NDYsMjIzNDksMjUwMTgsMjU4MTIsMjYzMTEsMjgxMjksMjgyNTEsMjg1MjUsMjg2MDEsMzAxOTIsMzI4MzUsMzMyMTMsMzQxMTMsMzUyMDMsMzU1MjcsMzU2NzQsMzc2NjMsMjc3OTUsMzAwMzUsMzE1NzIsMzYzNjcsMzY5NTcsMjE3NzYsMjI1MzAsMjI2MTYsMjQxNjIsMjUwOTUsMjU3NTgs''@;'; + put 'put ''MjY4NDgsMzAwNzAsMzE5NTgsMzQ3MzksNDA2ODAsMjAxOTUsMjI0MDgsMjIzODIsMjI4MjMsMjM1NjUsMjM3MjksMjQxMTgsMjQ0NTMsMjUxNDAsMjU4MjUsMjk2MTksMzMyNzQsMzQ5NTUsMzYwMjQsMzg1MzgsNDA2NjcsMjM0MjksMjQ1MDMsMjQ3NTUsMjA0OTgsMjA5OTIsMjEwNDAsMjIy''@;'; + put 'put ''OTQsMjI1ODEsMjI2MTUsMjM1NjYsMjM2NDgsMjM3OTgsMjM5NDcsMjQyMzAsMjQ0NjYsMjQ3NjQsMjUzNjEsMjU0ODEsMjU2MjMsMjY2OTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjY4NzMsMjczMzAsMjgxMjAsMjgxOTMsMjgzNzIsMjg2NDQsMjkxODIsMzA0MjgsMzA1ODUsMzExNTMsMzEyOTEsMzM3OTYsMzUyNDEsMzYwNzcsMzYzMzksMzY0MjQsMzY4''@;'; + put 'put ''NjcsMzY4ODQsMzY5NDcsMzcxMTcsMzc3MDksMzg1MTgsMzg4NzYsMjc2MDIsMjg2NzgsMjkyNzIsMjkzNDYsMjk1NDQsMzA1NjMsMzExNjcsMzE3MTYsMzI0MTEsMzU3MTIsMjI2OTcsMjQ3NzUsMjU5NTgsMjYxMDksMjYzMDIsMjc3ODgsMjg5NTgsMjkxMjksMzU5MzAsMzg5MzEsMjAwNzcs''@;'; + put 'put ''MzEzNjEsMjAxODksMjA5MDgsMjA5NDEsMjEyMDUsMjE1MTYsMjQ5OTksMjY0ODEsMjY3MDQsMjY4NDcsMjc5MzQsMjg1NDAsMzAxNDAsMzA2NDMsMzE0NjEsMzMwMTIsMzM4OTEsMzc1MDksMjA4MjgsMjYwMDcsMjY0NjAsMjY1MTUsMzAxNjgsMzE0MzEsMzM2NTEsNjM4MzQsMzU5MTAsMzY4''@;'; + put 'put ''ODcsMzg5NTcsMjM2NjMsMzMyMTYsMzM0MzQsMzY5MjksMzY5NzUsMzczODksMjQ0NzEsMjM5NjUsMjcyMjUsMjkxMjgsMzAzMzEsMzE1NjEsMzQyNzYsMzU1ODgsMzcxNTksMzk0NzIsMjE4OTUsMjUwNzgsNjM4MzUsMzAzMTMsMzI2NDUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzQzNjcsMzQ3NDYsMzUwNjQsMzcwMDcsNjM4MzYsMjc5MzEsMjg4ODksMjk2''@;'; + put 'put ''NjIsMzIwOTcsMzM4NTMsNjM4MzcsMzcyMjYsMzk0MDksNjM4MzgsMjAwOTgsMjEzNjUsMjczOTYsMjc0MTAsMjg3MzQsMjkyMTEsMzQzNDksNDA0NzgsMjEwNjgsMzY3NzEsMjM4ODgsMjU4MjksMjU5MDAsMjc0MTQsMjg2NTEsMzE4MTEsMzI0MTIsMzQyNTMsMzUxNzIsMzUyNjEsMjUyODks''@;'; + put 'put ''MzMyNDAsMzQ4NDcsMjQyNjYsMjYzOTEsMjgwMTAsMjk0MzYsMjk3MDEsMjk4MDcsMzQ2OTAsMzcwODYsMjAzNTgsMjM4MjEsMjQ0ODAsMzM4MDIsMjA5MTksMjU1MDQsMzAwNTMsMjAxNDIsMjA0ODYsMjA4NDEsMjA5MzcsMjY3NTMsMjcxNTMsMzE5MTgsMzE5MjEsMzE5NzUsMzMzOTEsMzU1''@;'; + put 'put ''MzgsMzY2MzUsMzczMjcsMjA0MDYsMjA3OTEsMjEyMzcsMjE1NzAsMjQzMDAsMjQ5NDIsMjUxNTAsMjYwNTMsMjczNTQsMjg2NzAsMzEwMTgsMzQyNjgsMzQ4NTEsMzgzMTcsMzk1MjIsMzk1MzAsNDA1OTksNDA2NTQsMjExNDcsMjYzMTAsMjc1MTEsMjg3MDEsMzEwMTksMzY3MDYsMzg3MjIs''@;'; + put 'put ''MjQ5NzYsMjUwODgsMjU4OTEsMjg0NTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsMjkwMDEsMjk4MzMsMzIyNDQsMzI4NzksMzQwMzAsMzY2NDYsMzY4OTksMzc3MDYsMjA5MjUsMjEwMTUsMjExNTUsMjc5MTYsMjg4NzIsMzUwMTAsMjQyNjUsMjU5ODYsMjc1NjYsMjg2MTAsMzE4MDYsMjk1NTcsMjAxOTYsMjAyNzgsMjIyNjUsNjM4MzksMjM3MzgsMjM5OTQs''@;'; + put 'put ''MjQ2MDQsMjk2MTgsMzE1MzMsMzI2NjYsMzI3MTgsMzI4MzgsMzY4OTQsMzc0MjgsMzg2NDYsMzg3MjgsMzg5MzYsNDA4MDEsMjAzNjMsMjg1ODMsMzExNTAsMzczMDAsMzg1ODMsMjEyMTQsNjM4NDAsMjU3MzYsMjU3OTYsMjczNDcsMjg1MTAsMjg2OTYsMjkyMDAsMzA0MzksMzI3NjksMzQz''@;'; + put 'put ''MTAsMzQzOTYsMzYzMzUsMzY2MTMsMzg3MDYsMzk3OTEsNDA0NDIsNDA1NjUsMzA4NjAsMzExMDMsMzIxNjAsMzM3MzcsMzc2MzYsNDA1NzUsNDA1OTUsMzU1NDIsMjI3NTEsMjQzMjQsMjY0MDcsMjg3MTEsMjk5MDMsMzE4NDAsMzI4OTQsMjA3NjksMjg3MTIsMjkyODIsMzA5MjIsMzYwMzQs''@;'; + put 'put ''MzYwNTgsMzYwODQsMzg2NDcsMjAxMDIsMjA2OTgsMjM1MzQsMjQyNzgsMjYwMDksMjkxMzQsMzAyNzQsMzA2MzcsMzI4NDIsMzQwNDQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzY5ODgsMzk3MTksNDA4NDUsMjI3NDQsMjMxMDUsMjM2NTAsMjcxNTUsMjgxMjIsMjg0MzEsMzAyNjcsMzIwNDcsMzIzMTEsMzQwNzgsMzUxMjgsMzc4NjAsMzg0NzUsMjExMjks''@;'; + put 'put ''MjYwNjYsMjY2MTEsMjcwNjAsMjc5NjksMjgzMTYsMjg2ODcsMjk3MDUsMjk3OTIsMzAwNDEsMzAyNDQsMzA4MjcsMzU2MjgsMzkwMDYsMjA4NDUsMjUxMzQsMzg1MjAsMjAzNzQsMjA1MjMsMjM4MzMsMjgxMzgsMzIxODQsMzY2NTAsMjQ0NTksMjQ5MDAsMjY2NDcsNjM4NDEsMzg1MzQsMjEy''@;'; + put 'put ''MDIsMzI5MDcsMjA5NTYsMjA5NDAsMjY5NzQsMzEyNjAsMzIxOTAsMzM3NzcsMzg1MTcsMjA0NDIsMjEwMzMsMjE0MDAsMjE1MTksMjE3NzQsMjM2NTMsMjQ3NDMsMjY0NDYsMjY3OTIsMjgwMTIsMjkzMTMsMjk0MzIsMjk3MDIsMjk4MjcsNjM4NDIsMzAxNzgsMzE4NTIsMzI2MzMsMzI2OTYs''@;'; + put 'put ''MzM2NzMsMzUwMjMsMzUwNDEsMzczMjQsMzczMjgsMzg2MjYsMzk4ODEsMjE1MzMsMjg1NDIsMjkxMzYsMjk4NDgsMzQyOTgsMzY1MjIsMzg1NjMsNDAwMjMsNDA2MDcsMjY1MTksMjgxMDcsMjk3NDcsMzMyNTYsMzg2NzgsMzA3NjQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzE0MzUsMzE1MjAsMzE4OTAsMjU3MDUsMjk4MDIsMzAxOTQsMzA5MDgsMzA5NTIs''@;'; + put 'put ''MzkzNDAsMzk3NjQsNDA2MzUsMjM1MTgsMjQxNDksMjg0NDgsMzMxODAsMzM3MDcsMzdlMywxOTk3NSwyMTMyNSwyMzA4MSwyNDAxOCwyNDM5OCwyNDkzMCwyNTQwNSwyNjIxNywyNjM2NCwyODQxNSwyODQ1OSwyODc3MSwzMDYyMiwzMzgzNiwzNDA2NywzNDg3NSwzNjYyNywzOTIzNywzOTk5''@;'; + put 'put ''NSwyMTc4OCwyNTI3MywyNjQxMSwyNzgxOSwzMzU0NSwzNTE3OCwzODc3OCwyMDEyOSwyMjkxNiwyNDUzNiwyNDUzNywyNjM5NSwzMjE3OCwzMjU5NiwzMzQyNiwzMzU3OSwzMzcyNSwzNjYzOCwzNzAxNywyMjQ3NSwyMjk2OSwyMzE4NiwyMzUwNCwyNjE1MSwyNjUyMiwyNjc1NywyNzU5OSwy''@;'; + put 'put ''OTAyOCwzMjYyOSwzNjAyMywzNjA2NywzNjk5MywzOTc0OSwzMzAzMiwzNTk3OCwzODQ3NiwzOTQ4OCw0MDYxMywyMzM5MSwyNzY2NywyOTQ2NywzMDQ1MCwzMDQzMSwzMzgwNCwyMDkwNiwzNTIxOSwyMDgxMywyMDg4NSwyMTE5MywyNjgyNSwyNzc5NiwzMDQ2OCwzMDQ5NiwzMjE5MSwzMjIz''@;'; + put 'put ''NiwzODc1NCw0MDYyOSwyODM1NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCwzNDA2NSwyMDkwMSwyMTUxNywyMTYyOSwyNjEyNiwyNjI2OSwyNjkxOSwyODMxOSwzMDM5OSwzMDYwOSwzMzU1OSwzMzk4NiwzNDcxOSwzNzIyNSwzNzUyOCw0MDE4MCwzNDk0NiwyMDM5OCwyMDg4MiwyMTIxNSwyMjk4MiwyNDEyNSwyNDkxNywyNTcyMCwyNTcyMSwyNjI4NiwyNjU3''@;'; + put 'put ''NiwyNzE2OSwyNzU5NywyNzYxMSwyOTI3OSwyOTI4MSwyOTc2MSwzMDUyMCwzMDY4MywzMjc5MSwzMzQ2OCwzMzU0MSwzNTU4NCwzNTYyNCwzNTk4MCwyNjQwOCwyNzc5MiwyOTI4NywzMDQ0NiwzMDU2NiwzMTMwMiw0MDM2MSwyNzUxOSwyNzc5NCwyMjgxOCwyNjQwNiwzMzk0NSwyMTM1OSwy''@;'; + put 'put ''MjY3NSwyMjkzNywyNDI4NywyNTU1MSwyNjE2NCwyNjQ4MywyODIxOCwyOTQ4MywzMTQ0NywzMzQ5NSwzNzY3MiwyMTIwOSwyNDA0MywyNTAwNiwyNTAzNSwyNTA5OCwyNTI4NywyNTc3MSwyNjA4MCwyNjk2OSwyNzQ5NCwyNzU5NSwyODk2MSwyOTY4NywzMDA0NSwzMjMyNiwzMzMxMCwzMzUz''@;'; + put 'put ''OCwzNDE1NCwzNTQ5MSwzNjAzMSwzODY5NSw0MDI4OSwyMjY5Niw0MDY2NCwyMDQ5NywyMTAwNiwyMTU2MywyMTgzOSwyNTk5MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNzc2NiwzMjAxMCwzMjAxMSwzMjg2MiwzNDQ0MiwzODI3MiwzODYzOSwyMTI0NywyNzc5NywyOTI4OSwyMTYxOSwyMzE5NCwyMzYxNCwyMzg4MywyNDM5NiwyNDQ5NCwyNjQxMCwyNjgw''@;'; + put 'put ''NiwyNjk3OSwyODIyMCwyODIyOCwzMDQ3MywzMTg1OSwzMjY1NCwzNDE4MywzNTU5OCwzNjg1NSwzODc1Myw0MDY5MiwyMzczNSwyNDc1OCwyNDg0NSwyNTAwMywyNTkzNSwyNjEwNywyNjEwOCwyNzY2NSwyNzg4NywyOTU5OSwyOTY0MSwzMjIyNSwzODI5MiwyMzQ5NCwzNDU4OCwzNTYwMCwy''@;'; + put 'put ''MTA4NSwyMTMzOCwyNTI5MywyNTYxNSwyNTc3OCwyNjQyMCwyNzE5MiwyNzg1MCwyOTYzMiwyOTg1NCwzMTYzNiwzMTg5MywzMjI4MywzMzE2MiwzMzMzNCwzNDE4MCwzNjg0MywzODY0OSwzOTM2MSwyMDI3NiwyMTMyMiwyMTQ1MywyMTQ2NywyNTI5MiwyNTY0NCwyNTg1NiwyNjAwMSwyNzA3''@;'; + put 'put ''NSwyNzg4NiwyODUwNCwyOTY3NywzMDAzNiwzMDI0MiwzMDQzNiwzMDQ2MCwzMDkyOCwzMDk3MSwzMTAyMCwzMjA3MCwzMzMyNCwzNDc4NCwzNjgyMCwzODkzMCwzOTE1MSwyMTE4NywyNTMwMCwyNTc2NSwyODE5NiwyODQ5NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMDMzMiwzNjI5OSwzNzI5NywzNzQ3NCwzOTY2MiwzOTc0NywyMDUxNSwyMDYyMSwyMjM0''@;'; + put 'put ''NiwyMjk1MiwyMzU5MiwyNDEzNSwyNDQzOSwyNTE1MSwyNTkxOCwyNjA0MSwyNjA0OSwyNjEyMSwyNjUwNywyNzAzNiwyODM1NCwzMDkxNywzMjAzMywzMjkzOCwzMzE1MiwzMzMyMywzMzQ1OSwzMzk1MywzNDQ0NCwzNTM3MCwzNTYwNywzNzAzMCwzODQ1MCw0MDg0OCwyMDQ5MywyMDQ2Nyw2''@;'; + put 'put ''Mzg0MywyMjUyMSwyNDQ3MiwyNTMwOCwyNTQ5MCwyNjQ3OSwyODIyNywyODk1MywzMDQwMywzMjk3MiwzMjk4NiwzNTA2MCwzNTA2MSwzNTA5NywzNjA2NCwzNjY0OSwzNzE5NywzODUwNiwyMDI3MSwyMDMzNiwyNDA5MSwyNjU3NSwyNjY1OCwzMDMzMywzMDMzNCwzOTc0OCwyNDE2MSwyNzE0''@;'; + put 'put ''NiwyOTAzMywyOTE0MCwzMDA1OCw2Mzg0NCwzMjMyMSwzNDExNSwzNDI4MSwzOTEzMiwyMDI0MCwzMTU2NywzMjYyNCwzODMwOSwyMDk2MSwyNDA3MCwyNjgwNSwyNzcxMCwyNzcyNiwyNzg2NywyOTM1OSwzMTY4NCwzMzUzOSwyNzg2MSwyOTc1NCwyMDczMSwyMTEyOCwyMjcyMSwyNTgxNiwy''@;'; + put 'put ''NzI4NywyOTg2MywzMDI5NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCwzMDg4NywzNDMyNywzODM3MCwzODcxMyw2Mzg0NSwyMTM0MiwyNDMyMSwzNTcyMiwzNjc3NiwzNjc4MywzNzAwMiwyMTAyOSwzMDYyOSw0MDAwOSw0MDcxMiwxOTk5MywyMDQ4MiwyMDg1MywyMzY0MywyNDE4MywyNjE0MiwyNjE3MCwyNjU2NCwyNjgyMSwyODg1MSwyOTk1MywzMDE0OSwz''@;'; + put 'put ''MTE3NywzMTQ1MywzNjY0NywzOTIwMCwzOTQzMiwyMDQ0NSwyMjU2MSwyMjU3NywyMzU0MiwyNjIyMiwyNzQ5MywyNzkyMSwyODI4MiwyODU0MSwyOTY2OCwyOTk5NSwzMzc2OSwzNTAzNiwzNTA5MSwzNTY3NiwzNjYyOCwyMDIzOSwyMDY5MywyMTI2NCwyMTM0MCwyMzQ0MywyNDQ4OSwyNjM4''@;'; + put 'put ''MSwzMTExOSwzMzE0NSwzMzU4MywzNDA2OCwzNTA3OSwzNTIwNiwzNjY2NSwzNjY2NywzOTMzMywzOTk1NCwyNjQxMiwyMDA4NiwyMDQ3MiwyMjg1NywyMzU1MywyMzc5MSwyMzc5MiwyNTQ0NywyNjgzNCwyODkyNSwyOTA5MCwyOTczOSwzMjI5OSwzNDAyOCwzNDU2MiwzNjg5OCwzNzU4Niw0''@;'; + put 'put ''MDE3OSwxOTk4MSwyMDE4NCwyMDQ2MywyMDYxMywyMTA3OCwyMTEwMywyMTU0MiwyMTY0OCwyMjQ5NiwyMjgyNywyMzE0MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMzM4NiwyMzQxMywyMzUwMCwyNDIyMCw2Mzg0NiwyNTIwNiwyNTk3NSwyNjAyMywyODAxNCwyODMyNSwyOTIzOCwzMTUyNiwzMTgwNywzMjU2NiwzMzEwNCwzMzEwNSwzMzE3OCwzMzM0NCwz''@;'; + put 'put ''MzQzMywzMzcwNSwzNTMzMSwzNmUzLDM2MDcwLDM2MDkxLDM2MjEyLDM2MjgyLDM3MDk2LDM3MzQwLDM4NDI4LDM4NDY4LDM5Mzg1LDQwMTY3LDIxMjcxLDIwOTk4LDIxNTQ1LDIyMTMyLDIyNzA3LDIyODY4LDIyODk0LDI0NTc1LDI0OTk2LDI1MTk4LDI2MTI4LDI3Nzc0LDI4OTU0LDMwNDA2''@;'; + put 'put ''LDMxODgxLDMxOTY2LDMyMDI3LDMzNDUyLDM2MDMzLDM4NjQwLDYzODQ3LDIwMzE1LDI0MzQzLDI0NDQ3LDI1MjgyLDIzODQ5LDI2Mzc5LDI2ODQyLDMwODQ0LDMyMzIzLDQwMzAwLDE5OTg5LDIwNjMzLDIxMjY5LDIxMjkwLDIxMzI5LDIyOTE1LDIzMTM4LDI0MTk5LDI0NzU0LDI0OTcwLDI1''@;'; + put 'put ''MTYxLDI1MjA5LDI2ZTMsMjY1MDMsMjcwNDcsMjc2MDQsMjc2MDYsMjc2MDcsMjc2MDgsMjc4MzIsNjM4NDgsMjk3NDksMzAyMDIsMzA3MzgsMzA4NjUsMzExODksMzExOTIsMzE4NzUsMzIyMDMsMzI3MzcsMzI5MzMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzMwODYsMzMyMTgsMzM3NzgsMzQ1ODYsMzUwNDgsMzU1MTMsMzU2OTIsMzYwMjcsMzcxNDUsMzg3''@;'; + put 'put ''NTAsMzkxMzEsNDA3NjMsMjIxODgsMjMzMzgsMjQ0MjgsMjU5OTYsMjczMTUsMjc1NjcsMjc5OTYsMjg2NTcsMjg2OTMsMjkyNzcsMjk2MTMsMzYwMDcsMzYwNTEsMzg5NzEsMjQ5NzcsMjc3MDMsMzI4NTYsMzk0MjUsMjAwNDUsMjAxMDcsMjAxMjMsMjAxODEsMjAyODIsMjAyODQsMjAzNTEs''@;'; + put 'put ''MjA0NDcsMjA3MzUsMjE0OTAsMjE0OTYsMjE3NjYsMjE5ODcsMjIyMzUsMjI3NjMsMjI4ODIsMjMwNTcsMjM1MzEsMjM1NDYsMjM1NTYsMjQwNTEsMjQxMDcsMjQ0NzMsMjQ2MDUsMjU0NDgsMjYwMTIsMjYwMzEsMjY2MTQsMjY2MTksMjY3OTcsMjc1MTUsMjc4MDEsMjc4NjMsMjgxOTUsMjg2''@;'; + put 'put ''ODEsMjk1MDksMzA3MjIsMzEwMzgsMzEwNDAsMzEwNzIsMzExNjksMzE3MjEsMzIwMjMsMzIxMTQsMzI5MDIsMzMyOTMsMzM2NzgsMzQwMDEsMzQ1MDMsMzUwMzksMzU0MDgsMzU0MjIsMzU2MTMsMzYwNjAsMzYxOTgsMzY3ODEsMzcwMzQsMzkxNjQsMzkzOTEsNDA2MDUsMjEwNjYsNjM4NDks''@;'; + put 'put ''MjYzODgsNjM4NTAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjA2''@;'; + put 'put ''MzIsMjEwMzQsMjM2NjUsMjU5NTUsMjc3MzMsMjk2NDIsMjk5ODcsMzAxMDksMzE2MzksMzM5NDgsMzcyNDAsMzg3MDQsMjAwODcsMjU3NDYsMjc1NzgsMjkwMjIsMzQyMTcsMTk5NzcsNjM4NTEsMjY0NDEsMjY4NjIsMjgxODMsMzM0MzksMzQwNzIsMzQ5MjMsMjU1OTEsMjg1NDUsMzczOTQs''@;'; + put 'put ''MzkwODcsMTk5NzgsMjA2NjMsMjA2ODcsMjA3NjcsMjE4MzAsMjE5MzAsMjIwMzksMjMzNjAsMjM1NzcsMjM3NzYsMjQxMjAsMjQyMDIsMjQyMjQsMjQyNTgsMjQ4MTksMjY3MDUsMjcyMzMsMjgyNDgsMjkyNDUsMjkyNDgsMjkzNzYsMzA0NTYsMzEwNzcsMzE2NjUsMzI3MjQsMzUwNTksMzUz''@;'; + put 'put ''MTYsMzU0NDMsMzU5MzcsMzYwNjIsMzg2ODQsMjI2MjIsMjk4ODUsMzYwOTMsMjE5NTksNjM4NTIsMzEzMjksMzIwMzQsMzMzOTQsMjkyOTgsMjk5ODMsMjk5ODksNjM4NTMsMzE1MTMsMjI2NjEsMjI3NzksMjM5OTYsMjQyMDcsMjQyNDYsMjQ0NjQsMjQ2NjEsMjUyMzQsMjU0NzEsMjU5MzMs''@;'; + put 'put ''MjYyNTcsMjYzMjksMjYzNjAsMjY2NDYsMjY4NjYsMjkzMTIsMjk3OTAsMzE1OTgsMzIxMTAsMzIyMTQsMzI2MjYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzI5OTcsMzMyOTgsMzQyMjMsMzUxOTksMzU0NzUsMzY4OTMsMzc2MDQsNDA2NTMsNDA3MzYsMjI4MDUsMjI4OTMsMjQxMDksMjQ3OTYsMjYxMzIsMjYyMjcsMjY1MTIsMjc3MjgsMjgxMDEsMjg1MTEs''@;'; + put 'put ''MzA3MDcsMzA4ODksMzM5OTAsMzczMjMsMzc2NzUsMjAxODUsMjA2ODIsMjA4MDgsMjE4OTIsMjMzMDcsMjM0NTksMjUxNTksMjU5ODIsMjYwNTksMjgyMTAsMjkwNTMsMjk2OTcsMjk3NjQsMjk4MzEsMjk4ODcsMzAzMTYsMzExNDYsMzIyMTgsMzIzNDEsMzI2ODAsMzMxNDYsMzMyMDMsMzMz''@;'; + put 'put ''MzcsMzQzMzAsMzQ3OTYsMzU0NDUsMzYzMjMsMzY5ODQsMzc1MjEsMzc5MjUsMzkyNDUsMzk4NTQsMjEzNTIsMjM2MzMsMjY5NjQsMjc4NDQsMjc5NDUsMjgyMDMsMzMyOTIsMzQyMDMsMzUxMzEsMzUzNzMsMzU0OTgsMzg2MzQsNDA4MDcsMjEwODksMjYyOTcsMjc1NzAsMzI0MDYsMzQ4MTQs''@;'; + put 'put ''MzYxMDksMzgyNzUsMzg0OTMsMjU4ODUsMjgwNDEsMjkxNjYsNjM4NTQsMjI0NzgsMjI5OTUsMjM0NjgsMjQ2MTUsMjQ4MjYsMjUxMDQsMjYxNDMsMjYyMDcsMjk0ODEsMjk2ODksMzA0MjcsMzA0NjUsMzE1OTYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzI4NTQsMzI4ODIsMzMxMjUsMzU0ODgsMzcyNjYsMTk5OTAsMjEyMTgsMjc1MDYsMjc5MjcsMzEyMzcs''@;'; + put 'put ''MzE1NDUsMzIwNDgsNjM4NTUsMzYwMTYsMjE0ODQsMjIwNjMsMjI2MDksMjM0NzcsMjM1NjcsMjM1NjksMjQwMzQsMjUxNTIsMjU0NzUsMjU2MjAsMjYxNTcsMjY4MDMsMjc4MzYsMjgwNDAsMjgzMzUsMjg3MDMsMjg4MzYsMjkxMzgsMjk5OTAsMzAwOTUsMzAwOTQsMzAyMzMsMzE1MDUsMzE3''@;'; + put 'put ''MTIsMzE3ODcsMzIwMzIsMzIwNTcsMzQwOTIsMzQxNTcsMzQzMTEsMzUzODAsMzY4NzcsMzY5NjEsMzcwNDUsMzc1NTksMzg5MDIsMzk0NzksMjA0MzksMjM2NjAsMjY0NjMsMjgwNDksMzE5MDMsMzIzOTYsMzU2MDYsMzYxMTgsMzY4OTUsMjM0MDMsMjQwNjEsMjU2MTMsMzM5ODQsMzY5NTYs''@;'; + put 'put ''MzkxMzcsMjk1NzUsMjM0MzUsMjQ3MzAsMjY0OTQsMjgxMjYsMzUzNTksMzU0OTQsMzY4NjUsMzg5MjQsMjEwNDcsNjM4NTYsMjg3NTMsMzA4NjIsMzc3ODIsMzQ5MjgsMzczMzUsMjA0NjIsMjE0NjMsMjIwMTMsMjIyMzQsMjI0MDIsMjI3ODEsMjMyMzQsMjM0MzIsMjM3MjMsMjM3NDQsMjQx''@;'; + put 'put ''MDEsMjQ4MzMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjUxMDEs''@;'; + put 'put ''MjUxNjMsMjU0ODAsMjU2MjgsMjU5MTAsMjU5NzYsMjcxOTMsMjc1MzAsMjc3MDAsMjc5MjksMjg0NjUsMjkxNTksMjk0MTcsMjk1NjAsMjk3MDMsMjk4NzQsMzAyNDYsMzA1NjEsMzExNjgsMzEzMTksMzE0NjYsMzE5MjksMzIxNDMsMzIxNzIsMzIzNTMsMzI2NzAsMzMwNjUsMzM1ODUsMzM5''@;'; + put 'put ''MzYsMzQwMTAsMzQyODIsMzQ5NjYsMzU1MDQsMzU3MjgsMzY2NjQsMzY5MzAsMzY5OTUsMzcyMjgsMzc1MjYsMzc1NjEsMzg1MzksMzg1NjcsMzg1NjgsMzg2MTQsMzg2NTYsMzg5MjAsMzkzMTgsMzk2MzUsMzk3MDYsMjE0NjAsMjI2NTQsMjI4MDksMjM0MDgsMjM0ODcsMjgxMTMsMjg1MDYs''@;'; + put 'put ''MjkwODcsMjk3MjksMjk4ODEsMzI5MDEsMzM3ODksMjQwMzMsMjQ0NTUsMjQ0OTAsMjQ2NDIsMjYwOTIsMjY2NDIsMjY5OTEsMjcyMTksMjc1MjksMjc5NTcsMjgxNDcsMjk2NjcsMzA0NjIsMzA2MzYsMzE1NjUsMzIwMjAsMzMwNTksMzMzMDgsMzM2MDAsMzQwMzYsMzQxNDcsMzU0MjYsMzU1''@;'; + put 'put ''MjQsMzcyNTUsMzc2NjIsMzg5MTgsMzkzNDgsMjUxMDAsMzQ4OTksMzY4NDgsMzc0NzcsMjM4MTUsMjM4NDcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjM5MTMsMjk3OTEsMzMxODEsMzQ2NjQsMjg2MjksMjUzNDIsMzI3MjIsMzUxMjYsMzUxODYsMTk5OTgsMjAwNTYsMjA3MTEsMjEyMTMsMjEzMTksMjUyMTUsMjYxMTksMzIzNjEsMzQ4MjEsMzg0OTQsMjAz''@;'; + put 'put ''NjUsMjEyNzMsMjIwNzAsMjI5ODcsMjMyMDQsMjM2MDgsMjM2MzAsMjM2MjksMjQwNjYsMjQzMzcsMjQ2NDMsMjYwNDUsMjYxNTksMjYxNzgsMjY1NTgsMjY2MTIsMjk0NjgsMzA2OTAsMzEwMzQsMzI3MDksMzM5NDAsMzM5OTcsMzUyMjIsMzU0MzAsMzU0MzMsMzU1NTMsMzU5MjUsMzU5NjIs''@;'; + put 'put ''MjI1MTYsMjM1MDgsMjQzMzUsMjQ2ODcsMjUzMjUsMjY4OTMsMjc1NDIsMjgyNTIsMjkwNjAsMzE2OTgsMzQ2NDUsMzU2NzIsMzY2MDYsMzkxMzUsMzkxNjYsMjAyODAsMjAzNTMsMjA0NDksMjE2MjcsMjMwNzIsMjM0ODAsMjQ4OTIsMjYwMzIsMjYyMTYsMjkxODAsMzAwMDMsMzEwNzAsMzIw''@;'; + put 'put ''NTEsMzMxMDIsMzMyNTEsMzM2ODgsMzQyMTgsMzQyNTQsMzQ1NjMsMzUzMzgsMzY1MjMsMzY3NjMsNjM4NTcsMzY4MDUsMjI4MzMsMjM0NjAsMjM1MjYsMjQ3MTMsMjM1MjksMjM1NjMsMjQ1MTUsMjc3NzcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjM4NTgsMjgxNDUsMjg2ODMsMjk5NzgsMzM0NTUsMzU1NzQsMjAxNjAsMjEzMTMsNjM4NTksMzg2MTcsMjc2''@;'; + put 'put ''NjMsMjAxMjYsMjA0MjAsMjA4MTgsMjE4NTQsMjMwNzcsMjM3ODQsMjUxMDUsMjkyNzMsMzM0NjksMzM3MDYsMzQ1NTgsMzQ5MDUsMzUzNTcsMzg0NjMsMzg1OTcsMzkxODcsNDAyMDEsNDAyODUsMjI1MzgsMjM3MzEsMjM5OTcsMjQxMzIsMjQ4MDEsMjQ4NTMsMjU1NjksMjcxMzgsMjgxOTcs''@;'; + put 'put ''MzcxMjIsMzc3MTYsMzg5OTAsMzk5NTIsNDA4MjMsMjM0MzMsMjM3MzYsMjUzNTMsMjYxOTEsMjY2OTYsMzA1MjQsMzg1OTMsMzg3OTcsMzg5OTYsMzk4MzksMjYwMTcsMzU1ODUsMzY1NTUsMzgzMzIsMjE4MTMsMjM3MjEsMjQwMjIsMjQyNDUsMjYyNjMsMzAyODQsMzM3ODAsMzgzNDMsMjI3''@;'; + put 'put ''MzksMjUyNzYsMjkzOTAsNDAyMzIsMjAyMDgsMjI4MzAsMjQ1OTEsMjYxNzEsMjc1MjMsMzEyMDcsNDAyMzAsMjEzOTUsMjE2OTYsMjI0NjcsMjM4MzAsMjQ4NTksMjYzMjYsMjgwNzksMzA4NjEsMzM0MDYsMzg1NTIsMzg3MjQsMjEzODAsMjUyMTIsMjU0OTQsMjgwODIsMzIyNjYsMzMwOTks''@;'; + put 'put ''Mzg5ODksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjczODcsMzI1''@;'; + put 'put ''ODgsNDAzNjcsNDA0NzQsMjAwNjMsMjA1MzksMjA5MTgsMjI4MTIsMjQ4MjUsMjU1OTAsMjY5MjgsMjkyNDIsMzI4MjIsNjM4NjAsMzczMjYsMjQzNjksNjM4NjEsNjM4NjIsMzIwMDQsMzM1MDksMzM5MDMsMzM5NzksMzQyNzcsMzY0OTMsNjM4NjMsMjAzMzUsNjM4NjQsNjM4NjUsMjI3NTYs''@;'; + put 'put ''MjMzNjMsMjQ2NjUsMjU1NjIsMjU4ODAsMjU5NjUsMjYyNjQsNjM4NjYsMjY5NTQsMjcxNzEsMjc5MTUsMjg2NzMsMjkwMzYsMzAxNjIsMzAyMjEsMzExNTUsMzEzNDQsNjM4NjcsMzI2NTAsNjM4NjgsMzUxNDAsNjM4NjksMzU3MzEsMzczMTIsMzg1MjUsNjM4NzAsMzkxNzgsMjIyNzYsMjQ0''@;'; + put 'put ''ODEsMjYwNDQsMjg0MTcsMzAyMDgsMzExNDIsMzU0ODYsMzkzNDEsMzk3NzAsNDA4MTIsMjA3NDAsMjUwMTQsMjUyMzMsMjcyNzcsMzMyMjIsMjA1NDcsMjI1NzYsMjQ0MjIsMjg5MzcsMzUzMjgsMzU1NzgsMjM0MjAsMzQzMjYsMjA0NzQsMjA3OTYsMjIxOTYsMjI4NTIsMjU1MTMsMjgxNTMs''@;'; + put 'put ''MjM5NzgsMjY5ODksMjA4NzAsMjAxMDQsMjAzMTMsNjM4NzEsNjM4NzIsNjM4NzMsMjI5MTQsNjM4NzQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjM4NzUsMjc0ODcsMjc3NDEsNjM4NzYsMjk4NzcsMzA5OTgsNjM4NzcsMzMyODcsMzMzNDksMzM1OTMsMzY2NzEsMzY3MDEsNjM4NzgsMzkxOTIsNjM4NzksNjM4ODAsNjM4ODEsMjAxMzQsNjM4ODIsMjI0OTUs''@;'; + put 'put ''MjQ0NDEsMjYxMzEsNjM4ODMsNjM4ODQsMzAxMjMsMzIzNzcsMzU2OTUsNjM4ODUsMzY4NzAsMzk1MTUsMjIxODEsMjI1NjcsMjMwMzIsMjMwNzEsMjM0NzYsNjM4ODYsMjQzMTAsNjM4ODcsNjM4ODgsMjU0MjQsMjU0MDMsNjM4ODksMjY5NDEsMjc3ODMsMjc4MzksMjgwNDYsMjgwNTEsMjgx''@;'; + put 'put ''NDksMjg0MzYsNjM4OTAsMjg4OTUsMjg5ODIsMjkwMTcsNjM4OTEsMjkxMjMsMjkxNDEsNjM4OTIsMzA3OTksMzA4MzEsNjM4OTMsMzE2MDUsMzIyMjcsNjM4OTQsMzIzMDMsNjM4OTUsMzQ4OTMsMzY1NzUsNjM4OTYsNjM4OTcsNjM4OTgsMzc0NjcsNjM4OTksNDAxODIsNjM5MDAsNjM5MDEs''@;'; + put 'put ''NjM5MDIsMjQ3MDksMjgwMzcsNjM5MDMsMjkxMDUsNjM5MDQsNjM5MDUsMzgzMjEsMjE0MjEsNjM5MDYsNjM5MDcsNjM5MDgsMjY1NzksNjM5MDksMjg4MTQsMjg5NzYsMjk3NDQsMzMzOTgsMzM0OTAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjM5MTAsMzgzMzEsMzk2NTMsNDA1NzMsMjYzMDgsNjM5MTEsMjkxMjEsMzM4NjUsNjM5MTIsNjM5MTMsMjI2MDMs''@;'; + put 'put ''NjM5MTQsNjM5MTUsMjM5OTIsMjQ0MzMsNjM5MTYsMjYxNDQsMjYyNTQsMjcwMDEsMjcwNTQsMjc3MDQsMjc4OTEsMjgyMTQsMjg0ODEsMjg2MzQsMjg2OTksMjg3MTksMjkwMDgsMjkxNTEsMjk1NTIsNjM5MTcsMjk3ODcsNjM5MTgsMjk5MDgsMzA0MDgsMzEzMTAsMzI0MDMsNjM5MTksNjM5''@;'; + put 'put ''MjAsMzM1MjEsMzU0MjQsMzY4MTQsNjM5MjEsMzc3MDQsNjM5MjIsMzg2ODEsNjM5MjMsNjM5MjQsMjAwMzQsMjA1MjIsNjM5MjUsMjFlMywyMTQ3MywyNjM1NSwyNzc1NywyODYxOCwyOTQ1MCwzMDU5MSwzMTMzMCwzMzQ1NCwzNDI2OSwzNDMwNiw2MzkyNiwzNTAyOCwzNTQyNywzNTcwOSwz''@;'; + put 'put ''NTk0Nyw2MzkyNywzNzU1NSw2MzkyOCwzODY3NSwzODkyOCwyMDExNiwyMDIzNywyMDQyNSwyMDY1OCwyMTMyMCwyMTU2NiwyMTU1NSwyMTk3OCwyMjYyNiwyMjcxNCwyMjg4NywyMzA2NywyMzUyNCwyNDczNSw2MzkyOSwyNTAzNCwyNTk0MiwyNjExMSwyNjIxMiwyNjc5MSwyNzczOCwyODU5''@;'; + put 'put ''NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyODg3OSwyOTEwMCwy''@;'; + put 'put ''OTUyMiwzMTYxMywzNDU2OCwzNTQ5MiwzOTk4Niw0MDcxMSwyMzYyNywyNzc3OSwyOTUwOCwyOTU3NywzNzQzNCwyODMzMSwyOTc5NywzMDIzOSwzMTMzNywzMjI3NywzNDMxNCwyMDgwMCwyMjcyNSwyNTc5MywyOTkzNCwyOTk3MywzMDMyMCwzMjcwNSwzNzAxMywzODYwNSwzOTI1MiwyODE5''@;'; + put 'put ''OCwyOTkyNiwzMTQwMSwzMTQwMiwzMzI1MywzNDUyMSwzNDY4MCwzNTM1NSwyMzExMywyMzQzNiwyMzQ1MSwyNjc4NSwyNjg4MCwyODAwMywyOTYwOSwyOTcxNSwyOTc0MCwzMDg3MSwzMjIzMywzMjc0NywzMzA0OCwzMzEwOSwzMzY5NCwzNTkxNiwzODQ0NiwzODkyOSwyNjM1MiwyNDQ0OCwy''@;'; + put 'put ''NjEwNiwyNjUwNSwyNzc1NCwyOTU3OSwyMDUyNSwyMzA0MywyNzQ5OCwzMDcwMiwyMjgwNiwyMzkxNiwyNDAxMywyOTQ3NywzMDAzMSw2MzkzMCw2MzkzMSwyMDcwOSwyMDk4NSwyMjU3NSwyMjgyOSwyMjkzNCwyMzAwMiwyMzUyNSw2MzkzMiw2MzkzMywyMzk3MCwyNTMwMywyNTYyMiwyNTc0''@;'; + put 'put ''NywyNTg1NCw2MzkzNCwyNjMzMiw2MzkzNSwyNzIwOCw2MzkzNiwyOTE4MywyOTc5Niw2MzkzNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMTM2OCwzMTQwNywzMjMyNywzMjM1MCwzMjc2OCwzMzEzNiw2MzkzOCwzNDc5OSwzNTIwMSwzNTYxNiwzNjk1Myw2MzkzOSwzNjk5MiwzOTI1MCwyNDk1OCwyNzQ0MiwyODAyMCwzMjI4NywzNTEwOSwzNjc4NSwyMDQz''@;'; + put 'put ''MywyMDY1MywyMDg4NywyMTE5MSwyMjQ3MSwyMjY2NSwyMzQ4MSwyNDI0OCwyNDg5OCwyNzAyOSwyODA0NCwyODI2MywyODM0MiwyOTA3NiwyOTc5NCwyOTk5MiwyOTk5NiwzMjg4MywzMzU5MiwzMzk5MywzNjM2MiwzNzc4MCwzNzg1NCw2Mzk0MCwyMDExMCwyMDMwNSwyMDU5OCwyMDc3OCwy''@;'; + put 'put ''MTQ0OCwyMTQ1MSwyMTQ5MSwyMzQzMSwyMzUwNywyMzU4OCwyNDg1OCwyNDk2MiwyNjEwMCwyOTI3NSwyOTU5MSwyOTc2MCwzMDQwMiwzMTA1NiwzMTEyMSwzMTE2MSwzMjAwNiwzMjcwMSwzMzQxOSwzNDI2MSwzNDM5OCwzNjgwMiwzNjkzNSwzNzEwOSwzNzM1NCwzODUzMywzODYzMiwzODYz''@;'; + put 'put ''MywyMTIwNiwyNDQyMywyNjA5MywyNjE2MSwyNjY3MSwyOTAyMCwzMTI4NiwzNzA1NywzODkyMiwyMDExMyw2Mzk0MSwyNzIxOCwyNzU1MCwyODU2MCwyOTA2NSwzMjc5MiwzMzQ2NCwzNDEzMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNjkzOSwzODU0OSwzODY0MiwzODkwNywzNDA3NCwzOTcyOSwyMDExMiwyOTA2NiwzODU5NiwyMDgwMywyMTQwNywyMTcy''@;'; + put 'put ''OSwyMjI5MSwyMjI5MCwyMjQzNSwyMzE5NSwyMzIzNiwyMzQ5MSwyNDYxNiwyNDg5NSwyNTU4OCwyNzc4MSwyNzk2MSwyODI3NCwyODMwNCwyOTIzMiwyOTUwMywyOTc4MywzMzQ4OSwzNDk0NSwzNjY3NywzNjk2MCw2Mzk0MiwzODQ5OCwzOWUzLDQwMjE5LDI2Mzc2LDM2MjM0LDM3NDcwLDIw''@;'; + put 'put ''MzAxLDIwNTUzLDIwNzAyLDIxMzYxLDIyMjg1LDIyOTk2LDIzMDQxLDIzNTYxLDI0OTQ0LDI2MjU2LDI4MjA1LDI5MjM0LDI5NzcxLDMyMjM5LDMyOTYzLDMzODA2LDMzODk0LDM0MTExLDM0NjU1LDM0OTA3LDM1MDk2LDM1NTg2LDM2OTQ5LDM4ODU5LDM5NzU5LDIwMDgzLDIwMzY5LDIwNzU0''@;'; + put 'put ''LDIwODQyLDYzOTQzLDIxODA3LDIxOTI5LDIzNDE4LDIzNDYxLDI0MTg4LDI0MTg5LDI0MjU0LDI0NzM2LDI0Nzk5LDI0ODQwLDI0ODQxLDI1NTQwLDI1OTEyLDI2Mzc3LDYzOTQ0LDI2NTgwLDI2NTg2LDYzOTQ1LDI2OTc3LDI2OTc4LDI3ODMzLDI3OTQzLDYzOTQ2LDI4MjE2LDYzOTQ3LG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI4NjQxLDI5NDk0LDI5NDk1''@;'; + put 'put ''LDYzOTQ4LDI5Nzg4LDMwMDAxLDYzOTQ5LDMwMjkwLDYzOTUwLDYzOTUxLDMyMTczLDMzMjc4LDMzODQ4LDM1MDI5LDM1NDgwLDM1NTQ3LDM1NTY1LDM2NDAwLDM2NDE4LDM2OTM4LDM2OTI2LDM2OTg2LDM3MTkzLDM3MzIxLDM3NzQyLDYzOTUyLDYzOTUzLDIyNTM3LDYzOTU0LDI3NjAzLDMy''@;'; + put 'put ''OTA1LDMyOTQ2LDYzOTU1LDYzOTU2LDIwODAxLDIyODkxLDIzNjA5LDYzOTU3LDYzOTU4LDI4NTE2LDI5NjA3LDMyOTk2LDM2MTAzLDYzOTU5LDM3Mzk5LDM4Mjg3LDYzOTYwLDYzOTYxLDYzOTYyLDYzOTYzLDMyODk1LDI1MTAyLDI4NzAwLDMyMTA0LDM0NzAxLDYzOTY0LDIyNDMyLDI0Njgx''@;'; + put 'put ''LDI0OTAzLDI3NTc1LDM1NTE4LDM3NTA0LDM4NTc3LDIwMDU3LDIxNTM1LDI4MTM5LDM0MDkzLDM4NTEyLDM4ODk5LDM5MTUwLDI1NTU4LDI3ODc1LDM3MDA5LDIwOTU3LDI1MDMzLDMzMjEwLDQwNDQxLDIwMzgxLDIwNTA2LDIwNzM2LDIzNDUyLDI0ODQ3LDI1MDg3LDI1ODM2LDI2ODg1LDI3''@;'; + put 'put ''NTg5LDMwMDk3LDMwNjkxLDMyNjgxLDMzMzgwLDM0MTkxLDM0ODExLDM0OTE1LDM1NTE2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM1Njk2LDM3MjkxLDIwMTA4LDIwMTk3LDIwMjM0LDYzOTY1LDYzOTY2LDIyODM5LDIzMDE2LDYzOTY3LDI0MDUwLDI0MzQ3LDI0NDExLDI0NjA5LDYzOTY4LDYzOTY5LDYzOTcwLDYzOTcxLDI5MjQ2LDI5NjY5LDYzOTcyLDMw''@;'; + put 'put ''MDY0LDMwMTU3LDYzOTczLDMxMjI3LDYzOTc0LDMyNzgwLDMyODE5LDMyOTAwLDMzNTA1LDMzNjE3LDYzOTc1LDYzOTc2LDM2MDI5LDM2MDE5LDM2OTk5LDYzOTc3LDYzOTc4LDM5MTU2LDM5MTgwLDYzOTc5LDYzOTgwLDI4NzI3LDMwNDEwLDMyNzE0LDMyNzE2LDMyNzY0LDM1NjEwLDIwMTU0''@;'; + put 'put ''LDIwMTYxLDIwOTk1LDIxMzYwLDYzOTgxLDIxNjkzLDIyMjQwLDIzMDM1LDIzNDkzLDI0MzQxLDI0NTI1LDI4MjcwLDYzOTgyLDYzOTgzLDMyMTA2LDMzNTg5LDYzOTg0LDM0NDUxLDM1NDY5LDYzOTg1LDM4NzY1LDM4Nzc1LDYzOTg2LDYzOTg3LDE5OTY4LDIwMzE0LDIwMzUwLDIyNzc3LDI2''@;'; + put 'put ''MDg1LDI4MzIyLDM2OTIwLDM3ODA4LDM5MzUzLDIwMjE5LDIyNzY0LDIyOTIyLDIzMDAxLDI0NjQxLDYzOTg4LDYzOTg5LDMxMjUyLDYzOTkwLDMzNjE1LDM2MDM1LDIwODM3LDIxMzE2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDYzOTkxLDYzOTkyLDYzOTkzLDIwMTczLDIxMDk3LDIzMzgxLDMzNDcxLDIwMTgwLDIxMDUwLDIxNjcyLDIyOTg1LDIzMDM5LDIz''@;'; + put 'put ''Mzc2LDIzMzgzLDIzMzg4LDI0Njc1LDI0OTA0LDI4MzYzLDI4ODI1LDI5MDM4LDI5NTc0LDI5OTQzLDMwMTMzLDMwOTEzLDMyMDQzLDMyNzczLDMzMjU4LDMzNTc2LDM0MDcxLDM0MjQ5LDM1NTY2LDM2MDM5LDM4NjA0LDIwMzE2LDIxMjQyLDIyMjA0LDI2MDI3LDI2MTUyLDI4Nzk2LDI4ODU2''@;'; + put 'put ''LDI5MjM3LDMyMTg5LDMzNDIxLDM3MTk2LDM4NTkyLDQwMzA2LDIzNDA5LDI2ODU1LDI3NTQ0LDI4NTM4LDMwNDMwLDIzNjk3LDI2MjgzLDI4NTA3LDMxNjY4LDMxNzg2LDM0ODcwLDM4NjIwLDE5OTc2LDIwMTgzLDIxMjgwLDIyNTgwLDIyNzE1LDIyNzY3LDIyODkyLDIzNTU5LDI0MTE1LDI0''@;'; + put 'put ''MTk2LDI0MzczLDI1NDg0LDI2MjkwLDI2NDU0LDI3MTY3LDI3Mjk5LDI3NDA0LDI4NDc5LDI5MjU0LDYzOTk0LDI5NTIwLDI5ODM1LDMxNDU2LDMxOTExLDMzMTQ0LDMzMjQ3LDMzMjU1LDMzNjc0LDMzOTAwLDM0MDgzLDM0MTk2LDM0MjU1LDM1MDM3LDM2MTE1LDM3MjkyLDM4MjYzLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM4NTU2LDIwODc3LDIxNzA1LDIy''@;'; + put 'put ''MzEyLDIzNDcyLDI1MTY1LDI2NDQ4LDI2Njg1LDI2NzcxLDI4MjIxLDI4MzcxLDI4Nzk3LDMyMjg5LDM1MDA5LDM2MDAxLDM2NjE3LDQwNzc5LDQwNzgyLDI5MjI5LDMxNjMxLDM1NTMzLDM3NjU4LDIwMjk1LDIwMzAyLDIwNzg2LDIxNjMyLDIyOTkyLDI0MjEzLDI1MjY5LDI2NDg1LDI2OTkw''@;'; + put 'put ''LDI3MTU5LDI3ODIyLDI4MTg2LDI5NDAxLDI5NDgyLDMwMTQxLDMxNjcyLDMyMDUzLDMzNTExLDMzNzg1LDMzODc5LDM0Mjk1LDM1NDE5LDM2MDE1LDM2NDg3LDM2ODg5LDM3MDQ4LDM4NjA2LDQwNzk5LDIxMjE5LDIxNTE0LDIzMjY1LDIzNDkwLDI1Njg4LDI1OTczLDI4NDA0LDI5MzgwLDYz''@;'; + put 'put ''OTk1LDMwMzQwLDMxMzA5LDMxNTE1LDMxODIxLDMyMzE4LDMyNzM1LDMzNjU5LDM1NjI3LDM2MDQyLDM2MTk2LDM2MzIxLDM2NDQ3LDM2ODQyLDM2ODU3LDM2OTY5LDM3ODQxLDIwMjkxLDIwMzQ2LDIwNjU5LDIwODQwLDIwODU2LDIxMDY5LDIxMDk4LDIyNjI1LDIyNjUyLDIyODgwLDIzNTYw''@;'; + put 'put ''LDIzNjM3LDI0MjgzLDI0NzMxLDI1MTM2LDI2NjQzLDI3NTgzLDI3NjU2LDI4NTkzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI5MDA2LDI5NzI4LDNlNCwzMDAwOCwzMDAzMywzMDMyMiwzMTU2NCwzMTYyNywzMTY2MSwzMTY4NiwzMjM5OSwzNTQzOCwzNjY3MCwzNjY4MSwzNzQzOSwzNzUyMywzNzY2NiwzNzkzMSwzODY1MSwzOTAwMiwzOTAxOSwzOTE5OCwy''@;'; + put 'put ''MDk5OSwyNTEzMCwyNTI0MCwyNzk5MywzMDMwOCwzMTQzNCwzMTY4MCwzMjExOCwyMTM0NCwyMzc0MiwyNDIxNSwyODQ3MiwyODg1NywzMTg5NiwzODY3MywzOTgyMiw0MDY3MCwyNTUwOSwyNTcyMiwzNDY3OCwxOTk2OSwyMDExNywyMDE0MSwyMDU3MiwyMDU5NywyMTU3NiwyMjk3OSwyMzQ1''@;'; + put 'put ''MCwyNDEyOCwyNDIzNywyNDMxMSwyNDQ0OSwyNDc3MywyNTQwMiwyNTkxOSwyNTk3MiwyNjA2MCwyNjIzMCwyNjIzMiwyNjYyMiwyNjk4NCwyNzI3MywyNzQ5MSwyNzcxMiwyODA5NiwyODEzNiwyODE5MSwyODI1NCwyODcwMiwyODgzMywyOTU4MiwyOTY5MywzMDAxMCwzMDU1NSwzMDg1NSwz''@;'; + put 'put ''MTExOCwzMTI0MywzMTM1NywzMTkzNCwzMjE0MiwzMzM1MSwzNTMzMCwzNTU2MiwzNTk5OCwzNzE2NSwzNzE5NCwzNzMzNiwzNzQ3OCwzNzU4MCwzNzY2NCwzODY2MiwzODc0MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzODc0OCwzODkxNCw0MDcxOCwyMTA0NiwyMTEzNywyMTg4NCwyMjU2NCwyNDA5MywyNDM1MSwyNDcxNiwyNTU1MiwyNjc5OSwyODYzOSwz''@;'; + put 'put ''MTA4NSwzMTUzMiwzMzIyOSwzNDIzNCwzNTA2OSwzNTU3NiwzNjQyMCwzNzI2MSwzODUwMCwzODU1NSwzODcxNywzODk4OCw0MDc3OCwyMDQzMCwyMDgwNiwyMDkzOSwyMTE2MSwyMjA2NiwyNDM0MCwyNDQyNywyNTUxNCwyNTgwNSwyNjA4OSwyNjE3NywyNjM2MiwyNjM2MSwyNjM5NywyNjc4''@;'; + put 'put ''MSwyNjgzOSwyNzEzMywyODQzNywyODUyNiwyOTAzMSwyOTE1NywyOTIyNiwyOTg2NiwzMDUyMiwzMTA2MiwzMTA2NiwzMTE5OSwzMTI2NCwzMTM4MSwzMTg5NSwzMTk2NywzMjA2OCwzMjM2OCwzMjkwMywzNDI5OSwzNDQ2OCwzNTQxMiwzNTUxOSwzNjI0OSwzNjQ4MSwzNjg5NiwzNjk3Mywz''@;'; + put 'put ''NzM0NywzODQ1OSwzODYxMyw0MDE2NSwyNjA2MywzMTc1MSwzNjI3NSwzNzgyNywyMzM4NCwyMzU2MiwyMTMzMCwyNTMwNSwyOTQ2OSwyMDUxOSwyMzQ0NywyNDQ3OCwyNDc1MiwyNDkzOSwyNjgzNywyODEyMSwyOTc0MiwzMTI3OCwzMjA2NiwzMjE1NiwzMjMwNSwzMzEzMSxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNjM5NCwzNjQwNSwzNzc1OCwzNzkxMiwy''@;'; + put 'put ''MDMwNCwyMjM1MiwyNDAzOCwyNDIzMSwyNTM4NywzMjYxOCwyMDAyNywyMDMwMywyMDM2NywyMDU3MCwyMzAwNSwzMjk2NCwyMTYxMCwyMTYwOCwyMjAxNCwyMjg2MywyMzQ0OSwyNDAzMCwyNDI4MiwyNjIwNSwyNjQxNywyNjYwOSwyNjY2NiwyNzg4MCwyNzk1NCwyODIzNCwyODU1NywyODg1''@;'; + put 'put ''NSwyOTY2NCwzMDA4NywzMTgyMCwzMjAwMiwzMjA0NCwzMjE2MiwzMzMxMSwzNDUyMywzNTM4NywzNTQ2MSwzNjIwOCwzNjQ5MCwzNjY1OSwzNjkxMywzNzE5OCwzNzIwMiwzNzk1NiwzOTM3NiwzMTQ4MSwzMTkwOSwyMDQyNiwyMDczNywyMDkzNCwyMjQ3MiwyMzUzNSwyMzgwMywyNjIwMSwy''@;'; + put 'put ''NzE5NywyNzk5NCwyODMxMCwyODY1MiwyODk0MCwzMDA2MywzMTQ1OSwzNDg1MCwzNjg5NywzNjk4MSwzODYwMywzOTQyMywzMzUzNywyMDAxMywyMDIxMCwzNDg4NiwzNzMyNSwyMTM3MywyNzM1NSwyNjk4NywyNzcxMywzMzkxNCwyMjY4NiwyNDk3NCwyNjM2NiwyNTMyNywyODg5MywyOTk2''@;'; + put 'put ''OSwzMDE1MSwzMjMzOCwzMzk3NiwzNTY1NywzNjEwNCwyMDA0MywyMTQ4MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMTY3NSwyMjMyMCwyMjMzNiwyNDUzNSwyNTM0NSwyNTM1MSwyNTcxMSwyNTkwMywyNjA4OCwyNjIzNCwyNjUyNSwyNjU0NywyNzQ5MCwyNzc0NCwyNzgwMiwyODQ2MCwzMDY5MywzMDc1NywzMTA0OSwzMTA2MywzMjAyNSwzMjkzMCwzMzAy''@;'; + put 'put ''NiwzMzI2NywzMzQzNywzMzQ2MywzNDU4NCwzNTQ2OCw2Mzk5NiwzNjEwMCwzNjI4NiwzNjk3OCwzMDQ1MiwzMTI1NywzMTI4NywzMjM0MCwzMjg4NywyMTc2NywyMTk3MiwyMjY0NSwyNTM5MSwyNTYzNCwyNjE4NSwyNjE4NywyNjczMywyNzAzNSwyNzUyNCwyNzk0MSwyODMzNywyOTY0NSwy''@;'; + put 'put ''OTgwMCwyOTg1NywzMDA0MywzMDEzNywzMDQzMywzMDQ5NCwzMDYwMywzMTIwNiwzMjI2NSwzMjI4NSwzMzI3NSwzNDA5NSwzNDk2NywzNTM4NiwzNjA0OSwzNjU4NywzNjc4NCwzNjkxNCwzNzgwNSwzODQ5OSwzODUxNSwzODY2MywyMDM1NiwyMTQ4OSwyMzAxOCwyMzI0MSwyNDA4OSwyNjcw''@;'; + put 'put ''MiwyOTg5NCwzMDE0MiwzMTIwOSwzMTM3OCwzMzE4NywzNDU0MSwzNjA3NCwzNjMwMCwzNjg0NSwyNjAxNSwyNjM4OSw2Mzk5NywyMjUxOSwyODUwMywzMjIyMSwzNjY1NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNzg3OCwzODU5OCwyNDUwMSwyNTA3NCwyODU0OCwxOTk4OCwyMDM3NiwyMDUxMSwyMTQ0OSwyMTk4MywyMzkxOSwyNDA0NiwyNzQyNSwyNzQ5''@;'; + put 'put ''MiwzMDkyMywzMTY0Miw2Mzk5OCwzNjQyNSwzNjU1NCwzNjk3NCwyNTQxNywyNTY2MiwzMDUyOCwzMTM2NCwzNzY3OSwzODAxNSw0MDgxMCwyNTc3NiwyODU5MSwyOTE1OCwyOTg2NCwyOTkxNCwzMTQyOCwzMTc2MiwzMjM4NiwzMTkyMiwzMjQwOCwzNTczOCwzNjEwNiwzODAxMywzOTE4NCwz''@;'; + put 'put ''OTI0NCwyMTA0OSwyMzUxOSwyNTgzMCwyNjQxMywzMjA0NiwyMDcxNywyMTQ0MywyMjY0OSwyNDkyMCwyNDkyMSwyNTA4MiwyNjAyOCwzMTQ0OSwzNTczMCwzNTczNCwyMDQ4OSwyMDUxMywyMTEwOSwyMTgwOSwyMzEwMCwyNDI4OCwyNDQzMiwyNDg4NCwyNTk1MCwyNjEyNCwyNjE2NiwyNjI3''@;'; + put 'put ''NCwyNzA4NSwyODM1NiwyODQ2NiwyOTQ2MiwzMDI0MSwzMTM3OSwzMzA4MSwzMzM2OSwzMzc1MCwzMzk4MCwyMDY2MSwyMjUxMiwyMzQ4OCwyMzUyOCwyNDQyNSwyNTUwNSwzMDc1OCwzMjE4MSwzMzc1NiwzNDA4MSwzNzMxOSwzNzM2NSwyMDg3NCwyNjYxMywzMTU3NCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNjAxMiwyMDkzMiwyMjk3MSwyNDc2NSwzNDM4''@;'; + put 'put ''OSwyMDUwOCw2Mzk5OSwyMTA3NiwyMzYxMCwyNDk1NywyNTExNCwyNTI5OSwyNTg0MiwyNjAyMSwyODM2NCwzMDI0MCwzMzAzNCwzNjQ0OCwzODQ5NSwzODU4NywyMDE5MSwyMTMxNSwyMTkxMiwyMjgyNSwyNDAyOSwyNTc5NywyNzg0OSwyODE1NCwyOTU4OCwzMTM1OSwzMzMwNywzNDIxNCwz''@;'; + put 'put ''NjA2OCwzNjM2OCwzNjk4MywzNzM1MSwzODM2OSwzODQzMywzODg1NCwyMDk4NCwyMTc0NiwyMTg5NCwyNDUwNSwyNTc2NCwyODU1MiwzMjE4MCwzNjYzOSwzNjY4NSwzNzk0MSwyMDY4MSwyMzU3NCwyNzgzOCwyODE1NSwyOTk3OSwzMDY1MSwzMTgwNSwzMTg0NCwzNTQ0OSwzNTUyMiwyMjU1''@;'; + put 'put ''OCwyMjk3NCwyNDA4NiwyNTQ2MywyOTI2NiwzMDA5MCwzMDU3MSwzNTU0OCwzNjAyOCwzNjYyNiwyNDMwNywyNjIyOCwyODE1MiwzMjg5MywzMzcyOSwzNTUzMSwzODczNywzOTg5NCw2NGUzLDIxMDU5LDI2MzY3LDI4MDUzLDI4Mzk5LDMyMjI0LDM1NTU4LDM2OTEwLDM2OTU4LDM5NjM2LDIx''@;'; + put 'put ''MDIxLDIxMTE5LDIxNzM2LDI0OTgwLDI1MjIwLDI1MzA3LDI2Nzg2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI2ODk4LDI2OTcwLDI3MTg5LDI4ODE4LDI4OTY2LDMwODEzLDMwOTc3LDMwOTkwLDMxMTg2LDMxMjQ1LDMyOTE4LDMzNDAwLDMzNDkzLDMzNjA5LDM0MTIxLDM1OTcwLDM2MjI5LDM3MjE4LDM3MjU5LDM3Mjk0LDIwNDE5LDIyMjI1LDI5MTY1LDMw''@;'; + put 'put ''Njc5LDM0NTYwLDM1MzIwLDIzNTQ0LDI0NTM0LDI2NDQ5LDM3MDMyLDIxNDc0LDIyNjE4LDIzNTQxLDI0NzQwLDI0OTYxLDI1Njk2LDMyMzE3LDMyODgwLDM0MDg1LDM3NTA3LDI1Nzc0LDIwNjUyLDIzODI4LDI2MzY4LDIyNjg0LDI1Mjc3LDI1NTEyLDI2ODk0LDI3ZTMsMjcxNjYsMjgyNjcs''@;'; + put 'put ''MzAzOTQsMzExNzksMzM0NjcsMzM4MzMsMzU1MzUsMzYyNjQsMzY4NjEsMzcxMzgsMzcxOTUsMzcyNzYsMzc2NDgsMzc2NTYsMzc3ODYsMzg2MTksMzk0NzgsMzk5NDksMTk5ODUsMzAwNDQsMzEwNjksMzE0ODIsMzE1NjksMzE2ODksMzIzMDIsMzM5ODgsMzY0NDEsMzY0NjgsMzY2MDAsMzY4''@;'; + put 'put ''ODAsMjYxNDksMjY5NDMsMjk3NjMsMjA5ODYsMjY0MTQsNDA2NjgsMjA4MDUsMjQ1NDQsMjc3OTgsMzQ4MDIsMzQ5MDksMzQ5MzUsMjQ3NTYsMzMyMDUsMzM3OTUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzYxMDEsMjE0NjIsMjE1NjEsMjIwNjgsMjMwOTQsMjM2MDEsMjg4MTAsMzI3MzYsMzI4NTgsMzMwMzAsMzMyNjEsMzYyNTksMzcyNTcsMzk1MTksNDA0''@;'; + put 'put ''MzQsMjA1OTYsMjAxNjQsMjE0MDgsMjQ4MjcsMjgyMDQsMjM2NTIsMjAzNjAsMjA1MTYsMjE5ODgsMjM3NjksMjQxNTksMjQ2NzcsMjY3NzIsMjc4MzUsMjgxMDAsMjkxMTgsMzAxNjQsMzAxOTYsMzAzMDUsMzEyNTgsMzEzMDUsMzIxOTksMzIyNTEsMzI2MjIsMzMyNjgsMzQ0NzMsMzY2MzYs''@;'; + put 'put ''Mzg2MDEsMzkzNDcsNDA3ODYsMjEwNjMsMjExODksMzkxNDksMzUyNDIsMTk5NzEsMjY1NzgsMjg0MjIsMjA0MDUsMjM1MjIsMjY1MTcsMjc3ODQsMjgwMjQsMjk3MjMsMzA3NTksMzczNDEsMzc3NTYsMzQ3NTYsMzEyMDQsMzEyODEsMjQ1NTUsMjAxODIsMjE2NjgsMjE4MjIsMjI3MDIsMjI5''@;'; + put 'put ''NDksMjQ4MTYsMjUxNzEsMjUzMDIsMjY0MjIsMjY5NjUsMzMzMzMsMzg0NjQsMzkzNDUsMzkzODksMjA1MjQsMjEzMzEsMjE4MjgsMjIzOTYsNjQwMDEsMjUxNzYsNjQwMDIsMjU4MjYsMjYyMTksMjY1ODksMjg2MDksMjg2NTUsMjk3MzAsMjk3NTIsMzUzNTEsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzc5NDQsMjE1ODUsMjIwMjIsMjIzNzQsMjQzOTIsMjQ5''@;'; + put 'put ''ODYsMjc0NzAsMjg3NjAsMjg4NDUsMzIxODcsMzU0NzcsMjI4OTAsMzMwNjcsMjU1MDYsMzA0NzIsMzI4MjksMzYwMTAsMjI2MTIsMjU2NDUsMjcwNjcsMjM0NDUsMjQwODEsMjgyNzEsNjQwMDMsMzQxNTMsMjA4MTIsMjE0ODgsMjI4MjYsMjQ2MDgsMjQ5MDcsMjc1MjYsMjc3NjAsMjc4ODgs''@;'; + put 'put ''MzE1MTgsMzI5NzQsMzM0OTIsMzYyOTQsMzcwNDAsMzkwODksNjQwMDQsMjU3OTksMjg1ODAsMjU3NDUsMjU4NjAsMjA4MTQsMjE1MjAsMjIzMDMsMzUzNDIsMjQ5MjcsMjY3NDIsNjQwMDUsMzAxNzEsMzE1NzAsMzIxMTMsMzY4OTAsMjI1MzQsMjcwODQsMzMxNTEsMzUxMTQsMzY4NjQsMzg5''@;'; + put 'put ''NjksMjA2MDAsMjI4NzEsMjI5NTYsMjUyMzcsMzY4NzksMzk3MjIsMjQ5MjUsMjkzMDUsMzgzNTgsMjIzNjksMjMxMTAsMjQwNTIsMjUyMjYsMjU3NzMsMjU4NTAsMjY0ODcsMjc4NzQsMjc5NjYsMjkyMjgsMjk3NTAsMzA3NzIsMzI2MzEsMzM0NTMsMzYzMTUsMzg5MzUsMjEwMjgsMjIzMzgs''@;'; + put 'put ''MjY0OTUsMjkyNTYsMjk5MjMsMzYwMDksMzY3NzQsMzczOTMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsMzg0NDIsMjA4NDMsMjE0ODUsMjU0MjAsMjAzMjksMjE3NjQsMjQ3MjYsMjU5NDMsMjc4MDMsMjgwMzEsMjkyNjAsMjk0MzcsMzEyNTUsMzUyMDcsMzU5OTcsMjQ0MjksMjg1NTgsMjg5MjEsMzMxOTIsMjQ4NDYsMjA0MTUsMjA1NTksMjUxNTMsMjkyNTUs''@;'; + put 'put ''MzE2ODcsMzIyMzIsMzI3NDUsMzY5NDEsMzg4MjksMzk0NDksMzYwMjIsMjIzNzgsMjQxNzksMjY1NDQsMzM4MDUsMzU0MTMsMjE1MzYsMjMzMTgsMjQxNjMsMjQyOTAsMjQzMzAsMjU5ODcsMzI5NTQsMzQxMDksMzgyODEsMzg0OTEsMjAyOTYsMjEyNTMsMjEyNjEsMjEyNjMsMjE2MzgsMjE3''@;'; + put 'put ''NTQsMjIyNzUsMjQwNjcsMjQ1OTgsMjUyNDMsMjUyNjUsMjU0MjksNjQwMDYsMjc4NzMsMjgwMDYsMzAxMjksMzA3NzAsMzI5OTAsMzMwNzEsMzM1MDIsMzM4ODksMzM5NzAsMzQ5NTcsMzUwOTAsMzY4NzUsMzc2MTAsMzkxNjUsMzk4MjUsMjQxMzMsMjYyOTIsMjYzMzMsMjg2ODksMjkxOTAs''@;'; + put 'put ''NjQwMDcsMjA0NjksMjExMTcsMjQ0MjYsMjQ5MTUsMjY0NTEsMjcxNjEsMjg0MTgsMjk5MjIsMzEwODAsMzQ5MjAsMzU5NjEsMzkxMTEsMzkxMDgsMzk0OTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjE2OTcsMzEyNjMsMjY5NjMsMzU1NzUsMzU5MTQsMzkwODAsMzkzNDIsMjQ0NDQsMjUyNTksMzAxMzAsMzAzODIsMzQ5ODcsMzY5OTEsMzg0NjYsMjEzMDUs''@;'; + put 'put ''MjQzODAsMjQ1MTcsMjc4NTIsMjk2NDQsMzAwNTAsMzAwOTEsMzE1NTgsMzM1MzQsMzkzMjUsMjAwNDcsMzY5MjQsMTk5NzksMjAzMDksMjE0MTQsMjI3OTksMjQyNjQsMjYxNjAsMjc4MjcsMjk3ODEsMzM2NTUsMzQ2NjIsMzYwMzIsMzY5NDQsMzg2ODYsMzk5NTcsMjI3MzcsMjM0MTYsMzQz''@;'; + put 'put ''ODQsMzU2MDQsNDAzNzIsMjM1MDYsMjQ2ODAsMjQ3MTcsMjYwOTcsMjc3MzUsMjg0NTAsMjg1NzksMjg2OTgsMzI1OTcsMzI3NTIsMzgyODksMzgyOTAsMzg0ODAsMzg4NjcsMjExMDYsMzY2NzYsMjA5ODksMjE1NDcsMjE2ODgsMjE4NTksMjE4OTgsMjczMjMsMjgwODUsMzIyMTYsMzMzODIs''@;'; + put 'put ''Mzc1MzIsMzg1MTksNDA1NjksMjE1MTIsMjE3MDQsMzA0MTgsMzQ1MzIsMzgzMDgsMzgzNTYsMzg0OTIsMjAxMzAsMjAyMzMsMjMwMjIsMjMyNzAsMjQwNTUsMjQ2NTgsMjUyMzksMjY0NzcsMjY2ODksMjc3ODIsMjgyMDcsMzI1NjgsMzI5MjMsMzMzMjIsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjQwMDgsNjQwMDksMzg5MTcsMjAxMzMsMjA1NjUsMjE2ODMs''@;'; + put 'put ''MjI0MTksMjI4NzQsMjM0MDEsMjM0NzUsMjUwMzIsMjY5OTksMjgwMjMsMjg3MDcsMzQ4MDksMzUyOTksMzU0NDIsMzU1NTksMzY5OTQsMzk0MDUsMzk2MDgsMjExODIsMjY2ODAsMjA1MDIsMjQxODQsMjY0NDcsMzM2MDcsMzQ4OTIsMjAxMzksMjE1MjEsMjIxOTAsMjk2NzAsMzcxNDEsMzg5''@;'; + put 'put ''MTEsMzkxNzcsMzkyNTUsMzkzMjEsMjIwOTksMjI2ODcsMzQzOTUsMzUzNzcsMjUwMTAsMjczODIsMjk1NjMsMzY1NjIsMjc0NjMsMzg1NzAsMzk1MTEsMjI4NjksMjkxODQsMzYyMDMsMzg3NjEsMjA0MzYsMjM3OTYsMjQzNTgsMjUwODAsMjYyMDMsMjc4ODMsMjg4NDMsMjk1NzIsMjk2MjUs''@;'; + put 'put ''Mjk2OTQsMzA1MDUsMzA1NDEsMzIwNjcsMzIwOTgsMzIyOTEsMzMzMzUsMzQ4OTgsNjQwMTAsMzYwNjYsMzc0NDksMzkwMjMsMjMzNzcsMzEzNDgsMzQ4ODAsMzg5MTMsMjMyNDQsMjA0NDgsMjEzMzIsMjI4NDYsMjM4MDUsMjU0MDYsMjgwMjUsMjk0MzMsMzMwMjksMzMwMzEsMzM2OTgsMzc1''@;'; + put 'put ''ODMsMzg5NjAsMjAxMzYsMjA4MDQsMjEwMDksMjI0MTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsMjQ0MTgsMjc4NDIsMjgzNjYsMjg2NzcsMjg3NTIsMjg4NDcsMjkwNzQsMjk2NzMsMjk4MDEsMzM2MTAsMzQ3MjIsMzQ5MTMsMzY4NzIsMzcwMjYsMzc3OTUsMzkzMzYsMjA4NDYsMjQ0MDcsMjQ4MDAsMjQ5MzUsMjYyOTEsMzQxMzcsMzY0MjYsMzcyOTUsMzg3''@;'; + put 'put ''OTUsMjAwNDYsMjAxMTQsMjE2MjgsMjI3NDEsMjI3NzgsMjI5MDksMjM3MzMsMjQzNTksMjUxNDIsMjUxNjAsMjYxMjIsMjYyMTUsMjc2MjcsMjgwMDksMjgxMTEsMjgyNDYsMjg0MDgsMjg1NjQsMjg2NDAsMjg2NDksMjg3NjUsMjkzOTIsMjk3MzMsMjk3ODYsMjk5MjAsMzAzNTUsMzEwNjgs''@;'; + put 'put ''MzE5NDYsMzIyODYsMzI5OTMsMzM0NDYsMzM4OTksMzM5ODMsMzQzODIsMzQzOTksMzQ2NzYsMzU3MDMsMzU5NDYsMzc4MDQsMzg5MTIsMzkwMTMsMjQ3ODUsMjUxMTAsMzcyMzksMjMxMzAsMjYxMjcsMjgxNTEsMjgyMjIsMjk3NTksMzk3NDYsMjQ1NzMsMjQ3OTQsMzE1MDMsMjE3MDAsMjQz''@;'; + put 'put ''NDQsMjc3NDIsMjc4NTksMjc5NDYsMjg4ODgsMzIwMDUsMzQ0MjUsMzUzNDAsNDAyNTEsMjEyNzAsMjE2NDQsMjMzMDEsMjcxOTQsMjg3NzksMzAwNjksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzExMTcsMzExNjYsMzM0NTcsMzM3NzUsMzU0NDEsMzU2NDksMzYwMDgsMzg3NzIsNjQwMTEsMjU4NDQsMjU4OTksMzA5MDYsMzA5MDcsMzEzMzksMjAwMjQsMjE5''@;'; + put 'put ''MTQsMjI4NjQsMjM0NjIsMjQxODcsMjQ3MzksMjU1NjMsMjc0ODksMjYyMTMsMjY3MDcsMjgxODUsMjkwMjksMjk4NzIsMzIwMDgsMzY5OTYsMzk1MjksMzk5NzMsMjc5NjMsMjgzNjksMjk1MDIsMzU5MDUsMzgzNDYsMjA5NzYsMjQxNDAsMjQ0ODgsMjQ2NTMsMjQ4MjIsMjQ4ODAsMjQ5MDgs''@;'; + put 'put ''MjYxNzksMjYxODAsMjcwNDUsMjc4NDEsMjgyNTUsMjgzNjEsMjg1MTQsMjkwMDQsMjk4NTIsMzAzNDMsMzE2ODEsMzE3ODMsMzM2MTgsMzQ2NDcsMzY5NDUsMzg1NDEsNDA2NDMsMjEyOTUsMjIyMzgsMjQzMTUsMjQ0NTgsMjQ2NzQsMjQ3MjQsMjUwNzksMjYyMTQsMjYzNzEsMjcyOTIsMjgx''@;'; + put 'put ''NDIsMjg1OTAsMjg3ODQsMjk1NDYsMzIzNjIsMzMyMTQsMzM1ODgsMzQ1MTYsMzU0OTYsMzYwMzYsMjExMjMsMjk1NTQsMjM0NDYsMjcyNDMsMzc4OTIsMjE3NDIsMjIxNTAsMjMzODksMjU5MjgsMjU5ODksMjYzMTMsMjY3ODMsMjgwNDUsMjgxMDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjkyNDMsMzI5NDgsMzcyMzcsMzk1MDEsMjAzOTksMjA1MDUsMjE0''@;'; + put 'put ''MDIsMjE1MTgsMjE1NjQsMjE4OTcsMjE5NTcsMjQxMjcsMjQ0NjAsMjY0MjksMjkwMzAsMjk2NjEsMzY4NjksMjEyMTEsMjEyMzUsMjI2MjgsMjI3MzQsMjg5MzIsMjkwNzEsMjkxNzksMzQyMjQsMzUzNDcsMjYyNDgsMzQyMTYsMjE5MjcsMjYyNDQsMjkwMDIsMzM4NDEsMjEzMjEsMjE5MTMs''@;'; + put 'put ''Mjc1ODUsMjQ0MDksMjQ1MDksMjU1ODIsMjYyNDksMjg5OTksMzU1NjksMzY2MzcsNDA2MzgsMjAyNDEsMjU2NTgsMjg4NzUsMzAwNTQsMzQ0MDcsMjQ2NzYsMzU2NjIsNDA0NDAsMjA4MDcsMjA5ODIsMjEyNTYsMjc5NTgsMzMwMTYsNDA2NTcsMjYxMzMsMjc0MjcsMjg4MjQsMzAxNjUsMjE1''@;'; + put 'put ''MDcsMjM2NzMsMzIwMDcsMzUzNTAsMjc0MjQsMjc0NTMsMjc0NjIsMjE1NjAsMjQ2ODgsMjc5NjUsMzI3MjUsMzMyODgsMjA2OTQsMjA5NTgsMjE5MTYsMjIxMjMsMjIyMjEsMjMwMjAsMjMzMDUsMjQwNzYsMjQ5ODUsMjQ5ODQsMjUxMzcsMjYyMDYsMjYzNDIsMjkwODEsMjkxMTMsMjkxMTQs''@;'; + put 'put ''MjkzNTEsMzExNDMsMzEyMzIsMzI2OTAsMzU0NDAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbF0sZ2IxODAzMDpb''@;'; + put 'put ''MTk5NzAsMTk5NzIsMTk5NzMsMTk5NzQsMTk5ODMsMTk5ODYsMTk5OTEsMTk5OTksMmU0LDIwMDAxLDIwMDAzLDIwMDA2LDIwMDA5LDIwMDE0LDIwMDE1LDIwMDE3LDIwMDE5LDIwMDIxLDIwMDIzLDIwMDI4LDIwMDMyLDIwMDMzLDIwMDM0LDIwMDM2LDIwMDM4LDIwMDQyLDIwMDQ5LDIwMDUz''@;'; + put 'put ''LDIwMDU1LDIwMDU4LDIwMDU5LDIwMDY2LDIwMDY3LDIwMDY4LDIwMDY5LDIwMDcxLDIwMDcyLDIwMDc0LDIwMDc1LDIwMDc2LDIwMDc3LDIwMDc4LDIwMDc5LDIwMDgyLDIwMDg0LDIwMDg1LDIwMDg2LDIwMDg3LDIwMDg4LDIwMDg5LDIwMDkwLDIwMDkxLDIwMDkyLDIwMDkzLDIwMDk1LDIw''@;'; + put 'put ''MDk2LDIwMDk3LDIwMDk4LDIwMDk5LDIwMTAwLDIwMTAxLDIwMTAzLDIwMTA2LDIwMTEyLDIwMTE4LDIwMTE5LDIwMTIxLDIwMTI0LDIwMTI1LDIwMTI2LDIwMTMxLDIwMTM4LDIwMTQzLDIwMTQ0LDIwMTQ1LDIwMTQ4LDIwMTUwLDIwMTUxLDIwMTUyLDIwMTUzLDIwMTU2LDIwMTU3LDIwMTU4''@;'; + put 'put ''LDIwMTY4LDIwMTcyLDIwMTc1LDIwMTc2LDIwMTc4LDIwMTg2LDIwMTg3LDIwMTg4LDIwMTkyLDIwMTk0LDIwMTk4LDIwMTk5LDIwMjAxLDIwMjA1LDIwMjA2LDIwMjA3LDIwMjA5LDIwMjEyLDIwMjE2LDIwMjE3LDIwMjE4LDIwMjIwLDIwMjIyLDIwMjI0LDIwMjI2LDIwMjI3LDIwMjI4LDIw''@;'; + put 'put ''MjI5LDIwMjMwLDIwMjMxLDIwMjMyLDIwMjM1LDIwMjM2LDIwMjQyLDIwMjQzLDIwMjQ0LDIwMjQ1LDIwMjQ2LDIwMjUyLDIwMjUzLDIwMjU3LDIwMjU5LDIwMjY0LDIwMjY1LDIwMjY4LDIwMjY5LDIwMjcwLDIwMjczLDIwMjc1LDIwMjc3LDIwMjc5LDIwMjgxLDIwMjgzLDIwMjg2LDIwMjg3''@;'; + put 'put ''LDIwMjg4LDIwMjg5LDIwMjkwLDIwMjkyLDIwMjkzLDIwMjk1LDIwMjk2LDIwMjk3LDIwMjk4LDIwMjk5LDIwMzAwLDIwMzA2LDIwMzA4LDIwMzEwLDIwMzIxLDIwMzIyLDIwMzI2LDIwMzI4LDIwMzMwLDIwMzMxLDIwMzMzLDIwMzM0LDIwMzM3LDIwMzM4LDIwMzQxLDIwMzQzLDIwMzQ0LDIw''@;'; + put 'put ''MzQ1LDIwMzQ2LDIwMzQ5LDIwMzUyLDIwMzUzLDIwMzU0LDIwMzU3LDIwMzU4LDIwMzU5LDIwMzYyLDIwMzY0LDIwMzY2LDIwMzY4LDIwMzcwLDIwMzcxLDIwMzczLDIwMzc0LDIwMzc2LDIwMzc3LDIwMzc4LDIwMzgwLDIwMzgyLDIwMzgzLDIwMzg1LDIwMzg2LDIwMzg4LDIwMzk1LDIwMzk3''@;'; + put 'put ''LDIwNDAwLDIwNDAxLDIwNDAyLDIwNDAzLDIwNDA0LDIwNDA2LDIwNDA3LDIwNDA4LDIwNDA5LDIwNDEwLDIwNDExLDIwNDEyLDIwNDEzLDIwNDE0LDIwNDE2LDIwNDE3LDIwNDE4LDIwNDIyLDIwNDIzLDIwNDI0LDIwNDI1LDIwNDI3LDIwNDI4LDIwNDI5LDIwNDM0LDIwNDM1LDIwNDM2LDIw''@;'; + put 'put ''NDM3LDIwNDM4LDIwNDQxLDIwNDQzLDIwNDQ4LDIwNDUwLDIwNDUyLDIwNDUzLDIwNDU1LDIwNDU5LDIwNDYwLDIwNDY0LDIwNDY2LDIwNDY4LDIwNDY5LDIwNDcwLDIwNDcxLDIwNDczLDIwNDc1LDIwNDc2LDIwNDc3LDIwNDc5LDIwNDgwLDIwNDgxLDIwNDgyLDIwNDgzLDIwNDg0LDIwNDg1''@;'; + put 'put ''LDIwNDg2LDIwNDg3LDIwNDg4LDIwNDg5LDIwNDkwLDIwNDkxLDIwNDk0LDIwNDk2LDIwNDk3LDIwNDk5LDIwNTAxLDIwNTAyLDIwNTAzLDIwNTA3LDIwNTA5LDIwNTEwLDIwNTEyLDIwNTE0LDIwNTE1LDIwNTE2LDIwNTE5LDIwNTIzLDIwNTI3LDIwNTI4LDIwNTI5LDIwNTMwLDIwNTMxLDIw''@;'; + put 'put ''NTMyLDIwNTMzLDIwNTM0LDIwNTM1LDIwNTM2LDIwNTM3LDIwNTM5LDIwNTQxLDIwNTQzLDIwNTQ0LDIwNTQ1LDIwNTQ2LDIwNTQ4LDIwNTQ5LDIwNTUwLDIwNTUzLDIwNTU0LDIwNTU1LDIwNTU3LDIwNTYwLDIwNTYxLDIwNTYyLDIwNTYzLDIwNTY0LDIwNTY2LDIwNTY3LDIwNTY4LDIwNTY5''@;'; + put 'put ''LDIwNTcxLDIwNTczLDIwNTc0LDIwNTc1LDIwNTc2LDIwNTc3LDIwNTc4LDIwNTc5LDIwNTgwLDIwNTgyLDIwNTgzLDIwNTg0LDIwNTg1LDIwNTg2LDIwNTg3LDIwNTg5LDIwNTkwLDIwNTkxLDIwNTkyLDIwNTkzLDIwNTk0LDIwNTk1LDIwNTk2LDIwNTk3LDIwNjAwLDIwNjAxLDIwNjAyLDIw''@;'; + put 'put ''NjA0LDIwNjA1LDIwNjA5LDIwNjEwLDIwNjExLDIwNjEyLDIwNjE0LDIwNjE1LDIwNjE3LDIwNjE4LDIwNjE5LDIwNjIwLDIwNjIyLDIwNjIzLDIwNjI0LDIwNjI1LDIwNjI2LDIwNjI3LDIwNjI4LDIwNjI5LDIwNjMwLDIwNjMxLDIwNjMyLDIwNjMzLDIwNjM0LDIwNjM1LDIwNjM2LDIwNjM3''@;'; + put 'put ''LDIwNjM4LDIwNjM5LDIwNjQwLDIwNjQxLDIwNjQyLDIwNjQ0LDIwNjQ2LDIwNjUwLDIwNjUxLDIwNjUzLDIwNjU0LDIwNjU1LDIwNjU2LDIwNjU3LDIwNjU5LDIwNjYwLDIwNjYxLDIwNjYyLDIwNjYzLDIwNjY0LDIwNjY1LDIwNjY4LDIwNjY5LDIwNjcwLDIwNjcxLDIwNjcyLDIwNjczLDIw''@;'; + put 'put ''Njc0LDIwNjc1LDIwNjc2LDIwNjc3LDIwNjc4LDIwNjc5LDIwNjgwLDIwNjgxLDIwNjgyLDIwNjgzLDIwNjg0LDIwNjg1LDIwNjg2LDIwNjg4LDIwNjg5LDIwNjkwLDIwNjkxLDIwNjkyLDIwNjkzLDIwNjk1LDIwNjk2LDIwNjk3LDIwNjk5LDIwNzAwLDIwNzAxLDIwNzAyLDIwNzAzLDIwNzA0''@;'; + put 'put ''LDIwNzA1LDIwNzA2LDIwNzA3LDIwNzA4LDIwNzA5LDIwNzEyLDIwNzEzLDIwNzE0LDIwNzE1LDIwNzE5LDIwNzIwLDIwNzIxLDIwNzIyLDIwNzI0LDIwNzI2LDIwNzI3LDIwNzI4LDIwNzI5LDIwNzMwLDIwNzMyLDIwNzMzLDIwNzM0LDIwNzM1LDIwNzM2LDIwNzM3LDIwNzM4LDIwNzM5LDIw''@;'; + put 'put ''NzQwLDIwNzQxLDIwNzQ0LDIwNzQ1LDIwNzQ2LDIwNzQ4LDIwNzQ5LDIwNzUwLDIwNzUxLDIwNzUyLDIwNzUzLDIwNzU1LDIwNzU2LDIwNzU3LDIwNzU4LDIwNzU5LDIwNzYwLDIwNzYxLDIwNzYyLDIwNzYzLDIwNzY0LDIwNzY1LDIwNzY2LDIwNzY3LDIwNzY4LDIwNzcwLDIwNzcxLDIwNzcy''@;'; + put 'put ''LDIwNzczLDIwNzc0LDIwNzc1LDIwNzc2LDIwNzc3LDIwNzc4LDIwNzc5LDIwNzgwLDIwNzgxLDIwNzgyLDIwNzgzLDIwNzg0LDIwNzg1LDIwNzg2LDIwNzg3LDIwNzg4LDIwNzg5LDIwNzkwLDIwNzkxLDIwNzkyLDIwNzkzLDIwNzk0LDIwNzk1LDIwNzk2LDIwNzk3LDIwNzk4LDIwODAyLDIw''@;'; + put 'put ''ODA3LDIwODEwLDIwODEyLDIwODE0LDIwODE1LDIwODE2LDIwODE4LDIwODE5LDIwODIzLDIwODI0LDIwODI1LDIwODI3LDIwODI5LDIwODMwLDIwODMxLDIwODMyLDIwODMzLDIwODM1LDIwODM2LDIwODM4LDIwODM5LDIwODQxLDIwODQyLDIwODQ3LDIwODUwLDIwODU4LDIwODYyLDIwODYz''@;'; + put 'put ''LDIwODY3LDIwODY4LDIwODcwLDIwODcxLDIwODc0LDIwODc1LDIwODc4LDIwODc5LDIwODgwLDIwODgxLDIwODgzLDIwODg0LDIwODg4LDIwODkwLDIwODkzLDIwODk0LDIwODk1LDIwODk3LDIwODk5LDIwOTAyLDIwOTAzLDIwOTA0LDIwOTA1LDIwOTA2LDIwOTA5LDIwOTEwLDIwOTE2LDIw''@;'; + put 'put ''OTIwLDIwOTIxLDIwOTIyLDIwOTI2LDIwOTI3LDIwOTI5LDIwOTMwLDIwOTMxLDIwOTMzLDIwOTM2LDIwOTM4LDIwOTQxLDIwOTQyLDIwOTQ0LDIwOTQ2LDIwOTQ3LDIwOTQ4LDIwOTQ5LDIwOTUwLDIwOTUxLDIwOTUyLDIwOTUzLDIwOTU0LDIwOTU2LDIwOTU4LDIwOTU5LDIwOTYyLDIwOTYz''@;'; + put 'put ''LDIwOTY1LDIwOTY2LDIwOTY3LDIwOTY4LDIwOTY5LDIwOTcwLDIwOTcyLDIwOTc0LDIwOTc3LDIwOTc4LDIwOTgwLDIwOTgzLDIwOTkwLDIwOTk2LDIwOTk3LDIxMDAxLDIxMDAzLDIxMDA0LDIxMDA3LDIxMDA4LDIxMDExLDIxMDEyLDIxMDEzLDIxMDIwLDIxMDIyLDIxMDIzLDIxMDI1LDIx''@;'; + put 'put ''MDI2LDIxMDI3LDIxMDI5LDIxMDMwLDIxMDMxLDIxMDM0LDIxMDM2LDIxMDM5LDIxMDQxLDIxMDQyLDIxMDQ0LDIxMDQ1LDIxMDUyLDIxMDU0LDIxMDYwLDIxMDYxLDIxMDYyLDIxMDYzLDIxMDY0LDIxMDY1LDIxMDY3LDIxMDcwLDIxMDcxLDIxMDc0LDIxMDc1LDIxMDc3LDIxMDc5LDIxMDgw''@;'; + put 'put ''LDIxMDgxLDIxMDgyLDIxMDgzLDIxMDg1LDIxMDg3LDIxMDg4LDIxMDkwLDIxMDkxLDIxMDkyLDIxMDk0LDIxMDk2LDIxMDk5LDIxMTAwLDIxMTAxLDIxMTAyLDIxMTA0LDIxMTA1LDIxMTA3LDIxMTA4LDIxMTA5LDIxMTEwLDIxMTExLDIxMTEyLDIxMTEzLDIxMTE0LDIxMTE1LDIxMTE2LDIx''@;'; + put 'put ''MTE4LDIxMTIwLDIxMTIzLDIxMTI0LDIxMTI1LDIxMTI2LDIxMTI3LDIxMTI5LDIxMTMwLDIxMTMxLDIxMTMyLDIxMTMzLDIxMTM0LDIxMTM1LDIxMTM3LDIxMTM4LDIxMTQwLDIxMTQxLDIxMTQyLDIxMTQzLDIxMTQ0LDIxMTQ1LDIxMTQ2LDIxMTQ4LDIxMTU2LDIxMTU3LDIxMTU4LDIxMTU5''@;'; + put 'put ''LDIxMTY2LDIxMTY3LDIxMTY4LDIxMTcyLDIxMTczLDIxMTc0LDIxMTc1LDIxMTc2LDIxMTc3LDIxMTc4LDIxMTc5LDIxMTgwLDIxMTgxLDIxMTg0LDIxMTg1LDIxMTg2LDIxMTg4LDIxMTg5LDIxMTkwLDIxMTkyLDIxMTk0LDIxMTk2LDIxMTk3LDIxMTk4LDIxMTk5LDIxMjAxLDIxMjAzLDIx''@;'; + put 'put ''MjA0LDIxMjA1LDIxMjA3LDIxMjA5LDIxMjEwLDIxMjExLDIxMjEyLDIxMjEzLDIxMjE0LDIxMjE2LDIxMjE3LDIxMjE4LDIxMjE5LDIxMjIxLDIxMjIyLDIxMjIzLDIxMjI0LDIxMjI1LDIxMjI2LDIxMjI3LDIxMjI4LDIxMjI5LDIxMjMwLDIxMjMxLDIxMjMzLDIxMjM0LDIxMjM1LDIxMjM2''@;'; + put 'put ''LDIxMjM3LDIxMjM4LDIxMjM5LDIxMjQwLDIxMjQzLDIxMjQ0LDIxMjQ1LDIxMjQ5LDIxMjUwLDIxMjUxLDIxMjUyLDIxMjU1LDIxMjU3LDIxMjU4LDIxMjU5LDIxMjYwLDIxMjYyLDIxMjY1LDIxMjY2LDIxMjY3LDIxMjY4LDIxMjcyLDIxMjc1LDIxMjc2LDIxMjc4LDIxMjc5LDIxMjgyLDIx''@;'; + put 'put ''Mjg0LDIxMjg1LDIxMjg3LDIxMjg4LDIxMjg5LDIxMjkxLDIxMjkyLDIxMjkzLDIxMjk1LDIxMjk2LDIxMjk3LDIxMjk4LDIxMjk5LDIxMzAwLDIxMzAxLDIxMzAyLDIxMzAzLDIxMzA0LDIxMzA4LDIxMzA5LDIxMzEyLDIxMzE0LDIxMzE2LDIxMzE4LDIxMzIzLDIxMzI0LDIxMzI1LDIxMzI4''@;'; + put 'put ''LDIxMzMyLDIxMzM2LDIxMzM3LDIxMzM5LDIxMzQxLDIxMzQ5LDIxMzUyLDIxMzU0LDIxMzU2LDIxMzU3LDIxMzYyLDIxMzY2LDIxMzY5LDIxMzcxLDIxMzcyLDIxMzczLDIxMzc0LDIxMzc2LDIxMzc3LDIxMzc5LDIxMzgzLDIxMzg0LDIxMzg2LDIxMzkwLDIxMzkxLDIxMzkyLDIxMzkzLDIx''@;'; + put 'put ''Mzk0LDIxMzk1LDIxMzk2LDIxMzk4LDIxMzk5LDIxNDAxLDIxNDAzLDIxNDA0LDIxNDA2LDIxNDA4LDIxNDA5LDIxNDEyLDIxNDE1LDIxNDE4LDIxNDE5LDIxNDIwLDIxNDIxLDIxNDIzLDIxNDI0LDIxNDI1LDIxNDI2LDIxNDI3LDIxNDI4LDIxNDI5LDIxNDMxLDIxNDMyLDIxNDMzLDIxNDM0''@;'; + put 'put ''LDIxNDM2LDIxNDM3LDIxNDM4LDIxNDQwLDIxNDQzLDIxNDQ0LDIxNDQ1LDIxNDQ2LDIxNDQ3LDIxNDU0LDIxNDU1LDIxNDU2LDIxNDU4LDIxNDU5LDIxNDYxLDIxNDY2LDIxNDY4LDIxNDY5LDIxNDcwLDIxNDczLDIxNDc0LDIxNDc5LDIxNDkyLDIxNDk4LDIxNTAyLDIxNTAzLDIxNTA0LDIx''@;'; + put 'put ''NTA2LDIxNTA5LDIxNTExLDIxNTE1LDIxNTI0LDIxNTI4LDIxNTI5LDIxNTMwLDIxNTMyLDIxNTM4LDIxNTQwLDIxNTQxLDIxNTQ2LDIxNTUyLDIxNTU1LDIxNTU4LDIxNTU5LDIxNTYyLDIxNTY1LDIxNTY3LDIxNTY5LDIxNTcwLDIxNTcyLDIxNTczLDIxNTc1LDIxNTc3LDIxNTgwLDIxNTgx''@;'; + put 'put ''LDIxNTgyLDIxNTgzLDIxNTg1LDIxNTk0LDIxNTk3LDIxNTk4LDIxNTk5LDIxNjAwLDIxNjAxLDIxNjAzLDIxNjA1LDIxNjA3LDIxNjA5LDIxNjEwLDIxNjExLDIxNjEyLDIxNjEzLDIxNjE0LDIxNjE1LDIxNjE2LDIxNjIwLDIxNjI1LDIxNjI2LDIxNjMwLDIxNjMxLDIxNjMzLDIxNjM1LDIx''@;'; + put 'put ''NjM3LDIxNjM5LDIxNjQwLDIxNjQxLDIxNjQyLDIxNjQ1LDIxNjQ5LDIxNjUxLDIxNjU1LDIxNjU2LDIxNjYwLDIxNjYyLDIxNjYzLDIxNjY0LDIxNjY1LDIxNjY2LDIxNjY5LDIxNjc4LDIxNjgwLDIxNjgyLDIxNjg1LDIxNjg2LDIxNjg3LDIxNjg5LDIxNjkwLDIxNjkyLDIxNjk0LDIxNjk5''@;'; + put 'put ''LDIxNzAxLDIxNzA2LDIxNzA3LDIxNzE4LDIxNzIwLDIxNzIzLDIxNzI4LDIxNzI5LDIxNzMwLDIxNzMxLDIxNzMyLDIxNzM5LDIxNzQwLDIxNzQzLDIxNzQ0LDIxNzQ1LDIxNzQ4LDIxNzQ5LDIxNzUwLDIxNzUxLDIxNzUyLDIxNzUzLDIxNzU1LDIxNzU4LDIxNzYwLDIxNzYyLDIxNzYzLDIx''@;'; + put 'put ''NzY0LDIxNzY1LDIxNzY4LDIxNzcwLDIxNzcxLDIxNzcyLDIxNzczLDIxNzc0LDIxNzc4LDIxNzc5LDIxNzgxLDIxNzgyLDIxNzgzLDIxNzg0LDIxNzg1LDIxNzg2LDIxNzg4LDIxNzg5LDIxNzkwLDIxNzkxLDIxNzkzLDIxNzk3LDIxNzk4LDIxODAwLDIxODAxLDIxODAzLDIxODA1LDIxODEw''@;'; + put 'put ''LDIxODEyLDIxODEzLDIxODE0LDIxODE2LDIxODE3LDIxODE4LDIxODE5LDIxODIxLDIxODI0LDIxODI2LDIxODI5LDIxODMxLDIxODMyLDIxODM1LDIxODM2LDIxODM3LDIxODM4LDIxODM5LDIxODQxLDIxODQyLDIxODQzLDIxODQ0LDIxODQ3LDIxODQ4LDIxODQ5LDIxODUwLDIxODUxLDIx''@;'; + put 'put ''ODUzLDIxODU0LDIxODU1LDIxODU2LDIxODU4LDIxODU5LDIxODY0LDIxODY1LDIxODY3LDIxODcxLDIxODcyLDIxODczLDIxODc0LDIxODc1LDIxODc2LDIxODgxLDIxODgyLDIxODg1LDIxODg3LDIxODkzLDIxODk0LDIxOTAwLDIxOTAxLDIxOTAyLDIxOTA0LDIxOTA2LDIxOTA3LDIxOTA5''@;'; + put 'put ''LDIxOTEwLDIxOTExLDIxOTE0LDIxOTE1LDIxOTE4LDIxOTIwLDIxOTIxLDIxOTIyLDIxOTIzLDIxOTI0LDIxOTI1LDIxOTI2LDIxOTI4LDIxOTI5LDIxOTMwLDIxOTMxLDIxOTMyLDIxOTMzLDIxOTM0LDIxOTM1LDIxOTM2LDIxOTM4LDIxOTQwLDIxOTQyLDIxOTQ0LDIxOTQ2LDIxOTQ4LDIx''@;'; + put 'put ''OTUxLDIxOTUyLDIxOTUzLDIxOTU0LDIxOTU1LDIxOTU4LDIxOTU5LDIxOTYwLDIxOTYyLDIxOTYzLDIxOTY2LDIxOTY3LDIxOTY4LDIxOTczLDIxOTc1LDIxOTc2LDIxOTc3LDIxOTc4LDIxOTc5LDIxOTgyLDIxOTg0LDIxOTg2LDIxOTkxLDIxOTkzLDIxOTk3LDIxOTk4LDIyZTMsMjIwMDEs''@;'; + put 'put ''MjIwMDQsMjIwMDYsMjIwMDgsMjIwMDksMjIwMTAsMjIwMTEsMjIwMTIsMjIwMTUsMjIwMTgsMjIwMTksMjIwMjAsMjIwMjEsMjIwMjIsMjIwMjMsMjIwMjYsMjIwMjcsMjIwMjksMjIwMzIsMjIwMzMsMjIwMzQsMjIwMzUsMjIwMzYsMjIwMzcsMjIwMzgsMjIwMzksMjIwNDEsMjIwNDIsMjIw''@;'; + put 'put ''NDQsMjIwNDUsMjIwNDgsMjIwNDksMjIwNTAsMjIwNTMsMjIwNTQsMjIwNTYsMjIwNTcsMjIwNTgsMjIwNTksMjIwNjIsMjIwNjMsMjIwNjQsMjIwNjcsMjIwNjksMjIwNzEsMjIwNzIsMjIwNzQsMjIwNzYsMjIwNzcsMjIwNzgsMjIwODAsMjIwODEsMjIwODIsMjIwODMsMjIwODQsMjIwODUs''@;'; + put 'put ''MjIwODYsMjIwODcsMjIwODgsMjIwODksMjIwOTAsMjIwOTEsMjIwOTUsMjIwOTYsMjIwOTcsMjIwOTgsMjIwOTksMjIxMDEsMjIxMDIsMjIxMDYsMjIxMDcsMjIxMDksMjIxMTAsMjIxMTEsMjIxMTIsMjIxMTMsMjIxMTUsMjIxMTcsMjIxMTgsMjIxMTksMjIxMjUsMjIxMjYsMjIxMjcsMjIx''@;'; + put 'put ''MjgsMjIxMzAsMjIxMzEsMjIxMzIsMjIxMzMsMjIxMzUsMjIxMzYsMjIxMzcsMjIxMzgsMjIxNDEsMjIxNDIsMjIxNDMsMjIxNDQsMjIxNDUsMjIxNDYsMjIxNDcsMjIxNDgsMjIxNTEsMjIxNTIsMjIxNTMsMjIxNTQsMjIxNTUsMjIxNTYsMjIxNTcsMjIxNjAsMjIxNjEsMjIxNjIsMjIxNjQs''@;'; + put 'put ''MjIxNjUsMjIxNjYsMjIxNjcsMjIxNjgsMjIxNjksMjIxNzAsMjIxNzEsMjIxNzIsMjIxNzMsMjIxNzQsMjIxNzUsMjIxNzYsMjIxNzcsMjIxNzgsMjIxODAsMjIxODEsMjIxODIsMjIxODMsMjIxODQsMjIxODUsMjIxODYsMjIxODcsMjIxODgsMjIxODksMjIxOTAsMjIxOTIsMjIxOTMsMjIx''@;'; + put 'put ''OTQsMjIxOTUsMjIxOTYsMjIxOTcsMjIxOTgsMjIyMDAsMjIyMDEsMjIyMDIsMjIyMDMsMjIyMDUsMjIyMDYsMjIyMDcsMjIyMDgsMjIyMDksMjIyMTAsMjIyMTEsMjIyMTIsMjIyMTMsMjIyMTQsMjIyMTUsMjIyMTYsMjIyMTcsMjIyMTksMjIyMjAsMjIyMjEsMjIyMjIsMjIyMjMsMjIyMjQs''@;'; + put 'put ''MjIyMjUsMjIyMjYsMjIyMjcsMjIyMjksMjIyMzAsMjIyMzIsMjIyMzMsMjIyMzYsMjIyNDMsMjIyNDUsMjIyNDYsMjIyNDcsMjIyNDgsMjIyNDksMjIyNTAsMjIyNTIsMjIyNTQsMjIyNTUsMjIyNTgsMjIyNTksMjIyNjIsMjIyNjMsMjIyNjQsMjIyNjcsMjIyNjgsMjIyNzIsMjIyNzMsMjIy''@;'; + put 'put ''NzQsMjIyNzcsMjIyNzksMjIyODMsMjIyODQsMjIyODUsMjIyODYsMjIyODcsMjIyODgsMjIyODksMjIyOTAsMjIyOTEsMjIyOTIsMjIyOTMsMjIyOTQsMjIyOTUsMjIyOTYsMjIyOTcsMjIyOTgsMjIyOTksMjIzMDEsMjIzMDIsMjIzMDQsMjIzMDUsMjIzMDYsMjIzMDgsMjIzMDksMjIzMTAs''@;'; + put 'put ''MjIzMTEsMjIzMTUsMjIzMjEsMjIzMjIsMjIzMjQsMjIzMjUsMjIzMjYsMjIzMjcsMjIzMjgsMjIzMzIsMjIzMzMsMjIzMzUsMjIzMzcsMjIzMzksMjIzNDAsMjIzNDEsMjIzNDIsMjIzNDQsMjIzNDUsMjIzNDcsMjIzNTQsMjIzNTUsMjIzNTYsMjIzNTcsMjIzNTgsMjIzNjAsMjIzNjEsMjIz''@;'; + put 'put ''NzAsMjIzNzEsMjIzNzMsMjIzNzUsMjIzODAsMjIzODIsMjIzODQsMjIzODUsMjIzODYsMjIzODgsMjIzODksMjIzOTIsMjIzOTMsMjIzOTQsMjIzOTcsMjIzOTgsMjIzOTksMjI0MDAsMjI0MDEsMjI0MDcsMjI0MDgsMjI0MDksMjI0MTAsMjI0MTMsMjI0MTQsMjI0MTUsMjI0MTYsMjI0MTcs''@;'; + put 'put ''MjI0MjAsMjI0MjEsMjI0MjIsMjI0MjMsMjI0MjQsMjI0MjUsMjI0MjYsMjI0MjgsMjI0MjksMjI0MzAsMjI0MzEsMjI0MzcsMjI0NDAsMjI0NDIsMjI0NDQsMjI0NDcsMjI0NDgsMjI0NDksMjI0NTEsMjI0NTMsMjI0NTQsMjI0NTUsMjI0NTcsMjI0NTgsMjI0NTksMjI0NjAsMjI0NjEsMjI0''@;'; + put 'put ''NjIsMjI0NjMsMjI0NjQsMjI0NjUsMjI0NjgsMjI0NjksMjI0NzAsMjI0NzEsMjI0NzIsMjI0NzMsMjI0NzQsMjI0NzYsMjI0NzcsMjI0ODAsMjI0ODEsMjI0ODMsMjI0ODYsMjI0ODcsMjI0OTEsMjI0OTIsMjI0OTQsMjI0OTcsMjI0OTgsMjI0OTksMjI1MDEsMjI1MDIsMjI1MDMsMjI1MDQs''@;'; + put 'put ''MjI1MDUsMjI1MDYsMjI1MDcsMjI1MDgsMjI1MTAsMjI1MTIsMjI1MTMsMjI1MTQsMjI1MTUsMjI1MTcsMjI1MTgsMjI1MTksMjI1MjMsMjI1MjQsMjI1MjYsMjI1MjcsMjI1MjksMjI1MzEsMjI1MzIsMjI1MzMsMjI1MzYsMjI1MzcsMjI1MzgsMjI1NDAsMjI1NDIsMjI1NDMsMjI1NDQsMjI1''@;'; + put 'put ''NDYsMjI1NDcsMjI1NDgsMjI1NTAsMjI1NTEsMjI1NTIsMjI1NTQsMjI1NTUsMjI1NTYsMjI1NTcsMjI1NTksMjI1NjIsMjI1NjMsMjI1NjUsMjI1NjYsMjI1NjcsMjI1NjgsMjI1NjksMjI1NzEsMjI1NzIsMjI1NzMsMjI1NzQsMjI1NzUsMjI1NzcsMjI1NzgsMjI1NzksMjI1ODAsMjI1ODIs''@;'; + put 'put ''MjI1ODMsMjI1ODQsMjI1ODUsMjI1ODYsMjI1ODcsMjI1ODgsMjI1ODksMjI1OTAsMjI1OTEsMjI1OTIsMjI1OTMsMjI1OTQsMjI1OTUsMjI1OTcsMjI1OTgsMjI1OTksMjI2MDAsMjI2MDEsMjI2MDIsMjI2MDMsMjI2MDYsMjI2MDcsMjI2MDgsMjI2MTAsMjI2MTEsMjI2MTMsMjI2MTQsMjI2''@;'; + put 'put ''MTUsMjI2MTcsMjI2MTgsMjI2MTksMjI2MjAsMjI2MjEsMjI2MjMsMjI2MjQsMjI2MjUsMjI2MjYsMjI2MjcsMjI2MjgsMjI2MzAsMjI2MzEsMjI2MzIsMjI2MzMsMjI2MzQsMjI2MzcsMjI2MzgsMjI2MzksMjI2NDAsMjI2NDEsMjI2NDIsMjI2NDMsMjI2NDQsMjI2NDUsMjI2NDYsMjI2NDcs''@;'; + put 'put ''MjI2NDgsMjI2NDksMjI2NTAsMjI2NTEsMjI2NTIsMjI2NTMsMjI2NTUsMjI2NTgsMjI2NjAsMjI2NjIsMjI2NjMsMjI2NjQsMjI2NjYsMjI2NjcsMjI2NjgsMjI2NjksMjI2NzAsMjI2NzEsMjI2NzIsMjI2NzMsMjI2NzYsMjI2NzcsMjI2NzgsMjI2NzksMjI2ODAsMjI2ODMsMjI2ODQsMjI2''@;'; + put 'put ''ODUsMjI2ODgsMjI2ODksMjI2OTAsMjI2OTEsMjI2OTIsMjI2OTMsMjI2OTQsMjI2OTUsMjI2OTgsMjI2OTksMjI3MDAsMjI3MDEsMjI3MDIsMjI3MDMsMjI3MDQsMjI3MDUsMjI3MDYsMjI3MDcsMjI3MDgsMjI3MDksMjI3MTAsMjI3MTEsMjI3MTIsMjI3MTMsMjI3MTQsMjI3MTUsMjI3MTcs''@;'; + put 'put ''MjI3MTgsMjI3MTksMjI3MjAsMjI3MjIsMjI3MjMsMjI3MjQsMjI3MjYsMjI3MjcsMjI3MjgsMjI3MjksMjI3MzAsMjI3MzEsMjI3MzIsMjI3MzMsMjI3MzQsMjI3MzUsMjI3MzYsMjI3MzgsMjI3MzksMjI3NDAsMjI3NDIsMjI3NDMsMjI3NDQsMjI3NDUsMjI3NDYsMjI3NDcsMjI3NDgsMjI3''@;'; + put 'put ''NDksMjI3NTAsMjI3NTEsMjI3NTIsMjI3NTMsMjI3NTQsMjI3NTUsMjI3NTcsMjI3NTgsMjI3NTksMjI3NjAsMjI3NjEsMjI3NjIsMjI3NjUsMjI3NjcsMjI3NjksMjI3NzAsMjI3NzIsMjI3NzMsMjI3NzUsMjI3NzYsMjI3NzgsMjI3NzksMjI3ODAsMjI3ODEsMjI3ODIsMjI3ODMsMjI3ODQs''@;'; + put 'put ''MjI3ODUsMjI3ODcsMjI3ODksMjI3OTAsMjI3OTIsMjI3OTMsMjI3OTQsMjI3OTUsMjI3OTYsMjI3OTgsMjI4MDAsMjI4MDEsMjI4MDIsMjI4MDMsMjI4MDcsMjI4MDgsMjI4MTEsMjI4MTMsMjI4MTQsMjI4MTYsMjI4MTcsMjI4MTgsMjI4MTksMjI4MjIsMjI4MjQsMjI4MjgsMjI4MzIsMjI4''@;'; + put 'put ''MzQsMjI4MzUsMjI4MzcsMjI4MzgsMjI4NDMsMjI4NDUsMjI4NDYsMjI4NDcsMjI4NDgsMjI4NTEsMjI4NTMsMjI4NTQsMjI4NTgsMjI4NjAsMjI4NjEsMjI4NjQsMjI4NjYsMjI4NjcsMjI4NzMsMjI4NzUsMjI4NzYsMjI4NzcsMjI4NzgsMjI4NzksMjI4ODEsMjI4ODMsMjI4ODQsMjI4ODYs''@;'; + put 'put ''MjI4ODcsMjI4ODgsMjI4ODksMjI4OTAsMjI4OTEsMjI4OTIsMjI4OTMsMjI4OTQsMjI4OTUsMjI4OTYsMjI4OTcsMjI4OTgsMjI5MDEsMjI5MDMsMjI5MDYsMjI5MDcsMjI5MDgsMjI5MTAsMjI5MTEsMjI5MTIsMjI5MTcsMjI5MjEsMjI5MjMsMjI5MjQsMjI5MjYsMjI5MjcsMjI5MjgsMjI5''@;'; + put 'put ''MjksMjI5MzIsMjI5MzMsMjI5MzYsMjI5MzgsMjI5MzksMjI5NDAsMjI5NDEsMjI5NDMsMjI5NDQsMjI5NDUsMjI5NDYsMjI5NTAsMjI5NTEsMjI5NTYsMjI5NTcsMjI5NjAsMjI5NjEsMjI5NjMsMjI5NjQsMjI5NjUsMjI5NjYsMjI5NjcsMjI5NjgsMjI5NzAsMjI5NzIsMjI5NzMsMjI5NzUs''@;'; + put 'put ''MjI5NzYsMjI5NzcsMjI5NzgsMjI5NzksMjI5ODAsMjI5ODEsMjI5ODMsMjI5ODQsMjI5ODUsMjI5ODgsMjI5ODksMjI5OTAsMjI5OTEsMjI5OTcsMjI5OTgsMjMwMDEsMjMwMDMsMjMwMDYsMjMwMDcsMjMwMDgsMjMwMDksMjMwMTAsMjMwMTIsMjMwMTQsMjMwMTUsMjMwMTcsMjMwMTgsMjMw''@;'; + put 'put ''MTksMjMwMjEsMjMwMjIsMjMwMjMsMjMwMjQsMjMwMjUsMjMwMjYsMjMwMjcsMjMwMjgsMjMwMjksMjMwMzAsMjMwMzEsMjMwMzIsMjMwMzQsMjMwMzYsMjMwMzcsMjMwMzgsMjMwNDAsMjMwNDIsMjMwNTAsMjMwNTEsMjMwNTMsMjMwNTQsMjMwNTUsMjMwNTYsMjMwNTgsMjMwNjAsMjMwNjEs''@;'; + put 'put ''MjMwNjIsMjMwNjMsMjMwNjUsMjMwNjYsMjMwNjcsMjMwNjksMjMwNzAsMjMwNzMsMjMwNzQsMjMwNzYsMjMwNzgsMjMwNzksMjMwODAsMjMwODIsMjMwODMsMjMwODQsMjMwODUsMjMwODYsMjMwODcsMjMwODgsMjMwOTEsMjMwOTMsMjMwOTUsMjMwOTYsMjMwOTcsMjMwOTgsMjMwOTksMjMx''@;'; + put 'put ''MDEsMjMxMDIsMjMxMDMsMjMxMDUsMjMxMDYsMjMxMDcsMjMxMDgsMjMxMDksMjMxMTEsMjMxMTIsMjMxMTUsMjMxMTYsMjMxMTcsMjMxMTgsMjMxMTksMjMxMjAsMjMxMjEsMjMxMjIsMjMxMjMsMjMxMjQsMjMxMjYsMjMxMjcsMjMxMjgsMjMxMjksMjMxMzEsMjMxMzIsMjMxMzMsMjMxMzQs''@;'; + put 'put ''MjMxMzUsMjMxMzYsMjMxMzcsMjMxMzksMjMxNDAsMjMxNDEsMjMxNDIsMjMxNDQsMjMxNDUsMjMxNDcsMjMxNDgsMjMxNDksMjMxNTAsMjMxNTEsMjMxNTIsMjMxNTMsMjMxNTQsMjMxNTUsMjMxNjAsMjMxNjEsMjMxNjMsMjMxNjQsMjMxNjUsMjMxNjYsMjMxNjgsMjMxNjksMjMxNzAsMjMx''@;'; + put 'put ''NzEsMjMxNzIsMjMxNzMsMjMxNzQsMjMxNzUsMjMxNzYsMjMxNzcsMjMxNzgsMjMxNzksMjMxODAsMjMxODEsMjMxODIsMjMxODMsMjMxODQsMjMxODUsMjMxODcsMjMxODgsMjMxODksMjMxOTAsMjMxOTEsMjMxOTIsMjMxOTMsMjMxOTYsMjMxOTcsMjMxOTgsMjMxOTksMjMyMDAsMjMyMDEs''@;'; + put 'put ''MjMyMDIsMjMyMDMsMjMyMDQsMjMyMDUsMjMyMDYsMjMyMDcsMjMyMDgsMjMyMDksMjMyMTEsMjMyMTIsMjMyMTMsMjMyMTQsMjMyMTUsMjMyMTYsMjMyMTcsMjMyMjAsMjMyMjIsMjMyMjMsMjMyMjUsMjMyMjYsMjMyMjcsMjMyMjgsMjMyMjksMjMyMzEsMjMyMzIsMjMyMzUsMjMyMzYsMjMy''@;'; + put 'put ''MzcsMjMyMzgsMjMyMzksMjMyNDAsMjMyNDIsMjMyNDMsMjMyNDUsMjMyNDYsMjMyNDcsMjMyNDgsMjMyNDksMjMyNTEsMjMyNTMsMjMyNTUsMjMyNTcsMjMyNTgsMjMyNTksMjMyNjEsMjMyNjIsMjMyNjMsMjMyNjYsMjMyNjgsMjMyNjksMjMyNzEsMjMyNzIsMjMyNzQsMjMyNzYsMjMyNzcs''@;'; + put 'put ''MjMyNzgsMjMyNzksMjMyODAsMjMyODIsMjMyODMsMjMyODQsMjMyODUsMjMyODYsMjMyODcsMjMyODgsMjMyODksMjMyOTAsMjMyOTEsMjMyOTIsMjMyOTMsMjMyOTQsMjMyOTUsMjMyOTYsMjMyOTcsMjMyOTgsMjMyOTksMjMzMDAsMjMzMDEsMjMzMDIsMjMzMDMsMjMzMDQsMjMzMDYsMjMz''@;'; + put 'put ''MDcsMjMzMDgsMjMzMDksMjMzMTAsMjMzMTEsMjMzMTIsMjMzMTMsMjMzMTQsMjMzMTUsMjMzMTYsMjMzMTcsMjMzMjAsMjMzMjEsMjMzMjIsMjMzMjMsMjMzMjQsMjMzMjUsMjMzMjYsMjMzMjcsMjMzMjgsMjMzMjksMjMzMzAsMjMzMzEsMjMzMzIsMjMzMzMsMjMzMzQsMjMzMzUsMjMzMzYs''@;'; + put 'put ''MjMzMzcsMjMzMzgsMjMzMzksMjMzNDAsMjMzNDEsMjMzNDIsMjMzNDMsMjMzNDQsMjMzNDUsMjMzNDcsMjMzNDksMjMzNTAsMjMzNTIsMjMzNTMsMjMzNTQsMjMzNTUsMjMzNTYsMjMzNTcsMjMzNTgsMjMzNTksMjMzNjEsMjMzNjIsMjMzNjMsMjMzNjQsMjMzNjUsMjMzNjYsMjMzNjcsMjMz''@;'; + put 'put ''NjgsMjMzNjksMjMzNzAsMjMzNzEsMjMzNzIsMjMzNzMsMjMzNzQsMjMzNzUsMjMzNzgsMjMzODIsMjMzOTAsMjMzOTIsMjMzOTMsMjMzOTksMjM0MDAsMjM0MDMsMjM0MDUsMjM0MDYsMjM0MDcsMjM0MTAsMjM0MTIsMjM0MTQsMjM0MTUsMjM0MTYsMjM0MTcsMjM0MTksMjM0MjAsMjM0MjIs''@;'; + put 'put ''MjM0MjMsMjM0MjYsMjM0MzAsMjM0MzQsMjM0MzcsMjM0MzgsMjM0NDAsMjM0NDEsMjM0NDIsMjM0NDQsMjM0NDYsMjM0NTUsMjM0NjMsMjM0NjQsMjM0NjUsMjM0NjgsMjM0NjksMjM0NzAsMjM0NzEsMjM0NzMsMjM0NzQsMjM0NzksMjM0ODIsMjM0ODMsMjM0ODQsMjM0ODgsMjM0ODksMjM0''@;'; + put 'put ''OTEsMjM0OTYsMjM0OTcsMjM0OTgsMjM0OTksMjM1MDEsMjM1MDIsMjM1MDMsMjM1MDUsMjM1MDgsMjM1MDksMjM1MTAsMjM1MTEsMjM1MTIsMjM1MTMsMjM1MTQsMjM1MTUsMjM1MTYsMjM1MjAsMjM1MjIsMjM1MjMsMjM1MjYsMjM1MjcsMjM1MjksMjM1MzAsMjM1MzEsMjM1MzIsMjM1MzMs''@;'; + put 'put ''MjM1MzUsMjM1MzcsMjM1MzgsMjM1MzksMjM1NDAsMjM1NDEsMjM1NDIsMjM1NDMsMjM1NDksMjM1NTAsMjM1NTIsMjM1NTQsMjM1NTUsMjM1NTcsMjM1NTksMjM1NjAsMjM1NjMsMjM1NjQsMjM1NjUsMjM1NjYsMjM1NjgsMjM1NzAsMjM1NzEsMjM1NzUsMjM1NzcsMjM1NzksMjM1ODIsMjM1''@;'; + put 'put ''ODMsMjM1ODQsMjM1ODUsMjM1ODcsMjM1OTAsMjM1OTIsMjM1OTMsMjM1OTQsMjM1OTUsMjM1OTcsMjM1OTgsMjM1OTksMjM2MDAsMjM2MDIsMjM2MDMsMjM2MDUsMjM2MDYsMjM2MDcsMjM2MTksMjM2MjAsMjM2MjIsMjM2MjMsMjM2MjgsMjM2MjksMjM2MzQsMjM2MzUsMjM2MzYsMjM2Mzgs''@;'; + put 'put ''MjM2MzksMjM2NDAsMjM2NDIsMjM2NDMsMjM2NDQsMjM2NDUsMjM2NDcsMjM2NTAsMjM2NTIsMjM2NTUsMjM2NTYsMjM2NTcsMjM2NTgsMjM2NTksMjM2NjAsMjM2NjEsMjM2NjQsMjM2NjYsMjM2NjcsMjM2NjgsMjM2NjksMjM2NzAsMjM2NzEsMjM2NzIsMjM2NzUsMjM2NzYsMjM2NzcsMjM2''@;'; + put 'put ''NzgsMjM2ODAsMjM2ODMsMjM2ODQsMjM2ODUsMjM2ODYsMjM2ODcsMjM2ODksMjM2OTAsMjM2OTEsMjM2OTQsMjM2OTUsMjM2OTgsMjM2OTksMjM3MDEsMjM3MDksMjM3MTAsMjM3MTEsMjM3MTIsMjM3MTMsMjM3MTYsMjM3MTcsMjM3MTgsMjM3MTksMjM3MjAsMjM3MjIsMjM3MjYsMjM3Mjcs''@;'; + put 'put ''MjM3MjgsMjM3MzAsMjM3MzIsMjM3MzQsMjM3MzcsMjM3MzgsMjM3MzksMjM3NDAsMjM3NDIsMjM3NDQsMjM3NDYsMjM3NDcsMjM3NDksMjM3NTAsMjM3NTEsMjM3NTIsMjM3NTMsMjM3NTQsMjM3NTYsMjM3NTcsMjM3NTgsMjM3NTksMjM3NjAsMjM3NjEsMjM3NjMsMjM3NjQsMjM3NjUsMjM3''@;'; + put 'put ''NjYsMjM3NjcsMjM3NjgsMjM3NzAsMjM3NzEsMjM3NzIsMjM3NzMsMjM3NzQsMjM3NzUsMjM3NzYsMjM3NzgsMjM3NzksMjM3ODMsMjM3ODUsMjM3ODcsMjM3ODgsMjM3OTAsMjM3OTEsMjM3OTMsMjM3OTQsMjM3OTUsMjM3OTYsMjM3OTcsMjM3OTgsMjM3OTksMjM4MDAsMjM4MDEsMjM4MDIs''@;'; + put 'put ''MjM4MDQsMjM4MDUsMjM4MDYsMjM4MDcsMjM4MDgsMjM4MDksMjM4MTIsMjM4MTMsMjM4MTYsMjM4MTcsMjM4MTgsMjM4MTksMjM4MjAsMjM4MjEsMjM4MjMsMjM4MjQsMjM4MjUsMjM4MjYsMjM4MjcsMjM4MjksMjM4MzEsMjM4MzIsMjM4MzMsMjM4MzQsMjM4MzYsMjM4MzcsMjM4MzksMjM4''@;'; + put 'put ''NDAsMjM4NDEsMjM4NDIsMjM4NDMsMjM4NDUsMjM4NDgsMjM4NTAsMjM4NTEsMjM4NTIsMjM4NTUsMjM4NTYsMjM4NTcsMjM4NTgsMjM4NTksMjM4NjEsMjM4NjIsMjM4NjMsMjM4NjQsMjM4NjUsMjM4NjYsMjM4NjcsMjM4NjgsMjM4NzEsMjM4NzIsMjM4NzMsMjM4NzQsMjM4NzUsMjM4NzYs''@;'; + put 'put ''MjM4NzcsMjM4NzgsMjM4ODAsMjM4ODEsMjM4ODUsMjM4ODYsMjM4ODcsMjM4ODgsMjM4ODksMjM4OTAsMjM4OTEsMjM4OTIsMjM4OTMsMjM4OTQsMjM4OTUsMjM4OTcsMjM4OTgsMjM5MDAsMjM5MDIsMjM5MDMsMjM5MDQsMjM5MDUsMjM5MDYsMjM5MDcsMjM5MDgsMjM5MDksMjM5MTAsMjM5''@;'; + put 'put ''MTEsMjM5MTIsMjM5MTQsMjM5MTcsMjM5MTgsMjM5MjAsMjM5MjEsMjM5MjIsMjM5MjMsMjM5MjUsMjM5MjYsMjM5MjcsMjM5MjgsMjM5MjksMjM5MzAsMjM5MzEsMjM5MzIsMjM5MzMsMjM5MzQsMjM5MzUsMjM5MzYsMjM5MzcsMjM5MzksMjM5NDAsMjM5NDEsMjM5NDIsMjM5NDMsMjM5NDQs''@;'; + put 'put ''MjM5NDUsMjM5NDYsMjM5NDcsMjM5NDgsMjM5NDksMjM5NTAsMjM5NTEsMjM5NTIsMjM5NTMsMjM5NTQsMjM5NTUsMjM5NTYsMjM5NTcsMjM5NTgsMjM5NTksMjM5NjAsMjM5NjIsMjM5NjMsMjM5NjQsMjM5NjYsMjM5NjcsMjM5NjgsMjM5NjksMjM5NzAsMjM5NzEsMjM5NzIsMjM5NzMsMjM5''@;'; + put 'put ''NzQsMjM5NzUsMjM5NzYsMjM5NzcsMjM5NzgsMjM5NzksMjM5ODAsMjM5ODEsMjM5ODIsMjM5ODMsMjM5ODQsMjM5ODUsMjM5ODYsMjM5ODcsMjM5ODgsMjM5ODksMjM5OTAsMjM5OTIsMjM5OTMsMjM5OTQsMjM5OTUsMjM5OTYsMjM5OTcsMjM5OTgsMjM5OTksMjRlMywyNDAwMSwyNDAwMiwy''@;'; + put 'put ''NDAwMywyNDAwNCwyNDAwNiwyNDAwNywyNDAwOCwyNDAwOSwyNDAxMCwyNDAxMSwyNDAxMiwyNDAxNCwyNDAxNSwyNDAxNiwyNDAxNywyNDAxOCwyNDAxOSwyNDAyMCwyNDAyMSwyNDAyMiwyNDAyMywyNDAyNCwyNDAyNSwyNDAyNiwyNDAyOCwyNDAzMSwyNDAzMiwyNDAzNSwyNDAzNiwyNDA0''@;'; + put 'put ''MiwyNDA0NCwyNDA0NSwyNDA0OCwyNDA1MywyNDA1NCwyNDA1NiwyNDA1NywyNDA1OCwyNDA1OSwyNDA2MCwyNDA2MywyNDA2NCwyNDA2OCwyNDA3MSwyNDA3MywyNDA3NCwyNDA3NSwyNDA3NywyNDA3OCwyNDA4MiwyNDA4MywyNDA4NywyNDA5NCwyNDA5NSwyNDA5NiwyNDA5NywyNDA5OCwy''@;'; + put 'put ''NDA5OSwyNDEwMCwyNDEwMSwyNDEwNCwyNDEwNSwyNDEwNiwyNDEwNywyNDEwOCwyNDExMSwyNDExMiwyNDExNCwyNDExNSwyNDExNiwyNDExNywyNDExOCwyNDEyMSwyNDEyMiwyNDEyNiwyNDEyNywyNDEyOCwyNDEyOSwyNDEzMSwyNDEzNCwyNDEzNSwyNDEzNiwyNDEzNywyNDEzOCwyNDEz''@;'; + put 'put ''OSwyNDE0MSwyNDE0MiwyNDE0MywyNDE0NCwyNDE0NSwyNDE0NiwyNDE0NywyNDE1MCwyNDE1MSwyNDE1MiwyNDE1MywyNDE1NCwyNDE1NiwyNDE1NywyNDE1OSwyNDE2MCwyNDE2MywyNDE2NCwyNDE2NSwyNDE2NiwyNDE2NywyNDE2OCwyNDE2OSwyNDE3MCwyNDE3MSwyNDE3MiwyNDE3Mywy''@;'; + put 'put ''NDE3NCwyNDE3NSwyNDE3NiwyNDE3NywyNDE4MSwyNDE4MywyNDE4NSwyNDE5MCwyNDE5MywyNDE5NCwyNDE5NSwyNDE5NywyNDIwMCwyNDIwMSwyNDIwNCwyNDIwNSwyNDIwNiwyNDIxMCwyNDIxNiwyNDIxOSwyNDIyMSwyNDIyNSwyNDIyNiwyNDIyNywyNDIyOCwyNDIzMiwyNDIzMywyNDIz''@;'; + put 'put ''NCwyNDIzNSwyNDIzNiwyNDIzOCwyNDIzOSwyNDI0MCwyNDI0MSwyNDI0MiwyNDI0NCwyNDI1MCwyNDI1MSwyNDI1MiwyNDI1MywyNDI1NSwyNDI1NiwyNDI1NywyNDI1OCwyNDI1OSwyNDI2MCwyNDI2MSwyNDI2MiwyNDI2MywyNDI2NCwyNDI2NywyNDI2OCwyNDI2OSwyNDI3MCwyNDI3MSwy''@;'; + put 'put ''NDI3MiwyNDI3NiwyNDI3NywyNDI3OSwyNDI4MCwyNDI4MSwyNDI4MiwyNDI4NCwyNDI4NSwyNDI4NiwyNDI4NywyNDI4OCwyNDI4OSwyNDI5MCwyNDI5MSwyNDI5MiwyNDI5MywyNDI5NCwyNDI5NSwyNDI5NywyNDI5OSwyNDMwMCwyNDMwMSwyNDMwMiwyNDMwMywyNDMwNCwyNDMwNSwyNDMw''@;'; + put 'put ''NiwyNDMwNywyNDMwOSwyNDMxMiwyNDMxMywyNDMxNSwyNDMxNiwyNDMxNywyNDMyNSwyNDMyNiwyNDMyNywyNDMyOSwyNDMzMiwyNDMzMywyNDMzNCwyNDMzNiwyNDMzOCwyNDM0MCwyNDM0MiwyNDM0NSwyNDM0NiwyNDM0OCwyNDM0OSwyNDM1MCwyNDM1MywyNDM1NCwyNDM1NSwyNDM1Niwy''@;'; + put 'put ''NDM2MCwyNDM2MywyNDM2NCwyNDM2NiwyNDM2OCwyNDM3MCwyNDM3MSwyNDM3MiwyNDM3MywyNDM3NCwyNDM3NSwyNDM3NiwyNDM3OSwyNDM4MSwyNDM4MiwyNDM4MywyNDM4NSwyNDM4NiwyNDM4NywyNDM4OCwyNDM4OSwyNDM5MCwyNDM5MSwyNDM5MiwyNDM5MywyNDM5NCwyNDM5NSwyNDM5''@;'; + put 'put ''NiwyNDM5NywyNDM5OCwyNDM5OSwyNDQwMSwyNDQwNCwyNDQwOSwyNDQxMCwyNDQxMSwyNDQxMiwyNDQxNCwyNDQxNSwyNDQxNiwyNDQxOSwyNDQyMSwyNDQyMywyNDQyNCwyNDQyNywyNDQzMCwyNDQzMSwyNDQzNCwyNDQzNiwyNDQzNywyNDQzOCwyNDQ0MCwyNDQ0MiwyNDQ0NSwyNDQ0Niwy''@;'; + put 'put ''NDQ0NywyNDQ1MSwyNDQ1NCwyNDQ2MSwyNDQ2MiwyNDQ2MywyNDQ2NSwyNDQ2NywyNDQ2OCwyNDQ3MCwyNDQ3NCwyNDQ3NSwyNDQ3NywyNDQ3OCwyNDQ3OSwyNDQ4MCwyNDQ4MiwyNDQ4MywyNDQ4NCwyNDQ4NSwyNDQ4NiwyNDQ4NywyNDQ4OSwyNDQ5MSwyNDQ5MiwyNDQ5NSwyNDQ5NiwyNDQ5''@;'; + put 'put ''NywyNDQ5OCwyNDQ5OSwyNDUwMCwyNDUwMiwyNDUwNCwyNDUwNSwyNDUwNiwyNDUwNywyNDUxMCwyNDUxMSwyNDUxMiwyNDUxMywyNDUxNCwyNDUxOSwyNDUyMCwyNDUyMiwyNDUyMywyNDUyNiwyNDUzMSwyNDUzMiwyNDUzMywyNDUzOCwyNDUzOSwyNDU0MCwyNDU0MiwyNDU0MywyNDU0Niwy''@;'; + put 'put ''NDU0NywyNDU0OSwyNDU1MCwyNDU1MiwyNDU1MywyNDU1NiwyNDU1OSwyNDU2MCwyNDU2MiwyNDU2MywyNDU2NCwyNDU2NiwyNDU2NywyNDU2OSwyNDU3MCwyNDU3MiwyNDU4MywyNDU4NCwyNDU4NSwyNDU4NywyNDU4OCwyNDU5MiwyNDU5MywyNDU5NSwyNDU5OSwyNDYwMCwyNDYwMiwyNDYw''@;'; + put 'put ''NiwyNDYwNywyNDYxMCwyNDYxMSwyNDYxMiwyNDYyMCwyNDYyMSwyNDYyMiwyNDYyNCwyNDYyNSwyNDYyNiwyNDYyNywyNDYyOCwyNDYzMCwyNDYzMSwyNDYzMiwyNDYzMywyNDYzNCwyNDYzNywyNDYzOCwyNDY0MCwyNDY0NCwyNDY0NSwyNDY0NiwyNDY0NywyNDY0OCwyNDY0OSwyNDY1MCwy''@;'; + put 'put ''NDY1MiwyNDY1NCwyNDY1NSwyNDY1NywyNDY1OSwyNDY2MCwyNDY2MiwyNDY2MywyNDY2NCwyNDY2NywyNDY2OCwyNDY3MCwyNDY3MSwyNDY3MiwyNDY3MywyNDY3NywyNDY3OCwyNDY4NiwyNDY4OSwyNDY5MCwyNDY5MiwyNDY5MywyNDY5NSwyNDcwMiwyNDcwNCwyNDcwNSwyNDcwNiwyNDcw''@;'; + put 'put ''OSwyNDcxMCwyNDcxMSwyNDcxMiwyNDcxNCwyNDcxNSwyNDcxOCwyNDcxOSwyNDcyMCwyNDcyMSwyNDcyMywyNDcyNSwyNDcyNywyNDcyOCwyNDcyOSwyNDczMiwyNDczNCwyNDczNywyNDczOCwyNDc0MCwyNDc0MSwyNDc0MywyNDc0NSwyNDc0NiwyNDc1MCwyNDc1MiwyNDc1NSwyNDc1Nywy''@;'; + put 'put ''NDc1OCwyNDc1OSwyNDc2MSwyNDc2MiwyNDc2NSwyNDc2NiwyNDc2NywyNDc2OCwyNDc2OSwyNDc3MCwyNDc3MSwyNDc3MiwyNDc3NSwyNDc3NiwyNDc3NywyNDc4MCwyNDc4MSwyNDc4MiwyNDc4MywyNDc4NCwyNDc4NiwyNDc4NywyNDc4OCwyNDc5MCwyNDc5MSwyNDc5MywyNDc5NSwyNDc5''@;'; + put 'put ''OCwyNDgwMSwyNDgwMiwyNDgwMywyNDgwNCwyNDgwNSwyNDgxMCwyNDgxNywyNDgxOCwyNDgyMSwyNDgyMywyNDgyNCwyNDgyNywyNDgyOCwyNDgyOSwyNDgzMCwyNDgzMSwyNDgzNCwyNDgzNSwyNDgzNiwyNDgzNywyNDgzOSwyNDg0MiwyNDg0MywyNDg0NCwyNDg0OCwyNDg0OSwyNDg1MCwy''@;'; + put 'put ''NDg1MSwyNDg1MiwyNDg1NCwyNDg1NSwyNDg1NiwyNDg1NywyNDg1OSwyNDg2MCwyNDg2MSwyNDg2MiwyNDg2NSwyNDg2NiwyNDg2OSwyNDg3MiwyNDg3MywyNDg3NCwyNDg3NiwyNDg3NywyNDg3OCwyNDg3OSwyNDg4MCwyNDg4MSwyNDg4MiwyNDg4MywyNDg4NCwyNDg4NSwyNDg4NiwyNDg4''@;'; + put 'put ''NywyNDg4OCwyNDg4OSwyNDg5MCwyNDg5MSwyNDg5MiwyNDg5MywyNDg5NCwyNDg5NiwyNDg5NywyNDg5OCwyNDg5OSwyNDkwMCwyNDkwMSwyNDkwMiwyNDkwMywyNDkwNSwyNDkwNywyNDkwOSwyNDkxMSwyNDkxMiwyNDkxNCwyNDkxNSwyNDkxNiwyNDkxOCwyNDkxOSwyNDkyMCwyNDkyMSwy''@;'; + put 'put ''NDkyMiwyNDkyMywyNDkyNCwyNDkyNiwyNDkyNywyNDkyOCwyNDkyOSwyNDkzMSwyNDkzMiwyNDkzMywyNDkzNCwyNDkzNywyNDkzOCwyNDkzOSwyNDk0MCwyNDk0MSwyNDk0MiwyNDk0MywyNDk0NSwyNDk0NiwyNDk0NywyNDk0OCwyNDk1MCwyNDk1MiwyNDk1MywyNDk1NCwyNDk1NSwyNDk1''@;'; + put 'put ''NiwyNDk1NywyNDk1OCwyNDk1OSwyNDk2MCwyNDk2MSwyNDk2MiwyNDk2MywyNDk2NCwyNDk2NSwyNDk2NiwyNDk2NywyNDk2OCwyNDk2OSwyNDk3MCwyNDk3MiwyNDk3MywyNDk3NSwyNDk3NiwyNDk3NywyNDk3OCwyNDk3OSwyNDk4MSwyNDk4MiwyNDk4MywyNDk4NCwyNDk4NSwyNDk4Niwy''@;'; + put 'put ''NDk4NywyNDk4OCwyNDk5MCwyNDk5MSwyNDk5MiwyNDk5MywyNDk5NCwyNDk5NSwyNDk5NiwyNDk5NywyNDk5OCwyNTAwMiwyNTAwMywyNTAwNSwyNTAwNiwyNTAwNywyNTAwOCwyNTAwOSwyNTAxMCwyNTAxMSwyNTAxMiwyNTAxMywyNTAxNCwyNTAxNiwyNTAxNywyNTAxOCwyNTAxOSwyNTAy''@;'; + put 'put ''MCwyNTAyMSwyNTAyMywyNTAyNCwyNTAyNSwyNTAyNywyNTAyOCwyNTAyOSwyNTAzMCwyNTAzMSwyNTAzMywyNTAzNiwyNTAzNywyNTAzOCwyNTAzOSwyNTA0MCwyNTA0MywyNTA0NSwyNTA0NiwyNTA0NywyNTA0OCwyNTA0OSwyNTA1MCwyNTA1MSwyNTA1MiwyNTA1MywyNTA1NCwyNTA1NSwy''@;'; + put 'put ''NTA1NiwyNTA1NywyNTA1OCwyNTA1OSwyNTA2MCwyNTA2MSwyNTA2MywyNTA2NCwyNTA2NSwyNTA2NiwyNTA2NywyNTA2OCwyNTA2OSwyNTA3MCwyNTA3MSwyNTA3MiwyNTA3MywyNTA3NCwyNTA3NSwyNTA3NiwyNTA3OCwyNTA3OSwyNTA4MCwyNTA4MSwyNTA4MiwyNTA4MywyNTA4NCwyNTA4''@;'; + put 'put ''NSwyNTA4NiwyNTA4OCwyNTA4OSwyNTA5MCwyNTA5MSwyNTA5MiwyNTA5MywyNTA5NSwyNTA5NywyNTEwNywyNTEwOCwyNTExMywyNTExNiwyNTExNywyNTExOCwyNTEyMCwyNTEyMywyNTEyNiwyNTEyNywyNTEyOCwyNTEyOSwyNTEzMSwyNTEzMywyNTEzNSwyNTEzNiwyNTEzNywyNTEzOCwy''@;'; + put 'put ''NTE0MSwyNTE0MiwyNTE0NCwyNTE0NSwyNTE0NiwyNTE0NywyNTE0OCwyNTE1NCwyNTE1NiwyNTE1NywyNTE1OCwyNTE2MiwyNTE2NywyNTE2OCwyNTE3MywyNTE3NCwyNTE3NSwyNTE3NywyNTE3OCwyNTE4MCwyNTE4MSwyNTE4MiwyNTE4MywyNTE4NCwyNTE4NSwyNTE4NiwyNTE4OCwyNTE4''@;'; + put 'put ''OSwyNTE5MiwyNTIwMSwyNTIwMiwyNTIwNCwyNTIwNSwyNTIwNywyNTIwOCwyNTIxMCwyNTIxMSwyNTIxMywyNTIxNywyNTIxOCwyNTIxOSwyNTIyMSwyNTIyMiwyNTIyMywyNTIyNCwyNTIyNywyNTIyOCwyNTIyOSwyNTIzMCwyNTIzMSwyNTIzMiwyNTIzNiwyNTI0MSwyNTI0NCwyNTI0NSwy''@;'; + put 'put ''NTI0NiwyNTI1MSwyNTI1NCwyNTI1NSwyNTI1NywyNTI1OCwyNTI2MSwyNTI2MiwyNTI2MywyNTI2NCwyNTI2NiwyNTI2NywyNTI2OCwyNTI3MCwyNTI3MSwyNTI3MiwyNTI3NCwyNTI3OCwyNTI4MCwyNTI4MSwyNTI4MywyNTI5MSwyNTI5NSwyNTI5NywyNTMwMSwyNTMwOSwyNTMxMCwyNTMx''@;'; + put 'put ''MiwyNTMxMywyNTMxNiwyNTMyMiwyNTMyMywyNTMyOCwyNTMzMCwyNTMzMywyNTMzNiwyNTMzNywyNTMzOCwyNTMzOSwyNTM0NCwyNTM0NywyNTM0OCwyNTM0OSwyNTM1MCwyNTM1NCwyNTM1NSwyNTM1NiwyNTM1NywyNTM1OSwyNTM2MCwyNTM2MiwyNTM2MywyNTM2NCwyNTM2NSwyNTM2Nywy''@;'; + put 'put ''NTM2OCwyNTM2OSwyNTM3MiwyNTM4MiwyNTM4MywyNTM4NSwyNTM4OCwyNTM4OSwyNTM5MCwyNTM5MiwyNTM5MywyNTM5NSwyNTM5NiwyNTM5NywyNTM5OCwyNTM5OSwyNTQwMCwyNTQwMywyNTQwNCwyNTQwNiwyNTQwNywyNTQwOCwyNTQwOSwyNTQxMiwyNTQxNSwyNTQxNiwyNTQxOCwyNTQy''@;'; + put 'put ''NSwyNTQyNiwyNTQyNywyNTQyOCwyNTQzMCwyNTQzMSwyNTQzMiwyNTQzMywyNTQzNCwyNTQzNSwyNTQzNiwyNTQzNywyNTQ0MCwyNTQ0NCwyNTQ0NSwyNTQ0NiwyNTQ0OCwyNTQ1MCwyNTQ1MSwyNTQ1MiwyNTQ1NSwyNTQ1NiwyNTQ1OCwyNTQ1OSwyNTQ2MCwyNTQ2MSwyNTQ2NCwyNTQ2NSwy''@;'; + put 'put ''NTQ2OCwyNTQ2OSwyNTQ3MCwyNTQ3MSwyNTQ3MywyNTQ3NSwyNTQ3NiwyNTQ3NywyNTQ3OCwyNTQ4MywyNTQ4NSwyNTQ4OSwyNTQ5MSwyNTQ5MiwyNTQ5MywyNTQ5NSwyNTQ5NywyNTQ5OCwyNTQ5OSwyNTUwMCwyNTUwMSwyNTUwMiwyNTUwMywyNTUwNSwyNTUwOCwyNTUxMCwyNTUxNSwyNTUx''@;'; + put 'put ''OSwyNTUyMSwyNTUyMiwyNTUyNSwyNTUyNiwyNTUyOSwyNTUzMSwyNTUzMywyNTUzNSwyNTUzNiwyNTUzNywyNTUzOCwyNTUzOSwyNTU0MSwyNTU0MywyNTU0NCwyNTU0NiwyNTU0NywyNTU0OCwyNTU1MywyNTU1NSwyNTU1NiwyNTU1NywyNTU1OSwyNTU2MCwyNTU2MSwyNTU2MiwyNTU2Mywy''@;'; + put 'put ''NTU2NCwyNTU2NSwyNTU2NywyNTU3MCwyNTU3MiwyNTU3MywyNTU3NCwyNTU3NSwyNTU3NiwyNTU3OSwyNTU4MCwyNTU4MiwyNTU4MywyNTU4NCwyNTU4NSwyNTU4NywyNTU4OSwyNTU5MSwyNTU5MywyNTU5NCwyNTU5NSwyNTU5NiwyNTU5OCwyNTYwMywyNTYwNCwyNTYwNiwyNTYwNywyNTYw''@;'; + put 'put ''OCwyNTYwOSwyNTYxMCwyNTYxMywyNTYxNCwyNTYxNywyNTYxOCwyNTYyMSwyNTYyMiwyNTYyMywyNTYyNCwyNTYyNSwyNTYyNiwyNTYyOSwyNTYzMSwyNTYzNCwyNTYzNSwyNTYzNiwyNTYzNywyNTYzOSwyNTY0MCwyNTY0MSwyNTY0MywyNTY0NiwyNTY0NywyNTY0OCwyNTY0OSwyNTY1MCwy''@;'; + put 'put ''NTY1MSwyNTY1MywyNTY1NCwyNTY1NSwyNTY1NiwyNTY1NywyNTY1OSwyNTY2MCwyNTY2MiwyNTY2NCwyNTY2NiwyNTY2NywyNTY3MywyNTY3NSwyNTY3NiwyNTY3NywyNTY3OCwyNTY3OSwyNTY4MCwyNTY4MSwyNTY4MywyNTY4NSwyNTY4NiwyNTY4NywyNTY4OSwyNTY5MCwyNTY5MSwyNTY5''@;'; + put 'put ''MiwyNTY5MywyNTY5NSwyNTY5NiwyNTY5NywyNTY5OCwyNTY5OSwyNTcwMCwyNTcwMSwyNTcwMiwyNTcwNCwyNTcwNiwyNTcwNywyNTcwOCwyNTcxMCwyNTcxMSwyNTcxMiwyNTcxMywyNTcxNCwyNTcxNSwyNTcxNiwyNTcxNywyNTcxOCwyNTcxOSwyNTcyMywyNTcyNCwyNTcyNSwyNTcyNiwy''@;'; + put 'put ''NTcyNywyNTcyOCwyNTcyOSwyNTczMSwyNTczNCwyNTczNiwyNTczNywyNTczOCwyNTczOSwyNTc0MCwyNTc0MSwyNTc0MiwyNTc0MywyNTc0NCwyNTc0NywyNTc0OCwyNTc1MSwyNTc1MiwyNTc1NCwyNTc1NSwyNTc1NiwyNTc1NywyNTc1OSwyNTc2MCwyNTc2MSwyNTc2MiwyNTc2MywyNTc2''@;'; + put 'put ''NSwyNTc2NiwyNTc2NywyNTc2OCwyNTc3MCwyNTc3MSwyNTc3NSwyNTc3NywyNTc3OCwyNTc3OSwyNTc4MCwyNTc4MiwyNTc4NSwyNTc4NywyNTc4OSwyNTc5MCwyNTc5MSwyNTc5MywyNTc5NSwyNTc5NiwyNTc5OCwyNTc5OSwyNTgwMCwyNTgwMSwyNTgwMiwyNTgwMywyNTgwNCwyNTgwNywy''@;'; + put 'put ''NTgwOSwyNTgxMSwyNTgxMiwyNTgxMywyNTgxNCwyNTgxNywyNTgxOCwyNTgxOSwyNTgyMCwyNTgyMSwyNTgyMywyNTgyNCwyNTgyNSwyNTgyNywyNTgyOSwyNTgzMSwyNTgzMiwyNTgzMywyNTgzNCwyNTgzNSwyNTgzNiwyNTgzNywyNTgzOCwyNTgzOSwyNTg0MCwyNTg0MSwyNTg0MiwyNTg0''@;'; + put 'put ''MywyNTg0NCwyNTg0NSwyNTg0NiwyNTg0NywyNTg0OCwyNTg0OSwyNTg1MCwyNTg1MSwyNTg1MiwyNTg1MywyNTg1NCwyNTg1NSwyNTg1NywyNTg1OCwyNTg1OSwyNTg2MCwyNTg2MSwyNTg2MiwyNTg2MywyNTg2NCwyNTg2NiwyNTg2NywyNTg2OCwyNTg2OSwyNTg3MCwyNTg3MSwyNTg3Miwy''@;'; + put 'put ''NTg3MywyNTg3NSwyNTg3NiwyNTg3NywyNTg3OCwyNTg3OSwyNTg4MSwyNTg4MiwyNTg4MywyNTg4NCwyNTg4NSwyNTg4NiwyNTg4NywyNTg4OCwyNTg4OSwyNTg5MCwyNTg5MSwyNTg5MiwyNTg5NCwyNTg5NSwyNTg5NiwyNTg5NywyNTg5OCwyNTkwMCwyNTkwMSwyNTkwNCwyNTkwNSwyNTkw''@;'; + put 'put ''NiwyNTkwNywyNTkxMSwyNTkxNCwyNTkxNiwyNTkxNywyNTkyMCwyNTkyMSwyNTkyMiwyNTkyMywyNTkyNCwyNTkyNiwyNTkyNywyNTkzMCwyNTkzMSwyNTkzMywyNTkzNCwyNTkzNiwyNTkzOCwyNTkzOSwyNTk0MCwyNTk0MywyNTk0NCwyNTk0NiwyNTk0OCwyNTk1MSwyNTk1MiwyNTk1Mywy''@;'; + put 'put ''NTk1NiwyNTk1NywyNTk1OSwyNTk2MCwyNTk2MSwyNTk2MiwyNTk2NSwyNTk2NiwyNTk2NywyNTk2OSwyNTk3MSwyNTk3MywyNTk3NCwyNTk3NiwyNTk3NywyNTk3OCwyNTk3OSwyNTk4MCwyNTk4MSwyNTk4MiwyNTk4MywyNTk4NCwyNTk4NSwyNTk4NiwyNTk4NywyNTk4OCwyNTk4OSwyNTk5''@;'; + put 'put ''MCwyNTk5MiwyNTk5MywyNTk5NCwyNTk5NywyNTk5OCwyNTk5OSwyNjAwMiwyNjAwNCwyNjAwNSwyNjAwNiwyNjAwOCwyNjAxMCwyNjAxMywyNjAxNCwyNjAxNiwyNjAxOCwyNjAxOSwyNjAyMiwyNjAyNCwyNjAyNiwyNjAyOCwyNjAzMCwyNjAzMywyNjAzNCwyNjAzNSwyNjAzNiwyNjAzNywy''@;'; + put 'put ''NjAzOCwyNjAzOSwyNjA0MCwyNjA0MiwyNjA0MywyNjA0NiwyNjA0NywyNjA0OCwyNjA1MCwyNjA1NSwyNjA1NiwyNjA1NywyNjA1OCwyNjA2MSwyNjA2NCwyNjA2NSwyNjA2NywyNjA2OCwyNjA2OSwyNjA3MiwyNjA3MywyNjA3NCwyNjA3NSwyNjA3NiwyNjA3NywyNjA3OCwyNjA3OSwyNjA4''@;'; + put 'put ''MSwyNjA4MywyNjA4NCwyNjA5MCwyNjA5MSwyNjA5OCwyNjA5OSwyNjEwMCwyNjEwMSwyNjEwNCwyNjEwNSwyNjEwNywyNjEwOCwyNjEwOSwyNjExMCwyNjExMSwyNjExMywyNjExNiwyNjExNywyNjExOSwyNjEyMCwyNjEyMSwyNjEyMywyNjEyNSwyNjEyOCwyNjEyOSwyNjEzMCwyNjEzNCwy''@;'; + put 'put ''NjEzNSwyNjEzNiwyNjEzOCwyNjEzOSwyNjE0MCwyNjE0MiwyNjE0NSwyNjE0NiwyNjE0NywyNjE0OCwyNjE1MCwyNjE1MywyNjE1NCwyNjE1NSwyNjE1NiwyNjE1OCwyNjE2MCwyNjE2MiwyNjE2MywyNjE2NywyNjE2OCwyNjE2OSwyNjE3MCwyNjE3MSwyNjE3MywyNjE3NSwyNjE3NiwyNjE3''@;'; + put 'put ''OCwyNjE4MCwyNjE4MSwyNjE4MiwyNjE4MywyNjE4NCwyNjE4NSwyNjE4NiwyNjE4OSwyNjE5MCwyNjE5MiwyNjE5MywyNjIwMCwyNjIwMSwyNjIwMywyNjIwNCwyNjIwNSwyNjIwNiwyNjIwOCwyNjIxMCwyNjIxMSwyNjIxMywyNjIxNSwyNjIxNywyNjIxOCwyNjIxOSwyNjIyMCwyNjIyMSwy''@;'; + put 'put ''NjIyNSwyNjIyNiwyNjIyNywyNjIyOSwyNjIzMiwyNjIzMywyNjIzNSwyNjIzNiwyNjIzNywyNjIzOSwyNjI0MCwyNjI0MSwyNjI0MywyNjI0NSwyNjI0NiwyNjI0OCwyNjI0OSwyNjI1MCwyNjI1MSwyNjI1MywyNjI1NCwyNjI1NSwyNjI1NiwyNjI1OCwyNjI1OSwyNjI2MCwyNjI2MSwyNjI2''@;'; + put 'put ''NCwyNjI2NSwyNjI2NiwyNjI2NywyNjI2OCwyNjI3MCwyNjI3MSwyNjI3MiwyNjI3MywyNjI3NCwyNjI3NSwyNjI3NiwyNjI3NywyNjI3OCwyNjI4MSwyNjI4MiwyNjI4MywyNjI4NCwyNjI4NSwyNjI4NywyNjI4OCwyNjI4OSwyNjI5MCwyNjI5MSwyNjI5MywyNjI5NCwyNjI5NSwyNjI5Niwy''@;'; + put 'put ''NjI5OCwyNjI5OSwyNjMwMCwyNjMwMSwyNjMwMywyNjMwNCwyNjMwNSwyNjMwNiwyNjMwNywyNjMwOCwyNjMwOSwyNjMxMCwyNjMxMSwyNjMxMiwyNjMxMywyNjMxNCwyNjMxNSwyNjMxNiwyNjMxNywyNjMxOCwyNjMxOSwyNjMyMCwyNjMyMSwyNjMyMiwyNjMyMywyNjMyNCwyNjMyNSwyNjMy''@;'; + put 'put ''NiwyNjMyNywyNjMyOCwyNjMzMCwyNjMzNCwyNjMzNSwyNjMzNiwyNjMzNywyNjMzOCwyNjMzOSwyNjM0MCwyNjM0MSwyNjM0MywyNjM0NCwyNjM0NiwyNjM0NywyNjM0OCwyNjM0OSwyNjM1MCwyNjM1MSwyNjM1MywyNjM1NywyNjM1OCwyNjM2MCwyNjM2MiwyNjM2MywyNjM2NSwyNjM2OSwy''@;'; + put 'put ''NjM3MCwyNjM3MSwyNjM3MiwyNjM3MywyNjM3NCwyNjM3NSwyNjM4MCwyNjM4MiwyNjM4MywyNjM4NSwyNjM4NiwyNjM4NywyNjM5MCwyNjM5MiwyNjM5MywyNjM5NCwyNjM5NiwyNjM5OCwyNjQwMCwyNjQwMSwyNjQwMiwyNjQwMywyNjQwNCwyNjQwNSwyNjQwNywyNjQwOSwyNjQxNCwyNjQx''@;'; + put 'put ''NiwyNjQxOCwyNjQxOSwyNjQyMiwyNjQyMywyNjQyNCwyNjQyNSwyNjQyNywyNjQyOCwyNjQzMCwyNjQzMSwyNjQzMywyNjQzNiwyNjQzNywyNjQzOSwyNjQ0MiwyNjQ0MywyNjQ0NSwyNjQ1MCwyNjQ1MiwyNjQ1MywyNjQ1NSwyNjQ1NiwyNjQ1NywyNjQ1OCwyNjQ1OSwyNjQ2MSwyNjQ2Niwy''@;'; + put 'put ''NjQ2NywyNjQ2OCwyNjQ3MCwyNjQ3MSwyNjQ3NSwyNjQ3NiwyNjQ3OCwyNjQ4MSwyNjQ4NCwyNjQ4NiwyNjQ4OCwyNjQ4OSwyNjQ5MCwyNjQ5MSwyNjQ5MywyNjQ5NiwyNjQ5OCwyNjQ5OSwyNjUwMSwyNjUwMiwyNjUwNCwyNjUwNiwyNjUwOCwyNjUwOSwyNjUxMCwyNjUxMSwyNjUxMywyNjUx''@;'; + put 'put ''NCwyNjUxNSwyNjUxNiwyNjUxOCwyNjUyMSwyNjUyMywyNjUyNywyNjUyOCwyNjUyOSwyNjUzMiwyNjUzNCwyNjUzNywyNjU0MCwyNjU0MiwyNjU0NSwyNjU0NiwyNjU0OCwyNjU1MywyNjU1NCwyNjU1NSwyNjU1NiwyNjU1NywyNjU1OCwyNjU1OSwyNjU2MCwyNjU2MiwyNjU2NSwyNjU2Niwy''@;'; + put 'put ''NjU2NywyNjU2OCwyNjU2OSwyNjU3MCwyNjU3MSwyNjU3MiwyNjU3MywyNjU3NCwyNjU4MSwyNjU4MiwyNjU4MywyNjU4NywyNjU5MSwyNjU5MywyNjU5NSwyNjU5NiwyNjU5OCwyNjU5OSwyNjYwMCwyNjYwMiwyNjYwMywyNjYwNSwyNjYwNiwyNjYxMCwyNjYxMywyNjYxNCwyNjYxNSwyNjYx''@;'; + put 'put ''NiwyNjYxNywyNjYxOCwyNjYxOSwyNjYyMCwyNjYyMiwyNjYyNSwyNjYyNiwyNjYyNywyNjYyOCwyNjYzMCwyNjYzNywyNjY0MCwyNjY0MiwyNjY0NCwyNjY0NSwyNjY0OCwyNjY0OSwyNjY1MCwyNjY1MSwyNjY1MiwyNjY1NCwyNjY1NSwyNjY1NiwyNjY1OCwyNjY1OSwyNjY2MCwyNjY2MSwy''@;'; + put 'put ''NjY2MiwyNjY2MywyNjY2NCwyNjY2NywyNjY2OCwyNjY2OSwyNjY3MCwyNjY3MSwyNjY3MiwyNjY3MywyNjY3NiwyNjY3NywyNjY3OCwyNjY4MiwyNjY4MywyNjY4NywyNjY5NSwyNjY5OSwyNjcwMSwyNjcwMywyNjcwNiwyNjcxMCwyNjcxMSwyNjcxMiwyNjcxMywyNjcxNCwyNjcxNSwyNjcx''@;'; + put 'put ''NiwyNjcxNywyNjcxOCwyNjcxOSwyNjczMCwyNjczMiwyNjczMywyNjczNCwyNjczNSwyNjczNiwyNjczNywyNjczOCwyNjczOSwyNjc0MSwyNjc0NCwyNjc0NSwyNjc0NiwyNjc0NywyNjc0OCwyNjc0OSwyNjc1MCwyNjc1MSwyNjc1MiwyNjc1NCwyNjc1NiwyNjc1OSwyNjc2MCwyNjc2MSwy''@;'; + put 'put ''Njc2MiwyNjc2MywyNjc2NCwyNjc2NSwyNjc2NiwyNjc2OCwyNjc2OSwyNjc3MCwyNjc3MiwyNjc3MywyNjc3NCwyNjc3NiwyNjc3NywyNjc3OCwyNjc3OSwyNjc4MCwyNjc4MSwyNjc4MiwyNjc4MywyNjc4NCwyNjc4NSwyNjc4NywyNjc4OCwyNjc4OSwyNjc5MywyNjc5NCwyNjc5NSwyNjc5''@;'; + put 'put ''NiwyNjc5OCwyNjgwMSwyNjgwMiwyNjgwNCwyNjgwNiwyNjgwNywyNjgwOCwyNjgwOSwyNjgxMCwyNjgxMSwyNjgxMiwyNjgxMywyNjgxNCwyNjgxNSwyNjgxNywyNjgxOSwyNjgyMCwyNjgyMSwyNjgyMiwyNjgyMywyNjgyNCwyNjgyNiwyNjgyOCwyNjgzMCwyNjgzMSwyNjgzMiwyNjgzMywy''@;'; + put 'put ''NjgzNSwyNjgzNiwyNjgzOCwyNjgzOSwyNjg0MSwyNjg0MywyNjg0NCwyNjg0NSwyNjg0NiwyNjg0NywyNjg0OSwyNjg1MCwyNjg1MiwyNjg1MywyNjg1NCwyNjg1NSwyNjg1NiwyNjg1NywyNjg1OCwyNjg1OSwyNjg2MCwyNjg2MSwyNjg2MywyNjg2NiwyNjg2NywyNjg2OCwyNjg3MCwyNjg3''@;'; + put 'put ''MSwyNjg3MiwyNjg3NSwyNjg3NywyNjg3OCwyNjg3OSwyNjg4MCwyNjg4MiwyNjg4MywyNjg4NCwyNjg4NiwyNjg4NywyNjg4OCwyNjg4OSwyNjg5MCwyNjg5MiwyNjg5NSwyNjg5NywyNjg5OSwyNjkwMCwyNjkwMSwyNjkwMiwyNjkwMywyNjkwNCwyNjkwNSwyNjkwNiwyNjkwNywyNjkwOCwy''@;'; + put 'put ''NjkwOSwyNjkxMCwyNjkxMywyNjkxNCwyNjkxNSwyNjkxNywyNjkxOCwyNjkxOSwyNjkyMCwyNjkyMSwyNjkyMiwyNjkyMywyNjkyNCwyNjkyNiwyNjkyNywyNjkyOSwyNjkzMCwyNjkzMSwyNjkzMywyNjkzNCwyNjkzNSwyNjkzNiwyNjkzOCwyNjkzOSwyNjk0MCwyNjk0MiwyNjk0NCwyNjk0''@;'; + put 'put ''NSwyNjk0NywyNjk0OCwyNjk0OSwyNjk1MCwyNjk1MSwyNjk1MiwyNjk1MywyNjk1NCwyNjk1NSwyNjk1NiwyNjk1NywyNjk1OCwyNjk1OSwyNjk2MCwyNjk2MSwyNjk2MiwyNjk2MywyNjk2NSwyNjk2NiwyNjk2OCwyNjk2OSwyNjk3MSwyNjk3MiwyNjk3NSwyNjk3NywyNjk3OCwyNjk4MCwy''@;'; + put 'put ''Njk4MSwyNjk4MywyNjk4NCwyNjk4NSwyNjk4NiwyNjk4OCwyNjk4OSwyNjk5MSwyNjk5MiwyNjk5NCwyNjk5NSwyNjk5NiwyNjk5NywyNjk5OCwyNzAwMiwyNzAwMywyNzAwNSwyNzAwNiwyNzAwNywyNzAwOSwyNzAxMSwyNzAxMywyNzAxOCwyNzAxOSwyNzAyMCwyNzAyMiwyNzAyMywyNzAy''@;'; + put 'put ''NCwyNzAyNSwyNzAyNiwyNzAyNywyNzAzMCwyNzAzMSwyNzAzMywyNzAzNCwyNzAzNywyNzAzOCwyNzAzOSwyNzA0MCwyNzA0MSwyNzA0MiwyNzA0MywyNzA0NCwyNzA0NSwyNzA0NiwyNzA0OSwyNzA1MCwyNzA1MiwyNzA1NCwyNzA1NSwyNzA1NiwyNzA1OCwyNzA1OSwyNzA2MSwyNzA2Miwy''@;'; + put 'put ''NzA2NCwyNzA2NSwyNzA2NiwyNzA2OCwyNzA2OSwyNzA3MCwyNzA3MSwyNzA3MiwyNzA3NCwyNzA3NSwyNzA3NiwyNzA3NywyNzA3OCwyNzA3OSwyNzA4MCwyNzA4MSwyNzA4MywyNzA4NSwyNzA4NywyNzA4OSwyNzA5MCwyNzA5MSwyNzA5MywyNzA5NCwyNzA5NSwyNzA5NiwyNzA5NywyNzA5''@;'; + put 'put ''OCwyNzEwMCwyNzEwMSwyNzEwMiwyNzEwNSwyNzEwNiwyNzEwNywyNzEwOCwyNzEwOSwyNzExMCwyNzExMSwyNzExMiwyNzExMywyNzExNCwyNzExNSwyNzExNiwyNzExOCwyNzExOSwyNzEyMCwyNzEyMSwyNzEyMywyNzEyNCwyNzEyNSwyNzEyNiwyNzEyNywyNzEyOCwyNzEyOSwyNzEzMCwy''@;'; + put 'put ''NzEzMSwyNzEzMiwyNzEzNCwyNzEzNiwyNzEzNywyNzEzOCwyNzEzOSwyNzE0MCwyNzE0MSwyNzE0MiwyNzE0MywyNzE0NCwyNzE0NSwyNzE0NywyNzE0OCwyNzE0OSwyNzE1MCwyNzE1MSwyNzE1MiwyNzE1MywyNzE1NCwyNzE1NSwyNzE1NiwyNzE1NywyNzE1OCwyNzE2MSwyNzE2MiwyNzE2''@;'; + put 'put ''MywyNzE2NCwyNzE2NSwyNzE2NiwyNzE2OCwyNzE3MCwyNzE3MSwyNzE3MiwyNzE3MywyNzE3NCwyNzE3NSwyNzE3NywyNzE3OSwyNzE4MCwyNzE4MSwyNzE4MiwyNzE4NCwyNzE4NiwyNzE4NywyNzE4OCwyNzE5MCwyNzE5MSwyNzE5MiwyNzE5MywyNzE5NCwyNzE5NSwyNzE5NiwyNzE5OSwy''@;'; + put 'put ''NzIwMCwyNzIwMSwyNzIwMiwyNzIwMywyNzIwNSwyNzIwNiwyNzIwOCwyNzIwOSwyNzIxMCwyNzIxMSwyNzIxMiwyNzIxMywyNzIxNCwyNzIxNSwyNzIxNywyNzIxOCwyNzIxOSwyNzIyMCwyNzIyMSwyNzIyMiwyNzIyMywyNzIyNiwyNzIyOCwyNzIyOSwyNzIzMCwyNzIzMSwyNzIzMiwyNzIz''@;'; + put 'put ''NCwyNzIzNSwyNzIzNiwyNzIzOCwyNzIzOSwyNzI0MCwyNzI0MSwyNzI0MiwyNzI0MywyNzI0NCwyNzI0NSwyNzI0NiwyNzI0NywyNzI0OCwyNzI1MCwyNzI1MSwyNzI1MiwyNzI1MywyNzI1NCwyNzI1NSwyNzI1NiwyNzI1OCwyNzI1OSwyNzI2MSwyNzI2MiwyNzI2MywyNzI2NSwyNzI2Niwy''@;'; + put 'put ''NzI2NywyNzI2OSwyNzI3MCwyNzI3MSwyNzI3MiwyNzI3MywyNzI3NCwyNzI3NSwyNzI3NiwyNzI3NywyNzI3OSwyNzI4MiwyNzI4MywyNzI4NCwyNzI4NSwyNzI4NiwyNzI4OCwyNzI4OSwyNzI5MCwyNzI5MSwyNzI5MiwyNzI5MywyNzI5NCwyNzI5NSwyNzI5NywyNzI5OCwyNzI5OSwyNzMw''@;'; + put 'put ''MCwyNzMwMSwyNzMwMiwyNzMwMywyNzMwNCwyNzMwNiwyNzMwOSwyNzMxMCwyNzMxMSwyNzMxMiwyNzMxMywyNzMxNCwyNzMxNSwyNzMxNiwyNzMxNywyNzMxOCwyNzMxOSwyNzMyMCwyNzMyMSwyNzMyMiwyNzMyMywyNzMyNCwyNzMyNSwyNzMyNiwyNzMyNywyNzMyOCwyNzMyOSwyNzMzMCwy''@;'; + put 'put ''NzMzMSwyNzMzMiwyNzMzMywyNzMzNCwyNzMzNSwyNzMzNiwyNzMzNywyNzMzOCwyNzMzOSwyNzM0MCwyNzM0MSwyNzM0MiwyNzM0MywyNzM0NCwyNzM0NSwyNzM0NiwyNzM0NywyNzM0OCwyNzM0OSwyNzM1MCwyNzM1MSwyNzM1MiwyNzM1MywyNzM1NCwyNzM1NSwyNzM1NiwyNzM1NywyNzM1''@;'; + put 'put ''OCwyNzM1OSwyNzM2MCwyNzM2MSwyNzM2MiwyNzM2MywyNzM2NCwyNzM2NSwyNzM2NiwyNzM2NywyNzM2OCwyNzM2OSwyNzM3MCwyNzM3MSwyNzM3MiwyNzM3MywyNzM3NCwyNzM3NSwyNzM3NiwyNzM3NywyNzM3OCwyNzM3OSwyNzM4MCwyNzM4MSwyNzM4MiwyNzM4MywyNzM4NCwyNzM4NSwy''@;'; + put 'put ''NzM4NiwyNzM4NywyNzM4OCwyNzM4OSwyNzM5MCwyNzM5MSwyNzM5MiwyNzM5MywyNzM5NCwyNzM5NSwyNzM5NiwyNzM5NywyNzM5OCwyNzM5OSwyNzQwMCwyNzQwMSwyNzQwMiwyNzQwMywyNzQwNCwyNzQwNSwyNzQwNiwyNzQwNywyNzQwOCwyNzQwOSwyNzQxMCwyNzQxMSwyNzQxMiwyNzQx''@;'; + put 'put ''MywyNzQxNCwyNzQxNSwyNzQxNiwyNzQxNywyNzQxOCwyNzQxOSwyNzQyMCwyNzQyMSwyNzQyMiwyNzQyMywyNzQyOSwyNzQzMCwyNzQzMiwyNzQzMywyNzQzNCwyNzQzNSwyNzQzNiwyNzQzNywyNzQzOCwyNzQzOSwyNzQ0MCwyNzQ0MSwyNzQ0MywyNzQ0NCwyNzQ0NSwyNzQ0NiwyNzQ0OCwy''@;'; + put 'put ''NzQ1MSwyNzQ1MiwyNzQ1MywyNzQ1NSwyNzQ1NiwyNzQ1NywyNzQ1OCwyNzQ2MCwyNzQ2MSwyNzQ2NCwyNzQ2NiwyNzQ2NywyNzQ2OSwyNzQ3MCwyNzQ3MSwyNzQ3MiwyNzQ3MywyNzQ3NCwyNzQ3NSwyNzQ3NiwyNzQ3NywyNzQ3OCwyNzQ3OSwyNzQ4MCwyNzQ4MiwyNzQ4MywyNzQ4NCwyNzQ4''@;'; + put 'put ''NSwyNzQ4NiwyNzQ4NywyNzQ4OCwyNzQ4OSwyNzQ5NiwyNzQ5NywyNzQ5OSwyNzUwMCwyNzUwMSwyNzUwMiwyNzUwMywyNzUwNCwyNzUwNSwyNzUwNiwyNzUwNywyNzUwOCwyNzUwOSwyNzUxMCwyNzUxMSwyNzUxMiwyNzUxNCwyNzUxNywyNzUxOCwyNzUxOSwyNzUyMCwyNzUyNSwyNzUyOCwy''@;'; + put 'put ''NzUzMiwyNzUzNCwyNzUzNSwyNzUzNiwyNzUzNywyNzU0MCwyNzU0MSwyNzU0MywyNzU0NCwyNzU0NSwyNzU0OCwyNzU0OSwyNzU1MCwyNzU1MSwyNzU1MiwyNzU1NCwyNzU1NSwyNzU1NiwyNzU1NywyNzU1OCwyNzU1OSwyNzU2MCwyNzU2MSwyNzU2MywyNzU2NCwyNzU2NSwyNzU2NiwyNzU2''@;'; + put 'put ''NywyNzU2OCwyNzU2OSwyNzU3MCwyNzU3NCwyNzU3NiwyNzU3NywyNzU3OCwyNzU3OSwyNzU4MCwyNzU4MSwyNzU4MiwyNzU4NCwyNzU4NywyNzU4OCwyNzU5MCwyNzU5MSwyNzU5MiwyNzU5MywyNzU5NCwyNzU5NiwyNzU5OCwyNzYwMCwyNzYwMSwyNzYwOCwyNzYxMCwyNzYxMiwyNzYxMywy''@;'; + put 'put ''NzYxNCwyNzYxNSwyNzYxNiwyNzYxOCwyNzYxOSwyNzYyMCwyNzYyMSwyNzYyMiwyNzYyMywyNzYyNCwyNzYyNSwyNzYyOCwyNzYyOSwyNzYzMCwyNzYzMiwyNzYzMywyNzYzNCwyNzYzNiwyNzYzOCwyNzYzOSwyNzY0MCwyNzY0MiwyNzY0MywyNzY0NCwyNzY0NiwyNzY0NywyNzY0OCwyNzY0''@;'; + put 'put ''OSwyNzY1MCwyNzY1MSwyNzY1MiwyNzY1NiwyNzY1NywyNzY1OCwyNzY1OSwyNzY2MCwyNzY2MiwyNzY2NiwyNzY3MSwyNzY3NiwyNzY3NywyNzY3OCwyNzY4MCwyNzY4MywyNzY4NSwyNzY5MSwyNzY5MiwyNzY5MywyNzY5NywyNzY5OSwyNzcwMiwyNzcwMywyNzcwNSwyNzcwNiwyNzcwNywy''@;'; + put 'put ''NzcwOCwyNzcxMCwyNzcxMSwyNzcxNSwyNzcxNiwyNzcxNywyNzcyMCwyNzcyMywyNzcyNCwyNzcyNSwyNzcyNiwyNzcyNywyNzcyOSwyNzczMCwyNzczMSwyNzczNCwyNzczNiwyNzczNywyNzczOCwyNzc0NiwyNzc0NywyNzc0OSwyNzc1MCwyNzc1MSwyNzc1NSwyNzc1NiwyNzc1NywyNzc1''@;'; + put 'put ''OCwyNzc1OSwyNzc2MSwyNzc2MywyNzc2NSwyNzc2NywyNzc2OCwyNzc3MCwyNzc3MSwyNzc3MiwyNzc3NSwyNzc3NiwyNzc4MCwyNzc4MywyNzc4NiwyNzc4NywyNzc4OSwyNzc5MCwyNzc5MywyNzc5NCwyNzc5NywyNzc5OCwyNzc5OSwyNzgwMCwyNzgwMiwyNzgwNCwyNzgwNSwyNzgwNiwy''@;'; + put 'put ''NzgwOCwyNzgxMCwyNzgxNiwyNzgyMCwyNzgyMywyNzgyNCwyNzgyOCwyNzgyOSwyNzgzMCwyNzgzMSwyNzgzNCwyNzg0MCwyNzg0MSwyNzg0MiwyNzg0MywyNzg0NiwyNzg0NywyNzg0OCwyNzg1MSwyNzg1MywyNzg1NCwyNzg1NSwyNzg1NywyNzg1OCwyNzg2NCwyNzg2NSwyNzg2NiwyNzg2''@;'; + put 'put ''OCwyNzg2OSwyNzg3MSwyNzg3NiwyNzg3OCwyNzg3OSwyNzg4MSwyNzg4NCwyNzg4NSwyNzg5MCwyNzg5MiwyNzg5NywyNzkwMywyNzkwNCwyNzkwNiwyNzkwNywyNzkwOSwyNzkxMCwyNzkxMiwyNzkxMywyNzkxNCwyNzkxNywyNzkxOSwyNzkyMCwyNzkyMSwyNzkyMywyNzkyNCwyNzkyNSwy''@;'; + put 'put ''NzkyNiwyNzkyOCwyNzkzMiwyNzkzMywyNzkzNSwyNzkzNiwyNzkzNywyNzkzOCwyNzkzOSwyNzk0MCwyNzk0MiwyNzk0NCwyNzk0NSwyNzk0OCwyNzk0OSwyNzk1MSwyNzk1MiwyNzk1NiwyNzk1OCwyNzk1OSwyNzk2MCwyNzk2MiwyNzk2NywyNzk2OCwyNzk3MCwyNzk3MiwyNzk3NywyNzk4''@;'; + put 'put ''MCwyNzk4NCwyNzk4OSwyNzk5MCwyNzk5MSwyNzk5MiwyNzk5NSwyNzk5NywyNzk5OSwyODAwMSwyODAwMiwyODAwNCwyODAwNSwyODAwNywyODAwOCwyODAxMSwyODAxMiwyODAxMywyODAxNiwyODAxNywyODAxOCwyODAxOSwyODAyMSwyODAyMiwyODAyNSwyODAyNiwyODAyNywyODAyOSwy''@;'; + put 'put ''ODAzMCwyODAzMSwyODAzMiwyODAzMywyODAzNSwyODAzNiwyODAzOCwyODAzOSwyODA0MiwyODA0MywyODA0NSwyODA0NywyODA0OCwyODA1MCwyODA1NCwyODA1NSwyODA1NiwyODA1NywyODA1OCwyODA2MCwyODA2NiwyODA2OSwyODA3NiwyODA3NywyODA4MCwyODA4MSwyODA4MywyODA4''@;'; + put 'put ''NCwyODA4NiwyODA4NywyODA4OSwyODA5MCwyODA5MSwyODA5MiwyODA5MywyODA5NCwyODA5NywyODA5OCwyODA5OSwyODEwNCwyODEwNSwyODEwNiwyODEwOSwyODExMCwyODExMSwyODExMiwyODExNCwyODExNSwyODExNiwyODExNywyODExOSwyODEyMiwyODEyMywyODEyNCwyODEyNywy''@;'; + put 'put ''ODEzMCwyODEzMSwyODEzMywyODEzNSwyODEzNiwyODEzNywyODEzOCwyODE0MSwyODE0MywyODE0NCwyODE0NiwyODE0OCwyODE0OSwyODE1MCwyODE1MiwyODE1NCwyODE1NywyODE1OCwyODE1OSwyODE2MCwyODE2MSwyODE2MiwyODE2MywyODE2NCwyODE2NiwyODE2NywyODE2OCwyODE2''@;'; + put 'put ''OSwyODE3MSwyODE3NSwyODE3OCwyODE3OSwyODE4MSwyODE4NCwyODE4NSwyODE4NywyODE4OCwyODE5MCwyODE5MSwyODE5NCwyODE5OCwyODE5OSwyODIwMCwyODIwMiwyODIwNCwyODIwNiwyODIwOCwyODIwOSwyODIxMSwyODIxMywyODIxNCwyODIxNSwyODIxNywyODIxOSwyODIyMCwy''@;'; + put 'put ''ODIyMSwyODIyMiwyODIyMywyODIyNCwyODIyNSwyODIyNiwyODIyOSwyODIzMCwyODIzMSwyODIzMiwyODIzMywyODIzNCwyODIzNSwyODIzNiwyODIzOSwyODI0MCwyODI0MSwyODI0MiwyODI0NSwyODI0NywyODI0OSwyODI1MCwyODI1MiwyODI1MywyODI1NCwyODI1NiwyODI1NywyODI1''@;'; + put 'put ''OCwyODI1OSwyODI2MCwyODI2MSwyODI2MiwyODI2MywyODI2NCwyODI2NSwyODI2NiwyODI2OCwyODI2OSwyODI3MSwyODI3MiwyODI3MywyODI3NCwyODI3NSwyODI3NiwyODI3NywyODI3OCwyODI3OSwyODI4MCwyODI4MSwyODI4MiwyODI4MywyODI4NCwyODI4NSwyODI4OCwyODI4OSwy''@;'; + put 'put ''ODI5MCwyODI5MiwyODI5NSwyODI5NiwyODI5OCwyODI5OSwyODMwMCwyODMwMSwyODMwMiwyODMwNSwyODMwNiwyODMwNywyODMwOCwyODMwOSwyODMxMCwyODMxMSwyODMxMywyODMxNCwyODMxNSwyODMxNywyODMxOCwyODMyMCwyODMyMSwyODMyMywyODMyNCwyODMyNiwyODMyOCwyODMy''@;'; + put 'put ''OSwyODMzMSwyODMzMiwyODMzMywyODMzNCwyODMzNiwyODMzOSwyODM0MSwyODM0NCwyODM0NSwyODM0OCwyODM1MCwyODM1MSwyODM1MiwyODM1NSwyODM1NiwyODM1NywyODM1OCwyODM2MCwyODM2MSwyODM2MiwyODM2NCwyODM2NSwyODM2NiwyODM2OCwyODM3MCwyODM3NCwyODM3Niwy''@;'; + put 'put ''ODM3NywyODM3OSwyODM4MCwyODM4MSwyODM4NywyODM5MSwyODM5NCwyODM5NSwyODM5NiwyODM5NywyODM5OCwyODM5OSwyODQwMCwyODQwMSwyODQwMiwyODQwMywyODQwNSwyODQwNiwyODQwNywyODQwOCwyODQxMCwyODQxMSwyODQxMiwyODQxMywyODQxNCwyODQxNSwyODQxNiwyODQx''@;'; + put 'put ''NywyODQxOSwyODQyMCwyODQyMSwyODQyMywyODQyNCwyODQyNiwyODQyNywyODQyOCwyODQyOSwyODQzMCwyODQzMiwyODQzMywyODQzNCwyODQzOCwyODQzOSwyODQ0MCwyODQ0MSwyODQ0MiwyODQ0MywyODQ0NCwyODQ0NSwyODQ0NiwyODQ0NywyODQ0OSwyODQ1MCwyODQ1MSwyODQ1Mywy''@;'; + put 'put ''ODQ1NCwyODQ1NSwyODQ1NiwyODQ2MCwyODQ2MiwyODQ2NCwyODQ2NiwyODQ2OCwyODQ2OSwyODQ3MSwyODQ3MiwyODQ3MywyODQ3NCwyODQ3NSwyODQ3NiwyODQ3NywyODQ3OSwyODQ4MCwyODQ4MSwyODQ4MiwyODQ4MywyODQ4NCwyODQ4NSwyODQ4OCwyODQ4OSwyODQ5MCwyODQ5MiwyODQ5''@;'; + put 'put ''NCwyODQ5NSwyODQ5NiwyODQ5NywyODQ5OCwyODQ5OSwyODUwMCwyODUwMSwyODUwMiwyODUwMywyODUwNSwyODUwNiwyODUwNywyODUwOSwyODUxMSwyODUxMiwyODUxMywyODUxNSwyODUxNiwyODUxNywyODUxOSwyODUyMCwyODUyMSwyODUyMiwyODUyMywyODUyNCwyODUyNywyODUyOCwy''@;'; + put 'put ''ODUyOSwyODUzMSwyODUzMywyODUzNCwyODUzNSwyODUzNywyODUzOSwyODU0MSwyODU0MiwyODU0MywyODU0NCwyODU0NSwyODU0NiwyODU0NywyODU0OSwyODU1MCwyODU1MSwyODU1NCwyODU1NSwyODU1OSwyODU2MCwyODU2MSwyODU2MiwyODU2MywyODU2NCwyODU2NSwyODU2NiwyODU2''@;'; + put 'put ''NywyODU2OCwyODU2OSwyODU3MCwyODU3MSwyODU3MywyODU3NCwyODU3NSwyODU3NiwyODU3OCwyODU3OSwyODU4MCwyODU4MSwyODU4MiwyODU4NCwyODU4NSwyODU4NiwyODU4NywyODU4OCwyODU4OSwyODU5MCwyODU5MSwyODU5MiwyODU5MywyODU5NCwyODU5NiwyODU5NywyODU5OSwy''@;'; + put 'put ''ODYwMCwyODYwMiwyODYwMywyODYwNCwyODYwNSwyODYwNiwyODYwNywyODYwOSwyODYxMSwyODYxMiwyODYxMywyODYxNCwyODYxNSwyODYxNiwyODYxOCwyODYxOSwyODYyMCwyODYyMSwyODYyMiwyODYyMywyODYyNCwyODYyNywyODYyOCwyODYyOSwyODYzMCwyODYzMSwyODYzMiwyODYz''@;'; + put 'put ''MywyODYzNCwyODYzNSwyODYzNiwyODYzNywyODYzOSwyODY0MiwyODY0MywyODY0NCwyODY0NSwyODY0NiwyODY0NywyODY0OCwyODY0OSwyODY1MCwyODY1MSwyODY1MiwyODY1MywyODY1NiwyODY1NywyODY1OCwyODY1OSwyODY2MCwyODY2MSwyODY2MiwyODY2MywyODY2NCwyODY2NSwy''@;'; + put 'put ''ODY2NiwyODY2NywyODY2OCwyODY2OSwyODY3MCwyODY3MSwyODY3MiwyODY3MywyODY3NCwyODY3NSwyODY3NiwyODY3NywyODY3OCwyODY3OSwyODY4MCwyODY4MSwyODY4MiwyODY4MywyODY4NCwyODY4NSwyODY4NiwyODY4NywyODY4OCwyODY5MCwyODY5MSwyODY5MiwyODY5MywyODY5''@;'; + put 'put ''NCwyODY5NSwyODY5NiwyODY5NywyODcwMCwyODcwMSwyODcwMiwyODcwMywyODcwNCwyODcwNSwyODcwNiwyODcwOCwyODcwOSwyODcxMCwyODcxMSwyODcxMiwyODcxMywyODcxNCwyODcxNSwyODcxNiwyODcxNywyODcxOCwyODcxOSwyODcyMCwyODcyMSwyODcyMiwyODcyMywyODcyNCwy''@;'; + put 'put ''ODcyNiwyODcyNywyODcyOCwyODczMCwyODczMSwyODczMiwyODczMywyODczNCwyODczNSwyODczNiwyODczNywyODczOCwyODczOSwyODc0MCwyODc0MSwyODc0MiwyODc0MywyODc0NCwyODc0NSwyODc0NiwyODc0NywyODc0OSwyODc1MCwyODc1MiwyODc1MywyODc1NCwyODc1NSwyODc1''@;'; + put 'put ''NiwyODc1NywyODc1OCwyODc1OSwyODc2MCwyODc2MSwyODc2MiwyODc2MywyODc2NCwyODc2NSwyODc2NywyODc2OCwyODc2OSwyODc3MCwyODc3MSwyODc3MiwyODc3MywyODc3NCwyODc3NSwyODc3NiwyODc3NywyODc3OCwyODc4MiwyODc4NSwyODc4NiwyODc4NywyODc4OCwyODc5MSwy''@;'; + put 'put ''ODc5MywyODc5NCwyODc5NSwyODc5NywyODgwMSwyODgwMiwyODgwMywyODgwNCwyODgwNiwyODgwNywyODgwOCwyODgxMSwyODgxMiwyODgxMywyODgxNSwyODgxNiwyODgxNywyODgxOSwyODgyMywyODgyNCwyODgyNiwyODgyNywyODgzMCwyODgzMSwyODgzMiwyODgzMywyODgzNCwyODgz''@;'; + put 'put ''NSwyODgzNiwyODgzNywyODgzOCwyODgzOSwyODg0MCwyODg0MSwyODg0MiwyODg0OCwyODg1MCwyODg1MiwyODg1MywyODg1NCwyODg1OCwyODg2MiwyODg2MywyODg2OCwyODg2OSwyODg3MCwyODg3MSwyODg3MywyODg3NSwyODg3NiwyODg3NywyODg3OCwyODg3OSwyODg4MCwyODg4MSwy''@;'; + put 'put ''ODg4MiwyODg4MywyODg4NCwyODg4NSwyODg4NiwyODg4NywyODg5MCwyODg5MiwyODg5MywyODg5NCwyODg5NiwyODg5NywyODg5OCwyODg5OSwyODkwMSwyODkwNiwyODkxMCwyODkxMiwyODkxMywyODkxNCwyODkxNSwyODkxNiwyODkxNywyODkxOCwyODkyMCwyODkyMiwyODkyMywyODky''@;'; + put 'put ''NCwyODkyNiwyODkyNywyODkyOCwyODkyOSwyODkzMCwyODkzMSwyODkzMiwyODkzMywyODkzNCwyODkzNSwyODkzNiwyODkzOSwyODk0MCwyODk0MSwyODk0MiwyODk0MywyODk0NSwyODk0NiwyODk0OCwyODk1MSwyODk1NSwyODk1NiwyODk1NywyODk1OCwyODk1OSwyODk2MCwyODk2MSwy''@;'; + put 'put ''ODk2MiwyODk2MywyODk2NCwyODk2NSwyODk2NywyODk2OCwyODk2OSwyODk3MCwyODk3MSwyODk3MiwyODk3MywyODk3NCwyODk3OCwyODk3OSwyODk4MCwyODk4MSwyODk4MywyODk4NCwyODk4NSwyODk4NiwyODk4NywyODk4OCwyODk4OSwyODk5MCwyODk5MSwyODk5MiwyODk5MywyODk5''@;'; + put 'put ''NCwyODk5NSwyODk5NiwyODk5OCwyODk5OSwyOWUzLDI5MDAxLDI5MDAzLDI5MDA1LDI5MDA3LDI5MDA4LDI5MDA5LDI5MDEwLDI5MDExLDI5MDEyLDI5MDEzLDI5MDE0LDI5MDE1LDI5MDE2LDI5MDE3LDI5MDE4LDI5MDE5LDI5MDIxLDI5MDIzLDI5MDI0LDI5MDI1LDI5MDI2LDI5MDI3LDI5''@;'; + put 'put ''MDI5LDI5MDMzLDI5MDM0LDI5MDM1LDI5MDM2LDI5MDM3LDI5MDM5LDI5MDQwLDI5MDQxLDI5MDQ0LDI5MDQ1LDI5MDQ2LDI5MDQ3LDI5MDQ5LDI5MDUxLDI5MDUyLDI5MDU0LDI5MDU1LDI5MDU2LDI5MDU3LDI5MDU4LDI5MDU5LDI5MDYxLDI5MDYyLDI5MDYzLDI5MDY0LDI5MDY1LDI5MDY3''@;'; + put 'put ''LDI5MDY4LDI5MDY5LDI5MDcwLDI5MDcyLDI5MDczLDI5MDc0LDI5MDc1LDI5MDc3LDI5MDc4LDI5MDc5LDI5MDgyLDI5MDgzLDI5MDg0LDI5MDg1LDI5MDg2LDI5MDg5LDI5MDkwLDI5MDkxLDI5MDkyLDI5MDkzLDI5MDk0LDI5MDk1LDI5MDk3LDI5MDk4LDI5MDk5LDI5MTAxLDI5MTAyLDI5''@;'; + put 'put ''MTAzLDI5MTA0LDI5MTA1LDI5MTA2LDI5MTA4LDI5MTEwLDI5MTExLDI5MTEyLDI5MTE0LDI5MTE1LDI5MTE2LDI5MTE3LDI5MTE4LDI5MTE5LDI5MTIwLDI5MTIxLDI5MTIyLDI5MTI0LDI5MTI1LDI5MTI2LDI5MTI3LDI5MTI4LDI5MTI5LDI5MTMwLDI5MTMxLDI5MTMyLDI5MTMzLDI5MTM1''@;'; + put 'put ''LDI5MTM2LDI5MTM3LDI5MTM4LDI5MTM5LDI5MTQyLDI5MTQzLDI5MTQ0LDI5MTQ1LDI5MTQ2LDI5MTQ3LDI5MTQ4LDI5MTQ5LDI5MTUwLDI5MTUxLDI5MTUzLDI5MTU0LDI5MTU1LDI5MTU2LDI5MTU4LDI5MTYwLDI5MTYxLDI5MTYyLDI5MTYzLDI5MTY0LDI5MTY1LDI5MTY3LDI5MTY4LDI5''@;'; + put 'put ''MTY5LDI5MTcwLDI5MTcxLDI5MTcyLDI5MTczLDI5MTc0LDI5MTc1LDI5MTc2LDI5MTc4LDI5MTc5LDI5MTgwLDI5MTgxLDI5MTgyLDI5MTgzLDI5MTg0LDI5MTg1LDI5MTg2LDI5MTg3LDI5MTg4LDI5MTg5LDI5MTkxLDI5MTkyLDI5MTkzLDI5MTk0LDI5MTk1LDI5MTk2LDI5MTk3LDI5MTk4''@;'; + put 'put ''LDI5MTk5LDI5MjAwLDI5MjAxLDI5MjAyLDI5MjAzLDI5MjA0LDI5MjA1LDI5MjA2LDI5MjA3LDI5MjA4LDI5MjA5LDI5MjEwLDI5MjExLDI5MjEyLDI5MjE0LDI5MjE1LDI5MjE2LDI5MjE3LDI5MjE4LDI5MjE5LDI5MjIwLDI5MjIxLDI5MjIyLDI5MjIzLDI5MjI1LDI5MjI3LDI5MjI5LDI5''@;'; + put 'put ''MjMwLDI5MjMxLDI5MjM0LDI5MjM1LDI5MjM2LDI5MjQyLDI5MjQ0LDI5MjQ2LDI5MjQ4LDI5MjQ5LDI5MjUwLDI5MjUxLDI5MjUyLDI5MjUzLDI5MjU0LDI5MjU3LDI5MjU4LDI5MjU5LDI5MjYyLDI5MjYzLDI5MjY0LDI5MjY1LDI5MjY3LDI5MjY4LDI5MjY5LDI5MjcxLDI5MjcyLDI5Mjc0''@;'; + put 'put ''LDI5Mjc2LDI5Mjc4LDI5MjgwLDI5MjgzLDI5Mjg0LDI5Mjg1LDI5Mjg4LDI5MjkwLDI5MjkxLDI5MjkyLDI5MjkzLDI5Mjk2LDI5Mjk3LDI5Mjk5LDI5MzAwLDI5MzAyLDI5MzAzLDI5MzA0LDI5MzA3LDI5MzA4LDI5MzA5LDI5MzE0LDI5MzE1LDI5MzE3LDI5MzE4LDI5MzE5LDI5MzIwLDI5''@;'; + put 'put ''MzIxLDI5MzI0LDI5MzI2LDI5MzI4LDI5MzI5LDI5MzMxLDI5MzMyLDI5MzMzLDI5MzM0LDI5MzM1LDI5MzM2LDI5MzM3LDI5MzM4LDI5MzM5LDI5MzQwLDI5MzQxLDI5MzQyLDI5MzQ0LDI5MzQ1LDI5MzQ2LDI5MzQ3LDI5MzQ4LDI5MzQ5LDI5MzUwLDI5MzUxLDI5MzUyLDI5MzUzLDI5MzU0''@;'; + put 'put ''LDI5MzU1LDI5MzU4LDI5MzYxLDI5MzYyLDI5MzYzLDI5MzY1LDI5MzcwLDI5MzcxLDI5MzcyLDI5MzczLDI5Mzc0LDI5Mzc1LDI5Mzc2LDI5MzgxLDI5MzgyLDI5MzgzLDI5Mzg1LDI5Mzg2LDI5Mzg3LDI5Mzg4LDI5MzkxLDI5MzkzLDI5Mzk1LDI5Mzk2LDI5Mzk3LDI5Mzk4LDI5NDAwLDI5''@;'; + put 'put ''NDAyLDI5NDAzLDU4NTY2LDU4NTY3LDU4NTY4LDU4NTY5LDU4NTcwLDU4NTcxLDU4NTcyLDU4NTczLDU4NTc0LDU4NTc1LDU4NTc2LDU4NTc3LDU4NTc4LDU4NTc5LDU4NTgwLDU4NTgxLDU4NTgyLDU4NTgzLDU4NTg0LDU4NTg1LDU4NTg2LDU4NTg3LDU4NTg4LDU4NTg5LDU4NTkwLDU4NTkx''@;'; + put 'put ''LDU4NTkyLDU4NTkzLDU4NTk0LDU4NTk1LDU4NTk2LDU4NTk3LDU4NTk4LDU4NTk5LDU4NjAwLDU4NjAxLDU4NjAyLDU4NjAzLDU4NjA0LDU4NjA1LDU4NjA2LDU4NjA3LDU4NjA4LDU4NjA5LDU4NjEwLDU4NjExLDU4NjEyLDU4NjEzLDU4NjE0LDU4NjE1LDU4NjE2LDU4NjE3LDU4NjE4LDU4''@;'; + put 'put ''NjE5LDU4NjIwLDU4NjIxLDU4NjIyLDU4NjIzLDU4NjI0LDU4NjI1LDU4NjI2LDU4NjI3LDU4NjI4LDU4NjI5LDU4NjMwLDU4NjMxLDU4NjMyLDU4NjMzLDU4NjM0LDU4NjM1LDU4NjM2LDU4NjM3LDU4NjM4LDU4NjM5LDU4NjQwLDU4NjQxLDU4NjQyLDU4NjQzLDU4NjQ0LDU4NjQ1LDU4NjQ2''@;'; + put 'put ''LDU4NjQ3LDU4NjQ4LDU4NjQ5LDU4NjUwLDU4NjUxLDU4NjUyLDU4NjUzLDU4NjU0LDU4NjU1LDU4NjU2LDU4NjU3LDU4NjU4LDU4NjU5LDU4NjYwLDU4NjYxLDEyMjg4LDEyMjg5LDEyMjkwLDE4Myw3MTMsNzExLDE2OCwxMjI5MSwxMjI5Myw4MjEyLDY1Mzc0LDgyMTQsODIzMCw4MjE2LDgy''@;'; + put 'put ''MTcsODIyMCw4MjIxLDEyMzA4LDEyMzA5LDEyMjk2LDEyMjk3LDEyMjk4LDEyMjk5LDEyMzAwLDEyMzAxLDEyMzAyLDEyMzAzLDEyMzEwLDEyMzExLDEyMzA0LDEyMzA1LDE3NywyMTUsMjQ3LDg3NTgsODc0Myw4NzQ0LDg3MjEsODcxOSw4NzQ2LDg3NDUsODcxMiw4NzU5LDg3MzAsODg2OSw4''@;'; + put 'put ''NzQxLDg3MzYsODk3OCw4ODU3LDg3NDcsODc1MCw4ODAxLDg3ODAsODc3Niw4NzY1LDg3MzMsODgwMCw4ODE0LDg4MTUsODgwNCw4ODA1LDg3MzQsODc1Nyw4NzU2LDk3OTQsOTc5MiwxNzYsODI0Miw4MjQzLDg0NTEsNjUyODQsMTY0LDY1NTA0LDY1NTA1LDgyNDAsMTY3LDg0NzAsOTczNCw5''@;'; + put 'put ''NzMzLDk2NzUsOTY3OSw5Njc4LDk2NzEsOTY3MCw5NjMzLDk2MzIsOTY1MSw5NjUwLDgyNTEsODU5NCw4NTkyLDg1OTMsODU5NSwxMjMwNyw1ODY2Miw1ODY2Myw1ODY2NCw1ODY2NSw1ODY2Niw1ODY2Nyw1ODY2OCw1ODY2OSw1ODY3MCw1ODY3MSw1ODY3Miw1ODY3Myw1ODY3NCw1ODY3NSw1''@;'; + put 'put ''ODY3Niw1ODY3Nyw1ODY3OCw1ODY3OSw1ODY4MCw1ODY4MSw1ODY4Miw1ODY4Myw1ODY4NCw1ODY4NSw1ODY4Niw1ODY4Nyw1ODY4OCw1ODY4OSw1ODY5MCw1ODY5MSw1ODY5Miw1ODY5Myw1ODY5NCw1ODY5NSw1ODY5Niw1ODY5Nyw1ODY5OCw1ODY5OSw1ODcwMCw1ODcwMSw1ODcwMiw1ODcw''@;'; + put 'put ''Myw1ODcwNCw1ODcwNSw1ODcwNiw1ODcwNyw1ODcwOCw1ODcwOSw1ODcxMCw1ODcxMSw1ODcxMiw1ODcxMyw1ODcxNCw1ODcxNSw1ODcxNiw1ODcxNyw1ODcxOCw1ODcxOSw1ODcyMCw1ODcyMSw1ODcyMiw1ODcyMyw1ODcyNCw1ODcyNSw1ODcyNiw1ODcyNyw1ODcyOCw1ODcyOSw1ODczMCw1''@;'; + put 'put ''ODczMSw1ODczMiw1ODczMyw1ODczNCw1ODczNSw1ODczNiw1ODczNyw1ODczOCw1ODczOSw1ODc0MCw1ODc0MSw1ODc0Miw1ODc0Myw1ODc0NCw1ODc0NSw1ODc0Niw1ODc0Nyw1ODc0OCw1ODc0OSw1ODc1MCw1ODc1MSw1ODc1Miw1ODc1Myw1ODc1NCw1ODc1NSw1ODc1Niw1ODc1Nyw4NTYw''@;'; + put 'put ''LDg1NjEsODU2Miw4NTYzLDg1NjQsODU2NSw4NTY2LDg1NjcsODU2OCw4NTY5LDU5MjM4LDU5MjM5LDU5MjQwLDU5MjQxLDU5MjQyLDU5MjQzLDkzNTIsOTM1Myw5MzU0LDkzNTUsOTM1Niw5MzU3LDkzNTgsOTM1OSw5MzYwLDkzNjEsOTM2Miw5MzYzLDkzNjQsOTM2NSw5MzY2LDkzNjcsOTM2''@;'; + put 'put ''OCw5MzY5LDkzNzAsOTM3MSw5MzMyLDkzMzMsOTMzNCw5MzM1LDkzMzYsOTMzNyw5MzM4LDkzMzksOTM0MCw5MzQxLDkzNDIsOTM0Myw5MzQ0LDkzNDUsOTM0Niw5MzQ3LDkzNDgsOTM0OSw5MzUwLDkzNTEsOTMxMiw5MzEzLDkzMTQsOTMxNSw5MzE2LDkzMTcsOTMxOCw5MzE5LDkzMjAsOTMy''@;'; + put 'put ''MSw4MzY0LDU5MjQ1LDEyODMyLDEyODMzLDEyODM0LDEyODM1LDEyODM2LDEyODM3LDEyODM4LDEyODM5LDEyODQwLDEyODQxLDU5MjQ2LDU5MjQ3LDg1NDQsODU0NSw4NTQ2LDg1NDcsODU0OCw4NTQ5LDg1NTAsODU1MSw4NTUyLDg1NTMsODU1NCw4NTU1LDU5MjQ4LDU5MjQ5LDU4NzU4LDU4''@;'; + put 'put ''NzU5LDU4NzYwLDU4NzYxLDU4NzYyLDU4NzYzLDU4NzY0LDU4NzY1LDU4NzY2LDU4NzY3LDU4NzY4LDU4NzY5LDU4NzcwLDU4NzcxLDU4NzcyLDU4NzczLDU4Nzc0LDU4Nzc1LDU4Nzc2LDU4Nzc3LDU4Nzc4LDU4Nzc5LDU4NzgwLDU4NzgxLDU4NzgyLDU4NzgzLDU4Nzg0LDU4Nzg1LDU4Nzg2''@;'; + put 'put ''LDU4Nzg3LDU4Nzg4LDU4Nzg5LDU4NzkwLDU4NzkxLDU4NzkyLDU4NzkzLDU4Nzk0LDU4Nzk1LDU4Nzk2LDU4Nzk3LDU4Nzk4LDU4Nzk5LDU4ODAwLDU4ODAxLDU4ODAyLDU4ODAzLDU4ODA0LDU4ODA1LDU4ODA2LDU4ODA3LDU4ODA4LDU4ODA5LDU4ODEwLDU4ODExLDU4ODEyLDU4ODEzLDU4''@;'; + put 'put ''ODE0LDU4ODE1LDU4ODE2LDU4ODE3LDU4ODE4LDU4ODE5LDU4ODIwLDU4ODIxLDU4ODIyLDU4ODIzLDU4ODI0LDU4ODI1LDU4ODI2LDU4ODI3LDU4ODI4LDU4ODI5LDU4ODMwLDU4ODMxLDU4ODMyLDU4ODMzLDU4ODM0LDU4ODM1LDU4ODM2LDU4ODM3LDU4ODM4LDU4ODM5LDU4ODQwLDU4ODQx''@;'; + put 'put ''LDU4ODQyLDU4ODQzLDU4ODQ0LDU4ODQ1LDU4ODQ2LDU4ODQ3LDU4ODQ4LDU4ODQ5LDU4ODUwLDU4ODUxLDU4ODUyLDEyMjg4LDY1MjgxLDY1MjgyLDY1MjgzLDY1NTA5LDY1Mjg1LDY1Mjg2LDY1Mjg3LDY1Mjg4LDY1Mjg5LDY1MjkwLDY1MjkxLDY1MjkyLDY1MjkzLDY1Mjk0LDY1Mjk1LDY1''@;'; + put 'put ''Mjk2LDY1Mjk3LDY1Mjk4LDY1Mjk5LDY1MzAwLDY1MzAxLDY1MzAyLDY1MzAzLDY1MzA0LDY1MzA1LDY1MzA2LDY1MzA3LDY1MzA4LDY1MzA5LDY1MzEwLDY1MzExLDY1MzEyLDY1MzEzLDY1MzE0LDY1MzE1LDY1MzE2LDY1MzE3LDY1MzE4LDY1MzE5LDY1MzIwLDY1MzIxLDY1MzIyLDY1MzIz''@;'; + put 'put ''LDY1MzI0LDY1MzI1LDY1MzI2LDY1MzI3LDY1MzI4LDY1MzI5LDY1MzMwLDY1MzMxLDY1MzMyLDY1MzMzLDY1MzM0LDY1MzM1LDY1MzM2LDY1MzM3LDY1MzM4LDY1MzM5LDY1MzQwLDY1MzQxLDY1MzQyLDY1MzQzLDY1MzQ0LDY1MzQ1LDY1MzQ2LDY1MzQ3LDY1MzQ4LDY1MzQ5LDY1MzUwLDY1''@;'; + put 'put ''MzUxLDY1MzUyLDY1MzUzLDY1MzU0LDY1MzU1LDY1MzU2LDY1MzU3LDY1MzU4LDY1MzU5LDY1MzYwLDY1MzYxLDY1MzYyLDY1MzYzLDY1MzY0LDY1MzY1LDY1MzY2LDY1MzY3LDY1MzY4LDY1MzY5LDY1MzcwLDY1MzcxLDY1MzcyLDY1MzczLDY1NTA3LDU4ODU0LDU4ODU1LDU4ODU2LDU4ODU3''@;'; + put 'put ''LDU4ODU4LDU4ODU5LDU4ODYwLDU4ODYxLDU4ODYyLDU4ODYzLDU4ODY0LDU4ODY1LDU4ODY2LDU4ODY3LDU4ODY4LDU4ODY5LDU4ODcwLDU4ODcxLDU4ODcyLDU4ODczLDU4ODc0LDU4ODc1LDU4ODc2LDU4ODc3LDU4ODc4LDU4ODc5LDU4ODgwLDU4ODgxLDU4ODgyLDU4ODgzLDU4ODg0LDU4''@;'; + put 'put ''ODg1LDU4ODg2LDU4ODg3LDU4ODg4LDU4ODg5LDU4ODkwLDU4ODkxLDU4ODkyLDU4ODkzLDU4ODk0LDU4ODk1LDU4ODk2LDU4ODk3LDU4ODk4LDU4ODk5LDU4OTAwLDU4OTAxLDU4OTAyLDU4OTAzLDU4OTA0LDU4OTA1LDU4OTA2LDU4OTA3LDU4OTA4LDU4OTA5LDU4OTEwLDU4OTExLDU4OTEy''@;'; + put 'put ''LDU4OTEzLDU4OTE0LDU4OTE1LDU4OTE2LDU4OTE3LDU4OTE4LDU4OTE5LDU4OTIwLDU4OTIxLDU4OTIyLDU4OTIzLDU4OTI0LDU4OTI1LDU4OTI2LDU4OTI3LDU4OTI4LDU4OTI5LDU4OTMwLDU4OTMxLDU4OTMyLDU4OTMzLDU4OTM0LDU4OTM1LDU4OTM2LDU4OTM3LDU4OTM4LDU4OTM5LDU4''@;'; + put 'put ''OTQwLDU4OTQxLDU4OTQyLDU4OTQzLDU4OTQ0LDU4OTQ1LDU4OTQ2LDU4OTQ3LDU4OTQ4LDU4OTQ5LDEyMzUzLDEyMzU0LDEyMzU1LDEyMzU2LDEyMzU3LDEyMzU4LDEyMzU5LDEyMzYwLDEyMzYxLDEyMzYyLDEyMzYzLDEyMzY0LDEyMzY1LDEyMzY2LDEyMzY3LDEyMzY4LDEyMzY5LDEyMzcw''@;'; + put 'put ''LDEyMzcxLDEyMzcyLDEyMzczLDEyMzc0LDEyMzc1LDEyMzc2LDEyMzc3LDEyMzc4LDEyMzc5LDEyMzgwLDEyMzgxLDEyMzgyLDEyMzgzLDEyMzg0LDEyMzg1LDEyMzg2LDEyMzg3LDEyMzg4LDEyMzg5LDEyMzkwLDEyMzkxLDEyMzkyLDEyMzkzLDEyMzk0LDEyMzk1LDEyMzk2LDEyMzk3LDEy''@;'; + put 'put ''Mzk4LDEyMzk5LDEyNDAwLDEyNDAxLDEyNDAyLDEyNDAzLDEyNDA0LDEyNDA1LDEyNDA2LDEyNDA3LDEyNDA4LDEyNDA5LDEyNDEwLDEyNDExLDEyNDEyLDEyNDEzLDEyNDE0LDEyNDE1LDEyNDE2LDEyNDE3LDEyNDE4LDEyNDE5LDEyNDIwLDEyNDIxLDEyNDIyLDEyNDIzLDEyNDI0LDEyNDI1''@;'; + put 'put ''LDEyNDI2LDEyNDI3LDEyNDI4LDEyNDI5LDEyNDMwLDEyNDMxLDEyNDMyLDEyNDMzLDEyNDM0LDEyNDM1LDU5MjUwLDU5MjUxLDU5MjUyLDU5MjUzLDU5MjU0LDU5MjU1LDU5MjU2LDU5MjU3LDU5MjU4LDU5MjU5LDU5MjYwLDU4OTUwLDU4OTUxLDU4OTUyLDU4OTUzLDU4OTU0LDU4OTU1LDU4''@;'; + put 'put ''OTU2LDU4OTU3LDU4OTU4LDU4OTU5LDU4OTYwLDU4OTYxLDU4OTYyLDU4OTYzLDU4OTY0LDU4OTY1LDU4OTY2LDU4OTY3LDU4OTY4LDU4OTY5LDU4OTcwLDU4OTcxLDU4OTcyLDU4OTczLDU4OTc0LDU4OTc1LDU4OTc2LDU4OTc3LDU4OTc4LDU4OTc5LDU4OTgwLDU4OTgxLDU4OTgyLDU4OTgz''@;'; + put 'put ''LDU4OTg0LDU4OTg1LDU4OTg2LDU4OTg3LDU4OTg4LDU4OTg5LDU4OTkwLDU4OTkxLDU4OTkyLDU4OTkzLDU4OTk0LDU4OTk1LDU4OTk2LDU4OTk3LDU4OTk4LDU4OTk5LDU5ZTMsNTkwMDEsNTkwMDIsNTkwMDMsNTkwMDQsNTkwMDUsNTkwMDYsNTkwMDcsNTkwMDgsNTkwMDksNTkwMTAsNTkw''@;'; + put 'put ''MTEsNTkwMTIsNTkwMTMsNTkwMTQsNTkwMTUsNTkwMTYsNTkwMTcsNTkwMTgsNTkwMTksNTkwMjAsNTkwMjEsNTkwMjIsNTkwMjMsNTkwMjQsNTkwMjUsNTkwMjYsNTkwMjcsNTkwMjgsNTkwMjksNTkwMzAsNTkwMzEsNTkwMzIsNTkwMzMsNTkwMzQsNTkwMzUsNTkwMzYsNTkwMzcsNTkwMzgs''@;'; + put 'put ''NTkwMzksNTkwNDAsNTkwNDEsNTkwNDIsNTkwNDMsNTkwNDQsNTkwNDUsMTI0NDksMTI0NTAsMTI0NTEsMTI0NTIsMTI0NTMsMTI0NTQsMTI0NTUsMTI0NTYsMTI0NTcsMTI0NTgsMTI0NTksMTI0NjAsMTI0NjEsMTI0NjIsMTI0NjMsMTI0NjQsMTI0NjUsMTI0NjYsMTI0NjcsMTI0NjgsMTI0''@;'; + put 'put ''NjksMTI0NzAsMTI0NzEsMTI0NzIsMTI0NzMsMTI0NzQsMTI0NzUsMTI0NzYsMTI0NzcsMTI0NzgsMTI0NzksMTI0ODAsMTI0ODEsMTI0ODIsMTI0ODMsMTI0ODQsMTI0ODUsMTI0ODYsMTI0ODcsMTI0ODgsMTI0ODksMTI0OTAsMTI0OTEsMTI0OTIsMTI0OTMsMTI0OTQsMTI0OTUsMTI0OTYs''@;'; + put 'put ''MTI0OTcsMTI0OTgsMTI0OTksMTI1MDAsMTI1MDEsMTI1MDIsMTI1MDMsMTI1MDQsMTI1MDUsMTI1MDYsMTI1MDcsMTI1MDgsMTI1MDksMTI1MTAsMTI1MTEsMTI1MTIsMTI1MTMsMTI1MTQsMTI1MTUsMTI1MTYsMTI1MTcsMTI1MTgsMTI1MTksMTI1MjAsMTI1MjEsMTI1MjIsMTI1MjMsMTI1''@;'; + put 'put ''MjQsMTI1MjUsMTI1MjYsMTI1MjcsMTI1MjgsMTI1MjksMTI1MzAsMTI1MzEsMTI1MzIsMTI1MzMsMTI1MzQsNTkyNjEsNTkyNjIsNTkyNjMsNTkyNjQsNTkyNjUsNTkyNjYsNTkyNjcsNTkyNjgsNTkwNDYsNTkwNDcsNTkwNDgsNTkwNDksNTkwNTAsNTkwNTEsNTkwNTIsNTkwNTMsNTkwNTQs''@;'; + put 'put ''NTkwNTUsNTkwNTYsNTkwNTcsNTkwNTgsNTkwNTksNTkwNjAsNTkwNjEsNTkwNjIsNTkwNjMsNTkwNjQsNTkwNjUsNTkwNjYsNTkwNjcsNTkwNjgsNTkwNjksNTkwNzAsNTkwNzEsNTkwNzIsNTkwNzMsNTkwNzQsNTkwNzUsNTkwNzYsNTkwNzcsNTkwNzgsNTkwNzksNTkwODAsNTkwODEsNTkw''@;'; + put 'put ''ODIsNTkwODMsNTkwODQsNTkwODUsNTkwODYsNTkwODcsNTkwODgsNTkwODksNTkwOTAsNTkwOTEsNTkwOTIsNTkwOTMsNTkwOTQsNTkwOTUsNTkwOTYsNTkwOTcsNTkwOTgsNTkwOTksNTkxMDAsNTkxMDEsNTkxMDIsNTkxMDMsNTkxMDQsNTkxMDUsNTkxMDYsNTkxMDcsNTkxMDgsNTkxMDks''@;'; + put 'put ''NTkxMTAsNTkxMTEsNTkxMTIsNTkxMTMsNTkxMTQsNTkxMTUsNTkxMTYsNTkxMTcsNTkxMTgsNTkxMTksNTkxMjAsNTkxMjEsNTkxMjIsNTkxMjMsNTkxMjQsNTkxMjUsNTkxMjYsNTkxMjcsNTkxMjgsNTkxMjksNTkxMzAsNTkxMzEsNTkxMzIsNTkxMzMsNTkxMzQsNTkxMzUsNTkxMzYsNTkx''@;'; + put 'put ''MzcsNTkxMzgsNTkxMzksNTkxNDAsNTkxNDEsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsNTkyNjksNTkyNzAsNTkyNzEsNTkyNzIsNTkyNzMsNTkyNzQsNTkyNzUs''@;'; + put 'put ''NTkyNzYsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjMsOTY0LDk2NSw5NjYsOTY3LDk2OCw5NjksNTkyNzcsNTkyNzgsNTkyNzksNTkyODAsNTkyODEsNTkyODIsNTkyODMsNjUwNzcsNjUwNzgsNjUwODEsNjUw''@;'; + put 'put ''ODIsNjUwODcsNjUwODgsNjUwODUsNjUwODYsNjUwODksNjUwOTAsNjUwOTEsNjUwOTIsNTkyODQsNTkyODUsNjUwODMsNjUwODQsNjUwNzksNjUwODAsNjUwNzMsNTkyODYsNjUwNzUsNjUwNzYsNTkyODcsNTkyODgsNTkyODksNTkyOTAsNTkyOTEsNTkyOTIsNTkyOTMsNTkyOTQsNTkyOTUs''@;'; + put 'put ''NTkxNDIsNTkxNDMsNTkxNDQsNTkxNDUsNTkxNDYsNTkxNDcsNTkxNDgsNTkxNDksNTkxNTAsNTkxNTEsNTkxNTIsNTkxNTMsNTkxNTQsNTkxNTUsNTkxNTYsNTkxNTcsNTkxNTgsNTkxNTksNTkxNjAsNTkxNjEsNTkxNjIsNTkxNjMsNTkxNjQsNTkxNjUsNTkxNjYsNTkxNjcsNTkxNjgsNTkx''@;'; + put 'put ''NjksNTkxNzAsNTkxNzEsNTkxNzIsNTkxNzMsNTkxNzQsNTkxNzUsNTkxNzYsNTkxNzcsNTkxNzgsNTkxNzksNTkxODAsNTkxODEsNTkxODIsNTkxODMsNTkxODQsNTkxODUsNTkxODYsNTkxODcsNTkxODgsNTkxODksNTkxOTAsNTkxOTEsNTkxOTIsNTkxOTMsNTkxOTQsNTkxOTUsNTkxOTYs''@;'; + put 'put ''NTkxOTcsNTkxOTgsNTkxOTksNTkyMDAsNTkyMDEsNTkyMDIsNTkyMDMsNTkyMDQsNTkyMDUsNTkyMDYsNTkyMDcsNTkyMDgsNTkyMDksNTkyMTAsNTkyMTEsNTkyMTIsNTkyMTMsNTkyMTQsNTkyMTUsNTkyMTYsNTkyMTcsNTkyMTgsNTkyMTksNTkyMjAsNTkyMjEsNTkyMjIsNTkyMjMsNTky''@;'; + put 'put ''MjQsNTkyMjUsNTkyMjYsNTkyMjcsNTkyMjgsNTkyMjksNTkyMzAsNTkyMzEsNTkyMzIsNTkyMzMsNTkyMzQsNTkyMzUsNTkyMzYsNTkyMzcsMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTAyNSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1''@;'; + put 'put ''LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsNTkyOTYsNTkyOTcsNTkyOTgsNTkyOTksNTkzMDAsNTkzMDEsNTkzMDIsNTkzMDMsNTkzMDQsNTkzMDUsNTkzMDYsNTkzMDcsNTkzMDgsNTkzMDks''@;'; + put 'put ''NTkzMTAsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTEwNSwxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAy''@;'; + put 'put ''LDExMDMsNTkzMTEsNTkzMTIsNTkzMTMsNTkzMTQsNTkzMTUsNTkzMTYsNTkzMTcsNTkzMTgsNTkzMTksNTkzMjAsNTkzMjEsNTkzMjIsNTkzMjMsNzE0LDcxNSw3MjksODIxMSw4MjEzLDgyMjksODI0NSw4NDUzLDg0NTcsODU5OCw4NTk5LDg2MDAsODYwMSw4NzI1LDg3MzUsODczOSw4Nzg2''@;'; + put 'put ''LDg4MDYsODgwNyw4ODk1LDk1NTIsOTU1Myw5NTU0LDk1NTUsOTU1Niw5NTU3LDk1NTgsOTU1OSw5NTYwLDk1NjEsOTU2Miw5NTYzLDk1NjQsOTU2NSw5NTY2LDk1NjcsOTU2OCw5NTY5LDk1NzAsOTU3MSw5NTcyLDk1NzMsOTU3NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDk1NzksOTU4MCw5NTgx''@;'; + put 'put ''LDk1ODIsOTU4Myw5NTg0LDk1ODUsOTU4Niw5NTg3LDk2MDEsOTYwMiw5NjAzLDk2MDQsOTYwNSw5NjA2LDk2MDcsOTYwOCw5NjA5LDk2MTAsOTYxMSw5NjEyLDk2MTMsOTYxNCw5NjE1LDk2MTksOTYyMCw5NjIxLDk2NjAsOTY2MSw5Njk4LDk2OTksOTcwMCw5NzAxLDk3MzcsODg1MywxMjMw''@;'; + put 'put ''NiwxMjMxNywxMjMxOCw1OTMyNCw1OTMyNSw1OTMyNiw1OTMyNyw1OTMyOCw1OTMyOSw1OTMzMCw1OTMzMSw1OTMzMiw1OTMzMyw1OTMzNCwyNTcsMjI1LDQ2MiwyMjQsMjc1LDIzMywyODMsMjMyLDI5OSwyMzcsNDY0LDIzNiwzMzMsMjQzLDQ2NiwyNDIsMzYzLDI1MCw0NjgsMjQ5LDQ3MCw0''@;'; + put 'put ''NzIsNDc0LDQ3NiwyNTIsMjM0LDU5Myw3NzQzLDMyNCwzMjgsNTA1LDYwOSw1OTMzNyw1OTMzOCw1OTMzOSw1OTM0MCwxMjU0OSwxMjU1MCwxMjU1MSwxMjU1MiwxMjU1MywxMjU1NCwxMjU1NSwxMjU1NiwxMjU1NywxMjU1OCwxMjU1OSwxMjU2MCwxMjU2MSwxMjU2MiwxMjU2MywxMjU2NCwx''@;'; + put 'put ''MjU2NSwxMjU2NiwxMjU2NywxMjU2OCwxMjU2OSwxMjU3MCwxMjU3MSwxMjU3MiwxMjU3MywxMjU3NCwxMjU3NSwxMjU3NiwxMjU3NywxMjU3OCwxMjU3OSwxMjU4MCwxMjU4MSwxMjU4MiwxMjU4MywxMjU4NCwxMjU4NSw1OTM0MSw1OTM0Miw1OTM0Myw1OTM0NCw1OTM0NSw1OTM0Niw1OTM0''@;'; + put 'put ''Nyw1OTM0OCw1OTM0OSw1OTM1MCw1OTM1MSw1OTM1Miw1OTM1Myw1OTM1NCw1OTM1NSw1OTM1Niw1OTM1Nyw1OTM1OCw1OTM1OSw1OTM2MCw1OTM2MSwxMjMyMSwxMjMyMiwxMjMyMywxMjMyNCwxMjMyNSwxMjMyNiwxMjMyNywxMjMyOCwxMjMyOSwxMjk2MywxMzE5OCwxMzE5OSwxMzIxMiwx''@;'; + put 'put ''MzIxMywxMzIxNCwxMzIxNywxMzI1MiwxMzI2MiwxMzI2NSwxMzI2NiwxMzI2OSw2NTA3Miw2NTUwNiw2NTUwOCw1OTM2Miw4NDgxLDEyODQ5LDU5MzYzLDgyMDgsNTkzNjQsNTkzNjUsNTkzNjYsMTI1NDAsMTI0NDMsMTI0NDQsMTI1NDEsMTI1NDIsMTIyOTQsMTI0NDUsMTI0NDYsNjUwOTcs''@;'; + put 'put ''NjUwOTgsNjUwOTksNjUxMDAsNjUxMDEsNjUxMDIsNjUxMDMsNjUxMDQsNjUxMDUsNjUxMDYsNjUxMDgsNjUxMDksNjUxMTAsNjUxMTEsNjUxMTMsNjUxMTQsNjUxMTUsNjUxMTYsNjUxMTcsNjUxMTgsNjUxMTksNjUxMjAsNjUxMjEsNjUxMjIsNjUxMjMsNjUxMjQsNjUxMjUsNjUxMjYsNjUx''@;'; + put 'put ''MjgsNjUxMjksNjUxMzAsNjUxMzEsMTIzNTAsMTIyNzIsMTIyNzMsMTIyNzQsMTIyNzUsMTIyNzYsMTIyNzcsMTIyNzgsMTIyNzksMTIyODAsMTIyODEsMTIyODIsMTIyODMsMTIyOTUsNTkzODAsNTkzODEsNTkzODIsNTkzODMsNTkzODQsNTkzODUsNTkzODYsNTkzODcsNTkzODgsNTkzODks''@;'; + put 'put ''NTkzOTAsNTkzOTEsNTkzOTIsOTQ3Miw5NDczLDk0NzQsOTQ3NSw5NDc2LDk0NzcsOTQ3OCw5NDc5LDk0ODAsOTQ4MSw5NDgyLDk0ODMsOTQ4NCw5NDg1LDk0ODYsOTQ4Nyw5NDg4LDk0ODksOTQ5MCw5NDkxLDk0OTIsOTQ5Myw5NDk0LDk0OTUsOTQ5Niw5NDk3LDk0OTgsOTQ5OSw5NTAwLDk1''@;'; + put 'put ''MDEsOTUwMiw5NTAzLDk1MDQsOTUwNSw5NTA2LDk1MDcsOTUwOCw5NTA5LDk1MTAsOTUxMSw5NTEyLDk1MTMsOTUxNCw5NTE1LDk1MTYsOTUxNyw5NTE4LDk1MTksOTUyMCw5NTIxLDk1MjIsOTUyMyw5NTI0LDk1MjUsOTUyNiw5NTI3LDk1MjgsOTUyOSw5NTMwLDk1MzEsOTUzMiw5NTMzLDk1''@;'; + put 'put ''MzQsOTUzNSw5NTM2LDk1MzcsOTUzOCw5NTM5LDk1NDAsOTU0MSw5NTQyLDk1NDMsOTU0NCw5NTQ1LDk1NDYsOTU0Nyw1OTM5Myw1OTM5NCw1OTM5NSw1OTM5Niw1OTM5Nyw1OTM5OCw1OTM5OSw1OTQwMCw1OTQwMSw1OTQwMiw1OTQwMyw1OTQwNCw1OTQwNSw1OTQwNiw1OTQwNywyOTQwNCwy''@;'; + put 'put ''OTQwNSwyOTQwNywyOTQxMCwyOTQxMSwyOTQxMiwyOTQxMywyOTQxNCwyOTQxNSwyOTQxOCwyOTQxOSwyOTQyOSwyOTQzMCwyOTQzMywyOTQzNywyOTQzOCwyOTQzOSwyOTQ0MCwyOTQ0MiwyOTQ0NCwyOTQ0NSwyOTQ0NiwyOTQ0NywyOTQ0OCwyOTQ0OSwyOTQ1MSwyOTQ1MiwyOTQ1MywyOTQ1''@;'; + put 'put ''NSwyOTQ1NiwyOTQ1NywyOTQ1OCwyOTQ2MCwyOTQ2NCwyOTQ2NSwyOTQ2NiwyOTQ3MSwyOTQ3MiwyOTQ3NSwyOTQ3NiwyOTQ3OCwyOTQ3OSwyOTQ4MCwyOTQ4NSwyOTQ4NywyOTQ4OCwyOTQ5MCwyOTQ5MSwyOTQ5MywyOTQ5NCwyOTQ5OCwyOTQ5OSwyOTUwMCwyOTUwMSwyOTUwNCwyOTUwNSwy''@;'; + put 'put ''OTUwNiwyOTUwNywyOTUwOCwyOTUwOSwyOTUxMCwyOTUxMSwyOTUxMiwyOTUxMywyOTUxNCwyOTUxNSwyOTUxNiwyOTUxOCwyOTUxOSwyOTUyMSwyOTUyMywyOTUyNCwyOTUyNSwyOTUyNiwyOTUyOCwyOTUyOSwyOTUzMCwyOTUzMSwyOTUzMiwyOTUzMywyOTUzNCwyOTUzNSwyOTUzNywyOTUz''@;'; + put 'put ''OCwyOTUzOSwyOTU0MCwyOTU0MSwyOTU0MiwyOTU0MywyOTU0NCwyOTU0NSwyOTU0NiwyOTU0NywyOTU1MCwyOTU1MiwyOTU1Myw1NzM0NCw1NzM0NSw1NzM0Niw1NzM0Nyw1NzM0OCw1NzM0OSw1NzM1MCw1NzM1MSw1NzM1Miw1NzM1Myw1NzM1NCw1NzM1NSw1NzM1Niw1NzM1Nyw1NzM1OCw1''@;'; + put 'put ''NzM1OSw1NzM2MCw1NzM2MSw1NzM2Miw1NzM2Myw1NzM2NCw1NzM2NSw1NzM2Niw1NzM2Nyw1NzM2OCw1NzM2OSw1NzM3MCw1NzM3MSw1NzM3Miw1NzM3Myw1NzM3NCw1NzM3NSw1NzM3Niw1NzM3Nyw1NzM3OCw1NzM3OSw1NzM4MCw1NzM4MSw1NzM4Miw1NzM4Myw1NzM4NCw1NzM4NSw1NzM4''@;'; + put 'put ''Niw1NzM4Nyw1NzM4OCw1NzM4OSw1NzM5MCw1NzM5MSw1NzM5Miw1NzM5Myw1NzM5NCw1NzM5NSw1NzM5Niw1NzM5Nyw1NzM5OCw1NzM5OSw1NzQwMCw1NzQwMSw1NzQwMiw1NzQwMyw1NzQwNCw1NzQwNSw1NzQwNiw1NzQwNyw1NzQwOCw1NzQwOSw1NzQxMCw1NzQxMSw1NzQxMiw1NzQxMyw1''@;'; + put 'put ''NzQxNCw1NzQxNSw1NzQxNiw1NzQxNyw1NzQxOCw1NzQxOSw1NzQyMCw1NzQyMSw1NzQyMiw1NzQyMyw1NzQyNCw1NzQyNSw1NzQyNiw1NzQyNyw1NzQyOCw1NzQyOSw1NzQzMCw1NzQzMSw1NzQzMiw1NzQzMyw1NzQzNCw1NzQzNSw1NzQzNiw1NzQzNywyOTU1NCwyOTU1NSwyOTU1NiwyOTU1''@;'; + put 'put ''NywyOTU1OCwyOTU1OSwyOTU2MCwyOTU2MSwyOTU2MiwyOTU2MywyOTU2NCwyOTU2NSwyOTU2NywyOTU2OCwyOTU2OSwyOTU3MCwyOTU3MSwyOTU3MywyOTU3NCwyOTU3NiwyOTU3OCwyOTU4MCwyOTU4MSwyOTU4MywyOTU4NCwyOTU4NiwyOTU4NywyOTU4OCwyOTU4OSwyOTU5MSwyOTU5Miwy''@;'; + put 'put ''OTU5MywyOTU5NCwyOTU5NiwyOTU5NywyOTU5OCwyOTYwMCwyOTYwMSwyOTYwMywyOTYwNCwyOTYwNSwyOTYwNiwyOTYwNywyOTYwOCwyOTYxMCwyOTYxMiwyOTYxMywyOTYxNywyOTYyMCwyOTYyMSwyOTYyMiwyOTYyNCwyOTYyNSwyOTYyOCwyOTYyOSwyOTYzMCwyOTYzMSwyOTYzMywyOTYz''@;'; + put 'put ''NSwyOTYzNiwyOTYzNywyOTYzOCwyOTYzOSwyOTY0MywyOTY0NCwyOTY0NiwyOTY1MCwyOTY1MSwyOTY1MiwyOTY1MywyOTY1NCwyOTY1NSwyOTY1NiwyOTY1OCwyOTY1OSwyOTY2MCwyOTY2MSwyOTY2MywyOTY2NSwyOTY2NiwyOTY2NywyOTY2OCwyOTY3MCwyOTY3MiwyOTY3NCwyOTY3NSwy''@;'; + put 'put ''OTY3NiwyOTY3OCwyOTY3OSwyOTY4MCwyOTY4MSwyOTY4MywyOTY4NCwyOTY4NSwyOTY4NiwyOTY4Nyw1NzQzOCw1NzQzOSw1NzQ0MCw1NzQ0MSw1NzQ0Miw1NzQ0Myw1NzQ0NCw1NzQ0NSw1NzQ0Niw1NzQ0Nyw1NzQ0OCw1NzQ0OSw1NzQ1MCw1NzQ1MSw1NzQ1Miw1NzQ1Myw1NzQ1NCw1NzQ1''@;'; + put 'put ''NSw1NzQ1Niw1NzQ1Nyw1NzQ1OCw1NzQ1OSw1NzQ2MCw1NzQ2MSw1NzQ2Miw1NzQ2Myw1NzQ2NCw1NzQ2NSw1NzQ2Niw1NzQ2Nyw1NzQ2OCw1NzQ2OSw1NzQ3MCw1NzQ3MSw1NzQ3Miw1NzQ3Myw1NzQ3NCw1NzQ3NSw1NzQ3Niw1NzQ3Nyw1NzQ3OCw1NzQ3OSw1NzQ4MCw1NzQ4MSw1NzQ4Miw1''@;'; + put 'put ''NzQ4Myw1NzQ4NCw1NzQ4NSw1NzQ4Niw1NzQ4Nyw1NzQ4OCw1NzQ4OSw1NzQ5MCw1NzQ5MSw1NzQ5Miw1NzQ5Myw1NzQ5NCw1NzQ5NSw1NzQ5Niw1NzQ5Nyw1NzQ5OCw1NzQ5OSw1NzUwMCw1NzUwMSw1NzUwMiw1NzUwMyw1NzUwNCw1NzUwNSw1NzUwNiw1NzUwNyw1NzUwOCw1NzUwOSw1NzUx''@;'; + put 'put ''MCw1NzUxMSw1NzUxMiw1NzUxMyw1NzUxNCw1NzUxNSw1NzUxNiw1NzUxNyw1NzUxOCw1NzUxOSw1NzUyMCw1NzUyMSw1NzUyMiw1NzUyMyw1NzUyNCw1NzUyNSw1NzUyNiw1NzUyNyw1NzUyOCw1NzUyOSw1NzUzMCw1NzUzMSwyOTY4OCwyOTY4OSwyOTY5MCwyOTY5MSwyOTY5MiwyOTY5Mywy''@;'; + put 'put ''OTY5NCwyOTY5NSwyOTY5NiwyOTY5NywyOTY5OCwyOTcwMCwyOTcwMywyOTcwNCwyOTcwNywyOTcwOCwyOTcwOSwyOTcxMCwyOTcxMywyOTcxNCwyOTcxNSwyOTcxNiwyOTcxNywyOTcxOCwyOTcxOSwyOTcyMCwyOTcyMSwyOTcyNCwyOTcyNSwyOTcyNiwyOTcyNywyOTcyOCwyOTcyOSwyOTcz''@;'; + put 'put ''MSwyOTczMiwyOTczNSwyOTczNywyOTczOSwyOTc0MSwyOTc0MywyOTc0NSwyOTc0NiwyOTc1MSwyOTc1MiwyOTc1MywyOTc1NCwyOTc1NSwyOTc1NywyOTc1OCwyOTc1OSwyOTc2MCwyOTc2MiwyOTc2MywyOTc2NCwyOTc2NSwyOTc2NiwyOTc2NywyOTc2OCwyOTc2OSwyOTc3MCwyOTc3MSwy''@;'; + put 'put ''OTc3MiwyOTc3MywyOTc3NCwyOTc3NSwyOTc3NiwyOTc3NywyOTc3OCwyOTc3OSwyOTc4MCwyOTc4MiwyOTc4NCwyOTc4OSwyOTc5MiwyOTc5MywyOTc5NCwyOTc5NSwyOTc5NiwyOTc5NywyOTc5OCwyOTc5OSwyOTgwMCwyOTgwMSwyOTgwMiwyOTgwMywyOTgwNCwyOTgwNiwyOTgwNywyOTgw''@;'; + put 'put ''OSwyOTgxMCwyOTgxMSwyOTgxMiwyOTgxMywyOTgxNiwyOTgxNywyOTgxOCw1NzUzMiw1NzUzMyw1NzUzNCw1NzUzNSw1NzUzNiw1NzUzNyw1NzUzOCw1NzUzOSw1NzU0MCw1NzU0MSw1NzU0Miw1NzU0Myw1NzU0NCw1NzU0NSw1NzU0Niw1NzU0Nyw1NzU0OCw1NzU0OSw1NzU1MCw1NzU1MSw1''@;'; + put 'put ''NzU1Miw1NzU1Myw1NzU1NCw1NzU1NSw1NzU1Niw1NzU1Nyw1NzU1OCw1NzU1OSw1NzU2MCw1NzU2MSw1NzU2Miw1NzU2Myw1NzU2NCw1NzU2NSw1NzU2Niw1NzU2Nyw1NzU2OCw1NzU2OSw1NzU3MCw1NzU3MSw1NzU3Miw1NzU3Myw1NzU3NCw1NzU3NSw1NzU3Niw1NzU3Nyw1NzU3OCw1NzU3''@;'; + put 'put ''OSw1NzU4MCw1NzU4MSw1NzU4Miw1NzU4Myw1NzU4NCw1NzU4NSw1NzU4Niw1NzU4Nyw1NzU4OCw1NzU4OSw1NzU5MCw1NzU5MSw1NzU5Miw1NzU5Myw1NzU5NCw1NzU5NSw1NzU5Niw1NzU5Nyw1NzU5OCw1NzU5OSw1NzYwMCw1NzYwMSw1NzYwMiw1NzYwMyw1NzYwNCw1NzYwNSw1NzYwNiw1''@;'; + put 'put ''NzYwNyw1NzYwOCw1NzYwOSw1NzYxMCw1NzYxMSw1NzYxMiw1NzYxMyw1NzYxNCw1NzYxNSw1NzYxNiw1NzYxNyw1NzYxOCw1NzYxOSw1NzYyMCw1NzYyMSw1NzYyMiw1NzYyMyw1NzYyNCw1NzYyNSwyOTgxOSwyOTgyMCwyOTgyMSwyOTgyMywyOTgyNiwyOTgyOCwyOTgyOSwyOTgzMCwyOTgz''@;'; + put 'put ''MiwyOTgzMywyOTgzNCwyOTgzNiwyOTgzNywyOTgzOSwyOTg0MSwyOTg0MiwyOTg0MywyOTg0NCwyOTg0NSwyOTg0NiwyOTg0NywyOTg0OCwyOTg0OSwyOTg1MCwyOTg1MSwyOTg1MywyOTg1NSwyOTg1NiwyOTg1NywyOTg1OCwyOTg1OSwyOTg2MCwyOTg2MSwyOTg2MiwyOTg2NiwyOTg2Nywy''@;'; + put 'put ''OTg2OCwyOTg2OSwyOTg3MCwyOTg3MSwyOTg3MiwyOTg3MywyOTg3NCwyOTg3NSwyOTg3NiwyOTg3NywyOTg3OCwyOTg3OSwyOTg4MCwyOTg4MSwyOTg4MywyOTg4NCwyOTg4NSwyOTg4NiwyOTg4NywyOTg4OCwyOTg4OSwyOTg5MCwyOTg5MSwyOTg5MiwyOTg5MywyOTg5NCwyOTg5NSwyOTg5''@;'; + put 'put ''NiwyOTg5NywyOTg5OCwyOTg5OSwyOTkwMCwyOTkwMSwyOTkwMiwyOTkwMywyOTkwNCwyOTkwNSwyOTkwNywyOTkwOCwyOTkwOSwyOTkxMCwyOTkxMSwyOTkxMiwyOTkxMywyOTkxNCwyOTkxNSwyOTkxNywyOTkxOSwyOTkyMSwyOTkyNSwyOTkyNywyOTkyOCwyOTkyOSwyOTkzMCwyOTkzMSwy''@;'; + put 'put ''OTkzMiwyOTkzMywyOTkzNiwyOTkzNywyOTkzOCw1NzYyNiw1NzYyNyw1NzYyOCw1NzYyOSw1NzYzMCw1NzYzMSw1NzYzMiw1NzYzMyw1NzYzNCw1NzYzNSw1NzYzNiw1NzYzNyw1NzYzOCw1NzYzOSw1NzY0MCw1NzY0MSw1NzY0Miw1NzY0Myw1NzY0NCw1NzY0NSw1NzY0Niw1NzY0Nyw1NzY0''@;'; + put 'put ''OCw1NzY0OSw1NzY1MCw1NzY1MSw1NzY1Miw1NzY1Myw1NzY1NCw1NzY1NSw1NzY1Niw1NzY1Nyw1NzY1OCw1NzY1OSw1NzY2MCw1NzY2MSw1NzY2Miw1NzY2Myw1NzY2NCw1NzY2NSw1NzY2Niw1NzY2Nyw1NzY2OCw1NzY2OSw1NzY3MCw1NzY3MSw1NzY3Miw1NzY3Myw1NzY3NCw1NzY3NSw1''@;'; + put 'put ''NzY3Niw1NzY3Nyw1NzY3OCw1NzY3OSw1NzY4MCw1NzY4MSw1NzY4Miw1NzY4Myw1NzY4NCw1NzY4NSw1NzY4Niw1NzY4Nyw1NzY4OCw1NzY4OSw1NzY5MCw1NzY5MSw1NzY5Miw1NzY5Myw1NzY5NCw1NzY5NSw1NzY5Niw1NzY5Nyw1NzY5OCw1NzY5OSw1NzcwMCw1NzcwMSw1NzcwMiw1Nzcw''@;'; + put 'put ''Myw1NzcwNCw1NzcwNSw1NzcwNiw1NzcwNyw1NzcwOCw1NzcwOSw1NzcxMCw1NzcxMSw1NzcxMiw1NzcxMyw1NzcxNCw1NzcxNSw1NzcxNiw1NzcxNyw1NzcxOCw1NzcxOSwyOTkzOSwyOTk0MSwyOTk0NCwyOTk0NSwyOTk0NiwyOTk0NywyOTk0OCwyOTk0OSwyOTk1MCwyOTk1MiwyOTk1Mywy''@;'; + put 'put ''OTk1NCwyOTk1NSwyOTk1NywyOTk1OCwyOTk1OSwyOTk2MCwyOTk2MSwyOTk2MiwyOTk2MywyOTk2NCwyOTk2NiwyOTk2OCwyOTk3MCwyOTk3MiwyOTk3MywyOTk3NCwyOTk3NSwyOTk3OSwyOTk4MSwyOTk4MiwyOTk4NCwyOTk4NSwyOTk4NiwyOTk4NywyOTk4OCwyOTk5MCwyOTk5MSwyOTk5''@;'; + put 'put ''NCwyOTk5OCwzMDAwNCwzMDAwNiwzMDAwOSwzMDAxMiwzMDAxMywzMDAxNSwzMDAxNywzMDAxOCwzMDAxOSwzMDAyMCwzMDAyMiwzMDAyMywzMDAyNSwzMDAyNiwzMDAyOSwzMDAzMiwzMDAzMywzMDAzNCwzMDAzNSwzMDAzNywzMDAzOCwzMDAzOSwzMDA0MCwzMDA0NSwzMDA0NiwzMDA0Nywz''@;'; + put 'put ''MDA0OCwzMDA0OSwzMDA1MCwzMDA1MSwzMDA1MiwzMDA1NSwzMDA1NiwzMDA1NywzMDA1OSwzMDA2MCwzMDA2MSwzMDA2MiwzMDA2MywzMDA2NCwzMDA2NSwzMDA2NywzMDA2OSwzMDA3MCwzMDA3MSwzMDA3NCwzMDA3NSwzMDA3NiwzMDA3NywzMDA3OCwzMDA4MCwzMDA4MSwzMDA4MiwzMDA4''@;'; + put 'put ''NCwzMDA4NSwzMDA4Nyw1NzcyMCw1NzcyMSw1NzcyMiw1NzcyMyw1NzcyNCw1NzcyNSw1NzcyNiw1NzcyNyw1NzcyOCw1NzcyOSw1NzczMCw1NzczMSw1NzczMiw1NzczMyw1NzczNCw1NzczNSw1NzczNiw1NzczNyw1NzczOCw1NzczOSw1Nzc0MCw1Nzc0MSw1Nzc0Miw1Nzc0Myw1Nzc0NCw1''@;'; + put 'put ''Nzc0NSw1Nzc0Niw1Nzc0Nyw1Nzc0OCw1Nzc0OSw1Nzc1MCw1Nzc1MSw1Nzc1Miw1Nzc1Myw1Nzc1NCw1Nzc1NSw1Nzc1Niw1Nzc1Nyw1Nzc1OCw1Nzc1OSw1Nzc2MCw1Nzc2MSw1Nzc2Miw1Nzc2Myw1Nzc2NCw1Nzc2NSw1Nzc2Niw1Nzc2Nyw1Nzc2OCw1Nzc2OSw1Nzc3MCw1Nzc3MSw1Nzc3''@;'; + put 'put ''Miw1Nzc3Myw1Nzc3NCw1Nzc3NSw1Nzc3Niw1Nzc3Nyw1Nzc3OCw1Nzc3OSw1Nzc4MCw1Nzc4MSw1Nzc4Miw1Nzc4Myw1Nzc4NCw1Nzc4NSw1Nzc4Niw1Nzc4Nyw1Nzc4OCw1Nzc4OSw1Nzc5MCw1Nzc5MSw1Nzc5Miw1Nzc5Myw1Nzc5NCw1Nzc5NSw1Nzc5Niw1Nzc5Nyw1Nzc5OCw1Nzc5OSw1''@;'; + put 'put ''NzgwMCw1NzgwMSw1NzgwMiw1NzgwMyw1NzgwNCw1NzgwNSw1NzgwNiw1NzgwNyw1NzgwOCw1NzgwOSw1NzgxMCw1NzgxMSw1NzgxMiw1NzgxMywzMDA4OCwzMDA4OSwzMDA5MCwzMDA5MiwzMDA5MywzMDA5NCwzMDA5NiwzMDA5OSwzMDEwMSwzMDEwNCwzMDEwNywzMDEwOCwzMDExMCwzMDEx''@;'; + put 'put ''NCwzMDExOCwzMDExOSwzMDEyMCwzMDEyMSwzMDEyMiwzMDEyNSwzMDEzNCwzMDEzNSwzMDEzOCwzMDEzOSwzMDE0MywzMDE0NCwzMDE0NSwzMDE1MCwzMDE1NSwzMDE1NiwzMDE1OCwzMDE1OSwzMDE2MCwzMDE2MSwzMDE2MywzMDE2NywzMDE2OSwzMDE3MCwzMDE3MiwzMDE3MywzMDE3NSwz''@;'; + put 'put ''MDE3NiwzMDE3NywzMDE4MSwzMDE4NSwzMDE4OCwzMDE4OSwzMDE5MCwzMDE5MSwzMDE5NCwzMDE5NSwzMDE5NywzMDE5OCwzMDE5OSwzMDIwMCwzMDIwMiwzMDIwMywzMDIwNSwzMDIwNiwzMDIxMCwzMDIxMiwzMDIxNCwzMDIxNSwzMDIxNiwzMDIxNywzMDIxOSwzMDIyMSwzMDIyMiwzMDIy''@;'; + put 'put ''MywzMDIyNSwzMDIyNiwzMDIyNywzMDIyOCwzMDIzMCwzMDIzNCwzMDIzNiwzMDIzNywzMDIzOCwzMDI0MSwzMDI0MywzMDI0NywzMDI0OCwzMDI1MiwzMDI1NCwzMDI1NSwzMDI1NywzMDI1OCwzMDI2MiwzMDI2MywzMDI2NSwzMDI2NiwzMDI2NywzMDI2OSwzMDI3MywzMDI3NCwzMDI3Niw1''@;'; + put 'put ''NzgxNCw1NzgxNSw1NzgxNiw1NzgxNyw1NzgxOCw1NzgxOSw1NzgyMCw1NzgyMSw1NzgyMiw1NzgyMyw1NzgyNCw1NzgyNSw1NzgyNiw1NzgyNyw1NzgyOCw1NzgyOSw1NzgzMCw1NzgzMSw1NzgzMiw1NzgzMyw1NzgzNCw1NzgzNSw1NzgzNiw1NzgzNyw1NzgzOCw1NzgzOSw1Nzg0MCw1Nzg0''@;'; + put 'put ''MSw1Nzg0Miw1Nzg0Myw1Nzg0NCw1Nzg0NSw1Nzg0Niw1Nzg0Nyw1Nzg0OCw1Nzg0OSw1Nzg1MCw1Nzg1MSw1Nzg1Miw1Nzg1Myw1Nzg1NCw1Nzg1NSw1Nzg1Niw1Nzg1Nyw1Nzg1OCw1Nzg1OSw1Nzg2MCw1Nzg2MSw1Nzg2Miw1Nzg2Myw1Nzg2NCw1Nzg2NSw1Nzg2Niw1Nzg2Nyw1Nzg2OCw1''@;'; + put 'put ''Nzg2OSw1Nzg3MCw1Nzg3MSw1Nzg3Miw1Nzg3Myw1Nzg3NCw1Nzg3NSw1Nzg3Niw1Nzg3Nyw1Nzg3OCw1Nzg3OSw1Nzg4MCw1Nzg4MSw1Nzg4Miw1Nzg4Myw1Nzg4NCw1Nzg4NSw1Nzg4Niw1Nzg4Nyw1Nzg4OCw1Nzg4OSw1Nzg5MCw1Nzg5MSw1Nzg5Miw1Nzg5Myw1Nzg5NCw1Nzg5NSw1Nzg5''@;'; + put 'put ''Niw1Nzg5Nyw1Nzg5OCw1Nzg5OSw1NzkwMCw1NzkwMSw1NzkwMiw1NzkwMyw1NzkwNCw1NzkwNSw1NzkwNiw1NzkwNywzMDI3NywzMDI3OCwzMDI3OSwzMDI4MCwzMDI4MSwzMDI4MiwzMDI4MywzMDI4NiwzMDI4NywzMDI4OCwzMDI4OSwzMDI5MCwzMDI5MSwzMDI5MywzMDI5NSwzMDI5Niwz''@;'; + put 'put ''MDI5NywzMDI5OCwzMDI5OSwzMDMwMSwzMDMwMywzMDMwNCwzMDMwNSwzMDMwNiwzMDMwOCwzMDMwOSwzMDMxMCwzMDMxMSwzMDMxMiwzMDMxMywzMDMxNCwzMDMxNiwzMDMxNywzMDMxOCwzMDMyMCwzMDMyMSwzMDMyMiwzMDMyMywzMDMyNCwzMDMyNSwzMDMyNiwzMDMyNywzMDMyOSwzMDMz''@;'; + put 'put ''MCwzMDMzMiwzMDMzNSwzMDMzNiwzMDMzNywzMDMzOSwzMDM0MSwzMDM0NSwzMDM0NiwzMDM0OCwzMDM0OSwzMDM1MSwzMDM1MiwzMDM1NCwzMDM1NiwzMDM1NywzMDM1OSwzMDM2MCwzMDM2MiwzMDM2MywzMDM2NCwzMDM2NSwzMDM2NiwzMDM2NywzMDM2OCwzMDM2OSwzMDM3MCwzMDM3MSwz''@;'; + put 'put ''MDM3MywzMDM3NCwzMDM3NSwzMDM3NiwzMDM3NywzMDM3OCwzMDM3OSwzMDM4MCwzMDM4MSwzMDM4MywzMDM4NCwzMDM4NywzMDM4OSwzMDM5MCwzMDM5MSwzMDM5MiwzMDM5MywzMDM5NCwzMDM5NSwzMDM5NiwzMDM5NywzMDM5OCwzMDQwMCwzMDQwMSwzMDQwMywyMTgzNCwzODQ2MywyMjQ2''@;'; + put 'put ''NywyNTM4NCwyMTcxMCwyMTc2OSwyMTY5NiwzMDM1MywzMDI4NCwzNDEwOCwzMDcwMiwzMzQwNiwzMDg2MSwyOTIzMywzODU1MiwzODc5NywyNzY4OCwyMzQzMywyMDQ3NCwyNTM1MywyNjI2MywyMzczNiwzMzAxOCwyNjY5NiwzMjk0MiwyNjExNCwzMDQxNCwyMDk4NSwyNTk0MiwyOTEwMCwz''@;'; + put 'put ''Mjc1MywzNDk0OCwyMDY1OCwyMjg4NSwyNTAzNCwyODU5NSwzMzQ1MywyNTQyMCwyNTE3MCwyMTQ4NSwyMTU0MywzMTQ5NCwyMDg0MywzMDExNiwyNDA1MiwyNTMwMCwzNjI5OSwzODc3NCwyNTIyNiwzMjc5MywyMjM2NSwzODcxMiwzMjYxMCwyOTI0MCwzMDMzMywyNjU3NSwzMDMzNCwyNTY3''@;'; + put 'put ''MCwyMDMzNiwzNjEzMywyNTMwOCwzMTI1NSwyNjAwMSwyOTY3NywyNTY0NCwyNTIwMywzMzMyNCwzOTA0MSwyNjQ5NSwyOTI1NiwyNTE5OCwyNTI5MiwyMDI3NiwyOTkyMywyMTMyMiwyMTE1MCwzMjQ1OCwzNzAzMCwyNDExMCwyNjc1OCwyNzAzNiwzMzE1MiwzMjQ2NSwyNjgzNCwzMDkxNywz''@;'; + put 'put ''NDQ0NCwzODIyNSwyMDYyMSwzNTg3NiwzMzUwMiwzMjk5MCwyMTI1MywzNTA5MCwyMTA5MywzMDQwNCwzMDQwNywzMDQwOSwzMDQxMSwzMDQxMiwzMDQxOSwzMDQyMSwzMDQyNSwzMDQyNiwzMDQyOCwzMDQyOSwzMDQzMCwzMDQzMiwzMDQzMywzMDQzNCwzMDQzNSwzMDQzNiwzMDQzOCwzMDQz''@;'; + put 'put ''OSwzMDQ0MCwzMDQ0MSwzMDQ0MiwzMDQ0MywzMDQ0NCwzMDQ0NSwzMDQ0OCwzMDQ1MSwzMDQ1MywzMDQ1NCwzMDQ1NSwzMDQ1OCwzMDQ1OSwzMDQ2MSwzMDQ2MywzMDQ2NCwzMDQ2NiwzMDQ2NywzMDQ2OSwzMDQ3MCwzMDQ3NCwzMDQ3NiwzMDQ3OCwzMDQ3OSwzMDQ4MCwzMDQ4MSwzMDQ4Miwz''@;'; + put 'put ''MDQ4MywzMDQ4NCwzMDQ4NSwzMDQ4NiwzMDQ4NywzMDQ4OCwzMDQ5MSwzMDQ5MiwzMDQ5MywzMDQ5NCwzMDQ5NywzMDQ5OSwzMDUwMCwzMDUwMSwzMDUwMywzMDUwNiwzMDUwNywzMDUwOCwzMDUxMCwzMDUxMiwzMDUxMywzMDUxNCwzMDUxNSwzMDUxNiwzMDUyMSwzMDUyMywzMDUyNSwzMDUy''@;'; + put 'put ''NiwzMDUyNywzMDUzMCwzMDUzMiwzMDUzMywzMDUzNCwzMDUzNiwzMDUzNywzMDUzOCwzMDUzOSwzMDU0MCwzMDU0MSwzMDU0MiwzMDU0MywzMDU0NiwzMDU0NywzMDU0OCwzMDU0OSwzMDU1MCwzMDU1MSwzMDU1MiwzMDU1MywzMDU1NiwzNDE4MCwzODY0OSwyMDQ0NSwyMjU2MSwzOTI4MSwy''@;'; + put 'put ''MzQ1MywyNTI2NSwyNTI1MywyNjI5MiwzNTk2MSw0MDA3NywyOTE5MCwyNjQ3OSwzMDg2NSwyNDc1NCwyMTMyOSwyMTI3MSwzNjc0NCwzMjk3MiwzNjEyNSwzODA0OSwyMDQ5MywyOTM4NCwyMjc5MSwyNDgxMSwyODk1MywzNDk4NywyMjg2OCwzMzUxOSwyNjQxMiwzMTUyOCwyMzg0OSwzMjUw''@;'; + put 'put ''MywyOTk5NywyNzg5MywzNjQ1NCwzNjg1NiwzNjkyNCw0MDc2MywyNzYwNCwzNzE0NSwzMTUwOCwyNDQ0NCwzMDg4NywzNDAwNiwzNDEwOSwyNzYwNSwyNzYwOSwyNzYwNiwyNDA2NSwyNDE5OSwzMDIwMSwzODM4MSwyNTk0OSwyNDMzMCwyNDUxNywzNjc2NywyMjcyMSwzMzIxOCwzNjk5MSwz''@;'; + put 'put ''ODQ5MSwzODgyOSwzNjc5MywzMjUzNCwzNjE0MCwyNTE1MywyMDQxNSwyMTQ2NCwyMTM0MiwzNjc3NiwzNjc3NywzNjc3OSwzNjk0MSwyNjYzMSwyNDQyNiwzMzE3NiwzNDkyMCw0MDE1MCwyNDk3MSwyMTAzNSwzMDI1MCwyNDQyOCwyNTk5NiwyODYyNiwyODM5MiwyMzQ4NiwyNTY3MiwyMDg1''@;'; + put 'put ''MywyMDkxMiwyNjU2NCwxOTk5MywzMTE3NywzOTI5MiwyODg1MSwzMDU1NywzMDU1OCwzMDU1OSwzMDU2MCwzMDU2NCwzMDU2NywzMDU2OSwzMDU3MCwzMDU3MywzMDU3NCwzMDU3NSwzMDU3NiwzMDU3NywzMDU3OCwzMDU3OSwzMDU4MCwzMDU4MSwzMDU4MiwzMDU4MywzMDU4NCwzMDU4Niwz''@;'; + put 'put ''MDU4NywzMDU4OCwzMDU5MywzMDU5NCwzMDU5NSwzMDU5OCwzMDU5OSwzMDYwMCwzMDYwMSwzMDYwMiwzMDYwMywzMDYwNywzMDYwOCwzMDYxMSwzMDYxMiwzMDYxMywzMDYxNCwzMDYxNSwzMDYxNiwzMDYxNywzMDYxOCwzMDYxOSwzMDYyMCwzMDYyMSwzMDYyMiwzMDYyNSwzMDYyNywzMDYy''@;'; + put 'put ''OCwzMDYzMCwzMDYzMiwzMDYzNSwzMDYzNywzMDYzOCwzMDYzOSwzMDY0MSwzMDY0MiwzMDY0NCwzMDY0NiwzMDY0NywzMDY0OCwzMDY0OSwzMDY1MCwzMDY1MiwzMDY1NCwzMDY1NiwzMDY1NywzMDY1OCwzMDY1OSwzMDY2MCwzMDY2MSwzMDY2MiwzMDY2MywzMDY2NCwzMDY2NSwzMDY2Niwz''@;'; + put 'put ''MDY2NywzMDY2OCwzMDY3MCwzMDY3MSwzMDY3MiwzMDY3MywzMDY3NCwzMDY3NSwzMDY3NiwzMDY3NywzMDY3OCwzMDY4MCwzMDY4MSwzMDY4MiwzMDY4NSwzMDY4NiwzMDY4NywzMDY4OCwzMDY4OSwzMDY5MiwzMDE0OSwyNDE4MiwyOTYyNywzMzc2MCwyNTc3MywyNTMyMCwzODA2OSwyNzg3''@;'; + put 'put ''NCwyMTMzOCwyMTE4NywyNTYxNSwzODA4MiwzMTYzNiwyMDI3MSwyNDA5MSwzMzMzNCwzMzA0NiwzMzE2MiwyODE5NiwyNzg1MCwzOTUzOSwyNTQyOSwyMTM0MCwyMTc1NCwzNDkxNywyMjQ5NiwxOTk4MSwyNDA2NywyNzQ5MywzMTgwNywzNzA5NiwyNDU5OCwyNTgzMCwyOTQ2OCwzNTAwOSwy''@;'; + put 'put ''NjQ0OCwyNTE2NSwzNjEzMCwzMDU3MiwzNjM5MywzNzMxOSwyNDQyNSwzMzc1NiwzNDA4MSwzOTE4NCwyMTQ0MiwzNDQ1MywyNzUzMSwyNDgxMywyNDgwOCwyODc5OSwzMzQ4NSwzMzMyOSwyMDE3OSwyNzgxNSwzNDI1NSwyNTgwNSwzMTk2MSwyNzEzMywyNjM2MSwzMzYwOSwyMTM5NywzMTU3''@;'; + put 'put ''NCwyMDM5MSwyMDg3NiwyNzk3OSwyMzYxOCwzNjQ2MSwyNTU1NCwyMTQ0OSwzMzU4MCwzMzU5MCwyNjU5NywzMDkwMCwyNTY2MSwyMzUxOSwyMzcwMCwyNDA0NiwzNTgxNSwyNTI4NiwyNjYxMiwzNTk2MiwyNTYwMCwyNTUzMCwzNDYzMywzOTMwNywzNTg2MywzMjU0NCwzODEzMCwyMDEzNSwz''@;'; + put 'put ''ODQxNiwzOTA3NiwyNjEyNCwyOTQ2MiwzMDY5NCwzMDY5NiwzMDY5OCwzMDcwMywzMDcwNCwzMDcwNSwzMDcwNiwzMDcwOCwzMDcwOSwzMDcxMSwzMDcxMywzMDcxNCwzMDcxNSwzMDcxNiwzMDcyMywzMDcyNCwzMDcyNSwzMDcyNiwzMDcyNywzMDcyOCwzMDczMCwzMDczMSwzMDczNCwzMDcz''@;'; + put 'put ''NSwzMDczNiwzMDczOSwzMDc0MSwzMDc0NSwzMDc0NywzMDc1MCwzMDc1MiwzMDc1MywzMDc1NCwzMDc1NiwzMDc2MCwzMDc2MiwzMDc2MywzMDc2NiwzMDc2NywzMDc2OSwzMDc3MCwzMDc3MSwzMDc3MywzMDc3NCwzMDc4MSwzMDc4MywzMDc4NSwzMDc4NiwzMDc4NywzMDc4OCwzMDc5MCwz''@;'; + put 'put ''MDc5MiwzMDc5MywzMDc5NCwzMDc5NSwzMDc5NywzMDc5OSwzMDgwMSwzMDgwMywzMDgwNCwzMDgwOCwzMDgwOSwzMDgxMCwzMDgxMSwzMDgxMiwzMDgxNCwzMDgxNSwzMDgxNiwzMDgxNywzMDgxOCwzMDgxOSwzMDgyMCwzMDgyMSwzMDgyMiwzMDgyMywzMDgyNCwzMDgyNSwzMDgzMSwzMDgz''@;'; + put 'put ''MiwzMDgzMywzMDgzNCwzMDgzNSwzMDgzNiwzMDgzNywzMDgzOCwzMDg0MCwzMDg0MSwzMDg0MiwzMDg0MywzMDg0NSwzMDg0NiwzMDg0NywzMDg0OCwzMDg0OSwzMDg1MCwzMDg1MSwyMjMzMCwyMzU4MSwyNDEyMCwzODI3MSwyMDYwNywzMjkyOCwyMTM3OCwyNTk1MCwzMDAyMSwyMTgwOSwy''@;'; + put 'put ''MDUxMywzNjIyOSwyNTIyMCwzODA0NiwyNjM5NywyMjA2NiwyODUyNiwyNDAzNCwyMTU1NywyODgxOCwzNjcxMCwyNTE5OSwyNTc2NCwyNTUwNywyNDQ0MywyODU1MiwzNzEwOCwzMzI1MSwzNjc4NCwyMzU3NiwyNjIxNiwyNDU2MSwyNzc4NSwzODQ3MiwzNjIyNSwzNDkyNCwyNTc0NSwzMTIx''@;'; + put 'put ''NiwyMjQ3OCwyNzIyNSwyNTEwNCwyMTU3NiwyMDA1NiwzMTI0MywyNDgwOSwyODU0OCwzNTgwMiwyNTIxNSwzNjg5NCwzOTU2MywzMTIwNCwyMTUwNywzMDE5NiwyNTM0NSwyMTI3MywyNzc0NCwzNjgzMSwyNDM0NywzOTUzNiwzMjgyNyw0MDgzMSwyMDM2MCwyMzYxMCwzNjE5NiwzMjcwOSwy''@;'; + put 'put ''NjAyMSwyODg2MSwyMDgwNSwyMDkxNCwzNDQxMSwyMzgxNSwyMzQ1NiwyNTI3NywzNzIyOCwzMDA2OCwzNjM2NCwzMTI2NCwyNDgzMywzMTYwOSwyMDE2NywzMjUwNCwzMDU5NywxOTk4NSwzMzI2MSwyMTAyMSwyMDk4NiwyNzI0OSwyMTQxNiwzNjQ4NywzODE0OCwzODYwNywyODM1MywzODUw''@;'; + put 'put ''MCwyNjk3MCwzMDg1MiwzMDg1MywzMDg1NCwzMDg1NiwzMDg1OCwzMDg1OSwzMDg2MywzMDg2NCwzMDg2NiwzMDg2OCwzMDg2OSwzMDg3MCwzMDg3MywzMDg3NywzMDg3OCwzMDg4MCwzMDg4MiwzMDg4NCwzMDg4NiwzMDg4OCwzMDg4OSwzMDg5MCwzMDg5MSwzMDg5MiwzMDg5MywzMDg5NCwz''@;'; + put 'put ''MDg5NSwzMDkwMSwzMDkwMiwzMDkwMywzMDkwNCwzMDkwNiwzMDkwNywzMDkwOCwzMDkwOSwzMDkxMSwzMDkxMiwzMDkxNCwzMDkxNSwzMDkxNiwzMDkxOCwzMDkxOSwzMDkyMCwzMDkyNCwzMDkyNSwzMDkyNiwzMDkyNywzMDkyOSwzMDkzMCwzMDkzMSwzMDkzNCwzMDkzNSwzMDkzNiwzMDkz''@;'; + put 'put ''OCwzMDkzOSwzMDk0MCwzMDk0MSwzMDk0MiwzMDk0MywzMDk0NCwzMDk0NSwzMDk0NiwzMDk0NywzMDk0OCwzMDk0OSwzMDk1MCwzMDk1MSwzMDk1MywzMDk1NCwzMDk1NSwzMDk1NywzMDk1OCwzMDk1OSwzMDk2MCwzMDk2MSwzMDk2MywzMDk2NSwzMDk2NiwzMDk2OCwzMDk2OSwzMDk3MSwz''@;'; + put 'put ''MDk3MiwzMDk3MywzMDk3NCwzMDk3NSwzMDk3NiwzMDk3OCwzMDk3OSwzMDk4MCwzMDk4MiwzMDk4MywzMDk4NCwzMDk4NSwzMDk4NiwzMDk4NywzMDk4OCwzMDc4NCwyMDY0OCwzMDY3OSwyNTYxNiwzNTMwMiwyMjc4OCwyNTU3MSwyNDAyOSwzMTM1OSwyNjk0MSwyMDI1NiwzMzMzNywyMTkx''@;'; + put 'put ''MiwyMDAxOCwzMDEyNiwzMTM4MywyNDE2MiwyNDIwMiwzODM4MywyMTAxOSwyMTU2MSwyODgxMCwyNTQ2MiwzODE4MCwyMjQwMiwyNjE0OSwyNjk0MywzNzI1NSwyMTc2NywyODE0NywzMjQzMSwzNDg1MCwyNTEzOSwzMjQ5NiwzMDEzMywzMzU3NiwzMDkxMywzODYwNCwzNjc2NiwyNDkwNCwy''@;'; + put 'put ''OTk0MywzNTc4OSwyNzQ5MiwyMTA1MCwzNjE3NiwyNzQyNSwzMjg3NCwzMzkwNSwyMjI1NywyMTI1NCwyMDE3NCwxOTk5NSwyMDk0NSwzMTg5NSwzNzI1OSwzMTc1MSwyMDQxOSwzNjQ3OSwzMTcxMywzMTM4OCwyNTcwMywyMzgyOCwyMDY1MiwzMzAzMCwzMDIwOSwzMTkyOSwyODE0MCwzMjcz''@;'; + put 'put ''NiwyNjQ0OSwyMzM4NCwyMzU0NCwzMDkyMywyNTc3NCwyNTYxOSwyNTUxNCwyNTM4NywzODE2OSwyNTY0NSwzNjc5OCwzMTU3MiwzMDI0OSwyNTE3MSwyMjgyMywyMTU3NCwyNzUxMywyMDY0MywyNTE0MCwyNDEwMiwyNzUyNiwyMDE5NSwzNjE1MSwzNDk1NSwyNDQ1MywzNjkxMCwzMDk4OSwz''@;'; + put 'put ''MDk5MCwzMDk5MSwzMDk5MiwzMDk5MywzMDk5NCwzMDk5NiwzMDk5NywzMDk5OCwzMDk5OSwzMWUzLDMxMDAxLDMxMDAyLDMxMDAzLDMxMDA0LDMxMDA1LDMxMDA3LDMxMDA4LDMxMDA5LDMxMDEwLDMxMDExLDMxMDEzLDMxMDE0LDMxMDE1LDMxMDE2LDMxMDE3LDMxMDE4LDMxMDE5LDMxMDIw''@;'; + put 'put ''LDMxMDIxLDMxMDIyLDMxMDIzLDMxMDI0LDMxMDI1LDMxMDI2LDMxMDI3LDMxMDI5LDMxMDMwLDMxMDMxLDMxMDMyLDMxMDMzLDMxMDM3LDMxMDM5LDMxMDQyLDMxMDQzLDMxMDQ0LDMxMDQ1LDMxMDQ3LDMxMDUwLDMxMDUxLDMxMDUyLDMxMDUzLDMxMDU0LDMxMDU1LDMxMDU2LDMxMDU3LDMx''@;'; + put 'put ''MDU4LDMxMDYwLDMxMDYxLDMxMDY0LDMxMDY1LDMxMDczLDMxMDc1LDMxMDc2LDMxMDc4LDMxMDgxLDMxMDgyLDMxMDgzLDMxMDg0LDMxMDg2LDMxMDg4LDMxMDg5LDMxMDkwLDMxMDkxLDMxMDkyLDMxMDkzLDMxMDk0LDMxMDk3LDMxMDk5LDMxMTAwLDMxMTAxLDMxMTAyLDMxMTAzLDMxMTA2''@;'; + put 'put ''LDMxMTA3LDMxMTEwLDMxMTExLDMxMTEyLDMxMTEzLDMxMTE1LDMxMTE2LDMxMTE3LDMxMTE4LDMxMTIwLDMxMTIxLDMxMTIyLDI0NjA4LDMyODI5LDI1Mjg1LDIwMDI1LDIxMzMzLDM3MTEyLDI1NTI4LDMyOTY2LDI2MDg2LDI3Njk0LDIwMjk0LDI0ODE0LDI4MTI5LDM1ODA2LDI0Mzc3LDM0''@;'; + put 'put ''NTA3LDI0NDAzLDI1Mzc3LDIwODI2LDMzNjMzLDI2NzIzLDIwOTkyLDI1NDQzLDM2NDI0LDIwNDk4LDIzNzA3LDMxMDk1LDIzNTQ4LDIxMDQwLDMxMjkxLDI0NzY0LDM2OTQ3LDMwNDIzLDI0NTAzLDI0NDcxLDMwMzQwLDM2NDYwLDI4NzgzLDMwMzMxLDMxNTYxLDMwNjM0LDIwOTc5LDM3MDEx''@;'; + put 'put ''LDIyNTY0LDIwMzAyLDI4NDA0LDM2ODQyLDI1OTMyLDMxNTE1LDI5MzgwLDI4MDY4LDMyNzM1LDIzMjY1LDI1MjY5LDI0MjEzLDIyMzIwLDMzOTIyLDMxNTMyLDI0MDkzLDI0MzUxLDM2ODgyLDMyNTMyLDM5MDcyLDI1NDc0LDI4MzU5LDMwODcyLDI4ODU3LDIwODU2LDM4NzQ3LDIyNDQzLDMw''@;'; + put 'put ''MDA1LDIwMjkxLDMwMDA4LDI0MjE1LDI0ODA2LDIyODgwLDI4MDk2LDI3NTgzLDMwODU3LDIxNTAwLDM4NjEzLDIwOTM5LDIwOTkzLDI1NDgxLDIxNTE0LDM4MDM1LDM1ODQzLDM2MzAwLDI5MjQxLDMwODc5LDM0Njc4LDM2ODQ1LDM1ODUzLDIxNDcyLDMxMTIzLDMxMTI0LDMxMTI1LDMxMTI2''@;'; + put 'put ''LDMxMTI3LDMxMTI4LDMxMTI5LDMxMTMxLDMxMTMyLDMxMTMzLDMxMTM0LDMxMTM1LDMxMTM2LDMxMTM3LDMxMTM4LDMxMTM5LDMxMTQwLDMxMTQxLDMxMTQyLDMxMTQ0LDMxMTQ1LDMxMTQ2LDMxMTQ3LDMxMTQ4LDMxMTQ5LDMxMTUwLDMxMTUxLDMxMTUyLDMxMTUzLDMxMTU0LDMxMTU2LDMx''@;'; + put 'put ''MTU3LDMxMTU4LDMxMTU5LDMxMTYwLDMxMTY0LDMxMTY3LDMxMTcwLDMxMTcyLDMxMTczLDMxMTc1LDMxMTc2LDMxMTc4LDMxMTgwLDMxMTgyLDMxMTgzLDMxMTg0LDMxMTg3LDMxMTg4LDMxMTkwLDMxMTkxLDMxMTkzLDMxMTk0LDMxMTk1LDMxMTk2LDMxMTk3LDMxMTk4LDMxMjAwLDMxMjAx''@;'; + put 'put ''LDMxMjAyLDMxMjA1LDMxMjA4LDMxMjEwLDMxMjEyLDMxMjE0LDMxMjE3LDMxMjE4LDMxMjE5LDMxMjIwLDMxMjIxLDMxMjIyLDMxMjIzLDMxMjI1LDMxMjI2LDMxMjI4LDMxMjMwLDMxMjMxLDMxMjMzLDMxMjM2LDMxMjM3LDMxMjM5LDMxMjQwLDMxMjQxLDMxMjQyLDMxMjQ0LDMxMjQ3LDMx''@;'; + put 'put ''MjQ4LDMxMjQ5LDMxMjUwLDMxMjUxLDMxMjUzLDMxMjU0LDMxMjU2LDMxMjU3LDMxMjU5LDMxMjYwLDE5OTY5LDMwNDQ3LDIxNDg2LDM4MDI1LDM5MDMwLDQwNzE4LDM4MTg5LDIzNDUwLDM1NzQ2LDIwMDAyLDE5OTk2LDIwOTA4LDMzODkxLDI1MDI2LDIxMTYwLDI2NjM1LDIwMzc1LDI0Njgz''@;'; + put 'put ''LDIwOTIzLDI3OTM0LDIwODI4LDI1MjM4LDI2MDA3LDM4NDk3LDM1OTEwLDM2ODg3LDMwMTY4LDM3MTE3LDMwNTYzLDI3NjAyLDI5MzIyLDI5NDIwLDM1ODM1LDIyNTgxLDMwNTg1LDM2MTcyLDI2NDYwLDM4MjA4LDMyOTIyLDI0MjMwLDI4MTkzLDIyOTMwLDMxNDcxLDMwNzAxLDM4MjAzLDI3''@;'; + put 'put ''NTczLDI2MDI5LDMyNTI2LDIyNTM0LDIwODE3LDM4NDMxLDIzNTQ1LDIyNjk3LDIxNTQ0LDM2NDY2LDI1OTU4LDM5MDM5LDIyMjQ0LDM4MDQ1LDMwNDYyLDM2OTI5LDI1NDc5LDIxNzAyLDIyODEwLDIyODQyLDIyNDI3LDM2NTMwLDI2NDIxLDM2MzQ2LDMzMzMzLDIxMDU3LDI0ODE2LDIyNTQ5''@;'; + put 'put ''LDM0NTU4LDIzNzg0LDQwNTE3LDIwNDIwLDM5MDY5LDM1NzY5LDIzMDc3LDI0Njk0LDIxMzgwLDI1MjEyLDM2OTQzLDM3MTIyLDM5Mjk1LDI0NjgxLDMyNzgwLDIwNzk5LDMyODE5LDIzNTcyLDM5Mjg1LDI3OTUzLDIwMTA4LDMxMjYxLDMxMjYzLDMxMjY1LDMxMjY2LDMxMjY4LDMxMjY5LDMx''@;'; + put 'put ''MjcwLDMxMjcxLDMxMjcyLDMxMjczLDMxMjc0LDMxMjc1LDMxMjc2LDMxMjc3LDMxMjc4LDMxMjc5LDMxMjgwLDMxMjgxLDMxMjgyLDMxMjg0LDMxMjg1LDMxMjg2LDMxMjg4LDMxMjkwLDMxMjk0LDMxMjk2LDMxMjk3LDMxMjk4LDMxMjk5LDMxMzAwLDMxMzAxLDMxMzAzLDMxMzA0LDMxMzA1''@;'; + put 'put ''LDMxMzA2LDMxMzA3LDMxMzA4LDMxMzA5LDMxMzEwLDMxMzExLDMxMzEyLDMxMzE0LDMxMzE1LDMxMzE2LDMxMzE3LDMxMzE4LDMxMzIwLDMxMzIxLDMxMzIyLDMxMzIzLDMxMzI0LDMxMzI1LDMxMzI2LDMxMzI3LDMxMzI4LDMxMzI5LDMxMzMwLDMxMzMxLDMxMzMyLDMxMzMzLDMxMzM0LDMx''@;'; + put 'put ''MzM1LDMxMzM2LDMxMzM3LDMxMzM4LDMxMzM5LDMxMzQwLDMxMzQxLDMxMzQyLDMxMzQzLDMxMzQ1LDMxMzQ2LDMxMzQ3LDMxMzQ5LDMxMzU1LDMxMzU2LDMxMzU3LDMxMzU4LDMxMzYyLDMxMzY1LDMxMzY3LDMxMzY5LDMxMzcwLDMxMzcxLDMxMzcyLDMxMzc0LDMxMzc1LDMxMzc2LDMxMzc5''@;'; + put 'put ''LDMxMzgwLDMxMzg1LDMxMzg2LDMxMzg3LDMxMzkwLDMxMzkzLDMxMzk0LDM2MTQ0LDIxNDU3LDMyNjAyLDMxNTY3LDIwMjQwLDIwMDQ3LDM4NDAwLDI3ODYxLDI5NjQ4LDM0MjgxLDI0MDcwLDMwMDU4LDMyNzYzLDI3MTQ2LDMwNzE4LDM4MDM0LDMyMzIxLDIwOTYxLDI4OTAyLDIxNDUzLDM2''@;'; + put 'put ''ODIwLDMzNTM5LDM2MTM3LDI5MzU5LDM5Mjc3LDI3ODY3LDIyMzQ2LDMzNDU5LDI2MDQxLDMyOTM4LDI1MTUxLDM4NDUwLDIyOTUyLDIwMjIzLDM1Nzc1LDMyNDQyLDI1OTE4LDMzNzc4LDM4NzUwLDIxODU3LDM5MTM0LDMyOTMzLDIxMjkwLDM1ODM3LDIxNTM2LDMyOTU0LDI0MjIzLDI3ODMy''@;'; + put 'put ''LDM2MTUzLDMzNDUyLDM3MjEwLDIxNTQ1LDI3Njc1LDIwOTk4LDMyNDM5LDIyMzY3LDI4OTU0LDI3Nzc0LDMxODgxLDIyODU5LDIwMjIxLDI0NTc1LDI0ODY4LDMxOTE0LDIwMDE2LDIzNTUzLDI2NTM5LDM0NTYyLDIzNzkyLDM4MTU1LDM5MTE4LDMwMTI3LDI4OTI1LDM2ODk4LDIwOTExLDMy''@;'; + put 'put ''NTQxLDM1NzczLDIyODU3LDIwOTY0LDIwMzE1LDIxNTQyLDIyODI3LDI1OTc1LDMyOTMyLDIzNDEzLDI1MjA2LDI1MjgyLDM2NzUyLDI0MTMzLDI3Njc5LDMxNTI2LDIwMjM5LDIwNDQwLDI2MzgxLDMxMzk1LDMxMzk2LDMxMzk5LDMxNDAxLDMxNDAyLDMxNDAzLDMxNDA2LDMxNDA3LDMxNDA4''@;'; + put 'put ''LDMxNDA5LDMxNDEwLDMxNDEyLDMxNDEzLDMxNDE0LDMxNDE1LDMxNDE2LDMxNDE3LDMxNDE4LDMxNDE5LDMxNDIwLDMxNDIxLDMxNDIyLDMxNDI0LDMxNDI1LDMxNDI2LDMxNDI3LDMxNDI4LDMxNDI5LDMxNDMwLDMxNDMxLDMxNDMyLDMxNDMzLDMxNDM0LDMxNDM2LDMxNDM3LDMxNDM4LDMx''@;'; + put 'put ''NDM5LDMxNDQwLDMxNDQxLDMxNDQyLDMxNDQzLDMxNDQ0LDMxNDQ1LDMxNDQ3LDMxNDQ4LDMxNDUwLDMxNDUxLDMxNDUyLDMxNDUzLDMxNDU3LDMxNDU4LDMxNDYwLDMxNDYzLDMxNDY0LDMxNDY1LDMxNDY2LDMxNDY3LDMxNDY4LDMxNDcwLDMxNDcyLDMxNDczLDMxNDc0LDMxNDc1LDMxNDc2''@;'; + put 'put ''LDMxNDc3LDMxNDc4LDMxNDc5LDMxNDgwLDMxNDgzLDMxNDg0LDMxNDg2LDMxNDg4LDMxNDg5LDMxNDkwLDMxNDkzLDMxNDk1LDMxNDk3LDMxNTAwLDMxNTAxLDMxNTAyLDMxNTA0LDMxNTA2LDMxNTA3LDMxNTEwLDMxNTExLDMxNTEyLDMxNTE0LDMxNTE2LDMxNTE3LDMxNTE5LDMxNTIxLDMx''@;'; + put 'put ''NTIyLDMxNTIzLDMxNTI3LDMxNTI5LDMxNTMzLDI4MDE0LDI4MDc0LDMxMTE5LDM0OTkzLDI0MzQzLDI5OTk1LDI1MjQyLDM2NzQxLDIwNDYzLDM3MzQwLDI2MDIzLDMzMDcxLDMzMTA1LDI0MjIwLDMzMTA0LDM2MjEyLDIxMTAzLDM1MjA2LDM2MTcxLDIyNzk3LDIwNjEzLDIwMTg0LDM4NDI4''@;'; + put 'put ''LDI5MjM4LDMzMTQ1LDM2MTI3LDIzNTAwLDM1NzQ3LDM4NDY4LDIyOTE5LDMyNTM4LDIxNjQ4LDIyMTM0LDIyMDMwLDM1ODEzLDI1OTEzLDI3MDEwLDM4MDQxLDMwNDIyLDI4Mjk3LDI0MTc4LDI5OTc2LDI2NDM4LDI2NTc3LDMxNDg3LDMyOTI1LDM2MjE0LDI0ODYzLDMxMTc0LDI1OTU0LDM2''@;'; + put 'put ''MTk1LDIwODcyLDIxMDE4LDM4MDUwLDMyNTY4LDMyOTIzLDMyNDM0LDIzNzAzLDI4MjA3LDI2NDY0LDMxNzA1LDMwMzQ3LDM5NjQwLDMzMTY3LDMyNjYwLDMxOTU3LDI1NjMwLDM4MjI0LDMxMjk1LDIxNTc4LDIxNzMzLDI3NDY4LDI1NjAxLDI1MDk2LDQwNTA5LDMzMDExLDMwMTA1LDIxMTA2''@;'; + put 'put ''LDM4NzYxLDMzODgzLDI2Njg0LDM0NTMyLDM4NDAxLDM4NTQ4LDM4MTI0LDIwMDEwLDIxNTA4LDMyNDczLDI2NjgxLDM2MzE5LDMyNzg5LDI2MzU2LDI0MjE4LDMyNjk3LDMxNTM1LDMxNTM2LDMxNTM4LDMxNTQwLDMxNTQxLDMxNTQyLDMxNTQzLDMxNTQ1LDMxNTQ3LDMxNTQ5LDMxNTUxLDMx''@;'; + put 'put ''NTUyLDMxNTUzLDMxNTU0LDMxNTU1LDMxNTU2LDMxNTU4LDMxNTYwLDMxNTYyLDMxNTY1LDMxNTY2LDMxNTcxLDMxNTczLDMxNTc1LDMxNTc3LDMxNTgwLDMxNTgyLDMxNTgzLDMxNTg1LDMxNTg3LDMxNTg4LDMxNTg5LDMxNTkwLDMxNTkxLDMxNTkyLDMxNTkzLDMxNTk0LDMxNTk1LDMxNTk2''@;'; + put 'put ''LDMxNTk3LDMxNTk5LDMxNjAwLDMxNjAzLDMxNjA0LDMxNjA2LDMxNjA4LDMxNjEwLDMxNjEyLDMxNjEzLDMxNjE1LDMxNjE3LDMxNjE4LDMxNjE5LDMxNjIwLDMxNjIyLDMxNjIzLDMxNjI0LDMxNjI1LDMxNjI2LDMxNjI3LDMxNjI4LDMxNjMwLDMxNjMxLDMxNjMzLDMxNjM0LDMxNjM1LDMx''@;'; + put 'put ''NjM4LDMxNjQwLDMxNjQxLDMxNjQyLDMxNjQzLDMxNjQ2LDMxNjQ3LDMxNjQ4LDMxNjUxLDMxNjUyLDMxNjUzLDMxNjYyLDMxNjYzLDMxNjY0LDMxNjY2LDMxNjY3LDMxNjY5LDMxNjcwLDMxNjcxLDMxNjczLDMxNjc0LDMxNjc1LDMxNjc2LDMxNjc3LDMxNjc4LDMxNjc5LDMxNjgwLDMxNjgy''@;'; + put 'put ''LDMxNjgzLDMxNjg0LDIyNDY2LDMyODMxLDI2Nzc1LDI0MDM3LDI1OTE1LDIxMTUxLDI0Njg1LDQwODU4LDIwMzc5LDM2NTI0LDIwODQ0LDIzNDY3LDI0MzM5LDI0MDQxLDI3NzQyLDI1MzI5LDM2MTI5LDIwODQ5LDM4MDU3LDIxMjQ2LDI3ODA3LDMzNTAzLDI5Mzk5LDIyNDM0LDI2NTAwLDM2''@;'; + put 'put ''MTQxLDIyODE1LDM2NzY0LDMzNzM1LDIxNjUzLDMxNjI5LDIwMjcyLDI3ODM3LDIzMzk2LDIyOTkzLDQwNzIzLDIxNDc2LDM0NTA2LDM5NTkyLDM1ODk1LDMyOTI5LDI1OTI1LDM5MDM4LDIyMjY2LDM4NTk5LDIxMDM4LDI5OTE2LDIxMDcyLDIzNTIxLDI1MzQ2LDM1MDc0LDIwMDU0LDI1Mjk2''@;'; + put 'put ''LDI0NjE4LDI2ODc0LDIwODUxLDIzNDQ4LDIwODk2LDM1MjY2LDMxNjQ5LDM5MzAyLDMyNTkyLDI0ODE1LDI4NzQ4LDM2MTQzLDIwODA5LDI0MTkxLDM2ODkxLDI5ODA4LDM1MjY4LDIyMzE3LDMwNzg5LDI0NDAyLDQwODYzLDM4Mzk0LDM2NzEyLDM5NzQwLDM1ODA5LDMwMzI4LDI2NjkwLDI2''@;'; + put 'put ''NTg4LDM2MzMwLDM2MTQ5LDIxMDUzLDM2NzQ2LDI4Mzc4LDI2ODI5LDM4MTQ5LDM3MTAxLDIyMjY5LDI2NTI0LDM1MDY1LDM2ODA3LDIxNzA0LDMxNjg1LDMxNjg4LDMxNjg5LDMxNjkwLDMxNjkxLDMxNjkzLDMxNjk0LDMxNjk1LDMxNjk2LDMxNjk4LDMxNzAwLDMxNzAxLDMxNzAyLDMxNzAz''@;'; + put 'put ''LDMxNzA0LDMxNzA3LDMxNzA4LDMxNzEwLDMxNzExLDMxNzEyLDMxNzE0LDMxNzE1LDMxNzE2LDMxNzE5LDMxNzIwLDMxNzIxLDMxNzIzLDMxNzI0LDMxNzI1LDMxNzI3LDMxNzI4LDMxNzMwLDMxNzMxLDMxNzMyLDMxNzMzLDMxNzM0LDMxNzM2LDMxNzM3LDMxNzM4LDMxNzM5LDMxNzQxLDMx''@;'; + put 'put ''NzQzLDMxNzQ0LDMxNzQ1LDMxNzQ2LDMxNzQ3LDMxNzQ4LDMxNzQ5LDMxNzUwLDMxNzUyLDMxNzUzLDMxNzU0LDMxNzU3LDMxNzU4LDMxNzYwLDMxNzYxLDMxNzYyLDMxNzYzLDMxNzY0LDMxNzY1LDMxNzY3LDMxNzY4LDMxNzY5LDMxNzcwLDMxNzcxLDMxNzcyLDMxNzczLDMxNzc0LDMxNzc2''@;'; + put 'put ''LDMxNzc3LDMxNzc4LDMxNzc5LDMxNzgwLDMxNzgxLDMxNzg0LDMxNzg1LDMxNzg3LDMxNzg4LDMxNzg5LDMxNzkwLDMxNzkxLDMxNzkyLDMxNzkzLDMxNzk0LDMxNzk1LDMxNzk2LDMxNzk3LDMxNzk4LDMxNzk5LDMxODAxLDMxODAyLDMxODAzLDMxODA0LDMxODA1LDMxODA2LDMxODEwLDM5''@;'; + put 'put ''NjA4LDIzNDAxLDI4MDIzLDI3Njg2LDIwMTMzLDIzNDc1LDM5NTU5LDM3MjE5LDI1ZTMsMzcwMzksMzg4ODksMjE1NDcsMjgwODUsMjM1MDYsMjA5ODksMjE4OTgsMzI1OTcsMzI3NTIsMjU3ODgsMjU0MjEsMjYwOTcsMjUwMjIsMjQ3MTcsMjg5MzgsMjc3MzUsMjc3MjEsMjI4MzEsMjY0Nzcs''@;'; + put 'put ''MzMzMjIsMjI3NDEsMjIxNTgsMzU5NDYsMjc2MjcsMzcwODUsMjI5MDksMzI3OTEsMjE0OTUsMjgwMDksMjE2MjEsMjE5MTcsMzM2NTUsMzM3NDMsMjY2ODAsMzExNjYsMjE2NDQsMjAzMDksMjE1MTIsMzA0MTgsMzU5NzcsMzg0MDIsMjc4MjcsMjgwODgsMzYyMDMsMzUwODgsNDA1NDgsMzYx''@;'; + put 'put ''NTQsMjIwNzksNDA2NTcsMzAxNjUsMjQ0NTYsMjk0MDgsMjQ2ODAsMjE3NTYsMjAxMzYsMjcxNzgsMzQ5MTMsMjQ2NTgsMzY3MjAsMjE3MDAsMjg4ODgsMzQ0MjUsNDA1MTEsMjc5NDYsMjM0MzksMjQzNDQsMzI0MTgsMjE4OTcsMjAzOTksMjk0OTIsMjE1NjQsMjE0MDIsMjA1MDUsMjE1MTgs''@;'; + put 'put ''MjE2MjgsMjAwNDYsMjQ1NzMsMjk3ODYsMjI3NzQsMzM4OTksMzI5OTMsMzQ2NzYsMjkzOTIsMzE5NDYsMjgyNDYsMzE4MTEsMzE4MTIsMzE4MTMsMzE4MTQsMzE4MTUsMzE4MTYsMzE4MTcsMzE4MTgsMzE4MTksMzE4MjAsMzE4MjIsMzE4MjMsMzE4MjQsMzE4MjUsMzE4MjYsMzE4MjcsMzE4''@;'; + put 'put ''MjgsMzE4MjksMzE4MzAsMzE4MzEsMzE4MzIsMzE4MzMsMzE4MzQsMzE4MzUsMzE4MzYsMzE4MzcsMzE4MzgsMzE4MzksMzE4NDAsMzE4NDEsMzE4NDIsMzE4NDMsMzE4NDQsMzE4NDUsMzE4NDYsMzE4NDcsMzE4NDgsMzE4NDksMzE4NTAsMzE4NTEsMzE4NTIsMzE4NTMsMzE4NTQsMzE4NTUs''@;'; + put 'put ''MzE4NTYsMzE4NTcsMzE4NTgsMzE4NjEsMzE4NjIsMzE4NjMsMzE4NjQsMzE4NjUsMzE4NjYsMzE4NzAsMzE4NzEsMzE4NzIsMzE4NzMsMzE4NzQsMzE4NzUsMzE4NzYsMzE4NzcsMzE4NzgsMzE4NzksMzE4ODAsMzE4ODIsMzE4ODMsMzE4ODQsMzE4ODUsMzE4ODYsMzE4ODcsMzE4ODgsMzE4''@;'; + put 'put ''OTEsMzE4OTIsMzE4OTQsMzE4OTcsMzE4OTgsMzE4OTksMzE5MDQsMzE5MDUsMzE5MDcsMzE5MTAsMzE5MTEsMzE5MTIsMzE5MTMsMzE5MTUsMzE5MTYsMzE5MTcsMzE5MTksMzE5MjAsMzE5MjQsMzE5MjUsMzE5MjYsMzE5MjcsMzE5MjgsMzE5MzAsMzE5MzEsMjQzNTksMzQzODIsMjE4MDQs''@;'; + put 'put ''MjUyNTIsMjAxMTQsMjc4MTgsMjUxNDMsMzM0NTcsMjE3MTksMjEzMjYsMjk1MDIsMjgzNjksMzAwMTEsMjEwMTAsMjEyNzAsMzU4MDUsMjcwODgsMjQ0NTgsMjQ1NzYsMjgxNDIsMjIzNTEsMjc0MjYsMjk2MTUsMjY3MDcsMzY4MjQsMzI1MzEsMjU0NDIsMjQ3MzksMjE3OTYsMzAxODYsMzU5''@;'; + put 'put ''MzgsMjg5NDksMjgwNjcsMjM0NjIsMjQxODcsMzM2MTgsMjQ5MDgsNDA2NDQsMzA5NzAsMzQ2NDcsMzE3ODMsMzAzNDMsMjA5NzYsMjQ4MjIsMjkwMDQsMjYxNzksMjQxNDAsMjQ2NTMsMzU4NTQsMjg3ODQsMjUzODEsMzY3NDUsMjQ1MDksMjQ2NzQsMzQ1MTYsMjIyMzgsMjc1ODUsMjQ3MjQs''@;'; + put 'put ''MjQ5MzUsMjEzMjEsMjQ4MDAsMjYyMTQsMzYxNTksMzEyMjksMjAyNTAsMjg5MDUsMjc3MTksMzU3NjMsMzU4MjYsMzI0NzIsMzM2MzYsMjYxMjcsMjMxMzAsMzk3NDYsMjc5ODUsMjgxNTEsMzU5MDUsMjc5NjMsMjAyNDksMjg3NzksMzM3MTksMjUxMTAsMjQ3ODUsMzg2NjksMzYxMzUsMzEw''@;'; + put 'put ''OTYsMjA5ODcsMjIzMzQsMjI1MjIsMjY0MjYsMzAwNzIsMzEyOTMsMzEyMTUsMzE2MzcsMzE5MzUsMzE5MzYsMzE5MzgsMzE5MzksMzE5NDAsMzE5NDIsMzE5NDUsMzE5NDcsMzE5NTAsMzE5NTEsMzE5NTIsMzE5NTMsMzE5NTQsMzE5NTUsMzE5NTYsMzE5NjAsMzE5NjIsMzE5NjMsMzE5NjUs''@;'; + put 'put ''MzE5NjYsMzE5NjksMzE5NzAsMzE5NzEsMzE5NzIsMzE5NzMsMzE5NzQsMzE5NzUsMzE5NzcsMzE5NzgsMzE5NzksMzE5ODAsMzE5ODEsMzE5ODIsMzE5ODQsMzE5ODUsMzE5ODYsMzE5ODcsMzE5ODgsMzE5ODksMzE5OTAsMzE5OTEsMzE5OTMsMzE5OTQsMzE5OTYsMzE5OTcsMzE5OTgsMzE5''@;'; + put 'put ''OTksMzJlMywzMjAwMSwzMjAwMiwzMjAwMywzMjAwNCwzMjAwNSwzMjAwNiwzMjAwNywzMjAwOCwzMjAwOSwzMjAxMSwzMjAxMiwzMjAxMywzMjAxNCwzMjAxNSwzMjAxNiwzMjAxNywzMjAxOCwzMjAxOSwzMjAyMCwzMjAyMSwzMjAyMiwzMjAyMywzMjAyNCwzMjAyNSwzMjAyNiwzMjAyNywz''@;'; + put 'put ''MjAyOCwzMjAyOSwzMjAzMCwzMjAzMSwzMjAzMywzMjAzNSwzMjAzNiwzMjAzNywzMjAzOCwzMjA0MCwzMjA0MSwzMjA0MiwzMjA0NCwzMjA0NSwzMjA0NiwzMjA0OCwzMjA0OSwzMjA1MCwzMjA1MSwzMjA1MiwzMjA1MywzMjA1NCwzMjkwOCwzOTI2OSwzNjg1NywyODYwOCwzNTc0OSw0MDQ4''@;'; + put 'put ''MSwyMzAyMCwzMjQ4OSwzMjUyMSwyMTUxMywyNjQ5NywyNjg0MCwzNjc1MywzMTgyMSwzODU5OCwyMTQ1MCwyNDYxMywzMDE0MiwyNzc2MiwyMTM2MywyMzI0MSwzMjQyMywyNTM4MCwyMDk2MCwzMzAzNCwyNDA0OSwzNDAxNSwyNTIxNiwyMDg2NCwyMzM5NSwyMDIzOCwzMTA4NSwyMTA1OCwy''@;'; + put 'put ''NDc2MCwyNzk4MiwyMzQ5MiwyMzQ5MCwzNTc0NSwzNTc2MCwyNjA4MiwyNDUyNCwzODQ2OSwyMjkzMSwzMjQ4NywzMjQyNiwyMjAyNSwyNjU1MSwyMjg0MSwyMDMzOSwyMzQ3OCwyMTE1MiwzMzYyNiwzOTA1MCwzNjE1OCwzMDAwMiwzODA3OCwyMDU1MSwzMTI5MiwyMDIxNSwyNjU1MCwzOTU1''@;'; + put 'put ''MCwyMzIzMywyNzUxNiwzMDQxNywyMjM2MiwyMzU3NCwzMTU0NiwzODM4OCwyOTAwNiwyMDg2MCwzMjkzNywzMzM5MiwyMjkwNCwzMjUxNiwzMzU3NSwyNjgxNiwyNjYwNCwzMDg5NywzMDgzOSwyNTMxNSwyNTQ0MSwzMTYxNiwyMDQ2MSwyMTA5OCwyMDk0MywzMzYxNiwyNzA5OSwzNzQ5Miwz''@;'; + put 'put ''NjM0MSwzNjE0NSwzNTI2NSwzODE5MCwzMTY2MSwyMDIxNCwzMjA1NSwzMjA1NiwzMjA1NywzMjA1OCwzMjA1OSwzMjA2MCwzMjA2MSwzMjA2MiwzMjA2MywzMjA2NCwzMjA2NSwzMjA2NiwzMjA2NywzMjA2OCwzMjA2OSwzMjA3MCwzMjA3MSwzMjA3MiwzMjA3MywzMjA3NCwzMjA3NSwzMjA3''@;'; + put 'put ''NiwzMjA3NywzMjA3OCwzMjA3OSwzMjA4MCwzMjA4MSwzMjA4MiwzMjA4MywzMjA4NCwzMjA4NSwzMjA4NiwzMjA4NywzMjA4OCwzMjA4OSwzMjA5MCwzMjA5MSwzMjA5MiwzMjA5MywzMjA5NCwzMjA5NSwzMjA5NiwzMjA5NywzMjA5OCwzMjA5OSwzMjEwMCwzMjEwMSwzMjEwMiwzMjEwMywz''@;'; + put 'put ''MjEwNCwzMjEwNSwzMjEwNiwzMjEwNywzMjEwOCwzMjEwOSwzMjExMSwzMjExMiwzMjExMywzMjExNCwzMjExNSwzMjExNiwzMjExNywzMjExOCwzMjEyMCwzMjEyMSwzMjEyMiwzMjEyMywzMjEyNCwzMjEyNSwzMjEyNiwzMjEyNywzMjEyOCwzMjEyOSwzMjEzMCwzMjEzMSwzMjEzMiwzMjEz''@;'; + put 'put ''MywzMjEzNCwzMjEzNSwzMjEzNiwzMjEzNywzMjEzOCwzMjEzOSwzMjE0MCwzMjE0MSwzMjE0MiwzMjE0MywzMjE0NCwzMjE0NSwzMjE0NiwzMjE0NywzMjE0OCwzMjE0OSwzMjE1MCwzMjE1MSwzMjE1MiwyMDU4MSwzMzMyOCwyMTA3MywzOTI3OSwyODE3NiwyODI5MywyODA3MSwyNDMxNCwy''@;'; + put 'put ''MDcyNSwyMzAwNCwyMzU1OCwyNzk3NCwyNzc0MywzMDA4NiwzMzkzMSwyNjcyOCwyMjg3MCwzNTc2MiwyMTI4MCwzNzIzMywzODQ3NywzNDEyMSwyNjg5OCwzMDk3NywyODk2NiwzMzAxNCwyMDEzMiwzNzA2NiwyNzk3NSwzOTU1NiwyMzA0NywyMjIwNCwyNTYwNSwzODEyOCwzMDY5OSwyMDM4''@;'; + put 'put ''OSwzMzA1MCwyOTQwOSwzNTI4MiwzOTI5MCwzMjU2NCwzMjQ3OCwyMTExOSwyNTk0NSwzNzIzNywzNjczNSwzNjczOSwyMTQ4MywzMTM4MiwyNTU4MSwyNTUwOSwzMDM0MiwzMTIyNCwzNDkwMywzODQ1NCwyNTEzMCwyMTE2MywzMzQxMCwyNjcwOCwyNjQ4MCwyNTQ2MywzMDU3MSwzMTQ2OSwy''@;'; + put 'put ''NzkwNSwzMjQ2NywzNTI5OSwyMjk5MiwyNTEwNiwzNDI0OSwzMzQ0NSwzMDAyOCwyMDUxMSwyMDE3MSwzMDExNywzNTgxOSwyMzYyNiwyNDA2MiwzMTU2MywyNjAyMCwzNzMyOSwyMDE3MCwyNzk0MSwzNTE2NywzMjAzOSwzODE4MiwyMDE2NSwzNTg4MCwzNjgyNywzODc3MSwyNjE4NywzMTEw''@;'; + put 'put ''NSwzNjgxNywyODkwOCwyODAyNCwzMjE1MywzMjE1NCwzMjE1NSwzMjE1NiwzMjE1NywzMjE1OCwzMjE1OSwzMjE2MCwzMjE2MSwzMjE2MiwzMjE2MywzMjE2NCwzMjE2NSwzMjE2NywzMjE2OCwzMjE2OSwzMjE3MCwzMjE3MSwzMjE3MiwzMjE3MywzMjE3NSwzMjE3NiwzMjE3NywzMjE3OCwz''@;'; + put 'put ''MjE3OSwzMjE4MCwzMjE4MSwzMjE4MiwzMjE4MywzMjE4NCwzMjE4NSwzMjE4NiwzMjE4NywzMjE4OCwzMjE4OSwzMjE5MCwzMjE5MSwzMjE5MiwzMjE5MywzMjE5NCwzMjE5NSwzMjE5NiwzMjE5NywzMjE5OCwzMjE5OSwzMjIwMCwzMjIwMSwzMjIwMiwzMjIwMywzMjIwNCwzMjIwNSwzMjIw''@;'; + put 'put ''NiwzMjIwNywzMjIwOCwzMjIwOSwzMjIxMCwzMjIxMSwzMjIxMiwzMjIxMywzMjIxNCwzMjIxNSwzMjIxNiwzMjIxNywzMjIxOCwzMjIxOSwzMjIyMCwzMjIyMSwzMjIyMiwzMjIyMywzMjIyNCwzMjIyNSwzMjIyNiwzMjIyNywzMjIyOCwzMjIyOSwzMjIzMCwzMjIzMSwzMjIzMiwzMjIzMywz''@;'; + put 'put ''MjIzNCwzMjIzNSwzMjIzNiwzMjIzNywzMjIzOCwzMjIzOSwzMjI0MCwzMjI0MSwzMjI0MiwzMjI0MywzMjI0NCwzMjI0NSwzMjI0NiwzMjI0NywzMjI0OCwzMjI0OSwzMjI1MCwyMzYxMywyMTE3MCwzMzYwNiwyMDgzNCwzMzU1MCwzMDU1NSwyNjIzMCw0MDEyMCwyMDE0MCwyNDc3OCwzMTkz''@;'; + put 'put ''NCwzMTkyMywzMjQ2MywyMDExNywzNTY4NiwyNjIyMywzOTA0OCwzODc0NSwyMjY1OSwyNTk2NCwzODIzNiwyNDQ1MiwzMDE1MywzODc0MiwzMTQ1NSwzMTQ1NCwyMDkyOCwyODg0NywzMTM4NCwyNTU3OCwzMTM1MCwzMjQxNiwyOTU5MCwzODg5MywyMDAzNywyODc5MiwyMDA2MSwzNzIwMiwy''@;'; + put 'put ''MTQxNywyNTkzNywyNjA4NywzMzI3NiwzMzI4NSwyMTY0NiwyMzYwMSwzMDEwNiwzODgxNiwyNTMwNCwyOTQwMSwzMDE0MSwyMzYyMSwzOTU0NSwzMzczOCwyMzYxNiwyMTYzMiwzMDY5NywyMDAzMCwyNzgyMiwzMjg1OCwyNTI5OCwyNTQ1NCwyNDA0MCwyMDg1NSwzNjMxNywzNjM4MiwzODE5''@;'; + put 'put ''MSwyMDQ2NSwyMTQ3NywyNDgwNywyODg0NCwyMTA5NSwyNTQyNCw0MDUxNSwyMzA3MSwyMDUxOCwzMDUxOSwyMTM2NywzMjQ4MiwyNTczMywyNTg5OSwyNTIyNSwyNTQ5NiwyMDUwMCwyOTIzNywzNTI3MywyMDkxNSwzNTc3NiwzMjQ3NywyMjM0MywzMzc0MCwzODA1NSwyMDg5MSwyMTUzMSwy''@;'; + put 'put ''MzgwMywzMjI1MSwzMjI1MiwzMjI1MywzMjI1NCwzMjI1NSwzMjI1NiwzMjI1NywzMjI1OCwzMjI1OSwzMjI2MCwzMjI2MSwzMjI2MiwzMjI2MywzMjI2NCwzMjI2NSwzMjI2NiwzMjI2NywzMjI2OCwzMjI2OSwzMjI3MCwzMjI3MSwzMjI3MiwzMjI3MywzMjI3NCwzMjI3NSwzMjI3NiwzMjI3''@;'; + put 'put ''NywzMjI3OCwzMjI3OSwzMjI4MCwzMjI4MSwzMjI4MiwzMjI4MywzMjI4NCwzMjI4NSwzMjI4NiwzMjI4NywzMjI4OCwzMjI4OSwzMjI5MCwzMjI5MSwzMjI5MiwzMjI5MywzMjI5NCwzMjI5NSwzMjI5NiwzMjI5NywzMjI5OCwzMjI5OSwzMjMwMCwzMjMwMSwzMjMwMiwzMjMwMywzMjMwNCwz''@;'; + put 'put ''MjMwNSwzMjMwNiwzMjMwNywzMjMwOCwzMjMwOSwzMjMxMCwzMjMxMSwzMjMxMiwzMjMxMywzMjMxNCwzMjMxNiwzMjMxNywzMjMxOCwzMjMxOSwzMjMyMCwzMjMyMiwzMjMyMywzMjMyNCwzMjMyNSwzMjMyNiwzMjMyOCwzMjMyOSwzMjMzMCwzMjMzMSwzMjMzMiwzMjMzMywzMjMzNCwzMjMz''@;'; + put 'put ''NSwzMjMzNiwzMjMzNywzMjMzOCwzMjMzOSwzMjM0MCwzMjM0MSwzMjM0MiwzMjM0MywzMjM0NCwzMjM0NSwzMjM0NiwzMjM0NywzMjM0OCwzMjM0OSwyMDQyNiwzMTQ1OSwyNzk5NCwzNzA4OSwzOTU2NywyMTg4OCwyMTY1NCwyMTM0NSwyMTY3OSwyNDMyMCwyNTU3NywyNjk5OSwyMDk3NSwy''@;'; + put 'put ''NDkzNiwyMTAwMiwyMjU3MCwyMTIwOCwyMjM1MCwzMDczMywzMDQ3NSwyNDI0NywyNDk1MSwzMTk2OCwyNTE3OSwyNTIzOSwyMDEzMCwyODgyMSwzMjc3MSwyNTMzNSwyODkwMCwzODc1MiwyMjM5MSwzMzQ5OSwyNjYwNywyNjg2OSwzMDkzMywzOTA2MywzMTE4NSwyMjc3MSwyMTY4MywyMTQ4''@;'; + put 'put ''NywyODIxMiwyMDgxMSwyMTA1MSwyMzQ1OCwzNTgzOCwzMjk0MywyMTgyNywyMjQzOCwyNDY5MSwyMjM1MywyMTU0OSwzMTM1NCwyNDY1NiwyMzM4MCwyNTUxMSwyNTI0OCwyMTQ3NSwyNTE4NywyMzQ5NSwyNjU0MywyMTc0MSwzMTM5MSwzMzUxMCwzNzIzOSwyNDIxMSwzNTA0NCwyMjg0MCwy''@;'; + put 'put ''MjQ0NiwyNTM1OCwzNjMyOCwzMzAwNywyMjM1OSwzMTYwNywyMDM5MywyNDU1NSwyMzQ4NSwyNzQ1NCwyMTI4MSwzMTU2OCwyOTM3OCwyNjY5NCwzMDcxOSwzMDUxOCwyNjEwMywyMDkxNywyMDExMSwzMDQyMCwyMzc0MywzMTM5NywzMzkwOSwyMjg2MiwzOTc0NSwyMDYwOCwzMjM1MCwzMjM1''@;'; + put 'put ''MSwzMjM1MiwzMjM1MywzMjM1NCwzMjM1NSwzMjM1NiwzMjM1NywzMjM1OCwzMjM1OSwzMjM2MCwzMjM2MSwzMjM2MiwzMjM2MywzMjM2NCwzMjM2NSwzMjM2NiwzMjM2NywzMjM2OCwzMjM2OSwzMjM3MCwzMjM3MSwzMjM3MiwzMjM3MywzMjM3NCwzMjM3NSwzMjM3NiwzMjM3NywzMjM3OCwz''@;'; + put 'put ''MjM3OSwzMjM4MCwzMjM4MSwzMjM4MiwzMjM4MywzMjM4NCwzMjM4NSwzMjM4NywzMjM4OCwzMjM4OSwzMjM5MCwzMjM5MSwzMjM5MiwzMjM5MywzMjM5NCwzMjM5NSwzMjM5NiwzMjM5NywzMjM5OCwzMjM5OSwzMjQwMCwzMjQwMSwzMjQwMiwzMjQwMywzMjQwNCwzMjQwNSwzMjQwNiwzMjQw''@;'; + put 'put ''NywzMjQwOCwzMjQwOSwzMjQxMCwzMjQxMiwzMjQxMywzMjQxNCwzMjQzMCwzMjQzNiwzMjQ0MywzMjQ0NCwzMjQ3MCwzMjQ4NCwzMjQ5MiwzMjUwNSwzMjUyMiwzMjUyOCwzMjU0MiwzMjU2NywzMjU2OSwzMjU3MSwzMjU3MiwzMjU3MywzMjU3NCwzMjU3NSwzMjU3NiwzMjU3NywzMjU3OSwz''@;'; + put 'put ''MjU4MiwzMjU4MywzMjU4NCwzMjU4NSwzMjU4NiwzMjU4NywzMjU4OCwzMjU4OSwzMjU5MCwzMjU5MSwzMjU5NCwzMjU5NSwzOTMwNCwyNDg3MSwyODI5MSwyMjM3MiwyNjExOCwyNTQxNCwyMjI1NiwyNTMyNCwyNTE5MywyNDI3NSwzODQyMCwyMjQwMywyNTI4OSwyMTg5NSwzNDU5MywzMzA5''@;'; + put 'put ''OCwzNjc3MSwyMTg2MiwzMzcxMywyNjQ2OSwzNjE4MiwzNDAxMywyMzE0NiwyNjYzOSwyNTMxOCwzMTcyNiwzODQxNywyMDg0OCwyODU3MiwzNTg4OCwyNTU5NywzNTI3MiwyNTA0MiwzMjUxOCwyODg2NiwyODM4OSwyOTcwMSwyNzAyOCwyOTQzNiwyNDI2NiwzNzA3MCwyNjM5MSwyODAxMCwy''@;'; + put 'put ''NTQzOCwyMTE3MSwyOTI4MiwzMjc2OSwyMDMzMiwyMzAxMywzNzIyNiwyODg4OSwyODA2MSwyMTIwMiwyMDA0OCwzODY0NywzODI1MywzNDE3NCwzMDkyMiwzMjA0NywyMDc2OSwyMjQxOCwyNTc5NCwzMjkwNywzMTg2NywyNzg4MiwyNjg2NSwyNjk3NCwyMDkxOSwyMTQwMCwyNjc5MiwyOTMx''@;'; + put 'put ''Myw0MDY1NCwzMTcyOSwyOTQzMiwzMTE2MywyODQzNSwyOTcwMiwyNjQ0NiwzNzMyNCw0MDEwMCwzMTAzNiwzMzY3MywzMzYyMCwyMTUxOSwyNjY0NywyMDAyOSwyMTM4NSwyMTE2OSwzMDc4MiwyMTM4MiwyMTAzMywyMDYxNiwyMDM2MywyMDQzMiwzMjU5OCwzMjYwMSwzMjYwMywzMjYwNCwz''@;'; + put 'put ''MjYwNSwzMjYwNiwzMjYwOCwzMjYxMSwzMjYxMiwzMjYxMywzMjYxNCwzMjYxNSwzMjYxOSwzMjYyMCwzMjYyMSwzMjYyMywzMjYyNCwzMjYyNywzMjYyOSwzMjYzMCwzMjYzMSwzMjYzMiwzMjYzNCwzMjYzNSwzMjYzNiwzMjYzNywzMjYzOSwzMjY0MCwzMjY0MiwzMjY0MywzMjY0NCwzMjY0''@;'; + put 'put ''NSwzMjY0NiwzMjY0NywzMjY0OCwzMjY0OSwzMjY1MSwzMjY1MywzMjY1NSwzMjY1NiwzMjY1NywzMjY1OCwzMjY1OSwzMjY2MSwzMjY2MiwzMjY2MywzMjY2NCwzMjY2NSwzMjY2NywzMjY2OCwzMjY3MiwzMjY3NCwzMjY3NSwzMjY3NywzMjY3OCwzMjY4MCwzMjY4MSwzMjY4MiwzMjY4Mywz''@;'; + put 'put ''MjY4NCwzMjY4NSwzMjY4NiwzMjY4OSwzMjY5MSwzMjY5MiwzMjY5MywzMjY5NCwzMjY5NSwzMjY5OCwzMjY5OSwzMjcwMiwzMjcwNCwzMjcwNiwzMjcwNywzMjcwOCwzMjcxMCwzMjcxMSwzMjcxMiwzMjcxMywzMjcxNSwzMjcxNywzMjcxOSwzMjcyMCwzMjcyMSwzMjcyMiwzMjcyMywzMjcy''@;'; + put 'put ''NiwzMjcyNywzMjcyOSwzMjczMCwzMjczMSwzMjczMiwzMjczMywzMjczNCwzMjczOCwzMjczOSwzMDE3OCwzMTQzNSwzMTg5MCwyNzgxMywzODU4MiwyMTE0NywyOTgyNywyMTczNywyMDQ1NywzMjg1MiwzMzcxNCwzNjgzMCwzODI1NiwyNDI2NSwyNDYwNCwyODA2MywyNDA4OCwyNTk0Nywz''@;'; + put 'put ''MzA4MCwzODE0MiwyNDY1MSwyODg2MCwzMjQ1MSwzMTkxOCwyMDkzNywyNjc1MywzMTkyMSwzMzM5MSwyMDAwNCwzNjc0MiwzNzMyNywyNjIzOCwyMDE0MiwzNTg0NSwyNTc2OSwzMjg0MiwyMDY5OCwzMDEwMywyOTEzNCwyMzUyNSwzNjc5NywyODUxOCwyMDEwMiwyNTczMCwzODI0MywyNDI3''@;'; + put 'put ''OCwyNjAwOSwyMTAxNSwzNTAxMCwyODg3MiwyMTE1NSwyOTQ1NCwyOTc0NywyNjUxOSwzMDk2NywzODY3OCwyMDAyMCwzNzA1MSw0MDE1OCwyODEwNywyMDk1NSwzNjE2MSwyMTUzMywyNTI5NCwyOTYxOCwzMzc3NywzODY0Niw0MDgzNiwzODA4MywyMDI3OCwzMjY2NiwyMDk0MCwyODc4OSwz''@;'; + put 'put ''ODUxNywyMzcyNSwzOTA0NiwyMTQ3OCwyMDE5NiwyODMxNiwyOTcwNSwyNzA2MCwzMDgyNywzOTMxMSwzMDA0MSwyMTAxNiwzMDI0NCwyNzk2OSwyNjYxMSwyMDg0NSw0MDg1NywzMjg0MywyMTY1NywzMTU0OCwzMTQyMywzMjc0MCwzMjc0MywzMjc0NCwzMjc0NiwzMjc0NywzMjc0OCwzMjc0''@;'; + put 'put ''OSwzMjc1MSwzMjc1NCwzMjc1NiwzMjc1NywzMjc1OCwzMjc1OSwzMjc2MCwzMjc2MSwzMjc2MiwzMjc2NSwzMjc2NiwzMjc2NywzMjc3MCwzMjc3NSwzMjc3NiwzMjc3NywzMjc3OCwzMjc4MiwzMjc4MywzMjc4NSwzMjc4NywzMjc5NCwzMjc5NSwzMjc5NywzMjc5OCwzMjc5OSwzMjgwMSwz''@;'; + put 'put ''MjgwMywzMjgwNCwzMjgxMSwzMjgxMiwzMjgxMywzMjgxNCwzMjgxNSwzMjgxNiwzMjgxOCwzMjgyMCwzMjgyNSwzMjgyNiwzMjgyOCwzMjgzMCwzMjgzMiwzMjgzMywzMjgzNiwzMjgzNywzMjgzOSwzMjg0MCwzMjg0MSwzMjg0NiwzMjg0NywzMjg0OCwzMjg0OSwzMjg1MSwzMjg1MywzMjg1''@;'; + put 'put ''NCwzMjg1NSwzMjg1NywzMjg1OSwzMjg2MCwzMjg2MSwzMjg2MiwzMjg2MywzMjg2NCwzMjg2NSwzMjg2NiwzMjg2NywzMjg2OCwzMjg2OSwzMjg3MCwzMjg3MSwzMjg3MiwzMjg3NSwzMjg3NiwzMjg3NywzMjg3OCwzMjg3OSwzMjg4MCwzMjg4MiwzMjg4MywzMjg4NCwzMjg4NSwzMjg4Niwz''@;'; + put 'put ''Mjg4NywzMjg4OCwzMjg4OSwzMjg5MCwzMjg5MSwzMjg5MiwzMjg5MywzODUzNCwyMjQwNCwyNTMxNCwzODQ3MSwyNzAwNCwyMzA0NCwyNTYwMiwzMTY5OSwyODQzMSwzODQ3NSwzMzQ0NiwyMTM0NiwzOTA0NSwyNDIwOCwyODgwOSwyNTUyMywyMTM0OCwzNDM4Myw0MDA2NSw0MDU5NSwzMDg2''@;'; + put 'put ''MCwzODcwNiwzNjMzNSwzNjE2Miw0MDU3NSwyODUxMCwzMTEwOCwyNDQwNSwzODQ3MCwyNTEzNCwzOTU0MCwyMTUyNSwzODEwOSwyMDM4NywyNjA1MywyMzY1MywyMzY0OSwzMjUzMywzNDM4NSwyNzY5NSwyNDQ1OSwyOTU3NSwyODM4OCwzMjUxMSwyMzc4MiwyNTM3MSwyMzQwMiwyODM5MCwy''@;'; + put 'put ''MTM2NSwyMDA4MSwyNTUwNCwzMDA1MywyNTI0OSwzNjcxOCwyMDI2MiwyMDE3NywyNzgxNCwzMjQzOCwzNTc3MCwzMzgyMSwzNDc0NiwzMjU5OSwzNjkyMywzODE3OSwzMTY1NywzOTU4NSwzNTA2NCwzMzg1MywyNzkzMSwzOTU1OCwzMjQ3NiwyMjkyMCw0MDYzNSwyOTU5NSwzMDcyMSwzNDQz''@;'; + put 'put ''NCwzOTUzMiwzOTU1NCwyMjA0MywyMTUyNywyMjQ3NSwyMDA4MCw0MDYxNCwyMTMzNCwzNjgwOCwzMzAzMywzMDYxMCwzOTMxNCwzNDU0MiwyODM4NSwzNDA2NywyNjM2NCwyNDkzMCwyODQ1OSwzMjg5NCwzMjg5NywzMjg5OCwzMjkwMSwzMjkwNCwzMjkwNiwzMjkwOSwzMjkxMCwzMjkxMSwz''@;'; + put 'put ''MjkxMiwzMjkxMywzMjkxNCwzMjkxNiwzMjkxNywzMjkxOSwzMjkyMSwzMjkyNiwzMjkzMSwzMjkzNCwzMjkzNSwzMjkzNiwzMjk0MCwzMjk0NCwzMjk0NywzMjk0OSwzMjk1MCwzMjk1MiwzMjk1MywzMjk1NSwzMjk2NSwzMjk2NywzMjk2OCwzMjk2OSwzMjk3MCwzMjk3MSwzMjk3NSwzMjk3''@;'; + put 'put ''NiwzMjk3NywzMjk3OCwzMjk3OSwzMjk4MCwzMjk4MSwzMjk4NCwzMjk5MSwzMjk5MiwzMjk5NCwzMjk5NSwzMjk5OCwzMzAwNiwzMzAxMywzMzAxNSwzMzAxNywzMzAxOSwzMzAyMiwzMzAyMywzMzAyNCwzMzAyNSwzMzAyNywzMzAyOCwzMzAyOSwzMzAzMSwzMzAzMiwzMzAzNSwzMzAzNiwz''@;'; + put 'put ''MzA0NSwzMzA0NywzMzA0OSwzMzA1MSwzMzA1MiwzMzA1MywzMzA1NSwzMzA1NiwzMzA1NywzMzA1OCwzMzA1OSwzMzA2MCwzMzA2MSwzMzA2MiwzMzA2MywzMzA2NCwzMzA2NSwzMzA2NiwzMzA2NywzMzA2OSwzMzA3MCwzMzA3MiwzMzA3NSwzMzA3NiwzMzA3NywzMzA3OSwzMzA4MSwzMzA4''@;'; + put 'put ''MiwzMzA4MywzMzA4NCwzMzA4NSwzMzA4NywzNTg4MSwzMzQyNiwzMzU3OSwzMDQ1MCwyNzY2NywyNDUzNywzMzcyNSwyOTQ4MywzMzU0MSwzODE3MCwyNzYxMSwzMDY4MywzODA4NiwyMTM1OSwzMzUzOCwyMDg4MiwyNDEyNSwzNTk4MCwzNjE1MiwyMDA0MCwyOTYxMSwyNjUyMiwyNjc1Nywz''@;'; + put 'put ''NzIzOCwzODY2NSwyOTAyOCwyNzgwOSwzMDQ3MywyMzE4NiwzODIwOSwyNzU5OSwzMjY1NCwyNjE1MSwyMzUwNCwyMjk2OSwyMzE5NCwzODM3NiwzODM5MSwyMDIwNCwzMzgwNCwzMzk0NSwyNzMwOCwzMDQzMSwzODE5MiwyOTQ2NywyNjc5MCwyMzM5MSwzMDUxMSwzNzI3NCwzODc1MywzMTk2''@;'; + put 'put ''NCwzNjg1NSwzNTg2OCwyNDM1NywzMTg1OSwzMTE5MiwzNTI2OSwyNzg1MiwzNDU4OCwyMzQ5NCwyNDEzMCwyNjgyNSwzMDQ5NiwzMjUwMSwyMDg4NSwyMDgxMywyMTE5MywyMzA4MSwzMjUxNywzODc1NCwzMzQ5NSwyNTU1MSwzMDU5NiwzNDI1NiwzMTE4NiwyODIxOCwyNDIxNywyMjkzNywz''@;'; + put 'put ''NDA2NSwyODc4MSwyNzY2NSwyNTI3OSwzMDM5OSwyNTkzNSwyNDc1MSwzODM5NywyNjEyNiwzNDcxOSw0MDQ4MywzODEyNSwyMTUxNywyMTYyOSwzNTg4NCwyNTcyMCwzMzA4OCwzMzA4OSwzMzA5MCwzMzA5MSwzMzA5MiwzMzA5MywzMzA5NSwzMzA5NywzMzEwMSwzMzEwMiwzMzEwMywzMzEw''@;'; + put 'put ''NiwzMzExMCwzMzExMSwzMzExMiwzMzExNSwzMzExNiwzMzExNywzMzExOCwzMzExOSwzMzEyMSwzMzEyMiwzMzEyMywzMzEyNCwzMzEyNiwzMzEyOCwzMzEzMCwzMzEzMSwzMzEzMiwzMzEzNSwzMzEzOCwzMzEzOSwzMzE0MSwzMzE0MiwzMzE0MywzMzE0NCwzMzE1MywzMzE1NSwzMzE1Niwz''@;'; + put 'put ''MzE1NywzMzE1OCwzMzE1OSwzMzE2MSwzMzE2MywzMzE2NCwzMzE2NSwzMzE2NiwzMzE2OCwzMzE3MCwzMzE3MSwzMzE3MiwzMzE3MywzMzE3NCwzMzE3NSwzMzE3NywzMzE3OCwzMzE4MiwzMzE4MywzMzE4NCwzMzE4NSwzMzE4NiwzMzE4OCwzMzE4OSwzMzE5MSwzMzE5MywzMzE5NSwzMzE5''@;'; + put 'put ''NiwzMzE5NywzMzE5OCwzMzE5OSwzMzIwMCwzMzIwMSwzMzIwMiwzMzIwNCwzMzIwNSwzMzIwNiwzMzIwNywzMzIwOCwzMzIwOSwzMzIxMiwzMzIxMywzMzIxNCwzMzIxNSwzMzIyMCwzMzIyMSwzMzIyMywzMzIyNCwzMzIyNSwzMzIyNywzMzIyOSwzMzIzMCwzMzIzMSwzMzIzMiwzMzIzMywz''@;'; + put 'put ''MzIzNCwzMzIzNSwyNTcyMSwzNDMyMSwyNzE2OSwzMzE4MCwzMDk1MiwyNTcwNSwzOTc2NCwyNTI3MywyNjQxMSwzMzcwNywyMjY5Niw0MDY2NCwyNzgxOSwyODQ0OCwyMzUxOCwzODQ3NiwzNTg1MSwyOTI3OSwyNjU3NiwyNTI4NywyOTI4MSwyMDEzNywyMjk4MiwyNzU5NywyMjY3NSwyNjI4''@;'; + put 'put ''NiwyNDE0OSwyMTIxNSwyNDkxNywyNjQwOCwzMDQ0NiwzMDU2NiwyOTI4NywzMTMwMiwyNTM0MywyMTczOCwyMTU4NCwzODA0OCwzNzAyNywyMzA2OCwzMjQzNSwyNzY3MCwyMDAzNSwyMjkwMiwzMjc4NCwyMjg1NiwyMTMzNSwzMDAwNywzODU5MCwyMjIxOCwyNTM3NiwzMzA0MSwyNDcwMCwz''@;'; + put 'put ''ODM5MywyODExOCwyMTYwMiwzOTI5NywyMDg2OSwyMzI3MywzMzAyMSwyMjk1OCwzODY3NSwyMDUyMiwyNzg3NywyMzYxMiwyNTMxMSwyMDMyMCwyMTMxMSwzMzE0NywzNjg3MCwyODM0NiwzNDA5MSwyNTI4OCwyNDE4MCwzMDkxMCwyNTc4MSwyNTQ2NywyNDU2NSwyMzA2NCwzNzI0Nyw0MDQ3''@;'; + put 'put ''OSwyMzYxNSwyNTQyMywzMjgzNCwyMzQyMSwyMTg3MCwzODIxOCwzODIyMSwyODAzNywyNDc0NCwyNjU5MiwyOTQwNiwyMDk1NywyMzQyNSwzMzIzNiwzMzIzNywzMzIzOCwzMzIzOSwzMzI0MCwzMzI0MSwzMzI0MiwzMzI0MywzMzI0NCwzMzI0NSwzMzI0NiwzMzI0NywzMzI0OCwzMzI0OSwz''@;'; + put 'put ''MzI1MCwzMzI1MiwzMzI1MywzMzI1NCwzMzI1NiwzMzI1NywzMzI1OSwzMzI2MiwzMzI2MywzMzI2NCwzMzI2NSwzMzI2NiwzMzI2OSwzMzI3MCwzMzI3MSwzMzI3MiwzMzI3MywzMzI3NCwzMzI3NywzMzI3OSwzMzI4MywzMzI4NywzMzI4OCwzMzI4OSwzMzI5MCwzMzI5MSwzMzI5NCwzMzI5''@;'; + put 'put ''NSwzMzI5NywzMzI5OSwzMzMwMSwzMzMwMiwzMzMwMywzMzMwNCwzMzMwNSwzMzMwNiwzMzMwOSwzMzMxMiwzMzMxNiwzMzMxNywzMzMxOCwzMzMxOSwzMzMyMSwzMzMyNiwzMzMzMCwzMzMzOCwzMzM0MCwzMzM0MSwzMzM0MywzMzM0NCwzMzM0NSwzMzM0NiwzMzM0NywzMzM0OSwzMzM1MCwz''@;'; + put 'put ''MzM1MiwzMzM1NCwzMzM1NiwzMzM1NywzMzM1OCwzMzM2MCwzMzM2MSwzMzM2MiwzMzM2MywzMzM2NCwzMzM2NSwzMzM2NiwzMzM2NywzMzM2OSwzMzM3MSwzMzM3MiwzMzM3MywzMzM3NCwzMzM3NiwzMzM3NywzMzM3OCwzMzM3OSwzMzM4MCwzMzM4MSwzMzM4MiwzMzM4MywzMzM4NSwyNTMx''@;'; + put 'put ''OSwyNzg3MCwyOTI3NSwyNTE5NywzODA2MiwzMjQ0NSwzMzA0MywyNzk4NywyMDg5MiwyNDMyNCwyMjkwMCwyMTE2MiwyNDU5NCwyMjg5OSwyNjI2MiwzNDM4NCwzMDExMSwyNTM4NiwyNTA2MiwzMTk4MywzNTgzNCwyMTczNCwyNzQzMSw0MDQ4NSwyNzU3MiwzNDI2MSwyMTU4OSwyMDU5OCwy''@;'; + put 'put ''NzgxMiwyMTg2NiwzNjI3NiwyOTIyOCwyNDA4NSwyNDU5NywyOTc1MCwyNTI5MywyNTQ5MCwyOTI2MCwyNDQ3MiwyODIyNywyNzk2NiwyNTg1NiwyODUwNCwzMDQyNCwzMDkyOCwzMDQ2MCwzMDAzNiwyMTAyOCwyMTQ2NywyMDA1MSwyNDIyMiwyNjA0OSwzMjgxMCwzMjk4MiwyNTI0MywyMTYz''@;'; + put 'put ''OCwyMTAzMiwyODg0NiwzNDk1NywzNjMwNSwyNzg3MywyMTYyNCwzMjk4NiwyMjUyMSwzNTA2MCwzNjE4MCwzODUwNiwzNzE5NywyMDMyOSwyNzgwMywyMTk0MywzMDQwNiwzMDc2OCwyNTI1NiwyODkyMSwyODU1OCwyNDQyOSwzNDAyOCwyNjg0MiwzMDg0NCwzMTczNSwzMzE5MiwyNjM3OSw0''@;'; + put 'put ''MDUyNywyNTQ0NywzMDg5NiwyMjM4MywzMDczOCwzODcxMywyNTIwOSwyNTI1OSwyMTEyOCwyOTc0OSwyNzYwNywzMzM4NiwzMzM4NywzMzM4OCwzMzM4OSwzMzM5MywzMzM5NywzMzM5OCwzMzM5OSwzMzQwMCwzMzQwMywzMzQwNCwzMzQwOCwzMzQwOSwzMzQxMSwzMzQxMywzMzQxNCwzMzQx''@;'; + put 'put ''NSwzMzQxNywzMzQyMCwzMzQyNCwzMzQyNywzMzQyOCwzMzQyOSwzMzQzMCwzMzQzNCwzMzQzNSwzMzQzOCwzMzQ0MCwzMzQ0MiwzMzQ0MywzMzQ0NywzMzQ1OCwzMzQ2MSwzMzQ2MiwzMzQ2NiwzMzQ2NywzMzQ2OCwzMzQ3MSwzMzQ3MiwzMzQ3NCwzMzQ3NSwzMzQ3NywzMzQ3OCwzMzQ4MSwz''@;'; + put 'put ''MzQ4OCwzMzQ5NCwzMzQ5NywzMzQ5OCwzMzUwMSwzMzUwNiwzMzUxMSwzMzUxMiwzMzUxMywzMzUxNCwzMzUxNiwzMzUxNywzMzUxOCwzMzUyMCwzMzUyMiwzMzUyMywzMzUyNSwzMzUyNiwzMzUyOCwzMzUzMCwzMzUzMiwzMzUzMywzMzUzNCwzMzUzNSwzMzUzNiwzMzU0NiwzMzU0NywzMzU0''@;'; + put 'put ''OSwzMzU1MiwzMzU1NCwzMzU1NSwzMzU1OCwzMzU2MCwzMzU2MSwzMzU2NSwzMzU2NiwzMzU2NywzMzU2OCwzMzU2OSwzMzU3MCwzMzU3MSwzMzU3MiwzMzU3MywzMzU3NCwzMzU3NywzMzU3OCwzMzU4MiwzMzU4NCwzMzU4NiwzMzU5MSwzMzU5NSwzMzU5NywyMTg2MCwzMzA4NiwzMDEzMCwz''@;'; + put 'put ''MDM4MiwyMTMwNSwzMDE3NCwyMDczMSwyMzYxNywzNTY5MiwzMTY4NywyMDU1OSwyOTI1NSwzOTU3NSwzOTEyOCwyODQxOCwyOTkyMiwzMTA4MCwyNTczNSwzMDYyOSwyNTM0MCwzOTA1NywzNjEzOSwyMTY5NywzMjg1NiwyMDA1MCwyMjM3OCwzMzUyOSwzMzgwNSwyNDE3OSwyMDk3MywyOTk0''@;'; + put 'put ''MiwzNTc4MCwyMzYzMSwyMjM2OSwyNzkwMCwzOTA0NywyMzExMCwzMDc3MiwzOTc0OCwzNjg0MywzMTg5MywyMTA3OCwyNTE2OSwzODEzOCwyMDE2NiwzMzY3MCwzMzg4OSwzMzc2OSwzMzk3MCwyMjQ4NCwyNjQyMCwyMjI3NSwyNjIyMiwyODAwNiwzNTg4OSwyNjMzMywyODY4OSwyNjM5OSwy''@;'; + put 'put ''NzQ1MCwyNjY0NiwyNTExNCwyMjk3MSwxOTk3MSwyMDkzMiwyODQyMiwyNjU3OCwyNzc5MSwyMDg1NCwyNjgyNywyMjg1NSwyNzQ5NSwzMDA1NCwyMzgyMiwzMzA0MCw0MDc4NCwyNjA3MSwzMTA0OCwzMTA0MSwzOTU2OSwzNjIxNSwyMzY4MiwyMDA2MiwyMDIyNSwyMTU1MSwyMjg2NSwzMDcz''@;'; + put 'put ''MiwyMjEyMCwyNzY2OCwzNjgwNCwyNDMyMywyNzc3MywyNzg3NSwzNTc1NSwyNTQ4OCwzMzU5OCwzMzU5OSwzMzYwMSwzMzYwMiwzMzYwNCwzMzYwNSwzMzYwOCwzMzYxMCwzMzYxMSwzMzYxMiwzMzYxMywzMzYxNCwzMzYxOSwzMzYyMSwzMzYyMiwzMzYyMywzMzYyNCwzMzYyNSwzMzYyOSwz''@;'; + put 'put ''MzYzNCwzMzY0OCwzMzY0OSwzMzY1MCwzMzY1MSwzMzY1MiwzMzY1MywzMzY1NCwzMzY1NywzMzY1OCwzMzY2MiwzMzY2MywzMzY2NCwzMzY2NSwzMzY2NiwzMzY2NywzMzY2OCwzMzY3MSwzMzY3MiwzMzY3NCwzMzY3NSwzMzY3NiwzMzY3NywzMzY3OSwzMzY4MCwzMzY4MSwzMzY4NCwzMzY4''@;'; + put 'put ''NSwzMzY4NiwzMzY4NywzMzY4OSwzMzY5MCwzMzY5MywzMzY5NSwzMzY5NywzMzY5OCwzMzY5OSwzMzcwMCwzMzcwMSwzMzcwMiwzMzcwMywzMzcwOCwzMzcwOSwzMzcxMCwzMzcxMSwzMzcxNywzMzcyMywzMzcyNiwzMzcyNywzMzczMCwzMzczMSwzMzczMiwzMzczNCwzMzczNiwzMzczNywz''@;'; + put 'put ''MzczOSwzMzc0MSwzMzc0MiwzMzc0NCwzMzc0NSwzMzc0NiwzMzc0NywzMzc0OSwzMzc1MSwzMzc1MywzMzc1NCwzMzc1NSwzMzc1OCwzMzc2MiwzMzc2MywzMzc2NCwzMzc2NiwzMzc2NywzMzc2OCwzMzc3MSwzMzc3MiwzMzc3MywyNDY4OCwyNzk2NSwyOTMwMSwyNTE5MCwzODAzMCwzODA4''@;'; + put 'put ''NSwyMTMxNSwzNjgwMSwzMTYxNCwyMDE5MSwzNTg3OCwyMDA5NCw0MDY2MCwzODA2NSwzODA2NywyMTA2OSwyODUwOCwzNjk2MywyNzk3MywzNTg5MiwyMjU0NSwyMzg4NCwyNzQyNCwyNzQ2NSwyNjUzOCwyMTU5NSwzMzEwOCwzMjY1MiwyMjY4MSwzNDEwMywyNDM3OCwyNTI1MCwyNzIwNywz''@;'; + put 'put ''ODIwMSwyNTk3MCwyNDcwOCwyNjcyNSwzMDYzMSwyMDA1MiwyMDM5MiwyNDAzOSwzODgwOCwyNTc3MiwzMjcyOCwyMzc4OSwyMDQzMSwzMTM3MywyMDk5OSwzMzU0MCwxOTk4OCwyNDYyMywzMTM2MywzODA1NCwyMDQwNSwyMDE0NiwzMTIwNiwyOTc0OCwyMTIyMCwzMzQ2NSwyNTgxMCwzMTE2''@;'; + put 'put ''NSwyMzUxNywyNzc3NywzODczOCwzNjczMSwyNzY4MiwyMDU0MiwyMTM3NSwyODE2NSwyNTgwNiwyNjIyOCwyNzY5NiwyNDc3MywzOTAzMSwzNTgzMSwyNDE5OCwyOTc1NiwzMTM1MSwzMTE3OSwxOTk5MiwzNzA0MSwyOTY5OSwyNzcxNCwyMjIzNCwzNzE5NSwyNzg0NSwzNjIzNSwyMTMwNiwz''@;'; + put 'put ''NDUwMiwyNjM1NCwzNjUyNywyMzYyNCwzOTUzNywyODE5MiwzMzc3NCwzMzc3NSwzMzc3OSwzMzc4MCwzMzc4MSwzMzc4MiwzMzc4MywzMzc4NiwzMzc4NywzMzc4OCwzMzc5MCwzMzc5MSwzMzc5MiwzMzc5NCwzMzc5NywzMzc5OSwzMzgwMCwzMzgwMSwzMzgwMiwzMzgwOCwzMzgxMCwzMzgx''@;'; + put 'put ''MSwzMzgxMiwzMzgxMywzMzgxNCwzMzgxNSwzMzgxNywzMzgxOCwzMzgxOSwzMzgyMiwzMzgyMywzMzgyNCwzMzgyNSwzMzgyNiwzMzgyNywzMzgzMywzMzgzNCwzMzgzNSwzMzgzNiwzMzgzNywzMzgzOCwzMzgzOSwzMzg0MCwzMzg0MiwzMzg0MywzMzg0NCwzMzg0NSwzMzg0NiwzMzg0Nywz''@;'; + put 'put ''Mzg0OSwzMzg1MCwzMzg1MSwzMzg1NCwzMzg1NSwzMzg1NiwzMzg1NywzMzg1OCwzMzg1OSwzMzg2MCwzMzg2MSwzMzg2MywzMzg2NCwzMzg2NSwzMzg2NiwzMzg2NywzMzg2OCwzMzg2OSwzMzg3MCwzMzg3MSwzMzg3MiwzMzg3NCwzMzg3NSwzMzg3NiwzMzg3NywzMzg3OCwzMzg4MCwzMzg4''@;'; + put 'put ''NSwzMzg4NiwzMzg4NywzMzg4OCwzMzg5MCwzMzg5MiwzMzg5MywzMzg5NCwzMzg5NSwzMzg5NiwzMzg5OCwzMzkwMiwzMzkwMywzMzkwNCwzMzkwNiwzMzkwOCwzMzkxMSwzMzkxMywzMzkxNSwzMzkxNiwyMTQ2MiwyMzA5NCw0MDg0MywzNjI1OSwyMTQzNSwyMjI4MCwzOTA3OSwyNjQzNSwz''@;'; + put 'put ''NzI3NSwyNzg0OSwyMDg0MCwzMDE1NCwyNTMzMSwyOTM1NiwyMTA0OCwyMTE0OSwzMjU3MCwyODgyMCwzMDI2NCwyMTM2NCw0MDUyMiwyNzA2MywzMDgzMCwzODU5MiwzNTAzMywzMjY3NiwyODk4MiwyOTEyMywyMDg3MywyNjU3OSwyOTkyNCwyMjc1NiwyNTg4MCwyMjE5OSwzNTc1MywzOTI4''@;'; + put 'put ''NiwyNTIwMCwzMjQ2OSwyNDgyNSwyODkwOSwyMjc2NCwyMDE2MSwyMDE1NCwyNDUyNSwzODg4NywyMDIxOSwzNTc0OCwyMDk5NSwyMjkyMiwzMjQyNywyNTE3MiwyMDE3MywyNjA4NSwyNTEwMiwzMzU5MiwzMzk5MywzMzYzNSwzNDcwMSwyOTA3NiwyODM0MiwyMzQ4MSwzMjQ2NiwyMDg4Nywy''@;'; + put 'put ''NTU0NSwyNjU4MCwzMjkwNSwzMzU5MywzNDgzNywyMDc1NCwyMzQxOCwyMjkxNCwzNjc4NSwyMDA4MywyNzc0MSwyMDgzNywzNTEwOSwzNjcxOSwzODQ0NiwzNDEyMiwyOTc5MCwzODE2MCwzODM4NCwyODA3MCwzMzUwOSwyNDM2OSwyNTc0NiwyNzkyMiwzMzgzMiwzMzEzNCw0MDEzMSwyMjYy''@;'; + put 'put ''MiwzNjE4NywxOTk3NywyMTQ0MSwzMzkxNywzMzkxOCwzMzkxOSwzMzkyMCwzMzkyMSwzMzkyMywzMzkyNCwzMzkyNSwzMzkyNiwzMzkzMCwzMzkzMywzMzkzNSwzMzkzNiwzMzkzNywzMzkzOCwzMzkzOSwzMzk0MCwzMzk0MSwzMzk0MiwzMzk0NCwzMzk0NiwzMzk0NywzMzk0OSwzMzk1MCwz''@;'; + put 'put ''Mzk1MSwzMzk1MiwzMzk1NCwzMzk1NSwzMzk1NiwzMzk1NywzMzk1OCwzMzk1OSwzMzk2MCwzMzk2MSwzMzk2MiwzMzk2MywzMzk2NCwzMzk2NSwzMzk2NiwzMzk2OCwzMzk2OSwzMzk3MSwzMzk3MywzMzk3NCwzMzk3NSwzMzk3OSwzMzk4MCwzMzk4MiwzMzk4NCwzMzk4NiwzMzk4NywzMzk4''@;'; + put 'put ''OSwzMzk5MCwzMzk5MSwzMzk5MiwzMzk5NSwzMzk5NiwzMzk5OCwzMzk5OSwzNDAwMiwzNDAwNCwzNDAwNSwzNDAwNywzNDAwOCwzNDAwOSwzNDAxMCwzNDAxMSwzNDAxMiwzNDAxNCwzNDAxNywzNDAxOCwzNDAyMCwzNDAyMywzNDAyNCwzNDAyNSwzNDAyNiwzNDAyNywzNDAyOSwzNDAzMCwz''@;'; + put 'put ''NDAzMSwzNDAzMywzNDAzNCwzNDAzNSwzNDAzNiwzNDAzNywzNDAzOCwzNDAzOSwzNDA0MCwzNDA0MSwzNDA0MiwzNDA0MywzNDA0NSwzNDA0NiwzNDA0OCwzNDA0OSwzNDA1MCwyMDI1NCwyNTk1NSwyNjcwNSwyMTk3MSwyMDAwNywyNTYyMCwzOTU3OCwyNTE5NSwyMzIzNCwyOTc5MSwzMzM5''@;'; + put 'put ''NCwyODA3MywyNjg2MiwyMDcxMSwzMzY3OCwzMDcyMiwyNjQzMiwyMTA0OSwyNzgwMSwzMjQzMywyMDY2NywyMTg2MSwyOTAyMiwzMTU3OSwyNjE5NCwyOTY0MiwzMzUxNSwyNjQ0MSwyMzY2NSwyMTAyNCwyOTA1MywzNDkyMywzODM3OCwzODQ4NSwyNTc5NywzNjE5MywzMzIwMywyMTg5Miwy''@;'; + put 'put ''NzczMywyNTE1OSwzMjU1OCwyMjY3NCwyMDI2MCwyMTgzMCwzNjE3NSwyNjE4OCwxOTk3OCwyMzU3OCwzNTA1OSwyNjc4NiwyNTQyMiwzMTI0NSwyODkwMywzMzQyMSwyMTI0MiwzODkwMiwyMzU2OSwyMTczNiwzNzA0NSwzMjQ2MSwyMjg4MiwzNjE3MCwzNDUwMywzMzI5MiwzMzI5MywzNjE5''@;'; + put 'put ''OCwyNTY2OCwyMzU1NiwyNDkxMywyODA0MSwzMTAzOCwzNTc3NCwzMDc3NSwzMDAwMywyMTYyNywyMDI4MCwzNjUyMywyODE0NSwyMzA3MiwzMjQ1MywzMTA3MCwyNzc4NCwyMzQ1NywyMzE1OCwyOTk3OCwzMjk1OCwyNDkxMCwyODE4MywyMjc2OCwyOTk4MywyOTk4OSwyOTI5OCwyMTMxOSwz''@;'; + put 'put ''MjQ5OSwzNDA1MSwzNDA1MiwzNDA1MywzNDA1NCwzNDA1NSwzNDA1NiwzNDA1NywzNDA1OCwzNDA1OSwzNDA2MSwzNDA2MiwzNDA2MywzNDA2NCwzNDA2NiwzNDA2OCwzNDA2OSwzNDA3MCwzNDA3MiwzNDA3MywzNDA3NSwzNDA3NiwzNDA3NywzNDA3OCwzNDA4MCwzNDA4MiwzNDA4MywzNDA4''@;'; + put 'put ''NCwzNDA4NSwzNDA4NiwzNDA4NywzNDA4OCwzNDA4OSwzNDA5MCwzNDA5MywzNDA5NCwzNDA5NSwzNDA5NiwzNDA5NywzNDA5OCwzNDA5OSwzNDEwMCwzNDEwMSwzNDEwMiwzNDExMCwzNDExMSwzNDExMiwzNDExMywzNDExNCwzNDExNiwzNDExNywzNDExOCwzNDExOSwzNDEyMywzNDEyNCwz''@;'; + put 'put ''NDEyNSwzNDEyNiwzNDEyNywzNDEyOCwzNDEyOSwzNDEzMCwzNDEzMSwzNDEzMiwzNDEzMywzNDEzNSwzNDEzNiwzNDEzOCwzNDEzOSwzNDE0MCwzNDE0MSwzNDE0MywzNDE0NCwzNDE0NSwzNDE0NiwzNDE0NywzNDE0OSwzNDE1MCwzNDE1MSwzNDE1MywzNDE1NCwzNDE1NSwzNDE1NiwzNDE1''@;'; + put 'put ''NywzNDE1OCwzNDE1OSwzNDE2MCwzNDE2MSwzNDE2MywzNDE2NSwzNDE2NiwzNDE2NywzNDE2OCwzNDE3MiwzNDE3MywzNDE3NSwzNDE3NiwzNDE3NywzMDQ2NSwzMDQyNywyMTA5NywzMjk4OCwyMjMwNywyNDA3MiwyMjgzMywyOTQyMiwyNjA0NSwyODI4NywzNTc5OSwyMzYwOCwzNDQxNywy''@;'; + put 'put ''MTMxMywzMDcwNywyNTM0MiwyNjEwMiwyMDE2MCwzOTEzNSwzNDQzMiwyMzQ1NCwzNTc4MiwyMTQ5MCwzMDY5MCwyMDM1MSwyMzYzMCwzOTU0MiwyMjk4NywyNDMzNSwzMTAzNCwyMjc2MywxOTk5MCwyNjYyMywyMDEwNywyNTMyNSwzNTQ3NSwzNjg5MywyMTE4MywyNjE1OSwyMTk4MCwyMjEy''@;'; + put 'put ''NCwzNjg2NiwyMDE4MSwyMDM2NSwzNzMyMiwzOTI4MCwyNzY2MywyNDA2NiwyNDY0MywyMzQ2MCwzNTI3MCwzNTc5NywyNTkxMCwyNTE2MywzOTMxOCwyMzQzMiwyMzU1MSwyNTQ4MCwyMTgwNiwyMTQ2MywzMDI0NiwyMDg2MSwzNDA5MiwyNjUzMCwyNjgwMywyNzUzMCwyNTIzNCwzNjc1NSwy''@;'; + put 'put ''MTQ2MCwzMzI5OCwyODExMywzMDA5NSwyMDA3MCwzNjE3NCwyMzQwOCwyOTA4NywzNDIyMywyNjI1NywyNjMyOSwzMjYyNiwzNDU2MCw0MDY1Myw0MDczNiwyMzY0NiwyNjQxNSwzNjg0OCwyNjY0MSwyNjQ2MywyNTEwMSwzMTQ0NiwyMjY2MSwyNDI0NiwyNTk2OCwyODQ2NSwzNDE3OCwzNDE3''@;'; + put 'put ''OSwzNDE4MiwzNDE4NCwzNDE4NSwzNDE4NiwzNDE4NywzNDE4OCwzNDE4OSwzNDE5MCwzNDE5MiwzNDE5MywzNDE5NCwzNDE5NSwzNDE5NiwzNDE5NywzNDE5OCwzNDE5OSwzNDIwMCwzNDIwMSwzNDIwMiwzNDIwNSwzNDIwNiwzNDIwNywzNDIwOCwzNDIwOSwzNDIxMCwzNDIxMSwzNDIxMywz''@;'; + put 'put ''NDIxNCwzNDIxNSwzNDIxNywzNDIxOSwzNDIyMCwzNDIyMSwzNDIyNSwzNDIyNiwzNDIyNywzNDIyOCwzNDIyOSwzNDIzMCwzNDIzMiwzNDIzNCwzNDIzNSwzNDIzNiwzNDIzNywzNDIzOCwzNDIzOSwzNDI0MCwzNDI0MiwzNDI0MywzNDI0NCwzNDI0NSwzNDI0NiwzNDI0NywzNDI0OCwzNDI1''@;'; + put 'put ''MCwzNDI1MSwzNDI1MiwzNDI1MywzNDI1NCwzNDI1NywzNDI1OCwzNDI2MCwzNDI2MiwzNDI2MywzNDI2NCwzNDI2NSwzNDI2NiwzNDI2NywzNDI2OSwzNDI3MCwzNDI3MSwzNDI3MiwzNDI3MywzNDI3NCwzNDI3NSwzNDI3NywzNDI3OCwzNDI3OSwzNDI4MCwzNDI4MiwzNDI4MywzNDI4NCwz''@;'; + put 'put ''NDI4NSwzNDI4NiwzNDI4NywzNDI4OCwzNDI4OSwzNDI5MCwzNDI5MSwzNDI5MiwzNDI5MywzNDI5NCwzNDI5NSwzNDI5NiwyNDY2MSwyMTA0NywzMjc4MSwyNTY4NCwzNDkyOCwyOTk5MywyNDA2OSwyNjY0MywyNTMzMiwzODY4NCwyMTQ1MiwyOTI0NSwzNTg0MSwyNzcwMCwzMDU2MSwzMTI0''@;'; + put 'put ''NiwyMTU1MCwzMDYzNiwzOTAzNCwzMzMwOCwzNTgyOCwzMDgwNSwyNjM4OCwyODg2NSwyNjAzMSwyNTc0OSwyMjA3MCwyNDYwNSwzMTE2OSwyMTQ5NiwxOTk5NywyNzUxNSwzMjkwMiwyMzU0NiwyMTk4NywyMjIzNSwyMDI4MiwyMDI4NCwzOTI4MiwyNDA1MSwyNjQ5NCwzMjgyNCwyNDU3OCwz''@;'; + put 'put ''OTA0MiwzNjg2NSwyMzQzNSwzNTc3MiwzNTgyOSwyNTYyOCwzMzM2OCwyNTgyMiwyMjAxMywzMzQ4NywzNzIyMSwyMDQzOSwzMjAzMiwzNjg5NSwzMTkwMywyMDcyMywyMjYwOSwyODMzNSwyMzQ4NywzNTc4NSwzMjg5OSwzNzI0MCwzMzk0OCwzMTYzOSwzNDQyOSwzODUzOSwzODU0MywzMjQ4''@;'; + put 'put ''NSwzOTYzNSwzMDg2MiwyMzY4MSwzMTMxOSwzNjkzMCwzODU2NywzMTA3MSwyMzM4NSwyNTQzOSwzMTQ5OSwzNDAwMSwyNjc5NywyMTc2NiwzMjU1MywyOTcxMiwzMjAzNCwzODE0NSwyNTE1MiwyMjYwNCwyMDE4MiwyMzQyNywyMjkwNSwyMjYxMiwzNDI5NywzNDI5OCwzNDMwMCwzNDMwMSwz''@;'; + put 'put ''NDMwMiwzNDMwNCwzNDMwNSwzNDMwNiwzNDMwNywzNDMwOCwzNDMxMCwzNDMxMSwzNDMxMiwzNDMxMywzNDMxNCwzNDMxNSwzNDMxNiwzNDMxNywzNDMxOCwzNDMxOSwzNDMyMCwzNDMyMiwzNDMyMywzNDMyNCwzNDMyNSwzNDMyNywzNDMyOCwzNDMyOSwzNDMzMCwzNDMzMSwzNDMzMiwzNDMz''@;'; + put 'put ''MywzNDMzNCwzNDMzNSwzNDMzNiwzNDMzNywzNDMzOCwzNDMzOSwzNDM0MCwzNDM0MSwzNDM0MiwzNDM0NCwzNDM0NiwzNDM0NywzNDM0OCwzNDM0OSwzNDM1MCwzNDM1MSwzNDM1MiwzNDM1MywzNDM1NCwzNDM1NSwzNDM1NiwzNDM1NywzNDM1OCwzNDM1OSwzNDM2MSwzNDM2MiwzNDM2Mywz''@;'; + put 'put ''NDM2NSwzNDM2NiwzNDM2NywzNDM2OCwzNDM2OSwzNDM3MCwzNDM3MSwzNDM3MiwzNDM3MywzNDM3NCwzNDM3NSwzNDM3NiwzNDM3NywzNDM3OCwzNDM3OSwzNDM4MCwzNDM4NiwzNDM4NywzNDM4OSwzNDM5MCwzNDM5MSwzNDM5MiwzNDM5MywzNDM5NSwzNDM5NiwzNDM5NywzNDM5OSwzNDQw''@;'; + put 'put ''MCwzNDQwMSwzNDQwMywzNDQwNCwzNDQwNSwzNDQwNiwzNDQwNywzNDQwOCwzNDQwOSwzNDQxMCwyOTU0OSwyNTM3NCwzNjQyNywzNjM2NywzMjk3NCwzMzQ5MiwyNTI2MCwyMTQ4OCwyNzg4OCwzNzIxNCwyMjgyNiwyNDU3NywyNzc2MCwyMjM0OSwyNTY3NCwzNjEzOCwzMDI1MSwyODM5Mywy''@;'; + put 'put ''MjM2MywyNzI2NCwzMDE5MiwyODUyNSwzNTg4NSwzNTg0OCwyMjM3NCwyNzYzMSwzNDk2MiwzMDg5OSwyNTUwNiwyMTQ5NywyODg0NSwyNzc0OCwyMjYxNiwyNTY0MiwyMjUzMCwyNjg0OCwzMzE3OSwyMTc3NiwzMTk1OCwyMDUwNCwzNjUzOCwyODEwOCwzNjI1NSwyODkwNywyNTQ4NywyODA1''@;'; + put 'put ''OSwyODM3MiwzMjQ4NiwzMzc5NiwyNjY5MSwzNjg2NywyODEyMCwzODUxOCwzNTc1MiwyMjg3MSwyOTMwNSwzNDI3NiwzMzE1MCwzMDE0MCwzNTQ2NiwyNjc5OSwyMTA3NiwzNjM4NiwzODE2MSwyNTU1MiwzOTA2NCwzNjQyMCwyMTg4NCwyMDMwNywyNjM2NywyMjE1OSwyNDc4OSwyODA1Mywy''@;'; + put 'put ''MTA1OSwyMzYyNSwyMjgyNSwyODE1NSwyMjYzNSwzZTQsMjk5ODAsMjQ2ODQsMzMzMDAsMzMwOTQsMjUzNjEsMjY0NjUsMzY4MzQsMzA1MjIsMzYzMzksMzYxNDgsMzgwODEsMjQwODYsMjEzODEsMjE1NDgsMjg4NjcsMzQ0MTMsMzQ0MTUsMzQ0MTYsMzQ0MTgsMzQ0MTksMzQ0MjAsMzQ0MjEs''@;'; + put 'put ''MzQ0MjIsMzQ0MjMsMzQ0MjQsMzQ0MzUsMzQ0MzYsMzQ0MzcsMzQ0MzgsMzQ0MzksMzQ0NDAsMzQ0NDEsMzQ0NDYsMzQ0NDcsMzQ0NDgsMzQ0NDksMzQ0NTAsMzQ0NTIsMzQ0NTQsMzQ0NTUsMzQ0NTYsMzQ0NTcsMzQ0NTgsMzQ0NTksMzQ0NjIsMzQ0NjMsMzQ0NjQsMzQ0NjUsMzQ0NjYsMzQ0''@;'; + put 'put ''NjksMzQ0NzAsMzQ0NzUsMzQ0NzcsMzQ0NzgsMzQ0ODIsMzQ0ODMsMzQ0ODcsMzQ0ODgsMzQ0ODksMzQ0OTEsMzQ0OTIsMzQ0OTMsMzQ0OTQsMzQ0OTUsMzQ0OTcsMzQ0OTgsMzQ0OTksMzQ1MDEsMzQ1MDQsMzQ1MDgsMzQ1MDksMzQ1MTQsMzQ1MTUsMzQ1MTcsMzQ1MTgsMzQ1MTksMzQ1MjIs''@;'; + put 'put ''MzQ1MjQsMzQ1MjUsMzQ1MjgsMzQ1MjksMzQ1MzAsMzQ1MzEsMzQ1MzMsMzQ1MzQsMzQ1MzUsMzQ1MzYsMzQ1MzgsMzQ1MzksMzQ1NDAsMzQ1NDMsMzQ1NDksMzQ1NTAsMzQ1NTEsMzQ1NTQsMzQ1NTUsMzQ1NTYsMzQ1NTcsMzQ1NTksMzQ1NjEsMzQ1NjQsMzQ1NjUsMzQ1NjYsMzQ1NzEsMzQ1''@;'; + put 'put ''NzIsMzQ1NzQsMzQ1NzUsMzQ1NzYsMzQ1NzcsMzQ1ODAsMzQ1ODIsMjc3MTIsMjQzMTEsMjA1NzIsMjAxNDEsMjQyMzcsMjU0MDIsMzMzNTEsMzY4OTAsMjY3MDQsMzcyMzAsMzA2NDMsMjE1MTYsMzgxMDgsMjQ0MjAsMzE0NjEsMjY3NDIsMjU0MTMsMzE1NzAsMzI0NzksMzAxNzEsMjA1OTks''@;'; + put 'put ''MjUyMzcsMjI4MzYsMzY4NzksMjA5ODQsMzExNzEsMzEzNjEsMjIyNzAsMjQ0NjYsMzY4ODQsMjgwMzQsMjM2NDgsMjIzMDMsMjE1MjAsMjA4MjAsMjgyMzcsMjIyNDIsMjU1MTIsMzkwNTksMzMxNTEsMzQ1ODEsMzUxMTQsMzY4NjQsMjE1MzQsMjM2NjMsMzMyMTYsMjUzMDIsMjUxNzYsMzMw''@;'; + put 'put ''NzMsNDA1MDEsMzg0NjQsMzk1MzQsMzk1NDgsMjY5MjUsMjI5NDksMjUyOTksMjE4MjIsMjUzNjYsMjE3MDMsMzQ1MjEsMjc5NjQsMjMwNDMsMjk5MjYsMzQ5NzIsMjc0OTgsMjI4MDYsMzU5MTYsMjQzNjcsMjgyODYsMjk2MDksMzkwMzcsMjAwMjQsMjg5MTksMjM0MzYsMzA4NzEsMjU0MDUs''@;'; + put 'put ''MjYyMDIsMzAzNTgsMjQ3NzksMjM0NTEsMjMxMTMsMTk5NzUsMzMxMDksMjc3NTQsMjk1NzksMjAxMjksMjY1MDUsMzI1OTMsMjQ0NDgsMjYxMDYsMjYzOTUsMjQ1MzYsMjI5MTYsMjMwNDEsMzQ1ODUsMzQ1ODcsMzQ1ODksMzQ1OTEsMzQ1OTIsMzQ1OTYsMzQ1OTgsMzQ1OTksMzQ2MDAsMzQ2''@;'; + put 'put ''MDIsMzQ2MDMsMzQ2MDQsMzQ2MDUsMzQ2MDcsMzQ2MDgsMzQ2MTAsMzQ2MTEsMzQ2MTMsMzQ2MTQsMzQ2MTYsMzQ2MTcsMzQ2MTgsMzQ2MjAsMzQ2MjEsMzQ2MjQsMzQ2MjUsMzQ2MjYsMzQ2MjcsMzQ2MjgsMzQ2MjksMzQ2MzAsMzQ2MzQsMzQ2MzUsMzQ2MzcsMzQ2MzksMzQ2NDAsMzQ2NDEs''@;'; + put 'put ''MzQ2NDIsMzQ2NDQsMzQ2NDUsMzQ2NDYsMzQ2NDgsMzQ2NTAsMzQ2NTEsMzQ2NTIsMzQ2NTMsMzQ2NTQsMzQ2NTUsMzQ2NTcsMzQ2NTgsMzQ2NjIsMzQ2NjMsMzQ2NjQsMzQ2NjUsMzQ2NjYsMzQ2NjcsMzQ2NjgsMzQ2NjksMzQ2NzEsMzQ2NzMsMzQ2NzQsMzQ2NzUsMzQ2NzcsMzQ2NzksMzQ2''@;'; + put 'put ''ODAsMzQ2ODEsMzQ2ODIsMzQ2ODcsMzQ2ODgsMzQ2ODksMzQ2OTIsMzQ2OTQsMzQ2OTUsMzQ2OTcsMzQ2OTgsMzQ3MDAsMzQ3MDIsMzQ3MDMsMzQ3MDQsMzQ3MDUsMzQ3MDYsMzQ3MDgsMzQ3MDksMzQ3MTAsMzQ3MTIsMzQ3MTMsMzQ3MTQsMzQ3MTUsMzQ3MTYsMzQ3MTcsMzQ3MTgsMzQ3MjAs''@;'; + put 'put ''MzQ3MjEsMzQ3MjIsMzQ3MjMsMzQ3MjQsMjQwMTMsMjQ0OTQsMjEzNjEsMzg4ODYsMzY4MjksMjY2OTMsMjIyNjAsMjE4MDcsMjQ3OTksMjAwMjYsMjg0OTMsMzI1MDAsMzM0NzksMzM4MDYsMjI5OTYsMjAyNTUsMjAyNjYsMjM2MTQsMzI0MjgsMjY0MTAsMzQwNzQsMjE2MTksMzAwMzEsMzI5''@;'; + put 'put ''NjMsMjE4OTAsMzk3NTksMjAzMDEsMjgyMDUsMzU4NTksMjM1NjEsMjQ5NDQsMjEzNTUsMzAyMzksMjgyMDEsMzQ0NDIsMjU5OTEsMzgzOTUsMzI0NDEsMjE1NjMsMzEyODMsMzIwMTAsMzgzODIsMjE5ODUsMzI3MDUsMjk5MzQsMjUzNzMsMzQ1ODMsMjgwNjUsMzEzODksMjUxMDUsMjYwMTcs''@;'; + put 'put ''MjEzNTEsMjU1NjksMjc3NzksMjQwNDMsMjE1OTYsMzgwNTYsMjAwNDQsMjc3NDUsMzU4MjAsMjM2MjcsMjYwODAsMzM0MzYsMjY3OTEsMjE1NjYsMjE1NTYsMjc1OTUsMjc0OTQsMjAxMTYsMjU0MTAsMjEzMjAsMzMzMTAsMjAyMzcsMjAzOTgsMjIzNjYsMjUwOTgsMzg2NTQsMjYyMTIsMjky''@;'; + put 'put ''ODksMjEyNDcsMjExNTMsMjQ3MzUsMzU4MjMsMjYxMzIsMjkwODEsMjY1MTIsMzUxOTksMzA4MDIsMzA3MTcsMjYyMjQsMjIwNzUsMjE1NjAsMzgxNzcsMjkzMDYsMzQ3MjUsMzQ3MjYsMzQ3MjcsMzQ3MjksMzQ3MzAsMzQ3MzQsMzQ3MzYsMzQ3MzcsMzQ3MzgsMzQ3NDAsMzQ3NDIsMzQ3NDMs''@;'; + put 'put ''MzQ3NDQsMzQ3NDUsMzQ3NDcsMzQ3NDgsMzQ3NTAsMzQ3NTEsMzQ3NTMsMzQ3NTQsMzQ3NTUsMzQ3NTYsMzQ3NTcsMzQ3NTksMzQ3NjAsMzQ3NjEsMzQ3NjQsMzQ3NjUsMzQ3NjYsMzQ3NjcsMzQ3NjgsMzQ3NzIsMzQ3NzMsMzQ3NzQsMzQ3NzUsMzQ3NzYsMzQ3NzcsMzQ3NzgsMzQ3ODAsMzQ3''@;'; + put 'put ''ODEsMzQ3ODIsMzQ3ODMsMzQ3ODUsMzQ3ODYsMzQ3ODcsMzQ3ODgsMzQ3OTAsMzQ3OTEsMzQ3OTIsMzQ3OTMsMzQ3OTUsMzQ3OTYsMzQ3OTcsMzQ3OTksMzQ4MDAsMzQ4MDEsMzQ4MDIsMzQ4MDMsMzQ4MDQsMzQ4MDUsMzQ4MDYsMzQ4MDcsMzQ4MDgsMzQ4MTAsMzQ4MTEsMzQ4MTIsMzQ4MTMs''@;'; + put 'put ''MzQ4MTUsMzQ4MTYsMzQ4MTcsMzQ4MTgsMzQ4MjAsMzQ4MjEsMzQ4MjIsMzQ4MjMsMzQ4MjQsMzQ4MjUsMzQ4MjcsMzQ4MjgsMzQ4MjksMzQ4MzAsMzQ4MzEsMzQ4MzIsMzQ4MzMsMzQ4MzQsMzQ4MzYsMzQ4MzksMzQ4NDAsMzQ4NDEsMzQ4NDIsMzQ4NDQsMzQ4NDUsMzQ4NDYsMzQ4NDcsMzQ4''@;'; + put 'put ''NDgsMzQ4NTEsMzEyMzIsMjQ2ODcsMjQwNzYsMjQ3MTMsMzMxODEsMjI4MDUsMjQ3OTYsMjkwNjAsMjg5MTEsMjgzMzAsMjc3MjgsMjkzMTIsMjcyNjgsMzQ5ODksMjQxMDksMjAwNjQsMjMyMTksMjE5MTYsMzgxMTUsMjc5MjcsMzE5OTUsMzg1NTMsMjUxMDMsMzI0NTQsMzA2MDYsMzQ0MzAs''@;'; + put 'put ''MjEyODMsMzg2ODYsMzY3NTgsMjYyNDcsMjM3NzcsMjAzODQsMjk0MjEsMTk5NzksMjE0MTQsMjI3OTksMjE1MjMsMjU0NzIsMzgxODQsMjA4MDgsMjAxODUsNDAwOTIsMzI0MjAsMjE2ODgsMzYxMzIsMzQ5MDAsMzMzMzUsMzgzODYsMjgwNDYsMjQzNTgsMjMyNDQsMjYxNzQsMzg1MDUsMjk2''@;'; + put 'put ''MTYsMjk0ODYsMjE0MzksMzMxNDYsMzkzMDEsMzI2NzMsMjM0NjYsMzg1MTksMzg0ODAsMzI0NDcsMzA0NTYsMjE0MTAsMzgyNjIsMzkzMjEsMzE2NjUsMzUxNDAsMjgyNDgsMjAwNjUsMzI3MjQsMzEwNzcsMzU4MTQsMjQ4MTksMjE3MDksMjAxMzksMzkwMzMsMjQwNTUsMjcyMzMsMjA2ODcs''@;'; + put 'put ''MjE1MjEsMzU5MzcsMzM4MzEsMzA4MTMsMzg2NjAsMjEwNjYsMjE3NDIsMjIxNzksMzgxNDQsMjgwNDAsMjM0NzcsMjgxMDIsMjYxOTUsMzQ4NTIsMzQ4NTMsMzQ4NTQsMzQ4NTUsMzQ4NTYsMzQ4NTcsMzQ4NTgsMzQ4NTksMzQ4NjAsMzQ4NjEsMzQ4NjIsMzQ4NjMsMzQ4NjQsMzQ4NjUsMzQ4''@;'; + put 'put ''NjcsMzQ4NjgsMzQ4NjksMzQ4NzAsMzQ4NzEsMzQ4NzIsMzQ4NzQsMzQ4NzUsMzQ4NzcsMzQ4NzgsMzQ4NzksMzQ4ODEsMzQ4ODIsMzQ4ODMsMzQ4ODYsMzQ4ODcsMzQ4ODgsMzQ4ODksMzQ4OTAsMzQ4OTEsMzQ4OTQsMzQ4OTUsMzQ4OTYsMzQ4OTcsMzQ4OTgsMzQ4OTksMzQ5MDEsMzQ5MDIs''@;'; + put 'put ''MzQ5MDQsMzQ5MDYsMzQ5MDcsMzQ5MDgsMzQ5MDksMzQ5MTAsMzQ5MTEsMzQ5MTIsMzQ5MTgsMzQ5MTksMzQ5MjIsMzQ5MjUsMzQ5MjcsMzQ5MjksMzQ5MzEsMzQ5MzIsMzQ5MzMsMzQ5MzQsMzQ5MzYsMzQ5MzcsMzQ5MzgsMzQ5MzksMzQ5NDAsMzQ5NDQsMzQ5NDcsMzQ5NTAsMzQ5NTEsMzQ5''@;'; + put 'put ''NTMsMzQ5NTQsMzQ5NTYsMzQ5NTgsMzQ5NTksMzQ5NjAsMzQ5NjEsMzQ5NjMsMzQ5NjQsMzQ5NjUsMzQ5NjcsMzQ5NjgsMzQ5NjksMzQ5NzAsMzQ5NzEsMzQ5NzMsMzQ5NzQsMzQ5NzUsMzQ5NzYsMzQ5NzcsMzQ5NzksMzQ5ODEsMzQ5ODIsMzQ5ODMsMzQ5ODQsMzQ5ODUsMzQ5ODYsMjM1Njcs''@;'; + put 'put ''MjMzODksMjY2NTcsMzI5MTgsMjE4ODAsMzE1MDUsMjU5MjgsMjY5NjQsMjAxMjMsMjc0NjMsMzQ2MzgsMzg3OTUsMjEzMjcsMjUzNzUsMjU2NTgsMzcwMzQsMjYwMTIsMzI5NjEsMzU4NTYsMjA4ODksMjY4MDAsMjEzNjgsMzQ4MDksMjUwMzIsMjc4NDQsMjc4OTksMzU4NzQsMjM2MzMsMzQy''@;'; + put 'put ''MTgsMzM0NTUsMzgxNTYsMjc0MjcsMzY3NjMsMjYwMzIsMjQ1NzEsMjQ1MTUsMjA0NDksMzQ4ODUsMjYxNDMsMzMxMjUsMjk0ODEsMjQ4MjYsMjA4NTIsMjEwMDksMjI0MTEsMjQ0MTgsMzcwMjYsMzQ4OTIsMzcyNjYsMjQxODQsMjY0NDcsMjQ2MTUsMjI5OTUsMjA4MDQsMjA5ODIsMzMwMTYs''@;'; + put 'put ''MjEyNTYsMjc3NjksMzg1OTYsMjkwNjYsMjAyNDEsMjA0NjIsMzI2NzAsMjY0MjksMjE5NTcsMzgxNTIsMzExNjgsMzQ5NjYsMzI0ODMsMjI2ODcsMjUxMDAsMzg2NTYsMzQzOTQsMjIwNDAsMzkwMzUsMjQ0NjQsMzU3NjgsMzM5ODgsMzcyMDcsMjE0NjUsMjYwOTMsMjQyMDcsMzAwNDQsMjQ2''@;'; + put 'put ''NzYsMzIxMTAsMjMxNjcsMzI0OTAsMzI0OTMsMzY3MTMsMjE5MjcsMjM0NTksMjQ3NDgsMjYwNTksMjk1NzIsMzQ5ODgsMzQ5OTAsMzQ5OTEsMzQ5OTIsMzQ5OTQsMzQ5OTUsMzQ5OTYsMzQ5OTcsMzQ5OTgsMzVlMywzNTAwMSwzNTAwMiwzNTAwMywzNTAwNSwzNTAwNiwzNTAwNywzNTAwOCwz''@;'; + put 'put ''NTAxMSwzNTAxMiwzNTAxNSwzNTAxNiwzNTAxOCwzNTAxOSwzNTAyMCwzNTAyMSwzNTAyMywzNTAyNCwzNTAyNSwzNTAyNywzNTAzMCwzNTAzMSwzNTAzNCwzNTAzNSwzNTAzNiwzNTAzNywzNTAzOCwzNTA0MCwzNTA0MSwzNTA0NiwzNTA0NywzNTA0OSwzNTA1MCwzNTA1MSwzNTA1MiwzNTA1''@;'; + put 'put ''MywzNTA1NCwzNTA1NSwzNTA1OCwzNTA2MSwzNTA2MiwzNTA2MywzNTA2NiwzNTA2NywzNTA2OSwzNTA3MSwzNTA3MiwzNTA3MywzNTA3NSwzNTA3NiwzNTA3NywzNTA3OCwzNTA3OSwzNTA4MCwzNTA4MSwzNTA4MywzNTA4NCwzNTA4NSwzNTA4NiwzNTA4NywzNTA4OSwzNTA5MiwzNTA5Mywz''@;'; + put 'put ''NTA5NCwzNTA5NSwzNTA5NiwzNTEwMCwzNTEwMSwzNTEwMiwzNTEwMywzNTEwNCwzNTEwNiwzNTEwNywzNTEwOCwzNTExMCwzNTExMSwzNTExMiwzNTExMywzNTExNiwzNTExNywzNTExOCwzNTExOSwzNTEyMSwzNTEyMiwzNTEyMywzNTEyNSwzNTEyNywzNjg3MywzMDMwNywzMDUwNSwzMjQ3''@;'; + put 'put ''NCwzODc3MiwzNDIwMywyMzM5OCwzMTM0OCwzODYzNCwzNDg4MCwyMTE5NSwyOTA3MSwyNDQ5MCwyNjA5MiwzNTgxMCwyMzU0NywzOTUzNSwyNDAzMywyNzUyOSwyNzczOSwzNTc1NywzNTc1OSwzNjg3NCwzNjgwNSwyMTM4NywyNTI3Niw0MDQ4Niw0MDQ5MywyMTU2OCwyMDAxMSwzMzQ2OSwy''@;'; + put 'put ''OTI3MywzNDQ2MCwyMzgzMCwzNDkwNSwyODA3OSwzODU5NywyMTcxMywyMDEyMiwzNTc2NiwyODkzNywyMTY5MywzODQwOSwyODg5NSwyODE1MywzMDQxNiwyMDAwNSwzMDc0MCwzNDU3OCwyMzcyMSwyNDMxMCwzNTMyOCwzOTA2OCwzODQxNCwyODgxNCwyNzgzOSwyMjg1MiwyNTUxMywzMDUy''@;'; + put 'put ''NCwzNDg5MywyODQzNiwzMzM5NSwyMjU3NiwyOTE0MSwyMTM4OCwzMDc0NiwzODU5MywyMTc2MSwyNDQyMiwyODk3NiwyMzQ3NiwzNTg2NiwzOTU2NCwyNzUyMywyMjgzMCw0MDQ5NSwzMTIwNywyNjQ3MiwyNTE5NiwyMDMzNSwzMDExMywzMjY1MCwyNzkxNSwzODQ1MSwyNzY4NywyMDIwOCwz''@;'; + put 'put ''MDE2MiwyMDg1OSwyNjY3OSwyODQ3OCwzNjk5MiwzMzEzNiwyMjkzNCwyOTgxNCwzNTEyOCwzNTEyOSwzNTEzMCwzNTEzMSwzNTEzMiwzNTEzMywzNTEzNCwzNTEzNSwzNTEzNiwzNTEzOCwzNTEzOSwzNTE0MSwzNTE0MiwzNTE0MywzNTE0NCwzNTE0NSwzNTE0NiwzNTE0NywzNTE0OCwzNTE0''@;'; + put 'put ''OSwzNTE1MCwzNTE1MSwzNTE1MiwzNTE1MywzNTE1NCwzNTE1NSwzNTE1NiwzNTE1NywzNTE1OCwzNTE1OSwzNTE2MCwzNTE2MSwzNTE2MiwzNTE2MywzNTE2NCwzNTE2NSwzNTE2OCwzNTE2OSwzNTE3MCwzNTE3MSwzNTE3MiwzNTE3MywzNTE3NSwzNTE3NiwzNTE3NywzNTE3OCwzNTE3OSwz''@;'; + put 'put ''NTE4MCwzNTE4MSwzNTE4MiwzNTE4MywzNTE4NCwzNTE4NSwzNTE4NiwzNTE4NywzNTE4OCwzNTE4OSwzNTE5MCwzNTE5MSwzNTE5MiwzNTE5MywzNTE5NCwzNTE5NiwzNTE5NywzNTE5OCwzNTIwMCwzNTIwMiwzNTIwNCwzNTIwNSwzNTIwNywzNTIwOCwzNTIwOSwzNTIxMCwzNTIxMSwzNTIx''@;'; + put 'put ''MiwzNTIxMywzNTIxNCwzNTIxNSwzNTIxNiwzNTIxNywzNTIxOCwzNTIxOSwzNTIyMCwzNTIyMSwzNTIyMiwzNTIyMywzNTIyNCwzNTIyNSwzNTIyNiwzNTIyNywzNTIyOCwzNTIyOSwzNTIzMCwzNTIzMSwzNTIzMiwzNTIzMywyNTY3MSwyMzU5MSwzNjk2NSwzMTM3NywzNTg3NSwyMzAwMiwy''@;'; + put 'put ''MTY3NiwzMzI4MCwzMzY0NywzNTIwMSwzMjc2OCwyNjkyOCwyMjA5NCwzMjgyMiwyOTIzOSwzNzMyNiwyMDkxOCwyMDA2MywzOTAyOSwyNTQ5NCwxOTk5NCwyMTQ5NCwyNjM1NSwzMzA5OSwyMjgxMiwyODA4MiwxOTk2OCwyMjc3NywyMTMwNywyNTU1OCwzODEyOSwyMDM4MSwyMDIzNCwzNDkx''@;'; + put 'put ''NSwzOTA1NiwyMjgzOSwzNjk1MSwzMTIyNywyMDIwMiwzMzAwOCwzMDA5NywyNzc3OCwyMzQ1MiwyMzAxNiwyNDQxMywyNjg4NSwzNDQzMywyMDUwNiwyNDA1MCwyMDA1NywzMDY5MSwyMDE5NywzMzQwMiwyNTIzMywyNjEzMSwzNzAwOSwyMzY3MywyMDE1OSwyNDQ0MSwzMzIyMiwzNjkyMCwz''@;'; + put 'put ''MjkwMCwzMDEyMywyMDEzNCwzNTAyOCwyNDg0NywyNzU4OSwyNDUxOCwyMDA0MSwzMDQxMCwyODMyMiwzNTgxMSwzNTc1OCwzNTg1MCwzNTc5MywyNDMyMiwzMjc2NCwzMjcxNiwzMjQ2MiwzMzU4OSwzMzY0MywyMjI0MCwyNzU3NSwzODg5OSwzODQ1MiwyMzAzNSwyMTUzNSwzODEzNCwyODEz''@;'; + put 'put ''OSwyMzQ5MywzOTI3OCwyMzYwOSwyNDM0MSwzODU0NCwzNTIzNCwzNTIzNSwzNTIzNiwzNTIzNywzNTIzOCwzNTIzOSwzNTI0MCwzNTI0MSwzNTI0MiwzNTI0MywzNTI0NCwzNTI0NSwzNTI0NiwzNTI0NywzNTI0OCwzNTI0OSwzNTI1MCwzNTI1MSwzNTI1MiwzNTI1MywzNTI1NCwzNTI1NSwz''@;'; + put 'put ''NTI1NiwzNTI1NywzNTI1OCwzNTI1OSwzNTI2MCwzNTI2MSwzNTI2MiwzNTI2MywzNTI2NCwzNTI2NywzNTI3NywzNTI4MywzNTI4NCwzNTI4NSwzNTI4NywzNTI4OCwzNTI4OSwzNTI5MSwzNTI5MywzNTI5NSwzNTI5NiwzNTI5NywzNTI5OCwzNTMwMCwzNTMwMywzNTMwNCwzNTMwNSwzNTMw''@;'; + put 'put ''NiwzNTMwOCwzNTMwOSwzNTMxMCwzNTMxMiwzNTMxMywzNTMxNCwzNTMxNiwzNTMxNywzNTMxOCwzNTMxOSwzNTMyMCwzNTMyMSwzNTMyMiwzNTMyMywzNTMyNCwzNTMyNSwzNTMyNiwzNTMyNywzNTMyOSwzNTMzMCwzNTMzMSwzNTMzMiwzNTMzMywzNTMzNCwzNTMzNiwzNTMzNywzNTMzOCwz''@;'; + put 'put ''NTMzOSwzNTM0MCwzNTM0MSwzNTM0MiwzNTM0MywzNTM0NCwzNTM0NSwzNTM0NiwzNTM0NywzNTM0OCwzNTM0OSwzNTM1MCwzNTM1MSwzNTM1MiwzNTM1MywzNTM1NCwzNTM1NSwzNTM1NiwzNTM1NywyMTM2MCwzMzUyMSwyNzE4NSwyMzE1Niw0MDU2MCwyNDIxMiwzMjU1MiwzMzcyMSwzMzgy''@;'; + put 'put ''OCwzMzgyOSwzMzYzOSwzNDYzMSwzNjgxNCwzNjE5NCwzMDQwOCwyNDQzMywzOTA2MiwzMDgyOCwyNjE0NCwyMTcyNywyNTMxNywyMDMyMywzMzIxOSwzMDE1MiwyNDI0OCwzODYwNSwzNjM2MiwzNDU1MywyMTY0NywyNzg5MSwyODA0NCwyNzcwNCwyNDcwMywyMTE5MSwyOTk5MiwyNDE4OSwy''@;'; + put 'put ''MDI0OCwyNDczNiwyNDU1MSwyMzU4OCwzMDAwMSwzNzAzOCwzODA4MCwyOTM2OSwyNzgzMywyODIxNiwzNzE5MywyNjM3NywyMTQ1MSwyMTQ5MSwyMDMwNSwzNzMyMSwzNTgyNSwyMTQ0OCwyNDE4OCwzNjgwMiwyODEzMiwyMDExMCwzMDQwMiwyNzAxNCwzNDM5OCwyNDg1OCwzMzI4NiwyMDMx''@;'; + put 'put ''MywyMDQ0NiwzNjkyNiw0MDA2MCwyNDg0MSwyODE4OSwyODE4MCwzODUzMywyMDEwNCwyMzA4OSwzODYzMiwxOTk4MiwyMzY3OSwzMTE2MSwyMzQzMSwzNTgyMSwzMjcwMSwyOTU3NywyMjQ5NSwzMzQxOSwzNzA1NywyMTUwNSwzNjkzNSwyMTk0NywyMzc4NiwyNDQ4MSwyNDg0MCwyNzQ0Miwy''@;'; + put 'put ''OTQyNSwzMjk0NiwzNTQ2NSwzNTM1OCwzNTM1OSwzNTM2MCwzNTM2MSwzNTM2MiwzNTM2MywzNTM2NCwzNTM2NSwzNTM2NiwzNTM2NywzNTM2OCwzNTM2OSwzNTM3MCwzNTM3MSwzNTM3MiwzNTM3MywzNTM3NCwzNTM3NSwzNTM3NiwzNTM3NywzNTM3OCwzNTM3OSwzNTM4MCwzNTM4MSwzNTM4''@;'; + put 'put ''MiwzNTM4MywzNTM4NCwzNTM4NSwzNTM4NiwzNTM4NywzNTM4OCwzNTM4OSwzNTM5MSwzNTM5MiwzNTM5MywzNTM5NCwzNTM5NSwzNTM5NiwzNTM5NywzNTM5OCwzNTM5OSwzNTQwMSwzNTQwMiwzNTQwMywzNTQwNCwzNTQwNSwzNTQwNiwzNTQwNywzNTQwOCwzNTQwOSwzNTQxMCwzNTQxMSwz''@;'; + put 'put ''NTQxMiwzNTQxMywzNTQxNCwzNTQxNSwzNTQxNiwzNTQxNywzNTQxOCwzNTQxOSwzNTQyMCwzNTQyMSwzNTQyMiwzNTQyMywzNTQyNCwzNTQyNSwzNTQyNiwzNTQyNywzNTQyOCwzNTQyOSwzNTQzMCwzNTQzMSwzNTQzMiwzNTQzMywzNTQzNCwzNTQzNSwzNTQzNiwzNTQzNywzNTQzOCwzNTQz''@;'; + put 'put ''OSwzNTQ0MCwzNTQ0MSwzNTQ0MiwzNTQ0MywzNTQ0NCwzNTQ0NSwzNTQ0NiwzNTQ0NywzNTQ0OCwzNTQ1MCwzNTQ1MSwzNTQ1MiwzNTQ1MywzNTQ1NCwzNTQ1NSwzNTQ1NiwyODAyMCwyMzUwNywzNTAyOSwzOTA0NCwzNTk0NywzOTUzMyw0MDQ5OSwyODE3MCwyMDkwMCwyMDgwMywyMjQzNSwz''@;'; + put 'put ''NDk0NSwyMTQwNywyNTU4OCwzNjc1NywyMjI1MywyMTU5MiwyMjI3OCwyOTUwMywyODMwNCwzMjUzNiwzNjgyOCwzMzQ4OSwyNDg5NSwyNDYxNiwzODQ5OCwyNjM1MiwzMjQyMiwzNjIzNCwzNjI5MSwzODA1MywyMzczMSwzMTkwOCwyNjM3NiwyNDc0MiwzODQwNSwzMjc5MiwyMDExMywzNzA5''@;'; + put 'put ''NSwyMTI0OCwzODUwNCwyMDgwMSwzNjgxNiwzNDE2NCwzNzIxMywyNjE5NywzODkwMSwyMzM4MSwyMTI3NywzMDc3NiwyNjQzNCwyNjY4NSwyMTcwNSwyODc5OCwyMzQ3MiwzNjczMywyMDg3NywyMjMxMiwyMTY4MSwyNTg3NCwyNjI0MiwzNjE5MCwzNjE2MywzMzAzOSwzMzkwMCwzNjk3Mywz''@;'; + put 'put ''MTk2NywyMDk5MSwzNDI5OSwyNjUzMSwyNjA4OSwyODU3NywzNDQ2OCwzNjQ4MSwyMjEyMiwzNjg5NiwzMDMzOCwyODc5MCwyOTE1NywzNjEzMSwyNTMyMSwyMTAxNywyNzkwMSwzNjE1NiwyNDU5MCwyMjY4NiwyNDk3NCwyNjM2NiwzNjE5MiwyNTE2NiwyMTkzOSwyODE5NSwyNjQxMywzNjcx''@;'; + put 'put ''MSwzNTQ1NywzNTQ1OCwzNTQ1OSwzNTQ2MCwzNTQ2MSwzNTQ2MiwzNTQ2MywzNTQ2NCwzNTQ2NywzNTQ2OCwzNTQ2OSwzNTQ3MCwzNTQ3MSwzNTQ3MiwzNTQ3MywzNTQ3NCwzNTQ3NiwzNTQ3NywzNTQ3OCwzNTQ3OSwzNTQ4MCwzNTQ4MSwzNTQ4MiwzNTQ4MywzNTQ4NCwzNTQ4NSwzNTQ4Niwz''@;'; + put 'put ''NTQ4NywzNTQ4OCwzNTQ4OSwzNTQ5MCwzNTQ5MSwzNTQ5MiwzNTQ5MywzNTQ5NCwzNTQ5NSwzNTQ5NiwzNTQ5NywzNTQ5OCwzNTQ5OSwzNTUwMCwzNTUwMSwzNTUwMiwzNTUwMywzNTUwNCwzNTUwNSwzNTUwNiwzNTUwNywzNTUwOCwzNTUwOSwzNTUxMCwzNTUxMSwzNTUxMiwzNTUxMywzNTUx''@;'; + put 'put ''NCwzNTUxNSwzNTUxNiwzNTUxNywzNTUxOCwzNTUxOSwzNTUyMCwzNTUyMSwzNTUyMiwzNTUyMywzNTUyNCwzNTUyNSwzNTUyNiwzNTUyNywzNTUyOCwzNTUyOSwzNTUzMCwzNTUzMSwzNTUzMiwzNTUzMywzNTUzNCwzNTUzNSwzNTUzNiwzNTUzNywzNTUzOCwzNTUzOSwzNTU0MCwzNTU0MSwz''@;'; + put 'put ''NTU0MiwzNTU0MywzNTU0NCwzNTU0NSwzNTU0NiwzNTU0NywzNTU0OCwzNTU0OSwzNTU1MCwzNTU1MSwzNTU1MiwzNTU1MywzNTU1NCwzNTU1NSwzODExMywzODM5MiwzMDUwNCwyNjYyOSwyNzA0OCwyMTY0MywyMDA0NSwyODg1NiwzNTc4NCwyNTY4OCwyNTk5NSwyMzQyOSwzMTM2NCwyMDUz''@;'; + put 'put ''OCwyMzUyOCwzMDY1MSwyNzYxNywzNTQ0OSwzMTg5NiwyNzgzOCwzMDQxNSwyNjAyNSwzNjc1OSwyMzg1MywyMzYzNywzNDM2MCwyNjYzMiwyMTM0NCwyNTExMiwzMTQ0OSwyODI1MSwzMjUwOSwyNzE2NywzMTQ1NiwyNDQzMiwyODQ2NywyNDM1MiwyNTQ4NCwyODA3MiwyNjQ1NCwxOTk3Niwy''@;'; + put 'put ''NDA4MCwzNjEzNCwyMDE4MywzMjk2MCwzMDI2MCwzODU1NiwyNTMwNywyNjE1NywyNTIxNCwyNzgzNiwzNjIxMywyOTAzMSwzMjYxNywyMDgwNiwzMjkwMywyMTQ4NCwzNjk3NCwyNTI0MCwyMTc0NiwzNDU0NCwzNjc2MSwzMjc3MywzODE2NywzNDA3MSwzNjgyNSwyNzk5MywyOTY0NSwyNjAx''@;'; + put 'put ''NSwzMDQ5NSwyOTk1NiwzMDc1OSwzMzI3NSwzNjEyNiwzODAyNCwyMDM5MCwyNjUxNywzMDEzNywzNTc4NiwzODY2MywyNTM5MSwzODIxNSwzODQ1MywzMzk3NiwyNTM3OSwzMDUyOSwyNDQ0OSwyOTQyNCwyMDEwNSwyNDU5NiwyNTk3MiwyNTMyNywyNzQ5MSwyNTkxOSwzNTU1NiwzNTU1Nywz''@;'; + put 'put ''NTU1OCwzNTU1OSwzNTU2MCwzNTU2MSwzNTU2MiwzNTU2MywzNTU2NCwzNTU2NSwzNTU2NiwzNTU2NywzNTU2OCwzNTU2OSwzNTU3MCwzNTU3MSwzNTU3MiwzNTU3MywzNTU3NCwzNTU3NSwzNTU3NiwzNTU3NywzNTU3OCwzNTU3OSwzNTU4MCwzNTU4MSwzNTU4MiwzNTU4MywzNTU4NCwzNTU4''@;'; + put 'put ''NSwzNTU4NiwzNTU4NywzNTU4OCwzNTU4OSwzNTU5MCwzNTU5MiwzNTU5MywzNTU5NCwzNTU5NSwzNTU5NiwzNTU5NywzNTU5OCwzNTU5OSwzNTYwMCwzNTYwMSwzNTYwMiwzNTYwMywzNTYwNCwzNTYwNSwzNTYwNiwzNTYwNywzNTYwOCwzNTYwOSwzNTYxMCwzNTYxMSwzNTYxMiwzNTYxMywz''@;'; + put 'put ''NTYxNCwzNTYxNSwzNTYxNiwzNTYxNywzNTYxOCwzNTYxOSwzNTYyMCwzNTYyMSwzNTYyMywzNTYyNCwzNTYyNSwzNTYyNiwzNTYyNywzNTYyOCwzNTYyOSwzNTYzMCwzNTYzMSwzNTYzMiwzNTYzMywzNTYzNCwzNTYzNSwzNTYzNiwzNTYzNywzNTYzOCwzNTYzOSwzNTY0MCwzNTY0MSwzNTY0''@;'; + put 'put ''MiwzNTY0MywzNTY0NCwzNTY0NSwzNTY0NiwzNTY0NywzNTY0OCwzNTY0OSwzNTY1MCwzNTY1MSwzNTY1MiwzNTY1MywyNDEwMywzMDE1MSwzNzA3MywzNTc3NywzMzQzNywyNjUyNSwyNTkwMywyMTU1MywzNDU4NCwzMDY5MywzMjkzMCwzMzAyNiwyNzcxMywyMDA0MywzMjQ1NSwzMjg0NCwz''@;'; + put 'put ''MDQ1MiwyNjg5MywyNzU0MiwyNTE5MSwyMDU0MCwyMDM1NiwyMjMzNiwyNTM1MSwyNzQ5MCwzNjI4NiwyMTQ4MiwyNjA4OCwzMjQ0MCwyNDUzNSwyNTM3MCwyNTUyNywzMzI2NywzMzI2OCwzMjYyMiwyNDA5MiwyMzc2OSwyMTA0NiwyNjIzNCwzMTIwOSwzMTI1OCwzNjEzNiwyODgyNSwzMDE2''@;'; + put 'put ''NCwyODM4MiwyNzgzNSwzMTM3OCwyMDAxMywzMDQwNSwyNDU0NCwzODA0NywzNDkzNSwzMjQ1NiwzMTE4MSwzMjk1OSwzNzMyNSwyMDIxMCwyMDI0NywzMzMxMSwyMTYwOCwyNDAzMCwyNzk1NCwzNTc4OCwzMTkwOSwzNjcyNCwzMjkyMCwyNDA5MCwyMTY1MCwzMDM4NSwyMzQ0OSwyNjE3Miwz''@;'; + put 'put ''OTU4OCwyOTY2NCwyNjY2NiwzNDUyMywyNjQxNywyOTQ4MiwzNTgzMiwzNTgwMywzNjg4MCwzMTQ4MSwyODg5MSwyOTAzOCwyNTI4NCwzMDYzMywyMjA2NSwyMDAyNywzMzg3OSwyNjYwOSwyMTE2MSwzNDQ5NiwzNjE0MiwzODEzNiwzMTU2OSwzNTY1NCwzNTY1NSwzNTY1NiwzNTY1NywzNTY1''@;'; + put 'put ''OCwzNTY1OSwzNTY2MCwzNTY2MSwzNTY2MiwzNTY2MywzNTY2NCwzNTY2NSwzNTY2NiwzNTY2NywzNTY2OCwzNTY2OSwzNTY3MCwzNTY3MSwzNTY3MiwzNTY3MywzNTY3NCwzNTY3NSwzNTY3NiwzNTY3NywzNTY3OCwzNTY3OSwzNTY4MCwzNTY4MSwzNTY4MiwzNTY4MywzNTY4NCwzNTY4NSwz''@;'; + put 'put ''NTY4NywzNTY4OCwzNTY4OSwzNTY5MCwzNTY5MSwzNTY5MywzNTY5NCwzNTY5NSwzNTY5NiwzNTY5NywzNTY5OCwzNTY5OSwzNTcwMCwzNTcwMSwzNTcwMiwzNTcwMywzNTcwNCwzNTcwNSwzNTcwNiwzNTcwNywzNTcwOCwzNTcwOSwzNTcxMCwzNTcxMSwzNTcxMiwzNTcxMywzNTcxNCwzNTcx''@;'; + put 'put ''NSwzNTcxNiwzNTcxNywzNTcxOCwzNTcxOSwzNTcyMCwzNTcyMSwzNTcyMiwzNTcyMywzNTcyNCwzNTcyNSwzNTcyNiwzNTcyNywzNTcyOCwzNTcyOSwzNTczMCwzNTczMSwzNTczMiwzNTczMywzNTczNCwzNTczNSwzNTczNiwzNTczNywzNTczOCwzNTczOSwzNTc0MCwzNTc0MSwzNTc0Miwz''@;'; + put 'put ''NTc0MywzNTc1NiwzNTc2MSwzNTc3MSwzNTc4MywzNTc5MiwzNTgxOCwzNTg0OSwzNTg3MCwyMDMwMywyNzg4MCwzMTA2OSwzOTU0NywyNTIzNSwyOTIyNiwyNTM0MSwxOTk4NywzMDc0MiwzNjcxNiwyNTc3NiwzNjE4NiwzMTY4NiwyNjcyOSwyNDE5NiwzNTAxMywyMjkxOCwyNTc1OCwyMjc2''@;'; + put 'put ''NiwyOTM2NiwyNjg5NCwzODE4MSwzNjg2MSwzNjE4NCwyMjM2OCwzMjUxMiwzNTg0NiwyMDkzNCwyNTQxNywyNTMwNSwyMTMzMSwyNjcwMCwyOTczMCwzMzUzNywzNzE5NiwyMTgyOCwzMDUyOCwyODc5NiwyNzk3OCwyMDg1NywyMTY3MiwzNjE2NCwyMzAzOSwyODM2MywyODEwMCwyMzM4OCwz''@;'; + put 'put ''MjA0MywyMDE4MCwzMTg2OSwyODM3MSwyMzM3NiwzMzI1OCwyODE3MywyMzM4MywzOTY4MywyNjgzNywzNjM5NCwyMzQ0NywzMjUwOCwyNDYzNSwzMjQzNywzNzA0OSwzNjIwOCwyMjg2MywyNTU0OSwzMTE5OSwzNjI3NSwyMTMzMCwyNjA2MywzMTA2MiwzNTc4MSwzODQ1OSwzMjQ1MiwzODA3''@;'; + put 'put ''NSwzMjM4NiwyMjA2OCwzNzI1NywyNjM2OCwzMjYxOCwyMzU2MiwzNjk4MSwyNjE1MiwyNDAzOCwyMDMwNCwyNjU5MCwyMDU3MCwyMDMxNiwyMjM1MiwyNDIzMSw1OTQwOCw1OTQwOSw1OTQxMCw1OTQxMSw1OTQxMiwzNTg5NiwzNTg5NywzNTg5OCwzNTg5OSwzNTkwMCwzNTkwMSwzNTkwMiwz''@;'; + put 'put ''NTkwMywzNTkwNCwzNTkwNiwzNTkwNywzNTkwOCwzNTkwOSwzNTkxMiwzNTkxNCwzNTkxNSwzNTkxNywzNTkxOCwzNTkxOSwzNTkyMCwzNTkyMSwzNTkyMiwzNTkyMywzNTkyNCwzNTkyNiwzNTkyNywzNTkyOCwzNTkyOSwzNTkzMSwzNTkzMiwzNTkzMywzNTkzNCwzNTkzNSwzNTkzNiwzNTkz''@;'; + put 'put ''OSwzNTk0MCwzNTk0MSwzNTk0MiwzNTk0MywzNTk0NCwzNTk0NSwzNTk0OCwzNTk0OSwzNTk1MCwzNTk1MSwzNTk1MiwzNTk1MywzNTk1NCwzNTk1NiwzNTk1NywzNTk1OCwzNTk1OSwzNTk2MywzNTk2NCwzNTk2NSwzNTk2NiwzNTk2NywzNTk2OCwzNTk2OSwzNTk3MSwzNTk3MiwzNTk3NCwz''@;'; + put 'put ''NTk3NSwzNTk3NiwzNTk3OSwzNTk4MSwzNTk4MiwzNTk4MywzNTk4NCwzNTk4NSwzNTk4NiwzNTk4NywzNTk4OSwzNTk5MCwzNTk5MSwzNTk5MywzNTk5NCwzNTk5NSwzNTk5NiwzNTk5NywzNTk5OCwzNTk5OSwzNmUzLDM2MDAxLDM2MDAyLDM2MDAzLDM2MDA0LDM2MDA1LDM2MDA2LDM2MDA3''@;'; + put 'put ''LDM2MDA4LDM2MDA5LDM2MDEwLDM2MDExLDM2MDEyLDM2MDEzLDIwMTA5LDE5OTgwLDIwODAwLDE5OTg0LDI0MzE5LDIxMzE3LDE5OTg5LDIwMTIwLDE5OTk4LDM5NzMwLDIzNDA0LDIyMTIxLDIwMDA4LDMxMTYyLDIwMDMxLDIxMjY5LDIwMDM5LDIyODI5LDI5MjQzLDIxMzU4LDI3NjY0LDIy''@;'; + put 'put ''MjM5LDMyOTk2LDM5MzE5LDI3NjAzLDMwNTkwLDQwNzI3LDIwMDIyLDIwMTI3LDQwNzIwLDIwMDYwLDIwMDczLDIwMTE1LDMzNDE2LDIzMzg3LDIxODY4LDIyMDMxLDIwMTY0LDIxMzg5LDIxNDA1LDIxNDExLDIxNDEzLDIxNDIyLDM4NzU3LDM2MTg5LDIxMjc0LDIxNDkzLDIxMjg2LDIxMjk0''@;'; + put 'put ''LDIxMzEwLDM2MTg4LDIxMzUwLDIxMzQ3LDIwOTk0LDIxZTMsMjEwMDYsMjEwMzcsMjEwNDMsMjEwNTUsMjEwNTYsMjEwNjgsMjEwODYsMjEwODksMjEwODQsMzM5NjcsMjExMTcsMjExMjIsMjExMjEsMjExMzYsMjExMzksMjA4NjYsMzI1OTYsMjAxNTUsMjAxNjMsMjAxNjksMjAxNjIsMjAy''@;'; + put 'put ''MDAsMjAxOTMsMjAyMDMsMjAxOTAsMjAyNTEsMjAyMTEsMjAyNTgsMjAzMjQsMjAyMTMsMjAyNjEsMjAyNjMsMjAyMzMsMjAyNjcsMjAzMTgsMjAzMjcsMjU5MTIsMjAzMTQsMjAzMTcsMzYwMTQsMzYwMTUsMzYwMTYsMzYwMTcsMzYwMTgsMzYwMTksMzYwMjAsMzYwMjEsMzYwMjIsMzYwMjMs''@;'; + put 'put ''MzYwMjQsMzYwMjUsMzYwMjYsMzYwMjcsMzYwMjgsMzYwMjksMzYwMzAsMzYwMzEsMzYwMzIsMzYwMzMsMzYwMzQsMzYwMzUsMzYwMzYsMzYwMzcsMzYwMzgsMzYwMzksMzYwNDAsMzYwNDEsMzYwNDIsMzYwNDMsMzYwNDQsMzYwNDUsMzYwNDYsMzYwNDcsMzYwNDgsMzYwNDksMzYwNTAsMzYw''@;'; + put 'put ''NTEsMzYwNTIsMzYwNTMsMzYwNTQsMzYwNTUsMzYwNTYsMzYwNTcsMzYwNTgsMzYwNTksMzYwNjAsMzYwNjEsMzYwNjIsMzYwNjMsMzYwNjQsMzYwNjUsMzYwNjYsMzYwNjcsMzYwNjgsMzYwNjksMzYwNzAsMzYwNzEsMzYwNzIsMzYwNzMsMzYwNzQsMzYwNzUsMzYwNzYsMzYwNzcsMzYwNzgs''@;'; + put 'put ''MzYwNzksMzYwODAsMzYwODEsMzYwODIsMzYwODMsMzYwODQsMzYwODUsMzYwODYsMzYwODcsMzYwODgsMzYwODksMzYwOTAsMzYwOTEsMzYwOTIsMzYwOTMsMzYwOTQsMzYwOTUsMzYwOTYsMzYwOTcsMzYwOTgsMzYwOTksMzYxMDAsMzYxMDEsMzYxMDIsMzYxMDMsMzYxMDQsMzYxMDUsMzYx''@;'; + put 'put ''MDYsMzYxMDcsMzYxMDgsMzYxMDksMjAzMTksMjAzMTEsMjAyNzQsMjAyODUsMjAzNDIsMjAzNDAsMjAzNjksMjAzNjEsMjAzNTUsMjAzNjcsMjAzNTAsMjAzNDcsMjAzOTQsMjAzNDgsMjAzOTYsMjAzNzIsMjA0NTQsMjA0NTYsMjA0NTgsMjA0MjEsMjA0NDIsMjA0NTEsMjA0NDQsMjA0MzMs''@;'; + put 'put ''MjA0NDcsMjA0NzIsMjA1MjEsMjA1NTYsMjA0NjcsMjA1MjQsMjA0OTUsMjA1MjYsMjA1MjUsMjA0NzgsMjA1MDgsMjA0OTIsMjA1MTcsMjA1MjAsMjA2MDYsMjA1NDcsMjA1NjUsMjA1NTIsMjA1NTgsMjA1ODgsMjA2MDMsMjA2NDUsMjA2NDcsMjA2NDksMjA2NjYsMjA2OTQsMjA3NDIsMjA3''@;'; + put 'put ''MTcsMjA3MTYsMjA3MTAsMjA3MTgsMjA3NDMsMjA3NDcsMjAxODksMjc3MDksMjAzMTIsMjAzMjUsMjA0MzAsNDA4NjQsMjc3MTgsMzE4NjAsMjA4NDYsMjQwNjEsNDA2NDksMzkzMjAsMjA4NjUsMjI4MDQsMjEyNDEsMjEyNjEsMzUzMzUsMjEyNjQsMjA5NzEsMjI4MDksMjA4MjEsMjAxMjgs''@;'; + put 'put ''MjA4MjIsMjAxNDcsMzQ5MjYsMzQ5ODAsMjAxNDksMzMwNDQsMzUwMjYsMzExMDQsMjMzNDgsMzQ4MTksMzI2OTYsMjA5MDcsMjA5MTMsMjA5MjUsMjA5MjQsMzYxMTAsMzYxMTEsMzYxMTIsMzYxMTMsMzYxMTQsMzYxMTUsMzYxMTYsMzYxMTcsMzYxMTgsMzYxMTksMzYxMjAsMzYxMjEsMzYx''@;'; + put 'put ''MjIsMzYxMjMsMzYxMjQsMzYxMjgsMzYxNzcsMzYxNzgsMzYxODMsMzYxOTEsMzYxOTcsMzYyMDAsMzYyMDEsMzYyMDIsMzYyMDQsMzYyMDYsMzYyMDcsMzYyMDksMzYyMTAsMzYyMTYsMzYyMTcsMzYyMTgsMzYyMTksMzYyMjAsMzYyMjEsMzYyMjIsMzYyMjMsMzYyMjQsMzYyMjYsMzYyMjcs''@;'; + put 'put ''MzYyMzAsMzYyMzEsMzYyMzIsMzYyMzMsMzYyMzYsMzYyMzcsMzYyMzgsMzYyMzksMzYyNDAsMzYyNDIsMzYyNDMsMzYyNDUsMzYyNDYsMzYyNDcsMzYyNDgsMzYyNDksMzYyNTAsMzYyNTEsMzYyNTIsMzYyNTMsMzYyNTQsMzYyNTYsMzYyNTcsMzYyNTgsMzYyNjAsMzYyNjEsMzYyNjIsMzYy''@;'; + put 'put ''NjMsMzYyNjQsMzYyNjUsMzYyNjYsMzYyNjcsMzYyNjgsMzYyNjksMzYyNzAsMzYyNzEsMzYyNzIsMzYyNzQsMzYyNzgsMzYyNzksMzYyODEsMzYyODMsMzYyODUsMzYyODgsMzYyODksMzYyOTAsMzYyOTMsMzYyOTUsMzYyOTYsMzYyOTcsMzYyOTgsMzYzMDEsMzYzMDQsMzYzMDYsMzYzMDcs''@;'; + put 'put ''MzYzMDgsMjA5MzUsMjA4ODYsMjA4OTgsMjA5MDEsMzU3NDQsMzU3NTAsMzU3NTEsMzU3NTQsMzU3NjQsMzU3NjUsMzU3NjcsMzU3NzgsMzU3NzksMzU3ODcsMzU3OTEsMzU3OTAsMzU3OTQsMzU3OTUsMzU3OTYsMzU3OTgsMzU4MDAsMzU4MDEsMzU4MDQsMzU4MDcsMzU4MDgsMzU4MTIsMzU4''@;'; + put 'put ''MTYsMzU4MTcsMzU4MjIsMzU4MjQsMzU4MjcsMzU4MzAsMzU4MzMsMzU4MzYsMzU4MzksMzU4NDAsMzU4NDIsMzU4NDQsMzU4NDcsMzU4NTIsMzU4NTUsMzU4NTcsMzU4NTgsMzU4NjAsMzU4NjEsMzU4NjIsMzU4NjUsMzU4NjcsMzU4NjQsMzU4NjksMzU4NzEsMzU4NzIsMzU4NzMsMzU4Nzcs''@;'; + put 'put ''MzU4NzksMzU4ODIsMzU4ODMsMzU4ODYsMzU4ODcsMzU4OTAsMzU4OTEsMzU4OTMsMzU4OTQsMjEzNTMsMjEzNzAsMzg0MjksMzg0MzQsMzg0MzMsMzg0NDksMzg0NDIsMzg0NjEsMzg0NjAsMzg0NjYsMzg0NzMsMzg0ODQsMzg0OTUsMzg1MDMsMzg1MDgsMzg1MTQsMzg1MTYsMzg1MzYsMzg1''@;'; + put 'put ''NDEsMzg1NTEsMzg1NzYsMzcwMTUsMzcwMTksMzcwMjEsMzcwMTcsMzcwMzYsMzcwMjUsMzcwNDQsMzcwNDMsMzcwNDYsMzcwNTAsMzYzMDksMzYzMTIsMzYzMTMsMzYzMTYsMzYzMjAsMzYzMjEsMzYzMjIsMzYzMjUsMzYzMjYsMzYzMjcsMzYzMjksMzYzMzMsMzYzMzQsMzYzMzYsMzYzMzcs''@;'; + put 'put ''MzYzMzgsMzYzNDAsMzYzNDIsMzYzNDgsMzYzNTAsMzYzNTEsMzYzNTIsMzYzNTMsMzYzNTQsMzYzNTUsMzYzNTYsMzYzNTgsMzYzNTksMzYzNjAsMzYzNjMsMzYzNjUsMzYzNjYsMzYzNjgsMzYzNjksMzYzNzAsMzYzNzEsMzYzNzMsMzYzNzQsMzYzNzUsMzYzNzYsMzYzNzcsMzYzNzgsMzYz''@;'; + put 'put ''NzksMzYzODAsMzYzODQsMzYzODUsMzYzODgsMzYzODksMzYzOTAsMzYzOTEsMzYzOTIsMzYzOTUsMzYzOTcsMzY0MDAsMzY0MDIsMzY0MDMsMzY0MDQsMzY0MDYsMzY0MDcsMzY0MDgsMzY0MTEsMzY0MTIsMzY0MTQsMzY0MTUsMzY0MTksMzY0MjEsMzY0MjIsMzY0MjgsMzY0MjksMzY0MzAs''@;'; + put 'put ''MzY0MzEsMzY0MzIsMzY0MzUsMzY0MzYsMzY0MzcsMzY0MzgsMzY0MzksMzY0NDAsMzY0NDIsMzY0NDMsMzY0NDQsMzY0NDUsMzY0NDYsMzY0NDcsMzY0NDgsMzY0NDksMzY0NTAsMzY0NTEsMzY0NTIsMzY0NTMsMzY0NTUsMzY0NTYsMzY0NTgsMzY0NTksMzY0NjIsMzY0NjUsMzcwNDgsMzcw''@;'; + put 'put ''NDAsMzcwNzEsMzcwNjEsMzcwNTQsMzcwNzIsMzcwNjAsMzcwNjMsMzcwNzUsMzcwOTQsMzcwOTAsMzcwODQsMzcwNzksMzcwODMsMzcwOTksMzcxMDMsMzcxMTgsMzcxMjQsMzcxNTQsMzcxNTAsMzcxNTUsMzcxNjksMzcxNjcsMzcxNzcsMzcxODcsMzcxOTAsMjEwMDUsMjI4NTAsMjExNTQs''@;'; + put 'put ''MjExNjQsMjExNjUsMjExODIsMjE3NTksMjEyMDAsMjEyMDYsMjEyMzIsMjE0NzEsMjkxNjYsMzA2NjksMjQzMDgsMjA5ODEsMjA5ODgsMzk3MjcsMjE0MzAsMjQzMjEsMzAwNDIsMjQwNDcsMjIzNDgsMjI0NDEsMjI0MzMsMjI2NTQsMjI3MTYsMjI3MjUsMjI3MzcsMjIzMTMsMjIzMTYsMjIz''@;'; + put 'put ''MTQsMjIzMjMsMjIzMjksMjIzMTgsMjIzMTksMjIzNjQsMjIzMzEsMjIzMzgsMjIzNzcsMjI0MDUsMjIzNzksMjI0MDYsMjIzOTYsMjIzOTUsMjIzNzYsMjIzODEsMjIzOTAsMjIzODcsMjI0NDUsMjI0MzYsMjI0MTIsMjI0NTAsMjI0NzksMjI0MzksMjI0NTIsMjI0MTksMjI0MzIsMjI0ODUs''@;'; + put 'put ''MjI0ODgsMjI0OTAsMjI0ODksMjI0ODIsMjI0NTYsMjI1MTYsMjI1MTEsMjI1MjAsMjI1MDAsMjI0OTMsMzY0NjcsMzY0NjksMzY0NzEsMzY0NzIsMzY0NzMsMzY0NzQsMzY0NzUsMzY0NzcsMzY0NzgsMzY0ODAsMzY0ODIsMzY0ODMsMzY0ODQsMzY0ODYsMzY0ODgsMzY0ODksMzY0OTAsMzY0''@;'; + put 'put ''OTEsMzY0OTIsMzY0OTMsMzY0OTQsMzY0OTcsMzY0OTgsMzY0OTksMzY1MDEsMzY1MDIsMzY1MDMsMzY1MDQsMzY1MDUsMzY1MDYsMzY1MDcsMzY1MDksMzY1MTEsMzY1MTIsMzY1MTMsMzY1MTQsMzY1MTUsMzY1MTYsMzY1MTcsMzY1MTgsMzY1MTksMzY1MjAsMzY1MjEsMzY1MjIsMzY1MjUs''@;'; + put 'put ''MzY1MjYsMzY1MjgsMzY1MjksMzY1MzEsMzY1MzIsMzY1MzMsMzY1MzQsMzY1MzUsMzY1MzYsMzY1MzcsMzY1MzksMzY1NDAsMzY1NDEsMzY1NDIsMzY1NDMsMzY1NDQsMzY1NDUsMzY1NDYsMzY1NDcsMzY1NDgsMzY1NDksMzY1NTAsMzY1NTEsMzY1NTIsMzY1NTMsMzY1NTQsMzY1NTUsMzY1''@;'; + put 'put ''NTYsMzY1NTcsMzY1NTksMzY1NjAsMzY1NjEsMzY1NjIsMzY1NjMsMzY1NjQsMzY1NjUsMzY1NjYsMzY1NjcsMzY1NjgsMzY1NjksMzY1NzAsMzY1NzEsMzY1NzIsMzY1NzMsMzY1NzQsMzY1NzUsMzY1NzYsMzY1NzcsMzY1NzgsMzY1NzksMzY1ODAsMjI1MzksMjI1NDEsMjI1MjUsMjI1MDks''@;'; + put 'put ''MjI1MjgsMjI1NTgsMjI1NTMsMjI1OTYsMjI1NjAsMjI2MjksMjI2MzYsMjI2NTcsMjI2NjUsMjI2ODIsMjI2NTYsMzkzMzYsNDA3MjksMjUwODcsMzM0MDEsMzM0MDUsMzM0MDcsMzM0MjMsMzM0MTgsMzM0NDgsMzM0MTIsMzM0MjIsMzM0MjUsMzM0MzEsMzM0MzMsMzM0NTEsMzM0NjQsMzM0''@;'; + put 'put ''NzAsMzM0NTYsMzM0ODAsMzM0ODIsMzM1MDcsMzM0MzIsMzM0NjMsMzM0NTQsMzM0ODMsMzM0ODQsMzM0NzMsMzM0NDksMzM0NjAsMzM0NDEsMzM0NTAsMzM0MzksMzM0NzYsMzM0ODYsMzM0NDQsMzM1MDUsMzM1NDUsMzM1MjcsMzM1MDgsMzM1NTEsMzM1NDMsMzM1MDAsMzM1MjQsMzM0OTAs''@;'; + put 'put ''MzM0OTYsMzM1NDgsMzM1MzEsMzM0OTEsMzM1NTMsMzM1NjIsMzM1NDIsMzM1NTYsMzM1NTcsMzM1MDQsMzM0OTMsMzM1NjQsMzM2MTcsMzM2MjcsMzM2MjgsMzM1NDQsMzM2ODIsMzM1OTYsMzM1ODgsMzM1ODUsMzM2OTEsMzM2MzAsMzM1ODMsMzM2MTUsMzM2MDcsMzM2MDMsMzM2MzEsMzM2''@;'; + put 'put ''MDAsMzM1NTksMzM2MzIsMzM1ODEsMzM1OTQsMzM1ODcsMzM2MzgsMzM2MzcsMzY1ODEsMzY1ODIsMzY1ODMsMzY1ODQsMzY1ODUsMzY1ODYsMzY1ODcsMzY1ODgsMzY1ODksMzY1OTAsMzY1OTEsMzY1OTIsMzY1OTMsMzY1OTQsMzY1OTUsMzY1OTYsMzY1OTcsMzY1OTgsMzY1OTksMzY2MDAs''@;'; + put 'put ''MzY2MDEsMzY2MDIsMzY2MDMsMzY2MDQsMzY2MDUsMzY2MDYsMzY2MDcsMzY2MDgsMzY2MDksMzY2MTAsMzY2MTEsMzY2MTIsMzY2MTMsMzY2MTQsMzY2MTUsMzY2MTYsMzY2MTcsMzY2MTgsMzY2MTksMzY2MjAsMzY2MjEsMzY2MjIsMzY2MjMsMzY2MjQsMzY2MjUsMzY2MjYsMzY2MjcsMzY2''@;'; + put 'put ''MjgsMzY2MjksMzY2MzAsMzY2MzEsMzY2MzIsMzY2MzMsMzY2MzQsMzY2MzUsMzY2MzYsMzY2MzcsMzY2MzgsMzY2MzksMzY2NDAsMzY2NDEsMzY2NDIsMzY2NDMsMzY2NDQsMzY2NDUsMzY2NDYsMzY2NDcsMzY2NDgsMzY2NDksMzY2NTAsMzY2NTEsMzY2NTIsMzY2NTMsMzY2NTQsMzY2NTUs''@;'; + put 'put ''MzY2NTYsMzY2NTcsMzY2NTgsMzY2NTksMzY2NjAsMzY2NjEsMzY2NjIsMzY2NjMsMzY2NjQsMzY2NjUsMzY2NjYsMzY2NjcsMzY2NjgsMzY2NjksMzY2NzAsMzY2NzEsMzY2NzIsMzY2NzMsMzY2NzQsMzY2NzUsMzY2NzYsMzM2NDAsMzM1NjMsMzM2NDEsMzM2NDQsMzM2NDIsMzM2NDUsMzM2''@;'; + put 'put ''NDYsMzM3MTIsMzM2NTYsMzM3MTUsMzM3MTYsMzM2OTYsMzM3MDYsMzM2ODMsMzM2OTIsMzM2NjksMzM2NjAsMzM3MTgsMzM3MDUsMzM2NjEsMzM3MjAsMzM2NTksMzM2ODgsMzM2OTQsMzM3MDQsMzM3MjIsMzM3MjQsMzM3MjksMzM3OTMsMzM3NjUsMzM3NTIsMjI1MzUsMzM4MTYsMzM4MDMs''@;'; + put 'put ''MzM3NTcsMzM3ODksMzM3NTAsMzM4MjAsMzM4NDgsMzM4MDksMzM3OTgsMzM3NDgsMzM3NTksMzM4MDcsMzM3OTUsMzM3ODQsMzM3ODUsMzM3NzAsMzM3MzMsMzM3MjgsMzM4MzAsMzM3NzYsMzM3NjEsMzM4ODQsMzM4NzMsMzM4ODIsMzM4ODEsMzM5MDcsMzM5MjcsMzM5MjgsMzM5MTQsMzM5''@;'; + put 'put ''MjksMzM5MTIsMzM4NTIsMzM4NjIsMzM4OTcsMzM5MTAsMzM5MzIsMzM5MzQsMzM4NDEsMzM5MDEsMzM5ODUsMzM5OTcsMzRlMywzNDAyMiwzMzk4MSwzNDAwMywzMzk5NCwzMzk4MywzMzk3OCwzNDAxNiwzMzk1MywzMzk3NywzMzk3MiwzMzk0MywzNDAyMSwzNDAxOSwzNDA2MCwyOTk2NSwz''@;'; + put 'put ''NDEwNCwzNDAzMiwzNDEwNSwzNDA3OSwzNDEwNiwzNjY3NywzNjY3OCwzNjY3OSwzNjY4MCwzNjY4MSwzNjY4MiwzNjY4MywzNjY4NCwzNjY4NSwzNjY4NiwzNjY4NywzNjY4OCwzNjY4OSwzNjY5MCwzNjY5MSwzNjY5MiwzNjY5MywzNjY5NCwzNjY5NSwzNjY5NiwzNjY5NywzNjY5OCwzNjY5''@;'; + put 'put ''OSwzNjcwMCwzNjcwMSwzNjcwMiwzNjcwMywzNjcwNCwzNjcwNSwzNjcwNiwzNjcwNywzNjcwOCwzNjcwOSwzNjcxNCwzNjczNiwzNjc0OCwzNjc1NCwzNjc2NSwzNjc2OCwzNjc2OSwzNjc3MCwzNjc3MiwzNjc3MywzNjc3NCwzNjc3NSwzNjc3OCwzNjc4MCwzNjc4MSwzNjc4MiwzNjc4Mywz''@;'; + put 'put ''Njc4NiwzNjc4NywzNjc4OCwzNjc4OSwzNjc5MSwzNjc5MiwzNjc5NCwzNjc5NSwzNjc5NiwzNjc5OSwzNjgwMCwzNjgwMywzNjgwNiwzNjgwOSwzNjgxMCwzNjgxMSwzNjgxMiwzNjgxMywzNjgxNSwzNjgxOCwzNjgyMiwzNjgyMywzNjgyNiwzNjgzMiwzNjgzMywzNjgzNSwzNjgzOSwzNjg0''@;'; + put 'put ''NCwzNjg0NywzNjg0OSwzNjg1MCwzNjg1MiwzNjg1MywzNjg1NCwzNjg1OCwzNjg1OSwzNjg2MCwzNjg2MiwzNjg2MywzNjg3MSwzNjg3MiwzNjg3NiwzNjg3OCwzNjg4MywzNjg4NSwzNjg4OCwzNDEzNCwzNDEwNywzNDA0NywzNDA0NCwzNDEzNywzNDEyMCwzNDE1MiwzNDE0OCwzNDE0Miwz''@;'; + put 'put ''NDE3MCwzMDYyNiwzNDExNSwzNDE2MiwzNDE3MSwzNDIxMiwzNDIxNiwzNDE4MywzNDE5MSwzNDE2OSwzNDIyMiwzNDIwNCwzNDE4MSwzNDIzMywzNDIzMSwzNDIyNCwzNDI1OSwzNDI0MSwzNDI2OCwzNDMwMywzNDM0MywzNDMwOSwzNDM0NSwzNDMyNiwzNDM2NCwyNDMxOCwyNDMyOCwyMjg0''@;'; + put 'put ''NCwyMjg0OSwzMjgyMywyMjg2OSwyMjg3NCwyMjg3MiwyMTI2MywyMzU4NiwyMzU4OSwyMzU5NiwyMzYwNCwyNTE2NCwyNTE5NCwyNTI0NywyNTI3NSwyNTI5MCwyNTMwNiwyNTMwMywyNTMyNiwyNTM3OCwyNTMzNCwyNTQwMSwyNTQxOSwyNTQxMSwyNTUxNywyNTU5MCwyNTQ1NywyNTQ2Niwy''@;'; + put 'put ''NTQ4NiwyNTUyNCwyNTQ1MywyNTUxNiwyNTQ4MiwyNTQ0OSwyNTUxOCwyNTUzMiwyNTU4NiwyNTU5MiwyNTU2OCwyNTU5OSwyNTU0MCwyNTU2NiwyNTU1MCwyNTY4MiwyNTU0MiwyNTUzNCwyNTY2OSwyNTY2NSwyNTYxMSwyNTYyNywyNTYzMiwyNTYxMiwyNTYzOCwyNTYzMywyNTY5NCwyNTcz''@;'; + put 'put ''MiwyNTcwOSwyNTc1MCwzNjg4OSwzNjg5MiwzNjg5OSwzNjkwMCwzNjkwMSwzNjkwMywzNjkwNCwzNjkwNSwzNjkwNiwzNjkwNywzNjkwOCwzNjkxMiwzNjkxMywzNjkxNCwzNjkxNSwzNjkxNiwzNjkxOSwzNjkyMSwzNjkyMiwzNjkyNSwzNjkyNywzNjkyOCwzNjkzMSwzNjkzMywzNjkzNCwz''@;'; + put 'put ''NjkzNiwzNjkzNywzNjkzOCwzNjkzOSwzNjk0MCwzNjk0MiwzNjk0OCwzNjk0OSwzNjk1MCwzNjk1MywzNjk1NCwzNjk1NiwzNjk1NywzNjk1OCwzNjk1OSwzNjk2MCwzNjk2MSwzNjk2NCwzNjk2NiwzNjk2NywzNjk2OSwzNjk3MCwzNjk3MSwzNjk3MiwzNjk3NSwzNjk3NiwzNjk3NywzNjk3''@;'; + put 'put ''OCwzNjk3OSwzNjk4MiwzNjk4MywzNjk4NCwzNjk4NSwzNjk4NiwzNjk4NywzNjk4OCwzNjk5MCwzNjk5MywzNjk5NiwzNjk5NywzNjk5OCwzNjk5OSwzNzAwMSwzNzAwMiwzNzAwNCwzNzAwNSwzNzAwNiwzNzAwNywzNzAwOCwzNzAxMCwzNzAxMiwzNzAxNCwzNzAxNiwzNzAxOCwzNzAyMCwz''@;'; + put 'put ''NzAyMiwzNzAyMywzNzAyNCwzNzAyOCwzNzAyOSwzNzAzMSwzNzAzMiwzNzAzMywzNzAzNSwzNzAzNywzNzA0MiwzNzA0NywzNzA1MiwzNzA1MywzNzA1NSwzNzA1NiwyNTcyMiwyNTc4MywyNTc4NCwyNTc1MywyNTc4NiwyNTc5MiwyNTgwOCwyNTgxNSwyNTgyOCwyNTgyNiwyNTg2NSwyNTg5''@;'; + put 'put ''MywyNTkwMiwyNDMzMSwyNDUzMCwyOTk3NywyNDMzNywyMTM0MywyMTQ4OSwyMTUwMSwyMTQ4MSwyMTQ4MCwyMTQ5OSwyMTUyMiwyMTUyNiwyMTUxMCwyMTU3OSwyMTU4NiwyMTU4NywyMTU4OCwyMTU5MCwyMTU3MSwyMTUzNywyMTU5MSwyMTU5MywyMTUzOSwyMTU1NCwyMTYzNCwyMTY1Miwy''@;'; + put 'put ''MTYyMywyMTYxNywyMTYwNCwyMTY1OCwyMTY1OSwyMTYzNiwyMTYyMiwyMTYwNiwyMTY2MSwyMTcxMiwyMTY3NywyMTY5OCwyMTY4NCwyMTcxNCwyMTY3MSwyMTY3MCwyMTcxNSwyMTcxNiwyMTYxOCwyMTY2NywyMTcxNywyMTY5MSwyMTY5NSwyMTcwOCwyMTcyMSwyMTcyMiwyMTcyNCwyMTY3''@;'; + put 'put ''MywyMTY3NCwyMTY2OCwyMTcyNSwyMTcxMSwyMTcyNiwyMTc4NywyMTczNSwyMTc5MiwyMTc1NywyMTc4MCwyMTc0NywyMTc5NCwyMTc5NSwyMTc3NSwyMTc3NywyMTc5OSwyMTgwMiwyMTg2MywyMTkwMywyMTk0MSwyMTgzMywyMTg2OSwyMTgyNSwyMTg0NSwyMTgyMywyMTg0MCwyMTgyMCwz''@;'; + put 'put ''NzA1OCwzNzA1OSwzNzA2MiwzNzA2NCwzNzA2NSwzNzA2NywzNzA2OCwzNzA2OSwzNzA3NCwzNzA3NiwzNzA3NywzNzA3OCwzNzA4MCwzNzA4MSwzNzA4MiwzNzA4NiwzNzA4NywzNzA4OCwzNzA5MSwzNzA5MiwzNzA5MywzNzA5NywzNzA5OCwzNzEwMCwzNzEwMiwzNzEwNCwzNzEwNSwzNzEw''@;'; + put 'put ''NiwzNzEwNywzNzEwOSwzNzExMCwzNzExMSwzNzExMywzNzExNCwzNzExNSwzNzExNiwzNzExOSwzNzEyMCwzNzEyMSwzNzEyMywzNzEyNSwzNzEyNiwzNzEyNywzNzEyOCwzNzEyOSwzNzEzMCwzNzEzMSwzNzEzMiwzNzEzMywzNzEzNCwzNzEzNSwzNzEzNiwzNzEzNywzNzEzOCwzNzEzOSwz''@;'; + put 'put ''NzE0MCwzNzE0MSwzNzE0MiwzNzE0MywzNzE0NCwzNzE0NiwzNzE0NywzNzE0OCwzNzE0OSwzNzE1MSwzNzE1MiwzNzE1MywzNzE1NiwzNzE1NywzNzE1OCwzNzE1OSwzNzE2MCwzNzE2MSwzNzE2MiwzNzE2MywzNzE2NCwzNzE2NSwzNzE2NiwzNzE2OCwzNzE3MCwzNzE3MSwzNzE3MiwzNzE3''@;'; + put 'put ''MywzNzE3NCwzNzE3NSwzNzE3NiwzNzE3OCwzNzE3OSwzNzE4MCwzNzE4MSwzNzE4MiwzNzE4MywzNzE4NCwzNzE4NSwzNzE4NiwzNzE4OCwyMTgxNSwyMTg0NiwyMTg3NywyMTg3OCwyMTg3OSwyMTgxMSwyMTgwOCwyMTg1MiwyMTg5OSwyMTk3MCwyMTg5MSwyMTkzNywyMTk0NSwyMTg5Niwy''@;'; + put 'put ''MTg4OSwyMTkxOSwyMTg4NiwyMTk3NCwyMTkwNSwyMTg4MywyMTk4MywyMTk0OSwyMTk1MCwyMTkwOCwyMTkxMywyMTk5NCwyMjAwNywyMTk2MSwyMjA0NywyMTk2OSwyMTk5NSwyMTk5NiwyMTk3MiwyMTk5MCwyMTk4MSwyMTk1NiwyMTk5OSwyMTk4OSwyMjAwMiwyMjAwMywyMTk2NCwyMTk2''@;'; + put 'put ''NSwyMTk5MiwyMjAwNSwyMTk4OCwzNjc1NiwyMjA0NiwyMjAyNCwyMjAyOCwyMjAxNywyMjA1MiwyMjA1MSwyMjAxNCwyMjAxNiwyMjA1NSwyMjA2MSwyMjEwNCwyMjA3MywyMjEwMywyMjA2MCwyMjA5MywyMjExNCwyMjEwNSwyMjEwOCwyMjA5MiwyMjEwMCwyMjE1MCwyMjExNiwyMjEyOSwy''@;'; + put 'put ''MjEyMywyMjEzOSwyMjE0MCwyMjE0OSwyMjE2MywyMjE5MSwyMjIyOCwyMjIzMSwyMjIzNywyMjI0MSwyMjI2MSwyMjI1MSwyMjI2NSwyMjI3MSwyMjI3NiwyMjI4MiwyMjI4MSwyMjMwMCwyNDA3OSwyNDA4OSwyNDA4NCwyNDA4MSwyNDExMywyNDEyMywyNDEyNCwzNzE4OSwzNzE5MSwzNzE5''@;'; + put 'put ''MiwzNzIwMSwzNzIwMywzNzIwNCwzNzIwNSwzNzIwNiwzNzIwOCwzNzIwOSwzNzIxMSwzNzIxMiwzNzIxNSwzNzIxNiwzNzIyMiwzNzIyMywzNzIyNCwzNzIyNywzNzIyOSwzNzIzNSwzNzI0MiwzNzI0MywzNzI0NCwzNzI0OCwzNzI0OSwzNzI1MCwzNzI1MSwzNzI1MiwzNzI1NCwzNzI1Niwz''@;'; + put 'put ''NzI1OCwzNzI2MiwzNzI2MywzNzI2NywzNzI2OCwzNzI2OSwzNzI3MCwzNzI3MSwzNzI3MiwzNzI3MywzNzI3NiwzNzI3NywzNzI3OCwzNzI3OSwzNzI4MCwzNzI4MSwzNzI4NCwzNzI4NSwzNzI4NiwzNzI4NywzNzI4OCwzNzI4OSwzNzI5MSwzNzI5MiwzNzI5NiwzNzI5NywzNzI5OCwzNzI5''@;'; + put 'put ''OSwzNzMwMiwzNzMwMywzNzMwNCwzNzMwNSwzNzMwNywzNzMwOCwzNzMwOSwzNzMxMCwzNzMxMSwzNzMxMiwzNzMxMywzNzMxNCwzNzMxNSwzNzMxNiwzNzMxNywzNzMxOCwzNzMyMCwzNzMyMywzNzMyOCwzNzMzMCwzNzMzMSwzNzMzMiwzNzMzMywzNzMzNCwzNzMzNSwzNzMzNiwzNzMzNywz''@;'; + put 'put ''NzMzOCwzNzMzOSwzNzM0MSwzNzM0MiwzNzM0MywzNzM0NCwzNzM0NSwzNzM0NiwzNzM0NywzNzM0OCwzNzM0OSwyNDExOSwyNDEzMiwyNDE0OCwyNDE1NSwyNDE1OCwyNDE2MSwyMzY5MiwyMzY3NCwyMzY5MywyMzY5NiwyMzcwMiwyMzY4OCwyMzcwNCwyMzcwNSwyMzY5NywyMzcwNiwyMzcw''@;'; + put 'put ''OCwyMzczMywyMzcxNCwyMzc0MSwyMzcyNCwyMzcyMywyMzcyOSwyMzcxNSwyMzc0NSwyMzczNSwyMzc0OCwyMzc2MiwyMzc4MCwyMzc1NSwyMzc4MSwyMzgxMCwyMzgxMSwyMzg0NywyMzg0NiwyMzg1NCwyMzg0NCwyMzgzOCwyMzgxNCwyMzgzNSwyMzg5NiwyMzg3MCwyMzg2MCwyMzg2OSwy''@;'; + put 'put ''MzkxNiwyMzg5OSwyMzkxOSwyMzkwMSwyMzkxNSwyMzg4MywyMzg4MiwyMzkxMywyMzkyNCwyMzkzOCwyMzk2MSwyMzk2NSwzNTk1NSwyMzk5MSwyNDAwNSwyNDQzNSwyNDQzOSwyNDQ1MCwyNDQ1NSwyNDQ1NywyNDQ2MCwyNDQ2OSwyNDQ3MywyNDQ3NiwyNDQ4OCwyNDQ5MywyNDUwMSwyNDUw''@;'; + put 'put ''OCwzNDkxNCwyNDQxNywyOTM1NywyOTM2MCwyOTM2NCwyOTM2NywyOTM2OCwyOTM3OSwyOTM3NywyOTM5MCwyOTM4OSwyOTM5NCwyOTQxNiwyOTQyMywyOTQxNywyOTQyNiwyOTQyOCwyOTQzMSwyOTQ0MSwyOTQyNywyOTQ0MywyOTQzNCwzNzM1MCwzNzM1MSwzNzM1MiwzNzM1MywzNzM1NCwz''@;'; + put 'put ''NzM1NSwzNzM1NiwzNzM1NywzNzM1OCwzNzM1OSwzNzM2MCwzNzM2MSwzNzM2MiwzNzM2MywzNzM2NCwzNzM2NSwzNzM2NiwzNzM2NywzNzM2OCwzNzM2OSwzNzM3MCwzNzM3MSwzNzM3MiwzNzM3MywzNzM3NCwzNzM3NSwzNzM3NiwzNzM3NywzNzM3OCwzNzM3OSwzNzM4MCwzNzM4MSwzNzM4''@;'; + put 'put ''MiwzNzM4MywzNzM4NCwzNzM4NSwzNzM4NiwzNzM4NywzNzM4OCwzNzM4OSwzNzM5MCwzNzM5MSwzNzM5MiwzNzM5MywzNzM5NCwzNzM5NSwzNzM5NiwzNzM5NywzNzM5OCwzNzM5OSwzNzQwMCwzNzQwMSwzNzQwMiwzNzQwMywzNzQwNCwzNzQwNSwzNzQwNiwzNzQwNywzNzQwOCwzNzQwOSwz''@;'; + put 'put ''NzQxMCwzNzQxMSwzNzQxMiwzNzQxMywzNzQxNCwzNzQxNSwzNzQxNiwzNzQxNywzNzQxOCwzNzQxOSwzNzQyMCwzNzQyMSwzNzQyMiwzNzQyMywzNzQyNCwzNzQyNSwzNzQyNiwzNzQyNywzNzQyOCwzNzQyOSwzNzQzMCwzNzQzMSwzNzQzMiwzNzQzMywzNzQzNCwzNzQzNSwzNzQzNiwzNzQz''@;'; + put 'put ''NywzNzQzOCwzNzQzOSwzNzQ0MCwzNzQ0MSwzNzQ0MiwzNzQ0MywzNzQ0NCwzNzQ0NSwyOTQzNSwyOTQ2MywyOTQ1OSwyOTQ3MywyOTQ1MCwyOTQ3MCwyOTQ2OSwyOTQ2MSwyOTQ3NCwyOTQ5NywyOTQ3NywyOTQ4NCwyOTQ5NiwyOTQ4OSwyOTUyMCwyOTUxNywyOTUyNywyOTUzNiwyOTU0OCwy''@;'; + put 'put ''OTU1MSwyOTU2NiwzMzMwNywyMjgyMSwzOTE0MywyMjgyMCwyMjc4NiwzOTI2NywzOTI3MSwzOTI3MiwzOTI3MywzOTI3NCwzOTI3NSwzOTI3NiwzOTI4NCwzOTI4NywzOTI5MywzOTI5NiwzOTMwMCwzOTMwMywzOTMwNiwzOTMwOSwzOTMxMiwzOTMxMywzOTMxNSwzOTMxNiwzOTMxNywyNDE5''@;'; + put 'put ''MiwyNDIwOSwyNDIwMywyNDIxNCwyNDIyOSwyNDIyNCwyNDI0OSwyNDI0NSwyNDI1NCwyNDI0MywzNjE3OSwyNDI3NCwyNDI3MywyNDI4MywyNDI5NiwyNDI5OCwzMzIxMCwyNDUxNiwyNDUyMSwyNDUzNCwyNDUyNywyNDU3OSwyNDU1OCwyNDU4MCwyNDU0NSwyNDU0OCwyNDU3NCwyNDU4MSwy''@;'; + put 'put ''NDU4MiwyNDU1NCwyNDU1NywyNDU2OCwyNDYwMSwyNDYyOSwyNDYxNCwyNDYwMywyNDU5MSwyNDU4OSwyNDYxNywyNDYxOSwyNDU4NiwyNDYzOSwyNDYwOSwyNDY5NiwyNDY5NywyNDY5OSwyNDY5OCwyNDY0MiwzNzQ0NiwzNzQ0NywzNzQ0OCwzNzQ0OSwzNzQ1MCwzNzQ1MSwzNzQ1MiwzNzQ1''@;'; + put 'put ''MywzNzQ1NCwzNzQ1NSwzNzQ1NiwzNzQ1NywzNzQ1OCwzNzQ1OSwzNzQ2MCwzNzQ2MSwzNzQ2MiwzNzQ2MywzNzQ2NCwzNzQ2NSwzNzQ2NiwzNzQ2NywzNzQ2OCwzNzQ2OSwzNzQ3MCwzNzQ3MSwzNzQ3MiwzNzQ3MywzNzQ3NCwzNzQ3NSwzNzQ3NiwzNzQ3NywzNzQ3OCwzNzQ3OSwzNzQ4MCwz''@;'; + put 'put ''NzQ4MSwzNzQ4MiwzNzQ4MywzNzQ4NCwzNzQ4NSwzNzQ4NiwzNzQ4NywzNzQ4OCwzNzQ4OSwzNzQ5MCwzNzQ5MSwzNzQ5MywzNzQ5NCwzNzQ5NSwzNzQ5NiwzNzQ5NywzNzQ5OCwzNzQ5OSwzNzUwMCwzNzUwMSwzNzUwMiwzNzUwMywzNzUwNCwzNzUwNSwzNzUwNiwzNzUwNywzNzUwOCwzNzUw''@;'; + put 'put ''OSwzNzUxMCwzNzUxMSwzNzUxMiwzNzUxMywzNzUxNCwzNzUxNSwzNzUxNiwzNzUxNywzNzUxOSwzNzUyMCwzNzUyMSwzNzUyMiwzNzUyMywzNzUyNCwzNzUyNSwzNzUyNiwzNzUyNywzNzUyOCwzNzUyOSwzNzUzMCwzNzUzMSwzNzUzMiwzNzUzMywzNzUzNCwzNzUzNSwzNzUzNiwzNzUzNywz''@;'; + put 'put ''NzUzOCwzNzUzOSwzNzU0MCwzNzU0MSwzNzU0MiwzNzU0MywyNDY4MiwyNDcwMSwyNDcyNiwyNDczMCwyNDc0OSwyNDczMywyNDcwNywyNDcyMiwyNDcxNiwyNDczMSwyNDgxMiwyNDc2MywyNDc1MywyNDc5NywyNDc5MiwyNDc3NCwyNDc5NCwyNDc1NiwyNDg2NCwyNDg3MCwyNDg1MywyNDg2''@;'; + put 'put ''NywyNDgyMCwyNDgzMiwyNDg0NiwyNDg3NSwyNDkwNiwyNDk0OSwyNTAwNCwyNDk4MCwyNDk5OSwyNTAxNSwyNTA0NCwyNTA3NywyNDU0MSwzODU3OSwzODM3NywzODM3OSwzODM4NSwzODM4NywzODM4OSwzODM5MCwzODM5NiwzODM5OCwzODQwMywzODQwNCwzODQwNiwzODQwOCwzODQxMCwz''@;'; + put 'put ''ODQxMSwzODQxMiwzODQxMywzODQxNSwzODQxOCwzODQyMSwzODQyMiwzODQyMywzODQyNSwzODQyNiwyMDAxMiwyOTI0NywyNTEwOSwyNzcwMSwyNzczMiwyNzc0MCwyNzcyMiwyNzgxMSwyNzc4MSwyNzc5MiwyNzc5NiwyNzc4OCwyNzc1MiwyNzc1MywyNzc2NCwyNzc2NiwyNzc4MiwyNzgx''@;'; + put 'put ''NywyNzg1NiwyNzg2MCwyNzgyMSwyNzg5NSwyNzg5NiwyNzg4OSwyNzg2MywyNzgyNiwyNzg3MiwyNzg2MiwyNzg5OCwyNzg4MywyNzg4NiwyNzgyNSwyNzg1OSwyNzg4NywyNzkwMiwzNzU0NCwzNzU0NSwzNzU0NiwzNzU0NywzNzU0OCwzNzU0OSwzNzU1MSwzNzU1MiwzNzU1MywzNzU1NCwz''@;'; + put 'put ''NzU1NSwzNzU1NiwzNzU1NywzNzU1OCwzNzU1OSwzNzU2MCwzNzU2MSwzNzU2MiwzNzU2MywzNzU2NCwzNzU2NSwzNzU2NiwzNzU2NywzNzU2OCwzNzU2OSwzNzU3MCwzNzU3MSwzNzU3MiwzNzU3MywzNzU3NCwzNzU3NSwzNzU3NywzNzU3OCwzNzU3OSwzNzU4MCwzNzU4MSwzNzU4MiwzNzU4''@;'; + put 'put ''MywzNzU4NCwzNzU4NSwzNzU4NiwzNzU4NywzNzU4OCwzNzU4OSwzNzU5MCwzNzU5MSwzNzU5MiwzNzU5MywzNzU5NCwzNzU5NSwzNzU5NiwzNzU5NywzNzU5OCwzNzU5OSwzNzYwMCwzNzYwMSwzNzYwMiwzNzYwMywzNzYwNCwzNzYwNSwzNzYwNiwzNzYwNywzNzYwOCwzNzYwOSwzNzYxMCwz''@;'; + put 'put ''NzYxMSwzNzYxMiwzNzYxMywzNzYxNCwzNzYxNSwzNzYxNiwzNzYxNywzNzYxOCwzNzYxOSwzNzYyMCwzNzYyMSwzNzYyMiwzNzYyMywzNzYyNCwzNzYyNSwzNzYyNiwzNzYyNywzNzYyOCwzNzYyOSwzNzYzMCwzNzYzMSwzNzYzMiwzNzYzMywzNzYzNCwzNzYzNSwzNzYzNiwzNzYzNywzNzYz''@;'; + put 'put ''OCwzNzYzOSwzNzY0MCwzNzY0MSwyNzk2MSwyNzk0MywyNzkxNiwyNzk3MSwyNzk3NiwyNzkxMSwyNzkwOCwyNzkyOSwyNzkxOCwyNzk0NywyNzk4MSwyNzk1MCwyNzk1NywyNzkzMCwyNzk4MywyNzk4NiwyNzk4OCwyNzk1NSwyODA0OSwyODAxNSwyODA2MiwyODA2NCwyNzk5OCwyODA1MSwy''@;'; + put 'put ''ODA1MiwyNzk5NiwyOGUzLDI4MDI4LDI4MDAzLDI4MTg2LDI4MTAzLDI4MTAxLDI4MTI2LDI4MTc0LDI4MDk1LDI4MTI4LDI4MTc3LDI4MTM0LDI4MTI1LDI4MTIxLDI4MTgyLDI4MDc1LDI4MTcyLDI4MDc4LDI4MjAzLDI4MjcwLDI4MjM4LDI4MjY3LDI4MzM4LDI4MjU1LDI4Mjk0LDI4MjQz''@;'; + put 'put ''LDI4MjQ0LDI4MjEwLDI4MTk3LDI4MjI4LDI4MzgzLDI4MzM3LDI4MzEyLDI4Mzg0LDI4NDYxLDI4Mzg2LDI4MzI1LDI4MzI3LDI4MzQ5LDI4MzQ3LDI4MzQzLDI4Mzc1LDI4MzQwLDI4MzY3LDI4MzAzLDI4MzU0LDI4MzE5LDI4NTE0LDI4NDg2LDI4NDg3LDI4NDUyLDI4NDM3LDI4NDA5LDI4''@;'; + put 'put ''NDYzLDI4NDcwLDI4NDkxLDI4NTMyLDI4NDU4LDI4NDI1LDI4NDU3LDI4NTUzLDI4NTU3LDI4NTU2LDI4NTM2LDI4NTMwLDI4NTQwLDI4NTM4LDI4NjI1LDM3NjQyLDM3NjQzLDM3NjQ0LDM3NjQ1LDM3NjQ2LDM3NjQ3LDM3NjQ4LDM3NjQ5LDM3NjUwLDM3NjUxLDM3NjUyLDM3NjUzLDM3NjU0''@;'; + put 'put ''LDM3NjU1LDM3NjU2LDM3NjU3LDM3NjU4LDM3NjU5LDM3NjYwLDM3NjYxLDM3NjYyLDM3NjYzLDM3NjY0LDM3NjY1LDM3NjY2LDM3NjY3LDM3NjY4LDM3NjY5LDM3NjcwLDM3NjcxLDM3NjcyLDM3NjczLDM3Njc0LDM3Njc1LDM3Njc2LDM3Njc3LDM3Njc4LDM3Njc5LDM3NjgwLDM3NjgxLDM3''@;'; + put 'put ''NjgyLDM3NjgzLDM3Njg0LDM3Njg1LDM3Njg2LDM3Njg3LDM3Njg4LDM3Njg5LDM3NjkwLDM3NjkxLDM3NjkyLDM3NjkzLDM3Njk1LDM3Njk2LDM3Njk3LDM3Njk4LDM3Njk5LDM3NzAwLDM3NzAxLDM3NzAyLDM3NzAzLDM3NzA0LDM3NzA1LDM3NzA2LDM3NzA3LDM3NzA4LDM3NzA5LDM3NzEw''@;'; + put 'put ''LDM3NzExLDM3NzEyLDM3NzEzLDM3NzE0LDM3NzE1LDM3NzE2LDM3NzE3LDM3NzE4LDM3NzE5LDM3NzIwLDM3NzIxLDM3NzIyLDM3NzIzLDM3NzI0LDM3NzI1LDM3NzI2LDM3NzI3LDM3NzI4LDM3NzI5LDM3NzMwLDM3NzMxLDM3NzMyLDM3NzMzLDM3NzM0LDM3NzM1LDM3NzM2LDM3NzM3LDM3''@;'; + put 'put ''NzM5LDI4NjE3LDI4NTgzLDI4NjAxLDI4NTk4LDI4NjEwLDI4NjQxLDI4NjU0LDI4NjM4LDI4NjQwLDI4NjU1LDI4Njk4LDI4NzA3LDI4Njk5LDI4NzI5LDI4NzI1LDI4NzUxLDI4NzY2LDIzNDI0LDIzNDI4LDIzNDQ1LDIzNDQzLDIzNDYxLDIzNDgwLDI5OTk5LDM5NTgyLDI1NjUyLDIzNTI0''@;'; + put 'put ''LDIzNTM0LDM1MTIwLDIzNTM2LDM2NDIzLDM1NTkxLDM2NzkwLDM2ODE5LDM2ODIxLDM2ODM3LDM2ODQ2LDM2ODM2LDM2ODQxLDM2ODM4LDM2ODUxLDM2ODQwLDM2ODY5LDM2ODY4LDM2ODc1LDM2OTAyLDM2ODgxLDM2ODc3LDM2ODg2LDM2ODk3LDM2OTE3LDM2OTE4LDM2OTA5LDM2OTExLDM2''@;'; + put 'put ''OTMyLDM2OTQ1LDM2OTQ2LDM2OTQ0LDM2OTY4LDM2OTUyLDM2OTYyLDM2OTU1LDI2Mjk3LDM2OTgwLDM2OTg5LDM2OTk0LDM3ZTMsMzY5OTUsMzcwMDMsMjQ0MDAsMjQ0MDcsMjQ0MDYsMjQ0MDgsMjM2MTEsMjE2NzUsMjM2MzIsMjM2NDEsMjM0MDksMjM2NTEsMjM2NTQsMzI3MDAsMjQzNjIs''@;'; + put 'put ''MjQzNjEsMjQzNjUsMzMzOTYsMjQzODAsMzk3MzksMjM2NjIsMjI5MTMsMjI5MTUsMjI5MjUsMjI5NTMsMjI5NTQsMjI5NDcsMzc3NDAsMzc3NDEsMzc3NDIsMzc3NDMsMzc3NDQsMzc3NDUsMzc3NDYsMzc3NDcsMzc3NDgsMzc3NDksMzc3NTAsMzc3NTEsMzc3NTIsMzc3NTMsMzc3NTQsMzc3''@;'; + put 'put ''NTUsMzc3NTYsMzc3NTcsMzc3NTgsMzc3NTksMzc3NjAsMzc3NjEsMzc3NjIsMzc3NjMsMzc3NjQsMzc3NjUsMzc3NjYsMzc3NjcsMzc3NjgsMzc3NjksMzc3NzAsMzc3NzEsMzc3NzIsMzc3NzMsMzc3NzQsMzc3NzYsMzc3NzcsMzc3NzgsMzc3NzksMzc3ODAsMzc3ODEsMzc3ODIsMzc3ODMs''@;'; + put 'put ''Mzc3ODQsMzc3ODUsMzc3ODYsMzc3ODcsMzc3ODgsMzc3ODksMzc3OTAsMzc3OTEsMzc3OTIsMzc3OTMsMzc3OTQsMzc3OTUsMzc3OTYsMzc3OTcsMzc3OTgsMzc3OTksMzc4MDAsMzc4MDEsMzc4MDIsMzc4MDMsMzc4MDQsMzc4MDUsMzc4MDYsMzc4MDcsMzc4MDgsMzc4MDksMzc4MTAsMzc4''@;'; + put 'put ''MTEsMzc4MTIsMzc4MTMsMzc4MTQsMzc4MTUsMzc4MTYsMzc4MTcsMzc4MTgsMzc4MTksMzc4MjAsMzc4MjEsMzc4MjIsMzc4MjMsMzc4MjQsMzc4MjUsMzc4MjYsMzc4MjcsMzc4MjgsMzc4MjksMzc4MzAsMzc4MzEsMzc4MzIsMzc4MzMsMzc4MzUsMzc4MzYsMzc4MzcsMjI5MzUsMjI5ODYs''@;'; + put 'put ''MjI5NTUsMjI5NDIsMjI5NDgsMjI5OTQsMjI5NjIsMjI5NTksMjI5OTksMjI5NzQsMjMwNDUsMjMwNDYsMjMwMDUsMjMwNDgsMjMwMTEsMjNlMywyMzAzMywyMzA1MiwyMzA0OSwyMzA5MCwyMzA5MiwyMzA1NywyMzA3NSwyMzA1OSwyMzEwNCwyMzE0MywyMzExNCwyMzEyNSwyMzEwMCwyMzEz''@;'; + put 'put ''OCwyMzE1NywzMzAwNCwyMzIxMCwyMzE5NSwyMzE1OSwyMzE2MiwyMzIzMCwyMzI3NSwyMzIxOCwyMzI1MCwyMzI1MiwyMzIyNCwyMzI2NCwyMzI2NywyMzI4MSwyMzI1NCwyMzI3MCwyMzI1NiwyMzI2MCwyMzMwNSwyMzMxOSwyMzMxOCwyMzM0NiwyMzM1MSwyMzM2MCwyMzU3MywyMzU4MCwy''@;'; + put 'put ''MzM4NiwyMzM5NywyMzQxMSwyMzM3NywyMzM3OSwyMzM5NCwzOTU0MSwzOTU0MywzOTU0NCwzOTU0NiwzOTU1MSwzOTU0OSwzOTU1MiwzOTU1MywzOTU1NywzOTU2MCwzOTU2MiwzOTU2OCwzOTU3MCwzOTU3MSwzOTU3NCwzOTU3NiwzOTU3OSwzOTU4MCwzOTU4MSwzOTU4MywzOTU4NCwzOTU4''@;'; + put 'put ''NiwzOTU4NywzOTU4OSwzOTU5MSwzMjQxNSwzMjQxNywzMjQxOSwzMjQyMSwzMjQyNCwzMjQyNSwzNzgzOCwzNzgzOSwzNzg0MCwzNzg0MSwzNzg0MiwzNzg0MywzNzg0NCwzNzg0NSwzNzg0NywzNzg0OCwzNzg0OSwzNzg1MCwzNzg1MSwzNzg1MiwzNzg1MywzNzg1NCwzNzg1NSwzNzg1Niwz''@;'; + put 'put ''Nzg1NywzNzg1OCwzNzg1OSwzNzg2MCwzNzg2MSwzNzg2MiwzNzg2MywzNzg2NCwzNzg2NSwzNzg2NiwzNzg2NywzNzg2OCwzNzg2OSwzNzg3MCwzNzg3MSwzNzg3MiwzNzg3MywzNzg3NCwzNzg3NSwzNzg3NiwzNzg3NywzNzg3OCwzNzg3OSwzNzg4MCwzNzg4MSwzNzg4MiwzNzg4MywzNzg4''@;'; + put 'put ''NCwzNzg4NSwzNzg4NiwzNzg4NywzNzg4OCwzNzg4OSwzNzg5MCwzNzg5MSwzNzg5MiwzNzg5MywzNzg5NCwzNzg5NSwzNzg5NiwzNzg5NywzNzg5OCwzNzg5OSwzNzkwMCwzNzkwMSwzNzkwMiwzNzkwMywzNzkwNCwzNzkwNSwzNzkwNiwzNzkwNywzNzkwOCwzNzkwOSwzNzkxMCwzNzkxMSwz''@;'; + put 'put ''NzkxMiwzNzkxMywzNzkxNCwzNzkxNSwzNzkxNiwzNzkxNywzNzkxOCwzNzkxOSwzNzkyMCwzNzkyMSwzNzkyMiwzNzkyMywzNzkyNCwzNzkyNSwzNzkyNiwzNzkyNywzNzkyOCwzNzkyOSwzNzkzMCwzNzkzMSwzNzkzMiwzNzkzMywzNzkzNCwzMjQyOSwzMjQzMiwzMjQ0NiwzMjQ0OCwzMjQ0''@;'; + put 'put ''OSwzMjQ1MCwzMjQ1NywzMjQ1OSwzMjQ2MCwzMjQ2NCwzMjQ2OCwzMjQ3MSwzMjQ3NSwzMjQ4MCwzMjQ4MSwzMjQ4OCwzMjQ5MSwzMjQ5NCwzMjQ5NSwzMjQ5NywzMjQ5OCwzMjUyNSwzMjUwMiwzMjUwNiwzMjUwNywzMjUxMCwzMjUxMywzMjUxNCwzMjUxNSwzMjUxOSwzMjUyMCwzMjUyMywz''@;'; + put 'put ''MjUyNCwzMjUyNywzMjUyOSwzMjUzMCwzMjUzNSwzMjUzNywzMjU0MCwzMjUzOSwzMjU0MywzMjU0NSwzMjU0NiwzMjU0NywzMjU0OCwzMjU0OSwzMjU1MCwzMjU1MSwzMjU1NCwzMjU1NSwzMjU1NiwzMjU1NywzMjU1OSwzMjU2MCwzMjU2MSwzMjU2MiwzMjU2MywzMjU2NSwyNDE4NiwzMDA3''@;'; + put 'put ''OSwyNDAyNywzMDAxNCwzNzAxMywyOTU4MiwyOTU4NSwyOTYxNCwyOTYwMiwyOTU5OSwyOTY0NywyOTYzNCwyOTY0OSwyOTYyMywyOTYxOSwyOTYzMiwyOTY0MSwyOTY0MCwyOTY2OSwyOTY1NywzOTAzNiwyOTcwNiwyOTY3MywyOTY3MSwyOTY2MiwyOTYyNiwyOTY4MiwyOTcxMSwyOTczOCwy''@;'; + put 'put ''OTc4NywyOTczNCwyOTczMywyOTczNiwyOTc0NCwyOTc0MiwyOTc0MCwzNzkzNSwzNzkzNiwzNzkzNywzNzkzOCwzNzkzOSwzNzk0MCwzNzk0MSwzNzk0MiwzNzk0MywzNzk0NCwzNzk0NSwzNzk0NiwzNzk0NywzNzk0OCwzNzk0OSwzNzk1MSwzNzk1MiwzNzk1MywzNzk1NCwzNzk1NSwzNzk1''@;'; + put 'put ''NiwzNzk1NywzNzk1OCwzNzk1OSwzNzk2MCwzNzk2MSwzNzk2MiwzNzk2MywzNzk2NCwzNzk2NSwzNzk2NiwzNzk2NywzNzk2OCwzNzk2OSwzNzk3MCwzNzk3MSwzNzk3MiwzNzk3MywzNzk3NCwzNzk3NSwzNzk3NiwzNzk3NywzNzk3OCwzNzk3OSwzNzk4MCwzNzk4MSwzNzk4MiwzNzk4Mywz''@;'; + put 'put ''Nzk4NCwzNzk4NSwzNzk4NiwzNzk4NywzNzk4OCwzNzk4OSwzNzk5MCwzNzk5MSwzNzk5MiwzNzk5MywzNzk5NCwzNzk5NiwzNzk5NywzNzk5OCwzNzk5OSwzOGUzLDM4MDAxLDM4MDAyLDM4MDAzLDM4MDA0LDM4MDA1LDM4MDA2LDM4MDA3LDM4MDA4LDM4MDA5LDM4MDEwLDM4MDExLDM4MDEy''@;'; + put 'put ''LDM4MDEzLDM4MDE0LDM4MDE1LDM4MDE2LDM4MDE3LDM4MDE4LDM4MDE5LDM4MDIwLDM4MDMzLDM4MDM4LDM4MDQwLDM4MDg3LDM4MDk1LDM4MDk5LDM4MTAwLDM4MTA2LDM4MTE4LDM4MTM5LDM4MTcyLDM4MTc2LDI5NzIzLDI5NzIyLDI5NzYxLDI5Nzg4LDI5NzgzLDI5NzgxLDI5Nzg1LDI5''@;'; + put 'put ''ODE1LDI5ODA1LDI5ODIyLDI5ODUyLDI5ODM4LDI5ODI0LDI5ODI1LDI5ODMxLDI5ODM1LDI5ODU0LDI5ODY0LDI5ODY1LDI5ODQwLDI5ODYzLDI5OTA2LDI5ODgyLDM4ODkwLDM4ODkxLDM4ODkyLDI2NDQ0LDI2NDUxLDI2NDYyLDI2NDQwLDI2NDczLDI2NTMzLDI2NTAzLDI2NDc0LDI2NDgz''@;'; + put 'put ''LDI2NTIwLDI2NTM1LDI2NDg1LDI2NTM2LDI2NTI2LDI2NTQxLDI2NTA3LDI2NDg3LDI2NDkyLDI2NjA4LDI2NjMzLDI2NTg0LDI2NjM0LDI2NjAxLDI2NTQ0LDI2NjM2LDI2NTg1LDI2NTQ5LDI2NTg2LDI2NTQ3LDI2NTg5LDI2NjI0LDI2NTYzLDI2NTUyLDI2NTk0LDI2NjM4LDI2NTYxLDI2''@;'; + put 'put ''NjIxLDI2Njc0LDI2Njc1LDI2NzIwLDI2NzIxLDI2NzAyLDI2NzIyLDI2NjkyLDI2NzI0LDI2NzU1LDI2NjUzLDI2NzA5LDI2NzI2LDI2Njg5LDI2NzI3LDI2Njg4LDI2Njg2LDI2Njk4LDI2Njk3LDI2NjY1LDI2ODA1LDI2NzY3LDI2NzQwLDI2NzQzLDI2NzcxLDI2NzMxLDI2ODE4LDI2OTkw''@;'; + put 'put ''LDI2ODc2LDI2OTExLDI2OTEyLDI2ODczLDM4MTgzLDM4MTk1LDM4MjA1LDM4MjExLDM4MjE2LDM4MjE5LDM4MjI5LDM4MjM0LDM4MjQwLDM4MjU0LDM4MjYwLDM4MjYxLDM4MjYzLDM4MjY0LDM4MjY1LDM4MjY2LDM4MjY3LDM4MjY4LDM4MjY5LDM4MjcwLDM4MjcyLDM4MjczLDM4Mjc0LDM4''@;'; + put 'put ''Mjc1LDM4Mjc2LDM4Mjc3LDM4Mjc4LDM4Mjc5LDM4MjgwLDM4MjgxLDM4MjgyLDM4MjgzLDM4Mjg0LDM4Mjg1LDM4Mjg2LDM4Mjg3LDM4Mjg4LDM4Mjg5LDM4MjkwLDM4MjkxLDM4MjkyLDM4MjkzLDM4Mjk0LDM4Mjk1LDM4Mjk2LDM4Mjk3LDM4Mjk4LDM4Mjk5LDM4MzAwLDM4MzAxLDM4MzAy''@;'; + put 'put ''LDM4MzAzLDM4MzA0LDM4MzA1LDM4MzA2LDM4MzA3LDM4MzA4LDM4MzA5LDM4MzEwLDM4MzExLDM4MzEyLDM4MzEzLDM4MzE0LDM4MzE1LDM4MzE2LDM4MzE3LDM4MzE4LDM4MzE5LDM4MzIwLDM4MzIxLDM4MzIyLDM4MzIzLDM4MzI0LDM4MzI1LDM4MzI2LDM4MzI3LDM4MzI4LDM4MzI5LDM4''@;'; + put 'put ''MzMwLDM4MzMxLDM4MzMyLDM4MzMzLDM4MzM0LDM4MzM1LDM4MzM2LDM4MzM3LDM4MzM4LDM4MzM5LDM4MzQwLDM4MzQxLDM4MzQyLDM4MzQzLDM4MzQ0LDM4MzQ1LDM4MzQ2LDM4MzQ3LDI2OTE2LDI2ODY0LDI2ODkxLDI2ODgxLDI2OTY3LDI2ODUxLDI2ODk2LDI2OTkzLDI2OTM3LDI2OTc2''@;'; + put 'put ''LDI2OTQ2LDI2OTczLDI3MDEyLDI2OTg3LDI3MDA4LDI3MDMyLDI3ZTMsMjY5MzIsMjcwODQsMjcwMTUsMjcwMTYsMjcwODYsMjcwMTcsMjY5ODIsMjY5NzksMjcwMDEsMjcwMzUsMjcwNDcsMjcwNjcsMjcwNTEsMjcwNTMsMjcwOTIsMjcwNTcsMjcwNzMsMjcwODIsMjcxMDMsMjcwMjksMjcx''@;'; + put 'put ''MDQsMjcwMjEsMjcxMzUsMjcxODMsMjcxMTcsMjcxNTksMjcxNjAsMjcyMzcsMjcxMjIsMjcyMDQsMjcxOTgsMjcyOTYsMjcyMTYsMjcyMjcsMjcxODksMjcyNzgsMjcyNTcsMjcxOTcsMjcxNzYsMjcyMjQsMjcyNjAsMjcyODEsMjcyODAsMjczMDUsMjcyODcsMjczMDcsMjk0OTUsMjk1MjIs''@;'; + put 'put ''Mjc1MjEsMjc1MjIsMjc1MjcsMjc1MjQsMjc1MzgsMjc1MzksMjc1MzMsMjc1NDYsMjc1NDcsMjc1NTMsMjc1NjIsMzY3MTUsMzY3MTcsMzY3MjEsMzY3MjIsMzY3MjMsMzY3MjUsMzY3MjYsMzY3MjgsMzY3MjcsMzY3MjksMzY3MzAsMzY3MzIsMzY3MzQsMzY3MzcsMzY3MzgsMzY3NDAsMzY3''@;'; + put 'put ''NDMsMzY3NDcsMzgzNDgsMzgzNDksMzgzNTAsMzgzNTEsMzgzNTIsMzgzNTMsMzgzNTQsMzgzNTUsMzgzNTYsMzgzNTcsMzgzNTgsMzgzNTksMzgzNjAsMzgzNjEsMzgzNjIsMzgzNjMsMzgzNjQsMzgzNjUsMzgzNjYsMzgzNjcsMzgzNjgsMzgzNjksMzgzNzAsMzgzNzEsMzgzNzIsMzgzNzMs''@;'; + put 'put ''MzgzNzQsMzgzNzUsMzgzODAsMzgzOTksMzg0MDcsMzg0MTksMzg0MjQsMzg0MjcsMzg0MzAsMzg0MzIsMzg0MzUsMzg0MzYsMzg0MzcsMzg0MzgsMzg0MzksMzg0NDAsMzg0NDEsMzg0NDMsMzg0NDQsMzg0NDUsMzg0NDcsMzg0NDgsMzg0NTUsMzg0NTYsMzg0NTcsMzg0NTgsMzg0NjIsMzg0''@;'; + put 'put ''NjUsMzg0NjcsMzg0NzQsMzg0NzgsMzg0NzksMzg0ODEsMzg0ODIsMzg0ODMsMzg0ODYsMzg0ODcsMzg0ODgsMzg0ODksMzg0OTAsMzg0OTIsMzg0OTMsMzg0OTQsMzg0OTYsMzg0OTksMzg1MDEsMzg1MDIsMzg1MDcsMzg1MDksMzg1MTAsMzg1MTEsMzg1MTIsMzg1MTMsMzg1MTUsMzg1MjAs''@;'; + put 'put ''Mzg1MjEsMzg1MjIsMzg1MjMsMzg1MjQsMzg1MjUsMzg1MjYsMzg1MjcsMzg1MjgsMzg1MjksMzg1MzAsMzg1MzEsMzg1MzIsMzg1MzUsMzg1MzcsMzg1MzgsMzY3NDksMzY3NTAsMzY3NTEsMzY3NjAsMzY3NjIsMzY1NTgsMjUwOTksMjUxMTEsMjUxMTUsMjUxMTksMjUxMjIsMjUxMjEsMjUx''@;'; + put 'put ''MjUsMjUxMjQsMjUxMzIsMzMyNTUsMjk5MzUsMjk5NDAsMjk5NTEsMjk5NjcsMjk5NjksMjk5NzEsMjU5MDgsMjYwOTQsMjYwOTUsMjYwOTYsMjYxMjIsMjYxMzcsMjY0ODIsMjYxMTUsMjYxMzMsMjYxMTIsMjg4MDUsMjYzNTksMjYxNDEsMjYxNjQsMjYxNjEsMjYxNjYsMjYxNjUsMzI3NzQs''@;'; + put 'put ''MjYyMDcsMjYxOTYsMjYxNzcsMjYxOTEsMjYxOTgsMjYyMDksMjYxOTksMjYyMzEsMjYyNDQsMjYyNTIsMjYyNzksMjYyNjksMjYzMDIsMjYzMzEsMjYzMzIsMjYzNDIsMjYzNDUsMzYxNDYsMzYxNDcsMzYxNTAsMzYxNTUsMzYxNTcsMzYxNjAsMzYxNjUsMzYxNjYsMzYxNjgsMzYxNjksMzYx''@;'; + put 'put ''NjcsMzYxNzMsMzYxODEsMzYxODUsMzUyNzEsMzUyNzQsMzUyNzUsMzUyNzYsMzUyNzgsMzUyNzksMzUyODAsMzUyODEsMjkyOTQsMjkzNDMsMjkyNzcsMjkyODYsMjkyOTUsMjkzMTAsMjkzMTEsMjkzMTYsMjkzMjMsMjkzMjUsMjkzMjcsMjkzMzAsMjUzNTIsMjUzOTQsMjU1MjAsMzg1NDAs''@;'; + put 'put ''Mzg1NDIsMzg1NDUsMzg1NDYsMzg1NDcsMzg1NDksMzg1NTAsMzg1NTQsMzg1NTUsMzg1NTcsMzg1NTgsMzg1NTksMzg1NjAsMzg1NjEsMzg1NjIsMzg1NjMsMzg1NjQsMzg1NjUsMzg1NjYsMzg1NjgsMzg1NjksMzg1NzAsMzg1NzEsMzg1NzIsMzg1NzMsMzg1NzQsMzg1NzUsMzg1NzcsMzg1''@;'; + put 'put ''NzgsMzg1ODAsMzg1ODEsMzg1ODMsMzg1ODQsMzg1ODYsMzg1ODcsMzg1OTEsMzg1OTQsMzg1OTUsMzg2MDAsMzg2MDIsMzg2MDMsMzg2MDgsMzg2MDksMzg2MTEsMzg2MTIsMzg2MTQsMzg2MTUsMzg2MTYsMzg2MTcsMzg2MTgsMzg2MTksMzg2MjAsMzg2MjEsMzg2MjIsMzg2MjMsMzg2MjUs''@;'; + put 'put ''Mzg2MjYsMzg2MjcsMzg2MjgsMzg2MjksMzg2MzAsMzg2MzEsMzg2MzUsMzg2MzYsMzg2MzcsMzg2MzgsMzg2NDAsMzg2NDEsMzg2NDIsMzg2NDQsMzg2NDUsMzg2NDgsMzg2NTAsMzg2NTEsMzg2NTIsMzg2NTMsMzg2NTUsMzg2NTgsMzg2NTksMzg2NjEsMzg2NjYsMzg2NjcsMzg2NjgsMzg2''@;'; + put 'put ''NzIsMzg2NzMsMzg2NzQsMzg2NzYsMzg2NzcsMzg2NzksMzg2ODAsMzg2ODEsMzg2ODIsMzg2ODMsMzg2ODUsMzg2ODcsMzg2ODgsMjU2NjMsMjU4MTYsMzI3NzIsMjc2MjYsMjc2MzUsMjc2NDUsMjc2MzcsMjc2NDEsMjc2NTMsMjc2NTUsMjc2NTQsMjc2NjEsMjc2NjksMjc2NzIsMjc2NzMs''@;'; + put 'put ''Mjc2NzQsMjc2ODEsMjc2ODksMjc2ODQsMjc2OTAsMjc2OTgsMjU5MDksMjU5NDEsMjU5NjMsMjkyNjEsMjkyNjYsMjkyNzAsMjkyMzIsMzQ0MDIsMjEwMTQsMzI5MjcsMzI5MjQsMzI5MTUsMzI5NTYsMjYzNzgsMzI5NTcsMzI5NDUsMzI5MzksMzI5NDEsMzI5NDgsMzI5NTEsMzI5OTksMzNl''@;'; + put 'put ''MywzMzAwMSwzMzAwMiwzMjk4NywzMjk2MiwzMjk2NCwzMjk4NSwzMjk3MywzMjk4MywyNjM4NCwzMjk4OSwzMzAwMywzMzAwOSwzMzAxMiwzMzAwNSwzMzAzNywzMzAzOCwzMzAxMCwzMzAyMCwyNjM4OSwzMzA0MiwzNTkzMCwzMzA3OCwzMzA1NCwzMzA2OCwzMzA0OCwzMzA3NCwzMzA5Niwz''@;'; + put 'put ''MzEwMCwzMzEwNywzMzE0MCwzMzExMywzMzExNCwzMzEzNywzMzEyMCwzMzEyOSwzMzE0OCwzMzE0OSwzMzEzMywzMzEyNywyMjYwNSwyMzIyMSwzMzE2MCwzMzE1NCwzMzE2OSwyODM3MywzMzE4NywzMzE5NCwzMzIyOCwyNjQwNiwzMzIyNiwzMzIxMSwzODY4OSwzODY5MCwzODY5MSwzODY5''@;'; + put 'put ''MiwzODY5MywzODY5NCwzODY5NSwzODY5NiwzODY5NywzODY5OSwzODcwMCwzODcwMiwzODcwMywzODcwNSwzODcwNywzODcwOCwzODcwOSwzODcxMCwzODcxMSwzODcxNCwzODcxNSwzODcxNiwzODcxNywzODcxOSwzODcyMCwzODcyMSwzODcyMiwzODcyMywzODcyNCwzODcyNSwzODcyNiwz''@;'; + put 'put ''ODcyNywzODcyOCwzODcyOSwzODczMCwzODczMSwzODczMiwzODczMywzODczNCwzODczNSwzODczNiwzODczNywzODc0MCwzODc0MSwzODc0MywzODc0NCwzODc0NiwzODc0OCwzODc0OSwzODc1MSwzODc1NSwzODc1NiwzODc1OCwzODc1OSwzODc2MCwzODc2MiwzODc2MywzODc2NCwzODc2''@;'; + put 'put ''NSwzODc2NiwzODc2NywzODc2OCwzODc2OSwzODc3MCwzODc3MywzODc3NSwzODc3NiwzODc3NywzODc3OCwzODc3OSwzODc4MSwzODc4MiwzODc4MywzODc4NCwzODc4NSwzODc4NiwzODc4NywzODc4OCwzODc5MCwzODc5MSwzODc5MiwzODc5MywzODc5NCwzODc5NiwzODc5OCwzODc5OSwz''@;'; + put 'put ''ODgwMCwzODgwMywzODgwNSwzODgwNiwzODgwNywzODgwOSwzODgxMCwzODgxMSwzODgxMiwzODgxMywzMzIxNywzMzE5MCwyNzQyOCwyNzQ0NywyNzQ0OSwyNzQ1OSwyNzQ2MiwyNzQ4MSwzOTEyMSwzOTEyMiwzOTEyMywzOTEyNSwzOTEyOSwzOTEzMCwyNzU3MSwyNDM4NCwyNzU4NiwzNTMx''@;'; + put 'put ''NSwyNmUzLDQwNzg1LDI2MDAzLDI2MDQ0LDI2MDU0LDI2MDUyLDI2MDUxLDI2MDYwLDI2MDYyLDI2MDY2LDI2MDcwLDI4ODAwLDI4ODI4LDI4ODIyLDI4ODI5LDI4ODU5LDI4ODY0LDI4ODU1LDI4ODQzLDI4ODQ5LDI4OTA0LDI4ODc0LDI4OTQ0LDI4OTQ3LDI4OTUwLDI4OTc1LDI4OTc3LDI5''@;'; + put 'put ''MDQzLDI5MDIwLDI5MDMyLDI4OTk3LDI5MDQyLDI5MDAyLDI5MDQ4LDI5MDUwLDI5MDgwLDI5MTA3LDI5MTA5LDI5MDk2LDI5MDg4LDI5MTUyLDI5MTQwLDI5MTU5LDI5MTc3LDI5MjEzLDI5MjI0LDI4NzgwLDI4OTUyLDI5MDMwLDI5MTEzLDI1MTUwLDI1MTQ5LDI1MTU1LDI1MTYwLDI1MTYx''@;'; + put 'put ''LDMxMDM1LDMxMDQwLDMxMDQ2LDMxMDQ5LDMxMDY3LDMxMDY4LDMxMDU5LDMxMDY2LDMxMDc0LDMxMDYzLDMxMDcyLDMxMDg3LDMxMDc5LDMxMDk4LDMxMTA5LDMxMTE0LDMxMTMwLDMxMTQzLDMxMTU1LDI0NTI5LDI0NTI4LDM4ODE0LDM4ODE1LDM4ODE3LDM4ODE4LDM4ODIwLDM4ODIxLDM4''@;'; + put 'put ''ODIyLDM4ODIzLDM4ODI0LDM4ODI1LDM4ODI2LDM4ODI4LDM4ODMwLDM4ODMyLDM4ODMzLDM4ODM1LDM4ODM3LDM4ODM4LDM4ODM5LDM4ODQwLDM4ODQxLDM4ODQyLDM4ODQzLDM4ODQ0LDM4ODQ1LDM4ODQ2LDM4ODQ3LDM4ODQ4LDM4ODQ5LDM4ODUwLDM4ODUxLDM4ODUyLDM4ODUzLDM4ODU0''@;'; + put 'put ''LDM4ODU1LDM4ODU2LDM4ODU3LDM4ODU4LDM4ODU5LDM4ODYwLDM4ODYxLDM4ODYyLDM4ODYzLDM4ODY0LDM4ODY1LDM4ODY2LDM4ODY3LDM4ODY4LDM4ODY5LDM4ODcwLDM4ODcxLDM4ODcyLDM4ODczLDM4ODc0LDM4ODc1LDM4ODc2LDM4ODc3LDM4ODc4LDM4ODc5LDM4ODgwLDM4ODgxLDM4''@;'; + put 'put ''ODgyLDM4ODgzLDM4ODg0LDM4ODg1LDM4ODg4LDM4ODk0LDM4ODk1LDM4ODk2LDM4ODk3LDM4ODk4LDM4OTAwLDM4OTAzLDM4OTA0LDM4OTA1LDM4OTA2LDM4OTA3LDM4OTA4LDM4OTA5LDM4OTEwLDM4OTExLDM4OTEyLDM4OTEzLDM4OTE0LDM4OTE1LDM4OTE2LDM4OTE3LDM4OTE4LDM4OTE5''@;'; + put 'put ''LDM4OTIwLDM4OTIxLDM4OTIyLDM4OTIzLDM4OTI0LDM4OTI1LDM4OTI2LDI0NjM2LDI0NjY5LDI0NjY2LDI0Njc5LDI0NjQxLDI0NjY1LDI0Njc1LDI0NzQ3LDI0ODM4LDI0ODQ1LDI0OTI1LDI1MDAxLDI0OTg5LDI1MDM1LDI1MDQxLDI1MDk0LDMyODk2LDMyODk1LDI3Nzk1LDI3ODk0LDI4''@;'; + put 'put ''MTU2LDMwNzEwLDMwNzEyLDMwNzIwLDMwNzI5LDMwNzQzLDMwNzQ0LDMwNzM3LDI2MDI3LDMwNzY1LDMwNzQ4LDMwNzQ5LDMwNzc3LDMwNzc4LDMwNzc5LDMwNzUxLDMwNzgwLDMwNzU3LDMwNzY0LDMwNzU1LDMwNzYxLDMwNzk4LDMwODI5LDMwODA2LDMwODA3LDMwNzU4LDMwODAwLDMwNzkx''@;'; + put 'put ''LDMwNzk2LDMwODI2LDMwODc1LDMwODY3LDMwODc0LDMwODU1LDMwODc2LDMwODgxLDMwODgzLDMwODk4LDMwOTA1LDMwODg1LDMwOTMyLDMwOTM3LDMwOTIxLDMwOTU2LDMwOTYyLDMwOTgxLDMwOTY0LDMwOTk1LDMxMDEyLDMxMDA2LDMxMDI4LDQwODU5LDQwNjk3LDQwNjk5LDQwNzAwLDMw''@;'; + put 'put ''NDQ5LDMwNDY4LDMwNDc3LDMwNDU3LDMwNDcxLDMwNDcyLDMwNDkwLDMwNDk4LDMwNDg5LDMwNTA5LDMwNTAyLDMwNTE3LDMwNTIwLDMwNTQ0LDMwNTQ1LDMwNTM1LDMwNTMxLDMwNTU0LDMwNTY4LDM4OTI3LDM4OTI4LDM4OTI5LDM4OTMwLDM4OTMxLDM4OTMyLDM4OTMzLDM4OTM0LDM4OTM1''@;'; + put 'put ''LDM4OTM2LDM4OTM3LDM4OTM4LDM4OTM5LDM4OTQwLDM4OTQxLDM4OTQyLDM4OTQzLDM4OTQ0LDM4OTQ1LDM4OTQ2LDM4OTQ3LDM4OTQ4LDM4OTQ5LDM4OTUwLDM4OTUxLDM4OTUyLDM4OTUzLDM4OTU0LDM4OTU1LDM4OTU2LDM4OTU3LDM4OTU4LDM4OTU5LDM4OTYwLDM4OTYxLDM4OTYyLDM4''@;'; + put 'put ''OTYzLDM4OTY0LDM4OTY1LDM4OTY2LDM4OTY3LDM4OTY4LDM4OTY5LDM4OTcwLDM4OTcxLDM4OTcyLDM4OTczLDM4OTc0LDM4OTc1LDM4OTc2LDM4OTc3LDM4OTc4LDM4OTc5LDM4OTgwLDM4OTgxLDM4OTgyLDM4OTgzLDM4OTg0LDM4OTg1LDM4OTg2LDM4OTg3LDM4OTg4LDM4OTg5LDM4OTkw''@;'; + put 'put ''LDM4OTkxLDM4OTkyLDM4OTkzLDM4OTk0LDM4OTk1LDM4OTk2LDM4OTk3LDM4OTk4LDM4OTk5LDM5ZTMsMzkwMDEsMzkwMDIsMzkwMDMsMzkwMDQsMzkwMDUsMzkwMDYsMzkwMDcsMzkwMDgsMzkwMDksMzkwMTAsMzkwMTEsMzkwMTIsMzkwMTMsMzkwMTQsMzkwMTUsMzkwMTYsMzkwMTcsMzkw''@;'; + put 'put ''MTgsMzkwMTksMzkwMjAsMzkwMjEsMzkwMjIsMzA1NjIsMzA1NjUsMzA1OTEsMzA2MDUsMzA1ODksMzA1OTIsMzA2MDQsMzA2MDksMzA2MjMsMzA2MjQsMzA2NDAsMzA2NDUsMzA2NTMsMzAwMTAsMzAwMTYsMzAwMzAsMzAwMjcsMzAwMjQsMzAwNDMsMzAwNjYsMzAwNzMsMzAwODMsMzI2MDAs''@;'; + put 'put ''MzI2MDksMzI2MDcsMzU0MDAsMzI2MTYsMzI2MjgsMzI2MjUsMzI2MzMsMzI2NDEsMzI2MzgsMzA0MTMsMzA0MzcsMzQ4NjYsMzgwMjEsMzgwMjIsMzgwMjMsMzgwMjcsMzgwMjYsMzgwMjgsMzgwMjksMzgwMzEsMzgwMzIsMzgwMzYsMzgwMzksMzgwMzcsMzgwNDIsMzgwNDMsMzgwNDQsMzgw''@;'; + put 'put ''NTEsMzgwNTIsMzgwNTksMzgwNTgsMzgwNjEsMzgwNjAsMzgwNjMsMzgwNjQsMzgwNjYsMzgwNjgsMzgwNzAsMzgwNzEsMzgwNzIsMzgwNzMsMzgwNzQsMzgwNzYsMzgwNzcsMzgwNzksMzgwODQsMzgwODgsMzgwODksMzgwOTAsMzgwOTEsMzgwOTIsMzgwOTMsMzgwOTQsMzgwOTYsMzgwOTcs''@;'; + put 'put ''MzgwOTgsMzgxMDEsMzgxMDIsMzgxMDMsMzgxMDUsMzgxMDQsMzgxMDcsMzgxMTAsMzgxMTEsMzgxMTIsMzgxMTQsMzgxMTYsMzgxMTcsMzgxMTksMzgxMjAsMzgxMjIsMzkwMjMsMzkwMjQsMzkwMjUsMzkwMjYsMzkwMjcsMzkwMjgsMzkwNTEsMzkwNTQsMzkwNTgsMzkwNjEsMzkwNjUsMzkw''@;'; + put 'put ''NzUsMzkwODAsMzkwODEsMzkwODIsMzkwODMsMzkwODQsMzkwODUsMzkwODYsMzkwODcsMzkwODgsMzkwODksMzkwOTAsMzkwOTEsMzkwOTIsMzkwOTMsMzkwOTQsMzkwOTUsMzkwOTYsMzkwOTcsMzkwOTgsMzkwOTksMzkxMDAsMzkxMDEsMzkxMDIsMzkxMDMsMzkxMDQsMzkxMDUsMzkxMDYs''@;'; + put 'put ''MzkxMDcsMzkxMDgsMzkxMDksMzkxMTAsMzkxMTEsMzkxMTIsMzkxMTMsMzkxMTQsMzkxMTUsMzkxMTYsMzkxMTcsMzkxMTksMzkxMjAsMzkxMjQsMzkxMjYsMzkxMjcsMzkxMzEsMzkxMzIsMzkxMzMsMzkxMzYsMzkxMzcsMzkxMzgsMzkxMzksMzkxNDAsMzkxNDEsMzkxNDIsMzkxNDUsMzkx''@;'; + put 'put ''NDYsMzkxNDcsMzkxNDgsMzkxNDksMzkxNTAsMzkxNTEsMzkxNTIsMzkxNTMsMzkxNTQsMzkxNTUsMzkxNTYsMzkxNTcsMzkxNTgsMzkxNTksMzkxNjAsMzkxNjEsMzkxNjIsMzkxNjMsMzkxNjQsMzkxNjUsMzkxNjYsMzkxNjcsMzkxNjgsMzkxNjksMzkxNzAsMzkxNzEsMzkxNzIsMzkxNzMs''@;'; + put 'put ''MzkxNzQsMzkxNzUsMzgxMjEsMzgxMjMsMzgxMjYsMzgxMjcsMzgxMzEsMzgxMzIsMzgxMzMsMzgxMzUsMzgxMzcsMzgxNDAsMzgxNDEsMzgxNDMsMzgxNDcsMzgxNDYsMzgxNTAsMzgxNTEsMzgxNTMsMzgxNTQsMzgxNTcsMzgxNTgsMzgxNTksMzgxNjIsMzgxNjMsMzgxNjQsMzgxNjUsMzgx''@;'; + put 'put ''NjYsMzgxNjgsMzgxNzEsMzgxNzMsMzgxNzQsMzgxNzUsMzgxNzgsMzgxODYsMzgxODcsMzgxODUsMzgxODgsMzgxOTMsMzgxOTQsMzgxOTYsMzgxOTgsMzgxOTksMzgyMDAsMzgyMDQsMzgyMDYsMzgyMDcsMzgyMTAsMzgxOTcsMzgyMTIsMzgyMTMsMzgyMTQsMzgyMTcsMzgyMjAsMzgyMjIs''@;'; + put 'put ''MzgyMjMsMzgyMjYsMzgyMjcsMzgyMjgsMzgyMzAsMzgyMzEsMzgyMzIsMzgyMzMsMzgyMzUsMzgyMzgsMzgyMzksMzgyMzcsMzgyNDEsMzgyNDIsMzgyNDQsMzgyNDUsMzgyNDYsMzgyNDcsMzgyNDgsMzgyNDksMzgyNTAsMzgyNTEsMzgyNTIsMzgyNTUsMzgyNTcsMzgyNTgsMzgyNTksMzgy''@;'; + put 'put ''MDIsMzA2OTUsMzA3MDAsMzg2MDEsMzExODksMzEyMTMsMzEyMDMsMzEyMTEsMzEyMzgsMjM4NzksMzEyMzUsMzEyMzQsMzEyNjIsMzEyNTIsMzkxNzYsMzkxNzcsMzkxNzgsMzkxNzksMzkxODAsMzkxODIsMzkxODMsMzkxODUsMzkxODYsMzkxODcsMzkxODgsMzkxODksMzkxOTAsMzkxOTEs''@;'; + put 'put ''MzkxOTIsMzkxOTMsMzkxOTQsMzkxOTUsMzkxOTYsMzkxOTcsMzkxOTgsMzkxOTksMzkyMDAsMzkyMDEsMzkyMDIsMzkyMDMsMzkyMDQsMzkyMDUsMzkyMDYsMzkyMDcsMzkyMDgsMzkyMDksMzkyMTAsMzkyMTEsMzkyMTIsMzkyMTMsMzkyMTUsMzkyMTYsMzkyMTcsMzkyMTgsMzkyMTksMzky''@;'; + put 'put ''MjAsMzkyMjEsMzkyMjIsMzkyMjMsMzkyMjQsMzkyMjUsMzkyMjYsMzkyMjcsMzkyMjgsMzkyMjksMzkyMzAsMzkyMzEsMzkyMzIsMzkyMzMsMzkyMzQsMzkyMzUsMzkyMzYsMzkyMzcsMzkyMzgsMzkyMzksMzkyNDAsMzkyNDEsMzkyNDIsMzkyNDMsMzkyNDQsMzkyNDUsMzkyNDYsMzkyNDcs''@;'; + put 'put ''MzkyNDgsMzkyNDksMzkyNTAsMzkyNTEsMzkyNTQsMzkyNTUsMzkyNTYsMzkyNTcsMzkyNTgsMzkyNTksMzkyNjAsMzkyNjEsMzkyNjIsMzkyNjMsMzkyNjQsMzkyNjUsMzkyNjYsMzkyNjgsMzkyNzAsMzkyODMsMzkyODgsMzkyODksMzkyOTEsMzkyOTQsMzkyOTgsMzkyOTksMzkzMDUsMzEy''@;'; + put 'put ''ODksMzEyODcsMzEzMTMsNDA2NTUsMzkzMzMsMzEzNDQsMzAzNDQsMzAzNTAsMzAzNTUsMzAzNjEsMzAzNzIsMjk5MTgsMjk5MjAsMjk5OTYsNDA0ODAsNDA0ODIsNDA0ODgsNDA0ODksNDA0OTAsNDA0OTEsNDA0OTIsNDA0OTgsNDA0OTcsNDA1MDIsNDA1MDQsNDA1MDMsNDA1MDUsNDA1MDYs''@;'; + put 'put ''NDA1MTAsNDA1MTMsNDA1MTQsNDA1MTYsNDA1MTgsNDA1MTksNDA1MjAsNDA1MjEsNDA1MjMsNDA1MjQsNDA1MjYsNDA1MjksNDA1MzMsNDA1MzUsNDA1MzgsNDA1MzksNDA1NDAsNDA1NDIsNDA1NDcsNDA1NTAsNDA1NTEsNDA1NTIsNDA1NTMsNDA1NTQsNDA1NTUsNDA1NTYsNDA1NjEsNDA1''@;'; + put 'put ''NTcsNDA1NjMsMzAwOTgsMzAxMDAsMzAxMDIsMzAxMTIsMzAxMDksMzAxMjQsMzAxMTUsMzAxMzEsMzAxMzIsMzAxMzYsMzAxNDgsMzAxMjksMzAxMjgsMzAxNDcsMzAxNDYsMzAxNjYsMzAxNTcsMzAxNzksMzAxODQsMzAxODIsMzAxODAsMzAxODcsMzAxODMsMzAyMTEsMzAxOTMsMzAyMDQs''@;'; + put 'put ''MzAyMDcsMzAyMjQsMzAyMDgsMzAyMTMsMzAyMjAsMzAyMzEsMzAyMTgsMzAyNDUsMzAyMzIsMzAyMjksMzAyMzMsMzkzMDgsMzkzMTAsMzkzMjIsMzkzMjMsMzkzMjQsMzkzMjUsMzkzMjYsMzkzMjcsMzkzMjgsMzkzMjksMzkzMzAsMzkzMzEsMzkzMzIsMzkzMzQsMzkzMzUsMzkzMzcsMzkz''@;'; + put 'put ''MzgsMzkzMzksMzkzNDAsMzkzNDEsMzkzNDIsMzkzNDMsMzkzNDQsMzkzNDUsMzkzNDYsMzkzNDcsMzkzNDgsMzkzNDksMzkzNTAsMzkzNTEsMzkzNTIsMzkzNTMsMzkzNTQsMzkzNTUsMzkzNTYsMzkzNTcsMzkzNTgsMzkzNTksMzkzNjAsMzkzNjEsMzkzNjIsMzkzNjMsMzkzNjQsMzkzNjUs''@;'; + put 'put ''MzkzNjYsMzkzNjcsMzkzNjgsMzkzNjksMzkzNzAsMzkzNzEsMzkzNzIsMzkzNzMsMzkzNzQsMzkzNzUsMzkzNzYsMzkzNzcsMzkzNzgsMzkzNzksMzkzODAsMzkzODEsMzkzODIsMzkzODMsMzkzODQsMzkzODUsMzkzODYsMzkzODcsMzkzODgsMzkzODksMzkzOTAsMzkzOTEsMzkzOTIsMzkz''@;'; + put 'put ''OTMsMzkzOTQsMzkzOTUsMzkzOTYsMzkzOTcsMzkzOTgsMzkzOTksMzk0MDAsMzk0MDEsMzk0MDIsMzk0MDMsMzk0MDQsMzk0MDUsMzk0MDYsMzk0MDcsMzk0MDgsMzk0MDksMzk0MTAsMzk0MTEsMzk0MTIsMzk0MTMsMzk0MTQsMzk0MTUsMzk0MTYsMzk0MTcsMzAyMzUsMzAyNjgsMzAyNDIs''@;'; + put 'put ''MzAyNDAsMzAyNzIsMzAyNTMsMzAyNTYsMzAyNzEsMzAyNjEsMzAyNzUsMzAyNzAsMzAyNTksMzAyODUsMzAzMDIsMzAyOTIsMzAzMDAsMzAyOTQsMzAzMTUsMzAzMTksMzI3MTQsMzE0NjIsMzEzNTIsMzEzNTMsMzEzNjAsMzEzNjYsMzEzNjgsMzEzODEsMzEzOTgsMzEzOTIsMzE0MDQsMzE0''@;'; + put 'put ''MDAsMzE0MDUsMzE0MTEsMzQ5MTYsMzQ5MjEsMzQ5MzAsMzQ5NDEsMzQ5NDMsMzQ5NDYsMzQ5NzgsMzUwMTQsMzQ5OTksMzUwMDQsMzUwMTcsMzUwNDIsMzUwMjIsMzUwNDMsMzUwNDUsMzUwNTcsMzUwOTgsMzUwNjgsMzUwNDgsMzUwNzAsMzUwNTYsMzUxMDUsMzUwOTcsMzUwOTEsMzUwOTks''@;'; + put 'put ''MzUwODIsMzUxMjQsMzUxMTUsMzUxMjYsMzUxMzcsMzUxNzQsMzUxOTUsMzAwOTEsMzI5OTcsMzAzODYsMzAzODgsMzA2ODQsMzI3ODYsMzI3ODgsMzI3OTAsMzI3OTYsMzI4MDAsMzI4MDIsMzI4MDUsMzI4MDYsMzI4MDcsMzI4MDksMzI4MDgsMzI4MTcsMzI3NzksMzI4MjEsMzI4MzUsMzI4''@;'; + put 'put ''MzgsMzI4NDUsMzI4NTAsMzI4NzMsMzI4ODEsMzUyMDMsMzkwMzIsMzkwNDAsMzkwNDMsMzk0MTgsMzk0MTksMzk0MjAsMzk0MjEsMzk0MjIsMzk0MjMsMzk0MjQsMzk0MjUsMzk0MjYsMzk0MjcsMzk0MjgsMzk0MjksMzk0MzAsMzk0MzEsMzk0MzIsMzk0MzMsMzk0MzQsMzk0MzUsMzk0MzYs''@;'; + put 'put ''Mzk0MzcsMzk0MzgsMzk0MzksMzk0NDAsMzk0NDEsMzk0NDIsMzk0NDMsMzk0NDQsMzk0NDUsMzk0NDYsMzk0NDcsMzk0NDgsMzk0NDksMzk0NTAsMzk0NTEsMzk0NTIsMzk0NTMsMzk0NTQsMzk0NTUsMzk0NTYsMzk0NTcsMzk0NTgsMzk0NTksMzk0NjAsMzk0NjEsMzk0NjIsMzk0NjMsMzk0''@;'; + put 'put ''NjQsMzk0NjUsMzk0NjYsMzk0NjcsMzk0NjgsMzk0NjksMzk0NzAsMzk0NzEsMzk0NzIsMzk0NzMsMzk0NzQsMzk0NzUsMzk0NzYsMzk0NzcsMzk0NzgsMzk0NzksMzk0ODAsMzk0ODEsMzk0ODIsMzk0ODMsMzk0ODQsMzk0ODUsMzk0ODYsMzk0ODcsMzk0ODgsMzk0ODksMzk0OTAsMzk0OTEs''@;'; + put 'put ''Mzk0OTIsMzk0OTMsMzk0OTQsMzk0OTUsMzk0OTYsMzk0OTcsMzk0OTgsMzk0OTksMzk1MDAsMzk1MDEsMzk1MDIsMzk1MDMsMzk1MDQsMzk1MDUsMzk1MDYsMzk1MDcsMzk1MDgsMzk1MDksMzk1MTAsMzk1MTEsMzk1MTIsMzk1MTMsMzkwNDksMzkwNTIsMzkwNTMsMzkwNTUsMzkwNjAsMzkw''@;'; + put 'put ''NjYsMzkwNjcsMzkwNzAsMzkwNzEsMzkwNzMsMzkwNzQsMzkwNzcsMzkwNzgsMzQzODEsMzQzODgsMzQ0MTIsMzQ0MTQsMzQ0MzEsMzQ0MjYsMzQ0MjgsMzQ0MjcsMzQ0NzIsMzQ0NDUsMzQ0NDMsMzQ0NzYsMzQ0NjEsMzQ0NzEsMzQ0NjcsMzQ0NzQsMzQ0NTEsMzQ0NzMsMzQ0ODYsMzQ1MDAs''@;'; + put 'put ''MzQ0ODUsMzQ1MTAsMzQ0ODAsMzQ0OTAsMzQ0ODEsMzQ0NzksMzQ1MDUsMzQ1MTEsMzQ0ODQsMzQ1MzcsMzQ1NDUsMzQ1NDYsMzQ1NDEsMzQ1NDcsMzQ1MTIsMzQ1NzksMzQ1MjYsMzQ1NDgsMzQ1MjcsMzQ1MjAsMzQ1MTMsMzQ1NjMsMzQ1NjcsMzQ1NTIsMzQ1NjgsMzQ1NzAsMzQ1NzMsMzQ1''@;'; + put 'put ''NjksMzQ1OTUsMzQ2MTksMzQ1OTAsMzQ1OTcsMzQ2MDYsMzQ1ODYsMzQ2MjIsMzQ2MzIsMzQ2MTIsMzQ2MDksMzQ2MDEsMzQ2MTUsMzQ2MjMsMzQ2OTAsMzQ1OTQsMzQ2ODUsMzQ2ODYsMzQ2ODMsMzQ2NTYsMzQ2NzIsMzQ2MzYsMzQ2NzAsMzQ2OTksMzQ2NDMsMzQ2NTksMzQ2ODQsMzQ2NjAs''@;'; + put 'put ''MzQ2NDksMzQ2NjEsMzQ3MDcsMzQ3MzUsMzQ3MjgsMzQ3NzAsMzk1MTQsMzk1MTUsMzk1MTYsMzk1MTcsMzk1MTgsMzk1MTksMzk1MjAsMzk1MjEsMzk1MjIsMzk1MjMsMzk1MjQsMzk1MjUsMzk1MjYsMzk1MjcsMzk1MjgsMzk1MjksMzk1MzAsMzk1MzEsMzk1MzgsMzk1NTUsMzk1NjEsMzk1''@;'; + put 'put ''NjUsMzk1NjYsMzk1NzIsMzk1NzMsMzk1NzcsMzk1OTAsMzk1OTMsMzk1OTQsMzk1OTUsMzk1OTYsMzk1OTcsMzk1OTgsMzk1OTksMzk2MDIsMzk2MDMsMzk2MDQsMzk2MDUsMzk2MDksMzk2MTEsMzk2MTMsMzk2MTQsMzk2MTUsMzk2MTksMzk2MjAsMzk2MjIsMzk2MjMsMzk2MjQsMzk2MjUs''@;'; + put 'put ''Mzk2MjYsMzk2MjksMzk2MzAsMzk2MzEsMzk2MzIsMzk2MzQsMzk2MzYsMzk2MzcsMzk2MzgsMzk2MzksMzk2NDEsMzk2NDIsMzk2NDMsMzk2NDQsMzk2NDUsMzk2NDYsMzk2NDgsMzk2NTAsMzk2NTEsMzk2NTIsMzk2NTMsMzk2NTUsMzk2NTYsMzk2NTcsMzk2NTgsMzk2NjAsMzk2NjIsMzk2''@;'; + put 'put ''NjQsMzk2NjUsMzk2NjYsMzk2NjcsMzk2NjgsMzk2NjksMzk2NzAsMzk2NzEsMzk2NzIsMzk2NzQsMzk2NzYsMzk2NzcsMzk2NzgsMzk2NzksMzk2ODAsMzk2ODEsMzk2ODIsMzk2ODQsMzk2ODUsMzk2ODYsMzQ3NTgsMzQ2OTYsMzQ2OTMsMzQ3MzMsMzQ3MTEsMzQ2OTEsMzQ3MzEsMzQ3ODks''@;'; + put 'put ''MzQ3MzIsMzQ3NDEsMzQ3MzksMzQ3NjMsMzQ3NzEsMzQ3NDksMzQ3NjksMzQ3NTIsMzQ3NjIsMzQ3NzksMzQ3OTQsMzQ3ODQsMzQ3OTgsMzQ4MzgsMzQ4MzUsMzQ4MTQsMzQ4MjYsMzQ4NDMsMzQ4NDksMzQ4NzMsMzQ4NzYsMzI1NjYsMzI1NzgsMzI1ODAsMzI1ODEsMzMyOTYsMzE0ODIsMzE0''@;'; + put 'put ''ODUsMzE0OTYsMzE0OTEsMzE0OTIsMzE1MDksMzE0OTgsMzE1MzEsMzE1MDMsMzE1NTksMzE1NDQsMzE1MzAsMzE1MTMsMzE1MzQsMzE1MzcsMzE1MjAsMzE1MjUsMzE1MjQsMzE1MzksMzE1NTAsMzE1MTgsMzE1NzYsMzE1NzgsMzE1NTcsMzE2MDUsMzE1NjQsMzE1ODEsMzE1ODQsMzE1OTgs''@;'; + put 'put ''MzE2MTEsMzE1ODYsMzE2MDIsMzE2MDEsMzE2MzIsMzE2NTQsMzE2NTUsMzE2NzIsMzE2NjAsMzE2NDUsMzE2NTYsMzE2MjEsMzE2NTgsMzE2NDQsMzE2NTAsMzE2NTksMzE2NjgsMzE2OTcsMzE2ODEsMzE2OTIsMzE3MDksMzE3MDYsMzE3MTcsMzE3MTgsMzE3MjIsMzE3NTYsMzE3NDIsMzE3''@;'; + put 'put ''NDAsMzE3NTksMzE3NjYsMzE3NTUsMzk2ODcsMzk2ODksMzk2OTAsMzk2OTEsMzk2OTIsMzk2OTMsMzk2OTQsMzk2OTYsMzk2OTcsMzk2OTgsMzk3MDAsMzk3MDEsMzk3MDIsMzk3MDMsMzk3MDQsMzk3MDUsMzk3MDYsMzk3MDcsMzk3MDgsMzk3MDksMzk3MTAsMzk3MTIsMzk3MTMsMzk3MTQs''@;'; + put 'put ''Mzk3MTYsMzk3MTcsMzk3MTgsMzk3MTksMzk3MjAsMzk3MjEsMzk3MjIsMzk3MjMsMzk3MjQsMzk3MjUsMzk3MjYsMzk3MjgsMzk3MjksMzk3MzEsMzk3MzIsMzk3MzMsMzk3MzQsMzk3MzUsMzk3MzYsMzk3MzcsMzk3MzgsMzk3NDEsMzk3NDIsMzk3NDMsMzk3NDQsMzk3NTAsMzk3NTQsMzk3''@;'; + put 'put ''NTUsMzk3NTYsMzk3NTgsMzk3NjAsMzk3NjIsMzk3NjMsMzk3NjUsMzk3NjYsMzk3NjcsMzk3NjgsMzk3NjksMzk3NzAsMzk3NzEsMzk3NzIsMzk3NzMsMzk3NzQsMzk3NzUsMzk3NzYsMzk3NzcsMzk3NzgsMzk3NzksMzk3ODAsMzk3ODEsMzk3ODIsMzk3ODMsMzk3ODQsMzk3ODUsMzk3ODYs''@;'; + put 'put ''Mzk3ODcsMzk3ODgsMzk3ODksMzk3OTAsMzk3OTEsMzk3OTIsMzk3OTMsMzk3OTQsMzk3OTUsMzk3OTYsMzk3OTcsMzk3OTgsMzk3OTksMzk4MDAsMzk4MDEsMzk4MDIsMzk4MDMsMzE3NzUsMzE3ODYsMzE3ODIsMzE4MDAsMzE4MDksMzE4MDgsMzMyNzgsMzMyODEsMzMyODIsMzMyODQsMzMy''@;'; + put 'put ''NjAsMzQ4ODQsMzMzMTMsMzMzMTQsMzMzMTUsMzMzMjUsMzMzMjcsMzMzMjAsMzMzMjMsMzMzMzYsMzMzMzksMzMzMzEsMzMzMzIsMzMzNDIsMzMzNDgsMzMzNTMsMzMzNTUsMzMzNTksMzMzNzAsMzMzNzUsMzMzODQsMzQ5NDIsMzQ5NDksMzQ5NTIsMzUwMzIsMzUwMzksMzUxNjYsMzI2Njks''@;'; + put 'put ''MzI2NzEsMzI2NzksMzI2ODcsMzI2ODgsMzI2OTAsMzE4NjgsMjU5MjksMzE4ODksMzE5MDEsMzE5MDAsMzE5MDIsMzE5MDYsMzE5MjIsMzE5MzIsMzE5MzMsMzE5MzcsMzE5NDMsMzE5NDgsMzE5NDksMzE5NDQsMzE5NDEsMzE5NTksMzE5NzYsMzMzOTAsMjYyODAsMzI3MDMsMzI3MTgsMzI3''@;'; + put 'put ''MjUsMzI3NDEsMzI3MzcsMzI3NDIsMzI3NDUsMzI3NTAsMzI3NTUsMzE5OTIsMzIxMTksMzIxNjYsMzIxNzQsMzIzMjcsMzI0MTEsNDA2MzIsNDA2MjgsMzYyMTEsMzYyMjgsMzYyNDQsMzYyNDEsMzYyNzMsMzYxOTksMzYyMDUsMzU5MTEsMzU5MTMsMzcxOTQsMzcyMDAsMzcxOTgsMzcxOTks''@;'; + put 'put ''MzcyMjAsMzk4MDQsMzk4MDUsMzk4MDYsMzk4MDcsMzk4MDgsMzk4MDksMzk4MTAsMzk4MTEsMzk4MTIsMzk4MTMsMzk4MTQsMzk4MTUsMzk4MTYsMzk4MTcsMzk4MTgsMzk4MTksMzk4MjAsMzk4MjEsMzk4MjIsMzk4MjMsMzk4MjQsMzk4MjUsMzk4MjYsMzk4MjcsMzk4MjgsMzk4MjksMzk4''@;'; + put 'put ''MzAsMzk4MzEsMzk4MzIsMzk4MzMsMzk4MzQsMzk4MzUsMzk4MzYsMzk4MzcsMzk4MzgsMzk4MzksMzk4NDAsMzk4NDEsMzk4NDIsMzk4NDMsMzk4NDQsMzk4NDUsMzk4NDYsMzk4NDcsMzk4NDgsMzk4NDksMzk4NTAsMzk4NTEsMzk4NTIsMzk4NTMsMzk4NTQsMzk4NTUsMzk4NTYsMzk4NTcs''@;'; + put 'put ''Mzk4NTgsMzk4NTksMzk4NjAsMzk4NjEsMzk4NjIsMzk4NjMsMzk4NjQsMzk4NjUsMzk4NjYsMzk4NjcsMzk4NjgsMzk4NjksMzk4NzAsMzk4NzEsMzk4NzIsMzk4NzMsMzk4NzQsMzk4NzUsMzk4NzYsMzk4NzcsMzk4NzgsMzk4NzksMzk4ODAsMzk4ODEsMzk4ODIsMzk4ODMsMzk4ODQsMzk4''@;'; + put 'put ''ODUsMzk4ODYsMzk4ODcsMzk4ODgsMzk4ODksMzk4OTAsMzk4OTEsMzk4OTIsMzk4OTMsMzk4OTQsMzk4OTUsMzk4OTYsMzk4OTcsMzk4OTgsMzk4OTksMzcyMTgsMzcyMTcsMzcyMzIsMzcyMjUsMzcyMzEsMzcyNDUsMzcyNDYsMzcyMzQsMzcyMzYsMzcyNDEsMzcyNjAsMzcyNTMsMzcyNjQs''@;'; + put 'put ''MzcyNjEsMzcyNjUsMzcyODIsMzcyODMsMzcyOTAsMzcyOTMsMzcyOTQsMzcyOTUsMzczMDEsMzczMDAsMzczMDYsMzU5MjUsNDA1NzQsMzYyODAsMzYzMzEsMzYzNTcsMzY0NDEsMzY0NTcsMzYyNzcsMzYyODcsMzYyODQsMzYyODIsMzYyOTIsMzYzMTAsMzYzMTEsMzYzMTQsMzYzMTgsMzYz''@;'; + put 'put ''MDIsMzYzMDMsMzYzMTUsMzYyOTQsMzYzMzIsMzYzNDMsMzYzNDQsMzYzMjMsMzYzNDUsMzYzNDcsMzYzMjQsMzYzNjEsMzYzNDksMzYzNzIsMzYzODEsMzYzODMsMzYzOTYsMzYzOTgsMzYzODcsMzYzOTksMzY0MTAsMzY0MTYsMzY0MDksMzY0MDUsMzY0MTMsMzY0MDEsMzY0MjUsMzY0MTcs''@;'; + put 'put ''MzY0MTgsMzY0MzMsMzY0MzQsMzY0MjYsMzY0NjQsMzY0NzAsMzY0NzYsMzY0NjMsMzY0NjgsMzY0ODUsMzY0OTUsMzY1MDAsMzY0OTYsMzY1MDgsMzY1MTAsMzU5NjAsMzU5NzAsMzU5NzgsMzU5NzMsMzU5OTIsMzU5ODgsMjYwMTEsMzUyODYsMzUyOTQsMzUyOTAsMzUyOTIsMzk5MDAsMzk5''@;'; + put 'put ''MDEsMzk5MDIsMzk5MDMsMzk5MDQsMzk5MDUsMzk5MDYsMzk5MDcsMzk5MDgsMzk5MDksMzk5MTAsMzk5MTEsMzk5MTIsMzk5MTMsMzk5MTQsMzk5MTUsMzk5MTYsMzk5MTcsMzk5MTgsMzk5MTksMzk5MjAsMzk5MjEsMzk5MjIsMzk5MjMsMzk5MjQsMzk5MjUsMzk5MjYsMzk5MjcsMzk5Mjgs''@;'; + put 'put ''Mzk5MjksMzk5MzAsMzk5MzEsMzk5MzIsMzk5MzMsMzk5MzQsMzk5MzUsMzk5MzYsMzk5MzcsMzk5MzgsMzk5MzksMzk5NDAsMzk5NDEsMzk5NDIsMzk5NDMsMzk5NDQsMzk5NDUsMzk5NDYsMzk5NDcsMzk5NDgsMzk5NDksMzk5NTAsMzk5NTEsMzk5NTIsMzk5NTMsMzk5NTQsMzk5NTUsMzk5''@;'; + put 'put ''NTYsMzk5NTcsMzk5NTgsMzk5NTksMzk5NjAsMzk5NjEsMzk5NjIsMzk5NjMsMzk5NjQsMzk5NjUsMzk5NjYsMzk5NjcsMzk5NjgsMzk5NjksMzk5NzAsMzk5NzEsMzk5NzIsMzk5NzMsMzk5NzQsMzk5NzUsMzk5NzYsMzk5NzcsMzk5NzgsMzk5NzksMzk5ODAsMzk5ODEsMzk5ODIsMzk5ODMs''@;'; + put 'put ''Mzk5ODQsMzk5ODUsMzk5ODYsMzk5ODcsMzk5ODgsMzk5ODksMzk5OTAsMzk5OTEsMzk5OTIsMzk5OTMsMzk5OTQsMzk5OTUsMzUzMDEsMzUzMDcsMzUzMTEsMzUzOTAsMzU2MjIsMzg3MzksMzg2MzMsMzg2NDMsMzg2MzksMzg2NjIsMzg2NTcsMzg2NjQsMzg2NzEsMzg2NzAsMzg2OTgsMzg3''@;'; + put 'put ''MDEsMzg3MDQsMzg3MTgsNDA4MzIsNDA4MzUsNDA4MzcsNDA4MzgsNDA4MzksNDA4NDAsNDA4NDEsNDA4NDIsNDA4NDQsNDA3MDIsNDA3MTUsNDA3MTcsMzg1ODUsMzg1ODgsMzg1ODksMzg2MDYsMzg2MTAsMzA2NTUsMzg2MjQsMzc1MTgsMzc1NTAsMzc1NzYsMzc2OTQsMzc3MzgsMzc4MzQs''@;'; + put 'put ''Mzc3NzUsMzc5NTAsMzc5OTUsNDAwNjMsNDAwNjYsNDAwNjksNDAwNzAsNDAwNzEsNDAwNzIsMzEyNjcsNDAwNzUsNDAwNzgsNDAwODAsNDAwODEsNDAwODIsNDAwODQsNDAwODUsNDAwOTAsNDAwOTEsNDAwOTQsNDAwOTUsNDAwOTYsNDAwOTcsNDAwOTgsNDAwOTksNDAxMDEsNDAxMDIsNDAx''@;'; + put 'put ''MDMsNDAxMDQsNDAxMDUsNDAxMDcsNDAxMDksNDAxMTAsNDAxMTIsNDAxMTMsNDAxMTQsNDAxMTUsNDAxMTYsNDAxMTcsNDAxMTgsNDAxMTksNDAxMjIsNDAxMjMsNDAxMjQsNDAxMjUsNDAxMzIsNDAxMzMsNDAxMzQsNDAxMzUsNDAxMzgsNDAxMzksMzk5OTYsMzk5OTcsMzk5OTgsMzk5OTks''@;'; + put 'put ''NGU0LDQwMDAxLDQwMDAyLDQwMDAzLDQwMDA0LDQwMDA1LDQwMDA2LDQwMDA3LDQwMDA4LDQwMDA5LDQwMDEwLDQwMDExLDQwMDEyLDQwMDEzLDQwMDE0LDQwMDE1LDQwMDE2LDQwMDE3LDQwMDE4LDQwMDE5LDQwMDIwLDQwMDIxLDQwMDIyLDQwMDIzLDQwMDI0LDQwMDI1LDQwMDI2LDQwMDI3''@;'; + put 'put ''LDQwMDI4LDQwMDI5LDQwMDMwLDQwMDMxLDQwMDMyLDQwMDMzLDQwMDM0LDQwMDM1LDQwMDM2LDQwMDM3LDQwMDM4LDQwMDM5LDQwMDQwLDQwMDQxLDQwMDQyLDQwMDQzLDQwMDQ0LDQwMDQ1LDQwMDQ2LDQwMDQ3LDQwMDQ4LDQwMDQ5LDQwMDUwLDQwMDUxLDQwMDUyLDQwMDUzLDQwMDU0LDQw''@;'; + put 'put ''MDU1LDQwMDU2LDQwMDU3LDQwMDU4LDQwMDU5LDQwMDYxLDQwMDYyLDQwMDY0LDQwMDY3LDQwMDY4LDQwMDczLDQwMDc0LDQwMDc2LDQwMDc5LDQwMDgzLDQwMDg2LDQwMDg3LDQwMDg4LDQwMDg5LDQwMDkzLDQwMTA2LDQwMTA4LDQwMTExLDQwMTIxLDQwMTI2LDQwMTI3LDQwMTI4LDQwMTI5''@;'; + put 'put ''LDQwMTMwLDQwMTM2LDQwMTM3LDQwMTQ1LDQwMTQ2LDQwMTU0LDQwMTU1LDQwMTYwLDQwMTYxLDQwMTQwLDQwMTQxLDQwMTQyLDQwMTQzLDQwMTQ0LDQwMTQ3LDQwMTQ4LDQwMTQ5LDQwMTUxLDQwMTUyLDQwMTUzLDQwMTU2LDQwMTU3LDQwMTU5LDQwMTYyLDM4NzgwLDM4Nzg5LDM4ODAxLDM4''@;'; + put 'put ''ODAyLDM4ODA0LDM4ODMxLDM4ODI3LDM4ODE5LDM4ODM0LDM4ODM2LDM5NjAxLDM5NjAwLDM5NjA3LDQwNTM2LDM5NjA2LDM5NjEwLDM5NjEyLDM5NjE3LDM5NjE2LDM5NjIxLDM5NjE4LDM5NjI3LDM5NjI4LDM5NjMzLDM5NzQ5LDM5NzQ3LDM5NzUxLDM5NzUzLDM5NzUyLDM5NzU3LDM5NzYx''@;'; + put 'put ''LDM5MTQ0LDM5MTgxLDM5MjE0LDM5MjUzLDM5MjUyLDM5NjQ3LDM5NjQ5LDM5NjU0LDM5NjYzLDM5NjU5LDM5Njc1LDM5NjYxLDM5NjczLDM5Njg4LDM5Njk1LDM5Njk5LDM5NzExLDM5NzE1LDQwNjM3LDQwNjM4LDMyMzE1LDQwNTc4LDQwNTgzLDQwNTg0LDQwNTg3LDQwNTk0LDM3ODQ2LDQw''@;'; + put 'put ''NjA1LDQwNjA3LDQwNjY3LDQwNjY4LDQwNjY5LDQwNjcyLDQwNjcxLDQwNjc0LDQwNjgxLDQwNjc5LDQwNjc3LDQwNjgyLDQwNjg3LDQwNzM4LDQwNzQ4LDQwNzUxLDQwNzYxLDQwNzU5LDQwNzY1LDQwNzY2LDQwNzcyLDQwMTYzLDQwMTY0LDQwMTY1LDQwMTY2LDQwMTY3LDQwMTY4LDQwMTY5''@;'; + put 'put ''LDQwMTcwLDQwMTcxLDQwMTcyLDQwMTczLDQwMTc0LDQwMTc1LDQwMTc2LDQwMTc3LDQwMTc4LDQwMTc5LDQwMTgwLDQwMTgxLDQwMTgyLDQwMTgzLDQwMTg0LDQwMTg1LDQwMTg2LDQwMTg3LDQwMTg4LDQwMTg5LDQwMTkwLDQwMTkxLDQwMTkyLDQwMTkzLDQwMTk0LDQwMTk1LDQwMTk2LDQw''@;'; + put 'put ''MTk3LDQwMTk4LDQwMTk5LDQwMjAwLDQwMjAxLDQwMjAyLDQwMjAzLDQwMjA0LDQwMjA1LDQwMjA2LDQwMjA3LDQwMjA4LDQwMjA5LDQwMjEwLDQwMjExLDQwMjEyLDQwMjEzLDQwMjE0LDQwMjE1LDQwMjE2LDQwMjE3LDQwMjE4LDQwMjE5LDQwMjIwLDQwMjIxLDQwMjIyLDQwMjIzLDQwMjI0''@;'; + put 'put ''LDQwMjI1LDQwMjI2LDQwMjI3LDQwMjI4LDQwMjI5LDQwMjMwLDQwMjMxLDQwMjMyLDQwMjMzLDQwMjM0LDQwMjM1LDQwMjM2LDQwMjM3LDQwMjM4LDQwMjM5LDQwMjQwLDQwMjQxLDQwMjQyLDQwMjQzLDQwMjQ0LDQwMjQ1LDQwMjQ2LDQwMjQ3LDQwMjQ4LDQwMjQ5LDQwMjUwLDQwMjUxLDQw''@;'; + put 'put ''MjUyLDQwMjUzLDQwMjU0LDQwMjU1LDQwMjU2LDQwMjU3LDQwMjU4LDU3OTA4LDU3OTA5LDU3OTEwLDU3OTExLDU3OTEyLDU3OTEzLDU3OTE0LDU3OTE1LDU3OTE2LDU3OTE3LDU3OTE4LDU3OTE5LDU3OTIwLDU3OTIxLDU3OTIyLDU3OTIzLDU3OTI0LDU3OTI1LDU3OTI2LDU3OTI3LDU3OTI4''@;'; + put 'put ''LDU3OTI5LDU3OTMwLDU3OTMxLDU3OTMyLDU3OTMzLDU3OTM0LDU3OTM1LDU3OTM2LDU3OTM3LDU3OTM4LDU3OTM5LDU3OTQwLDU3OTQxLDU3OTQyLDU3OTQzLDU3OTQ0LDU3OTQ1LDU3OTQ2LDU3OTQ3LDU3OTQ4LDU3OTQ5LDU3OTUwLDU3OTUxLDU3OTUyLDU3OTUzLDU3OTU0LDU3OTU1LDU3''@;'; + put 'put ''OTU2LDU3OTU3LDU3OTU4LDU3OTU5LDU3OTYwLDU3OTYxLDU3OTYyLDU3OTYzLDU3OTY0LDU3OTY1LDU3OTY2LDU3OTY3LDU3OTY4LDU3OTY5LDU3OTcwLDU3OTcxLDU3OTcyLDU3OTczLDU3OTc0LDU3OTc1LDU3OTc2LDU3OTc3LDU3OTc4LDU3OTc5LDU3OTgwLDU3OTgxLDU3OTgyLDU3OTgz''@;'; + put 'put ''LDU3OTg0LDU3OTg1LDU3OTg2LDU3OTg3LDU3OTg4LDU3OTg5LDU3OTkwLDU3OTkxLDU3OTkyLDU3OTkzLDU3OTk0LDU3OTk1LDU3OTk2LDU3OTk3LDU3OTk4LDU3OTk5LDU4ZTMsNTgwMDEsNDAyNTksNDAyNjAsNDAyNjEsNDAyNjIsNDAyNjMsNDAyNjQsNDAyNjUsNDAyNjYsNDAyNjcsNDAy''@;'; + put 'put ''NjgsNDAyNjksNDAyNzAsNDAyNzEsNDAyNzIsNDAyNzMsNDAyNzQsNDAyNzUsNDAyNzYsNDAyNzcsNDAyNzgsNDAyNzksNDAyODAsNDAyODEsNDAyODIsNDAyODMsNDAyODQsNDAyODUsNDAyODYsNDAyODcsNDAyODgsNDAyODksNDAyOTAsNDAyOTEsNDAyOTIsNDAyOTMsNDAyOTQsNDAyOTUs''@;'; + put 'put ''NDAyOTYsNDAyOTcsNDAyOTgsNDAyOTksNDAzMDAsNDAzMDEsNDAzMDIsNDAzMDMsNDAzMDQsNDAzMDUsNDAzMDYsNDAzMDcsNDAzMDgsNDAzMDksNDAzMTAsNDAzMTEsNDAzMTIsNDAzMTMsNDAzMTQsNDAzMTUsNDAzMTYsNDAzMTcsNDAzMTgsNDAzMTksNDAzMjAsNDAzMjEsNDAzMjIsNDAz''@;'; + put 'put ''MjMsNDAzMjQsNDAzMjUsNDAzMjYsNDAzMjcsNDAzMjgsNDAzMjksNDAzMzAsNDAzMzEsNDAzMzIsNDAzMzMsNDAzMzQsNDAzMzUsNDAzMzYsNDAzMzcsNDAzMzgsNDAzMzksNDAzNDAsNDAzNDEsNDAzNDIsNDAzNDMsNDAzNDQsNDAzNDUsNDAzNDYsNDAzNDcsNDAzNDgsNDAzNDksNDAzNTAs''@;'; + put 'put ''NDAzNTEsNDAzNTIsNDAzNTMsNDAzNTQsNTgwMDIsNTgwMDMsNTgwMDQsNTgwMDUsNTgwMDYsNTgwMDcsNTgwMDgsNTgwMDksNTgwMTAsNTgwMTEsNTgwMTIsNTgwMTMsNTgwMTQsNTgwMTUsNTgwMTYsNTgwMTcsNTgwMTgsNTgwMTksNTgwMjAsNTgwMjEsNTgwMjIsNTgwMjMsNTgwMjQsNTgw''@;'; + put 'put ''MjUsNTgwMjYsNTgwMjcsNTgwMjgsNTgwMjksNTgwMzAsNTgwMzEsNTgwMzIsNTgwMzMsNTgwMzQsNTgwMzUsNTgwMzYsNTgwMzcsNTgwMzgsNTgwMzksNTgwNDAsNTgwNDEsNTgwNDIsNTgwNDMsNTgwNDQsNTgwNDUsNTgwNDYsNTgwNDcsNTgwNDgsNTgwNDksNTgwNTAsNTgwNTEsNTgwNTIs''@;'; + put 'put ''NTgwNTMsNTgwNTQsNTgwNTUsNTgwNTYsNTgwNTcsNTgwNTgsNTgwNTksNTgwNjAsNTgwNjEsNTgwNjIsNTgwNjMsNTgwNjQsNTgwNjUsNTgwNjYsNTgwNjcsNTgwNjgsNTgwNjksNTgwNzAsNTgwNzEsNTgwNzIsNTgwNzMsNTgwNzQsNTgwNzUsNTgwNzYsNTgwNzcsNTgwNzgsNTgwNzksNTgw''@;'; + put 'put ''ODAsNTgwODEsNTgwODIsNTgwODMsNTgwODQsNTgwODUsNTgwODYsNTgwODcsNTgwODgsNTgwODksNTgwOTAsNTgwOTEsNTgwOTIsNTgwOTMsNTgwOTQsNTgwOTUsNDAzNTUsNDAzNTYsNDAzNTcsNDAzNTgsNDAzNTksNDAzNjAsNDAzNjEsNDAzNjIsNDAzNjMsNDAzNjQsNDAzNjUsNDAzNjYs''@;'; + put 'put ''NDAzNjcsNDAzNjgsNDAzNjksNDAzNzAsNDAzNzEsNDAzNzIsNDAzNzMsNDAzNzQsNDAzNzUsNDAzNzYsNDAzNzcsNDAzNzgsNDAzNzksNDAzODAsNDAzODEsNDAzODIsNDAzODMsNDAzODQsNDAzODUsNDAzODYsNDAzODcsNDAzODgsNDAzODksNDAzOTAsNDAzOTEsNDAzOTIsNDAzOTMsNDAz''@;'; + put 'put ''OTQsNDAzOTUsNDAzOTYsNDAzOTcsNDAzOTgsNDAzOTksNDA0MDAsNDA0MDEsNDA0MDIsNDA0MDMsNDA0MDQsNDA0MDUsNDA0MDYsNDA0MDcsNDA0MDgsNDA0MDksNDA0MTAsNDA0MTEsNDA0MTIsNDA0MTMsNDA0MTQsNDA0MTUsNDA0MTYsNDA0MTcsNDA0MTgsNDA0MTksNDA0MjAsNDA0MjEs''@;'; + put 'put ''NDA0MjIsNDA0MjMsNDA0MjQsNDA0MjUsNDA0MjYsNDA0MjcsNDA0MjgsNDA0MjksNDA0MzAsNDA0MzEsNDA0MzIsNDA0MzMsNDA0MzQsNDA0MzUsNDA0MzYsNDA0MzcsNDA0MzgsNDA0MzksNDA0NDAsNDA0NDEsNDA0NDIsNDA0NDMsNDA0NDQsNDA0NDUsNDA0NDYsNDA0NDcsNDA0NDgsNDA0''@;'; + put 'put ''NDksNDA0NTAsNTgwOTYsNTgwOTcsNTgwOTgsNTgwOTksNTgxMDAsNTgxMDEsNTgxMDIsNTgxMDMsNTgxMDQsNTgxMDUsNTgxMDYsNTgxMDcsNTgxMDgsNTgxMDksNTgxMTAsNTgxMTEsNTgxMTIsNTgxMTMsNTgxMTQsNTgxMTUsNTgxMTYsNTgxMTcsNTgxMTgsNTgxMTksNTgxMjAsNTgxMjEs''@;'; + put 'put ''NTgxMjIsNTgxMjMsNTgxMjQsNTgxMjUsNTgxMjYsNTgxMjcsNTgxMjgsNTgxMjksNTgxMzAsNTgxMzEsNTgxMzIsNTgxMzMsNTgxMzQsNTgxMzUsNTgxMzYsNTgxMzcsNTgxMzgsNTgxMzksNTgxNDAsNTgxNDEsNTgxNDIsNTgxNDMsNTgxNDQsNTgxNDUsNTgxNDYsNTgxNDcsNTgxNDgsNTgx''@;'; + put 'put ''NDksNTgxNTAsNTgxNTEsNTgxNTIsNTgxNTMsNTgxNTQsNTgxNTUsNTgxNTYsNTgxNTcsNTgxNTgsNTgxNTksNTgxNjAsNTgxNjEsNTgxNjIsNTgxNjMsNTgxNjQsNTgxNjUsNTgxNjYsNTgxNjcsNTgxNjgsNTgxNjksNTgxNzAsNTgxNzEsNTgxNzIsNTgxNzMsNTgxNzQsNTgxNzUsNTgxNzYs''@;'; + put 'put ''NTgxNzcsNTgxNzgsNTgxNzksNTgxODAsNTgxODEsNTgxODIsNTgxODMsNTgxODQsNTgxODUsNTgxODYsNTgxODcsNTgxODgsNTgxODksNDA0NTEsNDA0NTIsNDA0NTMsNDA0NTQsNDA0NTUsNDA0NTYsNDA0NTcsNDA0NTgsNDA0NTksNDA0NjAsNDA0NjEsNDA0NjIsNDA0NjMsNDA0NjQsNDA0''@;'; + put 'put ''NjUsNDA0NjYsNDA0NjcsNDA0NjgsNDA0NjksNDA0NzAsNDA0NzEsNDA0NzIsNDA0NzMsNDA0NzQsNDA0NzUsNDA0NzYsNDA0NzcsNDA0NzgsNDA0ODQsNDA0ODcsNDA0OTQsNDA0OTYsNDA1MDAsNDA1MDcsNDA1MDgsNDA1MTIsNDA1MjUsNDA1MjgsNDA1MzAsNDA1MzEsNDA1MzIsNDA1MzQs''@;'; + put 'put ''NDA1MzcsNDA1NDEsNDA1NDMsNDA1NDQsNDA1NDUsNDA1NDYsNDA1NDksNDA1NTgsNDA1NTksNDA1NjIsNDA1NjQsNDA1NjUsNDA1NjYsNDA1NjcsNDA1NjgsNDA1NjksNDA1NzAsNDA1NzEsNDA1NzIsNDA1NzMsNDA1NzYsNDA1NzcsNDA1NzksNDA1ODAsNDA1ODEsNDA1ODIsNDA1ODUsNDA1''@;'; + put 'put ''ODYsNDA1ODgsNDA1ODksNDA1OTAsNDA1OTEsNDA1OTIsNDA1OTMsNDA1OTYsNDA1OTcsNDA1OTgsNDA1OTksNDA2MDAsNDA2MDEsNDA2MDIsNDA2MDMsNDA2MDQsNDA2MDYsNDA2MDgsNDA2MDksNDA2MTAsNDA2MTEsNDA2MTIsNDA2MTMsNDA2MTUsNDA2MTYsNDA2MTcsNDA2MTgsNTgxOTAs''@;'; + put 'put ''NTgxOTEsNTgxOTIsNTgxOTMsNTgxOTQsNTgxOTUsNTgxOTYsNTgxOTcsNTgxOTgsNTgxOTksNTgyMDAsNTgyMDEsNTgyMDIsNTgyMDMsNTgyMDQsNTgyMDUsNTgyMDYsNTgyMDcsNTgyMDgsNTgyMDksNTgyMTAsNTgyMTEsNTgyMTIsNTgyMTMsNTgyMTQsNTgyMTUsNTgyMTYsNTgyMTcsNTgy''@;'; + put 'put ''MTgsNTgyMTksNTgyMjAsNTgyMjEsNTgyMjIsNTgyMjMsNTgyMjQsNTgyMjUsNTgyMjYsNTgyMjcsNTgyMjgsNTgyMjksNTgyMzAsNTgyMzEsNTgyMzIsNTgyMzMsNTgyMzQsNTgyMzUsNTgyMzYsNTgyMzcsNTgyMzgsNTgyMzksNTgyNDAsNTgyNDEsNTgyNDIsNTgyNDMsNTgyNDQsNTgyNDUs''@;'; + put 'put ''NTgyNDYsNTgyNDcsNTgyNDgsNTgyNDksNTgyNTAsNTgyNTEsNTgyNTIsNTgyNTMsNTgyNTQsNTgyNTUsNTgyNTYsNTgyNTcsNTgyNTgsNTgyNTksNTgyNjAsNTgyNjEsNTgyNjIsNTgyNjMsNTgyNjQsNTgyNjUsNTgyNjYsNTgyNjcsNTgyNjgsNTgyNjksNTgyNzAsNTgyNzEsNTgyNzIsNTgy''@;'; + put 'put ''NzMsNTgyNzQsNTgyNzUsNTgyNzYsNTgyNzcsNTgyNzgsNTgyNzksNTgyODAsNTgyODEsNTgyODIsNTgyODMsNDA2MTksNDA2MjAsNDA2MjEsNDA2MjIsNDA2MjMsNDA2MjQsNDA2MjUsNDA2MjYsNDA2MjcsNDA2MjksNDA2MzAsNDA2MzEsNDA2MzMsNDA2MzQsNDA2MzYsNDA2MzksNDA2NDAs''@;'; + put 'put ''NDA2NDEsNDA2NDIsNDA2NDMsNDA2NDUsNDA2NDYsNDA2NDcsNDA2NDgsNDA2NTAsNDA2NTEsNDA2NTIsNDA2NTYsNDA2NTgsNDA2NTksNDA2NjEsNDA2NjIsNDA2NjMsNDA2NjUsNDA2NjYsNDA2NzAsNDA2NzMsNDA2NzUsNDA2NzYsNDA2NzgsNDA2ODAsNDA2ODMsNDA2ODQsNDA2ODUsNDA2''@;'; + put 'put ''ODYsNDA2ODgsNDA2ODksNDA2OTAsNDA2OTEsNDA2OTIsNDA2OTMsNDA2OTQsNDA2OTUsNDA2OTYsNDA2OTgsNDA3MDEsNDA3MDMsNDA3MDQsNDA3MDUsNDA3MDYsNDA3MDcsNDA3MDgsNDA3MDksNDA3MTAsNDA3MTEsNDA3MTIsNDA3MTMsNDA3MTQsNDA3MTYsNDA3MTksNDA3MjEsNDA3MjIs''@;'; + put 'put ''NDA3MjQsNDA3MjUsNDA3MjYsNDA3MjgsNDA3MzAsNDA3MzEsNDA3MzIsNDA3MzMsNDA3MzQsNDA3MzUsNDA3MzcsNDA3MzksNDA3NDAsNDA3NDEsNDA3NDIsNDA3NDMsNDA3NDQsNDA3NDUsNDA3NDYsNDA3NDcsNDA3NDksNDA3NTAsNDA3NTIsNDA3NTMsNTgyODQsNTgyODUsNTgyODYsNTgy''@;'; + put 'put ''ODcsNTgyODgsNTgyODksNTgyOTAsNTgyOTEsNTgyOTIsNTgyOTMsNTgyOTQsNTgyOTUsNTgyOTYsNTgyOTcsNTgyOTgsNTgyOTksNTgzMDAsNTgzMDEsNTgzMDIsNTgzMDMsNTgzMDQsNTgzMDUsNTgzMDYsNTgzMDcsNTgzMDgsNTgzMDksNTgzMTAsNTgzMTEsNTgzMTIsNTgzMTMsNTgzMTQs''@;'; + put 'put ''NTgzMTUsNTgzMTYsNTgzMTcsNTgzMTgsNTgzMTksNTgzMjAsNTgzMjEsNTgzMjIsNTgzMjMsNTgzMjQsNTgzMjUsNTgzMjYsNTgzMjcsNTgzMjgsNTgzMjksNTgzMzAsNTgzMzEsNTgzMzIsNTgzMzMsNTgzMzQsNTgzMzUsNTgzMzYsNTgzMzcsNTgzMzgsNTgzMzksNTgzNDAsNTgzNDEsNTgz''@;'; + put 'put ''NDIsNTgzNDMsNTgzNDQsNTgzNDUsNTgzNDYsNTgzNDcsNTgzNDgsNTgzNDksNTgzNTAsNTgzNTEsNTgzNTIsNTgzNTMsNTgzNTQsNTgzNTUsNTgzNTYsNTgzNTcsNTgzNTgsNTgzNTksNTgzNjAsNTgzNjEsNTgzNjIsNTgzNjMsNTgzNjQsNTgzNjUsNTgzNjYsNTgzNjcsNTgzNjgsNTgzNjks''@;'; + put 'put ''NTgzNzAsNTgzNzEsNTgzNzIsNTgzNzMsNTgzNzQsNTgzNzUsNTgzNzYsNTgzNzcsNDA3NTQsNDA3NTUsNDA3NTYsNDA3NTcsNDA3NTgsNDA3NjAsNDA3NjIsNDA3NjQsNDA3NjcsNDA3NjgsNDA3NjksNDA3NzAsNDA3NzEsNDA3NzMsNDA3NzQsNDA3NzUsNDA3NzYsNDA3NzcsNDA3NzgsNDA3''@;'; + put 'put ''NzksNDA3ODAsNDA3ODEsNDA3ODIsNDA3ODMsNDA3ODYsNDA3ODcsNDA3ODgsNDA3ODksNDA3OTAsNDA3OTEsNDA3OTIsNDA3OTMsNDA3OTQsNDA3OTUsNDA3OTYsNDA3OTcsNDA3OTgsNDA3OTksNDA4MDAsNDA4MDEsNDA4MDIsNDA4MDMsNDA4MDQsNDA4MDUsNDA4MDYsNDA4MDcsNDA4MDgs''@;'; + put 'put ''NDA4MDksNDA4MTAsNDA4MTEsNDA4MTIsNDA4MTMsNDA4MTQsNDA4MTUsNDA4MTYsNDA4MTcsNDA4MTgsNDA4MTksNDA4MjAsNDA4MjEsNDA4MjIsNDA4MjMsNDA4MjQsNDA4MjUsNDA4MjYsNDA4MjcsNDA4MjgsNDA4MjksNDA4MzAsNDA4MzMsNDA4MzQsNDA4NDUsNDA4NDYsNDA4NDcsNDA4''@;'; + put 'put ''NDgsNDA4NDksNDA4NTAsNDA4NTEsNDA4NTIsNDA4NTMsNDA4NTQsNDA4NTUsNDA4NTYsNDA4NjAsNDA4NjEsNDA4NjIsNDA4NjUsNDA4NjYsNDA4NjcsNDA4NjgsNDA4NjksNjM3ODgsNjM4NjUsNjM4OTMsNjM5NzUsNjM5ODUsNTgzNzgsNTgzNzksNTgzODAsNTgzODEsNTgzODIsNTgzODMs''@;'; + put 'put ''NTgzODQsNTgzODUsNTgzODYsNTgzODcsNTgzODgsNTgzODksNTgzOTAsNTgzOTEsNTgzOTIsNTgzOTMsNTgzOTQsNTgzOTUsNTgzOTYsNTgzOTcsNTgzOTgsNTgzOTksNTg0MDAsNTg0MDEsNTg0MDIsNTg0MDMsNTg0MDQsNTg0MDUsNTg0MDYsNTg0MDcsNTg0MDgsNTg0MDksNTg0MTAsNTg0''@;'; + put 'put ''MTEsNTg0MTIsNTg0MTMsNTg0MTQsNTg0MTUsNTg0MTYsNTg0MTcsNTg0MTgsNTg0MTksNTg0MjAsNTg0MjEsNTg0MjIsNTg0MjMsNTg0MjQsNTg0MjUsNTg0MjYsNTg0MjcsNTg0MjgsNTg0MjksNTg0MzAsNTg0MzEsNTg0MzIsNTg0MzMsNTg0MzQsNTg0MzUsNTg0MzYsNTg0MzcsNTg0Mzgs''@;'; + put 'put ''NTg0MzksNTg0NDAsNTg0NDEsNTg0NDIsNTg0NDMsNTg0NDQsNTg0NDUsNTg0NDYsNTg0NDcsNTg0NDgsNTg0NDksNTg0NTAsNTg0NTEsNTg0NTIsNTg0NTMsNTg0NTQsNTg0NTUsNTg0NTYsNTg0NTcsNTg0NTgsNTg0NTksNTg0NjAsNTg0NjEsNTg0NjIsNTg0NjMsNTg0NjQsNTg0NjUsNTg0''@;'; + put 'put ''NjYsNTg0NjcsNTg0NjgsNTg0NjksNTg0NzAsNTg0NzEsNjQwMTIsNjQwMTMsNjQwMTQsNjQwMTUsNjQwMTcsNjQwMTksNjQwMjAsNjQwMjQsNjQwMzEsNjQwMzIsNjQwMzMsNjQwMzUsNjQwMzYsNjQwMzksNjQwNDAsNjQwNDEsMTE5MDUsNTk0MTQsNTk0MTUsNTk0MTYsMTE5MDgsMTM0Mjcs''@;'; + put 'put ''MTMzODMsMTE5MTIsMTE5MTUsNTk0MjIsMTM3MjYsMTM4NTAsMTM4MzgsMTE5MTYsMTE5MjcsMTQ3MDIsMTQ2MTYsNTk0MzAsMTQ3OTksMTQ4MTUsMTQ5NjMsMTQ4MDAsNTk0MzUsNTk0MzYsMTUxODIsMTU0NzAsMTU1ODQsMTE5NDMsNTk0NDEsNTk0NDIsMTE5NDYsMTY0NzAsMTY3MzUsMTE5''@;'; + put 'put ''NTAsMTcyMDcsMTE5NTUsMTE5NTgsMTE5NTksNTk0NTEsMTczMjksMTczMjQsMTE5NjMsMTczNzMsMTc2MjIsMTgwMTcsMTc5OTYsNTk0NTksMTgyMTEsMTgyMTcsMTgzMDAsMTgzMTcsMTE5NzgsMTg3NTksMTg4MTAsMTg4MTMsMTg4MTgsMTg4MTksMTg4MjEsMTg4MjIsMTg4NDcsMTg4NDMs''@;'; + put 'put ''MTg4NzEsMTg4NzAsNTk0NzYsNTk0NzcsMTk2MTksMTk2MTUsMTk2MTYsMTk2MTcsMTk1NzUsMTk2MTgsMTk3MzEsMTk3MzIsMTk3MzMsMTk3MzQsMTk3MzUsMTk3MzYsMTk3MzcsMTk4ODYsNTk0OTIsNTg0NzIsNTg0NzMsNTg0NzQsNTg0NzUsNTg0NzYsNTg0NzcsNTg0NzgsNTg0NzksNTg0''@;'; + put 'put ''ODAsNTg0ODEsNTg0ODIsNTg0ODMsNTg0ODQsNTg0ODUsNTg0ODYsNTg0ODcsNTg0ODgsNTg0ODksNTg0OTAsNTg0OTEsNTg0OTIsNTg0OTMsNTg0OTQsNTg0OTUsNTg0OTYsNTg0OTcsNTg0OTgsNTg0OTksNTg1MDAsNTg1MDEsNTg1MDIsNTg1MDMsNTg1MDQsNTg1MDUsNTg1MDYsNTg1MDcs''@;'; + put 'put ''NTg1MDgsNTg1MDksNTg1MTAsNTg1MTEsNTg1MTIsNTg1MTMsNTg1MTQsNTg1MTUsNTg1MTYsNTg1MTcsNTg1MTgsNTg1MTksNTg1MjAsNTg1MjEsNTg1MjIsNTg1MjMsNTg1MjQsNTg1MjUsNTg1MjYsNTg1MjcsNTg1MjgsNTg1MjksNTg1MzAsNTg1MzEsNTg1MzIsNTg1MzMsNTg1MzQsNTg1''@;'; + put 'put ''MzUsNTg1MzYsNTg1MzcsNTg1MzgsNTg1MzksNTg1NDAsNTg1NDEsNTg1NDIsNTg1NDMsNTg1NDQsNTg1NDUsNTg1NDYsNTg1NDcsNTg1NDgsNTg1NDksNTg1NTAsNTg1NTEsNTg1NTIsNTg1NTMsNTg1NTQsNTg1NTUsNTg1NTYsNTg1NTcsNTg1NTgsNTg1NTksNTg1NjAsNTg1NjEsNTg1NjIs''@;'; + put 'put ''NTg1NjMsNTg1NjQsNTg1NjVdLCJnYjE4MDMwLXJhbmdlcyI6W1swLDEyOF0sWzM2LDE2NV0sWzM4LDE2OV0sWzQ1LDE3OF0sWzUwLDE4NF0sWzgxLDIxNl0sWzg5LDIyNl0sWzk1LDIzNV0sWzk2LDIzOF0sWzEwMCwyNDRdLFsxMDMsMjQ4XSxbMTA0LDI1MV0sWzEwNSwyNTNdLFsxMDksMjU4''@;'; + put 'put ''XSxbMTI2LDI3Nl0sWzEzMywyODRdLFsxNDgsMzAwXSxbMTcyLDMyNV0sWzE3NSwzMjldLFsxNzksMzM0XSxbMjA4LDM2NF0sWzMwNiw0NjNdLFszMDcsNDY1XSxbMzA4LDQ2N10sWzMwOSw0NjldLFszMTAsNDcxXSxbMzExLDQ3M10sWzMxMiw0NzVdLFszMTMsNDc3XSxbMzQxLDUwNl0sWzQy''@;'; + put 'put ''OCw1OTRdLFs0NDMsNjEwXSxbNTQ0LDcxMl0sWzU0NSw3MTZdLFs1NTgsNzMwXSxbNzQxLDkzMF0sWzc0Miw5MzhdLFs3NDksOTYyXSxbNzUwLDk3MF0sWzgwNSwxMDI2XSxbODE5LDExMDRdLFs4MjAsMTEwNl0sWzc5MjIsODIwOV0sWzc5MjQsODIxNV0sWzc5MjUsODIxOF0sWzc5MjcsODIy''@;'; + put 'put ''Ml0sWzc5MzQsODIzMV0sWzc5NDMsODI0MV0sWzc5NDQsODI0NF0sWzc5NDUsODI0Nl0sWzc5NTAsODI1Ml0sWzgwNjIsODM2NV0sWzgxNDgsODQ1Ml0sWzgxNDksODQ1NF0sWzgxNTIsODQ1OF0sWzgxNjQsODQ3MV0sWzgxNzQsODQ4Ml0sWzgyMzYsODU1Nl0sWzgyNDAsODU3MF0sWzgyNjIs''@;'; + put 'put ''ODU5Nl0sWzgyNjQsODYwMl0sWzgzNzQsODcxM10sWzgzODAsODcyMF0sWzgzODEsODcyMl0sWzgzODQsODcyNl0sWzgzODgsODczMV0sWzgzOTAsODczN10sWzgzOTIsODc0MF0sWzgzOTMsODc0Ml0sWzgzOTQsODc0OF0sWzgzOTYsODc1MV0sWzg0MDEsODc2MF0sWzg0MDYsODc2Nl0sWzg0''@;'; + put 'put ''MTYsODc3N10sWzg0MTksODc4MV0sWzg0MjQsODc4N10sWzg0MzcsODgwMl0sWzg0MzksODgwOF0sWzg0NDUsODgxNl0sWzg0ODIsODg1NF0sWzg0ODUsODg1OF0sWzg0OTYsODg3MF0sWzg1MjEsODg5Nl0sWzg2MDMsODk3OV0sWzg5MzYsOTMyMl0sWzg5NDYsOTM3Ml0sWzkwNDYsOTU0OF0s''@;'; + put 'put ''WzkwNTAsOTU4OF0sWzkwNjMsOTYxNl0sWzkwNjYsOTYyMl0sWzkwNzYsOTYzNF0sWzkwOTIsOTY1Ml0sWzkxMDAsOTY2Ml0sWzkxMDgsOTY3Ml0sWzkxMTEsOTY3Nl0sWzkxMTMsOTY4MF0sWzkxMzEsOTcwMl0sWzkxNjIsOTczNV0sWzkxNjQsOTczOF0sWzkyMTgsOTc5M10sWzkyMTksOTc5''@;'; + put 'put ''NV0sWzExMzI5LDExOTA2XSxbMTEzMzEsMTE5MDldLFsxMTMzNCwxMTkxM10sWzExMzM2LDExOTE3XSxbMTEzNDYsMTE5MjhdLFsxMTM2MSwxMTk0NF0sWzExMzYzLDExOTQ3XSxbMTEzNjYsMTE5NTFdLFsxMTM3MCwxMTk1Nl0sWzExMzcyLDExOTYwXSxbMTEzNzUsMTE5NjRdLFsxMTM4OSwx''@;'; + put 'put ''MTk3OV0sWzExNjgyLDEyMjg0XSxbMTE2ODYsMTIyOTJdLFsxMTY4NywxMjMxMl0sWzExNjkyLDEyMzE5XSxbMTE2OTQsMTIzMzBdLFsxMTcxNCwxMjM1MV0sWzExNzE2LDEyNDM2XSxbMTE3MjMsMTI0NDddLFsxMTcyNSwxMjUzNV0sWzExNzMwLDEyNTQzXSxbMTE3MzYsMTI1ODZdLFsxMTk4''@;'; + put 'put ''MiwxMjg0Ml0sWzExOTg5LDEyODUwXSxbMTIxMDIsMTI5NjRdLFsxMjMzNiwxMzIwMF0sWzEyMzQ4LDEzMjE1XSxbMTIzNTAsMTMyMThdLFsxMjM4NCwxMzI1M10sWzEyMzkzLDEzMjYzXSxbMTIzOTUsMTMyNjddLFsxMjM5NywxMzI3MF0sWzEyNTEwLDEzMzg0XSxbMTI1NTMsMTM0MjhdLFsx''@;'; + put 'put ''Mjg1MSwxMzcyN10sWzEyOTYyLDEzODM5XSxbMTI5NzMsMTM4NTFdLFsxMzczOCwxNDYxN10sWzEzODIzLDE0NzAzXSxbMTM5MTksMTQ4MDFdLFsxMzkzMywxNDgxNl0sWzE0MDgwLDE0OTY0XSxbMTQyOTgsMTUxODNdLFsxNDU4NSwxNTQ3MV0sWzE0Njk4LDE1NTg1XSxbMTU1ODMsMTY0NzFd''@;'; + put 'put ''LFsxNTg0NywxNjczNl0sWzE2MzE4LDE3MjA4XSxbMTY0MzQsMTczMjVdLFsxNjQzOCwxNzMzMF0sWzE2NDgxLDE3Mzc0XSxbMTY3MjksMTc2MjNdLFsxNzEwMiwxNzk5N10sWzE3MTIyLDE4MDE4XSxbMTczMTUsMTgyMTJdLFsxNzMyMCwxODIxOF0sWzE3NDAyLDE4MzAxXSxbMTc0MTgsMTgz''@;'; + put 'put ''MThdLFsxNzg1OSwxODc2MF0sWzE3OTA5LDE4ODExXSxbMTc5MTEsMTg4MTRdLFsxNzkxNSwxODgyMF0sWzE3OTE2LDE4ODIzXSxbMTc5MzYsMTg4NDRdLFsxNzkzOSwxODg0OF0sWzE3OTYxLDE4ODcyXSxbMTg2NjQsMTk1NzZdLFsxODcwMywxOTYyMF0sWzE4ODE0LDE5NzM4XSxbMTg5NjIs''@;'; + put 'put ''MTk4ODddLFsxOTA0Myw0MDg3MF0sWzMzNDY5LDU5MjQ0XSxbMzM0NzAsNTkzMzZdLFszMzQ3MSw1OTM2N10sWzMzNDg0LDU5NDEzXSxbMzM0ODUsNTk0MTddLFszMzQ5MCw1OTQyM10sWzMzNDk3LDU5NDMxXSxbMzM1MDEsNTk0MzddLFszMzUwNSw1OTQ0M10sWzMzNTEzLDU5NDUyXSxbMzM1''@;'; + put 'put ''MjAsNTk0NjBdLFszMzUzNiw1OTQ3OF0sWzMzNTUwLDU5NDkzXSxbMzc4NDUsNjM3ODldLFszNzkyMSw2Mzg2Nl0sWzM3OTQ4LDYzODk0XSxbMzgwMjksNjM5NzZdLFszODAzOCw2Mzk4Nl0sWzM4MDY0LDY0MDE2XSxbMzgwNjUsNjQwMThdLFszODA2Niw2NDAyMV0sWzM4MDY5LDY0MDI1XSxb''@;'; + put 'put ''MzgwNzUsNjQwMzRdLFszODA3Niw2NDAzN10sWzM4MDc4LDY0MDQyXSxbMzkxMDgsNjUwNzRdLFszOTEwOSw2NTA5M10sWzM5MTEzLDY1MTA3XSxbMzkxMTQsNjUxMTJdLFszOTExNSw2NTEyN10sWzM5MTE2LDY1MTMyXSxbMzkyNjUsNjUzNzVdLFszOTM5NCw2NTUxMF0sWzE4OWUzLDY1NTM2''@;'; + put 'put ''XV0samlzMDIwODpbMTIyODgsMTIyODksMTIyOTAsNjUyOTIsNjUyOTQsMTI1MzksNjUzMDYsNjUzMDcsNjUzMTEsNjUyODEsMTI0NDMsMTI0NDQsMTgwLDY1MzQ0LDE2OCw2NTM0Miw2NTUwNyw2NTM0MywxMjU0MSwxMjU0MiwxMjQ0NSwxMjQ0NiwxMjI5MSwyMDE4OSwxMjI5MywxMjI5NCwx''@;'; + put 'put ''MjI5NSwxMjU0MCw4MjEzLDgyMDgsNjUyOTUsNjUzNDAsNjUzNzQsODc0MSw2NTM3Miw4MjMwLDgyMjksODIxNiw4MjE3LDgyMjAsODIyMSw2NTI4OCw2NTI4OSwxMjMwOCwxMjMwOSw2NTMzOSw2NTM0MSw2NTM3MSw2NTM3MywxMjI5NiwxMjI5NywxMjI5OCwxMjI5OSwxMjMwMCwxMjMwMSwx''@;'; + put 'put ''MjMwMiwxMjMwMywxMjMwNCwxMjMwNSw2NTI5MSw2NTI5MywxNzcsMjE1LDI0Nyw2NTMwOSw4ODAwLDY1MzA4LDY1MzEwLDg4MDYsODgwNyw4NzM0LDg3NTYsOTc5NCw5NzkyLDE3Niw4MjQyLDgyNDMsODQ1MSw2NTUwOSw2NTI4NCw2NTUwNCw2NTUwNSw2NTI4NSw2NTI4Myw2NTI4Niw2NTI5''@;'; + put 'put ''MCw2NTMxMiwxNjcsOTczNCw5NzMzLDk2NzUsOTY3OSw5Njc4LDk2NzEsOTY3MCw5NjMzLDk2MzIsOTY1MSw5NjUwLDk2NjEsOTY2MCw4MjUxLDEyMzA2LDg1OTQsODU5Miw4NTkzLDg1OTUsMTIzMDcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLDg3MTIsODcxNSw4ODM4LDg4MzksODgzNCw4ODM1LDg3NDYsODc0NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsODc0Myw4NzQ0LDY1NTA2LDg2NTgsODY2MCw4NzA0LDg3MDcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLDg3MzYsODg2OSw4OTc4LDg3MDYsODcxMSw4ODAxLDg3ODYsODgxMCw4ODExLDg3MzAsODc2NSw4NzMzLDg3NTcsODc0Nyw4NzQ4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsODQ5MSw4MjQwLDk4MzksOTgzNyw5ODM0LDgyMjQsODIyNSwxODIsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCw5NzExLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDY1Mjk2LDY1Mjk3LDY1Mjk4LDY1Mjk5LDY1MzAwLDY1MzAxLDY1MzAyLDY1MzAzLDY1MzA0LDY1MzA1LG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjUzMTMsNjUzMTQsNjUzMTUsNjUzMTYsNjUzMTcsNjUzMTgsNjUzMTksNjUzMjAsNjUzMjEsNjUzMjIsNjUzMjMsNjUzMjQsNjUzMjUsNjUzMjYsNjUzMjcsNjUzMjgsNjUzMjksNjUzMzAsNjUzMzEsNjUzMzIsNjUzMzMsNjUzMzQsNjUzMzUsNjUz''@;'; + put 'put ''MzYsNjUzMzcsNjUzMzgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjUzNDUsNjUzNDYsNjUzNDcsNjUzNDgsNjUzNDksNjUzNTAsNjUzNTEsNjUzNTIsNjUzNTMsNjUzNTQsNjUzNTUsNjUzNTYsNjUzNTcsNjUzNTgsNjUzNTksNjUzNjAsNjUzNjEsNjUzNjIsNjUzNjMsNjUzNjQs''@;'; + put 'put ''NjUzNjUsNjUzNjYsNjUzNjcsNjUzNjgsNjUzNjksNjUzNzAsbnVsbCxudWxsLG51bGwsbnVsbCwxMjM1MywxMjM1NCwxMjM1NSwxMjM1NiwxMjM1NywxMjM1OCwxMjM1OSwxMjM2MCwxMjM2MSwxMjM2MiwxMjM2MywxMjM2NCwxMjM2NSwxMjM2NiwxMjM2NywxMjM2OCwxMjM2OSwxMjM3MCwx''@;'; + put 'put ''MjM3MSwxMjM3MiwxMjM3MywxMjM3NCwxMjM3NSwxMjM3NiwxMjM3NywxMjM3OCwxMjM3OSwxMjM4MCwxMjM4MSwxMjM4MiwxMjM4MywxMjM4NCwxMjM4NSwxMjM4NiwxMjM4NywxMjM4OCwxMjM4OSwxMjM5MCwxMjM5MSwxMjM5MiwxMjM5MywxMjM5NCwxMjM5NSwxMjM5NiwxMjM5NywxMjM5''@;'; + put 'put ''OCwxMjM5OSwxMjQwMCwxMjQwMSwxMjQwMiwxMjQwMywxMjQwNCwxMjQwNSwxMjQwNiwxMjQwNywxMjQwOCwxMjQwOSwxMjQxMCwxMjQxMSwxMjQxMiwxMjQxMywxMjQxNCwxMjQxNSwxMjQxNiwxMjQxNywxMjQxOCwxMjQxOSwxMjQyMCwxMjQyMSwxMjQyMiwxMjQyMywxMjQyNCwxMjQyNSwx''@;'; + put 'put ''MjQyNiwxMjQyNywxMjQyOCwxMjQyOSwxMjQzMCwxMjQzMSwxMjQzMiwxMjQzMywxMjQzNCwxMjQzNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTI0NDksMTI0NTAsMTI0NTEsMTI0NTIsMTI0NTMsMTI0NTQsMTI0NTUsMTI0NTYsMTI0''@;'; + put 'put ''NTcsMTI0NTgsMTI0NTksMTI0NjAsMTI0NjEsMTI0NjIsMTI0NjMsMTI0NjQsMTI0NjUsMTI0NjYsMTI0NjcsMTI0NjgsMTI0NjksMTI0NzAsMTI0NzEsMTI0NzIsMTI0NzMsMTI0NzQsMTI0NzUsMTI0NzYsMTI0NzcsMTI0NzgsMTI0NzksMTI0ODAsMTI0ODEsMTI0ODIsMTI0ODMsMTI0ODQs''@;'; + put 'put ''MTI0ODUsMTI0ODYsMTI0ODcsMTI0ODgsMTI0ODksMTI0OTAsMTI0OTEsMTI0OTIsMTI0OTMsMTI0OTQsMTI0OTUsMTI0OTYsMTI0OTcsMTI0OTgsMTI0OTksMTI1MDAsMTI1MDEsMTI1MDIsMTI1MDMsMTI1MDQsMTI1MDUsMTI1MDYsMTI1MDcsMTI1MDgsMTI1MDksMTI1MTAsMTI1MTEsMTI1''@;'; + put 'put ''MTIsMTI1MTMsMTI1MTQsMTI1MTUsMTI1MTYsMTI1MTcsMTI1MTgsMTI1MTksMTI1MjAsMTI1MjEsMTI1MjIsMTI1MjMsMTI1MjQsMTI1MjUsMTI1MjYsMTI1MjcsMTI1MjgsMTI1MjksMTI1MzAsMTI1MzEsMTI1MzIsMTI1MzMsMTI1MzQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkzMiw5MzMsOTM0LDkzNSw5MzYsOTM3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw5NDUsOTQ2LDk0Nyw5NDgsOTQ5''@;'; + put 'put ''LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTAyNSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1''@;'; + put 'put ''MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTEwNSwxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEw''@;'; + put 'put ''MSwxMTAyLDExMDMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw5NDcyLDk0NzQsOTQ4NCw5NDg4LDk0OTYsOTQ5Miw5NTAwLDk1MTYsOTUwOCw5NTI0LDk1MzIsOTQ3Myw5NDc1LDk0ODcsOTQ5MSw5NDk5LDk0OTUsOTUw''@;'; + put 'put ''Nyw5NTIzLDk1MTUsOTUzMSw5NTQ3LDk1MDQsOTUxOSw5NTEyLDk1MjcsOTUzNSw5NTAxLDk1MjAsOTUwOSw5NTI4LDk1MzgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsOTMxMiw5MzEzLDkzMTQsOTMxNSw5MzE2LDkzMTcsOTMxOCw5MzE5LDkzMjAsOTMy''@;'; + put 'put ''MSw5MzIyLDkzMjMsOTMyNCw5MzI1LDkzMjYsOTMyNyw5MzI4LDkzMjksOTMzMCw5MzMxLDg1NDQsODU0NSw4NTQ2LDg1NDcsODU0OCw4NTQ5LDg1NTAsODU1MSw4NTUyLDg1NTMsbnVsbCwxMzEyOSwxMzA3NiwxMzA5MCwxMzEzMywxMzA4MCwxMzA5NSwxMzA1OSwxMzExMCwxMzEzNywxMzE0''@;'; + put 'put ''MywxMzA2OSwxMzA5NCwxMzA5MSwxMzA5OSwxMzEzMCwxMzExNSwxMzIxMiwxMzIxMywxMzIxNCwxMzE5OCwxMzE5OSwxMzI1MiwxMzIxNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTMxNzksMTIzMTcsMTIzMTksODQ3MCwxMzI2MSw4NDgxLDEyOTY0LDEyOTY1''@;'; + put 'put ''LDEyOTY2LDEyOTY3LDEyOTY4LDEyODQ5LDEyODUwLDEyODU3LDEzMTgyLDEzMTgxLDEzMTgwLDg3ODYsODgwMSw4NzQ3LDg3NTAsODcyMSw4NzMwLDg4NjksODczNiw4NzM1LDg4OTUsODc1Nyw4NzQ1LDg3NDYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMDEyNCwyMTc4MiwyMzA0MywzODQ2MywyMTY5NiwyNDg1OSwyNTM4NCwyMzAzMCwzNjg5OCwzMzkwOSwzMzU2NCwzMTMxMiwyNDc0NiwyNTU2OSwy''@;'; + put 'put ''ODE5NywyNjA5MywzMzg5NCwzMzQ0NiwzOTkyNSwyNjc3MSwyMjMxMSwyNjAxNywyNTIwMSwyMzQ1MSwyMjk5MiwzNDQyNywzOTE1NiwzMjA5OCwzMjE5MCwzOTgyMiwyNTExMCwzMTkwMywzNDk5OSwyMzQzMywyNDI0NSwyNTM1MywyNjI2MywyNjY5NiwzODM0MywzODc5NywyNjQ0NywyMDE5''@;'; + put 'put ''NywyMDIzNCwyMDMwMSwyMDM4MSwyMDU1MywyMjI1OCwyMjgzOSwyMjk5NiwyMzA0MSwyMzU2MSwyNDc5OSwyNDg0NywyNDk0NCwyNjEzMSwyNjg4NSwyODg1OCwzMDAzMSwzMDA2NCwzMTIyNywzMjE3MywzMjIzOSwzMjk2MywzMzgwNiwzNDkxNSwzNTU4NiwzNjk0OSwzNjk4NiwyMTMwNywy''@;'; + put 'put ''MDExNywyMDEzMywyMjQ5NSwzMjk0NiwzNzA1NywzMDk1OSwxOTk2OCwyMjc2OSwyODMyMiwzNjkyMCwzMTI4MiwzMzU3NiwzMzQxOSwzOTk4MywyMDgwMSwyMTM2MCwyMTY5MywyMTcyOSwyMjI0MCwyMzAzNSwyNDM0MSwzOTE1NCwyODEzOSwzMjk5NiwzNDA5MywzODQ5OCwzODUxMiwzODU2''@;'; + put 'put ''MCwzODkwNywyMTUxNSwyMTQ5MSwyMzQzMSwyODg3OSwzMjcwMSwzNjgwMiwzODYzMiwyMTM1OSw0MDI4NCwzMTQxOCwxOTk4NSwzMDg2NywzMzI3NiwyODE5OCwyMjA0MCwyMTc2NCwyNzQyMSwzNDA3NCwzOTk5NSwyMzAxMywyMTQxNywyODAwNiwyOTkxNiwzODI4NywyMjA4MiwyMDExMywz''@;'; + put 'put ''NjkzOSwzODY0MiwzMzYxNSwzOTE4MCwyMTQ3MywyMTk0MiwyMzM0NCwyNDQzMywyNjE0NCwyNjM1NSwyNjYyOCwyNzcwNCwyNzg5MSwyNzk0NSwyOTc4NywzMDQwOCwzMTMxMCwzODk2NCwzMzUyMSwzNDkwNywzNTQyNCwzNzYxMywyODA4MiwzMDEyMywzMDQxMCwzOTM2NSwyNDc0MiwzNTU4''@;'; + put 'put ''NSwzNjIzNCwzODMyMiwyNzAyMiwyMTQyMSwyMDg3MCwyMjI5MCwyMjU3NiwyMjg1MiwyMzQ3NiwyNDMxMCwyNDYxNiwyNTUxMywyNTU4OCwyNzgzOSwyODQzNiwyODgxNCwyODk0OCwyOTAxNywyOTE0MSwyOTUwMywzMjI1NywzMzM5OCwzMzQ4OSwzNDE5OSwzNjk2MCwzNzQ2Nyw0MDIxOSwy''@;'; + put 'put ''MjYzMywyNjA0NCwyNzczOCwyOTk4OSwyMDk4NSwyMjgzMCwyMjg4NSwyNDQ0OCwyNDU0MCwyNTI3NiwyNjEwNiwyNzE3OCwyNzQzMSwyNzU3MiwyOTU3OSwzMjcwNSwzNTE1OCw0MDIzNiw0MDIwNiw0MDY0NCwyMzcxMywyNzc5OCwzMzY1OSwyMDc0MCwyMzYyNywyNTAxNCwzMzIyMiwyNjc0''@;'; + put 'put ''MiwyOTI4MSwyMDA1NywyMDQ3NCwyMTM2OCwyNDY4MSwyODIwMSwzMTMxMSwzODg5OSwxOTk3OSwyMTI3MCwyMDIwNiwyMDMwOSwyMDI4NSwyMDM4NSwyMDMzOSwyMTE1MiwyMTQ4NywyMjAyNSwyMjc5OSwyMzIzMywyMzQ3OCwyMzUyMSwzMTE4NSwyNjI0NywyNjUyNCwyNjU1MCwyNzQ2OCwy''@;'; + put 'put ''NzgyNywyODc3OSwyOTYzNCwzMTExNywzMTE2NiwzMTI5MiwzMTYyMywzMzQ1NywzMzQ5OSwzMzU0MCwzMzY1NSwzMzc3NSwzMzc0NywzNDY2MiwzNTUwNiwyMjA1NywzNjAwOCwzNjgzOCwzNjk0MiwzODY4NiwzNDQ0MiwyMDQyMCwyMzc4NCwyNTEwNSwyOTI3MywzMDAxMSwzMzI1MywzMzQ2''@;'; + put 'put ''OSwzNDU1OCwzNjAzMiwzODU5NywzOTE4NywzOTM4MSwyMDE3MSwyMDI1MCwzNTI5OSwyMjIzOCwyMjYwMiwyMjczMCwyNDMxNSwyNDU1NSwyNDYxOCwyNDcyNCwyNDY3NCwyNTA0MCwyNTEwNiwyNTI5NiwyNTkxMywzOTc0NSwyNjIxNCwyNjgwMCwyODAyMywyODc4NCwzMDAyOCwzMDM0Miwz''@;'; + put 'put ''MjExNywzMzQ0NSwzNDgwOSwzODI4MywzODU0MiwzNTk5NywyMDk3NywyMTE4MiwyMjgwNiwyMTY4MywyMzQ3NSwyMzgzMCwyNDkzNiwyNzAxMCwyODA3OSwzMDg2MSwzMzk5NSwzNDkwMywzNTQ0MiwzNzc5OSwzOTYwOCwyODAxMiwzOTMzNiwzNDUyMSwyMjQzNSwyNjYyMywzNDUxMCwzNzM5''@;'; + put 'put ''MCwyMTEyMywyMjE1MSwyMTUwOCwyNDI3NSwyNTMxMywyNTc4NSwyNjY4NCwyNjY4MCwyNzU3OSwyOTU1NCwzMDkwNiwzMTMzOSwzNTIyNiwzNTI4MiwzNjIwMywzNjYxMSwzNzEwMSwzODMwNywzODU0OCwzODc2MSwyMzM5OCwyMzczMSwyNzAwNSwzODk4OSwzODk5MCwyNTQ5OSwzMTUyMCwy''@;'; + put 'put ''NzE3OSwyNzI2MywyNjgwNiwzOTk0OSwyODUxMSwyMTEwNiwyMTkxNywyNDY4OCwyNTMyNCwyNzk2MywyODE2NywyODM2OSwzMzg4MywzNTA4OCwzNjY3NiwxOTk4OCwzOTk5MywyMTQ5NCwyNjkwNywyNzE5NCwzODc4OCwyNjY2NiwyMDgyOCwzMTQyNywzMzk3MCwzNzM0MCwzNzc3MiwyMjEw''@;'; + put 'put ''Nyw0MDIzMiwyNjY1OCwzMzU0MSwzMzg0MSwzMTkwOSwyMWUzLDMzNDc3LDI5OTI2LDIwMDk0LDIwMzU1LDIwODk2LDIzNTA2LDIxMDAyLDIxMjA4LDIxMjIzLDI0MDU5LDIxOTE0LDIyNTcwLDIzMDE0LDIzNDM2LDIzNDQ4LDIzNTE1LDI0MTc4LDI0MTg1LDI0NzM5LDI0ODYzLDI0OTMxLDI1''@;'; + put 'put ''MDIyLDI1NTYzLDI1OTU0LDI2NTc3LDI2NzA3LDI2ODc0LDI3NDU0LDI3NDc1LDI3NzM1LDI4NDUwLDI4NTY3LDI4NDg1LDI5ODcyLDI5OTc2LDMwNDM1LDMwNDc1LDMxNDg3LDMxNjQ5LDMxNzc3LDMyMjMzLDMyNTY2LDMyNzUyLDMyOTI1LDMzMzgyLDMzNjk0LDM1MjUxLDM1NTMyLDM2MDEx''@;'; + put 'put ''LDM2OTk2LDM3OTY5LDM4MjkxLDM4Mjg5LDM4MzA2LDM4NTAxLDM4ODY3LDM5MjA4LDMzMzA0LDIwMDI0LDIxNTQ3LDIzNzM2LDI0MDEyLDI5NjA5LDMwMjg0LDMwNTI0LDIzNzIxLDMyNzQ3LDM2MTA3LDM4NTkzLDM4OTI5LDM4OTk2LDM5ZTMsMjAyMjUsMjAyMzgsMjEzNjEsMjE5MTYsMjIx''@;'; + put 'put ''MjAsMjI1MjIsMjI4NTUsMjMzMDUsMjM0OTIsMjM2OTYsMjQwNzYsMjQxOTAsMjQ1MjQsMjU1ODIsMjY0MjYsMjYwNzEsMjYwODIsMjYzOTksMjY4MjcsMjY4MjAsMjcyMzEsMjQxMTIsMjc1ODksMjc2NzEsMjc3NzMsMzAwNzksMzEwNDgsMjMzOTUsMzEyMzIsMzJlMywyNDUwOSwzNTIxNSwz''@;'; + put 'put ''NTM1MiwzNjAyMCwzNjIxNSwzNjU1NiwzNjYzNywzOTEzOCwzOTQzOCwzOTc0MCwyMDA5NiwyMDYwNSwyMDczNiwyMjkzMSwyMzQ1MiwyNTEzNSwyNTIxNiwyNTgzNiwyNzQ1MCwyOTM0NCwzMDA5NywzMTA0NywzMjY4MSwzNDgxMSwzNTUxNiwzNTY5NiwyNTUxNiwzMzczOCwzODgxNiwyMTUx''@;'; + put 'put ''MywyMTUwNywyMTkzMSwyNjcwOCwyNzIyNCwzNTQ0MCwzMDc1OSwyNjQ4NSw0MDY1MywyMTM2NCwyMzQ1OCwzMzA1MCwzNDM4NCwzNjg3MCwxOTk5MiwyMDAzNywyMDE2NywyMDI0MSwyMTQ1MCwyMTU2MCwyMzQ3MCwyNDMzOSwyNDYxMywyNTkzNywyNjQyOSwyNzcxNCwyNzc2MiwyNzg3NSwy''@;'; + put 'put ''ODc5MiwyOTY5OSwzMTM1MCwzMTQwNiwzMTQ5NiwzMjAyNiwzMTk5OCwzMjEwMiwyNjA4NywyOTI3NSwyMTQzNSwyMzYyMSwyNDA0MCwyNTI5OCwyNTMxMiwyNTM2OSwyODE5MiwzNDM5NCwzNTM3NywzNjMxNywzNzYyNCwyODQxNywzMTE0MiwzOTc3MCwyMDEzNiwyMDEzOSwyMDE0MCwyMDM3''@;'; + put 'put ''OSwyMDM4NCwyMDY4OSwyMDgwNywzMTQ3OCwyMDg0OSwyMDk4MiwyMTMzMiwyMTI4MSwyMTM3NSwyMTQ4MywyMTkzMiwyMjY1OSwyMzc3NywyNDM3NSwyNDM5NCwyNDYyMywyNDY1NiwyNDY4NSwyNTM3NSwyNTk0NSwyNzIxMSwyNzg0MSwyOTM3OCwyOTQyMSwzMDcwMywzMzAxNiwzMzAyOSwz''@;'; + put 'put ''MzI4OCwzNDEyNiwzNzExMSwzNzg1NywzODkxMSwzOTI1NSwzOTUxNCwyMDIwOCwyMDk1NywyMzU5NywyNjI0MSwyNjk4OSwyMzYxNiwyNjM1NCwyNjk5NywyOTU3NywyNjcwNCwzMTg3MywyMDY3NywyMTIyMCwyMjM0MywyNDA2MiwzNzY3MCwyNjAyMCwyNzQyNywyNzQ1MywyOTc0OCwzMTEw''@;'; + put 'put ''NSwzMTE2NSwzMTU2MywzMjIwMiwzMzQ2NSwzMzc0MCwzNDk0MywzNTE2NywzNTY0MSwzNjgxNywzNzMyOSwyMTUzNSwzNzUwNCwyMDA2MSwyMDUzNCwyMTQ3NywyMTMwNiwyOTM5OSwyOTU5MCwzMDY5NywzMzUxMCwzNjUyNywzOTM2NiwzOTM2OCwzOTM3OCwyMDg1NSwyNDg1OCwzNDM5OCwy''@;'; + put 'put ''MTkzNiwzMTM1NCwyMDU5OCwyMzUwNywzNjkzNSwzODUzMywyMDAxOCwyNzM1NSwzNzM1MSwyMzYzMywyMzYyNCwyNTQ5NiwzMTM5MSwyNzc5NSwzODc3MiwzNjcwNSwzMTQwMiwyOTA2NiwzODUzNiwzMTg3NCwyNjY0NywzMjM2OCwyNjcwNSwzNzc0MCwyMTIzNCwyMTUzMSwzNDIxOSwzNTM0''@;'; + put 'put ''NywzMjY3NiwzNjU1NywzNzA4OSwyMTM1MCwzNDk1MiwzMTA0MSwyMDQxOCwyMDY3MCwyMTAwOSwyMDgwNCwyMTg0MywyMjMxNywyOTY3NCwyMjQxMSwyMjg2NSwyNDQxOCwyNDQ1MiwyNDY5MywyNDk1MCwyNDkzNSwyNTAwMSwyNTUyMiwyNTY1OCwyNTk2NCwyNjIyMywyNjY5MCwyODE3OSwz''@;'; + put 'put ''MDA1NCwzMTI5MywzMTk5NSwzMjA3NiwzMjE1MywzMjMzMSwzMjYxOSwzMzU1MCwzMzYxMCwzNDUwOSwzNTMzNiwzNTQyNywzNTY4NiwzNjYwNSwzODkzOCw0MDMzNSwzMzQ2NCwzNjgxNCwzOTkxMiwyMTEyNywyNTExOSwyNTczMSwyODYwOCwzODU1MywyNjY4OSwyMDYyNSwyNzQyNCwyNzc3''@;'; + put 'put ''MCwyODUwMCwzMTM0OCwzMjA4MCwzNDg4MCwzNTM2MywyNjM3NiwyMDIxNCwyMDUzNywyMDUxOCwyMDU4MSwyMDg2MCwyMTA0OCwyMTA5MSwyMTkyNywyMjI4NywyMjUzMywyMzI0NCwyNDMxNCwyNTAxMCwyNTA4MCwyNTMzMSwyNTQ1OCwyNjkwOCwyNzE3NywyOTMwOSwyOTM1NiwyOTQ4Niwz''@;'; + put 'put ''MDc0MCwzMDgzMSwzMjEyMSwzMDQ3NiwzMjkzNywzNTIxMSwzNTYwOSwzNjA2NiwzNjU2MiwzNjk2MywzNzc0OSwzODUyMiwzODk5NywzOTQ0Myw0MDU2OCwyMDgwMywyMTQwNywyMTQyNywyNDE4NywyNDM1OCwyODE4NywyODMwNCwyOTU3MiwyOTY5NCwzMjA2NywzMzMzNSwzNTMyOCwzNTU3''@;'; + put 'put ''OCwzODQ4MCwyMDA0NiwyMDQ5MSwyMTQ3NiwyMTYyOCwyMjI2NiwyMjk5MywyMzM5NiwyNDA0OSwyNDIzNSwyNDM1OSwyNTE0NCwyNTkyNSwyNjU0MywyODI0NiwyOTM5MiwzMTk0NiwzNDk5NiwzMjkyOSwzMjk5MywzMzc3NiwzNDM4MiwzNTQ2MywzNjMyOCwzNzQzMSwzODU5OSwzOTAxNSw0''@;'; + put 'put ''MDcyMywyMDExNiwyMDExNCwyMDIzNywyMTMyMCwyMTU3NywyMTU2NiwyMzA4NywyNDQ2MCwyNDQ4MSwyNDczNSwyNjc5MSwyNzI3OCwyOTc4NiwzMDg0OSwzNTQ4NiwzNTQ5MiwzNTcwMywzNzI2NCwyMDA2MiwzOTg4MSwyMDEzMiwyMDM0OCwyMDM5OSwyMDUwNSwyMDUwMiwyMDgwOSwyMDg0''@;'; + put 'put ''NCwyMTE1MSwyMTE3NywyMTI0NiwyMTQwMiwyMTQ3NSwyMTUyMSwyMTUxOCwyMTg5NywyMjM1MywyMjQzNCwyMjkwOSwyMzM4MCwyMzM4OSwyMzQzOSwyNDAzNywyNDAzOSwyNDA1NSwyNDE4NCwyNDE5NSwyNDIxOCwyNDI0NywyNDM0NCwyNDY1OCwyNDkwOCwyNTIzOSwyNTMwNCwyNTUxMSwy''@;'; + put 'put ''NTkxNSwyNjExNCwyNjE3OSwyNjM1NiwyNjQ3NywyNjY1NywyNjc3NSwyNzA4MywyNzc0MywyNzk0NiwyODAwOSwyODIwNywyODMxNywzMDAwMiwzMDM0MywzMDgyOCwzMTI5NSwzMTk2OCwzMjAwNSwzMjAyNCwzMjA5NCwzMjE3NywzMjc4OSwzMjc3MSwzMjk0MywzMjk0NSwzMzEwOCwzMzE2''@;'; + put 'put ''NywzMzMyMiwzMzYxOCwzNDg5MiwzNDkxMywzNTYxMSwzNjAwMiwzNjA5MiwzNzA2NiwzNzIzNywzNzQ4OSwzMDc4MywzNzYyOCwzODMwOCwzODQ3NywzODkxNywzOTMyMSwzOTY0MCw0MDI1MSwyMTA4MywyMTE2MywyMTQ5NSwyMTUxMiwyMjc0MSwyNTMzNSwyODY0MCwzNTk0NiwzNjcwMyw0''@;'; + put 'put ''MDYzMywyMDgxMSwyMTA1MSwyMTU3OCwyMjI2OSwzMTI5NiwzNzIzOSw0MDI4OCw0MDY1OCwyOTUwOCwyODQyNSwzMzEzNiwyOTk2OSwyNDU3MywyNDc5NCwzOTU5MiwyOTQwMywzNjc5NiwyNzQ5MiwzODkxNSwyMDE3MCwyMjI1NiwyMjM3MiwyMjcxOCwyMzEzMCwyNDY4MCwyNTAzMSwyNjEy''@;'; + put 'put ''NywyNjExOCwyNjY4MSwyNjgwMSwyODE1MSwzMDE2NSwzMjA1OCwzMzM5MCwzOTc0NiwyMDEyMywyMDMwNCwyMTQ0OSwyMTc2NiwyMzkxOSwyNDAzOCwyNDA0NiwyNjYxOSwyNzgwMSwyOTgxMSwzMDcyMiwzNTQwOCwzNzc4MiwzNTAzOSwyMjM1MiwyNDIzMSwyNTM4NywyMDY2MSwyMDY1Miwy''@;'; + put 'put ''MDg3NywyNjM2OCwyMTcwNSwyMjYyMiwyMjk3MSwyMzQ3MiwyNDQyNSwyNTE2NSwyNTUwNSwyNjY4NSwyNzUwNywyODE2OCwyODc5NywzNzMxOSwyOTMxMiwzMDc0MSwzMDc1OCwzMTA4NSwyNTk5OCwzMjA0OCwzMzc1NiwzNTAwOSwzNjYxNywzODU1NSwyMTA5MiwyMjMxMiwyNjQ0OCwzMjYx''@;'; + put 'put ''OCwzNjAwMSwyMDkxNiwyMjMzOCwzODQ0MiwyMjU4NiwyNzAxOCwzMjk0OCwyMTY4MiwyMzgyMiwyMjUyNCwzMDg2OSw0MDQ0MiwyMDMxNiwyMTA2NiwyMTY0MywyNTY2MiwyNjE1MiwyNjM4OCwyNjYxMywzMTM2NCwzMTU3NCwzMjAzNCwzNzY3OSwyNjcxNiwzOTg1MywzMTU0NSwyMTI3Mywy''@;'; + put 'put ''MDg3NCwyMTA0NywyMzUxOSwyNTMzNCwyNTc3NCwyNTgzMCwyNjQxMywyNzU3OCwzNDIxNywzODYwOSwzMDM1MiwzOTg5NCwyNTQyMCwzNzYzOCwzOTg1MSwzMDM5OSwyNjE5NCwxOTk3NywyMDYzMiwyMTQ0MiwyMzY2NSwyNDgwOCwyNTc0NiwyNTk1NSwyNjcxOSwyOTE1OCwyOTY0MiwyOTk4''@;'; + put 'put ''NywzMTYzOSwzMjM4NiwzNDQ1MywzNTcxNSwzNjA1OSwzNzI0MCwzOTE4NCwyNjAyOCwyNjI4MywyNzUzMSwyMDE4MSwyMDE4MCwyMDI4MiwyMDM1MSwyMTA1MCwyMTQ5NiwyMTQ5MCwyMTk4NywyMjIzNSwyMjc2MywyMjk4NywyMjk4NSwyMzAzOSwyMzM3NiwyMzYyOSwyNDA2NiwyNDEwNywy''@;'; + put 'put ''NDUzNSwyNDYwNSwyNTM1MSwyNTkwMywyMzM4OCwyNjAzMSwyNjA0NSwyNjA4OCwyNjUyNSwyNzQ5MCwyNzUxNSwyNzY2MywyOTUwOSwzMTA0OSwzMTE2OSwzMTk5MiwzMjAyNSwzMjA0MywzMjkzMCwzMzAyNiwzMzI2NywzNTIyMiwzNTQyMiwzNTQzMywzNTQzMCwzNTQ2OCwzNTU2NiwzNjAz''@;'; + put 'put ''OSwzNjA2MCwzODYwNCwzOTE2NCwyNzUwMywyMDEwNywyMDI4NCwyMDM2NSwyMDgxNiwyMzM4MywyMzU0NiwyNDkwNCwyNTM0NSwyNjE3OCwyNzQyNSwyODM2MywyNzgzNSwyOTI0NiwyOTg4NSwzMDE2NCwzMDkxMywzMTAzNCwzMjc4MCwzMjgxOSwzMzI1OCwzMzk0MCwzNjc2NiwyNzcyOCw0''@;'; + put 'put ''MDU3NSwyNDMzNSwzNTY3Miw0MDIzNSwzMTQ4MiwzNjYwMCwyMzQzNywzODYzNSwxOTk3MSwyMTQ4OSwyMjUxOSwyMjgzMywyMzI0MSwyMzQ2MCwyNDcxMywyODI4NywyODQyMiwzMDE0MiwzNjA3NCwyMzQ1NSwzNDA0OCwzMTcxMiwyMDU5NCwyNjYxMiwzMzQzNywyMzY0OSwzNDEyMiwzMjI4''@;'; + put 'put ''NiwzMzI5NCwyMDg4OSwyMzU1NiwyNTQ0OCwzNjE5OCwyNjAxMiwyOTAzOCwzMTAzOCwzMjAyMywzMjc3MywzNTYxMywzNjU1NCwzNjk3NCwzNDUwMywzNzAzNCwyMDUxMSwyMTI0MiwyMzYxMCwyNjQ1MSwyODc5NiwyOTIzNywzNzE5NiwzNzMyMCwzNzY3NSwzMzUwOSwyMzQ5MCwyNDM2OSwy''@;'; + put 'put ''NDgyNSwyMDAyNywyMTQ2MiwyMzQzMiwyNTE2MywyNjQxNywyNzUzMCwyOTQxNywyOTY2NCwzMTI3OCwzMzEzMSwzNjI1OSwzNzIwMiwzOTMxOCwyMDc1NCwyMTQ2MywyMTYxMCwyMzU1MSwyNTQ4MCwyNzE5MywzMjE3MiwzODY1NiwyMjIzNCwyMTQ1NCwyMTYwOCwyMzQ0NywyMzYwMSwyNDAz''@;'; + put 'put ''MCwyMDQ2MiwyNDgzMywyNTM0MiwyNzk1NCwzMTE2OCwzMTE3OSwzMjA2NiwzMjMzMywzMjcyMiwzMzI2MSwzMzMxMSwzMzkzNiwzNDg4NiwzNTE4NiwzNTcyOCwzNjQ2OCwzNjY1NSwzNjkxMywzNzE5NSwzNzIyOCwzODU5OCwzNzI3NiwyMDE2MCwyMDMwMywyMDgwNSwyMTMxMywyNDQ2Nywy''@;'; + put 'put ''NTEwMiwyNjU4MCwyNzcxMywyODE3MSwyOTUzOSwzMjI5NCwzNzMyNSwzNzUwNywyMTQ2MCwyMjgwOSwyMzQ4NywyODExMywzMTA2OSwzMjMwMiwzMTg5OSwyMjY1NCwyOTA4NywyMDk4NiwzNDg5OSwzNjg0OCwyMDQyNiwyMzgwMywyNjE0OSwzMDYzNiwzMTQ1OSwzMzMwOCwzOTQyMywyMDkz''@;'; + put 'put ''NCwyNDQ5MCwyNjA5MiwyNjk5MSwyNzUyOSwyODE0NywyODMxMCwyODUxNiwzMDQ2MiwzMjAyMCwyNDAzMywzNjk4MSwzNzI1NSwzODkxOCwyMDk2NiwyMTAyMSwyNTE1MiwyNjI1NywyNjMyOSwyODE4NiwyNDI0NiwzMjIxMCwzMjYyNiwyNjM2MCwzNDIyMywzNDI5NSwzNTU3NiwyMTE2MSwy''@;'; + put 'put ''MTQ2NSwyMjg5OSwyNDIwNywyNDQ2NCwyNDY2MSwzNzYwNCwzODUwMCwyMDY2MywyMDc2NywyMTIxMywyMTI4MCwyMTMxOSwyMTQ4NCwyMTczNiwyMTgzMCwyMTgwOSwyMjAzOSwyMjg4OCwyMjk3NCwyMzEwMCwyMzQ3NywyMzU1OCwyMzU2NywyMzU2OSwyMzU3OCwyNDE5NiwyNDIwMiwyNDI4''@;'; + put 'put ''OCwyNDQzMiwyNTIxNSwyNTIyMCwyNTMwNywyNTQ4NCwyNTQ2MywyNjExOSwyNjEyNCwyNjE1NywyNjIzMCwyNjQ5NCwyNjc4NiwyNzE2NywyNzE4OSwyNzgzNiwyODA0MCwyODE2OSwyODI0OCwyODk4OCwyODk2NiwyOTAzMSwzMDE1MSwzMDQ2NSwzMDgxMywzMDk3NywzMTA3NywzMTIxNiwz''@;'; + put 'put ''MTQ1NiwzMTUwNSwzMTkxMSwzMjA1NywzMjkxOCwzMzc1MCwzMzkzMSwzNDEyMSwzNDkwOSwzNTA1OSwzNTM1OSwzNTM4OCwzNTQxMiwzNTQ0MywzNTkzNywzNjA2MiwzNzI4NCwzNzQ3OCwzNzc1OCwzNzkxMiwzODU1NiwzODgwOCwxOTk3OCwxOTk3NiwxOTk5OCwyMDA1NSwyMDg4NywyMTEw''@;'; + put 'put ''NCwyMjQ3OCwyMjU4MCwyMjczMiwyMzMzMCwyNDEyMCwyNDc3MywyNTg1NCwyNjQ2NSwyNjQ1NCwyNzk3MiwyOTM2NiwzMDA2NywzMTMzMSwzMzk3NiwzNTY5OCwzNzMwNCwzNzY2NCwyMjA2NSwyMjUxNiwzOTE2NiwyNTMyNSwyNjg5MywyNzU0MiwyOTE2NSwzMjM0MCwzMjg4NywzMzM5NCwz''@;'; + put 'put ''NTMwMiwzOTEzNSwzNDY0NSwzNjc4NSwyMzYxMSwyMDI4MCwyMDQ0OSwyMDQwNSwyMTc2NywyMzA3MiwyMzUxNywyMzUyOSwyNDUxNSwyNDkxMCwyNTM5MSwyNjAzMiwyNjE4NywyNjg2MiwyNzAzNSwyODAyNCwyODE0NSwzMDAwMywzMDEzNywzMDQ5NSwzMTA3MCwzMTIwNiwzMjA1MSwzMzI1''@;'; + put 'put ''MSwzMzQ1NSwzNDIxOCwzNTI0MiwzNTM4NiwzNjUyMywzNjc2MywzNjkxNCwzNzM0MSwzODY2MywyMDE1NCwyMDE2MSwyMDk5NSwyMjY0NSwyMjc2NCwyMzU2MywyOTk3OCwyMzYxMywzMzEwMiwzNTMzOCwzNjgwNSwzODQ5OSwzODc2NSwzMTUyNSwzNTUzNSwzODkyMCwzNzIxOCwyMjI1OSwy''@;'; + put 'put ''MTQxNiwzNjg4NywyMTU2MSwyMjQwMiwyNDEwMSwyNTUxMiwyNzcwMCwyODgxMCwzMDU2MSwzMTg4MywzMjczNiwzNDkyOCwzNjkzMCwzNzIwNCwzNzY0OCwzNzY1NiwzODU0MywyOTc5MCwzOTYyMCwyMzgxNSwyMzkxMywyNTk2OCwyNjUzMCwzNjI2NCwzODYxOSwyNTQ1NCwyNjQ0MSwyNjkw''@;'; + put 'put ''NSwzMzczMywzODkzNSwzODU5MiwzNTA3MCwyODU0OCwyNTcyMiwyMzU0NCwxOTk5MCwyODcxNiwzMDA0NSwyNjE1OSwyMDkzMiwyMTA0NiwyMTIxOCwyMjk5NSwyNDQ0OSwyNDYxNSwyNTEwNCwyNTkxOSwyNTk3MiwyNjE0MywyNjIyOCwyNjg2NiwyNjY0NiwyNzQ5MSwyODE2NSwyOTI5OCwy''@;'; + put 'put ''OTk4MywzMDQyNywzMTkzNCwzMjg1NCwyMjc2OCwzNTA2OSwzNTE5OSwzNTQ4OCwzNTQ3NSwzNTUzMSwzNjg5MywzNzI2NiwzODczOCwzODc0NSwyNTk5MywzMTI0NiwzMzAzMCwzODU4NywyNDEwOSwyNDc5NiwyNTExNCwyNjAyMSwyNjEzMiwyNjUxMiwzMDcwNywzMTMwOSwzMTgyMSwzMjMx''@;'; + put 'put ''OCwzMzAzNCwzNjAxMiwzNjE5NiwzNjMyMSwzNjQ0NywzMDg4OSwyMDk5OSwyNTMwNSwyNTUwOSwyNTY2NiwyNTI0MCwzNTM3MywzMTM2MywzMTY4MCwzNTUwMCwzODYzNCwzMjExOCwzMzI5MiwzNDYzMywyMDE4NSwyMDgwOCwyMTMxNSwyMTM0NCwyMzQ1OSwyMzU1NCwyMzU3NCwyNDAyOSwy''@;'; + put 'put ''NTEyNiwyNTE1OSwyNTc3NiwyNjY0MywyNjY3NiwyNzg0OSwyNzk3MywyNzkyNywyNjU3OSwyODUwOCwyOTAwNiwyOTA1MywyNjA1OSwzMTM1OSwzMTY2MSwzMjIxOCwzMjMzMCwzMjY4MCwzMzE0NiwzMzMwNywzMzMzNywzNDIxNCwzNTQzOCwzNjA0NiwzNjM0MSwzNjk4NCwzNjk4MywzNzU0''@;'; + put 'put ''OSwzNzUyMSwzODI3NSwzOTg1NCwyMTA2OSwyMTg5MiwyODQ3MiwyODk4MiwyMDg0MCwzMTEwOSwzMjM0MSwzMzIwMywzMTk1MCwyMjA5MiwyMjYwOSwyMzcyMCwyNTUxNCwyNjM2NiwyNjM2NSwyNjk3MCwyOTQwMSwzMDA5NSwzMDA5NCwzMDk5MCwzMTA2MiwzMTE5OSwzMTg5NSwzMjAzMiwz''@;'; + put 'put ''MjA2OCwzNDMxMSwzNTM4MCwzODQ1OSwzNjk2MSw0MDczNiwyMDcxMSwyMTEwOSwyMTQ1MiwyMTQ3NCwyMDQ4OSwyMTkzMCwyMjc2NiwyMjg2MywyOTI0NSwyMzQzNSwyMzY1MiwyMTI3NywyNDgwMywyNDgxOSwyNTQzNiwyNTQ3NSwyNTQwNywyNTUzMSwyNTgwNSwyNjA4OSwyNjM2MSwyNDAz''@;'; + put 'put ''NSwyNzA4NSwyNzEzMywyODQzNywyOTE1NywyMDEwNSwzMDE4NSwzMDQ1NiwzMTM3OSwzMTk2NywzMjIwNywzMjE1NiwzMjg2NSwzMzYwOSwzMzYyNCwzMzkwMCwzMzk4MCwzNDI5OSwzNTAxMywzNjIwOCwzNjg2NSwzNjk3MywzNzc4MywzODY4NCwzOTQ0MiwyMDY4NywyMjY3OSwyNDk3NCwz''@;'; + put 'put ''MzIzNSwzNDEwMSwzNjEwNCwzNjg5NiwyMDQxOSwyMDU5NiwyMTA2MywyMTM2MywyNDY4NywyNTQxNywyNjQ2MywyODIwNCwzNjI3NSwzNjg5NSwyMDQzOSwyMzY0NiwzNjA0MiwyNjA2MywzMjE1NCwyMTMzMCwzNDk2NiwyMDg1NCwyNTUzOSwyMzM4NCwyMzQwMywyMzU2MiwyNTYxMywyNjQ0''@;'; + put 'put ''OSwzNjk1NiwyMDE4MiwyMjgxMCwyMjgyNiwyNzc2MCwzNTQwOSwyMTgyMiwyMjU0OSwyMjk0OSwyNDgxNiwyNTE3MSwyNjU2MSwzMzMzMywyNjk2NSwzODQ2NCwzOTM2NCwzOTQ2NCwyMDMwNywyMjUzNCwyMzU1MCwzMjc4NCwyMzcyOSwyNDExMSwyNDQ1MywyNDYwOCwyNDkwNywyNTE0MCwy''@;'; + put 'put ''NjM2NywyNzg4OCwyODM4MiwzMjk3NCwzMzE1MSwzMzQ5MiwzNDk1NSwzNjAyNCwzNjg2NCwzNjkxMCwzODUzOCw0MDY2NywzOTg5OSwyMDE5NSwyMTQ4OCwyMjgyMywzMTUzMiwzNzI2MSwzODk4OCw0MDQ0MSwyODM4MSwyODcxMSwyMTMzMSwyMTgyOCwyMzQyOSwyNTE3NiwyNTI0NiwyNTI5''@;'; + put 'put ''OSwyNzgxMCwyODY1NSwyOTczMCwzNTM1MSwzNzk0NCwyODYwOSwzNTU4MiwzMzU5MiwyMDk2NywzNDU1MiwyMTQ4MiwyMTQ4MSwyMDI5NCwzNjk0OCwzNjc4NCwyMjg5MCwzMzA3MywyNDA2MSwzMTQ2NiwzNjc5OSwyNjg0MiwzNTg5NSwyOTQzMiw0MDAwOCwyNzE5NywzNTUwNCwyMDAyNSwy''@;'; + put 'put ''MTMzNiwyMjAyMiwyMjM3NCwyNTI4NSwyNTUwNiwyNjA4NiwyNzQ3MCwyODEyOSwyODI1MSwyODg0NSwzMDcwMSwzMTQ3MSwzMTY1OCwzMjE4NywzMjgyOSwzMjk2NiwzNDUwNywzNTQ3NywzNzcyMywyMjI0MywyMjcyNywyNDM4MiwyNjAyOSwyNjI2MiwyNzI2NCwyNzU3MywzMDAwNywzNTUy''@;'; + put 'put ''NywyMDUxNiwzMDY5MywyMjMyMCwyNDM0NywyNDY3NywyNjIzNCwyNzc0NCwzMDE5NiwzMTI1OCwzMjYyMiwzMzI2OCwzNDU4NCwzNjkzMywzOTM0NywzMTY4OSwzMDA0NCwzMTQ4MSwzMTU2OSwzMzk4OCwzNjg4MCwzMTIwOSwzMTM3OCwzMzU5MCwyMzI2NSwzMDUyOCwyMDAxMywyMDIxMCwy''@;'; + put 'put ''MzQ0OSwyNDU0NCwyNTI3NywyNjE3MiwyNjYwOSwyNzg4MCwzNDQxMSwzNDkzNSwzNTM4NywzNzE5OCwzNzYxOSwzOTM3NiwyNzE1OSwyODcxMCwyOTQ4MiwzMzUxMSwzMzg3OSwzNjAxNSwxOTk2OSwyMDgwNiwyMDkzOSwyMTg5OSwyMzU0MSwyNDA4NiwyNDExNSwyNDE5MywyNDM0MCwyNDM3''@;'; + put 'put ''MywyNDQyNywyNDUwMCwyNTA3NCwyNTM2MSwyNjI3NCwyNjM5NywyODUyNiwyOTI2NiwzMDAxMCwzMDUyMiwzMjg4NCwzMzA4MSwzMzE0NCwzNDY3OCwzNTUxOSwzNTU0OCwzNjIyOSwzNjMzOSwzNzUzMCwzODI2MywzODkxNCw0MDE2NSwyMTE4OSwyNTQzMSwzMDQ1MiwyNjM4OSwyNzc4NCwy''@;'; + put 'put ''OTY0NSwzNjAzNSwzNzgwNiwzODUxNSwyNzk0MSwyMjY4NCwyNjg5NCwyNzA4NCwzNjg2MSwzNzc4NiwzMDE3MSwzNjg5MCwyMjYxOCwyNjYyNiwyNTUyNCwyNzEzMSwyMDI5MSwyODQ2MCwyNjU4NCwzNjc5NSwzNDA4NiwzMjE4MCwzNzcxNiwyNjk0MywyODUyOCwyMjM3OCwyMjc3NSwyMzM0''@;'; + put 'put ''MCwzMjA0NCwyOTIyNiwyMTUxNCwzNzM0Nyw0MDM3MiwyMDE0MSwyMDMwMiwyMDU3MiwyMDU5NywyMTA1OSwzNTk5OCwyMTU3NiwyMjU2NCwyMzQ1MCwyNDA5MywyNDIxMywyNDIzNywyNDMxMSwyNDM1MSwyNDcxNiwyNTI2OSwyNTQwMiwyNTU1MiwyNjc5OSwyNzcxMiwzMDg1NSwzMTExOCwz''@;'; + put 'put ''MTI0MywzMjIyNCwzMzM1MSwzNTMzMCwzNTU1OCwzNjQyMCwzNjg4MywzNzA0OCwzNzE2NSwzNzMzNiw0MDcxOCwyNzg3NywyNTY4OCwyNTgyNiwyNTk3MywyODQwNCwzMDM0MCwzMTUxNSwzNjk2OSwzNzg0MSwyODM0NiwyMTc0NiwyNDUwNSwyNTc2NCwzNjY4NSwzNjg0NSwzNzQ0NCwyMDg1''@;'; + put 'put ''NiwyMjYzNSwyMjgyNSwyMzYzNywyNDIxNSwyODE1NSwzMjM5OSwyOTk4MCwzNjAyOCwzNjU3OCwzOTAwMywyODg1NywyMDI1MywyNzU4MywyODU5MywzZTQsMzg2NTEsMjA4MTQsMjE1MjAsMjI1ODEsMjI2MTUsMjI5NTYsMjM2NDgsMjQ0NjYsMjYwMDcsMjY0NjAsMjgxOTMsMzAzMzEsMzM3''@;'; + put 'put ''NTksMzYwNzcsMzY4ODQsMzcxMTcsMzc3MDksMzA3NTcsMzA3NzgsMjExNjIsMjQyMzAsMjIzMDMsMjI5MDAsMjQ1OTQsMjA0OTgsMjA4MjYsMjA5MDgsMjA5NDEsMjA5OTIsMjE3NzYsMjI2MTIsMjI2MTYsMjI4NzEsMjM0NDUsMjM3OTgsMjM5NDcsMjQ3NjQsMjUyMzcsMjU2NDUsMjY0ODEs''@;'; + put 'put ''MjY2OTEsMjY4MTIsMjY4NDcsMzA0MjMsMjgxMjAsMjgyNzEsMjgwNTksMjg3ODMsMjkxMjgsMjQ0MDMsMzAxNjgsMzEwOTUsMzE1NjEsMzE1NzIsMzE1NzAsMzE5NTgsMzIxMTMsMjEwNDAsMzM4OTEsMzQxNTMsMzQyNzYsMzUzNDIsMzU1ODgsMzU5MTAsMzYzNjcsMzY4NjcsMzY4NzksMzc5''@;'; + put 'put ''MTMsMzg1MTgsMzg5NTcsMzk0NzIsMzgzNjAsMjA2ODUsMjEyMDUsMjE1MTYsMjI1MzAsMjM1NjYsMjQ5OTksMjU3NTgsMjc5MzQsMzA2NDMsMzE0NjEsMzMwMTIsMzM3OTYsMzY5NDcsMzc1MDksMjM3NzYsNDAxOTksMjEzMTEsMjQ0NzEsMjQ0OTksMjgwNjAsMjkzMDUsMzA1NjMsMzExNjcs''@;'; + put 'put ''MzE3MTYsMjc2MDIsMjk0MjAsMzU1MDEsMjY2MjcsMjcyMzMsMjA5ODQsMzEzNjEsMjY5MzIsMjM2MjYsNDAxODIsMzM1MTUsMjM0OTMsMzcxOTMsMjg3MDIsMjIxMzYsMjM2NjMsMjQ3NzUsMjU5NTgsMjc3ODgsMzU5MzAsMzY5MjksMzg5MzEsMjE1ODUsMjYzMTEsMzczODksMjI4NTYsMzcw''@;'; + put 'put ''MjcsMjA4NjksMjAwNDUsMjA5NzAsMzQyMDEsMzU1OTgsMjg3NjAsMjU0NjYsMzc3MDcsMjY5NzgsMzkzNDgsMzIyNjAsMzAwNzEsMjEzMzUsMjY5NzYsMzY1NzUsMzg2MjcsMjc3NDEsMjAxMDgsMjM2MTIsMjQzMzYsMzY4NDEsMjEyNTAsMzYwNDksMzI5MDUsMzQ0MjUsMjQzMTksMjYwODUs''@;'; + put 'put ''MjAwODMsMjA4MzcsMjI5MTQsMjM2MTUsMzg4OTQsMjAyMTksMjI5MjIsMjQ1MjUsMzU0NjksMjg2NDEsMzExNTIsMzEwNzQsMjM1MjcsMzM5MDUsMjk0ODMsMjkxMDUsMjQxODAsMjQ1NjUsMjU0NjcsMjU3NTQsMjkxMjMsMzE4OTYsMjAwMzUsMjQzMTYsMjAwNDMsMjI0OTIsMjIxNzgsMjQ3''@;'; + put 'put ''NDUsMjg2MTEsMzIwMTMsMzMwMjEsMzMwNzUsMzMyMTUsMzY3ODYsMzUyMjMsMzQ0NjgsMjQwNTIsMjUyMjYsMjU3NzMsMzUyMDcsMjY0ODcsMjc4NzQsMjc5NjYsMjk3NTAsMzA3NzIsMjMxMTAsMzI2MjksMzM0NTMsMzkzNDAsMjA0NjcsMjQyNTksMjUzMDksMjU0OTAsMjU5NDMsMjY0Nzks''@;'; + put 'put ''MzA0MDMsMjkyNjAsMzI5NzIsMzI5NTQsMzY2NDksMzcxOTcsMjA0OTMsMjI1MjEsMjMxODYsMjY3NTcsMjY5OTUsMjkwMjgsMjk0MzcsMzYwMjMsMjI3NzAsMzYwNjQsMzg1MDYsMzY4ODksMzQ2ODcsMzEyMDQsMzA2OTUsMzM4MzMsMjAyNzEsMjEwOTMsMjEzMzgsMjUyOTMsMjY1NzUsMjc4''@;'; + put 'put ''NTAsMzAzMzMsMzE2MzYsMzE4OTMsMzMzMzQsMzQxODAsMzY4NDMsMjYzMzMsMjg0NDgsMjkxOTAsMzIyODMsMzM3MDcsMzkzNjEsNDA2MTQsMjA5ODksMzE2NjUsMzA4MzQsMzE2NzIsMzI5MDMsMzE1NjAsMjczNjgsMjQxNjEsMzI5MDgsMzAwMzMsMzAwNDgsMjA4NDMsMzc0NzQsMjgzMDAs''@;'; + put 'put ''MzAzMzAsMzcyNzEsMzk2NTgsMjAyNDAsMzI2MjQsMjUyNDQsMzE1NjcsMzgzMDksNDAxNjksMjIxMzgsMjI2MTcsMzQ1MzIsMzg1ODgsMjAyNzYsMjEwMjgsMjEzMjIsMjE0NTMsMjE0NjcsMjQwNzAsMjU2NDQsMjYwMDEsMjY0OTUsMjc3MTAsMjc3MjYsMjkyNTYsMjkzNTksMjk2NzcsMzAw''@;'; + put 'put ''MzYsMzIzMjEsMzMzMjQsMzQyODEsMzYwMDksMzE2ODQsMzczMTgsMjkwMzMsMzg5MzAsMzkxNTEsMjU0MDUsMjYyMTcsMzAwNTgsMzA0MzYsMzA5MjgsMzQxMTUsMzQ1NDIsMjEyOTAsMjEzMjksMjE1NDIsMjI5MTUsMjQxOTksMjQ0NDQsMjQ3NTQsMjUxNjEsMjUyMDksMjUyNTksMjZlMywy''@;'; + put 'put ''NzYwNCwyNzg1MiwzMDEzMCwzMDM4MiwzMDg2NSwzMTE5MiwzMjIwMywzMjYzMSwzMjkzMywzNDk4NywzNTUxMywzNjAyNywzNjk5MSwzODc1MCwzOTEzMSwyNzE0NywzMTgwMCwyMDYzMywyMzYxNCwyNDQ5NCwyNjUwMywyNzYwOCwyOTc0OSwzMDQ3MywzMjY1NCw0MDc2MywyNjU3MCwzMTI1''@;'; + put 'put ''NSwyMTMwNSwzMDA5MSwzOTY2MSwyNDQyMiwzMzE4MSwzMzc3NywzMjkyMCwyNDM4MCwyNDUxNywzMDA1MCwzMTU1OCwzNjkyNCwyNjcyNywyMzAxOSwyMzE5NSwzMjAxNiwzMDMzNCwzNTYyOCwyMDQ2OSwyNDQyNiwyNzE2MSwyNzcwMywyODQxOCwyOTkyMiwzMTA4MCwzNDkyMCwzNTQxMywz''@;'; + put 'put ''NTk2MSwyNDI4NywyNTU1MSwzMDE0OSwzMTE4NiwzMzQ5NSwzNzY3MiwzNzYxOCwzMzk0OCwzNDU0MSwzOTk4MSwyMTY5NywyNDQyOCwyNTk5NiwyNzk5NiwyODY5MywzNjAwNywzNjA1MSwzODk3MSwyNTkzNSwyOTk0MiwxOTk4MSwyMDE4NCwyMjQ5NiwyMjgyNywyMzE0MiwyMzUwMCwyMDkw''@;'; + put 'put ''NCwyNDA2NywyNDIyMCwyNDU5OCwyNTIwNiwyNTk3NSwyNjAyMywyNjIyMiwyODAxNCwyOTIzOCwzMTUyNiwzMzEwNCwzMzE3OCwzMzQzMywzNTY3NiwzNmUzLDM2MDcwLDM2MjEyLDM4NDI4LDM4NDY4LDIwMzk4LDI1NzcxLDI3NDk0LDMzMzEwLDMzODg5LDM0MTU0LDM3MDk2LDIzNTUzLDI2''@;'; + put 'put ''OTYzLDM5MDgwLDMzOTE0LDM0MTM1LDIwMjM5LDIxMTAzLDI0NDg5LDI0MTMzLDI2MzgxLDMxMTE5LDMzMTQ1LDM1MDc5LDM1MjA2LDI4MTQ5LDI0MzQzLDI1MTczLDI3ODMyLDIwMTc1LDI5Mjg5LDM5ODI2LDIwOTk4LDIxNTYzLDIyMTMyLDIyNzA3LDI0OTk2LDI1MTk4LDI4OTU0LDIyODk0''@;'; + put 'put ''LDMxODgxLDMxOTY2LDMyMDI3LDM4NjQwLDI1OTkxLDMyODYyLDE5OTkzLDIwMzQxLDIwODUzLDIyNTkyLDI0MTYzLDI0MTc5LDI0MzMwLDI2NTY0LDIwMDA2LDM0MTA5LDM4MjgxLDM4NDkxLDMxODU5LDM4OTEzLDIwNzMxLDIyNzIxLDMwMjk0LDMwODg3LDIxMDI5LDMwNjI5LDM0MDY1LDMx''@;'; + put 'put ''NjIyLDIwNTU5LDIyNzkzLDI5MjU1LDMxNjg3LDMyMjMyLDM2Nzk0LDM2ODIwLDM2OTQxLDIwNDE1LDIxMTkzLDIzMDgxLDI0MzIxLDM4ODI5LDIwNDQ1LDMzMzAzLDM3NjEwLDIyMjc1LDI1NDI5LDI3NDk3LDI5OTk1LDM1MDM2LDM2NjI4LDMxMjk4LDIxMjE1LDIyNjc1LDI0OTE3LDI1MDk4''@;'; + put 'put ''LDI2Mjg2LDI3NTk3LDMxODA3LDMzNzY5LDIwNTE1LDIwNDcyLDIxMjUzLDIxNTc0LDIyNTc3LDIyODU3LDIzNDUzLDIzNzkyLDIzNzkxLDIzODQ5LDI0MjE0LDI1MjY1LDI1NDQ3LDI1OTE4LDI2MDQxLDI2Mzc5LDI3ODYxLDI3ODczLDI4OTIxLDMwNzcwLDMyMjk5LDMyOTkwLDMzNDU5LDMz''@;'; + put 'put ''ODA0LDM0MDI4LDM0NTYyLDM1MDkwLDM1MzcwLDM1OTE0LDM3MDMwLDM3NTg2LDM5MTY1LDQwMTc5LDQwMzAwLDIwMDQ3LDIwMTI5LDIwNjIxLDIxMDc4LDIyMzQ2LDIyOTUyLDI0MTI1LDI0NTM2LDI0NTM3LDI1MTUxLDI2MjkyLDI2Mzk1LDI2NTc2LDI2ODM0LDIwODgyLDMyMDMzLDMyOTM4''@;'; + put 'put ''LDMzMTkyLDM1NTg0LDM1OTgwLDM2MDMxLDM3NTAyLDM4NDUwLDIxNTM2LDM4OTU2LDIxMjcxLDIwNjkzLDIxMzQwLDIyNjk2LDI1Nzc4LDI2NDIwLDI5Mjg3LDMwNTY2LDMxMzAyLDM3MzUwLDIxMTg3LDI3ODA5LDI3NTI2LDIyNTI4LDI0MTQwLDIyODY4LDI2NDEyLDMyNzYzLDIwOTYxLDMw''@;'; + put 'put ''NDA2LDI1NzA1LDMwOTUyLDM5NzY0LDQwNjM1LDIyNDc1LDIyOTY5LDI2MTUxLDI2NTIyLDI3NTk4LDIxNzM3LDI3MDk3LDI0MTQ5LDMzMTgwLDI2NTE3LDM5ODUwLDI2NjIyLDQwMDE4LDI2NzE3LDIwMTM0LDIwNDUxLDIxNDQ4LDI1MjczLDI2NDExLDI3ODE5LDM2ODA0LDIwMzk3LDMyMzY1''@;'; + put 'put ''LDQwNjM5LDE5OTc1LDI0OTMwLDI4Mjg4LDI4NDU5LDM0MDY3LDIxNjE5LDI2NDEwLDM5NzQ5LDI0MDUxLDMxNjM3LDIzNzI0LDIzNDk0LDM0NTg4LDI4MjM0LDM0MDAxLDMxMjUyLDMzMDMyLDIyOTM3LDMxODg1LDI3NjY1LDMwNDk2LDIxMjA5LDIyODE4LDI4OTYxLDI5Mjc5LDMwNjgzLDM4''@;'; + put 'put ''Njk1LDQwMjg5LDI2ODkxLDIzMTY3LDIzMDY0LDIwOTAxLDIxNTE3LDIxNjI5LDI2MTI2LDMwNDMxLDM2ODU1LDM3NTI4LDQwMTgwLDIzMDE4LDI5Mjc3LDI4MzU3LDIwODEzLDI2ODI1LDMyMTkxLDMyMjM2LDM4NzU0LDQwNjM0LDI1NzIwLDI3MTY5LDMzNTM4LDIyOTE2LDIzMzkxLDI3NjEx''@;'; + put 'put ''LDI5NDY3LDMwNDUwLDMyMTc4LDMyNzkxLDMzOTQ1LDIwNzg2LDI2NDA4LDQwNjY1LDMwNDQ2LDI2NDY2LDIxMjQ3LDM5MTczLDIzNTg4LDI1MTQ3LDMxODcwLDM2MDE2LDIxODM5LDI0NzU4LDMyMDExLDM4MjcyLDIxMjQ5LDIwMDYzLDIwOTE4LDIyODEyLDI5MjQyLDMyODIyLDM3MzI2LDI0''@;'; + put 'put ''MzU3LDMwNjkwLDIxMzgwLDI0NDQxLDMyMDA0LDM0MjIwLDM1Mzc5LDM2NDkzLDM4NzQyLDI2NjExLDM0MjIyLDM3OTcxLDI0ODQxLDI0ODQwLDI3ODMzLDMwMjkwLDM1NTY1LDM2NjY0LDIxODA3LDIwMzA1LDIwNzc4LDIxMTkxLDIxNDUxLDIzNDYxLDI0MTg5LDI0NzM2LDI0OTYyLDI1NTU4''@;'; + put 'put ''LDI2Mzc3LDI2NTg2LDI4MjYzLDI4MDQ0LDI5NDk0LDI5NDk1LDMwMDAxLDMxMDU2LDM1MDI5LDM1NDgwLDM2OTM4LDM3MDA5LDM3MTA5LDM4NTk2LDM0NzAxLDIyODA1LDIwMTA0LDIwMzEzLDE5OTgyLDM1NDY1LDM2NjcxLDM4OTI4LDIwNjUzLDI0MTg4LDIyOTM0LDIzNDgxLDI0MjQ4LDI1''@;'; + put 'put ''NTYyLDI1NTk0LDI1NzkzLDI2MzMyLDI2OTU0LDI3MDk2LDI3OTE1LDI4MzQyLDI5MDc2LDI5OTkyLDMxNDA3LDMyNjUwLDMyNzY4LDMzODY1LDMzOTkzLDM1MjAxLDM1NjE3LDM2MzYyLDM2OTY1LDM4NTI1LDM5MTc4LDI0OTU4LDI1MjMzLDI3NDQyLDI3Nzc5LDI4MDIwLDMyNzE2LDMyNzY0''@;'; + put 'put ''LDI4MDk2LDMyNjQ1LDM0NzQ2LDM1MDY0LDI2NDY5LDMzNzEzLDM4OTcyLDM4NjQ3LDI3OTMxLDMyMDk3LDMzODUzLDM3MjI2LDIwMDgxLDIxMzY1LDIzODg4LDI3Mzk2LDI4NjUxLDM0MjUzLDM0MzQ5LDM1MjM5LDIxMDMzLDIxNTE5LDIzNjUzLDI2NDQ2LDI2NzkyLDI5NzAyLDI5ODI3LDMw''@;'; + put 'put ''MTc4LDM1MDIzLDM1MDQxLDM3MzI0LDM4NjI2LDM4NTIwLDI0NDU5LDI5NTc1LDMxNDM1LDMzODcwLDI1NTA0LDMwMDUzLDIxMTI5LDI3OTY5LDI4MzE2LDI5NzA1LDMwMDQxLDMwODI3LDMxODkwLDM4NTM0LDMxNDUyLDQwODQ1LDIwNDA2LDI0OTQyLDI2MDUzLDM0Mzk2LDIwMTAyLDIwMTQy''@;'; + put 'put ''LDIwNjk4LDIwMDAxLDIwOTQwLDIzNTM0LDI2MDA5LDI2NzUzLDI4MDkyLDI5NDcxLDMwMjc0LDMwNjM3LDMxMjYwLDMxOTc1LDMzMzkxLDM1NTM4LDM2OTg4LDM3MzI3LDM4NTE3LDM4OTM2LDIxMTQ3LDMyMjA5LDIwNTIzLDIxNDAwLDI2NTE5LDI4MTA3LDI5MTM2LDI5NzQ3LDMzMjU2LDM2''@;'; + put 'put ''NjUwLDM4NTYzLDQwMDIzLDQwNjA3LDI5NzkyLDIyNTkzLDI4MDU3LDMyMDQ3LDM5MDA2LDIwMTk2LDIwMjc4LDIwMzYzLDIwOTE5LDIxMTY5LDIzOTk0LDI0NjA0LDI5NjE4LDMxMDM2LDMzNDkxLDM3NDI4LDM4NTgzLDM4NjQ2LDM4NjY2LDQwNTk5LDQwODAyLDI2Mjc4LDI3NTA4LDIxMDE1''@;'; + put 'put ''LDIxMTU1LDI4ODcyLDM1MDEwLDI0MjY1LDI0NjUxLDI0OTc2LDI4NDUxLDI5MDAxLDMxODA2LDMyMjQ0LDMyODc5LDM0MDMwLDM2ODk5LDM3Njc2LDIxNTcwLDM5NzkxLDI3MzQ3LDI4ODA5LDM2MDM0LDM2MzM1LDM4NzA2LDIxMTcyLDIzMTA1LDI0MjY2LDI0MzI0LDI2MzkxLDI3MDA0LDI3''@;'; + put 'put ''MDI4LDI4MDEwLDI4NDMxLDI5MjgyLDI5NDM2LDMxNzI1LDMyNzY5LDMyODk0LDM0NjM1LDM3MDcwLDIwODQ1LDQwNTk1LDMxMTA4LDMyOTA3LDM3NjgyLDM1NTQyLDIwNTI1LDIxNjQ0LDM1NDQxLDI3NDk4LDM2MDM2LDMzMDMxLDI0Nzg1LDI2NTI4LDQwNDM0LDIwMTIxLDIwMTIwLDM5OTUy''@;'; + put 'put ''LDM1NDM1LDM0MjQxLDM0MTUyLDI2ODgwLDI4Mjg2LDMwODcxLDMzMTA5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjQzMzIsMTk5ODQsMTk5ODksMjAwMTAsMjAwMTcsMjAwMjIsMjAwMjgsMjAwMzEsMjAwMzQsMjAwNTQsMjAwNTYsMjAwOTgs''@;'; + put 'put ''MjAxMDEsMzU5NDcsMjAxMDYsMzMyOTgsMjQzMzMsMjAxMTAsMjAxMjYsMjAxMjcsMjAxMjgsMjAxMzAsMjAxNDQsMjAxNDcsMjAxNTAsMjAxNzQsMjAxNzMsMjAxNjQsMjAxNjYsMjAxNjIsMjAxODMsMjAxOTAsMjAyMDUsMjAxOTEsMjAyMTUsMjAyMzMsMjAzMTQsMjAyNzIsMjAzMTUsMjAz''@;'; + put 'put ''MTcsMjAzMTEsMjAyOTUsMjAzNDIsMjAzNjAsMjAzNjcsMjAzNzYsMjAzNDcsMjAzMjksMjAzMzYsMjAzNjksMjAzMzUsMjAzNTgsMjAzNzQsMjA3NjAsMjA0MzYsMjA0NDcsMjA0MzAsMjA0NDAsMjA0NDMsMjA0MzMsMjA0NDIsMjA0MzIsMjA0NTIsMjA0NTMsMjA1MDYsMjA1MjAsMjA1MDAs''@;'; + put 'put ''MjA1MjIsMjA1MTcsMjA0ODUsMjAyNTIsMjA0NzAsMjA1MTMsMjA1MjEsMjA1MjQsMjA0NzgsMjA0NjMsMjA0OTcsMjA0ODYsMjA1NDcsMjA1NTEsMjYzNzEsMjA1NjUsMjA1NjAsMjA1NTIsMjA1NzAsMjA1NjYsMjA1ODgsMjA2MDAsMjA2MDgsMjA2MzQsMjA2MTMsMjA2NjAsMjA2NTgsMjA2''@;'; + put 'put ''ODEsMjA2ODIsMjA2NTksMjA2NzQsMjA2OTQsMjA3MDIsMjA3MDksMjA3MTcsMjA3MDcsMjA3MTgsMjA3MjksMjA3MjUsMjA3NDUsMjA3MzcsMjA3MzgsMjA3NTgsMjA3NTcsMjA3NTYsMjA3NjIsMjA3NjksMjA3OTQsMjA3OTEsMjA3OTYsMjA3OTUsMjA3OTksMjA4MDAsMjA4MTgsMjA4MTIs''@;'; + put 'put ''MjA4MjAsMjA4MzQsMzE0ODAsMjA4NDEsMjA4NDIsMjA4NDYsMjA4NjQsMjA4NjYsMjIyMzIsMjA4NzYsMjA4NzMsMjA4NzksMjA4ODEsMjA4ODMsMjA4ODUsMjA4ODYsMjA5MDAsMjA5MDIsMjA4OTgsMjA5MDUsMjA5MDYsMjA5MDcsMjA5MTUsMjA5MTMsMjA5MTQsMjA5MTIsMjA5MTcsMjA5''@;'; + put 'put ''MjUsMjA5MzMsMjA5MzcsMjA5NTUsMjA5NjAsMzQzODksMjA5NjksMjA5NzMsMjA5NzYsMjA5ODEsMjA5OTAsMjA5OTYsMjEwMDMsMjEwMTIsMjEwMDYsMjEwMzEsMjEwMzQsMjEwMzgsMjEwNDMsMjEwNDksMjEwNzEsMjEwNjAsMjEwNjcsMjEwNjgsMjEwODYsMjEwNzYsMjEwOTgsMjExMDgs''@;'; + put 'put ''MjEwOTcsMjExMDcsMjExMTksMjExMTcsMjExMzMsMjExNDAsMjExMzgsMjExMDUsMjExMjgsMjExMzcsMzY3NzYsMzY3NzUsMjExNjQsMjExNjUsMjExODAsMjExNzMsMjExODUsMjExOTcsMjEyMDcsMjEyMTQsMjEyMTksMjEyMjIsMzkxNDksMjEyMTYsMjEyMzUsMjEyMzcsMjEyNDAsMjEy''@;'; + put 'put ''NDEsMjEyNTQsMjEyNTYsMzAwMDgsMjEyNjEsMjEyNjQsMjEyNjMsMjEyNjksMjEyNzQsMjEyODMsMjEyOTUsMjEyOTcsMjEyOTksMjEzMDQsMjEzMTIsMjEzMTgsMjEzMTcsMTk5OTEsMjEzMjEsMjEzMjUsMjA5NTAsMjEzNDIsMjEzNTMsMjEzNTgsMjI4MDgsMjEzNzEsMjEzNjcsMjEzNzgs''@;'; + put 'put ''MjEzOTgsMjE0MDgsMjE0MTQsMjE0MTMsMjE0MjIsMjE0MjQsMjE0MzAsMjE0NDMsMzE3NjIsMzg2MTcsMjE0NzEsMjYzNjQsMjkxNjYsMjE0ODYsMjE0ODAsMjE0ODUsMjE0OTgsMjE1MDUsMjE1NjUsMjE1NjgsMjE1NDgsMjE1NDksMjE1NjQsMjE1NTAsMjE1NTgsMjE1NDUsMjE1MzMsMjE1''@;'; + put 'put ''ODIsMjE2NDcsMjE2MjEsMjE2NDYsMjE1OTksMjE2MTcsMjE2MjMsMjE2MTYsMjE2NTAsMjE2MjcsMjE2MzIsMjE2MjIsMjE2MzYsMjE2NDgsMjE2MzgsMjE3MDMsMjE2NjYsMjE2ODgsMjE2NjksMjE2NzYsMjE3MDAsMjE3MDQsMjE2NzIsMjE2NzUsMjE2OTgsMjE2NjgsMjE2OTQsMjE2OTIs''@;'; + put 'put ''MjE3MjAsMjE3MzMsMjE3MzQsMjE3NzUsMjE3ODAsMjE3NTcsMjE3NDIsMjE3NDEsMjE3NTQsMjE3MzAsMjE4MTcsMjE4MjQsMjE4NTksMjE4MzYsMjE4MDYsMjE4NTIsMjE4MjksMjE4NDYsMjE4NDcsMjE4MTYsMjE4MTEsMjE4NTMsMjE5MTMsMjE4ODgsMjE2NzksMjE4OTgsMjE5MTksMjE4''@;'; + put 'put ''ODMsMjE4ODYsMjE5MTIsMjE5MTgsMjE5MzQsMjE4ODQsMjE4OTEsMjE5MjksMjE4OTUsMjE5MjgsMjE5NzgsMjE5NTcsMjE5ODMsMjE5NTYsMjE5ODAsMjE5ODgsMjE5NzIsMjIwMzYsMjIwMDcsMjIwMzgsMjIwMTQsMjIwMTMsMjIwNDMsMjIwMDksMjIwOTQsMjIwOTYsMjkxNTEsMjIwNjgs''@;'; + put 'put ''MjIwNzAsMjIwNjYsMjIwNzIsMjIxMjMsMjIxMTYsMjIwNjMsMjIxMjQsMjIxMjIsMjIxNTAsMjIxNDQsMjIxNTQsMjIxNzYsMjIxNjQsMjIxNTksMjIxODEsMjIxOTAsMjIxOTgsMjIxOTYsMjIyMTAsMjIyMDQsMjIyMDksMjIyMTEsMjIyMDgsMjIyMTYsMjIyMjIsMjIyMjUsMjIyMjcsMjIy''@;'; + put 'put ''MzEsMjIyNTQsMjIyNjUsMjIyNzIsMjIyNzEsMjIyNzYsMjIyODEsMjIyODAsMjIyODMsMjIyODUsMjIyOTEsMjIyOTYsMjIyOTQsMjE5NTksMjIzMDAsMjIzMTAsMjIzMjcsMjIzMjgsMjIzNTAsMjIzMzEsMjIzMzYsMjIzNTEsMjIzNzcsMjI0NjQsMjI0MDgsMjIzNjksMjIzOTksMjI0MDks''@;'; + put 'put ''MjI0MTksMjI0MzIsMjI0NTEsMjI0MzYsMjI0NDIsMjI0NDgsMjI0NjcsMjI0NzAsMjI0ODQsMjI0ODIsMjI0ODMsMjI1MzgsMjI0ODYsMjI0OTksMjI1MzksMjI1NTMsMjI1NTcsMjI2NDIsMjI1NjEsMjI2MjYsMjI2MDMsMjI2NDAsMjc1ODQsMjI2MTAsMjI1ODksMjI2NDksMjI2NjEsMjI3''@;'; + put 'put ''MTMsMjI2ODcsMjI2OTksMjI3MTQsMjI3NTAsMjI3MTUsMjI3MTIsMjI3MDIsMjI3MjUsMjI3MzksMjI3MzcsMjI3NDMsMjI3NDUsMjI3NDQsMjI3NTcsMjI3NDgsMjI3NTYsMjI3NTEsMjI3NjcsMjI3NzgsMjI3NzcsMjI3NzksMjI3ODAsMjI3ODEsMjI3ODYsMjI3OTQsMjI4MDAsMjI4MTEs''@;'; + put 'put ''MjY3OTAsMjI4MjEsMjI4MjgsMjI4MjksMjI4MzQsMjI4NDAsMjI4NDYsMzE0NDIsMjI4NjksMjI4NjQsMjI4NjIsMjI4NzQsMjI4NzIsMjI4ODIsMjI4ODAsMjI4ODcsMjI4OTIsMjI4ODksMjI5MDQsMjI5MTMsMjI5NDEsMjAzMTgsMjAzOTUsMjI5NDcsMjI5NjIsMjI5ODIsMjMwMTYsMjMw''@;'; + put 'put ''MDQsMjI5MjUsMjMwMDEsMjMwMDIsMjMwNzcsMjMwNzEsMjMwNTcsMjMwNjgsMjMwNDksMjMwNjYsMjMxMDQsMjMxNDgsMjMxMTMsMjMwOTMsMjMwOTQsMjMxMzgsMjMxNDYsMjMxOTQsMjMyMjgsMjMyMzAsMjMyNDMsMjMyMzQsMjMyMjksMjMyNjcsMjMyNTUsMjMyNzAsMjMyNzMsMjMyNTQs''@;'; + put 'put ''MjMyOTAsMjMyOTEsMjMzMDgsMjMzMDcsMjMzMTgsMjMzNDYsMjMyNDgsMjMzMzgsMjMzNTAsMjMzNTgsMjMzNjMsMjMzNjUsMjMzNjAsMjMzNzcsMjMzODEsMjMzODYsMjMzODcsMjMzOTcsMjM0MDEsMjM0MDgsMjM0MTEsMjM0MTMsMjM0MTYsMjU5OTIsMjM0MTgsMjM0MjQsMjM0MjcsMjM0''@;'; + put 'put ''NjIsMjM0ODAsMjM0OTEsMjM0OTUsMjM0OTcsMjM1MDgsMjM1MDQsMjM1MjQsMjM1MjYsMjM1MjIsMjM1MTgsMjM1MjUsMjM1MzEsMjM1MzYsMjM1NDIsMjM1MzksMjM1NTcsMjM1NTksMjM1NjAsMjM1NjUsMjM1NzEsMjM1ODQsMjM1ODYsMjM1OTIsMjM2MDgsMjM2MDksMjM2MTcsMjM2MjIs''@;'; + put 'put ''MjM2MzAsMjM2MzUsMjM2MzIsMjM2MzEsMjM0MDksMjM2NjAsMjM2NjIsMjAwNjYsMjM2NzAsMjM2NzMsMjM2OTIsMjM2OTcsMjM3MDAsMjI5MzksMjM3MjMsMjM3MzksMjM3MzQsMjM3NDAsMjM3MzUsMjM3NDksMjM3NDIsMjM3NTEsMjM3NjksMjM3ODUsMjM4MDUsMjM4MDIsMjM3ODksMjM5''@;'; + put 'put ''NDgsMjM3ODYsMjM4MTksMjM4MjksMjM4MzEsMjM5MDAsMjM4MzksMjM4MzUsMjM4MjUsMjM4MjgsMjM4NDIsMjM4MzQsMjM4MzMsMjM4MzIsMjM4ODQsMjM4OTAsMjM4ODYsMjM4ODMsMjM5MTYsMjM5MjMsMjM5MjYsMjM5NDMsMjM5NDAsMjM5MzgsMjM5NzAsMjM5NjUsMjM5ODAsMjM5ODIs''@;'; + put 'put ''MjM5OTcsMjM5NTIsMjM5OTEsMjM5OTYsMjQwMDksMjQwMTMsMjQwMTksMjQwMTgsMjQwMjIsMjQwMjcsMjQwNDMsMjQwNTAsMjQwNTMsMjQwNzUsMjQwOTAsMjQwODksMjQwODEsMjQwOTEsMjQxMTgsMjQxMTksMjQxMzIsMjQxMzEsMjQxMjgsMjQxNDIsMjQxNTEsMjQxNDgsMjQxNTksMjQx''@;'; + put 'put ''NjIsMjQxNjQsMjQxMzUsMjQxODEsMjQxODIsMjQxODYsNDA2MzYsMjQxOTEsMjQyMjQsMjQyNTcsMjQyNTgsMjQyNjQsMjQyNzIsMjQyNzEsMjQyNzgsMjQyOTEsMjQyODUsMjQyODIsMjQyODMsMjQyOTAsMjQyODksMjQyOTYsMjQyOTcsMjQzMDAsMjQzMDUsMjQzMDcsMjQzMDQsMjQzMDgs''@;'; + put 'put ''MjQzMTIsMjQzMTgsMjQzMjMsMjQzMjksMjQ0MTMsMjQ0MTIsMjQzMzEsMjQzMzcsMjQzNDIsMjQzNjEsMjQzNjUsMjQzNzYsMjQzODUsMjQzOTIsMjQzOTYsMjQzOTgsMjQzNjcsMjQ0MDEsMjQ0MDYsMjQ0MDcsMjQ0MDksMjQ0MTcsMjQ0MjksMjQ0MzUsMjQ0MzksMjQ0NTEsMjQ0NTAsMjQ0''@;'; + put 'put ''NDcsMjQ0NTgsMjQ0NTYsMjQ0NjUsMjQ0NTUsMjQ0NzgsMjQ0NzMsMjQ0NzIsMjQ0ODAsMjQ0ODgsMjQ0OTMsMjQ1MDgsMjQ1MzQsMjQ1NzEsMjQ1NDgsMjQ1NjgsMjQ1NjEsMjQ1NDEsMjQ3NTUsMjQ1NzUsMjQ2MDksMjQ2NzIsMjQ2MDEsMjQ1OTIsMjQ2MTcsMjQ1OTAsMjQ2MjUsMjQ2MDMs''@;'; + put 'put ''MjQ1OTcsMjQ2MTksMjQ2MTQsMjQ1OTEsMjQ2MzQsMjQ2NjYsMjQ2NDEsMjQ2ODIsMjQ2OTUsMjQ2NzEsMjQ2NTAsMjQ2NDYsMjQ2NTMsMjQ2NzUsMjQ2NDMsMjQ2NzYsMjQ2NDIsMjQ2ODQsMjQ2ODMsMjQ2NjUsMjQ3MDUsMjQ3MTcsMjQ4MDcsMjQ3MDcsMjQ3MzAsMjQ3MDgsMjQ3MzEsMjQ3''@;'; + put 'put ''MjYsMjQ3MjcsMjQ3MjIsMjQ3NDMsMjQ3MTUsMjQ4MDEsMjQ3NjAsMjQ4MDAsMjQ3ODcsMjQ3NTYsMjQ1NjAsMjQ3NjUsMjQ3NzQsMjQ3NTcsMjQ3OTIsMjQ5MDksMjQ4NTMsMjQ4MzgsMjQ4MjIsMjQ4MjMsMjQ4MzIsMjQ4MjAsMjQ4MjYsMjQ4MzUsMjQ4NjUsMjQ4MjcsMjQ4MTcsMjQ4NDUs''@;'; + put 'put ''MjQ4NDYsMjQ5MDMsMjQ4OTQsMjQ4NzIsMjQ4NzEsMjQ5MDYsMjQ4OTUsMjQ4OTIsMjQ4NzYsMjQ4ODQsMjQ4OTMsMjQ4OTgsMjQ5MDAsMjQ5NDcsMjQ5NTEsMjQ5MjAsMjQ5MjEsMjQ5MjIsMjQ5MzksMjQ5NDgsMjQ5NDMsMjQ5MzMsMjQ5NDUsMjQ5MjcsMjQ5MjUsMjQ5MTUsMjQ5NDksMjQ5''@;'; + put 'put ''ODUsMjQ5ODIsMjQ5NjcsMjUwMDQsMjQ5ODAsMjQ5ODYsMjQ5NzAsMjQ5NzcsMjUwMDMsMjUwMDYsMjUwMzYsMjUwMzQsMjUwMzMsMjUwNzksMjUwMzIsMjUwMjcsMjUwMzAsMjUwMTgsMjUwMzUsMzI2MzMsMjUwMzcsMjUwNjIsMjUwNTksMjUwNzgsMjUwODIsMjUwNzYsMjUwODcsMjUwODUs''@;'; + put 'put ''MjUwODQsMjUwODYsMjUwODgsMjUwOTYsMjUwOTcsMjUxMDEsMjUxMDAsMjUxMDgsMjUxMTUsMjUxMTgsMjUxMjEsMjUxMzAsMjUxMzQsMjUxMzYsMjUxMzgsMjUxMzksMjUxNTMsMjUxNjYsMjUxODIsMjUxODcsMjUxNzksMjUxODQsMjUxOTIsMjUyMTIsMjUyMTgsMjUyMjUsMjUyMTQsMjUy''@;'; + put 'put ''MzQsMjUyMzUsMjUyMzgsMjUzMDAsMjUyMTksMjUyMzYsMjUzMDMsMjUyOTcsMjUyNzUsMjUyOTUsMjUzNDMsMjUyODYsMjU4MTIsMjUyODgsMjUzMDgsMjUyOTIsMjUyOTAsMjUyODIsMjUyODcsMjUyNDMsMjUyODksMjUzNTYsMjUzMjYsMjUzMjksMjUzODMsMjUzNDYsMjUzNTIsMjUzMjcs''@;'; + put 'put ''MjUzMzMsMjU0MjQsMjU0MDYsMjU0MjEsMjU2MjgsMjU0MjMsMjU0OTQsMjU0ODYsMjU0NzIsMjU1MTUsMjU0NjIsMjU1MDcsMjU0ODcsMjU0ODEsMjU1MDMsMjU1MjUsMjU0NTEsMjU0NDksMjU1MzQsMjU1NzcsMjU1MzYsMjU1NDIsMjU1NzEsMjU1NDUsMjU1NTQsMjU1OTAsMjU1NDAsMjU2''@;'; + put 'put ''MjIsMjU2NTIsMjU2MDYsMjU2MTksMjU2MzgsMjU2NTQsMjU4ODUsMjU2MjMsMjU2NDAsMjU2MTUsMjU3MDMsMjU3MTEsMjU3MTgsMjU2NzgsMjU4OTgsMjU3NDksMjU3NDcsMjU3NjUsMjU3NjksMjU3MzYsMjU3ODgsMjU4MTgsMjU4MTAsMjU3OTcsMjU3OTksMjU3ODcsMjU4MTYsMjU3OTQs''@;'; + put 'put ''MjU4NDEsMjU4MzEsMzMyODksMjU4MjQsMjU4MjUsMjUyNjAsMjU4MjcsMjU4MzksMjU5MDAsMjU4NDYsMjU4NDQsMjU4NDIsMjU4NTAsMjU4NTYsMjU4NTMsMjU4ODAsMjU4ODQsMjU4NjEsMjU4OTIsMjU4OTEsMjU4OTksMjU5MDgsMjU5MDksMjU5MTEsMjU5MTAsMjU5MTIsMzAwMjcsMjU5''@;'; + put 'put ''MjgsMjU5NDIsMjU5NDEsMjU5MzMsMjU5NDQsMjU5NTAsMjU5NDksMjU5NzAsMjU5NzYsMjU5ODYsMjU5ODcsMzU3MjIsMjYwMTEsMjYwMTUsMjYwMjcsMjYwMzksMjYwNTEsMjYwNTQsMjYwNDksMjYwNTIsMjYwNjAsMjYwNjYsMjYwNzUsMjYwNzMsMjYwODAsMjYwODEsMjYwOTcsMjY0ODIs''@;'; + put 'put ''MjYxMjIsMjYxMTUsMjYxMDcsMjY0ODMsMjYxNjUsMjYxNjYsMjYxNjQsMjYxNDAsMjYxOTEsMjYxODAsMjYxODUsMjYxNzcsMjYyMDYsMjYyMDUsMjYyMTIsMjYyMTUsMjYyMTYsMjYyMDcsMjYyMTAsMjYyMjQsMjYyNDMsMjYyNDgsMjYyNTQsMjYyNDksMjYyNDQsMjYyNjQsMjYyNjksMjYz''@;'; + put 'put ''MDUsMjYyOTcsMjYzMTMsMjYzMDIsMjYzMDAsMjYzMDgsMjYyOTYsMjYzMjYsMjYzMzAsMjYzMzYsMjYxNzUsMjYzNDIsMjYzNDUsMjYzNTIsMjYzNTcsMjYzNTksMjYzODMsMjYzOTAsMjYzOTgsMjY0MDYsMjY0MDcsMzg3MTIsMjY0MTQsMjY0MzEsMjY0MjIsMjY0MzMsMjY0MjQsMjY0MjMs''@;'; + put 'put ''MjY0MzgsMjY0NjIsMjY0NjQsMjY0NTcsMjY0NjcsMjY0NjgsMjY1MDUsMjY0ODAsMjY1MzcsMjY0OTIsMjY0NzQsMjY1MDgsMjY1MDcsMjY1MzQsMjY1MjksMjY1MDEsMjY1NTEsMjY2MDcsMjY1NDgsMjY2MDQsMjY1NDcsMjY2MDEsMjY1NTIsMjY1OTYsMjY1OTAsMjY1ODksMjY1OTQsMjY2''@;'; + put 'put ''MDYsMjY1NTMsMjY1NzQsMjY1NjYsMjY1OTksMjcyOTIsMjY2NTQsMjY2OTQsMjY2NjUsMjY2ODgsMjY3MDEsMjY2NzQsMjY3MDIsMjY4MDMsMjY2NjcsMjY3MTMsMjY3MjMsMjY3NDMsMjY3NTEsMjY3ODMsMjY3NjcsMjY3OTcsMjY3NzIsMjY3ODEsMjY3NzksMjY3NTUsMjczMTAsMjY4MDks''@;'; + put 'put ''MjY3NDAsMjY4MDUsMjY3ODQsMjY4MTAsMjY4OTUsMjY3NjUsMjY3NTAsMjY4ODEsMjY4MjYsMjY4ODgsMjY4NDAsMjY5MTQsMjY5MTgsMjY4NDksMjY4OTIsMjY4MjksMjY4MzYsMjY4NTUsMjY4MzcsMjY5MzQsMjY4OTgsMjY4ODQsMjY4MzksMjY4NTEsMjY5MTcsMjY4NzMsMjY4NDgsMjY4''@;'; + put 'put ''NjMsMjY5MjAsMjY5MjIsMjY5MDYsMjY5MTUsMjY5MTMsMjY4MjIsMjcwMDEsMjY5OTksMjY5NzIsMjdlMywyNjk4NywyNjk2NCwyNzAwNiwyNjk5MCwyNjkzNywyNjk5NiwyNjk0MSwyNjk2OSwyNjkyOCwyNjk3NywyNjk3NCwyNjk3MywyNzAwOSwyNjk4NiwyNzA1OCwyNzA1NCwyNzA4OCwy''@;'; + put 'put ''NzA3MSwyNzA3MywyNzA5MSwyNzA3MCwyNzA4NiwyMzUyOCwyNzA4MiwyNzEwMSwyNzA2NywyNzA3NSwyNzA0NywyNzE4MiwyNzAyNSwyNzA0MCwyNzAzNiwyNzAyOSwyNzA2MCwyNzEwMiwyNzExMiwyNzEzOCwyNzE2MywyNzEzNSwyNzQwMiwyNzEyOSwyNzEyMiwyNzExMSwyNzE0MSwyNzA1''@;'; + put 'put ''NywyNzE2NiwyNzExNywyNzE1NiwyNzExNSwyNzE0NiwyNzE1NCwyNzMyOSwyNzE3MSwyNzE1NSwyNzIwNCwyNzE0OCwyNzI1MCwyNzE5MCwyNzI1NiwyNzIwNywyNzIzNCwyNzIyNSwyNzIzOCwyNzIwOCwyNzE5MiwyNzE3MCwyNzI4MCwyNzI3NywyNzI5NiwyNzI2OCwyNzI5OCwyNzI5OSwy''@;'; + put 'put ''NzI4NywzNDMyNywyNzMyMywyNzMzMSwyNzMzMCwyNzMyMCwyNzMxNSwyNzMwOCwyNzM1OCwyNzM0NSwyNzM1OSwyNzMwNiwyNzM1NCwyNzM3MCwyNzM4NywyNzM5NywzNDMyNiwyNzM4NiwyNzQxMCwyNzQxNCwzOTcyOSwyNzQyMywyNzQ0OCwyNzQ0NywzMDQyOCwyNzQ0OSwzOTE1MCwyNzQ2''@;'; + put 'put ''MywyNzQ1OSwyNzQ2NSwyNzQ3MiwyNzQ4MSwyNzQ3NiwyNzQ4MywyNzQ4NywyNzQ4OSwyNzUxMiwyNzUxMywyNzUxOSwyNzUyMCwyNzUyNCwyNzUyMywyNzUzMywyNzU0NCwyNzU0MSwyNzU1MCwyNzU1NiwyNzU2MiwyNzU2MywyNzU2NywyNzU3MCwyNzU2OSwyNzU3MSwyNzU3NSwyNzU4MCwy''@;'; + put 'put ''NzU5MCwyNzU5NSwyNzYwMywyNzYxNSwyNzYyOCwyNzYyNywyNzYzNSwyNzYzMSw0MDYzOCwyNzY1NiwyNzY2NywyNzY2OCwyNzY3NSwyNzY4NCwyNzY4MywyNzc0MiwyNzczMywyNzc0NiwyNzc1NCwyNzc3OCwyNzc4OSwyNzgwMiwyNzc3NywyNzgwMywyNzc3NCwyNzc1MiwyNzc2MywyNzc5''@;'; + put 'put ''NCwyNzc5MiwyNzg0NCwyNzg4OSwyNzg1OSwyNzgzNywyNzg2MywyNzg0NSwyNzg2OSwyNzgyMiwyNzgyNSwyNzgzOCwyNzgzNCwyNzg2NywyNzg4NywyNzg2NSwyNzg4MiwyNzkzNSwzNDg5MywyNzk1OCwyNzk0NywyNzk2NSwyNzk2MCwyNzkyOSwyNzk1NywyNzk1NSwyNzkyMiwyNzkxNiwy''@;'; + put 'put ''ODAwMywyODA1MSwyODAwNCwyNzk5NCwyODAyNSwyNzk5MywyODA0NiwyODA1MywyODY0NCwyODAzNywyODE1MywyODE4MSwyODE3MCwyODA4NSwyODEwMywyODEzNCwyODA4OCwyODEwMiwyODE0MCwyODEyNiwyODEwOCwyODEzNiwyODExNCwyODEwMSwyODE1NCwyODEyMSwyODEzMiwyODEx''@;'; + put 'put ''NywyODEzOCwyODE0MiwyODIwNSwyODI3MCwyODIwNiwyODE4NSwyODI3NCwyODI1NSwyODIyMiwyODE5NSwyODI2NywyODIwMywyODI3OCwyODIzNywyODE5MSwyODIyNywyODIxOCwyODIzOCwyODE5NiwyODQxNSwyODE4OSwyODIxNiwyODI5MCwyODMzMCwyODMxMiwyODM2MSwyODM0Mywy''@;'; + put 'put ''ODM3MSwyODM0OSwyODMzNSwyODM1NiwyODMzOCwyODM3MiwyODM3MywyODMwMywyODMyNSwyODM1NCwyODMxOSwyODQ4MSwyODQzMywyODc0OCwyODM5NiwyODQwOCwyODQxNCwyODQ3OSwyODQwMiwyODQ2NSwyODM5OSwyODQ2NiwyODM2NCwyODQ3OCwyODQzNSwyODQwNywyODU1MCwyODUz''@;'; + put 'put ''OCwyODUzNiwyODU0NSwyODU0NCwyODUyNywyODUwNywyODY1OSwyODUyNSwyODU0NiwyODU0MCwyODUwNCwyODU1OCwyODU2MSwyODYxMCwyODUxOCwyODU5NSwyODU3OSwyODU3NywyODU4MCwyODYwMSwyODYxNCwyODU4NiwyODYzOSwyODYyOSwyODY1MiwyODYyOCwyODYzMiwyODY1Nywy''@;'; + put 'put ''ODY1NCwyODYzNSwyODY4MSwyODY4MywyODY2NiwyODY4OSwyODY3MywyODY4NywyODY3MCwyODY5OSwyODY5OCwyODUzMiwyODcwMSwyODY5NiwyODcwMywyODcyMCwyODczNCwyODcyMiwyODc1MywyODc3MSwyODgyNSwyODgxOCwyODg0NywyODkxMywyODg0NCwyODg1NiwyODg1MSwyODg0''@;'; + put 'put ''NiwyODg5NSwyODg3NSwyODg5MywyODg4OSwyODkzNywyODkyNSwyODk1NiwyODk1MywyOTAyOSwyOTAxMywyOTA2NCwyOTAzMCwyOTAyNiwyOTAwNCwyOTAxNCwyOTAzNiwyOTA3MSwyOTE3OSwyOTA2MCwyOTA3NywyOTA5NiwyOTEwMCwyOTE0MywyOTExMywyOTExOCwyOTEzOCwyOTEyOSwy''@;'; + put 'put ''OTE0MCwyOTEzNCwyOTE1MiwyOTE2NCwyOTE1OSwyOTE3MywyOTE4MCwyOTE3NywyOTE4MywyOTE5NywyOTIwMCwyOTIxMSwyOTIyNCwyOTIyOSwyOTIyOCwyOTIzMiwyOTIzNCwyOTI0MywyOTI0NCwyOTI0NywyOTI0OCwyOTI1NCwyOTI1OSwyOTI3MiwyOTMwMCwyOTMxMCwyOTMxNCwyOTMx''@;'; + put 'put ''MywyOTMxOSwyOTMzMCwyOTMzNCwyOTM0NiwyOTM1MSwyOTM2OSwyOTM2MiwyOTM3OSwyOTM4MiwyOTM4MCwyOTM5MCwyOTM5NCwyOTQxMCwyOTQwOCwyOTQwOSwyOTQzMywyOTQzMSwyMDQ5NSwyOTQ2MywyOTQ1MCwyOTQ2OCwyOTQ2MiwyOTQ2OSwyOTQ5MiwyOTQ4NywyOTQ4MSwyOTQ3Nywy''@;'; + put 'put ''OTUwMiwyOTUxOCwyOTUxOSw0MDY2NCwyOTUyNywyOTU0NiwyOTU0NCwyOTU1MiwyOTU2MCwyOTU1NywyOTU2MywyOTU2MiwyOTY0MCwyOTYxOSwyOTY0NiwyOTYyNywyOTYzMiwyOTY2OSwyOTY3OCwyOTY2MiwyOTg1OCwyOTcwMSwyOTgwNywyOTczMywyOTY4OCwyOTc0NiwyOTc1NCwyOTc4''@;'; + put 'put ''MSwyOTc1OSwyOTc5MSwyOTc4NSwyOTc2MSwyOTc4OCwyOTgwMSwyOTgwOCwyOTc5NSwyOTgwMiwyOTgxNCwyOTgyMiwyOTgzNSwyOTg1NCwyOTg2MywyOTg5OCwyOTkwMywyOTkwOCwyOTY4MSwyOTkyMCwyOTkyMywyOTkyNywyOTkyOSwyOTkzNCwyOTkzOCwyOTkzNiwyOTkzNywyOTk0NCwy''@;'; + put 'put ''OTk0MywyOTk1NiwyOTk1NSwyOTk1NywyOTk2NCwyOTk2NiwyOTk2NSwyOTk3MywyOTk3MSwyOTk4MiwyOTk5MCwyOTk5NiwzMDAxMiwzMDAyMCwzMDAyOSwzMDAyNiwzMDAyNSwzMDA0MywzMDAyMiwzMDA0MiwzMDA1NywzMDA1MiwzMDA1NSwzMDA1OSwzMDA2MSwzMDA3MiwzMDA3MCwzMDA4''@;'; + put 'put ''NiwzMDA4NywzMDA2OCwzMDA5MCwzMDA4OSwzMDA4MiwzMDEwMCwzMDEwNiwzMDEwOSwzMDExNywzMDExNSwzMDE0NiwzMDEzMSwzMDE0NywzMDEzMywzMDE0MSwzMDEzNiwzMDE0MCwzMDEyOSwzMDE1NywzMDE1NCwzMDE2MiwzMDE2OSwzMDE3OSwzMDE3NCwzMDIwNiwzMDIwNywzMDIwNCwz''@;'; + put 'put ''MDIwOSwzMDE5MiwzMDIwMiwzMDE5NCwzMDE5NSwzMDIxOSwzMDIyMSwzMDIxNywzMDIzOSwzMDI0NywzMDI0MCwzMDI0MSwzMDI0MiwzMDI0NCwzMDI2MCwzMDI1NiwzMDI2NywzMDI3OSwzMDI4MCwzMDI3OCwzMDMwMCwzMDI5NiwzMDMwNSwzMDMwNiwzMDMxMiwzMDMxMywzMDMxNCwzMDMx''@;'; + put 'put ''MSwzMDMxNiwzMDMyMCwzMDMyMiwzMDMyNiwzMDMyOCwzMDMzMiwzMDMzNiwzMDMzOSwzMDM0NCwzMDM0NywzMDM1MCwzMDM1OCwzMDM1NSwzMDM2MSwzMDM2MiwzMDM4NCwzMDM4OCwzMDM5MiwzMDM5MywzMDM5NCwzMDQwMiwzMDQxMywzMDQyMiwzMDQxOCwzMDQzMCwzMDQzMywzMDQzNywz''@;'; + put 'put ''MDQzOSwzMDQ0MiwzNDM1MSwzMDQ1OSwzMDQ3MiwzMDQ3MSwzMDQ2OCwzMDUwNSwzMDUwMCwzMDQ5NCwzMDUwMSwzMDUwMiwzMDQ5MSwzMDUxOSwzMDUyMCwzMDUzNSwzMDU1NCwzMDU2OCwzMDU3MSwzMDU1NSwzMDU2NSwzMDU5MSwzMDU5MCwzMDU4NSwzMDYwNiwzMDYwMywzMDYwOSwzMDYy''@;'; + put 'put ''NCwzMDYyMiwzMDY0MCwzMDY0NiwzMDY0OSwzMDY1NSwzMDY1MiwzMDY1MywzMDY1MSwzMDY2MywzMDY2OSwzMDY3OSwzMDY4MiwzMDY4NCwzMDY5MSwzMDcwMiwzMDcxNiwzMDczMiwzMDczOCwzMTAxNCwzMDc1MiwzMTAxOCwzMDc4OSwzMDg2MiwzMDgzNiwzMDg1NCwzMDg0NCwzMDg3NCwz''@;'; + put 'put ''MDg2MCwzMDg4MywzMDkwMSwzMDg5MCwzMDg5NSwzMDkyOSwzMDkxOCwzMDkyMywzMDkzMiwzMDkxMCwzMDkwOCwzMDkxNywzMDkyMiwzMDk1NiwzMDk1MSwzMDkzOCwzMDk3MywzMDk2NCwzMDk4MywzMDk5NCwzMDk5MywzMTAwMSwzMTAyMCwzMTAxOSwzMTA0MCwzMTA3MiwzMTA2MywzMTA3''@;'; + put 'put ''MSwzMTA2NiwzMTA2MSwzMTA1OSwzMTA5OCwzMTEwMywzMTExNCwzMTEzMywzMTE0Myw0MDc3OSwzMTE0NiwzMTE1MCwzMTE1NSwzMTE2MSwzMTE2MiwzMTE3NywzMTE4OSwzMTIwNywzMTIxMiwzMTIwMSwzMTIwMywzMTI0MCwzMTI0NSwzMTI1NiwzMTI1NywzMTI2NCwzMTI2MywzMTEwNCwz''@;'; + put 'put ''MTI4MSwzMTI5MSwzMTI5NCwzMTI4NywzMTI5OSwzMTMxOSwzMTMwNSwzMTMyOSwzMTMzMCwzMTMzNyw0MDg2MSwzMTM0NCwzMTM1MywzMTM1NywzMTM2OCwzMTM4MywzMTM4MSwzMTM4NCwzMTM4MiwzMTQwMSwzMTQzMiwzMTQwOCwzMTQxNCwzMTQyOSwzMTQyOCwzMTQyMywzNjk5NSwzMTQz''@;'; + put 'put ''MSwzMTQzNCwzMTQzNywzMTQzOSwzMTQ0NSwzMTQ0MywzMTQ0OSwzMTQ1MCwzMTQ1MywzMTQ1NywzMTQ1OCwzMTQ2MiwzMTQ2OSwzMTQ3MiwzMTQ5MCwzMTUwMywzMTQ5OCwzMTQ5NCwzMTUzOSwzMTUxMiwzMTUxMywzMTUxOCwzMTU0MSwzMTUyOCwzMTU0MiwzMTU2OCwzMTYxMCwzMTQ5Miwz''@;'; + put 'put ''MTU2NSwzMTQ5OSwzMTU2NCwzMTU1NywzMTYwNSwzMTU4OSwzMTYwNCwzMTU5MSwzMTYwMCwzMTYwMSwzMTU5NiwzMTU5OCwzMTY0NSwzMTY0MCwzMTY0NywzMTYyOSwzMTY0NCwzMTY0MiwzMTYyNywzMTYzNCwzMTYzMSwzMTU4MSwzMTY0MSwzMTY5MSwzMTY4MSwzMTY5MiwzMTY5NSwzMTY2''@;'; + put 'put ''OCwzMTY4NiwzMTcwOSwzMTcyMSwzMTc2MSwzMTc2NCwzMTcxOCwzMTcxNywzMTg0MCwzMTc0NCwzMTc1MSwzMTc2MywzMTczMSwzMTczNSwzMTc2NywzMTc1NywzMTczNCwzMTc3OSwzMTc4MywzMTc4NiwzMTc3NSwzMTc5OSwzMTc4NywzMTgwNSwzMTgyMCwzMTgxMSwzMTgyOCwzMTgyMywz''@;'; + put 'put ''MTgwOCwzMTgyNCwzMTgzMiwzMTgzOSwzMTg0NCwzMTgzMCwzMTg0NSwzMTg1MiwzMTg2MSwzMTg3NSwzMTg4OCwzMTkwOCwzMTkxNywzMTkwNiwzMTkxNSwzMTkwNSwzMTkxMiwzMTkyMywzMTkyMiwzMTkyMSwzMTkxOCwzMTkyOSwzMTkzMywzMTkzNiwzMTk0MSwzMTkzOCwzMTk2MCwzMTk1''@;'; + put 'put ''NCwzMTk2NCwzMTk3MCwzOTczOSwzMTk4MywzMTk4NiwzMTk4OCwzMTk5MCwzMTk5NCwzMjAwNiwzMjAwMiwzMjAyOCwzMjAyMSwzMjAxMCwzMjA2OSwzMjA3NSwzMjA0NiwzMjA1MCwzMjA2MywzMjA1MywzMjA3MCwzMjExNSwzMjA4NiwzMjA3OCwzMjExNCwzMjEwNCwzMjExMCwzMjA3OSwz''@;'; + put 'put ''MjA5OSwzMjE0NywzMjEzNywzMjA5MSwzMjE0MywzMjEyNSwzMjE1NSwzMjE4NiwzMjE3NCwzMjE2MywzMjE4MSwzMjE5OSwzMjE4OSwzMjE3MSwzMjMxNywzMjE2MiwzMjE3NSwzMjIyMCwzMjE4NCwzMjE1OSwzMjE3NiwzMjIxNiwzMjIyMSwzMjIyOCwzMjIyMiwzMjI1MSwzMjI0MiwzMjIy''@;'; + put 'put ''NSwzMjI2MSwzMjI2NiwzMjI5MSwzMjI4OSwzMjI3NCwzMjMwNSwzMjI4NywzMjI2NSwzMjI2NywzMjI5MCwzMjMyNiwzMjM1OCwzMjMxNSwzMjMwOSwzMjMxMywzMjMyMywzMjMxMSwzMjMwNiwzMjMxNCwzMjM1OSwzMjM0OSwzMjM0MiwzMjM1MCwzMjM0NSwzMjM0NiwzMjM3NywzMjM2Miwz''@;'; + put 'put ''MjM2MSwzMjM4MCwzMjM3OSwzMjM4NywzMjIxMywzMjM4MSwzNjc4MiwzMjM4MywzMjM5MiwzMjM5MywzMjM5NiwzMjQwMiwzMjQwMCwzMjQwMywzMjQwNCwzMjQwNiwzMjM5OCwzMjQxMSwzMjQxMiwzMjU2OCwzMjU3MCwzMjU4MSwzMjU4OCwzMjU4OSwzMjU5MCwzMjU5MiwzMjU5MywzMjU5''@;'; + put 'put ''NywzMjU5NiwzMjYwMCwzMjYwNywzMjYwOCwzMjYxNiwzMjYxNywzMjYxNSwzMjYzMiwzMjY0MiwzMjY0NiwzMjY0MywzMjY0OCwzMjY0NywzMjY1MiwzMjY2MCwzMjY3MCwzMjY2OSwzMjY2NiwzMjY3NSwzMjY4NywzMjY5MCwzMjY5NywzMjY4NiwzMjY5NCwzMjY5NiwzNTY5NywzMjcwOSwz''@;'; + put 'put ''MjcxMCwzMjcxNCwzMjcyNSwzMjcyNCwzMjczNywzMjc0MiwzMjc0NSwzMjc1NSwzMjc2MSwzOTEzMiwzMjc3NCwzMjc3MiwzMjc3OSwzMjc4NiwzMjc5MiwzMjc5MywzMjc5NiwzMjgwMSwzMjgwOCwzMjgzMSwzMjgyNywzMjg0MiwzMjgzOCwzMjg1MCwzMjg1NiwzMjg1OCwzMjg2MywzMjg2''@;'; + put 'put ''NiwzMjg3MiwzMjg4MywzMjg4MiwzMjg4MCwzMjg4NiwzMjg4OSwzMjg5MywzMjg5NSwzMjkwMCwzMjkwMiwzMjkwMSwzMjkyMywzMjkxNSwzMjkyMiwzMjk0MSwyMDg4MCwzMjk0MCwzMjk4NywzMjk5NywzMjk4NSwzMjk4OSwzMjk2NCwzMjk4NiwzMjk4MiwzMzAzMywzMzAwNywzMzAwOSwz''@;'; + put 'put ''MzA1MSwzMzA2NSwzMzA1OSwzMzA3MSwzMzA5OSwzODUzOSwzMzA5NCwzMzA4NiwzMzEwNywzMzEwNSwzMzAyMCwzMzEzNywzMzEzNCwzMzEyNSwzMzEyNiwzMzE0MCwzMzE1NSwzMzE2MCwzMzE2MiwzMzE1MiwzMzE1NCwzMzE4NCwzMzE3MywzMzE4OCwzMzE4NywzMzExOSwzMzE3MSwzMzE5''@;'; + put 'put ''MywzMzIwMCwzMzIwNSwzMzIxNCwzMzIwOCwzMzIxMywzMzIxNiwzMzIxOCwzMzIxMCwzMzIyNSwzMzIyOSwzMzIzMywzMzI0MSwzMzI0MCwzMzIyNCwzMzI0MiwzMzI0NywzMzI0OCwzMzI1NSwzMzI3NCwzMzI3NSwzMzI3OCwzMzI4MSwzMzI4MiwzMzI4NSwzMzI4NywzMzI5MCwzMzI5Mywz''@;'; + put 'put ''MzI5NiwzMzMwMiwzMzMyMSwzMzMyMywzMzMzNiwzMzMzMSwzMzM0NCwzMzM2OSwzMzM2OCwzMzM3MywzMzM3MCwzMzM3NSwzMzM4MCwzMzM3OCwzMzM4NCwzMzM4NiwzMzM4NywzMzMyNiwzMzM5MywzMzM5OSwzMzQwMCwzMzQwNiwzMzQyMSwzMzQyNiwzMzQ1MSwzMzQzOSwzMzQ2NywzMzQ1''@;'; + put 'put ''MiwzMzUwNSwzMzUwNywzMzUwMywzMzQ5MCwzMzUyNCwzMzUyMywzMzUzMCwzMzY4MywzMzUzOSwzMzUzMSwzMzUyOSwzMzUwMiwzMzU0MiwzMzUwMCwzMzU0NSwzMzQ5NywzMzU4OSwzMzU4OCwzMzU1OCwzMzU4NiwzMzU4NSwzMzYwMCwzMzU5MywzMzYxNiwzMzYwNSwzMzU4MywzMzU3OSwz''@;'; + put 'put ''MzU1OSwzMzU2MCwzMzY2OSwzMzY5MCwzMzcwNiwzMzY5NSwzMzY5OCwzMzY4NiwzMzU3MSwzMzY3OCwzMzY3MSwzMzY3NCwzMzY2MCwzMzcxNywzMzY1MSwzMzY1MywzMzY5NiwzMzY3MywzMzcwNCwzMzc4MCwzMzgxMSwzMzc3MSwzMzc0MiwzMzc4OSwzMzc5NSwzMzc1MiwzMzgwMywzMzcy''@;'; + put 'put ''OSwzMzc4MywzMzc5OSwzMzc2MCwzMzc3OCwzMzgwNSwzMzgyNiwzMzgyNCwzMzcyNSwzMzg0OCwzNDA1NCwzMzc4NywzMzkwMSwzMzgzNCwzMzg1MiwzNDEzOCwzMzkyNCwzMzkxMSwzMzg5OSwzMzk2NSwzMzkwMiwzMzkyMiwzMzg5NywzMzg2MiwzMzgzNiwzMzkwMywzMzkxMywzMzg0NSwz''@;'; + put 'put ''Mzk5NCwzMzg5MCwzMzk3NywzMzk4MywzMzk1MSwzNDAwOSwzMzk5NywzMzk3OSwzNDAxMCwzNGUzLDMzOTg1LDMzOTkwLDM0MDA2LDMzOTUzLDM0MDgxLDM0MDQ3LDM0MDM2LDM0MDcxLDM0MDcyLDM0MDkyLDM0MDc5LDM0MDY5LDM0MDY4LDM0MDQ0LDM0MTEyLDM0MTQ3LDM0MTM2LDM0MTIw''@;'; + put 'put ''LDM0MTEzLDM0MzA2LDM0MTIzLDM0MTMzLDM0MTc2LDM0MjEyLDM0MTg0LDM0MTkzLDM0MTg2LDM0MjE2LDM0MTU3LDM0MTk2LDM0MjAzLDM0MjgyLDM0MTgzLDM0MjA0LDM0MTY3LDM0MTc0LDM0MTkyLDM0MjQ5LDM0MjM0LDM0MjU1LDM0MjMzLDM0MjU2LDM0MjYxLDM0MjY5LDM0Mjc3LDM0''@;'; + put 'put ''MjY4LDM0Mjk3LDM0MzE0LDM0MzIzLDM0MzE1LDM0MzAyLDM0Mjk4LDM0MzEwLDM0MzM4LDM0MzMwLDM0MzUyLDM0MzY3LDM0MzgxLDIwMDUzLDM0Mzg4LDM0Mzk5LDM0NDA3LDM0NDE3LDM0NDUxLDM0NDY3LDM0NDczLDM0NDc0LDM0NDQzLDM0NDQ0LDM0NDg2LDM0NDc5LDM0NTAwLDM0NTAy''@;'; + put 'put ''LDM0NDgwLDM0NTA1LDM0ODUxLDM0NDc1LDM0NTE2LDM0NTI2LDM0NTM3LDM0NTQwLDM0NTI3LDM0NTIzLDM0NTQzLDM0NTc4LDM0NTY2LDM0NTY4LDM0NTYwLDM0NTYzLDM0NTU1LDM0NTc3LDM0NTY5LDM0NTczLDM0NTUzLDM0NTcwLDM0NjEyLDM0NjIzLDM0NjE1LDM0NjE5LDM0NTk3LDM0''@;'; + put 'put ''NjAxLDM0NTg2LDM0NjU2LDM0NjU1LDM0NjgwLDM0NjM2LDM0NjM4LDM0Njc2LDM0NjQ3LDM0NjY0LDM0NjcwLDM0NjQ5LDM0NjQzLDM0NjU5LDM0NjY2LDM0ODIxLDM0NzIyLDM0NzE5LDM0NjkwLDM0NzM1LDM0NzYzLDM0NzQ5LDM0NzUyLDM0NzY4LDM4NjE0LDM0NzMxLDM0NzU2LDM0NzM5''@;'; + put 'put ''LDM0NzU5LDM0NzU4LDM0NzQ3LDM0Nzk5LDM0ODAyLDM0Nzg0LDM0ODMxLDM0ODI5LDM0ODE0LDM0ODA2LDM0ODA3LDM0ODMwLDM0NzcwLDM0ODMzLDM0ODM4LDM0ODM3LDM0ODUwLDM0ODQ5LDM0ODY1LDM0ODcwLDM0ODczLDM0ODU1LDM0ODc1LDM0ODg0LDM0ODgyLDM0ODk4LDM0OTA1LDM0''@;'; + put 'put ''OTEwLDM0OTE0LDM0OTIzLDM0OTQ1LDM0OTQyLDM0OTc0LDM0OTMzLDM0OTQxLDM0OTk3LDM0OTMwLDM0OTQ2LDM0OTY3LDM0OTYyLDM0OTkwLDM0OTY5LDM0OTc4LDM0OTU3LDM0OTgwLDM0OTkyLDM1MDA3LDM0OTkzLDM1MDExLDM1MDEyLDM1MDI4LDM1MDMyLDM1MDMzLDM1MDM3LDM1MDY1''@;'; + put 'put ''LDM1MDc0LDM1MDY4LDM1MDYwLDM1MDQ4LDM1MDU4LDM1MDc2LDM1MDg0LDM1MDgyLDM1MDkxLDM1MTM5LDM1MTAyLDM1MTA5LDM1MTE0LDM1MTE1LDM1MTM3LDM1MTQwLDM1MTMxLDM1MTI2LDM1MTI4LDM1MTQ4LDM1MTAxLDM1MTY4LDM1MTY2LDM1MTc0LDM1MTcyLDM1MTgxLDM1MTc4LDM1''@;'; + put 'put ''MTgzLDM1MTg4LDM1MTkxLDM1MTk4LDM1MjAzLDM1MjA4LDM1MjEwLDM1MjE5LDM1MjI0LDM1MjMzLDM1MjQxLDM1MjM4LDM1MjQ0LDM1MjQ3LDM1MjUwLDM1MjU4LDM1MjYxLDM1MjYzLDM1MjY0LDM1MjkwLDM1MjkyLDM1MjkzLDM1MzAzLDM1MzE2LDM1MzIwLDM1MzMxLDM1MzUwLDM1MzQ0''@;'; + put 'put ''LDM1MzQwLDM1MzU1LDM1MzU3LDM1MzY1LDM1MzgyLDM1MzkzLDM1NDE5LDM1NDEwLDM1Mzk4LDM1NDAwLDM1NDUyLDM1NDM3LDM1NDM2LDM1NDI2LDM1NDYxLDM1NDU4LDM1NDYwLDM1NDk2LDM1NDg5LDM1NDczLDM1NDkzLDM1NDk0LDM1NDgyLDM1NDkxLDM1NTI0LDM1NTMzLDM1NTIyLDM1''@;'; + put 'put ''NTQ2LDM1NTYzLDM1NTcxLDM1NTU5LDM1NTU2LDM1NTY5LDM1NjA0LDM1NTUyLDM1NTU0LDM1NTc1LDM1NTUwLDM1NTQ3LDM1NTk2LDM1NTkxLDM1NjEwLDM1NTUzLDM1NjA2LDM1NjAwLDM1NjA3LDM1NjE2LDM1NjM1LDM4ODI3LDM1NjIyLDM1NjI3LDM1NjQ2LDM1NjI0LDM1NjQ5LDM1NjYw''@;'; + put 'put ''LDM1NjYzLDM1NjYyLDM1NjU3LDM1NjcwLDM1Njc1LDM1Njc0LDM1NjkxLDM1Njc5LDM1NjkyLDM1Njk1LDM1NzAwLDM1NzA5LDM1NzEyLDM1NzI0LDM1NzI2LDM1NzMwLDM1NzMxLDM1NzM0LDM1NzM3LDM1NzM4LDM1ODk4LDM1OTA1LDM1OTAzLDM1OTEyLDM1OTE2LDM1OTE4LDM1OTIwLDM1''@;'; + put 'put ''OTI1LDM1OTM4LDM1OTQ4LDM1OTYwLDM1OTYyLDM1OTcwLDM1OTc3LDM1OTczLDM1OTc4LDM1OTgxLDM1OTgyLDM1OTg4LDM1OTY0LDM1OTkyLDI1MTE3LDM2MDEzLDM2MDEwLDM2MDI5LDM2MDE4LDM2MDE5LDM2MDE0LDM2MDIyLDM2MDQwLDM2MDMzLDM2MDY4LDM2MDY3LDM2MDU4LDM2MDkz''@;'; + put 'put ''LDM2MDkwLDM2MDkxLDM2MTAwLDM2MTAxLDM2MTA2LDM2MTAzLDM2MTExLDM2MTA5LDM2MTEyLDQwNzgyLDM2MTE1LDM2MDQ1LDM2MTE2LDM2MTE4LDM2MTk5LDM2MjA1LDM2MjA5LDM2MjExLDM2MjI1LDM2MjQ5LDM2MjkwLDM2Mjg2LDM2MjgyLDM2MzAzLDM2MzE0LDM2MzEwLDM2MzAwLDM2''@;'; + put 'put ''MzE1LDM2Mjk5LDM2MzMwLDM2MzMxLDM2MzE5LDM2MzIzLDM2MzQ4LDM2MzYwLDM2MzYxLDM2MzUxLDM2MzgxLDM2MzgyLDM2MzY4LDM2MzgzLDM2NDE4LDM2NDA1LDM2NDAwLDM2NDA0LDM2NDI2LDM2NDIzLDM2NDI1LDM2NDI4LDM2NDMyLDM2NDI0LDM2NDQxLDM2NDUyLDM2NDQ4LDM2Mzk0''@;'; + put 'put ''LDM2NDUxLDM2NDM3LDM2NDcwLDM2NDY2LDM2NDc2LDM2NDgxLDM2NDg3LDM2NDg1LDM2NDg0LDM2NDkxLDM2NDkwLDM2NDk5LDM2NDk3LDM2NTAwLDM2NTA1LDM2NTIyLDM2NTEzLDM2NTI0LDM2NTI4LDM2NTUwLDM2NTI5LDM2NTQyLDM2NTQ5LDM2NTUyLDM2NTU1LDM2NTcxLDM2NTc5LDM2''@;'; + put 'put ''NjA0LDM2NjAzLDM2NTg3LDM2NjA2LDM2NjE4LDM2NjEzLDM2NjI5LDM2NjI2LDM2NjMzLDM2NjI3LDM2NjM2LDM2NjM5LDM2NjM1LDM2NjIwLDM2NjQ2LDM2NjU5LDM2NjY3LDM2NjY1LDM2Njc3LDM2Njc0LDM2NjcwLDM2Njg0LDM2NjgxLDM2Njc4LDM2Njg2LDM2Njk1LDM2NzAwLDM2NzA2''@;'; + put 'put ''LDM2NzA3LDM2NzA4LDM2NzY0LDM2NzY3LDM2NzcxLDM2NzgxLDM2NzgzLDM2NzkxLDM2ODI2LDM2ODM3LDM2ODM0LDM2ODQyLDM2ODQ3LDM2OTk5LDM2ODUyLDM2ODY5LDM2ODU3LDM2ODU4LDM2ODgxLDM2ODg1LDM2ODk3LDM2ODc3LDM2ODk0LDM2ODg2LDM2ODc1LDM2OTAzLDM2OTE4LDM2''@;'; + put 'put ''OTE3LDM2OTIxLDM2ODU2LDM2OTQzLDM2OTQ0LDM2OTQ1LDM2OTQ2LDM2ODc4LDM2OTM3LDM2OTI2LDM2OTUwLDM2OTUyLDM2OTU4LDM2OTY4LDM2OTc1LDM2OTgyLDM4NTY4LDM2OTc4LDM2OTk0LDM2OTg5LDM2OTkzLDM2OTkyLDM3MDAyLDM3MDAxLDM3MDA3LDM3MDMyLDM3MDM5LDM3MDQx''@;'; + put 'put ''LDM3MDQ1LDM3MDkwLDM3MDkyLDI1MTYwLDM3MDgzLDM3MTIyLDM3MTM4LDM3MTQ1LDM3MTcwLDM3MTY4LDM3MTk0LDM3MjA2LDM3MjA4LDM3MjE5LDM3MjIxLDM3MjI1LDM3MjM1LDM3MjM0LDM3MjU5LDM3MjU3LDM3MjUwLDM3MjgyLDM3MjkxLDM3Mjk1LDM3MjkwLDM3MzAxLDM3MzAwLDM3''@;'; + put 'put ''MzA2LDM3MzEyLDM3MzEzLDM3MzIxLDM3MzIzLDM3MzI4LDM3MzM0LDM3MzQzLDM3MzQ1LDM3MzM5LDM3MzcyLDM3MzY1LDM3MzY2LDM3NDA2LDM3Mzc1LDM3Mzk2LDM3NDIwLDM3Mzk3LDM3MzkzLDM3NDcwLDM3NDYzLDM3NDQ1LDM3NDQ5LDM3NDc2LDM3NDQ4LDM3NTI1LDM3NDM5LDM3NDUx''@;'; + put 'put ''LDM3NDU2LDM3NTMyLDM3NTI2LDM3NTIzLDM3NTMxLDM3NDY2LDM3NTgzLDM3NTYxLDM3NTU5LDM3NjA5LDM3NjQ3LDM3NjI2LDM3NzAwLDM3Njc4LDM3NjU3LDM3NjY2LDM3NjU4LDM3NjY3LDM3NjkwLDM3Njg1LDM3NjkxLDM3NzI0LDM3NzI4LDM3NzU2LDM3NzQyLDM3NzE4LDM3ODA4LDM3''@;'; + put 'put ''ODA0LDM3ODA1LDM3NzgwLDM3ODE3LDM3ODQ2LDM3ODQ3LDM3ODY0LDM3ODYxLDM3ODQ4LDM3ODI3LDM3ODUzLDM3ODQwLDM3ODMyLDM3ODYwLDM3OTE0LDM3OTA4LDM3OTA3LDM3ODkxLDM3ODk1LDM3OTA0LDM3OTQyLDM3OTMxLDM3OTQxLDM3OTIxLDM3OTQ2LDM3OTUzLDM3OTcwLDM3OTU2''@;'; + put 'put ''LDM3OTc5LDM3OTg0LDM3OTg2LDM3OTgyLDM3OTk0LDM3NDE3LDM4ZTMsMzgwMDUsMzgwMDcsMzgwMTMsMzc5NzgsMzgwMTIsMzgwMTQsMzgwMTcsMzgwMTUsMzgyNzQsMzgyNzksMzgyODIsMzgyOTIsMzgyOTQsMzgyOTYsMzgyOTcsMzgzMDQsMzgzMTIsMzgzMTEsMzgzMTcsMzgzMzIsMzgz''@;'; + put 'put ''MzEsMzgzMjksMzgzMzQsMzgzNDYsMjg2NjIsMzgzMzksMzgzNDksMzgzNDgsMzgzNTcsMzgzNTYsMzgzNTgsMzgzNjQsMzgzNjksMzgzNzMsMzgzNzAsMzg0MzMsMzg0NDAsMzg0NDYsMzg0NDcsMzg0NjYsMzg0NzYsMzg0NzksMzg0NzUsMzg1MTksMzg0OTIsMzg0OTQsMzg0OTMsMzg0OTUs''@;'; + put 'put ''Mzg1MDIsMzg1MTQsMzg1MDgsMzg1NDEsMzg1NTIsMzg1NDksMzg1NTEsMzg1NzAsMzg1NjcsMzg1NzcsMzg1NzgsMzg1NzYsMzg1ODAsMzg1ODIsMzg1ODQsMzg1ODUsMzg2MDYsMzg2MDMsMzg2MDEsMzg2MDUsMzUxNDksMzg2MjAsMzg2NjksMzg2MTMsMzg2NDksMzg2NjAsMzg2NjIsMzg2''@;'; + put 'put ''NjQsMzg2NzUsMzg2NzAsMzg2NzMsMzg2NzEsMzg2NzgsMzg2ODEsMzg2OTIsMzg2OTgsMzg3MDQsMzg3MTMsMzg3MTcsMzg3MTgsMzg3MjQsMzg3MjYsMzg3MjgsMzg3MjIsMzg3MjksMzg3NDgsMzg3NTIsMzg3NTYsMzg3NTgsMzg3NjAsMjEyMDIsMzg3NjMsMzg3NjksMzg3NzcsMzg3ODks''@;'; + put 'put ''Mzg3ODAsMzg3ODUsMzg3NzgsMzg3OTAsMzg3OTUsMzg3OTksMzg4MDAsMzg4MTIsMzg4MjQsMzg4MjIsMzg4MTksMzg4MzUsMzg4MzYsMzg4NTEsMzg4NTQsMzg4NTYsMzg4NTksMzg4NzYsMzg4OTMsNDA3ODMsMzg4OTgsMzE0NTUsMzg5MDIsMzg5MDEsMzg5MjcsMzg5MjQsMzg5NjgsMzg5''@;'; + put 'put ''NDgsMzg5NDUsMzg5NjcsMzg5NzMsMzg5ODIsMzg5OTEsMzg5ODcsMzkwMTksMzkwMjMsMzkwMjQsMzkwMjUsMzkwMjgsMzkwMjcsMzkwODIsMzkwODcsMzkwODksMzkwOTQsMzkxMDgsMzkxMDcsMzkxMTAsMzkxNDUsMzkxNDcsMzkxNzEsMzkxNzcsMzkxODYsMzkxODgsMzkxOTIsMzkyMDEs''@;'; + put 'put ''MzkxOTcsMzkxOTgsMzkyMDQsMzkyMDAsMzkyMTIsMzkyMTQsMzkyMjksMzkyMzAsMzkyMzQsMzkyNDEsMzkyMzcsMzkyNDgsMzkyNDMsMzkyNDksMzkyNTAsMzkyNDQsMzkyNTMsMzkzMTksMzkzMjAsMzkzMzMsMzkzNDEsMzkzNDIsMzkzNTYsMzkzOTEsMzkzODcsMzkzODksMzkzODQsMzkz''@;'; + put 'put ''NzcsMzk0MDUsMzk0MDYsMzk0MDksMzk0MTAsMzk0MTksMzk0MTYsMzk0MjUsMzk0MzksMzk0MjksMzkzOTQsMzk0NDksMzk0NjcsMzk0NzksMzk0OTMsMzk0OTAsMzk0ODgsMzk0OTEsMzk0ODYsMzk1MDksMzk1MDEsMzk1MTUsMzk1MTEsMzk1MTksMzk1MjIsMzk1MjUsMzk1MjQsMzk1Mjks''@;'; + put 'put ''Mzk1MzEsMzk1MzAsMzk1OTcsMzk2MDAsMzk2MTIsMzk2MTYsMzk2MzEsMzk2MzMsMzk2MzUsMzk2MzYsMzk2NDYsMzk2NDcsMzk2NTAsMzk2NTEsMzk2NTQsMzk2NjMsMzk2NTksMzk2NjIsMzk2NjgsMzk2NjUsMzk2NzEsMzk2NzUsMzk2ODYsMzk3MDQsMzk3MDYsMzk3MTEsMzk3MTQsMzk3''@;'; + put 'put ''MTUsMzk3MTcsMzk3MTksMzk3MjAsMzk3MjEsMzk3MjIsMzk3MjYsMzk3MjcsMzk3MzAsMzk3NDgsMzk3NDcsMzk3NTksMzk3NTcsMzk3NTgsMzk3NjEsMzk3NjgsMzk3OTYsMzk4MjcsMzk4MTEsMzk4MjUsMzk4MzAsMzk4MzEsMzk4MzksMzk4NDAsMzk4NDgsMzk4NjAsMzk4NzIsMzk4ODIs''@;'; + put 'put ''Mzk4NjUsMzk4NzgsMzk4ODcsMzk4ODksMzk4OTAsMzk5MDcsMzk5MDYsMzk5MDgsMzk4OTIsMzk5MDUsMzk5OTQsMzk5MjIsMzk5MjEsMzk5MjAsMzk5NTcsMzk5NTYsMzk5NDUsMzk5NTUsMzk5NDgsMzk5NDIsMzk5NDQsMzk5NTQsMzk5NDYsMzk5NDAsMzk5ODIsMzk5NjMsMzk5NzMsMzk5''@;'; + put 'put ''NzIsMzk5NjksMzk5ODQsNDAwMDcsMzk5ODYsNDAwMDYsMzk5OTgsNDAwMjYsNDAwMzIsNDAwMzksNDAwNTQsNDAwNTYsNDAxNjcsNDAxNzIsNDAxNzYsNDAyMDEsNDAyMDAsNDAxNzEsNDAxOTUsNDAxOTgsNDAyMzQsNDAyMzAsNDAzNjcsNDAyMjcsNDAyMjMsNDAyNjAsNDAyMTMsNDAyMTAs''@;'; + put 'put ''NDAyNTcsNDAyNTUsNDAyNTQsNDAyNjIsNDAyNjQsNDAyODUsNDAyODYsNDAyOTIsNDAyNzMsNDAyNzIsNDAyODEsNDAzMDYsNDAzMjksNDAzMjcsNDAzNjMsNDAzMDMsNDAzMTQsNDAzNDYsNDAzNTYsNDAzNjEsNDAzNzAsNDAzODgsNDAzODUsNDAzNzksNDAzNzYsNDAzNzgsNDAzOTAsNDAz''@;'; + put 'put ''OTksNDAzODYsNDA0MDksNDA0MDMsNDA0NDAsNDA0MjIsNDA0MjksNDA0MzEsNDA0NDUsNDA0NzQsNDA0NzUsNDA0NzgsNDA1NjUsNDA1NjksNDA1NzMsNDA1NzcsNDA1ODQsNDA1ODcsNDA1ODgsNDA1OTQsNDA1OTcsNDA1OTMsNDA2MDUsNDA2MTMsNDA2MTcsNDA2MzIsNDA2MTgsNDA2MjEs''@;'; + put 'put ''Mzg3NTMsNDA2NTIsNDA2NTQsNDA2NTUsNDA2NTYsNDA2NjAsNDA2NjgsNDA2NzAsNDA2NjksNDA2NzIsNDA2NzcsNDA2ODAsNDA2ODcsNDA2OTIsNDA2OTQsNDA2OTUsNDA2OTcsNDA2OTksNDA3MDAsNDA3MDEsNDA3MTEsNDA3MTIsMzAzOTEsNDA3MjUsNDA3MzcsNDA3NDgsNDA3NjYsNDA3''@;'; + put 'put ''NzgsNDA3ODYsNDA3ODgsNDA4MDMsNDA3OTksNDA4MDAsNDA4MDEsNDA4MDYsNDA4MDcsNDA4MTIsNDA4MTAsNDA4MjMsNDA4MTgsNDA4MjIsNDA4NTMsNDA4NjAsNDA4NjQsMjI1NzUsMjcwNzksMzY5NTMsMjk3OTYsMjA5NTYsMjkwODEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMyMzk0LDM1MTAwLDM3NzA0LDM3''@;'; + put 'put ''NTEyLDM0MDEyLDIwNDI1LDI4ODU5LDI2MTYxLDI2ODI0LDM3NjI1LDI2MzYzLDI0Mzg5LDIwMDA4LDIwMTkzLDIwMjIwLDIwMjI0LDIwMjI3LDIwMjgxLDIwMzEwLDIwMzcwLDIwMzYyLDIwMzc4LDIwMzcyLDIwNDI5LDIwNTQ0LDIwNTE0LDIwNDc5LDIwNTEwLDIwNTUwLDIwNTkyLDIwNTQ2''@;'; + put 'put ''LDIwNjI4LDIwNzI0LDIwNjk2LDIwODEwLDIwODM2LDIwODkzLDIwOTI2LDIwOTcyLDIxMDEzLDIxMTQ4LDIxMTU4LDIxMTg0LDIxMjExLDIxMjQ4LDIxMjU1LDIxMjg0LDIxMzYyLDIxMzk1LDIxNDI2LDIxNDY5LDY0MDE0LDIxNjYwLDIxNjQyLDIxNjczLDIxNzU5LDIxODk0LDIyMzYxLDIy''@;'; + put 'put ''MzczLDIyNDQ0LDIyNDcyLDIyNDcxLDY0MDE1LDY0MDE2LDIyNjg2LDIyNzA2LDIyNzk1LDIyODY3LDIyODc1LDIyODc3LDIyODgzLDIyOTQ4LDIyOTcwLDIzMzgyLDIzNDg4LDI5OTk5LDIzNTEyLDIzNTMyLDIzNTgyLDIzNzE4LDIzNzM4LDIzNzk3LDIzODQ3LDIzODkxLDY0MDE3LDIzODc0''@;'; + put 'put ''LDIzOTE3LDIzOTkyLDIzOTkzLDI0MDE2LDI0MzUzLDI0MzcyLDI0NDIzLDI0NTAzLDI0NTQyLDI0NjY5LDI0NzA5LDI0NzE0LDI0Nzk4LDI0Nzg5LDI0ODY0LDI0ODE4LDI0ODQ5LDI0ODg3LDI0ODgwLDI0OTg0LDI1MTA3LDI1MjU0LDI1NTg5LDI1Njk2LDI1NzU3LDI1ODA2LDI1OTM0LDI2''@;'; + put 'put ''MTEyLDI2MTMzLDI2MTcxLDI2MTIxLDI2MTU4LDI2MTQyLDI2MTQ4LDI2MjEzLDI2MTk5LDI2MjAxLDY0MDE4LDI2MjI3LDI2MjY1LDI2MjcyLDI2MjkwLDI2MzAzLDI2MzYyLDI2MzgyLDYzNzg1LDI2NDcwLDI2NTU1LDI2NzA2LDI2NTYwLDI2NjI1LDI2NjkyLDI2ODMxLDY0MDE5LDI2OTg0''@;'; + put 'put ''LDY0MDIwLDI3MDMyLDI3MTA2LDI3MTg0LDI3MjQzLDI3MjA2LDI3MjUxLDI3MjYyLDI3MzYyLDI3MzY0LDI3NjA2LDI3NzExLDI3NzQwLDI3NzgyLDI3NzU5LDI3ODY2LDI3OTA4LDI4MDM5LDI4MDE1LDI4MDU0LDI4MDc2LDI4MTExLDI4MTUyLDI4MTQ2LDI4MTU2LDI4MjE3LDI4MjUyLDI4''@;'; + put 'put ''MTk5LDI4MjIwLDI4MzUxLDI4NTUyLDI4NTk3LDI4NjYxLDI4Njc3LDI4Njc5LDI4NzEyLDI4ODA1LDI4ODQzLDI4OTQzLDI4OTMyLDI5MDIwLDI4OTk4LDI4OTk5LDY0MDIxLDI5MTIxLDI5MTgyLDI5MzYxLDI5Mzc0LDI5NDc2LDY0MDIyLDI5NTU5LDI5NjI5LDI5NjQxLDI5NjU0LDI5NjY3''@;'; + put 'put ''LDI5NjUwLDI5NzAzLDI5Njg1LDI5NzM0LDI5NzM4LDI5NzM3LDI5NzQyLDI5Nzk0LDI5ODMzLDI5ODU1LDI5OTUzLDMwMDYzLDMwMzM4LDMwMzY0LDMwMzY2LDMwMzYzLDMwMzc0LDY0MDIzLDMwNTM0LDIxMTY3LDMwNzUzLDMwNzk4LDMwODIwLDMwODQyLDMxMDI0LDY0MDI0LDY0MDI1LDY0''@;'; + put 'put ''MDI2LDMxMTI0LDY0MDI3LDMxMTMxLDMxNDQxLDMxNDYzLDY0MDI4LDMxNDY3LDMxNjQ2LDY0MDI5LDMyMDcyLDMyMDkyLDMyMTgzLDMyMTYwLDMyMjE0LDMyMzM4LDMyNTgzLDMyNjczLDY0MDMwLDMzNTM3LDMzNjM0LDMzNjYzLDMzNzM1LDMzNzgyLDMzODY0LDMzOTcyLDM0MTMxLDM0MTM3''@;'; + put 'put ''LDM0MTU1LDY0MDMxLDM0MjI0LDY0MDMyLDY0MDMzLDM0ODIzLDM1MDYxLDM1MzQ2LDM1MzgzLDM1NDQ5LDM1NDk1LDM1NTE4LDM1NTUxLDY0MDM0LDM1NTc0LDM1NjY3LDM1NzExLDM2MDgwLDM2MDg0LDM2MTE0LDM2MjE0LDY0MDM1LDM2NTU5LDY0MDM2LDY0MDM3LDM2OTY3LDM3MDg2LDY0''@;'; + put 'put ''MDM4LDM3MTQxLDM3MTU5LDM3MzM4LDM3MzM1LDM3MzQyLDM3MzU3LDM3MzU4LDM3MzQ4LDM3MzQ5LDM3MzgyLDM3MzkyLDM3Mzg2LDM3NDM0LDM3NDQwLDM3NDM2LDM3NDU0LDM3NDY1LDM3NDU3LDM3NDMzLDM3NDc5LDM3NTQzLDM3NDk1LDM3NDk2LDM3NjA3LDM3NTkxLDM3NTkzLDM3NTg0''@;'; + put 'put ''LDY0MDM5LDM3NTg5LDM3NjAwLDM3NTg3LDM3NjY5LDM3NjY1LDM3NjI3LDY0MDQwLDM3NjYyLDM3NjMxLDM3NjYxLDM3NjM0LDM3NzQ0LDM3NzE5LDM3Nzk2LDM3ODMwLDM3ODU0LDM3ODgwLDM3OTM3LDM3OTU3LDM3OTYwLDM4MjkwLDYzOTY0LDY0MDQxLDM4NTU3LDM4NTc1LDM4NzA3LDM4''@;'; + put 'put ''NzE1LDM4NzIzLDM4NzMzLDM4NzM1LDM4NzM3LDM4NzQxLDM4OTk5LDM5MDEzLDY0MDQyLDY0MDQzLDM5MjA3LDY0MDQ0LDM5MzI2LDM5NTAyLDM5NjQxLDM5NjQ0LDM5Nzk3LDM5Nzk0LDM5ODIzLDM5ODU3LDM5ODY3LDM5OTM2LDQwMzA0LDQwMjk5LDY0MDQ1LDQwNDczLDQwNjU3LG51bGws''@;'; + put 'put ''bnVsbCw4NTYwLDg1NjEsODU2Miw4NTYzLDg1NjQsODU2NSw4NTY2LDg1NjcsODU2OCw4NTY5LDY1NTA2LDY1NTA4LDY1Mjg3LDY1MjgyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsODU2MCw4NTYxLDg1NjIsODU2Myw4NTY0LDg1NjUsODU2Niw4NTY3LDg1NjgsODU2OSw4NTQ0LDg1NDUsODU0Niw4NTQ3LDg1NDgsODU0OSw4NTUwLDg1NTEsODU1Miw4NTUzLDY1NTA2LDY1NTA4LDY1Mjg3LDY1MjgyLDEyODQ5LDg0NzAsODQ4MSw4''@;'; + put 'put ''NzU3LDMyMzk0LDM1MTAwLDM3NzA0LDM3NTEyLDM0MDEyLDIwNDI1LDI4ODU5LDI2MTYxLDI2ODI0LDM3NjI1LDI2MzYzLDI0Mzg5LDIwMDA4LDIwMTkzLDIwMjIwLDIwMjI0LDIwMjI3LDIwMjgxLDIwMzEwLDIwMzcwLDIwMzYyLDIwMzc4LDIwMzcyLDIwNDI5LDIwNTQ0LDIwNTE0LDIwNDc5''@;'; + put 'put ''LDIwNTEwLDIwNTUwLDIwNTkyLDIwNTQ2LDIwNjI4LDIwNzI0LDIwNjk2LDIwODEwLDIwODM2LDIwODkzLDIwOTI2LDIwOTcyLDIxMDEzLDIxMTQ4LDIxMTU4LDIxMTg0LDIxMjExLDIxMjQ4LDIxMjU1LDIxMjg0LDIxMzYyLDIxMzk1LDIxNDI2LDIxNDY5LDY0MDE0LDIxNjYwLDIxNjQyLDIx''@;'; + put 'put ''NjczLDIxNzU5LDIxODk0LDIyMzYxLDIyMzczLDIyNDQ0LDIyNDcyLDIyNDcxLDY0MDE1LDY0MDE2LDIyNjg2LDIyNzA2LDIyNzk1LDIyODY3LDIyODc1LDIyODc3LDIyODgzLDIyOTQ4LDIyOTcwLDIzMzgyLDIzNDg4LDI5OTk5LDIzNTEyLDIzNTMyLDIzNTgyLDIzNzE4LDIzNzM4LDIzNzk3''@;'; + put 'put ''LDIzODQ3LDIzODkxLDY0MDE3LDIzODc0LDIzOTE3LDIzOTkyLDIzOTkzLDI0MDE2LDI0MzUzLDI0MzcyLDI0NDIzLDI0NTAzLDI0NTQyLDI0NjY5LDI0NzA5LDI0NzE0LDI0Nzk4LDI0Nzg5LDI0ODY0LDI0ODE4LDI0ODQ5LDI0ODg3LDI0ODgwLDI0OTg0LDI1MTA3LDI1MjU0LDI1NTg5LDI1''@;'; + put 'put ''Njk2LDI1NzU3LDI1ODA2LDI1OTM0LDI2MTEyLDI2MTMzLDI2MTcxLDI2MTIxLDI2MTU4LDI2MTQyLDI2MTQ4LDI2MjEzLDI2MTk5LDI2MjAxLDY0MDE4LDI2MjI3LDI2MjY1LDI2MjcyLDI2MjkwLDI2MzAzLDI2MzYyLDI2MzgyLDYzNzg1LDI2NDcwLDI2NTU1LDI2NzA2LDI2NTYwLDI2NjI1''@;'; + put 'put ''LDI2NjkyLDI2ODMxLDY0MDE5LDI2OTg0LDY0MDIwLDI3MDMyLDI3MTA2LDI3MTg0LDI3MjQzLDI3MjA2LDI3MjUxLDI3MjYyLDI3MzYyLDI3MzY0LDI3NjA2LDI3NzExLDI3NzQwLDI3NzgyLDI3NzU5LDI3ODY2LDI3OTA4LDI4MDM5LDI4MDE1LDI4MDU0LDI4MDc2LDI4MTExLDI4MTUyLDI4''@;'; + put 'put ''MTQ2LDI4MTU2LDI4MjE3LDI4MjUyLDI4MTk5LDI4MjIwLDI4MzUxLDI4NTUyLDI4NTk3LDI4NjYxLDI4Njc3LDI4Njc5LDI4NzEyLDI4ODA1LDI4ODQzLDI4OTQzLDI4OTMyLDI5MDIwLDI4OTk4LDI4OTk5LDY0MDIxLDI5MTIxLDI5MTgyLDI5MzYxLDI5Mzc0LDI5NDc2LDY0MDIyLDI5NTU5''@;'; + put 'put ''LDI5NjI5LDI5NjQxLDI5NjU0LDI5NjY3LDI5NjUwLDI5NzAzLDI5Njg1LDI5NzM0LDI5NzM4LDI5NzM3LDI5NzQyLDI5Nzk0LDI5ODMzLDI5ODU1LDI5OTUzLDMwMDYzLDMwMzM4LDMwMzY0LDMwMzY2LDMwMzYzLDMwMzc0LDY0MDIzLDMwNTM0LDIxMTY3LDMwNzUzLDMwNzk4LDMwODIwLDMw''@;'; + put 'put ''ODQyLDMxMDI0LDY0MDI0LDY0MDI1LDY0MDI2LDMxMTI0LDY0MDI3LDMxMTMxLDMxNDQxLDMxNDYzLDY0MDI4LDMxNDY3LDMxNjQ2LDY0MDI5LDMyMDcyLDMyMDkyLDMyMTgzLDMyMTYwLDMyMjE0LDMyMzM4LDMyNTgzLDMyNjczLDY0MDMwLDMzNTM3LDMzNjM0LDMzNjYzLDMzNzM1LDMzNzgy''@;'; + put 'put ''LDMzODY0LDMzOTcyLDM0MTMxLDM0MTM3LDM0MTU1LDY0MDMxLDM0MjI0LDY0MDMyLDY0MDMzLDM0ODIzLDM1MDYxLDM1MzQ2LDM1MzgzLDM1NDQ5LDM1NDk1LDM1NTE4LDM1NTUxLDY0MDM0LDM1NTc0LDM1NjY3LDM1NzExLDM2MDgwLDM2MDg0LDM2MTE0LDM2MjE0LDY0MDM1LDM2NTU5LDY0''@;'; + put 'put ''MDM2LDY0MDM3LDM2OTY3LDM3MDg2LDY0MDM4LDM3MTQxLDM3MTU5LDM3MzM4LDM3MzM1LDM3MzQyLDM3MzU3LDM3MzU4LDM3MzQ4LDM3MzQ5LDM3MzgyLDM3MzkyLDM3Mzg2LDM3NDM0LDM3NDQwLDM3NDM2LDM3NDU0LDM3NDY1LDM3NDU3LDM3NDMzLDM3NDc5LDM3NTQzLDM3NDk1LDM3NDk2''@;'; + put 'put ''LDM3NjA3LDM3NTkxLDM3NTkzLDM3NTg0LDY0MDM5LDM3NTg5LDM3NjAwLDM3NTg3LDM3NjY5LDM3NjY1LDM3NjI3LDY0MDQwLDM3NjYyLDM3NjMxLDM3NjYxLDM3NjM0LDM3NzQ0LDM3NzE5LDM3Nzk2LDM3ODMwLDM3ODU0LDM3ODgwLDM3OTM3LDM3OTU3LDM3OTYwLDM4MjkwLDYzOTY0LDY0''@;'; + put 'put ''MDQxLDM4NTU3LDM4NTc1LDM4NzA3LDM4NzE1LDM4NzIzLDM4NzMzLDM4NzM1LDM4NzM3LDM4NzQxLDM4OTk5LDM5MDEzLDY0MDQyLDY0MDQzLDM5MjA3LDY0MDQ0LDM5MzI2LDM5NTAyLDM5NjQxLDM5NjQ0LDM5Nzk3LDM5Nzk0LDM5ODIzLDM5ODU3LDM5ODY3LDM5OTM2LDQwMzA0LDQwMjk5''@;'; + put 'put ''LDY0MDQ1LDQwNDczLDQwNjU3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbF0samlzMDIxMjpbbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNzI4LDcxMSwxODQsNzI5LDczMywxNzUsNzMxLDczMCw2NTM3''@;'; + put 'put ''NCw5MDAsOTAxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxNjEsMTY2LDE5MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTg2LDE3MCwxNjksMTc0LDg0ODIsMTY0LDg0NzAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDkwMiw5MDQsOTA1LDkwNiw5MzgsbnVsbCw5MDgsbnVsbCw5MTAsOTM5LG51bGwsOTExLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsOTQwLDk0MSw5NDIsOTQzLDk3MCw5MTIsOTcyLDk2Miw5NzMsOTcxLDk0NCw5NzQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDEwMjYsMTAyNywxMDI4LDEwMjksMTAzMCwxMDMxLDEwMzIsMTAzMywxMDM0LDEwMzUsMTAzNiwxMDM4LDEwMzksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDExMDYsMTEwNywxMTA4LDExMDksMTExMCwxMTEx''@;'; + put 'put ''LDExMTIsMTExMywxMTE0LDExMTUsMTExNiwxMTE4LDExMTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCwxOTgsMjcyLG51bGwsMjk0LG51bGwsMzA2LG51bGwsMzIxLDMxOSxudWxsLDMzMCwyMTYsMzM4LG51bGwsMzU4LDIyMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIzMCwy''@;'; + put 'put ''NzMsMjQwLDI5NSwzMDUsMzA3LDMxMiwzMjIsMzIwLDMyOSwzMzEsMjQ4LDMzOSwyMjMsMzU5LDI1NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; + put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE5MywxOTIsMTk2LDE5NCwyNTgsNDYxLDI1NiwyNjAsMTk3LDE5NSwy''@;'; + put 'put ''NjIsMjY0LDI2OCwxOTksMjY2LDI3MCwyMDEsMjAwLDIwMywyMDIsMjgyLDI3OCwyNzQsMjgwLG51bGwsMjg0LDI4NiwyOTAsMjg4LDI5MiwyMDUsMjA0LDIwNywyMDYsNDYzLDMwNCwyOTgsMzAyLDI5NiwzMDgsMzEwLDMxMywzMTcsMzE1LDMyMywzMjcsMzI1LDIwOSwyMTEsMjEwLDIxNCwy''@;'; + put 'put ''MTIsNDY1LDMzNiwzMzIsMjEzLDM0MCwzNDQsMzQyLDM0NiwzNDgsMzUyLDM1MCwzNTYsMzU0LDIxOCwyMTcsMjIwLDIxOSwzNjQsNDY3LDM2OCwzNjIsMzcwLDM2NiwzNjAsNDcxLDQ3NSw0NzMsNDY5LDM3MiwyMjEsMzc2LDM3NCwzNzcsMzgxLDM3OSxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLDIyNSwyMjQsMjI4LDIyNiwyNTksNDYyLDI1NywyNjEsMjI5LDIyNywyNjMsMjY1LDI2OSwyMzEsMjY3LDI3MSwyMzMsMjMyLDIzNSwyMzQsMjgzLDI3OSwyNzUsMjgxLDUwMSwyODUsMjg3LG51bGwsMjg5LDI5MywyMzcsMjM2LDIzOSwyMzgsNDY0LG51bGwsMjk5LDMw''@;'; + put 'put ''MywyOTcsMzA5LDMxMSwzMTQsMzE4LDMxNiwzMjQsMzI4LDMyNiwyNDEsMjQzLDI0MiwyNDYsMjQ0LDQ2NiwzMzcsMzMzLDI0NSwzNDEsMzQ1LDM0MywzNDcsMzQ5LDM1MywzNTEsMzU3LDM1NSwyNTAsMjQ5LDI1MiwyNTEsMzY1LDQ2OCwzNjksMzYzLDM3MSwzNjcsMzYxLDQ3Miw0NzYsNDc0''@;'; + put 'put ''LDQ3MCwzNzMsMjUzLDI1NSwzNzUsMzc4LDM4MiwzODAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE5OTcwLDE5OTcyLDE5OTczLDE5OTgwLDE5OTg2LDE5''@;'; + put 'put ''OTk5LDIwMDAzLDIwMDA0LDIwMDA4LDIwMDExLDIwMDE0LDIwMDE1LDIwMDE2LDIwMDIxLDIwMDMyLDIwMDMzLDIwMDM2LDIwMDM5LDIwMDQ5LDIwMDU4LDIwMDYwLDIwMDY3LDIwMDcyLDIwMDczLDIwMDg0LDIwMDg1LDIwMDg5LDIwMDk1LDIwMTA5LDIwMTE4LDIwMTE5LDIwMTI1LDIwMTQz''@;'; + put 'put ''LDIwMTUzLDIwMTYzLDIwMTc2LDIwMTg2LDIwMTg3LDIwMTkyLDIwMTkzLDIwMTk0LDIwMjAwLDIwMjA3LDIwMjA5LDIwMjExLDIwMjEzLDIwMjIxLDIwMjIyLDIwMjIzLDIwMjI0LDIwMjI2LDIwMjI3LDIwMjMyLDIwMjM1LDIwMjM2LDIwMjQyLDIwMjQ1LDIwMjQ2LDIwMjQ3LDIwMjQ5LDIw''@;'; + put 'put ''MjcwLDIwMjczLDIwMzIwLDIwMjc1LDIwMjc3LDIwMjc5LDIwMjgxLDIwMjgzLDIwMjg2LDIwMjg4LDIwMjkwLDIwMjk2LDIwMjk3LDIwMjk5LDIwMzAwLDIwMzA2LDIwMzA4LDIwMzEwLDIwMzEyLDIwMzE5LDIwMzIzLDIwMzMwLDIwMzMyLDIwMzM0LDIwMzM3LDIwMzQzLDIwMzQ0LDIwMzQ1''@;'; + put 'put ''LDIwMzQ2LDIwMzQ5LDIwMzUwLDIwMzUzLDIwMzU0LDIwMzU2LDIwMzU3LDIwMzYxLDIwMzYyLDIwMzY0LDIwMzY2LDIwMzY4LDIwMzcwLDIwMzcxLDIwMzcyLDIwMzc1LDIwMzc3LDIwMzc4LDIwMzgyLDIwMzgzLDIwNDAyLDIwNDA3LDIwNDA5LDIwNDExLDIwNDEyLDIwNDEzLDIwNDE0LDIw''@;'; + put 'put ''NDE2LDIwNDE3LDIwNDIxLDIwNDIyLDIwNDI0LDIwNDI1LDIwNDI3LDIwNDI4LDIwNDI5LDIwNDMxLDIwNDM0LDIwNDQ0LDIwNDQ4LDIwNDUwLDIwNDY0LDIwNDY2LDIwNDc2LDIwNDc3LDIwNDc5LDIwNDgwLDIwNDgxLDIwNDg0LDIwNDg3LDIwNDkwLDIwNDkyLDIwNDk0LDIwNDk2LDIwNDk5''@;'; + put 'put ''LDIwNTAzLDIwNTA0LDIwNTA3LDIwNTA4LDIwNTA5LDIwNTEwLDIwNTE0LDIwNTE5LDIwNTI2LDIwNTI4LDIwNTMwLDIwNTMxLDIwNTMzLDIwNTQ0LDIwNTQ1LDIwNTQ2LDIwNTQ5LDIwNTUwLDIwNTU0LDIwNTU2LDIwNTU4LDIwNTYxLDIwNTYyLDIwNTYzLDIwNTY3LDIwNTY5LDIwNTc1LDIw''@;'; + put 'put ''NTc2LDIwNTc4LDIwNTc5LDIwNTgyLDIwNTgzLDIwNTg2LDIwNTg5LDIwNTkyLDIwNTkzLDIwNTM5LDIwNjA5LDIwNjExLDIwNjEyLDIwNjE0LDIwNjE4LDIwNjIyLDIwNjIzLDIwNjI0LDIwNjI2LDIwNjI3LDIwNjI4LDIwNjMwLDIwNjM1LDIwNjM2LDIwNjM4LDIwNjM5LDIwNjQwLDIwNjQx''@;'; + put 'put ''LDIwNjQyLDIwNjUwLDIwNjU1LDIwNjU2LDIwNjY1LDIwNjY2LDIwNjY5LDIwNjcyLDIwNjc1LDIwNjc2LDIwNjc5LDIwNjg0LDIwNjg2LDIwNjg4LDIwNjkxLDIwNjkyLDIwNjk2LDIwNzAwLDIwNzAxLDIwNzAzLDIwNzA2LDIwNzA4LDIwNzEwLDIwNzEyLDIwNzEzLDIwNzE5LDIwNzIxLDIw''@;'; + put 'put ''NzI2LDIwNzMwLDIwNzM0LDIwNzM5LDIwNzQyLDIwNzQzLDIwNzQ0LDIwNzQ3LDIwNzQ4LDIwNzQ5LDIwNzUwLDIwNzIyLDIwNzUyLDIwNzU5LDIwNzYxLDIwNzYzLDIwNzY0LDIwNzY1LDIwNzY2LDIwNzcxLDIwNzc1LDIwNzc2LDIwNzgwLDIwNzgxLDIwNzgzLDIwNzg1LDIwNzg3LDIwNzg4''@;'; + put 'put ''LDIwNzg5LDIwNzkyLDIwNzkzLDIwODAyLDIwODEwLDIwODE1LDIwODE5LDIwODIxLDIwODIzLDIwODI0LDIwODMxLDIwODM2LDIwODM4LDIwODYyLDIwODY3LDIwODY4LDIwODc1LDIwODc4LDIwODg4LDIwODkzLDIwODk3LDIwODk5LDIwOTA5LDIwOTIwLDIwOTIyLDIwOTI0LDIwOTI2LDIw''@;'; + put 'put ''OTI3LDIwOTMwLDIwOTM2LDIwOTQzLDIwOTQ1LDIwOTQ2LDIwOTQ3LDIwOTQ5LDIwOTUyLDIwOTU4LDIwOTYyLDIwOTY1LDIwOTc0LDIwOTc4LDIwOTc5LDIwOTgwLDIwOTgzLDIwOTkzLDIwOTk0LDIwOTk3LDIxMDEwLDIxMDExLDIxMDEzLDIxMDE0LDIxMDE2LDIxMDI2LDIxMDMyLDIxMDQx''@;'; + put 'put ''LDIxMDQyLDIxMDQ1LDIxMDUyLDIxMDYxLDIxMDY1LDIxMDc3LDIxMDc5LDIxMDgwLDIxMDgyLDIxMDg0LDIxMDg3LDIxMDg4LDIxMDg5LDIxMDk0LDIxMTAyLDIxMTExLDIxMTEyLDIxMTEzLDIxMTIwLDIxMTIyLDIxMTI1LDIxMTMwLDIxMTMyLDIxMTM5LDIxMTQxLDIxMTQyLDIxMTQzLDIx''@;'; + put 'put ''MTQ0LDIxMTQ2LDIxMTQ4LDIxMTU2LDIxMTU3LDIxMTU4LDIxMTU5LDIxMTY3LDIxMTY4LDIxMTc0LDIxMTc1LDIxMTc2LDIxMTc4LDIxMTc5LDIxMTgxLDIxMTg0LDIxMTg4LDIxMTkwLDIxMTkyLDIxMTk2LDIxMTk5LDIxMjAxLDIxMjA0LDIxMjA2LDIxMjExLDIxMjEyLDIxMjE3LDIxMjIx''@;'; + put 'put ''LDIxMjI0LDIxMjI1LDIxMjI2LDIxMjI4LDIxMjMyLDIxMjMzLDIxMjM2LDIxMjM4LDIxMjM5LDIxMjQ4LDIxMjUxLDIxMjU4LDIxMjU5LDIxMjYwLDIxMjY1LDIxMjY3LDIxMjcyLDIxMjc1LDIxMjc2LDIxMjc4LDIxMjc5LDIxMjg1LDIxMjg3LDIxMjg4LDIxMjg5LDIxMjkxLDIxMjkyLDIx''@;'; + put 'put ''MjkzLDIxMjk2LDIxMjk4LDIxMzAxLDIxMzA4LDIxMzA5LDIxMzEwLDIxMzE0LDIxMzI0LDIxMzIzLDIxMzM3LDIxMzM5LDIxMzQ1LDIxMzQ3LDIxMzQ5LDIxMzU2LDIxMzU3LDIxMzYyLDIxMzY5LDIxMzc0LDIxMzc5LDIxMzgzLDIxMzg0LDIxMzkwLDIxMzk1LDIxMzk2LDIxNDAxLDIxNDA1''@;'; + put 'put ''LDIxNDA5LDIxNDEyLDIxNDE4LDIxNDE5LDIxNDIzLDIxNDI2LDIxNDI4LDIxNDI5LDIxNDMxLDIxNDMyLDIxNDM0LDIxNDM3LDIxNDQwLDIxNDQ1LDIxNDU1LDIxNDU4LDIxNDU5LDIxNDYxLDIxNDY2LDIxNDY5LDIxNDcwLDIxNDcyLDIxNDc4LDIxNDc5LDIxNDkzLDIxNTA2LDIxNTIzLDIx''@;'; + put 'put ''NTMwLDIxNTM3LDIxNTQzLDIxNTQ0LDIxNTQ2LDIxNTUxLDIxNTUzLDIxNTU2LDIxNTU3LDIxNTcxLDIxNTcyLDIxNTc1LDIxNTgxLDIxNTgzLDIxNTk4LDIxNjAyLDIxNjA0LDIxNjA2LDIxNjA3LDIxNjA5LDIxNjExLDIxNjEzLDIxNjE0LDIxNjIwLDIxNjMxLDIxNjMzLDIxNjM1LDIxNjM3''@;'; + put 'put ''LDIxNjQwLDIxNjQxLDIxNjQ1LDIxNjQ5LDIxNjUzLDIxNjU0LDIxNjYwLDIxNjYzLDIxNjY1LDIxNjcwLDIxNjcxLDIxNjczLDIxNjc0LDIxNjc3LDIxNjc4LDIxNjgxLDIxNjg3LDIxNjg5LDIxNjkwLDIxNjkxLDIxNjk1LDIxNzAyLDIxNzA2LDIxNzA5LDIxNzEwLDIxNzI4LDIxNzM4LDIx''@;'; + put 'put ''NzQwLDIxNzQzLDIxNzUwLDIxNzU2LDIxNzU4LDIxNzU5LDIxNzYwLDIxNzYxLDIxNzY1LDIxNzY4LDIxNzY5LDIxNzcyLDIxNzczLDIxNzc0LDIxNzgxLDIxODAyLDIxODAzLDIxODEwLDIxODEzLDIxODE0LDIxODE5LDIxODIwLDIxODIxLDIxODI1LDIxODMxLDIxODMzLDIxODM0LDIxODM3''@;'; + put 'put ''LDIxODQwLDIxODQxLDIxODQ4LDIxODUwLDIxODUxLDIxODU0LDIxODU2LDIxODU3LDIxODYwLDIxODYyLDIxODg3LDIxODg5LDIxODkwLDIxODk0LDIxODk2LDIxOTAyLDIxOTAzLDIxOTA1LDIxOTA2LDIxOTA3LDIxOTA4LDIxOTExLDIxOTIzLDIxOTI0LDIxOTMzLDIxOTM4LDIxOTUxLDIx''@;'; + put 'put ''OTUzLDIxOTU1LDIxOTU4LDIxOTYxLDIxOTYzLDIxOTY0LDIxOTY2LDIxOTY5LDIxOTcwLDIxOTcxLDIxOTc1LDIxOTc2LDIxOTc5LDIxOTgyLDIxOTg2LDIxOTkzLDIyMDA2LDIyMDE1LDIyMDIxLDIyMDI0LDIyMDI2LDIyMDI5LDIyMDMwLDIyMDMxLDIyMDMyLDIyMDMzLDIyMDM0LDIyMDQx''@;'; + put 'put ''LDIyMDYwLDIyMDY0LDIyMDY3LDIyMDY5LDIyMDcxLDIyMDczLDIyMDc1LDIyMDc2LDIyMDc3LDIyMDc5LDIyMDgwLDIyMDgxLDIyMDgzLDIyMDg0LDIyMDg2LDIyMDg5LDIyMDkxLDIyMDkzLDIyMDk1LDIyMTAwLDIyMTEwLDIyMTEyLDIyMTEzLDIyMTE0LDIyMTE1LDIyMTE4LDIyMTIxLDIy''@;'; + put 'put ''MTI1LDIyMTI3LDIyMTI5LDIyMTMwLDIyMTMzLDIyMTQ4LDIyMTQ5LDIyMTUyLDIyMTU1LDIyMTU2LDIyMTY1LDIyMTY5LDIyMTcwLDIyMTczLDIyMTc0LDIyMTc1LDIyMTgyLDIyMTgzLDIyMTg0LDIyMTg1LDIyMTg3LDIyMTg4LDIyMTg5LDIyMTkzLDIyMTk1LDIyMTk5LDIyMjA2LDIyMjEz''@;'; + put 'put ''LDIyMjE3LDIyMjE4LDIyMjE5LDIyMjIzLDIyMjI0LDIyMjIwLDIyMjIxLDIyMjMzLDIyMjM2LDIyMjM3LDIyMjM5LDIyMjQxLDIyMjQ0LDIyMjQ1LDIyMjQ2LDIyMjQ3LDIyMjQ4LDIyMjU3LDIyMjUxLDIyMjUzLDIyMjYyLDIyMjYzLDIyMjczLDIyMjc0LDIyMjc5LDIyMjgyLDIyMjg0LDIy''@;'; + put 'put ''Mjg5LDIyMjkzLDIyMjk4LDIyMjk5LDIyMzAxLDIyMzA0LDIyMzA2LDIyMzA3LDIyMzA4LDIyMzA5LDIyMzEzLDIyMzE0LDIyMzE2LDIyMzE4LDIyMzE5LDIyMzIzLDIyMzI0LDIyMzMzLDIyMzM0LDIyMzM1LDIyMzQxLDIyMzQyLDIyMzQ4LDIyMzQ5LDIyMzU0LDIyMzcwLDIyMzczLDIyMzc1''@;'; + put 'put ''LDIyMzc2LDIyMzc5LDIyMzgxLDIyMzgyLDIyMzgzLDIyMzg0LDIyMzg1LDIyMzg3LDIyMzg4LDIyMzg5LDIyMzkxLDIyMzkzLDIyMzk0LDIyMzk1LDIyMzk2LDIyMzk4LDIyNDAxLDIyNDAzLDIyNDEyLDIyNDIwLDIyNDIzLDIyNDI1LDIyNDI2LDIyNDI4LDIyNDI5LDIyNDMwLDIyNDMxLDIy''@;'; + put 'put ''NDMzLDIyNDIxLDIyNDM5LDIyNDQwLDIyNDQxLDIyNDQ0LDIyNDU2LDIyNDYxLDIyNDcxLDIyNDcyLDIyNDc2LDIyNDc5LDIyNDg1LDIyNDkzLDIyNDk0LDIyNTAwLDIyNTAyLDIyNTAzLDIyNTA1LDIyNTA5LDIyNTEyLDIyNTE3LDIyNTE4LDIyNTIwLDIyNTI1LDIyNTI2LDIyNTI3LDIyNTMx''@;'; + put 'put ''LDIyNTMyLDIyNTM2LDIyNTM3LDIyNDk3LDIyNTQwLDIyNTQxLDIyNTU1LDIyNTU4LDIyNTU5LDIyNTYwLDIyNTY2LDIyNTY3LDIyNTczLDIyNTc4LDIyNTg1LDIyNTkxLDIyNjAxLDIyNjA0LDIyNjA1LDIyNjA3LDIyNjA4LDIyNjEzLDIyNjIzLDIyNjI1LDIyNjI4LDIyNjMxLDIyNjMyLDIy''@;'; + put 'put ''NjQ4LDIyNjUyLDIyNjU1LDIyNjU2LDIyNjU3LDIyNjYzLDIyNjY0LDIyNjY1LDIyNjY2LDIyNjY4LDIyNjY5LDIyNjcxLDIyNjcyLDIyNjc2LDIyNjc4LDIyNjg1LDIyNjg4LDIyNjg5LDIyNjkwLDIyNjk0LDIyNjk3LDIyNzA1LDIyNzA2LDIyNzI0LDIyNzE2LDIyNzIyLDIyNzI4LDIyNzMz''@;'; + put 'put ''LDIyNzM0LDIyNzM2LDIyNzM4LDIyNzQwLDIyNzQyLDIyNzQ2LDIyNzQ5LDIyNzUzLDIyNzU0LDIyNzYxLDIyNzcxLDIyNzg5LDIyNzkwLDIyNzk1LDIyNzk2LDIyODAyLDIyODAzLDIyODA0LDM0MzY5LDIyODEzLDIyODE3LDIyODE5LDIyODIwLDIyODI0LDIyODMxLDIyODMyLDIyODM1LDIy''@;'; + put 'put ''ODM3LDIyODM4LDIyODQ3LDIyODUxLDIyODU0LDIyODY2LDIyODY3LDIyODczLDIyODc1LDIyODc3LDIyODc4LDIyODc5LDIyODgxLDIyODgzLDIyODkxLDIyODkzLDIyODk1LDIyODk4LDIyOTAxLDIyOTAyLDIyOTA1LDIyOTA3LDIyOTA4LDIyOTIzLDIyOTI0LDIyOTI2LDIyOTMwLDIyOTMz''@;'; + put 'put ''LDIyOTM1LDIyOTQzLDIyOTQ4LDIyOTUxLDIyOTU3LDIyOTU4LDIyOTU5LDIyOTYwLDIyOTYzLDIyOTY3LDIyOTcwLDIyOTcyLDIyOTc3LDIyOTc5LDIyOTgwLDIyOTg0LDIyOTg2LDIyOTg5LDIyOTk0LDIzMDA1LDIzMDA2LDIzMDA3LDIzMDExLDIzMDEyLDIzMDE1LDIzMDIyLDIzMDIzLDIz''@;'; + put 'put ''MDI1LDIzMDI2LDIzMDI4LDIzMDMxLDIzMDQwLDIzMDQ0LDIzMDUyLDIzMDUzLDIzMDU0LDIzMDU4LDIzMDU5LDIzMDcwLDIzMDc1LDIzMDc2LDIzMDc5LDIzMDgwLDIzMDgyLDIzMDg1LDIzMDg4LDIzMTA4LDIzMTA5LDIzMTExLDIzMTEyLDIzMTE2LDIzMTIwLDIzMTI1LDIzMTM0LDIzMTM5''@;'; + put 'put ''LDIzMTQxLDIzMTQzLDIzMTQ5LDIzMTU5LDIzMTYyLDIzMTYzLDIzMTY2LDIzMTc5LDIzMTg0LDIzMTg3LDIzMTkwLDIzMTkzLDIzMTk2LDIzMTk4LDIzMTk5LDIzMjAwLDIzMjAyLDIzMjA3LDIzMjEyLDIzMjE3LDIzMjE4LDIzMjE5LDIzMjIxLDIzMjI0LDIzMjI2LDIzMjI3LDIzMjMxLDIz''@;'; + put 'put ''MjM2LDIzMjM4LDIzMjQwLDIzMjQ3LDIzMjU4LDIzMjYwLDIzMjY0LDIzMjY5LDIzMjc0LDIzMjc4LDIzMjg1LDIzMjg2LDIzMjkzLDIzMjk2LDIzMjk3LDIzMzA0LDIzMzE5LDIzMzQ4LDIzMzIxLDIzMzIzLDIzMzI1LDIzMzI5LDIzMzMzLDIzMzQxLDIzMzUyLDIzMzYxLDIzMzcxLDIzMzcy''@;'; + put 'put ''LDIzMzc4LDIzMzgyLDIzMzkwLDIzNDAwLDIzNDA2LDIzNDA3LDIzNDIwLDIzNDIxLDIzNDIyLDIzNDIzLDIzNDI1LDIzNDI4LDIzNDMwLDIzNDM0LDIzNDM4LDIzNDQwLDIzNDQxLDIzNDQzLDIzNDQ0LDIzNDQ2LDIzNDY0LDIzNDY1LDIzNDY4LDIzNDY5LDIzNDcxLDIzNDczLDIzNDc0LDIz''@;'; + put 'put ''NDc5LDIzNDgyLDIzNDg0LDIzNDg4LDIzNDg5LDIzNTAxLDIzNTAzLDIzNTEwLDIzNTExLDIzNTEyLDIzNTEzLDIzNTE0LDIzNTIwLDIzNTM1LDIzNTM3LDIzNTQwLDIzNTQ5LDIzNTY0LDIzNTc1LDIzNTgyLDIzNTgzLDIzNTg3LDIzNTkwLDIzNTkzLDIzNTk1LDIzNTk2LDIzNTk4LDIzNjAw''@;'; + put 'put ''LDIzNjAyLDIzNjA1LDIzNjA2LDIzNjQxLDIzNjQyLDIzNjQ0LDIzNjUwLDIzNjUxLDIzNjU1LDIzNjU2LDIzNjU3LDIzNjYxLDIzNjY0LDIzNjY4LDIzNjY5LDIzNjc0LDIzNjc1LDIzNjc2LDIzNjc3LDIzNjg3LDIzNjg4LDIzNjkwLDIzNjk1LDIzNjk4LDIzNzA5LDIzNzExLDIzNzEyLDIz''@;'; + put 'put ''NzE0LDIzNzE1LDIzNzE4LDIzNzIyLDIzNzMwLDIzNzMyLDIzNzMzLDIzNzM4LDIzNzUzLDIzNzU1LDIzNzYyLDIzNzczLDIzNzY3LDIzNzkwLDIzNzkzLDIzNzk0LDIzNzk2LDIzODA5LDIzODE0LDIzODIxLDIzODI2LDIzODUxLDIzODQzLDIzODQ0LDIzODQ2LDIzODQ3LDIzODU3LDIzODYw''@;'; + put 'put ''LDIzODY1LDIzODY5LDIzODcxLDIzODc0LDIzODc1LDIzODc4LDIzODgwLDIzODkzLDIzODg5LDIzODk3LDIzODgyLDIzOTAzLDIzOTA0LDIzOTA1LDIzOTA2LDIzOTA4LDIzOTE0LDIzOTE3LDIzOTIwLDIzOTI5LDIzOTMwLDIzOTM0LDIzOTM1LDIzOTM3LDIzOTM5LDIzOTQ0LDIzOTQ2LDIz''@;'; + put 'put ''OTU0LDIzOTU1LDIzOTU2LDIzOTU3LDIzOTYxLDIzOTYzLDIzOTY3LDIzOTY4LDIzOTc1LDIzOTc5LDIzOTg0LDIzOTg4LDIzOTkyLDIzOTkzLDI0MDAzLDI0MDA3LDI0MDExLDI0MDE2LDI0MDE0LDI0MDI0LDI0MDI1LDI0MDMyLDI0MDM2LDI0MDQxLDI0MDU2LDI0MDU3LDI0MDY0LDI0MDcx''@;'; + put 'put ''LDI0MDc3LDI0MDgyLDI0MDg0LDI0MDg1LDI0MDg4LDI0MDk1LDI0MDk2LDI0MTEwLDI0MTA0LDI0MTE0LDI0MTE3LDI0MTI2LDI0MTM5LDI0MTQ0LDI0MTM3LDI0MTQ1LDI0MTUwLDI0MTUyLDI0MTU1LDI0MTU2LDI0MTU4LDI0MTY4LDI0MTcwLDI0MTcxLDI0MTcyLDI0MTczLDI0MTc0LDI0''@;'; + put 'put ''MTc2LDI0MTkyLDI0MjAzLDI0MjA2LDI0MjI2LDI0MjI4LDI0MjI5LDI0MjMyLDI0MjM0LDI0MjM2LDI0MjQxLDI0MjQzLDI0MjUzLDI0MjU0LDI0MjU1LDI0MjYyLDI0MjY4LDI0MjY3LDI0MjcwLDI0MjczLDI0Mjc0LDI0Mjc2LDI0Mjc3LDI0Mjg0LDI0Mjg2LDI0MjkzLDI0Mjk5LDI0MzIy''@;'; + put 'put ''LDI0MzI2LDI0MzI3LDI0MzI4LDI0MzM0LDI0MzQ1LDI0MzQ4LDI0MzQ5LDI0MzUzLDI0MzU0LDI0MzU1LDI0MzU2LDI0MzYwLDI0MzYzLDI0MzY0LDI0MzY2LDI0MzY4LDI0MzcyLDI0Mzc0LDI0Mzc5LDI0MzgxLDI0MzgzLDI0Mzg0LDI0Mzg4LDI0Mzg5LDI0MzkxLDI0Mzk3LDI0NDAwLDI0''@;'; + put 'put ''NDA0LDI0NDA4LDI0NDExLDI0NDE2LDI0NDE5LDI0NDIwLDI0NDIzLDI0NDMxLDI0NDM0LDI0NDM2LDI0NDM3LDI0NDQwLDI0NDQyLDI0NDQ1LDI0NDQ2LDI0NDU3LDI0NDYxLDI0NDYzLDI0NDcwLDI0NDc2LDI0NDc3LDI0NDgyLDI0NDg3LDI0NDkxLDI0NDg0LDI0NDkyLDI0NDk1LDI0NDk2''@;'; + put 'put ''LDI0NDk3LDI0NTA0LDI0NTE2LDI0NTE5LDI0NTIwLDI0NTIxLDI0NTIzLDI0NTI4LDI0NTI5LDI0NTMwLDI0NTMxLDI0NTMyLDI0NTQyLDI0NTQ1LDI0NTQ2LDI0NTUyLDI0NTUzLDI0NTU0LDI0NTU2LDI0NTU3LDI0NTU4LDI0NTU5LDI0NTYyLDI0NTYzLDI0NTY2LDI0NTcwLDI0NTcyLDI0''@;'; + put 'put ''NTgzLDI0NTg2LDI0NTg5LDI0NTk1LDI0NTk2LDI0NTk5LDI0NjAwLDI0NjAyLDI0NjA3LDI0NjEyLDI0NjIxLDI0NjI3LDI0NjI5LDI0NjQwLDI0NjQ3LDI0NjQ4LDI0NjQ5LDI0NjUyLDI0NjU3LDI0NjYwLDI0NjYyLDI0NjYzLDI0NjY5LDI0NjczLDI0Njc5LDI0Njg5LDI0NzAyLDI0NzAz''@;'; + put 'put ''LDI0NzA2LDI0NzEwLDI0NzEyLDI0NzE0LDI0NzE4LDI0NzIxLDI0NzIzLDI0NzI1LDI0NzI4LDI0NzMzLDI0NzM0LDI0NzM4LDI0NzQwLDI0NzQxLDI0NzQ0LDI0NzUyLDI0NzUzLDI0NzU5LDI0NzYzLDI0NzY2LDI0NzcwLDI0NzcyLDI0Nzc2LDI0Nzc3LDI0Nzc4LDI0Nzc5LDI0NzgyLDI0''@;'; + put 'put ''NzgzLDI0Nzg4LDI0Nzg5LDI0NzkzLDI0Nzk1LDI0Nzk3LDI0Nzk4LDI0ODAyLDI0ODA1LDI0ODE4LDI0ODIxLDI0ODI0LDI0ODI4LDI0ODI5LDI0ODM0LDI0ODM5LDI0ODQyLDI0ODQ0LDI0ODQ4LDI0ODQ5LDI0ODUwLDI0ODUxLDI0ODUyLDI0ODU0LDI0ODU1LDI0ODU3LDI0ODYwLDI0ODYy''@;'; + put 'put ''LDI0ODY2LDI0ODc0LDI0ODc1LDI0ODgwLDI0ODgxLDI0ODg1LDI0ODg2LDI0ODg3LDI0ODg5LDI0ODk3LDI0OTAxLDI0OTAyLDI0OTA1LDI0OTI2LDI0OTI4LDI0OTQwLDI0OTQ2LDI0OTUyLDI0OTU1LDI0OTU2LDI0OTU5LDI0OTYwLDI0OTYxLDI0OTYzLDI0OTY0LDI0OTcxLDI0OTczLDI0''@;'; + put 'put ''OTc4LDI0OTc5LDI0OTgzLDI0OTg0LDI0OTg4LDI0OTg5LDI0OTkxLDI0OTkyLDI0OTk3LDI1ZTMsMjUwMDIsMjUwMDUsMjUwMTYsMjUwMTcsMjUwMjAsMjUwMjQsMjUwMjUsMjUwMjYsMjUwMzgsMjUwMzksMjUwNDUsMjUwNTIsMjUwNTMsMjUwNTQsMjUwNTUsMjUwNTcsMjUwNTgsMjUwNjMs''@;'; + put 'put ''MjUwNjUsMjUwNjEsMjUwNjgsMjUwNjksMjUwNzEsMjUwODksMjUwOTEsMjUwOTIsMjUwOTUsMjUxMDcsMjUxMDksMjUxMTYsMjUxMjAsMjUxMjIsMjUxMjMsMjUxMjcsMjUxMjksMjUxMzEsMjUxNDUsMjUxNDksMjUxNTQsMjUxNTUsMjUxNTYsMjUxNTgsMjUxNjQsMjUxNjgsMjUxNjksMjUx''@;'; + put 'put ''NzAsMjUxNzIsMjUxNzQsMjUxNzgsMjUxODAsMjUxODgsMjUxOTcsMjUxOTksMjUyMDMsMjUyMTAsMjUyMTMsMjUyMjksMjUyMzAsMjUyMzEsMjUyMzIsMjUyNTQsMjUyNTYsMjUyNjcsMjUyNzAsMjUyNzEsMjUyNzQsMjUyNzgsMjUyNzksMjUyODQsMjUyOTQsMjUzMDEsMjUzMDIsMjUzMDYs''@;'; + put 'put ''MjUzMjIsMjUzMzAsMjUzMzIsMjUzNDAsMjUzNDEsMjUzNDcsMjUzNDgsMjUzNTQsMjUzNTUsMjUzNTcsMjUzNjAsMjUzNjMsMjUzNjYsMjUzNjgsMjUzODUsMjUzODYsMjUzODksMjUzOTcsMjUzOTgsMjU0MDEsMjU0MDQsMjU0MDksMjU0MTAsMjU0MTEsMjU0MTIsMjU0MTQsMjU0MTgsMjU0''@;'; + put 'put ''MTksMjU0MjIsMjU0MjYsMjU0MjcsMjU0MjgsMjU0MzIsMjU0MzUsMjU0NDUsMjU0NDYsMjU0NTIsMjU0NTMsMjU0NTcsMjU0NjAsMjU0NjEsMjU0NjQsMjU0NjgsMjU0NjksMjU0NzEsMjU0NzQsMjU0NzYsMjU0NzksMjU0ODIsMjU0ODgsMjU0OTIsMjU0OTMsMjU0OTcsMjU0OTgsMjU1MDIs''@;'; + put 'put ''MjU1MDgsMjU1MTAsMjU1MTcsMjU1MTgsMjU1MTksMjU1MzMsMjU1MzcsMjU1NDEsMjU1NDQsMjU1NTAsMjU1NTMsMjU1NTUsMjU1NTYsMjU1NTcsMjU1NjQsMjU1NjgsMjU1NzMsMjU1NzgsMjU1ODAsMjU1ODYsMjU1ODcsMjU1ODksMjU1OTIsMjU1OTMsMjU2MDksMjU2MTAsMjU2MTYsMjU2''@;'; + put 'put ''MTgsMjU2MjAsMjU2MjQsMjU2MzAsMjU2MzIsMjU2MzQsMjU2MzYsMjU2MzcsMjU2NDEsMjU2NDIsMjU2NDcsMjU2NDgsMjU2NTMsMjU2NjEsMjU2NjMsMjU2NzUsMjU2NzksMjU2ODEsMjU2ODIsMjU2ODMsMjU2ODQsMjU2OTAsMjU2OTEsMjU2OTIsMjU2OTMsMjU2OTUsMjU2OTYsMjU2OTcs''@;'; + put 'put ''MjU2OTksMjU3MDksMjU3MTUsMjU3MTYsMjU3MjMsMjU3MjUsMjU3MzMsMjU3MzUsMjU3NDMsMjU3NDQsMjU3NDUsMjU3NTIsMjU3NTMsMjU3NTUsMjU3NTcsMjU3NTksMjU3NjEsMjU3NjMsMjU3NjYsMjU3NjgsMjU3NzIsMjU3NzksMjU3ODksMjU3OTAsMjU3OTEsMjU3OTYsMjU4MDEsMjU4''@;'; + put 'put ''MDIsMjU4MDMsMjU4MDQsMjU4MDYsMjU4MDgsMjU4MDksMjU4MTMsMjU4MTUsMjU4MjgsMjU4MjksMjU4MzMsMjU4MzQsMjU4MzcsMjU4NDAsMjU4NDUsMjU4NDcsMjU4NTEsMjU4NTUsMjU4NTcsMjU4NjAsMjU4NjQsMjU4NjUsMjU4NjYsMjU4NzEsMjU4NzUsMjU4NzYsMjU4NzgsMjU4ODEs''@;'; + put 'put ''MjU4ODMsMjU4ODYsMjU4ODcsMjU4OTAsMjU4OTQsMjU4OTcsMjU5MDIsMjU5MDUsMjU5MTQsMjU5MTYsMjU5MTcsMjU5MjMsMjU5MjcsMjU5MjksMjU5MzYsMjU5MzgsMjU5NDAsMjU5NTEsMjU5NTIsMjU5NTksMjU5NjMsMjU5NzgsMjU5ODEsMjU5ODUsMjU5ODksMjU5OTQsMjYwMDIsMjYw''@;'; + put 'put ''MDUsMjYwMDgsMjYwMTMsMjYwMTYsMjYwMTksMjYwMjIsMjYwMzAsMjYwMzQsMjYwMzUsMjYwMzYsMjYwNDcsMjYwNTAsMjYwNTYsMjYwNTcsMjYwNjIsMjYwNjQsMjYwNjgsMjYwNzAsMjYwNzIsMjYwNzksMjYwOTYsMjYwOTgsMjYxMDAsMjYxMDEsMjYxMDUsMjYxMTAsMjYxMTEsMjYxMTIs''@;'; + put 'put ''MjYxMTYsMjYxMjAsMjYxMjEsMjYxMjUsMjYxMjksMjYxMzAsMjYxMzMsMjYxMzQsMjYxNDEsMjYxNDIsMjYxNDUsMjYxNDYsMjYxNDcsMjYxNDgsMjYxNTAsMjYxNTMsMjYxNTQsMjYxNTUsMjYxNTYsMjYxNTgsMjYxNjAsMjYxNjEsMjYxNjMsMjYxNjksMjYxNjcsMjYxNzYsMjYxODEsMjYx''@;'; + put 'put ''ODIsMjYxODYsMjYxODgsMjYxOTMsMjYxOTAsMjYxOTksMjYyMDAsMjYyMDEsMjYyMDMsMjYyMDQsMjYyMDgsMjYyMDksMjYzNjMsMjYyMTgsMjYyMTksMjYyMjAsMjYyMzgsMjYyMjcsMjYyMjksMjYyMzksMjYyMzEsMjYyMzIsMjYyMzMsMjYyMzUsMjYyNDAsMjYyMzYsMjYyNTEsMjYyNTIs''@;'; + put 'put ''MjYyNTMsMjYyNTYsMjYyNTgsMjYyNjUsMjYyNjYsMjYyNjcsMjYyNjgsMjYyNzEsMjYyNzIsMjYyNzYsMjYyODUsMjYyODksMjYyOTAsMjYyOTMsMjYyOTksMjYzMDMsMjYzMDQsMjYzMDYsMjYzMDcsMjYzMTIsMjYzMTYsMjYzMTgsMjYzMTksMjYzMjQsMjYzMzEsMjYzMzUsMjYzNDQsMjYz''@;'; + put 'put ''NDcsMjYzNDgsMjYzNTAsMjYzNjIsMjYzNzMsMjYzNzUsMjYzODIsMjYzODcsMjYzOTMsMjYzOTYsMjY0MDAsMjY0MDIsMjY0MTksMjY0MzAsMjY0MzcsMjY0MzksMjY0NDAsMjY0NDQsMjY0NTIsMjY0NTMsMjY0NjEsMjY0NzAsMjY0NzYsMjY0NzgsMjY0ODQsMjY0ODYsMjY0OTEsMjY0OTcs''@;'; + put 'put ''MjY1MDAsMjY1MTAsMjY1MTEsMjY1MTMsMjY1MTUsMjY1MTgsMjY1MjAsMjY1MjEsMjY1MjMsMjY1NDQsMjY1NDUsMjY1NDYsMjY1NDksMjY1NTUsMjY1NTYsMjY1NTcsMjY2MTcsMjY1NjAsMjY1NjIsMjY1NjMsMjY1NjUsMjY1NjgsMjY1NjksMjY1NzgsMjY1ODMsMjY1ODUsMjY1ODgsMjY1''@;'; + put 'put ''OTMsMjY1OTgsMjY2MDgsMjY2MTAsMjY2MTQsMjY2MTUsMjY3MDYsMjY2NDQsMjY2NDksMjY2NTMsMjY2NTUsMjY2NjQsMjY2NjMsMjY2NjgsMjY2NjksMjY2NzEsMjY2NzIsMjY2NzMsMjY2NzUsMjY2ODMsMjY2ODcsMjY2OTIsMjY2OTMsMjY2OTgsMjY3MDAsMjY3MDksMjY3MTEsMjY3MTIs''@;'; + put 'put ''MjY3MTUsMjY3MzEsMjY3MzQsMjY3MzUsMjY3MzYsMjY3MzcsMjY3MzgsMjY3NDEsMjY3NDUsMjY3NDYsMjY3NDcsMjY3NDgsMjY3NTQsMjY3NTYsMjY3NTgsMjY3NjAsMjY3NzQsMjY3NzYsMjY3NzgsMjY3ODAsMjY3ODUsMjY3ODcsMjY3ODksMjY3OTMsMjY3OTQsMjY3OTgsMjY4MDIsMjY4''@;'; + put 'put ''MTEsMjY4MjEsMjY4MjQsMjY4MjgsMjY4MzEsMjY4MzIsMjY4MzMsMjY4MzUsMjY4MzgsMjY4NDEsMjY4NDQsMjY4NDUsMjY4NTMsMjY4NTYsMjY4NTgsMjY4NTksMjY4NjAsMjY4NjEsMjY4NjQsMjY4NjUsMjY4NjksMjY4NzAsMjY4NzUsMjY4NzYsMjY4NzcsMjY4ODYsMjY4ODksMjY4OTAs''@;'; + put 'put ''MjY4OTYsMjY4OTcsMjY4OTksMjY5MDIsMjY5MDMsMjY5MjksMjY5MzEsMjY5MzMsMjY5MzYsMjY5MzksMjY5NDYsMjY5NDksMjY5NTMsMjY5NTgsMjY5NjcsMjY5NzEsMjY5NzksMjY5ODAsMjY5ODEsMjY5ODIsMjY5ODQsMjY5ODUsMjY5ODgsMjY5OTIsMjY5OTMsMjY5OTQsMjcwMDIsMjcw''@;'; + put 'put ''MDMsMjcwMDcsMjcwMDgsMjcwMjEsMjcwMjYsMjcwMzAsMjcwMzIsMjcwNDEsMjcwNDUsMjcwNDYsMjcwNDgsMjcwNTEsMjcwNTMsMjcwNTUsMjcwNjMsMjcwNjQsMjcwNjYsMjcwNjgsMjcwNzcsMjcwODAsMjcwODksMjcwOTQsMjcwOTUsMjcxMDYsMjcxMDksMjcxMTgsMjcxMTksMjcxMjEs''@;'; + put 'put ''MjcxMjMsMjcxMjUsMjcxMzQsMjcxMzYsMjcxMzcsMjcxMzksMjcxNTEsMjcxNTMsMjcxNTcsMjcxNjIsMjcxNjUsMjcxNjgsMjcxNzIsMjcxNzYsMjcxODQsMjcxODYsMjcxODgsMjcxOTEsMjcxOTUsMjcxOTgsMjcxOTksMjcyMDUsMjcyMDYsMjcyMDksMjcyMTAsMjcyMTQsMjcyMTYsMjcy''@;'; + put 'put ''MTcsMjcyMTgsMjcyMjEsMjcyMjIsMjcyMjcsMjcyMzYsMjcyMzksMjcyNDIsMjcyNDksMjcyNTEsMjcyNjIsMjcyNjUsMjcyNjcsMjcyNzAsMjcyNzEsMjcyNzMsMjcyNzUsMjcyODEsMjcyOTEsMjcyOTMsMjcyOTQsMjcyOTUsMjczMDEsMjczMDcsMjczMTEsMjczMTIsMjczMTMsMjczMTYs''@;'; + put 'put ''MjczMjUsMjczMjYsMjczMjcsMjczMzQsMjczMzcsMjczMzYsMjczNDAsMjczNDQsMjczNDgsMjczNDksMjczNTAsMjczNTYsMjczNTcsMjczNjQsMjczNjcsMjczNzIsMjczNzYsMjczNzcsMjczNzgsMjczODgsMjczODksMjczOTQsMjczOTUsMjczOTgsMjczOTksMjc0MDEsMjc0MDcsMjc0''@;'; + put 'put ''MDgsMjc0MDksMjc0MTUsMjc0MTksMjc0MjIsMjc0MjgsMjc0MzIsMjc0MzUsMjc0MzYsMjc0MzksMjc0NDUsMjc0NDYsMjc0NTEsMjc0NTUsMjc0NjIsMjc0NjYsMjc0NjksMjc0NzQsMjc0NzgsMjc0ODAsMjc0ODUsMjc0ODgsMjc0OTUsMjc0OTksMjc1MDIsMjc1MDQsMjc1MDksMjc1MTcs''@;'; + put 'put ''Mjc1MTgsMjc1MjIsMjc1MjUsMjc1NDMsMjc1NDcsMjc1NTEsMjc1NTIsMjc1NTQsMjc1NTUsMjc1NjAsMjc1NjEsMjc1NjQsMjc1NjUsMjc1NjYsMjc1NjgsMjc1NzYsMjc1NzcsMjc1ODEsMjc1ODIsMjc1ODcsMjc1ODgsMjc1OTMsMjc1OTYsMjc2MDYsMjc2MTAsMjc2MTcsMjc2MTksMjc2''@;'; + put 'put ''MjIsMjc2MjMsMjc2MzAsMjc2MzMsMjc2MzksMjc2NDEsMjc2NDcsMjc2NTAsMjc2NTIsMjc2NTMsMjc2NTcsMjc2NjEsMjc2NjIsMjc2NjQsMjc2NjYsMjc2NzMsMjc2NzksMjc2ODYsMjc2ODcsMjc2ODgsMjc2OTIsMjc2OTQsMjc2OTksMjc3MDEsMjc3MDIsMjc3MDYsMjc3MDcsMjc3MTEs''@;'; + put 'put ''Mjc3MjIsMjc3MjMsMjc3MjUsMjc3MjcsMjc3MzAsMjc3MzIsMjc3MzcsMjc3MzksMjc3NDAsMjc3NTUsMjc3NTcsMjc3NTksMjc3NjQsMjc3NjYsMjc3NjgsMjc3NjksMjc3NzEsMjc3ODEsMjc3ODIsMjc3ODMsMjc3ODUsMjc3OTYsMjc3OTcsMjc3OTksMjc4MDAsMjc4MDQsMjc4MDcsMjc4''@;'; + put 'put ''MjQsMjc4MjYsMjc4MjgsMjc4NDIsMjc4NDYsMjc4NTMsMjc4NTUsMjc4NTYsMjc4NTcsMjc4NTgsMjc4NjAsMjc4NjIsMjc4NjYsMjc4NjgsMjc4NzIsMjc4NzksMjc4ODEsMjc4ODMsMjc4ODQsMjc4ODYsMjc4OTAsMjc4OTIsMjc5MDgsMjc5MTEsMjc5MTQsMjc5MTgsMjc5MTksMjc5MjEs''@;'; + put 'put ''Mjc5MjMsMjc5MzAsMjc5NDIsMjc5NDMsMjc5NDQsMjc3NTEsMjc5NTAsMjc5NTEsMjc5NTMsMjc5NjEsMjc5NjQsMjc5NjcsMjc5OTEsMjc5OTgsMjc5OTksMjgwMDEsMjgwMDUsMjgwMDcsMjgwMTUsMjgwMTYsMjgwMjgsMjgwMzQsMjgwMzksMjgwNDksMjgwNTAsMjgwNTIsMjgwNTQsMjgw''@;'; + put 'put ''NTUsMjgwNTYsMjgwNzQsMjgwNzYsMjgwODQsMjgwODcsMjgwODksMjgwOTMsMjgwOTUsMjgxMDAsMjgxMDQsMjgxMDYsMjgxMTAsMjgxMTEsMjgxMTgsMjgxMjMsMjgxMjUsMjgxMjcsMjgxMjgsMjgxMzAsMjgxMzMsMjgxMzcsMjgxNDMsMjgxNDQsMjgxNDgsMjgxNTAsMjgxNTYsMjgxNjAs''@;'; + put 'put ''MjgxNjQsMjgxOTAsMjgxOTQsMjgxOTksMjgyMTAsMjgyMTQsMjgyMTcsMjgyMTksMjgyMjAsMjgyMjgsMjgyMjksMjgyMzIsMjgyMzMsMjgyMzUsMjgyMzksMjgyNDEsMjgyNDIsMjgyNDMsMjgyNDQsMjgyNDcsMjgyNTIsMjgyNTMsMjgyNTQsMjgyNTgsMjgyNTksMjgyNjQsMjgyNzUsMjgy''@;'; + put 'put ''ODMsMjgyODUsMjgzMDEsMjgzMDcsMjgzMTMsMjgzMjAsMjgzMjcsMjgzMzMsMjgzMzQsMjgzMzcsMjgzMzksMjgzNDcsMjgzNTEsMjgzNTIsMjgzNTMsMjgzNTUsMjgzNTksMjgzNjAsMjgzNjIsMjgzNjUsMjgzNjYsMjgzNjcsMjgzOTUsMjgzOTcsMjgzOTgsMjg0MDksMjg0MTEsMjg0MTMs''@;'; + put 'put ''Mjg0MjAsMjg0MjQsMjg0MjYsMjg0MjgsMjg0MjksMjg0MzgsMjg0NDAsMjg0NDIsMjg0NDMsMjg0NTQsMjg0NTcsMjg0NTgsMjg0NjMsMjg0NjQsMjg0NjcsMjg0NzAsMjg0NzUsMjg0NzYsMjg0NjEsMjg0OTUsMjg0OTcsMjg0OTgsMjg0OTksMjg1MDMsMjg1MDUsMjg1MDYsMjg1MDksMjg1''@;'; + put 'put ''MTAsMjg1MTMsMjg1MTQsMjg1MjAsMjg1MjQsMjg1NDEsMjg1NDIsMjg1NDcsMjg1NTEsMjg1NTIsMjg1NTUsMjg1NTYsMjg1NTcsMjg1NjAsMjg1NjIsMjg1NjMsMjg1NjQsMjg1NjYsMjg1NzAsMjg1NzUsMjg1NzYsMjg1ODEsMjg1ODIsMjg1ODMsMjg1ODQsMjg1OTAsMjg1OTEsMjg1OTIs''@;'; + put 'put ''Mjg1OTcsMjg1OTgsMjg2MDQsMjg2MTMsMjg2MTUsMjg2MTYsMjg2MTgsMjg2MzQsMjg2MzgsMjg2NDgsMjg2NDksMjg2NTYsMjg2NjEsMjg2NjUsMjg2NjgsMjg2NjksMjg2NzIsMjg2NzcsMjg2NzgsMjg2NzksMjg2ODUsMjg2OTUsMjg3MDQsMjg3MDcsMjg3MTksMjg3MjQsMjg3MjcsMjg3''@;'; + put 'put ''MjksMjg3MzIsMjg3MzksMjg3NDAsMjg3NDQsMjg3NDUsMjg3NDYsMjg3NDcsMjg3NTYsMjg3NTcsMjg3NjUsMjg3NjYsMjg3NTAsMjg3NzIsMjg3NzMsMjg3ODAsMjg3ODIsMjg3ODksMjg3OTAsMjg3OTgsMjg4MDEsMjg4MDUsMjg4MDYsMjg4MjAsMjg4MjEsMjg4MjIsMjg4MjMsMjg4MjQs''@;'; + put 'put ''Mjg4MjcsMjg4MzYsMjg4NDMsMjg4NDgsMjg4NDksMjg4NTIsMjg4NTUsMjg4NzQsMjg4ODEsMjg4ODMsMjg4ODQsMjg4ODUsMjg4ODYsMjg4ODgsMjg4OTIsMjg5MDAsMjg5MjIsMjg5MzEsMjg5MzIsMjg5MzMsMjg5MzQsMjg5MzUsMjg5MzksMjg5NDAsMjg5NDMsMjg5NTgsMjg5NjAsMjg5''@;'; + put 'put ''NzEsMjg5NzMsMjg5NzUsMjg5NzYsMjg5NzcsMjg5ODQsMjg5OTMsMjg5OTcsMjg5OTgsMjg5OTksMjkwMDIsMjkwMDMsMjkwMDgsMjkwMTAsMjkwMTUsMjkwMTgsMjkwMjAsMjkwMjIsMjkwMjQsMjkwMzIsMjkwNDksMjkwNTYsMjkwNjEsMjkwNjMsMjkwNjgsMjkwNzQsMjkwODIsMjkwODMs''@;'; + put 'put ''MjkwODgsMjkwOTAsMjkxMDMsMjkxMDQsMjkxMDYsMjkxMDcsMjkxMTQsMjkxMTksMjkxMjAsMjkxMjEsMjkxMjQsMjkxMzEsMjkxMzIsMjkxMzksMjkxNDIsMjkxNDUsMjkxNDYsMjkxNDgsMjkxNzYsMjkxODIsMjkxODQsMjkxOTEsMjkxOTIsMjkxOTMsMjkyMDMsMjkyMDcsMjkyMTAsMjky''@;'; + put 'put ''MTMsMjkyMTUsMjkyMjAsMjkyMjcsMjkyMzEsMjkyMzYsMjkyNDAsMjkyNDEsMjkyNDksMjkyNTAsMjkyNTEsMjkyNTMsMjkyNjIsMjkyNjMsMjkyNjQsMjkyNjcsMjkyNjksMjkyNzAsMjkyNzQsMjkyNzYsMjkyNzgsMjkyODAsMjkyODMsMjkyODgsMjkyOTEsMjkyOTQsMjkyOTUsMjkyOTcs''@;'; + put 'put ''MjkzMDMsMjkzMDQsMjkzMDcsMjkzMDgsMjkzMTEsMjkzMTYsMjkzMjEsMjkzMjUsMjkzMjYsMjkzMzEsMjkzMzksMjkzNTIsMjkzNTcsMjkzNTgsMjkzNjEsMjkzNjQsMjkzNzQsMjkzNzcsMjkzODMsMjkzODUsMjkzODgsMjkzOTcsMjkzOTgsMjk0MDAsMjk0MDcsMjk0MTMsMjk0MjcsMjk0''@;'; + put 'put ''MjgsMjk0MzQsMjk0MzUsMjk0MzgsMjk0NDIsMjk0NDQsMjk0NDUsMjk0NDcsMjk0NTEsMjk0NTMsMjk0NTgsMjk0NTksMjk0NjQsMjk0NjUsMjk0NzAsMjk0NzQsMjk0NzYsMjk0NzksMjk0ODAsMjk0ODQsMjk0ODksMjk0OTAsMjk0OTMsMjk0OTgsMjk0OTksMjk1MDEsMjk1MDcsMjk1MTcs''@;'; + put 'put ''Mjk1MjAsMjk1MjIsMjk1MjYsMjk1MjgsMjk1MzMsMjk1MzQsMjk1MzUsMjk1MzYsMjk1NDIsMjk1NDMsMjk1NDUsMjk1NDcsMjk1NDgsMjk1NTAsMjk1NTEsMjk1NTMsMjk1NTksMjk1NjEsMjk1NjQsMjk1NjgsMjk1NjksMjk1NzEsMjk1NzMsMjk1NzQsMjk1ODIsMjk1ODQsMjk1ODcsMjk1''@;'; + put 'put ''ODksMjk1OTEsMjk1OTIsMjk1OTYsMjk1OTgsMjk1OTksMjk2MDAsMjk2MDIsMjk2MDUsMjk2MDYsMjk2MTAsMjk2MTEsMjk2MTMsMjk2MjEsMjk2MjMsMjk2MjUsMjk2MjgsMjk2MjksMjk2MzEsMjk2MzcsMjk2MzgsMjk2NDEsMjk2NDMsMjk2NDQsMjk2NDcsMjk2NTAsMjk2NTEsMjk2NTQs''@;'; + put 'put ''Mjk2NTcsMjk2NjEsMjk2NjUsMjk2NjcsMjk2NzAsMjk2NzEsMjk2NzMsMjk2ODQsMjk2ODUsMjk2ODcsMjk2ODksMjk2OTAsMjk2OTEsMjk2OTMsMjk2OTUsMjk2OTYsMjk2OTcsMjk3MDAsMjk3MDMsMjk3MDYsMjk3MTMsMjk3MjIsMjk3MjMsMjk3MzIsMjk3MzQsMjk3MzYsMjk3MzcsMjk3''@;'; + put 'put ''MzgsMjk3MzksMjk3NDAsMjk3NDEsMjk3NDIsMjk3NDMsMjk3NDQsMjk3NDUsMjk3NTMsMjk3NjAsMjk3NjMsMjk3NjQsMjk3NjYsMjk3NjcsMjk3NzEsMjk3NzMsMjk3NzcsMjk3NzgsMjk3ODMsMjk3ODksMjk3OTQsMjk3OTgsMjk3OTksMjk4MDAsMjk4MDMsMjk4MDUsMjk4MDYsMjk4MDks''@;'; + put 'put ''Mjk4MTAsMjk4MjQsMjk4MjUsMjk4MjksMjk4MzAsMjk4MzEsMjk4MzMsMjk4MzksMjk4NDAsMjk4NDEsMjk4NDIsMjk4NDgsMjk4NDksMjk4NTAsMjk4NTIsMjk4NTUsMjk4NTYsMjk4NTcsMjk4NTksMjk4NjIsMjk4NjQsMjk4NjUsMjk4NjYsMjk4NjcsMjk4NzAsMjk4NzEsMjk4NzMsMjk4''@;'; + put 'put ''NzQsMjk4NzcsMjk4ODEsMjk4ODMsMjk4ODcsMjk4OTYsMjk4OTcsMjk5MDAsMjk5MDQsMjk5MDcsMjk5MTIsMjk5MTQsMjk5MTUsMjk5MTgsMjk5MTksMjk5MjQsMjk5MjgsMjk5MzAsMjk5MzEsMjk5MzUsMjk5NDAsMjk5NDYsMjk5NDcsMjk5NDgsMjk5NTEsMjk5NTgsMjk5NzAsMjk5NzQs''@;'; + put 'put ''Mjk5NzUsMjk5ODQsMjk5ODUsMjk5ODgsMjk5OTEsMjk5OTMsMjk5OTQsMjk5OTksMzAwMDYsMzAwMDksMzAwMTMsMzAwMTQsMzAwMTUsMzAwMTYsMzAwMTksMzAwMjMsMzAwMjQsMzAwMzAsMzAwMzIsMzAwMzQsMzAwMzksMzAwNDYsMzAwNDcsMzAwNDksMzAwNjMsMzAwNjUsMzAwNzMsMzAw''@;'; + put 'put ''NzQsMzAwNzUsMzAwNzYsMzAwNzcsMzAwNzgsMzAwODEsMzAwODUsMzAwOTYsMzAwOTgsMzAwOTksMzAxMDEsMzAxMDUsMzAxMDgsMzAxMTQsMzAxMTYsMzAxMzIsMzAxMzgsMzAxNDMsMzAxNDQsMzAxNDUsMzAxNDgsMzAxNTAsMzAxNTYsMzAxNTgsMzAxNTksMzAxNjcsMzAxNzIsMzAxNzUs''@;'; + put 'put ''MzAxNzYsMzAxNzcsMzAxODAsMzAxODMsMzAxODgsMzAxOTAsMzAxOTEsMzAxOTMsMzAyMDEsMzAyMDgsMzAyMTAsMzAyMTEsMzAyMTIsMzAyMTUsMzAyMTYsMzAyMTgsMzAyMjAsMzAyMjMsMzAyMjYsMzAyMjcsMzAyMjksMzAyMzAsMzAyMzMsMzAyMzUsMzAyMzYsMzAyMzcsMzAyMzgsMzAy''@;'; + put 'put ''NDMsMzAyNDUsMzAyNDYsMzAyNDksMzAyNTMsMzAyNTgsMzAyNTksMzAyNjEsMzAyNjQsMzAyNjUsMzAyNjYsMzAyNjgsMzAyODIsMzAyNzIsMzAyNzMsMzAyNzUsMzAyNzYsMzAyNzcsMzAyODEsMzAyODMsMzAyOTMsMzAyOTcsMzAzMDMsMzAzMDgsMzAzMDksMzAzMTcsMzAzMTgsMzAzMTks''@;'; + put 'put ''MzAzMjEsMzAzMjQsMzAzMzcsMzAzNDEsMzAzNDgsMzAzNDksMzAzNTcsMzAzNjMsMzAzNjQsMzAzNjUsMzAzNjcsMzAzNjgsMzAzNzAsMzAzNzEsMzAzNzIsMzAzNzMsMzAzNzQsMzAzNzUsMzAzNzYsMzAzNzgsMzAzODEsMzAzOTcsMzA0MDEsMzA0MDUsMzA0MDksMzA0MTEsMzA0MTIsMzA0''@;'; + put 'put ''MTQsMzA0MjAsMzA0MjUsMzA0MzIsMzA0MzgsMzA0NDAsMzA0NDQsMzA0NDgsMzA0NDksMzA0NTQsMzA0NTcsMzA0NjAsMzA0NjQsMzA0NzAsMzA0NzQsMzA0NzgsMzA0ODIsMzA0ODQsMzA0ODUsMzA0ODcsMzA0ODksMzA0OTAsMzA0OTIsMzA0OTgsMzA1MDQsMzA1MDksMzA1MTAsMzA1MTEs''@;'; + put 'put ''MzA1MTYsMzA1MTcsMzA1MTgsMzA1MjEsMzA1MjUsMzA1MjYsMzA1MzAsMzA1MzMsMzA1MzQsMzA1MzgsMzA1NDEsMzA1NDIsMzA1NDMsMzA1NDYsMzA1NTAsMzA1NTEsMzA1NTYsMzA1NTgsMzA1NTksMzA1NjAsMzA1NjIsMzA1NjQsMzA1NjcsMzA1NzAsMzA1NzIsMzA1NzYsMzA1NzgsMzA1''@;'; + put 'put ''NzksMzA1ODAsMzA1ODYsMzA1ODksMzA1OTIsMzA1OTYsMzA2MDQsMzA2MDUsMzA2MTIsMzA2MTMsMzA2MTQsMzA2MTgsMzA2MjMsMzA2MjYsMzA2MzEsMzA2MzQsMzA2MzgsMzA2MzksMzA2NDEsMzA2NDUsMzA2NTQsMzA2NTksMzA2NjUsMzA2NzMsMzA2NzQsMzA2NzcsMzA2ODEsMzA2ODYs''@;'; + put 'put ''MzA2ODcsMzA2ODgsMzA2OTIsMzA2OTQsMzA2OTgsMzA3MDAsMzA3MDQsMzA3MDUsMzA3MDgsMzA3MTIsMzA3MTUsMzA3MjUsMzA3MjYsMzA3MjksMzA3MzMsMzA3MzQsMzA3MzcsMzA3NDksMzA3NTMsMzA3NTQsMzA3NTUsMzA3NjUsMzA3NjYsMzA3NjgsMzA3NzMsMzA3NzUsMzA3ODcsMzA3''@;'; + put 'put ''ODgsMzA3OTEsMzA3OTIsMzA3OTYsMzA3OTgsMzA4MDIsMzA4MTIsMzA4MTQsMzA4MTYsMzA4MTcsMzA4MTksMzA4MjAsMzA4MjQsMzA4MjYsMzA4MzAsMzA4NDIsMzA4NDYsMzA4NTgsMzA4NjMsMzA4NjgsMzA4NzIsMzA4ODEsMzA4NzcsMzA4NzgsMzA4NzksMzA4ODQsMzA4ODgsMzA4OTIs''@;'; + put 'put ''MzA4OTMsMzA4OTYsMzA4OTcsMzA4OTgsMzA4OTksMzA5MDcsMzA5MDksMzA5MTEsMzA5MTksMzA5MjAsMzA5MjEsMzA5MjQsMzA5MjYsMzA5MzAsMzA5MzEsMzA5MzMsMzA5MzQsMzA5NDgsMzA5MzksMzA5NDMsMzA5NDQsMzA5NDUsMzA5NTAsMzA5NTQsMzA5NjIsMzA5NjMsMzA5NzYsMzA5''@;'; + put 'put ''NjYsMzA5NjcsMzA5NzAsMzA5NzEsMzA5NzUsMzA5ODIsMzA5ODgsMzA5OTIsMzEwMDIsMzEwMDQsMzEwMDYsMzEwMDcsMzEwMDgsMzEwMTMsMzEwMTUsMzEwMTcsMzEwMjEsMzEwMjUsMzEwMjgsMzEwMjksMzEwMzUsMzEwMzcsMzEwMzksMzEwNDQsMzEwNDUsMzEwNDYsMzEwNTAsMzEwNTEs''@;'; + put 'put ''MzEwNTUsMzEwNTcsMzEwNjAsMzEwNjQsMzEwNjcsMzEwNjgsMzEwNzksMzEwODEsMzEwODMsMzEwOTAsMzEwOTcsMzEwOTksMzExMDAsMzExMDIsMzExMTUsMzExMTYsMzExMjEsMzExMjMsMzExMjQsMzExMjUsMzExMjYsMzExMjgsMzExMzEsMzExMzIsMzExMzcsMzExNDQsMzExNDUsMzEx''@;'; + put 'put ''NDcsMzExNTEsMzExNTMsMzExNTYsMzExNjAsMzExNjMsMzExNzAsMzExNzIsMzExNzUsMzExNzYsMzExNzgsMzExODMsMzExODgsMzExOTAsMzExOTQsMzExOTcsMzExOTgsMzEyMDAsMzEyMDIsMzEyMDUsMzEyMTAsMzEyMTEsMzEyMTMsMzEyMTcsMzEyMjQsMzEyMjgsMzEyMzQsMzEyMzUs''@;'; + put 'put ''MzEyMzksMzEyNDEsMzEyNDIsMzEyNDQsMzEyNDksMzEyNTMsMzEyNTksMzEyNjIsMzEyNjUsMzEyNzEsMzEyNzUsMzEyNzcsMzEyNzksMzEyODAsMzEyODQsMzEyODUsMzEyODgsMzEyODksMzEyOTAsMzEzMDAsMzEzMDEsMzEzMDMsMzEzMDQsMzEzMDgsMzEzMTcsMzEzMTgsMzEzMjEsMzEz''@;'; + put 'put ''MjQsMzEzMjUsMzEzMjcsMzEzMjgsMzEzMzMsMzEzMzUsMzEzMzgsMzEzNDEsMzEzNDksMzEzNTIsMzEzNTgsMzEzNjAsMzEzNjIsMzEzNjUsMzEzNjYsMzEzNzAsMzEzNzEsMzEzNzYsMzEzNzcsMzEzODAsMzEzOTAsMzEzOTIsMzEzOTUsMzE0MDQsMzE0MTEsMzE0MTMsMzE0MTcsMzE0MTks''@;'; + put 'put ''MzE0MjAsMzE0MzAsMzE0MzMsMzE0MzYsMzE0MzgsMzE0NDEsMzE0NTEsMzE0NjQsMzE0NjUsMzE0NjcsMzE0NjgsMzE0NzMsMzE0NzYsMzE0ODMsMzE0ODUsMzE0ODYsMzE0OTUsMzE1MDgsMzE1MTksMzE1MjMsMzE1MjcsMzE1MjksMzE1MzAsMzE1MzEsMzE1MzMsMzE1MzQsMzE1MzUsMzE1''@;'; + put 'put ''MzYsMzE1MzcsMzE1NDAsMzE1NDksMzE1NTEsMzE1NTIsMzE1NTMsMzE1NTksMzE1NjYsMzE1NzMsMzE1ODQsMzE1ODgsMzE1OTAsMzE1OTMsMzE1OTQsMzE1OTcsMzE1OTksMzE2MDIsMzE2MDMsMzE2MDcsMzE2MjAsMzE2MjUsMzE2MzAsMzE2MzIsMzE2MzMsMzE2MzgsMzE2NDMsMzE2NDYs''@;'; + put 'put ''MzE2NDgsMzE2NTMsMzE2NjAsMzE2NjMsMzE2NjQsMzE2NjYsMzE2NjksMzE2NzAsMzE2NzQsMzE2NzUsMzE2NzYsMzE2NzcsMzE2ODIsMzE2ODUsMzE2ODgsMzE2OTAsMzE3MDAsMzE3MDIsMzE3MDMsMzE3MDUsMzE3MDYsMzE3MDcsMzE3MjAsMzE3MjIsMzE3MzAsMzE3MzIsMzE3MzMsMzE3''@;'; + put 'put ''MzYsMzE3MzcsMzE3MzgsMzE3NDAsMzE3NDIsMzE3NDUsMzE3NDYsMzE3NDcsMzE3NDgsMzE3NTAsMzE3NTMsMzE3NTUsMzE3NTYsMzE3NTgsMzE3NTksMzE3NjksMzE3NzEsMzE3NzYsMzE3ODEsMzE3ODIsMzE3ODQsMzE3ODgsMzE3OTMsMzE3OTUsMzE3OTYsMzE3OTgsMzE4MDEsMzE4MDIs''@;'; + put 'put ''MzE4MTQsMzE4MTgsMzE4MjksMzE4MjUsMzE4MjYsMzE4MjcsMzE4MzMsMzE4MzQsMzE4MzUsMzE4MzYsMzE4MzcsMzE4MzgsMzE4NDEsMzE4NDMsMzE4NDcsMzE4NDksMzE4NTMsMzE4NTQsMzE4NTYsMzE4NTgsMzE4NjUsMzE4NjgsMzE4NjksMzE4NzgsMzE4NzksMzE4ODcsMzE4OTIsMzE5''@;'; + put 'put ''MDIsMzE5MDQsMzE5MTAsMzE5MjAsMzE5MjYsMzE5MjcsMzE5MzAsMzE5MzEsMzE5MzIsMzE5MzUsMzE5NDAsMzE5NDMsMzE5NDQsMzE5NDUsMzE5NDksMzE5NTEsMzE5NTUsMzE5NTYsMzE5NTcsMzE5NTksMzE5NjEsMzE5NjIsMzE5NjUsMzE5NzQsMzE5NzcsMzE5NzksMzE5ODksMzIwMDMs''@;'; + put 'put ''MzIwMDcsMzIwMDgsMzIwMDksMzIwMTUsMzIwMTcsMzIwMTgsMzIwMTksMzIwMjIsMzIwMjksMzIwMzAsMzIwMzUsMzIwMzgsMzIwNDIsMzIwNDUsMzIwNDksMzIwNjAsMzIwNjEsMzIwNjIsMzIwNjQsMzIwNjUsMzIwNzEsMzIwNzIsMzIwNzcsMzIwODEsMzIwODMsMzIwODcsMzIwODksMzIw''@;'; + put 'put ''OTAsMzIwOTIsMzIwOTMsMzIxMDEsMzIxMDMsMzIxMDYsMzIxMTIsMzIxMjAsMzIxMjIsMzIxMjMsMzIxMjcsMzIxMjksMzIxMzAsMzIxMzEsMzIxMzMsMzIxMzQsMzIxMzYsMzIxMzksMzIxNDAsMzIxNDEsMzIxNDUsMzIxNTAsMzIxNTEsMzIxNTcsMzIxNTgsMzIxNjYsMzIxNjcsMzIxNzAs''@;'; + put 'put ''MzIxNzksMzIxODIsMzIxODMsMzIxODUsMzIxOTQsMzIxOTUsMzIxOTYsMzIxOTcsMzIxOTgsMzIyMDQsMzIyMDUsMzIyMDYsMzIyMTUsMzIyMTcsMzIyNTYsMzIyMjYsMzIyMjksMzIyMzAsMzIyMzQsMzIyMzUsMzIyMzcsMzIyNDEsMzIyNDUsMzIyNDYsMzIyNDksMzIyNTAsMzIyNjQsMzIy''@;'; + put 'put ''NzIsMzIyNzMsMzIyNzcsMzIyNzksMzIyODQsMzIyODUsMzIyODgsMzIyOTUsMzIyOTYsMzIzMDAsMzIzMDEsMzIzMDMsMzIzMDcsMzIzMTAsMzIzMTksMzIzMjQsMzIzMjUsMzIzMjcsMzIzMzQsMzIzMzYsMzIzMzgsMzIzNDQsMzIzNTEsMzIzNTMsMzIzNTQsMzIzNTcsMzIzNjMsMzIzNjYs''@;'; + put 'put ''MzIzNjcsMzIzNzEsMzIzNzYsMzIzODIsMzIzODUsMzIzOTAsMzIzOTEsMzIzOTQsMzIzOTcsMzI0MDEsMzI0MDUsMzI0MDgsMzI0MTAsMzI0MTMsMzI0MTQsMzI1NzIsMzI1NzEsMzI1NzMsMzI1NzQsMzI1NzUsMzI1NzksMzI1ODAsMzI1ODMsMzI1OTEsMzI1OTQsMzI1OTUsMzI2MDMsMzI2''@;'; + put 'put ''MDQsMzI2MDUsMzI2MDksMzI2MTEsMzI2MTIsMzI2MTMsMzI2MTQsMzI2MjEsMzI2MjUsMzI2MzcsMzI2MzgsMzI2MzksMzI2NDAsMzI2NTEsMzI2NTMsMzI2NTUsMzI2NTYsMzI2NTcsMzI2NjIsMzI2NjMsMzI2NjgsMzI2NzMsMzI2NzQsMzI2NzgsMzI2ODIsMzI2ODUsMzI2OTIsMzI3MDAs''@;'; + put 'put ''MzI3MDMsMzI3MDQsMzI3MDcsMzI3MTIsMzI3MTgsMzI3MTksMzI3MzEsMzI3MzUsMzI3MzksMzI3NDEsMzI3NDQsMzI3NDgsMzI3NTAsMzI3NTEsMzI3NTQsMzI3NjIsMzI3NjUsMzI3NjYsMzI3NjcsMzI3NzUsMzI3NzYsMzI3NzgsMzI3ODEsMzI3ODIsMzI3ODMsMzI3ODUsMzI3ODcsMzI3''@;'; + put 'put ''ODgsMzI3OTAsMzI3OTcsMzI3OTgsMzI3OTksMzI4MDAsMzI4MDQsMzI4MDYsMzI4MTIsMzI4MTQsMzI4MTYsMzI4MjAsMzI4MjEsMzI4MjMsMzI4MjUsMzI4MjYsMzI4MjgsMzI4MzAsMzI4MzIsMzI4MzYsMzI4NjQsMzI4NjgsMzI4NzAsMzI4NzcsMzI4ODEsMzI4ODUsMzI4OTcsMzI5MDQs''@;'; + put 'put ''MzI5MTAsMzI5MjQsMzI5MjYsMzI5MzQsMzI5MzUsMzI5MzksMzI5NTIsMzI5NTMsMzI5NjgsMzI5NzMsMzI5NzUsMzI5NzgsMzI5ODAsMzI5ODEsMzI5ODMsMzI5ODQsMzI5OTIsMzMwMDUsMzMwMDYsMzMwMDgsMzMwMTAsMzMwMTEsMzMwMTQsMzMwMTcsMzMwMTgsMzMwMjIsMzMwMjcsMzMw''@;'; + put 'put ''MzUsMzMwNDYsMzMwNDcsMzMwNDgsMzMwNTIsMzMwNTQsMzMwNTYsMzMwNjAsMzMwNjMsMzMwNjgsMzMwNzIsMzMwNzcsMzMwODIsMzMwODQsMzMwOTMsMzMwOTUsMzMwOTgsMzMxMDAsMzMxMDYsMzMxMTEsMzMxMjAsMzMxMjEsMzMxMjcsMzMxMjgsMzMxMjksMzMxMzMsMzMxMzUsMzMxNDMs''@;'; + put 'put ''MzMxNTMsMzMxNjgsMzMxNTYsMzMxNTcsMzMxNTgsMzMxNjMsMzMxNjYsMzMxNzQsMzMxNzYsMzMxNzksMzMxODIsMzMxODYsMzMxOTgsMzMyMDIsMzMyMDQsMzMyMTEsMzMyMjcsMzMyMTksMzMyMjEsMzMyMjYsMzMyMzAsMzMyMzEsMzMyMzcsMzMyMzksMzMyNDMsMzMyNDUsMzMyNDYsMzMy''@;'; + put 'put ''NDksMzMyNTIsMzMyNTksMzMyNjAsMzMyNjQsMzMyNjUsMzMyNjYsMzMyNjksMzMyNzAsMzMyNzIsMzMyNzMsMzMyNzcsMzMyNzksMzMyODAsMzMyODMsMzMyOTUsMzMyOTksMzMzMDAsMzMzMDUsMzMzMDYsMzMzMDksMzMzMTMsMzMzMTQsMzMzMjAsMzMzMzAsMzMzMzIsMzMzMzgsMzMzNDcs''@;'; + put 'put ''MzMzNDgsMzMzNDksMzMzNTAsMzMzNTUsMzMzNTgsMzMzNTksMzMzNjEsMzMzNjYsMzMzNzIsMzMzNzYsMzMzNzksMzMzODMsMzMzODksMzMzOTYsMzM0MDMsMzM0MDUsMzM0MDcsMzM0MDgsMzM0MDksMzM0MTEsMzM0MTIsMzM0MTUsMzM0MTcsMzM0MTgsMzM0MjIsMzM0MjUsMzM0MjgsMzM0''@;'; + put 'put ''MzAsMzM0MzIsMzM0MzQsMzM0MzUsMzM0NDAsMzM0NDEsMzM0NDMsMzM0NDQsMzM0NDcsMzM0NDgsMzM0NDksMzM0NTAsMzM0NTQsMzM0NTYsMzM0NTgsMzM0NjAsMzM0NjMsMzM0NjYsMzM0NjgsMzM0NzAsMzM0NzEsMzM0NzgsMzM0ODgsMzM0OTMsMzM0OTgsMzM1MDQsMzM1MDYsMzM1MDgs''@;'; + put 'put ''MzM1MTIsMzM1MTQsMzM1MTcsMzM1MTksMzM1MjYsMzM1MjcsMzM1MzMsMzM1MzQsMzM1MzYsMzM1MzcsMzM1NDMsMzM1NDQsMzM1NDYsMzM1NDcsMzM2MjAsMzM1NjMsMzM1NjUsMzM1NjYsMzM1NjcsMzM1NjksMzM1NzAsMzM1ODAsMzM1ODEsMzM1ODIsMzM1ODQsMzM1ODcsMzM1OTEsMzM1''@;'; + put 'put ''OTQsMzM1OTYsMzM1OTcsMzM2MDIsMzM2MDMsMzM2MDQsMzM2MDcsMzM2MTMsMzM2MTQsMzM2MTcsMzM2MjEsMzM2MjIsMzM2MjMsMzM2NDgsMzM2NTYsMzM2NjEsMzM2NjMsMzM2NjQsMzM2NjYsMzM2NjgsMzM2NzAsMzM2NzcsMzM2ODIsMzM2ODQsMzM2ODUsMzM2ODgsMzM2ODksMzM2OTEs''@;'; + put 'put ''MzM2OTIsMzM2OTMsMzM3MDIsMzM3MDMsMzM3MDUsMzM3MDgsMzM3MjYsMzM3MjcsMzM3MjgsMzM3MzUsMzM3MzcsMzM3NDMsMzM3NDQsMzM3NDUsMzM3NDgsMzM3NTcsMzM2MTksMzM3NjgsMzM3NzAsMzM3ODIsMzM3ODQsMzM3ODUsMzM3ODgsMzM3OTMsMzM3OTgsMzM4MDIsMzM4MDcsMzM4''@;'; + put 'put ''MDksMzM4MTMsMzM4MTcsMzM3MDksMzM4MzksMzM4NDksMzM4NjEsMzM4NjMsMzM4NjQsMzM4NjYsMzM4NjksMzM4NzEsMzM4NzMsMzM4NzQsMzM4NzgsMzM4ODAsMzM4ODEsMzM4ODIsMzM4ODQsMzM4ODgsMzM4OTIsMzM4OTMsMzM4OTUsMzM4OTgsMzM5MDQsMzM5MDcsMzM5MDgsMzM5MTAs''@;'; + put 'put ''MzM5MTIsMzM5MTYsMzM5MTcsMzM5MjEsMzM5MjUsMzM5MzgsMzM5MzksMzM5NDEsMzM5NTAsMzM5NTgsMzM5NjAsMzM5NjEsMzM5NjIsMzM5NjcsMzM5NjksMzM5NzIsMzM5NzgsMzM5ODEsMzM5ODIsMzM5ODQsMzM5ODYsMzM5OTEsMzM5OTIsMzM5OTYsMzM5OTksMzQwMDMsMzQwMTIsMzQw''@;'; + put 'put ''MjMsMzQwMjYsMzQwMzEsMzQwMzIsMzQwMzMsMzQwMzQsMzQwMzksMzQwOTgsMzQwNDIsMzQwNDMsMzQwNDUsMzQwNTAsMzQwNTEsMzQwNTUsMzQwNjAsMzQwNjIsMzQwNjQsMzQwNzYsMzQwNzgsMzQwODIsMzQwODMsMzQwODQsMzQwODUsMzQwODcsMzQwOTAsMzQwOTEsMzQwOTUsMzQwOTks''@;'; + put 'put ''MzQxMDAsMzQxMDIsMzQxMTEsMzQxMTgsMzQxMjcsMzQxMjgsMzQxMjksMzQxMzAsMzQxMzEsMzQxMzQsMzQxMzcsMzQxNDAsMzQxNDEsMzQxNDIsMzQxNDMsMzQxNDQsMzQxNDUsMzQxNDYsMzQxNDgsMzQxNTUsMzQxNTksMzQxNjksMzQxNzAsMzQxNzEsMzQxNzMsMzQxNzUsMzQxNzcsMzQx''@;'; + put 'put ''ODEsMzQxODIsMzQxODUsMzQxODcsMzQxODgsMzQxOTEsMzQxOTUsMzQyMDAsMzQyMDUsMzQyMDcsMzQyMDgsMzQyMTAsMzQyMTMsMzQyMTUsMzQyMjgsMzQyMzAsMzQyMzEsMzQyMzIsMzQyMzYsMzQyMzcsMzQyMzgsMzQyMzksMzQyNDIsMzQyNDcsMzQyNTAsMzQyNTEsMzQyNTQsMzQyMjEs''@;'; + put 'put ''MzQyNjQsMzQyNjYsMzQyNzEsMzQyNzIsMzQyNzgsMzQyODAsMzQyODUsMzQyOTEsMzQyOTQsMzQzMDAsMzQzMDMsMzQzMDQsMzQzMDgsMzQzMDksMzQzMTcsMzQzMTgsMzQzMjAsMzQzMjEsMzQzMjIsMzQzMjgsMzQzMjksMzQzMzEsMzQzMzQsMzQzMzcsMzQzNDMsMzQzNDUsMzQzNTgsMzQz''@;'; + put 'put ''NjAsMzQzNjIsMzQzNjQsMzQzNjUsMzQzNjgsMzQzNzAsMzQzNzQsMzQzODYsMzQzODcsMzQzOTAsMzQzOTEsMzQzOTIsMzQzOTMsMzQzOTcsMzQ0MDAsMzQ0MDEsMzQ0MDIsMzQ0MDMsMzQ0MDQsMzQ0MDksMzQ0MTIsMzQ0MTUsMzQ0MjEsMzQ0MjIsMzQ0MjMsMzQ0MjYsMzQ0NDUsMzQ0NDks''@;'; + put 'put ''MzQ0NTQsMzQ0NTYsMzQ0NTgsMzQ0NjAsMzQ0NjUsMzQ0NzAsMzQ0NzEsMzQ0NzIsMzQ0NzcsMzQ0ODEsMzQ0ODMsMzQ0ODQsMzQ0ODUsMzQ0ODcsMzQ0ODgsMzQ0ODksMzQ0OTUsMzQ0OTYsMzQ0OTcsMzQ0OTksMzQ1MDEsMzQ1MTMsMzQ1MTQsMzQ1MTcsMzQ1MTksMzQ1MjIsMzQ1MjQsMzQ1''@;'; + put 'put ''MjgsMzQ1MzEsMzQ1MzMsMzQ1MzUsMzQ0NDAsMzQ1NTQsMzQ1NTYsMzQ1NTcsMzQ1NjQsMzQ1NjUsMzQ1NjcsMzQ1NzEsMzQ1NzQsMzQ1NzUsMzQ1NzYsMzQ1NzksMzQ1ODAsMzQ1ODUsMzQ1OTAsMzQ1OTEsMzQ1OTMsMzQ1OTUsMzQ2MDAsMzQ2MDYsMzQ2MDcsMzQ2MDksMzQ2MTAsMzQ2MTcs''@;'; + put 'put ''MzQ2MTgsMzQ2MjAsMzQ2MjEsMzQ2MjIsMzQ2MjQsMzQ2MjcsMzQ2MjksMzQ2MzcsMzQ2NDgsMzQ2NTMsMzQ2NTcsMzQ2NjAsMzQ2NjEsMzQ2NzEsMzQ2NzMsMzQ2NzQsMzQ2ODMsMzQ2OTEsMzQ2OTIsMzQ2OTMsMzQ2OTQsMzQ2OTUsMzQ2OTYsMzQ2OTcsMzQ2OTksMzQ3MDAsMzQ3MDQsMzQ3''@;'; + put 'put ''MDcsMzQ3MDksMzQ3MTEsMzQ3MTIsMzQ3MTMsMzQ3MTgsMzQ3MjAsMzQ3MjMsMzQ3MjcsMzQ3MzIsMzQ3MzMsMzQ3MzQsMzQ3MzcsMzQ3NDEsMzQ3NTAsMzQ3NTEsMzQ3NTMsMzQ3NjAsMzQ3NjEsMzQ3NjIsMzQ3NjYsMzQ3NzMsMzQ3NzQsMzQ3NzcsMzQ3NzgsMzQ3ODAsMzQ3ODMsMzQ3ODYs''@;'; + put 'put ''MzQ3ODcsMzQ3ODgsMzQ3OTQsMzQ3OTUsMzQ3OTcsMzQ4MDEsMzQ4MDMsMzQ4MDgsMzQ4MTAsMzQ4MTUsMzQ4MTcsMzQ4MTksMzQ4MjIsMzQ4MjUsMzQ4MjYsMzQ4MjcsMzQ4MzIsMzQ4NDEsMzQ4MzQsMzQ4MzUsMzQ4MzYsMzQ4NDAsMzQ4NDIsMzQ4NDMsMzQ4NDQsMzQ4NDYsMzQ4NDcsMzQ4''@;'; + put 'put ''NTYsMzQ4NjEsMzQ4NjIsMzQ4NjQsMzQ4NjYsMzQ4NjksMzQ4NzQsMzQ4NzYsMzQ4ODEsMzQ4ODMsMzQ4ODUsMzQ4ODgsMzQ4ODksMzQ4OTAsMzQ4OTEsMzQ4OTQsMzQ4OTcsMzQ5MDEsMzQ5MDIsMzQ5MDQsMzQ5MDYsMzQ5MDgsMzQ5MTEsMzQ5MTIsMzQ5MTYsMzQ5MjEsMzQ5MjksMzQ5Mzcs''@;'; + put 'put ''MzQ5MzksMzQ5NDQsMzQ5NjgsMzQ5NzAsMzQ5NzEsMzQ5NzIsMzQ5NzUsMzQ5NzYsMzQ5ODQsMzQ5ODYsMzUwMDIsMzUwMDUsMzUwMDYsMzUwMDgsMzUwMTgsMzUwMTksMzUwMjAsMzUwMjEsMzUwMjIsMzUwMjUsMzUwMjYsMzUwMjcsMzUwMzUsMzUwMzgsMzUwNDcsMzUwNTUsMzUwNTYsMzUw''@;'; + put 'put ''NTcsMzUwNjEsMzUwNjMsMzUwNzMsMzUwNzgsMzUwODUsMzUwODYsMzUwODcsMzUwOTMsMzUwOTQsMzUwOTYsMzUwOTcsMzUwOTgsMzUxMDAsMzUxMDQsMzUxMTAsMzUxMTEsMzUxMTIsMzUxMjAsMzUxMjEsMzUxMjIsMzUxMjUsMzUxMjksMzUxMzAsMzUxMzQsMzUxMzYsMzUxMzgsMzUxNDEs''@;'; + put 'put ''MzUxNDIsMzUxNDUsMzUxNTEsMzUxNTQsMzUxNTksMzUxNjIsMzUxNjMsMzUxNjQsMzUxNjksMzUxNzAsMzUxNzEsMzUxNzksMzUxODIsMzUxODQsMzUxODcsMzUxODksMzUxOTQsMzUxOTUsMzUxOTYsMzUxOTcsMzUyMDksMzUyMTMsMzUyMTYsMzUyMjAsMzUyMjEsMzUyMjcsMzUyMjgsMzUy''@;'; + put 'put ''MzEsMzUyMzIsMzUyMzcsMzUyNDgsMzUyNTIsMzUyNTMsMzUyNTQsMzUyNTUsMzUyNjAsMzUyODQsMzUyODUsMzUyODYsMzUyODcsMzUyODgsMzUzMDEsMzUzMDUsMzUzMDcsMzUzMDksMzUzMTMsMzUzMTUsMzUzMTgsMzUzMjEsMzUzMjUsMzUzMjcsMzUzMzIsMzUzMzMsMzUzMzUsMzUzNDMs''@;'; + put 'put ''MzUzNDUsMzUzNDYsMzUzNDgsMzUzNDksMzUzNTgsMzUzNjAsMzUzNjIsMzUzNjQsMzUzNjYsMzUzNzEsMzUzNzIsMzUzNzUsMzUzODEsMzUzODMsMzUzODksMzUzOTAsMzUzOTIsMzUzOTUsMzUzOTcsMzUzOTksMzU0MDEsMzU0MDUsMzU0MDYsMzU0MTEsMzU0MTQsMzU0MTUsMzU0MTYsMzU0''@;'; + put 'put ''MjAsMzU0MjEsMzU0MjUsMzU0MjksMzU0MzEsMzU0NDUsMzU0NDYsMzU0NDcsMzU0NDksMzU0NTAsMzU0NTEsMzU0NTQsMzU0NTUsMzU0NTYsMzU0NTksMzU0NjIsMzU0NjcsMzU0NzEsMzU0NzIsMzU0NzQsMzU0NzgsMzU0NzksMzU0ODEsMzU0ODcsMzU0OTUsMzU0OTcsMzU1MDIsMzU1MDMs''@;'; + put 'put ''MzU1MDcsMzU1MTAsMzU1MTEsMzU1MTUsMzU1MTgsMzU1MjMsMzU1MjYsMzU1MjgsMzU1MjksMzU1MzAsMzU1MzcsMzU1MzksMzU1NDAsMzU1NDEsMzU1NDMsMzU1NDksMzU1NTEsMzU1NjQsMzU1NjgsMzU1NzIsMzU1NzMsMzU1NzQsMzU1ODAsMzU1ODMsMzU1ODksMzU1OTAsMzU1OTUsMzU2''@;'; + put 'put ''MDEsMzU2MTIsMzU2MTQsMzU2MTUsMzU1OTQsMzU2MjksMzU2MzIsMzU2MzksMzU2NDQsMzU2NTAsMzU2NTEsMzU2NTIsMzU2NTMsMzU2NTQsMzU2NTYsMzU2NjYsMzU2NjcsMzU2NjgsMzU2NzMsMzU2NjEsMzU2NzgsMzU2ODMsMzU2OTMsMzU3MDIsMzU3MDQsMzU3MDUsMzU3MDgsMzU3MTAs''@;'; + put 'put ''MzU3MTMsMzU3MTYsMzU3MTcsMzU3MjMsMzU3MjUsMzU3MjcsMzU3MzIsMzU3MzMsMzU3NDAsMzU3NDIsMzU3NDMsMzU4OTYsMzU4OTcsMzU5MDEsMzU5MDIsMzU5MDksMzU5MTEsMzU5MTMsMzU5MTUsMzU5MTksMzU5MjEsMzU5MjMsMzU5MjQsMzU5MjcsMzU5MjgsMzU5MzEsMzU5MzMsMzU5''@;'; + put 'put ''MjksMzU5MzksMzU5NDAsMzU5NDIsMzU5NDQsMzU5NDUsMzU5NDksMzU5NTUsMzU5NTcsMzU5NTgsMzU5NjMsMzU5NjYsMzU5NzQsMzU5NzUsMzU5NzksMzU5ODQsMzU5ODYsMzU5ODcsMzU5OTMsMzU5OTUsMzU5OTYsMzYwMDQsMzYwMjUsMzYwMjYsMzYwMzcsMzYwMzgsMzYwNDEsMzYwNDMs''@;'; + put 'put ''MzYwNDcsMzYwNTQsMzYwNTMsMzYwNTcsMzYwNjEsMzYwNjUsMzYwNzIsMzYwNzYsMzYwNzksMzYwODAsMzYwODIsMzYwODUsMzYwODcsMzYwODgsMzYwOTQsMzYwOTUsMzYwOTcsMzYwOTksMzYxMDUsMzYxMTQsMzYxMTksMzYxMjMsMzYxOTcsMzYyMDEsMzYyMDQsMzYyMDYsMzYyMjMsMzYy''@;'; + put 'put ''MjYsMzYyMjgsMzYyMzIsMzYyMzcsMzYyNDAsMzYyNDEsMzYyNDUsMzYyNTQsMzYyNTUsMzYyNTYsMzYyNjIsMzYyNjcsMzYyNjgsMzYyNzEsMzYyNzQsMzYyNzcsMzYyNzksMzYyODEsMzYyODMsMzYyODgsMzYyOTMsMzYyOTQsMzYyOTUsMzYyOTYsMzYyOTgsMzYzMDIsMzYzMDUsMzYzMDgs''@;'; + put 'put ''MzYzMDksMzYzMTEsMzYzMTMsMzYzMjQsMzYzMjUsMzYzMjcsMzYzMzIsMzYzMzYsMzYyODQsMzYzMzcsMzYzMzgsMzYzNDAsMzYzNDksMzYzNTMsMzYzNTYsMzYzNTcsMzYzNTgsMzYzNjMsMzYzNjksMzYzNzIsMzYzNzQsMzYzODQsMzYzODUsMzYzODYsMzYzODcsMzYzOTAsMzYzOTEsMzY0''@;'; + put 'put ''MDEsMzY0MDMsMzY0MDYsMzY0MDcsMzY0MDgsMzY0MDksMzY0MTMsMzY0MTYsMzY0MTcsMzY0MjcsMzY0MjksMzY0MzAsMzY0MzEsMzY0MzYsMzY0NDMsMzY0NDQsMzY0NDUsMzY0NDYsMzY0NDksMzY0NTAsMzY0NTcsMzY0NjAsMzY0NjEsMzY0NjMsMzY0NjQsMzY0NjUsMzY0NzMsMzY0NzQs''@;'; + put 'put ''MzY0NzUsMzY0ODIsMzY0ODMsMzY0ODksMzY0OTYsMzY0OTgsMzY1MDEsMzY1MDYsMzY1MDcsMzY1MDksMzY1MTAsMzY1MTQsMzY1MTksMzY1MjEsMzY1MjUsMzY1MjYsMzY1MzEsMzY1MzMsMzY1MzgsMzY1MzksMzY1NDQsMzY1NDUsMzY1NDcsMzY1NDgsMzY1NTEsMzY1NTksMzY1NjEsMzY1''@;'; + put 'put ''NjQsMzY1NzIsMzY1ODQsMzY1OTAsMzY1OTIsMzY1OTMsMzY1OTksMzY2MDEsMzY2MDIsMzY1ODksMzY2MDgsMzY2MTAsMzY2MTUsMzY2MTYsMzY2MjMsMzY2MjQsMzY2MzAsMzY2MzEsMzY2MzIsMzY2MzgsMzY2NDAsMzY2NDEsMzY2NDMsMzY2NDUsMzY2NDcsMzY2NDgsMzY2NTIsMzY2NTMs''@;'; + put 'put ''MzY2NTQsMzY2NjAsMzY2NjEsMzY2NjIsMzY2NjMsMzY2NjYsMzY2NzIsMzY2NzMsMzY2NzUsMzY2NzksMzY2ODcsMzY2ODksMzY2OTAsMzY2OTEsMzY2OTIsMzY2OTMsMzY2OTYsMzY3MDEsMzY3MDIsMzY3MDksMzY3NjUsMzY3NjgsMzY3NjksMzY3NzIsMzY3NzMsMzY3NzQsMzY3ODksMzY3''@;'; + put 'put ''OTAsMzY3OTIsMzY3OTgsMzY4MDAsMzY4MDEsMzY4MDYsMzY4MTAsMzY4MTEsMzY4MTMsMzY4MTYsMzY4MTgsMzY4MTksMzY4MjEsMzY4MzIsMzY4MzUsMzY4MzYsMzY4NDAsMzY4NDYsMzY4NDksMzY4NTMsMzY4NTQsMzY4NTksMzY4NjIsMzY4NjYsMzY4NjgsMzY4NzIsMzY4NzYsMzY4ODgs''@;'; + put 'put ''MzY4OTEsMzY5MDQsMzY5MDUsMzY5MTEsMzY5MDYsMzY5MDgsMzY5MDksMzY5MTUsMzY5MTYsMzY5MTksMzY5MjcsMzY5MzEsMzY5MzIsMzY5NDAsMzY5NTUsMzY5NTcsMzY5NjIsMzY5NjYsMzY5NjcsMzY5NzIsMzY5NzYsMzY5ODAsMzY5ODUsMzY5OTcsMzdlMywzNzAwMywzNzAwNCwzNzAw''@;'; + put 'put ''NiwzNzAwOCwzNzAxMywzNzAxNSwzNzAxNiwzNzAxNywzNzAxOSwzNzAyNCwzNzAyNSwzNzAyNiwzNzAyOSwzNzA0MCwzNzA0MiwzNzA0MywzNzA0NCwzNzA0NiwzNzA1MywzNzA2OCwzNzA1NCwzNzA1OSwzNzA2MCwzNzA2MSwzNzA2MywzNzA2NCwzNzA3NywzNzA3OSwzNzA4MCwzNzA4MSwz''@;'; + put 'put ''NzA4NCwzNzA4NSwzNzA4NywzNzA5MywzNzA3NCwzNzExMCwzNzA5OSwzNzEwMywzNzEwNCwzNzEwOCwzNzExOCwzNzExOSwzNzEyMCwzNzEyNCwzNzEyNSwzNzEyNiwzNzEyOCwzNzEzMywzNzEzNiwzNzE0MCwzNzE0MiwzNzE0MywzNzE0NCwzNzE0NiwzNzE0OCwzNzE1MCwzNzE1MiwzNzE1''@;'; + put 'put ''NywzNzE1NCwzNzE1NSwzNzE1OSwzNzE2MSwzNzE2NiwzNzE2NywzNzE2OSwzNzE3MiwzNzE3NCwzNzE3NSwzNzE3NywzNzE3OCwzNzE4MCwzNzE4MSwzNzE4NywzNzE5MSwzNzE5MiwzNzE5OSwzNzIwMywzNzIwNywzNzIwOSwzNzIxMCwzNzIxMSwzNzIxNywzNzIyMCwzNzIyMywzNzIyOSwz''@;'; + put 'put ''NzIzNiwzNzI0MSwzNzI0MiwzNzI0MywzNzI0OSwzNzI1MSwzNzI1MywzNzI1NCwzNzI1OCwzNzI2MiwzNzI2NSwzNzI2NywzNzI2OCwzNzI2OSwzNzI3MiwzNzI3OCwzNzI4MSwzNzI4NiwzNzI4OCwzNzI5MiwzNzI5MywzNzI5NCwzNzI5NiwzNzI5NywzNzI5OCwzNzI5OSwzNzMwMiwzNzMw''@;'; + put 'put ''NywzNzMwOCwzNzMwOSwzNzMxMSwzNzMxNCwzNzMxNSwzNzMxNywzNzMzMSwzNzMzMiwzNzMzNSwzNzMzNywzNzMzOCwzNzM0MiwzNzM0OCwzNzM0OSwzNzM1MywzNzM1NCwzNzM1NiwzNzM1NywzNzM1OCwzNzM1OSwzNzM2MCwzNzM2MSwzNzM2NywzNzM2OSwzNzM3MSwzNzM3MywzNzM3Niwz''@;'; + put 'put ''NzM3NywzNzM4MCwzNzM4MSwzNzM4MiwzNzM4MywzNzM4NSwzNzM4NiwzNzM4OCwzNzM5MiwzNzM5NCwzNzM5NSwzNzM5OCwzNzQwMCwzNzQwNCwzNzQwNSwzNzQxMSwzNzQxMiwzNzQxMywzNzQxNCwzNzQxNiwzNzQyMiwzNzQyMywzNzQyNCwzNzQyNywzNzQyOSwzNzQzMCwzNzQzMiwzNzQz''@;'; + put 'put ''MywzNzQzNCwzNzQzNiwzNzQzOCwzNzQ0MCwzNzQ0MiwzNzQ0MywzNzQ0NiwzNzQ0NywzNzQ1MCwzNzQ1MywzNzQ1NCwzNzQ1NSwzNzQ1NywzNzQ2NCwzNzQ2NSwzNzQ2OCwzNzQ2OSwzNzQ3MiwzNzQ3MywzNzQ3NywzNzQ3OSwzNzQ4MCwzNzQ4MSwzNzQ4NiwzNzQ4NywzNzQ4OCwzNzQ5Mywz''@;'; + put 'put ''NzQ5NCwzNzQ5NSwzNzQ5NiwzNzQ5NywzNzQ5OSwzNzUwMCwzNzUwMSwzNzUwMywzNzUxMiwzNzUxMywzNzUxNCwzNzUxNywzNzUxOCwzNzUyMiwzNzUyNywzNzUyOSwzNzUzNSwzNzUzNiwzNzU0MCwzNzU0MSwzNzU0MywzNzU0NCwzNzU0NywzNzU1MSwzNzU1NCwzNzU1OCwzNzU2MCwzNzU2''@;'; + put 'put ''MiwzNzU2MywzNzU2NCwzNzU2NSwzNzU2NywzNzU2OCwzNzU2OSwzNzU3MCwzNzU3MSwzNzU3MywzNzU3NCwzNzU3NSwzNzU3NiwzNzU3OSwzNzU4MCwzNzU4MSwzNzU4MiwzNzU4NCwzNzU4NywzNzU4OSwzNzU5MSwzNzU5MiwzNzU5MywzNzU5NiwzNzU5NywzNzU5OSwzNzYwMCwzNzYwMSwz''@;'; + put 'put ''NzYwMywzNzYwNSwzNzYwNywzNzYwOCwzNzYxMiwzNzYxNCwzNzYxNiwzNzYyNSwzNzYyNywzNzYzMSwzNzYzMiwzNzYzNCwzNzY0MCwzNzY0NSwzNzY0OSwzNzY1MiwzNzY1MywzNzY2MCwzNzY2MSwzNzY2MiwzNzY2MywzNzY2NSwzNzY2OCwzNzY2OSwzNzY3MSwzNzY3MywzNzY3NCwzNzY4''@;'; + put 'put ''MywzNzY4NCwzNzY4NiwzNzY4NywzNzcwMywzNzcwNCwzNzcwNSwzNzcxMiwzNzcxMywzNzcxNCwzNzcxNywzNzcxOSwzNzcyMCwzNzcyMiwzNzcyNiwzNzczMiwzNzczMywzNzczNSwzNzczNywzNzczOCwzNzc0MSwzNzc0MywzNzc0NCwzNzc0NSwzNzc0NywzNzc0OCwzNzc1MCwzNzc1NCwz''@;'; + put 'put ''Nzc1NywzNzc1OSwzNzc2MCwzNzc2MSwzNzc2MiwzNzc2OCwzNzc3MCwzNzc3MSwzNzc3MywzNzc3NSwzNzc3OCwzNzc4MSwzNzc4NCwzNzc4NywzNzc5MCwzNzc5MywzNzc5NSwzNzc5NiwzNzc5OCwzNzgwMCwzNzgwMywzNzgxMiwzNzgxMywzNzgxNCwzNzgxOCwzNzgwMSwzNzgyNSwzNzgy''@;'; + put 'put ''OCwzNzgyOSwzNzgzMCwzNzgzMSwzNzgzMywzNzgzNCwzNzgzNSwzNzgzNiwzNzgzNywzNzg0MywzNzg0OSwzNzg1MiwzNzg1NCwzNzg1NSwzNzg1OCwzNzg2MiwzNzg2MywzNzg4MSwzNzg3OSwzNzg4MCwzNzg4MiwzNzg4MywzNzg4NSwzNzg4OSwzNzg5MCwzNzg5MiwzNzg5NiwzNzg5Nywz''@;'; + put 'put ''NzkwMSwzNzkwMiwzNzkwMywzNzkwOSwzNzkxMCwzNzkxMSwzNzkxOSwzNzkzNCwzNzkzNSwzNzkzNywzNzkzOCwzNzkzOSwzNzk0MCwzNzk0NywzNzk1MSwzNzk0OSwzNzk1NSwzNzk1NywzNzk2MCwzNzk2MiwzNzk2NCwzNzk3MywzNzk3NywzNzk4MCwzNzk4MywzNzk4NSwzNzk4NywzNzk5''@;'; + put 'put ''MiwzNzk5NSwzNzk5NywzNzk5OCwzNzk5OSwzODAwMSwzODAwMiwzODAyMCwzODAxOSwzODI2NCwzODI2NSwzODI3MCwzODI3NiwzODI4MCwzODI4NCwzODI4NSwzODI4NiwzODMwMSwzODMwMiwzODMwMywzODMwNSwzODMxMCwzODMxMywzODMxNSwzODMxNiwzODMyNCwzODMyNiwzODMzMCwz''@;'; + put 'put ''ODMzMywzODMzNSwzODM0MiwzODM0NCwzODM0NSwzODM0NywzODM1MiwzODM1MywzODM1NCwzODM1NSwzODM2MSwzODM2MiwzODM2NSwzODM2NiwzODM2NywzODM2OCwzODM3MiwzODM3NCwzODQyOSwzODQzMCwzODQzNCwzODQzNiwzODQzNywzODQzOCwzODQ0NCwzODQ0OSwzODQ1MSwzODQ1''@;'; + put 'put ''NSwzODQ1NiwzODQ1NywzODQ1OCwzODQ2MCwzODQ2MSwzODQ2NSwzODQ4MiwzODQ4NCwzODQ4NiwzODQ4NywzODQ4OCwzODQ5NywzODUxMCwzODUxNiwzODUyMywzODUyNCwzODUyNiwzODUyNywzODUyOSwzODUzMCwzODUzMSwzODUzMiwzODUzNywzODU0NSwzODU1MCwzODU1NCwzODU1Nywz''@;'; + put 'put ''ODU1OSwzODU2NCwzODU2NSwzODU2NiwzODU2OSwzODU3NCwzODU3NSwzODU3OSwzODU4NiwzODYwMiwzODYxMCwyMzk4NiwzODYxNiwzODYxOCwzODYyMSwzODYyMiwzODYyMywzODYzMywzODYzOSwzODY0MSwzODY1MCwzODY1OCwzODY1OSwzODY2MSwzODY2NSwzODY4MiwzODY4MywzODY4''@;'; + put 'put ''NSwzODY4OSwzODY5MCwzODY5MSwzODY5NiwzODcwNSwzODcwNywzODcyMSwzODcyMywzODczMCwzODczNCwzODczNSwzODc0MSwzODc0MywzODc0NCwzODc0NiwzODc0NywzODc1NSwzODc1OSwzODc2MiwzODc2NiwzODc3MSwzODc3NCwzODc3NSwzODc3NiwzODc3OSwzODc4MSwzODc4Mywz''@;'; + put 'put ''ODc4NCwzODc5MywzODgwNSwzODgwNiwzODgwNywzODgwOSwzODgxMCwzODgxNCwzODgxNSwzODgxOCwzODgyOCwzODgzMCwzODgzMywzODgzNCwzODgzNywzODgzOCwzODg0MCwzODg0MSwzODg0MiwzODg0NCwzODg0NiwzODg0NywzODg0OSwzODg1MiwzODg1MywzODg1NSwzODg1NywzODg1''@;'; + put 'put ''OCwzODg2MCwzODg2MSwzODg2MiwzODg2NCwzODg2NSwzODg2OCwzODg3MSwzODg3MiwzODg3MywzODg3NywzODg3OCwzODg4MCwzODg3NSwzODg4MSwzODg4NCwzODg5NSwzODg5NywzODkwMCwzODkwMywzODkwNCwzODkwNiwzODkxOSwzODkyMiwzODkzNywzODkyNSwzODkyNiwzODkzMiwz''@;'; + put 'put ''ODkzNCwzODk0MCwzODk0MiwzODk0NCwzODk0NywzODk1MCwzODk1NSwzODk1OCwzODk1OSwzODk2MCwzODk2MiwzODk2MywzODk2NSwzODk0OSwzODk3NCwzODk4MCwzODk4MywzODk4NiwzODk5MywzODk5NCwzODk5NSwzODk5OCwzODk5OSwzOTAwMSwzOTAwMiwzOTAxMCwzOTAxMSwzOTAx''@;'; + put 'put ''MywzOTAxNCwzOTAxOCwzOTAyMCwzOTA4MywzOTA4NSwzOTA4NiwzOTA4OCwzOTA5MiwzOTA5NSwzOTA5NiwzOTA5OCwzOTA5OSwzOTEwMywzOTEwNiwzOTEwOSwzOTExMiwzOTExNiwzOTEzNywzOTEzOSwzOTE0MSwzOTE0MiwzOTE0MywzOTE0NiwzOTE1NSwzOTE1OCwzOTE3MCwzOTE3NSwz''@;'; + put 'put ''OTE3NiwzOTE4NSwzOTE4OSwzOTE5MCwzOTE5MSwzOTE5NCwzOTE5NSwzOTE5NiwzOTE5OSwzOTIwMiwzOTIwNiwzOTIwNywzOTIxMSwzOTIxNywzOTIxOCwzOTIxOSwzOTIyMCwzOTIyMSwzOTIyNSwzOTIyNiwzOTIyNywzOTIyOCwzOTIzMiwzOTIzMywzOTIzOCwzOTIzOSwzOTI0MCwzOTI0''@;'; + put 'put ''NSwzOTI0NiwzOTI1MiwzOTI1NiwzOTI1NywzOTI1OSwzOTI2MCwzOTI2MiwzOTI2MywzOTI2NCwzOTMyMywzOTMyNSwzOTMyNywzOTMzNCwzOTM0NCwzOTM0NSwzOTM0NiwzOTM0OSwzOTM1MywzOTM1NCwzOTM1NywzOTM1OSwzOTM2MywzOTM2OSwzOTM3OSwzOTM4MCwzOTM4NSwzOTM4Niwz''@;'; + put 'put ''OTM4OCwzOTM5MCwzOTM5OSwzOTQwMiwzOTQwMywzOTQwNCwzOTQwOCwzOTQxMiwzOTQxMywzOTQxNywzOTQyMSwzOTQyMiwzOTQyNiwzOTQyNywzOTQyOCwzOTQzNSwzOTQzNiwzOTQ0MCwzOTQ0MSwzOTQ0NiwzOTQ1NCwzOTQ1NiwzOTQ1OCwzOTQ1OSwzOTQ2MCwzOTQ2MywzOTQ2OSwzOTQ3''@;'; + put 'put ''MCwzOTQ3NSwzOTQ3NywzOTQ3OCwzOTQ4MCwzOTQ5NSwzOTQ4OSwzOTQ5MiwzOTQ5OCwzOTQ5OSwzOTUwMCwzOTUwMiwzOTUwNSwzOTUwOCwzOTUxMCwzOTUxNywzOTU5NCwzOTU5NiwzOTU5OCwzOTU5OSwzOTYwMiwzOTYwNCwzOTYwNSwzOTYwNiwzOTYwOSwzOTYxMSwzOTYxNCwzOTYxNSwz''@;'; + put 'put ''OTYxNywzOTYxOSwzOTYyMiwzOTYyNCwzOTYzMCwzOTYzMiwzOTYzNCwzOTYzNywzOTYzOCwzOTYzOSwzOTY0MywzOTY0NCwzOTY0OCwzOTY1MiwzOTY1MywzOTY1NSwzOTY1NywzOTY2MCwzOTY2NiwzOTY2NywzOTY2OSwzOTY3MywzOTY3NCwzOTY3NywzOTY3OSwzOTY4MCwzOTY4MSwzOTY4''@;'; + put 'put ''MiwzOTY4MywzOTY4NCwzOTY4NSwzOTY4OCwzOTY4OSwzOTY5MSwzOTY5MiwzOTY5MywzOTY5NCwzOTY5NiwzOTY5OCwzOTcwMiwzOTcwNSwzOTcwNywzOTcwOCwzOTcxMiwzOTcxOCwzOTcyMywzOTcyNSwzOTczMSwzOTczMiwzOTczMywzOTczNSwzOTczNywzOTczOCwzOTc0MSwzOTc1Miwz''@;'; + put 'put ''OTc1NSwzOTc1NiwzOTc2NSwzOTc2NiwzOTc2NywzOTc3MSwzOTc3NCwzOTc3NywzOTc3OSwzOTc4MSwzOTc4MiwzOTc4NCwzOTc4NiwzOTc4NywzOTc4OCwzOTc4OSwzOTc5MCwzOTc5NSwzOTc5NywzOTc5OSwzOTgwMCwzOTgwMSwzOTgwNywzOTgwOCwzOTgxMiwzOTgxMywzOTgxNCwzOTgx''@;'; + put 'put ''NSwzOTgxNywzOTgxOCwzOTgxOSwzOTgyMSwzOTgyMywzOTgyNCwzOTgyOCwzOTgzNCwzOTgzNywzOTgzOCwzOTg0NiwzOTg0NywzOTg0OSwzOTg1MiwzOTg1NiwzOTg1NywzOTg1OCwzOTg2MywzOTg2NCwzOTg2NywzOTg2OCwzOTg3MCwzOTg3MSwzOTg3MywzOTg3OSwzOTg4MCwzOTg4Niwz''@;'; + put 'put ''OTg4OCwzOTg5NSwzOTg5NiwzOTkwMSwzOTkwMywzOTkwOSwzOTkxMSwzOTkxNCwzOTkxNSwzOTkxOSwzOTkyMywzOTkyNywzOTkyOCwzOTkyOSwzOTkzMCwzOTkzMywzOTkzNSwzOTkzNiwzOTkzOCwzOTk0NywzOTk1MSwzOTk1MywzOTk1OCwzOTk2MCwzOTk2MSwzOTk2MiwzOTk2NCwzOTk2''@;'; + put 'put ''NiwzOTk3MCwzOTk3MSwzOTk3NCwzOTk3NSwzOTk3NiwzOTk3NywzOTk3OCwzOTk4NSwzOTk4OSwzOTk5MCwzOTk5MSwzOTk5Nyw0MDAwMSw0MDAwMyw0MDAwNCw0MDAwNSw0MDAwOSw0MDAxMCw0MDAxNCw0MDAxNSw0MDAxNiw0MDAxOSw0MDAyMCw0MDAyMiw0MDAyNCw0MDAyNyw0MDAyOSw0''@;'; + put 'put ''MDAzMCw0MDAzMSw0MDAzNSw0MDA0MSw0MDA0Miw0MDAyOCw0MDA0Myw0MDA0MCw0MDA0Niw0MDA0OCw0MDA1MCw0MDA1Myw0MDA1NSw0MDA1OSw0MDE2Niw0MDE3OCw0MDE4Myw0MDE4NSw0MDIwMyw0MDE5NCw0MDIwOSw0MDIxNSw0MDIxNiw0MDIyMCw0MDIyMSw0MDIyMiw0MDIzOSw0MDI0''@;'; + put 'put ''MCw0MDI0Miw0MDI0Myw0MDI0NCw0MDI1MCw0MDI1Miw0MDI2MSw0MDI1Myw0MDI1OCw0MDI1OSw0MDI2Myw0MDI2Niw0MDI3NSw0MDI3Niw0MDI4Nyw0MDI5MSw0MDI5MCw0MDI5Myw0MDI5Nyw0MDI5OCw0MDI5OSw0MDMwNCw0MDMxMCw0MDMxMSw0MDMxNSw0MDMxNiw0MDMxOCw0MDMyMyw0''@;'; + put 'put ''MDMyNCw0MDMyNiw0MDMzMCw0MDMzMyw0MDMzNCw0MDMzOCw0MDMzOSw0MDM0MSw0MDM0Miw0MDM0Myw0MDM0NCw0MDM1Myw0MDM2Miw0MDM2NCw0MDM2Niw0MDM2OSw0MDM3Myw0MDM3Nyw0MDM4MCw0MDM4Myw0MDM4Nyw0MDM5MSw0MDM5Myw0MDM5NCw0MDQwNCw0MDQwNSw0MDQwNiw0MDQw''@;'; + put 'put ''Nyw0MDQxMCw0MDQxNCw0MDQxNSw0MDQxNiw0MDQyMSw0MDQyMyw0MDQyNSw0MDQyNyw0MDQzMCw0MDQzMiw0MDQzNSw0MDQzNiw0MDQ0Niw0MDQ1OCw0MDQ1MCw0MDQ1NSw0MDQ2Miw0MDQ2NCw0MDQ2NSw0MDQ2Niw0MDQ2OSw0MDQ3MCw0MDQ3Myw0MDQ3Niw0MDQ3Nyw0MDU3MCw0MDU3MSw0''@;'; + put 'put ''MDU3Miw0MDU3Niw0MDU3OCw0MDU3OSw0MDU4MCw0MDU4MSw0MDU4Myw0MDU5MCw0MDU5MSw0MDU5OCw0MDYwMCw0MDYwMyw0MDYwNiw0MDYxMiw0MDYxNiw0MDYyMCw0MDYyMiw0MDYyMyw0MDYyNCw0MDYyNyw0MDYyOCw0MDYyOSw0MDY0Niw0MDY0OCw0MDY1MSw0MDY2MSw0MDY3MSw0MDY3''@;'; + put 'put ''Niw0MDY3OSw0MDY4NCw0MDY4NSw0MDY4Niw0MDY4OCw0MDY4OSw0MDY5MCw0MDY5Myw0MDY5Niw0MDcwMyw0MDcwNiw0MDcwNyw0MDcxMyw0MDcxOSw0MDcyMCw0MDcyMSw0MDcyMiw0MDcyNCw0MDcyNiw0MDcyNyw0MDcyOSw0MDczMCw0MDczMSw0MDczNSw0MDczOCw0MDc0Miw0MDc0Niw0''@;'; + put 'put ''MDc0Nyw0MDc1MSw0MDc1Myw0MDc1NCw0MDc1Niw0MDc1OSw0MDc2MSw0MDc2Miw0MDc2NCw0MDc2NSw0MDc2Nyw0MDc2OSw0MDc3MSw0MDc3Miw0MDc3Myw0MDc3NCw0MDc3NSw0MDc4Nyw0MDc4OSw0MDc5MCw0MDc5MSw0MDc5Miw0MDc5NCw0MDc5Nyw0MDc5OCw0MDgwOCw0MDgwOSw0MDgx''@;'; + put 'put ''Myw0MDgxNCw0MDgxNSw0MDgxNiw0MDgxNyw0MDgxOSw0MDgyMSw0MDgyNiw0MDgyOSw0MDg0Nyw0MDg0OCw0MDg0OSw0MDg1MCw0MDg1Miw0MDg1NCw0MDg1NSw0MDg2Miw0MDg2NSw0MDg2Niw0MDg2Nyw0MDg2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; + put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGxdLGli''@;'; + put 'put ''bTg2NjpbMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcx''@;'; + put 'put ''LDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsOTYxNyw5NjE4LDk2MTksOTQ3NCw5NTA4LDk1NjksOTU3MCw5NTU4LDk1NTcsOTU3MSw5NTUzLDk1NTksOTU2NSw5NTY0LDk1NjMsOTQ4OCw5NDky''@;'; + put 'put ''LDk1MjQsOTUxNiw5NTAwLDk0NzIsOTUzMiw5NTY2LDk1NjcsOTU2Miw5NTU2LDk1NzcsOTU3NCw5NTY4LDk1NTIsOTU4MCw5NTc1LDk1NzYsOTU3Miw5NTczLDk1NjEsOTU2MCw5NTU0LDk1NTUsOTU3OSw5NTc4LDk0OTYsOTQ4NCw5NjA4LDk2MDQsOTYxMiw5NjE2LDk2MDAsMTA4OCwxMDg5''@;'; + put 'put ''LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMywxMDI1LDExMDUsMTAyOCwxMTA4LDEwMzEsMTExMSwxMDM4LDExMTgsMTc2LDg3MjksMTgzLDg3MzAsODQ3MCwxNjQsOTYzMiwxNjBdLCJpc28tODg1OS0yIjpbMTI4''@;'; + put 'put ''LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsMjYwLDcyOCwzMjEsMTY0LDMxNywzNDYsMTY3LDE2OCwzNTIs''@;'; + put 'put ''MzUwLDM1NiwzNzcsMTczLDM4MSwzNzksMTc2LDI2MSw3MzEsMzIyLDE4MCwzMTgsMzQ3LDcxMSwxODQsMzUzLDM1MSwzNTcsMzc4LDczMywzODIsMzgwLDM0MCwxOTMsMTk0LDI1OCwxOTYsMzEzLDI2MiwxOTksMjY4LDIwMSwyODAsMjAzLDI4MiwyMDUsMjA2LDI3MCwyNzIsMzIzLDMyNywy''@;'; + put 'put ''MTEsMjEyLDMzNiwyMTQsMjE1LDM0NCwzNjYsMjE4LDM2OCwyMjAsMjIxLDM1NCwyMjMsMzQxLDIyNSwyMjYsMjU5LDIyOCwzMTQsMjYzLDIzMSwyNjksMjMzLDI4MSwyMzUsMjgzLDIzNywyMzgsMjcxLDI3MywzMjQsMzI4LDI0MywyNDQsMzM3LDI0NiwyNDcsMzQ1LDM2NywyNTAsMzY5LDI1''@;'; + put 'put ''MiwyNTMsMzU1LDcyOV0sImlzby04ODU5LTMiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwyOTQs''@;'; + put 'put ''NzI4LDE2MywxNjQsbnVsbCwyOTIsMTY3LDE2OCwzMDQsMzUwLDI4NiwzMDgsMTczLG51bGwsMzc5LDE3NiwyOTUsMTc4LDE3OSwxODAsMTgxLDI5MywxODMsMTg0LDMwNSwzNTEsMjg3LDMwOSwxODksbnVsbCwzODAsMTkyLDE5MywxOTQsbnVsbCwxOTYsMjY2LDI2NCwxOTksMjAwLDIwMSwy''@;'; + put 'put ''MDIsMjAzLDIwNCwyMDUsMjA2LDIwNyxudWxsLDIwOSwyMTAsMjExLDIxMiwyODgsMjE0LDIxNSwyODQsMjE3LDIxOCwyMTksMjIwLDM2NCwzNDgsMjIzLDIyNCwyMjUsMjI2LG51bGwsMjI4LDI2NywyNjUsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksbnVsbCwyNDEsMjQy''@;'; + put 'put ''LDI0MywyNDQsMjg5LDI0NiwyNDcsMjg1LDI0OSwyNTAsMjUxLDI1MiwzNjUsMzQ5LDcyOV0sImlzby04ODU5LTQiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwx''@;'; + put 'put ''NTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwyNjAsMzEyLDM0MiwxNjQsMjk2LDMxNSwxNjcsMTY4LDM1MiwyNzQsMjkwLDM1OCwxNzMsMzgxLDE3NSwxNzYsMjYxLDczMSwzNDMsMTgwLDI5NywzMTYsNzExLDE4NCwzNTMsMjc1LDI5MSwzNTksMzMwLDM4MiwzMzEsMjU2LDE5''@;'; + put 'put ''MywxOTQsMTk1LDE5NiwxOTcsMTk4LDMwMiwyNjgsMjAxLDI4MCwyMDMsMjc4LDIwNSwyMDYsMjk4LDI3MiwzMjUsMzMyLDMxMCwyMTIsMjEzLDIxNCwyMTUsMjE2LDM3MCwyMTgsMjE5LDIyMCwzNjAsMzYyLDIyMywyNTcsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMzAzLDI2OSwyMzMsMjgx''@;'; + put 'put ''LDIzNSwyNzksMjM3LDIzOCwyOTksMjczLDMyNiwzMzMsMzExLDI0NCwyNDUsMjQ2LDI0NywyNDgsMzcxLDI1MCwyNTEsMjUyLDM2MSwzNjMsNzI5XSwiaXNvLTg4NTktNSI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0Mywx''@;'; + put 'put ''NDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDEwMjUsMTAyNiwxMDI3LDEwMjgsMTAyOSwxMDMwLDEwMzEsMTAzMiwxMDMzLDEwMzQsMTAzNSwxMDM2LDE3MywxMDM4LDEwMzksMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0''@;'; + put 'put ''LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3''@;'; + put 'put ''LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMyw4NDcwLDExMDUsMTEwNiwxMTA3LDExMDgsMTEwOSwxMTEw''@;'; + put 'put ''LDExMTEsMTExMiwxMTEzLDExMTQsMTExNSwxMTE2LDE2NywxMTE4LDExMTldLCJpc28tODg1OS02IjpbMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1Mywx''@;'; + put 'put ''NTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsbnVsbCxudWxsLG51bGwsMTY0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTU0OCwxNzMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxNTYzLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLDE1NjcsbnVsbCwxNTY5LDE1NzAsMTU3MSwxNTcyLDE1NzMsMTU3NCwxNTc1LDE1NzYsMTU3NywxNTc4LDE1NzksMTU4MCwxNTgxLDE1ODIsMTU4MywxNTg0LDE1ODUsMTU4NiwxNTg3LDE1ODgsMTU4OSwxNTkwLDE1OTEsMTU5MiwxNTkzLDE1OTQsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbCxudWxsLDE2MDAsMTYwMSwxNjAyLDE2MDMsMTYwNCwxNjA1LDE2MDYsMTYwNywxNjA4LDE2MDksMTYxMCwxNjExLDE2MTIsMTYxMywxNjE0LDE2MTUsMTYxNiwxNjE3LDE2MTgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; + put 'put ''bnVsbF0sImlzby04ODU5LTciOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCw4MjE2LDgyMTcsMTYz''@;'; + put 'put ''LDgzNjQsODM2NywxNjYsMTY3LDE2OCwxNjksODkwLDE3MSwxNzIsMTczLG51bGwsODIxMywxNzYsMTc3LDE3OCwxNzksOTAwLDkwMSw5MDIsMTgzLDkwNCw5MDUsOTA2LDE4Nyw5MDgsMTg5LDkxMCw5MTEsOTEyLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMs''@;'; + put 'put ''OTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksbnVsbCw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTM4LDkzOSw5NDAsOTQxLDk0Miw5NDMsOTQ0LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYyLDk2Myw5NjQs''@;'; + put 'put ''OTY1LDk2Niw5NjcsOTY4LDk2OSw5NzAsOTcxLDk3Miw5NzMsOTc0LG51bGxdLCJpc28tODg1OS04IjpbMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1Mywx''@;'; + put 'put ''NTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsbnVsbCwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDIxNSwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwyNDcsMTg3LDE4OCwxODksMTkwLG51bGwsbnVsbCxudWxsLG51''@;'; + put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw4MjE1LDE0ODgsMTQ4OSwxNDkwLDE0''@;'; + put 'put ''OTEsMTQ5MiwxNDkzLDE0OTQsMTQ5NSwxNDk2LDE0OTcsMTQ5OCwxNDk5LDE1MDAsMTUwMSwxNTAyLDE1MDMsMTUwNCwxNTA1LDE1MDYsMTUwNywxNTA4LDE1MDksMTUxMCwxNTExLDE1MTIsMTUxMywxNTE0LG51bGwsbnVsbCw4MjA2LDgyMDcsbnVsbF0sImlzby04ODU5LTEwIjpbMTI4LDEy''@;'; + put 'put ''OSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsMjYwLDI3NCwyOTAsMjk4LDI5NiwzMTAsMTY3LDMxNSwyNzIsMzUy''@;'; + put 'put ''LDM1OCwzODEsMTczLDM2MiwzMzAsMTc2LDI2MSwyNzUsMjkxLDI5OSwyOTcsMzExLDE4MywzMTYsMjczLDM1MywzNTksMzgyLDgyMTMsMzYzLDMzMSwyNTYsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMzAyLDI2OCwyMDEsMjgwLDIwMywyNzgsMjA1LDIwNiwyMDcsMjA4LDMyNSwzMzIsMjEx''@;'; + put 'put ''LDIxMiwyMTMsMjE0LDM2MCwyMTYsMzcwLDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDI1NywyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwzMDMsMjY5LDIzMywyODEsMjM1LDI3OSwyMzcsMjM4LDIzOSwyNDAsMzI2LDMzMywyNDMsMjQ0LDI0NSwyNDYsMzYxLDI0OCwzNzEsMjUwLDI1MSwyNTIs''@;'; + put 'put ''MjUzLDI1NCwzMTJdLCJpc28tODg1OS0xMyI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDgyMjEs''@;'; + put 'put ''MTYyLDE2MywxNjQsODIyMiwxNjYsMTY3LDIxNiwxNjksMzQyLDE3MSwxNzIsMTczLDE3NCwxOTgsMTc2LDE3NywxNzgsMTc5LDgyMjAsMTgxLDE4MiwxODMsMjQ4LDE4NSwzNDMsMTg3LDE4OCwxODksMTkwLDIzMCwyNjAsMzAyLDI1NiwyNjIsMTk2LDE5NywyODAsMjc0LDI2OCwyMDEsMzc3''@;'; + put 'put ''LDI3OCwyOTAsMzEwLDI5OCwzMTUsMzUyLDMyMywzMjUsMjExLDMzMiwyMTMsMjE0LDIxNSwzNzAsMzIxLDM0NiwzNjIsMjIwLDM3OSwzODEsMjIzLDI2MSwzMDMsMjU3LDI2MywyMjgsMjI5LDI4MSwyNzUsMjY5LDIzMywzNzgsMjc5LDI5MSwzMTEsMjk5LDMxNiwzNTMsMzI0LDMyNiwyNDMs''@;'; + put 'put ''MzMzLDI0NSwyNDYsMjQ3LDM3MSwzMjIsMzQ3LDM2MywyNTIsMzgwLDM4Miw4MjE3XSwiaXNvLTg4NTktMTQiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIs''@;'; + put 'put ''MTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCw3NjgyLDc2ODMsMTYzLDI2NiwyNjcsNzY5MCwxNjcsNzgwOCwxNjksNzgxMCw3NjkxLDc5MjIsMTczLDE3NCwzNzYsNzcxMCw3NzExLDI4OCwyODksNzc0NCw3NzQ1LDE4Miw3NzY2LDc4MDksNzc2Nyw3ODExLDc3NzYsNzkyMyw3ODEy''@;'; + put 'put ''LDc4MTMsNzc3NywxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMzcyLDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDc3ODYsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMzc0LDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwy''@;'; + put 'put ''MzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMzczLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDc3ODcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMzc1LDI1NV0sImlzby04ODU5LTE1IjpbMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwx''@;'; + put 'put ''MzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsMTYxLDE2MiwxNjMsODM2NCwxNjUsMzUyLDE2NywzNTMsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwz''@;'; + put 'put ''ODEsMTgxLDE4MiwxODMsMzgyLDE4NSwxODYsMTg3LDMzOCwzMzksMzc2LDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIy''@;'; + put 'put ''MSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTVdLCJpc28tODg1OS0xNiI6WzEyOCwxMjksMTMw''@;'; + put 'put ''LDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDI2MCwyNjEsMzIxLDgzNjQsODIyMiwzNTIsMTY3LDM1MywxNjksNTM2LDE3''@;'; + put 'put ''MSwzNzcsMTczLDM3OCwzNzksMTc2LDE3NywyNjgsMzIyLDM4MSw4MjIxLDE4MiwxODMsMzgyLDI2OSw1MzcsMTg3LDMzOCwzMzksMzc2LDM4MCwxOTIsMTkzLDE5NCwyNTgsMTk2LDI2MiwxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjcyLDMyMywyMTAsMjExLDIx''@;'; + put 'put ''MiwzMzYsMjE0LDM0NiwzNjgsMjE3LDIxOCwyMTksMjIwLDI4MCw1MzgsMjIzLDIyNCwyMjUsMjI2LDI1OSwyMjgsMjYzLDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNzMsMzI0LDI0MiwyNDMsMjQ0LDMzNywyNDYsMzQ3LDM2OSwyNDksMjUwLDI1MSwyNTIsMjgx''@;'; + put 'put ''LDUzOSwyNTVdLCJrb2k4LXIiOls5NDcyLDk0NzQsOTQ4NCw5NDg4LDk0OTIsOTQ5Niw5NTAwLDk1MDgsOTUxNiw5NTI0LDk1MzIsOTYwMCw5NjA0LDk2MDgsOTYxMiw5NjE2LDk2MTcsOTYxOCw5NjE5LDg5OTIsOTYzMiw4NzI5LDg3MzAsODc3Niw4ODA0LDg4MDUsMTYwLDg5OTMsMTc2LDE3''@;'; + put 'put ''OCwxODMsMjQ3LDk1NTIsOTU1Myw5NTU0LDExMDUsOTU1NSw5NTU2LDk1NTcsOTU1OCw5NTU5LDk1NjAsOTU2MSw5NTYyLDk1NjMsOTU2NCw5NTY1LDk1NjYsOTU2Nyw5NTY4LDk1NjksMTAyNSw5NTcwLDk1NzEsOTU3Miw5NTczLDk1NzQsOTU3NSw5NTc2LDk1NzcsOTU3OCw5NTc5LDk1ODAs''@;'; + put 'put ''MTY5LDExMDIsMTA3MiwxMDczLDEwOTQsMTA3NiwxMDc3LDEwOTIsMTA3NSwxMDkzLDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMTAzLDEwODgsMTA4OSwxMDkwLDEwOTEsMTA3OCwxMDc0LDExMDAsMTA5OSwxMDc5LDEwOTYsMTEwMSwxMDk3LDEwOTUsMTA5OCwx''@;'; + put 'put ''MDcwLDEwNDAsMTA0MSwxMDYyLDEwNDQsMTA0NSwxMDYwLDEwNDMsMTA2MSwxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA3MSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNDYsMTA0MiwxMDY4LDEwNjcsMTA0NywxMDY0LDEwNjksMTA2NSwxMDYzLDEwNjZdLCJrb2k4''@;'; + put 'put ''LXUiOls5NDcyLDk0NzQsOTQ4NCw5NDg4LDk0OTIsOTQ5Niw5NTAwLDk1MDgsOTUxNiw5NTI0LDk1MzIsOTYwMCw5NjA0LDk2MDgsOTYxMiw5NjE2LDk2MTcsOTYxOCw5NjE5LDg5OTIsOTYzMiw4NzI5LDg3MzAsODc3Niw4ODA0LDg4MDUsMTYwLDg5OTMsMTc2LDE3OCwxODMsMjQ3LDk1NTIs''@;'; + put 'put ''OTU1Myw5NTU0LDExMDUsMTEwOCw5NTU2LDExMTAsMTExMSw5NTU5LDk1NjAsOTU2MSw5NTYyLDk1NjMsMTE2OSwxMTE4LDk1NjYsOTU2Nyw5NTY4LDk1NjksMTAyNSwxMDI4LDk1NzEsMTAzMCwxMDMxLDk1NzQsOTU3NSw5NTc2LDk1NzcsOTU3OCwxMTY4LDEwMzgsMTY5LDExMDIsMTA3Miwx''@;'; + put 'put ''MDczLDEwOTQsMTA3NiwxMDc3LDEwOTIsMTA3NSwxMDkzLDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMTAzLDEwODgsMTA4OSwxMDkwLDEwOTEsMTA3OCwxMDc0LDExMDAsMTA5OSwxMDc5LDEwOTYsMTEwMSwxMDk3LDEwOTUsMTA5OCwxMDcwLDEwNDAsMTA0MSwx''@;'; + put 'put ''MDYyLDEwNDQsMTA0NSwxMDYwLDEwNDMsMTA2MSwxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA3MSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNDYsMTA0MiwxMDY4LDEwNjcsMTA0NywxMDY0LDEwNjksMTA2NSwxMDYzLDEwNjZdLG1hY2ludG9zaDpbMTk2LDE5Nywx''@;'; + put 'put ''OTksMjAxLDIwOSwyMTQsMjIwLDIyNSwyMjQsMjI2LDIyOCwyMjcsMjI5LDIzMSwyMzMsMjMyLDIzNCwyMzUsMjM3LDIzNiwyMzgsMjM5LDI0MSwyNDMsMjQyLDI0NCwyNDYsMjQ1LDI1MCwyNDksMjUxLDI1Miw4MjI0LDE3NiwxNjIsMTYzLDE2Nyw4MjI2LDE4MiwyMjMsMTc0LDE2OSw4NDgy''@;'; + put 'put ''LDE4MCwxNjgsODgwMCwxOTgsMjE2LDg3MzQsMTc3LDg4MDQsODgwNSwxNjUsMTgxLDg3MDYsODcyMSw4NzE5LDk2MCw4NzQ3LDE3MCwxODYsOTM3LDIzMCwyNDgsMTkxLDE2MSwxNzIsODczMCw0MDIsODc3Niw4NzEwLDE3MSwxODcsODIzMCwxNjAsMTkyLDE5NSwyMTMsMzM4LDMzOSw4MjEx''@;'; + put 'put ''LDgyMTIsODIyMCw4MjIxLDgyMTYsODIxNywyNDcsOTY3NCwyNTUsMzc2LDgyNjAsODM2NCw4MjQ5LDgyNTAsNjQyNTcsNjQyNTgsODIyNSwxODMsODIxOCw4MjIyLDgyNDAsMTk0LDIwMiwxOTMsMjAzLDIwMCwyMDUsMjA2LDIwNywyMDQsMjExLDIxMiw2Mzc0MywyMTAsMjE4LDIxOSwyMTcs''@;'; + put 'put ''MzA1LDcxMCw3MzIsMTc1LDcyOCw3MjksNzMwLDE4NCw3MzMsNzMxLDcxMV0sIndpbmRvd3MtODc0IjpbODM2NCwxMjksMTMwLDEzMSwxMzIsODIzMCwxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDgyMTYsODIxNyw4MjIwLDgyMjEsODIyNiw4MjExLDgyMTIs''@;'; + put 'put ''MTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsMzU4NSwzNTg2LDM1ODcsMzU4OCwzNTg5LDM1OTAsMzU5MSwzNTkyLDM1OTMsMzU5NCwzNTk1LDM1OTYsMzU5NywzNTk4LDM1OTksMzYwMCwzNjAxLDM2MDIsMzYwMywzNjA0LDM2MDUsMzYwNiwzNjA3LDM2MDgsMzYwOSwzNjEw''@;'; + put 'put ''LDM2MTEsMzYxMiwzNjEzLDM2MTQsMzYxNSwzNjE2LDM2MTcsMzYxOCwzNjE5LDM2MjAsMzYyMSwzNjIyLDM2MjMsMzYyNCwzNjI1LDM2MjYsMzYyNywzNjI4LDM2MjksMzYzMCwzNjMxLDM2MzIsMzYzMywzNjM0LDM2MzUsMzYzNiwzNjM3LDM2MzgsMzYzOSwzNjQwLDM2NDEsMzY0MixudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsLDM2NDcsMzY0OCwzNjQ5LDM2NTAsMzY1MSwzNjUyLDM2NTMsMzY1NCwzNjU1LDM2NTYsMzY1NywzNjU4LDM2NTksMzY2MCwzNjYxLDM2NjIsMzY2MywzNjY0LDM2NjUsMzY2NiwzNjY3LDM2NjgsMzY2OSwzNjcwLDM2NzEsMzY3MiwzNjczLDM2NzQsMzY3NSxudWxs''@;'; + put 'put ''LG51bGwsbnVsbCxudWxsXSwid2luZG93cy0xMjUwIjpbODM2NCwxMjksODIxOCwxMzEsODIyMiw4MjMwLDgyMjQsODIyNSwxMzYsODI0MCwzNTIsODI0OSwzNDYsMzU2LDM4MSwzNzcsMTQ0LDgyMTYsODIxNyw4MjIwLDgyMjEsODIyNiw4MjExLDgyMTIsMTUyLDg0ODIsMzUzLDgyNTAsMzQ3''@;'; + put 'put ''LDM1NywzODIsMzc4LDE2MCw3MTEsNzI4LDMyMSwxNjQsMjYwLDE2NiwxNjcsMTY4LDE2OSwzNTAsMTcxLDE3MiwxNzMsMTc0LDM3OSwxNzYsMTc3LDczMSwzMjIsMTgwLDE4MSwxODIsMTgzLDE4NCwyNjEsMzUxLDE4NywzMTcsNzMzLDMxOCwzODAsMzQwLDE5MywxOTQsMjU4LDE5NiwzMTMs''@;'; + put 'put ''MjYyLDE5OSwyNjgsMjAxLDI4MCwyMDMsMjgyLDIwNSwyMDYsMjcwLDI3MiwzMjMsMzI3LDIxMSwyMTIsMzM2LDIxNCwyMTUsMzQ0LDM2NiwyMTgsMzY4LDIyMCwyMjEsMzU0LDIyMywzNDEsMjI1LDIyNiwyNTksMjI4LDMxNCwyNjMsMjMxLDI2OSwyMzMsMjgxLDIzNSwyODMsMjM3LDIzOCwy''@;'; + put 'put ''NzEsMjczLDMyNCwzMjgsMjQzLDI0NCwzMzcsMjQ2LDI0NywzNDUsMzY3LDI1MCwzNjksMjUyLDI1MywzNTUsNzI5XSwid2luZG93cy0xMjUxIjpbMTAyNiwxMDI3LDgyMTgsMTEwNyw4MjIyLDgyMzAsODIyNCw4MjI1LDgzNjQsODI0MCwxMDMzLDgyNDksMTAzNCwxMDM2LDEwMzUsMTAzOSwx''@;'; + put 'put ''MTA2LDgyMTYsODIxNyw4MjIwLDgyMjEsODIyNiw4MjExLDgyMTIsMTUyLDg0ODIsMTExMyw4MjUwLDExMTQsMTExNiwxMTE1LDExMTksMTYwLDEwMzgsMTExOCwxMDMyLDE2NCwxMTY4LDE2NiwxNjcsMTAyNSwxNjksMTAyOCwxNzEsMTcyLDE3MywxNzQsMTAzMSwxNzYsMTc3LDEwMzAsMTEx''@;'; + put 'put ''MCwxMTY5LDE4MSwxODIsMTgzLDExMDUsODQ3MCwxMTA4LDE4NywxMTEyLDEwMjksMTEwOSwxMTExLDEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEw''@;'; + put 'put ''NjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEw''@;'; + put 'put ''OTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDExMDNdLCJ3aW5kb3dzLTEyNTIiOls4MzY0LDEyOSw4MjE4LDQwMiw4MjIyLDgyMzAsODIyNCw4MjI1LDcxMCw4MjQwLDM1Miw4MjQ5LDMzOCwxNDEsMzgxLDE0MywxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2''@;'; + put 'put ''LDgyMTEsODIxMiw3MzIsODQ4MiwzNTMsODI1MCwzMzksMTU3LDM4MiwzNzYsMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODks''@;'; + put 'put ''MTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwy''@;'; + put 'put ''MzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTVdLCJ3aW5kb3dzLTEyNTMiOls4MzY0LDEyOSw4MjE4LDQwMiw4MjIyLDgyMzAsODIyNCw4MjI1LDEzNiw4MjQwLDEz''@;'; + put 'put ''OCw4MjQ5LDE0MCwxNDEsMTQyLDE0MywxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNTIsODQ4MiwxNTQsODI1MCwxNTYsMTU3LDE1OCwxNTksMTYwLDkwMSw5MDIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LG51bGwsMTcxLDE3MiwxNzMsMTc0LDgyMTMsMTc2''@;'; + put 'put ''LDE3NywxNzgsMTc5LDkwMCwxODEsMTgyLDE4Myw5MDQsOTA1LDkwNiwxODcsOTA4LDE4OSw5MTAsOTExLDkxMiw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LG51bGwsOTMxLDkzMiw5MzMsOTM0LDkzNSw5MzYsOTM3''@;'; + put 'put ''LDkzOCw5MzksOTQwLDk0MSw5NDIsOTQzLDk0NCw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Miw5NjMsOTY0LDk2NSw5NjYsOTY3LDk2OCw5NjksOTcwLDk3MSw5NzIsOTczLDk3NCxudWxsXSwid2luZG93cy0x''@;'; + put 'put ''MjU0IjpbODM2NCwxMjksODIxOCw0MDIsODIyMiw4MjMwLDgyMjQsODIyNSw3MTAsODI0MCwzNTIsODI0OSwzMzgsMTQxLDE0MiwxNDMsMTQ0LDgyMTYsODIxNyw4MjIwLDgyMjEsODIyNiw4MjExLDgyMTIsNzMyLDg0ODIsMzUzLDgyNTAsMzM5LDE1NywxNTgsMzc2LDE2MCwxNjEsMTYyLDE2''@;'; + put 'put ''MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0''@;'; + put 'put ''LDIwNSwyMDYsMjA3LDI4NiwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwzMDQsMzUwLDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMjg3LDI0MSwyNDIsMjQzLDI0NCwyNDUs''@;'; + put 'put ''MjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDMwNSwzNTEsMjU1XSwid2luZG93cy0xMjU1IjpbODM2NCwxMjksODIxOCw0MDIsODIyMiw4MjMwLDgyMjQsODIyNSw3MTAsODI0MCwxMzgsODI0OSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDgyMTYsODIxNyw4MjIwLDgyMjEsODIyNiw4MjExLDgy''@;'; + put 'put ''MTIsNzMyLDg0ODIsMTU0LDgyNTAsMTU2LDE1NywxNTgsMTU5LDE2MCwxNjEsMTYyLDE2Myw4MzYyLDE2NSwxNjYsMTY3LDE2OCwxNjksMjE1LDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDI0NywxODcsMTg4LDE4OSwxOTAsMTkx''@;'; + put 'put ''LDE0NTYsMTQ1NywxNDU4LDE0NTksMTQ2MCwxNDYxLDE0NjIsMTQ2MywxNDY0LDE0NjUsMTQ2NiwxNDY3LDE0NjgsMTQ2OSwxNDcwLDE0NzEsMTQ3MiwxNDczLDE0NzQsMTQ3NSwxNTIwLDE1MjEsMTUyMiwxNTIzLDE1MjQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxNDg4''@;'; + put 'put ''LDE0ODksMTQ5MCwxNDkxLDE0OTIsMTQ5MywxNDk0LDE0OTUsMTQ5NiwxNDk3LDE0OTgsMTQ5OSwxNTAwLDE1MDEsMTUwMiwxNTAzLDE1MDQsMTUwNSwxNTA2LDE1MDcsMTUwOCwxNTA5LDE1MTAsMTUxMSwxNTEyLDE1MTMsMTUxNCxudWxsLG51bGwsODIwNiw4MjA3LG51bGxdLCJ3aW5kb3dz''@;'; + put 'put ''LTEyNTYiOls4MzY0LDE2NjIsODIxOCw0MDIsODIyMiw4MjMwLDgyMjQsODIyNSw3MTAsODI0MCwxNjU3LDgyNDksMzM4LDE2NzAsMTY4OCwxNjcyLDE3MTEsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNzA1LDg0ODIsMTY4MSw4MjUwLDMzOSw4MjA0LDgyMDUsMTcyMiwx''@;'; + put 'put ''NjAsMTU0OCwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MjYsMTcxLDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTU2MywxODcsMTg4LDE4OSwxOTAsMTU2NywxNzI5LDE1NjksMTU3MCwxNTcxLDE1NzIsMTU3MywxNTc0''@;'; + put 'put ''LDE1NzUsMTU3NiwxNTc3LDE1NzgsMTU3OSwxNTgwLDE1ODEsMTU4MiwxNTgzLDE1ODQsMTU4NSwxNTg2LDE1ODcsMTU4OCwxNTg5LDE1OTAsMjE1LDE1OTEsMTU5MiwxNTkzLDE1OTQsMTYwMCwxNjAxLDE2MDIsMTYwMywyMjQsMTYwNCwyMjYsMTYwNSwxNjA2LDE2MDcsMTYwOCwyMzEsMjMy''@;'; + put 'put ''LDIzMywyMzQsMjM1LDE2MDksMTYxMCwyMzgsMjM5LDE2MTEsMTYxMiwxNjEzLDE2MTQsMjQ0LDE2MTUsMTYxNiwyNDcsMTYxNywyNDksMTYxOCwyNTEsMjUyLDgyMDYsODIwNywxNzQ2XSwid2luZG93cy0xMjU3IjpbODM2NCwxMjksODIxOCwxMzEsODIyMiw4MjMwLDgyMjQsODIyNSwxMzYs''@;'; + put 'put ''ODI0MCwxMzgsODI0OSwxNDAsMTY4LDcxMSwxODQsMTQ0LDgyMTYsODIxNyw4MjIwLDgyMjEsODIyNiw4MjExLDgyMTIsMTUyLDg0ODIsMTU0LDgyNTAsMTU2LDE3NSw3MzEsMTU5LDE2MCxudWxsLDE2MiwxNjMsMTY0LG51bGwsMTY2LDE2NywyMTYsMTY5LDM0MiwxNzEsMTcyLDE3MywxNzQs''@;'; + put 'put ''MTk4LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMjQ4LDE4NSwzNDMsMTg3LDE4OCwxODksMTkwLDIzMCwyNjAsMzAyLDI1NiwyNjIsMTk2LDE5NywyODAsMjc0LDI2OCwyMDEsMzc3LDI3OCwyOTAsMzEwLDI5OCwzMTUsMzUyLDMyMywzMjUsMjExLDMzMiwyMTMsMjE0LDIxNSwz''@;'; + put 'put ''NzAsMzIxLDM0NiwzNjIsMjIwLDM3OSwzODEsMjIzLDI2MSwzMDMsMjU3LDI2MywyMjgsMjI5LDI4MSwyNzUsMjY5LDIzMywzNzgsMjc5LDI5MSwzMTEsMjk5LDMxNiwzNTMsMzI0LDMyNiwyNDMsMzMzLDI0NSwyNDYsMjQ3LDM3MSwzMjIsMzQ3LDM2MywyNTIsMzgwLDM4Miw3MjldLCJ3aW5k''@;'; + put 'put ''b3dzLTEyNTgiOls4MzY0LDEyOSw4MjE4LDQwMiw4MjIyLDgyMzAsODIyNCw4MjI1LDcxMCw4MjQwLDEzOCw4MjQ5LDMzOCwxNDEsMTQyLDE0MywxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiw3MzIsODQ4MiwxNTQsODI1MCwzMzksMTU3LDE1OCwzNzYsMTYwLDE2MSwx''@;'; + put 'put ''NjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwyNTgsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIw''@;'; + put 'put ''Myw3NjgsMjA1LDIwNiwyMDcsMjcyLDIwOSw3NzcsMjExLDIxMiw0MTYsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDQzMSw3NzEsMjIzLDIyNCwyMjUsMjI2LDI1OSwyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDc2OSwyMzcsMjM4LDIzOSwyNzMsMjQxLDgwMywyNDMsMjQ0''@;'; + put 'put ''LDQxNywyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsNDMyLDgzNjMsMjU1XSwieC1tYWMtY3lyaWxsaWMiOlsxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTks''@;'; + put 'put ''MTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsODIyNCwxNzYsMTE2OCwxNjMsMTY3LDgyMjYsMTgyLDEwMzAsMTc0LDE2OSw4NDgyLDEwMjYsMTEwNiw4ODAwLDEwMjcsMTEwNyw4NzM0LDE3Nyw4ODA0LDg4MDUsMTExMCwxODEsMTE2''@;'; + put 'put ''OSwxMDMyLDEwMjgsMTEwOCwxMDMxLDExMTEsMTAzMywxMTEzLDEwMzQsMTExNCwxMTEyLDEwMjksMTcyLDg3MzAsNDAyLDg3NzYsODcxMCwxNzEsMTg3LDgyMzAsMTYwLDEwMzUsMTExNSwxMDM2LDExMTYsMTEwOSw4MjExLDgyMTIsODIyMCw4MjIxLDgyMTYsODIxNywyNDcsODIyMiwxMDM4''@;'; + put 'put ''LDExMTgsMTAzOSwxMTE5LDg0NzAsMTAyNSwxMTA1LDExMDMsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3''@;'; + put 'put ''LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiw4MzY0XX19KHRoaXN8fHt9KX0sOTk1NjU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihhdCxMdCxDdCl7cmV0dXJuIEx0PD1hdCYmYXQ8PUN0fVhlLmV4cG9ydHMmJiFtZVsiZW5jb2Rpbmct''@;'; + put 'put ''aW5kZXhlcyJdJiYobWVbImVuY29kaW5nLWluZGV4ZXMiXT1MKDg2Mzg5KVsiZW5jb2RpbmctaW5kZXhlcyJdKTt2YXIgTWU9TWF0aC5mbG9vcjtmdW5jdGlvbiBVKGF0KXtpZih2b2lkIDA9PT1hdClyZXR1cm57fTtpZihhdD09PU9iamVjdChhdCkpcmV0dXJuIGF0O3Rocm93IFR5cGVFcnJv''@;'; + put 'put ''cigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgdG8gZGljdGlvbmFyeSIpfWZ1bmN0aW9uIGllKGF0KXtyZXR1cm4gMDw9YXQmJmF0PD0xMjd9dmFyIGxlPWllLFk9LTE7ZnVuY3Rpb24gVyhhdCl7dGhpcy50b2tlbnM9W10uc2xpY2UuY2FsbChhdCksdGhpcy50b2tlbnMucmV2ZXJzZSgp''@;'; + put 'put ''fVcucHJvdG90eXBlPXtlbmRPZlN0cmVhbTpmdW5jdGlvbigpe3JldHVybiF0aGlzLnRva2Vucy5sZW5ndGh9LHJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b2tlbnMubGVuZ3RoP3RoaXMudG9rZW5zLnBvcCgpOll9LHByZXBlbmQ6ZnVuY3Rpb24oYXQpe2lmKEFycmF5LmlzQXJyYXko''@;'; + put 'put ''YXQpKWZvcih2YXIgTHQ9YXQ7THQubGVuZ3RoOyl0aGlzLnRva2Vucy5wdXNoKEx0LnBvcCgpKTtlbHNlIHRoaXMudG9rZW5zLnB1c2goYXQpfSxwdXNoOmZ1bmN0aW9uKGF0KXtpZihBcnJheS5pc0FycmF5KGF0KSlmb3IodmFyIEx0PWF0O0x0Lmxlbmd0aDspdGhpcy50b2tlbnMudW5zaGlm''@;'; + put 'put ''dChMdC5zaGlmdCgpKTtlbHNlIHRoaXMudG9rZW5zLnVuc2hpZnQoYXQpfX07dmFyIE49LTE7ZnVuY3Rpb24gZWUoYXQsTHQpe2lmKGF0KXRocm93IFR5cGVFcnJvcigiRGVjb2RlciBlcnJvciIpO3JldHVybiBMdHx8NjU1MzN9ZnVuY3Rpb24gcShhdCl7dGhyb3cgVHlwZUVycm9yKCJUaGUg''@;'; + put 'put ''Y29kZSBwb2ludCAiK2F0KyIgY291bGQgbm90IGJlIGVuY29kZWQuIil9ZnVuY3Rpb24gb2UoYXQpe3JldHVybiBhdD1TdHJpbmcoYXQpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkZSxhdCk/ZGVbYXRdOm51bGx9dmFyIGNlPVt7''@;'; + put 'put ''ZW5jb2RpbmdzOlt7bGFiZWxzOlsidW5pY29kZS0xLTEtdXRmLTgiLCJ1dGYtOCIsInV0ZjgiXSxuYW1lOiJVVEYtOCJ9XSxoZWFkaW5nOiJUaGUgRW5jb2RpbmcifSx7ZW5jb2RpbmdzOlt7bGFiZWxzOlsiODY2IiwiY3A4NjYiLCJjc2libTg2NiIsImlibTg2NiJdLG5hbWU6IklCTTg2NiJ9''@;'; + put 'put ''LHtsYWJlbHM6WyJjc2lzb2xhdGluMiIsImlzby04ODU5LTIiLCJpc28taXItMTAxIiwiaXNvODg1OS0yIiwiaXNvODg1OTIiLCJpc29fODg1OS0yIiwiaXNvXzg4NTktMjoxOTg3IiwibDIiLCJsYXRpbjIiXSxuYW1lOiJJU08tODg1OS0yIn0se2xhYmVsczpbImNzaXNvbGF0aW4zIiwiaXNv''@;'; + put 'put ''LTg4NTktMyIsImlzby1pci0xMDkiLCJpc284ODU5LTMiLCJpc284ODU5MyIsImlzb184ODU5LTMiLCJpc29fODg1OS0zOjE5ODgiLCJsMyIsImxhdGluMyJdLG5hbWU6IklTTy04ODU5LTMifSx7bGFiZWxzOlsiY3Npc29sYXRpbjQiLCJpc28tODg1OS00IiwiaXNvLWlyLTExMCIsImlzbzg4''@;'; + put 'put ''NTktNCIsImlzbzg4NTk0IiwiaXNvXzg4NTktNCIsImlzb184ODU5LTQ6MTk4OCIsImw0IiwibGF0aW40Il0sbmFtZToiSVNPLTg4NTktNCJ9LHtsYWJlbHM6WyJjc2lzb2xhdGluY3lyaWxsaWMiLCJjeXJpbGxpYyIsImlzby04ODU5LTUiLCJpc28taXItMTQ0IiwiaXNvODg1OS01IiwiaXNv''@;'; + put 'put ''ODg1OTUiLCJpc29fODg1OS01IiwiaXNvXzg4NTktNToxOTg4Il0sbmFtZToiSVNPLTg4NTktNSJ9LHtsYWJlbHM6WyJhcmFiaWMiLCJhc21vLTcwOCIsImNzaXNvODg1OTZlIiwiY3Npc284ODU5NmkiLCJjc2lzb2xhdGluYXJhYmljIiwiZWNtYS0xMTQiLCJpc28tODg1OS02IiwiaXNvLTg4''@;'; + put 'put ''NTktNi1lIiwiaXNvLTg4NTktNi1pIiwiaXNvLWlyLTEyNyIsImlzbzg4NTktNiIsImlzbzg4NTk2IiwiaXNvXzg4NTktNiIsImlzb184ODU5LTY6MTk4NyJdLG5hbWU6IklTTy04ODU5LTYifSx7bGFiZWxzOlsiY3Npc29sYXRpbmdyZWVrIiwiZWNtYS0xMTgiLCJlbG90XzkyOCIsImdyZWVr''@;'; + put 'put ''IiwiZ3JlZWs4IiwiaXNvLTg4NTktNyIsImlzby1pci0xMjYiLCJpc284ODU5LTciLCJpc284ODU5NyIsImlzb184ODU5LTciLCJpc29fODg1OS03OjE5ODciLCJzdW5fZXVfZ3JlZWsiXSxuYW1lOiJJU08tODg1OS03In0se2xhYmVsczpbImNzaXNvODg1OThlIiwiY3Npc29sYXRpbmhlYnJl''@;'; + put 'put ''dyIsImhlYnJldyIsImlzby04ODU5LTgiLCJpc28tODg1OS04LWUiLCJpc28taXItMTM4IiwiaXNvODg1OS04IiwiaXNvODg1OTgiLCJpc29fODg1OS04IiwiaXNvXzg4NTktODoxOTg4IiwidmlzdWFsIl0sbmFtZToiSVNPLTg4NTktOCJ9LHtsYWJlbHM6WyJjc2lzbzg4NTk4aSIsImlzby04''@;'; + put 'put ''ODU5LTgtaSIsImxvZ2ljYWwiXSxuYW1lOiJJU08tODg1OS04LUkifSx7bGFiZWxzOlsiY3Npc29sYXRpbjYiLCJpc28tODg1OS0xMCIsImlzby1pci0xNTciLCJpc284ODU5LTEwIiwiaXNvODg1OTEwIiwibDYiLCJsYXRpbjYiXSxuYW1lOiJJU08tODg1OS0xMCJ9LHtsYWJlbHM6WyJpc28t''@;'; + put 'put ''ODg1OS0xMyIsImlzbzg4NTktMTMiLCJpc284ODU5MTMiXSxuYW1lOiJJU08tODg1OS0xMyJ9LHtsYWJlbHM6WyJpc28tODg1OS0xNCIsImlzbzg4NTktMTQiLCJpc284ODU5MTQiXSxuYW1lOiJJU08tODg1OS0xNCJ9LHtsYWJlbHM6WyJjc2lzb2xhdGluOSIsImlzby04ODU5LTE1IiwiaXNv''@;'; + put 'put ''ODg1OS0xNSIsImlzbzg4NTkxNSIsImlzb184ODU5LTE1IiwibDkiXSxuYW1lOiJJU08tODg1OS0xNSJ9LHtsYWJlbHM6WyJpc28tODg1OS0xNiJdLG5hbWU6IklTTy04ODU5LTE2In0se2xhYmVsczpbImNza29pOHIiLCJrb2kiLCJrb2k4Iiwia29pOC1yIiwia29pOF9yIl0sbmFtZToiS09J''@;'; + put 'put ''OC1SIn0se2xhYmVsczpbImtvaTgtcnUiLCJrb2k4LXUiXSxuYW1lOiJLT0k4LVUifSx7bGFiZWxzOlsiY3NtYWNpbnRvc2giLCJtYWMiLCJtYWNpbnRvc2giLCJ4LW1hYy1yb21hbiJdLG5hbWU6Im1hY2ludG9zaCJ9LHtsYWJlbHM6WyJkb3MtODc0IiwiaXNvLTg4NTktMTEiLCJpc284ODU5''@;'; + put 'put ''LTExIiwiaXNvODg1OTExIiwidGlzLTYyMCIsIndpbmRvd3MtODc0Il0sbmFtZToid2luZG93cy04NzQifSx7bGFiZWxzOlsiY3AxMjUwIiwid2luZG93cy0xMjUwIiwieC1jcDEyNTAiXSxuYW1lOiJ3aW5kb3dzLTEyNTAifSx7bGFiZWxzOlsiY3AxMjUxIiwid2luZG93cy0xMjUxIiwieC1j''@;'; + put 'put ''cDEyNTEiXSxuYW1lOiJ3aW5kb3dzLTEyNTEifSx7bGFiZWxzOlsiYW5zaV94My40LTE5NjgiLCJhc2NpaSIsImNwMTI1MiIsImNwODE5IiwiY3Npc29sYXRpbjEiLCJpYm04MTkiLCJpc28tODg1OS0xIiwiaXNvLWlyLTEwMCIsImlzbzg4NTktMSIsImlzbzg4NTkxIiwiaXNvXzg4NTktMSIs''@;'; + put 'put ''Imlzb184ODU5LTE6MTk4NyIsImwxIiwibGF0aW4xIiwidXMtYXNjaWkiLCJ3aW5kb3dzLTEyNTIiLCJ4LWNwMTI1MiJdLG5hbWU6IndpbmRvd3MtMTI1MiJ9LHtsYWJlbHM6WyJjcDEyNTMiLCJ3aW5kb3dzLTEyNTMiLCJ4LWNwMTI1MyJdLG5hbWU6IndpbmRvd3MtMTI1MyJ9LHtsYWJlbHM6''@;'; + put 'put ''WyJjcDEyNTQiLCJjc2lzb2xhdGluNSIsImlzby04ODU5LTkiLCJpc28taXItMTQ4IiwiaXNvODg1OS05IiwiaXNvODg1OTkiLCJpc29fODg1OS05IiwiaXNvXzg4NTktOToxOTg5IiwibDUiLCJsYXRpbjUiLCJ3aW5kb3dzLTEyNTQiLCJ4LWNwMTI1NCJdLG5hbWU6IndpbmRvd3MtMTI1NCJ9''@;'; + put 'put ''LHtsYWJlbHM6WyJjcDEyNTUiLCJ3aW5kb3dzLTEyNTUiLCJ4LWNwMTI1NSJdLG5hbWU6IndpbmRvd3MtMTI1NSJ9LHtsYWJlbHM6WyJjcDEyNTYiLCJ3aW5kb3dzLTEyNTYiLCJ4LWNwMTI1NiJdLG5hbWU6IndpbmRvd3MtMTI1NiJ9LHtsYWJlbHM6WyJjcDEyNTciLCJ3aW5kb3dzLTEyNTci''@;'; + put 'put ''LCJ4LWNwMTI1NyJdLG5hbWU6IndpbmRvd3MtMTI1NyJ9LHtsYWJlbHM6WyJjcDEyNTgiLCJ3aW5kb3dzLTEyNTgiLCJ4LWNwMTI1OCJdLG5hbWU6IndpbmRvd3MtMTI1OCJ9LHtsYWJlbHM6WyJ4LW1hYy1jeXJpbGxpYyIsIngtbWFjLXVrcmFpbmlhbiJdLG5hbWU6IngtbWFjLWN5cmlsbGlj''@;'; + put 'put ''In1dLGhlYWRpbmc6IkxlZ2FjeSBzaW5nbGUtYnl0ZSBlbmNvZGluZ3MifSx7ZW5jb2RpbmdzOlt7bGFiZWxzOlsiY2hpbmVzZSIsImNzZ2IyMzEyIiwiY3Npc281OGdiMjMxMjgwIiwiZ2IyMzEyIiwiZ2JfMjMxMiIsImdiXzIzMTItODAiLCJnYmsiLCJpc28taXItNTgiLCJ4LWdiayJdLG5h''@;'; + put 'put ''bWU6IkdCSyJ9LHtsYWJlbHM6WyJnYjE4MDMwIl0sbmFtZToiZ2IxODAzMCJ9XSxoZWFkaW5nOiJMZWdhY3kgbXVsdGktYnl0ZSBDaGluZXNlIChzaW1wbGlmaWVkKSBlbmNvZGluZ3MifSx7ZW5jb2RpbmdzOlt7bGFiZWxzOlsiYmlnNSIsImJpZzUtaGtzY3MiLCJjbi1iaWc1IiwiY3NiaWc1''@;'; + put 'put ''IiwieC14LWJpZzUiXSxuYW1lOiJCaWc1In1dLGhlYWRpbmc6IkxlZ2FjeSBtdWx0aS1ieXRlIENoaW5lc2UgKHRyYWRpdGlvbmFsKSBlbmNvZGluZ3MifSx7ZW5jb2RpbmdzOlt7bGFiZWxzOlsiY3NldWNwa2RmbXRqYXBhbmVzZSIsImV1Yy1qcCIsIngtZXVjLWpwIl0sbmFtZToiRVVDLUpQ''@;'; + put 'put ''In0se2xhYmVsczpbImNzaXNvMjAyMmpwIiwiaXNvLTIwMjItanAiXSxuYW1lOiJJU08tMjAyMi1KUCJ9LHtsYWJlbHM6WyJjc3NoaWZ0amlzIiwibXM5MzIiLCJtc19rYW5qaSIsInNoaWZ0LWppcyIsInNoaWZ0X2ppcyIsInNqaXMiLCJ3aW5kb3dzLTMxaiIsIngtc2ppcyJdLG5hbWU6IlNo''@;'; + put 'put ''aWZ0X0pJUyJ9XSxoZWFkaW5nOiJMZWdhY3kgbXVsdGktYnl0ZSBKYXBhbmVzZSBlbmNvZGluZ3MifSx7ZW5jb2RpbmdzOlt7bGFiZWxzOlsiY3NldWNrciIsImNza3NjNTYwMTE5ODciLCJldWMta3IiLCJpc28taXItMTQ5Iiwia29yZWFuIiwia3NfY181NjAxLTE5ODciLCJrc19jXzU2MDEt''@;'; + put 'put ''MTk4OSIsImtzYzU2MDEiLCJrc2NfNTYwMSIsIndpbmRvd3MtOTQ5Il0sbmFtZToiRVVDLUtSIn1dLGhlYWRpbmc6IkxlZ2FjeSBtdWx0aS1ieXRlIEtvcmVhbiBlbmNvZGluZ3MifSx7ZW5jb2RpbmdzOlt7bGFiZWxzOlsiY3Npc28yMDIya3IiLCJoei1nYi0yMzEyIiwiaXNvLTIwMjItY24i''@;'; + put 'put ''LCJpc28tMjAyMi1jbi1leHQiLCJpc28tMjAyMi1rciJdLG5hbWU6InJlcGxhY2VtZW50In0se2xhYmVsczpbInV0Zi0xNmJlIl0sbmFtZToiVVRGLTE2QkUifSx7bGFiZWxzOlsidXRmLTE2IiwidXRmLTE2bGUiXSxuYW1lOiJVVEYtMTZMRSJ9LHtsYWJlbHM6WyJ4LXVzZXItZGVmaW5lZCJd''@;'; + put 'put ''LG5hbWU6IngtdXNlci1kZWZpbmVkIn1dLGhlYWRpbmc6IkxlZ2FjeSBtaXNjZWxsYW5lb3VzIGVuY29kaW5ncyJ9XSxkZT17fTtjZS5mb3JFYWNoKGZ1bmN0aW9uKGF0KXthdC5lbmNvZGluZ3MuZm9yRWFjaChmdW5jdGlvbihMdCl7THQubGFiZWxzLmZvckVhY2goZnVuY3Rpb24oQ3Qpe2Rl''@;'; + put 'put ''W0N0XT1MdH0pfSl9KTt2YXIgTyxuZSx2ZT17fSxBZT17fTtmdW5jdGlvbiBrZShhdCxMdCl7cmV0dXJuIEx0JiZMdFthdF18fG51bGx9ZnVuY3Rpb24gU2UoYXQsTHQpe3ZhciBDdD1MdC5pbmRleE9mKGF0KTtyZXR1cm4tMT09PUN0P251bGw6Q3R9ZnVuY3Rpb24gSWUoYXQpe2lmKCEoImVu''@;'; + put 'put ''Y29kaW5nLWluZGV4ZXMiaW4gbWUpKXRocm93IEVycm9yKCJJbmRleGVzIG1pc3NpbmcuIERpZCB5b3UgZm9yZ2V0IHRvIGluY2x1ZGUgZW5jb2RpbmctaW5kZXhlcy5qcyBmaXJzdD8iKTtyZXR1cm4gbWVbImVuY29kaW5nLWluZGV4ZXMiXVthdF19ZnVuY3Rpb24geChhdCxMdCl7aWYoISh0''@;'; + put 'put ''aGlzIGluc3RhbmNlb2YgeCkpdGhyb3cgVHlwZUVycm9yKCJDYWxsZWQgYXMgYSBmdW5jdGlvbi4gRGlkIHlvdSBmb3JnZXQgJ25ldyc/Iik7YXQ9dm9pZCAwIT09YXQ/U3RyaW5nKGF0KToidXRmLTgiLEx0PVUoTHQpLHRoaXMuX2VuY29kaW5nPW51bGwsdGhpcy5fZGVjb2Rlcj1udWxsLHRo''@;'; + put 'put ''aXMuX2lnbm9yZUJPTT0hMSx0aGlzLl9CT01zZWVuPSExLHRoaXMuX2Vycm9yX21vZGU9InJlcGxhY2VtZW50Iix0aGlzLl9kb19ub3RfZmx1c2g9ITE7dmFyIEN0PW9lKGF0KTtpZihudWxsPT09Q3R8fCJyZXBsYWNlbWVudCI9PT1DdC5uYW1lKXRocm93IFJhbmdlRXJyb3IoIlVua25vd24g''@;'; + put 'put ''ZW5jb2Rpbmc6ICIrYXQpO2lmKCFBZVtDdC5uYW1lXSl0aHJvdyBFcnJvcigiRGVjb2RlciBub3QgcHJlc2VudC4gRGlkIHlvdSBmb3JnZXQgdG8gaW5jbHVkZSBlbmNvZGluZy1pbmRleGVzLmpzIGZpcnN0PyIpO3ZhciBmdD10aGlzO3JldHVybiBmdC5fZW5jb2Rpbmc9Q3QsQm9vbGVhbihM''@;'; + put 'put ''dC5mYXRhbCkmJihmdC5fZXJyb3JfbW9kZT0iZmF0YWwiKSxCb29sZWFuKEx0Lmlnbm9yZUJPTSkmJihmdC5faWdub3JlQk9NPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHl8fCh0aGlzLmVuY29kaW5nPWZ0Ll9lbmNvZGluZy5uYW1lLnRvTG93ZXJDYXNlKCksdGhpcy5mYXRhbD0iZmF0YWwi''@;'; + put 'put ''PT09ZnQuX2Vycm9yX21vZGUsdGhpcy5pZ25vcmVCT009ZnQuX2lnbm9yZUJPTSksZnR9ZnVuY3Rpb24gUChhdCxMdCl7aWYoISh0aGlzIGluc3RhbmNlb2YgUCkpdGhyb3cgVHlwZUVycm9yKCJDYWxsZWQgYXMgYSBmdW5jdGlvbi4gRGlkIHlvdSBmb3JnZXQgJ25ldyc/Iik7aWYoTHQ9VShM''@;'; + put 'put ''dCksdGhpcy5fZW5jb2Rpbmc9bnVsbCx0aGlzLl9lbmNvZGVyPW51bGwsdGhpcy5fZG9fbm90X2ZsdXNoPSExLHRoaXMuX2ZhdGFsPUJvb2xlYW4oTHQuZmF0YWwpPyJmYXRhbCI6InJlcGxhY2VtZW50IixCb29sZWFuKEx0Lk5PTlNUQU5EQVJEX2FsbG93TGVnYWN5RW5jb2RpbmcpKXt2YXIg''@;'; + put 'put ''ZnQ9b2UoYXQ9dm9pZCAwIT09YXQ/U3RyaW5nKGF0KToidXRmLTgiKTtpZihudWxsPT09ZnR8fCJyZXBsYWNlbWVudCI9PT1mdC5uYW1lKXRocm93IFJhbmdlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrYXQpO2lmKCF2ZVtmdC5uYW1lXSl0aHJvdyBFcnJvcigiRW5jb2RlciBub3QgcHJl''@;'; + put 'put ''c2VudC4gRGlkIHlvdSBmb3JnZXQgdG8gaW5jbHVkZSBlbmNvZGluZy1pbmRleGVzLmpzIGZpcnN0PyIpO3RoaXMuX2VuY29kaW5nPWZ0fWVsc2UgdGhpcy5fZW5jb2Rpbmc9b2UoInV0Zi04Iiksdm9pZCAwIT09YXQmJiJjb25zb2xlImluIG1lJiZjb25zb2xlLndhcm4oIlRleHRFbmNvZGVy''@;'; + put 'put ''IGNvbnN0cnVjdG9yIGNhbGxlZCB3aXRoIGVuY29kaW5nIGxhYmVsLCB3aGljaCBpcyBpZ25vcmVkLiIpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHl8fCh0aGlzLmVuY29kaW5nPXRoaXMuX2VuY29kaW5nLm5hbWUudG9Mb3dlckNhc2UoKSksdGhpc31mdW5jdGlvbiBWKGF0KXt2YXIg''@;'; + put 'put ''THQ9YXQuZmF0YWwsQ3Q9MCxmdD0wLEh0PTAsR2U9MTI4LFVlPTE5MTt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oeXQsanQpe2lmKGp0PT09WSYmMCE9PUh0KXJldHVybiBIdD0wLGVlKEx0KTtpZihqdD09PVkpcmV0dXJuIE47aWYoMD09PUh0KXtpZihCKGp0LDAsMTI3KSlyZXR1cm4ganQ7aWYo''@;'; + put 'put ''QihqdCwxOTQsMjIzKSlIdD0xLEN0PTMxJmp0O2Vsc2UgaWYoQihqdCwyMjQsMjM5KSkyMjQ9PT1qdCYmKEdlPTE2MCksMjM3PT09anQmJihVZT0xNTkpLEh0PTIsQ3Q9MTUmanQ7ZWxzZXtpZighQihqdCwyNDAsMjQ0KSlyZXR1cm4gZWUoTHQpOzI0MD09PWp0JiYoR2U9MTQ0KSwyNDQ9PT1q''@;'; + put 'put ''dCYmKFVlPTE0MyksSHQ9MyxDdD03Jmp0fXJldHVybiBudWxsfWlmKCFCKGp0LEdlLFVlKSlyZXR1cm4gQ3Q9SHQ9ZnQ9MCxHZT0xMjgsVWU9MTkxLHl0LnByZXBlbmQoanQpLGVlKEx0KTtpZihHZT0xMjgsVWU9MTkxLEN0PUN0PDw2fDYzJmp0LChmdCs9MSkhPT1IdClyZXR1cm4gbnVsbDt2''@;'; + put 'put ''YXIgUXQ9Q3Q7cmV0dXJuIEN0PUh0PWZ0PTAsUXR9fWZ1bmN0aW9uIFQoYXQpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihDdCxmdCl7aWYoZnQ9PT1ZKXJldHVybiBOO2lmKGxlKGZ0KSlyZXR1cm4gZnQ7dmFyIEh0LEdlO0IoZnQsMTI4LDIwNDcpPyhIdD0xLEdlPTE5Mik6QihmdCwyMDQ4LDY1''@;'; + put 'put ''NTM1KT8oSHQ9MixHZT0yMjQpOkIoZnQsNjU1MzYsMTExNDExMSkmJihIdD0zLEdlPTI0MCk7Zm9yKHZhciBVZT1bKGZ0Pj42Kkh0KStHZV07SHQ+MDspVWUucHVzaCgxMjh8NjMmZnQ+PjYqKEh0LTEpKSxIdC09MTtyZXR1cm4gVWV9fWZ1bmN0aW9uIFMoYXQsTHQpe3ZhciBDdD1MdC5mYXRh''@;'; + put 'put ''bDt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oZnQsSHQpe2lmKEh0PT09WSlyZXR1cm4gTjtpZihpZShIdCkpcmV0dXJuIEh0O3ZhciBHZT1hdFtIdC0xMjhdO3JldHVybiBudWxsPT09R2U/ZWUoQ3QpOkdlfX1mdW5jdGlvbiBGKGF0LEx0KXt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oZnQsSHQpe2lm''@;'; + put 'put ''KEh0PT09WSlyZXR1cm4gTjtpZihsZShIdCkpcmV0dXJuIEh0O3ZhciBHZT1TZShIdCxhdCk7cmV0dXJuIG51bGw9PT1HZSYmcShIdCksR2UrMTI4fX1mdW5jdGlvbiB5ZShhdCl7dmFyIEx0PWF0LmZhdGFsLEN0PTAsZnQ9MCxIdD0wO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihHZSxVZSl7aWYo''@;'; + put 'put ''VWU9PT1ZJiYwPT09Q3QmJjA9PT1mdCYmMD09PUh0KXJldHVybiBOO3ZhciB5dDtpZihVZT09PVkmJigwIT09Q3R8fDAhPT1mdHx8MCE9PUh0KSYmKEN0PTAsZnQ9MCxIdD0wLGVlKEx0KSksMCE9PUh0KXt5dD1udWxsLEIoVWUsNDgsNTcpJiYoeXQ9ZnVuY3Rpb24gVGUoYXQpe2lmKGF0PjM5''@;'; + put 'put ''NDE5JiZhdDwxODllM3x8YXQ+MTIzNzU3NSlyZXR1cm4gbnVsbDtpZig3NDU3PT09YXQpcmV0dXJuIDU5MzM1O3ZhciBIdCxMdD0wLEN0PTAsZnQ9SWUoImdiMTgwMzAtcmFuZ2VzIik7Zm9yKEh0PTA7SHQ8ZnQubGVuZ3RoOysrSHQpe3ZhciBHZT1mdFtIdF07aWYoIShHZVswXTw9YXQpKWJy''@;'; + put 'put ''ZWFrO0x0PUdlWzBdLEN0PUdlWzFdfXJldHVybiBDdCthdC1MdH0oMTAqKDEyNiooMTAqKEN0LTEyOSkrZnQtNDgpK0h0LTEyOSkrVWUtNDgpKTt2YXIganQ9W2Z0LEh0LFVlXTtyZXR1cm4gQ3Q9MCxmdD0wLEh0PTAsbnVsbD09PXl0PyhHZS5wcmVwZW5kKGp0KSxlZShMdCkpOnl0fWlmKDAh''@;'; + put 'put ''PT1mdClyZXR1cm4gQihVZSwxMjksMjU0KT8oSHQ9VWUsbnVsbCk6KEdlLnByZXBlbmQoW2Z0LFVlXSksQ3Q9MCxmdD0wLGVlKEx0KSk7aWYoMCE9PUN0KXtpZihCKFVlLDQ4LDU3KSlyZXR1cm4gZnQ9VWUsbnVsbDt2YXIgUXQ9Q3QsZ249bnVsbDtDdD0wO3ZhciBkbj1VZTwxMjc/NjQ6NjU7''@;'; + put 'put ''cmV0dXJuKEIoVWUsNjQsMTI2KXx8QihVZSwxMjgsMjU0KSkmJihnbj0xOTAqKFF0LTEyOSkrKFVlLWRuKSksbnVsbD09PSh5dD1udWxsPT09Z24/bnVsbDprZShnbixJZSgiZ2IxODAzMCIpKSkmJmllKFVlKSYmR2UucHJlcGVuZChVZSksbnVsbD09PXl0P2VlKEx0KTp5dH1yZXR1cm4gaWUo''@;'; + put 'put ''VWUpP1VlOjEyOD09PVVlPzgzNjQ6QihVZSwxMjksMjU0KT8oQ3Q9VWUsbnVsbCk6ZWUoTHQpfX1mdW5jdGlvbiBDZShhdCxMdCl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKGZ0LEh0KXtpZihIdD09PVkpcmV0dXJuIE47aWYobGUoSHQpKXJldHVybiBIdDtpZig1ODg1Mz09PUh0KXJldHVybiBx''@;'; + put 'put ''KEh0KTtpZihMdCYmODM2ND09PUh0KXJldHVybiAxMjg7dmFyIEdlPVNlKEh0LEllKCJnYjE4MDMwIikpO2lmKG51bGwhPT1HZSl7dmFyIHl0PUdlJTE5MDtyZXR1cm5bTWUoR2UvMTkwKSsxMjkseXQrKHl0PDYzPzY0OjY1KV19aWYoTHQpcmV0dXJuIHEoSHQpO0dlPWZ1bmN0aW9uIEVlKGF0''@;'; + put 'put ''KXtpZig1OTMzNT09PWF0KXJldHVybiA3NDU3O3ZhciBIdCxMdD0wLEN0PTAsZnQ9SWUoImdiMTgwMzAtcmFuZ2VzIik7Zm9yKEh0PTA7SHQ8ZnQubGVuZ3RoOysrSHQpe3ZhciBHZT1mdFtIdF07aWYoIShHZVsxXTw9YXQpKWJyZWFrO0x0PUdlWzFdLEN0PUdlWzBdfXJldHVybiBDdCthdC1M''@;'; + put 'put ''dH0oSHQpO3ZhciBRdD1NZShHZS8xMC8xMjYvMTApLGduPU1lKChHZS09MTAqUXQqMTI2KjEwKS8xMC8xMjYpLGRuPU1lKChHZS09MTAqZ24qMTI2KS8xMCk7cmV0dXJuW1F0KzEyOSxnbis0OCxkbisxMjksR2UtMTAqZG4rNDhdfX1mdW5jdGlvbiBEZShhdCl7dmFyIEx0PWF0LmZhdGFsLEN0''@;'; + put 'put ''PTA7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKGZ0LEh0KXtpZihIdD09PVkmJjAhPT1DdClyZXR1cm4gQ3Q9MCxlZShMdCk7aWYoSHQ9PT1ZJiYwPT09Q3QpcmV0dXJuIE47aWYoMCE9PUN0KXt2YXIgR2U9Q3QsVWU9bnVsbDtDdD0wO3ZhciB5dD1IdDwxMjc/NjQ6OTg7c3dpdGNoKChCKEh0LDY0''@;'; + put 'put ''LDEyNil8fEIoSHQsMTYxLDI1NCkpJiYoVWU9MTU3KihHZS0xMjkpKyhIdC15dCkpLFVlKXtjYXNlIDExMzM6cmV0dXJuWzIwMiw3NzJdO2Nhc2UgMTEzNTpyZXR1cm5bMjAyLDc4MF07Y2FzZSAxMTY0OnJldHVyblsyMzQsNzcyXTtjYXNlIDExNjY6cmV0dXJuWzIzNCw3ODBdfXZhciBqdD1u''@;'; + put 'put ''dWxsPT09VWU/bnVsbDprZShVZSxJZSgiYmlnNSIpKTtyZXR1cm4gbnVsbD09PWp0JiZpZShIdCkmJmZ0LnByZXBlbmQoSHQpLG51bGw9PT1qdD9lZShMdCk6anR9cmV0dXJuIGllKEh0KT9IdDpCKEh0LDEyOSwyNTQpPyhDdD1IdCxudWxsKTplZShMdCl9fWZ1bmN0aW9uIFBlKGF0KXt0aGlz''@;'; + put 'put ''LmhhbmRsZXI9ZnVuY3Rpb24oQ3QsZnQpe2lmKGZ0PT09WSlyZXR1cm4gTjtpZihsZShmdCkpcmV0dXJuIGZ0O3ZhciBIdD1mdW5jdGlvbiB6KGF0KXt2YXIgTHQ9bmU9bmV8fEllKCJiaWc1IikubWFwKGZ1bmN0aW9uKEN0LGZ0KXtyZXR1cm4gZnQ8NTAyND9udWxsOkN0fSk7cmV0dXJuIDk1''@;'; + put 'put ''NTI9PT1hdHx8OTU2Nj09PWF0fHw5NTY5PT09YXR8fDk1Nzg9PT1hdHx8MjEzMTM9PT1hdHx8MjEzMTc9PT1hdD9MdC5sYXN0SW5kZXhPZihhdCk6U2UoYXQsTHQpfShmdCk7aWYobnVsbD09PUh0KXJldHVybiBxKGZ0KTt2YXIgR2U9TWUoSHQvMTU3KSsxMjk7aWYoR2U8MTYxKXJldHVybiBx''@;'; + put 'put ''KGZ0KTt2YXIgVWU9SHQlMTU3O3JldHVybltHZSxVZSsoVWU8NjM/NjQ6OTgpXX19ZnVuY3Rpb24gUWUoYXQpe3ZhciBMdD1hdC5mYXRhbCxDdD0hMSxmdD0wO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihIdCxHZSl7aWYoR2U9PT1ZJiYwIT09ZnQpcmV0dXJuIGZ0PTAsZWUoTHQpO2lmKEdlPT09''@;'; + put 'put ''WSYmMD09PWZ0KXJldHVybiBOO2lmKDE0Mj09PWZ0JiZCKEdlLDE2MSwyMjMpKXJldHVybiBmdD0wLDY1MjE2K0dlO2lmKDE0Mz09PWZ0JiZCKEdlLDE2MSwyNTQpKXJldHVybiBDdD0hMCxmdD1HZSxudWxsO2lmKDAhPT1mdCl7dmFyIFVlPWZ0O2Z0PTA7dmFyIHl0PW51bGw7cmV0dXJuIEIo''@;'; + put 'put ''VWUsMTYxLDI1NCkmJkIoR2UsMTYxLDI1NCkmJih5dD1rZSg5NCooVWUtMTYxKSsoR2UtMTYxKSxJZShDdD8iamlzMDIxMiI6ImppczAyMDgiKSkpLEN0PSExLEIoR2UsMTYxLDI1NCl8fEh0LnByZXBlbmQoR2UpLG51bGw9PT15dD9lZShMdCk6eXR9cmV0dXJuIGllKEdlKT9HZToxNDI9PT1H''@;'; + put 'put ''ZXx8MTQzPT09R2V8fEIoR2UsMTYxLDI1NCk/KGZ0PUdlLG51bGwpOmVlKEx0KX19ZnVuY3Rpb24gJGUoYXQpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihDdCxmdCl7aWYoZnQ9PT1ZKXJldHVybiBOO2lmKGxlKGZ0KSlyZXR1cm4gZnQ7aWYoMTY1PT09ZnQpcmV0dXJuIDkyO2lmKDgyNTQ9PT1m''@;'; + put 'put ''dClyZXR1cm4gMTI2O2lmKEIoZnQsNjUzNzcsNjU0MzkpKXJldHVyblsxNDIsZnQtNjUzNzcrMTYxXTs4NzIyPT09ZnQmJihmdD02NTI5Myk7dmFyIEh0PVNlKGZ0LEllKCJqaXMwMjA4IikpO3JldHVybiBudWxsPT09SHQ/cShmdCk6W01lKEh0Lzk0KSsxNjEsSHQlOTQrMTYxXX19ZnVuY3Rp''@;'; + put 'put ''b24gZ3QoYXQpe3ZhciBMdD1hdC5mYXRhbCxmdD0wLEdlPTAsVWU9ITE7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKHl0LGp0KXtzd2l0Y2goZnQpe2RlZmF1bHQ6Y2FzZSAwOnJldHVybiAyNz09PWp0PyhmdD01LG51bGwpOkIoanQsMCwxMjcpJiYxNCE9PWp0JiYxNSE9PWp0JiYyNyE9PWp0PyhV''@;'; + put 'put ''ZT0hMSxqdCk6anQ9PT1ZP046KFVlPSExLGVlKEx0KSk7Y2FzZSAxOnJldHVybiAyNz09PWp0PyhmdD01LG51bGwpOjkyPT09anQ/KFVlPSExLDE2NSk6MTI2PT09anQ/KFVlPSExLDgyNTQpOkIoanQsMCwxMjcpJiYxNCE9PWp0JiYxNSE9PWp0JiYyNyE9PWp0JiY5MiE9PWp0JiYxMjYhPT1q''@;'; + put 'put ''dD8oVWU9ITEsanQpOmp0PT09WT9OOihVZT0hMSxlZShMdCkpO2Nhc2UgMjpyZXR1cm4gMjc9PT1qdD8oZnQ9NSxudWxsKTpCKGp0LDMzLDk1KT8oVWU9ITEsNjUzNDQranQpOmp0PT09WT9OOihVZT0hMSxlZShMdCkpO2Nhc2UgMzpyZXR1cm4gMjc9PT1qdD8oZnQ9NSxudWxsKTpCKGp0LDMz''@;'; + put 'put ''LDEyNik/KFVlPSExLEdlPWp0LGZ0PTQsbnVsbCk6anQ9PT1ZP046KFVlPSExLGVlKEx0KSk7Y2FzZSA0OmlmKDI3PT09anQpcmV0dXJuIGZ0PTUsZWUoTHQpO2lmKEIoanQsMzMsMTI2KSl7ZnQ9Mzt2YXIgZ249a2UoOTQqKEdlLTMzKStqdC0zMyxJZSgiamlzMDIwOCIpKTtyZXR1cm4gbnVs''@;'; + put 'put ''bD09PWduP2VlKEx0KTpnbn1yZXR1cm4ganQ9PT1ZPyhmdD0zLHl0LnByZXBlbmQoanQpLGVlKEx0KSk6KGZ0PTMsZWUoTHQpKTtjYXNlIDU6cmV0dXJuIDM2PT09anR8fDQwPT09anQ/KEdlPWp0LGZ0PTYsbnVsbCk6KHl0LnByZXBlbmQoanQpLFVlPSExLGZ0PTAsZWUoTHQpKTtjYXNlIDY6''@;'; + put 'put ''dmFyIGRuPUdlO0dlPTA7dmFyIHluPW51bGw7aWYoNDA9PT1kbiYmNjY9PT1qdCYmKHluPTApLDQwPT09ZG4mJjc0PT09anQmJih5bj0xKSw0MD09PWRuJiY3Mz09PWp0JiYoeW49MiksMzY9PT1kbiYmKDY0PT09anR8fDY2PT09anQpJiYoeW49MyksbnVsbCE9PXluKXtmdD1mdD15bjt2YXIg''@;'; + put 'put ''bG49VWU7cmV0dXJuIFVlPSEwLGxuP2VlKEx0KTpudWxsfXJldHVybiB5dC5wcmVwZW5kKFtkbixqdF0pLFVlPSExLGZ0PTAsZWUoTHQpfX19ZnVuY3Rpb24gd3QoYXQpe3ZhciBmdD0wO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihIdCxHZSl7aWYoR2U9PT1ZJiYwIT09ZnQpcmV0dXJuIEh0LnBy''@;'; + put 'put ''ZXBlbmQoR2UpLGZ0PTAsWzI3LDQwLDY2XTtpZihHZT09PVkmJjA9PT1mdClyZXR1cm4gTjtpZighKDAhPT1mdCYmMSE9PWZ0fHwxNCE9PUdlJiYxNSE9PUdlJiYyNyE9PUdlKSlyZXR1cm4gcSg2NTUzMyk7aWYoMD09PWZ0JiZsZShHZSkpcmV0dXJuIEdlO2lmKDE9PT1mdCYmKGxlKEdlKSYm''@;'; + put 'put ''OTIhPT1HZSYmMTI2IT09R2V8fDE2NT09R2V8fDgyNTQ9PUdlKSl7aWYobGUoR2UpKXJldHVybiBHZTtpZigxNjU9PT1HZSlyZXR1cm4gOTI7aWYoODI1ND09PUdlKXJldHVybiAxMjZ9aWYobGUoR2UpJiYwIT09ZnQpcmV0dXJuIEh0LnByZXBlbmQoR2UpLGZ0PTAsWzI3LDQwLDY2XTtpZigo''@;'; + put 'put ''MTY1PT09R2V8fDgyNTQ9PT1HZSkmJjEhPT1mdClyZXR1cm4gSHQucHJlcGVuZChHZSksZnQ9MSxbMjcsNDAsNzRdOzg3MjI9PT1HZSYmKEdlPTY1MjkzKTt2YXIgVWU9U2UoR2UsSWUoImppczAyMDgiKSk7cmV0dXJuIG51bGw9PT1VZT9xKEdlKToyIT09ZnQ/KEh0LnByZXBlbmQoR2UpLGZ0''@;'; + put 'put ''PTIsWzI3LDM2LDY2XSk6W01lKFVlLzk0KSszMyxVZSU5NCszM119fWZ1bmN0aW9uIHZ0KGF0KXt2YXIgTHQ9YXQuZmF0YWwsQ3Q9MDt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oZnQsSHQpe2lmKEh0PT09WSYmMCE9PUN0KXJldHVybiBDdD0wLGVlKEx0KTtpZihIdD09PVkmJjA9PT1DdClyZXR1''@;'; + put 'put ''cm4gTjtpZigwIT09Q3Qpe3ZhciBHZT1DdCxVZT1udWxsO0N0PTA7dmFyIHl0PUh0PDEyNz82NDo2NSxqdD1HZTwxNjA/MTI5OjE5MztpZigoQihIdCw2NCwxMjYpfHxCKEh0LDEyOCwyNTIpKSYmKFVlPTE4OCooR2UtanQpK0h0LXl0KSxCKFVlLDg4MzYsMTA3MTUpKXJldHVybiA0ODUwOCtV''@;'; + put 'put ''ZTt2YXIgUXQ9bnVsbD09PVVlP251bGw6a2UoVWUsSWUoImppczAyMDgiKSk7cmV0dXJuIG51bGw9PT1RdCYmaWUoSHQpJiZmdC5wcmVwZW5kKEh0KSxudWxsPT09UXQ/ZWUoTHQpOlF0fXJldHVybiBpZShIdCl8fDEyOD09PUh0P0h0OkIoSHQsMTYxLDIyMyk/NjUyMTYrSHQ6QihIdCwxMjks''@;'; + put 'put ''MTU5KXx8QihIdCwyMjQsMjUyKT8oQ3Q9SHQsbnVsbCk6ZWUoTHQpfX1mdW5jdGlvbiBBdChhdCl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEN0LGZ0KXtpZihmdD09PVkpcmV0dXJuIE47aWYobGUoZnQpfHwxMjg9PT1mdClyZXR1cm4gZnQ7aWYoMTY1PT09ZnQpcmV0dXJuIDkyO2lmKDgyNTQ9''@;'; + put 'put ''PT1mdClyZXR1cm4gMTI2O2lmKEIoZnQsNjUzNzcsNjU0MzkpKXJldHVybiBmdC02NTM3NysxNjE7ODcyMj09PWZ0JiYoZnQ9NjUyOTMpO3ZhciBIdD1mdW5jdGlvbiBoZShhdCl7cmV0dXJuKE89T3x8SWUoImppczAyMDgiKS5tYXAoZnVuY3Rpb24oQ3QsZnQpe3JldHVybiBCKGZ0LDgyNzIs''@;'; + put 'put ''ODgzNSk/bnVsbDpDdH0pKS5pbmRleE9mKGF0KX0oZnQpO2lmKG51bGw9PT1IdClyZXR1cm4gcShmdCk7dmFyIEdlPU1lKEh0LzE4OCkseXQ9SHQlMTg4O3JldHVybltHZSsoR2U8MzE/MTI5OjE5MykseXQrKHl0PDYzPzY0OjY1KV19fWZ1bmN0aW9uIG10KGF0KXt2YXIgTHQ9YXQuZmF0YWws''@;'; + put 'put ''Q3Q9MDt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oZnQsSHQpe2lmKEh0PT09WSYmMCE9PUN0KXJldHVybiBDdD0wLGVlKEx0KTtpZihIdD09PVkmJjA9PT1DdClyZXR1cm4gTjtpZigwIT09Q3Qpe3ZhciBHZT1DdCxVZT1udWxsO0N0PTAsQihIdCw2NSwyNTQpJiYoVWU9MTkwKihHZS0xMjkpKyhI''@;'; + put 'put ''dC02NSkpO3ZhciB5dD1udWxsPT09VWU/bnVsbDprZShVZSxJZSgiZXVjLWtyIikpO3JldHVybiBudWxsPT09VWUmJmllKEh0KSYmZnQucHJlcGVuZChIdCksbnVsbD09PXl0P2VlKEx0KTp5dH1yZXR1cm4gaWUoSHQpP0h0OkIoSHQsMTI5LDI1NCk/KEN0PUh0LG51bGwpOmVlKEx0KX19ZnVu''@;'; + put 'put ''Y3Rpb24gaHQoYXQpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihDdCxmdCl7aWYoZnQ9PT1ZKXJldHVybiBOO2lmKGxlKGZ0KSlyZXR1cm4gZnQ7dmFyIEh0PVNlKGZ0LEllKCJldWMta3IiKSk7cmV0dXJuIG51bGw9PT1IdD9xKGZ0KTpbTWUoSHQvMTkwKSsxMjksSHQlMTkwKzY1XX19ZnVuY3Rp''@;'; + put 'put ''b24gQnQoYXQsTHQpe3ZhciBDdD1hdD4+OCxmdD0yNTUmYXQ7cmV0dXJuIEx0P1tDdCxmdF06W2Z0LEN0XX1mdW5jdGlvbiBvbihhdCxMdCl7dmFyIEN0PUx0LmZhdGFsLGZ0PW51bGwsSHQ9bnVsbDt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oR2UsVWUpe2lmKFVlPT09WSYmKG51bGwhPT1mdHx8''@;'; + put 'put ''bnVsbCE9PUh0KSlyZXR1cm4gZWUoQ3QpO2lmKFVlPT09WSYmbnVsbD09PWZ0JiZudWxsPT09SHQpcmV0dXJuIE47aWYobnVsbD09PWZ0KXJldHVybiBmdD1VZSxudWxsO3ZhciB5dDtpZih5dD1hdD8oZnQ8PDgpK1VlOihVZTw8OCkrZnQsZnQ9bnVsbCxudWxsIT09SHQpe3ZhciBqdD1IdDty''@;'; + put 'put ''ZXR1cm4gSHQ9bnVsbCxCKHl0LDU2MzIwLDU3MzQzKT82NTUzNisxMDI0KihqdC01NTI5NikrKHl0LTU2MzIwKTooR2UucHJlcGVuZChCdCh5dCxhdCkpLGVlKEN0KSl9cmV0dXJuIEIoeXQsNTUyOTYsNTYzMTkpPyhIdD15dCxudWxsKTpCKHl0LDU2MzIwLDU3MzQzKT9lZShDdCk6eXR9fWZ1''@;'; + put 'put ''bmN0aW9uIF90KGF0LEx0KXt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oZnQsSHQpe2lmKEh0PT09WSlyZXR1cm4gTjtpZihCKEh0LDAsNjU1MzUpKXJldHVybiBCdChIdCxhdCk7dmFyIEdlPUJ0KDU1Mjk2KyhIdC02NTUzNj4+MTApLGF0KSxVZT1CdCg1NjMyMCsoSHQtNjU1MzYmMTAyMyksYXQp''@;'; + put 'put ''O3JldHVybiBHZS5jb25jYXQoVWUpfX1mdW5jdGlvbiB0dChhdCl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEN0LGZ0KXtyZXR1cm4gZnQ9PT1ZP046aWUoZnQpP2Z0OjYzMzYwK2Z0LTEyOH19ZnVuY3Rpb24gZXQoYXQpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihDdCxmdCl7cmV0dXJuIGZ0PT09''@;'; + put 'put ''WT9OOmxlKGZ0KT9mdDpCKGZ0LDYzMzYwLDYzNDg3KT9mdC02MzM2MCsxMjg6cShmdCl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LnByb3RvdHlwZSwiZW5jb2RpbmciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5jb2RpbmcubmFtZS50''@;'; + put 'put ''b0xvd2VyQ2FzZSgpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LnByb3RvdHlwZSwiZmF0YWwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iZmF0YWwiPT09dGhpcy5fZXJyb3JfbW9kZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeC5wcm90b3R5cGUsImlnbm9yZUJPTSIse2dldDpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiB0aGlzLl9pZ25vcmVCT019fSkpLHgucHJvdG90eXBlLmRlY29kZT1mdW5jdGlvbihMdCxDdCl7dmFyIGZ0O2Z0PSJvYmplY3QiPT10eXBlb2YgTHQmJkx0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/bmV3IFVpbnQ4QXJyYXkoTHQpOiJvYmplY3QiPT10eXBlb2YgTHQm''@;'; + put 'put ''JiJidWZmZXIiaW4gTHQmJkx0LmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP25ldyBVaW50OEFycmF5KEx0LmJ1ZmZlcixMdC5ieXRlT2Zmc2V0LEx0LmJ5dGVMZW5ndGgpOm5ldyBVaW50OEFycmF5KDApLEN0PVUoQ3QpLHRoaXMuX2RvX25vdF9mbHVzaHx8KHRoaXMuX2RlY29kZXI9''@;'; + put 'put ''QWVbdGhpcy5fZW5jb2RpbmcubmFtZV0oe2ZhdGFsOiJmYXRhbCI9PT10aGlzLl9lcnJvcl9tb2RlfSksdGhpcy5fQk9Nc2Vlbj0hMSksdGhpcy5fZG9fbm90X2ZsdXNoPUJvb2xlYW4oQ3Quc3RyZWFtKTtmb3IodmFyIFVlLEh0PW5ldyBXKGZ0KSxHZT1bXTs7KXt2YXIgeXQ9SHQucmVhZCgp''@;'; + put 'put ''O2lmKHl0PT09WXx8KFVlPXRoaXMuX2RlY29kZXIuaGFuZGxlcihIdCx5dCkpPT09TilicmVhaztudWxsIT09VWUmJihBcnJheS5pc0FycmF5KFVlKT9HZS5wdXNoLmFwcGx5KEdlLFVlKTpHZS5wdXNoKFVlKSl9aWYoIXRoaXMuX2RvX25vdF9mbHVzaCl7ZG97aWYoKFVlPXRoaXMuX2RlY29k''@;'; + put 'put ''ZXIuaGFuZGxlcihIdCxIdC5yZWFkKCkpKT09PU4pYnJlYWs7bnVsbCE9PVVlJiYoQXJyYXkuaXNBcnJheShVZSk/R2UucHVzaC5hcHBseShHZSxVZSk6R2UucHVzaChVZSkpfXdoaWxlKCFIdC5lbmRPZlN0cmVhbSgpKTt0aGlzLl9kZWNvZGVyPW51bGx9cmV0dXJuIGZ1bmN0aW9uIGp0KFF0''@;'; + put 'put ''KXtyZXR1cm4gZnVuY3Rpb24gRShhdCxMdCl7cmV0dXJuLTEhPT1hdC5pbmRleE9mKEx0KX0oWyJVVEYtOCIsIlVURi0xNkxFIiwiVVRGLTE2QkUiXSx0aGlzLl9lbmNvZGluZy5uYW1lKSYmIXRoaXMuX2lnbm9yZUJPTSYmIXRoaXMuX0JPTXNlZW4mJihRdC5sZW5ndGg+MCYmNjUyNzk9PT1R''@;'; + put 'put ''dFswXT8odGhpcy5fQk9Nc2Vlbj0hMCxRdC5zaGlmdCgpKTpRdC5sZW5ndGg+MCYmKHRoaXMuX0JPTXNlZW49ITApKSxmdW5jdGlvbiBaKGF0KXtmb3IodmFyIEx0PSIiLEN0PTA7Q3Q8YXQubGVuZ3RoOysrQ3Qpe3ZhciBmdD1hdFtDdF07ZnQ8PTY1NTM1P0x0Kz1TdHJpbmcuZnJvbUNoYXJD''@;'; + put 'put ''b2RlKGZ0KTooZnQtPTY1NTM2LEx0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2KyhmdD4+MTApLDU2MzIwKygxMDIzJmZ0KSkpfXJldHVybiBMdH0oUXQpfS5jYWxsKHRoaXMsR2UpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShQLnByb3RvdHlwZSwi''@;'; + put 'put ''ZW5jb2RpbmciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5jb2RpbmcubmFtZS50b0xvd2VyQ2FzZSgpfX0pLFAucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihMdCxDdCl7THQ9dm9pZCAwPT09THQ/IiI6U3RyaW5nKEx0KSxDdD1VKEN0KSx0aGlzLl9kb19ub3RfZmx1c2h8fCh0''@;'; + put 'put ''aGlzLl9lbmNvZGVyPXZlW3RoaXMuX2VuY29kaW5nLm5hbWVdKHtmYXRhbDoiZmF0YWwiPT09dGhpcy5fZmF0YWx9KSksdGhpcy5fZG9fbm90X2ZsdXNoPUJvb2xlYW4oQ3Quc3RyZWFtKTtmb3IodmFyIEdlLGZ0PW5ldyBXKGZ1bmN0aW9uIFEoYXQpe2Zvcih2YXIgTHQ9U3RyaW5nKGF0KSxD''@;'; + put 'put ''dD1MdC5sZW5ndGgsZnQ9MCxIdD1bXTtmdDxDdDspe3ZhciBHZT1MdC5jaGFyQ29kZUF0KGZ0KTtpZihHZTw1NTI5Nnx8R2U+NTczNDMpSHQucHVzaChHZSk7ZWxzZSBpZig1NjMyMDw9R2UmJkdlPD01NzM0MylIdC5wdXNoKDY1NTMzKTtlbHNlIGlmKDU1Mjk2PD1HZSYmR2U8PTU2MzE5KWlm''@;'; + put 'put ''KGZ0PT09Q3QtMSlIdC5wdXNoKDY1NTMzKTtlbHNle3ZhciBVZT1MdC5jaGFyQ29kZUF0KGZ0KzEpOzU2MzIwPD1VZSYmVWU8PTU3MzQzPyhIdC5wdXNoKDY1NTM2KygoMTAyMyZHZSk8PDEwKSsoMTAyMyZVZSkpLGZ0Kz0xKTpIdC5wdXNoKDY1NTMzKX1mdCs9MX1yZXR1cm4gSHR9KEx0KSks''@;'; + put 'put ''SHQ9W107Oyl7dmFyIFVlPWZ0LnJlYWQoKTtpZihVZT09PVl8fChHZT10aGlzLl9lbmNvZGVyLmhhbmRsZXIoZnQsVWUpKT09PU4pYnJlYWs7QXJyYXkuaXNBcnJheShHZSk/SHQucHVzaC5hcHBseShIdCxHZSk6SHQucHVzaChHZSl9aWYoIXRoaXMuX2RvX25vdF9mbHVzaCl7Zm9yKDsoR2U9''@;'; + put 'put ''dGhpcy5fZW5jb2Rlci5oYW5kbGVyKGZ0LGZ0LnJlYWQoKSkpIT09TjspQXJyYXkuaXNBcnJheShHZSk/SHQucHVzaC5hcHBseShIdCxHZSk6SHQucHVzaChHZSk7dGhpcy5fZW5jb2Rlcj1udWxsfXJldHVybiBuZXcgVWludDhBcnJheShIdCl9LHZlWyJVVEYtOCJdPWZ1bmN0aW9uKGF0KXty''@;'; + put 'put ''ZXR1cm4gbmV3IFQoYXQpfSxBZVsiVVRGLTgiXT1mdW5jdGlvbihhdCl7cmV0dXJuIG5ldyBWKGF0KX0sImVuY29kaW5nLWluZGV4ZXMiaW4gbWUmJmNlLmZvckVhY2goZnVuY3Rpb24oYXQpeyJMZWdhY3kgc2luZ2xlLWJ5dGUgZW5jb2RpbmdzIj09PWF0LmhlYWRpbmcmJmF0LmVuY29kaW5n''@;'; + put 'put ''cy5mb3JFYWNoKGZ1bmN0aW9uKEx0KXt2YXIgQ3Q9THQubmFtZSxmdD1JZShDdC50b0xvd2VyQ2FzZSgpKTtBZVtDdF09ZnVuY3Rpb24oSHQpe3JldHVybiBuZXcgUyhmdCxIdCl9LHZlW0N0XT1mdW5jdGlvbihIdCl7cmV0dXJuIG5ldyBGKGZ0LEh0KX19KX0pLEFlLkdCSz1mdW5jdGlvbihh''@;'; + put 'put ''dCl7cmV0dXJuIG5ldyB5ZShhdCl9LHZlLkdCSz1mdW5jdGlvbihhdCl7cmV0dXJuIG5ldyBDZShhdCwhMCl9LHZlLmdiMTgwMzA9ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgQ2UoYXQpfSxBZS5nYjE4MDMwPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IHllKGF0KX0sdmUuQmlnNT1mdW5jdGlv''@;'; + put 'put ''bihhdCl7cmV0dXJuIG5ldyBQZShhdCl9LEFlLkJpZzU9ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgRGUoYXQpfSx2ZVsiRVVDLUpQIl09ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgJGUoYXQpfSxBZVsiRVVDLUpQIl09ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgUWUoYXQpfSx2ZVsiSVNPLTIw''@;'; + put 'put ''MjItSlAiXT1mdW5jdGlvbihhdCl7cmV0dXJuIG5ldyB3dChhdCl9LEFlWyJJU08tMjAyMi1KUCJdPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IGd0KGF0KX0sdmUuU2hpZnRfSklTPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IEF0KGF0KX0sQWUuU2hpZnRfSklTPWZ1bmN0aW9uKGF0KXtyZXR1''@;'; + put 'put ''cm4gbmV3IHZ0KGF0KX0sdmVbIkVVQy1LUiJdPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IGh0KGF0KX0sQWVbIkVVQy1LUiJdPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IG10KGF0KX0sdmVbIlVURi0xNkJFIl09ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgX3QoITAsYXQpfSxBZVsiVVRGLTE2''@;'; + put 'put ''QkUiXT1mdW5jdGlvbihhdCl7cmV0dXJuIG5ldyBvbighMCxhdCl9LHZlWyJVVEYtMTZMRSJdPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IF90KCExLGF0KX0sQWVbIlVURi0xNkxFIl09ZnVuY3Rpb24oYXQpe3JldHVybiBuZXcgb24oITEsYXQpfSx2ZVsieC11c2VyLWRlZmluZWQiXT1mdW5j''@;'; + put 'put ''dGlvbihhdCl7cmV0dXJuIG5ldyBldChhdCl9LEFlWyJ4LXVzZXItZGVmaW5lZCJdPWZ1bmN0aW9uKGF0KXtyZXR1cm4gbmV3IHR0KGF0KX0sbWUuVGV4dEVuY29kZXJ8fChtZS5UZXh0RW5jb2Rlcj1QKSxtZS5UZXh0RGVjb2Rlcnx8KG1lLlRleHREZWNvZGVyPXgpLFhlLmV4cG9ydHMmJihY''@;'; + put 'put ''ZS5leHBvcnRzPXtUZXh0RW5jb2RlcjptZS5UZXh0RW5jb2RlcixUZXh0RGVjb2RlcjptZS5UZXh0RGVjb2RlcixFbmNvZGluZ0luZGV4ZXM6bWVbImVuY29kaW5nLWluZGV4ZXMiXX0pfSh0aGlzfHx7fSl9LDIzNTMyOlhlPT57ZnVuY3Rpb24gTChtZSl7dHJ5e2lmKCFnbG9iYWwubG9jYWxT''@;'; + put 'put ''dG9yYWdlKXJldHVybiExfWNhdGNoKEUpe3JldHVybiExfXZhciBCPWdsb2JhbC5sb2NhbFN0b3JhZ2VbbWVdO3JldHVybiBudWxsIT1CJiYidHJ1ZSI9PT1TdHJpbmcoQikudG9Mb3dlckNhc2UoKX1YZS5leHBvcnRzPWZ1bmN0aW9uIEplKG1lLEIpe2lmKEwoIm5vRGVwcmVjYXRpb24iKSly''@;'; + put 'put ''ZXR1cm4gbWU7dmFyIEU9ITE7cmV0dXJuIGZ1bmN0aW9uIE1lKCl7aWYoIUUpe2lmKEwoInRocm93RGVwcmVjYXRpb24iKSl0aHJvdyBuZXcgRXJyb3IoQik7TCgidHJhY2VEZXByZWNhdGlvbiIpP2NvbnNvbGUudHJhY2UoQik6Y29uc29sZS53YXJuKEIpLEU9ITB9cmV0dXJuIG1lLmFwcGx5''@;'; + put 'put ''KHRoaXMsYXJndW1lbnRzKX19fSw3MzM5MzooWGUsSmUsTCk9PnshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5leHBvcnRzLmlzX3VyaT1FLG1lLmV4cG9ydHMuaXNfaHR0cF91cmk9TWUsbWUuZXhwb3J0cy5pc19odHRwc191cmk9VSxtZS5leHBvcnRzLmlzX3dlYl91cmk9USxtZS5l''@;'; + put 'put ''eHBvcnRzLmlzVXJpPUUsbWUuZXhwb3J0cy5pc0h0dHBVcmk9TWUsbWUuZXhwb3J0cy5pc0h0dHBzVXJpPVUsbWUuZXhwb3J0cy5pc1dlYlVyaT1RO3ZhciBCPWZ1bmN0aW9uKFope3JldHVybiBaLm1hdGNoKC8oPzooW146XC8/I10rKTopPyg/OlwvXC8oW15cLz8jXSopKT8oW14/I10qKSg/''@;'; + put 'put ''Olw/KFteI10qKSk/KD86IyguKikpPy8pfTtmdW5jdGlvbiBFKFope2lmKFomJiEvW15hLXowLTlcOlwvXD9cI1xbXF1cQFwhXCRcJlwnXChcKVwqXCtcLFw7XD1cLlwtXF9cflwlXS9pLnRlc3QoWikmJiEvJVteMC05YS1mXS9pLnRlc3QoWikmJiEvJVswLTlhLWZdKDo/W14wLTlhLWZdfCQp''@;'; + put 'put ''L2kudGVzdChaKSl7dmFyIGllLFksVyxOLGVlLGxlPSIiLHE9IiI7aWYoWT0oaWU9QihaKSlbMl0sVz1pZVszXSxOPWllWzRdLGVlPWllWzVdLChsZT1pZVsxXSkmJmxlLmxlbmd0aCYmVy5sZW5ndGg+PTApe2lmKFkmJlkubGVuZ3RoKXtpZigwIT09Vy5sZW5ndGgmJiEvXlwvLy50ZXN0KFcp''@;'; + put 'put ''KXJldHVybn1lbHNlIGlmKC9eXC9cLy8udGVzdChXKSlyZXR1cm47aWYoL15bYS16XVthLXowLTlcK1wtXC5dKiQvLnRlc3QobGUudG9Mb3dlckNhc2UoKSkpcmV0dXJuIHErPWxlKyI6IixZJiZZLmxlbmd0aCYmKHErPSIvLyIrWSkscSs9VyxOJiZOLmxlbmd0aCYmKHErPSI/IitOKSxlZSYm''@;'; + put 'put ''ZWUubGVuZ3RoJiYocSs9IiMiK2VlKSxxfX19ZnVuY3Rpb24gTWUoWixpZSl7aWYoRShaKSl7dmFyIGxlLE4scSxKLFk9IiIsVz0iIixlZT0iIixzZT0iIjtpZihXPShsZT1CKFopKVsyXSxOPWxlWzNdLHE9bGVbNF0sSj1sZVs1XSxZPWxlWzFdKXtpZihpZSl7aWYoImh0dHBzIiE9WS50b0xv''@;'; + put 'put ''d2VyQ2FzZSgpKXJldHVybn1lbHNlIGlmKCJodHRwIiE9WS50b0xvd2VyQ2FzZSgpKXJldHVybjtpZihXKXJldHVybi86KFxkKykkLy50ZXN0KFcpJiYoZWU9Vy5tYXRjaCgvOihcZCspJC8pWzBdLFc9Vy5yZXBsYWNlKC86XGQrJC8sIiIpKSxzZSs9WSsiOiIsc2UrPSIvLyIrVyxlZSYmKHNl''@;'; + put 'put ''Kz1lZSksc2UrPU4scSYmcS5sZW5ndGgmJihzZSs9Ij8iK3EpLEomJkoubGVuZ3RoJiYoc2UrPSIjIitKKSxzZX19fWZ1bmN0aW9uIFUoWil7cmV0dXJuIE1lKFosITApfWZ1bmN0aW9uIFEoWil7cmV0dXJuIE1lKFopfHxVKFopfX0oWGU9TC5ubWQoWGUpKX0sMjkwMzU6ZnVuY3Rpb24oWGUs''@;'; + put 'put ''SmUsTCl7IWZ1bmN0aW9uKG1lKXt2YXIgQj1mdW5jdGlvbihaKXtaPXZvaWQgMCE9PShaPVp8fHt9KT9aOnt9O3ZhciBsZSxpZT17fTtmb3IobGUgaW4gWilaLmhhc093blByb3BlcnR5KGxlKSYmKGllW2xlXT1aW2xlXSk7Wi5hcmd1bWVudHM9W10sWi50aGlzUHJvZ3JhbT0iLi90aGlzLnBy''@;'; + put 'put ''b2dyYW0iLFoucXVpdD1mdW5jdGlvbihwdCxJdCl7dGhyb3cgSXR9LFoucHJlUnVuPVtdLFoucG9zdFJ1bj1bXTt2YXIgcSxKLFk9ITEsVz0hMSxOPSExLGVlPSExO2lmKFouRU5WSVJPTk1FTlQpaWYoIldFQiI9PT1aLkVOVklST05NRU5UKVk9ITA7ZWxzZSBpZigiV09SS0VSIj09PVouRU5W''@;'; + put 'put ''SVJPTk1FTlQpVz0hMDtlbHNlIGlmKCJOT0RFIj09PVouRU5WSVJPTk1FTlQpTj0hMDtlbHNle2lmKCJTSEVMTCIhPT1aLkVOVklST05NRU5UKXRocm93IG5ldyBFcnJvcigiTW9kdWxlWydFTlZJUk9OTUVOVCddIHZhbHVlIGlzIG5vdCB2YWxpZC4gbXVzdCBiZSBvbmUgb2Y6IFdFQnxXT1JL''@;'; + put 'put ''RVJ8Tk9ERXxTSEVMTC4iKTtlZT0hMH1lbHNlIFk9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3csVz0iZnVuY3Rpb24iPT10eXBlb2YgaW1wb3J0U2NyaXB0cyxOPSJvYmplY3QiPT10eXBlb2YgcHJvY2VzcyYmIVkmJiFXLGVlPSFZJiYhTiYmIVc7Zm9yKGxlIGluIE4/KFoucmVhZD1mdW5jdGlv''@;'; + put 'put ''bihJdCxQdCl7dmFyIGZlO3JldHVybihmZT1VdShJdCkpfHwocXx8KHE9TCgzNTE1OSkpLEp8fChKPUwoNzU3MDEpKSxJdD1KLm5vcm1hbGl6ZShJdCksZmU9cS5yZWFkRmlsZVN5bmMoSXQpKSxQdD9mZTpmZS50b1N0cmluZygpfSxaLnJlYWRCaW5hcnk9ZnVuY3Rpb24oSXQpe3ZhciBQdD1a''@;'; + put 'put ''LnJlYWQoSXQsITApO3JldHVybiBQdC5idWZmZXJ8fChQdD1uZXcgVWludDhBcnJheShQdCkpLE8oUHQuYnVmZmVyKSxQdH0scHJvY2Vzcy5hcmd2Lmxlbmd0aD4xJiYoWi50aGlzUHJvZ3JhbT1wcm9jZXNzLmFyZ3ZbMV0ucmVwbGFjZSgvXFwvZywiLyIpKSxaLmFyZ3VtZW50cz1wcm9jZXNz''@;'; + put 'put ''LmFyZ3Yuc2xpY2UoMiksWGUuZXhwb3J0cz1aLHByb2Nlc3Mub24oInVuY2F1Z2h0RXhjZXB0aW9uIixmdW5jdGlvbihwdCl7aWYoIShwdCBpbnN0YW5jZW9mIENhKSl0aHJvdyBwdH0pLHByb2Nlc3Mub24oInVuaGFuZGxlZFJlamVjdGlvbiIsZnVuY3Rpb24ocHQsSXQpe3Byb2Nlc3MuZXhp''@;'; + put 'put ''dCgxKX0pLFouaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiJbRW1zY3JpcHRlbiBNb2R1bGUgb2JqZWN0XSJ9KTplZT8oInVuZGVmaW5lZCIhPXR5cGVvZiByZWFkJiYoWi5yZWFkPWZ1bmN0aW9uKEl0KXt2YXIgUHQ9VXUoSXQpO3JldHVybiBQdD9ZYShQdCk6cmVhZChJdCl9KSxaLnJlYWRC''@;'; + put 'put ''aW5hcnk9ZnVuY3Rpb24oSXQpe3ZhciBQdDtyZXR1cm4oUHQ9VXUoSXQpKXx8KCJmdW5jdGlvbiI9PXR5cGVvZiByZWFkYnVmZmVyP25ldyBVaW50OEFycmF5KHJlYWRidWZmZXIoSXQpKTooTygib2JqZWN0Ij09dHlwZW9mKFB0PXJlYWQoSXQsImJpbmFyeSIpKSksUHQpKX0sInVuZGVmaW5l''@;'; + put 'put ''ZCIhPXR5cGVvZiBzY3JpcHRBcmdzP1ouYXJndW1lbnRzPXNjcmlwdEFyZ3M6dm9pZCAwIT09YXJndW1lbnRzJiYoWi5hcmd1bWVudHM9YXJndW1lbnRzKSwiZnVuY3Rpb24iPT10eXBlb2YgcXVpdCYmKFoucXVpdD1mdW5jdGlvbihwdCxJdCl7cXVpdChwdCl9KSk6KFl8fFcpJiYoWi5yZWFk''@;'; + put 'put ''PWZ1bmN0aW9uKEl0KXt0cnl7dmFyIFB0PW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gUHQub3BlbigiR0VUIixJdCwhMSksUHQuc2VuZChudWxsKSxQdC5yZXNwb25zZVRleHR9Y2F0Y2gocnQpe3ZhciBmZT1VdShJdCk7aWYoZmUpcmV0dXJuIFlhKGZlKTt0aHJvdyBydH19LFcmJihaLnJl''@;'; + put 'put ''YWRCaW5hcnk9ZnVuY3Rpb24oSXQpe3RyeXt2YXIgUHQ9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBQdC5vcGVuKCJHRVQiLEl0LCExKSxQdC5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixQdC5zZW5kKG51bGwpLG5ldyBVaW50OEFycmF5KFB0LnJlc3BvbnNlKX1jYXRjaChydCl7dmFy''@;'; + put 'put ''IGZlPVV1KEl0KTtpZihmZSlyZXR1cm4gZmU7dGhyb3cgcnR9fSksWi5yZWFkQXN5bmM9ZnVuY3Rpb24oSXQsUHQsZmUpe3ZhciBydD1uZXcgWE1MSHR0cFJlcXVlc3Q7cnQub3BlbigiR0VUIixJdCwhMCkscnQucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIscnQub25sb2FkPWZ1bmN0aW9u''@;'; + put 'put ''KCl7aWYoMjAwPT1ydC5zdGF0dXN8fDA9PXJ0LnN0YXR1cyYmcnQucmVzcG9uc2UpUHQocnQucmVzcG9uc2UpO2Vsc2V7dmFyIEp0PVV1KEl0KTtKdD9QdChKdC5idWZmZXIpOmZlKCl9fSxydC5vbmVycm9yPWZlLHJ0LnNlbmQobnVsbCl9LHZvaWQgMCE9PWFyZ3VtZW50cyYmKFouYXJndW1l''@;'; + put 'put ''bnRzPWFyZ3VtZW50cyksWi5zZXRXaW5kb3dUaXRsZT1mdW5jdGlvbihwdCl7ZG9jdW1lbnQudGl0bGU9cHR9KSxaLnByaW50PSJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZT9jb25zb2xlLmxvZzoidW5kZWZpbmVkIiE9dHlwZW9mIHByaW50P3ByaW50Om51bGwsWi5wcmludEVycj0idW5k''@;'; + put 'put ''ZWZpbmVkIiE9dHlwZW9mIHByaW50RXJyP3ByaW50RXJyOiJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS53YXJufHxaLnByaW50LFoucHJpbnQ9Wi5wcmludCxaLnByaW50RXJyPVoucHJpbnRFcnIsaWUpaWUuaGFzT3duUHJvcGVydHkobGUpJiYoWltsZV09aWVbbGVdKTtp''@;'; + put 'put ''ZT12b2lkIDA7dmFyIHNlPTE2O2Z1bmN0aW9uIG9lKHB0KXtPKCFqdCk7dmFyIEl0PXl0O3JldHVybiB5dD15dCtwdCsxNSYtMTYsSXR9ZnVuY3Rpb24gY2UocHQpe08obG4pO3ZhciBJdD1MdFtsbj4+Ml0sUHQ9SXQrcHQrMTUmLTE2O3JldHVybiBMdFtsbj4+Ml09UHQsUHQ+PXNyJiYhYm4o''@;'; + put 'put ''KT8oTHRbbG4+PjJdPUl0LDApOkl0fWZ1bmN0aW9uIGRlKHB0LEl0KXtyZXR1cm4gSXR8fChJdD1zZSksTWF0aC5jZWlsKHB0L0l0KSpJdH1mdW5jdGlvbiB2ZShwdCl7c3dpdGNoKHB0KXtjYXNlImkxIjpjYXNlImk4IjpyZXR1cm4gMTtjYXNlImkxNiI6cmV0dXJuIDI7Y2FzZSJpMzIiOmNh''@;'; + put 'put ''c2UiZmxvYXQiOnJldHVybiA0O2Nhc2UiaTY0IjpjYXNlImRvdWJsZSI6cmV0dXJuIDg7ZGVmYXVsdDppZigiKiI9PT1wdFtwdC5sZW5ndGgtMV0pcmV0dXJuIDQ7aWYoImkiPT09cHRbMF0pe3ZhciBJdD1wYXJzZUludChwdC5zdWJzdHIoMSkpO3JldHVybiBPKEl0JTg9PTApLEl0Lzh9cmV0''@;'; + put 'put ''dXJuIDB9fW5ldyBBcnJheSgwKTt2YXIgVGU9OCxFZT0wO2Z1bmN0aW9uIE8ocHQsSXQpe3B0fHxmMigiQXNzZXJ0aW9uIGZhaWxlZDogIitJdCl9ZnVuY3Rpb24geihwdCl7dmFyIEl0PVpbIl8iK3B0XTtyZXR1cm4gTyhJdCwiQ2Fubm90IGNhbGwgdW5rbm93biBmdW5jdGlvbiAiK3B0KyIs''@;'; + put 'put ''IG1ha2Ugc3VyZSBpdCBpcyBleHBvcnRlZCIpLEl0fXZhciBuZT17c3RhY2tTYXZlOmZ1bmN0aW9uKCl7UXMoKX0sc3RhY2tSZXN0b3JlOmZ1bmN0aW9uKCl7V3AoKX0sYXJyYXlUb0M6ZnVuY3Rpb24ocHQpe3ZhciBJdD1RZyhwdC5sZW5ndGgpO3JldHVybiB6bihwdCxJdCksSXR9LHN0cmlu''@;'; + put 'put ''Z1RvQzpmdW5jdGlvbihwdCl7dmFyIEl0PTA7aWYobnVsbCE9cHQmJjAhPT1wdCl7dmFyIFB0PTErKHB0Lmxlbmd0aDw8Mik7UWUocHQsSXQ9UWcoUHQpLFB0KX1yZXR1cm4gSXR9fSx0ZT17c3RyaW5nOm5lLnN0cmluZ1RvQyxhcnJheTpuZS5hcnJheVRvQ307ZnVuY3Rpb24geChwdCxJdCxQ''@;'; + put 'put ''dCxmZSxydCl7dmFyIGE9eihwdCksSnQ9W10saHI9MDtpZihmZSlmb3IodmFyIFBpPTA7UGk8ZmUubGVuZ3RoO1BpKyspe3ZhciBqbj10ZVtQdFtQaV1dO2puPygwPT09aHImJihocj1RcygpKSxKdFtQaV09am4oZmVbUGldKSk6SnRbUGldPWZlW1BpXX12YXIgXz1hLmFwcGx5KG51bGwsSnQp''@;'; + put 'put ''O3JldHVybiJzdHJpbmciPT09SXQmJihfPUYoXykpLDAhPT1ociYmV3AoaHIpLF99ZnVuY3Rpb24gUChwdCxJdCxQdCxmZSl7c3dpdGNoKCIqIj09PShQdD1QdHx8Imk4IikuY2hhckF0KFB0Lmxlbmd0aC0xKSYmKFB0PSJpMzIiKSxQdCl7Y2FzZSJpMSI6Y2FzZSJpOCI6X3RbcHQ+PjBdPUl0''@;'; + put 'put ''O2JyZWFrO2Nhc2UiaTE2IjpldFtwdD4+MV09SXQ7YnJlYWs7Y2FzZSJpMzIiOkx0W3B0Pj4yXT1JdDticmVhaztjYXNlImk2NCI6dGVtcEk2ND1bSXQ+Pj4wLCh0ZW1wRG91YmxlPUl0LCtCbih0ZW1wRG91YmxlKT49MT90ZW1wRG91YmxlPjA/KDB8UnIoK29yKHRlbXBEb3VibGUvNDI5NDk2''@;'; + put 'put ''NzI5NiksNDI5NDk2NzI5NSkpPj4+MDp+fitKbigodGVtcERvdWJsZS0rKH5+dGVtcERvdWJsZT4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MCldLEx0W3B0Pj4yXT10ZW1wSTY0WzBdLEx0W3B0KzQ+PjJdPXRlbXBJNjRbMV07YnJlYWs7Y2FzZSJmbG9hdCI6ZnRbcHQ+PjJdPUl0O2JyZWFrO2Nh''@;'; + put 'put ''c2UiZG91YmxlIjpIdFtwdD4+M109SXQ7YnJlYWs7ZGVmYXVsdDpmMigiaW52YWxpZCB0eXBlIGZvciBzZXRWYWx1ZTogIitQdCl9fXZhciBWPTIsVD00O2Z1bmN0aW9uIFMocHQsSXQsUHQsZmUpe3ZhciBydCxhOyJudW1iZXIiPT10eXBlb2YgcHQ/KHJ0PSEwLGE9cHQpOihydD0hMSxhPXB0''@;'; + put 'put ''Lmxlbmd0aCk7dmFyIGhyLEp0PSJzdHJpbmciPT10eXBlb2YgSXQ/SXQ6bnVsbDtpZihocj1QdD09VD9mZTpbImZ1bmN0aW9uIj09dHlwZW9mIHpwP3pwOm9lLFFnLG9lLGNlXVt2b2lkIDA9PT1QdD9WOlB0XShNYXRoLm1heChhLEp0PzE6SXQubGVuZ3RoKSkscnQpe3ZhciBQaTtmb3IoZmU9''@;'; + put 'put ''aHIsTygwPT0oMyZocikpLFBpPWhyKygtNCZhKTtmZTxQaTtmZSs9NClMdFtmZT4+Ml09MDtmb3IoUGk9aHIrYTtmZTxQaTspX3RbZmUrKz4+MF09MDtyZXR1cm4gaHJ9aWYoImk4Ij09PUp0KXJldHVybiB0dC5zZXQocHQuc3ViYXJyYXl8fHB0LnNsaWNlP3B0Om5ldyBVaW50OEFycmF5KHB0''@;'; + put 'put ''KSxociksaHI7Zm9yKHZhciBfLEFvLFNpLGpuPTA7am48YTspMCE9PShfPUp0fHxJdFtqbl0pPygiaTY0Ij09XyYmKF89ImkzMiIpLFAoaHIram4scHRbam5dLF8pLFNpIT09XyYmKEFvPXZlKF8pLFNpPV8pLGpuKz1Bbyk6am4rKztyZXR1cm4gaHJ9ZnVuY3Rpb24gRihwdCxJdCl7aWYoMD09''@;'; + put 'put ''PUl0fHwhcHQpcmV0dXJuIiI7Zm9yKHZhciBmZSxQdD0wLHJ0PTA7UHR8PWZlPXR0W3B0K3J0Pj4wXSwoMCE9ZmV8fEl0KSYmKHJ0KyssIUl0fHxydCE9SXQpOyk7SXR8fChJdD1ydCk7dmFyIGE9IiI7aWYoUHQ8MTI4KXtmb3IodmFyIGhyO0l0PjA7KWhyPVN0cmluZy5mcm9tQ2hhckNvZGUu''@;'; + put 'put ''YXBwbHkoU3RyaW5nLHR0LnN1YmFycmF5KHB0LHB0K01hdGgubWluKEl0LDEwMjQpKSksYT1hP2EraHI6aHIscHQrPTEwMjQsSXQtPTEwMjQ7cmV0dXJuIGF9cmV0dXJuIERlKHB0KX12YXIgeWU9InVuZGVmaW5lZCIhPXR5cGVvZiBUZXh0RGVjb2Rlcj9uZXcgVGV4dERlY29kZXIoInV0Zjgi''@;'; + put 'put ''KTp2b2lkIDA7ZnVuY3Rpb24gQ2UocHQsSXQpe2Zvcih2YXIgUHQ9SXQ7cHRbUHRdOykrK1B0O2lmKFB0LUl0PjE2JiZwdC5zdWJhcnJheSYmeWUpcmV0dXJuIHllLmRlY29kZShwdC5zdWJhcnJheShJdCxQdCkpO2Zvcih2YXIgZmUscnQsYSxKdCxocixqbj0iIjs7KXtpZighKGZlPXB0W0l0''@;'; + put 'put ''KytdKSlyZXR1cm4gam47aWYoMTI4JmZlKWlmKHJ0PTYzJnB0W0l0KytdLDE5MiE9KDIyNCZmZSkpaWYoYT02MyZwdFtJdCsrXSwyMjQ9PSgyNDAmZmUpP2ZlPSgxNSZmZSk8PDEyfHJ0PDw2fGE6KEp0PTYzJnB0W0l0KytdLDI0MD09KDI0OCZmZSk/ZmU9KDcmZmUpPDwxOHxydDw8MTJ8YTw8''@;'; + put 'put ''NnxKdDooaHI9NjMmcHRbSXQrK10sZmU9MjQ4PT0oMjUyJmZlKT8oMyZmZSk8PDI0fHJ0PDwxOHxhPDwxMnxKdDw8NnxocjooMSZmZSk8PDMwfHJ0PDwyNHxhPDwxOHxKdDw8MTJ8aHI8PDZ8NjMmcHRbSXQrK10pKSxmZTw2NTUzNilqbis9U3RyaW5nLmZyb21DaGFyQ29kZShmZSk7ZWxzZXt2''@;'; + put 'put ''YXIgXz1mZS02NTUzNjtqbis9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxfPj4xMCw1NjMyMHwxMDIzJl8pfWVsc2Ugam4rPVN0cmluZy5mcm9tQ2hhckNvZGUoKDMxJmZlKTw8NnxydCk7ZWxzZSBqbis9U3RyaW5nLmZyb21DaGFyQ29kZShmZSl9fWZ1bmN0aW9uIERlKHB0KXtyZXR1cm4g''@;'; + put 'put ''Q2UodHQscHQpfWZ1bmN0aW9uIFBlKHB0LEl0LFB0LGZlKXtpZighKGZlPjApKXJldHVybiAwO2Zvcih2YXIgcnQ9UHQsYT1QdCtmZS0xLEp0PTA7SnQ8cHQubGVuZ3RoOysrSnQpe3ZhciBocj1wdC5jaGFyQ29kZUF0KEp0KTtpZihocj49NTUyOTYmJmhyPD01NzM0MyYmKGhyPTY1NTM2Kygo''@;'; + put 'put ''MTAyMyZocik8PDEwKXwxMDIzJnB0LmNoYXJDb2RlQXQoKytKdCkpLGhyPD0xMjcpe2lmKFB0Pj1hKWJyZWFrO0l0W1B0KytdPWhyfWVsc2UgaWYoaHI8PTIwNDcpe2lmKFB0KzE+PWEpYnJlYWs7SXRbUHQrK109MTkyfGhyPj42LEl0W1B0KytdPTEyOHw2MyZocn1lbHNlIGlmKGhyPD02NTUz''@;'; + put 'put ''NSl7aWYoUHQrMj49YSlicmVhaztJdFtQdCsrXT0yMjR8aHI+PjEyLEl0W1B0KytdPTEyOHxocj4+NiY2MyxJdFtQdCsrXT0xMjh8NjMmaHJ9ZWxzZSBpZihocjw9MjA5NzE1MSl7aWYoUHQrMz49YSlicmVhaztJdFtQdCsrXT0yNDB8aHI+PjE4LEl0W1B0KytdPTEyOHxocj4+MTImNjMsSXRb''@;'; + put 'put ''UHQrK109MTI4fGhyPj42JjYzLEl0W1B0KytdPTEyOHw2MyZocn1lbHNlIGlmKGhyPD02NzEwODg2Myl7aWYoUHQrND49YSlicmVhaztJdFtQdCsrXT0yNDh8aHI+PjI0LEl0W1B0KytdPTEyOHxocj4+MTgmNjMsSXRbUHQrK109MTI4fGhyPj4xMiY2MyxJdFtQdCsrXT0xMjh8aHI+PjYmNjMs''@;'; + put 'put ''SXRbUHQrK109MTI4fDYzJmhyfWVsc2V7aWYoUHQrNT49YSlicmVhaztJdFtQdCsrXT0yNTJ8aHI+PjMwLEl0W1B0KytdPTEyOHxocj4+MjQmNjMsSXRbUHQrK109MTI4fGhyPj4xOCY2MyxJdFtQdCsrXT0xMjh8aHI+PjEyJjYzLEl0W1B0KytdPTEyOHxocj4+NiY2MyxJdFtQdCsrXT0xMjh8''@;'; + put 'put ''NjMmaHJ9fXJldHVybiBJdFtQdF09MCxQdC1ydH1mdW5jdGlvbiBRZShwdCxJdCxQdCl7cmV0dXJuIFBlKHB0LHR0LEl0LFB0KX1mdW5jdGlvbiAkZShwdCl7Zm9yKHZhciBJdD0wLFB0PTA7UHQ8cHQubGVuZ3RoOysrUHQpe3ZhciBmZT1wdC5jaGFyQ29kZUF0KFB0KTtmZT49NTUyOTYmJmZl''@;'; + put 'put ''PD01NzM0MyYmKGZlPTY1NTM2KygoMTAyMyZmZSk8PDEwKXwxMDIzJnB0LmNoYXJDb2RlQXQoKytQdCkpLGZlPD0xMjc/KytJdDpJdCs9ZmU8PTIwNDc/MjpmZTw9NjU1MzU/MzpmZTw9MjA5NzE1MT80OmZlPD02NzEwODg2Mz81OjZ9cmV0dXJuIEl0fWZ1bmN0aW9uIHd0KHB0KXt2YXIgSXQ9''@;'; + put 'put ''JGUocHQpKzEsUHQ9enAoSXQpO3JldHVybiBQdCYmUGUocHQsX3QsUHQsSXQpLFB0fWZ1bmN0aW9uIEF0KHB0KXtyZXR1cm4gcHQucmVwbGFjZSgvX19aW1x3XGRfXSsvZyxmdW5jdGlvbihQdCl7cmV0dXJuIFB0PT1QdD9QdDpQdCsiIFsiK1B0KyJdIn0pfWZ1bmN0aW9uIG10KCl7dmFyIHB0''@;'; + put 'put ''PW5ldyBFcnJvcjtpZighcHQuc3RhY2spe3RyeXt0aHJvdyBuZXcgRXJyb3IoMCl9Y2F0Y2goSXQpe3B0PUl0fWlmKCFwdC5zdGFjaylyZXR1cm4iKG5vIHN0YWNrIHRyYWNlIGF2YWlsYWJsZSkifXJldHVybiBwdC5zdGFjay50b1N0cmluZygpfWZ1bmN0aW9uIGh0KCl7dmFyIHB0PW10KCk7''@;'; + put 'put ''cmV0dXJuIFouZXh0cmFTdGFja1RyYWNlJiYocHQrPSJcbiIrWi5leHRyYVN0YWNrVHJhY2UoKSksQXQocHQpfSJ1bmRlZmluZWQiIT10eXBlb2YgVGV4dERlY29kZXImJm5ldyBUZXh0RGVjb2RlcigidXRmLTE2bGUiKTt2YXIgb24sX3QsdHQsZXQsTHQsZnQsSHQseXQsanQsUXQsZ24sZG4s''@;'; + put 'put ''eW4sbG4sQnQ9MTYzODQ7ZnVuY3Rpb24gR2UoKXtaLkhFQVA4PV90PW5ldyBJbnQ4QXJyYXkob24pLFouSEVBUDE2PWV0PW5ldyBJbnQxNkFycmF5KG9uKSxaLkhFQVAzMj1MdD1uZXcgSW50MzJBcnJheShvbiksWi5IRUFQVTg9dHQ9bmV3IFVpbnQ4QXJyYXkob24pLFouSEVBUFUxNj1uZXcg''@;'; + put 'put ''VWludDE2QXJyYXkob24pLFouSEVBUFUzMj1uZXcgVWludDMyQXJyYXkob24pLFouSEVBUEYzMj1mdD1uZXcgRmxvYXQzMkFycmF5KG9uKSxaLkhFQVBGNjQ9SHQ9bmV3IEZsb2F0NjRBcnJheShvbil9ZnVuY3Rpb24gTm4oKXtmMigiQ2Fubm90IGVubGFyZ2UgbWVtb3J5IGFycmF5cy4gRWl0''@;'; + put 'put ''aGVyICgxKSBjb21waWxlIHdpdGggIC1zIFRPVEFMX01FTU9SWT1YICB3aXRoIFggaGlnaGVyIHRoYW4gdGhlIGN1cnJlbnQgdmFsdWUgIitzcisiLCAoMikgY29tcGlsZSB3aXRoICAtcyBBTExPV19NRU1PUllfR1JPV1RIPTEgIHdoaWNoIGFsbG93cyBpbmNyZWFzaW5nIHRoZSBzaXplIGF0''@;'; + put 'put ''IHJ1bnRpbWUgYnV0IHByZXZlbnRzIHNvbWUgb3B0aW1pemF0aW9ucywgKDMpIHNldCBNb2R1bGUuVE9UQUxfTUVNT1JZIHRvIGEgaGlnaGVyIHZhbHVlIGJlZm9yZSB0aGUgcHJvZ3JhbSBydW5zLCBvciAoNCkgaWYgeW91IHdhbnQgbWFsbG9jIHRvIHJldHVybiBOVUxMICgwKSBpbnN0ZWFk''@;'; + put 'put ''IG9mIHRoaXMgYWJvcnQsIGNvbXBpbGUgd2l0aCAgLXMgQUJPUlRJTkdfTUFMTE9DPTAgIil9ZnVuY3Rpb24gYm4oKXtObigpfXl0PVF0PWduPWRuPXluPWxuPTAsanQ9ITE7dmFyIGVyPVouVE9UQUxfU1RBQ0t8fDUyNDI4ODAsc3I9Wi5UT1RBTF9NRU1PUll8fDE2Nzc3MjE2O2Z1bmN0aW9u''@;'; + put 'put ''IFhuKCl7cmV0dXJuIHNyfWlmKHNyPGVyJiZaLnByaW50RXJyKCJUT1RBTF9NRU1PUlkgc2hvdWxkIGJlIGxhcmdlciB0aGFuIFRPVEFMX1NUQUNLLCB3YXMgIitzcisiISAoVE9UQUxfU1RBQ0s9IitlcisiKSIpLFouYnVmZmVyP29uPVouYnVmZmVyOihvbj1uZXcgQXJyYXlCdWZmZXIoc3Ip''@;'; + put 'put ''LFouYnVmZmVyPW9uKSxHZSgpLEx0WzBdPTE2Njg1MDkwMjksZXRbMV09MjU0NTksMTE1IT09dHRbMl18fDk5IT09dHRbM10pdGhyb3ciUnVudGltZSBlcnJvcjogZXhwZWN0ZWQgdGhlIHN5c3RlbSB0byBiZSBsaXR0bGUtZW5kaWFuISI7ZnVuY3Rpb24gRnIocHQpe2Zvcig7cHQubGVuZ3Ro''@;'; + put 'put ''PjA7KXt2YXIgSXQ9cHQuc2hpZnQoKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgSXQpe3ZhciBQdD1JdC5mdW5jOyJudW1iZXIiPT10eXBlb2YgUHQ/dm9pZCAwPT09SXQuYXJnP1ouZHluQ2FsbF92KFB0KTpaLmR5bkNhbGxfdmkoUHQsSXQuYXJnKTpQdCh2b2lkIDA9PT1JdC5hcmc/bnVsbDpJ''@;'; + put 'put ''dC5hcmcpfWVsc2UgSXQoKX19dmFyIHhyPVtdLHF0PVtdLHByPVtdLG5yPVtdLEFuPVtdLHFuPSExO2Z1bmN0aW9uIHBuKCl7aWYoWi5wcmVSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBaLnByZVJ1biYmKFoucHJlUnVuPVtaLnByZVJ1bl0pO1oucHJlUnVuLmxlbmd0aDspd24oWi5wcmVS''@;'; + put 'put ''dW4uc2hpZnQoKSk7RnIoeHIpfWZ1bmN0aW9uIEtuKCl7cW58fChxbj0hMCxGcihxdCkpfWZ1bmN0aW9uIE50KCl7RnIocHIpfWZ1bmN0aW9uIHNuKCl7RnIobnIpfWZ1bmN0aW9uIFVuKCl7aWYoWi5wb3N0UnVuKWZvcigiZnVuY3Rpb24iPT10eXBlb2YgWi5wb3N0UnVuJiYoWi5wb3N0UnVu''@;'; + put 'put ''PVtaLnBvc3RSdW5dKTtaLnBvc3RSdW4ubGVuZ3RoOyl0bihaLnBvc3RSdW4uc2hpZnQoKSk7RnIoQW4pfWZ1bmN0aW9uIHduKHB0KXt4ci51bnNoaWZ0KHB0KX1mdW5jdGlvbiB0bihwdCl7QW4udW5zaGlmdChwdCl9ZnVuY3Rpb24gem4ocHQsSXQpe190LnNldChwdCxJdCl9ZnVuY3Rpb24g''@;'; + put 'put ''VHIocHQsSXQsUHQpe2Zvcih2YXIgZmU9MDtmZTxwdC5sZW5ndGg7KytmZSlfdFtJdCsrPj4wXT1wdC5jaGFyQ29kZUF0KGZlKTtQdHx8KF90W0l0Pj4wXT0wKX0oIU1hdGguaW11bHx8LTUhPT1NYXRoLmltdWwoNDI5NDk2NzI5NSw1KSkmJihNYXRoLmltdWw9ZnVuY3Rpb24oSXQsUHQpe3Zh''@;'; + put 'put ''ciBydD02NTUzNSZJdCxKdD02NTUzNSZQdDtyZXR1cm4gcnQqSnQrKChJdD4+PjE2KSpKdCtydCooUHQ+Pj4xNik8PDE2KXwwfSksTWF0aC5pbXVsPU1hdGguaW11bCxNYXRoLmNsejMyfHwoTWF0aC5jbHozMj1mdW5jdGlvbihwdCl7cHQ+Pj49MDtmb3IodmFyIEl0PTA7SXQ8MzI7SXQrKylp''@;'; + put 'put ''ZihwdCYxPDwzMS1JdClyZXR1cm4gSXQ7cmV0dXJuIDMyfSksTWF0aC5jbHozMj1NYXRoLmNsejMyLE1hdGgudHJ1bmN8fChNYXRoLnRydW5jPWZ1bmN0aW9uKHB0KXtyZXR1cm4gcHQ8MD9NYXRoLmNlaWwocHQpOk1hdGguZmxvb3IocHQpfSksTWF0aC50cnVuYz1NYXRoLnRydW5jO3ZhciBC''@;'; + put 'put ''bj1NYXRoLmFicyxJbj0oTWF0aCxNYXRoLE1hdGgsTWF0aCxNYXRoLE1hdGgsTWF0aCxNYXRoLE1hdGgsTWF0aC5zcXJ0KSxKbj1NYXRoLmNlaWwsb3I9TWF0aC5mbG9vcixncj1NYXRoLnBvdyxScj0oTWF0aCxNYXRoLE1hdGgsTWF0aC5taW4pLG4wPShNYXRoLE1hdGgsTWF0aCwwKSxkMD1u''@;'; + put 'put ''dWxsLG0wPW51bGw7ZnVuY3Rpb24gRGkocHQpe24wKyssWi5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZaLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMobjApfWZ1bmN0aW9uIFcwKHB0KXtpZihuMC0tLFoubW9uaXRvclJ1bkRlcGVuZGVuY2llcyYmWi5tb25pdG9yUnVuRGVwZW5kZW5jaWVzKG4w''@;'; + put 'put ''KSwwPT1uMCYmKG51bGwhPT1kMCYmKGNsZWFySW50ZXJ2YWwoZDApLGQwPW51bGwpLG0wKSl7dmFyIEl0PW0wO20wPW51bGwsSXQoKX19Wi5wcmVsb2FkZWRJbWFnZXM9e30sWi5wcmVsb2FkZWRBdWRpb3M9e307dmFyIEVvPW51bGwscW89ImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt''@;'; + put 'put ''O2Jhc2U2NCwiO2Z1bmN0aW9uIGNhKHB0KXtyZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoP3B0LnN0YXJ0c1dpdGgocW8pOjA9PT1wdC5pbmRleE9mKHFvKX12YXIgbGw9W2Z1bmN0aW9uKHB0LEl0KXt2YXIgUHQ9RihwdCksZmU9RihJdCk7dm4uY3JlYXRlUGF0aCgiLyIsVTAu''@;'; + put 'put ''ZGlybmFtZShQdCkpLHZuLndyaXRlRmlsZShVMC5qb2luKCIvIixQdCksZmUpfV07ZnVuY3Rpb24gUWkocHQsSXQsUHQpe3JldHVybiBsbFtwdF0oSXQsUHQpfXl0PVRlKzE5NzIzMixxdC5wdXNoKCksRW89ImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCxBQUFBQUFBQThE''@;'; + put 'put ''OEFBQUFBQUFEd1B3QUFBQUFBQVBBL0FBQUFBQUFBOEQ4QUFBQUFBQUR3UHdBQUFBQUFBUEEvQUFBQUFBQUE4RDhBQUFBQUFBRHdQd0FBQUFBQUFQQS9BQUFBQUFBQThEOEFBQUFBQUFEd1B3QUFBQUFBQVBBL0FDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBQUFBQUFBQUFBSU1F''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlNRQUFBQUFBQUFGSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBRkpBQUFBQUFBQUFVa0FBSU1FQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlNRQUFBQUFBQUFGSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkpBQUFBQUFBQUFVa0FDRUFBQUFBQUFBQUFBQUFBQUFCQkFvQzhBQUFnQUFBQUJBQUFBQUFBQUFBSVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQ1dRQUFBQUFBQWdK''@;'; + put 'put ''WkFCSkREQUFBQUFBQUFBQUFBQUFBUVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVdFQUFBQUFBQUFCWVFBQUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQllRQUFBQUFBQUFGaEFBQUFBQUFBQUFBQUFBQUFBQUFBUVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVrQUFBQUFBQUFCU1FBQWdBd0lBQUFBQUFBQUFBQUFB''@;'; + put 'put ''RUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWUFBQUFBQUFBQUFBQUFBQUFBQkNRQUFBQUFBQUFFSkFBQUFBQUFBZ2cwQUFBQUFBQU1DSVFBQUFBQUFBQUZKQUFBQUFBQUFBVWtBQUFBQUFBQUFBQUFBQUFBQUFBRUpBQUFBQUFBQUFRa0FBQUFBQUFDQ0RRQUFBQUFBQXdJaEFBQUFBQUFBQVVrQUFB''@;'; + put 'put ''QUFBQUFCU1FBQ3d3UUFBQUFBQUFBQUFBQUFBRUVCQU5nQUFrd0FBQUFFQUFBQUFBQUFBUUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZKQUFBQUFBQUFBVWtBQUVBQUNBQUFBQUFBQUFBQUFBQkJBQUFBQUFBQUFBQUFGQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJZUUFBQUFBQUFBRmhBQUxEQkFBQUFBQUFBQUFBQUFBQUFBQnc2QUFBUUFBQUFBUUFBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFXRUFBQUFBQUFBQllRRUFnUGdNQUFBQUFBQUFBQUFBQUVFQWtPd0FBZWdBQUFBRUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGSkFBQUFBQUFBQVVrQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUJCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCU1FBQUFBQUFBQUZKQS8vLy8vLy8vNzMvLy8vLy8vLy92Zi8vLy8vLy8vKy8vLy8vLy8vLy83LzhBQUFBQUFBRDRQek16TXpNek05TS9Q''@;'; + put 'put ''QUFBQUFBQUFBQ2FtWm1abVptcFB3RUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUR3UHdFQUFBQUFBQUFBQWdBQUFBQUFBQUFBQUFBQUFBRHdQd0lBQUFBQUFBQUFBd0FBQUFBQUFBQUFBQUFBQUFEZ1B3TUFBQUFBQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUR3UHdRQUFBQUFBQUFBQlFBQUFB''@;'; + put 'put ''QUFBQUF6TXpNek16UHpQd1VBQUFBQUFBQUFCZ0FBQUFBQUFBQ2FtWm1abVpucFB3WUFBQUFBQUFBQUJ3QUFBQUFBQUFBQUFBQUFBQUR3UHdjQUFBQUFBQUFBQ0FBQUFBQUFBQUFBQUFBQUFBRGdQd2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''RUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFFQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFCQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFNek16TXpNejA3OEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQWdFWkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBbXBtWm1abVoyYjhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBek16TXpNelBqUHdBQUFBQUFBQUFBQUFBQUFBRUFBQUFGQUFBQUFBQUFBQUFBQUFBQUFBQUFleFN1UitGNjVMOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFFQUFBQUdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFIQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBQUFBQUFBQUVBQUFBRUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQVVBQUFBQUFBQUFBQUVBQUFBVEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJyNFZRQUFBUUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBSUFBQUFCQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBRUFBQUFEQUFBQUFBQUFBQUFBQUFBQWdHWkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFnR1pBbXBtWm1abVoyYjhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUZBQUFBQUFBQUFBQUFBQUFBZ0daQWV4''@;'; + put 'put ''U3VSK0Y2NUw4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFnRVpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmdBQUFBQUFBQUFBUUFBQUFF''@;'; + put 'put ''QUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQUFBQVFBQUFBRUFBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCZ0FBQUFBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFZQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBY0FBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQUFBQUVBQUFBRUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFrQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQklBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJNQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlVBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFvQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBc0FBQUFB''@;'; + put 'put ''QUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEwQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBNEFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQThBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBQUFFQUFB''@;'; + put 'put ''QUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCWUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmdBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUJjQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCa0FBQUFBQUFBQUFBRUFBQUFLQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUR3VlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBUEMvQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFB''@;'; + put 'put ''QUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFO''@;'; + put 'put ''QS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUDFpb05jMDdUdFUvSlhVQ21nZ2IyajhBQUFBQUFBRGdQd0FBQUFBQUFPQS9MTlNhNWgybjZqOXEzbkdLanVUb1AxaW9OYzA3VHRVL1dLZzF6VHRPMVQ5WXFEWE5PMDdWUHdBQUFBQUFBT0EvWGR4''@;'; + put 'put ''R0EzZ0w0ajhBQUFBQUFBRFFQMWlvTmMwN1R0VS9BQUFBQUFBQTBEL1R2T01VSGNuUlB3QUFBQUFBQU9BL0FBQUFBQUFBNEQ4QUFBQUFBQURnUHdBQUFBQUFBT0EvQUFBQUFBQUE0RDhBQUFBQUFBRGdQd0FBQUFBQUFPQS9BQUFBQUFBQTREOEFBQUFBQUFEZ1B3QUFBQUFBQU9BLzA3empGQjNK''@;'; + put 'put ''MFQvVHZPTVVIY25SUDEzY1JnTjRDK0kvWGR4R0EzZ0w0ajlkM0VZRGVBdmlQdzF4ckl2YmFOdy9aRjNjUmdONDdUL1NiMThIemhublB4QjZOcXMrVitVL0VIbzJxejVYNVQvU2IxOEh6aG5uUDNnTEpDaCtqT00vdFJYN3krN0o0VC9TYjE4SHpobm5QOUp2WHdmT0dlYy9XS2cxelR0TzFUK0lo''@;'; + put 'put ''VnJUdk9QWVA5SnZYd2ZPR2VjL2VBc2tLSDZNNHovRVFxMXAzbkhzUDlKdlh3Zk9HZWMvMG05ZkI4NFo1eisxRmZ2TDdzbmhQOUp2WHdmT0dlYy9FSG8ycXo1WDVUKzFGZnZMN3NuaFAzZ0xKQ2grak9NLzBtOWZCODRaNXovU2IxOEh6aG5uUDRZNDFzVnROTzQvMG05ZkI4NFo1ei9TYjE4SHpo''@;'; + put 'put ''bm5QM2dMSkNoK2pPTS9XS2cxelR0TzFUL1R2T01VSGNuUlAxaW9OYzA3VHRVL3BncEdKWFVDM2o4QUFBQUFBQURnUDFpb05jMDdUdFUvRFhHc2k5dG8zRDhBQUFBQUFBRGdQdzF4ckl2YmFOdy9BQUFBQUFBQTREOE5jYXlMMjJqY1AxaW9OYzA3VHRVL0FBQUFBQUFBNEQ4QUFBQUFBQURnUDlP''@;'; + put 'put ''ODR4UWR5ZEUvMDd6akZCM0owVDhBQUFBQUFBRGdQOU84NHhRZHlkRS9hdDV4aW83azZEOEFBQUFBQUFEZ1B3QUFBQUFBQU9BL0FBQUFBQUFBNEQ4QUFBQUFBQURnUDFpb05jMDdUdFUvaUlWYTA3emoyRC9Udk9NVUhjblJQd0FBQUFBQUFPQS9BQUFBQUFBQTREL1NiMThIemhublB3QUFBQUFB''@;'; + put 'put ''QU9BL0FBQUFBQUFBNEQ4TmNheUwyMmpjUC9Sc1ZuMnV0dDQvRVRZOHZWS1d5VC8wYkZaOXJyYmVQenNCVFlRTlQrRS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9B''@;'; + put 'put ''QUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFB''@;'; + put 'put ''QUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDlZcURYTk8wN1ZQd0FBQUFBQUFPQS9BQUFBQUFBQTREOCs2Tm1zK2x6RlB3QUFBQUFBQU9BL0FBQUFBQUFBNEQ4''@;'; + put 'put ''QUFBQUFBQURnUHdBQUFBQUFBT0EvZ25OR2xQWUd4ejhOY2F5TDIyamNQd0FBQUFBQUFPQS9XS2cxelR0TzFUOVlxRFhOTzA3VlA3VVYrOHZ1eWVFL3RSWDd5KzdKNFQ4QUFBQUFBQURRUHdBQUFBQUFBT0EvQUFBQUFBQUE0RDhBQUFBQUFBRGdQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEg4QlpJ''@;'; + put 'put ''VVB6Y1A2SzBOL2pDWk5ZL1dLZzF6VHRPMVQ4TmNheUwyMmpjUHcxeHJJdmJhTncvQUFBQUFBQUE0RDhBQUFBQUFBRHdQd0FBQUFBQUFQQS9BQUFBQUFBQTBEOE5jYXlMMjJqY1B3QUFBQUFBQU5BL1dLZzF6VHRPMVQ5WXFEWE5PMDdWUDFpb05jMDdUdFUvV0tnMXpUdE8xVDlZcURYTk8wN1ZQ''@;'; + put 'put ''MWlvTmMwN1R0VS9XS2cxelR0TzFUOVlxRFhOTzA3VlB3QUFBQUFBQU5BL1dLZzF6VHRPMVQ5WXFEWE5PMDdWUHdBQUFBQUFBTkEvV0tnMXpUdE8xVDlZcURYTk8wN1ZQMWlvTmMwN1R0VS9BQUFBQUFBQThEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFB''@;'; + put 'put ''QUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQOFJDclduZWNldy9BQUFBQUFBQTBEOS8yVDE1V0tqUlB3QUFBQUFBQU5B''@;'; + put 'put ''L0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvZUFza0tINk00ei9TYjE4SHpobm5QOFJDclduZWNldy9FL0pCejJiVjB6OEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvRUhvMnF6NVg1VDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFB''@;'; + put 'put ''QUFBQTBEL1R2T01VSGNuUlB3QUFBQUFBQU5BL0FBQUFBQUFBMEQvVHZPTVVIY25SUHdBQUFBQUFBT0EvMG05ZkI4NFo1ejhBQUFBQUFBRGdQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0''@;'; + put 'put ''ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJo''@;'; + put 'put ''dDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRM''@;'; + put 'put ''alAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhh''@;'; + put 'put ''RzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhN''@;'; + put 'put ''dU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vk''@;'; + put 'put ''b2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdF''@;'; + put 'put ''eTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlS''@;'; + put 'put ''Mmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZ''@;'; + put 'put ''VExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAx''@;'; + put 'put ''SGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4''@;'; + put 'put ''aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0v''@;'; + put 'put ''VWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2Jm''@;'; + put 'put ''R0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6''@;'; + put 'put ''OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0''@;'; + put 'put ''OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExq''@;'; + put 'put ''UDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFH''@;'; + put 'put ''M3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ei9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlk''@;'; + put 'put ''RS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6''@;'; + put 'put ''akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUC9Sc1ZuMnV0dFkvdFJYN3krN0o0VCsxRmZ2TDdzbmhQOFJDclduZWNldy9FSG8ycXo1WDVULzEyOWVCYzBiTVAxaW9OYzA3VHRVL1dLZzF6VHRP''@;'; + put 'put ''MVQrSWhWclR2T1BZUHdGTmhBMVByK0kvMDd6akZCM0owVDlZcURYTk8wN1ZQOU84NHhRZHlkRS8wN3pqRkIzSjBUKzFGZnZMN3NuaFA3VVYrOHZ1eWVFL3RSWDd5KzdKNFQrMUZmdkw3c25oUDdVVis4dnV5ZUUvdFJYN3krN0o0VCsxRmZ2TDdzbmhQN1VWKzh2dXllRS90Ulg3eSs3SjRUKzFG''@;'; + put 'put ''ZnZMN3NuaFA5Tzg0eFFkeWRFLzA3empGQjNKMFQ4QlRZUU5UNi9pUHdGTmhBMVByK0kvQVUyRURVK3Y0aisxRmZ2TDdzbmhQOHhkUzhnSFBmQS9FSG8ycXo1WDVUOFFlamFyUGxmbFA5SnZYd2ZPR2VjLzBtOWZCODRaNXo4UWVqYXJQbGZsUDNnTEpDaCtqT00vYXQ1eGlvN2s2RC9TYjE4SHpo''@;'; + put 'put ''bm5QOU84NHhRZHlkRS9BQUFBQUFBQTREOFFlamFyUGxmbFA3VVYrOHZ1eWVFL0xOU2E1aDJuNmovU2IxOEh6aG5uUDJyZWNZcU81T2cvRUhvMnF6NVg1VDlxM25HS2p1VG9QOUp2WHdmT0dlYy9FSG8ycXo1WDVUOTRDeVFvZm96alA5SnZYd2ZPR2VjL0VIbzJxejVYNVQrR09OYkZiVFR1UHhC''@;'; + put 'put ''Nk5xcytWK1UvRUhvMnF6NVg1VDk0Q3lRb2ZvempQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA2WUtSaVYxQXQ0L3RSWDd5KzdKNFQ5SXYzMGRPR2ZNUDdVVis4dnV5ZUUvdFJYN3krN0o0VDhBQUFBQUFBRGdQN1VWKzh2dXllRS90Ulg3eSs3SjRUL1R2T01VSGNuUlA3VVYrOHZ1''@;'; + put 'put ''eWVFL3RSWDd5KzdKNFQ5SXYzMGRPR2ZNUDBpL2ZSMDRaOHcvQUFBQUFBQUE0RDlJdjMwZE9HZk1QeXpVbXVZZHArby90Ulg3eSs3SjRUKzFGZnZMN3NuaFA3VVYrOHZ1eWVFL3RSWDd5KzdKNFQ5WXFEWE5PMDdWUHdBQUFBQUFBT0EvMDd6akZCM0owVCsxRmZ2TDdzbmhQd0FBQUFBQUFPQS8w''@;'; + put 'put ''bTlmQjg0WjV6OEFBQUFBQUFEZ1B3QUFBQUFBQU9BL0FBQUFBQUFBNEQ4Q21nZ2JubDdWUCtDK0Rwd3pvdEEvQXBvSUc1NWUxVDhCVFlRTlQ2L2lQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZC''@;'; + put 'put ''M0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQv''@;'; + put 'put ''VHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvV0tnMXpUdE8xVCsxRmZ2TDdzbmhQN1VWKzh2dXllRS9QdWpaclBwY3hUKzFGZnZM''@;'; + put 'put ''N3NuaFA3VVYrOHZ1eWVFL3RSWDd5KzdKNFQrMUZmdkw3c25oUHgwNFowUnBiOGcvV0tnMXpUdE8xVCsxRmZ2TDdzbmhQMWlvTmMwN1R0VS9XS2cxelR0TzFUOEFBQUFBQUFEZ1B3QUFBQUFBQU9BLzA3empGQjNKMFQrMUZmdkw3c25oUDdVVis4dnV5ZUUvdFJYN3krN0o0VC9Udk9NVUhjblJQ''@;'; + put 'put ''OU84NHhRZHlkRS81eDJuNkVndTRUK2l0RGY0d21UV1AwaS9mUjA0Wjh3L1dLZzF6VHRPMVQ5WXFEWE5PMDdWUDdVVis4dnV5ZUUvQUFBQUFBQUE4RDhBQUFBQUFBRHdQOU84NHhRZHlkRS9lQXNrS0g2TTR6L1R2T01VSGNuUlAxaW9OYzA3VHRVL1dLZzF6VHRPMVQ5WXFEWE5PMDdWUDFpb05j''@;'; + put 'put ''MDdUdFUvV0tnMXpUdE8xVDlZcURYTk8wN1ZQMWlvTmMwN1R0VS9XS2cxelR0TzFUL1R2T01VSGNuUlAxaW9OYzA3VHRVL1dLZzF6VHRPMVQvVHZPTVVIY25SUDFpb05jMDdUdFUvV0tnMXpUdE8xVDlZcURYTk8wN1ZQd0FBQUFBQUFQQS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRF''@;'; + put 'put ''LzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVDhBQUFBQUFBRHdQOU84NHhRZHlkRS82cFd5''@;'; + put 'put ''REhHczF6L1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDdVVis4dnV5ZUUvYXQ1eGlvN2s2RDhBQUFBQUFBRHdQNWpkazRlRld0Yy8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDhSQ3JXbmVjZXcvMDd6akZCM0ow''@;'; + put 'put ''VC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFL1NMOTlIVGhuekQ5NEN5UW9mb3pqUDRZNDFzVnROTzQvZUFza0tINk00ei9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlAxR2dUK1JKMGc1QXRNaDJ2cDg2TmNBNkl0''@;'; + put 'put ''K2wxQ1hWdi9PQ1BrZWFMb28vbitWNWNIZlcrYjkrL1JBYkxKem1QNWJzMkFqRTY4dy96YzZpZHlyZzBEK3c0NzlBRUNEdHY2MmgxRjVFMjlnL082Rjg1bEdXZGovVGJuRDVlb1I3UDRITXpxSjNLdVMvMGEzWDlLQ2d5RDlxM3pjWnNEK0VQNzdLa0JsZS80US9ISllHZmxURHhMK2xTU25vOXVJ''@;'; + put 'put ''alFLblpBNjNBa01FL0NNU1FRWk5waVQvNlJKNGtYVFBRdndId21UWXR3bDQvRFp4OUw4K1VseitKdGZnVUFPT0pQK1dwV0VZMHk3Ry9qd0RKejZGbnByOWN0Y2I3ekxTSVAwMmtqMVE2czVBLzVzY0VvV0hXb0wvSGFXY2NFL2VDdnlwL2ErVXRjRnkvNUZkaVZBaWFkVC9SOFlkVmNnUzNQNVhV''@;'; + put 'put ''Q1dnaVBEUEFaQ01Rcit0M0VNQ25JYXJ3WjNqSFA5ci9BR3ZWcnNFL1RpaEV3Q0ZVOTcrcVNJV3hoU0QxUDUxb1Z5SGxKL1kvVFM3R3dEcU96VDlaYXlpMUY5SGN2d00vcW1HL0o4dy9wa2RUUFpsLzJqKzJnVHRRcHp5dVAxRk0zZ0F6MzdtLzlYYVYvOW9McGovVXBUVzhEL2FVUHgrdElMd3Mz''@;'; + put 'put ''SkEvS0N6eGdMTEpJMEFqV3VGTUFvcTNQMGlqWlZHV0tYOC91N1NHOThHZWt6OFhxSHRUUjMyZ3Z5RXJydUJ0bElzL00zUGNoTllldGIrZ2VJU0o5ZnlQUDJrMUpPNng5SkcvdU0wemVsNi9haitTUHEyaVB6VE52MzZ3NThaUFBwaS9CeU9iVUMzSHBEOCtHTUo3V0xtUnZ5MThmYTFMamNZL0FB''@;'; + put 'put ''QUFRUHNoK1Q4QUFBQUFMVVIwUGdBQUFJQ1lSdmc4QUFBQVlGSE1lRHNBQUFDQWd4dndPUUFBQUVBZ0pYbzRBQUFBZ0NLQzR6WUFBQUFBSGZOcE5RQUFBQUFBQVBDL3ZBUUJBT2dxQUFBREFBQUFFQzBBQUFNQUFBRG9Md0FBQXdBQUFMQXdBQUFEQUFBQUFESUFBQU1BQUFCNE5RQUFBd0FBQUxR''@;'; + put 'put ''NEFBQURBQUFBeEM0QUFBTUFBQUI4T1FBQUF3QUFBSVE2QUFBREFBQUFFRDhBQUFNQUFBQTBQUUFBQUFBQUFOUXNBQUFBQUFBQXdDOEFBQUFBQUFBUU1BQUFBQUFBQU5neEFBQUFBQUFBS0RJQUFBQUFBQUNNT0FBQUFBQUFBR0F1QUFBQUFBQUFWRGtBQUFBQUFBQmNPZ0FBQUFBQUFPZytBQUFB''@;'; + put 'put ''QUFBQUREMEFBQVFBQUFBNFB3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQVFBQUFB''@;'; + put 'put ''RUFBQUFEQUFBQUFBQUFBQUFBQUFBSTJRSUFHTmtDQUNqWkFnQTQyUUlBU05rQ0FGalpBZ0JvMlFJQWVOa0NBQmpaQWdBWTJRSUFXTmtDQUZqWkFnQWZBQUFBUHdBQUFIOEFBQUFBQUFBQW9vVUJBQUVBQUFDb0t3QUFhQUFBQUFRQUFBRFZDQUVBQVFBQUFDQXNBQUNJQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBY0FVQkFBRUFBQUFBQUFBQTRBQUFBQUFBQUFCNEJRRUFBUUFBQUFBQUFBRGdBQUFBQVFBQUFIOEZBUUFCQUFBQUFBQUFBS2dBQUFBQ0FBQUFpUVVCQUFFQUFBQUFBQUFBNEFBQUFBTUFBQUNUQlFFQUFRQUFBQUFBQUFEZ0FBQUFCQUFBQUtFRkFRQUJBQUFB''@;'; + put 'put ''QUFBQUFPQUFBQUFGQUFBQXF3VUJBQUVBQUFBQUFBQUE0QUFBQUFZQUFBQzRCUUVBQVFBQUFBQUFBQURnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWUFBQUFIQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQS8vLy8vd0FBQUFBQUFBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTJnZ0JBQUVBQUFERUxRQUFHQUVBQUFFQUFB''@;'; + put 'put ''RGZDQUVBQVFBQUFNUXRBQUFZQVFBQUFnQUFBT1VJQVFBQkFBQUF4QzBBQUJnQkFBQURBQUFBN2dnQkFBRUFBQURFTFFBQUdBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQZ0lBUUFCQUFBQUFBQUFBSEFCQUFBQkFBQUFBZ2tCQUFFQUFBQUFBQUFBY0FFQUFBSUFBQUFOQ1FF''@;'; + put 'put ''QUFRQUFBQUFBQUFBNEFRQUFBd0FBQUJzSkFRQUJBQUFBQUFBQUFEZ0JBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FBQUFBa0FBQUFBQUFBQUFBQUFBQW9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFBQUFRQUFBQVlBQUFBQ0FBQUFBZ0FBQUFjQUFBQUNBQUFBQUFBQUFHSVlBZ0JuQVFJQStBSUNBRGdKQWdBdkVBSUFiaFFDQU80WEFnRC9Gd0lBQUFBQUFHSUpBUUFCQUFBQUtDOEFBS2dCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUJtQ1FFQUFRQUFBQUFBQUFESUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQWJna0JBQUVBQUFBNE1BQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRHdBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUtZS0FRQUJBQUFBQUFBQUFDQUNBQUFDQUFBQXNBb0JBQUVBQUFBQUFBQUFXQUlBQUFBQUFBQzVDZ0VBQVFB''@;'; + put 'put ''QUFBQUFBQUJZQWdBQUF3QUFBTUlLQVFBQkFBQUFBQUFBQUZnQ0FBQUFBQUFBekFvQkFBRUFBQUFBQUFBQUlBSUFBQU1BQUFEWUNnRUFBUUFBQUFBQUFBQWdBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJFQUFBQVNBQUFBQUFBQUFBQUFBQUFUQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FBQUFBTUFBQUFKQUFBQUF3QUFBQU1BQUFBS0FBQUFCQUFBQUFBQUFBQmlHQUlBWndFQ0FEZ0pBZ0Q0QWdJQWJoUUNBQzhRQWdEL0Z3SUE3aGNDQUFBQUFBQUFB''@;'; + put 'put ''QUFBbFF3QkFQLy8vLzg4TVFBQWtBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFKZ01BUUQvLy8vL0FBQUFBTEFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNvalFFQUFRQUFBRkF5QUFEb0FnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZQUFBQUdR''@;'; + put 'put ''QUFBQm9BQUFBQUFBQUFCQUFBQUFBQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUI4QUFBQWdBQUFBSVFBQUFDSUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFDd0FBQUFBQUFBQU1BQUFBQlFBQUFBUUFBQUFOQUFBQUJRQUFBQU1BQUFDVkVBRUFveEFCQUxr''@;'; + put 'put ''UUFRRHorUUlBeHhBQkFOWVFBUURiRUFFQStSQUJBUFA1QWdBTEVRRUFPeEVCQVBQNUFnQlpFUUVBZ1JFQkFJOFJBUUMrRVFFQThoRUJBQU1TQVFBb0VnRUFTeElCQUZFU0FRQnRFZ0VBaWhJQkFLVVNBUURHRWdFQTRCSUJBQUlUQVFBaEV3RUFSeE1CQUY4VEFRQi9Fd0VBbkJNQkFNQVRBUURN''@;'; + put 'put ''RXdFQTgva0NBTmNUQVFEOUV3RUFJUlFCQUVjVUFRRHorUUlBZlJRQkFKVVVBUUNpRkFFQTBSUUJBTXdUQVFEeitRSUEzaFFCQU9jVUFRQUlGUUVBUXhVQkFJNFZBUURpRlFFQUJCWUJBQmtXQVFBd0ZnRUFSaFlCQUY0V0FRRHorUUlBZEJZQkFJOFdBUUN6RmdFQTF4WUJBUHdXQVFEeitRSUFI''@;'; + put 'put ''UmNCQURjWEFRQkpGd0VBVmhjQkFHTVhBUUIzRndFQWhoY0JBSTRYQVFDakZ3RUFzUmNCQU84WEFRRDZGd0VBekJNQkFQUDVBZ0FBR0FFQURCZ0JBQnNZQVFCTEVnRUE4L2tDQUM0WUFRQlhHQUVBZFJnQkFJVVlBUUNXR0FFQW5SZ0JBS3dZQVFDOEdBRUFBQmtCQUFjWkFRQkxFZ0VBOC9rQ0FC''@;'; + put 'put ''RVpBUUE5R1FFQVNCa0JBRkVaQVFCYUdRRUFheGtCQUh3WkFRQ1FHUUVBekJNQkFQUDVBZ0NjR1FFQXJCa0JBTG9aQVFESUdRRUExUmtCQU9JWkFRRDRHUUVBQVJvQkFCQWFBUUFkR2dFQUxob0JBTXdUQVFEeitRSUFPUm9CQUZnYUFRRHorUUlBYWhvQkFIa2FBUUNwR2dFQXN4b0JBTUFhQVFE''@;'; + put 'put ''TkdnRUEyaG9CQU9jYUFRRHFHZ0VBOC9rQ0FPNGFBUUR6K1FJQUVSc0JBRUliQVFCeEd3RUFpQnNCQUtNYkFRQytHd0VBekJNQkFQUDVBZ0RhR3dFQTgva0NBQUljQVFBT0hBRUFJUndCQURRY0FRQkpIQUVBWGh3QkFHSWNBUUJMRWdFQTgva0NBRzRjQVFEeitRSUFmaHdCQUl3Y0FRQ1lIQUVB''@;'; + put 'put ''cFJ3QkFNVWNBUURiSEFFQTgva0NBTzhjQVFBNEhRRUFmaDBCQUs0ZEFRRGhIUUVBNkIwQkFBOGVBUUEySGdFQTgva0NBRHNlQVFBQUFBQUFBQUFBQVBCSEFRQUJBQUFBQUFBQUFBZ0RBQUFCQUFBQXJ4NEJBQUVBQUFBQUFBQUFDQU1BQUFJQUFBRHBSd0VBQVFBQUFBQUFBQUJBQXdBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQWpBQUFBQUFBQUFDUUFBQUFsQUFBQUJnQUFBQ1lBQUFBbkFBQUFLQUFBQUNrQUFBQXFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ3NBQUFBc0FBQUFMUUFBQUM0QUFBQUVBQUFBTHdBQUFBQUFBQUFBQUFBQURnQUFBQUFBQUFBUEFBQUFCd0FBQUFVQUFB''@;'; + put 'put ''QVFBQUFBQmdBQUFBQUFBQUIvQUFJQWlRQUNBSGt4QVFET0FBSUFDUUVDQUNzQkFnQXhBUUlBWWhnQ0FGZ0JBZ0JuQVFJQWhBRUNBSThCQWdDeEFRSUE1d0VDQUIwQ0FnQllBZ0lBamdJQ0FMQUNBZ0MvQWdJQThBSUNBUGdDQWdBL0pRRUFTQ1VCQUJVREFnQlJKUUVBWHdNQ0FGb2xBUUJwQXdJ''@;'; + put 'put ''QVl5VUJBSE1EQWdEQ0F3SUEvUU1DQUc4bEFRQTRCQUlBUXdRQ0FJZ0VBZ0NXQkFJQTRBUUNBTzRFQWdEOEJBSUFCd1VDQURnRkFnQjRCUUlBZ0FVQ0FJZ0ZBZ0REQlFJQStRVUNBQVVHQWdCK01RRUFFUVlDQUJzR0FnQW1CZ0lBUXdZQ0FIa0dBZ0E0Q1FJQVdna0NBR1lKQWdBbERBSUFWZ3dD''@;'; + put 'put ''QUlJTUFnQzREQUlBeFF3Q0FPY01BZ0FKRFFJQUVnMENBRndOQWdCbURRSUFxdzBDQU9FTkFnRHNEUUlBY1E0Q0FJWU9BZ0IzSlFFQWtBNENBSm9PQWdEUURnSUFFQThDQUI0UEFnQnlEd0lBZ1E4Q0FKQVBBZ0RmRHdJQWhqRUJBQjhRQWdBcEVBSUFMeEFDQUZzUUFnQ0NFQUlBa3hBQ0FKNFFB''@;'; + put 'put ''Z0RqRUFJQUtCRUNBRGNSQWdCSEVRSUFXUkVDQUdrUkFnQjVFUUlBaGhFQ0FKQVJBZ0RHRVFJQXp4RUNBQThTQWdBaUVnSUFpekVCQUNvU0FnQmdFZ0lBaHhJQ0FMMFNBZ0RrRWdJQThoSUNBQ2dUQWdCeUV3SUF2Qk1DQU1jVEFnRDlFd0lBQWhRQ0FCOFVBZ0E4RkFJQVJ4UUNBRzRVQWdDR0ZB''@;'; + put 'put ''SUF2QlFDQVBJVUFnRCtGQUlBSlJVQ0FEQVZBZ0JoRlFJQWtoVUNBSGc4QVFDNUZRSUE1UlVDQUJzV0FnQlJGZ0lBV3hZQ0FIZ1dBZ0M0RmdJQTdoWUNBSkV4QVFBR0Z3SUFNaGNDQUZrWEFnQ1BGd0lBekJjQ0FPNFhBZ0QwRndJQS94Y0NBQ1lZQWdBQUFBQUFxNDBCQUFFQUFBRElOUUFBZUFN''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1kSUFRQUJBQUFBQUFBQUFKZ0RBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURBQUFBQUFBQUFBTVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1nQUFBQUFB''@;'; + put 'put ''QUFBekFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFSQUFBQUFBQUFBQklBQUFBSUFBQUFCZ0FBQUJNQUFBQUhBQUFBQUFBQUFBQUFBQUN0SmdFQUFRQUFBTnc0QUFEUUF3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXNDWUJBQUVBQUFBQUFBQUE4QU1BQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQU5BQUFBQUFBQUFBMUFBQUFOZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUFBRGNBQUFBQUFBQUFBQUFBQUJRQUFBQUFBQUFBRlFBQUFBa0FBQUFIQUFBQUZn''@;'; + put 'put ''QUFBQWdBQUFBQUFBQUFlVEVCQUdJWUFnQm5BUUlBZmpFQkFIa0dBZ0E0Q1FJQWhqRUJBRnNRQWdBUEVnSUFpekVCQUVjVUFnQnVGQUlBZUR3QkFKRXhBUUR1RndJQS94Y0NBQUFBQUFDV01RRUFBUUFBQUtRNUFBQW9CQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFtakVCQUFF''@;'; + put 'put ''QUFBQUFBQUFBU0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPQUFBQUFBQUFBQTVBQUFBT2dBQUFBb0FBQUE3QUFBQVBBQUFBRDBBQUFBK0FBQUFQd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQVFRQUFBRUlBQUFCREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCY0FBQUFB''@;'; + put 'put ''QUFBQUdBQUFBQXNBQUFBSUFBQUFHUUFBQUFrQUFBQUFBQUFBemdBQ0FBNDdBUUJpR0FJQVp3RUNBSVFCQWdBWk93RUFIenNCQUNvN0FRQXhPd0VBandFQ0FPY0JBZ0E1T3dFQVB6c0JBRW83QVFDT0FnSUFzQUlDQVBnQ0FnQlJPd0VBWHdNQ0FITURBZ0Q5QXdJQVd6c0JBSWdFQWdDV0JBSUE0''@;'; + put 'put ''QVFDQUdZN0FRRHVCQUlBYmpzQkFIYzdBUUNGT3dFQWp6c0JBTU1GQWdDWU93RUFCUVlDQUNZR0FnQkRCZ0lBbmpzQkFJb0dBZ0MxQmdJQTNnWUNBQUVIQWdBcUJ3SUFUUWNDQUhZSEFnQ1pCd0lBd2djQ0FPVUhBZ0FPQ0FJQU1RZ0NBRm9JQWdCOUNBSUFwZ2dDQU1rSUFnRHlDQUlBRlFrQ0FE''@;'; + put 'put ''Z0pBZ0NsT3dFQVdna0NBTEU3QVFDQ0RBSUE1d3dDQUtzTkFnQytPd0VBa0E4Q0FNczdBUUFmRUFJQUx4QUNBTlU3QVFCYkVBSUFnaEFDQUpNUUFnRGtPd0VBOWpzQkFKNFFBZ0FvRVFJQU54RUNBRWNSQWdCWkVRSUFhUkVDQUFZOEFRQVJQQUVBSER3QkFIa1JBZ0FQRWdJQUZCSUNBQ0U4QVFB''@;'; + put 'put ''cVBBRUFNendCQUVNOEFRQktQQUVBWUJJQ0FJY1NBZ0M5RWdJQThoSUNBQUlVQWdBZkZBSUFVandCQUc0VUFnQlpQQUVBL2hRQ0FHSThBUUF3RlFJQWFqd0JBSklWQWdCNFBBRUF1UlVDQU9VVkFnQi9QQUVBZUJZQ0FMZ1dBZ0NKUEFFQTdoWUNBQVlYQWdCWkZ3SUFrendCQUtFOEFRQ1BGd0lB''@;'; + put 'put ''bGhjQ0FNd1hBZ0R1RndJQS94Y0NBQ1lZQWdBQUFBQUFzendCQUFFQUFBQ3NPZ0FBZ0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUxjOEFRQUJBQUFBQUFBQUFLQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUkFBQUFFVUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''RVlBQUFCSEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFhQUFBQUFBQUFBQnNBQUFBTUFBQUFDUUFBQUJ3QUFBQUtBQUFBQUFBQUFFRkNBQUN3b1FFQVFVa0FBSXFoQVFCQlVnQUFYYUVCQUVGWUFB''@;'; + put 'put ''REZvUUVBUWlBQUFBR2tBUUJDU1FBQUVxUUJBRU5DQUFCS29nRUFRMDhBQURpaUFRQkRXQUFBVjZJQkFFZ2dBQUI3b2dFQVNFSUFBSVdpQVFCSVNRQUFFYU1CQUVoWUFBQ1VvZ0VBU0dJQUFNV2lBUUJJYVFBQStLSUJBRWh5QUFDcW9nRUFTSGdBQU51aUFRQkpJQUFBSTZRQkFFdENBQURjb1FF''@;'; + put 'put ''QVMwa0FBQ1NpQVFCTFVnQUFFS0lCQUV0WUFBRDlvUUVBVGtJQUFDT2pBUUJPU1FBQWFxTUJBRTVTQUFDQ293RUFUbGdBQUU2akFRQlFRUUFBNDZNQkFGQkNBQUNmb3dFQVVFa0FBTk9qQVFCUVdBQUF2Nk1CQUZJZ0FBRGFwUUVBVXlBQUFQS2pBUUJhUkFBQVlLUUJBQUFBQUFBQUFBQUFBUUFB''@;'; + put 'put ''QUFBQUFBQmRSd0VBLy8vLy8xdzlBQURZQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWVVjQkFQLy8vLzhBQUFBQStBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRHdBQUFHbEhBUUFCQUFBQUlFTUFBQUFBQUFBUUFBQUFjVWNCQUFFQUFBQWdRd0FBQUFBQUFCRUFB''@;'; + put 'put ''QUI1UndFQUFRQUFBQ0JEQUFBQUFBQUFFUUFBQUlKSEFRQUJBQUFBSUVNQUFBQUFBQUFSQUFBQWlrY0JBQUVBQUFBZ1F3QUFBQUFBQUJNQUFBQ1NSd0VBQVFBQUFDUkRBQUFBQUFBQUZBQUFBSnBIQVFBQkFBQUFKRU1BQUFBQUFBQVZBQUFBb2tjQkFBRUFBQUFrUXdBQUFBQUFBQlVBQUFDclJ3''@;'; + put 'put ''RUFBUUFBQUNSREFBQUFBQUFBRlFBQUFMTkhBUUFCQUFBQUpFTUFBQUFBQUFBV0FBQUF1MGNCQUFFQUFBQW9Rd0FBQUFBQUFCY0FBQURFUndFQUFRQUFBQ2hEQUFBQUFBQUFHQUFBQU0xSEFRQUJBQUFBS0VNQUFBQUFBQUFZQUFBQTEwY0JBQUVBQUFBb1F3QUFBQUFBQUJnQUFBRGdSd0VBQVFB''@;'; + put 'put ''QUFDaERBQUFBQUFBQUdRQUFBT2xIQVFBQkFBQUFMRU1BQUFBQUFBQVpBQUFBOEVjQkFBRUFBQUFzUXdBQUFBQUFBQm9BQUFEMlJ3RUFBUUFBQURCREFBQUFBQUFBQ2dBQUFQOUhBUUFCQUFBQU5FTUFBQUFBQUFBTEFBQUFCMGdCQUFFQUFBQTBRd0FBQUFBQUFBd0FBQUFQU0FFQUFRQUFBRFJE''@;'; + put 'put ''QUFBQUFBQUFEQUFBQUJoSUFRQUJBQUFBTkVNQUFBQUFBQUFNQUFBQUlFZ0JBQUVBQUFBMFF3QUFBQUFBQUE0QUFBQW9TQUVBQVFBQUFEUkRBQUFBQUFBQURnQUFBQzlJQVFBQkFBQUFORU1BQUFBQUFBQU5BQUFBTjBnQkFBRUFBQUEwUXdBQUFBQUFBQVVBQUFBL1NBRUFBUUFBQURSREFBQUFB''@;'; + put 'put ''QUFBQmdBQUFFZElBUUFCQUFBQU5FTUFBQUFBQUFBSEFBQUFUMGdCQUFFQUFBQTBRd0FBQUFBQUFBY0FBQUJZU0FFQUFRQUFBRFJEQUFBQUFBQUFCd0FBQUdCSUFRQUJBQUFBTkVNQUFBQUFBQUFKQUFBQWFFZ0JBQUVBQUFBMFF3QUFBQUFBQUFrQUFBQnZTQUVBQVFBQUFEUkRBQUFBQUFBQUNB''@;'; + put 'put ''QUFBSGRJQVFBQkFBQUFORU1BQUFBQUFBQUFBQUFBZjBnQkFBRUFBQUE0UXdBQUFBQUFBQUVBQUFDSVNBRUFBUUFBQURoREFBQUFBQUFBQWdBQUFKRklBUUFCQUFBQU9FTUFBQUFBQUFBQ0FBQUFtMGdCQUFFQUFBQTRRd0FBQUFBQUFBSUFBQUNrU0FFQUFRQUFBRGhEQUFBQUFBQUFCQUFBQUsx''@;'; + put 'put ''SUFRQUJBQUFBT0VNQUFBQUFBQUFFQUFBQXRVZ0JBQUVBQUFBNFF3QUFBQUFBQUFNQUFBQytTQUVBQVFBQUFEaERBQUFBQUFBQUVnQUFBTWRJQVFBQkFBQUFJRU1BQUFBQUFBQWJBQUFBejBnQkFBRUFBQUE4UXdBQUFBQUFBQndBQUFEWFNBRUFBUUFBQUR4REFBQUFBQUFBSFFBQUFOOUlBUUFC''@;'; + put 'put ''QUFBQVBFTUFBQUFBQUFBZEFBQUE2RWdCQUFFQUFBQThRd0FBQUFBQUFCMEFBQUR3U0FFQUFRQUFBRHhEQUFBQUFBQUFIZ0FBQVBoSUFRQUJBQUFBUUVNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFG''@;'; + put 'put ''UUFBQUdOTUFRQk1Rd0FBQVFBQUFHaERBQUFBQUFBQUFBQUFBRWdBQUFCSkFBQUFBUUFBQUFBQUFBQ2loUUVBQUFBQUFGeERBQUJrUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQWdBQUFBQUFBQUFCQUFBQUFRQUFBQUVBQUFBQkFBQUFBZ0FBQUFJQUFBQUJBQUFBQWdBQUFB''@;'; + put 'put ''UUFBQUFZQVFBQU1BRUFBTEFBQUFDSVZBRUFqVlFCQUpGVUFRQ1lWQUVBbkZRQkFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFBQUFBQWRBQUFBQUFBQUFBQUFBQUFlQUFBQUFBQUFBQUFBQUFBZkFBQUFBQUFBQUFBQUFBQ1JXUUVBS0VRQUFBRUFBQUNBUkFBQUFBQUFBQUFBQUFC''@;'; + put 'put ''S0FBQUFTd0FBQUV3QUFBQk5BQUFBVGdBQUFFOEFBQUJRQUFBQVVRQUFBRklBQUFCVEFBQUFWQUFBQUVzQUFBQlZBQUFBU3dBQUFGWUFBQUJYQUFBQVdBQUFBRmtBQUFBQUFBQUFubGtCQUFBQUFBQTRSQUFBS05zQ0FBRUFBQUNrV1FFQUFBQUFBRUJFQUFBbzJ3SUFBZ0FBQUtoWkFRQUFBQUFB''@;'; + put 'put ''U0VRQUFDamJBZ0FEQUFBQXJWa0JBQUFBQUFCUVJBQUFLTnNDQUFRQUFBQ3pXUUVBQUFBQUFGaEVBQUFvMndJQUJRQUFBTGxaQVFBQUFBQUFjRVFBQUNqYkFnQUdBQUFBdzFrQkFBQUFBQUI0UkFBQUtOc0NBQWNBQUFESldRRUFBQUFBQUdCRUFBQW8yd0lBQndBQUFNMVpBUUFBQUFBQVlFUUFB''@;'; + put 'put ''Q2piQWdBSEFBQUEwbGtCQUFBQUFBQm9SQUFBS05zQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFBQURBQUFBQUFBQUFBQVFBQUFDQUFBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBd0FBQUFRQUFBQUFBQUFBUEdjQkFGUm5BUUJ6WndFQWtHY0JBSzluQVFDMlp3RUF2MmNCQUR4bkFR''@;'; + put 'put ''QkJad0VBU0djQkFFMW5BUURlWmdFQThHWUJBUDVtQVFBTVp3RUFHbWNCQUNGbkFRQXdad0VBUEdjQkFBQUFBQUR6K1FJQUFBQUFBQjBTQWdBQkFBQUErR2tCQUFjQUFBQzhhUUVBQXdBQUFNWWxBZ0FGQUFBQUFHb0JBQThBQUFDUWpRRUFDQUFBQUpDTkFRQVFBQUFBQ0dvQkFBUUFBQUFJYWdF''@;'; + put 'put ''QUVRQUFBQTFxQVFBRkFBQUFEV29CQUFJQUFBQVRhZ0VBQmdBQUFCcHFBUUFFQUFBQUptb0JBQWNBQUFBdWFnRUFCd0FBQUQ1cUFRQUZBQUFBUkdvQkFBZ0FBQUJiYWdFQUNBQUFBRVJxQVFBSkFBQUFaR29CQUFjQUFBQnNhZ0VBQ2dBQUFJWnFBUUFIQUFBQWptb0JBQXNBQUFDb2FnRUFCZ0FB''@;'; + put 'put ''QUs5cUFRQU1BQUFBeldvQkFBa0FBQUN2YWdFQURRQUFBTmRxQVFBSUFBQUE0R29CQUE0QUFBQUJhd0VBQ0FBQUFBcHJBUUFTQUFBQUsyc0JBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFJQUFBQURBQUFBQUlBQUFBQUFBQUFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUFFQUFBQUFBQUFBQU1BQUFBaEFBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUFFQUFBQUFBQUFBQVFBQUFBaUFBQUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFBQUJBQUFBQWlFY0FBSmhIQUFBR0FB''@;'; + put 'put ''QUFCQUFBQUtSSEFBQUdBQUFBQ0FBQUFBWUFBQUFFQUFBQXJFY0FBQUFFQUFBSUFBQUEvLy8vL3dBQUFBQUFBQUFBSXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBMUFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQUFBQUFBQUFHQUFBQUFBQUFBQWNBQUFBQUFBQUFBQUFBQUFBQUFBRC8vLy8vQUFB''@;'; + put 'put ''QUFBQUFBQUFHQUFBQUFBQUFBQWNBQUFBQUFBQUFBQUFBQUFBQUFBQVlBQUFBQUFBQUFBQUFBQUFJQUFBQUFBQUFBQWNBQUFBQUFBQUFBQUFBQUFBQUFBRC8vLy8vQUFBQUFBQUFBQUFJQUFBQUFBQUFBQWNBQUFBQUFBQUFBQUFBQUFBQUFBQWNBQUFBQUFBQUFBQUFBQUFKQUFBQUFBQUFBQWNB''@;'; + put 'put ''QUFBQUFBQUFDUUFBQUFzQUFBQUlBQUFBQ2dBQUFEQkpBQUMwU0FBQUdFa0FBQUVBQUFBQkFBQUFDZ0FBQUJZQUFBQUxBQUFBV2dBQUFDUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3QUFBQUFBQUFBQndBQUFBQUFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQUFBQUFBQUEwQUFBQUFB''@;'; + put 'put ''QUFBQndBQUFBQUFBQUFIQUFBQUFnQUFBQVVBQUFBSUFBQUFBQUFBQUFBQUFBQUdBQUFBQXdBQUFBNEFBQUFMQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFBQUFBQUFBQUFBQUFBRHdBQUFBQUFBQUFIQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWxBQUFBRUFBQUFBQUFBQUFIQUFBQUFB''@;'; + put 'put ''QUFBQWdBQUFBSUFBQUFBQUFBQUFBQUFBQW1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFELy8vLy9BQUFBQUFBQUFBQW5BQUFBQUFBQUFBQUFBQUFIQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUVBQUFBQ0FBQUFBd0FBQUFF''@;'; + put 'put ''QUFBQUJBQUFBQWdBQUFBRUFBQUFCQUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFCQUFBQUJBQUFBQVVBQUFBQkFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBRUFBQUFH''@;'; + put 'put ''QUFBQUFRQUFBQUVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ2dBQUFBb0FBQUFLQUFBQUNnQUFBQW9BQUFBS0FBQUFDZ0FBQUFvQUFBQUtBQUFBQVFBQUFBRUFBQUFMQUFBQUFRQUFBQXdBQUFBQkFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFG''@;'; + put 'put ''Z0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFYQUFBQUdBQUFBQmtBQUFBVEFBQUFHZ0FBQUJzQUFBQWNBQUFBSFFBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFBUUFBQUI0QUFBQUJBQUFBQVFBQUFCTUFBQUFCQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQVRBQUFBSkFBQUFD''@;'; + put 'put ''VUFBQUFtQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUNjQUFBQW9BQUFBS1FBQUFCTUFBQUFxQUFBQUt3QUFBQ3dBQUFBdEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFCQUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFB''@;'; + put 'put ''VEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFB''@;'; + put 'put ''RXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUxnQUFBQk1BQUFBVEFBQUFFd0FBQUM4QUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFB''@;'; + put 'put ''Qk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFB''@;'; + put 'put ''QVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFEQUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBQUFBQUFBRUFBQUFCQUFB''@;'; + put 'put ''QUFnQUFBQU1BQUFBQkFBQUFCQUFBQUFFQUFBQUZBQUFBQVFBQUFBWUFBQUFIQUFBQUJ3QUFBQUVBQUFBR0FBQUFCZ0FBQUFZQUFBQUdBQUFBQmdBQUFBWUFBQUFHQUFBQUJnQUFBQVlBQUFBR0FBQUFCZ0FBQUFZQUFBQUdBQUFBQmdBQUFBWUFBQUFHQUFBQUF3QUFBQVlBQUFBR0FBQUFCZ0FB''@;'; + put 'put ''QUFZQUFBQUdBQUFBQmdBQUFBWUFBQUFHQUFBQUJnQUFBQVlBQUFBR0FBQUFCZ0FBQUFZQUFBQUdBQUFBQmdBQUFBWUFBQUFHQUFBQUJnQUFBSUFBQUFCNXN3RUFXck1CQUNCOEFRQ0dzd0VBZnJNQkFJeXpBUUFBQUFBQUpvQUJBQytBQVFBMmdBRUFSSUFCQUhxeUFRQ2lzd0VBUzRBQkFGS0FB''@;'; + put 'put ''UUFCQUFBQUNBQUFBUC8vLy84QUFBQUFBQUFBQUNnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQThJRUJBQWdBQUFBREFBQUErWUVCQVAyQkFRQUxBQUFBQmdBQUFLaU5BUUFKZ2dFQUFnQUFBQUVBQUFBTWdnRUFFSUlCQUFRQUFBQUNBQUFBRllJQkFCbUNBUUFFQUFBQUJBQUFBQjZDQVFBamdn''@;'; + put 'put ''RUFCUUFBQUFVQUFBQXBnZ0VBTFlJQkFBUUFBQUFIQUFBQU1vSUJBRGFDQVFBRkFBQUFDUUFBQUR5Q0FRQkFnZ0VBQkFBQUFBb0FBQUJGZ2dFQVNvSUJBQVFBQUFBTUFBQUFUNElCQU9LR0FRQUFBQUFBQVFBQUFPcUdBUUFCQUFBQUFBQUFBSFd5QVFBQkFBQUFBUUFBQUIwU0FnQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBTXVGQVFBeEFBQUFBQUFBQUFBQUFBQ2pyUUVBRUFBQUFFVWVBZ0NBQUFBQXhJVUJBRUFBQUFBT29BRUFFQUFBQU1hRkFRQkFBQUFBQUFBQUFBQUFBQUNTaFFFQUFRQUFBSm1GQVFBQ0FBQUFub1VCQUFNQUFBRE1wZ0VBQkFBQUFEQ2RBUUFGQUFBQW9vVUJBQVlB''@;'; + put 'put ''QUFBZEVnSUFDQUFBQUthRkFRQWhBQUFBcW9VQkFDSUFBQUN1aFFFQUlnQUFBTEtGQVFBQkFBQUF0NFVCQUFjQUFBQzloUUVBSndBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUEvLy8vL3dBQUFBQXBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDJLQVFBRWl3RUFBQUFBQUtXTkFRQ29q''@;'; + put 'put ''UUVBcTQwQkFBQUFBQUFBQUFBQUFRQUFBQUlBQUFELy8vLy9hSTBCQUc2TkFRQWRFZ0lBQUFBQUFHUUFBQUJsQUFBQVpnQUFBR1FBQUFBSUFBQUFDQUFBQUFBQUFBQUFBQUFBS2dBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFDQUFBQUFBQUFBQUpBQUFBS3dBQUFCRUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBSUFBQUEvLy8vL3dBQUFBQUFBQUFBTEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFETXBnRUFZRlVBQUlBR0FBQUFBQUFBK1p3QkFHQlZBQUN3QmdBQUFBQUFBTktsQVFCZ1ZRQUE0QVlBQUFBQUFBQUJuUUVBWUZVQUFPQUdBQUFBQUFBQUJwMEJBR0JWQUFBUUJ3QUFBQUFBQUEy''@;'; + put 'put ''ZEFRQjRWUUFBRUFjQUFBQUFBQUFUblFFQVlGVUFBRUFIQUFBQUFBQUFGNTBCQUdCVkFBQndCd0FBQUFBQUFCMFNBZ0JnVlFBQW9BY0FBQUFBQUFBZ25RRUFZRlVBQUtBSEFBQUFBQUFBS3AwQkFHQlZBQUJRQmdBQUFBQUFBRENkQVFCZ1ZRQUEwQWNBQUFBQUFBQTRuUUVBWUZVQUFBQUlBQUFB''@;'; + put 'put ''QUFBQVFwMEJBR0JWQUFBd0NBQUFBQUFBQUZDZEFRQmdWUUFBWUFnQUFBQUFBQUJXblFFQVlGVUFBSkFJQUFBQUFBQUFYNTBCQUdCVkFBREFDQUFBQUFBQUFHZWRBUUJnVlFBQThBZ0FBQUFBQUFCd25RRUFZRlVBQUNBSkFBQUFBQUFBZUowQkFHQlZBQUJRQ1FBQUFBQUFBSDJkQVFCZ1ZRQUFn''@;'; + put 'put ''QWtBQUFBQUFBQ0JuUUVBWUZVQUFMQUpBQUFBQUFBQWlKMEJBR0JWQUFEZ0NRQUFBQUFBQUk2ZEFRQmdWUUFBRUFvQUFBQUFBQUNZblFFQWtGVUFBRUFLQUFBQUFBQUFvWjBCQUdCVkFBQ0FCZ0FBQUFBQUFLYWRBUUJnVlFBQWdBWUFBQUFBQUFDd25RRUFZRlVBQUhBS0FBQUFBQUFBdDUwQkFH''@;'; + put 'put ''QlZBQUNnQ2dBQUFBQUFBTVNkQVFCZ1ZRQUEwQW9BQUFBQUFBRFNuUUVBWUZVQUFBQUxBQUFBQUFBQTRKMEJBR0JWQUFBd0N3QUFBQUFBQU95ZEFRQmdWUUFBWUFzQUFBQUFBQUQ1blFFQVlGVUFBSkFMQUFBQUFBQUFBcDRCQUdCVkFBREFDd0FBQUFBQUFBeWVBUUJnVlFBQThBc0FBQUFBQUFB''@;'; + put 'put ''Vm5nRUFZRlVBQUNBTUFBQUFBQUFBSFo0QkFHQlZBQUJRREFBQUFBQUFBQ1dlQVFCZ1ZRQUFnQXdBQUFBQUFBQXVuZ0VBWUZVQUFMQU1BQUFBQUFBQU1wNEJBR0JWQUFEZ0RBQUFBQUFBQUQyZUFRQmdWUUFBRUEwQUFBQUFBQUJCbmdFQVlGVUFBRUFOQUFBQUFBQUFTNTRCQUdCVkFBQndEUUFB''@;'; + put 'put ''QUFBQUFGU2VBUUJnVlFBQW9BMEFBQUFBQUFCY25nRUFZRlVBQU5BTkFBQUFBQUFBYVo0QkFHQlZBQUFBRGdBQUFBQUFBSFdlQVFCZ1ZRQUFNQTRBQUFBQUFBQ0FuZ0VBWUZVQUFHQU9BQUFBQUFBQWtKNEJBR0JWQUFDUURnQUFBQUFBQUo2ZUFRQmdWUUFBd0E0QUFBQUFBQUN0bmdFQVlGVUFB''@;'; + put 'put ''UEFPQUFBQUFBQUF0NTRCQUdCVkFBQWdEd0FBQUFBQUFNQ2VBUUJnVlFBQVVBOEFBQUFBQUFES25nRUFZRlVBQUlBUEFBQUFBQUFBMUo0QkFHQlZBQUN3RHdBQUFBQUFBTnVlQVFCZ1ZRQUE0QThBQUFBQUFBRGluZ0VBWUZVQUFCQVFBQUFBQUFBQTdKNEJBS2hWQUFBQUFBQUFBQUFBQVBPZUFR''@;'; + put 'put ''Q29WUUFBQUFBQUFBQUFBQURWbkFFQXdGVUFBQUFBQUFBQUFBQUErNTRCQU5oVkFBQkFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCYkFBQUFYQUFBQUJjQUFBQUVBQUFBQWdBQUFBd0FBQUJkQUFBQVhBQUFBQmNBQUFBRkFBQUFBQUFBQUEwQUFBQmJBQUFBWEFBQUFCY0FBQUFFQUFB''@;'; + put 'put ''QUFnQUFBQXdBQUFCZUFBQUFYd0FBQUJnQUFBQUdBQUFBQXdBQUFBNEFBQUJnQUFBQVlRQUFBQmNBQUFBSEFBQUFBQUFBQUE4QUFBQmJBQUFBWEFBQUFCY0FBQUFJQUFBQUFnQUFBQXdBQUFBUUFBQUFFUUFBQUJJQUFBQVRBQUFBL1o4QkFBU2dBUUFBQUFBQURLQUJBQTZnQVFCL0hnSUFFS0FC''@;'; + put 'put ''QUF3QUFBQUVBQUFBQmdBQUFBSUFBQUFEQUFBQUFRQUFBQWtBQUFBSUFBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUFBQUVRQUFBQklBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjhBQUFBZ0FBQUFJUUFBQUNJQUFBQWpBQUFBSkFBQUFDVUFB''@;'; + put 'put ''QUFtQUFBQUtRQUFBQ29BQUFBckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFEQUFBQUF6QUFBQU5BQUFBRFVBQUFBMkFBQUFOd0FBQURnQUFBQTVBQUFBT2dBQUFEMEFBQUErQUFBQVB3QUFBRUFBQUFCQkFBQUFRZ0FBQUVNQUFBQkVBQUFBUndBQUFFZ0FBQUJKQUFBQVNnQUFBRXNBQUFCTUFB''@;'; + put 'put ''QUFUUUFBQUU0QUFBQlJBQUFBVWdBQUFGTUFBQUJVQUFBQVZRQUFBRllBQUFCWEFBQUFXQUFBQUYyaEFRQnRvUUVBZXFFQkFBQUFBQUFBQUFBQUJBQUFBSCtoQVFBQUFBQUFBQUFBQUlxaEFRQnRvUUVBZXFFQkFBQUFBQUNob1FFQUJRQUFBSCtoQVFBQUFBQUFxYUVCQUxDaEFRQnRvUUVBd0tF''@;'; + put 'put ''QkFBQUFBQUFBQUFBQUJnQUFBSCtoQVFEcnNRRUFBQUFBQU1XaEFRQnRvUUVBd0tFQkFBQUFBQUNob1FFQUJ3QUFBSCtoQVFEcnNRRUFxYUVCQU55aEFRRHBvUUVBd0tFQkFBQUFBQUFBQUFBQUNnQUFBUGVoQVFEcnNRRUFBQUFBQVAyaEFRRHBvUUVBd0tFQkFBQUFBQUNwb1FFQUN3QUFBUGVo''@;'; + put 'put ''QVFEcnNRRUFxYUVCQUJDaUFRRHBvUUVBSHFJQkFBQUFBQUFBQUFBQUNBQUFBUGVoQVFBQUFBQUFBQUFBQUNTaUFRRHBvUUVBSHFJQkFBQUFBQUNwb1FFQUNRQUFBUGVoQVFBQUFBQUFxYUVCQURpaUFRQTRvZ0VBQUFBQUFBQUFBQUFBQUFBQURBQUFBRUNpQVFBQUFBQUFBQUFBQUVxaUFRQTRv''@;'; + put 'put ''Z0VBNjdFQkFBQUFBQUFBQUFBQURnQUFBRUNpQVFEcnNRRUFBQUFBQUZlaUFRQTRvZ0VBNjdFQkFBQUFBQUNob1FFQUR3QUFBRUNpQVFEcnNRRUFxYUVCQUd1aUFRQTRvZ0VBQUFBQUFBQUFBQUNob1FFQURRQUFBRUNpQVFBQUFBQUFxYUVCQUh1aUFRQjdvZ0VBQUFBQUFBQUFBQUFBQUFBQUVB''@;'; + put 'put ''QUFBSCtoQVFBQUFBQUFBQUFBQUlXaUFRQjdvZ0VBNjdFQkFBQUFBQUFBQUFBQUVnQUFBSCtoQVFEcnNRRUFBQUFBQUpTaUFRQjdvZ0VBNjdFQkFBQUFBQUNob1FFQUV3QUFBSCtoQVFEcnNRRUFxYUVCQUtxaUFRQjdvZ0VBQUFBQUFMdWlBUUFBQUFBQUZBQUFBSCtoQVFBQUFBQUFBQUFBQU1X''@;'; + put 'put ''aUFRQjdvZ0VBNjdFQkFMdWlBUUFBQUFBQUZnQUFBSCtoQVFEcnNRRUFBQUFBQU51aUFRQjdvZ0VBNjdFQkFMdWlBUUNob1FFQUZ3QUFBSCtoQVFEcnNRRUFxYUVCQVBpaUFRQjdvZ0VBQUFBQUFMdWlBUUNob1FFQUZRQUFBSCtoQVFBQUFBQUFxYUVCQUJHakFRQjdvZ0VBQUFBQUFBQUFBQUNo''@;'; + put 'put ''b1FFQUVRQUFBSCtoQVFBQUFBQUFxYUVCQUNPakFRQTVvd0VBNjdFQkFBQUFBQUFBQUFBQUdnQUFBUGVoQVFEcnNRRUFBQUFBQUU2akFRQTVvd0VBNjdFQkFBQUFBQUNwb1FFQUd3QUFBUGVoQVFEcnNRRUFxYUVCQUdxakFRQTVvd0VBQUFBQUFBQUFBQUNwb1FFQUdRQUFBUGVoQVFBQUFBQUFx''@;'; + put 'put ''YUVCQUlLakFRQTVvd0VBbWFNQkFBQUFBQUFBQUFBQUdBQUFBUGVoQVFBQUFBQUFBQUFBQUorakFRQ3Rvd0VBNjdFQkFBQUFBQUFBQUFBQUhnQUFBUGVoQVFEcnNRRUFBQUFBQUwrakFRQ3Rvd0VBNjdFQkFBQUFBQUNwb1FFQUh3QUFBUGVoQVFEcnNRRUFxYUVCQU5PakFRQ3Rvd0VBQUFBQUFB''@;'; + put 'put ''QUFBQUNwb1FFQUhRQUFBUGVoQVFBQUFBQUFxYUVCQU9PakFRQ3Rvd0VBbWFNQkFBQUFBQUFBQUFBQUhBQUFBUGVoQVFBQUFBQUFBQUFBQVBLakFRRHlvd0VBQUFBQUFBQUFBQUFBQUFBQUlBQUFBUG1qQVFBQUFBQUFBQUFBQUFHa0FRQU1wQUVBNjdFQkFBQUFBQUFBQUFBQUFnQUFBUGVoQVFE''@;'; + put 'put ''cnNRRUFBQUFBQUJLa0FRQU1wQUVBNjdFQkFBQUFBQUNwb1FFQUF3QUFBUGVoQVFEcnNRRUFxYUVCQUNPa0FRQU1wQUVBQUFBQUFBQUFBQUNwb1FFQUFRQUFBUGVoQVFBQUFBQUFxYUVCQU5xbEFRQU1wQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUGVoQVFBQUFBQUFBQUFBQURDa0FRQktwQUVB''@;'; + put 'put ''V2FRQkFBQUFBQUNwb1FFQUlRQUFBUGVoQVFBQUFBQUFxYUVCQUdDa0FRQnRwQUVBQUFBQUFBQUFBQUFBQUFBQUlnQUFBUG1qQVFBQUFBQUFBQUFBQUFnQUFBQUVBQUFBQUFBQUFBb0FBQUF0QUFBQUVnQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBRC8vLy8vQUFBQUFBQUFBQUF1QUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFtbkFRREdBQUFBRDZjQkFNRUFBQUFXcHdFQXdnQUFBQnluQVFEQUFBQUFJNmNCQUpFREFBQXBwd0VBeFFBQUFDK25BUUREQUFBQU5xY0JBTVFBQUFBN3B3RUFrZ01BQUVDbkFRREhBQUFBUjZjQkFLY0RBQUJMcHdFQUlTQUFBRktuQVFDVUF3QUFXS2NCQU5BQUFB''@;'; + put 'put ''QmNwd0VBeVFBQUFHT25BUURLQUFBQWFhY0JBTWdBQUFCd3B3RUFsUU1BQUhpbkFRQ1hBd0FBZktjQkFNc0FBQUNCcHdFQWt3TUFBSWVuQVFETkFBQUFqcWNCQU00QUFBQ1Vwd0VBekFBQUFKdW5BUUNaQXdBQW9LY0JBTThBQUFDbHB3RUFtZ01BQUt1bkFRQ2JBd0FBc3FjQkFKd0RBQUMxcHdF''@;'; + put 'put ''QTBRQUFBTHluQVFDZEF3QUF2NmNCQUZJQkFBREZwd0VBMHdBQUFNeW5BUURVQUFBQTBxY0JBTklBQUFEWnB3RUFxUU1BQU4rbkFRQ2ZBd0FBNTZjQkFOZ0FBQUR1cHdFQTFRQUFBUFduQVFEV0FBQUErcWNCQUtZREFBRCtwd0VBb0FNQUFBR29BUUF6SUFBQUI2Z0JBS2dEQUFBTHFBRUFvUU1B''@;'; + put 'put ''QUErb0FRQmdBUUFBRnFnQkFLTURBQUFjcUFFQTNnQUFBQ0tvQVFDa0F3QUFKcWdCQUpnREFBQXNxQUVBMmdBQUFET29BUURiQUFBQU9hZ0JBTmtBQUFCQXFBRUFwUU1BQUVpb0FRRGNBQUFBVGFnQkFKNERBQUJRcUFFQTNRQUFBRmVvQVFCNEFRQUFYS2dCQUpZREFBQmhxQUVBNFFBQUFHaW9B''@;'; + put 'put ''UURpQUFBQWJxZ0JBTFFBQUFCMHFBRUE1Z0FBQUhxb0FRRGdBQUFBZ2FnQkFEVWhBQUNKcUFFQXNRTUFBSStvQVFBbUFBQUFrNmdCQUNjaUFBQ1hxQUVBSUNJQUFKdW9BUURsQUFBQW9hZ0JBRWdpQUFDbnFBRUE0d0FBQUs2b0FRRGtBQUFBczZnQkFCNGdBQUM1cUFFQXNnTUFBTDZvQVFDbUFB''@;'; + put 'put ''QUF4YWdCQUNJZ0FBREtxQUVBS1NJQUFNNm9BUURuQUFBQTFhZ0JBTGdBQUFEYnFBRUFvZ0FBQU9Db0FRREhBd0FBNUtnQkFNWUNBQURwcUFFQVl5WUFBTytvQVFCRklnQUE5S2dCQUtrQUFBRDVxQUVBdFNFQUFQK29BUUFxSWdBQUE2a0JBS1FBQUFBS3FRRUEweUVBQUErcEFRQWdJQUFBRnFr''@;'; + put 'put ''QkFKTWhBQUFicVFFQXNBQUFBQitwQVFDMEF3QUFKYWtCQUdZbUFBQXJxUUVBOXdBQUFES3BBUURwQUFBQU9ha0JBT29BQUFBL3FRRUE2QUFBQUVhcEFRQUZJZ0FBVEtrQkFBTWdBQUJScVFFQUFpQUFBRmFwQVFDMUF3QUFYcWtCQUdFaUFBQmtxUUVBdHdNQUFHaXBBUUR3QUFBQWJLa0JBT3NB''@;'; + put 'put ''QUFCeHFRRUFyQ0FBQUhhcEFRQURJZ0FBZktrQkFKSUJBQUNCcVFFQUFDSUFBSWlwQVFDOUFBQUFqNmtCQUx3QUFBQ1dxUUVBdmdBQUFKMnBBUUJFSUFBQW82a0JBTE1EQUFDcHFRRUFaU0lBQUt5cEFRQStBQUFBcjZrQkFOUWhBQUMwcVFFQWxDRUFBTG1wQVFCbEpnQUF3S2tCQUNZZ0FBREhx''@;'; + put 'put ''UUVBN1FBQUFNNnBBUUR1QUFBQTFLa0JBS0VBQUFEYXFRRUE3QUFBQU9HcEFRQVJJUUFBNTZrQkFCNGlBQUR0cVFFQUt5SUFBUEdwQVFDNUF3QUE5cWtCQUw4QUFBRDlxUUVBQ0NJQUFBS3FBUUR2QUFBQUI2b0JBTG9EQUFBTnFnRUEwQ0VBQUJLcUFRQzdBd0FBR2FvQkFDa2pBQUFlcWdFQXF3''@;'; + put 'put ''QUFBQ1NxQVFDUUlRQUFLYW9CQUFnakFBQXZxZ0VBSENBQUFEV3FBUUJrSWdBQU9Lb0JBQW9qQUFBL3FnRUFGeUlBQUVhcUFRREtKUUFBU3FvQkFBNGdBQUJPcWdFQU9TQUFBRldxQVFBWUlBQUFXNm9CQUR3QUFBQmVxZ0VBcndBQUFHT3FBUUFVSUFBQWFhb0JBTFVBQUFCdnFnRUF0d0FBQUVh''@;'; + put 'put ''ekFRQVNJZ0FBZHFvQkFMd0RBQUI1cWdFQUJ5SUFBSCtxQVFDZ0FBQUFoS29CQUJNZ0FBQ0txZ0VBWUNJQUFJMnFBUUFMSWdBQWtLb0JBS3dBQUFDVXFnRUFDU0lBQUpxcUFRQ0VJZ0FBbjZvQkFQRUFBQUNtcWdFQXZRTUFBS21xQVFEekFBQUFzS29CQVBRQUFBQzJxZ0VBVXdFQUFMeXFBUUR5''@;'; + put 'put ''QUFBQXc2b0JBRDRnQUFESnFnRUF5UU1BQU0rcUFRQy9Bd0FBMTZvQkFKVWlBQURkcWdFQUtDSUFBT0NxQVFDcUFBQUE1YW9CQUxvQUFBRHFxZ0VBK0FBQUFQR3FBUUQxQUFBQStLb0JBSmNpQUFEL3FnRUE5Z0FBQUFTckFRQzJBQUFBQ2FzQkFBSWlBQUFPcXdFQU1DQUFBQldyQVFDbElnQUFH''@;'; + put 'put ''cXNCQU1ZREFBQWVxd0VBd0FNQUFDR3JBUURXQXdBQUphc0JBTEVBQUFBc3F3RUFvd0FBQURLckFRQXlJQUFBT0tzQkFBOGlBQUE5cXdFQUhTSUFBRUtyQVFESUF3QUFScXNCQUNJQUFBQkxxd0VBMGlFQUFGQ3JBUUFhSWdBQVZxc0JBQ29qQUFCYnF3RUF1d0FBQUdHckFRQ1NJUUFBWnFzQkFB''@;'; + put 'put ''a2pBQUJzcXdFQUhTQUFBSEtyQVFBY0lRQUFkNnNCQUs0QUFBQjdxd0VBQ3lNQUFJS3JBUURCQXdBQWhxc0JBQThnQUFDS3F3RUFPaUFBQUpHckFRQVpJQUFBbDZzQkFCb2dBQUNkcXdFQVlRRUFBS1NyQVFERklnQUFxYXNCQUtjQUFBQ3Vxd0VBclFBQUFMS3JBUUREQXdBQXVLc0JBTUlEQUFD''@;'; + put 'put ''L3F3RUFQQ0lBQU1PckFRQmdKZ0FBeXFzQkFJSWlBQURPcXdFQWhpSUFBTk9yQVFBUklnQUExNnNCQUlNaUFBRGJxd0VBdVFBQUFPQ3JBUUN5QUFBQTVhc0JBTE1BQUFEcXF3RUFoeUlBQU8rckFRRGZBQUFBOWFzQkFNUURBQUQ1cXdFQU5DSUFBQUNzQVFDNEF3QUFCcXdCQU5FREFBQVByQUVB''@;'; + put 'put ''Q1NBQUFCYXNBUUQrQUFBQUhLd0JBTndDQUFBaXJBRUExd0FBQUNpc0FRQWlJUUFBTHF3QkFORWhBQUF6ckFFQStnQUFBRHFzQVFDUklRQUFQNndCQVBzQUFBQkZyQUVBK1FBQUFFeXNBUUNvQUFBQVVLd0JBTklEQUFCV3JBRUF4UU1BQUY2c0FRRDhBQUFBWTZ3QkFCZ2hBQUJxckFFQXZnTUFB''@;'; + put 'put ''RzJzQVFEOUFBQUFkS3dCQUtVQUFBQjRyQUVBL3dBQUFIMnNBUUMyQXdBQWdxd0JBQTBnQUFDR3JBRUFEQ0FBQUFjQUFBQUlBQUFBQVFFQUFBZ0FBQUFJQUFBQUFBQUFBQUFBQUFBdkFBQUFFd0FBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUFRQUFBQUFBQUFBQUFBQUFBd0FBQUFGQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBYXpBUUFKQUFBQUNMTUJBQW9BQUFBTnN3RUFDZ0FBQUJXekFRQUxBQUFBRzdNQkFBc0FBQUFrc3dFQURBQUFBQ2V6QVFBTUFBQUFMYk1CQUEwQUFBQXlzd0VBRFFBQUFEcXpBUUFPQUFBQVA3TUJBQTRBQUFCR3N3RUFEd0FBQUV5ekFRQVBBQUFBV0xNQkFCQUFBQUJpQUFB''@;'; + put 'put ''QU1RQUFBRElBQUFBVUFBQUFNd0FBQUdNQUFBQTBBQUFBRlFBQUFEVUFBQUFJQUFBQUJBQUFBUC8vLy84QUFBQUFBQUFBQUJVQUFBQUFBQUFBQUFBQUFBQUFBQUNqdEFFQVZWM0pmOGwvL3dDdXRBRUF1eTNVdnE3VS93QzV0QUVBRkhmOS9jQ0cvd0RFdEFFQVZWM0pmOGwvL3dEUHRBRUF1eTNV''@;'; + put 'put ''dnE3VS93RGF0QUVBRkhmOS9jQ0cvd0RsdEFFQUttYi8vLytaL3dEd3RBRUFWVjNKZjhsLy93RDd0QUVBdXkzVXZxN1Uvd0FHdFFFQUZIZjkvY0NHL3dBUnRRRUFLbWIvLy8rWi93QWN0UUVBbDYyd09HeXcvd0FudFFFQVZWM0pmOGwvL3dBeXRRRUF1eTNVdnE3VS93QTl0UUVBRkhmOS9jQ0cv''@;'; + put 'put ''d0JJdFFFQUttYi8vLytaL3dCVHRRRUFsNjJ3T0d5dy93QmV0UUVBNlB6dzhBSi8vd0JwdFFFQVZWM0pmOGwvL3dCMHRRRUF1eTNVdnE3VS93Qi90UUVBRkhmOS9jQ0cvd0NLdFFFQUttYi8vLytaL3dDVnRRRUFsNjJ3T0d5dy93Q2d0UUVBNlB6dzhBSi8vd0NydFFFQUVlQy92MXNYL3dDMnRR''@;'; + put 'put ''RUFWVjNKZjhsLy93REJ0UUVBdXkzVXZxN1Uvd0RNdFFFQUZIZjkvY0NHL3dEWHRRRUFLbWIvLy8rWi93RGl0UUVBbDYyd09HeXcvd0R0dFFFQTZQenc4QUovL3dENHRRRUFFZUMvdjFzWC93QUR0Z0VBQUFCbVptWm0vd0FPdGdFQWt4bjMzdXYzL3dBWXRnRUFqa3ZobnNyaC93QWl0Z0VBa2J5''@;'; + put 'put ''OU1ZSzkvd0FzdGdFQW54RC83L1AvL3dBMnRnRUFqeTdudmRmbi93QkF0Z0VBajMvV2E2N1cvd0JLdGdFQWs5QzFJWEcxL3dCVXRnRUFueEQvNy9QLy93QmV0Z0VBank3bnZkZm4vd0JvdGdFQWozL1dhNjdXL3dCeXRnRUFrYnk5TVlLOS93Qjh0Z0VBbGZHY0NGR2Mvd0NHdGdFQW54RC83L1Av''@;'; + put 'put ''L3dDUXRnRUFsQ3Z2eHR2di93Q2F0Z0VBamt2aG5zcmgvd0NrdGdFQWozL1dhNjdXL3dDdXRnRUFrYnk5TVlLOS93QzR0Z0VBbGZHY0NGR2Mvd0RDdGdFQW54RC83L1AvL3dETXRnRUFsQ3Z2eHR2di93RFd0Z0VBamt2aG5zcmgvd0RndGdFQWozL1dhNjdXL3dEcXRnRUFrS25HUXBMRy93RDB0''@;'; + put 'put ''Z0VBazlDMUlYRzEvd0QrdGdFQWwvR1VDRVdVL3dBSXR3RUFsQWovOS92Ly93QVN0d0VBa3huMzN1djMvd0FjdHdFQWxDdnZ4dHZ2L3dBbXR3RUFqa3ZobnNyaC93QXd0d0VBajMvV2E2N1cvd0E2dHdFQWtLbkdRcExHL3dCRXR3RUFrOUMxSVhHMS93Qk90d0VBbC9HVUNFV1Uvd0JZdHdFQWxB''@;'; + put 'put ''ai85L3YvL3dCaXR3RUFreG4zM3V2My93QnN0d0VBbEN2dnh0dnYvd0IydHdFQWprdmhuc3JoL3dDQXR3RUFqMy9XYTY3Vy93Q0t0d0VBa0tuR1FwTEcvd0NVdHdFQWs5QzFJWEcxL3dDZXR3RUFsZkdjQ0ZHYy93Q290d0VBbU90ckNEQnIvd0N5dHdFQUYrOVVWREFGL3dDOHR3RUFkLzg4QUR3''@;'; + put 'put ''dy93REh0d0VBRit5TWpGRUsvd0RSdHdFQUdNSy92NEV0L3dEYnR3RUFIWERmMzhKOS93RGx0d0VBSGpUMjl1akQvd0R2dHdFQWVTYnF4K3JsL3dENXR3RUFlRi9OZ00zQi93QUR1QUVBZktXWE5aZVAvd0FOdUFFQWZQeG1BV1plL3dBWHVBRUFGKzlVVkRBRi93QWh1QUVBZlB4bUFXWmUvd0Fz''@;'; + put 'put ''dUFFQWQvODhBRHd3L3dBM3VBRUFGK3lNakZFSy93QkJ1QUVBR01LL3Y0RXQvd0JMdUFFQUhYRGYzOEo5L3dCVnVBRUFIalQyOXVqRC93QmZ1QUVBQUFEMTlmWDEvd0JwdUFFQWVTYnF4K3JsL3dCenVBRUFlRi9OZ00zQi93Qjl1QUVBZktXWE5aZVAvd0NIdUFFQUhJZlkyTE5sL3dDUXVBRUFB''@;'; + put 'put ''QUQxOWZYMS93Q1p1QUVBZTMrMFdyU3Mvd0NpdUFFQUZkZW1wbUVhL3dDcnVBRUFIWERmMzhKOS93QzB1QUVBZUYvTmdNM0Ivd0M5dUFFQWVmMkZBWVZ4L3dER3VBRUFGZGVtcG1FYS93RFB1QUVBSFhEZjM4Sjkvd0RZdUFFQUFBRDE5ZlgxL3dEaHVBRUFlRi9OZ00zQi93RHF1QUVBZWYyRkFZ''@;'; + put 'put ''Vngvd0R6dUFFQUYreU1qRkVLL3dEOHVBRUFISWZZMkxObC93QUZ1UUVBSGpUMjl1akQvd0FPdVFFQWVTYnF4K3JsL3dBWHVRRUFlMyswV3JTcy93QWd1UUVBZlB4bUFXWmUvd0FwdVFFQUYreU1qRkVLL3dBeXVRRUFISWZZMkxObC93QTd1UUVBSGpUMjl1akQvd0JFdVFFQUFBRDE5ZlgxL3dC''@;'; + put 'put ''TnVRRUFlU2JxeCtybC93Qld1UUVBZTMrMFdyU3Mvd0JmdVFFQWZQeG1BV1plL3dCb3VRRUFGK3lNakZFSy93Qnh1UUVBR01LL3Y0RXQvd0I2dVFFQUhYRGYzOEo5L3dDRHVRRUFIalQyOXVqRC93Q011UUVBZVNicXgrcmwvd0NWdVFFQWVGL05nTTNCL3dDZXVRRUFmS1dYTlplUC93Q251UUVB''@;'; + put 'put ''ZlB4bUFXWmUvd0N3dVFFQUYreU1qRkVLL3dDNXVRRUFHTUsvdjRFdC93REN1UUVBSFhEZjM4Sjkvd0RMdVFFQUhqVDI5dWpEL3dEVXVRRUFBQUQxOWZYMS93RGR1UUVBZVNicXgrcmwvd0RtdVFFQWVGL05nTTNCL3dEdnVRRUFmS1dYTlplUC93RDR1UUVBZlB4bUFXWmUvd0FCdWdFQWh4VDU1''@;'; + put 'put ''Zlg1L3dBS3VnRUFkVXJZbWRqSi93QVR1Z0VBWjdtaUxLSmYvd0FjdWdFQWlBNzc3Zmo3L3dBbHVnRUFmemJpc3VMaS93QXV1Z0VBY1hqQ1pzS2svd0EzdWdFQVlyNkxJNHRGL3dCQXVnRUFpQTc3N2ZqNy93Qkp1Z0VBZnpiaXN1TGkvd0JTdWdFQWNYakNac0trL3dCYnVnRUFaN21pTEtKZi93''@;'; + put 'put ''Qmt1Z0VBWnY5dEFHMHMvd0J0dWdFQWlBNzc3Zmo3L3dCMnVnRUFkeUxzek96bS93Qi91Z0VBZFVyWW1kakovd0NJdWdFQWNYakNac0trL3dDUnVnRUFaN21pTEtKZi93Q2F1Z0VBWnY5dEFHMHMvd0NqdWdFQWlBNzc3Zmo3L3dDc3VnRUFkeUxzek96bS93QzF1Z0VBZFVyWW1kakovd0MrdWdF''@;'; + put 'put ''QWNYakNac0trL3dESHVnRUFhWit1UWE1Mi93RFF1Z0VBWXI2TEk0dEYvd0RadWdFQVp2OVlBRmdrL3dEaXVnRUFoZ2I5OS96OS93RHJ1Z0VBaHhUNTVmWDUvd0QwdWdFQWR5THN6T3ptL3dEOXVnRUFkVXJZbWRqSi93QUd1d0VBY1hqQ1pzS2svd0FQdXdFQWFaK3VRYTUyL3dBWXV3RUFZcjZM''@;'; + put 'put ''STR0Ri93QWh1d0VBWnY5WUFGZ2svd0FxdXdFQWhnYjk5L3o5L3dBenV3RUFoeFQ1NWZYNS93QTh1d0VBZHlMc3pPem0vd0JGdXdFQWRVclltZGpKL3dCT3V3RUFjWGpDWnNLay93Qlh1d0VBYVordVFhNTIvd0JndXdFQVlyNkxJNHRGL3dCcHV3RUFadjl0QUcwcy93Qnl1d0VBWmY5RUFFUWIv''@;'; + put 'put ''d0I3dXdFQWtCVDA0T3owL3dDRXV3RUFsRWJhbnJ6YS93Q051d0VBeEh1bmlGYW4vd0NXdXdFQWlBNzc3Zmo3L3dDZnV3RUFralhqczgzai93Q291d0VBb2tyR2pKYkcvd0N4dXdFQXlwV2RpRUdkL3dDNnV3RUFpQTc3N2ZqNy93RER1d0VBa2pYanM4M2ovd0RNdXdFQW9rckdqSmJHL3dEVnV3''@;'; + put 'put ''RUF4SHVuaUZhbi93RGV1d0VBMXVHQmdROTgvd0RudXdFQWlBNzc3Zmo3L3dEd3V3RUFsQ3ZtdjlQbS93RDV1d0VBbEViYW5yemEvd0FDdkFFQW9rckdqSmJHL3dBTHZBRUF4SHVuaUZhbi93QVV2QUVBMXVHQmdROTgvd0FkdkFFQWlBNzc3Zmo3L3dBbXZBRUFsQ3ZtdjlQbS93QXZ2QUVBbEVi''@;'; + put 'put ''YW5yemEvd0E0dkFFQW9rckdqSmJHL3dCQnZBRUF2bVN4akd1eC93Qkt2QUVBeXBXZGlFR2Qvd0JUdkFFQTFmeHViZ0ZyL3dCY3ZBRUFoZ2I5OS96OS93Qmx2QUVBa0JUMDRPejAvd0J1dkFFQWxDdm12OVBtL3dCM3ZBRUFsRWJhbnJ6YS93Q0F2QUVBb2tyR2pKYkcvd0NKdkFFQXZtU3hqR3V4''@;'; + put 'put ''L3dDU3ZBRUF5cFdkaUVHZC93Q2J2QUVBMWZ4dWJnRnIvd0NrdkFFQWhnYjk5L3o5L3dDdHZBRUFrQlQwNE96MC93QzJ2QUVBbEN2bXY5UG0vd0MvdkFFQWxFYmFucnphL3dESXZBRUFva3JHakpiRy93RFJ2QUVBdm1TeGpHdXgvd0RhdkFFQXlwV2RpRUdkL3dEanZBRUExdUdCZ1E5OC93RHN2''@;'; + put 'put ''QUVBMWY5TlRRQkwvd0QxdkFFQWN0T2VHNTUzL3dEL3ZBRUFFdnpaMlY4Qy93QUp2UUVBclYremRYQ3ovd0FUdlFFQWN0T2VHNTUzL3dBZHZRRUFFdnpaMlY4Qy93QW52UUVBclYremRYQ3ovd0F4dlFFQTZkSG41eW1LL3dBN3ZRRUFjdE9lRzU1My93QkZ2UUVBRXZ6WjJWOEMvd0JQdlFFQXJW''@;'; + put 'put ''K3pkWEN6L3dCWnZRRUE2ZEhuNXltSy93Qmp2UUVBUHRDbVpxWWUvd0J0dlFFQWN0T2VHNTUzL3dCM3ZRRUFFdnpaMlY4Qy93Q0J2UUVBclYremRYQ3ovd0NMdlFFQTZkSG41eW1LL3dDVnZRRUFQdENtWnFZZS93Q2Z2UUVBSC96bTVxc0Mvd0NwdlFFQWN0T2VHNTUzL3dDenZRRUFFdnpaMlY4''@;'; + put 'put ''Qy93Qzl2UUVBclYremRYQ3ovd0RIdlFFQTZkSG41eW1LL3dEUnZRRUFQdENtWnFZZS93RGJ2UUVBSC96bTVxc0Mvd0RsdlFFQUc5S21wbllkL3dEdnZRRUFjdE9lRzU1My93RDV2UUVBRXZ6WjJWOEMvd0FEdmdFQXJWK3pkWEN6L3dBTnZnRUE2ZEhuNXltSy93QVh2Z0VBUHRDbVpxWWUvd0Fo''@;'; + put 'put ''dmdFQUgvem01cXNDL3dBcnZnRUFHOUttcG5ZZC93QTF2Z0VBQUFCbVptWm0vd0EvdmdFQVRCbno0UFBiL3dCSXZnRUFYejNkcU4yMS93QlJ2Z0VBaktyS1E2TEsvd0JhdmdFQVFSSDU4UG5vL3dCanZnRUFWeTdrdXVTOC93QnN2Z0VBZTJYTWU4ekUvd0IxdmdFQWpjVytLNHkrL3dCK3ZnRUFR''@;'; + put 'put ''Ukg1OFBuby93Q0h2Z0VBVnk3a3V1Uzgvd0NRdmdFQWUyWE1lOHpFL3dDWnZnRUFqS3JLUTZMSy93Q2l2Z0VBa2ZPc0NHaXMvd0NydmdFQVFSSDU4UG5vL3dDMHZnRUFUU25yek92Ri93Qzl2Z0VBWHozZHFOMjEvd0RHdmdFQWUyWE1lOHpFL3dEUHZnRUFqS3JLUTZMSy93RFl2Z0VBa2ZPc0NH''@;'; + put 'put ''aXMvd0RodmdFQVFSSDU4UG5vL3dEcXZnRUFUU25yek92Ri93RHp2Z0VBWHozZHFOMjEvd0Q4dmdFQWUyWE1lOHpFL3dBRnZ3RUFpYURUVHJQVC93QU92d0VBamNXK0s0eSsvd0FYdndFQWsvS2VDRmllL3dBZ3Z3RUFQQXo4OS96dy93QXB2d0VBVEJuejRQUGIvd0F5dndFQVRTbnJ6T3ZGL3dB''@;'; + put 'put ''N3Z3RUFYejNkcU4yMS93QkV2d0VBZTJYTWU4ekUvd0JOdndFQWlhRFRUclBUL3dCV3Z3RUFqY1crSzR5Ky93QmZ2d0VBay9LZUNGaWUvd0JvdndFQVBBejg5L3p3L3dCeHZ3RUFUQm56NFBQYi93QjZ2d0VBVFNucnpPdkYvd0NEdndFQVh6M2RxTjIxL3dDTXZ3RUFlMlhNZTh6RS93Q1Z2d0VB''@;'; + put 'put ''aWFEVFRyUFQvd0NldndFQWpjVytLNHkrL3dDbnZ3RUFrZk9zQ0dpcy93Q3d2d0VBbHUrQkNFQ0Ivd0M1dndFQVNoWDE1ZlhnL3dERXZ3RUFVRWpab2RtYi93RFB2d0VBWXJLak1hTlUvd0RhdndFQVNRLzQ3ZmpwL3dEbHZ3RUFUamJrdXVTei93RHd2d0VBVm1qRWRNUjIvd0Q3dndFQVlyNkxJ''@;'; + put 'put ''NHRGL3dBR3dBRUFTUS80N2ZqcC93QVJ3QUVBVGpia3V1U3ovd0Fjd0FFQVZtakVkTVIyL3dBbndBRUFZcktqTWFOVS93QXl3QUVBWnY5dEFHMHMvd0E5d0FFQVNRLzQ3ZmpwL3dCSXdBRUFUU3pweCtuQS93QlR3QUVBVUVqWm9kbWIvd0Jld0FFQVZtakVkTVIyL3dCcHdBRUFZcktqTWFOVS93''@;'; + put 'put ''QjB3QUVBWnY5dEFHMHMvd0Ivd0FFQVNRLzQ3ZmpwL3dDS3dBRUFUU3pweCtuQS93Q1Z3QUVBVUVqWm9kbWIvd0Nnd0FFQVZtakVkTVIyL3dDcndBRUFZSjZyUWF0ZC93QzJ3QUVBWXI2TEk0dEYvd0RCd0FFQWJQOWFBRm95L3dETXdBRUFTQWY4OS96MS93RFh3QUVBU2hYMTVmWGcvd0Rpd0FF''@;'; + put 'put ''QVRTenB4K25BL3dEdHdBRUFVRWpab2RtYi93RDR3QUVBVm1qRWRNUjIvd0FEd1FFQVlKNnJRYXRkL3dBT3dRRUFZcjZMSTR0Ri93QVp3UUVBYlA5YUFGb3kvd0Frd1FFQVNBZjg5L3oxL3dBdndRRUFTaFgxNWZYZy93QTZ3UUVBVFN6cHgrbkEvd0JGd1FFQVVFalpvZG1iL3dCUXdRRUFWbWpF''@;'; + put 'put ''ZE1SMi93QmJ3UUVBWUo2clFhdGQvd0Jtd1FFQVlyNkxJNHRGL3dCeHdRRUFadjl0QUcwcy93Qjh3UUVBWmY5RUFFUWIvd0NId1FFQUFBRHc4UER3L3dDUndRRUFBQUM5dmIyOS93Q2J3UUVBQUFCalkyTmovd0Nsd1FFQUFBRDM5L2YzL3dDdndRRUFBQURNek16TS93QzV3UUVBQUFDV2xwYVcv''@;'; + put 'put ''d0REd1FFQUFBQlNVbEpTL3dETndRRUFBQUQzOS9mMy93RFh3UUVBQUFETXpNek0vd0Rod1FFQUFBQ1dscGFXL3dEcndRRUFBQUJqWTJOai93RDF3UUVBQUFBbEpTVWwvd0Qvd1FFQUFBRDM5L2YzL3dBSndnRUFBQURaMmRuWi93QVR3Z0VBQUFDOXZiMjkvd0Fkd2dFQUFBQ1dscGFXL3dBbndn''@;'; + put 'put ''RUFBQUJqWTJOai93QXh3Z0VBQUFBbEpTVWwvd0E3d2dFQUFBRDM5L2YzL3dCRndnRUFBQURaMmRuWi93QlB3Z0VBQUFDOXZiMjkvd0Jad2dFQUFBQ1dscGFXL3dCandnRUFBQUJ6YzNOei93QnR3Z0VBQUFCU1VsSlMvd0Izd2dFQUFBQWxKU1VsL3dDQndnRUFBQUQvLy8vLy93Q0x3Z0VBQUFE''@;'; + put 'put ''dzhQRHcvd0NWd2dFQUFBRFoyZG5aL3dDZndnRUFBQUM5dmIyOS93Q3B3Z0VBQUFDV2xwYVcvd0N6d2dFQUFBQnpjM056L3dDOXdnRUFBQUJTVWxKUy93REh3Z0VBQUFBbEpTVWwvd0RSd2dFQUFBRC8vLy8vL3dEYndnRUFBQUR3OFBEdy93RGx3Z0VBQUFEWjJkblovd0R2d2dFQUFBQzl2YjI5''@;'; + put 'put ''L3dENXdnRUFBQUNXbHBhVy93QUR3d0VBQUFCemMzTnovd0FOd3dFQUFBQlNVbEpTL3dBWHd3RUFBQUFsSlNVbC93QWh3d0VBQUFBQUFBQUEvd0Fyd3dFQUZURCsvdWJPL3dBM3d3RUFFNVA5L2E1ci93QkR3d0VBRHZEbTVsVU4vd0JQd3dFQUV5RCsvdTNlL3dCYnd3RUFGSGo5L2I2Ri93Qm53''@;'; + put 'put ''d0VBRWNMOS9ZMDgvd0J6d3dFQURmM1oyVWNCL3dCL3d3RUFFeUQrL3UzZS93Q0x3d0VBRkhqOS9iNkYvd0NYd3dFQUVjTDkvWTA4L3dDand3RUFEdkRtNWxVTi93Q3Z3d0VBRGZxbXBqWUQvd0M3d3dFQUV5RCsvdTNlL3dESHd3RUFGVnY5L2RDaS93RFR3d0VBRTVQOS9hNXIvd0Rmd3dFQUVj''@;'; + put 'put ''TDkvWTA4L3dEcnd3RUFEdkRtNWxVTi93RDN3d0VBRGZxbXBqWUQvd0FEeEFFQUV5RCsvdTNlL3dBUHhBRUFGVnY5L2RDaS93QWJ4QUVBRTVQOS9hNXIvd0FueEFFQUVjTDkvWTA4L3dBenhBRUFFT3J4OFdrVC93QS94QUVBRGYzWjJVZ0Ivd0JMeEFFQURQZU1qQzBFL3dCWHhBRUFGUlQvLy9Y''@;'; + put 'put ''ci93Qmp4QUVBRlREKy91Yk8vd0J2eEFFQUZWdjkvZENpL3dCN3hBRUFFNVA5L2E1ci93Q0h4QUVBRWNMOS9ZMDgvd0NUeEFFQUVPcng4V2tUL3dDZnhBRUFEZjNaMlVnQi93Q3J4QUVBRFBlTWpDMEUvd0MzeEFFQUZSVC8vL1hyL3dERHhBRUFGVEQrL3ViTy93RFB4QUVBRlZ2OS9kQ2kvd0Ri''@;'; + put 'put ''eEFFQUU1UDkvYTVyL3dEbnhBRUFFY0w5L1kwOC93RHp4QUVBRU9yeDhXa1Qvd0QveEFFQURmM1oyVWdCL3dBTHhRRUFEZnFtcGpZRC93QVh4UUVBRFBaL2Z5Y0Uvd0FqeFFFQUdUYisvdWpJL3dBc3hRRUFFM245L2J1RS93QTF4UUVBQmNYajQwb3ovd0EreFFFQUdpWCsvdkRaL3dCSHhRRUFH''@;'; + put 'put ''SFA5L2N5Sy93QlF4UUVBRGFUOC9JMVovd0JaeFFFQUE5clgxekFmL3dCaXhRRUFHaVgrL3ZEWi93QnJ4UUVBR0hQOS9jeUsvd0IweFFFQURhVDgvSTFaL3dCOXhRRUFCY1hqNDBvei93Q0d4UUVBQVArenN3QUEvd0NQeFFFQUdpWCsvdkRaL3dDWXhRRUFHRi85L2RTZS93Q2h4UUVBRTNuOS9i''@;'; + put 'put ''dUUvd0NxeFFFQURhVDgvSTFaL3dDenhRRUFCY1hqNDBvei93Qzh4UUVBQVArenN3QUEvd0RGeFFFQUdpWCsvdkRaL3dET3hRRUFHRi85L2RTZS93RFh4UUVBRTNuOS9idUUvd0RneFFFQURhVDgvSTFaL3dEcHhRRUFCN0x2NzJWSS93RHl4UUVBQTlyWDF6QWYvd0Q3eFFFQUFQK1ptUUFBL3dB''@;'; + put 'put ''RXhnRUFHQkwvLy9mcy93QU54Z0VBR1RiKy91akkvd0FXeGdFQUdGLzkvZFNlL3dBZnhnRUFFM245L2J1RS93QW94Z0VBRGFUOC9JMVovd0F4eGdFQUI3THY3MlZJL3dBNnhnRUFBOXJYMXpBZi93QkR4Z0VBQVArWm1RQUEvd0JNeGdFQUdCTC8vL2ZzL3dCVnhnRUFHVGIrL3VqSS93QmV4Z0VB''@;'; + put 'put ''R0YvOS9kU2Uvd0JueGdFQUUzbjkvYnVFL3dCd3hnRUFEYVQ4L0kxWi93QjV4Z0VBQjdMdjcyVkkvd0NDeGdFQUE5clgxekFmL3dDTHhnRUFBUCt6c3dBQS93Q1V4Z0VBQVA5L2Z3QUEvd0NkeGdFQWprVGpwczdqL3dDcHhnRUF2cG1hYWoyYS93QzJ4Z0VBa05PMEgzaTAvd0RDeGdFQVFXSGZz''@;'; + put 'put ''dCtLL3dET3hnRUFVcmlnTTZBcy93RGF4Z0VBQUdQNys1cVovd0RteGdFQS91SGo0eG9jL3dEeXhnRUFGNC85L2I5di93RCt4Z0VBRmYvLy8zOEEvd0FLeHdFQXhpcld5ckxXL3dBV3h3RUFqa1RqcHM3ai93QWl4d0VBdnBtYWFqMmEvd0F2eHdFQUttYi8vLytaL3dBOHh3RUFrTk8wSDNpMC93''@;'; + put 'put ''Qkl4d0VBUVdIZnN0K0svd0JVeHdFQVVyaWdNNkFzL3dCZ3h3RUFBR1A3KzVxWi93QnN4d0VBL3VIajR4b2Mvd0I0eHdFQUY0LzkvYjl2L3dDRXh3RUFGZi8vLzM4QS93Q1F4d0VBeGlyV3lyTFcvd0NjeHdFQWprVGpwczdqL3dDb3h3RUF2cG1hYWoyYS93QzF4d0VBS21iLy8vK1ovd0RDeHdF''@;'; + put 'put ''QUQ4V3hzVmtvL3dEUHh3RUFrTk8wSDNpMC93RGJ4d0VBUVdIZnN0K0svd0RueHdFQVVyaWdNNkFzL3dEenh3RUFBR1A3KzVxWi93RC94d0VBL3VIajR4b2Mvd0FMeUFFQUY0LzkvYjl2L3dBWHlBRUFGZi8vLzM4QS93QWp5QUVBeGlyV3lyTFcvd0F2eUFFQWprVGpwczdqL3dBNnlBRUFrTk8w''@;'; + put 'put ''SDNpMC93QkZ5QUVBUVdIZnN0K0svd0JReUFFQWprVGpwczdqL3dCYnlBRUFrTk8wSDNpMC93Qm15QUVBUVdIZnN0K0svd0J4eUFFQVVyaWdNNkFzL3dCOHlBRUFqa1RqcHM3ai93Q0h5QUVBa05PMEgzaTAvd0NTeUFFQVFXSGZzdCtLL3dDZHlBRUFVcmlnTTZBcy93Q295QUVBQUdQNys1cVov''@;'; + put 'put ''d0N6eUFFQWprVGpwczdqL3dDK3lBRUFrTk8wSDNpMC93REp5QUVBUVdIZnN0K0svd0RVeUFFQVVyaWdNNkFzL3dEZnlBRUFBR1A3KzVxWi93RHF5QUVBL3VIajR4b2Mvd0QxeUFFQWprVGpwczdqL3dBQXlRRUFrTk8wSDNpMC93QUx5UUVBUVdIZnN0K0svd0FXeVFFQVVyaWdNNkFzL3dBaHlR''@;'; + put 'put ''RUFBR1A3KzVxWi93QXN5UUVBL3VIajR4b2Mvd0EzeVFFQUY0LzkvYjl2L3dCQ3lRRUFqa1RqcHM3ai93Qk55UUVBa05PMEgzaTAvd0JZeVFFQVFXSGZzdCtLL3dCanlRRUFVcmlnTTZBcy93QnV5UUVBQUdQNys1cVovd0I1eVFFQS91SGo0eG9jL3dDRXlRRUFGNC85L2I5di93Q1B5UUVBRmYv''@;'; + put 'put ''Ly8zOEEvd0NheVFFQWprVGpwczdqL3dDbHlRRUFrTk8wSDNpMC93Q3d5UUVBUVdIZnN0K0svd0M3eVFFQVVyaWdNNkFzL3dER3lRRUFBR1A3KzVxWi93RFJ5UUVBL3VIajR4b2Mvd0RjeVFFQUY0LzkvYjl2L3dEbnlRRUFGZi8vLzM4QS93RHl5UUVBeGlyV3lyTFcvd0Q5eVFFQUEwNzcrN1N1''@;'; + put 'put ''L3dBSnlnRUFralhqczgzai93QVZ5Z0VBVFNucnpPdkYvd0FoeWdFQUEwNzcrN1N1L3dBdHlnRUFralhqczgzai93QTV5Z0VBVFNucnpPdkYvd0JGeWdFQXlodmszc3ZrL3dCUnlnRUFBMDc3KzdTdS93QmR5Z0VBa2pYanM4M2ovd0JweWdFQVRTbnJ6T3ZGL3dCMXlnRUF5aHZrM3N2ay93Q0J5''@;'; + put 'put ''Z0VBR0ZqKy90bW0vd0NOeWdFQUEwNzcrN1N1L3dDWnlnRUFralhqczgzai93Q2x5Z0VBVFNucnpPdkYvd0N4eWdFQXlodmszc3ZrL3dDOXlnRUFHRmorL3RtbS93REp5Z0VBS2pMLy8vL00vd0RWeWdFQUEwNzcrN1N1L3dEaHlnRUFralhqczgzai93RHR5Z0VBVFNucnpPdkYvd0Q1eWdFQXlo''@;'; + put 'put ''dmszc3ZrL3dBRnl3RUFHRmorL3RtbS93QVJ5d0VBS2pMLy8vL00vd0FkeXdFQUhDemw1ZGk5L3dBcHl3RUFBMDc3KzdTdS93QTF5d0VBa2pYanM4M2ovd0JCeXdFQVRTbnJ6T3ZGL3dCTnl3RUF5aHZrM3N2ay93Qlp5d0VBR0ZqKy90bW0vd0JseXdFQUtqTC8vLy9NL3dCeHl3RUFIQ3psNWRp''@;'; + put 'put ''OS93Qjl5d0VBNlNQOS9kcnMvd0NKeXdFQUEwNzcrN1N1L3dDVnl3RUFralhqczgzai93Q2h5d0VBVFNucnpPdkYvd0N0eXdFQXlodmszc3ZrL3dDNXl3RUFHRmorL3RtbS93REZ5d0VBS2pMLy8vL00vd0RSeXdFQUhDemw1ZGk5L3dEZHl3RUE2U1A5L2Rycy93RHB5d0VBQUFEeTh2THkvd0Qx''@;'; + put 'put ''eXdFQWJEWGlzK0xOL3dBQnpBRUFFVkg5L2Mycy93QU56QUVBbXgvb3k5WG8vd0FaekFFQWJEWGlzK0xOL3dBbHpBRUFFVkg5L2Mycy93QXh6QUVBbXgvb3k5WG8vd0E5ekFFQTVDdjA5TXJrL3dCSnpBRUFiRFhpcytMTi93QlZ6QUVBRVZIOS9jMnMvd0JoekFFQW14L295OVhvL3dCdHpBRUE1''@;'; + put 'put ''Q3YwOU1yay93QjV6QUVBT0MzMTV2WEovd0NGekFFQWJEWGlzK0xOL3dDUnpBRUFFVkg5L2Mycy93Q2R6QUVBbXgvb3k5WG8vd0NwekFFQTVDdjA5TXJrL3dDMXpBRUFPQzMxNXZYSi93REJ6QUVBSTFILy8vS3Uvd0ROekFFQWJEWGlzK0xOL3dEWnpBRUFFVkg5L2Mycy93RGx6QUVBbXgvb3k5''@;'; + put 'put ''WG8vd0R4ekFFQTVDdjA5TXJrL3dEOXpBRUFPQzMxNXZYSi93QUp6UUVBSTFILy8vS3Uvd0FWelFFQUdTZng4ZUxNL3dBaHpRRUFiRFhpcytMTi93QXR6UUVBRVZIOS9jMnMvd0E1elFFQW14L295OVhvL3dCRnpRRUE1Q3YwOU1yay93QlJ6UUVBT0MzMTV2WEovd0JkelFFQUkxSC8vL0t1L3dC''@;'; + put 'put ''cHpRRUFHU2Z4OGVMTS93QjF6UUVBQUFETXpNek0vd0NCelFFQTV2Mk9qZ0ZTL3dDTHpRRUFUYjlrSjJRWi93Q1d6UUVBNXR6RnhSdDkvd0NnelFFQTZIYmUzbmV1L3dDcXpRRUE1VDd4OGJiYS93QzB6UUVBNlIzOS9lRHYvd0MrelFFQU95YjE1dlhRL3dESXpRRUFQV2ZodU9HRy93RFN6UUVB''@;'; + put 'put ''UDZhOGY3eEIvd0RjelFFQVJNV1NUWkloL3dEbXpRRUE1djJPamdGUy93RHd6UUVBUk1XU1RaSWgvd0Q3elFFQVRiOWtKMlFaL3dBR3pnRUE1dHpGeFJ0OS93QVF6Z0VBNkhiZTNuZXUvd0FhemdFQTVUN3g4YmJhL3dBa3pnRUE2UjM5L2VEdi93QXV6Z0VBQUFEMzkvZjMvd0E0emdFQU95YjE1''@;'; + put 'put ''dlhRL3dCQ3pnRUFQV2ZodU9HRy93Qk16Z0VBUDZhOGY3eEIvd0JXemdFQTUwenA2YVBKL3dCZnpnRUFBQUQzOS9mMy93Qm96Z0VBUDRIWG9kZHEvd0J4emdFQTVOelEwQnlML3dCNnpnRUE1VDd4OGJiYS93Q0R6Z0VBUFdmaHVPR0cvd0NNemdFQVNNYXNUYXdtL3dDVnpnRUE1TnpRMEJ5TC93''@;'; + put 'put ''Q2V6Z0VBNVQ3eDhiYmEvd0NuemdFQUFBRDM5L2YzL3dDd3pnRUFQV2ZodU9HRy93QzV6Z0VBU01hc1Rhd20vd0RDemdFQTV0ekZ4UnQ5L3dETHpnRUE1MHpwNmFQSi93RFV6Z0VBNlIzOS9lRHYvd0RkemdFQU95YjE1dlhRL3dEbXpnRUFQNEhYb2RkcS93RHZ6Z0VBUk1XU1RaSWgvd0Q0emdF''@;'; + put 'put ''QTV0ekZ4UnQ5L3dBQnp3RUE1MHpwNmFQSi93QUt6d0VBNlIzOS9lRHYvd0FUendFQUFBRDM5L2YzL3dBY3p3RUFPeWIxNXZYUS93QWx6d0VBUDRIWG9kZHEvd0F1endFQVJNV1NUWkloL3dBM3p3RUE1dHpGeFJ0OS93QkF6d0VBNkhiZTNuZXUvd0JKendFQTVUN3g4YmJhL3dCU3p3RUE2UjM5''@;'; + put 'put ''L2VEdi93QmJ6d0VBT3liMTV2WFEvd0JrendFQVBXZmh1T0dHL3dCdHp3RUFQNmE4Zjd4Qi93QjJ6d0VBUk1XU1RaSWgvd0IvendFQTV0ekZ4UnQ5L3dDSXp3RUE2SGJlM25ldS93Q1J6d0VBNVQ3eDhiYmEvd0NhendFQTZSMzkvZUR2L3dDanp3RUFBQUQzOS9mMy93Q3N6d0VBT3liMTV2WFEv''@;'; + put 'put ''d0MxendFQVBXZmh1T0dHL3dDK3p3RUFQNmE4Zjd4Qi93REh6d0VBUk1XU1RaSWgvd0RRendFQXp2OUxRQUJML3dEYXp3RUFaZjlFQUVRYi93RGx6d0VBenEyRGRpcUQvd0R2endFQXgxZXJtWENyL3dENXp3RUF4elBQd3FYUC93QUQwQUVBMGhYbzU5VG8vd0FOMEFFQVRCN3cyZkRUL3dBWDBB''@;'; + put 'put ''RUFVRVRicHR1Zy93QWgwQUVBV0h1dVdxNWgvd0FyMEFFQVljVjRHM2czL3dBMTBBRUF6djlMUUFCTC93QS8wQUVBWWNWNEczZzMvd0JLMEFFQVpmOUVBRVFiL3dCVjBBRUF6cTJEZGlxRC93QmYwQUVBeDFlcm1YQ3Ivd0JwMEFFQXh6UFB3cVhQL3dCejBBRUEwaFhvNTlUby93QjkwQUVBQUFE''@;'; + put 'put ''MzkvZjMvd0NIMEFFQVRCN3cyZkRUL3dDUjBBRUFVRVRicHR1Zy93Q2IwQUVBV0h1dVdxNWgvd0NsMEFFQXhFYkRyNDNEL3dDdTBBRUFBQUQzOS9mMy93QzMwQUVBVWxxL2Y3OTcvd0RBMEFFQXlhaVVlektVL3dESjBBRUF4elBQd3FYUC93RFMwQUVBVUVUYnB0dWcvd0RiMEFFQVp2K0lBSWcz''@;'; + put 'put ''L3dEazBBRUF5YWlVZXpLVS93RHQwQUVBeHpQUHdxWFAvd0QyMEFFQUFBRDM5L2YzL3dELzBBRUFVRVRicHR1Zy93QUkwUUVBWnYrSUFJZzMvd0FSMFFFQXpxMkRkaXFEL3dBYTBRRUF4RWJEcjQzRC93QWowUUVBMGhYbzU5VG8vd0FzMFFFQVRCN3cyZkRUL3dBMTBRRUFVbHEvZjc5Ny93QSsw''@;'; + put 'put ''UUVBWWNWNEczZzMvd0JIMFFFQXpxMkRkaXFEL3dCUTBRRUF4RWJEcjQzRC93QlowUUVBMGhYbzU5VG8vd0JpMFFFQUFBRDM5L2YzL3dCcjBRRUFUQjd3MmZEVC93QjAwUUVBVWxxL2Y3OTcvd0I5MFFFQVljVjRHM2czL3dDRzBRRUF6cTJEZGlxRC93Q1AwUUVBeDFlcm1YQ3Ivd0NZMFFFQXh6''@;'; + put 'put ''UFB3cVhQL3dDaDBRRUEwaFhvNTlUby93Q3EwUUVBVEI3dzJmRFQvd0N6MFFFQVVFVGJwdHVnL3dDODBRRUFXSHV1V3E1aC93REYwUUVBWWNWNEczZzMvd0RPMFFFQXpxMkRkaXFEL3dEWDBRRUF4MWVybVhDci93RGcwUUVBeHpQUHdxWFAvd0RwMFFFQTBoWG81OVRvL3dEeTBRRUFBQUQzOS9m''@;'; + put 'put ''My93RDcwUUVBVEI3dzJmRFQvd0FFMGdFQVVFVGJwdHVnL3dBTjBnRUFXSHV1V3E1aC93QVcwZ0VBWWNWNEczZzMvd0FmMGdFQXZRdnk3T2Z5L3dBbzBnRUFsejNicHIzYi93QXgwZ0VBamNXK0s0eSsvd0E2MGdFQXVRajI4ZTcyL3dCRDBnRUFteWpodmNuaC93Qk0wZ0VBa1hEUGRLblAvd0JW''@;'; + put 'put ''MGdFQWovZXdCWEN3L3dCZTBnRUF1UWoyOGU3Mi93Qm4wZ0VBbXlqaHZjbmgvd0J3MGdFQWtYRFBkS25QL3dCNTBnRUFqY1crSzR5Ky93Q0MwZ0VBai9lTkJGcU4vd0NMMGdFQXVRajI4ZTcyL3dDVTBnRUFxQmptME5IbS93Q2QwZ0VBbHozYnByM2Ivd0NtMGdFQWtYRFBkS25QL3dDdjBnRUFq''@;'; + put 'put ''Y1crSzR5Ky93QzQwZ0VBai9lTkJGcU4vd0RCMGdFQXVRajI4ZTcyL3dESzBnRUFxQmptME5IbS93RFQwZ0VBbHozYnByM2Ivd0RjMGdFQWtYRFBkS25QL3dEbDBnRUFqcmZBTnBEQS93RHUwZ0VBai9ld0JYQ3cvd0QzMGdFQWovaDdBMDU3L3dBQTB3RUE2UWovLy9mNy93QUowd0VBdlF2eTdP''@;'; + put 'put ''Znkvd0FTMHdFQXFCam0wTkhtL3dBYjB3RUFsejNicHIzYi93QWswd0VBa1hEUGRLblAvd0F0MHdFQWpyZkFOcERBL3dBMjB3RUFqL2V3QlhDdy93QS8wd0VBai9oN0EwNTcvd0JJMHdFQTZRai8vL2Y3L3dCUjB3RUF2UXZ5N09meS93QmEwd0VBcUJqbTBOSG0vd0JqMHdFQWx6M2JwcjNiL3dC''@;'; + put 'put ''czB3RUFrWERQZEtuUC93QjEwd0VBanJmQU5wREEvd0IrMHdFQWovZXdCWEN3L3dDSDB3RUFqL2VOQkZxTi93Q1Ewd0VBai9sWUFqaFkvd0NaMHdFQXlBN3c3T0x3L3dDazB3RUFsejNicHIzYi93Q3Ywd0VBZ3RDWkhKQ1ovd0M2MHdFQXp3ajM5dS8zL3dERjB3RUFteWpodmNuaC93RFEwd0VB''@;'; + put 'put ''ajREUFo2blAvd0RiMHdFQWd2dUtBb0dLL3dEbTB3RUF6d2ozOXUvMy93RHgwd0VBbXlqaHZjbmgvd0Q4MHdFQWo0RFBaNm5QL3dBSDFBRUFndENaSEpDWi93QVMxQUVBZC94c0FXeFovd0FkMUFFQXp3ajM5dS8zL3dBbzFBRUFxQmptME5IbS93QXoxQUVBbHozYnByM2Ivd0ErMUFFQWo0RFBa''@;'; + put 'put ''Nm5QL3dCSjFBRUFndENaSEpDWi93QlUxQUVBZC94c0FXeFovd0JmMUFFQXp3ajM5dS8zL3dCcTFBRUFxQmptME5IbS93QjExQUVBbHozYnByM2Ivd0NBMUFFQWo0RFBaNm5QL3dDTDFBRUFqcmZBTnBEQS93Q1cxQUVBZ3Z1S0FvR0svd0NoMUFFQWR2eGtBV1JRL3dDczFBRUE2UWovLy9mNy93''@;'; + put 'put ''QzMxQUVBeUE3dzdPTHcvd0RDMUFFQXFCam0wTkhtL3dETjFBRUFsejNicHIzYi93RFkxQUVBajREUFo2blAvd0RqMUFFQWpyZkFOcERBL3dEdTFBRUFndnVLQW9HSy93RDUxQUVBZHZ4a0FXUlEvd0FFMVFFQTZRai8vL2Y3L3dBUDFRRUF5QTd3N09Mdy93QWExUUVBcUJqbTBOSG0vd0FsMVFF''@;'; + put 'put ''QWx6M2JwcjNiL3dBdzFRRUFqNERQWjZuUC93QTcxUUVBanJmQU5wREEvd0JHMVFFQWd2dUtBb0dLL3dCUjFRRUFkL3hzQVd4Wi93QmMxUUVBZGZ0R0FVWTIvd0JuMVFFQUV1NS9menNJL3dCeDFRRUF3LzlMTFFCTC93QjgxUUVBRlBhenMxZ0cvd0NHMVFFQUZ1amc0SUlVL3dDUTFRRUFGNXY5''@;'; + put 'put ''L2Joai93Q2ExUUVBR0VqKy91QzIvd0NrMVFFQXBSVHIyTnJyL3dDdTFRRUFzUy9Tc3F2Uy93QzQxUUVBczFTc2dIT3Mvd0RDMVFFQXZiV0lWQ2VJL3dETTFRRUFFdTUvZnpzSS93RFcxUUVBdmJXSVZDZUkvd0RoMVFFQXcvOUxMUUJML3dEczFRRUFGUGF6czFnRy93RDIxUUVBRnVqZzRJSVUv''@;'; + put 'put ''d0FBMWdFQUY1djkvYmhqL3dBSzFnRUFHRWorL3VDMi93QVUxZ0VBQUFEMzkvZjMvd0FlMWdFQXBSVHIyTnJyL3dBbzFnRUFzUy9Tc3F2Uy93QXkxZ0VBczFTc2dIT3Mvd0E4MWdFQUY3dng4YU5BL3dCRjFnRUFBQUQzOS9mMy93Qk8xZ0VBc2tYRG1ZN0Qvd0JYMWdFQUVmM201bUVCL3dCZzFn''@;'; + put 'put ''RUFGNXY5L2Joai93QnAxZ0VBc1MvU3NxdlMvd0J5MWdFQXVadVpYanlaL3dCNzFnRUFFZjNtNW1FQi93Q0UxZ0VBRjV2OS9iaGovd0NOMWdFQUFBRDM5L2YzL3dDVzFnRUFzUy9Tc3F2Uy93Q2YxZ0VBdVp1WlhqeVovd0NvMWdFQUZQYXpzMWdHL3dDeDFnRUFGN3Z4OGFOQS93QzYxZ0VBR0Vq''@;'; + put 'put ''Ky91QzIvd0REMWdFQXBSVHIyTnJyL3dETTFnRUFza1hEbVk3RC93RFYxZ0VBdmJXSVZDZUkvd0RlMWdFQUZQYXpzMWdHL3dEbjFnRUFGN3Z4OGFOQS93RHcxZ0VBR0VqKy91QzIvd0Q1MWdFQUFBRDM5L2YzL3dBQzF3RUFwUlRyMk5yci93QUwxd0VBc2tYRG1ZN0Qvd0FVMXdFQXZiV0lWQ2VJ''@;'; + put 'put ''L3dBZDF3RUFGUGF6czFnRy93QW0xd0VBRnVqZzRJSVUvd0F2MXdFQUY1djkvYmhqL3dBNDF3RUFHRWorL3VDMi93QkIxd0VBcFJUcjJOcnIvd0JLMXdFQXNTL1NzcXZTL3dCVDF3RUFzMVNzZ0hPcy93QmMxd0VBdmJXSVZDZUkvd0JsMXdFQUZQYXpzMWdHL3dCdTF3RUFGdWpnNElJVS93QjMx''@;'; + put 'put ''d0VBRjV2OS9iaGovd0NBMXdFQUdFaisvdUMyL3dDSjF3RUFBQUQzOS9mMy93Q1Mxd0VBcFJUcjJOcnIvd0NiMXdFQXNTL1NzcXZTL3dDazF3RUFzMVNzZ0hPcy93Q3Qxd0VBdmJXSVZDZUkvd0MyMXdFQXZBN3Y1K0h2L3dDLzF3RUExa1BKeVpUSC93REkxd0VBNnQ3ZDNSeDMvd0RSMXdFQXVR''@;'; + put 'put ''ajI4ZTcyL3dEYTF3RUEweW5ZMTdYWS93RGoxd0VBNUl2ZjMyV3cvd0RzMXdFQTcrak96aEpXL3dEMTF3RUF1UWoyOGU3Mi93RCsxd0VBMHluWTE3WFkvd0FIMkFFQTVJdmYzMld3L3dBUTJBRUE2dDdkM1J4My93QVoyQUVBN1ArWW1BQkQvd0FpMkFFQXVRajI4ZTcyL3dBcjJBRUF6Q2JhMUxu''@;'; + put 'put ''YS93QTAyQUVBMWtQSnlaVEgvd0E5MkFFQTVJdmYzMld3L3dCRzJBRUE2dDdkM1J4My93QlAyQUVBN1ArWW1BQkQvd0JZMkFFQXVRajI4ZTcyL3dCaDJBRUF6Q2JhMUxuYS93QnEyQUVBMWtQSnlaVEgvd0J6MkFFQTVJdmYzMld3L3dCODJBRUE2ZEhuNXltSy93Q0YyQUVBNytqT3poSlcvd0NP''@;'; + put 'put ''MkFFQTdQK1JrUUEvL3dDWDJBRUF3d1g1OS9UNS93Q2cyQUVBdkE3djUrSHYvd0NwMkFFQXpDYmExTG5hL3dDeTJBRUExa1BKeVpUSC93QzcyQUVBNUl2ZjMyV3cvd0RFMkFFQTZkSG41eW1LL3dETjJBRUE3K2pPemhKVy93RFcyQUVBN1ArUmtRQS8vd0RmMkFFQXd3WDU5L1Q1L3dEbzJBRUF2''@;'; + put 'put ''QTd2NStIdi93RHgyQUVBekNiYTFMbmEvd0Q2MkFFQTFrUEp5WlRIL3dBRDJRRUE1SXZmMzJXdy93QU0yUUVBNmRIbjV5bUsvd0FWMlFFQTcrak96aEpXL3dBZTJRRUE3UCtZbUFCRC93QW4yUUVBOHY5blp3QWYvd0F3MlFFQXRBajE3KzMxL3dBODJRRUFxQ1hjdkwzYy93QkkyUUVBc0dTeGRX''@;'; + put 'put ''dXgvd0JVMlFFQXRnZjM4dkQzL3dCZzJRRUFyUnppeThuaS93QnMyUUVBclRySW5wckkvd0I0MlFFQXRvQ2phbEdqL3dDRTJRRUF0Z2YzOHZEMy93Q1EyUUVBclJ6aXk4bmkvd0NjMlFFQXJUcklucHJJL3dDbzJRRUFzR1N4ZFd1eC93QzAyUUVBdkxtUFZDZVAvd0RBMlFFQXRnZjM4dkQzL3dE''@;'; + put 'put ''TTJRRUFxaExyMnRyci93RFkyUUVBcUNYY3ZMM2Mvd0RrMlFFQXJUcklucHJJL3dEdzJRRUFzR1N4ZFd1eC93RDgyUUVBdkxtUFZDZVAvd0FJMmdFQXRnZjM4dkQzL3dBVTJnRUFxaExyMnRyci93QWcyZ0VBcUNYY3ZMM2Mvd0FzMmdFQXJUcklucHJJL3dBNDJnRUFyRk82Z0gyNi93QkUyZ0VB''@;'; + put 'put ''dG9DamFsR2ovd0JRMmdFQXZ0aUdTaFNHL3dCYzJnRUF2d0w5L1B2OS93Qm8yZ0VBdEFqMTcrMzEvd0IwMmdFQXFoTHIydHJyL3dDQTJnRUFxQ1hjdkwzYy93Q00yZ0VBclRySW5wckkvd0NZMmdFQXJGTzZnSDI2L3dDazJnRUF0b0NqYWxHai93Q3cyZ0VBdnRpR1NoU0cvd0M4MmdFQXZ3TDkv''@;'; + put 'put ''UHY5L3dESTJnRUF0QWoxNyszMS93RFUyZ0VBcWhMcjJ0cnIvd0RnMmdFQXFDWGN2TDNjL3dEczJnRUFyVHJJbnBySS93RDQyZ0VBckZPNmdIMjYvd0FFMndFQXRvQ2phbEdqL3dBUTJ3RUF2TG1QVkNlUC93QWMyd0VBdi85OVB3Qjkvd0FvMndFQTh2OW5ad0FmL3dBeTJ3RUFsdkZoQlRCaC93''@;'; + put 'put ''QTkyd0VBK2R5eXNoZ3Ivd0JIMndFQUJhUFcxbUJOL3dCUjJ3RUFEWGYwOUtXQy93QmIyd0VBRHpiOS9kdkgvd0JsMndFQWppRHcwZVh3L3dCdjJ3RUFqVmZla3NYZS93QjUyd0VBajZmRFE1UEQvd0NEMndFQWxNNnNJV2FzL3dDTjJ3RUE4djluWndBZi93Q1gyd0VBbE02c0lXYXMvd0NpMndF''@;'; + put 'put ''QWx2RmhCVEJoL3dDdDJ3RUErZHl5c2hnci93QzMyd0VBQmFQVzFtQk4vd0RCMndFQURYZjA5S1dDL3dETDJ3RUFEemI5L2R2SC93RFYyd0VBQUFEMzkvZjMvd0RmMndFQWppRHcwZVh3L3dEcDJ3RUFqVmZla3NYZS93RHoyd0VBajZmRFE1UEQvd0Q5MndFQURKYnY3NHBpL3dBRzNBRUFBQUQz''@;'; + put 'put ''OS9mMy93QVAzQUVBajREUFo2blAvd0FZM0FFQStQL0t5Z0FnL3dBaDNBRUFEWGYwOUtXQy93QXEzQUVBalZmZWtzWGUvd0F6M0FFQWovZXdCWEd3L3dBODNBRUErUC9LeWdBZy93QkYzQUVBRFhmMDlLV0Mvd0JPM0FFQUFBRDM5L2YzL3dCWDNBRUFqVmZla3NYZS93QmczQUVBai9ld0JYR3cv''@;'; + put 'put ''d0JwM0FFQStkeXlzaGdyL3dCeTNBRUFESmJ2NzRwaS93QjczQUVBRHpiOS9kdkgvd0NFM0FFQWppRHcwZVh3L3dDTjNBRUFqNERQWjZuUC93Q1czQUVBbE02c0lXYXMvd0NmM0FFQStkeXlzaGdyL3dDbzNBRUFESmJ2NzRwaS93Q3gzQUVBRHpiOS9kdkgvd0M2M0FFQUFBRDM5L2YzL3dERDNB''@;'; + put 'put ''RUFqaUR3MGVYdy93RE0zQUVBajREUFo2blAvd0RWM0FFQWxNNnNJV2FzL3dEZTNBRUErZHl5c2hnci93RG4zQUVBQmFQVzFtQk4vd0R3M0FFQURYZjA5S1dDL3dENTNBRUFEemI5L2R2SC93QUMzUUVBamlEdzBlWHcvd0FMM1FFQWpWZmVrc1hlL3dBVTNRRUFqNmZEUTVQRC93QWQzUUVBbE02''@;'; + put 'put ''c0lXYXMvd0FtM1FFQStkeXlzaGdyL3dBdjNRRUFCYVBXMW1CTi93QTQzUUVBRFhmMDlLV0Mvd0JCM1FFQUR6YjkvZHZIL3dCSzNRRUFBQUQzOS9mMy93QlQzUUVBamlEdzBlWHcvd0JjM1FFQWpWZmVrc1hlL3dCbDNRRUFqNmZEUTVQRC93QnUzUUVBbE02c0lXYXMvd0IzM1FFQTh2OW5ad0Fm''@;'; + put 'put ''L3dDQjNRRUFBQUFhR2hvYS93Q00zUUVBK2R5eXNoZ3Ivd0NXM1FFQUJhUFcxbUJOL3dDZzNRRUFEWGYwOUtXQy93Q3EzUUVBRHpiOS9kdkgvd0MwM1FFQUFBRGc0T0RnL3dDKzNRRUFBQUM2dXJxNi93REkzUUVBQUFDSGg0ZUgvd0RTM1FFQUFBQk5UVTFOL3dEYzNRRUE4djluWndBZi93RG0z''@;'; + put 'put ''UUVBQUFCTlRVMU4vd0R4M1FFQUFBQWFHaG9hL3dEODNRRUErZHl5c2hnci93QUczZ0VBQmFQVzFtQk4vd0FRM2dFQURYZjA5S1dDL3dBYTNnRUFEemI5L2R2SC93QWszZ0VBQUFELy8vLy8vd0F1M2dFQUFBRGc0T0RnL3dBNDNnRUFBQUM2dXJxNi93QkMzZ0VBQUFDSGg0ZUgvd0JNM2dFQURK''@;'; + put 'put ''YnY3NHBpL3dCVjNnRUFBQUQvLy8vLy93QmUzZ0VBQUFDWm1abVovd0JuM2dFQStQL0t5Z0FnL3dCdzNnRUFEWGYwOUtXQy93QjUzZ0VBQUFDNnVycTYvd0NDM2dFQUFBQkFRRUJBL3dDTDNnRUErUC9LeWdBZy93Q1UzZ0VBRFhmMDlLV0Mvd0NkM2dFQUFBRC8vLy8vL3dDbTNnRUFBQUM2dXJx''@;'; + put 'put ''Ni93Q3YzZ0VBQUFCQVFFQkEvd0M0M2dFQStkeXlzaGdyL3dEQjNnRUFESmJ2NzRwaS93REszZ0VBRHpiOS9kdkgvd0RUM2dFQUFBRGc0T0RnL3dEYzNnRUFBQUNabVptWi93RGwzZ0VBQUFCTlRVMU4vd0R1M2dFQStkeXlzaGdyL3dEMzNnRUFESmJ2NzRwaS93QUEzd0VBRHpiOS9kdkgvd0FK''@;'; + put 'put ''M3dFQUFBRC8vLy8vL3dBUzN3RUFBQURnNE9EZy93QWIzd0VBQUFDWm1abVovd0FrM3dFQUFBQk5UVTFOL3dBdDN3RUErZHl5c2hnci93QTIzd0VBQmFQVzFtQk4vd0EvM3dFQURYZjA5S1dDL3dCSTN3RUFEemI5L2R2SC93QlIzd0VBQUFEZzRPRGcvd0JhM3dFQUFBQzZ1cnE2L3dCajN3RUFB''@;'; + put 'put ''QUNIaDRlSC93QnMzd0VBQUFCTlRVMU4vd0IxM3dFQStkeXlzaGdyL3dCKzN3RUFCYVBXMW1CTi93Q0gzd0VBRFhmMDlLV0Mvd0NRM3dFQUR6YjkvZHZIL3dDWjN3RUFBQUQvLy8vLy93Q2kzd0VBQUFEZzRPRGcvd0NyM3dFQUFBQzZ1cnE2L3dDMDN3RUFBQUNIaDRlSC93Qzkzd0VBQUFCTlRV''@;'; + put 'put ''MU4vd0RHM3dFQUF5RDkvZURkL3dEUDN3RUE5Rno2K3ArMS93RFkzd0VBNDl6RnhSdUsvd0RoM3dFQURSeisvdXZpL3dEcTN3RUEvRWo3KzdTNS93RHozd0VBN3BQMzkyaWgvd0Q4M3dFQTRQMnVyZ0YrL3dBRjRBRUFEUnorL3V2aS93QU80QUVBL0VqNys3UzUvd0FYNEFFQTdwUDM5MmloL3dB''@;'; + put 'put ''ZzRBRUE0OXpGeFJ1Sy93QXA0QUVBMWZ4NmVnRjMvd0F5NEFFQURSeisvdXZpL3dBNzRBRUFBeno4L01YQS93QkU0QUVBOUZ6NitwKzEvd0JONEFFQTdwUDM5MmloL3dCVzRBRUE0OXpGeFJ1Sy93QmY0QUVBMWZ4NmVnRjMvd0JvNEFFQURSeisvdXZpL3dCeDRBRUFBeno4L01YQS93QjY0QUVB''@;'; + put 'put ''OUZ6NitwKzEvd0NENEFFQTdwUDM5MmloL3dDTTRBRUE1c1BkM1RTWC93Q1Y0QUVBNFAydXJnRisvd0NlNEFFQTFmeDZlZ0YzL3dDbjRBRUFEZ3ovLy9mei93Q3c0QUVBQXlEOS9lRGQvd0M1NEFFQUF6ejgvTVhBL3dEQzRBRUE5Rno2K3ArMS93REw0QUVBN3BQMzkyaWgvd0RVNEFFQTVzUGQz''@;'; + put 'put ''VFNYL3dEZDRBRUE0UDJ1cmdGKy93RG00QUVBMWZ4NmVnRjMvd0R2NEFFQURnei8vL2Z6L3dENDRBRUFBeUQ5L2VEZC93QUI0UUVBQXp6OC9NWEEvd0FLNFFFQTlGejYrcCsxL3dBVDRRRUE3cFAzOTJpaC93QWM0UUVBNXNQZDNUU1gvd0FsNFFFQTRQMnVyZ0YrL3dBdTRRRUExZng2ZWdGMy93''@;'; + put 'put ''QTM0UUVBeC85cVNRQnEvd0JBNFFFQTlmK2xwUUFtL3dCTTRRRUFwNnVWTVRhVi93Qlo0UUVBQXREWDF6QW4vd0JsNFFFQUNyajA5RzFEL3dCeDRRRUFGSjM5L2E1aC93Qjk0UUVBSG03Ky91Q1Evd0NKNFFFQWlCajQ0UFA0L3dDVjRRRUFpa1BwcTlucC93Q2g0UUVBajNIUmRLM1Ivd0N0NFFF''@;'; + put 'put ''QWw1MjBSWFcwL3dDNTRRRUE5ZitscFFBbS93REY0UUVBbDUyMFJYVzAvd0RTNFFFQXA2dVZNVGFWL3dEZjRRRUFBdERYMXpBbi93RHI0UUVBQ3JqMDlHMUQvd0QzNFFFQUZKMzkvYTVoL3dBRDRnRUFIbTcrL3VDUS93QVA0Z0VBS2tELy8vKy8vd0FiNGdFQWlCajQ0UFA0L3dBbjRnRUFpa1Bw''@;'; + put 'put ''cTlucC93QXo0Z0VBajNIUmRLM1Ivd0EvNGdFQURhVDgvSTFaL3dCSzRnRUFLa0QvLy8rLy93QlY0Z0VBajFiYmtiL2Ivd0JnNGdFQS91SFgxeGtjL3dCcjRnRUFGSjM5L2E1aC93QjI0Z0VBaWtQcHE5bnAvd0NCNGdFQWtjRzJMSHUyL3dDTTRnRUEvdUhYMXhrYy93Q1g0Z0VBRkozOS9hNWgv''@;'; + put 'put ''d0NpNGdFQUtrRC8vLysvL3dDdDRnRUFpa1BwcTlucC93QzQ0Z0VBa2NHMkxIdTIvd0RENGdFQUF0RFgxekFuL3dETzRnRUFEYVQ4L0kxWi93RFo0Z0VBSG03Ky91Q1Evd0RrNGdFQWlCajQ0UFA0L3dEdjRnRUFqMWJia2IvYi93RDY0Z0VBbDUyMFJYVzAvd0FGNHdFQUF0RFgxekFuL3dBUTR3''@;'; + put 'put ''RUFEYVQ4L0kxWi93QWI0d0VBSG03Ky91Q1Evd0FtNHdFQUtrRC8vLysvL3dBeDR3RUFpQmo0NFBQNC93QTg0d0VBajFiYmtiL2Ivd0JINHdFQWw1MjBSWFcwL3dCUzR3RUFBdERYMXpBbi93QmQ0d0VBQ3JqMDlHMUQvd0JvNHdFQUZKMzkvYTVoL3dCejR3RUFIbTcrL3VDUS93Qis0d0VBaUJq''@;'; + put 'put ''NDRQUDQvd0NKNHdFQWlrUHBxOW5wL3dDVTR3RUFqM0hSZEszUi93Q2Y0d0VBbDUyMFJYVzAvd0NxNHdFQUF0RFgxekFuL3dDMTR3RUFDcmowOUcxRC93REE0d0VBRkozOS9hNWgvd0RMNHdFQUhtNysvdUNRL3dEVzR3RUFLa0QvLy8rLy93RGg0d0VBaUJqNDRQUDQvd0RzNHdFQWlrUHBxOW5w''@;'; + put 'put ''L3dEMzR3RUFqM0hSZEszUi93QUM1QUVBbDUyMFJYVzAvd0FONUFFQTlmK2xwUUFtL3dBWjVBRUFhLzlvQUdnMy93QW01QUVBQXREWDF6QW4vd0F5NUFFQUNyajA5RzFEL3dBKzVBRUFGSjM5L2E1aC93Qks1QUVBSDNQKy91Q0wvd0JXNUFFQU0ycnYyZStML3dCaTVBRUFQb0xacHRscS93QnU1''@;'; + put 'put ''QUVBVTNtOVpyMWovd0I2NUFFQVo5T1lHcGhRL3dDRzVBRUE5ZitscFFBbS93Q1M1QUVBWjlPWUdwaFEvd0NmNUFFQWEvOW9BR2czL3dDczVBRUFBdERYMXpBbi93QzQ1QUVBQ3JqMDlHMUQvd0RFNUFFQUZKMzkvYTVoL3dEUTVBRUFIM1ArL3VDTC93RGM1QUVBS2tELy8vKy8vd0RvNUFFQU0y''@;'; + put 'put ''cnYyZStML3dEMDVBRUFQb0xacHRscS93QUE1UUVBVTNtOVpyMWovd0FNNVFFQURhVDgvSTFaL3dBWDVRRUFLa0QvLy8rLy93QWk1UUVBUW9qUGtjOWcvd0F0NVFFQS91SFgxeGtjL3dBNDVRRUFGSjM5L2E1aC93QkQ1UUVBUG9MWnB0bHEvd0JPNVFFQVl0S1dHcFpCL3dCWjVRRUEvdUhYMXhr''@;'; + put 'put ''Yy93Qms1UUVBRkozOS9hNWgvd0J2NVFFQUtrRC8vLysvL3dCNjVRRUFQb0xacHRscS93Q0Y1UUVBWXRLV0dwWkIvd0NRNVFFQUF0RFgxekFuL3dDYjVRRUFEYVQ4L0kxWi93Q201UUVBSDNQKy91Q0wvd0N4NVFFQU0ycnYyZStML3dDODVRRUFRb2pQa2M5Zy93REg1UUVBWjlPWUdwaFEvd0RT''@;'; + put 'put ''NVFFQUF0RFgxekFuL3dEZDVRRUFEYVQ4L0kxWi93RG81UUVBSDNQKy91Q0wvd0R6NVFFQUtrRC8vLysvL3dEKzVRRUFNMnJ2MmUrTC93QUo1Z0VBUW9qUGtjOWcvd0FVNWdFQVo5T1lHcGhRL3dBZjVnRUFBdERYMXpBbi93QXE1Z0VBQ3JqMDlHMUQvd0ExNWdFQUZKMzkvYTVoL3dCQTVnRUFI''@;'; + put 'put ''M1ArL3VDTC93Qkw1Z0VBTTJydjJlK0wvd0JXNWdFQVBvTFpwdGxxL3dCaDVnRUFVM205WnIxai93QnM1Z0VBWjlPWUdwaFEvd0IzNWdFQUF0RFgxekFuL3dDQzVnRUFDcmowOUcxRC93Q041Z0VBRkozOS9hNWgvd0NZNWdFQUgzUCsvdUNML3dDajVnRUFLa0QvLy8rLy93Q3U1Z0VBTTJydjJl''@;'; + put 'put ''K0wvd0M1NWdFQVBvTFpwdGxxL3dERTVnRUFVM205WnIxai93RFA1Z0VBWjlPWUdwaFEvd0RhNWdFQURTeisvdURTL3dEajVnRUFDWXY4L0pKeS93RHM1Z0VBQWRQZTNpMG0vd0QxNWdFQURTWCsvdVhaL3dEKzVnRUFDMno4L0s2Ui93QUg1d0VBQjdQNysycEsvd0FRNXdFQS9lREx5eGdkL3dB''@;'; + put 'put ''WjV3RUFEU1grL3VYWi93QWk1d0VBQzJ6OC9LNlIvd0FyNXdFQUI3UDcrMnBLL3dBMDV3RUFBZFBlM2kwbS93QTk1d0VBL2VlbHBROFYvd0JHNXdFQURTWCsvdVhaL3dCUDV3RUFERno4L0x1aC93Qlk1d0VBQ1l2OC9KSnkvd0JoNXdFQUI3UDcrMnBLL3dCcTV3RUFBZFBlM2kwbS93Qno1d0VB''@;'; + put 'put ''L2VlbHBROFYvd0I4NXdFQURTWCsvdVhaL3dDRjV3RUFERno4L0x1aC93Q081d0VBQ1l2OC9KSnkvd0NYNXdFQUI3UDcrMnBLL3dDZzV3RUFBOUR2N3pzcy93Q3A1d0VBL2VETHl4Z2Qvd0N5NXdFQSsvK1ptUUFOL3dDNzV3RUFEZy8vLy9Ydy93REU1d0VBRFN6Ky91RFMvd0RONXdFQURGejgv''@;'; + put 'put ''THVoL3dEVzV3RUFDWXY4L0pKeS93RGY1d0VBQjdQNysycEsvd0RvNXdFQUE5RHY3enNzL3dEeDV3RUEvZURMeXhnZC93RDY1d0VBKy8rWm1RQU4vd0FENkFFQURnLy8vL1h3L3dBTTZBRUFEU3orL3VEUy93QVY2QUVBREZ6OC9MdWgvd0FlNkFFQUNZdjgvSkp5L3dBbjZBRUFCN1A3KzJwSy93''@;'; + put 'put ''QXc2QUVBQTlEdjd6c3Mvd0E1NkFFQS9lREx5eGdkL3dCQzZBRUEvZWVscFE4Vi93Qkw2QUVBK2Y5blp3QU4vd0JVNkFFQS91SGs1Qm9jL3dCZDZBRUFrcks0TjM2NC93Qm02QUVBVTVPdlRhOUsvd0J2NkFFQS91SGs1Qm9jL3dCNDZBRUFrcks0TjM2NC93Q0I2QUVBVTVPdlRhOUsvd0NLNkFF''@;'; + put 'put ''QXo0U2ptRTZqL3dDVDZBRUEvdUhrNUJvYy93Q2M2QUVBa3JLNE4zNjQvd0NsNkFFQVU1T3ZUYTlLL3dDdTZBRUF6NFNqbUU2ai93QzM2QUVBRmYvLy8zOEEvd0RBNkFFQS91SGs1Qm9jL3dESjZBRUFrcks0TjM2NC93RFM2QUVBVTVPdlRhOUsvd0RiNkFFQXo0U2ptRTZqL3dEazZBRUFGZi8v''@;'; + put 'put ''LzM4QS93RHQ2QUVBS3N6Ly8vOHovd0QyNkFFQS91SGs1Qm9jL3dELzZBRUFrcks0TjM2NC93QUk2UUVBVTVPdlRhOUsvd0FSNlFFQXo0U2ptRTZqL3dBYTZRRUFGZi8vLzM4QS93QWo2UUVBS3N6Ly8vOHovd0FzNlFFQUQ4R21wbFlvL3dBMTZRRUEvdUhrNUJvYy93QSs2UUVBa3JLNE4zNjQv''@;'; + put 'put ''d0JINlFFQVU1T3ZUYTlLL3dCUTZRRUF6NFNqbUU2ai93Qlo2UUVBRmYvLy8zOEEvd0JpNlFFQUtzei8vLzh6L3dCcjZRRUFEOEdtcGxZby93QjA2UUVBNkhuMzk0Ry8vd0I5NlFFQS91SGs1Qm9jL3dDRzZRRUFrcks0TjM2NC93Q1A2UUVBVTVPdlRhOUsvd0NZNlFFQXo0U2ptRTZqL3dDaDZR''@;'; + put 'put ''RUFGZi8vLzM4QS93Q3E2UUVBS3N6Ly8vOHovd0N6NlFFQUQ4R21wbFlvL3dDODZRRUE2SG4zOTRHLy93REY2UUVBQUFDWm1abVovd0RPNlFFQWNuakNac0tsL3dEWDZRRUFDNXY4L0kxaS93RGc2UUVBbkUzTGphREwvd0RwNlFFQWNuakNac0tsL3dEeTZRRUFDNXY4L0kxaS93RDc2UUVBbkUz''@;'; + put 'put ''TGphREwvd0FFNmdFQTVHYm41NHJEL3dBTjZnRUFjbmpDWnNLbC93QVc2Z0VBQzV2OC9JMWkvd0FmNmdFQW5FM0xqYURML3dBbzZnRUE1R2JuNTRyRC93QXg2Z0VBT3B2WXB0aFUvd0E2NmdFQWNuakNac0tsL3dCRDZnRUFDNXY4L0kxaS93Qk02Z0VBbkUzTGphREwvd0JWNmdFQTVHYm41NHJE''@;'; + put 'put ''L3dCZTZnRUFPcHZZcHRoVS93Qm42Z0VBSXRELy85a3Yvd0J3NmdFQWNuakNac0tsL3dCNTZnRUFDNXY4L0kxaS93Q0M2Z0VBbkUzTGphREwvd0NMNmdFQTVHYm41NHJEL3dDVTZnRUFPcHZZcHRoVS93Q2Q2Z0VBSXRELy85a3Yvd0NtNmdFQUdWcmw1Y1NVL3dDdjZnRUFjbmpDWnNLbC93QzQ2''@;'; + put 'put ''Z0VBQzV2OC9JMWkvd0RCNmdFQW5FM0xqYURML3dESzZnRUE1R2JuNTRyRC93RFQ2Z0VBT3B2WXB0aFUvd0RjNmdFQUl0RC8vOWt2L3dEbDZnRUFHVnJsNWNTVS93RHU2Z0VBQUFDenM3T3ovd0QzNmdFQWVGVFRqZFBIL3dBQjZ3RUEwMUs5dklDOS93QU02d0VBS2t6Ly8vK3ovd0FXNndFQXJ5''@;'; + put 'put ''WGF2cnJhL3dBZzZ3RUFCSXY3KzRCeS93QXE2d0VBa0dUVGdMSFQvd0EwNndFQUZwejkvYlJpL3dBKzZ3RUFPb2Jlczk1cC93Qkk2d0VBNlMvOC9NM2wvd0JTNndFQUFBRFoyZG5aL3dCYzZ3RUFlRlRUamRQSC93Qm02d0VBMDFLOXZJQzkvd0J4NndFQVRTbnJ6T3ZGL3dCODZ3RUFLa3ovLy8r''@;'; + put 'put ''ei93Q0c2d0VBcnlYYXZycmEvd0NRNndFQUJJdjcrNEJ5L3dDYTZ3RUFrR1RUZ0xIVC93Q2s2d0VBRnB6OS9iUmkvd0N1NndFQU9vYmVzOTVwL3dDNDZ3RUE2Uy84L00zbC93REM2d0VBQUFEWjJkblovd0RNNndFQWVGVFRqZFBIL3dEVzZ3RUEwMUs5dklDOS93RGg2d0VBVFNucnpPdkYvd0Rz''@;'; + put 'put ''NndFQUpaRC8vKzF2L3dEMzZ3RUFLa3ovLy8rei93QUI3QUVBcnlYYXZycmEvd0FMN0FFQUJJdjcrNEJ5L3dBVjdBRUFrR1RUZ0xIVC93QWY3QUVBRnB6OS9iUmkvd0FwN0FFQU9vYmVzOTVwL3dBejdBRUE2Uy84L00zbC93QTk3QUVBQUFEWjJkblovd0JIN0FFQWVGVFRqZFBIL3dCUTdBRUFL''@;'; + put 'put ''a3ovLy8rei93Qlo3QUVBcnlYYXZycmEvd0JpN0FFQWVGVFRqZFBIL3dCcjdBRUFLa3ovLy8rei93QjA3QUVBcnlYYXZycmEvd0I5N0FFQUJJdjcrNEJ5L3dDRzdBRUFlRlRUamRQSC93Q1A3QUVBS2t6Ly8vK3ovd0NZN0FFQXJ5WGF2cnJhL3dDaDdBRUFCSXY3KzRCeS93Q3E3QUVBa0dUVGdM''@;'; + put 'put ''SFQvd0N6N0FFQWVGVFRqZFBIL3dDODdBRUFLa3ovLy8rei93REY3QUVBcnlYYXZycmEvd0RPN0FFQUJJdjcrNEJ5L3dEWDdBRUFrR1RUZ0xIVC93RGc3QUVBRnB6OS9iUmkvd0RwN0FFQWVGVFRqZFBIL3dEeTdBRUFLa3ovLy8rei93RDc3QUVBcnlYYXZycmEvd0FFN1FFQUJJdjcrNEJ5L3dB''@;'; + put 'put ''TjdRRUFrR1RUZ0xIVC93QVc3UUVBRnB6OS9iUmkvd0FmN1FFQU9vYmVzOTVwL3dBbzdRRUFlRlRUamRQSC93QXg3UUVBS2t6Ly8vK3ovd0E2N1FFQXJ5WGF2cnJhL3dCRDdRRUFCSXY3KzRCeS93Qk03UUVBa0dUVGdMSFQvd0JWN1FFQUZwejkvYlJpL3dCZTdRRUFPb2Jlczk1cC93Qm43UUVB''@;'; + put 'put ''NlMvOC9NM2wvd0J3N1FFQWVGVFRqZFBIL3dCNTdRRUFLa3ovLy8rei93Q0M3UUVBcnlYYXZycmEvd0NMN1FFQUJJdjcrNEJ5L3dDVTdRRUFrR1RUZ0xIVC93Q2Q3UUVBRnB6OS9iUmkvd0NtN1FFQU9vYmVzOTVwL3dDdjdRRUE2Uy84L00zbC93QzQ3UUVBQUFEWjJkblovd0RCN1FFQTdmMmVu''@;'; + put 'put ''Z0ZDL3dEUDdRRUFzWUtpWGsraS93RGU3UUVBK3JUVjFUNVAvd0RzN1FFQUNyajA5RzFEL3dENjdRRUFGSjM5L2E1aC93QUk3Z0VBSDNQKy91Q0wvd0FXN2dFQU1XRDE1dldZL3dBazdnRUFUMEhkcTkyay93QXk3Z0VBY25qQ1pzS2wvd0JBN2dFQWo3dTlNb2k5L3dCTzdnRUE3ZjJlbmdGQy93''@;'; + put 'put ''QmM3Z0VBajd1OU1vaTkvd0JyN2dFQXNZS2lYaytpL3dCNjdnRUErclRWMVQ1UC93Q0k3Z0VBQ3JqMDlHMUQvd0NXN2dFQUZKMzkvYTVoL3dDazdnRUFIM1ArL3VDTC93Q3k3Z0VBS2tELy8vKy8vd0RBN2dFQU1XRDE1dldZL3dETzdnRUFUMEhkcTkyay93RGM3Z0VBY25qQ1pzS2wvd0RxN2dF''@;'; + put 'put ''QURhVDgvSTFaL3dEMzdnRUFLa0QvLy8rLy93QUU3d0VBVVUzVm1kV1Uvd0FSN3dFQS91SFgxeGtjL3dBZTd3RUFGSjM5L2E1aC93QXI3d0VBVDBIZHE5Mmsvd0E0N3dFQWo4UzZLNE82L3dCRjd3RUEvdUhYMXhrYy93QlM3d0VBRkozOS9hNWgvd0JmN3dFQUtrRC8vLysvL3dCczd3RUFUMEhk''@;'; + put 'put ''cTkyay93QjU3d0VBajhTNks0TzYvd0NHN3dFQStyVFYxVDVQL3dDVDd3RUFEYVQ4L0kxWi93Q2c3d0VBSDNQKy91Q0wvd0N0N3dFQU1XRDE1dldZL3dDNjd3RUFVVTNWbWRXVS93REg3d0VBajd1OU1vaTkvd0RVN3dFQStyVFYxVDVQL3dEaDd3RUFEYVQ4L0kxWi93RHU3d0VBSDNQKy91Q0wv''@;'; + put 'put ''d0Q3N3dFQUtrRC8vLysvL3dBSThBRUFNV0QxNXZXWS93QVY4QUVBVVUzVm1kV1Uvd0FpOEFFQWo3dTlNb2k5L3dBdjhBRUErclRWMVQ1UC93QTg4QUVBQ3JqMDlHMUQvd0JKOEFFQUZKMzkvYTVoL3dCVzhBRUFIM1ArL3VDTC93Qmo4QUVBTVdEMTV2V1kvd0J3OEFFQVQwSGRxOTJrL3dCOThB''@;'; + put 'put ''RUFjbmpDWnNLbC93Q0s4QUVBajd1OU1vaTkvd0NYOEFFQStyVFYxVDVQL3dDazhBRUFDcmowOUcxRC93Q3g4QUVBRkozOS9hNWgvd0MrOEFFQUgzUCsvdUNML3dETDhBRUFLa0QvLy8rLy93RFk4QUVBTVdEMTV2V1kvd0RsOEFFQVQwSGRxOTJrL3dEeThBRUFjbmpDWnNLbC93RC84QUVBajd1''@;'; + put 'put ''OU1vaTkvd0FNOFFFQWt3Ly84UGovL3dBYjhRRUFHQ1A2K3V2WC93QXQ4UUVBZi8vL0FQLy8vd0EzOFFFQWNZRC9mLy9VL3dCSDhRRUFmdy8vOFAvLy93QlM4UUVBS2hyMTlmWGMvd0JkOFFFQUZ6ci8vK1RFL3dCcDhRRUFBQUFBQUFBQS93QjA4UUVBR1RILy8rdk4vd0NJOFFFQXF2Ly9BQUQv''@;'; + put 'put ''L3dDUzhRRUF3TTdpaWl2aS93Q2k4UUVBQUw2bHBTb3Evd0N0OFFFQUYyUGUzcmlIL3dDODhRRUFnR2VnWDU2Zy93REw4UUVBUC8vL2YvOEEvd0RiOFFFQUVkclMwbWtlL3dEcThRRUFDNi8vLzM5US93RDE4UUVBbXBQdFpKWHQvd0FKOGdFQUlTTC8vL2pjL3dBWDhnRUE5dWZjM0JROC93QWs4''@;'; + put 'put ''Z0VBZi8vL0FQLy8vd0F1OGdFQXF2K0xBQUNML3dBODhnRUFmLytMQUl1TC93Qks4Z0VBSHUrNHVJWUwvd0JkOGdFQUFBQ3BxYW1wL3dCcjhnRUFWZjlrQUdRQS93QjY4Z0VBQUFDcHFhbXAvd0NJOGdFQUoyNjl2YmRyL3dDWDhnRUExUCtMaXdDTC93Q284Z0VBT281clZXc3Yvd0M4OGdFQUYv''@;'; + put 'put ''Ly8vNHdBL3dETThnRUF4c0RNbVRMTS93RGM4Z0VBQVArTGl3QUEvd0RwOGdFQUNubnA2Wlo2L3dENThnRUFWVDI4ajd5UC93QUw4d0VBcjQrTFNEMkwvd0FlOHdFQWYyZFBMMDlQL3dBeDh3RUFmMmRQTDA5UC93QkU4d0VBZ1AvUkFNN1Ivd0JYOHdFQXgvL1RsQURUL3dCbjh3RUE2T3YvL3hT''@;'; + put 'put ''VC93QjE4d0VBaXYvL0FMLy8vd0NHOHdFQUFBQnBhV2xwL3dDVDh3RUFBQUJwYVdscC93Q2c4d0VBbE9IL0hwRC8vd0N3OHdFQUFNNnlzaUlpL3dDLzh3RUFIQS8vLy9ydy93RFE4d0VBVmNDTElvc2kvd0RoOHdFQTFQLy8vd0QvL3dEdTh3RUFBQURjM056Yy93RDk4d0VBcWdmLytQai8vd0FO''@;'; + put 'put ''OUFFQUkvLy8vOWNBL3dBWDlBRUFIdG5hMnFVZy93QW05QUVBQUFDQWdJQ0Evd0F3OUFFQVZmK0FBSUFBL3dBNzlBRUFPOUQvcmY4di93Qk05QUVBQUFDQWdJQ0Evd0JXOUFFQVZRLy84UC93L3dCazlBRUE2WmIvLzJtMC93Qng5QUVBQUl6TnpWeGMvd0NBOUFFQXd2K0NTd0NDL3dDTTlBRUFL''@;'; + put 'put ''Zy8vLy8vdy93Q1g5QUVBSm1ydzhPYU0vd0NpOUFFQXFoVDY1dWI2L3dDdzlBRUE4QS8vLy9EMS93REQ5QUVBUVAvOGZQd0Evd0RTOUFFQUpqSC8vL3JOL3dEazlBRUFpVC9tcmRqbS93RHo5QUVBQUhmdzhJQ0Evd0FEOVFFQWZ4Ly80UC8vL3dBUzlRRUFLaWo2K3ZyUy93QXM5UUVBQUFEVDA5''@;'; + put 'put ''UFQvd0E3OVFFQVZXVHVrTzZRL3dCTDlRRUFBQURUMDlQVC93QmE5UUVBK0VuLy83YkIvd0JwOVFFQURJVC8vNkI2L3dCNjlRRUFmZEd5SUxLcS93Q045UUVBajNYNmg4NzYvd0NmOVFFQWxEaVpkNGlaL3dDejlRRUFsRGlaZDRpWi93REg5UUVBbHpUZXNNVGUvd0RiOVFFQUtoLy8vLy9nL3dE''@;'; + put 'put ''czlRRUFWZi8vQVA4QS93RDI5UUVBVmNETk1zMHkvd0FGOWdFQUZSVDYrdkRtL3dBUTlnRUExUC8vL3dELy93QWQ5Z0VBQVArQWdBQUEvd0FwOWdFQWNZRE5aczJxL3dBLzlnRUFxdi9OQUFETi93QlA5Z0VBekpqVHVsWFQvd0JoOWdFQXQzemJrM0RiL3dCejlnRUFaNm16UExOeC93Q0g5Z0VB''@;'; + put 'put ''c0kvdWUyanUvd0NjOWdFQWIvLzZBUHFhL3dDejlnRUFmYWZSU05ITS93REk5Z0VBNU9USHh4V0Yvd0RkOWdFQXFzWndHUmx3L3dEdjlnRUFhZ24vOWYvNi93RCs5Z0VBQkI3Ly8rVGgvd0FOOXdFQUdrbi8vK1MxL3dBYjl3RUFHVkgvLzk2dC93QXM5d0VBcXYrQUFBQ0Evd0EyOXdFQUd4Zjkv''@;'; + put 'put ''ZlhtL3dCRDl3RUFLditBZ0lBQS93Qk85d0VBT01DT2E0NGovd0JkOXdFQUcvLy8vNlVBL3dCcDl3RUFDLy8vLzBVQS93QjQ5d0VBMW52YTJuRFcvd0NFOXdFQUpranU3dWlxL3dDWDl3RUFWV1Q3bVB1WS93Q205d0VBZjBQdXIrN3Uvd0M1OXdFQThYemIyM0NUL3dETTl3RUFHaW4vLysvVi93''@;'; + put 'put ''RGM5d0VBRkViLy85cTUvd0RyOXdFQUZMRE56WVUvL3dEMTl3RUE5ei8vLzhETC93RC85d0VBMUViZDNhRGQvd0FKK0FFQWhEdm1zT0RtL3dBWitBRUExUCtBZ0FDQS93QWwrQUVBQVAvLy93QUEvd0F1K0FFQUFEMjh2SStQL3dBOStBRUFuN1hoUVduaC93Qk0rQUVBRWR5TGkwVVQvd0JkK0FF''@;'; + put 'put ''QUJJcjYrb0J5L3dCcCtBRUFFNXIwOUtSZy93QjUrQUVBWjZxTExvdFgvd0NIK0FFQUVSRC8vL1h1L3dDVitBRUFEYmVnb0ZJdC93Q2grQUVBQUFEQXdNREEvd0N0K0FFQWkyenJoODdyL3dDNitBRUFyNC9OYWxyTi93REorQUVBbERpUWNJQ1Evd0RZK0FFQWxEaVFjSUNRL3dEbitBRUFBQVgv''@;'; + put 'put ''Ly9yNi93RHgrQUVBYXYvL0FQOS8vd0FDK1FFQWtwdTBSb0swL3dBUitRRUFHRlRTMHJTTS93QWErUUVBZi8rQUFJQ0Evd0FrK1FFQTFCM1kyTC9ZL3dBeCtRRUFCcmovLzJOSC93QTkrUUVBZTdiZ1FPRFEvd0JNK1FFQTFIUHU3b0x1L3dCWStRRUFHMFQxOWQ2ei93QmorUUVBQUFELy8vLy8v''@;'; + put 'put ''d0J1K1FFQUFBRDE5ZlgxL3dCKytRRUFLdi8vLy84QS93Q0srUUVBT01ETm1zMHkvd0NiK1FFQUxVUDg5L3k1L3dDaytRRUFSRnZkcmQyTy93Q3QrUUVBWXJLak1hTlUvd0MyK1FFQUtqTC8vLy9NL3dDLytRRUFQbFhtd3VhWi93REkrUUVBVldUR2VNWjUvd0RSK1FFQVk3dUVJNFJEL3dEYStR''@;'; + put 'put ''RUFLakwvLy8vTS93RGorUUVBUGxYbXd1YVovd0RzK1FFQVZXVEdlTVo1L3dEMStRRUFZcktqTWFOVS93RCsrUUVBYS85b0FHZzMvd0FIK2dFQUtqTC8vLy9NL3dBUStnRUFOMUh3MmZDai93QVorZ0VBUkZ2ZHJkMk8vd0FpK2dFQVZXVEdlTVo1L3dBcitnRUFZcktqTWFOVS93QTArZ0VBYS85''@;'; + put 'put ''b0FHZzMvd0E5K2dFQUtqTC8vLy9NL3dCRytnRUFOMUh3MmZDai93QlArZ0VBUkZ2ZHJkMk8vd0JZK2dFQVZXVEdlTVo1L3dCaCtnRUFZSjZyUWF0ZC93QnErZ0VBWTd1RUk0UkQvd0J6K2dFQWJQOWFBRm95L3dCOCtnRUFLaG4vLy8vbC93Q0YrZ0VBTFVQODkveTUvd0NPK2dFQU4xSHcyZkNq''@;'; + put 'put ''L3dDWCtnRUFSRnZkcmQyTy93Q2crZ0VBVldUR2VNWjUvd0NwK2dFQVlKNnJRYXRkL3dDeStnRUFZN3VFSTRSRC93QzcrZ0VBYlA5YUFGb3kvd0RFK2dFQUtobi8vLy9sL3dETitnRUFMVVA4OS95NS93RFcrZ0VBTjFIdzJmQ2ovd0RmK2dFQVJGdmRyZDJPL3dEbytnRUFWV1RHZU1aNS93RHgr''@;'; + put 'put ''Z0VBWUo2clFhdGQvd0Q2K2dFQVk3dUVJNFJEL3dBRCt3RUFhLzlvQUdnMy93QU0rd0VBYnY5RkFFVXAvd0FWK3dFQU1VbjQ3Zml4L3dBZyt3RUFkV0hOZjgyNy93QXIrd0VBa01LNExIKzQvd0EyK3dFQUtqTC8vLy9NL3dCQit3RUFZMExhb2RxMC93Qk0rd0VBaEtyRVFiYkUvd0JYK3dFQWxz''@;'; + put 'put ''dW9JbDZvL3dCaSt3RUFLakwvLy8vTS93QnQrd0VBWTBMYW9kcTAvd0I0K3dFQWhLckVRYmJFL3dDRCt3RUFrTUs0TEgrNC93Q08rd0VBcEwrVUpUU1Uvd0NaK3dFQUtqTC8vLy9NL3dDayt3RUFSVHJweCttMC93Q3Yrd0VBZFdITmY4Mjcvd0M2K3dFQWhLckVRYmJFL3dERit3RUFrTUs0TEgr''@;'; + put 'put ''NC93RFErd0VBcEwrVUpUU1Uvd0RiK3dFQUtqTC8vLy9NL3dEbSt3RUFSVHJweCttMC93RHgrd0VBZFdITmY4Mjcvd0Q4K3dFQWhLckVRYmJFL3dBSC9BRUFpOWpBSFpIQS93QVMvQUVBbHN1b0lsNm8vd0FkL0FFQW51ZUVEQ3lFL3dBby9BRUFLaWIvLy8vWi93QXovQUVBTVVuNDdmaXgvd0Er''@;'; + put 'put ''L0FFQVJUcnB4K20wL3dCSi9BRUFkV0hOZjgyNy93QlUvQUVBaEtyRVFiYkUvd0JmL0FFQWk5akFIWkhBL3dCcS9BRUFsc3VvSWw2by93QjEvQUVBbnVlRURDeUUvd0NBL0FFQUtpYi8vLy9aL3dDTC9BRUFNVW40N2ZpeC93Q1cvQUVBUlRycHgrbTAvd0NoL0FFQWRXSE5mODI3L3dDcy9BRUFo''@;'; + put 'put ''S3JFUWJiRS93QzMvQUVBaTlqQUhaSEEvd0RDL0FFQWxzdW9JbDZvL3dETi9BRUFwTCtVSlRTVS93RFkvQUVBbnVkWUNCMVkvd0RqL0FFQUpVTC8vL2U4L3dEdS9BRUFISy8rL3NSUC93RDUvQUVBRU83WjJWOE8vd0FFL1FFQUtpci8vLy9VL3dBUC9RRUFISEQrL3RtTy93QWEvUUVBRnRYKy9w''@;'; + put 'put ''a3Avd0FsL1FFQUQvek16RXdDL3dBdy9RRUFLaXIvLy8vVS93QTcvUUVBSEhEKy90bU8vd0JHL1FFQUZ0WCsvcGtwL3dCUi9RRUFFTzdaMlY4Ty93QmMvUUVBRGZpWm1UUUUvd0JuL1FFQUtpci8vLy9VL3dCeS9RRUFIMjMrL3VPUi93QjkvUUVBSEsvKy9zUlAvd0NJL1FFQUZ0WCsvcGtwL3dD''@;'; + put 'put ''VC9RRUFFTzdaMlY4Ty93Q2UvUUVBRGZpWm1UUUUvd0NwL1FFQUtpci8vLy9VL3dDMC9RRUFIMjMrL3VPUi93Qy8vUUVBSEsvKy9zUlAvd0RLL1FFQUZ0WCsvcGtwL3dEVi9RRUFFdW5zN0hBVS93RGcvUUVBRC96TXpFd0Mvd0RyL1FFQURQZU1qQzBFL3dEMi9RRUFLaG4vLy8vbC93QUIvZ0VB''@;'; + put 'put ''SlVMLy8vZTgvd0FNL2dFQUgyMysvdU9SL3dBWC9nRUFISy8rL3NSUC93QWkvZ0VBRnRYKy9wa3Avd0F0L2dFQUV1bnM3SEFVL3dBNC9nRUFEL3pNekV3Qy93QkQvZ0VBRFBlTWpDMEUvd0JPL2dFQUtobi8vLy9sL3dCWi9nRUFKVUwvLy9lOC93QmsvZ0VBSDIzKy91T1Ivd0J2L2dFQUhLLysv''@;'; + put 'put ''c1JQL3dCNi9nRUFGdFgrL3BrcC93Q0YvZ0VBRXVuczdIQVUvd0NRL2dFQUQvek16RXdDL3dDYi9nRUFEZmlabVRRRS93Q20vZ0VBRGZCbVppVUcvd0N4L2dFQUlsLy8vKzJnL3dDOC9nRUFHTEwrL3JKTS93REgvZ0VBQmQzdzhEc2cvd0RTL2dFQUtrMy8vLyt5L3dEZC9nRUFIYUwrL3N4Yy93''@;'; + put 'put ''RG8vZ0VBRWNMOS9ZMDgvd0R6L2dFQS91SGo0eG9jL3dEKy9nRUFLazMvLy8reS93QUovd0VBSGFMKy9zeGMvd0FVL3dFQUVjTDkvWTA4L3dBZi93RUFCZDN3OERzZy93QXEvd0VBOXYrOXZRQW0vd0ExL3dFQUtrMy8vLyt5L3dCQS93RUFIb2orL3RsMi93Qkwvd0VBR0xMKy9ySk0vd0JXL3dF''@;'; + put 'put ''QUVjTDkvWTA4L3dCaC93RUFCZDN3OERzZy93QnMvd0VBOXYrOXZRQW0vd0IzL3dFQUtrMy8vLyt5L3dDQy93RUFIb2orL3RsMi93Q04vd0VBR0xMKy9ySk0vd0NZL3dFQUVjTDkvWTA4L3dDai93RUFCOVQ4L0U0cS93Q3Uvd0VBL3VIajR4b2Mvd0M1L3dFQTlmK3hzUUFtL3dERS93RUFLakwv''@;'; + put 'put ''Ly8vTS93RFAvd0VBSWwvLy8rMmcvd0RhL3dFQUhvaisvdGwyL3dEbC93RUFHTEwrL3JKTS93RHcvd0VBRWNMOS9ZMDgvd0Q3L3dFQUI5VDgvRTRxL3dBR0FBSUEvdUhqNHhvYy93QVJBQUlBOWYreHNRQW0vd0FjQUFJQUtqTC8vLy9NL3dBbkFBSUFJbC8vLysyZy93QXlBQUlBSG9qKy90bDIv''@;'; + put 'put ''d0E5QUFJQUdMTCsvckpNL3dCSUFBSUFFY0w5L1kwOC93QlRBQUlBQjlUOC9FNHEvd0JlQUFJQS91SGo0eG9jL3dCcEFBSUE5dis5dlFBbS93QjBBQUlBOHYrQWdBQW0vd0IvQUFJQWt3Ly84UGovL3dDSkFBSUFHQ1A2K3V2WC93Q1dBQUlBRnlULy8rL2Ivd0NrQUFJQUZ5VHU3dC9NL3dDeUFB''@;'; + put 'put ''SUFGeVROemNDdy93REFBQUlBR0NLTGk0TjQvd0RPQUFJQWNZRC9mLy9VL3dEWkFBSUFjWUQvZi8vVS93RGxBQUlBY1lEdWR1N0cvd0R4QUFJQWNZRE5aczJxL3dEOUFBSUFjWUNMUll0MC93QUpBUUlBZncvLzhQLy8vd0FQQVFJQWZ3Ly84UC8vL3dBV0FRSUFmdy91NE83dS93QWRBUUlBZnc3''@;'; + put 'put ''TndjM04vd0FrQVFJQWZ3NkxnNHVML3dBckFRSUFLaHIxOWZYYy93QXhBUUlBRnpyLy8rVEUvd0E0QVFJQUZ6ci8vK1RFL3dCQUFRSUFGenJ1N3RXMy93QklBUUlBRmpyTnpiZWUvd0JRQVFJQUZ6cUxpMzFyL3dCaUdBSUFBQUFBQUFBQS93QllBUUlBR1RILy8rdk4vd0JuQVFJQXF2Ly9BQUQv''@;'; + put 'put ''L3dCc0FRSUFxdi8vQUFELy93QnlBUUlBcXYvdUFBRHUvd0I0QVFJQXF2L05BQUROL3dCK0FRSUFxditMQUFDTC93Q0VBUUlBd003aWlpdmkvd0NQQVFJQUFMNmxwU29xL3dDVkFRSUFBTC8vLzBCQS93Q2NBUUlBQUwvdTdqczcvd0NqQVFJQUFML056VE16L3dDcUFRSUFBTDZMaXlNai93Q3hB''@;'; + put 'put ''UUlBRjJQZTNyaUgvd0M3QVFJQUYyVC8vOU9iL3dER0FRSUFGMlB1N3NXUi93RFJBUUlBRjJQTnphcDkvd0RjQVFJQUYyT0xpM05WL3dEbkFRSUFnR2VnWDU2Zy93RHhBUUlBZzJmL21QWC8vd0Q4QVFJQWcyYnVqdVh1L3dBSEFnSUFnMmZOZXNYTi93QVNBZ0lBZzJhTFU0YUwvd0FkQWdJQVAv''@;'; + put 'put ''Ly9mLzhBL3dBb0FnSUFQLy8vZi84QS93QTBBZ0lBUC8vdWR1NEEvd0JBQWdJQVAvL05aczBBL3dCTUFnSUFQLytMUllzQS93QllBZ0lBRWRyUzBta2Uvd0JpQWdJQUVkdi8vMzhrL3dCdEFnSUFFZHZ1N25ZaC93QjRBZ0lBRWRyTnpXWWQvd0NEQWdJQUVkeUxpMFVUL3dDT0FnSUFDNi8vLzM5''@;'; + put 'put ''US93Q1VBZ0lBQjZuLy8zSlcvd0NiQWdJQUJxbnU3bXBRL3dDaUFnSUFCcW5OelZ0Ri93Q3BBZ0lBQnFpTGl6NHYvd0N3QWdJQW1wUHRaSlh0L3dDL0FnSUFJU0wvLy9qYy93RElBZ0lBSVNMLy8vamMvd0RTQWdJQUlpUHU3dWpOL3dEY0FnSUFJaUxOemNpeC93RG1BZ0lBSXlLTGk0aDQvd0R3''@;'; + put 'put ''QWdJQTl1ZmMzQlE4L3dENEFnSUFmLy8vQVAvLy93RDlBZ0lBZi8vL0FQLy8vd0FEQXdJQWYvL3VBTzd1L3dBSkF3SUFmLy9OQU0zTi93QVBBd0lBZi8rTEFJdUwvd0FWQXdJQUh1KzR1SVlML3dBakF3SUFIdkQvLzdrUC93QXlBd0lBSHZEdTdxME8vd0JCQXdJQUh2RE56WlVNL3dCUUF3SUFI''@;'; + put 'put ''dkNMaTJVSS93QmZBd0lBVmY5a0FHUUEvd0JwQXdJQUoyNjl2YmRyL3dCekF3SUFPbzVyVldzdi93Q0NBd0lBT28vL3l2OXcvd0NTQXdJQU9vL3V2TzVvL3dDaUF3SUFPby9Ob3MxYS93Q3lBd0lBT28rTGJvczkvd0RDQXdJQUYvLy8vNHdBL3dETkF3SUFGZi8vLzM4QS93RFpBd0lBRmYvdTdu''@;'; + put 'put ''WUEvd0RsQXdJQUZmL056V1lBL3dEeEF3SUFGZitMaTBVQS93RDlBd0lBeHNETW1UTE0vd0FJQkFJQXhzSC92ejcvL3dBVUJBSUF4c0R1c2pydS93QWdCQUlBeHNETm1qTE4vd0FzQkFJQXhzQ0xhQ0tML3dBNEJBSUFDbm5wNlpaNi93QkRCQUlBVlQyOGo3eVAvd0JRQkFJQVZUNy93Zi9CL3dC''@;'; + put 'put ''ZUJBSUFWVDd1dE82MC93QnNCQUlBVlQ3Tm04MmIvd0I2QkFJQVZUNkxhWXRwL3dDSUJBSUFyNCtMU0QyTC93Q1dCQUlBZjJkUEwwOVAvd0NrQkFJQWYyai9sLy8vL3dDekJBSUFmMmZ1amU3dS93RENCQUlBZjJqTmVjM04vd0RSQkFJQWYyaUxVb3VML3dEZ0JBSUFmMmRQTDA5UC93RHVCQUlB''@;'; + put 'put ''Z1AvUkFNN1Ivd0Q4QkFJQXgvL1RsQURUL3dBSEJRSUE2T3YvL3hTVC93QVFCUUlBNk92Ly94U1Qvd0FhQlFJQTZPdnU3aEtKL3dBa0JRSUE2T3ZOelJCMi93QXVCUUlBNSt5TGl3cFEvd0E0QlFJQWl2Ly9BTC8vL3dCRUJRSUFpdi8vQUwvLy93QlJCUUlBaXYvdUFMTHUvd0JlQlFJQWl2L05B''@;'; + put 'put ''SnJOL3dCckJRSUFpditMQUdpTC93QjRCUUlBQUFCcGFXbHAvd0NBQlFJQUFBQnBhV2xwL3dDSUJRSUFsT0gvSHBELy93Q1RCUUlBbE9IL0hwRC8vd0NmQlFJQWxPSHVISWJ1L3dDckJRSUFsT0hOR0hUTi93QzNCUUlBbE9HTEVFNkwvd0REQlFJQUFNNnlzaUlpL3dETkJRSUFBTS8vL3pBdy93''@;'; + put 'put ''RFlCUUlBQU0vdTdpd3Mvd0RqQlFJQUFNL056U1ltL3dEdUJRSUFBTStMaXhvYS93RDVCUUlBSEEvLy8vcncvd0FGQmdJQVZjQ0xJb3NpL3dBUkJnSUFBQURjM056Yy93QWJCZ0lBcWdmLytQai8vd0FtQmdJQUkvLy8vOWNBL3dBckJnSUFJLy8vLzljQS93QXhCZ0lBSS8vdTdza0Evd0EzQmdJ''@;'; + put 'put ''QUkvL056YTBBL3dBOUJnSUFJLytMaTNVQS93QkRCZ0lBSHRuYTJxVWcvd0JOQmdJQUh0ci8vOEVsL3dCWUJnSUFIdHJ1N3JRaS93QmpCZ0lBSHRyTnpac2Qvd0J1QmdJQUh0cUxpMmtVL3dCNUJnSUFBQURBd01EQS93QitCZ0lBQUFBQUFBQUEvd0NFQmdJQUFBQURBd01EL3dDS0JnSUFBQUFh''@;'; + put 'put ''R2hvYS93Q1JCZ0lBQUFELy8vLy8vd0NaQmdJQUFBQWNIQndjL3dDZ0JnSUFBQUFmSHg4Zi93Q25CZ0lBQUFBaElTRWgvd0N1QmdJQUFBQWtKQ1FrL3dDMUJnSUFBQUFtSmlZbS93QzhCZ0lBQUFBcEtTa3Avd0REQmdJQUFBQXJLeXNyL3dES0JnSUFBQUF1TGk0dS93RFJCZ0lBQUFBd01EQXcv''@;'; + put 'put ''d0RZQmdJQUFBQUZCUVVGL3dEZUJnSUFBQUF6TXpNei93RGxCZ0lBQUFBMk5qWTIvd0RzQmdJQUFBQTRPRGc0L3dEekJnSUFBQUE3T3pzNy93RDZCZ0lBQUFBOVBUMDkvd0FCQndJQUFBQkFRRUJBL3dBSUJ3SUFBQUJDUWtKQy93QVBCd0lBQUFCRlJVVkYvd0FXQndJQUFBQkhSMGRIL3dBZEJ3''@;'; + put 'put ''SUFBQUJLU2twSy93QWtCd0lBQUFBSUNBZ0kvd0FxQndJQUFBQk5UVTFOL3dBeEJ3SUFBQUJQVDA5UC93QTRCd0lBQUFCU1VsSlMvd0EvQndJQUFBQlVWRlJVL3dCR0J3SUFBQUJYVjFkWC93Qk5Cd0lBQUFCWldWbFovd0JVQndJQUFBQmNYRnhjL3dCYkJ3SUFBQUJlWGw1ZS93QmlCd0lBQUFC''@;'; + put 'put ''aFlXRmgvd0JwQndJQUFBQmpZMk5qL3dCd0J3SUFBQUFLQ2dvSy93QjJCd0lBQUFCbVptWm0vd0I5QndJQUFBQnBhV2xwL3dDRUJ3SUFBQUJyYTJ0ci93Q0xCd0lBQUFCdWJtNXUvd0NTQndJQUFBQndjSEJ3L3dDWkJ3SUFBQUJ6YzNOei93Q2dCd0lBQUFCMWRYVjEvd0NuQndJQUFBQjRlSGg0''@;'; + put 'put ''L3dDdUJ3SUFBQUI2ZW5wNi93QzFCd0lBQUFCOWZYMTkvd0M4QndJQUFBQU5EUTBOL3dEQ0J3SUFBQUIvZjM5Ly93REpCd0lBQUFDQ2dvS0Mvd0RRQndJQUFBQ0ZoWVdGL3dEWEJ3SUFBQUNIaDRlSC93RGVCd0lBQUFDS2lvcUsvd0RsQndJQUFBQ01qSXlNL3dEc0J3SUFBQUNQajQrUC93RHpC''@;'; + put 'put ''d0lBQUFDUmtaR1Ivd0Q2QndJQUFBQ1VsSlNVL3dBQkNBSUFBQUNXbHBhVy93QUlDQUlBQUFBUER3OFAvd0FPQ0FJQUFBQ1ptWm1aL3dBVkNBSUFBQUNjbkp5Yy93QWNDQUlBQUFDZW5wNmUvd0FqQ0FJQUFBQ2hvYUdoL3dBcUNBSUFBQUNqbzZPai93QXhDQUlBQUFDbXBxYW0vd0E0Q0FJQUFB''@;'; + put 'put ''Q29xS2lvL3dBL0NBSUFBQUNycTZ1ci93QkdDQUlBQUFDdHJhMnQvd0JOQ0FJQUFBQ3dzTEN3L3dCVUNBSUFBQUFTRWhJUy93QmFDQUlBQUFDenM3T3ovd0JoQ0FJQUFBQzF0YlcxL3dCb0NBSUFBQUM0dUxpNC93QnZDQUlBQUFDNnVycTYvd0IyQ0FJQUFBQzl2YjI5L3dCOUNBSUFBQUMvdjcr''@;'; + put 'put ''Ly93Q0VDQUlBQUFEQ3dzTEMvd0NMQ0FJQUFBREV4TVRFL3dDU0NBSUFBQURIeDhmSC93Q1pDQUlBQUFESnljbkovd0NnQ0FJQUFBQVVGQlFVL3dDbUNBSUFBQURNek16TS93Q3RDQUlBQUFEUHo4L1Avd0MwQ0FJQUFBRFIwZEhSL3dDN0NBSUFBQURVMU5UVS93RENDQUlBQUFEVzF0Ylcvd0RK''@;'; + put 'put ''Q0FJQUFBRFoyZG5aL3dEUUNBSUFBQURiMjl2Yi93RFhDQUlBQUFEZTN0N2Uvd0RlQ0FJQUFBRGc0T0RnL3dEbENBSUFBQURqNCtQai93RHNDQUlBQUFBWEZ4Y1gvd0R5Q0FJQUFBRGw1ZVhsL3dENUNBSUFBQURvNk9qby93QUFDUUlBQUFEcjYrdnIvd0FIQ1FJQUFBRHQ3ZTN0L3dBT0NRSUFB''@;'; + put 'put ''QUR3OFBEdy93QVZDUUlBQUFEeTh2THkvd0FjQ1FJQUFBRDE5ZlgxL3dBakNRSUFBQUQzOS9mMy93QXFDUUlBQUFENit2cjYvd0F4Q1FJQUFBRDgvUHo4L3dBNENRSUFWZi8vQVA4QS93QStDUUlBVmYvL0FQOEEvd0JGQ1FJQVZmL3VBTzRBL3dCTUNRSUFWZi9OQU0wQS93QlRDUUlBVmYrTEFJ''@;'; + put 'put ''c0Evd0JhQ1FJQU85RC9yZjh2L3dCbUNRSUFBQURBd01EQS93QnJDUUlBQUFBQUFBQUEvd0J4Q1FJQUFBQURBd01EL3dCM0NRSUFBQUFhR2hvYS93QitDUUlBQUFELy8vLy8vd0NHQ1FJQUFBQWNIQndjL3dDTkNRSUFBQUFmSHg4Zi93Q1VDUUlBQUFBaElTRWgvd0NiQ1FJQUFBQWtKQ1FrL3dD''@;'; + put 'put ''aUNRSUFBQUFtSmlZbS93Q3BDUUlBQUFBcEtTa3Avd0N3Q1FJQUFBQXJLeXNyL3dDM0NRSUFBQUF1TGk0dS93QytDUUlBQUFBd01EQXcvd0RGQ1FJQUFBQUZCUVVGL3dETENRSUFBQUF6TXpNei93RFNDUUlBQUFBMk5qWTIvd0RaQ1FJQUFBQTRPRGc0L3dEZ0NRSUFBQUE3T3pzNy93RG5DUUlB''@;'; + put 'put ''QUFBOVBUMDkvd0R1Q1FJQUFBQkFRRUJBL3dEMUNRSUFBQUJDUWtKQy93RDhDUUlBQUFCRlJVVkYvd0FEQ2dJQUFBQkhSMGRIL3dBS0NnSUFBQUJLU2twSy93QVJDZ0lBQUFBSUNBZ0kvd0FYQ2dJQUFBQk5UVTFOL3dBZUNnSUFBQUJQVDA5UC93QWxDZ0lBQUFCU1VsSlMvd0FzQ2dJQUFBQlVW''@;'; + put 'put ''RlJVL3dBekNnSUFBQUJYVjFkWC93QTZDZ0lBQUFCWldWbFovd0JCQ2dJQUFBQmNYRnhjL3dCSUNnSUFBQUJlWGw1ZS93QlBDZ0lBQUFCaFlXRmgvd0JXQ2dJQUFBQmpZMk5qL3dCZENnSUFBQUFLQ2dvSy93QmpDZ0lBQUFCbVptWm0vd0JxQ2dJQUFBQnBhV2xwL3dCeENnSUFBQUJyYTJ0ci93''@;'; + put 'put ''QjRDZ0lBQUFCdWJtNXUvd0IvQ2dJQUFBQndjSEJ3L3dDR0NnSUFBQUJ6YzNOei93Q05DZ0lBQUFCMWRYVjEvd0NVQ2dJQUFBQjRlSGg0L3dDYkNnSUFBQUI2ZW5wNi93Q2lDZ0lBQUFCOWZYMTkvd0NwQ2dJQUFBQU5EUTBOL3dDdkNnSUFBQUIvZjM5Ly93QzJDZ0lBQUFDQ2dvS0Mvd0M5Q2dJ''@;'; + put 'put ''QUFBQ0ZoWVdGL3dERUNnSUFBQUNIaDRlSC93RExDZ0lBQUFDS2lvcUsvd0RTQ2dJQUFBQ01qSXlNL3dEWkNnSUFBQUNQajQrUC93RGdDZ0lBQUFDUmtaR1Ivd0RuQ2dJQUFBQ1VsSlNVL3dEdUNnSUFBQUNXbHBhVy93RDFDZ0lBQUFBUER3OFAvd0Q3Q2dJQUFBQ1ptWm1aL3dBQ0N3SUFBQUNj''@;'; + put 'put ''bkp5Yy93QUpDd0lBQUFDZW5wNmUvd0FRQ3dJQUFBQ2hvYUdoL3dBWEN3SUFBQUNqbzZPai93QWVDd0lBQUFDbXBxYW0vd0FsQ3dJQUFBQ29xS2lvL3dBc0N3SUFBQUNycTZ1ci93QXpDd0lBQUFDdHJhMnQvd0E2Q3dJQUFBQ3dzTEN3L3dCQkN3SUFBQUFTRWhJUy93QkhDd0lBQUFDenM3T3ov''@;'; + put 'put ''d0JPQ3dJQUFBQzF0YlcxL3dCVkN3SUFBQUM0dUxpNC93QmNDd0lBQUFDNnVycTYvd0JqQ3dJQUFBQzl2YjI5L3dCcUN3SUFBQUMvdjcrLy93QnhDd0lBQUFEQ3dzTEMvd0I0Q3dJQUFBREV4TVRFL3dCL0N3SUFBQURIeDhmSC93Q0dDd0lBQUFESnljbkovd0NOQ3dJQUFBQVVGQlFVL3dDVEN3''@;'; + put 'put ''SUFBQURNek16TS93Q2FDd0lBQUFEUHo4L1Avd0NoQ3dJQUFBRFIwZEhSL3dDb0N3SUFBQURVMU5UVS93Q3ZDd0lBQUFEVzF0Ylcvd0MyQ3dJQUFBRFoyZG5aL3dDOUN3SUFBQURiMjl2Yi93REVDd0lBQUFEZTN0N2Uvd0RMQ3dJQUFBRGc0T0RnL3dEU0N3SUFBQURqNCtQai93RFpDd0lBQUFB''@;'; + put 'put ''WEZ4Y1gvd0RmQ3dJQUFBRGw1ZVhsL3dEbUN3SUFBQURvNk9qby93RHRDd0lBQUFEcjYrdnIvd0QwQ3dJQUFBRHQ3ZTN0L3dEN0N3SUFBQUR3OFBEdy93QUNEQUlBQUFEeTh2THkvd0FKREFJQUFBRDE5ZlgxL3dBUURBSUFBQUQzOS9mMy93QVhEQUlBQUFENit2cjYvd0FlREFJQUFBRDgvUHo4''@;'; + put 'put ''L3dBbERBSUFWUS8vOFAvdy93QXVEQUlBVlEvLzhQL3cvd0E0REFJQVZRL3U0TzdnL3dCQ0RBSUFWUTdOd2MzQi93Qk1EQUlBVlE2TGc0dUQvd0JXREFJQTZaYi8vMm0wL3dCZURBSUE2cEgvLzI2MC93Qm5EQUlBNjQzdTdtcW4vd0J3REFJQTdJZk56V0NRL3dCNURBSUE2cFNMaXpwaS93Q0NE''@;'; + put 'put ''QUlBQUl6TnpWeGMvd0NNREFJQUFKVC8vMnBxL3dDWERBSUFBSlR1N21Oai93Q2lEQUlBQUpYTnpWVlYvd0N0REFJQUFKU0xpem82L3dDNERBSUF3ditDU3dDQy93Qy9EQUlBS2dELy8vLytBQURGREFJQUtnLy8vLy93L3dETERBSUFLZy8vLy8vdy93RFNEQUlBS2cvdTd1N2cvd0RaREFJQUtn''@;'; + put 'put ''N056YzNCL3dEZ0RBSUFLZzZMaTR1RC93RG5EQUlBSm1ydzhPYU0vd0R0REFJQUozRC8vL2FQL3dEMERBSUFKM0R1N3VhRi93RDdEQUlBSjIvTnpjWnovd0FDRFFJQUoyK0xpNFpPL3dBSkRRSUFxaFQ2NXViNi93QVNEUUlBOEEvLy8vRDEvd0FnRFFJQThBLy8vL0QxL3dBdkRRSUE3dy91N3VE''@;'; + put 'put ''bC93QStEUUlBOEE3TnpjSEYvd0JORFFJQTd3NkxpNE9HL3dCY0RRSUFRUC84ZlB3QS93Qm1EUUlBSmpILy8vck4vd0J6RFFJQUpqSC8vL3JOL3dDQkRRSUFKVEx1N3VtLy93Q1BEUUlBSmpITnpjbWwvd0NkRFFJQUp6R0xpNGx3L3dDckRRSUFpVC9tcmRqbS93QzFEUUlBaWtEL3YrLy8vd0RB''@;'; + put 'put ''RFFJQWlrRHVzdC91L3dETERRSUFpai9ObXNETi93RFdEUUlBaVVDTGFJT0wvd0RoRFFJQUFIZnc4SUNBL3dEc0RRSUFmeC8vNFAvLy93RDJEUUlBZngvLzRQLy8vd0FCRGdJQWZ4L3UwZTd1L3dBTURnSUFmeC9OdE0zTi93QVhEZ0lBZngrTGVvdUwvd0FpRGdJQUkzUHU3dDJDL3dBeERnSUFJ''@;'; + put 'put ''M1QvLyt5TC93QkJEZ0lBSTNQdTd0eUMvd0JSRGdJQUkzUE56YjV3L3dCaERnSUFJM09MaTRGTS93QnhEZ0lBS2lqNit2clMvd0NHRGdJQUFBRFQwOVBUL3dDUURnSUFBQURUMDlQVC93Q2FEZ0lBK0VuLy83YkIvd0NrRGdJQStWSC8vNjY1L3dDdkRnSUErRkh1N3FLdC93QzZEZ0lBK1ZETnpZ''@;'; + put 'put ''eVYvd0RGRGdJQStWQ0xpMTlsL3dEUURnSUFESVQvLzZCNi93RGNEZ0lBRElULy82QjYvd0RwRGdJQUM0VHU3cFZ5L3dEMkRnSUFESVhOellGaS93QUREd0lBRElXTGkxZEMvd0FRRHdJQWZkR3lJTEtxL3dBZUR3SUFqM1g2aDg3Ni93QXJEd0lBajAvL3NPTC8vd0E1RHdJQWowL3VwTlB1L3dC''@;'; + put 'put ''SER3SUFqay9OamJiTi93QlZEd0lBajA2TFlIdUwvd0JqRHdJQXI0Ly9oSEQvL3dCeUR3SUFsRGlaZDRpWi93Q0JEd0lBbERpWmQ0aVovd0NRRHdJQWx6VGVzTVRlL3dDZkR3SUFselgveXVILy93Q3ZEd0lBbHpYdXZOTHUvd0MvRHdJQWx6WE5vclhOL3dEUER3SUFsaldMYm51TC93RGZEd0lB''@;'; + put 'put ''S2gvLy8vL2cvd0RyRHdJQUtoLy8vLy9nL3dENER3SUFLaC91N3U3Ui93QUZFQUlBS2gvTnpjMjAvd0FTRUFJQUtoK0xpNHQ2L3dBZkVBSUFWY0ROTXMweS93QXBFQUlBRlJUNit2RG0vd0F2RUFJQTFQLy8vd0QvL3dBM0VBSUExUC8vL3dELy93QkFFQUlBMVAvdTdnRHUvd0JKRUFJQTFQL056''@;'; + put 'put ''UUROL3dCU0VBSUExUCtMaXdDTC93QmJFQUlBNzdtd3NEQmcvd0JpRUFJQTVNdi8velN6L3dCcUVBSUE1TXZ1N2pDbi93QnlFQUlBNU16TnpTbVEvd0I2RUFJQTVNdUxpeHhpL3dDQ0VBSUFjWUROWnMycS93Q1RFQUlBcXYvTkFBRE4vd0NlRUFJQXpKalR1bFhUL3dDckVBSUF5NW4vNEdiLy93''@;'; + put 'put ''QzVFQUlBeTVudTBWL3Uvd0RIRUFJQXk1bk50RkxOL3dEVkVBSUF5NXFMZWplTC93RGpFQUlBdDN6YmszRGIvd0R3RUFJQXQzMy9xNEwvL3dEK0VBSUF0MzN1bjNudS93QU1FUUlBdDMzTmlXak4vd0FhRVFJQXQzeUxYVWVML3dBb0VRSUFaNm16UExOeC93QTNFUUlBc0kvdWUyanUvd0JIRVFJ''@;'; + put 'put ''QWIvLzZBUHFhL3dCWkVRSUFmYWZSU05ITS93QnBFUUlBNU9USHh4V0Yvd0I1RVFJQXFzWndHUmx3L3dDR0VRSUFhZ24vOWYvNi93Q1FFUUlBQkI3Ly8rVGgvd0NhRVFJQUJCNy8vK1RoL3dDbEVRSUFCQjd1N3RYUy93Q3dFUUlBQXgzTnpiZTEvd0M3RVFJQUJSMkxpMzE3L3dER0VRSUFHa24v''@;'; + put 'put ''LytTMS93RFBFUUlBR1ZILy85NnQvd0RiRVFJQUdWSC8vOTZ0L3dEb0VRSUFHVkx1N3MraC93RDFFUUlBR1ZMTnpiT0wvd0FDRWdJQUdWS0xpM2xlL3dBUEVnSUFxditBQUFDQS93QVVFZ0lBcXYrQUFBQ0Evd0FkRWdJQUtnRC8vLy8rQUFBaUVnSUFHeGY5L2ZYbS93QXFFZ0lBT01DT2E0NGov''@;'; + put 'put ''d0EwRWdJQU9NSC93UDgrL3dBL0VnSUFPTUR1cys0Ni93QktFZ0lBT01ETm1zMHkvd0JWRWdJQU9NQ0xhWXNpL3dCZ0VnSUFHLy8vLzZVQS93Qm5FZ0lBRy8vLy82VUEvd0J2RWdJQUcvL3U3cG9BL3dCM0VnSUFHLy9OellVQS93Qi9FZ0lBRy8rTGkxb0Evd0NIRWdJQUMvLy8vMFVBL3dDUkVn''@;'; + put 'put ''SUFDLy8vLzBVQS93Q2NFZ0lBQy8vdTdrQUEvd0NuRWdJQUMvL056VGNBL3dDeUVnSUFDLytMaXlVQS93QzlFZ0lBMW52YTJuRFcvd0RFRWdJQTFuei8vNFA2L3dETUVnSUExbnp1N25ycC93RFVFZ0lBMW56TnpXbkovd0RjRWdJQTFYeUxpMGVKL3dEa0VnSUFKa2p1N3VpcS93RHlFZ0lBVldU''@;'; + put 'put ''N21QdVkvd0Q4RWdJQVZXWC9tdithL3dBSEV3SUFWV1R1a082US93QVNFd0lBVldUTmZNMTgvd0FkRXdJQVZXU0xWSXRVL3dBb0V3SUFmMFB1cis3dS93QTJFd0lBZjBUL3UvLy8vd0JGRXdJQWYwVHVydTd1L3dCVUV3SUFmMFRObHMzTi93QmpFd0lBZjBPTFpvdUwvd0J5RXdJQThYemIyM0NU''@;'; + put 'put ''L3dDQUV3SUE4WDMvLzRLci93Q1BFd0lBOFgzdTdubWYvd0NlRXdJQThYM056V2lKL3dDdEV3SUE4WHlMaTBkZC93QzhFd0lBR2luLy8rL1Yvd0RIRXdJQUZFYi8vOXE1L3dEUkV3SUFGRWIvLzlxNS93RGNFd0lBRTBYdTdzdXQvd0RuRXdJQUUwWE56YStWL3dEeUV3SUFGRVdMaTNkbC93RDlF''@;'; + put 'put ''d0lBRkxETnpZVS8vd0FDRkFJQTl6Ly8vOERML3dBSEZBSUE5VW4vLzdYRi93QU5GQUlBOVVudTdxbTQvd0FURkFJQTlVck56WkdlL3dBWkZBSUE5VW1MaTJOcy93QWZGQUlBMUViZDNhRGQvd0FrRkFJQTFFVC8vN3YvL3dBcUZBSUExRVR1N3E3dS93QXdGQUlBMUVUTnpaYk4vd0EyRkFJQTFF''@;'; + put 'put ''T0xpMmFML3dBOEZBSUFoRHZtc09EbS93QkhGQUlBeE4zd29DRHcvd0JPRkFJQXY4Ly9tekQvL3dCV0ZBSUF3TS91a1N6dS93QmVGQUlBd00vTmZTYk4vd0JtRkFJQXdNK0xWUnFML3dCdUZBSUFBUC8vL3dBQS93QnlGQUlBQVAvLy93QUEvd0IzRkFJQUFQL3U3Z0FBL3dCOEZBSUFBUC9OelFB''@;'; + put 'put ''QS93Q0JGQUlBQVArTGl3QUEvd0NHRkFJQUFEMjh2SStQL3dDUUZBSUFBRDcvLzhIQi93Q2JGQUlBQUQ3dTdyUzAvd0NtRkFJQUFEN056WnViL3dDeEZBSUFBRDZMaTJscC93QzhGQUlBbjdYaFFXbmgvd0RHRkFJQW43Zi9TSGIvL3dEUkZBSUFuN2Z1UTI3dS93RGNGQUlBbjdiTk9sL04vd0Ru''@;'; + put 'put ''RkFJQW43ZUxKMENML3dEeUZBSUFFZHlMaTBVVC93RCtGQUlBQklyNitvQnkvd0FGRlFJQUNaYi8vNHhwL3dBTkZRSUFDWmJ1N29KaS93QVZGUUlBQ1piTnpYQlUvd0FkRlFJQUNaYUxpMHc1L3dBbEZRSUFFNXIwOUtSZy93QXdGUUlBWjZxTExvdFgvd0E1RlFJQVo2di9WUCtmL3dCREZRSUFa''@;'; + put 'put ''NnZ1VHU2VS93Qk5GUUlBWjZ2TlE4MkEvd0JYRlFJQVo2cUxMb3RYL3dCaEZRSUFFUkQvLy9YdS93QnFGUUlBRVJELy8vWHUvd0IwRlFJQUVoSHU3dVhlL3dCK0ZRSUFFaEhOemNXLy93Q0lGUUlBRWhDTGk0YUMvd0NTRlFJQURiZWdvRkl0L3dDWkZRSUFEYmovLzRKSC93Q2hGUUlBRGJqdTdu''@;'; + put 'put ''bEMvd0NwRlFJQURiak56V2c1L3dDeEZRSUFEYm1MaTBjbS93QzVGUUlBaTJ6cmg4N3Ivd0RCRlFJQWtIai9oODcvL3dES0ZRSUFrSGp1ZnNEdS93RFRGUUlBa0hqTmJLYk4vd0RjRlFJQWtYZUxTbkNML3dEbEZRSUFyNC9OYWxyTi93RHZGUUlBcjVEL2cyLy8vd0Q2RlFJQXI1RHVlbWZ1L3dB''@;'; + put 'put ''RkZnSUFyNUROYVZuTi93QVFGZ0lBcjVDTFJ6eUwvd0FiRmdJQWxEaVFjSUNRL3dBbEZnSUFsVGoveHVMLy93QXdGZ0lBbFRqdXVkUHUvd0E3RmdJQWxEbk5uN2JOL3dCR0ZnSUFsVGlMYkh1TC93QlJGZ0lBbERpUWNJQ1Evd0JiRmdJQUFBWC8vL3I2L3dCZ0ZnSUFBQVgvLy9yNi93Qm1GZ0lB''@;'; + put 'put ''QUFYdTd1bnAvd0JzRmdJQUFBVE56Y25KL3dCeUZnSUFBQU9MaTRtSi93QjRGZ0lBYXYvL0FQOS8vd0NFRmdJQWF2Ly9BUDkvL3dDUkZnSUFhdi91QU81Mi93Q2VGZ0lBYXYvTkFNMW0vd0NyRmdJQWF2K0xBSXRGL3dDNEZnSUFrcHUwUm9LMC93RENGZ0lBa3B6L1k3ai8vd0RORmdJQWtwenVY''@;'; + put 'put ''S3p1L3dEWUZnSUFrcHpOVDVUTi93RGpGZ0lBazV1TE5tU0wvd0R1RmdJQUdGVFMwclNNL3dEeUZnSUFGTEQvLzZWUC93RDNGZ0lBRkxEdTdwcEovd0Q4RmdJQUZMRE56WVUvL3dBQkZ3SUFGTENMaTFvci93QUdGd0lBMUIzWTJML1kvd0FPRndJQTFCNy8vK0gvL3dBWEZ3SUExQjd1N3RMdS93''@;'; + put 'put ''QWdGd0lBMUIzTnpiWE4vd0FwRndJQTFCMkxpM3VML3dBeUZ3SUFCcmovLzJOSC93QTVGd0lBQnJqLy8yTkgvd0JCRndJQUJyanU3bHhDL3dCSkZ3SUFCcmpOelU4NS93QlJGd0lBQnJtTGl6WW0vd0NqR0FJQUtnRC8vLy8rQUFCWkZ3SUFlN2JnUU9EUS93QmpGd0lBZ2YvL0FQWC8vd0J1RndJ''@;'; + put 'put ''QWdmL3VBT1h1L3dCNUZ3SUFnZi9OQU1YTi93Q0VGd0lBZ2YrTEFJYUwvd0NQRndJQTFIUHU3b0x1L3dDV0Z3SUE0OWZRMENDUS93Q2dGd0lBNjhILy96Nlcvd0NyRndJQTY4RHU3anFNL3dDMkZ3SUE2OEROelRKNC93REJGd0lBNjhDTGl5SlMvd0RNRndJQUcwVDE5ZDZ6L3dEU0Z3SUFHMFgv''@;'; + put 'put ''LytlNi93RFpGd0lBRzBUdTd0aXUvd0RnRndJQUcwVE56YnFXL3dEbkZ3SUFHME9MaTM1bS93RHVGd0lBQUFELy8vLy8vd0QwRndJQUFBRDE5ZlgxL3dEL0Z3SUFLdi8vLy84QS93QUdHQUlBS3YvLy8vOEEvd0FPR0FJQUt2L3U3dTRBL3dBV0dBSUFLdi9OemMwQS93QWVHQUlBS3YrTGk0c0Ev''@;'; + put 'put ''d0FtR0FJQU9NRE5tczB5L3dDYUhBSUFmeXdDQUxZWUFnQzRHQUlBdWhnQ0FMd1lBZ0MrR0FJQXdCZ0NBTUlZQWdERUdBSUF4aGdDQU1rWUFnRE1HQUlBenhnQ0FOSVlBZ0RWR0FJQTJCZ0NBTnNZQWdEZUdBSUE0UmdDQU9RWUFnQUFBQUFBQkFBQUFBUUFBQUFMQUFBQU5nQUFBQllBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUlBQUFBRUFBQUFCZ0FBQUFBQUFBQUFBQUFBQmNBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBRUFBQUFCZ0FBQUFBQUFBQUFBQUFBQmdBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBQkFBQUFBQUFBQUFBQUFBQU53QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBQkFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQU9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREdKUUlBQ1FBQUFNd2xBZ0FLQUFBQTFTVUNBQXNB''@;'; + put 'put ''QUFBWEpnSUFEQUFBQUIwbUFnQU5BQUFBSWlZQ0FBNEFBQURWSlFJQUR3QUFBS29tQWdBUUFBQUFzU1lDQUJFQUFBQzVKZ0lBRWdBQUFNQW1BZ0FUQUFBQXpDWUNBQlFBQUFBWEpnSUFGUUFBQU5nbUFnQVdBQUFBNENZQ0FCY0FBQURxSmdJQUdBQUFBUGdtQWdBWkFBQUEveVlDQUJvQUFBQUVK''@;'; + put 'put ''d0lBR3dBQUFBY25BZ0FjQUFBQURDY0NBQjBBQUFBVUp3SUFIZ0FBQUJvbkFnQWZBQUFBSUNjQ0FDQUFBQUFuSndJQUlRQUFBQzBuQWdBaEFBQUFOU2NDQUNJQUFBQThKd0lBSXdBQUFOVWxBZ0FrQUFBQXNTWUNBQkVBQUFDNUpnSUFFZ0FBQURNcEFnQWxBQUFBd0NZQ0FCTUFBQURNSmdJQUZB''@;'; + put 'put ''QUFBQmNtQWdBVkFBQUFQaWtDQUNZQUFBRGdKZ0lBRndBQUFPb21BZ0FZQUFBQStDWUNBQmtBQUFEL0pnSUFHZ0FBQUFRbkFnQWJBQUFBQnljQ0FCd0FBQUJHS1FJQUp3QUFBQlFuQWdBZUFBQUFHaWNDQUI4QUFBQWdKd0lBSUFBQUFDY25BZ0FoQUFBQUxTY0NBQ0VBQUFBMUp3SUFJZ0FBQUR3''@;'; + put 'put ''bkFnQWpBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNnQUFBQXBBQUFBSUFBQUFDb0FBQUFNQUFBQUdRQUFBQ0VBQUFBRUFBQUFCUUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBRlFvQUFBa0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVZFQXdUSEI0RERSOGdJU0lq''@;'; + put 'put ''R3hvUkdSa1pHUmtaR1JrWkdSWVNBZzRMRHh3WUdCZ1lHQmdXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhRY0JCd1dIQmdZR0JnWUdCWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdIQ1FjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NI''@;'; + put 'put ''QndXSEJ3Y0hCd2NIQndjSEJZY0dod2NGaHdjSEJ3Y0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFljRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0Zod1dGaFlXRmhZV0ZnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOEFBQUFBQUFBQUJQNy8vNGYrLy84SEFBQUFBQUFBQUFELy8zLy8vLzkvLy8vLy8vLy8vL04vL3YzLy8vLy8vMy8vLy8vLy8vLy8vdy9nLy8v''@;'; + put 'put ''Ly96SDgvLy8vQUFBQUFBQUFBUC8vLy8vLy8vLy8vLy8vQVFENEF3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUU5mLy8vdi8vLy8vZjM5VS9mOFBBUDdmLy8vLy8vLy8vLy8rMy8vLy8vOERBUC8vLy8vLy81OFovLy8veno4REFBQUFBQUFBL3YvLy8zOEMvdi8vLzM4QUFBQUFBQUFB''@;'; + put 'put ''QUFELy8vOEhCd0FBQUFBQS92Ly9CLzRIQUFBQUFQNy8vLy8vLy8vLy8zei9meThBWUFBQUFPRC8vLy8vLy84akFBQUEvd01BQUFEZ24vbi8vLzNGQXdBQUFMQURBQU1BNElmNS8vLzliUU1BQUFCZUFBQWNBT0N2Ky8vLy9lMGpBQUFBQUFFQUFBRGduL24vLy8zTkl3QUFBTEFEQUFBQTRNYzkx''@;'; + put 'put ''aGpIdndNQUFBQUFBQUFBQU9EZi9mLy8vZThEQUFBQUFBTUFBQURnMy8zLy8vM3ZBd0FBQUVBREFBQUE0Ti85Ly8vOS93TUFBQUFBQXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEKy8vLy8vMzhOQUQ4QUFBQUFBQUFBbGlYdy9xNXNEU0FmQUFBQUFBQUFBQUFBQUFBQUFBQUEvLzcvLy84REFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8vLy8vUHdELy8vLy9md0R0MmdjQUFBQUFVQUZRTVlLcllpd0FBQUFBUUFESmdQVUhBQUFBQUFnQkF2Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOFAvLy8vLy8vLy8vLy8vLzhELy84L1AvLy8vLzgvUC8r''@;'; + put 'put ''cS8vLy9QLy8vLy8vLy85OWYzQi9QRC84ZjNCOEFBQUFBUUV3QUFBQUFBQUFBQUFBQUJ3QUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBRCtBd0FBL3YvLy8vLy8vLy8vL3g4QS92Ly8vLy8vLy8vLy8vOEg0UC8vLy84ZkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLy8vLy96OEFBQUFBQUFBQUFBQUFBUC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vRHdBQUFBQUFBQUFBQUFBQUFBQUFBQUJnL3dmKy8vK0gvdi8vQndBQUFBQUFBSUFBLy85Ly8vLy9mLy8vLy84QUFBQUFBQUFBLy8vLy8vLy8vLy8vLy84QkFQZ0RBQU1BQUFBQUFQLy8v''@;'; + put 'put ''Ly8vLy8vL1B3QUFBQU1BQUFEQTEvLy8rLy8vLy85L2YxVDkvdzhBL3QvLy8vLy8vLy8vLy83Zi8vLy8vM3NBLy8vLy8vLy9ueG4vLy8vUFB3TUFBQUFBQUFEKy8vLy9md0wrLy8vL2Z3RCsvL3YvLzdzV0FQLy8vd2NIQUFBQUFBRCsvLzhILy84SEFQOEQvLy8vLy8vLy8vLy9mUDkvNy8vL1Bm''@;'; + put 'put ''OEQ3di8vLy8vLy8vUC9QeDcvei84QUFPNmYrZi8vL2NYVG56bUFzTS8vQXdEa2gvbi8vLzF0MDRjNUFGN0EveDhBN3EvNy8vLzk3Zk8vT3dBQXdmOEFBTzZmK2YvLy9jM3pqem5Bc01QL0FBRHN4ejNXR01lL3c4YzlnQUNBL3dBQTd0LzkvLy85NzhQZlBXQUF3LzhBQU96Zi9mLy8vZS9EM3ox''@;'; + put 'put ''Z1FNUC9BQURzMy8zLy8vMy93ODg5Z0FERC93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQNy8vLy8vZi84SC8zLy9Bd0FBQUFDV0pmRCtybXovTzE4Ly93TUFBQUFBQUFBQUEvOERvTUwvL3YvLy93UCsvOThQdi83L1AvNENBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFQOGZBZ0FBQUtBQUFBRCsvejRBL3YvLy8vLy8vLy8vL3g5bS92Ly8vLy8vLy8vLy8vOTNHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ2dBQUFBcEFBQUFJQUFBQUNvQUFBQU1BQUFBR1FBQUFDRUFBQUFHQUFBQUJ3QUFBQUVBQUFBQkFBQUFBQUFBQUFBQUFBQUFG''@;'; + put 'put ''UW9BQUJVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVkVBd1RIQjRERFI4Z0lTSWpHeG9SR1JrWkdSa1pHUmtaR1JZU0FnNExEeHdZR0JnWUdCZ1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFFjQkJ3V0hCZ1lHQmdZR0JZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0hDUWNIQndJQ0FnSUNB''@;'; + put 'put ''Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUdCZ1lHQmdZR0JnWUdCZ1lHQmdZR0J3Y0hCd2NBQUFBQUFBQUFBQUFCQVNz''@;'; + put 'put ''QUFBQXNBQUFBTFFBQUFDNEFBQUF2QUFBQUxRQUFBREFBQUFBeEFBQUFNZ0FBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBb0FBQUFLUUFBQUNBQUFBQXFBQUFBREFBQUFCa0FBQUFoQUFBQUJnQUFBQWNBQUFBQkFBQUFBUUFBQUFBQUFBQUFBQUFBQUJVS0FBQUpBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFGUkFNRXh3ZUF3MGZJQ0VpSXhzYUVSa1pHUmtaR1JrWkdSa1dFZ0lPQ3c4Y0dCZ1lHQmdZRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZVUhBUWNGaHdZR0JnWUdCZ1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaHdrSEJ3Y0NBZ0lDQWdJQ0FnSUNBZ0lD''@;'; + put 'put ''QWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQmdZR0JnWUdCZ1lHQmdZR0JnWUdCZ2NIQndjSEFBQUFBQUFBQUFBQUFRRXJBQUFBTEFBQUFD''@;'; + put 'put ''MEFBQUF1QUFBQUx3QUFBQzBBQUFBd0FBQUFNUUFBQURJQUFBQUEzUUFBWU9ZQUFOamtBQURNNXdBQXpPY0FBRGpwQUFEWTVBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ2dBQUFBcEFBQUFJQUFBQUNvQUFBQU1BQUFBR1FBQUFDRUFBQUFJQUFBQUJRQUFBQUVBQUFB''@;'; + put 'put ''QkFBQUFBQUFBQUFBQUFBQUFGUW9BQUFrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVkVBd1RIQjRERFI4Z0lTSWpHeG9SR1JrWkdSa1pHUmtaR1JZU0FnNExEeHdZR0JnWUdCZ1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFFjQkJ3V0hCZ1lHQmdZR0JZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlX''@;'; + put 'put ''RmhZV0hDUWNIQndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNJQUFBQWpBQUFBSkFBQUFDVUFBQUFtQUFBQUp3QUFBQ2dBQUFBekFBQUFOQUFBQUNrQUFBQTFBQUFBRFFBQUFCb0FBQUFxQUFBQUNRQUFBQW9BQUFBQ0FBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUJVS0FBQUpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGUkFNRXh3ZUF3MGZJQ0VpSXhzYUVSa1pHUmtaR1JrWkdSa1dFZ0lPQ3c4Y0dCZ1lHQmdZRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZVUhBUWNGaHdZR0JnWUdCZ1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaHdrSEJ3''@;'; + put 'put ''Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjRmh3Y0hCd2NIQndjSEJ3V0hCb2NIQlljSEJ3Y0hCWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXSEJZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWWNGaFlX''@;'; + put 'put ''RmhZV0ZoWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXJBQUFBTEFBQUFDMEFBQUF1QUFBQUx3QUFBREFBQUFBeEFBQUFOZ0FBQURjQUFBQXlBQUFBT0FBQUFBNEFBQUFiQUFBQU13QUFBQXNBQUFBTUFBQUFBZ0FBQUFBQkFBQUFBQUFBQUFBQUFBQVZD''@;'; + put 'put ''Z0FBQ1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJVUURCTWNIZ01OSHlBaElpTWJHaEVaR1JrWkdSa1pHUmtaRmhJQ0Rnc1BIQmdZR0JnWUdCWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGQndFSEJZY0dCZ1lHQmdZRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZY0pCd2NIQndjSEJ3Y0hC''@;'; + put 'put ''d2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCWWNIQndjSEJ3Y0hCd2NGaHdhSEJ3V0hCd2NIQndXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0Zod1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXSEJZV0ZoWVdGaFlXQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBejQwQkFMSXpBZ0JUamdFQXV6TUNBTUl6QWdETE13SUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ2dBQUFBcEFBQUFJQUFBQUNvQUFBQU1BQUFBR1FBQUFDRUFBQUFHQUFBQUJ3QUFBQUVB''@;'; + put 'put ''QUFBQkFBQUFBQUFBQUFBQUFBQUFGUW9BQUJVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVkVBd1RIQjRERFI4Z0lTSWpHeG9SR1JrWkdSa1pHUmtaR1JjU0FnNExEeHdZR0JnWUdCZ1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFFjQkJ3V0hCZ1lHQmdZR0JZV0ZoWVdGaFlXRmhZV0ZoWVdG''@;'; + put 'put ''aFlXRmhZV0hDUWNIQndJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUdCZ1lHQmdZR0JnWUdCZ1lHQmdZR0J3''@;'; + put 'put ''Y0hCd2NBQUFBQUFBQUFBQUFCQVNzQUFBQXNBQUFBTFFBQUFDNEFBQUF2QUFBQUxRQUFBREFBQUFBeEFBQUFNZ0FBQUVUc0FBQ3c3UUFBSE84QUFJandBQUNJOEFBQTlQRUFBQnp2QUFBWkFBQUFHZ0FBQUJzQUFBQWNBQUFBSFFBQUFCNEFBQUFmQUFBQUtBQUFBQ2tBQUFBZ0FBQUFLZ0FBQUF3''@;'; + put 'put ''QUFBQVpBQUFBSVFBQUFBUUFBQUFGQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBVkNnQUFDUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlVRREJNY0hnTU5IeUFoSWlNYkdoRVpHUmtaR1JrWkdSa1pGeElDRGdzUEhCZ1lHQmdZR0JZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZCd0VIQllj''@;'; + put 'put ''R0JnWUdCZ1lGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFljSkJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJZY0hCd2NIQndjSEJ3Y0Zod2FIQndXSEJ3Y0hCd1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmh3V0ZoWVdG''@;'; + put 'put ''aFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdIQllXRmhZV0ZoWVdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ2dBQUFBcEFBQUFJQUFBQUNvQUFBQU1BQUFBR1FBQUFD''@;'; + put 'put ''RUFBQUFJQUFBQUJRQUFBQUVBQUFBQkFBQUFBQUFBQUFBQUFBQUFGUW9BQUFrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVkVBd1RIQjRERFI4Z0lTSWpHeG9SR1JrWkdSa1pHUmtaR1JjU0FnNExEeHdZR0JnWUdCZ1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFFjQkJ3V0hCZ1lHQmdZR0JZ''@;'; + put 'put ''V0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0hDUWNIQndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBb0FBQUFLUUFBQUNBQUFBQXFBQUFBREFBQUFCa0FBQUFoQUFBQUJnQUFB''@;'; + put 'put ''QWNBQUFBQkFBQUFBUUFBQUFBQUFBQUFBQUFBQUJVS0FBQUpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGUkFNRXh3ZUF3MGZJQ0VpSXhzYUVSa1pHUmtaR1JrWkdSa1hFZ0lPQ3c4Y0dCZ1lHQmdZRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZVUhBUWNGaHdZR0JnWUdCZ1dGaFlXRmhZV0Zo''@;'; + put 'put ''WVdGaFlXRmhZV0ZoWVdGaHdrSEJ3Y0NBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQmdZR0JnWUdCZ1lHQmdZ''@;'; + put 'put ''R0JnWUdCZ2NIQndjSEFBQUFBQUFBQUFBQUFRRXJBQUFBTEFBQUFDMEFBQUF1QUFBQUx3QUFBQzBBQUFBd0FBQUFNUUFBQURJQUFBQWlBQUFBSXdBQUFDUUFBQUFsQUFBQUpnQUFBQ2NBQUFBb0FBQUFNd0FBQURRQUFBQXBBQUFBTlFBQUFBMEFBQUFhQUFBQUtnQUFBQWtBQUFBS0FBQUFBZ0FB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQVZDZ0FBQ1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJVUURCTWNIZ01OSHlBaElpTWJHaEVaR1JrWkdSa1pHUmtaRnhJQ0Rnc1BIQmdZR0JnWUdCWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGQndFSEJZY0dCZ1lHQmdZRmhZV0ZoWVdGaFlXRmhZV0ZoWVdG''@;'; + put 'put ''aFlXRmhZY0pCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCWWNIQndjSEJ3Y0hCd2NGaHdhSEJ3V0hCd2NIQndXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0Zod1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0Zo''@;'; + put 'put ''WVdGaFlXSEJZV0ZoWVdGaFlXQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBS3dBQUFDd0FBQUF0QUFBQUxnQUFBQzhBQUFBd0FBQUFNUUFBQURZQUFBQTNBQUFBTWdBQUFEZ0FBQUFPQUFBQUd3QUFBRE1BQUFBTEFBQUFEQUFBQUFJQUFBQUFBUUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBRlFvQUFBa0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVZFQXdUSEI0RERSOGdJU0lqR3hvUkdSa1pHUmtaR1JrWkdSY1NBZzRMRHh3WUdCZ1lHQmdXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhRY0JCd1dIQmdZR0JnWUdCWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdIQ1Fj''@;'; + put 'put ''SEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndXSEJ3Y0hCd2NIQndjSEJZY0dod2NGaHdjSEJ3Y0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFljRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0Zod1dG''@;'; + put 'put ''aFlXRmhZV0ZnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGMDBBZ0JqTkFJQVpqUUNBR3cwQWdBR05BSUFjelFDQUh3MEFnQ0VOQUlBblBNQUFCUUFBQUJETGxWVVJpMDRBQUFBQUFBQUFBQUFBQUFBQU40U0JKVUFBQUFBLy8vLy8vLy8vLy8vLy8vL0Fn''@;'; + put 'put ''QUF3QU1BQU1BRUFBREFCUUFBd0FZQUFNQUhBQURBQ0FBQXdBa0FBTUFLQUFEQUN3QUF3QXdBQU1BTkFBREFEZ0FBd0E4QUFNQVFBQURBRVFBQXdCSUFBTUFUQUFEQUZBQUF3QlVBQU1BV0FBREFGd0FBd0JnQUFNQVpBQURBR2dBQXdCc0FBTUFjQUFEQUhRQUF3QjRBQU1BZkFBREFBQUFBc3dF''@;'; + put 'put ''QUFNTUNBQUREQXdBQXd3UUFBTU1GQUFEREJnQUF3d2NBQU1NSUFBRERDUUFBd3dvQUFNTUxBQUREREFBQXd3MEFBTk1PQUFERER3QUF3d0FBRExzQkFBekRBZ0FNd3dNQURNTUVBQXpUZ1BRQUFBa0FBQUFBQUFBQUFBQUFBQkVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRHdBQUFBQUFBQUFR''@;'; + put 'put ''QUFBQS9Qa0NBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvLy8vL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTlRQUFCUUFBQUFBQUFBQUFBQUFBRVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFF''@;'; + put 'put ''UUFBQUJBQUFBQUUvZ0lBQUFRQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQ3YvLy8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDFBQUNFOVFBQUJRQUFBQUFBQUFBQUFBQUFFUUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUVnQUFBQkFBQUFBTUFnTUFBQUFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQUFBQUFBQUFBQUEvLy8vLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBbU9nQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFBQUFCQUFBQUFRQUFBQUdBQUFBZy9taUFFUk9iZ0Q4S1JVQTBWY25B''@;'; + put 'put ''TjAwOVFCaTI4QUFQSm1WQUVHUVF3QmpVZjRBdTk2ckFMZGh4UUE2YmlRQTBrMUNBRWtHNEFBSjZpNEFISkxSQU9zZC9nQXBzUndBNkQ2bkFQVTFnZ0JFdXk0QW5PbUVBTFFtY0FCQmZsOEExcEU1QUZPRE9RQ2M5RGtBaTErRUFDajV2UUQ0SHpzQTN2K1hBQStZQlFBUkwrOEFDbHFMQUcwZmJR''@;'; + put 'put ''RFBmallBQ2NzbkFFWlB0d0NlWmo4QUxlcGZBTG9uZFFEbDY4Y0FQWHZ4QVBjNUJ3Q1NVb29BKzJ2cUFCK3hYd0FJWFkwQU1BTldBSHY4UmdEd3Eyc0FJTHpQQURiMG1nRGpxUjBBWG1HUkFBZ2I1Z0NGbVdVQW9CUmZBSTFBYUFDQTJQOEFKM05OQUFZR01RREtWaFVBeWFoekFIdmlZQUJyak1B''@;'; + put 'put ''QUlBQUFBQWtBQUFBS0FBQUFEUUFBQUFzQUFBQU1BQUFBaFFBQUFBQWdBQUFCSUFBQUFpQUFBQU1nQUFBRUlBQUFCU0FBQUFZZ0FBQUlJQUFBQ1NBQUFBb2dBQUFvSUFBQUtTQUFBRjhnQUFBQU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUJNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8vLy8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFLQUFBQVpBQUFBT2dEQUFBUUp3QUFvSVlCQUVCQ0R3Q0FscGdBQU9IMUJWOXdp''@;'; + put 'put ''UUQvQ1M4UGRBQUFBUDFYQWdCdUFBQUEvMWNDQUhJQUFBQUJXQUlBWmdBQUFBTllBZ0JoQUFBQUJWZ0NBR1VBQUFBSFdBSUFkd0FBQUFsWUFnQlhBQUFBRmxnQ0FITUFBQUFrV0FJQVV3QUFBREJZQWdCa0FBQUFQVmdDQUVRQUFBQkpXQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQVFBR3dBYkFD''@;'; + put 'put ''QUFJQUFqQUNFQUNnQUNBQllBQ1FBaEFDRUFJUUFWQUJ3QUFRQVVBQlFBRkFBVUFCUUFGQUFVQUFnQUJBQUZBQnNBQWdBWEFCc0FJQUFmQUI0QUhRQUpBQk1BQUFBVkFCSUFGUUFEQUFjQUZRQVZBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUlBQVFBQlFBRkFBWUFHd0FhQUJnQUdRQWdBQWNBRlFB''@;'; + put 'put ''VUFCUUFGQUFVQUJRQUZBQUxBQlFBRFFBVUFBd0FGQUFVQUJRQURnQVVBQlFBRkFBUUFCUUFEd0FVQUJFQUFBQUFBQUFBcmdBdUFDOEFNd0ExQURBQU53Q3FBTnNBMndEYkFOc0FBQUE5QUljQU53QTNBTnNBMndBQUFDZ0FOUUF1QURJQUx3QmlBQUFBQUFCSEFBQUFBQURiQUZFQUFBRGJBTnNB''@;'; + put 'put ''MndBQUFOc0FoQUJWQU5zQWdnRGJBQUFBZ1FEYkFBQUFQZ0JDQUVFQVNBQkVBRklBV3dBQUFBQUFYZ0JmQU5zQUFBRGJBTnNBMndBQUFBQUFld0JKQUZjQVVnQmFBRm9BWFFBQUFGOEFBQUJmQUFBQVpRQmRBRjhBQUFCZEFHNEFhZ0FBQUdrQUFBQnVBQUFBMndDVEFKb0FvUUNvQUtzQWNBQ3hB''@;'; + put 'put ''TGdBdndER0FNMEEwd0FBQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQU1BQkFBSEFBTUFCQUFGQUFVQUJn''@;'; + put 'put ''QUdBQWdBQndBSEFCRUFGZ0FTQUJFQUVnQUlBQWdBRHdBUEFCY0FEd0FZQUE4QUdRQWFBQm9BSGdBV0FEUUFIZ0FGQURJQUJnQWlBQ0lBTXdBWEFCZ0FOUUFaQUJvQUdnQXFBRFlBS2dBMEFEY0FNZ0JGQURzQVBBQXpBRHNBUEFCR0FEVUFSd0JJQUV3QU5nQWlBRWtBU2dBM0FFVUFUZ0JRQUdJ''@;'; + put 'put ''QVVRQlNBRlFBUmdCSEFGVUFTQUJNQUZZQVNRQktBRmdBV2dCT0FFUUFVQUJSQUZJQVZBQTRBQzhBTEFCVkFDa0FWZ0FiQUJBQVdBQmFBRjBBWFFCZEFGMEFYUUJkQUYwQVhnQmVBRjRBWGdCZUFGNEFYZ0JmQUY4QVh3QmZBRjhBWHdCZkFHQUFDUUJnQUdBQVlBQmdBR0FBWVFCaEFHTUFBZ0Jq''@;'; + put 'put ''QUdNQVl3QmpBR01BWkFBQUFHUUFBQUJrQUdRQVpBQmxBQUFBWlFCbEFHVUFaUUJsQUdZQVpnQUFBR1lBWmdCbUFHWUFad0FBQUdjQVp3Qm5BR2NBYUFBQUFHZ0FhQUJvQUdnQWFBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FY''@;'; + put 'put ''QUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FBQUFYQUFCQUYwQVhRQmVBRjRBWHdCZkFGd0FYQUJjQUZ3QVhBQmdBRndBWEFCY0FHRUFYQUJjQUdJQVlnQmlBR0lBWWdCaUFHSUFZd0JrQUdVQVpnQm1BRndBWEFCbkFG''@;'; + put 'put ''d0FYQUJjQUdBQVhBQmNBR0VBWEFCaEFGd0FhQUJoQUZ3QVlnQmlBR0lBWWdCaUFHSUFZZ0JpQUdNQVpBQmxBR1VBWEFCbUFGd0FYQUJjQUdjQWFBQmhBR0lBWWdCaUFHSUFZZ0JpQUdJQVlnQmlBR0lBWWdCaUFHSUFZZ0JpQUdJQVlnQmlBR0lBWWdCaUFHSUFZZ0FBQUZ3QVhBQmNBRndBWEFC''@;'; + put 'put ''Y0FGd0FYQUJjQUZ3QVhBQmNBQUFBQ2dBTEFBd0FEUUFPQUFvQUR3QVFBQkVBRWdBVEFBb0FGQUFWQUJVQUZRQVdBQmNBRlFBWUFCVUFGUUFaQUJVQUZRQVZBQm9BRlFBVkFBb0FGUUFWQUJVQUZnQVhBQmdBRlFBVkFCa0FGUUFWQUJVQUdnQVZBQlVBRlFBVkFCc0FEQUFNQUNRQUhnQWVBQ0FB''@;'; + put 'put ''SVFBZ0FDRUFKQUFsQUNZQUxRQXlBQzhBTGdBcUFDVUFKZ0FvQUNrQU13QXFBRFFBS3dBMUFEWUFOd0E4QURJQVJ3QTlBQ0lBUlFBaUFEOEFRQUJHQURNQU5BQklBRFVBTmdBM0FDOEFTUUFxQUVjQVNnQkZBRXdBWEFBOEFFWUFYQUE5QUUwQVNBQk9BRThBVWdCSkFFRUFVQUJSQUVvQVRBQlRB''@;'; + put 'put ''RlFBTVFCVkFGWUFWd0JOQUU0QVdBQlBBRklBV1FCUUFGRUFXZ0JiQUZNQVJBQlVBRlVBVmdCWEFFc0FSQUFzQUZnQUxBQlpBRGdBTEFCYUFGc0FIUUFkQUIwQUhRQWRBQjBBSFFBZkFCOEFId0FmQUI4QUh3QWZBQ01BSXdBakFDTUFJd0FqQUNNQUp3QmNBQ2NBSndBbkFDY0FKd0F3QURBQU9R''@;'; + put 'put ''QWNBRGtBT1FBNUFEa0FPUUE2QUZ3QU9nQmNBRG9BT2dBNkFEc0FYQUE3QURzQU93QTdBRHNBUGdBK0FGd0FQZ0ErQUQ0QVBnQkNBRndBUWdCQ0FFSUFRZ0JEQUZ3QVF3QkRBRU1BUXdCREFBa0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3''@;'; + put 'put ''QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QUNBQ3UvOUVBQ2dDdS82Ny9Dd0N1LzY3L3J2K3UvNjcvcnYrdS82Ny9CUURSQUs3LzBRRFJBTkVBMFFEUkFORUEwUURSQUs3LysvK3UvdzRBN1ArdS82Ny9ydit1''@;'; + put 'put ''LzlFQTBRRFJBTkVBMFFBTkFDVUFEQUJDQUJBQVVBQVRBRzBBZXdBVUFKZ0FEd0NtQU1NQXJ2K3UvNjcvcnYrdS82Ny9ydit1LzY3L3J2K3UvNjcvcnYrdS82Ny9ydit1LzY3L3J2K3UvNjcvcnYrdS82Ny9Gd0N1LzNjQXJ2OEhBQzRBcnY4bUFLNy9Gd0FSQUNNQXJ2OE5BSzcvcnYrdS82Ny9P''@;'; + put 'put ''Z0N1LzY3L05RQ3UvNjcvcnY4b0FLNy9Cd0N1L3pzQVJRQ3UvMGdBcnYrdS82Ny9ydit1LzY3L3J2LzgvK2dBOXYvLy94b0FBQUFuQUFFQU1nQ3UvNjcvQWdBa0FBTUFMd0N1LzY3L3J2K3UvNjcvL3YrVUFLNy9DUUFiQUs3L3ZQK3UvNjcvci8rdS82Ny9ydit1LzY3L3J2K3Uvd0FBQUFBQUFH''@;'; + put 'put ''M203TjRGQUFzQVNRQXhBVk1BZndFd0FXa0FlQUgvQUlFQlV3S0NBWU1CaEFHRkFZWUJWQUtIQVlnQmlRRldBb29CVndLTEFZd0JqZ0hkQVk4QldRS1FBVnNDa1FHU0FaTUJZQUtVQVdNQ2xnRnBBcGNCYUFLWUFaa0JuQUZ2QXAwQmNnS2ZBWFVDcGdHQUFxY0JxQUdwQVlNQ3JBR3RBYTRCaUFL''@;'; + put 'put ''dkFiQUJzUUdLQXJJQml3SzNBWklDdUFHNUFid0J2UUhFQWNZQnhBSEZBY1VCeGdISEFja0J4d0hJQWNnQnlRSEtBY3dCeWdITEFjc0J6QUh4QWZNQjhRSHlBZklCOHdIMEFmVUI5Z0dWQWZjQnZ3RWdBcDRCaGdPc0E0Z0RyUU9KQTY0RGlnT3ZBNHdEekFPT0E4MERqd1BPQTVrRFJRT1pBNzRm''@;'; + put 'put ''b3dQQ0EvY0QrQVA2QS9zRFlCNmJIcDRlM3dCWkgxRWZXeDlUSDEwZlZSOWZIMWNmdkIrekg4d2Z3eC9zSCtVZi9CL3pIem9DWlN3N0Fqd0NQUUthQVQ0Q1ppeEJBa0lDUXdLQUFVUUNpUUpGQW93QzlBTzRBL2tEOGdQOUEzc0QvZ044QS84RGZRUEFCTThFSmlISkF5b2hhd0FySWVVQU1pRk9J''@;'; + put 'put ''WU1oaENGZ0xHRXNZaXhyQW1Nc2ZSMWtMSDBDYlN4UkFtNHNjUUp2TEZBQ2NDeFNBbklzY3l4MUxIWXNmaXcvQW44c1FBTHlMUE1zZmFkNUhZdW5qS2VOcDJVQ3FxZG1Bc2NRSnkzTkVDMHRkZ04zQTV3RHRRQ1NBOUFEbUFQUkE2WUQxUU9nQTlZRG1nUHdBNkVEOFFPVkEvVUR6d1BYQXdBQUFB''@;'; + put 'put ''QkJBQ0Fhd0FBZ0h3QUJBUzh5QVFFRk9RRUJEMG9CQVMxNUFRRUZjQU1CQTVFRElCR2pBeUFKQUFSUUVCQUVJQ0JnQkFFaGlnUUJOY0VFQVEzUUJBRS9GQVVCRXpFRk1DYWdBUUVGc3dFQkE4MEJBUS9lQVFFUitBRUJKeUlDQVJIWUF3RVhBQjRCbGFBZUFWOElIL2dJR0IvNEJpZ2YrQWc0SC9n''@;'; + put 'put ''SVNCLzRCbWdmK0FpSUgvZ0ltQi80Q0tnZitBaTRIL2dDdWgrMkFzZ2ZxZ1RZSC9nQzJoK2NBdWdmK0FMcUg1QUMrQitBQXZvZmdnSkdBZ0VKRUFVQkEyQWhFQkFBTERBdlp5d0JCWUFzQVdQckxBRURRS1lCTFlDbUFSY2lwd0VOTXFjQlBYbW5BUU4rcHdFSmtLY0JBNkNuQVFraC95QWFBQUFB''@;'; + put 'put ''QUhzZ2RtRnlJSEJoZEdnZ1BTQlFiMmx1ZEdWeVgzTjBjbWx1WjJsbWVTZ2tNQ2s3SUhaaGNpQmtZWFJoSUQwZ1VHOXBiblJsY2w5emRISnBibWRwWm5rb0pERXBPeUJHVXk1amNtVmhkR1ZRWVhSb0tDSXZJaXdnVUVGVVNDNWthWEp1WVcxbEtIQmhkR2dwS1RzZ1JsTXVkM0pwZEdWR2FXeGxL''@;'; + put 'put ''RkJCVkVndWFtOXBiaWdpTHlJc0lIQmhkR2dwTENCa1lYUmhLVHNnZlFCamIzSmxBSGhrYjNSMlpYSnphVzl1QURFdU53QXhMalFBTVM0eUFGOXNaSEpoZDE4QVgyaGtjbUYzWHdCZmRHUnlZWGRmQUY5b2JHUnlZWGRmQUY5MGJHUnlZWGRmQUhoa2IzUWdkbVZ5YzJsdmJpQWlKWE1pSUhSdmJ5''@;'; + put 'put ''QnNiMjVuQUNBbFpDQUFKUzR3TW1ZQUpYTWxaQ0F0QUNNbE1ESjRKVEF5ZUNVd01uZ2xNREo0QUhObGRHeHBibVYzYVdSMGFDZ0FKUzR6WmdCVElBQkRJQUF5SUFCRklBQmxJQUJHSUFCMElDVjFJQUJVSUFCa2IzUTZaRzkwQUdkMk9tUnZkQUJqWVc1dmJqcGtiM1FBY0d4aGFXNDZaRzkwQUhC''@;'; + put 'put ''c1lXbHVMV1Y0ZERwa2IzUUFlR1J2ZERwNFpHOTBBSGhrYjNReExqSTZlR1J2ZEFCNFpHOTBNUzQwT25oa2IzUUFTU0FBSWw5emRXSm5jbUZ3YUY5amJuUWlPaUFsWkFBaVgyZDJhV1FpT2lBbFpBQWlaV1JuWlhNaU9pQmJDZ0FpWDJkMmFXUWlPaUFsWkN3S0FDSjBZV2xzSWpvZ0pXUXNDZ0Fp''@;'; + put 'put ''YUdWaFpDSTZJQ1ZrQUNKdlltcGxZM1J6SWpvZ1d3b0FJbTV2WkdWeklqb2dXd29BSW01aGJXVWlPaUFpSlhNaUFGd2lBRnd2QUZ4aUFGeG1BRnh1QUZ4eUFGeDBBQ0p6ZFdKbmNtRndhSE1pT2lCYkNnQWlKWE1pT2lBQUlpVnpJZ0JEYjNWc1pDQnViM1FnY0dGeWMyVWdlR1J2ZENBaUpYTWlD''@;'; + put 'put ''Z0JiQ2dBaWIzQWlPaUFpSldNaUxBb0FJbkpsWTNRaU9pQmJKUzR3TTJZc0pTNHdNMllzSlM0d00yWXNKUzR3TTJaZENnQWliM0FpT2lBaVRDSXNDZ0FpYjNBaU9pQWlWQ0lzQ2dBaWNIUWlPaUJiSlM0d00yWXNKUzR3TTJaZExBb0FJbUZzYVdkdUlqb2dJaVZqSWl3S0FDSjNhV1IwYUNJNklD''@;'; + put 'put ''VXVNRE5tTEFvQUluUmxlSFFpT2lBaUpYTWlDZ0FpWjNKaFpDSTZJQ0p1YjI1bElpd0tBQ0pqYjJ4dmNpSTZJQ0lsY3lJS0FDSm5jbUZrSWpvZ0lteHBibVZoY2lJc0NnQWlaM0poWkNJNklDSnlZV1JwWVd3aUxBb0FJbTl3SWpvZ0lrWWlMQW9BSW5OcGVtVWlPaUFsTGpBelppd0tBQ0ptWVdO''@;'; + put 'put ''bElqb2dJaVZ6SWdvQUltOXdJam9nSWxNaUxBb0FJbk4wZVd4bElqb2dJaVZ6SWdvQUltOXdJam9nSW5RaUxBb0FJbVp2Ym5SamFHRnlJam9nSldRS0FDSndNQ0k2SUZzbExqQXpaaXdsTGpBelppd2xMakF6Wmwwc0NnQWljREVpT2lCYkpTNHdNMllzSlM0d00yWXNKUzR3TTJaZExBb0FJbk4w''@;'; + put 'put ''YjNCeklqb2dXd0I3SW1aeVlXTWlPaUFsTGpBelppd2dJbU52Ykc5eUlqb2dJaVZ6SW4wQVhRb0FJbkF3SWpvZ1d5VXVNRE5tTENVdU1ETm1YU3dLQUNKd01TSTZJRnNsTGpBelppd2xMakF6Wmwwc0NnQWljRzlwYm5Seklqb2dXd0JiSlM0d00yWXNKUzR3TTJaZEFHUnlZWGRmQUd4a2NtRjNY''@;'; + put 'put ''d0JvWkhKaGQxOEFkR1J5WVhkZkFHaHNaSEpoZDE4QWRHeGtjbUYzWHdBaVpHbHlaV04wWldRaU9pQWxjeXdLQUNKemRISnBZM1FpT2lBbGN3QkVkWEJzYVdOaGRHVWdZMngxYzNSbGNpQnVZVzFsSUNJbGN5SUtBSGhrYjNRQWFuTnZiZ0JxYzI5dU1BQmtiM1JmYW5OdmJnQjRaRzkwWDJwemIy''@;'; + put 'put ''NEFhbk52YmpwcWMyOXVBR3B6YjI0d09tcHpiMjRBWkc5MFgycHpiMjQ2YW5OdmJnQjRaRzkwWDJwemIyNDZhbk52YmdCdUlENDlJRFFBWjNaeVpXNWtaWEpmWTI5eVpWOW1hV2N1WXdCbWFXZGZZbVY2YVdWeUFHWnBaMTl5WlhOdmJIWmxYMk52Ykc5eUFHWnBad0JtYVdjNlptbG5BRzFoY0FC''@;'; + put 'put ''eVpXTjBJQ1Z6SUNWa0xDVmtJQ1ZrTENWa0NnQmphWEpqYkdVZ0pYTWdKV1FzSldRc0pXUUtBSEJ2YkhrZ0pYTUFJQ1ZrTENWa0FHZDJjbVZ1WkdWeVgyTnZjbVZmYldGd0xtTUFiV0Z3WDI5MWRIQjFkRjl6YUdGd1pRQnlaV04wWVc1bmJHVWdLQ1ZrTENWa0tTQW9KV1FzSldRcElDVnpJQ1Z6''@;'; + put 'put ''Q2dBOFlYSmxZU0J6YUdGd1pUMGlZMmx5WTJ4bElnQThZWEpsWVNCemFHRndaVDBpY21WamRDSUFQR0Z5WldFZ2MyaGhjR1U5SW5CdmJIa2lBQ0JvY21WbVBTSUFJSFJwZEd4bFBTSUFJR0ZzZEQwaUlnQWdZMjl2Y21SelBTSUFKV1FzSldRc0pXUUFKV1FzSldRc0pXUXNKV1FBSldRc0pXUUFM''@;'; + put 'put ''Q1ZrTENWa0FDSStDZ0E4TDIxaGNENEtBR0poYzJVZ2NtVm1aWEpsY2dvQVpHVm1ZWFZzZENBQVBHMWhjQ0JwWkQwaUFDSWdibUZ0WlQwaUFHbHpiV0Z3T20xaGNBQmpiV0Z3T20xaGNBQnBiV0Z3T20xaGNBQmpiV0Z3ZURwdFlYQUFhVzFoY0Y5dWNEcHRZWEFBWTIxaGNIaGZibkE2YldGd0FD''@;'; + put 'put ''TWdKWE1LQUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNVdU1XWWdKV1FnSldRZ0pXUWdKV1FnSldRZ0pXUUtBQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1V1TVdZZ0pXUWdKV1FnSldRZ0pXUUtBQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNW''@;'; + put 'put ''a0lDVmtJQ1V1TTJZZ0pXUWdKUzQwWmlBbFpDQWxaQ0FsWkNBbFpDQWxaQ0FsWkNBbFpDQWxaQW9BSldRZ0pXUWdJeVV3TW5nbE1ESjRKVEF5ZUFvQVozWnlaVzVrWlhKZlkyOXlaVjl0Y0M1akFHMXdYM0psYzI5c2RtVmZZMjlzYjNJQUpXUWdKV1FnSldRZ0pXUWdKV1FnSldRZ0pTNHhaaUFs''@;'; + put 'put ''TGpSbUlDVmtJQ1V1TVdZZ0pTNHhaaUFsWkNBbFpDQWxjMXd3TURFS0FDTWdaVzVrSUc5bUlFWkpSeUJtYVd4bENnQWpSa2xISURNdU1nb0FJeUJIWlc1bGNtRjBaV1FnWW5rZ0pYTWdkbVZ5YzJsdmJpQWxjeUFvSlhNcENnQWpJRlJwZEd4bE9pQWxjd29BSXlCUVlXZGxjem9nSldRS0FGQnZj''@;'; + put 'put ''blJ5WVdsMENnQkRaVzUwWlhJS0FFbHVZMmhsY3dvQVRHVjBkR1Z5Q2dBeE1EQXVNREFLQUZOcGJtZHNaUW9BTFRJS0FERXlNREFBSURJS0FHMXdBRzF3T20xd0FDQmRJQ0FsWkNCMGNuVmxJQ1Z6Q2dBZ1hTQWdKV1FnWm1Gc2MyVWdKWE1LQUNCelpYUnNhVzVsZDJsa2RHZ0tBQ1Z6SUFCelpY''@;'; + put 'put ''Um9jMklBSlM0MVp5QWxMalZuSUNVdU5XY2dKWE5qYjJ4dmNnb0FKU0FBYm1WM2NHRjBhQ0FBSUcxdmRtVjBid29BSUd4cGJtVjBid29BYzNSeWIydGxDZ0FnWTNWeWRtVjBid29BWTJ4dmMyVndZWFJvSUdacGJHd0tBR05zYjNObGNHRjBhQ0J6ZEhKdmEyVUtBQ0JsYkd4cGNITmxYM0JoZEdn''@;'; + put 'put ''Z1ptbHNiQW9BSUdWc2JHbHdjMlZmY0dGMGFDQnpkSEp2YTJVS0FDQXZKWE1nYzJWMFgyWnZiblFLQUNCdGIzWmxkRzhnQUNBbGN5QmhiR2xuYm1Wa2RHVjRkQW9BV3lBdlVtVmpkQ0JiSUFBZ1hRb0FJQ0F2UW05eVpHVnlJRnNnTUNBd0lEQWdYUW9nSUM5QlkzUnBiMjRnUER3Z0wxTjFZblI1''@;'; + put 'put ''Y0dVZ0wxVlNTU0F2VlZKSklDVnpJRDQrQ2lBZ0wxTjFZblI1Y0dVZ0wweHBibXNLTDBGT1RpQndaR1p0WVhKckNnQm5jMkYyWlFvQUpTVWdKWE1LQURBZ01DQXdJR1ZrWjJWamIyeHZjZ29BWlc1a2NHRm5aUXB6YUc5M2NHRm5aUXBuY21WemRHOXlaUW9BSlNWUVlXZGxWSEpoYVd4bGNnb0FK''@;'; + put 'put ''U1VsSlVWdVpGQmhaMlU2SUNWa0NnQWxKU1VsVUdGblpUb2dKV1FnSldRS0FDVWxKU1ZRWVdkbFFtOTFibVJwYm1kQ2IzZzZJQ1ZrSUNWa0lDVmtJQ1ZrQ2dCTVlXNWtjMk5oY0dVQVVHOXlkSEpoYVhRQUpTVWxKVkJoWjJWUGNtbGxiblJoZEdsdmJqb2dKWE1LQUR3OElDOVFZV2RsVTJsNlpT''@;'; + put 'put ''QmJKV1FnSldSZElENCtJSE5sZEhCaFoyVmtaWFpwWTJVS0FDVmtJQ1ZrSUNWa0lHSmxaMmx1Y0dGblpRb0FaM05oZG1VS0pXUWdKV1FnSldRZ0pXUWdZbTk0Y0hKcGJTQmpiR2x3SUc1bGQzQmhkR2dLQUNWbklDVm5JSE5sZEY5elkyRnNaU0FsWkNCeWIzUmhkR1VnSldjZ0pXY2dkSEpoYm5O''@;'; + put 'put ''c1lYUmxDZ0JqWVc1MllYTWdjMmw2WlNBb0pXUXNKV1FwSUdWNFkyVmxaSE1nVUVSR0lHeHBiV2wwSUNnbFpDa0tDU2h6ZFdkblpYTjBJSE5sZEhScGJtY2dZU0JpYjNWdVpHbHVaeUJpYjNnZ2MybDZaU3dnYzJWbElHUnZkQ2d4S1NrS0FGc2dMME55YjNCQ2IzZ2dXeVZrSUNWa0lDVmtJQ1Zr''@;'; + put 'put ''WFNBdlVFRkhSVk1nY0dSbWJXRnlhd29BSldRZ0pXUWdjMlYwYkdGNVpYSUtBQ1VsSlNWVWFYUnNaVG9nSlhNS0FDVWxVR0ZuWlhNNklDaGhkR1Z1WkNrS0FDVWxVR0ZuWlhNNklERUtBQ1VsUW05MWJtUnBibWRDYjNnNklDaGhkR1Z1WkNrS0FDVWxKU1ZDYjNWdVpHbHVaMEp2ZURvZ0pXUWdK''@;'; + put 'put ''V1FnSldRZ0pXUUtBQ1VsUlc1a1EyOXRiV1Z1ZEhNS2MyRjJaUW9BYzJWMGRYQk1ZWFJwYmpFS0FGc2dlME5oZEdGc2IyZDlJRHc4SUM5VlVra2dQRHdnTDBKaGMyVWdKWE1nUGo0Z1BqNEtMMUJWVkNCd1pHWnRZWEpyQ2dBbEpVSmxaMmx1VUhKdmJHOW5BQzlFYjNSRWFXTjBJREl3TUNCa2FX''@;'; + put 'put ''TjBJR1JsWmdCRWIzUkVhV04wSUdKbFoybHVBQzl6WlhSMWNFeGhkR2x1TVNCN0FHMWhjbXNBTDBWdVkyOWthVzVuVm1WamRHOXlJREkxTmlCaGNuSmhlU0JrWldZQUlFVnVZMjlrYVc1blZtVmpkRzl5SURBQVNWTlBUR0YwYVc0eFJXNWpiMlJwYm1jZ01DQXlOVFVnWjJWMGFXNTBaWEoyWVd3''@;'; + put 'put ''Z2NIVjBhVzUwWlhKMllXd0FSVzVqYjJScGJtZFdaV04wYjNJZ05EVWdMMmg1Y0dobGJpQndkWFFBSlNCVFpYUWdkWEFnU1ZOUElFeGhkR2x1SURFZ1kyaGhjbUZqZEdWeUlHVnVZMjlrYVc1bkFDOXpkR0Z5Ym1WMFNWTlBJSHNBSUNBZ0lDQWdJQ0JrZFhBZ1pIVndJR1pwYm1SbWIyNTBJR1Ix''@;'; + put 'put ''Y0NCc1pXNW5kR2dnWkdsamRDQmlaV2RwYmdBZ0lDQWdJQ0FnSUhzZ01TQnBibVJsZUNBdlJrbEVJRzVsSUhzZ1pHVm1JSDE3SUhCdmNDQndiM0FnZlNCcFptVnNjMlVBSUNBZ0lDQWdJQ0I5SUdadmNtRnNiQUFnSUNBZ0lDQWdJQzlGYm1OdlpHbHVaeUJGYm1OdlpHbHVaMVpsWTNSdmNpQmta''@;'; + put 'put ''V1lBSUNBZ0lDQWdJQ0JqZFhKeVpXNTBaR2xqZENCbGJtUWdaR1ZtYVc1bFptOXVkQUI5SUdSbFpnQXZWR2x0WlhNdFVtOXRZVzRnYzNSaGNtNWxkRWxUVHlCa1pXWUFMMVJwYldWekxVbDBZV3hwWXlCemRHRnlibVYwU1ZOUElHUmxaZ0F2VkdsdFpYTXRRbTlzWkNCemRHRnlibVYwU1ZOUElH''@;'; + put 'put ''UmxaZ0F2VkdsdFpYTXRRbTlzWkVsMFlXeHBZeUJ6ZEdGeWJtVjBTVk5QSUdSbFpnQXZTR1ZzZG1WMGFXTmhJSE4wWVhKdVpYUkpVMDhnWkdWbUFDOUlaV3gyWlhScFkyRXRUMkpzYVhGMVpTQnpkR0Z5Ym1WMFNWTlBJR1JsWmdBdlNHVnNkbVYwYVdOaExVSnZiR1FnYzNSaGNtNWxkRWxUVHlC''@;'; + put 'put ''a1pXWUFMMGhsYkhabGRHbGpZUzFDYjJ4a1QySnNhWEYxWlNCemRHRnlibVYwU1ZOUElHUmxaZ0F2UTI5MWNtbGxjaUJ6ZEdGeWJtVjBTVk5QSUdSbFpnQXZRMjkxY21sbGNpMVBZbXhwY1hWbElITjBZWEp1WlhSSlUwOGdaR1ZtQUM5RGIzVnlhV1Z5TFVKdmJHUWdjM1JoY201bGRFbFRUeUJr''@;'; + put 'put ''WldZQUwwTnZkWEpwWlhJdFFtOXNaRTlpYkdseGRXVWdjM1JoY201bGRFbFRUeUJrWldZQVkyeGxZWEowYjIxaGNtc0FmU0JpYVc1a0lHUmxaZ0FsSlVKbFoybHVVbVZ6YjNWeVkyVTZJSEJ5YjJOelpYUWdaM0poY0doMmFYb2dNQ0F3QUM5amIyOXlaQzFtYjI1MExXWmhiV2xzZVNBdlZHbHRa''@;'; + put 'put ''WE10VW05dFlXNGdaR1ZtQUM5a1pXWmhkV3gwTFdadmJuUXRabUZ0YVd4NUlDOVVhVzFsY3kxU2IyMWhiaUJrWldZQUwyTnZiM0prWm05dWRDQmpiMjl5WkMxbWIyNTBMV1poYldsc2VTQm1hVzVrWm05dWRDQTRJSE5qWVd4bFptOXVkQ0JrWldZQUwwbHVkbE5qWVd4bFJtRmpkRzl5SURFdU1D''@;'; + put 'put ''QmtaV1lBTDNObGRGOXpZMkZzWlNCN0FDQWdJQ0FnSUNCa2RYQWdNU0JsZUdOb0lHUnBkaUF2U1c1MlUyTmhiR1ZHWVdOMGIzSWdaWGhqYUNCa1pXWUFJQ0FnSUNBZ0lITmpZV3hsQUNVZ2MzUjViR1Z6QUM5emIyeHBaQ0I3SUZ0ZElEQWdjMlYwWkdGemFDQjlJR0pwYm1RZ1pHVm1BQzlrWVhO''@;'; + put 'put ''b1pXUWdleUJiT1NCSmJuWlRZMkZzWlVaaFkzUnZjaUJ0ZFd3Z1pIVndJRjBnTUNCelpYUmtZWE5vSUgwZ1ltbHVaQ0JrWldZQUwyUnZkSFJsWkNCN0lGc3hJRWx1ZGxOallXeGxSbUZqZEc5eUlHMTFiQ0EySUVsdWRsTmpZV3hsUm1GamRHOXlJRzExYkYwZ01DQnpaWFJrWVhOb0lIMGdZbWx1''@;'; + put 'put ''WkNCa1pXWUFMMmx1ZG1seklIc3ZabWxzYkNCN2JtVjNjR0YwYUgwZ1pHVm1JQzl6ZEhKdmEyVWdlMjVsZDNCaGRHaDlJR1JsWmlBdmMyaHZkeUI3Y0c5d0lHNWxkM0JoZEdoOUlHUmxabjBnWW1sdVpDQmtaV1lBTDJKdmJHUWdleUF5SUhObGRHeHBibVYzYVdSMGFDQjlJR0pwYm1RZ1pHVm1B''@;'; + put 'put ''QzltYVd4c1pXUWdleUI5SUdKcGJtUWdaR1ZtQUM5MWJtWnBiR3hsWkNCN0lIMGdZbWx1WkNCa1pXWUFMM0p2ZFc1a1pXUWdleUI5SUdKcGJtUWdaR1ZtQUM5a2FXRm5iMjVoYkhNZ2V5QjlJR0pwYm1RZ1pHVm1BQzkwWVhCbGNtVmtJSHNnZlNCaWFXNWtJR1JsWmdBbElHaHZiMnR6SUdadmNp''@;'; + put 'put ''QnpaWFIwYVc1bklHTnZiRzl5SUFBdmJtOWtaV052Ykc5eUlIc2djMlYwYUhOaVkyOXNiM0lnZlNCaWFXNWtJR1JsWmdBdlpXUm5aV052Ykc5eUlIc2djMlYwYUhOaVkyOXNiM0lnZlNCaWFXNWtJR1JsWmdBdlozSmhjR2hqYjJ4dmNpQjdJSE5sZEdoelltTnZiRzl5SUgwZ1ltbHVaQ0JrWldZ''@;'; + put 'put ''QUwyNXZjR052Ykc5eUlIdHdiM0FnY0c5d0lIQnZjSDBnWW1sdVpDQmtaV1lBTDJKbFoybHVjR0ZuWlNCN0NTVWdhU0JxSUc1d1lXZGxjd0FKTDI1d1lXZGxjeUJsZUdOb0lHUmxaZ0FKTDJvZ1pYaGphQ0JrWldZQUNTOXBJR1Y0WTJnZ1pHVm1BQWt2YzNSeUlERXdJSE4wY21sdVp5QmtaV1lB''@;'; + put 'put ''Q1c1d1lXZGxjeUF4SUdkMElIc0FDUWxuYzJGMlpRQUpDUWxqYjI5eVpHWnZiblFnYzJWMFptOXVkQUFKQ1Frd0lEQWdiVzkyWlhSdkFBa0pDU2hjS0NrZ2MyaHZkeUJwSUhOMGNpQmpkbk1nYzJodmR5QW9MQ2tnYzJodmR5QnFJSE4wY2lCamRuTWdjMmh2ZHlBb1hDa3BJSE5vYjNjQUNRbG5j''@;'; + put 'put ''bVZ6ZEc5eVpRQUpmU0JwWmdBdmMyVjBYMlp2Ym5RZ2V3QUpabWx1WkdadmJuUWdaWGhqYUFBSmMyTmhiR1ZtYjI1MElITmxkR1p2Ym5RQUpTQmtjbUYzSUhSbGVIUWdabWwwZEdWa0lIUnZJR2wwY3lCbGVIQmxZM1JsWkNCM2FXUjBhQUF2WVd4cFoyNWxaSFJsZUhRZ2V3a0pDU1VnZDJsa2RH''@;'; + put 'put ''Z2dkR1Y0ZEFBSkwzUmxlSFFnWlhoamFDQmtaV1lBQ1M5M2FXUjBhQ0JsZUdOb0lHUmxaZ0FKWjNOaGRtVUFDUWwzYVdSMGFDQXdJR2QwSUhzQUNRa0pXMTBnTUNCelpYUmtZWE5vQUFrSkNYUmxlSFFnYzNSeWFXNW5kMmxrZEdnZ2NHOXdJSGRwWkhSb0lHVjRZMmdnYzNWaUlIUmxlSFFnYkdW''@;'; + put 'put ''dVozUm9JR1JwZGlBd0lIUmxlSFFnWVhOb2IzY0FDUWw5SUdsbUFBbG5jbVZ6ZEc5eVpRQXZZbTk0Y0hKcGJTQjdDUWtKQ1NVZ2VHTnZjbTVsY2lCNVkyOXlibVZ5SUhoemFYcGxJSGx6YVhwbEFBa0pOQ0F5SUhKdmJHd0FDUWx0YjNabGRHOEFDUWt5SUdOdmNIa0FDUWxsZUdOb0lEQWdjbXhw''@;'; + put 'put ''Ym1WMGJ3QUpDVEFnWlhoamFDQnliR2x1WlhSdkFBa0pjRzl3SUc1bFp5QXdJSEpzYVc1bGRHOEFDUWxqYkc5elpYQmhkR2dBTDJWc2JHbHdjMlZmY0dGMGFDQjdBQWt2Y25rZ1pYaGphQ0JrWldZQUNTOXllQ0JsZUdOb0lHUmxaZ0FKTDNrZ1pYaGphQ0JrWldZQUNTOTRJR1Y0WTJnZ1pHVm1B''@;'; + put 'put ''QWx0WVhSeWFYZ2dZM1Z5Y21WdWRHMWhkSEpwZUFBSmJtVjNjR0YwYUFBSmVDQjVJSFJ5WVc1emJHRjBaUUFKY25nZ2Nua2djMk5oYkdVQUNUQWdNQ0F4SURBZ016WXdJR0Z5WXdBSmMyVjBiV0YwY21sNEFDOWxibVJ3WVdkbElIc2djMmh2ZDNCaFoyVWdmU0JpYVc1a0lHUmxaZ0F2YzJodmQz''@;'; + put 'put ''QmhaMlVnZXlCOUlHUmxaZ0F2YkdGNVpYSmpiMnh2Y25ObGNRQUpXd2tsSUd4aGVXVnlJR052Ykc5eUlITmxjWFZsYm1ObElDMGdaR0Z5YTJWemRDQjBieUJzYVdkb2RHVnpkQUFKQ1Zzd0lEQWdNRjBBQ1FsYkxqSWdMamdnTGpoZEFBa0pXeTQwSUM0NElDNDRYUUFKQ1ZzdU5pQXVPQ0F1T0Yw''@;'; + put 'put ''QUNRbGJMamdnTGpnZ0xqaGRBQWxkQUdSbFpnQXZiR0Y1WlhKc1pXNGdiR0Y1WlhKamIyeHZjbk5sY1NCc1pXNW5kR2dnWkdWbUFDOXpaWFJzWVhsbGNpQjdMMjFoZUd4aGVXVnlJR1Y0WTJnZ1pHVm1JQzlqZFhKc1lYbGxjaUJsZUdOb0lHUmxaZ0FKYkdGNVpYSmpiMnh2Y25ObGNTQmpkWEpz''@;'; + put 'put ''WVhsbGNpQXhJSE4xWWlCc1lYbGxjbXhsYmlCdGIyUWdaMlYwQUFsaGJHOWhaQ0J3YjNBZ2MyVjBhSE5pWTI5c2IzSUFDUzl1YjJSbFkyOXNiM0lnZTI1dmNHTnZiRzl5ZlNCa1pXWUFDUzlsWkdkbFkyOXNiM0lnZTI1dmNHTnZiRzl5ZlNCa1pXWUFDUzluY21Gd2FHTnZiRzl5SUh0dWIzQmpi''@;'; + put 'put ''Mnh2Y24wZ1pHVm1BQzl2Ym14aGVXVnlJSHNnWTNWeWJHRjVaWElnYm1VZ2UybHVkbWx6ZlNCcFppQjlJR1JsWmdBdmIyNXNZWGxsY25NZ2V3QUpMMjE1ZFhCd1pYSWdaWGhqYUNCa1pXWUFDUzl0ZVd4dmQyVnlJR1Y0WTJnZ1pHVm1BQWxqZFhKc1lYbGxjaUJ0ZVd4dmQyVnlJR3gwQUFsamRY''@;'; + put 'put ''SnNZWGxsY2lCdGVYVndjR1Z5SUdkMEFBbHZjZ0FKZTJsdWRtbHpmU0JwWmdBdlkzVnliR0Y1WlhJZ01DQmtaV1lBSlNWRmJtUlNaWE52ZFhKalpRQWxKVVZ1WkZCeWIyeHZad0FsSlVKbFoybHVVMlYwZFhBQU1UUWdaR1ZtWVhWc2RDMW1iMjUwTFdaaGJXbHNlU0J6WlhSZlptOXVkQUFsSUM5''@;'; + put 'put ''aGNuSnZkMnhsYm1kMGFDQXhNQ0JrWldZQUpTQXZZWEp5YjNkM2FXUjBhQ0ExSUdSbFpnQWxJRzFoYTJVZ2MzVnlaU0J3WkdadFlYSnJJR2x6SUdoaGNtMXNaWE56SUdadmNpQlFVeTFwYm5SbGNuQnlaWFJsY25NZ2IzUm9aWElnZEdoaGJpQkVhWE4wYVd4c1pYSUFMM0JrWm0xaGNtc2dkMmhs''@;'; + put 'put ''Y21VZ2UzQnZjSDBnZTNWelpYSmthV04wSUM5d1pHWnRZWEpySUM5amJHVmhjblJ2YldGeWF5QnNiMkZrSUhCMWRIMGdhV1psYkhObEFDVWdiV0ZyWlNBblBEd25JR0Z1WkNBblBqNG5JSE5oWm1VZ2IyNGdVRk1nVEdWMlpXd2dNU0JrWlhacFkyVnpBQzlzWVc1bmRXRm5aV3hsZG1Wc0lIZG9a''@;'; + put 'put ''WEpsSUh0d2IzQWdiR0Z1WjNWaFoyVnNaWFpsYkgxN01YMGdhV1psYkhObEFESWdiSFFnZXdBZ0lDQWdkWE5sY21ScFkzUWdLRHc4S1NCamRtNGdLRnNwSUdOMmJpQnNiMkZrSUhCMWRBQWdJQ0FnZFhObGNtUnBZM1FnS0Q0K0tTQmpkbTRnS0ZzcElHTjJiaUJzYjJGa0lIQjFkQUI5SUdsbUFD''@;'; + put 'put ''VWxSVzVrVTJWMGRYQUFKU1ZVY21GcGJHVnlDZ0FsSlNVbFVHRm5aWE02SUNWa0NnQmxibVFLY21WemRHOXlaUW9BSlNWRlQwWUtBQ1VoVUZNdFFXUnZZbVV0TXk0d0FDQkZVRk5HTFRNdU1Bb0FKU1VsSlVOeVpXRjBiM0k2SUNWeklIWmxjbk5wYjI0Z0pYTWdLQ1Z6S1FvQWNITXlPbkJ6QUR3''@;'; + put 'put ''aExTMGdBRHh3YjJ4NWJHbHVaUUFnY0c5cGJuUnpQU0lBSWk4K0NnQWdabWxzYkQwaUFIVnliQ2dqYkY4bFpDa0FkWEpzS0NOeVh5VmtLUUFpSUdacGJHd3RiM0JoWTJsMGVUMGlKV1lBSWlCemRISnZhMlU5SWdBaUlITjBjbTlyWlMxM2FXUjBhRDBpQUNJZ2MzUnliMnRsTFdSaGMyaGhjbkpo''@;'; + put 'put ''ZVQwaUpYTUFOU3d5QURFc05RQWlJSE4wY205clpTMXZjR0ZqYVhSNVBTSWxaZ0JuZG5KbGJtUmxjbDlqYjNKbFgzTjJaeTVqQUhOMloxOXdjbWx1ZEY5amIyeHZjZ0E4Y0dGMGFBQWdhV1E5SWdCZmNDSWdBQ0JrUFNJQUpXTUFQR1JsWm5NK0NqeHlZV1JwWVd4SGNtRmthV1Z1ZENCcFpEMGlj''@;'; + put 'put ''bDhsWkNJZ1kzZzlJalV3SlNVaUlHTjVQU0kxTUNVbElpQnlQU0kzTlNVbElpQm1lRDBpSldRbEpTSWdabms5SWlWa0pTVWlQZ29BUEhOMGIzQWdiMlptYzJWMFBTSXdJaUJ6ZEhsc1pUMGljM1J2Y0MxamIyeHZjam9BTzNOMGIzQXRiM0JoWTJsMGVUb0FNUzRBT3lJdlBnb0FQSE4wYjNBZ2Iy''@;'; + put 'put ''Wm1jMlYwUFNJeElpQnpkSGxzWlQwaWMzUnZjQzFqYjJ4dmNqb0FPeUl2UGdvOEwzSmhaR2xoYkVkeVlXUnBaVzUwUGdvOEwyUmxabk0rQ2dBOFpHVm1jejRLUEd4cGJtVmhja2R5WVdScFpXNTBJR2xrUFNKc1h5VmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJ''@;'; + put 'put ''Z0FIZ3hQU0lBSWlCNU1UMGlBQ0lnZURJOUlnQWlJSGt5UFNJQUlpQStDZ0E4YzNSdmNDQnZabVp6WlhROUlpVXVNRE5tSWlCemRIbHNaVDBpYzNSdmNDMWpiMnh2Y2pvQU95SXZQZ284TDJ4cGJtVmhja2R5WVdScFpXNTBQZ284TDJSbFpuTStDZ0E4Y0c5c2VXZHZiZ0E4Wld4c2FYQnpaUUFn''@;'; + put 'put ''WTNnOUlnQWlJR041UFNJQUlpQnllRDBpQUNJZ2NuazlJZ0E4ZEdWNGRBQWdkR1Y0ZEMxaGJtTm9iM0k5SW5OMFlYSjBJZ0FnZEdWNGRDMWhibU5vYjNJOUltVnVaQ0lBSUhSbGVIUXRZVzVqYUc5eVBTSnRhV1JrYkdVaUFDQjRQU0lBSWlCNVBTSUFJR1p2Ym5RdFptRnRhV3g1UFNJbGN3QXNK''@;'; + put 'put ''WE1BSUdadmJuUXRkMlZwWjJoMFBTSWxjeUlBSUdadmJuUXRjM1J5WlhSamFEMGlKWE1pQUNCbWIyNTBMWE4wZVd4bFBTSWxjeUlBSUdadmJuUXRabUZ0YVd4NVBTSWxjeUlBSUdadmJuUXRkMlZwWjJoMFBTSmliMnhrSWdBZ1ptOXVkQzF6ZEhsc1pUMGlhWFJoYkdsaklnQWdkR1Y0ZEMxa1pX''@;'; + put 'put ''TnZjbUYwYVc5dVBTSUFKWE52ZG1WeWJHbHVaUUFsYzJ4cGJtVXRkR2h5YjNWbmFBQWdZbUZ6Wld4cGJtVXRjMmhwWm5ROUluTjFjR1Z5SWdBZ1ltRnpaV3hwYm1VdGMyaHBablE5SW5OMVlpSUFJR1p2Ym5RdGMybDZaVDBpSlM0eVppSUFJR1pwYkd3OUlpVnpJZ0FnWm1sc2JEMGlJeVV3TW5n''@;'; + put 'put ''bE1ESjRKVEF5ZUNJQWMzWm5YM1JsZUhSemNHRnVBRDRBUEhSbGVIUlFZWFJvSUhoc2FXNXJPbWh5WldZOUlpTWxjMTl3SWlCemRHRnlkRTltWm5ObGREMGlOVEFsSlNJK0FEeDBjM0JoYmlCNFBTSXdJaUJrZVQwaUFDSStBRHd2ZEhOd1lXNCtQQzkwWlhoMFVHRjBhRDRBUEM5MFpYaDBQZ29B''@;'; + put 'put ''UEM5blBnb0FQR2NBSUdsa1BTSmhYd0FnZUd4cGJtczZhSEpsWmowaUFDQjRiR2x1YXpwMGFYUnNaVDBpQUNCMFlYSm5aWFE5SWdBOGRHbDBiR1UrQUR3dmRHbDBiR1UrQ2dBOFp5QnBaRDBpQUY4bGN3QWlJR05zWVhOelBTSWxjd0JqYkdGemN3QWdkSEpoYm5ObWIzSnRQU0p6WTJGc1pTZ0FL''@;'; + put 'put ''U0J5YjNSaGRHVW9KV1FwSUhSeVlXNXpiR0YwWlNnQUtTSStDZ0E4TDNOMlp6NEtBRHdoTFMwQUlGQmhaMlZ6T2lBbFpDQXRMVDRLQUR4emRtY2dkMmxrZEdnOUlpVmtjSFFpSUdobGFXZG9kRDBpSldSd2RDSUtBQ0IyYVdWM1FtOTRQU0lsTGpKbUlDVXVNbVlnSlM0eVppQWxMakptSWdBZ2VH''@;'; + put 'put ''MXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdBZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpQUR3L2VHMXNJSFpsY25OcGIyNDlJakV1TUNJZ1pXNWpiMlJwYm1jOUlsVlVSaTA0SWlCemRHRnVaR0ZzYjI1''@;'; + put 'put ''bFBTSnVieUkvUGdvQWMzUjViR1Z6YUdWbGRBQThQM2h0YkMxemRIbHNaWE5vWldWMElHaHlaV1k5SWdBaUlIUjVjR1U5SW5SbGVIUXZZM056SWo4K0NnQThJVVJQUTFSWlVFVWdjM1puSUZCVlFreEpReUFpTFM4dlZ6TkRMeTlFVkVRZ1UxWkhJREV1TVM4dlJVNGlDZ0FnSW1oMGRIQTZMeTkz''@;'; + put 'put ''ZDNjdWR6TXViM0puTDBkeVlYQm9hV056TDFOV1J5OHhMakV2UkZSRUwzTjJaekV4TG1SMFpDSStDZ0E4SVMwdElFZGxibVZ5WVhSbFpDQmllU0FBWkdGeWEySnNkV1VBWkdGeWEyTjVZVzRBWkdGeWEyZHlZWGtBWkdGeWEyZHlaWGtBWkdGeWEyMWhaMlZ1ZEdFQVpHRnlhM0psWkFCc2FXZG9k''@;'; + put 'put ''R2R5WldWdUFDTWdBQ0JqY21WaGRHVWdiR2x1WlNBQUlDMW1hV3hzSUFBZ0xXUmhjMmdnTlFBZ0xXUmhjMmdnTWdCbmRuSmxibVJsY2w5amIzSmxYM1JyTG1NQWRHdG5aVzVmY0hKcGJuUmZkR0ZuY3dCbmNtRndhQ0JzWVdKbGJBQWdMWFJoWjNNZ2V5VmtKWE1sY0gwQWRHdG5aVzVmY0hKcGJu''@;'; + put 'put ''UmZZMjlzYjNJQUpHTUFJQzEzYVdSMGFDQUFJQzF6Ylc5dmRHZ2dZbVY2YVdWeUlBQWdZM0psWVhSbElIQnZiSGxuYjI0Z0FDQXRiM1YwYkdsdVpTQUFJR055WldGMFpTQnZkbUZzSUFBZ1kzSmxZWFJsSUhSbGVIUWdBQ0F0ZEdWNGRDQjdBSDBBSUMxbWIyNTBJSHNBSUNWa2ZRQWdMV0Z1WTJo''@;'; + put 'put ''dmNpQjNBQ0F0WVc1amFHOXlJR1VBSXdBZ1ZHbDBiR1U2SUFBZ1VHRm5aWE02SUNWa0NnQWpJRWRsYm1WeVlYUmxaQ0JpZVNBQUtRb0FkR3NBZEdzNmRHc0FJQ0FnSUNBZ1BDRXRMU0FBSUMwdFBnb0FSWEp5YjNJZ1pIVnlhVzVuSUdOdmJuWmxjbk5wYjI0Z2RHOGdJbFZVUmkwNElpNGdJRkYx''@;'; + put 'put ''YVhScGJtY3VDZ0FnUEhZNmMyaGhjR1VnYzNSNWJHVTlJbkJ2YzJsMGFXOXVPbUZpYzI5c2RYUmxPeUFBSUhkcFpIUm9PaUFsWkRzZ2FHVnBaMmgwT2lBbFpDSWdabWxzYkdWa1BTSm1ZV3h6WlNJK0FEeDJPbkJoZEdnZ2RqMGlBQ0J0SUFBbExqQm1MQ1V1TUdZZ0FDQnNJQUFnWlNBQUlpOCtB''@;'; + put 'put ''RHd2ZGpwemFHRndaVDRLQUR4Mk9uTjBjbTlyWlNCamIyeHZjajBpQUNJZ2QyVnBaMmgwUFNJbExqQm1jSFFBSWlCa1lYTm9jM1I1YkdVOUltUmhjMmdBSWlCa1lYTm9jM1I1YkdVOUltUnZkQUFpSUM4K0FDTWxNREo0SlRBeWVDVXdNbmdBWjNaeVpXNWtaWEpmWTI5eVpWOTJiV3d1WXdCMmJX''@;'; + put 'put ''eGZjSEpwYm5SZlkyOXNiM0lBSUhkcFpIUm9PaUFsWkRzZ2FHVnBaMmgwT2lBbFpDSUFJRDRBUEhZNmNHRjBhQ0FnZGowaUFDOCtQQzkyT25Ob1lYQmxQZ29BYlNBQUpYTWxMakJtTENVdU1HWWdBR01nQUNCbWFXeHNaV1E5SW5SeWRXVWlJR1pwYkd4amIyeHZjajBpQUNJZ0FDQm1hV3hzWldR''@;'; + put 'put ''OUltWmhiSE5sSWlBQUpTNHdaaUFsTGpCbUlBQnNJQUI0SUdVZ0lpOCtBQ0FnUEhZNmIzWmhiQ0J6ZEhsc1pUMGljRzl6YVhScGIyNDZZV0p6YjJ4MWRHVTdBQ0JzWldaME9pQWxMakptT3lCMGIzQTZJQ1V1TW1ZN0FDQjNhV1IwYURvZ0pTNHlaanNnYUdWcFoyaDBPaUFsTGpKbUlnQThMM1k2''@;'; + put 'put ''YjNaaGJENEtBRHgyT25KbFkzUWdjM1I1YkdVOUluQnZjMmwwYVc5dU9tRmljMjlzZFhSbE95QUFJSE4wY205clpXUTlJbVpoYkhObElpQm1hV3hzWldROUltWmhiSE5sSWo0S0FEeDJPblJsZUhSaWIzZ2dhVzV6WlhROUlqQXNNQ3d3TERBaUlITjBlV3hsUFNKd2IzTnBkR2x2YmpwaFluTnZi''@;'; + put 'put ''SFYwWlRzZ2RpMTBaWGgwTFhkeVlYQndhVzVuT2lkbVlXeHpaU2M3Y0dGa1pHbHVaem9uTUNjN0FHWnZiblF0Wm1GdGFXeDVPaUFuSlhNbk93Qm1iMjUwTFhkbGFXZG9kRG9nSlhNN0FHWnZiblF0YzNSeVpYUmphRG9nSlhNN0FHWnZiblF0YzNSNWJHVTZJQ1Z6T3dBZ1ptOXVkQzF6YVhwbE9p''@;'; + put 'put ''QWxMakptY0hRN0FHTnZiRzl5T2lWek93QmpiMnh2Y2pvakpUQXllQ1V3TW5nbE1ESjRPd0IyYld4ZmRHVjRkSE53WVc0QUlqNDhZMlZ1ZEdWeVBnQThMMk5sYm5SbGNqNDhMM1k2ZEdWNGRHSnZlRDRLQUR3dmRqcHlaV04wUGdvQVBDOWhQZ29BUEdFQUlHaHlaV1k5SWlWeklnQWdkR2wwYkdV''@;'; + put 'put ''OUlpVnpJZ0FnZEdGeVoyVjBQU0lsY3lJQVBnb0FQQzkyT21keWIzVndQZ29BUEM5RVNWWStDZ0E4UkVsV0lHbGtQU2RmVmsxTU1sOG5JSE4wZVd4bFBTSndiM05wZEdsdmJqcHlaV3hoZEdsMlpUdDJhWE5wWW1sc2FYUjVPbWhwWkdSbGJpSStDZ0E4SVMwdElHbHVjMlZ5ZENCaGJua2diM1Jv''@;'; + put 'put ''WlhJZ2FIUnRiQ0JqYjI1MFpXNTBJR2hsY21VZ0xTMCtDZ0E4UkVsV0lHbGtQU2RmYm05MFZrMU1NVjhuSUhOMGVXeGxQU0p3YjNOcGRHbHZianB5Wld4aGRHbDJaVHNpUGdvQVBDRXRMU0IwYUdseklITm9iM1ZzWkNCdmJteDVJR1JwYzNCc1lYa2diMjRnVGs5T0xVbEZJR0p5YjNkelpYSnpJ''@;'; + put 'put ''QzB0UGdvQVBFZ3lQbE52Y25KNUxDQjBhR2x6SUdScFlXZHlZVzBnZDJsc2JDQnZibXg1SUdScGMzQnNZWGtnWTI5eWNtVmpkR3g1SUc5dUlFbHVkR1Z5Ym1WMElFVjRjR3h2Y21WeUlEVWdLR0Z1WkNCMWNDa2dZbkp2ZDNObGNuTXVQQzlJTWo0S0FEeEVTVllnYVdROUoxOXViM1JXVFV3eVh5''@;'; + put 'put ''Y2djM1I1YkdVOUluQnZjMmwwYVc5dU9uSmxiR0YwYVhabE95SStDZ0E4SVMwdElHbHVjMlZ5ZENCaGJua2diM1JvWlhJZ1RrOU9MVWxGSUdoMGJXd2dZMjl1ZEdWdWRDQm9aWEpsSUMwdFBnb0FQQzlDVDBSWlBnbzhMMGhVVFV3K0NnQThTRVZCUkQ0QVBFMUZWRUVnYUhSMGNDMWxjWFZwZGow''@;'; + put 'put ''aVEyOXVkR1Z1ZEMxVWVYQmxJaUJqYjI1MFpXNTBQU0owWlhoMEwyaDBiV3c3SUdOb1lYSnpaWFE5VlZSR0xUZ2lQZ29BUEZSSlZFeEZQZ0E4TDFSSlZFeEZQZ0E4SVMwdElGQmhaMlZ6T2lBbFpDQXRMVDRLQUNBZ0lEeFRRMUpKVUZRZ1RFRk9SMVZCUjBVOUowcGhkbUZ6WTNKcGNIUW5QZ29B''@;'; + put 'put ''SUNBZ1puVnVZM1JwYjI0Z1luSnZkM05sY21Ob1pXTnJLQ2tLQUNBZ0lIc0tBQ0FnSUNBZ0lIWmhjaUIxWVNBOUlIZHBibVJ2ZHk1dVlYWnBaMkYwYjNJdWRYTmxja0ZuWlc1MENnQWdJQ0FnSUNCMllYSWdiWE5wWlNBOUlIVmhMbWx1WkdWNFQyWWdLQ0FuVFZOSlJTQW5JQ2tLQUNBZ0lDQWdJ''@;'; + put 'put ''SFpoY2lCcFpYWmxjbk03Q2dBZ0lDQWdJQ0IyWVhJZ2FYUmxiVHNLQUNBZ0lDQWdJSFpoY2lCV1RVeDVaWE05Ym1WM0lFRnljbUY1S0NkZlZrMU1NVjhuTENkZlZrMU1NbDhuS1RzS0FDQWdJQ0FnSUhaaGNpQldUVXh1YnoxdVpYY2dRWEp5WVhrb0oxOXViM1JXVFV3eFh5Y3NKMTl1YjNSV1RV''@;'; + put 'put ''d3lYeWNwT3dvQUlDQWdJQ0FnYVdZZ0tDQnRjMmxsSUQ0Z01DQXBleUFnSUNBZ0lDOHZJRWxtSUVsdWRHVnlibVYwSUVWNGNHeHZjbVZ5TENCeVpYUjFjbTRnZG1WeWMybHZiaUJ1ZFcxaVpYSUtBQ0FnSUNBZ0lDQWdJR2xsZG1WeWN6MGdjR0Z5YzJWSmJuUWdLSFZoTG5OMVluTjBjbWx1WnlB''@;'; + put 'put ''b2JYTnBaU3MxTENCMVlTNXBibVJsZUU5bUlDZ25MaWNzSUcxemFXVWdLU2twQ2dBZ0lDQWdJQ0I5Q2dBZ0lDQWdJQ0JwWmlBb2FXVjJaWEp6UGowMUtYc0tBQ0FnSUNBZ0lDQm1iM0lnS0hnZ2FXNGdWazFNZVdWektYc0tBQ0FnSUNBZ0lDQWdJR2wwWlcwZ1BTQmtiMk4xYldWdWRDNW5aWFJG''@;'; + put 'put ''YkdWdFpXNTBRbmxKWkNoV1RVeDVaWE5iZUYwcE93b0FJQ0FnSUNBZ0lDQWdhV1lnS0dsMFpXMHBJSHNLQUNBZ0lDQWdJQ0FnSUNBZ2FYUmxiUzV6ZEhsc1pTNTJhWE5wWW1sc2FYUjVQU2QyYVhOcFlteGxKenNLQUNBZ0lDQWdJQ0FnSUgwS0FDQWdJQ0FnSUNCOUNnQWdJQ0FnSUNBZ1ptOXlJ''@;'; + put 'put ''Q2g0SUdsdUlGWk5URzV2S1hzS0FDQWdJQ0FnSUNBZ0lHbDBaVzBnUFNCa2IyTjFiV1Z1ZEM1blpYUkZiR1Z0Wlc1MFFubEpaQ2hXVFV4dWIxdDRYU2s3Q2dBZ0lDQWdJQ0FnSUNBZ0lHbDBaVzB1YzNSNWJHVXVkbWx6YVdKcGJHbDBlVDBuYUdsa1pHVnVKenNLQUNBZ0lDQWdmV1ZzYzJWN0Nn''@;'; + put 'put ''QWdJQ0FnSUgwS0FDQWdJSDBLQUNBZ0lEd3ZVME5TU1ZCVVBnb0FQQzlJUlVGRVBnQThRazlFV1NCdmJteHZZV1E5SjJKeWIzZHpaWEpqYUdWamF5Z3BPeWMrQ2dBOFJFbFdJR2xrUFNkZlZrMU1NVjhuSUhOMGVXeGxQU0p3YjNOcGRHbHZianB5Wld4aGRHbDJaVHNnWkdsemNHeGhlVHBwYm14''@;'; + put 'put ''cGJtVTdJSFpwYzJsaWFXeHBkSGs2YUdsa1pHVnVBQ0IzYVdSMGFEb2dKV1J3ZERzZ2FHVnBaMmgwT2lBbFpIQjBJajRLQUR4VFZGbE1SVDRLQUhaY09pb2dleUJpWldoaGRtbHZjam9nZFhKc0tDTmtaV1poZFd4MEkxWk5UQ2s3WkdsemNHeGhlVHBwYm14cGJtVXRZbXh2WTJ0OUNnQThMMU5V''@;'; + put 'put ''V1V4RlBnb0FQSGh0YkRwdVlXMWxjM0JoWTJVZ2JuTTlJblZ5YmpwelkyaGxiV0Z6TFcxcFkzSnZjMjltZEMxamIyMDZkbTFzSWlCd2NtVm1hWGc5SW5ZaUlDOCtDZ0FnUEhZNlozSnZkWEFnYzNSNWJHVTlJbkJ2YzJsMGFXOXVPbkpsYkdGMGFYWmxPeUFBSUhkcFpIUm9PaUFsWkhCME95Qm9a''@;'; + put 'put ''V2xuYUhRNklDVmtjSFFpQUNCamIyOXlaRzl5YVdkcGJqMGlNQ3d3SWlCamIyOXlaSE5wZW1VOUlpVmtMQ1ZrSWlBK0FEeElWRTFNUGdvQUNqd2hMUzBnUjJWdVpYSmhkR1ZrSUdKNUlBQWdkbVZ5YzJsdmJpQUFJQ2dBS1FvdExUNEtBR0Z4ZFdFQVpuVmphSE5wWVFCc2FXMWxBRzlzYVhabEFI''@;'; + put 'put ''UmxZV3dBZG0xc0FIWnRiRHAyYld3QUx5OHFLaW9nWTI5dGJXVnVkRG9nSlhNS0FDOHZLaW9xSUhCdmJIbHNhVzVsQ2dCelkyRnNaU0FnSUNBOEpUa3VNMllzSUNVNUxqTm1MQ0FsT1M0elpqNEtBSEp2ZEdGMFpTQWdJRHdsT1M0elppd2dKVGt1TTJZc0lDVTVMak5tUGdvQWRISmhibk5zWVhS''@;'; + put 'put ''bFBDVTVMak5tTENBbE9TNHpaaXdnSlRrdU0yWStDZ0J6Y0dobGNtVmZjM2RsWlhBZ2V3b2dJQ0FnSlhNS0lDQWdJQ1ZrTEFvQWJHbHVaV0Z5WDNOd2JHbHVaUUE4SlRrdU0yWXNJQ1U1TGpObUxDQWxPUzR6Wmo0c0lDVXVNMllLQUNWeklDQWdJQ1Z6QUNBZ0lDQjBiMnhsY21GdVkyVWdNQzR3''@;'; + put 'put ''TVFvZ0lDQWdKWE1nSUNBZ0pYTWdJQ0FnSlhNZ0lDQWdKWE45Q2dBbGN5VnpBQ1Z6SUhSeVlXNXpiV2wwSUNVdU0yWUFVbVZrQUVkeVpXVnVBRUpzZFdVQWNtZGlQQ1U1TGpObUxDQWxPUzR6Wml3Z0pUa3VNMlkrSUhSeVlXNXpiV2wwSUNVdU0yWUFiMjl3Y3l3Z2FXNTBaWEp1WVd3Z1pYSnli''@;'; + put 'put ''M0k2SUhWdWFHRnVaR3hsWkNCamIyeHZjaUIwZVhCbFBTVmtJQ1Z6Q2dCbmRuSmxibVJsY2w5amIzSmxYM0J2ZGk1akFIQnZkbDlqYjJ4dmNsOWhjMTl6ZEhJQWNHbG5iV1Z1ZENCN0lHTnZiRzl5SUNWeklIMEtBSEJ2ZGlCeVpXNWtaWEpsY2pwbGJDQXRJQ1Z6Q2dBdkx5b3FLaUJpWlhwcFpY''@;'; + put 'put ''SUtBR0pmYzNCc2FXNWxBQ0FnSUNBZ0lDQWdkRzlzWlhKaGJtTmxJREF1TURFS0lDQWdJQ1Z6SUNBZ0lDVnpJQ0FnSUNWeklDQWdJQ1Z6ZlFvQUx5OHFLaW9nY0c5c2VXZHZiZ29BSUNBZ0lIUnZiR1Z5WVc1alpTQXdMakVLSUNBZ0lDVnpJQ0FnSUNWeklDQWdJQ1Z6SUNBZ0lDVnpmUW9BY0c5''@;'; + put 'put ''c2VXZHZiaUI3SUNWa0xBb0FQQ1U1TGpObUxDQWxPUzR6Wml3Z0pUa3VNMlkrQUNWekNpQWdJQ0FsY3dBS0lDQWdJQ1Z6SUNBZ0lDVnpJQ0FnSUNWeklDQWdJQ1Z6ZlFvQUx5OHFLaW9nWld4c2FYQnpaUW9BZEc5eWRYTWdleUFsTGpObUxDQWxMak5tQ2lBZ0lDQWxjeUFnSUNBbGN5QWdJQ0Fs''@;'; + put 'put ''Y3lBZ0lDQWxjMzBLQUhOd2FHVnlaU0I3UENVNUxqTm1MQ0FsT1M0elppd2dKVGt1TTJZK0xDQXhMakFLSUNBZ0lDVnpJQ0FnSUNWeklDQWdJQ1Z6SUNBZ0lDVnpmUW9BTHk4cUtpb2dkR1Y0ZEhOd1lXNDZJQ1Z6TENCbWIyNTBjMmw2WlNBOUlDVXVNMllzSUdadmJuUnVZVzFsSUQwZ0pYTUtB''@;'; + put 'put ''SE5qWVd4bElDVXVNMllLQUhSbGVIUWdld29nSUNBZ2RIUm1JQ0lsY3lJc0NpQWdJQ0FpSlhNaUxDQWxMak5tTENBbExqTm1DaUFnSUNBbGN5QWdJQ0FsY3lBZ0lDQWxjeUFnSUNBbGN5QWdJQ0FsYzMwS0FDQWdJQ0J1YjE5emFHRmtiM2NLQUM4dktpb3FJR1Z1WkY5bFpHZGxDZ0F2THlvcUtp''@;'; + put 'put ''QmlaV2RwYmw5bFpHZGxDZ0F2THlvcUtpQmxibVJmYm05a1pRb0FMeThxS2lvZ1ltVm5hVzVmYm05a1pUb2dKWE1LQUM4dktpb3FJR1Z1WkY5amJIVnpkR1Z5Q2dBdkx5b3FLaUJpWldkcGJsOWpiSFZ6ZEdWeUNnQXZMeW9xS2lCbGJtUmZjR0ZuWlFvQUx5OHFLaW9nWW1WbmFXNWZjR0ZuWlFv''@;'; + put 'put ''QUx5OHFLaW9nWlc1a1gyeGhlV1Z5Q2dBdkx5b3FLaUJpWldkcGJsOXNZWGxsY2pvZ0pYTXNJQ1ZrTHlWa0NnQXZMeW9xS2lCbGJtUmZaM0poY0dnS0FDOHZLaW9xSUdKbFoybHVYMmR5WVhCb0lDVnpDZ0JqWVcxbGNtRWdleUJzYjJOaGRHbHZiaUE4SlM0elppQXNJQ1V1TTJZZ0xDQWxMak5t''@;'; + put 'put ''UGdvZ0lDQWdJQ0FnSUNCc2IyOXJYMkYwSUNBOEpTNHpaaUFzSUNVdU0yWWdMQ0FsTGpObVBnb2dJQ0FnSUNBZ0lDQnlhV2RvZENCNElDb2dhVzFoWjJWZmQybGtkR2dnTHlCcGJXRm5aVjlvWldsbmFIUUtJQ0FnSUNBZ0lDQWdZVzVuYkdVZ0pTNHpaZ3A5Q2dBdkwzTnJlUXB3YkdGdVpTQjdJ''@;'; + put 'put ''RHd3TENBeExDQXdQaXdnTVNCb2IyeHNiM2NLSUNBZ0lIUmxlSFIxY21VZ2V3b2dJQ0FnSUNBZ0lIQnBaMjFsYm5RZ2V5QmliM3B2SUhSMWNtSjFiR1Z1WTJVZ01DNDVOUW9nSUNBZ0lDQWdJQ0FnSUNCamIyeHZjbDl0WVhBZ2V3b2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1d6QXVNREFnY21kaUlE''@;'; + put 'put ''d3dMakExTENBd0xqSXdMQ0F3TGpVd1BsMEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lGc3dMalV3SUhKbllpQThNQzR3TlN3Z01DNHlNQ3dnTUM0MU1ENWRDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmJNQzQzTlNCeVoySWdQREV1TURBc0lERXVNREFzSURFdU1EQStYUW9nSUNBZ0lDQWdJQ0FnSUNB''@;'; + put 'put ''Z0lDQWdXekF1TnpVZ2NtZGlJRHd3TGpJMUxDQXdMakkxTENBd0xqSTFQbDBLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRnN4TGpBd0lISm5ZaUE4TUM0MU1Dd2dNQzQxTUN3Z01DNDFNRDVkQ2lBZ0lDQWdJQ0FnSUNBZ0lIMEtJQ0FnSUNBZ0lDQWdJQ0FnYzJOaGJHVWdQREV1TURBc0lERXVNREFz''@;'; + put 'put ''SURFdU5UQStJQ29nTWk0MU1Bb2dJQ0FnSUNBZ0lDQWdJQ0IwY21GdWMyeGhkR1VnUERBdU1EQXNJREF1TURBc0lEQXVNREErQ2lBZ0lDQWdJQ0FnZlFvZ0lDQWdJQ0FnSUdacGJtbHphQ0I3SUdGdFltbGxiblFnTVNCa2FXWm1kWE5sSURBZ2ZRb2dJQ0FnZlFvZ0lDQWdjMk5oYkdVZ01UQXdN''@;'; + put 'put ''REFLZlFvdkwyMXBjM1FLWm05bklIc2dabTluWDNSNWNHVWdNZ29nSUNBZ1pHbHpkR0Z1WTJVZ05UQUtJQ0FnSUdOdmJHOXlJSEpuWWlBOE1TNHdNQ3dnTVM0d01Dd2dNUzR3TUQ0Z0tpQXdMamMxQ2lBZ0lDQm1iMmRmYjJabWMyVjBJREF1TVRBS0lDQWdJR1p2WjE5aGJIUWdNUzQxTUFvZ0lD''@;'; + put 'put ''QWdkSFZ5WW5Wc1pXNWpaU0F4TGpjMUNuMEtMeTluYm1RS2NHeGhibVVnZXlBOE1DNHdNQ3dnTVM0d01Dd2dNQzR3TUQ0c0lEQUtJQ0FnSUhSbGVIUjFjbVVnZXdvZ0lDQWdJQ0FnSUhCcFoyMWxiblI3SUdOdmJHOXlJSEpuWWlBOE1DNHlOU3dnTUM0ME5Td2dNQzR3TUQ0Z2ZRb2dJQ0FnSUNB''@;'; + put 'put ''Z0lHNXZjbTFoYkNCN0lHSjFiWEJ6SURBdU56VWdjMk5oYkdVZ01DNHdNU0I5Q2lBZ0lDQWdJQ0FnWm1sdWFYTm9JSHNnY0dodmJtY2dNQzR4TUNCOUNpQWdJQ0I5Q24wS0FHeHBaMmgwWDNOdmRYSmpaU0I3SUR3eE5UQXdMRE13TURBc0xUSTFNREErSUdOdmJHOXlJRmRvYVhSbElIMEtBQ04y''@;'; + put 'put ''WlhKemFXOXVJRE11TmpzS0FHZHNiMkpoYkY5elpYUjBhVzVuY3lCN0lHRnpjM1Z0WldSZloyRnRiV0VnTVM0d0lIMEtBQ05rWldaaGRXeDBJSHNnWm1sdWFYTm9JSHNnWVcxaWFXVnVkQ0F3TGpFZ1pHbG1ablZ6WlNBd0xqa2dmU0I5Q2dBamFXNWpiSFZrWlNBaVkyOXNiM0p6TG1sdVl5SUtJ''@;'; + put 'put ''Mmx1WTJ4MVpHVWdJblJsZUhSMWNtVnpMbWx1WXlJS0kybHVZMngxWkdVZ0luTm9ZWEJsY3k1cGJtTWlDZ0FqWkdWamJHRnlaU0FsY3lBOUlDVnpPd29BUW14aFkyc0FWMmhwZEdVQVltRnJaWEp6WTJodll3QmljbUZ6Y3dCaWNtbG5hSFJuYjJ4a0FHSnliMjU2WlFCaWNtOXVlbVV5QUdOc1pX''@;'; + put 'put ''RnlBR052YjJ4amIzQndaWElBWTI5d2NHVnlBR1JoY210aWNtOTNiZ0JrWVhKcmNIVnljR3hsQUdSaGNtdDBZVzRBWkdGeWEzZHZiMlFBWkd0bmNtVmxibU52Y0hCbGNnQmtkWE4wZVhKdmMyVUFabVZzWkhOd1lYSUFabXhsYzJnQVozSmhlVEExQUdkeVpXVnVZMjl3Y0dWeUFHaDFiblJsY25O''@;'; + put 'put ''bmNtVmxiZ0JzYVdkb2RGOXdkWEp3YkdVQWJHbG5hSFIzYjI5a0FHMWhibVJoY21sdWIzSmhibWRsQUcxbFpHbDFiV1p2Y21WemRHZHlaV1Z1QUcxbFpHbDFiV2R2YkdSbGJuSnZaQUJ0WldScGRXMTNiMjlrQUcxbFpGOXdkWEp3YkdVQWJXbGpZUUJ1Wlc5dVlteDFaUUJ1Wlc5dWNHbHVhd0J1''@;'; + put 'put ''WlhkdGFXUnVhV2RvZEdKc2RXVUFibVYzZEdGdUFHOXNaR2R2YkdRQWNYVmhjblI2QUhKcFkyaGliSFZsQUhOallYSnNaWFFBYzJWdGFWTjNaV1YwUTJodll3QnphV3gyWlhJQWMzQnBZM2x3YVc1ckFITjFiVzFsY25OcmVRQjJaWEo1WkdGeWEySnliM2R1QUhabGNubGZiR2xuYUhSZmNIVnlj''@;'; + put 'put ''R3hsQUhCdmRnQndiM1k2Y0c5MkFDVnpJQ1Z6Q2dBdVhDSWdBQ0FsWkNBbFpBQWdKWE1LQUNBbFpBQm1hV3hzSUFCbGJHeHBjSE5sSUdGMGRISnpKV1FnSlhOM2FXUWdKUzQxWmlCb2RDQWxMalZtSUdGMElDZ2xMalZtTENVdU5XWXBPd29BTG1aMElDVnpDZ0F1Y0hNZ0pXUXFYRzRvVTBaMUx5''@;'; + put 'put ''VXVNR1oxQ2dBaUpYTWlJR0YwSUNnbExqVm1MQ1V1TldZcE93b0FKVEF6YndBbGN5VnpJR2x6SUc1dmRDQmhJSFJ5YjJabUlHWnZiblFLQUdSdmRDQndhV01nY0d4MVoybHVPaUFBVWdCZENpNVFSUW9BTGxCVElDVXVOV1lnSlM0MVpnb0FKWE1nZEc4Z1kyaGhibWRsSUdSeVlYZHBibWNnYzJs''@;'; + put 'put ''NlpTd2diWFZzZEdsd2JIa2dkR2hsSUhkcFpIUm9JR0Z1WkNCb1pXbG5hSFFnYjI0Z2RHaGxJQzVRVXlCc2FXNWxJR0ZpYjNabElHRnVaQ0IwYUdVZ2JuVnRZbVZ5SUc5dUlIUm9aU0IwZDI4Z2JHbHVaWE1nWW1Wc2IzY2dLSEp2ZFc1a1pXUWdkRzhnZEdobElHNWxZWEpsYzNRZ2FXNTBaV2Rs''@;'; + put 'put ''Y2lrZ1lua2dZU0J6WTJGc1pTQm1ZV04wYjNJS0FDNXVjaUJUUmlBbExqQm1Dbk5qWVd4bGRHaHBZMnR1WlhOeklEMGdKUzR3WmdvQUpYTWdaRzl1SjNRZ1kyaGhibWRsSUdGdWVYUm9hVzVuSUdKbGJHOTNJSFJvYVhNZ2JHbHVaU0JwYmlCMGFHbHpJR1J5WVhkcGJtY0tBQ1Z6SUc1dmJpMW1Z''@;'; + put 'put ''WFJoYkNCeWRXNHRkR2x0WlNCd2FXTWdkbVZ5YzJsdmJpQmtaWFJsY20xcGJtRjBhVzl1TENCMlpYSnphVzl1SURJS0FHSnZlSEpoWkQweUxqQWdKWE1nZDJsc2JDQmlaU0J5WlhObGRDQjBieUF3TGpBZ1lua2daM0JwWXlCdmJteDVDZ0J6WTJGc1pUMHhMakFnSlhNZ2NtVnhkV2x5WldRZ1pt''@;'; + put 'put ''OXlJR052YlhCaGNtbHpiMjV6Q2dBbGN5QmliM2h5WVdRZ2FYTWdibTkzSURBdU1DQnBiaUJuY0dsakxDQmxiSE5sSUdsMElISmxiV0ZwYm5NZ01pNHdDZ0FsY3lCa1lYTm9kMmxrSUdseklEQXVNU0JwYmlBeE1IUm9JRVZrYVhScGIyNHNJREF1TURVZ2FXNGdSRmRDSURJZ1lXNWtJR2x1SUdk''@;'; + put 'put ''d2FXTUtBQ1Z6SUdacGJHeDJZV3dnYVhNZ01DNHpJR2x1SURFd2RHZ2dSV1JwZEdsdmJpQW9abWxzYkNBd0lHMWxZVzV6SUdKc1lXTnJLU3dnTUM0MUlHbHVJR2R3YVdNZ0tHWnBiR3dnTUNCdFpXRnVjeUIzYUdsMFpTa3NJSFZ1WkdWbWFXNWxaQ0JwYmlCRVYwSWdNZ29BSlhNZ1ptbHNiQ0Jv''@;'; + put 'put ''WVhNZ2JtOGdiV1ZoYm1sdVp5QnBiaUJFVjBJZ01pd2daM0JwWXlCallXNGdkWE5sSUdacGJHd2diM0lnWm1sc2JHVmtMQ0F4TUhSb0lFVmthWFJwYjI0Z2RYTmxjeUJtYVd4c0lHOXViSGtLQUNWeklFUlhRaUF5SUdSdlpYTnVKM1FnZFhObElHWnBiR3dnWVc1a0lHUnZaWE51SjNRZ1pHVm1h''@;'; + put 'put ''VzVsSUdacGJHeDJZV3dLQUNWeklISmxjMlYwSUhkdmNtdHpJR2x1SUdkd2FXTWdZVzVrSURFd2RHZ2daV1JwZEdsdmJpd2dZblYwSUdsemJpZDBJR1JsWm1sdVpXUWdhVzRnUkZkQ0lESUtBQ1Z6SUVSWFFpQXlJR052YlhCaGRHbGlhV3hwZEhrZ1pHVm1hVzVwZEdsdmJuTUtBR2xtSUdKdmVI''@;'; + put 'put ''SmhaQ0ErSURFdU1DQW1KaUJrWVhOb2QybGtJRHdnTUM0d056VWdkR2hsYmlCWUNnbG1hV3hzZG1Gc0lEMGdNVHNLQ1dSbFptbHVaU0JtYVd4c0lGa2dXVHNLQ1dSbFptbHVaU0J6YjJ4cFpDQlpJRms3Q2dsa1pXWnBibVVnY21WelpYUWdXU0J6WTJGc1pUMHhMakFnV1RzS1dBb0FjbVZ6WlhR''@;'; + put 'put ''Z0pYTWdjMlYwSUhSdklHdHViM2R1SUhOMFlYUmxDZ0FsY3lCSFRsVWdjR2xqSUhaekxpQXhNSFJvSUVWa2FYUnBiMjRnWkZ3b1pTZDBaVzUwWlFvQWFXWWdabWxzYkhaaGJDQStJREF1TkNCMGFHVnVJRmdLQ1dSbFptbHVaU0J6WlhSbWFXeHNkbUZzSUZrZ1ptbHNiSFpoYkNBOUlERWdMU0Ja''@;'; + put 'put ''T3dvSlpHVm1hVzVsSUdKdmJHUWdXU0IwYUdsamEyNWxjM01nTWlCWk93b0FDU1Z6SUdsbUlIbHZkU0IxYzJVZ1ozQnBZeUJoYm1RZ2FYUWdZbUZ5Wm5NZ2IyNGdaVzVqYjNWdWRHVnlhVzVuSUNKemIyeHBaQ0lzQ2dBSkpYTUphVzV6ZEdGc2JDQmhJRzF2Y21VZ2NtVmpaVzUwSUhabGNuTnBi''@;'; + put 'put ''MjRnYjJZZ1ozQnBZeUJ2Y2lCemQybDBZMmdnZEc4Z1JGZENJRzl5SURFd2RHZ2dSV1JwZEdsdmJpQndhV003Q2dBSkpYTUpjMjl5Y25rc0lIUm9aU0JuY205bVppQm1iMnhyY3lCamFHRnVaMlZrSUdkd2FXTTdJSE5sYm1RZ1lXNTVJR052YlhCc1lXbHVkQ0IwYnlCMGFHVnRPd29BV0NCbGJI''@;'; + put 'put ''TmxJRm9LQ1dSbFptbHVaU0J6WlhSbWFXeHNkbUZzSUZrZ1ptbHNiSFpoYkNBOUlGazdDZ2xrWldacGJtVWdZbTlzWkNCWklGazdDZ2xrWldacGJtVWdabWxzYkdWa0lGa2dabWxzYkNCWk93cGFDZ0FsY3lCaGNuSnZkMmhsWVdRZ2FHRnpJRzV2SUcxbFlXNXBibWNnYVc0Z1JGZENJRElzSUdG''@;'; + put 'put ''eWNtOTNhR1ZoWkNBOUlEY2diV0ZyWlhNZ1ptbHNiR1ZrSUdGeWNtOTNhR1ZoWkhNZ2FXNGdaM0JwWXlCaGJtUWdhVzRnTVRCMGFDQkZaR2wwYVc5dUNnQWxjeUJoY25KdmQyaGxZV1FnYVhNZ2RXNWtaV1pwYm1Wa0lHbHVJRVJYUWlBeUxDQnBibWwwYVdGc2JIa2dNU0JwYmlCbmNHbGpMQ0F5''@;'; + put 'put ''SUdsdUlERXdkR2dnUldScGRHbHZiZ29BWVhKeWIzZG9aV0ZrSUQwZ055QWxjeUJ1YjNRZ2RYTmxaQ0JpZVNCbmNtRndhSFpwZWdvQUpYTWdSMDVWSUhCcFl5QnpkWEJ3YjNKMGN5QmhJR0p2ZUhKaFpDQjJZWEpwWVdKc1pTQjBieUJrY21GM0lHSnZlR1Z6SUhkcGRHZ2djbTkxYm1SbFpDQmpi''@;'; + put 'put ''M0p1WlhKek95QkVWMElnWVc1a0lERXdkR2dnUldRdUlHUnZJRzV2ZEFvQVltOTRjbUZrSUQwZ01DQWxjeUJ1YnlCeWIzVnVaR1ZrSUdOdmNtNWxjbk1nYVc0Z1ozSmhjR2gyYVhvS0FDVnpJRWRPVlNCd2FXTWdjM1Z3Y0c5eWRITWdZU0JzYVc1bGRHaHBZMnNnZG1GeWFXRmliR1VnZEc4Z2My''@;'; + put 'put ''VjBJR3hwYm1VZ2RHaHBZMnR1WlhOek95QkVWMElnWVc1a0lERXdkR2dnUldRdUlHUnZJRzV2ZEFvQWJHbHVaWFJvYVdOcklEMGdNRHNnYjJ4a2JHbHVaWFJvYVdOcklEMGdiR2x1WlhSb2FXTnJDZ0FsY3lBdVVGTWdkeTl2SUdGeVozTWdZMkYxYzJWeklFZE9WU0J3YVdNZ2RHOGdjMk5oYkdV''@;'; + put 'put ''Z1pISmhkMmx1WnlCMGJ5Qm1hWFFnT0M0MWVERXhJSEJoY0dWeU95QkVWMElnWkc5bGN5QnViM1FLQUNWeklHMWhlSEJ6YUhRZ1lXNWtJRzFoZUhCemQybGtJR2hoZG1VZ2JtOGdiV1ZoYm1sdVp5QnBiaUJFVjBJZ01pNHdMQ0J6WlhRZ2NHRm5aU0JpYjNWdVpHRnlhV1Z6SUdsdUlHZHdhV01n''@;'; + put 'put ''WVc1a0lHbHVJREV3ZEdnZ1JXUnBkR2x2YmdvQUpYTWdiV0Y0Y0hOb2RDQmhibVFnYldGNGNITjNhV1FnWVhKbElIQnlaV1JsWm1sdVpXUWdkRzhnTVRFdU1DQmhibVFnT0M0MUlHbHVJR2R3YVdNS0FHMWhlSEJ6YUhRZ1BTQWxaZ3B0WVhod2MzZHBaQ0E5SUNWbUNnQkViM1E2SUZzS0FHUmxa''@;'; + put 'put ''bWx1WlNCaGRIUnljekFnSlNVZ0pTVTdJR1JsWm1sdVpTQjFibVpwYkd4bFpDQWxKU0FsSlRzZ1pHVm1hVzVsSUhKdmRXNWtaV1FnSlNVZ0pTVTdJR1JsWm1sdVpTQmthV0ZuYjI1aGJITWdKU1VnSlNVS0FDVnpKWE1nZFc1emRYQndiM0owWldRS0FDVnpJSEpsYzNSdmNtVWdjRzlwYm5RZ2My''@;'; + put 'put ''bDZaU0JoYm1RZ1ptOXVkQW91Y0hNZ1hHNG9MbE1LTG1aMElGeHVLRVJHQ2dBbGN5QkRjbVZoZEc5eU9pQWxjeUIyWlhKemFXOXVJQ1Z6SUNnbGN5a0tBQ1Z6SUZScGRHeGxPaUFsY3dvQUpYTWdjMkYyWlNCd2IybHVkQ0J6YVhwbElHRnVaQ0JtYjI1MENpNXVjaUF1VXlCY2JpZ3Vjd291Ym5J''@;'; + put 'put ''Z1JFWWdYRzRvTG1ZS0FIQnBZd0J3YVdNNmNHbGpBSEJ1WnpwemRtY0FaMmxtT25OMlp3QnFjR1ZuT25OMlp3QnFjR1U2YzNabkFHcHdaenB6ZG1jQWNHNW5PbVpwWndCbmFXWTZabWxuQUdwd1pXYzZabWxuQUdwd1pUcG1hV2NBYW5Cbk9tWnBad0J3Ym1jNmRuSnRiQUJuYVdZNmRuSnRiQUJx''@;'; + put 'put ''Y0dWbk9uWnliV3dBYW5CbE9uWnliV3dBYW5Cbk9uWnliV3dBWlhCek9uQnpBSEJ6T25CekFDaHNhV0lwT25CekFIQnVaenB0WVhBQVoybG1PbTFoY0FCcWNHVm5PbTFoY0FCcWNHVTZiV0Z3QUdwd1p6cHRZWEFBY0hNNmJXRndBR1Z3Y3pwdFlYQUFjM1puT20xaGNBQndibWM2Wkc5MEFHZHBa''@;'; + put 'put ''anBrYjNRQWFuQmxaenBrYjNRQWFuQmxPbVJ2ZEFCcWNHYzZaRzkwQUhCek9tUnZkQUJsY0hNNlpHOTBBSE4yWnpwa2IzUUFjRzVuT25oa2IzUUFaMmxtT25oa2IzUUFhbkJsWnpwNFpHOTBBR3B3WlRwNFpHOTBBR3B3WnpwNFpHOTBBSEJ6T25oa2IzUUFaWEJ6T25oa2IzUUFjM1puT25oa2Iz''@;'; + put 'put ''UUFjM1puT25OMlp3QndibWM2ZG0xc0FHZHBaanAyYld3QWFuQmxaenAyYld3QWFuQmxPblp0YkFCcWNHYzZkbTFzQUdkcFpqcDBhd0JwYldGblpTQmpjbVZoZEdVZ2NHaHZkRzhnSW5Cb2IzUnZYeVZ6SWlBdFptbHNaU0FpSlhNaUNnQWtZeUJqY21WaGRHVWdhVzFoWjJVZ0pTNHlaaUFsTGpK''@;'; + put 'put ''bUlDMXBiV0ZuWlNBaWNHaHZkRzlmSlhNaUNnQThkanBwYldGblpTQnpjbU05SWlWeklpQnpkSGxzWlQwaUlIQnZjMmwwYVc5dU9tRmljMjlzZFhSbE95QjNhV1IwYURvbExqSm1PeUJvWldsbmFIUTZKUzR5WmpzZ2JHVm1kRG9sTGpKbUlEc2dkRzl3T2lVdU1tWWlBQ0F2UGdvQVozWnNiMkZr''@;'; + put 'put ''YVcxaFoyVmZZMjl5WlM1akFHTnZjbVZmYkc5aFpHbHRZV2RsWDNCemJHbGlBRnNnQUNWbklDVm5JQUJkSUNBbFpDQjBjblZsSUNWekNnQmRJQ0FsWkNCbVlXeHpaU0FsY3dvQVkyOXlaVjlzYjJGa2FXMWhaMlZmY0hNQVozTmhkbVVnSldjZ0pXY2dkSEpoYm5Oc1lYUmxJRzVsZDNCaGRHZ0tB''@;'; + put 'put ''SFZ6WlhKZmMyaGhjR1ZmSldRS0FHZHlaWE4wYjNKbENnQmpiM0psWDJ4dllXUnBiV0ZuWlY5MmNtMXNBRk5vWVhCbElIc0tBQ0FnWVhCd1pXRnlZVzVqWlNCQmNIQmxZWEpoYm1ObElIc0tBQ0FnSUNCdFlYUmxjbWxoYkNCTllYUmxjbWxoYkNCN0NnQWdJQ0FnSUNCaGJXSnBaVzUwU1c1MFpX''@;'; + put 'put ''NXphWFI1SURBdU16TUtBQ0FnSUNBZ0lDQWdaR2xtWm5WelpVTnZiRzl5SURFZ01TQXhDZ0FnSUNBZ2ZRb0FJQ0FnSUhSbGVIUjFjbVVnU1cxaFoyVlVaWGgwZFhKbElIc2dkWEpzSUNJbGN5SWdmUW9BSUNCOUNnQmpiM0psWDJ4dllXUnBiV0ZuWlY5bWFXY0FKV1FnSldRZ0pXUWdKV1FnSldR''@;'; + put 'put ''Z0pXUWdKV1FnSldRZ0pXUWdKUzR4WmlBbFpDQWxaQ0FsWkNBbFpDQWxaQ0FsWkFvZ0pXUWdKWE1LQUNBbFpDQWxaQ0FsWkNBbFpDQWxaQ0FsWkNBbFpDQWxaQ0FsWkNBbFpBb0FZMjl5WlY5c2IyRmthVzFoWjJWZmMzWm5BRHhwYldGblpTQjRiR2x1YXpwb2NtVm1QU0lBSWlCM2FXUjBhRDBp''@;'; + put 'put ''Sldkd2VDSWdhR1ZwWjJoMFBTSWxaM0I0SWlCd2NtVnpaWEoyWlVGemNHVmpkRkpoZEdsdlBTSjRUV2xrV1UxcFpDQnRaV1YwSWlCNFBTSWxaeUlnZVQwaUpXY2lBQ0IwY21GdWMyWnZjbTA5SW5KdmRHRjBaU2dsWkNBbFp5QWxaeWtpQUNJZ2QybGtkR2c5SWlWbmNIZ2lJR2hsYVdkb2REMGlK''@;'; + put 'put ''V2R3ZUNJZ2NISmxjMlZ5ZG1WQmMzQmxZM1JTWVhScGJ6MGllRTFwYmxsTmFXNGdiV1ZsZENJZ2VEMGlKV2NpSUhrOUlpVm5JZ0F2UGdvQVpHOTBYMnhoZVc5MWRBQndhR0Z6WlFCa2IzUWdaRzlsY3lCdWIzUWdjM1Z3Y0c5eWRDQjBhR1VnWVhOd1pXTjBJR0YwZEhKcFluVjBaU0JtYjNJZ1pH''@;'; + put 'put ''bHpZMjl1Ym1WamRHVmtJR2R5WVhCb2N5QnZjaUJuY21Gd2FITWdkMmwwYUNCamJIVnpkR1Z5Y3dvQVkyOXRjRzkxYm1RQWRpQTlQU0J1QUdSdmRHbHVhWFF1WXdCeVpXMXZkbVZmWm5KdmJWOXlZVzVyQUc5eVpHVnlBR1ZrWjJVZ2JHRmlaV3h6SUhkcGRHZ2djM0JzYVc1bGN6MWpkWEoyWldR''@;'; + put 'put ''Z2JtOTBJSE4xY0hCdmNuUmxaQ0JwYmlCa2IzUWdMU0IxYzJVZ2VHeGhZbVZzY3dvQVJVUmZiR0ZpWld3b1ptVXBBR1J2ZEhOd2JHbHVaWE11WXdCZlpHOTBYM053YkdsdVpYTUFabXhoZENCbFpHZGxJR0psZEhkbFpXNGdZV1JxWVdObGJuUWdibTlrWlhNZ2IyNWxJRzltSUhkb2FXTm9JR2ho''@;'; + put 'put ''Y3lCaElISmxZMjl5WkNCemFHRndaU0F0SUhKbGNHeGhZMlVnY21WamIzSmtjeUIzYVhSb0lFaFVUVXd0YkdsclpTQnNZV0psYkhNS0FDQWdSV1JuWlNBbGN5QWxjeUFsY3dvQWVIaDRBREV3TURBd0FIc2xjMzBBWVhWNFp3QnNZV0psYkY5bWJHOWhkQUJtYVhobFpBQW9iQ0E5SUVWRVgyeGhZ''@;'; + put 'put ''bVZzS0dabEtTa0FjMlYwUldSblpVeGhZbVZzVUc5ekFHVWdJVDBnVGxWTVRBQm1ZWE4wWjNJdVl3QmtaV3hsZEdWZlptRnpkRjlsWkdkbEFHNGdJVDBnVGtSZmJtVjRkQ2h1S1FCbVlYTjBYMjV2WkdVQWRTQWhQU0IyQUdaaGMzUmZibTlrWldGd2NBQk9SRjl1WlhoMEtIWXBJRDA5SUU1VlRF''@;'; + put 'put ''d0FabWx1WkY5bVlYTjBYMjV2WkdVb1p5d2diaWtBWkdWc1pYUmxYMlpoYzNSZmJtOWtaUUJrWld4bGRHVmZabXhoZEY5bFpHZGxBRzFsY21kbFgyOXVaWGRoZVNCbmJHbDBZMmdLQUcxbGNtZGxYMjl1WlhkaGVRQnpZV1psWDJSbGJHVjBaVjltWVhOMFgyVmtaMlVBYkdjQVkyOXRjQUJqYm5R''@;'; + put 'put ''Z1BUMGdjM29BYldsdVkzSnZjM011WXdCbWFYaE1ZV0psYkU5eVpHVnlBSEpsYldsdVkzSnZjM01BYldsdVkzSnZjM01nSlhNNklDVmtJR055YjNOemFXNW5jeXdnSlM0eVppQnpaV056TGdvQWRnQnVaV2xuYUdKdmNnQW9jbllnUFQwZ01Da2dmSHdnS0U1RVgyOXlaR1Z5S0hKMktTMU9SRjl2''@;'; + put 'put ''Y21SbGNpaDJLU2txWkdseUlENGdNQUJqYjI1emRISmhhVzVwYm1kZlpteGhkRjlsWkdkbEtHY3NkaXhsS1NBOVBTQkdRVXhUUlFCbWJHRjBYM0psYjNKa1pYSUFUa1JmY21GdWF5aDJLU0E5UFNCeUFIQnZjM1J2Y21SbGNnQm1iR0YwYVc1a1pYZ29ZV2RvWldGa0tHVXBLU0E4SUUwdFBtNXli''@;'; + put 'put ''M2R6QUdac1lYUmZjMlZoY21Ob0FHWnNZWFJwYm1SbGVDaGhaM1JoYVd3b1pTa3BJRHdnVFMwK2JtTnZiSE1BYjNWMEFHOXlaR1Z5YVc1bklDY2xjeWNnYm05MElISmxZMjluYm1sNlpXUXVDZ0J2Y21SbGNtbHVaeUFuSlhNbklHNXZkQ0J5WldOdloyNXBlbVZrSUdadmNpQnViMlJsSUNjbGN5''@;'; + put 'put ''Y3VDZ0J0WlhKblpUSTZJR2R5WVhCb0lDVnpMQ0J5WVc1cklDVmtJR2hoY3lCdmJteDVJQ1ZrSUR3Z0pXUWdibTlrWlhNS0FHMXBibU55YjNOek9pQndZWE56SUNWa0lHbDBaWElnSldRZ2RISjVhVzVuSUNWa0lHTjFjbDlqY205emN5QWxaQ0JpWlhOMFgyTnliM056SUNWa0NnQk9SRjl2Y21S''@;'; + put 'put ''bGNpaDJLU0E4SUU1RVgyOXlaR1Z5S0hjcEFHSmhiR0Z1WTJVQWRISmhibk53YjNObFgzTjBaWEFBYzNWeWNISnBjMlVLQUdsdWMzUmhiR3hmYVc1ZmNtRnVheXdnYkdsdVpTQWxaRG9nSlhNZ0pYTWdjbUZ1YXlBbFpDQnBJRDBnSldRZ1lXNGdQU0F3Q2dCSFJGOXlZVzVyS0djcFczSmRMbTRn''@;'; + put 'put ''UEQwZ1IwUmZjbUZ1YXlobktWdHlYUzVoYmdCcGJuTjBZV3hzWDJsdVgzSmhibXNBYVc1emRHRnNiRjlwYmw5eVlXNXJMQ0JzYVc1bElDVmtPaUJPUkY5dmNtUmxjaWdsY3lrZ1d5VmtYU0ErSUVkRVgzSmhibXNvVW05dmRDbGJKV1JkTG1GdUlGc2xaRjBLQUdsdWMzUmhiR3hmYVc1ZmNtRnVh''@;'; + put 'put ''eXdnYkdsdVpTQWxaRG9nY21GdWF5QWxaQ0J1YjNRZ2FXNGdjbUZ1YXlCeVlXNW5aU0JiSldRc0pXUmRDZ0JwYm5OMFlXeHNYMmx1WDNKaGJtc3NJR3hwYm1VZ0pXUTZJRWRFWDNKaGJtc29aeWxiSldSZExuWWdLeUJPUkY5dmNtUmxjaWdsY3lrZ1d5VmtYU0ErSUVkRVgzSmhibXNvWnlsYkpX''@;'; + put 'put ''UmRMbUYySUNzZ1IwUmZjbUZ1YXloU2IyOTBLVnNsWkYwdVlXNGdXeVZrWFFvQVgyNWxkMTl5WVc1ckFHMWpiR2x0YVhRQWNtRnVheWhuTENBeUxDQnVjMmwwWlhJeUtHY3BLU0E5UFNBd0FIQnZjMmwwYVc5dUxtTUFaRzkwWDNCdmMybDBhVzl1QUVGU1BTVXdMalJzWmdrZ1FYSmxZVDBnSlRB''@;'; + put 'put ''dU5HeG1DUUJFZFcxdGVUMGxaQW9BUjI5cGJtY2dkRzhnWVhCd2JIa2dZVzV2ZEdobGNpQmxlSEJoYm5OcGIyNHVDZ0J1WlhoMEkybDBaWEk5SldRS0FHaHdBR052Ym01bFkzUkhjbUZ3YUFCRlpHZGxJR3hsYm1kMGFDQWxaaUJzWVhKblpYSWdkR2hoYmlCdFlYaHBiWFZ0SUNWMUlHRnNiRzkz''@;'; + put 'put ''WldRdUNrTm9aV05ySUdadmNpQnZkbVZ5ZDJsa1pTQnViMlJsS0hNcExnb0Fibk5zYVcxcGRBQmpiMjUwWVdsdVgyNXZaR1Z6SUdOc2RYTjBJQ1Z6SUhKaGJtc2dKV1FnYldsemMybHVaeUJ1YjJSbENnQnVjMnhwYldsME1RQnVaWGR5WVc1ckFFMWhlSEpoYm1zZ1BTQWxaQ3dnYldsdWNtRnVh''@;'; + put 'put ''eUE5SUNWa0NnQnNaV0ZrWlhJZ0lUMGdUbFZNVEFCeVlXNXJMbU1BWTJ4MWMzUmxjbDlzWldGa1pYSUFLRTVFWDFWR1gzTnBlbVVvYmlrZ1BEMGdNU2tnZkh3Z0tHNGdQVDBnYkdWaFpHVnlLUUJoWjJobFlXUW9aU2tnUFQwZ1ZVWmZabWx1WkNoaFoyaGxZV1FvWlNrcEFHMXBibTFoZUY5bFpH''@;'; + put 'put ''ZGxjd0JoWjNSaGFXd29aU2tnUFQwZ1ZVWmZabWx1WkNoaFozUmhhV3dvWlNrcEFISmhibXNBYzJGdFpRQnRhVzRBYzI5MWNtTmxBRzFoZUFCemFXNXJBR3hsZG1Wc0lHRnpjMmxuYm0xbGJuUWdZMjl1YzNSeVlXbHVkSE1BYkdWMlpXd2daM0poY0dnZ2NtVmpBSDl5YjI5MEFIOTBiM0FBZjJK''@;'; + put 'put ''dmRBQmpiMjF3WVdOMEFGOTNaV0ZyWHlWa0FISmhibXRwYm1jNklHWmhhV3gxY21VZ2RHOGdZM0psWVhSbElITjBjbTl1WnlCamIyNXpkSEpoYVc1MElHVmtaMlVnWW1WMGQyVmxiaUJ1YjJSbGN5QWxjeUJoYm1RZ0pYTUtBQ1Z6SUdoaGN5QjFibkpsWTI5bmJtbDZaV1FnY21GdWF6MGxjd0Jz''@;'; + put 'put ''WlhabGJDQmxaR2RsSUhKbFl3QnNaWFpsYkNCdWIyUmxJSEpsWXdCellXMWxhR1ZoWkFCellXMWxkR0ZwYkFCMGIyOGdiV0Z1ZVNBb1BpQWxaQ2tnYzJGdFpYdG9aV0ZrTEhSaGFXeDlJR2R5YjNWd2N5Qm1iM0lnYm05a1pTQWxjd29BWTI5dFltbEJVaUE5SUNWc1pnb0FKV3htTENWa0FIUm9a''@;'; + put 'put ''U0JoYzNCbFkzUWdZWFIwY21saWRYUmxJR2hoY3lCaVpXVnVJR1JwYzJGaWJHVmtJR1IxWlNCMGJ5QnBiWEJzWlcxbGJuUmhkR2x2YmlCbWJHRjNjeUF0SUdGMGRISnBZblYwWlNCcFoyNXZjbVZrTGdvQVJVUmZkRzlmZG1seWRDaGxLU0E5UFNCT1ZVeE1BR05zWVhOek1pNWpBRzFsY21kbFgy''@;'; + put 'put ''Tm9ZV2x1QUVWRVgzUnZYM1pwY25Rb2IzSnBaeWtnUFQwZ1RsVk1UQUJ0WVd0bFgyTm9ZV2x1QUVWRVgzUnZYM1pwY25Rb2IzSnBaeWtnSVQwZ1RsVk1UQUJPUkY5eVlXNXJLR1p5YjIwcElEd2dUa1JmY21GdWF5aDBieWtBWTJ4MWMzUmxjaTVqQUcxaGNGOXdZWFJvQUNWeklIZGhjeUJoYkhK''@;'; + put 'put ''bFlXUjVJR2x1SUdFZ2NtRnVhM05sZEN3Z1pHVnNaWFJsWkNCbWNtOXRJR05zZFhOMFpYSWdKWE1LQUd4b1pXRmtBR3gwWVdsc0FDVnpJQzArSUNWek9pQnpjR3hwYm1VZ2MybDZaU0ErSURFZ2JtOTBJSE4xY0hCdmNuUmxaQW9BSlhNZ0xUNGdKWE02SUdobFlXUWdibTkwSUdsdWMybGtaU0Jv''@;'; + put 'put ''WldGa0lHTnNkWE4wWlhJZ0pYTUtBQ1Z6SUMwK0lDVnpPaUIwWVdsc0lHbHpJR2x1YzJsa1pTQm9aV0ZrSUdOc2RYTjBaWElnSlhNS0FHSmxlaTArYzJac1lXY0FZMjl0Y0c5MWJtUXVZd0J0WVd0bFEyOXRjRzkxYm1SRlpHZGxBR0psZWkwK1pXWnNZV2NBSlhNZ0xUNGdKWE02SUhSaGFXd2di''@;'; + put 'put ''bTkwSUdsdWMybGtaU0IwWVdsc0lHTnNkWE4wWlhJZ0pYTUtBQ1Z6SUMwK0lDVnpPaUJvWldGa0lHbHpJR2x1YzJsa1pTQjBZV2xzSUdOc2RYTjBaWElnSlhNS0FITmxaMjFsYm5RZ1d5VnpMQ1Z6WFNCa2IyVnpJRzV2ZENCcGJuUmxjbk5sWTNRZ1ltOTRJR3hzUFNWekxIVnlQU1Z6Q2dCaWIz''@;'; + put 'put ''aEpiblJsY25ObFkzUm1BQ2dsTGpWbkxDVXVOV2NwQUdOc2RYTjBaWElnYm1GdFpXUWdKWE1nYm05MElHWnZkVzVrQ2dCamIyNWpaVzUwY21GMFpUMTBjblZsSUcxaGVTQnViM1FnZDI5eWF5QmpiM0p5WldOMGJIa3VDZ0J5WldKMWFXeDBaRjkyYkdsemRITTZJSEpoYm1zZ2JHVmhaQ0FsY3lC''@;'; + put 'put ''dWIzUWdhVzRnYjNKa1pYSWdKV1FnYjJZZ2NtRnVheUFsWkFvQVpHVm5aVzVsY21GMFpTQmpiMjVqWlc1MGNtRjBaV1FnY21GdWF5QWxjeXdsWkFvQVRrUmZhVzRvY21sbmFIUXBMbk5wZW1VZ0t5Qk9SRjl2ZFhRb2NtbG5hSFFwTG5OcGVtVWdQVDBnTUFCamIyNWpMbU1BYldWeVoyVjJhWEow''@;'; + put 'put ''ZFdGc0FHUnZkRG9nVDNWMElHOW1JRzFsYlc5eWVRb0FUa1JmYjNWMEtIWXBMbk5wZW1VZ1BUMGdNZ0JtYkdGMExtTUFjMlYwWW05MWJtUnpBRWRFWDIxcGJuSmhibXNvWnlrZ1BUMGdNQUJoWW05dGFXNWhkR2x2YmdCdVpXRjBiMTlzWVhsdmRYUUFibVZoZEc4QVptUndBSE5tWkhBQWRIZHZj''@;'; + put 'put ''R2tBWTJseVkyOEFjR0YwWTJoM2IzSnJBRzl6WVdkbEFHNXZjQUJ1YjNBeEFHNXZjRElBSld4bUxDVnNaaXdsYkdZbFl3QnViMlJsSUNWekxDQndiM05wZEdsdmJpQWxjeXdnWlhod1pXTjBaV1FnZEhkdklHUnZkV0pzWlhNS0FHNXZkSEpoYm5Oc1lYUmxBRzV2WkdVZ0pYTWdhVzRnWjNKaGNH''@;'; + put 'put ''Z2dKWE1nYUdGeklHNXZJSEJ2YzJsMGFXOXVDZ0J6TENWc1ppd2xiR1lsYmdBZ1pTd2xiR1lzSld4bUpXNEFjRzl6SUdGMGRISnBZblYwWlNCbWIzSWdaV1JuWlNBb0pYTXNKWE1wSUdSdlpYTnVKM1FnYUdGMlpTQXpiaXN4SUhCdmFXNTBjd29BSld4bUxDVnNaaVZ1QUhONWJuUmhlQ0JsY25K''@;'; + put 'put ''dmNpQnBiaUJ3YjNNZ1lYUjBjbWxpZFhSbElHWnZjaUJsWkdkbElDZ2xjeXdsY3lrS0FDVnNaaXdsYkdZc0pXeG1MQ1ZzWmdCemRHRnlkQUJ6Wld4bUFISmhibVJ2YlFCdWIyUmxJSEJ2YzJsMGFXOXVjeUJoY21VZ2FXZHViM0psWkNCMWJteGxjM01nYzNSaGNuUTljbUZ1Wkc5dENnQmhjeUJ5''@;'; + put 'put ''WlhGMWFYSmxaQ0JpZVNCMGFHVWdMVzRnWm14aFp3b0FYMjVsWVhSdlgyTmpBR2R5WVhCb0lDVnpJR2x6SUdScGMyTnZibTVsWTNSbFpDNGdTR1Z1WTJVc0lIUm9aU0JqYVhKamRXbDBJRzF2WkdWc0NnQkJiSFJsY201aGRHbDJaV3g1TENCamIyNXphV1JsY2lCeWRXNXVhVzVuSUc1bFlYUnZJ''@;'; + put 'put ''SFZ6YVc1bklDMUhjR0ZqYXoxMGNuVmxJRzl5SUdSbFkyOXRjRzl6YVc1bkNnQjBhR1VnWjNKaGNHZ2dhVzUwYnlCamIyNXVaV04wWldRZ1kyOXRjRzl1Wlc1MGN5NEtBRk52YkhacGJtY2diVzlrWld3Z0pXUWdhWFJsY21GMGFXOXVjeUFsWkNCMGIyd2dKV1lLQUU1RVgybGtLRzV3S1NBOVBT''@;'; + put 'put ''QnBBRzVsWVhSdmFXNXBkQzVqQUcxaGEyVkhjbUZ3YUVSaGRHRUFaaUE4SUdkeVlYQm9XMnBkTG01bFpHZGxjd0JrWm5ORGVXTnNaUUJ0YjJSbGJDQWxaQ0J6YldGeWRGOXBibWwwSUNWa0lITjBjbVZ6YzNkMElDVmtJR2wwWlhKaGRHbHZibk1nSldRZ2RHOXNJQ1ZtQ2dCamIyNTJaWEowSUdk''@;'; + put 'put ''eVlYQm9PaUFBYldGcWIzSnBlbUYwYVc5dUNnQWxaQ0J1YjJSbGN5QWxMakptSUhObFl3b0FiR1YyWld4eloyRndBR3hoZVc5MWRDQmhZbTl5ZEdWa0NnQnpkSEpsYzNOM2RBQWxjeUJoZEhSeWFXSjFkR1VnZG1Gc2RXVWdiWFZ6ZENCaVpTQXhJRzl5SURJZ0xTQnBaMjV2Y21sdVp3b0FiVzlr''@;'; + put 'put ''Wld3QVkybHlZM1ZwZEFCemRXSnpaWFFBYzJodmNuUndZWFJvQUcxa2N3QmxaR2RsY3lCcGJpQm5jbUZ3YUNBbGN5Qm9ZWFpsSUc1dklHeGxiaUJoZEhSeWFXSjFkR1V1SUVobGJtTmxMQ0IwYUdVZ2JXUnpJRzF2WkdWc0NnQnBjeUJwYm1Gd2NISnZjSEpwWVhSbExpQlNaWFpsY25ScGJtY2dk''@;'; + put 'put ''RzhnZEdobElITm9iM0owWlhOMElIQmhkR2dnYlc5a1pXd3VDZ0JWYm10dWIzZHVJSFpoYkhWbElDVnpJR1p2Y2lCaGRIUnlhV0oxZEdVZ0ltMXZaR1ZzSWlCcGJpQm5jbUZ3YUNBbGN5QXRJR2xuYm05eVpXUUtBRzF2WkdVQVMwc0FiV0ZxYjNJQWFHbGxjZ0JKYkd4bFoyRnNJSFpoYkhWbElD''@;'; + put 'put ''VnpJR1p2Y2lCaGRIUnlhV0oxZEdVZ0ltMXZaR1VpSUdsdUlHZHlZWEJvSUNWeklDMGdhV2R1YjNKbFpBb0FiV0ZyWlZOd2JHbHVaVG9nWm1GcGJHVmtJSFJ2SUcxaGEyVWdjM0JzYVc1bElHVmtaMlVnS0NWekxDVnpLUW9BYzNCc2FXNWxJQ1Z6SUNWekNnQmlJRDA5SUc0QWJtVmhkRzl6Y0d4''@;'; + put 'put ''cGJtVnpMbU1BYldGclpWOWlZWEp5YVdWeWN3QjBhR1VnWW05MWJtUnBibWNnWW05NFpYTWdiMllnYzI5dFpTQnViMlJsY3lCMGIzVmphQ0F0SUdaaGJHeHBibWNnWW1GamF5QjBieUJ6ZEhKaGFXZG9kQ0JzYVc1bElHVmtaMlZ6Q2dCemIyMWxJRzV2WkdWeklIZHBkR2dnYldGeVoybHVJQ2ds''@;'; + put 'put ''TGpBeVppd2xMakF5WmlrZ2RHOTFZMmdnTFNCbVlXeHNhVzVuSUdKaFkyc2dkRzhnYzNSeVlXbG5hSFFnYkdsdVpTQmxaR2RsY3dvQWNHOXNlV3hwYm1WekFHeHBibVVnYzJWbmJXVnVkSE1BYjNKMGFHOW5iMjVoYkNCc2FXNWxjd0JEY21WaGRHbHVaeUJsWkdkbGN5QjFjMmx1WnlBbGN3b0Fj''@;'; + put 'put ''RzlzZVd4cGJtVWdKWE1nSlhNS0FHMWtjMDF2WkdWc09pQmtaV3gwWVNBOUlDVm1DZ0JUWlhSMGFXNW5JSFZ3SUhOMGNtVnpjeUJtZFc1amRHbHZiZ0JUYjJ4MmFXNW5JRzF2WkdWc09pQUFDbVpwYm1Gc0lHVWdQU0FsWmlBbFpDQnBkR1Z5WVhScGIyNXpJQ1V1TW1ZZ2MyVmpDZ0JFWVcxd2FX''@;'; + put 'put ''NW5BR1JsWm1GMWJIUmthWE4wQUNCcGJpQWxjeUF0SUhObGRIUnBibWNnZEc4Z0pTNHdNbVlLQUdKaFpDQmxaR2RsSUd4bGJpQWlKWE1pQUZObGRIUnBibWNnYVc1cGRHbGhiQ0J3YjNOcGRHbHZibk1LQUhOMFlYSjBQU1Z6SUc1dmRDQnpkWEJ3YjNKMFpXUWdkMmwwYUNCdGIyUmxQWE5sYkdZ''@;'; + put 'put ''Z0xTQnBaMjV2Y21Wa0NnQlRaWFIwYVc1bklIVndJSE53Y21sdVp5QnRiMlJsYkRvZ0FDVXVNbVlnYzJWakNnQUtabWx1WVd3Z1pTQTlJQ1ZtQUNFQUlDVmtKWE1nYVhSbGNtRjBhVzl1Y3lBbExqSm1JSE5sWXdvQVRXRjRMaUJwZEdWeVlYUnBiMjV6SUNnbFpDa2djbVZoWTJobFpDQnZiaUJu''@;'; + put 'put ''Y21Gd2FDQWxjd29BSlhNZ0pTNHpaZ29BSlM0elppQUFUa1JmYUdWaGNHbHVaR1Y0S0hZcElEd2dNQUJ6ZEhWbVppNWpBRzVsWVhSdlgyVnVjWFZsZFdVQVEyRnNZM1ZzWVhScGJtY2djMmh2Y25SbGMzUWdjR0YwYUhNNklBQnpjR1ZqYVdacFpXUWdjbTl2ZENCdWIyUmxJQ0lsY3lJZ2QyRnpJ''@;'; + put 'put ''RzV2ZENCbWIzVnVaQzRBVlhOcGJtY2daR1ZtWVhWc2RDQmpZV3hqZFd4aGRHbHZiaUJtYjNJZ2NtOXZkQ0J1YjJSbENnQnlaWEJ2YzJsMGFXOXVJQ1Z6Q2dBbGN5QTZJQ1ZtSUNWbUNnQWxjeUE2SUNWbUlDVm1JQ1ZtSUNWbUNnQWdJQUJIY21Gd2FDQWxjeUJvWVhNZ1lYSnlZWGtnY0dGamEy''@;'; + put 'put ''bHVaeUIzYVhSb0lIVnpaWElnZG1Gc2RXVnpJR0oxZENCdWJ5QWljMjl5ZEhZaUlHRjBkSEpwWW5WMFpYTWdZWEpsSUdSbFptbHVaV1F1QUhCcGJnQlhZWEp1YVc1bk9pQnViMlJsSUNWekxDQndiM05wZEdsdmJpQWxjeXdnWlhod1pXTjBaV1FnZEhkdklHWnNiMkYwY3dvQVkyOXZjbVJ6QUd4''@;'; + put 'put ''aGVXOTFkQ0FsY3dvQVpXNWtJQ1Z6Q2dCcFpIZ2dQVDBnYzNvQWJHRjViM1YwTG1NQVpYaHdZVzVrUTJ4MWMzUmxjZ0JwSUQwOUlHUmxad0JuWlhSRlpHZGxUR2x6ZEFCZlpHZGZKV1FBWkdWeWFYWmxJR2R5WVhCb0lDVnpJRzltSUNWekNnQnViMlJsSUNJbGN5SWdhWE1nWTI5dWRHRnBibVZr''@;'; + put 'put ''SUdsdUlIUjNieUJ1YjI0dFkyOXRjR0Z5WVdKc1pTQmpiSFZ6ZEdWeWN5QWlKWE1pSUdGdVpDQWlKWE1pQ2dCZmNHOXlkRjhsYzE4bGMxOGxjMThsYkdRQVgzQnZjblJmSlhOZktDVmtLVjhvSldRcFh5VnNaQUFsYkdZc0pXeG1MQ1ZzWml3bGJHWWxZd0JuY21Gd2FDQWxjeXdnWTI5dmNtUWdK''@;'; + put 'put ''WE1zSUdWNGNHVmpkR1ZrSUdadmRYSWdaRzkxWW14bGN3b0FjM0JzYVc1bGN5QmhibVFnWTJ4MWMzUmxjaUJsWkdkbGN5QnViM1FnYzNWd2NHOXlkR1ZrSUMwZ2RYTnBibWNnYkdsdVpTQnpaV2R0Wlc1MGN3b0FiV0Y0YVhSbGNnQlVNQUJtWkhBZ1pHOWxjeUJ1YjNRZ2MzVndjRzl5ZENCemRH''@;'; + put 'put ''RnlkRDF6Wld4bUlDMGdhV2R1YjNKcGJtY0tBSGhNWVhsdmRYUWdBRGs2Y0hKcGMyMEFkSEpwWlhNZ1BTQWxaQ3dnYlc5a1pTQTlJQ1Z6Q2dCa1pYSnBkbVZrQUdsdVptOEFjMlprY0NCdmJteDVJSE4xY0hCdmNuUnpJSE4wWVhKMFBYSmhibVJ2YlFvQVN3QnlaWEIxYkhOcGRtVm1iM0pqWlFC''@;'; + put 'put ''c1pYWmxiSE1BYzIxdmIzUm9hVzVuQUhGMVlXUjBjbVZsQUdKbFlYVjBhV1o1QUc5MlpYSnNZWEJmYzJoeWFXNXJBSEp2ZEdGMGFXOXVBR3hoWW1Wc1gzTmphR1Z0WlFCc1lXSmxiRjl6WTJobGJXVWdQU0FsWkNBK0lEUWdPaUJwWjI1dmNtbHVad29BWm1GemRBQmhkbWRmWkdsemRBQm5jbUZ3''@;'; + put 'put ''YUY5a2FYTjBBSEJ2ZDJWeVgyUnBjM1FBYzNCeWFXNW5BR1JwYldWdUFHUnBiUUJ6Y0hKcGJtZGZaV3hsWTNSeWFXTmhiRjlqYjI1MGNtOXNPZ29BSUNCeVpYQjFiSE5wZG1VZ1lXNWtJR0YwZEhKaFkzUnBkbVVnWlhod2IyNWxiblJ6T2lBbExqQXpaaUFsTGpBelpnb0FJQ0J5WVc1a2IyMGdj''@;'; + put 'put ''M1JoY25RZ0pXUWdjMlZsWkNBbFpBb0FJQ0JMSURvZ0pTNHdNMllnUXlBNklDVXVNRE5tQ2dBZ0lHMWhlQ0JzWlhabGJITWdKV1FnWTI5aGNuTmxibDl6WTJobGJXVWdKV1FnWTI5aGNuTmxibDl1YjJSbElDVmtDZ0FnSUhGMVlXUjBjbVZsSUhOcGVtVWdKV1FnYldGNFgyeGxkbVZzSUNWa0Nn''@;'; + put 'put ''QWdJRUpoY201bGN5MUlkWFIwSUdOdmJuTjBZVzUwSUNVdU1ETm1JSFJ2YkdWeVlXNWpaU0FnSlM0d00yWWdiV0Y0YVhSbGNpQWxaQW9BSUNCamIyOXNhVzVuSUNVdU1ETm1JSE4wWlhBZ2MybDZaU0FnSlM0d00yWWdZV1JoY0hScGRtVWdKV1FLQUNBZ1ltVmhkWFJwWm5sZmJHVmhkbVZ6SUNW''@;'; + put 'put ''a0lHNXZaR1VnZDJWcFoyaDBjeUFsWkNCeWIzUmhkR2x2YmlBbExqQXpaZ29BSUNCemJXOXZkR2hwYm1jZ0pYTWdiM1psY214aGNDQWxaQ0JwYm1sMGFXRnNYM05qWVd4cGJtY2dKUzR3TTJZZ1pHOWZjMmh5YVc1cmFXNW5JQ1ZrQ2dBZ0lHOWpkSEpsWlNCelkyaGxiV1VnSlhNZ2JXVjBhRzlr''@;'; + put 'put ''SUNWekNnQWdJR1ZrWjJWZmJHRmlaV3hwYm1kZmMyTm9aVzFsSUNWa0NnQlRVRkpKVGtkZlJVeEZRMVJTU1VOQlRBQlRVRkpKVGtkZlRVRllSVTVVQUZOVVVrVlRVMTlOUVZoRlRsUUFVMVJTUlZOVFgwRlFVRkpQV0FCVFZGSkZVMU1BVlU1SlJrOVNUVjlUVkZKRlUxTUFSbFZNVEY5VFZGSkZV''@;'; + put 'put ''MU1BVGs5T1JRQk9UMUpOUVV3QVJrRlRWQUJJV1VKU1NVUUFVMVJTUlZOVFgwMUJTazlTU1ZwQlZFbFBUbDlIVWtGUVNGOUVTVk5VQUZOVVVrVlRVMTlOUVVwUFVrbGFRVlJKVDA1ZlFWWkhYMFJKVTFRQVUxUlNSVk5UWDAxQlNrOVNTVnBCVkVsUFRsOVFUMWRGVWw5RVNWTlVBRk5RVWtsT1J3''@;'; + put 'put ''QlVVa2xCVGtkTVJRQlNUa2NBRFNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwZEdWeUlEMGdKV1FzSUhOMFpYQWdQU0FsWmlCR2JtOXliU0E5SUNWbUlHNTZJRDBnSldRZ0lFc2dQU0FsWmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FBYzNCeWFXNW5YMlZzWldO''@;'; + put 'put ''MGNtbGpZV3hmWlcxaVpXUmthVzVuWDNOc2IzY0FaRzFsWVc0Z1BTQWxaaXdnY21odklEMGdKV1lLQUhObGJtUWdjbUZ1Wkc5dElHTnZiM0prYVc1aGRHVnpDZ0J6WTJGc2FXNW5JR1poWTNSdmNpQTlJQ1ZtQ2dCUlZVRkVYMVJTUlVWZlNGbENVa2xFTENCemFYcGxJR3hoY21kbGNpQjBhR0Z1''@;'; + put 'put ''SUNWa0xDQnpkMmwwWTJnZ2RHOGdabUZ6ZENCeGRXRmtkSEpsWlFCamRISnNMVDV2ZG1WeWJHRndQU1ZrQ2dBbFpDQWxaQW9BZFc1cFptOXliVjl6ZEhKbGMzTXVZd0JWYm1sbWIzSnRVM1J5WlhOelUyMXZiM1JvWlhKZmJtVjNBRk53WVhKelpVMWhkSEpwZUY5cGMxOXplVzF0WlhSeWFXTW9R''@;'; + put 'put ''aXdnUmtGTVUwVXBBSFZ1YVdadmNtMWZjM1J5WlhOekFIeGxaR2RsYkdGaVpXeDhBR3hsYmdCdWIzSnRZV3hwZW1VQWIzWmxjbXhoY0FCUGRtVnliR0Z3SUhaaGJIVmxJQ0lsY3lJZ2RXNXpkWEJ3YjNKMFpXUWdMU0JwWjI1dmNtVmtDZ0JWYm5KbFkyOW5ibWw2WldRZ2IzWmxjbXhoY0NCMllX''@;'; + put 'put ''eDFaU0FpSlhNaUlDMGdkWE5wYm1jZ1ptRnNjMlVLQUZadmNtOXViMmtBYjNabGNteGhjRG9nSlhNZ2RtRnNkV1VnSldRZ2MyTmhiR2x1WnlBbExqQTBaZ29BYjNabGNteGhjRjl6WTJGc2FXNW5BSFp2Y205dWIya0FjMk5oYkdsdVp3QjJjSE5qQUdsd2MyVndBRzl6WTJGc1pRQnZiR1FnYzJO''@;'; + put 'put ''aGJHbHVad0J6WTJGc1pYaDVBSGdnWVc1a0lIa2djMk5oYkdsdVp3QnZjblJvYndCdmNuUm9iMmR2Ym1Gc0lHTnZibk4wY21GcGJuUnpBRzl5ZEdodlgzbDRBRzl5ZEdodmVIa0FlSGtnYjNKMGFHOW5iMjVoYkNCamIyNXpkSEpoYVc1MGN3QnZjblJvYjNsNEFIbDRJRzl5ZEdodloyOXVZV3dn''@;'; + put 'put ''WTI5dWMzUnlZV2x1ZEhNQWNHOXlkR2h2QUhCelpYVmtieTF2Y25Sb2IyZHZibUZzSUdOdmJuTjBjbUZwYm5SekFIQnZjblJvYjE5NWVBQndiM0owYUc5NGVRQjRlU0J3YzJWMVpHOHRiM0owYUc5bmIyNWhiQ0JqYjI1emRISmhhVzUwY3dCd2IzSjBhRzk1ZUFCNWVDQndjMlYxWkc4dGIzSjBh''@;'; + put 'put ''RzluYjI1aGJDQmpiMjV6ZEhKaGFXNTBjd0J3Y21semJRQkJaR3AxYzNScGJtY2dKWE1nZFhOcGJtY2dKWE1LQUZWdWFHRnVaR3hsWkNCaFpHcDFjM1FnYjNCMGFXOXVJQ1Z6Q2dCT2RXMWlaWElnYjJZZ2FYUmxjbUYwYVc5dWN5QTlJQ1ZrQ2dCT2RXMWlaWElnYjJZZ2FXNWpjbVZoYzJWeklE''@;'; + put 'put ''MGdKV1FLQUc5MlpYSnNZWEFnV3lWa1hTQTZJQ1ZrQ2dCMmIzSnZYMjFoY21kcGJnQnpaWEFBWlhObGNBQk9iMlJsSUhObGNHRnlZWFJwYjI0NklHRmtaRDBsWkNBb0pXWXNKV1lwQ2dBbFppd2xaZ0J6WTJGc1pTQTlJQ2dsTGpBelppd2xMakF6WmlrS0FFVmtaMlVnYzJWd1lYSmhkR2x2Ympv''@;'; + put 'put ''Z1lXUmtQU1ZrSUNnbFppd2xaaWtLQUVOaGJHTjFiR0YwYVc1bklHTnBjbU4xYVhRZ2JXOWtaV3dBWTI5dWFuVm5ZWFJsWDJkeVlXUnBaVzUwT2lCMWJtVjRjR1ZqZEdWa0lHeGxibWQwYUNBd0lIWmxZM1J2Y2dvQVEyRnNZM1ZzWVhScGJtY2djM1ZpYzJWMElHMXZaR1ZzQUdkeVlYQm9JR2x6''@;'; + put 'put ''SUdScGMyTnZibTVsWTNSbFpDNGdTR1Z1WTJVc0lIUm9aU0JqYVhKamRXbDBJRzF2WkdWc0NnQnBjeUIxYm1SbFptbHVaV1F1SUZKbGRtVnlkR2x1WnlCMGJ5QjBhR1VnYzJodmNuUmxjM1FnY0dGMGFDQnRiMlJsYkM0S0FFTmhiR04xYkdGMGFXNW5JRTFFVXlCdGIyUmxiQUJEWVd4amRXeGhk''@;'; + put 'put ''R2x1WnlCemFHOXlkR1Z6ZENCd1lYUm9jd0E2SUNVdU1tWWdjMlZqQ2dCVFpYUjBhVzVuSUdsdWFYUnBZV3dnY0c5emFYUnBiMjV6QURvZ0pTNHlaaUJ6WldNQVkyY0FaR1ZzZEdFZ1BEMGdNSGhHUmtaR0FHTnZibk4wY21GcGJuUXVZd0J0YTA1RGIyNXpkSEpoYVc1MFJ3QjJad0JqYjIxd2Nt''@;'; + put 'put ''VnpjeUFsWnlBS0FITmpZV3hsSUdKNUlDVm5MQ1ZuSUFvQVltVnpkR052YzNRZ1BDQklWVWRGWDFaQlRBQmpiMjF3ZFhSbFUyTmhiR1ZZV1FCSGNtRndhSFpwZWlCaWRXbHNkQ0IzYVhSb2IzVjBJR0Z1ZVNCMGNtbGhibWQxYkdGMGFXOXVJR3hwWW5KaGNua0tBR1JsYkdGMWJtRjVYM1J5YVdG''@;'; + put 'put ''dVozVnNZWFJwYjI0NklDVnpDZ0JrWld4aGRXNWhlVjkwY21rNklDVnpDZ0IwY25scGJtY2dkRzhnWkdWc1pYUmxJR0VnYm05dUxXeHBibVVLQUFwcGJuUmxjbk5sWTNScGIyNGdZWFFnSlM0elppQWxMak5tQ2dCelpXY2pKV1FnT2lBb0pTNHpaaXdnSlM0elppa2dLQ1V1TTJZc0lDVXVNMllw''@;'; + put 'put ''Q2dCeVpXMXZkbVZmYjNabGNteGhjRG9nUjNKaGNHaDJhWG9nYm05MElHSjFhV3gwSUhkcGRHZ2dkSEpwWVc1bmRXeGhkR2x2YmlCc2FXSnlZWEo1Q2dCdFlXdGxRV1JrVUc5c2VUb2dkVzVyYm05M2JpQnphR0Z3WlNCMGVYQmxJQ1Z6Q2dCdFlXdGxVRzlzZVRvZ2RXNXJibTkzYmlCemFHRnda''@;'; + put 'put ''U0IwZVhCbElDVnpDZ0I0SVQxT1ZVeE1BSE50WVhKMFgybHVhVjk0TG1NQVNVMUVVMTluYVhabGJsOWthVzBBYVd4c0xXTnZibVJwZEdsdmJtVmtBSEp2YjNRZ1BTQWxjeUJ0WVhnZ2MzUmxjSE1nZEc4Z2NtOXZkQ0E5SUNWa0NnQjBkMjl3YVRvZ2RYTmxJRzltSUhkbGFXZG9kRDB3SUdOeVpX''@;'; + put 'put ''RjBaWE1nWkdselkyOXVibVZqZEdWa0lHTnZiWEJ2Ym1WdWRDNEtBRkpoYm1zZ2MyVndZWEpoZEdsdmJpQTlJQUFsTGpBemJHWWdBR0Z5WldFQWFXNXpaWFFBSlhNZ1kyOXZjbVFnSlM0MVp5QWxMalZuSUdoMElDVm1JSGRwWkhSb0lDVm1DZ0FsTGpBelpnQnlaV01nSldZZ0pXWWdKV1lnSldZ''@;'; + put 'put ''S0FDVm1JQzBnSldZZ0pXWWdKV1lnSldZZ1BTQWxaaUFvSldZZ0pXWWdKV1lnSldZcENnQjBjbmxwYm1jZ2RHOGdZV1JrSUhSdklISmxZM1FnZXlWbUlDc3ZMU0FsWml3Z0pXWWdLeTh0SUNWbWZRb0FkRzkwWVd3Z1lXUmtaV1FnYzI4Z1ptRnlJRDBnSldRS0FHRmtaR2x1WnlBbFpDQnBkR1Z0''@;'; + put 'put ''Y3l3Z2RHOTBZV3dnWVhKbFlTQTlJQ1ZtTENCM0lEMGdKV1lzSUdGeVpXRXZkejBsWmdvQVkyOXRjRzkxYm1SRlpHZGxjem9nWTI5MWJHUWdibTkwSUdOdmJuTjBjblZqZENCdlluTjBZV05zWlhNZ0xTQm1ZV3hzYVc1bklHSmhZMnNnZEc4Z2MzUnlZV2xuYUhRZ2JHbHVaU0JsWkdkbGN3b0FZ''@;'; + put 'put ''Mjl0Y0c5MWJtUkZaR2RsY3pvZ2JtOWtaWE1nZEc5MVkyZ2dMU0JtWVd4c2FXNW5JR0poWTJzZ2RHOGdjM1J5WVdsbmFIUWdiR2x1WlNCbFpHZGxjd29BY0dGamF5QjJZV3gxWlNBbFpDQnBjeUJ6YldGc2JHVnlJSFJvWVc0Z1pYTmxjQ0FvSlM0d00yWXNKUzR3TTJZcENnQnpaWEFnZG1Gc2RX''@;'; + put 'put ''VWdLQ1V1TURObUxDVXVNRE5tS1NCcGN5QnpiV0ZzYkdWeUlIUm9ZVzRnWlhObGNDQW9KUzR3TTJZc0pTNHdNMllwQ2dCall5VnpYeVZrQUdOakpYTXJKV1FBWTE5amJuUWdQVDBnTUFCamIyMXdMbU1BWm1sdVpFTkRiMjF3QUdkeWFXUW9KV1FzSldRcE9pQWxjd29BZDJkMElENGdNQUJSZFdG''@;'; + put 'put ''a1ZISmxaUzVqQUZGMVlXUlVjbVZsWDNKbGNIVnNjMmwyWlY5bWIzSmpaVjloWTJOMWJYVnNZWFJsQUhGME1pMCtiaUErSURBQWNYUXhMVDV1SUQ0Z01DQW1KaUJ4ZERJdFBtNGdQaUF3QUZGMVlXUlVjbVZsWDNKbGNIVnNjMmwyWlY5bWIzSmpaVjlwYm5SbGNtRmpkQUJrYVhOMElENGdNQUFo''@;'; + put 'put ''S0hFdFBtd3BBRkYxWVdSVWNtVmxYMkZrWkY5cGJuUmxjbTVoYkFCcGFTQThJREU4UEdScGJTQW1KaUJwYVNBK1BTQXdBSEV0UG5GMGMxdHBhVjBBY1MwK2JpQTlQU0F4QUNFb2NTMCtjWFJ6S1FCeExUNXNBSGRwWkhSb0lENGdNQUJSZFdGa1ZISmxaVjl1WlhjQVFTMCtabTl5YldGMElEMDlJ''@;'; + put 'put ''RVpQVWsxQlZGOURVMUlBVTNCaGNuTmxUV0YwY21sNExtTUFVM0JoY25ObFRXRjBjbWw0WDNSeVlXNXpjRzl6WlFCQklDWW1JRUlBVTNCaGNuTmxUV0YwY21sNFgyRmtaQUJCTFQ1bWIzSnRZWFFnUFQwZ1FpMCtabTl5YldGMElDWW1JRUV0UG1admNtMWhkQ0E5UFNCR1QxSk5RVlJmUTFOU0FF''@;'; + put 'put ''RXRQblI1Y0dVZ1BUMGdRaTArZEhsd1pRQlRjR0Z5YzJWTllYUnlhWGhmYVhOZmMzbHRiV1YwY21sakFFRXRQbVp2Y20xaGRDQTlQU0JHVDFKTlFWUmZRMDlQVWtRQVUzQmhjbk5sVFdGMGNtbDRYMlp5YjIxZlkyOXZjbVJwYm1GMFpWOW1iM0p0WVhRQWJTQStJREFnSmlZZ2JpQStJREFnSmlZ''@;'; + put 'put ''Z2Jub2dQajBnTUFCVGNHRnljMlZOWVhSeWFYaGZabkp2YlY5amIyOXlaR2x1WVhSbFgyRnljbUY1YzE5cGJuUmxjbTVoYkFCQkFHcGhXMjFoYzJ0YmFtRmJhbDFkWFNBOVBTQnFZVnRxWFFCVGNHRnljMlZOWVhSeWFYaGZjM1Z0WDNKbGNHVmhkRjlsYm5SeWFXVnpBR2xrSUR3Z2Jpb29lVzFo''@;'; + put 'put ''ZUMxNWJXbHVLekVwQUdwaFcyMWhjMnRiYVdSZFhTQTlQU0JxWVZ0cVhRQlRjR0Z5YzJWTllYUnlhWGhmYlhWc2RHbHdiSGxmWkdWdWMyVXlBRUV0UG5SNWNHVWdQVDBnVFVGVVVrbFlYMVJaVUVWZlVrVkJUQUJUY0dGeWMyVk5ZWFJ5YVhoZmJYVnNkR2x3YkhsZmRtVmpkRzl5QUVFdFBuUjVj''@;'; + put 'put ''R1VnUFQwZ1RVRlVVa2xZWDFSWlVFVmZVa1ZCVENCOGZDQkJMVDUwZVhCbElEMDlJRTFCVkZKSldGOVVXVkJGWDBsT1ZFVkhSVklBVTNCaGNuTmxUV0YwY21sNFgyMTFiSFJwY0d4NVgyUmxibk5sTVFCVGNHRnljMlZOWVhSeWFYaGZiWFZzZEdsd2JIa0FhbU5iYldGemExdHFZbHRyWFYxZElE''@;'; + put 'put ''MDlJR3BpVzJ0ZEFGTndZWEp6WlUxaGRISnBlRjl0ZFd4MGFYQnNlVE1BYW1SYmJXRnphMXRxWTF0clhWMWRJRDA5SUdwalcydGRBRk53WVhKelpVMWhkSEpwZUY5amIyOXlaR2x1WVhSbFgyWnZjbTFmWVdSa1gyVnVkSEpwWlhNQVUzQmhjbk5sVFdGMGNtbDRYMlJwZG1sa1pWOXliM2RmWW5s''@;'; + put 'put ''ZlpHVm5jbVZsQUc0Z1BpQXhBR2RsYm1WeVlXd3VZd0JwY21GdVpBQnZibVZpYkc5amF3QnRhVzVrYVhOMEFHRnlkR2xqZFd4aGRHbHZibDl3YjNNQWNtOXZkQUJRY21sdmNtbDBlVkYxWlhWbExtTUFVSEpwYjNKcGRIbFJkV1YxWlY5d2RYTm9BR2RoYVc0Z1BEMGdjUzArYm1kaGFXNEFVM0Jo''@;'; + put 'put ''Y25ObFRXRjBjbWw0WDJselgzTjViVzFsZEhKcFl5aEJMQ0JHUVV4VFJTa0FjRzl6ZEY5d2NtOWpaWE56TG1NQWFXUmxZV3hmWkdsemRHRnVZMlZmYldGMGNtbDRBR3hsYmlBK0lEQUFVM1J5WlhOelRXRnFiM0pwZW1GMGFXOXVVMjF2YjNSb1pYSXlYMjVsZHdCdWVpQStJREFBYVdSbFlXeGZa''@;'; + put 'put ''R2x6ZEY5elkyaGxiV1VnZG1Gc2RXVWdkM0p2Ym1jQVUzQmhjbk5sVFdGMGNtbDRYMmx6WDNONWJXMWxkSEpwWXloQkxDQkdRVXhUUlNrZ0ppWWdRUzArZEhsd1pTQTlQU0JOUVZSU1NWaGZWRmxRUlY5U1JVRk1BRk53WVhKelpWTjBjbVZ6YzAxaGFtOXlhWHBoZEdsdmJsTnRiMjkwYUdWeVgy''@;'; + put 'put ''NWxkd0JwWkdsaFp5QStQU0F3QUZOMGNtVnpjMDFoYW05eWFYcGhkR2x2YmxOdGIyOTBhR1Z5WDNOdGIyOTBhQUFvSVdwamJpa2dKaVlnS0NGMllXd3BBR2RsZEY5bFpHZGxYMnhoWW1Wc1gyMWhkSEpwZUFCVWNtbGhibWRzWlZOdGIyOTBhR1Z5WDI1bGR3QnFaR2xoWnlBK1BTQXdBRk53Y21s''@;'; + put 'put ''dVoxTnRiMjkwYUdWeVgyNWxkd0FoWm14aFp3QlRjSEpwYm1kVGJXOXZkR2hsY2w5emJXOXZkR2dBYm1WcFoyaGlQU1ZrQ2dCeWIyOTBJRDBnSlhNS0FGOWliRzlqYTE4bFpBQnpMVDV6ZWlBK0lEQUFZbXh2WTJ0MGNtVmxMbU1BY0c5d0FHRmpkSFZoYkFCdWIyUmxiR2x6ZEM1akFHbHVjMlZ5''@;'; + put 'put ''ZEU1dlpHVnNhWE4wQUY5emNHRnVYeVZrQUY5amJHOXVaVjhsWkFCcGNBQmtaV2RzYVhOMExtTUFjbVZ0YjNabFJHVm5iR2x6ZEFCRmNuSnZjZ0JYWVhKdWFXNW5BQ1Z6T2lBQWRYTmxjbTkxZERvZ1kyOTFiR1FnYm05MElHRnNiRzlqWVhSbElHMWxiVzl5ZVFvQVgwRkhYM04wY21SaGRHRUFY''@;'; + put 'put ''MEZIWDJSaGRHRmthV04wQUdGblpHbGpkRzltT2lCMWJtdHViM2R1SUd0cGJtUWdKV1FLQUNWakpXeGtBRzFsYlc5eWVTQmhiR3h2WTJGMGFXOXVJR1poYVd4MWNtVUFZV2RrWld4bGRHVWdiMjRnZDNKdmJtY2daM0poY0dnQVgwRkhYM0JsYm1ScGJtY0FZV2R5WldOdmNtUmZZMkZzYkdKaFky''@;'; + put 'put ''c2diMllnWVNCaVlXUWdiMkpxWldOMEFIQmxibVFnWkdsamRHOW1JR0VnWW1Ga0lHOWlhbVZqZEFCdGIzWmxJSFJ2SUdaeWIyNTBJR3h2WTJzZ2FXNWpiMjV6YVhOMFpXNWplUUJjWEFCbVlYUmhiQ0JtYkdWNElITmpZVzV1WlhJZ2FXNTBaWEp1WVd3Z1pYSnliM0l0TFc1dklHRmpkR2x2YmlC''@;'; + put 'put ''bWIzVnVaQUFsY3dvQVptRjBZV3dnWm14bGVDQnpZMkZ1Ym1WeUlHbHVkR1Z5Ym1Gc0lHVnljbTl5TFMxbGJtUWdiMllnWW5WbVptVnlJRzFwYzNObFpBQm1ZWFJoYkNCbGNuSnZjaUF0SUhOallXNXVaWElnYVc1d2RYUWdZblZtWm1WeUlHOTJaWEptYkc5M0FHOTFkQ0J2WmlCa2VXNWhiV2xq''@;'; + put 'put ''SUcxbGJXOXllU0JwYmlCaFlXZGZaMlYwWDI1bGVIUmZZblZtWm1WeUtDa0FhVzV3ZFhRQWMzbHVkR0Y0SUdGdFltbG5kV2wwZVNBdElHSmhaR3g1SUdSbGJHbHRhWFJsWkNCdWRXMWlaWElnSndBbklHbHVJR3hwYm1VZ0pXUWdiMllnQUNCemNHeHBkSE1nYVc1MGJ5QjBkMjhnZEc5clpXNXpD''@;'; + put 'put ''Z0FsY3dCc2FXNWxBQ1ZrSUNVeFd5SmRKVzRBYjNWMElHOW1JR1I1Ym1GdGFXTWdiV1Z0YjNKNUlHbHVJR0ZoWjE5amNtVmhkR1ZmWW5WbVptVnlLQ2tBYjNWMElHOW1JR1I1Ym1GdGFXTWdiV1Z0YjNKNUlHbHVJR0ZoWjJWdWMzVnlaVjlpZFdabVpYSmZjM1JoWTJzb0tRQTZJQUFnYVc0Z2JH''@;'; + put 'put ''bHVaU0FsWkFBZ2JtVmhjaUFuQUNCelkyRnVibWx1WnlCaElIRjFiM1JsWkNCemRISnBibWNnS0cxcGMzTnBibWNnWlc1a2NYVnZkR1UvSUd4dmJtZGxjaUIwYUdGdUlDVmtQeWtBQ2xOMGNtbHVaeUJ6ZEdGeWRHbHVaem9pQUNCelkyRnVibWx1WnlCaElFaFVUVXdnYzNSeWFXNW5JQ2h0YVhO''@;'; + put 'put ''emFXNW5JQ2MrSno4Z1ltRmtJRzVsYzNScGJtYy9JR3h2Ym1kbGNpQjBhR0Z1SUNWa1B5a0FDbE4wY21sdVp5QnpkR0Z5ZEdsdVp6bzhBQ0J6WTJGdWJtbHVaeUJoSUM4cUxpNHVLaThnWTI5dGJXVnVkQ0FvYldsemMybHVaeUFuS2k4L0lHeHZibWRsY2lCMGFHRnVJQ1ZrUHlrQVpteGxlQ0J6''@;'; + put 'put ''WTJGdWJtVnlJSEIxYzJndFltRmpheUJ2ZG1WeVpteHZkd0FpSWdCemRISnBZM1FBYkdsdVpXeGxibWQwYUFBN0NnQWdXMnRsZVQwQVhRQWdXd0FzQ2dBOUFGOGxiR1JmVTFWVFVFVkRWQUJrYVFCemRISnBZM1FnQUhzS0FGMDdDZ0FTN3U0VUNRUHUvdTd1N2dIdTd1NEI3dTRLL3U0VEdSWHVF''@;'; + put 'put ''d0h1N3U3dUN4SHU3dTd1N3U3dTd1NEI3dTRXQ1FFQkhROFg3dTRhRnh2dTdoenU3dTd1QVJuNzd1N3VBZTRRN3U0ZTd1N3U3Z0FDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSVhFUUlDQWdJQ0FnSUNBZ0lDQWdJU0VBSVRBZ0lXQWdJQ0Fn''@;'; + put 'put ''SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lVQWhVQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnNENEd0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJ''@;'; + put 'put ''Q0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQkFnTUVCUVlIQ0FrS0N3d05Dd01FQlE4SEF3d05CZ3dORGd3TkdoVVdBQUVBQXdjT0JnOElEQTBTRXlvUUVRa1FMekFSTWhjVERSUVNMaElV''@;'; + put 'put ''UVJNeUV5eEFLa0laTEVKR0lnd05EaU1QQ1JBUkNoQVJ5UkFSTFVWRy9BRUc5ZzhIOWlRQ0VCRXZNRFpOVGlnbU96d3FOakU1UFQ4dk9rRFlSREErSlRkRE5Vc3JPRWxNQUFNSkFBQUFBUTRDQ3d3SUl5UWxOanM5QUEwUUVoc1dIQkluTWlJWE14NDhCZ2MxQlE4UkZCZ3BBQk1wQUFBQUFBQTNG''@;'; + put 'put ''U2dkSGdBaEpqUWZNRDRaTEFBYkFDQWFLZ0FyT2k0dkFERTRPUzBBQWdJQkFBTURBUUFCQUFFQkFRQUNBUUVBQWdJREFRRUFBQVVBQVFNQkF3VURBUUVCQVFJQUFRQUVBZ0FDQVFFREFnRUFBd0lCQUFFQkFBRUJBUU1BR0JrWkdSb2JIQndkSFI0ZUh4OGdJQ0VoSWlJakpDUW1KeVVsS0NncEtT''@;'; + put 'put ''a3FLaXNyS3l3c0xTMHVMeTh3TVRFeU16UTJOVGMzTnpnNE9EazVPanJ1N3YvdTd1N3U3dTRmSU80QTcrN3U3Z3p1N3U0SURlN3U3dmp1N3U3dTd1NzE3djhEQ0FRaEJRc1NFeWNVRlJZcE1rRVhHQmthTERNMFFrZElHMG9jSFM0ZVR4OGdhMlY1QUdGMGRISnBZblYwWlNCdFlXTnliM01nYm05''@;'; + put 'put ''MElHbHRjR3hsYldWdWRHVmtBQ1Z6T2lWekFFTnZkV3hrSUc1dmRDQnZjR1Z1SUNJbGN5SWdabTl5SUhkeWFYUnBibWNnT2lBbGN3b0FUbThnYkdsaWVpQnpkWEJ3YjNKMExnb0FMaVZrQUc1dmJtRnRaUzVuZGdCbmRuZHlhWFJsWDI1dlgzb2djSEp2WW14bGJTQWxaQW9BYldWdGIzSjVJR0Zz''@;'; + put 'put ''Ykc5allYUnBiMjRnWm1GcGJIVnlaUW9BVG04Z2JHbGllaUJ6ZFhCd2IzSjBDZ0JuZG5CeWFXNTBaam9nSlhNS0FDMDVPVGs1T1RrNU9UazVPVGs1T1RrdU9Ua0FaM0poY0doMmFYb0FNaTQwTUM0eEFESXdNVFl4TWpJMUxqQXpNRFFBY21WdVpHVnlBR1JsZG1salpRQnNiMkZrYVcxaFoyVUFa''@;'; + put 'put ''SGx1WVcxcFl5QnNiMkZrYVc1bklHNXZkQ0JoZG1GcGJHRmliR1VLQUZWemFXNW5JQ1Z6T2lBbGN6b2xjd29BWjNaMWMyVnljMmhoY0dVdVl3Qm5kblZ6WlhKemFHRndaVjltYVc1a0FHZDJkWE5sY25Ob1lYQmxYMlpwYkdWZllXTmpaWE56QUVacGJHVnVZVzFsSUNJbGN5SWdhWE1nZFc1ellX''@;'; + put 'put ''WmxDZ0FsY3lCM2FHbHNaU0J2Y0dWdWFXNW5JQ1Z6Q2dCMWN5MCtaZ0JuZG5WelpYSnphR0Z3WlY5dmNHVnVBQ0lsY3lJZ2QyRnpJRzV2ZENCbWIzVnVaQ0JoY3lCaElHWnBiR1VnYjNJZ1lYTWdZU0J6YUdGd1pTQnNhV0p5WVhKNUlHMWxiV0psY2dvQUwwMWxaR2xoUW05NEFDaGJZUzE2WFZ0''@;'; + put 'put ''aExYcEJMVnBkS2lrOUlpaGJYaUpkS2lraUFHTmhibTV2ZENCamIyMXdhV3hsSUhKbFozVnNZWElnWlhod2NtVnpjMmx2YmlBbGN3QWxiR1lsTW5NQWNIUUFkbWxsZDBKdmVBQWxiR1lnSld4bUlDVnNaaUFsYkdZQWFXNEFjSGdBY0dNQUlnQmpiUUJ0YlFBbEpVSnZkVzVrYVc1blFtOTRPZ0FC''@;'; + put 'put ''ME5IUzA5VFYxdGZZMlFBOGMzWm5BRmRGUWxBQWQyVmljQUFvYkdsaUtRQ0pVRTVIRFFvYUNnQndibWNBSlNGUVV5MUJaRzlpWlMwQVFrMEFZbTF3QUVkSlJqZ0FaMmxtQVAvWS8rQUFhbkJsWndBbFVFUkdMUUJ3WkdZQXhkRFR4Z0JsY0hNQVBEOTRiV3dBZUcxc0FGSkpSa1lBY21sbVpnQUFB''@;'; + put 'put ''QUVBQUdsamJ3QWxaQ0FsWkNBbFpDQWxaQUJNWVhsdmRYUWdkMkZ6SUc1dmRDQmtiMjVsQ2dCbVlXbHNkWEpsSUcxaGJHeHZZeWRwYm1jZ1ptOXlJSEpsYzNWc2RDQnpkSEpwYm1jQVoyTTZJRTkxZENCdlppQnRaVzF2Y25rS0FGOWpZMThBYjNKcFp3QnZjQUJqWTI5dGNITXVZd0J0WVhCRGJI''@;'; + put 'put ''VnpkQUJqWTJkeVlYQm9hVzVtYndCalkyZHViMlJsYVc1bWJ3QW9KVFJzWkNrZ0pUZHNaQ0J1YjJSbGN5QWxOMnhrSUdWa1oyVnpDZ0FnSUNBZ0lDQWdKVGRrSUc1dlpHVnpJQ1UzWkNCbFpHZGxjeUFsTjJ4a0lHTnZiWEJ2Ym1WdWRITWdKWE1LQUdSbkFFVnljbTl5T2lCdWIyUmxJQ0lsY3lJ''@;'; + put 'put ''Z1ltVnNiMjVuY3lCMGJ5QjBkMjhnYm05dUxXNWxjM1JsWkNCamJIVnpkR1Z5Y3lBaUpYTWlJR0Z1WkNBaUpYTWlDZ0J6YjNKMGRnQnliM2NnYldGcWIzSUFZMjlzZFcxdUlHMWhhbTl5QUdGeWNtRjVJSEJoWTJ0cGJtYzZJQ1Z6SUNWa0lISnZkM01nSldRZ1kyOXNkVzF1Y3dvQVltSmJKWE5k''@;'; + put 'put ''SUNVdU5XY2dKUzQxWnlBbExqVm5JQ1V1TldjS0FITjBaWEFnYzJsNlpTQTlJQ1ZrQ2dCd2IzTmJKV1JkSUNWa0lDVmtDZ0JqWXlBb0pXUWdZMlZzYkhNcElHRjBJQ2dsWkN3bFpDa2dLQ1ZrTENWa0tRb0FZMk1nS0NWa0lHTmxiR3h6S1NCaGRDQW9KV1FzSldRcENnQWxjeUJ1Ynk0Z1kyVnNi''@;'; + put 'put ''SE1nSldRZ1Z5QWxaQ0JJSUNWa0NnQWdJQ1ZrSUNWa0lHTmxiR3dLQUd4cFluQmhZMnM2SUdScGMyTWdQU0FsWmlBb0lEd2dNQ2tLQUZCaFkydHBibWM2SUdOdmJYQjFkR1VnWjNKcFpDQnphWHBsQ2dCaElDVm1JR0lnSldZZ1l5QWxaaUJrSUNWbUlISWdKV1lLQUhKdmIzUWdKV1FnS0NWbUtT''@;'; + put 'put ''QWxaQ0FvSldZcENnQWdjakVnSldZZ2NqSWdKV1lLQUhCcGJtWnZBSEJoWTJzdVl3Qm5aWFJRWVdOclNXNW1id0FnSUcxaGNtZHBiaUFsWkFvQWNHRmphMjF2WkdVQWNHRnljMlZRWVdOclRXOWtaVWx1Wm04QVlYSnlZWGtBWVhOd1pXTjBBQ1ZtQUhCaFkyc2dhVzVtYnpvS0FDQWdiVzlrWlNB''@;'; + put 'put ''Z0lDVnpDZ0FnSUdGemNHVmpkQ0FsWmdvQUlDQnphWHBsSUNBZ0pXUUtBQ0FnWm14aFozTWdJQ1ZrQ2dCMWJtUmxabWx1WldRQWNHRmphd0JCY25KdmR5QjBlWEJsSUNJbGN5SWdkVzVyYm05M2JpQXRJR2xuYm05eWFXNW5DZ0J1YjNKdFlXd0FZM0p2ZHdCMFpXVUFaRzkwQUdsdWRnQjJaV1VB''@;'; + put 'put ''Y0dWdUFHMXdkSGtBWTNWeWRtVUFhV04xY25abEFHd0FhR0ZzWmdCcGJuWmxiWEIwZVFCZlltRmphMmR5YjNWdVpBQmZaSEpoZDE4QVEyOTFiR1FnYm05MElIQmhjbk5sSUNKZlltRmphMmR5YjNWdVpDSWdZWFIwY21saWRYUmxJR2x1SUdkeVlYQm9JQ1Z6Q2dBZ0lDSWxjeUlLQUc1dklHMWxi''@;'; + put 'put ''Vzl5ZVNCbWNtOXRJSHB0WVd4c2IyTW9LUW9BYjJKcUFHVnRhWFF1WXdCd2IzQmZiMkpxWDNOMFlYUmxBR05zZFhOMEFDVnNaQUJ3WVdkbEpXUXNKV1JmQUZSdmRHRnNJSE5wZW1VZ1BpQXhJR2x1SUNJbGN5SWdZMjlzYjNJZ2MzQmxZeUFBU1d4c1pXZGhiQ0JzWlc1bmRHZ2dkbUZzZFdVZ2FX''@;'; + put 'put ''NGdJaVZ6SWlCamIyeHZjaUJoZEhSeWFXSjFkR1VnQUd4dWNtTnZiRzl5YzJOb1pXMWxBR1Z0YVhSZlpXUm5aVjlzWVdKbGJBQWxjeTBsY3dCbWIzSjNZWEprQUdKaFkyc0FJQzArSUFBZ0xTMGdBR2x1SUdWa1oyVWdKWE1sY3lWekNnQnNZV0psYkdGc2FXZHVaV1FBWldSblpXaHlaV1lBWldS''@;'; + put 'put ''blpWVlNUQUJzWVdKbGJHaHlaV1lBYkdGaVpXeFZVa3dBZEdGcGJHaHlaV1lBZEdGcGJGVlNUQUJvWldGa2FISmxaZ0JvWldGa1ZWSk1BR1ZrWjJWMFlYSm5aWFFBYkdGaVpXeDBZWEpuWlhRQWRHRnBiSFJoY21kbGRBQm9aV0ZrZEdGeVoyVjBBR1ZrWjJWMGIyOXNkR2x3QUd4aFltVnNkRzl2''@;'; + put 'put ''YkhScGNBQjBZV2xzZEc5dmJIUnBjQUJvWldGa2RHOXZiSFJwY0FBQmJtVnpkR2x1WnlCdWIzUWdZV3hzYjNkbFpDQnBiaUJ6ZEhsc1pUb2dKWE1LQUhWdWJXRjBZMmhsWkNBbktTY2dhVzRnYzNSNWJHVTZJQ1Z6Q2dCMGNuVnVZMkYwYVc1bklITjBlV3hsSUNjbGN5Y0tBSFZ1YldGMFkyaGxa''@;'; + put 'put ''Q0FuS0NjZ2FXNGdjM1I1YkdVNklDVnpDZ0JoYkd3QWFXNGdZMngxYzNSbGNpQWxjd29BVFc5eVpTQjBhR0Z1SURJZ1kyOXNiM0p6SUhOd1pXTnBabWxsWkNCbWIzSWdZU0JuY21Ga2FXVnVkQ0F0SUdsbmJtOXlhVzVuSUhKbGJXRnBibWx1WndvQVozSmhaR2xsYm5RZ2NHVnVJR052Ykc5eWN5''@;'; + put 'put ''QnViM1FnZVdWMElITjFjSEJ2Y25SbFpDNEtBRWx0WVdkbGN5QjFibk4xY0hCdmNuUmxaQ0JwYmlBaVltRmphMmR5YjNWdVpDSWdZWFIwY21saWRYUmxDZ0JzWVhsbGNuTWdibTkwSUhOMWNIQnZjblJsWkNCcGJpQWxjeUJ2ZFhSd2RYUUtBRXhoZVc5MWRDQjNZWE1nYm05MElHUnZibVV1SUNC''@;'; + put 'put ''TmFYTnphVzVuSUd4aGVXOTFkQ0J3YkhWbmFXNXpQeUFLQUdkMlVtVnVaR1Z5U205aWN5QWxjem9nSlM0eVppQnpaV056TGdvQWJHRjViM1YwSUhkaGN5QnViM1FnWkc5dVpRb0FjbVZ1WkdWeVpYSWdabTl5SUNWeklHbHpJSFZ1WVhaaGFXeGhZbXhsQ2dCd1lXZGxaR2x5UFNWeklHbG5ibTl5''@;'; + put 'put ''WldRS0FIWnBaWGR3YjNKMEFDVnNaaXdsYkdZc0pXeG1MQ2NsVzE0blhTY0FKV3htTENWc1ppd2xiR1lzSlZ0ZUxGMGxjd0FsYkdZc0pXeG1MQ1ZzWml3bGJHWXNKV3htQUc5MWRIQjFkRzl5WkdWeUFHOWtaWE5tYVhKemRBQmtaMlZ6Wm1seWMzUUFiR0Y1WlhKekFHeGhlV1Z5YzJWc1pXTjBB''@;'; + put 'put ''RlJvWlNCc1lYbGxjbk5sYkdWamRDQmhkSFJ5YVdKMWRHVWdJaVZ6SWlCa2IyVnpJRzV2ZENCdFlYUmphQ0JoYm5rZ2JHRjVaWElnYzNCbFkybG1aV1FnWW5rZ2RHaGxJR3hoZVdWeWN5QmhkSFJ5YVdKMWRHVWdMU0JwWjI1dmNtVmtMZ29BYkdGNVpYSnpaWEFBT2drZ0FHeGhlV1Z5YkdsemRI''@;'; + put 'put ''TmxjQUFzQUZSb1pTQmphR0Z5WVdOMFpYSWdKeVZqSnlCaGNIQmxZWEp6SUdsdUlHSnZkR2dnZEdobElHeGhlV1Z5YzJWd0lHRnVaQ0JzWVhsbGNteHBjM1J6WlhBZ1lYUjBjbWxpZFhSbGN5QXRJR3hoZVdWeWJHbHpkSE5sY0NCcFoyNXZjbVZrTGdvQWNHRmtBRUpNQUhCaFoyVmthWElBYzI5''@;'; + put 'put ''c2FXUUFBSE5sZEd4cGJtVjNhV1IwYUFBeEFBQnpjR3d0UG5OcGVtVWdQaUF3QUdsdWFYUmZjM0JzYVc1bGMxOWlZZ0JpZWk1emFYcGxJRDRnTUFCaVpYcHBaWEpmWW1JQVlub3VjMmw2WlNBbElETWdQVDBnTVFBbGJHWUFabTl1ZEhCaGRHZ0FSRTlVUms5T1ZGQkJWRWdBUjBSR1QwNVVVRUZV''@;'; + put 'put ''U0FCcGJXRm5aWEJoZEdnQWNYVmhiblIxYlFCeVlXNXJaR2x5QUV4U0FFSlVBRkpNQUc1dlpHVnpaWEFBY21GdWEzTmxjQUJsY1hWaGJHeDVBSE5vYjNkaWIzaGxjd0JtYjI1MGJtRnRaWE1BYzJsNlpRQndZV2RsQUdObGJuUmxjZ0J5YjNSaGRHVUFiM0pwWlc1MFlYUnBiMjRBYkdGdVpITmpZ''@;'; + put 'put ''WEJsQUdOc2RYTjBaWEp5WVc1ckFHTnZibU5sYm5SeVlYUmxBR1J3YVFCeVpYTnZiSFYwYVc5dUFHOXlaR1Z5YVc1bkFHWnBiR3hqYjJ4dmNnQm1iMjUwYzJsNlpRQm1iMjUwYm1GdFpRQm1iMjUwWTI5c2IzSUFlR3hoWW1Wc0FIQmxibmRwWkhSb0FIQmxjbWx3YUdWeWFXVnpBSE5yWlhjQVpH''@;'; + put 'put ''bHpkRzl5ZEdsdmJnQnViMnAxYzNScFpua0FiR0Y1WlhJQVozSnZkWEFBWTI5dGJXVnVkQUIyWlhKMGFXTmxjd0I2QUhkbGFXZG9kQUJzWVdKbGJHWnNiMkYwQUdScGNnQmhjbkp2ZDJobFlXUUFZWEp5YjNkMFlXbHNBR2hsWVdSc1lXSmxiQUIwWVdsc2JHRmlaV3dBYkdGaVpXeG1iMjUwYzJs''@;'; + put 'put ''NlpRQnNZV0psYkdadmJuUnVZVzFsQUd4aFltVnNabTl1ZEdOdmJHOXlBR3hoWW1Wc1pHbHpkR0Z1WTJVQWJHRmlaV3hoYm1kc1pRQnRhVzVzWlc0QVpHVmpiM0poZEdVQVlYSnliM2R6YVhwbEFHTnZibk4wY21GcGJuUUFkR0ZwYkdOc2FYQUFhR1ZoWkdOc2FYQUFiR0ZpWld4cWRYTjBBR3h2''@;'; + put 'put ''WTJGc0FHZHNiMkpoYkFBbGJHWXNKV3htSldNQUpXeG1KV01BY21GMGFXOEFZWFYwYndCamIyMXdjbVZ6Y3dCbGVIQmhibVFBWm1sc2JBQm5aQUJ3Y3dCemRtY0FZMmhoY25ObGRBQjFkR1l0T0FCc1lYUnBiaTB4QUd4aGRHbHVNUUJzTVFCSlUwOHRPRGcxT1MweEFFbFRUMTg0T0RVNUxURUFT''@;'; + put 'put ''Vk5QT0RnMU9TMHhBRWxUVHkxSlVpMHhNREFBWW1sbkxUVUFZbWxuTlFCMWRHWTRBRlZ1YzNWd2NHOXlkR1ZrSUdOb1lYSnpaWFFnSWlWeklpQXRJR0Z6YzNWdGFXNW5JSFYwWmkwNENnQlZibk4xY0hCdmNuUmxaQ0JqYUdGeWMyVjBJSFpoYkhWbElDVmtDZ0JWVkVZdE9BQkNTVWN0TlFCcGJp''@;'; + put 'put ''QnNZV0psYkNCdlppQm5jbUZ3YUNBbGN3b0FhVzRnYkdGaVpXd2diMllnYm05a1pTQWxjd29BYVc0Z2JHRmlaV3dnYjJZZ1pXUm5aU0FsY3lBbGN5QWxjd29BYTJsdVpDQTlQU0JNVkY5T1QwNUZBR3hoWW1Wc2N5NWpBRzFoYTJWZmJHRmlaV3dBWEV3QVhFY0FYRVVBWEVnQVhGUUFKaU14TXpz''@;'; + put 'put ''QUppTXhNRHNBSm5GMWIzUTdBQ1lqTVRZd093QW1ZVzF3T3dBbVozUTdBQ1lqTXprN0FDWWpORFU3QUNac2REc0FKWE1nSldRZ2JtOWtaWE1nSldRZ1pXUm5aWE1nYldGNGFYUmxjajBsWkNCaVlXeGhibU5sUFNWa0NnQnVaWFIzYjNKcklITnBiWEJzWlhnNklBQWxaQ0FBSlhNbFpDQnViMlJs''@;'; + put 'put ''Y3lBbFpDQmxaR2RsY3lBbFpDQnBkR1Z5SUNVdU1tWWdjMlZqQ2dCMWNHUmhkR1U2SUcxcGMyMWhkR05vWldRZ2JHTmhJR2x1SUhSeVpXVjFjR1JoZEdWekNnQlVjbVZsWDJWa1oyVXVjMmw2WlNBOVBTQk9YMjV2WkdWeklDMGdNUUJ1Y3k1akFHWmxZWE5wWW14bFgzUnlaV1VBSVZSU1JVVmZS''@;'; + put 'put ''VVJIUlNobEtRQnRaWEpuWlY5MGNtVmxjd0FvY2pBdFBtaGxZWEJmYVc1a1pYZ2dQaUF0TVNrZ2ZId2dLSEl4TFQ1b1pXRndYMmx1WkdWNElENGdMVEVwQUZOVWMyVjBWVzVwYjI0QWNpMCthR1ZoY0Y5cGJtUmxlQ0ErUFNBd0FHRmtaRjkwY21WbFgyVmtaMlU2SUcxcGMzTnBibWNnZEhKbFpT''@;'; + put 'put ''QmxaR2RsQ2dCaFpHUmZkSEpsWlY5bFpHZGxPaUJsYlhCMGVTQnZkWFJsWkdkbElHeHBjM1FLQUdGa1pGOTBjbVZsWDJWa1oyVTZJR1Z0Y0hSNUlHbHVaV1JuWlNCc2FYTjBDZ0IwY205MVlteGxJR2x1SUdsdWFYUmZjbUZ1YXdvQUNTVnpJQ1ZrQ2dCelpXRnlZMmh6YVhwbEFHZHlZWEJvSUFB''@;'; + put 'put ''Z0FHNXZaR1VnQUhOMGIzQUtBQ1V1TldjQWNHOXpBSEpsWTNSekFIaHNjQUJzY0FCb1pXRmtYMnh3QUhSaGFXeGZiSEFBYkhkcFpIUm9BR3hvWldsbmFIUUFZbUlBSlM0MVp5d2xMalZuTENVdU5XY0FMQ1V1TldjQUpTNDFaeXdsTGpWbkFITmhiWEJzWlhCdmFXNTBjd0FsTGpWbklDVXVOV2NB''@;'; + put 'put ''Y3l3bExqVm5MQ1V1TldjZ0FHVXNKUzQxWnl3bExqVm5JQUFsTGpWbkxDVXVOV2NzSlM0MVp5d2xMalZuQUNVdU1tWUFKUzQxWnl3bExqVm5MQ1V1Tldjc0pTNDFaeUFBTDNCaGRHaGliM2dnZXdvZ0lDQWdMMWdnWlhoamFDQnVaV2NnSlM0MVp5QnpkV0lnWkdWbUNpQWdJQ0F2V1NCbGVHTm9J''@;'; + put 'put ''Q1V1TldjZ2MzVmlJR1JsWmdvZ0lDQWdMM2dnWlhoamFDQnVaV2NnSlM0MVp5QnpkV0lnWkdWbUNpQWdJQ0F2ZVNCbGVHTm9JQ1V1TldjZ2MzVmlJR1JsWmdvZ0lDQWdibVYzY0dGMGFDQjRJSGtnYlc5MlpYUnZDaUFnSUNCWUlIa2diR2x1WlhSdkNpQWdJQ0JZSUZrZ2JHbHVaWFJ2Q2lBZ0lD''@;'; + put 'put ''QjRJRmtnYkdsdVpYUnZDaUFnSUNCamJHOXpaWEJoZEdnZ2MzUnliMnRsQ24wZ1pHVm1DZ0F2Y0dGMGFHSnZlQ0I3Q2lBZ0lDQXZXU0JsZUdOb0lDVXVOV2NnYzNWaUlHUmxaZ29nSUNBZ0wxZ2daWGhqYUNBbExqVm5JSE4xWWlCa1pXWUtJQ0FnSUM5NUlHVjRZMmdnSlM0MVp5QnpkV0lnWkdW''@;'; + put 'put ''bUNpQWdJQ0F2ZUNCbGVHTm9JQ1V1TldjZ2MzVmlJR1JsWmdvZ0lDQWdibVYzY0dGMGFDQjRJSGtnYlc5MlpYUnZDaUFnSUNCWUlIa2diR2x1WlhSdkNpQWdJQ0JZSUZrZ2JHbHVaWFJ2Q2lBZ0lDQjRJRmtnYkdsdVpYUnZDaUFnSUNCamJHOXpaWEJoZEdnZ2MzUnliMnRsQ2lCOUlHUmxaZ292''@;'; + put 'put ''WkdKbmMzUmhjblFnZXlCbmMyRjJaU0FsTGpWbklDVXVOV2NnZEhKaGJuTnNZWFJsSUgwZ1pHVm1DaTloY25KdmQyeGxibWQwYUNBeE1DQmtaV1lLTDJGeWNtOTNkMmxrZEdnZ1lYSnliM2RzWlc1bmRHZ2dNaUJrYVhZZ1pHVm1DaTloY25KdmQyaGxZV1FnZXdvZ0lDQWdaM05oZG1VS0lDQWdJ''@;'; + put 'put ''SEp2ZEdGMFpRb2dJQ0FnWTNWeWNtVnVkSEJ2YVc1MENpQWdJQ0J1Wlhkd1lYUm9DaUFnSUNCdGIzWmxkRzhLSUNBZ0lHRnljbTkzYkdWdVozUm9JR0Z5Y205M2QybGtkR2dnTWlCa2FYWWdjbXhwYm1WMGJ3b2dJQ0FnTUNCaGNuSnZkM2RwWkhSb0lHNWxaeUJ5YkdsdVpYUnZDaUFnSUNCamJH''@;'; + put 'put ''OXpaWEJoZEdnZ1ptbHNiQW9nSUNBZ1ozSmxjM1J2Y21VS2ZTQmlhVzVrSUdSbFpnb3ZiV0ZyWldGeWNtOTNJSHNLSUNBZ0lHTjFjbkpsYm5Sd2IybHVkQ0JsZUdOb0lIQnZjQ0J6ZFdJZ1pYaGphQ0JqZFhKeVpXNTBjRzlwYm5RZ2NHOXdJSE4xWWlCaGRHRnVDaUFnSUNCaGNuSnZkMmhsWVdR''@;'; + put 'put ''S2ZTQmlhVzVrSUdSbFpnb3ZjRzlwYm5RZ2V5QWdJQ0J1Wlhkd1lYUm9JQ0FnSURJZ01DQXpOakFnWVhKaklHWnBiR3g5SUdSbFppOXRZV3RsZG1WaklIc0tJQ0FnSUM5WklHVjRZMmdnWkdWbUNpQWdJQ0F2V0NCbGVHTm9JR1JsWmdvZ0lDQWdMM2tnWlhoamFDQmtaV1lLSUNBZ0lDOTRJR1Y0''@;'; + put 'put ''WTJnZ1pHVm1DaUFnSUNCdVpYZHdZWFJvSUhnZ2VTQnRiM1psZEc4S0lDQWdJRmdnV1NCc2FXNWxkRzhnYzNSeWIydGxDaUFnSUNCWUlGa2diVzkyWlhSdkNpQWdJQ0I0SUhrZ2JXRnJaV0Z5Y205M0NuMGdaR1ZtQ2dCc2IzTjBJQ1Z6SUNWeklHVmtaMlVLQUc1dklIQnZjMmwwYVc5dUlHWnZj''@;'; + put 'put ''aUJsWkdkbElIZHBkR2dnYkdGaVpXd2dKWE1BYm04Z2NHOXphWFJwYjI0Z1ptOXlJR1ZrWjJVZ2QybDBhQ0IwWVdsc0lHeGhZbVZzSUNWekFHNXZJSEJ2YzJsMGFXOXVJR1p2Y2lCbFpHZGxJSGRwZEdnZ2FHVmhaQ0JzWVdKbGJDQWxjd0J1YnlCd2IzTnBkR2x2YmlCbWIzSWdaV1JuWlNCM2FY''@;'; + put 'put ''Um9JSGhzWVdKbGJDQWxjd0JtYjNKalpXeGhZbVZzY3dBbFpDQnZkWFFnYjJZZ0pXUWdiR0ZpWld4eklIQnZjMmwwYVc5dVpXUXVDZ0FsWkNCdmRYUWdiMllnSldRZ1pYaDBaWEpwYjNJZ2JHRmlaV3h6SUhCdmMybDBhVzl1WldRdUNnQWxaQ0J2WW1weklDVmtJSGhzWVdKbGJITWdabTl5WTJV''@;'; + put 'put ''OUpXUWdZbUk5S0NVdU1ESm1MQ1V1TURKbUtTQW9KUzR3TW1Zc0pTNHdNbVlwQ2dCdlltcGxZM1J6Q2dBZ1d5VmtYU0FvSlM0d01tWXNKUzR3TW1ZcElDZ2xMakF5Wml3bExqQXlaaWtnSlhBZ0lpVnpJZ29BZUd4aFltVnNjd29BSUZzbFpGMGdKWEFnYzJWMElDVmtJQ2dsTGpBeVppd2xMakF5''@;'; + put 'put ''WmlrZ0tDVXVNREptTENVdU1ESm1LU0FsY3dvQWMyaGhjR1ZtYVd4bElHNXZkQ0J6WlhRZ2IzSWdibTkwSUdadmRXNWtJR1p2Y2lCbGNITm1JRzV2WkdVZ0pYTUtBR052ZFd4a2JpZDBJRzl3Wlc0Z1pYQnpaaUJtYVd4bElDVnpDZ0FsSlNVbFFtOTFibVJwYm1kQ2IzZzZJQ1ZrSUNWa0lDVmtJ''@;'; + put 'put ''Q1ZrQUhKbFlXUUFRbTkxYm1ScGJtZENiM2dnYm05MElHWnZkVzVrSUdsdUlHVndjMllnWm1sc1pTQWxjd29BWTJGdUozUWdabWx1WkNCc2FXSnlZWEo1SUdacGJHVWdKWE1LQUdOaGJpZDBJRzl3Wlc0Z2JHbGljbUZ5ZVNCbWFXeGxJQ1Z6Q2dCRlQwWUFRa1ZIU1U0QVJVNUVBRlJTUVVsTVJW''@;'; + put 'put ''SUFMM1Z6WlhKZmMyaGhjR1ZmSldRZ2V3b0FKU1ZDWldkcGJrUnZZM1Z0Wlc1ME9nb0FKU1ZGYm1SRWIyTjFiV1Z1ZEFvQWZTQmlhVzVrSUdSbFpnb0FWVlJHTFRnZ2FXNXdkWFFnZFhObGN5QnViMjR0VEdGMGFXNHhJR05vWVhKaFkzUmxjbk1nZDJocFkyZ2dZMkZ1Ym05MElHSmxJR2hoYm1S''@;'; + put 'put ''c1pXUWdZbmtnZEdocGN5QlFiM04wVTJOeWFYQjBJR1J5YVhabGNnb0FZMkZ1Ym05MElISmxMV0ZzYkc5allYUmxJSEJ6Q2dCeWIzVjBaWE53YkdsdVpYTnBibWwwT2lCallXNXViM1FnWVd4c2IyTmhkR1VnY0hNS0FISnZkWFJsYzNCc2FXNWxjem9nSldRZ1pXUm5aWE1zSUNWa0lHSnZlR1Z6''@;'; + put 'put ''SUNVdU1tWWdjMlZqQ2dCcGJpQnliM1YwWlhOd2JHbHVaWE1zSUdOaGJtNXZkQ0JtYVc1a0lFNVBVazFCVENCbFpHZGxDZ0JwYmlCeWIzVjBaWE53YkdsdVpYTXNJR2xzYkdWbllXd2dkbUZzZFdWeklHOW1JSEJ5WlhZZ0pXUWdZVzVrSUc1bGVIUWdKV1FzSUd4cGJtVWdKV1FLQUdsdUlISnZk''@;'; + put 'put ''WFJsYzNCc2FXNWxjeXdnWldSblpTQnBjeUJoSUd4dmIzQWdZWFFnSlhNS0FHbHVJSEp2ZFhSbGMzQnNhVzVsY3l3Z1VITm9iM0owWlhOMGNHRjBhQ0JtWVdsc1pXUUtBR2x1SUhKdmRYUmxjM0JzYVc1bGN5d2dVSEp2ZFhSbGMzQnNhVzVsSUdaaGFXeGxaQW9BVlc1aFlteGxJSFJ2SUhKbFky''@;'; + put 'put ''eGhhVzBnWW05NElITndZV05sSUdsdUlITndiR2x1WlNCeWIzVjBhVzVuSUdadmNpQmxaR2RsSUNJbGN5SWdMVDRnSWlWeklpNGdVMjl0WlhSb2FXNW5JR2x6SUhCeWIySmhZbXg1SUhObGNtbHZkWE5zZVNCM2NtOXVaeTRLQUdsdUlHTm9aV05yY0dGMGFDd2dZbTk0SURBZ2FHRnpJRXhNSUdO''@;'; + put 'put ''dmIzSmtJRDRnVlZJZ1kyOXZjbVFLQUdsdUlHTm9aV05yY0dGMGFDd2dZbTk0SUNWa0lHaGhjeUJNVENCamIyOXlaQ0ErSUZWU0lHTnZiM0prQ2dCcGJpQmphR1ZqYTNCaGRHZ3NJR0p2ZUdWeklDVmtJR0Z1WkNBbFpDQmtiMjRuZENCMGIzVmphQW9BYVc0Z1kyaGxZMnR3WVhSb0xDQnpkR0Z5''@;'; + put 'put ''ZENCd2IzSjBJRzV2ZENCcGJpQm1hWEp6ZENCaWIzZ0tBR2x1SUdOb1pXTnJjR0YwYUN3Z1pXNWtJSEJ2Y25RZ2JtOTBJR2x1SUd4aGMzUWdZbTk0Q2dBbFpDQmliM2hsY3pvS0FDVmtJQ2dsTGpWbkxDQWxMalZuS1N3Z0tDVXVOV2NzSUNVdU5XY3BDZ0JqYjI1emRISmhhVzVsWkFCdWIzUWdZ''@;'; + put 'put ''Mjl1YzNSeVlXbHVaV1FBYzNSaGNuUWdjRzl5ZERvZ0tDVXVOV2NzSUNVdU5XY3BMQ0IwWVc1blpXNTBJR0Z1WjJ4bE9pQWxMalZuTENBbGN3b0FaVzVrSUhCdmNuUTZJQ2dsTGpWbkxDQWxMalZuS1N3Z2RHRnVaMlZ1ZENCaGJtZHNaVG9nSlM0MVp5d2dKWE1LQUhOcFpHVnpJRDA5SURRQWMy''@;'; + put 'put ''aGhjR1Z6TG1NQWNtOTFibVJmWTI5eWJtVnljd0JpWVdRZ2JHRmlaV3dnWm05eWJXRjBJQ1Z6Q2dCY1RnQnRZWEpuYVc0QUpXeG1MQ1ZzWmdCeVpXZDFiR0Z5QUdOMWMzUnZiUUJ6YUdGd1pXWnBiR1VBUEc1cGJENEFUbThnYjNJZ2FXMXdjbTl3WlhJZ2MyaGhjR1ZtYVd4bFBTSWxjeUlnWm05''@;'; + put 'put ''eUlHNXZaR1VnSWlWeklnb0FUbThnYjNJZ2FXMXdjbTl3WlhJZ2FXMWhaMlU5SWlWeklpQm1iM0lnYm05a1pTQWlKWE1pQ2dCc1lXSmxiR3h2WXdCdWIyUmxJQ2NsY3ljc0lHZHlZWEJvSUNjbGN5Y2djMmw2WlNCMGIyOGdjMjFoYkd3Z1ptOXlJR3hoWW1Wc0NnQmxjSE5tQUhWemFXNW5JQ1Z6''@;'; + put 'put ''SUdadmNpQjFibXR1YjNkdUlITm9ZWEJsSUNWekNnQndiMng1WjI5dUFHOTJZV3dBWTJseVkyeGxBSEJ2YVc1MEFHVm5ad0IwY21saGJtZHNaUUJ3YkdGcGJuUmxlSFFBY0d4aGFXNEFaR2xoYlc5dVpBQjBjbUZ3WlhwcGRXMEFjR0Z5WVd4c1pXeHZaM0poYlFCb2IzVnpaUUJ3Wlc1MFlXZHZi''@;'; + put 'put ''Z0JvWlhoaFoyOXVBSE5sY0hSaFoyOXVBRzlqZEdGbmIyNEFibTkwWlFCMFlXSUFabTlzWkdWeUFHSnZlRE5rQUdOdmJYQnZibVZ1ZEFCamVXeHBibVJsY2dCeVpXTjBBSEpsWTNSaGJtZHNaUUJ6Y1hWaGNtVUFaRzkxWW14bFkybHlZMnhsQUdSdmRXSnNaVzlqZEdGbmIyNEFkSEpwY0d4bGIy''@;'; + put 'put ''TjBZV2R2YmdCcGJuWjBjbWxoYm1kc1pRQnBiblowY21Gd1pYcHBkVzBBYVc1MmFHOTFjMlVBZFc1a1pYSnNhVzVsQUUxa2FXRnRiMjVrQUUxemNYVmhjbVVBVFdOcGNtTnNaUUJ3Y205dGIzUmxjZ0JqWkhNQWRHVnliV2x1WVhSdmNnQjFkSElBYVc1emRXeGhkRzl5QUhKcFltOXphWFJsQUhK''@;'; + put 'put ''dVlYTjBZV0lBY0hKdmRHVmhjMlZ6YVhSbEFIQnliM1JsYVc1emRHRmlBSEJ5YVcxbGNuTnBkR1VBY21WemRISnBZM1JwYjI1emFYUmxBR1pwZG1Wd2IzWmxjbWhoYm1jQWRHaHlaV1Z3YjNabGNtaGhibWNBYm05MlpYSm9ZVzVuQUdGemMyVnRZbXg1QUhOcFoyNWhkSFZ5WlFCeWNISnZiVzkw''@;'; + put 'put ''WlhJQWJHRnljbTkzQUhKaGNuSnZkd0JzY0hKdmJXOTBaWElBY21WamIzSmtBRTF5WldOdmNtUUFjM1JoY2dBak9EQTRNRGd3QUNObVkyWmpabU1BSXpNd016QXpNQUFqWlRobE9HVTRBQ05sTUdVd1pUQUFJMll3WmpCbU1BQWpNVEF4TURFd0FDTm1PR1k0WmpnQWFXNGdibTlrWlNBbGN3b0Fj''@;'; + put 'put ''bTkxYm1SbFpBQmthV0ZuYjI1aGJITUFjbUZrYVdGc0FITjBjbWx3WldRQWQyVmtaMlZrQUY4QWJtOWtaU0FsY3l3Z2NHOXlkQ0FsY3l3Z2RXNXlaV052WjI1cGVtVmtJR052YlhCaGMzTWdjRzlwYm5RZ0p5VnpKeUF0SUdsbmJtOXlaV1FLQUc1dlpHVWdKWE1zSUhCdmNuUWdKWE1nZFc1eVpX''@;'; + put 'put ''TnZaMjVwZW1Wa0NnQWxMalZuSUNVdU5XY2dkSEpoYm5Oc1lYUmxJRzVsZDNCaGRHZ2dkWE5sY2w5emFHRndaVjhsWkFvQWFXNTJhWE1BQUdacGJHeGxaQUFBY3dCbEFIY0FjM0JzYVc1bGN5NWpBR0psWjJsdWNHRjBhQUJRTFQ1bGJtUXVkR2hsZEdFZ1BDQXlJQ29nVFY5UVNRQmxibVJ3WVhS''@;'; + put 'put ''b0FHMWhhMlZUWld4bVJXUm5aUUJuWlhSemNHeHBibVZ3YjJsdWRITTZJRzV2SUhOd2JHbHVaU0J3YjJsdWRITWdZWFpoYVd4aFlteGxJR1p2Y2lCbFpHZGxJQ2dsY3l3bGN5a0tBSEJ2Ykhsc2FXNWxUV2xrY0c5cGJuUUFjM0JoYmkwK1ptOXVkQUIwWlhoMGMzQmhiaTVqQUhSbGVIUnpjR0Z1''@;'; + put 'put ''WDNOcGVtVUFabTl1ZEMwK2JtRnRaUUJtYjI1MGJtRnRaVG9nSWlWeklpQnlaWE52YkhabFpDQjBiem9nSlhNS0FHWnZiblJ1WVcxbE9pQjFibUZpYkdVZ2RHOGdjbVZ6YjJ4MlpTQWlKWE1pQ2dCamIzVnlBR0Z5YVdGc0FHaGxiSFpsZEdsallRQmJhVzUwWlhKdVlXd2dkR2x0WlhOZEFGdHBi''@;'; + put 'put ''blJsY201aGJDQmpiM1Z5YVdWeVhRQmJhVzUwWlhKdVlXd2dZWEpwWVd4ZEFFRjJZVzUwUjJGeVpHVXRRbTl2YXdCVlVsY2dSMjkwYUdsaklFd0FZbTl2YXdCellXNXpMVk5sY21sbUFFRjJZVzUwUjJGeVpHVXRRbTl2YTA5aWJHbHhkV1VBYjJKc2FYRjFaUUJwZEdGc2FXTUFRWFpoYm5SSFlY''@;'; + put 'put ''SmtaUzFFWlcxcEFHUmxiV2tBUVhaaGJuUkhZWEprWlMxRVpXMXBUMkpzYVhGMVpRQkNiMjlyYldGdUxVUmxiV2tBVlZKWElFSnZiMnR0WVc0Z1RBQnpaWEpwWmdCQ2IyOXJiV0Z1TFVSbGJXbEpkR0ZzYVdNQVFtOXZhMjFoYmkxTWFXZG9kQUJzYVdkb2RBQkNiMjlyYldGdUxVeHBaMmgwU1hS''@;'; + put 'put ''aGJHbGpBRU52ZFhKcFpYSUFiVzl1YjNOd1lXTmxBRU52ZFhKcFpYSXRRbTlzWkFCRGIzVnlhV1Z5TFVKdmJHUlBZbXhwY1hWbEFFTnZkWEpwWlhJdFQySnNhWEYxWlFCSVpXeDJaWFJwWTJFQVNHVnNkbVYwYVdOaExVSnZiR1FBU0dWc2RtVjBhV05oTFVKdmJHUlBZbXhwY1hWbEFFaGxiSFps''@;'; + put 'put ''ZEdsallTMU9ZWEp5YjNjQVkyOXVaR1Z1YzJWa0FFaGxiSFpsZEdsallTMU9ZWEp5YjNjdFFtOXNaQUJJWld4MlpYUnBZMkV0VG1GeWNtOTNMVUp2YkdSUFlteHBjWFZsQUVobGJIWmxkR2xqWVMxT1lYSnliM2N0VDJKc2FYRjFaUUJJWld4MlpYUnBZMkV0VDJKc2FYRjFaUUJPWlhkRFpXNTBk''@;'; + put 'put ''WEo1VTJOb2JHSnJMVUp2YkdRQVEyVnVkSFZ5ZVNCVFkyaHZiMnhpYjI5cklFd0FUbVYzUTJWdWRIVnllVk5qYUd4aWF5MUNiMnhrU1hSaGJHbGpBRTVsZDBObGJuUjFjbmxUWTJoc1ltc3RTWFJoYkdsakFFNWxkME5sYm5SMWNubFRZMmhzWW1zdFVtOXRZVzRBY205dFlXNEFVR0ZzWVhScGJt''@;'; + put 'put ''OHRRbTlzWkFCUVlXeGhkR2x1YnlCTWFXNXZkSGx3WlFCUVlXeGhkR2x1YnkxQ2IyeGtTWFJoYkdsakFGQmhiR0YwYVc1dkxVbDBZV3hwWXdCUVlXeGhkR2x1YnkxU2IyMWhiZ0JUZVcxaWIyd0FabUZ1ZEdGemVRQlVhVzFsY3kxQ2IyeGtBRlJwYldWekFGUnBiV1Z6TFVKdmJHUkpkR0ZzYVdN''@;'; + put 'put ''QVZHbHRaWE10U1hSaGJHbGpBRnBoY0daRGFHRnVZMlZ5ZVMxTlpXUnBkVzFKZEdGc2FXTUFWVkpYSUVOb1lXNWpaWEo1SUV3QWJXVmthWFZ0QUZwaGNHWkVhVzVuWW1GMGN3QkVhVzVuWW1GMGN3QnBibkIxZEhOallXeGxBRzV2QUhSeWRXVUFlV1Z6QUhWMGFXeHpMbU1BZFNBOVBTQlZSbDlt''@;'; + put 'put ''YVc1a0tIVXBBRlZHWDNObGRHNWhiV1VBQVdacGJHVWdiRzloWkdsdVp5QnBjeUJrYVhOaFlteGxaQ0JpWldOaGRYTmxJSFJvWlNCbGJuWnBjbTl1YldWdWRDQmpiMjUwWVdsdWN5QlRSVkpXUlZKZlRrRk5SVDBpSlhNaUNtRnVaQ0IwYUdVZ1IxWmZSa2xNUlY5UVFWUklJSFpoY21saFlteGxJ''@;'; + put 'put ''R2x6SUhWdWMyVjBJRzl5SUdWdGNIUjVMZ29BVUdGMGFDQndjbTkyYVdSbFpDQjBieUJtYVd4bE9pQWlKWE1pSUdoaGN5QmlaV1Z1SUdsbmJtOXlaV1FnWW1WallYVnpaU0JtYVd4bGN5QmhjbVVnYjI1c2VTQndaWEp0YVhSMFpXUWdkRzhnWW1VZ2JHOWhaR1ZrSUdaeWIyMGdkR2hsSUdScGNt''@;'; + put 'put ''VmpkRzl5YVdWeklHbHVJQ0lsY3lJZ2QyaGxiaUJ5ZFc1dWFXNW5JR2x1SUdGdUlHaDBkSEFnYzJWeWRtVnlMZ29BSlhNbGN5VnpBQzhBT2dCbGJHeHBjSE5sQUZScGJXVnpMVkp2YldGdUFHTnNkWE4wWlhJQVgxOWpiSFZ6ZEdWeWJtOWtaWE1BWTJ4MWMzUmxjaUJqZVdOc1pTQWxjeUF0TFNB''@;'; + put 'put ''bGN5QnViM1FnYzNWd2NHOXlkR1ZrQ2dCMFlXbHNJR05zZFhOMFpYSWdKWE1nYVc1emFXUmxJR2hsWVdRZ1kyeDFjM1JsY2lBbGN3b0FhR1ZoWkNCamJIVnpkR1Z5SUNWeklHbHVjMmxrWlNCMFlXbHNJR05zZFhOMFpYSWdKWE1LQUhSaGFXd2dibTlrWlNBbGN5QnBibk5wWkdVZ2FHVmhaQ0Jq''@;'; + put 'put ''YkhWemRHVnlJQ1Z6Q2dCb1pXRmtJRzV2WkdVZ0pYTWdhVzV6YVdSbElIUmhhV3dnWTJ4MWMzUmxjaUFsY3dvQVgxOEFiR0ZpWld3QWMyaGhjR1VBWW05NEFGUjNieUJqYkhWemRHVnljeUJ1WVcxbFpDQWxjeUF0SUhSb1pTQnpaV052Ym1RZ2QybHNiQ0JpWlNCcFoyNXZjbVZrQ2dCdFlYQk9B''@;'; + put 'put ''RUZGYkdsbkFFRmhZM1YwWlFCQlkybHlZd0JCWjNKaGRtVUFRV3h3YUdFQVFYSnBibWNBUVhScGJHUmxBRUYxYld3QVFtVjBZUUJEWTJWa2FXd0FRMmhwQUVSaFoyZGxjZ0JFWld4MFlRQkZWRWdBUldGamRYUmxBRVZqYVhKakFFVm5jbUYyWlFCRmNITnBiRzl1QUVWMFlRQkZkVzFzQUVkaGJX''@;'; + put 'put ''MWhBRWxoWTNWMFpRQkpZMmx5WXdCSlozSmhkbVVBU1c5MFlRQkpkVzFzQUV0aGNIQmhBRXhoYldKa1lRQk5kUUJPZEdsc1pHVUFUblVBVDBWc2FXY0FUMkZqZFhSbEFFOWphWEpqQUU5bmNtRjJaUUJQYldWbllRQlBiV2xqY205dUFFOXpiR0Z6YUFCUGRHbHNaR1VBVDNWdGJBQlFhR2tBVUdr''@;'; + put 'put ''QVVISnBiV1VBVUhOcEFGSm9id0JUWTJGeWIyNEFVMmxuYldFQVZFaFBVazRBVkdGMUFGUm9aWFJoQUZWaFkzVjBaUUJWWTJseVl3QlZaM0poZG1VQVZYQnphV3h2YmdCVmRXMXNBRmhwQUZsaFkzVjBaUUJaZFcxc0FGcGxkR0VBWVdGamRYUmxBR0ZqYVhKakFHRmpkWFJsQUdGbGJHbG5BR0Zu''@;'; + put 'put ''Y21GMlpRQmhiR1ZtYzNsdEFHRnNjR2hoQUdGdGNBQmhibVFBWVc1bkFHRnlhVzVuQUdGemVXMXdBR0YwYVd4a1pRQmhkVzFzQUdKa2NYVnZBR0psZEdFQVluSjJZbUZ5QUdKMWJHd0FZMkZ3QUdOalpXUnBiQUJqWldScGJBQmpaVzUwQUdOb2FRQmphWEpqQUdOc2RXSnpBR052Ym1jQVkyOXdl''@;'; + put 'put ''UUJqY21GeWNnQmpkWEFBWTNWeWNtVnVBR1JCY25JQVpHRm5aMlZ5QUdSaGNuSUFaR1ZuQUdSbGJIUmhBR1JwWVcxekFHUnBkbWxrWlFCbFlXTjFkR1VBWldOcGNtTUFaV2R5WVhabEFHVnRjSFI1QUdWdGMzQUFaVzV6Y0FCbGNITnBiRzl1QUdWeGRXbDJBR1YwWVFCbGRHZ0FaWFZ0YkFCbGRY''@;'; + put 'put ''SnZBR1Y0YVhOMEFHWnViMllBWm05eVlXeHNBR1p5WVdNeE1nQm1jbUZqTVRRQVpuSmhZek0wQUdaeVlYTnNBR2RoYlcxaEFHZGxBR2QwQUdoQmNuSUFhR0Z5Y2dCb1pXRnlkSE1BYUdWc2JHbHdBR2xoWTNWMFpRQnBZMmx5WXdCcFpYaGpiQUJwWjNKaGRtVUFhVzFoWjJVQWFXNW1hVzRBYVc1''@;'; + put 'put ''MEFHbHZkR0VBYVhGMVpYTjBBR2x6YVc0QWFYVnRiQUJyWVhCd1lRQnNRWEp5QUd4aGJXSmtZUUJzWVc1bkFHeGhjWFZ2QUd4aGNuSUFiR05sYVd3QWJHUnhkVzhBYkdVQWJHWnNiMjl5QUd4dmQyRnpkQUJzYjNvQWJISnRBR3h6WVhGMWJ3QnNjM0YxYndCc2RBQnRZV055QUcxa1lYTm9BRzFw''@;'; + put 'put ''WTNKdkFHMXBaR1J2ZEFCdGRRQnVZV0pzWVFCdVluTndBRzVrWVhOb0FHNWxBRzVwQUc1dmRBQnViM1JwYmdCdWMzVmlBRzUwYVd4a1pRQnVkUUJ2WVdOMWRHVUFiMk5wY21NQWIyVnNhV2NBYjJkeVlYWmxBRzlzYVc1bEFHOXRaV2RoQUc5dGFXTnliMjRBYjNCc2RYTUFiM0lBYjNKa1pnQnZj''@;'; + put 'put ''bVJ0QUc5emJHRnphQUJ2ZEdsc1pHVUFiM1JwYldWekFHOTFiV3dBY0dGeVlRQndZWEowQUhCbGNtMXBiQUJ3WlhKd0FIQm9hUUJ3YVFCd2FYWUFjR3gxYzIxdUFIQnZkVzVrQUhCeWFXMWxBSEJ5YjJRQWNISnZjQUJ3YzJrQWNYVnZkQUJ5UVhKeUFISmhaR2xqQUhKaGJtY0FjbUZ4ZFc4QWNt''@;'; + put 'put ''RnljZ0J5WTJWcGJBQnlaSEYxYndCeVpXRnNBSEpsWndCeVpteHZiM0lBY21odkFISnNiUUJ5YzJGeGRXOEFjbk54ZFc4QWMySnhkVzhBYzJOaGNtOXVBSE5rYjNRQWMyVmpkQUJ6YUhrQWMybG5iV0VBYzJsbmJXRm1BSE5wYlFCemNHRmtaWE1BYzNWaUFITjFZbVVBYzNWdEFITjFjQUJ6ZFhB''@;'; + put 'put ''eEFITjFjRElBYzNWd013QnpkWEJsQUhONmJHbG5BSFJoZFFCMGFHVnlaVFFBZEdobGRHRUFkR2hsZEdGemVXMEFkR2hwYm5Od0FIUm9iM0p1QUhScGJHUmxBSFJwYldWekFIUnlZV1JsQUhWQmNuSUFkV0ZqZFhSbEFIVmhjbklBZFdOcGNtTUFkV2R5WVhabEFIVnRiQUIxY0hOcGFBQjFjSE5w''@;'; + put 'put ''Ykc5dUFIVjFiV3dBZDJWcFpYSndBSGhwQUhsaFkzVjBaUUI1Wlc0QWVYVnRiQUI2WlhSaEFIcDNhZ0I2ZDI1cUFGVlVSamdnWTI5a1pYTWdQaUEwSUdKNWRHVnpJR0Z5WlNCdWIzUWdZM1Z5Y21WdWRHeDVJSE4xY0hCdmNuUmxaQ0FvWjNKaGNHZ2dKWE1wSUMwZ2RISmxZWFJsWkNCaGN5Qk1Z''@;'; + put 'put ''WFJwYmkweExpQlFaWEpvWVhCeklDSXRSMk5vWVhKelpYUTliR0YwYVc0eElpQnBjeUJ1WldWa1pXUS9DZ0JKYm5aaGJHbGtJQ1ZrTFdKNWRHVWdWVlJHT0NCbWIzVnVaQ0JwYmlCcGJuQjFkQ0J2WmlCbmNtRndhQ0FsY3lBdElIUnlaV0YwWldRZ1lYTWdUR0YwYVc0dE1TNGdVR1Z5YUdGd2N5''@;'; + put 'put ''QWlMVWRqYUdGeWMyVjBQV3hoZEdsdU1TSWdhWE1nYm1WbFpHVmtQd29BWW5vdWMybDZaUUJ2ZG1WeWJHRndYMkpsZW1sbGNnQjFjblpsWkFCdmJYQnZkVzVrQUdGc2MyVUFhVzVsQUc5dVpRQnZBSEowYUc4QWIyeDViR2x1WlFCd2JHbHVaUUJ5ZFdVQVpYTUFWVzVyYm05M2JpQWljM0JzYVc1''@;'; + put 'put ''bGN5SWdkbUZzZFdVNklDSWxjeUlnTFNCcFoyNXZjbVZrQ2dCemNHeHBibVZ6QUc5a1lnQlBjblJvYjJkdmJtRnNJR1ZrWjJWeklHUnZJRzV2ZENCamRYSnlaVzUwYkhrZ2FHRnVaR3hsSUdWa1oyVWdiR0ZpWld4ekxpQlVjbmtnZFhOcGJtY2dlR3hoWW1Wc2N5NEtBRzl5ZEdodklDVnpJQ1Z6''@;'; + put 'put ''Q2dCamFHRnVhUUJ2Y25Sb2J5NWpBR05vWVc1VFpXRnlZMmdBWTNBQUpTVWhVRk10UVdSdlltVXRNaTR3Q2lVbEpTVkNiM1Z1WkdsdVowSnZlRG9nS0dGMFpXNWtLUW92Y0c5cGJuUWdld29nSUM5WklHVjRZMmdnWkdWbUNpQWdMMWdnWlhoamFDQmtaV1lLSUNCdVpYZHdZWFJvQ2lBZ1dDQlpJ''@;'; + put 'put ''RE1nTUNBek5qQWdZWEpqSUdacGJHd0tmU0JrWldZS0wyTmxiR3dnZXdvZ0lDOVpJR1Y0WTJnZ1pHVm1DaUFnTDFnZ1pYaGphQ0JrWldZS0lDQXZlU0JsZUdOb0lHUmxaZ29nSUM5NElHVjRZMmdnWkdWbUNpQWdibVYzY0dGMGFBb2dJSGdnZVNCdGIzWmxkRzhLSUNCNElGa2diR2x1WlhSdkNp''@;'; + put 'put ''QWdXQ0JaSUd4cGJtVjBid29nSUZnZ2VTQnNhVzVsZEc4S0lDQmpiRzl6WlhCaGRHZ2djM1J5YjJ0bENuMGdaR1ZtQ2k5dWIyUmxJSHNLSUM5MUlHVjRZMmdnWkdWbUNpQXZjaUJsZUdOb0lHUmxaZ29nTDJRZ1pYaGphQ0JrWldZS0lDOXNJR1Y0WTJnZ1pHVm1DaUJ1Wlhkd1lYUm9JR3dnWkNC''@;'; + put 'put ''dGIzWmxkRzhLSUhJZ1pDQnNhVzVsZEc4Z2NpQjFJR3hwYm1WMGJ5QnNJSFVnYkdsdVpYUnZDaUJqYkc5elpYQmhkR2dnWm1sc2JBcDlJR1JsWmdvS0FDVmtJQ1ZrSUhSeVlXNXpiR0YwWlFvQU1DNDRJREF1T0NBd0xqZ2djMlYwY21kaVkyOXNiM0lLQUhOb2IzZHdZV2RsQ2lVbEpTVlVjbUZw''@;'; + put 'put ''YkdWeUNpVWxKU1ZDYjNWdVpHbHVaMEp2ZURvZ0pXUWdKV1FnSldRZ0pXUUtBRzVsZDNCaGRHZ2dKV1FnSldRZ2JXOTJaWFJ2Q2dBbFpDQWxaQ0JzYVc1bGRHOEtBQ1ZrSUNWa0lHeHBibVYwYnlCemRISnZhMlVLQUdOb1lXNXVaV3dnSldRZ0tDVm1MQ1ZtS1FvQUlDMCtDZ0FnSUNBZ0lBQW9L''@;'; + put 'put ''Q1ZtTENWbUtTd29KV1lzSldZcEtTQWxjeUFsY3dCQ1gxSkpSMGhVQUVKZlJFOVhUZ0JDWDB4RlJsUUFRbDlWVUFCQ1gwNVBSRVVBYzJWbkFHNWxlSFJmYzJWbkFHUmxZMmxrWlY5d2IybHVkQUJwYm1OdmJYQmhjbUZpYkdVZ2MyVm5iV1Z1ZEhNZ0lTRWdMUzBnUVdKdmNuUnBibWNLQUhNeExU''@;'; + put 'put ''NWpiMjF0WDJOdmIzSmtQVDF6TWkwK1kyOXRiVjlqYjI5eVpBQnBjMTl3WVhKaGJHeGxiQUJuY21Gd2FDQkhJSHNLQUNCdWIyUmxXM05vWVhCbFBYQnZhVzUwWFFvQUlDQWxaQ0JiY0c5elBTSWxaQ3dsWkNKZENnQWdJQ1ZrSUMwdElDVmtXMnhsYmowaUpXWWlYUW9BZlFvQVkyOXNiM0lnSlhN''@;'; + put 'put ''QUpYTWdhWE1nYm05MElHRWdhMjV2ZDI0Z1kyOXNiM0l1Q2dCbGNuSnZjaUJwYmlCamIyeDRiR0YwWlNncENnQnpiMnhwWkFCcGJuWnBjMmxpYkdVQVltOXNaQUJ6WlhSc2FXNWxkMmxrZEdnQVptbHNiR1ZrQUhWdVptbHNiR1ZrQUhSaGNHVnlaV1FBWjNaeVpXNWtaWEpmYzJWMFgzTjBlV3hs''@;'; + put 'put ''T2lCMWJuTjFjSEJ2Y25SbFpDQnpkSGxzWlNBbGN5QXRJR2xuYm05eWFXNW5DZ0JuZG5KbGJtUmxjaTVqQUdkMmNtVnVaR1Z5WDNWelpYSnphR0Z3WlFCdVlXMWxBRzVoYldWYk1GMEFZbTkwYUFCc1lYbHZkWFFBVEdGNWIzVjBJSFI1Y0dVNklDSWxjeUlnYm05MElISmxZMjluYm1sNlpXUXVJ''@;'; + put 'put ''RlZ6WlNCdmJtVWdiMlk2SlhNS0FHcHZZZ0JuZG14dllXUnBiV0ZuWlM1akFHZDJiRzloWkdsdFlXZGxBSFZ6QUhWekxUNXVZVzFsQUhWekxUNXVZVzFsV3pCZEFFNXZJR3h2WVdScGJXRm5aU0J3YkhWbmFXNGdabTl5SUNJbGN5SUtBRkVBVEdWbWRBQkxVRjlNWldaMEFGSnBaMmgwQUV0UVgx''@;'; + put 'put ''SnBaMmgwQUZWd0FFdFFYMVZ3QUVSdmQyNEFTMUJmUkc5M2JnQndiSFZ6QUV0UVgwRmtaQUJ0YVc1MWN3QkxVRjlUZFdKMGNtRmpkQUJHQUdWa1oyVUFkR0ZwYkhCdmNuUUFhR1ZoWkhCdmNuUUFhMlY1QUZWU1RBQnViMlJsQUdScFozSmhjR2dBWjNKaGNHZ0FjM1ZpWjNKaGNHZ0FYMHhVV0Y5''@;'; + put 'put ''c2FXSnlZWEo1QUhSbGVIUnNZWGx2ZFhRQWIySnFjQzArYkdKc0FIaHNZV0psYkhNdVl3QjRiR0ZrYW5WemRBQjRiR2x1ZEdWeWMyVmpkR2x2Ym5NQWJIQWdJVDBnWTJ4d0FHZGxkR2x1ZEhKemVHa0FiMkpxY0RFdFBuTjZMbmdnUFQwZ01DQW1KaUJ2WW1wd01TMCtjM291ZVNBOVBTQXdBR3hp''@;'; + put 'put ''YkdWdVkyeHZjMmx1WndCMmNBQjRiR2hrZUhWdWJHOWhaQUJ6YVhwbFBUMW1jbVZsWkFCeVpXTjBMbUp2ZFc1a1lYSjVXekpkSUR3Z1NVNVVYMDFCV0FCdlltcHdiSEJ0YTNNQWNtVmpkQzVpYjNWdVpHRnllVnN6WFNBOElFbE9WRjlOUVZnQWIzVjBJRzltSUcxbGJXOXllUW9BSXlVeWVDVXll''@;'; + put 'put ''Q1V5ZUNVeWVBQWxiR1lsYkdZbGJHWUFMMkZqWTJWdWRETXZNUUF2WVdOalpXNTBNeTh5QUM5aFkyTmxiblF6THpNQUwyRmpZMlZ1ZERRdk1RQXZZV05qWlc1ME5DOHlBQzloWTJObGJuUTBMek1BTDJGalkyVnVkRFF2TkFBdllXTmpaVzUwTlM4eEFDOWhZMk5sYm5RMUx6SUFMMkZqWTJWdWRE''@;'; + put 'put ''VXZNd0F2WVdOalpXNTBOUzgwQUM5aFkyTmxiblExTHpVQUwyRmpZMlZ1ZERZdk1RQXZZV05qWlc1ME5pOHlBQzloWTJObGJuUTJMek1BTDJGalkyVnVkRFl2TkFBdllXTmpaVzUwTmk4MUFDOWhZMk5sYm5RMkx6WUFMMkZqWTJWdWREY3ZNUUF2WVdOalpXNTBOeTh5QUM5aFkyTmxiblEzTHpN''@;'; + put 'put ''QUwyRmpZMlZ1ZERjdk5BQXZZV05qWlc1ME55ODFBQzloWTJObGJuUTNMellBTDJGalkyVnVkRGN2TndBdllXTmpaVzUwT0M4eEFDOWhZMk5sYm5RNEx6SUFMMkZqWTJWdWREZ3ZNd0F2WVdOalpXNTBPQzgwQUM5aFkyTmxiblE0THpVQUwyRmpZMlZ1ZERndk5nQXZZV05qWlc1ME9DODNBQzlo''@;'; + put 'put ''WTJObGJuUTRMemdBTDJKc2RXVnpNeTh4QUM5aWJIVmxjek12TWdBdllteDFaWE16THpNQUwySnNkV1Z6TkM4eEFDOWliSFZsY3pRdk1nQXZZbXgxWlhNMEx6TUFMMkpzZFdWek5DODBBQzlpYkhWbGN6VXZNUUF2WW14MVpYTTFMeklBTDJKc2RXVnpOUzh6QUM5aWJIVmxjelV2TkFBdllteDFa''@;'; + put 'put ''WE0xTHpVQUwySnNkV1Z6Tmk4eEFDOWliSFZsY3pZdk1nQXZZbXgxWlhNMkx6TUFMMkpzZFdWek5pODBBQzlpYkhWbGN6WXZOUUF2WW14MVpYTTJMellBTDJKc2RXVnpOeTh4QUM5aWJIVmxjemN2TWdBdllteDFaWE0zTHpNQUwySnNkV1Z6Tnk4MEFDOWliSFZsY3pjdk5RQXZZbXgxWlhNM0x6''@;'; + put 'put ''WUFMMkpzZFdWek55ODNBQzlpYkhWbGN6Z3ZNUUF2WW14MVpYTTRMeklBTDJKc2RXVnpPQzh6QUM5aWJIVmxjemd2TkFBdllteDFaWE00THpVQUwySnNkV1Z6T0M4MkFDOWliSFZsY3pndk53QXZZbXgxWlhNNEx6Z0FMMkpzZFdWek9TOHhBQzlpYkhWbGN6a3ZNZ0F2WW14MVpYTTVMek1BTDJK''@;'; + put 'put ''c2RXVnpPUzgwQUM5aWJIVmxjemt2TlFBdllteDFaWE01THpZQUwySnNkV1Z6T1M4M0FDOWliSFZsY3prdk9BQXZZbXgxWlhNNUx6a0FMMkp5WW1jeE1DOHhBQzlpY21Kbk1UQXZNVEFBTDJKeVltY3hNQzh5QUM5aWNtSm5NVEF2TXdBdlluSmlaekV3THpRQUwySnlZbWN4TUM4MUFDOWljbUpu''@;'; + put 'put ''TVRBdk5nQXZZbkppWnpFd0x6Y0FMMkp5WW1jeE1DODRBQzlpY21Kbk1UQXZPUUF2WW5KaVp6RXhMekVBTDJKeVltY3hNUzh4TUFBdlluSmlaekV4THpFeEFDOWljbUpuTVRFdk1nQXZZbkppWnpFeEx6TUFMMkp5WW1jeE1TODBBQzlpY21Kbk1URXZOUUF2WW5KaVp6RXhMellBTDJKeVltY3hN''@;'; + put 'put ''UzgzQUM5aWNtSm5NVEV2T0FBdlluSmlaekV4THprQUwySnlZbWN6THpFQUwySnlZbWN6THpJQUwySnlZbWN6THpNQUwySnlZbWMwTHpFQUwySnlZbWMwTHpJQUwySnlZbWMwTHpNQUwySnlZbWMwTHpRQUwySnlZbWMxTHpFQUwySnlZbWMxTHpJQUwySnlZbWMxTHpNQUwySnlZbWMxTHpRQUwy''@;'; + put 'put ''SnlZbWMxTHpVQUwySnlZbWMyTHpFQUwySnlZbWMyTHpJQUwySnlZbWMyTHpNQUwySnlZbWMyTHpRQUwySnlZbWMyTHpVQUwySnlZbWMyTHpZQUwySnlZbWMzTHpFQUwySnlZbWMzTHpJQUwySnlZbWMzTHpNQUwySnlZbWMzTHpRQUwySnlZbWMzTHpVQUwySnlZbWMzTHpZQUwySnlZbWMzTHpj''@;'; + put 'put ''QUwySnlZbWM0THpFQUwySnlZbWM0THpJQUwySnlZbWM0THpNQUwySnlZbWM0THpRQUwySnlZbWM0THpVQUwySnlZbWM0THpZQUwySnlZbWM0THpjQUwySnlZbWM0THpnQUwySnlZbWM1THpFQUwySnlZbWM1THpJQUwySnlZbWM1THpNQUwySnlZbWM1THpRQUwySnlZbWM1THpVQUwySnlZbWM1''@;'; + put 'put ''THpZQUwySnlZbWM1THpjQUwySnlZbWM1THpnQUwySnlZbWM1THprQUwySjFaMjR6THpFQUwySjFaMjR6THpJQUwySjFaMjR6THpNQUwySjFaMjQwTHpFQUwySjFaMjQwTHpJQUwySjFaMjQwTHpNQUwySjFaMjQwTHpRQUwySjFaMjQxTHpFQUwySjFaMjQxTHpJQUwySjFaMjQxTHpNQUwySjFa''@;'; + put 'put ''MjQxTHpRQUwySjFaMjQxTHpVQUwySjFaMjQyTHpFQUwySjFaMjQyTHpJQUwySjFaMjQyTHpNQUwySjFaMjQyTHpRQUwySjFaMjQyTHpVQUwySjFaMjQyTHpZQUwySjFaMjQzTHpFQUwySjFaMjQzTHpJQUwySjFaMjQzTHpNQUwySjFaMjQzTHpRQUwySjFaMjQzTHpVQUwySjFaMjQzTHpZQUwy''@;'; + put 'put ''SjFaMjQzTHpjQUwySjFaMjQ0THpFQUwySjFaMjQ0THpJQUwySjFaMjQ0THpNQUwySjFaMjQ0THpRQUwySjFaMjQ0THpVQUwySjFaMjQ0THpZQUwySjFaMjQ0THpjQUwySjFaMjQ0THpnQUwySjFaMjQ1THpFQUwySjFaMjQ1THpJQUwySjFaMjQ1THpNQUwySjFaMjQ1THpRQUwySjFaMjQ1THpV''@;'; + put 'put ''QUwySjFaMjQ1THpZQUwySjFaMjQ1THpjQUwySjFaMjQ1THpnQUwySjFaMjQ1THprQUwySjFjSFV6THpFQUwySjFjSFV6THpJQUwySjFjSFV6THpNQUwySjFjSFUwTHpFQUwySjFjSFUwTHpJQUwySjFjSFUwTHpNQUwySjFjSFUwTHpRQUwySjFjSFUxTHpFQUwySjFjSFUxTHpJQUwySjFjSFUx''@;'; + put 'put ''THpNQUwySjFjSFUxTHpRQUwySjFjSFUxTHpVQUwySjFjSFUyTHpFQUwySjFjSFUyTHpJQUwySjFjSFUyTHpNQUwySjFjSFUyTHpRQUwySjFjSFUyTHpVQUwySjFjSFUyTHpZQUwySjFjSFUzTHpFQUwySjFjSFUzTHpJQUwySjFjSFUzTHpNQUwySjFjSFUzTHpRQUwySjFjSFUzTHpVQUwySjFj''@;'; + put 'put ''SFUzTHpZQUwySjFjSFUzTHpjQUwySjFjSFU0THpFQUwySjFjSFU0THpJQUwySjFjSFU0THpNQUwySjFjSFU0THpRQUwySjFjSFU0THpVQUwySjFjSFU0THpZQUwySjFjSFU0THpjQUwySjFjSFU0THpnQUwySjFjSFU1THpFQUwySjFjSFU1THpJQUwySjFjSFU1THpNQUwySjFjSFU1THpRQUwy''@;'; + put 'put ''SjFjSFU1THpVQUwySjFjSFU1THpZQUwySjFjSFU1THpjQUwySjFjSFU1THpnQUwySjFjSFU1THprQUwyUmhjbXN5TXk4eEFDOWtZWEpyTWpNdk1nQXZaR0Z5YXpJekx6TUFMMlJoY21zeU5DOHhBQzlrWVhKck1qUXZNZ0F2WkdGeWF6STBMek1BTDJSaGNtc3lOQzgwQUM5a1lYSnJNalV2TVFB''@;'; + put 'put ''dlpHRnlhekkxTHpJQUwyUmhjbXN5TlM4ekFDOWtZWEpyTWpVdk5BQXZaR0Z5YXpJMUx6VUFMMlJoY21zeU5pOHhBQzlrWVhKck1qWXZNZ0F2WkdGeWF6STJMek1BTDJSaGNtc3lOaTgwQUM5a1lYSnJNall2TlFBdlpHRnlhekkyTHpZQUwyUmhjbXN5Tnk4eEFDOWtZWEpyTWpjdk1nQXZaR0Z5''@;'; + put 'put ''YXpJM0x6TUFMMlJoY21zeU55ODBBQzlrWVhKck1qY3ZOUUF2WkdGeWF6STNMellBTDJSaGNtc3lOeTgzQUM5a1lYSnJNamd2TVFBdlpHRnlhekk0THpJQUwyUmhjbXN5T0M4ekFDOWtZWEpyTWpndk5BQXZaR0Z5YXpJNEx6VUFMMlJoY21zeU9DODJBQzlrWVhKck1qZ3ZOd0F2WkdGeWF6STRM''@;'; + put 'put ''emdBTDJkdVluVXpMekVBTDJkdVluVXpMeklBTDJkdVluVXpMek1BTDJkdVluVTBMekVBTDJkdVluVTBMeklBTDJkdVluVTBMek1BTDJkdVluVTBMelFBTDJkdVluVTFMekVBTDJkdVluVTFMeklBTDJkdVluVTFMek1BTDJkdVluVTFMelFBTDJkdVluVTFMelVBTDJkdVluVTJMekVBTDJkdVlu''@;'; + put 'put ''VTJMeklBTDJkdVluVTJMek1BTDJkdVluVTJMelFBTDJkdVluVTJMelVBTDJkdVluVTJMellBTDJkdVluVTNMekVBTDJkdVluVTNMeklBTDJkdVluVTNMek1BTDJkdVluVTNMelFBTDJkdVluVTNMelVBTDJkdVluVTNMellBTDJkdVluVTNMemNBTDJkdVluVTRMekVBTDJkdVluVTRMeklBTDJk''@;'; + put 'put ''dVluVTRMek1BTDJkdVluVTRMelFBTDJkdVluVTRMelVBTDJkdVluVTRMellBTDJkdVluVTRMemNBTDJkdVluVTRMemdBTDJkdVluVTVMekVBTDJkdVluVTVMeklBTDJkdVluVTVMek1BTDJkdVluVTVMelFBTDJkdVluVTVMelVBTDJkdVluVTVMellBTDJkdVluVTVMemNBTDJkdVluVTVMemdB''@;'; + put 'put ''TDJkdVluVTVMemtBTDJkeVpXVnVjek12TVFBdlozSmxaVzV6TXk4eUFDOW5jbVZsYm5Nekx6TUFMMmR5WldWdWN6UXZNUUF2WjNKbFpXNXpOQzh5QUM5bmNtVmxibk0wTHpNQUwyZHlaV1Z1Y3pRdk5BQXZaM0psWlc1ek5TOHhBQzluY21WbGJuTTFMeklBTDJkeVpXVnVjelV2TXdBdlozSmxa''@;'; + put 'put ''VzV6TlM4MEFDOW5jbVZsYm5NMUx6VUFMMmR5WldWdWN6WXZNUUF2WjNKbFpXNXpOaTh5QUM5bmNtVmxibk0yTHpNQUwyZHlaV1Z1Y3pZdk5BQXZaM0psWlc1ek5pODFBQzluY21WbGJuTTJMellBTDJkeVpXVnVjemN2TVFBdlozSmxaVzV6Tnk4eUFDOW5jbVZsYm5NM0x6TUFMMmR5WldWdWN6''@;'; + put 'put ''Y3ZOQUF2WjNKbFpXNXpOeTgxQUM5bmNtVmxibk0zTHpZQUwyZHlaV1Z1Y3pjdk53QXZaM0psWlc1ek9DOHhBQzluY21WbGJuTTRMeklBTDJkeVpXVnVjemd2TXdBdlozSmxaVzV6T0M4MEFDOW5jbVZsYm5NNEx6VUFMMmR5WldWdWN6Z3ZOZ0F2WjNKbFpXNXpPQzgzQUM5bmNtVmxibk00THpn''@;'; + put 'put ''QUwyZHlaV1Z1Y3prdk1RQXZaM0psWlc1ek9TOHlBQzluY21WbGJuTTVMek1BTDJkeVpXVnVjemt2TkFBdlozSmxaVzV6T1M4MUFDOW5jbVZsYm5NNUx6WUFMMmR5WldWdWN6a3ZOd0F2WjNKbFpXNXpPUzg0QUM5bmNtVmxibk01THprQUwyZHlaWGx6TXk4eEFDOW5jbVY1Y3pNdk1nQXZaM0ps''@;'; + put 'put ''ZVhNekx6TUFMMmR5Wlhsek5DOHhBQzluY21WNWN6UXZNZ0F2WjNKbGVYTTBMek1BTDJkeVpYbHpOQzgwQUM5bmNtVjVjelV2TVFBdlozSmxlWE0xTHpJQUwyZHlaWGx6TlM4ekFDOW5jbVY1Y3pVdk5BQXZaM0psZVhNMUx6VUFMMmR5Wlhsek5pOHhBQzluY21WNWN6WXZNZ0F2WjNKbGVYTTJM''@;'; + put 'put ''ek1BTDJkeVpYbHpOaTgwQUM5bmNtVjVjell2TlFBdlozSmxlWE0yTHpZQUwyZHlaWGx6Tnk4eEFDOW5jbVY1Y3pjdk1nQXZaM0psZVhNM0x6TUFMMmR5Wlhsek55ODBBQzluY21WNWN6Y3ZOUUF2WjNKbGVYTTNMellBTDJkeVpYbHpOeTgzQUM5bmNtVjVjemd2TVFBdlozSmxlWE00THpJQUwy''@;'; + put 'put ''ZHlaWGx6T0M4ekFDOW5jbVY1Y3pndk5BQXZaM0psZVhNNEx6VUFMMmR5Wlhsek9DODJBQzluY21WNWN6Z3ZOd0F2WjNKbGVYTTRMemdBTDJkeVpYbHpPUzh4QUM5bmNtVjVjemt2TWdBdlozSmxlWE01THpNQUwyZHlaWGx6T1M4MEFDOW5jbVY1Y3prdk5RQXZaM0psZVhNNUx6WUFMMmR5Wlhs''@;'; + put 'put ''ek9TODNBQzluY21WNWN6a3ZPQUF2WjNKbGVYTTVMemtBTDI5eVlXNW5aWE16THpFQUwyOXlZVzVuWlhNekx6SUFMMjl5WVc1blpYTXpMek1BTDI5eVlXNW5aWE0wTHpFQUwyOXlZVzVuWlhNMEx6SUFMMjl5WVc1blpYTTBMek1BTDI5eVlXNW5aWE0wTHpRQUwyOXlZVzVuWlhNMUx6RUFMMjl5''@;'; + put 'put ''WVc1blpYTTFMeklBTDI5eVlXNW5aWE0xTHpNQUwyOXlZVzVuWlhNMUx6UUFMMjl5WVc1blpYTTFMelVBTDI5eVlXNW5aWE0yTHpFQUwyOXlZVzVuWlhNMkx6SUFMMjl5WVc1blpYTTJMek1BTDI5eVlXNW5aWE0yTHpRQUwyOXlZVzVuWlhNMkx6VUFMMjl5WVc1blpYTTJMellBTDI5eVlXNW5a''@;'; + put 'put ''WE0zTHpFQUwyOXlZVzVuWlhNM0x6SUFMMjl5WVc1blpYTTNMek1BTDI5eVlXNW5aWE0zTHpRQUwyOXlZVzVuWlhNM0x6VUFMMjl5WVc1blpYTTNMellBTDI5eVlXNW5aWE0zTHpjQUwyOXlZVzVuWlhNNEx6RUFMMjl5WVc1blpYTTRMeklBTDI5eVlXNW5aWE00THpNQUwyOXlZVzVuWlhNNEx6''@;'; + put 'put ''UUFMMjl5WVc1blpYTTRMelVBTDI5eVlXNW5aWE00THpZQUwyOXlZVzVuWlhNNEx6Y0FMMjl5WVc1blpYTTRMemdBTDI5eVlXNW5aWE01THpFQUwyOXlZVzVuWlhNNUx6SUFMMjl5WVc1blpYTTVMek1BTDI5eVlXNW5aWE01THpRQUwyOXlZVzVuWlhNNUx6VUFMMjl5WVc1blpYTTVMellBTDI5''@;'; + put 'put ''eVlXNW5aWE01THpjQUwyOXlZVzVuWlhNNUx6Z0FMMjl5WVc1blpYTTVMemtBTDI5eWNtUXpMekVBTDI5eWNtUXpMeklBTDI5eWNtUXpMek1BTDI5eWNtUTBMekVBTDI5eWNtUTBMeklBTDI5eWNtUTBMek1BTDI5eWNtUTBMelFBTDI5eWNtUTFMekVBTDI5eWNtUTFMeklBTDI5eWNtUTFMek1B''@;'; + put 'put ''TDI5eWNtUTFMelFBTDI5eWNtUTFMelVBTDI5eWNtUTJMekVBTDI5eWNtUTJMeklBTDI5eWNtUTJMek1BTDI5eWNtUTJMelFBTDI5eWNtUTJMelVBTDI5eWNtUTJMellBTDI5eWNtUTNMekVBTDI5eWNtUTNMeklBTDI5eWNtUTNMek1BTDI5eWNtUTNMelFBTDI5eWNtUTNMelVBTDI5eWNtUTNM''@;'; + put 'put ''ellBTDI5eWNtUTNMemNBTDI5eWNtUTRMekVBTDI5eWNtUTRMeklBTDI5eWNtUTRMek1BTDI5eWNtUTRMelFBTDI5eWNtUTRMelVBTDI5eWNtUTRMellBTDI5eWNtUTRMemNBTDI5eWNtUTRMemdBTDI5eWNtUTVMekVBTDI5eWNtUTVMeklBTDI5eWNtUTVMek1BTDI5eWNtUTVMelFBTDI5eWNt''@;'; + put 'put ''UTVMelVBTDI5eWNtUTVMellBTDI5eWNtUTVMemNBTDI5eWNtUTVMemdBTDI5eWNtUTVMemtBTDNCaGFYSmxaREV3THpFQUwzQmhhWEpsWkRFd0x6RXdBQzl3WVdseVpXUXhNQzh5QUM5d1lXbHlaV1F4TUM4ekFDOXdZV2x5WldReE1DODBBQzl3WVdseVpXUXhNQzgxQUM5d1lXbHlaV1F4TUM4''@;'; + put 'put ''MkFDOXdZV2x5WldReE1DODNBQzl3WVdseVpXUXhNQzg0QUM5d1lXbHlaV1F4TUM4NUFDOXdZV2x5WldReE1TOHhBQzl3WVdseVpXUXhNUzh4TUFBdmNHRnBjbVZrTVRFdk1URUFMM0JoYVhKbFpERXhMeklBTDNCaGFYSmxaREV4THpNQUwzQmhhWEpsWkRFeEx6UUFMM0JoYVhKbFpERXhMelVB''@;'; + put 'put ''TDNCaGFYSmxaREV4THpZQUwzQmhhWEpsWkRFeEx6Y0FMM0JoYVhKbFpERXhMemdBTDNCaGFYSmxaREV4THprQUwzQmhhWEpsWkRFeUx6RUFMM0JoYVhKbFpERXlMekV3QUM5d1lXbHlaV1F4TWk4eE1RQXZjR0ZwY21Wa01USXZNVElBTDNCaGFYSmxaREV5THpJQUwzQmhhWEpsWkRFeUx6TUFM''@;'; + put 'put ''M0JoYVhKbFpERXlMelFBTDNCaGFYSmxaREV5THpVQUwzQmhhWEpsWkRFeUx6WUFMM0JoYVhKbFpERXlMemNBTDNCaGFYSmxaREV5THpnQUwzQmhhWEpsWkRFeUx6a0FMM0JoYVhKbFpETXZNUUF2Y0dGcGNtVmtNeTh5QUM5d1lXbHlaV1F6THpNQUwzQmhhWEpsWkRRdk1RQXZjR0ZwY21Wa05D''@;'; + put 'put ''OHlBQzl3WVdseVpXUTBMek1BTDNCaGFYSmxaRFF2TkFBdmNHRnBjbVZrTlM4eEFDOXdZV2x5WldRMUx6SUFMM0JoYVhKbFpEVXZNd0F2Y0dGcGNtVmtOUzgwQUM5d1lXbHlaV1ExTHpVQUwzQmhhWEpsWkRZdk1RQXZjR0ZwY21Wa05pOHlBQzl3WVdseVpXUTJMek1BTDNCaGFYSmxaRFl2TkFB''@;'; + put 'put ''dmNHRnBjbVZrTmk4MUFDOXdZV2x5WldRMkx6WUFMM0JoYVhKbFpEY3ZNUUF2Y0dGcGNtVmtOeTh5QUM5d1lXbHlaV1EzTHpNQUwzQmhhWEpsWkRjdk5BQXZjR0ZwY21Wa055ODFBQzl3WVdseVpXUTNMellBTDNCaGFYSmxaRGN2TndBdmNHRnBjbVZrT0M4eEFDOXdZV2x5WldRNEx6SUFMM0Jo''@;'; + put 'put ''YVhKbFpEZ3ZNd0F2Y0dGcGNtVmtPQzgwQUM5d1lXbHlaV1E0THpVQUwzQmhhWEpsWkRndk5nQXZjR0ZwY21Wa09DODNBQzl3WVdseVpXUTRMemdBTDNCaGFYSmxaRGt2TVFBdmNHRnBjbVZrT1M4eUFDOXdZV2x5WldRNUx6TUFMM0JoYVhKbFpEa3ZOQUF2Y0dGcGNtVmtPUzgxQUM5d1lXbHla''@;'; + put 'put ''V1E1THpZQUwzQmhhWEpsWkRrdk53QXZjR0ZwY21Wa09TODRBQzl3WVdseVpXUTVMemtBTDNCaGMzUmxiREV6THpFQUwzQmhjM1JsYkRFekx6SUFMM0JoYzNSbGJERXpMek1BTDNCaGMzUmxiREUwTHpFQUwzQmhjM1JsYkRFMEx6SUFMM0JoYzNSbGJERTBMek1BTDNCaGMzUmxiREUwTHpRQUwz''@;'; + put 'put ''QmhjM1JsYkRFMUx6RUFMM0JoYzNSbGJERTFMeklBTDNCaGMzUmxiREUxTHpNQUwzQmhjM1JsYkRFMUx6UUFMM0JoYzNSbGJERTFMelVBTDNCaGMzUmxiREUyTHpFQUwzQmhjM1JsYkRFMkx6SUFMM0JoYzNSbGJERTJMek1BTDNCaGMzUmxiREUyTHpRQUwzQmhjM1JsYkRFMkx6VUFMM0JoYzNS''@;'; + put 'put ''bGJERTJMellBTDNCaGMzUmxiREUzTHpFQUwzQmhjM1JsYkRFM0x6SUFMM0JoYzNSbGJERTNMek1BTDNCaGMzUmxiREUzTHpRQUwzQmhjM1JsYkRFM0x6VUFMM0JoYzNSbGJERTNMellBTDNCaGMzUmxiREUzTHpjQUwzQmhjM1JsYkRFNEx6RUFMM0JoYzNSbGJERTRMeklBTDNCaGMzUmxiREU0''@;'; + put 'put ''THpNQUwzQmhjM1JsYkRFNEx6UUFMM0JoYzNSbGJERTRMelVBTDNCaGMzUmxiREU0THpZQUwzQmhjM1JsYkRFNEx6Y0FMM0JoYzNSbGJERTRMemdBTDNCaGMzUmxiREU1THpFQUwzQmhjM1JsYkRFNUx6SUFMM0JoYzNSbGJERTVMek1BTDNCaGMzUmxiREU1THpRQUwzQmhjM1JsYkRFNUx6VUFM''@;'; + put 'put ''M0JoYzNSbGJERTVMellBTDNCaGMzUmxiREU1THpjQUwzQmhjM1JsYkRFNUx6Z0FMM0JoYzNSbGJERTVMemtBTDNCaGMzUmxiREl6THpFQUwzQmhjM1JsYkRJekx6SUFMM0JoYzNSbGJESXpMek1BTDNCaGMzUmxiREkwTHpFQUwzQmhjM1JsYkRJMEx6SUFMM0JoYzNSbGJESTBMek1BTDNCaGMz''@;'; + put 'put ''UmxiREkwTHpRQUwzQmhjM1JsYkRJMUx6RUFMM0JoYzNSbGJESTFMeklBTDNCaGMzUmxiREkxTHpNQUwzQmhjM1JsYkRJMUx6UUFMM0JoYzNSbGJESTFMelVBTDNCaGMzUmxiREkyTHpFQUwzQmhjM1JsYkRJMkx6SUFMM0JoYzNSbGJESTJMek1BTDNCaGMzUmxiREkyTHpRQUwzQmhjM1JsYkRJ''@;'; + put 'put ''Mkx6VUFMM0JoYzNSbGJESTJMellBTDNCaGMzUmxiREkzTHpFQUwzQmhjM1JsYkRJM0x6SUFMM0JoYzNSbGJESTNMek1BTDNCaGMzUmxiREkzTHpRQUwzQmhjM1JsYkRJM0x6VUFMM0JoYzNSbGJESTNMellBTDNCaGMzUmxiREkzTHpjQUwzQmhjM1JsYkRJNEx6RUFMM0JoYzNSbGJESTRMeklB''@;'; + put 'put ''TDNCaGMzUmxiREk0THpNQUwzQmhjM1JsYkRJNEx6UUFMM0JoYzNSbGJESTRMelVBTDNCaGMzUmxiREk0THpZQUwzQmhjM1JsYkRJNEx6Y0FMM0JoYzNSbGJESTRMemdBTDNCcGVXY3hNQzh4QUM5d2FYbG5NVEF2TVRBQUwzQnBlV2N4TUM4eUFDOXdhWGxuTVRBdk13QXZjR2w1WnpFd0x6UUFM''@;'; + put 'put ''M0JwZVdjeE1DODFBQzl3YVhsbk1UQXZOZ0F2Y0dsNVp6RXdMemNBTDNCcGVXY3hNQzg0QUM5d2FYbG5NVEF2T1FBdmNHbDVaekV4THpFQUwzQnBlV2N4TVM4eE1BQXZjR2w1WnpFeEx6RXhBQzl3YVhsbk1URXZNZ0F2Y0dsNVp6RXhMek1BTDNCcGVXY3hNUzgwQUM5d2FYbG5NVEV2TlFBdmNH''@;'; + put 'put ''bDVaekV4THpZQUwzQnBlV2N4TVM4M0FDOXdhWGxuTVRFdk9BQXZjR2w1WnpFeEx6a0FMM0JwZVdjekx6RUFMM0JwZVdjekx6SUFMM0JwZVdjekx6TUFMM0JwZVdjMEx6RUFMM0JwZVdjMEx6SUFMM0JwZVdjMEx6TUFMM0JwZVdjMEx6UUFMM0JwZVdjMUx6RUFMM0JwZVdjMUx6SUFMM0JwZVdj''@;'; + put 'put ''MUx6TUFMM0JwZVdjMUx6UUFMM0JwZVdjMUx6VUFMM0JwZVdjMkx6RUFMM0JwZVdjMkx6SUFMM0JwZVdjMkx6TUFMM0JwZVdjMkx6UUFMM0JwZVdjMkx6VUFMM0JwZVdjMkx6WUFMM0JwZVdjM0x6RUFMM0JwZVdjM0x6SUFMM0JwZVdjM0x6TUFMM0JwZVdjM0x6UUFMM0JwZVdjM0x6VUFMM0Jw''@;'; + put 'put ''ZVdjM0x6WUFMM0JwZVdjM0x6Y0FMM0JwZVdjNEx6RUFMM0JwZVdjNEx6SUFMM0JwZVdjNEx6TUFMM0JwZVdjNEx6UUFMM0JwZVdjNEx6VUFMM0JwZVdjNEx6WUFMM0JwZVdjNEx6Y0FMM0JwZVdjNEx6Z0FMM0JwZVdjNUx6RUFMM0JwZVdjNUx6SUFMM0JwZVdjNUx6TUFMM0JwZVdjNUx6UUFM''@;'; + put 'put ''M0JwZVdjNUx6VUFMM0JwZVdjNUx6WUFMM0JwZVdjNUx6Y0FMM0JwZVdjNUx6Z0FMM0JwZVdjNUx6a0FMM0J5WjI0eE1DOHhBQzl3Y21kdU1UQXZNVEFBTDNCeVoyNHhNQzh5QUM5d2NtZHVNVEF2TXdBdmNISm5iakV3THpRQUwzQnlaMjR4TUM4MUFDOXdjbWR1TVRBdk5nQXZjSEpuYmpFd0x6''@;'; + put 'put ''Y0FMM0J5WjI0eE1DODRBQzl3Y21kdU1UQXZPUUF2Y0hKbmJqRXhMekVBTDNCeVoyNHhNUzh4TUFBdmNISm5iakV4THpFeEFDOXdjbWR1TVRFdk1nQXZjSEpuYmpFeEx6TUFMM0J5WjI0eE1TODBBQzl3Y21kdU1URXZOUUF2Y0hKbmJqRXhMellBTDNCeVoyNHhNUzgzQUM5d2NtZHVNVEV2T0FB''@;'; + put 'put ''dmNISm5iakV4THprQUwzQnlaMjR6THpFQUwzQnlaMjR6THpJQUwzQnlaMjR6THpNQUwzQnlaMjQwTHpFQUwzQnlaMjQwTHpJQUwzQnlaMjQwTHpNQUwzQnlaMjQwTHpRQUwzQnlaMjQxTHpFQUwzQnlaMjQxTHpJQUwzQnlaMjQxTHpNQUwzQnlaMjQxTHpRQUwzQnlaMjQxTHpVQUwzQnlaMjQy''@;'; + put 'put ''THpFQUwzQnlaMjQyTHpJQUwzQnlaMjQyTHpNQUwzQnlaMjQyTHpRQUwzQnlaMjQyTHpVQUwzQnlaMjQyTHpZQUwzQnlaMjQzTHpFQUwzQnlaMjQzTHpJQUwzQnlaMjQzTHpNQUwzQnlaMjQzTHpRQUwzQnlaMjQzTHpVQUwzQnlaMjQzTHpZQUwzQnlaMjQzTHpjQUwzQnlaMjQ0THpFQUwzQnla''@;'; + put 'put ''MjQ0THpJQUwzQnlaMjQ0THpNQUwzQnlaMjQ0THpRQUwzQnlaMjQ0THpVQUwzQnlaMjQ0THpZQUwzQnlaMjQ0THpjQUwzQnlaMjQ0THpnQUwzQnlaMjQ1THpFQUwzQnlaMjQ1THpJQUwzQnlaMjQ1THpNQUwzQnlaMjQ1THpRQUwzQnlaMjQ1THpVQUwzQnlaMjQ1THpZQUwzQnlaMjQ1THpjQUwz''@;'; + put 'put ''QnlaMjQ1THpnQUwzQnlaMjQ1THprQUwzQjFZblV6THpFQUwzQjFZblV6THpJQUwzQjFZblV6THpNQUwzQjFZblUwTHpFQUwzQjFZblUwTHpJQUwzQjFZblUwTHpNQUwzQjFZblUwTHpRQUwzQjFZblUxTHpFQUwzQjFZblUxTHpJQUwzQjFZblUxTHpNQUwzQjFZblUxTHpRQUwzQjFZblUxTHpV''@;'; + put 'put ''QUwzQjFZblUyTHpFQUwzQjFZblUyTHpJQUwzQjFZblUyTHpNQUwzQjFZblUyTHpRQUwzQjFZblUyTHpVQUwzQjFZblUyTHpZQUwzQjFZblUzTHpFQUwzQjFZblUzTHpJQUwzQjFZblUzTHpNQUwzQjFZblUzTHpRQUwzQjFZblUzTHpVQUwzQjFZblUzTHpZQUwzQjFZblUzTHpjQUwzQjFZblU0''@;'; + put 'put ''THpFQUwzQjFZblU0THpJQUwzQjFZblU0THpNQUwzQjFZblU0THpRQUwzQjFZblU0THpVQUwzQjFZblU0THpZQUwzQjFZblU0THpjQUwzQjFZblU0THpnQUwzQjFZblU1THpFQUwzQjFZblU1THpJQUwzQjFZblU1THpNQUwzQjFZblU1THpRQUwzQjFZblU1THpVQUwzQjFZblU1THpZQUwzQjFZ''@;'; + put 'put ''blU1THpjQUwzQjFZblU1THpnQUwzQjFZblU1THprQUwzQjFZblZuYmpNdk1RQXZjSFZpZFdkdU15OHlBQzl3ZFdKMVoyNHpMek1BTDNCMVluVm5ialF2TVFBdmNIVmlkV2R1TkM4eUFDOXdkV0oxWjI0MEx6TUFMM0IxWW5WbmJqUXZOQUF2Y0hWaWRXZHVOUzh4QUM5d2RXSjFaMjQxTHpJQUwz''@;'; + put 'put ''QjFZblZuYmpVdk13QXZjSFZpZFdkdU5TODBBQzl3ZFdKMVoyNDFMelVBTDNCMVluVm5iall2TVFBdmNIVmlkV2R1Tmk4eUFDOXdkV0oxWjI0Mkx6TUFMM0IxWW5WbmJqWXZOQUF2Y0hWaWRXZHVOaTgxQUM5d2RXSjFaMjQyTHpZQUwzQjFZblZuYmpjdk1RQXZjSFZpZFdkdU55OHlBQzl3ZFdK''@;'; + put 'put ''MVoyNDNMek1BTDNCMVluVm5iamN2TkFBdmNIVmlkV2R1Tnk4MUFDOXdkV0oxWjI0M0x6WUFMM0IxWW5WbmJqY3ZOd0F2Y0hWaWRXZHVPQzh4QUM5d2RXSjFaMjQ0THpJQUwzQjFZblZuYmpndk13QXZjSFZpZFdkdU9DODBBQzl3ZFdKMVoyNDRMelVBTDNCMVluVm5iamd2TmdBdmNIVmlkV2R1''@;'; + put 'put ''T0M4M0FDOXdkV0oxWjI0NEx6Z0FMM0IxWW5WbmJqa3ZNUUF2Y0hWaWRXZHVPUzh5QUM5d2RXSjFaMjQ1THpNQUwzQjFZblZuYmprdk5BQXZjSFZpZFdkdU9TODFBQzl3ZFdKMVoyNDVMellBTDNCMVluVm5iamt2TndBdmNIVmlkV2R1T1M4NEFDOXdkV0oxWjI0NUx6a0FMM0IxYjNJeE1DOHhB''@;'; + put 'put ''Qzl3ZFc5eU1UQXZNVEFBTDNCMWIzSXhNQzh5QUM5d2RXOXlNVEF2TXdBdmNIVnZjakV3THpRQUwzQjFiM0l4TUM4MUFDOXdkVzl5TVRBdk5nQXZjSFZ2Y2pFd0x6Y0FMM0IxYjNJeE1DODRBQzl3ZFc5eU1UQXZPUUF2Y0hWdmNqRXhMekVBTDNCMWIzSXhNUzh4TUFBdmNIVnZjakV4THpFeEFD''@;'; + put 'put ''OXdkVzl5TVRFdk1nQXZjSFZ2Y2pFeEx6TUFMM0IxYjNJeE1TODBBQzl3ZFc5eU1URXZOUUF2Y0hWdmNqRXhMellBTDNCMWIzSXhNUzgzQUM5d2RXOXlNVEV2T0FBdmNIVnZjakV4THprQUwzQjFiM0l6THpFQUwzQjFiM0l6THpJQUwzQjFiM0l6THpNQUwzQjFiM0kwTHpFQUwzQjFiM0kwTHpJ''@;'; + put 'put ''QUwzQjFiM0kwTHpNQUwzQjFiM0kwTHpRQUwzQjFiM0kxTHpFQUwzQjFiM0kxTHpJQUwzQjFiM0kxTHpNQUwzQjFiM0kxTHpRQUwzQjFiM0kxTHpVQUwzQjFiM0kyTHpFQUwzQjFiM0kyTHpJQUwzQjFiM0kyTHpNQUwzQjFiM0kyTHpRQUwzQjFiM0kyTHpVQUwzQjFiM0kyTHpZQUwzQjFiM0kz''@;'; + put 'put ''THpFQUwzQjFiM0kzTHpJQUwzQjFiM0kzTHpNQUwzQjFiM0kzTHpRQUwzQjFiM0kzTHpVQUwzQjFiM0kzTHpZQUwzQjFiM0kzTHpjQUwzQjFiM0k0THpFQUwzQjFiM0k0THpJQUwzQjFiM0k0THpNQUwzQjFiM0k0THpRQUwzQjFiM0k0THpVQUwzQjFiM0k0THpZQUwzQjFiM0k0THpjQUwzQjFi''@;'; + put 'put ''M0k0THpnQUwzQjFiM0k1THpFQUwzQjFiM0k1THpJQUwzQjFiM0k1THpNQUwzQjFiM0k1THpRQUwzQjFiM0k1THpVQUwzQjFiM0k1THpZQUwzQjFiM0k1THpjQUwzQjFiM0k1THpnQUwzQjFiM0k1THprQUwzQjFjbVF6THpFQUwzQjFjbVF6THpJQUwzQjFjbVF6THpNQUwzQjFjbVEwTHpFQUwz''@;'; + put 'put ''QjFjbVEwTHpJQUwzQjFjbVEwTHpNQUwzQjFjbVEwTHpRQUwzQjFjbVExTHpFQUwzQjFjbVExTHpJQUwzQjFjbVExTHpNQUwzQjFjbVExTHpRQUwzQjFjbVExTHpVQUwzQjFjbVEyTHpFQUwzQjFjbVEyTHpJQUwzQjFjbVEyTHpNQUwzQjFjbVEyTHpRQUwzQjFjbVEyTHpVQUwzQjFjbVEyTHpZ''@;'; + put 'put ''QUwzQjFjbVEzTHpFQUwzQjFjbVEzTHpJQUwzQjFjbVEzTHpNQUwzQjFjbVEzTHpRQUwzQjFjbVEzTHpVQUwzQjFjbVEzTHpZQUwzQjFjbVEzTHpjQUwzQjFjbVE0THpFQUwzQjFjbVE0THpJQUwzQjFjbVE0THpNQUwzQjFjbVE0THpRQUwzQjFjbVE0THpVQUwzQjFjbVE0THpZQUwzQjFjbVE0''@;'; + put 'put ''THpjQUwzQjFjbVE0THpnQUwzQjFjbVE1THpFQUwzQjFjbVE1THpJQUwzQjFjbVE1THpNQUwzQjFjbVE1THpRQUwzQjFjbVE1THpVQUwzQjFjbVE1THpZQUwzQjFjbVE1THpjQUwzQjFjbVE1THpnQUwzQjFjbVE1THprQUwzQjFjbkJzWlhNekx6RUFMM0IxY25Cc1pYTXpMeklBTDNCMWNuQnNa''@;'; + put 'put ''WE16THpNQUwzQjFjbkJzWlhNMEx6RUFMM0IxY25Cc1pYTTBMeklBTDNCMWNuQnNaWE0wTHpNQUwzQjFjbkJzWlhNMEx6UUFMM0IxY25Cc1pYTTFMekVBTDNCMWNuQnNaWE0xTHpJQUwzQjFjbkJzWlhNMUx6TUFMM0IxY25Cc1pYTTFMelFBTDNCMWNuQnNaWE0xTHpVQUwzQjFjbkJzWlhNMkx6''@;'; + put 'put ''RUFMM0IxY25Cc1pYTTJMeklBTDNCMWNuQnNaWE0yTHpNQUwzQjFjbkJzWlhNMkx6UUFMM0IxY25Cc1pYTTJMelVBTDNCMWNuQnNaWE0yTHpZQUwzQjFjbkJzWlhNM0x6RUFMM0IxY25Cc1pYTTNMeklBTDNCMWNuQnNaWE0zTHpNQUwzQjFjbkJzWlhNM0x6UUFMM0IxY25Cc1pYTTNMelVBTDNC''@;'; + put 'put ''MWNuQnNaWE0zTHpZQUwzQjFjbkJzWlhNM0x6Y0FMM0IxY25Cc1pYTTRMekVBTDNCMWNuQnNaWE00THpJQUwzQjFjbkJzWlhNNEx6TUFMM0IxY25Cc1pYTTRMelFBTDNCMWNuQnNaWE00THpVQUwzQjFjbkJzWlhNNEx6WUFMM0IxY25Cc1pYTTRMemNBTDNCMWNuQnNaWE00THpnQUwzQjFjbkJz''@;'; + put 'put ''WlhNNUx6RUFMM0IxY25Cc1pYTTVMeklBTDNCMWNuQnNaWE01THpNQUwzQjFjbkJzWlhNNUx6UUFMM0IxY25Cc1pYTTVMelVBTDNCMWNuQnNaWE01THpZQUwzQjFjbkJzWlhNNUx6Y0FMM0IxY25Cc1pYTTVMemdBTDNCMWNuQnNaWE01THprQUwzSmtZblV4TUM4eEFDOXlaR0oxTVRBdk1UQUFM''@;'; + put 'put ''M0prWW5VeE1DOHlBQzl5WkdKMU1UQXZNd0F2Y21SaWRURXdMelFBTDNKa1luVXhNQzgxQUM5eVpHSjFNVEF2TmdBdmNtUmlkVEV3THpjQUwzSmtZblV4TUM4NEFDOXlaR0oxTVRBdk9RQXZjbVJpZFRFeEx6RUFMM0prWW5VeE1TOHhNQUF2Y21SaWRURXhMekV4QUM5eVpHSjFNVEV2TWdBdmNt''@;'; + put 'put ''UmlkVEV4THpNQUwzSmtZblV4TVM4MEFDOXlaR0oxTVRFdk5RQXZjbVJpZFRFeEx6WUFMM0prWW5VeE1TODNBQzl5WkdKMU1URXZPQUF2Y21SaWRURXhMemtBTDNKa1luVXpMekVBTDNKa1luVXpMeklBTDNKa1luVXpMek1BTDNKa1luVTBMekVBTDNKa1luVTBMeklBTDNKa1luVTBMek1BTDNK''@;'; + put 'put ''a1luVTBMelFBTDNKa1luVTFMekVBTDNKa1luVTFMeklBTDNKa1luVTFMek1BTDNKa1luVTFMelFBTDNKa1luVTFMelVBTDNKa1luVTJMekVBTDNKa1luVTJMeklBTDNKa1luVTJMek1BTDNKa1luVTJMelFBTDNKa1luVTJMelVBTDNKa1luVTJMellBTDNKa1luVTNMekVBTDNKa1luVTNMeklB''@;'; + put 'put ''TDNKa1luVTNMek1BTDNKa1luVTNMelFBTDNKa1luVTNMelVBTDNKa1luVTNMellBTDNKa1luVTNMemNBTDNKa1luVTRMekVBTDNKa1luVTRMeklBTDNKa1luVTRMek1BTDNKa1luVTRMelFBTDNKa1luVTRMelVBTDNKa1luVTRMellBTDNKa1luVTRMemNBTDNKa1luVTRMemdBTDNKa1luVTVM''@;'; + put 'put ''ekVBTDNKa1luVTVMeklBTDNKa1luVTVMek1BTDNKa1luVTVMelFBTDNKa1luVTVMelVBTDNKa1luVTVMellBTDNKa1luVTVMemNBTDNKa1luVTVMemdBTDNKa1luVTVMemtBTDNKa1oza3hNQzh4QUM5eVpHZDVNVEF2TVRBQUwzSmtaM2t4TUM4eUFDOXlaR2Q1TVRBdk13QXZjbVJuZVRFd0x6''@;'; + put 'put ''UUFMM0prWjNreE1DODFBQzl5WkdkNU1UQXZOZ0F2Y21SbmVURXdMemNBTDNKa1oza3hNQzg0QUM5eVpHZDVNVEF2T1FBdmNtUm5lVEV4THpFQUwzSmtaM2t4TVM4eE1BQXZjbVJuZVRFeEx6RXhBQzl5WkdkNU1URXZNZ0F2Y21SbmVURXhMek1BTDNKa1oza3hNUzgwQUM5eVpHZDVNVEV2TlFB''@;'; + put 'put ''dmNtUm5lVEV4THpZQUwzSmtaM2t4TVM4M0FDOXlaR2Q1TVRFdk9BQXZjbVJuZVRFeEx6a0FMM0prWjNrekx6RUFMM0prWjNrekx6SUFMM0prWjNrekx6TUFMM0prWjNrMEx6RUFMM0prWjNrMEx6SUFMM0prWjNrMEx6TUFMM0prWjNrMEx6UUFMM0prWjNrMUx6RUFMM0prWjNrMUx6SUFMM0pr''@;'; + put 'put ''WjNrMUx6TUFMM0prWjNrMUx6UUFMM0prWjNrMUx6VUFMM0prWjNrMkx6RUFMM0prWjNrMkx6SUFMM0prWjNrMkx6TUFMM0prWjNrMkx6UUFMM0prWjNrMkx6VUFMM0prWjNrMkx6WUFMM0prWjNrM0x6RUFMM0prWjNrM0x6SUFMM0prWjNrM0x6TUFMM0prWjNrM0x6UUFMM0prWjNrM0x6VUFM''@;'; + put 'put ''M0prWjNrM0x6WUFMM0prWjNrM0x6Y0FMM0prWjNrNEx6RUFMM0prWjNrNEx6SUFMM0prWjNrNEx6TUFMM0prWjNrNEx6UUFMM0prWjNrNEx6VUFMM0prWjNrNEx6WUFMM0prWjNrNEx6Y0FMM0prWjNrNEx6Z0FMM0prWjNrNUx6RUFMM0prWjNrNUx6SUFMM0prWjNrNUx6TUFMM0prWjNrNUx6''@;'; + put 'put ''UUFMM0prWjNrNUx6VUFMM0prWjNrNUx6WUFMM0prWjNrNUx6Y0FMM0prWjNrNUx6Z0FMM0prWjNrNUx6a0FMM0prY0hVekx6RUFMM0prY0hVekx6SUFMM0prY0hVekx6TUFMM0prY0hVMEx6RUFMM0prY0hVMEx6SUFMM0prY0hVMEx6TUFMM0prY0hVMEx6UUFMM0prY0hVMUx6RUFMM0prY0hV''@;'; + put 'put ''MUx6SUFMM0prY0hVMUx6TUFMM0prY0hVMUx6UUFMM0prY0hVMUx6VUFMM0prY0hVMkx6RUFMM0prY0hVMkx6SUFMM0prY0hVMkx6TUFMM0prY0hVMkx6UUFMM0prY0hVMkx6VUFMM0prY0hVMkx6WUFMM0prY0hVM0x6RUFMM0prY0hVM0x6SUFMM0prY0hVM0x6TUFMM0prY0hVM0x6UUFMM0pr''@;'; + put 'put ''Y0hVM0x6VUFMM0prY0hVM0x6WUFMM0prY0hVM0x6Y0FMM0prY0hVNEx6RUFMM0prY0hVNEx6SUFMM0prY0hVNEx6TUFMM0prY0hVNEx6UUFMM0prY0hVNEx6VUFMM0prY0hVNEx6WUFMM0prY0hVNEx6Y0FMM0prY0hVNEx6Z0FMM0prY0hVNUx6RUFMM0prY0hVNUx6SUFMM0prY0hVNUx6TUFM''@;'; + put 'put ''M0prY0hVNUx6UUFMM0prY0hVNUx6VUFMM0prY0hVNUx6WUFMM0prY0hVNUx6Y0FMM0prY0hVNUx6Z0FMM0prY0hVNUx6a0FMM0prZVd4aWRURXdMekVBTDNKa2VXeGlkVEV3THpFd0FDOXlaSGxzWW5VeE1DOHlBQzl5Wkhsc1luVXhNQzh6QUM5eVpIbHNZblV4TUM4MEFDOXlaSGxzWW5VeE1D''@;'; + put 'put ''ODFBQzl5Wkhsc1luVXhNQzgyQUM5eVpIbHNZblV4TUM4M0FDOXlaSGxzWW5VeE1DODRBQzl5Wkhsc1luVXhNQzg1QUM5eVpIbHNZblV4TVM4eEFDOXlaSGxzWW5VeE1TOHhNQUF2Y21SNWJHSjFNVEV2TVRFQUwzSmtlV3hpZFRFeEx6SUFMM0prZVd4aWRURXhMek1BTDNKa2VXeGlkVEV4THpR''@;'; + put 'put ''QUwzSmtlV3hpZFRFeEx6VUFMM0prZVd4aWRURXhMellBTDNKa2VXeGlkVEV4THpjQUwzSmtlV3hpZFRFeEx6Z0FMM0prZVd4aWRURXhMemtBTDNKa2VXeGlkVE12TVFBdmNtUjViR0oxTXk4eUFDOXlaSGxzWW5Vekx6TUFMM0prZVd4aWRUUXZNUUF2Y21SNWJHSjFOQzh5QUM5eVpIbHNZblUw''@;'; + put 'put ''THpNQUwzSmtlV3hpZFRRdk5BQXZjbVI1YkdKMU5TOHhBQzl5Wkhsc1luVTFMeklBTDNKa2VXeGlkVFV2TXdBdmNtUjViR0oxTlM4MEFDOXlaSGxzWW5VMUx6VUFMM0prZVd4aWRUWXZNUUF2Y21SNWJHSjFOaTh5QUM5eVpIbHNZblUyTHpNQUwzSmtlV3hpZFRZdk5BQXZjbVI1YkdKMU5pODFB''@;'; + put 'put ''Qzl5Wkhsc1luVTJMellBTDNKa2VXeGlkVGN2TVFBdmNtUjViR0oxTnk4eUFDOXlaSGxzWW5VM0x6TUFMM0prZVd4aWRUY3ZOQUF2Y21SNWJHSjFOeTgxQUM5eVpIbHNZblUzTHpZQUwzSmtlV3hpZFRjdk53QXZjbVI1YkdKMU9DOHhBQzl5Wkhsc1luVTRMeklBTDNKa2VXeGlkVGd2TXdBdmNt''@;'; + put 'put ''UjViR0oxT0M4MEFDOXlaSGxzWW5VNEx6VUFMM0prZVd4aWRUZ3ZOZ0F2Y21SNWJHSjFPQzgzQUM5eVpIbHNZblU0THpnQUwzSmtlV3hpZFRrdk1RQXZjbVI1YkdKMU9TOHlBQzl5Wkhsc1luVTVMek1BTDNKa2VXeGlkVGt2TkFBdmNtUjViR0oxT1M4MUFDOXlaSGxzWW5VNUx6WUFMM0prZVd4''@;'; + put 'put ''aWRUa3ZOd0F2Y21SNWJHSjFPUzg0QUM5eVpIbHNZblU1THprQUwzSmtlV3huYmpFd0x6RUFMM0prZVd4bmJqRXdMekV3QUM5eVpIbHNaMjR4TUM4eUFDOXlaSGxzWjI0eE1DOHpBQzl5Wkhsc1oyNHhNQzgwQUM5eVpIbHNaMjR4TUM4MUFDOXlaSGxzWjI0eE1DODJBQzl5Wkhsc1oyNHhNQzgz''@;'; + put 'put ''QUM5eVpIbHNaMjR4TUM4NEFDOXlaSGxzWjI0eE1DODVBQzl5Wkhsc1oyNHhNUzh4QUM5eVpIbHNaMjR4TVM4eE1BQXZjbVI1YkdkdU1URXZNVEVBTDNKa2VXeG5iakV4THpJQUwzSmtlV3huYmpFeEx6TUFMM0prZVd4bmJqRXhMelFBTDNKa2VXeG5iakV4THpVQUwzSmtlV3huYmpFeEx6WUFM''@;'; + put 'put ''M0prZVd4bmJqRXhMemNBTDNKa2VXeG5iakV4THpnQUwzSmtlV3huYmpFeEx6a0FMM0prZVd4bmJqTXZNUUF2Y21SNWJHZHVNeTh5QUM5eVpIbHNaMjR6THpNQUwzSmtlV3huYmpRdk1RQXZjbVI1YkdkdU5DOHlBQzl5Wkhsc1oyNDBMek1BTDNKa2VXeG5ialF2TkFBdmNtUjViR2R1TlM4eEFD''@;'; + put 'put ''OXlaSGxzWjI0MUx6SUFMM0prZVd4bmJqVXZNd0F2Y21SNWJHZHVOUzgwQUM5eVpIbHNaMjQxTHpVQUwzSmtlV3huYmpZdk1RQXZjbVI1YkdkdU5pOHlBQzl5Wkhsc1oyNDJMek1BTDNKa2VXeG5iall2TkFBdmNtUjViR2R1Tmk4MUFDOXlaSGxzWjI0Mkx6WUFMM0prZVd4bmJqY3ZNUUF2Y21S''@;'; + put 'put ''NWJHZHVOeTh5QUM5eVpIbHNaMjQzTHpNQUwzSmtlV3huYmpjdk5BQXZjbVI1YkdkdU55ODFBQzl5Wkhsc1oyNDNMellBTDNKa2VXeG5iamN2TndBdmNtUjViR2R1T0M4eEFDOXlaSGxzWjI0NEx6SUFMM0prZVd4bmJqZ3ZNd0F2Y21SNWJHZHVPQzgwQUM5eVpIbHNaMjQ0THpVQUwzSmtlV3hu''@;'; + put 'put ''Ympndk5nQXZjbVI1YkdkdU9DODNBQzl5Wkhsc1oyNDRMemdBTDNKa2VXeG5iamt2TVFBdmNtUjViR2R1T1M4eUFDOXlaSGxzWjI0NUx6TUFMM0prZVd4bmJqa3ZOQUF2Y21SNWJHZHVPUzgxQUM5eVpIbHNaMjQ1THpZQUwzSmtlV3huYmprdk53QXZjbVI1YkdkdU9TODRBQzl5Wkhsc1oyNDVM''@;'; + put 'put ''emtBTDNKbFpITXpMekVBTDNKbFpITXpMeklBTDNKbFpITXpMek1BTDNKbFpITTBMekVBTDNKbFpITTBMeklBTDNKbFpITTBMek1BTDNKbFpITTBMelFBTDNKbFpITTFMekVBTDNKbFpITTFMeklBTDNKbFpITTFMek1BTDNKbFpITTFMelFBTDNKbFpITTFMelVBTDNKbFpITTJMekVBTDNKbFpI''@;'; + put 'put ''TTJMeklBTDNKbFpITTJMek1BTDNKbFpITTJMelFBTDNKbFpITTJMelVBTDNKbFpITTJMellBTDNKbFpITTNMekVBTDNKbFpITTNMeklBTDNKbFpITTNMek1BTDNKbFpITTNMelFBTDNKbFpITTNMelVBTDNKbFpITTNMellBTDNKbFpITTNMemNBTDNKbFpITTRMekVBTDNKbFpITTRMeklBTDNK''@;'; + put 'put ''bFpITTRMek1BTDNKbFpITTRMelFBTDNKbFpITTRMelVBTDNKbFpITTRMellBTDNKbFpITTRMemNBTDNKbFpITTRMemdBTDNKbFpITTVMekVBTDNKbFpITTVMeklBTDNKbFpITTVMek1BTDNKbFpITTVMelFBTDNKbFpITTVMelVBTDNKbFpITTVMellBTDNKbFpITTVMemNBTDNKbFpITTVMemdB''@;'; + put 'put ''TDNKbFpITTVMemtBTDNObGRERXpMekVBTDNObGRERXpMeklBTDNObGRERXpMek1BTDNObGRERTBMekVBTDNObGRERTBMeklBTDNObGRERTBMek1BTDNObGRERTBMelFBTDNObGRERTFMekVBTDNObGRERTFMeklBTDNObGRERTFMek1BTDNObGRERTFMelFBTDNObGRERTFMelVBTDNObGRERTJM''@;'; + put 'put ''ekVBTDNObGRERTJMeklBTDNObGRERTJMek1BTDNObGRERTJMelFBTDNObGRERTJMelVBTDNObGRERTJMellBTDNObGRERTNMekVBTDNObGRERTNMeklBTDNObGRERTNMek1BTDNObGRERTNMelFBTDNObGRERTNMelVBTDNObGRERTNMellBTDNObGRERTNMemNBTDNObGRERTRMekVBTDNObGRE''@;'; + put 'put ''RTRMeklBTDNObGRERTRMek1BTDNObGRERTRMelFBTDNObGRERTRMelVBTDNObGRERTRMellBTDNObGRERTRMemNBTDNObGRERTRMemdBTDNObGRERTVMekVBTDNObGRERTVMeklBTDNObGRERTVMek1BTDNObGRERTVMelFBTDNObGRERTVMelVBTDNObGRERTVMellBTDNObGRERTVMemNBTDNO''@;'; + put 'put ''bGRERTVMemdBTDNObGRERTVMemtBTDNObGRESXpMekVBTDNObGRESXpMeklBTDNObGRESXpMek1BTDNObGRESTBMekVBTDNObGRESTBMeklBTDNObGRESTBMek1BTDNObGRESTBMelFBTDNObGRESTFMekVBTDNObGRESTFMeklBTDNObGRESTFMek1BTDNObGRESTFMelFBTDNObGRESTFMelVB''@;'; + put 'put ''TDNObGRESTJMekVBTDNObGRESTJMeklBTDNObGRESTJMek1BTDNObGRESTJMelFBTDNObGRESTJMelVBTDNObGRESTJMellBTDNObGRESTNMekVBTDNObGRESTNMeklBTDNObGRESTNMek1BTDNObGRESTNMelFBTDNObGRESTNMelVBTDNObGRESTNMellBTDNObGRESTNMemNBTDNObGRESTRM''@;'; + put 'put ''ekVBTDNObGRESTRMeklBTDNObGRESTRMek1BTDNObGRESTRMelFBTDNObGRESTRMelVBTDNObGRESTRMellBTDNObGRESTRMemNBTDNObGRESTRMemdBTDNObGRETXhNQzh4QUM5elpYUXpNVEF2TVRBQUwzTmxkRE14TUM4eUFDOXpaWFF6TVRBdk13QXZjMlYwTXpFd0x6UUFMM05sZERNeE1D''@;'; + put 'put ''ODFBQzl6WlhRek1UQXZOZ0F2YzJWME16RXdMemNBTDNObGRETXhNQzg0QUM5elpYUXpNVEF2T1FBdmMyVjBNekV4THpFQUwzTmxkRE14TVM4eE1BQXZjMlYwTXpFeEx6RXhBQzl6WlhRek1URXZNZ0F2YzJWME16RXhMek1BTDNObGRETXhNUzgwQUM5elpYUXpNVEV2TlFBdmMyVjBNekV4THpZ''@;'; + put 'put ''QUwzTmxkRE14TVM4M0FDOXpaWFF6TVRFdk9BQXZjMlYwTXpFeEx6a0FMM05sZERNeE1pOHhBQzl6WlhRek1USXZNVEFBTDNObGRETXhNaTh4TVFBdmMyVjBNekV5THpFeUFDOXpaWFF6TVRJdk1nQXZjMlYwTXpFeUx6TUFMM05sZERNeE1pODBBQzl6WlhRek1USXZOUUF2YzJWME16RXlMellB''@;'; + put 'put ''TDNObGRETXhNaTgzQUM5elpYUXpNVEl2T0FBdmMyVjBNekV5THprQUwzTmxkRE16THpFQUwzTmxkRE16THpJQUwzTmxkRE16THpNQUwzTmxkRE0wTHpFQUwzTmxkRE0wTHpJQUwzTmxkRE0wTHpNQUwzTmxkRE0wTHpRQUwzTmxkRE0xTHpFQUwzTmxkRE0xTHpJQUwzTmxkRE0xTHpNQUwzTmxk''@;'; + put 'put ''RE0xTHpRQUwzTmxkRE0xTHpVQUwzTmxkRE0yTHpFQUwzTmxkRE0yTHpJQUwzTmxkRE0yTHpNQUwzTmxkRE0yTHpRQUwzTmxkRE0yTHpVQUwzTmxkRE0yTHpZQUwzTmxkRE0zTHpFQUwzTmxkRE0zTHpJQUwzTmxkRE0zTHpNQUwzTmxkRE0zTHpRQUwzTmxkRE0zTHpVQUwzTmxkRE0zTHpZQUwz''@;'; + put 'put ''TmxkRE0zTHpjQUwzTmxkRE00THpFQUwzTmxkRE00THpJQUwzTmxkRE00THpNQUwzTmxkRE00THpRQUwzTmxkRE00THpVQUwzTmxkRE00THpZQUwzTmxkRE00THpjQUwzTmxkRE00THpnQUwzTmxkRE01THpFQUwzTmxkRE01THpJQUwzTmxkRE01THpNQUwzTmxkRE01THpRQUwzTmxkRE01THpV''@;'; + put 'put ''QUwzTmxkRE01THpZQUwzTmxkRE01THpjQUwzTmxkRE01THpnQUwzTmxkRE01THprQUwzTndaV04wY21Gc01UQXZNUUF2YzNCbFkzUnlZV3d4TUM4eE1BQXZjM0JsWTNSeVlXd3hNQzh5QUM5emNHVmpkSEpoYkRFd0x6TUFMM053WldOMGNtRnNNVEF2TkFBdmMzQmxZM1J5WVd3eE1DODFBQzl6''@;'; + put 'put ''Y0dWamRISmhiREV3THpZQUwzTndaV04wY21Gc01UQXZOd0F2YzNCbFkzUnlZV3d4TUM4NEFDOXpjR1ZqZEhKaGJERXdMemtBTDNOd1pXTjBjbUZzTVRFdk1RQXZjM0JsWTNSeVlXd3hNUzh4TUFBdmMzQmxZM1J5WVd3eE1TOHhNUUF2YzNCbFkzUnlZV3d4TVM4eUFDOXpjR1ZqZEhKaGJERXhM''@;'; + put 'put ''ek1BTDNOd1pXTjBjbUZzTVRFdk5BQXZjM0JsWTNSeVlXd3hNUzgxQUM5emNHVmpkSEpoYkRFeEx6WUFMM053WldOMGNtRnNNVEV2TndBdmMzQmxZM1J5WVd3eE1TODRBQzl6Y0dWamRISmhiREV4THprQUwzTndaV04wY21Gc015OHhBQzl6Y0dWamRISmhiRE12TWdBdmMzQmxZM1J5WVd3ekx6''@;'; + put 'put ''TUFMM053WldOMGNtRnNOQzh4QUM5emNHVmpkSEpoYkRRdk1nQXZjM0JsWTNSeVlXdzBMek1BTDNOd1pXTjBjbUZzTkM4MEFDOXpjR1ZqZEhKaGJEVXZNUUF2YzNCbFkzUnlZV3cxTHpJQUwzTndaV04wY21Gc05TOHpBQzl6Y0dWamRISmhiRFV2TkFBdmMzQmxZM1J5WVd3MUx6VUFMM053WldO''@;'; + put 'put ''MGNtRnNOaTh4QUM5emNHVmpkSEpoYkRZdk1nQXZjM0JsWTNSeVlXdzJMek1BTDNOd1pXTjBjbUZzTmk4MEFDOXpjR1ZqZEhKaGJEWXZOUUF2YzNCbFkzUnlZV3cyTHpZQUwzTndaV04wY21Gc055OHhBQzl6Y0dWamRISmhiRGN2TWdBdmMzQmxZM1J5WVd3M0x6TUFMM053WldOMGNtRnNOeTgw''@;'; + put 'put ''QUM5emNHVmpkSEpoYkRjdk5RQXZjM0JsWTNSeVlXdzNMellBTDNOd1pXTjBjbUZzTnk4M0FDOXpjR1ZqZEhKaGJEZ3ZNUUF2YzNCbFkzUnlZV3c0THpJQUwzTndaV04wY21Gc09DOHpBQzl6Y0dWamRISmhiRGd2TkFBdmMzQmxZM1J5WVd3NEx6VUFMM053WldOMGNtRnNPQzgyQUM5emNHVmpk''@;'; + put 'put ''SEpoYkRndk53QXZjM0JsWTNSeVlXdzRMemdBTDNOd1pXTjBjbUZzT1M4eEFDOXpjR1ZqZEhKaGJEa3ZNZ0F2YzNCbFkzUnlZV3c1THpNQUwzTndaV04wY21Gc09TODBBQzl6Y0dWamRISmhiRGt2TlFBdmMzQmxZM1J5WVd3NUx6WUFMM053WldOMGNtRnNPUzgzQUM5emNHVmpkSEpoYkRrdk9B''@;'; + put 'put ''QXZjM0JsWTNSeVlXdzVMemtBTDNOMlp5OWhiR2xqWldKc2RXVUFMM04yWnk5aGJuUnBjWFZsZDJocGRHVUFMM04yWnk5aGNYVmhBQzl6ZG1jdllYRjFZVzFoY21sdVpRQXZjM1puTDJGNmRYSmxBQzl6ZG1jdlltVnBaMlVBTDNOMlp5OWlhWE54ZFdVQUwzTjJaeTlpYkdGamF3QXZjM1puTDJK''@;'; + put 'put ''c1lXNWphR1ZrWVd4dGIyNWtBQzl6ZG1jdllteDFaUUF2YzNabkwySnNkV1YyYVc5c1pYUUFMM04yWnk5aWNtOTNiZ0F2YzNabkwySjFjbXg1ZDI5dlpBQXZjM1puTDJOaFpHVjBZbXgxWlFBdmMzWm5MMk5vWVhKMGNtVjFjMlVBTDNOMlp5OWphRzlqYjJ4aGRHVUFMM04yWnk5amIzSmhiQUF2''@;'; + put 'put ''YzNabkwyTnZjbTVtYkc5M1pYSmliSFZsQUM5emRtY3ZZMjl5Ym5OcGJHc0FMM04yWnk5amNtbHRjMjl1QUM5emRtY3ZZM2xoYmdBdmMzWm5MMlJoY210aWJIVmxBQzl6ZG1jdlpHRnlhMk41WVc0QUwzTjJaeTlrWVhKcloyOXNaR1Z1Y205a0FDOXpkbWN2WkdGeWEyZHlZWGtBTDNOMlp5OWtZ''@;'; + put 'put ''WEpyWjNKbFpXNEFMM04yWnk5a1lYSnJaM0psZVFBdmMzWm5MMlJoY210cmFHRnJhUUF2YzNabkwyUmhjbXR0WVdkbGJuUmhBQzl6ZG1jdlpHRnlhMjlzYVhabFozSmxaVzRBTDNOMlp5OWtZWEpyYjNKaGJtZGxBQzl6ZG1jdlpHRnlhMjl5WTJocFpBQXZjM1puTDJSaGNtdHlaV1FBTDNOMlp5''@;'; + put 'put ''OWtZWEpyYzJGc2JXOXVBQzl6ZG1jdlpHRnlhM05sWVdkeVpXVnVBQzl6ZG1jdlpHRnlhM05zWVhSbFlteDFaUUF2YzNabkwyUmhjbXR6YkdGMFpXZHlZWGtBTDNOMlp5OWtZWEpyYzJ4aGRHVm5jbVY1QUM5emRtY3ZaR0Z5YTNSMWNuRjFiMmx6WlFBdmMzWm5MMlJoY210MmFXOXNaWFFBTDNO''@;'; + put 'put ''Mlp5OWtaV1Z3Y0dsdWF3QXZjM1puTDJSbFpYQnphM2xpYkhWbEFDOXpkbWN2WkdsdFozSmhlUUF2YzNabkwyUnBiV2R5WlhrQUwzTjJaeTlrYjJSblpYSmliSFZsQUM5emRtY3ZabWx5WldKeWFXTnJBQzl6ZG1jdlpteHZjbUZzZDJocGRHVUFMM04yWnk5bWIzSmxjM1JuY21WbGJnQXZjM1pu''@;'; + put 'put ''TDJaMVkyaHphV0VBTDNOMlp5OW5ZV2x1YzJKdmNtOEFMM04yWnk5bmFHOXpkSGRvYVhSbEFDOXpkbWN2WjI5c1pBQXZjM1puTDJkdmJHUmxibkp2WkFBdmMzWm5MMmR5WVhrQUwzTjJaeTluY21WbGJnQXZjM1puTDJkeVpXVnVlV1ZzYkc5M0FDOXpkbWN2WjNKbGVRQXZjM1puTDJodmJtVjVa''@;'; + put 'put ''R1YzQUM5emRtY3ZhRzkwY0dsdWF3QXZjM1puTDJsdVpHbGhibkpsWkFBdmMzWm5MMmx1WkdsbmJ3QXZjM1puTDJsMmIzSjVBQzl6ZG1jdmEyaGhhMmtBTDNOMlp5OXNZWFpsYm1SbGNnQXZjM1puTDJ4aGRtVnVaR1Z5WW14MWMyZ0FMM04yWnk5c1lYZHVaM0psWlc0QUwzTjJaeTlzWlcxdmJt''@;'; + put 'put ''Tm9hV1ptYjI0QUwzTjJaeTlzYVdkb2RHSnNkV1VBTDNOMlp5OXNhV2RvZEdOdmNtRnNBQzl6ZG1jdmJHbG5hSFJqZVdGdUFDOXpkbWN2YkdsbmFIUm5iMnhrWlc1eWIyUjVaV3hzYjNjQUwzTjJaeTlzYVdkb2RHZHlZWGtBTDNOMlp5OXNhV2RvZEdkeVpXVnVBQzl6ZG1jdmJHbG5hSFJuY21W''@;'; + put 'put ''NUFDOXpkbWN2YkdsbmFIUndhVzVyQUM5emRtY3ZiR2xuYUhSellXeHRiMjRBTDNOMlp5OXNhV2RvZEhObFlXZHlaV1Z1QUM5emRtY3ZiR2xuYUhSemEzbGliSFZsQUM5emRtY3ZiR2xuYUhSemJHRjBaV2R5WVhrQUwzTjJaeTlzYVdkb2RITnNZWFJsWjNKbGVRQXZjM1puTDJ4cFoyaDBjM1Js''@;'; + put 'put ''Wld4aWJIVmxBQzl6ZG1jdmJHbG5hSFI1Wld4c2IzY0FMM04yWnk5c2FXMWxBQzl6ZG1jdmJHbHRaV2R5WldWdUFDOXpkbWN2YkdsdVpXNEFMM04yWnk5dFlXZGxiblJoQUM5emRtY3ZiV0Z5YjI5dUFDOXpkbWN2YldWa2FYVnRZWEYxWVcxaGNtbHVaUUF2YzNabkwyMWxaR2wxYldKc2RXVUFM''@;'; + put 'put ''M04yWnk5dFpXUnBkVzF2Y21Ob2FXUUFMM04yWnk5dFpXUnBkVzF3ZFhKd2JHVUFMM04yWnk5dFpXUnBkVzF6WldGbmNtVmxiZ0F2YzNabkwyMWxaR2wxYlhOc1lYUmxZbXgxWlFBdmMzWm5MMjFsWkdsMWJYTndjbWx1WjJkeVpXVnVBQzl6ZG1jdmJXVmthWFZ0ZEhWeWNYVnZhWE5sQUM5emRt''@;'; + put 'put ''Y3ZiV1ZrYVhWdGRtbHZiR1YwY21Wa0FDOXpkbWN2Yldsa2JtbG5hSFJpYkhWbEFDOXpkbWN2YldsdWRHTnlaV0Z0QUM5emRtY3ZiV2x6ZEhseWIzTmxBQzl6ZG1jdmJXOWpZMkZ6YVc0QUwzTjJaeTl1WVhaaGFtOTNhR2wwWlFBdmMzWm5MMjVoZG5rQUwzTjJaeTl2YkdSc1lXTmxBQzl6ZG1j''@;'; + put 'put ''dmIyeHBkbVVBTDNOMlp5OXZiR2wyWldSeVlXSUFMM04yWnk5dmNtRnVaMlVBTDNOMlp5OXZjbUZ1WjJWeVpXUUFMM04yWnk5dmNtTm9hV1FBTDNOMlp5OXdZV3hsWjI5c1pHVnVjbTlrQUM5emRtY3ZjR0ZzWldkeVpXVnVBQzl6ZG1jdmNHRnNaWFIxY25GMWIybHpaUUF2YzNabkwzQmhiR1Yy''@;'; + put 'put ''YVc5c1pYUnlaV1FBTDNOMlp5OXdZWEJoZVdGM2FHbHdBQzl6ZG1jdmNHVmhZMmh3ZFdabUFDOXpkbWN2Y0dWeWRRQXZjM1puTDNCcGJtc0FMM04yWnk5d2JIVnRBQzl6ZG1jdmNHOTNaR1Z5WW14MVpRQXZjM1puTDNCMWNuQnNaUUF2YzNabkwzSmxaQUF2YzNabkwzSnZjM2xpY205M2JnQXZj''@;'; + put 'put ''M1puTDNKdmVXRnNZbXgxWlFBdmMzWm5MM05oWkdSc1pXSnliM2R1QUM5emRtY3ZjMkZzYlc5dUFDOXpkbWN2YzJGdVpIbGljbTkzYmdBdmMzWm5MM05sWVdkeVpXVnVBQzl6ZG1jdmMyVmhjMmhsYkd3QUwzTjJaeTl6YVdWdWJtRUFMM04yWnk5emFXeDJaWElBTDNOMlp5OXphM2xpYkhWbEFD''@;'; + put 'put ''OXpkbWN2YzJ4aGRHVmliSFZsQUM5emRtY3ZjMnhoZEdWbmNtRjVBQzl6ZG1jdmMyeGhkR1ZuY21WNUFDOXpkbWN2YzI1dmR3QXZjM1puTDNOd2NtbHVaMmR5WldWdUFDOXpkbWN2YzNSbFpXeGliSFZsQUM5emRtY3ZkR0Z1QUM5emRtY3ZkR1ZoYkFBdmMzWm5MM1JvYVhOMGJHVUFMM04yWnk5''@;'; + put 'put ''MGIyMWhkRzhBTDNOMlp5OTBkWEp4ZFc5cGMyVUFMM04yWnk5MmFXOXNaWFFBTDNOMlp5OTNhR1ZoZEFBdmMzWm5MM2RvYVhSbEFDOXpkbWN2ZDJocGRHVnpiVzlyWlFBdmMzWm5MM2xsYkd4dmR3QXZjM1puTDNsbGJHeHZkMmR5WldWdUFDOTViR2R1TXk4eEFDOTViR2R1TXk4eUFDOTViR2R1''@;'; + put 'put ''TXk4ekFDOTViR2R1TkM4eEFDOTViR2R1TkM4eUFDOTViR2R1TkM4ekFDOTViR2R1TkM4MEFDOTViR2R1TlM4eEFDOTViR2R1TlM4eUFDOTViR2R1TlM4ekFDOTViR2R1TlM4MEFDOTViR2R1TlM4MUFDOTViR2R1Tmk4eEFDOTViR2R1Tmk4eUFDOTViR2R1Tmk4ekFDOTViR2R1Tmk4MEFDOTVi''@;'; + put 'put ''R2R1Tmk4MUFDOTViR2R1Tmk4MkFDOTViR2R1Tnk4eEFDOTViR2R1Tnk4eUFDOTViR2R1Tnk4ekFDOTViR2R1Tnk4MEFDOTViR2R1Tnk4MUFDOTViR2R1Tnk4MkFDOTViR2R1Tnk4M0FDOTViR2R1T0M4eEFDOTViR2R1T0M4eUFDOTViR2R1T0M4ekFDOTViR2R1T0M4MEFDOTViR2R1T0M4MUFD''@;'; + put 'put ''OTViR2R1T0M4MkFDOTViR2R1T0M4M0FDOTViR2R1T0M4NEFDOTViR2R1T1M4eEFDOTViR2R1T1M4eUFDOTViR2R1T1M4ekFDOTViR2R1T1M4MEFDOTViR2R1T1M4MUFDOTViR2R1T1M4MkFDOTViR2R1T1M4M0FDOTViR2R1T1M4NEFDOTViR2R1T1M4NUFDOTViR2R1WW5Vekx6RUFMM2xzWjI1''@;'; + put 'put ''aWRUTXZNZ0F2ZVd4bmJtSjFNeTh6QUM5NWJHZHVZblUwTHpFQUwzbHNaMjVpZFRRdk1nQXZlV3huYm1KMU5DOHpBQzk1YkdkdVluVTBMelFBTDNsc1oyNWlkVFV2TVFBdmVXeG5ibUoxTlM4eUFDOTViR2R1WW5VMUx6TUFMM2xzWjI1aWRUVXZOQUF2ZVd4bmJtSjFOUzgxQUM5NWJHZHVZblUy''@;'; + put 'put ''THpFQUwzbHNaMjVpZFRZdk1nQXZlV3huYm1KMU5pOHpBQzk1YkdkdVluVTJMelFBTDNsc1oyNWlkVFl2TlFBdmVXeG5ibUoxTmk4MkFDOTViR2R1WW5VM0x6RUFMM2xzWjI1aWRUY3ZNZ0F2ZVd4bmJtSjFOeTh6QUM5NWJHZHVZblUzTHpRQUwzbHNaMjVpZFRjdk5RQXZlV3huYm1KMU55ODJB''@;'; + put 'put ''Qzk1YkdkdVluVTNMemNBTDNsc1oyNWlkVGd2TVFBdmVXeG5ibUoxT0M4eUFDOTViR2R1WW5VNEx6TUFMM2xzWjI1aWRUZ3ZOQUF2ZVd4bmJtSjFPQzgxQUM5NWJHZHVZblU0THpZQUwzbHNaMjVpZFRndk53QXZlV3huYm1KMU9DODRBQzk1YkdkdVluVTVMekVBTDNsc1oyNWlkVGt2TWdBdmVX''@;'; + put 'put ''eG5ibUoxT1M4ekFDOTViR2R1WW5VNUx6UUFMM2xzWjI1aWRUa3ZOUUF2ZVd4bmJtSjFPUzgyQUM5NWJHZHVZblU1THpjQUwzbHNaMjVpZFRrdk9BQXZlV3huYm1KMU9TODVBQzk1Ykc5eVluSXpMekVBTDNsc2IzSmljak12TWdBdmVXeHZjbUp5TXk4ekFDOTViRzl5WW5JMEx6RUFMM2xzYjNK''@;'; + put 'put ''aWNqUXZNZ0F2ZVd4dmNtSnlOQzh6QUM5NWJHOXlZbkkwTHpRQUwzbHNiM0ppY2pVdk1RQXZlV3h2Y21KeU5TOHlBQzk1Ykc5eVluSTFMek1BTDNsc2IzSmljalV2TkFBdmVXeHZjbUp5TlM4MUFDOTViRzl5WW5JMkx6RUFMM2xzYjNKaWNqWXZNZ0F2ZVd4dmNtSnlOaTh6QUM5NWJHOXlZbkky''@;'; + put 'put ''THpRQUwzbHNiM0ppY2pZdk5RQXZlV3h2Y21KeU5pODJBQzk1Ykc5eVluSTNMekVBTDNsc2IzSmljamN2TWdBdmVXeHZjbUp5Tnk4ekFDOTViRzl5WW5JM0x6UUFMM2xzYjNKaWNqY3ZOUUF2ZVd4dmNtSnlOeTgyQUM5NWJHOXlZbkkzTHpjQUwzbHNiM0ppY2pndk1RQXZlV3h2Y21KeU9DOHlB''@;'; + put 'put ''Qzk1Ykc5eVluSTRMek1BTDNsc2IzSmljamd2TkFBdmVXeHZjbUp5T0M4MUFDOTViRzl5WW5JNEx6WUFMM2xzYjNKaWNqZ3ZOd0F2ZVd4dmNtSnlPQzg0QUM5NWJHOXlZbkk1THpFQUwzbHNiM0ppY2prdk1nQXZlV3h2Y21KeU9TOHpBQzk1Ykc5eVluSTVMelFBTDNsc2IzSmljamt2TlFBdmVX''@;'; + put 'put ''eHZjbUp5T1M4MkFDOTViRzl5WW5JNUx6Y0FMM2xzYjNKaWNqa3ZPQUF2ZVd4dmNtSnlPUzg1QUM5NWJHOXljbVF6THpFQUwzbHNiM0p5WkRNdk1nQXZlV3h2Y25Ka015OHpBQzk1Ykc5eWNtUTBMekVBTDNsc2IzSnlaRFF2TWdBdmVXeHZjbkprTkM4ekFDOTViRzl5Y21RMEx6UUFMM2xzYjNK''@;'; + put 'put ''eVpEVXZNUUF2ZVd4dmNuSmtOUzh5QUM5NWJHOXljbVExTHpNQUwzbHNiM0p5WkRVdk5BQXZlV3h2Y25Ka05TODFBQzk1Ykc5eWNtUTJMekVBTDNsc2IzSnlaRFl2TWdBdmVXeHZjbkprTmk4ekFDOTViRzl5Y21RMkx6UUFMM2xzYjNKeVpEWXZOUUF2ZVd4dmNuSmtOaTgyQUM5NWJHOXljbVEz''@;'; + put 'put ''THpFQUwzbHNiM0p5WkRjdk1nQXZlV3h2Y25Ka055OHpBQzk1Ykc5eWNtUTNMelFBTDNsc2IzSnlaRGN2TlFBdmVXeHZjbkprTnk4MkFDOTViRzl5Y21RM0x6Y0FMM2xzYjNKeVpEZ3ZNUUF2ZVd4dmNuSmtPQzh5QUM5NWJHOXljbVE0THpNQUwzbHNiM0p5WkRndk5BQXZlV3h2Y25Ka09DODFB''@;'; + put 'put ''Qzk1Ykc5eWNtUTRMellBTDNsc2IzSnlaRGd2TndBdmVXeHZjbkprT0M4NEFDOTViRzl5Y21RNUx6RUFMM2xzYjNKeVpEa3ZNZ0F2ZVd4dmNuSmtPUzh6QUM5NWJHOXljbVE1THpRQUwzbHNiM0p5WkRrdk5RQXZlV3h2Y25Ka09TODJBQzk1Ykc5eWNtUTVMemNBTDNsc2IzSnlaRGt2T0FBdmVX''@;'; + put 'put ''eHZjbkprT1M4NUFHRnNhV05sWW14MVpRQmhiblJwY1hWbGQyaHBkR1VBWVc1MGFYRjFaWGRvYVhSbE1RQmhiblJwY1hWbGQyaHBkR1V5QUdGdWRHbHhkV1YzYUdsMFpUTUFZVzUwYVhGMVpYZG9hWFJsTkFCaGNYVmhiV0Z5YVc1bEFHRnhkV0Z0WVhKcGJtVXhBR0Z4ZFdGdFlYSnBibVV5QUdG''@;'; + put 'put ''eGRXRnRZWEpwYm1VekFHRnhkV0Z0WVhKcGJtVTBBR0Y2ZFhKbEFHRjZkWEpsTVFCaGVuVnlaVElBWVhwMWNtVXpBR0Y2ZFhKbE5BQmlaV2xuWlFCaWFYTnhkV1VBWW1semNYVmxNUUJpYVhOeGRXVXlBR0pwYzNGMVpUTUFZbWx6Y1hWbE5BQmliR0Z1WTJobFpHRnNiVzl1WkFCaWJIVmxBR0pz''@;'; + put 'put ''ZFdVeEFHSnNkV1V5QUdKc2RXVXpBR0pzZFdVMEFHSnNkV1YyYVc5c1pYUUFZbkp2ZDI0QVluSnZkMjR4QUdKeWIzZHVNZ0JpY205M2JqTUFZbkp2ZDI0MEFHSjFjbXg1ZDI5dlpBQmlkWEpzZVhkdmIyUXhBR0oxY214NWQyOXZaRElBWW5WeWJIbDNiMjlrTXdCaWRYSnNlWGR2YjJRMEFHTmha''@;'; + put 'put ''R1YwWW14MVpRQmpZV1JsZEdKc2RXVXhBR05oWkdWMFlteDFaVElBWTJGa1pYUmliSFZsTXdCallXUmxkR0pzZFdVMEFHTm9ZWEowY21WMWMyVUFZMmhoY25SeVpYVnpaVEVBWTJoaGNuUnlaWFZ6WlRJQVkyaGhjblJ5WlhWelpUTUFZMmhoY25SeVpYVnpaVFFBWTJodlkyOXNZWFJsQUdOb2Iy''@;'; + put 'put ''TnZiR0YwWlRFQVkyaHZZMjlzWVhSbE1nQmphRzlqYjJ4aGRHVXpBR05vYjJOdmJHRjBaVFFBWTI5eVlXd0FZMjl5WVd3eEFHTnZjbUZzTWdCamIzSmhiRE1BWTI5eVlXdzBBR052Y201bWJHOTNaWEppYkhWbEFHTnZjbTV6YVd4ckFHTnZjbTV6YVd4ck1RQmpiM0p1YzJsc2F6SUFZMjl5Ym5O''@;'; + put 'put ''cGJHc3pBR052Y201emFXeHJOQUJqY21sdGMyOXVBR041WVc0QVkzbGhiakVBWTNsaGJqSUFZM2xoYmpNQVkzbGhialFBWkdGeWEyZHZiR1JsYm5KdlpBQmtZWEpyWjI5c1pHVnVjbTlrTVFCa1lYSnJaMjlzWkdWdWNtOWtNZ0JrWVhKcloyOXNaR1Z1Y205a013QmtZWEpyWjI5c1pHVnVjbTlr''@;'; + put 'put ''TkFCa1lYSnJaM0psWlc0QVpHRnlhMnRvWVd0cEFHUmhjbXR2YkdsMlpXZHlaV1Z1QUdSaGNtdHZiR2wyWldkeVpXVnVNUUJrWVhKcmIyeHBkbVZuY21WbGJqSUFaR0Z5YTI5c2FYWmxaM0psWlc0ekFHUmhjbXR2YkdsMlpXZHlaV1Z1TkFCa1lYSnJiM0poYm1kbEFHUmhjbXR2Y21GdVoyVXhB''@;'; + put 'put ''R1JoY210dmNtRnVaMlV5QUdSaGNtdHZjbUZ1WjJVekFHUmhjbXR2Y21GdVoyVTBBR1JoY210dmNtTm9hV1FBWkdGeWEyOXlZMmhwWkRFQVpHRnlhMjl5WTJocFpESUFaR0Z5YTI5eVkyaHBaRE1BWkdGeWEyOXlZMmhwWkRRQVpHRnlhM05oYkcxdmJnQmtZWEpyYzJWaFozSmxaVzRBWkdGeWEz''@;'; + put 'put ''TmxZV2R5WldWdU1RQmtZWEpyYzJWaFozSmxaVzR5QUdSaGNtdHpaV0ZuY21WbGJqTUFaR0Z5YTNObFlXZHlaV1Z1TkFCa1lYSnJjMnhoZEdWaWJIVmxBR1JoY210emJHRjBaV2R5WVhrQVpHRnlhM05zWVhSbFozSmhlVEVBWkdGeWEzTnNZWFJsWjNKaGVUSUFaR0Z5YTNOc1lYUmxaM0poZVRN''@;'; + put 'put ''QVpHRnlhM05zWVhSbFozSmhlVFFBWkdGeWEzTnNZWFJsWjNKbGVRQmtZWEpyZEhWeWNYVnZhWE5sQUdSaGNtdDJhVzlzWlhRQVpHVmxjSEJwYm1zQVpHVmxjSEJwYm1zeEFHUmxaWEJ3YVc1ck1nQmtaV1Z3Y0dsdWF6TUFaR1ZsY0hCcGJtczBBR1JsWlhCemEzbGliSFZsQUdSbFpYQnphM2xp''@;'; + put 'put ''YkhWbE1RQmtaV1Z3YzJ0NVlteDFaVElBWkdWbGNITnJlV0pzZFdVekFHUmxaWEJ6YTNsaWJIVmxOQUJrYVcxbmNtRjVBR1JwYldkeVpYa0FaRzlrWjJWeVlteDFaUUJrYjJSblpYSmliSFZsTVFCa2IyUm5aWEppYkhWbE1nQmtiMlJuWlhKaWJIVmxNd0JrYjJSblpYSmliSFZsTkFCbWFYSmxZ''@;'; + put 'put ''bkpwWTJzQVptbHlaV0p5YVdOck1RQm1hWEpsWW5KcFkyc3lBR1pwY21WaWNtbGphek1BWm1seVpXSnlhV05yTkFCbWJHOXlZV3gzYUdsMFpRQm1iM0psYzNSbmNtVmxiZ0JuWVdsdWMySnZjbThBWjJodmMzUjNhR2wwWlFCbmIyeGtBR2R2YkdReEFHZHZiR1F5QUdkdmJHUXpBR2R2YkdRMEFH''@;'; + put 'put ''ZHZiR1JsYm5KdlpBQm5iMnhrWlc1eWIyUXhBR2R2YkdSbGJuSnZaRElBWjI5c1pHVnVjbTlrTXdCbmIyeGtaVzV5YjJRMEFHZHlZWGtBWjNKaGVUQUFaM0poZVRFQVozSmhlVEV3QUdkeVlYa3hNREFBWjNKaGVURXhBR2R5WVhreE1nQm5jbUY1TVRNQVozSmhlVEUwQUdkeVlYa3hOUUJuY21G''@;'; + put 'put ''NU1UWUFaM0poZVRFM0FHZHlZWGt4T0FCbmNtRjVNVGtBWjNKaGVUSUFaM0poZVRJd0FHZHlZWGt5TVFCbmNtRjVNaklBWjNKaGVUSXpBR2R5WVhreU5BQm5jbUY1TWpVQVozSmhlVEkyQUdkeVlYa3lOd0JuY21GNU1qZ0FaM0poZVRJNUFHZHlZWGt6QUdkeVlYa3pNQUJuY21GNU16RUFaM0po''@;'; + put 'put ''ZVRNeUFHZHlZWGt6TXdCbmNtRjVNelFBWjNKaGVUTTFBR2R5WVhrek5nQm5jbUY1TXpjQVozSmhlVE00QUdkeVlYa3pPUUJuY21GNU5BQm5jbUY1TkRBQVozSmhlVFF4QUdkeVlYazBNZ0JuY21GNU5ETUFaM0poZVRRMEFHZHlZWGswTlFCbmNtRjVORFlBWjNKaGVUUTNBR2R5WVhrME9BQm5j''@;'; + put 'put ''bUY1TkRrQVozSmhlVFVBWjNKaGVUVXdBR2R5WVhrMU1RQm5jbUY1TlRJQVozSmhlVFV6QUdkeVlYazFOQUJuY21GNU5UVUFaM0poZVRVMkFHZHlZWGsxTndCbmNtRjVOVGdBWjNKaGVUVTVBR2R5WVhrMkFHZHlZWGsyTUFCbmNtRjVOakVBWjNKaGVUWXlBR2R5WVhrMk13Qm5jbUY1TmpRQVoz''@;'; + put 'put ''SmhlVFkxQUdkeVlYazJOZ0JuY21GNU5qY0FaM0poZVRZNEFHZHlZWGsyT1FCbmNtRjVOd0JuY21GNU56QUFaM0poZVRjeEFHZHlZWGszTWdCbmNtRjVOek1BWjNKaGVUYzBBR2R5WVhrM05RQm5jbUY1TnpZQVozSmhlVGMzQUdkeVlYazNPQUJuY21GNU56a0FaM0poZVRnQVozSmhlVGd3QUdk''@;'; + put 'put ''eVlYazRNUUJuY21GNU9ESUFaM0poZVRnekFHZHlZWGs0TkFCbmNtRjVPRFVBWjNKaGVUZzJBR2R5WVhrNE53Qm5jbUY1T0RnQVozSmhlVGc1QUdkeVlYazVBR2R5WVhrNU1BQm5jbUY1T1RFQVozSmhlVGt5QUdkeVlYazVNd0JuY21GNU9UUUFaM0poZVRrMUFHZHlZWGs1TmdCbmNtRjVPVGNB''@;'; + put 'put ''WjNKaGVUazRBR2R5WVhrNU9RQm5jbVZsYmdCbmNtVmxiakVBWjNKbFpXNHlBR2R5WldWdU13Qm5jbVZsYmpRQVozSmxaVzU1Wld4c2IzY0FaM0psZVFCbmNtVjVNQUJuY21WNU1RQm5jbVY1TVRBQVozSmxlVEV3TUFCbmNtVjVNVEVBWjNKbGVURXlBR2R5WlhreE13Qm5jbVY1TVRRQVozSmxl''@;'; + put 'put ''VEUxQUdkeVpYa3hOZ0JuY21WNU1UY0FaM0psZVRFNEFHZHlaWGt4T1FCbmNtVjVNZ0JuY21WNU1qQUFaM0psZVRJeEFHZHlaWGt5TWdCbmNtVjVNak1BWjNKbGVUSTBBR2R5WlhreU5RQm5jbVY1TWpZQVozSmxlVEkzQUdkeVpYa3lPQUJuY21WNU1qa0FaM0psZVRNQVozSmxlVE13QUdkeVpY''@;'; + put 'put ''a3pNUUJuY21WNU16SUFaM0psZVRNekFHZHlaWGt6TkFCbmNtVjVNelVBWjNKbGVUTTJBR2R5Wlhrek53Qm5jbVY1TXpnQVozSmxlVE01QUdkeVpYazBBR2R5WlhrME1BQm5jbVY1TkRFQVozSmxlVFF5QUdkeVpYazBNd0JuY21WNU5EUUFaM0psZVRRMUFHZHlaWGswTmdCbmNtVjVORGNBWjNK''@;'; + put 'put ''bGVUUTRBR2R5WlhrME9RQm5jbVY1TlFCbmNtVjVOVEFBWjNKbGVUVXhBR2R5WlhrMU1nQm5jbVY1TlRNQVozSmxlVFUwQUdkeVpYazFOUUJuY21WNU5UWUFaM0psZVRVM0FHZHlaWGsxT0FCbmNtVjVOVGtBWjNKbGVUWUFaM0psZVRZd0FHZHlaWGsyTVFCbmNtVjVOaklBWjNKbGVUWXpBR2R5''@;'; + put 'put ''WlhrMk5BQm5jbVY1TmpVQVozSmxlVFkyQUdkeVpYazJOd0JuY21WNU5qZ0FaM0psZVRZNUFHZHlaWGszQUdkeVpYazNNQUJuY21WNU56RUFaM0psZVRjeUFHZHlaWGszTXdCbmNtVjVOelFBWjNKbGVUYzFBR2R5WlhrM05nQm5jbVY1TnpjQVozSmxlVGM0QUdkeVpYazNPUUJuY21WNU9BQm5j''@;'; + put 'put ''bVY1T0RBQVozSmxlVGd4QUdkeVpYazRNZ0JuY21WNU9ETUFaM0psZVRnMEFHZHlaWGs0TlFCbmNtVjVPRFlBWjNKbGVUZzNBR2R5WlhrNE9BQm5jbVY1T0RrQVozSmxlVGtBWjNKbGVUa3dBR2R5WlhrNU1RQm5jbVY1T1RJQVozSmxlVGt6QUdkeVpYazVOQUJuY21WNU9UVUFaM0psZVRrMkFH''@;'; + put 'put ''ZHlaWGs1TndCbmNtVjVPVGdBWjNKbGVUazVBR2h2Ym1WNVpHVjNBR2h2Ym1WNVpHVjNNUUJvYjI1bGVXUmxkeklBYUc5dVpYbGtaWGN6QUdodmJtVjVaR1YzTkFCb2IzUndhVzVyQUdodmRIQnBibXN4QUdodmRIQnBibXN5QUdodmRIQnBibXN6QUdodmRIQnBibXMwQUdsdVpHbGhibkpsWkFC''@;'; + put 'put ''cGJtUnBZVzV5WldReEFHbHVaR2xoYm5KbFpESUFhVzVrYVdGdWNtVmtNd0JwYm1ScFlXNXlaV1EwQUdsdVpHbG5id0JwYm5acGN3QnBkbTl5ZVFCcGRtOXllVEVBYVhadmNua3lBR2wyYjNKNU13QnBkbTl5ZVRRQWEyaGhhMmtBYTJoaGEya3hBR3RvWVd0cE1nQnJhR0ZyYVRNQWEyaGhhMmsw''@;'; + put 'put ''QUd4aGRtVnVaR1Z5QUd4aGRtVnVaR1Z5WW14MWMyZ0FiR0YyWlc1a1pYSmliSFZ6YURFQWJHRjJaVzVrWlhKaWJIVnphRElBYkdGMlpXNWtaWEppYkhWemFETUFiR0YyWlc1a1pYSmliSFZ6YURRQWJHRjNibWR5WldWdUFHeGxiVzl1WTJocFptWnZiZ0JzWlcxdmJtTm9hV1ptYjI0eEFHeGxi''@;'; + put 'put ''Vzl1WTJocFptWnZiaklBYkdWdGIyNWphR2xtWm05dU13QnNaVzF2Ym1Ob2FXWm1iMjQwQUd4cFoyaDBZbXgxWlFCc2FXZG9kR0pzZFdVeEFHeHBaMmgwWW14MVpUSUFiR2xuYUhSaWJIVmxNd0JzYVdkb2RHSnNkV1UwQUd4cFoyaDBZMjl5WVd3QWJHbG5hSFJqZVdGdUFHeHBaMmgwWTNsaGJq''@;'; + put 'put ''RUFiR2xuYUhSamVXRnVNZ0JzYVdkb2RHTjVZVzR6QUd4cFoyaDBZM2xoYmpRQWJHbG5hSFJuYjJ4a1pXNXliMlFBYkdsbmFIUm5iMnhrWlc1eWIyUXhBR3hwWjJoMFoyOXNaR1Z1Y205a01nQnNhV2RvZEdkdmJHUmxibkp2WkRNQWJHbG5hSFJuYjJ4a1pXNXliMlEwQUd4cFoyaDBaMjlzWkdW''@;'; + put 'put ''dWNtOWtlV1ZzYkc5M0FHeHBaMmgwWjNKaGVRQnNhV2RvZEdkeVpYa0FiR2xuYUhSd2FXNXJBR3hwWjJoMGNHbHVhekVBYkdsbmFIUndhVzVyTWdCc2FXZG9kSEJwYm1zekFHeHBaMmgwY0dsdWF6UUFiR2xuYUhSellXeHRiMjRBYkdsbmFIUnpZV3h0YjI0eEFHeHBaMmgwYzJGc2JXOXVNZ0Jz''@;'; + put 'put ''YVdkb2RITmhiRzF2YmpNQWJHbG5hSFJ6WVd4dGIyNDBBR3hwWjJoMGMyVmhaM0psWlc0QWJHbG5hSFJ6YTNsaWJIVmxBR3hwWjJoMGMydDVZbXgxWlRFQWJHbG5hSFJ6YTNsaWJIVmxNZ0JzYVdkb2RITnJlV0pzZFdVekFHeHBaMmgwYzJ0NVlteDFaVFFBYkdsbmFIUnpiR0YwWldKc2RXVUFi''@;'; + put 'put ''R2xuYUhSemJHRjBaV2R5WVhrQWJHbG5hSFJ6YkdGMFpXZHlaWGtBYkdsbmFIUnpkR1ZsYkdKc2RXVUFiR2xuYUhSemRHVmxiR0pzZFdVeEFHeHBaMmgwYzNSbFpXeGliSFZsTWdCc2FXZG9kSE4wWldWc1lteDFaVE1BYkdsbmFIUnpkR1ZsYkdKc2RXVTBBR3hwWjJoMGVXVnNiRzkzQUd4cFoy''@;'; + put 'put ''aDBlV1ZzYkc5M01RQnNhV2RvZEhsbGJHeHZkeklBYkdsbmFIUjVaV3hzYjNjekFHeHBaMmgwZVdWc2JHOTNOQUJzYVcxbFozSmxaVzRBYkdsdVpXNEFiV0ZuWlc1MFlRQnRZV2RsYm5SaE1RQnRZV2RsYm5SaE1nQnRZV2RsYm5SaE13QnRZV2RsYm5SaE5BQnRZWEp2YjI0QWJXRnliMjl1TVFC''@;'; + put 'put ''dFlYSnZiMjR5QUcxaGNtOXZiak1BYldGeWIyOXVOQUJ0WldScGRXMWhjWFZoYldGeWFXNWxBRzFsWkdsMWJXSnNkV1VBYldWa2FYVnRiM0pqYUdsa0FHMWxaR2wxYlc5eVkyaHBaREVBYldWa2FYVnRiM0pqYUdsa01nQnRaV1JwZFcxdmNtTm9hV1F6QUcxbFpHbDFiVzl5WTJocFpEUUFiV1Zr''@;'; + put 'put ''YVhWdGNIVnljR3hsQUcxbFpHbDFiWEIxY25Cc1pURUFiV1ZrYVhWdGNIVnljR3hsTWdCdFpXUnBkVzF3ZFhKd2JHVXpBRzFsWkdsMWJYQjFjbkJzWlRRQWJXVmthWFZ0YzJWaFozSmxaVzRBYldWa2FYVnRjMnhoZEdWaWJIVmxBRzFsWkdsMWJYTndjbWx1WjJkeVpXVnVBRzFsWkdsMWJYUjFj''@;'; + put 'put ''bkYxYjJselpRQnRaV1JwZFcxMmFXOXNaWFJ5WldRQWJXbGtibWxuYUhSaWJIVmxBRzFwYm5SamNtVmhiUUJ0YVhOMGVYSnZjMlVBYldsemRIbHliM05sTVFCdGFYTjBlWEp2YzJVeUFHMXBjM1I1Y205elpUTUFiV2x6ZEhseWIzTmxOQUJ0YjJOallYTnBiZ0J1WVhaaGFtOTNhR2wwWlFCdVlY''@;'; + put 'put ''WmhhbTkzYUdsMFpURUFibUYyWVdwdmQyaHBkR1V5QUc1aGRtRnFiM2RvYVhSbE13QnVZWFpoYW05M2FHbDBaVFFBYm1GMmVRQnVZWFo1WW14MVpRQnViMjVsQUc5c1pHeGhZMlVBYjJ4cGRtVmtjbUZpQUc5c2FYWmxaSEpoWWpFQWIyeHBkbVZrY21GaU1nQnZiR2wyWldSeVlXSXpBRzlzYVha''@;'; + put 'put ''bFpISmhZalFBYjNKaGJtZGxBRzl5WVc1blpURUFiM0poYm1kbE1nQnZjbUZ1WjJVekFHOXlZVzVuWlRRQWIzSmhibWRsY21Wa0FHOXlZVzVuWlhKbFpERUFiM0poYm1kbGNtVmtNZ0J2Y21GdVoyVnlaV1F6QUc5eVlXNW5aWEpsWkRRQWIzSmphR2xrQUc5eVkyaHBaREVBYjNKamFHbGtNZ0J2''@;'; + put 'put ''Y21Ob2FXUXpBRzl5WTJocFpEUUFjR0ZzWldkdmJHUmxibkp2WkFCd1lXeGxaM0psWlc0QWNHRnNaV2R5WldWdU1RQndZV3hsWjNKbFpXNHlBSEJoYkdWbmNtVmxiak1BY0dGc1pXZHlaV1Z1TkFCd1lXeGxkSFZ5Y1hWdmFYTmxBSEJoYkdWMGRYSnhkVzlwYzJVeEFIQmhiR1YwZFhKeGRXOXBj''@;'; + put 'put ''MlV5QUhCaGJHVjBkWEp4ZFc5cGMyVXpBSEJoYkdWMGRYSnhkVzlwYzJVMEFIQmhiR1YyYVc5c1pYUnlaV1FBY0dGc1pYWnBiMnhsZEhKbFpERUFjR0ZzWlhacGIyeGxkSEpsWkRJQWNHRnNaWFpwYjJ4bGRISmxaRE1BY0dGc1pYWnBiMnhsZEhKbFpEUUFjR0Z3WVhsaGQyaHBjQUJ3WldGamFI''@;'; + put 'put ''QjFabVlBY0dWaFkyaHdkV1ptTVFCd1pXRmphSEIxWm1ZeUFIQmxZV05vY0hWbVpqTUFjR1ZoWTJod2RXWm1OQUJ3WlhKMUFIQnBibXNBY0dsdWF6RUFjR2x1YXpJQWNHbHVhek1BY0dsdWF6UUFjR3gxYlFCd2JIVnRNUUJ3YkhWdE1nQndiSFZ0TXdCd2JIVnROQUJ3YjNka1pYSmliSFZsQUhC''@;'; + put 'put ''MWNuQnNaUUJ3ZFhKd2JHVXhBSEIxY25Cc1pUSUFjSFZ5Y0d4bE13QndkWEp3YkdVMEFISmxaQUJ5WldReEFISmxaRElBY21Wa013QnlaV1EwQUhKdmMzbGljbTkzYmdCeWIzTjVZbkp2ZDI0eEFISnZjM2xpY205M2JqSUFjbTl6ZVdKeWIzZHVNd0J5YjNONVluSnZkMjQwQUhKdmVXRnNZbXgx''@;'; + put 'put ''WlFCeWIzbGhiR0pzZFdVeEFISnZlV0ZzWW14MVpUSUFjbTk1WVd4aWJIVmxNd0J5YjNsaGJHSnNkV1UwQUhOaFpHUnNaV0p5YjNkdUFITmhiRzF2YmdCellXeHRiMjR4QUhOaGJHMXZiaklBYzJGc2JXOXVNd0J6WVd4dGIyNDBBSE5oYm1SNVluSnZkMjRBYzJWaFozSmxaVzRBYzJWaFozSmxa''@;'; + put 'put ''VzR4QUhObFlXZHlaV1Z1TWdCelpXRm5jbVZsYmpNQWMyVmhaM0psWlc0MEFITmxZWE5vWld4c0FITmxZWE5vWld4c01RQnpaV0Z6YUdWc2JESUFjMlZoYzJobGJHd3pBSE5sWVhOb1pXeHNOQUJ6YVdWdWJtRUFjMmxsYm01aE1RQnphV1Z1Ym1FeUFITnBaVzV1WVRNQWMybGxibTVoTkFCemEz''@;'; + put 'put ''bGliSFZsQUhOcmVXSnNkV1V4QUhOcmVXSnNkV1V5QUhOcmVXSnNkV1V6QUhOcmVXSnNkV1UwQUhOc1lYUmxZbXgxWlFCemJHRjBaV0pzZFdVeEFITnNZWFJsWW14MVpUSUFjMnhoZEdWaWJIVmxNd0J6YkdGMFpXSnNkV1UwQUhOc1lYUmxaM0poZVFCemJHRjBaV2R5WVhreEFITnNZWFJsWjNK''@;'; + put 'put ''aGVUSUFjMnhoZEdWbmNtRjVNd0J6YkdGMFpXZHlZWGswQUhOc1lYUmxaM0psZVFCemJtOTNBSE51YjNjeEFITnViM2N5QUhOdWIzY3pBSE51YjNjMEFITndjbWx1WjJkeVpXVnVBSE53Y21sdVoyZHlaV1Z1TVFCemNISnBibWRuY21WbGJqSUFjM0J5YVc1blozSmxaVzR6QUhOd2NtbHVaMmR5''@;'; + put 'put ''WldWdU5BQnpkR1ZsYkdKc2RXVUFjM1JsWld4aWJIVmxNUUJ6ZEdWbGJHSnNkV1V5QUhOMFpXVnNZbXgxWlRNQWMzUmxaV3hpYkhWbE5BQjBZVzRBZEdGdU1RQjBZVzR5QUhSaGJqTUFkR0Z1TkFCMGFHbHpkR3hsQUhSb2FYTjBiR1V4QUhSb2FYTjBiR1V5QUhSb2FYTjBiR1V6QUhSb2FYTjBi''@;'; + put 'put ''R1UwQUhSdmJXRjBid0IwYjIxaGRHOHhBSFJ2YldGMGJ6SUFkRzl0WVhSdk13QjBiMjFoZEc4MEFIUjFjbkYxYjJselpRQjBkWEp4ZFc5cGMyVXhBSFIxY25GMWIybHpaVElBZEhWeWNYVnZhWE5sTXdCMGRYSnhkVzlwYzJVMEFIWnBiMnhsZEFCMmFXOXNaWFJ5WldRQWRtbHZiR1YwY21Wa01R''@;'; + put 'put ''QjJhVzlzWlhSeVpXUXlBSFpwYjJ4bGRISmxaRE1BZG1sdmJHVjBjbVZrTkFCM2FHVmhkQUIzYUdWaGRERUFkMmhsWVhReUFIZG9aV0YwTXdCM2FHVmhkRFFBZDJocGRHVUFkMmhwZEdWemJXOXJaUUI1Wld4c2IzY0FlV1ZzYkc5M01RQjVaV3hzYjNjeUFIbGxiR3h2ZHpNQWVXVnNiRzkzTkFC''@;'; + put 'put ''NVpXeHNiM2RuY21WbGJnQnNZV05yQUdocGRHVUFhV2RvZEdkeVpYa0FXREV4THdBdkpYTXZKWE1BYVcxaFoyVnpZMkZzWlFCbVlXeHpaUUJpYkdGamF3QmtiM1IwWldRQVpHRnphR1ZrQUdOd0xUNXpjbU1BYUhSdGJIUmhZbXhsTG1NQVpXMXBkRjlvZEcxc1gybHRad0JqY0MwK2MzSmpXekJk''@;'; + put 'put ''QUhSeVlXNXpjR0Z5Wlc1MEFGOGxaQUFsWkFBeUFETUFOQUExQURZQU53QTRBRGtBTVRBQU1URUFNVElBTVRNQU1UUUFNVFVBTVRZQU1UY0FNVGdBTVRrQU1qQUFRV2R1YjJSbGFXNW1iMTkwQUVGblpXUm5aV2x1Wm05ZmRBQnliM2RuQUdOdmJHY0FRV2R5WVhCb2FXNW1iMTkwQUdSbGJIZ2dQ''@;'; + put 'put ''ajBnTUFCd2IzTmZhSFJ0YkY5MFltd0FaR1ZzZVNBK1BTQXdBSFJoWW14bElITnBlbVVnZEc5dklITnRZV3hzSUdadmNpQmpiMjUwWlc1MENnQm1hWGhsWkNCMFlXSnNaU0J6YVhwbElIZHBkR2dnZFc1emNHVmphV1pwWldRZ2QybGtkR2dnYjNJZ2FHVnBaMmgwQ2dCalpXeHNJSE5wZW1VZ2RH''@;'; + put 'put ''OXZJSE50WVd4c0lHWnZjaUJqYjI1MFpXNTBDZ0JtYVhobFpDQmpaV3hzSUhOcGVtVWdkMmwwYUNCMWJuTndaV05wWm1sbFpDQjNhV1IwYUNCdmNpQm9aV2xuYUhRS0FFNXZJRzl5SUdsdGNISnZjR1Z5SUdsdFlXZGxJR1pwYkdVOUlpVnpJZ29BY0dWdVkyOXNiM0lBTFQ0QVpsQlJMbU1BVUZG''@;'; + put 'put ''amFHVmphd0JJWldGd0lHOTJaWEptYkc5M0NnQWxJVkJUTFVGa2IySmxMVEl1TUFvdmJtOWtaU0I3Q2lBZ0wxa2daWGhqYUNCa1pXWUtJQ0F2V0NCbGVHTm9JR1JsWmdvZ0lDOTVJR1Y0WTJnZ1pHVm1DaUFnTDNnZ1pYaGphQ0JrWldZS0lDQnVaWGR3WVhSb0NpQWdlQ0I1SUcxdmRtVjBid29n''@;'; + put 'put ''SUhnZ1dTQnNhVzVsZEc4S0lDQllJRmtnYkdsdVpYUnZDaUFnV0NCNUlHeHBibVYwYndvZ0lHTnNiM05sY0dGMGFDQm1hV3hzQ24wZ1pHVm1DaTlqWld4c0lIc0tJQ0F2V1NCbGVHTm9JR1JsWmdvZ0lDOVlJR1Y0WTJnZ1pHVm1DaUFnTDNrZ1pYaGphQ0JrWldZS0lDQXZlQ0JsZUdOb0lHUmxa''@;'; + put 'put ''Z29nSUc1bGQzQmhkR2dLSUNCNElIa2diVzkyWlhSdkNpQWdlQ0JaSUd4cGJtVjBid29nSUZnZ1dTQnNhVzVsZEc4S0lDQllJSGtnYkdsdVpYUnZDaUFnWTJ4dmMyVndZWFJvSUhOMGNtOXJaUXA5SUdSbFpnb0FjMmh2ZDNCaFoyVUtBR1poYVd4bFpDQmhkQ0J1YjJSbElDVmtXekJkQ2dCdWND''@;'; + put 'put ''MCtZMlZzYkhOYk1GMEFiV0Y2WlM1akFHTm9hMU5uY21Gd2FBQm1ZV2xzWldRZ1lYUWdibTlrWlNBbFpGc3hYUW9BYm5BdFBtTmxiR3h6V3pGZEFHUnBkR1Z0Y3dCbWFXNWtVMVpsY25RQUpTVWxKVkJoWjJVNklERWdNUW9sSlNVbFVHRm5aVUp2ZFc1a2FXNW5RbTk0T2lBbFpDQWxaQ0FsWkNB''@;'; + put 'put ''bFpBb0FKV1lnSldZZ2RISmhibk5zWVhSbENnQXdJREFnTVNCelpYUnlaMkpqYjJ4dmNnb0FKV1lnSldZZ0pXWWdKV1lnYm05a1pRb0FNQ0F3SURBZ2MyVjBjbWRpWTI5c2IzSUtBQ1ZtSUNWbUlDVm1JQ1ZtSUdObGJHd0tBREVnTUNBd0lITmxkSEpuWW1OdmJHOXlDZ0IxYm1WNGNHVmpkR1Zr''@;'; + put 'put ''SUdOaGMyVWdhVzRnYkc5allYUmxYMlZ1WkhCdmFXNTBDZ0F3QUhSeVlYQmxlbTlwWkM1akFHeHZZMkYwWlY5bGJtUndiMmx1ZEFCaFpHUmZjMlZuYldWdWREb2daWEp5YjNJS0FHNWxkMjV2WkdVNklGRjFaWEo1TFhSaFlteGxJRzkyWlhKbWJHOTNDZ0J1WlhkdWIyUmxBRzVsZDNSeVlYQTZJ''@;'; + put 'put ''RlJ5WVhCbGVtOXBaQzEwWVdKc1pTQnZkbVZ5Wm14dmR5QWxaQW9BYm1WM2RISmhjQUJwYm1SbGVDNWpBRkpVY21WbFUyVmhjbU5vQUc0dFBteGxkbVZzSUQ0OUlEQUFVbFJ5WldWSmJuTmxjblFBYkdWMlpXd2dQajBnTUNBbUppQnNaWFpsYkNBOFBTQW9LbTRwTFQ1c1pYWmxiQUJ5TFQ1aWIz''@;'; + put 'put ''VnVaR0Z5ZVZ0cFhTQThQU0J5TFQ1aWIzVnVaR0Z5ZVZ0T1ZVMUVTVTFUSUNzZ2FWMEFjaUFtSmlCdUlDWW1JRzVsZHdCU1ZISmxaVWx1YzJWeWRESUFiR1YyWld3Z1BqMGdNQ0FtSmlCc1pYWmxiQ0E4UFNCdUxUNXNaWFpsYkFCR1FVeFRSUUJ1YjJSbExtTUFUbTlrWlVOdmRtVnlBSElnSmlZ''@;'; + put 'put ''Z2JnQlFhV05yUW5KaGJtTm9BRUZrWkVKeVlXNWphQUJwSUR3Z1RrOUVSVU5CVWtRQWJtVjNBRzRnSmlZZ2FTQStQU0F3SUNZbUlHa2dQQ0JPVDBSRlEwRlNSQUJFYVhOamIyNUNjbUZ1WTJnQWNnQnlaV04wWVc1bmJHVXVZd0JTWldOMFFYSmxZUUJ5SUNZbUlISnlBRU52YldKcGJtVlNaV04w''@;'; + put 'put ''QUhJZ0ppWWdjd0JQZG1WeWJHRndBRzRBYzNCc2FYUXVjUzVqQUZOd2JHbDBUbTlrWlFCaUFHNHRQbU52ZFc1MElDc2dLQ3B1YmlrdFBtTnZkVzUwSUQwOUlFNVBSRVZEUVZKRUlDc2dNUUJNYjJGa1RtOWtaWE1BY1FCd0FISjBjQzArYzNCc2FYUXVVR0Z5ZEdsMGFXOXVjMXN3WFM1d1lYSjBh''@;'; + put 'put ''WFJwYjI1YmFWMGdQVDBnTUNCOGZDQnlkSEF0UG5Od2JHbDBMbEJoY25ScGRHbHZibk5iTUYwdWNHRnlkR2wwYVc5dVcybGRJRDA5SURFQWNuUndMVDV6Y0d4cGRDNVFZWEowYVhScGIyNXpXekJkTG1OdmRXNTBXekJkSUNzZ2NuUndMVDV6Y0d4cGRDNVFZWEowYVhScGIyNXpXekJkTG1OdmRX''@;'; + put 'put ''NTBXekZkSUQwOUlFNVBSRVZEUVZKRUlDc2dNUUJOWlhSb2IyUmFaWEp2QUhKMGNDMCtjM0JzYVhRdVVHRnlkR2wwYVc5dWMxc3dYUzVqYjNWdWRGc3dYU0ErUFNCeWRIQXRQazFwYmtacGJHd2dKaVlnY25Sd0xUNXpjR3hwZEM1UVlYSjBhWFJwYjI1eld6QmRMbU52ZFc1MFd6RmRJRDQ5SUhK''@;'; + put 'put ''MGNDMCtUV2x1Um1sc2JBQWhjblJ3TFQ1emNHeHBkQzVRWVhKMGFYUnBiMjV6V3pCZExuUmhhMlZ1VzJsZEFFTnNZWE56YVdaNUFFZGxkRUp5WVc1amFHVnpBRzR0UG1KeVlXNWphRnRwWFM1amFHbHNaQUFBQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lD''@;'; + put 'put ''QWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNB''@;'; + put 'put ''Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FRSURCQVVHQndnSkNnc01EUTRQRUJFU0V4UVZGaGNZR1JvYkhC''@;'; + put 'put ''MGVIeUFoSWlNa0pTWW5LQUlDQWdJQ0FoQU1XUUVBSDFBSUF3Y1NFeFJYRmhjSUMya01Id29GREE0cEVTc1BMUkF2TUNBeUJqUTFHeHdkSGdzTUlTSWpKQ1VtSnlnTUdCa1hCQW9iSEJvZ0tnb2hJaU1rSlNZbktBd0tEbE1LTEZneFdGaFlXRmhZREJzY0R5NVlNeUVpSXlRbEppY29HeHovVS8v''@;'; + put 'put ''L0lTSWpKQ1VtSnlnTS8vOEYvLy8vQ1JULy8vLy8vd3diSFA4UUZSWWhJaU1rSlNZbktCc2MvLy8vL3lFaUl5UWxKaWNvRFA4U0V4UVJGaGYvLy8vLy8vOE1HeHovLy84U0lTSWpKQ1VtSnlnYkhQLy8vLzhoSWlNa0pTWW5LQXovLy8vLy8vOFQvLy8vLy8vL0RCc2MvLy8vL3lFaUl5UWxKaWNv''@;'; + put 'put ''R3h6Ly8vLy9JU0lqSkNVbUp5Z1NFeFFWRmhjWUdmLy8vLy8vLy8vLy95TWtKU1luR3hJVEZCWVhJalpvQVI4NFZpRWdBaHNiRzE0Ykd6YzVjRGJTd2s4RVBDSkhJajhpUkNJaVdDSmxJaUlGQmw5Z09RUUhDQWtLQ3d3TkRnUm1aMTFxYlFVR2IxZzdjUWNJQ1FvTERBME9CSEk4VzNNK1lVWWJF''@;'; + put 'put ''aE1VRmhjRUJRWS9RV0pKQndnSkNnc01EUTRGQmdCY0FBQUhDQWtLQ3d3TkRnUUFBRThBQUFCVFFnQUFBQUFBQkFVR0FFUlVWUWNJQ1FvTERBME9CUVlBQUFBQUJ3Z0pDZ3NNRFE0RUFDb3NMa2N4TXdBQUFBQUFBQVFGQmdBQUFFb0hDQWtLQ3d3TkRnVUdBQUFBQUFjSUNRb0xEQTBPQkFBQUFB''@;'; + put 'put ''QUFBRXdBQUFBQUFBQUVCUVlBQUFBQUJ3Z0pDZ3NNRFE0RkJnQUFBQUFIQ0FrS0N3d05EaWtyTFM4d01qUTFBQUFBQUFBQUFBQUFLU3N0TURJQUJDOEFKQ01BRWhRV0dod2VJQmdBQlFjdkx5OEFMeThBQUFrSUtBQUFBU0lDQmdBQUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBbEF5WVRDaWtWQ3lv''@;'; + put 'put ''WERpMFpFUnNNS3gwTkxCOFBJUkFBTXdBd0FDOURBREVBTHdBMUxpZENNa0VBT2pnQVBEUkZBRFlBUUFBQVB3QkVOenM1UFFBQ0F3TUJBUUlCQVFFREF3TURBd01EQXdFQkFRRUJBUUVCQVFFQkFRRUJBUUVDQVFFQ0FBWUJBd01EQXdNQkFBRUNBd0FFQVFJREFBUUFCQUFFQUFNQ0FRSUJBZ0ZU''@;'; + put 'put ''ZVc1MFlYZ2daWEp5YjNJNklHNXZiaTF6Y0dGalpTQnpkSEpwYm1jZ2RYTmxaQ0JpWldadmNtVWdQRlJCUWt4RlBnQlRlVzUwWVhnZ1pYSnliM0k2SUc1dmJpMXpjR0ZqWlNCemRISnBibWNnZFhObFpDQmhablJsY2lBOEwxUkJRa3hGUGdBQUtTb3FLaXNzTEMwdExTMHRMUzB0TFMwdUx6QXhN''@;'; + put 'put ''ak0wTlRZM09EazZPenc5UGo0L1AwRkFRa0pDUWtKQ1EwTkVSRVJHUlVkSFIwbElTa2hMU0V4SVRVMU9UazlQL3dNUEVCRWpPaVE5SlVBVlF5WkZKMGdZU3hsTkdpZ2NUaDBlVUZGU1dWcHNhMjVqWkZkcGJXVnRiM0o1SUdWNGFHRjFjM1JsWkFBbGN5QnBiaUJzYVc1bElDVmtJQW9BTGk0dUlD''@;'; + put 'put ''VnpJQzR1TGdvQVZFRkNURVVBVkZJQVZFZ0FWRVFBU0ZSTlRBQkdUMDVVQUVJQVZRQlBBRWtBVTFWUUFGTlZRZ0JUQUVKU0FFaFNBRlpTQUVsTlJ3QlZibXR1YjNkdUlFaFVUVXdnWld4bGJXVnVkQ0E4SlhNK0lHOXVJR3hwYm1VZ0pXUWdDZ0E4U1UxSFBnQkpiR3hsWjJGc0lHRjBkSEpwWW5W''@;'; + put 'put ''MFpTQWxjeUJwYmlBbGN5QXRJR2xuYm05eVpXUUtBSE5qWVd4bEFITnlZd0E4UWxJK0FHRnNhV2R1QUVsSFNGUUFSVVpVQUVWT1ZFVlNBRWxzYkdWbllXd2dkbUZzZFdVZ0pYTWdabTl5SUVGTVNVZE9JQzBnYVdkdWIzSmxaQW9BUEVaUFRsUStBR052Ykc5eUFHWmhZMlVBY0c5cGJuUXRjMmw2''@;'; + put 'put ''WlFCUVQwbE9WQzFUU1ZwRkFFbHRjSEp2Y0dWeUlDVnpJSFpoYkhWbElDVnpJQzBnYVdkdWIzSmxaQUFsY3lCMllXeDFaU0FsY3lBK0lDVmtJQzBnZEc5dklHeGhjbWRsSUMwZ2FXZHViM0psWkFBbGN5QjJZV3gxWlNBbGN5QThJQ1ZrSUMwZ2RHOXZJSE50WVd4c0lDMGdhV2R1YjNKbFpBQThW''@;'; + put 'put ''RVErQUdKaGJHbG5iZ0JpWjJOdmJHOXlBR0p2Y21SbGNnQmpaV3hzY0dGa1pHbHVad0JqWld4c2MzQmhZMmx1WndCamIyeHpjR0Z1QUdacGVHVmtjMmw2WlFCbmNtRmthV1Z1ZEdGdVoyeGxBR2hsYVdkb2RBQm9jbVZtQUdsa0FIQnZjblFBY205M2MzQmhiZ0J6YVdSbGN3QnpkSGxzWlFCMFlY''@;'; + put 'put ''Sm5aWFFBZEdsMGJHVUFkRzl2YkhScGNBQjJZV3hwWjI0QWQybGtkR2dBVjBsRVZFZ0FUMVJVVDAwQVQxQUFTVVJFVEVVQVNXeHNaV2RoYkNCMllXeDFaU0FsY3lCbWIzSWdWa0ZNU1VkT0lDMGdhV2R1YjNKbFpBb0FJQ3dBVDFWT1JFVkVBRUZFU1VGTUFFbHNiR1ZuWVd3Z2RtRnNkV1VnSlhN''@;'; + put 'put ''Z1ptOXlJRk5VV1V4RklDMGdhV2R1YjNKbFpBb0FVMDlNU1VRQVNVNVdTVk5KUWt4RkFFbE9Wa2xUQUVSUFZGUkZSQUJFUVZOSVJVUUFWVzV5WldOdloyNXBlbVZrSUdOb1lYSmhZM1JsY2lBbkpXTW5JQ2dsWkNrZ2FXNGdjMmxrWlhNZ1lYUjBjbWxpZFhSbENnQlNUMWRUVUVGT0FGSlBWMU5R''@;'; + put 'put ''UVU0Z2RtRnNkV1VnWTJGdWJtOTBJR0psSURBZ0xTQnBaMjV2Y21Wa0NnQklSVWxIU0ZRQVIxSkJSRWxGVGxSQlRrZE1SUUJTVlVVQVFVeFRSUUJKYkd4bFoyRnNJSFpoYkhWbElDVnpJR1p2Y2lCR1NWaEZSRk5KV2tVZ0xTQnBaMjV2Y21Wa0NnQkRUMHhUVUVGT0FFTlBURk5RUVU0Z2RtRnNk''@;'; + put 'put ''V1VnWTJGdWJtOTBJR0psSURBZ0xTQnBaMjV2Y21Wa0NnQkRSVXhNVTFCQlEwbE9Sd0JEUlV4TVVFRkVSRWxPUndCQ1QxSkVSVklBU1d4c1pXZGhiQ0IyWVd4MVpTQWxjeUJtYjNJZ1FrRk1TVWRPSUdsdUlGUkVJQzBnYVdkdWIzSmxaQW9BUlZoVUFFbHNiR1ZuWVd3Z2RtRnNkV1VnSlhNZ1pt''@;'; + put 'put ''OXlJRUZNU1VkT0lHbHVJRlJFSUMwZ2FXZHViM0psWkFvQVBGUkJRa3hGUGdCalpXeHNZbTl5WkdWeUFHTnZiSFZ0Ym5NQWNtOTNjd0JWYm10dWIzZHVJSFpoYkhWbElDVnpJR1p2Y2lCU1QxZFRJQzBnYVdkdWIzSmxaQW9BVlc1cmJtOTNiaUIyWVd4MVpTQWxjeUJtYjNJZ1EwOU1WVTFPVXlB''@;'; + put 'put ''dElHbG5ibTl5WldRS0FFTkZURXhUUWs5U1JFVlNBRHhJVkUxTVBnQThMMGhVVFV3K0FDMHRBRXhoWW1Wc0lHTnNiM05sWkNCaVpXWnZjbVVnWlc1a0lHOW1JRWhVVFV3Z1pXeGxiV1Z1ZEFvQVZXNWpiRzl6WldRZ1kyOXRiV1Z1ZEFvQWFpQTlQU0F3QUdOMmRDNWpBRkJ2WW5Od1lYUm9BSEp2''@;'; + put 'put ''ZFhSbExtTUFiR2xpY0dGMGFDOGxjem9sWkRvZ0pYTUtBSE5vYjNKMFpYTjBMbU1BYzI5MWNtTmxJSEJ2YVc1MElHNXZkQ0JwYmlCaGJua2dkSEpwWVc1bmJHVUFaR1Z6ZEdsdVlYUnBiMjRnY0c5cGJuUWdibTkwSUdsdUlHRnVlU0IwY21saGJtZHNaUUJqWVc1dWIzUWdabWx1WkNCMGNtbGhi''@;'; + put 'put ''bWRzWlNCd1lYUm9BR05oYm01dmRDQnRZV3hzYjJNZ2IzQnpBR05oYm01dmRDQnlaV0ZzYkc5aklHOXdjd0IwY21saGJtZDFiR0YwYVc5dUlHWmhhV3hsWkFCallXNXViM1FnYldGc2JHOWpJSFJ5YVhNQVkyRnVibTkwSUhKbFlXeHNiMk1nZEhKcGN3QmpZVzV1YjNRZ2JXRnNiRzlqSUdSeExu''@;'; + put 'put ''QnViSE1BWTJGdWJtOTBJSEpsWVd4c2IyTWdaSEV1Y0c1c2N3QmpZVzV1YjNRZ2JXRnNiRzlqSUhCdWJITUFZMkZ1Ym05MElHMWhiR3h2WXlCd2JteHdjd0JqWVc1dWIzUWdjbVZoYkd4dll5QndibXh6QUdOaGJtNXZkQ0J5WldGc2JHOWpJSEJ1YkhCekFFTkVRVlJCQUVsRUFFbEVVa1ZHQUVs''@;'; + put 'put ''RVVrVkdVd0JGVGxSSlZGa0FSVTVVU1ZSSlJWTUFUazFVVDB0RlRnQk9UVlJQUzBWT1V3Qk9UMVJCVkVsUFRpZ0FLQUI4QUdoMGRIQTZMeTkzZDNjdWR6TXViM0puTDFoTlRDOHhPVGs0TDI1aGJXVnpjR0ZqWlFCb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM2h0Ykc1ekx3QjRiV3c5''@;'; + put 'put ''YUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2V0UxTUx6RTVPVGd2Ym1GdFpYTndZV05sQUM5a1pYWXZkWEpoYm1SdmJRQm1ZV3hzWW1GamF5ZzBLUUJuWlhSMGFXMWxiMlprWVhsZmNtVnpJRDA5SURBQWVHMXNjR0Z5YzJVdVl3Qm5ZWFJvWlhKZmRHbHRaVjlsYm5SeWIzQjVBRVZZVUVGVVgwVk9W''@;'; + put 'put ''RkpQVUZsZlJFVkNWVWNBTVFCRmJuUnliM0I1T2lBbGN5QXRMVDRnTUhnbE1DcHNlQ0FvSld4MUlHSjVkR1Z6S1FvQWFXNTJZV3hwWkNCaGNtZDFiV1Z1ZEFCd2NtVm1hWGdnYlhWemRDQnViM1FnWW1VZ1ltOTFibVFnZEc4Z2IyNWxJRzltSUhSb1pTQnlaWE5sY25abFpDQnVZVzFsYzNCaFky''@;'; + put 'put ''VWdibUZ0WlhNQWNtVnpaWEoyWldRZ2NISmxabWw0SUNoNGJXeHVjeWtnYlhWemRDQnViM1FnWW1VZ1pHVmpiR0Z5WldRZ2IzSWdkVzVrWldOc1lYSmxaQUJ5WlhObGNuWmxaQ0J3Y21WbWFYZ2dLSGh0YkNrZ2JYVnpkQ0J1YjNRZ1ltVWdkVzVrWldOc1lYSmxaQ0J2Y2lCaWIzVnVaQ0IwYnlC''@;'; + put 'put ''aGJtOTBhR1Z5SUc1aGJXVnpjR0ZqWlNCdVlXMWxBR05oYm01dmRDQnpkWE53Wlc1a0lHbHVJR1Y0ZEdWeWJtRnNJSEJoY21GdFpYUmxjaUJsYm5ScGRIa0FjR0Z5YzJsdVp5Qm1hVzVwYzJobFpBQndZWEp6YVc1bklHRmliM0owWldRQWNHRnljMlZ5SUc1dmRDQnpkWE53Wlc1a1pXUUFjR0Z5''@;'; + put 'put ''YzJWeUlITjFjM0JsYm1SbFpBQnBiR3hsWjJGc0lHTm9ZWEpoWTNSbGNpaHpLU0JwYmlCd2RXSnNhV01nYVdRQWRHVjRkQ0JrWldOc1lYSmhkR2x2YmlCdWIzUWdkMlZzYkMxbWIzSnRaV1FBV0UxTUlHUmxZMnhoY21GMGFXOXVJRzV2ZENCM1pXeHNMV1p2Y20xbFpBQnBibU52YlhCc1pYUmxJ''@;'; + put 'put ''RzFoY210MWNDQnBiaUJ3WVhKaGJXVjBaWElnWlc1MGFYUjVBRzExYzNRZ2JtOTBJSFZ1WkdWamJHRnlaU0J3Y21WbWFYZ0FkVzVpYjNWdVpDQndjbVZtYVhnQVkyRnVibTkwSUdOb1lXNW5aU0J6WlhSMGFXNW5JRzl1WTJVZ2NHRnljMmx1WnlCb1lYTWdZbVZuZFc0QWNtVnhkV1Z6ZEdWa0lH''@;'; + put 'put ''WmxZWFIxY21VZ2NtVnhkV2x5WlhNZ1dFMU1YMFJVUkNCemRYQndiM0owSUdsdUlFVjRjR0YwQUdWdWRHbDBlU0JrWldOc1lYSmxaQ0JwYmlCd1lYSmhiV1YwWlhJZ1pXNTBhWFI1QUhWdVpYaHdaV04wWldRZ2NHRnljMlZ5SUhOMFlYUmxJQzBnY0d4bFlYTmxJSE5sYm1RZ1lTQmlkV2NnY21W''@;'; + put 'put ''d2IzSjBBR1J2WTNWdFpXNTBJR2x6SUc1dmRDQnpkR0Z1WkdGc2IyNWxBR1Z5Y205eUlHbHVJSEJ5YjJObGMzTnBibWNnWlhoMFpYSnVZV3dnWlc1MGFYUjVJSEpsWm1WeVpXNWpaUUIxYm1Oc2IzTmxaQ0JEUkVGVVFTQnpaV04wYVc5dUFHVnVZMjlrYVc1bklITndaV05wWm1sbFpDQnBiaUJZ''@;'; + put 'put ''VFV3Z1pHVmpiR0Z5WVhScGIyNGdhWE1nYVc1amIzSnlaV04wQUhWdWEyNXZkMjRnWlc1amIyUnBibWNBV0UxTUlHOXlJSFJsZUhRZ1pHVmpiR0Z5WVhScGIyNGdibTkwSUdGMElITjBZWEowSUc5bUlHVnVkR2wwZVFCeVpXWmxjbVZ1WTJVZ2RHOGdaWGgwWlhKdVlXd2daVzUwYVhSNUlHbHVJ''@;'; + put 'put ''R0YwZEhKcFluVjBaUUJ5WldabGNtVnVZMlVnZEc4Z1ltbHVZWEo1SUdWdWRHbDBlUUJ5WldabGNtVnVZMlVnZEc4Z2FXNTJZV3hwWkNCamFHRnlZV04wWlhJZ2JuVnRZbVZ5QUdGemVXNWphSEp2Ym05MWN5QmxiblJwZEhrQWNtVmpkWEp6YVhabElHVnVkR2wwZVNCeVpXWmxjbVZ1WTJVQWRX''@;'; + put 'put ''NWtaV1pwYm1Wa0lHVnVkR2wwZVFCcGJHeGxaMkZzSUhCaGNtRnRaWFJsY2lCbGJuUnBkSGtnY21WbVpYSmxibU5sQUdwMWJtc2dZV1owWlhJZ1pHOWpkVzFsYm5RZ1pXeGxiV1Z1ZEFCa2RYQnNhV05oZEdVZ1lYUjBjbWxpZFhSbEFHMXBjMjFoZEdOb1pXUWdkR0ZuQUhCaGNuUnBZV3dnWTJo''@;'; + put 'put ''aGNtRmpkR1Z5QUhWdVkyeHZjMlZrSUhSdmEyVnVBRzV2ZENCM1pXeHNMV1p2Y20xbFpDQW9hVzUyWVd4cFpDQjBiMnRsYmlrQWJtOGdaV3hsYldWdWRDQm1iM1Z1WkFCemVXNTBZWGdnWlhKeWIzSUFiM1YwSUc5bUlHMWxiVzl5ZVFBQ0F3UUZCZ2NJQUFBSkNnc01EUTRQRUJFQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQVNFd0FVQUFBQUFBQUFBQUFBQUFBQUFBQVZGZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJB''@;'; + put 'put ''UUVCQVFFQkFRRUJBUUVYQUFBQUFBQUFBQUFBQUFBQUFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVJnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHUU1hR3h3ZEhnQUFIeUFoSWlNa0pS''@;'; + put 'put ''QVJBQUFBQUFBQUFBQUFBQUFBRWhNbUZBQUFBQUFBQUFBQUFBQUFBQUFBSnhZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFF''@;'; + put 'put ''QkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkZ3QUFBQUFBQUFBQUFBQUFBQUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRVlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVORVFWUkJXMVZU''@;'; + put 'put ''TFVGVFEwbEpBRlZVUmkweE5nQlZWRVl0TVRaQ1JRQlZWRVl0TVRaTVJRQjJaWEp6YVc5dUFHVnVZMjlrYVc1bkFITjBZVzVrWVd4dmJtVUFSRTlEVkZsUVJRQlRXVk5VUlUwQVVGVkNURWxEQUVWT1ZFbFVXUUJCVkZSTVNWTlVBRVZNUlUxRlRsUUFUazlVUVZSSlQwNEFTVTVEVEZWRVJRQkpS''@;'; + put 'put ''MDVQVWtVQVJVMVFWRmtBUVU1WkFGQkRSRUZVUVFCSlRWQk1TVVZFQUZKRlVWVkpVa1ZFQUVaSldFVkVBRU5FUVZSQkFFbEVBRWxFVWtWR0FFbEVVa1ZHVXdCRlRsUkpWRWxGVXdCT1RWUlBTMFZPQUU1TlZFOUxSVTVUQUU1RVFWUkJBRlFoSWhrTkFRSURFVXNjREJBRUN4MFNIaWRvYm05d2NX''@;'; + put 'put ''SWdCUVlQRXhRVkdnZ1dCeWdrRnhnSkNnNGJIeVVqZzRKOUppb3JQRDArUDBOSFNrMVlXVnBiWEYxZVgyQmhZMlJsWm1kcGFtdHNjbk4wZVhwN2ZBQkpiR3hsWjJGc0lHSjVkR1VnYzJWeGRXVnVZMlVBUkc5dFlXbHVJR1Z5Y205eUFGSmxjM1ZzZENCdWIzUWdjbVZ3Y21WelpXNTBZV0pzWlFC''@;'; + put 'put ''T2IzUWdZU0IwZEhrQVVHVnliV2x6YzJsdmJpQmtaVzVwWldRQVQzQmxjbUYwYVc5dUlHNXZkQ0J3WlhKdGFYUjBaV1FBVG04Z2MzVmphQ0JtYVd4bElHOXlJR1JwY21WamRHOXllUUJPYnlCemRXTm9JSEJ5YjJObGMzTUFSbWxzWlNCbGVHbHpkSE1BVm1Gc2RXVWdkRzl2SUd4aGNtZGxJR1p2''@;'; + put 'put ''Y2lCa1lYUmhJSFI1Y0dVQVRtOGdjM0JoWTJVZ2JHVm1kQ0J2YmlCa1pYWnBZMlVBVDNWMElHOW1JRzFsYlc5eWVRQlNaWE52ZFhKalpTQmlkWE41QUVsdWRHVnljblZ3ZEdWa0lITjVjM1JsYlNCallXeHNBRkpsYzI5MWNtTmxJSFJsYlhCdmNtRnlhV3g1SUhWdVlYWmhhV3hoWW14bEFFbHVk''@;'; + put 'put ''bUZzYVdRZ2MyVmxhd0JEY205emN5MWtaWFpwWTJVZ2JHbHVhd0JTWldGa0xXOXViSGtnWm1sc1pTQnplWE4wWlcwQVJHbHlaV04wYjNKNUlHNXZkQ0JsYlhCMGVRQkRiMjV1WldOMGFXOXVJSEpsYzJWMElHSjVJSEJsWlhJQVQzQmxjbUYwYVc5dUlIUnBiV1ZrSUc5MWRBQkRiMjV1WldOMGFX''@;'; + put 'put ''OXVJSEpsWm5WelpXUUFTRzl6ZENCcGN5QmtiM2R1QUVodmMzUWdhWE1nZFc1eVpXRmphR0ZpYkdVQVFXUmtjbVZ6Y3lCcGJpQjFjMlVBUW5KdmEyVnVJSEJwY0dVQVNTOVBJR1Z5Y205eUFFNXZJSE4xWTJnZ1pHVjJhV05sSUc5eUlHRmtaSEpsYzNNQVFteHZZMnNnWkdWMmFXTmxJSEpsY1hW''@;'; + put 'put ''cGNtVmtBRTV2SUhOMVkyZ2daR1YyYVdObEFFNXZkQ0JoSUdScGNtVmpkRzl5ZVFCSmN5QmhJR1JwY21WamRHOXllUUJVWlhoMElHWnBiR1VnWW5WemVRQkZlR1ZqSUdadmNtMWhkQ0JsY25KdmNnQkpiblpoYkdsa0lHRnlaM1Z0Wlc1MEFFRnlaM1Z0Wlc1MElHeHBjM1FnZEc5dklHeHZibWNB''@;'; + put 'put ''VTNsdFltOXNhV01nYkdsdWF5QnNiMjl3QUVacGJHVnVZVzFsSUhSdmJ5QnNiMjVuQUZSdmJ5QnRZVzU1SUc5d1pXNGdabWxzWlhNZ2FXNGdjM2x6ZEdWdEFFNXZJR1pwYkdVZ1pHVnpZM0pwY0hSdmNuTWdZWFpoYVd4aFlteGxBRUpoWkNCbWFXeGxJR1JsYzJOeWFYQjBiM0lBVG04Z1kyaHBi''@;'; + put 'put ''R1FnY0hKdlkyVnpjd0JDWVdRZ1lXUmtjbVZ6Y3dCR2FXeGxJSFJ2YnlCc1lYSm5aUUJVYjI4Z2JXRnVlU0JzYVc1cmN3Qk9ieUJzYjJOcmN5QmhkbUZwYkdGaWJHVUFVbVZ6YjNWeVkyVWdaR1ZoWkd4dlkyc2dkMjkxYkdRZ2IyTmpkWElBVTNSaGRHVWdibTkwSUhKbFkyOTJaWEpoWW14bEFG''@;'; + put 'put ''QnlaWFpwYjNWeklHOTNibVZ5SUdScFpXUUFUM0JsY21GMGFXOXVJR05oYm1ObGJHVmtBRVoxYm1OMGFXOXVJRzV2ZENCcGJYQnNaVzFsYm5SbFpBQk9ieUJ0WlhOellXZGxJRzltSUdSbGMybHlaV1FnZEhsd1pRQkpaR1Z1ZEdsbWFXVnlJSEpsYlc5MlpXUUFSR1YyYVdObElHNXZkQ0JoSUhO''@;'; + put 'put ''MGNtVmhiUUJPYnlCa1lYUmhJR0YyWVdsc1lXSnNaUUJFWlhacFkyVWdkR2x0Wlc5MWRBQlBkWFFnYjJZZ2MzUnlaV0Z0Y3lCeVpYTnZkWEpqWlhNQVRHbHVheUJvWVhNZ1ltVmxiaUJ6WlhabGNtVmtBRkJ5YjNSdlkyOXNJR1Z5Y205eUFFSmhaQ0J0WlhOellXZGxBRVpwYkdVZ1pHVnpZM0pw''@;'; + put 'put ''Y0hSdmNpQnBiaUJpWVdRZ2MzUmhkR1VBVG05MElHRWdjMjlqYTJWMEFFUmxjM1JwYm1GMGFXOXVJR0ZrWkhKbGMzTWdjbVZ4ZFdseVpXUUFUV1Z6YzJGblpTQjBiMjhnYkdGeVoyVUFVSEp2ZEc5amIyd2dkM0p2Ym1jZ2RIbHdaU0JtYjNJZ2MyOWphMlYwQUZCeWIzUnZZMjlzSUc1dmRDQmhk''@;'; + put 'put ''bUZwYkdGaWJHVUFVSEp2ZEc5amIyd2dibTkwSUhOMWNIQnZjblJsWkFCVGIyTnJaWFFnZEhsd1pTQnViM1FnYzNWd2NHOXlkR1ZrQUU1dmRDQnpkWEJ3YjNKMFpXUUFVSEp2ZEc5amIyd2dabUZ0YVd4NUlHNXZkQ0J6ZFhCd2IzSjBaV1FBUVdSa2NtVnpjeUJtWVcxcGJIa2dibTkwSUhOMWNI''@;'; + put 'put ''QnZjblJsWkNCaWVTQndjbTkwYjJOdmJBQkJaR1J5WlhOeklHNXZkQ0JoZG1GcGJHRmliR1VBVG1WMGQyOXlheUJwY3lCa2IzZHVBRTVsZEhkdmNtc2dkVzV5WldGamFHRmliR1VBUTI5dWJtVmpkR2x2YmlCeVpYTmxkQ0JpZVNCdVpYUjNiM0pyQUVOdmJtNWxZM1JwYjI0Z1lXSnZjblJsWkFC''@;'; + put 'put ''T2J5QmlkV1ptWlhJZ2MzQmhZMlVnWVhaaGFXeGhZbXhsQUZOdlkydGxkQ0JwY3lCamIyNXVaV04wWldRQVUyOWphMlYwSUc1dmRDQmpiMjV1WldOMFpXUUFRMkZ1Ym05MElITmxibVFnWVdaMFpYSWdjMjlqYTJWMElITm9kWFJrYjNkdUFFOXdaWEpoZEdsdmJpQmhiSEpsWVdSNUlHbHVJSEJ5''@;'; + put 'put ''YjJkeVpYTnpBRTl3WlhKaGRHbHZiaUJwYmlCd2NtOW5jbVZ6Y3dCVGRHRnNaU0JtYVd4bElHaGhibVJzWlFCU1pXMXZkR1VnU1M5UElHVnljbTl5QUZGMWIzUmhJR1Y0WTJWbFpHVmtBRTV2SUcxbFpHbDFiU0JtYjNWdVpBQlhjbTl1WnlCdFpXUnBkVzBnZEhsd1pRQk9ieUJsY25KdmNpQnBi''@;'; + put 'put ''bVp2Y20xaGRHbHZiZ0FBRWhBVEZCVVdGeGdaR2hzY0hSNGZJQ0VRRUNJakVDUWxKaWNvS1NvckVDd3RMaEV2TUJFUk1SRVJFVEl6TkRVMk56ZzVFUkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQTZFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVC''@;'; + put 'put ''QVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBN0VEdzlQajlBUVJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkJDRUJBUUVCQVFFQkFRRUJB''@;'; + put 'put ''UUVCQVFFQkFRRUJBUUVCQkRFQkJFRUVWR1J4QklFRWtRRUJBUVNrdE1UUkFRVGhCUFVCQVFFQkJSRUJBUUVCQVFFQkFRRUJBUUVGSVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFR''@;'; + put 'put ''RUJBUUVCQVFFRk1RRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQlVWVlpYRUJCWVdSQVFFQkFRRUJBUUVCQVFF''@;'; + put 'put ''QkFRRUJBUUVCQVFFQkJhRUZ0Y1hWNWZZR0ZpRUJBUUVCQVFFQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQUFBQUFQNy9BUHdCQUFENEFRQUFlQUFBQUFELys5LzdBQUNBQUFBQWdB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBOEFQei80Sy8vLy8vLy8vLy8vLy8vMy8vLy8vLy9JRUN3QUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQd0RBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQd0FBQUFBQUliKy8vLy9BRUJKQUFB''@;'; + put 'put ''QUFBQVlBTi8vQU1nQUFBQUFBQUFBQVFBOEFBQUFBQUFBQUFBQUFBQUFFT0FCSGdCZy83OEFBQUFBQUFEL0J3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDR6d01BQUFBREFDRC9md0FBQUU0QUFBQUFBQUFBQUFBQUFBQUFBQUFBQVB3QUFBQUFBQUFBQUFBUUFDQWVBREFBQVFBQUFBQUFBQUFB''@;'; + put 'put ''RUFBZ0FBQUFBUHdQQUFBQUFBQUFBQkFBSUFBQUFBQUFBQUFBQUFBQUFBQVFBQ0FBQUFBQUF3QUFBQUFBQUFBQUVBQWdBQUFBQVAwQUFBQUFBQUFBQUFBQUlBQUFBQUQvQndBQUFBQUFBQUFBQUNBQUFBQUFBUDhBQUFBQUFBQUFFQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQUFBL0FnQUFB''@;'; + put 'put ''QUFBQUFBQUFBUUFBQUFBRUFBQUFBQUFBSUFBZ01EZkFBd0FBQUFBQUFBQUFBQUFBQUFBSHdBQUFBQUFBUDcvLy84QS9QLy9BQUFBQUFBQUFBRDhBQUFBQUFBQXdQL2Yvd2NBQUFBQUFBQUFBQUFBZ0FZQS9BQUFHRDRBQUlDL0FNd0FBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQUFBQUFBQUdELy8v''@;'; + put 'put ''OGZBQUQvQXdBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHQUFBQUVBQUJnQUFBQUFBQUFBQUFBNEFBQUFBQkFBQUFCd0FBQUFBQUFBQUFBQUFBQUFBQUFBTUFBQS9uOHZBQUQvQS85L0FBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNHhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF4UC8vLy84QUFBREFBQUFBQUFBQUFBQUJBT0NmQUFBQUFIOC9BQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFFQUFBL1AvLy94OEFBQUFBQUF3QUFBQUFBQUJBQUF6d0FBQUFBQUFB''@;'; + put 'put ''d1BnQUFBQUFBQUFBd0FBQUFBQUFBQUFBL3dELy8vOGhFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8vLy8vZndBQThBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBb0FQZ0FPQUE0QUJnZ1BqLy8vLzgvLy8vLy85L0gvenhmLzkvQUFELy8vOERBQUQvLy8vL0FRQjdB''@;'; + put 'put ''OURCcjBJQURCKzgvLzhBQUFBQUFBTC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93OEEvLy8vLzM4QUFBRC9Cd0FBLy8vLy8vLy8vLy8vL3o4QUFBQUFBQUQ4Ly8vKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLy8veC8vQXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPQ0hBLzRBQUFBQUFBQUFBQUFBQUFBQUFBR0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8vLy8vZi84UEFBQUFBQUFBQUFELy8vLzcvLy8vLy8v''@;'; + put 'put ''Ly8vLy8vdzhBLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzgvQUFBQS93OGUvLy8vQWZ6QjRBQUFBQUFBQUFBQUFBQUFIZ0VBQUFBQUFBQUFBQUFBQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvL0FBQUFBUC8vLy84UEFBQUEvLy8vZi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLzM4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvLy8vLy8vLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8vLy8vLy8zOEFBQUFBQUFEQUFPQUFBQUFBQUFBQUFBQUFBSUFQY0FBQUFBQUFBQUFBQUFBQUFBQUEvd0QvLzM4QUF3QUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QVlBQUFBQUFBQUFBQUFBQUFBQUFFUUlBQUFBRC84REFBQUFBQUFBOEFBQUFBQUFBQUFBQUJEQUFBRC8vd01IQUFBQUFBRDRBQUFBQUFpQUFBQUFBQUFBQUFBQUFBZ0EvejhBd0FBQUFBQUFBQUFBQUFBQUFBQUFBUEFBQUlBTEFBQUFBQUFBQUlBQ0FBREFBQUJEQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFEOC93TUFBQUFBQUFBQUFBQUFBQUFBQU1B''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREQvLy84RGZ3RC8vLy8vOS85L0R3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdQNy9BUHdCQUFENEFRQUErRDhBQUFBQUFBQUFBQUFBQUFBQUFBQi9md0F3aC8vLy8vLy9qLzhBQUFBQUFBRGcvLzhIL3c4QUFBQUFBQUQvLy8vLy96OEFBQUFB''@;'; + put 'put ''RHdBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFDQS93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURBandBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBaC84QS93RUFBQURnQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBRCtBQUFBL3dBQUFQOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLy8vZndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTUEvL1A4L0FBQUFBd0FBQUFBQUFQNERBQUFBQUFBQUFBQUFBQUFBQUJnQUR3QUFBQUFBQUFBQUFBQUFBQUFBQU9FQkFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FjQUFBQUFBQUFBQUFBQUFBQUEvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vUHdELy8vLy9mLzcvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy84L0FBQUFBUC8vLy8vLy8vLy9Qd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vLy8vLy8vLy8vLy8zOEEvLzhEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUNBQUFJQUFBQUNBQUFJQUFBQUNBQUFJQUFBQUNBQUFBQUFnQUFBQUlBQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3RC8vLy8vL3cvLy8vLy8vLy8vLy8vLy8vOFBBUDkvL24vKy8vNy9BQUFBQVA4SC8vLy9mLy8vLy8vLy8vOFAv''@;'; + put 'put ''Ly8vLy84SEFBQUFBQUFBQUFEQS8vLy9Cd0QvLy8vLy93Zi9BUU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy8vLy9BUUMvLy8vLy8vLy8vLzhmLy84UEFQLy8vLy9mQndBQS8vOEJBUC8vLy8vLy8vOS8vZi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy84ZS8vLy8vLy8vL3o4UEFQ''@;'; + put 'put ''Ly8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUGovLy8vLy8vLy8vK0gvQUFBQUFBQUEvLy8vLy8vLy8vOC9BQUFBQUFBQUFQLy8vLy8vLy8vLy8vLy8vLy8vRHdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLy93QUJBZ01FQlFZSENBbi8vLy8vLy8vL0Nnc01EUTRQRUJFU0V4UVZGaGNZR1JvYkhCMGVIeUFoSWlQLy8vLy8vLzhLQ3d3TkRnOFFFUklURkJVV0Z4Z1pHaHNjSFI0ZklDRWlJLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOEFBUUlFQndNR0JRQVNFUk1VRlJZWEdCa2FHeHdkSGg4Z0lSRWlJ''@;'; + put 'put ''eVFSSlNZbktDa3FLeXdSTFM0dkVCQXdFQkFRRUJBUUVERXlNeEEwTlJBUUVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVRZUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVS''@;'; + put 'put ''RVJFUkVSRVJFUkVSRVJFUkVSRVJFM0VSRVJFVGdST1RvN1BEMCtFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVUOFFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUlFFRVJRa05FUlVaSFNFa1FFQkJLUzB4''@;'; + put 'put ''TlRoQVFFRTlRRUJBUUVGRVFFQkFRRUJBUUVCQVJFUkZTVXhBUUVCQVFFQkFRRUJBUUVSRVJFVlFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVJFVlVRRUJBUVZoQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFR''@;'; + put 'put ''RUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQlhFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQllXVnBiRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVGd1FFQkFRRUJBUUVCQVFFQkFRRUJBUUVBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOEFBQUFBQUFBQUFQNy8vd2YrLy84SEFBQUFBQUFFSUFULy8zLy8vLzkvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOFAvQXdBZlVB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQWdBQUFBQUFEZlBFRFgvLy83Ly8vLy8vLy8vLy8vdi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQS96Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FQNy8vLzkvQXY3Ly8vLy9BQUFBQUFEL3Y3WUEvLy8vQndjQUFBRC9CLy8vLy8vLy8vLysvOFAvLy8vLy8vLy8vLy8vLy8v''@;'; + put 'put ''dkgvN2gvNThBQVAvLy8vLy8vd0RnLy8vLy8vLy8vLy8vLy8vL0F3RC8vLy8vL3djd0JQLy8vL3ovSHdBQS8vLy9BUUFBQUFBQUFBQUEvUjhBQUFBQUFBRHdBLzkvLy8vLy8vLy8vKy8vMytIL3ovLysvdTZmK2YvLy9jWGpuMW1Bc00vL0F3RHVoL24vLy8xdHc0Y1pBbDdBL3o4QTdyLzcvLy85''@;'; + put 'put ''N2VPL0d3RUF6LzhBQU82ZitmLy8vZTNqbnhuQXNNLy9BZ0RzeHozV0dNZi93OGNkZ1FEQS93QUE3dC85Ly8vOTcrUGZIV0FEei84QUFPemYvZi8vL2UvajN4MWdRTS8vQmdEczMvMy8vLy8vNTk5ZGdBRFAvd0Q4N1A5Ly9QLy8reTkvZ0YvL0FBQU1BUDcvLy8vL2YvOEhQeUQvQXdBQUFBQ1dK''@;'; + put 'put ''ZkQrcnV6L08xOGcvL01BQUFBQUFRQUFBUDhEQUFELy92Ly8veC8rL3dQLy8vNy8vLzhmQUFBQUFBQUFBQUQvLy8vLy8vOS8rZjhELy8vbndmLy9mMEQvTS8vLy8vKy9JUC8vLy8vLzkvLy8vLy8vLy8vLy96MS9QZi8vLy8vL1BmLy8vLzg5ZnozL2YvLy8vLy8vLy84OS8vLy8vLy8vLy8rSEFB''@;'; + put 'put ''QUFBUC8vQUFELy8vLy8vLy8vLy8vL0h3RCsvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK2YvLy8rLy84SC8vLy8vLy8vLy8vL3h3RUEvOThQQVAvL0R3RC8vdzhBLzk4TkFQLy8vLy8vLzgvLy93R0FFUDhEQUFBQUFQOEQvLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLzhBLy8vLy8vOEgvLy8vLy8vLy8vOC9BUC8vL3gvL0QvOEJ3UC8vLy84L0h3RC8vLy8vL3cvLy8vOEQvd01BQUFBQS8vLy9ELy8vLy8vLy8vOS8vdjhmQVA4RC93T0FBQUFBQUFBQUFBQUFBQUQvLy8vLy8vL3YvKzhQL3dNQUFBQUEvLy8vLy8vei8vLy8vLy8vdi84REFQLy8vLy8v''@;'; + put 'put ''L3o4QS8rUC8vLy8vL3o4QUFBQUFBQUFBQUFBQUFBQUEzbThBLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9BQUFBQUFBQUFBRC8vejgvLy8vLy96OC8vNnIvLy84Ly8vLy8vLy8vMzEvY0g4OFAveC9jSHdBQUFBQUFBQUFBQUFBQUFBQUFBb0FBQVA4ZkFBQUFBQUFBQUFBQUFBQUFo''@;'; + put 'put ''UHd2UGxDOS8vUGdRd0FBLy8vLy8vOEJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3UC8vLy8vLy93TUFBUC8vLy8vL2YvLy8vLy8vZi8vLy8vLy8vLy8vLy8vLy8vLy8vLzhmZUF3QS8vLy8vNzhnLy8vLy8vLy8vNEFBQVAvL2Z3Qi9mMzkvZjM5L2Yv''@;'; + put 'put ''Ly8vLzhBQUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPQUFBQUQrQXo0Zi92Ly8vLy8vLy8vLy8zL2cvdi8vLy8vLy8vLy8vLy8zNFAvLy8vOC8vdi8vLy8vLy8vLy8vLzkvQUFELy8vOEhBQUFBQUFBQS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vUHdB''@;'; + put 'put ''QUFBQUFBQUFBQVAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzhmQUFBQUFBQUEvLy8vLy8vLy8vLy8vLy8vLy8vLy8vOGZBQUFBQUFBQUFBRC8vLy8vL3ovL0gvLy8vdzhBQVAvLy8vLy9mL0NQLy8vL2dQLy8vLy8vLy8vLy8vOEFBQUFBZ1AvOC8vLy8vLy8vLy8vLy8vLy9lUThB''@;'; + put 'put ''L3djQUFBQUFBQUFBQUFEL3UvZi8vLzhBQUFELy8vLy8vLzhQQVAvLy8vLy8vLy8vRHdEL0F3QUEvQWovLy8vLy93Zi8vLy8vQndELy8vOGYvLy8vLy8vLzkvOEFnUDhEQUFBQUFQLy8vLy8vLzM4QS96Ly9BLy8vZndULy8vLy8vLy8vZndVQUFEai8vendBZm41K0FIOS9BQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUEvLy8vLy84SC93UC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vdzhBLy85LytQLy8vLy8vRC8vLy8vLy8vLy8vLy8vLy8vOC8vLy8vLy8vLy8vLy8vLy8vL3dNQUFBQUFmd0Q0NFAvOWYxL2IvLy8vLy8vLy8vLy8vLy8vL3dNQUFBRDQvLy8vLy8vLy8vLy8vLy8vUHdBQS8v''@;'; + put 'put ''Ly8vLy8vLy8vOC8vLy8vLy8vQUFBQUFBRC9Ed0FBQUFBQUFBQUFBQUFBQUFBQTMvLy8vLy8vLy8vLy8vLy8vLy8vLy84ZkFBRC9BLzcvL3dmKy8vOEh3UC8vLy8vLy8vLy8vLzkvL1B6OEhBQUFBQUQvNy8vL2YvLy90LzgvL3o4QUFBQUEvLy8vLy8vLy8vLy8vLy8vLy8vL0J3QUFBQUFBQUFB''@;'; + put 'put ''QS8vLy8vLy8vSHdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8vL3gvLy8vLy8vLzhCQUFBQUFBRC8vLzkvQUFELy8vOEhBQUFBQUFBQS8vLy9QLy8vLy84UC96NEFBQUFBQVAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy84Ly93TUFBQUFBQUFBQUFBQUFQLzMv''@;'; + put 'put ''Ly8vL3Y1SC8vejhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy96OEEvLy8vQXdBQUFBQUFBQUFBLy8vLy8vLy8vOEFBQUFBQUFBQUFBRy93Ny83Ly93OEFBQUFBQVAvLy94OEFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vLy8vLy8vUHdELy96OEEvLzhIQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUQvLy8vLy8vLy8vLzhCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8vLy8vLy8vL1B3QUFBTUQvQUFEOC8vLy8vLy8vQVFBQS8vLy9BZjhELy8vLy8vLy94LzhBQUFBQUFBQUFBUC8vLy8vLy8vLy9IZ0QvQXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vLy8vLy8vUHdEL0F3''@;'; + put 'put ''QUFBQUFBQVAvLy8vLy8vLy8vLy8vLy8vOS9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLy8vLy8vLy8vLy8vLy8vQndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy8vLy8vMzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8vLy8vLy8vOEJBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQS8vLy8vLy8vLy84ZkFQLy8vLy8vZndBQStQOEFBQUFBQUFBQUFBQUFBQUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8vLy8vLy8vLy8vL2YvLy8vLy8vLy8vL2ZaTjcvNisvLy8vLy8vLy8vditmZjMvLy8vM3RmL1AzLy8vLy8vLy8v''@;'; + put 'put ''Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vei8vLy8vOS8vLzMvLy8vOS8vLzMvLy8vOS8vLzMvLy8vOS8vLy8vL2YvLy8vMy8vL2ZQLy8vLy8vLy83Ly8vLzViKzl3cUU2cGFxbHZmM1h2Lzcvdy91Ky84UEFBQUFBQUFBQUFCTVExOUJURXdBVEVOZlExUlpV''@;'; + put 'put ''RVVBQUFBQVRFTmZUbFZOUlZKSlF3QUFURU5mVkVsTlJRQUFBQUFBVEVOZlEwOU1URUZVUlFBQVRFTmZUVTlPUlZSQlVsa0FURU5mVFVWVFUwRkhSVk1BVEVGT1J3QkRMbFZVUmkwNEFGQlBVMGxZQUUxVlUweGZURTlEVUVGVVNBQVJBQW9BRVJFUkFBQUFBQVVBQUFBQUFBQUpBQUFBQUFzQUFB''@;'; + put 'put ''QUFBQUFBQUJFQUR3b1JFUkVEQ2djQUFSTUpDd3NBQUFrR0N3QUFDd0FHRVFBQUFCRVJFUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUxBQUFBQUFBQUFBQVJBQW9LRVJFUkFBb0FBQUlBQ1FzQUFBQUpBQXNBQUFzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QURBQUFBQUFNQUFBQUFBa01BQUFBQUFBTUFBQU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNEFBQUFBQUFBQUFBQUFBQTBBQUFBRURRQUFBQUFKRGdBQUFBQUFEZ0FBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBUEFBQUFBQThB''@;'; + put 'put ''QUFBQUNSQUFBQUFBQUJBQUFCQUFBQklBQUFBU0VoSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVnQUFBQklTRWdBQUFBQUFBQWtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXNBQUFBQUFBQUFBQUFBQUFvQUFBQUFDZ0FBQUFBSkN3QUFB''@;'; + put 'put ''QUFBQ3dBQUN3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTUFBQUFBQUFBQUFBQUFBQU1BQUFBQUF3QUFBQUFDUXdBQUFBQUFBd0FBQXdBQUMwcklDQWdNRmd3ZUFBb2JuVnNiQ2tBTFRCWUt6QllJREJZTFRCNEt6QjRJREI0QUdsdVpnQkpUa1lBVGtGT0FEQXhNak0wTlRZM09E''@;'; + put 'put ''bEJRa05FUlVZdUFHRnNiblZ0QUdGc2NHaGhBR0pzWVc1ckFHTnVkSEpzQUdScFoybDBBR2R5WVhCb0FHeHZkMlZ5QUhCeWFXNTBBSEIxYm1OMEFITndZV05sQUhWd2NHVnlBSGhrYVdkcGRBQkRMbFZVUmkwNEFBQUFBQUFBQUFBQVF3QXZjSEp2WXk5elpXeG1MMlprTHdCeWQyRUFhVzVtYVc1''@;'; + put 'put ''cGRIa0FibUZ1QUFrQUNnQU5BQXdBQndBYkFGdGJPbUZzYm5WdE9sMWZYUUJiWGxzNllXeHVkVzA2WFY5ZEFGdGJPbk53WVdObE9sMWRBRnRlV3pwemNHRmpaVHBkWFFCYld6cGthV2RwZERwZFhRQmJYbHM2WkdsbmFYUTZYVjBBTDNSdGNDOTBiWEJtYVd4bFgxaFlXRmhZV0FCM0t3PT0iO3Zh''@;'; + put 'put ''ciBNYT15dDtmdW5jdGlvbiBubChwdCxJdCxQdCxmZSl7ZjIoIkFzc2VydGlvbiBmYWlsZWQ6ICIrRihwdCkrIiwgYXQ6ICIrW0l0P0YoSXQpOiJ1bmtub3duIGZpbGVuYW1lIixQdCxmZT9GKGZlKToidW5rbm93biBmdW5jdGlvbiJdKX1mdW5jdGlvbiBnbCgpe2YyKCl9ZnVuY3Rpb24gQWko''@;'; + put 'put ''KXtyZXR1cm4gTnx8InVuZGVmaW5lZCIhPXR5cGVvZiBkYXRlTm93fHwoWXx8VykmJnNlbGYucGVyZm9ybWFuY2UmJnNlbGYucGVyZm9ybWFuY2Uubm93fXl0Kz0xNjt2YXIgdmk9e0VQRVJNOjEsRU5PRU5UOjIsRVNSQ0g6MyxFSU5UUjo0LEVJTzo1LEVOWElPOjYsRTJCSUc6NyxFTk9FWEVD''@;'; + put 'put ''OjgsRUJBREY6OSxFQ0hJTEQ6MTAsRUFHQUlOOjExLEVXT1VMREJMT0NLOjExLEVOT01FTToxMixFQUNDRVM6MTMsRUZBVUxUOjE0LEVOT1RCTEs6MTUsRUJVU1k6MTYsRUVYSVNUOjE3LEVYREVWOjE4LEVOT0RFVjoxOSxFTk9URElSOjIwLEVJU0RJUjoyMSxFSU5WQUw6MjIsRU5GSUxFOjIz''@;'; + put 'put ''LEVNRklMRToyNCxFTk9UVFk6MjUsRVRYVEJTWToyNixFRkJJRzoyNyxFTk9TUEM6MjgsRVNQSVBFOjI5LEVST0ZTOjMwLEVNTElOSzozMSxFUElQRTozMixFRE9NOjMzLEVSQU5HRTozNCxFTk9NU0c6NDIsRUlEUk06NDMsRUNIUk5HOjQ0LEVMMk5TWU5DOjQ1LEVMM0hMVDo0NixFTDNSU1Q6''@;'; + put 'put ''NDcsRUxOUk5HOjQ4LEVVTkFUQ0g6NDksRU5PQ1NJOjUwLEVMMkhMVDo1MSxFREVBRExLOjM1LEVOT0xDSzozNyxFQkFERTo1MixFQkFEUjo1MyxFWEZVTEw6NTQsRU5PQU5POjU1LEVCQURSUUM6NTYsRUJBRFNMVDo1NyxFREVBRExPQ0s6MzUsRUJGT05UOjU5LEVOT1NUUjo2MCxFTk9EQVRB''@;'; + put 'put ''OjYxLEVUSU1FOjYyLEVOT1NSOjYzLEVOT05FVDo2NCxFTk9QS0c6NjUsRVJFTU9URTo2NixFTk9MSU5LOjY3LEVBRFY6NjgsRVNSTU5UOjY5LEVDT01NOjcwLEVQUk9UTzo3MSxFTVVMVElIT1A6NzIsRURPVERPVDo3MyxFQkFETVNHOjc0LEVOT1RVTklROjc2LEVCQURGRDo3NyxFUkVNQ0hH''@;'; + put 'put ''Ojc4LEVMSUJBQ0M6NzksRUxJQkJBRDo4MCxFTElCU0NOOjgxLEVMSUJNQVg6ODIsRUxJQkVYRUM6ODMsRU5PU1lTOjM4LEVOT1RFTVBUWTozOSxFTkFNRVRPT0xPTkc6MzYsRUxPT1A6NDAsRU9QTk9UU1VQUDo5NSxFUEZOT1NVUFBPUlQ6OTYsRUNPTk5SRVNFVDoxMDQsRU5PQlVGUzoxMDUs''@;'; + put 'put ''RUFGTk9TVVBQT1JUOjk3LEVQUk9UT1RZUEU6OTEsRU5PVFNPQ0s6ODgsRU5PUFJPVE9PUFQ6OTIsRVNIVVRET1dOOjEwOCxFQ09OTlJFRlVTRUQ6MTExLEVBRERSSU5VU0U6OTgsRUNPTk5BQk9SVEVEOjEwMyxFTkVUVU5SRUFDSDoxMDEsRU5FVERPV046MTAwLEVUSU1FRE9VVDoxMTAsRUhP''@;'; + put 'put ''U1RET1dOOjExMixFSE9TVFVOUkVBQ0g6MTEzLEVJTlBST0dSRVNTOjExNSxFQUxSRUFEWToxMTQsRURFU1RBRERSUkVROjg5LEVNU0dTSVpFOjkwLEVQUk9UT05PU1VQUE9SVDo5MyxFU09DS1ROT1NVUFBPUlQ6OTQsRUFERFJOT1RBVkFJTDo5OSxFTkVUUkVTRVQ6MTAyLEVJU0NPTk46MTA2''@;'; + put 'put ''LEVOT1RDT05OOjEwNyxFVE9PTUFOWVJFRlM6MTA5LEVVU0VSUzo4NyxFRFFVT1Q6MTIyLEVTVEFMRToxMTYsRU5PVFNVUDo5NSxFTk9NRURJVU06MTIzLEVJTFNFUTo4NCxFT1ZFUkZMT1c6NzUsRUNBTkNFTEVEOjEyNSxFTk9UUkVDT1ZFUkFCTEU6MTMxLEVPV05FUkRFQUQ6MTMwLEVTVFJQ''@;'; + put 'put ''SVBFOjg2fTtmdW5jdGlvbiBiMChwdCl7cmV0dXJuIFouX19fZXJybm9fbG9jYXRpb24mJihMdFtaLl9fX2Vycm5vX2xvY2F0aW9uKCk+PjJdPXB0KSxwdH1mdW5jdGlvbiBzYShwdCxJdCl7dmFyIFB0O2lmKDA9PT1wdClQdD1EYXRlLm5vdygpO2Vsc2V7aWYoMSE9PXB0fHwhQWkoKSlyZXR1''@;'; + put 'put ''cm4gYjAodmkuRUlOVkFMKSwtMTtQdD1nbCgpfXJldHVybiBMdFtJdD4+Ml09UHQvMWUzfDAsTHRbSXQrND4+Ml09UHQlMWUzKjFlMyoxZTN8MCwwfWZ1bmN0aW9uIHJsKCl7cmV0dXJuIHNhLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBiaSgpe31mdW5jdGlvbiBvdShwdCxJdCl7''@;'; + put 'put ''cmV0dXJuIGIwKHZpLkVQRVJNKSwtMX12YXIgSGM9ezA6IlN1Y2Nlc3MiLDE6Ik5vdCBzdXBlci11c2VyIiwyOiJObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IiwzOiJObyBzdWNoIHByb2Nlc3MiLDQ6IkludGVycnVwdGVkIHN5c3RlbSBjYWxsIiw1OiJJL08gZXJyb3IiLDY6Ik5vIHN1Y2gg''@;'; + put 'put ''ZGV2aWNlIG9yIGFkZHJlc3MiLDc6IkFyZyBsaXN0IHRvbyBsb25nIiw4OiJFeGVjIGZvcm1hdCBlcnJvciIsOToiQmFkIGZpbGUgbnVtYmVyIiwxMDoiTm8gY2hpbGRyZW4iLDExOiJObyBtb3JlIHByb2Nlc3NlcyIsMTI6Ik5vdCBlbm91Z2ggY29yZSIsMTM6IlBlcm1pc3Npb24gZGVuaWVk''@;'; + put 'put ''IiwxNDoiQmFkIGFkZHJlc3MiLDE1OiJCbG9jayBkZXZpY2UgcmVxdWlyZWQiLDE2OiJNb3VudCBkZXZpY2UgYnVzeSIsMTc6IkZpbGUgZXhpc3RzIiwxODoiQ3Jvc3MtZGV2aWNlIGxpbmsiLDE5OiJObyBzdWNoIGRldmljZSIsMjA6Ik5vdCBhIGRpcmVjdG9yeSIsMjE6IklzIGEgZGlyZWN0''@;'; + put 'put ''b3J5IiwyMjoiSW52YWxpZCBhcmd1bWVudCIsMjM6IlRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtIiwyNDoiVG9vIG1hbnkgb3BlbiBmaWxlcyIsMjU6Ik5vdCBhIHR5cGV3cml0ZXIiLDI2OiJUZXh0IGZpbGUgYnVzeSIsMjc6IkZpbGUgdG9vIGxhcmdlIiwyODoiTm8gc3BhY2UgbGVm''@;'; + put 'put ''dCBvbiBkZXZpY2UiLDI5OiJJbGxlZ2FsIHNlZWsiLDMwOiJSZWFkIG9ubHkgZmlsZSBzeXN0ZW0iLDMxOiJUb28gbWFueSBsaW5rcyIsMzI6IkJyb2tlbiBwaXBlIiwzMzoiTWF0aCBhcmcgb3V0IG9mIGRvbWFpbiBvZiBmdW5jIiwzNDoiTWF0aCByZXN1bHQgbm90IHJlcHJlc2VudGFibGUi''@;'; + put 'put ''LDM1OiJGaWxlIGxvY2tpbmcgZGVhZGxvY2sgZXJyb3IiLDM2OiJGaWxlIG9yIHBhdGggbmFtZSB0b28gbG9uZyIsMzc6Ik5vIHJlY29yZCBsb2NrcyBhdmFpbGFibGUiLDM4OiJGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQiLDM5OiJEaXJlY3Rvcnkgbm90IGVtcHR5Iiw0MDoiVG9vIG1hbnkg''@;'; + put 'put ''c3ltYm9saWMgbGlua3MiLDQyOiJObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZSIsNDM6IklkZW50aWZpZXIgcmVtb3ZlZCIsNDQ6IkNoYW5uZWwgbnVtYmVyIG91dCBvZiByYW5nZSIsNDU6IkxldmVsIDIgbm90IHN5bmNocm9uaXplZCIsNDY6IkxldmVsIDMgaGFsdGVkIiw0NzoiTGV2ZWwg''@;'; + put 'put ''MyByZXNldCIsNDg6IkxpbmsgbnVtYmVyIG91dCBvZiByYW5nZSIsNDk6IlByb3RvY29sIGRyaXZlciBub3QgYXR0YWNoZWQiLDUwOiJObyBDU0kgc3RydWN0dXJlIGF2YWlsYWJsZSIsNTE6IkxldmVsIDIgaGFsdGVkIiw1MjoiSW52YWxpZCBleGNoYW5nZSIsNTM6IkludmFsaWQgcmVxdWVz''@;'; + put 'put ''dCBkZXNjcmlwdG9yIiw1NDoiRXhjaGFuZ2UgZnVsbCIsNTU6Ik5vIGFub2RlIiw1NjoiSW52YWxpZCByZXF1ZXN0IGNvZGUiLDU3OiJJbnZhbGlkIHNsb3QiLDU5OiJCYWQgZm9udCBmaWxlIGZtdCIsNjA6IkRldmljZSBub3QgYSBzdHJlYW0iLDYxOiJObyBkYXRhIChmb3Igbm8gZGVsYXkg''@;'; + put 'put ''aW8pIiw2MjoiVGltZXIgZXhwaXJlZCIsNjM6Ik91dCBvZiBzdHJlYW1zIHJlc291cmNlcyIsNjQ6Ik1hY2hpbmUgaXMgbm90IG9uIHRoZSBuZXR3b3JrIiw2NToiUGFja2FnZSBub3QgaW5zdGFsbGVkIiw2NjoiVGhlIG9iamVjdCBpcyByZW1vdGUiLDY3OiJUaGUgbGluayBoYXMgYmVlbiBz''@;'; + put 'put ''ZXZlcmVkIiw2ODoiQWR2ZXJ0aXNlIGVycm9yIiw2OToiU3Jtb3VudCBlcnJvciIsNzA6IkNvbW11bmljYXRpb24gZXJyb3Igb24gc2VuZCIsNzE6IlByb3RvY29sIGVycm9yIiw3MjoiTXVsdGlob3AgYXR0ZW1wdGVkIiw3MzoiQ3Jvc3MgbW91bnQgcG9pbnQgKG5vdCByZWFsbHkgZXJyb3Ip''@;'; + put 'put ''Iiw3NDoiVHJ5aW5nIHRvIHJlYWQgdW5yZWFkYWJsZSBtZXNzYWdlIiw3NToiVmFsdWUgdG9vIGxhcmdlIGZvciBkZWZpbmVkIGRhdGEgdHlwZSIsNzY6IkdpdmVuIGxvZy4gbmFtZSBub3QgdW5pcXVlIiw3NzoiZi5kLiBpbnZhbGlkIGZvciB0aGlzIG9wZXJhdGlvbiIsNzg6IlJlbW90ZSBh''@;'; + put 'put ''ZGRyZXNzIGNoYW5nZWQiLDc5OiJDYW4gICBhY2Nlc3MgYSBuZWVkZWQgc2hhcmVkIGxpYiIsODA6IkFjY2Vzc2luZyBhIGNvcnJ1cHRlZCBzaGFyZWQgbGliIiw4MToiLmxpYiBzZWN0aW9uIGluIGEub3V0IGNvcnJ1cHRlZCIsODI6IkF0dGVtcHRpbmcgdG8gbGluayBpbiB0b28gbWFueSBs''@;'; + put 'put ''aWJzIiw4MzoiQXR0ZW1wdGluZyB0byBleGVjIGEgc2hhcmVkIGxpYnJhcnkiLDg0OiJJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UiLDg2OiJTdHJlYW1zIHBpcGUgZXJyb3IiLDg3OiJUb28gbWFueSB1c2VycyIsODg6IlNvY2tldCBvcGVyYXRpb24gb24gbm9uLXNvY2tldCIsODk6IkRlc3RpbmF0''@;'; + put 'put ''aW9uIGFkZHJlc3MgcmVxdWlyZWQiLDkwOiJNZXNzYWdlIHRvbyBsb25nIiw5MToiUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0Iiw5MjoiUHJvdG9jb2wgbm90IGF2YWlsYWJsZSIsOTM6IlVua25vd24gcHJvdG9jb2wiLDk0OiJTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkIiw5NToi''@;'; + put 'put ''Tm90IHN1cHBvcnRlZCIsOTY6IlByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkIiw5NzoiQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbCBmYW1pbHkiLDk4OiJBZGRyZXNzIGFscmVhZHkgaW4gdXNlIiw5OToiQWRkcmVzcyBub3QgYXZhaWxhYmxlIiwxMDA6Ik5l''@;'; + put 'put ''dHdvcmsgaW50ZXJmYWNlIGlzIG5vdCBjb25maWd1cmVkIiwxMDE6Ik5ldHdvcmsgaXMgdW5yZWFjaGFibGUiLDEwMjoiQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrIiwxMDM6IkNvbm5lY3Rpb24gYWJvcnRlZCIsMTA0OiJDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIiLDEwNToiTm8gYnVm''@;'; + put 'put ''ZmVyIHNwYWNlIGF2YWlsYWJsZSIsMTA2OiJTb2NrZXQgaXMgYWxyZWFkeSBjb25uZWN0ZWQiLDEwNzoiU29ja2V0IGlzIG5vdCBjb25uZWN0ZWQiLDEwODoiQ2FuJ3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24iLDEwOToiVG9vIG1hbnkgcmVmZXJlbmNlcyIsMTEwOiJDb25uZWN0aW9u''@;'; + put 'put ''IHRpbWVkIG91dCIsMTExOiJDb25uZWN0aW9uIHJlZnVzZWQiLDExMjoiSG9zdCBpcyBkb3duIiwxMTM6Ikhvc3QgaXMgdW5yZWFjaGFibGUiLDExNDoiU29ja2V0IGFscmVhZHkgY29ubmVjdGVkIiwxMTU6IkNvbm5lY3Rpb24gYWxyZWFkeSBpbiBwcm9ncmVzcyIsMTE2OiJTdGFsZSBmaWxl''@;'; + put 'put ''IGhhbmRsZSIsMTIyOiJRdW90YSBleGNlZWRlZCIsMTIzOiJObyBtZWRpdW0gKGluIHRhcGUgZHJpdmUpIiwxMjU6Ik9wZXJhdGlvbiBjYW5jZWxlZCIsMTMwOiJQcmV2aW91cyBvd25lciBkaWVkIiwxMzE6IlN0YXRlIG5vdCByZWNvdmVyYWJsZSJ9LFUwPXtzcGxpdFBhdGg6ZnVuY3Rpb24o''@;'; + put 'put ''cHQpe3JldHVybi9eKFwvP3wpKFtcc1xTXSo/KSgoPzpcLnsxLDJ9fFteXC9dKz98KShcLlteLlwvXSp8KSkoPzpbXC9dKikkLy5leGVjKHB0KS5zbGljZSgxKX0sbm9ybWFsaXplQXJyYXk6ZnVuY3Rpb24ocHQsSXQpe2Zvcih2YXIgUHQ9MCxmZT1wdC5sZW5ndGgtMTtmZT49MDtmZS0tKXt2''@;'; + put 'put ''YXIgcnQ9cHRbZmVdOyIuIj09PXJ0P3B0LnNwbGljZShmZSwxKToiLi4iPT09cnQ/KHB0LnNwbGljZShmZSwxKSxQdCsrKTpQdCYmKHB0LnNwbGljZShmZSwxKSxQdC0tKX1pZihJdClmb3IoO1B0O1B0LS0pcHQudW5zaGlmdCgiLi4iKTtyZXR1cm4gcHR9LG5vcm1hbGl6ZTpmdW5jdGlvbihw''@;'; + put 'put ''dCl7dmFyIEl0PSIvIj09PXB0LmNoYXJBdCgwKSxQdD0iLyI9PT1wdC5zdWJzdHIoLTEpO3JldHVybiEocHQ9VTAubm9ybWFsaXplQXJyYXkocHQuc3BsaXQoIi8iKS5maWx0ZXIoZnVuY3Rpb24oZmUpe3JldHVybiEhZmV9KSwhSXQpLmpvaW4oIi8iKSkmJiFJdCYmKHB0PSIuIikscHQmJlB0''@;'; + put 'put ''JiYocHQrPSIvIiksKEl0PyIvIjoiIikrcHR9LGRpcm5hbWU6ZnVuY3Rpb24ocHQpe3ZhciBJdD1VMC5zcGxpdFBhdGgocHQpLFB0PUl0WzBdLGZlPUl0WzFdO3JldHVybiBQdHx8ZmU/KGZlJiYoZmU9ZmUuc3Vic3RyKDAsZmUubGVuZ3RoLTEpKSxQdCtmZSk6Ii4ifSxiYXNlbmFtZTpmdW5j''@;'; + put 'put ''dGlvbihwdCl7aWYoIi8iPT09cHQpcmV0dXJuIi8iO3ZhciBJdD1wdC5sYXN0SW5kZXhPZigiLyIpO3JldHVybi0xPT09SXQ/cHQ6cHQuc3Vic3RyKEl0KzEpfSxleHRuYW1lOmZ1bmN0aW9uKHB0KXtyZXR1cm4gVTAuc3BsaXRQYXRoKHB0KVszXX0sam9pbjpmdW5jdGlvbigpe3ZhciBwdD1B''@;'; + put 'put ''cnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7cmV0dXJuIFUwLm5vcm1hbGl6ZShwdC5qb2luKCIvIikpfSxqb2luMjpmdW5jdGlvbihwdCxJdCl7cmV0dXJuIFUwLm5vcm1hbGl6ZShwdCsiLyIrSXQpfSxyZXNvbHZlOmZ1bmN0aW9uKCl7Zm9yKHZhciBwdD0iIixJdD0h''@;'; + put 'put ''MSxQdD1hcmd1bWVudHMubGVuZ3RoLTE7UHQ+PS0xJiYhSXQ7UHQtLSl7dmFyIGZlPVB0Pj0wP2FyZ3VtZW50c1tQdF06dm4uY3dkKCk7aWYoInN0cmluZyIhPXR5cGVvZiBmZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudHMgdG8gcGF0aC5yZXNvbHZlIG11c3QgYmUgc3RyaW5ncyIp''@;'; + put 'put ''O2lmKCFmZSlyZXR1cm4iIjtwdD1mZSsiLyIrcHQsSXQ9Ii8iPT09ZmUuY2hhckF0KDApfXJldHVybihJdD8iLyI6IiIpKyhwdD1VMC5ub3JtYWxpemVBcnJheShwdC5zcGxpdCgiLyIpLmZpbHRlcihmdW5jdGlvbihydCl7cmV0dXJuISFydH0pLCFJdCkuam9pbigiLyIpKXx8Ii4ifSxyZWxh''@;'; + put 'put ''dGl2ZTpmdW5jdGlvbihwdCxJdCl7ZnVuY3Rpb24gUHQoam4pe2Zvcih2YXIgXz0wO188am4ubGVuZ3RoJiYiIj09PWpuW19dO18rKyk7Zm9yKHZhciBBbz1qbi5sZW5ndGgtMTtBbz49MCYmIiI9PT1qbltBb107QW8tLSk7cmV0dXJuIF8+QW8/W106am4uc2xpY2UoXyxBby1fKzEpfXB0PVUw''@;'; + put 'put ''LnJlc29sdmUocHQpLnN1YnN0cigxKSxJdD1VMC5yZXNvbHZlKEl0KS5zdWJzdHIoMSk7Zm9yKHZhciBmZT1QdChwdC5zcGxpdCgiLyIpKSxydD1QdChJdC5zcGxpdCgiLyIpKSxhPU1hdGgubWluKGZlLmxlbmd0aCxydC5sZW5ndGgpLEp0PWEsaHI9MDtocjxhO2hyKyspaWYoZmVbaHJdIT09''@;'; + put 'put ''cnRbaHJdKXtKdD1ocjticmVha312YXIgUGk9W107Zm9yKGhyPUp0O2hyPGZlLmxlbmd0aDtocisrKVBpLnB1c2goIi4uIik7cmV0dXJuKFBpPVBpLmNvbmNhdChydC5zbGljZShKdCkpKS5qb2luKCIvIil9fSxPcz17dHR5czpbXSxpbml0OmZ1bmN0aW9uKCl7fSxzaHV0ZG93bjpmdW5jdGlv''@;'; + put 'put ''bigpe30scmVnaXN0ZXI6ZnVuY3Rpb24ocHQsSXQpe09zLnR0eXNbcHRdPXtpbnB1dDpbXSxvdXRwdXQ6W10sb3BzOkl0fSx2bi5yZWdpc3RlckRldmljZShwdCxPcy5zdHJlYW1fb3BzKX0sc3RyZWFtX29wczp7b3BlbjpmdW5jdGlvbihwdCl7dmFyIEl0PU9zLnR0eXNbcHQubm9kZS5yZGV2''@;'; + put 'put ''XTtpZighSXQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PREVWKTtwdC50dHk9SXQscHQuc2Vla2FibGU9ITF9LGNsb3NlOmZ1bmN0aW9uKHB0KXtwdC50dHkub3BzLmZsdXNoKHB0LnR0eSl9LGZsdXNoOmZ1bmN0aW9uKHB0KXtwdC50dHkub3BzLmZsdXNoKHB0LnR0eSl9LHJlYWQ6''@;'; + put 'put ''ZnVuY3Rpb24ocHQsSXQsUHQsZmUscnQpe2lmKCFwdC50dHl8fCFwdC50dHkub3BzLmdldF9jaGFyKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOWElPKTtmb3IodmFyIGE9MCxKdD0wO0p0PGZlO0p0Kyspe3ZhciBocjt0cnl7aHI9cHQudHR5Lm9wcy5nZXRfY2hhcihwdC50dHkpfWNh''@;'; + put 'put ''dGNoKFBpKXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU8pfWlmKHZvaWQgMD09PWhyJiYwPT09YSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQUdBSU4pO2lmKG51bGw9PWhyKWJyZWFrO2ErKyxJdFtQdCtKdF09aHJ9cmV0dXJuIGEmJihwdC5ub2RlLnRpbWVzdGFtcD1EYXRl''@;'; + put 'put ''Lm5vdygpKSxhfSx3cml0ZTpmdW5jdGlvbihwdCxJdCxQdCxmZSxydCl7aWYoIXB0LnR0eXx8IXB0LnR0eS5vcHMucHV0X2NoYXIpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5YSU8pO2Zvcih2YXIgYT0wO2E8ZmU7YSsrKXRyeXtwdC50dHkub3BzLnB1dF9jaGFyKHB0LnR0eSxJdFtQ''@;'; + put 'put ''dCthXSl9Y2F0Y2goSnQpe3Rocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTyl9cmV0dXJuIGZlJiYocHQubm9kZS50aW1lc3RhbXA9RGF0ZS5ub3coKSksYX19LGRlZmF1bHRfdHR5X29wczp7Z2V0X2NoYXI6ZnVuY3Rpb24ocHQpe2lmKCFwdC5pbnB1dC5sZW5ndGgpe3ZhciBJdD1udWxs''@;'; + put 'put ''O2lmKE4pe3ZhciBmZT1uZXcgQnVmZmVyKDI1NikscnQ9MCxhPSJ3aW4zMiIhPXByb2Nlc3MucGxhdGZvcm0sSnQ9cHJvY2Vzcy5zdGRpbi5mZDtpZihhKXt2YXIgaHI9ITE7dHJ5e0p0PW1sLm9wZW5TeW5jKCIvZGV2L3N0ZGluIiwiciIpLGhyPSEwfWNhdGNoKFBpKXt9fXRyeXtydD1tbC5y''@;'; + put 'put ''ZWFkU3luYyhKdCxmZSwwLDI1NixudWxsKX1jYXRjaChQaSl7aWYoLTE9PVBpLnRvU3RyaW5nKCkuaW5kZXhPZigiRU9GIikpdGhyb3cgUGk7cnQ9MH1ociYmbWwuY2xvc2VTeW5jKEp0KSxJdD1ydD4wP2ZlLnNsaWNlKDAscnQpLnRvU3RyaW5nKCJ1dGYtOCIpOm51bGx9ZWxzZSJ1bmRlZmlu''@;'; + put 'put ''ZWQiIT10eXBlb2Ygd2luZG93JiYiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93LnByb21wdD9udWxsIT09KEl0PXdpbmRvdy5wcm9tcHQoIklucHV0OiAiKSkmJihJdCs9IlxuIik6ImZ1bmN0aW9uIj09dHlwZW9mIHJlYWRsaW5lJiZudWxsIT09KEl0PXJlYWRsaW5lKCkpJiYoSXQrPSJcbiIp''@;'; + put 'put ''O2lmKCFJdClyZXR1cm4gbnVsbDtwdC5pbnB1dD1zbyhJdCwhMCl9cmV0dXJuIHB0LmlucHV0LnNoaWZ0KCl9LHB1dF9jaGFyOmZ1bmN0aW9uKHB0LEl0KXtudWxsPT09SXR8fDEwPT09SXQ/KFoucHJpbnQoQ2UocHQub3V0cHV0LDApKSxwdC5vdXRwdXQ9W10pOjAhPUl0JiZwdC5vdXRwdXQu''@;'; + put 'put ''cHVzaChJdCl9LGZsdXNoOmZ1bmN0aW9uKHB0KXtwdC5vdXRwdXQmJnB0Lm91dHB1dC5sZW5ndGg+MCYmKFoucHJpbnQoQ2UocHQub3V0cHV0LDApKSxwdC5vdXRwdXQ9W10pfX0sZGVmYXVsdF90dHkxX29wczp7cHV0X2NoYXI6ZnVuY3Rpb24ocHQsSXQpe251bGw9PT1JdHx8MTA9PT1JdD8o''@;'; + put 'put ''Wi5wcmludEVycihDZShwdC5vdXRwdXQsMCkpLHB0Lm91dHB1dD1bXSk6MCE9SXQmJnB0Lm91dHB1dC5wdXNoKEl0KX0sZmx1c2g6ZnVuY3Rpb24ocHQpe3B0Lm91dHB1dCYmcHQub3V0cHV0Lmxlbmd0aD4wJiYoWi5wcmludEVycihDZShwdC5vdXRwdXQsMCkpLHB0Lm91dHB1dD1bXSl9fX0s''@;'; + put 'put ''WDA9e29wc190YWJsZTpudWxsLG1vdW50OmZ1bmN0aW9uKHB0KXtyZXR1cm4gWDAuY3JlYXRlTm9kZShudWxsLCIvIiwxNjg5NSwwKX0sY3JlYXRlTm9kZTpmdW5jdGlvbihwdCxJdCxQdCxmZSl7aWYodm4uaXNCbGtkZXYoUHQpfHx2bi5pc0ZJRk8oUHQpKXRocm93IG5ldyB2bi5FcnJub0Vy''@;'; + put 'put ''cm9yKHZpLkVQRVJNKTtYMC5vcHNfdGFibGV8fChYMC5vcHNfdGFibGU9e2Rpcjp7bm9kZTp7Z2V0YXR0cjpYMC5ub2RlX29wcy5nZXRhdHRyLHNldGF0dHI6WDAubm9kZV9vcHMuc2V0YXR0cixsb29rdXA6WDAubm9kZV9vcHMubG9va3VwLG1rbm9kOlgwLm5vZGVfb3BzLm1rbm9kLHJlbmFt''@;'; + put 'put ''ZTpYMC5ub2RlX29wcy5yZW5hbWUsdW5saW5rOlgwLm5vZGVfb3BzLnVubGluayxybWRpcjpYMC5ub2RlX29wcy5ybWRpcixyZWFkZGlyOlgwLm5vZGVfb3BzLnJlYWRkaXIsc3ltbGluazpYMC5ub2RlX29wcy5zeW1saW5rfSxzdHJlYW06e2xsc2VlazpYMC5zdHJlYW1fb3BzLmxsc2Vla319''@;'; + put 'put ''LGZpbGU6e25vZGU6e2dldGF0dHI6WDAubm9kZV9vcHMuZ2V0YXR0cixzZXRhdHRyOlgwLm5vZGVfb3BzLnNldGF0dHJ9LHN0cmVhbTp7bGxzZWVrOlgwLnN0cmVhbV9vcHMubGxzZWVrLHJlYWQ6WDAuc3RyZWFtX29wcy5yZWFkLHdyaXRlOlgwLnN0cmVhbV9vcHMud3JpdGUsYWxsb2NhdGU6''@;'; + put 'put ''WDAuc3RyZWFtX29wcy5hbGxvY2F0ZSxtbWFwOlgwLnN0cmVhbV9vcHMubW1hcCxtc3luYzpYMC5zdHJlYW1fb3BzLm1zeW5jfX0sbGluazp7bm9kZTp7Z2V0YXR0cjpYMC5ub2RlX29wcy5nZXRhdHRyLHNldGF0dHI6WDAubm9kZV9vcHMuc2V0YXR0cixyZWFkbGluazpYMC5ub2RlX29wcy5y''@;'; + put 'put ''ZWFkbGlua30sc3RyZWFtOnt9fSxjaHJkZXY6e25vZGU6e2dldGF0dHI6WDAubm9kZV9vcHMuZ2V0YXR0cixzZXRhdHRyOlgwLm5vZGVfb3BzLnNldGF0dHJ9LHN0cmVhbTp2bi5jaHJkZXZfc3RyZWFtX29wc319KTt2YXIgcnQ9dm4uY3JlYXRlTm9kZShwdCxJdCxQdCxmZSk7cmV0dXJuIHZu''@;'; + put 'put ''LmlzRGlyKHJ0Lm1vZGUpPyhydC5ub2RlX29wcz1YMC5vcHNfdGFibGUuZGlyLm5vZGUscnQuc3RyZWFtX29wcz1YMC5vcHNfdGFibGUuZGlyLnN0cmVhbSxydC5jb250ZW50cz17fSk6dm4uaXNGaWxlKHJ0Lm1vZGUpPyhydC5ub2RlX29wcz1YMC5vcHNfdGFibGUuZmlsZS5ub2RlLHJ0LnN0''@;'; + put 'put ''cmVhbV9vcHM9WDAub3BzX3RhYmxlLmZpbGUuc3RyZWFtLHJ0LnVzZWRCeXRlcz0wLHJ0LmNvbnRlbnRzPW51bGwpOnZuLmlzTGluayhydC5tb2RlKT8ocnQubm9kZV9vcHM9WDAub3BzX3RhYmxlLmxpbmsubm9kZSxydC5zdHJlYW1fb3BzPVgwLm9wc190YWJsZS5saW5rLnN0cmVhbSk6dm4u''@;'; + put 'put ''aXNDaHJkZXYocnQubW9kZSkmJihydC5ub2RlX29wcz1YMC5vcHNfdGFibGUuY2hyZGV2Lm5vZGUscnQuc3RyZWFtX29wcz1YMC5vcHNfdGFibGUuY2hyZGV2LnN0cmVhbSkscnQudGltZXN0YW1wPURhdGUubm93KCkscHQmJihwdC5jb250ZW50c1tJdF09cnQpLHJ0fSxnZXRGaWxlRGF0YUFz''@;'; + put 'put ''UmVndWxhckFycmF5OmZ1bmN0aW9uKHB0KXtpZihwdC5jb250ZW50cyYmcHQuY29udGVudHMuc3ViYXJyYXkpe2Zvcih2YXIgSXQ9W10sUHQ9MDtQdDxwdC51c2VkQnl0ZXM7KytQdClJdC5wdXNoKHB0LmNvbnRlbnRzW1B0XSk7cmV0dXJuIEl0fXJldHVybiBwdC5jb250ZW50c30sZ2V0Rmls''@;'; + put 'put ''ZURhdGFBc1R5cGVkQXJyYXk6ZnVuY3Rpb24ocHQpe3JldHVybiBwdC5jb250ZW50cz9wdC5jb250ZW50cy5zdWJhcnJheT9wdC5jb250ZW50cy5zdWJhcnJheSgwLHB0LnVzZWRCeXRlcyk6bmV3IFVpbnQ4QXJyYXkocHQuY29udGVudHMpOm5ldyBVaW50OEFycmF5fSxleHBhbmRGaWxlU3Rv''@;'; + put 'put ''cmFnZTpmdW5jdGlvbihwdCxJdCl7aWYocHQuY29udGVudHMmJnB0LmNvbnRlbnRzLnN1YmFycmF5JiZJdD5wdC5jb250ZW50cy5sZW5ndGgmJihwdC5jb250ZW50cz1YMC5nZXRGaWxlRGF0YUFzUmVndWxhckFycmF5KHB0KSxwdC51c2VkQnl0ZXM9cHQuY29udGVudHMubGVuZ3RoKSwhcHQu''@;'; + put 'put ''Y29udGVudHN8fHB0LmNvbnRlbnRzLnN1YmFycmF5KXt2YXIgUHQ9cHQuY29udGVudHM/cHQuY29udGVudHMubGVuZ3RoOjA7aWYoUHQ+PUl0KXJldHVybjtJdD1NYXRoLm1heChJdCxQdCooUHQ8MTA0ODU3Nj8yOjEuMTI1KXwwKSwwIT1QdCYmKEl0PU1hdGgubWF4KEl0LDI1NikpO3ZhciBy''@;'; + put 'put ''dD1wdC5jb250ZW50cztyZXR1cm4gcHQuY29udGVudHM9bmV3IFVpbnQ4QXJyYXkoSXQpLHZvaWQocHQudXNlZEJ5dGVzPjAmJnB0LmNvbnRlbnRzLnNldChydC5zdWJhcnJheSgwLHB0LnVzZWRCeXRlcyksMCkpfWZvcighcHQuY29udGVudHMmJkl0PjAmJihwdC5jb250ZW50cz1bXSk7cHQu''@;'; + put 'put ''Y29udGVudHMubGVuZ3RoPEl0OylwdC5jb250ZW50cy5wdXNoKDApfSxyZXNpemVGaWxlU3RvcmFnZTpmdW5jdGlvbihwdCxJdCl7aWYocHQudXNlZEJ5dGVzIT1JdCl7aWYoMD09SXQpcmV0dXJuIHB0LmNvbnRlbnRzPW51bGwsdm9pZChwdC51c2VkQnl0ZXM9MCk7aWYoIXB0LmNvbnRlbnRz''@;'; + put 'put ''fHxwdC5jb250ZW50cy5zdWJhcnJheSl7dmFyIFB0PXB0LmNvbnRlbnRzO3JldHVybiBwdC5jb250ZW50cz1uZXcgVWludDhBcnJheShuZXcgQXJyYXlCdWZmZXIoSXQpKSxQdCYmcHQuY29udGVudHMuc2V0KFB0LnN1YmFycmF5KDAsTWF0aC5taW4oSXQscHQudXNlZEJ5dGVzKSkpLHZvaWQo''@;'; + put 'put ''cHQudXNlZEJ5dGVzPUl0KX1pZihwdC5jb250ZW50c3x8KHB0LmNvbnRlbnRzPVtdKSxwdC5jb250ZW50cy5sZW5ndGg+SXQpcHQuY29udGVudHMubGVuZ3RoPUl0O2Vsc2UgZm9yKDtwdC5jb250ZW50cy5sZW5ndGg8SXQ7KXB0LmNvbnRlbnRzLnB1c2goMCk7cHQudXNlZEJ5dGVzPUl0fX0s''@;'; + put 'put ''bm9kZV9vcHM6e2dldGF0dHI6ZnVuY3Rpb24ocHQpe3ZhciBJdD17fTtyZXR1cm4gSXQuZGV2PXZuLmlzQ2hyZGV2KHB0Lm1vZGUpP3B0LmlkOjEsSXQuaW5vPXB0LmlkLEl0Lm1vZGU9cHQubW9kZSxJdC5ubGluaz0xLEl0LnVpZD0wLEl0LmdpZD0wLEl0LnJkZXY9cHQucmRldixJdC5zaXpl''@;'; + put 'put ''PXZuLmlzRGlyKHB0Lm1vZGUpPzQwOTY6dm4uaXNGaWxlKHB0Lm1vZGUpP3B0LnVzZWRCeXRlczp2bi5pc0xpbmsocHQubW9kZSk/cHQubGluay5sZW5ndGg6MCxJdC5hdGltZT1uZXcgRGF0ZShwdC50aW1lc3RhbXApLEl0Lm10aW1lPW5ldyBEYXRlKHB0LnRpbWVzdGFtcCksSXQuY3RpbWU9''@;'; + put 'put ''bmV3IERhdGUocHQudGltZXN0YW1wKSxJdC5ibGtzaXplPTQwOTYsSXQuYmxvY2tzPU1hdGguY2VpbChJdC5zaXplL0l0LmJsa3NpemUpLEl0fSxzZXRhdHRyOmZ1bmN0aW9uKHB0LEl0KXt2b2lkIDAhPT1JdC5tb2RlJiYocHQubW9kZT1JdC5tb2RlKSx2b2lkIDAhPT1JdC50aW1lc3RhbXAm''@;'; + put 'put ''JihwdC50aW1lc3RhbXA9SXQudGltZXN0YW1wKSx2b2lkIDAhPT1JdC5zaXplJiZYMC5yZXNpemVGaWxlU3RvcmFnZShwdCxJdC5zaXplKX0sbG9va3VwOmZ1bmN0aW9uKHB0LEl0KXt0aHJvdyB2bi5nZW5lcmljRXJyb3JzW3ZpLkVOT0VOVF19LG1rbm9kOmZ1bmN0aW9uKHB0LEl0LFB0LGZl''@;'; + put 'put ''KXtyZXR1cm4gWDAuY3JlYXRlTm9kZShwdCxJdCxQdCxmZSl9LHJlbmFtZTpmdW5jdGlvbihwdCxJdCxQdCl7aWYodm4uaXNEaXIocHQubW9kZSkpe3ZhciBmZTt0cnl7ZmU9dm4ubG9va3VwTm9kZShJdCxQdCl9Y2F0Y2goYSl7fWlmKGZlKWZvcih2YXIgcnQgaW4gZmUuY29udGVudHMpdGhy''@;'; + put 'put ''b3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PVEVNUFRZKX1kZWxldGUgcHQucGFyZW50LmNvbnRlbnRzW3B0Lm5hbWVdLHB0Lm5hbWU9UHQsSXQuY29udGVudHNbUHRdPXB0LHB0LnBhcmVudD1JdH0sdW5saW5rOmZ1bmN0aW9uKHB0LEl0KXtkZWxldGUgcHQuY29udGVudHNbSXRdfSxybWRp''@;'; + put 'put ''cjpmdW5jdGlvbihwdCxJdCl7dmFyIFB0PXZuLmxvb2t1cE5vZGUocHQsSXQpO2Zvcih2YXIgZmUgaW4gUHQuY29udGVudHMpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PVEVNUFRZKTtkZWxldGUgcHQuY29udGVudHNbSXRdfSxyZWFkZGlyOmZ1bmN0aW9uKHB0KXt2YXIgSXQ9WyIu''@;'; + put 'put ''IiwiLi4iXTtmb3IodmFyIFB0IGluIHB0LmNvbnRlbnRzKSFwdC5jb250ZW50cy5oYXNPd25Qcm9wZXJ0eShQdCl8fEl0LnB1c2goUHQpO3JldHVybiBJdH0sc3ltbGluazpmdW5jdGlvbihwdCxJdCxQdCl7dmFyIGZlPVgwLmNyZWF0ZU5vZGUocHQsSXQsNDE0NzEsMCk7cmV0dXJuIGZlLmxp''@;'; + put 'put ''bms9UHQsZmV9LHJlYWRsaW5rOmZ1bmN0aW9uKHB0KXtpZighdm4uaXNMaW5rKHB0Lm1vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7cmV0dXJuIHB0Lmxpbmt9fSxzdHJlYW1fb3BzOntyZWFkOmZ1bmN0aW9uKHB0LEl0LFB0LGZlLHJ0KXt2YXIgYT1wdC5ub2RlLmNv''@;'; + put 'put ''bnRlbnRzO2lmKHJ0Pj1wdC5ub2RlLnVzZWRCeXRlcylyZXR1cm4gMDt2YXIgSnQ9TWF0aC5taW4ocHQubm9kZS51c2VkQnl0ZXMtcnQsZmUpO2lmKE8oSnQ+PTApLEp0PjgmJmEuc3ViYXJyYXkpSXQuc2V0KGEuc3ViYXJyYXkocnQscnQrSnQpLFB0KTtlbHNlIGZvcih2YXIgaHI9MDtocjxK''@;'; + put 'put ''dDtocisrKUl0W1B0K2hyXT1hW3J0K2hyXTtyZXR1cm4gSnR9LHdyaXRlOmZ1bmN0aW9uKHB0LEl0LFB0LGZlLHJ0LGEpe2lmKCFmZSlyZXR1cm4gMDt2YXIgSnQ9cHQubm9kZTtpZihKdC50aW1lc3RhbXA9RGF0ZS5ub3coKSxJdC5zdWJhcnJheSYmKCFKdC5jb250ZW50c3x8SnQuY29udGVu''@;'; + put 'put ''dHMuc3ViYXJyYXkpKXtpZihhKXJldHVybiBKdC5jb250ZW50cz1JdC5zdWJhcnJheShQdCxQdCtmZSksSnQudXNlZEJ5dGVzPWZlLGZlO2lmKDA9PT1KdC51c2VkQnl0ZXMmJjA9PT1ydClyZXR1cm4gSnQuY29udGVudHM9bmV3IFVpbnQ4QXJyYXkoSXQuc3ViYXJyYXkoUHQsUHQrZmUpKSxK''@;'; + put 'put ''dC51c2VkQnl0ZXM9ZmUsZmU7aWYocnQrZmU8PUp0LnVzZWRCeXRlcylyZXR1cm4gSnQuY29udGVudHMuc2V0KEl0LnN1YmFycmF5KFB0LFB0K2ZlKSxydCksZmV9aWYoWDAuZXhwYW5kRmlsZVN0b3JhZ2UoSnQscnQrZmUpLEp0LmNvbnRlbnRzLnN1YmFycmF5JiZJdC5zdWJhcnJheSlKdC5j''@;'; + put 'put ''b250ZW50cy5zZXQoSXQuc3ViYXJyYXkoUHQsUHQrZmUpLHJ0KTtlbHNlIGZvcih2YXIgaHI9MDtocjxmZTtocisrKUp0LmNvbnRlbnRzW3J0K2hyXT1JdFtQdCtocl07cmV0dXJuIEp0LnVzZWRCeXRlcz1NYXRoLm1heChKdC51c2VkQnl0ZXMscnQrZmUpLGZlfSxsbHNlZWs6ZnVuY3Rpb24o''@;'; + put 'put ''cHQsSXQsUHQpe3ZhciBmZT1JdDtpZigxPT09UHQ/ZmUrPXB0LnBvc2l0aW9uOjI9PT1QdCYmdm4uaXNGaWxlKHB0Lm5vZGUubW9kZSkmJihmZSs9cHQubm9kZS51c2VkQnl0ZXMpLGZlPDApdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTtyZXR1cm4gZmV9LGFsbG9jYXRlOmZ1''@;'; + put 'put ''bmN0aW9uKHB0LEl0LFB0KXtYMC5leHBhbmRGaWxlU3RvcmFnZShwdC5ub2RlLEl0K1B0KSxwdC5ub2RlLnVzZWRCeXRlcz1NYXRoLm1heChwdC5ub2RlLnVzZWRCeXRlcyxJdCtQdCl9LG1tYXA6ZnVuY3Rpb24ocHQsSXQsUHQsZmUscnQsYSxKdCl7aWYoIXZuLmlzRmlsZShwdC5ub2RlLm1v''@;'; + put 'put ''ZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT0RFVik7dmFyIGhyLFBpLGpuPXB0Lm5vZGUuY29udGVudHM7aWYoMiZKdHx8am4uYnVmZmVyIT09SXQmJmpuLmJ1ZmZlciE9PUl0LmJ1ZmZlcil7aWYoKHJ0PjB8fHJ0K2ZlPHB0Lm5vZGUudXNlZEJ5dGVzKSYmKGpuPWpuLnN1YmFy''@;'; + put 'put ''cmF5P2puLnN1YmFycmF5KHJ0LHJ0K2ZlKTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChqbixydCxydCtmZSkpLFBpPSEwLCEoaHI9enAoZmUpKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9NRU0pO0l0LnNldChqbixocil9ZWxzZSBQaT0hMSxocj1qbi5ieXRlT2Zmc2V0O3Jl''@;'; + put 'put ''dHVybntwdHI6aHIsYWxsb2NhdGVkOlBpfX0sbXN5bmM6ZnVuY3Rpb24ocHQsSXQsUHQsZmUscnQpe2lmKCF2bi5pc0ZpbGUocHQubm9kZS5tb2RlKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9ERVYpO3JldHVybiAyJnJ0fHxYMC5zdHJlYW1fb3BzLndyaXRlKHB0LEl0LDAsZmUs''@;'; + put 'put ''UHQsITEpLDB9fX0sdWE9e2Riczp7fSxpbmRleGVkREI6ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGluZGV4ZWREQilyZXR1cm4gaW5kZXhlZERCO3ZhciBwdD1udWxsO3JldHVybiJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYocHQ9d2luZG93LmluZGV4ZWREQnx8d2luZG93''@;'; + put 'put ''Lm1vekluZGV4ZWREQnx8d2luZG93LndlYmtpdEluZGV4ZWREQnx8d2luZG93Lm1zSW5kZXhlZERCKSxPKHB0LCJJREJGUyB1c2VkLCBidXQgaW5kZXhlZERCIG5vdCBzdXBwb3J0ZWQiKSxwdH0sREJfVkVSU0lPTjoyMSxEQl9TVE9SRV9OQU1FOiJGSUxFX0RBVEEiLG1vdW50OmZ1bmN0aW9u''@;'; + put 'put ''KHB0KXtyZXR1cm4gWDAubW91bnQuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxzeW5jZnM6ZnVuY3Rpb24ocHQsSXQsUHQpe3VhLmdldExvY2FsU2V0KHB0LGZ1bmN0aW9uKGZlLHJ0KXtpZihmZSlyZXR1cm4gUHQoZmUpO3VhLmdldFJlbW90ZVNldChwdCxmdW5jdGlvbihhLEp0KXtpZihhKXJl''@;'; + put 'put ''dHVybiBQdChhKTt1YS5yZWNvbmNpbGUoSXQ/SnQ6cnQsSXQ/cnQ6SnQsUHQpfSl9KX0sZ2V0REI6ZnVuY3Rpb24ocHQsSXQpe3ZhciBmZSxQdD11YS5kYnNbcHRdO2lmKFB0KXJldHVybiBJdChudWxsLFB0KTt0cnl7ZmU9dWEuaW5kZXhlZERCKCkub3BlbihwdCx1YS5EQl9WRVJTSU9OKX1j''@;'; + put 'put ''YXRjaChydCl7cmV0dXJuIEl0KHJ0KX1pZighZmUpcmV0dXJuIEl0KCJVbmFibGUgdG8gY29ubmVjdCB0byBJbmRleGVkREIiKTtmZS5vbnVwZ3JhZGVuZWVkZWQ9ZnVuY3Rpb24ocnQpe3ZhciBocixhPXJ0LnRhcmdldC5yZXN1bHQsSnQ9cnQudGFyZ2V0LnRyYW5zYWN0aW9uOyhocj1hLm9i''@;'; + put 'put ''amVjdFN0b3JlTmFtZXMuY29udGFpbnModWEuREJfU1RPUkVfTkFNRSk/SnQub2JqZWN0U3RvcmUodWEuREJfU1RPUkVfTkFNRSk6YS5jcmVhdGVPYmplY3RTdG9yZSh1YS5EQl9TVE9SRV9OQU1FKSkuaW5kZXhOYW1lcy5jb250YWlucygidGltZXN0YW1wIil8fGhyLmNyZWF0ZUluZGV4KCJ0''@;'; + put 'put ''aW1lc3RhbXAiLCJ0aW1lc3RhbXAiLHt1bmlxdWU6ITF9KX0sZmUub25zdWNjZXNzPWZ1bmN0aW9uKCl7dWEuZGJzW3B0XT1QdD1mZS5yZXN1bHQsSXQobnVsbCxQdCl9LGZlLm9uZXJyb3I9ZnVuY3Rpb24ocnQpe0l0KHRoaXMuZXJyb3IpLHJ0LnByZXZlbnREZWZhdWx0KCl9fSxnZXRMb2Nh''@;'; + put 'put ''bFNldDpmdW5jdGlvbihwdCxJdCl7dmFyIFB0PXt9O2Z1bmN0aW9uIGZlKFBpKXtyZXR1cm4iLiIhPT1QaSYmIi4uIiE9PVBpfWZ1bmN0aW9uIHJ0KFBpKXtyZXR1cm4gZnVuY3Rpb24oam4pe3JldHVybiBVMC5qb2luMihQaSxqbil9fWZvcih2YXIgYT12bi5yZWFkZGlyKHB0Lm1vdW50cG9p''@;'; + put 'put ''bnQpLmZpbHRlcihmZSkubWFwKHJ0KHB0Lm1vdW50cG9pbnQpKTthLmxlbmd0aDspe3ZhciBocixKdD1hLnBvcCgpO3RyeXtocj12bi5zdGF0KEp0KX1jYXRjaChQaSl7cmV0dXJuIEl0KFBpKX12bi5pc0Rpcihoci5tb2RlKSYmYS5wdXNoLmFwcGx5KGEsdm4ucmVhZGRpcihKdCkuZmlsdGVy''@;'; + put 'put ''KGZlKS5tYXAocnQoSnQpKSksUHRbSnRdPXt0aW1lc3RhbXA6aHIubXRpbWV9fXJldHVybiBJdChudWxsLHt0eXBlOiJsb2NhbCIsZW50cmllczpQdH0pfSxnZXRSZW1vdGVTZXQ6ZnVuY3Rpb24ocHQsSXQpe3ZhciBQdD17fTt1YS5nZXREQihwdC5tb3VudHBvaW50LGZ1bmN0aW9uKGZlLHJ0''@;'; + put 'put ''KXtpZihmZSlyZXR1cm4gSXQoZmUpO3RyeXt2YXIgYT1ydC50cmFuc2FjdGlvbihbdWEuREJfU1RPUkVfTkFNRV0sInJlYWRvbmx5Iik7YS5vbmVycm9yPWZ1bmN0aW9uKFBpKXtJdCh0aGlzLmVycm9yKSxQaS5wcmV2ZW50RGVmYXVsdCgpfSxhLm9iamVjdFN0b3JlKHVhLkRCX1NUT1JFX05B''@;'; + put 'put ''TUUpLmluZGV4KCJ0aW1lc3RhbXAiKS5vcGVuS2V5Q3Vyc29yKCkub25zdWNjZXNzPWZ1bmN0aW9uKFBpKXt2YXIgam49UGkudGFyZ2V0LnJlc3VsdDtpZigham4pcmV0dXJuIEl0KG51bGwse3R5cGU6InJlbW90ZSIsZGI6cnQsZW50cmllczpQdH0pO1B0W2puLnByaW1hcnlLZXldPXt0aW1l''@;'; + put 'put ''c3RhbXA6am4ua2V5fSxqbi5jb250aW51ZSgpfX1jYXRjaChQaSl7cmV0dXJuIEl0KFBpKX19KX0sbG9hZExvY2FsRW50cnk6ZnVuY3Rpb24ocHQsSXQpe3ZhciBQdCxmZTt0cnl7ZmU9dm4ubG9va3VwUGF0aChwdCkubm9kZSxQdD12bi5zdGF0KHB0KX1jYXRjaChhKXtyZXR1cm4gSXQoYSl9''@;'; + put 'put ''cmV0dXJuIHZuLmlzRGlyKFB0Lm1vZGUpP0l0KG51bGwse3RpbWVzdGFtcDpQdC5tdGltZSxtb2RlOlB0Lm1vZGV9KTp2bi5pc0ZpbGUoUHQubW9kZSk/KGZlLmNvbnRlbnRzPVgwLmdldEZpbGVEYXRhQXNUeXBlZEFycmF5KGZlKSxJdChudWxsLHt0aW1lc3RhbXA6UHQubXRpbWUsbW9kZTpQ''@;'; + put 'put ''dC5tb2RlLGNvbnRlbnRzOmZlLmNvbnRlbnRzfSkpOkl0KG5ldyBFcnJvcigibm9kZSB0eXBlIG5vdCBzdXBwb3J0ZWQiKSl9LHN0b3JlTG9jYWxFbnRyeTpmdW5jdGlvbihwdCxJdCxQdCl7dHJ5e2lmKHZuLmlzRGlyKEl0Lm1vZGUpKXZuLm1rZGlyKHB0LEl0Lm1vZGUpO2Vsc2V7aWYoIXZu''@;'; + put 'put ''LmlzRmlsZShJdC5tb2RlKSlyZXR1cm4gUHQobmV3IEVycm9yKCJub2RlIHR5cGUgbm90IHN1cHBvcnRlZCIpKTt2bi53cml0ZUZpbGUocHQsSXQuY29udGVudHMse2Nhbk93bjohMH0pfXZuLmNobW9kKHB0LEl0Lm1vZGUpLHZuLnV0aW1lKHB0LEl0LnRpbWVzdGFtcCxJdC50aW1lc3RhbXAp''@;'; + put 'put ''fWNhdGNoKGZlKXtyZXR1cm4gUHQoZmUpfVB0KG51bGwpfSxyZW1vdmVMb2NhbEVudHJ5OmZ1bmN0aW9uKHB0LEl0KXt0cnl7dm4ubG9va3VwUGF0aChwdCk7dmFyIGZlPXZuLnN0YXQocHQpO3ZuLmlzRGlyKGZlLm1vZGUpP3ZuLnJtZGlyKHB0KTp2bi5pc0ZpbGUoZmUubW9kZSkmJnZuLnVu''@;'; + put 'put ''bGluayhwdCl9Y2F0Y2gocnQpe3JldHVybiBJdChydCl9SXQobnVsbCl9LGxvYWRSZW1vdGVFbnRyeTpmdW5jdGlvbihwdCxJdCxQdCl7dmFyIGZlPXB0LmdldChJdCk7ZmUub25zdWNjZXNzPWZ1bmN0aW9uKHJ0KXtQdChudWxsLHJ0LnRhcmdldC5yZXN1bHQpfSxmZS5vbmVycm9yPWZ1bmN0''@;'; + put 'put ''aW9uKHJ0KXtQdCh0aGlzLmVycm9yKSxydC5wcmV2ZW50RGVmYXVsdCgpfX0sc3RvcmVSZW1vdGVFbnRyeTpmdW5jdGlvbihwdCxJdCxQdCxmZSl7dmFyIHJ0PXB0LnB1dChQdCxJdCk7cnQub25zdWNjZXNzPWZ1bmN0aW9uKCl7ZmUobnVsbCl9LHJ0Lm9uZXJyb3I9ZnVuY3Rpb24oYSl7ZmUo''@;'; + put 'put ''dGhpcy5lcnJvciksYS5wcmV2ZW50RGVmYXVsdCgpfX0scmVtb3ZlUmVtb3RlRW50cnk6ZnVuY3Rpb24ocHQsSXQsUHQpe3ZhciBmZT1wdC5kZWxldGUoSXQpO2ZlLm9uc3VjY2Vzcz1mdW5jdGlvbigpe1B0KG51bGwpfSxmZS5vbmVycm9yPWZ1bmN0aW9uKHJ0KXtQdCh0aGlzLmVycm9yKSxy''@;'; + put 'put ''dC5wcmV2ZW50RGVmYXVsdCgpfX0scmVjb25jaWxlOmZ1bmN0aW9uKHB0LEl0LFB0KXt2YXIgZmU9MCxydD1bXTtPYmplY3Qua2V5cyhwdC5lbnRyaWVzKS5mb3JFYWNoKGZ1bmN0aW9uKEFvKXt2YXIgJG89SXQuZW50cmllc1tBb107KCEkb3x8cHQuZW50cmllc1tBb10udGltZXN0YW1wPiRv''@;'; + put 'put ''LnRpbWVzdGFtcCkmJihydC5wdXNoKEFvKSxmZSsrKX0pO3ZhciBhPVtdO2lmKE9iamVjdC5rZXlzKEl0LmVudHJpZXMpLmZvckVhY2goZnVuY3Rpb24oQW8pe3B0LmVudHJpZXNbQW9dfHwoYS5wdXNoKEFvKSxmZSsrKX0pLCFmZSlyZXR1cm4gUHQobnVsbCk7dmFyIEp0PTAsUGk9KCJyZW1v''@;'; + put 'put ''dGUiPT09cHQudHlwZT9wdC5kYjpJdC5kYikudHJhbnNhY3Rpb24oW3VhLkRCX1NUT1JFX05BTUVdLCJyZWFkd3JpdGUiKSxqbj1QaS5vYmplY3RTdG9yZSh1YS5EQl9TVE9SRV9OQU1FKTtmdW5jdGlvbiBfKEFvKXtyZXR1cm4gQW8/Xy5lcnJvcmVkP3ZvaWQgMDooXy5lcnJvcmVkPSEwLFB0''@;'; + put 'put ''KEFvKSk6KytKdD49ZmU/UHQobnVsbCk6dm9pZCAwfVBpLm9uZXJyb3I9ZnVuY3Rpb24oQW8pe18odGhpcy5lcnJvciksQW8ucHJldmVudERlZmF1bHQoKX0scnQuc29ydCgpLmZvckVhY2goZnVuY3Rpb24oQW8peyJsb2NhbCI9PT1JdC50eXBlP3VhLmxvYWRSZW1vdGVFbnRyeShqbixBbyxm''@;'; + put 'put ''dW5jdGlvbihTaSwkbyl7aWYoU2kpcmV0dXJuIF8oU2kpO3VhLnN0b3JlTG9jYWxFbnRyeShBbywkbyxfKX0pOnVhLmxvYWRMb2NhbEVudHJ5KEFvLGZ1bmN0aW9uKFNpLCRvKXtpZihTaSlyZXR1cm4gXyhTaSk7dWEuc3RvcmVSZW1vdGVFbnRyeShqbixBbywkbyxfKX0pfSksYS5zb3J0KCku''@;'; + put 'put ''cmV2ZXJzZSgpLmZvckVhY2goZnVuY3Rpb24oQW8peyJsb2NhbCI9PT1JdC50eXBlP3VhLnJlbW92ZUxvY2FsRW50cnkoQW8sXyk6dWEucmVtb3ZlUmVtb3RlRW50cnkoam4sQW8sXyl9KX19LGowPXtpc1dpbmRvd3M6ITEsc3RhdGljSW5pdDpmdW5jdGlvbigpe2owLmlzV2luZG93cz0hIXBy''@;'; + put 'put ''b2Nlc3MucGxhdGZvcm0ubWF0Y2goL153aW4vKTt2YXIgcHQ9cHJvY2Vzcy5iaW5kaW5nKCJjb25zdGFudHMiKTtwdC5mcyYmKHB0PXB0LmZzKSxqMC5mbGFnc0Zvck5vZGVNYXA9ezEwMjQ6cHQuT19BUFBFTkQsNjQ6cHQuT19DUkVBVCwxMjg6cHQuT19FWENMLDA6cHQuT19SRE9OTFksMjpw''@;'; + put 'put ''dC5PX1JEV1IsNDA5NjpwdC5PX1NZTkMsNTEyOnB0Lk9fVFJVTkMsMTpwdC5PX1dST05MWX19LGJ1ZmZlckZyb206ZnVuY3Rpb24ocHQpe3JldHVybiBCdWZmZXIuYWxsb2M/QnVmZmVyLmZyb20ocHQpOm5ldyBCdWZmZXIocHQpfSxtb3VudDpmdW5jdGlvbihwdCl7cmV0dXJuIE8oTiksajAu''@;'; + put 'put ''Y3JlYXRlTm9kZShudWxsLCIvIixqMC5nZXRNb2RlKHB0Lm9wdHMucm9vdCksMCl9LGNyZWF0ZU5vZGU6ZnVuY3Rpb24ocHQsSXQsUHQsZmUpe2lmKCF2bi5pc0RpcihQdCkmJiF2bi5pc0ZpbGUoUHQpJiYhdm4uaXNMaW5rKFB0KSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwp''@;'; + put 'put ''O3ZhciBydD12bi5jcmVhdGVOb2RlKHB0LEl0LFB0KTtyZXR1cm4gcnQubm9kZV9vcHM9ajAubm9kZV9vcHMscnQuc3RyZWFtX29wcz1qMC5zdHJlYW1fb3BzLHJ0fSxnZXRNb2RlOmZ1bmN0aW9uKHB0KXt2YXIgSXQ7dHJ5e0l0PW1sLmxzdGF0U3luYyhwdCksajAuaXNXaW5kb3dzJiYoSXQu''@;'; + put 'put ''bW9kZT1JdC5tb2RlfCgyOTImSXQubW9kZSk+PjIpfWNhdGNoKFB0KXt0aHJvdyBQdC5jb2RlP25ldyB2bi5FcnJub0Vycm9yKHZpW1B0LmNvZGVdKTpQdH1yZXR1cm4gSXQubW9kZX0scmVhbFBhdGg6ZnVuY3Rpb24ocHQpe2Zvcih2YXIgSXQ9W107cHQucGFyZW50IT09cHQ7KUl0LnB1c2go''@;'; + put 'put ''cHQubmFtZSkscHQ9cHQucGFyZW50O3JldHVybiBJdC5wdXNoKHB0Lm1vdW50Lm9wdHMucm9vdCksSXQucmV2ZXJzZSgpLFUwLmpvaW4uYXBwbHkobnVsbCxJdCl9LGZsYWdzRm9yTm9kZTpmdW5jdGlvbihwdCl7cHQmPS0yMDk3MTUzLHB0Jj0tMjA0OSxwdCY9LTMyNzY5LHB0Jj0tNTI0Mjg5''@;'; + put 'put ''O3ZhciBJdD0wO2Zvcih2YXIgUHQgaW4gajAuZmxhZ3NGb3JOb2RlTWFwKXB0JlB0JiYoSXR8PWowLmZsYWdzRm9yTm9kZU1hcFtQdF0scHRePVB0KTtpZihwdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO3JldHVybiBJdH0sbm9kZV9vcHM6e2dldGF0dHI6ZnVuY3Rpb24o''@;'; + put 'put ''cHQpe3ZhciBQdCxJdD1qMC5yZWFsUGF0aChwdCk7dHJ5e1B0PW1sLmxzdGF0U3luYyhJdCl9Y2F0Y2goZmUpe3Rocm93IGZlLmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbZmUuY29kZV0pOmZlfXJldHVybiBqMC5pc1dpbmRvd3MmJiFQdC5ibGtzaXplJiYoUHQuYmxrc2l6ZT00MDk2KSxq''@;'; + put 'put ''MC5pc1dpbmRvd3MmJiFQdC5ibG9ja3MmJihQdC5ibG9ja3M9KFB0LnNpemUrUHQuYmxrc2l6ZS0xKS9QdC5ibGtzaXplfDApLHtkZXY6UHQuZGV2LGlubzpQdC5pbm8sbW9kZTpQdC5tb2RlLG5saW5rOlB0Lm5saW5rLHVpZDpQdC51aWQsZ2lkOlB0LmdpZCxyZGV2OlB0LnJkZXYsc2l6ZTpQ''@;'; + put 'put ''dC5zaXplLGF0aW1lOlB0LmF0aW1lLG10aW1lOlB0Lm10aW1lLGN0aW1lOlB0LmN0aW1lLGJsa3NpemU6UHQuYmxrc2l6ZSxibG9ja3M6UHQuYmxvY2tzfX0sc2V0YXR0cjpmdW5jdGlvbihwdCxJdCl7dmFyIFB0PWowLnJlYWxQYXRoKHB0KTt0cnl7aWYodm9pZCAwIT09SXQubW9kZSYmKG1s''@;'; + put 'put ''LmNobW9kU3luYyhQdCxJdC5tb2RlKSxwdC5tb2RlPUl0Lm1vZGUpLHZvaWQgMCE9PUl0LnRpbWVzdGFtcCl7dmFyIGZlPW5ldyBEYXRlKEl0LnRpbWVzdGFtcCk7bWwudXRpbWVzU3luYyhQdCxmZSxmZSl9dm9pZCAwIT09SXQuc2l6ZSYmbWwudHJ1bmNhdGVTeW5jKFB0LEl0LnNpemUpfWNh''@;'; + put 'put ''dGNoKHJ0KXt0aHJvdyBydC5jb2RlP25ldyB2bi5FcnJub0Vycm9yKHZpW3J0LmNvZGVdKTpydH19LGxvb2t1cDpmdW5jdGlvbihwdCxJdCl7dmFyIFB0PVUwLmpvaW4yKGowLnJlYWxQYXRoKHB0KSxJdCksZmU9ajAuZ2V0TW9kZShQdCk7cmV0dXJuIGowLmNyZWF0ZU5vZGUocHQsSXQsZmUp''@;'; + put 'put ''fSxta25vZDpmdW5jdGlvbihwdCxJdCxQdCxmZSl7dmFyIHJ0PWowLmNyZWF0ZU5vZGUocHQsSXQsUHQsZmUpLGE9ajAucmVhbFBhdGgocnQpO3RyeXt2bi5pc0RpcihydC5tb2RlKT9tbC5ta2RpclN5bmMoYSxydC5tb2RlKTptbC53cml0ZUZpbGVTeW5jKGEsIiIse21vZGU6cnQubW9kZX0p''@;'; + put 'put ''fWNhdGNoKEp0KXt0aHJvdyBKdC5jb2RlP25ldyB2bi5FcnJub0Vycm9yKHZpW0p0LmNvZGVdKTpKdH1yZXR1cm4gcnR9LHJlbmFtZTpmdW5jdGlvbihwdCxJdCxQdCl7dmFyIGZlPWowLnJlYWxQYXRoKHB0KSxydD1VMC5qb2luMihqMC5yZWFsUGF0aChJdCksUHQpO3RyeXttbC5yZW5hbWVT''@;'; + put 'put ''eW5jKGZlLHJ0KX1jYXRjaChhKXt0aHJvdyBhLmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbYS5jb2RlXSk6YX19LHVubGluazpmdW5jdGlvbihwdCxJdCl7dmFyIFB0PVUwLmpvaW4yKGowLnJlYWxQYXRoKHB0KSxJdCk7dHJ5e21sLnVubGlua1N5bmMoUHQpfWNhdGNoKGZlKXt0aHJvdyBm''@;'; + put 'put ''ZS5jb2RlP25ldyB2bi5FcnJub0Vycm9yKHZpW2ZlLmNvZGVdKTpmZX19LHJtZGlyOmZ1bmN0aW9uKHB0LEl0KXt2YXIgUHQ9VTAuam9pbjIoajAucmVhbFBhdGgocHQpLEl0KTt0cnl7bWwucm1kaXJTeW5jKFB0KX1jYXRjaChmZSl7dGhyb3cgZmUuY29kZT9uZXcgdm4uRXJybm9FcnJvcih2''@;'; + put 'put ''aVtmZS5jb2RlXSk6ZmV9fSxyZWFkZGlyOmZ1bmN0aW9uKHB0KXt2YXIgSXQ9ajAucmVhbFBhdGgocHQpO3RyeXtyZXR1cm4gbWwucmVhZGRpclN5bmMoSXQpfWNhdGNoKFB0KXt0aHJvdyBQdC5jb2RlP25ldyB2bi5FcnJub0Vycm9yKHZpW1B0LmNvZGVdKTpQdH19LHN5bWxpbms6ZnVuY3Rp''@;'; + put 'put ''b24ocHQsSXQsUHQpe3ZhciBmZT1VMC5qb2luMihqMC5yZWFsUGF0aChwdCksSXQpO3RyeXttbC5zeW1saW5rU3luYyhQdCxmZSl9Y2F0Y2gocnQpe3Rocm93IHJ0LmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbcnQuY29kZV0pOnJ0fX0scmVhZGxpbms6ZnVuY3Rpb24ocHQpe3ZhciBJdD1q''@;'; + put 'put ''MC5yZWFsUGF0aChwdCk7dHJ5e3JldHVybiBJdD1tbC5yZWFkbGlua1N5bmMoSXQpLEl0PXAzLnJlbGF0aXZlKHAzLnJlc29sdmUocHQubW91bnQub3B0cy5yb290KSxJdCl9Y2F0Y2goUHQpe3Rocm93IFB0LmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbUHQuY29kZV0pOlB0fX19LHN0cmVh''@;'; + put 'put ''bV9vcHM6e29wZW46ZnVuY3Rpb24ocHQpe3ZhciBJdD1qMC5yZWFsUGF0aChwdC5ub2RlKTt0cnl7dm4uaXNGaWxlKHB0Lm5vZGUubW9kZSkmJihwdC5uZmQ9bWwub3BlblN5bmMoSXQsajAuZmxhZ3NGb3JOb2RlKHB0LmZsYWdzKSkpfWNhdGNoKFB0KXt0aHJvdyBQdC5jb2RlP25ldyB2bi5F''@;'; + put 'put ''cnJub0Vycm9yKHZpW1B0LmNvZGVdKTpQdH19LGNsb3NlOmZ1bmN0aW9uKHB0KXt0cnl7dm4uaXNGaWxlKHB0Lm5vZGUubW9kZSkmJnB0Lm5mZCYmbWwuY2xvc2VTeW5jKHB0Lm5mZCl9Y2F0Y2goSXQpe3Rocm93IEl0LmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbSXQuY29kZV0pOkl0fX0s''@;'; + put 'put ''cmVhZDpmdW5jdGlvbihwdCxJdCxQdCxmZSxydCl7aWYoMD09PWZlKXJldHVybiAwO3RyeXtyZXR1cm4gbWwucmVhZFN5bmMocHQubmZkLGowLmJ1ZmZlckZyb20oSXQuYnVmZmVyKSxQdCxmZSxydCl9Y2F0Y2goYSl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmlbYS5jb2RlXSl9fSx3cml0''@;'; + put 'put ''ZTpmdW5jdGlvbihwdCxJdCxQdCxmZSxydCl7dHJ5e3JldHVybiBtbC53cml0ZVN5bmMocHQubmZkLGowLmJ1ZmZlckZyb20oSXQuYnVmZmVyKSxQdCxmZSxydCl9Y2F0Y2goYSl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmlbYS5jb2RlXSl9fSxsbHNlZWs6ZnVuY3Rpb24ocHQsSXQsUHQp''@;'; + put 'put ''e3ZhciBmZT1JdDtpZigxPT09UHQpZmUrPXB0LnBvc2l0aW9uO2Vsc2UgaWYoMj09PVB0JiZ2bi5pc0ZpbGUocHQubm9kZS5tb2RlKSl0cnl7ZmUrPW1sLmZzdGF0U3luYyhwdC5uZmQpLnNpemV9Y2F0Y2goYSl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmlbYS5jb2RlXSl9aWYoZmU8MCl0''@;'; + put 'put ''aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO3JldHVybiBmZX19fSxCbD17RElSX01PREU6MTY4OTUsRklMRV9NT0RFOjMzMjc5LHJlYWRlcjpudWxsLG1vdW50OmZ1bmN0aW9uKHB0KXtPKFcpLEJsLnJlYWRlcnx8KEJsLnJlYWRlcj1uZXcgRmlsZVJlYWRlclN5bmMpO3ZhciBJ''@;'; + put 'put ''dD1CbC5jcmVhdGVOb2RlKG51bGwsIi8iLEJsLkRJUl9NT0RFLDApLFB0PXt9O2Z1bmN0aW9uIGZlKGEpe2Zvcih2YXIgSnQ9YS5zcGxpdCgiLyIpLGhyPUl0LFBpPTA7UGk8SnQubGVuZ3RoLTE7UGkrKyl7dmFyIGpuPUp0LnNsaWNlKDAsUGkrMSkuam9pbigiLyIpO1B0W2puXXx8KFB0W2pu''@;'; + put 'put ''XT1CbC5jcmVhdGVOb2RlKGhyLEp0W1BpXSxCbC5ESVJfTU9ERSwwKSksaHI9UHRbam5dfXJldHVybiBocn1mdW5jdGlvbiBydChhKXt2YXIgSnQ9YS5zcGxpdCgiLyIpO3JldHVybiBKdFtKdC5sZW5ndGgtMV19cmV0dXJuIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwocHQub3B0cy5m''@;'; + put 'put ''aWxlc3x8W10sZnVuY3Rpb24oYSl7QmwuY3JlYXRlTm9kZShmZShhLm5hbWUpLHJ0KGEubmFtZSksQmwuRklMRV9NT0RFLDAsYSxhLmxhc3RNb2RpZmllZERhdGUpfSksKHB0Lm9wdHMuYmxvYnN8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0JsLmNyZWF0ZU5vZGUoZmUoYS5uYW1lKSxydChh''@;'; + put 'put ''Lm5hbWUpLEJsLkZJTEVfTU9ERSwwLGEuZGF0YSl9KSwocHQub3B0cy5wYWNrYWdlc3x8W10pLmZvckVhY2goZnVuY3Rpb24oYSl7YS5tZXRhZGF0YS5maWxlcy5mb3JFYWNoKGZ1bmN0aW9uKEp0KXt2YXIgaHI9SnQuZmlsZW5hbWUuc3Vic3RyKDEpO0JsLmNyZWF0ZU5vZGUoZmUoaHIpLHJ0''@;'; + put 'put ''KGhyKSxCbC5GSUxFX01PREUsMCxhLmJsb2Iuc2xpY2UoSnQuc3RhcnQsSnQuZW5kKSl9KX0pLEl0fSxjcmVhdGVOb2RlOmZ1bmN0aW9uKHB0LEl0LFB0LGZlLHJ0LGEpe3ZhciBKdD12bi5jcmVhdGVOb2RlKHB0LEl0LFB0KTtyZXR1cm4gSnQubW9kZT1QdCxKdC5ub2RlX29wcz1CbC5ub2Rl''@;'; + put 'put ''X29wcyxKdC5zdHJlYW1fb3BzPUJsLnN0cmVhbV9vcHMsSnQudGltZXN0YW1wPShhfHxuZXcgRGF0ZSkuZ2V0VGltZSgpLE8oQmwuRklMRV9NT0RFIT09QmwuRElSX01PREUpLFB0PT09QmwuRklMRV9NT0RFPyhKdC5zaXplPXJ0LnNpemUsSnQuY29udGVudHM9cnQpOihKdC5zaXplPTQwOTYs''@;'; + put 'put ''SnQuY29udGVudHM9e30pLHB0JiYocHQuY29udGVudHNbSXRdPUp0KSxKdH0sbm9kZV9vcHM6e2dldGF0dHI6ZnVuY3Rpb24ocHQpe3JldHVybntkZXY6MSxpbm86dm9pZCAwLG1vZGU6cHQubW9kZSxubGluazoxLHVpZDowLGdpZDowLHJkZXY6dm9pZCAwLHNpemU6cHQuc2l6ZSxhdGltZTpu''@;'; + put 'put ''ZXcgRGF0ZShwdC50aW1lc3RhbXApLG10aW1lOm5ldyBEYXRlKHB0LnRpbWVzdGFtcCksY3RpbWU6bmV3IERhdGUocHQudGltZXN0YW1wKSxibGtzaXplOjQwOTYsYmxvY2tzOk1hdGguY2VpbChwdC5zaXplLzQwOTYpfX0sc2V0YXR0cjpmdW5jdGlvbihwdCxJdCl7dm9pZCAwIT09SXQubW9k''@;'; + put 'put ''ZSYmKHB0Lm1vZGU9SXQubW9kZSksdm9pZCAwIT09SXQudGltZXN0YW1wJiYocHQudGltZXN0YW1wPUl0LnRpbWVzdGFtcCl9LGxvb2t1cDpmdW5jdGlvbihwdCxJdCl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PRU5UKX0sbWtub2Q6ZnVuY3Rpb24ocHQsSXQsUHQsZmUpe3Rocm93''@;'; + put 'put ''IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQRVJNKX0scmVuYW1lOmZ1bmN0aW9uKHB0LEl0LFB0KXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSl9LHVubGluazpmdW5jdGlvbihwdCxJdCl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pfSxybWRpcjpmdW5jdGlvbihw''@;'; + put 'put ''dCxJdCl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pfSxyZWFkZGlyOmZ1bmN0aW9uKHB0KXt2YXIgSXQ9WyIuIiwiLi4iXTtmb3IodmFyIFB0IGluIHB0LmNvbnRlbnRzKSFwdC5jb250ZW50cy5oYXNPd25Qcm9wZXJ0eShQdCl8fEl0LnB1c2goUHQpO3JldHVybiBJdH0sc3lt''@;'; + put 'put ''bGluazpmdW5jdGlvbihwdCxJdCxQdCl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pfSxyZWFkbGluazpmdW5jdGlvbihwdCl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pfX0sc3RyZWFtX29wczp7cmVhZDpmdW5jdGlvbihwdCxJdCxQdCxmZSxydCl7aWYocnQ+''@;'; + put 'put ''PXB0Lm5vZGUuc2l6ZSlyZXR1cm4gMDt2YXIgYT1wdC5ub2RlLmNvbnRlbnRzLnNsaWNlKHJ0LHJ0K2ZlKSxKdD1CbC5yZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYSk7cmV0dXJuIEl0LnNldChuZXcgVWludDhBcnJheShKdCksUHQpLGEuc2l6ZX0sd3JpdGU6ZnVuY3Rpb24ocHQsSXQsUHQs''@;'; + put 'put ''ZmUscnQpe3Rocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTyl9LGxsc2VlazpmdW5jdGlvbihwdCxJdCxQdCl7dmFyIGZlPUl0O2lmKDE9PT1QdD9mZSs9cHQucG9zaXRpb246Mj09PVB0JiZ2bi5pc0ZpbGUocHQubm9kZS5tb2RlKSYmKGZlKz1wdC5ub2RlLnNpemUpLGZlPDApdGhyb3cg''@;'; + put 'put ''bmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTtyZXR1cm4gZmV9fX07eXQrPTE2LHl0Kz0xNix5dCs9MTY7dmFyIHZuPXtyb290Om51bGwsbW91bnRzOltdLGRldmljZXM6e30sc3RyZWFtczpbXSxuZXh0SW5vZGU6MSxuYW1lVGFibGU6bnVsbCxjdXJyZW50UGF0aDoiLyIsaW5pdGlhbGl6''@;'; + put 'put ''ZWQ6ITEsaWdub3JlUGVybWlzc2lvbnM6ITAsdHJhY2tpbmdEZWxlZ2F0ZTp7fSx0cmFja2luZzp7b3BlbkZsYWdzOntSRUFEOjEsV1JJVEU6Mn19LEVycm5vRXJyb3I6bnVsbCxnZW5lcmljRXJyb3JzOnt9LGZpbGVzeXN0ZW1zOm51bGwsc3luY0ZTUmVxdWVzdHM6MCxoYW5kbGVGU0Vycm9y''@;'; + put 'put ''OmZ1bmN0aW9uKHB0KXtpZighKHB0IGluc3RhbmNlb2Ygdm4uRXJybm9FcnJvcikpdGhyb3cgcHQrIiA6ICIraHQoKTtyZXR1cm4gYjAocHQuZXJybm8pfSxsb29rdXBQYXRoOmZ1bmN0aW9uKHB0LEl0KXtpZihJdD1JdHx8e30sIShwdD1VMC5yZXNvbHZlKHZuLmN3ZCgpLHB0KSkpcmV0dXJu''@;'; + put 'put ''e3BhdGg6IiIsbm9kZTpudWxsfTt2YXIgUHQ9e2ZvbGxvd19tb3VudDohMCxyZWN1cnNlX2NvdW50OjB9O2Zvcih2YXIgZmUgaW4gUHQpdm9pZCAwPT09SXRbZmVdJiYoSXRbZmVdPVB0W2ZlXSk7aWYoSXQucmVjdXJzZV9jb3VudD44KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVMT09Q''@;'; + put 'put ''KTtmb3IodmFyIHJ0PVUwLm5vcm1hbGl6ZUFycmF5KHB0LnNwbGl0KCIvIikuZmlsdGVyKGZ1bmN0aW9uKFNpKXtyZXR1cm4hIVNpfSksITEpLGE9dm4ucm9vdCxKdD0iLyIsaHI9MDtocjxydC5sZW5ndGg7aHIrKyl7dmFyIFBpPWhyPT09cnQubGVuZ3RoLTE7aWYoUGkmJkl0LnBhcmVudCli''@;'; + put 'put ''cmVhaztpZihhPXZuLmxvb2t1cE5vZGUoYSxydFtocl0pLEp0PVUwLmpvaW4yKEp0LHJ0W2hyXSksdm4uaXNNb3VudHBvaW50KGEpJiYoIVBpfHxQaSYmSXQuZm9sbG93X21vdW50KSYmKGE9YS5tb3VudGVkLnJvb3QpLCFQaXx8SXQuZm9sbG93KWZvcih2YXIgam49MDt2bi5pc0xpbmsoYS5t''@;'; + put 'put ''b2RlKTspe3ZhciBfPXZuLnJlYWRsaW5rKEp0KTtpZihKdD1VMC5yZXNvbHZlKFUwLmRpcm5hbWUoSnQpLF8pLGE9dm4ubG9va3VwUGF0aChKdCx7cmVjdXJzZV9jb3VudDpJdC5yZWN1cnNlX2NvdW50fSkubm9kZSxqbisrPjQwKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVMT09QKX19''@;'; + put 'put ''cmV0dXJue3BhdGg6SnQsbm9kZTphfX0sZ2V0UGF0aDpmdW5jdGlvbihwdCl7Zm9yKHZhciBJdDs7KXtpZih2bi5pc1Jvb3QocHQpKXt2YXIgUHQ9cHQubW91bnQubW91bnRwb2ludDtyZXR1cm4gSXQ/Ii8iIT09UHRbUHQubGVuZ3RoLTFdP1B0KyIvIitJdDpQdCtJdDpQdH1JdD1JdD9wdC5u''@;'; + put 'put ''YW1lKyIvIitJdDpwdC5uYW1lLHB0PXB0LnBhcmVudH19LGhhc2hOYW1lOmZ1bmN0aW9uKHB0LEl0KXtmb3IodmFyIFB0PTAsZmU9MDtmZTxJdC5sZW5ndGg7ZmUrKylQdD0oUHQ8PDUpLVB0K0l0LmNoYXJDb2RlQXQoZmUpfDA7cmV0dXJuKHB0K1B0Pj4+MCkldm4ubmFtZVRhYmxlLmxlbmd0''@;'; + put 'put ''aH0saGFzaEFkZE5vZGU6ZnVuY3Rpb24ocHQpe3ZhciBJdD12bi5oYXNoTmFtZShwdC5wYXJlbnQuaWQscHQubmFtZSk7cHQubmFtZV9uZXh0PXZuLm5hbWVUYWJsZVtJdF0sdm4ubmFtZVRhYmxlW0l0XT1wdH0saGFzaFJlbW92ZU5vZGU6ZnVuY3Rpb24ocHQpe3ZhciBJdD12bi5oYXNoTmFt''@;'; + put 'put ''ZShwdC5wYXJlbnQuaWQscHQubmFtZSk7aWYodm4ubmFtZVRhYmxlW0l0XT09PXB0KXZuLm5hbWVUYWJsZVtJdF09cHQubmFtZV9uZXh0O2Vsc2UgZm9yKHZhciBQdD12bi5uYW1lVGFibGVbSXRdO1B0Oyl7aWYoUHQubmFtZV9uZXh0PT09cHQpe1B0Lm5hbWVfbmV4dD1wdC5uYW1lX25leHQ7''@;'; + put 'put ''YnJlYWt9UHQ9UHQubmFtZV9uZXh0fX0sbG9va3VwTm9kZTpmdW5jdGlvbihwdCxJdCl7dmFyIFB0PXZuLm1heUxvb2t1cChwdCk7aWYoUHQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IoUHQscHQpO2Zvcih2YXIgZmU9dm4uaGFzaE5hbWUocHQuaWQsSXQpLHJ0PXZuLm5hbWVUYWJsZVtmZV07''@;'; + put 'put ''cnQ7cnQ9cnQubmFtZV9uZXh0KWlmKHJ0LnBhcmVudC5pZD09PXB0LmlkJiZydC5uYW1lPT09SXQpcmV0dXJuIHJ0O3JldHVybiB2bi5sb29rdXAocHQsSXQpfSxjcmVhdGVOb2RlOmZ1bmN0aW9uKHB0LEl0LFB0LGZlKXtpZighdm4uRlNOb2RlKXt2bi5GU05vZGU9ZnVuY3Rpb24oaHIsUGks''@;'; + put 'put ''am4sXyl7aHJ8fChocj10aGlzKSx0aGlzLnBhcmVudD1ocix0aGlzLm1vdW50PWhyLm1vdW50LHRoaXMubW91bnRlZD1udWxsLHRoaXMuaWQ9dm4ubmV4dElub2RlKyssdGhpcy5uYW1lPVBpLHRoaXMubW9kZT1qbix0aGlzLm5vZGVfb3BzPXt9LHRoaXMuc3RyZWFtX29wcz17fSx0aGlzLnJk''@;'; + put 'put ''ZXY9X30sdm4uRlNOb2RlLnByb3RvdHlwZT17fTt2YXIgYT0xNDY7T2JqZWN0LmRlZmluZVByb3BlcnRpZXModm4uRlNOb2RlLnByb3RvdHlwZSx7cmVhZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDM2NT09KDM2NSZ0aGlzLm1vZGUpfSxzZXQ6ZnVuY3Rpb24oaHIpe2hyP3RoaXMubW9kZXw9''@;'; + put 'put ''MzY1OnRoaXMubW9kZSY9LTM2Nn19LHdyaXRlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5tb2RlJmEpPT09YX0sc2V0OmZ1bmN0aW9uKGhyKXtocj90aGlzLm1vZGV8PWE6dGhpcy5tb2RlJj1+YX19LGlzRm9sZGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm4uaXNEaXIodGhpcy5t''@;'; + put 'put ''b2RlKX19LGlzRGV2aWNlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm4uaXNDaHJkZXYodGhpcy5tb2RlKX19fSl9dmFyIEp0PW5ldyB2bi5GU05vZGUocHQsSXQsUHQsZmUpO3JldHVybiB2bi5oYXNoQWRkTm9kZShKdCksSnR9LGRlc3Ryb3lOb2RlOmZ1bmN0aW9uKHB0KXt2bi5oYXNoUmVt''@;'; + put 'put ''b3ZlTm9kZShwdCl9LGlzUm9vdDpmdW5jdGlvbihwdCl7cmV0dXJuIHB0PT09cHQucGFyZW50fSxpc01vdW50cG9pbnQ6ZnVuY3Rpb24ocHQpe3JldHVybiEhcHQubW91bnRlZH0saXNGaWxlOmZ1bmN0aW9uKHB0KXtyZXR1cm4gMzI3Njg9PSg2MTQ0MCZwdCl9LGlzRGlyOmZ1bmN0aW9uKHB0''@;'; + put 'put ''KXtyZXR1cm4gMTYzODQ9PSg2MTQ0MCZwdCl9LGlzTGluazpmdW5jdGlvbihwdCl7cmV0dXJuIDQwOTYwPT0oNjE0NDAmcHQpfSxpc0NocmRldjpmdW5jdGlvbihwdCl7cmV0dXJuIDgxOTI9PSg2MTQ0MCZwdCl9LGlzQmxrZGV2OmZ1bmN0aW9uKHB0KXtyZXR1cm4gMjQ1NzY9PSg2MTQ0MCZw''@;'; + put 'put ''dCl9LGlzRklGTzpmdW5jdGlvbihwdCl7cmV0dXJuIDQwOTY9PSg2MTQ0MCZwdCl9LGlzU29ja2V0OmZ1bmN0aW9uKHB0KXtyZXR1cm4gNDkxNTI9PSg0OTE1MiZwdCl9LGZsYWdNb2Rlczp7cjowLHJzOjEwNTI2NzIsInIrIjoyLHc6NTc3LHd4OjcwNSx4dzo3MDUsIncrIjo1NzgsInd4KyI6''@;'; + put 'put ''NzA2LCJ4dysiOjcwNixhOjEwODksYXg6MTIxNyx4YToxMjE3LCJhKyI6MTA5MCwiYXgrIjoxMjE4LCJ4YSsiOjEyMTh9LG1vZGVTdHJpbmdUb0ZsYWdzOmZ1bmN0aW9uKHB0KXt2YXIgSXQ9dm4uZmxhZ01vZGVzW3B0XTtpZih2b2lkIDA9PT1JdCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24g''@;'; + put 'put ''ZmlsZSBvcGVuIG1vZGU6ICIrcHQpO3JldHVybiBJdH0sZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmc6ZnVuY3Rpb24ocHQpe3ZhciBJdD1bInIiLCJ3IiwicnciXVszJnB0XTtyZXR1cm4gNTEyJnB0JiYoSXQrPSJ3IiksSXR9LG5vZGVQZXJtaXNzaW9uczpmdW5jdGlvbihwdCxJdCl7cmV0dXJu''@;'; + put 'put ''IHZuLmlnbm9yZVBlcm1pc3Npb25zfHwoLTE9PT1JdC5pbmRleE9mKCJyIil8fDI5MiZwdC5tb2RlKSYmKC0xPT09SXQuaW5kZXhPZigidyIpfHwxNDYmcHQubW9kZSkmJigtMT09PUl0LmluZGV4T2YoIngiKXx8NzMmcHQubW9kZSk/MDp2aS5FQUNDRVN9LG1heUxvb2t1cDpmdW5jdGlvbihw''@;'; + put 'put ''dCl7cmV0dXJuIHZuLm5vZGVQZXJtaXNzaW9ucyhwdCwieCIpfHwocHQubm9kZV9vcHMubG9va3VwPzA6dmkuRUFDQ0VTKX0sbWF5Q3JlYXRlOmZ1bmN0aW9uKHB0LEl0KXt0cnl7cmV0dXJuIHZuLmxvb2t1cE5vZGUocHQsSXQpLHZpLkVFWElTVH1jYXRjaChmZSl7fXJldHVybiB2bi5ub2Rl''@;'; + put 'put ''UGVybWlzc2lvbnMocHQsInd4Iil9LG1heURlbGV0ZTpmdW5jdGlvbihwdCxJdCxQdCl7dmFyIGZlO3RyeXtmZT12bi5sb29rdXBOb2RlKHB0LEl0KX1jYXRjaChhKXtyZXR1cm4gYS5lcnJub312YXIgcnQ9dm4ubm9kZVBlcm1pc3Npb25zKHB0LCJ3eCIpO2lmKHJ0KXJldHVybiBydDtpZihQ''@;'; + put 'put ''dCl7aWYoIXZuLmlzRGlyKGZlLm1vZGUpKXJldHVybiB2aS5FTk9URElSO2lmKHZuLmlzUm9vdChmZSl8fHZuLmdldFBhdGgoZmUpPT09dm4uY3dkKCkpcmV0dXJuIHZpLkVCVVNZfWVsc2UgaWYodm4uaXNEaXIoZmUubW9kZSkpcmV0dXJuIHZpLkVJU0RJUjtyZXR1cm4gMH0sbWF5T3Blbjpm''@;'; + put 'put ''dW5jdGlvbihwdCxJdCl7cmV0dXJuIHB0P3ZuLmlzTGluayhwdC5tb2RlKT92aS5FTE9PUDp2bi5pc0RpcihwdC5tb2RlKSYmKCJyIiE9PXZuLmZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nKEl0KXx8NTEyJkl0KT92aS5FSVNESVI6dm4ubm9kZVBlcm1pc3Npb25zKHB0LHZuLmZsYWdzVG9QZXJt''@;'; + put 'put ''aXNzaW9uU3RyaW5nKEl0KSk6dmkuRU5PRU5UfSxNQVhfT1BFTl9GRFM6NDA5NixuZXh0ZmQ6ZnVuY3Rpb24ocHQsSXQpe0l0PUl0fHx2bi5NQVhfT1BFTl9GRFM7Zm9yKHZhciBQdD1wdD1wdHx8MDtQdDw9SXQ7UHQrKylpZighdm4uc3RyZWFtc1tQdF0pcmV0dXJuIFB0O3Rocm93IG5ldyB2''@;'; + put 'put ''bi5FcnJub0Vycm9yKHZpLkVNRklMRSl9LGdldFN0cmVhbTpmdW5jdGlvbihwdCl7cmV0dXJuIHZuLnN0cmVhbXNbcHRdfSxjcmVhdGVTdHJlYW06ZnVuY3Rpb24ocHQsSXQsUHQpe3ZuLkZTU3RyZWFtfHwodm4uRlNTdHJlYW09ZnVuY3Rpb24oKXt9LHZuLkZTU3RyZWFtLnByb3RvdHlwZT17''@;'; + put 'put ''fSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh2bi5GU1N0cmVhbS5wcm90b3R5cGUse29iamVjdDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZX0sc2V0OmZ1bmN0aW9uKEp0KXt0aGlzLm5vZGU9SnR9fSxpc1JlYWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiAxIT0oMjA5NzE1NSZ0''@;'; + put 'put ''aGlzLmZsYWdzKX19LGlzV3JpdGU6e2dldDpmdW5jdGlvbigpe3JldHVybiAwIT0oMjA5NzE1NSZ0aGlzLmZsYWdzKX19LGlzQXBwZW5kOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTAyNCZ0aGlzLmZsYWdzfX19KSk7dmFyIGZlPW5ldyB2bi5GU1N0cmVhbTtmb3IodmFyIHJ0IGluIHB0KWZl''@;'; + put 'put ''W3J0XT1wdFtydF07cHQ9ZmU7dmFyIGE9dm4ubmV4dGZkKEl0LFB0KTtyZXR1cm4gcHQuZmQ9YSx2bi5zdHJlYW1zW2FdPXB0LHB0fSxjbG9zZVN0cmVhbTpmdW5jdGlvbihwdCl7dm4uc3RyZWFtc1twdF09bnVsbH0sY2hyZGV2X3N0cmVhbV9vcHM6e29wZW46ZnVuY3Rpb24ocHQpe3ZhciBJ''@;'; + put 'put ''dD12bi5nZXREZXZpY2UocHQubm9kZS5yZGV2KTtwdC5zdHJlYW1fb3BzPUl0LnN0cmVhbV9vcHMscHQuc3RyZWFtX29wcy5vcGVuJiZwdC5zdHJlYW1fb3BzLm9wZW4ocHQpfSxsbHNlZWs6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FU1BJUEUpfX0sbWFqb3I6ZnVu''@;'; + put 'put ''Y3Rpb24ocHQpe3JldHVybiBwdD4+OH0sbWlub3I6ZnVuY3Rpb24ocHQpe3JldHVybiAyNTUmcHR9LG1ha2VkZXY6ZnVuY3Rpb24ocHQsSXQpe3JldHVybiBwdDw8OHxJdH0scmVnaXN0ZXJEZXZpY2U6ZnVuY3Rpb24ocHQsSXQpe3ZuLmRldmljZXNbcHRdPXtzdHJlYW1fb3BzOkl0fX0sZ2V0''@;'; + put 'put ''RGV2aWNlOmZ1bmN0aW9uKHB0KXtyZXR1cm4gdm4uZGV2aWNlc1twdF19LGdldE1vdW50czpmdW5jdGlvbihwdCl7Zm9yKHZhciBJdD1bXSxQdD1bcHRdO1B0Lmxlbmd0aDspe3ZhciBmZT1QdC5wb3AoKTtJdC5wdXNoKGZlKSxQdC5wdXNoLmFwcGx5KFB0LGZlLm1vdW50cyl9cmV0dXJuIEl0''@;'; + put 'put ''fSxzeW5jZnM6ZnVuY3Rpb24ocHQsSXQpeyJmdW5jdGlvbiI9PXR5cGVvZiBwdCYmKEl0PXB0LHB0PSExKSx2bi5zeW5jRlNSZXF1ZXN0cysrLHZuLnN5bmNGU1JlcXVlc3RzPjEmJmNvbnNvbGUubG9nKCJ3YXJuaW5nOiAiK3ZuLnN5bmNGU1JlcXVlc3RzKyIgRlMuc3luY2ZzIG9wZXJhdGlv''@;'; + put 'put ''bnMgaW4gZmxpZ2h0IGF0IG9uY2UsIHByb2JhYmx5IGp1c3QgZG9pbmcgZXh0cmEgd29yayIpO3ZhciBQdD12bi5nZXRNb3VudHModm4ucm9vdC5tb3VudCksZmU9MDtmdW5jdGlvbiBydChKdCl7cmV0dXJuIE8odm4uc3luY0ZTUmVxdWVzdHM+MCksdm4uc3luY0ZTUmVxdWVzdHMtLSxJdChK''@;'; + put 'put ''dCl9ZnVuY3Rpb24gYShKdCl7aWYoSnQpcmV0dXJuIGEuZXJyb3JlZD92b2lkIDA6KGEuZXJyb3JlZD0hMCxydChKdCkpOysrZmU+PVB0Lmxlbmd0aCYmcnQobnVsbCl9UHQuZm9yRWFjaChmdW5jdGlvbihKdCl7aWYoIUp0LnR5cGUuc3luY2ZzKXJldHVybiBhKG51bGwpO0p0LnR5cGUuc3lu''@;'; + put 'put ''Y2ZzKEp0LHB0LGEpfSl9LG1vdW50OmZ1bmN0aW9uKHB0LEl0LFB0KXt2YXIgYSxmZT0iLyI9PT1QdCxydD0hUHQ7aWYoZmUmJnZuLnJvb3QpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJVU1kpO2lmKCFmZSYmIXJ0KXt2YXIgSnQ9dm4ubG9va3VwUGF0aChQdCx7Zm9sbG93X21vdW50''@;'; + put 'put ''OiExfSk7aWYoUHQ9SnQucGF0aCx2bi5pc01vdW50cG9pbnQoYT1KdC5ub2RlKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQlVTWSk7aWYoIXZuLmlzRGlyKGEubW9kZSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PVERJUil9dmFyIGhyPXt0eXBlOnB0LG9wdHM6SXQsbW91''@;'; + put 'put ''bnRwb2ludDpQdCxtb3VudHM6W119LFBpPXB0Lm1vdW50KGhyKTtyZXR1cm4gUGkubW91bnQ9aHIsaHIucm9vdD1QaSxmZT92bi5yb290PVBpOmEmJihhLm1vdW50ZWQ9aHIsYS5tb3VudCYmYS5tb3VudC5tb3VudHMucHVzaChocikpLFBpfSx1bm1vdW50OmZ1bmN0aW9uKHB0KXt2YXIgSXQ9''@;'; + put 'put ''dm4ubG9va3VwUGF0aChwdCx7Zm9sbG93X21vdW50OiExfSk7aWYoIXZuLmlzTW91bnRwb2ludChJdC5ub2RlKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO3ZhciBQdD1JdC5ub2RlLGZlPVB0Lm1vdW50ZWQscnQ9dm4uZ2V0TW91bnRzKGZlKTtPYmplY3Qua2V5cyh2bi5u''@;'; + put 'put ''YW1lVGFibGUpLmZvckVhY2goZnVuY3Rpb24oSnQpe2Zvcih2YXIgaHI9dm4ubmFtZVRhYmxlW0p0XTtocjspe3ZhciBQaT1oci5uYW1lX25leHQ7LTEhPT1ydC5pbmRleE9mKGhyLm1vdW50KSYmdm4uZGVzdHJveU5vZGUoaHIpLGhyPVBpfX0pLFB0Lm1vdW50ZWQ9bnVsbDt2YXIgYT1QdC5t''@;'; + put 'put ''b3VudC5tb3VudHMuaW5kZXhPZihmZSk7TygtMSE9PWEpLFB0Lm1vdW50Lm1vdW50cy5zcGxpY2UoYSwxKX0sbG9va3VwOmZ1bmN0aW9uKHB0LEl0KXtyZXR1cm4gcHQubm9kZV9vcHMubG9va3VwKHB0LEl0KX0sbWtub2Q6ZnVuY3Rpb24ocHQsSXQsUHQpe3ZhciBydD12bi5sb29rdXBQYXRo''@;'; + put 'put ''KHB0LHtwYXJlbnQ6ITB9KS5ub2RlLGE9VTAuYmFzZW5hbWUocHQpO2lmKCFhfHwiLiI9PT1hfHwiLi4iPT09YSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO3ZhciBKdD12bi5tYXlDcmVhdGUocnQsYSk7aWYoSnQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IoSnQpO2lmKCFy''@;'; + put 'put ''dC5ub2RlX29wcy5ta25vZCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSk7cmV0dXJuIHJ0Lm5vZGVfb3BzLm1rbm9kKHJ0LGEsSXQsUHQpfSxjcmVhdGU6ZnVuY3Rpb24ocHQsSXQpe3JldHVybiBJdD12b2lkIDAhPT1JdD9JdDo0MzgsSXQmPTQwOTUsdm4ubWtub2QocHQsSXR8''@;'; + put 'put ''PTMyNzY4LDApfSxta2RpcjpmdW5jdGlvbihwdCxJdCl7cmV0dXJuIEl0PXZvaWQgMCE9PUl0P0l0OjUxMSxJdCY9MTAyMyx2bi5ta25vZChwdCxJdHw9MTYzODQsMCl9LG1rZGlyVHJlZTpmdW5jdGlvbihwdCxJdCl7Zm9yKHZhciBQdD1wdC5zcGxpdCgiLyIpLGZlPSIiLHJ0PTA7cnQ8UHQu''@;'; + put 'put ''bGVuZ3RoOysrcnQpaWYoUHRbcnRdKXtmZSs9Ii8iK1B0W3J0XTt0cnl7dm4ubWtkaXIoZmUsSXQpfWNhdGNoKGEpe2lmKGEuZXJybm8hPXZpLkVFWElTVCl0aHJvdyBhfX19LG1rZGV2OmZ1bmN0aW9uKHB0LEl0LFB0KXtyZXR1cm4gdm9pZCAwPT09UHQmJihQdD1JdCxJdD00MzgpLHZuLm1r''@;'; + put 'put ''bm9kKHB0LEl0fD04MTkyLFB0KX0sc3ltbGluazpmdW5jdGlvbihwdCxJdCl7aWYoIVUwLnJlc29sdmUocHQpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT0VOVCk7dmFyIGZlPXZuLmxvb2t1cFBhdGgoSXQse3BhcmVudDohMH0pLm5vZGU7aWYoIWZlKXRocm93IG5ldyB2bi5FcnJu''@;'; + put 'put ''b0Vycm9yKHZpLkVOT0VOVCk7dmFyIHJ0PVUwLmJhc2VuYW1lKEl0KSxhPXZuLm1heUNyZWF0ZShmZSxydCk7aWYoYSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcihhKTtpZighZmUubm9kZV9vcHMuc3ltbGluayl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSk7cmV0dXJuIGZlLm5v''@;'; + put 'put ''ZGVfb3BzLnN5bWxpbmsoZmUscnQscHQpfSxyZW5hbWU6ZnVuY3Rpb24ocHQsSXQpe3ZhciBocixQaSxQdD1VMC5kaXJuYW1lKHB0KSxmZT1VMC5kaXJuYW1lKEl0KSxydD1VMC5iYXNlbmFtZShwdCksYT1VMC5iYXNlbmFtZShJdCk7dHJ5e2hyPXZuLmxvb2t1cFBhdGgocHQse3BhcmVudDoh''@;'; + put 'put ''MH0pLm5vZGUsUGk9dm4ubG9va3VwUGF0aChJdCx7cGFyZW50OiEwfSkubm9kZX1jYXRjaChhZSl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJVU1kpfWlmKCFocnx8IVBpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT0VOVCk7aWYoaHIubW91bnQhPT1QaS5tb3VudCl0aHJv''@;'; + put 'put ''dyBuZXcgdm4uRXJybm9FcnJvcih2aS5FWERFVik7dmFyIEFvLGpuPXZuLmxvb2t1cE5vZGUoaHIscnQpLF89VTAucmVsYXRpdmUocHQsZmUpO2lmKCIuIiE9PV8uY2hhckF0KDApKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7aWYoIi4iIT09KF89VTAucmVsYXRpdmUoSXQs''@;'; + put 'put ''UHQpKS5jaGFyQXQoMCkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PVEVNUFRZKTt0cnl7QW89dm4ubG9va3VwTm9kZShQaSxhKX1jYXRjaChhZSl7fWlmKGpuIT09QW8pe3ZhciBTaT12bi5pc0Rpcihqbi5tb2RlKSwkbz12bi5tYXlEZWxldGUoaHIscnQsU2kpO2lmKCRvKXRocm93''@;'; + put 'put ''IG5ldyB2bi5FcnJub0Vycm9yKCRvKTtpZigkbz1Bbz92bi5tYXlEZWxldGUoUGksYSxTaSk6dm4ubWF5Q3JlYXRlKFBpLGEpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKCRvKTtpZighaHIubm9kZV9vcHMucmVuYW1lKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQRVJNKTtpZih2bi5p''@;'; + put 'put ''c01vdW50cG9pbnQoam4pfHxBbyYmdm4uaXNNb3VudHBvaW50KEFvKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQlVTWSk7aWYoUGkhPT1ociYmKCRvPXZuLm5vZGVQZXJtaXNzaW9ucyhociwidyIpKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcigkbyk7dHJ5e3ZuLnRyYWNraW5nRGVs''@;'; + put 'put ''ZWdhdGUud2lsbE1vdmVQYXRoJiZ2bi50cmFja2luZ0RlbGVnYXRlLndpbGxNb3ZlUGF0aChwdCxJdCl9Y2F0Y2goYWUpe2NvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWyd3aWxsTW92ZVBhdGgnXSgnIitwdCsiJywgJyIrSXQrIicpIHRocmV3IGFuIGV4Y2VwdGlvbjogIithZS5t''@;'; + put 'put ''ZXNzYWdlKX12bi5oYXNoUmVtb3ZlTm9kZShqbik7dHJ5e2hyLm5vZGVfb3BzLnJlbmFtZShqbixQaSxhKX1jYXRjaChhZSl7dGhyb3cgYWV9ZmluYWxseXt2bi5oYXNoQWRkTm9kZShqbil9dHJ5e3ZuLnRyYWNraW5nRGVsZWdhdGUub25Nb3ZlUGF0aCYmdm4udHJhY2tpbmdEZWxlZ2F0ZS5v''@;'; + put 'put ''bk1vdmVQYXRoKHB0LEl0KX1jYXRjaChhZSl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ29uTW92ZVBhdGgnXSgnIitwdCsiJywgJyIrSXQrIicpIHRocmV3IGFuIGV4Y2VwdGlvbjogIithZS5tZXNzYWdlKX19fSxybWRpcjpmdW5jdGlvbihwdCl7dmFyIFB0PXZuLmxvb2t1''@;'; + put 'put ''cFBhdGgocHQse3BhcmVudDohMH0pLm5vZGUsZmU9VTAuYmFzZW5hbWUocHQpLHJ0PXZuLmxvb2t1cE5vZGUoUHQsZmUpLGE9dm4ubWF5RGVsZXRlKFB0LGZlLCEwKTtpZihhKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKGEpO2lmKCFQdC5ub2RlX29wcy5ybWRpcil0aHJvdyBuZXcgdm4uRXJy''@;'; + put 'put ''bm9FcnJvcih2aS5FUEVSTSk7aWYodm4uaXNNb3VudHBvaW50KHJ0KSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQlVTWSk7dHJ5e3ZuLnRyYWNraW5nRGVsZWdhdGUud2lsbERlbGV0ZVBhdGgmJnZuLnRyYWNraW5nRGVsZWdhdGUud2lsbERlbGV0ZVBhdGgocHQpfWNhdGNoKEp0KXtj''@;'; + put 'put ''b25zb2xlLmxvZygiRlMudHJhY2tpbmdEZWxlZ2F0ZVsnd2lsbERlbGV0ZVBhdGgnXSgnIitwdCsiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiK0p0Lm1lc3NhZ2UpfVB0Lm5vZGVfb3BzLnJtZGlyKFB0LGZlKSx2bi5kZXN0cm95Tm9kZShydCk7dHJ5e3ZuLnRyYWNraW5nRGVsZWdhdGUub25E''@;'; + put 'put ''ZWxldGVQYXRoJiZ2bi50cmFja2luZ0RlbGVnYXRlLm9uRGVsZXRlUGF0aChwdCl9Y2F0Y2goSnQpe2NvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWydvbkRlbGV0ZVBhdGgnXSgnIitwdCsiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiK0p0Lm1lc3NhZ2UpfX0scmVhZGRpcjpmdW5j''@;'; + put 'put ''dGlvbihwdCl7dmFyIFB0PXZuLmxvb2t1cFBhdGgocHQse2ZvbGxvdzohMH0pLm5vZGU7aWYoIVB0Lm5vZGVfb3BzLnJlYWRkaXIpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PVERJUik7cmV0dXJuIFB0Lm5vZGVfb3BzLnJlYWRkaXIoUHQpfSx1bmxpbms6ZnVuY3Rpb24ocHQpe3Zh''@;'; + put 'put ''ciBQdD12bi5sb29rdXBQYXRoKHB0LHtwYXJlbnQ6ITB9KS5ub2RlLGZlPVUwLmJhc2VuYW1lKHB0KSxydD12bi5sb29rdXBOb2RlKFB0LGZlKSxhPXZuLm1heURlbGV0ZShQdCxmZSwhMSk7aWYoYSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcihhKTtpZighUHQubm9kZV9vcHMudW5saW5rKXRo''@;'; + put 'put ''cm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQRVJNKTtpZih2bi5pc01vdW50cG9pbnQocnQpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCVVNZKTt0cnl7dm4udHJhY2tpbmdEZWxlZ2F0ZS53aWxsRGVsZXRlUGF0aCYmdm4udHJhY2tpbmdEZWxlZ2F0ZS53aWxsRGVsZXRlUGF0aChw''@;'; + put 'put ''dCl9Y2F0Y2goSnQpe2NvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWyd3aWxsRGVsZXRlUGF0aCddKCciK3B0KyInKSB0aHJldyBhbiBleGNlcHRpb246ICIrSnQubWVzc2FnZSl9UHQubm9kZV9vcHMudW5saW5rKFB0LGZlKSx2bi5kZXN0cm95Tm9kZShydCk7dHJ5e3ZuLnRyYWNr''@;'; + put 'put ''aW5nRGVsZWdhdGUub25EZWxldGVQYXRoJiZ2bi50cmFja2luZ0RlbGVnYXRlLm9uRGVsZXRlUGF0aChwdCl9Y2F0Y2goSnQpe2NvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWydvbkRlbGV0ZVBhdGgnXSgnIitwdCsiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiK0p0Lm1lc3NhZ2Up''@;'; + put 'put ''fX0scmVhZGxpbms6ZnVuY3Rpb24ocHQpe3ZhciBQdD12bi5sb29rdXBQYXRoKHB0KS5ub2RlO2lmKCFQdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9FTlQpO2lmKCFQdC5ub2RlX29wcy5yZWFkbGluayl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO3JldHVybiBV''@;'; + put 'put ''MC5yZXNvbHZlKHZuLmdldFBhdGgoUHQucGFyZW50KSxQdC5ub2RlX29wcy5yZWFkbGluayhQdCkpfSxzdGF0OmZ1bmN0aW9uKHB0LEl0KXt2YXIgZmU9dm4ubG9va3VwUGF0aChwdCx7Zm9sbG93OiFJdH0pLm5vZGU7aWYoIWZlKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT0VOVCk7''@;'; + put 'put ''aWYoIWZlLm5vZGVfb3BzLmdldGF0dHIpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pO3JldHVybiBmZS5ub2RlX29wcy5nZXRhdHRyKGZlKX0sbHN0YXQ6ZnVuY3Rpb24ocHQpe3JldHVybiB2bi5zdGF0KHB0LCEwKX0sY2htb2Q6ZnVuY3Rpb24ocHQsSXQsUHQpe3ZhciBmZTtp''@;'; + put 'put ''ZighKGZlPSJzdHJpbmciPT10eXBlb2YgcHQ/dm4ubG9va3VwUGF0aChwdCx7Zm9sbG93OiFQdH0pLm5vZGU6cHQpLm5vZGVfb3BzLnNldGF0dHIpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pO2ZlLm5vZGVfb3BzLnNldGF0dHIoZmUse21vZGU6NDA5NSZJdHwtNDA5NiZmZS5t''@;'; + put 'put ''b2RlLHRpbWVzdGFtcDpEYXRlLm5vdygpfSl9LGxjaG1vZDpmdW5jdGlvbihwdCxJdCl7dm4uY2htb2QocHQsSXQsITApfSxmY2htb2Q6ZnVuY3Rpb24ocHQsSXQpe3ZhciBQdD12bi5nZXRTdHJlYW0ocHQpO2lmKCFQdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQkFERik7dm4uY2ht''@;'; + put 'put ''b2QoUHQubm9kZSxJdCl9LGNob3duOmZ1bmN0aW9uKHB0LEl0LFB0LGZlKXt2YXIgcnQ7aWYoIShydD0ic3RyaW5nIj09dHlwZW9mIHB0P3ZuLmxvb2t1cFBhdGgocHQse2ZvbGxvdzohZmV9KS5ub2RlOnB0KS5ub2RlX29wcy5zZXRhdHRyKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQ''@;'; + put 'put ''RVJNKTtydC5ub2RlX29wcy5zZXRhdHRyKHJ0LHt0aW1lc3RhbXA6RGF0ZS5ub3coKX0pfSxsY2hvd246ZnVuY3Rpb24ocHQsSXQsUHQpe3ZuLmNob3duKHB0LEl0LFB0LCEwKX0sZmNob3duOmZ1bmN0aW9uKHB0LEl0LFB0KXt2YXIgZmU9dm4uZ2V0U3RyZWFtKHB0KTtpZighZmUpdGhyb3cg''@;'; + put 'put ''bmV3IHZuLkVycm5vRXJyb3IodmkuRUJBREYpO3ZuLmNob3duKGZlLm5vZGUsSXQsUHQpfSx0cnVuY2F0ZTpmdW5jdGlvbihwdCxJdCl7aWYoSXQ8MCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO3ZhciBQdDtpZighKFB0PSJzdHJpbmciPT10eXBlb2YgcHQ/dm4ubG9va3Vw''@;'; + put 'put ''UGF0aChwdCx7Zm9sbG93OiEwfSkubm9kZTpwdCkubm9kZV9vcHMuc2V0YXR0cil0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSk7aWYodm4uaXNEaXIoUHQubW9kZSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlTRElSKTtpZighdm4uaXNGaWxlKFB0Lm1vZGUpKXRocm93''@;'; + put 'put ''IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7dmFyIHJ0PXZuLm5vZGVQZXJtaXNzaW9ucyhQdCwidyIpO2lmKHJ0KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHJ0KTtQdC5ub2RlX29wcy5zZXRhdHRyKFB0LHtzaXplOkl0LHRpbWVzdGFtcDpEYXRlLm5vdygpfSl9LGZ0cnVuY2F0ZTpm''@;'; + put 'put ''dW5jdGlvbihwdCxJdCl7dmFyIFB0PXZuLmdldFN0cmVhbShwdCk7aWYoIVB0KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCQURGKTtpZigwPT0oMjA5NzE1NSZQdC5mbGFncykpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTt2bi50cnVuY2F0ZShQdC5ub2RlLEl0KX0s''@;'; + put 'put ''dXRpbWU6ZnVuY3Rpb24ocHQsSXQsUHQpe3ZhciBydD12bi5sb29rdXBQYXRoKHB0LHtmb2xsb3c6ITB9KS5ub2RlO3J0Lm5vZGVfb3BzLnNldGF0dHIocnQse3RpbWVzdGFtcDpNYXRoLm1heChJdCxQdCl9KX0sb3BlbjpmdW5jdGlvbihwdCxJdCxQdCxmZSxydCl7aWYoIiI9PT1wdCl0aHJv''@;'; + put 'put ''dyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9FTlQpO3ZhciBhO2lmKFB0PXZvaWQgMD09PVB0PzQzODpQdCxQdD02NCYoSXQ9InN0cmluZyI9PXR5cGVvZiBJdD92bi5tb2RlU3RyaW5nVG9GbGFncyhJdCk6SXQpPzQwOTUmUHR8MzI3Njg6MCwib2JqZWN0Ij09dHlwZW9mIHB0KWE9cHQ7ZWxz''@;'; + put 'put ''ZXtwdD1VMC5ub3JtYWxpemUocHQpO3RyeXthPXZuLmxvb2t1cFBhdGgocHQse2ZvbGxvdzohKDEzMTA3MiZJdCl9KS5ub2RlfWNhdGNoKEFvKXt9fXZhciBocj0hMTtpZig2NCZJdClpZihhKXtpZigxMjgmSXQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUVYSVNUKX1lbHNlIGE9dm4u''@;'; + put 'put ''bWtub2QocHQsUHQsMCksaHI9ITA7aWYoIWEpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PRU5UKTtpZih2bi5pc0NocmRldihhLm1vZGUpJiYoSXQmPS01MTMpLDY1NTM2Jkl0JiYhdm4uaXNEaXIoYS5tb2RlKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9URElSKTtpZigh''@;'; + put 'put ''aHIpe3ZhciBQaT12bi5tYXlPcGVuKGEsSXQpO2lmKFBpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKFBpKX01MTImSXQmJnZuLnRydW5jYXRlKGEsMCksSXQmPS02NDE7dmFyIGpuPXZuLmNyZWF0ZVN0cmVhbSh7bm9kZTphLHBhdGg6dm4uZ2V0UGF0aChhKSxmbGFnczpJdCxzZWVrYWJsZToh''@;'; + put 'put ''MCxwb3NpdGlvbjowLHN0cmVhbV9vcHM6YS5zdHJlYW1fb3BzLHVuZ290dGVuOltdLGVycm9yOiExfSxmZSxydCk7am4uc3RyZWFtX29wcy5vcGVuJiZqbi5zdHJlYW1fb3BzLm9wZW4oam4pLFoubG9nUmVhZEZpbGVzJiYhKDEmSXQpJiYodm4ucmVhZEZpbGVzfHwodm4ucmVhZEZpbGVzPXt9''@;'; + put 'put ''KSxwdCBpbiB2bi5yZWFkRmlsZXN8fCh2bi5yZWFkRmlsZXNbcHRdPTEsWi5wcmludEVycigicmVhZCBmaWxlOiAiK3B0KSkpO3RyeXtpZih2bi50cmFja2luZ0RlbGVnYXRlLm9uT3BlbkZpbGUpe3ZhciBfPTA7MSE9KDIwOTcxNTUmSXQpJiYoX3w9dm4udHJhY2tpbmcub3BlbkZsYWdzLlJF''@;'; + put 'put ''QUQpLDAhPSgyMDk3MTU1Jkl0KSYmKF98PXZuLnRyYWNraW5nLm9wZW5GbGFncy5XUklURSksdm4udHJhY2tpbmdEZWxlZ2F0ZS5vbk9wZW5GaWxlKHB0LF8pfX1jYXRjaChBbyl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ29uT3BlbkZpbGUnXSgnIitwdCsiJywgZmxhZ3Mp''@;'; + put 'put ''IHRocmV3IGFuIGV4Y2VwdGlvbjogIitBby5tZXNzYWdlKX1yZXR1cm4gam59LGNsb3NlOmZ1bmN0aW9uKHB0KXtwdC5nZXRkZW50cyYmKHB0LmdldGRlbnRzPW51bGwpO3RyeXtwdC5zdHJlYW1fb3BzLmNsb3NlJiZwdC5zdHJlYW1fb3BzLmNsb3NlKHB0KX1jYXRjaChJdCl7dGhyb3cgSXR9''@;'; + put 'put ''ZmluYWxseXt2bi5jbG9zZVN0cmVhbShwdC5mZCl9fSxsbHNlZWs6ZnVuY3Rpb24ocHQsSXQsUHQpe2lmKCFwdC5zZWVrYWJsZXx8IXB0LnN0cmVhbV9vcHMubGxzZWVrKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVTUElQRSk7cmV0dXJuIHB0LnBvc2l0aW9uPXB0LnN0cmVhbV9vcHMu''@;'; + put 'put ''bGxzZWVrKHB0LEl0LFB0KSxwdC51bmdvdHRlbj1bXSxwdC5wb3NpdGlvbn0scmVhZDpmdW5jdGlvbihwdCxJdCxQdCxmZSxydCl7aWYoZmU8MHx8cnQ8MCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO2lmKDE9PSgyMDk3MTU1JnB0LmZsYWdzKSl0aHJvdyBuZXcgdm4uRXJy''@;'; + put 'put ''bm9FcnJvcih2aS5FQkFERik7aWYodm4uaXNEaXIocHQubm9kZS5tb2RlKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSVNESVIpO2lmKCFwdC5zdHJlYW1fb3BzLnJlYWQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTt2YXIgYT12b2lkIDAhPT1ydDtpZihhKXtpZigh''@;'; + put 'put ''cHQuc2Vla2FibGUpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVNQSVBFKX1lbHNlIHJ0PXB0LnBvc2l0aW9uO3ZhciBKdD1wdC5zdHJlYW1fb3BzLnJlYWQocHQsSXQsUHQsZmUscnQpO3JldHVybiBhfHwocHQucG9zaXRpb24rPUp0KSxKdH0sd3JpdGU6ZnVuY3Rpb24ocHQsSXQsUHQs''@;'; + put 'put ''ZmUscnQsYSl7aWYoZmU8MHx8cnQ8MCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO2lmKDA9PSgyMDk3MTU1JnB0LmZsYWdzKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQkFERik7aWYodm4uaXNEaXIocHQubm9kZS5tb2RlKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJv''@;'; + put 'put ''cih2aS5FSVNESVIpO2lmKCFwdC5zdHJlYW1fb3BzLndyaXRlKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7MTAyNCZwdC5mbGFncyYmdm4ubGxzZWVrKHB0LDAsMik7dmFyIEp0PXZvaWQgMCE9PXJ0O2lmKEp0KXtpZighcHQuc2Vla2FibGUpdGhyb3cgbmV3IHZuLkVycm5v''@;'; + put 'put ''RXJyb3IodmkuRVNQSVBFKX1lbHNlIHJ0PXB0LnBvc2l0aW9uO3ZhciBocj1wdC5zdHJlYW1fb3BzLndyaXRlKHB0LEl0LFB0LGZlLHJ0LGEpO0p0fHwocHQucG9zaXRpb24rPWhyKTt0cnl7cHQucGF0aCYmdm4udHJhY2tpbmdEZWxlZ2F0ZS5vbldyaXRlVG9GaWxlJiZ2bi50cmFja2luZ0Rl''@;'; + put 'put ''bGVnYXRlLm9uV3JpdGVUb0ZpbGUocHQucGF0aCl9Y2F0Y2goUGkpe2NvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWydvbldyaXRlVG9GaWxlJ10oJyIrcGF0aCsiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiK1BpLm1lc3NhZ2UpfXJldHVybiBocn0sYWxsb2NhdGU6ZnVuY3Rpb24o''@;'; + put 'put ''cHQsSXQsUHQpe2lmKEl0PDB8fFB0PD0wKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7aWYoMD09KDIwOTcxNTUmcHQuZmxhZ3MpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCQURGKTtpZighdm4uaXNGaWxlKHB0Lm5vZGUubW9kZSkmJiF2bi5pc0RpcihwdC5ub2Rl''@;'; + put 'put ''Lm1vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT0RFVik7aWYoIXB0LnN0cmVhbV9vcHMuYWxsb2NhdGUpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU9QTk9UU1VQUCk7cHQuc3RyZWFtX29wcy5hbGxvY2F0ZShwdCxJdCxQdCl9LG1tYXA6ZnVuY3Rpb24ocHQsSXQsUHQs''@;'; + put 'put ''ZmUscnQsYSxKdCl7aWYoMT09KDIwOTcxNTUmcHQuZmxhZ3MpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVBQ0NFUyk7aWYoIXB0LnN0cmVhbV9vcHMubW1hcCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9ERVYpO3JldHVybiBwdC5zdHJlYW1fb3BzLm1tYXAocHQsSXQsUHQs''@;'; + put 'put ''ZmUscnQsYSxKdCl9LG1zeW5jOmZ1bmN0aW9uKHB0LEl0LFB0LGZlLHJ0KXtyZXR1cm4gcHQmJnB0LnN0cmVhbV9vcHMubXN5bmM/cHQuc3RyZWFtX29wcy5tc3luYyhwdCxJdCxQdCxmZSxydCk6MH0sbXVubWFwOmZ1bmN0aW9uKHB0KXtyZXR1cm4gMH0saW9jdGw6ZnVuY3Rpb24ocHQsSXQs''@;'; + put 'put ''UHQpe2lmKCFwdC5zdHJlYW1fb3BzLmlvY3RsKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT1RUWSk7cmV0dXJuIHB0LnN0cmVhbV9vcHMuaW9jdGwocHQsSXQsUHQpfSxyZWFkRmlsZTpmdW5jdGlvbihwdCxJdCl7aWYoKEl0PUl0fHx7fSkuZmxhZ3M9SXQuZmxhZ3N8fCJyIixJdC5l''@;'; + put 'put ''bmNvZGluZz1JdC5lbmNvZGluZ3x8ImJpbmFyeSIsInV0ZjgiIT09SXQuZW5jb2RpbmcmJiJiaW5hcnkiIT09SXQuZW5jb2RpbmcpdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGVuY29kaW5nIHR5cGUgIicrSXQuZW5jb2RpbmcrJyInKTt2YXIgUHQsZmU9dm4ub3BlbihwdCxJdC5mbGFncyks''@;'; + put 'put ''YT12bi5zdGF0KHB0KS5zaXplLEp0PW5ldyBVaW50OEFycmF5KGEpO3JldHVybiB2bi5yZWFkKGZlLEp0LDAsYSwwKSwidXRmOCI9PT1JdC5lbmNvZGluZz9QdD1DZShKdCwwKToiYmluYXJ5Ij09PUl0LmVuY29kaW5nJiYoUHQ9SnQpLHZuLmNsb3NlKGZlKSxQdH0sd3JpdGVGaWxlOmZ1bmN0''@;'; + put 'put ''aW9uKHB0LEl0LFB0KXsoUHQ9UHR8fHt9KS5mbGFncz1QdC5mbGFnc3x8InciO3ZhciBmZT12bi5vcGVuKHB0LFB0LmZsYWdzLFB0Lm1vZGUpO2lmKCJzdHJpbmciPT10eXBlb2YgSXQpe3ZhciBydD1uZXcgVWludDhBcnJheSgkZShJdCkrMSksYT1QZShJdCxydCwwLHJ0Lmxlbmd0aCk7dm4u''@;'; + put 'put ''d3JpdGUoZmUscnQsMCxhLHZvaWQgMCxQdC5jYW5Pd24pfWVsc2V7aWYoIUFycmF5QnVmZmVyLmlzVmlldyhJdCkpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBkYXRhIHR5cGUiKTt2bi53cml0ZShmZSxJdCwwLEl0LmJ5dGVMZW5ndGgsdm9pZCAwLFB0LmNhbk93bil9dm4uY2xvc2Uo''@;'; + put 'put ''ZmUpfSxjd2Q6ZnVuY3Rpb24oKXtyZXR1cm4gdm4uY3VycmVudFBhdGh9LGNoZGlyOmZ1bmN0aW9uKHB0KXt2YXIgSXQ9dm4ubG9va3VwUGF0aChwdCx7Zm9sbG93OiEwfSk7aWYobnVsbD09PUl0Lm5vZGUpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PRU5UKTtpZighdm4uaXNEaXIo''@;'; + put 'put ''SXQubm9kZS5tb2RlKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9URElSKTt2YXIgUHQ9dm4ubm9kZVBlcm1pc3Npb25zKEl0Lm5vZGUsIngiKTtpZihQdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcihQdCk7dm4uY3VycmVudFBhdGg9SXQucGF0aH0sY3JlYXRlRGVmYXVsdERpcmVj''@;'; + put 'put ''dG9yaWVzOmZ1bmN0aW9uKCl7dm4ubWtkaXIoIi90bXAiKSx2bi5ta2RpcigiL2hvbWUiKSx2bi5ta2RpcigiL2hvbWUvd2ViX3VzZXIiKX0sY3JlYXRlRGVmYXVsdERldmljZXM6ZnVuY3Rpb24oKXt2YXIgcHQ7aWYodm4ubWtkaXIoIi9kZXYiKSx2bi5yZWdpc3RlckRldmljZSh2bi5tYWtl''@;'; + put 'put ''ZGV2KDEsMykse3JlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sd3JpdGU6ZnVuY3Rpb24oUHQsZmUscnQsYSxKdCl7cmV0dXJuIGF9fSksdm4ubWtkZXYoIi9kZXYvbnVsbCIsdm4ubWFrZWRldigxLDMpKSxPcy5yZWdpc3Rlcih2bi5tYWtlZGV2KDUsMCksT3MuZGVmYXVsdF90dHlfb3BzKSxP''@;'; + put 'put ''cy5yZWdpc3Rlcih2bi5tYWtlZGV2KDYsMCksT3MuZGVmYXVsdF90dHkxX29wcyksdm4ubWtkZXYoIi9kZXYvdHR5Iix2bi5tYWtlZGV2KDUsMCkpLHZuLm1rZGV2KCIvZGV2L3R0eTEiLHZuLm1ha2VkZXYoNiwwKSksInVuZGVmaW5lZCIhPXR5cGVvZiBjcnlwdG8pe3ZhciBJdD1uZXcgVWlu''@;'; + put 'put ''dDhBcnJheSgxKTtwdD1mdW5jdGlvbigpe3JldHVybiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKEl0KSxJdFswXX19ZWxzZSBwdD1OP2Z1bmN0aW9uKCl7cmV0dXJuIEwoNDEzNDgpLnJhbmRvbUJ5dGVzKDEpWzBdfTpmdW5jdGlvbigpe3JldHVybiAyNTYqTWF0aC5yYW5kb20oKXwwfTt2bi5j''@;'; + put 'put ''cmVhdGVEZXZpY2UoIi9kZXYiLCJyYW5kb20iLHB0KSx2bi5jcmVhdGVEZXZpY2UoIi9kZXYiLCJ1cmFuZG9tIixwdCksdm4ubWtkaXIoIi9kZXYvc2htIiksdm4ubWtkaXIoIi9kZXYvc2htL3RtcCIpfSxjcmVhdGVTcGVjaWFsRGlyZWN0b3JpZXM6ZnVuY3Rpb24oKXt2bi5ta2RpcigiL3By''@;'; + put 'put ''b2MiKSx2bi5ta2RpcigiL3Byb2Mvc2VsZiIpLHZuLm1rZGlyKCIvcHJvYy9zZWxmL2ZkIiksdm4ubW91bnQoe21vdW50OmZ1bmN0aW9uKCl7dmFyIHB0PXZuLmNyZWF0ZU5vZGUoIi9wcm9jL3NlbGYiLCJmZCIsMTY4OTUsNzMpO3JldHVybiBwdC5ub2RlX29wcz17bG9va3VwOmZ1bmN0aW9u''@;'; + put 'put ''KEl0LFB0KXt2YXIgcnQ9dm4uZ2V0U3RyZWFtKCtQdCk7aWYoIXJ0KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCQURGKTt2YXIgYT17cGFyZW50Om51bGwsbW91bnQ6e21vdW50cG9pbnQ6ImZha2UifSxub2RlX29wczp7cmVhZGxpbms6ZnVuY3Rpb24oKXtyZXR1cm4gcnQucGF0aH19''@;'; + put 'put ''fTtyZXR1cm4gYS5wYXJlbnQ9YSxhfX0scHR9fSx7fSwiL3Byb2Mvc2VsZi9mZCIpfSxjcmVhdGVTdGFuZGFyZFN0cmVhbXM6ZnVuY3Rpb24oKXtaLnN0ZGluP3ZuLmNyZWF0ZURldmljZSgiL2RldiIsInN0ZGluIixaLnN0ZGluKTp2bi5zeW1saW5rKCIvZGV2L3R0eSIsIi9kZXYvc3RkaW4i''@;'; + put 'put ''KSxaLnN0ZG91dD92bi5jcmVhdGVEZXZpY2UoIi9kZXYiLCJzdGRvdXQiLG51bGwsWi5zdGRvdXQpOnZuLnN5bWxpbmsoIi9kZXYvdHR5IiwiL2Rldi9zdGRvdXQiKSxaLnN0ZGVycj92bi5jcmVhdGVEZXZpY2UoIi9kZXYiLCJzdGRlcnIiLG51bGwsWi5zdGRlcnIpOnZuLnN5bWxpbmsoIi9k''@;'; + put 'put ''ZXYvdHR5MSIsIi9kZXYvc3RkZXJyIik7dmFyIHB0PXZuLm9wZW4oIi9kZXYvc3RkaW4iLCJyIik7TygwPT09cHQuZmQsImludmFsaWQgaGFuZGxlIGZvciBzdGRpbiAoIitwdC5mZCsiKSIpO3ZhciBJdD12bi5vcGVuKCIvZGV2L3N0ZG91dCIsInciKTtPKDE9PT1JdC5mZCwiaW52YWxpZCBo''@;'; + put 'put ''YW5kbGUgZm9yIHN0ZG91dCAoIitJdC5mZCsiKSIpO3ZhciBQdD12bi5vcGVuKCIvZGV2L3N0ZGVyciIsInciKTtPKDI9PT1QdC5mZCwiaW52YWxpZCBoYW5kbGUgZm9yIHN0ZGVyciAoIitQdC5mZCsiKSIpfSxlbnN1cmVFcnJub0Vycm9yOmZ1bmN0aW9uKCl7dm4uRXJybm9FcnJvcnx8KHZu''@;'; + put 'put ''LkVycm5vRXJyb3I9ZnVuY3Rpb24oSXQsUHQpe3RoaXMubm9kZT1QdCx0aGlzLnNldEVycm5vPWZ1bmN0aW9uKGZlKXtmb3IodmFyIHJ0IGluIHRoaXMuZXJybm89ZmUsdmkpaWYodmlbcnRdPT09ZmUpe3RoaXMuY29kZT1ydDticmVha319LHRoaXMuc2V0RXJybm8oSXQpLHRoaXMubWVzc2Fn''@;'; + put 'put ''ZT1IY1tJdF0sdGhpcy5zdGFjayYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInN0YWNrIix7dmFsdWU6KG5ldyBFcnJvcikuc3RhY2ssd3JpdGFibGU6ITB9KX0sdm4uRXJybm9FcnJvci5wcm90b3R5cGU9bmV3IEVycm9yLHZuLkVycm5vRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9y''@;'; + put 'put ''PXZuLkVycm5vRXJyb3IsW3ZpLkVOT0VOVF0uZm9yRWFjaChmdW5jdGlvbihwdCl7dm4uZ2VuZXJpY0Vycm9yc1twdF09bmV3IHZuLkVycm5vRXJyb3IocHQpLHZuLmdlbmVyaWNFcnJvcnNbcHRdLnN0YWNrPSI8Z2VuZXJpYyBlcnJvciwgbm8gc3RhY2s+In0pKX0sc3RhdGljSW5pdDpmdW5j''@;'; + put 'put ''dGlvbigpe3ZuLmVuc3VyZUVycm5vRXJyb3IoKSx2bi5uYW1lVGFibGU9bmV3IEFycmF5KDQwOTYpLHZuLm1vdW50KFgwLHt9LCIvIiksdm4uY3JlYXRlRGVmYXVsdERpcmVjdG9yaWVzKCksdm4uY3JlYXRlRGVmYXVsdERldmljZXMoKSx2bi5jcmVhdGVTcGVjaWFsRGlyZWN0b3JpZXMoKSx2''@;'; + put 'put ''bi5maWxlc3lzdGVtcz17TUVNRlM6WDAsSURCRlM6dWEsTk9ERUZTOmowLFdPUktFUkZTOkJsfX0saW5pdDpmdW5jdGlvbihwdCxJdCxQdCl7Tyghdm4uaW5pdC5pbml0aWFsaXplZCwiRlMuaW5pdCB3YXMgcHJldmlvdXNseSBjYWxsZWQuIElmIHlvdSB3YW50IHRvIGluaXRpYWxpemUgbGF0''@;'; + put 'put ''ZXIgd2l0aCBjdXN0b20gcGFyYW1ldGVycywgcmVtb3ZlIGFueSBlYXJsaWVyIGNhbGxzIChub3RlIHRoYXQgb25lIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBjb2RlKSIpLHZuLmluaXQuaW5pdGlhbGl6ZWQ9ITAsdm4uZW5zdXJlRXJybm9FcnJvcigpLFouc3Rk''@;'; + put 'put ''aW49cHR8fFouc3RkaW4sWi5zdGRvdXQ9SXR8fFouc3Rkb3V0LFouc3RkZXJyPVB0fHxaLnN0ZGVycix2bi5jcmVhdGVTdGFuZGFyZFN0cmVhbXMoKX0scXVpdDpmdW5jdGlvbigpe3ZuLmluaXQuaW5pdGlhbGl6ZWQ9ITE7dmFyIHB0PVouX2ZmbHVzaDtwdCYmcHQoMCk7Zm9yKHZhciBJdD0w''@;'; + put 'put ''O0l0PHZuLnN0cmVhbXMubGVuZ3RoO0l0Kyspe3ZhciBQdD12bi5zdHJlYW1zW0l0XTshUHR8fHZuLmNsb3NlKFB0KX19LGdldE1vZGU6ZnVuY3Rpb24ocHQsSXQpe3ZhciBQdD0wO3JldHVybiBwdCYmKFB0fD0zNjUpLEl0JiYoUHR8PTE0NiksUHR9LGpvaW5QYXRoOmZ1bmN0aW9uKHB0LEl0''@;'; + put 'put ''KXt2YXIgUHQ9VTAuam9pbi5hcHBseShudWxsLHB0KTtyZXR1cm4gSXQmJiIvIj09UHRbMF0mJihQdD1QdC5zdWJzdHIoMSkpLFB0fSxhYnNvbHV0ZVBhdGg6ZnVuY3Rpb24ocHQsSXQpe3JldHVybiBVMC5yZXNvbHZlKEl0LHB0KX0sc3RhbmRhcmRpemVQYXRoOmZ1bmN0aW9uKHB0KXtyZXR1''@;'; + put 'put ''cm4gVTAubm9ybWFsaXplKHB0KX0sZmluZE9iamVjdDpmdW5jdGlvbihwdCxJdCl7dmFyIFB0PXZuLmFuYWx5emVQYXRoKHB0LEl0KTtyZXR1cm4gUHQuZXhpc3RzP1B0Lm9iamVjdDooYjAoUHQuZXJyb3IpLG51bGwpfSxhbmFseXplUGF0aDpmdW5jdGlvbihwdCxJdCl7dHJ5e3B0PShQdD12''@;'; + put 'put ''bi5sb29rdXBQYXRoKHB0LHtmb2xsb3c6IUl0fSkpLnBhdGh9Y2F0Y2gocnQpe312YXIgZmU9e2lzUm9vdDohMSxleGlzdHM6ITEsZXJyb3I6MCxuYW1lOm51bGwscGF0aDpudWxsLG9iamVjdDpudWxsLHBhcmVudEV4aXN0czohMSxwYXJlbnRQYXRoOm51bGwscGFyZW50T2JqZWN0Om51bGx9''@;'; + put 'put ''O3RyeXt2YXIgUHQ9dm4ubG9va3VwUGF0aChwdCx7cGFyZW50OiEwfSk7ZmUucGFyZW50RXhpc3RzPSEwLGZlLnBhcmVudFBhdGg9UHQucGF0aCxmZS5wYXJlbnRPYmplY3Q9UHQubm9kZSxmZS5uYW1lPVUwLmJhc2VuYW1lKHB0KSxQdD12bi5sb29rdXBQYXRoKHB0LHtmb2xsb3c6IUl0fSks''@;'; + put 'put ''ZmUuZXhpc3RzPSEwLGZlLnBhdGg9UHQucGF0aCxmZS5vYmplY3Q9UHQubm9kZSxmZS5uYW1lPVB0Lm5vZGUubmFtZSxmZS5pc1Jvb3Q9Ii8iPT09UHQucGF0aH1jYXRjaChydCl7ZmUuZXJyb3I9cnQuZXJybm99cmV0dXJuIGZlfSxjcmVhdGVGb2xkZXI6ZnVuY3Rpb24ocHQsSXQsUHQsZmUp''@;'; + put 'put ''e3ZhciBydD1VMC5qb2luMigic3RyaW5nIj09dHlwZW9mIHB0P3B0OnZuLmdldFBhdGgocHQpLEl0KSxhPXZuLmdldE1vZGUoUHQsZmUpO3JldHVybiB2bi5ta2RpcihydCxhKX0sY3JlYXRlUGF0aDpmdW5jdGlvbihwdCxJdCxQdCxmZSl7cHQ9InN0cmluZyI9PXR5cGVvZiBwdD9wdDp2bi5n''@;'; + put 'put ''ZXRQYXRoKHB0KTtmb3IodmFyIHJ0PUl0LnNwbGl0KCIvIikucmV2ZXJzZSgpO3J0Lmxlbmd0aDspe3ZhciBhPXJ0LnBvcCgpO2lmKGEpe3ZhciBKdD1VMC5qb2luMihwdCxhKTt0cnl7dm4ubWtkaXIoSnQpfWNhdGNoKGhyKXt9cHQ9SnR9fXJldHVybiBKdH0sY3JlYXRlRmlsZTpmdW5jdGlv''@;'; + put 'put ''bihwdCxJdCxQdCxmZSxydCl7dmFyIGE9VTAuam9pbjIoInN0cmluZyI9PXR5cGVvZiBwdD9wdDp2bi5nZXRQYXRoKHB0KSxJdCksSnQ9dm4uZ2V0TW9kZShmZSxydCk7cmV0dXJuIHZuLmNyZWF0ZShhLEp0KX0sY3JlYXRlRGF0YUZpbGU6ZnVuY3Rpb24ocHQsSXQsUHQsZmUscnQsYSl7dmFy''@;'; + put 'put ''IEp0PUl0P1UwLmpvaW4yKCJzdHJpbmciPT10eXBlb2YgcHQ/cHQ6dm4uZ2V0UGF0aChwdCksSXQpOnB0LGhyPXZuLmdldE1vZGUoZmUscnQpLFBpPXZuLmNyZWF0ZShKdCxocik7aWYoUHQpe2lmKCJzdHJpbmciPT10eXBlb2YgUHQpe2Zvcih2YXIgam49bmV3IEFycmF5KFB0Lmxlbmd0aCks''@;'; + put 'put ''Xz0wLEFvPVB0Lmxlbmd0aDtfPEFvOysrXylqbltfXT1QdC5jaGFyQ29kZUF0KF8pO1B0PWpufXZuLmNobW9kKFBpLDE0Nnxocik7dmFyIFNpPXZuLm9wZW4oUGksInciKTt2bi53cml0ZShTaSxQdCwwLFB0Lmxlbmd0aCwwLGEpLHZuLmNsb3NlKFNpKSx2bi5jaG1vZChQaSxocil9cmV0dXJu''@;'; + put 'put ''IFBpfSxjcmVhdGVEZXZpY2U6ZnVuY3Rpb24ocHQsSXQsUHQsZmUpe3ZhciBydD1VMC5qb2luMigic3RyaW5nIj09dHlwZW9mIHB0P3B0OnZuLmdldFBhdGgocHQpLEl0KSxhPXZuLmdldE1vZGUoISFQdCwhIWZlKTt2bi5jcmVhdGVEZXZpY2UubWFqb3J8fCh2bi5jcmVhdGVEZXZpY2UubWFq''@;'; + put 'put ''b3I9NjQpO3ZhciBKdD12bi5tYWtlZGV2KHZuLmNyZWF0ZURldmljZS5tYWpvcisrLDApO3JldHVybiB2bi5yZWdpc3RlckRldmljZShKdCx7b3BlbjpmdW5jdGlvbihocil7aHIuc2Vla2FibGU9ITF9LGNsb3NlOmZ1bmN0aW9uKGhyKXtmZSYmZmUuYnVmZmVyJiZmZS5idWZmZXIubGVuZ3Ro''@;'; + put 'put ''JiZmZSgxMCl9LHJlYWQ6ZnVuY3Rpb24oaHIsUGksam4sXyxBbyl7Zm9yKHZhciBTaT0wLCRvPTA7JG88XzskbysrKXt2YXIgYWU7dHJ5e2FlPVB0KCl9Y2F0Y2goVjEpe3Rocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTyl9aWYodm9pZCAwPT09YWUmJjA9PT1TaSl0aHJvdyBuZXcgdm4u''@;'; + put 'put ''RXJybm9FcnJvcih2aS5FQUdBSU4pO2lmKG51bGw9PWFlKWJyZWFrO1NpKyssUGlbam4rJG9dPWFlfXJldHVybiBTaSYmKGhyLm5vZGUudGltZXN0YW1wPURhdGUubm93KCkpLFNpfSx3cml0ZTpmdW5jdGlvbihocixQaSxqbixfLEFvKXtmb3IodmFyIFNpPTA7U2k8XztTaSsrKXRyeXtmZShQ''@;'; + put 'put ''aVtqbitTaV0pfWNhdGNoKCRvKXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU8pfXJldHVybiBfJiYoaHIubm9kZS50aW1lc3RhbXA9RGF0ZS5ub3coKSksU2l9fSksdm4ubWtkZXYocnQsYSxKdCl9LGNyZWF0ZUxpbms6ZnVuY3Rpb24ocHQsSXQsUHQsZmUscnQpe3ZhciBhPVUwLmpv''@;'; + put 'put ''aW4yKCJzdHJpbmciPT10eXBlb2YgcHQ/cHQ6dm4uZ2V0UGF0aChwdCksSXQpO3JldHVybiB2bi5zeW1saW5rKFB0LGEpfSxmb3JjZUxvYWRGaWxlOmZ1bmN0aW9uKHB0KXtpZihwdC5pc0RldmljZXx8cHQuaXNGb2xkZXJ8fHB0Lmxpbmt8fHB0LmNvbnRlbnRzKXJldHVybiEwO3ZhciBJdD0h''@;'; + put 'put ''MDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0KXRocm93IG5ldyBFcnJvcigiTGF6eSBsb2FkaW5nIHNob3VsZCBoYXZlIGJlZW4gcGVyZm9ybWVkIChjb250ZW50cyBzZXQpIGluIGNyZWF0ZUxhenlGaWxlLCBidXQgaXQgd2FzIG5vdC4gTGF6eSBsb2FkaW5nIG9ubHkg''@;'; + put 'put ''d29ya3MgaW4gd2ViIHdvcmtlcnMuIFVzZSAtLWVtYmVkLWZpbGUgb3IgLS1wcmVsb2FkLWZpbGUgaW4gZW1jYyBvbiB0aGUgbWFpbiB0aHJlYWQuIik7aWYoIVoucmVhZCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBsb2FkIHdpdGhvdXQgcmVhZCgpIG9yIFhNTEh0dHBSZXF1ZXN0LiIpO3Ry''@;'; + put 'put ''eXtwdC5jb250ZW50cz1zbyhaLnJlYWQocHQudXJsKSwhMCkscHQudXNlZEJ5dGVzPXB0LmNvbnRlbnRzLmxlbmd0aH1jYXRjaChQdCl7SXQ9ITF9cmV0dXJuIEl0fHxiMCh2aS5FSU8pLEl0fSxjcmVhdGVMYXp5RmlsZTpmdW5jdGlvbihwdCxJdCxQdCxmZSxydCl7ZnVuY3Rpb24gYSgpe3Ro''@;'; + put 'put ''aXMubGVuZ3RoS25vd249ITEsdGhpcy5jaHVua3M9W119aWYoYS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKFNpKXtpZighKFNpPnRoaXMubGVuZ3RoLTF8fFNpPDApKXt2YXIgJG89U2kldGhpcy5jaHVua1NpemU7cmV0dXJuIHRoaXMuZ2V0dGVyKFNpL3RoaXMuY2h1bmtTaXplfDApWyRvXX19''@;'; + put 'put ''LGEucHJvdG90eXBlLnNldERhdGFHZXR0ZXI9ZnVuY3Rpb24oU2kpe3RoaXMuZ2V0dGVyPVNpfSxhLnByb3RvdHlwZS5jYWNoZUxlbmd0aD1mdW5jdGlvbigpe3ZhciBTaT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoU2kub3BlbigiSEVBRCIsUHQsITEpLFNpLnNlbmQobnVsbCksIShTaS5zdGF0''@;'; + put 'put ''dXM+PTIwMCYmU2kuc3RhdHVzPDMwMHx8MzA0PT09U2kuc3RhdHVzKSl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQgIitQdCsiLiBTdGF0dXM6ICIrU2kuc3RhdHVzKTt2YXIgYWUsJG89TnVtYmVyKFNpLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LWxlbmd0aCIpKSxWMT0oYWU9''@;'; + put 'put ''U2kuZ2V0UmVzcG9uc2VIZWFkZXIoIkFjY2VwdC1SYW5nZXMiKSkmJiJieXRlcyI9PT1hZSxscz0oYWU9U2kuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtRW5jb2RpbmciKSkmJiJnemlwIj09PWFlLE1uPTEwNDg1NzY7VjF8fChNbj0kbyk7dmFyIGkyPXRoaXM7aTIuc2V0RGF0YUdldHRl''@;'; + put 'put ''cihmdW5jdGlvbihvMil7dmFyIGpjPW8yKk1uLEFzPShvMisxKSpNbi0xO2lmKEFzPU1hdGgubWluKEFzLCRvLTEpLHZvaWQgMD09PWkyLmNodW5rc1tvMl0mJihpMi5jaHVua3NbbzJdPWZ1bmN0aW9uKG8yLGpjKXtpZihvMj5qYyl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcmFuZ2UgKCIr''@;'; + put 'put ''bzIrIiwgIitqYysiKSBvciBubyBieXRlcyByZXF1ZXN0ZWQhIik7aWYoamM+JG8tMSl0aHJvdyBuZXcgRXJyb3IoIm9ubHkgIiskbysiIGJ5dGVzIGF2YWlsYWJsZSEgcHJvZ3JhbW1lciBlcnJvciEiKTt2YXIgQXM9bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKEFzLm9wZW4oIkdFVCIsUHQsITEp''@;'; + put 'put ''LCRvIT09TW4mJkFzLnNldFJlcXVlc3RIZWFkZXIoIlJhbmdlIiwiYnl0ZXM9IitvMisiLSIramMpLCJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSYmKEFzLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiKSxBcy5vdmVycmlkZU1pbWVUeXBlJiZBcy5vdmVycmlkZU1pbWVUeXBlKCJ0''@;'; + put 'put ''ZXh0L3BsYWluOyBjaGFyc2V0PXgtdXNlci1kZWZpbmVkIiksQXMuc2VuZChudWxsKSwhKEFzLnN0YXR1cz49MjAwJiZBcy5zdGF0dXM8MzAwfHwzMDQ9PT1Bcy5zdGF0dXMpKXRocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgbG9hZCAiK1B0KyIuIFN0YXR1czogIitBcy5zdGF0dXMpO3JldHVy''@;'; + put 'put ''biB2b2lkIDAhPT1Bcy5yZXNwb25zZT9uZXcgVWludDhBcnJheShBcy5yZXNwb25zZXx8W10pOnNvKEFzLnJlc3BvbnNlVGV4dHx8IiIsITApfShqYyxBcykpLHZvaWQgMD09PWkyLmNodW5rc1tvMl0pdGhyb3cgbmV3IEVycm9yKCJkb1hIUiBmYWlsZWQhIik7cmV0dXJuIGkyLmNodW5rc1tv''@;'; + put 'put ''Ml19KSwobHN8fCEkbykmJihNbj0kbz0xLCRvPXRoaXMuZ2V0dGVyKDApLmxlbmd0aCxNbj0kbyxjb25zb2xlLmxvZygiTGF6eUZpbGVzIG9uIGd6aXAgZm9yY2VzIGRvd25sb2FkIG9mIHRoZSB3aG9sZSBmaWxlIHdoZW4gbGVuZ3RoIGlzIGFjY2Vzc2VkIikpLHRoaXMuX2xlbmd0aD0kbyx0''@;'; + put 'put ''aGlzLl9jaHVua1NpemU9TW4sdGhpcy5sZW5ndGhLbm93bj0hMH0sInVuZGVmaW5lZCIhPXR5cGVvZiBYTUxIdHRwUmVxdWVzdCl7aWYoIVcpdGhyb3ciQ2Fubm90IGRvIHN5bmNocm9ub3VzIGJpbmFyeSBYSFJzIG91dHNpZGUgd2Vid29ya2VycyBpbiBtb2Rlcm4gYnJvd3NlcnMuIFVzZSAt''@;'; + put 'put ''LWVtYmVkLWZpbGUgb3IgLS1wcmVsb2FkLWZpbGUgaW4gZW1jYyI7dmFyIEp0PW5ldyBhO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEp0LHtsZW5ndGg6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aEtub3dufHx0aGlzLmNhY2hlTGVuZ3RoKCksdGhpcy5fbGVuZ3RofX0sY2h1''@;'; + put 'put ''bmtTaXplOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGhLbm93bnx8dGhpcy5jYWNoZUxlbmd0aCgpLHRoaXMuX2NodW5rU2l6ZX19fSk7dmFyIGhyPXtpc0RldmljZTohMSxjb250ZW50czpKdH19ZWxzZSBocj17aXNEZXZpY2U6ITEsdXJsOlB0fTt2YXIgUGk9dm4uY3JlYXRl''@;'; + put 'put ''RmlsZShwdCxJdCxocixmZSxydCk7aHIuY29udGVudHM/UGkuY29udGVudHM9aHIuY29udGVudHM6aHIudXJsJiYoUGkuY29udGVudHM9bnVsbCxQaS51cmw9aHIudXJsKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhQaSx7dXNlZEJ5dGVzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5j''@;'; + put 'put ''b250ZW50cy5sZW5ndGh9fX0pO3ZhciBqbj17fTtyZXR1cm4gT2JqZWN0LmtleXMoUGkuc3RyZWFtX29wcykuZm9yRWFjaChmdW5jdGlvbihBbyl7dmFyIFNpPVBpLnN0cmVhbV9vcHNbQW9dO2puW0FvXT1mdW5jdGlvbigpe2lmKCF2bi5mb3JjZUxvYWRGaWxlKFBpKSl0aHJvdyBuZXcgdm4u''@;'; + put 'put ''RXJybm9FcnJvcih2aS5FSU8pO3JldHVybiBTaS5hcHBseShudWxsLGFyZ3VtZW50cyl9fSksam4ucmVhZD1mdW5jdGlvbihTaSwkbyxhZSxWMSxscyl7aWYoIXZuLmZvcmNlTG9hZEZpbGUoUGkpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTyk7dmFyIE1uPVNpLm5vZGUuY29udGVu''@;'; + put 'put ''dHM7aWYobHM+PU1uLmxlbmd0aClyZXR1cm4gMDt2YXIgeG49TWF0aC5taW4oTW4ubGVuZ3RoLWxzLFYxKTtpZihPKHhuPj0wKSxNbi5zbGljZSlmb3IodmFyIGkyPTA7aTI8eG47aTIrKykkb1thZStpMl09TW5bbHMraTJdO2Vsc2UgZm9yKGkyPTA7aTI8eG47aTIrKykkb1thZStpMl09TW4u''@;'; + put 'put ''Z2V0KGxzK2kyKTtyZXR1cm4geG59LFBpLnN0cmVhbV9vcHM9am4sUGl9LGNyZWF0ZVByZWxvYWRlZEZpbGU6ZnVuY3Rpb24ocHQsSXQsUHQsZmUscnQsYSxKdCxocixQaSxqbil7QnJvd3Nlci5pbml0KCk7dmFyIF89SXQ/VTAucmVzb2x2ZShVMC5qb2luMihwdCxJdCkpOnB0O2Z1bmN0aW9u''@;'; + put 'put ''IFNpKCRvKXtmdW5jdGlvbiBhZShscyl7am4mJmpuKCksaHJ8fHZuLmNyZWF0ZURhdGFGaWxlKHB0LEl0LGxzLGZlLHJ0LFBpKSxhJiZhKCksVzAoKX12YXIgVjE9ITE7Wi5wcmVsb2FkUGx1Z2lucy5mb3JFYWNoKGZ1bmN0aW9uKGxzKXtWMXx8bHMuY2FuSGFuZGxlKF8pJiYobHMuaGFuZGxl''@;'; + put 'put ''KCRvLF8sYWUsZnVuY3Rpb24oKXtKdCYmSnQoKSxXMCgpfSksVjE9ITApfSksVjF8fGFlKCRvKX1EaSgpLCJzdHJpbmciPT10eXBlb2YgUHQ/QnJvd3Nlci5hc3luY0xvYWQoUHQsZnVuY3Rpb24oJG8pe1NpKCRvKX0sSnQpOlNpKFB0KX0saW5kZXhlZERCOmZ1bmN0aW9uKCl7cmV0dXJuIHdp''@;'; + put 'put ''bmRvdy5pbmRleGVkREJ8fHdpbmRvdy5tb3pJbmRleGVkREJ8fHdpbmRvdy53ZWJraXRJbmRleGVkREJ8fHdpbmRvdy5tc0luZGV4ZWREQn0sREJfTkFNRTpmdW5jdGlvbigpe3JldHVybiJFTV9GU18iK3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0sREJfVkVSU0lPTjoyMCxEQl9TVE9SRV9O''@;'; + put 'put ''QU1FOiJGSUxFX0RBVEEiLHNhdmVGaWxlc1RvREI6ZnVuY3Rpb24ocHQsSXQsUHQpe0l0PUl0fHxmdW5jdGlvbigpe30sUHQ9UHR8fGZ1bmN0aW9uKCl7fTt2YXIgZmU9dm4uaW5kZXhlZERCKCk7dHJ5e3ZhciBydD1mZS5vcGVuKHZuLkRCX05BTUUoKSx2bi5EQl9WRVJTSU9OKX1jYXRjaChh''@;'; + put 'put ''KXtyZXR1cm4gUHQoYSl9cnQub251cGdyYWRlbmVlZGVkPWZ1bmN0aW9uKCl7Y29uc29sZS5sb2coImNyZWF0aW5nIGRiIikscnQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKHZuLkRCX1NUT1JFX05BTUUpfSxydC5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXt2YXIgaHI9cnQucmVzdWx0LnRyYW5z''@;'; + put 'put ''YWN0aW9uKFt2bi5EQl9TVE9SRV9OQU1FXSwicmVhZHdyaXRlIiksUGk9aHIub2JqZWN0U3RvcmUodm4uREJfU1RPUkVfTkFNRSksam49MCxfPTAsQW89cHQubGVuZ3RoO2Z1bmN0aW9uIFNpKCl7MD09Xz9JdCgpOlB0KCl9cHQuZm9yRWFjaChmdW5jdGlvbigkbyl7dmFyIGFlPVBpLnB1dCh2''@;'; + put 'put ''bi5hbmFseXplUGF0aCgkbykub2JqZWN0LmNvbnRlbnRzLCRvKTthZS5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXsrK2puK189PUFvJiZTaSgpfSxhZS5vbmVycm9yPWZ1bmN0aW9uKCl7XysrLGpuK189PUFvJiZTaSgpfX0pLGhyLm9uZXJyb3I9UHR9LHJ0Lm9uZXJyb3I9UHR9LGxvYWRGaWxlc0Zy''@;'; + put 'put ''b21EQjpmdW5jdGlvbihwdCxJdCxQdCl7SXQ9SXR8fGZ1bmN0aW9uKCl7fSxQdD1QdHx8ZnVuY3Rpb24oKXt9O3ZhciBmZT12bi5pbmRleGVkREIoKTt0cnl7dmFyIHJ0PWZlLm9wZW4odm4uREJfTkFNRSgpLHZuLkRCX1ZFUlNJT04pfWNhdGNoKGEpe3JldHVybiBQdChhKX1ydC5vbnVwZ3Jh''@;'; + put 'put ''ZGVuZWVkZWQ9UHQscnQub25zdWNjZXNzPWZ1bmN0aW9uKCl7dmFyIEp0PXJ0LnJlc3VsdDt0cnl7dmFyIGhyPUp0LnRyYW5zYWN0aW9uKFt2bi5EQl9TVE9SRV9OQU1FXSwicmVhZG9ubHkiKX1jYXRjaCgkbyl7cmV0dXJuIHZvaWQgUHQoJG8pfXZhciBQaT1oci5vYmplY3RTdG9yZSh2bi5E''@;'; + put 'put ''Ql9TVE9SRV9OQU1FKSxqbj0wLF89MCxBbz1wdC5sZW5ndGg7ZnVuY3Rpb24gU2koKXswPT1fP0l0KCk6UHQoKX1wdC5mb3JFYWNoKGZ1bmN0aW9uKCRvKXt2YXIgYWU9UGkuZ2V0KCRvKTthZS5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXt2bi5hbmFseXplUGF0aCgkbykuZXhpc3RzJiZ2bi51bmxp''@;'; + put 'put ''bmsoJG8pLHZuLmNyZWF0ZURhdGFGaWxlKFUwLmRpcm5hbWUoJG8pLFUwLmJhc2VuYW1lKCRvKSxhZS5yZXN1bHQsITAsITAsITApLCsram4rXz09QW8mJlNpKCl9LGFlLm9uZXJyb3I9ZnVuY3Rpb24oKXtfKyssam4rXz09QW8mJlNpKCl9fSksaHIub25lcnJvcj1QdH0scnQub25lcnJvcj1Q''@;'; + put 'put ''dH19LF8wPXtERUZBVUxUX1BPTExNQVNLOjUsbWFwcGluZ3M6e30sdW1hc2s6NTExLGNhbGN1bGF0ZUF0OmZ1bmN0aW9uKHB0LEl0KXtpZigiLyIhPT1JdFswXSl7dmFyIFB0O2lmKC0xMDA9PT1wdClQdD12bi5jd2QoKTtlbHNle3ZhciBmZT12bi5nZXRTdHJlYW0ocHQpO2lmKCFmZSl0aHJv''@;'; + put 'put ''dyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQkFERik7UHQ9ZmUucGF0aH1JdD1VMC5qb2luMihQdCxJdCl9cmV0dXJuIEl0fSxkb1N0YXQ6ZnVuY3Rpb24ocHQsSXQsUHQpe3RyeXt2YXIgZmU9cHQoSXQpfWNhdGNoKHJ0KXtpZihydCYmcnQubm9kZSYmVTAubm9ybWFsaXplKEl0KSE9PVUwLm5v''@;'; + put 'put ''cm1hbGl6ZSh2bi5nZXRQYXRoKHJ0Lm5vZGUpKSlyZXR1cm4tdmkuRU5PVERJUjt0aHJvdyBydH1yZXR1cm4gTHRbUHQ+PjJdPWZlLmRldixMdFtQdCs0Pj4yXT0wLEx0W1B0Kzg+PjJdPWZlLmlubyxMdFtQdCsxMj4+Ml09ZmUubW9kZSxMdFtQdCsxNj4+Ml09ZmUubmxpbmssTHRbUHQrMjA+''@;'; + put 'put ''PjJdPWZlLnVpZCxMdFtQdCsyND4+Ml09ZmUuZ2lkLEx0W1B0KzI4Pj4yXT1mZS5yZGV2LEx0W1B0KzMyPj4yXT0wLEx0W1B0KzM2Pj4yXT1mZS5zaXplLEx0W1B0KzQwPj4yXT00MDk2LEx0W1B0KzQ0Pj4yXT1mZS5ibG9ja3MsTHRbUHQrNDg+PjJdPWZlLmF0aW1lLmdldFRpbWUoKS8xZTN8''@;'; + put 'put ''MCxMdFtQdCs1Mj4+Ml09MCxMdFtQdCs1Nj4+Ml09ZmUubXRpbWUuZ2V0VGltZSgpLzFlM3wwLEx0W1B0KzYwPj4yXT0wLEx0W1B0KzY0Pj4yXT1mZS5jdGltZS5nZXRUaW1lKCkvMWUzfDAsTHRbUHQrNjg+PjJdPTAsTHRbUHQrNzI+PjJdPWZlLmlubywwfSxkb01zeW5jOmZ1bmN0aW9uKHB0''@;'; + put 'put ''LEl0LFB0LGZlKXt2YXIgcnQ9bmV3IFVpbnQ4QXJyYXkodHQuc3ViYXJyYXkocHQscHQrUHQpKTt2bi5tc3luYyhJdCxydCwwLFB0LGZlKX0sZG9Na2RpcjpmdW5jdGlvbihwdCxJdCl7cmV0dXJuIi8iPT09KHB0PVUwLm5vcm1hbGl6ZShwdCkpW3B0Lmxlbmd0aC0xXSYmKHB0PXB0LnN1YnN0''@;'; + put 'put ''cigwLHB0Lmxlbmd0aC0xKSksdm4ubWtkaXIocHQsSXQsMCksMH0sZG9Na25vZDpmdW5jdGlvbihwdCxJdCxQdCl7c3dpdGNoKDYxNDQwJkl0KXtjYXNlIDMyNzY4OmNhc2UgODE5MjpjYXNlIDI0NTc2OmNhc2UgNDA5NjpjYXNlIDQ5MTUyOmJyZWFrO2RlZmF1bHQ6cmV0dXJuLXZpLkVJTlZB''@;'; + put 'put ''TH1yZXR1cm4gdm4ubWtub2QocHQsSXQsUHQpLDB9LGRvUmVhZGxpbms6ZnVuY3Rpb24ocHQsSXQsUHQpe2lmKFB0PD0wKXJldHVybi12aS5FSU5WQUw7dmFyIGZlPXZuLnJlYWRsaW5rKHB0KSxydD1NYXRoLm1pbihQdCwkZShmZSkpLGE9X3RbSXQrcnRdO3JldHVybiBRZShmZSxJdCxQdCsx''@;'; + put 'put ''KSxfdFtJdCtydF09YSxydH0sZG9BY2Nlc3M6ZnVuY3Rpb24ocHQsSXQpe2lmKC04Jkl0KXJldHVybi12aS5FSU5WQUw7dmFyIGZlPXZuLmxvb2t1cFBhdGgocHQse2ZvbGxvdzohMH0pLHJ0PSIiO3JldHVybiA0Jkl0JiYocnQrPSJyIiksMiZJdCYmKHJ0Kz0idyIpLDEmSXQmJihydCs9Ingi''@;'; + put 'put ''KSxydCYmdm4ubm9kZVBlcm1pc3Npb25zKGZlLm5vZGUscnQpPy12aS5FQUNDRVM6MH0sZG9EdXA6ZnVuY3Rpb24ocHQsSXQsUHQpe3ZhciBmZT12bi5nZXRTdHJlYW0oUHQpO3JldHVybiBmZSYmdm4uY2xvc2UoZmUpLHZuLm9wZW4ocHQsSXQsMCxQdCxQdCkuZmR9LGRvUmVhZHY6ZnVuY3Rp''@;'; + put 'put ''b24ocHQsSXQsUHQsZmUpe2Zvcih2YXIgcnQ9MCxhPTA7YTxQdDthKyspe3ZhciBocj1MdFtJdCsoOCphKzQpPj4yXSxQaT12bi5yZWFkKHB0LF90LEx0W0l0KzgqYT4+Ml0saHIsZmUpO2lmKFBpPDApcmV0dXJuLTE7aWYocnQrPVBpLFBpPGhyKWJyZWFrfXJldHVybiBydH0sZG9Xcml0ZXY6''@;'; + put 'put ''ZnVuY3Rpb24ocHQsSXQsUHQsZmUpe2Zvcih2YXIgcnQ9MCxhPTA7YTxQdDthKyspe3ZhciBQaT12bi53cml0ZShwdCxfdCxMdFtJdCs4KmE+PjJdLEx0W0l0Kyg4KmErNCk+PjJdLGZlKTtpZihQaTwwKXJldHVybi0xO3J0Kz1QaX1yZXR1cm4gcnR9LHZhcmFyZ3M6MCxnZXQ6ZnVuY3Rpb24o''@;'; + put 'put ''cHQpe3JldHVybiBfMC52YXJhcmdzKz00LEx0W18wLnZhcmFyZ3MtND4+Ml19LGdldFN0cjpmdW5jdGlvbigpe3JldHVybiBGKF8wLmdldCgpKX0sZ2V0U3RyZWFtRnJvbUZEOmZ1bmN0aW9uKCl7dmFyIHB0PXZuLmdldFN0cmVhbShfMC5nZXQoKSk7aWYoIXB0KXRocm93IG5ldyB2bi5FcnJu''@;'; + put 'put ''b0Vycm9yKHZpLkVCQURGKTtyZXR1cm4gcHR9LGdldFNvY2tldEZyb21GRDpmdW5jdGlvbigpe3ZhciBwdD1TT0NLRlMuZ2V0U29ja2V0KF8wLmdldCgpKTtpZighcHQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJBREYpO3JldHVybiBwdH0sZ2V0U29ja2V0QWRkcmVzczpmdW5jdGlv''@;'; + put 'put ''bihwdCl7dmFyIEl0PV8wLmdldCgpLFB0PV8wLmdldCgpO2lmKHB0JiYwPT09SXQpcmV0dXJuIG51bGw7dmFyIGZlPV9fcmVhZF9zb2NrYWRkcihJdCxQdCk7aWYoZmUuZXJybm8pdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IoZmUuZXJybm8pO3JldHVybiBmZS5hZGRyPUROUy5sb29rdXBfYWRk''@;'; + put 'put ''cihmZS5hZGRyKXx8ZmUuYWRkcixmZX0sZ2V0NjQ6ZnVuY3Rpb24oKXt2YXIgcHQ9XzAuZ2V0KCksSXQ9XzAuZ2V0KCk7cmV0dXJuIE8ocHQ+PTA/MD09PUl0Oi0xPT09SXQpLHB0fSxnZXRaZXJvOmZ1bmN0aW9uKCl7TygwPT09XzAuZ2V0KCkpfX07ZnVuY3Rpb24gZ2MocHQsSXQpe18wLnZh''@;'; + put 'put ''cmFyZ3M9SXQ7dHJ5e3ZhciBQdD1fMC5nZXRTdHIoKTtyZXR1cm4gdm4udW5saW5rKFB0KSwwfWNhdGNoKGZlKXtyZXR1cm4odm9pZCAwPT09dm58fCEoZmUgaW5zdGFuY2VvZiB2bi5FcnJub0Vycm9yKSkmJmYyKGZlKSwtZmUuZXJybm99fWZ1bmN0aW9uIGRkKHB0LEl0KXtfMC52YXJhcmdz''@;'; + put 'put ''PUl0O3RyeXt2YXIgUHQ9XzAuZ2V0U3RyZWFtRnJvbUZEKCkscnQ9KF8wLmdldCgpLF8wLmdldCgpKSxhPV8wLmdldCgpLEp0PV8wLmdldCgpLGhyPXJ0O3JldHVybiB2bi5sbHNlZWsoUHQsaHIsSnQpLEx0W2E+PjJdPVB0LnBvc2l0aW9uLFB0LmdldGRlbnRzJiYwPT09aHImJjA9PT1KdCYm''@;'; + put 'put ''KFB0LmdldGRlbnRzPW51bGwpLDB9Y2F0Y2goUGkpe3JldHVybih2b2lkIDA9PT12bnx8IShQaSBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoUGkpLC1QaS5lcnJub319ZnVuY3Rpb24gQjEocHQsSXQpe18wLnZhcmFyZ3M9SXQ7dHJ5e3ZhciBQdD1fMC5nZXRTdHJlYW1Gcm9tRkQo''@;'; + put 'put ''KSxmZT1fMC5nZXQoKSxydD1fMC5nZXQoKTtyZXR1cm4gXzAuZG9SZWFkdihQdCxmZSxydCl9Y2F0Y2goYSl7cmV0dXJuKHZvaWQgMD09PXZufHwhKGEgaW5zdGFuY2VvZiB2bi5FcnJub0Vycm9yKSkmJmYyKGEpLC1hLmVycm5vfX1mdW5jdGlvbiBhdShwdCxJdCl7XzAudmFyYXJncz1JdDt0''@;'; + put 'put ''cnl7dmFyIFB0PV8wLmdldFN0cmVhbUZyb21GRCgpLGZlPV8wLmdldCgpLHJ0PV8wLmdldCgpO3JldHVybiBfMC5kb1dyaXRldihQdCxmZSxydCl9Y2F0Y2goYSl7cmV0dXJuKHZvaWQgMD09PXZufHwhKGEgaW5zdGFuY2VvZiB2bi5FcnJub0Vycm9yKSkmJmYyKGEpLC1hLmVycm5vfX1mdW5j''@;'; + put 'put ''dGlvbiBQMShwdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldCgpLGZlPV8wLmdldCgpLHJ0PV8wLmdldCgpLGE9XzAuZ2V0KCksSnQ9XzAuZ2V0KCksaHI9XzAuZ2V0KCk7aHI8PD0xMjt2YXIgUGksam49ITE7aWYoLTE9PT1KdCl7aWYoIShQaT1XZyhCdCxmZSkpKXJldHVy''@;'; + put 'put ''bi12aS5FTk9NRU07WWcoUGksMCxmZSksam49ITB9ZWxzZXt2YXIgXz12bi5nZXRTdHJlYW0oSnQpO2lmKCFfKXJldHVybi12aS5FQkFERjt2YXIgQW89dm4ubW1hcChfLHR0LFB0LGZlLGhyLHJ0LGEpO1BpPUFvLnB0cixqbj1Bby5hbGxvY2F0ZWR9cmV0dXJuIF8wLm1hcHBpbmdzW1BpXT17''@;'; + put 'put ''bWFsbG9jOlBpLGxlbjpmZSxhbGxvY2F0ZWQ6am4sZmQ6SnQsZmxhZ3M6YX0sUGl9Y2F0Y2goU2kpe3JldHVybih2b2lkIDA9PT12bnx8IShTaSBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoU2kpLC1TaS5lcnJub319ZnVuY3Rpb24gbWMocHQsSXQpe18wLnZhcmFyZ3M9SXQ7dHJ5''@;'; + put 'put ''e3ZhciBQdD1fMC5nZXRTdHIoKSxmZT1fMC5nZXQoKTtyZXR1cm4gXzAuZG9TdGF0KHZuLnN0YXQsUHQsZmUpfWNhdGNoKHJ0KXtyZXR1cm4odm9pZCAwPT09dm58fCEocnQgaW5zdGFuY2VvZiB2bi5FcnJub0Vycm9yKSkmJmYyKHJ0KSwtcnQuZXJybm99fWZ1bmN0aW9uIHgyKHB0LEl0KXtf''@;'; + put 'put ''MC52YXJhcmdzPUl0O3RyeXt2YXIgUHQ9XzAuZ2V0U3RyZWFtRnJvbUZEKCksZmU9XzAuZ2V0KCk7cmV0dXJuIF8wLmRvU3RhdCh2bi5zdGF0LFB0LnBhdGgsZmUpfWNhdGNoKHJ0KXtyZXR1cm4odm9pZCAwPT09dm58fCEocnQgaW5zdGFuY2VvZiB2bi5FcnJub0Vycm9yKSkmJmYyKHJ0KSwt''@;'; + put 'put ''cnQuZXJybm99fXZhciBQbD17cHBpZDoxLHBpZDo0MixzaWQ6NDIscGdpZDo0Mn07ZnVuY3Rpb24gZDMocHQsSXQpe18wLnZhcmFyZ3M9SXQ7dHJ5e3JldHVybiBQbC5waWR9Y2F0Y2goUHQpe3JldHVybih2b2lkIDA9PT12bnx8IShQdCBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIo''@;'; + put 'put ''UHQpLC1QdC5lcnJub319ZnVuY3Rpb24gVTIocHQsSXQpe18wLnZhcmFyZ3M9SXQ7dHJ5e3ZhciBQdD1fMC5nZXRTdHJlYW1Gcm9tRkQoKTtzd2l0Y2goXzAuZ2V0KCkpe2Nhc2UgMDpyZXR1cm4ocnQ9XzAuZ2V0KCkpPDA/LXZpLkVJTlZBTDp2bi5vcGVuKFB0LnBhdGgsUHQuZmxhZ3MsMCxy''@;'; + put 'put ''dCkuZmQ7Y2FzZSAxOmNhc2UgMjpjYXNlIDEzOmNhc2UgMTQ6Y2FzZSAxMzpjYXNlIDE0OnJldHVybiAwO2Nhc2UgMzpyZXR1cm4gUHQuZmxhZ3M7Y2FzZSA0OnZhciBydD1fMC5nZXQoKTtyZXR1cm4gUHQuZmxhZ3N8PXJ0LDA7Y2FzZSAxMjpjYXNlIDEyOnJldHVybiBydD1fMC5nZXQoKSxl''@;'; + put 'put ''dFtydCswPj4xXT0yLDA7Y2FzZSAxNjpjYXNlIDg6ZGVmYXVsdDpyZXR1cm4tdmkuRUlOVkFMO2Nhc2UgOTpyZXR1cm4gYjAodmkuRUlOVkFMKSwtMX19Y2F0Y2goaHIpe3JldHVybih2b2lkIDA9PT12bnx8IShociBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoaHIpLC1oci5lcnJu''@;'; + put 'put ''b319ZnVuY3Rpb24gczEocHQsSXQpe18wLnZhcmFyZ3M9SXQ7dHJ5e3ZhciBQdD1fMC5nZXRTdHJlYW1Gcm9tRkQoKSxmZT1fMC5nZXQoKSxydD1fMC5nZXQoKTtyZXR1cm4gdm4ucmVhZChQdCxfdCxmZSxydCl9Y2F0Y2goYSl7cmV0dXJuKHZvaWQgMD09PXZufHwhKGEgaW5zdGFuY2VvZiB2''@;'; + put 'put ''bi5FcnJub0Vycm9yKSkmJmYyKGEpLC1hLmVycm5vfX1mdW5jdGlvbiBaMChwdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cigpLGZlPV8wLmdldCgpO3JldHVybiBfMC5kb0FjY2VzcyhQdCxmZSl9Y2F0Y2gocnQpe3JldHVybih2b2lkIDA9PT12bnx8IShydCBpbnN0''@;'; + put 'put ''YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIocnQpLC1ydC5lcnJub319ZnVuY3Rpb24gZmkocHQsSXQpe18wLnZhcmFyZ3M9SXQ7dHJ5e3ZhciBQdD1fMC5nZXRTdHIoKSxmZT1fMC5nZXQoKSxydD1fMC5nZXQoKTtyZXR1cm4gdm4ub3BlbihQdCxmZSxydCkuZmR9Y2F0Y2goSnQpe3JldHVy''@;'; + put 'put ''bih2b2lkIDA9PT12bnx8IShKdCBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoSnQpLC1KdC5lcnJub319ZnVuY3Rpb24gUjAocHQsSXQpe18wLnZhcmFyZ3M9SXQ7dHJ5e3ZhciBQdD1fMC5nZXRTdHJlYW1Gcm9tRkQoKSxmZT1fMC5nZXQoKTtzd2l0Y2goZmUpe2Nhc2UgMjE1MDk6''@;'; + put 'put ''Y2FzZSAyMTUwNTpjYXNlIDIxNTEwOmNhc2UgMjE1MTE6Y2FzZSAyMTUxMjpjYXNlIDIxNTA2OmNhc2UgMjE1MDc6Y2FzZSAyMTUwODpjYXNlIDIxNTIzOnJldHVybiBQdC50dHk/MDotdmkuRU5PVFRZO2Nhc2UgMjE1MTk6aWYoIVB0LnR0eSlyZXR1cm4tdmkuRU5PVFRZO3ZhciBydD1fMC5n''@;'; + put 'put ''ZXQoKTtyZXR1cm4gTHRbcnQ+PjJdPTAsMDtjYXNlIDIxNTIwOnJldHVybiBQdC50dHk/LXZpLkVJTlZBTDotdmkuRU5PVFRZO2Nhc2UgMjE1MzE6cmV0dXJuIHJ0PV8wLmdldCgpLHZuLmlvY3RsKFB0LGZlLHJ0KTtkZWZhdWx0OmYyKCJiYWQgaW9jdGwgc3lzY2FsbCAiK2ZlKX19Y2F0Y2go''@;'; + put 'put ''YSl7cmV0dXJuKHZvaWQgMD09PXZufHwhKGEgaW5zdGFuY2VvZiB2bi5FcnJub0Vycm9yKSkmJmYyKGEpLC1hLmVycm5vfX1mdW5jdGlvbiBtbyhwdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cmVhbUZyb21GRCgpO3JldHVybiB2bi5jbG9zZShQdCksMH1jYXRjaChm''@;'; + put 'put ''ZSl7cmV0dXJuKHZvaWQgMD09PXZufHwhKGZlIGluc3RhbmNlb2Ygdm4uRXJybm9FcnJvcikpJiZmMihmZSksLWZlLmVycm5vfX1mdW5jdGlvbiBycyhwdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldCgpLGZlPV8wLmdldCgpLHJ0PV8wLm1hcHBpbmdzW1B0XTtpZighcnQp''@;'; + put 'put ''cmV0dXJuIDA7aWYoZmU9PT1ydC5sZW4pe3ZhciBhPXZuLmdldFN0cmVhbShydC5mZCk7XzAuZG9Nc3luYyhQdCxhLGZlLHJ0LmZsYWdzKSx2bi5tdW5tYXAoYSksXzAubWFwcGluZ3NbUHRdPW51bGwscnQuYWxsb2NhdGVkJiYkdyhydC5tYWxsb2MpfXJldHVybiAwfWNhdGNoKEp0KXtyZXR1''@;'; + put 'put ''cm4odm9pZCAwPT09dm58fCEoSnQgaW5zdGFuY2VvZiB2bi5FcnJub0Vycm9yKSkmJmYyKEp0KSwtSnQuZXJybm99fXZhciBocz1TKFs4LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSwwLDEsMCwyLDAsMSwwLDMsMCwxLDAs''@;'; + put 'put ''MiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDYsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwx''@;'; + put 'put ''LDAsNywwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDUsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw2LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQs''@;'; + put 'put ''MCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwXSwiaTgiLFYpO2Z1bmN0aW9uIG4yKCl7fWZ1bmN0aW9uIFQyKHB0KXtaLmV4aXQocHQpfWZ1bmN0aW9uIFRpKHB0KXtUMihw''@;'; + put 'put ''dCl9dmFyIFJzPXl0O2Z1bmN0aW9uIE5mKHB0KXt2YXIgZmUscnQ7TmYuY2FsbGVkP2ZlPUx0WyhydD1MdFtScz4+Ml0pPj4yXTooTmYuY2FsbGVkPSEwLFlsLlVTRVI9WWwuTE9HTkFNRT0id2ViX3VzZXIiLFlsLlBBVEg9Ii8iLFlsLlBXRD0iLyIsWWwuSE9NRT0iL2hvbWUvd2ViX3VzZXIi''@;'; + put 'put ''LFlsLkxBTkc9IkMuVVRGLTgiLFlsLl89Wi50aGlzUHJvZ3JhbSxmZT1vZSgxMDI0KSxydD1vZSgyNTYpLEx0W3J0Pj4yXT1mZSxMdFtScz4+Ml09cnQpO3ZhciBhPVtdLEp0PTA7Zm9yKHZhciBociBpbiBwdCkic3RyaW5nIj09dHlwZW9mIHB0W2hyXSYmKGEucHVzaChQaT1ocisiPSIrcHRb''@;'; + put 'put ''aHJdKSxKdCs9UGkubGVuZ3RoKTtpZihKdD4xMDI0KXRocm93IG5ldyBFcnJvcigiRW52aXJvbm1lbnQgc2l6ZSBleGNlZWRlZCBUT1RBTF9FTlZfU0laRSEiKTtmb3IodmFyIF89MDtfPGEubGVuZ3RoO18rKyl7dmFyIFBpO1RyKFBpPWFbX10sZmUpLEx0W3J0KzQqXz4+Ml09ZmUsZmUrPVBp''@;'; + put 'put ''Lmxlbmd0aCsxfUx0W3J0KzQqYS5sZW5ndGg+PjJdPTB9eXQrPTE2O3ZhciBZbD17fTtmdW5jdGlvbiBOYyhwdCl7cmV0dXJuIDAhPT1wdCYmKHB0PUYocHQpLFlsLmhhc093blByb3BlcnR5KHB0KSk/KE5jLnJldCYmJHcoTmMucmV0KSxOYy5yZXQ9d3QoWWxbcHRdKSk6MH1mdW5jdGlvbiBj''@;'; + put 'put ''byhwdCl7dmFyIEl0PURhdGUubm93KCk7cmV0dXJuIEx0W3B0Pj4yXT1JdC8xZTN8MCxMdFtwdCs0Pj4yXT1JdCUxZTMqMWUzfDAsMH12YXIgQzQ9Sm4scjI9Qm4sV2k9Qm4sVXM9b3IsbXM9Z3IsRjE9SW4sS2w9SW47ZnVuY3Rpb24gX3MoKXtmMigidHJhcCEiKX1mdW5jdGlvbiBSaShwdCxJ''@;'; + put 'put ''dCl7dGhyb3cgWi5zZXRUaHJldyhwdCxJdHx8MSksImxvbmdqbXAifWZ1bmN0aW9uIEgxKHB0LEl0LFB0KXtyZXR1cm4gdHQuc2V0KHR0LnN1YmFycmF5KEl0LEl0K1B0KSxwdCkscHR9ZnVuY3Rpb24gUTIocHQsSXQsUHQpe2lmKDA9PT1wdClyZXR1cm4gYjAodmkuRUlOVkFMKSwtMTt2YXIg''@;'; + put 'put ''ZmU9RihwdCkscnQ9RihJdCk7cmV0dXJuIiI9PT1mZXx8LTEhPT1mZS5pbmRleE9mKCI9Iik/KGIwKHZpLkVJTlZBTCksLTEpOihZbC5oYXNPd25Qcm9wZXJ0eShmZSkmJiFQdHx8KFlsW2ZlXT1ydCxOZihZbCkpLDApfWZ1bmN0aW9uIEMwKHB0KXt2YXIgSXQ9RGF0ZS5ub3coKS8xZTN8MDty''@;'; + put 'put ''ZXR1cm4gcHQmJihMdFtwdD4+Ml09SXQpLEl0fWZ1bmN0aW9uIHUxKHB0KXtyZXR1cm4gMCE9PXB0JiZZZyhwdCwwLDE2KSwwfWlmKGdsPU4/ZnVuY3Rpb24oKXt2YXIgSXQ9cHJvY2Vzcy5ocnRpbWUoKTtyZXR1cm4gMWUzKkl0WzBdK0l0WzFdLzFlNn06InVuZGVmaW5lZCIhPXR5cGVvZiBk''@;'; + put 'put ''YXRlTm93P2RhdGVOb3c6Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLnBlcmZvcm1hbmNlJiYiZnVuY3Rpb24iPT10eXBlb2Ygc2VsZi5wZXJmb3JtYW5jZS5ub3c/ZnVuY3Rpb24oKXtyZXR1cm4gc2VsZi5wZXJmb3JtYW5jZS5ub3coKX06Im9iamVjdCI9PXR5cGVvZiBwZXJmb3JtYW5j''@;'; + put 'put ''ZSYmImZ1bmN0aW9uIj09dHlwZW9mIHBlcmZvcm1hbmNlLm5vdz9mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX06RGF0ZS5ub3csdm4uc3RhdGljSW5pdCgpLHF0LnVuc2hpZnQoZnVuY3Rpb24oKXshWi5ub0ZTSW5pdCYmIXZuLmluaXQuaW5pdGlhbGl6ZWQmJnZuLmluaXQo''@;'; + put 'put ''KX0pLHByLnB1c2goZnVuY3Rpb24oKXt2bi5pZ25vcmVQZXJtaXNzaW9ucz0hMX0pLG5yLnB1c2goZnVuY3Rpb24oKXt2bi5xdWl0KCl9KSxxdC51bnNoaWZ0KGZ1bmN0aW9uKCl7T3MuaW5pdCgpfSksbnIucHVzaChmdW5jdGlvbigpe09zLnNodXRkb3duKCl9KSxOKXt2YXIgbWw9TCgzNTE1''@;'; + put 'put ''OSkscDM9TCg3NTcwMSk7ajAuc3RhdGljSW5pdCgpfU5mKFlsKSxsbj1vZSg0KSxRdD1nbj1kZSh5dCkseW49ZGUoZG49UXQrZXIpLEx0W2xuPj4yXT15bixqdD0hMDt2YXIgWXU9ITE7ZnVuY3Rpb24gc28ocHQsSXQsUHQpe3ZhciBmZT1QdD4wP1B0OiRlKHB0KSsxLHJ0PW5ldyBBcnJheShm''@;'; + put 'put ''ZSksYT1QZShwdCxydCwwLHJ0Lmxlbmd0aCk7cmV0dXJuIEl0JiYocnQubGVuZ3RoPWEpLHJ0fWZ1bmN0aW9uIFlhKHB0KXtmb3IodmFyIEl0PVtdLFB0PTA7UHQ8cHQubGVuZ3RoO1B0Kyspe3ZhciBmZT1wdFtQdF07ZmU+MjU1JiYoWXUmJk8oITEsIkNoYXJhY3RlciBjb2RlICIrZmUrIiAo''@;'; + put 'put ''IitTdHJpbmcuZnJvbUNoYXJDb2RlKGZlKSsiKSAgYXQgb2Zmc2V0ICIrUHQrIiBub3QgaW4gMHgwMC0weEZGLiIpLGZlJj0yNTUpLEl0LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShmZSkpfXJldHVybiBJdC5qb2luKCIiKX12YXIgYXM9ImZ1bmN0aW9uIj09dHlwZW9mIGF0b2I/YXRvYjpm''@;'; + put 'put ''dW5jdGlvbihwdCl7dmFyIHJ0LGEsSnQsaHIsUGksam4sSXQ9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89IixQdD0iIixfPTA7cHQ9cHQucmVwbGFjZSgvW15BLVphLXowLTlcK1wvXD1dL2csIiIpO2Rve0p0PUl0Lmlu''@;'; + put 'put ''ZGV4T2YocHQuY2hhckF0KF8rKykpLHJ0PSgxNSYoaHI9SXQuaW5kZXhPZihwdC5jaGFyQXQoXysrKSkpKTw8NHwoUGk9SXQuaW5kZXhPZihwdC5jaGFyQXQoXysrKSkpPj4yLGE9KDMmUGkpPDw2fChqbj1JdC5pbmRleE9mKHB0LmNoYXJBdChfKyspKSksUHQrPVN0cmluZy5mcm9tQ2hhckNv''@;'; + put 'put ''ZGUoSnQ8PDJ8aHI+PjQpLDY0IT09UGkmJihQdCs9U3RyaW5nLmZyb21DaGFyQ29kZShydCkpLDY0IT09am4mJihQdCs9U3RyaW5nLmZyb21DaGFyQ29kZShhKSl9d2hpbGUoXzxwdC5sZW5ndGgpO3JldHVybiBQdH07ZnVuY3Rpb24gWGEocHQpe2lmKCJib29sZWFuIj09dHlwZW9mIE4mJk4p''@;'; + put 'put ''e3ZhciBJdDt0cnl7SXQ9QnVmZmVyLmZyb20ocHQsImJhc2U2NCIpfWNhdGNoKGEpe0l0PW5ldyBCdWZmZXIocHQsImJhc2U2NCIpfXJldHVybiBuZXcgVWludDhBcnJheShJdC5idWZmZXIsSXQuYnl0ZU9mZnNldCxJdC5ieXRlTGVuZ3RoKX10cnl7Zm9yKHZhciBQdD1hcyhwdCksZmU9bmV3''@;'; + put 'put ''IFVpbnQ4QXJyYXkoUHQubGVuZ3RoKSxydD0wO3J0PFB0Lmxlbmd0aDsrK3J0KWZlW3J0XT1QdC5jaGFyQ29kZUF0KHJ0KTtyZXR1cm4gZmV9Y2F0Y2goYSl7dGhyb3cgbmV3IEVycm9yKCJDb252ZXJ0aW5nIGJhc2U2NCBzdHJpbmcgdG8gYnl0ZXMgZmFpbGVkLiIpfX1mdW5jdGlvbiBVdShw''@;'; + put 'put ''dCl7aWYoY2EocHQpKXJldHVybiBYYShwdC5zbGljZShxby5sZW5ndGgpKX1mdW5jdGlvbiBBMShwdCl7dHJ5e3JldHVybiBaLmR5bkNhbGxfZChwdCl9Y2F0Y2goSXQpe2lmKCJudW1iZXIiIT10eXBlb2YgSXQmJiJsb25nam1wIiE9PUl0KXRocm93IEl0O1ouc2V0VGhyZXcoMSwwKX19ZnVu''@;'; + put 'put ''Y3Rpb24gbWgocHQsSXQsUHQsZmUpe3RyeXtyZXR1cm4gWi5keW5DYWxsX2RkZGQocHQsSXQsUHQsZmUpfWNhdGNoKHJ0KXtpZigibnVtYmVyIiE9dHlwZW9mIHJ0JiYibG9uZ2ptcCIhPT1ydCl0aHJvdyBydDtaLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIF9hKHB0LEl0KXt0cnl7cmV0dXJu''@;'; + put 'put ''IFouZHluQ2FsbF9kaShwdCxJdCl9Y2F0Y2goUHQpe2lmKCJudW1iZXIiIT10eXBlb2YgUHQmJiJsb25nam1wIiE9PVB0KXRocm93IFB0O1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24ganAocHQpe3RyeXtyZXR1cm4gWi5keW5DYWxsX2kocHQpfWNhdGNoKEl0KXtpZigibnVtYmVyIiE9dHlw''@;'; + put 'put ''ZW9mIEl0JiYibG9uZ2ptcCIhPT1JdCl0aHJvdyBJdDtaLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGs0KHB0LEl0KXt0cnl7cmV0dXJuIFouZHluQ2FsbF9paShwdCxJdCl9Y2F0Y2goUHQpe2lmKCJudW1iZXIiIT10eXBlb2YgUHQmJiJsb25nam1wIiE9PVB0KXRocm93IFB0O1ouc2V0VGhy''@;'; + put 'put ''ZXcoMSwwKX19ZnVuY3Rpb24gc2wocHQsSXQsUHQpe3RyeXtyZXR1cm4gWi5keW5DYWxsX2lpaShwdCxJdCxQdCl9Y2F0Y2goZmUpe2lmKCJudW1iZXIiIT10eXBlb2YgZmUmJiJsb25nam1wIiE9PWZlKXRocm93IGZlO1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gdWwocHQsSXQsUHQsZmUs''@;'; + put 'put ''cnQpe3RyeXtyZXR1cm4gWi5keW5DYWxsX2lpaWRkKHB0LEl0LFB0LGZlLHJ0KX1jYXRjaChhKXtpZigibnVtYmVyIiE9dHlwZW9mIGEmJiJsb25nam1wIiE9PWEpdGhyb3cgYTtaLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIFkwKHB0LEl0LFB0LGZlKXt0cnl7cmV0dXJuIFouZHluQ2FsbF9p''@;'; + put 'put ''aWlpKHB0LEl0LFB0LGZlKX1jYXRjaChydCl7aWYoIm51bWJlciIhPXR5cGVvZiBydCYmImxvbmdqbXAiIT09cnQpdGhyb3cgcnQ7Wi5zZXRUaHJldygxLDApfX1mdW5jdGlvbiB2cyhwdCxJdCxQdCxmZSxydCl7dHJ5e3JldHVybiBaLmR5bkNhbGxfaWlpaWkocHQsSXQsUHQsZmUscnQpfWNh''@;'; + put 'put ''dGNoKGEpe2lmKCJudW1iZXIiIT10eXBlb2YgYSYmImxvbmdqbXAiIT09YSl0aHJvdyBhO1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gZmEocHQsSXQsUHQsZmUscnQsYSl7dHJ5e3JldHVybiBaLmR5bkNhbGxfaWlpaWlpKHB0LEl0LFB0LGZlLHJ0LGEpfWNhdGNoKEp0KXtpZigibnVtYmVy''@;'; + put 'put ''IiE9dHlwZW9mIEp0JiYibG9uZ2ptcCIhPT1KdCl0aHJvdyBKdDtaLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIEZvKHB0LEl0LFB0LGZlLHJ0LGEsSnQpe3RyeXtyZXR1cm4gWi5keW5DYWxsX2lpaWlpaWkocHQsSXQsUHQsZmUscnQsYSxKdCl9Y2F0Y2goaHIpe2lmKCJudW1iZXIiIT10eXBl''@;'; + put 'put ''b2YgaHImJiJsb25nam1wIiE9PWhyKXRocm93IGhyO1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gcGQocHQsSXQsUHQsZmUscnQsYSxKdCxocixQaSxqbixfKXt0cnl7cmV0dXJuIFouZHluQ2FsbF9paWlpaWlpaWlpaShwdCxJdCxQdCxmZSxydCxhLEp0LGhyLFBpLGpuLF8pfWNhdGNoKEFv''@;'; + put 'put ''KXtpZigibnVtYmVyIiE9dHlwZW9mIEFvJiYibG9uZ2ptcCIhPT1Bbyl0aHJvdyBBbztaLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIHkxKHB0KXt0cnl7Wi5keW5DYWxsX3YocHQpfWNhdGNoKEl0KXtpZigibnVtYmVyIiE9dHlwZW9mIEl0JiYibG9uZ2ptcCIhPT1JdCl0aHJvdyBJdDtaLnNl''@;'; + put 'put ''dFRocmV3KDEsMCl9fWZ1bmN0aW9uIHcxKHB0LEl0KXt0cnl7Wi5keW5DYWxsX3ZpKHB0LEl0KX1jYXRjaChQdCl7aWYoIm51bWJlciIhPXR5cGVvZiBQdCYmImxvbmdqbXAiIT09UHQpdGhyb3cgUHQ7Wi5zZXRUaHJldygxLDApfX1mdW5jdGlvbiBsZihwdCxJdCxQdCl7dHJ5e1ouZHluQ2Fs''@;'; + put 'put ''bF92aWkocHQsSXQsUHQpfWNhdGNoKGZlKXtpZigibnVtYmVyIiE9dHlwZW9mIGZlJiYibG9uZ2ptcCIhPT1mZSl0aHJvdyBmZTtaLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGdkKHB0LEl0LFB0LGZlKXt0cnl7Wi5keW5DYWxsX3ZpaWkocHQsSXQsUHQsZmUpfWNhdGNoKHJ0KXtpZigibnVt''@;'; + put 'put ''YmVyIiE9dHlwZW9mIHJ0JiYibG9uZ2ptcCIhPT1ydCl0aHJvdyBydDtaLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uICRsKHB0LEl0LFB0LGZlLHJ0LGEsSnQpe3RyeXtaLmR5bkNhbGxfdmlpaWRkaShwdCxJdCxQdCxmZSxydCxhLEp0KX1jYXRjaChocil7aWYoIm51bWJlciIhPXR5cGVvZiBo''@;'; + put 'put ''ciYmImxvbmdqbXAiIT09aHIpdGhyb3cgaHI7Wi5zZXRUaHJldygxLDApfX1mdW5jdGlvbiB4dShwdCxJdCxQdCxmZSxydCl7dHJ5e1ouZHluQ2FsbF92aWlpaShwdCxJdCxQdCxmZSxydCl9Y2F0Y2goYSl7aWYoIm51bWJlciIhPXR5cGVvZiBhJiYibG9uZ2ptcCIhPT1hKXRocm93IGE7Wi5z''@;'; + put 'put ''ZXRUaHJldygxLDApfX1mdW5jdGlvbiBsdShwdCxJdCxQdCxmZSxydCxhKXt0cnl7Wi5keW5DYWxsX3ZpaWlpaShwdCxJdCxQdCxmZSxydCxhKX1jYXRjaChKdCl7aWYoIm51bWJlciIhPXR5cGVvZiBKdCYmImxvbmdqbXAiIT09SnQpdGhyb3cgSnQ7Wi5zZXRUaHJldygxLDApfX1mdW5jdGlv''@;'; + put 'put ''biBUdShwdCxJdCxQdCxmZSxydCxhLEp0KXt0cnl7Wi5keW5DYWxsX3ZpaWlpaWkocHQsSXQsUHQsZmUscnQsYSxKdCl9Y2F0Y2goaHIpe2lmKCJudW1iZXIiIT10eXBlb2YgaHImJiJsb25nam1wIiE9PWhyKXRocm93IGhyO1ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gc2YocHQsSXQsUHQs''@;'; + put 'put ''ZmUscnQsYSxKdCxocixQaSxqbil7dHJ5e1ouZHluQ2FsbF92aWlpaWlpaWlpKHB0LEl0LFB0LGZlLHJ0LGEsSnQsaHIsUGksam4pfWNhdGNoKF8pe2lmKCJudW1iZXIiIT10eXBlb2YgXyYmImxvbmdqbXAiIT09Xyl0aHJvdyBfO1ouc2V0VGhyZXcoMSwwKX19Wi5hc21HbG9iYWxBcmc9e01h''@;'; + put 'put ''dGgsSW50OEFycmF5LEludDE2QXJyYXksSW50MzJBcnJheSxVaW50OEFycmF5LFVpbnQxNkFycmF5LFVpbnQzMkFycmF5LEZsb2F0MzJBcnJheSxGbG9hdDY0QXJyYXksTmFOOk5hTixJbmZpbml0eToxLzB9LFouYXNtTGlicmFyeUFyZz17YWJvcnQ6ZjIsYXNzZXJ0Ok8sZW5sYXJnZU1lbW9y''@;'; + put 'put ''eTpibixnZXRUb3RhbE1lbW9yeTpYbixhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeTpObixpbnZva2VfZDpBMSxpbnZva2VfZGRkZDptaCxpbnZva2VfZGk6X2EsaW52b2tlX2k6anAsaW52b2tlX2lpOms0LGludm9rZV9paWk6c2wsaW52b2tlX2lpaWRkOnVsLGludm9rZV9paWlpOlkwLGludm9r''@;'; + put 'put ''ZV9paWlpaTp2cyxpbnZva2VfaWlpaWlpOmZhLGludm9rZV9paWlpaWlpOkZvLGludm9rZV9paWlpaWlpaWlpaTpwZCxpbnZva2Vfdjp5MSxpbnZva2Vfdmk6dzEsaW52b2tlX3ZpaTpsZixpbnZva2VfdmlpaTpnZCxpbnZva2VfdmlpaWRkaTokbCxpbnZva2VfdmlpaWk6eHUsaW52b2tlX3Zp''@;'; + put 'put ''aWlpaTpsdSxpbnZva2VfdmlpaWlpaTpUdSxpbnZva2VfdmlpaWlpaWlpaTpzZixfX19hc3NlcnRfZmFpbDpubCxfX19idWlsZEVudmlyb25tZW50Ok5mLF9fX2Nsb2NrX2dldHRpbWU6cmwsX19fbG9jazpiaSxfX19tYXBfZmlsZTpvdSxfX19zZXRFcnJObzpiMCxfX19zeXNjYWxsMTA6Z2Ms''@;'; + put 'put ''X19fc3lzY2FsbDE0MDpkZCxfX19zeXNjYWxsMTQ1OkIxLF9fX3N5c2NhbGwxNDY6YXUsX19fc3lzY2FsbDE5MjpQMSxfX19zeXNjYWxsMTk1Om1jLF9fX3N5c2NhbGwxOTc6eDIsX19fc3lzY2FsbDIwOmQzLF9fX3N5c2NhbGwyMjE6VTIsX19fc3lzY2FsbDM6czEsX19fc3lzY2FsbDMzOlow''@;'; + put 'put ''LF9fX3N5c2NhbGw1OmZpLF9fX3N5c2NhbGw1NDpSMCxfX19zeXNjYWxsNjptbyxfX19zeXNjYWxsOTE6cnMsX19fdW5sb2NrOm4yLF9fZXhpdDpUMixfY2xvY2tfZ2V0dGltZTpzYSxfZW1zY3JpcHRlbl9hc21fY29uc3RfaWlpOlFpLF9lbXNjcmlwdGVuX2dldF9ub3c6Z2wsX2Vtc2NyaXB0''@;'; + put 'put ''ZW5fZ2V0X25vd19pc19tb25vdG9uaWM6QWksX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZzpIMSxfZXhpdDpUaSxfZ2V0ZW52Ok5jLF9nZXR0aW1lb2ZkYXk6Y28sX2xsdm1fY2VpbF9mNjQ6QzQsX2xsdm1fZmFic19mMzI6cjIsX2xsdm1fZmFic19mNjQ6V2ksX2xsdm1fZmxvb3JfZjY0OlVzLF9s''@;'; + put 'put ''bHZtX3Bvd19mNjQ6bXMsX2xsdm1fc3FydF9mMzI6RjEsX2xsdm1fc3FydF9mNjQ6S2wsX2xsdm1fdHJhcDpfcyxfbG9uZ2ptcDpSaSxfc2V0ZW52OlEyLF90aW1lOkMwLF90aW1lczp1MSxEWU5BTUlDVE9QX1BUUjpsbix0ZW1wRG91YmxlUHRyOk1hLEFCT1JUOkVlLFNUQUNLVE9QOmduLFNU''@;'; + put 'put ''QUNLX01BWDpkbixjdHR6X2k4OmhzfTt2YXIgJGcsS289ZnVuY3Rpb24ocHQsSXQsUHQpe3ZhciBmZT1uZXcgcHQuSW50OEFycmF5KFB0KSxydD1uZXcgcHQuSW50MTZBcnJheShQdCksYT1uZXcgcHQuSW50MzJBcnJheShQdCksSnQ9bmV3IHB0LlVpbnQ4QXJyYXkoUHQpLGhyPW5ldyBwdC5V''@;'; + put 'put ''aW50MTZBcnJheShQdCksam49KG5ldyBwdC5VaW50MzJBcnJheShQdCksbmV3IHB0LkZsb2F0MzJBcnJheShQdCkpLF89bmV3IHB0LkZsb2F0NjRBcnJheShQdCksQW89MHxJdC5EWU5BTUlDVE9QX1BUUixTaT0wfEl0LnRlbXBEb3VibGVQdHIsYWU9MHxJdC5TVEFDS1RPUCxscz0wfEl0LmN0''@;'; + put 'put ''dHpfaTgsTW49MCx4bj0wLGkyPTAsamM9cHQuTmFOLEFzPXB0LkluZmluaXR5LERuPTAsY2Y9cHQuTWF0aC5mbG9vcixlbz1wdC5NYXRoLmFicyxEMD1wdC5NYXRoLnNxcnQscWw9cHQuTWF0aC5wb3csaGE9cHQuTWF0aC5jb3MsRGE9cHQuTWF0aC5zaW4sVDg9cHQuTWF0aC50YW4sSnA9cHQu''@;'; + put 'put ''TWF0aC5hY29zLFhwPXB0Lk1hdGguYXNpbixaZj1wdC5NYXRoLmF0YW4sVWw9cHQuTWF0aC5hdGFuMix6Zj1wdC5NYXRoLmV4cCxJdT1wdC5NYXRoLmNlaWwsQXI9cHQuTWF0aC5pbXVsLHZkPXB0Lk1hdGguY2x6MzIsdzI9SXQuYWJvcnQsQWQ9SXQuZW5sYXJnZU1lbW9yeSxLcD1JdC5nZXRU''@;'; + put 'put ''b3RhbE1lbW9yeSxmZj1JdC5hYm9ydE9uQ2Fubm90R3Jvd01lbW9yeSxDaD1JdC5pbnZva2VfZGkseWQ9SXQuaW52b2tlX2ksYTA9SXQuaW52b2tlX2lpLEZsPUl0Lmludm9rZV9paWksSnM9SXQuaW52b2tlX2lpaWksdGE9SXQuaW52b2tlX2lpaWlpLGMxPUl0Lmludm9rZV9paWlpaWlpLFpj''@;'; + put 'put ''PUl0Lmludm9rZV92LHNzPUl0Lmludm9rZV92aSxaMT1JdC5pbnZva2VfdmlpLHpjPUl0Lmludm9rZV92aWlpLEdjPUl0Lmludm9rZV92aWlpaSxjdT1JdC5pbnZva2VfdmlpaWlpLHg0PUl0Lmludm9rZV92aWlpaWlpLFByPUl0Ll9fX2Fzc2VydF9mYWlsLExNPUl0Ll9fX2Nsb2NrX2dldHRp''@;'; + put 'put ''bWUsJHA9SXQuX19fbG9jayxPOD1JdC5fX19tYXBfZmlsZSxxcD1JdC5fX19zZXRFcnJObyxwZj1JdC5fX19zeXNjYWxsMTAsa2g9SXQuX19fc3lzY2FsbDE0MCxlNj1JdC5fX19zeXNjYWxsMTQ1LHQ2PUl0Ll9fX3N5c2NhbGwxNDYsUjg9SXQuX19fc3lzY2FsbDE5MixBYz1JdC5fX19zeXNj''@;'; + put 'put ''YWxsMTk1LEdmPUl0Ll9fX3N5c2NhbGwxOTcsYWI9SXQuX19fc3lzY2FsbDIwLHdkPUl0Ll9fX3N5c2NhbGwyMjEsbXY9SXQuX19fc3lzY2FsbDMsdG09SXQuX19fc3lzY2FsbDMzLEI4PUl0Ll9fX3N5c2NhbGw1LG42PUl0Ll9fX3N5c2NhbGw1NCxKdT1JdC5fX19zeXNjYWxsNixUND1JdC5f''@;'; + put 'put ''X19zeXNjYWxsOTEscjY9SXQuX19fdW5sb2NrLEk0PUl0Ll9lbXNjcmlwdGVuX2FzbV9jb25zdF9paWksbm09SXQuX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZyxYdT1JdC5fZXhpdCxEdT1JdC5fZ2V0ZW52LGczPUl0Ll9nZXR0aW1lb2ZkYXksYmw9SXQuX2xsdm1fdHJhcCx6ZT1JdC5fbG9uZ2pt''@;'; + put 'put ''cCxWdD1JdC5fc2V0ZW52LGhuPUl0Ll90aW1lLFJuPUl0Ll90aW1lcztmdW5jdGlvbiBlaShsLGMpe2x8PTAsY3w9MDt2YXIgUmUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wO1JlPWFlLGFlPWFlKzE2fDAs''@;'; + put 'put ''Yj1SZSs4fDAsTGU9NCxPZT0wfEIwKDQwKSxhW09lPj4yXT0wLEs9UmUsTW49MCxmPTB8YTAoMjksMHxsKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xO2U6ZG97aWYoMSE9KDB8bSkp''@;'; + put 'put ''aWYoTW49MCxiZT0wfGEwKDIzLGY8PDN8MCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oZj0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpLGZ8fHplKDB8cCwwfHhuKSxEbj14bik6Zj0tMSwxIT0oMHxmKSl7aWYoMHxmZVsxOTQ5NTRdKXtpZihNbj0wLGY9MHx5ZCgzKSxwPU1uLE1u''@;'; + put 'put ''PTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtEPTAsaz0wLE09MCxiPTAsdz0wLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NDticmVha31wZT1mfWVsc2UgcGU9MDtpZihNbj0wLGY9''@;'; + put 'put ''MHxGbCg5NywwfGwsMTEwMDY0KSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDEhPSgwfG0pKXthWzQ3MzIzXT0wO3Q6ZG97aWYoMHxmJiYodz0wfGZlW2Y+PjBdLHc8PDI0Pj4yNCkp''@;'; + put 'put ''Zm9yKEE9ZixwPXcsbT0wOzspe2lmKHc9QSsxfDAsIShwPDwyND4+MjQpKWJyZWFrIHQ7c3dpdGNoKHA8PDI0Pj4yNHwwKXtjYXNlIDk5OmY9OCxnZT0xNjticmVhaztjYXNlIDEwNTpmPTE4LGdlPTE2O2JyZWFrO2Nhc2UgMTA5OmY9MSxnZT0xNjticmVhaztjYXNlIDExNDpmPTQsZ2U9MTY7''@;'; + put 'put ''YnJlYWs7Y2FzZSAxMTU6Zj0yLGdlPTE2O2JyZWFrO2RlZmF1bHQ6Zj1tfTE2PT0oMHxnZSkmJihnZT0wLGFbNDczMjNdPWZ8PW0pLEE9dyxwPTB8ZmVbdz4+MF0sbT1mfX13aGlsZSgwKTtpZigwfGMmJihNbj0wLEpzKDIwLDAsMTEwMDY4LDB8YiksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgw''@;'; + put 'put ''fHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKSkpe0Q9MCxrPXBlLE09MCxiPTAsdz0wLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NDticmVha31pZihNbj0wLEc9MHxGbCg5OCwwfGwsMCksZj1NbixNbj0wLDAhPSgw''@;'; + put 'put ''fGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKSl7aWYoTT0wfGFbRysxNj4+Ml0sMiZhWzQ3MzIzXXwwJiYoTW49MCxaMSgyNiwwfGFbMTU3MTJdLDB8TSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgw''@;'; + put 'put ''fHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKSkpe0Q9MCxrPXBlLE09MCxiPTAsdz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NDticmVha31pZihNbj0wLG09MHxhMCgyNSwwfGwpLGY9TW4sTW49MCwwIT0oMHxm''@;'; + put 'put ''KSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMSE9KDB8cCkpe2ZvcihEPTA7bTspe2lmKE1uPTAsZj0wfEZsKDk5LDB8bCwwfG0pLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJd''@;'; + put 'put ''LDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe2s9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0O2JyZWFrIGV9Zm9yKHc9RDtmOyl7Mj09KDB8YVs0NzEzNF0pJiYwIT0oMHxhWzgrKDB8YVtmKzE2Pj4yXSk+PjJdKXx8KGdlPTMy''@;'; + put 'put ''KTt0OmRve2lmKDMyPT0oMHxnZSkpe2dlPTA7ZG97aWYoMHxmZVsxOTQ5NTRdKXtpZigoYj0oMHxhW2FbKDM9PSgwfChrPTMmYVtmPj4yXSkpP2Y6Zis0OHwwKSs0MD4+Ml0+PjJdKT4+PjQpPj4+MD4oaz0oMHxhW2FbKDI9PSgwfGspP2Y6ZistNDh8MCkrNDA+PjJdPj4yXSk+Pj40KT4+PjAp''@;'; + put 'put ''e2lmKE1uPTAscD0wfEpzKDM0LDB8cGUsMHxrLDB8YiksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKGM9MHxnaSgwfGFbQT4+Ml0sMHxPZSwwfExlKSl8fHplKDB8QSwwfHhuKSxEbj14bik6Yz0tMSwxPT0oMHxjKSl7az1wZSxNPTAsYj0wLHc9RyxjPWJlLEE9YmUsZj1EbixtPTAs''@;'; + put 'put ''Z2U9NzQ7YnJlYWsgZX1pZigwfHApYnJlYWsgdDtpZihNbj0wLHpjKDY0LDB8cGUsMHxrLDB8YikscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfExlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7az1wZSxNPTAsYj0w''@;'; + put 'put ''LHc9RyxjPWJlLEE9YmUsZj1EbixtPTAsZ2U9NzQ7YnJlYWsgZX1icmVha31pZihNbj0wLHA9MHxKcygzNCwwfHBlLDB8YiwwfGspLEE9TW4sTW49MCwwIT0oMHxBKSYwIT0oMHx4bik/KChjPTB8Z2koMHxhW0E+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfEEsMHx4biksRG49eG4pOmM9LTEsMT09''@;'; + put 'put ''KDB8Yykpe2s9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0O2JyZWFrIGV9aWYoMHxwKWJyZWFrIHQ7aWYoTW49MCx6Yyg2NCwwfHBlLDB8YiwwfGspLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgw''@;'; + put 'put ''fHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe2s9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0O2JyZWFrIGV9YnJlYWt9fXdoaWxlKDApO2lmKGFbYmUrKHc8PDMpKzQ+PjJdPWYsTW49MCxjPTB8YTAoMzAsMHxmKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8''@;'; + put 'put ''eG4pPygoQT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtrPXBlLE09MCxiPTAsdz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NDticmVhayBlfWFbYmUrKHc8PDMpPj4yXT1jLHc9dysxfDB9fXdoaWxlKDApO2lmKE1uPTAs''@;'; + put 'put ''Zj0wfEZsKDEwMCwwfGwsMHxmKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtrPXBlLE09MCxiPTAsdz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NDticmVhayBl''@;'; + put 'put ''fX1pZihNbj0wLG09MHxGbCg4NiwwfGwsMHxtKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKXtrPXBlLE09MCxiPTAsdz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03''@;'; + put 'put ''NDticmVhayBlfUQ9d31pZihNbj0wLGI9MHxhMCgzMSxEPDwzfDApLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMSE9KDB8cCkpaWYoTW49MCxHYygyOCwwfGJlLDB8RCw4LDEwMSks''@;'; + put 'put ''Zj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKSlpZihNbj0wLHNzKDExMCwyKyhtPTB8YVtNPj4yXSl8MCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxn''@;'; + put 'put ''aSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKSl7Zm9yKGM9KHc9MHxhW00rMTY+PjJdKSsoNDAqbXwwKXwwLHc9dysoNDAqKG0rMXwwKXwwKXwwLFI9MHxhWzE1NzEyXSxBPTA7ISgoMHxBKT49KDB8RCkpOyl7aWYoKDB8QSk+MCYmMTYm''@;'; + put 'put ''YVs0NzMyM118MCYmKE1uPTAsWjEoMjYsMHxSLDB8TSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKSkpe2s9cGUsTT1iLHc9RyxjPWJlLEE9YmUsZj1EbixtPVIsZ2U9''@;'; + put 'put ''NzQ7YnJlYWsgZX1pZigoMHwobT0wfGFbMTEyKygwfGFbMTYrKDB8YVsoMz09KDB8KGs9MyZhWyhmPTB8YVtiZSsoQTw8MykrND4+Ml0pPj4yXSkpP2Y6Zis0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk9PSgwfChmPTB8YVsxMTIrKDB8YVsxNisoMHxhWygyPT0oMHxrKT9mOmYrLTQ4fDApKzQw''@;'; + put 'put ''Pj4yXSk+PjJdKT4+Ml0pKSl7aWYoTW49MCxHYygyOSwwfE0sMHxtLDB8dywwfGMpLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMT09KDB8cCkpe2s9cGUsTT1iLHc9RyxjPWJlLEE9''@;'; + put 'put ''YmUsZj1EbixtPVIsZ2U9NzQ7YnJlYWsgZX19ZWxzZXtpZihNbj0wLHpjKDY1LDB8TSwwfGYsMHx3KSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKXtrPXBlLE09Yix3''@;'; + put 'put ''PUcsYz1iZSxBPWJlLGY9RG4sbT1SLGdlPTc0O2JyZWFrIGV9aWYoTW49MCx6Yyg2NSwwfE0sMHxtLDB8YyksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKSl7az1wZSxN''@;'; + put 'put ''PWIsdz1HLGM9YmUsQT1iZSxmPURuLG09UixnZT03NDticmVhayBlfX1pZihNbj0wLGY9MHxKcygzNSwwfE0sMHx3LDB8YykscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfExlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxt''@;'; + put 'put ''KSl7az1wZSxNPWIsdz1HLGM9YmUsQT1iZSxmPURuLG09UixnZT03NDticmVhayBlfWlmKDB8Zil7az1wZSxNPWIsdz1HLGM9YmUsQT1iZTticmVhayBlfWlmKGY9YisoQTw8Myl8MCxNbj0wLEdjKDMwLDB8SywwfE0sMHxjLDB8dykscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09''@;'; + put 'put ''MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfExlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxtKSl7az1wZSxNPWIsdz1HLGM9YmUsQT1iZSxmPURuLG09UixnZT03NDticmVhayBlfWlmKGs9MHxhWyhtPUspKzQ+PjJdLGFbZj4+Ml09YVttPj4yXSxhW2YrND4+Ml09ayxNbj0wLHNz''@;'; + put 'put ''KDExMSwwfE0pLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMT09KDB8cCkpe2s9cGUsTT1iLHc9RyxjPWJlLEE9YmUsZj1EbixtPVIsZ2U9NzQ7YnJlYWsgZX1BPUErMXwwfU1uPTAs''@;'; + put 'put ''WmMoOCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKT8oTW49MCxmPTB8YTAoMzIsMHxHKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtw''@;'; + put 'put ''Pj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDEhPSgwfG0pPyhhW0crMjA+PjJdPWYsTW49MCxmPTB8YTAoMzMsMHxHKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhu''@;'; + put 'put ''KTptPS0xLDEhPSgwfG0pPyhhW0crMjQ+PjJdPWYsTW49MCx6Yyg2NiwwfEQsMHxiLDB8RyksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKT8oT2U9MHxQZigxODkyOTYs''@;'; + put 'put ''MSwwfE9lLDB8TGUpLExlPURuLGY9TW49MCxNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKT8oaz1wZSxNPWIsdz1HLGM9YmUsQT1iZSxmPTAsbT1SLGdlPTc0KTooaz1wZSxNPWIs''@;'; + put 'put ''dz1HLGM9YmUsQT1iZSxmPURuLG09UixnZT03NCkpOihrPXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9RG4sbT1SLGdlPTc0KSk6KGs9cGUsTT1iLHc9RyxjPWJlLEE9YmUsZj1EbixtPVIsZ2U9NzQpKTooaz1wZSxNPWIsdz1HLGM9YmUsQT1iZSxmPURuLG09UixnZT03NCkpOihrPXBlLE09Yix3''@;'; + put 'put ''PUcsYz1iZSxBPWJlLGY9RG4sbT1SLGdlPTc0KX1lbHNlIGs9cGUsTT1iLHc9RyxjPWJlLEE9YmUsZj1EbixtPTAsZ2U9NzQ7ZWxzZSBrPXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0O2Vsc2Ugaz1wZSxNPTAsdz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NH1lbHNlIEQ9''@;'; + put 'put ''MCxrPXBlLE09MCxiPTAsdz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NH1lbHNlIEQ9MCxrPXBlLE09MCxiPTAsdz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NH1lbHNlIEQ9MCxrPXBlLE09MCxiPTAsdz0wLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NH1lbHNlIEQ9MCxrPTAsTT0wLGI9''@;'; + put 'put ''MCx3PTAsYz0wLEE9YmUsZj1EbixtPTAsZ2U9NzQ7ZWxzZSBEPTAsaz0wLE09MCxiPTAsdz0wLGM9MCxBPTAsZj1EbixtPTAsZ2U9NzR9d2hpbGUoMCk7ZTpmb3IoOzspe2lmKDc0PT0oMHxnZSkpe2lmKGdlPTAsMHxmKXtSPW07Y29udGludWV9aWYoTW49MCxzcygxMTIsMHx3KSxmPU1uLE1u''@;'; + put 'put ''PTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKXtmPURuLEE9cD1BLGM9Uj1jLHc9Rz13LGI9Sz1iLE09cGU9TSxrPWJlPWssRD1nZT1ELGdlPTc0O2NvbnRpbnVlfWlmKDQmYVs0NzMy''@;'; + put 'put ''M118MCYmKE1uPTAsY3UoOCwwfG0sMHx3LDB8RCwwfE0sMHxjKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKSl7Zj1EbixtPXA9bSxBPVI9QSxjPUc9Yyx3PUs9dyxi''@;'; + put 'put ''PXBlPWIsTT1iZT1NLEQ9Z2U9RCxnZT03NDtjb250aW51ZX1pZihNbj0wLHg0KDEwLDB8bCwwfHcsMHxELDB8TSwwfGMsMCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxw''@;'; + put 'put ''KSl7Zj1EbixtPXA9bSxBPVI9QSxjPUc9Yyx3PUs9dyxiPXBlPWIsTT1iZT1NLEQ9Z2U9RCxnZT03NDtjb250aW51ZX1SPW19aWYoMHxmZVsxOTQ5NTRdKXtpZihNbj0wLHNzKDExMywwfGspLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxM''@;'; + put 'put ''ZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMT09KDB8cCkpe2Y9RG4sbT1SLGdlPTc0O2NvbnRpbnVlfWY9MH1lbHNlIGY9MDtmb3IoOyEoKDB8Zik+PSgwfEQpKTspe2lmKE1uPTAsc3MoMTA1LDB8YVtNKyhmPDwzKSs0Pj4yXSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8o''@;'; + put 'put ''KG09MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfExlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxtKSl7Zj1EbixtPVIsZ2U9NzQ7Y29udGludWUgZX1mPWYrMXwwfWlmKE1uPTAsc3MoMTA1LDB8YiksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+''@;'; + put 'put ''Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKSlpZihNbj0wLHNzKDExNCwwfHcpLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMSE9KDB8cCkp''@;'; + put 'put ''e2lmKE1uPTAsc3MoMTA1LDB8QSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKSlicmVhaztmPURuLG09UixnZT03NH1lbHNlIGY9RG4sbT1SLGdlPTc0O2Vsc2UgZj1E''@;'; + put 'put ''bixtPVIsZ2U9NzR9RnQoMHxPZSksYWU9UmV9ZnVuY3Rpb24gdWIobCxjLGYpe3ZhciBwO2x8PTAsX1soY3w9MCk+PjNdPStfW2M+PjNdKyArX1soZnw9MCk+PjNdLF9bKHA9Yys4fDApPj4zXT0rX1twPj4zXSsgK19bZis4Pj4zXSxhW2w+PjJdPWFbYz4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4y''@;'; + put 'put ''XSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXX1mdW5jdGlvbiBfZChsLGMpe3ZhciBmLHA7cmV0dXJuIGM9MHxsNigwfGFbMjQrKGN8PTApPj4yXSxsfD0wKSwrKCsoMHxhW2wrNDQ+PjJdKS8rKDErKDB8YVtjKzI0Pj4yXSl8MCkqKCtfWzU2KyhwPTB8YVtjKzM2''@;'; + put 'put ''Pj4yXSk+PjNdLShmPStfW3ArNDA+PjNdKSkrZil9ZnVuY3Rpb24gbTMobCxjKXt2YXIgZixwO3JldHVybiBwPTB8bDYoMHxhWzIwKyhjfD0wKT4+Ml0sbHw9MCksMHx+figoMS0rKDB8YVtsKzQ0Pj4yXSkvKygxKygwfGFbcCsyND4+Ml0pfDApKSooK19bNjQrKGM9MHxhW3ArMzY+PjJdKT4+''@;'; + put 'put ''M10tKGY9K19bYys0OD4+M10pKStmKX1mdW5jdGlvbiBsNihsLGMpe3JldHVybihsPTB8bWlbNjMmYVsobHw9MCk+PjJdXShsLDgrKGN8PTApfDAsNTEyKSl8fFByKDExMDE1NSwxMTAxNjEsNDIzLDExMDE2OSksKGw9MHxtaVs2MyZhWyhsPTB8YVtsKzE2Pj4yXSk+PjJdXShsLGMrMTZ8MCw1''@;'; + put 'put ''MTIpKT8wfGw6KFByKDExMDE4MCwxMTAxNjEsNDI1LDExMDE2OSksMCl9ZnVuY3Rpb24gR3oobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxtfD0wLEF8PTA7dmFyIEQsZ2UsYmUsT2UsTGUsUmUsSGUsVmUsdz0wLGI9MCxrPTAsTT0wLFI9MCxHPTAsSz0wLHBlPTAscWU9MCxudD0wLFdlPTAsb3Q9''@;'; + put 'put ''MDtmb3IoVmU9YWUsYWU9YWUrMzJ8MCxIZT1WZSsxNnwwLGJlPVZlKzh8MCxrPVZlLHc9MHxhWzExMisoMHxhWzE2KygwfGFbKDM9PSgzJmFbKGZ8PTApPj4yXXwwKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSwwfGZlWyhnZT0wfGFbNCsocHw9MCk+PjJdKT4+MF0/KHc9fn4oLjUqKChw''@;'; + put 'put ''ZT0rX1t3KzQ4Pj4zXSkrKGI9K19bdys2ND4+M10pKSksYj0rX2QoZ2UsbSkpOihiPStfW3crNTY+PjNdLHBlPStfW3crNDA+PjNdLHc9MHxtMyhnZSxtKSxiPS41KihwZStiKSksX1tBPj4zXT1SPShSPStfW0E+PjNdKTwoSz0rKDB8KHFlPX5+YikpKT9SOkssX1soT2U9QSs4fDApPj4zXT1H''@;'; + put 'put ''PShHPStfW09lPj4zXSk8KHBlPSsoMHx3KSk/RzpwZSxfWyhMZT1BKzE2fDApPj4zXT1LPShiPStfW0xlPj4zXSk+Sz9iOkssX1soUmU9QSsyNHwwKT4+M109cGU9KGI9K19bUmU+PjNdKT5wZT9iOnBlLGFbaz4+Ml09cWUsYVtrKzQ+PjJdPXcsVDAoYywxMTA2ODIsayksRD0wfGFbcD4+Ml0s''@;'; + put 'put ''az1nZSxNPTEscD1xZTshKCgwfE0pPj0oMHxEKSk7KTB8ZmVbKGs9Z2UrKDU2Kk18MCl8MCk+PjBdP3A9fn4rX2QoayxtKTp3PTB8bTMoayxtKSxfW0E+PjNdPW90PVI8KG50PSsoMHxwKSk/UjpudCxfW09lPj4zXT1XZT1HPChiPSsoMHx3KSk/RzpiLF9bTGU+PjNdPW50PUs+bnQ/SzpudCxf''@;'; + put 'put ''W1JlPj4zXT1iPXBlPmI/cGU6YixhW2JlPj4yXT1wLGFbYmUrND4+Ml09dyxUMChjLDExMDcwNCxiZSksTT1NKzF8MCxSPW90LEc9V2UsSz1udCxwZT1iO3c9MHxhWzExMisoMHxhWzE2KygwfGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpmKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdLDB8ZmVbaz4+''@;'; + put 'put ''MF0/KHc9fn4oLjUqKChvdD0rX1t3KzQ4Pj4zXSkrKGI9K19bdys2ND4+M10pKSksYj0rX2QoayxtKSk6KGI9K19bdys1Nj4+M10sb3Q9K19bdys0MD4+M10sdz0wfG0zKGssbSksYj0uNSoob3QrYikpLF9bQT4+M109UjwoV2U9KygwfChxZT1+fmIpKSk/UjpXZSxfW09lPj4zXT1HPChvdD0r''@;'; + put 'put ''KDB8dykpP0c6b3QsX1tMZT4+M109Sz5XZT9LOldlLF9bUmU+PjNdPXBlPm90P3BlOm90LGFbSGU+PjJdPXFlLGFbSGUrND4+Ml09dyxUMChjLDExMDcxOCxIZSksYVtsPj4yXT1hW0E+PjJdLGFbbCs0Pj4yXT1hW0ErND4+Ml0sYVtsKzg+PjJdPWFbQSs4Pj4yXSxhW2wrMTI+PjJdPWFbQSsx''@;'; + put 'put ''Mj4+Ml0sYVtsKzE2Pj4yXT1hW0ErMTY+PjJdLGFbbCsyMD4+Ml09YVtBKzIwPj4yXSxhW2wrMjQ+PjJdPWFbQSsyND4+Ml0sYVtsKzI4Pj4yXT1hW0ErMjg+PjJdLGFlPVZlfWZ1bmN0aW9uIHNSKGwpe3ZhciBjPTA7Zm9yKGw9MHxzMChsfD0wKTtsOyl7Zm9yKGM9MHxzMCgwfGFbbCsxNj4+''@;'; + put 'put ''Ml0pO2M7KWFbYyszMj4+Ml09MHxwUigwfGFbYysyND4+Ml0pLGM9MHxhW2M+PjJdO2w9MHxhW2w+PjJdfX1mdW5jdGlvbiBjYihsKXt2YXIgYz0wO2ZvcihsPTB8czAobHw9MCk7bDspe2ZvcihjPTB8czAoMHxhW2wrMTY+PjJdKTtjOykwfGFbYysyND4+Ml0mJmhSKGMpLGM9MHxhW2M+PjJd''@;'; + put 'put ''O2w9MHxhW2w+PjJdfX1mdW5jdGlvbiBZYyhsLGMpe2N8PTA7dmFyIGY9MDtmb3IoZj0wfHMwKGx8PTApO2Y7KXtmb3IobD0wfHMwKDB8YVtmKzE2Pj4yXSk7bDspY1IobCxjKSxsPTB8YVtsPj4yXTtmPTB8YVtmPj4yXX19ZnVuY3Rpb24gaW0obCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAs''@;'; + put 'put ''dz0wO2ZvcihwPTB8czAobHw9MCk7cDspe2Zvcih3PXArOHwwLG09MHxzMCgwfGFbcCsxNj4+Ml0pO207KXtsPW0rMjR8MDtlOmRve2lmKDB8YVtsPj4yXSlmb3IoOCZhWzQ3MzIzXXwwJiZGOChtLH5+K19bdz4+M10pLEE9bSszMnwwLE5NKDB8YVtBPj4yXSksYz0wfGFbbD4+Ml0sZj1tKzI4''@;'; + put 'put ''fDAsbD0wOzspe2lmKCgwfGwpPj0oMHxjKSlicmVhayBlO2FbNDQrKDB8YVsoMHxhW2Y+PjJdKSsobDw8Mik+PjJdKT4+Ml09MSsoMHxhWygwfGFbNCsoMHxhW0E+PjJdKT4+Ml0pKygxMipsfDApKzQ+PjJdKSxsPWwrMXwwfX13aGlsZSgwKTttPTB8YVttPj4yXX1wPTB8YVtwPj4yXX19ZnVu''@;'; + put 'put ''Y3Rpb24gRjgobCxjKXtjfD0wO3ZhciBBLGIsZj0wLHA9MCxtPTAsdz0wLGs9MCxNPTA7Yj1hZSxhZT1hZSszMnwwLGY9YixBPTI0KyhsfD0wKXwwO2U6ZG97aWYoKDB8YVtBPj4yXSk+PTIpZm9yKHc9MHxhWzE1NzEyXSxNPStfW2wrOD4+M10saz0rX1tsKzE2Pj4zXSxhW2Y+PjJdPWMsX1tm''@;'; + put 'put ''Kzg+PjNdPU0sX1tmKzE2Pj4zXT1rLFQwKHcsMTEwNzM5LGYpLG09bCszMnwwLGw9bCsyOHwwLGM9MDs7KXtpZigoMHxjKT49KDB8YVtBPj4yXSkpYnJlYWsgZTtwPTB8YVsoMHxhWzQrKDB8YVttPj4yXSk+PjJdKSsoMTIqY3wwKSs4Pj4yXTt0OmRve2lmKDB8cHUocCkpZm9yKHVSKHcsMHxh''@;'; + put 'put ''WygwfGFbbD4+Ml0pKyhjPDwyKT4+Ml0pLF91KDExMDc1OSx3KSxmPTB8bWlbNjMmYVtwPj4yXV0ocCwwLDEyOCk7Oyl7aWYoIWYpYnJlYWsgdDtfdSgxMTA3NjQsdyksdVIodywwfGFbKDB8YVtsPj4yXSkrKGFbZj4+Ml08PDIpPj4yXSksX3UoMTUzNTk5LHcpLGY9MHxtaVs2MyZhW3A+PjJd''@;'; + put 'put ''XShwLGYsOCl9fXdoaWxlKDApO2M9YysxfDB9fXdoaWxlKDApO2FlPWJ9ZnVuY3Rpb24gdVIobCxjKXtsfD0wO3ZhciBtLGY9MCxwPTAsQT0wLHc9MCxiPTAsaz0wO209YWUsYWU9YWUrODB8MCxwPW0rNDB8MCxmPW0sMHxmZVsoY3w9MCk+PjBdPyhiPStfW2MrOD4+M10sdz0rX1tjKzE2Pj4z''@;'; + put 'put ''XSxrPStfW2MrMjQ+PjNdLHA9MHxvbSgwfGFbYyszMj4+Ml0pLEE9MHxvbSgwfGFbYyszNj4+Ml0pLF9bZj4+M109YixfW2YrOD4+M109dyxfW2YrMTY+PjNdPWIsX1tmKzI0Pj4zXT1rLGFbZiszMj4+Ml09cCxhW2YrMzY+PjJdPUEsVDAobCwxMTA3NzAsZikpOihrPStfW2MrMTY+PjNdLHc9''@;'; + put 'put ''K19bYys4Pj4zXSxiPStfW2MrMjQ+PjNdLEE9MHxvbSgwfGFbYyszMj4+Ml0pLGY9MHxvbSgwfGFbYyszNj4+Ml0pLF9bcD4+M109ayxfW3ArOD4+M109dyxfW3ArMTY+PjNdPWIsX1twKzI0Pj4zXT13LGFbcCszMj4+Ml09QSxhW3ArMzY+PjJdPWYsVDAobCwxMTA3NzAscCkpLGFlPW19ZnVu''@;'; + put 'put ''Y3Rpb24gb20obCl7c3dpdGNoKDB8KGx8PTApKXtjYXNlIDA6bD0xMTA4MjE7YnJlYWs7Y2FzZSAxOmw9MTEwODE2O2JyZWFrO2Nhc2UgMjpsPTExMDgwOTticmVhaztjYXNlIDM6bD0xMTA4MDI7YnJlYWs7Y2FzZSA0Omw9MTEwNzk0O2JyZWFrO2RlZmF1bHQ6bD0wfXJldHVybiAwfGx9ZnVu''@;'; + put 'put ''Y3Rpb24gY1IobCxjKXtjfD0wO3ZhciBNLEQsRyxwZSxiZSxPZSxMZSxSZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsUj0wLEs9MCxnZT0wO1JlPWFlLGFlPWFlKzE2fDAsT2U9MHxhWzMyKyhsfD0wKT4+Ml0sTGU9MHxhW2wrMjg+PjJdLE09NCsocGU9UmUrOHwwKXwwLEQ9KGJlPVJl''@;'; + put 'put ''KSs0fDAsYj0wLGw9MHxhWyhHPWwrMjR8MCk+PjJdO2U6Zm9yKDtLPWIrMXwwLCEoKDB8Syk+PSgwfGwpKTspZm9yKFI9TGUrKGI8PDIpfDAsaz1LOzspe2lmKCgwfGspPj0oMHxsKSl7Yj1LO2NvbnRpbnVlIGV9dDpkb3tpZigwPT0oMHxtZihPZSxiLGspKSYmMD09KDB8bWYoT2UsayxiKSkm''@;'; + put 'put ''JihnZT1MZSsoazw8Mil8MCwwfGZiKDB8YVtSPj4yXSwwfGFbZ2U+PjJdKSkpc3dpdGNoKG09MHxhW1I+PjJdLGw9MHxhW20rNDg+PjJdLHc9MHxhW2dlPj4yXSxmPTB8YVt3KzQ4Pj4yXSxwPTA9PSgwfGYpLGw9bD9wPzE6K19bbCs4Pj4zXSE9K19bZis4Pj4zXToxXnAsQT0xJmwsQk0ocGUs''@;'; + put 'put ''bSx3LDAsQSksbD0wfGFbcGU+PjJdLHc9MHxhW00+PjJdLG09MV5BLEJNKGJlLDB8YVtSPj4yXSwwfGFbZ2U+PjJdLDEsbSksZj0wfGFbYmU+PjJdLHA9MHxhW0Q+PjJdLDB8dyl7Y2FzZS0xOmlmKFNoKDB8YVtnZT4+Ml0sMHxhW1I+PjJdLEEsMCxsLGMpLFNoKDB8YVtnZT4+Ml0sMHxhW1I+''@;'; + put 'put ''PjJdLG0sMSxmLGMpLDEhPSgwfHApKWJyZWFrIHQ7UE0oMHxhW1I+PjJdLDB8YVtnZT4+Ml0sbSxjKTticmVhayB0O2Nhc2UgMDpzd2l0Y2goMHxwKXtjYXNlLTE6U2goMHxhW2dlPj4yXSwwfGFbUj4+Ml0sQSwwLGwsYyksU2goMHxhW2dlPj4yXSwwfGFbUj4+Ml0sbSwxLGYsYyk7YnJlYWsg''@;'; + put 'put ''dDtjYXNlIDA6Y2FzZSAxOlNoKDB8YVtSPj4yXSwwfGFbZ2U+PjJdLDAsQSxsLGMpLFNoKDB8YVtSPj4yXSwwfGFbZ2U+PjJdLDEsbSxmLGMpO2JyZWFrIHQ7ZGVmYXVsdDpicmVhayB0fWNhc2UgMTppZihTaCgwfGFbUj4+Ml0sMHxhW2dlPj4yXSwwLEEsbCxjKSxTaCgwfGFbUj4+Ml0sMHxh''@;'; + put 'put ''W2dlPj4yXSwxLG0sZixjKSwtMSE9KDB8cCkpYnJlYWsgdDtQTSgwfGFbUj4+Ml0sMHxhW2dlPj4yXSxtLGMpO2JyZWFrIHQ7ZGVmYXVsdDpicmVhayB0fX13aGlsZSgwKTtrPWsrMXwwLGw9MHxhW0c+PjJdfWFlPVJlfWZ1bmN0aW9uIGZiKGwsYyl7cmV0dXJuK19bOCsobHw9MCk+PjNdIT0r''@;'; + put 'put ''X1s4KyhjfD0wKT4+M10mJlByKDExMDg5MiwxMTAxNjEsODQzLDExMDkyMyksMHwoK19bbCsxNj4+M109PStfW2MrMTY+PjNdJiYrX1tsKzI0Pj4zXT09K19bYysyND4+M10mJigwfGFbbCszMj4+Ml0pPT0oMHxhW2MrMzI+PjJdKT8oMHxhW2wrMzY+PjJdKT09KDB8YVtjKzM2Pj4yXSkmMTow''@;'; + put 'put ''KX1mdW5jdGlvbiBCTShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTA7Zm9yKEE9MDs7KXtpZighKGM9MHxzNihjLHApKSl7dz0wO2JyZWFrfWlmKCEoZj0wfHM2KGYsbSkpKXtiPTY7YnJlYWt9aWYoISgwfGZiKGMsZikpKXtiPTc7YnJlYWt9QT1B''@;'; + put 'put ''KzF8MH02PT0oMHxiKT9QcigxMzgzOTQsMTEwMTYxLDg3MSwxMTA4NDEpOjc9PSgwfGIpJiYodz0wfGZ1bmN0aW9uIGFtKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wO2Zvcih3PTE7ISgoMHx3KT4oMHxmKSk7KXtBPTB8czYobCxwKSxtPStfW0ErOD4+M109''@;'; + put 'put ''PStfW2wrMTY+PjNdO2Rve2lmKDB8ZmVbbD4+MF0pe2lmKG0pe209ND09KDB8YVtsKzMyPj4yXSk7YnJlYWt9bT0yPT0oMHxhW2wrMzY+PjJdKTticmVha31pZihtKXttPTE9PSgwfGFbbCszMj4+Ml0pO2JyZWFrfW09Mz09KDB8YVtsKzM2Pj4yXSk7YnJlYWt9d2hpbGUoMCk7bD1BLHc9dysx''@;'; + put 'put ''fDAsYz1tPzAtY3wwOmN9cmV0dXJuIDB8Y30oYywwfHl2KGMsZiksQSsxfDAsMS1wfDApKSxhW2w+PjJdPUEsYVtsKzQ+PjJdPXd9ZnVuY3Rpb24gU2gobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEQsUix3PTAsYj0wLGs9MCxNPTAsRz0wO2ZvcihSPTIwKyhBfD0wKXww''@;'; + put 'put ''LEQ9QSsyNHwwLEE9MHxsNigwfGFbKDA9PSgwfGZlWyhsfD0wKT4+MF0pP1I6RCk+PjJdLGwpLHoxKDB8YVtBKzMyPj4yXSwwfGFbbCs0MD4+Ml0sMHxhW2MrNDA+PjJdKSxiPTE7ISgoMHxiKT4oMHxtKSk7KXtrPTB8czYobCxmKSxNPTB8czYoYyxwKTtkb3tpZigwfGZlW2w+PjBdKXtpZih3''@;'; + put 'put ''PTB8bDYoMHxhW1I+PjJdLGspLCtfW2srOD4+M109PStfW2wrMTY+PjNdKXtpZihHPTI9PSgwfGFbbCszMj4+Ml0pLEE9MCE9KDB8bWYoMHxhW0ErMzI+PjJdLDB8YVtsKzQwPj4yXSwwfGFbYys0MD4+Ml0pKSxsPTB8YVt3KzMyPj4yXSxHKXtpZihBKXt6MShsLDB8YVtrKzQwPj4yXSwwfGFb''@;'; + put 'put ''TSs0MD4+Ml0pLEE9dzticmVha316MShsLDB8YVtNKzQwPj4yXSwwfGFbays0MD4+Ml0pLEE9dzticmVha31pZihBKXt6MShsLDB8YVtNKzQwPj4yXSwwfGFbays0MD4+Ml0pLEE9dzticmVha316MShsLDB8YVtrKzQwPj4yXSwwfGFbTSs0MD4+Ml0pLEE9dzticmVha31pZihHPTI9PSgwfGFb''@;'; + put 'put ''bCszNj4+Ml0pLEE9MCE9KDB8bWYoMHxhW0ErMzI+PjJdLDB8YVtsKzQwPj4yXSwwfGFbYys0MD4+Ml0pKSxsPTB8YVt3KzMyPj4yXSxHKXtpZihBKXt6MShsLDB8YVtNKzQwPj4yXSwwfGFbays0MD4+Ml0pLEE9dzticmVha316MShsLDB8YVtrKzQwPj4yXSwwfGFbTSs0MD4+Ml0pLEE9dzti''@;'; + put 'put ''cmVha31pZihBKXt6MShsLDB8YVtrKzQwPj4yXSwwfGFbTSs0MD4+Ml0pLEE9dzticmVha316MShsLDB8YVtNKzQwPj4yXSwwfGFbays0MD4+Ml0pLEE9dzticmVha31pZih3PTB8bDYoMHxhW0Q+PjJdLGspLCtfW2srOD4+M109PStfW2wrMTY+PjNdKXtpZihHPTE9PSgwfGFbbCszMj4+Ml0p''@;'; + put 'put ''LEE9MCE9KDB8bWYoMHxhW0ErMzI+PjJdLDB8YVtsKzQwPj4yXSwwfGFbYys0MD4+Ml0pKSxsPTB8YVt3KzMyPj4yXSxHKXtpZihBKXt6MShsLDB8YVtNKzQwPj4yXSwwfGFbays0MD4+Ml0pLEE9dzticmVha316MShsLDB8YVtrKzQwPj4yXSwwfGFbTSs0MD4+Ml0pLEE9dzticmVha31pZihB''@;'; + put 'put ''KXt6MShsLDB8YVtrKzQwPj4yXSwwfGFbTSs0MD4+Ml0pLEE9dzticmVha316MShsLDB8YVtNKzQwPj4yXSwwfGFbays0MD4+Ml0pLEE9dzticmVha31pZihHPTE9PSgwfGFbbCszNj4+Ml0pLEE9MCE9KDB8bWYoMHxhW0ErMzI+PjJdLDB8YVtsKzQwPj4yXSwwfGFbYys0MD4+Ml0pKSxsPTB8''@;'; + put 'put ''YVt3KzMyPj4yXSxHKXtpZihBKXt6MShsLDB8YVtrKzQwPj4yXSwwfGFbTSs0MD4+Ml0pLEE9dzticmVha316MShsLDB8YVtNKzQwPj4yXSwwfGFbays0MD4+Ml0pLEE9dzticmVha31pZihBKXt6MShsLDB8YVtNKzQwPj4yXSwwfGFbays0MD4+Ml0pLEE9dzticmVha316MShsLDB8YVtrKzQw''@;'; + put 'put ''Pj4yXSwwfGFbTSs0MD4+Ml0pLEE9dzticmVha313aGlsZSgwKTtsPWssYz1NLGI9YisxfDB9fWZ1bmN0aW9uIFBNKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7Zm9yKHZhciBtPTA7MHxmYihsLGMpOyltPTB8czYobCwxKSxjPTB8czYoYyxmKSxsPW07IWZ1bmN0aW9uIGJ2KGwsYyxm''@;'; + put 'put ''KXtsfD0wLGN8PTA7dmFyIHAsbSxBO3A9YWUsYWU9YWUrMTZ8MCxhWyhtPXApPj4yXT1mfD0wLG1pWzYzJmFbKEE9MHxhWygwfGFbKGw9bCs0fDApPj4yXSkrKDEyKmN8MCkrOD4+Ml0pPj4yXV0oQSxtLDIpLGFbbT4+Ml09YyxtaVs2MyZhWyhmPTB8YVsoMHxhW2w+PjJdKSsoMTIqZnwwKSs4''@;'; + put 'put ''Pj4yXSk+PjJdXShmLG0sMiksYWU9cH0obT0wfGFbMzIrKDB8bDYoMHxhWygwPT0oMHxmZVtsPj4wXSk/cCsyMHwwOnArMjR8MCk+PjJdLGwpKT4+Ml0sMHxhW2wrNDA+PjJdLDB8YVtjKzQwPj4yXSl9ZnVuY3Rpb24gczYobCxjKXtyZXR1cm4obHw9MCk/MHxhWygwPT0oMHwoY3w9MCkpP2wr''@;'; + put 'put ''NDh8MDpsKzUyfDApPj4yXTooUHIoMTEwODI4LDExMDE2MSw3OTgsMTEwODMyKSwwKX1mdW5jdGlvbiB5dihsLGMpe3ZhciBmLHAsbTtyZXR1cm4gbT1hZSxhZT1hZSsxNnwwLHA9bSwoZj0wfGZlWyhsfD0wKT4+MF0pPDwyND4+MjQ9PSgwfGZlWyhjfD0wKT4+MF0pJiYrX1tsKzg+PjNdPT0r''@;'; + put 'put ''X1tjKzg+PjNdPyhsPWY8PDI0Pj4yND8wfGZSKGwsYyw0LDIpOjB8ZlIobCxjLDMsMSksYWU9bSwwfGwpOigkcigxLDExMDg1NCxwKSx6ZSgxODkyOTYsMSksMCl9ZnVuY3Rpb24gZlIobCxjLGYscCl7Znw9MCxwfD0wO3ZhciBiLGssbT0wLEE9MCx3PTAsTT0wLEQ9MCxSPTAsRz0wO2I9K19b''@;'; + put 'put ''MjQrKGx8PTApPj4zXSxrPStfWzE2KyhjfD0wKT4+M107ZG97aWYoIShiPGt8fChBPStfW2wrMTY+PjNdLHc9K19bYysyND4+M10sQT53KSkpe2lmKGs8YiZBPGspe2M9MHxIOChsLGMsZixwKTticmVha31pZihrPEEmQTx3KXtjPTAtKDB8SDgoYyxsLGYscCkpfDA7YnJlYWt9aWYoQSE9ayl7''@;'; + put 'put ''aWYoYj09aylyZXR1cm4gMHwoKDB8KGY9MHxhW2wrMzY+PjJdKSk9PSgwfGFbYyszMj4+Ml0pPzA6KDB8Zik9PSgwfHApPzE6LTEpO2M9KDB8KGY9MHxhW2wrMzI+PjJdKSk9PSgwfGFbYyszNj4+Ml0pPzA6KDB8Zik9PSgwfHApPzE6LTE7YnJlYWt9aWYoYiE9dyl7aWYoYjx3KXJldHVybiBH''@;'; + put 'put ''PSgwfGFbbCszNj4+Ml0pPT0oMHxmKSxmPTB8RDQoMHxhW2MrMzI+PjJdLDB8YVtsKzMyPj4yXSxmLHApLDB8KEc/ZjowLWZ8MCk7Rz0oMHxhW2MrMzY+PjJdKT09KDB8cCksYz0wfEQ0KDB8YVtsKzMyPj4yXSwwfGFbYyszMj4+Ml0sZixwKSxjPUc/YzowLWN8MDticmVha31pZigoMHwoRz0w''@;'; + put 'put ''fGFbbCszMj4+Ml0pKT09KDB8KFI9MHxhW2MrMzI+PjJdKSkpe2lmKCgwfGFbbCszNj4+Ml0pPT0oMHwoYz0wfGFbYyszNj4+Ml0pKSl7Yz0wO2JyZWFrfX1lbHNlIGM9MHxhW2MrMzY+PjJdO2lmKEQ9KDB8Uik9PSgwfGYpLCgwfFIpPT0oMHxjKSl7aWYoRCl7Yz0xO2JyZWFrfWlmKCgwfFIp''@;'; + put 'put ''PT0oMHxwKSl7Yz0tMTticmVha31pZigoMHxHKSE9KDB8ZikmJigwfGFbbCszNj4+Ml0pIT0oMHxmKSl7Yz0xO2JyZWFrfWlmKCgwfEcpIT0oMHxwKSYmKDB8YVtsKzM2Pj4yXSkhPSgwfHApKXtjPS0xO2JyZWFrfWM9MDticmVha31pZihEJihtPSgwfGMpPT0oMHxwKSkpe2lmKGM9KDB8YVts''@;'; + put 'put ''KzM2Pj4yXSk9PSgwfHApLCgwfEcpPT0oMHxmKSl7aWYoIWMpe2M9LTE7YnJlYWt9fWVsc2UgaWYoYyl7Yz0xO2JyZWFrfWM9MDticmVha31pZigoMHxSKT09KDB8cCkmKE09KDB8Yyk9PSgwfGYpKSl7aWYoYz0oMHxHKT09KDB8cCksKDB8YVtsKzM2Pj4yXSk9PSgwfGYpKXtpZighYyl7Yz0t''@;'; + put 'put ''MTticmVha319ZWxzZSBpZihjKXtjPTE7YnJlYWt9Yz0wO2JyZWFrfWlmKCFSKXtpZihNKXtjPTB8TjgoRywwfGFbbCszNj4+Ml0sZik7YnJlYWt9aWYobSl7Yz0wLSgwfE44KEcsMHxhW2wrMzY+PjJdLHApKXwwO2JyZWFrfX1pZihtPTB8YVtsKzM2Pj4yXSxEJjA9PSgwfGMpKXtjPTB8Tjgo''@;'; + put 'put ''bSxHLGYpO2JyZWFrfWM9MC0oMHxOOChtLEcscCkpfDA7YnJlYWt9Yz0wfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gSDgobCxjLGYscCl7Znw9MCxwfD0wO3ZhciB3LGIsbT0wLEE9MDt3PStfWzI0KyhsfD0wKT4+M10sYj0rX1syNCsoY3w9MCk+PjNdO2Rve2lmKHc8Yil7aWYoKDB8''@;'; + put 'put ''KGw9MHxhW2wrMzY+PjJdKSk9PSgwfGYpJiYoMHxhW2MrMzI+PjJdKT09KDB8cCkpe2w9LTE7YnJlYWt9aWYoKDB8bCk9PSgwfHApJiYoMHxhW2MrMzI+PjJdKT09KDB8Zikpe2w9MTticmVha31sPTB9ZWxzZXtpZihBPSgwfChtPTB8YVtjKzMyPj4yXSkpPT0oMHxwKSx3PT1iKXtpZihBKXts''@;'; + put 'put ''PTB8RDQoMHxhW2wrMzY+PjJdLDB8YVtjKzM2Pj4yXSxmLHApO2JyZWFrfWw9MC0oMHxENCgwfGFbYyszNj4+Ml0sMHxhW2wrMzY+PjJdLGYscCkpfDA7YnJlYWt9aWYoQSYmKDB8YVtjKzM2Pj4yXSk9PSgwfHApKXtsPS0xO2JyZWFrfWlmKCgwfG0pPT0oMHxmKSYmKDB8YVtjKzM2Pj4yXSk9''@;'; + put 'put ''PSgwfGYpKXtsPTE7YnJlYWt9bD0wfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIE44KGwsYyxmKXtyZXR1cm4gMHwoKDB8KGx8PTApKT09KDB8KGZ8PTApKT8oKDB8KGN8PTApKT09KDB8ZikpPDwzMT4+MzE6MSl9ZnVuY3Rpb24gRDQobCxjLGYscCl7aWYoY3w9MCwoMHwobHw9MCkp''@;'; + put 'put ''PT0oMHwocHw9MCkpKXtpZihjPTA9PSgwfGwpKXJldHVybiAwO2MmPTF9cmV0dXJuKDAhPSgwfGwpfCgwfGMpIT0oMHwoZnw9MCkpKTw8MzE+PjMxfDB9ZnVuY3Rpb24gaFIobCl7dmFyIGYsQSx3LGM9MCxwPTAsbT0wO0E9MHxhWzI4KyhsfD0wKT4+Ml0sdz0wfGFbbCsyND4+Ml0sZj0wfGFb''@;'; + put 'put ''bCszMj4+Ml0sbD0wO2U6Zm9yKDtwPWwrMXwwLCEoKDB8cCk+PSgwfHcpKTspZm9yKG09QSsobDw8Mil8MCxjPXA7Oyl7aWYoKDB8Yyk9PSgwfHcpKXtsPXA7Y29udGludWUgZX1zd2l0Y2goMHx5digwfGFbbT4+Ml0sMHxhW0ErKGM8PDIpPj4yXSkpe2Nhc2UgMTp6MShmLGwsYyk7YnJlYWs7''@;'; + put 'put ''Y2FzZS0xOnoxKGYsYyxsKX1jPWMrMXwwfX1mdW5jdGlvbiBGTShsLGMpe2N8PTA7dmFyIGYsbSxwPTA7YVsobT0yNCsobHw9MCl8MCk+PjJdPWY9MSsocD0wfGFbbT4+Ml0pfDAsYVtjKzQwPj4yXT1wLGw9KGw9MHxhWyhwPWwrMjh8MCk+PjJdKT8wfFYwKGwsZjw8Mik6MHxRbihmPDwyKSxh''@;'; + put 'put ''W3A+PjJdPWwsYVtsKygoMHxhW20+PjJdKS0xPDwyKT4+Ml09Y31mdW5jdGlvbiBITShsLGMsZil7bHw9MCxjfD0wO3ZhciBBLHA9MCxtPTA7QT1hZSxhZT1hZSsxNnwwLF9bKG09QSk+PjNdPWY9K2YsKHA9MHxtaVs2MyZhW2w+PjJdXShsLG0sNTEyKSl8fChwPTB8dnIoMjQpLF9bcCs4Pj4z''@;'; + put 'put ''XT0rX1ttPj4zXSxhW3ArMTY+PjJdPTB8aXMoMjU3MjgsMHxhWzQ1ODFdKSxtaVs2MyZhW2w+PjJdXShsLHAsMSkpLG1pWzYzJmFbKG09MHxhW3ArMTY+PjJdKT4+Ml1dKG0sYywxKSxhZT1BfWZ1bmN0aW9uIENpKGwsYyxmKXtsfD0wO3ZhciBBLHcscD0wLG09MDtBPTAhPSgwfGZlWzM2Kyhj''@;'; + put 'put ''fD0wKT4+MF0pLHc9NDArKGZ8PTApfDA7ZG97aWYoKDB8YVtjKzI0Pj4yXSk9PSgwfGYpKXtpZihwPStfW3c+PjNdLEEpe209LjUqKCtfW2YrNjQ+PjNdKyArX1tmKzQ4Pj4zXSk7YnJlYWt9bT0rX1tmKzQ4Pj4zXSxwPS41KigrX1tmKzU2Pj4zXStwKTticmVha31pZihBKXttPS41KigrX1tm''@;'; + put 'put ''KzY0Pj4zXSsgK19bZis0OD4+M10pLHA9K19bZis1Nj4+M107YnJlYWt9bT0rX1tmKzY0Pj4zXSxwPS41KigrX1tmKzU2Pj4zXSsgK19bdz4+M10pO2JyZWFrfXdoaWxlKDApO19bbD4+M109cCxfW2wrOD4+M109bX1mdW5jdGlvbiBkYihsLGMpe3ZhciBmPTA7cmV0dXJuKDB8KGY9MHxhWzIw''@;'; + put 'put ''KyhsfD0wKT4+Ml0pKSE9KDB8YVsyMCsoY3w9MCk+PjJdKSYmKDB8ZikhPSgwfGFbYysyND4+Ml0pJiYoZj0wfGFbbCsyND4+Ml0pLDB8Zn1mdW5jdGlvbiBoMihsLGMpe3ZhciBmO2Y9LjUqKCtfWzY0KyhjfD0wKT4+M10rICtfW2MrNDg+PjNdKSxfWyhsfD0wKT4+M109LjUqKCtfW2MrNTY+''@;'; + put 'put ''PjNdKyArX1tjKzQwPj4zXSksX1tsKzg+PjNdPWZ9ZnVuY3Rpb24gd3YobCxjLGYscCxtLEEsdyl7Zj0rZixwPStwLG09K20sQXw9MCx3fD0wO3ZhciBiPTAsaz0wO2ZlWyhsfD0wKT4+MF09Y3w9MCxfW2wrOD4+M109ZixwPG0/KGI9MCxrPUEsYz13LGY9cCxwPW0pOihiPTEsaz13LGM9QSxm''@;'; + put 'put ''PW0pLF9bbCsyND4+M109cCxfW2wrMTY+PjNdPWYsYVtsKzM2Pj4yXT1jLGFbbCszMj4+Ml09ayxmZVtsKzE+PjBdPWJ9ZnVuY3Rpb24gbG0obCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wO3A9MHxhWzM2KyhjfD0wKT4+Ml07ZG97aWYoKDB8YVtwKzQ+PjJdKSE9KDB8Zikpe2lmKCgwfGFbcCsx''@;'; + put 'put ''Mj4+Ml0pPT0oMHxmKSl7cD1+figuNSooK19bYys1Nj4+M10rICtfW2MrNDA+PjNdKSksZj1+fitfW2MrNDg+PjNdO2JyZWFrfWlmKCgwfGFbcCs4Pj4yXSk9PSgwfGYpKXtwPX5+K19bYys0MD4+M10sZj1+figuNSooK19bYys2ND4+M10rICtfW2MrNDg+PjNdKSk7YnJlYWt9KDB8YVtwPj4y''@;'; + put 'put ''XSk9PSgwfGYpPyhwPX5+K19bYys1Nj4+M10sZj1+figuNSooK19bYys2ND4+M10rICtfW2MrNDg+PjNdKSkpOihwPTAsZj0wKX1lbHNlIHA9fn4oLjUqKCtfW2MrNTY+PjNdKyArX1tjKzQwPj4zXSkpLGY9fn4rX1tjKzY0Pj4zXX13aGlsZSgwKTthW2w+PjJdPXAsYVtsKzQ+PjJdPWZ9ZnVu''@;'; + put 'put ''Y3Rpb24gcFIobCl7bHw9MDt2YXIgZixwLGM9MCxtPTAsQT0wO2ZvcihmPTB8dnIoOCksYVtmPj4yXT1sLGFbKHA9Zis0fDApPj4yXT0wfHZyKDEyKmx8MCksYz0wOyEoKDB8Yyk+PSgwfGwpKTspQT0wfHlFKCksYVsobT0wfGFbcD4+Ml0pKygxMipjfDApKzg+PjJdPUEsYVttKygxMipjfDAp''@;'; + put 'put ''Pj4yXT0wLGM9YysxfDA7cmV0dXJuIDB8Zn1mdW5jdGlvbiB6MShsLGMsZil7dmFyIHAsbTtsfD0wLGN8PTAscD1hZSxhZT1hZSsxNnwwLGFbKG09cCk+PjJdPWZ8PTAsbWlbNjMmYVsoZj0wfGFbKDB8YVtsKzQ+PjJdKSsoMTIqY3wwKSs4Pj4yXSk+PjJdXShmLG0sMSksYWU9cH1mdW5jdGlv''@;'; + put 'put ''biBtZihsLGMsZil7dmFyIHAsbTtyZXR1cm4gbHw9MCxjfD0wLHA9YWUsYWU9YWUrMTZ8MCxhWyhtPXApPj4yXT1mfD0wLGY9MCE9KDB8bWlbNjMmYVsoZj0wfGFbKDB8YVtsKzQ+PjJdKSsoMTIqY3wwKSs4Pj4yXSk+PjJdXShmLG0sNTEyKSkmMSxhZT1wLDB8Zn1mdW5jdGlvbiBOTShsKXt2''@;'; + put 'put ''YXIgYz0wLGY9MCxwPTAsbT0wO3N3aXRjaCgwfChjPTB8YVsobHw9MCk+PjJdKSl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTphWzQrKDB8YVtsKzQ+PjJdKT4+Ml09MDticmVhaztkZWZhdWx0OmZvcihwPTB8ZnVuY3Rpb24gTDQobCl7bHw9MDt2YXIgYztyZXR1cm4gYz0wfHZyKDgpLGFbYys0Pj4y''@;'; + put 'put ''XT0wfHZyKGw8PDIpLGFbYz4+Ml09LTEsMHxjfShjKSxtPWwrNHwwLGY9MCxjPTA7Oyl7aWYoKDB8Zik+PSgwfGFbbD4+Ml0pKXtjPTA7YnJlYWt9MHxhWygwfGFbbT4+Ml0pKygxMipmfDApPj4yXXx8KGM9MHxWTShsLGYsYyxwKSksZj1mKzF8MH1mb3IoOyEoKDB8KGY9MHxqTShwKSkpPD0t''@;'; + put 'put ''MSk7KWFbKDB8YVttPj4yXSkrKDEyKmZ8MCkrND4+Ml09YyxjPWMrMXwwOyFmdW5jdGlvbiBzbShsKXtGdCgwfGFbNCsobHw9MCk+PjJdKSxGdChsKX0ocCl9fWZ1bmN0aW9uIFZNKGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgdyxiLGssbT0wLEE9MDtmb3IoYVsoaz0oQT0wfGFbKGI9NCsobHw9''@;'; + put 'put ''MCl8MCk+PjJdKSsoMTIqKGN8PTApfDApfDApPj4yXT0xLHc9NCsoQT0wfGFbQSsoMTIqY3wwKSs4Pj4yXSl8MCxmPWYrMXwwLEE9MHxzMChBKTtBOykwfGFbKDB8YVtiPj4yXSkrKDEyKihtPTB8YVsobT0oMHwobT0wfGFbOCsoMHxhW3c+PjJdKT4+Ml0pKTwwPzB8YVtBKzg+PjJdOkErKDAt''@;'; + put 'put ''bSl8MCk+PjJdKXwwKT4+Ml18fChmPTB8Vk0obCxtLGYscCkpLEE9MHxhW0E+PjJdO3JldHVybiBhW2s+PjJdPTIsZnVuY3Rpb24gX3YobCxjKXtjfD0wO3ZhciBmO2FbKGx8PTApPj4yXT1mPTErKDB8YVtsPj4yXSl8MCxhWygwfGFbbCs0Pj4yXSkrKGY8PDIpPj4yXT1jfShwLGMpLGYrMXww''@;'; + put 'put ''fWZ1bmN0aW9uIGpNKGwpe3ZhciBjLGY9MDtyZXR1cm4tMT09KDB8KGM9MHxhWyhsfD0wKT4+Ml0pKT9sPS0xOihmPTB8YVsoMHxhW2wrND4+Ml0pKyhjPDwyKT4+Ml0sYVtsPj4yXT1jKy0xLGw9ZiksMHxsfWZ1bmN0aW9uIHVtKGwpe3ZhciBjLGY7cmV0dXJuIGFbKGY9MHxhWzE2KyhsfD0w''@;'; + put 'put ''KT4+Ml0pKyg0MCooYz0wfGFbbD4+Ml0pfDApKzMyPj4yXT1jLGFbbD4+Ml09YysxLGYrKDQwKmN8MCl8MH1mdW5jdGlvbiB2MyhsLGMsZixwKXtjfD0wLGZ8PTAscD0rcDt2YXIgbSxBPTA7cmV0dXJuIGFbKEE9NCsobHw9MCl8MCk+PjJdPTErKG09MHxhW0E+PjJdKSxsPShBPTB8YVtsKzIw''@;'; + put 'put ''Pj4yXSkrKDI0Km18MCl8MCxhW0ErKDI0Km18MCkrMTI+PjJdPWFbYyszMj4+Ml0sYVtBKygyNCptfDApKzE2Pj4yXT1hW2YrMzI+PjJdLF9bbD4+M109cCxhW0ErKDI0Km18MCkrOD4+Ml09MCxBUihjLG0pLEFSKGYsbSksMHxsfWZ1bmN0aW9uIEFSKGwsYyl7dmFyIGYscDthWygwfGFbMjgr''@;'; + put 'put ''KGx8PTApPj4yXSkrKChwPTB8cnRbKGY9bCsxNnwwKT4+MV0pPDwxNj4+MTY8PDIpPj4yXT1jfD0wLHJ0W2Y+PjFdPXArMTw8MTY+PjE2fWZ1bmN0aW9uIFd6KGwsYyxmKXt2YXIgcD0wO3JldHVybigwfChwPTB8YVsxMisoY3w9MCk+PjJdKSk9PSgwfGFbMzIrKGZ8PTApPj4yXSkmJihwPTB8''@;'; + put 'put ''YVtjKzE2Pj4yXSksKDB8YVsxNisobHw9MCk+PjJdKSsoNDAqcHwwKXwwfWZ1bmN0aW9uIEN2KGwsYyl7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO1JBKEE9MHxhWyhsfD0wKT4+Ml0sMyxjfD0wKSxjPTB8YVtBKzkyPj4yXTtkb3tpZihjKXtpZihhW2wrNzY+PjJdPXc9MHxhWzEyKyhm''@;'; + put 'put ''PTB8YVtjKzE2Pj4yXSk+PjJdLGFbbCs4ND4+Ml09cD0wfGFbZisxNj4+Ml0sYVsobT1sKzgwfDApPj4yXT1hW2Y+PjJdLGFbbCs4OD4+Ml09YVtjKzQ+PjJdLGFbKGY9bCsxNTJ8MCk+PjJdPXA9YVtmPj4yXXxhW3A+PjJdLGM9MHxhW0ErODA+PjJdKXthW2wrNjA+PjJdPWFbMTIrKEE9MHxh''@;'; + put 'put ''W2MrMTY+PjJdKT4+Ml0sYVtsKzY4Pj4yXT1iPTB8YVtBKzE2Pj4yXSxhW2wrNzI+PjJdPWFbYys0Pj4yXSxhW2Y+PjJdPXB8YVtiPj4yXSxhW2wrNjQ+PjJdPWFbKDA9PSgwfHcpP206QSk+PjJdLGM9MzAwO2JyZWFrfWFbbCs2MD4+Ml09MCxjPTk5OTticmVha31jPTk5OX13aGlsZSgwKTty''@;'; + put 'put ''ZXR1cm4gMHxjfWZ1bmN0aW9uIHdSKGwpe3ZhciBjLGY9MDtyZXR1cm4gYz0wfGFbNjArKGx8PTApPj4yXSwwfGZ1bmN0aW9uIEZHKGwpe3ZhciB3LGssYz0wLGY9MCxwPTAsbT0wLEE9MCxiPTA7az1hZSxhZT1hZSsxNnwwLGI9ays4fDAsdz1rLHA9MHxhWyhsfD0wKT4+Ml0sMCE9KDB8KGM9''@;'; + put 'put ''MHxhW2wrNzY+PjJdKSkmJjAhPSgwfChmPTB8YVtjPj4yXSkpPyhDb1sxMjcmZl0obCksbT0xMik6bT00O2Rve2lmKDQ9PSgwfG0pKWlmKDA9PSgwfGFbbCs0MD4+Ml0pJiYwPT0oMHxhWyhBPWwrMzZ8MCk+PjJdKSl7aWYoMHxmZVtwKzEzPj4wXSYmdXJlKGwpLCEoZj0wfGFbKGM9bCszMnww''@;'; + put 'put ''KT4+Ml0pKXthW0E+PjJdPWFbMTU2NzldLG09MTI7YnJlYWt9cD0wfGVTKGYsMTA2NTEyKSxhW0E+PjJdPXAscD9tPTEyOihiPTB8YVsxNisoMHxhW2wrMTI+PjJdKT4+Ml0sQT0wfGFbYz4+Ml0sYz0wfFhrKDB8YVs0NzY0M10pLGFbdz4+Ml09QSxhW3crND4+Ml09YyxHc1s2MyZiXSg5ODE2''@;'; + put 'put ''OSx3KSxjPTEpfWVsc2UgbT0xMn13aGlsZSgwKTtyZXR1cm4gMTI9PSgwfG0pJiYoMTAyNCZhW2wrMTUyPj4yXT8oR3NbNjMmYVsxNisoMHxhW2wrMTI+PjJdKT4+Ml1dKDk4MjA3LGIpLGM9MSk6Yz0wKSxhZT1rLDB8Y30obCk/bD0xOigwIT0oMHxjKSYmMCE9KDB8KGY9MHxhW2M+PjJdKSkm''@;'; + put 'put ''JkNvWzEyNyZmXShsKSxsPTApLDB8bH1mdW5jdGlvbiBrdihsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrND4+Ml0pJiZDb1sxMjcmZl0obCksYVsyNCsoMHxhW2w+PjJdKT4+Ml09MCxjcmUobCl9ZnVuY3Rpb24gejgobCxjLGYpe2Z8PTA7dmFyIHcs''@;'; + put 'put ''cD0wLG09MCxBPTA7cD0rX1s1MDQrKGN8PTApPj4zXSxtPStfW2MrNTEyPj4zXSwwfGFbYyszNjA+PjJdP0E9LShtKyArX1tmKzg+PjNdKTooQT0rX1tmPj4zXStwLGY9Zis4fDAscD1tKSxtPStfW2MrNTI4Pj4zXSoodz0rX1tjKzM1Mj4+M10pKigrX1tmPj4zXStwKSxfWyhsfD0wKT4+M109''@;'; + put 'put ''K19bYys1MjA+PjNdKncqQSxfW2wrOD4+M109bX1mdW5jdGlvbiBNaChsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbSxBLGIsdz0wLGs9MDttPStfWzUwNCsobHw9MCk+PjNdLEE9K19bbCs1MTI+PjNdLGI9K19bbCs1MjA+PjNdKih3PStfW2wrMzUyPj4zXSksdyo9K19bbCs1Mjg+PjNd''@;'; + put 'put ''O2U6ZG97aWYoMHxhW2wrMzYwPj4yXSlmb3IobD0wOzspe2lmKCgwfGwpPj0oMHxwKSlicmVhayBlO2s9LWIqKCtfW2MrKGw8PDQpKzg+PjNdK0EpLF9bZisobDw8NCkrOD4+M109KCtfW2MrKGw8PDQpPj4zXSttKSp3LF9bZisobDw8NCk+PjNdPWssbD1sKzF8MH1lbHNlIGZvcihsPTA7Oyl7''@;'; + put 'put ''aWYoKDB8bCk+PSgwfHApKWJyZWFrIGU7X1tmKyhsPDw0KT4+M109KCtfW2MrKGw8PDQpPj4zXSttKSpiLF9bZisobDw8NCkrOD4+M109KCtfW2MrKGw8PDQpKzg+PjNdK0EpKncsbD1sKzF8MH19d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBVeihsKXt2YXIgYz0wLGY9MDswfChjPTB8''@;'; + put 'put ''YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYysxNj4+Ml0pJiZSY1szMSZmXShsLDB8YVsoMHxhWzMwOCsoMHxhW2w+PjJdKT4+Ml0pKygoYz0wfGFbbCsxNjA+PjJdKTw8Mik+PjJdLGMsMHxhW2wrMTU2Pj4yXSl9ZnVuY3Rpb24gcGIobCl7dmFyIGMsZj0wOzB8KGM9MHxhWzYwKyhsfD0w''@;'; + put 'put ''KT4+Ml0pJiYwfChmPTB8YVtjKzIwPj4yXSkmJkNvWzEyNyZmXShsKX1mdW5jdGlvbiBHOChsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrNDA+PjJdKSYmQ29bMTI3JmZdKGwpfWZ1bmN0aW9uIGNtKGwpe3ZhciBjLGY9MDswfChjPTB8YVs2MCsobHw9''@;'; + put 'put ''MCk+PjJdKSYmMHwoZj0wfGFbYys0ND4+Ml0pJiZDb1sxMjcmZl0obCl9ZnVuY3Rpb24gWWYobCl7dmFyIGMsZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzQ4Pj4yXSkmJkNvWzEyNyZmXShsKX1mdW5jdGlvbiBmbShsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8''@;'; + put 'put ''PTApPj4yXSkmJjB8KGY9MHxhW2MrNTI+PjJdKSYmQ29bMTI3JmZdKGwpfWZ1bmN0aW9uIEcxKGwsYyxmLHAsbSl7dmFyIEEsdz0wOzB8KEE9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfCh3PTB8YVtBKzcyPj4yXSkmJnA4WzE1JnddKGwsY3w9MCxmfD0wLHB8PTAsbXw9MCl9ZnVuY3Rpb24gRWgo''@;'; + put 'put ''bCl7dmFyIGMsZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzc2Pj4yXSkmJkNvWzEyNyZmXShsKX1mdW5jdGlvbiBXOChsLGMpe3ZhciBmLHA9MDswfChmPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwocD0wfGFbZis4MD4+Ml0pJiZHc1s2MyZwXShsLGN8PTApfWZ1bmN0''@;'; + put 'put ''aW9uIE80KGwpe3ZhciBjLGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYys4ND4+Ml0pJiZDb1sxMjcmZl0obCl9ZnVuY3Rpb24gaG0obCxjLGYpe2N8PTA7dmFyIHAsQSx3LGIsayxtPTAsTT0wO2s9YWUsYWU9YWUrNDh8MCxwPWsrMzJ8MCxBPWssdz1rKzE2fDAsYj0w''@;'; + put 'put ''fGFbNjArKGx8PTApPj4yXSxNPTB8YVsoZnw9MCk+PjJdO2Rve2lmKDB8TSYmMHxmZVtNPj4wXSl7aWYoMHwoTT0wfGFbbCsxNj4+Ml0pJiYwPT0oMHxhW00rMTQ0Pj4yXSkpYnJlYWs7ODE5MiZhW2wrMTUyPj4yXT8oYVtBPj4yXT1hW2M+PjJdLGFbQSs0Pj4yXT1hW2MrND4+Ml0sYVtBKzg+''@;'; + put 'put ''PjJdPWFbYys4Pj4yXSxhW0ErMTI+PjJdPWFbYysxMj4+Ml0pOihhW3A+PjJdPWFbYz4+Ml0sYVtwKzQ+PjJdPWFbYys0Pj4yXSxhW3ArOD4+Ml09YVtjKzg+PjJdLGFbcCsxMj4+Ml09YVtjKzEyPj4yXSx6OCh3LGwscCksYVtBPj4yXT1hW3c+PjJdLGFbQSs0Pj4yXT1hW3crND4+Ml0sYVtB''@;'; + put 'put ''Kzg+PjJdPWFbdys4Pj4yXSxhW0ErMTI+PjJdPWFbdysxMj4+Ml0pLDB8YiYmMHwobT0wfGFbYis4OD4+Ml0pJiYoYVtwPj4yXT1hW0E+PjJdLGFbcCs0Pj4yXT1hW0ErND4+Ml0sYVtwKzg+PjJdPWFbQSs4Pj4yXSxhW3ArMTI+PjJdPWFbQSsxMj4+Ml0sZGxbMTI3Jm1dKGwscCxmKSl9fXdo''@;'; + put 'put ''aWxlKDApO2FlPWt9ZnVuY3Rpb24gbWEobCxjKXt2YXIgcCxtLEEsdyxmPTA7cD0wfGFbNjArKGx8PTApPj4yXSxtPTE2KygwfGFbbCsxNj4+Ml0pfDAsKEE9MCE9KDB8KHc9MHwkcyhjfD0wLDU4KSkpKSYmKGZlW3c+PjBdPTApLDB8cCYmKHU2KDB8YVtsKzY4Pj4yXSxjLG0pLDB8KGY9MHxh''@;'; + put 'put ''W3ArOTI+PjJdKSkmJkdzWzYzJmZdKGwsbSksQSYmKGZlW3c+PjBdPTU4KX1mdW5jdGlvbiB1NihsLGMsZil7bHw9MDt2YXIgcCxtLEEsYixrLE0sdz0wO009YWUsYWU9YWUrMzJ8MCxBPU0rMTZ8MCxrPU0rOHwwLGI9TSxhWyhmfD0wKT4+Ml09Y3w9MCxhW2YrMzI+PjJdPTUscD0wfHZtKGMp''@;'; + put 'put ''LDAhPSgwfChtPTB8YVtsKzE2Pj4yXSkpJiYwIT0oMHx0dyhwLG0sMHxhW2wrMjA+PjJdLDQsMTAyKSl8fCh3PTMpO2U6ZG97aWYoMz09KDB8dykpe3N3aXRjaCgwfFMzKGMsZiwwfGFbbCsyND4+Ml0pKXtjYXNlIDA6YnJlYWsgZTtjYXNlIDE6YnJlYWs7ZGVmYXVsdDokcigxLDExMTA0NixB''@;'; + put 'put ''KTticmVhayBlfWw9MHxRbigxNisoMHxVbyhjKSl8MCksYVtiPj4yXT1jLG9vKGwsMTExMDExLGIpLDB8ZDllKGwpJiYoYVtrPj4yXT1jLCRyKDAsMTExMDIwLGspKSxGdChsKX19d2hpbGUoMCk7YWU9TX1mdW5jdGlvbiBobChsLGMpe3ZhciBwLG0sQSx3LGY9MDtwPTB8YVs2MCsobHw9MCk+''@;'; + put 'put ''PjJdLG09NTYrKDB8YVtsKzE2Pj4yXSl8MCwoQT0wIT0oMHwodz0wfCRzKGN8PTAsNTgpKSkpJiYoZmVbdz4+MF09MCksMHxwJiYodTYoMHxhW2wrNjg+PjJdLGMsbSksMHwoZj0wfGFbcCs5Mj4+Ml0pKSYmR3NbNjMmZl0obCxtKSxBJiYoZmVbdz4+MF09NTgpfWZ1bmN0aW9uIFVmKGwsYyxm''@;'; + put 'put ''LHApe2Z8PTAscD0rcDt2YXIgQSx3LG09MCxiPTA7Yj05NisoMHxhWyh3PTE2KyhsfD0wKXwwKT4+Ml0pfDAsMHwoQT0wfGFbbCs2MD4+Ml0pJiYodTYoMHxhW2wrNjg+PjJdLGN8PTAsYiksMHwobT0wfGFbQSs5Mj4+Ml0pKSYmR3NbNjMmbV0obCxiKSxhWzEzNisoYj0wfGFbdz4+Ml0pPj4y''@;'; + put 'put ''XT1mLGpuW2IrMTQwPj4yXT1wfWZ1bmN0aW9uIGQyKGwsYyl7dmFyIGIsayxmPTAscD0wLG09MCxBPTAsdz0wO2s9YWUsYWU9YWUrMTZ8MCxiPWssdz0wfGFbNjArKGx8PTApPj4yXSxhWzE2MCsobD0wfGFbbCsxNj4+Ml0pPj4yXT1jfD0wO2U6ZG97aWYoMCE9KDB8YykmMCE9KDB8dykpe3c9''@;'; + put 'put ''bCsxNDR8MCxBPWwrMTUyfDAsbT1sKzE0OHwwLGw9Yzt0OmZvcig7Oyl7aWYocD1sKzR8MCwhKGw9MHxhW2w+PjJdKSlicmVhayBlO246ZG97c3dpdGNoKDB8ZmVbbD4+MF0pe2Nhc2UgMTE1OmlmKCEoMHxqaShsLDExMTA2NykpKXthW3c+PjJdPTMsbD1wO2NvbnRpbnVlIHR9aWYoISgwfGpp''@;'; + put 'put ''KGwsMTExMDg4KSkpe2ZvcihmPTExNTtjPWwrMXwwLGY8PDI0Pj4yNDspbD1jLGY9MHxmZVtjPj4wXTtfW0E+PjNdPStrcChjKSxsPXA7Y29udGludWUgdH1icmVhaztjYXNlIDEwMDppZighKDB8amkobCwxMzczMjcpKSl7YVt3Pj4yXT0xLGw9cDtjb250aW51ZSB0fWlmKCEoMHxqaShsLDEz''@;'; + put 'put ''NzMyMCkpKXthW3c+PjJdPTIsbD1wO2NvbnRpbnVlIHR9YnJlYWs7Y2FzZSAxMDU6aWYoMHxqaShsLDEzNDMzNSkmJjB8amkobCwxMTEwNzMpKWJyZWFrIG47YVt3Pj4yXT0wLGw9cDtjb250aW51ZSB0O2Nhc2UgOTg6aWYoISgwfGppKGwsMTExMDgzKSkpe19bQT4+M109MixsPXA7Y29udGlu''@;'; + put 'put ''dWUgdH1icmVhaztjYXNlIDEwMjppZighKDB8amkobCwxMTExMDEpKSl7YVttPj4yXT0xLGw9cDtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTE3OmlmKCEoMHxqaShsLDExMTEwOCkpKXthW20+PjJdPTAsbD1wO2NvbnRpbnVlIHR9YnJlYWs7Y2FzZSAxMTY6aWYoISgwfGppKGwsMTExMTE3KSkp''@;'; + put 'put ''e2w9cDtjb250aW51ZSB0fX19d2hpbGUoMCk7YVtiPj4yXT1sLCRyKDAsMTExMTI1LGIpLGw9cH19fXdoaWxlKDApO2FlPWt9ZnVuY3Rpb24gJHUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIEEsYixtPTAsdz0wO2I9YWUsYWU9YWUrMzJ8MCxBPWIsMHwoZj0wfGFbNjArKGx8PTApPj4y''@;'; + put 'put ''XSkmJjB8KG09MHxhWyh3PWYrOTZ8MCk+PjJdKSYmMHxhWzE0NCsoMHxhW2wrMTY+PjJdKT4+Ml0mJihfW0E+PjNdPS41KigrX1soZj1jKzE2fDApPj4zXSsgK19bYz4+M10pLF9bQSs4Pj4zXT0uNSooK19bYysyND4+M10rICtfW2MrOD4+M10pLGFbKGM9QSsxNnwwKT4+Ml09YVtmPj4yXSxh''@;'; + put 'put ''W2MrND4+Ml09YVtmKzQ+PjJdLGFbYys4Pj4yXT1hW2YrOD4+Ml0sYVtjKzEyPj4yXT1hW2YrMTI+PjJdLDgxOTImYVtsKzE1Mj4+Ml18fChNaChsLEEsQSwyKSxtPTB8YVt3Pj4yXSksZGxbMTI3Jm1dKGwsQSxwKSksYWU9Yn1mdW5jdGlvbiBrYShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2''@;'; + put 'put ''YXIgRCxHLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MDtpZihHPWFlLGFlPWFlKzQ4fDAsRD1HLDB8KG09MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfGFbKFI9bSsxMDB8MCk+PjJdJiYwfGFbMTQ0KyhrPTB8YVsoTT1sKzE2fDApPj4yXSk+PjJdKXtpZig0JnApe209LTUmcCx3PXA9aysxNnww''@;'; + put 'put ''LGI9KEE9RCkrNDB8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKTt3PWsrNTZ8MCxiPShBPXApKzQwfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxiKSk7QT0xfWVsc2UgbT1wLEE9MDtpZig4''@;'; + put 'put ''MTkyJmFbbCsxNTI+PjJdP1JjWzMxJmFbUj4+Ml1dKGwsYyxmLG0pOihwPWYrMTB8MCwoMHxhWzQ3MzYzXSk8KDB8Zik/KGFbNDczNjNdPXAscD0wfFYwKDB8YVs0NzM2NF0scDw8NCksYVs0NzM2NF09cCk6cD0wfGFbNDczNjRdLE1oKGwsYyxwLGYpLFJjWzMxJmFbUj4+Ml1dKGwscCxmLG0p''@;'; + put 'put ''KSwwfEEpe3c9RCxiPTQwKyhBPTE2KygwfGFbTT4+Ml0pfDApfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxiKSl9fWFlPUd9ZnVuY3Rpb24geTMobCxjLGYpe3ZhciBwLG0sQTtsfD0wLGZ8PTAscD1hZSxhZT1hZSs2NHwwLGFbKG09cCk+PjJd''@;'; + put 'put ''PWFbKGN8PTApPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLGFbKEE9bSszMnwwKT4+Ml09YVsoYz1jKzE2fDApPj4yXSxhW0ErND4+Ml09YVtjKzQ+PjJdLGFbQSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2Mr''@;'; + put 'put ''MTI+PjJdLF9bbSsxNj4+M109K19bbT4+M10sX1ttKzI0Pj4zXT0rX1ttKzQwPj4zXSxfW20rNDg+PjNdPStfW0E+PjNdLF9bbSs1Nj4+M109K19bbSs4Pj4zXSxrYShsLG0sNCxmKSxhZT1wfWZ1bmN0aW9uIFFmKGwsYyxmLHAsbSxBKXtjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTA7dmFyIGIs''@;'; + put 'put ''dz0wLGs9MDtiPTB8YVs2MCsobHw9MCk+PjJdO2Rve2lmKDB8YiYmMHwodz0wfGFbKGs9YisxMDR8MCk+PjJdKSYmMHxhWzE0NCsoMHxhW2wrMTY+PjJdKT4+Ml0pe2lmKDgxOTImYVtsKzE1Mj4+Ml18MCl7aDlbMTUmd10obCxjLGYscCxtLDI1NSZBKTticmVha313PWYrMTB8MCwoMHxhWzQ3''@;'; + put 'put ''MzYzXSk8KDB8Zik/KGFbNDczNjNdPXcsdz0wfFYwKDB8YVs0NzM2NF0sdzw8NCksYVs0NzM2NF09dyk6dz0wfGFbNDczNjRdLE1oKGwsYyx3LGYpLGg5WzE1JmFbaz4+Ml1dKGwsdyxmLHAsbSwyNTUmQSl9fXdoaWxlKDApfWZ1bmN0aW9uIFdvKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MCxt''@;'; + put 'put ''PTAsQT0wO3A9MHxhWzYwKyhsfD0wKT4+Ml07ZG97aWYoMHxwJiYwfChtPTB8YVsoQT1wKzEwOHwwKT4+Ml0pJiYwfGFbMTQ0KygwfGFbbCsxNj4+Ml0pPj4yXSl7aWYoODE5MiZhW2wrMTUyPj4yXXwwKXtkbFsxMjcmbV0obCxjLGYpO2JyZWFrfXA9ZisxMHwwLCgwfGFbNDczNjNdKTwoMHxm''@;'; + put 'put ''KT8oYVs0NzM2M109cCxwPTB8VjAoMHxhWzQ3MzY0XSxwPDw0KSxhWzQ3MzY0XT1wKTpwPTB8YVs0NzM2NF0sTWgobCxjLHAsZiksZGxbMTI3JmFbQT4+Ml1dKGwscCxmKX19d2hpbGUoMCl9ZnVuY3Rpb24gZG0obCxjKXt2YXIgZixwPTA7Zj0wfGFbNjArKGx8PTApPj4yXSwwfChjfD0wKSYm''@;'; + put 'put ''ISgwPT0oMHxmKXwwPT0oMHxmZVtjPj4wXSkpJiYwfChwPTB8YVtmKzExMj4+Ml0pJiZHc1s2MyZwXShsLGMpfWZ1bmN0aW9uIFFNKGwsYyxmLHAsbSxBKXtjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTA7dmFyIFJlLEhlLG50LFdlLG90LFN0LGt0LHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9''@;'; + put 'put ''MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFZlPTAscWU9MCxsdD0wO2lmKGt0PWFlLGFlPWFlKzExMnwwLG50PWt0KzY0fDAsU3Q9a3QsTT1rdCs5NnwwLFJlPWt0KzQ4fDAsSGU9a3QrMzJ8MCxXZT0wfGFbNjArKGx8PTApPj4yXSxsfHxQcigxMTEyODIsMTExMTc4LDY5MSwxMTEx''@;'; + put 'put ''ODkpLGN8fFByKDExMTIwOCwxMTExNzgsNjkyLDExMTE4OSksMHxmZVtjPj4wXXx8UHIoMTExMjEzLDExMTE3OCw2OTMsMTExMTg5KSxvdD0wfGRyZShjKSl7aWYoYVtudD4+Ml09YVsocGU9bCs0MzJ8MCk+PjJdLGFbbnQrND4+Ml09YVtwZSs0Pj4yXSxhW250Kzg+PjJdPWFbcGUrOD4+Ml0s''@;'; + put 'put ''YVtudCsxMj4+Ml09YVtwZSsxMj4+Ml0sZ3JlKE0sb3QsbnQpLCEoKDB8KHBlPTB8YVtNPj4yXSkpPDEmKDB8KGs9MHxhW00rND4+Ml0pKTwxKSl7Zm9yKGFbKE09U3QrMTZ8MCk+PjJdPWFbZj4+Ml0sYVtNKzQ+PjJdPWFbZis0Pj4yXSxhW00rOD4+Ml09YVtmKzg+PjJdLGFbTSsxMj4+Ml09''@;'; + put 'put ''YVtmKzEyPj4yXSxhW1N0Pj4yXT1hW2Y+PjJdLGFbU3QrND4+Ml09YVtmKzQ+PjJdLGFbU3QrOD4+Ml09YVtmKzg+PjJdLGFbU3QrMTI+PjJdPWFbZisxMj4+Ml0sVmU9U3QrOHwwLHFlPVN0KzI0fDAsYz0xOyEoKDB8Yyk+PSgwfHApKTspX1tTdD4+M109K19bKCtfW1N0Pj4zXTwoT2U9K19b''@;'; + put 'put ''KGx0PWYrKGM8PDQpfDApPj4zXSk/U3Q6bHQpPj4zXSxfW1ZlPj4zXT0rX1soK19bVmU+PjNdPChMZT0rX1tmKyhjPDw0KSs4Pj4zXSk/U3Q6bHQpKzg+PjNdLF9bTT4+M109K19bKCtfW00+PjNdPk9lP006bHQpPj4zXSxfW3FlPj4zXT0rX1soK19bcWU+PjNdPkxlP006bHQpKzg+PjNdLGM9''@;'; + put 'put ''YysxfDA7Rz0oZ2U9KGI9K19bTT4+M10pLSh3PStfW1N0Pj4zXSkpLyhSPSsoMHxwZSkpLEs9KExlPShiZT0rX1txZT4+M10pLShPZT0rX1tWZT4+M10pKS8oRD0rKDB8aykpO2U6ZG97c3dpdGNoKDB8Sk0oQSkpe2Nhc2UgMTppZihHPEspe1IqPUcsRCo9RzticmVhayBlfVIqPUssRCo9Szti''@;'; + put 'put ''cmVhayBlO2Nhc2UgMjpSKj1HO2JyZWFrO2Nhc2UgMzpEKj1LO2JyZWFrO2Nhc2UgNDpSKj1HLEQqPUt9fXdoaWxlKDApO1I8Z2UmJihfW1N0Pj4zXT13Kz1nZT0uNSooZ2UtUiksX1tNPj4zXT1iLT1nZSksRDxMZSYmKF9bVmU+PjNdPU9lKyhMZT0uNSooTGUtRCkpLF9bcWU+PjNdPWJlLUxl''@;'; + put 'put ''KSw4MTkyJmFbbCsxNTI+PjJdfHwoYVtudD4+Ml09YVtTdD4+Ml0sYVtudCs0Pj4yXT1hW1N0KzQ+PjJdLGFbbnQrOD4+Ml09YVtTdCs4Pj4yXSxhW250KzEyPj4yXT1hW1N0KzEyPj4yXSx6OChSZSxsLG50KSxhW1N0Pj4yXT1hW1JlPj4yXSxhW1N0KzQ+PjJdPWFbUmUrND4+Ml0sYVtTdCs4''@;'; + put 'put ''Pj4yXT1hW1JlKzg+PjJdLGFbU3QrMTI+PjJdPWFbUmUrMTI+PjJdLGFbbnQ+PjJdPWFbTT4+Ml0sYVtudCs0Pj4yXT1hW00rND4+Ml0sYVtudCs4Pj4yXT1hW00rOD4+Ml0sYVtudCsxMj4+Ml09YVtNKzEyPj4yXSx6OChIZSxsLG50KSxhW00+PjJdPWFbSGU+PjJdLGFbTSs0Pj4yXT1hW0hl''@;'; + put 'put ''KzQ+PjJdLGFbTSs4Pj4yXT1hW0hlKzg+PjJdLGFbTSsxMj4+Ml09YVtIZSsxMj4+Ml0sYj0rX1tNPj4zXSx3PStfW1N0Pj4zXSksdz5iJiYoX1tTdD4+M109YixfW00+PjNdPXcpLCh3PStfW1ZlPj4zXSk+KGI9K19bcWU+PjNdKSYmKF9bVmU+PjNdPWIsX1txZT4+M109dyksMHxXZSYmKGx0''@;'; + put 'put ''PTB8YVtsKzcyPj4yXSxhW250Pj4yXT1hW1N0Pj4yXSxhW250KzQ+PjJdPWFbU3QrND4+Ml0sYVtudCs4Pj4yXT1hW1N0Kzg+PjJdLGFbbnQrMTI+PjJdPWFbU3QrMTI+PjJdLGFbbnQrMTY+PjJdPWFbU3QrMTY+PjJdLGFbbnQrMjA+PjJdPWFbU3QrMjA+PjJdLGFbbnQrMjQ+PjJdPWFbU3Qr''@;'; + put 'put ''MjQ+PjJdLGFbbnQrMjg+PjJdPWFbU3QrMjg+PjJdLGZ1bmN0aW9uIGtSKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQSxiLGssRCx3PTAsTT0wO0Q9YWUsYWU9YWUrMTc2fDAsaz1EKzh8MCxiPUQsQT1EKzQwfDAsKGx8PTApfHxQcigxMTEyODIsMTExMjg2LDUyLDExMTMw''@;'; + put 'put ''MCksY3x8UHIoMTExMzEyLDExMTI4Niw1MywxMTEzMDApLCh3PTB8YVtjKzg+PjJdKXx8UHIoMTExMzE1LDExMTI4Niw1NCwxMTEzMDApLDB8ZmVbdz4+MF18fFByKDExMTMyNCwxMTEyODYsNTUsMTExMzAwKSxpZChBLDB8YVtjKzI4Pj4yXSksdz1BKygwfFVvKEEpKXwwLGZlW3c+PjBdPTU4''@;'; + put 'put ''LGZlW3crMT4+MF09MCxzOShBLG0pLDk5OT09KDB8ZnVuY3Rpb24gUXoobCxjKXtyZXR1cm4oYz0wfFJBKDB8YVsobHw9MCk+PjJdLDQsY3w9MCkpPyhhW2wrOTI+PjJdPWFbMTIrKGM9MHxhW2MrMTY+PjJdKT4+Ml0sYVtsKzk2Pj4yXT1hW2M+PjJdLGM9MzAwKTpjPTk5OSwwfGN9KGwsQSkp''@;'; + put 'put ''JiYoYVtiPj4yXT1BLCRyKDAsMTExMzM2LGIpKSwwfChtPTB8YVtsKzkyPj4yXSkmJjB8KE09MHxhW20+PjJdKSYmKGFbaz4+Ml09YVtmPj4yXSxhW2srND4+Ml09YVtmKzQ+PjJdLGFbays4Pj4yXT1hW2YrOD4+Ml0sYVtrKzEyPj4yXT1hW2YrMTI+PjJdLGFbaysxNj4+Ml09YVtmKzE2Pj4y''@;'; + put 'put ''XSxhW2srMjA+PjJdPWFbZisyMD4+Ml0sYVtrKzI0Pj4yXT1hW2YrMjQ+PjJdLGFbaysyOD4+Ml09YVtmKzI4Pj4yXSxSY1szMSZNXShsLGMsayxwKSksYWU9RH0obCxvdCxudCxtLGx0KSl9fWVsc2UgMCE9KDB8V2UpJjAhPSgwfCRIKGMpKSYmMHwoaz0wfGFbV2UrMTE2Pj4yXSkmJnA4WzE1''@;'; + put 'put ''JmtdKGwsYyxmLHAsMjU1Jm0pO2FlPWt0fWZ1bmN0aW9uIEpNKGwpe3JldHVybiAwfCgwfGZlWyhsfD0wKT4+MF0/MHx5MChsLDE0MTExNik/MHx5MChsLDE0MTA0OCk/MHx5MChsLDExMTIyMSk/KDB8ZTEobCkpPDwyND4+MjQhPTAmMTo0OjM6MjowKX1mdW5jdGlvbiB4aChsLGMpe2M9K2Ms''@;'; + put 'put ''MHxhWzYwKyhsfD0wKT4+Ml0mJihfWzE1MisoMHxhW2wrMTY+PjJdKT4+M109Yyl9ZnVuY3Rpb24gWE0obCxjKXtyZXR1cm4oYz0wfFJBKGx8PTAsMSxjfD0wKSk/KGFbbCsxODQ+PjJdPWFbNCsoYz0wfGFbYysxNj4+Ml0pPj4yXSxhW2wrMTcyPj4yXT1hW2MrMTI+PjJdLGFbbCsxNzY+PjJd''@;'; + put 'put ''PWFbYz4+Ml0sYVtsKzE4MD4+Ml09YVtjKzE2Pj4yXSxjPTMwMCk6Yz05OTksMHxjfWZ1bmN0aW9uIE12KGwsYyl7bHw9MDt2YXIgcCxtLEEsdyxiLGssZj0wO3A9YWUsYWU9YWUrODB8MCxtPXAsaz1wKzMyfDAsYVsoZj1wKzQ4fDApPj4yXT1hWyhjfD0wKT4+Ml0sYVtmKzQ+PjJdPWFbYys0''@;'; + put 'put ''Pj4yXSxhW2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtjKzEyPj4yXSxmdW5jdGlvbiBFUihsLGMsZil7Znw9MDt2YXIgcD0wLG09MCxBPTAsdz0wOzB8YVszNjArKGN8PTApPj4yXT8obT0tK19bZj4+M10sQT1wPStfW2MrMzUyPj4zXSx3PWMrNTIwfDAscD0rX1tmKzg+PjNdLygr''@;'; + put 'put ''X1tjKzUyOD4+M10qcCktK19bYys1MDQ+PjNdKToobT0rX1tmKzg+PjNdLEE9cD0rX1tjKzM1Mj4+M10sdz1jKzUyOHwwLHA9K19bZj4+M10vKCtfW2MrNTIwPj4zXSpwKS0rX1tjKzUwND4+M10pLEE9bS8oK19bdz4+M10qQSktK19bYys1MTI+PjNdLF9bKGx8PTApPj4zXT1wLF9bbCs4Pj4z''@;'; + put 'put ''XT1BfShrLGwsZiksdz0rX1trKzg+PjNdLF9bbSsxNj4+M109KEE9MS8rX1tsKzM1Mj4+M10pKyhiPStfW2s+PjNdKSxfW20rMjQ+PjNdPUErdyxfW20+PjNdPWItQSxfW20rOD4+M109dy1BLGM9MHxhWzE2OCsoMHxhW2w+PjJdKT4+Ml0sYVtmPj4yXT1hW20+PjJdLGFbZis0Pj4yXT1hW20r''@;'; + put 'put ''ND4+Ml0sYVtmKzg+PjJdPWFbbSs4Pj4yXSxhW2YrMTI+PjJdPWFbbSsxMj4+Ml0sYVtmKzE2Pj4yXT1hW20rMTY+PjJdLGFbZisyMD4+Ml09YVttKzIwPj4yXSxhW2YrMjQ+PjJdPWFbbSsyND4+Ml0sYVtmKzI4Pj4yXT1hW20rMjg+PjJdLGM9MHxmdW5jdGlvbiB4UihsLGMpe2N8PTA7dmFy''@;'; + put 'put ''IG0sQSxmPTAscD0wO0E9YWUsYWU9YWUrMzJ8MCxtPUEscD0wfER0KGx8PTApO2U6Zm9yKDs7KXtpZighcCl7cD05O2JyZWFrfWZvcihmPTB8dzAobCxwKTtmOyl7aWYoYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFb''@;'; + put 'put ''YysxMj4+Ml0sYVttKzE2Pj4yXT1hW2MrMTY+PjJdLGFbbSsyMD4+Ml09YVtjKzIwPj4yXSxhW20rMjQ+PjJdPWFbYysyND4+Ml0sYVttKzI4Pj4yXT1hW2MrMjg+PjJdLCgwfF9KKGYsbSkpPDwyND4+MjQpe3A9NjticmVhayBlfWY9MHxTMChsLGYpfXA9MHx6dChsLHApfWRve2lmKDYhPSgw''@;'; + put 'put ''fHApJiY5PT0oMHxwKSl7Zm9yKGY9MHxQbihsKTtmOyl7aWYoYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sYVttKzE2Pj4yXT1hW2MrMTY+PjJdLGFbbSsyMD4+Ml09YVtjKzIwPj4yXSxhW20rMjQ+''@;'; + put 'put ''PjJdPWFbYysyND4+Ml0sYVttKzI4Pj4yXT1hW2MrMjg+PjJdLCgwfFJsZShmLG0pKTw8MjQ+PjI0KXtwPTEyO2JyZWFrfWY9MHxUbihsLGYpfWlmKDEyPT0oMHxwKXx8KGFbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1h''@;'; + put 'put ''W2MrMTI+PjJdLGFbbSsxNj4+Ml09YVtjKzE2Pj4yXSxhW20rMjA+PjJdPWFbYysyMD4+Ml0sYVttKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbbSsyOD4+Ml09YVtjKzI4Pj4yXSxmPTB8Z20obCxtKSkpYnJlYWs7Zj1sO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gYWU9QSwwfGZ9KGMsZiksKDB8Yykh''@;'; + put 'put ''PSgwfGFbKGY9bCs1NzZ8MCk+PjJdKSYmKGZ1bmN0aW9uIFRSKGwpe3ZhciBjPTA7Yz0wfGFbNTc2KyhsfD0wKT4+Ml07ZTpkb3tpZigwfGMpc3dpdGNoKDB8a2koYykpe2Nhc2UgMDpmZVsoYz0xMTIrKDB8YVtjKzE2Pj4yXSl8MCk+PjBdPS0yJmZlW2M+PjBdO2JyZWFrIGU7Y2FzZSAxOmZl''@;'; + put 'put ''WyhjPTExNysoMHxhW2MrMTY+PjJdKXwwKT4+MF09LTImZmVbYz4+MF07YnJlYWsgZTtjYXNlIDI6ZmVbKGM9MTE1KygwfGFbYysxNj4+Ml0pfDApPj4wXT0tMiZmZVtjPj4wXTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX19d2hpbGUoMCk7YVtsKzU4ND4+Ml09MH0obCksYVtmPj4yXT1jLGZ1''@;'; + put 'put ''bmN0aW9uIG5FKGwpe3ZhciBmLGM9MDswfChjPTB8YVsoZj01ODQrKGx8PTApfDApPj4yXSkmJihGdChjKSxhW2Y+PjJdPTApLGM9MHxhW2wrNTc2Pj4yXTtlOmRve2lmKDB8Yylzd2l0Y2goMHxraShjKSl7Y2FzZSAwOmlmKGZlWyhsPTExMisoMHxhW2MrMTY+PjJdKXwwKT4+MF09MXxmZVts''@;'; + put 'put ''Pj4wXSwhKGw9MHxzaShjLDAsMTQxMTAxLDApKSlicmVhayBlO2FbZj4+Ml09MHxtMigwfEhvKGMsbCksYyk7YnJlYWsgZTtjYXNlIDE6aWYoZmVbKGw9MTE3KygwfGFbYysxNj4+Ml0pfDApPj4wXT0xfGZlW2w+PjBdLCEobD0wfHNpKDB8Y3IoYyksMSwxNDExMDEsMCkpKWJyZWFrIGU7YVtm''@;'; + put 'put ''Pj4yXT0wfG0yKDB8SG8oYyxsKSxjKTticmVhayBlO2Nhc2UgMjppZihmZVsobD0xMTUrKDB8YVtjKzE2Pj4yXSl8MCk+PjBdPTF8ZmVbbD4+MF0sIShsPTB8c2koMHxjcigwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pLDIsMTQxMTAxLDApKSlicmVhayBlO2FbZj4+''@;'; + put 'put ''Ml09MHxtMigwfEhvKGMsbCksYyk7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApfShsKSxmZVtsKzUzNz4+MF09MSksYWU9cH1mdW5jdGlvbiBnbShsLGMpe2N8PTA7dmFyIHAsQSx3LGIsTSxmPTAsbT0wLGs9MDtmb3IoTT1hZSxhZT1hZSszMnwwLHA9TSx3PTB8YVsxODArKEE9''@;'; + put 'put ''MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSxiPUErMTg0fDAsZj0xOzspe2lmKCgwfGYpPigwfHcpKXtrPTQ7YnJlYWt9aWYobT0wfGFbKDB8YVtiPj4yXSkrKGY8PDIpPj4yXSxhW3A+PjJdPWFbYz4+Ml0sYVtwKzQ+PjJdPWFbYys0Pj4yXSxhW3ArOD4+Ml09YVtjKzg+PjJdLGFbcCsxMj4+Ml09''@;'; + put 'put ''YVtjKzEyPj4yXSxhW3ArMTY+PjJdPWFbYysxNj4+Ml0sYVtwKzIwPj4yXT1hW2MrMjA+PjJdLGFbcCsyND4+Ml09YVtjKzI0Pj4yXSxhW3ArMjg+PjJdPWFbYysyOD4+Ml0sbT0wfGdtKG0scCkpe2w9bTticmVha31mPWYrMXwwfWRve2lmKDQ9PSgwfGspKXtpZigrX1tjKzE2Pj4zXT49K19b''@;'; + put 'put ''QSsxNj4+M10mJitfW0ErMzI+PjNdPj0rX1tjPj4zXSYmK19bYysyND4+M10+PStfW0ErMjQ+PjNdJiYrX1tBKzQwPj4zXT49K19bYys4Pj4zXSlicmVhaztsPTB9fXdoaWxlKDApO3JldHVybiBhZT1NLDB8bH1mdW5jdGlvbiBZOChsLGMpe2N8PTA7dmFyIG0sZj0wLHA9MCxBPTA7Zj01OTIr''@;'; + put 'put ''KGx8PTApfDA7ZG97aWYoKDB8ZGkoYykpPT0oMHxjKSl7aWYoMHxTYyhjKSl7Z3UoZiwwLDExMTQ4Nik7YnJlYWt9Z3UoZiwwLDExMTQ5NCk7YnJlYWt9Z3UoZiwwLDExMTUwMCl9d2hpbGUoMCk7Zm9yKGd1KGYsMSwwfHRpKGMpKSxhW2wrNTk2Pj4yXT0yLG09bCs2MDR8MCxmPTAscD0yO2Y9''@;'; + put 'put ''MHxGcyhjLDAsZik7KWd1KG0scCwwfGFbZis4Pj4yXSksZ3UobSxwKzF8MCwwfEhvKGMsZikpLGd1KG0scCsyfDAsMCkscD1wKzN8MDthW2wrNjA4Pj4yXT1wLCgoZj0wfHNpKGMsMCwxNDEwNTUsMCkpfHwwfChmPTB8c2koYywwLDExMTQ3NywwKSkpJiYoQT0xMSksMTE9PSgwfEEpJiYoYVts''@;'; + put 'put ''KzU4OD4+Ml09MHxtMigwfEhvKGMsZiksYykpfWZ1bmN0aW9uIGIzKGwsYyl7Y3w9MDt2YXIgQSxmPTAscD0wLG09MCx3PTA7Zm9yKGd1KG09NTkyKyhsfD0wKXwwLDAsMTExNDgxKSxndShtLDEsMHx0aShjKSksYVtsKzU5Nj4+Ml09MixtPWwrNjA0fDAsQT0wfGRpKDB8Y3IoYykpLHA9Mixm''@;'; + put 'put ''PTA7Zj0wfEZzKEEsMSxmKTspZ3UobSxwLDB8YVtmKzg+PjJdKSxndShtLDF8cCwwfEhvKGMsZikpLHA9cCsyfDA7YVtsKzYwOD4+Ml09cCwoKGY9MHxzaSgwfGNyKGMpLDEsMTQxMDU1LDApKXx8MHwoZj0wfHNpKDB8Y3IoYyksMSwxMTE0NzcsMCkpKSYmKHc9NiksNj09KDB8dykmJihhW2wr''@;'; + put 'put ''NTg4Pj4yXT0wfG0yKDB8SG8oYyxmKSxjKSl9ZnVuY3Rpb24gYTIobCxjKXtjfD0wO3ZhciB3LGIsayxmPTAscD0wLG09MCxBPTAsTT0wLEQ9MDtndSh3PTU5MisobHw9MCl8MCwwLDExMTQ1MCksTT1jKzQ4fDAsZ3UodywxLDB8dGkoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6TSkrNDA+PjJd''@;'; + put 'put ''KSksZ3UodywzLChNPTAhPSgwfFNjKDB8Y3IoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6TSkrNDA+PjJdKSkpKT8xMzc3Mzg6MTQxNzQ3KSxNPWMrLTQ4fDAsZ3Uodyw0LDB8dGkoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6TSkrNDA+PjJdKSksYVtsKzU5Nj4+Ml09NyxiPWwrNjA0fDAsaz0w''@;'; + put 'put ''fGRpKDB8Y3IoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6TSkrNDA+PjJdKSksQT03LGY9MDtlOmZvcig7Oyl7Zm9yKDs7KXtpZighKGY9MHxGcyhrLDIsZikpKWJyZWFrIGU7aWYoISgwfGppKG09MHxhWyhwPWYrOHwwKT4+Ml0sMTExNDU1KSkpe0Q9NTticmVha31pZighKDB8amkobSwxMTE0''@;'; + put 'put ''NjQpKSl7RD03O2JyZWFrfWlmKDB8amkobSwxMTE0NzMpKWJyZWFrO2d1KHcsNiwwfEhvKGMsZikpfTU9PSgwfEQpPyhEPTAsZ3UodywyLDB8SG8oYyxmKSkpOjc9PSgwfEQpJiYoRD0wLGd1KHcsNSwwfEhvKGMsZikpKSxndShiLEEsMHxhW3A+PjJdKSxndShiLEErMXwwLDB8SG8oYyxmKSks''@;'; + put 'put ''QT1BKzJ8MH1hW2wrNjA4Pj4yXT1BLCgoZj0wfHNpKDB8Y3IoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6TSkrNDA+PjJdKSwyLDE0MTA1NSwwKSl8fDB8KGY9MHxzaSgwfGNyKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOk0pKzQwPj4yXSksMiwxMTE0NzcsMCkpKSYmKEQ9MTMpLDEzPT0oMHxE''@;'; + put 'put ''KSYmKGFbbCs1ODg+PjJdPTB8bTIoMHxIbyhjLGYpLGMpKX1mdW5jdGlvbiBVOChsLGMsZil7dmFyIEEscD0wLG09MDtmb3IoQT0wfGZ1bmN0aW9uIF8zKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcDtyZXR1cm4gcD0wfFFuKDEyKSxjPWM/MHxyYShjKTowLGFbcCs0Pj4yXT1jLGFbcCs4''@;'; + put 'put ''Pj4yXT0wfHJhKGYpLGFbcD4+Ml09YVsoZj1sKzEwMHwwKT4+Ml0sYVtmPj4yXT1wLDB8cH0obHw9MCxjfD0wLDB8YVsoZnw9MCk+PjJdKSxmPTB8YVtmKzQ+PjJdO209MHxhW2YrND4+Ml07KXtmb3IoYz0wO3A9MHxhW20rKDIwKmN8MCkrND4+Ml07KVpHKGwsMHxhW2Y+PjJdLHAsMHxhW20r''@;'; + put 'put ''KDIwKmN8MCkrOD4+Ml0sQSxtKygyMCpjfDApfDApLGM9YysxfDA7Zj1mKzh8MH19ZnVuY3Rpb24gaUUobCxjLGYpe2x8PTAsY3w9MDt2YXIgTGUsSGUsVmUscWUsbnQsV2Usb3QsU3Qsa3QsbHQsRXQsWnQsY3QsYnQsYW4sU24sSG4scD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxS''@;'; + put 'put ''PTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLFJlPTA7SG49YWUsYWU9YWUrNDY0fDAsYnQ9SG4rNDE2fDAsU249SG4rNDAwfDAsRXQ9SG4rMzg0fDAsTT1IbiszNTJ8MCxEPUhuKzMyMHwwLFI9SG4rMjg4fDAsRz1IbisyNTZ8MCxwZT1IbisyMjR8MCxnZT1IbisxOTJ8MCxiZT1Ibisx''@;'; + put 'put ''NjB8MCxPZT1IbisxMjh8MCxMZT1Ibis5NnwwLEhlPUhuKzY0fDAsVmU9SG4rMzJ8MCxadD1IbixudD0uMTI1KigyKihwPStfWyhxZT0wfGFbMzIrKGZ8PTApPj4yXSk+PjNdKSsgK19bKG90PWYrMTZ8MCk+PjNdKSxhbj0uNSooMiorX1soU3Q9cWUrOHwwKT4+M10rKHc9K19bKGN0PWYrMjR8''@;'; + put 'put ''MCk+PjNdKSkscWV8fFByKDExMTUzMywxMTE1NDMsNDQ1LDExMTU1MyksQT0obT1idCkrMzZ8MDtkb3thW20+PjJdPTAsbT1tKzR8MH13aGlsZSgoMHxtKTwoMHxBKSk7X1soV2U9cWUrMTZ8MCk+PjNdPStfW2Y+PjNdLXAsX1sobHQ9cWUrMjR8MCk+PjNdPXcrICtfWyhrdD1mKzh8MCk+PjNd''@;'; + put 'put ''LHdjKE0sYyxmLGJ0KSxiPTB8YVtNPj4yXSxtPTB8YVtNKzQ+PjJdLHA9K19bTSs4Pj4zXSxhW1NuPj4yXT1hWyhNPU0rMTZ8MCk+PjJdLGFbU24rND4+Ml09YVtNKzQ+PjJdLGFbU24rOD4+Ml09YVtNKzg+PjJdLGFbU24rMTI+PjJdPWFbTSsxMj4+Ml07ZTpkb3tpZihiKXtpZihfW2x0Pj4z''@;'; + put 'put ''XT0rX1trdD4+M10sd2MoRCxjLGYsYnQpLEE9MHxhW0Q+PjJdLE09MHxhW0QrND4+Ml0sdz0rX1tEKzg+PjNdLGFbRXQ+PjJdPWFbKEQ9RCsxNnwwKT4+Ml0sYVtFdCs0Pj4yXT1hW0QrND4+Ml0sYVtFdCs4Pj4yXT1hW0QrOD4+Ml0sYVtFdCsxMj4+Ml09YVtEKzEyPj4yXSwhQSl7YVtsPj4y''@;'; + put 'put ''XT0wLGFbbCs0Pj4yXT1NLF9bbCs4Pj4zXT13LGFbKGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQrOD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVha31pZih3PHA/KGFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtF''@;'; + put 'put ''dCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsxMj4+Ml0sbT1NLHA9dyk6QT1iLF9bbHQ+PjNdPStfW2t0Pj4zXS0rX1tTdD4+M10sd2MoUixjLGYsYnQpLE09MHxhW1I+PjJdLGI9MHxhW1IrND4+Ml0sdz0rX1tSKzg+PjNdLGFbRXQ+PjJdPWFbKFI9Uisx''@;'; + put 'put ''NnwwKT4+Ml0sYVtFdCs0Pj4yXT1hW1IrND4+Ml0sYVtFdCs4Pj4yXT1hW1IrOD4+Ml0sYVtFdCsxMj4+Ml09YVtSKzEyPj4yXSwhTSl7YVtsPj4yXT0wLGFbbCs0Pj4yXT1iLF9bbCs4Pj4zXT13LGFbKGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+''@;'; + put 'put ''PjJdPWFbRXQrOD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVha31pZih3PHA/KGFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsxMj4+Ml0sbT1iLHA9dyk6TT1BLF9bV2U+PjNdPStfW2Y+''@;'; + put 'put ''PjNdLF9bbHQ+PjNdPStfW2N0Pj4zXSsgK19ba3Q+PjNdLHdjKEcsYyxmLGJ0KSxBPTB8YVtHPj4yXSxiPTB8YVtHKzQ+PjJdLHc9K19bRys4Pj4zXSxhW0V0Pj4yXT1hWyhHPUcrMTZ8MCk+PjJdLGFbRXQrND4+Ml09YVtHKzQ+PjJdLGFbRXQrOD4+Ml09YVtHKzg+PjJdLGFbRXQrMTI+PjJd''@;'; + put 'put ''PWFbRysxMj4+Ml0sIUEpe2FbbD4+Ml09MCxhW2wrND4+Ml09YixfW2wrOD4+M109dyxhWyhsPWwrMTZ8MCk+PjJdPWFbRXQ+PjJdLGFbbCs0Pj4yXT1hW0V0KzQ+PjJdLGFbbCs4Pj4yXT1hW0V0Kzg+PjJdLGFbbCsxMj4+Ml09YVtFdCsxMj4+Ml07YnJlYWt9aWYodzxwJiYoYVtTbj4+Ml09''@;'; + put 'put ''YVtFdD4+Ml0sYVtTbis0Pj4yXT1hW0V0KzQ+PjJdLGFbU24rOD4+Ml09YVtFdCs4Pj4yXSxhW1NuKzEyPj4yXT1hW0V0KzEyPj4yXSxNPUEsbT1iLHA9dyksX1tsdD4+M109K19ba3Q+PjNdLStfW1N0Pj4zXSx3YyhwZSxjLGYsYnQpLEE9MHxhW3BlPj4yXSxiPTB8YVtwZSs0Pj4yXSx3PStf''@;'; + put 'put ''W3BlKzg+PjNdLGFbRXQ+PjJdPWFbKHBlPXBlKzE2fDApPj4yXSxhW0V0KzQ+PjJdPWFbcGUrND4+Ml0sYVtFdCs4Pj4yXT1hW3BlKzg+PjJdLGFbRXQrMTI+PjJdPWFbcGUrMTI+PjJdLCFBKXthW2w+PjJdPTAsYVtsKzQ+PjJdPWIsX1tsKzg+PjNdPXcsYVsobD1sKzE2fDApPj4yXT1hW0V0''@;'; + put 'put ''Pj4yXSxhW2wrND4+Ml09YVtFdCs0Pj4yXSxhW2wrOD4+Ml09YVtFdCs4Pj4yXSxhW2wrMTI+PjJdPWFbRXQrMTI+PjJdO2JyZWFrfWlmKHc8cCYmKGFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsx''@;'; + put 'put ''Mj4+Ml0sTT1BLG09YixwPXcpLF9bV2U+PjNdPStfW290Pj4zXSsgK19bZj4+M10sX1tsdD4+M109K19bY3Q+PjNdKyArX1trdD4+M10sd2MoZ2UsYyxmLGJ0KSxBPTB8YVtnZT4+Ml0sYj0wfGFbZ2UrND4+Ml0sdz0rX1tnZSs4Pj4zXSxhW0V0Pj4yXT1hWyhnZT1nZSsxNnwwKT4+Ml0sYVtF''@;'; + put 'put ''dCs0Pj4yXT1hW2dlKzQ+PjJdLGFbRXQrOD4+Ml09YVtnZSs4Pj4yXSxhW0V0KzEyPj4yXT1hW2dlKzEyPj4yXSwhQSl7YVtsPj4yXT0wLGFbbCs0Pj4yXT1iLF9bbCs4Pj4zXT13LGFbKGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQr''@;'; + put 'put ''OD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVha31pZih3PHAmJihhW1NuPj4yXT1hW0V0Pj4yXSxhW1NuKzQ+PjJdPWFbRXQrND4+Ml0sYVtTbis4Pj4yXT1hW0V0Kzg+PjJdLGFbU24rMTI+PjJdPWFbRXQrMTI+PjJdLE09QSxtPWIscD13KSxfW2x0Pj4zXT0rX1trdD4+M10sd2Mo''@;'; + put 'put ''YmUsYyxmLGJ0KSxBPTB8YVtiZT4+Ml0sYj0wfGFbYmUrND4+Ml0sdz0rX1tiZSs4Pj4zXSxhW0V0Pj4yXT1hWyhiZT1iZSsxNnwwKT4+Ml0sYVtFdCs0Pj4yXT1hW2JlKzQ+PjJdLGFbRXQrOD4+Ml09YVtiZSs4Pj4yXSxhW0V0KzEyPj4yXT1hW2JlKzEyPj4yXSwhQSl7YVtsPj4yXT0wLGFb''@;'; + put 'put ''bCs0Pj4yXT1iLF9bbCs4Pj4zXT13LGFbKGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQrOD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVha31pZih3PHAmJihhW1NuPj4yXT1hW0V0Pj4yXSxhW1NuKzQ+PjJdPWFbRXQrND4+''@;'; + put 'put ''Ml0sYVtTbis4Pj4yXT1hW0V0Kzg+PjJdLGFbU24rMTI+PjJdPWFbRXQrMTI+PjJdLE09QSxtPWIscD13KSxfW2x0Pj4zXT0rX1trdD4+M10tK19bU3Q+PjNdLHdjKE9lLGMsZixidCksQT0wfGFbT2U+PjJdLGI9MHxhW09lKzQ+PjJdLHc9K19bT2UrOD4+M10sYVtFdD4+Ml09YVsoT2U9T2Ur''@;'; + put 'put ''MTZ8MCk+PjJdLGFbRXQrND4+Ml09YVtPZSs0Pj4yXSxhW0V0Kzg+PjJdPWFbT2UrOD4+Ml0sYVtFdCsxMj4+Ml09YVtPZSsxMj4+Ml0sIUEpe2FbbD4+Ml09MCxhW2wrND4+Ml09YixfW2wrOD4+M109dyxhWyhsPWwrMTZ8MCk+PjJdPWFbRXQ+PjJdLGFbbCs0Pj4yXT1hW0V0KzQ+PjJdLGFb''@;'; + put 'put ''bCs4Pj4yXT1hW0V0Kzg+PjJdLGFbbCsxMj4+Ml09YVtFdCsxMj4+Ml07YnJlYWt9dzxwPyhhW1NuPj4yXT1hW0V0Pj4yXSxhW1NuKzQ+PjJdPWFbRXQrND4+Ml0sYVtTbis4Pj4yXT1hW0V0Kzg+PjJdLGFbU24rMTI+PjJdPWFbRXQrMTI+PjJdLG09YixwPXcpOkE9TSxiPTA9PSgwfGFbYnQr''@;'; + put 'put ''Mjg+PjJdKTtkb3tpZigwfGFbYnQrMjQ+PjJdKVJlPWI/Mzg6NDY7ZWxzZSBpZihiKXtpZigwfGFbYnQrMzI+PjJdKXtSZT0zODticmVha30wPT0oMHxhW2J0KzEyPj4yXSkmMD09KDB8YVtidD4+Ml0pfHwoUmU9MzgpfWVsc2UgUmU9NDZ9d2hpbGUoMCk7dDpkb3tpZigzOD09KDB8UmUpKXtp''@;'; + put 'put ''ZighKDB8YVtidCszMj4+Ml0pKXtfW1dlPj4zXT0rX1tmPj4zXS0rX1txZT4+M10sRz1MZSs0fDAscGU9TGUrOHwwLGdlPUxlKzE2fDAsTT1sdCxiPWt0LHc9K19bY3Q+PjNdO246Zm9yKDs7KXtmb3IoOzspe2lmKF9bTT4+M109K19bYj4+M10rdywhKCtfW1dlPj4zXTw9K19bb3Q+PjNdKyAr''@;'; + put 'put ''X1tmPj4zXSkpe1JlPTQ2O2JyZWFrIHR9aWYod2MoTGUsYyxmLGJ0KSxEPTB8YVtMZT4+Ml0sUj0wfGFbRz4+Ml0saz0rX1twZT4+M10sYVtFdD4+Ml09YVtnZT4+Ml0sYVtFdCs0Pj4yXT1hW2dlKzQ+PjJdLGFbRXQrOD4+Ml09YVtnZSs4Pj4yXSxhW0V0KzEyPj4yXT1hW2dlKzEyPj4yXSwh''@;'; + put 'put ''RClicmVhayBuO2lmKGs8cClicmVhaztNPVdlLGI9V2Usdz1udH1hW1NuPj4yXT1hW0V0Pj4yXSxhW1NuKzQ+PjJdPWFbRXQrND4+Ml0sYVtTbis4Pj4yXT1hW0V0Kzg+PjJdLGFbU24rMTI+PjJdPWFbRXQrMTI+PjJdLE09V2UsYj1XZSx3PW50LEE9RCxtPVIscD1rfWFbbD4+Ml09MCxhW2wr''@;'; + put 'put ''ND4+Ml09UixfW2wrOD4+M109ayxhWyhsPWwrMTZ8MCk+PjJdPWFbRXQ+PjJdLGFbbCs0Pj4yXT1hW0V0KzQ+PjJdLGFbbCs4Pj4yXT1hW0V0Kzg+PjJdLGFbbCsxMj4+Ml09YVtFdCsxMj4+Ml07YnJlYWsgZX1SZT00Nn19d2hpbGUoMCk7dDpkb3tpZig0Nj09KDB8UmUpJiYwPT0oMHxhW2J0''@;'; + put 'put ''KzEyPj4yXSkmMD09KDB8YVtidD4+Ml0pKXtmb3IoX1tXZT4+M109K19bZj4+M10tK19bcWU+PjNdLEQ9SGUrNHwwLFI9SGUrOHwwLEc9SGUrMTZ8MCx3PWs9K19ba3Q+PjNdLGs9K19bY3Q+PjNdK2s7Oyl7aWYoX1tsdD4+M109aywhKGs+PXctK19bU3Q+PjNdKSlicmVhayB0O2lmKHdjKEhl''@;'; + put 'put ''LGMsZixidCksYj0wfGFbSGU+PjJdLE09MHxhW0Q+PjJdLHc9K19bUj4+M10sYVtFdD4+Ml09YVtHPj4yXSxhW0V0KzQ+PjJdPWFbRys0Pj4yXSxhW0V0Kzg+PjJdPWFbRys4Pj4yXSxhW0V0KzEyPj4yXT1hW0crMTI+PjJdLCFiKWJyZWFrO3c8cCYmKGFbU24+PjJdPWFbRXQ+PjJdLGFbU24r''@;'; + put 'put ''ND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsxMj4+Ml0sQT1iLG09TSxwPXcpLHc9K19ba3Q+PjNdLGs9K19bbHQ+PjNdLWFufWFbbD4+Ml09MCxhW2wrND4+Ml09TSxfW2wrOD4+M109dyxhWyhsPWwrMTZ8MCk+PjJdPWFbRXQ+PjJdLGFb''@;'; + put 'put ''bCs0Pj4yXT1hW0V0KzQ+PjJdLGFbbCs4Pj4yXT1hW0V0Kzg+PjJdLGFbbCsxMj4+Ml09YVtFdCsxMj4+Ml07YnJlYWsgZX19d2hpbGUoMCk7X1tXZT4+M109az0rX1tvdD4+M10rKHc9K19bZj4+M10pLF9bbHQ+PjNdPStfW2t0Pj4zXS0oSz0rX1tTdD4+M10pLGI9MHxhW2J0KzQ+PjJdO2Rv''@;'; + put 'put ''e2lmKDB8YVtidCs4Pj4yXSlNPTB8YVtidD4+Ml0sUmU9NTk7ZWxzZXtpZighKDA9PSgwfGIpJjA9PSgwfChNPTB8YVtidD4+Ml0pKSkpe1JlPTU5O2JyZWFrfWlmKDB8YVtidCsyMD4+Ml0pe2I9MCxNPTAsUmU9NTk7YnJlYWt9MHxhW2J0KzMyPj4yXSYmKGI9MCxNPTAsUmU9NTkpfX13aGls''@;'; + put 'put ''ZSgwKTt0OmRve2lmKDU5PT0oMHxSZSkpe246ZG97aWYoMD09KDB8YikmMD09KDB8TSkpe19bV2U+PjNdPWssRz1WZSs0fDAscGU9VmUrOHwwLGdlPVZlKzE2fDAsTT1sdCxiPWt0LHc9SztyOmZvcig7Oyl7Zm9yKDs7KXtpZihfW00+PjNdPStfW2I+PjNdLXcsISgrX1tXZT4+M10+PSh3PStf''@;'; + put 'put ''W2Y+PjNdKS0rX1txZT4+M10pKWJyZWFrIG47aWYod2MoVmUsYyxmLGJ0KSxEPTB8YVtWZT4+Ml0sUj0wfGFbRz4+Ml0saz0rX1twZT4+M10sYVtFdD4+Ml09YVtnZT4+Ml0sYVtFdCs0Pj4yXT1hW2dlKzQ+PjJdLGFbRXQrOD4+Ml09YVtnZSs4Pj4yXSxhW0V0KzEyPj4yXT1hW2dlKzEyPj4y''@;'; + put 'put ''XSwhRClicmVhayByO2lmKGs8cClicmVhaztNPVdlLGI9V2Usdz1udH1hW1NuPj4yXT1hW0V0Pj4yXSxhW1NuKzQ+PjJdPWFbRXQrND4+Ml0sYVtTbis4Pj4yXT1hW0V0Kzg+PjJdLGFbU24rMTI+PjJdPWFbRXQrMTI+PjJdLE09V2UsYj1XZSx3PW50LEE9RCxtPVIscD1rfWFbbD4+Ml09MCxh''@;'; + put 'put ''W2wrND4+Ml09UixfW2wrOD4+M109ayxhWyhsPWwrMTZ8MCk+PjJdPWFbRXQ+PjJdLGFbbCs0Pj4yXT1hW0V0KzQ+PjJdLGFbbCs4Pj4yXT1hW0V0Kzg+PjJdLGFbbCsxMj4+Ml09YVtFdCsxMj4+Ml07YnJlYWsgZX19d2hpbGUoMCk7aWYoMHxhW2J0KzIwPj4yXXx8MHxhW2J0KzMyPj4yXSli''@;'; + put 'put ''cmVhaztmb3IoX1tXZT4+M109K19bb3Q+PjNdK3csRD1adCs0fDAsUj1adCs4fDAsRz1adCsxNnwwLGs9dz0rX1trdD4+M10sdy09K19bU3Q+PjNdOzspe2lmKF9bbHQ+PjNdPXcsISh3PD0rX1tjdD4+M10raykpYnJlYWsgdDtpZih3YyhadCxjLGYsYnQpLGI9MHxhW1p0Pj4yXSxNPTB8YVtE''@;'; + put 'put ''Pj4yXSx3PStfW1I+PjNdLGFbRXQ+PjJdPWFbRz4+Ml0sYVtFdCs0Pj4yXT1hW0crND4+Ml0sYVtFdCs4Pj4yXT1hW0crOD4+Ml0sYVtFdCsxMj4+Ml09YVtHKzEyPj4yXSwhYilicmVhazt3PHAmJihhW1NuPj4yXT1hW0V0Pj4yXSxhW1NuKzQ+PjJdPWFbRXQrND4+Ml0sYVtTbis4Pj4yXT1h''@;'; + put 'put ''W0V0Kzg+PjJdLGFbU24rMTI+PjJdPWFbRXQrMTI+PjJdLEE9YixtPU0scD13KSxrPStfW2t0Pj4zXSx3PStfW2x0Pj4zXSthbn1hW2w+PjJdPTAsYVtsKzQ+PjJdPU0sX1tsKzg+PjNdPXcsYVsobD1sKzE2fDApPj4yXT1hW0V0Pj4yXSxhW2wrND4+Ml09YVtFdCs0Pj4yXSxhW2wrOD4+Ml09''@;'; + put 'put ''YVtFdCs4Pj4yXSxhW2wrMTI+PjJdPWFbRXQrMTI+PjJdO2JyZWFrIGV9fXdoaWxlKDApO2FbbD4+Ml09QSxhW2wrND4+Ml09bSxfW2wrOD4+M109cCxhWyhsPWwrMTZ8MCk+PjJdPWFbU24+PjJdLGFbbCs0Pj4yXT1hW1NuKzQ+PjJdLGFbbCs4Pj4yXT1hW1NuKzg+PjJdLGFbbCsxMj4+Ml09''@;'; + put 'put ''YVtTbisxMj4+Ml19ZWxzZSBhW2w+PjJdPTAsYVtsKzQ+PjJdPW0sX1tsKzg+PjNdPXAsbD1sKzE2fDAsYVtsPj4yXT1hW1NuPj4yXSxhW2wrND4+Ml09YVtTbis0Pj4yXSxhW2wrOD4+Ml09YVtTbis4Pj4yXSxhW2wrMTI+PjJdPWFbU24rMTI+PjJdfXdoaWxlKDApO2FlPUhufWZ1bmN0aW9u''@;'; + put 'put ''IHdjKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBSLEcsZ2UsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLEs9MCxwZT0wO2ZvcihnZT1hZSxhZT1hZSs0OHwwLEc9Z2UrMzJ8MCxwZT1nZSsxNnwwLFI9Z2UsKG09MHxhWzMyKyhmfD0wKT4+Ml0pfHxQcigxMTE1MzMsMTExNTQzLDM4''@;'; + put 'put ''MiwxMTE1NjIpLGFbUj4+Ml09YVsoRD1tKzE2fDApPj4yXSxhW1IrND4+Ml09YVtEKzQ+PjJdLGFbUis4Pj4yXT1hW0QrOD4+Ml0sYVtSKzEyPj4yXT1hW0QrMTI+PjJdLEQ9Yys0fDAsaz0wLG09MDshKCgwfGspPj0oMHxhW0Q+PjJdKSk7KXtiPSh3PTB8YVtjPj4yXSkrKDQwKmt8MCl8MDtk''@;'; + put 'put ''b3tpZigoMHxiKSE9KDB8Zikpe2lmKCtfW3crKDQwKmt8MCkrMTY+PjNdPjAmJitfW3crKDQwKmt8MCkrMjQ+PjNdPjApYnJlYWs7bT1tKygwIT0oMHxSNChmLGIpKSYxKXwwfX13aGlsZSgwKTtrPWsrMXwwfWlmKFRoKGYsRyksaz0wfE40KGs9MHxhW2MrMjQ+PjJdLDB8YVtrPj4yXSxHKSl7''@;'; + put 'put ''Zm9yKGI9ayxBPTA7YjspKDB8KHc9MHxhWzE2KygwfGFbYis0Pj4yXSk+PjJdKSkhPSgwfGYpJiYoQWYodyxwZSksKE09K0MzKEcscGUpKT4wJiYobT1tKzF8MCxBPStKOChmLHcsRyxNLHApK0EpLDAhPSgwfChjPTB8YVt3KzMyPj4yXSkpJiYwIT0oMHxmZVtjKzM2Pj4wXSkmJihUaCh3LHBl''@;'; + put 'put ''KSwoSz0rQzMoRyxwZSkpPjApJiYobT1tKzF8MCxBPStMUihmLHcsRyxLLHApK0EpKSxiPTB8YVtiPj4yXTsoZnVuY3Rpb24gWnYobCl7bHw9MDt2YXIgYz0wO2Rve2M9bCxsPTB8YVtsPj4yXSxGdChjKX13aGlsZSgwIT0oMHxsKSl9KShrKSxhW2w+PjJdPW0sX1tsKzg+PjNdPUEsYVsocGU9''@;'; + put 'put ''bCsxNnwwKT4+Ml09YVtSPj4yXSxhW3BlKzQ+PjJdPWFbUis0Pj4yXSxhW3BlKzg+PjJdPWFbUis4Pj4yXSxhW3BlKzEyPj4yXT1hW1IrMTI+PjJdfWVsc2UgYVtsPj4yXT1tLF9bbCs4Pj4zXT0wLGFbKHBlPWwrMTZ8MCk+PjJdPWFbUj4+Ml0sYVtwZSs0Pj4yXT1hW1IrND4+Ml0sYVtwZSs4''@;'; + put 'put ''Pj4yXT1hW1IrOD4+Ml0sYVtwZSsxMj4+Ml09YVtSKzEyPj4yXTthZT1nZX1mdW5jdGlvbiBSNChsLGMpe3ZhciBmPTAscD0wLG09MCxBPTA7cmV0dXJuIGw9MHxhWzMyKyhsfD0wKT4+Ml0sMD09K19bMTYrKGN8PTApPj4zXSYmMD09K19bYysyND4+M10/MHwobD0wIT0oMHxsKSYmKGY9K19b''@;'; + put 'put ''Yz4+M10pPihwPStfW2wrMTY+PjNdKSYmZjwrX1tsPj4zXStwJiYobT0rX1tjKzg+PjNdKT4oQT0rX1tsKzI0Pj4zXSk/bTwrX1tsKzg+PjNdK0EmMTowKTooUHIoMTExNTk5LDExMTU0MywyMTksMTExNjM2KSwwKX1mdW5jdGlvbiBUaChsLGMpe3ZhciBmLHA7YVsoY3w9MCk+PjJdPX5+KHA9''@;'; + put 'put ''K19bMTYrKGw9MHxhWzMyKyhsfD0wKT4+Ml0pPj4zXSksYVtjKzQ+PjJdPX5+KGY9K19bbCsyND4+M10pLGFbYys4Pj4yXT1+figrX1tsPj4zXStwKSxhW2MrMTI+PjJdPX5+KCtfW2wrOD4+M10rZil9ZnVuY3Rpb24gQWYobCxjKXt2YXIgZixwO2FbKGN8PTApPj4yXT1+fihwPStfWyhsfD0w''@;'; + put 'put ''KT4+M10pLGFbYys0Pj4yXT1+fihmPStfW2wrOD4+M10pLGFbYys4Pj4yXT1+figrX1tsKzE2Pj4zXStwKSxhW2MrMTI+PjJdPX5+KCtfW2wrMjQ+PjNdK2YpfWZ1bmN0aW9uIEMzKGwsYyl7dmFyIGIsayxwPTAsbT0wLEE9MCx3PTAsTT0wLEQ9MDtyZXR1cm4rKCgwfChiPTB8YVs4KyhsfD0w''@;'; + put 'put ''KT4+Ml0pKT49KDB8KGs9MHxhWyhjfD0wKT4+Ml0pKSYmKDB8KE09MHxhW2w+PjJdKSk8PSgwfChEPTB8YVtjKzg+PjJdKSkmJigwfChwPTB8YVtsKzEyPj4yXSkpPj0oMHwobT0wfGFbYys0Pj4yXSkpJiYoMHwoQT0wfGFbbCs0Pj4yXSkpPD0oMHwodz0wfGFbYysxMj4+Ml0pKT8oKygwfGFb''@;'; + put 'put ''KCgwfHApPCgwfHcpP2w6YykrMTI+PjJdKS0rKDB8YVsoKDB8QSk+KDB8bSk/bDpjKSs0Pj4yXSkpKigrKDB8YVsoKDB8Yik8KDB8RCk/bDpjKSs4Pj4yXSktKygwfGFbKCgwfE0pPigwfGspP2w6Yyk+PjJdKSk6MCl9ZnVuY3Rpb24gSjgobCxjLGYscCxtKXtmfD0wLHA9K3AsbXw9MDt2YXIg''@;'; + put 'put ''YixrLEE9MCx3PTA7cmV0dXJuIGs9YWUsYWU9YWUrMTZ8MCxiPWssbD0wfG9FKGx8PTAsY3w9MCksKGw9MHxhWyhtPW0rKCgoMHxsKTwwPzU6bCk8PDIpfDApPj4yXSk/KEFmKGwsYiksQT0oQT0rQzMoZixiKSk+cD9BOjAsMCE9KDB8YVszMisobD0wfGFbbT4+Ml0pPj4yXSkmJihUaChsLGIp''@;'; + put 'put ''LCh3PStDMyhmLGIpKT5wKSYmKEE9dz5BP3c6QSksQT4wfHwoYVttPj4yXT1jLEE9cCkpOihhW20+PjJdPWMsQT1wKSxhZT1rLCtBfWZ1bmN0aW9uIExSKGwsYyxmLHAsbSl7Znw9MCxwPStwLG18PTA7dmFyIGIsayxBPTAsdz0wO3JldHVybiBrPWFlLGFlPWFlKzE2fDAsYj1rLGw9MHxvRShs''@;'; + put 'put ''fD0wLGN8PTApLChsPTB8YVsobT1tKygoKDB8bCk8MD81OmwpPDwyKXwwKT4+Ml0pPyhBZihsLGIpLEE9KEE9K0MzKGYsYikpPnA/QTowLDAhPSgwfGFbMzIrKGw9MHxhW20+PjJdKT4+Ml0pJiYoVGgobCxiKSwodz0rQzMoZixiKSk+cCkmJihBPXc+QT93OkEpLEE+MHx8KGFbbT4+Ml09YyxB''@;'; + put 'put ''PXApKTooYVttPj4yXT1jLEE9cCksYWU9aywrQX1mdW5jdGlvbiBvRShsLGMpe3ZhciBwLGY9MCxtPTAsQT0wLHc9MCxiPTA7KDB8KGY9MHxhWzMyKyhsfD0wKT4+Ml0pKT09KDB8KHA9MHxhWzMyKyhjfD0wKT4+Ml0pKSYmUHIoMTExNTc4LDExMTU0MywyNzYsMTExNTg4KTtkb3tpZigwIT0o''@;'; + put 'put ''MHxmZVtmKzM2Pj4wXSkmJjAhPSgwfGZlW3ArMzY+PjBdKSl7aWYoMD09KHc9K19bbD4+M10pJiYwPT0rX1tsKzg+PjNdKXtmPS0xO2JyZWFrfWlmKDA9PShiPStfW2M+PjNdKSYwPT0oQT0rX1tjKzg+PjNdKSlmPS0xO2Vsc2V7aWYoQTwobT0rX1tsKzg+PjNdKSl7aWYoYjx3KXtmPTA7YnJl''@;'; + put 'put ''YWt9Zj1iPnc/MjoxO2JyZWFrfWlmKGY9Yjx3LEE+bSl7aWYoZil7Zj02O2JyZWFrfWY9Yj53Pzg6NzticmVha31mPWY/MzpiPnc/NTotMX19ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gazMobCxjKXtsfD0wO3ZhciBBLHcsYixrLE0sZj0wLHA9MCxtPTA7aWYoKGY9''@;'; + put 'put ''MHxhWzMyKyhjfD0wKT4+Ml0pPyhwPStfW2Y+PjNdLG09K19bZis4Pj4zXSk6KHA9MCxtPTApLGs9fn4rY2YoKygoTT0rX1tjPj4zXSktcCkpLGI9fn4rY2YoKygoQT0rX1tjKzg+PjNdKS1tKSksMjE0NzQ4MzY0Nz09KDB8KHc9fn4rSXUoKyhNK3ArICtfW2MrMTY+PjNdKSkpKSYmUHIoMTEx''@;'; + put 'put ''Njc2LDExMTU0MywyNjQsMTExNzAzKSwyMTQ3NDgzNjQ3IT0oMHwoZj1+fitJdSgrKEErbSsgK19bYysyND4+M10pKSkpKXJldHVybiBhW2w+PjJdPWssYVtsKzQ+PjJdPWIsYVtsKzg+PjJdPXcsdm9pZChhW2wrMTI+PjJdPWYpO1ByKDExMTcxMywxMTE1NDMsMjY2LDExMTcwMyl9ZnVuY3Rp''@;'; + put 'put ''b24gYmIobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtmb3IobT0wLHA9MHxhWyhsfD0wKT4+Ml0sZj0wfGFbbCs0Pj4yXTtsPWMrLTF8MCwhKCgwfGMpPD0wKTspQT0oYz1mPj4+bCYxKS0xfDAsbT0oYj1wPj4+bCYxKTw8MXxtPDwyfGJeYyxjPWwscD0odz1BJihwXmYp''@;'; + put 'put ''KV5wXihBJj0wLWIpLGY9d15mXkE7cmV0dXJuIDB8bX1mdW5jdGlvbiB2bShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wO2lmKChjPTB8VW8obHw9MCkpPj4+MD49KDB8YVs0NzM2NV0pPj4+MD8oYVs0NzM2NV09Yz1jKzExfDAsYz0wfFYwKDB8YVs0NzM2Nl0sYyksYVs0NzM2Nl09YyxjP2Y9NDpj''@;'; + put 'put ''PTApOihjPTB8YVs0NzM2Nl0sZj00KSw0PT0oMHxmKSl7Zm9yKG09YzsoZj0wfGZlW2w+PjBdKTw8MjQ+PjI0OykwfFV1ZShwPTI1NSZmKSYmKGY9MjU1JigwfENwKHApKSksZmVbbT4+MF09ZixtPW0rMXwwLGw9bCsxfDA7ZmVbbT4+MF09MH1yZXR1cm4gMHxjfWZ1bmN0aW9uIFMzKGwsYyxm''@;'; + put 'put ''KXtsfD0wO3ZhciBNLEQsSyxwZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxudCxXZSxvdCxTdCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxSPTAsRz0wLGdlPTAsa3Q9MDtmb3IoU3Q9YWUsYWU9YWUrMTQ0fDAsSz1TdCs5NnwwLEQ9U3QrODB8MCxiZT1TdCsxMjR8MCxwZT1TdCs3MnwwLE9lPVN0''@;'; + put 'put ''KzY0fDAsTGU9U3QrNTZ8MCxudD1TdCs0OHwwLFdlPVN0KzQwfDAsb3Q9U3QrMzJ8MCxSZT1TdCsyNHwwLEhlPVN0KzE2fDAsVmU9U3QrOHwwLHFlPVN0LG09U3QrMTIwfDAsYj1TdCsxMTZ8MCxrPVN0KzExMnwwLE09U3QrMTA4fDAsYVszMisoY3w9MCk+PjJdPWZ8PTAsRz1sOzMyPT0oMHxm''@;'; + put 'put ''ZVtHPj4wXSk7KUc9RysxfDA7YVtNPj4yXT0yNTUsbD0wfGZlW0c+PjBdO2U6ZG97aWYobDw8MjQ+PjI0PT0zNSl7aWYoYVtEPj4yXT1tLGFbRCs0Pj4yXT1iLGFbRCs4Pj4yXT1rLGFbRCsxMj4+Ml09TSwoMHxpbChHLDExMTc1NSxEKSk8PTIpe2w9MHxmZVtHPj4wXSxSPTEyO2JyZWFrfXN3''@;'; + put 'put ''aXRjaCgwfGYpe2Nhc2UgMDpfW250Pj4zXT1rdD0uMDAzOTIxNTY4NjI3NDUwOTgqKygoMHxhW20+PjJdKT4+PjApLF9bV2U+PjNdPXA9LjAwMzkyMTU2ODYyNzQ1MDk4KisoKDB8YVtiPj4yXSk+Pj4wKSxfW290Pj4zXT1BPS4wMDM5MjE1Njg2Mjc0NTA5OCorKCgwfGFbaz4+Ml0pPj4+MCks''@;'; + put 'put ''dz0uMDAzOTIxNTY4NjI3NDUwOTgqKygoMHxhW00+PjJdKT4+PjApLE9SKGt0LHAsQSxwZSxPZSxMZSksX1tjPj4zXT0rX1twZT4+M10sX1tjKzg+PjNdPStfW09lPj4zXSxfW2MrMTY+PjNdPStfW0xlPj4zXSxfW2MrMjQ+PjNdPXcsbD0wO2JyZWFrIGU7Y2FzZSAxOmZlW2M+PjBdPWFbbT4+''@;'; + put 'put ''Ml0sZmVbYysxPj4wXT1hW2I+PjJdLGZlW2MrMj4+MF09YVtrPj4yXSxmZVtjKzM+PjBdPWFbTT4+Ml0sbD0wO2JyZWFrIGU7Y2FzZSAzOl9bbnQ+PjNdPUE9LjAwMzkyMTU2ODYyNzQ1MDk4KisoKDB8YVttPj4yXSk+Pj4wKSxfW1dlPj4zXT13PS4wMDM5MjE1Njg2Mjc0NTA5OCorKCgwfGFb''@;'; + put 'put ''Yj4+Ml0pPj4+MCksX1tvdD4+M109a3Q9LjAwMzkyMTU2ODYyNzQ1MDk4KisoKDB8YVtrPj4yXSk+Pj4wKSxoNihBLHcsa3QsUmUsSGUsVmUscWUpLGZlW2M+PjBdPTI1NSp+fitfW1JlPj4zXSxmZVtjKzE+PjBdPTI1NSp+fitfW0hlPj4zXSxmZVtjKzI+PjBdPTI1NSp+fitfW1ZlPj4zXSxm''@;'; + put 'put ''ZVtjKzM+PjBdPTI1NSp+fitfW3FlPj4zXSxsPTA7YnJlYWsgZTtjYXNlIDI6YVtjPj4yXT0oKDY1NTM1KigwfGFbbT4+Ml0pfDApPj4+MCkvMjU1fDAsYVtjKzQ+PjJdPSgoNjU1MzUqKDB8YVtiPj4yXSl8MCk+Pj4wKS8yNTV8MCxhW2MrOD4+Ml09KCg2NTUzNSooMHxhW2s+PjJdKXwwKT4+''@;'; + put 'put ''PjApLzI1NXwwLGFbYysxMj4+Ml09KCg2NTUzNSooMHxhW00+PjJdKXwwKT4+PjApLzI1NXwwLGw9MDticmVhayBlO2Nhc2UgNDpfW2M+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKCgwfGFbbT4+Ml0pPj4+MCksX1tjKzg+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKCgwfGFbYj4+Ml0pPj4+''@;'; + put 'put ''MCksX1tjKzE2Pj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygoMHxhW2s+PjJdKT4+PjApLF9bYysyND4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoKDB8YVtNPj4yXSk+Pj4wKSxsPTA7YnJlYWsgZTtkZWZhdWx0Omw9MDticmVhayBlfX1lbHNlIFI9MTJ9d2hpbGUoMCk7ZTpkb3tpZigxMj09''@;'; + put 'put ''KDB8Uikpe2lmKCEobDw8MjQ+PjI0IT00NiYmKCgyNTUmbCktNDh8MCk+Pj4wPj0xMCkpe2lmKChsPTB8VW8oRykpPj4+MD49KDB8YVs0NzM2N10pPj4+MCl7aWYoYVs0NzM2N109bD1sKzExfDAsbD0wfFYwKDB8YVs0NzM2OF0sbCksYVs0NzM2OF09bCwhbCl7bD0tMTticmVha319ZWxzZSBs''@;'; + put 'put ''PTB8YVs0NzM2OF07Yj1sLG09Rzt0OmZvcig7Oyl7c3dpdGNoKGs9bSsxfDAsKG09MHxmZVttPj4wXSk8PDI0Pj4yNCl7Y2FzZSAwOmJyZWFrIHQ7Y2FzZSA0NDptPTMyfWZlW2I+PjBdPW0sYj1iKzF8MCxtPWt9aWYoZmVbYj4+MF09MCxhW0s+PjJdPXBlLGFbSys0Pj4yXT1PZSxhW0srOD4+''@;'; + put 'put ''Ml09TGUsMz09KDB8aWwobCwxMTE3NjksSykpKXN3aXRjaCh3PStfW3BlPj4zXSx3PXc8MT93OjEsdz13PjA/dzowLF9bcGU+PjNdPXcsQT0rX1tPZT4+M10sQT1BPDE/QToxLEE9QT4wP0E6MCxfW09lPj4zXT1BLHA9K19bTGU+PjNdLHA9cDwxP3A6MSxwPXA+MD9wOjAsX1tMZT4+M109cCww''@;'; + put 'put ''fGYpe2Nhc2UgMDpfW2M+PjNdPXcsX1tjKzg+PjNdPUEsX1tjKzE2Pj4zXT1wLF9bYysyND4+M109MSxsPTA7YnJlYWsgZTtjYXNlIDE6TTModyxBLHAsbnQsV2Usb3QpLGZlW2M+PjBdPX5+KDI1NSorX1tudD4+M10pLGZlW2MrMT4+MF09fn4oMjU1KitfW1dlPj4zXSksZmVbYysyPj4wXT1+''@;'; + put 'put ''figyNTUqK19bb3Q+PjNdKSxmZVtjKzM+PjBdPS0xLGw9MDticmVhayBlO2Nhc2UgMzpNMyh3LEEscCxudCxXZSxvdCksaDYoK19bbnQ+PjNdLCtfW1dlPj4zXSwrX1tvdD4+M10sUmUsSGUsVmUscWUpLGZlW2M+PjBdPTI1NSp+fitfW1JlPj4zXSxmZVtjKzE+PjBdPTI1NSp+fitfW0hlPj4z''@;'; + put 'put ''XSxmZVtjKzI+PjBdPTI1NSp+fitfW1ZlPj4zXSxmZVtjKzM+PjBdPTI1NSp+fitfW3FlPj4zXSxsPTA7YnJlYWsgZTtjYXNlIDI6TTModyxBLHAsbnQsV2Usb3QpLGFbYz4+Ml09fn4oNjU1MzUqK19bbnQ+PjNdKSxhW2MrND4+Ml09fn4oNjU1MzUqK19bV2U+PjNdKSxhW2MrOD4+Ml09fn4o''@;'; + put 'put ''NjU1MzUqK19bb3Q+PjNdKSxhW2MrMTI+PjJdPTY1NTM1LGw9MDticmVhayBlO2Nhc2UgNDpNMyh3LEEscCxudCxXZSxvdCksX1tjPj4zXT0rX1tudD4+M10sX1tjKzg+PjNdPStfW1dlPj4zXSxfW2MrMTY+PjNdPStfW290Pj4zXSxfW2MrMjQ+PjNdPTEsbD0wO2JyZWFrIGU7ZGVmYXVsdDps''@;'; + put 'put ''PTA7YnJlYWsgZX19aWYobT0wfEUzKEcpLGFbYmU+PjJdPW0sbSl7aWYoKDA9PSgwfChsPTB8YVs0NzM2OV0pKXx8KDB8ZmVbKGdlPTB8YVtsPj4yXSk+PjBdKSE9KDB8ZmVbbT4+MF0pfHwwIT0oMHxqaShnZSxtKSkpJiYobD0wfHR3KGJlLDI1OTQ4LDI0OTEsMTIsMTAzKSxhWzQ3MzY5XT1s''@;'; + put 'put ''LCFsKSlzd2l0Y2goMHxmKXtjYXNlIDA6Y2FzZSA0OmFbYz4+Ml09MCxhW2MrND4+Ml09MCxhW2MrOD4+Ml09MCxhW2MrMTI+PjJdPTAsYVtjKzE2Pj4yXT0wLGFbYysyMD4+Ml09MCxfW2MrMjQ+PjNdPTEsbD0xO2JyZWFrIGU7Y2FzZSAxOmZlW2MrMj4+MF09MCxmZVtjKzE+PjBdPTAsZmVb''@;'; + put 'put ''Yz4+MF09MCxmZVtjKzM+PjBdPS0xLGw9MTticmVhayBlO2Nhc2UgMzphW2M+PjJdPTAsbD0xO2JyZWFrIGU7Y2FzZSAyOmFbYys4Pj4yXT0wLGFbYys0Pj4yXT0wLGFbYz4+Ml09MCxhW2MrMTI+PjJdPTY1NTM1LGw9MTticmVhayBlO2RlZmF1bHQ6bD0xO2JyZWFrIGV9c3dpdGNoKDB8Zil7''@;'; + put 'put ''Y2FzZSAwOl9bYz4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMHxKdFtsKzQ+PjBdKSxfW2MrOD4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMHxKdFtsKzU+PjBdKSxfW2MrMTY+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKDB8SnRbbCs2Pj4wXSksX1tjKzI0Pj4zXT0uMDAzOTIxNTY4NjI3''@;'; + put 'put ''NDUwOTgqKygwfEp0W2wrMTA+PjBdKSxsPTA7YnJlYWsgZTtjYXNlIDE6ZmVbYz4+MF09MHxmZVtsKzc+PjBdLGZlW2MrMT4+MF09MHxmZVtsKzg+PjBdLGZlW2MrMj4+MF09MHxmZVtsKzk+PjBdLGZlW2MrMz4+MF09MHxmZVtsKzEwPj4wXSxsPTA7YnJlYWsgZTtjYXNlIDM6X1tudD4+M109''@;'; + put 'put ''QT0uMDAzOTIxNTY4NjI3NDUwOTgqKygwfEp0W2wrNz4+MF0pLF9bV2U+PjNdPXc9LjAwMzkyMTU2ODYyNzQ1MDk4KisoMHxKdFtsKzg+PjBdKSxfW290Pj4zXT1rdD0uMDAzOTIxNTY4NjI3NDUwOTgqKygwfEp0W2wrOT4+MF0pLGg2KEEsdyxrdCxSZSxIZSxWZSxxZSksZmVbYz4+MF09MjU1''@;'; + put 'put ''Kn5+K19bUmU+PjNdLGZlW2MrMT4+MF09MjU1Kn5+K19bSGU+PjNdLGZlW2MrMj4+MF09MjU1Kn5+K19bVmU+PjNdLGZlW2MrMz4+MF09MjU1Kn5+K19bcWU+PjNdLGw9MDticmVhayBlO2Nhc2UgMjphW2M+PjJdPTI1NyooMHxKdFtsKzc+PjBdKSxhW2MrND4+Ml09MjU3KigwfEp0W2wrOD4+''@;'; + put 'put ''MF0pLGFbYys4Pj4yXT0yNTcqKDB8SnRbbCs5Pj4wXSksYVtjKzEyPj4yXT0yNTcqKDB8SnRbbCsxMD4+MF0pLGw9MDticmVhayBlO2Nhc2UgNDpfW2M+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKDB8SnRbbCs3Pj4wXSksX1tjKzg+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKDB8SnRbbCs4''@;'; + put 'put ''Pj4wXSksX1tjKzE2Pj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygwfEp0W2wrOT4+MF0pLF9bYysyND4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMHxKdFtsKzEwPj4wXSksbD0wO2JyZWFrIGU7ZGVmYXVsdDpsPTA7YnJlYWsgZX19ZWxzZSBsPS0xfX13aGlsZSgwKTtyZXR1cm4gYWU9U3Qs''@;'; + put 'put ''MHxsfWZ1bmN0aW9uIE9SKGwsYyxmLHAsbSxBKXtwfD0wLG18PTAsQXw9MDt2YXIgdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTA7aWYodz0oYj0oUj0oUj0oYz0rYyk+KGY9K2YpP2M6Zik8KGw9K2wpP2w6UiktKChiPWM8Zj9jOmYpPmw/bDpiKSkvUixSPjApaWYodz4wKXtrPShSLWwpL2IsTT0o''@;'; + put 'put ''Ui1jKS9iLEQ9KFItZikvYjtkb3tpZihSIT1sKXtpZihSPT1jKXtsPWsrMi1EO2JyZWFrfWw9Uj09Zj9NKzQtazowfWVsc2UgbD0oYy1mKS9ifXdoaWxlKDApOyhsKj02MCk8MCYmKGwrPTM2MCl9ZWxzZSBsPTA7ZWxzZSB3PTAsbD0wO19bcD4+M109LjAwMjc3Nzc3Nzc3Nzc3Nzc3OCpsLF9b''@;'; + put 'put ''QT4+M109UixfW20+PjNdPXd9ZnVuY3Rpb24gaDYobCxjLGYscCxtLEEsdyl7Yz0rYyxmPStmLG18PTAsQXw9MCx3fD0wLF9bKHB8PTApPj4zXT0xLShsPStsKSxfW20+PjNdPTEtYyxfW0E+PjNdPTEtZixfW3c+PjNdPWY9KGM9K19bcD4+M10pPChmPStfW20+PjNdKT9jOmYsX1t3Pj4zXT1m''@;'; + put 'put ''PShjPStfW0E+PjNdKTxmP2M6ZixfW3A+PjNdPStfW3A+PjNdLWYsX1ttPj4zXT0rX1ttPj4zXS0rX1t3Pj4zXSxfW0E+PjNdPStfW0E+PjNdLStfW3c+PjNdfWZ1bmN0aW9uIE0zKGwsYyxmLHAsbSxBKXtsPStsLGM9K2MsZj0rZixwfD0wLG18PTAsQXw9MDt2YXIgdz0wLGI9MCxrPTAsTT0w''@;'; + put 'put ''LEQ9MDtlOmRve2lmKGM8PTApdz1mLGI9ZixsPWYsTT04O2Vsc2Ugc3dpdGNoKGI9bD49MT8wOjYqbCxEPX5+YixiLT0rKDB8RCksbD0oMS1jKSpmLGs9KDEtYipjKSpmLGM9KDEtKDEtYikqYykqZiwwfEQpe2Nhc2UgMDp3PWwsYj1jLGw9ZixNPTg7YnJlYWsgZTtjYXNlIDE6dz1sLGI9Zixs''@;'; + put 'put ''PWssTT04O2JyZWFrIGU7Y2FzZSAyOnc9YyxiPWYsTT04O2JyZWFrIGU7Y2FzZSAzOnc9ZixiPWssTT04O2JyZWFrIGU7Y2FzZSA0Onc9ZixiPWwsbD1jLE09ODticmVhayBlO2Nhc2UgNTp3PWssYj1sLGw9ZixNPTg7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApOzg9PSgwfE0p''@;'; + put 'put ''JiYoX1twPj4zXT1sLF9bbT4+M109YixfW0E+PjNdPXcpfWZ1bmN0aW9uIEUzKGwpe3ZhciBjPTAsZj0wO2lmKCEoKGM9MHxmZVsobHw9MCk+PjBdKTw8MjQ+PjI0PT05OHx8KGY9bCsxfDAsYzw8MjQ+PjI0PT0xMTl8MD09KDB8czIoZiwxMzcyNjYsNCkpKXx8Yzw8MjQ+PjI0PT0xMDh8MD09''@;'; + put 'put ''KDB8czIoZiwxMzcyNzEsNCkpfHwwPT0oMHxzMihmLDEzNzI3Niw4KSkpKXtkb3tpZihjPDwyND4+MjQ9PTQ3KWlmKGM9MHwkcyhmLDQ3KSl7aWYoNDchPSgwfGZlW2Y+PjBdKSl7bD0oZj0wPT0oMHxvNCgxMzcyODUsZiw0KSkpP2MrMXwwOmw7YnJlYWt9aWYoMHwoYz0wfGFbNDczNzBdKSYm''@;'; + put 'put ''MHxmZVtjPj4wXSYmMHxvNCgxMzcyODUsYywzKSl7bD0wfENkKGMsbCsyfDApO2JyZWFrfWw9bCsyfDB9ZWxzZSBsPWY7ZWxzZSAwIT0oMHwoYz0wfGFbNDczNzBdKSkmJjAhPSgwfGZlW2M+PjBdKSYmMCE9KDB8bzQoMTM3Mjg1LGMsMykpJiYobD0wfENkKGMsbCkpfXdoaWxlKDApO2w9MHx2''@;'; + put 'put ''bShsKX1yZXR1cm4gMHxsfWZ1bmN0aW9uIENkKGwsYyl7Y3w9MDt2YXIgcCxtLGY9MCxBPTA7cmV0dXJuIG09YWUsYWU9YWUrMTZ8MCxwPW0sQT0wfFVvKGx8PTApLGY9MTMrKEE9KDB8VW8oYykpK0F8MCl8MCwoQSszfDApPj4+MDwoMHxhWzQ3MzcxXSk+Pj4wP2Y9MHxhWzQ3MzcyXTooYVs0''@;'; + put 'put ''NzM3MV09ZixmPTB8VjAoMHxhWzQ3MzcyXSxmKSxhWzQ3MzcyXT1mKSxhW3A+PjJdPWwsYVtwKzQ+PjJdPWMsb28oZiwxMzcyOTAscCksYWU9bSwwfGFbNDczNzJdfWZ1bmN0aW9uIER2KGwpe2FbNDczNzBdPWx8PTB9ZnVuY3Rpb24gYUUobCxjLGYscCxtKXt2YXIgQSx3O3JldHVybiBBPWFl''@;'; + put 'put ''LGFlPWFlKzIwOHwwLGZ1bmN0aW9uIGxFKGwsYyxmLHAsbSxBLHcpe2Y9K2YscD0rcCxtPSttLEE9K0Esdz0rdzt2YXIgYixrO19bKGx8PTApPj4zXT1jPStjLF9bbCs4Pj4zXT1mLF9bKGs9bCsxNnwwKT4+M109cCxfWyhiPWwrMjR8MCk+PjNdPW0sX1tsKzMyPj4zXT0wLGY9K1VsKCsgK0Rh''@;'; + put 'put ''KCtBKS9tLCsgK2hhKCtBKS9wKSxfW2wrNTY+PjNdPWYsbT0rVWwoKyArRGEoK3cpL20sKyAraGEoK3cpL3ApLF9bbCs0MD4+M109MSxfW2wrNDg+PjNdPTAsbS09Ni4yODMxODUzMDcxNzk1ODYqK2NmKC4xNTkxNTQ5NDMwOTE4OTUzNSoobS1mKSksX1tsKzY0Pj4zXT13LUE+My4xNDE1OTI2''@;'; + put 'put ''NTM1ODk3OTMmbS1mPDMuMTQxNTkyNjUzNTg5NzkzP20rNi4yODMxODUzMDcxNzk1ODY6bSxmdW5jdGlvbiBCNChsKXt2YXIgZixtLGM9MCxwPTA7Yz0rRDAoKygocD0rX1sxNisobHw9MCk+PjNdKSpwLShjPStfW2wrMjQ+PjNdKSpjKSkscD1jKitfW2wrNDA+PjNdLGMqPStfW2wrNDg+PjNd''@;'; + put 'put ''LF9bbCsxMDQ+PjNdPShtPStfW2w+PjNdKS1wLF9bbCsxMTI+PjNdPShmPStfW2wrOD4+M10pLWMsX1tsKzEyMD4+M109bStwLF9bbCsxMjg+PjNdPWYrY30obCksZnVuY3Rpb24gY0UobCl7dmFyIGYsbSxBLGssYz0wLHA9MCx3PTAsYj0wO3A9K19bMTYrKGx8PTApPj4zXSxrPStoYSgrKGI9''@;'; + put 'put ''K19bbCs1Nj4+M10pKSpwLGM9K19bbCsyND4+M10sYj0rRGEoK2IpKmMscD0raGEoKyh3PStfW2wrNjQ+PjNdKSkqcCxjPStEYSgrdykqYyxfW2wrNzI+PjNdPShmPStfW2wrNDA+PjNdKSprKyh3PStfW2w+PjNdKS0obT0rX1tsKzQ4Pj4zXSkqYixfW2wrODA+PjNdPW0qaysoQT0rX1tsKzg+''@;'; + put 'put ''PjNdKStmKmIsX1tsKzg4Pj4zXT13K2YqcC1tKmMsX1tsKzk2Pj4zXT1BK20qcCtmKmN9KGwpLGZ1bmN0aW9uIEJSKGwpe3ZhciBiLGssTSxELEcsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsUj0wO209KE09K19bMjQrKGx8PTApPj4zXSkvKEQ9K19bbCsxNj4+M10pLEc9K2VvKCsoUj0rX1ts''@;'; + put 'put ''KzQ4Pj4zXSkpPC4xLGs9K19bbCs0MD4+M107ZG97aWYoRyl7aWYocD0tKGY9K1pmKCsoYz1SL2spKm0pKSxrPDApe2M9K1pmKCtjL20pLG09cCxwPTMuMTQxNTkyNjUzNTg5NzkzLWYsZj00LjcxMjM4ODk4MDM4NDY5LWMsYz0xLjU3MDc5NjMyNjc5NDg5NjYtYzticmVha31jPStaZigrYy9t''@;'; + put 'put ''KSxtPS0zLjE0MTU5MjY1MzU4OTc5My1mLGY9MS41NzA3OTYzMjY3OTQ4OTY2LWMsYz0tMS41NzA3OTYzMjY3OTQ4OTY2LWM7YnJlYWt9aWYocD0xLjU3MDc5NjMyNjc5NDg5NjYrKGY9K1pmKCsoYz1rL1IpL20pKSxSPDApe2M9K1pmKCtjKm0pLG09ZistMS41NzA3OTYzMjY3OTQ4OTY2LGY9''@;'; + put 'put ''YyszLjE0MTU5MjY1MzU4OTc5MzticmVha31jPStaZigrYyptKSxtPXAscD1mKzQuNzEyMzg4OTgwMzg0NjksZj1jLGMrPS0zLjE0MTU5MjY1MzU4OTc5MzticmVha313aGlsZSgwKTttLT02LjI4MzE4NTMwNzE3OTU4NiorY2YoLjE1OTE1NDk0MzA5MTg5NTM1KihtLSh3PStfW2wrNTY+PjNd''@;'; + put 'put ''KSkpLGMtPTYuMjgzMTg1MzA3MTc5NTg2KitjZiguMTU5MTU0OTQzMDkxODk1MzUqKGMtdykpLEE9cC02LjI4MzE4NTMwNzE3OTU4NiorY2YoLjE1OTE1NDk0MzA5MTg5NTM1KihwLXcpKSx3PWYtNi4yODMxODUzMDcxNzk1ODYqK2NmKC4xNTkxNTQ5NDMwOTE4OTUzNSooZi13KSksZj1tPD0o''@;'; + put 'put ''Yj0rX1tsKzY0Pj4zXSk/K2hhKCttKSpEKmsrICtfW2w+PjNdLU0qK0RhKCttKSpSOihtPStfW2wrNzI+PjNdKTwoZj0rX1tsKzg4Pj4zXSk/bTpmLF9bbCsxMzY+PjNdPWYscD1jPD1iPytoYSgrYykqRCpSKyArX1tsKzg+PjNdKyArRGEoK2MpKk0qazoobT0rX1tsKzgwPj4zXSk8KHA9K19b''@;'; + put 'put ''bCs5Nj4+M10pP206cCxfW2wrMTQ0Pj4zXT1wLGM9QTw9Yj8raGEoK0EpKkQqaysgK19bbD4+M10tTSorRGEoK0EpKlI6KEE9K19bbCs3Mj4+M10pPihjPStfW2wrODg+PjNdKT9BOmMsX1tsKzE1Mj4+M109Yy1mLGM9dzw9Yj8raGEoK3cpKkQqUisgK19bbCs4Pj4zXSsgK0RhKCt3KSpNKms6''@;'; + put 'put ''KFI9K19bbCs4MD4+M10pPihjPStfW2wrOTY+PjNdKT9SOmMsX1tsKzE2MD4+M109Yy1wfShsKSxfW2wrMTY4Pj4zXT13PSgodz0rX1trPj4zXSktK19bYj4+M10pL3csX1tsKzE3Nj4+M109KDItdykqdyxfW2wrMTg0Pj4zXT13PTEtdyxfW2wrMTkyPj4zXT13Knd9KHc9QSwrX1sobHw9MCk+''@;'; + put 'put ''PjNdLCtfW2wrOD4+M10sYz0rYyxmPStmLHA9K3AsbT0rbSksbD0wfGZ1bmN0aW9uIGQ2KGwpe2x8PTA7dmFyIGssTSxELFIsZ2UsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLEc9MCxLPTAscGU9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MDtmb3Io''@;'; + put 'put ''Z2U9MHx2cig4KSxtPStfW2wrNjQ+PjNdLShBPStfW2wrNTY+PjNdKSxwZT0xLGM9MDtLPW0vKygwfHBlKSxjPDwyND4+MjQ9PTAmKDB8cGUpPDEwMjQ7KXtlOmRve2lmKEs8PTEuNTcwNzk2MzI2Nzk0ODk2Nilmb3IoZj1BLHA9MCxjPTE7Oyl7aWYoIShjPDwyND4+MjQhPTAmKDB8cCk8KDB8''@;'; + put 'put ''cGUpKSlicmVhayBlO2M9K0x2KGwsZixHPWYrSyk8PTFlLTUmMSxmPUcscD1wKzF8MH1lbHNlIGM9MH13aGlsZSgwKTtwZTw8PTF9Zm9yKGI9K2hhKCtBKSxSZT0rRGEoK0EpLEhlPShPZT0rX1socD1sKzE2fDApPj4zXSkqYix3PShmPStfWyhrPWwrMjR8MCk+PjNdKSpSZSxiKj1mLG09KExl''@;'; + put 'put ''PStfWyhNPWwrNDB8MCk+PjNdKSpIZSsoZj0rX1tsPj4zXSktKGJlPStfWyhEPWwrNDh8MCk+PjNdKSp3LHc9YmUqSGUrTGUqdysoRz0rX1soUj1sKzh8MCk+PjNdKSxPZSo9LVJlLGZ1bmN0aW9uIFJSKGwsYyxmKXtsfD0wLGM9K2MsZj0rZjt2YXIgcDthWzQ3MzczXT0xMDAscD0wfHZyKDE2''@;'; + put 'put ''MDApLGFbbD4+Ml09cCxfW3A+PjNdPWMsX1twKzg+PjNdPWYsYVtsKzQ+PjJdPTF9KGdlLGYsRyksc0UoZ2UsbSx3KSxHPStUOCguNSpLKSxHPS4zMzMzMzMzMzMzMzMzMzMzKitEYSgrSykqKCtEMCgrKEcqRyozKzQpKS0xKSxmPUEsQT13LHc9YmUqT2UrTGUqYixiPUxlKk9lLWJlKmIsYz0w''@;'; + put 'put ''OyEoKDB8Yyk+PSgwfHBlKSk7KVJlPStoYSgrKGJlPWYrSykpLEhlPStEYSgrYmUpLFdlPShxZT0rX1twPj4zXSkqUmUsTGU9KFZlPStfW2s+PjNdKSpIZSxSZSo9VmUsdUUoZ2UsbStiKkcsQSt3KkcsKE9lPShWZT0rX1tNPj4zXSkqV2UrICtfW2w+PjNdLShudD0rX1tEPj4zXSkqTGUpLShI''@;'; + put 'put ''ZT1WZSoocWUqPS1IZSktbnQqUmUpKkcsKExlPW50KldlK1ZlKkxlKyArX1tSPj4zXSktKFJlPW50KnFlK1ZlKlJlKSpHLE9lLExlKSxmPWJlLG09T2UsQT1MZSx3PVJlLGI9SGUsYz1jKzF8MDtyZXR1cm4gZnVuY3Rpb24geDMobCl7dmFyIGM7c0UobHw9MCwrX1soYz0wfGFbbD4+Ml0pPj4z''@;'; + put 'put ''XSwrX1tjKzg+PjNdKSxhW2w+PjJdPTB8VWEoMHxhW2w+PjJdLGFbbCs0Pj4yXTw8NCksYVs0NzM3M109MH0oZ2UpLDB8Z2V9KHcpLGFlPUEsMHxsfWZ1bmN0aW9uIEx2KGwsYyxmKXt2YXIgbSxBLHcsYixwPTA7cmV0dXJuIG09K19bMjQrKGx8PTApPj4zXS8oYj0rX1tsKzE2Pj4zXSksdz0r''@;'; + put 'put ''aGEoKyhwPShmPStmKSsoYz0rYykpKSxBPStoYSgyKnApLHA9K2hhKDMqcCksKygoLjAwMSptKzQuOTgpKm0rLjIwNykvKG0rLjAwNjcpKmIqK3pmKCsoKCgrX1szMisobD1tPC4yNT8xMDM5MjoxMDY0OCk+PjNdKm0rICtfW2wrNDA+PjNdKSptKyArX1tsKzQ4Pj4zXSkvKCtfW2wrNTY+PjNd''@;'; + put 'put ''K20pKncrKCgrX1tsPj4zXSptKyArX1tsKzg+PjNdKSptKyArX1tsKzE2Pj4zXSkvKCtfW2wrMjQ+PjNdK20pKygoK19bbCs2ND4+M10qbSsgK19bbCs3Mj4+M10pKm0rICtfW2wrODA+PjNdKS8oK19bbCs4OD4+M10rbSkqQSsoKCtfW2wrOTY+PjNdKm0rICtfW2wrMTA0Pj4zXSkqbSsgK19b''@;'; + put 'put ''bCsxMTI+PjNdKS8oK19bbCsxMjA+PjNdK20pKnArKCgoK19bbCsxNjA+PjNdKm0rICtfW2wrMTY4Pj4zXSkqbSsgK19bbCsxNzY+PjNdKS8oK19bbCsxODQ+PjNdK20pKncrKCgrX1tsKzEyOD4+M10qbSsgK19bbCsxMzY+PjNdKSptKyArX1tsKzE0ND4+M10pLygrX1tsKzE1Mj4+M10rbSkr''@;'; + put 'put ''KCgrX1tsKzE5Mj4+M10qbSsgK19bbCsyMDA+PjNdKSptKyArX1tsKzIwOD4+M10pLygrX1tsKzIxNj4+M10rbSkqQSsoKCtfW2wrMjI0Pj4zXSptKyArX1tsKzIzMj4+M10pKm0rICtfW2wrMjQwPj4zXSkvKCtfW2wrMjQ4Pj4zXSttKSpwKSooZi1jKSkpfWZ1bmN0aW9uIHNFKGwsYyxmKXt2''@;'; + put 'put ''YXIgcCxtO3VFKGx8PTAsK19bKG09MHxhW2w+PjJdKSsoKHA9KDB8YVtsKzQ+PjJdKS0xfDApPDw0KT4+M10sK19bbSsocDw8NCkrOD4+M10sYz0rYyxmPStmLGMsZil9ZnVuY3Rpb24gdUUobCxjLGYscCxtLEEsdyl7Yz0rYyxmPStmLHA9K3AsbT0rbSxBPStBLHc9K3c7dmFyIE0sRCxiPTAs''@;'; + put 'put ''az0wOygzKyhiPTB8YVsoTT00KyhsfD0wKXwwKT4+Ml0pfDApPCgwfChrPTB8YVs0NzM3M10pKT9sPTB8YVtsPj4yXTooYVs0NzM3M109azw8MSxiPTB8VWEoMHxhW2w+PjJdLGs8PDUpLGFbbD4+Ml09YixsPWIsYj0wfGFbTT4+Ml0pLF9bbCsoYjw8NCk+PjNdPWMsRD1iKzF8MCxfW2wrKGI8''@;'; + put 'put ''PDQpKzg+PjNdPWYsX1tsKyhEPDw0KT4+M109cCxrPWIrMnwwLF9bbCsoRDw8NCkrOD4+M109bSxfW2wrKGs8PDQpPj4zXT1BLGFbTT4+Ml09YiszLF9bbCsoazw8NCkrOD4+M109d31mdW5jdGlvbiBoRShsKXt2YXIgYz0wLGY9MCxwPTA7c3dpdGNoKDB8ZmVbNCsobHw9MCk+PjBdKXtjYXNl''@;'; + put 'put ''IDE6bD03MisoZj0wfGFbbD4+Ml0pfDAsZj1mKzU2fDAscD01O2JyZWFrO2Nhc2UgMzpsPTI0KyhmPTB8YVtsPj4yXSl8MCxmPWYrOHwwLHA9NTticmVhaztjYXNlIDI6bD0zMisoZj0wfGFbbD4+Ml0pfDAsZj1mKzE2fDAscD01O2JyZWFrO2RlZmF1bHQ6Yz0wfXJldHVybiA1PT0oMHxwKSYm''@;'; + put 'put ''KGM9K19bbD4+M10tK19bZj4+M10pLCtjfWZ1bmN0aW9uIGtkKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHAsbSxBLHcsYixrLE09MCxEPTAsUj0wLEc9MCxLPTA7az1hZSxhZT1hZSs5NnwwLEE9ays2NHwwLG09ayszMnwwLHA9aysxNnwwLHc9aywoYj0wfHJ0WzQrKGN8PTApPj4xXSk8PDE2Pj4x''@;'; + put 'put ''Nj49MSYmKF9bdz4+M109LjUqKChNPStfWyhHPWMrOHwwKT4+M10pKyhEPStfW2MrMjQ+PjNdKSkrICtfW2Y+PjNdLF9bdys4Pj4zXT0uNSooK19bYysxNj4+M10rICtfW2MrMzI+PjNdKSsgK19bZis4Pj4zXSxSPTB8YVtjPj4yXSxLPWYrMTZ8MCxmPTB8ZmVbYys2Pj4wXSxhW3A+PjJdPWFb''@;'; + put 'put ''dz4+Ml0sYVtwKzQ+PjJdPWFbdys0Pj4yXSxhW3ArOD4+Ml09YVt3Kzg+PjJdLGFbcCsxMj4+Ml09YVt3KzEyPj4yXSxhW20+PjJdPWFbSz4+Ml0sYVttKzQ+PjJdPWFbSys0Pj4yXSxhW20rOD4+Ml09YVtLKzg+PjJdLGFbbSsxMj4+Ml09YVtLKzEyPj4yXSxhW20rMTY+PjJdPWFbSysxNj4+''@;'; + put 'put ''Ml0sYVttKzIwPj4yXT1hW0srMjA+PjJdLGFbbSsyND4+Ml09YVtLKzI0Pj4yXSxhW20rMjg+PjJdPWFbSysyOD4+Ml0sYVtBPj4yXT1hW0c+PjJdLGFbQSs0Pj4yXT1hW0crND4+Ml0sYVtBKzg+PjJdPWFbRys4Pj4yXSxhW0ErMTI+PjJdPWFbRysxMj4+Ml0sYVtBKzE2Pj4yXT1hW0crMTY+''@;'; + put 'put ''PjJdLGFbQSsyMD4+Ml09YVtHKzIwPj4yXSxhW0ErMjQ+PjJdPWFbRysyND4+Ml0sYVtBKzI4Pj4yXT1hW0crMjg+PjJdLGZ1bmN0aW9uIE5SKGwsYyxmLHAsbSxBLHcsYil7bHw9MCxjfD0wLGZ8PTAscHw9MCxtPSttLEF8PTAsd3w9MCxifD0wO3ZhciBLLHBlLGdlLGJlLE9lLExlLFJlLEhl''@;'; + put 'put ''LFZlLFdlLG90LFN0LGt0LGx0LEV0LGN0LGJ0LGFuLFNuLEhuLHVyLEVyLGs9MCxNPTAsRD0wLFI9MCxHPTAscWU9MCxudD0wLFp0PTAsSHI9MDtmb3IoRXI9YWUsYWU9YWUrMTI4fDAsY3Q9RXIrMTA0fDAsSG49RXIrNDh8MCx1cj1FcisxNnwwLGFbKFp0PWJ0PUVyKT4+Ml09MCxhW1p0KzQ+''@;'; + put 'put ''PjJdPTAsU249KGFuPStfW3A+PjNdKS1tLEV0PWFuK20sX1soWnQ9YnQrOHwwKT4+M109LjUqKCtfW3crMjQ+PjNdLStfW3crOD4+M10pKyArX1twKzg+PjNdLFc4KGwsMSksV2U9dXIrMTZ8MCxvdD11cis0fDAsU3Q9dXIrMjR8MCxrdD1Ibis0fDAsbHQ9SG4rMTZ8MCxLPTA9PSgwfGIpLHBl''@;'; + put 'put ''PUhuKzI0fDAsZ2U9SG4rOHwwLGJlPUhuKzMyfDAsT2U9SG4rNDB8MCxMZT1Ibis0OHwwLFJlPUErMTZ8MCxIZT1BKzR8MCxWZT11cis4fDAsUj0wOyEoKDB8Uik+PSgwfGMpKTspe3N3aXRjaCgwfGZlW2YrKDI0KlJ8MCkrNj4+MF0pe2Nhc2UgMTA4Om09U247YnJlYWs7Y2FzZSAxMTQ6bT1F''@;'; + put 'put ''dC0rX1tmKygyNCpSfDApKzg+PjNdO2JyZWFrO2RlZmF1bHQ6bT1hbi0uNSorX1tmKygyNCpSfDApKzg+PjNdfWZvcihfW3A+PjNdPW0sX1tadD4+M109K19bWnQ+PjNdLStfWyhxZT1mKygyNCpSfDApKzE2fDApPj4zXSxudD1mKygyNCpSfDApKzR8MCxEPTB8YVtmKygyNCpSfDApPj4yXSxH''@;'; + put 'put ''PTA7ISgoMHxHKT49KDB8cnRbbnQ+PjFdKSk7KShiPTB8YVsoTT1EKzR8MCk+PjJdKT8oX1tXZT4+M109K19bKCtfW2IrMTY+PjNdPjA/YjpBKSsxNj4+M10sYVt1cj4+Ml09YVsoMD09KDB8YVtiPj4yXSk/QTpiKT4+Ml0sYVtvdD4+Ml09dz0wfGFbKDA9PSgwfGFbYis0Pj4yXSk/QTpiKSs0''@;'; + put 'put ''Pj4yXSwoYj0xMjcmYVtiKzI0Pj4yXSk/Ynw9LTEyOCZhW1N0Pj4yXTpIcj0xMik6KF9bV2U+PjNdPStfW1JlPj4zXSxhW3VyPj4yXT1hW0E+PjJdLGFbb3Q+PjJdPXc9MHxhW0hlPj4yXSxIcj0xMiksMTI9PSgwfEhyKSYmKEhyPTAsYj0tMTI4JmFbU3Q+PjJdKSxhW1N0Pj4yXT1iLG1hKGws''@;'; + put 'put ''dyksYVtIbj4+Ml09YVtEPj4yXSxhW2t0Pj4yXT11cixfW2x0Pj4zXT0rX1tEKzE2Pj4zXSxfW3BlPj4zXT1rPUs/MTorX1tEKzI0Pj4zXSxhW1ZlPj4yXT1hWzgrKDB8YVtNPj4yXSk+PjJdLGFbZ2U+PjJdPWFbRCs4Pj4yXSxfW2JlPj4zXT0rX1soTT1EKzMyfDApPj4zXSxfW09lPj4zXT0r''@;'; + put 'put ''X1txZT4+M10sZmVbTGU+PjBdPTEwOCxfW2J0Pj4zXT1tLGFbY3Q+PjJdPWFbYnQ+PjJdLGFbY3QrND4+Ml09YVtidCs0Pj4yXSxhW2N0Kzg+PjJdPWFbYnQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtidCsxMj4+Ml0saG0obCxjdCxIbiksX1twPj4zXT1rPStfW00+PjNdK20sRD1EKzU2fDAsRz1H''@;'; + put 'put ''KzF8MCxtPWs7Uj1SKzF8MH1PNChsKSxhZT1Fcn0obCxiPDwxNj4+MTYsUixwLC41KihELU0pLG0sQSxmKSksYWU9a31mdW5jdGlvbiBkRShsLGMsZil7bHw9MCxmfD0wO3ZhciB3LGIsTSxELEsscGUsZ2UsYmUsTGUsT2UscD0wLG09MCxBPTAsaz0wLFI9MCxHPTA7aWYoTGU9YWUsYWU9YWUr''@;'; + put 'put ''MTc2fDAsSz1MZSs5NnwwLGJlPUxlKzEzNnwwLE09TGUsRD1MZSsxMjh8MCxhWyhnZT1MZSs2NHwwKT4+Ml09YVsoUj00OCsoY3w9MCl8MCk+PjJdLGFbZ2UrND4+Ml09YVtSKzQ+PjJdLGFbZ2UrOD4+Ml09YVtSKzg+PjJdLGFbZ2UrMTI+PjJdPWFbUisxMj4+Ml0sYVtnZSsxNj4+Ml09YVtS''@;'; + put 'put ''KzE2Pj4yXSxhW2dlKzIwPj4yXT1hW1IrMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbUisyND4+Ml0sYVtnZSsyOD4+Ml09YVtSKzI4Pj4yXSx3PStfW2Y+PjNdLGI9K19bZis4Pj4zXSxwPTB8YVsoUj1jKzg0fDApPj4yXSxPZT0wfGFbYz4+Ml0/MTowIT0oMHxhW2MrOD4+Ml0pLDB8KG09MHxhWyhw''@;'; + put 'put ''ZT1jKzEwOHwwKT4+Ml0pJiZibyhmLG0sMTg2NTQ0KSxfW2dlPj4zXT0rX1tnZT4+M10rdyxfWyhHPWdlKzE2fDApPj4zXT0rX1tHPj4zXSt3LF9bKEc9Z2UrOHwwKT4+M109K19bRz4+M10rYixfWyhHPWdlKzI0fDApPj4zXT0rX1tHPj4zXStiLE9lJiYwPT0oNCZhW2wrMTUyPj4yXXwwKT8o''@;'; + put 'put ''YVtLPj4yXT1hW2dlPj4yXSxhW0srND4+Ml09YVtnZSs0Pj4yXSxhW0srOD4+Ml09YVtnZSs4Pj4yXSxhW0srMTI+PjJdPWFbZ2UrMTI+PjJdLGFbSysxNj4+Ml09YVtnZSsxNj4+Ml0sYVtLKzIwPj4yXT1hW2dlKzIwPj4yXSxhW0srMjQ+PjJdPWFbZ2UrMjQ+PjJdLGFbSysyOD4+Ml09YVtn''@;'; + put 'put ''ZSsyOD4+Ml0sRz0wfE92KGwsZixjLEssYmUpKTpHPTAsISgzMiYobT0wfHJ0WyhrPWMrNDJ8MCk+PjFdKSkpe2ZvcigoQT0wfGFbYysyMD4+Ml0pJiYobT0wfFBSKGwsQSwwfGFbYysyOD4+Ml0sNjU1MzUmbSxEKSw0JnJ0W2s+PjFdPyhrPTB8SnRbYyszMz4+MF0sYVtLPj4yXT1hW2dlPj4y''@;'; + put 'put ''XSxhW0srND4+Ml09YVtnZSs0Pj4yXSxhW0srOD4+Ml09YVtnZSs4Pj4yXSxhW0srMTI+PjJdPWFbZ2UrMTI+PjJdLGFbSysxNj4+Ml09YVtnZSsxNj4+Ml0sYVtLKzIwPj4yXT1hW2dlKzIwPj4yXSxhW0srMjQ+PjJdPWFbZ2UrMjQ+PjJdLGFbSysyOD4+Ml09YVtnZSsyOD4+Ml0sSzUobCww''@;'; + put 'put ''fFNkKE0sSyxrKSw0LDQsbSkpOihhW0s+PjJdPWFbZ2U+PjJdLGFbSys0Pj4yXT1hW2dlKzQ+PjJdLGFbSys4Pj4yXT1hW2dlKzg+PjJdLGFbSysxMj4+Ml09YVtnZSsxMj4+Ml0sYVtLKzE2Pj4yXT1hW2dlKzE2Pj4yXSxhW0srMjA+PjJdPWFbZ2UrMjA+PjJdLGFbSysyND4+Ml09YVtnZSsy''@;'; + put 'put ''ND4+Ml0sYVtLKzI4Pj4yXT1hW2dlKzI4Pj4yXSx5MyhsLEssbSkpLEZ0KDB8YVtEPj4yXSkpO209MHxhW3A+PjJdOylHYShsLG0sZikscD1wKzR8MDtmb3IocD0wfGFbUj4+Ml0seGgobCwxKSxtPWMrMjR8MDtBPXArNHwwLHA9MHxhW3A+PjJdOykwfGZlW3ArMTAwPj4wXT8oRlIobCxwLGYs''@;'; + put 'put ''MHxhW20+PjJdLDB8YVtBPj4yXSkscD1BKTpwPUE7MHxmZVtjKzMzPj4wXSYmKGFbSz4+Ml09YVtnZT4+Ml0sYVtLKzQ+PjJdPWFbZ2UrND4+Ml0sYVtLKzg+PjJdPWFbZ2UrOD4+Ml0sYVtLKzEyPj4yXT1hW2dlKzEyPj4yXSxhW0srMTY+PjJdPWFbZ2UrMTY+PjJdLGFbSysyMD4+Ml09YVtn''@;'; + put 'put ''ZSsyMD4+Ml0sYVtLKzI0Pj4yXT1hW2dlKzI0Pj4yXSxhW0srMjg+PjJdPWFbZ2UrMjg+PjJdLHBFKGwsYyxLKSl9MHxHJiZQNChsLGJlKSxPZSYmNCZhW2wrMTUyPj4yXXwwJiYoYVtLPj4yXT1hW2dlPj4yXSxhW0srND4+Ml09YVtnZSs0Pj4yXSxhW0srOD4+Ml09YVtnZSs4Pj4yXSxhW0sr''@;'; + put 'put ''MTI+PjJdPWFbZ2UrMTI+PjJdLGFbSysxNj4+Ml09YVtnZSsxNj4+Ml0sYVtLKzIwPj4yXT1hW2dlKzIwPj4yXSxhW0srMjQ+PjJdPWFbZ2UrMjQ+PjJdLGFbSysyOD4+Ml09YVtnZSsyOD4+Ml0sMHxPdihsLGYsYyxLLGJlKSkmJlA0KGwsYmUpLDB8YVtwZT4+Ml0mJmdFKGYsMTg2NTQ0KSxh''@;'; + put 'put ''ZT1MZX1mdW5jdGlvbiBibyhsLGMsZil7Y3w9MCxmfD0wO3ZhciB3LHA9MCxtPTAsQT0wOzB8KG09MHxhWyh3PTE2KyhsfD0wKXwwKT4+Ml0pJiYoMHxhW2M+PjJdPyhhW2Y+PjJdPW0sbT0wfGFbYz4+Ml0sQT13KToobT0wLEE9ZiksYVtBPj4yXT1tKSwwfChtPTB8YVtsKzIwPj4yXSkmJigw''@;'; + put 'put ''fGFbKEE9Yys0fDApPj4yXT8oYVtmKzQ+PjJdPW0sbT0wfGFbQT4+Ml0sQT13KToobT0wLEE9ZiksYVtBKzQ+PjJdPW0pLChwPStfW2wrMzI+PjNdKT49MCYmKCtfWyhtPWMrMTZ8MCk+PjNdPj0wPyhfW2YrMTY+PjNdPXAscD0rX1ttPj4zXSxmPXcpOnA9LTEsX1tmKzE2Pj4zXT1wKX1mdW5j''@;'; + put 'put ''dGlvbiBPdihsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wO3ZhciB3LGIsayxNLEQsUixHLEsscGUsZ2UsYmUsQT0wO2JlPWFlLGFlPWFlKzIyNHwwLE09YmUrOHwwLGI9YmUsZ2U9YmUrNDB8MCx3PWJlKzE4NHwwLEE9YmUrNTZ8MCxhWyhtfD0wKT4+Ml09YVsoRD0yMDgrKGs9MHxhWzE2Kyhs''@;'; + put 'put ''fD0wKT4+Ml0pfDApPj4yXSxhW20rND4+Ml09YVsoUj1rKzIyOHwwKT4+Ml0sYVttKzg+PjJdPWFbKEc9aysyNDR8MCk+PjJdLGFbbSsxMj4+Ml09YVsoSz1rKzIxMnwwKT4+Ml0sZmVbbSsxNj4+MF09KHJ0WyhwZT1rKzI2MHwwKT4+MV08PDE1JjY1NTM1KTw8MTY+PjE2Pj4xNSwwIT0oMHwo''@;'; + put 'put ''bT0wfGFbZisxNj4+Ml0pKSYmMCE9KDB8ZmVbbT4+MF0pP0E9MDoodXMoZ2UsMTI4LEEpLChtPTB8YVsoQT1jKzYwfDApPj4yXSl8fChtPTB8cmEoMHxmRihsLDB8YVtrKzg+PjJdLGdlKSksYVtBPj4yXT1tLGZlW2MrNjQ+PjBdPTEpLHVvKGdlLG0pLGFbNDczNzRdPTErKEE9MHxhWzQ3Mzc0''@;'; + put 'put ''XSksYVtiPj4yXT1BLG9vKHcsMTM3MzkxLGIpLHVvKGdlLHcpLChtPTB8YVsoQT1nZSs0fDApPj4yXSk+Pj4wPj0oMHxhW2dlKzg+PjJdKT4+PjAmJihRMChnZSwxKSxtPTB8YVtBPj4yXSksZmVbbT4+MF09MCxhW0E+PjJdPW09MHxhW2dlPj4yXSxBPTEpLG09MHxRMShsLDAsMHxhW2Y+PjJd''@;'; + put 'put ''LDB8YVtmKzEyPj4yXSwwfGFbZis4Pj4yXSxtLDB8YVtrKzg+PjJdKSxBJiZDMihnZSk7ZG97aWYoMHxtKXtpZigwPT0oMHxhW0Q+PjJdKSYmMD09KDEmcnRbcGU+PjFdKSlicmVhazthW00+PjJdPWFbcD4+Ml0sYVtNKzQ+PjJdPWFbcCs0Pj4yXSxhW00rOD4+Ml09YVtwKzg+PjJdLGFbTSsx''@;'; + put 'put ''Mj4+Ml09YVtwKzEyPj4yXSxhW00rMTY+PjJdPWFbcCsxNj4+Ml0sYVtNKzIwPj4yXT1hW3ArMjA+PjJdLGFbTSsyND4+Ml09YVtwKzI0Pj4yXSxhW00rMjg+PjJdPWFbcCsyOD4+Ml0sTEMobCxNKSxHMShsLDB8YVtEPj4yXSwwfGFbUj4+Ml0sMHxhW0c+PjJdLDB8YVtLPj4yXSl9fXdoaWxl''@;'; + put 'put ''KDApO3JldHVybiBhZT1iZSwwfG19ZnVuY3Rpb24gUFIobCxjLGYscCxtKXt2YXIgdyxiO3JldHVybiBsfD0wLGZ8PTAscHw9MCxiPWFlLGFlPWFlKzE2fDAsKDB8bGsoY3w9MCxtfD0wLHc9YikpPDwyND4+MjQ/KGhsKGwsMHxhW20+PjJdKSxVZihsLChjPTB8YVttKzQ+PjJdKXx8MTM3MzE0''@;'; + put 'put ''LGYsK2puW3c+PjJdKSxjPXA+Pj4xJjF8Mik6KGhsKGwsYyksYz0xKSxtYShsLDEzNzM3OSksYWU9YiwwfGN9ZnVuY3Rpb24gU2QobCxjLGYpe2Z8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTA7cmV0dXJuIGFbKGx8PTApPj4yXT1hWyhjfD0wKT4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxh''@;'; + put 'put ''W2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXSxhWyhwPWwrMzJ8MCk+PjJdPWFbKGM9YysxNnwwKT4+Ml0sYVtwKzQ+PjJdPWFbYys0Pj4yXSxhW3ArOD4+Ml09YVtjKzg+PjJdLGFbcCsxMj4+Ml09YVtjKzEyPj4yXSwoMHxmKT4xPyhfW2w+PjNdPXc9K19bbD4+M10r''@;'; + put 'put ''KGI9LjUqKygwfGYpKSxfWyhmPWwrOHwwKT4+M109QT0rX1tmPj4zXStiLF9bcD4+M109bT0rX1twPj4zXS1iLF9bKHA9bCs0MHwwKT4+M109Yj0rX1twPj4zXS1iKToobT0rX1twPj4zXSxBPStfW2wrOD4+M10sdz0rX1tsPj4zXSxiPStfW2wrNDA+PjNdKSxfW2wrMTY+PjNdPW0sX1tsKzI0''@;'; + put 'put ''Pj4zXT1BLF9bbCs0OD4+M109dyxfW2wrNTY+PjNdPWIsMHxsfWZ1bmN0aW9uIEdhKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIG0sQSxNLEQsUixHLEssZ2UscD0wLHc9MCxiPTAsaz0wLHBlPTA7Z2U9YWUsYWU9YWUrMTc2fDAsUj1nZSs5NnwwLEc9Z2UrMTM2fDAsTT1nZSxEPWdlKzEyOHwwLGFb''@;'; + put 'put ''KEs9Z2UrNjR8MCk+PjJdPWFbKHBlPTQ4KyhjfD0wKXwwKT4+Ml0sYVtLKzQ+PjJdPWFbcGUrND4+Ml0sYVtLKzg+PjJdPWFbcGUrOD4+Ml0sYVtLKzEyPj4yXT1hW3BlKzEyPj4yXSxhW0srMTY+PjJdPWFbcGUrMTY+PjJdLGFbSysyMD4+Ml09YVtwZSsyMD4+Ml0sYVtLKzI0Pj4yXT1hW3Bl''@;'; + put 'put ''KzI0Pj4yXSxhW0srMjg+PjJdPWFbcGUrMjg+PjJdLEE9K19bZis4Pj4zXSxwZT0wfGFbYz4+Ml0/MTowIT0oMHxhW2MrOD4+Ml0pLF9bSz4+M109K19bSz4+M10rKG09K19bZj4+M10pLF9bKGs9SysxNnwwKT4+M109K19baz4+M10rbSxfWyhrPUsrOHwwKT4+M109K19baz4+M10rQSxfWyhr''@;'; + put 'put ''PUsrMjR8MCk+PjNdPStfW2s+PjNdK0EscGUmJjA9PSg0JmFbbCsxNTI+PjJdfDApPyhhW1I+PjJdPWFbSz4+Ml0sYVtSKzQ+PjJdPWFbSys0Pj4yXSxhW1IrOD4+Ml09YVtLKzg+PjJdLGFbUisxMj4+Ml09YVtLKzEyPj4yXSxhW1IrMTY+PjJdPWFbSysxNj4+Ml0sYVtSKzIwPj4yXT1hW0sr''@;'; + put 'put ''MjA+PjJdLGFbUisyND4+Ml09YVtLKzI0Pj4yXSxhW1IrMjg+PjJdPWFbSysyOD4+Ml0saz0wfE92KGwsZixjLFIsRykpOms9MCxwPTB8cnRbKGI9Yys0MnwwKT4+MV07ZTpkb3tpZighKDMyJnApKXN3aXRjaCh3PTB8YVtjKzIwPj4yXSwwfHcmJihwPTB8UFIobCx3LDB8YVtjKzI4Pj4yXSw2''@;'; + put 'put ''NTUzNSZwLEQpLDQmcnRbYj4+MV0/KGI9MHxKdFtjKzMzPj4wXSxhW1I+PjJdPWFbSz4+Ml0sYVtSKzQ+PjJdPWFbSys0Pj4yXSxhW1IrOD4+Ml09YVtLKzg+PjJdLGFbUisxMj4+Ml09YVtLKzEyPj4yXSxhW1IrMTY+PjJdPWFbSysxNj4+Ml0sYVtSKzIwPj4yXT1hW0srMjA+PjJdLGFbUisy''@;'; + put 'put ''ND4+Ml09YVtLKzI0Pj4yXSxhW1IrMjg+PjJdPWFbSysyOD4+Ml0sSzUobCwwfFNkKE0sUixiKSw0LDQscCkpOihhW1I+PjJdPWFbSz4+Ml0sYVtSKzQ+PjJdPWFbSys0Pj4yXSxhW1IrOD4+Ml09YVtLKzg+PjJdLGFbUisxMj4+Ml09YVtLKzEyPj4yXSxhW1IrMTY+PjJdPWFbSysxNj4+Ml0s''@;'; + put 'put ''YVtSKzIwPj4yXT1hW0srMjA+PjJdLGFbUisyND4+Ml09YVtLKzI0Pj4yXSxhW1IrMjg+PjJdPWFbSysyOD4+Ml0seTMobCxSLHApKSxGdCgwfGFbRD4+Ml0pKSwwfGZlW2MrMzM+PjBdJiYoYVtSPj4yXT1hW0s+PjJdLGFbUis0Pj4yXT1hW0srND4+Ml0sYVtSKzg+PjJdPWFbSys4Pj4yXSxh''@;'; + put 'put ''W1IrMTI+PjJdPWFbSysxMj4+Ml0sYVtSKzE2Pj4yXT1hW0srMTY+PjJdLGFbUisyMD4+Ml09YVtLKzIwPj4yXSxhW1IrMjQ+PjJdPWFbSysyND4+Ml0sYVtSKzI4Pj4yXT1hW0srMjg+PjJdLHBFKGwsYyxSKSkscD1jKzg4fDAsMHxmZVtjKzkyPj4wXSl7Y2FzZSAxOmRFKGwsMHxhW3A+PjJd''@;'; + put 'put ''LGYpO2JyZWFrIGU7Y2FzZSAzOkhSKGwsMHxhW3A+PjJdLGYpO2JyZWFrIGU7ZGVmYXVsdDprZChsLDB8YVtwPj4yXSxmKTticmVhayBlfX13aGlsZSgwKTswfGsmJlA0KGwsRykscGUmJjQmYVtsKzE1Mj4+Ml18MCYmKGFbUj4+Ml09YVtLPj4yXSxhW1IrND4+Ml09YVtLKzQ+PjJdLGFbUis4''@;'; + put 'put ''Pj4yXT1hW0srOD4+Ml0sYVtSKzEyPj4yXT1hW0srMTI+PjJdLGFbUisxNj4+Ml09YVtLKzE2Pj4yXSxhW1IrMjA+PjJdPWFbSysyMD4+Ml0sYVtSKzI0Pj4yXT1hW0srMjQ+PjJdLGFbUisyOD4+Ml09YVtLKzI4Pj4yXSwwfE92KGwsZixjLFIsRykpJiZQNChsLEcpLGFlPWdlfWZ1bmN0aW9u''@;'; + put 'put ''IEZSKGwsYyxmLHAsbSl7Y3w9MCxtfD0wO3ZhciBiLGssUixHLEssT2UsTGUsUmUsQT0wLHc9MCxNPTAsRD0wLHBlPTAsZ2U9MCxiZT0wLEhlPTAsVmU9MDtpZihSZT1hZSxhZT1hZSszMnwwLE9lPVJlKzE2fDAsTGU9UmUsRD0rX1soZnw9MCk+PjNdLGJlPStfW2YrOD4+M10saGwobHw9MCxN''@;'; + put 'put ''PTA9PSgwfChwfD0wKSk/MTM3MzE0OnApLG1hKGwsTSksaz0rX1tjKzcyPj4zXSxSPShHPStfW2MrNDg+PjNdKStELEQ9KEs9K19bYys2ND4+M10pK0QsYmU9KGI9K19bYys1Nj4+M10pK2JlLDAhPSgxJihmPTB8ZmVbKE09YysxMDB8MCk+PjBdKSkmJigoMHxocltjKzgwPj4xXSkrKDB8aHJb''@;'; + put 'put ''Yys4ND4+MV0pfDApPCgwfGFbMTA0Kyh3PTB8YVtjKzk2Pj4yXSk+PjJdKSl7Zj0wfHJ0W2MrODY+PjFdO2Rve2lmKGY8PDE2Pj4xNil7aWYoKCgwfGhyW2MrODI+PjFdKSsoNjU1MzUmZil8MCk9PSgwfGFbdysxMDA+PjJdKSl7Zj1wPSgoVmU9KChIZT0wfGZlW3crMzI+PjBdKTw8MjQ+PjI0''@;'; + put 'put ''KS8yfDApPDwyND4+MjQpKygwfEp0W3crMzM+PjBdKXwwLHAmPTI1NSxBPWJlLSsoVmU8PDI0Pj4yNCksdz1IZTticmVha31mPTAscD0oKCh3PTB8ZmVbdyszMj4+MF0pPDwyND4+MjQpLzJ8MCk8PDI0Pj4yNCxBPWJlO2JyZWFrfWY9KHA9KCgoVmU9MHxmZVt3KzMyPj4wXSk8PDI0Pj4yNCkv''@;'; + put 'put ''MnwwKTw8MjQ+PjI0KSsoMHxKdFt3KzMzPj4wXSl8MCxBPWJlLHc9VmV9d2hpbGUoMCk7X1tMZSs4Pj4zXT1BLSsoMHxwKSxfW0xlPj4zXT1EKyArKCgodzw8MjQ+PjI0KS8yfDApPDwyND4+MjQpLGFbT2U+PjJdPWFbTGU+PjJdLGFbT2UrND4+Ml09YVtMZSs0Pj4yXSxhW09lKzg+PjJdPWFb''@;'; + put 'put ''TGUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtMZSsxMj4+Ml0sUnYobCxPZSwwLGstYisgKygyNTUmZnwwKSsgKyh3PDwyND4+MjQpKSxmPTB8ZmVbTT4+MF19aWYoMiZmJiYoKDB8aHJbYys4Mj4+MV0pKyg2NTUzNSYocGU9MHxydFtjKzg2Pj4xXSkpfDApPCgwfGFbMTAwKyhnZT0wfGFbYys5Nj4+''@;'; + put 'put ''Ml0pPj4yXSkpe2Y9MHxydFtjKzg0Pj4xXTtkb3tpZihmPDwxNj4+MTYpe2lmKCgoMHxocltjKzgwPj4xXSkrKDY1NTM1JmYpfDApPT0oMHxhW2dlKzEwND4+Ml0pKXtwPSgyNTUmKFZlPSgoZj0wfGZlW2dlKzMyPj4wXSk8PDI0Pj4yNCkvMnwwKSkrKDB8SnRbZ2UrMzM+PjBdKSYyNTUsX1tM''@;'; + put 'put ''ZT4+M109Ui0rKFZlPDwyND4+MjQpO2JyZWFrfV9bTGU+PjNdPVItKEE9KygoKChmPTB8ZmVbZ2UrMzI+PjBdKTw8MjQ+PjI0KS8yfDApPDwyND4+MjQpKSxwPTAhPSgwfG0pJiYoMHxydFttKzg2Pj4xXSkhPXBlPDwxNj4+MTY/MjU1Jn5+KCtfW2dlKzY0Pj4zXS1LLUEpOjB9ZWxzZXtpZihw''@;'; + put 'put ''PTI1NSYodz0oKFZlPSgoZj0wfGZlW2dlKzMyPj4wXSk8PDI0Pj4yNCkvMnwwKTw8MjQ+PjI0KSsoMHxKdFtnZSszMz4+MF0pfDApLF9bTGU+PjNdPVItKEE9KyhWZTw8MjQ+PjI0KSktKygwfCh3Jj0yNTUpKSwoMHxhW2dlKzEwND4+Ml0pPT0oMHxocltjKzgwPj4xXSkpe3A9dzw8MSYyNTU7''@;'; + put 'put ''YnJlYWt9MCE9KDB8bSkmJigwfHJ0W20rODY+PjFdKSE9cGU8PDE2Pj4xNiYmKHA9MjU1Jn5+KCsoMjU1JnApLUsrICtfW2dlKzY0Pj4zXS1BKSl9fXdoaWxlKDApO19bTGUrOD4+M109YmUtKygoKGY8PDI0Pj4yNCkvMnwwKTw8MjQ+PjI0KSxhW09lPj4yXT1hW0xlPj4yXSxhW09lKzQ+PjJd''@;'; + put 'put ''PWFbTGUrND4+Ml0sYVtPZSs4Pj4yXT1hW0xlKzg+PjJdLGFbT2UrMTI+PjJdPWFbTGUrMTI+PjJdLFJ2KGwsT2UsSy1HKyArKDI1NSZwKSsgKyhmPDwyND4+MjQpLDApfWFlPVJlfWZ1bmN0aW9uIHBFKGwsYyxmKXtmfD0wO3ZhciBNLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLEQ9MDtNPWFl''@;'; + put 'put ''LGFlPWFlKzE2MHwwLGs9TSsxMTJ8MCxiPU0sbT1NKzE0NHwwLG1hKGx8PTAsMD09KDB8KHc9MHxhWzI0KyhjfD0wKT4+Ml0pKT8xMzczMTQ6dyksMzg0JihwPTB8cnRbKHc9Yys0MnwwKT4+MV0pPyhhW20rND4+Ml09MCxhW20+PjJdPTAsMjU2JihwJj02NTUzNSk/KHA9MTM3MzI3LEE9NCk6''@;'; + put 'put ''MTI4JnB8MCYmKHA9MTM3MzIwLEE9NCksND09KDB8QSkmJihhW20+PjJdPXApLGQyKGwsbSkpOmQyKGwsMHxhWzMzNisoMHxhW2w+PjJdKT4+Ml0pLHhoKGwsKygwfEp0WyhBPWMrMzN8MCk+PjBdKSk7ZTpkb3tpZig0JnJ0W3c+PjFdKXc9MHxKdFtBPj4wXSxhW2s+PjJdPWFbZj4+Ml0sYVtr''@;'; + put 'put ''KzQ+PjJdPWFbZis0Pj4yXSxhW2srOD4+Ml09YVtmKzg+PjJdLGFbaysxMj4+Ml09YVtmKzEyPj4yXSxhW2srMTY+PjJdPWFbZisxNj4+Ml0sYVtrKzIwPj4yXT1hW2YrMjA+PjJdLGFbaysyND4+Ml09YVtmKzI0Pj4yXSxhW2srMjg+PjJdPWFbZisyOD4+Ml0sSzUobCwwfFNkKGIsayx3KSw0''@;'; + put 'put ''LDQsMCk7ZWxzZXtpZighKChwPTE1MzYwJnJ0W2MrMzY+PjFdKTw8MTY+PjE2KSl7KDI1NSYocD0wfGZlW0E+PjBdKSk+MSYmKF9bZj4+M109K19bZj4+M10rKEQ9LjUqKygyNTUmcCkpLF9bKGI9Zis4fDApPj4zXT0rX1tiPj4zXStELF9bKGI9ZisxNnwwKT4+M109K19bYj4+M10tRCxfWyhi''@;'; + put 'put ''PWYrMjR8MCk+PjNdPStfW2I+PjNdLUQpLGFbaz4+Ml09YVtmPj4yXSxhW2srND4+Ml09YVtmKzQ+PjJdLGFbays4Pj4yXT1hW2YrOD4+Ml0sYVtrKzEyPj4yXT1hW2YrMTI+PjJdLGFbaysxNj4+Ml09YVtmKzE2Pj4yXSxhW2srMjA+PjJdPWFbZisyMD4+Ml0sYVtrKzI0Pj4yXT1hW2YrMjQ+''@;'; + put 'put ''PjJdLGFbaysyOD4+Ml09YVtmKzI4Pj4yXSx5MyhsLGssMCk7YnJlYWt9c3dpdGNoKG09YisxNnwwLHc9MHxKdFtBPj4wXSxhW2s+PjJdPWFbZj4+Ml0sYVtrKzQ+PjJdPWFbZis0Pj4yXSxhW2srOD4+Ml09YVtmKzg+PjJdLGFbaysxMj4+Ml09YVtmKzEyPj4yXSxhW2srMTY+PjJdPWFbZisx''@;'; + put 'put ''Nj4+Ml0sYVtrKzIwPj4yXT1hW2YrMjA+PjJdLGFbaysyND4+Ml09YVtmKzI0Pj4yXSxhW2srMjg+PjJdPWFbZisyOD4+Ml0sU2QobSxrLHcpLCgoNjU1MzUmcCktMTAyNHwwKT4+PjEwJjQxOTQzMDN8MCl7Y2FzZSA3OldvKGwsbSwyKTticmVhayBlO2Nhc2UgMzpXbyhsLGIrMzJ8MCwyKTti''@;'; + put 'put ''cmVhayBlO2Nhc2UgMTpXbyhsLGIrNDh8MCwyKTticmVhayBlO2Nhc2UgMDphW2I+PjJdPWFbKGY9Yis2NHwwKT4+Ml0sYVtiKzQ+PjJdPWFbZis0Pj4yXSxhW2IrOD4+Ml09YVtmKzg+PjJdLGFbYisxMj4+Ml09YVtmKzEyPj4yXSxXbyhsLGIsMik7YnJlYWsgZTtjYXNlIDExOldvKGwsbSwz''@;'; + put 'put ''KTticmVhayBlO2Nhc2UgNTpXbyhsLGIrMzJ8MCwzKTticmVhayBlO2Nhc2UgMjphWyhmPWIrODB8MCk+PjJdPWFbbT4+Ml0sYVtmKzQ+PjJdPWFbbSs0Pj4yXSxhW2YrOD4+Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09YVttKzEyPj4yXSxXbyhsLGIrNDh8MCwzKTticmVhayBlO2Nhc2UgODph''@;'; + put 'put ''W2I+PjJdPWFbKGY9Yis2NHwwKT4+Ml0sYVtiKzQ+PjJdPWFbZis0Pj4yXSxhW2IrOD4+Ml09YVtmKzg+PjJdLGFbYisxMj4+Ml09YVtmKzEyPj4yXSxXbyhsLGIsMyk7YnJlYWsgZTtjYXNlIDEzOldvKGwsbSw0KTticmVhayBlO2Nhc2UgNjphWyhmPWIrODB8MCk+PjJdPWFbbT4+Ml0sYVtm''@;'; + put 'put ''KzQ+PjJdPWFbbSs0Pj4yXSxhW2YrOD4+Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09YVttKzEyPj4yXSxXbyhsLGIrMzJ8MCw0KTticmVhayBlO2Nhc2UgMTA6YVsoZj1iKzgwfDApPj4yXT1hW20+PjJdLGFbZis0Pj4yXT1hW20rND4+Ml0sYVtmKzg+PjJdPWFbbSs4Pj4yXSxhW2YrMTI+PjJd''@;'; + put 'put ''PWFbbSsxMj4+Ml0sYVsoZj1iKzk2fDApPj4yXT1hWyhrPWIrMzJ8MCk+PjJdLGFbZis0Pj4yXT1hW2srND4+Ml0sYVtmKzg+PjJdPWFbays4Pj4yXSxhW2YrMTI+PjJdPWFbaysxMj4+Ml0sV28obCxiKzQ4fDAsNCk7YnJlYWsgZTtjYXNlIDEyOmFbYj4+Ml09YVsoZj1iKzY0fDApPj4yXSxh''@;'; + put 'put ''W2IrND4+Ml09YVtmKzQ+PjJdLGFbYis4Pj4yXT1hW2YrOD4+Ml0sYVtiKzEyPj4yXT1hW2YrMTI+PjJdLFdvKGwsYiw0KTticmVhayBlO2Nhc2UgOTpXbyhsLG0sMiksV28obCxiKzQ4fDAsMik7YnJlYWsgZTtjYXNlIDQ6YVtiPj4yXT1hWyhmPWIrNjR8MCk+PjJdLGFbYis0Pj4yXT1hW2Yr''@;'; + put 'put ''ND4+Ml0sYVtiKzg+PjJdPWFbZis4Pj4yXSxhW2IrMTI+PjJdPWFbZisxMj4+Ml0sV28obCxiLDIpLFdvKGwsYiszMnwwLDIpO2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX19d2hpbGUoMCk7YWU9TX1mdW5jdGlvbiBQNChsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wOzA9PSgwfGFbKGY9MjA4''@;'; + put 'put ''KyhtPTB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0pJiYwPT0oMSZydFttKzI2MD4+MV0pP2w9MDooRWgobCksbD0wfGFbZj4+Ml0pLCgwfGwpIT0oMHxhW2M+PjJdKSYmKEZ0KGwpLGFbZj4+Ml09YVtjPj4yXSksKDB8KGY9MHxhWyhsPW0rMjI4fDApPj4yXSkpIT0oMHxhWyhwPWMrNHwwKT4+''@;'; + put 'put ''Ml0pJiYoRnQoZiksYVtsPj4yXT1hW3A+PjJdKSwoMHwoZj0wfGFbKGw9bSsyNDR8MCk+PjJdKSkhPSgwfGFbKHA9Yys4fDApPj4yXSkmJihGdChmKSxhW2w+PjJdPWFbcD4+Ml0pLCgwfChmPTB8YVsobD1tKzIxMnwwKT4+Ml0pKSE9KDB8YVsocD1jKzEyfDApPj4yXSkmJihGdChmKSxhW2w+''@;'; + put 'put ''PjJdPWFbcD4+Ml0pLHJ0WyhtPW0rMjYwfDApPj4xXT0tMiZydFttPj4xXXwxJmZlW2MrMTY+PjBdfWZ1bmN0aW9uIGdFKGwsYyl7bHw9MDt2YXIgZixwPTA7MHwocD0wfGFbKGN8PTApPj4yXSkmJihhW2wrMTY+PjJdPXApLDB8KHA9MHxhW2MrND4+Ml0pJiYoYVtsKzIwPj4yXT1wKSwoZj0r''@;'; + put 'put ''X1tjKzE2Pj4zXSk+PTAmJihfW2wrMzI+PjNdPWYpfWZ1bmN0aW9uIFJ2KGwsYyxmLHApe3ZhciBtLEEsdztsfD0wLGY9K2YscD0rcCxtPWFlLGFlPWFlKzY0fDAsQT1tKzMyfDAsYVsodz1tKT4+Ml09YVsoY3w9MCk+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4y''@;'; + put 'put ''XSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sX1t3KzE2Pj4zXT0rX1tjPj4zXStmLF9bdysyND4+M109K19bYys4Pj4zXStwLGFbQT4+Ml09YVt3Pj4yXSxhW0ErND4+Ml09YVt3KzQ+PjJdLGFbQSs4Pj4yXT1hW3crOD4+Ml0sYVtBKzEyPj4yXT1hW3crMTI+PjJdLGFbQSsxNj4+Ml09YVt3KzE2''@;'; + put 'put ''Pj4yXSxhW0ErMjA+PjJdPWFbdysyMD4+Ml0sYVtBKzI0Pj4yXT1hW3crMjQ+PjJdLGFbQSsyOD4+Ml09YVt3KzI4Pj4yXSx5MyhsLEEsMSksYWU9bX1mdW5jdGlvbiBIUihsLGMsZil7bHw9MDt2YXIgbSxBLHcsTSxwPTAsYj0wLGs9MDtpZihBPWFlLGFlPWFlKzY0fDAsTT0oYj0rX1soZnw9''@;'; + put 'put ''MCk+PjNdKSsgK19bKGN8PTApPj4zXSx3PShrPStfW2YrOD4+M10pKyArX1tjKzg+PjNdLGsrPStfW2MrMjQ+PjNdLF9bKG09QSk+PjNdPWIrPStfW2MrMTY+PjNdLF9bbSs4Pj4zXT1rLF9bbSszMj4+M109TSxfW20rNDA+PjNdPXcsX1ttKzE2Pj4zXT1NLF9bbSsyND4+M109ayxfW20rNDg+''@;'; + put 'put ''PjNdPWIsX1ttKzU2Pj4zXT13LChwPTB8YVtjKzM2Pj4yXSl8fChwPTB8YVtmKzU2Pj4yXSksKGY9MHxhW2MrMzI+PjJdKXx8UHIoMTM3MzM0LDEzNzM0Miw2MjMsMTM3MzU0KSwwfGZlW2Y+PjBdKXJldHVybiBRTShsLGYsbSw0LDEscCksdm9pZChhZT1BKTtQcigxMzczNjgsMTM3MzQyLDYy''@;'; + put 'put ''NCwxMzczNTQpfWZ1bmN0aW9uIEs4KGwpe0Z0KDB8YVsobHw9MCk+PjJdKSxGdCgwfGFbbCs0Pj4yXSksRnQoMHxhW2wrOD4+Ml0pLEZ0KDB8YVtsKzE2Pj4yXSksRnQoMHxhW2wrMTI+PjJdKSxGdCgwfGFbbCsyMD4+Ml0pLEZ0KDB8YVtsKzI0Pj4yXSl9ZnVuY3Rpb24gVlIobCl7dmFyIGM9''@;'; + put 'put ''MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7aWYoMHwobHw9MCkpe2ZvcihiPWwrNHwwLGY9MCxtPTB8YVtsPj4yXTshKCgwfGYpPj0oMHxydFtiPj4xXSkpOyl7Zm9yKGs9bSs0fDAsYz0wLHA9MHxhW20+PjJdOyEoKDB8Yyk+PSgwfHJ0W2s+PjFdKSk7KUZ0KDB8YVtwPj4yXSksMHwo''@;'; + put 'put ''QT0wfGFbcCs4Pj4yXSkmJjB8KHc9MHxhW3ArMTI+PjJdKSYmQ29bMTI3JnddKEEpLGM9YysxfDAscD1wKzU2fDA7Zj1mKzF8MCxtPW0rMjR8MH0wfChjPTB8YVtsPj4yXSkmJkZ0KGMpLEZ0KGwpfX1mdW5jdGlvbiBBbShsLGMpe3N3aXRjaChjfD0wLDB8ZmVbNCsobHw9MCk+PjBdKXtjYXNl''@;'; + put 'put ''IDE6IWZ1bmN0aW9uIGVHKGwpe3ZhciBwLGM9MCxmPTA7aWYocD04NCsobHw9MCl8MCwtMT09KDB8YVtsKzEwMD4+Ml0pKU5sKDB8YVtwPj4yXSk7ZWxzZXtmb3IoYz0wfGFbcD4+Ml0sRnQoMHxhW2wrOTI+PjJdKSxGdCgwfGFbbCs5Nj4+Ml0pO2Y9MHxhW2M+PjJdOylqUihmKSxjPWMrNHww''@;'; + put 'put ''O0Z0KDB8YVtwPj4yXSl9SzgobCksRnQobCl9KDB8YVtsPj4yXSk7YnJlYWs7Y2FzZSAzOiFmdW5jdGlvbiBxeihsKXtGdCgwfGFbMzIrKGx8PTApPj4yXSksRnQobCl9KDB8YVtsPj4yXSk7YnJlYWs7ZGVmYXVsdDpWUigwfGFbbD4+Ml0pfTB8YyYmRnQobCl9ZnVuY3Rpb24galIobCl7QW0o''@;'; + put 'put ''ODgrKGx8PTApfDAsMCksSzgobCksRnQobCl9ZnVuY3Rpb24gdEcobCxjLGYpe2Z8PTA7dmFyIHA9MDtyZXR1cm4gMiE9KDB8ZmVbNCsobD0wfGFbNzIrKDB8YVsxMDQrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pPj4yXSk+PjBdKSYmMCE9KDB8KHA9MHxaUigwfGFbbD4+Ml0sY3w9MCkpKT8o''@;'; + put 'put ''YVtmPj4yXT1KdFtwKzM1Pj4wXSxsPXArNDh8MCk6bD0wLDB8bH1mdW5jdGlvbiBaUihsLGMpe2N8PTA7dmFyIGY9MCxwPTA7MCE9KDB8KGY9MHxhWzQrKGx8PTApPj4yXSkpJiYwPT0oMHx5MChmLGMpKXx8KHA9Myk7ZTpkb3tpZigzPT0oMHxwKSlmb3IoZj0wfGFbbCs4ND4+Ml07Oyl7aWYo''@;'; + put 'put ''IShsPTB8YVtmPj4yXSkpe2w9MDticmVhayBlfWlmKGw9MHxuRyhsLGMpKWJyZWFrO2Y9Zis0fDB9fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gbkcobCxjKXt2YXIgZjtyZXR1cm4gY3w9MCwwIT0oMHwoZj0wfGFbNCsobHw9MCk+PjJdKSkmJjA9PSgwfHkwKGYsYykpfHwobD0xPT0o''@;'; + put 'put ''MHxmZVtsKzkyPj4wXSk/MHxaUigwfGFbbCs4OD4+Ml0sYyk6MCksMHxsfWZ1bmN0aW9uIEY0KGwpe3ZhciBjLGY7cmV0dXJuIGY9YWUsYWU9YWUrMTZ8MCxjPWYsKGx8PTApPj4+MDwyMT9sPTB8YVs1NTg0MCsobDw8Mik+PjJdOihhW2M+PjJdPWwsb28oMTk0OTU5LDEzNzM5NSxjKSxsPTE5''@;'; + put 'put ''NDk1OSksYWU9ZiwwfGx9ZnVuY3Rpb24gVDMobCxjLGYscCl7cHw9MDt2YXIgbT0wLEE9MDsobT0wfEthKGx8PTAsY3w9MCxmfD0wLDAsMCkpP3J0WyhBPTE3MCsoMHxhW20rMTY+PjJdKXwwKT4+MV09KDB8KGY9MHxocltBPj4xXSkpPigwfHApP2Y6cDooaDAoQT0wfEthKGwsYyxmLDAsMSks''@;'; + put 'put ''MTM3NDYwLDE3NiwxKSxydFsxNzArKDB8YVtBKzE2Pj4yXSk+PjFdPXAsbD0obT0wfGFbMTgwKyhsPTB8YVsoYz1jKzE2fDApPj4yXSk+PjJdKT8wfFYwKG0sOCsoYVtsKzE4ND4+Ml08PDIpfDApOjB8UW4oOCsoYVtsKzE4ND4+Ml08PDIpfDApLGFbMTgwKyhwPTB8YVtjPj4yXSk+PjJdPWws''@;'; + put 'put ''YVsocD1wKzE4NHwwKT4+Ml09MSsobT0wfGFbcD4+Ml0pLGFbbCsobTw8Mik+PjJdPUEsYVsoMHxhWzE4MCsoYz0wfGFbYz4+Ml0pPj4yXSkrKGFbYysxODQ+PjJdPDwyKT4+Ml09MCxsPShtPTB8YVsxNzIrKGw9MHxhWyhjPWYrMTZ8MCk+PjJdKT4+Ml0pPzB8VjAobSw4KyhhW2wrMTc2Pj4y''@;'; + put 'put ''XTw8Mil8MCk6MHxRbig4KyhhW2wrMTc2Pj4yXTw8Mil8MCksYVsxNzIrKHA9MHxhW2M+PjJdKT4+Ml09bCxhWyhwPXArMTc2fDApPj4yXT0xKyhmPTB8YVtwPj4yXSksYVtsKyhmPDwyKT4+Ml09QSxhWygwfGFbMTcyKyhBPTB8YVtjPj4yXSk+PjJdKSsoYVtBKzE3Nj4+Ml08PDIpPj4yXT0w''@;'; + put 'put ''KX1mdW5jdGlvbiBnNihsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGM9MHxhWzE5MisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXTtBPTB8YVsxNjQrKDB8YVsocD1jKzE2fDApPj4yXSk+PjJdOykwfEthKGwsYyxBLDAsMCl8fChoMChtPTB8S2EobCxjLEEsMCwxKSwxMzc0NjAs''@;'; + put 'put ''MTc2LDEpLHJ0WzE3MCsoMHxhW20rMTY+PjJdKT4+MV09MCxjPShmPTB8YVsxODArKGM9MHxhW3A+PjJdKT4+Ml0pPzB8VjAoZiw4KyhhW2MrMTg0Pj4yXTw8Mil8MCk6MHxRbig4KyhhW2MrMTg0Pj4yXTw8Mil8MCksYVsxODArKHc9MHxhW3A+PjJdKT4+Ml09YyxhWyh3PXcrMTg0fDApPj4y''@;'; + put 'put ''XT0xKyhmPTB8YVt3Pj4yXSksYVtjKyhmPDwyKT4+Ml09bSxhWygwfGFbMTgwKyhwPTB8YVtwPj4yXSk+PjJdKSsoYVtwKzE4ND4+Ml08PDIpPj4yXT0wLGM9KGY9MHxhWzE3MisoYz0wfGFbKHA9QSsxNnwwKT4+Ml0pPj4yXSk/MHxWMChmLDgrKGFbYysxNzY+PjJdPDwyKXwwKTowfFFuKDgr''@;'; + put 'put ''KGFbYysxNzY+PjJdPDwyKXwwKSxhWzE3MisoZj0wfGFbcD4+Ml0pPj4yXT1jLGFbKGY9ZisxNzZ8MCk+PjJdPTErKHc9MHxhW2Y+PjJdKSxhW2MrKHc8PDIpPj4yXT1tLGFbKDB8YVsxNzIrKGM9MHxhW3A+PjJdKT4+Ml0pKyhhW2MrMTc2Pj4yXTw8Mik+PjJdPTApLGM9QX1mdW5jdGlvbiB2''@;'; + put 'put ''NihsLGMpe2N8PTA7dmFyIHAsbSx3LGIsRCxSLGY9MCxBPTAsaz0wLE09MCxHPTAsSz0wO3N3aXRjaChSPWFlLGFlPWFlKzI3MnwwLE09UisxMDR8MCxEPVIrMTM2fDAsdz1SKzcyfDAsbT1SKzE0NHwwLGFbKGI9UikrNDg+PjJdPWx8PTAsMHxraShsKSl7Y2FzZSAwOmY9MHxhW2wrNjA+PjJd''@;'; + put 'put ''O2JyZWFrO2Nhc2UgMTpmPTB8Y3IobCk7YnJlYWs7Y2FzZSAyOmY9MHxjcigwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pfXJldHVybiBhWyhBPWIrNTJ8MCk+PjJdPWYsaz0wfGFbZis2MD4+Ml0sX1tiKzMyPj4zXT0rX1tjKzE2Pj4zXSxhW2IrMTY+PjJdPWFbYys0''@;'; + put 'put ''Pj4yXSxhW2IrMjA+PjJdPWFbYys4Pj4yXSxhW2IrNDA+PjJdPTAscD0wfGZ1bmN0aW9uIGRCKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcCxtLEE7cmV0dXJuIG09YWUsYWU9YWUrMTYwfDAscD1tKzh8MCxhWyhBPW0pPj4yXT0wLGFbQSs0Pj4yXT0wLGFbNDc0MDNdPUEsYVs0NzQwMl09''@;'; + put 'put ''MCxhWzQ3NDAwXT0wLGFbNDc0MDRdPWFbMTQ0KygwfGFbMTYrKDB8YVtmKzUyPj4yXSk+PjJdKT4+Ml0sYVs0NzQwNV09MHxpcyg1NjEwNCwwfGFbNDU4MF0pLGFbNDc0MDZdPTB8aXMoNTYxNDAsMHxhWzQ1ODBdKSx1cyhwLDEyOCxtKzI0fDApLGFbNDc0MDFdPXAsMHxmdW5jdGlvbiBGRShs''@;'; + put 'put ''LGMsZil7cmV0dXJuIGx8PTAsZnw9MCxhWzQ3NDEwXT1jfD0wLHVzKDE4OTY0NCwxMjgsMCksYVs0NzQwOF09bCxmZVsxODk2NjNdPTAsZmVbMTg5NjYwXT0wLGZlWzE4OTY2MV09MCxhWzQ3NDE4XT0wLGFbNDc0MTldPTAsZmVbMTg5NjYyXT0xLGM9MHxmdW5jdGlvbiB0eChsKXtyZXR1cm4g''@;'; + put 'put ''MHxmdW5jdGlvbiBwXyhsLGMsZil7cmV0dXJuIDB8ZnVuY3Rpb24gQkIobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDsoY3w9MCk/KG09MHxfb1s2MyZhW2M+PjJdXSg0OTYpKT8oYVttKzEyPj4yXT1BPTB8YVtjPj4yXSxhW20rMTY+PjJdPWFbYys0Pj4yXSxh''@;'; + put 'put ''W20rMjA+PjJdPWFbYys4Pj4yXSxjPUEsQT02KTptPTA6KG09MHxCMCg0OTYpKT8oYVttKzEyPj4yXT0zNSxhW20rMTY+PjJdPTEwNyxhW20rMjA+PjJdPTEwNSxjPTM1LEE9Nik6bT0wO2Rve2lmKDY9PSgwfEEpKXtpZihhW20rOD4+Ml09MCxhW20rMzI+PjJdPTAsYVttKzM3Nj4+Ml09MTYs''@;'; + put 'put ''Yj1tKzEyfDAsdz0wfF9vWzYzJmNdKDI1NiksYVsoYz1tKzM4OHwwKT4+Ml09dywhdyl7Q29bMTI3JmFbbSsyMD4+Ml1dKG0pLG09MDticmVha31pZihBPTB8X29bNjMmYVtiPj4yXV0oMTAyNCksYVsodz1tKzQ0fDApPj4yXT1BLCFBKXtDb1sxMjcmYVsoZj1tKzIwfDApPj4yXV0oMHxhW2M+''@;'; + put 'put ''PjJdKSxDb1sxMjcmYVtmPj4yXV0obSksbT0wO2JyZWFrfWlmKGFbbSs0OD4+Ml09QSsxMDI0LHApYVttKzM1Mj4+Ml09cDtlbHNlIGlmKHA9MHxnRyhiKSxhW20rMzUyPj4yXT1wLCFwKXtDb1sxMjcmYVsoZj1tKzIwfDApPj4yXV0oMHxhW3c+PjJdKSxDb1sxMjcmYVtmPj4yXV0oMHxhW2M+''@;'; + put 'put ''PjJdKSxDb1sxMjcmYVtmPj4yXV0obSksbT0wO2JyZWFrfWlmKGFbbSszNzI+PjJdPTAsYVttKzM2ND4+Ml09MCxhW20rMzAwPj4yXT0wLGFbbSs0NjQ+PjJdPTAsYVttKzQ2MD4+Ml09MCxhW20rMTI0Pj4yXT0wLGFbbSsyNDQ+PjJdPTAsZmVbKGM9bSs0Njh8MCk+PjBdPTMzLGZlWyhBPW0r''@;'; + put 'put ''MjMyfDApPj4wXT0wLGZlW20rMjMzPj4wXT0wLGFbbSszOTI+PjJdPTAsYVttKzM5Nj4+Ml09MCxmZVttKzQwMD4+MF09MCxhWyhwPW0rMjI4fDApPj4yXT0wLG9BKG0rNDEyfDAsYiksb0EobSs0MzZ8MCxiKSxnXyhtLGwpLDB8bCYmMD09KDB8YVtwPj4yXSkpe21fKG0pLG09MDticmVha31p''@;'; + put 'put ''ZihmKXtmZVtBPj4wXT0xLGFbbSsyMjQ+PjJdPTYwMDkyLGZlW2M+PjBdPTB8ZmVbZj4+MF07YnJlYWt9YVttKzIyND4+Ml09NTgyMjA7YnJlYWt9fXdoaWxlKDApO3JldHVybiAwfG19KGx8PTAsY3w9MCxmfD0wLDApfShsfD0wLDAsMCl9KDB8ZnVuY3Rpb24gWW9lKGwpe3ZhciBjLGY7c3dp''@;'; + put 'put ''dGNoKGY9YWUsYWU9YWUrMTZ8MCxjPWYsMHwobHw9MCkpe2Nhc2UgMDpsPTEwMTk3MTticmVhaztjYXNlIDE6bD0xMDE4Mzk7YnJlYWs7Y2FzZSAyOmw9MTAxOTc3O2JyZWFrO2RlZmF1bHQ6YVtjPj4yXT1sLCRyKDEsMTAxOTQxLGMpLGw9MTAxOTcxfXJldHVybiBhZT1mLDB8bH0oMHxKdFsx''@;'; + put 'put ''MTUrKDB8YVsxNisoMHxhWyhmPWYrNTJ8MCk+PjJdKT4+Ml0pPj4wXSkpLGFbNDc0MDddPWMsZnVuY3Rpb24gQUcobCxjKXtjfD0wO3ZhciBmPTAscD0wOzB8KGx8PTApJiYocD0oMHxhWyhmPWwrNHwwKT4+Ml0pPT0oMHxhW2w+PjJdKSxhW2w+PjJdPWMscCkmJihhW2Y+PjJdPWMpfShjLDB8''@;'; + put 'put ''YVsxNDQrKDB8YVsxNisoMHxhW2Y+PjJdKT4+Ml0pPj4yXSksZnVuY3Rpb24gc3gobCxjLGYpe2Z8PTAsMHwobHw9MCkmJihhW2wrNTI+PjJdPWN8PTAsYVtsKzU2Pj4yXT1mKX0oMHxhWzQ3NDA3XSw3MCwyNyksZnVuY3Rpb24gVkIobCxjKXswfChsfD0wKSYmKGFbbCs2MD4+Ml09Y3w9MCl9''@;'; + put 'put ''KDB8YVs0NzQwN10sNzEpLDB9KGwscCxmKT8oYVtjPj4yXT0yLGw9MCk6KGZ1bmN0aW9uIHNCKCl7dmFyIEcscGUsbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsSz0wO3BlPWFlLGFlPWFlKzEyMDB8MCxHPXBlKzgwMHwwLGY9cGUsYVs0NzM5N109MCxh''@;'; + put 'put ''WzQ3Mzk4XT0tMixjPUcsbT0yMDAsaz1mLEQ9MCxSPTAsTT1HO2U6Zm9yKDs7KXtpZihydFtNPj4xXT1ELChjKyhtPDwxKSstMnwwKT4+PjA+TT4+PjApdz1tO2Vsc2V7aWYobD0xKyhiPU0tYz4+MSl8MCxtPj4+MD45OTk5KXtLPTk1O2JyZWFrfXN3aXRjaCgocD0wfEIwKDYqKHc9KHc9bTw8''@;'; + put 'put ''MSk+Pj4wPDFlND93OjFlNCl8MykpPyhnbygwfHAsMHxjLGw8PDF8MCksZ28oMHwobT1wKyh3Pj4+MTw8Mil8MCksMHxrLGw8PDJ8MCksKDB8Yyk9PSgwfEcpPyhsPTAsYz1wKTooRnQoYyksbD0wLGM9cCkpOihsPTQsbT1rKSxwPWMrKGI8PDEpfDAsMTUmKChBPTA9PSgwfGwpKT8oYysodzw8''@;'; + put 'put ''MSkrLTJ8MCk+Pj4wPnA+Pj4wPzA6OTpsKSl7Y2FzZSA5Omw9MSxLPTk2O2JyZWFrIGU7Y2FzZSA0Oks9OTU7YnJlYWsgZTtjYXNlIDA6Zj1BP20rKGI8PDIpfDA6ZixrPW0sTT1BP3A6TTticmVhaztkZWZhdWx0Omw9MDticmVhayBlfX1pZigzMT09KDB8RCkpe2w9MCxLPTk2O2JyZWFrfUE9''@;'; + put 'put ''KGw9MHxydFs2NTUzNCsoRDw8MSk+PjFdKTw8MTY+PjE2O2Rve2lmKGw8PDE2Pj4xNiE9LTgyKXtpZigtMj09KDB8KHA9MHxhWzQ3Mzk4XSkpJiYocD0wfFlFKCksYVs0NzM5OF09cCksKDB8cCk+PTE/bT1wPj4+MDwyOTY/MHxKdFsxMzkzMjErcD4+MF06MjooYVs0NzM5OF09MCxtPTApLChw''@;'; + put 'put ''PW0rQXwwKT4+PjA8PTI3MSYmKDB8bSk9PSgwfGZlWzEzOTYxNytwPj4wXSkpe2lmKGw9KEQ9MHxmZVsxMzk4ODkrcD4+MF0pPDwyND4+MjQsRDw8MjQ+PjI0PDEpe3A9MC1sfDAsSz0yMzticmVha31hWzQ3Mzk4XT0tMixhWyhmPWYrNHwwKT4+Ml09YVs0NzM5OV0sQT0wPT0oMHxSKT8wOlIr''@;'; + put 'put ''LTF8MCxwPU07YnJlYWt9Sz0yMn1lbHNlIEs9MjJ9d2hpbGUoMCk7aWYoMjI9PSgwfEspKWlmKEs9MCxwPTI1NSYoRD0wfGZlWzE0MDE2MStEPj4wXSksRDw8MjQ+PjI0KUs9MjM7ZWxzZXtwPTB8YVs0NzM5OF07dDpkb3tzd2l0Y2goMHxSKXtjYXNlIDA6YVs0NzM5N109MSsoMHxhWzQ3Mzk3''@;'; + put 'put ''XSksSGEoMTQzNzYxKSxwPU07YnJlYWs7Y2FzZSAzOmlmKCgwfHApPDEpe2lmKHApe3A9TTticmVhayB0fWw9MSxLPTk2O2JyZWFrIGV9YVs0NzM5OF09LTIscD1NO2JyZWFrIHQ7ZGVmYXVsdDpwPU19fXdoaWxlKDApO2Zvcig7bDw8MTY+PjE2IT04Oyl7aWYoKDB8cCk9PSgwfGMpKXtsPTEs''@;'; + put 'put ''Sz05NjticmVhayBlfWY9ZistNHwwLHA9bD1wKy0yfDAsbD0wfHJ0WzY1NTM0KyhydFtsPj4xXTw8MSk+PjFdfWFbKGY9Zis0fDApPj4yXT1hWzQ3Mzk5XSxsPTEsQT0zfWRve2lmKDIzPT0oMHxLKSl7c3dpdGNoKEs9MCxsPTB8YVtmKygxLShBPTB8SnRbMTQwMjc3K3A+PjBdKTw8Mik+PjJd''@;'; + put 'put ''LDB8cCl7Y2FzZSA0Oks9MjY7YnJlYWsgZTtjYXNlIDI6YVs0NzQwMF09MHxVYigwfGFbZistND4+Ml0sMik7YnJlYWs7Y2FzZSAzOmFbNDc0MDBdPTB8VWIoMHxhW2YrLTQ+PjJdLDEpO2JyZWFrO2Nhc2UgNTpsPTB8U20oKTticmVhaztjYXNlIDg6T0UoMHxhWzQ3NDAxXSk7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSA5OlV2KDB8YVtmPj4yXSk7YnJlYWs7Y2FzZSAxODpjYXNlIDIwOmNhc2UgMjI6Y2FzZSAyNDpjYXNlIDI2OmNhc2UgMjg6Y2FzZSAzMDpjYXNlIDMyOlY0KDB8YVtmPj4yXSk7YnJlYWs7Y2FzZSAxOTpjYXNlIDIxOmNhc2UgMjM6Y2FzZSAyNTpjYXNlIDI3OmNhc2UgMjk6Y2FzZSAzMTpj''@;'; + put 'put ''YXNlIDMzOkVkKCk7YnJlYWs7Y2FzZSAzNDpjYXNlIDQxOmNhc2UgNDI6Y2FzZSA0MzpjYXNlIDQ0OmNhc2UgNDU6Y2FzZSA2NDpsPTB8YVtmKy00Pj4yXTticmVhaztjYXNlIDM1OmNhc2UgNDA6Y2FzZSA0ODpjYXNlIDQ5OmNhc2UgNTM6Y2FzZSA1NDpjYXNlIDY1Omw9MHxhW2Y+PjJdO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgMzg6aWYoKG09MHxhWzQrKGw9MHxhWzQ3NDAxXSk+PjJdKT4+PjA+PSgwfGFbbCs4Pj4yXSk+Pj4wJiYoUTAobCwxKSxsPW09MHxhWzQ3NDAxXSxtPTB8YVttKzQ+PjJdKSxmZVttPj4wXT0wLGFbbCs0Pj4yXT1EPTB8YVtsPj4yXSwwfFFiKEQpKXtLPTUxO2JyZWFrIGV9YVs4''@;'; + put 'put ''MCsoMHxhW2Y+PjJdKT4+Ml09YVs0NzQwMl0sbD0wfGlzKDU2MDMyLDB8YVs0NTgwXSksYVs4NCsoMHxhW2Y+PjJdKT4+Ml09bCxhWzQ3NDAyXT1hW2Y+PjJdLGFbMTA4KygwfGFbZj4+Ml0pPj4yXT1hW2FbNDc0MDNdPj4yXSxsPTB8YVtmPj4yXTticmVhaztjYXNlIDM5OmlmKChtPTB8YVs0''@;'; + put 'put ''KyhsPTB8YVs0NzQwMV0pPj4yXSk+Pj4wPj0oMHxhW2wrOD4+Ml0pPj4+MCYmKFEwKGwsMSksbD1tPTB8YVs0NzQwMV0sbT0wfGFbbSs0Pj4yXSksZmVbbT4+MF09MCxhW2wrND4+Ml09RD0wfGFbbD4+Ml0sMHxRYihEKSl7Sz01NjticmVhayBlfWFbNDc0MDJdPWFbODArKGw9MHxhWzQ3NDAy''@;'; + put 'put ''XSk+PjJdO2JyZWFrO2Nhc2UgNTA6ZmVbMTIrKDB8YVtmKy04Pj4yXSk+PjBdPTEsbD0wfGFbZj4+Ml07YnJlYWs7Y2FzZSA1MTpiMSgpO2JyZWFrO2Nhc2UgNTI6bD0wfGh1KCk7YnJlYWs7Y2FzZSA1NTpmZVsobD0xMDArKDB8YVtmKy04Pj4yXSl8MCk+PjBdPTF8ZmVbbD4+MF0sbD0wfGFb''@;'; + put 'put ''Zj4+Ml07YnJlYWs7Y2FzZSA1NjpNbSgwfGFbZistND4+Ml0sMHxhW2Y+PjJdLDEpO2JyZWFrO2Nhc2UgNTc6Y2FzZSA1OTpjYXNlIDYxOmw9MHxhW2YrLTEyPj4yXTticmVhaztjYXNlIDU4Ok1tKDB8YVtmKy00Pj4yXSwwfGFbZj4+Ml0sMik7YnJlYWs7Y2FzZSA2MDpNbSgwfGFbZistND4+''@;'; + put 'put ''Ml0sMHxhW2Y+PjJdLDMpO2JyZWFrO2Nhc2UgNjI6TW0oMHxhW2Y+PjJdLDB8U20oKSwyKTticmVhaztjYXNlIDYzOmw9MHxhW2YrLTg+PjJdfWlmKEQ9ZisoKG09MC1BfDApPDwyKXwwLG09TSsobTw8MSl8MCxmPUQrNHwwLGFbRCs0Pj4yXT1sLChwPShEPTB8cnRbbT4+MV0pKygwfHJ0WzY1''@;'; + put 'put ''NzY2KygobD0oMHxKdFsxNDA0NDkrcD4+MF0pLTQxfDApPDwxKT4+MV0pfDApPj4+MDwyNzImJigwfGZlWzEzOTYxNytwPj4wXSk9PSgwfEQpKXtsPTB8ZmVbMTM5ODg5K3A+PjBdLEE9UixwPW07YnJlYWt9bD0wfGZlWzE0MDUxOStsPj4wXSxBPVIscD1tfX13aGlsZSgwKTttPXcsRD1sLFI9''@;'; + put 'put ''QSxNPXArMnwwfTI2PT0oMHxLKT8oRDMoKSxsPTEsSz05Nik6NTE9PSgwfEspPyhIYSgxNDAzNDcpLEQzKCksbD0xLEs9OTYpOjU2PT0oMHxLKT8oSGEoMTQwMzk4KSxEMygpLGw9MSxLPTk2KTo5NT09KDB8SykmJihIYSgxNDA1NTgpLGw9MixLPTk2KSw5Nj09KDB8SykmJigwfGMpIT0oMHxH''@;'; + put 'put ''KSYmRnQoYyksYWU9cGV9KCksYVtjPj4yXT0wfGZ1bmN0aW9uIFh2KCl7dmFyIGw7cmV0dXJuIGw9KGZlWzE4OTY2MV18ZmVbMTg5NjYwXSk8PDI0Pj4yNCxtXygwfGFbNDc0MDddKSxDMigxODk2NDQpLDB8bH0oKSxsPTB8YVs0NzQwMF0pLE5sKDB8YVs0NzQwNV0pLE5sKDB8YVs0NzQwNl0p''@;'; + put 'put ''LGFbNDc0MDVdPTAsYVs0NzQwNl09MCxhWzQ3NDAzXT0wLEMyKHApLGFlPW0sMHxsfSgwfGFbYz4+Ml0sRCxiKSxwPygxPT0oMHxmZVsoZj1wKzR8MCk+PjBdKT8oMD09KDB8YVsyNCsoMHxhW3A+PjJdKT4+Ml0pJiYwfHdtKGwpJiYoQT0wfHJhKDB8d20obCkpLGFbMjQrKDB8YVtwPj4yXSk+''@;'; + put 'put ''PjJdPUEpLGs9MHxtRShrLDB8YVtwPj4yXSwwLGIpLGFbRD4+Ml09YVtEPj4yXXxrLGtiKHcsLShLPS41KitfWzY0KyhrPTB8YVtwPj4yXSk+PjNdKSwtKEc9LjUqK19bays3Mj4+M10pLEssRyksaz0wfGFbcD4+Ml0sYVtNPj4yXT1hW3c+PjJdLGFbTSs0Pj4yXT1hW3crND4+Ml0sYVtNKzg+''@;'; + put 'put ''PjJdPWFbdys4Pj4yXSxhW00rMTI+PjJdPWFbdysxMj4+Ml0sYVtNKzE2Pj4yXT1hW3crMTY+PjJdLGFbTSsyMD4+Ml09YVt3KzIwPj4yXSxhW00rMjQ+PjJdPWFbdysyND4+Ml0sYVtNKzI4Pj4yXT1hW3crMjg+PjJdLHZFKGssTSwxNSkpOihBRSgwfGFbMTQ0KygwfGFbaysxNj4+Ml0pPj4y''@;'; + put 'put ''XSwwfGFbcD4+Ml0sYiksa2IodywtKEc9LjUqK19bMjQrKE09MHxhW3A+PjJdKT4+M10pLC0oSz0uNSorX1tNKzMyPj4zXSksRyxLKSxhWyhNPTgrKDB8YVtwPj4yXSl8MCk+PjJdPWFbdz4+Ml0sYVtNKzQ+PjJdPWFbdys0Pj4yXSxhW00rOD4+Ml09YVt3Kzg+PjJdLGFbTSsxMj4+Ml09YVt3''@;'; + put 'put ''KzEyPj4yXSxhW00rMTY+PjJdPWFbdysxNj4+Ml0sYVtNKzIwPj4yXT1hW3crMjA+PjJdLGFbTSsyND4+Ml09YVt3KzI0Pj4yXSxhW00rMjg+PjJdPWFbdysyOD4+Ml0pLF9bYysyND4+M109K19bdysxNj4+M10tK19bdz4+M10sX1tjKzMyPj4zXT0rX1t3KzI0Pj4zXS0rX1t3Kzg+PjNdLGFb''@;'; + put 'put ''Yys3Mj4+Ml09cCwxPT0oMHxmZVtmPj4wXSkmJihGdCgwfGFbYz4+Ml0pLGFbYz4+Ml09MHxyYSgxNDE2MTEpKSxmPTB8YVtEPj4yXSk6KHVzKE0sMTI4LG0pLGZlW2MrODI+PjBdPTAsZj0wfHJhKDB8ZnVuY3Rpb24gR1IobCxjKXtsfD0wLGN8PTA7dmFyIGY9MDtlOmRve3N3aXRjaCgwfGtp''@;'; + put 'put ''KGwpKXtjYXNlIDA6Y2FzZSAxOnVvKGMsMHx0aShsKSk7YnJlYWs7Y2FzZSAyOmlmKHVvKGMsMHx0aSgwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSkpLGY9bCstNDh8MCx1byhjLDB8dGkoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6ZikrNDA+PjJdKSksMHxTYygwfGNy''@;'; + put 'put ''KDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmYpKzQwPj4yXSkpKXt1byhjLDEzNzczOCk7YnJlYWsgZX11byhjLDE0MTc0Nyk7YnJlYWsgZX19d2hpbGUoMCk7cmV0dXJuKGw9MHxhWyhmPWMrNHwwKT4+Ml0pPj4+MD49KDB8YVtjKzg+PjJdKT4+PjAmJihRMChjLDEpLGw9MHxhW2Y+PjJdKSxm''@;'; + put 'put ''ZVtsPj4wXT0wLGFbZj4+Ml09Yz0wfGFbYz4+Ml0sMHxjfShsLE0pKSxhW2M+PjJdPWYsZj0xPT0oMHxhW2MrMTI+PjJdKT8wfHZrKGYpOjB8U04oZiwwfGFbQT4+Ml0pLEZ0KDB8YVtjPj4yXSksYVtjPj4yXT1mLHc3KDB8YVsxNDQrKDB8YVtrKzE2Pj4yXSk+PjJdLGMpLEMyKE0pLGY9MHxh''@;'; + put 'put ''W0Q+PjJdKSxhZT1SLDB8Zn1mdW5jdGlvbiB3bShsKXt2YXIgYz0wLGY9MDswIT0oMHwoYz0wfExpKGx8PTAsMTM3NzI5KSkpJiYwIT0oMHxmZVtjPj4wXSl8fChmPTMpO2Rve2lmKDM9PSgwfGYpKXtpZigwfChjPTB8TGkobCwxNDA4MjMpKSYmMHxmZVtjPj4wXSlicmVhaztjPTB9fXdoaWxl''@;'; + put 'put ''KDApO3JldHVybiAwfGN9ZnVuY3Rpb24gbUUobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIGIsTSxHLHBlLGdlLG09MCxBPTAsdz0wLGs9MCxEPTAsUj0wLEs9MDtmb3IoZ2U9YWUsYWU9YWUrMTZ8MCxLPWdlKzh8MCxHPWdlLDB8KG09MHxhWyhwZT0xMDgrKGN8PTApfDApPj4yXSkmJmJv''@;'; + put 'put ''KHAsbSwxODY1NzYpLGFbYys4MD4+Ml09ZixtPTB8ZnVuY3Rpb24gVVIobCxjLGYpe2x8PTAsZnw9MDt2YXIgZ2UsYmUsT2UscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wO2ZvcihnZT0wfGFbKGI9ODQrKGN8PTApfDApPj4yXSxiZT0wfHg3KCksT2U9''@;'; + put 'put ''MHx5RSgpLG09MCxwPTAsdz0wfHMwKGdlKTt3Oyl7Zm9yKEE9MHxzMCgwfGFbdys4Pj4yXSk7QTspQT0wfGFbQT4+Ml0sbT1tKzF8MDtwPXArMXwwLDB8ZmVbdysxMj4+MF0mJndFKE9lLHApLHc9MHxhW3c+PjJdfWZvcihwPTB8dnIoNCsobTw8Mil8MCksYVtiPj4yXT1wLG09MCxBPTAsdz0w''@;'; + put 'put ''LEc9MCxLPTB8czAoZ2UpO0s7KXtmb3IocGU9NjU1MzUmRyxSPTAsRD0wfHMwKDB8YVtLKzg+PjJdKTtEOylhW3A+PjJdPU09MHxhW0QrOD4+Ml0sdz0wfFFSKGwsTSxjLGYpfHcsYj0wfEpSKGJlLEcsUixNKSxydFtNKzg2Pj4xXT1wZSxydFtNKzg0Pj4xXT1iLGI9YisoMHxocltNKzgwPj4x''@;'; + put 'put ''XSl8MCwwfEViKE9lLGs9RysoMHxocltNKzgyPj4xXSl8MCkmJihmZVsoUj1NKzEwMHwwKT4+MF09MnxmZVtSPj4wXSksUj1iLHA9cCs0fDAsRD0wfGFbRD4+Ml0sbT0oMHxiKT4oMHxtKT9iOm0sQT0oMHxrKT4oMHxBKT9rOkE7Rz1HKzF8MCxLPTB8YVtLPj4yXX1yZXR1cm4gYVtjKzEwMD4+''@;'; + put 'put ''Ml09QSxhW2MrMTA0Pj4yXT1tLE5sKGdlKSxObChPZSksQXkoYmUpLDB8d30obCxjLHApLDEyOCYobD0wfHJ0WyhEPWMrMzZ8MCk+PjFdKXx8KGZlW2MrMzI+PjBdPTIpLGY9YyszM3wwLDMyJmx8fChmZVtmPj4wXT0xKSxmdW5jdGlvbiB6UihsKXtsfD0wO3ZhciBjLGYsQSxwPTAsbT0wO0E9''@;'; + put 'put ''YWUsYWU9YWUrMTZ8MCxtPUErNHwwLGFbKGM9QSk+PjJdPWFbNDY0N10sMSE9KDB8KGY9MHxhW2wrMTAwPj4yXSkpJiYxIT0oMHxhWyhwPWwrMTA0fDApPj4yXSk/KGFbbCs5Mj4+Ml09MHx2cig0KyhmPDwyKXwwKSxhW2wrOTY+PjJdPTB8dnIoNCsoYVtwPj4yXTw8Mil8MCksZmVbbT4+MF09''@;'; + put 'put ''MHxmZVtjPj4wXSxmZVttKzE+PjBdPTB8ZmVbYysxPj4wXSxmZVttKzI+PjBdPTB8ZmVbYysyPj4wXSxmZVttKzM+PjBdPTB8ZmVbYyszPj4wXSxwPTB8b2MoMTM3NDczLG0sMCksZmVbbT4+MF09MHxmZVtjPj4wXSxmZVttKzE+PjBdPTB8ZmVbYysxPj4wXSxmZVttKzI+PjBdPTB8ZmVbYysy''@;'; + put 'put ''Pj4wXSxmZVttKzM+PjBdPTB8ZmVbYyszPj4wXSxtPTB8b2MoMTM3NDc4LG0sMCksaDAocCwxMzc0ODMsMjgwLDEpLGgwKG0sMTM3NDgzLDI4MCwxKSxmdW5jdGlvbiBQdihsLGMsZil7Y3w9MDt2YXIgYixrLHA9MCxtPTAsQT0wLHc9MCxNPTAsRD0wLFI9MDtmb3IoYj0xMDQrKGx8PTApfDAs''@;'; + put 'put ''az1sKzEwMHwwLHc9MTYrKGZ8PTApfDAscD0wLG09MDshKCgwfHApPigwfGFbYj4+Ml0pKTspaDAoQT0wfEdyKGYsMHxGNChwKSwxKSwxMzc0NDcsMzA0LDEpLGFbMTc2KygwfGFbKE09QSsxNnwwKT4+Ml0pPj4yXT0wLFI9MHx2cig0KyhhW2s+PjJdPDwyKXwwKSxhWzE3MisoRD0wfGFbTT4+''@;'; + put 'put ''Ml0pPj4yXT1SLGFbRCsxODQ+PjJdPTAsRD0wfHZyKDQrKGFbaz4+Ml08PDIpfDApLGFbMTgwKygwfGFbTT4+Ml0pPj4yXT1ELG0/YVsxNjQrKDB8YVttKzE2Pj4yXSk+PjJdPUE6YVsxOTIrKDB8YVt3Pj4yXSk+PjJdPUEscD1wKzF8MCxtPUE7Zm9yKHc9YysxNnwwLHA9MCxtPTA7ISgoMHxw''@;'; + put 'put ''KT4oMHxhW2s+PjJdKSk7KWgwKEE9MHxHcihjLDB8RjQocCksMSksMTM3NDQ3LDMwNCwxKSxhWzE3NisoMHxhWyhSPUErMTZ8MCk+PjJdKT4+Ml09MCxNPTB8dnIoNCsoYVtiPj4yXTw8Mil8MCksYVsxNzIrKEQ9MHxhW1I+PjJdKT4+Ml09TSxhW0QrMTg0Pj4yXT0wLEQ9MHx2cig0KyhhW2I+''@;'; + put 'put ''PjJdPDwyKXwwKSxhWzE4MCsoMHxhW1I+PjJdKT4+Ml09RCxtP2FbMTY0KygwfGFbbSsxNj4+Ml0pPj4yXT1BOmFbMTkyKygwfGFbdz4+Ml0pPj4yXT1BLHA9cCsxfDAsbT1BO2ZvcihwPTB8YVtsKzg0Pj4yXTttPTB8YVtwPj4yXTspVDMoZixEPTB8R3IoZiwwfEY0KDB8aHJbKFI9bSs4NHww''@;'; + put 'put ''KT4+MV0pLDApLFI9MHxHcihmLDB8RjQoKDB8aHJbbSs4MD4+MV0pKygwfGhyW1I+PjFdKXwwKSwwKSx+fitfW20rNjQ+PjNdKSxUMyhjLEQ9MHxHcihjLDB8RjQoMHxoclsoUj1tKzg2fDApPj4xXSksMCksUj0wfEdyKGMsMHxGNCgoMHxoclttKzgyPj4xXSkrKDB8aHJbUj4+MV0pfDApLDAp''@;'; + put 'put ''LH5+K19bbSs3Mj4+M10pLHA9cCs0fDA7ZzYoZiksZzYoYyl9KGwscCxtKSxrNyhwLDIsMjE0NzQ4MzY0NyksazcobSwyLDIxNDc0ODM2NDcpLGZ1bmN0aW9uIG02KGwsYyxmKXtmfD0wO3ZhciBBLHA9MCxtPTAsdz0wO2ZvcihBPTkyKyhsfD0wKXwwLHA9MCxtPTAsYz0wfGFbMTYrKDB8YVsx''@;'; + put 'put ''OTIrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pPj4yXTtjPTB8YVtjKzE2ND4+Ml07KWFbKDB8YVtBPj4yXSkrKG08PDIpPj4yXT0oMHxhWyh3PTIzMisoYz0wfGFbYysxNj4+Ml0pfDApPj4yXSktcCxwPTB8YVt3Pj4yXSxtPW0rMXwwO2ZvcihsPWwrOTZ8MCxwPTAsbT0wLGM9MHxhWzE2Kygw''@;'; + put 'put ''fGFbMTkyKygwfGFbZisxNj4+Ml0pPj4yXSk+PjJdO2M9MHxhW2MrMTY0Pj4yXTspYVsoMHxhW2w+PjJdKSsobTw8Mik+PjJdPSgwfGFbKHc9MjMyKyhjPTB8YVtjKzE2Pj4yXSl8MCk+PjJdKS1wLHA9MHxhW3c+PjJdLG09bSsxfDB9KGwscCxtKSxmdW5jdGlvbiBDYihsLGMpe2x8PTA7dmFy''@;'; + put 'put ''IGY9MCxwPTAsbT0wO2ZvcihmPTE5MisoMHxhWzE2KyhjfD0wKT4+Ml0pfDA7Zj0wfGFbZj4+Ml07KShwPTB8YVsxNzIrKGY9MHxhWyhtPWYrMTZ8MCk+PjJdKT4+Ml0pJiYoRnQocCksZj0wfGFbbT4+Ml0pLChwPTB8YVtmKzE4MD4+Ml0pJiYoRnQocCksZj0wfGFbbT4+Ml0pLGY9ZisxNjR8''@;'; + put 'put ''MDtDMShsKSxDMShjKX0ocCxtKSk6ZnVuY3Rpb24geW0obCl7dmFyIGssTSxELGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxSPTAsRz0wO2ZvcihhWyhEPTkyKyhsfD0wKXwwKT4+Ml09MHx2cig0KyhhW2wrMTAwPj4yXTw8Mil8MCksaz0wfHZyKDQrKGFbbCsxMDQ+PjJdPDwyKXwwKSxh''@;'; + put 'put ''W2wrOTY+PjJdPWssTT1sKzMyfDAsYj0wfGFbbCs4ND4+Ml07dz0wfGFbYj4+Ml07KXtmb3IoYz0rX1t3KzcyPj4zXSxwPShsPTB8cnRbdys4Mj4+MV0pPDwxNj4+MTY9PTE/fn5jOigwfChwPX5+KChjLSsoMHxBcigoMHxmZVtNPj4wXSktMXwwLCg2NTUzNSZsKS0xfDApKSkvKyg2NTUzNSZs''@;'; + put 'put ''KSkpKT4xP3A6MSxjPStfW3crNjQ+PjNdLEE9KG09MHxydFt3KzgwPj4xXSk8PDE2Pj4xNj09MT9+fmM6KDB8KEE9fn4oKGMtKygwfEFyKCgwfGZlW00+PjBdKS0xfDAsKDY1NTM1Jm0pLTF8MCkpKS8rKDY1NTM1Jm0pKSkpPjE/QToxLGY9KDY1NTM1JmwpKyhSPTB8aHJbdys4Nj4+MV0pfDAs''@;'; + put 'put ''bD1SOyEoKDB8bCk+PSgwfGYpKTspYVsoUj0oMHxhW0Q+PjJdKSsobDw8Mil8MCk+PjJdPSgwfChHPTB8YVtSPj4yXSkpPigwfHApP0c6cCxsPWwrMXwwO2ZvcihmPSg2NTUzNSZtKSsobD0wfGhyW3crODQ+PjFdKXwwOyEoKDB8bCk+PSgwfGYpKTspYVsoRz1rKyhsPDwyKXwwKT4+Ml09KDB8''@;'; + put 'put ''KFI9MHxhW0c+PjJdKSk+KDB8QSk/UjpBLGw9bCsxfDA7Yj1iKzR8MH19KGwpLGFlPUF9KGMpLGw9MHxBcigxKyh3PTB8YVtjKzEwND4+Ml0pfDAsaz0wfGZlW2MrMzI+PjBdKSxiPUp0W2Y+PjBdPDwxLGs9MHxBcigxKyhNPTB8YVtjKzEwMD4+Ml0pfDAsayksQT1jKzk2fDAsbD1iK2x8MCxm''@;'; + put 'put ''PTA7ISgoMHxmKT49KDB8dykpOylsPSgwfGFbKDB8YVtBPj4yXSkrKGY8PDIpPj4yXSkrbHwwLGY9ZisxfDA7Zm9yKHc9Yys5MnwwLGY9aytifDAsQT0wOyEoKDB8QSk+PSgwfE0pKTspZj0oMHxhWygwfGFbdz4+Ml0pKyhBPDwyKT4+Ml0pK2Z8MCxBPUErMXwwO3c9YyszOHwwO2Rve2lmKDEm''@;'; + put 'put ''cnRbRD4+MV0pe2lmKEE9NjU1MzUmKEQ9MHxydFt3Pj4xXSksRDw8MTY+PjE2JiYoUj0wfHJ0W2MrNDA+PjFdKTw8MTY+PjE2KXtpZighKCgwfGwpPigwfEEpfCgwfGYpPig2NTUzNSZSfDApKSl7Zj0wLGw9MDticmVha30kcigwLDEzNzUyOSxHKSxtPTEsZj0wLGw9MDticmVha30kcigwLDEz''@;'; + put 'put ''NzU2MyxLKSxtPTF9fXdoaWxlKDApO3JldHVybiBfW2MrNjQ+PjNdPSsoMHwoKDB8bCk+KDB8KEs9MHxoclt3Pj4xXSkpP2w6SykpLF9bYys3Mj4+M109KygwfCgoMHxmKT4oMHwoSz0wfGhyW2MrNDA+PjFdKSk/ZjpLKSksMHxhW3BlPj4yXSYmZ0UocCwxODY1NzYpLGFlPWdlLDB8bX1mdW5j''@;'; + put 'put ''dGlvbiBrYihsLGMsZixwLG0pe2Y9K2YscD0rcCxtPSttLF9bKGx8PTApPj4zXT1jPStjLF9bbCs4Pj4zXT1mLF9bbCsxNj4+M109cCxfW2wrMjQ+PjNdPW19ZnVuY3Rpb24gdkUobCxjLGYpe2N8PTAsZnw9MDt2YXIgUixnZSxiZSxSZSxWZSxxZSxudCxvdCxTdCxrdCxsdCxwPTAsbT0wLEE9''@;'; + put 'put ''MCx3PTAsYj0wLGs9MCxNPTAsRD0wLEc9MCxLPTAscGU9MCxPZT0wLExlPTAsSGU9MCxXZT0wLEV0PTAsWnQ9MDtsdD1hZSxhZT1hZSs2NHwwLFN0PWx0KzMyfDAsa3Q9bHQsV2U9MHxhWzg0KyhsfD0wKT4+Ml0sMHwoQT0wfGFbbCs4MD4+Ml0pJiYwfChwPTB8YVtBKzI0Pj4yXSkmJjA9PSgw''@;'; + put 'put ''fGFbKG09bCsyNHwwKT4+Ml0pJiYoYVttPj4yXT0wfHJhKHApKSxvdD1sKzQ4fDAsKDB8KEE9fn4oKGI9K19bKHA9YysxNnwwKT4+M10pLSh3PStfW2M+PjNdKS0rKDB8fn4rX1tsKzY0Pj4zXSkpKSk8PS0xJiZQcigxMzc0OTYsMTM3MzQyLDE3NjEsMTM3NTA2KSwoMHwoRz1+figoTGU9K19b''@;'; + put 'put ''KGs9YysyNHwwKT4+M10pLShEPStfWyhNPWMrOHwwKT4+M10pLShSPSsoMHx+fitfW2wrNzI+PjNdKSkpKSk8PS0xJiZQcigxMzc1MTksMTM3MzQyLDE3NjQsMTM3NTA2KSxtPTY1NTM1JihLPTB8cnRbbCszNj4+MV0pO2U6ZG97aWYoMSZtKXt0OmRve2lmKCgwfEEpPjApc3dpdGNoKDYmbSl7''@;'; + put 'put ''Y2FzZSA0Ol9bcD4+M109dytSO2JyZWFrIHQ7Y2FzZSAyOl9bcD4+M109YisoRXQ9KygwfEEpKSxfW2M+PjNdPXcrPUV0O2JyZWFrIHQ7ZGVmYXVsdDpfW2M+PjNdPXcrPUV0PSsoQT4+PjF8MCksX1twPj4zXT1iLUV0O2JyZWFrIHR9fXdoaWxlKDApO2lmKCgwfEcpPjApc3dpdGNoKDI0Jksp''@;'; + put 'put ''e2Nhc2UgMTY6X1trPj4zXT1MZT1EK1IsRz0wLHA9MDticmVhayBlO2Nhc2UgODpfW2s+PjNdPUxlKz1FdD0rKDB8RyksX1tNPj4zXT1EK0V0LEc9MCxwPTA7YnJlYWsgZTtkZWZhdWx0Ol9bTT4+M109RCsoRXQ9KyhHPj4+MXwwKSksX1trPj4zXT1MZS09RXQsRz0wLHA9MDticmVhayBlfWVs''@;'; + put 'put ''c2UgRz0wLHA9MH1lbHNlIHA9QX13aGlsZSgwKTtmb3IoYj0rKDB8SnRbbCszMz4+MF0pLEQ9KygocGU9MHxmZVsocWU9bCszMnwwKT4+MF0pPDwyND4+MjQpLGs9fn4oKygwfChrPXAtKDB8QXIoSz0oMHxwKS8oMHwoQT0wfGFbKG50PWwrMTA0fDApPj4yXSkpfDAsQSkpfDApKSsoKDB8ayk+''@;'; + put 'put ''LTE/LjU6LS41KSksVmU9bCs5NnwwLE09cGU8PDI0Pj4yNCxwPX5+KHcrYitEKSxtPTA7ISgoMHxtKT4oMHxBKSk7KUE9MHxhWyhIZT0oMHxhW1ZlPj4yXSkrKG08PDIpfDApPj4yXSxhW0hlPj4yXT1wLHA9cCtLKygoMHxtKTwoMHxrKSYxKStBK018MCxtPW0rMXwwLEE9MHxhW250Pj4yXTtm''@;'; + put 'put ''b3IoTT1+figrKDB8KE09Ry0oMHxBcihLPSgwfEcpLygwfChBPTB8YVsoSGU9bCsxMDB8MCk+PjJdKSl8MCxBKSl8MCkpKygoMHxNKT4tMT8uNTotLjUpKSxSZT1sKzkyfDAsaz1wZTw8MjQ+PjI0LHA9fn4oTGUtYi1EKSxtPTA7ISgoMHxtKT4oMHxBKSk7KUE9MHxhWyhPZT0oMHxhW1JlPj4y''@;'; + put 'put ''XSkrKG08PDIpfDApPj4yXSxhW09lPj4yXT1wLHA9cC1LKygoKDB8bSk8KDB8TSkpPDwzMT4+MzEpLUEta3wwLG09bSsxfDAsQT0wfGFbSGU+PjJdO2ZvcihwZT0wPT0oMHxmKSxnZT1rdCsxNnwwLGJlPWt0KzI0fDAsT2U9a3QrOHwwLHA9V2U7az0wfGFbcD4+Ml07KUE9MHxydFtrKzg0Pj4x''@;'; + put 'put ''XSxwZT8obT0wLE09MHxydFtrKzgwPj4xXSxHPTB8cnRbays4Nj4+MV0sSz0wfHJ0W2srODI+PjFdKToobT1BPDwxNj4+MTY9PTA/ODowLG09KEc9MHxydFtrKzg2Pj4xXSk8PDE2Pj4xNj09MD80fG06bSxtPSgoKDY1NTM1JihNPTB8cnRbays4MD4+MV0pKSsoNjU1MzUmQSl8MCk9PSgwfGFb''@;'; + put 'put ''bnQ+PjJdKT8yfG06bSl8KCg2NTUzNSYoSz0wfHJ0W2srODI+PjFdKSkrKDY1NTM1JkcpfDApPT0oMHxhW0hlPj4yXSkpLF9ba3Q+PjNdPSsoMHxhWyhadD0wfGFbVmU+PjJdKSsoKEEmPTY1NTM1KTw8Mik+PjJdKSxfW2dlPj4zXT0rKCgwfGFbWnQrKCg2NTUzNSZNKStBPDwyKT4+Ml0pLShX''@;'; + put 'put ''ZT0wfGZlW3FlPj4wXSl8MCksX1tiZT4+M109KygwfGFbKE09MHxhW1JlPj4yXSkrKCg2NTUzNSZHKTw8Mik+PjJdKSxfW09lPj4zXT0rKCgwfGFbTSsoKDY1NTM1JkspKyg2NTUzNSZHKTw8Mik+PjJdKStXZXwwKSxhW1N0Pj4yXT1hW2t0Pj4yXSxhW1N0KzQ+PjJdPWFba3QrND4+Ml0sYVtT''@;'; + put 'put ''dCs4Pj4yXT1hW2t0Kzg+PjJdLGFbU3QrMTI+PjJdPWFba3QrMTI+PjJdLGFbU3QrMTY+PjJdPWFba3QrMTY+PjJdLGFbU3QrMjA+PjJdPWFba3QrMjA+PjJdLGFbU3QrMjQ+PjJdPWFba3QrMjQ+PjJdLGFbU3QrMjg+PjJdPWFba3QrMjg+PjJdLFdSKGssU3QsbSZmKSxwPXArNHwwO2ZlW2wr''@;'; + put 'put ''MzU+PjBdPWYsYVtvdD4+Ml09YVtjPj4yXSxhW290KzQ+PjJdPWFbYys0Pj4yXSxhW290Kzg+PjJdPWFbYys4Pj4yXSxhW290KzEyPj4yXT1hW2MrMTI+PjJdLGFbb3QrMTY+PjJdPWFbYysxNj4+Ml0sYVtvdCsyMD4+Ml09YVtjKzIwPj4yXSxhW290KzI0Pj4yXT1hW2MrMjQ+PjJdLGFbb3Qr''@;'; + put 'put ''Mjg+PjJdPWFbYysyOD4+Ml0sYWU9bHR9ZnVuY3Rpb24gQUUobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBiZSxPZSxMZSxSZSxIZSxWZSxxZSxudCxXZSxvdCxTdCxrdCxsdCxFdCxadCxjdCxidCxhbixTbixIbixwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0w''@;'; + put 'put ''LHBlPTAsZ2U9MCx1cj0wLEhyPTAsRXI9MDtmb3IoSG49YWUsYWU9YWUrMTEyfDAsbHQ9SG4rNDh8MCxadD1IbixhWyhFdD1IbisxNnwwKT4+Ml09MCxhW0V0KzQ+PjJdPTAsYVtFdCs4Pj4yXT0wLGFbRXQrMTI+PjJdPTAsYVtFdCsxNj4+Ml09MCxhW0V0KzIwPj4yXT0wLGFbRXQrMjQ+PjJd''@;'; + put 'put ''PTAsYVtFdCsyOD4+Ml09MCxidD1mKzE2fDAsYW49ZiszMnwwLFNuPUV0KzE2fDAsaz0oRz0wfHJ0WyhjdD1jKzR8MCk+PjFdKTw8MTY+PjE2LHA9MCxBPS0xLGI9MDs7KXtpZigoMHxiKT49KDB8aykpe3A9MTticmVha31pZigoMHxydFsobT0wfGFbYz4+Ml0pKygyNCpifDApKzQ+PjFdKT4x''@;'; + put 'put ''KXtwPTA7YnJlYWt9aWYobT0wfGFbNCsoMHxhW20rKDI0KmJ8MCk+PjJdKT4+Ml0pe2lmKDEyNyZhW20rMjQ+PjJdfDApe3A9MDticmVha31fW1NuPj4zXT13PStfWygrX1ttKzE2Pj4zXT4wP206YnQpKzE2Pj4zXSxtPTA9PSgwfGFbbT4+Ml0pP2J0Om19ZWxzZSBfW1NuPj4zXT13PStfW2Fu''@;'; + put 'put ''Pj4zXSxtPWJ0O2lmKGFbRXQ+PjJdPW09MHxhW20+PjJdLC0xIT1BKXtpZih3IT1BKXtwPTA7YnJlYWt9fWVsc2UgQT13O2lmKHApe2lmKDB8amkobSxwKSl7cD0wO2JyZWFrfX1lbHNlIHA9bTtiPWIrMXwwfWZvcihmZVtjKzY+PjBdPXAsb3Q9Zis0OHwwLFN0PWYrMjB8MCxrdD1FdCs0fDAs''@;'; + put 'put ''T2U9Zis0MHwwLExlPUV0KzI0fDAsUmU9bCsxNDR8MCxIZT1sdCs0fDAsYmU9WnQrOHwwLFZlPWx0KzE2fDAscWU9bHQrMjR8MCxudD1sdCs4fDAsV2U9bHQrMTJ8MCxmPTA9PSgwfHApLEE9MCxLPTAscGU9MCxnZT0wLGs9MCxwPUc7ISgoMHxrKT49KHA8PDE2Pj4xNnwwKSk7KXtmb3Iodz0w''@;'; + put 'put ''LFI9MCxiPTAsRD0wLEE9MCxtPTB8YVtjPj4yXTshKCgwfGIpPj0oMHxydFttKygyNCprfDApKzQ+PjFdKSk7KWFbbHQ+PjJdPTB8bTIoMHxhWygwfGFbbSsoMjQqa3wwKT4+Ml0pKyg1NipifDApPj4yXSwwfGFbb3Q+PjJdKSwocD0wfGFbKDB8YVsobT0oMHxhW2M+PjJdKSsoMjQqa3wwKXww''@;'; + put 'put ''KT4+Ml0pKyg1NipifDApKzQ+PjJdKT8oKHA9MTI3JmFbcCsyND4+Ml0pfHwocD0xMjcmYVtPZT4+Ml0pLGFbTGU+PjJdPS0xMjgmYVtMZT4+Ml18cCxfW1NuPj4zXT0rX1soK19bMTYrKEc9MHxhWygwfGFbbT4+Ml0pKyg1NipifDApKzQ+PjJdKT4+M10+MD9HOmJ0KSsxNj4+M10sYVtFdD4+''@;'; + put 'put ''Ml09YVsoMD09KDB8YVtHPj4yXSk/YnQ6Ryk+PjJdLGFba3Q+PjJdPWFbKDA9PSgwfGFbRys0Pj4yXSk/YnQ6RykrND4+Ml0pOihfW1NuPj4zXT0rX1thbj4+M10sYVtFdD4+Ml09YVtidD4+Ml0sYVtrdD4+Ml09YVtTdD4+Ml0sYVtMZT4+Ml09LTEyOCZhW0xlPj4yXXwxMjcmYVtPZT4+Ml0p''@;'; + put 'put ''LGFbSGU+PjJdPTB8bWlbNjMmYVsobT0wfGFbUmU+PjJdKT4+Ml1dKG0sRXQsMSksZUQoWnQsbCxsdCksSHI9K19bWnQ+PjNdLE09K19bYmU+PjNdLEZ0KDB8YVsoMHxhWygwfGFbYz4+Ml0pKygyNCprfDApPj4yXSkrKDU2KmJ8MCk+PjJdKSxhWyhHPTB8YVsobT0wfGFbYz4+Ml0pKygyNCpr''@;'; + put 'put ''fDApPj4yXSkrKDU2KmJ8MCk+PjJdPWFbbHQ+PjJdLF9bRysoNTYqYnwwKSszMj4+M109SHIsX1tHKyg1NipifDApKzE2Pj4zXT0rX1tWZT4+M10sX1tHKyg1NipifDApKzI0Pj4zXT0rX1txZT4+M10sYVtHKyg1NipifDApKzQ+PjJdPWFbSGU+PjJdLGFbRysoNTYqYnwwKSs4Pj4yXT1hW250''@;'; + put 'put ''Pj4yXSxhW0crKDU2KmJ8MCkrMTI+PjJdPWFbV2U+PjJdLHc9KEVyPStfW3FlPj4zXSk+dz9Fcjp3LFI9SHIrUixiPWIrMXwwLEQ9KHVyPStfW1NuPj4zXSk+RD91cjpELEE9TT5BP006QTtfW20rKDI0Kmt8MCkrOD4+M109UixwPTA9PSgwfGspO2Rve2lmKGYpe2lmKHApe009RCx3PUQtdyxw''@;'; + put 'put ''PW07YnJlYWt9TT1ELHc9cGUtZ2UrRC13LHA9bSsoMjQqa3wwKXwwO2JyZWFrfU09QSx3PXA/RDpBLHA9bSsoMjQqa3wwKXwwfXdoaWxlKDApO19bcCsxNj4+M109dyxLPVI+Sz9SOksscGU9TStwZSxnZT0rX1ttKygyNCprfDApKzE2Pj4zXStnZSxrPWsrMXwwLHA9MHxydFtjdD4+MV19X1tj''@;'; + put 'put ''KzI0Pj4zXT1LLF9bYyszMj4+M109cDw8MTY+PjE2PT0xP0E6cGUsYWU9SG59ZnVuY3Rpb24gV1IobCxjLGYpe2N8PTAsZnw9MDt2YXIgUixLLGdlLExlLFJlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsRz0wLHBlPTAsYmU9MCxPZT0wLEhlPTA7TGU9YWUsYWU9YWUrNjR8MCxn''@;'; + put 'put ''ZT1MZSszMnwwLE9lPUxlLDA9PSgwfGFbKG09MjQrKGx8PTApfDApPj4yXSkmJjB8KHA9MHxhWzI0KygwfGFbbCs5Nj4+Ml0pPj4yXSkmJihhW20+PjJdPTB8cmEocCkpLHA9NjU1MzUmKGJlPTB8cnRbKEs9bCszNnwwKT4+MV0pO2U6ZG97aWYoMSZwKXtEPStfW2wrNzI+PjNdLGI9KHc9K19b''@;'; + put 'put ''KG09YysxNnwwKT4+M10pLShrPStfW2M+PjNdKS0oQT0rX1tsKzY0Pj4zXSk7dDpkb3tpZihiPjApc3dpdGNoKDYmcCl7Y2FzZSA0Ol9bbT4+M109dz1rK0EsQT1rO2JyZWFrIHQ7Y2FzZSAyOl9bbT4+M109dz1iK3csX1tjPj4zXT1BPWsrYjticmVhayB0O2RlZmF1bHQ6X1tjPj4zXT1BPShN''@;'; + put 'put ''PS41KmIpK2ssX1ttPj4zXT13LT1NO2JyZWFrIHR9ZWxzZSBBPWt9d2hpbGUoMCk7aWYoKGs9KE09K19bKHA9YysyNHwwKT4+M10pLShiPStfWyhtPWMrOHwwKT4+M10pLUQpPjApc3dpdGNoKDI0JmJlKXtjYXNlIDE2Ol9bcD4+M109az1iK0Q7YnJlYWsgZTtjYXNlIDg6X1twPj4zXT1EPWsr''@;'; + put 'put ''TSxfW20+PjNdPWIrPWssaz1EO2JyZWFrIGU7ZGVmYXVsdDpfW20+PjNdPWI9KGsqPS41KStiLF9bcD4+M109az1NLWs7YnJlYWsgZX1lbHNlIGs9TX1lbHNlIEE9K19bYz4+M10sYj0rX1tjKzg+PjNdLHc9K19bYysxNj4+M10saz0rX1tjKzI0Pj4zXX13aGlsZSgwKTtzd2l0Y2goYVsoRz1s''@;'; + put 'put ''KzQ4fDApPj4yXT1hW2M+PjJdLGFbRys0Pj4yXT1hW2MrND4+Ml0sYVtHKzg+PjJdPWFbYys4Pj4yXSxhW0crMTI+PjJdPWFbYysxMj4+Ml0sYVtHKzE2Pj4yXT1hW2MrMTY+PjJdLGFbRysyMD4+Ml09YVtjKzIwPj4yXSxhW0crMjQ+PjJdPWFbYysyND4+Ml0sYVtHKzI4Pj4yXT1hW2MrMjg+''@;'; + put 'put ''PjJdLGZlW2wrMzU+PjBdPWYsX1tPZT4+M109TT1BKyhIZT0rKDB8SnRbbCszMz4+MF0pKSsoUmU9KygwfEp0W2wrMzQ+PjBdKSksX1soRz1PZSs4fDApPj4zXT1EPWIrSGUrUmUsX1soYz1PZSsxNnwwKT4+M109Yj13LUhlLVJlLF9bKFI9T2UrMjR8MCk+PjNdPWs9ay1IZS1SZSxtPWwrODh8''@;'; + put 'put ''MCwwfGZlW2wrOTI+PjBdKXtjYXNlIDE6YmU9MHxhW20+PjJdLGFbZ2U+PjJdPWFbT2U+PjJdLGFbZ2UrND4+Ml09YVtPZSs0Pj4yXSxhW2dlKzg+PjJdPWFbT2UrOD4+Ml0sYVtnZSsxMj4+Ml09YVtPZSsxMj4+Ml0sYVtnZSsxNj4+Ml09YVtPZSsxNj4+Ml0sYVtnZSsyMD4+Ml09YVtPZSsy''@;'; + put 'put ''MD4+Ml0sYVtnZSsyND4+Ml09YVtPZSsyND4+Ml0sYVtnZSsyOD4+Ml09YVtPZSsyOD4+Ml0sdkUoYmUsZ2UsZik7YnJlYWs7Y2FzZSAzOkE9K19bMjQrKHA9MHxhW20+PjJdKT4+M10sdz1iLU0tK19bcCsxNj4+M107ZTpkb3tpZih3PjApc3dpdGNoKDYmYmUpe2Nhc2UgNDpfW2M+PjNdPWIt''@;'; + put 'put ''dzticmVhayBlO2Nhc2UgMjpfW09lPj4zXT13K007YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApO0E9ay1ELUE7ZTpkb3tpZihBPjApc3dpdGNoKDI0JmJlKXtjYXNlIDE2Ol9bUj4+M109ay1BO2JyZWFrIGU7Y2FzZSA4Ol9bRz4+M109QStEO2JyZWFrIGU7ZGVmYXVsdDpicmVh''@;'; + put 'put ''ayBlfX13aGlsZSgwKTthW2dlPj4yXT1hW09lPj4yXSxhW2dlKzQ+PjJdPWFbT2UrND4+Ml0sYVtnZSs4Pj4yXT1hW09lKzg+PjJdLGFbZ2UrMTI+PjJdPWFbT2UrMTI+PjJdLGFbZ2UrMTY+PjJdPWFbT2UrMTY+PjJdLGFbZ2UrMjA+PjJdPWFbT2UrMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbT2Ur''@;'; + put 'put ''MjQ+PjJdLGFbZ2UrMjg+PjJdPWFbT2UrMjg+PjJdLGZ1bmN0aW9uIFlSKGwsYyl7YVsobHw9MCk+PjJdPWFbKGN8PTApPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdLGFbbCsxNj4+Ml09YVtjKzE2Pj4yXSxhW2wrMjA+''@;'; + put 'put ''PjJdPWFbYysyMD4+Ml0sYVtsKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbbCsyOD4+Ml09YVtjKzI4Pj4yXX0ocCxnZSk7YnJlYWs7ZGVmYXVsdDpBPStfWzMyKyhwPTB8YVttPj4yXSk+PjNdLHc9Yi1NLStfW3ArMjQ+PjNdO2U6ZG97aWYodz4wJiYocGU9NiZiZSxwZTw8MTY+PjE2IT02KSlzd2l0''@;'; + put 'put ''Y2goNyZwZSl7Y2FzZSA0Ol9bYz4+M109Yi13O2JyZWFrIGU7Y2FzZSAyOl9bT2U+PjNdPXcrTTticmVhayBlO2RlZmF1bHQ6X1tPZT4+M109KEhlPS41KncpK00sX1tjPj4zXT1iLUhlO2JyZWFrIGV9fXdoaWxlKDApO0E9ay1ELUE7ZTpkb3tpZihBPjApc3dpdGNoKDI0JmJlKXtjYXNlIDE2''@;'; + put 'put ''Ol9bUj4+M109ay1BO2JyZWFrIGU7Y2FzZSA4Ol9bRz4+M109QStEO2JyZWFrIGU7ZGVmYXVsdDpfW0c+PjNdPShIZT0uNSpBKStELF9bUj4+M109ay1IZTticmVhayBlfX13aGlsZSgwKTthWyhiZT1wKzh8MCk+PjJdPWFbT2U+PjJdLGFbYmUrND4+Ml09YVtPZSs0Pj4yXSxhW2JlKzg+PjJd''@;'; + put 'put ''PWFbT2UrOD4+Ml0sYVtiZSsxMj4+Ml09YVtPZSsxMj4+Ml0sYVtiZSsxNj4+Ml09YVtPZSsxNj4+Ml0sYVtiZSsyMD4+Ml09YVtPZSsyMD4+Ml0sYVtiZSsyND4+Ml09YVtPZSsyND4+Ml0sYVtiZSsyOD4+Ml09YVtPZSsyOD4+Ml0sZnVuY3Rpb24gU2IobCxjKXtjfD0wO3ZhciBwLGY9MCxt''@;'; + put 'put ''PTA7Zm9yKHA9MHxydFs0KyhsfD0wKT4+MV0sZj0wOyEoKDB8Zik+PSgwfHApKTspMHxmZVsobT0oMHxhW2w+PjJdKSsoMjQqZnwwKSs2fDApPj4wXXx8KGZlW20+PjBdPWMpLGY9ZisxfDB9KDB8YVttPj4yXSw1MTI9PSgxMDIzJihPZT03NjgmcnRbSz4+MV0pKT8xMDg6MjU2PT0oMTAyMyZP''@;'; + put 'put ''ZSk/MTE0OjExMCl9YWU9TGV9ZnVuY3Rpb24gUVIobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBrLE0sUixHLEsscGUsbT0wLEE9MCx3PTAsYj0wLEQ9MDtzd2l0Y2goSz1hZSxhZT1hZSsxNnwwLEc9Sys4fDAsUj1LLGFbOTYrKGN8PTApPj4yXT1mfD0wLDY0JihiPTB8cnRbKE09YyszNnwwKT4+''@;'; + put 'put ''MV0pfHwoZmVbYyszND4+MF09dz02NCZydFtmKzM2Pj4xXT8wfGZlW2YrMzQ+PjBdOjIpLDMyJmJ8fCgodz0wfGZlW2YrODg+PjBdKTw8MjQ+PjI0PD0tMSYmKHc9MzImcnRbZiszNj4+MV0/MHxmZVtmKzMzPj4wXToxKSxmZVtjKzMzPj4wXT13KSx3PWMrODh8MCwwfGZlWyhrPWMrOTJ8MCk+''@;'; + put 'put ''PjBdKXtjYXNlIDE6Yj0wfG1FKGwsMHxhW3c+PjJdLGMscCksZj0wfGFbdz4+Ml0sdz1iLGI9Zis2NHwwLGY9Zis3MnwwO2JyZWFrO2Nhc2UgMzpiPTB8ZnVuY3Rpb24gWFIobCxjKXt2YXIgbSx3LGIsayxmPTAscD0wLEE9MDtyZXR1cm4gaz1hZSxhZT1hZSsxNnwwLHc9ayxXRyhBPWsrOHww''@;'; + put 'put ''LDB8YVsoYz01MisoY3w9MCl8MCk+PjJdLDB8YVsobT0zMisobHw9MCl8MCk+PjJdKSxiPTB8YVtBPj4yXSwtMT09KChBPTB8YVtBKzQ+PjJdKSZifDApPyhhW3c+PjJdPWFbbT4+Ml0sJHIoMSwxMzc2OTcsdyksYz0xLHA9MCxmPTApOihmZVsxMTQrKDB8YVsxNisoMHxhW2M+PjJdKT4+Ml0p''@;'; + put 'put ''Pj4wXT0xLGM9MCxwPSsoMHxBKSxmPSsoMHxiKSksYVtsPj4yXT0wLGFbbCs0Pj4yXT0wLGFbbCs4Pj4yXT0wLGFbbCsxMj4+Ml09MCxfW2wrMTY+PjNdPWYsX1tsKzI0Pj4zXT1wLGFlPWssMHxjfSgwfGFbdz4+Ml0scCksZj0wfGFbdz4+Ml0sdz1iLGI9ZisxNnwwLGY9ZisyNHwwO2JyZWFr''@;'; + put 'put ''O2RlZmF1bHQ6QUUoMHxhWzE0NCsoMHxhW2wrMTY+PjJdKT4+Ml0sMHxhW3c+PjJdLHApLGY9MHxhW3c+PjJdLHc9MCxiPWYrMjR8MCxmPWYrMzJ8MH1BPStfW2I+PjNdKyhtPSsoKDB8SnRbYyszMz4+MF0pKygwfEp0W2MrMzQ+PjBdKTw8MXwwKSksbT0rX1tmPj4zXSttLGY9YyszOHwwO2Rv''@;'; + put 'put ''e2lmKDEmcnRbTT4+MV0pe2lmKChiPTB8cnRbZj4+MV0pPDwxNj4+MTYmJihEPTB8cnRbYys0MD4+MV0pPDwxNj4+MTYpe2lmKCEoQT4rKDY1NTM1JmIpfG0+Kyg2NTUzNSZEKSkpe0E9MCxtPTA7YnJlYWt9aWYoMz09KDB8ZmVbaz4+MF0pKXtBPTAsbT0wO2JyZWFrfSRyKDAsMTM3NjE0LFIp''@;'; + put 'put ''LHc9MSxBPTAsbT0wO2JyZWFrfSRyKDAsMTM3NjQ3LEcpLHc9MX19d2hpbGUoMCk7cmV0dXJuIF9bYys2ND4+M109QT4ocGU9KygwfGhyW2Y+PjFdKSk/QTpwZSxfW2MrNzI+PjNdPW0+KEE9KygwfGhyW2MrNDA+PjFdKSk/bTpBLGFlPUssMHx3fWZ1bmN0aW9uIEpSKGwsYyxmLHApe2x8PTAs''@;'; + put 'put ''Y3w9MCxmfD0wO3ZhciBiLGssbT0wLEE9MCx3PTA7Yj0oMHxoclsoaz04MCsocHw9MCl8MCk+PjFdKS0xfDAsdz0wO2U6Zm9yKDs7KWZvcihtPWY7Oyl7aWYodylicmVhayBlO2ZvcihBPWIrbXwwOzspe2lmKCgwfEEpPCgwfG0pKXtmPW0sdz0xO2NvbnRpbnVlIGV9aWYoMHxNUShsLEEsYykp''@;'; + put 'put ''YnJlYWs7QT1BKy0xfDB9bT1BKzF8MH1mb3Iodz1wKzgyfDAsbT1mOygwfG0pPChmKygwfGhyW2s+PjFdKXwwKTspe2ZvcihBPWM7ISgoMHxBKT49KCgwfGhyW3c+PjFdKStjfDApKTspJGQobCxtLEEpLEE9QSsxfDA7bT1tKzF8MH1yZXR1cm4gMHxmfWZ1bmN0aW9uIHlFKCl7cmV0dXJuIDB8''@;'; + put 'put ''aXMoNTU5MjQsMHxhWzQ1ODFdKX1mdW5jdGlvbiB3RShsLGMpe3ZhciBmLHA7bHw9MCxmPWFlLGFlPWFlKzE2fDAsYVsocD1mKT4+Ml09Y3w9MCxtaVs2MyZhW2w+PjJdXShsLHAsMSksYWU9Zn1mdW5jdGlvbiBFYihsLGMpe3ZhciBmLHA7cmV0dXJuIGx8PTAsZj1hZSxhZT1hZSsxNnwwLGFb''@;'; + put 'put ''KHA9Zik+PjJdPWN8PTAsYz0wIT0oMHxtaVs2MyZhW2w+PjJdXShsLHAsNTEyKSkmMSxhZT1mLDB8Y31mdW5jdGlvbiBUYigpe3ZhciBjLGYsbD0wO2ZvcihjPTB8YVs0NzM4N10sZj0wfGFbNDczNzVdLGw9MTs7KXtpZigoMHxsKT4oMHxjKSl7bD01O2JyZWFrfWlmKCgwfGFbNCsoMHxhW2Yr''@;'; + put 'put ''KGw8PDIpPj4yXSk+PjJdKSE9KDB8bCkpe2w9NDticmVha31sPWwrMXwwfWlmKDQ9PSgwfGwpKVByKDEzODM5NCwxMzc3NDEsNTksMTM3NzQ3KTtlbHNlIGlmKDU9PSgwfGwpKXJldHVybn1mdW5jdGlvbiBGdihsKXt2YXIgbSxBLHcsYz0wLGY9MCxwPTA7Zm9yKHc9MHxhWyhBPTB8YVsobT0w''@;'; + put 'put ''fGFbNDczNzVdKSsoKGx8PTApPDwyKT4+Ml0pPj4yXTtwPW0rKGw8PDIpfDAsISgoMHxhWyhmPTB8YVttKygoYz0oMHxsKS8yfDApPDwyKT4+Ml0pPj4yXSk+PSgwfHcpKTspYVtwPj4yXT1mLGFbZis0Pj4yXT1sLGw9YzthW3A+PjJdPUEsYVtBKzQ+PjJdPWx9ZnVuY3Rpb24gSHYobCl7bHw9''@;'; + put 'put ''MDt2YXIgZixjPTA7cmV0dXJuIGY9YWUsYWU9YWUrMTZ8MCwoMHwoYz0wfGFbNDczODddKSk9PSgwfGFbNDczODZdKT8oJHIoMSwxMzc3NTUsZiksbD0xKTooYVs0NzM4N109Yz1jKzF8MCxhWygwfGFbNDczNzVdKSsoYzw8Mik+PjJdPWwsRnYoYyksVGIoKSxsPTApLGFlPWYsMHxsfWZ1bmN0''@;'; + put 'put ''aW9uIGJFKCl7dmFyIGw9MCxjPTAsZj0wLHA9MDtyZXR1cm4oYz0wfGFbNDczODddKT8obD0wfGFbKGY9NCsocD0wfGFbNDczNzVdKXwwKT4+Ml0sYVtmPj4yXT1hW3ArKGM8PDIpPj4yXSxhWzQ3Mzg3XT1jPWMrLTF8MCwwfGMmJmZ1bmN0aW9uICRSKGwpe3ZhciBwLG0sQSx3LGIsYz0wLGY9''@;'; + put 'put ''MCxrPTAsTT0wLEQ9MDtmb3IoQT0wfGFbKG09MHxhWyhwPTB8YVs0NzM3NV0pKygobHw9MCk8PDIpPj4yXSk+PjJdLGI9KDB8KHc9MHxhWzQ3Mzg3XSkpLzJ8MDshKCgwfGwpPigwfGIpfHwoZj1sPDwxLGM9MHxhW3ArKGY8PDIpPj4yXSwoMHxmKTwoMHx3KSYmKEQ9MXxmLGs9MHxhW3ArKEQ8''@;'; + put 'put ''PDIpPj4yXSxNPSgwfGFbYz4+Ml0pPCgwfGFbaz4+Ml0pLGY9TT9EOmYsYz1NP2s6YyksKDB8QSk+PSgwfGFbYz4+Ml0pKSk7KWFbcCsobDw8Mik+PjJdPWMsYVtjKzQ+PjJdPWwsbD1mO2FbcCsobDw8Mik+PjJdPW0sYVttKzQ+PjJdPWx9KDEpLFRiKCkpOmw9MCwwfGx9ZnVuY3Rpb24gcVIo''@;'; + put 'put ''bCxjKXthWyhsfD0wKT4+Ml09Y3w9MCxGdigwfGFbbCs0Pj4yXSksVGIoKX1mdW5jdGlvbiBfRShsLGMsZil7dmFyIGIsayxNLEQscD0wLG09MCxBPTAsdz0wLFI9MDtmb3Iodz0oMHxmZVsodz0wfGFbKE09MTYrKGx8PTApfDApPj4yXSkrKDQwKigwfGFbMTIrKGZ8PTApPj4yXSl8MCkrMzY+''@;'; + put 'put ''PjBdKSE9KDB8ZmVbdysoNDAqKDB8YVtmKzE2Pj4yXSl8MCkrMzY+PjBdKSxtPSgwfChiPX5+KC41KigrX1s2NCsoY3w9MCk+PjNdLTMtK19bYys0OD4+M10pKSkpPCgwfChrPX5+KC41KigrX1tjKzU2Pj4zXS0zLStfW2MrNDA+PjNdKSkpKT9iOmssRD1jKzR8MCxwPTA7Oyl7aWYoKDB8cCk+''@;'; + put 'put ''PSgwfChsPTB8YVtEPj4yXSkpKXttPXA7YnJlYWt9aWYoKDB8ZmVbKFI9MHxhW00+PjJdKSsoNDAqKDB8YVsxMisoQT0wfGFbYys4KyhwPDwyKT4+Ml0pPj4yXSl8MCkrMzY+PjBdKT09KDB8ZmVbUisoNDAqKDB8YVtBKzE2Pj4yXSl8MCkrMzY+PjBdKSl7bT1wO2JyZWFrfUNFKEEsbSkscD1w''@;'; + put 'put ''KzF8MH1mb3IoOyEoKDB8bSk+PSgwfGwpKTspd3woMHwocD0wfGFbYys4KyhtPDwyKT4+Ml0pKT09KDB8ZikmJihDRShwLDB8ZmVbKDB8YVtNPj4yXSkrKDQwKigwfGFbcCsxMj4+Ml0pfDApKzM2Pj4wXT9iOmspLGw9MHxhW0Q+PjJdKSxtPW0rMXwwfWZ1bmN0aW9uIENFKGwsYyl7dmFyIGYs''@;'; + put 'put ''cDtjfD0wLGFbKGY9OCsobHw9MCl8MCk+PjJdPTErKHA9MHxhW2Y+PjJdKSwoMHxwKT49KDB8YykmJihhW2Y+PjJdPTAsX1tsPj4zXT0rX1tsPj4zXSsxNjM4NCl9ZnVuY3Rpb24gSGwobCxjLGYscCxtKXtsfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MDtBPTB8bWlbNjMmYVsoY3w9MCk+PjJd''@;'; + put 'put ''XShjLGZ8PTAsNTEyKTtkb3tpZihBKXc9QTtlbHNle2lmKGw9MHx1bShsKSxwKXt3PXArKChBPTB8YVtsKzMyPj4yXSk8PDUpfDAsYVsocD1wKyhBPDw1KSs4fDApPj4yXT1hW2Y+PjJdLGFbcCs0Pj4yXT1hW2YrND4+Ml0sYVtwKzg+PjJdPWFbZis4Pj4yXSxhW3ArMTI+PjJdPWFbZisxMj4+''@;'; + put 'put ''Ml0sYVt3Pj4yXT1sLGZlW2wrMzY+PjBdPW0sbWlbNjMmYVtjPj4yXV0oYyx3LDEpO2JyZWFrfVByKDEzODE4MywxMzgxMzEsMjkxLDEzODE5MCl9fXdoaWxlKDApO3JldHVybiAwfGFbdz4+Ml19ZnVuY3Rpb24gbkIobCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7ZTpkb3tp''@;'; + put 'put ''ZiguNSooK19bbCs2ND4+M10tMy0rX1tsKzQ4Pj4zXSk8Milmb3IoQT0wfGFbbCszMj4+Ml0sdz1sKzM2fDAsbT0wOzspe2lmKCgwfG0pPj0oMHxBKSlicmVhayBlO2M9MHxhWygwfGFbdz4+Ml0pKyhtPDwyKT4+Ml07dDpkb3tpZigwfGZlW2MrMzY+PjBdKWlmKHA9MHxhW2MrMjA+PjJdLCgw''@;'; + put 'put ''fHApPT0oMHxsKSl7Yz1mPTB8YVtjKzI0Pj4yXSxmPTB8YVtmPj4yXTtkb3tpZihhW2M+PjJdPTh8ZiwhKGM9MHxhW2FbYyszNj4+Ml0+PjJdKSlicmVhayB0O2Y9MHxhWyhjPTB8YVtjKzI0Pj4yXSk+PjJdfXdoaWxlKCEoMSZmfDApKX1lbHNle2Y9cCxjPTB8YVtwPj4yXTtkb3tpZihhW2Y+''@;'; + put 'put ''PjJdPTh8YywhKGM9MHxhWzgrKDB8YVtmKzM2Pj4yXSk+PjJdKSlicmVhayB0O2M9MHxhWyhmPTB8YVtjKzIwPj4yXSk+PjJdfXdoaWxlKCEoMSZjfDApKX19d2hpbGUoMCk7bT1tKzF8MH19d2hpbGUoMCk7ZTpkb3tpZiguNSooK19bbCs1Nj4+M10tMy0rX1tsKzQwPj4zXSk8Milmb3IoQT0w''@;'; + put 'put ''fGFbbCszMj4+Ml0sdz1sKzM2fDAsbT0wOzspe2lmKCgwfG0pPj0oMHxBKSlicmVhayBlO2M9MHxhWygwfGFbdz4+Ml0pKyhtPDwyKT4+Ml07dDpkb3tpZighKDB8ZmVbYyszNj4+MF0pKWlmKHA9MHxhW2MrMjA+PjJdLCgwfHApPT0oMHxsKSl7Yz1mPTB8YVtjKzI0Pj4yXSxmPTB8YVtmPj4y''@;'; + put 'put ''XTtkb3tpZihhW2M+PjJdPTE2fGYsIShjPTB8YVs0KygwfGFbYyszNj4+Ml0pPj4yXSkpYnJlYWsgdDtmPTB8YVsoYz0wfGFbYysyND4+Ml0pPj4yXX13aGlsZSghKDEmZnwwKSl9ZWxzZXtmPXAsYz0wfGFbcD4+Ml07ZG97aWYoYVtmPj4yXT0xNnxjLCEoYz0wfGFbMTIrKDB8YVtmKzM2Pj4y''@;'; + put 'put ''XSk+PjJdKSlicmVhayB0O2M9MHxhWyhmPTB8YVtjKzIwPj4yXSk+PjJdfXdoaWxlKCEoMSZjfDApKX19d2hpbGUoMCk7bT1tKzF8MH19d2hpbGUoMCl9ZnVuY3Rpb24gJDgobCxjKXtjfD0wO3ZhciBBLGY9MCxwPTAsbT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDtt''@;'; + put 'put ''PS41Kigodz0rX1s2NCsobHw9MCk+PjNdLStfW2wrNDg+PjNdKSsoQT0rX1tsKzU2Pj4zXS0rX1tsKzQwPj4zXSkpKzUwMCwuNSoodystMyk8Mj8obT0oTT0wPT0oOCZhW2w+PjJdfDApKT8xNjM4NDptLEs9TT8xNjM4NDpBKTpLPUEsLjUqKEErLTMpPDImJih3PShNPTA9PSgxNiZhW2w+PjJd''@;'; + put 'put ''fDApKT8xNjM4NDp3LG09TT8xNjM4NDptKSwwIT0oMHwocD0wfGFbOCsoZj0wfGFbKE09bCszNnwwKT4+Ml0pPj4yXSkpJiYwIT0oMHwoYj0wfGFbZis0Pj4yXSkpJiYoYj0wfHYzKGMscCxiLG0pLGFbKHA9bCs0fDApPj4yXT0xKyhmPTB8YVtwPj4yXSksYVtsKzgrKGY8PDIpPj4yXT1iLGY9''@;'; + put 'put ''MHxhW00+PjJdKSwwIT0oMHwocD0wfGFbZis0Pj4yXSkpJiYwIT0oMHwoaz0wfGFbZj4+Ml0pKSYmKGs9MHx2MyhjLHAsayxtKSxhWyhiPWwrNHwwKT4+Ml09MSsoZj0wfGFbYj4+Ml0pLGFbbCs4KyhmPDwyKT4+Ml09ayxmPTB8YVtNPj4yXSksMCE9KDB8KHA9MHxhW2YrOD4+Ml0pKSYmMCE9''@;'; + put 'put ''KDB8KEQ9MHxhW2YrMTI+PjJdKSkmJihEPTB8djMoYyxwLEQsbSksYVsoaz1sKzR8MCk+PjJdPTErKGY9MHxhW2s+PjJdKSxhW2wrOCsoZjw8Mik+PjJdPUQsZj0wfGFbTT4+Ml0pLDAhPSgwfChwPTB8YVtmKzEyPj4yXSkpJiYwIT0oMHwoUj0wfGFbZj4+Ml0pKSYmKFI9MHx2MyhjLHAsUixt''@;'; + put 'put ''KSxhWyhEPWwrNHwwKT4+Ml09MSsoZj0wfGFbRD4+Ml0pLGFbbCs4KyhmPDwyKT4+Ml09UixmPTB8YVtNPj4yXSksMCE9KDB8KHA9MHxhW2YrND4+Ml0pKSYmMCE9KDB8KEc9MHxhW2YrMTI+PjJdKSkmJihHPTB8djMoYyxwLEcsdyksYVsoUj1sKzR8MCk+PjJdPTErKGY9MHxhW1I+PjJdKSxh''@;'; + put 'put ''W2wrOCsoZjw8Mik+PjJdPUcsZj0wfGFbTT4+Ml0pLDB8KHA9MHxhW2YrOD4+Ml0pJiYwfChwZT0wfGFbZj4+Ml0pJiYoYz0wfHYzKGMscCxwZSxLKSxhWyhHPWwrNHwwKT4+Ml09MSsocGU9MHxhW0c+PjJdKSxhW2wrOCsocGU8PDIpPj4yXT1jKX1mdW5jdGlvbiBxOChsLGMsZixwLG0pe2x8''@;'; + put 'put ''PTAsY3w9MCxwfD0wLG18PTA7dmFyIHcsYixrLEE9MCxNPTA7Zm9yKGs9YWUsYWU9YWUrOTZ8MCxiPWssYVsodz1rKzY0fDApPj4yXT1hWyhmfD0wKT4+Ml0sYVt3KzQ+PjJdPWFbZis0Pj4yXSxhW3crOD4+Ml09YVtmKzg+PjJdLGFbdysxMj4+Ml09YVtmKzEyPj4yXSxhW3crMTY+PjJdPWFb''@;'; + put 'put ''ZisxNj4+Ml0sYVt3KzIwPj4yXT1hW2YrMjA+PjJdLGFbdysyND4+Ml09YVtmKzI0Pj4yXSxhW3crMjg+PjJdPWFbZisyOD4+Ml0sSTModyxtLDEsYiksZj0wfE9iKHAsMSxiKSxBPTA7ISgoMHxBKT49KDB8YykpOylhW3c+PjJdPWFbKE09bCsoNzIqQXwwKSs0MHwwKT4+Ml0sYVt3KzQ+PjJd''@;'; + put 'put ''PWFbTSs0Pj4yXSxhW3crOD4+Ml09YVtNKzg+PjJdLGFbdysxMj4+Ml09YVtNKzEyPj4yXSxhW3crMTY+PjJdPWFbTSsxNj4+Ml0sYVt3KzIwPj4yXT1hW00rMjA+PjJdLGFbdysyND4+Ml09YVtNKzI0Pj4yXSxhW3crMjg+PjJdPWFbTSsyOD4+Ml0sSTModyxtLDAsYiksZj0wfE9iKHAsZixi''@;'; + put 'put ''KSxBPUErMXwwO2FlPWt9ZnVuY3Rpb24gTnYobCxjKXtsfD0wLGN8PTA7dmFyIEEsZj0wLHA9MCxtPTAsdz0wO2ZvcihmPTA7ISgoMHxmKT4oMHxsKSk7KWFbYysoZjw8Mik+PjJdPWYsZj1mKzF8MDtmb3IoQT1sKzF8MCxmPTE7ISgoMHxmKT4oMHxsKSk7KXA9YysoZjw8Mil8MCxtPWMrKCh3''@;'; + put 'put ''PX5+KCtxYygpKisoQS1mfDApKyArKDB8ZikpKTw8Mil8MCwoMHxmKSE9KDB8dykmJih3PTB8YVtwPj4yXSxhW3A+PjJdPWFbbT4+Ml0sYVttPj4yXT13KSxmPWYrMXwwfWZ1bmN0aW9uIGZ1KGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgdyxiLEQsQT0wLGs9MCxNPTAsUj0w''@;'; + put 'put ''LEc9MCxLPTA7Zm9yKEQ9MHx2cigoaz0xKyhBPTUqKGx8PTApfDApfDApPDwyKSxhWzQ3Mzg4XT0wfHZyKGs8PDQpLGFbNDczODldPTB8dnIoNTYrKDU2Kmx8MCl8MCksaz0wfHZyKGw8PDIpLGFbNDczOTBdPWssTT0wOyEoKDB8TSk+KDB8QSl8fDB8X20oZisoNzIqTXwwKXwwLGMpKTspTT1N''@;'; + put 'put ''KzF8MDtmb3Iodz0wfGFbNDczODhdLGI9MHxhWzQ3Mzg5XSxBPTE7ISgoMHxBKT4oMHxsKSk7KWFbdysoQTw8NCkrOD4+Ml09YVtjKyg1NipBfDApKzQ4Pj4yXSxhW3crKEE8PDQpKzQ+PjJdPWFbKFI9YysoNTYqQXwwKSs0NHwwKT4+Ml0sYVt3KyhBPDw0KT4+Ml09QSxhWyhHPWIrKDU2KkF8''@;'; + put 'put ''MCl8MCk+PjJdPWFbKEs9YysoNTYqQXwwKXwwKT4+Ml0sYVtHKzQ+PjJdPWFbSys0Pj4yXSxhW0crOD4+Ml09YVtLKzg+PjJdLGFbRysxMj4+Ml09YVtLKzEyPj4yXSxhW2IrKDU2KkF8MCkrMTY+PjJdPWFbUj4+Ml0sYVtiKyg1NipBfDApKzMyPj4yXT1BLGFbYisoNTYqQXwwKSs0OD4+Ml09''@;'; + put 'put ''MSxBPUErMXwwO3JldHVybiBhWzQ3MzkxXT1sLGFbNDczOTJdPTAsYVtrPj4yXT0xLEE9KDB8KEE9MHxhW2YrKDcyKk18MCkrNDA+PjJdKSk8PTA/KDB8KEE9MHxhW2YrKDcyKk18MCkrNDg+PjJdKSk+MD8wfExvKEQsbSwwLGMsZiwwLE0sQSxwLDIpOjA6MHxMbyhELG0sMCxjLGYsMCxNLEEs''@;'; + put 'put ''cCwxKSxGdChEKSxGdCgwfGFbNDczODhdKSxGdCgwfGFbNDczODldKSxGdCgwfGFbNDczOTBdKSwwfEF9ZnVuY3Rpb24gTWQobCxjLGYpe3ZhciBwLG0sQSx3O3JldHVybiB3PStfWygrX1soY3w9MCk+PjNdPitfWyhmfD0wKT4+M10/YzpmKT4+M10sX1sxNisobHw9MCk+PjNdPUE9K19bKCtf''@;'; + put 'put ''W2MrMTY+PjNdPCtfW2YrMTY+PjNdP2M6ZikrMTY+PjNdLF9bbD4+M109dyxtPStfWygrX1tjKzg+PjNdPitfW2YrOD4+M10/YzpmKSs4Pj4zXSxfW2wrMjQ+PjNdPXA9K19bKCtfW2MrMjQ+PjNdPCtfW2YrMjQ+PjNdP2M6ZikrMjQ+PjNdLF9bbCs4Pj4zXT1tLCEodz49QSkmIShtPj1wKSYx''@;'; + put 'put ''fDB9ZnVuY3Rpb24gX20obCxjKXtjfD0wO3ZhciBtLGY9MCxwPTA7bT0wfGFbNCsobHw9MCk+PjJdO2Rve2lmKDI9PSgwfGFbbCs2OD4+Ml0pfHwoMHxtKTwxfCgwfGFbbD4+Ml0pPDEpbD0wO2Vsc2V7aWYoISgoMHxhW2wrNDA+PjJdKTwxJiYoMHxhW2wrNDQ+PjJdKTwxKSl7aWYoKDB8YVts''@;'; + put 'put ''KzQ4Pj4yXSk+PTEpe2w9MDticmVha31pZigoMHxhW2wrNTI+PjJdKT49MSl7bD0wO2JyZWFrfX1sPShmPStfW2MrKDU2Km18MCkrMjQ+PjNdKT4xZS03KyhwPStfW2MrKDU2Km18MCkrOD4+M10pPzE6ZjxwKy0xZS03PzA6K19bYysoNTYqbXwwKSsxNj4+M10+K19bYysoNTYqbXwwKT4+M10m''@;'; + put 'put ''MX19d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBMbyhsLGMsZixwLG0sQSx3LGIsayxNKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCxifD0wLE18PTA7dmFyIFN0LEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxu''@;'; + put 'put ''dD0wLFdlPTAsb3Q9MCxrdD0wLGx0PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxhbj0wLFNuPTAsSG49MCx1cj0wLEhyPTAsRXI9MDtTdD0wPT0oMHwoa3w9MCkpLG90PXd8PTA7ZTpmb3IoO3FlPW0rKDcyKm90fDApfDAsISgoMHxvdCk8MXx8KHc9bCsob3Q8PDIpfDAsMHxhW3c+PjJdKSk7KXth''@;'; + put 'put ''W3c+PjJdPTEsUmU9bSsoNzIqb3R8MCkrOHwwLEhlPW0rKDcyKm90fDApKzI0fDAsKEs9K19bKE9lPW0rKDcyKm90fDApKzE2fDApPj4zXSk+KEc9K19bKFZlPW0rKDcyKm90fDApKzMyfDApPj4zXSkmJihjdD0rX1twKyg1NiooV2U9MHxhW3FlPj4yXSl8MCk+PjNdKT09K19bcCsoNTYqV2V8''@;'; + put 'put ''MCkrMTY+PjNdJiYoYW49K19bcCsoNTYqKFdlPTB8YVttKyg3MipvdHwwKSs0Pj4yXSl8MCk+PjNdKT09K19bcCsoNTYqV2V8MCkrMTY+PjNdJiYodz1jKyhmPDw1KXwwLFN0PyhfW3c+PjNdPWN0LHBlPUssSz1hbik6KF9bdz4+M109RyxwZT0tY3QsRz0tYW4pLF9bYysoZjw8NSkrOD4+M109''@;'; + put 'put ''RyxfW2MrKGY8PDUpKzE2Pj4zXT1LLF9bYysoZjw8NSkrMjQ+PjNdPXBlLGY9ZisxfDApLG50PTB8YVsodz1tKyg3MipvdHwwKSs0MHwwKT4+Ml07ZG97aWYoKDB8bnQpPDEmJigwfGFbKFNuPW0rKDcyKm90fDApKzQ0fDApPj4yXSk8MSl7aWYoUj1tKyg3MipvdHwwKSs1MnwwLCgwfGFbKHc9''@;'; + put 'put ''bSsoNzIqb3R8MCkrNDh8MCk+PjJdKT4wJiYoMHwoSG49MHxhW1I+PjJdKSk+MCl7aWYoRD0wfGFbbSsoNzIqSG58MCk+PjJdLE09MHxhW3FlPj4yXSwoMHxIbik9PSgwfGIpKXtNPTB8WHMoQSxNLEQpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbUj4+Ml0sb3QsaywxKSxBPU0sTT0xO2JyZWFr''@;'; + put 'put ''fU09MHxYcyhBLEQsTSksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVt3Pj4yXSxvdCxrLDEpLEE9TSx3PVIsTT0xO2JyZWFrfWY9MHxMbyhsLGMsZixwLG0sQSxudCxvdCxrLDIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbU24+PjJdLG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVt3Pj4y''@;'; + put 'put ''XSxvdCxrLDEpLHc9UixNPTF9ZWxzZSBFcj0xOX13aGlsZSgwKTtkb3tpZigxOT09KDB8RXIpKXtpZihFcj0wLCgwfChnZT0wfGFbKFdlPW0rKDcyKm90fDApKzQ4fDApPj4yXSkpPDEmJigwfGFbKHVyPW0rKDcyKm90fDApKzUyfDApPj4yXSk8MSl7aWYoUj1tKyg3MipvdHwwKSs0NHwwLCgw''@;'; + put 'put ''fG50KT4wJiYoMHwoSHI9MHxhW1I+PjJdKSk+MCl7aWYoRD0wfGFbbSsoNzIqb3R8MCkrND4+Ml0sTT0wfGFbbSsoNzIqbnR8MCkrND4+Ml0sKDB8SHIpPT0oMHxiKSl7TT0wfFhzKEEsTSxEKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW1I+PjJdLG90LGssMiksQT1NLE09MjticmVha31NPTB8''@;'; + put 'put ''WHMoQSxELE0pLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbdz4+Ml0sb3QsaywyKSxBPU0sdz1SLE09MjticmVha31mPTB8TG8obCxjLGYscCxtLEEsbnQsb3QsaywyKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW1I+PjJdLG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtXZT4+Ml0sb3Qs''@;'; + put 'put ''aywxKSx3PXVyLE09MTticmVha31pZihEPSgwfChiZT0wfGFbKExlPW0rKDcyKm90fDApKzQ0fDApPj4yXSkpPjAsKDB8bnQpPjApe2lmKEQpe2lmKCgwfGdlKT4wJiYoMHwobHQ9MHxhWyhrdD1tKyg3MipvdHwwKSs1MnwwKT4+Ml0pKT4wKXtpZihSPTB8YVttKyg3MipsdHwwKT4+Ml0sRD0w''@;'; + put 'put ''fGFbbSsoNzIqbnR8MCkrND4+Ml0sISgyPT0oMHxNKSYoMHxsdCk9PSgwfGIpfHwxPT0oMHxNKSYoMHxiZSk9PSgwfGIpKSl7TT0wfFhzKEEsUixEKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW3c+PjJdLG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtXZT4+Ml0sb3QsaywxKSxmPTB8''@;'; + put 'put ''TG8obCxjLGYscCxtLE0sMHxhW0xlPj4yXSxvdCxrLDIpLEE9TSx3PWt0LE09MTticmVha31NPTB8WHMoQSxELFIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbTGU+PjJdLG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtrdD4+Ml0sb3QsaywxKSxmPTB8TG8obCxjLGYscCxtLE0sMHxh''@;'; + put 'put ''W3c+PjJdLG90LGssMiksQT1NLHc9V2UsTT0xO2JyZWFrfWlmKCtlbygrKCtfW1ZlPj4zXS0rX1twKyg1NiooRD0wfGFbcWU+PjJdKXwwKSsyND4+M10pKTw9MWUtNyYmK2VvKCsoK19bSGU+PjNdLStfW3ArKDU2KkR8MCkrMTY+PjNdKSk8PTFlLTcpe2lmKFI9MHxhW20rKDcyKm50fDApKzQ+''@;'; + put 'put ''PjJdLEQ9MHxhW3ArKDU2KkR8MCkrNDQ+PjJdLDE9PSgwfE0pJigwfG50KT09KDB8Yikpe009MHxYcyhBLEQsUiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVt3Pj4yXSxvdCxrLDIpLGY9MHxMbyhsLGMsZixwLG0sTSwwfGFbV2U+PjJdLG90LGssMSksZj0wfExvKGwsYyxmLHAsbSxNLDB8YVtM''@;'; + put 'put ''ZT4+Ml0sb3QsaywyKSxBPU0sdz1tKyg3MipvdHwwKSs1MnwwLE09MTticmVha31NPTB8WHMoQSxSLEQpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbTGU+PjJdLG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtXZT4+Ml0sb3QsaywxKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW20rKDcy''@;'; + put 'put ''Km90fDApKzUyPj4yXSxvdCxrLDEpLEE9TSxNPTI7YnJlYWt9aWYoUj0wfGFbbSsoNzIqb3R8MCkrND4+Ml0sRD0wfGFbbSsoNzIqbnR8MCkrND4+Ml0sMT09KDB8TSkmKDB8YmUpPT0oMHxiKSl7TT0wfFhzKEEsRCxSKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW0xlPj4yXSxvdCxrLDIpLGY9''@;'; + put 'put ''MHxMbyhsLGMsZixwLG0sTSwwfGFbbSsoNzIqb3R8MCkrNTI+PjJdLG90LGssMSksZj0wfExvKGwsYyxmLHAsbSxNLDB8YVtXZT4+Ml0sb3QsaywxKSxBPU0sTT0yO2JyZWFrfU09MHxYcyhBLFIsRCksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVt3Pj4yXSxvdCxrLDIpLGY9MHxMbyhsLGMsZixw''@;'; + put 'put ''LG0sQSwwfGFbV2U+PjJdLG90LGssMSksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVttKyg3MipvdHwwKSs1Mj4+Ml0sb3QsaywxKSxBPU0sdz1MZSxNPTI7YnJlYWt9fWVsc2UgaWYoIUQpYnJlYWsgZTtpZigoMHxnZSk+MCYmKDB8KFp0PTB8YVsoRXQ9bSsoNzIqb3R8MCkrNTJ8MCk+PjJdKSk+''@;'; + put 'put ''MCl7aWYoK2VvKCsoK19bT2U+PjNdLStfW3ArKDU2KihSPTB8YVtxZT4+Ml0pfDApKzg+PjNdKSk8PTFlLTcmJitlbygrKCtfW1JlPj4zXS0rX1twKyg1NipSfDApPj4zXSkpPD0xZS03KXtpZihEPTB8YVttKyg3MipadHwwKT4+Ml0sMj09KDB8TSkmKDB8Z2UpPT0oMHxiKSl7TT0wfFhzKEEs''@;'; + put 'put ''RCxSKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW1dlPj4yXSxvdCxrLDEpLGY9MHxMbyhsLGMsZixwLG0sTSwwfGFbdz4+Ml0sb3QsaywyKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW20rKDcyKm90fDApKzQ0Pj4yXSxvdCxrLDIpLEE9TSx3PUV0LE09MTticmVha31NPTB8WHMoQSxSLEQpLGY9''@;'; + put 'put ''MHxMbyhsLGMsZixwLG0sQSwwfGFbbSsoNzIqb3R8MCkrNDQ+PjJdLG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtFdD4+Ml0sb3QsaywxKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW3c+PjJdLG90LGssMiksQT1NLHc9V2UsTT0xO2JyZWFrfWlmKEQ9MHxhW20rKDcyKlp0fDApPj4y''@;'; + put 'put ''XSxSPTB8YVtwKyg1NiooMHxhW20rKDcyKm90fDApKzQ+PjJdKXwwKSs0ND4+Ml0sMj09KDB8TSkmKDB8WnQpPT0oMHxiKSl7TT0wfFhzKEEsUixEKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW0V0Pj4yXSxvdCxrLDEpLGY9MHxMbyhsLGMsZixwLG0sTSwwfGFbbSsoNzIqb3R8MCkrNDQ+PjJd''@;'; + put 'put ''LG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxNLDB8YVt3Pj4yXSxvdCxrLDIpLEE9TSx3PVdlLE09MTticmVha31NPTB8WHMoQSxELFIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbdz4+Ml0sb3QsaywyKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW1dlPj4yXSxvdCxrLDEpLGY9MHxMbyhsLGMs''@;'; + put 'put ''ZixwLG0sQSwwfGFbbSsoNzIqb3R8MCkrNDQ+PjJdLG90LGssMiksQT1NLHc9RXQsTT0xO2JyZWFrfWlmKCtlbygrKChHPStfW09lPj4zXSktK19bcCsoNTYqKFI9MHxhW3FlPj4yXSl8MCkrOD4+M10pKTw9MWUtNyYmK2VvKCsoK19bUmU+PjNdLStfW3ArKDU2KlJ8MCk+PjNdKSk8PTFlLTcm''@;'; + put 'put ''JitlbygrKCtfW1ZlPj4zXS0rX1twKyg1NiooYnQ9MHxhW20rKDcyKm90fDApKzQ+PjJdKXwwKSs4Pj4zXSkpPD0xZS03JiYrZW8oKygrX1tIZT4+M10tK19bcCsoNTYqYnR8MCk+PjNdKSk8PTFlLTcpe2lmKDE9PSgwfE0pKXtNPTB8WHMoQSxSLGJ0KSxmPTB8TG8obCxjLGYscCxtLEEsMHxh''@;'; + put 'put ''W3c+PjJdLG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVttKyg3MipvdHwwKSs0ND4+Ml0sb3QsaywyKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW20rKDcyKm90fDApKzUyPj4yXSxvdCxrLDEpLEE9TSx3PVdlLE09MTticmVha31NPTB8WHMoQSxidCxSKSxmPTB8TG8obCxjLGYscCxt''@;'; + put 'put ''LEEsMHxhW20rKDcyKm90fDApKzUyPj4yXSxvdCxrLDEpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbV2U+PjJdLG90LGssMSksZj0wfExvKGwsYyxmLHAsbSxNLDB8YVt3Pj4yXSxvdCxrLDIpLEE9TSx3PW0rKDcyKm90fDApKzQ0fDAsTT0yO2JyZWFrfWlmKCtlbygrKEctK19bcCsoNTYqKGI9''@;'; + put 'put ''MHxhW20rKDcyKm90fDApKzQ+PjJdKXwwKSsyND4+M10pKTw9MWUtNyYmK2VvKCsoK19bUmU+PjNdLStfW3ArKDU2KmJ8MCkrMTY+PjNdKSk8PTFlLTcmJitlbygrKCtfW1ZlPj4zXS0rX1twKyg1NipSfDApKzI0Pj4zXSkpPD0xZS03JiYrZW8oKygrX1tIZT4+M10tK19bcCsoNTYqUnwwKSsx''@;'; + put 'put ''Nj4+M10pKTw9MWUtNyl7aWYoRD0wfGFbcCsoNTYqYnwwKSs0ND4+Ml0sYj0wfGFbcCsoNTYqUnwwKSs0ND4+Ml0sMT09KDB8TSkpe009MHxYcyhBLGIsRCksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVt3Pj4yXSxvdCxrLDIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbbSsoNzIqb3R8MCkrNDQ+''@;'; + put 'put ''PjJdLG90LGssMiksZj0wfExvKGwsYyxmLHAsbSxNLDB8YVttKyg3MipvdHwwKSs1Mj4+Ml0sb3QsaywxKSxBPU0sdz1XZSxNPTE7YnJlYWt9TT0wfFhzKEEsRCxiKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW20rKDcyKm90fDApKzUyPj4yXSxvdCxrLDEpLGY9MHxMbyhsLGMsZixwLG0sQSww''@;'; + put 'put ''fGFbV2U+PjJdLG90LGssMSksZj0wfExvKGwsYyxmLHAsbSxNLDB8YVt3Pj4yXSxvdCxrLDIpLEE9TSx3PW0rKDcyKm90fDApKzQ0fDAsTT0yO2JyZWFrfWY9MHxMbyhsLGMsZixwLG0sQSxudCxvdCxrLDIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbV2U+PjJdLG90LGssMSksZj0wfExvKGws''@;'; + put 'put ''YyxmLHAsbSxBLDB8YVttKyg3MipvdHwwKSs0ND4+Ml0sb3QsaywyKSx3PW0rKDcyKm90fDApKzUyfDAsTT0xfX13aGlsZSgwKTtiPW90LG90PTB8YVt3Pj4yXX1yZXR1cm4gMHxmfWZ1bmN0aW9uIFhzKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcCxtLEEsdyxNLEQsSyxwZSxiPTAsaz0w''@;'; + put 'put ''LFI9MCxHPTAsZ2U9MDtyZXR1cm4gbT1hZSxhZT1hZSsxNnwwLGdlPW0rNHwwLGI9bSxhWzQ3MzkyXT1wPTErKDB8YVs0NzM5Ml0pfDAsRD0wfGFbNDczODldLGZ1bmN0aW9uIExiKGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgRCxSLEcsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Zm9yKFI9KEQ9''@;'; + put 'put ''MHxhWzQ3Mzg5XSkrKDU2KihsfD0wKXwwKXwwLEc9RCsoNTYqKGN8PTApfDApfDAsbT0wLEE9LTQsYj0wOzQhPSgwfGIpOykoMHwodz0wfGFbRCsoNTYqbHwwKSsxNisoYjw8Mik+PjJdKSk+PTEmJihrPStlNShSLEQrKDU2Knd8MCl8MCxHKSk+QSYmKG09YixBPWspLGI9YisxfDA7Zm9yKGFb''@;'; + put 'put ''Zj4+Ml09bSxtPTAsYj0wLEE9LTQ7NCE9KDB8Yik7KSgwfCh3PTB8YVtEKyg1NipjfDApKzE2KyhiPDwyKT4+Ml0pKT49MSYmKE09K2U1KEcsRCsoNTYqd3wwKXwwLFIpKT5BJiYobT1iLEE9TSksYj1iKzF8MDthW3A+PjJdPW19KGMsZixnZSxiKSx3PTB8YVtEKyg1NipjfDApKzMyKygoZ2U9''@;'; + put 'put ''MHxhW2dlPj4yXSk8PDIpPj4yXSxiPTB8YVtEKyg1NipmfDApKzMyKyhhW2I+PjJdPDwyKT4+Ml0sQT0xKyhSPTB8YVs0NzM5MV0pfDAsYVs0NzM5MV09Uj1SKzJ8MCxhWyhwZT0wfGFbNDczODhdKSsoQTw8NCk+PjJdPWMsYVtwZSsoUjw8NCk+PjJdPWYsYVsoSz1wZSsoQTw8NCkrNHwwKT4+''@;'; + put 'put ''Ml09YVsoRz1wZSsodzw8NCkrNHwwKT4+Ml0sYVtwZSsoYVtHPj4yXTw8NCkrOD4+Ml09QSxhW3BlKyhBPDw0KSs4Pj4yXT1SLGFbcGUrKFI8PDQpKzQ+PjJdPUEsYVtwZSsoUjw8NCkrOD4+Ml09YVsoaz1wZSsoYjw8NCkrOHwwKT4+Ml0sYVtwZSsoYVtrPj4yXTw8NCkrND4+Ml09UixhW0c+''@;'; + put 'put ''PjJdPWIsYVtrPj4yXT13LEc9MHxhWyhrPUQrKDU2KmN8MCkrNDh8MCk+PjJdLE09MHxhWyhiPUQrKDU2KmZ8MCkrNDh8MCk+PjJdLGFbRCsoNTYqY3wwKSsxNisoZ2U8PDIpPj4yXT1mLGFbRCsoNTYqY3wwKSszMisoRzw8Mik+PjJdPUEsYVtEKyg1NipjfDApKzE2KyhHPDwyKT4+Ml09YVtw''@;'; + put 'put ''ZSsoYVtLPj4yXTw8NCk+PjJdLGFbRCsoNTYqZnwwKSszMisoTTw8Mik+PjJdPVIsYVtEKyg1NipmfDApKzE2KyhNPDwyKT4+Ml09YyxhW2s+PjJdPTErKDB8YVtrPj4yXSksYVtiPj4yXT0xKygwfGFbYj4+Ml0pLGFbKGY9MHxhWzQ3MzkwXSkrKGw8PDIpPj4yXT13LGFbZisocDw8Mik+PjJd''@;'; + put 'put ''PUEsYWU9bSwwfHB9ZnVuY3Rpb24gZTUobCxjLGYpe3ZhciBtLEEsYixwPTAsdz0wO3JldHVybiBiPStfWyhjfD0wKT4+M10tKHc9K19bKGx8PTApPj4zXSksQT0rX1tjKzg+PjNdLShwPStfW2wrOD4+M10pLG09KHA9K19bOCsoZnw9MCk+PjNdLXApKkErKHc9K19bZj4+M10tdykqYiwrKHA9''@;'; + put 'put ''cCpiLXcqQT49MD9tLygrRDAoKyhwKnArdyp3KSkqK0QwKCsoQSpBK2IqYikpKTotbS8oK0QwKCsocCpwK3cqdykpKitEMCgrKEEqQStiKmIpKSktMil9ZnVuY3Rpb24gSTMobCxjLGYscCl7Y3w9MCxmfD0wO3ZhciBrLG09MCxBPTAsdz0wLGI9MCxNPTA7YVsocHw9MCk+PjJdPWFbKGx8PTAp''@;'; + put 'put ''Pj4yXSxhW3ArND4+Ml09YVtsKzQ+PjJdLGFbcCs4Pj4yXT1hW2wrOD4+Ml0sYVtwKzEyPj4yXT1hW2wrMTI+PjJdLGFbKHc9cCszMnwwKT4+Ml09YVsoYj1sKzE2fDApPj4yXSxhW3crND4+Ml09YVtiKzQ+PjJdLGFbdys4Pj4yXT1hW2IrOD4+Ml0sYVt3KzEyPj4yXT1hW2IrMTI+PjJdLGY/''@;'; + put 'put ''KG09bCsyNHwwLEE9bCx3PWwrOHwwLGY9Yik6KG09bCs4fDAsQT1iLHc9bCsyNHwwLGY9bCksaz0rX1tBPj4zXSxNPStfW3c+PjNdLF9bcCsxNj4+M109K19bZj4+M10sX1twKzI0Pj4zXT1NLF9bcCs0OD4+M109ayxfW3ArNTY+PjNdPStfW20+PjNdO2U6ZG97aWYoMHxjKWZvcihmPTA7Oyl7''@;'; + put 'put ''aWYoND09KDB8ZikpYnJlYWsgZTtNPStfWyhiPXArKGY8PDQpKzh8MCk+PjNdLF9bYj4+M109K19bKGM9cCsoZjw8NCl8MCk+PjNdLF9bYz4+M109LU0sZj1mKzF8MH19d2hpbGUoMCl9ZnVuY3Rpb24gT2IobCxjLGYpe2Z8PTA7dmFyIHcsYixrLE0sRCxwPTAsbT0wLEE9MCxSPTAsRz0wO2Zv''@;'; + put 'put ''cihiPTErKGN8PTApfDAsaz1jKzJ8MCxNPShsfD0wKSsoNTYqY3wwKSs0NHwwLEQ9bCsoNTYqKHc9YyszfDApfDApKzQ0fDAscD0wLG09YzshKCgwfG0pPigwfHcpKTspe2Rve2lmKCgwfG0pIT0oMHxjKSl7aWYoKDB8bSk9PSgwfHcpKXthW0Q+PjJdPWMsQT1rO2JyZWFrfWFbbCsoNTYqbXww''@;'; + put 'put ''KSs0ND4+Ml09bSsxLEE9bSstMXwwO2JyZWFrfWFbTT4+Ml09YixBPXd9d2hpbGUoMCk7YVtsKyg1NiptfDApKzQ4Pj4yXT1BLGFbbCsoNTYqbXwwKSszMj4+Ml09MCxhWyhHPWwrKDU2Km18MCl8MCk+PjJdPWFbKFI9ZisocDw8NCl8MCk+PjJdLGFbRys0Pj4yXT1hW1IrND4+Ml0sYVtHKzg+''@;'; + put 'put ''PjJdPWFbUis4Pj4yXSxhW0crMTI+PjJdPWFbUisxMj4+Ml0sbjEobCsoNTYqQXwwKSsxNnwwLDB8UiwxNikscD1wKzF8MCxtPW0rMXwwfXJldHVybiBjKzR8MH1mdW5jdGlvbiBWdihsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLG18PTA7dmFyIGssTSxBPTAsdz0wLGI9MDtmb3IoYVs0NzM5''@;'; + put 'put ''M109KHB8PTApPDwxLGFbNDczOTRdPXAsTT0wfHZyKDgwKnB8MCksYVs0NzM5NV09MSxhWzQ3Mzk2XT0xLHUyKDB8bSwwLDcyKnB8MCksQT0wfGZ1bmN0aW9uIGp2KGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG0sQSx3LEQsUixHLGdlLE9lLGI9MCxrPTAsTT0wLEs9MCxwZT0w''@;'; + put 'put ''LGJlPTA7cmV0dXJuIG09MHx3ZigpLGFbcCsoNDAqbXwwKT4+Ml09MixmdW5jdGlvbiBpRyhsLGMsZil7bHw9MDt2YXIgcCxtO3A9K19bOCsoY3w9MCk+PjNdLG09K19bOCsoZnw9MCk+PjNdO2Rve2lmKCEocD5tKzFlLTcpKXtpZighKCtlbygrKHAtbSkpPD0xZS03KSl7YVtsPj4yXT1hW2Y+''@;'; + put 'put ''PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml07YnJlYWt9aWYoK19bYz4+M10+K19bZj4+M10rMWUtNyl7YVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJd''@;'; + put 'put ''PWFbYysxMj4+Ml07YnJlYWt9YVtsPj4yXT1hW2Y+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml07YnJlYWt9YVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+''@;'; + put 'put ''PjJdPWFbYysxMj4+Ml19d2hpbGUoMCl9KGJlPXArKDQwKm18MCkrOHwwLGs9YysoNTYqbHwwKXwwLE09YysoNTYqbHwwKSsxNnwwKSxSPTB8d2YoKSxhW3ArKDQwKm18MCkrMzY+PjJdPVIsYVtwKyg0MCpSfDApPj4yXT0zLGFbcCsoNDAqUnwwKSsyOD4+Ml09bSxiPTB8d2YoKSxhW3ArKDQw''@;'; + put 'put ''Km18MCkrMzI+PjJdPWIsYVtwKyg0MCpifDApPj4yXT0yLGZ1bmN0aW9uIEVFKGwsYyxmKXtsfD0wO3ZhciBwLG07cD0rX1s4KyhjfD0wKT4+M10sbT0rX1s4KyhmfD0wKT4+M107ZG97aWYoIShwPG0rLTFlLTcpKXtpZighKCtlbygrKHAtbSkpPD0xZS03KSl7YVtsPj4yXT1hW2Y+PjJdLGFb''@;'; + put 'put ''bCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml07YnJlYWt9aWYoK19bYz4+M108K19bZj4+M10pe2FbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJd''@;'; + put 'put ''O2JyZWFrfWFbbD4+Ml09YVtmPj4yXSxhW2wrND4+Ml09YVtmKzQ+PjJdLGFbbCs4Pj4yXT1hW2YrOD4+Ml0sYVtsKzEyPj4yXT1hW2YrMTI+PjJdO2JyZWFrfWFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+''@;'; + put 'put ''PjJdfXdoaWxlKDApfShnZT1wKyg0MCpifDApKzh8MCxrLE0pLGFbcCsoNDAqYnwwKSsyOD4+Ml09bSxNPTB8d2YoKSxhW3ArKDQwKmJ8MCkrMzI+PjJdPU0sYVtwKyg0MCpNfDApPj4yXT0zLGFbcCsoNDAqTXwwKSsyOD4+Ml09YixrPTB8d2YoKSxhW3ArKDQwKmJ8MCkrMzY+PjJdPWssYVtw''@;'; + put 'put ''Kyg0MCprfDApPj4yXT0xLGFbcCsoNDAqa3wwKSs0Pj4yXT1sLGFbcCsoNDAqa3wwKSsyOD4+Ml09YixiPTB8d2YoKSxhW3ArKDQwKmt8MCkrMzI+PjJdPWIsYVtwKyg0MCpifDApPj4yXT0zLGFbcCsoNDAqYnwwKSsyOD4+Ml09ayxBPTB8d2YoKSxhW3ArKDQwKmt8MCkrMzY+PjJdPUEsYVtw''@;'; + put 'put ''Kyg0MCpBfDApPj4yXT0zLGFbcCsoNDAqQXwwKSsyOD4+Ml09ayxrPTB8dzYoZiksdz0wfHc2KGYpLEQ9MHx3NihmKSxHPTB8dzYoZiksSz1mKyg3MiprfDApKzh8MCxwZT1mKyg3Mip3fDApKzh8MCxhWyhPZT1mKyg3MipHfDApKzI0fDApPj4yXT1hW2JlPj4yXSxhW09lKzQ+PjJdPWFbYmUr''@;'; + put 'put ''ND4+Ml0sYVtPZSs4Pj4yXT1hW2JlKzg+PjJdLGFbT2UrMTI+PjJdPWFbYmUrMTI+PjJdLG4xKDB8cGUsMHxiZSwxNiksYVtLPj4yXT1hW3BlPj4yXSxhW0srND4+Ml09YVtwZSs0Pj4yXSxhW0srOD4+Ml09YVtwZSs4Pj4yXSxhW0srMTI+PjJdPWFbcGUrMTI+PjJdLEs9ZisoNzIqa3wwKSsy''@;'; + put 'put ''NHwwLHBlPWYrKDcyKnd8MCkrMjR8MCxhWyhiZT1mKyg3MipEfDApKzh8MCk+PjJdPWFbZ2U+PjJdLGFbYmUrND4+Ml09YVtnZSs0Pj4yXSxhW2JlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtiZSsxMj4+Ml09YVtnZSsxMj4+Ml0sbjEoMHxwZSwwfGdlLDE2KSxhW0s+PjJdPWFbcGU+PjJdLGFbSys0''@;'; + put 'put ''Pj4yXT1hW3BlKzQ+PjJdLGFbSys4Pj4yXT1hW3BlKzg+PjJdLGFbSysxMj4+Ml09YVtwZSsxMj4+Ml0sX1tmKyg3MipHfDApKzE2Pj4zXT0xMDczNzQxODI0LF9bZisoNzIqR3wwKSs4Pj4zXT0xMDczNzQxODI0LF9bZisoNzIqRHwwKSszMj4+M109LTEwNzM3NDE4MjQsX1tmKyg3MipEfDAp''@;'; + put 'put ''KzI0Pj4zXT0tMTA3Mzc0MTgyNCxhW2YrKDcyKnd8MCk+PjJdPWwsYVtmKyg3MiprfDApKzQ+PjJdPWwsYVtmKyg3Mip3fDApKzQwPj4yXT1HLGFbZisoNzIqa3wwKSs0MD4+Ml09RyxhW2YrKDcyKnd8MCkrNDg+PjJdPUQsYVtmKyg3MiprfDApKzQ4Pj4yXT1ELGFbZisoNzIqRHwwKSs0MD4+''@;'; + put 'put ''Ml09ayxhW2YrKDcyKkd8MCkrNDg+PjJdPWssYVtmKyg3MipEfDApKzQ0Pj4yXT13LGFbZisoNzIqR3wwKSs1Mj4+Ml09dyxhW2YrKDcyKmt8MCkrNTY+PjJdPWIsYVtmKyg3Mip3fDApKzU2Pj4yXT1BLGFbZisoNzIqRHwwKSs1Nj4+Ml09TSxhW2YrKDcyKkd8MCkrNTY+PjJdPVIsYVtmKyg3''@;'; + put 'put ''Mip3fDApKzY4Pj4yXT0xLGFbZisoNzIqa3wwKSs2OD4+Ml09MSxhW2YrKDcyKkd8MCkrNjg+PjJdPTEsYVtmKyg3MipEfDApKzY4Pj4yXT0xLGFbcCsoNDAqUnwwKSsyND4+Ml09RyxhW3ArKDQwKk18MCkrMjQ+PjJdPUQsYVtwKyg0MCpifDApKzI0Pj4yXT1rLGFbcCsoNDAqQXwwKSsyND4+''@;'; + put 'put ''Ml09dyxhW2MrKDU2Kmx8MCkrMzI+PjJdPTEsMHxtfSgwfGFbZis0Pj4yXSxjLG0sTSkscD0xOyEoKDB8cCk+KDB8bCkpOylhW2MrKDU2KnB8MCkrNDA+PjJdPUEsYVtjKyg1NipwfDApKzM2Pj4yXT1BLHA9cCsxfDA7Zm9yKGs9MHxmdW5jdGlvbiBSYihsKXt2YXIgYz0wO2ZvcihjPSsoMHwo''@;'; + put 'put ''bHw9MCkpLGw9MDtjPj0xOyljPStyJChjKSxsPWwrMXwwO3JldHVybiBsKy0xfDB9KGwpLEE9MixiPTE7ISgoMHxiKT4oMHxrKSk7KXtmb3IocD0wfFNFKGwsYistMXwwKSx3PTB8U0UobCxiKTs7KXtpZigoMHxwKT49KDB8dykpe3A9MTticmVha31BNigwfGFbZisoQTw8Mik+PjJdLGMsbSxN''@;'; + put 'put ''KSxwPXArMXwwLEE9QSsxfDB9Zm9yKDshKCgwfHApPigwfGwpKTspQmIocCxjLG0sTSkscD1wKzF8MDtiPWIrMXwwfWZvcihwPTB8U0UobCxrKTshKCgwfHApPj0oMHxsKSk7KUE2KDB8YVtmKyhBPDwyKT4+Ml0sYyxtLE0pLEE9QSsxfDAscD1wKzF8MDtyZXR1cm4gRnQoTSksMHxhWzQ3Mzk1''@;'; + put 'put ''XX1mdW5jdGlvbiBTRShsLGMpe2N8PTA7dmFyIHAsZj0wO2ZvcihmPXA9KygwfChsfD0wKSksbD0wOyEoKDB8bCk+PSgwfGMpKTspZj0rciQoZiksbD1sKzF8MDtyZXR1cm4gMHx+fitJdSgrcC9mKX1mdW5jdGlvbiBBNihsLGMsZixwKXtmfD0wLHB8PTA7dmFyIEV0LERyLEpyLExyLGwwLFZp''@;'; + put 'put ''LG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MCxTdD0wLGt0PTAsbHQ9MCxadD0wLGN0PTAsYnQ9MCxhbj0wLFNuPTAsSG49MCx1cj0wLEhyPTAsRXI9MCxmcj0w''@;'; + put 'put ''LE9pPTA7Vmk9YWUsYWU9YWUrOTZ8MCxtPVZpKzE2fDAsSnI9Vmksaz0oY3w9MCkrKDU2KihsfD0wKXwwKXwwLHBlPTU2KyhnZT1Ecj1WaSszMnwwKXwwO2Rve2FbZ2U+PjJdPWFbaz4+Ml0sZ2U9Z2UrNHwwLGs9ays0fDB9d2hpbGUoKDB8Z2UpPCgwfHBlKSk7THI9RHIrMTZ8MCx3PStfWyhs''@;'; + put 'put ''MD1EcisyNHwwKT4+M10sYj0rX1soRXQ9RHIrOHwwKT4+M107ZG97aWYodz5iKzFlLTcpbHQ9NDtlbHNle2lmKCEodzxiKy0xZS03KSYmK19bTHI+PjNdPitfW0RyPj4zXSl7bHQ9NDticmVha31sdD0wPT0oMHx0NShsLGMsMSkpLG09MHxhW0RyKzM2Pj4yXSxsdD8oRD0wLGx0PTcpOihtPTB8''@;'; + put 'put ''SDQoRHIsTHIsbSxjLHApLGx0PTIwKX19d2hpbGUoMCk7aWYoND09KDB8bHQpJiYoYVttPj4yXT1hW0RyPj4yXSxhW20rND4+Ml09YVtEcis0Pj4yXSxhW20rOD4+Ml09YVtEcis4Pj4yXSxhW20rMTI+PjJdPWFbRHIrMTI+PjJdLGFbRHI+PjJdPWFbTHI+PjJdLGFbRHIrND4+Ml09YVtMcis0''@;'; + put 'put ''Pj4yXSxhW0RyKzg+PjJdPWFbTHIrOD4+Ml0sYVtEcisxMj4+Ml09YVtMcisxMj4+Ml0sYVtMcj4+Ml09YVttPj4yXSxhW0xyKzQ+PjJdPWFbbSs0Pj4yXSxhW0xyKzg+PjJdPWFbbSs4Pj4yXSxhW0xyKzEyPj4yXT1hW20rMTI+PjJdLGt0PTB8YVsoU3Q9RHIrMzZ8MCk+PjJdLGFbU3Q+PjJd''@;'; + put 'put ''PW09MHxhWyhsdD1Ecis0MHwwKT4+Ml0sYVtsdD4+Ml09a3QsMHx0NShsLGMsMik/KG09MHxINChEcixMcixtLGMscCksbHQ9MTkpOihEPTEsbHQ9NykpLDc9PSgwfGx0KSl7TT0wfEg0KERyLExyLG0sYyxwKSxtPTB8dzYoZiksYVtmKyg3MiptfDApKzY4Pj4yXT0xLGs9ZisoNzIqTXwwKXww''@;'; + put 'put ''LHBlPTcyKyhnZT1mKyg3MiptfDApfDApfDA7ZG97YVtnZT4+Ml09YVtrPj4yXSxnZT1nZSs0fDAsaz1rKzR8MH13aGlsZSgoMHxnZSk8KDB8cGUpKTtfW2YrKDcyKm18MCkrMTY+PjNdPUs9K19bRXQ+PjNdLF9bZisoNzIqTXwwKSszMj4+M109SyxfW2YrKDcyKm18MCkrOD4+M109Sz0rX1tE''@;'; + put 'put ''cj4+M10sX1tmKyg3MipNfDApKzI0Pj4zXT1LLGFbZisoNzIqTXwwKSs0OD4+Ml09bSxhW2YrKDcyKk18MCkrNTI+PjJdPTAsYVtmKyg3MiptfDApKzQwPj4yXT1NLGFbZisoNzIqbXwwKSs0ND4+Ml09MCwoMHwoQT0wfGFbZisoNzIqbXwwKSs0OD4+Ml0pKT4wJiYoKDB8YVsoaz1mKyg3MipB''@;'; + put 'put ''fDApKzQwfDApPj4yXSk9PSgwfE0pJiYoYVtrPj4yXT1tKSwoMHxhWyhBPWYrKDcyKkF8MCkrNDR8MCk+PjJdKT09KDB8TSkmJihhW0E+PjJdPW0pKSwoMHwoQT0wfGFbZisoNzIqbXwwKSs1Mj4+Ml0pKT4wJiYoKDB8YVsoaz1mKyg3MipBfDApKzQwfDApPj4yXSk9PSgwfE0pJiYoYVtrPj4y''@;'; + put 'put ''XT1tKSwoMHxhWyhBPWYrKDcyKkF8MCkrNDR8MCk+PjJdKT09KDB8TSkmJihhW0E+PjJdPW0pKSxTdD0wfHdmKCksbHQ9MHx3ZigpLGFbcCsoNDAqKG90PTB8YVsoa3Q9ZisoNzIqTXwwKSs1NnwwKT4+Ml0pfDApPj4yXT0yLGFbKFdlPXArKDQwKm90fDApKzh8MCk+PjJdPWFbRHI+PjJdLGFb''@;'; + put 'put ''V2UrND4+Ml09YVtEcis0Pj4yXSxhW1dlKzg+PjJdPWFbRHIrOD4+Ml0sYVtXZSsxMj4+Ml09YVtEcisxMj4+Ml0sYVtwKyg0MCpvdHwwKSs0Pj4yXT1sLGFbcCsoNDAqb3R8MCkrMzI+PjJdPWx0LGFbcCsoNDAqb3R8MCkrMzY+PjJdPVN0LGFbcCsoNDAqU3R8MCk+PjJdPTMsYVtwKyg0MCpT''@;'; + put 'put ''dHwwKSsyND4+Ml09TSxhW3ArKDQwKlN0fDApKzI4Pj4yXT1vdCxhW3ArKDQwKmx0fDApPj4yXT0zLGFbcCsoNDAqbHR8MCkrMjQ+PjJdPW0sYVtwKyg0MCpsdHwwKSsyOD4+Ml09b3QsYVtrdD4+Ml09U3QsYVtmKyg3MiptfDApKzU2Pj4yXT1sdCxsdD1EPzE5OjIwfWlmKDE5PT0oMHxsdCk/''@;'; + put 'put ''MHx0NShsLGMsMSk/KEE9MSxsdD0zMik6KEE9MSxsdD0yMSk6MjA9PSgwfGx0KSYmKDB8dDUobCxjLDIpPyhBPTAsbHQ9MzIpOihBPTAsbHQ9MjEpKSwyMT09KDB8bHQpKXtSPTB8SDQoTHIsRHIsMHxhW0RyKzQwPj4yXSxjLHApLEQ9MHx3NihmKSxhW2YrKDcyKkR8MCkrNjg+PjJdPTEsaz1m''@;'; + put 'put ''Kyg3MipSfDApfDAscGU9NzIrKGdlPWYrKDcyKkR8MCl8MCl8MDtkb3thW2dlPj4yXT1hW2s+PjJdLGdlPWdlKzR8MCxrPWsrNHwwfXdoaWxlKCgwfGdlKTwoMHxwZSkpO19bZisoNzIqRHwwKSsxNj4+M109Sz0rX1tsMD4+M10sX1tmKyg3MipSfDApKzMyPj4zXT1LLF9bZisoNzIqRHwwKSs4''@;'; + put 'put ''Pj4zXT1LPStfW0xyPj4zXSxfW2YrKDcyKlJ8MCkrMjQ+PjNdPUssYVtmKyg3MipSfDApKzQ4Pj4yXT1ELGFbZisoNzIqUnwwKSs1Mj4+Ml09MCxhW2YrKDcyKkR8MCkrNDA+PjJdPVIsYVtmKyg3MipEfDApKzQ0Pj4yXT0wLCgwfChrPTB8YVtmKyg3MipEfDApKzQ4Pj4yXSkpPjAmJigoMHxh''@;'; + put 'put ''WyhNPWYrKDcyKmt8MCkrNDB8MCk+PjJdKT09KDB8UikmJihhW00+PjJdPUQpLCgwfGFbKGs9ZisoNzIqa3wwKSs0NHwwKT4+Ml0pPT0oMHxSKSYmKGFbaz4+Ml09RCkpLCgwfChrPTB8YVtmKyg3MipEfDApKzUyPj4yXSkpPjAmJigoMHxhWyhNPWYrKDcyKmt8MCkrNDB8MCk+PjJdKT09KDB8''@;'; + put 'put ''UikmJihhW00+PjJdPUQpLCgwfGFbKGs9ZisoNzIqa3wwKSs0NHwwKT4+Ml0pPT0oMHxSKSYmKGFbaz4+Ml09RCkpLG90PTB8d2YoKSxrdD0wfHdmKCksYVtwKyg0MCooV2U9MHxhWyhTdD1mKyg3MipSfDApKzU2fDApPj4yXSl8MCk+PjJdPTIsYVsobnQ9cCsoNDAqV2V8MCkrOHwwKT4+Ml09''@;'; + put 'put ''YVtMcj4+Ml0sYVtudCs0Pj4yXT1hW0xyKzQ+PjJdLGFbbnQrOD4+Ml09YVtMcis4Pj4yXSxhW250KzEyPj4yXT1hW0xyKzEyPj4yXSxhW3ArKDQwKldlfDApKzQ+PjJdPWwsYVtwKyg0MCpXZXwwKSszMj4+Ml09a3QsYVtwKyg0MCpXZXwwKSszNj4+Ml09b3QsYVtwKyg0MCpvdHwwKT4+Ml09''@;'; + put 'put ''MyxhW3ArKDQwKm90fDApKzI0Pj4yXT1SLGFbcCsoNDAqb3R8MCkrMjg+PjJdPVdlLGFbcCsoNDAqa3R8MCk+PjJdPTMsYVtwKyg0MCprdHwwKSsyND4+Ml09RCxhW3ArKDQwKmt0fDApKzI4Pj4yXT1XZSxhW1N0Pj4yXT1vdCxhW2YrKDcyKkR8MCkrNTY+PjJdPWt0LGt0PW0sbT0wfWVsc2Ug''@;'; + put 'put ''MzI9PSgwfGx0KSYmKGt0PW0sUj0wfEg0KExyLERyLDB8YVtEcis0MD4+Ml0sYyxwKSxtPTEpO2U6ZG97aWYoKDB8a3QpPjApe290PWYrKDcyKlJ8MCkrMjR8MCxTdD1mKyg3MipSfDApKzMyfDAsV2U9MCE9KDB8bSksVmU9QT9jKyg1NipsfDApKzQ4fDA6YysoNTYqbHwwKSs0NHwwLHFlPUpy''@;'; + put 'put ''Kzh8MCxBPTAsbT0wLEhlPWt0O3Q6Zm9yKDs7KXtpZihrPWYrKDcyKkhlfDApfDAsISgwfE1FKExlPWYrKDcyKkhlfDApKzI0fDAsb3QpKSlicmVhayBlO09lPTB8YVsoTT1mKyg3MipIZXwwKSs1NnwwKT4+Ml0sRD0wfHdmKCksRz0wfHdmKCksYVtwKyg0MCpPZXwwKT4+Ml09MSxhW3ArKDQw''@;'; + put 'put ''Kk9lfDApKzQ+PjJdPWwsYVtwKyg0MCpPZXwwKSszMj4+Ml09RCxhW3ArKDQwKk9lfDApKzM2Pj4yXT1HLGFbcCsoNDAqRHwwKT4+Ml09MyxhW3ArKDQwKkR8MCkrMjQ+PjJdPUhlLGFbcCsoNDAqRHwwKSsyOD4+Ml09T2UsYVtwKyg0MCpHfDApPj4yXT0zLFJlPTB8dzYoZiksYVtwKyg0MCpH''@;'; + put 'put ''fDApKzI0Pj4yXT1SZSxudD1mKyg3MipSZXwwKXwwLGFbZisoNzIqUmV8MCkrNjg+PjJdPTEsYVtwKyg0MCpHfDApKzI4Pj4yXT1PZSxBPSgwfEhlKT09KDB8a3QpP1JlOkEsK2VvKCsoK19bKE9lPWYrKDcyKkhlfDApKzMyfDApPj4zXS0rX1tTdD4+M10pKTw9MWUtNyYmK2VvKCsoK19bTGU+''@;'; + put 'put ''PjNdLStfW290Pj4zXSkpPD0xZS03JiYobT1SZSkscGU9KGdlPW50KSs3MnwwO2Rve2FbZ2U+PjJdPWFbaz4+Ml0sZ2U9Z2UrNHwwLGs9ays0fDB9d2hpbGUoKDB8Z2UpPCgwfHBlKSk7YVtNPj4yXT1ELGFbZisoNzIqUmV8MCkrNTY+PjJdPUcsYmU9ZisoNzIqSGV8MCkrNDh8MCxrPSgwfGFb''@;'; + put 'put ''KE09ZisoNzIqSGV8MCkrNTJ8MCk+PjJdKTwxO2Rve2lmKCgwfGFbYmU+PjJdKTwxKXtpZihrKWJyZWFrIHQ7az0wfGFbKGdlPWYrKDcyKkhlfDApKzQwfDApPj4yXTtkb3tpZigoMHxrKT4wJiYoMHwoSG49MHxhWyhTbj1mKyg3MipIZXwwKSs0NHwwKT4+Ml0pKT4wKXtpZigoMHwoaz0wfGFb''@;'; + put 'put ''KHBlPWYrKDcyKkhlfDApKzYwfDApPj4yXSkpPD0wKXthW2YrKDcyKlJlfDApKzQwPj4yXT1IbixhW2YrKDcyKlJlfDApKzQ0Pj4yXT0tMSxhW1NuPj4yXT0tMSxhW2YrKDcyKkhufDApKzQ4Pj4yXT1SZTticmVha30xPT0oMHxhW2YrKDcyKkhlfDApKzY0Pj4yXSk/KGFbZisoNzIqUmV8MCkr''@;'; + put 'put ''NDA+PjJdPUhuLGFbU24+PjJdPS0xLGFbZisoNzIqUmV8MCkrNDQ+PjJdPWssYVtmKyg3MiooMHxhW2dlPj4yXSl8MCkrNDg+PjJdPUhlLEc9UmUsRD1Ibik6KGFbZisoNzIqUmV8MCkrNDQ+PjJdPS0xLGFbKGJlPWYrKDcyKlJlfDApKzQwfDApPj4yXT1hW1NuPj4yXSxhW1NuPj4yXT1EPTB8''@;'; + put 'put ''YVtnZT4+Ml0sYVtnZT4+Ml09ayxhW2YrKDcyKmt8MCkrNDg+PjJdPUhlLEc9SGUsaz0wfGFbYmU+PjJdKSxhW2YrKDcyKkR8MCkrNDg+PjJdPUcsYVtmKyg3MiprfDApKzQ4Pj4yXT1SZSxhW2YrKDcyKlJlfDApKzYwPj4yXT0wLGFbcGU+PjJdPTB9ZWxzZSBsdD03N313aGlsZSgwKTtkb3tp''@;'; + put 'put ''Zig3Nz09KDB8bHQpKXtpZihsdD0wLEQ9ZisoNzIqa3wwKSs0OHwwLGs9ZisoNzIqa3wwKSs1MnwwLCgwfChHPTB8YVtEPj4yXSkpPjAmJigwfGFbaz4+Ml0pPjApe2lmKCgwfChrPTB8YVtmKyg3MipHfDApKzQ+PjJdKSk+MCYmMD09KDB8eTYoayxjLExyKSkpe2FbZisoNzIqUmV8MCkrNDQ+''@;'; + put 'put ''PjJdPS0xLGFbZisoNzIqSGV8MCkrNDQ+PjJdPS0xLGFbZ2U+PjJdPS0xLGFbZisoNzIqKDB8YVtmKyg3MipSZXwwKSs0MD4+Ml0pfDApKzUyPj4yXT1SZTticmVha31hW2YrKDcyKkhlfDApKzQ0Pj4yXT0tMSxhW2YrKDcyKlJlfDApKzQ0Pj4yXT0tMSxhW2YrKDcyKlJlfDApKzQwPj4yXT0t''@;'; + put 'put ''MSxhW2YrKDcyKigwfGFbZ2U+PjJdKXwwKSs0OD4+Ml09SGU7YnJlYWt9YVtEPj4yXT1IZSxhW2s+PjJdPVJlfX13aGlsZSgwKTtpZigrZW8oKygrX1tPZT4+M10tK19bU3Q+PjNdKSk8PTFlLTcmJldlJitlbygrKCtfW0xlPj4zXS0rX1tvdD4+M10pKTw9MWUtNyl7KDB8KGs9MHxhW1ZlPj4y''@;'; + put 'put ''XSkpPjAmJjAhPSgwfHk2KGssYyxEcikpPyhhW2YrKDcyKigwfGFbTT4+Ml0pfDApKzQwPj4yXT1IZSxEPWYrKDcyKlJlfDApKzUyfDAsaz1SZSk6KGFbZisoNzIqKDB8YVtmKyg3MipSZXwwKSs1Mj4+Ml0pfDApKzQ0Pj4yXT1SZSxEPU0saz1IZSksYVtEPj4yXT0tMSxhW2YrKDcyKmt8MCkr''@;'; + put 'put ''NDg+PjJdPS0xLGs9MHxhW00+PjJdO2JyZWFrfUc9ZisoNzIqKGs9MHxhW00+PjJdKXwwKSs0NHwwLCgwfChEPTB8YVsoTT1mKyg3MiprfDApKzQwfDApPj4yXSkpPjAmJihIcj0oMHxEKT09KDB8SGUpLCgwfCh1cj0wfGFbRz4+Ml0pKT4wKSYmKGFbZisoNzIqa3wwKSs2MD4+Ml09SHI/dXI6''@;'; + put 'put ''RCxhW2YrKDcyKmt8MCkrNjQ+PjJdPUhyPzE6MiksYVtNPj4yXT1IZSxhW0c+PjJdPVJlfWVsc2V7aWYoIWspeytlbygrKEs9KHc9K19bT2U+PjNdKS0oYj0rX1tFdD4+M10pKSk8PTFlLTc/Z2U9K19bTGU+PjNdPitfW0RyPj4zXTooX1txZT4+M109dyxfW0pyPj4zXT1LLygrX1tsMD4+M10t''@;'; + put 'put ''YikqKCtfW0xyPj4zXS0odz0rX1tEcj4+M10pKSt3LGdlPTAhPSgwfHJHKEpyLExlKSkpLGs9MHxhWyhwZT1mKyg3MipIZXwwKSs0MHwwKT4+Ml07ZG97aWYoKDB8ayk+MCYmKDB8KGZyPTB8YVsoRXI9ZisoNzIqSGV8MCkrNDR8MCk+PjJdKSk+MCl7aWYoKDB8KGs9MHxhWyhHPWYrKDcyKkhl''@;'; + put 'put ''fDApKzYwfDApPj4yXSkpPD0wKXthW2YrKDcyKlJlfDApKzQwPj4yXT1mcixhW2YrKDcyKlJlfDApKzQ0Pj4yXT0tMSxhW0VyPj4yXT0tMSxhW2YrKDcyKmZyfDApKzQ4Pj4yXT1SZTticmVha30xPT0oMHxhW2YrKDcyKkhlfDApKzY0Pj4yXSk/KGFbZisoNzIqUmV8MCkrNDA+PjJdPWZyLGFb''@;'; + put 'put ''RXI+PjJdPS0xLGFbZisoNzIqUmV8MCkrNDQ+PjJdPWssYVtmKyg3MiooMHxhW3BlPj4yXSl8MCkrNDg+PjJdPUhlLEQ9UmUsTT1mcik6KGFbZisoNzIqUmV8MCkrNDQ+PjJdPS0xLGFbKE9pPWYrKDcyKlJlfDApKzQwfDApPj4yXT1hW0VyPj4yXSxhW0VyPj4yXT1NPTB8YVtwZT4+Ml0sYVtw''@;'; + put 'put ''ZT4+Ml09ayxhW2YrKDcyKmt8MCkrNDg+PjJdPUhlLEQ9SGUsaz0wfGFbT2k+PjJdKSxhW2YrKDcyKk18MCkrNDg+PjJdPUQsYVtmKyg3MiprfDApKzQ4Pj4yXT1SZSxhW2YrKDcyKlJlfDApKzYwPj4yXT0wLGFbRz4+Ml09MH1lbHNlIGx0PTEwNn13aGlsZSgwKTtkb3tpZigxMDY9PSgwfGx0''@;'; + put 'put ''KSl7aWYobHQ9MCxNPWYrKDcyKmt8MCkrNDh8MCxrPWYrKDcyKmt8MCkrNTJ8MCwoMHwoRD0wfGFbTT4+Ml0pKT4wJiYoMHxhW2s+PjJdKT4wKXtpZigoMHwoaz0wfGFbZisoNzIqRHwwKSs0Pj4yXSkpPjAmJjA9PSgwfHk2KGssYyxMcikpKXthW2YrKDcyKlJlfDApKzQ0Pj4yXT0tMSxhW2Yr''@;'; + put 'put ''KDcyKkhlfDApKzQ0Pj4yXT0tMSxhW3BlPj4yXT0tMSxhW2YrKDcyKigwfGFbZisoNzIqUmV8MCkrNDA+PjJdKXwwKSs1Mj4+Ml09UmU7YnJlYWt9YVtmKyg3MipIZXwwKSs0ND4+Ml09LTEsYVtmKyg3MipSZXwwKSs0ND4+Ml09LTEsYVtmKyg3MipSZXwwKSs0MD4+Ml09LTEsYVtmKyg3Mioo''@;'; + put 'put ''MHxhW3BlPj4yXSl8MCkrNDg+PjJdPUhlO2JyZWFrfWFbTT4+Ml09SGUsYVtrPj4yXT1SZX19d2hpbGUoMCk7K2VvKCsoK19bT2U+PjNdLStfW1N0Pj4zXSkpPD0xZS03JiZXZSYrZW8oKygrX1tMZT4+M10tK19bb3Q+PjNdKSk8PTFlLTc/KGFbZisoNzIqKGs9MHxhW2JlPj4yXSl8MCkrNDA+''@;'; + put 'put ''PjJdPUhlLGFbZisoNzIqa3wwKSs0ND4+Ml09LTEsYVtmKyg3MiooT2k9MHxhWyhrPWYrKDcyKkhlfDApKzUyfDApPj4yXSl8MCkrNDA+PjJdPVJlLGFbZisoNzIqT2l8MCkrNDQ+PjJdPS0xLGFbZisoNzIqUmV8MCkrNDg+PjJdPU9pLGFbZisoNzIqUmV8MCkrNTI+PjJdPS0xLGFbaz4+Ml09''@;'; + put 'put ''LTEsaz0tMSk6bHQ9MTE2O2Rve2lmKDExNj09KDB8bHQpKXtpZihsdD0wLGFbZisoNzIqKGs9MHxhW2JlPj4yXSl8MCkrNDA+PjJdPUhlLE09ZisoNzIqa3wwKSs0NHwwLGdlKXthW00+PjJdPVJlLGFbZisoNzIqKExlPTB8YVsoT2k9ZisoNzIqSGV8MCkrNTJ8MCk+PjJdKXwwKSs0MD4+Ml09''@;'; + put 'put ''UmUsYVtmKyg3MipMZXwwKSs0ND4+Ml09LTEsYVtPaT4+Ml09LTE7YnJlYWt9YVtNPj4yXT0tMSxhW2YrKDcyKihPaT0wfGFbKGs9ZisoNzIqSGV8MCkrNTJ8MCk+PjJdKXwwKSs0MD4+Ml09SGUsYVtmKyg3MipPaXwwKSs0ND4+Ml09UmUsYVtmKyg3MipSZXwwKSs0OD4+Ml09T2ksYVtmKyg3''@;'; + put 'put ''MipSZXwwKSs1Mj4+Ml09LTEsaz0wfGFbaz4+Ml07YnJlYWt9fXdoaWxlKDApO2JyZWFrfWs9MHxhWyhnZT1mKyg3MipIZXwwKSs0MHwwKT4+Ml07ZG97aWYoKDB8ayk+MCYmKDB8KGN0PTB8YVsoWnQ9ZisoNzIqSGV8MCkrNDR8MCk+PjJdKSk+MCl7aWYoKDB8KGs9MHxhWyhwZT1mKyg3MipI''@;'; + put 'put ''ZXwwKSs2MHwwKT4+Ml0pKTw9MCl7YVtmKyg3MipSZXwwKSs0MD4+Ml09Y3QsYVtmKyg3MipSZXwwKSs0ND4+Ml09LTEsYVtadD4+Ml09LTEsYVtmKyg3MipjdHwwKSs0OD4+Ml09UmU7YnJlYWt9MT09KDB8YVtmKyg3MipIZXwwKSs2ND4+Ml0pPyhhW2YrKDcyKlJlfDApKzQwPj4yXT1jdCxh''@;'; + put 'put ''W1p0Pj4yXT0tMSxhW2YrKDcyKlJlfDApKzQ0Pj4yXT1rLGFbZisoNzIqKDB8YVtnZT4+Ml0pfDApKzQ4Pj4yXT1IZSxHPVJlLEQ9Y3QpOihhW2YrKDcyKlJlfDApKzQ0Pj4yXT0tMSxhWyhPaT1mKyg3MipSZXwwKSs0MHwwKT4+Ml09YVtadD4+Ml0sYVtadD4+Ml09RD0wfGFbZ2U+PjJdLGFb''@;'; + put 'put ''Z2U+PjJdPWssYVtmKyg3MiprfDApKzQ4Pj4yXT1IZSxHPUhlLGs9MHxhW09pPj4yXSksYVtmKyg3MipEfDApKzQ4Pj4yXT1HLGFbZisoNzIqa3wwKSs0OD4+Ml09UmUsYVtmKyg3MipSZXwwKSs2MD4+Ml09MCxhW3BlPj4yXT0wfWVsc2UgbHQ9NTF9d2hpbGUoMCk7ZG97aWYoNTE9PSgwfGx0''@;'; + put 'put ''KSl7aWYobHQ9MCxEPWYrKDcyKmt8MCkrNDh8MCxrPWYrKDcyKmt8MCkrNTJ8MCwoMHwoRz0wfGFbRD4+Ml0pKT4wJiYoMHxhW2s+PjJdKT4wKXtpZigoMHwoaz0wfGFbZisoNzIqR3wwKSs0Pj4yXSkpPjAmJjA9PSgwfHk2KGssYyxMcikpKXthW2YrKDcyKlJlfDApKzQ0Pj4yXT0tMSxhW2Yr''@;'; + put 'put ''KDcyKkhlfDApKzQ0Pj4yXT0tMSxhW2dlPj4yXT0tMSxhW2YrKDcyKigwfGFbZisoNzIqUmV8MCkrNDA+PjJdKXwwKSs1Mj4+Ml09UmU7YnJlYWt9YVtmKyg3MipIZXwwKSs0ND4+Ml09LTEsYVtmKyg3MipSZXwwKSs0ND4+Ml09LTEsYVtmKyg3MipSZXwwKSs0MD4+Ml09LTEsYVtmKyg3Mioo''@;'; + put 'put ''MHxhW2dlPj4yXSl8MCkrNDg+PjJdPUhlO2JyZWFrfWFbRD4+Ml09SGUsYVtrPj4yXT1SZX19d2hpbGUoMCk7aWYoK2VvKCsoK19bT2U+PjNdLStfW1N0Pj4zXSkpPD0xZS03JiZXZSYrZW8oKygrX1tMZT4+M10tK19bb3Q+PjNdKSk8PTFlLTcpeygwfChrPTB8YVtWZT4+Ml0pKT4wJiYwIT0o''@;'; + put 'put ''MHx5NihrLGMsRHIpKT8oYVtmKyg3MiooMHxhW2JlPj4yXSl8MCkrNDA+PjJdPUhlLE09ZisoNzIqUmV8MCkrNTJ8MCxrPVJlKTooYVtmKyg3MiooMHxhW2YrKDcyKlJlfDApKzQ4Pj4yXSl8MCkrNDQ+PjJdPVJlLGs9SGUpLGFbTT4+Ml09LTEsYVtmKyg3MiprfDApKzQ4Pj4yXT0tMSxrPTB8''@;'; + put 'put ''YVtiZT4+Ml07YnJlYWt9Rz1mKyg3Miooaz0wfGFbYmU+PjJdKXwwKSs0NHwwLCgwfChEPTB8YVsoTT1mKyg3MiprfDApKzQwfDApPj4yXSkpPjAmJihhbj0oMHxEKT09KDB8SGUpLCgwfChidD0wfGFbRz4+Ml0pKT4wKSYmKGFbZisoNzIqa3wwKSs2MD4+Ml09YW4/YnQ6RCxhW2YrKDcyKmt8''@;'; + put 'put ''MCkrNjQ+PjJdPWFuPzE6MiksYVtNPj4yXT1IZSxhW0c+PjJdPVJlfX13aGlsZSgwKTtpZihhW250Pj4yXT1sLGFbZisoNzIqSGV8MCkrND4+Ml09bCwhKCgwfGspPjApKWJyZWFrIGU7SGU9a31DdSgxMzg0MjQsMTksMSwwfGFbMTU3MTJdKX1lbHNlIEE9MCxtPTB9d2hpbGUoMCk7UGIobCxr''@;'; + put 'put ''dCxSLDEsZixwKSxQYihsLEEsbSwyLGYscCksYVtjKyg1NipsfDApKzMyPj4yXT0xLGFlPVZpfWZ1bmN0aW9uIEJiKGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTA7MHxhWyhjfD0wKSsoNTYqKGx8PTApfDApKzMyPj4yXXx8KGFbKHc9YysoNTYqbHwwKSszNnwwKT4+Ml09YVtm''@;'; + put 'put ''Kyg3MiooMHxINChtPWMrKDU2Kmx8MCl8MCxBPWMrKDU2Kmx8MCkrMTZ8MCwwfGFbdz4+Ml0sYyxwKSl8MCkrNTY+PjJdLGFbKGw9YysoNTYqbHwwKSs0MHwwKT4+Ml09YVtmKyg3MiooMHxINChBLG0sMHxhW2w+PjJdLGMscCkpfDApKzU2Pj4yXSl9ZnVuY3Rpb24gSDQobCxjLGYscCxtKXtm''@;'; + put 'put ''fD0wLHB8PTAsbXw9MDt2YXIgRyxwZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsSz0wLGdlPTA7Rz04KyhsfD0wKXwwLHBlPTgrKGN8PTApfDA7ZTpmb3IoOzspe3Q6ZG97c3dpdGNoKDB8YVttKyg0MCpmfDApPj4yXSl7Y2FzZSAzOmdlPTM7YnJlYWsgZTtjYXNlIDI6QT0rX1tHPj4z''@;'; + put 'put ''XSx3PW0rKDQwKmZ8MCkrOHwwLGs9MWUtNysoYj0rX1ttKyg0MCpmfDApKzE2Pj4zXSk7ZG97aWYoIShBPmspKXtpZighKEE8KE09YistMWUtNykpJiYrX1tsPj4zXT4rX1t3Pj4zXSlicmVhaztpZigrZW8oKyhBLWIpKTw9MWUtNyYmK2VvKCsoK19bbD4+M10tKEQ9K19bdz4+M10pKSk8PTFl''@;'; + put 'put ''LTcpe0E9K19bcGU+PjNdO2Rve2lmKCEoQT5rKSl7aWYoIShBPE0pJiYrX1tjPj4zXT5EKWJyZWFrO2Y9bSsoNDAqZnwwKSszMnwwO2JyZWFrIHR9fXdoaWxlKDApO2Y9bSsoNDAqZnwwKSszNnwwO2JyZWFrIHR9Zj1tKyg0MCpmfDApKzMyfDA7YnJlYWsgdH19d2hpbGUoMCk7Zj1tKyg0MCpm''@;'; + put 'put ''fDApKzM2fDA7YnJlYWs7Y2FzZSAxOitlbygrKChBPStfW0c+PjNdKS0rX1twKyg1Nioodz0wfGFbbSsoNDAqZnwwKSs0Pj4yXSl8MCkrOD4+M10pKTw9MWUtNyYmK2VvKCsoKFI9K19bbD4+M10pLStfW3ArKDU2Knd8MCk+PjNdKSk8PTFlLTc/Yj1SOmdlPTE5O2Rve2lmKDE5PT0oMHxnZSkp''@;'; + put 'put ''e2lmKGdlPTAsK2VvKCsoQS0rX1twKyg1Nip3fDApKzI0Pj4zXSkpPD0xZS03JiYrZW8oKygoSz0rX1tsPj4zXSktK19bcCsoNTYqd3wwKSsxNj4+M10pKTw9MWUtNyl7Yj1LO2JyZWFrfWlmKDB8eTYodyxwLGwpKXtmPW0rKDQwKmZ8MCkrMzJ8MDticmVhayB0fWY9bSsoNDAqZnwwKSszNnww''@;'; + put 'put ''O2JyZWFrIHR9fXdoaWxlKDApO2lmKCtlbygrKEEtK19bcGU+PjNdKSk8PTFlLTcpe2lmKCtfW2M+PjNdPGIpe2Y9bSsoNDAqZnwwKSszMnwwO2JyZWFrIHR9Zj1tKyg0MCpmfDApKzM2fDA7YnJlYWsgdH1pZigwfHk2KHcscCxjKSl7Zj1tKyg0MCpmfDApKzMyfDA7YnJlYWsgdH1mPW0rKDQw''@;'; + put 'put ''KmZ8MCkrMzZ8MDticmVhayB0O2RlZmF1bHQ6Z2U9MzE7YnJlYWsgZX19d2hpbGUoMCk7Zj0wfGFbZj4+Ml19cmV0dXJuIDM9PSgwfGdlKT8wfGFbbSsoNDAqZnwwKSsyND4+Ml06KDMxPT0oMHxnZSkmJihDdSgxMzgzNTgsMzUsMSwwfGFbMTU3MTJdKSxQcigxMzgzOTQsMTM4Mzk2LDM0OSwx''@;'; + put 'put ''Mzg0MDgpKSwwKX1mdW5jdGlvbiB5NihsLGMsZil7Znw9MDt2YXIgbSxBLHcsYixwPTAsaz0wLE09MDtBPShjfD0wKSsoNTYqKGx8PTApfDApKzE2fDAsdz0rX1tjKyg1NipsfDApKzI0Pj4zXSxiPWMrKDU2Kmx8MCl8MCxtPStfW2MrKDU2Kmx8MCkrOD4+M107ZG97aWYoISh3Pm0rMWUtNykp''@;'; + put 'put ''e2lmKCEodzxtKy0xZS03KSYmK19bQT4+M10+K19bYj4+M10pe2s9NDticmVha31pZigrZW8oKyh3LShwPStfW2YrOD4+M10pKSk8PTFlLTcpe3A9K19bZj4+M108K19bQT4+M10/MTotMTticmVha31pZigrZW8oKyhtLXApKTw9MWUtNyl7cD0rX1tmPj4zXTwrX1tiPj4zXT8xOi0xO2JyZWFr''@;'; + put 'put ''fXA9KCtfW2I+PjNdLShNPStfW0E+PjNdKSkqKHAtdyktKCtfW2Y+PjNdLU0pKihtLXcpO2JyZWFrfWs9NH13aGlsZSgwKTtkb3tpZig0PT0oMHxrKSl7aWYoK2VvKCsody0ocD0rX1tmKzg+PjNdKSkpPD0xZS03KXtwPStfW2Y+PjNdPCtfW0E+PjNdPzE6LTE7YnJlYWt9aWYoK2VvKCsobS1w''@;'; + put 'put ''KSk8PTFlLTcpe3A9K19bZj4+M108K19bYj4+M10/MTotMTticmVha31wPSgrX1tBPj4zXS0oTT0rX1tiPj4zXSkpKihwLW0pLSgrX1tmPj4zXS1NKSoody1tKTticmVha319d2hpbGUoMCk7cmV0dXJuIHA+MHwwfWZ1bmN0aW9uIHQ1KGwsYyxmKXtyZXR1cm4gbHw9MCwwfGFbKGN8PTApKyg1''@;'; + put 'put ''NiooMHxhWygxPT0oMHwoZnw9MCkpP2MrKDU2Kmx8MCkrNDh8MDpjKyg1NipsfDApKzQ0fDApPj4yXSl8MCkrMzI+PjJdfWZ1bmN0aW9uIHc2KGwpe2x8PTA7dmFyIGMsZixwPTA7cmV0dXJuIHA9YWUsYWU9YWUrMTZ8MCxmPXAsKDB8KGM9MHxhWzQ3Mzk1XSkpPCgwfGFbNDczOTRdKT8oYVts''@;'; + put 'put ''Kyg3MipjfDApPj4yXT0tMSxhW2wrKDcyKmN8MCkrND4+Ml09LTEsYVtsKyg3MipjfDApKzY4Pj4yXT0xLGFbNDczOTVdPWMrMSxhZT1wLDB8Yyk6KHA9MHxhWzE1NzEyXSxhW2Y+PjJdPWMsVDAocCwxMzg0ODMsZiksUHIoMTM4Mzk0LDEzODM5Niw4OCwxMzg1MjEpLDApfWZ1bmN0aW9uIHdm''@;'; + put 'put ''KCl7dmFyIGw7cmV0dXJuKDB8KGw9MHxhWzQ3Mzk2XSkpPCgwfGFbNDczOTNdKT8oYVs0NzM5Nl09bCsxLDB8bCk6KEN1KDEzODQ0NCwzMCwxLDB8YVsxNTcxMl0pLFByKDEzODM5NCwxMzgzOTYsNzIsMTM4NDc1KSwwKX1mdW5jdGlvbiBNRShsLGMpe3ZhciBmLHA7cmV0dXJuIDB8KChmPStf''@;'; + put 'put ''WzgrKGx8PTApPj4zXSk+MWUtNysocD0rX1s4KyhjfD0wKT4+M10pPzE6ZjxwKy0xZS03PzA6K19bbD4+M10+PStfW2M+PjNdJjEpfWZ1bmN0aW9uIHJHKGwsYyl7dmFyIGYscDtyZXR1cm4gMHwoKGY9K19bOCsobHw9MCk+PjNdKTwocD0rX1s4KyhjfD0wKT4+M10pLTFlLTc/MTpmPnArMWUt''@;'; + put 'put ''Nz8wOitfW2w+PjNdPCtfW2M+PjNdJjEpfWZ1bmN0aW9uIFBiKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsQXw9MDt2YXIgcGUsZ2Usdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxiZT0wO2dlPShtfD0wKSsoNzIqKGZ8PTApfDApKzI0fDAscGU9MT09KDB8KHB8PTApKTtlOmZvcig7''@;'; + put 'put ''Sz1tKyg3MipjfDApKzI0fDAsaz1tKyg3MipjfDApKzQ4fDAsTT1tKyg3MipjfDApKzUyfDAsRD1tKyg3MipjfDApfDAsUj1tKyg3MipjfDApKzR8MCxHPW0rKDcyKmN8MCkrNTZ8MCwhKCgwfGMpPD0wKTspZm9yKDs7KXtpZighKDB8TUUoSyxnZSkpKWJyZWFrIGU7cD0oMHwoZj0wfGFbaz4+''@;'; + put 'put ''Ml0pKT4wO2Rve2lmKHBlKXtpZihwJiYoMHxhW20rKDcyKmZ8MCkrND4+Ml0pPT0oMHxsKSlicmVhaztpZigoMHwoZj0wfGFbTT4+Ml0pKTw9MCl7Yz1mO2NvbnRpbnVlIGV9aWYoKDB8YVttKyg3MipmfDApKzQ+PjJdKSE9KDB8bCkpe2M9Zjtjb250aW51ZSBlfX1lbHNle2lmKHAmJigwfGFb''@;'; + put 'put ''bSsoNzIqZnwwKT4+Ml0pPT0oMHxsKSlicmVhaztpZigoMHwoZj0wfGFbTT4+Ml0pKTw9MCl7Yz1mO2NvbnRpbnVlIGV9aWYoKDB8YVttKyg3MipmfDApPj4yXSkhPSgwfGwpKXtjPWY7Y29udGludWUgZX19fXdoaWxlKDApO2lmKCgwfGFbRD4+Ml0pIT0oMHxhW20rKDcyKmZ8MCk+PjJdKSl7''@;'; + put 'put ''Yz1mO2NvbnRpbnVlIGV9aWYoKDB8YVtSPj4yXSkhPSgwfGFbbSsoNzIqZnwwKSs0Pj4yXSkpe2M9Zjtjb250aW51ZSBlfWI9MHxhW0c+PjJdLCgwfGFbKHc9QSsoNDAqKHA9MHxhW0ErKDQwKihiZT0wfGFbbSsoNzIqZnwwKSs1Nj4+Ml0pfDApKzI4Pj4yXSl8MCkrMzJ8MCk+PjJdKT09KDB8''@;'; + put 'put ''YmUpP2Fbdz4+Ml09YjphW0ErKDQwKnB8MCkrMzY+PjJdPWIsYVtrPj4yXT1wPTB8YVttKyg3MipmfDApKzQ4Pj4yXTtkb3tpZigoMHxwKT4wKXtpZigoMHxhWyh3PW0rKDcyKnB8MCkrNDB8MCk+PjJdKT09KDB8Zikpe2Fbdz4+Ml09YzticmVha30oMHxhWyhwPW0rKDcyKnB8MCkrNDR8MCk+''@;'; + put 'put ''PjJdKT09KDB8ZikmJihhW3A+PjJdPWMpfX13aGlsZSgwKTthW00+PjJdPXA9MHxhW20rKDcyKmZ8MCkrNTI+PjJdO2Rve2lmKCgwfHApPjApe2lmKCgwfGFbKHc9bSsoNzIqcHwwKSs0MHwwKT4+Ml0pPT0oMHxmKSl7YVt3Pj4yXT1jO2JyZWFrfSgwfGFbKHA9bSsoNzIqcHwwKSs0NHwwKT4+''@;'; + put 'put ''Ml0pPT0oMHxmKSYmKGFbcD4+Ml09Yyl9fXdoaWxlKDApO2FbSz4+Ml09YVsoYmU9bSsoNzIqZnwwKSsyNHwwKT4+Ml0sYVtLKzQ+PjJdPWFbYmUrND4+Ml0sYVtLKzg+PjJdPWFbYmUrOD4+Ml0sYVtLKzEyPj4yXT1hW2JlKzEyPj4yXSxhW20rKDcyKmZ8MCkrNjg+PjJdPTJ9fWZ1bmN0aW9u''@;'; + put 'put ''IHhFKGwsYyl7cmV0dXJuIGx8PTAsKGN8PTApJiYoYz0wfGZ1bmN0aW9uIEZiKGwpe3ZhciBjO3JldHVybiBsfD0wLDB8KGM9MHx2cig4KSkmJihhW2MrND4+Ml09bCxhW2M+PjJdPTApLDB8Y30oYyksYVtjPj4yXT1sLGw9YyksMHxsfWZ1bmN0aW9uIEhiKCl7dmFyIGw7cmV0dXJuIDB8KGw9''@;'; + put 'put ''MHx2cigxOTkyKSkmJihhW2w+PjJdPTB8ZnVuY3Rpb24gb0IobCl7dmFyIGM7cmV0dXJuIGM9MHx6dihsfD0wKSxhW2MrND4+Ml09MCxhWyhsPWwrMTk3MnwwKT4+Ml09MSsoMHxhW2w+PjJdKSwwfGN9KGwpKSwwfGx9ZnVuY3Rpb24gTmIobCl7cmV0dXJuIFZiKGx8PTAsMHxhW2w+PjJdKSxG''@;'; + put 'put ''dCgwfGFbbD4+Ml0pLEZ0KGwpLDB9ZnVuY3Rpb24gVmIobCxjKXtjfD0wO3ZhciBBLHcsYixmPTAscD0wLG09MDtBPTE5ODArKGx8PTApfDAsdz1sKzE5MTJ8MCxiPWwrMTkzNnwwO2U6ZG97aWYoKDB8YVtjKzQ+PjJdKT4wKWZvcihmPTA7Oyl7aWYoNjQ9PSgwfGYpKWJyZWFrIGU7MHwobT0w''@;'; + put 'put ''fGFbKHA9Yys4KygyMCpmfDApKzE2fDApPj4yXSkmJihWYihsLG0pLEZ0KDB8YVtwPj4yXSksemIoYyxmKSxhW0E+PjJdPSgwfGFbQT4+Ml0pLTEsMHxhW3c+PjJdKSYmKGFbYj4+Ml09MSsoMHxhW2I+PjJdKSksZj1mKzF8MH1lbHNlIGZvcihmPTA7Oyl7aWYoNjQ9PSgwfGYpKWJyZWFrIGU7''@;'; + put 'put ''MHxhW2MrOCsoMjAqZnwwKSsxNj4+Ml0mJih6YihjLGYpLGFbQT4+Ml09KDB8YVtBPj4yXSktMSwwfGFbdz4+Ml0pJiYoYVtiPj4yXT0xKygwfGFbYj4+Ml0pKSxmPWYrMXwwfX13aGlsZSgwKX1mdW5jdGlvbiBONChsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wOyhj''@;'; + put 'put ''fD0wKXx8UHIoMTM4ODc5LDEzODUyOSwxOTQsMTM4NTM3KSwoMHwocD0wfGFbYys0Pj4yXSkpPD0tMSYmUHIoMTM4NTQ5LDEzODUyOSwxOTUsMTM4NTM3KSxmfHxQcigxMzg4MjEsMTM4NTI5LDE5NiwxMzg1MzcpLGFbKGI9bCsxOTUyfDApPj4yXT0xKygwfGFbYj4+Ml0pO2U6ZG97aWYoKDB8''@;'; + put 'put ''cCk+MClmb3IoYj0wLHA9MDs7KXtpZig2ND09KDB8YikpYnJlYWsgZTtpZigwIT0oMHxhWyhtPWMrOCsoMjAqYnwwKSsxNnwwKT4+Ml0pJiYwIT0oMHxHYihmLGMrOCsoMjAqYnwwKXwwKSkpaWYoQT0wfE40KGwsMHxhW20+PjJdLGYpLHApe2ZvcihtPXA7dz0wfGFbbT4+Ml07KW09dzthW20+''@;'; + put 'put ''PjJdPUF9ZWxzZSBwPUE7Yj1iKzF8MH1lbHNlIGZvcihBPTAscD0wOzspe2lmKDY0PT0oMHxBKSlicmVhayBlO209Yys4KygyMCpBfDApfDAsMCE9KDB8YVtjKzgrKDIwKkF8MCkrMTY+PjJdKSYmMCE9KDB8R2IoZixtKSkmJihwPTB8eEUocCxtKSksQT1BKzF8MH19d2hpbGUoMCk7cmV0dXJu''@;'; + put 'put ''IDB8cH1mdW5jdGlvbiBqYihsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgTSxELFIsRyxLLEE9MCx3PTAsYj0wLGs9MCxwZT0wO2lmKEs9YWUsYWU9YWUrNjR8MCxEPUsrMzJ8MCxSPUsrMTZ8MCxHPUssYVsoTT1LKzUyfDApPj4yXT0wLDAhPSgwfGMpJjAhPSgwfHAp''@;'; + put 'put ''fHxQcigxMzg3MzUsMTM4NTI5LDI0NywxMzg1NjMpLCgwfG0pPi0xJiYoMHxhWzQrKGs9MHxhW3A+PjJdKT4+Ml0pPj0oMHxtKSl7Zm9yKEE9MDshKCgwfEEpPj0yKTspe2lmKCgwfGFbYysoQTw8Mik+PjJdKT4oMHxhW2MrKEErMjw8Mik+PjJdKSl7dz04O2JyZWFrfUE9QSsxfDB9cmV0dXJu''@;'; + put 'put ''IDg9PSgwfHcpJiZQcigxMzg2MTAsMTM4NTI5LDI1MCwxMzg1NjMpLHc9MHxhWyhBPWwrMTkwOHwwKT4+Ml0sMHxhWyhiPWwrMTkxMnwwKT4+Ml0mJihhWyhwZT0wfHc/bCsxOTI0fDA6bCsxOTE2fDApPj4yXT0xKygwfGFbcGU+PjJdKSksd3x8KGFbKHBlPWwrMTk2NHwwKT4+Ml09MSsoMHxh''@;'; + put 'put ''W3BlPj4yXSkpLDB8WmIobCxjLGYsayxNLG0pPygwfGFbYj4+Ml0mJihhWyhwZT0wfGFbQT4+Ml0/bCsxOTQ4fDA6bCsxOTQ0fDApPj4yXT0xKygwfGFbcGU+PjJdKSksQT0wfHp2KGwpLGFbKHBlPWwrMTk3NnwwKT4+Ml09MSsoMHxhW3BlPj4yXSksYVtBKzQ+PjJdPTErKDB8YVs0KyhwZT0w''@;'; + put 'put ''fGFbcD4+Ml0pPj4yXSksR3YoUixwZSksYVtEPj4yXT1hW1I+PjJdLGFbRCs0Pj4yXT1hW1IrND4+Ml0sYVtEKzg+PjJdPWFbUis4Pj4yXSxhW0QrMTI+PjJdPWFbUisxMj4+Ml0sYVsocGU9RCsxNnwwKT4+Ml09YVtwPj4yXSxiNihsLEQsQSwwKSxHdihHLDB8YVtNPj4yXSksYVtEPj4yXT1h''@;'; + put 'put ''W0c+PjJdLGFbRCs0Pj4yXT1hW0crND4+Ml0sYVtEKzg+PjJdPWFbRys4Pj4yXSxhW0QrMTI+PjJdPWFbRysxMj4+Ml0sYVtwZT4+Ml09YVtNPj4yXSxiNihsLEQsQSwwKSxhW3A+PjJdPUEsYVsoQT1sKzE5ODB8MCk+PjJdPTIrKDB8YVtBPj4yXSksQT0xKTpBPTAsYWU9SywwfEF9cmV0dXJu''@;'; + put 'put ''IFByKDEzODU3NSwxMzg1MjksMjQ4LDEzODU2MyksMH1mdW5jdGlvbiBaYihsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTA7dmFyIE0sRCxSLEcsSyxwZSx3PTAsYj0wLGs9MDtpZihwZT1hZSxhZT1hZSs4MHwwLEQ9cGUrNTJ8MCxHPXBlKzMyfDAsSz1wZSsxNnww''@;'; + put 'put ''LE09cGUsYVsoUj1wZSs0OHwwKT4+Ml09MCwwIT0oMHxjKSYwIT0oMHxwKSYwIT0oMHxtKXx8UHIoMTM4NjUzLDEzODUyOSwzMTEsMTM4NjY3KSwoMHxBKT4tMSYmKDB8KHc9MHxhWyhiPXArNHwwKT4+Ml0pKT49KDB8QSkpezB8YVtsKzE5MTI+PjJdJiYoYVsodz0wfGFbbCsxOTA4Pj4yXT9s''@;'; + put 'put ''KzE5NDh8MDpsKzE5NDR8MCk+PjJdPTErKDB8YVt3Pj4yXSksdz0wfGFbYj4+Ml0pO2Rve2lmKCgwfHcpPigwfEEpKXtpZih3PXArOCsoMjAqKGI9MHxURShjLHApKXwwKSsxNnwwLGI9cCs4KygyMCpifDApfDAsMHxaYihsLGMsZiwwfGFbdz4+Ml0sUixBKSl7R3YoSywwfGFbdz4+Ml0pLGFb''@;'; + put 'put ''Yj4+Ml09YVtLPj4yXSxhW2IrND4+Ml09YVtLKzQ+PjJdLGFbYis4Pj4yXT1hW0srOD4+Ml0sYVtiKzEyPj4yXT1hW0srMTI+PjJdLGFbRCsxNj4+Ml09az0wfGFbUj4+Ml0sR3YoTSxrKSxhW0Q+PjJdPWFbTT4+Ml0sYVtEKzQ+PjJdPWFbTSs0Pj4yXSxhW0QrOD4+Ml09YVtNKzg+PjJdLGFb''@;'; + put 'put ''RCsxMj4+Ml09YVtNKzEyPj4yXSxhWyhrPWwrMTk4MHwwKT4+Ml09MSsoMHxhW2s+PjJdKSxrPTB8YjYobCxELHAsbSk7YnJlYWt9SWgoRyxjLGIpLGFbYj4+Ml09YVtHPj4yXSxhW2IrND4+Ml09YVtHKzQ+PjJdLGFbYis4Pj4yXT1hW0crOD4+Ml0sYVtiKzEyPj4yXT1hW0crMTI+PjJdLGs9''@;'; + put 'put ''MDticmVha31pZigoMHx3KT09KDB8QSkpe2FbRD4+Ml09YVtjPj4yXSxhW0QrND4+Ml09YVtjKzQ+PjJdLGFbRCs4Pj4yXT1hW2MrOD4+Ml0sYVtEKzEyPj4yXT1hW2MrMTI+PjJdLGFbRCsxNj4+Ml09ZixhWyhrPWwrMTk4MHwwKT4+Ml09MSsoMHxhW2s+PjJdKSxrPTB8YjYobCxELHAsbSk7''@;'; + put 'put ''YnJlYWt9UHIoMTM4NzEyLDEzODUyOSwzNDEsMTM4NjY3KX13aGlsZSgwKTtyZXR1cm4gYWU9cGUsMHxrfXJldHVybiBQcigxMzg2ODAsMTM4NTI5LDMxMiwxMzg2NjcpLDB9ZnVuY3Rpb24genYobCl7cmV0dXJuIGFbKGw9MTk2OCsobHw9MCl8MCk+PjJdPTErKDB8YVtsPj4yXSksYUIobD0w''@;'; + put 'put ''fEIwKDEyODgpKSwwfGx9ZnVuY3Rpb24gYUIobCl7dmFyIGM9MDtmb3IoYVsobHw9MCk+PjJdPTAsYVtsKzQ+PjJdPS0xLGM9MDs2NCE9KDB8Yyk7KUNtKGwrOCsoMjAqY3wwKXwwKSxjPWMrMXwwfWZ1bmN0aW9uIENtKGwpe1d2KGx8PTApLGFbbCsxNj4+Ml09MH1mdW5jdGlvbiBHdihsLGMp''@;'; + put 'put ''e2x8PTA7dmFyIEEsdyxiLGY9MCxwPTAsbT0wO2ZvcihiPWFlLGFlPWFlKzMyfDAsQT1iKzE2fDAsdz1iLChjfD0wKXx8UHIoMTM4ODc5LDEzODcxOCw5OSwxMzg3MjUpLFd2KEEpLGY9MSxtPTA7NjQhPSgwfG0pOyl7ZG97aWYoMHxhW2MrOCsoMjAqbXwwKSsxNj4+Ml0pe2lmKHA9Yys4Kygy''@;'; + put 'put ''MCptfDApfDAsZil7YVtBPj4yXT1hW3A+PjJdLGFbQSs0Pj4yXT1hW3ArND4+Ml0sYVtBKzg+PjJdPWFbcCs4Pj4yXSxhW0ErMTI+PjJdPWFbcCsxMj4+Ml0sZj0wO2JyZWFrfUloKHcsQSxwKSxhW0E+PjJdPWFbdz4+Ml0sYVtBKzQ+PjJdPWFbdys0Pj4yXSxhW0ErOD4+Ml09YVt3Kzg+PjJd''@;'; + put 'put ''LGFbQSsxMj4+Ml09YVt3KzEyPj4yXSxmPTA7YnJlYWt9fXdoaWxlKDApO209bSsxfDB9YVtsPj4yXT1hW0E+PjJdLGFbbCs0Pj4yXT1hW0ErND4+Ml0sYVtsKzg+PjJdPWFbQSs4Pj4yXSxhW2wrMTI+PjJdPWFbQSsxMj4+Ml0sYWU9Yn1mdW5jdGlvbiBURShsLGMpe3ZhciBiLGssTSxmPTAs''@;'; + put 'put ''cD0wLG09MCxBPTAsdz0wLEQ9MCxSPTAsRz0wLEs9MDtmb3IoTT1hZSxhZT1hZSszMnwwLGI9TSsxNnwwLGs9TSwwIT0oMHwobHw9MCkpJjAhPSgwfChjfD0wKSl8fFByKDEzODczNSwxMzg3MTgsMTI1LDEzODc0MiksZj0wLHA9MCxtPTAsQT0xLHc9MDs2NCE9KDB8dyk7KTB8YVtjKzgrKDIw''@;'; + put 'put ''Knd8MCkrMTY+PjJdJiYoSz0wfGJmKFI9Yys4KygyMCp3fDApfDApLEloKGssbCxSKSxhW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxmPShHPShEPTAhPSgwfEEpfCgwfChSPSgwfGJmKGIpKS1LfDAp''@;'; + put 'put ''KTwoMHxtKSl8KDB8Syk8KDB8cCkmKDB8Uik9PSgwfG0pKT93OmYscD1HP0s6cCxtPUc/UjptLEE9RD8wOkEpLHc9dysxfDA7cmV0dXJuIGFlPU0sMHxmfWZ1bmN0aW9uIGI2KGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MDsoY3w9MCl8fFByKDEzODkwMSwxMzg3MTgs''@;'; + put 'put ''MTY3LDEzODc1MyksZnx8UHIoMTM4ODc5LDEzODcxOCwxNjgsMTM4NzUzKTtkb3tpZigoMHxhW2Y+PjJdKTw2NCl7Zm9yKGw9MDs7KXtpZigoMHxsKT49NjQpe3A9MTA7YnJlYWt9aWYoISgwfGFbZis4KygyMCpsfDApKzE2Pj4yXSkpe3A9ODticmVha31sPWwrMXwwfWlmKDg9PSgwfHApKXth''@;'; + put 'put ''WyhtPWYrOCsoMjAqbHwwKXwwKT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLGFbbSsxNj4+Ml09YVtjKzE2Pj4yXSxtPTAsQT1mO2JyZWFrfTEwPT0oMHxwKSYmUHIoMTM4NzYzLDEzODcxOCwxNzgsMTM4''@;'; + put 'put ''NzUzKX1lbHNle2lmKDB8YVtsKzE5MTI+PjJdJiYoYVsodz0wfGFbbCsxOTA4Pj4yXT9sKzE5NDh8MDpsKzE5NDR8MCk+PjJdPTErKDB8YVt3Pj4yXSkpLHApe1diKGwsZixjLHApLG09MSxBPTA9PSgwfGFbZis0Pj4yXSk/bCsxOTcyfDA6bCsxOTc2fDA7YnJlYWt9UHIoMTM4Nzc2LDEzODcx''@;'; + put 'put ''OCwxODcsMTM4NzUzKX19d2hpbGUoMCk7cmV0dXJuIGFbQT4+Ml09MSsoMHxhW0E+PjJdKSwwfG19ZnVuY3Rpb24gemIobCxjKXtpZigwIT0oMHwobHw9MCkpJihjfD0wKT4+PjA8NjR8fFByKDEzODc4MCwxMzg3MTgsMjAxLDEzODgwOCksMHxhW2wrOCsoMjAqY3wwKSsxNj4+Ml0pcmV0dXJu''@;'; + put 'put ''IENtKGwrOCsoMjAqY3wwKXwwKSx2b2lkKGFbbD4+Ml09KDB8YVtsPj4yXSktMSk7UHIoMTM5MzAyLDEzODcxOCwyMDIsMTM4ODA4KX1mdW5jdGlvbiBXdihsKXtsfD0wO3ZhciBjPTA7Zm9yKGM9MDs0IT0oMHxjKTspYVtsKyhjPDwyKT4+Ml09MCxjPWMrMXwwfWZ1bmN0aW9uIGJmKGwpe3Zh''@;'; + put 'put ''ciBjPTAsZj0wOyhsfD0wKXx8UHIoMTM4ODIxLDEzODgyMywxMjgsMTM4ODM1KTtlOmRve2lmKCgwfGFbbD4+Ml0pPigwfGFbbCs4Pj4yXSkpYz0wO2Vsc2UgZm9yKGM9MSxmPTA7Oyl7aWYoMj09KDB8ZikpYnJlYWsgZTtjPSgwfEFyKDB8YVtsKyhmKzI8PDIpPj4yXSxjKSktKDB8YVtsKyhm''@;'; + put 'put ''PDwyKT4+Ml0pfDAsZj1mKzF8MH19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBJaChsLGMsZil7bHw9MDt2YXIgbSxBLHA9MCx3PTAsYj0wLGs9MDtBPWFlLGFlPWFlKzE2fDAsbT1BLDAhPSgwfChjfD0wKSkmMCE9KDB8KGZ8PTApKXx8UHIoMTM4ODQ0LDEzODgyMywxOTUsMTM4ODUy''@;'; + put 'put ''KTtkb3tpZigoMHxhW2M+PjJdKT4oMHxhW2MrOD4+Ml0pKWFbbD4+Ml09YVtmPj4yXSxhW2wrND4+Ml09YVtmKzQ+PjJdLGFbbCs4Pj4yXT1hW2YrOD4+Ml0sYVtsKzEyPj4yXT1hW2YrMTI+PjJdO2Vsc2V7aWYoKDB8YVtmPj4yXSk+KDB8YVtmKzg+PjJdKSl7YVtsPj4yXT1hW2M+PjJdLGFb''@;'; + put 'put ''bCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml07YnJlYWt9Zm9yKHA9MDsyIT0oMHxwKTspYVttKyhwPDwyKT4+Ml09KDB8KGs9MHxhW2MrKHA8PDIpPj4yXSkpPCgwfCh3PTB8YVtmKyhwPDwyKT4+Ml0pKT9rOncsYVttKygodz1wKzJ8''@;'; + put 'put ''MCk8PDIpPj4yXT0oMHwoaz0wfGFbYysodzw8Mik+PjJdKSk+KDB8KGI9MHxhW2YrKHc8PDIpPj4yXSkpP2s6YixwPXArMXwwO2FbbD4+Ml09YVttPj4yXSxhW2wrND4+Ml09YVttKzQ+PjJdLGFbbCs4Pj4yXT1hW20rOD4+Ml0sYVtsKzEyPj4yXT1hW20rMTI+PjJdfX13aGlsZSgwKTthZT1B''@;'; + put 'put ''fWZ1bmN0aW9uIEdiKGwsYyl7dmFyIGY9MCxwPTA7Zm9yKDAhPSgwfChsfD0wKSkmMCE9KDB8KGN8PTApKT9mPTA6UHIoMTM4ODY0LDEzODgyMywyMTYsMTM4ODcxKTs7KXtpZigoMHxmKT49Mil7Zj0xO2JyZWFrfWlmKCgwfGFbbCsoZjw8Mik+PjJdKT4oMHxhW2MrKChwPWYrMnwwKTw8Mik+''@;'; + put 'put ''PjJdKSl7Zj0wO2JyZWFrfWlmKCgwfGFbYysoZjw8Mik+PjJdKT4oMHxhW2wrKHA8PDIpPj4yXSkpe2Y9MDticmVha31mPWYrMXwwfXJldHVybiAwfGZ9ZnVuY3Rpb24gV2IobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIEEsbT0wLHc9MCxiPTA7KGN8PTApfHxQcigxMzg4NzksMTM4ODgx''@;'; + put 'put ''LDQwLDEzODg5MSksZnx8UHIoMTM4OTAxLDEzODg4MSw0MSwxMzg4OTEpLDB8YVsoYj1sKzE5MTJ8MCk+PjJdJiYoYVsodz0wfGFbbCsxOTA4Pj4yXT9sKzE5MzJ8MDpsKzE5Mjh8MCk+PjJdPTErKDB8YVt3Pj4yXSkpLHc9MHxhWyhBPWMrNHwwKT4+Ml0sZnVuY3Rpb24gREUobCxjLGYpe2x8''@;'; + put 'put ''PTAsZnw9MDt2YXIgQSx3LHA9MCxtPTAsYj0wLGs9MDtmb3Iodz1hZSxhZT1hZSsxNnwwLEE9dywoY3w9MCl8fFByKDEzODg3OSwxMzg4ODEsMTA2LDEzOTI5MCksZj9wPTA6UHIoMTM4OTAxLDEzODg4MSwxMDcsMTM5MjkwKTshKCgwfHApPj02NCk7KXtpZighKDB8YVtjKzgrKDIwKnB8MCkr''@;'; + put 'put ''MTY+PjJdKSl7bT03O2JyZWFrfWFbKGI9bCs0KygyMCpwfDApfDApPj4yXT1hWyhrPWMrOCsoMjAqcHwwKXwwKT4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxhW2IrMTY+PjJdPWFbaysxNj4+Ml0scD1wKzF8MH1mb3Io''@;'; + put 'put ''Nz09KDB8bSkmJlByKDEzOTMwMiwxMzg4ODEsMTExLDEzOTI5MCkscD1sKzR8MCxhWyhrPWwrMTI4NHwwKT4+Ml09YVtmPj4yXSxhW2srND4+Ml09YVtmKzQ+PjJdLGFbays4Pj4yXT1hW2YrOD4+Ml0sYVtrKzEyPj4yXT1hW2YrMTI+PjJdLGFbaysxNj4+Ml09YVtmKzE2Pj4yXSxhWyhmPWwr''@;'; + put 'put ''MTMwNHwwKT4+Ml09YVtwPj4yXSxhW2YrND4+Ml09YVtwKzQ+PjJdLGFbZis4Pj4yXT1hW3ArOD4+Ml0sYVtmKzEyPj4yXT1hW3ArMTI+PjJdLHA9MTs2NSE9KDB8cCk7KUloKEEsZixsKzQrKDIwKnB8MCl8MCksYVtmPj4yXT1hW0E+PjJdLGFbZis0Pj4yXT1hW0ErND4+Ml0sYVtmKzg+PjJd''@;'; + put 'put ''PWFbQSs4Pj4yXSxhW2YrMTI+PjJdPWFbQSsxMj4+Ml0scD1wKzF8MDthW2wrMTMyMD4+Ml09MHxiZihmKSxhQihjKSxhZT13fShsLGMsZiksZj1sKzEzMjR8MCxmdW5jdGlvbiBZYihsKXt2YXIgYixrLE0sRCxSLEcsSyxwZSxiZSxPZSxMZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxnZT0w''@;'; + put 'put ''LFJlPTA7Zm9yKExlPWFlLGFlPWFlKzQ4fDAsYj1MZSszMnwwLE09TGUrMTZ8MCxEPUxlLGZ1bmN0aW9uIGxCKGwpe3ZhciBmLHAsbSxjPTA7Zm9yKGY9YWUsYWU9YWUrMTZ8MCxwPWYsYVsxODQ4KyhsfD0wKT4+Ml09MCxhW2wrMTg0ND4+Ml09MCxjPWwrMTg1MnwwLG09bCsxODY4fDAsZnVu''@;'; + put 'put ''Y3Rpb24gSUUobCl7bHw9MDt2YXIgZixwLGM9MDtmb3IocD1hZSxhZT1hZSsxNnwwLGFbKGY9cCk+PjJdPTEsYVtmKzg+PjJdPS0xLGM9MTsyIT0oMHxjKTspYVtmKyhjKzI8PDIpPj4yXT0wLGFbZisoYzw8Mik+PjJdPTAsYz1jKzF8MDthW2w+PjJdPWFbZj4+Ml0sYVtsKzQ+PjJdPWFbZis0''@;'; + put 'put ''Pj4yXSxhW2wrOD4+Ml09YVtmKzg+PjJdLGFbbCsxMj4+Ml09YVtmKzEyPj4yXSxhZT1wfShwKSxhW20+PjJdPWFbcD4+Ml0sYVttKzQ+PjJdPWFbcCs0Pj4yXSxhW20rOD4+Ml09YVtwKzg+PjJdLGFbbSsxMj4+Ml09YVtwKzEyPj4yXSxhW2M+PjJdPWFbcD4+Ml0sYVtjKzQ+PjJdPWFbcCs0''@;'; + put 'put ''Pj4yXSxhW2MrOD4+Ml09YVtwKzg+PjJdLGFbYysxMj4+Ml09YVtwKzEyPj4yXSxhW2wrMTg4OD4+Ml09MCxhW2wrMTg4ND4+Ml09MCxjPTA7NjUhPSgwfGMpOylhW2wrMTU4NCsoYzw8Mik+PjJdPTAsYVtsKzEzMjQrKGM8PDIpPj4yXT0tMSxjPWMrMXwwO2FlPWZ9KGx8PTApLGZ1bmN0aW9u''@;'; + put 'put ''IExFKGwpe2x8PTA7dmFyIE0sRCxSLEcsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxLPTAscGU9MCxnZT0wO2ZvcihHPWFlLGFlPWFlKzMwNHwwLE09RyszMnwwLEQ9RysxNnwwLFI9RyxjPTA7NjUhPSgwfGMpOylhW00rKGM8PDIpPj4yXT0wfGJmKGwrNCsoMjAqY3wwKXwwKSxj''@;'; + put 'put ''PWMrMXwwO2M9MCxmPTAscD0wLEE9MDtlOmZvcig7NjQhPSgwfEEpOylmb3IoYj1BKzF8MCxrPWwrNCsoMjAqQXwwKXwwLHc9TSsoQTw8Mil8MCxtPWI7Oyl7aWYoNjU9PSgwfG0pKXtBPWI7Y29udGludWUgZX1JaChSLGssbCs0KygyMCptfDApfDApLGFbRD4+Ml09YVtSPj4yXSxhW0QrND4+''@;'; + put 'put ''Ml09YVtSKzQ+PjJdLGFbRCs4Pj4yXT1hW1IrOD4+Ml0sYVtEKzEyPj4yXT1hW1IrMTI+PjJdLGdlPShwZT0oSz0oSz0wfGJmKEQpKS0oMHxhW3c+PjJdKS0oMHxhW00rKG08PDIpPj4yXSl8MCk+Pj4wPnA+Pj4wKT9tOmMsbT1tKzF8MCxjPWdlLGY9cGU/QTpmLHA9cGU/SzpwfVl2KGwsZiww''@;'; + put 'put ''KSxZdihsLGMsMSksYWU9R30obCkscGU9bCsxODQ0fDAsYmU9bCsxODQ4fDAsT2U9bCsxODkyfDAsUj1sKzE4NTJ8MCxHPWwrMTg4NHwwLEs9bCsxODY4fDAsaz1sKzE4ODh8MCxtPTAscD0wOyEoKChjPTB8YVtiZT4+Ml0pKyhmPTB8YVtwZT4+Ml0pfDApPj02NSk7KXtpZighKCgwfGYpPCgw''@;'; + put 'put ''fCh3PTY1LSgwfGFbT2U+PjJdKXwwKSkmKDB8Yyk8KDB8dykpKXtnZT0xMjticmVha31mb3IoQT0tMSx3PTA7NjUhPSgwfHcpOykwfGFbbCsxNTg0Kyh3PDwyKT4+Ml0/KGM9QSxmPW0pOihJaChNLFJlPWwrNCsoMjAqd3wwKXwwLFIpLGFbYj4+Ml09YVtNPj4yXSxhW2IrND4+Ml09YVtNKzQ+''@;'; + put 'put ''PjJdLGFbYis4Pj4yXT1hW00rOD4+Ml0sYVtiKzEyPj4yXT1hW00rMTI+PjJdLGM9MHxiZihiKSxmPTB8YVtHPj4yXSxJaChELFJlLEspLGFbYj4+Ml09YVtEPj4yXSxhW2IrND4+Ml09YVtEKzQ+PjJdLGFbYis4Pj4yXT1hW0QrOD4+Ml0sYVtiKzEyPj4yXT1hW0QrMTI+PjJdLGM9KGY9KDB8''@;'; + put 'put ''KGM9KFJlPTB8YmYoYikpLSgwfGFbaz4+Ml0pKyhmLWMpfDApKT4tMSk/YzowLWN8MCxmPTEmKDFeZiksKDB8Yyk8PSgwfEEpPygwfGMpPT0oMHxBKT8oYz1BLGY9KFJlPSgwfGFbbCsxODQ0KyhmPDwyKT4+Ml0pPCgwfGFbbCsxODQ0KyhtPDwyKT4+Ml0pKT9mOm0scD1SZT93OnApOihjPUEs''@;'; + put 'put ''Zj1tKTpwPXcpLEE9Yyx3PXcrMXwwLG09ZjtZdihsLHAsbSl9aWYoMTI9PSgwfGdlKSl7Zm9yKGM9KDB8Zik+PSg2NS0oMHxhW09lPj4yXSl8MCkmMSxmPTA7NjUhPSgwfGYpOykwfGFbbCsxNTg0KyhmPDwyKT4+Ml18fFl2KGwsZixjKSxmPWYrMXwwO2Y9MHxhW3BlPj4yXSxjPTB8YVtiZT4+''@;'; + put 'put ''Ml19NjUhPShjK2Z8MCkmJlByKDEzOTA0NiwxMzg4ODEsMjEwLDEzOTEzMiksKDB8Zik8KDB8KFJlPTB8YVtPZT4+Ml0pKXwoMHxjKTwoMHxSZSk/UHIoMTM5MTQzLDEzODg4MSwyMTIsMTM5MTMyKTphZT1MZX0obCksbT0wfGJmKGwrMTg1MnwwKSxtPSgwfGJmKGwrMTg2OHwwKSkrbXwwLDB8''@;'; + put 'put ''YVtiPj4yXSYmMCE9KDB8bSkmMD09KDB8YVtsKzE5MDg+PjJdKSYmKGpuWyhiPWwrMTk2MHwwKT4+Ml09KygoMHxhW2wrMTMyMD4+Ml0pPj4+MCkvKygwfG0pKyAram5bYj4+Ml0pLGI9MHx6dihsKSxhW3A+PjJdPWIsYVtBPj4yXT13LGFbYis0Pj4yXT13LGZ1bmN0aW9uIGttKGwsYyxmLHAp''@;'; + put 'put ''e2x8PTAsZnw9MCxwfD0wO3ZhciBtPTA7Zm9yKChjfD0wKXx8UHIoMTM4ODc5LDEzODg4MSwyOTcsMTM4OTQzKSxmfHxQcigxMzg5NTMsMTM4ODgxLDI5OCwxMzg5NDMpLHA/bT0wOlByKDEzODk1NSwxMzg4ODEsMjk5LDEzODk0Myk7Oyl7aWYoKDB8bSk+PTY1KXtwPTE0O2JyZWFrfWlmKChw''@;'; + put 'put ''PTB8YVtsKzEzMjQrKG08PDIpPj4yXSk+Pj4wPj0yKXtwPTk7YnJlYWt9c3dpdGNoKDB8cCl7Y2FzZSAwOmI2KGwsbCs0KygyMCptfDApfDAsYywwKTticmVhaztjYXNlIDE6YjYobCxsKzQrKDIwKm18MCl8MCxmLDApfW09bSsxfDB9aWYoOT09KDB8cCkpUHIoMTM4OTU3LDEzODg4MSwzMDMs''@;'; + put 'put ''MTM4OTQzKTtlbHNlIGlmKDE0PT0oMHxwKSk7fShsLGMsYixmKSw2NSE9KCgwfGFbYVtwPj4yXT4+Ml0pKygwfGFbYz4+Ml0pfDApJiZQcigxMzg5MDMsMTM4ODgxLDg2LDEzODg5MSl9ZnVuY3Rpb24gWXYobCxjLGYpe2Z8PTA7dmFyIG0sQSx3LGIscD0wO2I9YWUsYWU9YWUrMTZ8MCx3PWIs''@;'; + put 'put ''MHxhWyhwPTE1ODQrKGx8PTApKygoY3w9MCk8PDIpfDApPj4yXSYmUHIoMTM5MjQ2LDEzODg4MSwyNTcsMTM5MjgxKSxhW2wrMTMyNCsoYzw8Mik+PjJdPWYsYVtwPj4yXT0xLG09bCsxODUyKyhmPDw0KXwwLHA9bCs0KygyMCpjfDApfDAsMHxhWyhBPWwrMTg0NCsoZjw8Mil8MCk+PjJdPyhJ''@;'; + put 'put ''aCh3LHAsbSksYVttPj4yXT1hW3c+PjJdLGFbbSs0Pj4yXT1hW3crND4+Ml0sYVttKzg+PjJdPWFbdys4Pj4yXSxhW20rMTI+PjJdPWFbdysxMj4+Ml0pOihhW20+PjJdPWFbcD4+Ml0sYVttKzQ+PjJdPWFbcCs0Pj4yXSxhW20rOD4+Ml09YVtwKzg+PjJdLGFbbSsxMj4+Ml09YVtwKzEyPj4y''@;'; + put 'put ''XSksYVtsKzE4ODQrKGY8PDIpPj4yXT0wfGJmKG0pLGFbQT4+Ml09MSsoMHxhW0E+PjJdKSxhZT1ifWZ1bmN0aW9uIFViKGwsYyl7dmFyIGY7cmV0dXJuIGx8PTAsY3w9MCxmPTB8dnIoOCksZmVbZis0Pj4wXT1jLGFbZj4+Ml09bCwwfGZ9ZnVuY3Rpb24gRDMoKXt2YXIgbD0wLGM9MDtmb3Io''@;'; + put 'put ''bD0wfGFbNDc0MDJdLDB8KGM9MHxhWzQ3NDAwXSkmJihBbShjLDEpLGFbNDc0MDBdPTApLGFbMTQwMjFdPTY3O2w7KWM9MHxhW2wrODA+PjJdLEJFKGwpLGw9YzthWzE0MDIxXT01NixhWzE0MDMwXT02OCxtaVs2MyZhWyhjPTB8YVs0NzQwNV0pPj4yXV0oYywwLDY0KSxhWzE0MDMwXT01Nixh''@;'; + put 'put ''WzE0MDM5XT02OSxtaVs2MyZhWyhjPTB8YVs0NzQwNl0pPj4yXV0oYywwLDY0KSxhWzE0MDM5XT01NixmdW5jdGlvbiBmQigpe3ZhciBsPTAsYz0wO2ZvcihsPTB8YVs0NzQwM107Yz0wfGFbbCs0Pj4yXTspRnQobCksbD1jfSgpfWZ1bmN0aW9uIFNtKCl7dmFyIGYscCxsPTAsYz0wLG09MCxB''@;'; + put 'put ''PTA7Zj0wfGFbNDc0MDZdLHA9MHx2cig0MCksMHxwdSgwfGFbNDc0MDVdKSYmVXYoMCksbD0wfHB1KGYpLHJ0W3ArND4+MV09bDtlOmRve2lmKGwpZm9yKGFbcD4+Ml09MHx2cigyNCpsfDApLGw9MCxjPTB8bWlbNjMmYVtmPj4yXV0oZiwwLDEyOCk7Oyl7aWYoIWMpe2w9ZjticmVhayBlfWFb''@;'; + put 'put ''KG09KDB8YVtwPj4yXSkrKDI0Kmx8MCl8MCk+PjJdPWFbKEE9Yys4fDApPj4yXSxhW20rND4+Ml09YVtBKzQ+PjJdLGFbbSs4Pj4yXT1hW0ErOD4+Ml0sYVttKzEyPj4yXT1hW0ErMTI+PjJdLGFbbSsxNj4+Ml09YVtBKzE2Pj4yXSxhW20rMjA+PjJdPWFbQSsyMD4+Ml0sbD1sKzF8MCxjPTB8''@;'; + put 'put ''bWlbNjMmYVtmPj4yXV0oZixjLDgpfWVsc2UgbD1mfXdoaWxlKDApO3JldHVybiBtaVs2MyZhW2w+PjJdXShmLDAsNjQpLDB8cH1mdW5jdGlvbiBPRShsKXtsfD0wO3ZhciBmLGM9MCxwPTA7Zj0wfHZyKDY0KSwoYz0wfGFbKHA9bCs0fDApPj4yXSk+Pj4wPj0oMHxhW2wrOD4+Ml0pPj4+MCYm''@;'; + put 'put ''KFEwKGwsMSksYz0wfGFbcD4+Ml0pLGZlW2M+PjBdPTAsYVtwPj4yXT1sPTB8YVtsPj4yXSxhW2YrOD4+Ml09MHxyYShsKSxhW2YrMTI+PjJdPWFbYVs0NzQwM10+PjJdLG1pWzYzJmFbKHA9MHxhWzQ3NDA1XSk+PjJdXShwLGYsMSl9ZnVuY3Rpb24gVXYobCl7bHw9MDt2YXIgQSx3LGM9MCxm''@;'; + put 'put ''PTAscD0wLG09MCxiPTA7QT0wfHZyKDMyKSxjPTB8cHUodz0wfGFbNDc0MDVdKSxiPUErOHwwLGZlW0ErMTQ+PjBdPWw7ZTpkb3tpZihjKWZvcihydFtBKzEyPj4xXT1jLGFbYj4+Ml09MHx2cig1NipjfDApLGw9MCxjPTB8czAodyk7Oyl7aWYoIWMpYnJlYWsgZTtwPWMrOHwwLG09NTYrKGY9''@;'; + put 'put ''KDB8YVtiPj4yXSkrKDU2Kmx8MCl8MCl8MDtkb3thW2Y+PjJdPWFbcD4+Ml0sZj1mKzR8MCxwPXArNHwwfXdoaWxlKCgwfGYpPCgwfG0pKTtsPWwrMXwwLGM9MHxhW2M+PjJdfWVsc2UgYVtiPj4yXT0wfHZyKDU2KSxydFtBKzEyPj4xXT0xLG09MHxyYSgxOTUwNTkpLGI9MHxhW2I+PjJdLGFb''@;'; + put 'put ''Yj4+Ml09bSxhW2IrND4+Ml09YVthWzQ3NDAzXT4+Ml19d2hpbGUoMCk7bWlbNjMmYVt3Pj4yXV0odywwLDY0KSxtaVs2MyZhWyhiPTB8YVs0NzQwNl0pPj4yXV0oYixBLDEpfWZ1bmN0aW9uIFY0KGwpe2x8PTA7dmFyIEEsdyxiLGM9MCxmPTAscD0wLG09MDtiPWFlLGFlPWFlKzMyfDAsQT1i''@;'; + put 'put ''LHc9MHx2cig4KSxtPTB8YVthWzQ3NDAzXT4+Ml0sYVtBPj4yXT1hW2w+PjJdLGFbQSs0Pj4yXT1hW2wrND4+Ml0sYVtBKzg+PjJdPWFbbCs4Pj4yXSxhW0ErMTI+PjJdPWFbbCsxMj4+Ml0sYVtBKzE2Pj4yXT1hW2wrMTY+PjJdLGFbQSsyMD4+Ml09YVtsKzIwPj4yXSxhW0ErMjQ+PjJdPWFb''@;'; + put 'put ''bCsyND4+Ml0sYVtBKzI4Pj4yXT1hW2wrMjg+PjJdLDB8bSYmKDA9PSgwfGFbKGw9QSs0fDApPj4yXSkmJjB8KGM9MHxhW20rND4+Ml0pJiYoYVtsPj4yXT1jKSwrX1sobD1BKzE2fDApPj4zXTwwJiYoZj0rX1ttKzE2Pj4zXSk+PTAmJihfW2w+PjNdPWYpLDA9PSgwfGFbQT4+Ml0pJiYwfChw''@;'; + put 'put ''PTB8YVttPj4yXSkmJihhW0E+PjJdPXApLDB8KGw9MTI3JmFbbSsyND4+Ml0pJiYoYVsobT1BKzI0fDApPj4yXT0xMjcmKHA9MHxhW20+PjJdKXxsfC0xMjgmcCkpLGFbdz4+Ml09MHxtaVs2MyZhWyhtPTB8YVsxNDQrKDB8YVs0NzQwNF0pPj4yXSk+PjJdXShtLEEsMSksYVt3KzQ+PjJdPWFb''@;'; + put 'put ''NDc0MDNdLGFbNDc0MDNdPXcsYWU9Yn1mdW5jdGlvbiBFZCgpe3ZhciBsLGM7bD0wfGFbNCsoYz0wfGFbNDc0MDNdKT4+Ml0sRnQoYyksYVs0NzQwM109bH1mdW5jdGlvbiBRYihsKXtsfD0wO2Zvcih2YXIgYz0wOzspe2lmKCEoKGM9MHxmZVtsPj4wXSk8PDI0Pj4yNCkpe2w9MDticmVha31p''@;'; + put 'put ''ZihjPDwyND4+MjQhPTMyKXtsPTE7YnJlYWt9bD1sKzF8MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIGIxKCl7dmFyIGwsYyxmPTA7Zj0wfGlzKDU2MDY4LDB8YVs0NTgwXSksbD0wfGFbNDc0MDJdLGM9MHx2cigxNiksYVtjKzg+PjJdPWYsMiZmZVtsKzExMj4+MF0mJihmZVtjKzEyPj4wXT0xKSxt''@;'; + put 'put ''aVs2MyZhWyhmPTB8YVtsKzg0Pj4yXSk+PjJdXShmLGMsMSl9ZnVuY3Rpb24gaHUoKXt2YXIgbDtyZXR1cm4gMHxtaVs2MyZhWyhsPTB8YVs4NCsoMHxhWzQ3NDAyXSk+PjJdKT4+Ml1dKGwsMCwyNTYpfWZ1bmN0aW9uIE1tKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcCxtLEE9MDttPTB8''@;'; + put 'put ''dnIoMTYpLEE9MHxhWzgrKDB8bWlbNjMmYVsoQT0wfGFbODQrKHA9MHxhWzQ3NDAyXSk+PjJdKT4+Ml1dKEEsMCwyNTYpKT4+Ml0sYVttKzg+PjJdPWwsbWlbNjMmYVtBPj4yXV0oQSxtLDEpLGZlW2wrOTI+PjBdPWYsMSZmZVtwKzExMj4+MF0mJihmZVtsKzEwMD4+MF09MSksYVtsKzg4Pj4y''@;'; + put 'put ''XT1jfWZ1bmN0aW9uIEJFKGwpe05sKDB8YVs4NCsobHw9MCk+PjJdKSxLOChsKSxGdChsKX1mdW5jdGlvbiBIYShsKXtsfD0wO3ZhciBjLGYscD0wO2Y9YWUsYWU9YWUrMTZ8MCxjPWYsMHxmZVsxODk2NjFdfHwoZmVbMTg5NjYxXT0xLHA9MHx1dCgpLGFbYz4+Ml09bCxhW2MrND4+Ml09cCwk''@;'; + put 'put ''cigxLDE0MDU3NSxjKSxYYigpKSxhZT1mfWZ1bmN0aW9uIHV0KCl7cmV0dXJuIDB8ZnVuY3Rpb24gR0IobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7cmV0dXJuKGx8PTApPygwfChmPTB8YVsoYz1sKzI4NHwwKT4+Ml0pJiZmPj4+MD49KG09MHxhWyhwPWwrMjkyfDApPj4yXSk+Pj4wJiYo''@;'; + put 'put ''UmNbMzEmYVs0OCsoQT0wfGFbbCsxNDQ+PjJdKT4+Ml1dKEEsbSxmLGwrNDA0fDApLGFbcD4+Ml09YVtjPj4yXSksbD0xKygwfGFbbCs0MDQ+PjJdKXwwKTpsPTAsMHxsfSgwfGFbNDc0MDddKX1mdW5jdGlvbiBYYigpe3ZhciBmLHAsbD0wLGM9MDtwPWFlLGFlPWFlKzE2fDAsZj1wLGFbNCso''@;'; + put 'put ''bD0wfGFbNDc0MTBdKT4+Ml09YVtsPj4yXSwoMHwoYz0wfGFbNDc0MTldKSk+MCYmKGFUKGwsMHxhWzQ3NDE3XSxjKSxsPTB8YVs0NzQxMF0pLGFUKGwsMHxhWzQ3NDE2XSwwfGFbNDc0MThdKSwobD0wfGFbNCsoYz0wfGFbNDc0MTBdKT4+Ml0pPj4+MD49KDB8YVtjKzg+PjJdKT4+PjAmJihR''@;'; + put 'put ''MChjLDEpLGM9bD0wfGFbNDc0MTBdLGw9MHxhW2wrND4+Ml0pLGFbYys0Pj4yXT1sKzEsZmVbbD4+MF09MCxhWzQrKGw9MHxhWzQ3NDEwXSk+PjJdPWM9MHxhW2w+PjJdLGFbZj4+Ml09YywkcigzLDE0MDU5MSxmKSxhZT1wfWZ1bmN0aW9uIE5FKGwpe3ZhciBjLGYscDtsfD0wLGM9YWUsYWU9''@;'; + put 'put ''YWUrMTZ8MCxmPWMsYVs0NzQwOV09MjY4LGZlWzE4OTY2MV09MSxwPTB8dXQoKSxhW2Y+PjJdPWwsYVtmKzQ+PjJdPXAsJHIoMSwxNDA2NTksZiksYWU9Y31mdW5jdGlvbiBWRShsKXt2YXIgYztyZXR1cm4gbHw9MCxjPTB8dnIoMTIwKSxhW2MrMTAwPj4yXT0tMSxmZVtjKzg4Pj4wXT0tMSxu''@;'; + put 'put ''NShjLDU2NDAwLDIyLGwsMTQxNjExKSwwfGN9ZnVuY3Rpb24gbUIobCl7dmFyIGM7cmV0dXJuIGx8PTAsYz0wfHZyKDEwNCkscnRbYys4MD4+MV09MSxydFtjKzgyPj4xXT0xLG41KGMsNTYyMjQsMjIsbCwxNDA5NjUpLDB8Y31mdW5jdGlvbiB4ZChsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFy''@;'; + put 'put ''IG0scD0wO3JldHVybiBtPWFlLGFlPWFlKzMyfDAsYVsocD1tKT4+Ml09MCxhW3ArND4+Ml09MCxhW3ArOD4+Ml09MCxhW3ArMTI+PjJdPTAsYVtwKzE2Pj4yXT0wLGFbcCsyMD4+Ml09MCxhW3ArMjQ+PjJdPTAsYVtwKzI4Pj4yXT0wLF9bcCsxNj4+M109LTEsYVtwKzI0Pj4yXT0xMjcmZiww''@;'; + put 'put ''fGMmJm41KHAsNTYyMDAsMyxjLDE0MDgxNikscD0wfG1pWzYzJmFbKGY9MHxhW2wrMTQ0Pj4yXSk+PjJdXShmLHAsMSksYWU9bSwwfHB9ZnVuY3Rpb24gb0cobCl7bHw9MCxhWzQ3Mzk5XT0wLG41KDE4OTU5Niw1NjE5MiwxLGwsMTQwNzUyKX1mdW5jdGlvbiBqRShsKXt2YXIgYztyZXR1cm4g''@;'; + put 'put ''bHw9MCxuNShjPTB8dnIoNDApLDU2MTc2LDIsbCwxNDA2OTgpLDB8Y31mdW5jdGlvbiBuNShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgayxNLEQsQT0wLHc9MCxiPTA7Zm9yKEQ9YWUsYWU9YWUrMTZ8MCxNPUQsaz1EKzh8MDtiPTB8YVtwPj4yXTspQT0wfGFbcCs0''@;'; + put 'put ''Pj4yXSxhW2s+PjJdPWIsKHc9MHx0dyhrLGMsZiw4LDEwNCkpP0E9MjU1JigwfChBPTB8QmlbMTI3JmFbdys0Pj4yXV0obCxBKSl8SnRbMTg5NjYwXSk6KGFbTT4+Ml09YixhW00rND4+Ml09bSwkcigwLDE0MDcwNCxNKSxBPTEpLGZlWzE4OTY2MF09QSxwPXArOHwwO2FlPUR9ZnVuY3Rpb24g''@;'; + put 'put ''VGQobCxjLGYscCxtKXt2YXIgQSx3LGIsayxNLEQ7Y3w9MCxmfD0wLHB8PTAsbXw9MCxNPWFlLGFlPWFlKzQ4fDAsaz1NKzI0fDAsYj1NKzh8MCx3PU0sQT0wfHZMKGx8PTAsRD1NKzM2fDAsMTApO2Rve2lmKCgwfGFbRD4+Ml0pIT0oMHxsKSl7aWYoKDB8QSk+KDB8cCkpe2FbYj4+Ml09Yyxh''@;'; + put 'put ''W2IrND4+Ml09bCxhW2IrOD4+Ml09cCwkcigwLDE0MDg4NyxiKSxsPTE7YnJlYWt9aWYoKDB8QSk8KDB8Zikpe2Fbaz4+Ml09YyxhW2srND4+Ml09bCxhW2srOD4+Ml09ZiwkcigwLDE0MDkyNixrKSxsPTE7YnJlYWt9YVttPj4yXT1BLGw9MDticmVha31hW3c+PjJdPWMsYVt3KzQ+PjJdPWws''@;'; + put 'put ''JHIoMCwxNDA4NTYsdyksbD0xfXdoaWxlKDApO3JldHVybiBhZT1NLDB8bH1mdW5jdGlvbiBZRSgpe3ZhciB3LGIsbD0wLGM9MCxmPTAscD0wLG09MCxBPTA7Yj1hZSxhZT1hZSsxNnwwLHc9YixhWzQ3NDA5XT0wLGM9MDtlOmRve3Q6ZG97c3dpdGNoKDB8ZmVbMTg5NjYzXSl7Y2FzZSAyOmw9''@;'; + put 'put ''LTE7YnJlYWsgZTtjYXNlIDA6ZmVbMTg5NjYzXT0xLEE9NixsPTE0MTczMixjPTA7YnJlYWs7ZGVmYXVsdDppZigwfGZlWyhsPTB8YVs0NzQwOF0pPj4wXSl7QT0oYz0wfEt2KGwpKS1sfDA7YnJlYWsgdH1mZVsxODk2NjNdPTIsQT03LGw9MTQxNzM5O2JyZWFrIHR9fXdoaWxlKDApO2FbNDc0''@;'; + put 'put ''MTddPWFbNDc0MTZdLGFbNDc0MTldPWFbNDc0MThdLGFbNDc0MTZdPWwsYVs0NzQxOF09QSxtPTB8YVs0NzQwN10sKHA9KGY9MHxhWzQ3NDEyXSktKDB8YVs0NzQxMV0pfDApPyhmPj4+MDwoMHxhWzQ3NDEzXSk+Pj4wP2w9ZjooUTAoMTg5NjQ0LDEpLGw9MHxhWzQ3NDEyXSksZmVbbD4+MF09''@;'; + put 'put ''MCxhWzQ3NDEyXT1sPTB8YVs0NzQxMV0sbD0wfHV4KG0sbCxwLDApKTpsPTB8dXgobSxsLEEsMD09KDB8QSkmMSksMCE9KDB8bCl8MCE9KDB8ZmVbMTg5NjYxXSl8fChtPTB8V0IoMHx6QigwfGFbNDc0MDddKSksQT0wfHV0KCksYVt3Pj4yXT1tLGFbdys0Pj4yXT1BLCRyKDEsMTQwNTc1LHcp''@;'; + put 'put ''LFhiKCksZmVbMTg5NjYxXT0xLGFbNDc0MDldPTI2OCksMHxjJiYoYVs0NzQwOF09YyksbD0wfGFbNDc0MDldfXdoaWxlKDA9PSgwfGwpKTtyZXR1cm4gYWU9YiwwfGx9ZnVuY3Rpb24gS3YobCl7dmFyIHAsQSxjPTAsZj0wLG09MDtBPWFlLGFlPWFlKzE2fDAscD1BLGM9MSsobHw9MCl8MCxm''@;'; + put 'put ''PTB8ZmVbbD4+MF07ZTpkb3tpZihmPDwyND4+MjQ9PTYwKXsoZj0wfGZlW2M+PjBdKTw8MjQ+PjI0PT0zMz8wfHMyKGwrMnwwLDE0MTc0NywyKT8oZj1jLG09NSk6KGM9Zj0wfERoKGwrNHwwKSxmPTB8ZmVbZj4+MF0sbT04KTptPTY7dDpmb3IoOzspaWYoNSE9KDB8bSkpaWYoNiE9KDB8bSkp''@;'; + put 'put ''e2lmKDg9PSgwfG0pKXtpZihmPDwyND4+MjQ9PTYyKXttPTEwO2JyZWFrfW09OTticmVha319ZWxzZXtzd2l0Y2goZjw8MjQ+PjI0KXtjYXNlIDYyOmNhc2UgMDptPTg7Y29udGludWUgdH1mPWMrMXwwLG09NX1lbHNlIGM9ZixmPTB8ZmVbZj4+MF0sbT02O2lmKDk9PSgwfG0pKXskcigwLDE0''@;'; + put 'put ''MTc1MCxwKSxmZVsxODk2NjBdPTE7YnJlYWt9aWYoMTA9PSgwfG0pKXtjPWMrMXwwO2JyZWFrfX1lbHNlIGZvcihjPWwsbD1mOzspe3N3aXRjaChsPDwyND4+MjQpe2Nhc2UgNjA6Y2FzZSAwOmJyZWFrIGU7Y2FzZSAzODozNT09KDB8ZmVbKGY9YysxfDApPj4wXSk/bT0xNTpmPTB8TGxlKGYs''@;'; + put 'put ''MTg5NjQ0KTticmVhaztkZWZhdWx0Om09MTV9MTU9PSgwfG0pJiYobT0wLChmPTB8YVs0NzQxMl0pPj4+MD49KDB8YVs0NzQxM10pPj4+MCYmKFEwKDE4OTY0NCwxKSxmPTB8YVs0NzQxMl0pLGFbNDc0MTJdPWYrMSxmZVtmPj4wXT1sLGY9YysxfDApLGM9ZixsPTB8ZmVbZj4+MF19fXdoaWxl''@;'; + put 'put ''KDApO3JldHVybiBhZT1BLDB8Y31mdW5jdGlvbiBEaChsKXt2YXIgYixrLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wO2s9YWUsYWU9YWUrMTZ8MCxiPWssbT0xLGM9bHw9MDtlOmZvcig7Oyl7cD0wPT0oMHxtKSxmPWM7dDpmb3IoOzspe2lmKHApYnJlYWsgZTtzd2l0Y2goQT1mKzF8MCwwfGZl''@;'; + put 'put ''W2Y+PjBdKXtjYXNlIDA6Yz1BO2JyZWFrIGU7Y2FzZSA2MDp3PTU7YnJlYWsgdDtjYXNlIDYyOmM9LTE7YnJlYWsgdDtkZWZhdWx0OmY9QX19NT09KDB8dykmJih3PTAsYz0xKSxtPW0rY3wwLGM9QX1mPWMrLTF8MDtkb3tpZigwfGZlW2Y+PjBdKXtpZigoYz1jKy0zfDApPj4+MD49bD4+PjAm''@;'; + put 'put ''JjA9PSgwfHMyKGMsMTQxNzQ3LDIpKSlicmVhazskcigwLDE0MTc5MSxiKSxmZVsxODk2NjBdPTF9fXdoaWxlKDApO3JldHVybiBhZT1rLDB8Zn1mdW5jdGlvbiB0XyhsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9''@;'; + put 'put ''MCxnZT0wLGJlPTAsT2U9MDtpZihmPTB8QjAoMjgpKXtmb3IocD0wLG09MDshKCgwfHApPj0oMHxjKSk7KWJlPSgwfGFbNCsoMHxhW2wrKHA8PDIpPj4yXSk+PjJdKSttfDAscD1wKzF8MCxtPWJlO2ZvcihhWyhLPWYrOHwwKT4+Ml09MHwkdihtPDw0KSxhWyhwZT1mKzEyfDApPj4yXT0wfCR2''@;'; + put 'put ''KDQrKGM8PDIpfDApLGFbKGdlPWYrMTZ8MCk+PjJdPTB8JHYocD1tPDwyKSxwPTB8JHYocCksYVsoYmU9ZisyMHwwKT4+Ml09cCxhW2YrND4+Ml09bSxhW2Y+PjJdPWMsbT0wLHc9MDthWygwfGFbcGU+PjJdKSsodzw8Mik+PjJdPW0sISgoMHx3KT49KDB8YykpOyl7Zm9yKEQ9bSstMXwwLEE9''@;'; + put 'put ''MCxiPW0sUj1NPTB8YVs0KyhHPTB8YVsoaz1sKyh3PDwyKXwwKT4+Ml0pPj4yXTshKCgwfEEpPj0oMHxSKSk7KWFbKFI9KDB8YVtLPj4yXSkrKGI8PDQpfDApPj4yXT1hWyhwPSgwfGFbRz4+Ml0pKyhBPDw0KXwwKT4+Ml0sYVtSKzQ+PjJdPWFbcCs0Pj4yXSxhW1IrOD4+Ml09YVtwKzg+PjJd''@;'; + put 'put ''LGFbUisxMj4+Ml09YVtwKzEyPj4yXSxhWygwfGFbZ2U+PjJdKSsoYjw8Mik+PjJdPVI9YisxfDAsYVsocD0wfGFbYmU+PjJdKSsoYjw8Mik+PjJdPWIrLTEsQT1BKzF8MCxiPVIsUj0wfGFbNCsoT2U9MHxhW2s+PjJdKT4+Ml0sRz1PZTthWygwfGFbZ2U+PjJdKSsoKE9lPUQrTXwwKTw8Mik+''@;'; + put 'put ''PjJdPW0sYVtwKyhtPDwyKT4+Ml09T2UsbT1iLHc9dysxfDB9IWZ1bmN0aW9uIFM2KGwpe2FbMjQrKGx8PTApPj4yXT0wfGZ1bmN0aW9uIE9kKGwpe3ZhciBwLG0sYz0wLGY9MDtmb3IobT0wfEIwKChwPTIrKGx8PTApfDApPDwyKSxjPTB8c2goMHxBcihsLGwpLDgpLGY9MDshKCgwfGYpPj0o''@;'; + put 'put ''MHxsKSk7KWFbbSsoZjw8Mik+PjJdPWMsYz1jKyhsPDwzKXwwLGY9ZisxfDA7Zm9yKDshKCgwfGwpPj0oMHxwKSk7KWFbbSsobDw8Mik+PjJdPTAsbD1sKzF8MDtyZXR1cm4gMHxtfSgwfGFbbCs0Pj4yXSksZnVuY3Rpb24gaDUobCl7dmFyIGYsQSx3LGIsTSxELFIsRyxjPTAscD0wLG09MCxr''@;'; + put 'put ''PTAsSz0wLHBlPTA7Zm9yKEc9YWUsYWU9YWUrMzJ8MCx3PUcrMTZ8MCxBPUcsYj0wfGFbNCsobHw9MCk+PjJdLE09MHxhW2wrOD4+Ml0sRD0wfGFbbCsxNj4+Ml0sUj0wfGFbbCsyMD4+Ml0sZj0wfGFbbCsyND4+Ml0sYz0wOyEoKDB8Yyk+PSgwfGIpKTspe2ZvcihtPU0rKChLPTB8YVtSKyhj''@;'; + put 'put ''PDwyKT4+Ml0pPDw0KXwwLGFbQT4+Ml09YVsocD1NKyhjPDw0KXwwKT4+Ml0sYVtBKzQ+PjJdPWFbcCs0Pj4yXSxhW0ErOD4+Ml09YVtwKzg+PjJdLGFbQSsxMj4+Ml09YVtwKzEyPj4yXSxhW3c+PjJdPWFbbT4+Ml0sYVt3KzQ+PjJdPWFbbSs0Pj4yXSxhW3crOD4+Ml09YVttKzg+PjJdLGFb''@;'; + put 'put ''dysxMj4+Ml09YVttKzEyPj4yXSxwZT0rejQoQSx3KSxfWyhtPTB8YVtmKyhjPDwyKT4+Ml0pKyhLPDwzKT4+M109cGUsX1soMHxhW2YrKEs8PDIpPj4yXSkrKGM8PDMpPj4zXT1wZSxsPSgwfEspPT0oMHwobD1jKy0xfDApKT9jKy0yfDA6bDshKCgwfGwpPD0tMSk7KTB8WTEoYyxsLE0sRCxS''@;'; + put 'put ''KSYmMHxZMShsLGMsTSxELFIpJiYoaz1NKyhsPDw0KXwwLGFbQT4+Ml09YVtwPj4yXSxhW0ErND4+Ml09YVtwKzQ+PjJdLGFbQSs4Pj4yXT1hW3ArOD4+Ml0sYVtBKzEyPj4yXT1hW3ArMTI+PjJdLGFbdz4+Ml09YVtrPj4yXSxhW3crND4+Ml09YVtrKzQ+PjJdLGFbdys4Pj4yXT1hW2srOD4+''@;'; + put 'put ''Ml0sYVt3KzEyPj4yXT1hW2srMTI+PjJdLDB8ZDUoQSx3LGIsYixiLE0sRCkpJiYoYVtBPj4yXT1hW3A+PjJdLGFbQSs0Pj4yXT1hW3ArND4+Ml0sYVtBKzg+PjJdPWFbcCs4Pj4yXSxhW0ErMTI+PjJdPWFbcCsxMj4+Ml0sYVt3Pj4yXT1hW2s+PjJdLGFbdys0Pj4yXT1hW2srND4+Ml0sYVt3''@;'; + put 'put ''Kzg+PjJdPWFbays4Pj4yXSxhW3crMTI+PjJdPWFbaysxMj4+Ml0scGU9K3o0KEEsdyksX1ttKyhsPDwzKT4+M109cGUsX1soMHxhW2YrKGw8PDIpPj4yXSkrKGM8PDMpPj4zXT1wZSksbD1sKy0xfDA7Yz1jKzF8MH1hZT1HfShsKX0oZil9ZWxzZSBmPTA7cmV0dXJuIDB8Zn1mdW5jdGlvbiAk''@;'; + put 'put ''dihsKXtyZXR1cm4gMHwoKGx8PTApPzB8QjAobCk6MCl9ZnVuY3Rpb24gXzYobCxjKXtjfD0wO3ZhciBmLHAsbSxBLHcsYixrLE09MCxEPTA7Zm9yKGs9YWUsYWU9YWUrNDh8MCx3PWsrMzJ8MCxBPWsrMTZ8MCxtPWssYj0wfGFbKGx8PTApPj4yXSxwPShmPTB8YVtsKzQ+PjJdKS0xfDAsbD0w''@;'; + put 'put ''Ozspe2lmKCgwfGwpPj0oMHxmKSl7bD0xO2JyZWFrfWlmKE09YisobDw8NCl8MCxhW20+PjJdPWFbKEQ9YisoKChwK2x8MCklKDB8Zil8MCk8PDQpfDApPj4yXSxhW20rND4+Ml09YVtEKzQ+PjJdLGFbbSs4Pj4yXT1hW0QrOD4+Ml0sYVttKzEyPj4yXT1hW0QrMTI+PjJdLGFbQT4+Ml09YVtN''@;'; + put 'put ''Pj4yXSxhW0ErND4+Ml09YVtNKzQ+PjJdLGFbQSs4Pj4yXT1hW00rOD4+Ml0sYVtBKzEyPj4yXT1hW00rMTI+PjJdLGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLDE9PSgwfFVjKG0sQSx3KSkpe2w9''@;'; + put 'put ''MDticmVha31sPWwrMXwwfXJldHVybiBhZT1rLDB8bH1mdW5jdGlvbiBxdihsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixNLEQsUixHLEssYmUsQT0wLHc9MCxrPTAscGU9MCxnZT0wO2ZvcihiZT1hZSxhZT1hZSs2NHwwLEQ9YmUrNDh8MCxNPWJlKzMyfDAscGU9''@;'; + put 'put ''NCxrPTB8QjAoNDApLGFbaz4+Ml09MCxSPWJlKzE2fDAsRz1iZSxLPTB8YVtmPj4yXSxiPTB8YVtmKzQ+PjJdLHBlPTB8UGYoMTg5NjgwLDEsMHxrLDB8cGUpLGs9RG4sZj1Nbj0wLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtmPj4yXSwwfHBlLDB8aykpfHx6ZSgwfGYs''@;'; + put 'put ''MHx4biksRG49eG4pOkE9LTEsZj0xPT0oMHxBKT9EbjowOzspe2lmKDB8Zil7Zj0tMTticmVha31pZihNbj0wLGFbRD4+Ml09YVtwPj4yXSxhW0QrND4+Ml09YVtwKzQ+PjJdLGFbRCs4Pj4yXT1hW3ArOD4+Ml0sYVtEKzEyPj4yXT1hW3ArMTI+PjJdLFoxKDI4LDB8UiwwfEQpLGY9TW4sTW49''@;'; + put 'put ''MCwwIT0oMHxmKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW2Y+PjJdLDB8cGUsMHxrKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6QT0tMSwxIT0oMHxBKSlpZihhW3A+PjJdPWFbUj4+Ml0sYVtwKzQ+PjJdPWFbUis0Pj4yXSxhW3ArOD4+Ml09YVtSKzg+PjJdLGFbcCsxMj4+Ml09YVtSKzEyPj4y''@;'; + put 'put ''XSxNbj0wLGFbRD4+Ml09YVsodz1wKzE2fDApPj4yXSxhW0QrND4+Ml09YVt3KzQ+PjJdLGFbRCs4Pj4yXT1hW3crOD4+Ml0sYVtEKzEyPj4yXT1hW3crMTI+PjJdLFoxKDI4LDB8RywwfEQpLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW2Y+PjJdLDB8cGUsMHxr''@;'; + put 'put ''KSl8fHplKDB8ZiwwfHhuKSxEbj14bik6QT0tMSwxIT0oMHxBKSlpZihhW3c+PjJdPWFbRz4+Ml0sYVt3KzQ+PjJdPWFbRys0Pj4yXSxhW3crOD4+Ml09YVtHKzg+PjJdLGFbdysxMj4+Ml09YVtHKzEyPj4yXSxhWzQ3NDU5XT0wLE1uPTAsc3MoMTE1LDQpLGY9TW4sTW49MCwwIT0oMHxmKSYw''@;'; + put 'put ''IT0oMHx4bik/KChBPTB8Z2koMHxhW2Y+PjJdLDB8cGUsMHxrKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6QT0tMSwxIT0oMHxBKSl7aWYoQT0wfGFbNDc0NjBdLGFbNDc0NTldPTErKGY9MHxhWzQ3NDU5XSksYVsoZj1BKyhmPDw0KXwwKT4+Ml09YVtLPj4yXSxhW2YrND4+Ml09YVtLKzQ+PjJd''@;'; + put 'put ''LGFbZis4Pj4yXT1hW0srOD4+Ml0sYVtmKzEyPj4yXT1hW0srMTI+PjJdLE1uPTAsYVtNPj4yXT1hW3A+PjJdLGFbTSs0Pj4yXT1hW3ArND4+Ml0sYVtNKzg+PjJdPWFbcCs4Pj4yXSxhW00rMTI+PjJdPWFbcCsxMj4+Ml0sYVtEPj4yXT1hW3c+PjJdLGFbRCs0Pj4yXT1hW3crND4+Ml0sYVtE''@;'; + put 'put ''Kzg+PjJdPWFbdys4Pj4yXSxhW0QrMTI+PjJdPWFbdysxMj4+Ml0sZj0wfGMxKDEsMHxsLDB8YywwfEssMHxiLDB8TSwwfEQpLEE9TW4sTW49MCwwIT0oMHxBKSYwIT0oMHx4bik/KCh3PTB8Z2koMHxhW0E+PjJdLDB8cGUsMHxrKSl8fHplKDB8QSwwfHhuKSxEbj14bik6dz0tMSwxIT0oMHx3''@;'; + put 'put ''KSl7Z2U9ODticmVha31mPURufWVsc2UgZj1EbjtlbHNlIGY9RG47ZWxzZSBmPURufXJldHVybiA4PT0oMHxnZSkmJigtMT09KDB8Zik/Zj0tMTooYVttKzQ+PjJdPWFbNDc0NTldLGFbbT4+Ml09YVs0NzQ2MF0sZj0wKSksRnQoMHxwZSksYWU9YmUsMHxmfWZ1bmN0aW9uIGE1KGwsYyl7dmFy''@;'; + put 'put ''IGYscCxtLEEsdztsfD0wLEE9K0QwKCsodz0obT0rX1socD04KyhjfD0wKXwwKT4+M10pKm0rKGY9K19bYz4+M10pKmYpKSx3PjFlLTYmJihfW2M+PjNdPWYvQSxfW3A+PjNdPW0vQSksYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wr''@;'; + put 'put ''MTI+PjJdPWFbYysxMj4+Ml19ZnVuY3Rpb24gVUUobCl7dmFyIG0sYz0wLGY9MCxwPTA7bT1hZSxhZT1hZSszMnwwLHA9bSsxNnwwLGY9bSwoMHxhWzQ3NDYzXSk8KDB8KGx8PTApKSYmKChjPTB8YVs0NzQ2MF0pPyhmPTB8VWEoYyxsPDw0KSxhWzQ3NDYwXT1mLGZ8fChmPTB8YVsxNTcxMl0s''@;'; + put 'put ''YVtwPj4yXT0xNDE4MzEsYVtwKzQ+PjJdPTUzNyxhW3ArOD4+Ml09MTQxOTg0LFQwKGYsMTQxODM5LHApLHplKDE4OTY4MCwxKSkpOihwPTB8QjAobDw8NCksYVs0NzQ2MF09cCxwfHwocD0wfGFbMTU3MTJdLGFbZj4+Ml09MTQxODMxLGFbZis0Pj4yXT01MzEsYVtmKzg+PjJdPTE0MTk2NixU''@;'; + put 'put ''MChwLDE0MTgzOSxmKSx6ZSgxODk2ODAsMSkpKSxhWzQ3NDYzXT1sKSxhZT1tfWZ1bmN0aW9uIHJfKGwsYyl7dmFyIGYscDtyZXR1cm4rICtEMCgrKChwPStfWzgrKGN8PTApPj4zXS0rX1s4KyhsfD0wKT4+M10pKnArKGY9K19bYz4+M10tK19bbD4+M10pKmYpKX1mdW5jdGlvbiBFbShsKXt2''@;'; + put 'put ''YXIgYztyZXR1cm4rKGM9MS0obD0rbCkpKmMqKDMqbCl9ZnVuY3Rpb24gX2YobCxjLGYpe3ZhciBwO2x8PTAsX1soY3w9MCk+PjNdPStfW2M+PjNdKihmPStmKSxfWyhwPWMrOHwwKT4+M109K19bcD4+M10qZixhW2w+PjJdPWFbYz4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+Ml09''@;'; + put 'put ''YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXX1mdW5jdGlvbiBEZChsKXtyZXR1cm4rKGw9K2wpKmwqMyooMS1sKX1mdW5jdGlvbiBRRShsLGMsZil7dmFyIHA7bHw9MCxfWyhjfD0wKT4+M109K19bYz4+M10rICtfWyhmfD0wKT4+M10sX1socD1jKzh8MCk+PjNdPStfW3A+PjNdKyAr''@;'; + put 'put ''X1tmKzg+PjNdLGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdfWZ1bmN0aW9uIGVBKGwsYyxmKXt2YXIgcDtsfD0wLF9bKGN8PTApPj4zXT0rX1tjPj4zXS0rX1soZnw9MCk+PjNdLF9bKHA9Yys4fDAp''@;'; + put 'put ''Pj4zXT0rX1twPj4zXS0rX1tmKzg+PjNdLGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdfWZ1bmN0aW9uIERCKGwpe3JldHVybisobD0xLShsPStsKSkqbCpsfWZ1bmN0aW9uIEpFKGwpe3JldHVybiso''@;'; + put 'put ''bD0rbCkqbCpsfWZ1bmN0aW9uIG9fKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihmPTAscD0xOyEoKDB8cCk+PSgwfGMpKTspZj0rRDAoKygoQT0rX1tsKyhwPDw0KSs4Pj4zXS0rX1tsKygodz1wKy0xfDApPDw0KSs4Pj4zXSkqQSsobT0rX1tsKyhwPDw0KT4+''@;'; + put 'put ''M10tK19bbCsodzw8NCk+PjNdKSptKSkrZixwPXArMXwwO3JldHVybitmfWZ1bmN0aW9uIFcxKGwsYyxmKXtsfD0wLGN8PTA7dmFyIEEsdyxiLGssTSxiZSxPZSxSZSxWZSxxZSxudCxXZSxvdCxwPTAsbT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsTGU9MCxIZT0wLFN0PTAsa3Q9MDtv''@;'; + put 'put ''dD1hZSxhZT1hZSs2NHwwLGJlPW90KzMyfDAsUmU9KE9lPW90KSsxNnwwLFZlPTE2KyhmfD0wKXwwLHFlPWYrMzJ8MCxudD1mKzQ4fDAsV2U9Zis4fDAsQT1mKzI0fDAsdz1mKzQwfDAsYj1mKzU2fDAsaz1PZSs4fDAsTT1PZSsyNHwwLG09MDtlOmZvcig7Oyl7aWYoKDB8bSk+PSgwfGMpKXtw''@;'; + put 'put ''PTE7YnJlYWt9YVtPZT4+Ml09YVsoRD1sKyhtPDw1KXwwKT4+Ml0sYVtPZSs0Pj4yXT1hW0QrND4+Ml0sYVtPZSs4Pj4yXT1hW0QrOD4+Ml0sYVtPZSsxMj4+Ml09YVtEKzEyPj4yXSxhW1JlPj4yXT1hWyhEPWwrKG08PDUpKzE2fDApPj4yXSxhW1JlKzQ+PjJdPWFbRCs0Pj4yXSxhW1JlKzg+''@;'; + put 'put ''PjJdPWFbRCs4Pj4yXSxhW1JlKzEyPj4yXT1hW0QrMTI+PjJdLEQ9MHxjRyhmLE9lLGJlKTt0OmRve2lmKDQhPSgwfEQpKWZvcihSPStfW09lPj4zXSxHPStfW2s+PjNdLEs9K19bUmU+PjNdLHBlPStfW00+PjNdLHA9MDs7KXtpZigoMHxwKT49KDB8RCkpYnJlYWsgdDtpZighKChnZT0rX1ti''@;'; + put 'put ''ZSsocDw8Myk+PjNdKTwxZS02fGdlPi45OTk5OTl8fChIZT1nZSpnZSpnZSxrdD0zKmdlLFN0PTEtZ2UsZ2U9a3QqZ2UqU3QsTGU9U3QqU3Qsa3QqPUxlLFN0Kj1MZSxMZT0rX1tWZT4+M10qa3QrICtfW2Y+PjNdKlN0KyArX1txZT4+M10qZ2UrICtfW250Pj4zXSpIZSxIZT0rX1tBPj4zXSpr''@;'; + put 'put ''dCsgK19bV2U+PjNdKlN0KyArX1t3Pj4zXSpnZSsgK19bYj4+M10qSGUsZ2U9TGUtUixTdD1IZS1HLFN0KlN0K2dlKmdlPC4wMDEpfHwoa3Q9TGUtSyxTdD1IZS1wZSxTdCpTdCtrdCprdDwuMDAxKSkpe3A9MDticmVhayBlfXA9cCsxfDB9fXdoaWxlKDApO209bSsxfDB9cmV0dXJuIGFlPW90''@;'; + put 'put ''LDB8cH1mdW5jdGlvbiBjRyhsLGMsZil7bHw9MCxmfD0wO3ZhciBnZSxiZSxPZSxMZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTA7TGU9YWUsYWU9YWUrOTZ8MCxnZT1MZSs0OHwwLGJlPUxlKzI0fDAsaz1MZSxBPStfWzE2KyhjfD0wKT4+M10tKEc9''@;'; + put 'put ''K19bYz4+M10pLGI9K19bYysyND4+M10tKEs9K19bYys4Pj4zXSksYVsoT2U9TGUrODB8MCk+PjJdPTA7ZTpkb3tpZigwIT1BKWlmKGIvPUEsTT1sKzE2fDAsRD1sKzMyfDAsUj1sKzQ4fDAseG0oK19bbCs4Pj4zXS0rX1tsPj4zXSpiLCtfW2wrMjQ+PjNdLStfW00+PjNdKmIsK19bbCs0MD4+''@;'; + put 'put ''M10tK19bRD4+M10qYiwrX1tsKzU2Pj4zXS0rX1tSPj4zXSpiLGdlKSxfW2dlPj4zXT1iKkctSysgK19bZ2U+PjNdLHA9MHxMaChnZSxiZSksND09KDB8cCkpYz00O2Vsc2V7Zm9yKG09Z2UrOHwwLHc9Z2UrMTZ8MCxrPWdlKzI0fDAsQT0xL0EsYz0wOyEoKDB8Yyk+PSgwfHApKTspKGI9K19b''@;'; + put 'put ''YmUrKGM8PDMpPj4zXSk+PTAmYjw9MSYmKHhtKCtfW2w+PjNdLCtfW00+PjNdLCtfW0Q+PjNdLCtfW1I+PjNdLGdlKSwoSz0oK19bZ2U+PjNdLUcrKCgrX1trPj4zXSpiKyArX1t3Pj4zXSkqYisgK19bbT4+M10pKmIpKkEpPj0wJks8PTEpJiZ0QShiLGYsT2UpLGM9YysxfDA7Yz0wfGFbT2U+''@;'; + put 'put ''PjJdfWVsc2V7aWYoeG0oK19bbD4+M10sK19bbCsxNj4+M10sK19bbCszMj4+M10sK19bbCs0OD4+M10sZ2UpLF9bZ2U+PjNdPStfW2dlPj4zXS1HLHBlPTB8TGgoZ2UsYmUpLDAhPWIpe2lmKDQ9PSgwfHBlKSl7Yz00O2JyZWFrfWZvcihNPWwrOHwwLEQ9bCsyNHwwLFI9bCs0MHwwLHA9bCs1''@;'; + put 'put ''NnwwLG09Z2UrOHwwLHc9Z2UrMTZ8MCxrPWdlKzI0fDAsQT0xL2IsYz0wOyEoKDB8Yyk+PSgwfHBlKSk7KShiPStfW2JlKyhjPDwzKT4+M10pPj0wJmI8PTEmJih4bSgrX1tNPj4zXSwrX1tEPj4zXSwrX1tSPj4zXSwrX1twPj4zXSxnZSksKEc9KCtfW2dlPj4zXS1LKygoK19baz4+M10qYisg''@;'; + put 'put ''K19bdz4+M10pKmIrICtfW20+PjNdKSpiKSpBKT49MCZHPD0xKSYmdEEoYixmLE9lKSxjPWMrMXwwO2M9MHxhW09lPj4yXTticmVha314bSgrX1tsKzg+PjNdLCtfW2wrMjQ+PjNdLCtfW2wrNDA+PjNdLCtfW2wrNTY+PjNdLGdlKSxfW2dlPj4zXT0rX1tnZT4+M10tSyxjPTQ9PSgwfCh3PTB8''@;'; + put 'put ''TGgoZ2UsaykpKTt0OmRve2lmKDQ9PSgwfHBlKSl7aWYoYyl7Yz00O2JyZWFrIGV9Zm9yKGM9MDs7KXtpZigoMHxjKT49KDB8dykpYnJlYWsgdDt0QSgrX1trKyhjPDwzKT4+M10sZixPZSksYz1jKzF8MH19ZWxzZXtpZihjKWZvcihjPTA7Oyl7aWYoKDB8Yyk+PSgwfHBlKSlicmVhayB0O3RB''@;'; + put 'put ''KCtfW2JlKyhjPDwzKT4+M10sZixPZSksYz1jKzF8MH1lbHNlIHA9MDtmb3IoOzspe2lmKCgwfHApPj0oMHxwZSkpYnJlYWsgdDtmb3IobT1iZSsocDw8Myl8MCxjPTA7ISgoMHxjKT49KDB8dykpOykoQT0rX1ttPj4zXSk9PStfW2srKGM8PDMpPj4zXSYmdEEoQSxmLE9lKSxjPWMrMXwwO3A9''@;'; + put 'put ''cCsxfDB9fX13aGlsZSgwKTtjPTB8YVtPZT4+Ml19fXdoaWxlKDApO3JldHVybiBhZT1MZSwwfGN9ZnVuY3Rpb24geG0obCxjLGYscCxtKXtfWzI0KyhtfD0wKT4+M109KHA9K3ApLShsPStsKSszKigoYz0rYyktKGY9K2YpKSxfW20rMTY+PjNdPTMqKGYrbCktNipjLF9bbSs4Pj4zXT0zKihj''@;'; + put 'put ''LWwpLF9bbT4+M109bH1mdW5jdGlvbiB0QShsLGMsZil7Znw9MDt2YXIgcD0wOyhsPStsKT49MCZsPD0xJiYoX1soY3w9MCkrKChwPTB8YVtmPj4yXSk8PDMpPj4zXT1sLGFbZj4+Ml09cCsxKX1mdW5jdGlvbiBzNShsLGMpe3JldHVybisoK19bOCsoY3w9MCk+PjNdKitfWzgrKGx8PTApPj4z''@;'; + put 'put ''XSsgK19bYz4+M10qK19bbD4+M10pfWZ1bmN0aW9uIFhFKGwpe3ZhciBjO3JldHVybisoYz0xLShsPStsKSkqYyooYyszKmwpfWZ1bmN0aW9uIExCKGwpe3JldHVybisobD0rbCkqbCooMyooMS1sKStsKX1mdW5jdGlvbiB1NShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIGJlLE9lLExlLFJl''@;'; + put 'put ''LFZlLHFlLFN0LHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLEhlPTAsbnQ9MCxXZT0wLG90PTAsa3Q9MDtTdD1hZSxhZT1hZSsxMTJ8MCxudD1TdCs4MHwwLHFlPVN0KzY0fDAsVmU9U3QrNDh8MCxvdD00LFdlPTB8QjAoNDApLGFbV2U+PjJd''@;'; + put 'put ''PTAsYmU9U3QrMzJ8MCxPZT1TdCsxNnwwLExlPVN0LFJlPVN0Kzk2fDAsb3Q9MHxQZigxODk4NTYsMSwwfFdlLDB8b3QpLFdlPURuLHA9TW49MCxNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSxw''@;'; + put 'put ''PTE9PSgwfG0pP0RuOjA7ZTpmb3IoOzspe2lmKDB8cCl7cD0tMjticmVha31pZihNbj0wLHNzKDExNiwwfGFbKEE9bCs0fDApPj4yXSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwx''@;'; + put 'put ''IT0oMHxtKSlpZihhWzQ3NTAzXT0wLGFbNDc1MDRdPTAsTW49MCxzcygxMTcsYVtBPj4yXTw8MXwwKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfG90LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDEhPSgwfG0pKXtmb3IoYVs0NzUw''@;'; + put 'put ''N109TT0oMHxhWzQ3NTA2XSkvMnwwLGFbNDc1MDhdPU0rLTEsTT0wfGFbQT4+Ml0sQT0wfGFbbD4+Ml0scD0wLG09LTEsdz1BczshKCgwfHApPj0oMHxNKSk7KXBlPShnZT13PihrdD0rX1tBKyhwPDw0KT4+M10pKT9wOm0scD1wKzF8MCxtPXBlLHc9Z2U/a3Q6dzthW09lPj4yXT1hWyhnZT1B''@;'; + put 'put ''KyhtPDw0KXwwKT4+Ml0sYVtPZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbT2UrOD4+Ml09YVtnZSs4Pj4yXSxhW09lKzEyPj4yXT1hW2dlKzEyPj4yXSxhW2JlPj4yXT1hWyhnZT1BKygoMD09KDB8bSk/TTptKSstMTw8NCl8MCk+PjJdLGFbYmUrND4+Ml09YVtnZSs0Pj4yXSxhW2JlKzg+PjJdPWFb''@;'; + put 'put ''Z2UrOD4+Ml0sYVtiZSsxMj4+Ml09YVtnZSsxMj4+Ml0sYVtMZT4+Ml09YVsoZ2U9QSsoKCgwfG0pPT0oTSstMXwwKT8wOm0rMXwwKTw8NCl8MCk+PjJdLGFbTGUrND4+Ml09YVtnZSs0Pj4yXSxhW0xlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtMZSsxMj4+Ml09YVtnZSsxMj4+Ml0sZ2U9K19bYmU+''@;'; + put 'put ''PjNdPT0oa3Q9K19bT2U+PjNdKSYma3Q9PStfW0xlPj4zXSYmK19bTGUrOD4+M10+K19bT2UrOD4+M10/MTU6MTI7dDpkb3tpZigxMj09KDB8Z2UpKXtpZihnZT0wLE1uPTAscD0wfEpzKDM2LDB8YmUsMHxPZSwwfExlKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8''@;'; + put 'put ''YVttPj4yXSwwfG90LDB8V2UpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuO2NvbnRpbnVlIGV9aWYoMT09KDB8cCkpZm9yKEE9MHxhWzQ3NTEwXSxwPTB8YVs0NzUxMV0sbT0wOzspe2lmKCgwfG0pPj0oMHxNKSlicmVhayB0O2I9MHxhW2w+PjJdLCgwfG0pPjAm''@;'; + put 'put ''JitfW2IrKG08PDQpPj4zXT09K19bYisoKEhlPW0rLTF8MCk8PDQpPj4zXSYmK19bYisobTw8NCkrOD4+M109PStfW2IrKEhlPDw0KSs4Pj4zXXx8KGFbQSsoKHBlPTB8YVs0NzUwM10pPDwzKT4+Ml09YisobTw8NCksYVtBKyhwZTw8MykrND4+Ml09QSsoKCgwfHBlKSUoMHxNKXwwKTw8Myks''@;'; + put 'put ''YVtwKyhwZTw8Mik+PjJdPUErKHBlPDwzKSxhWzQ3NTAzXT1wZSsxKSxtPW0rMXwwfWVsc2UgZ2U9MTV9fXdoaWxlKDApO3Q6ZG97aWYoMTU9PSgwfGdlKSlmb3IoZ2U9MCxiPTB8YVs0NzUxMF0scD0wfGFbNDc1MTFdLEE9TTs7KXtpZihtPUErLTF8MCwoMHxBKTw9MClicmVhayB0O2s9MHxh''@;'; + put 'put ''W2w+PjJdLCgwfEEpPCgwfE0pJiYrX1trKyhtPDw0KT4+M109PStfW2srKEE8PDQpPj4zXSYmK19baysobTw8NCkrOD4+M109PStfW2srKEE8PDQpKzg+PjNdfHwoYVtiKygoQT0wfGFbNDc1MDNdKTw8Myk+PjJdPWsrKG08PDQpLGFbYisoQTw8MykrND4+Ml09YisoKCgwfEEpJSgwfE0pfDAp''@;'; + put 'put ''PDwzKSxhW3ArKEE8PDIpPj4yXT1iKyhBPDwzKSxhWzQ3NTAzXT1BKzEpLEE9bX19d2hpbGUoMCk7aWYoTW49MCxaMSgyOSwwfHAsMHxhWzQ3NTAzXSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14''@;'; + put 'put ''bik6bT0tMSwxIT0oMHxtKSl7Yj0wLHA9MHxhWzQ3NTA0XTt0OmZvcig7Oyl7aWYoKDB8Yik+PSgwfHApKXtLPTA7YnJlYWt9Zm9yKEE9az1iKzF8MDs7KXtpZigoMHxBKT49KDB8cCkpe2I9aztjb250aW51ZSB0fWlmKE1uPTAsWjEoMzAsMHxiLDB8QSkscD1NbixNbj0wLDAhPSgwfHApJjAh''@;'; + put 'put ''PSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxtKSl7cD1Ebjtjb250aW51ZSBlfUE9QSsxfDAscD0wfGFbNDc1MDRdfX1mb3IoOyEoKDB8Syk+PSgwfHApKTspe2lmKE1uPTAsbT0wfEZsKDEwNSwwfEssMHxjKSxB''@;'; + put 'put ''PU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygoYj0wfGdpKDB8YVtBPj4yXSwwfG90LDB8V2UpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpiPS0xLDE9PSgwfGIpKXtwPURuO2NvbnRpbnVlIGV9aWYoMHxtKWJyZWFrO0s9SysxfDB9aWYoKDB8Syk9PSgwfHApKXtpZihwPTB8YVsxNTcxMl0s''@;'; + put 'put ''TW49MCxhW1ZlPj4yXT0xNDE4NTgsYVtWZSs0Pj4yXT0xOTIsYVtWZSs4Pj4yXT0xNDE4NjksSnMoMzIsMHxwLDE0MTgzOSwwfFZlKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfG90LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9''@;'; + put 'put ''PSgwfG0pKXtwPURuO2NvbnRpbnVlfWdlPTQxO2JyZWFrfWZvcihwZT1jKzE2fDAsaz0wOyEoKDB8ayk+PSgwfHApKTspe2lmKE1uPTAsbT0wfEZsKDEwNSwwfGssMHxwZSksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKGI9MHxnaSgwfGFbQT4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8''@;'; + put 'put ''QSwwfHhuKSxEbj14bik6Yj0tMSwxPT0oMHxiKSl7cD1Ebjtjb250aW51ZSBlfWlmKDB8bSlicmVhaztrPWsrMXwwfWlmKCgwfGspPT0oMHxwKSl7aWYocD0wfGFbMTU3MTJdLE1uPTAsYVtxZT4+Ml09MTQxODU4LGFbcWUrND4+Ml09MjAwLGFbcWUrOD4+Ml09MTQxOTAyLEpzKDMyLDB8cCwx''@;'; + put 'put ''NDE4MzksMHxxZSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxtKSl7cD1Ebjtjb250aW51ZX1nZT00ODticmVha31pZihNbj0wLHA9MHxGbCgxMDYsMHxLLDB8ayksbT1N''@;'; + put 'put ''bixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxIT0oMHxBKSl7aWYoIXApe2lmKHA9MHxhWzE1NzEyXSxNbj0wLGFbbnQ+PjJdPTE0MTg1OCxhW250KzQ+PjJdPTIwNyxhW250Kzg+PjJdPTE0''@;'; + put 'put ''MTk0MCxKcygzMiwwfHAsMTQxODM5LDB8bnQpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8b3QsMHxXZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMT09KDB8bSkpe3A9RG47Y29udGludWV9aWYoTW49MCxzcygxMTgsMikscD1NbixNbj0w''@;'; + put 'put ''LDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxtKSl7cD1Ebjtjb250aW51ZX1nZT01MzticmVha31pZigoMHxLKT09KDB8aykpe2lmKE1uPTAsc3MoMTE4LDIpLHA9TW4sTW49MCwwIT0oMHxw''@;'; + put 'put ''KSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8b3QsMHxXZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMT09KDB8bSkpe3A9RG47Y29udGludWV9Z2U9NTY7YnJlYWt9aWYoYVtSZT4+Ml09YyxhW1JlKzQ+PjJdPTAsYVsobT1SZSs4fDApPj4yXT1wZSxhW1JlKzEyPj4yXT0w''@;'; + put 'put ''LE1uPTAsWjEoMzEsMSwwfFJlKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtwPj4yXSwwfG90LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKXthWzQ3NTA5XT1hWzQ3NTA3XSxSPUs7dDpmb3IoOzspe2lmKC0xPT0oMHxSKSl7QT1t''@;'; + put 'put ''LHA9MDticmVha31mb3IoYVsoRz0wfGFbNDc1MTNdKSsoNTIqUnwwKT4+Ml09MixwPTA7Oyl7aWYoKDB8cCk+PTMpe2dlPTY1O2JyZWFrfWlmKDB8KGdlPTB8YVtHKyg1MipSfDApKzQrKHA8PDQpKzEyPj4yXSkmJjE9PSgwfGFbZ2U+PjJdKSl7Z2U9Njg7YnJlYWt9cD1wKzF8MH1pZig2NT09''@;'; + put 'put ''KDB8Z2UpKWlmKGdlPTAsMz09KDB8cCkpe2lmKE1uPTAscD0wfEpzKDM2LDB8cGUsMHxhW2FbKHA9MHxhWzQ3NTA1XSkrKGFbNDc1MDddPDwyKT4+Ml0+PjJdLDB8YVsoaz0wfGFbcCsoYVs0NzUwOF08PDIpPj4yXSk+PjJdKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygoYj0wfGdp''@;'; + put 'put ''KDB8YVtBPj4yXSwwfG90LDB8V2UpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpiPS0xLDE9PSgwfGIpKXtwPURuO2NvbnRpbnVlIGV9RD0oYj0xPT0oMHxwKSk/bTprLGI9Yj9rOm19ZWxzZSBnZT02ODtpZig2OD09KDB8Z2UpKXtpZihnZT0wLE1uPTAscD0wfEpzKDM2LDB8YVsoaz0wfGFbRyso''@;'; + put 'put ''NTIqUnwwKSs0KyhwPDw0KT4+Ml0pPj4yXSwwfGFbYVtHKyg1MipSfDApKzQrKCgocCsxfDApJTN8MCk8PDQpKzQ+PjJdPj4yXSwwfGFbKE09MHxhW0crKDUyKlJ8MCkrNCsocDw8NCkrND4+Ml0pPj4yXSksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKGI9MHxnaSgwfGFbQT4+Ml0s''@;'; + put 'put ''MHxvdCwwfFdlKSl8fHplKDB8QSwwfHhuKSxEbj14bik6Yj0tMSwxPT0oMHxiKSl7cD1Ebjtjb250aW51ZSBlfUQ9KGI9MT09KDB8cCkpP2s6TSxiPWI/TTprfWRve2lmKCgwfFIpPT0oMHxLKSl7aWYoTW49MCxaMSgzMSwyLDB8YikscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKEE9''@;'; + put 'put ''MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1Ebjtjb250aW51ZSBlfWlmKE1uPTAsWjEoMzEsMSwwfEQpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8b3QsMHxXZSkpfHx6ZSgw''@;'; + put 'put ''fHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe3A9RG47Y29udGludWUgZX1wPTB9ZWxzZXtpZigoMHxhWyhNPTB8YVs0NzUwNV0pKyhhWzQ3NTA3XTw8Mik+PjJdKSE9KDB8RCkmJigwfGFbTSsoYVs0NzUwOF08PDIpPj4yXSkhPSgwfEQpKXtpZihNbj0wLGI9MHxhMCgzNCwwfEQpLHA9''@;'; + put 'put ''TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8b3QsMHxXZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe3A9RG47Y29udGludWUgZX1pZihNbj0wLFoxKDMyLDIsMHxiKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoQT0w''@;'; + put 'put ''fGdpKDB8YVtwPj4yXSwwfG90LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuO2NvbnRpbnVlIGV9aWYoTW49MCxaMSgzMSwxLDB8RCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8''@;'; + put 'put ''cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1Ebjtjb250aW51ZSBlfWlmKCgwfGIpPD0oMHxhWzQ3NTA5XSkpe3A9MDticmVha31hWzQ3NTA5XT1iLHA9MDticmVha31pZihNbj0wLGs9MHxhMCgzNCwwfGIpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxh''@;'; + put 'put ''W3A+PjJdLDB8b3QsMHxXZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe3A9RG47Y29udGludWUgZX1pZihNbj0wLFoxKDMyLDEsMHxrKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtwPj4yXSwwfG90LDB8V2UpKXx8emUoMHxwLDB8eG4p''@;'; + put 'put ''LERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuO2NvbnRpbnVlIGV9aWYoTW49MCxaMSgzMSwyLDB8YikscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbcD4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1Ebjtjb250''@;'; + put 'put ''aW51ZSBlfWlmKCgwfGspPj0oMHxhWzQ3NTA5XSkpe3A9MDticmVha31hWzQ3NTA5XT1rLHA9MH19d2hpbGUoMCk7Zm9yKDs7KXtpZigoMHxwKT49Myl7Uj0tMTtjb250aW51ZSB0fWlmKDB8KEE9MHxhW0crKDUyKlJ8MCkrNCsocDw8NCkrMTI+PjJdKSYmMT09KDB8YVtBPj4yXSkpYnJlYWs7''@;'; + put 'put ''cD1wKzF8MH1SPShBLSgwfGFbNDc1MTNdKXwwKS81MnwwfWZvcig7QTspQT0wfGFbQSs0Pj4yXSxwPXArMXwwO2lmKE1uPTAsc3MoMTE4LDB8cCksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKGI9MHxnaSgwfGFbQT4+Ml0sMHxvdCwwfFdlKSl8fHplKDB8QSwwfHhuKSxEbj14bik6''@;'; + put 'put ''Yj0tMSwxIT0oMHxiKSl7Z2U9OTQ7YnJlYWt9cD1Ebn1lbHNlIHA9RG59ZWxzZSBwPURufWVsc2UgcD1Ebn1lbHNlIHA9RG47ZWxzZSBwPURufWlmKDQxPT0oMHxnZSkpcD0tMTtlbHNlIGlmKDQ4PT0oMHxnZSkpcD0tMTtlbHNlIGlmKDUzPT0oMHxnZSkpYVtmKzQ+PjJdPTIsYVsocD0wfGFb''@;'; + put 'put ''NDc1MTJdKT4+Ml09YVtjPj4yXSxhW3ArND4+Ml09YVtjKzQ+PjJdLGFbcCs4Pj4yXT1hW2MrOD4+Ml0sYVtwKzEyPj4yXT1hW2MrMTI+PjJdLGFbKFdlPXArMTZ8MCk+PjJdPWFbcGU+PjJdLGFbV2UrND4+Ml09YVtwZSs0Pj4yXSxhW1dlKzg+PjJdPWFbcGUrOD4+Ml0sYVtXZSsxMj4+Ml09''@;'; + put 'put ''YVtwZSsxMj4+Ml0sYVtmPj4yXT1wLHA9MDtlbHNlIGlmKDU2PT0oMHxnZSkpYVtmKzQ+PjJdPTIsYVsocD0wfGFbNDc1MTJdKT4+Ml09YVtjPj4yXSxhW3ArND4+Ml09YVtjKzQ+PjJdLGFbcCs4Pj4yXT1hW2MrOD4+Ml0sYVtwKzEyPj4yXT1hW2MrMTI+PjJdLGFbKFdlPXArMTZ8MCk+PjJd''@;'; + put 'put ''PWFbcGU+PjJdLGFbV2UrND4+Ml09YVtwZSs0Pj4yXSxhW1dlKzg+PjJdPWFbcGUrOD4+Ml0sYVtXZSsxMj4+Ml09YVtwZSsxMj4+Ml0sYVtmPj4yXT1wLHA9MDtlbHNlIGlmKDk0PT0oMHxnZSkpe2ZvcihhW2YrND4+Ml09cCxBPTB8YVs0NzUxMl07cD1wKy0xfDAsbTspYVsoV2U9QSsocDw8''@;'; + put 'put ''NCl8MCk+PjJdPWFbKG50PTB8YVttPj4yXSk+PjJdLGFbV2UrND4+Ml09YVtudCs0Pj4yXSxhW1dlKzg+PjJdPWFbbnQrOD4+Ml0sYVtXZSsxMj4+Ml09YVtudCsxMj4+Ml0sbT0wfGFbbSs0Pj4yXTthW2Y+PjJdPUEscD0wfXJldHVybiBGdCgwfG90KSxhZT1TdCwwfHB9ZnVuY3Rpb24gSmYo''@;'; + put 'put ''bCxjLGYpe3ZhciBtLHA9MDtyZXR1cm4gMHwoKHA9KCtfWyhmfD0wKT4+M10tKG09K19bKGN8PTApPj4zXSkpKigrX1s4KyhsfD0wKT4+M10tKHA9K19bYys4Pj4zXSkpLSgrX1tsPj4zXS1tKSooK19bZis4Pj4zXS1wKSk+MD8xOnA8MD8yOjMpfWZ1bmN0aW9uIHJBKGwsYyxmLHApe2N8PTA7''@;'; + put 'put ''dmFyIGIsayxNLG09MCxBPTAsdz0wO009MT09KDB8SmYobT0wfGFbYVsoZnw9MCkrKCgoKGx8PTApLTErKHB8PTApfDApJSgwfHApfDApPDwyKT4+Ml0+PjJdLGI9MHxhW2FbZisobDw8Mik+PjJdPj4yXSxBPTB8YVthW2YrKCgobCsxfDApJSgwfHApfDApPDwyKT4+Ml0+PjJdKSksaz0wfGFb''@;'; + put 'put ''YVtmKyhjPDwyKT4+Ml0+PjJdLE0/MT09KDB8SmYoYixrLG0pKT8obT0wfEpmKGssYixBKSxBPTEsdz01KTptPTA6KG09MHxKZihiLGssQSksQT0yLHc9NSk7ZTpkb3tpZig1PT0oMHx3KSlpZigoMHxtKT09KDB8QSkpZm9yKG09MDs7KXtpZigoMHxtKT49KDB8cCkpe209MTticmVhayBlfWlm''@;'; + put 'put ''KEE9bSwhKCgwfCh3PSgwfChtPW0rMXwwKSklKDB8cCl8MCkpPT0oMHxjKXwoMHxBKT09KDB8Yyl8KDB8QSk9PSgwfGwpfCgwfHcpPT0oMHxsKSkmJjB8bF8oYixrLDB8YVthW2YrKEE8PDIpPj4yXT4+Ml0sMHxhW2FbZisodzw8Mik+PjJdPj4yXSkpe209MDticmVha319ZWxzZSBtPTB9d2hp''@;'; + put 'put ''bGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiAkRShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIEEscD0wLG09MCx3PTA7Zm9yKCgwfChwPTB8YVs0NzUwNF0pKTwoMHwobT0wfGFbNDc1MTVdKSk/dz1wOihmdW5jdGlvbiBUbShsKXt2YXIgbSxjPTAsZj0wLHA9MDttPWFlLGFlPWFlKzMyfDAs''@;'; + put 'put ''cD1tKzE2fDAsZj1tLCgwfGFbNDc1MTVdKTwoMHwobHw9MCkpJiYoKGM9MHxhWzQ3NTEzXSk/KGY9MHxVYShjLDUyKmx8MCksYVs0NzUxM109ZixmfHwoZj0wfGFbMTU3MTJdLGFbcD4+Ml09MTQxODU4LGFbcCs0Pj4yXT01NTgsYVtwKzg+PjJdPTE0MjA0MyxUMChmLDE0MTgzOSxwKSx6ZSgx''@;'; + put 'put ''ODk4NTYsMSkpKToocD0wfEIwKDUyKmx8MCksYVs0NzUxM109cCxwfHwocD0wfGFbMTU3MTJdLGFbZj4+Ml09MTQxODU4LGFbZis0Pj4yXT01NTIsYVtmKzg+PjJdPTE0MjAyNCxUMChwLDE0MTgzOSxmKSx6ZSgxODk4NTYsMSkpKSxhWzQ3NTE1XT1sKSxhZT1tfShtKzIwfDApLHc9MHxhWzQ3''@;'; + put 'put ''NTA0XSksQT0wfGFbNDc1MTNdLGFbNDc1MDRdPXcrMSxhWyhtPUErKDUyKnd8MCl8MCk+PjJdPTAsYVtBKyg1Mip3fDApKzQ+PjJdPWwsYVtBKyg1Mip3fDApKzg+PjJdPWMsYVtBKyg1Mip3fDApKzE2Pj4yXT0wLGFbQSsoNTIqd3wwKSsyMD4+Ml09YyxhW0ErKDUyKnd8MCkrMjQ+PjJdPWYs''@;'; + put 'put ''YVtBKyg1Mip3fDApKzMyPj4yXT0wLGFbQSsoNTIqd3wwKSszNj4+Ml09ZixhW0ErKDUyKnd8MCkrNDA+PjJdPWwsYVtBKyg1Mip3fDApKzQ4Pj4yXT0wLHA9MDszIT0oMHxwKTspYVtBKyg1Mip3fDApKzQrKHA8PDQpKzg+PjJdPW0scD1wKzF8MH1mdW5jdGlvbiBsXyhsLGMsZixwKXtwfD0w''@;'; + put 'put ''O3ZhciBBLG09MCx3PTAsYj0wO3JldHVybiAzIT0oMHwoQT0wfEpmKGx8PTAsY3w9MCxmfD0wKSkpJiYzIT0oMHwodz0wfEpmKGwsYyxwKSkpJiYzIT0oMHwoYj0wfEpmKGYscCxsKSkpJiYzIT0oMHwobT0wfEpmKGYscCxjKSkpPygxPT0oMHxBKV4xPT0oMHx3KSkmKDE9PSgwfGIpXjE9PSgw''@;'; + put 'put ''fG0pKSYxfDA6MD09KDB8YzUobCxjLGYpKSYmMD09KDB8YzUobCxjLHApKSYmMD09KDB8YzUoZixwLGwpKT8wIT0oMHxjNShmLHAsYykpfDA6MX1mdW5jdGlvbiBjNShsLGMsZil7dmFyIHAsdyxtPTAsQT0wO3JldHVybiB3PStfWyhjfD0wKT4+M10tKG09K19bKGx8PTApPj4zXSkscD0rX1tj''@;'; + put 'put ''Kzg+PjNdLShBPStfW2wrOD4+M10pLG09K19bKGZ8PTApPj4zXS1tLEE9K19bZis4Pj4zXS1BLDB8KDM9PSgwfEpmKGwsYyxmKSkmJkEqcCttKnc+PTA/QSpBK20qbTw9cCpwK3cqdyYxOjApfWZ1bmN0aW9uIExoKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO3A9''@;'; + put 'put ''K19bMjQrKGx8PTApPj4zXTtlOmRve2lmKHA8MWUtNyZwPi0xZS03KWw9MHxleChsLGMpO2Vsc2UgZm9yKHc9K19bbCsxNj4+M10vKDMqcCksQT0rX1tsKzg+PjNdL3AsbT13KncscD0yKncqbS13KkErICtfW2w+PjNdL3AsbT0uMzMzMzMzMzMzMzMzMzMzMypBLW0sbSo9bSptKjQsQT1wKnAr''@;'; + put 'put ''bSxBPDA/KGI9K1VsKCsgK0QwKCstQSksKy1wKSxwPTIqK21qKC41KitEMCgrLW0pKSxfW2M+PjNdPXAqK2hhKC4zMzMzMzMzMzMzMzMzMzMzKmIpLF9bYys4Pj4zXT0raGEoLjMzMzMzMzMzMzMzMzMzMzMqKGIrNi4yODMxODUzMDcxNzk1ODYpKSpwLHA9K2hhKC4zMzMzMzMzMzMzMzMzMzMz''@;'; + put 'put ''KihiKy02LjI4MzE4NTMwNzE3OTU4NikpKnAsbD0yLGY9Nyk6KGI9LjUqKCtEMCgrQSktcCksbT0rbWooYikscD0rbWooLXAtYikrbSxfW2M+PjNdPXAsQT4wP2w9MToocCo9LS41LF9bYysxNj4+M109cCxsPTEsZj03KSksNz09KDB8ZikmJihfW2MrKGw8PDMpPj4zXT1wLGw9MyksZj0wOzsp''@;'; + put 'put ''e2lmKCgwfGYpPj0oMHxsKSlicmVhayBlO19bKGs9YysoZjw8Myl8MCk+PjNdPStfW2s+PjNdLXcsZj1mKzF8MH19d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBleChsLGMpe2N8PTA7dmFyIGY9MCxwPTA7Zj0rX1sxNisobHw9MCk+PjNdO2Rve2lmKGY8MWUtNyZmPi0xZS03KWw9MHx1''@;'; + put 'put ''XyhsLGMpO2Vsc2V7aWYoISgoZj0ocD0rX1tsKzg+PjNdLygyKmYpKSpwLStfW2w+PjNdL2YpPDApKXtpZigwPT1mKXtfW2M+PjNdPS1wLGw9MTticmVha31mPStEMCgrZiktcCxfW2M+PjNdPWYsX1tjKzg+PjNdPS0yKnAtZixsPTI7YnJlYWt9bD0wfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1''@;'; + put 'put ''bmN0aW9uIHVfKGwsYyl7dmFyIGYscDtyZXR1cm4gZj0rX1sobHw9MCk+PjNdLChwPStfW2wrOD4+M10pPDFlLTcmcD4tMWUtNz9sPWY8MWUtNyZmPi0xZS03PzQ6MDooX1soY3w9MCk+PjNdPS1mL3AsbD0xKSwwfGx9ZnVuY3Rpb24gY18obCl7RnQoMHxhWyhsfD0wKT4+Ml0pLEZ0KGwpfWZ1''@;'; + put 'put ''bmN0aW9uIExkKGwsYyl7Y3w9MDt2YXIgbSxiLGY9MCxwPTAsQT0wLHc9MCxrPTAsTT0wLEQ9MCxSPTA7Zm9yKGY9MHxhWzQ3NTE4XSwoMHwoYj0oMyoocD0wfGFbNCsobHw9MCk+PjJdKXwwKS0yfDApKT4oMHxhWzQ3NTE3XSk/KGY9Zj8wfFVhKGYsYjw8NCk6MHxCMChiPDw0KSxhWzQ3NTE4''@;'; + put 'put ''XT1mLGFbNDc1MTddPWIsdz1mLEE9Zik6KHc9ZixBPWYpLGFbdz4+Ml09YVsobT0wfGFbbD4+Ml0pPj4yXSxhW3crND4+Ml09YVttKzQ+PjJdLGFbdys4Pj4yXT1hW20rOD4+Ml0sYVt3KzEyPj4yXT1hW20rMTI+PjJdLG4xKHcrMTZ8MCwwfG0sMTYpLHA9cCstMXwwLGY9MSxsPTI7ISgoMHxm''@;'; + put 'put ''KT49KDB8cCkpOylrPXcrKGwrMjw8NCl8MCxNPXcrKGwrMTw8NCl8MCxhWyhSPXcrKGw8PDQpfDApPj4yXT1hWyhEPW0rKGY8PDQpfDApPj4yXSxhW1IrND4+Ml09YVtEKzQ+PjJdLGFbUis4Pj4yXT1hW0QrOD4+Ml0sYVtSKzEyPj4yXT1hW0QrMTI+PjJdLG4xKDB8TSwwfEQsMTYpLGFbaz4+''@;'; + put 'put ''Ml09YVtNPj4yXSxhW2srND4+Ml09YVtNKzQ+PjJdLGFbays4Pj4yXT1hW00rOD4+Ml0sYVtrKzEyPj4yXT1hW00rMTI+PjJdLGY9ZisxfDAsbD1sKzN8MDthWyhEPXcrKGw8PDQpfDApPj4yXT1hWyhSPW0rKGY8PDQpfDApPj4yXSxhW0QrND4+Ml09YVtSKzQ+PjJdLGFbRCs4Pj4yXT1hW1Ir''@;'; + put 'put ''OD4+Ml0sYVtEKzEyPj4yXT1hW1IrMTI+PjJdLG4xKHcrKGwrMTw8NCl8MCwwfFIsMTYpLGFbYys0Pj4yXT1iLGFbYz4+Ml09QX1mdW5jdGlvbiBVYyhsLGMsZil7dmFyIG0scD0wO3JldHVybiAwfCgocD0oK19bKGZ8PTApPj4zXS0obT0rX1soY3w9MCk+PjNdKSkqKCtfWzgrKGx8PTApPj4z''@;'; + put 'put ''XS0ocD0rX1tjKzg+PjNdKSktKCtfW2w+PjNdLW0pKigrX1tmKzg+PjNdLXApKT4xZS00PzE6KHA8LTFlLTQpPDwzMT4+MzEpfWZ1bmN0aW9uIGY1KGwsYyxmKXtmfD0wO3ZhciBwPTAsbT0wLEE9MDtyZXR1cm4gMSYobD0obT0rX1sobHw9MCk+PjNdKSE9KEE9K19bKGN8PTApPj4zXSk/bTwo''@;'; + put 'put ''cD0rX1tmPj4zXSkmcDxBPzE6QTxwP3A8bTowOihBPStfW2wrOD4+M10pPChtPStfW2YrOD4+M10pJm08KHA9K19bYys4Pj4zXSk/MTpwPG0/bTxBOjApfDB9ZnVuY3Rpb24gQzYobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIEEsdyxiLGssRCxtPTAsTT0wO0Q9YWUsYWU9YWUrNDh8MCxi''@;'; + put 'put ''PUQrMzJ8MCx3PUQrMTZ8MCxhWyhBPUQpPj4yXT1hWyhsfD0wKT4+Ml0sYVtBKzQ+PjJdPWFbbCs0Pj4yXSxhW0ErOD4+Ml09YVtsKzg+PjJdLGFbQSsxMj4+Ml09YVtsKzEyPj4yXSxhW3c+PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysx''@;'; + put 'put ''Mj4+Ml09YVtjKzEyPj4yXSxhW2I+PjJdPWFbZj4+Ml0sYVtiKzQ+PjJdPWFbZis0Pj4yXSxhW2IrOD4+Ml09YVtmKzg+PjJdLGFbYisxMj4+Ml09YVtmKzEyPj4yXSwwPT0oMHwoaz0wfFVjKEEsdyxiKSkpJiYoYVtBPj4yXT1hW2w+PjJdLGFbQSs0Pj4yXT1hW2wrND4+Ml0sYVtBKzg+PjJd''@;'; + put 'put ''PWFbbCs4Pj4yXSxhW0ErMTI+PjJdPWFbbCsxMj4+Ml0sYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sYVtiPj4yXT1hW2Y+PjJdLGFbYis0Pj4yXT1hW2YrND4+Ml0sYVtiKzg+PjJdPWFbZis4Pj4y''@;'; + put 'put ''XSxhW2IrMTI+PjJdPWFbZisxMj4+Ml0sMCE9KDB8ZjUoQSx3LGIpKSk/bT0xOk09Mztkb3tpZigzPT0oMHxNKSl7aWYoYVtBPj4yXT1hW2w+PjJdLGFbQSs0Pj4yXT1hW2wrND4+Ml0sYVtBKzg+PjJdPWFbbCs4Pj4yXSxhW0ErMTI+PjJdPWFbbCsxMj4+Ml0sYVt3Pj4yXT1hW2M+PjJdLGFb''@;'; + put 'put ''dys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sYVtiPj4yXT1hW3A+PjJdLGFbYis0Pj4yXT1hW3ArND4+Ml0sYVtiKzg+PjJdPWFbcCs4Pj4yXSxhW2IrMTI+PjJdPWFbcCsxMj4+Ml0sMD09KDB8KG09MHxVYyhBLHcsYikpKSYmKGFb''@;'; + put 'put ''QT4+Ml09YVtsPj4yXSxhW0ErND4+Ml09YVtsKzQ+PjJdLGFbQSs4Pj4yXT1hW2wrOD4+Ml0sYVtBKzEyPj4yXT1hW2wrMTI+PjJdLGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLGFbYj4+Ml09YVtw''@;'; + put 'put ''Pj4yXSxhW2IrND4+Ml09YVtwKzQ+PjJdLGFbYis4Pj4yXT1hW3ArOD4+Ml0sYVtiKzEyPj4yXT1hW3ArMTI+PjJdLDB8ZjUoQSx3LGIpKSl7bT0xO2JyZWFrfWFbQT4+Ml09YVtmPj4yXSxhW0ErND4+Ml09YVtmKzQ+PjJdLGFbQSs4Pj4yXT1hW2YrOD4+Ml0sYVtBKzEyPj4yXT1hW2YrMTI+''@;'; + put 'put ''PjJdLGFbdz4+Ml09YVtwPj4yXSxhW3crND4+Ml09YVtwKzQ+PjJdLGFbdys4Pj4yXT1hW3ArOD4+Ml0sYVt3KzEyPj4yXT1hW3ArMTI+PjJdLGFbYj4+Ml09YVtsPj4yXSxhW2IrND4+Ml09YVtsKzQ+PjJdLGFbYis4Pj4yXT1hW2wrOD4+Ml0sYVtiKzEyPj4yXT1hW2wrMTI+PjJdLGw9MHxV''@;'; + put 'put ''YyhBLHcsYiksYVtBPj4yXT1hW2Y+PjJdLGFbQSs0Pj4yXT1hW2YrND4+Ml0sYVtBKzg+PjJdPWFbZis4Pj4yXSxhW0ErMTI+PjJdPWFbZisxMj4+Ml0sYVt3Pj4yXT1hW3A+PjJdLGFbdys0Pj4yXT1hW3ArND4+Ml0sYVt3Kzg+PjJdPWFbcCs4Pj4yXSxhW3crMTI+PjJdPWFbcCsxMj4+Ml0s''@;'; + put 'put ''YVtiPj4yXT1hW2M+PjJdLGFbYis0Pj4yXT1hW2MrND4+Ml0sYVtiKzg+PjJdPWFbYys4Pj4yXSxhW2IrMTI+PjJdPWFbYysxMj4+Ml0sTT0oMHxBcihtLGspKTwwLG09KDB8QXIoMHxVYyhBLHcsYiksbCkpPj4+MzEsbT1NP206MH19d2hpbGUoMCk7cmV0dXJuIGFlPUQsMHxtfWZ1bmN0aW9u''@;'; + put 'put ''IHo0KGwsYyl7dmFyIGYscCxtLEE7cmV0dXJuIGN8PTAscD1hZSxhZT1hZSszMnwwLG09cCsxNnwwLGFbKEE9cCk+PjJdPWFbKGx8PTApPj4yXSxhW0ErND4+Ml09YVtsKzQ+PjJdLGFbQSs4Pj4yXT1hW2wrOD4+Ml0sYVtBKzEyPj4yXT1hW2wrMTI+PjJdLGFbbT4+Ml09YVtjPj4yXSxhW20r''@;'; + put 'put ''ND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLGY9K0QwKCsgK2Z1bmN0aW9uIGs2KGwsYyl7dmFyIGYscDtyZXR1cm4rKChwPStfWzgrKGx8PTApPj4zXS0rX1s4KyhjfD0wKT4+M10pKnArKGY9K19bbD4+M10tK19bYz4+M10pKmYpfShB''@;'; + put 'put ''LG0pKSxhZT1wLCtmfWZ1bmN0aW9uIFkxKGwsYyxmLHAsbSl7dmFyIEEsdyxiLGssTSxELFI7cmV0dXJuIEE9YWUsYWU9YWUrNjR8MCx3PUErNDh8MCxiPUErMzJ8MCxrPUErMTZ8MCxSPShmfD0wKSsoYVsobXw9MCkrKChsfD0wKTw8Mik+PjJdPDw0KXwwLEQ9ZisobDw8NCl8MCxwPWYrKGFb''@;'; + put 'put ''KHB8PTApKyhsPDwyKT4+Ml08PDQpfDAsbT1mKygoY3w9MCk8PDQpfDAsYVsoTT1BKT4+Ml09YVtSPj4yXSxhW00rND4+Ml09YVtSKzQ+PjJdLGFbTSs4Pj4yXT1hW1IrOD4+Ml0sYVtNKzEyPj4yXT1hW1IrMTI+PjJdLGFbaz4+Ml09YVtEPj4yXSxhW2srND4+Ml09YVtEKzQ+PjJdLGFbays4''@;'; + put 'put ''Pj4yXT1hW0QrOD4+Ml0sYVtrKzEyPj4yXT1hW0QrMTI+PjJdLGFbYj4+Ml09YVtwPj4yXSxhW2IrND4+Ml09YVtwKzQ+PjJdLGFbYis4Pj4yXT1hW3ArOD4+Ml0sYVtiKzEyPj4yXT1hW3ArMTI+PjJdLGFbdz4+Ml09YVttPj4yXSxhW3crND4+Ml09YVttKzQ+PjJdLGFbdys4Pj4yXT1hW20r''@;'; + put 'put ''OD4+Ml0sYVt3KzEyPj4yXT1hW20rMTI+PjJdLG09MHxpQShNLGssYix3KSxhZT1BLDB8bX1mdW5jdGlvbiBkNShsLGMsZixwLG0sQSx3KXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wO3ZhciBrLE0sRCxSLEssYj0wLEc9MCxwZT0wLGdlPTA7Zm9yKEs9YWUsYWU9YWUrNjR8''@;'; + put 'put ''MCxSPUsrNDh8MCxEPUsrMzJ8MCxNPUsrMTZ8MCxrPUssYj0wOzspe2lmKCgwfGIpPj0oMHxmKSl7Rz00O2JyZWFrfWlmKGdlPUErKGI8PDQpfDAscGU9QSsoYVt3KyhiPDwyKT4+Ml08PDQpfDAsYVtrPj4yXT1hW2w+PjJdLGFbays0Pj4yXT1hW2wrND4+Ml0sYVtrKzg+PjJdPWFbbCs4Pj4y''@;'; + put 'put ''XSxhW2srMTI+PjJdPWFbbCsxMj4+Ml0sYVtNPj4yXT1hW2M+PjJdLGFbTSs0Pj4yXT1hW2MrND4+Ml0sYVtNKzg+PjJdPWFbYys4Pj4yXSxhW00rMTI+PjJdPWFbYysxMj4+Ml0sYVtEPj4yXT1hW2dlPj4yXSxhW0QrND4+Ml09YVtnZSs0Pj4yXSxhW0QrOD4+Ml09YVtnZSs4Pj4yXSxhW0Qr''@;'; + put 'put ''MTI+PjJdPWFbZ2UrMTI+PjJdLGFbUj4+Ml09YVtwZT4+Ml0sYVtSKzQ+PjJdPWFbcGUrND4+Ml0sYVtSKzg+PjJdPWFbcGUrOD4+Ml0sYVtSKzEyPj4yXT1hW3BlKzEyPj4yXSwwfEM2KGssTSxELFIpKXtwPTA7YnJlYWt9Yj1iKzF8MH1lOmRve2lmKDQ9PSgwfEcpKWZvcig7Oyl7aWYoKDB8''@;'; + put 'put ''cCk+PSgwfG0pKXtwPTE7YnJlYWsgZX1pZihwZT1BKyhwPDw0KXwwLGdlPUErKGFbdysocDw8Mik+PjJdPDw0KXwwLGFbaz4+Ml09YVtsPj4yXSxhW2srND4+Ml09YVtsKzQ+PjJdLGFbays4Pj4yXT1hW2wrOD4+Ml0sYVtrKzEyPj4yXT1hW2wrMTI+PjJdLGFbTT4+Ml09YVtjPj4yXSxhW00r''@;'; + put 'put ''ND4+Ml09YVtjKzQ+PjJdLGFbTSs4Pj4yXT1hW2MrOD4+Ml0sYVtNKzEyPj4yXT1hW2MrMTI+PjJdLGFbRD4+Ml09YVtwZT4+Ml0sYVtEKzQ+PjJdPWFbcGUrND4+Ml0sYVtEKzg+PjJdPWFbcGUrOD4+Ml0sYVtEKzEyPj4yXT1hW3BlKzEyPj4yXSxhW1I+PjJdPWFbZ2U+PjJdLGFbUis0Pj4y''@;'; + put 'put ''XT1hW2dlKzQ+PjJdLGFbUis4Pj4yXT1hW2dlKzg+PjJdLGFbUisxMj4+Ml09YVtnZSsxMj4+Ml0sMHxDNihrLE0sRCxSKSl7cD0wO2JyZWFrfXA9cCsxfDAsRz00fX13aGlsZSgwKTtyZXR1cm4gYWU9SywwfHB9ZnVuY3Rpb24gaUEobCxjLGYscCl7dmFyIG0sQSx3LGIsaztyZXR1cm4gbHw9''@;'; + put 'put ''MCxjfD0wLGZ8PTAsQT1hZSxhZT1hZSs0OHwwLHc9QSszMnwwLGI9QSsxNnwwLGFbKGs9QSk+PjJdPWFbKHB8PTApPj4yXSxhW2srND4+Ml09YVtwKzQ+PjJdLGFbays4Pj4yXT1hW3ArOD4+Ml0sYVtrKzEyPj4yXT1hW3ArMTI+PjJdLGFbYj4+Ml09YVtsPj4yXSxhW2IrND4+Ml09YVtsKzQ+''@;'; + put 'put ''PjJdLGFbYis4Pj4yXT1hW2wrOD4+Ml0sYVtiKzEyPj4yXT1hW2wrMTI+PjJdLGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLG09MHxVYyhrLGIsdyksYVtrPj4yXT1hW3A+PjJdLGFbays0Pj4yXT1h''@;'; + put 'put ''W3ArND4+Ml0sYVtrKzg+PjJdPWFbcCs4Pj4yXSxhW2srMTI+PjJdPWFbcCsxMj4+Ml0sYVtiPj4yXT1hW2M+PjJdLGFbYis0Pj4yXT1hW2MrND4+Ml0sYVtiKzg+PjJdPWFbYys4Pj4yXSxhW2IrMTI+PjJdPWFbYysxMj4+Ml0sYVt3Pj4yXT1hW2Y+PjJdLGFbdys0Pj4yXT1hW2YrND4+Ml0s''@;'; + put 'put ''YVt3Kzg+PjJdPWFbZis4Pj4yXSxhW3crMTI+PjJdPWFbZisxMj4+Ml0scD0wfFVjKGssYix3KSxhW2s+PjJdPWFbbD4+Ml0sYVtrKzQ+PjJdPWFbbCs0Pj4yXSxhW2srOD4+Ml09YVtsKzg+PjJdLGFbaysxMj4+Ml09YVtsKzEyPj4yXSxhW2I+PjJdPWFbYz4+Ml0sYVtiKzQ+PjJdPWFbYys0''@;'; + put 'put ''Pj4yXSxhW2IrOD4+Ml09YVtjKzg+PjJdLGFbYisxMj4+Ml09YVtjKzEyPj4yXSxhW3c+PjJdPWFbZj4+Ml0sYVt3KzQ+PjJdPWFbZis0Pj4yXSxhW3crOD4+Ml09YVtmKzg+PjJdLGFbdysxMj4+Ml09YVtmKzEyPj4yXSxmPSgwfFVjKGssYix3KSk+MCxhZT1BLChmP3B8bTpwJm0pPj4+MzFe''@;'; + put 'put ''MXwwfWZ1bmN0aW9uIGZfKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIEEsdyxiLGssTSxELFIsRyxLLHBlLGdlLHA9MCxtPTAsYmU9MCxPZT0wO2ZvcihnZT1hZSxhZT1hZSs4MHwwLGI9Z2UrNjR8MCx3PWdlKzQ4fDAsQT1nZSszMnwwLGs9Z2UrMTZ8MCxSPWdlLEs9MHxhWzgrKGx8PTApPj4yXSxw''@;'; + put 'put ''ZT0wfGFbbCsxNj4+Ml0sTT0wfGFbbCsyMD4+Ml0sRD0wfEIwKDE2KygoRz0wfGFbbCs0Pj4yXSk8PDMpfDApLC0yMjIyPT0oMHxjKSYmKGFbYj4+Ml09YVtmPj4yXSxhW2IrND4+Ml09YVtmKzQ+PjJdLGFbYis4Pj4yXT1hW2YrOD4+Ml0sYVtiKzEyPj4yXT1hW2YrMTI+PjJdLGM9MHxmdW5j''@;'; + put 'put ''dGlvbiBoXyhsLGMpe2N8PTA7dmFyIHAsbSx3LGIsayxNLEQsZj0wLEE9MCxSPTAsRz0wO2ZvcihEPWFlLGFlPWFlKzMyfDAsbT1EKzh8MCxwPUQsYj04KyhsfD0wKXwwLGs9bCsxMnwwLE09NCsodz1EKzI0fDApfDAsZj0wOzspe2lmKCgwfGYpPj0oMHxhW2w+PjJdKSl7Zj0tMTExMTticmVh''@;'; + put 'put ''a31pZihhW3c+PjJdPSgwfGFbYj4+Ml0pKygoUj0wfGFbKEc9MHxhW2s+PjJdKSsoZjw8Mik+PjJdKTw8NCksYVtNPj4yXT0oMHxhW0crKChBPWYrMXwwKTw8Mik+PjJdKS1SLGFbcD4+Ml09YVt3Pj4yXSxhW3ArND4+Ml09YVt3KzQ+PjJdLGFbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtj''@;'; + put 'put ''KzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLDB8XzYocCxtKSlicmVhaztmPUF9cmV0dXJuIGFlPUQsMHxmfShsLGIpKSwoMHxjKT4tMT8obT0wfGFbKGw9MHxhW2wrMTI+PjJdKSsoYysxPDwyKT4+Ml0sbD0wfGFbbCsoYzw8Mik+PjJdKToobT1HLGw9''@;'; + put 'put ''RyksYz0wOzspe2lmKCgwfGMpPj0oMHxsKSl7Yz1sO2JyZWFrfWFbUj4+Ml09YVsoT2U9SysoYzw8NCl8MCk+PjJdLGFbUis0Pj4yXT1hW09lKzQ+PjJdLGFbUis4Pj4yXT1hW09lKzg+PjJdLGFbUisxMj4+Ml09YVtPZSsxMj4+Ml0sYmU9SysoYVtwZSsoYzw8Mik+PjJdPDw0KXwwLGFbaz4+''@;'; + put 'put ''Ml09YVsoT2U9SysoYVtNKyhjPDwyKT4+Ml08PDQpfDApPj4yXSxhW2srND4+Ml09YVtPZSs0Pj4yXSxhW2srOD4+Ml09YVtPZSs4Pj4yXSxhW2srMTI+PjJdPWFbT2UrMTI+PjJdLGFbQT4+Ml09YVtSPj4yXSxhW0ErND4+Ml09YVtSKzQ+PjJdLGFbQSs4Pj4yXT1hW1IrOD4+Ml0sYVtBKzEy''@;'; + put 'put ''Pj4yXT1hW1IrMTI+PjJdLGFbdz4+Ml09YVtiZT4+Ml0sYVt3KzQ+PjJdPWFbYmUrND4+Ml0sYVt3Kzg+PjJdPWFbYmUrOD4+Ml0sYVt3KzEyPj4yXT1hW2JlKzEyPj4yXSxhW2I+PjJdPWFbZj4+Ml0sYVtiKzQ+PjJdPWFbZis0Pj4yXSxhW2IrOD4+Ml09YVtmKzg+PjJdLGFbYisxMj4+Ml09''@;'; + put 'put ''YVtmKzEyPj4yXSwwIT0oMHxpQShrLEEsdyxiKSkmJihhW3c+PjJdPWFbZj4+Ml0sYVt3KzQ+PjJdPWFbZis0Pj4yXSxhW3crOD4+Ml09YVtmKzg+PjJdLGFbdysxMj4+Ml09YVtmKzEyPj4yXSxhW2I+PjJdPWFbUj4+Ml0sYVtiKzQ+PjJdPWFbUis0Pj4yXSxhW2IrOD4+Ml09YVtSKzg+PjJd''@;'; + put 'put ''LGFbYisxMj4+Ml09YVtSKzEyPj4yXSwwIT0oMHxkNSh3LGIsbCxtLEcsSyxwZSkpKT8oYVt3Pj4yXT1hW2Y+PjJdLGFbdys0Pj4yXT1hW2YrND4+Ml0sYVt3Kzg+PjJdPWFbZis4Pj4yXSxhW3crMTI+PjJdPWFbZisxMj4+Ml0sYVtiPj4yXT1hW1I+PjJdLGFbYis0Pj4yXT1hW1IrND4+Ml0s''@;'; + put 'put ''YVtiKzg+PjJdPWFbUis4Pj4yXSxhW2IrMTI+PjJdPWFbUisxMj4+Ml0scD0rejQodyxiKSk6cD0wLF9bRCsoYzw8Myk+PjNdPXAsYz1jKzF8MH1mb3IoOzspe2lmKCgwfGMpPj0oMHxtKSl7Yz1tO2JyZWFrfV9bRCsoYzw8Myk+PjNdPTAsYz1jKzF8MH1mb3IoOyEoKDB8Yyk+PSgwfEcpKTsp''@;'; + put 'put ''YVtSPj4yXT1hWyhiZT1LKyhjPDw0KXwwKT4+Ml0sYVtSKzQ+PjJdPWFbYmUrND4+Ml0sYVtSKzg+PjJdPWFbYmUrOD4+Ml0sYVtSKzEyPj4yXT1hW2JlKzEyPj4yXSxPZT1LKyhhW3BlKyhjPDwyKT4+Ml08PDQpfDAsYVtrPj4yXT1hWyhiZT1LKyhhW00rKGM8PDIpPj4yXTw8NCl8MCk+PjJd''@;'; + put 'put ''LGFbays0Pj4yXT1hW2JlKzQ+PjJdLGFbays4Pj4yXT1hW2JlKzg+PjJdLGFbaysxMj4+Ml09YVtiZSsxMj4+Ml0sYVtBPj4yXT1hW1I+PjJdLGFbQSs0Pj4yXT1hW1IrND4+Ml0sYVtBKzg+PjJdPWFbUis4Pj4yXSxhW0ErMTI+PjJdPWFbUisxMj4+Ml0sYVt3Pj4yXT1hW09lPj4yXSxhW3cr''@;'; + put 'put ''ND4+Ml09YVtPZSs0Pj4yXSxhW3crOD4+Ml09YVtPZSs4Pj4yXSxhW3crMTI+PjJdPWFbT2UrMTI+PjJdLGFbYj4+Ml09YVtmPj4yXSxhW2IrND4+Ml09YVtmKzQ+PjJdLGFbYis4Pj4yXT1hW2YrOD4+Ml0sYVtiKzEyPj4yXT1hW2YrMTI+PjJdLDAhPSgwfGlBKGssQSx3LGIpKSYmKGFbdz4+''@;'; + put 'put ''Ml09YVtmPj4yXSxhW3crND4+Ml09YVtmKzQ+PjJdLGFbdys4Pj4yXT1hW2YrOD4+Ml0sYVt3KzEyPj4yXT1hW2YrMTI+PjJdLGFbYj4+Ml09YVtSPj4yXSxhW2IrND4+Ml09YVtSKzQ+PjJdLGFbYis4Pj4yXT1hW1IrOD4+Ml0sYVtiKzEyPj4yXT1hW1IrMTI+PjJdLDAhPSgwfGQ1KHcsYixs''@;'; + put 'put ''LG0sRyxLLHBlKSkpPyhhW3c+PjJdPWFbZj4+Ml0sYVt3KzQ+PjJdPWFbZis0Pj4yXSxhW3crOD4+Ml09YVtmKzg+PjJdLGFbdysxMj4+Ml09YVtmKzEyPj4yXSxhW2I+PjJdPWFbUj4+Ml0sYVtiKzQ+PjJdPWFbUis0Pj4yXSxhW2IrOD4+Ml09YVtSKzg+PjJdLGFbYisxMj4+Ml09YVtSKzEy''@;'; + put 'put ''Pj4yXSxwPSt6NCh3LGIpKTpwPTAsX1tEKyhjPDwzKT4+M109cCxjPWMrMXwwO3JldHVybiBfW0QrKEc8PDMpPj4zXT0wLF9bRCsoRysxPDwzKT4+M109MCxhZT1nZSwwfER9ZnVuY3Rpb24gZ0cobCl7dmFyIGM7cmV0dXJuIDB8KGM9MHxfb1s2MyZhWyhsfD0wKT4+Ml1dKDE4OCkpJiYob0Eo''@;'; + put 'put ''Yys4MHwwLGwpLG9BKGMrMTA0fDAsbCksUmQoYyxsKSxSZChjKzIwfDAsbCksUmQoYys0MHwwLGwpLFJkKGMrNjB8MCxsKSxmZVtjKzEzMT4+MF09MCxSZChjKzEzMnwwLGwpLGFbYysxNTI+PjJdPTAsYVtjKzE1Nj4+Ml09MCxmZVtjKzE2MD4+MF09MCxhWyhsPWMrMTY0fDApPj4yXT0wLGFb''@;'; + put 'put ''bCs0Pj4yXT0wLGFbbCs4Pj4yXT0wLGFbbCsxMj4+Ml09MCxhW2wrMTY+PjJdPTAsYVtsKzIwPj4yXT0wLGZlW2MrMTI4Pj4wXT0xLGZlW2MrMTI5Pj4wXT0wLGZlW2MrMTMwPj4wXT0wKSwwfGN9ZnVuY3Rpb24gb0EobCxjKXtjfD0wLGFbKGx8PTApPj4yXT0wLGFbbCs0Pj4yXT0wLGFbbCs4''@;'; + put 'put ''Pj4yXT0wLGFbbCsxMj4+Ml09MCxhW2wrMTY+PjJdPTAsYVtsKzIwPj4yXT1jfWZ1bmN0aW9uIGdfKGwsYyl7Y3w9MDt2YXIgZixwPTAsbT0wO2FbMjc2KyhsfD0wKT4+Ml09NTYsZnVuY3Rpb24gS0sobCl7YVsobHw9MCk+PjJdPTE1LGFbbCsxNj4+Ml09MSxhW2wrMTI+PjJdPTAsYVtsKzIw''@;'; + put 'put ''Pj4yXT0wfShsKzI1MnwwKSwwfGMmJihhW2wrMjI4Pj4yXT0wfGZ1bmN0aW9uIEZCKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wO2Y9MDtkb3twPWYsZj1mKzF8MH13aGlsZSgwIT0oMHxmZVtsK3A+PjBdKSk7cmV0dXJuKGM9MHxfb1s2MyZhW2M+PjJdXShmKSk/Z28oMHxjLDB8bCwwfGYp''@;'; + put 'put ''OmM9MCwwfGN9KGMsbCsxMnwwKSksYVtsKzM1Nj4+Ml09MCxXSyhsKzE0OHwwLGwrMTQ0fDAsMCksYVtsPj4yXT0wLGFbbCs0Pj4yXT0wLGM9bCsxMTZ8MCxtPTY0KyhwPWwrNTJ8MCl8MDtkb3thW3A+PjJdPTAscD1wKzR8MH13aGlsZSgoMHxwKTwoMHxtKSk7YVtjPj4yXT1sLGFbbCsxMjA+''@;'; + put 'put ''PjJdPTAsYVsoYz1sKzEyOHwwKT4+Ml09MCxhW2MrND4+Ml09MCxhW2MrOD4+Ml09MCxhW2MrMTI+PjJdPTAsYVtsKzI0Pj4yXT1jPTB8YVtsKzg+PjJdLGFbbCsyOD4+Ml09YyxhW2wrMzY+PjJdPTAsYVtsKzQwPj4yXT0wLGM9bCszMTJ8MCxhWyhwPWwrNDA0fDApPj4yXT0wLGFbcCs0Pj4y''@;'; + put 'put ''XT0wLGY9bCszMDR8MCxhWyhwPWwrMjgwfDApPj4yXT0wLGFbcCs0Pj4yXT0wLGFbcCs4Pj4yXT0wLGFbcCsxMj4+Ml09MCxhW3ArMTY+PjJdPTAsbT0ocD1jKSszNnwwO2Rve2FbcD4+Ml09MCxwPXArNHwwfXdoaWxlKCgwfHApPCgwfG0pKTtydFtjKzM2Pj4xXT0wLGZlW2Y+PjBdPTEsYVts''@;'; + put 'put ''KzMwOD4+Ml09MCxhW2wrMzYwPj4yXT0wLGFbbCszNjg+PjJdPTAsYVtsKzM4MD4+Ml09MCxhW2wrMjM2Pj4yXT0wLGFbbCsyNDg+PjJdPTAsYVtsKzI0MD4+Ml09MCxhW2wrNDcyPj4yXT0wLGFbbCs0NzY+PjJdPTAsZmVbbCs0ODQ+PjBdPTAsZmVbbCs0ODU+PjBdPTAsYVtsKzQ4OD4+Ml09''@;'; + put 'put ''MCxhW2wrNDkyPj4yXT0wfWZ1bmN0aW9uIG1fKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2lmKDB8KGx8PTApKXtmb3IoZj1sKzM2NHwwLG09bCsyMHwwLGM9MHxhW2wrMzYwPj4yXTs7KXtpZighYyl7aWYoIShjPTB8YVtmPj4yXSkpYnJlYWs7YVtmPj4yXT0wfUE9MHxhW2M+PjJdLENv''@;'; + put 'put ''WzEyNyZhW20+PjJdXSgwfGFbYyszNj4+Ml0pLGFBKDB8YVtjKzQ0Pj4yXSxsKSxDb1sxMjcmYVttPj4yXV0oYyksYz1BfWZvcihmPWwrMzAwfDAsYz0wfGFbbCsyOTY+PjJdOzspe2lmKCFjKXtpZighKGM9MHxhW2Y+PjJdKSlicmVhazthW2Y+PjJdPTB9QT0wfGFbYys4Pj4yXSxDb1sxMjcm''@;'; + put 'put ''YVttPj4yXV0oYyksYz1BfWFBKDB8YVtsKzM3Mj4+Ml0sbCksYUEoMHxhW2wrMzY4Pj4yXSxsKSxJbShsKzQxMnwwKSxJbShsKzQzNnwwKSxjPWwrMTJ8MCxDb1sxMjcmYVttPj4yXV0oMHxhW2wrMjI4Pj4yXSksMD09KDB8ZmVbbCs0ODQ+PjBdKSYmMHwocD0wfGFbbCszNTI+PjJdKSYmZnVu''@;'; + put 'put ''Y3Rpb24gUEIobCxjLGYpe2N8PTAsZnw9MDt2YXIgbSxBLHcscD0wO2Zvcih3PWFlLGFlPWFlKzE2fDAsZWMobT13LEE9MjArKGx8PTApfDApLGY9Zis4fDA7cD0wfERtKG0pOykhKDB8YVtwKzE2Pj4yXSl8fENvWzEyNyZhW2Y+PjJdXSgwfGFbcCsyMD4+Ml0pO0xtKGwpLExtKGwrMTMyfDAp''@;'; + put 'put ''LExtKEEpLExtKGwrNDB8MCksTG0obCs2MHwwKSxJbShsKzgwfDApLEltKGwrMTA0fDApLGM8PDI0Pj4yNCYmKENvWzEyNyZhW2Y+PjJdXSgwfGFbbCsxODQ+PjJdKSxDb1sxMjcmYVtmPj4yXV0oMHxhW2wrMTY0Pj4yXSkpLENvWzEyNyZhW2Y+PjJdXShsKSxhZT13fShwLDA9PSgwfGFbbCs0''@;'; + put 'put ''NzI+PjJdKSYxLGMpLENvWzEyNyZhW20+PjJdXSgwfGFbbCszODg+PjJdKSxDb1sxMjcmYVttPj4yXV0oMHxhW2wrNDYwPj4yXSksQ29bMTI3JmFbbT4+Ml1dKDB8YVtsKzg+PjJdKSxDb1sxMjcmYVttPj4yXV0oMHxhW2wrNDQ+PjJdKSxDb1sxMjcmYVttPj4yXV0oMHxhW2wrMzkyPj4yXSks''@;'; + put 'put ''Q29bMTI3JmFbbT4+Ml1dKDB8YVtsKzIzNj4+Ml0pLDB8KGM9MHxhW2wrMjQ4Pj4yXSkmJkNvWzEyNyZjXSgwfGFbbCsyNDA+PjJdKSxDb1sxMjcmYVttPj4yXV0obCl9fWZ1bmN0aW9uIGFBKGwsYyl7bHw9MDt2YXIgZj0wO2ZvcihjPTIwKyhjfD0wKXwwO2w7KWY9MHxhW2wrND4+Ml0sQ29b''@;'; + put 'put ''MTI3JmFbYz4+Ml1dKDB8YVtsKzE2Pj4yXSksQ29bMTI3JmFbYz4+Ml1dKGwpLGw9Zn1mdW5jdGlvbiBJbShsKXt2YXIgZixjPTAscD0wO2ZvcihmPTIwKyhsfD0wKXwwLGM9MHxhW2w+PjJdO2M7KXA9MHxhW2M+PjJdLENvWzEyNyZhWzgrKDB8YVtmPj4yXSk+PjJdXShjKSxjPXA7Zm9yKGM9''@;'; + put 'put ''MHxhW2wrND4+Ml07YzspcD0wfGFbYz4+Ml0sQ29bMTI3JmFbOCsoMHxhW2Y+PjJdKT4+Ml1dKGMpLGM9cH1mdW5jdGlvbiBlYyhsLGMpe3ZhciBmO2FbKGx8PTApPj4yXT1mPTB8YVsoY3w9MCk+PjJdLGFbbCs0Pj4yXT1mKyhhW2MrOD4+Ml08PDIpfWZ1bmN0aW9uIERtKGwpe3ZhciBmLGM9''@;'; + put 'put ''MCxwPTA7Zj0wfGFbNCsobHw9MCk+PjJdLHA9MHxhW2w+PjJdO2Rve2lmKCgwfHApPT0oMHxmKSl7Yz0wO2JyZWFrfWM9cCxhW2w+PjJdPXA9cCs0fDAsYz0wfGFbYz4+Ml19d2hpbGUoISgwfGMpKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIExtKGwpe3ZhciBmLHAsYz0wLG09MCxBPTA7Zm9yKGY9''@;'; + put 'put ''OCsobHw9MCl8MCxwPWwrMTZ8MCxjPTA7bT0wfGFbOCsoMHxhW3A+PjJdKT4+Ml0sQT0wfGFbbD4+Ml0sIShjPj4+MD49KDB8YVtmPj4yXSk+Pj4wKTspQ29bMTI3Jm1dKDB8YVtBKyhjPDwyKT4+Ml0pLGM9YysxfDA7Q29bMTI3Jm1dKEEpfWZ1bmN0aW9uIGxBKGwsYyxmLHApe2x8PTAsZnw9''@;'; + put 'put ''MCxwfD0wO3ZhciBtLEEsYix3PTA7cmV0dXJuIG09YWUsYWU9YWUrMTZ8MCxhWyhBPW0pPj4yXT1jfD0wLHc9MHxxMFsxMjcmYVsodz0wfGFbKGI9bCsxNDR8MCk+PjJdKT4+Ml1dKHcsYyxmLEEpLHA9MHxzQShsLDB8YVtiPj4yXSxjLGYsdywwfGFbQT4+Ml0scCwwPT0oMHxmZVtsKzQ4MD4+''@;'; + put 'put ''MF0pJjEpLGFlPW0sMHxwfWZ1bmN0aW9uIHNBKGwsYyxmLHAsbSxBLHcsYil7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLHd8PTAsYnw9MDt2YXIgSyxwZSxnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxudCxXZSxvdCxTdCxrdCxsdCxFdCxadCxjdCxidCxhbixTbixIbix1cixIcixFcixmcixE''@;'; + put 'put ''cixKcixMcixsMCxWaSxPaSxSbyxsbyxUYSxqYSxnYSx4aSxEbCxvcyxvbCxMMCx4YSx6MixyMSxGZixaYSxHMixxYSxFcCxoYyx0ZixxMSx4cCx4TCxnOCxkOSxtOCxpcSxrPTAsTT0wLEQ9MCxSPTAsRz0wLHYxPTAsYnM9MCx6aj0wLGN3PTAsYVM9MCxsUz0wLHNTPTAsTGw9MCxfZmU9MCxy''@;'; + put 'put ''cT0wO2lxPWFlLGFlPWFlKzE2fDAsYVsoTGw9aXEpPj4yXT1BfD0wLCgwfGFbKHBlPWwrMTQ0fDApPj4yXSk9PSgwfGMpPyhSPWwrMjg0fDAsRz1sKzI4OHwwLHYxPWwrMjk2fDApOihSPUc9MHxhWyh2MT1sKzI5NnwwKT4+Ml0sRz1HKzR8MCksZ2U9Yjw8MjQ+PjI0IT0wLEVwPWwrMjUyfDAs''@;'; + put 'put ''YmU9bCs4MHwwLE9lPWwrNDc2fDAsTGU9bCs4NHwwLFJlPWwrMzIwfDAsSGU9bCs0MTJ8MCxWZT1sKzMxNnwwLHFlPWwrNDI0fDAsbnQ9bCs0Mjh8MCxXZT1sKzMyNHwwLGhjPWwrNHwwLG90PWwrNDg1fDAsU3Q9MTMyKyhLPTB8YVtsKzM1Mj4+Ml0pfDAsa3Q9bCszMTJ8MCx0Zj1LKzEyOXww''@;'; + put 'put ''LGx0PUsrMTI4fDAsRXQ9Sys4MHwwLFp0PUsrOTJ8MCxjdD1LKzk2fDAsYnQ9bCsxMzZ8MCxhbj1sKzg4fDAsU249bCs0ODh8MCxxMT1sKzExMnwwLHhwPUsrMTMxfDAseEw9bCsxMTZ8MCxnOD1LKzEzMHwwLGQ5PWwrMTA4fDAsbTg9bCszNTZ8MCxIbj1sKzM0MHwwLHVyPWwrMTMyfDAsSHI9''@;'; + put 'put ''bCszNDR8MCxFcj1sKzM0OHwwLGZyPWwrMzI4fDAsRHI9bCszNDl8MCxKcj1sKzQyMHwwLExyPUsrMTIwfDAsbDA9SysxMTZ8MCxWaT1sKzkyfDAsT2k9bCs0NzJ8MCxSbz1sKzMzNnwwLGxvPWwrMzMyfDAsVGE9bCs5NnwwLGphPWwrMjU2fDAsZ2E9bCs0NjR8MCx4aT1sKzQ2MHwwLERsPUsr''@;'; + put 'put ''MTYwfDAsb3M9SysxODR8MCxvbD1LKzE4MHwwLEwwPUsrMTY0fDAseGE9bCsxMjh8MCx6Mj1sKzEyfDAscjE9bCsxNnwwLEZmPWwrMjY4fDAsWmE9bCsxMjB8MCxHMj1LKzE3NnwwLHFhPUsrMTY4fDAsRD1jLE09ZixjPW07ZTpmb3IoOzspe2FbUj4+Ml09TSxhW0c+PjJdPWY9MHxhW0xsPj4y''@;'; + put 'put ''XSxBPWY7dDpkb3tpZigoMHxjKTwxKXtpZihnZSYwIT0oMHxjKSl7az03O2JyZWFrIGV9c3dpdGNoKDB8Yyl7Y2FzZS0xOkE9NSxrPTI4MDticmVhayBlO2Nhc2UgMDprPTk7YnJlYWsgZTtjYXNlLTI6QT02O2JyZWFrIGU7Y2FzZS00Oms9MTA7YnJlYWsgZTtjYXNlLTE1OmM9MTU7YnJlYWsg''@;'; + put 'put ''dH1hW0xsPj4yXT1wLGM9MC1jfDAsQT1wfX13aGlsZSgwKTttPTB8TzJbMTI3JmFbRXA+PjJdXShFcCxjLE0sQSxEKTt0OmRve3N3aXRjaCgwfG0pe2Nhc2UgMjprPTU4O2JyZWFrIGU7Y2FzZS0xOms9MTg0O2JyZWFrIGU7Y2FzZSAxOmlmKDB8KEE9MHxueChsLDAsTSwwfGFbTGw+PjJdKSkp''@;'; + put 'put ''e2s9MjgwO2JyZWFrIGV9QT0wfGFbcGU+PjJdO2JyZWFrO2Nhc2UgNDppZigwfGFbTGU+PjJdKXtpZihrPTB8YjIoSGUsRCxNLDB8YVtMbD4+Ml0pLGFbVmU+PjJdPWssIWspe0E9MSxrPTI4MDticmVhayBlfWFbbnQ+PjJdPWFbcWU+PjJdLGFbV2U+PjJdPTAsQT0wfWVsc2UgQT0xO2FbUmU+''@;'; + put 'put ''PjJdPTAsaz0yNzQ7YnJlYWs7Y2FzZSA3OihBPTB8YVtMZT4+Ml0pPyhwOFsxNSZBXSgwfGFbaGM+PjJdLDB8YVtWZT4+Ml0sMHxhW1JlPj4yXSwwfGFbV2U+PjJdLDEpLGFbVmU+PjJdPTAsQ2YoSGUpLEE9RCk6az0yNzU7YnJlYWs7Y2FzZSA1NzppZigwfChBPTB8bngobCwxLE0sMHxhW0xs''@;'; + put 'put ''Pj4yXSkpKXtrPTI4MDticmVhayBlfUE9MHxhW3BlPj4yXTticmVhaztjYXNlIDY6aWYoZmVbb3Q+PjBdPTAsaz0wfF8xKGwsU3QsNzUzOTUsMzYpLGFba3Q+PjJdPWssIWspe0E9MSxrPTI4MDticmVhayBlfWlmKGZlW3RmPj4wXT0xLDB8YVtMZT4+Ml0pe2lmKCEoMHxxMFsxMjcmYVtEKzUy''@;'; + put 'put ''Pj4yXV0oRCxNLDB8YVtMbD4+Ml0sUikpKXtBPTMyLGs9MjgwO2JyZWFrIGV9aWYoIShBPTB8YjIoSGUsRCxNKyhBPTB8YVtEKzY0Pj4yXSl8MCwwLUErKDB8YVtMbD4+Ml0pfDApKSl7QT0xLGs9MjgwO2JyZWFrIGV9dUEoQSksYVtudD4+Ml09YVtxZT4+Ml0sYVtXZT4+Ml09QSxBPTAsaz0z''@;'; + put 'put ''NH1lbHNlIGs9MzM7YnJlYWs7Y2FzZSAxNDprPTMzO2JyZWFrO2Nhc2UgODppZigoQT0wfGFbVmU+PjJdKT8ocDhbMTUmYVtMZT4+Ml1dKDB8YVtoYz4+Ml0sQSwwfGFbUmU+PjJdLDB8YVtXZT4+Ml0sMCksQ2YoSGUpLEE9MCk6QT0xLDAhPSgwfGFbUmU+PjJdKXx8MHxmZVtvdD4+MF0pe2Y9''@;'; + put 'put ''MHxmZVt0Zj4+MF0sZmVbdGY+PjBdPTE7ZG97aWYoMHxhW1NuPj4yXSYmMHxhW3ExPj4yXSl7aWYoIShtPTB8XzEobCxTdCw3NTM5NSwzNikpKXtBPTEsaz0yODA7YnJlYWsgZX1pZigwfGZlW290Pj4wXT9hWyhjPW0rMjB8MCk+PjJdPWFbbTg+PjJdOmM9bSsyMHwwLGZlW3hwPj4wXT0wLCEo''@;'; + put 'put ''MHxPMlsxMjcmYVtxMT4+Ml1dKDB8YVt4TD4+Ml0sMCwwfGFbYz4+Ml0sMHxhW20rMTY+PjJdLDB8YVttKzI0Pj4yXSkpKXtBPTIxLGs9MjgwO2JyZWFrIGV9aWYoISgwfGZlW3hwPj4wXSkpe2lmKDB8YVtSZT4+Ml0pYnJlYWs7ZmVbdGY+PjBdPWY7YnJlYWt9aWYoMD09KDB8ZmVbZzg+PjBd''@;'; + put 'put ''KSYmMHwoYnM9MHxhW2Q5Pj4yXSkmJjA9PSgwfF9vWzYzJmJzXSgwfGFbaGM+PjJdKSkpe0E9MjIsaz0yODA7YnJlYWsgZX19fXdoaWxlKDApO2ZlW290Pj4wXT0wfShjPTB8YVthbj4+Ml0pPyhDb1sxMjcmY10oMHxhW2hjPj4yXSksQT1EKTprPTI3NDticmVhaztjYXNlIDM0OmlmKGs9MHxP''@;'; + put 'put ''bShsLEQsTSwwfGFbTGw+PjJdKSxhW0huPj4yXT1rLCFrKXtBPTEsaz0yODA7YnJlYWsgZX1rPTgwO2JyZWFrO2Nhc2UgMjI6aWYoaz0wfHlfKGwsRCxNLDB8YVtMbD4+Ml0pLGFbSHI+PjJdPWssIWspe0E9MSxrPTI4MDticmVhayBlfWZlW0VyPj4wXT0wLGFbZnI+PjJdPTAsZmVbRHI+PjBd''@;'; + put 'put ''PTAsaz04MDticmVhaztjYXNlIDIzOmZlW0VyPj4wXT0xLGFbZnI+PjJdPTE0MjE4OCxrPTgwO2JyZWFrO2Nhc2UgMjQ6ZmVbRHI+PjBdPTEsYVtmcj4+Ml09MTQyMTk0LGs9ODA7YnJlYWs7Y2FzZSAyNTphW2ZyPj4yXT0xNDIxOTcsaz04MDticmVhaztjYXNlIDI2OmFbZnI+PjJdPTE0MjIw''@;'; + put 'put ''MyxrPTgwO2JyZWFrO2Nhc2UgMjc6YVtmcj4+Ml09MTQyMjEwLGs9ODA7YnJlYWs7Y2FzZSAyODphW2ZyPj4yXT0xNDIyMTcsaz04MDticmVhaztjYXNlIDI5OmFbZnI+PjJdPTE0MjIyNixrPTgwO2JyZWFrO2Nhc2UgMzA6YVtmcj4+Ml09MTQyMjM0LGs9ODA7YnJlYWs7Y2FzZSAzMjpjYXNl''@;'; + put 'put ''IDMxOmlmKDAhPSgwfGZlW2x0Pj4wXSkmJjAhPSgwfGFbdXI+PjJdKSl7aWYoISgwfHJ4KEhlLDA9PSgwfGFbZnI+PjJdKT8zMj09KDB8bSk/MTQyMjQzOjE0MjI1MzoxNDIyNTUpKSl7QT0xLGs9MjgwO2JyZWFrIGV9aWYoISgwfGNBKEhlLEQsTSwwfGFbTGw+PjJdKSkpe0E9MSxrPTI4MDti''@;'; + put 'put ''cmVhayBlfWFbZnI+PjJdPWFbbnQ+PjJdLEE9RH1lbHNlIGs9Mjc1O2JyZWFrO2Nhc2UgMzY6Y2FzZSAzNTppZigwfGZlW2x0Pj4wXSl7aWYoISgwfE9oKDB8YVtIbj4+Ml0sMHxhW0hyPj4yXSwwfGZlW0VyPj4wXSwwfGZlW0RyPj4wXSwwLGwpKSl7QT0xLGs9MjgwO2JyZWFrIGV9aWYoMCE9''@;'; + put 'put ''KDB8YVt1cj4+Ml0pJiYwIT0oMHwoemo9MHxhW2ZyPj4yXSkpKXtzd2l0Y2goMHxmZVt6aj4+MF0pe2Nhc2UgNDA6az05MzticmVhaztjYXNlIDc4Ojc5PT0oMHxmZVt6aisxPj4wXSkmJihrPTkzKX1pZig5Mz09KDB8aykpe2lmKGs9MCwoMHwoQT0wfGFbcWU+PjJdKSk9PSgwfGFbSnI+PjJd''@;'; + put 'put ''KSl7aWYoISgoMHx2bChIZSkpPDwyND4+MjQpKXtBPTEsaz0yODA7YnJlYWsgZX1BPTB8YVtxZT4+Ml19aWYoYVtxZT4+Ml09QSsxLGZlW0E+PjBdPTQxLCgwfChBPTB8YVtxZT4+Ml0pKT09KDB8YVtKcj4+Ml0pKXtpZighKCgwfHZsKEhlKSk8PDI0Pj4yNCkpe0E9MSxrPTI4MDticmVhayBl''@;'; + put 'put ''fUE9MHxhW3FlPj4yXX1hW3FlPj4yXT1BKzEsZmVbQT4+MF09MCxhW2ZyPj4yXT1hW250Pj4yXSxhW250Pj4yXT1hW3FlPj4yXX1hW0c+PjJdPU0saDlbMTUmYVt1cj4+Ml1dKDB8YVtoYz4+Ml0sMHxhW2FbSG4+PjJdPj4yXSwwfGFbYVtIcj4+Ml0+PjJdLDB8YVtmcj4+Ml0sMCwzNj09KDB8''@;'; + put 'put ''bSkmMSksQ2YoSGUpLEE9RH1lbHNlIGs9Mjc1fWVsc2Ugaz0yNzU7YnJlYWs7Y2FzZSAzODpjYXNlIDM3OmlmKDB8ZmVbbHQ+PjBdKXtpZigwfChBPTB8d18obCxELDB8ZmVbRXI+PjBdLE0rKEE9MHxhW0QrNjQ+PjJdKXwwLDAtQSsoMHxhW0xsPj4yXSl8MCxFdCkpKXtrPTI4MDticmVhayBl''@;'; + put 'put ''fWlmKGM9MHxhW2N0Pj4yXSxhW2N0Pj4yXT1hW1p0Pj4yXSwhKDB8T2goMHxhW0huPj4yXSwwfGFbSHI+PjJdLDB8ZmVbRXI+PjBdLDAsYyxsKSkpe0E9MSxrPTI4MDticmVhayBlfWlmKDAhPSgwfGFbdXI+PjJdKSYmMCE9KDB8KGN3PTB8YVtmcj4+Ml0pKSl7c3dpdGNoKDB8ZmVbY3c+PjBd''@;'; + put 'put ''KXtjYXNlIDQwOms9MTA4O2JyZWFrO2Nhc2UgNzg6Nzk9PSgwfGZlW2N3KzE+PjBdKSYmKGs9MTA4KX1pZigxMDg9PSgwfGspKXtpZihrPTAsKDB8KEE9MHxhW3FlPj4yXSkpPT0oMHxhW0pyPj4yXSkpe2lmKCEoKDB8dmwoSGUpKTw8MjQ+PjI0KSl7QT0xLGs9MjgwO2JyZWFrIGV9QT0wfGFb''@;'; + put 'put ''cWU+PjJdfWlmKGFbcWU+PjJdPUErMSxmZVtBPj4wXT00MSwoMHwoQT0wfGFbcWU+PjJdKSk9PSgwfGFbSnI+PjJdKSl7aWYoISgoMHx2bChIZSkpPDwyND4+MjQpKXtBPTEsaz0yODA7YnJlYWsgZX1BPTB8YVtxZT4+Ml19YVtxZT4+Ml09QSsxLGZlW0E+PjBdPTAsYVtmcj4+Ml09YVtudD4+''@;'; + put 'put ''Ml0sYVtudD4+Ml09YVtxZT4+Ml19YVtHPj4yXT1NLGg5WzE1JmFbdXI+PjJdXSgwfGFbaGM+PjJdLDB8YVthW0huPj4yXT4+Ml0sMHxhW2FbSHI+PjJdPj4yXSwwfGFbZnI+PjJdLGMsMzg9PSgwfG0pJjEpLENmKEhlKSxBPUR9ZWxzZSBrPTI3NX1lbHNlIGs9Mjc1O2JyZWFrO2Nhc2UgMTI6''@;'; + put 'put ''aWYoMHxmZVtsdD4+MF0pe2lmKEE9MHxiXyhsLEQsTSsoQT0wfGFbRCs2ND4+Ml0pfDAsMC1BKygwfGFbTGw+PjJdKXwwKSxmPTB8YVtMcj4+Ml0sKGM9MHxhW2t0Pj4yXSk/KGFbYys0Pj4yXT1mLGFbOCsoMHxhW2t0Pj4yXSk+PjJdPSgwfGFbbDA+PjJdKS0oMHxhW0xyPj4yXSksYVtMcj4+''@;'; + put 'put ''Ml09YVtsMD4+Ml0sMHxhW2J0Pj4yXT8oYVtHPj4yXT1NLG9TWzAmYVtidD4+Ml1dKDB8YVtoYz4+Ml0sMHxhWyhjPTB8YVtrdD4+Ml0pPj4yXSwwfEp0W2MrMzM+PjBdLDB8YVtjKzQ+PjJdLDB8YVtjKzg+PjJdLDB8YVttOD4+Ml0sMCwwLDApLGM9MCk6Yz0xKTooYVtsMD4+Ml09ZixjPTEp''@;'; + put 'put ''LEEpe2s9MjgwO2JyZWFrIGV9QT1jLGs9Mjc0fWVsc2Ugaz0yNzU7YnJlYWs7Y2FzZSA1OmlmKGZlW290Pj4wXT0wLGZlW3RmPj4wXT0xLDB8YVtMZT4+Ml0pe2lmKGs9MHxiMihIZSxELE0rKGs9MHxhW0QrNjQ+PjJdKXwwLDAtaysoMHxhW0xsPj4yXSl8MCksYVtSZT4+Ml09aywhayl7QT0x''@;'; + put 'put ''LGs9MjgwO2JyZWFrIGV9YVtudD4+Ml09YVtxZT4+Ml0sQT0wfWVsc2UgYVtSZT4+Ml09NzUzOTUsQT0xO2lmKDA9PSgwfGZlW2c4Pj4wXSkmJjA9PSgwfGFbU24+PjJdKSYmMHwoYVM9MHxhW2Q5Pj4yXSkmJjA9PSgwfF9vWzYzJmFTXSgwfGFbaGM+PjJdKSkpe0E9MjIsaz0yODA7YnJlYWsg''@;'; + put 'put ''ZX1pZigwfGFba3Q+PjJdKWs9MTMzO2Vsc2V7aWYoYz0wfF8xKGwsU3QsNzUzOTUsMzYpLGFba3Q+PjJdPWMsIWMpe0E9MSxrPTI4MDticmVhayBlfWFbYysyND4+Ml09MCxrPTEzM31icmVhaztjYXNlIDEzOkE9MSxrPTEzMzticmVhaztjYXNlIDE1OjAhPSgwfGZlW2x0Pj4wXSkmJjAhPSgw''@;'; + put 'put ''fGFba3Q+PjJdKSYmMCE9KDB8YVtidD4+Ml0pPyhhW0c+PjJdPU0sb1NbMCZhW2J0Pj4yXV0oMHxhW2hjPj4yXSwwfGFbKEE9MHxhW2t0Pj4yXSk+PjJdLDB8SnRbQSszMz4+MF0sMCwwLDB8YVtBKzIwPj4yXSwwfGFbQSsxNj4+Ml0sMHxhW0ErMjQ+PjJdLDApLEE9RCk6az0yNzU7YnJlYWs7''@;'; + put 'put ''Y2FzZSAxNjppZigwIT0oMHxmZVtsdD4+MF0pJiYwIT0oMHxhW2t0Pj4yXSkpe2lmKG09MHxiMihFdCxELE0sMHxhW0xsPj4yXSksYVsyOCsoMHxhW2t0Pj4yXSk+PjJdPW0sISgwfGFbMjgrKDB8YVtrdD4+Ml0pPj4yXSkpe0E9MSxrPTI4MDticmVhayBlfWlmKGFbY3Q+PjJdPWFbWnQ+PjJd''@;'; + put 'put ''LDB8YVtWaT4+Ml0pe2FbRz4+Ml09TSxoOVsxNSZhW1ZpPj4yXV0oMHxhW2hjPj4yXSwwfGFbKEE9MHxhW2t0Pj4yXSk+PjJdLDB8YVtBKzIwPj4yXSwwfGFbQSsxNj4+Ml0sMHxhW0ErMjQ+PjJdLDB8YVtBKzI4Pj4yXSksQT1EO2JyZWFrIHR9MHxhW2J0Pj4yXT8oYVtHPj4yXT1NLG9TWzAm''@;'; + put 'put ''YVtidD4+Ml1dKDB8YVtoYz4+Ml0sMHxhWyhBPTB8YVtrdD4+Ml0pPj4yXSwwLDAsMCwwfGFbQSsyMD4+Ml0sMHxhW0ErMTY+PjJdLDB8YVtBKzI0Pj4yXSwwfGFbQSsyOD4+Ml0pLEE9RCk6az0yNzV9ZWxzZSBrPTI3NTticmVhaztjYXNlIDk6aWYoMHxtaVs2MyZhW0QrNDQ+PjJdXShELE0s''@;'; + put 'put ''MHxhW0xsPj4yXSkpe2Fba3Q+PjJdPTAsaz0yNzU7YnJlYWsgdH1pZighKDB8ZmVbbHQ+PjBdKSl7YVtadD4+Ml09YVtjdD4+Ml0sYVtrdD4+Ml09MCxrPTI3NTticmVhayB0fWlmKCEoQT0wfGIyKEV0LEQsTSwwfGFbTGw+PjJdKSkpe0E9MSxrPTI4MDticmVhayBlfWlmKGM9MHxfMShsLEss''@;'; + put 'put ''QSwzNiksYVtrdD4+Ml09YywhYyl7QT0xLGs9MjgwO2JyZWFrIGV9aWYoKDB8YVtjPj4yXSkhPSgwfEEpKXthW1p0Pj4yXT1hW2N0Pj4yXSxhW2t0Pj4yXT0wLGs9Mjc1O2JyZWFrIHR9YVtjdD4+Ml09YVtadD4+Ml0sYVsyNCsoMHxhW2t0Pj4yXSk+PjJdPTAsZmVbMzMrKDB8YVtrdD4+Ml0p''@;'; + put 'put ''Pj4wXT0wLGZlWzM0KygwfGFba3Q+PjJdKT4+MF09MSYoMV4oQT0wfGFbT2k+PjJdPzE6MCE9KDB8YVt2MT4+Ml0pKSksMHxhW2J0Pj4yXT9BPUQ6az0yNzU7YnJlYWs7Y2FzZSAxMDppZighKDB8ZmVbbHQ+PjBdKSl7YVtadD4+Ml09YVtjdD4+Ml0sYVtrdD4+Ml09MCxrPTI3NTticmVhayB0''@;'; + put 'put ''fWlmKCEoQT0wfGIyKEV0LEQsTSwwfGFbTGw+PjJdKSkpe0E9MSxrPTI4MDticmVhayBlfWlmKGM9MHxfMShsLFN0LEEsMzYpLGFba3Q+PjJdPWMsIWMpe0E9MSxrPTI4MDticmVhayBlfWlmKCgwfGFbYz4+Ml0pIT0oMHxBKSl7YVtadD4+Ml09YVtjdD4+Ml0sYVtrdD4+Ml09MCxrPTI3NTti''@;'; + put 'put ''cmVhayB0fWFbY3Q+PjJdPWFbWnQ+PjJdLGFbMjQrKDB8YVtrdD4+Ml0pPj4yXT0wLGZlWzMzKygwfGFba3Q+PjJdKT4+MF09MSxmZVszNCsoMHxhW2t0Pj4yXSk+PjBdPTEmKDFeKEE9MHxhW09pPj4yXT8xOjAhPSgwfGFbdjE+PjJdKSkpLDB8YVtidD4+Ml0/QT1EOms9Mjc1O2JyZWFrO2Nh''@;'; + put 'put ''c2UgMTg6aWYoYVtSbz4+Ml09MCxhW2xvPj4yXT0wLDB8YVtUYT4+Ml0pe2lmKE09MHxiMihIZSxELE0sMHxhW0xsPj4yXSksYVtsbz4+Ml09TSwhTSl7QT0xLGs9MjgwO2JyZWFrIGV9YVtudD4+Ml09YVtxZT4+Ml0sQT1EfWVsc2Ugaz0yNzU7YnJlYWs7Y2FzZSAyMTppZighKDB8cTBbMTI3''@;'; + put 'put ''JmFbRCs1Mj4+Ml1dKEQsTSwwfGFbTGw+PjJdLFIpKSl7QT0zMixrPTI4MDticmVhayBlfWlmKDB8YVtsbz4+Ml0pe2lmKCEoQT0wfGIyKEhlLEQsTSsoQT0wfGFbRCs2ND4+Ml0pfDAsMC1BKygwfGFbTGw+PjJdKXwwKSkpe0E9MSxrPTI4MDticmVhayBlfXVBKEEpLGFbUm8+PjJdPUEsYVtu''@;'; + put 'put ''dD4+Ml09YVtxZT4+Ml0sQT1EfWVsc2Ugaz0yNzU7YnJlYWs7Y2FzZSAxOTppZigwIT0oMHxhW2xvPj4yXSkmJjAhPSgwfGFbVGE+PjJdKSl7aWYoIShBPTB8YjIoSGUsRCxNKyhBPTB8YVtEKzY0Pj4yXSl8MCwwLUErKDB8YVtMbD4+Ml0pfDApKSl7QT0xLGs9MjgwO2JyZWFrIGV9YVtHPj4y''@;'; + put 'put ''XT1NLHA4WzE1JmFbVGE+PjJdXSgwfGFbaGM+PjJdLDB8YVtsbz4+Ml0sMHxhW204Pj4yXSxBLDB8YVtSbz4+Ml0pLEE9MH1lbHNlIEE9MTtDZihIZSksaz0yNzQ7YnJlYWs7Y2FzZSAyMDowIT0oMHxhW1JvPj4yXSkmJjAhPSgwfGFbVGE+PjJdKT8oYVtHPj4yXT1NLHA4WzE1JmFbVGE+PjJd''@;'; + put 'put ''XSgwfGFbaGM+PjJdLDB8YVtsbz4+Ml0sMHxhW204Pj4yXSwwLDB8YVtSbz4+Ml0pLEE9MCk6QT0xLENmKEhlKSxrPTI3NDticmVhaztjYXNlIDU4OmlmKDB8YVtiZT4+Ml0mJl8yKGwsRCxNLDB8YVtMbD4+Ml0pLDB8KEE9MHxmQShsLEQsTGwscCx3LGIpKSl7az0yODA7YnJlYWsgZX1pZigh''@;'; + put 'put ''KDB8YVtMbD4+Ml0pKXtrPTE4OTticmVhayBlfUE9RDticmVhaztjYXNlIDQ0OkE9MHxhW2dhPj4yXTtkb3tpZigoMHxhW2phPj4yXSk+Pj4wPj1BPj4+MCl7aWYoIUEpe2lmKG09MHxhW3oyPj4yXSxhW2dhPj4yXT0zMixtPTB8X29bNjMmbV0oMzIpLGFbeGk+PjJdPW0sbSlicmVhaztrPTE5''@;'; + put 'put ''ODticmVhayBlfWlmKGY9MHxhW3IxPj4yXSxtPTB8YVt4aT4+Ml0sYVtnYT4+Ml09QTw8PTEsIShBPTB8QmlbMTI3JmZdKG0sQSkpKXtrPTE5MzticmVhayBlfWlmKGFbeGk+PjJdPUEsMHwoQT0wfGFbb3M+PjJdKSl7aWYoIShBPTB8QmlbMTI3JmFbcjE+PjJdXShBLGFbZ2E+PjJdPDwyKSkp''@;'; + put 'put ''e0E9MSxrPTI4MDticmVhayBlfWFbb3M+PjJdPUF9fX13aGlsZSgwKTtpZihmZVsoMHxhW3hpPj4yXSkrKDB8YVtqYT4+Ml0pPj4wXT0wLDB8ZmVbRGw+PjBdKXtpZigoMHwoQT0wfGl4KGwpKSk8MCl7QT0xLGs9MjgwO2JyZWFrIGV9YVsoMHxhW29zPj4yXSkrKGFbb2w+PjJdPDwyKT4+Ml09''@;'; + put 'put ''QSxhW29sPj4yXT0xKygwfGFbb2w+PjJdKSxhWygwfGFbTDA+PjJdKSsoMjgqQXwwKT4+Ml09NiwwfGFbeGE+PjJdP0E9RDprPTI3NX1lbHNlIGs9Mjc1O2JyZWFrO2Nhc2UgNTA6aWYoMTI0PT0oMHxmZVsoQT0oMHxhW3hpPj4yXSkrKDB8YVtqYT4+Ml0pfDApPj4wXSkpe0E9MixrPTI4MDti''@;'; + put 'put ''cmVhayBlfWZlW0E+PjBdPTQ0LDAhPSgwfGZlW0RsPj4wXSkmJjAhPSgwfGFbeGE+PjJdKT9BPUQ6az0yNzU7YnJlYWs7Y2FzZSA0OTppZigoQT0wfGZlWyhmPTB8YVt4aT4+Ml0pKyhjPTB8YVtqYT4+Ml0pPj4wXSk8PDI0Pj4yND09NDQpe0E9MixrPTI4MDticmVhayBlfUE8PDI0Pj4yND09''@;'; + put 'put ''MCYwIT0oMHxmZVtEbD4+MF0pJiYzIT0oMHxhWyhsUz0oMHxhW0wwPj4yXSkrKDI4KigwfGFbKDB8YVtvcz4+Ml0pKygoMHxhW29sPj4yXSktMTw8Mik+PjJdKXwwKXwwKT4+Ml0pPyhhW2xTPj4yXT01LEE9MD09KDB8YVt4YT4+Ml0pJjEsZj0wfGFbeGk+PjJdLGM9MHxhW2phPj4yXSk6QT0x''@;'; + put 'put ''LGZlW2YrYz4+MF09MTI0LGs9Mjc0O2JyZWFrO2Nhc2UgNTk6Y2FzZSA2MDppZihmZVt0Zj4+MF09MSwwfGFbU24+PjJdKXtpZighKGM9MHxiMihFdCxELE0rKGM9MHxhW0QrNjQ+PjJdKXwwLDAtYysoMHxhW0xsPj4yXSl8MCkpKXtBPTEsaz0yODA7YnJlYWsgZX1mPTB8XzEobCxTdCxjLDAp''@;'; + put 'put ''LGFbWnQ+PjJdPWFbY3Q+PjJdO2Rve2lmKDB8YVtGZj4+Ml0pe2lmKDB8ZmVbZzg+PjBdKXtpZigwfGFbdjE+PjJdKXtrPTIxOTticmVha319ZWxzZSBpZigwfGZlW3RmPj4wXSl7az0yMTk7YnJlYWt9aWYoIWYpe0E9MTEsaz0yODA7YnJlYWsgZX1pZighKDB8ZmVbZiszND4+MF0pKXtBPTI0''@;'; + put 'put ''LGs9MjgwO2JyZWFrIGV9fWVsc2Ugaz0yMTl9d2hpbGUoMCk7aWYoMjE5PT0oMHxrKSYmKGs9MCwwPT0oMHxmKSkpe2lmKGZlW2x0Pj4wXT0wfGZlW2c4Pj4wXSw2MCE9KDB8bSkpe2s9Mjc1O2JyZWFrIHR9aWYoIShBPTB8YVtaYT4+Ml0pKXtrPTI3NTticmVhayB0fWRsWzEyNyZBXSgwfGFb''@;'; + put 'put ''aGM+PjJdLGMsMSksQT1EO2JyZWFrIHR9aWYoMHxmZVsoQT1mKzMyfDApPj4wXSl7QT0xMixrPTI4MDticmVhayBlfWlmKDB8YVtmKzQ+PjJdKXtpZihjPTA9PSgwfChBPTB8b3gobCxmLDYwPT0oMHxtKSYxKSkpKXtBPTEmKDFeYyksaz0yNzQ7YnJlYWsgdH1rPTI4MDticmVhayBlfWlmKCEo''@;'; + put 'put ''MHxhW3ExPj4yXSkpe2ZlW2x0Pj4wXT0wfGZlW2c4Pj4wXSxrPTI3NTticmVhayB0fWlmKGZlW3hwPj4wXT0wLGZlW0E+PjBdPTEsbT0wPT0oMHxPMlsxMjcmYVtxMT4+Ml1dKDB8YVt4TD4+Ml0sMCwwfGFbZisyMD4+Ml0sMHxhW2YrMTY+PjJdLDB8YVtmKzI0Pj4yXSkpLGZlW0E+PjBdPTAs''@;'; + put 'put ''bSl7QT0yMSxrPTI4MDticmVhayBlfWlmKGM9MHxmZVtnOD4+MF0sISgwfGZlW3hwPj4wXSkpe2ZlW2x0Pj4wXT1jLEE9RDticmVhayB0fUE9MH1lbHNlIGZlW2x0Pj4wXT1jPTB8ZmVbZzg+PjBdLEE9MTtpZihjPDwyND4+MjQ9PTAmJjAhPSgwfChzUz0wfGFbZDk+PjJdKSkmJjA9PSgwfF9v''@;'; + put 'put ''WzYzJnNTXSgwfGFbaGM+PjJdKSkpe0E9MjIsaz0yODA7YnJlYWsgZX1rPTI3NDticmVhaztjYXNlIDQwOmlmKDB8YVt4YT4+Ml0pe2lmKE09MHxPbShsLEQsTSwwfGFbTGw+PjJdKSxhW0huPj4yXT1NLCFNKXtBPTEsaz0yODA7YnJlYWsgZX1hW29sPj4yXT0wLGFbRzI+PjJdPTAsZmVbRGw+''@;'; + put 'put ''PjBdPTEsQT1EfWVsc2Ugaz0yNzU7YnJlYWs7Y2FzZSA0MjpjYXNlIDQxOmlmKDB8ZmVbRGw+PjBdKXtpZigwfGFbeGE+PjJdKXtpZighKEE9MHxfb1s2MyZhW3oyPj4yXV0oMjApKSl7QT0xLGs9MjgwO2JyZWFrIGV9YVsoaz1BKzR8MCk+PjJdPTAsYVtrKzQ+PjJdPTAsYVtrKzg+PjJdPTAs''@;'; + put 'put ''YVtrKzEyPj4yXT0wLGFbQT4+Ml09NDE9PSgwfG0pPzI6MSxhW0c+PjJdPU0sZGxbMTI3JmFbeGE+PjJdXSgwfGFbaGM+PjJdLDB8YVthW0huPj4yXT4+Ml0sQSksQT0wfWVsc2UgQT0xO2ZlW0RsPj4wXT0wLGs9Mjc0fWVsc2Ugaz0yNzU7YnJlYWs7Y2FzZSA0MzowIT0oMHxmZVtEbD4+MF0p''@;'; + put 'put ''JiYoYVsoMHxhW0wwPj4yXSkrKDI4KigwfGFbKDB8YVtvcz4+Ml0pKygoMHxhW29sPj4yXSktMTw8Mik+PjJdKXwwKT4+Ml09MywwIT0oMHxhW3hhPj4yXSkpP0E9RDprPTI3NTticmVhaztjYXNlIDUxOmM9MCxrPTI0NzticmVhaztjYXNlIDUzOmM9MSxrPTI0NzticmVhaztjYXNlIDUyOmM9''@;'; + put 'put ''MixrPTI0NzticmVhaztjYXNlIDU0OmM9MyxrPTI0NzticmVhaztjYXNlIDQ1OmY9MCxrPTI1ODticmVhaztjYXNlIDQ3OmY9MSxrPTI1ODticmVhaztjYXNlIDQ2OmY9MixrPTI1ODticmVhaztjYXNlIDQ4OmY9MyxrPTI1ODticmVhaztjYXNlIDU1OmlmKCEoMHxoQShsLEQsTSwwfGFbTGw+''@;'; + put 'put ''PjJdKSkpe0E9MSxrPTI4MDticmVhayBlfUE9RDticmVhaztjYXNlIDU2OmlmKCEoMHxDXyhsLEQsTSwwfGFbTGw+PjJdKSkpe0E9MSxrPTI4MDticmVhayBlfUE9RDticmVhaztjYXNlIDA6MTQ9PSgwfGMpP0E9RDprPTI3NTticmVhaztjYXNlIDM6MHxhW0xlPj4yXT9BPUQ6az0yNzU7YnJl''@;'; + put 'put ''YWs7Y2FzZSAxMTowIT0oMHxmZVtsdD4+MF0pJiYwIT0oMHxhW2J0Pj4yXSk/QT1EOms9Mjc1O2JyZWFrO2Nhc2UgMTc6MHxhW1RhPj4yXT9BPUQ6az0yNzU7YnJlYWs7Y2FzZSAzMzowIT0oMHxmZVtsdD4+MF0pJiYwIT0oMHxhW3VyPj4yXSk/QT1EOms9Mjc1O2JyZWFrO2Nhc2UgMzk6MHxh''@;'; + put 'put ''W3hhPj4yXT9BPUQ6az0yNzU7YnJlYWs7ZGVmYXVsdDprPTI3NX19d2hpbGUoMCk7aWYoMzM9PSgwfGspKXtpZighKDB8cTBbMTI3JmFbRCs1Mj4+Ml1dKEQsTSwwfGFbTGw+PjJdLFIpKSl7QT0zMixrPTI4MDticmVha31BPTEsaz0zNH1lbHNlIGlmKDgwPT0oMHxrKSlrPTAsMCE9KDB8ZmVb''@;'; + put 'put ''bHQ+PjBdKSYmMCE9KDB8YVt1cj4+Ml0pP0E9RDprPTI3NTtlbHNlIGlmKDEzMz09KDB8aykpaWYoaz0wLDAhPSgwfGZlW2x0Pj4wXSkmJjAhPSgwfGFba3Q+PjJdKSl7aWYoYz0wfGIyKEV0LEQsTSsoYz0wfGFbRCs2ND4+Ml0pfDAsMC1jKygwfGFbTGw+PjJdKXwwKSxhWzE2KygwfGFba3Q+''@;'; + put 'put ''PjJdKT4+Ml09YywhKDB8YVsxNisoYz0wfGFba3Q+PjJdKT4+Ml0pKXtBPTEsaz0yODA7YnJlYWt9YVtjKzIwPj4yXT1hW204Pj4yXSxhW2N0Pj4yXT1hW1p0Pj4yXSwxMz09KDB8bSkmMCE9KDB8YVtidD4+Ml0pP0E9RDprPTI3NH1lbHNlIGs9Mjc0O2Vsc2UgaWYoMjQ3PT0oMHxrKSlpZihr''@;'; + put 'put ''PTAsMHxmZVtEbD4+MF0pe2lmKEE9MHxhW0xsPj4yXSxjJiYoQT1BKygwLSgwfGFbRCs2ND4+Ml0pKXwwKSwoMHwoZj0wfGl4KGwpKSk8MCl7QT0xLGs9MjgwO2JyZWFrfWlmKGFbKDB8YVtMMD4+Ml0pKygyOCpmfDApPj4yXT00LGFbKDB8YVtMMD4+Ml0pKygyOCpmfDApKzQ+PjJdPWMsIShB''@;'; + put 'put ''PTB8T20obCxELE0sQSkpKXtBPTEsaz0yODA7YnJlYWt9YVsoMHxhW0wwPj4yXSkrKDI4KmZ8MCkrOD4+Ml09Yz0wfGFbQT4+Ml0sQT0wO2Rve209QSxBPUErMXwwfXdoaWxlKDAhPSgwfGZlW2MrbT4+MF0pKTthW3FhPj4yXT0oMHxhW3FhPj4yXSkrQSwwfGFbeGE+PjJdP0E9RDprPTI3NX1l''@;'; + put 'put ''bHNlIGs9Mjc1O2Vsc2UgaWYoMjU4PT0oMHxrKSlpZigwfGZlW0RsPj4wXSlpZihBPTEmKGM9MD09KDB8YVt4YT4+Ml0pKSxhW29sPj4yXT1rPSgwfGFbb2w+PjJdKS0xfDAsYVsoMHxhW0wwPj4yXSkrKDI4KigwfGFbKDB8YVtvcz4+Ml0pKyhrPDwyKT4+Ml0pfDApKzQ+PjJdPWYsMHxhW29s''@;'; + put 'put ''Pj4yXSlrPTI3NDtlbHNle2lmKCFjKXtpZighKGM9MHxfXyhsKSkpe0E9MSxrPTI4MDticmVha31hW0c+PjJdPU0sZGxbMTI3JmFbeGE+PjJdXSgwfGFbaGM+PjJdLDB8YVthW0huPj4yXT4+Ml0sYyl9ZmVbRGw+PjBdPTAsYVtxYT4+Ml09MCxrPTI3NH1lbHNlIGs9Mjc1O2lmKDM0PT0oMHxr''@;'; + put 'put ''KSlpZihrPTAsMCE9KDB8ZmVbbHQ+PjBdKSYmMCE9KDB8YVtrdD4+Ml0pKXtpZighKGM9MHxiMihFdCxELE0rKGM9MHxhW0QrNjQ+PjJdKXwwLDAtYysoMHxhW0xsPj4yXSl8MCkpKXtBPTEsaz0yODA7YnJlYWt9dUEoYyksYVsyNCsoMHxhW2t0Pj4yXSk+PjJdPWMsYVtjdD4+Ml09YVtadD4+''@;'; + put 'put ''Ml0sMTQ9PSgwfG0pJjAhPSgwfGFbYnQ+PjJdKT9BPUQ6az0yNzR9ZWxzZSBrPTI3NDtzd2l0Y2goMjc0PT0oMHxrKSYmKGs9MCxBPDwyND4+MjQ/az0yNzU6QT1EKSwyNzU9PSgwfGspJiYoaz0wLDB8YVtiZT4+Ml0mJl8yKGwsRCxNLDB8YVtMbD4+Ml0pLEE9RCksMHxhW09lPj4yXSl7Y2Fz''@;'; + put 'put ''ZSAzOms9Mjc4O2JyZWFrIGU7Y2FzZSAyOkE9MzUsaz0yODA7YnJlYWsgZX1EPUEsTT1jPTB8YVtMbD4+Ml0sYz0wfHEwWzEyNyZhW0E+PjJdXShBLGMscCxMbCl9ZTpzd2l0Y2goMHxrKXtjYXNlIDc6YVt3Pj4yXT1NLEE9MDticmVhaztjYXNlIDk6YVtSPj4yXT1mLEE9NDticmVhaztjYXNl''@;'; + put 'put ''IDEwOmlmKCEoQT0oMHxEKT09KDB8YVtwZT4+Ml0pKSYmMD09KDB8ZmVbMjArKDB8YVt2MT4+Ml0pPj4wXSkpe2Fbdz4+Ml09TSxBPTA7YnJlYWt9MCE9KDB8ZmVbbCs0ODQ+PjBdKXwxXkE/LTE9PSgwfE8yWzEyNyZhW0VwPj4yXV0oRXAsLTQscCxwLEQpKT9BPTI5OihhW3c+PjJdPU0sQT0w''@;'; + put 'put ''KTpBPTM7YnJlYWs7Y2FzZSA1ODpkb3tpZigwfGZlW290Pj4wXSYmKF9mZT0wfGZlW3RmPj4wXSxmZVt0Zj4+MF09MSwwfGFbU24+PjJdKSYmMHxhW3ExPj4yXSl7aWYoIShBPTB8XzEobCxTdCw3NTM5NSwzNikpKXtBPTE7YnJlYWsgZX1pZihhWyhMbD1BKzIwfDApPj4yXT1hW204Pj4yXSxm''@;'; + put 'put ''ZVt4cD4+MF09MCwhKDB8TzJbMTI3JmFbcTE+PjJdXSgwfGFbeEw+PjJdLDAsMHxhW0xsPj4yXSwwfGFbQSsxNj4+Ml0sMHxhW0ErMjQ+PjJdKSkpe0E9MjE7YnJlYWsgZX1pZighKDB8ZmVbeHA+PjBdKSl7ZmVbdGY+PjBdPV9mZTticmVha31pZigwPT0oMHxmZVtnOD4+MF0pJiYwfChycT0w''@;'; + put 'put ''fGFbZDk+PjJdKSYmMD09KDB8X29bNjMmcnFdKDB8YVtoYz4+Ml0pKSl7QT0yMjticmVhayBlfX19d2hpbGUoMCk7YVtsKzI3Nj4+Ml09NTgsQT0wfEFfKGwsTSxwLHcpO2JyZWFrO2Nhc2UgMTg0OkE9Mjg9PSgwfGMpPzEwOjEyPT0oMHxjKT8xNzoyO2JyZWFrO2Nhc2UgMTg5OmFbbCsyNzY+''@;'; + put 'put ''PjJdPTU5LEE9MDticmVhaztjYXNlIDE5MzphW2dhPj4yXT0oMHxhW2dhPj4yXSk+Pj4xLEE9MTticmVhaztjYXNlIDE5ODphW2dhPj4yXT0wLEE9MTticmVhaztjYXNlIDI3ODphW3c+PjJdPWFbTGw+PjJdLEE9MH1yZXR1cm4gYWU9aXEsMHxBfWZ1bmN0aW9uIG54KGwsYyxmLHApe2x8PTAs''@;'; + put 'put ''Y3w9MCxmfD0wLHB8PTA7dmFyIGIsRCxSLEcsSyxtPTAsQT0wLHc9MCxrPTAsTT0wO0s9YWUsYWU9YWUrMzJ8MCxNPUsrMTJ8MCx3PUsrOHwwLGI9Sys0fDAsaz1LLGFbKEc9SysxNnwwKT4+Ml09MCxhW00+PjJdPTAsYVt3Pj4yXT0wLGFbaz4+Ml09LTEsRD1sKzE0NHwwLFI9bCsyODR8MCxt''@;'; + put 'put ''PTAhPSgwfGMpO2U6ZG97aWYoMHxaalszJihmZVtsKzIzMj4+MF08PDI0Pj4yND8yOjEpXShjLDB8YVtEPj4yXSxmLHAsUix3LGIsRyxNLGspKXtpZigxPT0oMHxhW2s+PjJdKSYoMV5tKSYmKGZlWzEzMCsoMHxhW2wrMzUyPj4yXSk+PjBdPTEsMT09KDB8YVsoQT1sKzQ4OHwwKT4+Ml0pKSYm''@;'; + put 'put ''KGFbQT4+Ml09MCksMHxhWyhBPWwrMTQwfDApPj4yXSl7aWYoYz0wfGFbRz4+Ml0pe2lmKCEoYz0wfGIyKGwrNDM2fDAscD0wfGFbRD4+Ml0sYyxjKygwfEJpWzEyNyZhW3ArMjg+PjJdXShwLGMpKXwwKSkpe2M9MTticmVha31hW2wrNDUyPj4yXT1hW2wrNDQ4Pj4yXX1lbHNlIGM9MDtpZiht''@;'; + put 'put ''PTB8YVt3Pj4yXSl7aWYoIShtPTB8YjIobCs0MzZ8MCx3PTB8YVtEPj4yXSxtLDAtKDB8YVt3KzY0Pj4yXSkrKDB8YVtiPj4yXSl8MCkpKXtjPTE7YnJlYWt9fWVsc2UgbT0wO1JjWzMxJmFbQT4+Ml1dKDB8YVtsKzQ+PjJdLG0sYywwfGFbaz4+Ml0pLGY9bX1lbHNlIDB8YVtsKzgwPj4yXT8o''@;'; + put 'put ''XzIobCwwfGFbRD4+Ml0sZixwKSxmPTAsYz0wKTooZj0wLGM9MCk7ZG97aWYoISgwfGFbbCsyMjg+PjJdKSl7aWYoQT1tPTB8YVtNPj4yXSwwfG0pe2lmKCgwfChrPTB8YVttKzY0Pj4yXSkpPT0oMHxhWzY0KyhNPTB8YVtEPj4yXSk+PjJdKSYmMiE9KDB8ayl8KDB8bSk9PSgwfE0pKXthW0Q+''@;'; + put 'put ''PjJdPUE7YnJlYWt9YVtSPj4yXT1hW0c+PjJdLGM9MTk7YnJlYWsgZX1pZigwfChtPTB8YVtHPj4yXSkpe2lmKEE9bCs0MzZ8MCwhYyYmIShjPTB8YjIoQSxjPTB8YVtEPj4yXSxtLG0rKDB8QmlbMTI3JmFbYysyOD4+Ml1dKGMsbSkpfDApKSl7Yz0xO2JyZWFrIGV9aWYoYz0wfEhtKGwsYyks''@;'; + put 'put ''Q2YoQSksMTghPSgwfGMpKWJyZWFrIGU7YVtSPj4yXT1hW0c+PjJdLGM9MTg7YnJlYWsgZX19fXdoaWxlKDApOzAhPSgwfGMpfDAhPSgwfGYpJiZDZihsKzQzNnwwKSxjPTB9ZWxzZSBjPW0/MzE6MzB9d2hpbGUoMCk7cmV0dXJuIGFlPUssMHxjfWZ1bmN0aW9uIGIyKGwsYyxmLHApe2x8PTAs''@;'; + put 'put ''Y3w9MCxmfD0wLHB8PTA7ZG97aWYoMHxjQShsLGMsZixwKSl7aWYoKDB8KGM9MHxhWyhmPWwrMTJ8MCk+PjJdKSk9PSgwfGFbbCs4Pj4yXSkpe2lmKCEoKDB8dmwobCkpPDwyND4+MjQpKXtjPTA7YnJlYWt9Yz0wfGFbZj4+Ml19YVtmPj4yXT1jKzEsZmVbYz4+MF09MCxjPTB8YVtsKzE2Pj4y''@;'; + put 'put ''XX1lbHNlIGM9MH13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIENmKGwpe3ZhciBwLGM9MCxmPTAsbT0wLEE9MDtjPTB8YVsocD00KyhsfD0wKXwwKT4+Ml07ZTpkb3tpZihjKWZvcihmPTB8YVtsPj4yXTs7KXtpZighZil7Yz1sO2JyZWFrIGV9QT0wfGFbZj4+Ml0sYVtmPj4yXT1jLGFb''@;'; + put 'put ''cD4+Ml09ZixtPWYsZj1BLGM9bX1lbHNlIGFbcD4+Ml09YVtsPj4yXSxjPWx9d2hpbGUoMCk7YVtjPj4yXT0wLGFbbCsxNj4+Ml09MCxhW2wrMTI+PjJdPTAsYVtsKzg+PjJdPTB9ZnVuY3Rpb24gXzEobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0w''@;'; + put 'put ''LEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wO1JlPTgrKGN8PTApfDA7ZTpkb3tpZigwfGFbUmU+PjJdKXtmb3IoTGU9MHx5QShsLGYpLGs9MHxhW2M+PjJdLE09TGUmMC0oYj0wfGFbUmU+PjJdKSxPZT1jKzR8MCxEPSh3PWIrLTF8MCk+Pj4yLEE9''@;'; + put 'put ''MCx3Jj1MZTttPTB8YVtrKyh3PDwyKT4+Ml07KXtpZigoMHxGbShmLDB8YVttPj4yXSkpPDwyND4+MjQpYnJlYWsgZTtBPW09QTw8MjQ+PjI0P0E6MjU1JihNPj4+KCgwfEp0W09lPj4wXSktMXwwKSZEfDEpLHc9dy0oYmU9MjU1Jm0pKyh3Pj4+MDxiZT4+PjA/YjowKXwwfWlmKHApe2lmKCEo''@;'; + put 'put ''KDB8YVtjKzEyPj4yXSk+Pj4oKG09MjU1JihBPTB8ZmVbT2U+PjBdKSktMXwwKSkpe209YysxNnwwLEE9YyxSPTI3O2JyZWFrfWlmKEs9bSsxJjI1NSxwZT0oZ2U9MTw8KHc9QSsxJjI1NSkpLTF8MCxiZT0wfF9vWzYzJmFbYVsobT1jKzE2fDApPj4yXT4+Ml1dKEE9Z2U8PDIpKXtmb3IodTIo''@;'; + put 'put ''MHxiZSwwLDB8QSksRz0wLWdlfDAsRD13Ky0xfDAsUj1wZT4+PjIsTT0wOyEoTT4+PjA+PSgwfGFbUmU+PjJdKT4+PjApOyl7aWYoMHwoQT0wfGFbKDB8YVtjPj4yXSkrKE08PDIpPj4yXSkpe2ZvcihiPTI1NSYoKChBPTB8eUEobCwwfGFbQT4+Ml0pKSZHKT4+PkQmUnwxKSxBJj1wZSx3PTA7''@;'; + put 'put ''MHxhWyhrPWJlKyhBPDwyKXwwKT4+Ml07KUE9QSsoQT4+PjA8KEhlPTI1NSYoaz13PDwyND4+MjQ9PTA/Yjp3KSk+Pj4wP2dlOjApLUhlfDAsdz1rO2Fbaz4+Ml09YVsoMHxhW2M+PjJdKSsoTTw8Mik+PjJdfU09TSsxfDB9Zm9yKENvWzEyNyZhWzgrKDB8YVttPj4yXSk+PjJdXSgwfGFbYz4+''@;'; + put 'put ''Ml0pLGFbYz4+Ml09YmUsZmVbT2U+PjBdPUssYVtSZT4+Ml09Z2UsYj0yNTUmKChMZSZHKT4+PkQmUnwxKSxBPXBlJkxlLHc9MDs7KXtpZighKDB8YVtiZSsoQTw8Mik+PjJdKSl7dz1BLEE9YyxSPTI3O2JyZWFrIGV9QT1BKyhBPj4+MDwoUmU9MjU1JihIZT13PDwyND4+MjQ9PTA/Yjp3KSk+''@;'; + put 'put ''Pj4wP2dlOjApLVJlfDAsdz1IZX19ZWxzZSBtPTB9ZWxzZSBtPTB9ZWxzZXtpZihwKXtpZihmZVtjKzQ+PjBdPTYsYVtSZT4+Ml09NjQsQT0wfF9vWzYzJmFbYVsobT1jKzE2fDApPj4yXT4+Ml1dKDI1NiksYVtjPj4yXT1BLEEpe3UyKDB8QSwwLDI1Niksdz0wfHlBKGwsZiksdyY9KDB8YVtS''@;'; + put 'put ''ZT4+Ml0pLTEsQT1jLFI9Mjc7YnJlYWt9YVtSZT4+Ml09MCxtPTA7YnJlYWt9bT0wfX13aGlsZSgwKTtyZXR1cm4gMjc9PSgwfFIpJiYobT0wfF9vWzYzJmFbYVttPj4yXT4+Ml1dKHApLGFbKDB8YVtBPj4yXSkrKHc8PDIpPj4yXT1tLChtPTB8YVsoMHxhW0E+PjJdKSsodzw8Mik+PjJdKT8o''@;'; + put 'put ''dTIoMHxtLDAsMHxwKSxhW2FbKDB8YVtBPj4yXSkrKHc8PDIpPj4yXT4+Ml09ZixhWyhtPWMrMTJ8MCk+PjJdPTErKDB8YVttPj4yXSksbT0wfGFbKDB8YVtBPj4yXSkrKHc8PDIpPj4yXSk6bT0wKSwwfG19ZnVuY3Rpb24gdUEobCl7dmFyIGM9MCxmPTAscD0wO2ZvcihwPWx8PTAsYz1sOyhm''@;'; + put 'put ''PTB8ZmVbcD4+MF0pPDwyND4+MjQ7KXtzd2l0Y2goZjw8MjQ+PjI0fDApe2Nhc2UgMTA6Y2FzZSAxMzpjYXNlIDMyOigwfGMpIT0oMHxsKT8zMiE9KDB8ZmVbYystMT4+MF0pJiYoZmVbYz4+MF09MzIsYz1jKzF8MCk6Yz1sO2JyZWFrO2RlZmF1bHQ6ZmVbYz4+MF09ZixjPWMrMXwwfXA9cCsx''@;'; + put 'put ''fDB9KDB8YykhPSgwfGwpJiYobD0zMj09KDB8ZmVbKGw9YystMXwwKT4+MF0pP2w6YyksZmVbbD4+MF09MH1mdW5jdGlvbiBBXyhsLGMsZixwKXtyZXR1cm4gMD09KDB8KGM9MHxCbShsfD0wLDAsMHxhW2wrMTQ0Pj4yXSxjfD0wLGZ8PTAscHw9MCwwPT0oMHxmZVtsKzQ4MD4+MF0pJjEpKSkm''@;'; + put 'put ''JigwfE1fKGwpKTw8MjQ+PjI0PT0wJiYoYz0xKSwwfGN9ZnVuY3Rpb24gT20obCxjLGYscCl7dmFyIEEsbT0wO2M9MHxiMig4MCsoQT0wfGFbMzUyKyhsfD0wKT4+Ml0pfDAsY3w9MCxmfD0wLHB8PTApO2Rve2lmKDAhPSgwfGMpJiYwIT0oMHwobT0wfF8xKGwsQSsyMHwwLGMsMjQpKSkpaWYo''@;'; + put 'put ''KDB8YVttPj4yXSk9PSgwfGMpKXtpZihhW0ErOTY+PjJdPWFbQSs5Mj4+Ml0sISgwfHhfKGwsbSkpKXttPTA7YnJlYWt9fWVsc2UgYVtBKzkyPj4yXT1hW0ErOTY+PjJdO2Vsc2UgbT0wfXdoaWxlKDApO3JldHVybiAwfG19ZnVuY3Rpb24geV8obCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFy''@;'; + put 'put ''IGssTSxELFIsbT0wLEE9MCx3PTAsYj0wO2s9ODArKEQ9MHxhWzM1MisobHw9MCk+PjJdKXwwLCgwfChBPTB8YVsoUj1EKzkyfDApPj4yXSkpPT0oMHxhWyhNPUQrODh8MCk+PjJdKT8oMHx2bChrKSk8PDI0Pj4yND8oQT0wfGFbUj4+Ml0sdz00KTptPTA6dz00O2U6ZG97aWYoND09KDB8dykp''@;'; + put 'put ''aWYoYVtSPj4yXT1BKzEsZmVbQT4+MF09MCxjPTB8YjIoayxjLGYscCksMCE9KDB8YykmJihiPWMrMXwwLG09MHxfMShsLEQrNDB8MCxiLDEyKSwwIT0oMHxtKSkpe2lmKCgwfGFbbT4+Ml0pIT0oMHxiKSl7YVtSPj4yXT1hW0QrOTY+PjJdO2JyZWFrfWlmKGFbKHc9RCs5NnwwKT4+Ml09QT0w''@;'; + put 'put ''fGFbUj4+Ml0sMHxmZVtsKzIzMj4+MF0pe2Y9MHxmZVtiPj4wXTt0OmRve2lmKGY8PDI0Pj4yND09MTIwKXtpZigxMDk9PSgwfGZlW2MrMj4+MF0pJiYxMDg9PSgwfGZlW2MrMz4+MF0pJiYxMTA9PSgwfGZlW2MrND4+MF0pJiYxMTU9PSgwfGZlW2MrNT4+MF0pKXtzd2l0Y2goMHxmZVtjKzY+''@;'; + put 'put ''PjBdKXtjYXNlIDA6QT1EKzE1MnwwO2JyZWFrO2Nhc2UgNTg6QT0wfF8xKGwsRCs2MHwwLGMrN3wwLDgpO2JyZWFrO2RlZmF1bHQ6cD0wLGM9MTIwO2JyZWFrIHR9YVttKzQ+PjJdPUEsZmVbbSs5Pj4wXT0xO2JyZWFrIGV9cD0wLGM9MTIwfWVsc2UgcD0wLGM9Zn13aGlsZSgwKTt0OmZvcig7''@;'; + put 'put ''Oyl7c3dpdGNoKGM8PDI0Pj4yNCl7Y2FzZSAwOmJyZWFrIGU7Y2FzZSA1ODpmPTA7YnJlYWsgdH1wPWM9cCsxfDAsYz0wfGZlW2IrYz4+MF19Zm9yKDtjPSgwfEEpPT0oMHxhW00+PjJdKSwhKCgwfGYpPj0oMHxwKSk7KXtpZihjKXtpZighKCgwfHZsKGspKTw8MjQ+PjI0KSl7bT0wO2JyZWFr''@;'; + put 'put ''IGV9QT0wfGFbUj4+Ml19Yz0wfGZlW2IrZj4+MF0sYVtSPj4yXT1BKzEsZmVbQT4+MF09YyxmPWYrMXwwLEE9MHxhW1I+PjJdfWlmKGMpe2lmKCEoKDB8dmwoaykpPDwyND4+MjQpKXttPTA7YnJlYWt9QT0wfGFbUj4+Ml19aWYoYVtSPj4yXT1BKzEsZmVbQT4+MF09MCxBPTB8XzEobCxEKzYw''@;'; + put 'put ''fDAsMHxhW3c+PjJdLDgpLGFbbSs0Pj4yXT1BLEEpe2lmKCgwfGFbQT4+Ml0pPT0oMHwoYz0wfGFbdz4+Ml0pKSl7YVt3Pj4yXT1hW1I+PjJdO2JyZWFrfWFbUj4+Ml09YzticmVha31tPTB9fWVsc2UgbT0wfXdoaWxlKDApO3JldHVybiAwfG19ZnVuY3Rpb24gcngobCxjKXtjfD0wO3ZhciBt''@;'; + put 'put ''LEEsZj0wLHA9MCx3PTA7Zm9yKG09MTIrKGx8PTApfDAsQT1sKzh8MDs7KXtpZighKChmPTB8ZmVbYz4+MF0pPDwyND4+MjQpKXt3PTc7YnJlYWt9aWYoKDB8KHA9MHxhW20+PjJdKSk9PSgwfGFbQT4+Ml0pKXtpZighKCgwfHZsKGwpKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrfXA9MHxhW20+PjJd''@;'; + put 'put ''LGY9MHxmZVtjPj4wXX1hW20+PjJdPXArMSxmZVtwPj4wXT1mLGM9YysxfDB9cmV0dXJuIDc9PSgwfHcpJiYoYz0wfGFbbCsxNj4+Ml0pLDB8Y31mdW5jdGlvbiBjQShsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgQSx3LGIsbT0wO2I9YWUsYWU9YWUrMTZ8MCxhWyh3PWIpPj4yXT1mfD0w''@;'; + put 'put ''LDA9PSgwfGFbKEE9bCsxMnwwKT4+Ml0pJiYoMHx2bChsKSk8PDI0Pj4yND09MD9mPTA6bT0zO2U6ZG97aWYoMz09KDB8bSkpe2ZvcihmPWMrNTZ8MCxtPWwrOHwwOyEoKDB8TzJbMTI3JmFbZj4+Ml1dKGMsdyxwLEEsMHxhW20+PjJdKSk+Pj4wPDIpOylpZighKCgwfHZsKGwpKTw8MjQ+PjI0''@;'; + put 'put ''KSl7Zj0wO2JyZWFrIGV9Zj0wfGFbbCsxNj4+Ml19fXdoaWxlKDApO3JldHVybiBhZT1iLDB8Zn1mdW5jdGlvbiBPaChsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLG18PTAsQXw9MDt2YXIgRCxSLHc9MCxiPTAsaz0wLE09MDt3PShwfD0wKTw8MjQ+PjI0PT0wLEQ9MHxhWyhSPTEyKyhsfD0wKXww''@;'; + put 'put ''KT4+Ml07ZTpkb3tpZih3JjA9PSgwfG0pKU09OTtlbHNle2ZvcihiPWwrMjB8MCxwPTA7ISgoMHxwKT49KDB8RCkpOyl7aWYoKDB8YVsoMHxhW2I+PjJdKSsoMTIqcHwwKT4+Ml0pPT0oMHxjKSl7cD0xO2JyZWFrIGV9cD1wKzF8MH0hdyYmMD09KDB8YVsoaz1sKzh8MCk+PjJdKSYmMD09KDB8''@;'; + put 'put ''ZmVbYys5Pj4wXSkmJihhW2s+PjJdPWMpLE09OX19d2hpbGUoMCk7ZTpkb3tpZig5PT0oMHxNKSl7Yj1sKzE2fDA7ZG97aWYoKDB8RCk9PSgwfGFbYj4+Ml0pKXtpZihEKXtpZighKHA9MHxCaVsxMjcmYVtBKzE2Pj4yXV0oMHxhWyh3PWwrMjB8MCk+PjJdLDI0KkR8MCkpKXtwPTA7YnJlYWsg''@;'; + put 'put ''ZX1hW2I+PjJdPUQ8PDEsYVt3Pj4yXT1wO2JyZWFrfWlmKGFbYj4+Ml09OCxwPTB8X29bNjMmYVtBKzEyPj4yXV0oOTYpLGFbbCsyMD4+Ml09cCwwfHApYnJlYWs7YVtiPj4yXT0wLHA9MDticmVhayBlfXA9MHxhW2wrMjA+PjJdfXdoaWxlKDApO2FbcCsoMTIqKEE9MHxhW1I+PjJdKXwwKT4+''@;'; + put 'put ''Ml09YyxhW3ArKDEyKkF8MCkrOD4+Ml09bSxmZVtwKygxMipBfDApKzQ+PjBdPWYsZjw8MjQ+PjI0fHwoZmVbYys4Pj4wXT0xKSxhW1I+PjJdPTErKDB8YVtSPj4yXSkscD0xfX13aGlsZSgwKTtyZXR1cm4gMHxwfWZ1bmN0aW9uIHZsKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxi''@;'; + put 'put ''PTAsaz0wLE09MCxEPTA7cD0wfGFbKGM9NCsobHw9MCl8MCk+PjJdO2Rve2lmKHApe2lmKCEoQT0wfGFbKG09bCsxNnwwKT4+Ml0pKXthW2w+PjJdPXAsYVtjPj4yXT1hW3A+PjJdLGFbcD4+Ml09MCxhW20+PjJdPWM9OCsoRD0wfGFbbD4+Ml0pfDAsYVtsKzg+PjJdPSgwfGFbRCs0Pj4yXSkr''@;'; + put 'put ''KEQrOCksYVtsKzEyPj4yXT1jLGM9MTticmVha30oKDB8YVsoZj1sKzh8MCk+PjJdKS1BfDApPCgwfGFbcCs0Pj4yXSk/KE09MHxhW3A+PjJdLGFbcD4+Ml09YVtsPj4yXSxhW2w+PjJdPUQ9MHxhW2M+PjJdLGFbYz4+Ml09TSxnbyhEKzh8MCwwfChjPTB8YVttPj4yXSksKDB8YVtmPj4yXSkt''@;'; + put 'put ''Y3wwKSxhWyhEPWwrMTJ8MCk+PjJdPSgwfGFbRD4+Ml0pLSgwfGFbbT4+Ml0pKyg4KyhjPTB8YVtsPj4yXSkpLGFbbT4+Ml09Yys4LGFbZj4+Ml09KDB8YVtjKzQ+PjJdKSsoYys4KSxjPTEpOnc9Nn1lbHNlIHc9Nn13aGlsZSgwKTtlOmRve2lmKDY9PSgwfHcpKXtwPTB8YVtsPj4yXSxNPWwr''@;'; + put 'put ''MTZ8MDtkb3tpZihwKXtpZihjPWs9MHxhW00+PjJdLCgwfGspIT0ocCs4fDApKXtiPU07YnJlYWt9aWYoZj0oMHxhWyh3PWwrMTJ8MCk+PjJdKS1jfDAsKDB8KEE9KDB8YVsobT1sKzh8MCk+PjJdKS1jPDwxKSk8MCl7Yz0wO2JyZWFrIGV9aWYoIShjPTB8SV8oQSkpKXtjPTA7YnJlYWsgZX1p''@;'; + put 'put ''ZighKGM9MHxCaVsxMjcmYVs0KygwfGFbbCsyMD4+Ml0pPj4yXV0ocCxjKSkpe2M9MDticmVhayBlfWFbbD4+Ml09YyxhW2MrND4+Ml09QSxhW3c+PjJdPTgrKGM9MHxhW2w+PjJdKStmLGFbTT4+Ml09Yys4LGFbbT4+Ml09Yys4K0EsYz0xO2JyZWFrIGV9Yj1NLGM9MHxhW00+PjJdfXdoaWxl''@;'; + put 'put ''KDApO2lmKCgwfChjPSgwfGFbKGs9bCs4fDApPj4yXSktY3wwKSk+PTApe2lmKCgwfGMpPj0xMDI0KXtpZigoMHwoYzw8PTEpKTwwKXtjPTA7YnJlYWt9fWVsc2UgYz0xMDI0OzAhPSgwfChmPTB8SV8oYykpKSYmMCE9KDB8KEQ9MHxfb1s2MyZhW2FbbCsyMD4+Ml0+PjJdXShmKSkpPyhhW0Qr''@;'; + put 'put ''ND4+Ml09YyxhW0Q+PjJdPWFbbD4+Ml0sYVtsPj4yXT1ELGY9bD0wfGFbKHc9bCsxMnwwKT4+Ml0sbT1wPTB8YVtNPj4yXSwoMHxsKT09KDB8cCk/KEE9RCs4fDAscD1tKTooZ28oMHwoQT1EKzh8MCksMHxwLGYtbXwwKSxwPTB8YVtiPj4yXSxmPTB8YVt3Pj4yXSksYVt3Pj4yXT1EKzgrKGYt''@;'; + put 'put ''cCksYVtNPj4yXT1BLGFbaz4+Ml09RCs4K2MsYz0xKTpjPTB9ZWxzZSBjPTB9fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gd18obCxjLGYscCxtLEEpe3ZhciB3PTA7bD0wfEFBKGx8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wKTtkb3tpZighbCl7aWYobD0wfGFbKGM9QSsxMnww''@;'; + put 'put ''KT4+Ml0sZjw8MjQ+PjI0PT0wJiYoMHxhW0ErMTY+PjJdKSE9KDB8bCkmJjMyPT0oMHxmZVsodz1sKy0xfDApPj4wXSkmJihhW2M+PjJdPXcsbD13KSwoMHxsKT09KDB8YVtBKzg+PjJdKSl7aWYoISgoMHx2bChBKSk8PDI0Pj4yNCkpe2w9MTticmVha31sPTB8YVtjPj4yXX1hW2M+PjJdPWwr''@;'; + put 'put ''MSxmZVtsPj4wXT0wLGw9MH19d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBiXyhsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgV2Usb3QsU3Qsa3QsbHQsWnQsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0w''@;'; + put 'put ''LEhlPTAsVmU9MCxxZT0wLG50PTAsRXQ9MDtpZihadD1hZSxhZT1hZSsxNnwwLFdlPVp0LG90PVp0KzR8MCxTdD0xMDQrKG09MHxhWzM1MisobHw9MCk+PjJdKXwwLGt0PTB8YVsobHQ9bCsyNzJ8MCk+PjJdLGFbbHQ+PjJdPTEsMD09KDB8YVtTdD4+Ml0pJiYoMHx2bChTdCkpPDwyND4+MjQ9''@;'; + put 'put ''PTApbT0xO2Vsc2V7RD1jKzIwfDAsUj1sKzQ4NHwwLEc9bCsxNDR8MCxLPWwrNDEyfDAscGU9Yys2NHwwLGdlPW0rMTMyfDAsYmU9bCs0Mjh8MCxPZT1sKzQyNHwwLExlPWwrMjI0fDAsUmU9bCsxMTJ8MCxNPW0rMTMwfDAsSGU9bSsxMjh8MCxWZT1tKzEzMXwwLHFlPWwrMTE2fDAsbnQ9bSsx''@;'; + put 'put ''MTJ8MCxiPW0rMTE2fDAsaz1jKzQwfDA7ZTpmb3IoOzspe3Q6ZG97c3dpdGNoKDB8cTBbMTI3JmFbRD4+Ml1dKGMsZixwLFdlKSl7Y2FzZS00Om09MDticmVhayBlO2Nhc2UtMTpFdD0zNzticmVhayBlO2Nhc2UgMDpFdD0zOTticmVhayBlO2Nhc2UgMjg6aWYoMD09KDB8ZmVbUj4+MF0pJiYo''@;'; + put 'put ''MHxhW0c+PjJdKT09KDB8Yykpe0V0PTE5O2JyZWFrIGV9aWYoIShtPTB8YjIoSyxjLGYrKG09MHxhW3BlPj4yXSl8MCwwLW0rKDB8YVtXZT4+Ml0pfDApKSl7bT0xO2JyZWFrIGV9aWYoQT0wfF8xKGwsZ2UsbSwwKSxhW09lPj4yXT1hW2JlPj4yXSwhQSl7RXQ9OTticmVhayBlfWlmKDB8ZmVb''@;'; + put 'put ''KHc9QSszMnwwKT4+MF0pe0V0PTExO2JyZWFrIGV9aWYoISgwfGFbKG09QSsxNnwwKT4+Ml0pKXtpZihmZVt3Pj4wXT0xLG09MHxiXyhsLDB8YVtMZT4+Ml0sbT0wfGFbQSs0Pj4yXSxtKygwfGFbQSs4Pj4yXSl8MCksZmVbdz4+MF09MCxtKWJyZWFrIGU7YnJlYWsgdH1pZigwfGFbUmU+PjJd''@;'; + put 'put ''KXtpZihmZVtWZT4+MF09MCxmZVt3Pj4wXT0xLEE9MD09KDB8TzJbMTI3JmFbUmU+PjJdXSgwfGFbcWU+PjJdLDAsMHxhW0ErMjA+PjJdLDB8YVttPj4yXSwwfGFbQSsyND4+Ml0pKSxmZVt3Pj4wXT0wLEEpe209MjE7YnJlYWsgZX1pZigwfGZlW1ZlPj4wXSlicmVhayB0fWZlW0hlPj4wXT0w''@;'; + put 'put ''fGZlW00+PjBdO2JyZWFrO2Nhc2UgNjpjYXNlIDk6aWYoISgwfGNBKFN0LGMsZiwwfGFbV2U+PjJdKSkpe209MTticmVhayBlfWJyZWFrO2Nhc2UtMzphW1dlPj4yXT1mKygwfGFbcGU+PjJdKSxFdD0yMjticmVhaztjYXNlIDc6RXQ9MjI7YnJlYWs7Y2FzZSAxMDppZigoMHwobT0wfEJpWzEy''@;'; + put 'put ''NyZhW2s+PjJdXShjLGYpKSk8MCl7RXQ9Mjc7YnJlYWsgZX1mb3IoQT0wfFc0KG0sb3QpLGY9MDshKCgwfGYpPj0oMHxBKSk7KXtpZigoMHxhW250Pj4yXSk9PSgwfChtPTB8YVtiPj4yXSkpKXtpZighKCgwfHZsKFN0KSk8PDI0Pj4yNCkpe209MSxFdD0zNTticmVhayBlfW09MHxhW2I+PjJd''@;'; + put 'put ''fXc9MHxmZVtvdCtmPj4wXSxhW2I+PjJdPW0rMSxmZVttPj4wXT13LGY9ZisxfDB9YnJlYWs7ZGVmYXVsdDpFdD00MTticmVhayBlfX13aGlsZSgwKTtpZigyMj09KDB8RXQpKXtpZihFdD0wLCgwfGFbbnQ+PjJdKT09KDB8KG09MHxhW2I+PjJdKSkpe2lmKCEoKDB8dmwoU3QpKTw8MjQ+PjI0''@;'; + put 'put ''KSl7bT0xO2JyZWFrfW09MHxhW2I+PjJdfWFbYj4+Ml09bSsxLGZlW20+PjBdPTEwfWY9MHxhW1dlPj4yXX05PT0oMHxFdCk/KGZlW0hlPj4wXT0wfGZlW00+PjBdLG09MCk6MTE9PSgwfEV0KT8oKDB8YVtHPj4yXSk9PSgwfGMpJiYoYVtsKzI4ND4+Ml09ZiksbT0xMik6MTk9PSgwfEV0KT8o''@;'; + put 'put ''YVtsKzI4ND4+Ml09ZixtPTEwKToyNz09KDB8RXQpPygwfGFbRz4+Ml0pPT0oMHxjKT8oYVtsKzI4ND4+Ml09ZixtPTE0LEV0PTM1KToobT0xNCxFdD0zNSk6Mzc9PSgwfEV0KT8oKDB8YVtHPj4yXSk9PSgwfGMpJiYoYVtsKzI4ND4+Ml09ZiksbT00KTozOT09KDB8RXQpPygoMHxhW0c+PjJd''@;'; + put 'put ''KT09KDB8YykmJihhW2wrMjg0Pj4yXT1hW1dlPj4yXSksbT00KTo0MT09KDB8RXQpJiYoKDB8YVtHPj4yXSk9PSgwfGMpJiYoYVtsKzI4ND4+Ml09ZiksbT0yMyksYVtsdD4+Ml09a3R9cmV0dXJuIGFlPVp0LDB8bX1mdW5jdGlvbiBfMihsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgRCxS''@;'; + put 'put ''LEcsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsSz0wO2lmKEc9YWUsYWU9YWUrMTZ8MCxSPUcrNHwwLGFbKEQ9Ryk+PjJdPWZ8PTAsMHxmZVtjKzY4Pj4wXSlkbFsxMjcmYVtsKzgwPj4yXV0oMHxhW2wrND4+Ml0sZixwLWZ8MCk7ZWxzZXsoMHxhW2wrMTQ0Pj4yXSk9PSgwfGMpPyhtPWwrMjg4''@;'; + put 'put ''fDAsQT1sKzI4NHwwKTptPTQrKEE9MHxhW2wrMjk2Pj4yXSl8MCx3PWwrNDR8MCxiPWMrNTZ8MCxrPWwrNDh8MCxNPWwrODB8MCxmPWwrNHwwO2Rve2FbUj4+Ml09YVt3Pj4yXSxsPTB8TzJbMTI3JmFbYj4+Ml1dKGMsRCxwLFIsMHxhW2s+PjJdKSxhW20+PjJdPWFbRD4+Ml0sZGxbMTI3JmFb''@;'; + put 'put ''TT4+Ml1dKDB8YVtmPj4yXSxLPTB8YVt3Pj4yXSwoMHxhW1I+PjJdKS1LfDApLGFbQT4+Ml09YVtEPj4yXX13aGlsZShsPj4+MD4xKX1hZT1HfWZ1bmN0aW9uIGZBKGwsYyxmLHAsbSxBKXtwfD0wLG18PTAsQXw9MDt2YXIgayxNLEQsUix3PTAsYj0wO3N3aXRjaChEPWFlLGFlPWFlKzE2fDAs''@;'; + put 'put ''az1ELE09MHxhWyhmfD0wKT4+Ml0sKDB8YVsxNDQrKGx8PTApPj4yXSk9PSgwfChjfD0wKSk/KGFbKGI9bCsyODR8MCk+PjJdPU0sdz1sKzI4OHwwKTp3PTQrKGI9MHxhW2wrMjk2Pj4yXSl8MCxhW2I+PjJdPU0sYVtmPj4yXT0wLFI9MHxxMFsxMjcmYVtjKzEyPj4yXV0oYyxNLHAsayksYVt3''@;'; + put 'put ''Pj4yXT1wPTB8YVtrPj4yXSwwfFIpe2Nhc2UgNDI6MHxhW2wrODA+PjJdJiYoXzIobCxjLE0scCkscD0wfGFbaz4+Ml0pLGFbZj4+Ml09cCxhW20+PjJdPXAscD0yPT0oMHxhW2wrNDc2Pj4yXSk/MzU6MDticmVhaztjYXNlIDA6YVtiPj4yXT1wLHA9NDticmVhaztjYXNlLTI6QTw8MjQ+PjI0''@;'; + put 'put ''PyhhW20+PjJdPU0scD0wKTpwPTY7YnJlYWs7Y2FzZS00OmNhc2UtMTpBPDwyND4+MjQ/KGFbbT4+Ml09TSxwPTApOnA9MjticmVhaztkZWZhdWx0OmFbYj4+Ml09cCxwPTIzfXJldHVybiBhZT1ELDB8cH1mdW5jdGlvbiBpeChsKXt2YXIgYixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxrPTA7''@;'; + put 'put ''MHxhWyhrPTE4NCsoYj0wfGFbMzUyKyhsfD0wKT4+Ml0pfDApPj4yXT9mPTQ6KGM9MHxfb1s2MyZhW2wrMTI+PjJdXShhW2wrNDY0Pj4yXTw8MiksYVtrPj4yXT1jLGM/KGFbYz4+Ml09MCxmPTQpOmM9LTEpO2Rve2lmKDQ9PSgwfGYpKXtpZihwPTB8YVsobT1iKzE2NHwwKT4+Ml0sKGM9MHxh''@;'; + put 'put ''Wyh3PWIrMTc2fDApPj4yXSk+Pj4wPChmPTB8YVsoQT1iKzE3MnwwKT4+Ml0pPj4+MClBPXA7ZWxzZXtpZihwKXtpZighKGM9MHxCaVsxMjcmYVtsKzE2Pj4yXV0ocCw1NipmfDApKSl7Yz0tMTticmVha31mPWMsYz1hW0E+PjJdPDwxfWVsc2V7aWYoIShjPTB8X29bNjMmYVtsKzEyPj4yXV0o''@;'; + put 'put ''ODk2KSkpe2M9LTE7YnJlYWt9Zj1jLGM9MzJ9YVtBPj4yXT1jLGFbbT4+Ml09ZixjPTB8YVt3Pj4yXSxBPWZ9YVt3Pj4yXT1jKzEsMHwoZj0wfGFbYisxODA+PjJdKSYmKDB8KGY9MHxhWyhtPUErKDI4KihsPTB8YVsoMHxhW2s+PjJdKSsoZistMTw8Mik+PjJdKXwwKSsxNnwwKT4+Ml0pJiYo''@;'; + put 'put ''YVtBKygyOCpmfDApKzI0Pj4yXT1jKSwocD0wfGFbKGY9QSsoMjgqbHwwKSsyMHwwKT4+Ml0pfHwoYVtBKygyOCpsfDApKzEyPj4yXT1jKSxhW20+PjJdPWMsYVtmPj4yXT1wKzEpLGFbKGs9QSsoMjgqY3wwKSsxMnwwKT4+Ml09MCxhW2srND4+Ml09MCxhW2srOD4+Ml09MCxhW2srMTI+PjJd''@;'; + put 'put ''PTB9fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gb3gobCxjLGYpe2N8PTAsZnw9MDt2YXIgRCxSLEcscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO0c9YWUsYWU9YWUrMTZ8MCxEPUcsKHA9MHxhWyhSPTMwMCsobHw9MCl8MCk+PjJdKT8oYVtSPj4yXT1hW3ArOD4+Ml0sTT1wLG09''@;'; + put 'put ''NCk6KHA9MHxfb1s2MyZhW2wrMTI+PjJdXSgyNCkpPyhNPXAsbT00KTpwPTE7ZG97aWYoND09KDB8bSkmJihmZVsoQT1jKzMyfDApPj4wXT0xLGFbKHc9YysxMnwwKT4+Ml09MCxhWyhrPU0rOHwwKT4+Ml09YVsoYj1sKzI5NnwwKT4+Ml0sYVtiPj4yXT1NLGFbTSsxMj4+Ml09YyxhW00rMTY+''@;'; + put 'put ''PjJdPWFbKHA9bCszMDh8MCk+PjJdLGZlW00rMjA+PjBdPWYsYVtNPj4yXT0wLGFbTSs0Pj4yXT0wLGY9KG09MHxhW2MrND4+Ml0pKygwfGFbYys4Pj4yXSl8MCxhW0Q+PjJdPW0sMHxmZVtjKzMzPj4wXT8ocD0wfHEwWzEyNyZhWyhwPTB8YVsoYz1sKzIyNHwwKT4+Ml0pPj4yXV0ocCxtLGYs''@;'; + put 'put ''RCkscD0wfHNBKGwsMHxhW2M+PjJdLG0sZixwLDB8YVtEPj4yXSxELDApKTpwPTB8Qm0obCwwfGFbcD4+Ml0sMHxhW2wrMjI0Pj4yXSxtLGYsRCwwKSwhcCkpe2lmKCgwfGYpIT0oMHwocD0wfGFbRD4+Ml0pKSYmMz09KDB8YVtsKzQ3Nj4+Ml0pKXthW3c+PjJdPXAtbSxhW2wrMjc2Pj4yXT02''@;'; + put 'put ''MCxwPTA7YnJlYWt9ZmVbQT4+MF09MCxhW2I+PjJdPWFbaz4+Ml0sYVtrPj4yXT1hW1I+PjJdLGFbUj4+Ml09TSxwPTB9fXdoaWxlKDApO3JldHVybiBhZT1HLDB8cH1mdW5jdGlvbiBfXyhsKXt2YXIgZixwLG0sQSxjPTA7cmV0dXJuIEE9YWUsYWU9YWUrMTZ8MCxmPUErNHwwLHA9QSwoYz0w''@;'; + put 'put ''fF9vWzYzJmFbMTIrKGx8PTApPj4yXV0oKDIwKigwfGFbKG09MTc2KyhjPTB8YVtsKzM1Mj4+Ml0pfDApPj4yXSl8MCkrKDB8YVtjKzE2OD4+Ml0pfDApKT8oYVtwPj4yXT1jKygyMCooMHxhW20+PjJdKXwwKSxhW2Y+PjJdPWMrMjAsZEEobCwwLGMsZixwKSk6Yz0wLGFlPUEsMHxjfWZ1bmN0''@;'; + put 'put ''aW9uIGhBKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBrLG09MCxBPTAsdz0wLGI9MDtyZXR1cm4gMHxhWyhrPTY0KyhsfD0wKXwwKT4+Ml0/MCE9KDB8KEE9MHxiMihtPWwrNDEyfDAsYyxBPWYrKGFbKHc9Yys2NHwwKT4+Ml08PDEpfDAsZj1BKygwfEJpWzEyNyZhW2MrMjg+PjJdXShj''@;'; + put 'put ''LEEpKXwwKSkpJiYoYVtsKzQyOD4+Ml09YVtsKzQyND4+Ml0sMCE9KDB8KGI9MHxiMihtLGMsYj0wfEJpWzEyNyZhW2MrMzI+PjJdXShjLGYpLHArKDAtKGFbdz4+Ml08PDEpKXwwKSkpKT8oUm0oYiksZGxbMTI3JmFbaz4+Ml1dKDB8YVtsKzQ+PjJdLEEsYiksQ2YobSksZj0xKTpmPTA6KDB8''@;'; + put 'put ''YVtsKzgwPj4yXSYmXzIobCxjLGYscCksZj0xKSwwfGZ9ZnVuY3Rpb24gQ18obCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIEEsbT0wLHc9MDtyZXR1cm4gMHxhWyhBPTY4KyhsfD0wKXwwKT4+Ml0/KGM9MHxiMihtPWwrNDEyfDAsYyxmKygodz0wfGFbYys2ND4+Ml0pPDwyKXwwLHArKDB8''@;'; + put 'put ''QXIodywtMykpfDApKT8oUm0oYyksR3NbNjMmYVtBPj4yXV0oMHxhW2wrND4+Ml0sYyksQ2YobSksYz0xKTpjPTA6KDB8YVtsKzgwPj4yXSYmXzIobCxjLGYscCksYz0xKSwwfGN9ZnVuY3Rpb24gUm0obCl7bHw9MDt2YXIgYz0wLGY9MCxwPTA7ZTpmb3IoOzspe3N3aXRjaCgwfGZlW2w+PjBd''@;'; + put 'put ''KXtjYXNlIDA6YnJlYWsgZTtjYXNlIDEzOmY9bCxjPTEzLHA9NDticmVhayBlfWw9bCsxfDB9aWYoND09KDB8cCkpe2Zvcig7Yzw8MjQ+PjI0PT0xMz8oZmVbZj4+MF09MTAsbD0xMD09KDB8ZmVbKHA9bCsxfDApPj4wXSk/bCsyfDA6cCk6KGZlW2Y+PjBdPWMsbD1sKzF8MCksZj1mKzF8MCwo''@;'; + put 'put ''Yz0wfGZlW2w+PjBdKTw8MjQ+PjI0OylwPTQ7ZmVbZj4+MF09MH19ZnVuY3Rpb24gZEEobCxjLGYscCxtKXtwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wLGs9MDtpZihhWyhmfD0wKT4+Ml09Yj0wfGFbKDB8YVsoaz0xNjQrKDB8YVszNTIrKGx8PTApPj4yXSl8MCk+PjJdKSsoMjgqKGN8PTAp''@;'; + put 'put ''fDApPj4yXSxhW2YrND4+Ml09YVsoMHxhW2s+PjJdKSsoMjgqY3wwKSs0Pj4yXSw0PT0oMHxiKSl7Zm9yKGFbZis4Pj4yXT1hW20+PjJdLGM9MHxhWygwfGFbaz4+Ml0pKygyOCpjfDApKzg+PjJdO2I9MHxmZVtjPj4wXSxhW20+PjJdPTErKGs9MHxhW20+PjJdKSxmZVtrPj4wXT1iLDB8ZmVb''@;'; + put 'put ''Yz4+MF07KWM9YysxfDA7YVtmKzEyPj4yXT0wLGFbZisxNj4+Ml09MH1lbHNle2ZvcihhWyh3PWYrMTJ8MCk+PjJdPUE9MHxhWygwfGFbaz4+Ml0pKygyOCpjfDApKzIwPj4yXSxhWyhiPWYrMTZ8MCk+PjJdPWFbcD4+Ml0sYVtwPj4yXT0oMHxhW3A+PjJdKSsoMjAqQXwwKSxjPSgwfGFbaz4+''@;'; + put 'put ''Ml0pKygyOCpjfDApKzEyfDAsQT0wO2M9MHxhW2M+PjJdLCEoQT4+PjA+PSgwfGFbdz4+Ml0pPj4+MCk7KWRBKGwsYywoMHxhW2I+PjJdKSsoMjAqQXwwKXwwLHAsbSksYz0oMHxhW2s+PjJdKSsoMjgqY3wwKSsyNHwwLEE9QSsxfDA7YVtmKzg+PjJdPTB9fWZ1bmN0aW9uIEJtKGwsYyxmLHAs''@;'; + put 'put ''bSxBLHcpe2x8PTAsY3w9MCxmfD0wLG18PTAsQXw9MCx3fD0wO3ZhciBiZSxPZSxMZSxSZSxIZSxWZSxxZSxudCxXZSxvdCxTdCxrdCxsdCxFdCxadCxjdCxidCxhbixTbixIbix1cixIcixFcixmcixEcixKcixMcixsMCxWaSxPaSxSbyxUYSxqYSxnYSx4aSxEbCxvcyxvbCxMMCx6MixyMSxG''@;'; + put 'put ''ZixaYSxHMix2MSxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGxvPTAseGE9MCxxYT0wLGJzPTA7djE9YWUsYWU9YWUrNDh8MCxMMD12MSszMnwwLEcyPXYxKzI0fDAsVGE9djEsYVsoWmE9djErMjh8MCk+PjJdPXB8PTAsamE9MHxhW2wrMzUyPj4yXSwoMHxhW2wrMTQ0''@;'; + put 'put ''Pj4yXSk9PSgwfGYpPyh4YT1sKzI4NHwwLGxvPWwrMjg4fDApOih4YT1sbz0wfGFbbCsyOTY+PjJdLGxvPWxvKzR8MCksYVt4YT4+Ml09cCxiZT1mKzR8MCx6Mj1sKzgwfDAsT2U9bCs0NzZ8MCxMZT1mKzQ0fDAsUmU9Zis2NHwwLEhlPWphKzgwfDAsVmU9amErOTZ8MCxxZT1qYSs5MnwwLG50''@;'; + put 'put ''PWphKzEyOXwwLFdlPWwrMTEyfDAsb3Q9bCsxMTZ8MCxTdD1sKzQyOHwwLGt0PWwrNDI0fDAsbHQ9bCszMDR8MCxFdD1sKzEyMHwwLHIxPWwrNHwwLFp0PWphKzEzMHwwLGdhPWwrNjB8MCxjdD1sKzM2NHwwLGJ0PWwrMTJ8MCxhbj1sKzM2MHwwLFNuPWYrMjh8MCxGZj1sKzMwOHwwLHhpPWYr''@;'; + put 'put ''NTZ8MCxIbj1sKzE2fDAsdXI9bCs1MnwwLEhyPWwrNDEyfDAsRXI9bCszODh8MCxmcj1sKzU2fDAsRHI9bCsyMzJ8MCxKcj1sKzIzM3wwLExyPWwrNDY4fDAsbDA9bCsxMDR8MCxWaT1sKzM3MnwwLE9pPWYrNDB8MCxSbz1sKzcyfDAsRGw9Zis2OHwwLG9zPWwrNDR8MCxvbD1sKzQ4fDA7ZTpm''@;'; + put 'put ''b3IoOzspe2FbTDA+PjJdPWdlPTB8YVtaYT4+Ml0sZ2U9MHxxMFsxMjcmYVtiZT4+Ml1dKGYsZ2UsbSxMMCksYVtsbz4+Ml09cD0wfGFbTDA+PjJdLGs9cDt0OmRve3N3aXRjaCgwfGdlKXtjYXNlLTM6cWE9NjticmVhayBlO2Nhc2UtNDpxYT0xNTticmVhayBlO2Nhc2UgMDpxYT0yMDticmVh''@;'; + put 'put ''ayBlO2Nhc2UtMTpxYT0yMTticmVhayBlO2Nhc2UtMjpxYT0yMzticmVhayBlO2Nhc2UgMTI6cD0xNzticmVhayBlO2Nhc2UtNTpxYT0xMzQ7YnJlYWsgZTtjYXNlIDk6Z2U9MjU1JigwfG1pWzYzJmFbTGU+PjJdXShmLCgwfGFbWmE+PjJdKSsoZ2U9MHxhW1JlPj4yXSl8MCxrKygwLWdlKXww''@;'; + put 'put ''KSksZmVbRzI+PjBdPWdlO2Rve2lmKCEoZ2U8PDI0Pj4yNCkpe2lmKCEoYj0wfGIyKEhlLGYsKDB8YVtaYT4+Ml0pKyhiPTB8YVtSZT4+Ml0pfDAsMC1iKygwfGFbTDA+PjJdKXwwKSkpe3A9MSxxYT01NjticmVhayBlfWlmKGs9MHxfMShsLGphLGIsMCksYVtxZT4+Ml09YVtWZT4+Ml0sMCE9''@;'; + put 'put ''KDB8ZmVbbnQ+PjBdKSYmMD09KDB8ZmVbWnQ+PjBdKSl7aWYoIWspe2lmKDB8KHA9MHxhW0V0Pj4yXSkpe2RsWzEyNyZwXSgwfGFbcjE+PjJdLGIsMCk7YnJlYWt9aWYoISgwfGFbejI+PjJdKSlicmVhaztfMihsLGYsMHxhW1phPj4yXSwwfGFbTDA+PjJdKTticmVha319ZWxzZXtpZighayl7''@;'; + put 'put ''cD0xMSxxYT01NjticmVhayBlfWlmKCEoMHxmZVtrKzM0Pj4wXSkpe3A9MjQscWE9NTY7YnJlYWsgZX19aWYoMHxmZVsocD1rKzMyfDApPj4wXSl7cD0xMixxYT01NjticmVhayBlfWlmKDB8YVtrKzI4Pj4yXSl7cD0xNSxxYT01NjticmVhayBlfWlmKCEoMHxhW2srND4+Ml0pKXtpZighKDB8''@;'; + put 'put ''YVtXZT4+Ml0pKXtpZighKDB8YVt6Mj4+Ml0pKWJyZWFrO18yKGwsZiwwfGFbWmE+PjJdLDB8YVtMMD4+Ml0pO2JyZWFrfWlmKGZlW3A+PjBdPTEsYj0wfHBBKGwpLGZlW3A+PjBdPTAsIWIpe3A9MSxxYT01NjticmVhayBlfWlmKCEoMHxPMlsxMjcmYVtXZT4+Ml1dKDB8YVtvdD4+Ml0sYiww''@;'; + put 'put ''fGFbaysyMD4+Ml0sMHxhW2srMTY+PjJdLDB8YVtrKzI0Pj4yXSkpKXtwPTIxLHFhPTU2O2JyZWFrIGV9YVtrdD4+Ml09YVtTdD4+Ml07YnJlYWt9aWYoMHxmZVtsdD4+MF0pe2lmKHA9MHxveChsLGssMCkpe3FhPTU4O2JyZWFrIGV9YnJlYWt9KHA9MHxhW0V0Pj4yXSk/ZGxbMTI3JnBdKDB8''@;'; + put 'put ''YVtyMT4+Ml0sMHxhW2s+PjJdLDApOjB8YVt6Mj4+Ml0mJl8yKGwsZiwwfGFbWmE+PjJdLDB8YVtMMD4+Ml0pO2JyZWFrIHR9aWYoMHwocD0wfGFbZ2E+PjJdKSl7ZGxbMTI3JnBdKDB8YVtyMT4+Ml0sRzIsMSk7YnJlYWt9MHxhW3oyPj4yXSYmXzIobCxmLDB8YVtaYT4+Ml0sMHxhW0wwPj4y''@;'; + put 'put ''XSl9d2hpbGUoMCk7YnJlYWs7Y2FzZSAxOmNhc2UgMjppZihwPTB8YVtjdD4+Ml0pYVtjdD4+Ml09YVtwPj4yXTtlbHNle2lmKCEocD0wfF9vWzYzJmFbYnQ+PjJdXSg0OCkpKXtwPTEscWE9NzU7YnJlYWsgZX1pZihiPTB8X29bNjMmYVtidD4+Ml1dKDMyKSxhW3ArMzY+PjJdPWIsIWIpe3Fh''@;'; + put 'put ''PTYzO2JyZWFrIGV9YVtwKzQwPj4yXT1iKzMyfWZvcihhWyhSPXArNDR8MCk+PjJdPTAsYVtwPj4yXT1hW2FuPj4yXSxhW2FuPj4yXT1wLGdlPXArMTJ8MCxhW3ArMTY+PjJdPTAsYVtwKzIwPj4yXT0wLGFbKEs9cCs0fDApPj4yXT1wZT0oMHxhW1phPj4yXSkrKDB8YVtSZT4+Ml0pfDAsYVso''@;'; + put 'put ''Rz1wKzh8MCk+PjJdPTB8QmlbMTI3JmFbU24+PjJdXShmLHBlKSxhW0ZmPj4yXT0xKygwfGFbRmY+PjJdKSxHPShLPTB8YVtLPj4yXSkrKDB8YVtHPj4yXSl8MCxhW1RhPj4yXT1LLGFbRzI+PjJdPWFbKEs9cCszNnwwKT4+Ml0sYj0wfGFbKHBlPXArNDB8MCk+PjJdO2JzPTB8TzJbMTI3JmFb''@;'; + put 'put ''eGk+PjJdXShmLFRhLEcsRzIsYistMXwwKSxEPShiPTB8YVtHMj4+Ml0pLShrPU09MHxhW0s+PjJdKXwwLCEoMT09KDB8YnMpfHwoMHxhW1RhPj4yXSk+Pj4wPj1HPj4+MCk7KXtpZighKGI9MHxCaVsxMjcmYVtIbj4+Ml1dKE0saz0oMHxhW3BlPj4yXSktazw8MSkpKXtxYT02OTticmVhayBl''@;'; + put 'put ''fWFbSz4+Ml09YixhW3BlPj4yXT1icz1iK2t8MCxhW0cyPj4yXT1iK0QsYj1ic31pZihhW3ArMjQ+PjJdPUQsYVtnZT4+Ml09ayxmZVtiPj4wXT0wLDB8KHA9MHxTXyhsLGYsMHxhW1phPj4yXSxnZSxSKSkpe3FhPTc1O2JyZWFrIGV9KHA9MHxhW3VyPj4yXSk/ZGxbMTI3JnBdKDB8YVtyMT4+''@;'; + put 'put ''Ml0sMHxhW2dlPj4yXSwwfGFbRXI+PjJdKTowfGFbejI+PjJdJiZfMihsLGYsMHxhW1phPj4yXSwwfGFbTDA+PjJdKSxDZihIcik7YnJlYWs7Y2FzZSAzOmNhc2UgNDppZihicz0oMHxhW1phPj4yXSkrKDB8YVtSZT4+Ml0pfDAsYVtHMj4+Ml09MCxicz0wfGIyKEhyLGYsYnMsYnMrKDB8Qmlb''@;'; + put 'put ''MTI3JmFbU24+PjJdXShmLGJzKSl8MCksYVtUYT4+Ml09YnMsIWJzKXtwPTEscWE9ODk7YnJlYWsgZX1pZihhW1N0Pj4yXT1hW2t0Pj4yXSwwfChwPTB8U18obCxmLDB8YVtaYT4+Ml0sVGEsRzIpKSl7cWE9Nzk7YnJlYWsgZX1pZihhW1N0Pj4yXT1hW2t0Pj4yXSwocD0wfGFbdXI+PjJdKT8o''@;'; + put 'put ''ZGxbMTI3JnBdKDB8YVtyMT4+Ml0sMHxhW1RhPj4yXSwwfGFbRXI+PjJdKSxiPTApOmI9MSwocD0wfGFbZnI+PjJdKT8oMHxhW3VyPj4yXSYmKGFbeGE+PjJdPWFbbG8+PjJdLHA9MHxhW2ZyPj4yXSksR3NbNjMmcF0oMHxhW3IxPj4yXSwwfGFbVGE+PjJdKSk6MHxiJiYwfGFbejI+PjJdJiZf''@;'; + put 'put ''MihsLGYsMHxhW1phPj4yXSwwfGFbTDA+PjJdKSxDZihIciksTkIobCwwfGFbRzI+PjJdKSwwPT0oMHxhW0ZmPj4yXSkmJjIhPSgtMiZhW09lPj4yXXwwKSl7cWE9OTI7YnJlYWsgZX1icmVhaztjYXNlIDU6aWYoKDB8YVtGZj4+Ml0pPT0oMHxjKSl7cD0xMzticmVhayBlfWlmKGFbYW4+PjJd''@;'; + put 'put ''PWFbKEQ9MHxhW2FuPj4yXSk+PjJdLGFbRD4+Ml09YVtjdD4+Ml0sYVtjdD4+Ml09RCwoMHwoYj0wfEJpWzEyNyZhW1NuPj4yXV0oZixwPSgwfGFbWmE+PjJdKSsoYVtSZT4+Ml08PDEpfDApKSkhPSgwfGFbRCs4Pj4yXSkpe3FhPTk2O2JyZWFrIGV9aWYoMHx0MygwfGFbRCs0Pj4yXSxwLGIp''@;'; + put 'put ''KXtxYT05NjticmVhayBlfWlmKGFbRmY+PjJdPSgwfGFbRmY+PjJdKS0xLHA9MHxhW2ZyPj4yXSl7aWYoTT1EKzEyfDAsMCE9KDB8KGI9MHxhW0QrMTY+PjJdKSkmMCE9KDB8ZmVbRHI+PjBdKSl7Zm9yKHA9KDB8YVtNPj4yXSkrKDB8YVtEKzI4Pj4yXSl8MDsoaz0wfGZlW2I+PjBdKTw8MjQ+''@;'; + put 'put ''PjI0OylmZVtwPj4wXT1rLHA9cCsxfDAsYj1iKzF8MDtiPTB8YVtEKzIwPj4yXTtuOmRve2lmKDAhPSgwfGIpJjAhPSgwfGZlW0pyPj4wXSkpZm9yKGZlW3A+PjBdPTB8ZmVbTHI+PjBdOzspe2lmKHA9cCsxfDAsISgoaz0wfGZlW2I+PjBdKTw8MjQ+PjI0KSlicmVhayBuO2ZlW3A+PjBdPWss''@;'; + put 'put ''Yj1iKzF8MH19d2hpbGUoMCk7ZmVbcD4+MF09MCxwPTB8YVtmcj4+Ml19R3NbNjMmcF0oMHxhW3IxPj4yXSwwfGFbTT4+Ml0pfWVsc2UgMHxhW3oyPj4yXSYmXzIobCxmLDB8YVtaYT4+Ml0sMHxhW0wwPj4yXSk7Zm9yKGs9RCs0NHwwO009MHxhW2s+PjJdOykocD0wfGFbbDA+PjJdKT8oR3Nb''@;'; + put 'put ''NjMmcF0oMHxhW3IxPj4yXSwwfGFbYVtNPj4yXT4+Ml0pLHA9TSxiPTB8YVtrPj4yXSk6KHA9TSxiPU0pLGFbaz4+Ml09YVtiKzQ+PjJdLGFbTSs0Pj4yXT1hW1ZpPj4yXSxhW1ZpPj4yXT1NLGFbNCsoMHxhW3A+PjJdKT4+Ml09YVtNKzg+PjJdO2lmKCEoMHxhW0ZmPj4yXSkpe3FhPTExNzti''@;'; + put 'put ''cmVhayBlfWJyZWFrO2Nhc2UgMTA6aWYoKDB8KHA9MHxCaVsxMjcmYVtPaT4+Ml1dKGYsMHxhW1phPj4yXSkpKTwwKXtwPTE0O2JyZWFrIGV9aWYoMHwoYj0wfGFbZ2E+PjJdKSl7Z2U9MHxhW3IxPj4yXSxicz0wfFc0KHAsRzIpLGRsWzEyNyZiXShnZSxHMixicyk7YnJlYWsgdH0wfGFbejI+''@;'; + put 'put ''PjJdJiZfMihsLGYsMHxhW1phPj4yXSwwfGFbTDA+PjJdKTticmVhaztjYXNlIDc6aWYoMHwocD0wfGFbZ2E+PjJdKSl7ZmVbRzI+PjBdPTEwLGRsWzEyNyZwXSgwfGFbcjE+PjJdLEcyLDEpO2JyZWFrIHR9MHxhW3oyPj4yXSYmXzIobCxmLDB8YVtaYT4+Ml0sayk7YnJlYWs7Y2FzZSA4Omlm''@;'; + put 'put ''KChwPTB8YVtSbz4+Ml0pP0NvWzEyNyZwXSgwfGFbcjE+PjJdKTowfGFbejI+PjJdJiZfMihsLGYsMHxhW1phPj4yXSxrKSwwfChwPTB8UG0obCxmLEwwLG0sQSx3KSkpYnJlYWsgZTtpZighKDB8YVtMMD4+Ml0pKXtxYT0xMzM7YnJlYWsgZX1icmVhaztjYXNlIDY6aWYoIShiPTB8YVtnYT4+''@;'; + put 'put ''Ml0pKXtpZighKDB8YVt6Mj4+Ml0pKWJyZWFrIHQ7XzIobCxmLDB8YVtaYT4+Ml0sayk7YnJlYWsgdH1pZigwfGZlW0RsPj4wXSl7ZGxbMTI3JmJdKDB8YVtyMT4+Ml0sYnM9MHxhW1phPj4yXSxwLWJzfDApO2JyZWFrIHR9Zm9yKHA9azthW0cyPj4yXT1hW29zPj4yXSxicz0wfE8yWzEyNyZh''@;'; + put 'put ''W3hpPj4yXV0oZixaYSxwLEcyLDB8YVtvbD4+Ml0pLGFbbG8+PjJdPWFbWmE+PjJdLGRsWzEyNyZiXSgwfGFbcjE+PjJdLGdlPTB8YVtvcz4+Ml0sKDB8YVtHMj4+Ml0pLWdlfDApLCEoYnM+Pj4wPDIpOylhW3hhPj4yXT1hW1phPj4yXSxwPTB8YVtMMD4+Ml07YnJlYWs7Y2FzZSAxMTppZigh''@;'; + put 'put ''KDB8aEEobCxmLDB8YVtaYT4+Ml0saykpKXtwPTE7YnJlYWsgZX1icmVhaztjYXNlIDEzOmlmKCEoMHxDXyhsLGYsMHxhW1phPj4yXSxrKSkpe3A9MTticmVhayBlfWJyZWFrO2RlZmF1bHQ6MHxhW3oyPj4yXSYmXzIobCxmLDB8YVtaYT4+Ml0sayl9fXdoaWxlKDApO3N3aXRjaChhW1phPj4y''@;'; + put 'put ''XT1icz0wfGFbTDA+PjJdLGFbeGE+PjJdPWJzLDB8YVtPZT4+Ml0pe2Nhc2UgMjpwPTM1O2JyZWFrIGU7Y2FzZSAzOnFhPTE2MDticmVhayBlfX1zd2l0Y2goMHxxYSl7Y2FzZSA2OmlmKHc8PDI0Pj4yNCl7YVtBPj4yXT1hW1phPj4yXSxwPTA7YnJlYWt9YVtsbz4+Ml09bSwocD0wfGFbZ2E+''@;'; + put 'put ''PjJdKT8oZmVbRzI+PjBdPTEwLGRsWzEyNyZwXSgwfGFbcjE+PjJdLEcyLDEpKTowfGFbejI+PjJdJiZfMihsLGYsMHxhW1phPj4yXSxtKSxjPygwfGFbRmY+PjJdKT09KDB8Yyk/KGFbQT4+Ml09bSxwPTApOnA9MTM6cD0zO2JyZWFrO2Nhc2UgMTU6aWYodzw8MjQ+PjI0KXthW0E+PjJdPWFb''@;'; + put 'put ''WmE+PjJdLHA9MDticmVha30oMHxjKT4wPygwfGFbRmY+PjJdKT09KDB8Yyk/KGFbQT4+Ml09YVtaYT4+Ml0scD0wKTpwPTEzOnA9MzticmVhaztjYXNlIDIwOmFbeGE+PjJdPXAscD00O2JyZWFrO2Nhc2UgMjE6dzw8MjQ+PjI0PyhhW0E+PjJdPWFbWmE+PjJdLHA9MCk6cD01O2JyZWFrO2Nh''@;'; + put 'put ''c2UgMjM6dzw8MjQ+PjI0PyhhW0E+PjJdPWFbWmE+PjJdLHA9MCk6cD02O2JyZWFrO2Nhc2UgNTY6Y2FzZSA1ODpicmVhaztjYXNlIDYzOkNvWzEyNyZhW2wrMjA+PjJdXShwKSxwPTEscWE9NzU7YnJlYWs7Y2FzZSA2OTpwPTEscWE9NzU7YnJlYWs7Y2FzZSA3OTpOQihsLDB8YVtHMj4+Ml0p''@;'; + put 'put ''LHFhPTg5O2JyZWFrO2Nhc2UgOTI6Y2FzZSAxMTc6cD0wfGF4KGwsMHxhW0wwPj4yXSxtLEEpO2JyZWFrO2Nhc2UgOTY6YVt4YT4+Ml09cCxwPTc7YnJlYWs7Y2FzZSAxMzM6YVtsKzI3Nj4+Ml09NjEscD0wO2JyZWFrO2Nhc2UgMTM0OmlmKHc8PDI0Pj4yNCl7YVtBPj4yXT1hW1phPj4yXSxw''@;'; + put 'put ''PTA7YnJlYWt9cD0wfGFbZ2E+PjJdO2Rve2lmKHApe2lmKDB8ZmVbRGw+PjBdKXtkbFsxMjcmcF0oMHxhW3IxPj4yXSxicz0wfGFbWmE+PjJdLG0tYnN8MCk7YnJlYWt9YVtHMj4+Ml09YVtvcz4+Ml0sTzJbMTI3JmFbeGk+PjJdXShmLFphLG0sRzIsMHxhW29sPj4yXSksZGxbMTI3JmFbZ2E+''@;'; + put 'put ''PjJdXSgwfGFbcjE+PjJdLGJzPTB8YVtvcz4+Ml0sKDB8YVtHMj4+Ml0pLWJzfDApO2JyZWFrfTB8YVt6Mj4+Ml0mJl8yKGwsZiwwfGFbWmE+PjJdLG0pfXdoaWxlKDApO2lmKCFjKXthW3hhPj4yXT1tLHA9MzticmVha31pZigoMHxhW0ZmPj4yXSk9PSgwfGMpKXthW0E+PjJdPW0scD0wO2Jy''@;'; + put 'put ''ZWFrfWFbeGE+PjJdPW0scD0xMzticmVhaztjYXNlIDE2MDphW0E+PjJdPWFbTDA+PjJdLHA9MH1yZXR1cm4gYWU9djEsMHxwfWZ1bmN0aW9uIHBBKGwpe3ZhciBNLEQsUixHLEssYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtLPWFlLGFlPWFlKzE2fDAsRD1LLEE9MTU2KyhNPTB8''@;'; + put 'put ''YVszNTIrKGx8PTApPj4yXSl8MCxSPWwrNDEyfDAsRz1sKzQyNHwwO2U6ZG97aWYoMHxhW0E+PjJdKXtpZigoMHwoYz0wfGFbRz4+Ml0pKT09KDB8YVsodz1sKzQyMHwwKT4+Ml0pKXtpZighKCgwfHZsKFIpKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrfWM9MHxhW0c+PjJdfWZvcihhW0c+PjJdPWMr''@;'; + put 'put ''MSxmZVtjPj4wXT02MSxmPSgwfGFbMjArKDB8YVtBPj4yXSk+PjJdKSsoKDAhPSgwfGZlWyhtPWwrNDY4fDApPj4wXSkpPDwzMT4+MzEpfDAscD0wOzspe2lmKCgwfHApPj0oMHxmKSl7Yz0xLGs9bSxiPTEyO2JyZWFrIGV9aWYoKDB8KGM9MHxhW0c+PjJdKSk9PSgwfGFbdz4+Ml0pKXtpZigh''@;'; + put 'put ''KCgwfHZsKFIpKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrIGV9Yz0wfGFbRz4+Ml19az0wfGZlWygwfGFbMTYrKDB8YVtBPj4yXSk+PjJdKStwPj4wXSxhW0c+PjJdPWMrMSxmZVtjPj4wXT1rLHA9cCsxfDB9fWVsc2UgYz0wLHc9bCs0MjB8MCxrPWwrNDY4fDAsYj0xMn13aGlsZSgwKTtlOmRve2lm''@;'; + put 'put ''KDEyPT0oMHxiKSl7ZWMoRCxNKzYwfDApO3Q6Zm9yKDs7KXtkb3tpZighKGY9MHxEbShEKSkpYnJlYWsgdDtBPWYrNHwwfXdoaWxlKCEoMHxhW0E+PjJdKSk7aWYoYzw8MjQ+PjI0KXtpZigoMHwoYz0wfGFbRz4+Ml0pKT09KDB8YVt3Pj4yXSkpe2lmKCEoKDB8dmwoUikpPDwyND4+MjQpKXtj''@;'; + put 'put ''PTA7YnJlYWsgZX1jPTB8YVtHPj4yXX1hW0c+PjJdPWMrMSxmZVtjPj4wXT0xMn1mb3IobT0wfGFbZj4+Ml07cD0oMHwoYz0wfGFbRz4+Ml0pKT09KDB8YVt3Pj4yXSksKGY9MHxmZVttPj4wXSk8PDI0Pj4yNDspe2lmKHApe2lmKCEoKDB8dmwoUikpPDwyND4+MjQpKXtjPTA7YnJlYWsgZX1j''@;'; + put 'put ''PTB8YVtHPj4yXSxmPTB8ZmVbbT4+MF19YVtHPj4yXT1jKzEsZmVbYz4+MF09ZixtPW0rMXwwfWlmKHApe2lmKCEoKDB8dmwoUikpPDwyND4+MjQpKXtjPTA7YnJlYWsgZX1jPTB8YVtHPj4yXX1mb3IoYVtHPj4yXT1jKzEsZmVbYz4+MF09NjEscD0oMHxhWzIwKygwfGFbQT4+Ml0pPj4yXSkr''@;'; + put 'put ''KCgwIT0oMHxmZVtrPj4wXSkpPDwzMT4+MzEpfDAsZj0wOzspe2lmKCgwfGYpPj0oMHxwKSl7Yz0xO2NvbnRpbnVlIHR9aWYoKDB8KGM9MHxhW0c+PjJdKSk9PSgwfGFbdz4+Ml0pKXtpZighKCgwfHZsKFIpKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrIGV9Yz0wfGFbRz4+Ml19Yj0wfGZlWygwfGFb''@;'; + put 'put ''MTYrKDB8YVtBPj4yXSk+PjJdKStmPj4wXSxhW0c+PjJdPWMrMSxmZVtjPj4wXT1iLGY9ZisxfDB9fWVjKEQsTSk7dDpmb3IoOzspe2Rve2lmKCEoZj0wfERtKEQpKSlicmVhayB0fXdoaWxlKCEoMHxmZVtmKzMyPj4wXSkpO2lmKGM8PDI0Pj4yNCl7aWYoKDB8KGM9MHxhW0c+PjJdKSk9PSgw''@;'; + put 'put ''fGFbdz4+Ml0pKXtpZighKCgwfHZsKFIpKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrIGV9Yz0wfGFbRz4+Ml19YVtHPj4yXT1jKzEsZmVbYz4+MF09MTJ9Zm9yKHA9MHxhW2Y+PjJdOzspe2lmKCEoKGY9MHxmZVtwPj4wXSk8PDI0Pj4yNCkpe2M9MTtjb250aW51ZSB0fWlmKCgwfChjPTB8YVtHPj4y''@;'; + put 'put ''XSkpPT0oMHxhW3c+PjJdKSl7aWYoISgoMHx2bChSKSk8PDI0Pj4yNCkpe2M9MDticmVhayBlfWM9MHxhW0c+PjJdLGY9MHxmZVtwPj4wXX1hW0c+PjJdPWMrMSxmZVtjPj4wXT1mLHA9cCsxfDB9fWlmKCgwfChjPTB8YVtHPj4yXSkpPT0oMHxhW3c+PjJdKSl7aWYoISgoMHx2bChSKSk8PDI0''@;'; + put 'put ''Pj4yNCkpe2M9MDticmVha31jPTB8YVtHPj4yXX1hW0c+PjJdPWMrMSxmZVtjPj4wXT0wLGM9MHxhW2wrNDI4Pj4yXX19d2hpbGUoMCk7cmV0dXJuIGFlPUssMHxjfWZ1bmN0aW9uIFNfKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLG18PTA7dmFyIGJ0LGFuLFNuLHVyLEE9MCx3PTAsYj0wLGs9MCxN''@;'; + put 'put ''PTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxsdD0wLEV0PTAsWnQ9MCxjdD0wLEhuPTAsSHI9MDt1cj1hZSxhZT1hZSs4MHwwLGJ0PXVyKzE2fDAsYW49dXIsKEE9MHxfMShsfD0w''@;'; + put 'put ''LGI9MjArKFNuPTB8YVtsKzM1Mj4+Ml0pfDAsMHxhWyhwfD0wKT4+Ml0sMCkpPyh3PUEscWU9Nik6MCE9KDB8KEE9MHxFXyhTbis4MHwwLDB8YVtwPj4yXSkpKSYmMCE9KDB8KHc9MHxfMShsLGIsQSwyNCkpKT8wIT0oMHxmZVtsKzIzMj4+MF0pJiYwPT0oMHx4XyhsLHcpKT9BPTE6cWU9NjpB''@;'; + put 'put ''PTE7ZTpkb3tpZig2PT0oMHxxZSkpe2lmKFJlPTB8YVt3KzEyPj4yXSwoMHwoQT0oYmU9MHxxMFsxMjcmYVsoYj1jKzM2fDApPj4yXV0oYyxmLDB8YVsoaz1sKzM3NnwwKT4+Ml0sMHxhWyhnZT1sKzM4OHwwKT4+Ml0pKStSZXwwKSk+KDB8KE09MHxhW2s+PjJdKSkpe2lmKGFbaz4+Ml09QT1B''@;'; + put 'put ''KzE2fDAsIShBPTB8QmlbMTI3JmFbbCsxNj4+Ml1dKDB8YVtnZT4+Ml0sQTw8NCkpKXthW2s+PjJdPU0sQT0xO2JyZWFrfWFbZ2U+PjJdPUEsKDB8YmUpPigwfE0pJiZxMFsxMjcmYVtiPj4yXV0oYyxmLGJlLEEpfWZvcihjdD0wfGFbZ2U+PjJdLEs9YysyOHwwLEV0PWwrNDEyfDAsWnQ9bCs0''@;'; + put 'put ''Mjh8MCxMZT13KzIwfDAsRz1sKzQyNHwwLHBlPTAsUj0wLGI9MDshKCgwfFIpPj0oMHxiZSkpOyl7aWYoIShEPTB8eV8obCxjLEQ9MHxhWygwfGFbZ2U+PjJdKSsoUjw8NCk+PjJdLEQrKDB8QmlbMTI3JmFbSz4+Ml1dKGMsRCkpfDApKSl7QT0xO2JyZWFrIGV9aWYoMHxmZVsoQT0oMHxhW0Q+''@;'; + put 'put ''PjJdKS0xfDApPj4wXSl7cWU9MTU7YnJlYWt9aWYoZmVbQT4+MF09MSxmPXBlKzF8MCxhW2N0KyhwZTw8Mik+PjJdPWFbRD4+Ml0sMHxmZVsoTT0wfGFbZ2U+PjJdKSsoUjw8NCkrMTI+PjBdKXtpZihsdD0wfGIyKEV0LGMsMHxhW00rKFI8PDQpKzQ+PjJdLDB8YVtNKyhSPDw0KSs4Pj4yXSks''@;'; + put 'put ''YVtjdCsoZjw8Mik+PjJdPWx0LCFsdCl7QT0xO2JyZWFrIGV9fWVsc2V7dDpkb3tpZigwfGZlW0QrOD4+MF0pe2ZvcihBPTA7Oyl7aWYoKDB8QSk+PSgwfFJlKSl7QT0xO2JyZWFrIHR9aWYoKDB8RCk9PSgwfGFbKGs9MHxhW0xlPj4yXSkrKDEyKkF8MCk+PjJdKSlicmVhaztBPUErMXwwfUE9''@;'; + put 'put ''MHxmZVtrKygxMipBfDApKzQ+PjBdfWVsc2UgQT0xfXdoaWxlKDApO2lmKDB8KEE9MHx3XyhsLGMsQSwwfGFbTSsoUjw8NCkrND4+Ml0sMHxhW00rKFI8PDQpKzg+PjJdLEV0KSkpYnJlYWsgZTthW2N0KyhmPDwyKT4+Ml09YVtadD4+Ml19YVtadD4+Ml09YVtHPj4yXSxBPTB8YVtEKzQ+PjJd''@;'; + put 'put ''O2Rve2lmKEEpe2lmKDB8ZmVbRCs5Pj4wXSl7aWYoQT0wfGdBKGwsQSxELDB8YVtjdCsoZjw8Mik+PjJdLG0pKWJyZWFrIGU7QT1wZTticmVha31mZVsoMHxhW0Q+PjJdKS0xPj4wXT0yLGI9YisxfDAsQT1wZSsyfDA7YnJlYWt9QT1wZSsyfDB9d2hpbGUoMCk7cGU9QSxSPVIrMXwwfWlmKDE1''@;'; + put 'put ''PT0oMHxxZSkpe2lmKCgwfGFbbCsxNDQ+PjJdKSE9KDB8Yykpe0E9ODticmVha31hW2wrMjg0Pj4yXT1hWygwfGFbZ2U+PjJdKSsoUjw8NCk+PjJdLEE9ODticmVha31hW2wrMzgwPj4yXT1wZSxBPTB8YVt3Kzg+PjJdO3Q6ZG97aWYoMCE9KDB8QSkmJihPZT0wfGFbQT4+Ml0sMCE9KDB8ZmVb''@;'; + put 'put ''T2UrLTE+PjBdKSkpZm9yKEE9MDs7KXtpZigoMHxBKT49KDB8cGUpKXtmPTAsUj1iLGx0PXBlO2JyZWFrIHR9aWYoKDB8YVtjdCsoQTw8Mik+PjJdKT09KDB8T2UpKXtxZT0zNzticmVhayB0fUE9QSsyfDB9ZWxzZSBBPS0xLHFlPTM3fXdoaWxlKDApO2ZvcigzNz09KDB8cWUpJiYoYVtsKzM4''@;'; + put 'put ''ND4+Ml09QSxmPTAsUj1iLGx0PXBlKTshKCgwfGYpPj0oMHxSZSkpOyl7az0oMHxhWyhiPTB8YVsoTT0oQT0wfGFbTGU+PjJdKSsoMTIqZnwwKXwwKT4+Ml0pPj4yXSktMXwwO3Q6ZG97aWYoMD09KDB8ZmVbaz4+MF0pJiYoSGU9QSsoMTIqZnwwKSs4fDAsVmU9MHxhW0hlPj4yXSwwIT0oMHxW''@;'; + put 'put ''ZSkpKXtBPTB8YVtiKzQ+PjJdO2Rve2lmKEEpe2lmKDB8ZmVbYis5Pj4wXSl7aWYoQT0wfGdBKGwsQSxiLFZlLG0pKWJyZWFrIGU7QT1SLGI9bHQ7YnJlYWsgdH1mZVtrPj4wXT0yLEE9UisxfDA7YnJlYWt9ZmVbaz4+MF09MSxBPVJ9d2hpbGUoMCk7YVtjdCsobHQ8PDIpPj4yXT1hW2FbTT4+''@;'; + put 'put ''Ml0+PjJdLGFbY3QrKGx0KzE8PDIpPj4yXT1hW0hlPj4yXSxiPWx0KzJ8MH1lbHNlIEE9UixiPWx0fXdoaWxlKDApO2Y9ZisxfDAsUj1BLGx0PWJ9YVtjdCsobHQ8PDIpPj4yXT0wO3Q6ZG97aWYoUil7TT0wfGFbKEQ9bCszOTZ8MCk+PjJdLEE9MjU1JihmPTB8ZmVbKGt0PWwrNDAwfDApPj4w''@;'; + put 'put ''XSk7ZG97aWYoUjw8MT4+QSl7QT1mO2Rve1N0PUEsQT1BKzE8PDI0Pj4yNH13aGlsZSgwIT0oUj4+KDI1NSZTdCl8MCkpO2lmKGZlW2t0Pj4wXT1BPSgyNTUmQSk+Mz9BOjMsYj0wfEJpWzEyNyZhW2wrMTY+PjJdXSgwfGFbKGs9bCszOTJ8MCk+PjJdLDEyPDwoQSY9MjU1KSkpe2Fbaz4+Ml09''@;'; + put 'put ''YixiPTE8PEEscWU9NTU7YnJlYWt9ZmVba3Q+PjBdPWYsQT0xO2JyZWFrIGV9QT0xPDxBLGs9bCszOTJ8MCxNPyhiPUEsQT1NKTooYj1BLHFlPTU1KX13aGlsZSgwKTtuOmRve2lmKDU1PT0oMHxxZSkpZm9yKEE9Yjs7KXtpZighQSl7QT0tMTticmVhayBufWFbKDB8YVtrPj4yXSkrKDEyKihT''@;'; + put 'put ''dD1BKy0xfDApfDApPj4yXT0tMSxBPVN0fX13aGlsZSgwKTthW0Q+PjJdPVN0PUErLTF8MCxMZT1Tbis0MHwwLFJlPWwrNDI0fDAsSGU9bCs0MjB8MCxxZT0wLWJ8MCxudD0oVmU9YistMXwwKT4+PjIsV2U9bCsyMzN8MCxvdD1sKzQ2OHwwLEE9MCxPZT1SO246Zm9yKDs7KXtmb3IoOzspe2lm''@;'; + put 'put ''KCgwfEEpPj0oMHxsdCkpYnJlYWsgdDtpZigyPT0oMHxmZVsoZj0oTT0wfGFbKGM9Y3QrKEE8PDIpfDApPj4yXSktMXwwKT4+MF0pKWJyZWFrO2ZlW2Y+PjBdPTAsQT1BKzJ8MH1pZihtQShsLGFuKSxSaChidCxhbiksZmVbZj4+MF09MCwhKGY9MHxfMShsLExlLE0sMCkpKXtBPTE7YnJlYWt9''@;'; + put 'put ''aWYoIShmPTB8YVtmKzQ+PjJdKSl7QT0xO2JyZWFrfWlmKCEoYmU9MHxhW2YrND4+Ml0pKXtBPTI3O2JyZWFrfWZvcihHPWJlKzIwfDAsSz1iZSsxNnwwLFI9MDtEPTB8YVtLPj4yXSwhKCgwfFIpPj0oMHwoZj0wfGFbRz4+Ml0pKSk7KXtpZihEPTB8ZmVbRCtSPj4wXSwoMHwoZj0wfGFbUmU+''@;'; + put 'put ''PjJdKSk9PSgwfGFbSGU+PjJdKSl7aWYoISgoMHx2bChFdCkpPDwyND4+MjQpKXtBPTE7YnJlYWsgbn1mPTB8YVtSZT4+Ml19YVtSZT4+Ml09ZisxLGZlW2Y+PjBdPUQsUj1SKzF8MH1wNShidCxELGYpO2Rve2dlPU0sTT1NKzF8MH13aGlsZSg1OCE9KDB8ZmVbZ2U+PjBdKSk7Zm9yKHA1KGJ0''@;'; + put 'put ''LE0sMHxHNChNKSk7Oyl7aWYoKDB8KGY9MHxhW1JlPj4yXSkpPT0oMHxhW0hlPj4yXSkpe2lmKCEoKDB8dmwoRXQpKTw8MjQ+PjI0KSl7QT0xO2JyZWFrIG59Zj0wfGFbUmU+PjJdfWlmKGdlPTB8ZmVbTT4+MF0sYVtSZT4+Ml09ZisxLGZlW2Y+PjBdPWdlLCEoMHxmZVtNPj4wXSkpYnJlYWs7''@;'; + put 'put ''TT1NKzF8MH1mb3IoZ2U9MHxNNihidCksRz0wfGFbaz4+Ml0sSz1nZSZxZSxNPTAscGU9VmUmZ2U7KDB8YVtHKygxMipwZXwwKT4+Ml0pPT0oMHxTdCk7KXtpZigoMHxhW0crKDEyKnBlfDApKzQ+PjJdKT09KDB8Z2UpKXtmb3IoZj0wfGFbRysoMTIqcGV8MCkrOD4+Ml0sRD0wfGFbWnQ+PjJd''@;'; + put 'put ''OyEoKFI9KEhyPTB8ZmVbRD4+MF0pPDwyND4+MjQ9PTApfEhyPDwyND4+MjQhPSgwfGZlW2Y+PjBdKSk7KWY9ZisxfDAsRD1EKzF8MDtpZihSKXtBPTg7YnJlYWsgbn19TTw8MjQ+PjI0fHwoTT0yNTUmKEs+Pj4oKDB8SnRba3Q+PjBdKS0xfDApJm50fDEpKSxwZT1wZSsoKDB8cGUpPCgwfChI''@;'; + put 'put ''cj0yNTUmTSkpP2I6MCktSHJ8MH1pZigwfGZlW1dlPj4wXSlmb3IoZmVbKDB8YVtSZT4+Ml0pLTE+PjBdPTB8ZmVbb3Q+PjBdLGY9MHxhW2FbYmU+PjJdPj4yXTs7KXtpZigoMHwoTT0wfGFbUmU+PjJdKSk9PSgwfGFbSGU+PjJdKSl7aWYoISgoMHx2bChFdCkpPDwyND4+MjQpKXtBPTE7YnJl''@;'; + put 'put ''YWsgbn1NPTB8YVtSZT4+Ml19aWYoSHI9MHxmZVtmPj4wXSxhW1JlPj4yXT1NKzEsZmVbTT4+MF09SHIsISgwfGZlW2Y+PjBdKSlicmVhaztmPWYrMXwwfWlmKEhyPTB8YVtadD4+Ml0sYVtadD4+Ml09YVtSZT4+Ml0sYVtjPj4yXT1IcixhWygwfGFbaz4+Ml0pKygxMipwZXwwKT4+Ml09U3Qs''@;'; + put 'put ''YVsoMHxhW2s+PjJdKSsoMTIqcGV8MCkrND4+Ml09Z2UsYVsoMHxhW2s+PjJdKSsoMTIqcGV8MCkrOD4+Ml09SHIsQT1BKzJ8MCwhKE9lPU9lKy0xfDApKWJyZWFrIHR9YnJlYWsgZX1BPTB9d2hpbGUoMCk7Zm9yKDs7KXtpZigoMHxBKT49KDB8bHQpKXtBPW07YnJlYWt9ZmVbKDB8YVtjdCso''@;'; + put 'put ''QTw8Mik+PjJdKS0xPj4wXT0wLEE9QSsyfDB9Zm9yKDtBPTB8YVtBPj4yXTspZmVbKDB8YVthW0ErMTI+PjJdPj4yXSktMT4+MF09MCxBPUErNHwwO2lmKDB8ZmVbbCsyMzI+PjBdKXtpZihBPTB8YVt3KzQ+PjJdKXtpZighKEE9MHxhW0ErND4+Ml0pKXtBPTI3O2JyZWFrfWZvcih3PTB8YVtw''@;'; + put 'put ''Pj4yXTtiPXcrMXwwLDU4IT0oMHxmZVt3Pj4wXSk7KXc9Yn1lbHNle2lmKCEoQT0wfGFbU24rMTU2Pj4yXSkpe0E9MDticmVha31iPTB8YVtwPj4yXX1pZigwIT0oMHxmZVtsKzIzMz4+MF0pJiYwIT0oMHwoSG49MHxhW2FbQT4+Ml0+PjJdKSkpZm9yKHc9MDtrPXcrMXwwLDB8ZmVbSG4rdz4+''@;'; + put 'put ''MF07KXc9aztlbHNlIGs9MDtmb3IoYVtwKzQ+PjJdPWIsYVtwKzE2Pj4yXT1hWyhSPUErMjB8MCk+PjJdLGFbcCs4Pj4yXT1hW2FbQT4+Ml0+PjJdLGFbcCsyMD4+Ml09ayxHPTA7Sz1HKzF8MCwwfGZlW2IrRz4+MF07KUc9SztpZigoMHwoTT1LK2srKHc9MHxhW1I+PjJdKXwwKSk+KDB8YVso''@;'; + put 'put ''Zj1BKzI0fDApPj4yXSkpe2lmKCEoRD0wfF9vWzYzJmFbbCsxMj4+Ml1dKHc9TSsyNHwwKSkpe0E9MTticmVha31mb3IoYVtmPj4yXT13LGdvKDB8RCwwfGFbKGY9QSsxNnwwKT4+Ml0sMHxhW1I+PjJdKSx3PWwrMzYwfDA7dz0wfGFbdz4+Ml07KSgwfGFbKE09dysxMnwwKT4+Ml0pPT0oMHxh''@;'; + put 'put ''W2Y+PjJdKSYmKGFbTT4+Ml09RCk7Q29bMTI3JmFbbCsyMD4+Ml1dKDB8YVtmPj4yXSksYVtmPj4yXT1ELE09RCx3PTB8YVtSPj4yXX1lbHNlIGY9TT1BKzE2fDAsTT0wfGFbTT4+Ml07Z28oMHwodz1NK3d8MCksMHxiLDB8SyksMHxrJiYoZmVbKEhyPXcrR3wwKT4+MF09MHxmZVtsKzQ2OD4+''@;'; + put 'put ''MF0sZ28oSHIrMXwwLDB8YVthW0E+PjJdPj4yXSwwfGspKSxhW3A+PjJdPWFbZj4+Ml0sQT0wfWVsc2UgQT0wfX13aGlsZSgwKTtyZXR1cm4gYWU9dXIsMHxBfWZ1bmN0aW9uIE5CKGwsYyl7Y3w9MDt2YXIgZixwLG0sQT0wLHc9MDtmb3IocD0xMDQrKGx8PTApfDAsbT1sKzM3MnwwLGY9bCs0''@;'; + put 'put ''fDA7YzspKGw9MHxhW3A+PjJdKSYmR3NbNjMmbF0oMHxhW2Y+PjJdLDB8YVthW2M+PjJdPj4yXSksbD1jLEE9MHxhWyh3PWMrNHwwKT4+Ml0sYVt3Pj4yXT1hW20+PjJdLGFbbT4+Ml09YyxhWzQrKDB8YVtsPj4yXSk+PjJdPWFbYys4Pj4yXSxjPUF9ZnVuY3Rpb24gYXgobCxjLGYscCl7Y3w9''@;'; + put 'put ''MCxmfD0wLHB8PTA7dmFyIHcsYixrLE0sRCxSLEssbT0wLEE9MCxHPTAscGU9MDtLPWFlLGFlPWFlKzE2fDAsYj1LLGFbMjc2KyhsfD0wKT4+Ml09NjIsYVsoaz1sKzI4NHwwKT4+Ml09YyxNPWwrMTQ0fDAsRD1sKzI4OHwwLFI9bCs4MHwwLHc9bCs0NzZ8MCxtPWM7ZTpmb3IoOzspe3N3aXRj''@;'; + put 'put ''aChhW2I+PjJdPTAscGU9MHxxMFsxMjcmYVsocGU9MHxhW00+PjJdKT4+Ml1dKHBlLG0sZixiKSxhW0Q+PjJdPWM9MHxhW2I+PjJdLEE9YywwfHBlKXtjYXNlLTE1Okc9MzticmVhayBlO2Nhc2UtNDpHPTc7YnJlYWsgZTtjYXNlIDA6Rz0xMjticmVhayBlO2Nhc2UtMTpHPTEzO2JyZWFrIGU7''@;'; + put 'put ''Y2FzZS0yOkc9MTU7YnJlYWsgZTtjYXNlIDE1OjB8YVtSPj4yXSYmXzIobCwwfGFbTT4+Ml0sbSxBKTticmVhaztjYXNlIDExOmlmKCEoMHxoQShsLDB8YVtNPj4yXSxtLEEpKSl7Yz0xO2JyZWFrIGV9YnJlYWs7Y2FzZSAxMzppZighKDB8Q18obCwwfGFbTT4+Ml0sbSxBKSkpe2M9MTticmVh''@;'; + put 'put ''ayBlfWJyZWFrO2RlZmF1bHQ6Yz05O2JyZWFrIGV9c3dpdGNoKGFbaz4+Ml09Yz0wfGFbYj4+Ml0sMHxhW3c+PjJdKXtjYXNlIDI6Yz0zNTticmVhayBlO2Nhc2UgMzpHPTE4O2JyZWFrIGV9bT1jfWRve2lmKDM9PSgwfEcpKXtpZigwfGFbUj4+Ml0pe2lmKF8yKGwsMHxhW00+PjJdLG0sQSks''@;'; + put 'put ''Mj09KDB8YVt3Pj4yXSkpe2M9MzU7YnJlYWt9Yz0wfGFbYj4+Ml19YVtwPj4yXT1jLGM9MH1lbHNlIDc9PSgwfEcpPyhhW3A+PjJdPW0sYz0wKToxMj09KDB8Ryk/KGFbaz4+Ml09YyxjPTQpOjEzPT0oMHxHKT8wfGZlW2wrNDgwPj4wXT9jPTU6KGFbcD4+Ml09bSxjPTApOjE1PT0oMHxHKT8w''@;'; + put 'put ''fGZlW2wrNDgwPj4wXT9jPTY6KGFbcD4+Ml09bSxjPTApOjE4PT0oMHxHKSYmKGFbcD4+Ml09YyxjPTApfXdoaWxlKDApO3JldHVybiBhZT1LLDB8Y31mdW5jdGlvbiBQbShsLGMsZixwLG0sQSl7bHw9MCxjfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBrLE0sRCxSLEcsSyxPZSxMZSxSZSxIZSxW''@;'; + put 'put ''ZSxxZSxXZSx3PTAsYj0wLHBlPTAsZ2U9MCxiZT0wLG50PTA7V2U9YWUsYWU9YWUrMTZ8MCxxZT1XZSs0fDAsSGU9V2UsYVsoVmU9V2UrOHwwKT4+Ml09dz0wfGFbKGZ8PTApPj4yXSwoMHxhW2wrMTQ0Pj4yXSk9PSgwfGMpPyhhWyhnZT1sKzI4NHwwKT4+Ml09dyxiZT1sKzI4OHwwKTooZ2U9''@;'; + put 'put ''YmU9MHxhW2wrMjk2Pj4yXSxiZT1iZSs0fDApLGFbZ2U+PjJdPXcsYVtmPj4yXT0wLGs9Yys4fDAsTT1sKzYwfDAsT2U9bCs4MHwwLExlPWwrNHwwLFJlPWwrNDc2fDAsRD1jKzY4fDAsUj1sKzQ0fDAsRz1jKzU2fDAsSz1sKzQ4fDA7ZTpmb3IoOzspe2I9MHxxMFsxMjcmYVtrPj4yXV0oYyww''@;'; + put 'put ''fGFbVmU+PjJdLHAscWUpLGFbYmU+PjJdPXc9MHxhW3FlPj4yXSxwZT13O3Q6ZG97c3dpdGNoKDB8Yil7Y2FzZSA0MDpudD02O2JyZWFrIGU7Y2FzZSAwOm50PTIzO2JyZWFrIGU7Y2FzZS0yOm50PTI0O2JyZWFrIGU7Y2FzZS00OmNhc2UtMTpudD0yNjticmVhayBlO2Nhc2UgNzppZigwfCh3''@;'; + put 'put ''PTB8YVtNPj4yXSkpe2ZlW0hlPj4wXT0xMCxkbFsxMjcmd10oMHxhW0xlPj4yXSxIZSwxKTticmVhayB0fTB8YVtPZT4+Ml0mJl8yKGwsYywwfGFbVmU+PjJdLHBlKTticmVhaztjYXNlIDY6aWYoIShiPTB8YVtNPj4yXSkpe2lmKCEoMHxhW09lPj4yXSkpYnJlYWsgdDtfMihsLGMsMHxhW1Zl''@;'; + put 'put ''Pj4yXSxwZSk7YnJlYWsgdH1pZigwfGZlW0Q+PjBdKXtkbFsxMjcmYl0oMHxhW0xlPj4yXSxwZT0wfGFbVmU+PjJdLHctcGV8MCk7YnJlYWsgdH1mb3Iodz1wZTthW0hlPj4yXT1hW1I+PjJdLHBlPTB8TzJbMTI3JmFbRz4+Ml1dKGMsVmUsdyxIZSwwfGFbSz4+Ml0pLGFbYmU+PjJdPWFbcWU+''@;'; + put 'put ''PjJdLGRsWzEyNyZiXSgwfGFbTGU+PjJdLHc9MHxhW1I+PjJdLCgwfGFbSGU+PjJdKS13fDApLCEocGU+Pj4wPDIpOylhW2dlPj4yXT1hW1ZlPj4yXSx3PTB8YVtxZT4+Ml07YnJlYWs7ZGVmYXVsdDpudD0yODticmVhayBlfX13aGlsZSgwKTtzd2l0Y2goYVtWZT4+Ml09cGU9MHxhW3FlPj4y''@;'; + put 'put ''XSxhW2dlPj4yXT1wZSwwfGFbUmU+PjJdKXtjYXNlIDM6bnQ9MzA7YnJlYWsgZTtjYXNlIDI6dz0zNTticmVhayBlfX1yZXR1cm4gNj09KDB8bnQpPygodz0wfGFbbCs3Nj4+Ml0pP0NvWzEyNyZ3XSgwfGFbTGU+PjJdKTowfGFbT2U+PjJdJiZfMihsLGMsMHxhW1ZlPj4yXSxwZSksYVtmPj4y''@;'; + put 'put ''XT13PTB8YVtxZT4+Ml0sYVttPj4yXT13LHc9Mj09KDB8YVtSZT4+Ml0pPzM1OjApOjIzPT0oMHxudCk/KGFbZ2U+PjJdPXcsdz00KToyND09KDB8bnQpP0E8PDI0Pj4yND8oYVttPj4yXT1hW1ZlPj4yXSx3PTApOnc9NjoyNj09KDB8bnQpP0E8PDI0Pj4yND8oYVttPj4yXT1hW1ZlPj4yXSx3''@;'; + put 'put ''PTApOnc9MjA6Mjg9PSgwfG50KT8oYVtnZT4+Ml09dyx3PTIzKTozMD09KDB8bnQpJiYoYVttPj4yXT1hW3FlPj4yXSx3PTApLGFlPVdlLDB8d31mdW5jdGlvbiBseChsLGMsZixwKXtyZXR1cm4gMD09KDB8KGM9MHxCbShsfD0wLDEsMHxhW2wrMTQ0Pj4yXSxjfD0wLGZ8PTAscHw9MCwwPT0o''@;'; + put 'put ''MHxmZVtsKzQ4MD4+MF0pJjEpKSkmJigwfE1fKGwpKTw8MjQ+PjI0PT0wJiYoYz0xKSwwfGN9ZnVuY3Rpb24gTV8obCl7dmFyIFIsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2ZvcihSPTE2KyhsfD0wKXwwLGw9bCszNjB8MDs7KXtpZighKGw9MHxhW2w+PjJdKSl7''@;'; + put 'put ''bD0xO2JyZWFrfWlmKCgwfChmPTB8YVsoRD1sKzR8MCk+PjJdKSk9PSgwfChwPShtPTB8YVsoaz1sKzM2fDApPj4yXSkrKGI9MSsoMHxhW2wrMjQ+PjJdKXwwKXwwKSkpe2w9MTticmVha31pZigoMHwoQT0oYz0wfGFbKE09bCs4fDApPj4yXSkrYnwwKSk+KCgwfGFbKHc9bCs0MHwwKT4+Ml0p''@;'; + put 'put ''LW18MCkpe2lmKCEocD0wfEJpWzEyNyZhW1I+PjJdXShtLEEpKSl7bD0wO2JyZWFrfSgwfGFbKGM9bCsxMnwwKT4+Ml0pPT0oMHwobT0wfGFbaz4+Ml0pKSYmKGFbYz4+Ml09cCksMHwoZj0wfGFbKGM9bCsxNnwwKT4+Ml0pJiYoYVtjPj4yXT1wKyhmLW0pKSxhW2s+PjJdPXAsYVt3Pj4yXT1w''@;'; + put 'put ''K0EscD1wK2J8MCxmPTB8YVtEPj4yXSxjPTB8YVtNPj4yXX1nbygwfHAsMHxmLDB8YyksYVtEPj4yXT1wfXJldHVybiAwfGx9ZnVuY3Rpb24gRV8obCxjKXtjfD0wO3ZhciBwLG0sZj0wLEE9MCx3PTA7Zm9yKHA9MTIrKGx8PTApfDAsbT1sKzh8MDs7KXtpZigoMHwoZj0wfGFbcD4+Ml0pKT09''@;'; + put 'put ''KDB8YVttPj4yXSkpe2lmKCEoKDB8dmwobCkpPDwyND4+MjQpKXtjPTA7YnJlYWt9Zj0wfGFbcD4+Ml19aWYodz0wfGZlW2M+PjBdLGFbcD4+Ml09ZisxLGZlW2Y+PjBdPXcsISgwfGZlW2M+PjBdKSl7QT02O2JyZWFrfWM9YysxfDB9cmV0dXJuIDY9PSgwfEEpJiYoYz0wfGFbKHc9bCsxNnww''@;'; + put 'put ''KT4+Ml0sYVt3Pj4yXT1hW3A+PjJdKSwwfGN9ZnVuY3Rpb24geF8obCxjKXt2YXIgdyxiLGssTSxELGY9MCxwPTAsbT0wLEE9MCxSPTA7Yj04MCsoUj0wfGFbMzUyKyhsfD0wKT4+Ml0pfDAsaz1SKzkyfDAsTT1SKzg4fDAsRD1SKzYwfDAsUj1SKzk2fDAsdz00KyhjfD0wKXwwLEE9MHxhW2M+''@;'; + put 'put ''PjJdO2U6Zm9yKDs7KXtzd2l0Y2goMHxmZVtBPj4wXSl7Y2FzZSAwOmY9MTticmVhayBlO2Nhc2UgNTg6Zm9yKG09MHxhW2M+PjJdO3A9KDB8KGY9MHxhW2s+PjJdKSk9PSgwfGFbTT4+Ml0pLCgwfG0pIT0oMHxBKTspe2lmKHApe2lmKCEoKDB8dmwoYikpPDwyND4+MjQpKXtmPTA7YnJlYWsg''@;'; + put 'put ''ZX1mPTB8YVtrPj4yXX1wPTB8ZmVbbT4+MF0sYVtrPj4yXT1mKzEsZmVbZj4+MF09cCxtPW0rMXwwfWlmKHApe2lmKCEoKDB8dmwoYikpPDwyND4+MjQpKXtmPTA7YnJlYWsgZX1mPTB8YVtrPj4yXX1pZihhW2s+PjJdPWYrMSxmZVtmPj4wXT0wLCEoZj0wfF8xKGwsRCwwfGFbUj4+Ml0sOCkp''@;'; + put 'put ''KXtmPTA7YnJlYWsgZX0oMHxhW2Y+PjJdKT09KDB8KHA9MHxhW1I+PjJdKSk/YVtSPj4yXT1hW2s+PjJdOmFbaz4+Ml09cCxhW3c+PjJdPWZ9QT1BKzF8MH1yZXR1cm4gMHxmfWZ1bmN0aW9uIGdBKGwsYyxmLHAsbSl7bHw9MCxmfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0w''@;'; + put 'put ''LFI9MCxHPTAsSz0wO2s9MHxmZVsocHw9MCk+PjBdLEE9MD09KDB8KHc9MHxhWyhjfD0wKT4+Ml0pKTtkb3tpZihrPDwyND4+MjQpaWYoQXx8MTIwIT0oMHxmZVt3Pj4wXSl8fDEwOSE9KDB8ZmVbdysxPj4wXSl8fDEwOCE9KDB8ZmVbdysyPj4wXSkpRD0wLGI9MTE7ZWxzZXtpZigoQT0wfGZl''@;'; + put 'put ''W3crMz4+MF0pPDwyND4+MjQ9PTExMCYmMTE1PT0oMHxmZVt3KzQ+PjBdKSYmMD09KDB8ZmVbdys1Pj4wXSkpe0E9Mzk7YnJlYWt9RD1BPDwyND4+MjQ9PTAmMSxiPTExfWVsc2UgQT8oRD0wLGI9MTEpOkE9Mjh9d2hpbGUoMCk7ZTpkb3tpZigxMT09KDB8Yikpe2ZvcihNPUQ8PDI0Pj4yNCE9''@;'; + put 'put ''MCxBPTEsdz0xLFI9MDtiPXc8PDI0Pj4yNCE9MCxrPDwyND4+MjQ7KXtkb3tpZihiKXtpZigoMHxSKTw9MzYmJms8PDI0Pj4yND09KDB8ZmVbMTQyMjU3K1I+PjBdKSlicmVhazt3PTB9ZWxzZSB3PTB9d2hpbGUoMCk7ZG97aWYoIShNfEE8PDI0Pj4yND09MCkpe2lmKCgwfFIpPD0yOSYmazw8''@;'; + put 'put ''MjQ+PjI0PT0oMHxmZVsxNDIyOTQrUj4+MF0pKWJyZWFrO0E9MH19d2hpbGUoMCk7Uj1rPVIrMXwwLGs9MHxmZVtwK2s+PjBdfWlmKCgyNTUmRHwwKSE9KGImMzY9PSgwfFIpJjF8MCkpe0E9TT8zODo0MDticmVha31pZihBPDwyND4+MjQhPTAmMjk9PSgwfFIpKUE9NDA7ZWxzZXtSPVIrKDAh''@;'; + put 'put ''PSgwfGZlWyhHPWwrNDY4fDApPj4wXSkmMSl8MCxiPTB8YVsoQT1sKzM3MnwwKT4+Ml07ZG97aWYoIWIpe2lmKCEodz0wfF9vWzYzJmFbKEE9bCsxMnwwKT4+Ml1dKDI4KSkpe0E9MTticmVhayBlfWlmKEQ9MHxfb1s2MyZhW0E+PjJdXShiPVIrMjR8MCksYVt3KzE2Pj4yXT1ELEQpe2Fbdysy''@;'; + put 'put ''ND4+Ml09YixiPXc7YnJlYWt9Q29bMTI3JmFbbCsyMD4+Ml1dKHcpLEE9MTticmVhayBlfWlmKCgwfFIpPigwfGFbKHc9YisyNHwwKT4+Ml0pKXtpZighKEQ9MHxCaVsxMjcmYVtsKzE2Pj4yXV0oMHxhWyhrPWIrMTZ8MCk+PjJdLE09UisyNHwwKSkpe0E9MTticmVhayBlfWFbaz4+Ml09RCxh''@;'; + put 'put ''W3c+PjJdPU19YVtBPj4yXT1hW2IrND4+Ml19d2hpbGUoMCk7YVtiKzIwPj4yXT1SLGdvKDB8YVsodz1iKzE2fDApPj4yXSwwfHAsMHxSKSwoQT0wfGZlW0c+PjBdKTw8MjQ+PjI0JiYoZmVbKDB8YVt3Pj4yXSkrKFIrLTEpPj4wXT1BKSxhW2I+PjJdPWMsYVtiKzEyPj4yXT1mLGFbYis4Pj4y''@;'; + put 'put ''XT1hWyh3PWMrNHwwKT4+Ml0sYVt3Pj4yXT1BPTA9PSgwfGZlW3A+PjBdKSYmKDE1MisoMHxhW2wrMzUyPj4yXSl8MCk9PSgwfGMpPzA6YixhW2IrND4+Ml09YVttPj4yXSxhW20+PjJdPWIsMCE9KDB8ZikmJjAhPSgwfChLPTB8YVtsKzEwMD4+Ml0pKSYmZGxbMTI3JktdKDB8YVtsKzQ+PjJd''@;'; + put 'put ''LDB8YVtjPj4yXSwwfGFbdz4+Ml0/cDowKSxBPTB9fX13aGlsZSgwKTtyZXR1cm4gMHxBfWZ1bmN0aW9uIG1BKGwsYyl7dmFyIGY7bHw9MCxhWyhmPWN8PTApPj4yXT0wLGFbZis0Pj4yXT0wLGFbKGM9Yys4fDApPj4yXT0wfGZ1bmN0aW9uIFRfKGwpe2x8PTA7Zm9yKHZhciBjPTA7Yz0wfGFb''@;'; + put 'put ''bCs0NzI+PjJdOylsPWM7cmV0dXJuIDB8YVtsKzQ5Mj4+Ml19KGwpLGFbYys0Pj4yXT0wfWZ1bmN0aW9uIFJoKGwsYyl7dmFyIGY9MCxwPTAsbT0wLEE9MDtBPTE5MzY2ODIzNDFeYVs0KyhmPWN8PTApPj4yXSxhWyhwPWx8PTApPj4yXT0xODg2NjEwODA1XmFbZj4+Ml0sYVtwKzQ+PjJdPUEs''@;'; + put 'put ''Zj0xNjg1MDI1Mzc3XmFbNCsoQT1wPWMrOHwwKT4+Ml0sYVsobT1sKzh8MCk+PjJdPTE4NTIwNzU4ODVeYVtBPj4yXSxhW20rND4+Ml09ZixjPTE4MTk4OTU2NTNeYVsobT1jKSs0Pj4yXSxhWyhmPWwrMTZ8MCk+PjJdPTE4NTIxNDIxNzdeYVttPj4yXSxhW2YrND4+Ml09YyxmPTE5NTI4MDE4''@;'; + put 'put ''OTBeYVtwKzQ+PjJdLGFbKGM9bCsyNHwwKT4+Ml09MjAzNzY3MTI4M15hW3A+PjJdLGFbYys0Pj4yXT1mLGFbbCs0MD4+Ml09bCszMixhWyhjPWwrNDh8MCk+PjJdPTAsYVtjKzQ+PjJdPTB9ZnVuY3Rpb24gcDUobCxjLGYpe3ZhciBtLEEsdyxiLGssTSxELFIsRyxLLHBlLGdlLGJlLHA9MCxP''@;'; + put 'put ''ZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wO0Q9KGN8PTApKyhmfD0wKXwwLFI9NDArKGx8PTApfDAsRz1sKzQwfDAsSz1sKzMyfDAscGU9bCszM3wwLGdlPWwrMzR8MCxiZT1sKzM1fDAsbT1sKzM2fDAsQT1sKzM3fDAsdz1sKzM4fDAsYj1sKzM5fDAsaz1sKzI0fDAsTT1sKzQ4''@;'; + put 'put ''fDAsZj1jO2Rve2Zvcig7Oyl7aWYocD0wfGFbUj4+Ml0sZj4+PjA+PUQ+Pj4wKXtjPTA7YnJlYWt9aWYocD4+PjA+PUc+Pj4wKXtjPTE7YnJlYWt9Yz0wfGZlW2Y+PjBdLGFbUj4+Ml09cCsxLGZlW3A+PjBdPWMsZj1mKzF8MH1pZihwPj4+MDxHPj4+MClicmVhaztxZT0wfEp0W0s+PjBdLG50''@;'; + put 'put ''PTB8Wm8oMHxKdFtwZT4+MF0sMCw4KSxwPURuLFZlPTB8Wm8oMHxKdFtnZT4+MF0sMCwxNikscHw9RG4sUmU9MHxabygwfEp0W2JlPj4wXSwwLDI0KSxwPXB8RG58MHxKdFttPj4wXSxPZT0wfFpvKDB8SnRbQT4+MF0sMCw0MCkscHw9RG4sSGU9MHxabygwfEp0W3c+PjBdLDAsNDgpLHB8PURu''@;'; + put 'put ''LExlPTB8Wm8oMHxKdFtiPj4wXSwwLDU2KSxMZXw9bnR8cWV8VmV8UmV8T2V8SGUsT2U9KHB8PURuKV5hWyhIZT1rKSs0Pj4yXSxhWyhSZT1rKT4+Ml09TGVeYVtIZT4+Ml0sYVtSZSs0Pj4yXT1PZSx2QShsLDIpLHBePWFbKFJlPWwpKzQ+PjJdLGFbKE9lPWwpPj4yXT1hW1JlPj4yXV5MZSxh''@;'; + put 'put ''W09lKzQ+PjJdPXAsYVtSPj4yXT1LLE9lPTB8emwoMHxhWyhPZT1NKT4+Ml0sMHxhW09lKzQ+PjJdLDgsMCksYVsocD1NKT4+Ml09T2UsYVtwKzQ+PjJdPURufXdoaWxlKGMpfWZ1bmN0aW9uIEc0KGwpe2x8PTA7dmFyIGM9MDtmb3IoYz0wOzB8ZmVbbD4+MF07KWM9YysxfDAsbD1sKzF8MDty''@;'; + put 'put ''ZXR1cm4gMHxjfWZ1bmN0aW9uIE02KGwpe3ZhciB3LGM9MCxmPTAscD0wLG09MCxBPTA7c3dpdGNoKGY9MHxabygwfChmPTB8emwoMHxhWyhmPTQ4KyhsfD0wKXwwKT4+Ml0sMHxhW2YrND4+Ml0sMHwoQT0oMHxhW2wrNDA+PjJdKS0ocD1sKzMyfDApfDApLDApKSwwfERuLDU2KSxjPURuLEE8''@;'; + put 'put ''PDI0Pj4yNHwwKXtjYXNlIDc6Zj0wfFpvKDB8SnRbbCszOD4+MF0sMCw0OCl8ZixjfD1EbixtPTM7YnJlYWs7Y2FzZSA2Om09MzticmVhaztjYXNlIDU6bT00O2JyZWFrO2Nhc2UgNDptPTU7YnJlYWs7Y2FzZSAzOm09NjticmVhaztjYXNlIDI6bT03O2JyZWFrO2Nhc2UgMTptPTh9cmV0dXJu''@;'; + put 'put ''IDM9PSgwfG0pJiYoZnw9QT0wfFpvKDB8SnRbbCszNz4+MF0sMCw0MCksY3w9RG4sbT00KSw0PT0oMHxtKSYmKGN8PTB8SnRbbCszNj4+MF0sbT01KSw1PT0oMHxtKSYmKGZ8PUE9MHxabygwfEp0W2wrMzU+PjBdLDAsMjQpLGN8PURuLG09NiksNj09KDB8bSkmJihmfD1BPTB8Wm8oMHxKdFts''@;'; + put 'put ''KzM0Pj4wXSwwLDE2KSxjfD1EbixtPTcpLDc9PSgwfG0pJiYoQT0wfFpvKDB8SnRbbCszMz4+MF0sMCw4KSxjfD1EbixmfD1BLG09OCksOD09KDB8bSkmJihmPTB8ZnxKdFtwPj4wXSksbT1hWzQrKHc9QT1sKzI0fDApPj4yXV5jLGFbKHA9QSk+PjJdPWFbdz4+Ml1eZixhW3ArND4+Ml09bSx2''@;'; + put 'put ''QShsLDIpLGNePWFbKHA9bCkrND4+Ml0sYVsobT1sKT4+Ml09YVtwPj4yXV5mLGFbbSs0Pj4yXT1jLGY9MHxhWzQrKGM9bT1sKzE2fDApPj4yXSxhWyhwPW0pPj4yXT0yNTVeYVtjPj4yXSxhW3ArND4+Ml09Zix2QShsLDQpLHA9bCxEbj1hWzQrKGw9bCs4fDApPj4yXV5hW3ArND4+Ml1eYVtt''@;'; + put 'put ''KzQ+PjJdXmFbQSs0Pj4yXSxhW2w+PjJdXmFbcD4+Ml1eYVttPj4yXV5hW0E+PjJdfDB9ZnVuY3Rpb24gdkEobCxjKXtjfD0wO3ZhciBwLG0sQSxmPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTA7Zm9yKHA9OCsobHw9MCl8MCxtPWwrMjR8MCxBPWwrMTZ8MCxm''@;'; + put 'put ''PTA7ISgoMHxmKT49KDB8YykpOylLPTB8emwoMHxhWyhLPWwpPj4yXSwwfGFbSys0Pj4yXSwwfChHPTB8YVsodz1wKT4+Ml0pLDB8KHc9MHxhW3crND4+Ml0pKSxNPURuLFI9MHxabygwfEcsMHx3LDEzKSxEPURuLHc9KFJ8KHc9MHx3bCgwfEcsMHx3LDUxKSkpXkssRD0oRHxEbileTSxrPTB8''@;'; + put 'put ''emwoMHxhWyhrPUEpPj4yXSwwfGFbays0Pj4yXSwwfChHPTB8YVsoUj1tKT4+Ml0pLDB8KFI9MHxhW1IrND4+Ml0pKSxiPURuLGdlPTB8Wm8oMHxHLDB8UiwxNikscGU9RG4sSz0wfHpsKDB8TSwwfEssMHwoUj0oZ2V8KFI9MHx3bCgwfEcsMHxSLDQ4KSkpXmspLDB8KHBlPShwZXxEbileYikp''@;'; + put 'put ''LE09RG4sYVsoZ2U9bCk+PjJdPUssYVtnZSs0Pj4yXT1NLGdlPTB8Wm8oMHxSLDB8cGUsMjEpLEc9RG4scGU9MHx3bCgwfFIsMHxwZSw0MyksYVsoUj1tKT4+Ml09KGdlfHBlKV5LLGFbUis0Pj4yXT0oR3xEbileTSxiPTB8emwoMHxrLDB8YiwwfHcsMHxEKSxrPURuLFI9MHxabygwfHcsMHxE''@;'; + put 'put ''LDE3KSxNPURuLEQ9MHx3bCgwfHcsMHxELDQ3KSxhWyh3PXApPj4yXT0oUnxEKV5iLGFbdys0Pj4yXT0oTXxEbileayxhWyh3PUEpPj4yXT1rLGFbdys0Pj4yXT1iLGY9ZisxfDB9ZnVuY3Rpb24gQUEobCxjLGYscCxtLEEpe3B8PTAsbXw9MDt2YXIgUixHLEsscGUsZ2UsYmUsTGUsUmUsSGUs''@;'; + put 'put ''VmUscWUsbnQsV2Usb3QsU3Qsa3QsbHQsRXQsWnQsY3QsYnQsYW4sU24sdz0wLGI9MCxrPTAsTT0wLEQ9MCxPZT0wLEhuPTA7U249YWUsYWU9YWUrMTZ8MCxjdD1TbixidD1Tbis0fDAsUj0xNisoY3w9MCl8MCxHPWMrNDB8MCxLPTE0NCsobHw9MCl8MCxwZT1sKzI4NHwwLGdlPShmfD0wKTw8''@;'; + put 'put ''MjQ+PjI0PT0wLGJlPTEyKyhBfD0wKXwwLExlPUErMTZ8MCxSZT1BKzh8MCxIZT1jKzQ0fDAsVmU9Yys2NHwwLHFlPWwrNDM2fDAsbnQ9bCs0NTJ8MCxXZT1sKzQ0OHwwLG90PSg4MCsoYW49MHxhW2wrMzUyPj4yXSl8MCk9PSgwfEEpLFN0PWwrMjY4fDAsa3Q9YW4rMTMwfDAsbHQ9YW4rMTI5''@;'; + put 'put ''fDAsRXQ9bCsyOTZ8MCxadD1sKzIyNHwwLHc9MDtlOmZvcig7Oyl7dDpmb3IoOzspe3N3aXRjaCgwfHEwWzEyNyZhW1I+PjJdXShjLHAsbSxjdCkpe2Nhc2UtNDp3PTAsRD02MTticmVhayBlO2Nhc2UgMDpEPTQ7YnJlYWsgZTtjYXNlLTE6RD02O2JyZWFrIGU7Y2FzZSA2OkQ9MjE7YnJlYWsg''@;'; + put 'put ''dDtjYXNlLTM6RD0yMjticmVhayB0O2Nhc2UgNzpjYXNlIDM5OkQ9MjM7YnJlYWsgdDtjYXNlIDEwOmI9MHxCaVsxMjcmYVtHPj4yXV0oYyxwKTtuOmRve2lmKCgwfGIpPDApKDB8YVtLPj4yXSk9PSgwfGMpPyhhW3BlPj4yXT1wLGI9MSx3PTE0KTooYj0xLHc9MTQpO2Vsc2V7aWYoZ2UmMzI9''@;'; + put 'put ''PSgwfGIpKXtpZigoMHxhW0xlPj4yXSk9PSgwfChrPTB8YVtiZT4+Ml0pKSl7Yj00O2JyZWFrfWlmKDMyPT0oMHxmZVtrKy0xPj4wXSkpe2I9NDticmVha319Zm9yKE09MHxXNChiLGJ0KSxrPTA7Oyl7aWYoKDB8ayk+PSgwfE0pKXtiPTA7YnJlYWsgbn1pZigoMHwoYj0wfGFbYmU+PjJdKSk9''@;'; + put 'put ''PSgwfGFbUmU+PjJdKSl7aWYoISgoMHx2bChBKSk8PDI0Pj4yNCkpe2I9MSx3PTE7YnJlYWsgbn1iPTB8YVtiZT4+Ml19SG49MHxmZVtidCtrPj4wXSxhW2JlPj4yXT1iKzEsZmVbYj4+MF09SG4saz1rKzF8MH19fXdoaWxlKDApO3N3aXRjaCg3JmIpe2Nhc2UgNDpjYXNlIDA6YnJlYWsgdH1i''@;'; + put 'put ''cmVhaztjYXNlIDk6aWYoKGI9MjU1JigwfG1pWzYzJmFbSGU+PjJdXShjLHArKGI9MHxhW1ZlPj4yXSl8MCwwLWIrKDB8YVtjdD4+Ml0pfDApKSk8PDI0Pj4yNCl7RD0zMTticmVhayB0fWlmKCEoYj0wfGIyKHFlLGMscCsoYj0wfGFbVmU+PjJdKXwwLDAtYisoMHxhW2N0Pj4yXSl8MCkpKXt3''@;'; + put 'put ''PTEsRD02MTticmVhayBlfU09MHxfMShsLGFuLGIsMCksYVtXZT4+Ml09YVtudD4+Ml07ZG97aWYob3Qpe2lmKCEoMHxhW1N0Pj4yXSkpe2lmKE0pYnJlYWs7YnJlYWsgdH1pZigwfGZlW2t0Pj4wXSl7aWYoYj0wIT0oMHxNKSwwfGFbRXQ+PjJdKXtPZT1iLEQ9NDc7YnJlYWt9RD00NTticmVh''@;'; + put 'put ''a31pZihiPTAhPSgwfE0pLDB8ZmVbbHQ+PjBdKXtPZT1iLEQ9NDc7YnJlYWt9RD00NTticmVha31pZigwfGZlW2x0Pj4wXSl7aWYoYj0wIT0oMHxNKSwwfGZlW2t0Pj4wXSl7RD00NTticmVha31PZT1iLEQ9NDc7YnJlYWt9aWYoTSl7RD00NjticmVha313PTExLEQ9NjE7YnJlYWsgZX13aGls''@;'; + put 'put ''ZSgwKTtpZig0NT09KDB8RCkpe2lmKCFiKXt3PTExLEQ9NjE7YnJlYWsgZX1EPTQ2fWVsc2UgaWYoNDc9PSgwfEQpJiYoRD0wLCFPZSkpYnJlYWsgdDtpZig0Nj09KDB8RCkmJihEPTAsMD09KDB8ZmVbTSszND4+MF0pKSl7dz0yNCxEPTYxO2JyZWFrIGV9aWYoMHxmZVsoaz1NKzMyfDApPj4w''@;'; + put 'put ''XSl7RD00OTticmVhayBlfWlmKDB8YVtNKzI4Pj4yXSl7RD01MjticmVhayBlfWlmKCEoYj0wfGFbTSs0Pj4yXSkpe0Q9NTU7YnJlYWsgZX1pZihNPWIrKDB8YVtNKzg+PjJdKXwwLGZlW2s+PjBdPTEsTT0wfEFBKGwsMHxhW1p0Pj4yXSxmLGIsTSxBKSxmZVtrPj4wXT0wLGI9MD09KDB8TSkp''@;'; + put 'put ''YnJlYWsgdDtiPTEmKDFeYiksdz1NO2JyZWFrO2RlZmF1bHQ6RD01ODticmVhayBlfWlmKGIpYnJlYWsgZX1pZigyMT09KDB8RCkpe2lmKEQ9MCwhKDB8Y0EoQSxjLHAsMHxhW2N0Pj4yXSkpKXt3PTEsRD02MTticmVha319ZWxzZSBpZigyMj09KDB8RCkpYVtjdD4+Ml09cCsoMHxhW1ZlPj4y''@;'; + put 'put ''XSksRD0yMztlbHNlIGlmKDMxPT0oMHxEKSl7aWYoRD0wLCgwfChwPTB8YVtiZT4+Ml0pKT09KDB8YVtSZT4+Ml0pKXtpZighKCgwfHZsKEEpKTw8MjQ+PjI0KSl7dz0xLEQ9NjE7YnJlYWt9cD0wfGFbYmU+PjJdfWFbYmU+PjJdPXArMSxmZVtwPj4wXT1ifWRve2lmKDIzPT0oMHxEKSl7aWYo''@;'; + put 'put ''RD0wLHA9MHxhW2JlPj4yXSxnZSYmKCgwfGFbTGU+PjJdKT09KDB8cCl8fDMyPT0oMHxmZVtwKy0xPj4wXSkpKWJyZWFrO2lmKCgwfHApPT0oMHxhW1JlPj4yXSkpe2lmKCEoKDB8dmwoQSkpPDwyND4+MjQpKXt3PTEsRD02MTticmVhayBlfXA9MHxhW2JlPj4yXX1hW2JlPj4yXT1wKzEsZmVb''@;'; + put 'put ''cD4+MF09MzJ9fXdoaWxlKDApO3A9MHxhW2N0Pj4yXX1yZXR1cm4gND09KDB8RCk/KDB8YVtLPj4yXSk9PSgwfGMpPyhhW3BlPj4yXT1hW2N0Pj4yXSx3PTQsRD02MSk6KHc9NCxEPTYxKTo2PT0oMHxEKT8oMHxhW0s+PjJdKT09KDB8Yyk/KGFbcGU+PjJdPXAsdz00LEQ9NjEpOih3PTQsRD02''@;'; + put 'put ''MSk6NDk9PSgwfEQpPygwfGFbSz4+Ml0pPT0oMHxjKT8oYVtwZT4+Ml09cCx3PTEyLEQ9NjEpOih3PTEyLEQ9NjEpOjUyPT0oMHxEKT8oMHxhW0s+PjJdKT09KDB8Yyk/KGFbcGU+PjJdPXAsdz0xNSxEPTYxKToodz0xNSxEPTYxKTo1NT09KDB8RCk/KDB8YVtLPj4yXSk9PSgwfGMpPyhhW3Bl''@;'; + put 'put ''Pj4yXT1wLHc9MTYsRD02MSk6KHc9MTYsRD02MSk6NTg9PSgwfEQpJiYoKDB8YVtLPj4yXSk9PSgwfGMpPyhhW3BlPj4yXT1wLHc9MjMsRD02MSk6KHc9MjMsRD02MSkpLGFlPVNuLDB8d31mdW5jdGlvbiBJXyhsKXt2YXIgYztyZXR1cm4gYz04KyhsfD0wKXwwLDB8KCgwfGwpPDE/MDooMHxj''@;'; + put 'put ''KT4wP2M6MCl9ZnVuY3Rpb24geUEobCxjKXt2YXIgZixwLG07cmV0dXJuIGN8PTAsZj1hZSxhZT1hZSs4MHwwLHA9ZisxNnwwLG1BKGx8PTAsbT1mKSxSaChwLG0pLHA1KHAsYywwfEc0KGMpKSxjPTB8TTYocCksYWU9ZiwwfGN9ZnVuY3Rpb24gRm0obCxjKXtsfD0wLGN8PTA7Zm9yKHZhciBm''@;'; + put 'put ''PTA7Oyl7aWYoKGY9MHxmZVtsPj4wXSk8PDI0Pj4yNCE9KDB8ZmVbYz4+MF0pKXtjPTA7YnJlYWt9aWYoIShmPDwyND4+MjQpKXtjPTE7YnJlYWt9Yz1jKzF8MCxsPWwrMXwwfXJldHVybiAwfGN9ZnVuY3Rpb24gSG0obCxjKXtjfD0wO3ZhciB3LGssZj0wLHA9MCxtPTAsQT0wLGI9MDtrPWFl''@;'; + put 'put ''LGFlPWFlKzEwNDB8MCx3PWsscD0wfGFbMTI0KyhsfD0wKT4+Ml07ZTpkb3tpZihwKXtmb3IoZj0wOzI1NiE9KDB8Zik7KWFbdysoZjw8Mik+PjJdPS0xLGY9ZisxfDA7YVsobT13KzEwMjh8MCk+PjJdPTAsYVsoYj13KzEwMjR8MCk+PjJdPTAsYVsoQT13KzEwMzJ8MCk+PjJdPTA7ZG97aWYo''@;'; + put 'put ''MHxtaVs2MyZwXSgwfGFbbCsyNDQ+PjJdLGMsdykpe2lmKGY9MHxfb1s2MyYocD0wfGFbbCsxMj4+Ml0pXShmPTE5MDgpLGFbbCsyMzY+PjJdPWYsZil7aWYoIShmPTB8cTBbMTI3JihmZVtsKzIzMj4+MF08PDI0Pj4yND82NTo2NCldKGYsdywwfGFbbT4+Ml0sMHxhW2I+PjJdKSkpYnJlYWs7''@;'; + put 'put ''YVtsKzI0MD4+Ml09YVtiPj4yXSxhW2wrMjQ4Pj4yXT1hW0E+PjJdLGFbbCsxNDQ+PjJdPWYsZj0wfWVsc2UoZj0wfGFbQT4+Ml0pJiZDb1sxMjcmZl0oMHxhW2I+PjJdKSxmPTE7YnJlYWsgZX19d2hpbGUoMCk7MHwoZj0wfGFbQT4+Ml0pJiZDb1sxMjcmZl0oMHxhW2I+PjJdKSxmPTE4fWVs''@;'; + put 'put ''c2UgZj0xOH13aGlsZSgwKTtyZXR1cm4gYWU9aywwfGZ9ZnVuY3Rpb24gUmQobCxjKXtjfD0wLGZlWzQrKGx8PTApPj4wXT0wLGFbbCs4Pj4yXT0wLGFbbCsxMj4+Ml09MCxhW2w+PjJdPTAsYVtsKzE2Pj4yXT1jfWZ1bmN0aW9uIHV4KGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtPTAs''@;'; + put 'put ''QT0wLHc9MCxiPTA7bT0wPT0oMHwobHw9MCkpO2U6ZG97aWYobXwoMHxmKTwwfHwwPT0oMHxjKSYwIT0oMHxmKSl3PTM7ZWxzZXtzd2l0Y2goMHxhWyhBPWwrNDc2fDApPj4yXSl7Y2FzZSAzOmFbbCsyODA+PjJdPTMzLG09MDticmVhayBlO2Nhc2UgMjphW2wrMjgwPj4yXT0zNixtPTA7YnJl''@;'; + put 'put ''YWsgZTtjYXNlIDA6aWYoMD09KDB8YVtsKzQ3Mj4+Ml0pJiYoMHxjeChsKSk8PDI0Pj4yND09MCl7YVtsKzI4MD4+Ml09MSxtPTA7YnJlYWsgZX19aWYoYVtBPj4yXT0xLDB8Zil7aWYoIShtPTB8ZngobCxmKSkpe209MDticmVha31nbygwfG0sMHxjLDB8ZiksbT0wfERvKGwsZixwKTticmVh''@;'; + put 'put ''a31pZihmZVtsKzQ4MD4+MF09cCxwKXtpZihhWyhjPWwrMjkyfDApPj4yXT1iPTB8YVsobT1sKzI0fDApPj4yXSxhW2wrNDA+PjJdPXA9MHxhW2wrMjg+PjJdLHA9MHxxMFsxMjcmYVsoZj1sKzI3NnwwKT4+Ml1dKGwsYixwLG0pLGFbbCsyODA+PjJdPXAsMHxwKXthW2wrMjg4Pj4yXT1hW2wr''@;'; + put 'put ''Mjg0Pj4yXSxhW2Y+PjJdPTY2LG09MDticmVha31zd2l0Y2goMHxhW0E+PjJdKXtjYXNlIDM6UmNbMzEmYVs0OCsoYj0wfGFbbCsxNDQ+PjJdKT4+Ml1dKGIsMHxhW2M+PjJdLDB8YVttPj4yXSxsKzQwNHwwKSxhW2M+PjJdPWFbbT4+Ml0sbT0yO2JyZWFrIGU7Y2FzZSAxOmNhc2UgMDphW0E+''@;'; + put 'put ''PjJdPTIsbT0xO2JyZWFrIGU7ZGVmYXVsdDptPTE7YnJlYWsgZX19ZWxzZSBtPTF9fXdoaWxlKDApO3JldHVybiAzPT0oMHx3KSYmKG18fChhW2wrMjgwPj4yXT00MSksbT0wKSwwfG19ZnVuY3Rpb24gY3gobCl7dmFyIGM7cmV0dXJuIDB8YVsoYz00OTIrKGx8PTApfDApPj4yXXx8KGFbYz4+''@;'; + put 'put ''Ml09MHxmdW5jdGlvbiBqQigpe3ZhciBjLGw9MCxmPTA7cmV0dXJuIGM9YWUsYWU9YWUrMTZ8MCwwfGZ1bmN0aW9uIExfKGwpe2x8PTA7dmFyIHAsbSxjPTAsZj0wLEE9MDtpZihtPWFlLGFlPWFlKzE2fDAsKDB8KHA9MHxmdW5jdGlvbiBfQWUobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxBLHcs''@;'; + put 'put ''cD0wLGI9MDtyZXR1cm4gdz1hZSxhZT1hZSs0OHwwLEE9dysxNnwwLG09dyxwPXcrMzJ8MCw0MTk0MzY4JihjfD0wKT8oYVtwPj4yXT1mLGY9MHxhWyhiPTMrKDB8YVtwPj4yXSkmLTQpPj4yXSxhW3A+PjJdPWIrNCxwPWYpOnA9MCxhW20+PjJdPWwsYVttKzQ+PjJdPTMyNzY4fGMsYVttKzg+''@;'; + put 'put ''PjJdPXAsMD09KDUyNDI4OCZjfDApfCgwfChwPTB8QjgoNSwwfG0pKSk8MHx8KGFbQT4+Ml09cCxhW0ErND4+Ml09MixhW0ErOD4+Ml09MSx3ZCgyMjEsMHxBKSksYj0wfHVoKHApLGFlPXcsMHxifSgxNDIzNjUsMCxtKSkpPDApYz0wO2Vsc2V7Zm9yKGM9MDs7KXtpZihmPShBPTB8VGNlKHAs''@;'; + put 'put ''bCtjfDAsNC1jfDApKStjfDAsKDB8QSk+MCl7aWYoIShmPj4+MDw0KSl7Yz0xO2JyZWFrfWM9Zn1pZig0IT0oMHxhWzQ3NjQzXSkpe2M9MDticmVha319IWZ1bmN0aW9uIGJjZShsKXt2YXIgYyxmO2M9YWUsYWU9YWUrMTZ8MCxhWyhmPWMpPj4yXT0wfHFLKGx8PTApLGw9MHx1aCgtND09KDB8''@;'; + put 'put ''KGw9MHxKdSg2LDB8ZikpKT8wOmwpLGFlPWN9KHApfXJldHVybiBhZT1tLDB8Y30obD1jKT9sPTB8aHgoMTQyMzY1LDB8YVtsPj4yXSk6KGY9MHxmdW5jdGlvbiBaQigpe3ZhciBsLGM7cmV0dXJuIGM9YWUsYWU9YWUrMTZ8MCwwfGczKDB8KGw9YyksMCk/KFByKDE0MjM5MCwxNDI0MTIsODE5''@;'; + put 'put ''LDE0MjQyMyksMCk6KGFlPWMsMHxhW2wrND4+Ml0pfSgpLGY9KDB8VGooKSleZixhW2w+PjJdPWYsbD0wfGh4KDE0MjM3OCwwfEFyKGYsMjE0NzQ4MzY0NykpKSxhZT1jLDB8bH0oKSksbD0wfGZlW2wrMjMyPj4wXT8wfGZ1bmN0aW9uIERfKGwsYyl7Y3w9MDt2YXIgYixrLE0sRCxSLEcsSyxw''@;'; + put 'put ''ZSxnZSxmPTAscD0wLG09MCxBPTAsdz0wLGJlPTA7RD00MjQrKGx8PTApfDAsUj1sKzQyMHwwLEc9bCs0MTJ8MCxLPWwrNDI4fDAscGU9MTUyKyhNPTB8YVtsKzM1Mj4+Ml0pfDAsZ2U9bCszNjh8MCxiPU0rNjB8MCxrPU0rODB8MDtlOmZvcig7Oyl7QT1jO3Q6Zm9yKDs7KXtpZighKDB8ZmVb''@;'; + put 'put ''Yz4+MF0pKXtjPTE7YnJlYWsgZX1zd2l0Y2goKHA9MHxmZVtBPj4wXSk8PDI0Pj4yNCl7Y2FzZSAwOmNhc2UgMTI6YmU9NTticmVhayB0O2Nhc2UgNjE6YnJlYWsgdH1pZigoMHwoZj0wfGFbRD4+Ml0pKT09KDB8YVtSPj4yXSkpe2lmKCEoKDB8dmwoRykpPDwyND4+MjQpKXtjPTA7YnJlYWsg''@;'; + put 'put ''ZX1mPTB8YVtEPj4yXSxwPTB8ZmVbQT4+MF19YVtEPj4yXT1mKzEsZmVbZj4+MF09cCxBPUErMXwwfWlmKDUhPSgwfGJlKSl7aWYoKDB8YVtLPj4yXSk9PSgwfChjPTB8YVtEPj4yXSkpKXA9cGU7ZWxzZXtpZigoMHxjKT09KDB8YVtSPj4yXSkpe2lmKCEoKDB8dmwoRykpPDwyND4+MjQpKXtj''@;'; + put 'put ''PTA7YnJlYWt9Yz0wfGFbRD4+Ml19aWYoYVtEPj4yXT1jKzEsZmVbYz4+MF09MCwhKHA9MHxfMShsLGIsMHxhW0s+PjJdLDgpKSl7Yz0wO2JyZWFrfWlmKGM9dz0wfGFbSz4+Ml0sKDB8KGY9MHxhW3A+PjJdKSk9PSgwfHcpKXtpZih3PTB8RV8oayxmKSxhW3A+PjJdPXcsIXcpe2M9MDticmVh''@;'; + put 'put ''a31jPTB8YVtLPj4yXX1hW0Q+PjJdPWN9dDpmb3IoOzspe3N3aXRjaChtPSgwfGMpPT0oMHxhW1I+PjJdKSwoZj0wfGZlWyh3PUErMXwwKT4+MF0pPDwyND4+MjQpe2Nhc2UgMDpjYXNlIDEyOmJyZWFrIHR9aWYobSl7aWYoISgoMHx2bChHKSk8PDI0Pj4yNCkpe2M9MDticmVhayBlfWM9MHxh''@;'; + put 'put ''W0Q+PjJdLGY9MHxmZVt3Pj4wXX1hW0Q+PjJdPWMrMSxmZVtjPj4wXT1mLEE9dyxjPTB8YVtEPj4yXX1pZihtKXtpZighKCgwfHZsKEcpKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrfWM9MHxhW0Q+PjJdfWlmKGFbRD4+Ml09YysxLGZlW2M+PjBdPTAsMHxnQShsLHAsMCwwfGFbSz4+Ml0sZ2UpKXtj''@;'; + put 'put ''PTA7YnJlYWt9YVtEPj4yXT1hW0s+PjJdLGM9MD09KDB8ZmVbdz4+MF0pP3c6QSsyfDB9ZWxzZXtpZihiZT0wLCgwfChjPTB8YVtEPj4yXSkpPT0oMHxhW1I+PjJdKSl7aWYoISgoMHx2bChHKSk8PDI0Pj4yNCkpe2M9MDticmVha31jPTB8YVtEPj4yXX1hW0Q+PjJdPWMrMSxmZVtjPj4wXT0w''@;'; + put 'put ''LDB8KGM9MHxfMShsLE0sMHxhW0s+PjJdLDApKSYmKGZlW2MrMzI+PjBdPTEpLGM9MD09KDB8ZmVbQT4+MF0pP0E6QSsxfDAsYVtEPj4yXT1hW0s+PjJdfX1yZXR1cm4gMHxjfShsLDE0MjMyNCk6MSwwfGx9ZnVuY3Rpb24gZngobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3''@;'; + put 'put ''PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MDtlOmRve2lmKGwpe2lmKCgwfGMpPDApe2FbbCsyODA+PjJdPTEsZj0wO2JyZWFrfXN3aXRjaCgwfGFbbCs0NzY+PjJdKXtjYXNlIDM6YVtsKzI4MD4+Ml09MzMsZj0wO2JyZWFrIGU7Y2FzZSAyOmFbbCsyODA+PjJdPTM2''@;'; + put 'put ''LGY9MDticmVhayBlO2RlZmF1bHQ6aWYoZj1wPTB8YVsoRz1sKzI4fDApPj4yXSwoKGs9MHxhWyhSPWwrMzJ8MCk+PjJdKS1wfDApPj0oMHxjKSlicmVhayBlO2lmKCgwfChwPShiPXAtKE09MHxhWyhwZT1sKzI0fDApPj4yXSl8MCkrY3wwKSk8MCl7YVtsKzI4MD4+Ml09MSxmPTA7YnJlYWsg''@;'; + put 'put ''ZX1wPShjPSh3PSgwfChBPU0tKGdlPW09MHxhWyhEPWwrOHwwKT4+Ml0pfDApKT4xMDI0KT8xMDI0OkEpK3B8MDtkb3tpZigoMHxwKT4oay1nZXwwKSl7Zj0wPT0oMHwoZj1rLU18MCkpPzEwMjQ6Zjtkb3tmPDw9MX13aGlsZSgoMHxmKTwoMHxwKSYoMHxmKT4wKTtpZigoMHxmKTwxKXthW2wr''@;'; + put 'put ''MjgwPj4yXT0xLGY9MDticmVhayBlfWlmKCEocD0wfF9vWzYzJmFbbCsxMj4+Ml1dKGYpKSl7YVtsKzI4MD4+Ml09MSxmPTA7YnJlYWsgZX1pZihhW1I+PjJdPXArZixmPTB8YVtwZT4+Ml0pe2dvKDB8cCxmKygwLShLPSgwfChLPShnZT1mKS0oMHxhW0Q+PjJdKXwwKSk8MTAyND9LOjEwMjQp''@;'; + put 'put ''KXwwLCgwfGFbRz4+Ml0pLWdlK0t8MCksQ29bMTI3JmFbbCsyMD4+Ml1dKDB8YVtEPj4yXSksYVtEPj4yXT1wLGFbRz4+Ml09Zj1wKygoMHxhW0c+PjJdKS0oMHxhW3BlPj4yXSkpK0t8MCxwPXArS3wwLEs9MjI7YnJlYWt9YVtHPj4yXT1mPXArKDB8YVtHPj4yXSl8MCxhW0Q+PjJdPXAsSz0y''@;'; + put 'put ''MjticmVha313JiYobjEoMHxtLG0rKHA9QS1jfDApfDAsYytifDApLGFbRz4+Ml09Zj0oMHxhW0c+PjJdKSsocD0wLXB8MCl8MCxwPSgwfGFbcGU+PjJdKStwfDAsSz0yMil9d2hpbGUoMCk7MjI9PSgwfEspJiYoYVtwZT4+Ml09cCksYVtsKzI4OD4+Ml09MCxhW2wrMjg0Pj4yXT0wLGFbbCsy''@;'; + put 'put ''OTI+PjJdPTA7YnJlYWsgZX19ZWxzZSBmPTB9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBEbyhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2U6ZG97aWYobCl7c3dpdGNoKDB8YVsocD1sKzQ3NnwwKT4+Ml0pe2Nhc2UgMzphW2wrMjgwPj4y''@;'; + put 'put ''XT0zMyxjPTA7YnJlYWsgZTtjYXNlIDI6YVtsKzI4MD4+Ml09MzYsYz0wO2JyZWFrIGU7Y2FzZSAwOmlmKDA9PSgwfGFbbCs0NzI+PjJdKSYmKDB8Y3gobCkpPDwyND4+MjQ9PTApe2FbbCsyODA+PjJdPTEsYz0wO2JyZWFrIGV9fWlmKGFbcD4+Ml09MSxhWyhBPWwrMjkyfDApPj4yXT1iPTB8''@;'; + put 'put ''YVsobT1sKzI0fDApPj4yXSxhWyhrPWwrMjh8MCk+PjJdPXc9KDB8YVtrPj4yXSkrY3wwLGFbbCs0MD4+Ml09dyxhWyhrPWwrMzZ8MCk+PjJdPSgwfGFbaz4+Ml0pK2MsZmVbbCs0ODA+PjBdPWYsdz0wfHEwWzEyNyZhWyhjPWwrMjc2fDApPj4yXV0obCxiLHcsbSksYVtsKzI4MD4+Ml09dyww''@;'; + put 'put ''fHcpe2FbbCsyODg+PjJdPWFbbCsyODQ+PjJdLGFbYz4+Ml09NjYsYz0wO2JyZWFrfXN3aXRjaCgwfGFbcD4+Ml0pe2Nhc2UgMzpjPTI7YnJlYWs7Y2FzZSAxOmNhc2UgMDppZihmKXthW3A+PjJdPTIsYz0xO2JyZWFrIGV9Yz0xO2JyZWFrO2RlZmF1bHQ6Yz0xfVJjWzMxJmFbNDgrKGs9MHxh''@;'; + put 'put ''W2wrMTQ0Pj4yXSk+PjJdXShrLDB8YVtBPj4yXSwwfGFbbT4+Ml0sbCs0MDR8MCksYVtBPj4yXT1hW20+PjJdfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gaHgobCxjKXtsfD0wLGN8PTA7dmFyIHAsbSxmPTA7cmV0dXJuIG09YWUsYWU9YWUrMTZ8MCxwPW0sMHwoZj0w''@;'; + put 'put ''fER1KDE0MjQ0MykpJiYwPT0oMHxqaShmLDE0MjQ2MykpJiYoZj0wfGFbMTU3MTJdLGFbcD4+Ml09bCxhW3ArND4+Ml09OCxhW3ArOD4+Ml09YyxhW3ArMTI+PjJdPTQsVDAoZiwxNDI0NjUscCkpLGFlPW0sMHxjfWZ1bmN0aW9uIHpCKGwpe3JldHVybiAwfCgobHw9MCk/MHxhW2wrMjgwPj4y''@;'; + put 'put ''XTo0MSl9ZnVuY3Rpb24gV0IobCl7c3dpdGNoKDB8KGx8PTApKXtjYXNlIDQxOmw9MTQyNTAyO2JyZWFrO2Nhc2UgMTpsPTE0Mzc3NDticmVhaztjYXNlIDI6bD0xNDM3NjE7YnJlYWs7Y2FzZSAzOmw9MTQzNzQ0O2JyZWFrO2Nhc2UgNDpsPTE0MzcxMjticmVhaztjYXNlIDU6bD0xNDM2OTc7''@;'; + put 'put ''YnJlYWs7Y2FzZSA2Omw9MTQzNjc5O2JyZWFrO2Nhc2UgNzpsPTE0MzY2NDticmVhaztjYXNlIDg6bD0xNDM2NDQ7YnJlYWs7Y2FzZSA5Omw9MTQzNjE2O2JyZWFrO2Nhc2UgMTA6bD0xNDM1ODE7YnJlYWs7Y2FzZSAxMTpsPTE0MzU2NDticmVhaztjYXNlIDEyOmw9MTQzNTM3O2JyZWFrO2Nh''@;'; + put 'put ''c2UgMTM6bD0xNDM1MTc7YnJlYWs7Y2FzZSAxNDpsPTE0MzQ3OTticmVhaztjYXNlIDE1Omw9MTQzNDUyO2JyZWFrO2Nhc2UgMTY6bD0xNDM0MTA7YnJlYWs7Y2FzZSAxNzpsPTE0MzM2MzticmVhaztjYXNlIDE4Omw9MTQzMzQ2O2JyZWFrO2Nhc2UgMTk6bD0xNDMyOTU7YnJlYWs7Y2FzZSAy''@;'; + put 'put ''MDpsPTE0MzI3MjticmVhaztjYXNlIDIxOmw9MTQzMjI2O2JyZWFrO2Nhc2UgMjI6bD0xNDMxOTk7YnJlYWs7Y2FzZSAyMzpsPTE0MzE0ODticmVhaztjYXNlIDI0Omw9MTQzMTEyO2JyZWFrO2Nhc2UgMjU6bD0xNDMwNjA7YnJlYWs7Y2FzZSAyNjpsPTE0MzAxNTticmVhaztjYXNlIDI3Omw9''@;'; + put 'put ''MTQzZTM7YnJlYWs7Y2FzZSAyODpsPTE0Mjk3NDticmVhaztjYXNlIDI5Omw9MTQyOTM2O2JyZWFrO2Nhc2UgMzA6bD0xNDI5MDQ7YnJlYWs7Y2FzZSAzMTpsPTE0Mjg3MTticmVhaztjYXNlIDMyOmw9MTQyODM3O2JyZWFrO2Nhc2UgMzM6bD0xNDI4MjA7YnJlYWs7Y2FzZSAzNDpsPTE0Mjc5''@;'; + put 'put ''OTticmVhaztjYXNlIDM1Omw9MTQyNzgzO2JyZWFrO2Nhc2UgMzY6bD0xNDI3NjY7YnJlYWs7Y2FzZSAzNzpsPTE0MjcyMjticmVhaztjYXNlIDM4Omw9MTQyNjQyO2JyZWFrO2Nhc2UgMzk6bD0xNDI1ODM7YnJlYWs7Y2FzZSA0MDpsPTE0MjUxOTticmVhaztkZWZhdWx0Omw9MH1yZXR1cm4g''@;'; + put 'put ''MHxsfWZ1bmN0aW9uIFc0KGwsYyl7bHw9MCxjfD0wO2Rve2lmKCgwfGwpPj0wKXtpZigoMHxsKTwxMjgpe2ZlW2M+PjBdPWwsbD0xO2JyZWFrfWlmKCgwfGwpPDIwNDgpe2ZlW2M+PjBdPWw+Pj42fDE5MixmZVtjKzE+PjBdPTYzJmx8MTI4LGw9MjticmVha31pZigoMHxsKTw2NTUzNil7ZmVb''@;'; + put 'put ''Yz4+MF09bD4+PjEyfDIyNCxmZVtjKzE+PjBdPWw+Pj42JjYzfDEyOCxmZVtjKzI+PjBdPTYzJmx8MTI4LGw9MzticmVha30oMHxsKTwxMTE0MTEyPyhmZVtjPj4wXT1sPj4+MTh8MjQwLGZlW2MrMT4+MF09bD4+PjEyJjYzfDEyOCxmZVtjKzI+PjBdPWw+Pj42JjYzfDEyOCxmZVtjKzM+PjBd''@;'; + put 'put ''PTYzJmx8MTI4LGw9NCk6bD0wfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gVUIobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTA7Zm9yKG09MDs7KXtpZigzNjQ9PSgwfG0pKXttPTA7YnJlYWt9''@;'; + put 'put ''ZmVbbCttPj4wXT0wfGZlWzU2NTc2K20+PjBdLG09bSsxfDB9ZTpmb3IoOzspe2lmKCgwfG0pPj0xMjgpe0E9NTticmVha31zd2l0Y2goMHxmZVs1NjY0OCttPj4wXSl7Y2FzZSAwOmNhc2UgMjg6YnJlYWs7ZGVmYXVsdDppZigoMHxhW2MrKG08PDIpPj4yXSkhPSgwfG0pKXtsPTA7YnJlYWsg''@;'; + put 'put ''ZX19bT1tKzF8MH1lOmRve2lmKDU9PSgwfEEpKXtmb3IoRz1sKzcyfDAsaz1sKzM3MnwwLE09bCs4ODR8MCxEPTA9PSgwfGYpLGI9MDshKCgwfGIpPj0yNTYpOyl7Uj0wfGFbYysoYjw8Mik+PjJdO2Rve2lmKC0xPT0oMHxSKSlmZVtHK2I+PjBdPTEscnRbaysoYjw8MSk+PjFdPS0xLGZlW00r''@;'; + put 'put ''KGI8PDIpPj4wXT0xLGZlW00rKGI8PDIpKzE+PjBdPTA7ZWxzZXtpZigoMHxSKTwwKXtpZihEfCgwfFIpPC00KXtsPTA7YnJlYWsgZX1mZVtHK2I+PjBdPTMtUixmZVtNKyhiPDwyKT4+MF09MCxydFtrKyhiPDwxKT4+MV09MDticmVha31pZigoMHxSKTwxMjgpe3N3aXRjaCgobT0wfGZlWzU2''@;'; + put 'put ''NjQ4K1I+PjBdKTw8MjQ+PjI0KXtjYXNlIDA6Y2FzZSAyODpicmVhaztkZWZhdWx0OmlmKCgwfFIpIT0oMHxiKSl7bD0wO2JyZWFrIGV9fWZlW0crYj4+MF09bSxmZVtNKyhiPDwyKT4+MF09MSxmZVtNKyhiPDwyKSsxPj4wXT1SLHJ0W2srKGI8PDEpPj4xXT0wPT0oMHxSKT8tMTo2NTUzNSZS''@;'; + put 'put ''O2JyZWFrfWlmKCgwfEJkKFIpKTwwKXtmZVtHK2I+PjBdPTAscnRbaysoYjw8MSk+PjFdPS0xLGZlW00rKGI8PDIpPj4wXT0xLGZlW00rKGI8PDIpKzE+PjBdPTA7YnJlYWt9aWYoKDB8Uik+NjU1MzUpe2w9MDticmVhayBlfWZlW0crYj4+MF09YVs1Njk0MCsoKEp0WzE0Mzc4OCsobT1SPj4+''@;'; + put 'put ''OCk+PjBdPDwzfChBPVI+Pj41JjcpKTw8Mik+PjJdJih3PTE8PCgzMSZSKSk/MjI6YVs1Njk0MCsoKEp0WzE0NDA0NCttPj4wXTw8M3xBKTw8Mik+PjJdJnd8MD8yNjoyOCxmZVtNKyhiPDwyKT4+MF09MHxXNChSLE0rKGI8PDIpKzF8MCkscnRbaysoYjw8MSk+PjFdPVJ9fXdoaWxlKDApO2I9''@;'; + put 'put ''YisxfDB9YVtsKzM2OD4+Ml09cCxhW2wrMzY0Pj4yXT1mLER8fChhW2wrMzI4Pj4yXT0xMDgsYVtsKzMzMj4+Ml09MTA4LGFbbCszMzY+PjJdPTEwOCxhW2wrMzQwPj4yXT0xMDksYVtsKzM0ND4+Ml09MTA5LGFbbCszNDg+PjJdPTEwOSxhW2wrMzUyPj4yXT0xMTAsYVtsKzM1Nj4+Ml09MTEw''@;'; + put 'put ''LGFbbCszNjA+PjJdPTExMCksYVtsKzU2Pj4yXT0xMyxhW2wrNjA+PjJdPTE0fX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIEJkKGwpe3N3aXRjaCgobHw9MCk+Pjh8MCl7Y2FzZSAyMjM6Y2FzZSAyMjI6Y2FzZSAyMjE6Y2FzZSAyMjA6Y2FzZSAyMTk6Y2FzZSAyMTg6Y2FzZSAyMTc6''@;'; + put 'put ''Y2FzZSAyMTY6bD0tMTticmVhaztjYXNlIDA6MHxmZVs1NjY0OCtsPj4wXXx8KGw9LTEpO2JyZWFrO2Nhc2UgMjU1OjY1NTM1IT0oMXxsKXx8KGw9LTEpfXJldHVybiAwfGx9ZnVuY3Rpb24gemkobCxjLGYscCxtLEEsdyl7bHw9MCxjfD0wLGZ8PTAsbXw9MCxBfD0wLHd8PTAsKHB8PTApP2Z1''@;'; + put 'put ''bmN0aW9uIG01KGwsYyxmLHAsbSxBKXtjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTA7dmFyIGssTSxELFIsdz0wLGI9MDtpZihSPWFlLGFlPWFlKzE2fDAsRD1SLDEhPSgwfGFbMzIrKGx8PTApPj4yXSkmJlByKDk0OTE5LDk0OTQzLDExNjMsOTUzMzUpLDEhPSgwfGFbbCsxNj4+Ml0pJiZQcig5''@;'; + put 'put ''NTM2NCw5NDk0MywxMTY0LDk1MzM1KSxrPTB8YVtsPj4yXSxNPTB8YVtsKzQ+PjJdLGI9MCE9KDB8KHc9MHxhW2Y+PjJdKSksbSl7Zm9yKGJ8fCh3PTB8UW4oMHxBcihwPDwzLE0pKSksYj0wOyEoKDB8Yik+PSgwfHApKTspYVtEPj4yXT13KygoMHxBcihiLE0pKTw8MyksS2YobCxjKygoMHxB''@;'; + put 'put ''cihiLGspKTw8Myl8MCxELG0pLGI9YisxfDA7QXx8UGQodyxwLE0pfWVsc2V7Zm9yKGJ8fCh3PTB8UW4oMHxBcihwPDwzLGspKSksYj0wOyEoKDB8Yik+PSgwfHApKTspYVtEPj4yXT13KygoMHxBcihiLGspKTw8MyksS2YobCxjKygoMHxBcihiLE0pKTw8Myl8MCxELDApLGI9YisxfDA7QXx8''@;'; + put 'put ''UGQodyxwLGspfWFbZj4+Ml09dyxhZT1SfShsLGYsbSx3LGMsQSk6ZnVuY3Rpb24gZzUobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgSyxwZSxnZSxiZSx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsT2U9MCxMZT0wO2lmKDEhPSgwfGFbMzIrKGx8PTApPj4y''@;'; + put 'put ''XSkmJlByKDk0OTE5LDk0OTQzLDExMjEsOTU0ODMpLDEhPSgwfGFbbCsxNj4+Ml0pJiZQcig5NTM2NCw5NDk0MywxMTIyLDk1NDgzKSxLPTB8YVtsKzI4Pj4yXSxwZT0wfGFbbCsyMD4+Ml0sZ2U9MHxhW2wrMjQ+PjJdLGJlPTB8YVtsPj4yXSxHPTB8YVtsKzQ+PjJdLHc9MCE9KDB8KGw9MHxh''@;'; + put 'put ''W2Y+PjJdKSksbSl7Zm9yKHd8fChsPTB8UW4oMHxBcihwPDwzLEcpKSksbT0wfEFyKEcscCksdz0wOzspe2lmKCgwfHcpPj0oMHxtKSl7dz0wO2JyZWFrfV9bbCsodzw8Myk+PjNdPTAsdz13KzF8MH1lOmZvcig7ISgoMHx3KT49KDB8YmUpKTspZm9yKE09dysxfDAsRD0wfGFbcGUrKE08PDIp''@;'; + put 'put ''Pj4yXSxSPTB8QXIodyxwKSx3PTB8YVtwZSsodzw8Mik+PjJdOzspe2lmKCgwfHcpPj0oMHxEKSl7dz1NO2NvbnRpbnVlIGV9Zm9yKGI9Sysodzw8Myl8MCxrPWdlKyh3PDwyKXwwLG09MDshKCgwfG0pPj0oMHxwKSk7KUxlPWwrKCgwfEFyKDB8YVtrPj4yXSxwKSkrbTw8Myl8MCxfW0xlPj4z''@;'; + put 'put ''XT0rX1tMZT4+M10rICtfW2MrKG0rUjw8Myk+PjNdKitfW2I+PjNdLG09bSsxfDA7dz13KzF8MH1BJiZQZChsLEcscCl9ZWxzZXt3fHwobD0wfFFuKDB8QXIocDw8MyxiZSkpKSxtPTA7ZTpmb3IoOyEoKDB8bSk+PSgwfGJlKSk7KXtmb3IoUj0wfEFyKG0scCksdz0wOyEoKDB8dyk+PSgwfHAp''@;'; + put 'put ''KTspX1tsKyh3K1I8PDMpPj4zXT0wLHc9dysxfDA7Zm9yKEQ9MHxhW3BlKygoTT1tKzF8MCk8PDIpPj4yXSx3PTB8YVtwZSsobTw8Mik+PjJdOzspe2lmKCgwfHcpPj0oMHxEKSl7bT1NO2NvbnRpbnVlIGV9Zm9yKGI9Sysodzw8Myl8MCxrPWdlKyh3PDwyKXwwLG09MDshKCgwfG0pPj0oMHxw''@;'; + put 'put ''KSk7KU9lPStfW2MrKCgwfEFyKDB8YVtrPj4yXSxwKSkrbTw8Myk+PjNdKitfW2I+PjNdLF9bKEc9bCsobStSPDwzKXwwKT4+M109K19bRz4+M10rT2UsbT1tKzF8MDt3PXcrMXwwfX1BJiZQZChsLGJlLHApfWFbZj4+Ml09bH0obCxmLG0sdyxjLEEpfWZ1bmN0aW9uIEtmKGwsYyxmLHApe2N8''@;'; + put 'put ''PTAsZnw9MCxwfD0wO3ZhciBELFIsRyxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxLPTA7c3dpdGNoKDEhPSgwfGFbMzIrKGx8PTApPj4yXSkmJlByKDk0OTE5LDk0OTQzLDEyMjIsOTUzOTIpLDB8KHc9MHxhW2wrMTY+PjJdKSl7Y2FzZSA0OmNhc2UgMTpicmVhaztkZWZhdWx0OlByKDk1NDIx''@;'; + put 'put ''LDk0OTQzLDEyMjMsOTUzOTIpfVI9MHxhW2wrMjA+PjJdLEQ9MHxhW2wrMjQ+PjJdLEc9MHxhW2w+PjJdLGs9MHxhW2wrND4+Ml0sYj0wfGFbZj4+Ml07ZTpkb3tzd2l0Y2goMHx3KXtjYXNlIDE6aWYoTT0wfGFbbCsyOD4+Ml0sbD0wIT0oMHxwKSxtPTAhPSgwfGIpLGMpe2lmKCFsKXttPW0/''@;'; + put 'put ''YjowfFFuKEc8PDMpLGw9MDt0OmZvcig7Oyl7aWYoKDB8bCk+PSgwfEcpKWJyZWFrIGU7Zm9yKF9bKHc9bSsobDw8Myl8MCk+PjNdPTAscD0wfGFbUisoKGI9bCsxfDApPDwyKT4+Ml0sbD0wfGFbUisobDw8Mik+PjJdLEE9MDs7KXtpZigoMHxsKT49KDB8cCkpe2w9Yjtjb250aW51ZSB0fV9b''@;'; + put 'put ''dz4+M109Sz1BKyArX1tjKyhhW0QrKGw8PDIpPj4yXTw8Myk+PjNdKitfW00rKGw8PDMpPj4zXSxsPWwrMXwwLEE9S319fWZvcihtPW0/YjowfFFuKGs8PDMpLGw9MDs7KXtpZigoMHxsKT49KDB8aykpe2w9MDticmVha31fW20rKGw8PDMpPj4zXT0wLGw9bCsxfDB9dDpmb3IoOzspe2lmKCgw''@;'; + put 'put ''fGwpPj0oMHxHKSlicmVhayBlO2ZvcihiPTB8YVtSKygodz1sKzF8MCk8PDIpPj4yXSxwPWMrKGw8PDMpfDAsbD0wfGFbUisobDw8Mik+PjJdOzspe2lmKCgwfGwpPj0oMHxiKSl7bD13O2NvbnRpbnVlIHR9X1soaz1tKyhhW0QrKGw8PDIpPj4yXTw8Myl8MCk+PjNdPStfW2s+PjNdKyArX1tw''@;'; + put 'put ''Pj4zXSorX1tNKyhsPDwzKT4+M10sbD1sKzF8MH19fWVsc2V7aWYoIWwpe209bT9iOjB8UW4oRzw8MyksbD0wO3Q6Zm9yKDs7KXtpZigoMHxsKT49KDB8RykpYnJlYWsgZTtmb3IoX1sodz1tKyhsPDwzKXwwKT4+M109MCxwPTB8YVtSKygoYj1sKzF8MCk8PDIpPj4yXSxsPTB8YVtSKyhsPDwy''@;'; + put 'put ''KT4+Ml0sQT0wOzspe2lmKCgwfGwpPj0oMHxwKSl7bD1iO2NvbnRpbnVlIHR9X1t3Pj4zXT1LPUErICtfW00rKGw8PDMpPj4zXSxsPWwrMXwwLEE9S319fWZvcihtfHwoYj0wfFFuKGs8PDMpKSxsPTA7Oyl7aWYoKDB8bCk+PSgwfGspKXtsPTA7YnJlYWt9X1tiKyhsPDwzKT4+M109MCxsPWwr''@;'; + put 'put ''MXwwfXQ6Zm9yKDs7KXtpZigoMHxsKT49KDB8Rykpe209YjticmVhayBlfWZvcih3PTB8YVtSKygobT1sKzF8MCk8PDIpPj4yXSxsPTB8YVtSKyhsPDwyKT4+Ml07Oyl7aWYoKDB8bCk+PSgwfHcpKXtsPW07Y29udGludWUgdH1fWyhjPWIrKGFbRCsobDw8Mik+PjJdPDwzKXwwKT4+M109K19b''@;'; + put 'put ''Yz4+M10rICtfW00rKGw8PDMpPj4zXSxsPWwrMXwwfX19Y2FzZSA0OmlmKE09MHxhW2wrMjg+PjJdLGw9MCE9KDB8cCksbT0wIT0oMHxiKSxjKXtpZighbCl7bT1tP2I6MHxRbihHPDwzKSxsPTA7dDpmb3IoOzspe2lmKCgwfGwpPj0oMHxHKSlicmVhayBlO2ZvcihfWyh3PW0rKGw8PDMpfDAp''@;'; + put 'put ''Pj4zXT0wLHA9MHxhW1IrKChiPWwrMXwwKTw8Mik+PjJdLGw9MHxhW1IrKGw8PDIpPj4yXSxBPTA7Oyl7aWYoKDB8bCk+PSgwfHApKXtsPWI7Y29udGludWUgdH1fW3c+PjNdPUs9QSsgK19bYysoYVtEKyhsPDwyKT4+Ml08PDMpPj4zXSorKDB8YVtNKyhsPDwyKT4+Ml0pLGw9bCsxfDAsQT1L''@;'; + put 'put ''fX19Zm9yKG09bT9iOjB8UW4oazw8MyksbD0wOzspe2lmKCgwfGwpPj0oMHxrKSl7bD0wO2JyZWFrfV9bbSsobDw8Myk+PjNdPTAsbD1sKzF8MH10OmZvcig7Oyl7aWYoKDB8bCk+PSgwfEcpKWJyZWFrIGU7Zm9yKGI9MHxhW1IrKCh3PWwrMXwwKTw8Mik+PjJdLHA9YysobDw8Myl8MCxsPTB8''@;'; + put 'put ''YVtSKyhsPDwyKT4+Ml07Oyl7aWYoKDB8bCk+PSgwfGIpKXtsPXc7Y29udGludWUgdH1fWyhrPW0rKGFbRCsobDw8Mik+PjJdPDwzKXwwKT4+M109K19baz4+M10rICtfW3A+PjNdKisoMHxhW00rKGw8PDIpPj4yXSksbD1sKzF8MH19fWVsc2V7aWYoIWwpe209bT9iOjB8UW4oRzw8MyksbD0w''@;'; + put 'put ''O3Q6Zm9yKDs7KXtpZigoMHxsKT49KDB8RykpYnJlYWsgZTtmb3IoX1sodz1tKyhsPDwzKXwwKT4+M109MCxwPTB8YVtSKygoYj1sKzF8MCk8PDIpPj4yXSxsPTB8YVtSKyhsPDwyKT4+Ml0sQT0wOzspe2lmKCgwfGwpPj0oMHxwKSl7bD1iO2NvbnRpbnVlIHR9X1t3Pj4zXT1LPUErICsoMHxh''@;'; + put 'put ''W00rKGw8PDIpPj4yXSksbD1sKzF8MCxBPUt9fX1mb3IobXx8KGI9MHxRbihrPDwzKSksbD0wOzspe2lmKCgwfGwpPj0oMHxrKSl7bD0wO2JyZWFrfV9bYisobDw8Myk+PjNdPTAsbD1sKzF8MH10OmZvcig7Oyl7aWYoKDB8bCk+PSgwfEcpKXttPWI7YnJlYWsgZX1mb3Iodz0wfGFbUisoKG09''@;'; + put 'put ''bCsxfDApPDwyKT4+Ml0sbD0wfGFbUisobDw8Mik+PjJdOzspe2lmKCgwfGwpPj0oMHx3KSl7bD1tO2NvbnRpbnVlIHR9X1soYz1iKyhhW0QrKGw8PDIpPj4yXTw8Myl8MCk+PjNdPStfW2M+PjNdKyArKDB8YVtNKyhsPDwyKT4+Ml0pLGw9bCsxfDB9fX1kZWZhdWx0OlByKDEzODM5NCw5NDk0''@;'; + put 'put ''MywxMzE1LDk1MzkyKX19d2hpbGUoMCk7YVtmPj4yXT1tfWZ1bmN0aW9uIFBkKGwsYyxmKXtsfD0wO3ZhciBBLHA9MCxtPTAsdz0wO2ZvcihnbygwfChBPTB8UW4ocD0wfEFyKChjfD0wKTw8MyxmfD0wKSkpLDB8bCwwfHApLHA9MDshKCgwfHApPj0oMHxjKSk7KXtmb3Iodz0wfEFyKHAsZiks''@;'; + put 'put ''bT0wOyEoKDB8bSk+PSgwfGYpKTspX1tsKygoMHxBcihtLGMpKStwPDwzKT4+M109K19bQSsobSt3PDwzKT4+M10sbT1tKzF8MDtwPXArMXwwfUZ0KEEpfWZ1bmN0aW9uIFQ2KGwsYyl7dmFyIFZlLHFlLG50LFdlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAs''@;'; + put 'put ''Sz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsb3Q9MDtpZihWZT0wfGFbMjArKGx8PTApPj4yXSxxZT0wfGFbbCsyND4+Ml0sbnQ9MHxhWzIwKyhjfD0wKT4+Ml0sV2U9MHxhW2MrMjQ+PjJdLDE9PSgwfChIZT0wfGFbbCszMj4+Ml0pKSYmKDB8SGUpPT0oMHxhW2MrMzI+''@;'; + put 'put ''PjJdKXx8UHIoOTUwMDUsOTQ5NDMsMTQwOCw5NTUxMiksSGU9MHxhW2w+PjJdLCgwfGFbbCs0Pj4yXSk9PSgwfGFbYz4+Ml0pJiYoMHwoUj0wfGFbbCsxNj4+Ml0pKT09KDB8YVtjKzE2Pj4yXSkmJjAhPSgwfChvdD0wfFFuKGFbKEQ9Yys0fDApPj4yXTw8MikpKSl7Zm9yKGY9MDs7KXtpZigo''@;'; + put 'put ''MHxmKT49KDB8YVtEPj4yXSkpe3A9MCxmPTA7YnJlYWt9YVtvdCsoZjw8Mik+PjJdPS0xLGY9ZisxfDB9ZTpmb3IoOyEoKDB8Zik+PSgwfEhlKSk7KWZvcihiPWYrMXwwLGs9VmUrKGI8PDIpfDAsTT0tMi1mfDAsdz0wfGFbVmUrKGY8PDIpPj4yXTs7KXtpZigoMHx3KT49KDB8YVtrPj4yXSkp''@;'; + put 'put ''e2Y9Yjtjb250aW51ZSBlfWZvcihBPW50KygxKyhtPTB8YVtxZSsodzw8Mik+PjJdKTw8Mil8MCxtPTB8YVtudCsobTw8Mik+PjJdOyEoKDB8bSk+PSgwfGFbQT4+Ml0pKTspKDB8YVsoZj1vdCsoYVtXZSsobTw8Mik+PjJdPDwyKXwwKT4+Ml0pIT0oMHxNKSYmKGFbZj4+Ml09TSxwPXArMXww''@;'; + put 'put ''KSxtPW0rMXwwO3c9dysxfDB9Zj0wfHVjKEhlLDB8YVtEPj4yXSxwLFIsMSk7ZTpkb3tpZihmKXtPZT0wfGFbZisyMD4+Ml0sTGU9MHxhW2YrMjQ+PjJdO3Q6ZG97c3dpdGNoKDB8Uil7Y2FzZSAxOmdlPTB8YVtsKzI4Pj4yXSxSPTB8YVtjKzI4Pj4yXSxjPTB8YVtmKzI4Pj4yXSxhW09lPj4y''@;'; + put 'put ''XT0wLHA9MCxtPTA7bjpmb3IoOzspe2lmKCgwfHApPj0oMHxIZSkpe1JlPW07YnJlYWsgdH1mb3IoSz1WZSsoKEc9cCsxfDApPDwyKXwwLHBlPU9lKyhwPDwyKXwwLGw9MHxhW1ZlKyhwPDwyKT4+Ml07ISgoMHxsKT49KDB8YVtLPj4yXSkpOyl7Zm9yKE09bnQrKDErKGs9MHxhW3FlKyhsPDwy''@;'; + put 'put ''KT4+Ml0pPDwyKXwwLEQ9Z2UrKGw8PDMpfDAsaz0wfGFbbnQrKGs8PDIpPj4yXTshKCgwfGspPj0oMHxhW00+PjJdKSk7KXtpZigoMHwoYj0wfGFbKHc9b3QrKChBPTB8YVsocD1XZSsoazw8Mil8MCk+PjJdKTw8Mil8MCk+PjJdKSk8KDB8YVtwZT4+Ml0pKWFbdz4+Ml09bSxhW0xlKyhtPDwy''@;'; + put 'put ''KT4+Ml09YVtwPj4yXSxfW2MrKG08PDMpPj4zXT0rX1tSKyhrPDwzKT4+M10qK19bRD4+M10sbT1tKzF8MDtlbHNle2lmKCgwfGFbTGUrKGI8PDIpPj4yXSkhPSgwfEEpKWJyZWFrIG47X1soYmU9YysoYjw8Myl8MCk+PjNdPStfW2JlPj4zXSsgK19bUisoazw8Myk+PjNdKitfW0Q+PjNdfWs9''@;'; + put 'put ''aysxfDB9bD1sKzF8MH1hW09lKyhHPDwyKT4+Ml09bSxwPUd9UHIoOTU1MzQsOTQ5NDMsMTQ2OCw5NTUxMik7YnJlYWs7Y2FzZSAyOmJlPTB8YVtsKzI4Pj4yXSxjPTB8YVtjKzI4Pj4yXSxHPTB8YVtmKzI4Pj4yXSxhW09lPj4yXT0wLHA9MCxtPTA7bjpmb3IoOzspe2lmKCgwfHApPj0oMHxI''@;'; + put 'put ''ZSkpe1JlPW07YnJlYWsgdH1mb3IocGU9VmUrKChLPXArMXwwKTw8Mil8MCxnZT1PZSsocDw8Mil8MCxSPTB8YVtWZSsocDw8Mik+PjJdOyEoKDB8Uik+PSgwfGFbcGU+PjJdKSk7KXtmb3IoTT1udCsoMSsoaz0wfGFbcWUrKFI8PDIpPj4yXSk8PDIpfDAsRD1iZSsoKGw9Ujw8MSk8PDMpfDAs''@;'; + put 'put ''bD1iZSsoKDF8bCk8PDMpfDAsaz0wfGFbbnQrKGs8PDIpPj4yXTshKCgwfGspPj0oMHxhW00+PjJdKSk7KXtpZigoMHwoYj0wfGFbKHc9b3QrKChBPTB8YVsocD1XZSsoazw8Mil8MCk+PjJdKTw8Mil8MCk+PjJdKSk8KDB8YVtnZT4+Ml0pKWFbdz4+Ml09bSxhW0xlKyhtPDwyKT4+Ml09YVtw''@;'; + put 'put ''Pj4yXSxfW0crKChiPW08PDEpPDwzKT4+M109K19bKEE9YysoKHc9azw8MSk8PDMpfDApPj4zXSorX1tEPj4zXS0rX1sodz1jKygoMXx3KTw8Myl8MCk+PjNdKitfW2w+PjNdLF9bRysoKDF8Yik8PDMpPj4zXT0rX1tBPj4zXSorX1tsPj4zXSsgK19bdz4+M10qK19bRD4+M10sbT1tKzF8MDtl''@;'; + put 'put ''bHNle2lmKCgwfGFbTGUrKGI8PDIpPj4yXSkhPSgwfEEpKWJyZWFrIG47X1socD1HKygoYjw8PTEpPDwzKXwwKT4+M109K19bcD4+M10rICtfWyhBPWMrKCh3PWs8PDEpPDwzKXwwKT4+M10qK19bRD4+M10tK19bKHc9YysoKDF8dyk8PDMpfDApPj4zXSorX1tsPj4zXSxfWyhiPUcrKCgxfGIp''@;'; + put 'put ''PDwzKXwwKT4+M109K19bQT4+M10qK19bbD4+M10rICtfW3c+PjNdKitfW0Q+PjNdKyArX1tiPj4zXX1rPWsrMXwwfVI9UisxfDB9YVtPZSsoSzw8Mik+PjJdPW0scD1LfVByKDk1NTM0LDk0OTQzLDE0OTcsOTU1MTIpO2JyZWFrO2Nhc2UgNDpnZT0wfGFbbCsyOD4+Ml0sUj0wfGFbYysyOD4+''@;'; + put 'put ''Ml0sYz0wfGFbZisyOD4+Ml0sYVtPZT4+Ml09MCxwPTAsbT0wO246Zm9yKDs7KXtpZigoMHxtKT49KDB8SGUpKXtSZT1wO2JyZWFrIHR9Zm9yKEs9VmUrKChHPW0rMXwwKTw8Mil8MCxwZT1PZSsobTw8Mil8MCxNPTB8YVtWZSsobTw8Mik+PjJdOyEoKDB8TSk+PSgwfGFbSz4+Ml0pKTspe2Zv''@;'; + put 'put ''cihEPW50KygxKyhrPTB8YVtxZSsoTTw8Mik+PjJdKTw8Mil8MCxsPWdlKyhNPDwyKXwwLGs9MHxhW250KyhrPDwyKT4+Ml07ISgoMHxrKT49KDB8YVtEPj4yXSkpOyl7aWYoKDB8KGI9MHxhWyh3PW90KygoQT0wfGFbKG09V2UrKGs8PDIpfDApPj4yXSk8PDIpfDApPj4yXSkpPCgwfGFbcGU+''@;'; + put 'put ''PjJdKSlhW3c+PjJdPXAsYVtMZSsocDw8Mik+PjJdPWFbbT4+Ml0sYVtjKyhwPDwyKT4+Ml09MHxBcigwfGFbUisoazw8Mik+PjJdLDB8YVtsPj4yXSkscD1wKzF8MDtlbHNle2lmKCgwfGFbTGUrKGI8PDIpPj4yXSkhPSgwfEEpKWJyZWFrIG47dz0wfEFyKDB8YVtSKyhrPDwyKT4+Ml0sMHxh''@;'; + put 'put ''W2w+PjJdKSxhWyhiZT1jKyhiPDwyKXwwKT4+Ml09KDB8YVtiZT4+Ml0pK3d9az1rKzF8MH1NPU0rMXwwfWFbT2UrKEc8PDIpPj4yXT1wLG09R31Qcig5NTUzNCw5NDk0MywxNTIzLDk1NTEyKTticmVhaztjYXNlIDg6YVtPZT4+Ml09MCxwPTAsbT0wO246Zm9yKDs7KXtpZigoMHxtKT49KDB8''@;'; + put 'put ''SGUpKXtSZT1wO2JyZWFrIHR9Zm9yKFI9VmUrKChsPW0rMXwwKTw8Mil8MCxjPU9lKyhtPDwyKXwwLE09MHxhW1ZlKyhtPDwyKT4+Ml07ISgoMHxNKT49KDB8YVtSPj4yXSkpOyl7Zm9yKEQ9bnQrKDErKGs9MHxhW3FlKyhNPDwyKT4+Ml0pPDwyKXwwLGs9MHxhW250KyhrPDwyKT4+Ml07ISgo''@;'; + put 'put ''MHxrKT49KDB8YVtEPj4yXSkpOyl7aWYoKDB8KGI9MHxhWyh3PW90KygoQT0wfGFbKG09V2UrKGs8PDIpfDApPj4yXSk8PDIpfDApPj4yXSkpPj0oMHxhW2M+PjJdKSl7aWYoKDB8YVtMZSsoYjw8Mik+PjJdKSE9KDB8QSkpYnJlYWsgbn1lbHNlIGFbdz4+Ml09cCxhW0xlKyhwPDwyKT4+Ml09''@;'; + put 'put ''YVttPj4yXSxwPXArMXwwO2s9aysxfDB9TT1NKzF8MH1hW09lKyhsPDwyKT4+Ml09cCxtPWx9UHIoOTU1MzQsOTQ5NDMsMTU0Myw5NTUxMik7YnJlYWs7ZGVmYXVsdDpSYShmKSxmPTA7YnJlYWsgZX19d2hpbGUoMCk7YVtmKzg+PjJdPVJlfWVsc2UgZj0wfXdoaWxlKDApO0Z0KG90KX1lbHNl''@;'; + put 'put ''IGY9MDtyZXR1cm4gMHxmfWZ1bmN0aW9uIFk0KGwsYyxmKXt2YXIgb3QsU3Qsa3QsRXQsWnQsY3QscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsbHQ9MCxidD0w''@;'; + put 'put ''LGFuPTAsU249MCxIbj0wLHVyPTA7aWYoRXQ9MHxhWzIwKyhsfD0wKT4+Ml0sWnQ9MHxhW2wrMjQ+PjJdLGN0PTB8YVsyMCsoY3w9MCk+PjJdLG90PTB8YVtjKzI0Pj4yXSxTdD0wfGFbMjArKGZ8PTApPj4yXSxrdD0wfGFbZisyND4+Ml0sMT09KDB8KGx0PTB8YVtsKzMyPj4yXSkpJiYoMHxs''@;'; + put 'put ''dCk9PSgwfGFbYyszMj4+Ml0pfHxQcig5NTAwNSw5NDk0MywxNTc0LDk1NTU5KSxsdD0wfGFbbD4+Ml0sKDB8YVtsKzQ+PjJdKT09KDB8YVtjPj4yXSkmJigwfGFbYys0Pj4yXSk9PSgwfGFbZj4+Ml0pJiYoMHwocGU9MHxhW2wrMTY+PjJdKSk9PSgwfGFbYysxNj4+Ml0pJiYoMHxwZSk9PSgw''@;'; + put 'put ''fGFbZisxNj4+Ml0pJiYwIT0oMHwoYnQ9MHxRbihhWyhLPWYrNHwwKT4+Ml08PDIpKSkpe2ZvcihwPTA7Oyl7aWYoKDB8cCk+PSgwfGFbSz4+Ml0pKXttPTAscD0wO2JyZWFrfWFbYnQrKHA8PDIpPj4yXT0tMSxwPXArMXwwfWU6Zm9yKDshKCgwfHApPj0oMHxsdCkpOylmb3IoRD1wKzF8MCxS''@;'; + put 'put ''PUV0KyhEPDwyKXwwLEc9LTItcHwwLE09MHxhW0V0KyhwPDwyKT4+Ml07Oyl7aWYoKDB8TSk+PSgwfGFbUj4+Ml0pKXtwPUQ7Y29udGludWUgZX1mb3Ioaz1jdCsoMSsoYj0wfGFbWnQrKE08PDIpPj4yXSk8PDIpfDAsYj0wfGFbY3QrKGI8PDIpPj4yXTshKCgwfGIpPj0oMHxhW2s+PjJdKSk7''@;'; + put 'put ''KXtmb3Iodz1TdCsoMSsoQT0wfGFbb3QrKGI8PDIpPj4yXSk8PDIpfDAsQT0wfGFbU3QrKEE8PDIpPj4yXTshKCgwfEEpPj0oMHxhW3c+PjJdKSk7KSgwfGFbKHA9YnQrKGFba3QrKEE8PDIpPj4yXTw8Mil8MCk+PjJdKSE9KDB8RykmJihhW3A+PjJdPUcsbT1tKzF8MCksQT1BKzF8MDtiPWIr''@;'; + put 'put ''MXwwfU09TSsxfDB9cD0wfHVjKGx0LDB8YVtLPj4yXSxtLHBlLDEpO2U6ZG97aWYocCl7cWU9MHxhW3ArMjA+PjJdLG50PTB8YVtwKzI0Pj4yXTt0OmRve3N3aXRjaCgwfHBlKXtjYXNlIDE6UmU9MHxhW2wrMjg+PjJdLExlPTB8YVtjKzI4Pj4yXSxmPTB8YVtmKzI4Pj4yXSxnZT0wfGFbcCsy''@;'; + put 'put ''OD4+Ml0sYVtxZT4+Ml09MCxtPTAsQT0wO246Zm9yKDs7KXtpZigoMHxtKT49KDB8bHQpKXtXZT1BO2JyZWFrIHR9Zm9yKE9lPUV0KygoYmU9bSsxfDApPDwyKXwwLGM9cWUrKG08PDIpfDAscGU9MHxhW0V0KyhtPDwyKT4+Ml07ISgoMHxwZSk+PSgwfGFbT2U+PjJdKSk7KXtmb3IoSz1jdCso''@;'; + put 'put ''MSsoRz0wfGFbWnQrKHBlPDwyKT4+Ml0pPDwyKXwwLGw9UmUrKHBlPDwzKXwwLEc9MHxhW2N0KyhHPDwyKT4+Ml07ISgoMHxHKT49KDB8YVtLPj4yXSkpOyl7Zm9yKEQ9U3QrKDErKE09MHxhW290KyhHPDwyKT4+Ml0pPDwyKXwwLFI9TGUrKEc8PDMpfDAsTT0wfGFbU3QrKE08PDIpPj4yXTsh''@;'; + put 'put ''KCgwfE0pPj0oMHxhW0Q+PjJdKSk7KXtpZigoMHwoaz0wfGFbKGI9YnQrKCh3PTB8YVsobT1rdCsoTTw8Mil8MCk+PjJdKTw8Mil8MCk+PjJdKSk8KDB8YVtjPj4yXSkpYVtiPj4yXT1BLGFbbnQrKEE8PDIpPj4yXT1hW20+PjJdLF9bZ2UrKEE8PDMpPj4zXT0rX1tSPj4zXSorX1tsPj4zXSor''@;'; + put 'put ''X1tmKyhNPDwzKT4+M10sQT1BKzF8MDtlbHNle2lmKCgwfGFbbnQrKGs8PDIpPj4yXSkhPSgwfHcpKWJyZWFrIG47X1soVmU9Z2UrKGs8PDMpfDApPj4zXT0rX1tWZT4+M10rICtfW1I+PjNdKitfW2w+PjNdKitfW2YrKE08PDMpPj4zXX1NPU0rMXwwfUc9RysxfDB9cGU9cGUrMXwwfWFbcWUr''@;'; + put 'put ''KGJlPDwyKT4+Ml09QSxtPWJlfVByKDk1NTgyLDk0OTQzLDE2NDIsOTU1NTkpO2JyZWFrO2Nhc2UgMjpWZT0wfGFbbCsyOD4+Ml0sSGU9MHxhW2MrMjg+PjJdLGdlPTB8YVtmKzI4Pj4yXSxiZT0wfGFbcCsyOD4+Ml0sYVtxZT4+Ml09MCxtPTAsQT0wO246Zm9yKDs7KXtpZigoMHxBKT49KDB8''@;'; + put 'put ''bHQpKXtXZT1tO2JyZWFrIHR9Zm9yKExlPUV0KygoT2U9QSsxfDApPDwyKXwwLFJlPXFlKyhBPDwyKXwwLGw9MHxhW0V0KyhBPDwyKT4+Ml07ISgoMHxsKT49KDB8YVtMZT4+Ml0pKTspe2ZvcihwZT1jdCsoMSsoRD0wfGFbWnQrKGw8PDIpPj4yXSk8PDIpfDAsYz1WZSsoKGY9bDw8MSk8PDMp''@;'; + put 'put ''fDAsZj1WZSsoKDF8Zik8PDMpfDAsRD0wfGFbY3QrKEQ8PDIpPj4yXTshKCgwfEQpPj0oMHxhW3BlPj4yXSkpOyl7Zm9yKFI9U3QrKDErKE09MHxhW290KyhEPDwyKT4+Ml0pPDwyKXwwLEc9SGUrKChLPUQ8PDEpPDwzKXwwLEs9SGUrKCgxfEspPDwzKXwwLE09MHxhW1N0KyhNPDwyKT4+Ml07''@;'; + put 'put ''ISgoMHxNKT49KDB8YVtSPj4yXSkpOyl7aWYoKDB8KGs9MHxhWyhiPWJ0Kygodz0wfGFbKEE9a3QrKE08PDIpfDApPj4yXSk8PDIpfDApPj4yXSkpPCgwfGFbUmU+PjJdKSlhW2I+PjJdPW0sYVtudCsobTw8Mik+PjJdPWFbQT4+Ml0sX1tiZSsoKGs9bTw8MSk8PDMpPj4zXT0oKEhuPStfW0c+''@;'; + put 'put ''PjNdKSooU249K19bYz4+M10pLSh1cj0rX1tLPj4zXSkqKGFuPStfW2Y+PjNdKSkqK19bKHc9Z2UrKChiPU08PDEpPDwzKXwwKT4+M10tKHVyKlNuK2FuKkhuKSorX1soYj1nZSsoKDF8Yik8PDMpfDApPj4zXSxfW2JlKygoMXxrKTw8Myk+PjNdPSgodXI9K19bRz4+M10pKihTbj0rX1tmPj4z''@;'; + put 'put ''XSkrKGFuPStfW0s+PjNdKSooSG49K19bYz4+M10pKSorX1t3Pj4zXSsodXIqSG4tU24qYW4pKitfW2I+PjNdLG09bSsxfDA7ZWxzZXtpZigoMHxhW250KyhrPDwyKT4+Ml0pIT0oMHx3KSlicmVhayBuO19bKEE9YmUrKChrPDw9MSk8PDMpfDApPj4zXT0rX1tBPj4zXSsoKFNuPStfW0c+PjNd''@;'; + put 'put ''KSooSG49K19bYz4+M10pLShhbj0rX1tLPj4zXSkqKHVyPStfW2Y+PjNdKSkqK19bKHc9Z2UrKChiPU08PDEpPDwzKXwwKT4+M10tKGFuKkhuK3VyKlNuKSorX1soYj1nZSsoKDF8Yik8PDMpfDApPj4zXSxfWyhrPWJlKygoMXxrKTw8Myl8MCk+PjNdPSgoYW49K19bRz4+M10pKihIbj0rX1tm''@;'; + put 'put ''Pj4zXSkrKHVyPStfW0s+PjNdKSooU249K19bYz4+M10pKSorX1t3Pj4zXSsoYW4qU24tSG4qdXIpKitfW2I+PjNdKyArX1trPj4zXX1NPU0rMXwwfUQ9RCsxfDB9bD1sKzF8MH1hW3FlKyhPZTw8Mik+PjJdPW0sQT1PZX1Qcig5NTU4Miw5NDk0MywxNjc0LDk1NTU5KTticmVhaztjYXNlIDQ6''@;'; + put 'put ''UmU9MHxhW2wrMjg+PjJdLExlPTB8YVtjKzI4Pj4yXSxjPTB8YVtmKzI4Pj4yXSxmPTB8YVtwKzI4Pj4yXSxhW3FlPj4yXT0wLG09MCxBPTA7bjpmb3IoOzspe2lmKCgwfEEpPj0oMHxsdCkpe1dlPW07YnJlYWsgdH1mb3IoYmU9RXQrKChnZT1BKzF8MCk8PDIpfDAsT2U9cWUrKEE8PDIpfDAs''@;'; + put 'put ''Sz0wfGFbRXQrKEE8PDIpPj4yXTshKCgwfEspPj0oMHxhW2JlPj4yXSkpOyl7Zm9yKGw9Y3QrKDErKEQ9MHxhW1p0KyhLPDwyKT4+Ml0pPDwyKXwwLHBlPVJlKyhLPDwyKXwwLEQ9MHxhW2N0KyhEPDwyKT4+Ml07ISgoMHxEKT49KDB8YVtsPj4yXSkpOyl7Zm9yKFI9U3QrKDErKE09MHxhW290''@;'; + put 'put ''KyhEPDwyKT4+Ml0pPDwyKXwwLEc9TGUrKEQ8PDIpfDAsTT0wfGFbU3QrKE08PDIpPj4yXTshKCgwfE0pPj0oMHxhW1I+PjJdKSk7KXtpZigoMHwoaz0wfGFbKGI9YnQrKCh3PTB8YVsoQT1rdCsoTTw8Mil8MCk+PjJdKTw8Mil8MCk+PjJdKSk8KDB8YVtPZT4+Ml0pKWFbYj4+Ml09bSxhW250''@;'; + put 'put ''KyhtPDwyKT4+Ml09YVtBPj4yXSxIZT0wfEFyKDB8YVtHPj4yXSwwfGFbcGU+PjJdKSxIZT0wfEFyKEhlLDB8YVtjKyhNPDwyKT4+Ml0pLGFbKFZlPWYrKG08PDIpfDApPj4yXT0oMHxhW1ZlPj4yXSkrSGUsbT1tKzF8MDtlbHNle2lmKCgwfGFbbnQrKGs8PDIpPj4yXSkhPSgwfHcpKWJyZWFr''@;'; + put 'put ''IG47SGU9MHxBcigwfGFbRz4+Ml0sMHxhW3BlPj4yXSksSGU9MHxBcihIZSwwfGFbYysoTTw8Mik+PjJdKSxhWyhWZT1mKyhrPDwyKXwwKT4+Ml09KDB8YVtWZT4+Ml0pK0hlfU09TSsxfDB9RD1EKzF8MH1LPUsrMXwwfWFbcWUrKGdlPDwyKT4+Ml09bSxBPWdlfVByKDk1NTgyLDk0OTQzLDE3''@;'; + put 'put ''MDYsOTU1NTkpO2JyZWFrO2Nhc2UgODphW3FlPj4yXT0wLG09MCxBPTA7bjpmb3IoOzspe2lmKCgwfEEpPj0oMHxsdCkpe1dlPW07YnJlYWsgdH1mb3IocGU9RXQrKChsPUErMXwwKTw8Mil8MCxjPXFlKyhBPDwyKXwwLEc9MHxhW0V0KyhBPDwyKT4+Ml07ISgoMHxHKT49KDB8YVtwZT4+Ml0p''@;'; + put 'put ''KTspe2ZvcihLPWN0KygxKyhEPTB8YVtadCsoRzw8Mik+PjJdKTw8Mil8MCxEPTB8YVtjdCsoRDw8Mik+PjJdOyEoKDB8RCk+PSgwfGFbSz4+Ml0pKTspe2ZvcihSPVN0KygxKyhNPTB8YVtvdCsoRDw8Mik+PjJdKTw8Mil8MCxNPTB8YVtTdCsoTTw8Mik+PjJdOyEoKDB8TSk+PSgwfGFbUj4+''@;'; + put 'put ''Ml0pKTspe2lmKCgwfChrPTB8YVsoYj1idCsoKHc9MHxhWyhBPWt0KyhNPDwyKXwwKT4+Ml0pPDwyKXwwKT4+Ml0pKT49KDB8YVtjPj4yXSkpe2lmKCgwfGFbbnQrKGs8PDIpPj4yXSkhPSgwfHcpKWJyZWFrIG59ZWxzZSBhW2I+PjJdPW0sYVtudCsobTw8Mik+PjJdPWFbQT4+Ml0sbT1tKzF8''@;'; + put 'put ''MDtNPU0rMXwwfUQ9RCsxfDB9Rz1HKzF8MH1hW3FlKyhsPDwyKT4+Ml09bSxBPWx9UHIoOTU1ODIsOTQ5NDMsMTcyOSw5NTU1OSk7YnJlYWs7ZGVmYXVsdDpSYShwKSxwPTA7YnJlYWsgZX19d2hpbGUoMCk7YVtwKzg+PjJdPVdlfWVsc2UgcD0wfXdoaWxlKDApO0Z0KGJ0KX1lbHNlIHA9MDty''@;'; + put 'put ''ZXR1cm4gMHxwfWZ1bmN0aW9uIE8zKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTA7aWYoMiE9KDB8YVszMisobHw9MCk+PjJdKSYmUHIoOTUxMDAsOTQ5NDMsMTk3MSw5NTYwNyksKDB8Yyk+PTEpe2ZvcigoMHwoQT0odz0wfGFbbCs4Pj4yXSkrY3wwKSk+''@;'; + put 'put ''PSgwfGFbbCsxMj4+Ml0pJiZmdW5jdGlvbiB2NShsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wOzI9PSgwfGFbMzIrKGx8PTApPj4yXSk/KGFbKGY9bCsyMHwwKT4+Ml09MHxWMCgwfGFbZj4+Ml0sbT1jPDwyKSxhWyhmPWwrMjR8MCk+PjJdPTB8VjAoMHxhW2Y+PjJdLG0pLCgwfChmPTB8YVts''@;'; + put 'put ''KzQwPj4yXSkpPjAmJihwPTB8YVsobT1sKzI4fDApPj4yXSxmPTB8QXIoZixjKSxmPXA/MHxWMChwLGYpOjB8UW4oZiksYVttPj4yXT1mKSk6KGFbKGY9bCsyNHwwKT4+Ml09MHxWMCgwfGFbZj4+Ml0sYzw8MiksKDB8KGY9MHxhW2wrNDA+PjJdKSk+MCYmKHA9MHxhWyhtPWwrMjh8MCk+PjJd''@;'; + put 'put ''LGY9MHxBcihmLGMpLGY9cD8wfFYwKHAsZik6MHxRbihmKSxhW20+PjJdPWYpKSxhW2wrMTI+PjJdPWN9KGwsQSsxMHwwKSxnbygoMHxhW2wrMjA+PjJdKSsoYj13PDwyKXwwLDB8ZiwwfChBPWM8PDIpKSxnbygoMHxhW2wrMjQ+PjJdKStifDAsMHxwLDB8QSksMHwoQT0wfGFbbCs0MD4+Ml0p''@;'; + put 'put ''JiYoYj0wfEFyKEEsYyksdz0wfEFyKEEsdyksZ28oKDB8YVtsKzI4Pj4yXSkrd3wwLDB8bSwwfGIpKSxtPWwrNHwwLHc9MDshKCgwfHcpPj0oMHxjKSk7KSgwfChBPTB8YVtmKyh3PDwyKT4+Ml0pKT49KDB8YVtsPj4yXSkmJihhW2w+PjJdPUErMSksKDB8KEE9MHxhW3ArKHc8PDIpPj4yXSkp''@;'; + put 'put ''Pj0oMHxhW20+PjJdKSYmKGFbbT4+Ml09QSsxKSx3PXcrMXwwO2FbKGI9bCs4fDApPj4yXT0oMHxhW2I+PjJdKStjfXJldHVybiAwfGx9ZnVuY3Rpb24gVTQobCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MDtlOmRve2lmKGwpe009MHxhW2wr''@;'; + put 'put ''MjA+PjJdLGs9MHxhW2wrMjQ+PjJdO3Q6ZG97c3dpdGNoKDB8YVtsKzE2Pj4yXSl7Y2FzZSAxOnc9MHxhW2wrMjg+PjJdLHA9MHxhW2w+PjJdLGM9MDtuOmZvcig7Oyl7aWYoKDB8Yyk+PSgwfHApKWJyZWFrIHQ7Zm9yKGY9MS8rKChBPTB8YVtNKygobT1jKzF8MCk8PDIpPj4yXSktKGM9MHxh''@;'; + put 'put ''W00rKGM8PDIpPj4yXSl8MCk7Oyl7aWYoKDB8Yyk+PSgwfEEpKXtjPW07Y29udGludWUgbn1fWyhrPXcrKGM8PDMpfDApPj4zXT0rX1trPj4zXSpmLGM9YysxfDB9fWNhc2UgMjptPTB8YVtsKzI4Pj4yXSxBPTB8YVtsPj4yXSxjPTA7bjpmb3IoOzspe2lmKCgwfGMpPj0oMHxBKSlicmVhayB0''@;'; + put 'put ''O2ZvcihmPTEvKygoYj0wfGFbTSsoKHc9YysxfDApPDwyKT4+Ml0pLShwPTB8YVtNKyhjPDwyKT4+Ml0pfDApOzspe2lmKCgwfHApPj0oMHxiKSl7Yz13O2NvbnRpbnVlIG59KDB8YVtrKyhwPDwyKT4+Ml0pIT0oMHxjKSYmKF9bKFI9bSsoKEQ9cDw8MSk8PDMpfDApPj4zXT0rX1tSPj4zXSpm''@;'; + put 'put ''LF9bKEQ9bSsoKDF8RCk8PDMpfDApPj4zXT0rX1tEPj4zXSpmKSxwPXArMXwwfX1jYXNlIDQ6UHIoMTM4Mzk0LDk0OTQzLDIxOTIsOTU2NDgpO2JyZWFrO2Nhc2UgODpicmVhaztkZWZhdWx0Omw9MDticmVhayBlfX13aGlsZSgwKX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0''@;'; + put 'put ''aW9uIEE1KGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2lmKDAhPSgwfChsfD0wKSkmJihmPTB8YVsoYz1sKzh8MCk+PjJdLCgwfChwPTB8YVtsKzQ+PjJdKSk9PSgwfGFbbD4+Ml0pKSl7Zm9yKEE9MHxhW2wrMjQ+PjJdLGw9MHxhW2wrMjA+PjJdLG09MHx1YyhwLHAsZiw4LDEpLGdvKDB8''@;'; + put 'put ''YVttKzIwPj4yXSwwfGwsNCsocDw8Mil8MCksZ28oMHxhW20rMjQ+PjJdLDB8QSxmPDwyfDApLGFbbSs4Pj4yXT1hW2M+PjJdLGw9MHxhaChtLDEpLFJhKG0pLGw9MHx3cChsKSxmPTB8UW4oYVsocD1sKzh8MCk+PjJdPDwzKSxhW2wrMjg+PjJdPWYscD0wfGFbcD4+Ml0sYz0wOyEoKDB8Yyk+''@;'; + put 'put ''PSgwfHApKTspX1tmKyhjPDwzKT4+M109MSxjPWMrMXwwO2FbbCsxNj4+Ml09MSxhW2wrNDA+PjJdPTh9ZWxzZSBsPTA7cmV0dXJuIDB8bH1mdW5jdGlvbiBCaCgpe3JldHVybiA0LjY1NjYxMjg3NTI0NTc5N2UtMTAqKygwfFQxKCkpfWZ1bmN0aW9uIHB4KGwpe3JldHVybigwfChsfD0wKSk+''@;'; + put 'put ''MT8wfCgwfFQxKCkpJSgwfGwpOihQcig5NTY4Miw5NTY4OCw1OCw5NTY5OCksMCl9ZnVuY3Rpb24gRmQobCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtlOmRve2lmKCgwfGwpPDEpYz0wO2Vsc2V7Zm9yKGM9MHxRbihsPDwyKSxmPTA7KDB8ZikhPSgwfGwpOylhW2MrKGY8PDIpPj4y''@;'; + put 'put ''XT1mLGY9ZisxfDA7Zm9yKDs7KXtpZigoMHxsKTw9MSlicmVhayBlO3A9MHxweChsKSxtPTB8YVsoQT1jKygoZj1sKy0xfDApPDwyKXwwKT4+Ml0sYVtBPj4yXT1hWyhwPWMrKHA8PDIpfDApPj4yXSxhW3A+PjJdPW0sbD1mfX19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiB5NShsLGMs''@;'; + put 'put ''Zil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wO2ZvcihwPTAsbT0wOyEoKDB8cCk+PSgwfGwpKTspQT0rX1tmKyhwPDwzKT4+M10qK19bYysocDw8Myk+PjNdK20scD1wKzF8MCxtPUE7cmV0dXJuK219ZnVuY3Rpb24gbXgobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscD0rcDt2YXIg''@;'; + put 'put ''bT0wLEE9MDtmb3IobT0wOyEoKDB8bSk+PSgwfGwpKTspX1soQT1mKyhtPDwzKXwwKT4+M109K19bQT4+M10qcCsgK19bYysobTw8Myk+PjNdLG09bSsxfDA7cmV0dXJuIDB8Zn1mdW5jdGlvbiBSXyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwPStwO3ZhciBtPTAsQT0wO2ZvcihtPTA7ISgo''@;'; + put 'put ''MHxtKT49KDB8bCkpOylfWyhBPWMrKG08PDMpfDApPj4zXT0rX1tmKyhtPDwzKT4+M10qcCsgK19bQT4+M10sbT1tKzF8MDtyZXR1cm4gMHxjfWZ1bmN0aW9uIGR1KGwsYyxmLHApe2x8PTAscHw9MDt2YXIgQSxtPTAsdz0wO2ZvcihBPTB8QXIoZnw9MCxjfD0wKSxwPTB8QXIocCxjKSxtPTAs''@;'; + put 'put ''Zj0wOyEoKDB8Zik+PSgwfGMpKTspbT0odz0rX1tsKyhmK0E8PDMpPj4zXS0rX1tsKyhmK3A8PDMpPj4zXSkqdyttLGY9ZisxfDA7cmV0dXJuKygodz0rRDAoK20pKT4xZS0xNT93OjFlLTE1KX1mdW5jdGlvbiBfYyhsLGMsZixwKXtsfD0wLHB8PTA7dmFyIEEsbT0wLHc9MDtmb3IoQT0wfEFy''@;'; + put 'put ''KGZ8PTAsY3w9MCkscD0wfEFyKHAsYyksbT0wLGY9MDshKCgwfGYpPj0oMHxjKSk7KW09KHc9K19bbCsoZitBPDwzKT4+M10tK19bbCsoZitwPDwzKT4+M10pKncrbSxmPWYrMXwwO3JldHVybisgK0QwKCttKX1mdW5jdGlvbiBiQShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTAs''@;'; + put 'put ''QT0wO2ZvcihwPTAsbT0wOyEoKDB8bSk+PSgwfGYpKTspcD0oQT0rX1tsKyhtPDwzKT4+M10tK19bYysobTw8Myk+PjNdKSpBK3AsbT1tKzF8MDtyZXR1cm4rICtEMCgrcCl9ZnVuY3Rpb24gdngobCxjKXtjfD0wLDE9PSgwfEdvKGx8PTApKT8obD0wfGFbMTMyKygwfGFbMTYrKDB8RHQobCkp''@;'; + put 'put ''Pj4yXSk+PjJdLGFbbD4+Ml09MCxhW2wrND4+Ml09MCxhW2wrOD4+Ml09MCxhW2wrMTI+PjJdPTApOihmdW5jdGlvbiB5YShsKXt2YXIgYzsoMHwoYz0wfGNyKDB8YVthWzExMisoMHxhWzE2KygwfER0KGx8PTApKT4+Ml0pPj4yXT4+Ml0pKSkhPSgwfChsPTB8YVs0NjkyNV0pKSYmKGFbNDY1''@;'; + put 'put ''NTVdPTAsYVs0NjkyNV09YyxhWzQ2OTI2XT0wfHNpKGMsMCw5NTcxMywwKSxhWzQ2OTI3XT0wfHNpKDB8YVs0NjkyNV0sMSw5NTcyMSwwKSxhWzQ2OTI4XT0wfHNpKDB8YVs0NjkyNV0sMSw5NTczOCwwKSxsPTB8YVs0NjkyNV0pLGFbNDY5MjldPTB8TGkobCw5NTczOCksa0EoMTg2MjA4KSxh''@;'; + put 'put ''WzQ2NTU0XT0xLF9bMjMyODBdPStNbCgwfGFbNDY5MjVdLDB8YVs0NjkyNl0sMSwwKSxhWzQ2NTU2XT1hWzQ2OTI3XSxhWzQ2NTU3XT1hWzQ2OTI4XSxhWzQ2NTU4XT1hWzQ2OTI5XX0obCksYz0oMHxlMSgwfExpKGMsOTU3MDQpKSk8PDI0Pj4yND8wfGZ1bmN0aW9uIFR0KGwpe2x8PTA7dmFy''@;'; + put 'put ''IG0sYz0wLGY9MCxwPTA7Zm9yKG09YWUsYWU9YWUrMTQ0fDAscD1tLGY9bSs4fDAsYVs0NjU1NV09MSsoYz0wfGFbNDY1NTVdKSxhW3A+PjJdPWMsb28oZiw5NjIzNCxwKSxwPShmPTB8R18oMHxkcyhsLGYsMSkpKSs4fDAsYz0wfER0KGwpO2M7KVduKDB8YVtwPj4yXSxjLDEpLGFbMTIrKDB8''@;'; + put 'put ''YVsxMTIrKDB8YVtjKzE2Pj4yXSk+PjJdKT4+Ml09ZixjPTB8enQobCxjKTtyZXR1cm4gYWU9bSwwfGZ9KGwpOjB8ZnVuY3Rpb24gaFAobCxjKXt2YXIgayxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxNPTA7Zm9yKGZ1bmN0aW9uIGRQKGwsYyl7bHw9MDt2YXIgQSxiLGY9MCxwPTAsbT0wO2I9''@;'; + put 'put ''YWUsYWU9YWUrMTZ8MCxBPWIrOHwwLDAhPSgwfChwPTB8YVsyNCsoY3w9MCk+PjJdKSkmJjAhPSgwfChmPTB8R3IobCxwLDApKSl8fChtPTMpO2U6ZG97aWYoMz09KDB8bSkpe3A9YysyMHwwO3Q6ZG97aWYoMHxhW3A+PjJdKWZvcihmPTB8RHQobCk7Oyl7aWYoIWYpYnJlYWsgdDtpZigoMHxo''@;'; + put 'put ''SigwfGFbYVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdPj4yXSwwfGFbcD4+Ml0sMCkpPDwyND4+MjQpYnJlYWsgZTtmPTB8enQobCxmKX19d2hpbGUoMCk7Zj0wfER0KGwpfX13aGlsZSgwKTthW0ErND4+Ml09MCxhW0E+PjJdPTAsangobCxmLGMsMSxBKSxhZT1ifShsfD0wLGN8PTApLHc9MHxh''@;'; + put 'put ''WzQrKGs9MHxhW2M+PjJdKT4+Ml07dzspe2ZvcihiPTB8RHQoTT0wfGFbdys4Pj4yXSksbD0wfGFbMTYrKGY9MHxhWzExMisoMHxhW2IrMTY+PjJdKT4+Ml0pKzQ+PjJdLGY9MHxhW2YrOD4+Ml0sbT1iLGI9MHx6dChNLGIpO2I7KSgwfChBPTB8YVsxNisocD0wfGFbMTEyKygwfGFbYisxNj4+''@;'; + put 'put ''Ml0pPj4yXSkrND4+Ml0pKTwoMHxsKSYmKG09YixmPTB8YVtwKzg+PjJdLGw9QSksYj0wfHp0KE0sYik7YVsoTT00KyhiPTB8YVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdKXwwKT4+Ml09OHxhW00+PjJdLGFbdz4+Ml09bSxNPTB8YVt3KzQ+PjJdLFdfKDM2KygwfGFbYisxMj4+Ml0pfDAsdyks''@;'; + put 'put ''dz1NfXJldHVybiBrQShjKSwwfGt9KGwsMTg2MjA4KSxmdW5jdGlvbiB2UChsLGMsZil7R3gobHw9MCxjfD0wLCtfWzMyKyhmfD0wKT4+M10pfShsLGMsMTg2MjA4KSxmdW5jdGlvbiBCXyhsKXt6eChsfD0wKX0oYykpfWZ1bmN0aW9uIEtCKGwsYyl7dmFyIGY7cmV0dXJuIGx8PTAsY3w9MCxm''@;'; + put 'put ''PTB8UW4oMzIpLGFbZj4+Ml09NCxfW2YrOD4+M109Ljc1LGFbZisxNj4+Ml09MTA3Mzc0MTgyNCxhW2YrMjA+PjJdPTEsYVtmKzI0Pj4yXT1sLGFbZisyOD4+Ml09YywwfGZ9ZnVuY3Rpb24gaXQobCl7RnQobHw9MCl9ZnVuY3Rpb24gc3QobCl7dmFyIGM9MCxmPTA7aWYobHw9MCl7Zj0wfGFb''@;'; + put 'put ''bCs4Pj4yXTtkb3tpZigwfGYpe2lmKDB8YVtsPj4yXSl7aWYoUmEoZiksIShjPTB8YVtsKzEyPj4yXSkpYnJlYWs7UmEoYyk7YnJlYWt9MHxhW2wrMzY+PjJdJiYoUmEoZiksMHwoYz0wfGFbbCsxMj4+Ml0pKSYmUmEoYyl9fXdoaWxlKDApO1JhKDB8YVtsKzE2Pj4yXSksUmEoMHxhW2wrMjA+''@;'; + put 'put ''PjJdKSwwfChjPTB8YVtsKzI0Pj4yXSkmJigwfGFbbD4+Ml0pPjAmJkZ0KGMpLHN0KDB8YVtsKzI4Pj4yXSksRnQobCl9fWZ1bmN0aW9uIHc1KGwsYyxmLHAsbSxBLHcsYixrLE0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTAsYnw9MCxrfD0wLE18PTA7dmFyIFdlLFN0LGt0''@;'; + put 'put ''LGx0LEV0LFp0LEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLG90PTA7WnQ9YWUsYWU9YWUrMzJ8MCxLPVp0KzI0fDAsV2U9WnQrMjB8MCxrdD1adCsxNnwwLFI9WnQrMTJ8MCxsdD1adCs4fDAsRXQ9WnQrNHwwLExlPVp0''@;'; + put 'put ''LGFbKFN0PVp0KzI4fDApPj4yXT0wLGFbSz4+Ml09MCxhW2t0Pj4yXT0wLGFbbHQ+PjJdPTAsYVtFdD4+Ml09MCxhW2M+PjJdPTAsYVtwPj4yXT0wLGFbdz4+Ml09MCxhW2I+PjJdPTAsb3Q9MHxhW2w+PjJdLGFbTT4+Ml09YVsoRz1rKzI0fDApPj4yXSxEPTB8YVtHPj4yXTtlOmRve3N3aXRj''@;'; + put 'put ''aCgwfEQpe2Nhc2UgMTI6YVtHPj4yXT0zLGFbTT4+Ml09Myx3NShsLGMsZixwLG0sQSx3LGIsayxNKSwwPT0oMHxhW2M+PjJdKSYmKGFbRz4+Ml09NCxhW00+PjJdPTQsdzUobCxjLGYscCxtLEEsdyxiLGssTSksMD09KDB8YVtjPj4yXSkpJiYoYVtHPj4yXT02LGFbTT4+Ml09Nix3NShsLGMs''@;'; + put 'put ''ZixwLG0sQSx3LGIsayxNKSwwPT0oMHxhW2M+PjJdKSkmJihhW0c+PjJdPTksYVtNPj4yXT05LHc1KGwsYyxmLHAsbSxBLHcsYixrLE0pLDA9PSgwfGFbYz4+Ml0pKSYmKGFbRz4+Ml09MixhW00+PjJdPTIsdzUobCxjLGYscCxtLEEsdyxiLGssTSkpLGFbRz4+Ml09MTIsRz0wLEs9MCxrPTAs''@;'; + put 'put ''Uj0wLEQ9MCxNPTA7YnJlYWs7Y2FzZSA5OmNhc2UgMTA6aWYoZj0wfGFbaysyMD4+Ml0sOT09KDB8RCk/UF8obCxmLGt0LFIsV2UpOlluKGwsZixrdCxSLFdlKSxPZT0wfGFbbCsyMD4+Ml0sTGU9MHxhW2wrMjQ+PjJdLGJlPTB8YVtSPj4yXSwwfGFbaysyOD4+Ml0pe2lmKCgwfGJlKT09KDB8''@;'; + put 'put ''b3QpKXtHPTAsSz0wLGs9MCxSPTAsRD0wLE09MDticmVhayBlfX1lbHNlIGlmKCgwfGJlKT09KDB8b3QpfHwrX1trKzg+PjNdKisoMHxvdCk8KygwfGJlKSl7Rz0wLEs9MCxrPTAsUj0wLEQ9MCxNPTA7YnJlYWsgZX1pZigoMHxiZSk+PSgwfGFbaz4+Ml0pKXtIZT0wfFFuKFZlPShxZT0wfGFb''@;'; + put 'put ''V2U+PjJdKTw8MiksVmU9MHxRbihWZSkscWU9MHxRbihxZTw8MyksYVtXZT4+Ml09MCxnZT0wfGFba3Q+PjJdLHBlPTAsUj0wO3Q6Zm9yKDshKCgwfHBlKT49KDB8b3QpKTspaWYoLTE9PSgwfGFbKGY9Z2UrKHBlPDwyKXwwKT4+Ml0pKXtmb3IoRz0wfGFbKGs9T2UrKChLPXBlKzF8MCk8PDIp''@;'; + put 'put ''fDApPj4yXSxmPTAsTT1EPTB8YVtPZSsocGU8PDIpPj4yXTshKCgwfE0pPj0oMHxHKSk7KWY9KCgwfGFbZ2UrKGFbTGUrKE08PDIpPj4yXTw8Mik+PjJdKT4+PjMxXjEpK2Z8MCxNPU0rMXwwO2ZvcihSZT0xLysoMHxmKSxmPUc7Oyl7aWYoKDB8RCk+PSgwfGYpKXtwZT1LO2NvbnRpbnVlIHR9''@;'; + put 'put ''KDB8YVtnZSsoYVsoTT1MZSsoRDw8Mil8MCk+PjJdPDwyKT4+Ml0pPi0xPyhhW0hlKyhSPDwyKT4+Ml09cGUsYVtWZSsoYVtXZT4+Ml08PDIpPj4yXT1hW2dlKyhhW00+PjJdPDwyKT4+Ml0sYVtXZT4+Ml09TT0xKyhmPTB8YVtXZT4+Ml0pfDAsX1txZSsoZjw8Myk+PjNdPVJlLGY9MHxhW2s+''@;'; + put 'put ''PjJdKTpNPVIsRD1EKzF8MCxSPU19fWVsc2UgYVtIZSsoUjw8Mik+PjJdPXBlLGFbVmUrKGFbV2U+PjJdPDwyKT4+Ml09YVtmPj4yXSxhW1dlPj4yXT1rPTErKEs9MHxhW1dlPj4yXSl8MCxfW3FlKyhLPDwzKT4+M109MSxwZT1wZSsxfDAsUj1rO290PTB8cjQoUixvdCxiZSxIZSxWZSxxZSwx''@;'; + put 'put ''LDgpLGFbdz4+Ml09b3Qsb3Q9MHxXeShvdCksYVtiPj4yXT1vdCx3PTB8WTQob3QsbCwwfGFbdz4+Ml0pLGFbYz4+Ml09dyx3PyhLZigwfGFbYj4+Ml0sbSxBLDApLGFbKEs9MzYrKEc9MHxhW2M+PjJdKXwwKT4+Ml09M3xhW0s+PjJdLGFbYz4+Ml09MHx3cChHKSxhW3A+PjJdPTAsRz1xZSxL''@;'; + put 'put ''PVZlLGs9SGUsUj1IZSxEPVZlLE09cWUpOihHPXFlLEs9VmUsaz1IZSxSPUhlLEQ9VmUsTT1xZSl9ZWxzZSBHPTAsSz0wLGs9MCxSPTAsRD0wLE09MDticmVhaztjYXNlIDU6bnQ9MjY7YnJlYWs7Y2FzZSAxOl9pKGwsMHxhWyhNPWsrMjB8MCk+PjJdLFN0LEspLDI9PSgwfChmPTB8YVtHPj4y''@;'; + put 'put ''XSkpPyhmPU0sbnQ9MjQpOm50PTI1O2JyZWFrO2Nhc2UgMjpmPWsrMjB8MCxudD0yNDticmVhaztjYXNlIDM6RjAobCwwfGFbaysyMD4+Ml0sbHQsRXQsTGUpLG50PTEyO2JyZWFrO2Nhc2UgNDpIMChsLDB8YVtrKzIwPj4yXSxsdCxFdCxMZSksbnQ9MTI7YnJlYWs7Y2FzZSA2OmYxKGwsbHQs''@;'; + put 'put ''RXQsTGUpLG50PTEyO2JyZWFrO2RlZmF1bHQ6Rz0wLEs9MCxrPTAsUj0wLEQ9MCxNPTB9fXdoaWxlKDApO2Rve2lmKDEyPT0oMHxudCkpe2lmKHBlPTB8YVtMZT4+Ml0sMHxhW2srMjg+PjJdKXtpZigoMHxwZSk9PSgwfG90KSl7Rz0wLEs9MCxrPTAsUj0wLEQ9MCxNPTA7YnJlYWt9fWVsc2Ug''@;'; + put 'put ''aWYoKDB8cGUpPT0oMHxvdCl8fCtfW2srOD4+M10qKygwfG90KTwrKDB8cGUpKXtHPTAsSz0wLGs9MCxSPTAsRD0wLE09MDticmVha31pZigoMHxwZSk+PSgwfGFbaz4+Ml0pKXtnZT0wfFFuKGJlPW90PDwyKSxiZT0wfFFuKGJlKSxPZT0wfFFuKG90PDwzKSxhW1dlPj4yXT0wLFI9MHxhW0V0''@;'; + put 'put ''Pj4yXSxHPTB8YVtsdD4+Ml0sRD0wLGY9MDtlOmZvcig7ISgoMHxEKT49KDB8YVtMZT4+Ml0pKTspZm9yKEs9RCsxfDAsaz1SKyhLPDwyKXwwLE09MHxhW1IrKEQ8PDIpPj4yXTs7KXtpZigoMHxNKT49KDB8YVtrPj4yXSkpe0Q9Sztjb250aW51ZSBlfWFbZ2UrKGY8PDIpPj4yXT1hW0crKE08''@;'; + put 'put ''PDIpPj4yXSxhW2JlKyhhW1dlPj4yXTw8Mik+PjJdPUQsYVtXZT4+Ml09cWU9MSsoVmU9MHxhW1dlPj4yXSl8MCxfW09lKyhWZTw8Myk+PjNdPTEsTT1NKzF8MCxmPXFlfW90PTB8cjQoZixvdCxwZSxnZSxiZSxPZSwxLDgpLGFbdz4+Ml09b3QsYVtiPj4yXT0wfFd5KG90KSxhW3A+PjJdPTAs''@;'; + put 'put ''dz0wfFk0KDB8YVtiPj4yXSxsLDB8YVt3Pj4yXSksYVtjPj4yXT13LHc/KEtmKDB8YVtiPj4yXSxtLEEsMCksYVtiPj4yXT0wfFU0KDB8YVtiPj4yXSksYVsoSz0zNisoRz0wfGFbYz4+Ml0pfDApPj4yXT0zfGFbSz4+Ml0sYVtjPj4yXT0wfHdwKEcpLEc9T2UsSz1iZSxrPWdlLFI9Z2UsRD1i''@;'; + put 'put ''ZSxNPU9lKTooRz1PZSxLPWJlLGs9Z2UsUj1nZSxEPWJlLE09T2UpfWVsc2UgRz0wLEs9MCxrPTAsUj0wLEQ9MCxNPTB9ZWxzZSAyND09KDB8bnQpJiYoVm0obCwwfGFbZj4+Ml0sU3QsSyksZj0wfGFbRz4+Ml0sbnQ9MjUpfXdoaWxlKDApOzI1PT0oMHxudCkmJihudD01PT0oMHxmKT8yNjoy''@;'; + put 'put ''NyksMjY9PSgwfG50KSYmKGZ1bmN0aW9uIEF4KGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBnZSxiZSxPZSxMZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDtmb3IoYmU9MHxhWzIwKyhsfD0wKT4+Ml0sT2U9MHxhW2wrMjQ+PjJdLEE9MHxhW2wrND4+''@;'; + put 'put ''Ml0sSz0wfFFuKChMZT0wfGFbbD4+Ml0pPDwyKSxhW2Y+PjJdPUssbT0wOyEoKDB8bSk+PSgwfExlKSk7KWFbSysobTw8Mik+PjJdPW0sbT1tKzF8MDthW3A+PjJdPUEsZ2U9MHxhW2wrMjg+PjJdO2U6ZG97aWYoYyl7Zm9yKHBlPTB8RmQoTGUpLEs9MCxtPTAsdz0wOyEoKDB8Syk+PSgwfExl''@;'; + put 'put ''KSk7KXtpZigoMHxhWyhEPShNPTB8YVtmPj4yXSkrKChrPTB8YVtwZSsoSzw8Mik+PjJdKTw8Mil8MCk+PjJdKT09KDB8aykpe2ZvcihHPSsoKFI9MHxhW2JlKyhrKzE8PDIpPj4yXSktKGM9MHxhW2JlKyhrPDwyKT4+Ml0pfDApLEE9MTshKCgwfGMpPj0oMHxSKSk7KSgwfGspIT0oMHwobD0w''@;'; + put 'put ''fGFbT2UrKGM8PDIpPj4yXSkpJiYoMHxhW00rKGw8PDIpPj4yXSk9PSgwfGwpJiYoYj0rX1tnZSsoYzw8Myk+PjNdLygrKCgwfGFbYmUrKGwrMTw8Mik+PjJdKS0oMHxhW2JlKyhsPDwyKT4+Ml0pfDApKkcpLDAhPSgwfEEpfHxiPnc/KEE9MCxtPWwsdz1iKTpBPTApLGM9YysxfDA7QXx8KGFb''@;'; + put 'put ''TSsobTw8Mik+PjJdPWssYVtEPj4yXT1tLGFbcD4+Ml09KDB8YVtwPj4yXSktMSl9Sz1LKzF8MH1GdChwZSl9ZWxzZSBmb3IobT0wLHc9MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfExlKSlicmVhayBlO2ZvcihSPUsrKGs8PDIpfDAsRz0rKChEPTB8YVtiZSsoKE09aysxfDApPDwyKT4+Ml0pLShj''@;'; + put 'put ''PTB8YVtiZSsoazw8Mik+PjJdKXwwKSxBPTE7ISgoMHxjKT49KDB8RCkpOykoMHxrKSE9KDB8KGw9MHxhW09lKyhjPDwyKT4+Ml0pKSYmKDB8YVtLKyhsPDwyKT4+Ml0pPT0oMHxsKSYmKDB8YVtSPj4yXSk9PSgwfGspJiYoYj0rX1tnZSsoYzw8Myk+PjNdLygrKCgwfGFbYmUrKGwrMTw8Mik+''@;'; + put 'put ''PjJdKS0oMHxhW2JlKyhsPDwyKT4+Ml0pfDApKkcpLDAhPSgwfEEpfHxiPnc/KEE9MCxtPWwsdz1iKTpBPTApLGM9YysxfDA7MHxBfHwoYVtLKyhtPDwyKT4+Ml09ayxhW0srKGs8PDIpPj4yXT1tLGFbcD4+Ml09KDB8YVtwPj4yXSktMSksaz1NfX13aGlsZSgwKX0obCwwfGFbaysyMD4+Ml0s''@;'; + put 'put ''U3QsSyksbnQ9MjcpO2Rve2lmKDI3PT0oMHxudCkpe2lmKGY9MHxhW0s+PjJdLDB8YVtrKzI4Pj4yXSl7aWYoKDB8Zik9PSgwfG90KSl7Rz0wLEs9MCxrPTAsUj0wLEQ9MCxNPTA7YnJlYWt9fWVsc2UgaWYoKDB8Zik9PSgwfG90KXx8K19bays4Pj4zXSorKDB8b3QpPCsoMHxmKSl7Rz0wLEs9''@;'; + put 'put ''MCxrPTAsUj0wLEQ9MCxNPTA7YnJlYWt9aWYoKDB8Zik+PSgwfGFbaz4+Ml0pKXtmb3IocGU9MHxRbihnZT1vdDw8MiksZ2U9MHxRbihnZSksYmU9MHxRbihvdDw8MyksYVtXZT4+Ml09MCxLPTB8YVtTdD4+Ml0sZj0wLEc9MDshKCgwfEcpPj0oMHxvdCkpOykoMHwoRD0wfGFbKE09SysoRzw8''@;'; + put 'put ''Mil8MCk+PjJdKSk+LTEmJihhW3BlKyhhW1dlPj4yXTw8Mik+PjJdPUcsYVtnZSsoYVtXZT4+Ml08PDIpPj4yXT1mLGFbV2U+PjJdPVI9MSsobnQ9MHxhW1dlPj4yXSl8MCxfW2JlKyhudDw8Myk+PjNdPTEsKDB8RCkhPSgwfEcpJiYoYVtwZSsoUjw8Mik+PjJdPWFbTT4+Ml0sYVtnZSsoYVtX''@;'; + put 'put ''ZT4+Ml08PDIpPj4yXT1mLGFbV2U+PjJdPTErKG50PTB8YVtXZT4+Ml0pLF9bYmUrKG50PDwzKT4+M109MSxhW0srKGFbTT4+Ml08PDIpPj4yXT0tMSksYVtNPj4yXT0tMSxmPWYrMXwwKSxHPUcrMXwwO290PTB8cjQoMHxhW1dlPj4yXSxvdCxmLHBlLGdlLGJlLDEsOCksYVt3Pj4yXT1vdCxv''@;'; + put 'put ''dD0wfFd5KG90KSxhW2I+PjJdPW90LHc9MHxZNChvdCxsLDB8YVt3Pj4yXSksYVtjPj4yXT13LHc/KEtmKDB8YVtiPj4yXSxtLEEsMCksYVtiPj4yXT0wfFU0KDB8YVtiPj4yXSksYVsoSz0zNisoRz0wfGFbYz4+Ml0pfDApPj4yXT0zfGFbSz4+Ml0sYVtjPj4yXT0wfHdwKEcpLGFbcD4+Ml09''@;'; + put 'put ''MCxHPWJlLEs9Z2Usaz1wZSxSPXBlLEQ9Z2UsTT1iZSk6KEc9YmUsSz1nZSxrPXBlLFI9cGUsRD1nZSxNPWJlKX1lbHNlIEc9MCxLPTAsaz0wLFI9MCxEPTAsTT0wfX13aGlsZSgwKTswfChmPTB8YVtTdD4+Ml0pJiZGdChmKSwwfChmPTB8YVtrdD4+Ml0pJiZGdChmKSwwfGsmJkZ0KFIpLDB8''@;'; + put 'put ''SyYmRnQoRCksMHxHJiZGdChNKSwwfChmPTB8YVtsdD4+Ml0pJiZGdChmKSwwfChmPTB8YVtFdD4+Ml0pJiZGdChmKSxhZT1adH1mdW5jdGlvbiBGMChsLGMsZixwLG0pe2N8PTAscHw9MCxtfD0wO3ZhciBiZSxIZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdl''@;'; + put 'put ''PTAsT2U9MCxMZT0wLFJlPTA7Zm9yKE9lPTB8YVsyMCsobHw9MCk+PjJdLExlPTB8YVtsKzI0Pj4yXSxhWyhmfD0wKT4+Ml09MHxRbihSZT0oSGU9MHxhW2w+PjJdKTw8MiksYVtwPj4yXT0wfFFuKFJlKzR8MCksUmU9MHxRbihSZSksQT0wOyEoKDB8QSk+PSgwfEhlKSk7KWFbUmUrKEE8PDIp''@;'; + put 'put ''Pj4yXT1BLEE9QSsxfDA7YVttPj4yXT0wLGFbKGdlPTB8YVtwPj4yXSk+PjJdPTAsYmU9MHxhW2wrMjg+PjJdO2U6ZG97aWYoYyl7Zm9yKGdlPTB8RmQoSGUpLFI9MCxBPTA7Oyl7aWYoKDB8Uik+PSgwfEhlKSl7cGU9MCxsPTAsYj0wO2JyZWFrfWw9MHxhW2dlKyhSPDwyKT4+Ml07dDpkb3tp''@;'; + put 'put ''ZigtMSE9KDB8YVtSZSsobDw8Mik+PjJdKSYmKEs9MHxhW09lKyhsPDwyKT4+Ml0sMT09KCgwfGFbT2UrKGwrMTw8Mik+PjJdKS1LfDApKSl7Zm9yKGFbUmUrKChrPTB8YVtMZSsoSzw8Mik+PjJdKTw8Mik+PjJdPS0xLGFbKE09MHxhW2Y+PjJdKSsoQTw8Mik+PjJdPWssRD1PZSsoaysxPDwy''@;'; + put 'put ''KXwwLHc9MHxhW09lKyhrPDwyKT4+Ml0sQT1BKzF8MDshKCgwfHcpPj0oMHxhW0Q+PjJdKSk7KSgwfGspIT0oMHwoYz0wfGFbKGw9TGUrKHc8PDIpfDApPj4yXSkpJiYxPT0oKDB8YVtPZSsoYysxPDwyKT4+Ml0pLSgwfGFbT2UrKGM8PDIpPj4yXSl8MCkmJihhW1JlKyhjPDwyKT4+Ml09LTEs''@;'; + put 'put ''YVtNKyhBPDwyKT4+Ml09YVtsPj4yXSxBPUErMXwwKSx3PXcrMXwwO2lmKChBLShjPTB8YVsodz0wfGFbcD4+Ml0pKygobD0wfGFbbT4+Ml0pPDwyKT4+Ml0pfDApPDUpe2FbbT4+Ml09cGU9bCsxfDAsYVt3KyhwZTw8Mik+PjJdPUE7YnJlYWt9Zm9yKGM9YysxfDAsYVttPj4yXT1sPWwrMXww''@;'; + put 'put ''LGFbdysobDw8Mik+PjJdPWMsbD1jOzspe2lmKCEoKDB8Yyk8KDB8QSkmKDB8bCk8KDB8QSkpKWJyZWFrIHQ7cGU9KDB8QSk8KDB8KHBlPWMrM3wwKSk/QTpwZSxhW20+PjJdPUQ9MSsoMHxhW20+PjJdKXwwLGFbdysoRDw8Mik+PjJdPXBlLGw9bCsxfDAsYz1wZX19fXdoaWxlKDApO1I9Uisx''@;'; + put 'put ''fDB9Zm9yKDs7KXtpZigoMHxwZSk+PSgwfEhlKSl7bD0wO2JyZWFrfWlmKC0xIT0oMHwoYz0wfGFbKFI9UmUrKChEPTB8YVtnZSsocGU8PDIpPj4yXSk8PDIpfDApPj4yXSkpKXtmb3IoSz0wfGFbT2UrKEQrMTw8Mik+PjJdLGs9MSxNPTB8YVtPZSsoRDw8Mik+PjJdOyEoKDB8TSk+PSgwfEsp''@;'; + put 'put ''KTspKDB8RCkhPSgwfCh3PTB8YVtMZSsoTTw8Mik+PjJdKSkmJi0xIT0oMHxhW1JlKyh3PDwyKT4+Ml0pJiYoLTEhPSgwfGMpPyhHPStfW2JlKyhNPDwzKT4+M10sMCE9KDB8ayl8fEc+Yj8oaz0wLGw9dyxiPUcpOms9MCk6Yz0tMSksTT1NKzF8MDtrfHwoYVtSZSsobDw8Mik+PjJdPS0xLGFb''@;'; + put 'put ''Uj4+Ml09LTEsYVsoUj0wfGFbZj4+Ml0pKyhBPDwyKT4+Ml09RCxLPUErMnwwLGFbUisoQSsxPDwyKT4+Ml09bCxSPTB8YVtwPj4yXSxhW20+PjJdPUE9MSsoMHxhW20+PjJdKXwwLGFbUisoQTw8Mik+PjJdPUssQT1LKX1wZT1wZSsxfDB9Zm9yKDshKCgwfGwpPj0oMHxIZSkpOykoMHxhW1Jl''@;'; + put 'put ''KyhsPDwyKT4+Ml0pPT0oMHxsKSYmKExlPUErMXwwLGFbKDB8YVtmPj4yXSkrKEE8PDIpPj4yXT1sLE9lPTB8YVtwPj4yXSxhW20+PjJdPUE9MSsoMHxhW20+PjJdKXwwLGFbT2UrKEE8PDIpPj4yXT1MZSxBPUxlKSxsPWwrMXwwO0Z0KGdlKX1lbHNle0E9MCxsPTA7dDpmb3IoOzspe2Zvcig7''@;'; + put 'put ''Oyl7aWYoKDB8bCk+PSgwfEhlKSl7bD0wLGI9MCxjPTA7YnJlYWsgdH1pZihjPWwsbD1sKzF8MCwtMSE9KDB8YVtSZSsoYzw8Mik+PjJdKSYmMT09KCgwfGFbT2UrKGw8PDIpPj4yXSktKGM9MHxhW09lKyhjPDwyKT4+Ml0pfDApKWJyZWFrfWZvcihhW1JlKygoTT0wfGFbTGUrKGM8PDIpPj4y''@;'; + put 'put ''XSk8PDIpPj4yXT0tMSxhWyhEPTB8YVtmPj4yXSkrKEE8PDIpPj4yXT1NLFI9T2UrKE0rMTw8Mil8MCxrPTB8YVtPZSsoTTw8Mik+PjJdLEE9QSsxfDA7ISgoMHxrKT49KDB8YVtSPj4yXSkpOykoMHxNKSE9KDB8KHc9MHxhWyhjPUxlKyhrPDwyKXwwKT4+Ml0pKSYmMT09KCgwfGFbT2UrKHcr''@;'; + put 'put ''MTw8Mik+PjJdKS0oMHxhW09lKyh3PDwyKT4+Ml0pfDApJiYoYVtSZSsodzw8Mik+PjJdPS0xLGFbRCsoQTw8Mik+PjJdPWFbYz4+Ml0sQT1BKzF8MCksaz1rKzF8MDtpZigoQS0odz0wfGFbZ2UrKChjPTB8YVttPj4yXSk8PDIpPj4yXSl8MCk8NSlhW20+PjJdPXA9YysxfDAsYVtnZSsocDw8''@;'; + put 'put ''Mik+PjJdPUE7ZWxzZSBmb3Iodz13KzF8MCxhW20+PjJdPWM9YysxfDAsYVtnZSsoYzw8Mik+PjJdPXcsYz13Ozspe2lmKCEoKDB8dyk8KDB8QSkmKDB8Yyk8KDB8QSkpKWNvbnRpbnVlIHQ7cD0oMHxBKTwoMHwocD13KzN8MCkpP0E6cCxhW20+PjJdPXBlPTErKDB8YVttPj4yXSl8MCxhW2dl''@;'; + put 'put ''KyhwZTw8Mik+PjJdPXAsYz1jKzF8MCx3PXB9fXQ6Zm9yKDs7KXtkb3tmb3IoUj1jOzspe2lmKCgwfFIpPj0oMHxIZSkpe2w9MDticmVhayB0fWlmKC0xIT0oMHwodz0wfGFbKEs9UmUrKFI8PDIpfDApPj4yXSkpKWJyZWFrO1I9UisxfDB9Zm9yKHBlPTB8YVtPZSsoKGM9UisxfDApPDwyKT4+''@;'; + put 'put ''Ml0sTT0xLEQ9MHxhW09lKyhSPDwyKT4+Ml07ISgoMHxEKT49KDB8cGUpKTspKDB8UikhPSgwfChrPTB8YVtMZSsoRDw8Mik+PjJdKSkmJi0xIT0oMHxhW1JlKyhrPDwyKT4+Ml0pJiYoLTEhPSgwfHcpPyhHPStfW2JlKyhEPDwzKT4+M10sMCE9KDB8TSl8fEc+Yj8oTT0wLGw9ayxiPUcpOk09''@;'; + put 'put ''MCk6dz0tMSksRD1EKzF8MH13aGlsZSgwIT0oMHxNKSk7YVtSZSsobDw8Mik+PjJdPS0xLGFbSz4+Ml09LTEsYVsocGU9MHxhW2Y+PjJdKSsoQTw8Mik+PjJdPVIscD1BKzJ8MCxhW3BlKyhBKzE8PDIpPj4yXT1sLGFbbT4+Ml09cGU9MSsoMHxhW20+PjJdKXwwLGFbZ2UrKHBlPDwyKT4+Ml09''@;'; + put 'put ''cCxBPXB9Zm9yKDs7KXtpZigoMHxsKT49KDB8SGUpKWJyZWFrIGU7KDB8YVtSZSsobDw8Mik+PjJdKT09KDB8bCkmJihMZT1BKzF8MCxhWygwfGFbZj4+Ml0pKyhBPDwyKT4+Ml09bCxhW20+PjJdPUE9MSsoMHxhW20+PjJdKXwwLGFbZ2UrKEE8PDIpPj4yXT1MZSxBPUxlKSxsPWwrMXwwfX19''@;'; + put 'put ''d2hpbGUoMCk7RnQoUmUpfWZ1bmN0aW9uIEgwKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiZSxSZSxWZSxxZSxudCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsT2U9MCxMZT0wLEhlPTA7Zm9yKG50PWFlLGFlPWFlKzE2fDAs''@;'; + put 'put ''Sz1udCs4fDAscWU9bnQsYVsoVmU9bnQrNHwwKT4+Ml09MCxhW3FlPj4yXT0wLExlPTB8YVtsKzIwPj4yXSxPZT0wfGFbbCsyND4+Ml0sYVtmPj4yXT0wfFFuKEhlPShSZT0wfGFbbD4+Ml0pPDwyKSxhW3A+PjJdPTB8UW4oSGUrNHwwKSxIZT0wfFFuKEhlKSxBPTA7ISgoMHxBKT49KDB8UmUp''@;'; + put 'put ''KTspYVtIZSsoQTw8Mik+PjJdPUEsQT1BKzF8MDsoZnVuY3Rpb24gZHgobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIEcsT2UsTGUsUmUsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxLPTAscGU9MCxnZT0wLGJlPTAsSGU9MDtmb3IocGU9MHxhWzIwKyhsfD0wKT4+Ml0sZ2U9''@;'; + put 'put ''MHxhW2wrMjQ+PjJdLEc9MHxhW2w+PjJdLE9lPTB8UW4oYmU9KEhlPTB8YVtsKzQ+PjJdKTw8MiksTGU9MHxRbihiZSs0fDApLFJlPTB8UW4oYmUpLGJlPTB8UW4oYmUpLEs9TGUrNHwwLGw9MDshKCgwfGwpPj0oMHxIZSkpOylhW09lKyhsPDwyKT4+Ml09MCxsPWwrMXwwO2ZvcihhW0s+PjJd''@;'; + put 'put ''PUhlLGw9MDs7KXtpZigoMHxsKT49KDB8SGUpKXt3PTEsTT0wO2JyZWFrfWFbUmUrKGw8PDIpPj4yXT0tMSxsPWwrMXwwfWU6Zm9yKDshKCgwfE0pPj0oMHxHKSk7KXtmb3IoUj1wZSsoKEQ9TSsxfDApPDwyKXwwLGw9MHxhWyhBPXBlKyhNPDwyKXwwKT4+Ml07ISgoMHxsKT49KDB8KG09MHxh''@;'; + put 'put ''W1I+PjJdKSkpOylhWyhrPUsrKGFbT2UrKGFbZ2UrKGw8PDIpPj4yXTw8Mik+PjJdPDwyKXwwKT4+Ml09KDB8YVtrPj4yXSktMSxsPWwrMXwwO2ZvcihsPXcsaz0wfGFbQT4+Ml07Oyl7aWYoKDB8ayk+PSgwfG0pKXt3PWwsTT1EO2NvbnRpbnVlIGV9KDB8YVsoQT1SZSsoKGI9MHxhWyhtPU9l''@;'; + put 'put ''KyhhWyh3PWdlKyhrPDwyKXwwKT4+Ml08PDIpfDApPj4yXSk8PDIpfDApPj4yXSk8KDB8TSk/KGFbQT4+Ml09TSwwfGFbKG09SysoYjw8Mil8MCk+PjJdPyhhW2JlKyhiPDwyKT4+Ml09bCxhW0srKGw8PDIpPj4yXT0xLEE9bCsxfDAsbT1PZSsoYVt3Pj4yXTw8Mil8MCk6KGFbbT4+Ml09MSxB''@;'; + put 'put ''PWwsbD1iLG09YmUrKGI8PDIpfDApLGFbbT4+Ml09bCxsPUEpOihhW20+PjJdPWFbKGI9YmUrKGI8PDIpfDApPj4yXSxhWyhiPUsrKGFbYj4+Ml08PDIpfDApPj4yXT0xKygwfGFbYj4+Ml0pKSxrPWsrMXwwLG09MHxhW1I+PjJdfX1mb3IoYVtMZT4+Ml09MCxsPTAsbT0wOyEoKDB8bCk+PSgw''@;'; + put 'put ''fHcpKTspYVsoSz1MZSsoKHBlPWwrMXwwKTw8Mil8MCk+PjJdPWdlPSgwfGFbSz4+Ml0pK218MCxsPXBlLG09Z2U7Zm9yKGFbZj4+Ml09YmUsbD0wOzspe2lmKCgwfGwpPj0oMHxIZSkpe2w9dzticmVha31hWyhnZT1MZSsoYVtPZSsobDw8Mik+PjJdPDwyKXwwKT4+Ml09MSsoZj0wfGFbZ2U+''@;'; + put 'put ''PjJdKSxhW2JlKyhmPDwyKT4+Ml09bCxsPWwrMXwwfWZvcig7ISgoMHxsKTw9MCk7KWFbTGUrKGw8PDIpPj4yXT1hW0xlKygoSGU9bCstMXwwKTw8Mik+PjJdLGw9SGU7YVtMZT4+Ml09MCxhW3A+PjJdPUxlLGFbYz4+Ml09dyxGdChSZSksRnQoT2UpfSkobCxLLFZlLHFlKSxhW20+PjJdPTAs''@;'; + put 'put ''YVsoZ2U9MHxhW3A+PjJdKT4+Ml09MCxiZT0wfGFbbCsyOD4+Ml0sQT0wLGw9MDtlOmZvcig7Oyl7az0wfGFbSz4+Ml0sTT0wfGFbcWU+PjJdO2Rve2lmKCgwfGwpPj0oMHxrKSlicmVhayBlO0Q9bCxiPTB8YVsoRz1NKygobD1sKzF8MCk8PDIpfDApPj4yXSxEPTB8YVtNKyhEPDwyKT4+Ml19''@;'; + put 'put ''d2hpbGUoKGItRHwwKTwyKTtmb3IoTT0wfGFbVmU+PjJdLGs9MHxhW2dlKyhhW20+PjJdPDwyKT4+Ml07ISgoMHxEKT49KDB8YikpOylhW0hlKyhhWyhwZT1NKyhEPDwyKXwwKT4+Ml08PDIpPj4yXT0tMSxiPUErMXwwLGFbKDB8YVtmPj4yXSkrKEE8PDIpPj4yXT1hW3BlPj4yXSwoYi1rfDAp''@;'; + put 'put ''PjM/KGFbbT4+Ml09QT0xKygwfGFbbT4+Ml0pfDAsYVtnZSsoQTw8Mik+PjJdPWIsQT1iKTpBPWssaz1BLEQ9RCsxfDAsQT1iLGI9MHxhW0c+PjJdOygwfEEpPD0oMHxrKXx8KGFbbT4+Ml09cGU9MSsoMHxhW20+PjJdKXwwLGFbZ2UrKHBlPDwyKT4+Ml09QSl9ZTpkb3tpZihjKXtmb3IoZ2U9''@;'; + put 'put ''MHxGZChSZSkscGU9MCxsPTAsdz0wOzspe2lmKCgwfHBlKT49KDB8UmUpKXtsPTA7YnJlYWt9aWYoLTEhPSgwfChiPTB8YVsoYz1IZSsoKEc9MHxhW2dlKyhwZTw8Mik+PjJdKTw8Mil8MCk+PjJdKSkpe2ZvcihLPTB8YVtMZSsoRysxPDwyKT4+Ml0sTT0xLEQ9MHxhW0xlKyhHPDwyKT4+Ml07''@;'; + put 'put ''ISgoMHxEKT49KDB8SykpOykoMHxHKSE9KDB8KGs9MHxhW09lKyhEPDwyKT4+Ml0pKSYmLTEhPSgwfGFbSGUrKGs8PDIpPj4yXSkmJigtMSE9KDB8Yik/KFI9K19bYmUrKEQ8PDMpPj4zXSwwIT0oMHxNKXx8Uj53PyhNPTAsbD1rLHc9Uik6TT0wKTpiPS0xKSxEPUQrMXwwO018fChhW0hlKyhs''@;'; + put 'put ''PDwyKT4+Ml09LTEsYVtjPj4yXT0tMSxhWyhjPTB8YVtmPj4yXSkrKEE8PDIpPj4yXT1HLEs9QSsyfDAsYVtjKyhBKzE8PDIpPj4yXT1sLGM9MHxhW3A+PjJdLGFbbT4+Ml09QT0xKygwfGFbbT4+Ml0pfDAsYVtjKyhBPDwyKT4+Ml09SyxBPUspfXBlPXBlKzF8MH1mb3IoOyEoKDB8bCk+PSgw''@;'; + put 'put ''fFJlKSk7KSgwfGFbSGUrKGw8PDIpPj4yXSk9PSgwfGwpJiYoTGU9QSsxfDAsYVsoMHxhW2Y+PjJdKSsoQTw8Mik+PjJdPWwsT2U9MHxhW3A+PjJdLGFbbT4+Ml09QT0xKygwfGFbbT4+Ml0pfDAsYVtPZSsoQTw8Mik+PjJdPUxlLEE9TGUpLGw9bCsxfDA7RnQoZ2UpfWVsc2V7bD0wLHc9MCxi''@;'; + put 'put ''PTA7dDpmb3IoOzspe2Rve2ZvcihjPWI7Oyl7aWYoKDB8Yyk+PSgwfFJlKSl7bD0wO2JyZWFrIHR9aWYoLTEhPSgwfChrPTB8YVsoSz1IZSsoYzw8Mil8MCk+PjJdKSkpYnJlYWs7Yz1jKzF8MH1mb3IocGU9MHxhW0xlKygoYj1jKzF8MCk8PDIpPj4yXSxEPTEsRz0wfGFbTGUrKGM8PDIpPj4y''@;'; + put 'put ''XTshKCgwfEcpPj0oMHxwZSkpOykoMHxjKSE9KDB8KE09MHxhW09lKyhHPDwyKT4+Ml0pKSYmLTEhPSgwfGFbSGUrKE08PDIpPj4yXSkmJigtMSE9KDB8ayk/KFI9K19bYmUrKEc8PDMpPj4zXSwwIT0oMHxEKXx8Uj53PyhEPTAsbD1NLHc9Uik6RD0wKTprPS0xKSxHPUcrMXwwfXdoaWxlKDAh''@;'; + put 'put ''PSgwfEQpKTthW0hlKyhsPDwyKT4+Ml09LTEsYVtLPj4yXT0tMSxhWyhwZT0wfGFbZj4+Ml0pKyhBPDwyKT4+Ml09YyxwPUErMnwwLGFbcGUrKEErMTw8Mik+PjJdPWwsYVttPj4yXT1wZT0xKygwfGFbbT4+Ml0pfDAsYVtnZSsocGU8PDIpPj4yXT1wLEE9cH1mb3IoOzspe2lmKCgwfGwpPj0o''@;'; + put 'put ''MHxSZSkpYnJlYWsgZTsoMHxhW0hlKyhsPDwyKT4+Ml0pPT0oMHxsKSYmKExlPUErMXwwLGFbKDB8YVtmPj4yXSkrKEE8PDIpPj4yXT1sLGFbbT4+Ml09QT0xKygwfGFbbT4+Ml0pfDAsYVtnZSsoQTw8Mik+PjJdPUxlLEE9TGUpLGw9bCsxfDB9fX13aGlsZSgwKTtGdCgwfGFbVmU+PjJdKSxG''@;'; + put 'put ''dCgwfGFbcWU+PjJdKSxGdChIZSksYWU9bnR9ZnVuY3Rpb24gZjEobCxjLGYscCl7Znw9MCxwfD0wO3ZhciBLLHBlLE9lLFJlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLGdlPTAsYmU9MCxMZT0wO2ZvcihnZT0wfGFbMjArKGx8PTApPj4yXSxiZT0wfGFbbCsyND4+Ml0s''@;'; + put 'put ''YVsoY3w9MCk+PjJdPTB8UW4oTGU9KFJlPTB8YVtsPj4yXSk8PDIpLGFbZj4+Ml09MHxRbihMZSs0fDApLExlPTB8UW4oTGUpLHBlPTB8UW4oUmU8PDQpLG09MDshKCgwfG0pPj0oMHxSZSkpOylhW0xlKyhtPDwyKT4+Ml09bSxtPW0rMXwwO2ZvcihhW3A+PjJdPTAsYVthW2Y+PjJdPj4yXT0w''@;'; + put 'put ''LEs9MHxhW2wrMjg+PjJdLE9lPTB8RmQoUmUpLG09MCxEPTA7Oyl7aWYoKDB8RCk+PSgwfFJlKSl7Rz0wO2JyZWFrfWw9MHxhW09lKyhEPDwyKT4+Ml07ZTpkb3tpZigtMSE9KDB8YVtMZSsobDw8Mik+PjJdKSYmKFI9MHxhW2dlKyhsPDwyKT4+Ml0sMT09KCgwfGFbZ2UrKGwrMTw8Mik+PjJd''@;'; + put 'put ''KS1SfDApKSl7Zm9yKGFbTGUrKChiPTB8YVtiZSsoUjw8Mik+PjJdKTw8Mik+PjJdPS0xLGFbKGs9MHxhW2M+PjJdKSsobTw8Mik+PjJdPWIsTT1nZSsoYisxPDwyKXwwLHc9MHxhW2dlKyhiPDwyKT4+Ml0sbT1tKzF8MDshKCgwfHcpPj0oMHxhW00+PjJdKSk7KSgwfGIpIT0oMHwoQT0wfGFb''@;'; + put 'put ''KGw9YmUrKHc8PDIpfDApPj4yXSkpJiYxPT0oKDB8YVtnZSsoQSsxPDwyKT4+Ml0pLSgwfGFbZ2UrKEE8PDIpPj4yXSl8MCkmJihhW0xlKyhBPDwyKT4+Ml09LTEsYVtrKyhtPDwyKT4+Ml09YVtsPj4yXSxtPW0rMXwwKSx3PXcrMXwwO2lmKChtLShBPTB8YVsodz0wfGFbZj4+Ml0pKygobD0w''@;'; + put 'put ''fGFbcD4+Ml0pPDwyKT4+Ml0pfDApPDUpe2FbcD4+Ml09Rz1sKzF8MCxhW3crKEc8PDIpPj4yXT1tO2JyZWFrfWZvcihBPUErMXwwLGFbcD4+Ml09bD1sKzF8MCxhW3crKGw8PDIpPj4yXT1BLGw9QTs7KXtpZighKCgwfEEpPCgwfG0pJigwfGwpPCgwfG0pKSlicmVhayBlO0c9KDB8bSk8KDB8''@;'; + put 'put ''KEc9QSszfDApKT9tOkcsYVtwPj4yXT1NPTErKDB8YVtwPj4yXSl8MCxhW3crKE08PDIpPj4yXT1HLGw9bCsxfDAsQT1HfX19d2hpbGUoMCk7RD1EKzF8MH1mb3IoOzspe2lmKCgwfEcpPj0oMHxSZSkpe2w9MDticmVha31pZigtMSE9KDB8KGw9MHxhWyhSPUxlKygoRD0wfGFbT2UrKEc8PDIp''@;'; + put 'put ''Pj4yXSk8PDIpfDApPj4yXSkpKXtmb3IoTT0wfGFbZ2UrKEQrMTw8Mik+PjJdLEE9MCxrPTB8YVtnZSsoRDw8Mik+PjJdOyEoKDB8ayk+PSgwfE0pKTspKDB8RCkhPSgwfChiPTB8YVtiZSsoazw8Mik+PjJdKSkmJi0xIT0oMHxhW0xlKyhiPDwyKT4+Ml0pJiYodz1BPDwxLC0xPT0oMHxsKT9s''@;'; + put 'put ''PS0xOihfW3BlKyh3PDwzKT4+M109KygwfGIpLF9bcGUrKCgxfHcpPDwzKT4+M109K19bSysoazw8Myk+PjNdLEE9QSsxfDApKSxrPWsrMXwwO2lmKCgwfEEpPjApe2Zvcih4MShwZSxBLDE2LDgxKSxBPSgwfEEpPDM/QTozLGw9MDshKCgwfGwpPj0oMHxBKSk7KWFbTGUrKChNPX5+K19bcGUr''@;'; + put 'put ''KGw8PDE8PDMpPj4zXSk8PDIpPj4yXT0tMSxhWygwfGFbYz4+Ml0pKyhtPDwyKT4+Ml09TSxsPWwrMXwwLG09bSsxfDA7YVtSPj4yXT0tMSxSPW0rMXwwLGFbKDB8YVtjPj4yXSkrKG08PDIpPj4yXT1ELEQ9MHxhW2Y+PjJdLGFbcD4+Ml09bT0xKygwfGFbcD4+Ml0pfDAsYVtEKyhtPDwyKT4+''@;'; + put 'put ''Ml09UixtPVJ9fUc9RysxfDB9Zm9yKDshKCgwfGwpPj0oMHxSZSkpOykoMHxhW0xlKyhsPDwyKT4+Ml0pPT0oMHxsKSYmKGJlPW0rMXwwLGFbKDB8YVtjPj4yXSkrKG08PDIpPj4yXT1sLGdlPTB8YVtmPj4yXSxhW3A+PjJdPW09MSsoMHxhW3A+PjJdKXwwLGFbZ2UrKG08PDIpPj4yXT1iZSxt''@;'; + put 'put ''PWJlKSxsPWwrMXwwO0Z0KE9lKSxGdChMZSl9ZnVuY3Rpb24gX2kobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIE0scGUsZ2UsYmUsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTAsUj0wLEc9MCxLPTA7Zm9yKHBlPTB8YVsyMCsobHw9MCk+PjJdLGdlPTB8YVtsKzI0Pj4yXSxtPTB8YVtsKzQ+''@;'; + put 'put ''PjJdLE09MHxRbigoYmU9MHxhW2w+PjJdKTw8MiksYVtmPj4yXT1NLGw9MDshKCgwfGwpPj0oMHxiZSkpOylhW00rKGw8PDIpPj4yXT1sLGw9bCsxfDA7YVtwPj4yXT1tO2U6ZG97aWYoYyl7Zm9yKGM9MHxGZChiZSksbD0wOyEoKDB8bCk+PSgwfGJlKSk7KXtmb3Iodz1wZSsoMSsoQT0wfGFb''@;'; + put 'put ''YysobDw8Mik+PjJdKTw8Mil8MCxtPTB8YVtwZSsoQTw8Mik+PjJdOyEoKDB8bSk+PSgwfGFbdz4+Ml0pKTspKDB8QSkhPSgwfChrPTB8YVsoYj1nZSsobTw8Mil8MCk+PjJdKSkmJigwfGFbKFI9KEQ9MHxhW2Y+PjJdKSsoazw8Mil8MCk+PjJdKT09KDB8aykmJigwfGFbKEc9RCsoQTw8Mil8''@;'; + put 'put ''MCk+PjJdKT09KDB8QSkmJihhW1I+PjJdPUEsYVtHPj4yXT1hW2I+PjJdLGFbcD4+Ml09KDB8YVtwPj4yXSktMSksbT1tKzF8MDtsPWwrMXwwfUZ0KGMpfWVsc2V7bT0wO3Q6Zm9yKDs7KXtpZigoMHxtKT49KDB8YmUpKWJyZWFrIGU7Zm9yKEE9cGUrKChjPW0rMXwwKTw8Mil8MCx3PU0rKG08''@;'; + put 'put ''PDIpfDAsYj1NKyhtPDwyKXwwLGw9MHxhW3BlKyhtPDwyKT4+Ml07Oyl7aWYoKDB8bCk+PSgwfGFbQT4+Ml0pKXttPWM7Y29udGludWUgdH0oMHxtKSE9KDB8KGY9MHxhWyhrPWdlKyhsPDwyKXwwKT4+Ml0pKSYmKDB8YVsoSz1NKyhmPDwyKXwwKT4+Ml0pPT0oMHxmKSYmKDB8YVt3Pj4yXSk9''@;'; + put 'put ''PSgwfG0pJiYoYVtLPj4yXT1tLGFbYj4+Ml09YVtrPj4yXSxhW3A+PjJdPSgwfGFbcD4+Ml0pLTEpLGw9bCsxfDB9fX19d2hpbGUoMCl9ZnVuY3Rpb24gVm0obCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIHBlLGdlLGJlLE9lLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0w''@;'; + put 'put ''LEs9MDtmb3IoZ2U9MHxhWzIwKyhsfD0wKT4+Ml0sYmU9MHxhW2wrMjQ+PjJdLEE9MHxhW2wrND4+Ml0sRz0wfFFuKChPZT0wfGFbbD4+Ml0pPDwyKSxhW2Y+PjJdPUcsbT0wOyEoKDB8bSk+PSgwfE9lKSk7KWFbRysobTw8Mik+PjJdPW0sbT1tKzF8MDthW3A+PjJdPUEscGU9MHxhW2wrMjg+''@;'; + put 'put ''PjJdO2U6ZG97aWYoYyl7Zm9yKEs9MHxGZChPZSksRz0wLG09MCx3PTA7ISgoMHxHKT49KDB8T2UpKTspe2lmKCgwfGFbKEQ9KE09MHxhW2Y+PjJdKSsoKGs9MHxhW0srKEc8PDIpPj4yXSk8PDIpfDApPj4yXSk9PSgwfGspKXtmb3IoUj0wfGFbZ2UrKGsrMTw8Mik+PjJdLGM9MHxhW2dlKyhr''@;'; + put 'put ''PDwyKT4+Ml0sQT0xOyEoKDB8Yyk+PSgwfFIpKTspKDB8aykhPSgwfChsPTB8YVtiZSsoYzw8Mik+PjJdKSkmJigwfGFbTSsobDw8Mik+PjJdKT09KDB8bCkmJihiPStfW3BlKyhjPDwzKT4+M10sMCE9KDB8QSl8fGI+dz8oQT0wLG09bCx3PWIpOkE9MCksYz1jKzF8MDtBfHwoYVtNKyhtPDwy''@;'; + put 'put ''KT4+Ml09ayxhW0Q+PjJdPW0sYVtwPj4yXT0oMHxhW3A+PjJdKS0xKX1HPUcrMXwwfUZ0KEspfWVsc2UgZm9yKG09MCx3PTAsaz0wOzspe2lmKCgwfGspPj0oMHxPZSkpYnJlYWsgZTtmb3IoRD0wfGFbZ2UrKChNPWsrMXwwKTw8Mik+PjJdLFI9Rysoazw8Mil8MCxBPTEsYz0wfGFbZ2UrKGs8''@;'; + put 'put ''PDIpPj4yXTshKCgwfGMpPj0oMHxEKSk7KSgwfGspIT0oMHwobD0wfGFbYmUrKGM8PDIpPj4yXSkpJiYoMHxhW0crKGw8PDIpPj4yXSk9PSgwfGwpJiYoMHxhW1I+PjJdKT09KDB8aykmJihiPStfW3BlKyhjPDwzKT4+M10sMCE9KDB8QSl8fGI+dz8oQT0wLG09bCx3PWIpOkE9MCksYz1jKzF8''@;'; + put 'put ''MDswfEF8fChhW0crKG08PDIpPj4yXT1rLGFbRysoazw8Mik+PjJdPW0sYVtwPj4yXT0oMHxhW3A+PjJdKS0xKSxrPU19fXdoaWxlKDApfWZ1bmN0aW9uIFBfKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgRCxSLEcsQT0wLHc9MCxiPTAsaz0wLE09MDtmb3IoUj0wfGFbMjAr''@;'; + put 'put ''KGx8PTApPj4yXSxHPTB8YVtsKzI0Pj4yXSxrPTB8UW4oKEQ9MHxhW2w+PjJdKTw8MiksYVtmPj4yXT1rLGw9MDshKCgwfGwpPj0oMHxEKSk7KWFbaysobDw8Mik+PjJdPS0xMDAsbD1sKzF8MDthW3A+PjJdPTAsYVttPj4yXT0wO2U6ZG97aWYoYyl7Zm9yKGI9MHxGZChEKSx3PTA7ISgoMHx3''@;'; + put 'put ''KT49KDB8RCkpOyl7bD0oTT0wfGFbZj4+Ml0pKygoaz0wfGFbYisodzw8Mik+PjJdKTw8Mil8MDt0OmRve2lmKC0xMDA9PSgwfGFbbD4+Ml0pKWZvcihjPTB8YVtwPj4yXSxhW3A+PjJdPWMrMSxhW2w+PjJdPWMsYz1SKyhrKzE8PDIpfDAsbD0wfGFbUisoazw8Mik+PjJdOzspe2lmKCgwfGwp''@;'; + put 'put ''Pj0oMHxhW2M+PjJdKSlicmVhayB0OygwfGspIT0oMHwoQT0wfGFbRysobDw8Mik+PjJdKSkmJihhW00rKEE8PDIpPj4yXT0tMSxhW20+PjJdPTErKDB8YVttPj4yXSkpLGw9bCsxfDB9fXdoaWxlKDApO3c9dysxfDB9RnQoYil9ZWxzZXtjPTA7dDpmb3IoOzspe2lmKCgwfGMpPj0oMHxEKSli''@;'; + put 'put ''cmVhayBlO2lmKC0xMDA9PSgwfGFbaysoYzw8Mik+PjJdKSlmb3IoYVtwPj4yXT0xKyhBPTB8YVtwPj4yXSksYVtrKyhjPDwyKT4+Ml09QSx3PVIrKChBPWMrMXwwKTw8Mil8MCxsPTB8YVtSKyhjPDwyKT4+Ml07Oyl7aWYoKDB8bCk+PSgwfGFbdz4+Ml0pKXtjPUE7Y29udGludWUgdH0oMHxj''@;'; + put 'put ''KSE9KDB8KGI9MHxhW0crKGw8PDIpPj4yXSkpJiYoYVtrKyhiPDwyKT4+Ml09LTEsYVttPj4yXT0xKygwfGFbbT4+Ml0pKSxsPWwrMXwwfWVsc2UgYz1jKzF8MH19fXdoaWxlKDApO2FbbT4+Ml09KDB8YVttPj4yXSkrKDB8YVtwPj4yXSl9ZnVuY3Rpb24gWW4obCxjLGYscCxtKXtjfD0wLGZ8''@;'; + put 'put ''PTAscHw9MCxtfD0wO3ZhciBNLEQsUixHLEsscGUsQT0wLHc9MCxiPTAsaz0wO2ZvcihwZT1hZSxhZT1hZSsxNnwwLFI9cGUrNHwwLEc9cGUsSz0wfGFbMjArKGx8PTApPj4yXSxEPTB8YVtsKzI0Pj4yXSxsPTB8UW4oKHc9MHxhW2w+PjJdKTw8MiksYVtmPj4yXT1sLEE9MDthW1I+PjJdPUEs''@;'; + put 'put ''ISgoMHxBKT49KDB8dykpOylhW2wrKEE8PDIpPj4yXT0tMTAwLEE9MSsoMHxhW1I+PjJdKXwwO2FbcD4+Ml09MCxhW20+PjJdPTAsTT0wfGZ1bmN0aW9uIEt0KGwsYyl7bHw9MCxjfD0wO3ZhciBtLGY9MCxwPTA7Zm9yKG09MHxRbigyOCksYVttPj4yXT0wLGFbbSs0Pj4yXT1sLGFbbSs4Pj4y''@;'; + put 'put ''XT1jLGFbbSsxMj4+Ml09LTEsYVsocD1tKzE2fDApPj4yXT0wfFFuKDQrKGM8PDIpfDApLGY9MDshKCgwfGYpPigwfGMpKTspYVsoMHxhW3A+PjJdKSsoZjw8Mik+PjJdPTAsZj1mKzF8MDtmb3IoYVsocD1tKzIwfDApPj4yXT0wfFFuKGM9NCsobDw8Mil8MCksZj0wOyEoKDB8Zik+KDB8bCkp''@;'; + put 'put ''OylhWygwfGFbcD4+Ml0pKyhmPDwyKT4+Ml09MCxmPWYrMXwwO2ZvcihjPTB8UW4oYyksYVttKzI0Pj4yXT1jLGY9MDshKCgwfGYpPigwfGwpKTspYVtjKyhmPDwyKT4+Ml09LTk5OSxmPWYrMXwwO3JldHVybiAwfG19KHcsKHc8PDEpLTJ8MCk7ZTpkb3tpZihjKXtmb3IoQT0wfEZkKHcpLGw9''@;'; + put 'put ''MDshKCgwfGwpPj0oMHx3KSk7KWFbUj4+Ml09az0wfGFbQSsobDw8Mik+PjJdLEswKE0saywoMHxhW0srKGsrMTw8Mik+PjJdKS0oMHxhW0srKGs8PDIpPj4yXSl8MCksbD1sKzF8MDtGdChBKX1lbHNlIGZvcihsPTA7Oyl7aWYoYVtSPj4yXT1sLCgwfGwpPj0oMHx3KSlicmVhayBlO0swKE0s''@;'; + put 'put ''bCwoMHxhW0srKChrPWwrMXwwKTw8Mik+PjJdKS0oMHxhW0srKGw8PDIpPj4yXSl8MCksbD1rfX13aGlsZSgwKTtlOmZvcig7az0wPT0oMHxOaShNLFIsRykpLGw9MHxhW3A+PjJdLCFrOylmb3IoYVtwPj4yXT1sKzEsYVsoMHxhW2Y+PjJdKSsoYVtSPj4yXTw8Mik+PjJdPWwsbD0wfGFbUj4+''@;'; + put 'put ''Ml0saz0wfGFbSysobDw8Mik+PjJdOzspe2lmKCgwfGspPj0oMHxhW0srKGwrMTw8Mik+PjJdKSljb250aW51ZSBlO2lmKCgwfGwpIT0oMHwoYj0wfGFbRCsoazw8Mik+PjJdKSkpe3Q6ZG97aWYoLTEwMD09KDB8YVsoMHxhW2Y+PjJdKSsoYjw8Mik+PjJdKSlmb3IoWm0oTSxiKSxhWygwfGFb''@;'; + put 'put ''Zj4+Ml0pKyhiPDwyKT4+Ml09LTEsQT1LKyhiKzE8PDIpfDAsbD0wfGFbSysoYjw8Mik+PjJdOzspe2lmKCgwfGwpPj0oMHxhW0E+PjJdKSlicmVhayB0OygwfGIpIT0oMHwodz0wfGFbKGM9RCsobDw8Mil8MCk+PjJdKSkmJi0xMDA9PSgwfGFbKDB8YVtmPj4yXSkrKHc8PDIpPj4yXSkmJih3''@;'; + put 'put ''PTB8STYoTSx3KSxhW0c+PjJdPXcsSzAoTSwwfGFbYz4+Ml0sdysxfDApKSxsPWwrMXwwfX13aGlsZSgwKTthW20+PjJdPTErKDB8YVttPj4yXSksbD0wfGFbUj4+Ml19az1rKzF8MH1hW20+PjJdPSgwfGFbbT4+Ml0pK2wsZnVuY3Rpb24gcUIobCl7dmFyIGM9MCxmPTAscD0wLG09MDtpZigw''@;'; + put 'put ''fChsfD0wKSl7aWYoMHwoYz0wfGFbKHA9bCsxNnwwKT4+Ml0pKXtmb3IobT1sKzh8MCxmPTA7ISgoMHxmKT4oMHxhW20+PjJdKSk7KUdpKDB8YVtjKyhmPDwyKT4+Ml0sMTA1KSxmPWYrMXwwLGM9MHxhW3A+PjJdO0Z0KGMpfTB8KGM9MHxhW2wrMjA+PjJdKSYmRnQoYyksRnQoMHxhW2wrMjQ+''@;'; + put 'put ''PjJdKSxGdChsKX19KE0pLGFlPXBlfWZ1bmN0aW9uICRCKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtO209MCE9KDB8bGgobHw9MCwwKSkmJjE9PSgwfGFbbCsxNj4+Ml0pP2w6MHxBNShsKTtkb3tpZihjKXtpZigwfGxoKGMsMCkmJjE9PSgwfGFbYysxNj4+Ml0pKWJyZWFrO2M9MHxV''@;'; + put 'put ''ayhjLDApfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiBjPTB8am0oZj0wfEhfKG0sYyxmKSxwKSwoMHxtKSE9KDB8bCkmJihhW2YrMzY+PjJdPTEpLDB8Y31mdW5jdGlvbiBIXyhsLGMsZil7Y3w9MCxmfD0wO3ZhciBwPTA7cmV0dXJuKGx8PTApPyhwPTB8UW4oNDQpLGFbcD4+Ml09MCxhW3Ar''@;'; + put 'put ''ND4+Ml09YVtsKzQ+PjJdLGFbcCs4Pj4yXT1sLGFbcCsxMj4+Ml09YyxhW3ArMTY+PjJdPTAsYVtwKzIwPj4yXT0wLGFbcCsyND4+Ml09ZixhW3ArMjg+PjJdPTAsYVtwKzMyPj4yXT0wLGFbcCszNj4+Ml09MCxsPXApOmw9MCwwfGx9ZnVuY3Rpb24gam0obCxjKXtsfD0wLGN8PTA7dmFyIHAs''@;'; + put 'put ''bSxBLHcsTSxmPTAsYj0wLGs9MDtyZXR1cm4gTT1hZSxhZT1hZSszMnwwLHA9TSsyMHwwLEE9TSsxMnwwLHc9TSs4fDAsYj1NKzR8MCxrPU0sYVsobT1NKzE2fDApPj4yXT0wLCgwfGFbbD4+Ml0pPCgoMHxhW2MrMTY+PjJdKS0xfDApJiYoZnVuY3Rpb24gQ3IobCxjLGYscCxtLEEsdyxiLGss''@;'; + put 'put ''TSl7dmFyIEQsUixHLEsscGUsZ2UsYmUsT2UsTGU7Y3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTAsYnw9MCxrfD0wLE18PTAsTGU9YWUsYWU9YWUrMzJ8MCxSPUxlKzEyfDAsRz1MZSs4fDAsSz1MZSs0fDAscGU9TGUsYVsoRD1MZSsxNnwwKT4+Ml09bHw9MCxhW1I+PjJdPTAsYVtHPj4y''@;'; + put 'put ''XT0wLGFbSz4+Ml09MCxhW3BlPj4yXT0wLGFbdz4+Ml09MCxhW2I+PjJdPTAsYVtjPj4yXT0wLGFbQT4+Ml09MCxhW3A+PjJdPTAsZ2U9aysyOHwwLGJlPWsrOHwwLE9lPSsoMHxhW2wrND4+Ml0pLG09Zjtkb3tpZih3NShsLEQsbSxSLDAscGUsRyxLLGssTSksISgobT0wfGFbRD4+Ml0pJiYo''@;'; + put 'put ''Zj0wfGFbbSs0Pj4yXSxtPTB8YVt3Pj4yXSxtPyhsPTB8VDYobSwwfGFbRz4+Ml0pLFJhKDB8YVt3Pj4yXSksUmEoMHxhW0c+PjJdKSxhW3c+PjJdPWwsbD0wfFQ2KDB8YVtLPj4yXSwwfGFbYj4+Ml0pLFJhKDB8YVtiPj4yXSksUmEoMHxhW0s+PjJdKSxhW2I+PjJdPWwpOihhW3c+PjJdPWFb''@;'; + put 'put ''Rz4+Ml0sYVtiPj4yXT1hW0s+PjJdKSxtPTB8YVtjPj4yXSwwfG0mJlJhKG0pLGFbYz4+Ml09YVtEPj4yXSxtPTB8YVtwPj4yXSwwfG0mJlJhKG0pLG09MHxhW1I+PjJdLGFbcD4+Ml09bSxsPTB8YVtBPj4yXSxsJiYoRnQobCksbT0wfGFbUj4+Ml0pLGFbQT4+Ml09YVtwZT4+Ml0sbD0wfGFb''@;'; + put 'put ''RD4+Ml0sYVtwZT4+Ml09MCwrX1tiZT4+M10qT2U8KygwfGYpKSkpYnJlYWt9d2hpbGUoMT09KDB8YVtnZT4+Ml0pKTthZT1MZX0oMHxhW2wrOD4+Ml0sYiwwfGFbbCsxMj4+Ml0saywwLG0sQSx3LGMscCksMHwoZj0wfGFbYj4+Ml0pKSYmKGs9MHxIXyhmLGI9MHxhW2s+PjJdLDB8YVttPj4y''@;'; + put 'put ''XSksYVtsKzI4Pj4yXT1rLGFbays0MD4+Ml09YVtwPj4yXSxhW2s+PjJdPTErKDB8YVtsPj4yXSksYVtrKzQ+PjJdPWFbZj4+Ml0sYVtrKzg+PjJdPWYsYVtrKzEyPj4yXT1iLGFbaysxNj4+Ml09YVtBPj4yXSxhW2wrMjA+PjJdPWFbdz4+Ml0sYVtrKzMyPj4yXT1sLGptKGssYykpLGFlPU0s''@;'; + put 'put ''MHxsfWZ1bmN0aW9uIF9BKGwpe2x8PTA7Zm9yKHZhciBjPTA7Yz0wfGFbbCsyOD4+Ml07KWw9YztyZXR1cm4gMHxsfWZ1bmN0aW9uIEswKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIEEsYixrLE0scD0wLG09MCx3PTAsRD0wO2ZvcihBPTgrKGx8PTApfDAsaz1sKzIwfDAsYj1sKzI0fDAsTT1sKzE2''@;'; + put 'put ''fDAsbHx8UHIoMTM4OTUzLDk1NzQzLDY5LDk1NzU5KTs7KXtpZigoMHxhW0E+PjJdKTwoMHxmKSl7dz00O2JyZWFrfWlmKCEobT0wfGFbKHA9KDB8YVtrPj4yXSkrKGM8PDIpfDApPj4yXSkpYnJlYWs7RD0wfGFbKDB8YVtiPj4yXSkrKGM8PDIpPj4yXSxhW3A+PjJdPTAsYVtsPj4yXT0oMHxh''@;'; + put 'put ''W2w+PjJdKS0xLGtmKG0sMTA1LCgwfGFbTT4+Ml0pKyhEPDwyKXwwKX1yZXR1cm4gND09KDB8dykmJlByKDk1Nzc4LDk1NzQzLDcwLDk1NzU5KSxhW2w+PjJdPTErKDB8YVtsPj4yXSksKDB8YVsocD1sKzEyfDApPj4yXSk8KDB8ZikmJihhW3A+PjJdPWYpLGFbKDB8YVtiPj4yXSkrKGM8PDIp''@;'; + put 'put ''Pj4yXT1mLHA9MHxRbig0KSxhW3A+PjJdPWMscD0obT0wfGFbKDB8YVtNPj4yXSkrKGY8PDIpPj4yXSk/MHxmdW5jdGlvbiBKaShsLGMpe3JldHVybiBsfD0wLGM9MHxVdChjfD0wKSwwfGwmJihhW2MrND4+Ml09bCxhW2wrOD4+Ml09YyksMHxjfShtLHApOjB8VXQocCksYVsoMHxhW2s+PjJd''@;'; + put 'put ''KSsoYzw8Mik+PjJdPXAsYVsoMHxhW00+PjJdKSsoZjw8Mik+PjJdPXAsMHxsfWZ1bmN0aW9uIE5pKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wO2lmKDAhPSgwfChsfD0wKSkmJigwfGFbbD4+Ml0pPj0xKXtpZihhW2Y+PjJdPXA9MHxhWyhtPWwrMTJ8MCk+PjJdLGFbbD4+Ml09''@;'; + put 'put ''KDB8YVtsPj4yXSktMSxhW2M+PjJdPWFbKDB8ZnVuY3Rpb24gRmgobCl7cmV0dXJuIDB8YVsobHw9MCk+PjJdfShBPTB8YVsoMHxhWyhmPWwrMTZ8MCk+PjJdKSsocDw8Mik+PjJdKSk+PjJdLGtmKEEsMTA1LCgwfGFbZj4+Ml0pKyhwPDwyKXwwKSwhKDB8YVsoZj0wfGFbZj4+Ml0pKyhwPDwy''@;'; + put 'put ''KT4+Ml0pKXtmb3IoOyEoKDB8cCk8PS0xfHwwfGFbZisocDw8Mik+PjJdKTspcD1wKy0xfDA7YVttPj4yXT1wfWFbKDB8YVtsKzIwPj4yXSkrKChwPTB8YVtjPj4yXSk8PDIpPj4yXT0wLGFbKDB8YVtsKzI0Pj4yXSkrKHA8PDIpPj4yXT0tOTk5LHA9MX1lbHNlIHA9MDtyZXR1cm4gMHxwfWZ1''@;'; + put 'put ''bmN0aW9uIEk2KGwsYyl7cmV0dXJuIDB8YVsoMHxhWzI0KyhsfD0wKT4+Ml0pKygoY3w9MCk8PDIpPj4yXX1mdW5jdGlvbiBabShsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTA7aWYoMCE9KDB8KGx8PTApKSYmKDB8KHA9MHxhW2w+PjJdKSk+PTEpe2lmKGY9MHxhWygwfGFbKHc9''@;'; + put 'put ''bCsyNHwwKT4+Ml0pKyhjPDwyKT4+Ml0sYVtsPj4yXT1wKy0xLGtmKDB8YVsoMHxhWyhtPWwrMjB8MCk+PjJdKSsoYzw8Mik+PjJdLDEwNSwoMHxhWyhwPWwrMTZ8MCk+PjJdKSsoZjw8Mil8MCksKDB8Zik9PSgwfGFbKGw9bCsxMnwwKT4+Ml0pJiYwPT0oMHxhWyhBPTB8YVtwPj4yXSkrKGY8''@;'; + put 'put ''PDIpPj4yXSkpe2Zvcig7ISgoMHxmKTw9LTF8fDB8YVtBKyhmPDwyKT4+Ml0pOylmPWYrLTF8MDthW2w+PjJdPWZ9YVsoMHxhW20+PjJdKSsoYzw8Mik+PjJdPTAsYVsoMHxhW3c+PjJdKSsoYzw8Mik+PjJdPS05OTksZj0xfWVsc2UgZj0wO3JldHVybiAwfGZ9ZnVuY3Rpb24gTl8obCxjLGYp''@;'; + put 'put ''e2N8PTAsZnw9MDt2YXIgZ2UsSGUsVmUscWUscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTA7Zm9yKDB8bGgobHw9MCwwKXx8UHIoOTU3OTUsOTU4MzEsMjYwLDk1ODQ2KSxIZT0wfHQ5KGwpLFZlPTB8YVtIZSsyMD4+''@;'; + put 'put ''Ml0scWU9MHxhW0hlKzI0Pj4yXSxsPUhlKzI4fDAsMT09KDB8YVsocD1IZSsxNnwwKT4+Ml0pP1JlPTB8YVtsPj4yXTooRnQoMHxhW2w+PjJdKSxhW3A+PjJdPTEsUmU9MHxRbihhW0hlKzg+PjJdPDwzKSxhW2w+PjJdPVJlKSxnZT0wfFFuKGFbSGU+PjJdPDwyKSxsPTA7Oyl7aWYoKDB8bCk+''@;'; + put 'put ''PSgwfChwPTB8YVtIZT4+Ml0pKSl7cGU9MCxsPXA7YnJlYWt9YVtnZSsobDw8Mik+PjJdPS0xLGw9bCsxfDB9ZTpmb3IoOzspe2lmKCgwfHBlKT49KDB8bCkpe0E9MCxrPTAsbT0wLExlPTAsT2U9bDticmVha31mb3IoYj0oMHxhWyh3PVZlKygoSz1wZSsxfDApPDwyKXwwKT4+Ml0pLSgwfGFb''@;'; + put 'put ''KEQ9VmUrKHBlPDwyKXwwKT4+Ml0pfDAsYVtnZSsocGU8PDIpPj4yXT1wZSxwPTB8YVtEPj4yXTshKCgwfHApPj0oMHwoRz0wfGFbdz4+Ml0pKSk7KSgwfHBlKSE9KDB8KGw9MHxhW3FlKyhwPDwyKT4+Ml0pKSYmKGFbZ2UrKGw8PDIpPj4yXT1wZSkscD1wKzF8MDtmb3IoUj0rKDB8YikscD0w''@;'; + put 'put ''fGFbRD4+Ml07ISgoMHxwKT49KDB8RykpOyl7aWYoKDB8cGUpIT0oMHwobD0wfGFbcWUrKHA8PDIpPj4yXSkpKXtmb3IoTT0rKCh3PTB8YVtWZSsobCsxPDwyKT4+Ml0pLShsPTB8YVtWZSsobDw8Mik+PjJdKXwwKStSOyEoKDB8bCk+PSgwfHcpKTspTT0oMHxhW2dlKyhhW3FlKyhsPDwyKT4+''@;'; + put 'put ''Ml08PDIpPj4yXSk9PSgwfHBlKT9NKy0xOk0sbD1sKzF8MDtpZihfW1JlKyhwPDwzKT4+M109TSwhKE0+MCkpe2JlPTIzO2JyZWFrIGV9fXA9cCsxfDB9cGU9SyxsPTB8YVtIZT4+Ml19Zm9yKDIzPT0oMHxiZSkmJlByKDk1ODY4LDk1ODMxLDI5MCw5NTg0Nik7ISgoMHxMZSk+PSgwfE9lKSk7''@;'; + put 'put ''KXtmb3IoYj1WZSsoKHc9TGUrMXwwKTw8Mil8MCxwPTB8YVtWZSsoTGU8PDIpPj4yXTshKCgwfHApPj0oMHxhW2I+PjJdKSk7KSgwfExlKT09KDB8KGw9MHxhW3FlKyhwPDwyKT4+Ml0pKT9sPW06KGs9K19jKGYsYyxMZSxsKStrLEE9K19bUmUrKHA8PDMpPj4zXStBLGw9bSsxfDApLG09bCxw''@;'; + put 'put ''PXArMXwwO0xlPXcsT2U9MHxhW0hlPj4yXX1BPWsvKEEvKFI9KygwfG0pKSpSKSxsPTA7ZTpmb3IoOyEoKDB8bCk+PSgwfE9lKSk7KWZvcih3PWwrMXwwLGI9MHxhW1ZlKyh3PDwyKT4+Ml0scD0wfGFbVmUrKGw8PDIpPj4yXTs7KXtpZigoMHxwKT49KDB8Yikpe2w9dztjb250aW51ZSBlfW09''@;'; + put 'put ''UmUrKHA8PDMpfDAsKDB8bCkhPSgwfGFbcWUrKHA8PDIpPj4yXSkmJihfW20+PjNdPStfW20+PjNdKkEpLHA9cCsxfDB9cmV0dXJuIDB8SGV9ZnVuY3Rpb24geXgobCxjLGYscCxtKXtjfD0wLGY9K2YscHw9MCxtfD0wO3ZhciBrdCxsdCxFdCxadCxjdCxhbixTbix1cixIcixFcixBPTAsdz0w''@;'; + put 'put ''LGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MCxTdD0wLGJ0PTAsSG49MCxmcj0wLERyPTA7Zm9yKGFuPTB8YVsobHw9MCk+PjJdLFNuPTB8YVtsKzIwPj4yXSxIbj0wfGFbbCsyND4+''@;'; + put 'put ''Ml0sMHxsaChsLDApfHxQcig5NTc5NSw5NTgzMSwzMzMsOTU4NzYpLHVyPTB8Tl8obCxjLHApLEhyPTB8UW4oNTYpLF9bKEVyPUhyKzMyfDApPj4zXT0xLGFbSHIrMjA+PjJdPTAsYVtIcisyND4+Ml09MCxfW0hyKzQwPj4zXT0uMDEsYVtIcis0OD4+Ml09fn4rRDAoKyArKDB8YVtsPj4yXSkp''@;'; + put 'put ''LFp0PTB8UW4oQT1hbjw8MyksYVtIcisxMj4+Ml09WnQsbD0wOyEoKDB8bCk+PSgwfGFuKSk7KV9bWnQrKGw8PDMpPj4zXT1mLGw9bCsxfDA7Zm9yKGN0PTB8UW4oYW48PDIpLEV0PTB8UW4oQSksYj0wOzspe2lmKCgwfGIpPj0oMHxhbikpe1I9MDticmVha31mb3IoX1soaz1FdCsoYjw8Myl8''@;'; + put 'put ''MCk+PjNdPTAsRD1TbisoKE09YisxfDApPDwyKXwwLHc9MHxhW1NuKyhiPDwyKT4+Ml0sbD0wLGY9MDshKCgwfHcpPj0oMHxhW0Q+PjJdKSk7KSgwfGIpIT0oMHwoQT0wfGFbSG4rKHc8PDIpPj4yXSkpJiYoZj0rX2MocCxjLGIsQSksX1trPj4zXT1mPStfW2s+PjNdK2YsbD1sKzF8MCksdz13''@;'; + put 'put ''KzF8MDtpZigoMHxsKTw9MCl7Sz0xNDticmVha31fW2s+PjNdPWYvKygwfGwpLGI9TX1mb3IoMTQ9PSgwfEspJiZQcig5NTkwOCw5NTgzMSwzNTgsOTU4NzYpOzspe2lmKCgwfFIpPj0oMHxhbikpe2w9MCxNPTA7YnJlYWt9YVtjdCsoUjw8Mik+PjJdPS0xLFI9UisxfDB9ZTpmb3IoOyEoKDB8''@;'; + put 'put ''TSk+PSgwfGFuKSk7KXtmb3IoYVtjdCsoTTw8Mik+PjJdPU0sUj1TbisoKEQ9TSsxfDApPDwyKXwwLHc9MHxhWyhiPVNuKyhNPDwyKXwwKT4+Ml07ISgoMHx3KT49KDB8KEE9MHxhW1I+PjJdKSkpOykoMHxhWyhBPWN0KyhhW0huKyh3PDwyKT4+Ml08PDIpfDApPj4yXSkhPSgwfE0pJiYoYVtB''@;'; + put 'put ''Pj4yXT1NLGw9bCsxfDApLHc9dysxfDA7Zm9yKGs9MHxhW2I+PjJdOzspe2lmKCgwfGspPj0oMHxBKSl7TT1EO2NvbnRpbnVlIGV9Zm9yKGI9U24rKDErKHc9MHxhW0huKyhrPDwyKT4+Ml0pPDwyKXwwLHc9MHxhW1NuKyh3PDwyKT4+Ml07ISgoMHx3KT49KDB8YVtiPj4yXSkpOykoMHxhWyhB''@;'; + put 'put ''PWN0KyhhW0huKyh3PDwyKT4+Ml08PDIpfDApPj4yXSkhPSgwfE0pJiYoYVtBPj4yXT1NLGw9bCsxfDApLHc9dysxfDA7az1rKzF8MCxBPTB8YVtSPj4yXX19YVsoa3Q9SHIrNHwwKT4+Ml09MHx1YyhhbixhbixBPWwrYW58MCwxLDEpLEE9MHx1YyhhbixhbixBLDEsMSksYVsobHQ9SHIrOHww''@;'; + put 'put ''KT4+Ml09QSxsPTB8YVtrdD4+Ml07ZG97aWYoMD09KDB8QSl8MD09KDB8bCkpUTQoSHIpLGJ0PTA7ZWxzZXtvdD0wfGFbbCsyMD4+Ml0sV2U9MHxhW2wrMjQ+PjJdLHFlPTB8YVtsKzI4Pj4yXSxTdD0wfGFbQSsyOD4+Ml0sT2U9MHxhW0ErMjQ+PjJdLGFbKG50PTB8YVtBKzIwPj4yXSk+PjJd''@;'; + put 'put ''PTAsYVtvdD4+Ml09MCxmPTAsRz0wLEs9MCx3PTA7ZTpmb3IoOzspe2lmKCgwfEspPj0oMHxhbikpe0s9NTg7YnJlYWt9Zm9yKGFbY3QrKEs8PDIpPj4yXT1MZT1LK2FufDAsSGU9U24rKChSZT1LKzF8MCk8PDIpfDAsVmU9RXQrKEs8PDMpfDAscGU9MCxnZT0wLGI9MHxhWyhrPVNuKyhLPDwy''@;'; + put 'put ''KXwwKT4+Ml07ISgoMHxiKT49KDB8KGw9MHxhW0hlPj4yXSkpKTspe2lmKCgwfGFbKGw9Y3QrKChBPTB8YVtIbisoYjw8Mik+PjJdKTw8Mil8MCk+PjJdKSE9KDB8TGUpKXtzd2l0Y2goYVtsPj4yXT1MZSxhW1dlKyh3PDwyKT4+Ml09QSwwfG0pe2Nhc2UgMDpiZT0xO2JyZWFrO2Nhc2UgMTpi''@;'; + put 'put ''ZT0uNSooK19bRXQrKEE8PDMpPj4zXSsgK19bVmU+PjNdKTticmVhaztjYXNlIDI6YmU9K3FsKCsgK2R1KHAsYyxLLEEpLC40KTticmVhaztkZWZhdWx0Oks9NDI7YnJlYWsgZX1fW3FlKyh3PDwzKT4+M109RHI9LTEvKGJlKmJlKSxhW09lKyh3PDwyKT4+Ml09QSxfWyhSPVN0Kyh3PDwzKXww''@;'; + put 'put ''KT4+M109ZnI9RHIqYmUsRz0rX2MocCxjLEssQSkqZnIrRyx3PXcrMXwwLHBlPURyK3BlLGdlPShmcj0rX1tSPj4zXSkrZ2UsZj1mcipiZStmfWI9YisxfDB9Zm9yKFI9MHxhW2s+PjJdOyEoKDB8Uik+PSgwfGwpKTspe2ZvcihNPVNuKygxKyhrPTB8YVtIbisoUjw8Mik+PjJdKTw8Mil8MCxE''@;'; + put 'put ''PUV0KyhrPDwzKXwwLGI9MHxhW1NuKyhrPDwyKT4+Ml07ISgoMHxiKT49KDB8YVtNPj4yXSkpOyl7aWYoKDB8YVsobD1jdCsoYVsoQT1IbisoYjw8Mil8MCk+PjJdPDwyKXwwKT4+Ml0pIT0oMHxMZSkpe3N3aXRjaChhW2w+PjJdPUxlLDB8bSl7Y2FzZSAwOmJlPTI7YnJlYWs7Y2FzZSAxOmJl''@;'; + put 'put ''PS41KigyKitfW0Q+PjNdKyArX1tWZT4+M10rICtfW0V0KyhhW0E+PjJdPDwzKT4+M10pO2JyZWFrO2Nhc2UgMjpiZT0rcWwoKyArZHUocCxjLEssMHxhW0E+PjJdKSwuNCk7YnJlYWs7ZGVmYXVsdDpLPTUzO2JyZWFrIGV9YVtXZSsodzw8Mik+PjJdPWFbQT4+Ml0sX1txZSsodzw8Myk+PjNd''@;'; + put 'put ''PWZyPS0xLyhiZSpiZSksYVtPZSsodzw8Mik+PjJdPWFbQT4+Ml0sX1sobD1TdCsodzw8Myl8MCk+PjNdPURyPWZyKmJlLEc9K19jKHAsYywwfGFbQT4+Ml0saykqRHIrRyx3PXcrMXwwLHBlPWZyK3BlLGdlPShEcj0rX1tsPj4zXSkrZ2UsZj1EcipiZStmfWI9YisxfDB9Uj1SKzF8MCxsPTB8''@;'; + put 'put ''YVtIZT4+Ml19YVtXZSsodzw8Mik+PjJdPUssX1soVmU9WnQrKEs8PDMpfDApPj4zXT1Ecj0tcGUqK19bVmU+PjNdLF9bcWUrKHc8PDMpPj4zXT1Eci1wZSxhW09lKyh3PDwyKT4+Ml09SyxfW1N0Kyh3PDwzKT4+M109LWdlLGFbb3QrKFJlPDwyKT4+Ml09dz13KzF8MCxhW250KyhSZTw8Mik+''@;'; + put 'put ''PjJdPXcsSz1SZX1pZig0Mj09KDB8SykpQ3UoOTU5MTUsMjksMSwwfGFbMTU3MTJdKSxQcigxMzgzOTQsOTU4MzEsNDE4LDk1ODc2KTtlbHNlIGlmKDUzPT0oMHxLKSlDdSg5NTkxNSwyOSwxLDB8YVsxNTcxMl0pLFByKDEzODM5NCw5NTgzMSw0NjAsOTU4NzYpO2Vsc2UgaWYoNTg9PSgwfEsp''@;'; + put 'put ''KXtmb3IoZj1HL2YsbD0wOyEoKDB8bCk+PSgwfHcpKTspX1soSG49U3QrKGw8PDMpfDApPj4zXT0rX1tIbj4+M10qZixsPWwrMXwwO19bRXI+PjNdPWYsYVs4KygwfGFba3Q+PjJdKT4+Ml09dyxhWzgrKDB8YVtsdD4+Ml0pPj4yXT13LEZ0KGN0KSxGdChFdCksUmEodXIpLGJ0PUhyO2JyZWFr''@;'; + put 'put ''fX19d2hpbGUoMCk7cmV0dXJuIDB8YnR9ZnVuY3Rpb24gUTQobCl7dmFyIGM9MDswfChsfD0wKSYmKDB8KGM9MHxhW2wrND4+Ml0pJiZSYShjKSwwfChjPTB8YVtsKzg+PjJdKSYmUmEoYyksMHwoYz0wfGFbbCsxMj4+Ml0pJiZGdChjKSwwfChjPTB8YVtsKzIwPj4yXSkmJkNvWzEyNyZhW2wr''@;'; + put 'put ''MTY+PjJdXShjKSxGdChsKSl9ZnVuY3Rpb24gem0obCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtPSttO3ZhciBidCxhbixTbixIbixIcixFcixmcixEcixBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAs''@;'; + put 'put ''cWU9MCxudD0wLFdlPTAsb3Q9MCxTdD0wLGt0PTAsbHQ9MCxFdD0wLFp0PTAsY3Q9MCx1cj0wLEpyPTA7aWYoRHI9YWUsYWU9YWUrMTZ8MCxmcj1Ecis4fDAsRD1Ecis0fDAsaz1EcixNPTB8YVs0KyhsfD0wKT4+Ml0sdz0wfGFbbCs4Pj4yXSxhWyhIcj1EcisxMnwwKT4+Ml09MCxhW2ZyPj4y''@;'; + put 'put ''XT0wLGFbRD4+Ml09MCxidD0wfGFbbCsxMj4+Ml0sYVtrPj4yXT0wLGFuPTB8dDkodyksMCE9KDB8KEVyPTB8UW4oQT0oSG49MHxBcihTbj0wfGFbTT4+Ml0sYykpPDwzKSkpJiYoZ28oMHxFciwwfGYsMHwodXI9MHxBcihjPDwzLFNuKSkpLGN0PTB8UW4oQSksYVtmcj4+Ml09Y3QsMCE9KDB8''@;'; + put 'put ''Y3QpKSl7c3dpdGNoKFp0PTB8YVt3KzIwPj4yXSxjdD0wfGFbdysyND4+Ml0sU3Q9MHxhW3crMjg+PjJdLGt0PTB8YVthbisyOD4+Ml0sbHQ9MHxhW00rMjg+PjJdLDB8YVsoRXQ9bCsyNHwwKT4+Ml0pe2Nhc2UgMTooZnVuY3Rpb24gQ3gobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18''@;'; + put 'put ''PTAsQXw9MDt2YXIgSGUsVmUscWUsV2Usdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxudD0wLG90PTA7Sz0wfGFbOCsobHw9MCk+PjJdLFdlPTB8YVtsKzEyPj4yXSxWZT0wfGFbbCsxNj4+Ml0scWU9MHxhWzIwKyhudD0wfGFb''@;'; + put 'put ''bCszMj4+Ml0pPj4yXSxudD0wfGFbbnQrMjQ+PjJdLGdlPTB8YVsoTT1sKzIwfDApPj4yXSxwZT0wfGFbKEQ9bCsyNHwwKT4+Ml0sRz0wfGFbKFI9bCsyOHwwKT4+Ml0sSGU9K19bbD4+M107ZTpkb3tpZigzPT0oMnxLKSl7aWYoIWdlKXtmb3IoMCE9KDB8cGUpfDAhPSgwfEcpP1ByKDk2MDk0''@;'; + put 'put ''LDk1ODMxLDY5Miw5NjExMSk6KHc9MCxiPTApOyEoKDB8dyk+PSgwfFdlKSk7KVJlPTB8YVtWZSsodzw8Mik+PjJdLHc9dysxfDAsYj1iK35+KChiZT0rKCgwfGFbcWUrKFJlKzE8PDIpPj4yXSktKDB8YVtxZSsoUmU8PDIpPj4yXSl8MCkrMSkqYmUpfDA7Z2U9MHxRbihwZT1iPDwyKSxhW00+''@;'; + put 'put ''PjJdPWdlLHBlPTB8UW4ocGUpLGFbRD4+Ml09cGUsRz0wfFFuKGI8PDMpLGFbUj4+Ml09R31mb3IoTGU9MCxsPTA7ISgoMHxMZSk+PSgwfFdlKSk7KXt3PTB8YVtudCsoKGI9MHxhWyhPZT1xZSsoKEs9MHxhW1ZlKyhMZTw8Mik+PjJdKTw8Mil8MCk+PjJdKTw8Mik+PjJdLGI9MHxhW250Kyhi''@;'; + put 'put ''KzE8PDIpPj4yXTt0OmRve2lmKCgwfHcpIT0oMHxiKSl7Zm9yKG90PStkdShwLGYsdyxiKSxvdCo9b3QsYmU9KygoMHxhWyhSPXFlKyhLKzE8PDIpfDApPj4yXSktKDB8YVtPZT4+Ml0pfDApLGFbZ2UrKGw8PDIpPj4yXT1LLGFbcGUrKGw8PDIpPj4yXT1LLF9bRysobDw8Myk+PjNdPUhlL290''@;'; + put 'put ''LGs9YmUqYmUqb3QsYmU9LUhlLyhvdCpiZSksYj0wfGFbT2U+PjJdO2w9bCsxfDAsISgoMHxiKT49KDB8KHc9MHxhW1I+PjJdKSkpOylhW2dlKyhsPDwyKT4+Ml09SyxhW3BlKyhsPDwyKT4+Ml09YVtudCsoYjw8Mik+PjJdLF9bRysobDw8Myk+PjNdPWJlLGI9YisxfDA7Zm9yKGs9SGUvayxE''@;'; + put 'put ''PTB8YVtPZT4+Ml07Oyl7aWYoKDB8RCk+PSgwfHcpKWJyZWFrIHQ7Zm9yKGFbZ2UrKGw8PDIpPj4yXT1NPTB8YVtudCsoRDw8Mik+PjJdLGFbcGUrKGw8PDIpPj4yXT1LLF9bRysobDw8Myk+PjNdPWJlLGI9MHxhW09lPj4yXTtsPWwrMXwwLCEoKDB8Yik+PSgwfCh3PTB8YVtSPj4yXSkpKTsp''@;'; + put 'put ''UmU9MHxhW250KyhiPDwyKT4+Ml0sYVtnZSsobDw8Mik+PjJdPU0sYVtwZSsobDw8Mik+PjJdPVJlLF9bRysobDw8Myk+PjNdPWssYj1iKzF8MDtEPUQrMXwwfX19d2hpbGUoMCk7TGU9TGUrMXwwfXc9MHxyNChsLGMsYyxnZSxwZSxHLDEsOCksbD0wfWVsc2V7c3dpdGNoKDB8Syl7Y2FzZSAy''@;'; + put 'put ''OmNhc2UgNDpicmVhaztkZWZhdWx0Onc9MCxsPTA7YnJlYWsgZX1kb3tpZihnZSlPZT1HLExlPXBlLFJlPWdlO2Vsc2V7aWYoISgwIT0oMHxwZSl8MCE9KDB8RykpKXtSZT0wfFFuKExlPVdlPDwyKSxhW00+PjJdPVJlLExlPTB8UW4oTGUpLGFbRD4+Ml09TGUsT2U9MHxRbihXZTw8MyksYVtS''@;'; + put 'put ''Pj4yXT1PZTticmVha31Qcig5NjA5NCw5NTgzMSw3MzQsOTYxMTEpfX13aGlsZSgwKTtmb3IobD0wfFFuKDB8QXIoYzw8MyxmKSksYj0wfEFyKGYsYyksdz0wOzspe2lmKCgwfHcpPj0oMHxiKSl7Rz0wO2JyZWFrfV9bbCsodzw8Myk+PjNdPTAsdz13KzF8MH1mb3IoOyEoKDB8Ryk+PSgwfFdl''@;'; + put 'put ''KSk7KXtmb3Ioaz0rZHUocCxmLDB8YVtudCsoKEQ9MHxhWyhNPXFlKygoSz0wfGFbVmUrKEc8PDIpPj4yXSk8PDIpfDApPj4yXSk8PDIpPj4yXSwwfGFbbnQrKEQrMTw8Mik+PjJdKSxhW1JlKyhHPDwyKT4+Ml09SyxhW0xlKyhHPDwyKT4+Ml09SyxfW09lKyhHPDwzKT4+M109az1IZS9rLE09''@;'; + put 'put ''MHxhW00+PjJdLEQ9MHxhW3FlKyhLKzE8PDIpPj4yXSxLPTB8QXIoSyxmKSxiPU07ISgoMHxiKT49KDB8RCkpOyl7Zm9yKFI9MHxBcigwfGFbbnQrKGI8PDIpPj4yXSxmKSx3PTA7ISgoMHx3KT49KDB8ZikpOylfWyhnZT1sKyh3K0s8PDMpfDApPj4zXT0rX1tnZT4+M10rICtfW3ArKHcrUjw8''@;'; + put 'put ''Myk+PjNdLHc9dysxfDA7Yj1iKzF8MH1mb3Ioayo9MS8rKEQtTXwwKSx3PTA7ISgoMHx3KT49KDB8ZikpOylfWyhnZT1sKyh3K0s8PDMpfDApPj4zXT1rKitfW2dlPj4zXSx3PXcrMXwwO0c9RysxfDB9dz0wfHI0KEcsYyxjLFJlLExlLE9lLDEsOCl9fXdoaWxlKDApO2FbbT4+Ml09dyxhW0E+''@;'; + put 'put ''PjJdPWx9KSgwfGFbbCsyMD4+Ml0sU24sYyxmLGssRCksKEE9MHxhW2s+PjJdKT8oTT0wfHlwKE0sQSksbnQ9MCxXZT0wKToobnQ9MCxXZT0wLEE9MCk7YnJlYWs7Y2FzZSAyOm50PStfWzgrKEE9MHxhW2wrMjA+PjJdKT4+M10sV2U9K19bQT4+M10sQT0wO2JyZWFrO2RlZmF1bHQ6bnQ9MCxX''@;'; + put 'put ''ZT0wLEE9MH1WZT0wPT0oMHxidCkscWU9bCs0MHwwLEhlPWwrNDh8MCx3PTB8YVtEPj4yXSxiPTEsaz0wO2U6Zm9yKDtSZT1rKzF8MCwoMHxrKTwoMHxwKSZiPm07KXt0OmRve2lmKDQ9PSgwfGFbRXQ+PjJdKSlmb3IoRD0wfGFbZnI+PjJdLGs9MDs7KXtpZigoMHxrKT49KDB8U24pKWJyZWFr''@;'; + put 'put ''IHQ7Zm9yKFI9MHxBcihrLGMpLGw9MDshKCgwfGwpPj0oMHxjKSk7KV9bRCsobCtSPDwzKT4+M109MCxsPWwrMXwwO2s9aysxfDB9ZWxzZXtmb3IoSz0wOyEoKDB8Syk+PSgwfFNuKSk7KXtmb3IoTGU9WnQrKChPZT1LKzF8MCk8PDIpfDAsRz0wLGJlPTB8YVtadCsoSzw8Mik+PjJdLGs9LTE7''@;'; + put 'put ''ISgoMHxiZSk+PSgwfGFbTGU+PjJdKSk7KXtpZigoMHxLKT09KDB8KGw9MHxhWyhEPWN0KyhiZTw8Mil8MCk+PjJdKSkpaz1iZTtlbHNle2lmKGdlPStfYyhmLGMsSyxsKSwwPT0ocGU9K19bKFI9U3QrKGJlPDwzKXwwKT4+M10pKXBlPTA7ZWxzZXtpZigwPT1nZSl7Zm9yKHBlPXBlLytfW2x0''@;'; + put 'put ''KyhiZTw8Myk+PjNdKjFlLTQsbD0wOyEoKDB8bCk+PSgwfGMpKTspZ2U9cGUqKCtCaCgpKzFlLTQpLEpyPWYrKCgwfEFyKDB8YVtEPj4yXSxjKSkrbDw8Myl8MCxfW0pyPj4zXT1nZSsgK19bSnI+PjNdLGw9bCsxfDA7Z2U9K19jKGYsYyxLLDB8YVtEPj4yXSkscGU9K19bUj4+M119cGUvPWdl''@;'; + put 'put ''fV9ba3QrKGJlPDwzKT4+M109cGUsRz1wZStHfWJlPWJlKzF8MH1pZigoMHxrKTw9LTEpe290PTI1O2JyZWFrIGV9X1trdCsoazw8Myk+PjNdPS1HLEs9T2V9emkoYW4sMCxmLDAsZnIsMCxjKX19d2hpbGUoMCk7dDpkb3tpZighVmUpZm9yKEQ9MHxhW2ZyPj4yXSxrPTA7Oyl7aWYoKDB8ayk+''@;'; + put 'put ''PSgwfFNuKSlicmVhayB0O2ZvcihSPWJ0KyhrPDwzKXwwLEs9MHxBcihrLGMpLGw9MDshKCgwfGwpPj0oMHxjKSk7KV9bKEpyPUQrKChMZT1sK0t8MCk8PDMpfDApPj4zXT0rX1tKcj4+M10rICtfW0VyKyhMZTw8Myk+PjNdKitfW1I+PjNdLGw9bCsxfDA7az1rKzF8MH19d2hpbGUoMCk7dDpk''@;'; + put 'put ''b3tzd2l0Y2goMHxhW0V0Pj4yXSl7Y2FzZSAxOmZvcihrPTB8YVtmcj4+Ml0sbD0wOzspe2lmKCgwfGwpPj0oMHxTbikpe290PTUwO2JyZWFrIHR9Zm9yKFI9MHxBcihsLGMpLEQ9MDshKCgwfEQpPj0oMHxjKSk7KV9bKEpyPWsrKChvdD1EK1J8MCk8PDMpfDApPj4zXT0rX1tKcj4+M10rICtf''@;'; + put 'put ''W3crKG90PDwzKT4+M10sRD1EKzF8MDtsPWwrMXwwfWNhc2UgMjpXbmUoU24sYyxmLDB8YVtmcj4+Ml0sV2UsbnQpLGs9MHxhW2ZyPj4yXSxHPStfW3FlPj4zXSxsPTB8YVtIZT4+Ml0sMj09KDB8YVtFdD4+Ml0pP2VQKE0sV2UsYyxmLGssRyxsLEhyKTpvdD01MTticmVhaztkZWZhdWx0Oms9''@;'; + put 'put ''MHxhW2ZyPj4yXSxvdD01MH19d2hpbGUoMCk7aWYoNTA9PSgwfG90KSYmKEc9K19bcWU+PjNdLGw9MHxhW0hlPj4yXSxvdD01MSksNTE9PSgwfG90KSYmKG90PTAsQjMoTSxjLGYsayxHLGwsMCxIcikpLDB8YVtIcj4+Ml0pYnJlYWs7Yj0rdFAoU24sYyxmLDB8YVtmcj4+Ml0pLGIvPStEMCgr''@;'; + put 'put ''ICt5NShIbixmLGYpKSxnbygwfGYsMHxhW2ZyPj4yXSwwfHVyKSxrPVJlfTI1PT0oMHxvdCkmJlByKDk2MDQ5LDk1ODMxLDg5NSw5NjA2MCksUmEoYW4pLEEmJihSYShBKSxSYShNKSl9ZWxzZSBSYShhbiksYj0xLHc9MDtyZXR1cm4gRnQoRXIpLDB8KEE9MHxhW2ZyPj4yXSkmJkZ0KEEpLDB8''@;'; + put 'put ''dyYmRnQodyksYWU9RHIsK2J9ZnVuY3Rpb24gV25lKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLEE9K0E7dmFyIHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDtBKj1tPSttLHc9MDtlOmZvcig7ISgoMHx3KT49KDB8bCkpOylmb3IoRD13KzF8MCxSPTB8QXIo''@;'; + put 'put ''dyxjKSxiPUQ7Oyl7aWYoKDB8Yik9PSgwfGwpKXt3PUQ7Y29udGludWUgZX1mb3IoTT0wfEFyKGIsYyksbT0xLytkdShmLGMsdyxiKSxrPTA7ISgoMHxrKT49KDB8YykpOylLPUEqKCgrX1tmKygocGU9aytSfDApPDwzKT4+M10tK19bZisoKEc9aytNfDApPDwzKT4+M10pKm0pLF9bKHBlPXAr''@;'; + put 'put ''KHBlPDwzKXwwKT4+M109SysgK19bcGU+PjNdLF9bKEc9cCsoRzw8Myl8MCk+PjNdPStfW0c+PjNdLUssaz1rKzF8MDtiPWIrMXwwfX1mdW5jdGlvbiBlUChsLGMsZixwLG0sQSx3LGIpe3ZhciBrLE07Znw9MCxwfD0wLG18PTAsQT0rQSx3fD0wLGJ8PTAsTT0wfGZ1bmN0aW9uIHh4KGwsYyl7''@;'; + put 'put ''bHw9MCxjPStjO3ZhciBmLHA7cmV0dXJuIGY9MHxRbig4KSxwPTB8UW4oMTYpLGFbZj4+Ml09cCxfW3A+PjNdPWMsYVtwKzg+PjJdPWwsYVtmKzQ+PjJdPTI1LDB8Zn0obHw9MCxjPStjKSxrPTB8ZnVuY3Rpb24gSXgobCxjKXtjPStjO3ZhciBiLGssTSxELEcsSyxwZSxmPTAscD0wLG09MCxB''@;'; + put 'put ''PTAsdz0wLFI9MDtEPTB8YVsobHw9MCk+PjJdLEc9MHxhW2wrMjA+PjJdLEs9MHxhW2wrMjQ+PjJdLGs9MHxhW2wrMjg+PjJdLE09MHxRbig4KSx3PTB8UW4oOCsoRDw8Myl8MCksYVtNPj4yXT13LF9bdz4+M109KygwfEQpLHc9dys4fDAsYj0xLyhwZT0rKEQrLTF8MCkpLGMqPXBlLGw9MDtl''@;'; + put 'put ''OmZvcig7ISgoMHxsKT49KDB8RCkpOylmb3IocD13KyhsPDwzKXwwLF9bcD4+M109YixtPWwrMXwwLEE9MHxhW0crKG08PDIpPj4yXSxmPTB8YVtHKyhsPDwyKT4+Ml07Oyl7aWYoKDB8Zik+PSgwfEEpKXtsPW07Y29udGludWUgZX0oMHxsKT09KDB8YVtLKyhmPDwyKT4+Ml0pJiYoKFI9K19b''@;'; + put 'put ''aysoZjw8Myk+PjNdKT49MD9SOi1SKT4wJiYoX1twPj4zXT0xLyhSK2MpKSxmPWYrMXwwfXJldHVybiBhW00rND4+Ml09MjcsMHxNfShsLGMpLGxQKE0saywwfGFbbD4+Ml0sZixwLG0sQSx3LGIpfWZ1bmN0aW9uIHRQKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAs''@;'; + put 'put ''dz0wLGI9MCxrPTAsTT0wLEQ9MDtmb3IoQT0wLGI9MDshKCgwfEEpPj0oMHxsKSk7KXtmb3Ioaz0wfEFyKEEsYyksbT0wLHc9MDshKCgwfG0pPj0oMHxjKSk7KUQ9bStrfDAsbT1tKzF8MCx3PShNPStfW3ArKEQ8PDMpPj4zXS0rX1tmKyhEPDwzKT4+M10pKk0rdztBPUErMXwwLGI9K0QwKCt3''@;'; + put 'put ''KStifXJldHVybitifWZ1bmN0aW9uIGt4KGwsYyxmLHAsbSl7Y3w9MCxmPStmLHB8PTAsbXw9MDt2YXIgVmUscWUsb3QsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxudD0wLFdlPTAsU3Q9MCxrdD0wO2ZvcihX''@;'; + put 'put ''ZT0wfGFbKGx8PTApPj4yXSxLPTB8YVtsKzIwPj4yXSxwZT0wfGFbbCsyND4+Ml0sMHxsaChsLDApfHxQcig5NTc5NSw5NTgzMSwxMDM0LDk2MTMzKSxvdD0wfFFuKGdlPVdlPDwzKSxiPTA7ISgoMHxiKT49KDB8V2UpKTspe2ZvcihfWyhEPW90KyhiPDwzKXwwKT4+M109MCxHPUsrKChSPWIr''@;'; + put 'put ''MXwwKTw8Mil8MCxNPTB8YVtLKyhiPDwyKT4+Ml0sQT0wLGs9MDshKCgwfE0pPj0oMHxhW0c+PjJdKSk7KSgwfGIpIT0oMHwodz0wfGFbcGUrKE08PDIpPj4yXSkpJiYoaz0rX2MocCxjLGIsdyksX1tEPj4zXT1rPStfW0Q+PjNdK2ssQT1BKzF8MCksTT1NKzF8MDtpZigoMHxBKTw9MCl7bnQ9''@;'; + put 'put ''MTE7YnJlYWt9X1tEPj4zXT1rLysoMHxBKSxiPVJ9Zm9yKDExPT0oMHxudCkmJlByKDk1OTA4LDk1ODMxLDEwNDYsOTYxMzMpLEE9MHxRbig1NiksX1socWU9QSszMnwwKT4+M109MSxhW0ErMjA+PjJdPTAsYVtBKzI0Pj4yXT0wLF9bQSs0MD4+M109LjAxLGFbQSs0OD4+Ml09fn4rRDAoKyAr''@;'; + put 'put ''KDB8YVtsPj4yXSkpLFZlPTB8UW4oZ2UpLGFbQSsxMj4+Ml09VmUsdz0wOyEoKDB8dyk+PSgwfFdlKSk7KV9bVmUrKHc8PDMpPj4zXT1mLHc9dysxfDA7ZG97aWYoKDB8V2UpPjIpe2lmKG0pe3c9MHxzUChXZSxjLHApO2JyZWFrfXc9MHxMeChXZSxjLHApO2JyZWFrfXc9MHx0OShsKX13aGls''@;'; + put 'put ''ZSgwKTtpZihhWyhtPUErNHwwKT4+Ml09MHx5cChsLHcpLFJhKHcpLGI9MHx0OSgwfGFbbT4+Ml0pLGFbQSs4Pj4yXT1iLDA9PSgwfGIpfDA9PSgwfCh3PTB8YVttPj4yXSkpKVZfKEEpLEE9MDtlbHNle2ZvcihnZT0wfGFbdysyMD4+Ml0scGU9MHxhW3crMjQ+PjJdLEs9MHxhW3crMjg+PjJd''@;'; + put 'put ''LG09MHxhW2IrMjg+PjJdLFJlPTAsSGU9MCxEPTA7ISgoMHxEKT49KDB8V2UpKTspe2ZvcihSPWdlKygoRz1EKzF8MCk8PDIpfDAsTGU9MCxmPTAsYj0tMSxiZT1SZSxPZT1IZSxNPTB8YVtnZSsoRDw8Mik+PjJdOyEoKDB8TSk+PSgwfGFbUj4+Ml0pKTspKDB8KHc9MHxhW3BlKyhNPDwyKT4+''@;'; + put 'put ''Ml0pKT09KDB8RCk/KGs9TGUsdz1NKTooU3Q9K3FsKCsgK2R1KHAsYyxELHcpLC42KSxfW0srKE08PDMpPj4zXT1rPTEvKFN0KlN0KSxfWyhsPW0rKE08PDMpfDApPj4zXT1rdD1rKlN0LE9lPWt0KitfYyhwLGMsRCx3KStPZSxrKz1MZSxmPShrdD0rX1tsPj4zXSkrZix3PWIsYmU9a3QqU3Qr''@;'; + put 'put ''YmUpLExlPWssYj13LE09TSsxfDA7aWYoX1sobD1WZSsoRDw8Myl8MCk+PjNdPWs9LUxlKitfW2w+PjNdLCgwfGIpPD0tMSl7bnQ9MzE7YnJlYWt9X1tLKyhiPDwzKT4+M109ay1MZSxfW20rKGI8PDMpPj4zXT0tZixSZT1iZSxIZT1PZSxEPUd9Zm9yKDMxPT0oMHxudCkmJlByKDk2MTU0LDk1''@;'; + put 'put ''ODMxLDExMTIsOTYxMzMpLGs9SGUvUmUsYj0wfGFbZ2UrKFdlPDwyKT4+Ml0sdz0wOyEoKDB8dyk+PSgwfGIpKTspX1soV2U9bSsodzw8Myl8MCk+PjNdPStfW1dlPj4zXSprLHc9dysxfDA7X1txZT4+M109ayxGdChvdCl9cmV0dXJuIDB8QX1mdW5jdGlvbiBWXyhsKXtRNChsfD0wKX1mdW5j''@;'; + put 'put ''dGlvbiBVMShsLGMsZil7em0obHw9MCxjfD0wLGZ8PTAsNTAsLjAwMSl9ZnVuY3Rpb24gU3gobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIFJlLEhlLFZlLHFlLG50LG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsV2U9''@;'; + put 'put ''MCxvdD0wO2ZvcihudD0wfGFbKGx8PTApPj4yXSxXZT0wfGFbbCsyMD4+Ml0sb3Q9MHxhW2wrMjQ+PjJdLDB8bGgobCwwKXx8UHIoOTU3OTUsOTU4MzEsMTE0OSw5NjE2NSksUmU9MHxOXyhsLGMscCksSGU9MHxhW1JlKzI4Pj4yXSxsPTB8UW4oOCksVmU9MHxRbihudDw8MikscWU9MHxRbihu''@;'; + put 'put ''dDw8Myksdz0wOzspe2lmKCgwfHcpPj0oMHxudCkpe0c9MDticmVha31mb3IoX1soTT1xZSsodzw8Myl8MCk+PjNdPTAsUj1XZSsoKEQ9dysxfDApPDwyKXwwLGI9MHxhW1dlKyh3PDwyKT4+Ml0sbT0wLGs9MDshKCgwfGIpPj0oMHxhW1I+PjJdKSk7KSgwfHcpIT0oMHwoQT0wfGFbb3QrKGI8''@;'; + put 'put ''PDIpPj4yXSkpJiYoaz0rX2MocCxjLHcsQSksX1tNPj4zXT1rPStfW00+PjNdK2ssbT1tKzF8MCksYj1iKzF8MDtpZigoMHxtKTw9MCl7Sz0xMTticmVha31fW00+PjNdPWsvKygwfG0pLHc9RH1mb3IoMTE9PSgwfEspJiZQcig5NTkwOCw5NTgzMSwxMTY3LDk2MTY1KTs7KXtpZigoMHxHKT49''@;'; + put 'put ''KDB8bnQpKXtEPTAsbT0wO2JyZWFrfWFbVmUrKEc8PDIpPj4yXT0tMSxHPUcrMXwwfWU6Zm9yKDshKCgwfEQpPj0oMHxudCkpOyl7Zm9yKGFbVmUrKEQ8PDIpPj4yXT1ELEc9V2UrKChSPUQrMXwwKTw8Mil8MCx3PTB8YVsoYj1XZSsoRDw8Mil8MCk+PjJdOyEoKDB8dyk+PSgwfChBPTB8YVtH''@;'; + put 'put ''Pj4yXSkpKTspKDB8YVsoQT1WZSsoYVtvdCsodzw8Mik+PjJdPDwyKXwwKT4+Ml0pIT0oMHxEKSYmKGFbQT4+Ml09RCxtPW0rMXwwKSx3PXcrMXwwO2ZvcihNPTB8YVtiPj4yXTs7KXtpZigoMHxNKT49KDB8QSkpe0Q9Ujtjb250aW51ZSBlfWZvcihiPVdlKygxKyh3PTB8YVtvdCsoTTw8Mik+''@;'; + put 'put ''PjJdKTw8Mil8MCx3PTB8YVtXZSsodzw8Mik+PjJdOyEoKDB8dyk+PSgwfGFbYj4+Ml0pKTspKDB8YVsoQT1WZSsoYVtvdCsodzw8Mik+PjJdPDwyKXwwKT4+Ml0pIT0oMHxEKSYmKGFbQT4+Ml09RCxtPW0rMXwwKSx3PXcrMXwwO009TSsxfDAsQT0wfGFbRz4+Ml19fWlmKHA9MHx1YyhudCxu''@;'; + put 'put ''dCxtLDEsMSksYVtsPj4yXT1wLHApe2ZvcihwZT0wfGFbcCsyND4+Ml0sZ2U9MHxhW3ArMjg+PjJdLGFbKEs9MHxhW3ArMjA+PjJdKT4+Ml09MCxBPTAsbT0wOyEoKDB8QSk+PSgwfG50KSk7KXtmb3IoYVtWZSsoQTw8Mik+PjJdPWJlPUErbnR8MCxMZT1XZSsoKE9lPUErMXwwKTw8Mil8MCxj''@;'; + put 'put ''PXFlKyhBPDwzKXwwLGI9MHxhWyhNPVdlKyhBPDwyKXwwKT4+Ml07ISgoMHxiKT49KDB8KEE9MHxhW0xlPj4yXSkpKTspKDB8YVsodz1WZSsoKEE9MHxhW290KyhiPDwyKT4+Ml0pPDwyKXwwKT4+Ml0pIT0oMHxiZSkmJihhW3c+PjJdPWJlLGFbcGUrKG08PDIpPj4yXT1BLF9bKEc9Z2UrKG08''@;'; + put 'put ''PDMpfDApPj4zXT0uNSooK19bcWUrKEE8PDMpPj4zXSsgK19bYz4+M10pLF9bRz4+M109K19bSGUrKGI8PDMpPj4zXSxtPW0rMXwwKSxiPWIrMXwwO2ZvcihHPTB8YVtNPj4yXTshKCgwfEcpPj0oMHxBKSk7KXtmb3IoTT1XZSsoMSsoYj0wfGFbb3QrKEc8PDIpPj4yXSk8PDIpfDAsRD1xZSso''@;'; + put 'put ''Yjw8Myl8MCxSPUhlKyhHPDwzKXwwLGI9MHxhW1dlKyhiPDwyKT4+Ml07ISgoMHxiKT49KDB8YVtNPj4yXSkpOykoMHxhWyh3PVZlKyhhWyhBPW90KyhiPDwyKXwwKT4+Ml08PDIpfDApPj4yXSkhPSgwfGJlKSYmKGFbdz4+Ml09YmUsYVtwZSsobTw8Mik+PjJdPWFbQT4+Ml0sX1sodz1nZSso''@;'; + put 'put ''bTw8Myl8MCk+PjNdPS41KigyKitfW0Q+PjNdKyArX1tjPj4zXSsgK19bcWUrKGFbQT4+Ml08PDMpPj4zXSksX1t3Pj4zXT0rX1tIZSsoYjw8Myk+PjNdKyArX1tSPj4zXSxtPW0rMXwwKSxiPWIrMXwwO0c9RysxfDAsQT0wfGFbTGU+PjJdfWFbSysoT2U8PDIpPj4yXT1tLEE9T2V9YVtwKzg+''@;'; + put 'put ''PjJdPW0sV2U9MHxYc2UoKSxhWyhvdD1sKzR8MCk+PjJdPVdlLGdvKDB8V2UsMHxmLDE2OCksYVsxNisob3Q9MHxhW290Pj4yXSk+PjJdPTAsYVtvdCs0MD4+Ml09MSxfWyhXZT1vdCs5NnwwKT4+M109LjUqK19bV2U+PjNdLGFbb3QrODA+PjJdPTIwLEZ0KFZlKSxGdChxZSksUmEoUmUpfWVs''@;'; + put 'put ''c2UgTXgobCksbD0wO3JldHVybiAwfGx9ZnVuY3Rpb24gTXgobCl7dmFyIGM9MDswfChsfD0wKSYmKDB8KGM9MHxhW2w+PjJdKSYmUmEoYyksMHwobD0wfGFbbCs0Pj4yXSkmJm9WKGwpKX1mdW5jdGlvbiBuUChsLGMsZixwLG0pe3ZhciBBLHc7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEE9''@;'; + put 'put ''YWUsYWU9YWUrMTZ8MCxhWyh3PUEpPj4yXT0wLGZ1bmN0aW9uIFg5ZShsLGMsZixwLG0sQSx3KXtsfD0wLGN8PTAsZnw9MCxtfD0wLEF8PTAsd3w9MDt2YXIgSnIsTHIsbDAsVmksT2ksbG8sVGEsamEseGksRGwsb3MsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0w''@;'; + put 'put ''LE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxsdD0wLEV0PTAsWnQ9MCxjdD0wLGJ0PTAsYW49MCxTbj0wLEhuPTAsdXI9MCxIcj0wLEVyPTAsZnI9MCxEcj0wLFJvPTAsZ2E9MCxvbD0wLEwwPTAseGE9MDtpZihvcz1hZSxhZT1hZSszMnww''@;'; + put 'put ''LFRhPW9zKzIwfDAsamE9b3MrMTZ8MCx4aT1vcysxMnwwLERsPW9zKzh8MCxKcj1vcyxwZT0rX1socHw9MCk+PjNdLFI9K19bKEc9cCsyNHwwKT4+M10sRD0rX1soSz1wKzMyfDApPj4zXSxMcj0rX1twKzcyPj4zXSxsMD0wfGFbcCs4MD4+Ml0sVmk9K19bcCs4OD4+M10sTGU9K19bcCs5Nj4+''@;'; + put 'put ''M10sT2k9MHxhW3ArMTA0Pj4yXSxhWyhsbz1vcysyNHwwKT4+Ml09MCxhW1RhPj4yXT0xMCxhW2phPj4yXT0wLGFbeGk+PjJdPTAsYVtEbD4+Ml09MCxfW0pyPj4zXT0wLCEoMD09KDB8Yyl8KDB8bDApPDF8fChSbz0wfGFbYz4+Ml0sKDB8bCk8MXwoMHwoTT0wfGFbYys0Pj4yXSkpPDEpKSl7''@;'; + put 'put ''aWYoKDB8TSk8KDB8YVtwKzUyPj4yXSk/KGdlPTAsYj0wLGs9MCk6KGs9MHxRbig4MCpsfDApLGFbamE+PjJdPWssYVt4aT4+Ml09MHxRbig4MCksYVtEbD4+Ml09MHxRbig4MCksZ2U9MSxiPWspLGFbdz4+Ml09MCwoMHxSbyk9PSgwfE0pKXt1cj0wfGFoKGMsMSksSHI9MHxhW3VyKzIwPj4y''@;'; + put 'put ''XSxFcj0wfGFbdXIrMjQ+PjJdLGZyPTB8YVtmKzIwPj4yXSxEcj0wfGFbZisyND4+Ml0sSG49MHxhW2YrMjg+PjJdO2U6ZG97aWYoMHxhW3ArMTY+PjJdKWZvcihudygwfGFbcCsxMDg+PjJdKSxrPTB8QXIoUm8sbCksYj0wOzspe2lmKCgwfGIpPj0oMHxrKSlicmVhayBlO19bQSsoYjw8Myk+''@;'; + put 'put ''PjNdPStCaCgpLGI9YisxfDB9fXdoaWxlKDApO1I8MCYmKFI9K1NEKHVyLGwsQSksX1tHPj4zXT1SKSxEPDAmJihfW0s+PjNdPS4yLEQ9LjIpLHBlPj0wJiYoX1twPj4zXT0tMSxwZT0tMSksU249K3FsKCtSLCsoYW49MS1wZSkpLEV0PStxbCgrRCwuMzMzMzMzMzMzMzMzMzMzMyooMi1wZSkp''@;'; + put 'put ''L1IsWnQ9MHxRbihjdD1sPDwzKSxidD0wfFFuKGN0PTB8QXIoUm8sY3QpKSxvdD0wIT0oMHxnZSksU3Q9cCsxMTZ8MCxrdD0uMipFdCxsdD1wKzY0fDAsbnQ9LTE9PXBlLFdlPTAhPSgwfG0pLGI9MCxWZT0wLHFlPTA7ZTpmb3IoOzspe1ZlPVZlKzF8MCxnbygwfGJ0LDB8QSwwfGN0KSxvdCYm''@;'; + put 'put ''KGI9MHxHayhsLFJvLDEwLEEsMD09KDB8YVtTdD4+Ml0pPzA6bSkpLGdlPTAsUj0wO3Q6Zm9yKDsoMHxnZSk8KDB8Um8pOyl7Zm9yKGs9MDshKCgwfGspPj0oMHxsKSk7KV9bWnQrKGs8PDMpPj4zXT0wLGs9aysxfDA7Zm9yKGY9SHIrKChSZT1nZSsxfDApPDwyKXwwLEhlPTB8QXIoZ2UsbCks''@;'; + put 'put ''TT0wfGFbSHIrKGdlPDwyKT4+Ml07ISgoMHxNKT49KDB8YVtmPj4yXSkpOyl7az0wfGFbKEc9RXIrKE08PDIpfDApPj4yXTtuOmRve2lmKCgwfGspIT0oMHxnZSkpZm9yKEQ9K19jKEEsbCxnZSxrKSpFdCxrPTA7Oyl7aWYoKDB8ayk+PSgwfGwpKWJyZWFrIG47cGU9RCooK19bQSsoaytIZTw8''@;'; + put 'put ''Myk+PjNdLStfW0ErKCgwfEFyKDB8YVtHPj4yXSxsKSkrazw8Myk+PjNdKSxfWyhPZT1adCsoazw8Myl8MCk+PjNdPStfW09lPj4zXS1wZSxrPWsrMXwwfX13aGlsZSgwKTtNPU0rMXwwfWZvcihHPWZyKyhSZTw8Mil8MCxmPTB8YVtmcisoZ2U8PDIpPj4yXTshKCgwfGYpPj0oMHxhW0c+PjJd''@;'; + put 'put ''KSk7KXtrPTB8YVsoSz1EcisoZjw8Mil8MCk+PjJdO246ZG97aWYoKDB8aykhPSgwfGdlKSlmb3IoRD0rZHUoQSxsLGdlLGspLE09SG4rKGY8PDMpfDAscGU9MS9ELGs9MDs7KXtpZigoMHxrKT49KDB8bCkpYnJlYWsgbjtvbD0ob2w9RC0oTDA9K19bTT4+M10pKSpvbCprdCooK19bQSsoaytI''@;'; + put 'put ''ZTw8Myk+PjNdLStfW0ErKCgwfEFyKDB8YVtLPj4yXSxsKSkrazw8Myk+PjNdKSpwZSxfWyhPZT1adCsoazw8Myl8MCk+PjNdPShEPEwwP29sOi1vbCkrICtfW09lPj4zXSxrPWsrMXwwfX13aGlsZSgwKTtmPWYrMXwwfW46ZG97aWYob3Qpe2lmKCREKGIsK19bbHQ+PjNdLEErKEhlPDwzKXww''@;'; + put 'put ''LGdlLGxvLFRhLGphLHhpLERsLEpyLHcpLGY9MHxhW2xvPj4yXSwwfGFbdz4+Ml0pYnJlYWsgZTtmb3IoRz0wfGFbRGw+PjJdLEs9MHxhW3hpPj4yXSxnZT0wfGFbamE+PjJdLGs9MDs7KXtpZigoMHxrKT49KDB8Zikpe0Q9MCxrPTA7YnJlYWsgbn1mb3IoTDA9KEwwPStfW0crKGs8PDMpPj4z''@;'; + put 'put ''XSk+MWUtMTU/TDA6MWUtMTUsYmU9Sysoazw8Myl8MCxPZT0wfEFyKGssbCksRD0rcWwoK0wwLCthbiksRD0xLyhudD9MMCpMMDpEKSxNPTA7ISgoMHxNKT49KDB8bCkpOylfWyh4YT1adCsoTTw8Myl8MCk+PjNdPStfW2JlPj4zXSpTbiooK19bQSsoTStIZTw8Myk+PjNdLStfW2dlKyhNK09l''@;'; + put 'put ''PDwzKT4+M10pKkQrICtfW3hhPj4zXSxNPU0rMXwwO2s9aysxfDB9fWVsc2UgaWYoV2UmMCE9KDB8YVtTdD4+Ml0pKWZvcihrPTA7Oyl7aWYoKDB8ayk9PSgwfFJvKSl7RD0wLGs9MDticmVhayBufXI6ZG97aWYoKDB8aykhPSgwfGdlKSlmb3IoTDA9K2R1KEEsbCxnZSxrKSxmPW0rKGs8PDMp''@;'; + put 'put ''fDAsRz0wfEFyKGssbCksRD0rcWwoK0wwLCthbiksRD0xLyhudD9MMCpMMDpEKSxNPTA7Oyl7aWYoKDB8TSk+PSgwfGwpKWJyZWFrIHI7X1soT2U9WnQrKE08PDMpfDApPj4zXT0rX1tmPj4zXSpTbiooK19bQSsoTStIZTw8Myk+PjNdLStfW0ErKE0rRzw8Myk+PjNdKSpEKyArX1tPZT4+M10s''@;'; + put 'put ''TT1NKzF8MH19d2hpbGUoMCk7az1rKzF8MH1lbHNlIGZvcihrPTA7Oyl7aWYoKDB8ayk9PSgwfFJvKSl7RD0wLGs9MDticmVhayBufXI6ZG97aWYoKDB8aykhPSgwfGdlKSlmb3IoTDA9K2R1KEEsbCxnZSxrKSxmPTB8QXIoayxsKSxEPStxbCgrTDAsK2FuKSxEPTEvKG50P0wwKkwwOkQpLE09''@;'; + put 'put ''MDs7KXtpZigoMHxNKT49KDB8bCkpYnJlYWsgcjtfWyhPZT1adCsoTTw8Myl8MCk+PjNdPSgrX1tBKyhNK0hlPDwzKT4+M10tK19bQSsoTStmPDwzKT4+M10pKlNuKkQrICtfW09lPj4zXSxNPU0rMXwwfX13aGlsZSgwKTtrPWsrMXwwfX13aGlsZSgwKTtmb3IoOyEoKDB8ayk+PSgwfGwpKTsp''@;'; + put 'put ''RD0oTDA9K19bWnQrKGs8PDMpPj4zXSkqTDArRCxrPWsrMXwwO1I9KEQ9K0QwKCtEKSkrUjtuOmRve2lmKEQ+MClmb3IoRD0xL0Qsaz0wOzspe2lmKCgwfGspPj0oMHxsKSl7az0wO2JyZWFrIG59X1soeGE9WnQrKGs8PDMpfDApPj4zXT0rX1t4YT4+M10qRCxrPWsrMXwwfWVsc2Ugaz0wfXdo''@;'; + put 'put ''aWxlKDApO2Zvcig7Oyl7aWYoKDB8ayk+PSgwfGwpKXtnZT1SZTtjb250aW51ZSB0fV9bKHhhPUErKGsrSGU8PDMpfDApPj4zXT0rX1t4YT4+M10rICtfW1p0KyhrPDwzKT4+M10qTGUsaz1rKzF8MH19aWYoMHxiJiZlOShiKSwhKCgwfFZlKTwoMHxsMCkmKExlPStrayhPaSxMZSxSLHFlLFZp''@;'; + put 'put ''KSk+THIpKXtnYT03MDticmVha31xZT1SfTcwPT0oMHxnYSkmJjB8YVtwKzExMj4+Ml0mJlNrKGwsdXIsQSksRnQoYnQpLCgwfHVyKSE9KDB8YykmJlJhKHVyKSxGdChadCksaz1iPTB8YVtqYT4+Ml19ZWxzZSBhW3c+PjJdPS0xMDA7MHxrJiZGdChiKSwwfChiPTB8YVt4aT4+Ml0pJiZGdChi''@;'; + put 'put ''KSwwfChiPTB8YVtEbD4+Ml0pJiZGdChiKX1hZT1vc30ocCxjLDB8YVtsPj4yXSwwfGFbbCs0Pj4yXSxmLG0sdyksMHxhW3c+PjJdP1ByKDk2MTg0LDk1ODMxLDEyNjIsOTYxOTApOmFlPUF9ZnVuY3Rpb24gRXgobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgdz0w''@;'; + put 'put ''LGI9MDthWyhBfD0wKT4+Ml09MCxBPTB8YVtmKzEyMD4+Ml07ZTpkb3tzd2l0Y2goMHxBKXtjYXNlIDU6Y2FzZSA2OigwfGFbYz4+Ml0pPjImJihVMShjPTB8a3goYyxsLDAsbSw2IT0oMHxBKSYxKSxsLG0pLFZfKGMpKTticmVhaztjYXNlIDQ6Zm9yKEE9MDs7KXtpZigxPT0oMHxBKSlicmVh''@;'; + put 'put ''ayBlO25QKGI9MHxTeChjLGwsZixtKSxjLHAsbCxtKSxNeChiKSxBPUErMXwwfWNhc2UgMTpmPTAsdz02O2JyZWFrO2Nhc2UgMjpmPTEsdz02O2JyZWFrO2Nhc2UgMzpmPTIsdz02fX13aGlsZSgwKTtlOmRve2lmKDY9PSgwfHcpKWZvcihBPTA7Oyl7aWYoMT09KDB8QSkpYnJlYWsgZTt6bShi''@;'; + put 'put ''PTB8eXgoYyxsLC4wNSxtLGYpLGwsbSw1MCwuMDAxKSxRNChiKSxBPUErMXwwfX13aGlsZSgwKX1mdW5jdGlvbiBsUChsLGMsZixwLG0sQSx3LGIsayl7bHw9MCxjfD0wLHB8PTAsbXw9MCxBfD0wLHc9K3csYnw9MCxrfD0wO3ZhciBHLE09MCxEPTAsUj0wLEs9MCxwZT0wO2ZvcihHPTB8UW4o''@;'; + put 'put ''Sz0oZnw9MCk8PDMpLEs9MHxRbihLKSxEPTAsUj0wOygwfEQpPCgwfHApOyl7Zm9yKGs9MDshKCgwfGspPj0oMHxmKSk7KXBlPSgwfEFyKGsscCkpK0R8MCxfW0crKGs8PDMpPj4zXT0rX1ttKyhwZTw8Myk+PjNdLF9bSysoazw8Myk+PjNdPStfW0ErKHBlPDwzKT4+M10saz1rKzF8MDtmb3Io''@;'; + put 'put ''TT0rUjMobCxjLGYsRyxLLHcsYiksaz0wOyEoKDB8ayk+PSgwfGYpKTspX1tBKygoMHxBcihrLHApKStEPDwzKT4+M109K19bRysoazw8Myk+PjNdLGs9aysxfDA7RD1EKzF8MCxSPU0rUn1yZXR1cm4gRnQoRyksRnQoSyksK1J9ZnVuY3Rpb24gUjMobCxjLGYscCxtLEEsdyl7cHw9MCxtfD0w''@;'; + put 'put ''LEE9K0Esd3w9MDt2YXIgRyxwZSxnZSxiZSxPZSxiPTAsaz0wLE09MCxEPTAsUj0wLEs9MCxMZT0wLFJlPTA7Zm9yKGJlPTB8YVs0KyhsfD0wKT4+Ml0scGU9MHxhWzQrKGN8PTApPj4yXSxiPTB8UW4oZ2U9KGZ8PTApPDwzKSxNPTB8UW4oZ2UpLExlPTB8UW4oZ2UpLEQ9MHxRbihnZSksUj0w''@;'; + put 'put ''fGZ1bmN0aW9uIGd4KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MDtmb3IocD0wOyEoKDB8cCk+PSgwfGwpKTspX1sobT1mKyhwPDwzKXwwKT4+M109K19bYysocDw8Myk+PjNdLStfW20+PjNdLHA9cCsxfDA7cmV0dXJuIDB8Zn0oZixtLE09MHxtaVs2MyZiZV0obCxwLE0pKSxL''@;'; + put 'put ''PSsoMHxmKSxHPShPZT0rRDAoKyAreTUoZixSLFIpKS9LKSpBLEs9MS9LLFI9MCxtPUxlLGs9MSxBPU9lO0E+RyYoMHxSKTwoMHx3KTspQT0reTUoZixNLGI9MHxtaVs2MyZwZV0oYyxNLGIpKSwoMHxSKT4wP214KGYsYixtLEEvayk6Z28oMHxtLDB8YiwwfGdlKSxSXyhmLHAsbSxrPUEvK3k1''@;'; + put 'put ''KGYsbSxSZT0wfG1pWzYzJmJlXShsLG0sRCkpKSxMZT0wfFJfKGYsTSxSZSwtayksUj1SKzF8MCxrPUEsRD1SZSxBPStEMCgrICt5NShmLExlLExlKSkqSztyZXR1cm4gRnQoYiksRnQoTSksRnQobSksRnQoRCksK0F9ZnVuY3Rpb24gQjMobCxjLGYscCxtLEEsdyxiKXt2YXIgaztzd2l0Y2go''@;'; + put 'put ''Y3w9MCxmfD0wLHB8PTAsbT0rbSxBfD0wLHd8PTAsaz0wfGFbKGx8PTApPj4yXSxhWyhifD0wKT4+Ml09MCwwfHcpe2Nhc2UgMDp3PTB8ZnVuY3Rpb24gYjUobCl7dmFyIGM7cmV0dXJuIGx8PTAsYz0wfFFuKDgpLGFbYz4+Ml09bCxhW2MrND4+Ml09MjYsMHxjfShsKSxiPTB8ZnVuY3Rpb24g''@;'; + put 'put ''YVAobCl7dmFyIHcsayxNLEQsUixjPTAsZj0wLHA9MCxtPTAsQT0wLGI9MDt3PTB8YVsobHw9MCk+PjJdLGs9MHxhW2wrMjA+PjJdLE09MHxhW2wrMjQ+PjJdLEQ9MHxhW2wrMjg+PjJdLFI9MHxRbig4KSxmPTB8UW4oOCsoYVtsPj4yXTw8Myl8MCksYVtSPj4yXT1mLF9bZj4+M109KygwfHcp''@;'; + put 'put ''LGY9Zis4fDAsbD0wO2U6Zm9yKDshKCgwfGwpPj0oMHx3KSk7KWZvcihwPWYrKGw8PDMpfDAsX1twPj4zXT0xLG09bCsxfDAsQT0wfGFbaysobTw8Mik+PjJdLGM9MHxhW2srKGw8PDIpPj4yXTs7KXtpZigoMHxjKT49KDB8QSkpe2w9bTtjb250aW51ZSBlfSgwfGwpPT0oMHxhW00rKGM8PDIp''@;'; + put 'put ''Pj4yXSkmJigoYj0rX1tEKyhjPDwzKT4+M10pPj0wP2I6LWIpPjAmJihfW3A+PjNdPTEvYiksYz1jKzF8MH1yZXR1cm4gYVtSKzQ+PjJdPTI3LDB8Un0obCksbT0rbFAodyxiLGssYyxmLHAsbSxBLDApLGZ1bmN0aW9uIGlQKGwpezB8KGx8PTApJiZGdChsKX0odyksZnVuY3Rpb24gRHgobCl7''@;'; + put 'put ''RnQoMHxhWyhsfD0wKT4+Ml0pLDB8bCYmRnQobCl9KGIpO2JyZWFrO2Nhc2UgMTooZnVuY3Rpb24gRmkobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgZ2UsYmUsT2UsTGUsUmUsSGUsVmUscWUsbnQsV2Usb3Qsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9''@;'; + put 'put ''MCxwZT0wO2ZvcihvdD1hZSxhZT1hZSsxNnwwLFdlPW90LG50PTB8UW4ocWU9KFZlPTB8YVs0KyhsfD0wKT4+Ml0pPDwzKSxPZT0wfFFuKHFlKSxMZT0wfFFuKHFlKSxSZT0wfGFbbCsyMD4+Ml0sSGU9MHxhW2wrMjQ+PjJdLGdlPTB8YVtsKzI4Pj4yXSxiZT0wfGFbMTU3MTJdLHBlPTA7KDB8''@;'; + put 'put ''cGUpPCgwfGMpOyl7Zm9yKEE9MDs7KXtpZigoMHxBKT49KDB8VmUpKXtsPTA7YnJlYWt9Sz0oMHxBcihBLGMpKStwZXwwLF9bbnQrKEE8PDMpPj4zXT0rX1tmKyhLPDwzKT4+M10sX1tMZSsoQTw8Myk+PjNdPStfW3ArKEs8PDMpPj4zXSxBPUErMXwwfWZvcig7Oyl7aWYoISgoMHxsKTwoMHxt''@;'; + put 'put ''KSkpe0E9MDticmVha31mb3IoRD0wOyEoKDB8RCk+PSgwfFZlKSk7KXtmb3IoSz0wfGFbUmUrKChHPUQrMXwwKTw8Mik+PjJdLE09Uj0wfGFbUmUrKEQ8PDIpPj4yXSxiPTAsdz0wOyEoKDB8TSk+PSgwfEspKTspaz0rX1tnZSsoTTw8Myk+PjNdLCgwfChBPTB8YVtIZSsoTTw8Mik+PjJdKSk9''@;'; + put 'put ''PSgwfEQpP3c9azpiPStfW250KyhBPDwzKT4+M10qaytiLE09TSsxfDA7MD09YiYmKGFbV2U+PjJdPUstUixUMChiZSw5NjIxMixXZSkpLF9bT2UrKEQ8PDMpPj4zXT0oK19bTGUrKEQ8PDMpPj4zXS1iKS93LEQ9R31nbygwfG50LDB8T2UsMHxxZSksbD1sKzF8MH1mb3IoOyEoKDB8QSk+PSgw''@;'; + put 'put ''fFZlKSk7KV9bcCsoKDB8QXIoQSxjKSkrcGU8PDMpPj4zXT0rX1tudCsoQTw8Myk+PjNdLEE9QSsxfDA7cGU9cGUrMXwwfUZ0KG50KSxGdChPZSksRnQoTGUpLGFlPW90fSkobCxjLGYscCxBLDApLG09MDticmVhaztkZWZhdWx0Om09MH1yZXR1cm4rbX1mdW5jdGlvbiBzUChsLGMsZil7bHw9''@;'; + put 'put ''MCxjfD0wLGZ8PTA7dmFyIG0sQSx3LGssTSxELFIscD0wLGI9MCxHPTA7Zm9yKFI9YWUsYWU9YWUrMzJ8MCxNPVIrMjB8MCxtPVIrMTZ8MCxBPVIrMTJ8MCx3PVIrOHwwLF9bKGs9Uik+PjNdPTEsRD0wfFFuKGI9bDw8MyksYj0wfFFuKGIpLGM9MDshKCgwfGMpPj0oMHxsKSk7KV9bRCsoYzw8''@;'; + put 'put ''Myk+PjNdPStfW2YrKChwPWM8PDEpPDwzKT4+M10sX1tiKyhjPDwzKT4+M109K19bZisoKDF8cCk8PDMpPj4zXSxjPWMrMXwwO2ZvcihhW00+PjJdPWMsKDB8bCk+Mj9mPTB8ZnVuY3Rpb24gaXZlKGwsYyxmLHApe3JldHVybiBmfD0wLHB8PTAscD1hZSxhZT1hZSsxNnwwLGFbKGY9cCk+PjJd''@;'; + put 'put ''PTkzNjMxLCRyKDEsOTM3MDksZiksYWU9cCwwfSgwLDAsbCx3KTooYVt3Pj4yXT0wLGY9MCkscD0wfHVjKGwsbCwxLDEsMiksYz0wO2FbTT4+Ml09YywhKCgwfGMpPj0oMHxhW3c+PjJdKSk7KWFbbT4+Ml09YVtmKygoRz1jPDwxKTw8Mik+PjJdLGFbQT4+Ml09YVtmKygoMXxHKTw8Mik+PjJd''@;'; + put 'put ''LE8zKHAsMSxtLEEsayksYz0xKygwfGFbTT4+Ml0pfDA7Zm9yKDI9PSgwfGwpJiYoYVttPj4yXT0wLGFbQT4+Ml09MSxPMyhwLDEsbSxBLGspKSxjPTA7YVtNPj4yXT1jLCEoKDB8Yyk+PSgwfGwpKTspTzMocCwxLE0sTSxrKSxjPTErKDB8YVtNPj4yXSl8MDtyZXR1cm4gbD0wfG5qKHApLFJh''@;'; + put 'put ''KHApLEc9MHxhaChsLDApLFJhKGwpLEZ0KGYpLEZ0KEQpLEZ0KGIpLGFlPVIsMHxHfWZ1bmN0aW9uIEx4KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSxiLE0scD0wLG09MCx3PTAsaz0wO2ZvcihNPWFlLGFlPWFlKzE2fDAsQT1NKzh8MCxfWyh3PU0pPj4zXT0xLGI9MHxRbihrPWw8PDMp''@;'; + put 'put ''LGs9MHxRbihrKSxwPTA7ISgoMHxwKT49KDB8bCkpOyltPTB8QXIocCxjKSxfW2IrKHA8PDMpPj4zXT0rX1tmKyhtPDwzKT4+M10sX1trKyhwPDwzKT4+M109K19bZisobSsxPDwzKT4+M10scD1wKzF8MDtmb3IoYVtBPj4yXT1wLHA9MHxmdW5jdGlvbiBvdmUobCxjLGYscCl7bHw9MCxmfD0w''@;'; + put 'put ''LHB8PTA7dmFyIG09MDtlOmRve3N3aXRjaCgwfGYpe2Nhc2UgMjpwPTB8UW4oMTYpLG09MHxRbigyNCksYVttKzg+PjJdPTAsYVttKzQ+PjJdPXAsYVttPj4yXT0yLGFbcD4+Ml09MCxhW3ArND4+Ml09MSxhW20rMTY+PjJdPWY9cCs4fDAsYVttKzIwPj4yXT0wLGFbbSsxMj4+Ml09MixhW2Y+''@;'; + put 'put ''PjJdPTEsYVtwKzEyPj4yXT0wO2JyZWFrO2Nhc2UgMTpwPTB8UW4oNCksbT0wfFFuKDEyKSxhW20rOD4+Ml09MCxhW20rND4+Ml09cCxhW20+PjJdPTEsYVtwPj4yXT0wO2JyZWFrO2RlZmF1bHQ6aWYocnZlKDAsMCwwKSxsPSgwfGYpPjAscCl7aWYoIWwpe209MDticmVhayBlfWJsKCl9ZWxz''@;'; + put 'put ''ZXtpZighbCl7bT0wO2JyZWFrIGV9YmwoKX19fXdoaWxlKDApO3JldHVybiAwfG19KGIsMCxsLDApLG09MHx1YyhsLGwsMSwxLDIpLGM9MDs7KXtpZihhW0E+PjJdPWMsISgoMHxjKTwoMHxsKSkpe2M9MDticmVha31mb3IoZj0xOyEoKDB8Zik+PSgwfGFbcCsoMTIqY3wwKT4+Ml0pKTspTzMo''@;'; + put 'put ''bSwxLEEsKDB8YVtwKygxMipjfDApKzQ+PjJdKSsoZjw8Mil8MCx3KSxmPWYrMXwwLGM9MHxhW0E+PjJdO2M9YysxfDB9Zm9yKDthW0E+PjJdPWMsISgoMHxjKT49KDB8bCkpOylPMyhtLDEsQSxBLHcpLGM9MSsoMHxhW0E+PjJdKXwwO3JldHVybiB3PTB8YWgoMHxuaihtKSwwKSxSYShtKSxG''@;'; + put 'put ''dChiKSxGdChrKSxmdW5jdGlvbiBhdmUobCl7dmFyIGM9MDswfChsfD0wKSYmKDB8KGM9MHxhW2wrND4+Ml0pJiZGdChjKSwwfChjPTB8YVtsKzg+PjJdKSYmRnQoYyksRnQobCkpfShwKSxhZT1NLDB8d31mdW5jdGlvbiBCeChsLGMsZil7Znw9MDt2YXIgbSxwPTAsQT0wLHc9MCxiPTA7Zm9y''@;'; + put 'put ''KEE9MHxhWyhtPShsfD0wKSsoMjAqKGN8PTApfDApfDApPj4yXSx3PTB8YVtsKygyMCpjfDApKzQ+PjJdLHA9MDs7KXtpZigoMHxwKT49KDB8QSkpe2I9NDticmVha31pZigoMHxhW3crKHA8PDIpPj4yXSk9PSgwfGYpKWJyZWFrO3A9cCsxfDB9ND09KDB8YikmJihhW20+PjJdPUErMSxhW3cr''@;'; + put 'put ''KEE8PDIpPj4yXT1mLHc9MHxhW2wrKDIwKmZ8MCkrND4+Ml0sYVsoQT1sKygyMCpmfDApfDApPj4yXT0xKyhiPTB8YVtBPj4yXSksYVt3KyhiPDwyKT4+Ml09YywwfGFbbCs4Pj4yXSkmJihqblsoYj0wfGFbbCsoMjAqY3wwKSs4Pj4yXSk+PjJdPStqbltiPj4yXS0xLGpuWyhiPTB8YVtsKygy''@;'; + put 'put ''MCpmfDApKzg+PjJdKT4+Ml09K2puW2I+PjJdLTEpfWZ1bmN0aW9uIGNQKGwsYyl7Y3w9MDt2YXIgZixwPTA7cmV0dXJuIDB8YVsoZj00KyhsfD0wKXwwKT4+Ml0/KGFbYz4+Ml09YVsocD0wfGFbbD4+Ml0pPj4yXSxhW2MrND4+Ml09YVtwKzQ+PjJdLGFbYys4Pj4yXT1hW3ArOD4+Ml0sYVtj''@;'; + put 'put ''KzEyPj4yXT1hW3ArMTI+PjJdLGFbKGM9MHxhW2w+PjJdKT4+Ml09YVsocD1jKygoMHxhW2Y+PjJdKS0xPDw0KXwwKT4+Ml0sYVtjKzQ+PjJdPWFbcCs0Pj4yXSxhW2MrOD4+Ml09YVtwKzg+PjJdLGFbYysxMj4+Ml09YVtwKzEyPj4yXSxhW2Y+PjJdPSgwfGFbZj4+Ml0pLTEsXzUobCwwKSxs''@;'; + put 'put ''PTEpOmw9MCwwfGx9ZnVuY3Rpb24gUHgobCxjKXtjfD0wO3ZhciBNLEQsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihEPWFlLGFlPWFlKzE2fDAsTT1ELCgwfChBPTB8YVsoYj00KyhsfD0wKXwwKT4+Ml0pKT09KDB8YVsoZj1sKzh8MCk+PjJdKT8oYVtmPj4yXT1BPDwxLGY9MHxV''@;'; + put 'put ''YSgwfGFbbD4+Ml0sQTw8NSksYVtsPj4yXT1mLGs9bCx3PTB8YVtiPj4yXSk6KGs9bCx3PUEsZj0wfGFbbD4+Ml0pLGFbYj4+Ml09dysxLGFbKGI9ZisoQTw8NCl8MCk+PjJdPWFbYz4+Ml0sYVtiKzQ+PjJdPWFbYys0Pj4yXSxhW2IrOD4+Ml09YVtjKzg+PjJdLGFbYisxMj4+Ml09YVtjKzEy''@;'; + put 'put ''Pj4yXTshKCgwfEEpPD0wKTspe2lmKCEoKHA9K19bKGY9MHxhW2s+PjJdKSsoQTw8NCkrOD4+M10pPChtPStfW2YrKChsPUE+Pj4xKTw8NCkrOD4+M10pKSl7aWYocCE9bXx8ISgxJigwfFQxKCkpKSlicmVhaztmPTB8YVtrPj4yXX1hW00+PjJdPWFbKGI9ZisoQTw8NCl8MCk+PjJdLGFbTSs0''@;'; + put 'put ''Pj4yXT1hW2IrND4+Ml0sYVtNKzg+PjJdPWFbYis4Pj4yXSxhW00rMTI+PjJdPWFbYisxMj4+Ml0sYVtiPj4yXT1hWyhjPWYrKGw8PDQpfDApPj4yXSxhW2IrND4+Ml09YVtjKzQ+PjJdLGFbYis4Pj4yXT1hW2MrOD4+Ml0sYVtiKzEyPj4yXT1hW2MrMTI+PjJdLGFbKGI9KDB8YVtrPj4yXSkr''@;'; + put 'put ''KGw8PDQpfDApPj4yXT1hW00+PjJdLGFbYis0Pj4yXT1hW00rND4+Ml0sYVtiKzg+PjJdPWFbTSs4Pj4yXSxhW2IrMTI+PjJdPWFbTSsxMj4+Ml0sQT1sfWFlPUR9ZnVuY3Rpb24gXzUobCxjKXtjfD0wO3ZhciB3LGIsTSxmPTAscD0wLG09MCxBPTAsaz0wLEQ9MDtmb3IoTT1hZSxhZT1hZSsx''@;'; + put 'put ''NnwwLHc9TSxiPTQrKGx8PTApfDA7Oyl7QT0xfChmPWM8PDEpLCgwfGYpPCgwfGFbYj4+Ml0pJiYoKHA9K19bKEQ9MHxhW2w+PjJdKSsoZjw8NCkrOD4+M10pPChtPStfW0QrKGM8PDQpKzg+PjNdKXx8cD09bSYmMCE9KDEmKDB8VDEoKSl8MCkpfHwoaz02KSw2PT0oMHxrKSYmKGs9MCxmPWMp''@;'; + put 'put ''O2Rve2lmKCgwfEEpPCgwfGFbYj4+Ml0pKXtpZighKChwPStfWyhEPTB8YVtsPj4yXSkrKEE8PDQpKzg+PjNdKTwobT0rX1tEKyhmPDw0KSs4Pj4zXSl8fHA9PW0mJjEmKDB8VDEoKSkpKWJyZWFrO2Y9QX19d2hpbGUoMCk7aWYoKDB8Zik9PSgwfGMpKWJyZWFrO2Fbdz4+Ml09YVsoRD0oQT0w''@;'; + put 'put ''fGFbbD4+Ml0pKyhmPDw0KXwwKT4+Ml0sYVt3KzQ+PjJdPWFbRCs0Pj4yXSxhW3crOD4+Ml09YVtEKzg+PjJdLGFbdysxMj4+Ml09YVtEKzEyPj4yXSxhW0Q+PjJdPWFbKEE9QSsoYzw8NCl8MCk+PjJdLGFbRCs0Pj4yXT1hW0ErND4+Ml0sYVtEKzg+PjJdPWFbQSs4Pj4yXSxhW0QrMTI+PjJd''@;'; + put 'put ''PWFbQSsxMj4+Ml0sYVsoRD0oMHxhW2w+PjJdKSsoYzw8NCl8MCk+PjJdPWFbdz4+Ml0sYVtEKzQ+PjJdPWFbdys0Pj4yXSxhW0QrOD4+Ml09YVt3Kzg+PjJdLGFbRCsxMj4+Ml09YVt3KzEyPj4yXSxjPWZ9YWU9TX1mdW5jdGlvbiBGeChsLGMsZixwLG0sQSx3LGIpe2x8PTAsY3w9MCxmPStm''@;'; + put 'put ''LHA9K3AsQXw9MCx3fD0wLGJ8PTA7dmFyIE0saz0wLEQ9MCxSPTA7aWYoKE09MCE9KDB8KG18PTApKSk/RD0zOjB8UjJlKGwsYyxtPTB8UW4oYzw8MyksYyk/KGw9MSxEPTE3KTpEPTMsMz09KDB8RCkpe2ZvcihrPTB8dnIoYzw8MiksYVtBPj4yXT1rLGw9MDshKCgwfGwpPj0oMHxjKSk7KWFb''@;'; + put 'put ''aysobDw8Mik+PjJdPWwsbD1sKzF8MDtmb3IoUTcobSxrLDAsbD1jKy0xfDApLHA9KHA9KCtfW20rKGFbaysobDw8Mik+PjJdPDwzKT4+M10tKFI9K19bbSsoYVtrPj4yXTw8Myk+PjNdKSkqcC8rKDB8bCkpPGY/ZjpwLGw9MCxBPTEsZj1SOyEoKDB8QSk+PSgwfGMpKTspbD1sKygoUj0rX1tt''@;'; + put 'put ''KyhhW2srKEE8PDIpPj4yXTw8Myk+PjNdKS1mPnAmMSl8MCxBPUErMXwwLGY9UjthW2I+PjJdPWw7ZTpkb3tpZihsKWZvcihiPTB8UW4obDw8MiksYVt3Pj4yXT1iLGw9MCxBPTE7Oyl7aWYoKDB8QSk+PSgwfGMpKWJyZWFrIGU7K19bbSsoYVtrKyhBPDwyKT4+Ml08PDMpPj4zXS0rX1ttKyhh''@;'; + put 'put ''W2srKEErLTE8PDIpPj4yXTw8Myk+PjNdPnAmJihhW2IrKGw8PDIpPj4yXT1BLGw9bCsxfDApLEE9QSsxfDB9ZWxzZSBrPTB8UW4oNCksYVt3Pj4yXT1rLGFbaz4+Ml09Y313aGlsZSgwKTtNP2w9MDoobD0wLEQ9MTcpfXJldHVybiAxNz09KDB8RCkmJkZ0KG0pLDB8bH1mdW5jdGlvbiBIeChs''@;'; + put 'put ''LGMpe2x8PTAsY3w9MDt2YXIgUixHLEssZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAscGU9MDtmb3IoMHwoZj0wfGFbNDY5MzBdKSYmQjcoZiksYVs0NjkzMF09MHxjZyhjLGMsMCksMHwoZj0wfGFbNDY5MzFdKSYmRnQoZiksYVs0NjkzMV09MHx2cihjPDwyKSwwfChmPTB8''@;'; + put 'put ''YVs0NjkzMl0pJiZGdChmKSxSPTB8dnIoYzw8MyksYVs0NjkzMl09UixHPTB8YVs0NjkzMF0sSz0wfGFbNDY5MzFdLHc9MDs7KXtpZigoMHx3KT49KDB8Yykpe3A9MTA7YnJlYWt9Zm9yKHA9bCsodzw8Mil8MCxBPUcrKHc8PDIpfDAsbT0wLGY9MDsoMHxmKSE9KDB8Yyk7KV9bKDB8YVtBPj4y''@;'; + put 'put ''XSkrKGY8PDMpPj4zXT1iPStfWygwfGFbcD4+Ml0pKyhmPDwzKT4+M10sbT1tPChiPStlbygrYikpP2I6bSxmPWYrMXwwO2lmKDA9PW0pe3A9MTU7YnJlYWt9X1tSKyh3PDwzKT4+M109MS9tLGFbSysodzw8Mik+PjJdPXcsdz13KzF8MH1lOmRve2lmKDEwPT0oMHxwKSl7RD1jKy0xfDAsZj0w''@;'; + put 'put ''LE09MDt0OmZvcig7KDB8TSk8KDB8RCk7KXtmb3IocD1NLGs9ZixtPTA7ISgoMHxwKT49KDB8YykpOyliPStlbygrICtfWygwfGFbRysoKGw9MHxhW0srKHA8PDIpPj4yXSk8PDIpPj4yXSkrKE08PDMpPj4zXSksdz0obD1tPChiKj0rX1tSKyhsPDwzKT4+M10pKT9wOmsscD1wKzF8MCxrPXcs''@;'; + put 'put ''bT1sP2I6bTtpZigwPT1tKXtmPTA7YnJlYWsgZX1mb3IoZj1LKyhNPDwyKXwwLCgwfGspIT0oMHxNKSYmKHc9MHxhW2Y+PjJdLGFbZj4+Ml09YVsobD1LKyhrPDwyKXwwKT4+Ml0sYVtsPj4yXT13KSxtPTEvK19bKEE9MHxhW0crKGFbZj4+Ml08PDIpPj4yXSkrKE08PDMpPj4zXSxwPWw9TSsx''@;'; + put 'put ''fDA7Oyl7aWYoKDB8cCk+PSgwfGMpKXtmPWssTT1sO2NvbnRpbnVlIHR9X1soZj0odz0wfGFbRysoYVtLKyhwPDwyKT4+Ml08PDIpPj4yXSkrKE08PDMpfDApPj4zXT1iPStfW2Y+PjNdKm07bjpkb3tpZigwIT1iKWZvcihmPWw7Oyl7aWYoKDB8Zik+PSgwfGMpKWJyZWFrIG47X1socGU9dyso''@;'; + put 'put ''Zjw8Myl8MCk+PjNdPStfW3BlPj4zXS0rX1tBKyhmPDwzKT4+M10qYixmPWYrMXwwfX13aGlsZSgwKTtwPXArMXwwfX1mPTAhPStfWygwfGFbRysoYVtLKyhEPDwyKT4+Ml08PDIpPj4yXSkrKEQ8PDMpPj4zXSYxfWVsc2UgMTU9PSgwfHApJiYoX1tSKyh3PDwzKT4+M109MCxmPTApfXdoaWxl''@;'; + put 'put ''KDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gZlAobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBrLE0scD0wLG09MCxBPTAsdz0wLGI9MDtmb3Ioaz0wfGFbNDY5MzBdLE09MHxhWzQ2OTMxXSxiPTA7Oyl7aWYoKDB8Yik+PSgwfGYpKXtwPWY7YnJlYWt9Zm9yKHc9aysoKEE9MHxhW00rKGI8PDIp''@;'; + put 'put ''Pj4yXSk8PDIpfDAsbT0wLHA9MDsoMHxwKSE9KDB8Yik7KW09K19bbCsocDw8Myk+PjNdKitfWygwfGFbdz4+Ml0pKyhwPDwzKT4+M10rbSxwPXArMXwwO19bbCsoYjw8Myk+PjNdPStfW2MrKEE8PDMpPj4zXS1tLGI9YisxfDB9Zm9yKDtjPXArLTF8MCwhKCgwfHApPD0wKTspe2ZvcihBPU0r''@;'; + put 'put ''KGM8PDIpfDAsbT0wOyEoKDB8cCk+PSgwfGYpKTspbT0rX1tsKyhwPDwzKT4+M10qK19bKDB8YVtrKyhhW0E+PjJdPDwyKT4+Ml0pKyhwPDwzKT4+M10rbSxwPXArMXwwO19bKHA9bCsoYzw8Myl8MCk+PjNdPSgrX1twPj4zXS1tKS8rX1soMHxhW2srKGFbQT4+Ml08PDIpPj4yXSkrKGM8PDMp''@;'; + put 'put ''Pj4zXSxwPWN9fWZ1bmN0aW9uIFpfKGwpe3ZhciBjO3JldHVybiBsfD0wLGM9MHxRbig4KSxhW2M+PjJdPWwsYVtjKzQ+PjJdPTAsMHxjfWZ1bmN0aW9uIHpfKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MDtpZigwfChsfD0wKSlkb3tmPWwsbD0wfGFbbCs0Pj4yXSwwfChwPTB8YVtmPj4yXSkmJkNv''@;'; + put 'put ''WzEyNyZjXShwKSxGdChmKX13aGlsZSgwIT0oMHxsKSl9ZnVuY3Rpb24gQ0EobCxjKXtyZXR1cm4gbHw9MCxjPTB8Wl8oY3w9MCksYVtjKzQ+PjJdPWwsMHxjfWZ1bmN0aW9uIEx1KGwpe3JldHVybiAwfGFbKGx8PTApPj4yXX1mdW5jdGlvbiBHbShsKXtyZXR1cm4gMHxhWzQrKGx8PTApPj4y''@;'; + put 'put ''XX1mdW5jdGlvbiBVdChsKXt2YXIgYztyZXR1cm4gbHw9MCxjPTB8UW4oMTIpLGFbYz4+Ml09bCxhW2MrND4+Ml09MCxhW2MrOD4+Ml09MCwwfGN9ZnVuY3Rpb24gR2kobCxjKXtjfD0wO3ZhciBmPTAscD0wO2lmKDB8KGx8PTApKWRve2Y9bCxsPTB8YVtsKzQ+PjJdLDB8KHA9MHxhW2Y+PjJd''@;'; + put 'put ''KSYmQ29bMTI3JmNdKHApLEZ0KGYpfXdoaWxlKDAhPSgwfGwpKX1mdW5jdGlvbiBrZihsLGMsZil7Znw9MDt2YXIgcD0wLG09MCxBPTA7MHwobHw9MCkmJihwPTB8YVtsKzQ+PjJdLG09MHxhW2wrOD4+Ml0sMHwoQT0wfGFbbD4+Ml0pJiZDb1sxMjcmKGN8PTApXShBKSxGdChsKSwwfHAmJihh''@;'; + put 'put ''W3ArOD4+Ml09bSksYVsoMHxtP20rNHwwOmYpPj4yXT1wKX1mdW5jdGlvbiBrQShsKXthWyhsfD0wKT4+Ml09MCxhW2wrND4+Ml09MH1mdW5jdGlvbiBHXyhsKXt2YXIgYztyZXR1cm4gbHw9MCxrQSgzNisoYz0wfHZyKDY0KSl8MCksYVtjKzg+PjJdPWwsMHxjfWZ1bmN0aW9uIFZ4KGwpe3Jl''@;'; + put 'put ''dHVybiAwfEdvKDB8YVs4KyhsfD0wKT4+Ml0pfWZ1bmN0aW9uIFdfKGwsYyl7dmFyIGYscDtsfD0wLGFbNCsoY3w9MCk+PjJdPTAsYVsoMD09KDB8KHA9MHxhWyhmPWwrNHwwKT4+Ml0pKT9sOnArNHwwKT4+Ml09YyxhW2Y+PjJdPWN9ZnVuY3Rpb24gWV8obCxjKXt2YXIgZjtjfD0wLChmPTB8''@;'; + put 'put ''YVsobHw9MCk+PjJdKT9hW2MrND4+Ml09ZjooYVtsPj4yXT1jLGw9bCs0fDApLGFbbD4+Ml09Y31mdW5jdGlvbiBqeChsLGMsZixwLG0pe2x8PTAsY3w9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2ZvcihhWyhEPTgrKGZ8PTApfDApPj4yXT0xKyhNPTB8YVtEPj4y''@;'; + put 'put ''XSksYVsxNisoMHxhWzExMisoMHxhWyhEPWMrMTZ8MCk+PjJdKT4+Ml0pKzQ+PjJdPU0sYVsyNCsoMHxhWzExMisoMHxhW0Q+PjJdKT4+Ml0pPj4yXT1NLE09MD09KDB8cCksaz0wfFNzKGwsYyk7azspeygwfChBPTB8YVsoMj09KDB8KHA9MyZhW2s+PjJdKSk/azprKy00OHwwKSs0MD4+Ml0p''@;'; + put 'put ''KT09KDB8Yyk/KHA9MHxhWygzPT0oMHxwKT9rOmsrNDh8MCkrNDA+PjJdLDB8YVsoQT0wfGFbMTIwKygwfGFbaysxNj4+Ml0pPj4yXSk+PjJdfHwoYVtBPj4yXT0tMSkpOigwfGFbKHA9MHxhWzEyMCsoMHxhW2srMTY+PjJdKT4+Ml0pPj4yXXx8KGFbcD4+Ml09MSkscD1BKSxiPTB8YVsxNiso''@;'; + put 'put ''dz0wfGFbMTEyKygwfGFbKEE9cCsxNnwwKT4+Ml0pPj4yXSkrND4+Ml07ZG97aWYoYikoMHxhWzgrKEE9MHxhWzExMisoMHxhW0Q+PjJdKT4+Ml0pPj4yXSkhPSgwfHApJiYoYVsodz1BKzI0fDApPj4yXT0oMHwoQT0wfGFbdz4+Ml0pKTwoMHxiKT9BOmIpO2Vsc2UgaWYoYVt3Kzg+PjJdPWMs''@;'; + put 'put ''cFAobSxrKSxqeChsLHAsZiwwLG0pLGFbKGI9MjQrKDB8YVsxMTIrKDB8YVtEPj4yXSk+PjJdKXwwKT4+Ml09YVsyNCsoMHxhWzExMisoMHxhWygoMHxhW2I+PjJdKTwoMHxhWzI0KygwfGFbMTEyKygwfGFbQT4+Ml0pPj4yXSk+PjJdKT9jOnApKzE2Pj4yXSk+PjJdKT4+Ml0sKDB8YVsyNCso''@;'; + put 'put ''MHxhWzExMisoMHxhW0E+PjJdKT4+Ml0pPj4yXSk+PSgwfGFbMTYrKDB8YVsxMTIrKDB8YVtEPj4yXSk+PjJdKSs0Pj4yXSkpe3A9MDtkb3t3PTB8Z1AobSksMHxhWzEyKygwfGFbMTEyKygwfGFbMTYrKEE9MHxhWygoMyZhW3c+PjJdfDApPT0oMHwoKEE9MT09KDB8YVthWzEyMCsoMHxhW3cr''@;'; + put 'put ''MTY+PjJdKT4+Ml0+PjJdKSk/MjozKSk/dzp3Kyg0OCooQT8tMToxKXwwKXwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml18fChwfHwocD0wfFp4KGwsZikpLFVfKHAsQSkpfXdoaWxlKCgwfHcpIT0oMHxrKSk7aWYoMHxwKXtpZigwPT0oMHxhWzEyKygwfGFbMTEyKygwfGFbRD4+Ml0pPj4yXSk+''@;'; + put 'put ''PjJdKSYmKDB8VngocCkpPjEmJlVfKHAsYyksIU0mJigwfGFbMTIrKDB8YVsxMTIrKDB8YVtEPj4yXSk+PjJdKT4+Ml0pPT0oMHxwKSl7WV8oZixwKTticmVha31XXyhmLHApfX19d2hpbGUoMCk7az0wfEhzKGwsayxjKX0hTSYmMD09KDB8YVsxMisoMHxhWzExMisoMHxhW0Q+PjJdKT4+Ml0p''@;'; + put 'put ''Pj4yXSkmJihVXyhEPTB8WngobCxmKSxjKSxZXyhmLEQpKX1mdW5jdGlvbiBwUChsLGMpe2FbNCsoMHxhWzEyMCsoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk+PjJdPWFbKGx8PTApPj4yXSxhW2w+PjJdPWMsYVsoYz1sKzR8MCk+PjJdPTErKDB8YVtjPj4yXSl9ZnVuY3Rpb24gZ1AobCl7dmFy''@;'; + put 'put ''IGMsZixwO3JldHVybihjPTB8YVsobHw9MCk+PjJdKXx8UHIoMTM4Mzk0LDk2MjU0LDY1LDk2MjY2KSwoMHwocD0wfGFbKGY9bCs0fDApPj4yXSkpPjA/KGFbbD4+Ml09YVs0KygwfGFbMTIwKygwfGFbYysxNj4+Ml0pPj4yXSk+PjJdLGFbZj4+Ml09cCstMSwwfGMpOihQcig5NjI0NCw5NjI1''@;'; + put 'put ''NCw2MSw5NjI2NiksMCl9ZnVuY3Rpb24gWngobCxjKXtyZXR1cm4gMHxHXygwfGZ1bmN0aW9uIG1QKGwsYyl7bHw9MDt2YXIgZixwLG0sQTtyZXR1cm4gZj1hZSxhZT1hZSsxNDR8MCxtPWYscD1mKzh8MCxhWyhBPTEyKyhjfD0wKXwwKT4+Ml09MSsoYz0wfGFbQT4+Ml0pLGFbbT4+Ml09Yyxv''@;'; + put 'put ''byhwLDk2MjM0LG0pLGgwKGM9MHxkcyhsLHAsMSksMTM3NDgzLDI4MCwxKSxhZT1mLDB8Y30obHw9MCxjfD0wKSl9ZnVuY3Rpb24gVV8obCxjKXtXbigwfGFbOCsobHw9MCk+PjJdLGN8PTAsMSksYVsxMisoMHxhWzExMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4yXT1sfWZ1bmN0aW9uIHp4KGwp''@;'; + put 'put ''e3ZhciBjPTAsZj0wO2ZvcihjPTB8YVszNisobHw9MCk+PjJdO2M7KWY9MHxhW2MrND4+Ml0sengoYyksYz1mOyFmdW5jdGlvbiBOeChsKXswfChsfD0wKSYmKFltKDB8YVtsKzMyPj4yXSksRnQobCkpfShsKX1mdW5jdGlvbiBHeChsLGMsZil7bHw9MCxmPStmO3ZhciBwPTAsbT0wLEE9MCx3''@;'; + put 'put ''PTA7Zm9yKHA9MzYrKGN8PTApfDAsbT0wO3A9MHxhW3A+PjJdOylHeChsLHAsZikscD1wKzR8MCxtPW0rMXwwO3A9MHxmdW5jdGlvbiBDNShsLGMsZil7Zj0rZjt2YXIgQSx3LGIsayxNLHA9MCxtPTAsRD0wLFI9MCxHPTA7Zm9yKEQ9MHxhWzgrKGN8PTApPj4yXSxmdW5jdGlvbiBOaChsLGMp''@;'; + put 'put ''e2x8PTA7dmFyIG0sZj0wLHA9MDtmb3IoZj0wfER0KG09MHxhWzgrKGN8PTApPj4yXSk7Zjspe2ZvcihwPTB8dzAobCxmKTtwOykoMHxhWzEyKygwfGFbMTEyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPj4yXSk9PSgwfGMpJiZW''@;'; + put 'put ''ZChtLHAsMSkscD0wfFMwKGwscCk7Zj0wfHp0KG0sZil9fShsfD0wLGMpLE09MHxmdW5jdGlvbiBLXyhsKXt2YXIgbSx3LE0sYz0wLGY9MCxwPTAsQT0wLGI9MCxrPTA7Zm9yKE09YWUsYWU9YWUrMTZ8MCxtPTB8ZnVuY3Rpb24gX1AobCxjKXtsfD0wLGN8PTA7dmFyIGssZj0wLHA9MCxtPTAs''@;'; + put 'put ''QT0wLHc9MCxiPTAsTT0wLEQ9MDtmb3Ioaz1hZSxhZT1hZSsxNDR8MCxiPWsrOHwwLHc9ayxmPWsrMTZ8MCxhWzQ2OTM0XT0xKyhBPTB8YVs0NjkzNF0pLGFbdz4+Ml09QSxvbyhmLDk2MzEyLHcpLGgwKHc9MHxkcyhsLGYsMSksMTM3NDgzLDI4MCwxKSxhWzQ2OTM0XT0xKyhBPTB8YVs0Njkz''@;'; + put 'put ''NF0pLGFbYj4+Ml09QSxvbyhmLDk2MzEyLGIpLGZlW2I+PjBdPTB8ZmVbKEE9bCsyNHwwKT4+MF0sZmVbYisxPj4wXT0wfGZlW0ErMT4+MF0sZmVbYisyPj4wXT0wfGZlW0ErMj4+MF0sZmVbYiszPj4wXT0wfGZlW0ErMz4+MF0sYj0wfG9jKGYsYiwwKSxmPTB8RHQobCk7ZjspV24odyxmLDEp''@;'; + put 'put ''LGgwKEE9MHxHcihiLDB8dGkoZiksMSksMTM3NDQ3LDMwNCwxKSxhWzE2KygwfGFbMTEyKygwfGFbZisxNj4+Ml0pPj4yXSk+PjJdPUEsZj0wfHp0KGwsZik7Zm9yKHA9MHxEdChsKTtwOyl7Zm9yKEE9MTYrKG09MHxhWzE2KygwfGFbMTEyKygwfGFbcCsxNj4+Ml0pPj4yXSk+PjJdKXwwLGY9''@;'; + put 'put ''MHx3MChsLHApO2Y7KVZkKHcsZiwxKSxoMChEPTB8S2EoYixtLE09MHxhWzE2KygwfGFbMTEyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPj4yXSwwLDEpLDEzNzQ2MCwxNzYsMSksYVsxMTYrKDB8YVtEKzE2Pj4yXSk+PjJdPWYs''@;'; + put 'put ''YVsoRD0yMzYrKDB8YVtBPj4yXSl8MCk+PjJdPTErKDB8YVtEPj4yXSksYVsoTT0yMzYrKDB8YVtNKzE2Pj4yXSl8MCk+PjJdPTErKDB8YVtNPj4yXSksZj0wfFMwKGwsZik7cD0wfHp0KGwscCl9cmV0dXJuIGFbYz4+Ml09YixhZT1rLDB8d30obHw9MCxBPU0pLGI9MHxHbyhBPTB8YVtBPj4y''@;'; + put 'put ''XSksdz0wfGZ1bmN0aW9uIENQKGwpe2x8PTA7dmFyIGYsYz0wO2ZvcihmPTB8ZnVuY3Rpb24ga1AoKXtyZXR1cm4gMHxpcygxODI0MCwwfGFbNDU4MV0pfSgpLGM9MHxEdChsKTtjOylNNShmLGMpLGM9MHx6dChsLGMpO3JldHVybiAwfGZ9KEEpLGI9YistM3wwLHA9MDshKCgwfHApPj0oMHxi''@;'; + put 'put ''KSk7KXtmb3IoZj0wfFNzKEEsaz0wfFNQKHcpKTtmOykoMHxrKT09KDB8KGw9MHxhWygyPT0oMHwoYz0zJmFbZj4+Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSkpJiYobD0wfGFbKDM9PSgwfGMpP2Y6Zis0OHwwKSs0MD4+Ml0pLHF4KHcsbCksZj0wfEhzKEEsZixrKTtmb3IoUzUoQSxrLG0pLGY9''@;'; + put 'put ''MHxTcyhBLGspO2Y7KSgwfGspPT0oMHwobD0wfGFbKDI9PSgwfChjPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdKSkmJihsPTB8YVsoMz09KDB8Yyk/ZjpmKzQ4fDApKzQwPj4yXSksYVsoYz0yMzYrKDB8YVtsKzE2Pj4yXSl8MCk+PjJdPSgwfGFbYz4+Ml0pLTEsTTUodyxsKSxmPTB8''@;'; + put 'put ''SHMoQSxmLGspO29pKEEsaykscD1wKzF8MH1yZXR1cm4gQzEoQSksZnVuY3Rpb24gSGQobCl7TmwobHw9MCl9KHcpLGFlPU0sMHxtfShEKSxsPTB8ZnVuY3Rpb24gazUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7aWYoMSE9KDB8R28obHw9MCkpKXtmb3IoZj0wfER0KGwpO2Y7KXtmb3Io''@;'; + put 'put ''Yz0wLHA9MHxTcyhsLGYpO3A7KWM9YysxfDAscD0wfEhzKGwscCxmKTsxPT0oMHxjKSYmTW8oZixmLDAsMCksZj0wfHp0KGwsZil9Zm9yKGM9MCxtPTAsZj0wfER0KGwpO2Y7KWM9KHA9KDB8KEE9KDB8YVszMisoQT0wfGFbMTEyKygwfGFbZisxNj4+Ml0pPj4yXSk+PjJdKSsoMHxhW0ErMTYr''@;'; + put 'put ''MTI+PjJdKXwwKSk+KDB8YykpP0E6YyxtPXA/ZjptLGY9MHx6dChsLGYpO2ZvcihjPTB8V20oKSxmPTE2KygwfGFbMTEyKygwfGFbKHA9bSsxNnwwKT4+Ml0pPj4yXSkrNHwwOygwfChmPTB8YVtmPj4yXSkpIT0oMHxtKTspSGgoYywwLGYpLGFbKEE9NCsoZj0wfGFbMTEyKygwfGFbZisxNj4+''@;'; + put 'put ''Ml0pPj4yXSl8MCk+PjJdPTE2fGFbQT4+Ml0sZj1mKzE2fDA7aWYoSGgoYywwLG0pLGFbKGw9NCsoQT0wfGFbMTEyKygwfGFbcD4+Ml0pPj4yXSl8MCk+PjJdPTE2fGFbbD4+Ml0sMHxhW0ErMzI+PjJdKXtmb3IobD0wfFdtKCksZj0yNCsoMHxhWzExMisoMHxhW3A+PjJdKT4+Ml0pfDA7KDB8''@;'; + put 'put ''KGY9MHxhW2Y+PjJdKSkhPSgwfG0pOylIaChsLDAsZiksYVsoQT00KyhmPTB8YVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdKXwwKT4+Ml09MTZ8YVtBPj4yXSxmPWYrMTZ8MDshZnVuY3Rpb24gWF8obCxjKXsoZnVuY3Rpb24gUDMobCxjKXtsfD0wO3ZhciBmPTAscD0wLG09MDswfChmPTB8YVso''@;'; + put 'put ''Y3w9MCk+PjJdKSYmKGFbNCsobT0wfGFbKHA9bCs0fDApPj4yXSk+PjJdPWYsYVtmKzg+PjJdPW0sYVtwPj4yXT1hW2MrND4+Ml0sYVsoZj1sKzh8MCk+PjJdPSgwfGFbZj4+Ml0pKygwfGFbYys4Pj4yXSkpfSkobHw9MCwwfGZ1bmN0aW9uIEpfKGwpe3ZhciBmLGM9MCxwPTAsbT0wLEE9MDtm''@;'; + put 'put ''b3IoZj1jPTB8YVsobHw9MCk+PjJdO2M7KXA9MHxhWyhBPWMrNHwwKT4+Ml0sYVtBPj4yXT1hWyhtPWMrOHwwKT4+Ml0sYVttPj4yXT1wLGM9cDtyZXR1cm4gQT0wfGFbKG09bCs0fDApPj4yXSxhW20+PjJdPWYsYVtsPj4yXT1BLDB8bH0oY3w9MCkpLEZ0KGMpfShjLGwpfX1lbHNlIEhoKGM9''@;'; + put 'put ''MHxXbSgpLDAsQT0wfER0KGwpKSxhWyhBPTQrKDB8YVsxMTIrKDB8YVtBKzE2Pj4yXSk+PjJdKXwwKT4+Ml09MTZ8YVtBPj4yXTtyZXR1cm4gMHxjfSgwfGZ1bmN0aW9uICRfKGwpe2x8PTA7dmFyIG0sYz0wLGY9MCxwPTA7Zm9yKG09YWUsYWU9YWUrMTQ0fDAsYz1tLHA9bSs4fDAsYVs0Njkz''@;'; + put 'put ''M109MSsoZj0wfGFbNDY5MzNdKSxhW2M+PjJdPWYsb28ocCw5NjMwMyxjKSxoMChwPTB8ZHMobCxwLDEpLDEzNzQ4MywyODAsMSksYz0wfER0KGwpO2M7KVduKHAsYywxKSxhWzE2KygwfGFbMTEyKygwfGFbKGY9YysxNnwwKT4+Ml0pPj4yXSkrMTI+PjJdPTAsYVszMisoMHxhWzExMisoMHxh''@;'; + put 'put ''W2Y+PjJdKT4+Ml0pPj4yXT0wLGFbKGY9NCsoMHxhWzExMisoMHxhW2Y+PjJdKT4+Ml0pfDApPj4yXT0tMiZhW2Y+PjJdLGM9MHx6dChsLGMpO2ZvcihjPTB8RHQobCk7YzspMSZhWzQrKGY9MHxhWzExMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4yXXx8KGFbZisxNj4+Ml09MCwkeChsLGMscCkp''@;'; + put 'put ''LGM9MHx6dChsLGMpO3JldHVybiBhZT1tLDB8cH0oTSkpLGZ1bmN0aW9uIHdQKGwsYyl7Y3w9MDt2YXIgZj0wO2ZvcihmPTB8RHQobHw9MCk7ZjspMTYmYVs0KygwfGFbMTEyKygwfGFbZisxNj4+Ml0pPj4yXSk+PjJdfHx3RyhsLGYsYyksZj0wfHp0KGwsZil9KEQsbCksRD0wfGZ1bmN0aW9u''@;'; + put 'put ''IHJjKGwsYyl7dmFyIG0sQSxmPTAscD0wO0E9YWUsYWU9YWUrMTZ8MCxtPUEsZj0wfHFfKGx8PTAsY3w9MCksYVttPj4yXT1mO2U6ZG97aWYoZilmb3IocD0wOzspe2lmKCgwfHApPj0xMClicmVhayBlO2lmKGw9MHxLeChsLGMsbSksKDB8Zik9PSgwfChmPTB8YVttPj4yXSkpfDA9PSgwfGYp''@;'; + put 'put ''KWJyZWFrO3A9cCsxfDB9fXdoaWxlKDApO3JldHVybiBhZT1BLDB8bH0obCxEKSxsPTB8RDYoRCksYj0rZnVuY3Rpb24gYlAobCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wO2ZvcihjPTA7bD0wfGFbbD4+Ml07KWM9KHA9K19bNDArKG09MHxhWzE2KygwfGFbYVsxMTIrKDB8YVsxNisoMHxh''@;'; + put 'put ''W2w+PjJdKT4+Ml0pPj4yXT4+Ml0pPj4yXSk+PjNdKT4oZj0oZj0rX1ttKzMyPj4zXSk+Yz9mOmMpP3A6ZixsPWwrNHwwO3JldHVybitjfShEKSx3PS4xNTkxNTQ5NDMwOTE4OTUzNSoobT0rKDB8bCkpKihiK2YpLEE9KGs9MT09KDB8bCkpPzA6dyxsPUQ7bD0wfGFbbD4+Ml07KXtpZig4JmFb''@;'; + put 'put ''NCsoMHxhWzExMisoMHxhWzE2KygwfGFbbD4+Ml0pPj4yXSk+PjJdKT4+Ml18MCl7cD00O2JyZWFrfWw9bCs0fDB9Zm9yKDQ9PSgwfHApJiZmdW5jdGlvbiBReChsLGMpe3ZhciBmLHA9MCxtPTA7KDB8KGY9MHxhWyhsfD0wKT4+Ml0pKSE9KDB8KGN8PTApKSYmKHA9MHxhWyhtPWMrOHwwKT4+''@;'; + put 'put ''Ml0sYVtsPj4yXT1jLGFbbT4+Ml09MCxhWzQrKGw9MHxhWyhjPWwrNHwwKT4+Ml0pPj4yXT1mLGFbZis4Pj4yXT1sLGFbYz4+Ml09cCxhW3ArND4+Ml09MCl9KEQsbCksZj0xL20scD0wLGw9RDtsPTB8YVtsPj4yXTspYVsxNisoMHxhWzExMisoMHxhWyhSPTE2KygwfGFbbD4+Ml0pfDApPj4y''@;'; + put 'put ''XSk+PjJdKT4+Ml09cCxfWzI0KygwfGFbMTEyKygwfGFbUj4+Ml0pPj4yXSk+PjNdPTAsRz0raGEoKyhtPTYuMjgzMTg1MzA3MTc5NTg2KmYqKygwfHApKSkqQSxfWyhSPTB8YVsxMzIrKDB8YVtSPj4yXSk+PjJdKT4+M109RyxfW1IrOD4+M109K0RhKCttKSpBLHA9cCsxfDAsbD1sKzR8MDty''@;'; + put 'put ''ZXR1cm4gX1tjKzE2Pj4zXT1HPWs/LjUqYjp3LF9bYysyND4+M109RyxfW2MrNDg+PjNdPS0xLEMxKE0pLDB8RH0obCxjLGYpLGFbYyszMj4+Ml09cCxsPTB8RDYocCksZj0oMHxtKT4wPytmdW5jdGlvbiBBUChsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG09K207dmFyIEcsSyxwZSxnZSxi''@;'; + put 'put ''ZSxMZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsT2U9MDtmb3IoTGU9YWUsYWU9YWUrNDh8MCxiZT1MZSxPZT0wfHZyKDU2KihsfD0wKXwwKSxhW2JlKzQwPj4yXT1hW3ArMzY+PjJdLF9bKEs9YmUrOHwwKT4+M109Yj0rX1soRz1wKzE2fDApPj4zXSxfW2JlPj4zXT1iLGFbYmUrNDQ+''@;'; + put 'put ''PjJdPWFbcD4+Ml0sX1tiZSsxNj4+M109Yj02LjI4MzE4NTMwNzE3OTU4Ni8rKDB8YyksX1socGU9YmUrMjR8MCk+PjNdPS0xLF9bKGdlPWJlKzMyfDApPj4zXT0tMSxrPTAsUj0wLEE9MDt3PTB8YVtmPj4yXTspOCZhWzQrKDB8YVsxMTIrKDB8YVsxNisoZj0wfGFbdz4+Ml0pPj4yXSk+PjJd''@;'; + put 'put ''KT4+Ml0/KGFbKEQ9T2UrKDU2KlJ8MCl8MCk+PjJdPWYsX1tPZSsoNTYqUnwwKSs4Pj4zXT1iKisoMHxrKSxmPVIrMXwwLEE9K3lQKEQsYmUsbSkpOmY9UixrPWsrMXwwLFI9ZixmPXcrNHwwO2U6ZG97c3dpdGNoKDB8Uil7Y2FzZSAxOl9bT2UrNDA+PjNdPTEsZj0wO2JyZWFrO2Nhc2UgMjpR''@;'; + put 'put ''XyhPZSxPZSs1NnwwLChiPStfW09lKzY0Pj4zXS0rX1tPZSs4Pj4zXSk+My4xNDE1OTI2NTM1ODk3OTM/Ni4yODMxODUzMDcxNzk1ODYtYjpiKSxmPTA7YnJlYWs7ZGVmYXVsdDpmb3IoRD1PZSs4fDAsTT1PZSxmPTA7Oyl7aWYoKDB8Zik+PSgwfFIpKXtmPTA7YnJlYWsgZX0oMHwoZj1mKzF8''@;'; + put 'put ''MCkpPT0oMHxSKT8odz1PZSxiPStfW0Q+PjNdKzYuMjgzMTg1MzA3MTc5NTg2LStfW00rOD4+M10saz1NKzU2fDApOih3PWs9TSs1NnwwLGI9K19bTSs2ND4+M10tK19bTSs4Pj4zXSksUV8oTSx3LGIpLE09a319fXdoaWxlKDApO2Zvcig7ISgoMHxmKT49KDB8UikpOylXeChPZSsoNTYqZnww''@;'; + put 'put ''KXwwLGJlLGMsbSksZj1mKzF8MDtyZXR1cm4gRnQoT2UpLDE9PSgwfGwpPyhuYyhwLC0obT1BKy41Km0pLDAsMCksX1tHPj4zXT0rX1tHPj4zXSttLGFbKE9lPXArNTZ8MCk+PjJdPTF8YVtPZT4+Ml0pOl9bRz4+M109K19bSz4+M10sYWU9TGUsKyguNSooK19bZ2U+PjNdKyArX1twZT4+M10p''@;'; + put 'put ''LTMuMTQxNTkyNjUzNTg5NzkzKX0obSxsLHAsYyxmKTozLjE0MTU5MjY1MzU4OTc5MywxPT0oMHxsKSYmMHwoQT0wfGFbYz4+Ml0pJiYwfGFbOCsoMHxhWzExMisoMHxhW0ErMTY+PjJdKT4+Ml0pPj4yXSYmKF9bKHc9Yys0OHwwKT4+M109ZixmPDApJiYoX1t3Pj4zXT1mKzYuMjgzMTg1MzA3''@;'; + put 'put ''MTc5NTg2KX1mdW5jdGlvbiB5UChsLGMsZil7bHw9MCxmPStmO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtmb3Iodz0wLG09MCxBPTAscD00MCsoY3w9MCl8MDtiPTB8YVtwPj4yXTspKDB8KHA9KHA9MHxhW2I+PjJdKT8wfGFbOCsoMHxhWzExMisoMHxhW3ArMTY+PjJdKT4+Ml0pPj4y''@;'; + put 'put ''XTowKSk9PSgwfGFbbD4+Ml0pPyhwPXcrMXwwLG09bStmKzIqKGs9K19bYisxNj4+M10pLEE9QTxrP2s6QSk6cD13LHc9cCxwPWIrNHwwO3JldHVybiBfW2wrMzI+PjNdPW0sYVtsKzQ4Pj4yXT13LF9bbCsxNj4+M109QStmKyArX1tjPj4zXSxfW2wrMjQ+PjNdPUEsK0F9ZnVuY3Rpb24gUV8o''@;'; + put 'put ''bCxjLGYpe3ZhciBwLG07KGY9KGY9KChwPStfWzE2KyhsfD0wKT4+M10pKitfWzMyKyhjfD0wKT4+M10rKG09K19bYysxNj4+M10pKitfW2wrMzI+PjNdKS8oMiooZj0rZikqbSpwKSk8MT8xOmYpPitfWyhsPWwrNDB8MCk+PjNdJiYoX1tsPj4zXT1mKSxmPitfWyhsPWMrNDB8MCk+PjNdJiYo''@;'; + put 'put ''X1tsPj4zXT1mKX1mdW5jdGlvbiBXeChsLGMsZixwKXtwPStwO3ZhciBwZSxnZSxiZSxPZSxMZSxIZSxWZSxxZSxudCxXZSxvdCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAsUmU9MCxTdD0wLGt0PTAsbHQ9MDtmb3Ioaz0rX1soV2U9MjQrKGN8PTApfDApPj4zXSxi''@;'; + put 'put ''PStfWyhvdD1jKzMyfDApPj4zXSxtPStfWzE2KyhsfD0wKT4+M10qK19bbCs0MD4+M10sKFZlPTE9PSgwfChmfD0wKSkpPyhtPTYuMjgzMTg1MzA3MTc5NTg2KihBPW0+KEE9LjE1OTE1NDk0MzA5MTg5NTM1KihSZT0rX1tsKzMyPj4zXSkpP206QSktUmUpPjA/KHA9bS8rKDB8YVtsKzQ4Pj4y''@;'; + put 'put ''XSkrcCxNPTAsbT1BKTooTT0wLG09QSk6TT0rX1tsKzg+PjNdLStfW2wrMzI+PjNdLygyKm0pLGdlPShwZT0rX1tsKzI0Pj4zXSttKT4ocWU9K19bKG50PWMrOHwwKT4+M10pLE9lPSgxKygwfGFbKGJlPWwrNDh8MCk+PjJdKXwwKS8yfDAsTGU9MS9tLFJlPXAvbSouNSxIZT1sKzh8MCxSPWMr''@;'; + put 'put ''NDB8MCxHPTAsSz0wLEE9TTtSPTB8YVtSPj4yXTspe2lmKCgwfCh3PSh3PTB8YVtSPj4yXSk/MHxhWzgrKDB8YVsxMTIrKDB8YVt3KzE2Pj4yXSk+PjJdKT4+Ml06MCkpPT0oMHxhW2w+PjJdKSYmKDB8RDYoMHxhW1IrMzI+PjJdKSk+PTEpe0Q9KE09K19bUisxNj4+M10pKkxlO2Rve2lmKCFW''@;'; + put 'put ''ZSl7aWYoMT09KDB8YVtiZT4+Ml0pKXtBPStfW0hlPj4zXTticmVha31BPUErUmUrRDticmVha30wIT1BJiYoQT0yPT0oMHxhW2JlPj4yXSk/My4xNDE1OTI2NTM1ODk3OTM6RCtBKSxiPUEsaz1rPDA/QTprfXdoaWxlKDApO25jKFIsbHQ9K2hhKCtBKSptLGt0PStEYSgrQSkqbSwrWXgoUixs''@;'; + put 'put ''dCxrdCxBKSksQT0oVmU/KE0rcCkqTGU6RCtSZSkrQSx3PUc9RysxfDAsTT0oMHxHKT09KDB8T2UpP0E6S31lbHNlIHc9RyxNPUs7Uj1SKzR8MCxHPXcsSz1NfW09Z2U/cGU6cWUsKDB8Zik+MSYmKDB8KFN0PTB8YVtsPj4yXSkpPT0oMHxhW2MrNDQ+PjJdKSYmKF9bMjQrKDB8YVsxMTIrKDB8''@;'; + put 'put ''YVtTdCsxNj4+Ml0pPj4yXSk+PjNdPUspLF9bbnQ+PjNdPW0sX1tXZT4+M109ayxfW290Pj4zXT1ifWZ1bmN0aW9uIG5jKGwsYyxmLHApe2M9K2MsZj0rZjt2YXIgRCxSLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEc9MCxLPTA7Zm9yKFI9MCE9KHA9K3ApLG09MHxEdChEPTB8YVs4KyhsfD0w''@;'; + put 'put ''KT4+Ml0pO207KXc9K19bKGs9MHxhWzEzMisoMHxhW20rMTY+PjJdKT4+Ml0pPj4zXSxBPStfWyhNPWsrOHwwKT4+M10sUj8oYj0oRz0raGEoK3ApKSp3LShLPStEYSgrcCkpKkEsQT1LKncrRypBKTpiPXcsX1trPj4zXT1iK2MsX1tNPj4zXT1BK2YsbT0wfHp0KEQsbSk7Zm9yKG09bCszNnww''@;'; + put 'put ''O209MHxhW20+PjJdOyluYyhtLGMsZixwKSxtPW0rNHwwfWZ1bmN0aW9uIFl4KGwsYyxmLHApe2M9K2MsZj0rZixwPStwO3ZhciBELG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MCxHPTA7RD0wfGFbOCsobHw9MCk+PjJdLG09K19bbCs0OD4+M107ZG97aWYobT49MCltPShtPTMuMTQxNTky''@;'; + put 'put ''NjUzNTg5NzkzLW0rcCk8MD9tKzYuMjgzMTg1MzA3MTc5NTg2Om07ZWxzZXtpZigyPT0oMHxENigwfGFbbCszMj4+Ml0pKSl7bT1wKy0xLjU3MDc5NjMyNjc5NDg5NjY7YnJlYWt9Zm9yKG09KGs9K19bOCsodz0wfGFbMTMyKygwfGFbKFI9MTYrKE09MHxhW2w+PjJdKXwwKT4+Ml0pPj4yXSk+''@;'; + put 'put ''PjNdK2YpKmsrKG09K19bdz4+M10rYykqbSx3PTB8RHQoRCksQT1NO3c7KSgwfHcpIT0oMHxNKSYmKGI9KGs9K19bOCsoRz0wfGFbMTMyKygwfGFbdysxNj4+Ml0pPj4yXSk+PjNdK2YpKmsrKGI9K19bRz4+M10rYykqYik8bSYmKG09YixBPXcpLHc9MHx6dChELHcpO2lmKCgwfE0pIT0oMHxB''@;'; + put 'put ''KSl7aWYoKG09K19bKHc9MHxhWzEzMisoQT0wfGFbUj4+Ml0pPj4yXSk+PjNdKT4tKGs9K19bbCsxNj4+M10tKGI9K19bbCsyND4+M10pKSYmMCE9KDEmYVtsKzU2Pj4yXXwwKSl7Zj0rRDAoKyhmKmYrYypjKSksYz0rVWwoKyArX1t3Kzg+PjNdLCsobStrKSksbT0raGEoK2MpLG09cCsxLjU3''@;'; + put 'put ''MDc5NjMyNjc5NDg5NjYtYy0rWHAoKyhrLWIvbSkvZiptKTticmVha31tPShtPXArMy4xNDE1OTI2NTM1ODk3OTMtKG09K1VsKCsgK19bdys4Pj4zXSwrbSkpLStfWzI0KygwfGFbQSsxMTI+PjJdKT4+M10pPjYuMjgzMTg1MzA3MTc5NTg2P20rLTYuMjgzMTg1MzA3MTc5NTg2Om07YnJlYWt9''@;'; + put 'put ''bT0wfX13aGlsZSgwKTtyZXR1cm4rbX1mdW5jdGlvbiBXbSgpe3JldHVybiAwfHZyKDEyKX1mdW5jdGlvbiBZbShsKXt2YXIgYz0wLGY9MDtpZigwfChsfD0wKSl7Zm9yKGM9MHxhW2w+PjJdO2M7KWY9MHxhW2MrND4+Ml0sRnQoYyksYz1mO0Z0KGwpfX1mdW5jdGlvbiBIaChsLGMsZil7bHw9''@;'; + put 'put ''MCxjfD0wO3ZhciBtLHA9MDttPTB8ZnVuY3Rpb24gVXgobCl7bHw9MDt2YXIgYztyZXR1cm4gYz0wfHZyKDEyKSxhW2M+PjJdPWwsMHxjfShmfD0wKSxhWyhmPWwrOHwwKT4+Ml09MSsoMHxhW2Y+PjJdKSwwPT0oMHxjKXwoMHwocD0wfGFbKGY9bCs0fDApPj4yXSkpPT0oMHxjKT8oYVsoMHxw''@;'; + put 'put ''P3ArNHwwOmwpPj4yXT1tLGFbbSs4Pj4yXT1wLHA9MCk6KGY9MHxhWyhwPWMrNHwwKT4+Ml0sYVtwPj4yXT1tLGFbbSs4Pj4yXT1jLHA9ZixmPWYrOHwwKSxhW2Y+PjJdPW0sYVttKzQ+PjJdPXB9ZnVuY3Rpb24gSngobCl7bHw9MDt2YXIgZixwLGM9MDtmb3IocD00KyhmPTB8V20oKSl8MCxj''@;'; + put 'put ''PTA7bD0wfGFbbD4+Ml07KUhoKGYsYywwfGFbbD4+Ml0pLGM9MHxhW3A+PjJdLGw9bCs0fDA7cmV0dXJuIDB8Zn1mdW5jdGlvbiBYeChsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgQSx3LGIsbT0wLGs9MCxNPTA7Zm9yKG09bHw9MDs7KXtpZighKGs9MHxhW20+PjJdKSl7TT02O2JyZWFr''@;'; + put 'put ''fWlmKCgwfGFbaz4+Ml0pPT0oMHxjKSlicmVhazttPWsrNHwwfWZvcig2PT0oMHxNKSYmUHIoOTYyNzAsOTYyNzcsMjE3LDk2Mjg4KSxhWygwfChtPTB8YVsoYj1rKzh8MCk+PjJdKT9tKzR8MDpsKT4+Ml09Yz0wfGFbKEE9ays0fDApPj4yXSx3PWwrNHwwLGFbKDB8Yz9jKzh8MDp3KT4+Ml09''@;'; + put 'put ''bSxjPTAsbT1sO209MHxhW20+PjJdOyl7aWYoKDB8YVttPj4yXSk9PSgwfGYpKXtNPTk7YnJlYWt9Yz1tLG09bSs0fDB9aWYoOT09KDB8TSkpe2Rve2lmKHApe2lmKCgwfG0pPT0oMHxhW3c+PjJdKSl7YVt3Pj4yXT1rLGFbQT4+Ml09MCxhW2I+PjJdPW0sbT1tKzR8MDticmVha31hW2I+PjJd''@;'; + put 'put ''PW0sYVtBPj4yXT1hWyhtPW0rNHwwKT4+Ml0sYVs4KygwfGFbbT4+Ml0pPj4yXT1rO2JyZWFrfWlmKCgwfG0pPT0oMHxhW2w+PjJdKSl7YVtsPj4yXT1rLGFbQT4+Ml09bSxhW2I+PjJdPTAsbT1tKzh8MDticmVha31hW2MrND4+Ml09ayxhW2I+PjJdPWMsYVtBPj4yXT1tLG09bSs4fDA7YnJl''@;'; + put 'put ''YWt9d2hpbGUoMCk7YVttPj4yXT1rfX1mdW5jdGlvbiBENihsKXtyZXR1cm4gMHxhWzgrKGx8PTApPj4yXX1mdW5jdGlvbiBxXyhsLGMpe2x8PTAsY3w9MDt2YXIgTSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wO2ZvcihNPTB8ZnVuY3Rpb24gRTUoKXtyZXR1cm4gMHxpcygxODI3''@;'; + put 'put ''NiwwfGFbNDU4MV0pfSgpLHA9MHxEdChjKTtwOyl7Zm9yKGY9MHx3MChjLHApO2Y7KWFbYVsxMjArKDB8YVtmKzE2Pj4yXSk+PjJdPj4yXT0wLGY9MHxTMChjLGYpO3A9MHx6dChjLHApfWZvcihrPTEsZj0wO3c9MHxhW2w+PjJdOyl7Zm9yKEE9MHxTcyhjLGI9MHxhW3c+PjJdKTtBOyl7aWYo''@;'; + put 'put ''KDB8YVthWzEyMCsoMHxhWyhtPUErMTZ8MCk+PjJdKT4+Ml0+PjJdKT4wKXtmb3IobD0wfG1pWzYzJmFbTT4+Ml1dKE0sMCwxMjgpO2w7KSgwfGFbYVsxMjArKDB8YVsxNisocD0wfGFbbCs4Pj4yXSk+PjJdKT4+Ml0+PjJdKT4oMHxhW2FbMTIwKygwfGFbbT4+Ml0pPj4yXT4+Ml0pJiYoMHxh''@;'; + put 'put ''WygyPT0oMHwoRD0zJmFbcD4+Ml0pKT9wOnArLTQ4fDApKzQwPj4yXSkhPSgwfGIpJiYoZj1mKygoMHxhWygzPT0oMHxEKT9wOnArNDh8MCkrNDA+PjJdKSE9KDB8YikmMSl8MCksbD0wfG1pWzYzJmFbTT4+Ml1dKE0sbCw4KTtuVChNLEEpfUE9MHxIcyhjLEEsYil9Zm9yKHA9MHxTcyhjLGIp''@;'; + put 'put ''O3A7KTB8YVsobD0wfGFbMTIwKygwfGFbcCsxNj4+Ml0pPj4yXSk+PjJdfHwoYVtsPj4yXT1rLHg1KE0scCkpLHA9MHxIcyhjLHAsYik7bD13KzR8MCxrPWsrMXwwfXJldHVybiBmdW5jdGlvbiBNUChsKXtObChsfD0wKX0oTSksMHxmfWZ1bmN0aW9uIEt4KGwsYyxmKXtsfD0wO3ZhciBwPTAs''@;'; + put 'put ''bT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7cD0wfGFbKGZ8PTApPj4yXSxNPTB8RHQoY3w9MCk7ZTpmb3IoO007KXtmb3Ioaz0wfFNzKGMsTSk7azspe2ZvcigoMHwobT0wfGFbKDM9PSgwfChBPTMmYVtrPj4yXSkpP2s6ays0OHwwKSs0MD4+Ml0pKT09KDB8TSkmJihtPTB8YVsoMj09KDB8QSk/''@;'; + put 'put ''azprKy00OHwwKSs0MD4+Ml0pLGI9MDshKCgwfGIpPj0yKTspe2lmKHc9MHxKeChsKSxYeChsLE0sbSxiKSwoMHwoQT0wfHFfKGwsYykpKTwoMHxwKSl7aWYoWW0odyksIUEpe3A9MDticmVhayBlfXA9QX1lbHNlIFltKGwpLGw9dztiPWIrMXwwfWs9MHxIcyhjLGssTSl9TT0wfHp0KGMsTSl9''@;'; + put 'put ''cmV0dXJuIGFbZj4+Ml09cCwwfGx9ZnVuY3Rpb24gd0cobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciB3LHA9MCxtPTAsQT0wO2Zvcih3PTB8V20oKSxwPTB8dzAobCxjKTtwOyltPXArLTQ4fDAsSGgodywwLDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOm0pKzQwPj4yXSksYVsobT00KygwfGFb''@;'; + put 'put ''MTEyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOm0pKzQwPj4yXSk+PjJdKT4+Ml0pfDApPj4yXT0zMnxhW20+PjJdLHA9MHxTMChsLHApO2ZvcihwPTB8TWYobCxjKTtwOyltPXArNDh8MCxIaCh3LDAsMHxhWygzPT0oMyZhW3A+PjJdfDApP3A6bSkrNDA+PjJdKSxhWyhtPTQr''@;'; + put 'put ''KDB8YVsxMTIrKDB8YVsxNisoMHxhWygzPT0oMyZhW3A+PjJdfDApP3A6bSkrNDA+PjJdKT4+Ml0pPj4yXSl8MCk+PjJdPTMyfGFbbT4+Ml0scD0wfEgzKGwscCk7ZTpkb3tpZigoMHxENih3KSk+MSl7Zm9yKG09Zis0fDAsbD1mOzspe2lmKCEocD0wfGFbbD4+Ml0pKXtBPTEzO2JyZWFrIGV9''@;'; + put 'put ''aWYobD1wKzR8MCwzMiZhWzQrKDB8YVsxMTIrKDB8YVsxNisoMHxhW3A+PjJdKT4+Ml0pPj4yXSk+PjJdJiYzMiZhWzQrKDB8YVsxMTIrKDB8YVsxNisoMHxhW2FbKCgwfHApPT0oMHxhW20+PjJdKT9mOmwpPj4yXT4+Ml0pPj4yXSk+PjJdKT4+Ml18MClicmVha31IaChmLHAsYyl9ZWxzZSBB''@;'; + put 'put ''PTEzfXdoaWxlKDApO2U6ZG97aWYoMTM9PSgwfEEpKXt0OmRve2lmKCgwfEQ2KHcpKT4wKXtmb3IocD1mOzspe2lmKCEocD0wfGFbcD4+Ml0pKWJyZWFrIHQ7aWYoMzImYVs0KygwfGFbMTEyKygwfGFbMTYrKDB8YVtwPj4yXSk+PjJdKT4+Ml0pPj4yXXwwKWJyZWFrO3A9cCs0fDB9SGgoZixw''@;'; + put 'put ''LGMpO2JyZWFrIGV9fXdoaWxlKDApO0hoKGYsMCxjKX19d2hpbGUoMCk7Zm9yKHA9dztwPTB8YVtwPj4yXTspYVsoZj00KygwfGFbMTEyKygwfGFbMTYrKDB8YVtwPj4yXSk+PjJdKT4+Ml0pfDApPj4yXT0tMzMmYVtmPj4yXSxwPXArNHwwO1ltKHcpfWZ1bmN0aW9uIE1vKGwsYyxmLHApe2x8''@;'; + put 'put ''PTAsY3w9MCxmfD0wLHB8PTA7Zm9yKHZhciBtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtBPTB8YVsxNisoMHxhWzExMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4yXTspe2lmKHc9ZisxfDAsbT0wfGFbMTIrKGM9MTYrKGs9MHxhWzExMisoMHxhWyhiPUErMTZ8MCk+PjJdKT4+Ml0pfDApPj4yXSl7''@;'; + put 'put ''aWYoKDB8bSk+KDB8Zikpe009MTE7YnJlYWt9bT1jPTB8YVtjKzQ+PjJdLCgwfGMpPT0oMHxwKT9jPWs6KGY9aysyNHwwLDAhPSgwfGFbayszMj4+Ml0pJiYoMHxhW2Y+PjJdKT09KDB8cCl8fChwPWMpLGFbZj4+Ml09bSxhWzMyKyhjPTB8YVsxMTIrKDB8YVtiPj4yXSk+PjJdKT4+Ml09YVtj''@;'; + put 'put ''KzE2KzEyPj4yXSxjPTB8YVsxMTIrKDB8YVtiPj4yXSk+PjJdKSxjPWMrMTZ8MH1hW2MrND4+Ml09bCxhWzE2KygwfGFbMTEyKygwfGFbYj4+Ml0pPj4yXSkrMTI+PjJdPXcsYz1BLGY9d30xMT09KDB8TSkmJigwfGFbayszMj4+Ml0pPD0oMHxmKSYmKGFbaysyND4+Ml09bCxhWzMyKygwfGFb''@;'; + put 'put ''MTEyKygwfGFbYj4+Ml0pPj4yXSk+PjJdPXcpfWZ1bmN0aW9uICR4KGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wO2ZvcihhWyhBPTQrKDB8YVsxMTIrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pfDApPj4yXT0xfGFbQT4+Ml0sQT0wfFNzKGwsYyk7QTspKDB8KHA9MHxhWygyPT0o''@;'; + put 'put ''MHwobT0zJmFbQT4+Ml0pKT9BOkErLTQ4fDApKzQwPj4yXSkpPT0oMHxjKSYmKHA9MHxhWygzPT0oMHxtKT9BOkErNDh8MCkrNDA+PjJdKSwxJmFbNCsoMHxhWzExMisoMHxhWyhtPXArMTZ8MCk+PjJdKT4+Ml0pPj4yXXx8KFZkKGYsQSwxKSxhWzE2KygwfGFbMTEyKygwfGFbbT4+Ml0pPj4y''@;'; + put 'put ''XSk+PjJdPWMsJHgobCxwLGYpKSxBPTB8SHMobCxBLGMpfWZ1bmN0aW9uIFM1KGwsYyxmKXtsfD0wLGZ8PTA7dmFyIEsscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHBlPTA7Zm9yKEs9MHxRbihwZT0oUj0wfGFbMjM2KygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKTw8''@;'; + put 'put ''MikscGU9MHxRbihwZSksYj0wLEQ9MHxTcyhsLGMpLEc9MCxtPTA7RDspe2ZvcigoMHwoQT0wfGFbKDI9PSgwfChwPTMmYVtEPj4yXSkpP0Q6RCstNDh8MCkrNDA+PjJdKSk9PSgwfGMpJiYoQT0wfGFbKDM9PSgwfHApP0Q6RCs0OHwwKSs0MD4+Ml0pLHc9MCxNPTB8U3MobCxjKSxrPWI7TTsp''@;'; + put 'put ''KDB8TSkhPSgwfEQpPygoMHwocD0wfGFbKDI9PSgwfChiPTMmYVtNPj4yXSkpP006TSstNDh8MCkrNDA+PjJdKSk9PSgwfGMpJiYocD0wfGFbKDM9PSgwfGIpP006TSs0OHwwKSs0MD4+Ml0pLChiPTB8S2EobCxBLHAsMCwwKSk/QT4+PjA8cD4+PjA/KHA9aysxfDAsKGI9MHxhWzExNisoMHxh''@;'; + put 'put ''Wyh3PWIrMTZ8MCk+PjJdKT4+Ml0pJiYob2koZixiKSxhWzExNisoMHxhW3c+PjJdKT4+Ml09MCksdz0xKToodz0xLHA9ayk6cD1rKTpwPWssTT0wfEhzKGwsTSxjKSxrPXA7dz8oYVtLKyhtPDwyKT4+Ml09QSxwPUcsbT1tKzF8MCk6KGFbcGUrKEc8PDIpPj4yXT1BLHA9RysxfDApLGI9ayxE''@;'; + put 'put ''PTB8SHMobCxELGMpLEc9cH1wPVIrLTEtYnwwO2U6ZG97aWYoKDB8cCk+MCl7aWYoKDB8cCk8KDB8RykpQT0wO2Vsc2V7aWYoKDB8cCkhPSgwfEcpKWJyZWFrO2ZvcihBPTE2KyhtPTB8YVtLPj4yXSl8MCxwPTA7Oyl7aWYoKDB8cCk+PSgwfEcpKWJyZWFrIGU7aDAoMHxLYShsLG0sUj0wfGFb''@;'; + put 'put ''cGUrKHA8PDIpPj4yXSwwLDEpLDEzNzQ2MCwxNzYsMSksYVsoZj0yMzYrKDB8YVtBPj4yXSl8MCk+PjJdPTErKDB8YVtmPj4yXSksYVsoUj0yMzYrKDB8YVtSKzE2Pj4yXSl8MCk+PjJdPTErKDB8YVtSPj4yXSkscD1wKzF8MH19Zm9yKDs7KXtpZigoMHxBKT49KDB8Rykpe209MjticmVha31p''@;'; + put 'put ''ZigoMHwobT0xfEEpKT49KDB8Rykpe209MjticmVha31oMCgwfEthKGwsZj0wfGFbcGUrKEE8PDIpPj4yXSxSPTB8YVtwZSsobTw8Mik+PjJdLDAsMSksMTM3NDYwLDE3NiwxKSxhWyhmPTIzNisoMHxhW2YrMTY+PjJdKXwwKT4+Ml09MSsoMHxhW2Y+PjJdKSxhWyhSPTIzNisoMHxhW1IrMTY+''@;'; + put 'put ''PjJdKXwwKT4+Ml09MSsoMHxhW1I+PjJdKSxBPUErMnwwLHA9cCstMXwwfWZvcig7Oyl7aWYoKDB8cCk8PTApYnJlYWsgZTtoMCgwfEthKGwsUj0wfGFbcGU+PjJdLEc9MHxhW3BlKyhtPDwyKT4+Ml0sMCwxKSwxMzc0NjAsMTc2LDEpLGFbKFI9MjM2KygwfGFbUisxNj4+Ml0pfDApPj4yXT0x''@;'; + put 'put ''KygwfGFbUj4+Ml0pLGFbKEc9MjM2KygwfGFbRysxNj4+Ml0pfDApPj4yXT0xKygwfGFbRz4+Ml0pLG09bSsxfDAscD1wKy0xfDB9fX13aGlsZSgwKTtGdChwZSksRnQoSyl9ZnVuY3Rpb24gTTUobCxjKXt2YXIgZixwLG07bHw9MCxmPWFlLGFlPWFlKzE2fDAsYVsobT1mKSs4Pj4yXT1hWzIz''@;'; + put 'put ''NisoMHxhWyhwPTE2KyhjfD0wKXwwKT4+Ml0pPj4yXSxsPTEyKygwfG1pWzYzJmFbbD4+Ml1dKGwsbSwxKSl8MCxhWzE2NCsoMHxhW3A+PjJdKT4+Ml09YVtsPj4yXSxhW2w+PjJdPWMsYWU9Zn1mdW5jdGlvbiBxeChsLGMpe2x8PTA7dmFyIG0sdyxmPTAscD0wLEE9MDtpZih3PWFlLGFlPWFl''@;'; + put 'put ''KzE2fDAsYVsoQT13KSs4Pj4yXT1hWzIzNisoMHxhWyhtPTE2KyhjfD0wKXwwKT4+Ml0pPj4yXSwoQT0wfG1pWzYzJmFbbD4+Ml1dKGwsQSw0KSl8fFByKDk2MzIyLDk2MzI1LDEwNyw5NjMzNSksKDB8KGY9MHxhWyhwPUErMTJ8MCk+PjJdKSk9PSgwfGMpKWFbcD4+Ml09Yz0wfGFbMTY0Kygw''@;'; + put 'put ''fGFbbT4+Ml0pPj4yXSxjfHxtaVs2MyZhW2w+PjJdXShsLEEsMik7ZWxzZXtkb3twPTAhPSgwfChmPTB8YVsobD0xNjQrKDB8YVtmKzE2Pj4yXSl8MCk+PjJdKSl9d2hpbGUocCYoMHxmKSE9KDB8YykpO3AmJihhW2w+PjJdPWFbMTY0KygwfGFbZisxNj4+Ml0pPj4yXSl9YWU9d31mdW5jdGlv''@;'; + put 'put ''biBTUChsKXt2YXIgZixjPTAscD0wLG09MDtyZXR1cm4oZj0wfG1pWzYzJmFbKGx8PTApPj4yXV0obCwwLDEyOCkpPyhhWyhtPWYrMTJ8MCk+PjJdPXA9MHxhWzE2NCsoMHxhWzE2KyhjPTB8YVttPj4yXSk+PjJdKT4+Ml0scHx8bWlbNjMmYVtsPj4yXV0obCxmLDIpKTpjPTAsMHxjfWZ1bmN0''@;'; + put 'put ''aW9uIHg1KGwsYyl7dmFyIGYscDtsfD0wLGY9YWUsYWU9YWUrMTZ8MCxhWyhwPWYpKzg+PjJdPWN8PTAsbWlbNjMmYVtsPj4yXV0obCxwLDEpLGFlPWZ9ZnVuY3Rpb24gblQobCxjKXt2YXIgZixwO2x8PTAsZj1hZSxhZT1hZSsxNnwwLGFbKHA9ZikrOD4+Ml09Y3w9MCxtaVs2MyZhW2w+PjJd''@;'; + put 'put ''XShsLHAsMiksYWU9Zn1mdW5jdGlvbiBObChsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtkb3tpZigwIT0oMHxsKSYmKDB8YVtsKzI0Pj4yXSk8PTApe2lmKGM9MHxhWyhBPTMyKyh3PTB8YVtsKzQ+PjJdKXwwKT4+Ml0pe2lmKCgwfChjPTB8cTBbMTI3JmNdKGwsMiwwLHcp''@;'; + put 'put ''KSk8MCl7Yz0tMTticmVha319ZWxzZSBjPTA7aWYoMHxhW2wrMjg+PjJdJiZlaChsLDApLG09MD09KDB8Yykpe2lmKG1pWzYzJmFbYVtsKzE2Pj4yXT4+Ml1dKGwsMCw2NCksKDB8cHUobCkpPjApe2M9LTE7YnJlYWt9KDB8YVsxMisoYz0wfGFbKGY9bCs4fDApPj4yXSk+PjJdKT4wPyhxMFsx''@;'; + put 'put ''MjcmYVsocD1sKzEyfDApPj4yXV0obCwwfGFbYys4Pj4yXSwwLHcpLGM9MHxhW2Y+PjJdKTpwPWwrMTJ8MCxxMFsxMjcmYVtwPj4yXV0obCxjLDAsdyl9KGM9MHxhW2wrMjA+PjJdKT9tJjE9PSgwfGMpJiZxMFsxMjcmYVtsKzEyPj4yXV0obCxsLDAsdyk6RnQobCksKGM9MHxhW0E+PjJdKSYm''@;'; + put 'put ''cTBbMTI3JmNdKGwsNiwwLHcpLGM9MH1lbHNlIGM9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBGMyhsKXt2YXIgYz0wLGY9MCxwPTA7Zj0wfGFbKGM9MHxhWyhwPTgrKGx8PTApfDApPj4yXSk+PjJdO2U6ZG97aWYoMTImZilsPTB8YVtjKzQ+PjJdO2Vsc2V7aWYoISgzJmYpKXts''@;'; + put 'put ''PTB8YVsoZj1jKzh8MCk+PjJdLGFbZj4+Ml09MDticmVha31mb3IobD0wfHMwKGwpLGY9KGM9MHxhWzgrKGY9MHxhW3A+PjJdKT4+Ml0pKyhhW2YrMTI+PjJdPDwyKXwwOzspe2lmKGM+Pj4wPj1mPj4+MClicmVhayBlO2FbYz4+Ml09MCxjPWMrNHwwfX19d2hpbGUoMCk7cmV0dXJuIGFbKHA9''@;'; + put 'put ''MHxhW3A+PjJdKT4+Ml09LTQwOTcmYVtwPj4yXSxhW3ArMTY+PjJdPTAsYVtwKzQ+PjJdPTAsMHxsfWZ1bmN0aW9uIHMwKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2lmKDQwOTYmKGM9MHxhWyhsPTB8YVsoQT04KyhsfD0wKXwwKT4+Ml0pPj4yXSkpbD0wfGFbbCs0Pj4yXTtlbHNle2U6''@;'; + put 'put ''ZG97aWYoMyZjKWZvcihwPTB8YVtsKzg+PjJdLG09cCsoYVtsKzEyPj4yXTw8Mil8MCxjPTAsbD0wOzspe2lmKHA+Pj4wPj1tPj4+MClicmVhayBlO2lmKGY9MHxhW3A+PjJdKXtmb3IoYz9hW2M+PjJdPWY6KGM9ZixsPWYpO2Y9MHxhW2M+PjJdOyljPWY7YVtwPj4yXT1jfXA9cCs0fDB9ZWxz''@;'; + put 'put ''ZXtpZigxMTImY3wwKXtsPTB8YVtsKzg+PjJdO2JyZWFrfWlmKGw9MHxhW2wrND4+Ml0pe2Zvcig7Oyl7aWYoIShmPTB8YVsoYz1sKzR8MCk+PjJdKSl7cD1sO2JyZWFrfWFbYz4+Ml09YVtmPj4yXSxhW2Y+PjJdPWwsbD1mfWZvcig7Oyl7aWYoIShjPTB8YVtwPj4yXSkpYnJlYWsgZTtpZihm''@;'; + put 'put ''PTB8YVtjKzQ+PjJdKXtmb3IoO2FbYys0Pj4yXT1hW2Y+PjJdLGFbZj4+Ml09YyxjPTB8YVtmKzQ+PjJdOyltPWYsZj1jLGM9bTthW3A+PjJdPWYscD1mfWVsc2UgcD1jfX1lbHNlIGw9MH19d2hpbGUoMCk7YVs0KyhBPTB8YVtBPj4yXSk+PjJdPWwsYVtBPj4yXT00MDk2fGFbQT4+Ml19cmV0''@;'; + put 'put ''dXJuIDB8bH1mdW5jdGlvbiBpcyhsLGMpe2x8PTAsY3w9MDt2YXIgayxmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtrPWFlLGFlPWFlKzE2fDAsQT1rO2U6ZG97aWYoMCE9KDB8bCkmMCE9KDB8YykmJihtPTB8QjAoNDApLDAhPSgwfG0pKSl7YVttPj4yXT0wLGFbbSsxNj4+Ml09MCxhW20rND4+''@;'; + put 'put ''Ml09MCxKbShtLGwsMCksYj1sKzMyfDAsYVsoZj1tKzIwfDApPj4yXT0wLGFbZis0Pj4yXT0wLGFbZis4Pj4yXT0wLGFbZisxMj4+Ml09MCxhW2YrMTY+PjJdPTAsZj0wfGFbYj4+Ml07ZG97aWYoZilpZihhW0E+PjJdPTAsKDB8KGY9MHxxMFsxMjcmZl0obSwxLEEsbCkpKT49MClpZihmKXtp''@;'; + put 'put ''ZigwfChwPTB8YVtBPj4yXSkpe2lmKGFbYys0Pj4yXSZhW3A+PjJdKXtmPW07YnJlYWt9Zj1tLHc9MTI7YnJlYWt9aWYoMHxhWyhmPWwrMjh8MCk+PjJdKXtpZihGdChtKSwhKHA9MHxxMFsxMjcmYVtmPj4yXV0oMCwwLDQwLGwpKSl7Zj0wO2JyZWFrIGV9YVtwPj4yXT0wLGFbcCsxNj4+Ml09''@;'; + put 'put ''MCxhW3ArND4+Ml09MCxKbShwLGwsMCksYVtwKzIwPj4yXT0xLGFbcCsyND4+Ml09MCxhW3ArMzI+PjJdPTAsYVtwKzI4Pj4yXT0wLGY9cCxtPXAsdz0xMX1lbHNlIGY9bSx3PTEyfWVsc2UgZj1tLHc9MTE7ZWxzZSBmPW0sdz0xMjtlbHNlIGY9bSx3PTExfXdoaWxlKDApO2lmKDExPT0oMHx3''@;'; + put 'put ''KSYmKHA9MHxxMFsxMjcmYVtmKzEyPj4yXV0oZiwwLDI4LGwpLGFbQT4+Ml09cCxwPyhhW3A+PjJdPWFbYys0Pj4yXSxhWyhBPXArNHwwKT4+Ml09MCxhW0ErND4+Ml09MCxhW0ErOD4+Ml09MCxhW0ErMTI+PjJdPTAsYVtBKzE2Pj4yXT0wLGFbQSsyMD4+Ml09MCk6KGY9bSx3PTEyKSksMTI9''@;'; + put 'put ''PSgwfHcpKXtGdChmKSxmPTA7YnJlYWt9YVtmKzg+PjJdPXAsYVtmPj4yXT1hW2M+PjJdLGFbZisxNj4+Ml09YywocD0wfGFbYj4+Ml0pJiZxMFsxMjcmcF0oZiw1LG0sbCl9ZWxzZSBmPTB9d2hpbGUoMCk7cmV0dXJuIGFlPWssMHxmfWZ1bmN0aW9uIENjKGwsYyl7dmFyIG0sQSx3LGY9MCxw''@;'; + put 'put ''PTAsYj0wLGs9MDttPTB8YVthWzE2KyhsfD0wKT4+Ml0+PjJdLGY9NDA5NiYodz0wfGFbKEE9MHxhWyhrPWwrOHwwKT4+Ml0pPj4yXSksKGN8PTApPzB8YVtBKzE2Pj4yXT9jPS0xOihwPTAsYj01KTpmPyhwPWYsYz0wfGFbQSs0Pj4yXSxiPTUpOmM9LTE7ZTpkb3tpZig1PT0oMHxiKSl7aWYo''@;'; + put 'put ''YVtBPj4yXT0tNDA5NyZ3LCEoMyZ3KSl7aWYoZj1BKzR8MCwxMiZ3fHwoYVtmPj4yXT0wLGY9QSs4fDApLGFbZj4+Ml09YywwfHApe2M9MDticmVha31hWzE2KygwfGFbaz4+Ml0pPj4yXT0tMSxjPTA7YnJlYWt9aWYoYVtBKzQ+PjJdPTAsIXApZm9yKGFbQSsxNj4+Ml09MDs7KXtpZighYyl7''@;'; + put 'put ''Yz0wO2JyZWFrIGV9az0wfGFbYz4+Ml0sbWlbNjMmbV0obCxjLDMyKSxjPWt9Zm9yKGw9KHA9MHxhW0ErOD4+Ml0pKyhhW0ErMTI+PjJdPDwyKXwwOzspe2lmKHA+Pj4wPj1sPj4+MCl7Yz0wO2JyZWFrIGV9KGY9MHxhW3A+PjJdKSYmKGFbcD4+Ml09YyxjPTB8YVtmPj4yXSxhW2Y+PjJdPTAp''@;'; + put 'put ''LHA9cCs0fDB9fX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIHB1KGwpe3ZhciBwLGM9MCxmPTA7NDA5NiZhWyhmPTB8YVsoYz04KyhsfD0wKXwwKT4+Ml0pPj4yXSYmKENjKGwsMCksZj0wfGFbYz4+Ml0pLGw9MHxhWyhwPWYrMTZ8MCk+PjJdO2Rve2lmKCgwfGwpPDApe2lmKDEyJihj''@;'; + put 'put ''PTB8YVtmPj4yXSl8MCl7bD0wfEVBKDB8YVtmKzQ+PjJdKSxhW3A+PjJdPWw7YnJlYWt9aWYoMTEyJmMpe2ZvcihsPTAsYz1mKzh8MDtjPTB8YVtjPj4yXTspbD1sKzF8MDthW3A+PjJdPWx9fX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIEVBKGwpe3JldHVybihsfD0wKT8xKygwfEVB''@;'; + put 'put ''KDB8YVtsKzQ+PjJdKSkrKDB8RUEoMHxhW2w+PjJdKSl8MDowfWZ1bmN0aW9uIGVoKGwsYyl7Y3w9MDt2YXIgbSxmPTAscD0wLEE9MDs0MDk2JmFbYVs4KyhsfD0wKT4+Ml0+PjJdfDAmJkNjKGwsMCksKG09MCE9KDB8YykpPyg0MDk2JmFbYVtjKzg+PjJdPj4yXXwwJiZDYyhjLDApLCgwfGFb''@;'; + put 'put ''YysxNj4+Ml0pPT0oMHxhW2wrMTY+PjJdKT8oZj1jLHA9Nyk6Yz0wKTooZj0wLHA9Nyk7ZTpkb3tpZig3PT0oMHxwKSl7Zm9yKDtmOyl7aWYoKDB8Zik9PSgwfGwpKXtjPTA7YnJlYWsgZX1mPTB8YVtmKzI4Pj4yXSxwPTd9aWYoMHwocD0wfGFbKGY9bCsyOHwwKT4+Ml0pJiYoYVsoQT1wKzI0''@;'; + put 'put ''fDApPj4yXT0oMHxhW0E+PjJdKS0xKSxhW2wrMzI+PjJdPTAsYVtmPj4yXT0wLG0pe2FbZj4+Ml09YyxhW2w+PjJdPTI4LGFbKEE9YysyNHwwKT4+Ml09MSsoMHxhW0E+PjJdKTticmVha31hW2w+PjJdPWFbYVtsKzE2Pj4yXT4+Ml0sYz1wO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1''@;'; + put 'put ''bmN0aW9uIEptKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MDtHPTB8YVsobT00KyhsfD0wKXwwKT4+Ml07ZTpkb3tpZihHKWlmKGMpe2lmKFI9MHxhW2FbbCsxNj4+Ml0+PjJdLDQwOTYmYVthWyhBPWwrOHwwKT4+Ml0+PjJdfDAm''@;'; + put 'put ''JkNjKGwsMCksMHwocD0wfGFbRyszMj4+Ml0pJiYoMHxxMFsxMjcmcF0obCwzLGMsRykpPDApe2M9MDticmVha31pZihhW20+PjJdPWMsYVtsKzEyPj4yXT0wPT0oMHwocD0wfGFbYysyOD4+Ml0pKT81MjpwLDExMiYocD0wfGFbYVtBPj4yXT4+Ml0pKWM9RztlbHNle2Rve2lmKCEoMiZwKSl7''@;'; + put 'put ''aWYoMyZwKXtpZigzPT0oMyZmfDApKXtjPUc7YnJlYWsgZX1icmVha31pZigxJmYpe2M9RzticmVhayBlfWJyZWFrfWlmKDImZnwwKXtjPUc7YnJlYWsgZX19d2hpbGUoMCk7dz0wfHMwKGwpLGFbKHA9MHxhW0E+PjJdKT4+Ml09LTQwOTcmKEQ9MHxhW3A+PjJdKSxhW3ArND4+Ml09MCxhW3Ar''@;'; + put 'put ''MTY+PjJdPTA7dDpkb3tpZigzJkR8MClmb3IoRD0wfGFbcCs4Pj4yXSxtPUQrKGFbcCsxMj4+Ml08PDIpfDAscD1EOzspe2lmKHA+Pj4wPj1tPj4+MClicmVhayB0O2FbcD4+Ml09MCxwPXArNHwwfX13aGlsZSgwKTtmb3IoYj0wPT0oMiZmfDApLGs9Yys4fDAsTT1jKzR8MCxEPWMrMjR8MDs7''@;'; + put 'put ''KXtpZighdyl7Yz1HO2JyZWFrIGV9Zj0wfGFbdz4+Ml0sYiYmKHA9KHA9KDB8KHA9MHxhW2s+PjJdKSk8MD8wfGFbdys4Pj4yXTp3KygwLXApfDApKygwfGFbYz4+Ml0pfDAsKDB8KEE9MHxhW00+PjJdKSk8MCYmKHA9MHxhW3A+PjJdKSxwPShtPTB8YVtEPj4yXSk/MHxtaVs2MyZtXShsLHAs''@;'; + put 'put ''Yyk6MHxyVCgwLHAsQSksYVt3KzQ+PjJdPXApLG1pWzYzJlJdKGwsdywzMiksdz1mfX19ZWxzZSBjPUc7ZWxzZSBhW20+PjJdPWMsRz0wfGFbYysyOD4+Ml0sYVtsKzEyPj4yXT0wPT0oMHxHKT81MjpHfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gclQobCxjLGYpe2x8PTA7dmFyIHA9''@;'; + put 'put ''MCxtPTAsQT0wO2lmKG09Y3w9MCwoMHwoZnw9MCkpPj0xKXtmb3IobT0oKEE9YytmKy0xfDApPj4+MDxjPj4+MD9jOkEpKygxLW0pJi0yLHA9YzshKHA+Pj4wPj1BPj4+MCk7KWw9MHxBcigoKDB8SnRbcD4+MF0pPDw4KStsKygwfEp0W3ArMT4+MF0pfDAsMTcxMDk4MTEpLHA9cCsyfDA7KHA9''@;'; + put 'put ''YyttfDApPj4+MD5BPj4+MD9jPWY6KGM9ZixsPTB8QXIoKCgwfEp0W3A+PjBdKTw8OCkrbHwwLDE3MTA5ODExKSl9ZWxzZXtmb3IoOyhwPTB8ZmVbYz4+MF0pPDwyND4+MjQ7KWw9Zj0wfEFyKCgoMjU1JnApPDw4KStsKygyNTUmKEE9MHxmZVtjKzE+PjBdKSl8MCwxNzEwOTgxMSksYz1jKyhB''@;'; + put 'put ''PDwyND4+MjQ/MjoxKXwwO2M9Yy1tfDB9cmV0dXJuIDB8QXIobCtjfDAsMTcxMDk4MTEpfWZ1bmN0aW9uICRyKGwsYyxmKXt2YXIgcCxtO3JldHVybiBsfD0wLGN8PTAscD1hZSxhZT1hZSsxNnwwLGFbKG09cCk+PjJdPWZ8PTAsZj0wfGVDKGwsYyxtKSxhZT1wLDB8Zn1mdW5jdGlvbiBlQyhs''@;'; + put 'put ''LGMsZil7Y3w9MCxmfD0wO3ZhciBwLG0sQSx3LGI9MDtBPWFlLGFlPWFlKzE2fDAscD1BLGFbNDY5MzhdPXc9KG09Mz09KDB8KGx8PTApKSk/MHxhWzQ2OTM4XToyPT0oMHxsKT8xOmwsYVs0NjkzOV09KGI9MHxhWzQ2OTM5XSk+Pj4wPnc+Pj4wP2I6dztkb3tpZih3Pj4+MDwoMHxhWzQ2OTM2''@;'; + put 'put ''XSk+Pj4wKXtpZighKGw9MHxhWzQ2OTM3XSkmJihsPTB8ZmZlKCksYVs0NjkzN109bCwhbCkpe2w9MTticmVha31tfHwoaGZlKGwpLGw9MHxhWzQ2OTM3XSksaEwobCxjLGYpLGw9MH1lbHNle2lmKDB8YVs0NjkzNV0pe0RQKGwsYyxmKSxsPTA7YnJlYWt9bT9sPTB8YVsxNTcxMl06KGI9MHxh''@;'; + put 'put ''WzE1NzEyXSxhW3A+PjJdPTE9PSgwfGwpPzk2MzQ5Ojk2MzU1LFQwKGIsOTYzNjMscCksbD1iKSxoTChsLGMsZiksbD0wfX13aGlsZSgwKTtyZXR1cm4gYWU9QSwwfGx9ZnVuY3Rpb24gRFAobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wOzA9PSgwfGFbNDY5NDBdKSYmKG09MHxC''@;'; + put 'put ''MCgwfGFbNDU5MF0pLGFbNDY5NDBdPW0sMD09KDB8bSkpP191KDk2MzY4LDB8YVsxNTcxMl0pOnA9NDtkb3tpZig0PT0oMHxwKSl7Zm9yKDMhPSgwfGwpJiYoX29bNjMmYVs0NjkzNV1dKDE9PSgwfGwpPzk2MzQ5Ojk2MzU1KSxfb1s2MyZhWzQ2OTM1XV0oOTcwMjcpKTs7KXtpZigoMHwobD0w''@;'; + put 'put ''fGZMKDB8YVs0Njk0MF0sMHxhWzQ1OTBdLGMsZikpKT4tMSYoMHxsKTwoMHwocD0wfGFbNDU5MF0pKSl7cD03O2JyZWFrfWlmKGFbNDU5MF09bT0oMHwocDw8PTEpKT4oMHwobT1sKzF8MCkpP3A6bSwhKDB8VWEoMHxhWzQ2OTQwXSxtKSkpe3A9OTticmVha319aWYoNz09KDB8cCkpe19vWzYz''@;'; + put 'put ''JmFbNDY5MzVdXSgwfGFbNDY5NDBdKTticmVha31pZig5PT0oMHxwKSl7X3UoOTYzNjgsMHxhWzE1NzEyXSk7YnJlYWt9fX13aGlsZSgwKX1mdW5jdGlvbiBYbShsLGMpe3ZhciBmLHA7bHw9MCxmPWFlLGFlPWFlKzE2fDAsYVsocD1mKT4+Ml09Y3w9MCxlQygxLGwscCksYWU9Zn1mdW5jdGlv''@;'; + put 'put ''biB1cyhsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTA7KGZ8PTApP3A9MDooYz1mPTA9PSgwfGMpPzEwMjQ6YyxmPTB8QjAoZikscD0xKSxhW2wrMTI+PjJdPXAsYVtsPj4yXT1mLGFbbCs4Pj4yXT1mK2MsYVtsKzQ+PjJdPWYsZmVbZj4+MF09MH1mdW5jdGlvbiBRMChsLGMpe3ZhciBmLHcscD0w''@;'; + put 'put ''LG09MCxBPTAsYj0wO3JldHVybiBwPShBPSgwfGFbKHc9OCsobHw9MCl8MCk+PjJdKS0obT0wfGFbbD4+Ml0pfDApPDwxLHA9KEE9QSsoY3w9MCl8MCk+Pj4wPnA+Pj4wP0E6cCxjPW0sbT0oMHxhWyhBPWwrNHwwKT4+Ml0pLW18MCwwfGFbKGY9bCsxMnwwKT4+Ml0/Yz0wfFVhKGMscCk6KGdv''@;'; + put 'put ''KDB8KGI9MHxCMChwKSksMHxjLDB8bSksYVtmPj4yXT0xLGM9YiksYVtsPj4yXT1jLGFbQT4+Ml09YyttLGFbdz4+Ml09YytwLDB9ZnVuY3Rpb24gYVQobCxjLGYpe2N8PTA7dmFyIG0scD0wO3JldHVybigocD0wfGFbKG09NCsobHw9MCl8MCk+PjJdKSsoZnw9MCl8MCk+Pj4wPigwfGFbbCs4''@;'; + put 'put ''Pj4yXSk+Pj4wJiYoUTAobCxmKSxwPTB8YVttPj4yXSksZ28oMHxwLDB8YywwfGYpLGFbbT4+Ml09KDB8YVttPj4yXSkrZiwwfGZ9ZnVuY3Rpb24gdW8obCxjKXtyZXR1cm4gMHxhVChsfD0wLGN8PTAsMHxVbyhjKSl9ZnVuY3Rpb24gQzIobCl7MHxhWzEyKyhsfD0wKT4+Ml0mJkZ0KDB8YVts''@;'; + put 'put ''Pj4yXSl9ZnVuY3Rpb24gTDYobCl7dmFyIGMsZjtyZXR1cm4oZj0wfGFbKGM9NCsobHw9MCl8MCk+PjJdKT4+PjA+KDB8YVtsPj4yXSk+Pj4wPyhhW2M+PjJdPWYrLTEsbD0wfEp0W2Y+PjBdKTpsPS0xLDB8bH1mdW5jdGlvbiBWaChsLGMpe3ZhciBmPTA7cmV0dXJuIDAhPSgwfChjfD0wKSkm''@;'; + put 'put ''MD09KDB8KGY9MHxhbyhsfD0wLDk2NDE2LDApKSkmJihmdW5jdGlvbiB0QyhsKXt2YXIgcCxjPTAsZj0wO2Zvcih5QyhwPTB8ZGkobHw9MCkscCwxMDcsMCwxKSxmPTB8RHQocCk7Zjspe2ZvcihuQyhsLGYpLGM9MHx3MChwLGYpO2M7KXJDKGwsYyksYz0wfFMwKHAsYyk7Zj0wfHp0KHAsZil9''@;'; + put 'put ''fShsKSxmPTB8YW8obCw5NjQxNiwwKSksMHxmfWZ1bmN0aW9uIFQ1KGwpe3ZhciBjPTA7ZmVbKGM9MjQrKGx8PTApfDApPj4wXT02NHxmZVtjPj4wXSxmdW5jdGlvbiBPUChsKXt2YXIgcCxtLGM9MCxmPTA7Zj0wfGgwKGx8PTAsOTY0MTYsMjAsMCksYVsocD1mKzh8MCk+PjJdPTB8WmgobCwx''@;'; + put 'put ''ODM2NCwwfGFbNDU4OV0pLGFbKG09ZisxMnwwKT4+Ml09MHxaaChsLDE4MzY0LDB8YVs0NTg5XSksYVsoZj1mKzE2fDApPj4yXT0wfFpoKGwsMTgzNjQsMHxhWzQ1ODldKSwoYz0wfGsxKGwpKT8obD0wfFZoKGMsMCksZWgoMHxhW3A+PjJdLDB8YVtsKzg+PjJdKSxlaCgwfGFbbT4+Ml0sMHxh''@;'; + put 'put ''W2wrMTI+PjJdKSxlaCgwfGFbZj4+Ml0sMHxhW2wrMTY+PjJdKSk6MD09KDB8KGM9MHxhWzQ2OTQxXSkpfCgwfGMpPT0oMHxsKXx8KGM9MHxWaChjLDApLGpoKDB8YVtjKzg+PjJdLDB8YVtwPj4yXSxsLDEpLGpoKDB8YVtjKzEyPj4yXSwwfGFbbT4+Ml0sbCwyKSxqaCgwfGFbYysxNj4+Ml0s''@;'; + put 'put ''MHxhW2Y+PjJdLGwsMCkpfShsKSxpQygwPT0oMHwoYz0wfGsxKGwpKSk/bDpjLGwpfWZ1bmN0aW9uIG5DKGwsYyl7dmFyIGY7bHw9MCwwIT0oMHwoZj0wfGljKGN8PTApKSkmJjAhPSgwfGFbZis4Pj4yXSl8fGlDKGwsYyl9ZnVuY3Rpb24gckMobCxjKXt2YXIgZjtsfD0wLDAhPSgwfChmPTB8''@;'; + put 'put ''aWMoY3w9MCkpKSYmMCE9KDB8YVtmKzg+PjJdKXx8aUMobCxjKX1mdW5jdGlvbiBpYyhsKXtyZXR1cm4gMHxhbyhsfD0wLDk2NDA0LDApfWZ1bmN0aW9uIGlDKGwsYyl7bHw9MDt2YXIgbSxmPTAscD0wO2Y9MHxoMChjfD0wLDk2NDA0LDE2LDApLG09MHxKNChsLDMmYVtjPj4yXSkscD1mKzh8''@;'; + put 'put ''MDtlOmRve2lmKCEoMHxhW3A+PjJdKSlmb3IobD0wfGRpKGwpLGFbcD4+Ml09MHxKNChsLDMmYVtjPj4yXSksbD0wfHhBKGMpLGY9ZisxMnwwLGFbZj4+Ml09MHxNdCgwfGNyKGMpLCgoMHxsKT40P2w6NCk8PDIpLGw9MHxtaVs2MyZhW20+PjJdXShtLDAsMTI4KTs7KXtpZighbClicmVhayBl''@;'; + put 'put ''O3A9MHxyMChwPTB8Y3IoYyksMHxhW2wrMTI+PjJdKSxhWygwfGFbZj4+Ml0pKyhhW2wrMTY+PjJdPDwyKT4+Ml09cCxsPTB8bWlbNjMmYVttPj4yXV0obSxsLDgpfX13aGlsZSgwKX1mdW5jdGlvbiBKNChsLGMpe3ZhciBmLHA7Y3w9MCxwPWFlLGFlPWFlKzE2fDAsZj1wLGw9MHxWaChsfD0w''@;'; + put 'put ''LDApO2U6ZG97aWYobClzd2l0Y2goMHxjKXtjYXNlIDA6bD0wfGFbbCsxNj4+Ml07YnJlYWsgZTtjYXNlIDE6bD0wfGFbbCs4Pj4yXTticmVhayBlO2Nhc2UgMjpjYXNlIDM6bD0wfGFbbCsxMj4+Ml07YnJlYWsgZTtkZWZhdWx0OmFbZj4+Ml09YywkcigxLDk2NDI5LGYpLGw9MDticmVhayBl''@;'; + put 'put ''fWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiBhZT1wLDB8bH1mdW5jdGlvbiB4QShsKXtyZXR1cm4gMHwoKGw9MHxKNCgwfGRpKDB8Y3IobHw9MCkpLDMmYVtsPj4yXSkpPzB8cHUobCk6MCl9ZnVuY3Rpb24gamgobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTA7Zm9yKG09MHxt''@;'; + put 'put ''aVs2MyZhWyhsfD0wKT4+Ml1dKGwsMCwxMjgpO207KUE9MHxOZChmLDB8YVttKzg+PjJdLDB8YVttKzEyPj4yXSwwfGFbbSsxNj4+Ml0scCksZmVbQSsyMj4+MF09MHxmZVttKzIyPj4wXSxmZVtBKzIxPj4wXT0wfGZlW20rMjE+PjBdLG1pWzYzJmFbYz4+Ml1dKGMsQSwxKSxtPTB8bWlbNjMm''@;'; + put 'put ''YVtsPj4yXV0obCxtLDgpfWZ1bmN0aW9uIE5kKGwsYyxmLHAsbSl7dmFyIEE7cmV0dXJuIGN8PTAsZnw9MCxwfD0wLG18PTAsQT0wfE10KGx8PTAsMjQpLGZlW0ErMjA+PjBdPW0sYVtBKzg+PjJdPTB8cjAobCxjKSxhW0ErMTI+PjJdPTB8cjAobCxmKSxhW0ErMTY+PjJdPXAsMHxBfWZ1bmN0''@;'; + put 'put ''aW9uIFRBKGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9MCxmPWFlLGFlPWFlKzMyfDAsYVsocD1mKSs4Pj4yXT1jfD0wLGM9MHxtaVs2MyZhW2w+PjJdXShsLHAsNCksYWU9ZiwwfGN9ZnVuY3Rpb24gb0MobCxjKXt2YXIgZjtyZXR1cm4gY3w9MCxmPTB8ZWgobHw9MCwwKSxjPTB8VEEobCxjKSxl''@;'; + put 'put ''aChsLGYpLDB8Y31mdW5jdGlvbiBhQyhsLGMpe3JldHVybiBjfD0wLDB8KChsPTB8aWMobHw9MCkpPzB8VEEoMHxhW2wrOD4+Ml0sYyk6MCl9ZnVuY3Rpb24gc2kobCxjLGYscCl7dmFyIG0sQTtyZXR1cm4gY3w9MCxmfD0wLHB8PTAsQT1hZSxhZT1hZSsxNnwwLG09QSwobHw9MCl8fChsPTB8''@;'; + put 'put ''YVs0Njk0MV0pfHwoZmVbbT4+MF09MHxmZVsxODQwMF0sZmVbbSsxPj4wXT0wfGZlWzE4NDAxXSxmZVttKzI+PjBdPTB8ZmVbMTg0MDJdLGZlW20rMz4+MF09MHxmZVsxODQwM10sbD0wfG9jKDAsbSwwKSxhWzQ2OTQxXT1sKSxsPXA/MHxmdW5jdGlvbiBSUChsLGMsZixwKXtjfD0wLGZ8PTAs''@;'; + put 'put ''cHw9MDt2YXIgYixtPTAsQT0wLHc9MDtiPTB8ZGkobHw9MCksVmgobCwxKSxtPTB8b0MoQT0wfEo0KGwsYyksZik7ZTpkb3tpZihtKXc9bSsxMnwwLGUwKGwsMHxhW3c+PjJdKSxhW3c+PjJdPTB8cjAobCxwKSx3PTE2O2Vsc2V7aWYoMHwobT0wfFRBKEEsZikpKXttPTB8TmQobCxmLHAsMHxh''@;'; + put 'put ''W20rMTY+PjJdLGMpLG1pWzYzJmFbQT4+Ml1dKEEsbSwxKSx3PTE2O2JyZWFrfXN3aXRjaChtPTB8TmQobCxmLHAsMHxwdShBPTB8SjQoYixjKSksYyksbWlbNjMmYVtBPj4yXV0oQSxtLDEpLDB8Yyl7Y2FzZSAwOnlDKGIsYiw1NyxtLDEpLHc9MTY7YnJlYWsgZTtjYXNlIDE6Zm9yKGY9MHxE''@;'; + put 'put ''dChiKTs7KXtpZighZil7dz0xNjticmVhayBlfWxDKGwsZixtKSxmPTB8enQoYixmKX1jYXNlIDI6Y2FzZSAzOmZvcihBPTB8RHQoYik7Oyl7aWYoIUEpe3c9MTY7YnJlYWsgZX1mb3IoZj0wfHcwKGIsQSk7ZjspbEMobCxmLG0pLGY9MHxTMChiLGYpO0E9MHx6dChiLEEpfWRlZmF1bHQ6YnJl''@;'; + put 'put ''YWsgZX19fXdoaWxlKDApO3JldHVybiAxNj09KDB8dykmJjA9PSgwfGMpJjAhPSgwfG0pJiZWbChsLG0scCksdG8obCxsLG0pLDB8bX0obCxjLGYscCk6MHxmdW5jdGlvbiBsVChsLGMsZil7cmV0dXJuIGZ8PTAsMHwobD0obD0wfEo0KGx8PTAsY3w9MCkpPzB8VEEobCxmKTowKX0obCxjLGYp''@;'; + put 'put ''LGFlPUEsMHxsfWZ1bmN0aW9uIGxDKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIG0scD0wLEE9MDtjPTB8aWMoY3w9MCksKDB8KHA9MHxhWyhtPWYrMTZ8MCk+PjJdKSk+Mz9hWyhjPWMrMTJ8MCk+PjJdPTB8cTBbMTI3JmFbOCsoMHxhWyhBPTB8YVtsKzY0Pj4yXSk+PjJdKT4+Ml1dKDB8YVtBKzEy''@;'; + put 'put ''Pj4yXSwwfGFbYz4+Ml0scDw8PTIscCs0fDApOmM9YysxMnwwLEE9MHxyMChsLDB8YVtmKzEyPj4yXSksYVsoMHxhW2M+PjJdKSsoYVttPj4yXTw8Mik+PjJdPUF9ZnVuY3Rpb24gVmwobCxjLGYpe2N8PTAsZnw9MDt2YXIgdyxwPTAsbT0wLEE9MCxiPTA7dz0wfGNyKGx8PTApLEE9MTIrKDB8''@;'; + put 'put ''aWMobCkpfDAsZTAodywwfGFbKDB8YVtBPj4yXSkrKGFbKGI9YysxNnwwKT4+Ml08PDIpPj4yXSksbT0wfHIwKHcsZiksYVsoMHxhW0E+PjJdKSsoYVtiPj4yXTw8Mik+PjJdPW07ZG97aWYoISgzJmFbbD4+Ml0pKXtpZihBPTB8b0MocD0wfGFbMTYrKDB8VmgodywwKSk+PjJdLDB8YVsobT1j''@;'; + put 'put ''Kzh8MCk+PjJdKSl7ZTAodywwfGFbKGI9QSsxMnwwKT4+Ml0pLGFbYj4+Ml09MHxyMCh3LGYpO2JyZWFrfWI9MHxOZCh3LDB8YVttPj4yXSxmLDB8YVtiPj4yXSwzJmFbbD4+Ml0pLG1pWzYzJmFbcD4+Ml1dKHAsYiwxKTticmVha319d2hpbGUoMCk7cmV0dXJuIHRvKHcsbCxjKSwwfWZ1bmN0''@;'; + put 'put ''aW9uIEZzKGwsYyxmKXtmfD0wLGw9MHxKNChsfD0wLGN8PTApO2Rve2lmKGwpe2lmKGM9MHxhW2w+PjJdLGYpe2w9MHxtaVs2MyZjXShsLGYsOCk7YnJlYWt9bD0wfG1pWzYzJmNdKGwsMCwxMjgpO2JyZWFrfWw9MH13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIHNDKGwpe3ZhciBjPTA7''@;'; + put 'put ''cmV0dXJuIGFbNDY5NDJdPWx8PTAsMHwoYz0wfGljKGwpKSYmKGsyKGwsYyksSGkobCwwfGFbYz4+Ml0pKSwoYz0wfFZoKGwsMCkpPzA9PSgwfCQ0KGwsMHxhW2MrOD4+Ml0pKSYmMD09KDB8JDQobCwwfGFbYysxMj4+Ml0pKSYmMD09KDB8JDQobCwwfGFbYysxNj4+Ml0pKT8oSGkobCwwfGFb''@;'; + put 'put ''Yz4+Ml0pLGM9MCk6Yz0xOmM9MCwwfGN9ZnVuY3Rpb24gazIobCxjKXtjfD0wO3ZhciBwLG0sZj0wO2ZvcihtPTB8Y3IobHw9MCkscD0wfHhBKGwpLGM9YysxMnwwLGw9MDtmPTB8YVtjPj4yXSwhKCgwfGwpPj0oMHxwKSk7KWUwKG0sMHxhW2YrKGw8PDIpPj4yXSksbD1sKzF8MDt4dChtLGYp''@;'; + put 'put ''fWZ1bmN0aW9uIExpKGwsYyl7cmV0dXJuKGM9MHxhQyhsfD0wLGN8PTApKT8obD0wfGFbMTIrKDB8aWMobCkpPj4yXSxjPTB8YVtsKyhhW2MrMTY+PjJdPDwyKT4+Ml0pOmM9MCwwfGN9ZnVuY3Rpb24gSG8obCxjKXtyZXR1cm4gY3w9MCxsPTB8YVsxMisoMHxpYyhsfD0wKSk+PjJdLDB8YVts''@;'; + put 'put ''KyhhW2MrMTY+PjJdPDwyKT4+Ml19ZnVuY3Rpb24ga2MobCxjLGYpe3JldHVybiBmfD0wLChjPTB8YUMobHw9MCxjfD0wKSk/KFZsKGwsYyxmKSxjPTApOmM9LTEsMHxjfWZ1bmN0aW9uIEk1KGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtPTA7cmV0dXJuKG09MHxzaShtPTB8Y3IobHw9''@;'; + put 'put ''MCksMyZhW2w+PjJdLGMsMCkpfHwobT0wfHNpKG09MHxjcihsKSwzJmFbbD4+Ml0sYyxwKSksVmwobCxtLGYpLDB9ZnVuY3Rpb24gUjYobCxjKXtjfD0wO3ZhciBBLGY9MCxwPTAsbT0wO0E9MHxjcihsfD0wKSxtPTB8YVtsPj4yXTtlOmRve2lmKDMmKGFbYz4+Ml1ebSkpZj0xO2Vsc2UgZm9y''@;'; + put 'put ''KGY9MSxwPTA7Oyl7aWYoIShwPTB8RnMoQSwzJm0scCkpKWJyZWFrIGU7aWYoIShmPTB8YUMoYywwfGFbcCs4Pj4yXSkpKXtmPTE7YnJlYWsgZX1WbChjLGYsbT0wfEhvKGwscCkpLDB8T28obSkmJmswKDB8SG8oYyxmKSksZj0wLG09MHxhW2w+PjJdfX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1''@;'; + put 'put ''bmN0aW9uIHcwKGwsYyl7dmFyIGY9MDtyZXR1cm4oYz0wfFNmKGx8PTAsY3w9MCkpPyhDYygwfGFbKGY9bCs0NHwwKT4+Ml0sMHxhWyhsPWMrMzJ8MCk+PjJdKSxjPTB8bWlbNjMmYVsoYz0wfGFbZj4+Ml0pPj4yXV0oYywwLDEyOCksYVtsPj4yXT0wfEYzKDB8YVtmPj4yXSkpOmM9MCwwfGN9''@;'; + put 'put ''ZnVuY3Rpb24gU2YobCxjKXt2YXIgZixwO3JldHVybiBwPWFlLGFlPWFlKzQ4fDAsZj1wLCgwfGFbMjQrKGN8PTApPj4yXSk9PSgwfChsfD0wKSk/bD1jKzI4fDA6KGFbZisxNj4+Ml09YyxsPTB8bWlbNjMmYVsobD0wfGFbbCs0MD4+Ml0pPj4yXV0obCxmLDQpKSxhZT1wLDB8bH1mdW5jdGlv''@;'; + put 'put ''biBTMChsLGMpe3ZhciBmPTAscD0wO3JldHVybihmPTB8U2YobHw9MCwwfGFbKDM9PSgzJmFbKGN8PTApPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKSk/KENjKDB8YVsocD1sKzQ0fDApPj4yXSwwfGFbKGY9ZiszMnwwKT4+Ml0pLGw9MHxtaVs2MyZhWyhsPTB8YVtwPj4yXSk+PjJdXShsLGMs''@;'; + put 'put ''OCksYVtmPj4yXT0wfEYzKDB8YVtwPj4yXSkpOmw9MCwwfGx9ZnVuY3Rpb24gTWYobCxjKXt2YXIgZj0wO3JldHVybihjPTB8U2YobHw9MCxjfD0wKSk/KENjKDB8YVsoZj1sKzQ0fDApPj4yXSwwfGFbKGw9YysyOHwwKT4+Ml0pLGM9MHxtaVs2MyZhWyhjPTB8YVtmPj4yXSk+PjJdXShjLDAs''@;'; + put 'put ''MTI4KSxhW2w+PjJdPTB8RjMoMHxhW2Y+PjJdKSk6Yz0wLDB8Y31mdW5jdGlvbiBIMyhsLGMpe3ZhciBmPTAscD0wO3JldHVybihmPTB8U2YobHw9MCwwfGFbKDI9PSgzJmFbKGN8PTApPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSkpPyhDYygwfGFbKHA9bCs0NHwwKT4+Ml0sMHxhWyhmPWYr''@;'; + put 'put ''Mjh8MCk+PjJdKSxsPTB8bWlbNjMmYVsobD0wfGFbcD4+Ml0pPj4yXV0obCxjLDgpLGFbZj4+Ml09MHxGMygwfGFbcD4+Ml0pKTpsPTAsMHxsfWZ1bmN0aW9uIFNzKGwsYyl7dmFyIGY9MDtyZXR1cm4oZj0wfHcwKGx8PTAsY3w9MCkpfHwoZj0wfE1mKGwsYykpLDB8Zn1mdW5jdGlvbiBIcyhs''@;'; + put 'put ''LGMsZil7bHw9MCxjfD0wLGZ8PTA7ZTpkb3tpZigyPT0oMyZhW2M+PjJdfDApKXtpZighKGM9MHxTMChsLGMpKSl7Yz0wO2Rve2lmKCEoYz1jPzB8SDMobCxjKTowfE1mKGwsZikpKXtjPTA7YnJlYWsgZX19d2hpbGUoKDB8YVtjKzQwPj4yXSk9PSgwfGYpKX19ZWxzZSBkb3tpZihjPTB8SDMo''@;'; + put 'put ''bCxjKSwhYyl7Yz0wO2JyZWFrIGV9fXdoaWxlKCgwfGFbYys0MD4+Ml0pPT0oMHxmKSl9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBGUChsLGMpe0Q1KGx8PTAsY3w9MCl9ZnVuY3Rpb24gRDUobCxjKXtsfD0wO3ZhciBmLHAsbSxBLGIsdz0wLGs9MCxNPTAsRD0wO2ZvcihiPWFlLGFl''@;'; + put 'put ''PWFlKzE2fDAsZj1iLEE9Mj09KDB8KHc9MyZhWyhjfD0wKT4+Ml0pKT9jOmMrLTQ4fDAscD0wfGFbKHc9Mz09KDB8dyk/YzpjKzQ4fDApKzQwPj4yXSxtPTB8YVtBKzQwPj4yXTtsJiYoYVtmPj4yXT1hW2M+PjJdLGFbZis0Pj4yXT1hW2MrND4+Ml0sYVtmKzg+PjJdPWFbYys4Pj4yXSxhW2Yr''@;'; + put 'put ''MTI+PjJdPWFbYysxMj4+Ml0sISgwfFg0KGwscCxtLGYpKSk7KWs9MHxTZihsLHApLGgxKDB8YVsoRD1sKzQ0fDApPj4yXSxrKzMyfDAsQSksaDEoMHxhWyhNPWwrNDh8MCk+PjJdLGsrMjR8MCxBKSxrPTB8U2YobCxtKSxoMSgwfGFbRD4+Ml0saysyOHwwLHcpLGgxKDB8YVtNPj4yXSxrKzIw''@;'; + put 'put ''fDAsdyksbD0wfGsxKGwpO2FlPWJ9ZnVuY3Rpb24gWDQobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtLHcsQT0wO3JldHVybiB3PWFlLGFlPWFlKzQ4fDAsbT13LDA9PSgwfChjfD0wKSl8MD09KDB8KGZ8PTApKXx8KGFbbT4+Ml09YVtwPj4yXSxhW20rND4+Ml09YVtwKzQ+PjJdLGFbbSs4Pj4y''@;'; + put 'put ''XT1hW3ArOD4+Ml0sYVttKzEyPj4yXT1hW3ArMTI+PjJdLGFbbSs0MD4+Ml09YywwPT0oMHwoQT0wfFNmKGwsZikpKSk/bD0wOihDYygwfGFbKHA9bCs0OHwwKT4+Ml0sMHxhWyhBPUErMjB8MCk+PjJdKSxsPTB8bWlbNjMmYVsobD0wfGFbcD4+Ml0pPj4yXV0obCxtLDQpLGFbQT4+Ml09MHxG''@;'; + put 'put ''MygwfGFbcD4+Ml0pKSxhZT13LDB8bH1mdW5jdGlvbiBoMShsLGMsZil7Znw9MCxDYyhsfD0wLDB8YVsoY3w9MCk+PjJdKSxtaVs2MyZhW2w+PjJdXShsLGYsMSksYVtjPj4yXT0wfEYzKGwpfWZ1bmN0aW9uIEthKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiLGss''@;'; + put 'put ''TSxSLEE9MCx3PTAsRD0wLEc9MDtSPWFlLGFlPWFlKzQ4fDAsYj1SKzI0fDAsTT1SKzE2fDAsaz1SO2Rve2lmKDB8SzQobCwyLHAsTSwwKSlhWyhHPWspPj4yXT0wLGFbRys0Pj4yXT0wLEE9MHxhWyhHPU0pKzQ+PjJdLGFbKEQ9ays4fDApPj4yXT1hW0c+PjJdLGFbRCs0Pj4yXT1BLGFbaz4+''@;'; + put 'put ''Ml09MixEPTc7ZWxzZSBpZihwKUQ9MTc7ZWxzZXtpZigwfG0mJjA9PSgwfERBKGwpKSl7RD0xODticmVha31hW2s+PjJdPTAsYVtrKzQ+PjJdPTAsYVtrKzg+PjJdPTAsYVtrKzEyPj4yXT0wLEQ9N319d2hpbGUoMCk7ZTpkb3tpZig3PT0oMHxEKSl7YVtiPj4yXT1hW2s+PjJdLGFbYis0Pj4y''@;'; + put 'put ''XT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4yXSxhW2IrMTI+PjJdPWFbaysxMj4+Ml0sQT0wfFg0KGwsYyxmLGIpO3Q6ZG97aWYoIUEpe2lmKDB8dDcobCkmJihhW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtr''@;'; + put 'put ''KzEyPj4yXSwwfCh3PTB8WDQobCxmLGMsYikpKSl7QT13O2JyZWFrfWRve2lmKDB8bSl7aWYoQT0wfGRpKGwpLGFbYj4+Ml09YVtrPj4yXSxhW2IrND4+Ml09YVtrKzQ+PjJdLGFbYis4Pj4yXT1hW2srOD4+Ml0sYVtiKzEyPj4yXT1hW2srMTI+PjJdLCEoKEE9MHxYNChBLGMsZixiKSl8fDB8''@;'; + put 'put ''dDcobCkmJihBPTB8ZGkobCksYVtiPj4yXT1hW2s+PjJdLGFbYis0Pj4yXT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4yXSxhW2IrMTI+PjJdPWFbaysxMj4+Ml0sQT0wfFg0KEEsZixjLGIpLEEpKSlicmVhaztGUChsLEEpO2JyZWFrIHR9fXdoaWxlKDApO0Q9MTc7YnJlYWsgZX19d2hp''@;'; + put 'put ''bGUoMCl9fXdoaWxlKDApO3JldHVybiAxNz09KDB8RCkmJihtP0Q9MTg6QT0wKSwxOD09KDB8RCkmJigwIT0oMHxmdW5jdGlvbiBQUChsLGMsZil7Y3w9MCxmfD0wO3ZhciBtLEEscD0wO3JldHVybiBBPWFlLGFlPWFlKzMyfDAscD1BKzE2fDAsbT1BLHA9MCE9KDB8REEobHw9MCkpJiYoYVtt''@;'; + put 'put ''Pj4yXT0wLGFbbSs0Pj4yXT0wLGFbbSs4Pj4yXT0wLGFbbSsxMj4+Ml09MCxhW3A+PjJdPWFbbT4+Ml0sYVtwKzQ+PjJdPWFbbSs0Pj4yXSxhW3ArOD4+Ml09YVttKzg+PjJdLGFbcCsxMj4+Ml09YVttKzEyPj4yXSwwIT0oMHxYNChsLGMsZixwKSkpPzA6MjU1JigoMHxKdFtsKzI0Pj4wXSk+''@;'; + put 'put ''Pj4yJjFeMSl8KDB8YykhPSgwfGYpLGFlPUEsMHxwfShsLGMsZikpJiYwIT0oMHxLNChsLDIscCxNLDEpKT8oQT0wfGZ1bmN0aW9uIHVUKGwsYyxmLHAsbSl7Znw9MCxwfD0wLG18PTA7dmFyIEEsdyxiLGssTSxEPTA7cmV0dXJuIFduKGx8PTAsY3w9MCwxKSxXbihsLGYsMSksdz00OCsoQT0w''@;'; + put 'put ''fE10KGwsOTYpKXwwLE09MHxOMyhsLDIpLGI9MHxhW3c+PjJdLGs9MHxhW0E+PjJdLGFbKEQ9QSs4fDApPj4yXT1wLGFbRCs0Pj4yXT1tLGFbKEQ9QSs1NnwwKT4+Ml09cCxhW0QrND4+Ml09bSxhW0E+PjJdPTEyJmt8KG09TTw8NCl8MixhW3c+PjJdPTEyJmJ8bXwzLGFbQSs4OD4+Ml09Yyxh''@;'; + put 'put ''W0ErNDA+PjJdPWYsRDUobCxBKSw2NCZmZVtsKzI0Pj4wXSYmKGgwKEEsOTY0MDQsMTYsMCksckMobCxBKSksdjAobCxBKSwwfEF9KGwsYyxmLDB8YVsoQT1NKT4+Ml0sMHxhW0ErND4+Ml0pLEw1KGwsMixBKSk6QT0wKSxhZT1SLDB8QX1mdW5jdGlvbiBLbShsLGMsZil7dmFyIHAsbSxBLHc7''@;'; + put 'put ''Znw9MCxBPShmPTM9PSgzJmFbKGN8PTApPj4yXXwwKSk/YystNDh8MDpjLGY9Zj9jOmMrNDh8MCxjPTB8YVtBKzQwPj4yXSx3PTB8U2YobHw9MCwwfGFbZis0MD4+Ml0pLCRtKDB8YVsobT1sKzQ0fDApPj4yXSx3KzMyfDAsQSksJG0oMHxhWyhwPWwrNDh8MCk+PjJdLHcrMjR8MCxBKSxjPTB8''@;'; + put 'put ''U2YobCxjKSwkbSgwfGFbbT4+Ml0sYysyOHwwLGYpLCRtKDB8YVtwPj4yXSxjKzIwfDAsZil9ZnVuY3Rpb24gJG0obCxjLGYpe2Z8PTAsQ2MobHw9MCwwfGFbKGN8PTApPj4yXSksbWlbNjMmYVtsPj4yXV0obCxmLDIpLGFbYz4+Ml09MHxGMyhsKX1mdW5jdGlvbiBxbShsLGMpe2x8PTA7dmFy''@;'; + put 'put ''IGYscCxtPTAsQT0wO3JldHVybiBmPWFlLGFlPWFlKzE2fDAsQT0wfGFbKDM9PSgwfChtPTMmYVsoYz0yPT0oMyZhWyhjfD0wKT4+Ml18MCk/YzpjKy00OHwwKT4+Ml0pKT9jOmMrNDh8MCkrNDA+PjJdLG09MHxhWygyPT0oMHxtKT9jOmMrLTQ4fDApKzQwPj4yXSxhWyhwPWYpPj4yXT1hW2M+''@;'; + put 'put ''PjJdLGFbcCs0Pj4yXT1hW2MrND4+Ml0sYVtwKzg+PjJdPWFbYys4Pj4yXSxhW3ArMTI+PjJdPWFbYysxMj4+Ml0sMHxYNChsLEEsbSxwKT8oKDB8ZGkobCkpPT0oMHxsKSYmKDY0JmZlW2wrMjQ+PjBdJiZmdW5jdGlvbiBzVChsKXt2YXIgYzswfChjPTB8aWMobHw9MCkpJiYoazIobCxjKSxI''@;'; + put 'put ''aShsLDk2NDA0KSl9KGMpLHdpKGwsYykscDIoYyksQjYobCwyLDB8YVsoQT1jKzh8MCk+PjJdLDB8YVtBKzQ+PjJdKSksMHx5QyhsLGMsNTgsMCwwKT9jPS0xOigoMHxkaShsKSk9PSgwfGwpJiZ4dChsLGMpLGM9MCkpOmM9LTEsYWU9ZiwwfGN9ZnVuY3Rpb24gVmQobCxjLGYpe3ZhciBBLHcs''@;'; + put 'put ''cD0wLG09MDt3PWFlLGFlPWFlKzE2fDAscD13LG09MHxXbihsfD0wLDB8YVsoMz09KDMmYVsoY3w9MCk+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0sZnw9MCksQT0wfFduKGwsMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdLGYpO2Rve2lmKDAhPSgwfG0pJjAhPSgwfEEp''@;'; + put 'put ''KXtpZihhW3A+PjJdPWFbYz4+Ml0sYVtwKzQ+PjJdPWFbYys0Pj4yXSxhW3ArOD4+Ml09YVtjKzg+PjJdLGFbcCsxMj4+Ml09YVtjKzEyPj4yXSwwIT0oMHxmKSYobT0wPT0oMHwocD0wfFg0KGwsbSxBLHApKSkpKUQ1KGwsYykscD1jO2Vsc2UgaWYobSlicmVhaztyZXR1cm4gYWU9dywwfCgo''@;'; + put 'put ''MHwoZj0zJmFbcD4+Ml0pKT09KDMmYVtjPj4yXXwwKT9wOnArKDQ4KigzPT0oMHxmKT8tMToxKXwwKXwwKX19d2hpbGUoMCk7cmV0dXJuIGFlPXcsMH1mdW5jdGlvbiBvYyhsLGMsZil7bHw9MCxjfD0wO3ZhciBwLG0sQSx3PTAsYj0wLGs9MDtyZXR1cm4gQT1hZSxhZT1hZSsxNnwwLG09QSxi''@;'; + put 'put ''PTB8ZnVuY3Rpb24gSFAobCl7dmFyIGMscCxmPTAsbT0wO3JldHVybiBmPShjPTAhPSgwfChsfD0wKSkpPzA9PSgwfChmPTB8YVtsPj4yXSkpPzE4NzM2OmY6MTg3MzYsbT0wfF9vWzYzJmFbZj4+Ml1dKGwpLHA9MHxCaVsxMjcmYVtmKzQ+PjJdXShtLDgwKSxhW3A+PjJdPWYsYVtwKzEyPj4y''@;'; + put 'put ''XT1tLGM/KGFbcCs0Pj4yXT0wPT0oMHwobT0wfGFbbCs0Pj4yXSkpPzE4NjEyOm0sbD0wPT0oMHwobD0wfGFbbCs4Pj4yXSkpPzE4NzEyOmwpOihhW3ArND4+Ml09MTg2MTIsbD0xODcxMiksYVtwKzg+PjJdPWwsZmVbcCs1Mj4+MF09MSwwfHB9KGZ8PTApLHA9MHxCaVsxMjcmYVs0KygwfGFb''@;'; + put 'put ''Yj4+Ml0pPj4yXV0oMHxhW2IrMTI+PjJdLDcyKSxhW3A+PjJdPS00JmFbcD4+Ml0sYVsodz1wKzY0fDApPj4yXT1iLGFbKGs9cCsyNHwwKT4+Ml09Yz0wfGFbYz4+Ml0sZmVbaz4+MF09MjU1JmN8OCxhW3ArNjA+PjJdPXAsZj0wfEJpWzEyNyZhW2FbYis0Pj4yXT4+Ml1dKHAsZiksYVsxNiso''@;'; + put 'put ''MHxhW3c+PjJdKT4+Ml09ZiwwfEs0KHAsMCxsLG0sMSkmJihiPTB8YVsodz1tKSs0Pj4yXSxhWyhrPXArOHwwKT4+Ml09YVt3Pj4yXSxhW2srND4+Ml09YiksTDUoaz0wfGhvKHApLDAscCksYWU9QSwwfGt9ZnVuY3Rpb24gaG8obCl7dmFyIGM9MCxmPTA7cmV0dXJuIGFbMzYrKGx8PTApPj4y''@;'; + put 'put ''XT0wfFpoKGwsMTg3OTIsMHxhWzQ1ODldKSxhW2wrNDA+PjJdPTB8WmgobCwxODc1NiwwfGFbNDU4OV0pLGM9KDB8ZGkobCkpPT0oMHxsKSxhW2wrNDQ+PjJdPTB8WmgobCxjPzE4NDA0OjE4NDQwLDB8YVs0NTg5XSksYz0oMHxkaShsKSk9PSgwfGwpLGFbbCs0OD4+Ml09MHxaaChsLGM/MTg0''@;'; + put 'put ''NzY6MTg1MTIsMHxhWzQ1ODldKSxhW2wrNTI+PjJdPTB8WmgobCwxODU0OCwwfGFbNDU4OV0pLDAhPSgwfChjPTB8azEobCkpKSYmKGY9MHxOMyhjLDApLGFbbD4+Ml09MTUmYVtsPj4yXXxmPDw0LG1pWzYzJmFbKGY9MHxhW2MrNTI+PjJdKT4+Ml1dKGYsbCwxKSwhKDY0JmZlW2MrMjQ+PjBd''@;'; + put 'put ''KSl8fFQ1KGwpLHYwKGwsbCksMHxsfWZ1bmN0aW9uIE4zKGwsYyl7dmFyIGY7cmV0dXJuIGM9MHx6bCgwfGFbKGM9Zj0yNCsoMHxhWzY0KyhsfD0wKT4+Ml0pKygoY3w9MCk8PDMpfDApPj4yXSwwfGFbYys0Pj4yXSwxLDApLGw9RG4sYVtmPj4yXT1jLGFbZis0Pj4yXT1sLERuPWwsMHxjfWZ1''@;'; + put 'put ''bmN0aW9uIEMxKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7KG09MD09KDB8KHA9MHxrMShsfD0wKSkpKSYmMCE9KDB8YVsxNisoMHxhW2FbKGM9bCs2NHwwKT4+Ml0+PjJdKT4+Ml0pPyh3aShsLGwpLEI2KGwsMCwwfGFbKG09bCs4fDApPj4yXSwwfGFbbSs0Pj4yXSksQ29bMTI3JmFbMTYrKDB8''@;'; + put 'put ''YVsoYz0wfGFbYz4+Ml0pPj4yXSk+PjJdXSgwfGFbYysxMj4+Ml0pLGM9MCk6Zj00O2Rve2lmKDQ9PSgwfGYpKXtmb3IoYz0wfHlzKGwpO2M7KWY9MHxNcyhjKSxDMShjKSxjPWY7Zm9yKGM9MHxEdChsKTtjOylmPTB8enQobCxjKSxxcihsLGMpLGM9ZjtpZihaZChsKSx3aShsLGwpLDA9PSgw''@;'; + put 'put ''fCQ0KGwsMHxhW2wrNDA+PjJdKSkmJjA9PSgwfCQ0KGwsMHxhW2wrMzY+PjJdKSkmJjA9PSgwfCQ0KGwsMHxhW2wrNDg+PjJdKSkmJjA9PSgwfCQ0KGwsMHxhW2wrNDQ+PjJdKSkmJjA9PSgwfCQ0KGwsMHxhW2wrNTI+PjJdKSkpe2lmKDY0JmZlW2wrMjQ+PjBdJiYwfHNDKGwpKXtjPS0xO2Jy''@;'; + put 'put ''ZWFrfWlmKHAyKGwpLEI2KGwsMCwwfGFbKGY9bCs4fDApPj4yXSwwfGFbZis0Pj4yXSksIW0pe3I3KHAsbCkseHQocCxsKSxjPTA7YnJlYWt9Zm9yKGM9bCs2NHwwO3A9MHxhWzQ4KyhmPTB8YVtjPj4yXSk+PjJdOyloaShsLDB8YVtwPj4yXSk7Q29bMTI3JmFbMjArKDB8YVtmKzQ+PjJdKT4+''@;'; + put 'put ''Ml1dKDB8YVtmKzE2Pj4yXSksMHxycihsKT9jPS0xOihHc1s2MyZhWyhwPTEyKygwfGFbKGM9MHxhW2M+PjJdKT4+Ml0pfDApPj4yXV0obT0wfGFbYysxMj4+Ml0sbCksR3NbNjMmYVtwPj4yXV0obSxjKSxjPTApfWVsc2UgYz0tMX19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBHbyhs''@;'; + put 'put ''KXtyZXR1cm4gMHxwdSgwfGFbNDArKGx8PTApPj4yXSl9ZnVuY3Rpb24gVjMobCl7dmFyIGM9MCxmPTA7Zm9yKGM9MCxmPTB8RHQobHw9MCk7ZjspYz0oMHxqZChsLGYsMCwxKSkrY3wwLGY9MHx6dChsLGYpO3JldHVybiAwfGN9ZnVuY3Rpb24gamQobCxjLGYscCl7dmFyIG07cmV0dXJuIGZ8''@;'; + put 'put ''PTAscHw9MCwobT0wfFNmKGx8PTAsY3w9MCkpPyhjPXA/MHxlNygwfGFbbCs0ND4+Ml0sbSszMnwwKTowLGYmJihjPSgwfGU3KDB8YVtsKzQ0Pj4yXSxtKzI4fDApKStjfDApKTpjPTAsMHxjfWZ1bmN0aW9uIGU3KGwsYyl7dmFyIGY7cmV0dXJuIENjKGx8PTAsMHxhWyhjfD0wKT4+Ml0pLGY9''@;'; + put 'put ''MHxwdShsKSxhW2M+PjJdPTB8RjMobCksMHxmfWZ1bmN0aW9uIFNjKGwpe3JldHVybiAxJmZlWzI0KyhsfD0wKT4+MF18MH1mdW5jdGlvbiB0NyhsKXtyZXR1cm4gMD09KDB8U2MobHw9MCkpfDB9ZnVuY3Rpb24gREEobCl7cmV0dXJuKDB8SnRbMjQrKGx8PTApPj4wXSk+Pj4xJjF8MH1mdW5j''@;'; + put 'put ''dGlvbiBLNChsLGMsZixwLG0pe2x8PTAsY3w9MCxwfD0wLG18PTA7dmFyIHcsQT0wLGI9MDt3PTAhPSgwfChmfD0wKSk7ZG97aWYodyl7aWYoMzchPSgwfGZlW2Y+PjBdKSYmMHwoQT0wfE8yWzEyNyZhWzQrKDB8YVs0KyhBPTB8YVtsKzY0Pj4yXSk+PjJdKT4+Ml1dKDB8YVtBKzE2Pj4yXSxj''@;'; + put 'put ''LGYscCxtKSkpYnJlYWs7KEE9MHxwQyhsLGMsZixwKSl8fChiPTUpfWVsc2UgYj01fXdoaWxlKDApO3JldHVybiA1PT0oMHxiKSYmKG0/dyYwIT0oMHwoQT0wfE8yWzEyNyZhWzQrKDB8YVs0KyhBPTB8YVtsKzY0Pj4yXSk+PjJdKT4+Ml1dKDB8YVtBKzE2Pj4yXSxjLDAscCxtKSkpJiZmdW5j''@;'; + put 'put ''dGlvbiBnQyhsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIHcsQT0wO3c9MHxNdChsfD0wLDMyKSxhWyhBPXcrMTZ8MCk+PjJdPXAsYVtBKzQ+PjJdPW0sYVt3KzI0Pj4yXT0wfHIwKGwsZiksKGM9MHxhWzU2KyhmPTB8YVsoQT1sKzY0fDApPj4yXSkrKChwPTM9PSgwfGMpPzI6''@;'; + put 'put ''Yyk8PDIpPj4yXSk/KG09YyxjPWYpOihtPTB8WmgobCwxODY0MCwwfGFbNDU4OV0pLGFbNTYrKDB8YVtBPj4yXSkrKHA8PDIpPj4yXT1tLGM9MHxhW0E+PjJdKSwoYz0wfGFbYys2OCsocDw8Mik+PjJdKXx8KGM9MHxaaChsLDE4Njc2LDB8YVs0NTg5XSksYVs2OCsoMHxhW0E+PjJdKSsocDw8''@;'; + put 'put ''Mik+PjJdPWMpLG1pWzYzJmFbbT4+Ml1dKG0sdywxKSxtaVs2MyZhW2M+PjJdXShjLHcsMSl9KGwsYyxmLDB8YVsoYj1wKT4+Ml0sMHxhW2IrND4+Ml0pOkE9MCksMHxBfWZ1bmN0aW9uIExBKGwsYyxmLHApe3JldHVybiAwfHEwWzEyNyZhWzgrKDB8YVs0KyhsPTB8YVs2NCsobHw9MCk+PjJd''@;'; + put 'put ''KT4+Ml0pPj4yXV0oMHxhW2wrMTY+PjJdLGN8PTAsZnw9MCxwfD0wKX1mdW5jdGlvbiBCNihsLGMsZixwKXtoVChsfD0wLGN8PTAsZnw9MCxwfD0wKSxSY1szMSZhWzEyKygwfGFbNCsobD0wfGFbbCs2ND4+Ml0pPj4yXSk+PjJdXSgwfGFbbCsxNj4+Ml0sYyxmLHApfWZ1bmN0aW9uIHRpKGwp''@;'; + put 'put ''e3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wO3c9YWUsYWU9YWUrMTZ8MCxBPXcsYz0wfGZ1bmN0aW9uIGFjKGwsYyxmLHApe3JldHVybiAwfChsPShsPTB8ZlQobHw9MCxjfD0wLGZ8PTAscHw9MCkpPzB8YVtsKzI0Pj4yXTowKX0oZj0wfGNyKGx8PTApLDMmYVtsPj4yXSwwfGFbKGM9bT1sKzh8''@;'; + put 'put ''MCk+PjJdLDB8YVtjKzQ+PjJdKTtkb3tpZighYyl7aWYoMHwoZj0wfGFbMTYrKDB8YVs0KyhjPTB8YVtmKzY0Pj4yXSk+PjJdKT4+Ml0pJiYwfChwPTB8cTBbMTI3JmZdKDB8YVtjKzE2Pj4yXSwzJmFbbD4+Ml0sMHxhWyhwPW0pPj4yXSwwfGFbcCs0Pj4yXSkpKXtjPXA7YnJlYWt9Mj09KDMm''@;'; + put 'put ''YVtsPj4yXXwwKT9jPTA6KHA9MHxhW20+PjJdLG09MHxhW20rND4+Ml0sYVtBPj4yXT0zNyxhWyhjPUErOHwwKT4+Ml09cCxhW2MrND4+Ml09bSxvbygxOTQ3NzMsOTY0NTYsQSksYz0xOTQ3NzMpfX13aGlsZSgwKTtyZXR1cm4gYWU9dywwfGN9ZnVuY3Rpb24gTDUobCxjLGYpe2RsWzEyNyZh''@;'; + put 'put ''WzI0KygwfGFbNCsobD0wfGFbNjQrKGx8PTApPj4yXSk+PjJdKT4+Ml1dKDB8YVtsKzE2Pj4yXSxjfD0wLGZ8PTApfWZ1bmN0aW9uIHBDKGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgYixtPTAsQT0wLHc9MDtyZXR1cm4gYj1hZSxhZT1hZSszMnwwLHc9YiwwIT0oMHwoYz0wfGFbNTYrKDB8YVs2''@;'; + put 'put ''NCsobHw9MCk+PjJdKSsoKDM9PSgwfChjfD0wKSk/MjpjKTw8Mik+PjJdKSkmJjAhPSgwfChtPTB8WnIobCxmKSkpJiYoYVt3KzI0Pj4yXT1tLDAhPSgwfChBPTB8bWlbNjMmYVtjPj4yXV0oYyx3LDQpKSkpPyh3PTB8YVs0KyhmPUErMTZ8MCk+PjJdLGFbKGM9cCk+PjJdPWFbZj4+Ml0sYVtj''@;'; + put 'put ''KzQ+PjJdPXcsYz0xKTpjPTAsYWU9YiwwfGN9ZnVuY3Rpb24gZlQobCxjLGYscCl7dmFyIG0sQTtyZXR1cm4gcHw9MCxBPWFlLGFlPWFlKzMyfDAsbT1BLChsPTB8YVs2OCsoMHxhWzY0KyhsfD0wKT4+Ml0pKygoMz09KDB8KGN8PTApKT8yOmMpPDwyKT4+Ml0pPyhhWyhjPW0rMTZ8MCk+PjJd''@;'; + put 'put ''PWZ8PTAsYVtjKzQ+PjJdPXAsbD0wfG1pWzYzJmFbbD4+Ml1dKGwsbSw0KSk6bD0wLGFlPUEsMHxsfWZ1bmN0aW9uIGhUKGwsYyxmLHApe3ZhciBtO3JldHVybihjPTB8ZlQobHw9MCxtPTM9PSgwfChjfD0wKSk/MjpjLGZ8PTAscHw9MCkpPyhtaVs2MyZhWyhmPTB8YVs1NisoMHxhWyhwPWwr''@;'; + put 'put ''NjR8MCk+PjJdKSsobTw8Mik+PjJdKT4+Ml1dKGYsYywyKSxtaVs2MyZhWyhwPTB8YVs2OCsoMHxhW3A+PjJdKSsobTw8Mik+PjJdKT4+Ml1dKHAsYywyKSxlMChsLDB8YVtjKzI0Pj4yXSkseHQobCxjKSxjPTEpOmM9MCwwfGN9ZnVuY3Rpb24gWmQobCl7YVs0Njk0Ml09bHw9MCxaMyg1Niso''@;'; + put 'put ''MHxhWyhsPWwrNjR8MCk+PjJdKXwwKSxaMyg2OCsoMHxhW2w+PjJdKXwwKX1mdW5jdGlvbiBaMyhsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MDtmb3IoYz0wOzMhPSgwfGMpOykwfChwPTB8YVsoZj1sKyhjPDwyKXwwKT4+Ml0pJiYoTmwocCksYVtmPj4yXT0wKSxjPWMrMXwwfWZ1bmN0aW9uIHdl''@;'; + put 'put ''KGwpe3ZhciBjLGYscDtyZXR1cm4gbHw9MCxjPWFlLGFlPWFlKzMyfDAscD1jKzEyfDAsZj1jLGFbNDY4Ml09YVs0Njc5XSxhWzQ2ODNdPWFbNDY4MF0sYVtwPj4yXT1sLGFbcCs0Pj4yXT0wfFVvKGwpLGFbcCs4Pj4yXT0wLGFbZj4+Ml09MTg3MzYsYVtmKzQ+PjJdPTE4NjEyLGFbZis4Pj4y''@;'; + put 'put ''XT0xODcyNCxsPTB8UVAocCxmKSxmdW5jdGlvbiBwbyhsKXthWzQ2OTY2XT1sfD0wLGFbNDcyNV09MX0oMCksYWU9YywwfGx9ZnVuY3Rpb24gTXQobCxjKXt2YXIgZjtyZXR1cm4gZj1hZSxhZT1hZSsxNnwwLChsPTB8QmlbMTI3JmFbNCsoMHxhWyhsPTB8YVs2NCsobHw9MCk+PjJdKT4+Ml0p''@;'; + put 'put ''Pj4yXV0oMHxhW2wrMTI+PjJdLGN8PTApKXx8JHIoMSw5NjQ2MixmKSxhZT1mLDB8bH1mdW5jdGlvbiB4dChsLGMpe2x8PTAsMHwoY3w9MCkmJkdzWzYzJmFbMTIrKDB8YVsobD0wfGFbbCs2ND4+Ml0pPj4yXSk+PjJdXSgwfGFbbCsxMj4+Ml0sYyl9ZnVuY3Rpb24gQ24obCxjLGYpe3JldHVy''@;'; + put 'put ''biBsfD0wLGZ8PTAsYVs0NjU2NF09Y3w9MCxhWzQ2NTY1XT1mLGFbNDY5NDddPTE4NjI0OCwwfCgobD0wfG1pWzYzJmFbKGw9MHxhW2wrNDA+PjJdKT4+Ml1dKGwsMTg3NzcyLDQpKT8wfGFbbCsxNj4+Ml06MCl9ZnVuY3Rpb24gRHQobCl7cmV0dXJuIDB8KChsPTB8bWlbNjMmYVsobD0wfGFb''@;'; + put 'put ''MzYrKGx8PTApPj4yXSk+PjJdXShsLDAsMTI4KSk/MHxhW2wrMTY+PjJdOjApfWZ1bmN0aW9uIHp0KGwsYyl7dmFyIGY9MDtyZXR1cm4gMHwoMCE9KDB8KGM9MHxTZihsfD0wLGN8PTApKSkmJjAhPSgwfChmPTB8bWlbNjMmYVsoZj0wfGFbbCszNj4+Ml0pPj4yXV0oZixjLDgpKSk/MHxhW2Yr''@;'; + put 'put ''MTY+PjJdOjApfWZ1bmN0aW9uIFBuKGwpe3JldHVybiAwfCgobD0wfG1pWzYzJmFbKGw9MHxhWzM2KyhsfD0wKT4+Ml0pPj4yXV0obCwwLDI1NikpPzB8YVtsKzE2Pj4yXTowKX1mdW5jdGlvbiBUbihsLGMpe3ZhciBmPTA7cmV0dXJuIDB8KDAhPSgwfChjPTB8U2YobHw9MCxjfD0wKSkpJiYw''@;'; + put 'put ''IT0oMHwoZj0wfG1pWzYzJmFbKGY9MHxhW2wrMzY+PjJdKT4+Ml1dKGYsYywxNikpKT8wfGFbZisxNj4+Ml06MCl9ZnVuY3Rpb24gT24obCxjLGYscCl7cHw9MDt2YXIgbT0wLEE9MDttPTB8Q24obHw9MCxjfD0wLGZ8PTApO2Rve2lmKDAhPSgwfHApJjA9PSgwfG0pKXtpZigoMHwobT0wfGRp''@;'; + put 'put ''KGwpKSkhPSgwfGwpJiYwfChBPTB8Q24obSxjLGYpKSl7V24obCxBLDEpLG09QTticmVha30wfExBKGwsMSxjLGYpPyhhaShsLG09MHxNcihsLGMsZixtPTB8TjMobCwxKSxEbikpLHlyKGwsbSkpOm09MH19d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiBXbihsLGMsZil7Y3w9MCxmfD0w''@;'; + put 'put ''O3ZhciBwPTA7aWYoKDB8KHA9MHxkaShsfD0wKSkpPT0oMHxhW2MrMjQ+PjJdKSl7aWYoMCE9KDB8ZikmMD09KDB8KHA9MHxDbihsLDB8YVsocD1jKzh8MCk+PjJdLDB8YVtwKzQ+PjJdKSkpKXtpZihwPTB8azEobCkpcmV0dXJuIGFyKGwsZj0wfFduKHAsYyxmKSksMHxmO3A9MH19ZWxzZSBw''@;'; + put 'put ''PTA7cmV0dXJuIDB8cH1mdW5jdGlvbiBNcihsLGMsZixwLG0pe3ZhciBBLHc7cmV0dXJuIGN8PTAsZnw9MCxwfD0wLG18PTAsbT0wfE10KGx8PTAsNjQpLEE9MHxhW20+PjJdLGFbKHc9bSs4fDApPj4yXT1jLGFbdys0Pj4yXT1mLGFbbT4+Ml09MTImQXxwPDw0fDEsYVttKzI0Pj4yXT0wfGRp''@;'; + put 'put ''KGwpLDY0JmZlWzI0KygwfGRpKGwpKT4+MF0mJmgwKG0sOTY0MDQsMTYsMCksMHxtfWZ1bmN0aW9uIGFpKGwsYyl7bHw9MCxjfD0wO2Rve2FyKGwsYyksbD0wfGsxKGwpfXdoaWxlKDAhPSgwfGwpKX1mdW5jdGlvbiB5cihsLGMpe2N8PTAsNjQmZmVbMjQrKDB8ZGkobHw9MCkpPj4wXSYmbkMo''@;'; + put 'put ''bCxjKSx2MChsLGMpfWZ1bmN0aW9uIGFyKGwsYyl7Y3w9MDt2YXIgZixwPTA7cHUoMHxhWyhwPTQwKyhsfD0wKXwwKT4+Ml0pLGY9KDB8ZGkobCkpPT0oMHxsKT9jKzI4fDA6MHxNdChsLDM2KSxhW2YrMTY+PjJdPWMsbWlbNjMmYVsocD0wfGFbcD4+Ml0pPj4yXV0ocCxmLDEpLG1pWzYzJmFb''@;'; + put 'put ''KHA9MHxhW2wrMzY+PjJdKT4+Ml1dKHAsZiwxKX1mdW5jdGlvbiBHcihsLGMsZil7Y3w9MCxmfD0wO3ZhciBBLGsscD0wLG09MCx3PTAsYj0wO3JldHVybiBrPWFlLGFlPWFlKzE2fDAsQT1rLHc9MHxkaShsfD0wKSwwfEs0KGwsMSxjLEEsMCk/KHA9MHxDbihsLDB8YVsocD1BKT4+Ml0sMHxh''@;'; + put 'put ''W3ArND4+Ml0pKXx8KDA9PSgwfGYpfCgwfHcpPT0oMHxsKXx8MD09KDB8KG09MHxDbih3LDB8YVsobT1BKT4+Ml0sMHxhW20rND4+Ml0pKSk/Yj02OnA9MHxXbihsLG0sMSkpOmI9Niw2PT0oMHxiKSYmKDAhPSgwfGYpJiYwIT0oMHxLNChsLDEsYyxBLDEpKT8oYWkobCxwPTB8TXIobCx3PTB8''@;'; + put 'put ''YVsoYj1BKT4+Ml0sYj0wfGFbYis0Pj4yXSxwPTB8TjMobCwxKSxEbikpLHlyKGwscCksTDUobCwxLHApKTpwPTApLGFlPWssMHxwfWZ1bmN0aW9uIHFyKGwsYyl7dmFyIHAsZj0wLG09MDtpZigwfENuKGx8PTAsMHxhWyhmPXA9OCsoY3w9MCl8MCk+PjJdLDB8YVtmKzQ+PjJdKSl7aWYoKDB8''@;'; + put 'put ''ZGkobCkpPT0oMHxsKSl7Zm9yKGY9MHxTcyhsLGMpO2Y7KW09MHxIcyhsLGYsYykscW0obCxmKSxmPW07NjQmZmVbbCsyND4+MF0mJmZ1bmN0aW9uIE82KGwpe3ZhciBjOzB8KGM9MHxpYyhsfD0wKSkmJihrMihsLGMpLEhpKGwsOTY0MDQpKX0oYyksd2kobCxjKSxwMihjKSxCNihsLDEsMHxh''@;'; + put 'put ''WyhtPXApPj4yXSwwfGFbbSs0Pj4yXSl9MHx5QyhsLGMsNTksMCwwKT9mPS0xOigoMHxkaShsKSk9PSgwfGwpJiZ4dChsLGMpLGY9MCl9ZWxzZSBmPS0xO3JldHVybiAwfGZ9ZnVuY3Rpb24gb2kobCxjKXtsfD0wO3ZhciBwLHcsZj0wLG09MCxBPTA7dz1hZSxhZT1hZSsxNnwwLHA9dyxmPTB8''@;'; + put 'put ''YVsoY3w9MCk+PjJdO2Rve2lmKCEoMyZmKSl7aWYoKDB8azEoYykpPT0oMHxsKSl7Zj0wfGFbYz4+Ml0sQT01O2JyZWFrfSRyKDEsOTY0ODgscCksbT0tMTticmVha31BPTV9d2hpbGUoMCk7ZTpkb3tpZig1PT0oMHxBKSlzd2l0Y2goMyZmKXtjYXNlIDE6bT0wfHFyKGwsYyk7YnJlYWsgZTtj''@;'; + put 'put ''YXNlIDI6Y2FzZSAzOm09MHxxbShsLGMpO2JyZWFrIGU7Y2FzZSAwOm09MHxDMShjKTticmVhayBlfX13aGlsZSgwKTtyZXR1cm4gYWU9dywwfG19ZnVuY3Rpb24gY3IobCl7dmFyIGM9MDtzd2l0Y2goMyZhWyhsfD0wKT4+Ml0pe2Nhc2UgMjpjYXNlIDM6Yz0wfGFbMjQrKDB8YVtsKzQwPj4y''@;'; + put 'put ''XSk+PjJdO2JyZWFrO2Nhc2UgMTpjPTB8YVtsKzI0Pj4yXTticmVhaztjYXNlIDA6Yz1sfXJldHVybiAwfGN9ZnVuY3Rpb24gZGkobCl7dmFyIGM9MDtzd2l0Y2goMyZhWyhsfD0wKT4+Ml0pe2Nhc2UgMjpjYXNlIDM6Yz0yNCsoMHxhW2wrNDA+PjJdKXwwO2JyZWFrO2Nhc2UgMTpjPWwrMjR8''@;'; + put 'put ''MDticmVhaztjYXNlIDA6Yz1sKzYwfDB9cmV0dXJuIDB8YVtjPj4yXX1mdW5jdGlvbiB2MChsLGMpe3ZhciBmO2N8PTAsMHxmZVs1MisoZj0wfGFbNjQrKGx8PTApPj4yXSk+PjBdP1VpKGwsYywwfGFbZis0OD4+Ml0pOk4wKGwsYywxMDAsMCl9ZnVuY3Rpb24gVWkobCxjLGYpe2x8PTAsY3w9''@;'; + put 'put ''MCxmfD0wO3ZhciBwPTA7ZTpkb3tpZigwfGYpe3N3aXRjaChVaShsLGMsMHxhW2YrOD4+Ml0pLDMmYVtjPj4yXSl7Y2FzZSAwOnA9MHxhW2Y+PjJdO2JyZWFrO2Nhc2UgMTpwPTEyKygwfGFbZj4+Ml0pfDA7YnJlYWs7Y2FzZSAyOnA9MjQrKDB8YVtmPj4yXSl8MDticmVhaztkZWZhdWx0OmJy''@;'; + put 'put ''ZWFrIGV9MHwocD0wfGFbcD4+Ml0pJiZkbFsxMjcmcF0obCxjLDB8YVtmKzQ+PjJdKX19d2hpbGUoMCl9ZnVuY3Rpb24gdG8obCxjLGYpe3ZhciBwO2N8PTAsZnw9MCwwfGZlWzUyKyhwPTB8YVs2NCsobHw9MCk+PjJdKT4+MF0/QTAobCxjLGYsMHxhW3ArNDg+PjJdKTpOMChsLGMsMTAxLGYp''@;'; + put 'put ''fWZ1bmN0aW9uIEEwKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MDtlOmRve2lmKDB8cCl7c3dpdGNoKEEwKGwsYyxmLDB8YVtwKzg+PjJdKSwzJmFbYz4+Ml0pe2Nhc2UgMDptPTQrKDB8YVtwPj4yXSl8MDticmVhaztjYXNlIDE6bT0xNisoMHxhW3A+PjJdKXwwO2JyZWFr''@;'; + put 'put ''O2Nhc2UgMjptPTI4KygwfGFbcD4+Ml0pfDA7YnJlYWs7ZGVmYXVsdDpicmVhayBlfTB8KG09MHxhW20+PjJdKSYmUmNbMzEmbV0obCxjLDB8YVtwKzQ+PjJdLGYpfX13aGlsZSgwKX1mdW5jdGlvbiB3aShsLGMpe3ZhciBmO2N8PTAsMHxmZVs1MisoZj0wfGFbNjQrKGx8PTApPj4yXSk+PjBd''@;'; + put 'put ''P1lyKGwsYywwfGFbZis0OD4+Ml0pOk4wKGwsYywxMDIsMCl9ZnVuY3Rpb24gWXIobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTA7ZTpkb3tpZigwfGYpe3N3aXRjaChZcihsLGMsMHxhW2YrOD4+Ml0pLDMmYVtjPj4yXSl7Y2FzZSAwOnA9OCsoMHxhW2Y+PjJdKXwwO2JyZWFrO2Nhc2Ug''@;'; + put 'put ''MTpwPTIwKygwfGFbZj4+Ml0pfDA7YnJlYWs7Y2FzZSAyOnA9MzIrKDB8YVtmPj4yXSl8MDticmVhaztkZWZhdWx0OmJyZWFrIGV9MHwocD0wfGFbcD4+Ml0pJiZkbFsxMjcmcF0obCxjLDB8YVtmKzQ+PjJdKX19d2hpbGUoMCl9ZnVuY3Rpb24gaGkobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09''@;'; + put 'put ''MDtmPTB8YVsocD00OCsoMHxhWzY0KyhsfD0wKT4+Ml0pfDApPj4yXTtlOmRve2lmKGYpe2lmKCgwfGFbZj4+Ml0pIT0oMHxjKSl7Zm9yKDs7KXtpZighZil7Zj0tMTticmVhayBlfWlmKCgwfGFbKG09MHxhWyhwPWYrOHwwKT4+Ml0pPj4yXSk9PSgwfGMpKWJyZWFrO2Y9bX1tJiYoYVtwPj4y''@;'; + put 'put ''XT1hW20rOD4+Ml0pfWVsc2UgYVtwPj4yXT1hW2YrOD4+Ml07eHQobCxmKSxmPTB9ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gTnIobCxjKXt2YXIgZjtjfD0wLGY9MHxkaShsfD0wKTtlOmRve2lmKCgwfGYpPT0oMHxkaShjKSkpc3dpdGNoKDMmYVtjPj4yXSl7Y2Fz''@;'; + put 'put ''ZSAwOmZvcig7Oyl7aWYoKDB8Yyk9PSgwfGwpKXtjPTE7YnJlYWsgZX1pZighKGM9MHxrMShjKSkpe2M9MDticmVha319YnJlYWs7Y2FzZSAxOmM9MCE9KDB8T24obCwwfGFbKGM9Yys4fDApPj4yXSwwfGFbYys0Pj4yXSwwKSk7YnJlYWsgZTtkZWZhdWx0OmM9MCE9KDB8VmQobCxjLDApKTti''@;'; + put 'put ''cmVhayBlfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiAxJmN8MH1mdW5jdGlvbiBraShsKXtyZXR1cm4gMyZhWyhsfD0wKT4+Ml18MH1mdW5jdGlvbiBOMChsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgQSx3LGIsbT0wO3N3aXRjaChiPWFlLGFlPWFlKzE2fDAsdz1iLEE9MHxoMChsfD0w''@;'; + put 'put ''LDk2NTEyLDQ0LDApLDB8Zil7Y2FzZSAxMDA6MHxpbyhtPTB8dDAoQSxjLDEwMCksYyl8fG9hKG0sbCxjLHApO2JyZWFrO2Nhc2UgMTAxOjA9PSgwfGlvKDB8dDAoQSxjLDEwMCksYykpJiYwPT0oMHxpbygwfHQwKEEsYywxMDIpLGMpKSYmMD09KDB8aW8obT0wfHQwKEEsYywxMDEpLGMpKSYm''@;'; + put 'put ''b2EobSxsLGMscCk7YnJlYWs7Y2FzZSAxMDI6JDAoMHx0MChBLGMsMTAwKSxjKSwkMCgwfHQwKEEsYywxMDEpLGMpLDB8aW8obT0wfHQwKEEsYywxMDIpLGMpfHxvYShtLGwsYyxwKTticmVhaztkZWZhdWx0OiRyKDEsOTY1MjQsdyl9YWU9Yn1mdW5jdGlvbiB0MChsLGMsZil7bHw9MCxjfD0w''@;'; + put 'put ''LGZ8PTA7dmFyIHAsQSxtPTA7QT1hZSxhZT1hZSsxNnwwLHA9QTtlOmRve3N3aXRjaCgzJmFbYz4+Ml0pe2Nhc2UgMDpzd2l0Y2goMHxmKXtjYXNlIDEwMDpmPWwrOHwwO2JyZWFrIGU7Y2FzZSAxMDE6Zj1sKzIwfDA7YnJlYWsgZTtjYXNlIDEwMjpmPWwrMzJ8MDticmVhayBlO2RlZmF1bHQ6''@;'; + put 'put ''bT0xNDticmVhayBlfWNhc2UgMTpzd2l0Y2goMHxmKXtjYXNlIDEwMDpmPWwrMTJ8MDticmVhayBlO2Nhc2UgMTAxOmY9bCsyNHwwO2JyZWFrIGU7Y2FzZSAxMDI6Zj1sKzM2fDA7YnJlYWsgZTtkZWZhdWx0Om09MTQ7YnJlYWsgZX1jYXNlIDI6c3dpdGNoKDB8Zil7Y2FzZSAxMDA6Zj1sKzE2''@;'; + put 'put ''fDA7YnJlYWsgZTtjYXNlIDEwMTpmPWwrMjh8MDticmVhayBlO2Nhc2UgMTAyOmY9bCs0MHwwO2JyZWFrIGU7ZGVmYXVsdDptPTE0O2JyZWFrIGV9ZGVmYXVsdDptPTE0fX13aGlsZSgwKTtyZXR1cm4gMTQ9PSgwfG0pJiYoJHIoMSw5NjU1OCxwKSxmPTApLChsPTB8YVtmPj4yXSl8fChsPTB8''@;'; + put 'put ''WmgobD0wfGNyKGMpLDE4ODI4LDB8YVs0NTg5XSksYVtmPj4yXT1sKSxhZT1BLDB8bH1mdW5jdGlvbiBpbyhsLGMpe3ZhciBmLHAsbTtyZXR1cm4gbHw9MCxmPWFlLGFlPWFlKzMyfDAscD1mLG09MHxOYShjfD0wKSxhWyhjPXArOHwwKT4+Ml09bSxhW2MrND4+Ml09RG4sYz0wfG1pWzYzJmFb''@;'; + put 'put ''bD4+Ml1dKGwscCw0KSxhZT1mLDB8Y31mdW5jdGlvbiBvYShsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgbSxBPTA7cmV0dXJuIG09MHxNdCgwfGNyKGZ8PTApLDMyKSxhW20rMjA+PjJdPWYsQT0wfE5hKGYpLGFbKGY9bSs4fDApPj4yXT1BLGFbZis0Pj4yXT1EbixhW20rMTY+PjJdPWMs''@;'; + put 'put ''MHxwJiYoQT0wfE10KGMsOCksYVttKzI0Pj4yXT1BLGFbQT4+Ml09cCksbWlbNjMmYVtsPj4yXV0obCxtLDEpLDB8bX1mdW5jdGlvbiAkMChsLGMpezB8KGM9MHxpbyhsfD0wLGN8PTApKSYmbWlbNjMmYVtsPj4yXV0obCxjLDIpfWZ1bmN0aW9uIE5hKGwpe3JldHVybiBEbj0wfGFbNCsobD04''@;'; + put 'put ''KyhsfD0wKXwwKT4+Ml0sMHxhW2w+PjJdfWZ1bmN0aW9uIGFvKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIEEsdyxrLHA9MCxtPTAsYj0wO2ZvcihrPWFlLGFlPWFlKzE2fDAsdz1rLHA9QT0wfGFbMTYrKGx8PTApPj4yXTs7KXtpZighcCl7cD0wO2JyZWFrfWlmKCgwfChtPTB8YVtwPj4yXSkpPT0o''@;'; + put 'put ''MHxjKSl7Yj03O2JyZWFrfWlmKCgwfGZlW2M+PjBdKT09KDB8ZmVbbT4+MF0pJiYwPT0oMHxqaShjLG0pKSl7Yj03O2JyZWFrfWlmKCgwfChwPTB8YVtwKzQ+PjJdKSk9PSgwfEEpKXtwPTA7YnJlYWt9fWRve2lmKDc9PSgwfGIpKXtpZighKDQmYVtsPj4yXSkpe2lmKCgwfHApPT0oMHxBKSYw''@;'; + put 'put ''PT0oMHxmKSl7cD1BO2JyZWFrfXgwKGwscCxmKTticmVha31mJiYoKDB8QSk9PSgwfHApP3A9QTokcigxLDk2NTgzLHcpKX19d2hpbGUoMCk7cmV0dXJuIGFlPWssMHxwfWZ1bmN0aW9uIHgwKGwsYyxmKXtmfD0wO3ZhciBwPTA7YVsxNisobHw9MCk+PjJdPWN8PTAsYVtsPj4yXT0tNSYocD0w''@;'; + put 'put ''fGFbbD4+Ml0pfChmPWY8PDImNCksMiZwfDAmJihhW2wrKDQ4KihwPTM9PSgzJnB8MCk/LTE6MSl8MCkrMTY+PjJdPWMsYVsocD1sKyg0OCpwfDApfDApPj4yXT0tNSZhW3A+PjJdfGYpfWZ1bmN0aW9uIGgwKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtLHcsQT0wO3c9MHxjcihsfD0w''@;'; + put 'put ''KSxtPTB8YW8obCxjLDApO2U6ZG97aWYoMCE9KDB8ZikmMD09KDB8bSkpc3dpdGNoKGY9MHxNdCh3LGYpLGFbZj4+Ml09MHxyMCh3LGMpLDMmYVtsPj4yXSl7Y2FzZSAwOmNhc2UgMTpjYXNlIDI6Y2FzZSAzOmpyKGwsZiksQT1mO2JyZWFrIGV9ZWxzZSBBPW19d2hpbGUoMCk7cmV0dXJuIDB8''@;'; + put 'put ''cCYmYW8obCxjLDEpLDB8QX1mdW5jdGlvbiBqcihsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wO2Y9MHxhWzE2KyhsfD0wKT4+Ml07ZG97aWYoZil7aWYoKDB8KG09MHxhWyhwPWYrNHwwKT4+Ml0pKT09KDB8Zikpe2FbcD4+Ml09YyxwPWYsZj1jO2JyZWFrfWFbYys0Pj4yXT1tLHA9YzticmVh''@;'; + put 'put ''a31wPWMsZj1jfXdoaWxlKDApO2FbZis0Pj4yXT1wLDQmYVtsPj4yXXx8eDAobCxjLDApfWZ1bmN0aW9uIEhpKGwsYyl7dmFyIGYscDtyZXR1cm4gY3w9MCxwPTB8Y3IobHw9MCksKGY9MHxhbyhsLGMsMCkpPyhmdW5jdGlvbiB2byhsLGMpe2N8PTA7dmFyIGY9MDtsPTB8YVsxNisobHw9MCk+''@;'; + put 'put ''PjJdO2Rve2w9MHxhWyhmPWwrNHwwKT4+Ml19d2hpbGUoKDB8bCkhPSgwfGMpKTthW2Y+PjJdPWFbYys0Pj4yXX0obCxmKSwzJmFbbD4+Ml0/KHlDKDB8ZGkocCksbCw2MCxmLDApLGM9Zik6KHhvKHAsbCxmKSxjPWYpLGUwKHAsMHxhW2Y+PjJdKSx4dChwLGMpLGM9MCk6Yz0tMSwwfGN9ZnVu''@;'; + put 'put ''Y3Rpb24geG8obCxjLGYpe2x8PTAsKDB8YVsxNisoY3w9MCk+PjJdKT09KDB8KGZ8PTApKSYmeDAoYywoMHwobD0wfGFbZis0Pj4yXSkpPT0oMHxmKT8wOmwsMCl9ZnVuY3Rpb24gJGkobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxtfD0wO3ZhciB3LEE9MDt3PShBPSgwfChwfD0wKSk+LTEp''@;'; + put 'put ''P3A6MC1wfDA7ZTpkb3tzd2l0Y2goMHxjKXtjYXNlIDA6aWYoaDAobCxmLHcsbSksIUEpZm9yKGM9MHx5cyhsKTs7KXtpZighYylicmVhayBlOyRpKGMsMCxmLHAsbSksYz0wfE1zKGMpfWJyZWFrO2Nhc2UgMzpjYXNlIDI6Y2FzZSAxOmZvcihwPTE9PSgwfGMpLGM9MHxEdChsKTs7KXtpZigh''@;'; + put 'put ''YylicmVhayBlO3Q6ZG97aWYocCloMChjLGYsdyxtKTtlbHNlIGZvcihBPTB8dzAobCxjKTs7KXtpZighQSlicmVhayB0O2gwKEEsZix3LG0pLEE9MHxTMChsLEEpfX13aGlsZSgwKTtjPTB8enQobCxjKX19fXdoaWxlKDApfWZ1bmN0aW9uIGwyKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIg''@;'; + put 'put ''cD0wLG09MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMDp5QyhsLGwsNjEsZiwxKTticmVhaztjYXNlIDM6Y2FzZSAyOmNhc2UgMTpmb3IobT0xPT0oMHxjKSxwPTB8RHQobCk7Oyl7aWYoIXApYnJlYWsgZTt0OmRve2lmKG0pSGkocCxmKTtlbHNlIGZvcihjPTB8dzAobCxwKTs7KXtpZighYyli''@;'; + put 'put ''cmVhayB0O0hpKGMsZiksYz0wfFMwKGwsYyl9fXdoaWxlKDApO3A9MHx6dChsLHApfX19d2hpbGUoMCl9ZnVuY3Rpb24gcDIobCl7dmFyIGMsZixwPTA7aWYoZj0wfGNyKGx8PTApLDB8KGw9MHxhWyhjPWwrMTZ8MCk+PjJdKSlkb3twPWwsbD0wfGFbbCs0Pj4yXSxlMChmLDB8YVtwPj4yXSks''@;'; + put 'put ''eHQoZixwKX13aGlsZSgoMHxsKSE9KDB8YVtjPj4yXSkpO2FbYz4+Ml09MH1mdW5jdGlvbiBycihsKXtyZXR1cm4gMHwkNChsfD0wLDB8SXIobCkpfWZ1bmN0aW9uIElyKGwpe3ZhciBmLGM9MDtyZXR1cm4oYz0wfGFbKGY9KGx8PTApPzIwKygwfGFbbCs2ND4+Ml0pfDA6MTg3ODQ0KT4+Ml0p''@;'; + put 'put ''fHwoYz0wfFpoKGwsMTg4NjQsMHxhWzQ1ODldKSxhW2Y+PjJdPWMsYVsobD0xODYzMTIpPj4yXT0tMjE0NzQ4MzY0OCxhW2wrND4+Ml09MCxhWyhsPTE4NjMyMCk+PjJdPTIxNDc0ODM2NDcsYVtsKzQ+PjJdPS0xKSwwfGN9ZnVuY3Rpb24gWnIobCxjKXtyZXR1cm4gY3w9MCwwfGZ1bmN0aW9u''@;'; + put 'put ''IHFpKGwsYyl7cmV0dXJuIDB8KGw9KGw9MHxyaShsfD0wLGN8PTApKT8wfGFbbCsxNj4+Ml06MCl9KDB8SXIobHw9MCksYyl9ZnVuY3Rpb24gcmkobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLGY9YWUsYWU9YWUrMzJ8MCxhWyhwPWYpKzE2Pj4yXT1jfD0wLGM9MHxtaVs2MyZhW2w+PjJdXShs''@;'; + put 'put ''LHAsNCksYWU9ZiwwfGN9ZnVuY3Rpb24gcjAobCxjKXtsfD0wO3ZhciBmPTAscD0wO3JldHVybihjfD0wKT8oKGY9MHxyaShwPTB8SXIobCksYykpPyhjPTB8emwoMHxhWyhjPXA9Zis4fDApPj4yXSwwfGFbYys0Pj4yXSwxLDApLGFbcD4+Ml09YyxhW3ArND4+Ml09RG4pOihmPTI0KygwfFVv''@;'; + put 'put ''KGMpKXwwLGY9bD8wfE10KGwsZik6MHxCMChmKSxhWyhsPWYrOHwwKT4+Ml09MSxhW2wrND4+Ml09MCxpZChsPWYrMjB8MCxjKSxhW2YrMTY+PjJdPWwsbWlbNjMmYVtwPj4yXV0ocCxmLDEpKSxmPTB8YVtmKzE2Pj4yXSk6Zj0wLDB8Zn1mdW5jdGlvbiBlMChsLGMpe2x8PTA7dmFyIGY9MCxw''@;'; + put 'put ''PTAsbT0wLEE9MDtyZXR1cm4gMCE9KDB8KGN8PTApKSYmMCE9KDB8KHA9MHxyaShmPTB8SXIobCksYykpKT8oKDB8YVtwKzE2Pj4yXSk9PSgwfGMpJiYoQT0wfHpsKDB8YVsoQT1jPXArOHwwKT4+Ml0sMHxhW0ErND4+Ml0sLTEsLTEpLG09RG4sYVtjPj4yXT1BLGFbYys0Pj4yXT1tLDA9PSgw''@;'; + put 'put ''fEEpJjA9PSgwfG0pfDA9PSgwfGFbKGM9MTg2MzIwKT4+Ml0pJjA9PSgwfGFbYys0Pj4yXSkpJiZmdW5jdGlvbiBVbmUobCxjLGYpe2N8PTAsZnw9MCxhWzQ2OTg0XT1sfD0wLG1pWzYzJmFbYz4+Ml1dKGMsZiwyKX0obCxmLHApLGw9MCk6bD0tMSwwfGx9ZnVuY3Rpb24gT28obCl7cmV0dXJu''@;'; + put 'put ''IDB8KGw9KGx8PTApP2FbNDY1NzhdJmFbKGw9bCstMTJ8MCk+PjJdOjApfWZ1bmN0aW9uIGswKGwpe3ZhciBjPTAsZj0wLHA9MDswfChsfD0wKSYmKGM9YVs0KyhwPWw9bCstMTJ8MCk+PjJdfGFbNCsoZj0xODYzMTIpPj4yXSxhW2w+PjJdPWFbcD4+Ml18YVtmPj4yXSxhW2wrND4+Ml09Yyl9''@;'; + put 'put ''ZnVuY3Rpb24gUWwoKXt2YXIgbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wOzB8YVs0Njk3MF18fChhWzQ2OTcwXT0xLDB8YVs0Njk3MV18fChhWzQ2OTcxXT0xKSwwfGFbNDY5NjJdfHwoYVs0Njk2Ml09YVsxNTY0N10pLDB8YVs0Njk2M118fChhWzQ2OTYzXT1hWzE1''@;'; + put 'put ''Njc5XSksMCE9KDB8KHc9MHxhWzQ2OTcyXSkpJiYwIT0oMHxhW3c+PjJdKXx8KEFsKCksdz0wfCQyKDB8YVs0Njk2Ml0sMTYzODQpLGFbYVs0Njk3Ml0+PjJdPXcpLHEyKCkpO2U6Zm9yKDs7KXtmZVsoQT0wfGFbNDY5NzNdKT4+MF09MHxmZVsxOTQ4MDVdLGw9KDB8YVsyOCsoMHxhW2FbNDY5''@;'; + put 'put ''NzJdPj4yXSk+PjJdKSsoMHxhWzQ2OTcxXSl8MCxjPUE7dDpmb3IoOzspe2ZvcihwPWM7Oyl7Yz0wfGFbMTg5MDQrKEp0W3A+PjBdPDwyKT4+Ml0sMHxydFs2Mzg1NisobDw8MSk+PjFdJiYoYVs0Njk3NF09bCxhWzQ2OTc1XT1wKTtuOmZvcig7Oyl7Zj0yNTUmYztkb3tpZigoMHxsKT09KDB8''@;'; + put 'put ''cnRbNjQyNTIrKChjPWYrKDB8cnRbNjQwNDIrKGw8PDEpPj4xXSl8MCk8PDEpPj4xXSkpYnJlYWsgbjtsPSh3PTB8cnRbNjQ3ODgrKGw8PDEpPj4xXSk8PDE2Pj4xNn13aGlsZSh3PDwxNj4+MTY8PTkyKTtjPTB8YVsxOTkyOCsoZjw8Mik+PjJdfWlmKGw9MHxydFs2NDk5OCsoYzw8MSk+PjFd''@;'; + put 'put ''LGM9cCsxfDAsMjE5PT0oMHxydFs2NDA0MisobDw8MSk+PjFdKSlicmVhaztwPWN9bjpmb3IoOzspe3c9QTtyOmZvcig7Oyl7KGw9MHxydFs2Mzg1NisobDw8MSk+PjFdKTw8MTY+PjE2P2w9bDw8MTY+PjE2OihsPTB8cnRbNjM4NTYrKGFbNDY5NzRdPDwxKT4+MV0sYz0wfGFbNDY5NzVdKSxh''@;'; + put 'put ''WzQ2OTY0XT1BLGFbNDY5NjVdPShtPWMpLXcsZmVbMTk0ODA1XT0wfGZlW2M+PjBdLGZlW2M+PjBdPTAsYVs0Njk3M109YztpOmZvcig7Oyl7c3dpdGNoKDB8bCl7Y2FzZSAxOms9Mjc7YnJlYWsgZTtjYXNlIDEyOms9NTM7YnJlYWsgZTtjYXNlIDEzOms9NTU7YnJlYWsgZTtjYXNlIDE0Oms9''@;'; + put 'put ''NTc7YnJlYWsgZTtjYXNlIDE1Oms9NjE7YnJlYWsgZTtjYXNlIDE2Oms9NjU7YnJlYWsgZTtjYXNlIDE3Oms9Njc7YnJlYWsgZTtjYXNlIDE4Oms9Njk7YnJlYWsgZTtjYXNlIDE5Oms9NzI7YnJlYWsgZTtjYXNlIDIwOms9NzU7YnJlYWsgZTtjYXNlIDIxOms9Nzg7YnJlYWsgZTtjYXNlIDIz''@;'; + put 'put ''Oms9ODY7YnJlYWsgZTtjYXNlIDMzOms9MTE4O2JyZWFrIGU7Y2FzZSAzOTpjYXNlIDM4OmNhc2UgMzc6Y2FzZSAzNjpiPTA7YnJlYWsgZTtjYXNlIDI6az0yOTticmVhayB0O2Nhc2UgMzprPTMyO2JyZWFrIHQ7Y2FzZSA0Oms9MzU7YnJlYWsgdDtjYXNlIDU6az0zNzticmVhayB0O2Nhc2Ug''@;'; + put 'put ''NjprPTM5O2JyZWFrIHQ7Y2FzZSA3Oms9NDI7YnJlYWsgdDtjYXNlIDg6az00NDticmVhayB0O2Nhc2UgOTprPTQ3O2JyZWFrIHQ7Y2FzZSAxMDprPTQ5O2JyZWFrIHQ7Y2FzZSAxMTprPTUxO2JyZWFrIHQ7Y2FzZSAyMjprPTgzO2JyZWFrIHQ7Y2FzZSAyNDprPTg5O2JyZWFrIHQ7Y2FzZSAy''@;'; + put 'put ''NTprPTkyO2JyZWFrIHQ7Y2FzZSAyNjprPTk1O2JyZWFrIHQ7Y2FzZSAyNzprPTk4O2JyZWFrIHQ7Y2FzZSAyODprPTEwMTticmVhayB0O2Nhc2UgMjk6az0xMDQ7YnJlYWsgdDtjYXNlIDMwOms9MTA5O2JyZWFrIHQ7Y2FzZSAzMTprPTExMjticmVhayB0O2Nhc2UgMzI6az0xMTU7YnJlYWsg''@;'; + put 'put ''dDtjYXNlIDM0Oms9MTIxO2JyZWFrIHQ7Y2FzZSAwOmJyZWFrIGk7Y2FzZSAzNTpicmVhaztkZWZhdWx0Oms9MTM0O2JyZWFrIGV9aWYocD0wfGFbNDY5NjRdLGZlW2M+PjBdPTB8ZmVbMTk0ODA1XSwwfGFbNDQrKGY9MHxhWyhsPTB8YVs0Njk3Ml0pPj4yXSk+PjJdP2w9MHxhWzQ2OTc3XToo''@;'; + put 'put ''YVs0Njk3N109TT0wfGFbZisxNj4+Ml0sYVtmPj4yXT1hWzQ2OTYyXSxhWzQ0KyhmPTB8YVtsPj4yXSk+PjJdPTEsbD1NKSwoMHxhWzQ2OTczXSk+Pj4wPD0oKDB8YVtmKzQ+PjJdKStsfDApPj4+MCl7az0xMjg7YnJlYWsgcn1zd2l0Y2goMHxicigpKXtjYXNlIDA6az0xMzI7YnJlYWsgbjtj''@;'; + put 'put ''YXNlIDI6az0xMzM7YnJlYWsgcjtjYXNlIDE6YnJlYWs7ZGVmYXVsdDpjb250aW51ZSBlfWFbNDY5NzNdPWFbNDY5NjRdLGw9MzYrKCgoMHxhWzQ2OTcxXSktMXwwKS8yfDApfDB9ZmVbYz4+MF09MHxmZVsxOTQ4MDVdLGM9MHxhWzQ2OTc1XSxsPTB8YVs0Njk3NF19aWYoMTI4IT0oMHxrKSkx''@;'; + put 'put ''MzMhPSgwfGspfHwoaz0wLGFbNDY5NzNdPWM9KDB8YVs0KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml0pKygwfGFbNDY5NzddKXwwLGw9MHxHbigpLEE9MHxhWzQ2OTY0XSk7ZWxzZSBpZihrPTAsZj1tLXB8MCxhWzQ2OTczXT1jPShwPTB8YVs0Njk2NF0pKyhmKy0xKXwwLG09MHwkbihsPTB8R24o''@;'; + put 'put ''KSksQT0wfGFbNDY5NjRdLG0pe2s9MTI5O2JyZWFrfX0xMjkhPSgwfGspPzEzMiE9KDB8ayl8fChrPTAsYVs0Njk3M109Yz1tLXAtMSsoMHxhWzQ2OTY0XSl8MCxsPTB8R24oKSxBPTB8YVs0Njk2NF0pOihrPTAsYVs0Njk3M109Yz1wK2Z8MCxsPW0pfXN3aXRjaCgwfGspe2Nhc2UgMjk6Y2Fz''@;'; + put 'put ''ZSA5NTprPTAsMHwobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGFbNDcyNV09MSsoMHxhWzQ3MjVdKTtjb250aW51ZSBlO2Nhc2UgMzI6az0wLDB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4Kygw''@;'; + put 'put ''fGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxhWzQ2OTcxXT0zO2NvbnRpbnVlIGU7Y2FzZSAzNTpjYXNlIDM3OmNhc2UgNDI6Y2FzZSA0NzpjYXNlIDQ5OmNhc2UgNTE6aWYoaz0wLCEobD0wfGFbNDY5NjVdKSljb250aW51ZSBlO2Fb''@;'; + put 'put ''MjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjE7Y29udGludWUgZTtjYXNlIDM5Oms9MCwwfChsPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4w''@;'; + put 'put ''XSkmMSksYVs0Njk3MV09MTtjb250aW51ZSBlO2Nhc2UgNDQ6az0wLDB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxLcygpO2NvbnRpbnVlIGU7Y2FzZSA4MzprPTAsMHwobD0wfGFbNDY5''@;'; + put 'put ''NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGFbNDY5NzFdPTUsdGgoKTtjb250aW51ZSBlO2Nhc2UgODk6az0wLDB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgw''@;'; + put 'put ''fGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxCcig5ODc0NCk7Y29udGludWUgZTtjYXNlIDkyOms9MCwwfChsPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMSksQnIoOTY2MTYpO2NvbnRp''@;'; + put 'put ''bnVlIGU7Y2FzZSA5ODpjYXNlIDExNTprPTAsbD0wfGFbNDY5NjRdLDB8KGM9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlW2wrKGMrLTEpPj4wXSkmMSksQnIobCk7Y29udGludWUgZTtjYXNlIDEwMTprPTAsMHwobD0wfGFbNDY5NjVdKSYmKGFb''@;'; + put 'put ''MjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGFbNDY5NzFdPTcsYVs0Njk3Nl09MSx0aCgpO2NvbnRpbnVlIGU7Y2FzZSAxMDQ6aWYoaz0wLDB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09''@;'; + put 'put ''MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxhWzQ2OTc2XT1NPSgwfGFbNDY5NzZdKS0xfDAsIU0pe2s9MTA4O2JyZWFrIGV9QnIoMHxhWzQ2OTY0XSk7Y29udGludWUgZTtjYXNlIDEwOTprPTAsbD0wfGFbNDY5NjRdLDB8KGM9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFb''@;'; + put 'put ''YVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlW2wrKGMrLTEpPj4wXSkmMSksYVs0Njk3Nl09MSsoMHxhWzQ2OTc2XSksQnIobCk7Y29udGludWUgZTtjYXNlIDExMjprPTAsbD0wfGFbNDY5NjRdLDB8KGM9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgw''@;'; + put 'put ''fGZlW2wrKGMrLTEpPj4wXSkmMSksQnIobCksYVs0NzI1XT0xKygwfGFbNDcyNV0pO2NvbnRpbnVlIGU7Y2FzZSAxMjE6az0wLGw9MHxhWzQ2OTY0XSwwfChjPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVtsKyhjKy0xKT4+MF0pJjEpLEN1KGws''@;'; + put 'put ''YywxLDB8YVs0Njk2M10pO2NvbnRpbnVlIGV9fXN3aXRjaCgwfGspe2Nhc2UgMjc6KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxiPS0xO2JyZWFrO2Nhc2UgNTM6KGw9MHxhWzQ2OTY1XSkm''@;'; + put 'put ''JihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxiPTI1OTticmVhaztjYXNlIDU1OihsPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4w''@;'; + put 'put ''XSkmMSksYj0yNjA7YnJlYWs7Y2FzZSA1NzowfChsPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMSksMHxhWzQ2OTY5XXx8KGFbNDY5NjldPTI1OCksYj0yNTg7YnJlYWs7Y2FzZSA2MTowfChsPTB8''@;'; + put 'put ''YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMSksMHxhWzQ2OTY5XXx8KGFbNDY5NjldPTI2MSksYj0yNjE7YnJlYWs7Y2FzZSA2NToobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0p''@;'; + put 'put ''Pj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGI9MjYzO2JyZWFrO2Nhc2UgNjc6KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxiPTI2MjticmVhaztjYXNlIDY5''@;'; + put 'put ''OjB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxiPTI2MT09KDB8YVs0Njk2OV0pPzI2NDo0NTticmVhaztjYXNlIDcyOjB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+''@;'; + put 'put ''PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxiPTI1OD09KDB8YVs0Njk2OV0pPzI2NDo0NTticmVhaztjYXNlIDc1Omw9MHxhWzQ2OTY0XSwwfChjPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVtsKyhjKy0x''@;'; + put 'put ''KT4+MF0pJjEpLGFbNDY5OTJdPTB8cjAoMHxhWzQ2OTQyXSxsKSxiPTI2NzticmVhaztjYXNlIDc4OjB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSwwfGZ1bmN0aW9uIFA2KCl7dmFyIGYs''@;'; + put 'put ''cCxBLHcsYixsPTAsYz0wLG09MCxrPTA7cmV0dXJuIGI9YWUsYWU9YWUrMjA4MHwwLHc9Yis4fDAscD1iLGw9YisxMDU2fDAsYz1iKzMyfDAsQT1iKzE2fDAsKGY9KGs9MHxmZVsoMHxhWzQ2OTY1XSktMSsoMHxhWzQ2OTY0XSk+PjBdKTw8MjQ+PjI0PT00Nil8KCgyNTUmayktNDh8MCk+Pj4w''@;'; + put 'put ''PDEwP2YmJjAhPSgwfGZ1bmN0aW9uIEowKCl7dmFyIGMsbD0wO2ZvcihjPTB8YVs0Njk2NF0sbD0oMHxhWzQ2OTY1XSktMnwwOzspe2lmKCgwfGwpPD0tMSl7bD0wO2JyZWFrfWlmKDQ2PT0oMHxmZVtjK2w+PjBdKSl7bD0xO2JyZWFrfWw9bCstMXwwfXJldHVybiAwfGx9KCkpP209NDpsPTA6''@;'; + put 'put ''bT00LDQ9PSgwfG0pJiYoaz0wfGFbNDY5NjZdLHVzKEEsMTAyNCxsKSx1byhBLDk2ODI3KSx1byhBLDB8YVs0Njk2NF0pLGFbcD4+Ml09YVs0NzI1XSxvbyhjLDk2ODcxLHApLHVvKEEsYyksdW8oQSwwPT0oMHxrKT85NjgyMTprKSx1byhBLDk2ODg4KSwobD0wfGFbKGM9QSs0fDApPj4yXSk+''@;'; + put 'put ''Pj4wPj0oMHxhW0ErOD4+Ml0pPj4+MCYmKFEwKEEsMSksbD0wfGFbYz4+Ml0pLGZlW2w+PjBdPTAsYVtjPj4yXT1sPTB8YVtBPj4yXSxhW3c+PjJdPWwsJHIoMCw5NjkxMyx3KSxDMihBKSxsPTEpLGFlPWIsMHxsfSgpJiYoaz0oMHxhWzQ2OTY1XSktMXwwLGZlW2M+PjBdPTB8ZmVbMTk0ODA1''@;'; + put 'put ''XSxhWzQ2OTczXT1NPUEra3wwLGFbNDY5NjRdPUEsYVs0Njk2NV09ayxmZVsxOTQ4MDVdPTB8ZmVbTT4+MF0sZmVbTT4+MF09MCxhWzQ2OTczXT1NKSxhWzQ2OTkyXT0wfHIwKDB8YVs0Njk0Ml0sMHxhWzQ2OTY0XSksYj0yNjc7YnJlYWs7Y2FzZSA4NjowfChsPTB8YVs0Njk2NV0pJiYoYVsy''@;'; + put 'put ''OCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMSksYVs0Njk3MV09MSxmdW5jdGlvbiBscigpe2FbNDY5OTJdPTB8cjAoMHxhWzQ2OTQyXSwwfGFbNDY5NzhdKSxmZVthWzQ2OTc4XT4+MF09MH0oKSxiPTI2ODticmVhaztjYXNlIDEw''@;'; + put 'put ''ODphWzQ2OTcxXT0xLGZ1bmN0aW9uIGRyKCl7YVs0Njk5Ml09MHxmdW5jdGlvbiBwaShsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MDtyZXR1cm4oY3w9MCk/KChmPTB8cmkocD0wfElyKGwpLGMpKT8obT0wfHpsKDB8YVsobT1BPWYrOHwwKT4+Ml0sMHxhW20rND4+Ml0sMSwwKSxhW0E+''@;'; + put 'put ''PjJdPW0sYVtBKzQ+PjJdPURuKTooZj0yNCsoMHxVbyhjKSl8MCxmPWw/MHxNdChsLGYpOjB8QjAoZiksbT0wfGFbNCsoQT0xODYzMTIpPj4yXSxhWyhsPWYrOHwwKT4+Ml09MXxhW0E+PjJdLGFbbCs0Pj4yXT1tLGlkKGw9ZisyMHwwLGMpLGFbZisxNj4+Ml09bCxtaVs2MyZhW3A+PjJdXShw''@;'; + put 'put ''LGYsMSkpLGY9MHxhW2YrMTY+PjJdKTpmPTAsMHxmfSgwfGFbNDY5NDJdLDB8YVs0Njk3OF0pLGZlW2FbNDY5NzhdPj4wXT0wfSgpLGI9MjY4O2JyZWFrO2Nhc2UgMTE4Omw9MHxhWzQ2OTY0XSwwfChjPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxm''@;'; + put 'put ''ZVtsKyhjKy0xKT4+MF0pJjEpLGI9MHxmZVtsPj4wXTticmVhaztjYXNlIDEzNDpXcig5NjYxOSl9cmV0dXJuIDB8Yn1mdW5jdGlvbiBBbCgpe3ZhciBsPTAsYz0wLGY9MDtjPTB8YVs0Njk3Ml07ZG97aWYoYyl7aWYoMD49KChsPTB8YVs0Njk4M10pLTF8MCk+Pj4wKXtpZihjPTB8dWkoYywo''@;'; + put 'put ''bD1sKzh8MCk8PDIpLGFbNDY5NzJdPWMsYyl7YVsoZj1jKyhhWzQ2OTgzXTw8Mil8MCk+PjJdPTAsYVtmKzQ+PjJdPTAsYVtmKzg+PjJdPTAsYVtmKzEyPj4yXT0wLGFbZisxNj4+Ml09MCxhW2YrMjA+PjJdPTAsYVtmKzI0Pj4yXT0wLGFbZisyOD4+Ml09MCxmPTk7YnJlYWt9V3IoOTY5Nzcp''@;'; + put 'put ''fX1lbHNle2lmKGw9MHxlYSg0KSxhWzQ2OTcyXT1sLGwpe2FbbD4+Ml09MCxsPTEsZj05O2JyZWFrfVdyKDk2OTc3KX19d2hpbGUoMCk7OT09KDB8ZikmJihhWzQ2OTgzXT1sKX1mdW5jdGlvbiAkMihsLGMpe3ZhciBmO3JldHVybiBsfD0wLGN8PTAsKGY9MHxlYSg0OCkpfHxXcig5NjkzMiks''@;'; + put 'put ''YVtmKzEyPj4yXT1jLGM9MHxlYShjKzJ8MCksYVtmKzQ+PjJdPWMsYz8oYVtmKzIwPj4yXT0xLHUwKGYsbCksMHxmKTooV3IoOTY5MzIpLDApfWZ1bmN0aW9uIHEyKCl7dmFyIGMsbD0wO2FbNDY5NzddPWFbMTYrKGw9MHxhWyhjPTB8YVs0Njk3Ml0pPj4yXSk+PjJdLGFbNDY5NzNdPWw9MHxh''@;'; + put 'put ''W2wrOD4+Ml0sYVs0Njk2NF09bCxhWzQ2OTYyXT1hW2FbYz4+Ml0+PjJdLGZlWzE5NDgwNV09MHxmZVtsPj4wXX1mdW5jdGlvbiBLcygpe3ZhciBtLEEsbD0wLGM9MCxmPTAscD0wO2lmKG09YWUsYWU9YWUrMzJ8MCxwPW0sYz1tKzE2fDAsZj1tKzEyfDAsbD0wPT0oMHxzMihsPTErKEE9MHxh''@;'; + put 'put ''WzQ2OTY0XSl8MCw5NjkxNiw0KSk/QSs1fDA6bCxhW3A+PjJdPWYsYVtwKzQ+PjJdPW0rMjAsYVtwKzg+PjJdPWMsKDB8KHA9MHxpbChsLDk2OTIxLHApKSk+MCYmKGFbNDcyNV09KDB8YVtmPj4yXSktMSwxIT0oMHxwKSkpe2w9Yz1sKygwfGFbYz4+Ml0pfDA7ZTpmb3IoOzspe3N3aXRjaCgo''@;'; + put 'put ''Zj0wfGZlW2w+PjBdKTw8MjQ+PjI0KXtjYXNlIDA6Y2FzZSAzNDpicmVhayBlfWw9bCsxfDB9KDB8bCkhPSgwfGMpJmY8PDI0Pj4yND09MzQmJihmZVtsPj4wXT0wLGZ1bmN0aW9uIEkwKGwsYyl7bHw9MDt2YXIgZj0wOygwfChmPTB8YVs0Njk4MV0pKTwoMHwoY3w9MCkpPyhmPWY/MHxVYSgw''@;'; + put 'put ''fGFbNDY5ODJdLGMrMXwwKTowfEIwKGMrMXwwKSxhWzQ2OTgyXT1mLGFbNDY5ODFdPWMpOmY9MHxhWzQ2OTgyXSxpZChmLGwpLGFbNDY5NjZdPWFbNDY5ODJdfShjLGwtY3wwKSl9YWU9bX1mdW5jdGlvbiB0aCgpe3ZhciBsPTA7KGw9MHxhWzQ2OTc4XSl8fChsPTB8QjAoMTAyNCksYVs0Njk3''@;'; + put 'put ''OF09bCxhWzQ2OTgwXT1sKzEwMjQpLGFbNDY5NzldPWwsZmVbbD4+MF09MH1mdW5jdGlvbiBCcihsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDsoZj0wfGFbNDY5NzldKT4+PjA+KGM9MHxhWzQ2OTc4XSk+Pj4wJiYoZj1mKy0xfDAscD0zKTtlOmZvcig7Oyl7Mz09KDB8cCkm''@;'; + put 'put ''JihhWzQ2OTc5XT1mKSxtPXA9MHxhWzQ2OTgwXTtkb3tpZihBPWwsbD1sKzF8MCx3PWYsZj1mKzF8MCxmZVt3Pj4wXT1BPTB8ZmVbQT4+MF0sIShBPDwyND4+MjQpKWJyZWFrIGV9d2hpbGUoZj4+PjA8cD4+PjApO2FbNDY5NzldPWYsYz0wfFVhKGMsdz1tLShwPWMpPDwxKSxhWzQ2OTc4XT1j''@;'; + put 'put ''LGFbNDY5ODBdPWMrdyxmPWMrKGYtcCl8MCxwPTN9YVs0Njk3OV09Zn1mdW5jdGlvbiBHbigpe3ZhciBtLGw9MCxjPTAsZj0wLHA9MDtmb3IobT0wfGFbNDY5NzNdLHA9MHxhWzQ2OTY0XSxjPSgwfGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXSkrKDB8YVs0Njk3MV0pfDA7IShwPj4+MD49''@;'; + put 'put ''bT4+PjApOyl7bD0obD0wfGZlW3A+PjBdKTw8MjQ+PjI0PzB8YVsxODkwNCsoKDI1NSZsKTw8Mik+PjJdOjEsMHxydFs2Mzg1NisoYzw8MSk+PjFdJiYoYVs0Njk3NF09YyxhWzQ2OTc1XT1wKTtlOmZvcig7Oyl7Zj0yNTUmbDtkb3tpZigoMHxjKT09KDB8cnRbNjQyNTIrKChsPWYrKDB8cnRb''@;'; + put 'put ''NjQwNDIrKGM8PDEpPj4xXSl8MCk8PDEpPj4xXSkpYnJlYWsgZTtjPShsPTB8cnRbNjQ3ODgrKGM8PDEpPj4xXSk8PDE2Pj4xNn13aGlsZShsPDwxNj4+MTY8PTkyKTtsPTB8YVsxOTkyOCsoZjw8Mik+PjJdfXA9cCsxfDAsYz0wfHJ0WzY0OTk4KyhsPDwxKT4+MV19cmV0dXJuIDB8Y31mdW5j''@;'; + put 'put ''dGlvbiAkbihsKXt2YXIgYz0wO2ZvcigwfHJ0WzYzODU2KygobHw9MCk8PDEpPj4xXSYmKGM9MHxhWzQ2OTczXSxhWzQ2OTc0XT1sLGFbNDY5NzVdPWMpOygwfGwpIT0oMHxydFs2NDI1MisoKGM9MSsoMHxydFs2NDA0MisobDw8MSk+PjFdKXwwKTw8MSk+PjFdKTspbD0wfHJ0WzY0Nzg4Kyhs''@;'; + put 'put ''PDwxKT4+MV07cmV0dXJuIDB8KChjPTB8cnRbNjQ5OTgrKGM8PDEpPj4xXSk8PDE2Pj4xNj09OTI/MDpjPDwxNj4+MTYpfWZ1bmN0aW9uIGJyKCl7dmFyIGw9MCxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MDtpZihwPTB8YVs0Njk2NF0saz1NPTB8YVs0''@;'; + put 'put ''Njk3M10sTT4+PjA+KCh3PTB8YVs0KyhtPTB8YVsoYj0wfGFbNDY5NzJdKT4+Ml0pPj4yXSkrKDErKDB8YVs0Njk3N10pKXwwKT4+PjAmJldyKDk2Njc0KSxBPWstcHwwLDB8YVttKzQwPj4yXSl7Zm9yKE09QSstMXwwLEE9dyxtPTA7ISgoMHxtKT49KDB8TSkpOylmZVtBPj4wXT0wfGZlW3A+''@;'; + put 'put ''PjBdLEE9QSsxfDAscD1wKzF8MCxtPW0rMXwwO3A9MHxhW2I+PjJdO2Rve2lmKDI9PSgwfGFbcCs0ND4+Ml0pKWFbNDY5NzddPTAsYVtwKzE2Pj4yXT0wLGY9cCxEPTE3O2Vsc2V7Zm9yKDs7KXtpZigwfChtPShBPTB8YVsodz1wKzEyfDApPj4yXSktTS0xfDApKXtEPTE2O2JyZWFrfWlmKGI9''@;'; + put 'put ''MHxhWyhtPXArNHwwKT4+Ml0sISgwfGFbcCsyMD4+Ml0pKXtEPTEyO2JyZWFrfWlmKGFbdz4+Ml09cD0wPT0oMHwocD1BPDwxKSk/KEE+Pj4zKStBfDA6cCxwPTB8dWkoYixwKzJ8MCksYVttPj4yXT1wLCFwKWJyZWFrO2FbNDY5NzNdPWI9cCsoay1iKXwwLHA9MHxhW2FbNDY5NzJdPj4yXSxr''@;'; + put 'put ''PWJ9aWYoMTI9PSgwfEQpKWFbbT4+Ml09MDtlbHNlIGlmKDE2PT0oMHxEKSl7aWYoYz0wfG1pWzYzJmFbYVs4KygwfGFbNDY5NjddKT4+Ml0+PjJdXSgwfGFbNDY5NjhdLCgwfGFbcCs0Pj4yXSkrTXwwLG0+Pj4wPDgxOTI/bTo4MTkyKSxmPTB8YVthWzQ2OTcyXT4+Ml0sYVs0Njk3N109Yyxh''@;'; + put 'put ''W2YrMTY+PjJdPWMsYyl7bD0wO2JyZWFrfUQ9MTc7YnJlYWt9V3IoOTY3MzApfX13aGlsZSgwKTtkb3tpZigxNz09KDB8RCkpe2lmKE0pe2FbZis0ND4+Ml09MixsPTIsYz0wO2JyZWFrfUlpKDB8YVs0Njk2Ml0pLGw9MSxjPTB8YVs0Njk3N10sZj0wfGFbYVs0Njk3Ml0+PjJdO2JyZWFrfX13''@;'; + put 'put ''aGlsZSgwKTtwPWMrTXwwO2Rve2lmKHA+Pj4wPigwfGFbZisxMj4+Ml0pPj4+MCl7aWYoRD0wfHVpKDB8YVtmKzQ+PjJdLHArKGM+Pj4xKXwwKSxhWzQrKDB8YVsoYz0wfGFbNDY5NzJdKT4+Ml0pPj4yXT1ELGM9MHxhWzQrKDB8YVtjPj4yXSk+PjJdKXtSPTB8YVs0Njk3N10sRz1jO2JyZWFr''@;'; + put 'put ''fVdyKDk2Nzc0KX1lbHNlIFI9YyxHPTB8YVtmKzQ+PjJdfXdoaWxlKDApO2FbNDY5NzddPVI9UitNfDAsZmVbRytSPj4wXT0wLGZlWzErKDB8YVs0Njk3N10pKygwfGFbNCsoMHxhWyhHPTB8YVs0Njk3Ml0pPj4yXSk+PjJdKT4+MF09MCxhWzQ2OTY0XT1hWzQrKDB8YVtHPj4yXSk+PjJdfWVs''@;'; + put 'put ''c2UgbD0xPT0oMHxBKT8xOjI7cmV0dXJuIDB8bH1mdW5jdGlvbiBXcihsKXt2YXIgYyxmO2M9YWUsYWU9YWUrMTZ8MCxmPTB8YVsxNTcxMl0sYVtjPj4yXT1sfD0wLFQwKGYsOTY2NzAsYyksWHUoMil9ZnVuY3Rpb24gdWkobCxjKXtyZXR1cm4gMHxVYShsfD0wLGN8PTApfWZ1bmN0aW9uIElp''@;'; + put 'put ''KGwpe2x8PTA7dmFyIGM9MCxmPTA7MCE9KDB8KGY9MHxhWzQ2OTcyXSkpJiYwIT0oMHwoYz0wfGFbZj4+Ml0pKXx8KEFsKCksYz0wfCQyKDB8YVs0Njk2Ml0sMTYzODQpLGFbKGY9MHxhWzQ2OTcyXSk+PjJdPWMsZnx8KGM9MCkpLHUwKGMsbCkscTIoKX1mdW5jdGlvbiB1MChsLGMpe3ZhciBm''@;'; + put 'put ''O2N8PTAsZj0wfGFbNDc2NDNdLFppKGx8PTApLGFbbD4+Ml09YyxhW2wrNDA+PjJdPTEsKDB8KGM9KGM9MHxhWzQ2OTcyXSk/MHxhW2M+PjJdOjApKSE9KDB8bCkmJihhW2wrMzI+PjJdPTEsYVtsKzM2Pj4yXT0wKSxhW2wrMjQ+PjJdPTAsYVs0NzY0M109Zn1mdW5jdGlvbiBaaShsKXt2YXIg''@;'; + put 'put ''Yz0wOzB8KGx8PTApJiYoYVtsKzE2Pj4yXT0wLGZlW2FbKGM9bCs0fDApPj4yXT4+MF09MCxmZVsxKygwfGFbYz4+Ml0pPj4wXT0wLGFbbCs4Pj4yXT1hW2M+PjJdLGFbbCsyOD4+Ml09MSxhW2wrNDQ+PjJdPTAsKDB8KGM9KGM9MHxhWzQ2OTcyXSk/MHxhW2M+PjJdOjApKT09KDB8bCkmJnEy''@;'; + put 'put ''KCkpfWZ1bmN0aW9uIGVhKGwpe3JldHVybiAwfEIwKGx8PTApfWZ1bmN0aW9uIFlvKGwpe2x8PTA7dmFyIHAsbSxBLGIsayxNLGM9MCxmPTAsdz0wO009YWUsYWU9YWUrMjExMnwwLGs9TSszMnwwLHc9TSsyNHwwLEE9TSsxNnwwLG09TSs4fDAscD1NLGM9TSs1NnwwLHVzKGI9TSs0MHwwLDEw''@;'; + put 'put ''MjQsTSsxMDgwfDApLDB8KGY9MHxhWzQ2OTY2XSkmJih1byhiLGYpLHVvKGIsOTcwMjcpKSx1byhiLGwpLGFbcD4+Ml09YVs0NzI1XSxvbyhjLDk3MDMwLHApLHVvKGIsYyk7ZTpkb3tpZigwfGZlW2FbNDY5NjRdPj4wXSl1byhiLDk3MDQyKSx1byhiLDB8YVs0Njk2NF0pLGM9Yis0fDAsbD0w''@;'; + put 'put ''fGFbYz4+Ml0sbD4+PjA+PSgwfGFbYis4Pj4yXSk+Pj4wJiYoUTAoYiwxKSxsPTB8YVtjPj4yXSksYVtjPj4yXT1sKzEsZmVbbD4+MF09Mzk7ZWxzZSBzd2l0Y2goMHwoKDB8YVs0Njk3MV0pLTF8MCkvMil7Y2FzZSAyOmlmKGFbbT4+Ml09MTYzODQsb28oYyw5NzA1MCxtKSx1byhiLGMpLCEo''@;'; + put 'put ''MHxmZVsobD0wfGFbNDY5NzhdKT4+MF0pKWJyZWFrIGU7dz0wfFVvKGwpLHVvKGIsOTcxMTIpLGw9MHxhWzQ2OTc4XSwoMHx3KT44MCYmKGZlW2wrODA+PjBdPTApLHVvKGIsbCk7YnJlYWsgZTtjYXNlIDM6aWYoYVtBPj4yXT0xNjM4NCxvbyhjLDk3MTMxLEEpLHVvKGIsYyksISgwfGZlWyhs''@;'; + put 'put ''PTB8YVs0Njk3OF0pPj4wXSkpYnJlYWsgZTt3PTB8VW8obCksdW8oYiw5NzE5OSksbD0wfGFbNDY5NzhdLCgwfHcpPjgwJiYoZmVbbCs4MD4+MF09MCksdW8oYixsKTticmVhayBlO2Nhc2UgMTphW3c+PjJdPTE2Mzg0LG9vKGMsOTcyMTgsdyksdW8oYixjKTticmVhayBlO2RlZmF1bHQ6YnJl''@;'; + put 'put ''YWsgZX19d2hpbGUoMCk7KGw9MHxhWyhmPWIrNHwwKT4+Ml0pPj4+MD49KDB8YVsoYz1iKzh8MCk+PjJdKT4+PjAmJihRMChiLDEpLGw9MHxhW2Y+PjJdKSxhW2Y+PjJdPWwrMSxmZVtsPj4wXT0xMCwobD0wfGFbZj4+Ml0pPj4+MD49KDB8YVtjPj4yXSk+Pj4wJiYoUTAoYiwxKSxsPTB8YVtm''@;'; + put 'put ''Pj4yXSksZmVbbD4+MF09MCxhW2Y+PjJdPXc9MHxhW2I+PjJdLGFbaz4+Ml09dywkcigxLDk2OTEzLGspLEMyKGIpLGFlPU19ZnVuY3Rpb24gRWMobCxjLGYpe3ZhciBwLG0sQTtyZXR1cm4gY3w9MCxmfD0wLHA9YWUsYWU9YWUrODB8MCxtPXAsZnVuY3Rpb24gX0cobCxjLGYpe2N8PTAsMHwo''@;'; + put 'put ''Znw9MCkmJigwfEptKGMsMCwwKSkhPSgwfGYpJiZKbShjLGYsMCl9KDAsMHxhWyhBPTUyKyhsfD0wKXwwKT4+Ml0sMTg1NDgpLGFbKGw9bSs4fDApPj4yXT1jLGFbbCs0Pj4yXT1mLGY9MHxtaVs2MyZhWyhmPTB8YVtBPj4yXSk+PjJdXShmLG0sNCksYWU9cCwwfGZ9ZnVuY3Rpb24gZHMobCxj''@;'; + put 'put ''LGYpe2x8PTAsZnw9MDt2YXIgbSxBLHA9MDtyZXR1cm4gQT1hZSxhZT1hZSsxNnwwLG09QSwwIT0oMHwoY3w9MCkpJiYwIT0oMHxLNChsLDAsYyxtLDApKSYmMCE9KDB8KHA9MHxFYyhsLDB8YVsocD1tKT4+Ml0sMHxhW3ArND4+Ml0pKSl8fCgwIT0oMHxmKSYmMCE9KDB8SzQobCwwLGMsbSwx''@;'; + put 'put ''KSk/KHA9MHxmdW5jdGlvbiBPdShsLGMsZil7dmFyIHA9MCxtPTAsQT0wO3JldHVybihwPTB8RWMobHw9MCxjfD0wLGZ8PTApKXx8KHA9MHxNdChsLDcyKSxhW3ArNjQ+PjJdPWFbbCs2ND4+Ml0sYVsobT1wKzI0fDApPj4yXT1BPTB8YVtsKzI0Pj4yXSxmZVttPj4wXT0yNTUmQSYtOSxhW3Ar''@;'; + put 'put ''NTY+PjJdPWwsYVtwKzYwPj4yXT1hW2wrNjA+PjJdLGFbKGw9cCs4fDApPj4yXT1jLGFbbCs0Pj4yXT1mLGhvKHApKSwwfHB9KGwsMHxhWyhwPW0pPj4yXSwwfGFbcCs0Pj4yXSksTDUobCwwLHApKTpwPTApLGFlPUEsMHxwfWZ1bmN0aW9uIHlzKGwpe3JldHVybiAwfG1pWzYzJmFbKGw9MHxh''@;'; + put 'put ''WzUyKyhsfD0wKT4+Ml0pPj4yXV0obCwwLDEyOCl9ZnVuY3Rpb24gTXMobCl7dmFyIGM9MDtyZXR1cm4gMHwobD0oYz0wfGsxKGx8PTApKT8wfG1pWzYzJmFbKGM9MHxhW2MrNTI+PjJdKT4+Ml1dKGMsbCw4KTowKX1mdW5jdGlvbiBrMShsKXtyZXR1cm4gMHxhWzU2KyhsfD0wKT4+Ml19ZnVu''@;'; + put 'put ''Y3Rpb24gcjcobCxjKXtyZXR1cm4gMHxtaVs2MyZhWyhsPTB8YVs1MisobHw9MCk+PjJdKT4+Ml1dKGwsY3w9MCwyKX1mdW5jdGlvbiBaaChsLGMsZil7dmFyIHAsbTtyZXR1cm4gbHw9MCxmfD0wLG09MHxhWyhwPTI4KyhjfD0wKXwwKT4+Ml0sYVtwPj4yXT03LGFbNDY5ODRdPWwsZj0wfGlz''@;'; + put 'put ''KGMsZiksYVtwPj4yXT1tLGFbNDY5ODRdPTAsMHxmfWZ1bmN0aW9uICQ0KGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9MCxmPTI4KygwfEptKGN8PTAsMCwwKSl8MCxwPTB8YVtmPj4yXSxhW2Y+PjJdPTcsYVs0Njk4NF09bCwwfE5sKGMpP2w9MTooYVtmPj4yXT1wLGFbNDY5ODRdPTAsbD0wKSww''@;'; + put 'put ''fGx9ZnVuY3Rpb24gU0cobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTA7ZTpkb3tpZigwIT0oMHxsKSYmMCE9KDB8ZmVbbD4+MF0pKXtmZVtjPj4wXT0zNCxwZT0wLG09MSYoKChNPTB8ZmVbbD4+MF0pLTQ1JjI1''@;'; + put 'put ''NSk8MnwoKDI1NSZNKS00OHwwKT4+PjA8MTApLEE9MCx3PTAsYj0wLGY9YysxfDAscD1sKzF8MDt0OmZvcig7Oyl7Zm9yKGs9Zjs7KXtpZighKE08PDI0Pj4yNCkpYnJlYWsgdDtmPTI1NSZNO246ZG97aWYoTTw8MjQ+PjI0PT0zNClmZVtrPj4wXT05MixEPW0sUj0xLGs9aysxfDA7ZWxzZXtp''@;'; + put 'put ''ZighbSl7RD0wLFI9KFI9TTw8MjQ+PjI0Pi0xJk08PDI0Pj4yNCE9OTUmMD09KDB8aTkoZikpKT8xOkE7YnJlYWt9c3dpdGNoKE08PDI0Pj4yNCl7Y2FzZSA0NTpEPShSPTA9PSgwfGIpKT9tOjAsUj1SP0E6MTticmVhayBuO2Nhc2UgNDY6RD0oUj0wPT0oMHx3KSk/bTowLFI9Uj9BOjEsdz13''@;'; + put 'put ''KzF8MDticmVhayBuO2RlZmF1bHQ6RD0oUj0oZistNDh8MCk+Pj4wPDEwKT9tOjAsUj1SP0E6MTticmVhayBufX19d2hpbGUoMCk7aWYoZj1rKzF8MCxmZVtrPj4wXT1NLEs9cCsxfDAsRz0wfGZlW3A+PjBdLGI9YisxfDAscD0wfGFbNTAzMV0pe2lmKG09MjU1JkcscGUmKEE9Rzw8MjQ+PjI0''@;'; + put 'put ''IT0wKSYmIShNPDwyND4+MjQ9PTkyfE08PDI0Pj4yND4tMSYoTSstNDUmMjU1KT4xJjA9PSgwfGk5KE08PDI0Pj4yNCkpXjEpJiYhKEc8PDI0Pj4yND4tMSYoRystNDUmMjU1KT4xJjA9PSgwfGk5KG0pKSkpYnJlYWs7aWYoKDB8Yik8KDB8cCl8MV5BKW09RCxBPVIsaz1mLHA9SyxNPUc7ZWxz''@;'; + put 'put ''ZXtpZihNPDwyND4+MjQ9PTkyfE08PDI0Pj4yND4tMSYwPT0oMHxpOShNPDwyND4+MjQpKSYoTSstNDUmMjU1KT4xXjEpe3BlPTEsbT1ELEE9UixNPUcscD1LO2NvbnRpbnVlIHR9aWYoRzw8MjQ+PjI0Pi0xJihHKy00NSYyNTUpPjEmMD09KDB8aTkobSkpKXtwZT0xLG09RCxBPVIsTT1HLHA9''@;'; + put 'put ''Sztjb250aW51ZSB0fWZlW2Y+PjBdPTkyLGZlW2srMj4+MF09MTAsbT1ELEE9MSxiPTAsaz1rKzN8MCxwPUssTT1HfX1lbHNlIG09RCxBPVIsaz1mLHA9SyxNPUd9ZmVbZj4+MF09OTIsZmVbaysyPj4wXT0xMCxwZT0wLG09RCxBPTEsYj0wLE09RyxmPWsrM3wwLHA9S31pZihmZVtrPj4wXT0z''@;'; + put 'put ''NCxmZVtrKzE+PjBdPTAsQSlsPWM7ZWxzZXtpZigxPT0oMHxiKSYmKCgwfGZlW2w+PjBdKS00NSYyNTUpPDIpe2w9YzticmVha31mb3IoZj0yMDEyODs7KXtpZighKHA9MHxhW2Y+PjJdKSlicmVhayBlO2lmKCEoMHx5MChwLGwpKSl7bD1jO2JyZWFrfWY9Zis0fDB9fX1lbHNlIGw9OTczMDl9''@;'; + put 'put ''d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBPQShsKXtyZXR1cm4gMHxmdW5jdGlvbiBDRyhsLGMpe3JldHVybiBjfD0wLDB8T28obHw9MCk/ZnVuY3Rpb24ga0cobCxjKXtsfD0wO3ZhciBmPTAscD0wLG09MDtmb3IoZmVbKGN8PTApPj4wXT02MCxwPWM7Zj1wKzF8MCwobT0wfGZlW2w+''@;'; + put 'put ''PjBdKTw8MjQ+PjI0OylmZVtmPj4wXT1tLGw9bCsxfDAscD1mO2ZlW2Y+PjBdPTYyLGZlW3ArMj4+MF09MH0obCxjKTpjPTB8U0cobCxjKSwwfGN9KGx8PTAsMHxRbmUobCkpfWZ1bmN0aW9uIFFuZShsKXt2YXIgYz0wO3JldHVybiBjPTIrKCgwfFVvKGx8PTApKTw8MSl8MCxsPTB8YVs0Njk4''@;'; + put 'put ''Nl0sKGM9Yz4+PjA+MTAyND9jOjEwMjQpPj4+MD4oMHxhWzQ2OTg1XSk+Pj4wJiYobD1sPzB8VWEobCxjKTowfEIwKGMpLGFbNDY5ODZdPWwsYVs0Njk4NV09YyksMHxsfWZ1bmN0aW9uIEVHKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDswIT0oMHwoQT0wfHRpKGx8PTApKSkmJjM3''@;'; + put 'put ''IT0oMHxmZVtBPj4wXSk/Yz0wOmY9MztlOmRve2lmKDM9PSgwfGYpKXtjPTB8aWMobCk7dDpkb3tpZigwfGMmJihwPTB8aWMoMHxrMShsKSksMHxwKSlmb3IoQT0wfHB1KDB8YVs4KygwfGljKDB8ZGkobCkpKT4+Ml0pLG09YysxMnwwLGY9cCsxMnwwLGM9MDs7KXtpZigoMHxjKT49KDB8QSkp''@;'; + put 'put ''YnJlYWsgdDtpZigwfChwPTB8YVsoMHxhW20+PjJdKSsoYzw8Mik+PjJdKSYmMHwodz0wfGFbKDB8YVtmPj4yXSkrKGM8PDIpPj4yXSkmJjB8amkocCx3KSl7Yz0wO2JyZWFrIGV9Yz1jKzF8MH19d2hpbGUoMCk7aWYoYz0wfFZoKGwsMCkpe2lmKCEoKDB8cHUoMHxhW2MrOD4+Ml0pKT4wKSly''@;'; + put 'put ''ZXR1cm4oMHxwdSgwfGFbYysxMj4+Ml0pKTwxfDA7Yz0wfWVsc2UgYz0xfX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIEpuZShsLGMpe2x8PTAsY3w9MDt2YXIgZixwPTA7cmV0dXJuIGFbNDY5ODddPTAsMHwoZj0wfExpKGwsOTczMTkpKSYmKCgwfGZlW2Y+PjBdKS00OHwwKT4+PjA8''@;'; + put 'put ''MTAmJjA9PSgwfChwPTB8dkwoZiwwLDEwKSkpfCgwfHApPjU5JiYoYVs1MDMxXT1wKSxYbmUobCwxKSwtMSE9KDB8S25lKGwsYywxKSkmJi0xIT0oMHwkbmUobCxjKSkmJi0xIT0oMHxxbmUobCxjKSk/KGFbNTAzMV09MTI4LGw9MHxfb1s2MyZhWzgrKDB8YVs4KygwfGFbbCs2ND4+Ml0pPj4y''@;'; + put 'put ''XSk+PjJdXShjKSk6bD0tMSwwfGx9ZnVuY3Rpb24gWG5lKGwsYyl7Y3w9MDt2YXIgZj0wO2ZvcihhWyhsfD0wKT4+Ml09LTkmYVtsPj4yXSxmPTB8eXMobCk7ZjspWG5lKGYsMCksZj0wfE1zKGYpO2U6ZG97aWYoMHxjKWZvcihjPTB8RHQobCk7Oyl7aWYoIWMpYnJlYWsgZTtmb3IoYVtjPj4y''@;'; + put 'put ''XT0tOSZhW2M+PjJdLGY9MHx3MChsLGMpO2Y7KWFbZj4+Ml09LTkmYVtmPj4yXSxmPTB8UzAobCxmKTtjPTB8enQobCxjKX19d2hpbGUoMCl9ZnVuY3Rpb24gS25lKGwsYyxmKXtsfD0wLGN8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wOzA9PSgwfChmfD0wKSkmJjAhPSgwfGsxKGwp''@;'; + put 'put ''KT8odz0wLG09MTk1MDU5LGs9MTA5NTE0KTooaz0wPT0oMSZmZVtsKzI0Pj4wXSk/MTk1MDU5Ojk3MzYzLG09MD09KDB8REEobCkpLGFbNDY5ODhdPTB8c2kobCwyLDExMTQ1NSwwKSxhWzQ2OTg5XT0wfHNpKGwsMiwxMTE0NjQsMCksdz0xLG09bT8xOTUwNTk6OTczNjYpLDAhPSgwfChwPTB8''@;'; + put 'put ''dGkobCkpKSYmMzchPSgwfGZlW3A+PjBdKT8oQT0xLGI9MTAyNjA0KTooQT0wLGI9MTk1MDU5LHA9MTk1MDU5KTtkb3tpZigtMSE9KDB8TzUobCxjKSkmJi0xIT0oMHxIMihsLGMsbSkpKXtpZihtPTA9PSgwfEEpLEF8d3wwKXtpZigtMT09KDB8SDIobCxjLGspKSl7cD0tMTticmVha31pZigt''@;'; + put 'put ''MT09KDB8SDIobCxjLDEwMjU5NykpKXtwPS0xO2JyZWFrfX1pZighbSYmLTE9PSgwfEY2KGwsYyxwKSkpe3A9LTE7YnJlYWt9LTEhPSgwfEgyKGwsYyxiKSkmJi0xIT0oMHxIMihsLGMsOTczNzQpKSYmKGFbNDY5ODddPTErKDB8YVs0Njk4N10pLC0xIT0oMHxHZChsLGMsZikpKT8oYVtsPj4y''@;'; + put 'put ''XT04fGFbbD4+Ml0scD0wKTpwPS0xfWVsc2UgcD0tMX13aGlsZSgwKTtyZXR1cm4gMHxwfWZ1bmN0aW9uICRuZShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtlOmRve2lmKC0xPT0oMHxtQyhsLGMpKSlmPS0xO2Vsc2UgZm9yKE09MHxWaCgwfGRp''@;'; + put 'put ''KGwpLDApLGI9MD09KDB8TSksaz1NKzEyfDAsTT1NKzh8MCx3PTB8RHQobCk7Oyl7aWYoIXcpe2Y9MDticmVhayBlfWlmKDB8ZXJlKGwsdywoMHxhW3c+PjJdKT4+PjQsMCkmJi0xPT0oMHx2Qyh3LGMsZj1iPzA6MHxhW00+PjJdKSkpe2Y9LTE7YnJlYWsgZX1mb3IoQT0wfHcwKGwsdyksZj13''@;'; + put 'put ''O0E7KXtpZihtPUErLTQ4fDAsKDB8ZikhPSgwfChwPTB8YVsoMj09KDMmYVtBPj4yXXwwKT9BOm0pKzQwPj4yXSkpJiYwIT0oMHxlcmUobCxwLCgwfGFbdz4+Ml0pPj4+NCwwKSkpe2lmKC0xPT0oMHx2QygwfGFbKDI9PSgzJmFbQT4+Ml18MCk/QTptKSs0MD4+Ml0sYyxmPWI/MDowfGFbTT4+''@;'; + put 'put ''Ml0pKSl7Zj0tMTticmVhayBlfWY9MHxhWygyPT0oMyZhW0E+PjJdfDApP0E6bSkrNDA+PjJdfWlmKDB8ZFQobCxBKSYmLTE9PSgwfEFDKEEsYyxwPWI/MDowfGFbaz4+Ml0pKSl7Zj0tMTticmVhayBlfUE9MHxTMChsLEEpfXc9MHx6dChsLHcpfX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0''@;'; + put 'put ''aW9uIHFuZShsLGMpe3JldHVybiBsfD0wLGN8PTAsYVs0Njk4N109KDB8YVs0Njk4N10pLTEsMHwoLTE9PSgwfE81KGwsYykpPy0xOigtMT09KDB8SDIobCxjLDExMTAwOCkpKTw8MzE+PjMxKX1mdW5jdGlvbiBPNShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wO2ZvcihmPTB8YVs0Njk4N107Oyl7''@;'; + put 'put ''aWYoKDB8Zik8PTApe2Y9MDticmVha31pZigtMT09KDB8SDIobCxjLDE1MzU5NykpKXtmPS0xO2JyZWFrfWY9ZistMXwwfXJldHVybiAwfGZ9ZnVuY3Rpb24gSDIobCxjLGYpe3JldHVybiAwfEJpWzEyNyZhWzQrKDB8YVs4KygwfGFbNjQrKGx8PTApPj4yXSk+PjJdKT4+Ml1dKGN8PTAsZnw9''@;'; + put 'put ''MCl9ZnVuY3Rpb24gbUMobCxjKXtmb3IoY3w9MCxsPTB8eXMobHw9MCk7Oyl7aWYoIWwpe2w9MDticmVha31pZigwfEVHKGwpKW1DKGwsYyk7ZWxzZXtpZigtMT09KDB8S25lKGwsYywwKSkpe2w9LTE7YnJlYWt9aWYoLTE9PSgwfCRuZShsLGMpKSl7bD0tMTticmVha31pZigtMT09KDB8cW5l''@;'; + put 'put ''KGwsYykpKXtsPS0xO2JyZWFrfX1sPTB8TXMobCl9cmV0dXJuIDB8bH1mdW5jdGlvbiBlcmUobCxjLGYscCl7Znw9MCxwfD0wO3ZhciBtPTA7cmV0dXJuIDA9PSgwfGZ1bmN0aW9uIE1HKGwsYyl7Zm9yKGN8PTAsbD0wfHlzKGx8PTApOzspe2lmKCFsKXtsPTA7YnJlYWt9aWYoMD09KDB8RUco''@;'; + put 'put ''bCkpJiYwfFduKGwsYywwKSl7bD0xO2JyZWFrfWw9MHxNcyhsKX1yZXR1cm4gMHxsfShsfD0wLGN8PTApKSYmMCE9KDB8ZnVuY3Rpb24geEcobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDtlOmRve2lmKDA8cD4+PjB8KDA9PSgwfHApPygwfGFbYz4+Ml0pPj4+ND4+PjA8Zj4+PjA6MCkp''@;'; + put 'put ''Yz0wO2Vsc2UgZm9yKGM9MHxNZihsLGMpOzspe2lmKCFjKXtjPTE7YnJlYWsgZX1pZigwPHA+Pj4wfCgwPT0oMHxwKT8oMHxhW2FbYys0MD4+Ml0+PjJdKT4+PjQ+Pj4wPGY+Pj4wOjApKXtjPTA7YnJlYWsgZX1jPTB8SDMobCxjKX19d2hpbGUoMCk7cmV0dXJuIDB8Y30obCxjLGYscCkpPzA9''@;'; + put 'put ''PSgwfGZ1bmN0aW9uIG5yZShsLGMpe3JldHVybiAwfChsPTB8TWYobHw9MCxjfD0wKT8wOjA9PSgwfHcwKGwsYykpJjEpfShsLGMpKSYmMD09KDB8ZnVuY3Rpb24gcnJlKGwpe3ZhciBjPTAsZj0wLHA9MDtsPTB8aWMobHw9MCk7ZTpkb3tpZihsKWZvcihmPWwrOHwwLHA9MHxhW2Y+PjJdLGM9''@;'; + put 'put ''bCsxMnwwLGw9MHxtaVs2MyZhW3A+PjJdXShwLDAsMTI4KTs7KXtpZighbCl7bD0wO2JyZWFrIGV9aWYoKDB8YVsoMHxhW2M+PjJdKSsoYVtsKzE2Pj4yXTw8Mik+PjJdKSE9KDB8YVtsKzEyPj4yXSkpe2w9MTticmVhayBlfWw9MHxtaVs2MyZhWyhwPTB8YVtmPj4yXSk+PjJdXShwLGwsOCl9''@;'; + put 'put ''ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH0oYykpP209NTpsPTE6bT01LDU9PSgwfG0pJiYobD0wKSwwfGx9ZnVuY3Rpb24gdkMobCxjLGYpe3ZhciBwO2N8PTAsZnw9MCxwPTB8Y3IobHw9MCk7ZG97aWYoLTEhPSgwfE81KHAsYykpJiYtMSE9KDB8cFQobCxjKSkpe2lmKDA9PSgwfGdU''@;'; + put 'put ''KGwpKSYmLTE9PSgwfFZQKGwsYyxmKSkpe2w9LTE7YnJlYWt9bD0wfEgyKHAsYyw5NzMzMCl9ZWxzZSBsPS0xfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gZFQobCxjKXtmb3IoY3w9MCxsPTB8eXMobHw9MCk7Oyl7aWYoIWwpe2w9MTticmVha31pZigwPT0oMHxFRyhsKSkmJjB8VmQo''@;'; + put 'put ''bCxjLDApKXtsPTA7YnJlYWt9bD0wfE1zKGwpfXJldHVybiAwfGx9ZnVuY3Rpb24gQUMobCxjLGYpe2N8PTAsZnw9MDt2YXIgbSxwPTAsQT0wO0E9MHxhWygzPT0oMHwocD0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0scD0wfGFbKDI9PSgwfHApP2w6bCstNDh8MCkrNDA+PjJd''@;'; + put 'put ''LG09MHxjcihBKTtkb3tpZigtMSE9KDB8TzUobSxjKSkmJi0xIT0oMHxwVChBLGMpKSYmLTEhPSgwfHRyZShsLGMsMHxhWzQ2OTg4XSkpJiYtMSE9KDB8SDIobSxjLChBPTAhPSgwfFNjKDB8Y3IoQSkpKSk/MTAwMDc5OjEwMDA4NCkpJiYtMSE9KDB8cFQocCxjKSkmJi0xIT0oMHx0cmUobCxj''@;'; + put 'put ''LDB8YVs0Njk4OV0pKSl7aWYoMHxnVChsKSl7aWYoLTE9PSgwfEQyKGwsYywxKSkpe2w9LTE7YnJlYWt9fWVsc2UgaWYoLTE9PSgwfFZQKGwsYyxmKSkpe2w9LTE7YnJlYWt9bD0wfEgyKG0sYyw5NzMzMCl9ZWxzZSBsPS0xfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gcFQobCxjKXtj''@;'; + put 'put ''fD0wO3ZhciBmLG0sQSxiLHA9MCx3PTAsaz0wO3JldHVybiBiPWFlLGFlPWFlKzMyfDAsQT1iLGY9Yis4fDAscD0wfHRpKGx8PTApLG09MHxjcihsKSxwPy0xPT0oMHxGNihtLGMscCkpP2w9LTE6dz00OihsPTB8YVs0KyhrPWwrOHwwKT4+Ml0sYVsocD1BKT4+Ml09YVtrPj4yXSxhW3ArND4+''@;'; + put 'put ''Ml09bCxvbyhmLDk3MzUwLEEpLC0xPT0oMHxIMihtLGMsZikpP2w9LTE6dz00KSw0PT0oMHx3KSYmKGw9MCksYWU9YiwwfGx9ZnVuY3Rpb24gdHJlKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MDtlOmRve2lmKDAhPSgwfGYpJiYocD0wfGNyKGwpLG09MHxIbyhsLGYpLDAhPSgw''@;'; + put 'put ''fGZlW20+PjBdKSkpaWYoLTE9PSgwfEgyKHAsYywxMDc5ODQpKSlsPS0xO2Vsc2V7ZG97aWYoMHxPbyhtKSl7aWYoLTE9PSgwfEY2KHAsYyxtKSkpe2w9LTE7YnJlYWsgZX19ZWxzZXtpZighKGw9MHwkcyhtLDU4KSkpe2lmKC0xPT0oMHxqUChwLGMsbSwwKSkpe2w9LTE7YnJlYWsgZX1icmVh''@;'; + put 'put ''a31pZihmZVtsPj4wXT0wLC0xPT0oMHxqUChwLGMsbSwwKSkpe2w9LTE7YnJlYWsgZX1pZigtMT09KDB8SDIocCxjLDEwNzk4NCkpKXtsPS0xO2JyZWFrIGV9aWYoLTE9PSgwfGpQKHAsYyxsKzF8MCwwKSkpe2w9LTE7YnJlYWsgZX1mZVtsPj4wXT01OH19d2hpbGUoMCk7bD0wfWVsc2UgbD0w''@;'; + put 'put ''fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gZ1QobCl7cmV0dXJuKDB8YVsobHw9MCk+PjJdKT4+PjMmMXwwfWZ1bmN0aW9uIFZQKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2U6ZG97aWYoMiZhW2w+PjJdKXtzd2l0Y2goMHxEMihs''@;'; + put 'put ''LGMsMCkpe2Nhc2UtMTpwPS0xO2JyZWFrIGU7Y2FzZSAwOnA9MCxNPTQ7YnJlYWsgZX1wPTEsTT00fWVsc2UgcD0wLE09NH13aGlsZSgwKTtlOmRve2lmKDQ9PSgwfE0pKXttPTB8aWMobCksaz0wfGNyKGwpO3Q6ZG97aWYobSlmb3IoYj1tKzEyfDAsdz0wfG1pWzYzJmFbZj4+Ml1dKGYsMCwx''@;'; + put 'put ''MjgpOzspe2lmKCF3KWJyZWFrIHQ7ZG97aWYoMiZhW2w+PjJdKXtpZigwfChBPTB8YVs0Njk4OF0pJiYoMHxhW3crMTY+PjJdKT09KDB8YVtBKzE2Pj4yXSkpYnJlYWs7MCE9KDB8KEE9MHxhWzQ2OTg5XSkpJiYoMHxhW3crMTY+PjJdKT09KDB8YVtBKzE2Pj4yXSl8fChNPTEyKX1lbHNlIE09''@;'; + put 'put ''MTJ9d2hpbGUoMCk7aWYoMTI9PSgwfE0pJiYoTT0wLCgwfGFbKDB8YVtiPj4yXSkrKGFbKG09dysxNnwwKT4+Ml08PDIpPj4yXSkhPSgwfGFbdysxMj4+Ml0pKSl7aWYoQT1wKzF8MCxwKXtpZigtMT09KDB8SDIoayxjLDk3MzQ1KSkpe3A9LTE7YnJlYWsgZX1pZigtMT09KDB8TzUoayxjKSkp''@;'; + put 'put ''e3A9LTE7YnJlYWsgZX19ZWxzZXtpZigtMT09KDB8TzUoayxjKSkpe3A9LTE7YnJlYWsgZX1pZigtMT09KDB8SDIoayxjLDk3MzQyKSkpe3A9LTE7YnJlYWsgZX1hWzQ2OTg3XT0xKygwfGFbNDY5ODddKX1pZigtMT09KDB8RjYoayxjLDB8YVt3Kzg+PjJdKSkpe3A9LTE7YnJlYWsgZX1pZigt''@;'; + put 'put ''MT09KDB8SDIoayxjLDk3MzQ4KSkpe3A9LTE7YnJlYWsgZX1pZigtMT09KDB8RjYoayxjLDB8YVsoMHxhW2I+PjJdKSsoYVttPj4yXTw8Mik+PjJdKSkpe3A9LTE7YnJlYWsgZX1wPUF9dz0wfG1pWzYzJmFbZj4+Ml1dKGYsdyw4KX19d2hpbGUoMCk7aWYoKDB8cCk+MCl7aWYoLTE9PSgwfEgy''@;'; + put 'put ''KGssYyw5NzM0MCkpKXtwPS0xO2JyZWFrfWFbNDY5ODddPSgwfGFbNDY5ODddKS0xfWFbbD4+Ml09OHxhW2w+PjJdLHA9MH19d2hpbGUoMCk7cmV0dXJuIDB8cH1mdW5jdGlvbiBEMihsLGMsZil7dmFyIHA7cmV0dXJuIGN8PTAsZnw9MCxwPTB8dGkobHw9MCksbD0wfGNyKGwpLDB8KGw9MCE9''@;'; + put 'put ''KDB8cCkmJjAhPSgwfGZlW3A+PjBdKT8tMSE9KDB8SDIobCxjLDk3MzMzKSkmJi0xIT0oMHxGNihsLGMscCkpPzAhPSgwfGYpJiYtMT09KDB8SDIobCxjLDk3MzQwKSk/LTE6MTotMTowKX1mdW5jdGlvbiBGNihsLGMsZil7cmV0dXJuIDB8alAobHw9MCxjfD0wLGZ8PTAsMSl9ZnVuY3Rpb24g''@;'; + put 'put ''alAobCxjLGYscCl7cmV0dXJuIGZ8PTAsMHxIMihsfD0wLGN8PTAsZj0ocHw9MCk/MHxPQShmKTowfFNHKGYsMHxRbmUoZikpKX1mdW5jdGlvbiBHZChsLGMsZil7Y3w9MCxmfD0wO3ZhciBwLG09MDtyZXR1cm4ocD0wfFZoKGx8PTAsMCkpPy0xIT0oMHxaUChsLGMsMTExNDk0LDB8YVtwKzE2''@;'; + put 'put ''Pj4yXSxmKSkmJi0xIT0oMHxaUChsLGMsMTExNDgxLDB8YVtwKzg+PjJdLGYpKSYmLTEhPSgwfFpQKGwsYywxMTE0NTAsMHxhW3ArMTI+PjJdLGYpKT9tPTU6bD0tMTptPTUsNT09KDB8bSkmJihsPTApLDB8bH1mdW5jdGlvbiBaUChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFy''@;'; + put 'put ''IGssRCxNLEE9MCx3PTAsYj0wLFI9MCxHPTA7Zm9yKGs9MD09KDB8KE09KEQ9MCE9KDB8KG18PTApKSk/MDowfGVoKHAsMCkpKSxiPTB8bWlbNjMmYVtwPj4yXV0ocCwwLDEyOCksbT0wOzspe2lmKCFiKXtSPTIzO2JyZWFrfVI9MCE9KDB8KFI9MHxhWyh3PWIrMTJ8MCk+PjJdKSkmJjAhPSgw''@;'; + put 'put ''fGZlW1I+PjBdKT8xMjo3O2Rve2lmKDc9PSgwfFIpKWlmKFI9MCwwfGZlW2IrMjI+PjBdKVI9MTI7ZWxzZSBpZighayl7aWYoQT0wfG1pWzYzJmFbTT4+Ml1dKE0sYiw0KSwwfChHPTB8YVtBKzEyPj4yXSkmJjB8ZmVbRz4+MF0pe1I9MTI7YnJlYWt9MHxmZVtBKzIyPj4wXXx8KFI9MTIpfX13''@;'; + put 'put ''aGlsZSgwKTtpZigxMj09KDB8Uikpe2lmKFI9MCxBPW0rMXwwLG0pe2lmKC0xPT0oMHxIMihsLGMsOTczNDUpKSl7bT0tMTticmVha31pZigtMT09KDB8TzUobCxjKSkpe209LTE7YnJlYWt9fWVsc2V7aWYoLTE9PSgwfE81KGwsYykpKXttPS0xO2JyZWFrfWlmKC0xPT0oMHxIMihsLGMsZikp''@;'; + put 'put ''KXttPS0xO2JyZWFrfWlmKC0xPT0oMHxIMihsLGMsOTczNDIpKSl7bT0tMTticmVha31hWzQ2OTg3XT0xKygwfGFbNDY5ODddKX1pZigtMT09KDB8RjYobCxjLDB8YVtiKzg+PjJdKSkpe209LTE7YnJlYWt9aWYoLTE9PSgwfEgyKGwsYyw5NzM0OCkpKXttPS0xO2JyZWFrfWlmKC0xPT0oMHxG''@;'; + put 'put ''NihsLGMsMHxhW3c+PjJdKSkpe209LTE7YnJlYWt9bT1BfWI9MHxtaVs2MyZhW3A+PjJdXShwLGIsOCl9ZG97aWYoMjM9PSgwfFIpKXtpZigoMHxtKT4wKXtpZihhWzQ2OTg3XT0oMHxhWzQ2OTg3XSktMSwxIT0oMHxtKSl7aWYoLTE9PSgwfEgyKGwsYywxNTM1OTkpKSl7bT0tMTticmVha31p''@;'; + put 'put ''ZigtMT09KDB8TzUobCxjKSkpe209LTE7YnJlYWt9fWlmKER8KG09LTE9PSgwfEgyKGwsYyw5NzM3NykpKSl7bT1tPDwzMT4+MzE7YnJlYWt9fWVsc2UgaWYoRCl7bT0wO2JyZWFrfWVoKHAsTSksbT0wfX13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIHlDKGwsYyxmLHAsbSl7bHw9MCxm''@;'; + put 'put ''fD0wLHB8PTAsbXw9MDt2YXIgQT0wO3N3aXRjaCgzJmFbKGN8PTApPj4yXSl7Y2FzZSAwOkE9ODI7YnJlYWs7Y2FzZSAxOkE9ODM7YnJlYWs7Y2FzZSAzOmNhc2UgMjpBPTg0fXJldHVybihjPTB8QmlbMTI3JkFdKGwsYykpPyhtVChsLGMsZixwLEEsbSksYz0wKTpjPS0xLDB8Y31mdW5jdGlv''@;'; + put 'put ''biBtVChsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiLHc9MCxrPTA7Zm9yKChiPTAhPSgwfChBfD0wKSkpJiZkbFsxMjcmZl0obCxjLHApLHc9MHx5cyhsKTt3OykwfChrPTB8QmlbMTI3Jm1dKHcsYykpJiZtVCh3LGssZixwLG0sQSksdz0wfE1zKHcpO2J8fGRs''@;'; + put 'put ''WzEyNyZmXShsLGMscCl9ZnVuY3Rpb24gYXJlKCl7dmFyIGw9MCxjPTA7Zm9yKGw9MHxhWzQ2OTk0XTtsOyl6aChsKzh8MCksemgoMjQrKDB8YVs0Njk5NF0pfDApLHpoKDE2KygwfGFbNDY5OTRdKXwwKSxjPTB8T0coMHxhWzQ2OTk0XSksYVs0Njk5NF09YyxsPWN9ZnVuY3Rpb24gVEcoKXso''@;'; + put 'put ''ZnVuY3Rpb24geW8oKXshZnVuY3Rpb24gJGEobCl7bHw9MDt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wLGI9MCxrPTAsTT0wLEQ9MDtpZihmZVsoYj0wfGFbNDY5NzNdKT4+MF09MHxmZVsxOTQ4MDVdLGI+Pj4wPCgyKyhjPTB8YVs0KyhmPTB8YVsodz0wfGFbNDY5NzJdKT4+Ml0pPj4yXSl8''@;'; + put 'put ''MCk+Pj4wKXtmb3IocD1jKygyKygwfGFbNDY5NzddKSl8MCxtPWMrKDIrKDB8YVtmKzEyPj4yXSkpfDAsaz1jLEE9ZjshKHA+Pj4wPD1rPj4+MCk7KWZlWyhrPW0rLTF8MCk+PjBdPTB8ZmVbKGY9cCstMXwwKT4+MF0scD1mLG09ayxrPTB8YVs0KyhBPTB8YVt3Pj4yXSk+PjJdO2M9YisoZj1t''@;'; + put 'put ''LXB8MCl8MCxhWzQ2OTc3XT1iPTB8YVtBKzEyPj4yXSxhW0ErMTY+PjJdPWIsYz4+PjA8KGsrMnwwKT4+PjA/V3IoOTcyNzcpOihNPWwrZnwwLEQ9Yyl9ZWxzZSBNPWwsRD1iO2ZlWyhsPUQrLTF8MCk+PjBdPTY0LGFbNDY5NjRdPU0sZmVbMTk0ODA1XT0wfGZlW2w+PjBdLGFbNDY5NzNdPWx9''@;'; + put 'put ''KDB8YVs0Njk2NF0pfSkoKSxmdW5jdGlvbiBOcyhsKXt2YXIgbSxjPTAsZj0wLHA9MCxBPTAsdz0wO2ZvcihhWzQ2OTQyXT1sfD0wLG09MHxhW2wrNjQ+PjJdLHA9MDszIT0oMHxwKTspe2M9MHxhWyhBPW0rNTYrKHA8PDIpfDApPj4yXTtlOmRve2lmKDB8Yylmb3IoYz0wfG1pWzYzJmFbYz4+''@;'; + put 'put ''Ml1dKGMsMCwxMjgpOzspe2lmKCFjKWJyZWFrIGU7Zj0wfG1pWzYzJmFbKGY9MHxhW0E+PjJdKT4+Ml1dKGYsYyw4KSwzNz09KDB8ZmVbYVtjKzI0Pj4yXT4+MF0pPyhoVChsLHAsMHxhWyh3PWMrMTZ8MCk+PjJdLDB8YVt3KzQ+PjJdKSxjPWYpOmM9Zn19d2hpbGUoMCk7cD1wKzF8MH19KDB8''@;'; + put 'put ''YVs0Njk5M10pfWZ1bmN0aW9uIElHKGwsYyxmKXtsfD0wO3ZhciBtLEEscD0wO0E9YWUsYWU9YWUrMTZ8MCxtPUEsKHA9MHxhWzQ2OTkzXSl8fChmZVsxODc5ODBdPTEmKGN8PTApfCgyNTUmKGZ8PTApKTw8MSYyfC0xMiZmZVsxODc5ODBdfDgscD0wfGFbNDY5OTZdLGZlW20+PjBdPTB8ZmVb''@;'; + put 'put ''MTg3OTgwXSxmZVttKzE+PjBdPTB8ZmVbMTg3OTgxXSxmZVttKzI+PjBdPTB8ZmVbMTg3OTgyXSxmZVttKzM+PjBdPTB8ZmVbMTg3OTgzXSxwPTB8b2MobCxtLHApLGFbNDY5OTNdPXApLGFbNDY5NDJdPXAsYVs0Njk5NF09MHxSRygwfGFbNDY5OTRdLHApLGUwKDAsbCksYWU9QX1mdW5jdGlv''@;'; + put 'put ''biBERygpe3ZhciBwLGw9MCxjPTAsZj0wLG09MCxBPTA7Zm9yKHlUKDIpLHA9MHxmZVs5ODEyNl0sQT0wLGw9MjQrKGY9MHxhWzQ2OTk0XSl8MDtjPTB8YVtsPj4yXTspQT1sPTI2Nz09KDB8YVtjPj4yXSkmJigwfGZlWyhtPTB8YVtjKzQ+PjJdKT4+MF0pPT1wPDwyND4+MjQmJjA9PSgwfGpp''@;'; + put 'put ''KG0sOTgxMjYpKT8wfGFbYys4Pj4yXTpBLGw9YysxMnwwO2w9ZisxNnwwO2U6Zm9yKDtmPTB8YVtsPj4yXSxsPWYrMTJ8MCwwfGFbbD4+Ml07KWlmKGM9Zis0fDAsMjYyPT0oMHxhW2Y+PjJdKSlmb3IoZj0wfGFbYz4+Ml0sYz0wfER0KGYpOzspe2lmKCFjKWNvbnRpbnVlIGU7YlQobT0wfFdu''@;'; + put 'put ''KDB8YVthWzQ2OTk0XT4+Ml0sYywwKSwwLDB8YVtsPj4yXSxBKSxjPTB8enQoZixjKX1lbHNlIGZvcig7Oyl7aWYoIShjPTB8YVtjPj4yXSkpY29udGludWUgZTtiVCgwfGFbYys0Pj4yXSwwfGFbYys4Pj4yXSwwfGFbbD4+Ml0sQSksYz1jKzEyfDB9emgoOCsoMHxhWzQ2OTk0XSl8MCksemgo''@;'; + put 'put ''MTYrKDB8YVs0Njk5NF0pfDApLHpoKDI0KygwfGFbNDY5OTRdKXwwKSxhWzQrKDB8YVs0Njk5NF0pPj4yXT0wfWZ1bmN0aW9uIFBtZSgpe3ZhciBsPTA7Zm9yKHlUKDEpLGw9OCsoMHxhWzQ2OTk0XSl8MDtsPTB8YVtsPj4yXTspVVAoMHxhW2wrND4+Ml0pLGw9bCsxMnwwO3poKDgrKDB8YVs0''@;'; + put 'put ''Njk5NF0pfDApLHpoKDI0KygwfGFbNDY5OTRdKXwwKSx6aCgxNisoMHxhWzQ2OTk0XSl8MCksYVs0KygwfGFbNDY5OTRdKT4+Ml09MH1mdW5jdGlvbiB6Mygpe3ZhciBsPTAsYz0wOyhjPTB8YVs4KyhsPTB8YVs0Njk5NF0pPj4yXSk/KGM9MHxmdW5jdGlvbiBiQyhsKXtyZXR1cm4gMHx3Qygy''@;'; + put 'put ''NjUsbHw9MCwwKX0oYyksYVsxMisobD0wfGFbNDY5OTRdKT4+Ml09MCxhW2wrOD4+Ml09MCk6KChjPTB8YVtsKzQ+PjJdKT8oYz0wfGZ1bmN0aW9uIHE0KGwpe3JldHVybiAwfHdDKDI2MixsfD0wLDApfShjKSxsPTB8YVs0Njk5NF0pOmM9MCxhW2wrND4+Ml09MCksMHxjJiZBVChsKzE2fDAs''@;'; + put 'put ''Yyl9ZnVuY3Rpb24gelAobCxjLGYpe2x8PTAsY3w9MCwoZnw9MCkmJihjPTB8ZnVuY3Rpb24gWVAobCxjKXtjfD0wO3ZhciBwLG0sQSx3LGY9MDtyZXR1cm4gdz1hZSxhZT1hZSsxMDQwfDAsbT13LEE9dys4fDAscD0oZj0yKyhmPTB8VW8obHw9MCkpKygwfFVvKGMpKXwwKT4+PjA8MTAyNT9B''@;'; + put 'put ''OjB8QjAoZiksYVttPj4yXT1sLGFbbSs0Pj4yXT1jLG9vKHAsOTgxNjMsbSksZj0wfHIwKDB8YVs0Njk5M10scCksZTAoMHxhWzQ2OTkzXSxsKSxlMCgwfGFbNDY5OTNdLGMpLCgwfHApIT0oMHxBKSYmRnQocCksYWU9dywwfGZ9KGMsZikpLGY9MHxmdW5jdGlvbiBzcmUobCxjKXtyZXR1cm4g''@;'; + put 'put ''MHx3QygyNTksbHw9MCxjfD0wKX0oMHxHcigwfGFbYVs0Njk5NF0+PjJdLGwsMSksYyksQVQoOCsoMHxhWzQ2OTk0XSl8MCxmKSxlMCgwfGFbNDY5OTNdLGwpfWZ1bmN0aW9uIHZUKGwsYyl7bHw9MDt2YXIgbSxmPTAscD0wO2ZvcigwfChjfD0wKSYmQkcoKSxjPTI0KygwfGFbNDY5OTRdKXww''@;'; + put 'put ''O2M9MHxhW2M+PjJdOykwfGFbYys4Pj4yXXx8QkcoKSxjPWMrMTJ8MDtmb3IoeVQobT0yNjA9PSgwfGwpPzI6MjU5PT0oMHxsKSYxKSxjPTI0KyhsPTB8YVs0Njk5NF0pfDA7cD0wfGFbYz4+Ml07KXtkb3tpZigyNjchPSgwfGFbcD4+Ml0pKXtpZighKDAhPSgwfGZlWzIxKyhjPTB8YVtwKzQ+''@;'; + put 'put ''PjJdKT4+MF0pJigwfChmPTB8YVtsPj4yXSkpPT0oMHxhWzQ2OTkzXSkpJiYoYz0wfHNpKGYsbSwwfGFbYys4Pj4yXSwwfGFbcCs4Pj4yXSksKDB8YVsobD0wfGFbNDY5OTRdKT4+Ml0pIT0oMHxhWzQ2OTkzXSkpKWJyZWFrO2ZlW2MrMjI+PjBdPTF9fXdoaWxlKDApO2M9cCsxMnwwfXpoKGwr''@;'; + put 'put ''MjR8MCl9ZnVuY3Rpb24gTEcobCxjKXtjPTB8ZnVuY3Rpb24gV1AobCxjKXtyZXR1cm4gMHx3QygyNjcsbHw9MCxjfD0wKX0obHw9MCxjfD0wKSxBVCgyNCsoMHxhWzQ2OTk0XSl8MCxjKX1mdW5jdGlvbiBfbChsKXt2YXIgYzthWzQ2OTk0XT0wfFJHKGM9MHxhWzQ2OTk0XSwwfGRzKDB8YVtj''@;'; + put 'put ''Pj4yXSxsfD0wLDEpKSxlMCgwfGFbNDY5OTNdLGwpfWZ1bmN0aW9uIGxyZSgpe3ZhciBjLGw9MDtjPTB8YVsobD0wfGFbNDY5OTRdKT4+Ml0sbD0wfE9HKGwpLGFbNDY5OTRdPWwsYVtsKzQ+PjJdPWN9ZnVuY3Rpb24gR1AobCxjKXtjfD0wO3ZhciBwLG0sQSxmPTA7cmV0dXJuIEE9YWUsYWU9''@;'; + put 'put ''YWUrMTAyNHwwLG09QSxpZChmPShmPTErKGY9MHxVbyhsfD0wKSkrKDB8VW8oYykpfDApPj4+MDwxMDI1P206MHxCMChmKSxsKSxzOShmLGMpLHA9MHxyMCgwfGFbNDY5OTNdLGYpLGUwKDB8YVs0Njk5M10sbCksZTAoMHxhWzQ2OTkzXSxjKSwoMHxmKSE9KDB8bSkmJkZ0KGYpLGFlPUEsMHxw''@;'; + put 'put ''fWZ1bmN0aW9uIE9HKGwpe3ZhciBjO3JldHVybiBjPTB8YVszMisoMHxhWzQ2OTk0XSk+PjJdLHh0KDB8YVs0Njk5M10sbHw9MCksMHxjfWZ1bmN0aW9uIFJHKGwsYyl7dmFyIGY7cmV0dXJuIGx8PTAsY3w9MCxmPTB8TXQoMHxhWzQ2OTkzXSwzNiksYVtmKzMyPj4yXT1sLGFbZj4+Ml09Yyww''@;'; + put 'put ''fGZ9ZnVuY3Rpb24gQVQobCxjKXt2YXIgZixwO2N8PTAsMHwocD0wfGFbKGY9NCsobHw9MCl8MCk+PjJdKSYmKGFbcCsxMj4+Ml09YyksYVtmPj4yXT1jLDB8YVtsPj4yXXx8KGFbbD4+Ml09Yyl9ZnVuY3Rpb24gd0MobCxjLGYpe3ZhciBwO3JldHVybiBsfD0wLGN8PTAsZnw9MCxwPTB8TXQo''@;'; + put 'put ''MHxhWzQ2OTkzXSwxNiksYVtwPj4yXT1sLGFbcCs0Pj4yXT1jLGFbcCs4Pj4yXT1mLDB8cH1mdW5jdGlvbiBCRygpe3ZhciBsO2w9YWUsYWU9YWUrMTZ8MCwkcigwLDk4MTMwLGwpLGFlPWx9ZnVuY3Rpb24geVQobCl7dmFyIG0sYz0wLGY9MCxwPTAsQT0wO2ZvcihtPTI9PSgwfChsfD0wKSks''@;'; + put 'put ''Yz0yNCsoMHxhWzQ2OTk0XSl8MDtjPTB8YVtjPj4yXTspcD0wfGFbKGY9Yys0fDApPj4yXSxtJiYoMHxmZVtwPj4wXSk9PSgwfGZlWzk4MTI2XSkmJiEoMHxqaShwLDk4MTI2KSl8fChBPTB8c2koMHxhW2FbNDY5OTRdPj4yXSxsLHAsMCksYVtmPj4yXT1BLEF8fChhW2Y+PjJdPTB8c2koMHxh''@;'; + put 'put ''W2FbNDY5OTRdPj4yXSxsLHAsMTk1MDU5KSksYVtjPj4yXT0yNjYsZTAoMHxhWzQ2OTkzXSxwKSksYz1jKzEyfDB9ZnVuY3Rpb24gemgobCl7d1QoMHxhWyhsfD0wKT4+Ml0pLGFbbCs0Pj4yXT0wLGFbbD4+Ml09MH1mdW5jdGlvbiB3VChsKXtsfD0wO2Zvcih2YXIgYz0wO2w7KXtzd2l0Y2go''@;'; + put 'put ''Yz0wfGFbbCsxMj4+Ml0sMHxhW2w+PjJdKXtjYXNlIDI2NTp3VCgwfGFbbCs0Pj4yXSk7YnJlYWs7Y2FzZSAyNjY6Y2FzZSAyNjc6ZTAoMHxhWzQ2OTkzXSwwfGFbbCs4Pj4yXSl9eHQoMHxhWzQ2OTkzXSxsKSxsPWN9fWZ1bmN0aW9uIFVQKGwpe2x8PTA7dmFyIGM9MCxmPTA7Zm9yKGM9MjQr''@;'; + put 'put ''KDB8YVs0Njk5NF0pfDA7Yz0wfGFbYz4+Ml07KTI2Nj09KDB8YVtjPj4yXSkmJjB8KGY9MHxhW2MrND4+Ml0pJiZWbChsLGYsMHxhW2MrOD4+Ml0pLGM9YysxMnwwfWZ1bmN0aW9uIGJUKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBtPTA7bT00KyhmfD0wKXwwO2U6ZG97aWYoMjYyPT0o''@;'; + put 'put ''MHxhW2Y+PjJdKSlmb3IoZj0wfGFbbT4+Ml0sbT0wfER0KGYpOzspe2lmKCFtKWJyZWFrIGU7ZXAobCxjLDB8V24oMHxhW2FbNDY5OTRdPj4yXSxtLDApLDAscCksbT0wfHp0KGYsbSl9ZWxzZSBmb3IoOzspe2lmKCEobT0wfGFbbT4+Ml0pKWJyZWFrIGU7ZXAobCxjLGY9MHxXbigwfGFbYVs0''@;'; + put 'put ''Njk5NF0+PjJdLDB8YVttKzQ+PjJdLDApLDB8YVttKzg+PjJdLHApLG09bSsxMnwwfX13aGlsZSgwKX1mdW5jdGlvbiBlcChsLGMsZixwLG0pe2N8PTAscHw9MDt2YXIgQT0wOzB8KGY9MHxLYSgwfGFbYVs0Njk5NF0+PjJdLGx8PTAsZnw9MCxtfD0wLDEpKSYmKFBHKGYsMTExNDU1LChsPSgw''@;'; + put 'put ''fChtPTB8YVsoMj09KDB8KEE9MyZhW2Y+PjJdKSk/ZjpmKy00OHwwKSs0MD4+Ml0pKT09KDB8bCk/KDB8YVsoMz09KDB8QSk/ZjpmKzQ4fDApKzQwPj4yXSkhPSgwfG0pOjApP3A6YyksUEcoZiwxMTE0NjQsbD9jOnApLFVQKGYpKX1mdW5jdGlvbiBQRyhsLGMsZil7bHw9MCxjfD0wO3ZhciBw''@;'; + put 'put ''PTA7MHwoZnw9MCkmJigocD0wfHNpKDB8YVthWzQ2OTk0XT4+Ml0sMixjLDApKXx8KHA9MHxzaSgwfGFbYVs0Njk5NF0+PjJdLDIsYywxOTUwNTkpKSxWbChsLHAsZikpfWZ1bmN0aW9uIFFQKGwsYyl7cmV0dXJuIDB8ZnVuY3Rpb24gRm1lKGwsYyxmKXtyZXR1cm4gbHw9MCxmfD0wLGFbNDY5''@;'; + put 'put ''NjJdPWN8PTAsYVs0Njk5M109bCxhWzQ2OTQyXT0wLGFbNDY5OTZdPWw9MHxmP2Y6MTg2MDAsZnVuY3Rpb24gcDAobCxjKXtjfD0wLGFbNDY5NjddPWx8PTAsYVs0Njk2OF09YyxhWzQ2OTY5XT0wfShsLGMpLGZ1bmN0aW9uIG9yZSgpe3ZhciBHLHBlLGw9MCxjPTAsZj0wLHA9MCxtPTAsQT0w''@;'; + put 'put ''LHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEs9MDtwZT1hZSxhZT1hZSsxMjAwfDAsRz1wZSs4MDB8MCxmPXBlLGFbNDY5OTBdPTAsYVs0Njk5MV09LTIsYz1HLG09MjAwLGs9ZixEPTAsUj0wLE09RztlOmZvcig7Oyl7aWYocnRbTT4+MV09RCwoYysobTw8MSkrLTJ8MCk+Pj4wPk0+Pj4wKXc9''@;'; + put 'put ''bTtlbHNle2lmKGw9MSsoYj1NLWM+PjEpfDAsbT4+PjA+OTk5OSl7Sz03NTticmVha31zd2l0Y2goKHA9MHxCMCg2Kih3PSh3PW08PDEpPj4+MDwxZTQ/dzoxZTQpfDMpKT8oZ28oMHxwLDB8YyxsPDwxfDApLGdvKDB8KG09cCsodz4+PjE8PDIpfDApLDB8ayxsPDwyfDApLCgwfGMpPT0oMHxH''@;'; + put 'put ''KT8obD0wLGM9cCk6KEZ0KGMpLGw9MCxjPXApKToobD00LG09aykscD1jKyhiPDwxKXwwLDE1JigoQT0wPT0oMHxsKSk/KGMrKHc8PDEpKy0yfDApPj4+MD5wPj4+MD8wOjk6bCkpe2Nhc2UgOTpsPTEsSz03NjticmVhayBlO2Nhc2UgNDpLPTc1O2JyZWFrIGU7Y2FzZSAwOmY9QT9tKyhiPDwy''@;'; + put 'put ''KXwwOmYsaz1tLE09QT9wOk07YnJlYWs7ZGVmYXVsdDpsPTA7YnJlYWsgZX19aWYoNj09KDB8RCkpe2w9MCxLPTc2O2JyZWFrfUE9KGw9MHxmZVs5NzM4MStEPj4wXSk8PDI0Pj4yNDtkb3tpZihsPDwyND4+MjQhPS0xOCl7aWYoLTI9PSgwfChwPTB8YVs0Njk5MV0pKSYmKHA9MHxRbCgpLGFb''@;'; + put 'put ''NDY5OTFdPXApLCgwfHApPj0xP209cD4+PjA8MjY5PzB8SnRbOTc0NjErcD4+MF06MjooYVs0Njk5MV09MCxtPTApLChwPW0rQXwwKT4+PjA8PTU5JiYoMHxtKT09KDB8SnRbOTc3MzArcD4+MF0pKXtpZihsPShEPTB8ZmVbOTc3OTArcD4+MF0pPDwyND4+MjQsRDw8MjQ+PjI0PDEpe3A9MC1s''@;'; + put 'put ''fDAsSz0yMzticmVha31hWzQ2OTkxXT0tMixhWyhmPWYrNHwwKT4+Ml09YVs0Njk5Ml0sQT0wPT0oMHxSKT8wOlIrLTF8MCxwPU07YnJlYWt9Sz0yMn1lbHNlIEs9MjJ9d2hpbGUoMCk7aWYoMjI9PSgwfEspKWlmKEs9MCxwPTI1NSYoRD0wfGZlWzk3ODUwK0Q+PjBdKSxEPDwyND4+MjQpSz0y''@;'; + put 'put ''MztlbHNle3A9MHxhWzQ2OTkxXTt0OmRve3N3aXRjaCgwfFIpe2Nhc2UgMDphWzQ2OTkwXT0xKygwfGFbNDY5OTBdKSxZbygxNDM3NjEpLHA9TTticmVhaztjYXNlIDM6aWYoKDB8cCk8MSl7aWYocCl7cD1NO2JyZWFrIHR9bD0xLEs9NzY7YnJlYWsgZX1hWzQ2OTkxXT0tMixwPU07YnJlYWsg''@;'; + put 'put ''dDtkZWZhdWx0OnA9TX19d2hpbGUoMCk7Zm9yKDtsPDwyND4+MjQhPTE4Oyl7aWYoKDB8cCk9PSgwfGMpKXtsPTEsSz03NjticmVhayBlfWY9ZistNHwwLHA9bD1wKy0yfDAsbD0wfGZlWzk3MzgxKygwfHJ0W2w+PjFdKT4+MF19YVsoZj1mKzR8MCk+PjJdPWFbNDY5OTJdLGw9MSxBPTN9ZG97''@;'; + put 'put ''aWYoMjM9PSgwfEspKXtLPTAsbD0wfGFbZisoMS0obT0wfEp0Wzk3OTMwK3A+PjBdKTw8Mik+PjJdO3Q6ZG97c3dpdGNoKDB8cCl7Y2FzZSAyOmFyZSgpLFRHKCk7YnJlYWs7Y2FzZSAzOjB8YVs0Njk5M10mJihhcmUoKSxURygpLEMxKDB8YVs0Njk5M10pLGFbNDY5NDJdPTAsYVs0Njk5M109''@;'; + put 'put ''MCk7YnJlYWs7Y2FzZSA2OklHKDB8YVtmPj4yXSwwfGFbZistND4+Ml0sMHxhW2YrLTg+PjJdKTticmVhaztjYXNlIDc6Y2FzZSA1MzpjYXNlIDU5OmNhc2UgNjA6Y2FzZSA2MTpsPTB8YVtmPj4yXTticmVhaztjYXNlIDg6Y2FzZSAxMDpjYXNlIDExOmNhc2UgMjc6Y2FzZSAzOTpjYXNlIDU0''@;'; + put 'put ''OmNhc2UgNTU6bD0wO2JyZWFrO2Nhc2UgOTpjYXNlIDEyOmNhc2UgMjY6bD0xO2JyZWFrO2Nhc2UgMjE6aWYoMHxhW2YrLTQ+PjJdKXtERygpO2JyZWFrIHR9UG1lKCk7YnJlYWsgdDtjYXNlIDI0OmNhc2UgMjU6ejMoKTticmVhaztjYXNlIDMwOnpQKDB8YVtmPj4yXSwwLDApO2JyZWFrO2Nh''@;'; + put 'put ''c2UgMzE6elAoMHxhW2YrLTg+PjJdLDB8YVtmPj4yXSwwKTticmVhaztjYXNlIDMyOnpQKDB8YVtmKy0xNj4+Ml0sMHxhW2YrLTg+PjJdLDB8YVtmPj4yXSk7YnJlYWs7Y2FzZSAzMzp2VCgwfGFbZistOD4+Ml0sMHxhW2YrLTQ+PjJdKTticmVhaztjYXNlIDM0OnZUKDI1OCwwKTticmVhaztj''@;'; + put 'put ''YXNlIDM1Omw9MjU4O2JyZWFrO2Nhc2UgMzY6bD0yNTk7YnJlYWs7Y2FzZSAzNzpsPTI2MDticmVhaztjYXNlIDM4Omw9MHxhW2YrLTQ+PjJdO2JyZWFrO2Nhc2UgNDg6TEcoMHxhW2YrLTg+PjJdLDB8YVtmPj4yXSk7YnJlYWs7Y2FzZSA0OTpMRygwfGFbZj4+Ml0sMCk7YnJlYWs7Y2FzZSA1''@;'; + put 'put ''MTpfbCgwfGFbZj4+Ml0pO2JyZWFrO2Nhc2UgNTI6bHJlKCk7YnJlYWs7Y2FzZSA2MjpsPTB8R1AoMHxhW2YrLTg+PjJdLDB8YVtmPj4yXSl9fXdoaWxlKDApO2lmKEQ9ZisoKG09MC1tfDApPDwyKXwwLG09TSsobTw8MSl8MCxmPUQrNHwwLGFbRCs0Pj4yXT1sLChwPShEPTB8cnRbbT4+MV0p''@;'; + put 'put ''KygwfGZlWzk4MDU2KyhsPSgwfEp0Wzk3OTkzK3A+PjBdKS0yNHwwKT4+MF0pfDApPj4+MDw2MCYmKDB8SnRbOTc3MzArcD4+MF0pPT0oMHxEKSl7bD0wfGZlWzk3NzkwK3A+PjBdLEE9UixwPW07YnJlYWt9bD0wfGZlWzk4MDkxK2w+PjBdLEE9UixwPW19fXdoaWxlKDApO209dyxEPWwsUj1B''@;'; + put 'put ''LE09cCsyfDB9NzU9PSgwfEspJiYoWW8oMTQwNTU4KSxsPTIsSz03NiksNzY9PSgwfEspJiYoMHxjKSE9KDB8RykmJkZ0KGMpLGFlPXBlfSgpLChsPTB8YVs0Njk0Ml0pfHwoZnVuY3Rpb24gVnMoKXt2YXIgbD0wO1ppKGw9KGw9MHxhWzQ2OTcyXSk/MHxhW2w+PjJdOjApfSgpLGw9MHxhWzQ2''@;'; + put 'put ''OTQyXSksMHxsfSgwLGx8PTAsY3w9MCl9ZnVuY3Rpb24gdXJlKGwpe3ZhciBBLGM9MCxmPTAscD0wLG09MCx3PTA7Zm9yKEE9YWUsYWU9YWUrMTEyfDAsZj1BLG09QSs0fDAsKGM9MHxhWzI0KyhsfD0wKT4+Ml0pPyhhW2Y+PjJdPWMrMSxvbyhtLDk4MjI1LGYpKTpmZVttPj4wXT0wLGM9MTEr''@;'; + put 'put ''KHc9MSsoYz0wfFVvKGY9MHwoZj0wfGFbbCsyMD4+Ml0pP2Y6OTgyMjkpKSsodz0wfFVvKG0pKSsoMHxVbygwfGFbKHA9bCs1MnwwKT4+Ml0pKXwwKXwwLCgwfGFbNDY5OTddKT4+PjA8KHcrMXwwKT4+PjA/KGFbNDY5OTddPWMsYz0wfFVhKDB8YVs0Njk5OF0sYyksYVs0Njk5OF09Yyk6Yz0w''@;'; + put 'put ''fGFbNDY5OThdLGlkKGMsZiksczkoMHxhWzQ2OTk4XSxtKSxjPShjPTB8YVs0Njk5OF0pKygwfFVvKGMpKXwwLGZlW2M+PjBdPTQ2LGZlW2MrMT4+MF09MCxjPTB8cmEoMHxhW3A+PjJdKSxwPTB8YVs0Njk5OF07Zj0wfGskKGMsNTgpOylzOShwLGYrMXwwKSxtPSh3PTB8YVs0Njk5OF0pKygw''@;'; + put 'put ''fFVvKHcpKXwwLGZlW20+PjBdPTQ2LGZlW20rMT4+MF09MCxmZVtmPj4wXT0wLHA9dztzOShwLGMpLEZ0KGMpLGFbbCszMj4+Ml09YVs0Njk5OF0sYWU9QX1mdW5jdGlvbiBSNShsLGMsZil7bHw9MDt2YXIgQSx3LHA9MCxtPTA7cmV0dXJuIHc9YWUsYWU9YWUrMTZ8MCxBPXcrOHwwLG09dyww''@;'; + put 'put ''IT0oMHwoY3w9MCkpJjAhPSgwfChmfD0wKSk/KDEwMjQmYVtsKzE1Mj4+Ml18MCYmKEdzWzYzJmFbMTYrKDB8YVtsKzEyPj4yXSk+PjJdXSg5ODIwNyxtKSxYdSgxKSksKDB8ZnVuY3Rpb24gSEcobCxjLGYpe2N8PTAsZnw9MDt2YXIgUixwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0w''@;'; + put 'put ''O1I9YWUsYWU9YWUrMTZ8MCxEPVIscD0wfGFbMTA0KygwfGFbKGx8PTApPj4yXSk+PjJdO2Rve2lmKHApZj0wfG1pWzYzJnBdKGwsYyxmKTtlbHNle2lmKCEoQT0wfGFbKGI9bCs0MHwwKT4+Ml0pKXtmPTB8Q3UoYywxLGYsMHxhW2wrMzY+PjJdKTticmVha31wPWwrNDR8MCxtPTB8YVsodz1s''@;'; + put 'put ''KzQ4fDApPj4yXTtkb3tpZigoKDB8YVtwPj4yXSktMS1tfDApPj4+MDxmPj4+MCl7aWYoYVtwPj4yXT1tPWYrNDA5NittJi00MDk2LHA9MHxVYShBLG0pLGFbYj4+Ml09cCxwKXtrPXAsTT0wfGFbdz4+Ml07YnJlYWt9R3NbNjMmYVsxNisoMHxhW2wrMTI+PjJdKT4+Ml1dKDk4MjY0LEQpLFh1''@;'; + put 'put ''KDEpfWVsc2Ugaz1BLE09bX13aGlsZSgwKTtnbyhrK018MCwwfGMsMHxmKSxhW3c+PjJdPUQ9KDB8YVt3Pj4yXSkrZnwwLGZlWygwfGFbYj4+Ml0pK0Q+PjBdPTB9fXdoaWxlKDApO3JldHVybiBhZT1SLDB8Zn0obCxjLGYpKT09KDB8Zik/cD1mOihtPTB8YVsxNisoMHxhW2wrMTI+PjJdKT4+''@;'; + put 'put ''Ml0sYVtBPj4yXT1mLEdzWzYzJm1dKDk4MjM5LEEpLFh1KDEpKSk6cD0wLGFlPXcsMHxwfWZ1bmN0aW9uIEVuKGwsYyl7dmFyIGY7cmV0dXJuIDB8KChjPSgwfFI1KGx8PTAsY3w9MCxmPTB8VW8oYykpKT09KDB8ZikpPzE6LTEpfWZ1bmN0aW9uIEpQKGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9''@;'; + put 'put ''MCxmPWFlLGFlPWFlKzE2fDAsZmVbKHA9Zik+PjBdPWN8PTAsbD0xPT0oMHxSNShsLHAsMSkpLGFlPWYsMHwobD9jOi0xKX1mdW5jdGlvbiBYUChsKXt2YXIgYztyZXR1cm4gMHwoMCE9KDB8KGM9MHxhWzM2KyhsfD0wKT4+Ml0pKSYmMD09KDB8ZmVbbCsxNDQ+PjBdKSYmMD09KDB8YVsxMDQr''@;'; + put 'put ''KDB8YVtsPj4yXSk+PjJdKT8wfEFMKGMpOjApfWZ1bmN0aW9uIGNyZShsKXt2YXIgZixwLGM9MDtwPWFlLGFlPWFlKzE2fDAsZj0wfGFbNzYrKGx8PTApPj4yXSwxMDI0JmFbbCsxNTI+PjJdfDAmJihHc1s2MyZhWzE2KygwfGFbbCsxMj4+Ml0pPj4yXV0oOTgyOTEscCksWHUoMSkpLDAhPSgw''@;'; + put 'put ''fGYpJiYwIT0oMHwoYz0wfGFbZis4Pj4yXSkpP0NvWzEyNyZjXShsKTooWFAobCksZnVuY3Rpb24gS1AobCl7dmFyIGMsZj0wLHA9MDswfGFbKGM9MzIrKGx8PTApfDApPj4yXSYmKDB8KHA9MHxhWyhmPWwrMzZ8MCk+PjJdKSkhPSgwfGFbMTU2NzldKSYmMD09KDB8ZmVbbCsxNDQ+PjBdKSYm''@;'; + put 'put ''KDB8cCYmKGV3KHApLGFbZj4+Ml09MCksYVtjPj4yXT0wKX0obCkpLGFlPXB9ZnVuY3Rpb24gT3IobCxjLGYpe2x8PTAsY3w9MDt2YXIgQSx3LGIscD0wLG09MDtiPWFlLGFlPWFlKzEwNTZ8MCxtPWIsdz1iKzI0fDAsYVsoQT1iKzh8MCk+PjJdPWZ8PTAsKDB8KHA9MHxmTCh3LDEwMjQsYyxB''@;'; + put 'put ''KSkpPj0wPygoMHxwKT4xMDIzPyhwPTB8UW4ocCsxfDApLGFbQT4+Ml09ZixtPXAscD0wfF9qKHAsYyxBKSk6bT13LFI1KGwsbSxwKSwoMHxtKSE9KDB8dykmJkZ0KG0pKTooYVttPj4yXT0wfFhrKDB8YVs0NzY0M10pLCRyKDEsOTgzMDgsbSkpLGFlPWJ9ZnVuY3Rpb24ganMobCxjKXt2YXIg''@;'; + put 'put ''ZixwO2Y9YWUsYWU9YWUrMTZ8MCxSNShsfD0wLDB8JFAocD1mLGM9K2MpLDB8YVtwPj4yXSksYWU9Zn1mdW5jdGlvbiAkUChsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7aWYoKGM9K2MpPC0xZTE1KXA9OTgzMjIsZj0xOTtlbHNlIGlmKGM+MWUxNSlwPTk4''@;'; + put 'put ''MzIzLGY9MTg7ZWxzZSBpZihwPX5+KCgoYyo9MWU0KTwwPy0uNTouNSkrYykpe2ZvcihrPTQsdz0wLGY9MTk0ODI2LHA9KE09KDB8cCk8MCk/MC1wfDA6cDswIT0oMHxwKXwoMHxrKT4wOyliPSgwfHApLzEwfDAsQT1mKy0xfDAsMD09KDB8KG09KDB8cCklMTB8MCkpJnc8PDI0Pj4yND09MD9w''@;'; + put 'put ''PTA6KGZlW0E+PjBdPTQ4fG0scD0xLGY9QSksMT09KDB8aykmJihwPDwyND4+MjQmJihmZVsoZj1mKy0xfDApPj4wXT00NikscD0xKSxrPWsrLTF8MCx3PXAscD1iO00mJihmZVsoZj1mKy0xfDApPj4wXT00NSkscD1mLGY9MTk0ODI2LWZ8MH1lbHNlIHA9MTM4Mzk0LGY9MTtyZXR1cm4gYVts''@;'; + put 'put ''Pj4yXT1mLDB8cH1mdW5jdGlvbiBuaChsLGMpe3ZhciBmLHA7Zj1hZSxhZT1hZSsxNnwwLFI1KGx8PTAsMHwkUChwPWYsK19bKGN8PTApPj4zXSksMHxhW3A+PjJdKSxSNShsLDEwMjYwNCwxKSxSNShsLGM9MHwkUChwLCtfW2MrOD4+M10pLDB8YVtwPj4yXSksYWU9Zn1mdW5jdGlvbiBHMyhs''@;'; + put 'put ''LGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIG0sQSxwPTAsdz0wO2ZvcihBPWFlLGFlPWFlKzE2fDAsbT1BLHA9MDthW20+PjJdPWFbKHc9YysocDw8NCl8MCk+PjJdLGFbbSs0Pj4yXT1hW3crND4+Ml0sYVttKzg+PjJdPWFbdys4Pj4yXSxhW20rMTI+PjJdPWFbdysxMj4+Ml0sbmgobCxtKSwh''@;'; + put 'put ''KCgwfChwPXArMXwwKSk+PSgwfGYpKTspUjUobCwxMDI2MDQsMSk7YWU9QX1mdW5jdGlvbiBDVChsLGMpe2N8PTA7dmFyIGY9MCxwPTA7cmV0dXJuKGY9MHxhWyhwPTE2MCsobHw9MCl8MCk+PjJdKT8ocD0wfGFbNDdlM10pJiYoKGY9MHxhW3ArND4+Ml0pfHwoZj0wfHZyKDYzMiksYVs0Kygw''@;'; + put 'put ''fGFbNDdlM10pPj4yXT1mKSk6KGY9MHx2cig2MzIpLGFbcD4+Ml09ZixhW2wrMTY0Pj4yXT1mKSxhWzQ3ZTNdPWYsYVtmKzUyPj4yXT1jLGFbZj4+Ml09bCwwIT0oMHxSQShsLDMsYykpfDB9ZnVuY3Rpb24gakcobCl7dmFyIGM7cmV0dXJuIGFbMTY0KyhsfD0wKT4+Ml09Yz0wfGFbbCsxNjA+''@;'; + put 'put ''PjJdLDB8Y31mdW5jdGlvbiBIbWUobCl7dmFyIGMsZixwPTA7cmV0dXJuIDB8KGY9MHxhWzQrKGM9MHxhWyhsPTE2NCsobHw9MCl8MCk+PjJdKT4+Ml0pJiYwPT0oMHxhWyhwPWYrNTJ8MCk+PjJdKSYmKGFbcD4+Ml09YVtjKzUyPj4yXSksYVtsPj4yXT1mLDB8Zn1mdW5jdGlvbiBndShsLGMs''@;'; + put 'put ''Zil7Znw9MDt2YXIgcCxtPTA7bT0xMCsoY3w9MCl8MCwoMHxhWyhwPTgrKGx8PTApfDApPj4yXSk+KDB8Yyk/bD0wfGFbbD4+Ml06KGFbcD4+Ml09bSxtPTB8VjAoMHxhW2w+PjJdLG08PDIpLGFbbD4+Ml09bSxsPW0pLGFbbCsoYzw8Mik+PjJdPWZ9ZnVuY3Rpb24gaHJlKGwpe3ZhciBjOzB8''@;'; + put 'put ''KGM9MHxhWyhsfD0wKT4+Ml0pJiZGdChjKSxhW2w+PjJdPTAsYVtsKzg+PjJdPTAsYVtsKzQ+PjJdPTB9ZnVuY3Rpb24gcVAobCl7dmFyIGYsYz0wLHA9MDtmb3IoYz0wfGFbKGY9MTYwKyhsfD0wKXwwKT4+Ml07YzspcD0wfGFbYys0Pj4yXSxocmUoYys2MDR8MCksaHJlKGMrNTkyfDApLEZ0''@;'; + put 'put ''KDB8YVtjKzU4ND4+Ml0pLEZ0KDB8YVtjKzU4OD4+Ml0pLEZ0KGMpLGM9cDthWzQ3ZTNdPTAsYVs0Njk5OV09MCxhW2wrMTkyPj4yXT0wLGFbbCsxNjQ+PjJdPTAsYVtmPj4yXT0wLGFbbCsyOD4+Ml09MH1mdW5jdGlvbiBaRyhsLGMsZixwLG0sQSl7bHw9MCxjfD0wLHB8PTAsbXw9MCxBfD0w''@;'; + put 'put ''O3ZhciB3LGssRCxiPTAsTT0wO2ZvcihEPWFlLGFlPWFlKzEyOHwwLE09RCxxeShrPUQrNjR8MCxmfD0wLDYzKSwwfCh3PTB8JHMoayw1OCkpJiYoZmVbdz4+MF09MCksbD1sKzYwKyhjPDwyKXwwOzspe2lmKCEoYz0wfGFbbD4+Ml0pKXtjPWwsbD0wO2JyZWFrfWlmKHF5KE0sMHxhW2MrND4+''@;'; + put 'put ''Ml0sNjMpLDB8KGM9MHwkcyhNLDU4KSkmJihmZVtjPj4wXT0wKSwoMHxqaShrLE0pKTwxKXtiPTk7YnJlYWt9bD0wfGFbbD4+Ml19Zm9yKDs5PT0oMHxiKSYmKGM9bCxsPTB8YVtsPj4yXSksISghbHx8KHF5KE0sMHxhW2wrND4+Ml0sNjMpLGw9MHwkcyhNLDU4KSwwfGwmJihmZVtsPj4wXT0w''@;'; + put 'put ''KSwwfGppKGssTSkpfHwobD0wfGFbYz4+Ml0sKDB8YVtsKzg+PjJdKTw9KDB8cCkpKTspYj05O3JldHVybiBNPTB8UW4oMjApLGFbTT4+Ml09YVtjPj4yXSxhW2M+PjJdPU0sYVtNKzQ+PjJdPWYsYVtNKzg+PjJdPXAsYVtNKzEyPj4yXT1tLGFbTSsxNj4+Ml09QSxhZT1ELDF9ZnVuY3Rpb24g''@;'; + put 'put ''ZDEobCxjKXtyZXR1cm4gY3w9MCxjPWFlLGFlPWFlKzE2fDAsJHIoMSw5ODM5NixjKSxhZT1jLDB9ZnVuY3Rpb24gUkEobCxjLGYpe2x8PTA7dmFyIHcsYixrLEQscGUsZ2UscD0wLG09MCxBPTAsTT0wLFI9MCxHPTAsSz0wO2dlPWFlLGFlPWFlKzE0NHwwLHBlPWdlLEc9Z2UrMTZ8MCxEPSgo''@;'; + put 'put ''Y3w9MCktM3wwKT4+PjA8Mj8wOmMscXkoUj1nZSs4MHwwLGZ8PTAsNjMpLChmPTB8JHMoUiw1OCkpPyhwPWYrMXwwLGZlW2Y+PjBdPTAsKGY9MHwkcyhwLDU4KSk/KGZlW2Y+PjBdPTAsTT1mKzF8MCk6TT0wKTooTT0wLHA9MCksdz0wIT0oMHxwKSxiPTA9PSgwfE0pLGs9KDB8RCk9PSgwfGMp''@;'; + put 'put ''LEE9bCs2MCsoYzw8Mil8MDtlOmZvcig7Oyl7aWYoIShmPTB8YVtBPj4yXSkpe2Y9MDticmVha31xeShHLDB8YVtmKzQ+PjJdLDYzKSwoZj0wfCRzKEcsNTgpKT8oZmVbZj4+MF09MCxmPWYrMXwwKTpmPTA7ZG97aWYoISgwfGppKEcsUikpKXtpZih3JihtPTAhPSgwfGYpKSYmMHxqaShmLHAp''@;'; + put 'put ''fHwhYiYmMHxqaShNLDB8YVs4KygwfGFbMTIrKDB8YVtBPj4yXSk+PjJdKT4+Ml0pKWJyZWFrO2lmKGt8MV5tKXtLPTE2O2JyZWFrIGV9aWYoMHxSQShsLEQsZikpe0s9MTY7YnJlYWsgZX19fXdoaWxlKDApO0E9MHxhW0E+PjJdfWRve2lmKDE2PT0oMHxLKSlpZihmPTB8YVtBPj4yXSl7aWYo''@;'; + put 'put ''MD09KDB8YVsocD1mKzE2fDApPj4yXSkmJihkMSgwLDApLDA9PSgwfGFbcD4+Ml0pKSl7Zj0wO2JyZWFrfSgwfGFbbCs4Pj4yXSk+MCYmKEs9MHxhWzE1NzEyXSxSPTB8YVtmKzQ+PjJdLEc9MHxhWzgrKDB8YVtmKzEyPj4yXSk+PjJdLGFbcGU+PjJdPWFbMjAxNjgrKGM8PDIpPj4yXSxhW3Bl''@;'; + put 'put ''KzQ+PjJdPVIsYVtwZSs4Pj4yXT1HLFQwKEssOTg0MjcscGUpKX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gYVtsKzgwKyhjPDwyKT4+Ml09ZixhZT1nZSwwfGZ9ZnVuY3Rpb24gekcobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTA7ZG97aWYoZil7aWYoMHxhWzUw''@;'; + put 'put ''NDddJiYodXMoMTg4MDA0LDAsMCksYVs1MDQ3XT0wKSxmPTB8JHMoQT0wfHJhKGYpLDU4KSl7Zm9yKGZlW2Y+PjBdPTAsZj0xLG09cD1sKzYwKyhjPDwyKXwwO2w9MHxhW20+PjJdOykwfChsPTB8JHMoYz0wfHJhKDB8YVtsKzQ+PjJdKSw1OCkpJiYoZmVbbD4+MF09MCksMCE9KDB8ZmVbQT4+''@;'; + put 'put ''MF0pJiYwIT0oMHx5MChBLGMpKXx8KChmPTB8YVs0NzAwMl0pPj4+MD49KDB8YVs0NzAwM10pPj4+MCYmKFEwKDE4ODAwNCwxKSxmPTB8YVs0NzAwMl0pLGFbNDcwMDJdPWYrMSxmZVtmPj4wXT0zMix1bygxODgwMDQsMHxhWzQrKDB8YVttPj4yXSk+PjJdKSwoZj0wfGFbNDcwMDJdKT4+PjA+''@;'; + put 'put ''PSgwfGFbNDcwMDNdKT4+PjAmJihRMCgxODgwMDQsMSksZj0wfGFbNDcwMDJdKSxhWzQ3MDAyXT1mKzEsZmVbZj4+MF09NTgsdW8oMTg4MDA0LDB8YVs4KygwfGFbMTIrKDB8YVttPj4yXSk+PjJdKT4+Ml0pLGY9MCksRnQoYyksbT0wfGFbbT4+Ml07RnQoQSksZjw8MjQ+PjI0JiYobT0wLHc9''@;'; + put 'put ''MTkpfWVsc2UgRnQoQSksbT0wLHA9bCs2MCsoYzw8Mil8MCxmPTEsdz0xOTtpZigxOT09KDB8dykpe2Zvcig7bD0wfGFbcD4+Ml07KTB8KGw9MHwkcyhjPTB8cmEoMHxhW2wrND4+Ml0pLDU4KSkmJihmZVtsPj4wXT0wKSwwIT0oMHxtKSYmMD09KDB8eTAobSxjKSl8fCgoZj0wfGFbNDcwMDJd''@;'; + put 'put ''KT4+PjA+PSgwfGFbNDcwMDNdKT4+PjAmJihRMCgxODgwMDQsMSksZj0wfGFbNDcwMDJdKSxhWzQ3MDAyXT1mKzEsZmVbZj4+MF09MzIsdW8oMTg4MDA0LGMpLGY9MCksbT1jLHA9MHxhW3A+PjJdLHc9MTk7aWYoZjw8MjQ+PjI0KXtmPTE5NTA1OTticmVha319KGY9MHxhWzQ3MDAyXSk+Pj4w''@;'; + put 'put ''Pj0oMHxhWzQ3MDAzXSk+Pj4wJiYoUTAoMTg4MDA0LDEpLGY9MHxhWzQ3MDAyXSksZmVbZj4+MF09MCxhWzQ3MDAyXT1mPTB8YVs0NzAwMV19ZWxzZSBmPTB9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBkcmUobCl7dmFyIGM7cmV0dXJuKGx8PTApfHxQcigxMTEyMDgsOTg0NDQsNTcz''@;'; + put 'put ''LDk4NDU4KSwwfGZlW2w+PjBdfHxQcigxMTEyMTMsOTg0NDQsNTc0LDk4NDU4KSwwfCgoYz0wfGFbNDcwMDVdKT8wfG1pWzYzJmFbYz4+Ml1dKGMsbCw1MTIpOjApfWZ1bmN0aW9uIHByZShsKXt2YXIgZixwLG0sQSxiLGssYz0wLHc9MDtrPWFlLGFlPWFlKzE2fDAsYj1rKzh8MCx3PWssKGx8''@;'; + put 'put ''PTApfHxQcigxMTEzMTIsOTg0NDQsNTg5LDk4NDc1KSwoZj0wfGFbKG09bCs4fDApPj4yXSl8fFByKDExMTMxNSw5ODQ0NCw1OTAsOTg0NzUpLDB8ZmVbZj4+MF18fFByKDExMTMyNCw5ODQ0NCw1OTEsOTg0NzUpLHA9MHxhWyhBPWwrMjB8MCk+PjJdO2Rve2lmKCFwKXtpZighKGM9MHxhRChm''@;'; + put 'put ''KSkpe2Fbdz4+Ml09YVttPj4yXSwkcigwLDk4NDk5LHcpLGM9MDticmVha31pZih3PTB8ZVMoYywxMzg4MjEpLGFbQT4+Ml09dywhdyl7YVtiPj4yXT0wfFhrKDB8YVs0NzY0M10pLGFbYis0Pj4yXT1jLCRyKDAsOTg1MjQsYiksYz0wO2JyZWFrfWlmKCgwfChjPTB8YVs0NzAwNl0pKT40OSl7''@;'; + put 'put ''ZmVbbCsxNz4+MF09MSxjPTE7YnJlYWt9YVs0NzAwNl09YysxLGM9MTticmVha31uMyhwLDAsMCksMHxhW0E+PjJdP2M9MTpQcig5ODU0NSw5ODQ0NCw2MTQsOTg0NzUpfXdoaWxlKDApO3JldHVybiBhZT1rLDB8Y31mdW5jdGlvbiBHRyhsKXt2YXIgYz0wLGY9MDswfGZlWzE3KyhsfD0wKT4+''@;'; + put 'put ''MF0mJjB8KGY9MHxhWyhjPWwrMjB8MCk+PjJdKSYmKGV3KGYpLGFbYz4+Ml09MCl9ZnVuY3Rpb24gZ3JlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wOyhjfD0wKT8obT0rKDB8KHA9MHxhW2MrNDg+PjJdKSkscD8oX1tmKzg+PjNdPW0sX1tmPj4zXT1tLEE9bSk6KEE9K19bZj4+''@;'; + put 'put ''M10sbT0rX1tmKzg+PjNdKSxwPX5+KCsoNzIqKDB8YVtjKzQwPj4yXSl8MCkvQSksZj1+figrKDcyKigwfGFbYys0ND4+Ml0pfDApL20pKToocD0tMSxmPS0xKSxhW2w+PjJdPXAsYVtsKzQ+PjJdPWZ9ZnVuY3Rpb24gV0cobCxjLGYpe2x8PTAsY3w9MDt2YXIgdyxiLGsscD0wLG09MCxBPTAs''@;'; + put 'put ''TT0wO2s9YWUsYWU9YWUrNDh8MCxwPWsrMTZ8MCx3PWssYj1rKzMyfDAsMCE9KDB8KGZ8PTApKSYmMCE9KDB8ZmVbZj4+MF0pPygoMHxhWzQ3MDA3XSkhPSgwfChtPTB8YVs0NzEzM10pKSYmKGFbNDcwMDddPW0sMHwoQT0wfGFbNDcwMDVdKSkmJihObChBKSxhWzQ3MDA1XT0wKSxfW3crOD4+''@;'; + put 'put ''M109TT0oTT0rX1syNCsoMHxhWzgrKDB8YVtjKzE2Pj4yXSk+PjJdKT4+M10pPj0xP006OTYsX1t3Pj4zXT1NLGM9MHxmdW5jdGlvbiBtcmUobCl7dmFyIG0sYz0wLGY9MCxwPTA7bT1hZSxhZT1hZSsxNnwwLHA9bSwobHw9MCl8fFByKDExMTIwOCw5ODQ0NCw2MzgsOTg1NTEpLDB8YVs0NzAw''@;'; + put 'put ''NV18fChhWzQ3MDA1XT0wfGlzKDIwMTkyLDB8YVs0NTg5XSkpLGM9MHxkcmUobCk7ZTpkb3tpZihjKUdHKGMpO2Vsc2UgaWYoYz0wfHZyKDY0KSxjKXtpZihhWyhmPWMrOHwwKT4+Ml09MHxyMCgwLGwpLCEoKDB8cHJlKGMpKTw8MjQ+PjI0KSl7Q0MoYyksYz0wO2JyZWFrfXN3aXRjaCgwfGFb''@;'; + put 'put ''YysyMD4+Ml18fFByKDk4NTQ1LDk4NDQ0LDY1Myw5ODU1MSksMHx2cmUoYykpe2Nhc2UgMDppZihsPTB8JEgoMHxhW2Y+PjJdKSxhW2MrNTI+PjJdPWwsIWwpe2FbcD4+Ml09YVtmPj4yXSwkcigwLDk4NTY4LHApLENDKGMpLGM9MDticmVhayBlfWJyZWFrO2Nhc2UgMjpBcmUoYyk7YnJlYWs7''@;'; + put 'put ''Y2FzZSAzOllHKGMpO2JyZWFrO2Nhc2UgMTppNyhjKTticmVhaztjYXNlIDQ6VUcoYyk7YnJlYWs7Y2FzZSA2OmVGKGMpO2JyZWFrO2Nhc2UgMTE6dEYoYyk7YnJlYWs7Y2FzZSA4OnlyZShjKTticmVhaztjYXNlIDU6bkYoYyk7YnJlYWs7Y2FzZSAxMjpyRihjKX1HRyhjKSxtaVs2MyZhWyhw''@;'; + put 'put ''PTB8YVs0NzAwNV0pPj4yXV0ocCxjLDEpfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiBhZT1tLDB8Y30oZiksYVtwPj4yXT1hW3c+PjJdLGFbcCs0Pj4yXT1hW3crND4+Ml0sYVtwKzg+PjJdPWFbdys4Pj4yXSxhW3ArMTI+PjJdPWFbdysxMj4+Ml0sZ3JlKGIsYyxwKSxjPTB8YVtiPj4yXSxw''@;'; + put 'put ''PTB8YVtiKzQ+PjJdKTooYz0tMSxwPS0xKSxhW2w+PjJdPWMsYVtsKzQ+PjJdPXAsYWU9a31mdW5jdGlvbiBDQyhsKXt2YXIgYzswfChjPTB8YVs4KyhsfD0wKT4+Ml0pJiZlMCgwLGMpLEZ0KGwpfWZ1bmN0aW9uIHZyZShsKXt2YXIgbSxBLHcsayxjPTAsZj0wLHA9MCxiPTA7az1hZSxhZT1h''@;'; + put 'put ''ZSsyMjR8MCxtPWsrMjAwfDAsQT1rLGM9MHxhWyh3PTIwKyhsfD0wKXwwKT4+Ml07ZTpkb3tpZigwIT0oMHxjKSYmMjA9PSgwfFokKG0sMSwyMCxjKSkpe2ZvcihmPTA7Oyl7aWYoZj4+PjA+PTEwKXtiPTEzO2JyZWFrIGV9aWYoISgwfHQzKG0sMHxhWzIwMjI4KyhmPDw0KT4+Ml0sMHxhWzIw''@;'; + put 'put ''MjI4KyhmPDw0KSs0Pj4yXSkpKWJyZWFrO2Y9ZisxfDB9c3dpdGNoKGFbKHA9bCsyOHwwKT4+Ml09YVsyMDIyOCsoZjw8NCkrMTI+PjJdLGFbKGw9bCsyNHwwKT4+Ml09Yz0wfGFbMjAyMjgrKGY8PDQpKzg+PjJdLDB8Zil7Y2FzZSA3OmJyZWFrO2Nhc2UgODppZigwfHQzKG0rOHwwLDk4Nzg0''@;'; + put 'put ''LDQpKWJyZWFrIGU7YVtwPj4yXT05ODc4OSxhW2w+PjJdPTExLGM9MTE7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9Zm9yKDs7KXtpZighKDB8eWcoQSwyMDAsMHxhW3c+PjJdKSkpe2I9MTE7YnJlYWt9aWYoISgwfHQzKEEsOTg3NzksNCkpKXtiPTg7YnJlYWt9fWlmKDg9PSgwfGIpKXthW3A+''@;'; + put 'put ''PjJdPTEwMTgwMyxhW2w+PjJdPTgsYz04O2JyZWFrfWlmKDExPT0oMHxiKSl7Yz0wfGFbbD4+Ml07YnJlYWt9fWVsc2UgYj0xM313aGlsZSgwKTtyZXR1cm4gMTM9PSgwfGIpJiYoYVtsKzI4Pj4yXT05ODc5NCxhW2wrMjQ+PjJdPTAsYz0wKSxhZT1rLDB8Y31mdW5jdGlvbiBBcmUobCl7dmFy''@;'; + put 'put ''IGMsZixwLG07bT1hZSxhZT1hZSsxNnwwLGM9bSs0fDAsZj1tLGFbNDgrKGx8PTApPj4yXT0wLG4zKDB8YVsocD1sKzIwfDApPj4yXSw2LDApLCgwfHRwKDB8YVtwPj4yXSwyLGMpKTw8MjQ+PjI0JiYoMHx0cCgwfGFbcD4+Ml0sMixmKSk8PDI0Pj4yNCYmKGFbbCs0MD4+Ml09YVtjPj4yXSxh''@;'; + put 'put ''W2wrNDQ+PjJdPWFbZj4+Ml0pLGFlPW19ZnVuY3Rpb24gWUcobCl7dmFyIGMsZixwLG07bT1hZSxhZT1hZSsxNnwwLGM9bSs0fDAsZj1tLGFbNDgrKGx8PTApPj4yXT0wLG4zKDB8YVsocD1sKzIwfDApPj4yXSwxNiwwKSwoMHxFZigwfGFbcD4+Ml0sNCxjKSk8PDI0Pj4yNCYmKDB8RWYoMHxh''@;'; + put 'put ''W3A+PjJdLDQsZikpPDwyND4+MjQmJihhW2wrNDA+PjJdPWFbYz4+Ml0sYVtsKzQ0Pj4yXT1hW2Y+PjJdKSxhZT1tfWZ1bmN0aW9uIGk3KGwpe3ZhciBjLGYscCxtLEEsdzt3PWFlLGFlPWFlKzE2fDAsYz13KzEyfDAsZj13Kzh8MCxwPXcrNHwwLG09dyxhWzQ4KyhsfD0wKT4+Ml09MCxuMygw''@;'; + put 'put ''fGFbKEE9bCsyMHwwKT4+Ml0sMTYsMCksKDB8dHAoMHxhW0E+PjJdLDIsYykpPDwyND4+MjQmJigwfHRwKDB8YVtBPj4yXSwyLGYpKTw8MjQ+PjI0JiYoMHx0cCgwfGFbQT4+Ml0sMixwKSk8PDI0Pj4yNCYmKDB8dHAoMHxhW0E+PjJdLDIsbSkpPDwyND4+MjQmJihhW2wrNDA+PjJdPWFbYz4+''@;'; + put 'put ''Ml08PDE2fGFbZj4+Ml0sYVtsKzQ0Pj4yXT1hW3A+PjJdPDwxNnxhW20+PjJdKSxhZT13fWZ1bmN0aW9uIFVHKGwpe3ZhciBjLHAsbSx3LGIsayxELGY9MCxBPTAsTT0wO2ZvcihEPWFlLGFlPWFlKzMyfDAsYz1EKzE2fDAscD1EKzEyfDAsbT1EKzh8MCx3PUQrNHwwLGI9RCxhWzQ4KyhsfD0w''@;'; + put 'put ''KT4+Ml09MCxrPWwrMjB8MDsoMHxFZigwfGFbaz4+Ml0sMSxjKSk8PDI0Pj4yNDspaWYoMjU1IT0oMHwoZj0wfGFbYz4+Ml0pKSYmISgwfCRzKDk4NzY3LGYpKSl7aWYoMTkyPT0oMHxmKSl7TT02O2JyZWFrfWlmKEE9MHxhW2s+PjJdLDE5ND09KDB8Zikpe009MTE7YnJlYWt9aWYoISgoMHxF''@;'; + put 'put ''ZihBLDIscCkpPDwyND4+MjQpKWJyZWFrO24zKDB8YVtrPj4yXSwoMHxhW3A+PjJdKS0yfDAsMSl9Nj09KDB8TSk/KDB8RWYoMHxhW2s+PjJdLDMsYikpPDwyND4+MjQmJigwfEVmKDB8YVtrPj4yXSwyLG0pKTw8MjQ+PjI0JiYoMHxFZigwfGFbaz4+Ml0sMix3KSk8PDI0Pj4yNCYmKGFbbCs0''@;'; + put 'put ''ND4+Ml09YVttPj4yXSxhW2wrNDA+PjJdPWFbdz4+Ml0pOjExPT0oMHxNKSYmKDB8RWYoQSwzLGIpKTw8MjQ+PjI0JiYoMHxFZigwfGFbaz4+Ml0sMixtKSk8PDI0Pj4yNCYmKDB8RWYoMHxhW2s+PjJdLDIsdykpPDwyND4+MjQmJihhW2wrNDQ+PjJdPWFbbT4+Ml0sYVtsKzQwPj4yXT1hW3c+''@;'; + put 'put ''PjJdKSxhZT1EfWZ1bmN0aW9uIGVGKGwpe3ZhciBjLHAsbSxBLHcsYixELGY9MCxrPTAsTT0wO2ZvcihEPWFlLGFlPWFlKzEwNTZ8MCxrPUQsYz1EKzMyfDAscD1EKzI4fDAsbT1EKzI0fDAsQT1EKzIwfDAsdz1EKzE2fDAsYVs0OCsobHw9MCk+PjJdPTcyLG4zKDB8YVsoYj1sKzIwfDApPj4y''@;'; + put 'put ''XSwwLDApOzB8eWcoYywxMDI0LDB8YVtiPj4yXSk7KWlmKChmPTB8cWsoYyw5ODc1MikpJiYoYVtrPj4yXT1wLGFbays0Pj4yXT1tLGFbays4Pj4yXT1BLGFbaysxMj4+Ml09dyw0PT0oMHxpbChmLDEwNDMxMSxrKSkpKXtNPTU7YnJlYWt9NT09KDB8TSkmJihhW2wrMzI+PjJdPWs9MHxhW3A+''@;'; + put 'put ''PjJdLGFbbCszNj4+Ml09TT0wfGFbbT4+Ml0sYVtsKzQwPj4yXT0oMHxhW0E+PjJdKS1rLGFbbCs0ND4+Ml09KDB8YVt3Pj4yXSktTSksYWU9RH1mdW5jdGlvbiB0RihsKXt2YXIgYyxmLHAsbSxBLHc7QT1hZSxhZT1hZSsxNnwwLGM9QSs0fDAsZj1BLGFbNDgrKGx8PTApPj4yXT0wLG4zKDB8''@;'; + put 'put ''YVsocD1sKzIwfDApPj4yXSwxNSwwKSx3PTg4PT0oMHxQaigwfGFbcD4+Ml0pKSxtPTB8YVtwPj4yXSx3PyhuMyhtLDI0LDApLCgwfHRwKDB8YVtwPj4yXSw0LGMpKTw8MjQ+PjI0JiYoMHx0cCgwfGFbcD4+Ml0sNCxmKSk8PDI0Pj4yNCYmKGFbbCs0MD4+Ml09YVtjPj4yXSxhW2wrNDQ+PjJd''@;'; + put 'put ''PWFbZj4+Ml0pKToobjMobSwyNiwwKSwoMHx0cCgwfGFbcD4+Ml0sMixjKSk8PDI0Pj4yNCYmKDB8dHAoMHxhW3A+PjJdLDIsZikpPDwyND4+MjQmJihhW2wrNDA+PjJdPWFbYz4+Ml0sYVtsKzQ0Pj4yXT1hW2Y+PjJdKSksYWU9QX1mdW5jdGlvbiB5cmUobCl7bHw9MDt2YXIgayxNLEQsUixH''@;'; + put 'put ''LEsscGUsZ2UsYmUsT2UsTGUsUmUsSGUsVmUscWUsbnQsV2Usb3QsU3Qsa3QsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2t0PWFlLGFlPWFlKzM1MnwwLFdlPWt0KzgwfDAsbnQ9a3QrNzJ8MCxTdD1rdCs2NHwwLG90PWt0KzU2fDAscWU9a3QrNDh8MCxjPWt0KzQwfDAscGU9a3QrMzJ8''@;'; + put 'put ''MCxnZT1rdCsyNHwwLGJlPWt0KzE2fDAsT2U9a3QrOHwwLExlPWt0LFJlPWt0KzMyOHwwLEhlPWt0KzEyOHwwLFZlPWt0Kzk2fDAsMHxhWzQ3MDA4XXx8KDB8ZnVuY3Rpb24gWWNlKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgT2UsUmUscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9''@;'; + put 'put ''MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxMZT0wLEhlPTA7UmU9YWUsYWU9YWUrNDh8MCxiPVJlLE9lPTB8ZnVuY3Rpb24gVWNlKCl7dmFyIGw9MCxjPTA7bD0wfEIwKDIwKTtkb3tpZihsKXtpZihjPTB8QjAoMjA0OCksYVtsKzE2Pj4yXT1jLGMpe2FbbD4+Ml09NTEyLGFbbCs0Pj4y''@;'; + put 'put ''XT0xMDI0ZTMsYVtsKzg+PjJdPTEyOCxhW2wrMTI+PjJdPTA7YnJlYWt9RnQobCksbD0wO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gMHxsfSgpO2U6ZG97aWYoT2Upe2lmKCEoTGU9MHxMJCgwLDApKSl7RGooT2UpLGM9MTI7YnJlYWt9YVsocD1iKzh8MCk+PjJdPTAsYVtwKzQ+PjJdPTAsYVtw''@;'; + put 'put ''Kzg+PjJdPTAsYVtwKzEyPj4yXT0wLGFbcCsxNj4+Ml09MCxhW2I+PjJdPUxlLGFbYis0Pj4yXT1PZSxhW2IrMTY+PjJdPWMsYVtiKzMyPj4yXT1mLGFbKHA9YisyOHwwKT4+Ml09LTEsYz0wfFFjZShiKTt0OmRve2lmKGMpQT0wLHc9MCxiPTAsbT0wLHA9MDtlbHNlIGlmKHc9YisyMHwwLG09''@;'; + put 'put ''MHxhW3c+PjJdLGFbbD4+Ml09bSstMSxrPTB8YVtiKzg+PjJdLGM9MHxhW3A+PjJdLCgwfGMpPCgwfG0pKWlmKEE9MHxzaCgxLDY4KSxBKXtpZihhW0ErNjA+PjJdPWdlPWM+Pj4zMV4xLGFbQSsyOD4+Ml09bSwwPT0oOCZmfDApfDAhPSgwfGdlKSl7aWYoMHwoYz0wfE8kKDAsT2UsayxBKSkp''@;'; + put 'put ''e3c9MCxiPTAsbT0wLHA9MDticmVha31pZigoMHwobT0wfGFbQSs0MD4+Ml0pKT4wKXtpZighKHA9MHxCMChjPTQrKG08PDIpfDApKSl7dz0wLGI9MCxjPTEyLG09MCxwPTA7YnJlYWt9YVtBKzMyPj4yXT1wLHUyKDB8cCwtMSwwfGMpfWVsc2UgcD0wO2lmKGdlPTB8c2gobTw8MXwxLDQpLGFb''@;'; + put 'put ''QSszNj4+Ml09Z2UsIWdlKXt3PTAsYj0wLGM9MTIsbT0wLHA9MDticmVha31pZighKGM9MHxzaCgwfGFbdz4+Ml0sMTIpKSl7dz0wLGI9MCxjPTEyLG09MCxwPTA7YnJlYWt9aWYoYVtBKzE2Pj4yXT1jLGM9MHxPJChMZSxPZSxrLEEpKXt3PTAsYj0wLG09MCxwPTA7YnJlYWt9Yz1wfWVsc2Ug''@;'; + put 'put ''Yz0wO2lmKGM9MHxKY2UoTGUsT2UsayxnZT1iKzI0fDAsYykpdz0wLGI9MCxtPTAscD0wO2Vsc2UgaWYoYVtnZT4+Ml09MSsoYz0wfGFbZ2U+PjJdKSwwIT0oMHwoYz0wfHQxKExlLDAsMCxjKSkpJiYwIT0oMHwoYmU9MHx1OShMZSxrLGMpKSkpaWYoYz0wfFhjZShMZSxPZSxiZSkpdz0wLGI9''@;'; + put 'put ''MCxtPTAscD0wO2Vsc2UgaWYoSz0wfEIwKGM9KHA9MHxhW2dlPj4yXSk8PDIpKWlmKHBlPTB8QjAoYykpe2lmKCgwfHApPjAmJnUyKDB8SywwLHA8PDJ8MCkseUwoYmUsMCxLLDApLCgwfChtPTB8YVtnZT4+Ml0pKT4wKXtjPTAscD0wO2Rve2FbcGUrKHA8PDIpPj4yXT1jLGM9YysxKygwfGFb''@;'; + put 'put ''KEc9SysocDw8Mil8MCk+PjJdKXwwLGFbRz4+Ml09MCxwPXArMXwwfXdoaWxlKCgwfHApPCgwfG0pKTtEPWN9ZWxzZSBEPTA7aWYoUj0wfHNoKEQrMXwwLDMyKSlpZihhW0E+PjJdPVIsYVsoRz1BKzR8MCk+PjJdPUQsYz0wfHlMKGJlLFIsSyxwZSkpdz1LLGI9cGUsbT1LLHA9cGU7ZWxzZXtm''@;'; + put 'put ''b3IoYVtBKzIwPj4yXT0wLGM9MHxhWyhtPWJlKzI0fDApPj4yXSxwPTA7cD1wKzF8MCwhKCgwfGFbYz4+Ml0pPD0tMSk7KWM9YyszMnwwO2lmKE09MHxzaChwLDMyKSl7aWYoYVtBKzg+PjJdPU0sKDB8KG09MHxhWyhwPTB8YVttPj4yXSk+PjJdKSk+LTEpe2M9MDtkb3tpZihhW00rKGM8PDUp''@;'; + put 'put ''Kzg+PjJdPVIrKGFbcGUrKG08PDIpPj4yXTw8NSksYVtNKyhjPDw1KSsxMj4+Ml09bSxhWyhiPU0rKGM8PDUpKzE2fDApPj4yXT0wLDB8KHc9MHxhWyhrPXArMTJ8MCk+PjJdKSl7bT0wO2Rve0hlPW0sbT1tKzF8MH13aGlsZSgoMHxhW3crKEhlPDwyKT4+Ml0pPi0xKTtpZih3PTB8QjAobTw8''@;'; + put 'put ''PTIpLGFbYj4+Ml09dywhdyl7dz1LLGI9cGUsYz0xMixtPUsscD1wZTticmVhayB0fWdvKDB8dywwfGFbaz4+Ml0sMHxtKX1hW00rKGM8PDUpKzIwPj4yXT1hW3ArMTY+PjJdLGM9YysxfDAsbT0wfGFbKHA9cCszMnwwKT4+Ml19d2hpbGUoKDB8bSk+LTEpfWVsc2UgYz0wO2FbTSsoYzw8NSkr''@;'; + put 'put ''OD4+Ml09MCxhW0c+PjJdPUQsYVtBKzEyPj4yXT1SKyhhW3BlKyhhW2FbYmUrMjg+PjJdPj4yXTw8Mik+PjJdPDw1KSxhW0ErNTI+PjJdPWFbZ2U+PjJdLGFbQSs1Nj4+Ml09Zix3ZyhMZSksRGooT2UpLEZ0KEspLEZ0KHBlKSxhW2wrND4+Ml09QSxjPTA7YnJlYWsgZX13PUssYj1wZSxjPTEy''@;'; + put 'put ''LG09SyxwPXBlfWVsc2Ugdz1LLGI9cGUsYz0xMixtPUsscD1wZX1lbHNlIHc9SyxiPXBlLGM9MTIsbT1LLHA9MDtlbHNlIHc9SyxiPTAsYz0xMixtPTAscD0wO2Vsc2Ugdz0wLGI9MCxjPTEyLG09MCxwPTB9ZWxzZSB3PTAsYj0wLGM9MTIsbT0wLHA9MDtlbHNlIEE9MCx3PTAsYj0wLGM9Nixt''@;'; + put 'put ''PTAscD0wfXdoaWxlKDApO3dnKExlKSxEaihPZSksMHx3JiZGdChtKSwwfGImJkZ0KHApLGFbbCs0Pj4yXT1BLEtjZShsKX1lbHNlIGM9MTJ9d2hpbGUoMCk7cmV0dXJuIGFlPVJlLDB8Y30oMTg4MDM2LDk4NjM3LDEpJiYoYVtjPj4yXT05ODYzNywkcigxLDk4NjY0LGMpKSxhWzQ3MDA4XT0x''@;'; + put 'put ''ODgwMzYpLG4zKDB8YVsoaz1sKzIwfDApPj4yXSwwLDApLE09VmUrMTJ8MCxEPVZlKzIwfDAsUj1WZSs4fDAsRz1WZSsxNnwwLEs9VmUrNHwwLGM9MCxtPTAscD0wLGY9MDtlOmZvcig7MHx5ZyhIZSwyMDAsMHxhW2s+PjJdKSYmbTw8MjQ+PjI0PT0wfGM8PDI0Pj4yND09MDspe0E9SGUsYj1m''@;'; + put 'put ''O3Q6Zm9yKDs7KXt3PXA7bjpmb3IoOzspe2Zvcig7Oyl7aWYoMHxhZmUoMTg4MDM2LEEsNCxWZSwwKSl7cD13LGY9Yjtjb250aW51ZSBlfWlmKGZlW0ErKDB8YVtNPj4yXSk+PjBdPTAsZmVbQSsoMHxhW0Q+PjJdKT4+MF09MCxmPUErKDB8YVtSPj4yXSl8MCxwPUErKDB8YVtHPj4yXSl8MCxB''@;'; + put 'put ''PUErKDErKDB8YVtLPj4yXSkpfDAsISgwfGppKGYsMTQxMTE2KSkpYnJlYWs7aWYoISgwfGppKGYsMTQxMDQ4KSkpYnJlYWsgbjtpZighKDB8amkoZiw5ODcxMSkpJiYoYVtXZT4+Ml09Z2UsYVtXZSs0Pj4yXT1iZSxhW1dlKzg+PjJdPU9lLGFbV2UrMTI+PjJdPUxlLDQ9PSgwfGlsKHAsOTg3''@;'; + put 'put ''MTksV2UpKSkpYnJlYWsgdH1pZihhW3FlPj4yXT1wZSxhW3FlKzQ+PjJdPVJlLDIhPSgwfGlsKHAsOTg3MDEscWUpKT8oYVtvdD4+Ml09cGUsMT09KDB8aWwocCwxMDEyMDksb3QpKT8oZj0xLHA9MHxTVCgrX1twZT4+M10sOTg3MDgpKTooZj1tLHA9dykpOihmPTEscD0wfFNUKCtfW3BlPj4z''@;'; + put 'put ''XSxSZSkpLGM8PDI0Pj4yNCl7bT1mLGY9Yjtjb250aW51ZSBlfWM9MCxtPWYsdz1wfWlmKGFbU3Q+PjJdPXBlLGFbU3QrND4+Ml09UmUsMiE9KDB8aWwocCw5ODcwMSxTdCkpPyhhW250Pj4yXT1wZSwxPT0oMHxpbChwLDEwMTIwOSxudCkpPyhjPTEsZj0wfFNUKCtfW3BlPj4zXSw5ODcwOCkp''@;'; + put 'put ''OmY9Yik6KGM9MSxmPTB8U1QoK19bcGU+PjNdLFJlKSksbTw8MjQ+PjI0KXtwPXc7Y29udGludWUgZX1tPTAscD13LGI9Zn1jPTEsbT0xLHA9fn4oK19bT2U+PjNdKzEtK19bZ2U+PjNdKT4+PjAsZj1+figrX1tMZT4+M10rMS0rX1tiZT4+M10pPj4+MH1hW2wrNDg+PjJdPTAsYVtsKzQwPj4y''@;'; + put 'put ''XT1wLGFbbCs0ND4+Ml09ZixhZT1rdH1mdW5jdGlvbiBuRihsKXt2YXIgYyxmLHAsbT0wLEE9MDtmPWFlLGFlPWFlKzMyfDAsYz1mLGFbNDgrKGx8PTApPj4yXT0wLG4zKDB8YVsocD1sKzIwfDApPj4yXSwwLDApLDB8ZnVuY3Rpb24gTm1lKGwsYyl7bHw9MCxjfD0wO3ZhciBmLHAsdyxtPTAs''@;'; + put 'put ''QT0wO2Zvcih3PWFlLGFlPWFlKzEwNDB8MCxmPXcscD13KzE2fDA7Oyl7aWYoISgwfHlnKHAsMTAyNCxsKSkpe2w9MTticmVha31pZigwfChtPTB8cWsocCw5ODYyNykpKXtBPTQ7YnJlYWt9fXJldHVybiA0PT0oMHxBKSYmKGFbZis0Pj4yXT1wLGFbZj4+Ml09bSs5LGFbZis4Pj4yXT1sLGw9''@;'; + put 'put ''MHxmdW5jdGlvbiBWbWUobCxjKXtjfD0wO3ZhciBwLG0sZj0wO3JldHVybiBtPWFlLGFlPWFlKzEwMjR8MCxwPW0sd3JlKGx8PTApLDkxPT0oMHwoZj0oZj0wfGZlW2FbbD4+Ml0+PjBdKTw8MjQ+PjI0P2Y8PDI0Pj4yNDoyNTUmKDB8UUcobCkpKSkmJihhW2w+PjJdPTErKDB8YVtsPj4yXSks''@;'; + put 'put ''a0MobCxwKSwwPT0oMHxrVChwLGMpKSkmJihrQyhsLHApLDA9PSgwfGtUKHAsYys4fDApKSkmJihrQyhsLHApLDA9PSgwfGtUKHAsYysxNnwwKSkpPyhrQyhsLHApLGY9MCE9KDB8a1QocCxjKzI0fDApKSYxKTpmPTEsYWU9bSwwfGZ9KGYsYykpLGFlPXcsMHxsfSgwfGFbcD4+Ml0sYyl8fChh''@;'; + put 'put ''W2wrMzI+PjJdPX5+KEE9K19bYz4+M10pLGFbbCszNj4+Ml09fn4obT0rX1tjKzg+PjNdKSxhW2wrNDA+PjJdPX5+KCtfW2MrMTY+PjNdLUEpLGFbbCs0ND4+Ml09fn4oK19bYysyND4+M10tbSkpLGFlPWZ9ZnVuY3Rpb24gckYobCl7dmFyIGMsZixwLG07bT1hZSxhZT1hZSsxNnwwLGM9bSs0''@;'; + put 'put ''fDAsZj1tLGFbNDgrKGx8PTApPj4yXT0wLG4zKDB8YVsocD1sKzIwfDApPj4yXSw2LDApLCgwfEVmKDB8YVtwPj4yXSwxLGMpKTw8MjQ+PjI0JiYoMHxFZigwfGFbcD4+Ml0sMSxmKSk8PDI0Pj4yNCYmKGFbbCs0MD4+Ml09YVtjPj4yXSxhW2wrNDQ+PjJdPWFbZj4+Ml0pLGFlPW19ZnVuY3Rp''@;'; + put 'put ''b24gRWYobCxjLGYpe2x8PTAsY3w9MDt2YXIgcD0wLG09MDtmb3IoYVsoZnw9MCk+PjJdPTAscD0wOzspe2lmKHA+Pj4wPj1jPj4+MCl7cD0xO2JyZWFrfWlmKG09MHxQaihsKSwwfFMkKGwpKXtwPTA7YnJlYWt9YVtmPj4yXT1hW2Y+PjJdPDw4fG0scD1wKzF8MH1yZXR1cm4gMHxwfWZ1bmN0''@;'; + put 'put ''aW9uIHdyZShsKXt2YXIgYz0wO2ZvcihjPTB8YVsobHw9MCk+PjJdOygyNTUmKGM9KGM9MHxmZVtjPj4wXSk8PDI0Pj4yND9jPDwyND4+MjQ6MjU1JigwfFFHKGwpKSkpPDwyND4+MjQmJjB8JGMoMjU1JmMpOylhW2w+PjJdPWM9MSsoMHxhW2w+PjJdKXwwfWZ1bmN0aW9uIFFHKGwpe3ZhciBj''@;'; + put 'put ''PTA7cmV0dXJuIDB8eWcoMHxhWyhjPTQrKGx8PTApfDApPj4yXSwxMDI0LDB8YVtsKzg+PjJdKT8oYVtsPj4yXT1jPTB8YVtjPj4yXSxsPTB8ZmVbYz4+MF0pOmw9MCwwfGx9ZnVuY3Rpb24ga0MobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MDtmb3Iod3JlKGx8PTApLGY9MCxwPTB8YVtsPj4y''@;'; + put 'put ''XTsocD0obT0ocD0wfGZlW3A+PjBdKTw8MjQ+PjI0P3A8PDI0Pj4yNDoyNTUmKDB8UUcobCkpKTw8MjQ+PjI0KSYmNDY9PSgwfHApfChwKy00OHwwKT4+PjA8MTA7KWlmKGZlW2MrZj4+MF09bSxmPWYrMXwwLGFbbD4+Ml09cD0xKygwfGFbbD4+Ml0pfDAsMTAyMz09KDB8Zikpe2Y9MTAyMzti''@;'; + put 'put ''cmVha31mZVtjK2Y+PjBdPTB9ZnVuY3Rpb24ga1QobCxjKXt2YXIgZixwLG07cmV0dXJuIGN8PTAscD1hZSxhZT1hZSsxNnwwLGY9K2kzKGx8PTAsbT1wKSwoMHxhW20+PjJdKT09KDB8bCk/bD0xOihfW2M+PjNdPWYsbD0wKSxhZT1wLDB8bH1mdW5jdGlvbiBTVChsLGMpe2w9K2wsY3w9MDt2''@;'; + put 'put ''YXIgZj0wO2Rve2lmKDB8amkoYyw5ODczNSkpe2lmKCEoMHxqaShjLDk4NzM4KSkpe2Y9bCo9Ljc1LGw9bD49MD8uNTotLjU7YnJlYWt9aWYoISgwfGppKGMsOTg3NDEpKSl7Zj1sKj0xMixsPWw+PTA/LjU6LS41O2JyZWFrfWlmKDB8amkoYyw5ODcwOCkmJjB8amkoYyw5ODc0NCkpe2lmKDB8''@;'; + put 'put ''amkoYyw5ODc0NikpcmV0dXJuIGY9Mi44MzQ2NDU2NjYzOTk5OTk3KmwsMHwoKGM9MD09KDB8amkoYyw5ODc0OSkpKT9+fihmKyhmPj0wPy41Oi0uNSkpOjApO2Y9bCo9MjguMzQ2NDU2NjY0LGw9bD49MD8uNTotLjU7YnJlYWt9Zj1sPj0wPy41Oi0uNX1lbHNlIGY9bCo9NzIsbD1sPj0wPy41''@;'; + put 'put ''Oi0uNX13aGlsZSgwKTtyZXR1cm4gMHx+fihsK2YpfWZ1bmN0aW9uIHRwKGwsYyxmKXtsfD0wLGN8PTA7dmFyIHA9MCxtPTA7Zm9yKGFbKGZ8PTApPj4yXT0wLHA9MDs7KXtpZihwPj4+MD49Yz4+PjApe3A9MTticmVha31pZihtPTB8UGoobCksMHxTJChsKSl7cD0wO2JyZWFrfWFbZj4+Ml09''@;'; + put 'put ''YVtmPj4yXXxtPDwocDw8MykscD1wKzF8MH1yZXR1cm4gMHxwfWZ1bmN0aW9uIEpHKCl7dmFyIGw7cmV0dXJuIHNpKDAsMSwxMDgyMjQsMTA1NDkzKSxmdW5jdGlvbiB4dihsLGMpeyhmdW5jdGlvbiBROChsKXt2YXIgYz0wLGY9MDtjPTB8YVszMisobHw9MCk+PjJdO2U6ZG97aWYoMHxjKWZv''@;'; + put 'put ''cig7Oyl7aWYoIShmPTB8YVtjPj4yXSkpYnJlYWsgZTsxMDM9PSgwfGZlW2Y+PjBdKSYmMHxxayhmLDExMTUwOSkmJlU4KGwsMCwwfGFbYys0Pj4yXSksYz1jKzh8MH19d2hpbGUoMCl9KShsfD0wKSxmZVtsKzQ0Pj4wXT0wLGZ1bmN0aW9uIHJFKGwpe3ZhciBjOyhjPTB8UkEobHw9MCwyLDEx''@;'; + put 'put ''MTUyMikpPyhhW2wrMTQ4Pj4yXT1hWzEyKygwfGFbYysxNj4+Ml0pPj4yXSxsPTMwMCk6bD05OTl9KGwpLGZ1bmN0aW9uIEFsZShsKXt2YXIgYz0wO2FbKGM9MTA4KyhsfD0wKXwwKT4+Ml09MCxhW2wrMTEyPj4yXT0zMixhW2wrMTE2Pj4yXT0tMSxhW2wrMTIwPj4yXT0zMyxhW2wrMTI0Pj4y''@;'; + put 'put ''XT02MyxhW2wrMTI4Pj4yXT01NSxhW2wrMTMyPj4yXT0wLGFbbCsxMzY+PjJdPTAsYVtsKzE0MD4+Ml09MCxjPTB8aXMoYywwfGFbNDU4MV0pLGFbbCsxNDQ+PjJdPWN9KGwpfShsPTB8ZnVuY3Rpb24gX0MobCxjKXt2YXIgZjtyZXR1cm4gbHw9MCxjfD0wLDB8KGY9MHx2cigzOTIpKSYmKGFb''@;'; + put 'put ''Zj4+Ml09MjAxNTYsYVtmKzE2Pj4yXT0yMyxhW2YrMzI+PjJdPWwsYVtmKzM2Pj4yXT1jKSwwfGZ9KDAsMSkpLDB8bH1mdW5jdGlvbiBNVChsLGMsZil7Y3w9MDt2YXIgcCxtLEEsdyxiLGs9MCxNPTAsRD0wLFI9MDtyZXR1cm4gYj1hZSxhZT1hZSszMDR8MCx3PWIrMjR8MCxBPWIrOHwwLHA9''@;'; + put 'put ''YixtPWIrNDB8MCw5OTkhPSgwfFhNKGx8PTAsZnw9MCkpPy0xPT0oMHxmdW5jdGlvbiBDUihsLGMpe2x8PTA7dmFyIG0sQSxiLGY9MCxwPTAsdz0wO3JldHVybiBiPWFlLGFlPWFlKzE2fDAsbT1iLGgwKGN8PTAsMTM3NDgzLDI4MCwxKSxhWzE0NCsoMHxhWyhBPWMrMTZ8MCk+PjJdKT4+Ml09''@;'; + put 'put ''bCwoMHxkaShjKSkhPSgwfGMpJiYoYVsxNDQrKDB8YVsxNisoMHxkaShjKSk+PjJdKT4+Ml09bCksZj1sKzE3MnwwLDAhPSgwfChwPTB8TGkoYywxMTEyMjYpKSkmJihhW2Y+PjJdPTAsOTk5PT0oMHxYTShsLHApKSk/KGY9MHx6RyhsLDEscCksYVttPj4yXT1wLGFbbSs0Pj4yXT1mLCRyKDEs''@;'; + put 'put ''MTExMjMzLG0pLGY9LTEpOihwPTB8YVtmPj4yXSk/KHNjKDEpLGZ1bmN0aW9uIEdvZShsLGMpe2x8PTAsY3w9MDt2YXIgbSxrLE0sZj0wLHA9MCxBPTAsdz0wLGI9MDtNPWFlLGFlPWFlKzE2fDAsbT1NKzh8MCxBPU0sZj0wfHZyKDk2KSxhWzgrKDB8YVsoaz1sKzE2fDApPj4yXSk+PjJdPWYs''@;'; + put 'put ''KChmPTB8TGkobCwxMDEyMTMpKXx8MHwoZj0wfER1KDEwMTIyMikpKSYmKGI9MyksMz09KDB8YikmJlZ0KDEwMTIzNCwwfGYsMSksZj0yNTUmKDB8ZnVuY3Rpb24gV29lKGwpe3ZhciBjLGY7cmV0dXJuIGY9YWUsYWU9YWUrMTZ8MCxjPWYsMCE9KDB8eTAobD0wfEJhKGx8PTAsMHxzaShsLDAs''@;'; + put 'put ''MTAxODA3LDApLDEwMTgxNSksMTAxODIxKSkmJjAhPSgwfHkwKGwsMTAxODI5KSkmJjAhPSgwfHkwKGwsMTAxODM2KSkmJjAhPSgwfHkwKGwsMTAxODM5KSkmJjAhPSgwfHkwKGwsMTAxODUwKSkmJjAhPSgwfHkwKGwsMTAxODYxKSkmJjAhPSgwfHkwKGwsMTAxODcxKSk/MCE9KDB8eTAobCwx''@;'; + put 'put ''MDE4ODIpKSYmMCE9KDB8eTAobCwxMDE4ODgpKT8oMCE9KDB8eTAobCwxMDE4MTUpKSYmMCE9KDB8eTAobCwxMDE4OTMpKSYmKGFbYz4+Ml09bCwkcigwLDEwMTg5OCxjKSksbD0wKTpsPTI6bD0xLGFlPWYsMHxsfShsKSksZmVbMTE1KygwfGFbaz4+Ml0pPj4wXT1mLGY9MHxMaShsLDEwMTI0''@;'; + put 'put ''NSksYVs0NzEzM109ZiwwPT0oMHxmKSYmKGFbNDcxMzNdPWFbNDcxMzJdKSxwPStNbChsLDB8c2kobCwwLDEwMTI1NSwwKSwwLDApLF9bYVs4KygwfGFbaz4+Ml0pPj4yXT4+M109cCxmPTB8TGkobCwxMDEyNjMpO2U6ZG97aWYoZil7c3dpdGNoKDB8ZmVbZj4+MF0pe2Nhc2UgNzY6aWYoISgw''@;'; + put 'put ''fGppKGYsMTAxMjcxKSkpe2Y9MTticmVhayBlfWJyZWFrO2Nhc2UgNjY6aWYoISgwfGppKGYsMTAxMjc0KSkpe2Y9MjticmVhayBlfWJyZWFrO2Nhc2UgODI6Zj0oZj0wPT0oMHxqaShmLDEwMTI3NykpKT8zOjA7YnJlYWsgZTtkZWZhdWx0OmY9MDticmVhayBlfWY9MH1lbHNlIGY9MH13aGls''@;'; + put 'put ''ZSgwKTthWzExNisoMHxhW2s+PjJdKT4+Ml09Zjw8MnwoYzw8MjQ+PjI0PT0wPzA6ZikscD0rTWwobCwwfHNpKGwsMCwxMDEyODAsMCksLjI1LC4wMiksX1tBPj4zXT1wLGFbMjQ4KygwfGFbaz4+Ml0pPj4yXT1+figocCo9NzIpKyhwPj0wPy41Oi0uNSkpLChmPTB8djIobCwwfHNpKGwsMCwx''@;'; + put 'put ''MDEyODgsMCksMCkpPyhhW20+PjJdPUEsMHxpbChmLDEwMTIwOSxtKT8ocD0rX1tBPj4zXSk8LjAyJiYoX1tBPj4zXT0uMDIscD0uMDIpOihfW0E+PjNdPS41LHA9LjUpLDB8cWsoZiwxMDEyOTYpJiYoZmVbMjc2KygwfGFbaz4+Ml0pPj4wXT0xKSk6KF9bQT4+M109LjUscD0uNSksYVsyNTIr''@;'; + put 'put ''KDB8YVtrPj4yXSk+PjJdPX5+KChwKj03MikrKHA+PTA/LjU6LS41KSksQT0yNTUmKDB8ZXMobCwwfHNpKGwsMCwxMDEzMDQsMCksMCwwKSksZmVbMjQzKygwfGFbaz4+Ml0pPj4wXT1BLEE9MHxtTigwfHYyKGwsMHxzaShsLDAsMTAxMzE0LDApLDApLDIwNjc2LDIwNjkyKSxhWzI0NCsoMHxh''@;'; + put 'put ''W2s+PjJdKT4+Ml09QSxmdW5jdGlvbiBsUShsKXt2YXIgZixjPTAscD0wO2Y9MHxMaShsfD0wLDEwMTc2NSk7ZTpkb3tpZigwfGYmJihwPTB8ZmVbZj4+MF0scDw8MjQ+PjI0KSlzd2l0Y2gocDw8MjQ+PjI0fDApe2Nhc2UgOTc6aWYocDw8MjQ+PjI0IT05N3x8MHxqaShmLDEwMTc3MSkpYnJl''@;'; + put 'put ''YWsgZTthWzg0KygwfGFbOCsoMHxhW2wrMTY+PjJdKT4+Ml0pPj4yXT00O2JyZWFrIGU7Y2FzZSA5OTppZihwPDwyND4+MjQhPTk5fHwwfGppKGYsMTAxNzc2KSlicmVhayBlO2FbODQrKDB8YVs4KygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdPTM7YnJlYWsgZTtjYXNlIDEwMTppZihwPDwyND4+''@;'; + put 'put ''MjQhPTEwMXx8MHxqaShmLDEwMTc4NSkpYnJlYWsgZTthWzg0KygwfGFbOCsoMHxhW2wrMTY+PjJdKT4+Ml0pPj4yXT01O2JyZWFrIGU7Y2FzZSAxMDI6aWYocDw8MjQ+PjI0IT0xMDJ8fDB8amkoZiwxMDE3OTIpKWJyZWFrIGU7YVs4NCsoMHxhWzgrKDB8YVtsKzE2Pj4yXSk+PjJdKT4+Ml09''@;'; + put 'put ''MjticmVhayBlO2RlZmF1bHQ6aWYoISgoYz0ra3AoZikpPjApKWJyZWFrIGU7YVs4NCsobD0wfGFbOCsoMHxhW2wrMTY+PjJdKT4+Ml0pPj4yXT0xLF9bbCsxNj4+M109YzticmVhayBlfX13aGlsZSgwKX0obCksQT0wfHNRKGwsMTAxMzI0LDY0KygwfGFbOCsoMHxhW2s+PjJdKT4+Ml0pfDAp''@;'; + put 'put ''LGZlWzgwKyhmPTB8YVs4KygwfGFbaz4+Ml0pPj4yXSk+PjBdPUEsc1EobCwxMDEzMjksZis0OHwwKSxmPTB8ZTEoMHxMaShsLDEwMTMzNCkpLGZlWzgyKygwfGFbOCsoMHxhW2s+PjJdKT4+Ml0pPj4wXT1mLGY9MHxMaShsLDEwMTM0MSk7ZG97aWYoZilmPTkwPT0oMHxyMyhmKSkmMSxiPTI3''@;'; + put 'put ''O2Vsc2V7aWYoMHwoZj0wfExpKGwsMTAxMzQ4KSkpe2Y9KDMyfGZlW2Y+PjBdKTw8MjQ+PjI0PT0xMDgmMSxiPTI3O2JyZWFrfTB8KGY9MHxMaShsLDEwMTM2MCkpJiYoZj0wfGUxKGYpLGI9MjcpfX13aGlsZSgwKTsyNz09KDB8YikmJihmZVs4MSsoMHxhWzgrKDB8YVtrPj4yXSk+PjJdKT4+''@;'; + put 'put ''MF09ZiksYVs0NzEzNV09MHxtTigwfExpKGwsMTAxMzcwKSwyMDcwOCwyMDcyNCksZmVbMTk0OTU0XT0wfGUxKDB8TGkobCwxMDEzODIpKSxhWzQ3MTM4XT0wLGFbNDcxMzldPTAsX1syNCsoMHxhWzgrKDB8YVtrPj4yXSk+PjJdKT4+M109MCwzMD09KDB8KGI9MCE9KDB8KGY9MHxMaShsLDEw''@;'; + put 'put ''MTM5NCkpKSYmMCE9KDB8ZmVbZj4+MF0pPzMyOjMwKSkmJjB8KHc9MHxMaShsLDEwMTM5OCkpJiYwfGZlW3c+PjBdJiYoZj13LGI9MzIpLDMyPT0oMHxiKSYmKHA9K2twKGYpLF9bMjQrKDB8YVs4KygwfGFbaz4+Ml0pPj4yXSk+PjNdPXApLHVrKGwpLF9bMjMyOTVdPTFlMzcsYVs0NzE0MF09''@;'; + put 'put ''MHxzaShsLDAsMTAxNDA5LDApLGFbNDcxNDNdPTB8c2kobCwwLDE0MTAzNCwwKSxhWzQ3MTQ0XT0wfHNpKGwsMCwxMDU0OTYsMCksYVs0NzE0NV09MHxzaShsLDEsMTQxMDQ4LDApLGFbNDcxNDZdPTB8c2kobCwxLDE0MTExNiwwKSxhWzQ3MTQ3XT0wfHNpKGwsMSwxMDgyMzAsMCksYVs0NzE0''@;'; + put 'put ''OF09MHxzaShsLDEsMTQwODIzLDApLGFbNDcxNDldPTB8c2kobCwxLDEwMTQxOCwwKSxhWzQ3MTU3XT0wfHNpKGwsMSwxNDEwODIsMCksYVs0NzE1MF09MHxzaShsLDEsMTAxNDI4LDApLGFbNDcxNTFdPTB8c2kobCwxLDEwMTQzNywwKSxhWzQ3MTUyXT0wfHNpKGwsMSwxMDE0NDYsMCksYj0w''@;'; + put 'put ''fHNpKGwsMSwxMDgyMjQsMCksYVs0NzE1NF09YixifHwoYVs0NzE1NF09MHxzaShsLDEsMTA4MjI0LDEwNTQ5MykpLGFbNDcxNTVdPTB8c2kobCwxLDEwMTQ1NiwwKSxhWzQ3MTU4XT0wfHNpKGwsMSwxMDEzMDQsMCksYVs0NzE3Ml09MHxzaShsLDEsMTAxNDYzLDApLGFbNDcxNjFdPTB8c2ko''@;'; + put 'put ''bCwxLDEwMTQwOSwwKSxhWzQ3MTUzXT0wfHNpKGwsMSwxMDU0OTYsMCksYVs0NzE1OV09MHxzaShsLDEsMTQxMDc2LDApLGFbNDcxNjBdPTB8c2kobCwxLDEwMTQ3MiwwKSxhWzQ3MTYzXT0wfHNpKGwsMSwxMDE0ODQsMCksYVs0NzE2Ml09MHxzaShsLDEsMTAxMzQ4LDApLGFbNDcxNjRdPTB8''@;'; + put 'put ''c2kobCwxLDEwMTQ4OSwwKSxhWzQ3MTY1XT0wfHNpKGwsMSwxNDEwMjQsMCksYVs0NzE2Nl09MHxzaShsLDEsMTM3Mjk3LDApLGFbNDcxNTZdPTB8c2kobCwxLDEwMTUwMCwwKSxhWzQ3MTY3XT0wfHNpKGwsMSwxMDE1MTAsMCksYVs0NzE2OF09MHxzaShsLDEsMTAxNTE2LDApLGFbNDcxNjld''@;'; + put 'put ''PTB8c2kobCwxLDEwMTUyMiwwKSxhWzQ3MTcwXT0wfHNpKGwsMSwxMDE1MzAsMCksYVs0NzE3MV09MHxzaShsLDEsMTAxNTM5LDApLGFbNDcxNzNdPTB8c2kobCwxLDE0MTAzNCwwKSxhWzQ3MTc0XT0wfHNpKGwsMiwxMDE1NDEsMCksYVs0NzE3Nl09MHxzaShsLDIsMTQwODIzLDApLGFbNDcx''@;'; + put 'put ''NzddPTB8c2kobCwyLDEwMTQxOCwwKSxhWzQ3MTc5XT0wfHNpKGwsMiwxMDE0MjgsMCksYVs0NzE4MF09MHxzaShsLDIsMTAxNDM3LDApLGFbNDcxODFdPTB8c2kobCwyLDEwMTQ0NiwwKSxhWzQ3MTgyXT0wfHNpKGwsMiwxMDgyMjQsMCksYVs0NzE4M109MHxzaShsLDIsMTAxNDU2LDApLGFb''@;'; + put 'put ''NDcxOTJdPTB8c2kobCwyLDEwMTU0OCwwKSxhWzQ3MTg0XT0wfHNpKGwsMiwxMDE1NTksMCksYVs0NzE5NV09MHxzaShsLDIsMTAxNTYzLDApLGFbNDcxOTZdPTB8c2kobCwyLDEwMTU3MywwKSxhWzQ3MTk3XT0wfHNpKGwsMiwxMDE1ODMsMCksYVs0NzE5OF09MHxzaShsLDIsMTAxNTkzLDAp''@;'; + put 'put ''LGFbNDcxOTldPTB8c2kobCwyLDEwMTYwMywwKSxhWzQ3MjAwXT0wfHNpKGwsMiwxMDE2MTcsMCksYVs0NzIwMV09MHxzaShsLDIsMTAxNjMxLDApLGFbNDcyMDJdPTB8c2kobCwyLDEwMTY0NiwwKSxhWzQ3MjAzXT0wfHNpKGwsMiwxMDE2NjAsMCksYVs0NzE3NV09MHxzaShsLDIsMTAxNjcx''@;'; + put 'put ''LDApLGFbNDcxODddPTB8c2kobCwyLDEwMTMwNCwwKSxhWzQ3MTg1XT0wfHNpKGwsMiwxNDEwODIsMCksYVs0NzE4Nl09MHxzaShsLDIsMTAxNjc4LDApLGFbNDcxODhdPTB8c2kobCwyLDEwMTY4NywwKSxhWzQ3MTg5XT0wfHNpKGwsMiwxMDE2OTcsMCksYVs0NzE5MF09MHxzaShsLDIsMTAx''@;'; + put 'put ''NTEwLDApLGFbNDcxOTFdPTB8c2kobCwyLDEwMTUyMiwwKSxhWzQ3MjA0XT0wfHNpKGwsMiwxMDE3MDgsMCksYVs0NzIwNV09MHxzaShsLDIsMTAxNzE3LDApLGFbNDcyMDZdPTB8c2kobCwyLDEwMTQ2MywwKSxmPTB8ZnVuY3Rpb24gTFQobCl7dmFyIHAsbSx3LGM9MCxmPTAsQT0wO3JldHVy''@;'; + put 'put ''biB3PWFlLGFlPWFlKzE2fDAsbT13Kzh8MCxwPXcsMCE9KDB8KGM9MHxMaShsfD0wLDk5Nzk2KSkpJiYwIT0oMHxmZVtjPj4wXSl8fDAhPSgwfChjPTB8TGkobCw5OTgwOCkpKSYmMCE9KDB8ZmVbYz4+MF0pPyhmPWMsQT01KTpjPTAsNT09KDB8QSkmJigoYz0wfEdoKGYsMCwxMjApKXx8KGFb''@;'; + put 'put ''cD4+Ml09MHx0aShsKSwkcigwLDk5ODE1LHApLGFbbT4+Ml09ZiwkcigzLDk5ODY4LG0pKSksYWU9dywwfGN9KGwpLGFbODgrKDB8YVs4KygwfGFbaz4+Ml0pPj4yXSk+PjJdPWYsMHwoZj0wfExpKGwsMTQxMDYwKSkmJjB8ZmVbZj4+MF0mJihsPTB8bTIoZixsKSxhWzkyKygwfGFbOCsoMHxh''@;'; + put 'put ''W2s+PjJdKT4+Ml0pPj4yXT1sKSxhZT1NfShjLDEmYVthW2wrMTgwPj4yXT4+Ml0pLGY9MHxhWzgrKDB8YVtBPj4yXSk+PjJdLGFbOCsoMHxhWzE2KygwfGRpKGMpKT4+Ml0pPj4yXT1mLGZ1bmN0aW9uIGlsZSgpe3ZhciBsLGMsZjtsPWFlLGFlPWFlKzMyfDAsYz1sKzE2fDAsYVsoZj1sKT4+''@;'; + put 'put ''Ml09MCxhW2YrND4+Ml09MCxhW2YrOD4+Ml09MCxhW2YrMTI+PjJdPTAsYVtjPj4yXT1hW2Y+PjJdLGFbYys0Pj4yXT1hW2YrND4+Ml0sYVtjKzg+PjJdPWFbZis4Pj4yXSxhW2MrMTI+PjJdPWFbZisxMj4+Ml0sckooMCxjKSxhW2M+PjJdPWFbZj4+Ml0sYVtjKzQ+PjJdPWFbZis0Pj4yXSxh''@;'; + put 'put ''W2MrOD4+Ml09YVtmKzg+PjJdLGFbYysxMj4+Ml09YVtmKzEyPj4yXSxuTigwLGMpLGFbYz4+Ml09YVtmPj4yXSxhW2MrND4+Ml09YVtmKzQ+PjJdLGFbYys4Pj4yXT1hW2YrOD4+Ml0sYVtjKzEyPj4yXT1hW2YrMTI+PjJdLEpRKDAsYyksYWU9bH0oKSwwfChmPTB8YVtwPj4yXSkmJihDb1sx''@;'; + put 'put ''MjcmZl0oYyksMHwodz0wfGFbcCs0Pj4yXSkpJiYoYVsxNDgrKDB8YVtBPj4yXSk+PjJdPXcpLHNjKDApLGY9MCk6Zj0tMSxhZT1iLDB8Zn0obCxjKSk/bD0tMTooZj0xNisobD0wfGFbYysxNj4+Ml0pfDAsMHxmZVs4MSsoMHxhW2wrOD4+Ml0pPj4wXT8oTT0rX1tmPj4zXSxEPStfW2wrNDA+''@;'; + put 'put ''PjNdLFI9K19bbCszMj4+M10sYVtBPj4yXT1+figoaz0rX1tsKzI0Pj4zXSkrKGs+PTA/LjU6LS41KSksYVtBKzQ+PjJdPX5+KE0rKE0+PTA/LjU6LS41KSksYVtBKzg+PjJdPX5+KEQrKEQ+PTA/LjU6LS41KSksYVtBKzEyPj4yXT1+fihSKyhSPj0wPy41Oi0uNSkpLG9vKG0sOTg4OTksQSkp''@;'; + put 'put ''OihEPStfW2wrMjQ+PjNdLE09K19bbCszMj4+M10saz0rX1tsKzQwPj4zXSxhW3c+PjJdPX5+KChSPStfW2Y+PjNdKSsoUj49MD8uNTotLjUpKSxhW3crND4+Ml09fn4oRCsoRD49MD8uNTotLjUpKSxhW3crOD4+Ml09fn4oTSsoTT49MD8uNTotLjUpKSxhW3crMTI+PjJdPX5+KGsrKGs+PTA/''@;'; + put 'put ''LjU6LS41KSksb28obSw5ODg5OSx3KSksSTUoYywxMDI2NzEsbSwxOTUwNTkpLGw9MCk6KGw9MHx6RyhsLDEsZiksYVtwPj4yXT1mLGFbcCs0Pj4yXT1sLCRyKDEsMTExMjMzLHApLGw9LTEpLGFlPWIsMHxsfWZ1bmN0aW9uIENyZShsLGMsZixwLG0pe3B8PTAsbXw9MDt2YXIgdyxrLEQsQT0w''@;'; + put 'put ''LGI9MCxNPTA7RD1hZSxhZT1hZSsxNnwwLHc9RCs4fDAsQT1ELGM9MHxhWzYwKyhjfD0wKT4+Ml0sQ1QobHw9MCxmfD0wKSxhWzU2KyhrPTB8YVtsKzE2ND4+Ml0pPj4yXT0wfEN2KGssMHxhW2srNTI+PjJdKSwwIT0oMHxoMChjLDEzNzQ4MywwLDEpKSYmMCE9KDB8YVs4KygwfGFbYysxNj4+''@;'; + put 'put ''Ml0pPj4yXSl8fDY3MTA4ODY0JmFbaysxNTI+PjJdP009NTooWG0oOTg5MTEsQSksYz0tMSk7ZG97aWYoNT09KDB8TSkpe2lmKDB8cCYmKGI9MHxCMCg0MDk2KSxhW3A+PjJdPWIsMHxiKSl7YVsoQT1rKzQwfDApPj4yXT1iLGFbays0ND4+Ml09NDA5NixhWyhmPWsrNDh8MCk+PjJdPTAsYz0w''@;'; + put 'put ''fGcyKGwsYyksa3YoayksY3x8KGFbcD4+Ml09YVtBPj4yXSxhW20+PjJdPWFbZj4+Ml0pLHFQKGwpO2JyZWFrfSRyKDEsOTg5MzIsdyksYz0tMX19d2hpbGUoMCk7cmV0dXJuIGFlPUQsMHxjfWZ1bmN0aW9uIEVUKGwsYyl7VTgobHw9MCwwLGN8PTApfWZ1bmN0aW9uIEJBKGwsYyxmLHApe2x8''@;'; + put 'put ''PTAsY3w9MCxmfD0wLHB8PTA7dmFyIEhlLFZlLHFlLG50LFdlLGt0LG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxvdD0wLFN0PTA7a3Q9YWUsYWU9YWUrNDI4OHwwLFdlPWt0Kzh8MCxudD1rdCxvdD00LFN0PTB8''@;'; + put 'put ''QjAoNDApLGFbU3Q+PjJdPTAsSGU9a3QrNDE1MnwwLFZlPWt0KzQxNDh8MCxxZT1rdCs0MTI4fDAsYj1rdCs0MTEyfDAsaz1rdCsxNnwwLE1uPTAsdz0wfGEwKDI0LDB8bCksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8''@;'; + put 'put ''bSwwfHhuKSxEbj14bik6QT0tMTtlOmRve2lmKDEhPSgwfEEpKXtpZighdyl7YVtjPj4yXT0wLG09MDticmVha31pZihNbj0wLEQ9MHxKcygyOSwwfGYsMHxWZSwwfEhlKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxt''@;'; + put 'put ''LDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKWlmKE1uPTAsTT0wfGEwKDIzLDQwKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKWlmKE1uPTAsY3UoNywwfHFlLDB8''@;'; + put 'put ''YiwwfGssMjQsODUpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpaWYoTW49MCxmPTB8YTAoMjUsMHxsKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0w''@;'; + put 'put ''fGdpKDB8YVttPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKXtmb3Iodz0wfGFbKGI9cWUrMTZ8MCk+PjJdLG09ZjttOyl7aWYoTW49MCxGbCgwfHcsMHxtLDApLEE9TW4sTW49MCwwIT0oMHxBKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW0E+PjJd''@;'; + put 'put ''LDB8U3QsMHxvdCkpfHx6ZSgwfEEsMHx4biksRG49eG4pOmY9LTEsMT09KDB8Zikpe1JlPTAsTGU9YixPZT1NLGJlPUQsbT1EbixNPTE1O2JyZWFrIGV9aWYoTW49MCxtPTB8RmwoODYsMHxsLDB8bSksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbQT4+Ml0sMHxT''@;'; + put 'put ''dCwwfG90KSl8fHplKDB8QSwwfHhuKSxEbj14bik6Zj0tMSwxPT0oMHxmKSl7UmU9MCxMZT1iLE9lPU0sYmU9RCxtPURuLE09MTU7YnJlYWsgZX19U3Q9MHxQZigxODgwNjgsMSwwfFN0LDB8b3QpLG90PURuLG09TW49MCxNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+''@;'; + put 'put ''Ml0sMHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKT8oUmU9TSxMZT1iLE9lPU0sYmU9RCxtPURuLE09MTUpOihSZT1NLExlPWIsT2U9TSxiZT1ELG09MCxNPTE1KX1lbHNlIFJlPTAsTGU9MCxPZT1NLGJlPUQsbT1EbixNPTE1O2Vsc2UgUmU9MCxMZT0wLE9l''@;'; + put 'put ''PU0sYmU9RCxtPURuLE09MTU7ZWxzZSBSZT0wLExlPTAsT2U9TSxiZT1ELG09RG4sTT0xNTtlbHNlIFJlPTAsTGU9MCxPZT0wLGJlPUQsbT1EbixNPTE1fWVsc2UgUmU9MCxMZT0wLE9lPTAsYmU9MCxtPURuLE09MTV9d2hpbGUoMCk7ZG97aWYoMTU9PSgwfE0pKXtlOmZvcig7Oyl7dDpkb3tp''@;'; + put 'put ''ZihtKU09MSxrPTAsRD1SZSxiPTAsdz1PZSxmPU9lO2Vsc2V7aWYoTW49MCxmPTB8YTAoMjUsMHxsKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGJlPUs9''@;'; + put 'put ''YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlIGV9Zm9yKGdlPWJlKygwfGFbVmU+PjJdKXwwLGs9MCxNPTAsYj0wO2Y7KXtpZihNbj0wLG09MHxGbCgwfGFbTGU+PjJdLDB8ZiwtMSksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKHc9MHxnaSgwfGFbQT4+''@;'; + put 'put ''Ml0sMHxTdCwwfG90KSl8fHplKDB8QSwwfHhuKSxEbj14bik6dz0tMSwxPT0oMHx3KSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWlmKDA9PSgwfG0pJiYzPT0oMHxmZVsxMTkrKDB8YVtmKzE2Pj4yXSk+PjBdKSl7aWYoTSl3PU07ZWxz''@;'; + put 'put ''ZXtpZihNbj0wLGFbbnQ+PjJdPWIsSnMoMzAsMHxnZSwxMzczOTUsMHxudCksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExl''@;'; + put 'put ''PWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWlmKE1uPTAsdz0wfEpzKDMxLDB8bCwwfGJlLDEpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYmU9''@;'; + put 'put ''Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX1pZihNbj0wLHRhKDUzLDB8dywxMzc0ODMsMjgwLDEpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEs''@;'; + put 'put ''MT09KDB8QSkpe209RG4sYmU9Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX1hW1JlKyhiPDwyKT4+Ml09dyxrPTEsYj1iKzF8MH1pZihNbj0wLHRhKDU0LDB8bCwwfGYsMHx3LDB8cWUpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2ko''@;'; + put 'put ''MHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYmU9Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX19ZWxzZSB3PU07aWYoTW49MCxmPTB8RmwoODYsMHxsLDB8ZiksbT1NbixNbj0wLDAhPSgw''@;'; + put 'put ''fG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfU09d31pZihNbj0wLGY9MHxhMCgyNSwwfGwpLG09''@;'; + put 'put ''TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYmU9Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX1mb3Iodz0xMCxEPVJlLFI9''@;'; + put 'put ''T2UsRz1PZSxwZT1PZTs7KXtpZighZil7TT0wLHc9RyxmPXBlO2JyZWFrIHR9aWYoTW49MCxtPTB8RmwoMHxhW0xlPj4yXSwwfGYsLTEpLEE9TW4sTW49MCwwIT0oMHxBKSYwIT0oMHx4bik/KChNPTB8Z2koMHxhW0E+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfEEsMHx4biksRG49eG4pOk09LTEs''@;'; + put 'put ''MT09KDB8TSkpe209RG4sYmU9Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX1pZihtKU09cGU7ZWxzZXtpZihNbj0wLGFbV2U+PjJdPWIsSnMoMzAsMHxnZSwxMzczOTUsMHxXZSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFb''@;'; + put 'put ''bT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWlmKE1uPTAsSz0wfEpzKDMxLDB8bCwwfGJlLDEpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4''@;'; + put 'put ''bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYmU9Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX1pZihNbj0wLHRhKDUzLDB8SywxMzc0ODMsMjgwLDEpLEE9TW4sTW49''@;'; + put 'put ''MCwwIT0oMHxBKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW0E+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfEEsMHx4biksRG49eG4pOm09LTEsMT09KDB8bSkpe209RG4sYmU9Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX1pZihNbj0wLHRhKDU0LDB8bCwwfGYs''@;'; + put 'put ''MHxLLDB8cWUpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYmU9Sz1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX1pZigo''@;'; + put 'put ''MHxiKT09KDB8dykpe2lmKHc9Yjw8MSxNbj0wLE09MHxGbCg4NywwfFIsYjw8M3wwKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGJlPUs9YmUsT2U9cGU9''@;'; + put 'put ''T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlIGV9bT1NLFI9TSxHPU0sQT1NfWVsc2UgbT1ELEE9cGU7YVttKyhiPDwyKT4+Ml09SyxEPW0sYj1iKzF8MCxNPUF9aWYoTW49MCxmPTB8RmwoODYsMHxsLDB8ZiksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgw''@;'; + put 'put ''fGFbbT4+Ml0sMHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfXBlPU19fX13aGlsZSgwKTtpZihNbj0wLHNzKDEwOCwwfHFlKSxtPU1uLE1uPTAsMCE9KDB8''@;'; + put 'put ''bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKWlmKCgwfGJlKT09KDB8SGUpfHwoTW49MCxzcygxMDUsMHxiZSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0s''@;'; + put 'put ''MHxTdCwwfG90KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxIT0oMHxBKSkpe2lmKCFNKXtpZihNbj0wLG09MHxGbCg4NywwfGYsYjw8MnwwKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtBPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxBLDB8eG4pLERuPXhu''@;'; + put 'put ''KTpmPS0xLDE9PSgwfGYpKXttPURuLGJlPUs9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlfU09NTg7YnJlYWt9Zm9yKGFbYz4+Ml09MCxtPTA7ISgoMHxtKT49KDB8YikpOyl7aWYoTW49MCxhMCgyNiwwfGFbRCsobTw8Mik+PjJdKSxBPU1uLE1uPTAsMCE9KDB8''@;'; + put 'put ''QSkmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtBPj4yXSwwfFN0LDB8b3QpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKXttPURuLGJlPUs9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlIGV9bT1tKzF8MH1pZihNbj0wLHNzKDEwNSwwfHcpLG09''@;'; + put 'put ''TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxvdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpe009NTY7YnJlYWt9bT1EbixiZT1LPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNX1lbHNlIG09RG4sYmU9Sz1i''@;'; + put 'put ''ZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7ZWxzZSBtPURuLGJlPUs9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1fWlmKDU2PT0oMHxNKSl7bT0wO2JyZWFrfWlmKDU4PT0oMHxNKSl7YVtjPj4yXT1iLGZlW3A+PjBdPWs7YnJlYWt9fX13aGlsZSgwKTtyZXR1cm4g''@;'; + put 'put ''RnQoMHxTdCksYWU9a3QsMHxtfWZ1bmN0aW9uIGtyZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBwLG09MDtyZXR1cm4gMCE9KDB8KGx8PTApKSYmMCE9KDB8ZnVuY3Rpb24gSDYobCl7bHw9MDt2YXIgYz0wO2U6Zm9yKDs7KXtzd2l0Y2goYz1sLGw9bCsxfDAsKGM9MHxmZVtjPj4wXSk8PDI0Pj4y''@;'; + put 'put ''NCl7Y2FzZSA5NTpjb250aW51ZSBlO2Nhc2UgMDpsPTE7YnJlYWsgZX1pZighKDB8aTkoMjU1JmMpKSl7bD0wO2JyZWFrfX1yZXR1cm4gMHxsfShsKSl8fChsPTk4OTg4KSwoMHwocD0wfFVvKGwpKSk+PTEwND8oZj0wfFFuKHArMjV8MCkpP209NjpmPTA6bT02LDY9PSgwfG0pJiYoaWQoZixs''@;'; + put 'put ''KSxhW2M+PjJdPXApLDB8Zn1mdW5jdGlvbiAkRyhsLGMsZixwLG0pe2x8PTAscHw9MCxtfD0wLGFbKGN8PTApPj4yXT1mfD0wLGFbYys0Pj4yXT1mKzQwOTYsYVtjKzEyPj4yXT0wLGFbYys4Pj4yXT0wLGFbbD4+Ml09YyxhW2wrND4+Ml09YyxhW2wrOD4+Ml09ZixhW2wrMTI+PjJdPXAsYVts''@;'; + put 'put ''KzE2Pj4yXT1tfWZ1bmN0aW9uIHFHKGwsYyxmLHApe2x8PTAsZnw9MDt2YXIgYixrLG09MCxBPTAsdz0wLE09MDtlVyhwfD0wLGN8PTApLGI9cCsxMnwwLGs9cCsxNnwwLGM9MDtlOmZvcig7TT0wfE1yZShwKSxNOylmb3IoYz1jKzF8MCxtPTB8YVtiPj4yXSwwfG0mJkdzWzYzJm1dKE0sZiks''@;'; + put 'put ''dz0wfFNzKGwsTSk7Oyl7aWYoIXcpY29udGludWUgZTsoMHwobT0wfGFbKDM9PSgwfChBPTMmYVt3Pj4yXSkpP3c6dys0OHwwKSs0MD4+Ml0pKT09KDB8TSkmJihtPTB8YVsoMj09KDB8QSk/dzp3Ky00OHwwKSs0MD4+Ml0pLDB8QmlbMTI3JmFbaz4+Ml1dKG0sLTEpfHxlVyhwLG0pLHc9MHxI''@;'; + put 'put ''cyhsLHcsTSl9cmV0dXJuIDB8Y31mdW5jdGlvbiBTcmUobCl7dmFyIGM9MDtmb3IobD0wfGFbMTIrKDB8YVsobHw9MCk+PjJdKT4+Ml07bDspYz0wfGFbbCsxMj4+Ml0sam1lKGwpLGw9Y31mdW5jdGlvbiBqbWUobCl7RnQoMHxhWyhsfD0wKT4+Ml0pLEZ0KGwpfWZ1bmN0aW9uIGVXKGwsYyl7''@;'; + put 'put ''Y3w9MDt2YXIgbSxBLGIsTSxmPTAscD0wLHc9MCxrPTA7aWYoTT1hZSxhZT1hZSsxNnwwLGs9TSs4fDAsbT1NLCgwfGFbKEE9OCsobHw9MCl8MCk+PjJdKT09KDB8YVs0KyhmPTB8YVsoYj1sKzR8MCk+PjJdKT4+Ml0pKXtmPTB8YVtmKzEyPj4yXTtkb3tpZihmKXc9ZjtlbHNle2lmKChwPTB8''@;'; + put 'put ''UW4oMTYpKXx8KCRyKDEsOTg5NjksbSksemUoMTg4MDY4LDEpKSxhW3ArOD4+Ml09YVtiPj4yXSxhW3ArMTI+PjJdPTAsZj0wfFFuKDRlNiksYVtwPj4yXT1mLGYpe2FbcCs0Pj4yXT1mKzRlNixhWzEyKygwfGFbYj4+Ml0pPj4yXT1wLHc9cDticmVha30kcigxLDk4OTY5LGspLHplKDE4ODA2''@;'; + put 'put ''OCwxKX19d2hpbGUoMCk7YVtiPj4yXT13LGFbQT4+Ml09YVt3Pj4yXX1CaVsxMjcmYVtsKzE2Pj4yXV0oYywxKSxhW0E+PjJdPTQrKGs9MHxhW0E+PjJdKSxhW2s+PjJdPWMsYWU9TX1mdW5jdGlvbiBNcmUobCl7dmFyIGYscCxtLGM9MCxBPTA7cmV0dXJuKDB8KGM9MHxhWyhtPTgrKGx8PTAp''@;'; + put 'put ''fDApPj4yXSkpPT0oMHxhWyhwPTB8YVsoZj1sKzR8MCk+PjJdKT4+Ml0pPygwfHApPT0oMHxhW2w+PjJdKT9jPTA6KGFbZj4+Ml09Yz0wfGFbcCs4Pj4yXSxhW20+PjJdPWM9MHxhW2MrND4+Ml0sQT00KTpBPTQsND09KDB8QSkmJihhW20+PjJdPWM9YystNHwwLGM9MHxhW2M+PjJdKSwwfGN9''@;'; + put 'put ''ZnVuY3Rpb24gdFcobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBiZSxPZSxMZSxSZSxxZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxIZT0wLFZlPTA7cWU9YWUsYWU9YWUrNDI3MnwwLFJlPXFlLEhlPTQsVmU9MHxCMCg0MCksYVtWZT4+''@;'; + put 'put ''Ml09MCxiZT1xZSs0MTQ0fDAsT2U9cWUrNDE0MHwwLExlPXFlKzQxMjB8MCx3PXFlKzQxMDR8MCxiPXFlKzh8MCxNbj0wLG09MHxhMCgyNCwwfGwpLEE9TW4sTW49MCwwIT0oMHxBKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW0E+PjJdLDB8VmUsMHxIZSkpfHx6ZSgwfEEsMHx4biksRG49eG4p''@;'; + put 'put ''OnA9LTE7ZTpkb3tpZigxIT0oMHxwKSlpZihtKWlmKE1uPTAsTT0wfEpzKDI5LDB8ZiwwfE9lLDB8YmUpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KGY9MHxnaSgwfGFbcD4+Ml0sMHxWZSwwfEhlKSxmfHx6ZSgwfHAsMHx4biksRG49eG4pOmY9LTEsMSE9KDB8ZikpaWYoTW49MCxr''@;'; + put 'put ''PTB8YTAoMjMsNDApLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KGY9MHxnaSgwfGFbcD4+Ml0sMHxWZSwwfEhlKSxmfHx6ZSgwfHAsMHx4biksRG49eG4pOmY9LTEsMSE9KDB8ZikpaWYoTW49MCxjdSg3LDB8TGUsMHx3LDB8YiwyNCw4NSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgw''@;'; + put 'put ''fHhuKT8oZj0wfGdpKDB8YVtwPj4yXSwwfFZlLDB8SGUpLGZ8fHplKDB8cCwwfHhuKSxEbj14bik6Zj0tMSwxIT0oMHxmKSlpZihNbj0wLG09MHxhMCgyNSwwfGwpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KGY9MHxnaSgwfGFbcD4+Ml0sMHxWZSwwfEhlKSxmfHx6ZSgwfHAsMHx4''@;'; + put 'put ''biksRG49eG4pOmY9LTEsMSE9KDB8Zikpe2ZvcihBPTB8YVsodz1MZSsxNnwwKT4+Ml0scD1tO3A7KXtpZihNbj0wLEZsKDB8QSwwfHAsMCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbZj4+Ml0sMHxWZSwwfEhlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6bT0t''@;'; + put 'put ''MSwxPT0oMHxtKSl7Z2U9dyxwZT1rLEs9TSxwPURuLGs9MTQ7YnJlYWsgZX1pZihNbj0wLHA9MHxGbCg4NiwwfGwsMHxwKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0p''@;'; + put 'put ''KXtnZT13LHBlPWssSz1NLHA9RG4saz0xNDticmVhayBlfX1WZT0wfFBmKDE4ODA2OCwxLDB8VmUsMHxIZSksSGU9RG4scD1Nbj0wLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtwPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYp''@;'; + put 'put ''PyhnZT13LHBlPWssSz1NLHA9RG4saz0xNCk6KGdlPXcscGU9ayxLPU0scD0wLGs9MTQpfWVsc2UgZ2U9MCxwZT1rLEs9TSxwPURuLGs9MTQ7ZWxzZSBnZT0wLHBlPWssSz1NLHA9RG4saz0xNDtlbHNlIGdlPTAscGU9ayxLPU0scD1EbixrPTE0O2Vsc2UgZ2U9MCxwZT0wLEs9TSxwPURuLGs9''@;'; + put 'put ''MTQ7ZWxzZSBmPTAscD0wO2Vsc2UgZ2U9MCxwZT0wLEs9MCxwPURuLGs9MTR9d2hpbGUoMCk7ZTpkb3tpZigxND09KDB8aykpe3Q6Zm9yKDs7KXtpZigwfHApe2lmKE1uPTAsc3MoMTA4LDB8TGUpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW3A+PjJdLDB8VmUs''@;'; + put 'put ''MHxIZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOmY9LTEsMT09KDB8Zikpe3A9RG4sSz1SPUsscGU9Rz1wZSxnZT1rPWdlLGs9MTQ7Y29udGludWV9aWYoTW49MCxzcygxMDUsMHxwZSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbcD4+Ml0sMHxWZSwwfEhlKSl8''@;'; + put 'put ''fHplKDB8cCwwfHhuKSxEbj14bik6Zj0tMSwxPT0oMHxmKSl7cD1EbixLPVI9SyxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtjb250aW51ZX1pZigoMHxLKT09KDB8YmUpKXtmPTAscD0wO2JyZWFrIGV9aWYoTW49MCxzcygxMDUsMHxLKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoZj0w''@;'; + put 'put ''fGdpKDB8YVtwPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKXtwPURuLEs9Uj1LLHBlPUc9cGUsZ2U9az1nZSxrPTE0O2NvbnRpbnVlfWs9MTk7YnJlYWt9aWYoTW49MCxtPTB8YTAoMjUsMHxsKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4p''@;'; + put 'put ''PygoZj0wfGdpKDB8YVtwPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpmPS0xLDEhPSgwfGYpKXtmb3IoRz1LKygwfGFbT2U+PjJdKXwwLHc9MTAsTT1wZSxwPTAsaz1wZSxSPXBlO207KXtpZihNbj0wLGY9MHxGbCgwfGFbZ2U+PjJdLDB8bSwtMSksQT1NbixNbj0wLDAh''@;'; + put 'put ''PSgwfEEpJjAhPSgwfHhuKT8oKGI9MHxnaSgwfGFbQT4+Ml0sMHxWZSwwfEhlKSl8fHplKDB8QSwwfHhuKSxEbj14bik6Yj0tMSwxPT0oMHxiKSl7cD1EbixLPVI9SyxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtjb250aW51ZSB0fWlmKGYpYj1SO2Vsc2V7aWYoTW49MCxhW1JlPj4yXT1wLEpzKDMw''@;'; + put 'put ''LDB8RywxMzczOTUsMHxSZSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbZj4+Ml0sMHxWZSwwfEhlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1EbixLPVI9SyxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtjb250aW51ZSB0fWlmKE1uPTAs''@;'; + put 'put ''RD0wfEpzKDMxLDB8bCwwfEssMSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbZj4+Ml0sMHxWZSwwfEhlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1EbixLPVI9SyxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtjb250aW51ZSB0fWlmKE1u''@;'; + put 'put ''PTAsdGEoNTMsMHxELDEzNzQ4MywyODAsMSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbZj4+Ml0sMHxWZSwwfEhlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1EbixLPVI9SyxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtjb250aW51ZSB0''@;'; + put 'put ''fWlmKE1uPTAsdGEoNTQsMHxsLDB8bSwwfEQsMHxMZSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbZj4+Ml0sMHxWZSwwfEhlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1EbixLPVI9SyxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtjb250''@;'; + put 'put ''aW51ZSB0fWlmKCgwfHApPT0oMHx3KSl7aWYodz1wPDwxLE1uPTAsYj0wfEZsKDg3LDB8ayxwPDwzfDApLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW2Y+PjJdLDB8VmUsMHxIZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe3A9RG4sSz1S''@;'; + put 'put ''PUsscGU9Rz1wZSxnZT1rPWdlLGs9MTQ7Y29udGludWUgdH1BPWIsaz1iLGY9Yn1lbHNlIEE9TSxmPVI7YVtBKyhwPDwyKT4+Ml09RCxwPXArMXwwLE09QSxiPWZ9aWYoTW49MCxtPTB8RmwoODYsMHxsLDB8bSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbZj4+''@;'; + put 'put ''Ml0sMHxWZSwwfEhlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1EbixLPVI9SyxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtjb250aW51ZSB0fVI9Yn1pZihNbj0wLHNzKDEwOCwwfExlKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtmPj4y''@;'; + put 'put ''XSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTptPS0xLDEhPSgwfG0pKWlmKE1uPTAsZj0wfEZsKDg3LDB8UixwPDwyfDApLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8VmUsMHxIZSkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEs''@;'; + put 'put ''MSE9KDB8QSkpe2lmKCgwfEspPT0oMHxiZSkpYnJlYWsgZTtpZihNbj0wLHNzKDEwNSwwfEspLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8VmUsMHxIZSkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpe2s9Mzk7YnJlYWt9cD1E''@;'; + put 'put ''bixLPVI9SyxwZT1HPXBlLGdlPWs9Z2Usaz0xNH1lbHNlIHA9RG4sSz1SPUsscGU9Rz1wZSxnZT1rPWdlLGs9MTQ7ZWxzZSBwPURuLEs9Uj1LLHBlPUc9cGUsZ2U9az1nZSxrPTE0fWVsc2UgcD1EbixLPVI9SyxwZT1HPXBlLGdlPWs9Z2Usaz0xNH1pZigxOT09KDB8aykpe2Y9MCxwPTA7YnJl''@;'; + put 'put ''YWt9aWYoMzk9PSgwfGspKWJyZWFrfX13aGlsZSgwKTtyZXR1cm4gYVtjPj4yXT1wLEZ0KDB8VmUpLGFlPXFlLDB8Zn1mdW5jdGlvbiBFcmUobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MDtmb3IoZj0wLG09MHxEdChsfD0wKTttOyl7Zm9yKHA9MHx3MChjLG0pO3A7KTB8V24obCwwfGFbKDI9''@;'; + put 'put ''PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0sMCkmJihWZChsLHAsMSksZj1mKzF8MCkscD0wfFMwKGMscCk7bT0wfHp0KGwsbSl9cmV0dXJuIDB8Zn1mdW5jdGlvbiB4cmUobCl7cmV0dXJuKGw9MHxhbyhsfD0wLDk4OTkzLDApKT8wfGFbbCs4Pj4yXTooUHIoOTg5OTgsOTkwMDEs''@;'; + put 'put ''NTI5LDk5MDEwKSwwKX1mdW5jdGlvbiBabWUobCxjLGYpe2N8PTAsZnw9MDt2YXIgRyxLLGJlLE9lLHA9MCxBPTAsdz0wLGs9MCxNPTAsRD0wLFI9MCxMZT0wLFJlPTA7aWYoT2U9YWUsYWU9YWUrNDMyMHwwLEs9T2UsYmU9T2UrNDE4NHwwLEc9T2UrNDE2MHwwLHA9T2UrNDB8MCwwfEdvKGx8''@;'; + put 'put ''PTApKXtmb3IoJGkobCwwLDk5MDE5LC0xMiwwKSwkaShsLDEsOTkwMzEsMTYsMCksUj0wfGtyZShmLHAsYmUpLGs9MHxmdW5jdGlvbiB6bWUobCl7bHw9MDt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wO2Zvcih3PWFlLGFlPWFlKzE2fDAsZmVbKEE9dyk+PjBdPTB8ZmVbMTg1OTZdLGZlW0Er''@;'; + put 'put ''MT4+MF09MHxmZVsxODU5N10sZmVbQSsyPj4wXT0wfGZlWzE4NTk4XSxmZVtBKzM+PjBdPTB8ZmVbMTg1OTldLERyZShBPTB8b2MoOTkxMjAsQSwwKSxsKSxjPTB8RHQobCk7YzspMHxhWzEyKygwfGFvKGMsOTkwMzEsMCkpPj4yXXx8KGgwKG09MHxHcihBLDB8dGkoYyksMSksOTkwMzEsMTYs''@;'; + put 'put ''MSksYVsxMisoMHxhW20rMTY+PjJdKT4+Ml09YyxhWzEyKygwfGFvKGMsOTkwMzEsMCkpPj4yXT1tKSxjPTB8enQobCxjKTtmb3IoZj0wfER0KGwpO2Y7KXtmb3IocD0wfGFbMTIrKDB8YW8oZiw5OTAzMSwwKSk+PjJdLGM9MHx3MChsLGYpO2M7KXttPTB8YVsxMisoMHxhbygwfGFbKDI9PSgz''@;'; + put 'put ''JmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0sOTkwMzEsMCkpPj4yXTtkb3tpZigoMHxtKSE9KDB8cCkpe2lmKG0+Pj4wPnA+Pj4wKXtLYShBLHAsbSwwLDEpO2JyZWFrfUthKEEsbSxwLDAsMSk7YnJlYWt9fXdoaWxlKDApO2M9MHxTMChsLGMpfWY9MHx6dChsLGYpfXJldHVybiBhZT13''@;'; + put 'put ''LDB8QX0obCksTT0wfFFuKCgwfEdvKGspKTw8MiksJEcoRyxPZSs0MTQ0fDAsT2UrNDh8MCwyNCw4OCksQT0wfER0KGspLEQ9RysxNnwwLHc9UisoMHxhW3A+PjJdKXwwLGY9MDtBOykwfEJpWzEyNyZhW0Q+PjJdXShBLC0xKXx8KGFbSz4+Ml09Zixvbyh3LDk5OTMzLEspLExlPTB8ZHMoayxS''@;'; + put 'put ''LDEpLGgwKFJlPTB8ZHMobCxSLDEpLDk5MDE5LDEyLDApLGZlWzgrKDB8YW8oUmUsOTkwMTksMCkpPj4wXT0xLHA9MHxxRyhrLEEsTGUsRyksR21lKExlLFJlKSxNQyhSZSksV21lKGwsUmUpLGFbTSsoZjw8Mik+PjJdPVJlLG9pKGssTGUpLGY9ZisxfDApLEE9MHx6dChrLEEpO0MxKGspLGwy''@;'; + put 'put ''KGwsMCw5OTAxOSksbDIobCwxLDk5MDMxKSxTcmUoRykscD0wfFYwKE0sZjw8MiksKDB8UikhPSgwfGJlKSYmRnQoUil9ZWxzZSBwPTAsZj0wO3JldHVybiBhW2M+PjJdPWYsYWU9T2UsMHxwfWZ1bmN0aW9uIEdtZShsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wO2ZvcihwPTB8RHQobHw9MCk7''@;'; + put 'put ''cDspe209MHxhWzEyKygwfGFbcCsxNj4+Ml0pPj4yXTtlOmRve2lmKDE9PSgzJmFbbT4+Ml18MCkpV24oYyxtLDEpO2Vsc2UgZm9yKGY9MHxEdChtKTs7KXtpZighZilicmVhayBlO1duKGMsZiwxKSxmPTB8enQobSxmKX19d2hpbGUoMCk7cD0wfHp0KGwscCl9fWZ1bmN0aW9uIE1DKGwpe3Jl''@;'; + put 'put ''dHVybiAwfEVyZShsfD0wLDB8YVtsKzYwPj4yXSl9ZnVuY3Rpb24gV21lKGwsYyl7SXJlKGx8PTAsY3w9MCwwKX1mdW5jdGlvbiBJcmUobCxjLGYpe2N8PTA7dmFyIEEsbT0wO2ZvcihBPTA9PSgwfChmfD0wKSksbD0wfHlzKGx8PTApO2w7KTA9PSgwfGZlWzgrKDB8YW8obCw5OTAxOSwwKSk+''@;'; + put 'put ''PjBdKSYmMHwobT0wfFltZShsLGMsZikpJiZJcmUobCxtLDEmKEE/MD09KDB8czIoMHx0aShsKSwxMDgwMDYsNykpOjEpKSxsPTB8TXMobCl9ZnVuY3Rpb24gWW1lKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wO2ZvcihwPTAsQT0wfER0KGx8PTApO0E7KShtPTB8R3IoYywwfHRp''@;'; + put 'put ''KEEpLDApKSYmKHB8fChwPTB8ZHMoYywwfHRpKGwpLDEpKSxXbihwLG0sMSkpLEE9MHx6dChsLEEpO3JldHVybiAwIT0oMHxmKSYwPT0oMHxwKSYmKHA9MHxkcyhjLDB8dGkobCksMSkpLDB8cCYmKEVyZShwLGwpLFI2KGwscCksMD09KDB8czIoMHx0aShwKSwxMDgwMDYsNykpKSYmKGFbOCso''@;'; + put 'put ''MHxoMChwLDk4OTkzLDEyLDApKT4+Ml09bCksMHxwfWZ1bmN0aW9uIERyZShsLGMpe2x8PTA7dmFyIHAsQSx3LGY9MCxtPTAsYj0wLGs9MCxNPTA7Zm9yKHc9YWUsYWU9YWUrMTZ8MCxBPXcsZj0wfHlzKGN8PTApLHA9MHxhWzE1NzEyXTtmOyl7ZTpkb3tpZigwfHMyKDB8dGkoZiksMTA4MDA2''@;'; + put 'put ''LDcpKURyZShsLGYpO2Vsc2UgZm9yKG09MHxHcihsLDB8dGkoZiksMSksaDAobSw5OTAzMSwxNiwxKSxhWzEyKygwfGFbbSsxNj4+Ml0pPj4yXT1mLGM9MHxEdChmKTs7KXtpZighYylicmVhayBlOzB8YVsxMisoMHxhbyhjLDk5MDMxLDApKT4+Ml0mJihNPTB8dGkoYyksaz0wfHRpKGYpLGI9''@;'; + put 'put ''MHx0aSgwfGFbMTIrKDB8YW8oYyw5OTAzMSwwKSk+PjJdKSxhW0E+PjJdPU0sYVtBKzQ+PjJdPWssYVtBKzg+PjJdPWIsVDAocCw5OTEyMyxBKSksYVsxMisoMHxhbyhjLDk5MDMxLDApKT4+Ml09bSxjPTB8enQoZixjKX19d2hpbGUoMCk7Zj0wfE1zKGYpfWFlPXd9ZnVuY3Rpb24gbzcobCxj''@;'; + put 'put ''LGYpe2Z8PTA7dmFyIEEsdyxiLHA9MCxtPTAsaz0wLE09MCxEPTAsUj0wLEc9MDtrPX5+KChHPStfWyhsfD0wKT4+M10pKyhHPj0wPy41Oi0uNSkpLGw9fn4oKEc9K19bbCs4Pj4zXSkrKEc+PTA/LjU6LS41KSksYj0oKDB8KEQ9KHc9fn4oKEc9K19bKGN8PTApPj4zXSkrKEc+PTA/LjU6LS41''@;'; + put 'put ''KSkpLWt8MCkpPi0xP0Q6MC1EfDApPDwxLEQ9RD4+MzF8MSxNPSgoMHwoUj0oQT1+figoRz0rX1tjKzg+PjNdKSsoRz49MD8uNTotLjUpKSktbHwwKSk+LTE/UjowLVJ8MCk8PDEsUj1SPj4zMXwxO2U6ZG97aWYoKDB8Yik+KDB8TSkpZm9yKG09MC1ifDAscD1NLShiPj4xKXwwLGM9azs7KXtp''@;'; + put 'put ''ZigkZChmLGMsbCksKDB8Yyk9PSgwfHcpKWJyZWFrIGU7cD1wK00rKChrPSgwfHApPi0xKT9tOjApfDAsYz1jK0R8MCxsPShrP1I6MCkrbHwwfWVsc2UgZm9yKG09MC1NfDAscD1rLGM9Yi0oTT4+MSl8MDs7KXtpZigkZChmLHAsbCksKDB8bCk9PSgwfEEpKWJyZWFrIGU7cD0oKE09KDB8Yyk+''@;'; + put 'put ''LTEpP0Q6MCkrcHwwLGM9YytiKyhNP206MCl8MCxsPWwrUnwwfX13aGlsZSgwKX1mdW5jdGlvbiBXZChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBrLE0sUixtPTAsQT0wLHc9MCxiPTAsRD0wO1I9YWUsYWU9YWUrMTZ8MCxNPVIsaz1SKzR8MDtkb3tpZigoMHxsKTwxKWY9MDtl''@;'; + put 'put ''bHNle2lmKCgwfGFbKG09cCsxNnwwKT4+Ml0pPj4+MDw0KXtmPTB8VW1lKGwsYyxmLHApO2JyZWFrfWZvcihEPTB8UW4obDw8NSksZj0wOygwfGYpIT0oMHxsKTspaWcoQT0wfGFbYysoZjw8Mik+PjJdKSxhWyh3PUQrKGY8PDUpfDApPj4yXT1hWyhBPTE2KygwfGFbQSsxNj4+Ml0pfDApPj4y''@;'; + put 'put ''XSxhW3crND4+Ml09YVtBKzQ+PjJdLGFbdys4Pj4yXT1hW0ErOD4+Ml0sYVt3KzEyPj4yXT1hW0ErMTI+PjJdLGFbdysxNj4+Ml09YVtBKzE2Pj4yXSxhW3crMjA+PjJdPWFbQSsyMD4+Ml0sYVt3KzI0Pj4yXT1hW0ErMjQ+PjJdLGFbdysyOD4+Ml09YVtBKzI4Pj4yXSxmPWYrMXwwO2lmKDQ9''@;'; + put 'put ''PSgwfGFbbT4+Ml0pKXt3PXArMjh8MDtlOmRve2lmKDImYVt3Pj4yXXwwKWZvcihtPXArMjR8MCxhW20+PjJdPTB8dnIobDw8MiksZj0wOzspe2lmKCgwfGYpPT0oMHxsKSlicmVhayBlOzB8KEE9MHxMaSgwfGFbYysoZjw8Mik+PjJdLDk5MTkwKSkmJihhW00+PjJdPWssKEE9KDB8aWwoQSwx''@;'; + put 'put ''MzczOTUsTSkpPjApJigwfChiPTB8YVtrPj4yXSkpPi0xKSYmKGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXT1iKSxmPWYrMXwwfX13aGlsZSgwKTtmPTB8blcobCxELHApLDImYVt3Pj4yXSYmRnQoMHxhW3ArMjQ+PjJdKX1lbHNlIGY9MDtGdChEKX19d2hpbGUoMCk7cmV0dXJuIGFlPVIsMHxm''@;'; + put 'put ''fWZ1bmN0aW9uIFVtZShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MDt2YXIgcWUsbnQsbHQsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAsV2U9MCxvdD0wLEV0PTA7aWYobHQ9YWUsYWU9YWUrMTQ0fDAsbnQ9''@;'; + put 'put ''bHQrMTM2fDAscWU9bHQrNjR8MCxiZT1sdCxnZT1sdCsxMjB8MCxXZT1sdCs5NnwwLG90PTB8YVsyMCsocHw9MCk+PjJdLGFbKFJlPWx0KzEwNHwwKT4+Ml09MCxhW1JlKzQ+PjJdPTAsYVtSZSs4Pj4yXT0wLGFbUmUrMTI+PjJdPTAsKDB8bCk+PTEpe2ZvcihEPTA9PSgwfG90KSxSPWdlKzR8''@;'; + put 'put ''MCxHPWdlKzh8MCxLPWdlKzEyfDAsSGU9UmUrNHwwLExlPVJlKzh8MCxWZT1SZSsxMnwwLE09MCxtPTA7KDB8TSkhPSgwfGwpOylpZyhwZT0wfGFbYysoTTw8Mik+PjJdKSwhRCYmMCE9KDB8ZmVbb3QrTT4+MF0pJiYoYVtnZT4+Ml09QT1+figoRXQ9K19bMTYrKGs9MHxhW3BlKzE2Pj4yXSk+''@;'; + put 'put ''PjNdKSsoRXQ+PTA/LjU6LS41KSksYVtSPj4yXT13PX5+KChFdD0rX1trKzI0Pj4zXSkrKEV0Pj0wPy41Oi0uNSkpLGFbRz4+Ml09Yj1+figoRXQ9K19bayszMj4+M10pKyhFdD49MD8uNTotLjUpKSxhW0s+PjJdPWs9fn4oKEV0PStfW2srNDA+PjNdKSsoRXQ+PTA/LjU6LS41KSksbT8oYVtS''@;'; + put 'put ''ZT4+Ml09YVsoKDB8YVtSZT4+Ml0pPigwfEEpP2dlOlJlKT4+Ml0sYVtIZT4+Ml09YVsoKDB8YVtIZT4+Ml0pPigwfHcpP2dlOlJlKSs0Pj4yXSxhW0xlPj4yXT1hWygoMHxhW0xlPj4yXSk8KDB8Yik/Z2U6UmUpKzg+PjJdLGFbVmU+PjJdPWFbKCgwfGFbVmU+PjJdKTwoMHxrKT9nZTpSZSkr''@;'; + put 'put ''MTI+PjJdKTooYVtSZT4+Ml09YVtnZT4+Ml0sYVtSZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbUmUrOD4+Ml09YVtnZSs4Pj4yXSxhW1JlKzEyPj4yXT1hW2dlKzEyPj4yXSksbT1tKzF8MCksTT1NKzF8MDtmb3IoRz0wfFFuKGw8PDUpLG09MDsoMHxtKSE9KDB8bCk7KWFbKGJlPUcrKG08PDUpfDAp''@;'; + put 'put ''Pj4yXT1hWyhnZT0xNisoMHxhWzE2KygwfGFbYysobTw8Mik+PjJdKT4+Ml0pfDApPj4yXSxhW2JlKzQ+PjJdPWFbZ2UrND4+Ml0sYVtiZSs4Pj4yXT1hW2dlKzg+PjJdLGFbYmUrMTI+PjJdPWFbZ2UrMTI+PjJdLGFbYmUrMTY+PjJdPWFbZ2UrMTY+PjJdLGFbYmUrMjA+PjJdPWFbZ2UrMjA+''@;'; + put 'put ''PjJdLGFbYmUrMjQ+PjJdPWFbZ2UrMjQ+PjJdLGFbYmUrMjg+PjJdPWFbZ2UrMjg+PjJdLG09bSsxfDA7aWYoKDB8KFI9MHx4VChsLEcsMHxhWyhEPXArOHwwKT4+Ml0pKSk+PTEpe2ZvcigoTT0wIT0oMHxvdCkpPyhBPSgoMHxhW0xlPj4yXSkrKDB8YVtSZT4+Ml0pfDApLzJ8MCxtPSgoMHxh''@;'; + put 'put ''W1ZlPj4yXSkrKDB8YVtIZT4+Ml0pfDApLzJ8MCk6KEE9MCxtPTApLGFbV2UrND4+Ml09bSxhW1dlPj4yXT1BLGs9MHx2cihsPDw0KSxiPXArMTZ8MCxtPTA7ISgoMHxtKT49KDB8bCkpOylBPTB8YVtjKyhtPDwyKT4+Ml0sdz1rKyhtPDw0KXwwLGFbaysobTw8NCkrMTI+PjJdPW0sMz09KDB8''@;'; + put 'put ''YVtiPj4yXSk/KFJlPTE2KygwfGFbQSsxNj4+Ml0pfDAsSGU9MHxhW0Q+PjJdLFZlPTB8dGkoQSksYVtxZT4+Ml09YVtSZT4+Ml0sYVtxZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbcWUrOD4+Ml09YVtSZSs4Pj4yXSxhW3FlKzEyPj4yXT1hW1JlKzEyPj4yXSxhW3FlKzE2Pj4yXT1hW1JlKzE2Pj4y''@;'; + put 'put ''XSxhW3FlKzIwPj4yXT1hW1JlKzIwPj4yXSxhW3FlKzI0Pj4yXT1hW1JlKzI0Pj4yXSxhW3FlKzI4Pj4yXT1hW1JlKzI4Pj4yXSxhW250Pj4yXT1hW1dlPj4yXSxhW250KzQ+PjJdPWFbV2UrND4+Ml0sclcocWUsdyxSLEhlLG50KSk6KGFbbnQ+PjJdPWFbV2U+PjJdLGFbbnQrND4+Ml09YVtX''@;'; + put 'put ''ZSs0Pj4yXSxPcmUoZixBLHcsUixwLG50KSksbT1tKzF8MDtmb3Iodz0wfHZyKGw8PDIpLG09MDshKCgwfG0pPj0oMHxsKSk7KWFbdysobTw8Mik+PjJdPWsrKG08PDQpLG09bSsxfDA7eDEodyxsLDQsODkpLGI9MHx4NygpLG09MHx2cihsPDwzKTt0OmRve2lmKE0pe2ZvcihBPTA7Oyl7aWYo''@;'; + put 'put ''KDB8QSk+PSgwfGwpKXtBPTA7YnJlYWt9MHxmZVtvdCtBPj4wXSYmKHA9bSsoYVsxMisoZj0wfGFbdysoQTw8Mik+PjJdKT4+Ml08PDMpfDAsYVtudD4+Ml09YVtXZT4+Ml0sYVtudCs0Pj4yXT1hW1dlKzQ+PjJdLG9XKGYsYixwLG50KSksQT1BKzF8MH1mb3IoOzspe2lmKCgwfEEpPj0oMHxs''@;'; + put 'put ''KSlicmVhayB0OzB8ZmVbb3QrQT4+MF18fGlGKEEsV2U9MHxhW3crKEE8PDIpPj4yXSxiLG0rKGFbV2UrMTI+PjJdPDwzKXwwLFIsMHxhW0Q+PjJdLEcpLEE9QSsxfDB9fWVsc2UgZm9yKEE9MDs7KXtpZigoMHxBKT49KDB8bCkpYnJlYWsgdDtpRihBLG90PTB8YVt3KyhBPDwyKT4+Ml0sYixt''@;'; + put 'put ''KyhhW290KzEyPj4yXTw8Myl8MCxSLDB8YVtEPj4yXSxHKSxBPUErMXwwfX13aGlsZSgwKTtmb3IoRnQodyksQT0wOyEoKDB8QSk+PSgwfGwpKTspRnQoMHxhW2srKEE8PDQpKzQ+PjJdKSxBPUErMXwwO0Z0KGspLEF5KGIpLEZ0KEcpfWVsc2UgbT0wfWVsc2UgbT0wO3JldHVybiBhZT1sdCww''@;'; + put 'put ''fG19ZnVuY3Rpb24gblcobCxjLGYpe2N8PTAsZnw9MDt2YXIgcGUsZ2UsYmUsT2UsTGUsSGUsVmUscWUscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxSZT0wO3FlPWFlLGFlPWFlKzE2fDAsQT1xZSxIZT0wfHZyKChsfD0wKTw8MyksVmU9ZisyOHwwLHA9KDB8''@;'; + put 'put ''KG09MHxhW2YrND4+Ml0pKT4wO2Rve2lmKDEmYVtWZT4+Ml0pe2lmKHApe2s9MCxSZT1tLG09KGwrLTErbXwwKS8oMHxtKXwwO2JyZWFrfWs9MCxSZT1tPX5+K0l1KCsgK0QwKCsgKygwfGwpKSksbT0obCstMSttfDApLygwfG0pfDA7YnJlYWt9aWYocCl7az0xLFJlPShsKy0xK218MCkvKDB8''@;'; + put 'put ''bSl8MDticmVha31rPTEsUmU9KGwrLTErKG09fn4rSXUoKyArRDAoKyArKDB8bCkpKSl8MCkvKDB8bSl8MDticmVha313aGlsZSgwKTtmb3IoYmU9MHx2cig4KyhtPDwzKXwwKSxPZT0wfHZyKDgrKFJlPDwzKXwwKSxiPWYrOHwwLHA9MCxBPUxlPTB8dnIoMjQqbHwwKTshKCgwfHApPj0oMHxs''@;'; + put 'put ''KSk7KUc9K19bYysocDw8NSkrOD4+M10sUj0rX1tjKyhwPDw1KSsyND4+M10sX1tBPj4zXT0rX1tjKyhwPDw1KSsxNj4+M10tK19bYysocDw8NSk+PjNdKyhLPSsoKDB8YVtiPj4yXSk+Pj4wKSksX1tBKzg+PjNdPVItRytLLGFbQSsxNj4+Ml09cCxwPXArMXwwLEE9QSsyNHwwO2ZvcihnZT0w''@;'; + put 'put ''fHZyKGw8PDIpLHA9MDshKCgwfHApPj0oMHxsKSk7KWFbZ2UrKHA8PDIpPj4yXT1MZSsoMjQqcHwwKSxwPXArMXwwO2ZvcigocD0wfGFbZisyND4+Ml0pPyhhWzQ3MDU2XT1wLHgxKGdlLGwsNCw5MCkpOjY0JmFbVmU+PjJdfHx4MShnZSxsLDQsOTEpLHBlPTA9PSgwfGspLHA9MCxBPTAsYj0w''@;'; + put 'put ''Ozspe2lmKCgwfGIpPj0oMHxsKSl7dz0wLHA9MDticmVha31fWyhmPWJlKyhBPDwzKXwwKT4+M109KEs9K19bZj4+M10pPihHPStfWyhrPTB8YVtnZSsoYjw8Mik+PjJdKT4+M10pP0s6RyxfWyhmPU9lKyhwPDwzKXwwKT4+M109KEc9K19bZj4+M10pPihLPStfW2srOD4+M10pP0c6SyxwZT8o''@;'; + put 'put ''cD0oZj0oMHwocD1wKzF8MCkpPT0oMHxSZSkpPzA6cCxBPUErKDEmZil8MCk6KHA9cCsoMSYoZj0oMHwoQT1BKzF8MCkpPT0oMHxtKSkpfDAsQT1mPzA6QSksYj1iKzF8MH1mb3IoOzspe2lmKCgwfHApPigwfG0pKXt3PTAscD1SZTticmVha31LPStfWyhmPWJlKyhwPDwzKXwwKT4+M10sX1tm''@;'; + put 'put ''Pj4zXT13LHc9Syt3LHA9cCsxfDB9Zm9yKDshKCgwfHApPD0wKTspSz0rX1tPZSsoKGY9cCstMXwwKTw8Myk+PjNdLF9bT2UrKHA8PDMpPj4zXT13LHc9Syt3LHA9Zjtmb3IoX1tPZT4+M109dyxwPTAsQT0wLGY9MDshKCgwfGYpPj0oMHxsKSk7KXtNPS0odz0rX1tjKygoaz0wfGFbMTYrKDB8''@;'; + put 'put ''YVtnZSsoZjw8Mik+PjJdKT4+Ml0pPDw1KT4+M10pLEs9LShHPStfW2MrKGs8PDUpKzg+PjNdKSxEPStfW2MrKGs8PDUpKzE2Pj4zXSxSPStfW2MrKGs8PDUpKzI0Pj4zXSxiPTB8YVtWZT4+Ml07ZG97aWYoISg0JmIpKXtpZig4JmIpe3c9dy1EKyArX1tiZSsoQSsxPDwzKT4+M107YnJlYWt9''@;'; + put 'put ''dz0uNSooTS1EKyArX1tiZSsoQTw8Myk+PjNdKyArX1tiZSsoQSsxPDwzKT4+M10pO2JyZWFrfXc9K19bYmUrKEE8PDMpPj4zXX13aGlsZSgwKTthW0hlKyhrPDwzKT4+Ml09fn53O2Rve2lmKCEoMTYmYikpe2lmKDMyJmIpe3c9K19bT2UrKHArMTw8Myk+PjNdO2JyZWFrfXc9LjUqKEstUisg''@;'; + put 'put ''K19bT2UrKHA8PDMpPj4zXSsgK19bT2UrKHArMTw8Myk+PjNdKTticmVha313PUctUisgK19bT2UrKHA8PDMpPj4zXX13aGlsZSgwKTthW0hlKyhrPDwzKSs0Pj4yXT1+fncscGU/KHA9KGs9KDB8KHA9cCsxfDApKT09KDB8UmUpKT8wOnAsQT1BKygxJmspfDApOihwPXArKDEmKGs9KDB8KEE9''@;'; + put 'put ''QSsxfDApKT09KDB8bSkpKXwwLEE9az8wOkEpLGY9ZisxfDB9cmV0dXJuIEZ0KExlKSxGdChnZSksRnQoYmUpLEZ0KE9lKSxhZT1xZSwwfEhlfWZ1bmN0aW9uIHhUKGwsYyxmKXtjfD0wO3ZhciBrLGdlLE0scD0wLG09MCxBPTAsdz0wLGI9MCxEPTAsUj0wO2ZvcihnZT1hZSxhZT1hZSs5Nnww''@;'; + put 'put ''LE09Z2Usaz0oMTAwKihsfD0wKXwwKS0xfDAscD0rKChmfD0wKTw8MXwwKSxEPTAsUj0wLGY9MDshKCgwfGYpPj0oMHxsKSk7KUQ9RC0oYj0rX1tjKyhmPDw1KSsxNj4+M10tK19bYysoZjw8NSk+PjNdK3ApLSh3PStfW2MrKGY8PDUpKzI0Pj4zXS0rX1tjKyhmPDw1KSs4Pj4zXStwKSxSLT13''@;'; + put 'put ''KmIsZj1mKzF8MDtyZXR1cm4oYj1EKkQtNCoodz0rKDB8aykpKlIpPDA/KF9bTT4+M109YiwkcigxLDk5NDE3LE0pLGY9LTEpOihtPSgocD0rRDAoK2IpKS1EKS8oQT0yKncpLEE9KC1ELXApL0EsZj0wPT0oMHwoZj1+fm0pKT8xOmYpLGFlPWdlLDB8Zn1mdW5jdGlvbiByVyhsLGMsZixwLG0s''@;'; + put 'put ''QSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgRCxSLEcsSyxwZSxPZSxMZSxSZSx3PTAsYj0wLGs9MCxNPTA7Zm9yKE9lPWFlLGFlPWFlKzMyfDAsRz0rX1sobHw9MCk+PjNdLEs9K19bbCs4Pj4zXSxEPStfW2wrMTY+PjNdLFI9K19bbCsyND4+M10scGU9MHx4NygpLGs9MHxhW20rND4+Ml0s''@;'; + put 'put ''bT0oMHwobD0oYj0wfGFbbT4+Ml0pLXB8MCkpPi0xPygwfGwpLygwfGYpfDA6KChsKzF8MCkvKDB8Zil8MCktMXwwLE09KDB8KHc9ay1wfDApKT4tMT8oMHx3KS8oMHxmKXwwOigodysxfDApLygwfGYpfDApLTF8MCxiPSgwfChiPXAtfn4oRysoRz49MD8uNTotLjUpKStiK35+KEQrKEQ+PTA/''@;'; + put 'put ''LjU6LS41KSl8MCkpPi0xPygwfGIpLygwfGYpfDA6KChiKzF8MCkvKDB8Zil8MCktMXwwLHc9KDB8KGs9cC1+fihLKyhLPj0wPy41Oi0uNSkpK2srfn4oUisoUj49MD8uNTotLjUpKXwwKSk+LTE/KDB8aykvKDB8Zil8MDooKGsrMXwwKS8oMHxmKXwwKS0xfDA7ISgoMHxtKT4oMHxiKSk7KXtm''@;'; + put 'put ''b3IobD1NOyEoKDB8bCk+KDB8dykpOykkZChwZSxtLGwpLGw9bCsxfDA7bT1tKzF8MH1hWyhrPWMrNHwwKT4+Ml09MHx4UShwZSksYj0wfEVRKHBlKSxhWyhNPWMrOHwwKT4+Ml09Yix3PX5+K0l1KCsoRCsoUmU9KyhwPDwxfDApKS1HKS8oTGU9KygwfGYpKSksbD1+fitJdSgrKFIrUmUtSykv''@;'; + put 'put ''TGUpLGFbYz4+Ml09bCt3LEF5KHBlKSxhZT1PZX1mdW5jdGlvbiBPcmUobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLEF8PTA7dmFyIFJlLFZlLHFlLG50LG90LFN0LGt0LGx0LEV0LFp0LGN0LGJ0LGFuLFNuLEhyLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0w''@;'; + put 'put ''LGJlPTAsT2U9MCxMZT0wLEhlPTAsV2U9MCxFcj0wLGZyPTA7SHI9YWUsYWU9YWUrMTI4fDAsbHQ9SHIrMTEyfDAsa3Q9SHIrMTA0fDAsWnQ9SHIrNjR8MCxjdD1Icis1NnwwLHFlPUhyKzQwfDAsbnQ9SHIrOTZ8MCxWZT1Icis4OHwwLExlPUhyKzI0fDAsUmU9SHIrODB8MCxIZT1Icis3Mnww''@;'; + put 'put ''LGFuPTB8YVs4KyhtfD0wKT4+Ml0sRXQ9MHxhW20rMTI+PjJdLG90PTA9PSgwfChsfD0wKSk/YzpsLFNuPTB8eDcoKSxTdD0oMHxhW0E+PjJdKS1+figoYmU9K19bMTYrKFdlPTB8YVsoYnQ9YysxNnwwKT4+Ml0pPj4zXSkrKGJlPj0wPy41Oi0uNSkpfDAsV2U9KDB8YVtBKzQ+PjJdKS1+figo''@;'; + put 'put ''YmU9K19bV2UrMjQ+PjNdKSsoYmU+PTA/LjU6LS41KSl8MDtlOmRve2lmKDE9PSgwfGFbbSsxNj4+Ml0pKXtmb3IoTGU9MHxRbigoMHxHbyhjKSk8PDIpLGw9MCxBPTB8RHQoYyk7QTspYVtMZSsobDw8Mik+PjJdPWFbMTEyKygwfGFbKEhlPUErMTZ8MCk+PjJdKT4+Ml0sYVsxMTIrKDB8YVtI''@;'; + put 'put ''ZT4+Ml0pPj4yXT0wLGw9bCsxfDAsQT0wfHp0KGMsQSk7Zm9yKFI9U3QtYW58MCxHPVdlLWFufDAsSz1TdCthbnwwLHBlPVdlK2FufDAsRD0xOyEoKDB8RCk+KDB8YVsxODArKGw9MHxhW2J0Pj4yXSk+PjJdKSk7KXtsPX5+KChiZT0rX1sxNisodz0wfGFbMTYrKE09MHxhWygwfGFbbCsxODQ+''@;'; + put 'put ''PjJdKSsoRDw8Mik+PjJdKT4+Ml0pPj4zXSkrKGJlPj0wPy41Oi0uNSkpLEE9fn4oKGJlPStfW3crMjQ+PjNdKSsoYmU+PTA/LjU6LS41KSksbT1+figoYmU9K19bdyszMj4+M10pKyhiZT49MD8uNTotLjUpKSx3PX5+KChiZT0rX1t3KzQwPj4zXSkrKGJlPj0wPy41Oi0uNSkpO3Q6ZG97aWYo''@;'; + put 'put ''KDB8bSk+KDB8bCkmKDB8dyk+KDB8QSkpe2ZvcihiPUcrQXwwLGs9cGUrd3wwLEE9KDB8KGw9UitsfDApKT4tMT8oMHxsKS8oMHxwKXwwOigobCsxfDApLygwfHApfDApLTF8MCxiPSgwfGIpPi0xPygwfGIpLygwfHApfDA6KChiKzF8MCkvKDB8cCl8MCktMXwwLHc9KDB8KG09SyttfDApKT4t''@;'; + put 'put ''MT8oMHxtKS8oMHxwKXwwOigobSsxfDApLygwfHApfDApLTF8MCxtPSgwfGspPi0xPygwfGspLygwfHApfDA6KChrKzF8MCkvKDB8cCl8MCktMXwwOyEoKDB8QSk+KDB8dykpOyl7Zm9yKGw9YjshKCgwfGwpPigwfG0pKTspJGQoU24sQSxsKSxsPWwrMXwwO0E9QSsxfDB9Zm9yKGw9MHxEdChN''@;'; + put 'put ''KTs7KXtpZighbClicmVhayB0O2FbMjEyKygwfGFbbCsxNj4+Ml0pPj4yXT1NLGw9MHx6dChNLGwpfX19d2hpbGUoMCk7RD1EKzF8MH1mb3IocGU9cWUrOHwwLGdlPVp0KzR8MCxiZT0rKDB8YW4pLE9lPWN0KzR8MCxLPW50KzR8MCxHPVZlKzR8MCxSPTB8RHQoYyk7Ujspe29EKHFlLFIpLEVy''@;'; + put 'put ''PStfW3BlPj4zXSxhW1p0Pj4yXT1NPVN0K35+KChmcj0rX1txZT4+M10pKyhmcj49MD8uNTotLjUpKXwwLGFbZ2U+PjJdPUQ9V2Urfn4oRXIrKEVyPj0wPy41Oi0uNSkpfDAsbD0wfGFbKEE9UisxNnwwKT4+Ml07dDpkb3tpZigwfGFbbCsyMTI+PjJdKWZvcihsPSgwfE0pPi0xPygwfE0pLygw''@;'; + put 'put ''fHApfDA6KChNKzF8MCkvKDB8cCl8MCktMXwwLGFbWnQ+PjJdPWwsbD0oMHxEKT4tMT8oMHxEKS8oMHxwKXwwOigoRCsxfDApLygwfHApfDApLTF8MCxhW2dlPj4yXT1sLGw9MHx3MChvdCxSKTs7KXtpZighbClicmVhayB0OygwfGFbMjEyKygwfGFbQT4+Ml0pPj4yXSkhPSgwfGFbMjEyKygw''@;'; + put 'put ''fGFbMTYrKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pJiYoYVtsdD4+Ml09YVtadD4+Ml0sYVtsdCs0Pj4yXT1hW1p0KzQ+PjJdLE42KGwsbHQsU24sU3QsV2UscCxFdCkpLGw9MHxTMChvdCxsKX1lbHNle2ZvcihhW2N0Pj4yXT1+figuNSooK19b''@;'; + put 'put ''bCs5Nj4+M10rICtfW2wrODg+PjNdKStiZSksYVtPZT4+Ml09fn4oLjUqK19bbCs4MD4+M10rYmUpLGFba3Q+PjJdPWFbWnQ+PjJdLGFba3QrND4+Ml09YVtadCs0Pj4yXSxhW2x0Pj4yXT1hW2N0Pj4yXSxhW2x0KzQ+PjJdPWFbY3QrND4+Ml0sb0YobnQsa3QsbHQpLGw9MHxhW250Pj4yXSxt''@;'; + put 'put ''PTB8YVtLPj4yXSxhW2t0Pj4yXT1hW1p0Pj4yXSxhW2t0KzQ+PjJdPWFbWnQrND4+Ml0sYVtsdD4+Ml09YVtjdD4+Ml0sYVtsdCs0Pj4yXT1hW2N0KzQ+PjJdLG5wKFZlLGt0LGx0KSxBPSgwfGwpPi0xPygwfGwpLygwfHApfDA6KChsKzF8MCkvKDB8cCl8MCktMXwwLGs9KDB8bSk+LTE/KDB8''@;'; + put 'put ''bSkvKDB8cCl8MDooKG0rMXwwKS8oMHxwKXwwKS0xfDAsdz0oMHwodz0wfGFbVmU+PjJdKSk+LTE/KDB8dykvKDB8cCl8MDooKHcrMXwwKS8oMHxwKXwwKS0xfDAsbT0oMHwoYj0wfGFbRz4+Ml0pKT4tMT8oMHxiKS8oMHxwKXwwOigoYisxfDApLygwfHApfDApLTF8MDshKCgwfEEpPigwfHcp''@;'; + put 'put ''KTspe2ZvcihsPWs7ISgoMHxsKT4oMHxtKSk7KSRkKFNuLEEsbCksbD1sKzF8MDtBPUErMXwwfWZvcihhW1p0Pj4yXT1sPSgwfE0pPi0xPygwfE0pLygwfHApfDA6KChNKzF8MCkvKDB8cCl8MCktMXwwLGFbZ2U+PjJdPWw9KDB8RCk+LTE/KDB8RCkvKDB8cCl8MDooKEQrMXwwKS8oMHxwKXww''@;'; + put 'put ''KS0xfDAsbD0wfHcwKG90LFIpOzspe2lmKCFsKWJyZWFrIHQ7YVtsdD4+Ml09YVtadD4+Ml0sYVtsdCs0Pj4yXT1hW1p0KzQ+PjJdLE42KGwsbHQsU24sU3QsV2UscCxFdCksbD0wfFMwKG90LGwpfX19d2hpbGUoMCk7Uj0wfHp0KGMsUil9Zm9yKGw9MCxBPTB8RHQoYyk7QTspYVsxMTIrKDB8''@;'; + put 'put ''YVtBKzE2Pj4yXSk+PjJdPWFbTGUrKGw8PDIpPj4yXSxsPWwrMXwwLEE9MHx6dChjLEEpO0Z0KExlKX1lbHNlIGZvcihwZT1MZSs4fDAsZ2U9WnQrNHwwLGJlPSsoMHxhbiksT2U9Y3QrNHwwLEs9UmUrNHwwLEc9SGUrNHwwLFI9MHxEdChjKTs7KXtpZighUilicmVhayBlO2ZvcihvRChMZSxS''@;'; + put 'put ''KSxmcj0rX1twZT4+M10sYVtadD4+Ml09TT1TdCt+figoRXI9K19bTGU+PjNdKSsoRXI+PTA/LjU6LS41KSl8MCxhW2dlPj4yXT1EPVdlK35+KGZyKyhmcj49MD8uNTotLjUpKXwwLGFbY3Q+PjJdPX5+KC41KigrX1s5NisobD0wfGFbUisxNj4+Ml0pPj4zXSsgK19bbCs4OD4+M10pK2JlKSxh''@;'; + put 'put ''W09lPj4yXT1+figuNSorX1tsKzgwPj4zXStiZSksYVtrdD4+Ml09YVtadD4+Ml0sYVtrdCs0Pj4yXT1hW1p0KzQ+PjJdLGFbbHQ+PjJdPWFbY3Q+PjJdLGFbbHQrND4+Ml09YVtjdCs0Pj4yXSxvRihSZSxrdCxsdCksbD0wfGFbUmU+PjJdLG09MHxhW0s+PjJdLGFba3Q+PjJdPWFbWnQ+PjJd''@;'; + put 'put ''LGFba3QrND4+Ml09YVtadCs0Pj4yXSxhW2x0Pj4yXT1hW2N0Pj4yXSxhW2x0KzQ+PjJdPWFbY3QrND4+Ml0sbnAoSGUsa3QsbHQpLEE9KDB8bCk+LTE/KDB8bCkvKDB8cCl8MDooKGwrMXwwKS8oMHxwKXwwKS0xfDAsaz0oMHxtKT4tMT8oMHxtKS8oMHxwKXwwOigobSsxfDApLygwfHApfDAp''@;'; + put 'put ''LTF8MCx3PSgwfCh3PTB8YVtIZT4+Ml0pKT4tMT8oMHx3KS8oMHxwKXwwOigodysxfDApLygwfHApfDApLTF8MCxtPSgwfChiPTB8YVtHPj4yXSkpPi0xPygwfGIpLygwfHApfDA6KChiKzF8MCkvKDB8cCl8MCktMXwwOyEoKDB8QSk+KDB8dykpOyl7Zm9yKGw9azshKCgwfGwpPigwfG0pKTsp''@;'; + put 'put ''JGQoU24sQSxsKSxsPWwrMXwwO0E9QSsxfDB9Zm9yKGFbWnQ+PjJdPWw9KDB8TSk+LTE/KDB8TSkvKDB8cCl8MDooKE0rMXwwKS8oMHxwKXwwKS0xfDAsYVtnZT4+Ml09bD0oMHxEKT4tMT8oMHxEKS8oMHxwKXwwOigoRCsxfDApLygwfHApfDApLTF8MCxsPTB8dzAob3QsUik7bDspYVtsdD4+''@;'; + put 'put ''Ml09YVtadD4+Ml0sYVtsdCs0Pj4yXT1hW1p0KzQ+PjJdLE42KGwsbHQsU24sU3QsV2UscCxFdCksbD0wfFMwKG90LGwpO1I9MHx6dChjLFIpfX13aGlsZSgwKTthWyh3PWYrNHwwKT4+Ml09MHx4UShTbiksYVsoYj1mKzh8MCk+PjJdPTB8RVEoU24pLGw9fn4rSXUoKygrX1szMisoQT0wfGFb''@;'; + put 'put ''YnQ+PjJdKT4+M10rKEVyPSsoYW48PDF8MCkpLStfW0ErMTY+PjNdKS8oZnI9KygwfHApKSksQT1+fitJdSgrKCtfW0ErNDA+PjNdK0VyLStfW0ErMjQ+PjNdKS9mciksYVtmPj4yXT1BK2wsQXkoU24pLGFlPUhyfWZ1bmN0aW9uIG9XKGwsYyxmLHApe2N8PTA7dmFyIEEsdyxrLE07Zm9yKGs9''@;'; + put 'put ''YWUsYWU9YWUrMzJ8MCx3PWsrMTZ8MCxNPTB8YVs0KyhsfD0wKT4+Ml0sQT0wfGFbbCs4Pj4yXSxhWyhmfD0wKT4+Ml09MC0oMHxhWyhwfD0wKT4+Ml0pLGFbKGYrNHwwKT4+Ml09MC0oMHxhW3ArND4+Ml0pLGw9MCxwPU07ISgoMHxsKT49KDB8QSkpOylhW3c+PjJdPWFbcD4+Ml0sYVt3KzQ+''@;'; + put 'put ''PjJdPWFbcCs0Pj4yXSxrUShjLHcpLGw9bCsxfDAscD1wKzh8MDthZT1rfWZ1bmN0aW9uIGlGKGwsYyxmLHAsbSxBLHcpe2Z8PTAscHw9MCxtfD0wLEF8PTA7dmFyIE0sRCxSLEcsYj0wLGs9MCxLPTAscGU9MDtNPStfWyh3fD0wKSsoKGs9MHxhWzEyKyhjfD0wKT4+Ml0pPDw1KT4+M10sRD0r''@;'; + put 'put ''X1t3KyhrPDw1KSs4Pj4zXSxSPStfW3crKGs8PDUpKzE2Pj4zXSxHPStfW3crKGs8PDUpKzI0Pj4zXSwwPT0oMHwobHw9MCkpJiYwIT0oMHxyaCgoMHx+fitJdSgrKChwZT0rKEE8PDF8MCkpLU0rUikvKEs9KygwfG0pKSkpLy0yfDAsKDB8fn4rSXUoKyhwZS1EK0cpL0spKS8tMnwwLGMsZixw''@;'; + put 'put ''LG0sdykpfHwoYj0zKTtlOmRve2lmKDM9PSgwfGIpJiYwPT0oMHxyaCgwLDAsYyxmLHAsbSx3KSkpaWYoKDB8fn4rSXUoKyhSLU0pKSk8KDB8fn4rSXUoKyhHLUQpKSkpZm9yKGs9MTs7KXtmb3IoYj0wLWt8MCxsPTA7Oyl7aWYoKDB8bCk8PSgwfGIpKXtBPWI7YnJlYWt9aWYoMHxyaChiLGws''@;'; + put 'put ''YyxmLHAsbSx3KSlicmVhayBlO2w9bCstMXwwfWZvcig7ISgoMHxBKT49KDB8aykpOyl7aWYoMHxyaChBLGwsYyxmLHAsbSx3KSlicmVhayBlO0E9QSsxfDB9Zm9yKDshKCgwfGwpPj0oMHxrKSk7KXtpZigwfHJoKEEsbCxjLGYscCxtLHcpKWJyZWFrIGU7bD1sKzF8MH1mb3IoOyEoKDB8QSk8''@;'; + put 'put ''PSgwfGIpKTspe2lmKDB8cmgoQSxsLGMsZixwLG0sdykpYnJlYWsgZTtBPUErLTF8MH1mb3IoOyEoKDB8bCk8PTApOyl7aWYoMHxyaChBLGwsYyxmLHAsbSx3KSlicmVhayBlO2w9bCstMXwwfWs9aysxfDB9ZWxzZSBmb3Ioaz0xOzspe2ZvcihiPTAta3wwLGw9MDs7KXtpZigoMHxsKT49KDB8''@;'; + put 'put ''aykpe0E9YjticmVha31pZigwfHJoKGwsYixjLGYscCxtLHcpKWJyZWFrIGU7bD1sKzF8MH1mb3IoOyEoKDB8QSk+PSgwfGspKTspe2lmKDB8cmgobCxBLGMsZixwLG0sdykpYnJlYWsgZTtBPUErMXwwfWZvcig7ISgoMHxsKTw9KDB8YikpOyl7aWYoMHxyaChsLEEsYyxmLHAsbSx3KSlicmVh''@;'; + put 'put ''ayBlO2w9bCstMXwwfWZvcig7ISgoMHxBKTw9KDB8YikpOyl7aWYoMHxyaChsLEEsYyxmLHAsbSx3KSlicmVhayBlO0E9QSstMXwwfWZvcig7ISgoMHxsKT49MCk7KXtpZigwfHJoKGwsQSxjLGYscCxtLHcpKWJyZWFrIGU7bD1sKzF8MH1rPWsrMXwwfX13aGlsZSgwKX1mdW5jdGlvbiByaChs''@;'; + put 'put ''LGMsZixwLG0sQSx3KXtsfD0wLGN8PTAscHw9MCxtfD0wLEF8PTAsd3w9MDt2YXIgTSxSLEcsSyxwZSxiZSxiPTAsaz0wLEQ9MCxPZT0wLExlPTAsUmU9MCxIZT0wO2ZvcihiZT1hZSxhZT1hZSs0OHwwLHBlPWJlKzMyfDAsUj0wfGFbOCsoZnw9MCk+PjJdLEc9KEs9YmUpKzR8MCxiPTB8YVso''@;'; + put 'put ''TT1mKzR8MCk+PjJdLGs9MDs7KXtpZigoMHxrKT49KDB8Uikpe0Q9NTticmVha31pZihPZT0wfGFbKExlPWIpKzQ+PjJdLGFbSz4+Ml09KDB8YVtMZT4+Ml0pK2wsYVtHPj4yXT1PZStjLGFbcGU+PjJdPWFbSz4+Ml0sYVtwZSs0Pj4yXT1hW0srND4+Ml0sMHxoYWUocCxwZSkpe2I9MDticmVh''@;'; + put 'put ''a31iPWIrOHwwLGs9aysxfDB9aWYoNT09KDB8RCkpe2ZvcihIZT0rX1t3KygoZj0wfGFbZisxMj4+Ml0pPDw1KT4+M10sUmU9K19bdysoZjw8NSkrOD4+M10sYVttPj4yXT0oMHxBcihBLGwpKS1+fihIZSsoSGU+PTA/LjU6LS41KSksYVsoZj1tKzR8MCk+PjJdPSgwfEFyKEEsYykpLX5+KFJl''@;'; + put 'put ''KyhSZT49MD8uNTotLjUpKSxiPTB8YVtNPj4yXSxrPTA7ISgoMHxrKT49KDB8UikpOylMZT0wfGFbKE9lPWIpKzQ+PjJdLGFbSz4+Ml09KDB8YVtPZT4+Ml0pK2wsYVtHPj4yXT1MZStjLGFbcGU+PjJdPWFbSz4+Ml0sYVtwZSs0Pj4yXT1hW0srND4+Ml0sa1EocCxwZSksYj1iKzh8MCxrPWsr''@;'; + put 'put ''MXwwO2I9MX1yZXR1cm4gYWU9YmUsMHxifWZ1bmN0aW9uIG9GKGwsYyxmKXt2YXIgcDtwPSgwfGFbNCsoY3w9MCk+PjJdKS0oMHxhWzQrKGZ8PTApPj4yXSl8MCxhWyhsfD0wKT4+Ml09KDB8YVtjPj4yXSktKDB8YVtmPj4yXSksYVtsKzQ+PjJdPXB9ZnVuY3Rpb24gbnAobCxjLGYpe3ZhciBw''@;'; + put 'put ''O3A9KDB8YVs0KyhmfD0wKT4+Ml0pKygwfGFbNCsoY3w9MCk+PjJdKXwwLGFbKGx8PTApPj4yXT0oMHxhW2Y+PjJdKSsoMHxhW2M+PjJdKSxhW2wrND4+Ml09cH1mdW5jdGlvbiBONihsLGMsZixwLG0sQSx3KXtsfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MDt2YXIgcGUsZ2UsYmUsUmUs''@;'; + put 'put ''SGUsVmUscWUsbnQsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLE9lPTAsTGU9MDtudD1hZSxhZT1hZSsxMTJ8MCxIZT1udCs5NnwwLFJlPW50KzgwfDAscGU9bnQrNDh8MCxnZT1udCszMnwwLHFlPW50LEQ9bnQrNjR8MCxfWyhWZT1udCsxNnwwKT4+M109KygwfGFbKGN8PTApPj4yXSks''@;'; + put 'put ''X1soYmU9VmUrOHwwKT4+M109KygwfGFbYys0Pj4yXSk7ZTpkb3tpZigwIT0oMHx3KSYmKE9lPWwrMTZ8MCxNPTB8YVs4KygwfGFbT2U+PjJdKT4+Ml0sMCE9KDB8TSkpKWZvcihLPSsoMHxwKSxHPSsoMHxtKSxSPTEvKygwfEEpLEQ9cWUrOHwwLHc9MDs7KXtpZigoMHx3KT49KDB8YVtNKzQ+''@;'; + put 'put ''PjJdKSlicmVhayBlO2ZvcihsPTB8YVsobT0wfGFbTT4+Ml0pKyg0OCp3fDApPj4yXSxjPTB8YVttKyg0OCp3fDApKzQ+PjJdLEE9MHxhW20rKDQ4Knd8MCkrOD4+Ml0scD0wfGFbbSsoNDgqd3wwKSsxMj4+Ml0sYVtwZT4+Ml09YVsoTT1tKyg0OCp3fDApKzE2fDApPj4yXSxhW3BlKzQ+PjJd''@;'; + put 'put ''PWFbTSs0Pj4yXSxhW3BlKzg+PjJdPWFbTSs4Pj4yXSxhW3BlKzEyPj4yXT1hW00rMTI+PjJdLGFbZ2U+PjJdPWFbKG09bSsoNDgqd3wwKSszMnwwKT4+Ml0sYVtnZSs0Pj4yXT1hW20rND4+Ml0sYVtnZSs4Pj4yXT1hW20rOD4+Ml0sYVtnZSsxMj4+Ml09YVttKzEyPj4yXSxBPyhhW1ZlPj4y''@;'; + put 'put ''XT1hW3BlPj4yXSxhW1ZlKzQ+PjJdPWFbcGUrND4+Ml0sYVtWZSs4Pj4yXT1hW3BlKzg+PjJdLGFbVmUrMTI+PjJdPWFbcGUrMTI+PjJdLGFbcWU+PjJdPWFbbD4+Ml0sYVtxZSs0Pj4yXT1hW2wrND4+Ml0sYVtxZSs4Pj4yXT1hW2wrOD4+Ml0sYVtxZSsxMj4+Ml09YVtsKzEyPj4yXSxNPTEp''@;'; + put 'put ''OihhW1ZlPj4yXT1hW2w+PjJdLGFbVmUrND4+Ml09YVtsKzQ+PjJdLGFbVmUrOD4+Ml09YVtsKzg+PjJdLGFbVmUrMTI+PjJdPWFbbCsxMj4+Ml0sYVtxZT4+Ml09YVsoTT1sKzE2fDApPj4yXSxhW3FlKzQ+PjJdPWFbTSs0Pj4yXSxhW3FlKzg+PjJdPWFbTSs4Pj4yXSxhW3FlKzEyPj4yXT1h''@;'; + put 'put ''W00rMTI+PjJdLE09MiksX1tWZT4+M109Yj0rX1tWZT4+M10rSyxfW2JlPj4zXT1rPStfW2JlPj4zXStHLGI+PTA/Yio9UjpiPShiKzEpKlItMSxfW1ZlPj4zXT1iLF9bYmU+PjNdPWI9az49MD9rKlI6KGsrMSkqUi0xLF9bcWU+PjNdPWI9K19bcWU+PjNdK0ssX1tEPj4zXT1rPStfW0Q+PjNd''@;'; + put 'put ''K0csYj49MD9iKj1SOmI9KGIrMSkqUi0xLF9bcWU+PjNdPWIsX1tEPj4zXT1iPWs+PTA/aypSOihrKzEpKlItMSxhW1JlPj4yXT1hW1ZlPj4yXSxhW1JlKzQ+PjJdPWFbVmUrND4+Ml0sYVtSZSs4Pj4yXT1hW1ZlKzg+PjJdLGFbUmUrMTI+PjJdPWFbVmUrMTI+PjJdLGFbSGU+PjJdPWFbcWU+''@;'; + put 'put ''PjJdLGFbSGUrND4+Ml09YVtxZSs0Pj4yXSxhW0hlKzg+PjJdPWFbcWUrOD4+Ml0sYVtIZSsxMj4+Ml09YVtxZSsxMj4+Ml0sbzcoUmUsSGUsZik7ISgoMHxNKT49KDB8YykpOylhW1ZlPj4yXT1hW3FlPj4yXSxhW1ZlKzQ+PjJdPWFbcWUrND4+Ml0sYVtWZSs4Pj4yXT1hW3FlKzg+PjJdLGFb''@;'; + put 'put ''VmUrMTI+PjJdPWFbcWUrMTI+PjJdLGFbcWU+PjJdPWFbKEE9bCsoTTw8NCl8MCk+PjJdLGFbcWUrND4+Ml09YVtBKzQ+PjJdLGFbcWUrOD4+Ml09YVtBKzg+PjJdLGFbcWUrMTI+PjJdPWFbQSsxMj4+Ml0sX1txZT4+M109Yj0rX1txZT4+M10rSyxfW0Q+PjNdPWs9K19bRD4+M10rRyxiPj0w''@;'; + put 'put ''P2IqPVI6Yj0oYisxKSpSLTEsX1txZT4+M109YixfW0Q+PjNdPWI9az49MD9rKlI6KGsrMSkqUi0xLGFbUmU+PjJdPWFbVmU+PjJdLGFbUmUrND4+Ml09YVtWZSs0Pj4yXSxhW1JlKzg+PjJdPWFbVmUrOD4+Ml0sYVtSZSsxMj4+Ml09YVtWZSsxMj4+Ml0sYVtIZT4+Ml09YVtxZT4+Ml0sYVtI''@;'; + put 'put ''ZSs0Pj4yXT1hW3FlKzQ+PjJdLGFbSGUrOD4+Ml09YVtxZSs4Pj4yXSxhW0hlKzEyPj4yXT1hW3FlKzEyPj4yXSxvNyhSZSxIZSxmKSxNPU0rMXwwOzB8cCYmKGFbVmU+PjJdPWFbcWU+PjJdLGFbVmUrND4+Ml09YVtxZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbcWUrOD4+Ml0sYVtWZSsxMj4+Ml09''@;'; + put 'put ''YVtxZSsxMj4+Ml0sYVtxZT4+Ml09YVtnZT4+Ml0sYVtxZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbcWUrOD4+Ml09YVtnZSs4Pj4yXSxhW3FlKzEyPj4yXT1hW2dlKzEyPj4yXSxfW3FlPj4zXT1iPStfW3FlPj4zXStLLF9bRD4+M109az0rX1tEPj4zXStHLGI+PTA/Yio9UjpiPShiKzEpKlItMSxf''@;'; + put 'put ''W3FlPj4zXT1iLF9bRD4+M109Yj1rPj0wP2sqUjooaysxKSpSLTEsYVtSZT4+Ml09YVtWZT4+Ml0sYVtSZSs0Pj4yXT1hW1ZlKzQ+PjJdLGFbUmUrOD4+Ml09YVtWZSs4Pj4yXSxhW1JlKzEyPj4yXT1hW1ZlKzEyPj4yXSxhW0hlPj4yXT1hW3FlPj4yXSxhW0hlKzQ+PjJdPWFbcWUrND4+Ml0s''@;'; + put 'put ''YVtIZSs4Pj4yXT1hW3FlKzg+PjJdLGFbSGUrMTI+PjJdPWFbcWUrMTI+PjJdLG83KFJlLEhlLGYpKSx3PXcrMXwwLE09MHxhWzgrKDB8YVtPZT4+Ml0pPj4yXX1lbHNlIExlPTR9d2hpbGUoMCk7ND09KDB8TGUpJiYob0QoRCwwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+''@;'; + put 'put ''Ml0pLGFbcWU+PjJdPWFbRD4+Ml0sYVtxZSs0Pj4yXT1hW0QrND4+Ml0sYVtxZSs4Pj4yXT1hW0QrOD4+Ml0sYVtxZSsxMj4+Ml09YVtEKzEyPj4yXSxfW3FlPj4zXT1iPStfW3FlPj4zXSsgKygwfHApLF9bKE09cWUrOHwwKT4+M109az0rX1tNPj4zXSsgKygwfG0pLGI+PTA/Yi89KygwfEEp''@;'; + put 'put ''OmI9KGIrMSkvKygwfEEpLTEsX1txZT4+M109YixfW00+PjNdPWI9az49MD9rLysoMHxBKTooaysxKS8rKDB8QSktMSxhW1JlPj4yXT1hW1ZlPj4yXSxhW1JlKzQ+PjJdPWFbVmUrND4+Ml0sYVtSZSs4Pj4yXT1hW1ZlKzg+PjJdLGFbUmUrMTI+PjJdPWFbVmUrMTI+PjJdLGFbSGU+PjJdPWFb''@;'; + put 'put ''cWU+PjJdLGFbSGUrND4+Ml09YVtxZSs0Pj4yXSxhW0hlKzg+PjJdPWFbcWUrOD4+Ml0sYVtIZSsxMj4+Ml09YVtxZSsxMj4+Ml0sbzcoUmUsSGUsZikpLGFlPW50fWZ1bmN0aW9uIGxXKGwsYyxmKXt2YXIgdyxrLE0sUixwPTAsbT0wLEE9MCxiPTAsRz0wO2lmKFI9YWUsYWU9YWUrODB8MCxB''@;'; + put 'put ''PVIrNjR8MCxtPVIrMjR8MCxwPVIsdz1SKzU2fDAsKDB8KE09MHx4VChsfD0wLGN8PTAsMHxhWyhrPTgrKGZ8PTApfDApPj4yXSkpKT49MSl7Zm9yKGFbdys0Pj4yXT0wLGFbdz4+Ml09MCxiPTB8dnIobDw8NCksZj0wOyEoKDB8Zik+PSgwfGwpKTspYVtiKyhmPDw0KSsxMj4+Ml09ZixwPTB8''@;'; + put 'put ''YVtrPj4yXSxhW20+PjJdPWFbKEc9YysoZjw8NSl8MCk+PjJdLGFbbSs0Pj4yXT1hW0crND4+Ml0sYVttKzg+PjJdPWFbRys4Pj4yXSxhW20rMTI+PjJdPWFbRysxMj4+Ml0sYVttKzE2Pj4yXT1hW0crMTY+PjJdLGFbbSsyMD4+Ml09YVtHKzIwPj4yXSxhW20rMjQ+PjJdPWFbRysyND4+Ml0s''@;'; + put 'put ''YVttKzI4Pj4yXT1hW0crMjg+PjJdLGFbQT4+Ml09YVt3Pj4yXSxhW0ErND4+Ml09YVt3KzQ+PjJdLHJXKG0sYisoZjw8NCl8MCxNLHAsQSksZj1mKzF8MDtmb3IobT0wfHZyKGw8PDIpLGY9MDshKCgwfGYpPj0oMHxsKSk7KWFbbSsoZjw8Mik+PjJdPWIrKGY8PDQpLGY9ZisxfDA7Zm9yKHgx''@;'; + put 'put ''KG0sbCw0LDg5KSxBPTB8eDcoKSxmPTB8dnIobDw8MykscD0wOyEoKDB8cCk+PSgwfGwpKTspaUYocCxHPTB8YVttKyhwPDwyKT4+Ml0sQSxmKyhhW0crMTI+PjJdPDwzKXwwLE0sMHxhW2s+PjJdLGMpLHA9cCsxfDA7Zm9yKEZ0KG0pLHA9MDshKCgwfHApPj0oMHxsKSk7KUZ0KDB8YVtiKyhw''@;'; + put 'put ''PDw0KSs0Pj4yXSkscD1wKzF8MDtGdChiKSxBeShBKX1lbHNlIGY9MDtyZXR1cm4gYWU9UiwwfGZ9ZnVuY3Rpb24gVjYobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTA7MHwobD0wfGFbOTYrKHA9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSkm''@;'; + put 'put ''JihfWyhEPWwrNTZ8MCk+PjNdPStfW0Q+PjNdKyArKDB8YyksX1soRD1sKzY0fDApPj4zXT0rX1tEPj4zXSsgKygwfGYpKSwwfChsPTB8YVtwKzEwOD4+Ml0pJiYoX1soRD1sKzU2fDApPj4zXT0rX1tEPj4zXSsgKygwfGMpLF9bKEQ9bCs2NHwwKT4+M109K19bRD4+M10rICsoMHxmKSksMHwo''@;'; + put 'put ''bD0wfGFbcCsxMDA+PjJdKSYmKF9bKEQ9bCs1NnwwKT4+M109K19bRD4+M10rICsoMHxjKSxfWyhEPWwrNjR8MCk+PjNdPStfW0Q+PjNdKyArKDB8ZikpLDB8KGw9MHxhW3ArMTA0Pj4yXSkmJihfWyhEPWwrNTZ8MCk+PjNdPStfW0Q+PjNdKyArKDB8YyksX1soRD1sKzY0fDApPj4zXT0rX1tE''@;'; + put 'put ''Pj4zXSsgKygwfGYpKSxEPTB8YVtwKzg+PjJdO2U6ZG97aWYoMHxEKWZvcihNPSsoMHxjKSxiPSsoMHxmKSxjPTB8YVtEKzQ+PjJdLGw9MDs7KXtpZigoMHxsKT49KDB8YykpYnJlYWsgZTtmb3IoZj0wfGFbKGs9MHxhW0Q+PjJdKSsoNDgqbHwwKT4+Ml0sbT0wfGFbaysoNDgqbHwwKSs0Pj4y''@;'; + put 'put ''XSxBPTB8YVtrKyg0OCpsfDApKzg+PjJdLHc9MHxhW2srKDQ4Kmx8MCkrMTI+PjJdLHA9MDshKCgwfHApPj0oMHxtKSk7KV9bKFI9ZisocDw8NCl8MCk+PjNdPStfW1I+PjNdK00sX1soUj1mKyhwPDw0KSs4fDApPj4zXT0rX1tSPj4zXStiLHA9cCsxfDA7MHxBJiYoX1soUj1rKyg0OCpsfDAp''@;'; + put 'put ''KzE2fDApPj4zXT0rX1tSPj4zXStNLF9bKFI9aysoNDgqbHwwKSsyNHwwKT4+M109K19bUj4+M10rYiksMHx3JiYoX1soUj1rKyg0OCpsfDApKzMyfDApPj4zXT0rX1tSPj4zXStNLF9bKFI9aysoNDgqbHwwKSs0MHwwKT4+M109K19bUj4+M10rYiksbD1sKzF8MH19d2hpbGUoMCl9ZnVuY3Rp''@;'; + put 'put ''b24gc1cobCxjLGYpe3ZhciBtLEEsdyxiLGssTSxELHA9MCxSPTA7Zm9yKFI9MTYrKGw9MHxhWyh3PTE2KyhsfD0wKXwwKT4+Ml0pfDAsaz0rX1socD1sKzMyfDApPj4zXSsobT0rKDB8KGN8PTApKSksRD0rX1soTT1sKzI0fDApPj4zXSsoQT0rKDB8KGZ8PTApKSksYj0rX1sobD1sKzQwfDAp''@;'; + put 'put ''Pj4zXStBLF9bUj4+M109K19bUj4+M10rbSxfW00+PjNdPUQsX1twPj4zXT1rLF9bbD4+M109YiwwIT0oMHwocD0wfGFbMTIrKGw9MHxhW3c+PjJdKT4+Ml0pKSYmMCE9KDB8ZmVbcCs4MT4+MF0pJiYoX1soUj1wKzU2fDApPj4zXT0rX1tSPj4zXSttLF9bKHA9cCs2NHwwKT4+M109K19bcD4+''@;'; + put 'put ''M10rQSkscD0xOyEoKDB8cCk+KDB8YVtsKzE4MD4+Ml0pKTspc1coMHxhWygwfGFbbCsxODQ+PjJdKSsocDw8Mik+PjJdLGMsZikscD1wKzF8MCxsPTB8YVt3Pj4yXX1mdW5jdGlvbiB1VyhsLGMsZixwKXt2YXIgbTtyZXR1cm4obT0wfFdkKGx8PTAsY3w9MCxmfD0wLHB8PTApKT8obD0wfGZ1''@;'; + put 'put ''bmN0aW9uIFJyZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MDtlOmRve2lmKCgwfGwpPDEpbT0wLWx8MDtlbHNlIGZvcihiZT0wPT0oMHxwKSxwZT0wPT0oMHxtKSxi''@;'; + put 'put ''PTA7Oyl7aWYoKDB8Yik9PSgwfGwpKXttPTA7YnJlYWsgZX1mb3IoZ2U9MHxhW2MrKGI8PDIpPj4yXSxBPWJlP2dlOnAsUj0uMDEzODg4ODg4ODg4ODg4ODg4KihEPSsoMHwoaz0wfGFbZisoYjw8Myk+PjJdKSkpLEs9LjAxMzg4ODg4ODg4ODg4ODg4OCooRz0rKDB8KE09MHxhW2YrKGI8PDMp''@;'; + put 'put ''KzQ+PjJdKSkpLHc9MHxEdChnZSk7dzspe19bKE9lPTB8YVsxMzIrKG09MHxhW3crMTY+PjJdKT4+Ml0pPj4zXT0rX1tPZT4+M10rUixfWyhPZT1PZSs4fDApPj4zXT0rX1tPZT4+M10rSyxfWyhPZT1tKzE2fDApPj4zXT0rX1tPZT4+M10rRCxfWyhPZT1tKzI0fDApPj4zXT0rX1tPZT4+M10r''@;'; + put 'put ''RywwfChtPTB8YVttKzEwOD4+Ml0pJiYoX1soT2U9bSs1NnwwKT4+M109K19bT2U+PjNdK0QsX1soT2U9bSs2NHwwKT4+M109K19bT2U+PjNdK0cpO3Q6ZG97aWYoIXBlKWZvcihtPTB8dzAoQSx3KTs7KXtpZighbSlicmVhayB0O1Y2KG0sayxNKSxtPTB8UzAoQSxtKX19d2hpbGUoMCk7dz0w''@;'; + put 'put ''fHp0KGdlLHcpfXNXKGdlLGssTSksYj1iKzF8MH19d2hpbGUoMCk7cmV0dXJuIDB8bX0obCxjLG0sZiwwfGFbcCsxMj4+Ml0pLEZ0KG0pKTpsPTEsMHxsfWZ1bmN0aW9uIEVDKGwsYyxmLHApe3ZhciBELFIsRyxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxLPTAscGU9MDtpZihHPWFlLGFlPWFl''@;'; + put 'put ''KzMyfDAsUj1HLCEoRD0wfHVXKGx8PTAsY3w9MCxmfD0wLHB8PTApKSl7Zm9yKGlnKGYpLGFbUj4+Ml09YVsoTT0xNisoMHxhW2YrMTY+PjJdKXwwKT4+Ml0sYVtSKzQ+PjJdPWFbTSs0Pj4yXSxhW1IrOD4+Ml09YVtNKzg+PjJdLGFbUisxMj4+Ml09YVtNKzEyPj4yXSxhW1IrMTY+PjJdPWFb''@;'; + put 'put ''TSsxNj4+Ml0sYVtSKzIwPj4yXT1hW00rMjA+PjJdLGFbUisyND4+Ml09YVtNKzI0Pj4yXSxhW1IrMjg+PjJdPWFbTSsyOD4+Ml0sbT1SKzh8MCxBPVIrMTZ8MCx3PVIrMjR8MCxwPTA7ISgoMHxwKT49KDB8bCkpOyl7Zm9yKGI9MHxhWzE4MCsoaz0wfGFbMTYrKDB8YVtjKyhwPDwyKT4+Ml0p''@;'; + put 'put ''Pj4yXSk+PjJdLGs9aysxODR8MCxmPTE7ISgoMHxmKT4oMHxiKSk7KV9bUj4+M109K19bKCtfW1I+PjNdPCtfWyhwZT0xNisoMHxhWzE2KygwfGFbKDB8YVtrPj4yXSkrKGY8PDIpPj4yXSk+PjJdKXwwKT4+M10/UjpwZSk+PjNdLEs9MTYrKHBlPTB8YVsxNisoMHxhWygwfGFbaz4+Ml0pKyhm''@;'; + put 'put ''PDwyKT4+Ml0pPj4yXSl8MCxfW20+PjNdPStfWygrX1ttPj4zXTwrX1twZSsyND4+M10/UjpLKSs4Pj4zXSxfW0E+PjNdPStfWygrX1tBPj4zXT4rX1twZSszMj4+M10/UjpLKSsxNj4+M10sX1t3Pj4zXT0rX1soK19bdz4+M10+K19bcGUrNDA+PjNdP1I6SykrMjQ+PjNdLGY9ZisxfDA7cD1w''@;'; + put 'put ''KzF8MH1hW00+PjJdPWFbUj4+Ml0sYVtNKzQ+PjJdPWFbUis0Pj4yXSxhW00rOD4+Ml09YVtSKzg+PjJdLGFbTSsxMj4+Ml09YVtSKzEyPj4yXSxhW00rMTY+PjJdPWFbUisxNj4+Ml0sYVtNKzIwPj4yXT1hW1IrMjA+PjJdLGFbTSsyND4+Ml09YVtSKzI0Pj4yXSxhW00rMjg+PjJdPWFbUisy''@;'; + put 'put ''OD4+Ml19cmV0dXJuIGFlPUcsMHxEfWZ1bmN0aW9uIGE3KGwsYyxmLHApe3ZhciBBO3JldHVybiBsfD0wLGN8PTAsZnw9MCxBPWFlLGFlPWFlKzE2fDAsKHB8PTApfHxQcig5OTUzNCw5OTU0MCwxNDAwLDk5NTQ3KSxmPTB8eGMobCxmLGYpLGFbcCs4Pj4yXT1mLGFbcCsxMj4+Ml09MCxhW3Ar''@;'; + put 'put ''MjA+PjJdPTAsUzEobCxjLHApLGFlPUEsMHxhW3ArMTY+PjJdfWZ1bmN0aW9uIHhjKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbSx3LEE9MDt3PWFlLGFlPWFlKzE2fDAsQT13LHA9dys0fDAsbT0wfExpKGx8PTAsOTk2ODkpO2U6ZG97aWYobSlpZihhW0E+PjJdPXAsQT0xPT0oMHxpbChtLDEz''@;'; + put 'put ''NzM5NSxBKSksbD0wfGFbcD4+Ml0sQSYoMHxsKT4tMSljPWw7ZWxzZXtzd2l0Y2goMHxmZVttPj4wXSl7Y2FzZSA4NDpjYXNlIDExNjpicmVhaztkZWZhdWx0OmJyZWFrIGV9Yz1mfX13aGlsZSgwKTtyZXR1cm4gYWU9dywwfGN9ZnVuY3Rpb24gUzEobCxjLGYpe3JldHVybiBjfD0wLGZ8PTAs''@;'; + put 'put ''MHxmdW5jdGlvbiBOMihsLGMsZil7bHw9MCxjfD0wO3ZhciBtLEEsdyxrLEQsZ2UscD0wLGI9MCxiZT0wO2dlPWFlLGFlPWFlKzY0fDAsYj1nZSs4fDAsdz1nZSxtPWdlKzQ4fDAsQT1nZSs0NHwwLChmfD0wKXx8UHIoOTk1MzQsOTk1NDAsMTI5Miw5OTU4MSksYVsoZisyOHwwKT4+Ml09MCxh''@;'; + put 'put ''WyhEPWYrMTZ8MCk+PjJdPWMsYVsoaz1mKzR8MCk+PjJdPTAsYVtmKzI0Pj4yXT0wO2U6ZG97aWYoMHxsJiYocD0wfGZlW2w+PjBdLHA8PDI0Pj4yNCkpc3dpdGNoKHA8PDI0Pj4yNHwwKXtjYXNlIDk3OmlmKDB8czIobCw5OTU5OSw1KSl7aWYoMHxzMihsLDk5NjA1LDYpKWJyZWFrIGU7YVtE''@;'; + put 'put ''Pj4yXT01LGFbYj4+Ml09bSxiPSgwfGlsKGwrNXwwLDk5NjEyLGIpKT4wLGpuW2Y+PjJdPWImKGJlPStqblttPj4yXSk+MD9iZToxO2JyZWFrIGV9aWYoYVtEPj4yXT00LGI9MHxDbChsKzV8MCxmKSxhW3c+PjJdPUEsISgoYj0oMHxpbChiLDEzNzM5NSx3KSk+MCkmKDB8KGM9MHxhW0E+PjJd''@;'; + put 'put ''KSk+MCkpYnJlYWsgZTthW2s+PjJdPWM7YnJlYWsgZTtjYXNlIDk5OmlmKHA8PDI0Pj4yNCE9OTl8fDB8amkobCwxMDgwMDYpKWJyZWFrIGU7YVtEPj4yXT0xO2JyZWFrIGU7Y2FzZSAxMDM6aWYocDw8MjQ+PjI0IT0xMDN8fDB8amkobCwxMTE0OTQpKWJyZWFrIGU7YVtEPj4yXT0zO2JyZWFr''@;'; + put 'put ''IGU7Y2FzZSAxMTA6aWYocDw8MjQ+PjI0IT0xMTB8fDB8amkobCwxMTE0ODEpKWJyZWFrIGU7YVtEPj4yXT0yO2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX13aGlsZSgwKTtyZXR1cm4gYWU9Z2UsMHxhW0Q+PjJdfSgwfExpKGx8PTAsOTk1NzIpLGMsZil9ZnVuY3Rpb24gQ2wobCxjKXtsfD0w''@;'; + put 'put ''LGN8PTA7dmFyIGY9MCxwPTAsbT0wO2U6ZG97aWYoOTU9PSgwfGZlW2w+PjBdKSlmb3IocD1jKzI4fDAsZj0xOzspe2w9bCsxfDA7dDpmb3IoOzspe2lmKCEoZiYmKGM9MHxmZVtsPj4wXSxjPDwyND4+MjQpKSlicmVhayBlO3N3aXRjaChjPDwyND4+MjR8MCl7Y2FzZSA5OTptPTEwO2JyZWFr''@;'; + put 'put ''IHQ7Y2FzZSAxMDU6bT05O2JyZWFrIHQ7Y2FzZSAxMTc6bT0xMTticmVhayB0O2Nhc2UgMTE2Om09MTI7YnJlYWsgdDtjYXNlIDk4OmM9MzI7YnJlYWsgdDtjYXNlIDEwODptPTc7YnJlYWsgdDtjYXNlIDExNDptPTg7YnJlYWsgdDtkZWZhdWx0OmY9MH19Nz09KDB8bSk/KG09MCxjPTQpOjg9''@;'; + put 'put ''PSgwfG0pPyhtPTAsYz04KTo5PT0oMHxtKT8obT0wLGM9NjQpOjEwPT0oMHxtKT8obT0wLGM9MSk6MTE9PSgwfG0pPyhtPTAsYz0yKToxMj09KDB8bSkmJihtPTAsYz0xNiksYVtwPj4yXT1hW3A+PjJdfGN9fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gUW1lKGwsYyxmLHApe2x8PTAs''@;'; + put 'put ''Y3w9MCxmfD0wO3ZhciB3LGIsbT0wLEE9MDtiPWFlLGFlPWFlKzgwfDAsQT1iKzY0fDAsdz1iLGFbKHB8PTApPj4yXT0wO2Rve209MHxmZVtjPj4wXSxjPWMrMXwwfXdoaWxlKDAhPSgwfCRjKG0pKSk7ZTpkb3tzd2l0Y2goMHxtKXtjYXNlIDY5OmlmKGFbbD4+Ml09MCwhKGM9MHxhRihjLGwr''@;'; + put 'put ''OHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1mJiYoYVtsKzcyPj4yXT1hW2Y+PjJdKTticmVhaztjYXNlIDEwMTppZihhW2w+PjJdPTEsIShjPTB8YUYoYyxsKzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9ZiYmKGFbbCs3Mj4+Ml09YVtmPj4yXSk7YnJlYWs7Y2FzZSA4MDppZihh''@;'; + put 'put ''W2w+PjJdPTIsIShjPTB8eEMoYyxsKzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9ZiYmKGFbbCs3Mj4+Ml09YVtmKzQ+PjJdKTticmVhaztjYXNlIDExMjppZihhW2w+PjJdPTMsIShjPTB8eEMoYyxsKzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9ZiYmKGFbbCs3Mj4+Ml09YVtm''@;'; + put 'put ''KzQ+PjJdKTticmVhaztjYXNlIDk4OmlmKGFbbD4+Ml09NCwhKGM9MHx4QyhjLGwrOHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1mJiYoYVtsKzcyPj4yXT1hW2YrOD4+Ml0pO2JyZWFrO2Nhc2UgNjY6aWYoYVtsPj4yXT01LCEoYz0wfHhDKGMsbCs4fDApKSl7YVtwPj4yXT0xLGM9MDti''@;'; + put 'put ''cmVhayBlfWYmJihhW2wrNzI+PjJdPWFbZis4Pj4yXSk7YnJlYWs7Y2FzZSA5OTppZighKGM9MHxycChjLEEpKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWlmKG09MHxUVCgwfGFbQT4+Ml0sdyksYVtBPj4yXT1tLCFtKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9aWYoMHxhW3c+PjJdKXthW2w+''@;'; + put 'put ''PjJdPTE0LG09dyxBPTY0KyhwPWwrOHwwKXwwO2Rve2FbcD4+Ml09YVttPj4yXSxwPXArNHwwLG09bSs0fDB9d2hpbGUoKDB8cCk8KDB8QSkpO2lmKCFmKWJyZWFrIGU7YVtsKzcyPj4yXT1hW2YrNDA+PjJdO2JyZWFrIGV9aWYoYVtsPj4yXT05LGFbbCs4Pj4yXT1hW3crOD4+Ml0sIWYpYnJl''@;'; + put 'put ''YWsgZTthW2wrNzI+PjJdPWFbZisyND4+Ml07YnJlYWsgZTtjYXNlIDY3OmlmKCEoYz0wfHJwKGMsQSkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9aWYobT0wfFRUKDB8YVtBPj4yXSx3KSxhW0E+PjJdPW0sIW0pe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1pZigwfGFbdz4+Ml0pe2FbbD4+Ml09''@;'; + put 'put ''MTMsbT13LEE9NjQrKHA9bCs4fDApfDA7ZG97YVtwPj4yXT1hW20+PjJdLHA9cCs0fDAsbT1tKzR8MH13aGlsZSgoMHxwKTwoMHxBKSk7aWYoIWYpYnJlYWsgZTthW2wrNzI+PjJdPWFbZis0MD4+Ml07YnJlYWsgZX1pZihhW2w+PjJdPTgsYVtsKzg+PjJdPWFbdys4Pj4yXSwhZilicmVhayBl''@;'; + put 'put ''O2FbbCs3Mj4+Ml09YVtmKzIwPj4yXTticmVhayBlO2Nhc2UgNzY6aWYoYVtsPj4yXT02LCEoYz0wfHhDKGMsbCs4fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWYmJihhW2wrNzI+PjJdPWFbZisxMj4+Ml0pO2JyZWFrO2Nhc2UgODQ6aWYoYVtsPj4yXT03LCEoYz0wfFFjKGMsbCs4fDAp''@;'; + put 'put ''KSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWlmKCEoYz0wfFFjKGMsbCsxNnwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1pZighKGM9MHxCcmUoYyxsKzI0fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWlmKCEoYz0wfFFjKGMsbCszMnwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1p''@;'; + put 'put ''ZighKGM9MHxycChjLGwrNDB8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9ZiYmKGFbbCs3Mj4+Ml09YVtmKzE2Pj4yXSk7YnJlYWs7Y2FzZSA3MDppZihhW2w+PjJdPTEwLCEoYz0wfFFjKGMsbCs4fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWlmKCEoYz0wfHJwKGMsbCsxNnwwKSkp''@;'; + put 'put ''e2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1mJiYoYVtsKzcyPj4yXT1hW2YrMjg+PjJdKTticmVhaztjYXNlIDgzOmlmKGFbbD4+Ml09MTEsIShjPTB8cnAoYyxsKzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9ZiYmKGFbbCs3Mj4+Ml09YVtmKzMyPj4yXSk7YnJlYWs7Y2FzZSA3MzppZihh''@;'; + put 'put ''W2w+PjJdPTEyLCEoYz0wfGFGKGMsbCs4fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWlmKCEoYz0wfHJwKGMsbCs0MHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1mJiYoYVtsKzcyPj4yXT1hW2YrMzY+PjJdKTticmVhaztjYXNlIDExNjppZihhW2w+PjJdPTE1LCEoYz0wfEptZShj''@;'; + put 'put ''LGwrOHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1mJiYoYVtsKzcyPj4yXT1hW2YrNDQ+PjJdKTticmVhaztjYXNlIDA6Yz0wO2JyZWFrO2RlZmF1bHQ6YVtwPj4yXT0xLGM9MH19d2hpbGUoMCk7cmV0dXJuIGFlPWIsMHxjfWZ1bmN0aW9uIGFGKGwsYyl7dmFyIHAsbSx3LGY9MCxBPTA7''@;'; + put 'put ''cmV0dXJuIHc9YWUsYWU9YWUrMTZ8MCxfWyhjfD0wKT4+M109K2kzKGx8PTAscD13KSwoMHwobT0wfGFbcD4+Ml0pKSE9KDB8bCkmJihfW2MrOD4+M109K2kzKG0scCksKDB8bSkhPSgwfChBPTB8YVtwPj4yXSkpKSYmKF9bYysxNj4+M109K2kzKEEscCksKDB8QSkhPSgwfChmPTB8YVtwPj4y''@;'; + put 'put ''XSkpKT8oX1tjKzI0Pj4zXT0raTMoZixwKSxsPSgwfGYpPT0oMHwobD0wfGFbcD4+Ml0pKT8wOmwpOmw9MCxhZT13LDB8bH1mdW5jdGlvbiB4QyhsLGMpe2N8PTA7dmFyIEEsYixrLGY9MCxwPTAsbT0wLHc9MDtrPWFlLGFlPWFlKzE2fDAsQT1rLGw9MHxqNihsfD0wLGI9ays0fDApO2Rve2lm''@;'; + put 'put ''KGwpe2Zvcih3PTB8c2goZj0wfGFbYj4+Ml0sMjQpLGFbYz4+Ml09ZixwPXcsbT0wOzspe2lmKCgwfG0pPj0oMHxmKSl7Zj05O2JyZWFrfWlmKF9bcD4+M109K2kzKGwsQSksKDB8bCk9PSgwfChmPTB8YVtBPj4yXSkpKXtmPTU7YnJlYWt9aWYoX1twKzg+PjNdPStpMyhmLEEpLCgwfGYpPT0o''@;'; + put 'put ''MHwobD0wfGFbQT4+Ml0pKSl7Zj03O2JyZWFrfV9bcCsxNj4+M109MCxwPXArMjR8MCxmPTB8YVtjPj4yXSxtPW0rMXwwfWlmKDU9PSgwfGYpKXthW2I+PjJdPW0sRnQodyksbD0wO2JyZWFrfWlmKDc9PSgwfGYpKXthW2I+PjJdPW0sRnQodyksbD0wO2JyZWFrfWlmKDk9PSgwfGYpKXthW2I+''@;'; + put 'put ''PjJdPW0sYVtjKzQ+PjJdPXc7YnJlYWt9fWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiBhZT1rLDB8bH1mdW5jdGlvbiBycChsLGMpe2N8PTA7dmFyIHAsdyxiLGY9MCxtPTAsQT0wO2I9YWUsYWU9YWUrMTZ8MCxsPTB8ajYobHw9MCx3PWIpLHA9MHxhW3c+PjJdO2Rve2lmKDA9PSgwfGwpfCgw''@;'; + put 'put ''fHApPDEpbD0wO2Vsc2V7Zm9yKDsoZj0oQT0wfGZlW2w+PjBdKTw8MjQ+PjI0PT0wKV5BPDwyND4+MjQhPTQ1OylsPWwrMXwwO2lmKGYpbD0wO2Vsc2V7Zm9yKG09QT0wfHNoKHArMXwwLDEpLGY9cDs7KXtpZihsPWwrMXwwLCgwfGYpPD0wKXtmPTk7YnJlYWt9aWYoISgoZj0wfGZlW2w+PjBd''@;'; + put 'put ''KTw8MjQ+PjI0KSl7Zj04O2JyZWFrfWZlW20+PjBdPWYsYVt3Pj4yXT1mPSgwfGFbdz4+Ml0pLTF8MCxtPW0rMXwwfWlmKDg9PSgwfGYpKXtGdChBKSxsPTA7YnJlYWt9aWYoOT09KDB8Zikpe2ZlW20+PjBdPTAsYVtjPj4yXT1BO2JyZWFrfX19fXdoaWxlKDApO3JldHVybiBhZT1iLDB8bH1m''@;'; + put 'put ''dW5jdGlvbiBUVChsLGMpe3ZhciBmO3N3aXRjaChjfD0wLDB8KGY9MHxmZVsobHw9MCk+PjBdKSl7Y2FzZSA5MTpsPTB8ZnVuY3Rpb24gSVQobCxjKXtsfD0wO3ZhciBBLGssTSxELGY9MCxwPTAsbT0wLHc9MCxiPTA7RD1hZSxhZT1hZSsxNnwwLGs9RCxhWyhjfD0wKT4+Ml09MSxBPTB8UWMo''@;'; + put 'put ''bCxNPWMrOHwwKTtkb3tpZigwIT0oMHxBKSYmMCE9KDB8KHc9MHxRYyhBLGMrMTZ8MCkpKSYmMCE9KDB8KHA9MHxRYyh3LGMrMjR8MCkpKSYmMCE9KDB8KG09MHxRYyhwLGMrMzJ8MCkpKSYmMCE9KDB8KGY9MHxqNihtLGI9Yys0MHwwKSkpKXtmb3IobT0wfHNoKGM9MHxhW2I+PjJdLDgpLHA9''@;'; + put 'put ''MDs7KXtpZigoMHxwKT49KDB8Yykpe2Y9MTM7YnJlYWt9aWYoIShmPTB8UWMoZixrKSkpe2Y9OTticmVha31pZihqblttKyhwPDwzKT4+Ml09K19baz4+M10sIShmPTB8cnAoZixtKyhwPDwzKSs0fDApKSl7Zj0xMjticmVha31wPXArMXwwLGM9MHxhW2I+PjJdfWlmKDk9PSgwfGYpKXtGdCht''@;'; + put 'put ''KSxsPTA7YnJlYWt9aWYoMTI9PSgwfGYpKXtGdChtKSxsPTA7YnJlYWt9aWYoMTM9PSgwfGYpKXthW00rMzY+PjJdPW07YnJlYWt9fWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiBhZT1ELDB8bH0obCsxfDAsYyk7YnJlYWs7Y2FzZSA0MDpsPTB8ZnVuY3Rpb24gRFQobCxjKXtsfD0wO3ZhciBi''@;'; + put 'put ''LE0sUixmPTAscD0wLG09MCxBPTAsdz0wLGs9MCxEPTA7Uj1hZSxhZT1hZSsxNnwwLE09UixhWyhjfD0wKT4+Ml09MixiPTB8UWMobCxjKzh8MCk7ZG97aWYoMCE9KDB8YikmJjAhPSgwfChrPTB8UWMoYixjKzE2fDApKSkmJjAhPSgwfChwPTB8UWMoayxjKzI0fDApKSkmJjAhPSgwfChtPTB8''@;'; + put 'put ''UWMocCxjKzMyfDApKSkmJjAhPSgwfChBPTB8UWMobSxjKzQwfDApKSkmJjAhPSgwfCh3PTB8UWMoQSxjKzQ4fDApKSkmJjAhPSgwfChmPTB8ajYodyxEPWMrNTZ8MCkpKSl7Zm9yKEE9MHxzaChwPTB8YVtEPj4yXSw4KSxtPTA7Oyl7aWYoKDB8bSk+PSgwfHApKXtmPTE1O2JyZWFrfWlmKCEo''@;'; + put 'put ''Zj0wfFFjKGYsTSkpKXtmPTExO2JyZWFrfWlmKGpuW0ErKG08PDMpPj4yXT0rX1tNPj4zXSwhKGY9MHxycChmLEErKG08PDMpKzR8MCkpKXtmPTE0O2JyZWFrfW09bSsxfDAscD0wfGFbRD4+Ml19aWYoMTE9PSgwfGYpKXtGdChBKSxsPTA7YnJlYWt9aWYoMTQ9PSgwfGYpKXtGdChBKSxsPTA7''@;'; + put 'put ''YnJlYWt9aWYoMTU9PSgwfGYpKXthW2MrNjA+PjJdPUE7YnJlYWt9fWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiBhZT1SLDB8bH0obCsxfDAsYyk7YnJlYWs7Y2FzZSA0NzpjYXNlIDM1OmFbYz4+Ml09MCxhW2MrOD4+Ml09bDticmVhaztkZWZhdWx0OjB8aTkoZik/KGFbYz4+Ml09MCxhW2Mr''@;'; + put 'put ''OD4+Ml09bCk6bD0wfXJldHVybiAwfGx9ZnVuY3Rpb24gUWMobCxjKXtjfD0wO3ZhciBwLG0sZj0wO3JldHVybiBtPWFlLGFlPWFlKzE2fDAscD0raTMobHw9MCxmPW0pLCgwfChmPTB8YVtmPj4yXSkpPT0oMHxsKT9mPTA6X1tjPj4zXT1wLGFlPW0sMHxmfWZ1bmN0aW9uIEJyZShsLGMpe2N8''@;'; + put 'put ''PTA7dmFyIGYscD0wO3JldHVybiBmPWFlLGFlPWFlKzE2fDAsbD0wfGo2KGx8PTAscD1mKSxhW2M+PjJdPSgwfChwPTB8YVtwPj4yXSkpPDA/MDowfHA/MjoxLGFlPWYsMHxsfWZ1bmN0aW9uIEptZShsLGMpe3ZhciBmLHA7cmV0dXJuIGY9YWUsYWU9YWUrMTZ8MCxhWyhjfD0wKT4+Ml09MHxm''@;'; + put 'put ''dW5jdGlvbiBUQWUobCxjLGYpe3JldHVybiAwfHUkKGx8PTAsY3w9MCxmfD0wLC0xLDApfShsfD0wLHA9ZiwxMCksYWU9ZiwwfCgoMHwoYz0wfGFbcD4+Ml0pKT09KDB8bCk/MDpjKX1mdW5jdGlvbiBqNihsLGMpe3ZhciBmLHA7cmV0dXJuIGY9YWUsYWU9YWUrMTZ8MCxhWyhjfD0wKT4+Ml09''@;'; + put 'put ''MHx2TChsfD0wLHA9ZiwxMCksYWU9ZiwwfCgoMHwoYz0wfGFbcD4+Ml0pKT09KDB8bCk/MDpjKX1mdW5jdGlvbiBHaChsLGMsZil7cmV0dXJuIDB8ZnVuY3Rpb24gTGEobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgTSxSLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wO1I9YWUsYWU9''@;'; + put 'put ''YWUrOTZ8MCxNPVIsRD1SKzgwfDA7ZG97aWYobCl7Zm9yKHB8fChwPTB8c2goMSwyMCksYVtwKzQ+PjJdPWY+Pj4wPjgwP2Y6ODApLGs9MHxhW3ArND4+Ml0sKGY9MHxhW3A+PjJdKT8odTIoKGI9MHxVYSgwfGFbcCs4Pj4yXSwwfEFyKHc9ZisxMDB8MCxrKSkpKygwfEFyKGssZikpfDAsMCwx''@;'; + put 'put ''MDAqa3wwKSxmPWwpOih3PTEwMCxmPWwsYj0wfHNoKDEwMCxrKSk7Zj0wfFFtZShNLGYsYyxEKTspe2w9MHxhW3A+PjJdLG09dzw8MSxBPTB8QXIodyxrKSwoMHxsKT09KDB8dyk/KHUyKChiPTB8VWEoYiwwfEFyKG0saykpKStBfDAsMCwwfEEpLGw9MHxhW3A+PjJdKTptPXcsQT1NLHc9ODAr''@;'; + put 'put ''KGw9YisoMHxBcihsLGspKXwwKXwwO2Rve2FbbD4+Ml09YVtBPj4yXSxsPWwrNHwwLEE9QSs0fDB9d2hpbGUoKDB8bCk8KDB8dykpO2FbcD4+Ml09MSsoMHxhW3A+PjJdKSx3PW19aWYoMHxhW0Q+PjJdJiYoYVsoRD1wKzE2fDApPj4yXT0xfGFbRD4+Ml0pLGY9MHxhW3A+PjJdKXthW3ArOD4+''@;'; + put 'put ''Ml09MHxVYShiLDB8QXIoZixrKSk7YnJlYWt9RnQoYiksRnQocCkscD0wO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gYWU9UiwwfHB9KGx8PTAsY3w9MCxmfD0wLDApfWZ1bmN0aW9uIGxGKGwpe3JldHVybiAwfEdoKGx8PTAsMCwwKX1mdW5jdGlvbiBQcmUobCl7dmFyIHAsYz0wLGY9MCxtPTAs''@;'; + put 'put ''QT0wLHc9MDtpZihwPTB8YVsxMisobHw9MCk+PjJdLDB8bCl7Zm9yKG09MHxhW2wrOD4+Ml0sQT1sKzR8MCx3PTA9PSgwfHApLGM9MDshKCgwfGMpPj0oMHxhW2w+PjJdKSk7KWY9bSsoMHxBcigwfGFbQT4+Ml0sYykpfDAsd3x8Q29bMTI3JnBdKGYpLFhtZShmKSxjPWMrMXwwO0Z0KG0pLEZ0''@;'; + put 'put ''KGwpfX1mdW5jdGlvbiBYbWUobCl7c3dpdGNoKDB8YVsobHw9MCk+PjJdKXtjYXNlIDM6Y2FzZSAyOmNhc2UgNTpjYXNlIDQ6Y2FzZSA2OkZ0KDB8YVtsKzgrND4+Ml0pO2JyZWFrO2Nhc2UgNzpjYXNlIDEyOkZ0KDB8YVtsKzQwPj4yXSk7YnJlYWs7Y2FzZSA5OmNhc2UgODpjYXNlIDExOkZ0''@;'; + put 'put ''KDB8YVtsKzg+PjJdKTticmVhaztjYXNlIDE0OmNhc2UgMTM6IWZ1bmN0aW9uIEttZShsKXt2YXIgYz0wLGY9MCxwPTA7c3dpdGNoKDB8YVsobHw9MCk+PjJdKXtjYXNlIDE6Zm9yKHA9bCs0MHwwLGM9bCs4KzM2fDAsbD0wO2Y9MHxhW2M+PjJdLCEoKDB8bCk+PSgwfGFbcD4+Ml0pKTspRnQo''@;'; + put 'put ''MHxhW2YrKGw8PDMpKzQ+PjJdKSxsPWwrMXwwO0Z0KGYpO2JyZWFrO2Nhc2UgMjpmb3IocD1sKzU2fDAsZj1sKzYwfDAsbD0wO2M9MHxhW2Y+PjJdLCEoKDB8bCk+PSgwfGFbcD4+Ml0pKTspRnQoMHxhW2MrKGw8PDMpKzQ+PjJdKSxsPWwrMXwwO0Z0KGMpfX0obCs4fDApO2JyZWFrO2Nhc2Ug''@;'; + put 'put ''MTA6RnQoMHxhW2wrMTY+PjJdKX19ZnVuY3Rpb24gVEMobCxjLGYpe2x8PTAsZnw9MDt2YXIgayxELFIscD0wLG09MCxBPTAsdz0wLGI9MCxNPTA7Uj1hZSxhZT1hZSsxNnwwLGs9Uis0fDAsRD1SLGFbKGN8PTApPj4yXT0wLGFbZj4+Ml09MCE9KDB8U2MoMHxjcihsKSkpJjEscD0wfGFbNDcx''@;'; + put 'put ''ODRdO2U6ZG97aWYoMHxwJiYoQT0wfEhvKGwscCksdz0wfGZlW0E+PjBdLHc8PDI0Pj4yNCkpe2ZvcihwPTIwMzg4Ozspe2lmKCEobT0wfGFbcD4+Ml0pKWJyZWFrIGU7aWYodzw8MjQ+PjI0PT0oMHxmZVttPj4wXSkmJjA9PSgwfGppKEEsbSkpKWJyZWFrO3A9cCsxMnwwfWFbYz4+Ml09YVtw''@;'; + put 'put ''KzQ+PjJdLGFbZj4+Ml09YVtwKzg+PjJdfX13aGlsZSgwKTswfChwPTB8YVs0NzE5NV0pJiYxPT0oMHxhW2Y+PjJdKSYmKGI9MHxIbyhsLHApLDB8ZmVbYj4+MF0pJiZjVyhiLGYpLDB8KHA9MHxhWzQ3MTk2XSkmJjE9PSgwfGFbYz4+Ml0pJiYoTT0wfEhvKGwscCksMHxmZVtNPj4wXSkmJmNX''@;'; + put 'put ''KE0sYyksMHxmZVsxNTMrKDB8YVtsKzE2Pj4yXSk+PjBdJiYoYj1sKy00OHwwLFRDKDB8S2Eodz0wfGNyKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmIpKzQwPj4yXSksMHxhWygyPT0oMHwoTT0zJmFbbD4+Ml0pKT9sOmIpKzQwPj4yXSwwfGFbKDM9PSgwfE0pP2w6bCs0OHwwKSs0MD4+Ml0s''@;'; + put 'put ''MCwwKSxrLEQpLGFbZj4+Ml09YVtrPj4yXXxhW2Y+PjJdLGFbYz4+Ml09YVtEPj4yXXxhW2M+PjJdKSxhZT1SfWZ1bmN0aW9uIGNXKGwsYyl7bHw9MCxjfD0wO3ZhciBrLE0sUixmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxEPTA7Uj1hZSxhZT1hZSsxNnwwLE09UixrPVIrNHwwLGI9MCxmPTA7''@;'; + put 'put ''ZTpmb3IoOzspe2ZvcihhW2M+PjJdPWYsbT0oMHxiKTw0LEE9Mz09KDB8Yiksdz0wPT0oMHxiKTs7KXtpZighKG0mMCE9KDB8ZmVbbD4+MF0pKSlicmVhayBlO2lmKGFbaz4+Ml09MCxwPTB8ZlcobCxrKSwhKGY9MHxhW2s+PjJdKSl7RD01O2JyZWFrIGV9aWYoIShBJihsPTg9PSgwfGYpKSkm''@;'; + put 'put ''JighKHcmbCl8fDB8ZmVbcD4+MF0pKWJyZWFrO2Fbaz4+Ml09MCxsPXB9Zj1hW2M+PjJdfGY8PChiPDwzKSxiPWIrMXwwLGw9cH01PT0oMHxEKSYmKGFbTT4+Ml09bCwkcigwLDk5Njk0LE0pKSxhZT1SfWZ1bmN0aW9uIGZXKGwsYyl7bHw9MCxjfD0wO3ZhciBwLG0sZj0wO2lmKG09YWUsYWU9''@;'; + put 'put ''YWUrMTZ8MCxhWyhwPW0pPj4yXT0wLCgwfChmPTB8c0YobCwyMDQ0OCxwKSkpPT0oMHxsKSl7Zm9yKDsoMHxsKSE9KDB8KGY9MHxzRihsLDIwNDY0LHApKSk7KWw9ZjtmPTB8c0YobCwyMDUxMixwKX1yZXR1cm4gMCE9KDB8KGw9MHxhW3A+PjJdKSkmMD09KDE1Jmx8MCkmJihhW3A+PjJdPWx8''@;'; + put 'put ''PTEpLGFbYz4+Ml09YVtjPj4yXXxsLGFlPW0sMHxmfWZ1bmN0aW9uIHNGKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDtmb3IodmFyIHA9MCxtPTAsQT0wO3A9MHxhW2M+PjJdOyl7aWYoISgwfHMyKGwscCxtPTB8VW8ocCkpKSl7QT00O2JyZWFrfWM9Yys4fDB9cmV0dXJuIDQ9PSgwfEEpJiYoYVtm''@;'; + put 'put ''Pj4yXT1hW2Y+PjJdfGFbYys0Pj4yXSxsPWwrbXwwKSwwfGx9ZnVuY3Rpb24gbDcobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKEE9MCxmPTA7NCE9KDB8QSk7KXtmb3IobT1jPj4oQTw8MykmMTUscD0xNDAwOzB8YVtwKzE2Pj4yXTspe2lmKCgwfG0pPT0oMHxh''@;'; + put 'put ''W3A+PjJdKSl7dz02O2JyZWFrfXA9cCsyNHwwfTY9PSgwfHcpJiYodz0wLGY9K19bcCs4Pj4zXStmKSxBPUErMXwwfXJldHVybiAxMCpmKitNbChsLDB8YVs0NzE4OF0sMSwwKX1mdW5jdGlvbiBjRihsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixrLEQsSyxwZSxnZSx3''@;'; + put 'put ''PTAsTT0wLFI9MCxHPTA7cmV0dXJuIEQ9YWUsYWU9YWUrODB8MCxiPUQrNzJ8MCxrPUQrOHwwLE09RCx3PStsNyhsfD0wLEF8PTApLF9bTT4+M109dyo9dyxhW20rMTI+PjJdPUEsYVsoQT1tKzMyfDApPj4yXT1hWyhtPWMrKChsPXArM3wwKTw8NCl8MCk+PjJdLGFbQSs0Pj4yXT1hW20rND4+''@;'; + put 'put ''Ml0sYVtBKzg+PjJdPWFbbSs4Pj4yXSxhW0ErMTI+PjJdPWFbbSsxMj4+Ml0sKDB8cCk+KDB8ZikmJihHPStfW2MrKHA8PDQpKzg+PjNdLStfW2MrKGw8PDQpKzg+PjNdKSpHKyhSPStfW2MrKHA8PDQpPj4zXS0rX1ttPj4zXSkqUjx3JiYocD1wKy0zfDApLGFbKGdlPWsrNDh8MCk+PjJdPWFb''@;'; + put 'put ''KHBlPWMrKHA8PDQpfDApPj4yXSxhW2dlKzQ+PjJdPWFbcGUrND4+Ml0sYVtnZSs4Pj4yXT1hW3BlKzg+PjJdLGFbZ2UrMTI+PjJdPWFbcGUrMTI+PjJdLGFbKEs9ayszMnwwKT4+Ml09YVsobD1jKyhwKzE8PDQpfDApPj4yXSxhW0srND4+Ml09YVtsKzQ+PjJdLGFbSys4Pj4yXT1hW2wrOD4+''@;'; + put 'put ''Ml0sYVtLKzEyPj4yXT1hW2wrMTI+PjJdLGFbKG09aysxNnwwKT4+Ml09YVsoZj1jKyhwKzI8PDQpfDApPj4yXSxhW20rND4+Ml09YVtmKzQ+PjJdLGFbbSs4Pj4yXT1hW2YrOD4+Ml0sYVttKzEyPj4yXT1hW2YrMTI+PjJdLGFbaz4+Ml09YVtBPj4yXSxhW2srND4+Ml09YVtBKzQ+PjJdLGFb''@;'; + put 'put ''ays4Pj4yXT1hW0ErOD4+Ml0sYVtrKzEyPj4yXT1hW0ErMTI+PjJdLGFbYj4+Ml09ayxhW2IrND4+Ml09TSxRSShiLDkyLGssMSksYVtwZT4+Ml09YVtnZT4+Ml0sYVtwZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbcGUrOD4+Ml09YVtnZSs4Pj4yXSxhW3BlKzEyPj4yXT1hW2dlKzEyPj4yXSxhW2w+''@;'; + put 'put ''PjJdPWFbSz4+Ml0sYVtsKzQ+PjJdPWFbSys0Pj4yXSxhW2wrOD4+Ml09YVtLKzg+PjJdLGFbbCsxMj4+Ml09YVtLKzEyPj4yXSxhW2Y+PjJdPWFbbT4+Ml0sYVtmKzQ+PjJdPWFbbSs0Pj4yXSxhW2YrOD4+Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09YVttKzEyPj4yXSxhWyhNPWMrKHArMzw8''@;'; + put 'put ''NCl8MCk+PjJdPWFbaz4+Ml0sYVtNKzQ+PjJdPWFbays0Pj4yXSxhW00rOD4+Ml09YVtrKzg+PjJdLGFbTSsxMj4+Ml09YVtrKzEyPj4yXSxhZT1ELDB8cH1mdW5jdGlvbiBPYShsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgayxNLFIscGUsZ2Usdz0wLGI9MCxEPTAsRz0w''@;'; + put 'put ''LEs9MDtyZXR1cm4gUj1hZSxhZT1hZSs4MHwwLGs9Uis3MnwwLE09Uis4fDAsRD1SLGI9K2w3KGx8PTAsQXw9MCksX1tEPj4zXT1iKj1iLGFbbSs4Pj4yXT1BLGFbKG09bSsxNnwwKT4+Ml09YVsobD1jKyhmPDw0KXwwKT4+Ml0sYVttKzQ+PjJdPWFbbCs0Pj4yXSxhW20rOD4+Ml09YVtsKzg+''@;'; + put 'put ''PjJdLGFbbSsxMj4+Ml09YVtsKzEyPj4yXSwoMHxwKT4oMHxmKSYmKEs9K19bYysoZjw8NCkrOD4+M10tK19bYysoKHc9ZiszfDApPDw0KSs4Pj4zXSkqSysoRz0rX1tsPj4zXS0rX1tjKyh3PDw0KT4+M10pKkc8Ynx8KHc9ZiksYVtNPj4yXT1hWyhwPWMrKHcrMzw8NCl8MCk+PjJdLGFbTSs0''@;'; + put 'put ''Pj4yXT1hW3ArND4+Ml0sYVtNKzg+PjJdPWFbcCs4Pj4yXSxhW00rMTI+PjJdPWFbcCsxMj4+Ml0sYVsoQT1NKzE2fDApPj4yXT1hWyhmPWMrKHcrMjw8NCl8MCk+PjJdLGFbQSs0Pj4yXT1hW2YrND4+Ml0sYVtBKzg+PjJdPWFbZis4Pj4yXSxhW0ErMTI+PjJdPWFbZisxMj4+Ml0sYVsocGU9''@;'; + put 'put ''TSszMnwwKT4+Ml09YVsobD1jKyh3KzE8PDQpfDApPj4yXSxhW3BlKzQ+PjJdPWFbbCs0Pj4yXSxhW3BlKzg+PjJdPWFbbCs4Pj4yXSxhW3BlKzEyPj4yXT1hW2wrMTI+PjJdLGFbKGdlPU0rNDh8MCk+PjJdPWFbbT4+Ml0sYVtnZSs0Pj4yXT1hW20rND4+Ml0sYVtnZSs4Pj4yXT1hW20rOD4+''@;'; + put 'put ''Ml0sYVtnZSsxMj4+Ml09YVttKzEyPj4yXSxhW2s+PjJdPWdlLGFbays0Pj4yXT1ELFFJKGssOTIsTSwwKSxhWyhEPWMrKHc8PDQpfDApPj4yXT1hW2dlPj4yXSxhW0QrND4+Ml09YVtnZSs0Pj4yXSxhW0QrOD4+Ml09YVtnZSs4Pj4yXSxhW0QrMTI+PjJdPWFbZ2UrMTI+PjJdLGFbbD4+Ml09''@;'; + put 'put ''YVtwZT4+Ml0sYVtsKzQ+PjJdPWFbcGUrND4+Ml0sYVtsKzg+PjJdPWFbcGUrOD4+Ml0sYVtsKzEyPj4yXT1hW3BlKzEyPj4yXSxhW2Y+PjJdPWFbQT4+Ml0sYVtmKzQ+PjJdPWFbQSs0Pj4yXSxhW2YrOD4+Ml09YVtBKzg+PjJdLGFbZisxMj4+Ml09YVtBKzEyPj4yXSxhW3A+PjJdPWFbTT4+''@;'; + put 'put ''Ml0sYVtwKzQ+PjJdPWFbTSs0Pj4yXSxhW3ArOD4+Ml09YVtNKzg+PjJdLGFbcCsxMj4+Ml09YVtNKzEyPj4yXSxhZT1SLDB8d31mdW5jdGlvbiBQQShsLGMsZixwLG0pe2x8PTA7dmFyIEEsYix3PTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTA7TT0oaz0xMCoocD0rcCkvKCtEMCgrKChNPStf''@;'; + put 'put ''WyhmfD0wKT4+M10tKEc9K19bKGN8PTApPj4zXSkpKk0rKEQ9K19bZis4Pj4zXS0oSz0rX1tjKzg+PjNdKSkqRCkpKzFlLTQpKSooKE0+PTA/MWUtNDotMWUtNCkrTSksYj1HLShSPS41KihrKj0oRD49MD8xZS00Oi0xZS00KStEKSksQT1LLShEPS41Kk0pLEQ9SytELHc9KEc9UitHKT4odz0o''@;'; + put 'put ''Sz1iK00pPihNPUcrTSk/SzpNKT9HOncscD1EPihwPShSPUErayk+KGs9RCtrKT9SOmspP0Q6cCxrPUQ8KGs9UjxrP1I6ayk/RDprLF9bbD4+M109YjwoTT1HPChNPUs8TT9LOk0pP0c6TSk/YjpNLF9bbCs4Pj4zXT1BPGs/QTprLF9bbCsxNj4+M109Yj53P2I6dyxfW2wrMjQ+PjNdPUE+cD9B''@;'; + put 'put ''OnB9ZnVuY3Rpb24gWWQobCxjLGYscCxtLEEsdyl7Znw9MCxwfD0wLG09K20sQT0rQSx3fD0wO3ZhciBrLE0sRCxSLEcsSyxwZSxnZSxiZSxiPTA7Zm9yKEs9YWUsYWU9YWUrNDh8MCxNPUsrMzJ8MCxrPUsrMTZ8MCxHPUssUj0wfGFbKEQ9MTIrKDB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0s''@;'; + put 'put ''YVtEPj4yXT1jfD0wLGQyKGwsMHxhWzMzNisoMHxhW2w+PjJdKT4+Ml0pLHhoKGwsQSkscGU9MTAvKCtEMCgrKChiZT0rX1twPj4zXS0rX1tmPj4zXSkqYmUrKGdlPStfWyhjPXArOHwwKT4+M10tK19bZis4Pj4zXSkqZ2UpKSsxZS00KSxfW3A+PjNdPXBlKigoYmU+PTA/MWUtNDotMWUtNCkr''@;'; + put 'put ''YmUpLF9bYz4+M109KChnZT49MD8xZS00Oi0xZS00KStnZSkqcGUsYz0wOyEoKDB8Yyk+PTQpJiYoYj13Pj4oYzw8MykmMjU1KTspYVtrPj4yXT1hW2Y+PjJdLGFbays0Pj4yXT1hW2YrND4+Ml0sYVtrKzg+PjJdPWFbZis4Pj4yXSxhW2srMTI+PjJdPWFbZisxMj4+Ml0sYVtNPj4yXT1hW3A+''@;'; + put 'put ''PjJdLGFbTSs0Pj4yXT1hW3ArND4+Ml0sYVtNKzg+PjJdPWFbcCs4Pj4yXSxhW00rMTI+PjJdPWFbcCsxMj4+Ml0sWjYoRyxsLGssTSxtLEEsYiksYVtmPj4yXT1hW0c+PjJdLGFbZis0Pj4yXT1hW0crND4+Ml0sYVtmKzg+PjJdPWFbRys4Pj4yXSxhW2YrMTI+PjJdPWFbRysxMj4+Ml0sYz1j''@;'; + put 'put ''KzF8MDthW0Q+PjJdPVIsYWU9S31mdW5jdGlvbiBaNihsLGMsZixwLG0sQSx3KXtsfD0wLGN8PTAsZnw9MCxwfD0wLG09K20sQT0rQTt2YXIgayxNLEQsSyxiPTAsUj0wLEc9MCxwZT0wO2ZvcihLPWFlLGFlPWFlKzMyfDAsTT1LKzE2fDAsaz1LLEQ9MTUmKHd8PTApLGI9MTQwMDtSPTB8YVti''@;'; + put 'put ''Pj4yXTspe2lmKCgwfEQpPT0oMHxSKSl7Rz00O2JyZWFrfWI9YisyNHwwfTQ9PSgwfEcpJiYoX1twPj4zXT0ocGU9K19bYis4Pj4zXSptKSorX1twPj4zXSxfWyhSPXArOHwwKT4+M109cGUqK19bUj4+M10sRz0wfGFbYisxNj4+Ml0sYVtrPj4yXT1hW2Y+PjJdLGFbays0Pj4yXT1hW2YrND4+''@;'; + put 'put ''Ml0sYVtrKzg+PjJdPWFbZis4Pj4yXSxhW2srMTI+PjJdPWFbZisxMj4+Ml0sYVtNPj4yXT1hW3A+PjJdLGFbTSs0Pj4yXT1hW3ArND4+Ml0sYVtNKzg+PjJdPWFbcCs4Pj4yXSxhW00rMTI+PjJdPWFbcCsxMj4+Ml0sdXdbMTUmR10oYyxrLE0sbSxBLHcpLF9bZj4+M109K19bcD4+M10rICtf''@;'; + put 'put ''W2Y+PjNdLF9bKEc9Zis4fDApPj4zXT0rX1tSPj4zXSsgK19bRz4+M10pLGFbbD4+Ml09YVtmPj4yXSxhW2wrND4+Ml09YVtmKzQ+PjJdLGFbbCs4Pj4yXT1hW2YrOD4+Ml0sYVtsKzEyPj4yXT1hW2YrMTI+PjJdLGFlPUt9ZnVuY3Rpb24geGYobCl7bHw9MDt2YXIgbSxBLGM9MCxmPTAscD0w''@;'; + put 'put ''O2lmKEE9YWUsYWU9YWUrMTZ8MCwobT0wfHZyKDMwNCkpfHwkcigxLDk5ODc2LEEpLGFbbT4+Ml09bD0wfGFbKHA9bCsxNnwwKT4+Ml0sYVtwPj4yXT1tLGwpe2Y9bCsxNnwwLHA9NDArKGM9bSsxNnwwKXwwO2Rve2FbYz4+Ml09YVtmPj4yXSxjPWMrNHwwLGY9Zis0fDB9d2hpbGUoKDB8Yyk8''@;'; + put 'put ''KDB8cCkpO2Y9bCs1NnwwLHA9NDArKGM9bSs1NnwwKXwwO2Rve2FbYz4+Ml09YVtmPj4yXSxjPWMrNHwwLGY9Zis0fDB9d2hpbGUoKDB8Yyk8KDB8cCkpO2FbbSsxNDQ+PjJdPWFbbCsxNDQ+PjJdLGFbbSsxNDg+PjJdPWFbbCsxNDg+PjJdLF9bbSsxNTI+PjNdPStfW2wrMTUyPj4zXSxhW20r''@;'; + put 'put ''MTM2Pj4yXT1hW2wrMTM2Pj4yXSxmPWwrOTZ8MCxwPTQwKyhjPW0rOTZ8MCl8MDtkb3thW2M+PjJdPWFbZj4+Ml0sYz1jKzR8MCxmPWYrNHwwfXdoaWxlKCgwfGMpPCgwfHApKX1lbHNlIGFbbSsxNDQ+PjJdPTMsYVttKzE0OD4+Ml09MCxfW20rMTUyPj4zXT0xO3JldHVybiBhZT1BLDB8bX1m''@;'; + put 'put ''dW5jdGlvbiBEQyhsKXt2YXIgYztpZihjPTB8YVsobD0xNisobHw9MCl8MCk+PjJdKXJldHVybiBGdCgwfGFbYysyMTI+PjJdKSxGdCgwfGFbYysyMDg+PjJdKSxGdCgwfGFbYysyMTY+PjJdKSxGdCgwfGFbYysyMjA+PjJdKSxGdCgwfGFbYysyMjQ+PjJdKSxGdCgwfGFbYysyMjg+PjJdKSxG''@;'; + put 'put ''dCgwfGFbYysyMzI+PjJdKSxGdCgwfGFbYysyMzY+PjJdKSxGdCgwfGFbYysyNDA+PjJdKSxGdCgwfGFbYysyNDQ+PjJdKSxGdCgwfGFbYysyNDg+PjJdKSxGdCgwfGFbYysyNTI+PjJdKSxGdCgwfGFbYysyNTY+PjJdKSxGdCgwfGFbYysyNzI+PjJdKSxGdCgwfGFbYysyODQ+PjJdKSxGdCgw''@;'; + put 'put ''fGFbYysyODA+PjJdKSxhW2w+PjJdPWFbYz4+Ml0sdm9pZCBGdChjKTtQcig5OTkwMiw5OTkwNiwxMTcsOTk5MTMpfWZ1bmN0aW9uIFExKGwsYyxmLHAsbSxBLHcpe3ZhciBiLGs7Znw9MCxwfD0wLG18PTAsQXw9MCx3fD0wLGs9MHxhWzE2KyhsfD0wKT4+Ml0sMCE9KDB8KGN8PTApKSYwIT0o''@;'; + put 'put ''MzI3NjgmKGI9MHxhW2wrMTUyPj4yXSl8MCkmJihhW2srMTkyPj4yXT1jKSwwIT0oNjU1MzYmYnwwKSYmKGFbaysyMTI+PjJdPTB8bTIoQSx3KSwwIT0oMHxmKSkmJjAhPSgwfGZlW2Y+PjBdKT8oYVtrKzIwOD4+Ml09MHxtMihmLHcpLGw9MSk6bD0wO2Rve2lmKDQxOTQzMDQmYil7aWYoMHxw''@;'; + put 'put ''JiYwfGZlW3A+PjBdKXthW2srMjI4Pj4yXT0wfG0yKHAsdykscnRbKGw9aysyNjB8MCk+PjFdPTF8cnRbbD4+MV0sbD0xO2JyZWFrfShjPTB8YVtrKzE5Mj4+Ml0pJiYoYVtrKzIyOD4+Ml09MHxyYShjKSxsPTEpfX13aGlsZSgwKTtyZXR1cm4gMCE9KDB8bSkmMCE9KDgzODg2MDgmYnwwKSYm''@;'; + put 'put ''MCE9KDB8ZmVbbT4+MF0pJiYoYVtrKzI0ND4+Ml09MHxtMihtLHcpLGw9MSksMHxsfWZ1bmN0aW9uIGZGKGwsYyxmKXtjfD0wO3ZhciBtLEEsdyxiLHA9MDtpZihiPWFlLGFlPWFlKzgwfDAsdz1iLEE9Yis4fDAscD0wfGFbOTIrKDB8YVs4KygwfGFbMTYrKG09MHxhWzE2OCsoMHxhWyhsfD0w''@;'; + put 'put ''KT4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSxTMihsLGZ8PTApLDAhPSgwfChsPTB8TGkoYywxNDEwNjApKSkmJjAhPSgwfGZlW2w+PjBdKSl1byhmLGwpLChsPTB8YVsocD1mKzR8MCk+PjJdKT4+PjA+PSgwfGFbZis4Pj4yXSk+Pj4wJiYoUTAoZiwxKSxsPTB8YVtwPj4yXSksZmVbbD4+MF09''@;'; + put 'put ''MCxhW3A+PjJdPWw9MHxhW2Y+PjJdO2Vsc2V7c3dpdGNoKCgwfG0pIT0oMHxjKSYwIT0oMHxwKSYmKHVvKGYscCksKGw9MHxhWyhwPWYrNHwwKT4+Ml0pPj4+MD49KDB8YVtmKzg+PjJdKT4+PjAmJihRMChmLDEpLGw9MHxhW3A+PjJdKSxhW3A+PjJdPWwrMSxmZVtsPj4wXT05NSksMHxraShj''@;'; + put 'put ''KSl7Y2FzZSAwOnA9KDB8bSk9PSgwfGMpPzExMTQ5NDo5OTkyNyxsPSgwfGFbYz4+Ml0pPj4+NDticmVhaztjYXNlIDE6cD0xMTE0ODEsbD0oMHxhW2M+PjJdKT4+PjQ7YnJlYWs7Y2FzZSAyOnA9MTExNDUwLGw9KDB8YVtjPj4yXSk+Pj40O2JyZWFrO2RlZmF1bHQ6cD0wLGw9MH11byhmLHAp''@;'; + put 'put ''LGFbdz4+Ml09bCxvbyhBLDk5OTMzLHcpLHVvKGYsQSksKGw9MHxhWyhwPWYrNHwwKT4+Ml0pPj4+MD49KDB8YVtmKzg+PjJdKT4+PjAmJihRMChmLDEpLGw9MHxhW3A+PjJdKSxmZVtsPj4wXT0wLGFbcD4+Ml09bD0wfGFbZj4+Ml19cmV0dXJuIGFlPWIsMHxsfWZ1bmN0aW9uIFMyKGwsYyl7''@;'; + put 'put ''Y3w9MDt2YXIgbSxBLHcsZj0wLHA9MDt3PWFlLGFlPWFlKzE0NHwwLEE9dyxtPXcrOHwwLCgwfChmPTB8YVsxNjArKGx8PTApPj4yXSkpPjEmJjY0JmFbbCsxNTI+PjJdfDAmJih1byhjLDB8YVsoMHxhWzMwOCsoMHxhW2w+PjJdKT4+Ml0pKyhmPDwyKT4+Ml0pLChmPTB8YVsocD1jKzR8MCk+''@;'; + put 'put ''PjJdKT4+PjA+PSgwfGFbYys4Pj4yXSk+Pj4wJiYoUTAoYywxKSxmPTB8YVtwPj4yXSksYVtwPj4yXT1mKzEsZmVbZj4+MF09OTUpLCgwfChwPTB8YVtsKzE5Nj4+Ml0pKT4wfCgwfChmPTB8YVtsKzIwMD4+Ml0pKT4wJiYoYVtBPj4yXT1wLGFbQSs0Pj4yXT1mLG9vKG0sOTk5MzcsQSksdW8o''@;'; + put 'put ''YyxtKSksYWU9d31mdW5jdGlvbiBoVyhsLGMsZil7Y3w9MDt2YXIgRCxSLEcsSyxwZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7aWYocGU9YWUsYWU9YWUrNDh8MCxSPXBlKzE2fDAsRz1wZSxLPStfWzE1MisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4zXSwoKEQ9MHxzNyhmfD0wLDAsbT1w''@;'; + put 'put ''ZSszMnwwKSktMXwwKT4+PjA+PTIpe2ZvcihfW0c+PjNdPWI9LjUqKChwPStfW2MrMTY+PjNdKSsgK19bYz4+M10pLF9bRys4Pj4zXT1rPS41KigoQT0rX1tjKzI0Pj4zXSkrICtfW2MrOD4+M10pLGI9cC1iLGs9QS1rLChNPUs+LjUpJiZ4aChsLC41KSxBPTAsbT0wfGFbOCsodz0wfGFbbT4+''@;'; + put 'put ''Ml0pPj4yXTtmPTB8YVttPj4yXTspMD09K2puWyhjPW0rNHwwKT4+Ml0/cD1BOihobChsLGYpLHA9MHxhW20rMTI+PjJdPzYuMjgzMTg1MzA3MTc5NTg2KitqbltjPj4yXStBOjYuMjgzMTg1MzA3MTc5NTg2LGFbUj4+Ml09YVtHPj4yXSxhW1IrND4+Ml09YVtHKzQ+PjJdLGFbUis4Pj4yXT1h''@;'; + put 'put ''W0crOD4+Ml0sYVtSKzEyPj4yXT1hW0crMTI+PjJdLGM9MHxhRShSLGIsayxBLHApLFFmKGwsMHxhW2M+PjJdLDB8YVtjKzQ+PjJdLDAsMCwxKSxjXyhjKSksQT1wLG09bSsxMnwwO00mJnhoKGwsSyksRkEodyl9cmV0dXJuIGFlPXBlLDB8RH1mdW5jdGlvbiBzNyhsLGMsZil7bHw9MCxjfD0w''@;'; + put 'put ''LGZ8PTA7dmFyIE0sUixHLEsscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wO0s9YWUsYWU9YWUrMTZ8MCxEPUsrOHwwLE09SyxHPTB8dnIoMTIpLEE9MHxyYShsKTtlOmRve2lmKCFjKWZvcihjPTEscD1BOzspe3N3aXRjaCgwfGZlW3A+PjBdKXtjYXNlIDA6YnJlYWsgZTtjYXNlIDU4OmM9''@;'; + put 'put ''YysxfDB9cD1wKzF8MH19d2hpbGUoMCk7Zm9yKGFbRys0Pj4yXT1BLFI9MHx2cigxMisoMTIqY3wwKXwwKSxhW0crOD4+Ml09UixrPTEsbT0wLGM9MCxwPUE7Oyl7aWYoIShwPTB8bDkocCwxMDc5ODQpKSl7cD0yMDticmVha31pZighKCh3PStPVChwKSk+PTApKXtwPTE3O2JyZWFrfWlmKChi''@;'; + put 'put ''PXctayk+MCYmKDA9PSgwfGFbNTE1Nl0pfHxiPDFlLTUmYj4tMWUtNT93PWs6KGFbTT4+Ml09bCwkcigwLDk5OTQ4LE0pLGFbNTE1Nl09MCx3PWssYz0zKSksYj1rLXcsdz4wJiYoZmVbUisoMTIqbXwwKSs4Pj4wXT0xKSwwfGZlW3A+PjBdJiYoYVtSKygxMiptfDApPj4yXT1wKSxwPW0rMXww''@;'; + put 'put ''LGpuW1IrKDEyKm18MCkrND4+Ml09dyxiPDFlLTUmYj4tMWUtNSl7bT1wLHA9MzA7YnJlYWt9az1iLG09cCxwPTB9ZTpkb3tpZigxNz09KDB8cCkpMHxhWzUxNTZdPyhhW0Q+PjJdPWwsJHIoMSw5OTk4MyxEKSxhWzUxNTZdPTAsYz0yKTpjPTEsRkEoRyk7ZWxzZSBpZigyMD09KDB8cCkpaWYo''@;'; + put 'put ''az4wKXtmb3IocD0wLEE9MDshKCgwfHApPj0oMHxtKSk7KUQ9QSsoMD09K2puW1IrKDEyKnB8MCkrND4+Ml0mMSl8MCxwPXArMXwwLEE9RDtpZigoMHxBKTw9MCl7am5bKHA9UisoMTIqKG0rLTF8MCl8MCkrNHwwKT4+Ml09aysgK2puW3A+PjJdLHA9MzA7YnJlYWt9Zm9yKHc9ay8rKDB8QSks''@;'; + put 'put ''cD0wOzspe2lmKCgwfHApPj0oMHxtKSl7cD0zMDticmVhayBlfTA9PStqblsoQT1SKygxMipwfDApKzR8MCk+PjJdJiYoam5bQT4+Ml09dykscD1wKzF8MH19ZWxzZSBwPTMwfXdoaWxlKDApO2lmKDMwPT0oMHxwKSl7Zm9yKDtwPW0rLTF8MCwhKCgwfG0pPD0wfHwram5bUisoMTIqcHwwKSs0''@;'; + put 'put ''Pj4yXT4wKTspbT1wO2FbUisoMTIqbXwwKT4+Ml09MCxhW0c+PjJdPW0sYVtmPj4yXT1HfXJldHVybiBhZT1LLDB8Y31mdW5jdGlvbiBGQShsKXtGdCgwfGFbNCsobHw9MCk+PjJdKSxGdCgwfGFbbCs4Pj4yXSksRnQobCl9ZnVuY3Rpb24gT1QobCl7dmFyIGYscCxjPTAsbT0wO3JldHVybiBw''@;'; + put 'put ''PWFlLGFlPWFlKzE2fDAsZj1wLChsPTB8JHMobHw9MCw1OSkpPyhtPWwrMXwwLGZlW2w+PjBdPTAsYz0oYz0raTMobSxmKSk+PTAmJigwfGFbZj4+Ml0pIT0oMHxtKT9jOi0xKTpjPTAsYWU9cCwrY31mdW5jdGlvbiBoRihsLGMsZixwKXtjfD0wLHB8PTA7dmFyIEcsSyxwZSxnZSxtPTAsQT0w''@;'; + put 'put ''LHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO2lmKGdlPWFlLGFlPWFlKzgwfDAsSz1nZSxwZT0rX1sxNTIrKDB8YVsxNisobHw9MCk+PjJdKT4+M10sKChHPTB8czcoZnw9MCwwLEE9Z2UrNjR8MCkpLTF8MCk+Pj4wPj0yKXtmb3IocD8oYVtLPj4yXT1hWyhSPWMrMzJ8MCk+PjJdLGFbSys0Pj4y''@;'; + put 'put ''XT1hW1IrND4+Ml0sYVtLKzg+PjJdPWFbUis4Pj4yXSxhW0srMTI+PjJdPWFbUisxMj4+Ml0sYVsoUj1LKzE2fDApPj4yXT1hWyhEPWMrNDh8MCk+PjJdLGFbUis0Pj4yXT1hW0QrND4+Ml0sYVtSKzg+PjJdPWFbRCs4Pj4yXSxhW1IrMTI+PjJdPWFbRCsxMj4+Ml0sYVsoUj1LKzMyfDApPj4y''@;'; + put 'put ''XT1hW2M+PjJdLGFbUis0Pj4yXT1hW2MrND4+Ml0sYVtSKzg+PjJdPWFbYys4Pj4yXSxhW1IrMTI+PjJdPWFbYysxMj4+Ml0sYVsoUj1LKzQ4fDApPj4yXT1hWyhEPWMrMTZ8MCk+PjJdLGFbUis0Pj4yXT1hW0QrND4+Ml0sYVtSKzg+PjJdPWFbRCs4Pj4yXSxhW1IrMTI+PjJdPWFbRCsxMj4+''@;'; + put 'put ''Ml0pOihhW0s+PjJdPWFbYz4+Ml0sYVtLKzQ+PjJdPWFbYys0Pj4yXSxhW0srOD4+Ml09YVtjKzg+PjJdLGFbSysxMj4+Ml09YVtjKzEyPj4yXSxhWyhSPUsrMTZ8MCk+PjJdPWFbKEQ9YysxNnwwKT4+Ml0sYVtSKzQ+PjJdPWFbRCs0Pj4yXSxhW1IrOD4+Ml09YVtEKzg+PjJdLGFbUisxMj4+''@;'; + put 'put ''Ml09YVtEKzEyPj4yXSxhWyhSPUsrMzJ8MCk+PjJdPWFbKEQ9YyszMnwwKT4+Ml0sYVtSKzQ+PjJdPWFbRCs0Pj4yXSxhW1IrOD4+Ml09YVtEKzg+PjJdLGFbUisxMj4+Ml09YVtEKzEyPj4yXSxhWyhSPUsrNDh8MCk+PjJdPWFbKEQ9Yys0OHwwKT4+Ml0sYVtSKzQ+PjJdPWFbRCs0Pj4yXSxh''@;'; + put 'put ''W1IrOD4+Ml09YVtEKzg+PjJdLGFbUisxMj4+Ml09YVtEKzEyPj4yXSksTT0oaz0rX1soYj1LKzE2fDApPj4zXSktKG09K19bSz4+M10pLF9bKEQ9SyszMnwwKT4+M109bSxfW2I+PjNdPW0sKFI9cGU+LjUpJiZ4aChsLC41KSx3PUsrNDh8MCxwPTB8YVs4KyhBPTB8YVtBPj4yXSk+PjJdO2Y9''@;'; + put 'put ''MHxhW3A+PjJdOykwIT0ram5bKGM9cCs0fDApPj4yXSYmKGhsKGwsZiksX1tEPj4zXT1tPTB8YVtwKzEyPj4yXT9NKitqbltjPj4yXSsgK19bSz4+M106ayxfW2I+PjNdPW0sa2EobCxLLDQsMSksX1t3Pj4zXT1tPStfW2I+PjNdLF9bSz4+M109bSkscD1wKzEyfDA7UiYmeGgobCxwZSksRkEo''@;'; + put 'put ''QSl9cmV0dXJuIGFlPWdlLDB8R31mdW5jdGlvbiBMQyhsLGMpe2N8PTA7dmFyIHAsZj0wLG09MCxBPTAsdz0wO2Y9MHxhWzE2KyhsfD0wKT4+Ml0sNDI1OTg0MCYocD0wfGFbbCsxNTI+PjJdKXwwJiYoYVtmKzI2ND4+Ml09QT0obT0xMzEwNzImcCk+Pj4xNl4yLGFbKHc9ZisyNjh8MCk+PjJd''@;'; + put 'put ''PUErMixGdCgwfGFbKEE9ZisyNzJ8MCk+PjJdKSxmPTB8dnIoYVt3Pj4yXTw8NCksYVtBPj4yXT1mLGFbZj4+Ml09YVtjPj4yXSxhW2YrND4+Ml09YVtjKzQ+PjJdLGFbZis4Pj4yXT1hW2MrOD4+Ml0sYVtmKzEyPj4yXT1hW2MrMTI+PjJdLGFbKEE9ZisxNnwwKT4+Ml09YVsoYz1jKzE2fDAp''@;'; + put 'put ''Pj4yXSxhW0ErND4+Ml09YVtjKzQ+PjJdLGFbQSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2MrMTI+PjJdLDgxOTImcHx8TWgobCxmLGYsMiksbXx8VkkoZikpfWZ1bmN0aW9uIEhBKGwsYyl7dmFyIEQsRyxwZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MCxLPTA7''@;'; + put 'put ''cGU9YWUsYWU9YWUrMTQ0fDAsZj1wZSs4MHwwLG09cGUrMTZ8MCxBPXBlLCEoKE09K19bKGN8PTApPj4zXSk+KEQ9K19bKEc9MTYrKGx8PTApfDApPj4zXSkpJiYhKE08KFI9K19bbD4+M10pKSYmISgocD0rX1tjKzg+PjNdKT4oYj0rX1tsKzI0Pj4zXSkpJiYhKHA8KGs9K19bbCs4Pj4zXSkp''@;'; + put 'put ''JiYhKChNPStfW2MrMTY+PjNdKT5EfE08UikmJiEoKE09K19bYysyND4+M10pPmJ8TTxrKSYmISgoTT0rX1tjKzMyPj4zXSk+RHxNPFIpJiYhKChNPStfW2MrNDA+PjNdKT5ifE08aykmJiEoKE09K19bYys0OD4+M10pPkR8TTxSKSYmISgoUj0rX1tjKzU2Pj4zXSk+YnxSPGspfHwoSz0xMSk7''@;'; + put 'put ''ZTpkb3tpZigxMT09KDB8Sykpe2lmKCEoMHxPQyhjKSkpe3d1KEEsYywzLC41LGYsbSksSEEobCxmKSxIQShsLG0pO2JyZWFrfWZvcihBPWwrMjR8MCx3PWwrOHwwLG09MDs7KXtpZig0PT0oMHxtKSlicmVhayBlOyhwPStfW2MrKG08PDQpPj4zXSk+K19bRz4+M10/KGY9RyxLPTE2KTpwPCtf''@;'; + put 'put ''W2w+PjNdJiYoZj1sLEs9MTYpLDE2PT0oMHxLKSYmKEs9MCxfW2Y+PjNdPXApLChwPStfW2MrKG08PDQpKzg+PjNdKT4rX1tBPj4zXT8oZj1HLEs9MTkpOnA8K19bdz4+M10mJihmPWwsSz0xOSksMTk9PSgwfEspJiYoSz0wLF9bZis4Pj4zXT1wKSxtPW0rMXwwfX19d2hpbGUoMCk7YWU9cGV9''@;'; + put 'put ''ZnVuY3Rpb24gT0MobCl7dmFyIGMsZixwLG0sQSxiLHc9MDtyZXR1cm4gYz1hZSxhZT1hZSs0OHwwLGY9YyszMnwwLHA9YysxNnwwLGI9NDgrKGx8PTApfDAsdz1sKzE2fDAsYVsobT1jKT4+Ml09YVtsPj4yXSxhW20rND4+Ml09YVtsKzQ+PjJdLGFbbSs4Pj4yXT1hW2wrOD4+Ml0sYVttKzEy''@;'; + put 'put ''Pj4yXT1hW2wrMTI+PjJdLGFbcD4+Ml09YVtiPj4yXSxhW3ArND4+Ml09YVtiKzQ+PjJdLGFbcCs4Pj4yXT1hW2IrOD4+Ml0sYVtwKzEyPj4yXT1hW2IrMTI+PjJdLGFbZj4+Ml09YVt3Pj4yXSxhW2YrND4+Ml09YVt3KzQ+PjJdLGFbZis4Pj4yXT1hW3crOD4+Ml0sYVtmKzEyPj4yXT1hW3cr''@;'; + put 'put ''MTI+PjJdLEE9K29RKG0scCxmKSx3PWwrMzJ8MCxhW20+PjJdPWFbbD4+Ml0sYVttKzQ+PjJdPWFbbCs0Pj4yXSxhW20rOD4+Ml09YVtsKzg+PjJdLGFbbSsxMj4+Ml09YVtsKzEyPj4yXSxhW3A+PjJdPWFbYj4+Ml0sYVtwKzQ+PjJdPWFbYis0Pj4yXSxhW3ArOD4+Ml09YVtiKzg+PjJdLGFb''@;'; + put 'put ''cCsxMj4+Ml09YVtiKzEyPj4yXSxhW2Y+PjJdPWFbdz4+Ml0sYVtmKzQ+PjJdPWFbdys0Pj4yXSxhW2YrOD4+Ml09YVt3Kzg+PjJdLGFbZisxMj4+Ml09YVt3KzEyPj4yXSxsPUE8NCYrb1EobSxwLGYpPDQmMSxhZT1jLDB8bH1mdW5jdGlvbiBkRihsLGMpe2x8PTA7dmFyIHBlLGJlLE9lLExl''@;'; + put 'put ''LFJlLEhlLFZlLHFlLG50LFdlLG90LGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLGdlPTAsU3Q9MCxrdD0wLGx0PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MDtpZihvdD1hZSxhZT1hZSsyNzJ8MCxiZT1vdCsyNTZ8MCxPZT1vdCsyMjR8MCxMZT1vdCsxOTJ8''@;'; + put 'put ''MCxIZT1vdCs2NHwwLFZlPW90LHFlPW90KzE2MHwwLG50PW90Kzk2fDAsV2U9b3QrMzJ8MCxwZT0wfGFbMTQ0KyhnZT0wfGFbMTYrKGN8PTApPj4yXSk+PjJdLGFbKFJlPW90KzEyOHwwKT4+Ml09YVsoSz1nZSsxNnwwKT4+Ml0sYVtSZSs0Pj4yXT1hW0srND4+Ml0sYVtSZSs4Pj4yXT1hW0sr''@;'; + put 'put ''OD4+Ml0sYVtSZSsxMj4+Ml09YVtLKzEyPj4yXSxhW1JlKzE2Pj4yXT1hW0srMTY+PjJdLGFbUmUrMjA+PjJdPWFbSysyMD4+Ml0sYVtSZSsyND4+Ml09YVtLKzI0Pj4yXSxhW1JlKzI4Pj4yXT1hW0srMjg+PjJdLGdlPTB8YVs4OCsoMHxhW2dlKzg+PjJdKT4+Ml0sYVtWZT4+Ml09MCxhW1Zl''@;'; + put 'put ''KzQ+PjJdPTAsYVtWZSs4Pj4yXT0wLGFbVmUrMTI+PjJdPTAsYVtWZSsxNj4+Ml09MCxhW1ZlKzIwPj4yXT0wLGFbVmUrMjQ+PjJdPTAsYVtWZSsyOD4+Ml09MCxnZSl7Zm9yKCtfW1JlPj4zXT09K19bKGM9UmUrMTZ8MCk+PjNdJiYrX1soZj1SZSs4fDApPj4zXT09K19bKHA9UmUrMjR8MCk+''@;'; + put 'put ''PjNdJiYoX1tmPj4zXT0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsX1tSZT4+M109MTc5NzY5MzEzNDg2MjMxNTdlMjkyLF9bcD4+M109LTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixfW2M+PjNdPS0xNzk3NjkzMTM0ODYyMzE1N2UyOTIpLHc9T2UrOHwwLGI9T2UrMTZ8MCxrPU9lKzI0fDAsTT1IZSsx''@;'; + put 'put ''NnwwLEQ9SGUrMjR8MCxSPXBlKzE0NHwwLEc9TGUrMTZ8MCxLPWdlKzEyfDAsYz0wLHA9MHxhW2dlKzg+PjJdLGY9MCxtPTAsQT0wOyEoKDB8QSk+PSgwfGFbZ2U+PjJdKSk7KXtzd2l0Y2goYVtIZT4+Ml09YVtWZT4+Ml0sYVtIZSs0Pj4yXT1hW1ZlKzQ+PjJdLGFbSGUrOD4+Ml09YVtWZSs4''@;'; + put 'put ''Pj4yXSxhW0hlKzEyPj4yXT1hW1ZlKzEyPj4yXSxhW0hlKzE2Pj4yXT1hW1ZlKzE2Pj4yXSxhW0hlKzIwPj4yXT1hW1ZlKzIwPj4yXSxhW0hlKzI0Pj4yXT1hW1ZlKzI0Pj4yXSxhW0hlKzI4Pj4yXT1hW1ZlKzI4Pj4yXSwwfGFbcD4+Ml0pe2Nhc2UgMTpjYXNlIDA6X1tPZT4+M109KEV0PStf''@;'; + put 'put ''W3ArOD4+M10pLShadD0rX1twKzI0Pj4zXSksX1t3Pj4zXT0oa3Q9K19bcCsxNj4+M10pLShsdD0rX1twKzMyPj4zXSksX1tiPj4zXT1adCtFdCxfW2s+PjNdPWx0K2t0LGFbKFN0PXArODB8MCk+PjJdPWFbT2U+PjJdLGFbU3QrND4+Ml09YVtPZSs0Pj4yXSxhW1N0Kzg+PjJdPWFbT2UrOD4+''@;'; + put 'put ''Ml0sYVtTdCsxMj4+Ml09YVtPZSsxMj4+Ml0sYVsoU3Q9cCs5NnwwKT4+Ml09YVtiPj4yXSxhW1N0KzQ+PjJdPWFbYis0Pj4yXSxhW1N0Kzg+PjJdPWFbYis4Pj4yXSxhW1N0KzEyPj4yXT1hW2IrMTI+PjJdLGFbYmU+PjJdPWFbT2U+PjJdLGFbYmUrND4+Ml09YVtPZSs0Pj4yXSxhW2JlKzg+''@;'; + put 'put ''PjJdPWFbT2UrOD4+Ml0sYVtiZSsxMj4+Ml09YVtPZSsxMj4+Ml0sTkEoUmUsYmUpLGFbYmU+PjJdPWFbYj4+Ml0sYVtiZSs0Pj4yXT1hW2IrND4+Ml0sYVtiZSs4Pj4yXT1hW2IrOD4+Ml0sYVtiZSsxMj4+Ml09YVtiKzEyPj4yXSxOQShSZSxiZSk7YnJlYWs7Y2FzZSAzOmNhc2UgMjpTdD1w''@;'; + put 'put ''KzgwfDAsUlQocWUsMHxhWzQrKGN0PXArOHwwKT4+Ml0sMHxhW2N0Pj4yXSxSZSksYVtTdD4+Ml09YVtxZT4+Ml0sYVtTdCs0Pj4yXT1hW3FlKzQ+PjJdLGFbU3QrOD4+Ml09YVtxZSs4Pj4yXSxhW1N0KzEyPj4yXT1hW3FlKzEyPj4yXSxhW1N0KzE2Pj4yXT1hW3FlKzE2Pj4yXSxhW1N0KzIw''@;'; + put 'put ''Pj4yXT1hW3FlKzIwPj4yXSxhW1N0KzI0Pj4yXT1hW3FlKzI0Pj4yXSxhW1N0KzI4Pj4yXT1hW3FlKzI4Pj4yXTticmVhaztjYXNlIDU6Y2FzZSA0OmN0PXArODB8MCxSVChudCwwfGFbNCsoU3Q9cCs4fDApPj4yXSwwfGFbU3Q+PjJdLFJlKSxhW2N0Pj4yXT1hW250Pj4yXSxhW2N0KzQ+PjJd''@;'; + put 'put ''PWFbbnQrND4+Ml0sYVtjdCs4Pj4yXT1hW250Kzg+PjJdLGFbY3QrMTI+PjJdPWFbbnQrMTI+PjJdLGFbY3QrMTY+PjJdPWFbbnQrMTY+PjJdLGFbY3QrMjA+PjJdPWFbbnQrMjA+PjJdLGFbY3QrMjQ+PjJdPWFbbnQrMjQ+PjJdLGFbY3QrMjg+PjJdPWFbbnQrMjg+PjJdO2JyZWFrO2Nhc2Ug''@;'; + put 'put ''NjpjdD1wKzgwfDAsUlQoV2UsMHxhWzQrKFN0PXArOHwwKT4+Ml0sMHxhW1N0Pj4yXSxSZSksYVtjdD4+Ml09YVtXZT4+Ml0sYVtjdCs0Pj4yXT1hW1dlKzQ+PjJdLGFbY3QrOD4+Ml09YVtXZSs4Pj4yXSxhW2N0KzEyPj4yXT1hW1dlKzEyPj4yXSxhW2N0KzE2Pj4yXT1hW1dlKzE2Pj4yXSxh''@;'; + put 'put ''W2N0KzIwPj4yXT1hW1dlKzIwPj4yXSxhW2N0KzI0Pj4yXT1hW1dlKzI0Pj4yXSxhW2N0KzI4Pj4yXT1hW1dlKzI4Pj4yXTticmVhaztjYXNlIDc6YVsoY3Q9cCsxMTJ8MCk+PjJdPTB8dnIoNTYpLFN0PTB8cmEoMHxhW3ArNDA+PjJdKSxhWyhidD0wfGFbY3Q+PjJdKT4+Ml09U3QsZmVbYnQr''@;'; + put 'put ''NDg+PjBdPTB8ZmVbMTAwMDI5KygwfGFbcCsyND4+Ml0pPj4wXSxhW0hlPj4yXT1mLF9bTT4+M109bSxhW0Q+PjJdPS0xMjgmYVtEPj4yXXwxMjcmYyxidD0wfG1pWzYzJmFbKGJ0PTB8YVtSPj4yXSk+PjJdXShidCxIZSwxKSxhWzQrKFN0PTB8YVtjdD4+Ml0pPj4yXT1idCxlRChiZSxwZSxT''@;'; + put 'put ''dCksanJlKExlLCtfW3ArOD4+M10sK19bcCsxNj4+M10sMHxhW2N0Pj4yXSksYVsoY3Q9cCs4MHwwKT4+Ml09YVtMZT4+Ml0sYVtjdCs0Pj4yXT1hW0xlKzQ+PjJdLGFbY3QrOD4+Ml09YVtMZSs4Pj4yXSxhW2N0KzEyPj4yXT1hW0xlKzEyPj4yXSxhW2N0KzE2Pj4yXT1hW0xlKzE2Pj4yXSxh''@;'; + put 'put ''W2N0KzIwPj4yXT1hW0xlKzIwPj4yXSxhW2N0KzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW2N0KzI4Pj4yXT1hW0xlKzI4Pj4yXSxhW2JlPj4yXT1hW0xlPj4yXSxhW2JlKzQ+PjJdPWFbTGUrND4+Ml0sYVtiZSs4Pj4yXT1hW0xlKzg+PjJdLGFbYmUrMTI+PjJdPWFbTGUrMTI+PjJdLE5BKFJlLGJl''@;'; + put 'put ''KSxhW2JlPj4yXT1hW0c+PjJdLGFbYmUrND4+Ml09YVtHKzQ+PjJdLGFbYmUrOD4+Ml09YVtHKzg+PjJdLGFbYmUrMTI+PjJdPWFbRysxMj4+Ml0sTkEoUmUsYmUpLDB8YVtLPj4yXXx8KGFbSz4+Ml09MTA5KTticmVhaztjYXNlIDEwOmY9MHxhW3ArMTY+PjJdLG09K19bcCs4Pj4zXTticmVh''@;'; + put 'put ''aztjYXNlIDE1OmM9MHxhW3ArOD4+Ml19cD1wKzEyMHwwLEE9QSsxfDB9YVtsPj4yXT1hW1JlPj4yXSxhW2wrND4+Ml09YVtSZSs0Pj4yXSxhW2wrOD4+Ml09YVtSZSs4Pj4yXSxhW2wrMTI+PjJdPWFbUmUrMTI+PjJdLGFbbCsxNj4+Ml09YVtSZSsxNj4+Ml0sYVtsKzIwPj4yXT1hW1JlKzIw''@;'; + put 'put ''Pj4yXSxhW2wrMjQ+PjJdPWFbUmUrMjQ+PjJdLGFbbCsyOD4+Ml09YVtSZSsyOD4+Ml19ZWxzZSBhW2w+PjJdPWFbUmU+PjJdLGFbbCs0Pj4yXT1hW1JlKzQ+PjJdLGFbbCs4Pj4yXT1hW1JlKzg+PjJdLGFbbCsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtsKzE2Pj4yXT1hW1JlKzE2Pj4yXSxhW2wr''@;'; + put 'put ''MjA+PjJdPWFbUmUrMjA+PjJdLGFbbCsyND4+Ml09YVtSZSsyND4+Ml0sYVtsKzI4Pj4yXT1hW1JlKzI4Pj4yXTthZT1vdH1mdW5jdGlvbiBOQShsLGMpe3ZhciBwLGY9MDsoZj0rX1soY3w9MCk+PjNdKT4rX1socD0xNisobHw9MCl8MCk+PjNdJiYoX1twPj4zXT1mKSxmPCtfW2w+PjNdJiYo''@;'; + put 'put ''X1tsPj4zXT1mKSwoZj0rX1tjKzg+PjNdKT4rX1soYz1sKzI0fDApPj4zXSYmKF9bYz4+M109ZiksZjwrX1soYz1sKzh8MCk+PjNdJiYoX1tjPj4zXT1mKX1mdW5jdGlvbiBSVChsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgayxNLEQsUixHLHBlLG09MCxBPTAsdz0wLGI9MCxLPTA7Zm9y''@;'; + put 'put ''KHBlPWFlLGFlPWFlKzQ4fDAsaz1wZSszMnwwLF9bKFI9KEQ9cGUpKzE2fDApPj4zXT1tPStfWyhjfD0wKT4+M10sX1tEPj4zXT1tLF9bKEc9RCsyNHwwKT4+M109bT0rX1tjKzg+PjNdLF9bKE09RCs4fDApPj4zXT1tLGI9MTshKCgwfGIpPj0oMHxmKSk7KShtPStfWyh3PWMrMjR8MCk+PjNd''@;'; + put 'put ''KTwrX1tEPj4zXT8oQT1ELEs9NSk6bT4rX1tSPj4zXSYmKEE9UixLPTUpLDU9PSgwfEspJiYoSz0wLF9bQT4+M109bSksKG09K19bYyszMj4+M10pPCtfW00+PjNdPyhjPUQsSz04KTptPitfW0c+PjNdJiYoYz1SLEs9OCksOD09KDB8SykmJihLPTAsX1tjKzg+PjNdPW0pLGI9YisxfDAsYz13''@;'; + put 'put ''O2Fbaz4+Ml09YVtEPj4yXSxhW2srND4+Ml09YVtEKzQ+PjJdLGFbays4Pj4yXT1hW0QrOD4+Ml0sYVtrKzEyPj4yXT1hW0QrMTI+PjJdLE5BKHAsayksYVtrPj4yXT1hW1I+PjJdLGFbays0Pj4yXT1hW1IrND4+Ml0sYVtrKzg+PjJdPWFbUis4Pj4yXSxhW2srMTI+PjJdPWFbUisxMj4+Ml0s''@;'; + put 'put ''TkEocCxrKSxhW2w+PjJdPWFbRD4+Ml0sYVtsKzQ+PjJdPWFbRCs0Pj4yXSxhW2wrOD4+Ml09YVtEKzg+PjJdLGFbbCsxMj4+Ml09YVtEKzEyPj4yXSxhW2wrMTY+PjJdPWFbRCsxNj4+Ml0sYVtsKzIwPj4yXT1hW0QrMjA+PjJdLGFbbCsyND4+Ml09YVtEKzI0Pj4yXSxhW2wrMjg+PjJdPWFb''@;'; + put 'put ''RCsyOD4+Ml0sYWU9cGV9ZnVuY3Rpb24ganJlKGwsYyxmLHApe2x8PTAsYz0rYyxmPStmO3ZhciB3LGIsayxELG09MCxBPTAsTT0wO3N3aXRjaChEPWFlLGFlPWFlKzE2fDAsdz1EKzh8MCxiPUQsbT0rX1szMisocHw9MCk+PjNdLGs9K19bcCs0MD4+M10sMHxmZVtwKzQ4Pj4wXSl7Y2FzZSAx''@;'; + put 'put ''MDg6X1t3Pj4zXT1jLG0rPWMsQT1iLE09NTticmVhaztjYXNlIDExMDpfW3c+PjNdPWMtKG0qPS41KSxtKz1jLEE9YixNPTU7YnJlYWs7Y2FzZSAxMTQ6X1tiPj4zXT1jLG09Yy1tLEE9dyxNPTU7YnJlYWs7ZGVmYXVsdDpjPTAsbT0wfTU9PSgwfE0pJiYoX1tBPj4zXT1tLGM9K19bdz4+M10s''@;'; + put 'put ''bT0rX1tiPj4zXSksZj0rX1twKzE2Pj4zXStmLF9bbD4+M109YyxfW2wrOD4+M109Zi1rLF9bbCsxNj4+M109bSxfW2wrMjQ+PjNdPWYsYWU9RH1mdW5jdGlvbiBkVyhsLGMpe2N8PTA7dmFyIHAsdyxiLGssZj0wLG09MCxBPTAsTT0wO2ZvcihrPWFlLGFlPWFlKzE2fDAsYj1rLHc9MHxhWzE1''@;'; + put 'put ''MisobHw9MCk+PjJdLF9bbCs0ODg+PjNdPXA9KEE9LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tsKzM1Mj4+M10pKihNPStfW2wrNDMyPj4zXSksX1tsKzQ5Nj4+M109QSo9bT0rX1tsKzQ0MD4+M10sX1tsKzUyMD4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCpNLF9bKGY9bCs1Mjh8MCk+PjNdPS4w''@;'; + put 'put ''MTM4ODg4ODg4ODg4ODg4ODgqbSw0MDk2Jnd8MCYmKF9bZj4+M109LS4wMTM4ODg4ODg4ODg4ODg4ODgqbSksTT0rKCgwfGFbbCs0NDg+PjJdKT4+PjApLG09KygoMHxhW2wrNDUyPj4yXSk+Pj4wKSxfW2wrMzY4Pj4zXT0oKGY9MD09KDB8YVtsKzM2MD4+Ml0pKT9NOm0pL3AsX1tsKzM3Nj4+''@;'; + put 'put ''M109KGY/bTpNKS9BLGRtKGwsMHx2MihjLDB8c2koYywwLDEwMTUyMiwwKSwxOTUwNTkpKSxhW2wrMTYwPj4yXT0wLGZ1bmN0aW9uIHpyZShsLGMpe2N8PTA7dmFyIGY7Zj0wfHhmKGx8PTApLGFbZis0Pj4yXT0wLGFbZis4Pj4yXT1jLGFbZisxMj4+Ml09MCxJSChsLDB8YVsxMisoMHxhW2Mr''@;'; + put 'put ''MTY+PjJdKT4+Ml0sYyksZnVuY3Rpb24gYlIobCxjKXtjfD0wO3ZhciBmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrOD4+Ml0pJiZDb1sxMjcmZl0obCl9KGwsYyl9KGwsYyksMiZ3fDAmJmZ1bmN0aW9uIHBXKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wO2Zv''@;'; + put 'put ''cihobChsfD0wLDEzNDgwMCksMHwoZj0wfExpKGMsMTQwOTc3KSkmJjB8ZmVbZj4+MF0mJmhsKGwsZiksMHwoZj0wfExpKGMsMTAxNDQ2KSkmJjB8ZmVbZj4+MF0mJm1hKGwsZiksSW9lKGwsYyksQT0wfER0KGMpO0E7KXswfChmPTB8TGkoQSwxNDA4MjMpKSYmMHxmZVtmPj4wXSYmbWEobCxm''@;'; + put 'put ''KSwwfChmPTB8TGkoQSwxMzc3MjkpKSYmMHxmZVtmPj4wXSYmaGwobCxmKSxmPTB8TGkoQSwxMDE0MTgpO2Rve2lmKDB8ZiYmMHxmZVtmPj4wXSl7aWYoISgwfCRzKGYsNTgpKSl7bWEobCxmKTticmVha31mb3IoZj1wPTB8cmEoZik7Zj0wfGw5KGYsMTA3OTg0KTspMHxmZVtmPj4wXT8obWEo''@;'; + put 'put ''bCxmKSxmPTApOmY9MDtGdChwKX19d2hpbGUoMCk7Zm9yKDB8KGY9MHxMaShBLDEwMTQ0NikpJiYwfGZlW2Y+PjBdJiZtYShsLGYpLG09MHx3MChjLEEpO207KXtmPTB8TGkobSwxNDA4MjMpO2Rve2lmKDB8ZiYmMHxmZVtmPj4wXSl7aWYoISgwfCRzKGYsNTgpKSl7bWEobCxmKTticmVha31m''@;'; + put 'put ''b3IoZj1wPTB8cmEoZik7Zj0wfGw5KGYsMTA3OTg0KTspMHxmZVtmPj4wXT8obWEobCxmKSxmPTApOmY9MDtGdChwKX19d2hpbGUoMCk7MHwoZj0wfExpKG0sMTAxNDQ2KSkmJjB8ZmVbZj4+MF0mJm1hKGwsZiksbT0wfFMwKGMsbSl9QT0wfHp0KGMsQSl9fShsLGMpLGY9MHxEdChjKTtmOylm''@;'; + put 'put ''ZVsxMTYrKDB8YVtmKzE2Pj4yXSk+PjBdPTAsZj0wfHp0KGMsZik7Zm9yKGZ1bmN0aW9uIEdyZShsLGMpe2N8PTA7dmFyIG0sQSxiLGY9MCxwPTAsdz0wO2I9YWUsYWU9YWUrMTZ8MCxwPWIrOHwwLEE9YixhWyhtPTE1NisobHw9MCl8MCk+PjJdPWY9MHxhWzMxMisodz0wfGFbbD4+Ml0pPj4y''@;'; + put 'put ''XSwodz0wfGFbdyszMTY+PjJdKT8oZj13KzR8MCwoMHxhW3c+PjJdKT4xJiYwPT0oNjQmYVtsKzE1Mj4+Ml18MCkmJihhW0E+PjJdPWFbbCs1Mj4+Ml0sJHIoMCwxMDA1NjcsQSksYVt3Kzg+PjJdPTErKDB8YVttPj4yXSkpLHA9MHxhW2Y+PjJdLGY9dys4fDApOigwfGYpPjEmJjA9PSg2NCZh''@;'; + put 'put ''W2wrMTUyPj4yXXwwKT8oYVtwPj4yXT1hW2wrNTI+PjJdLCRyKDAsMTAwNTY3LHApLGFbbT4+Ml09MSxwPTEsZj0wKToocD0xLGY9MCksYVtsKzE2MD4+Ml09cCxhW2M+PjJdPWYsYWU9Yn0obCxiKTsoMHxnVyhsKSk8PDI0Pj4yNDspe2ZvcigoMHxSQyhsKSk+MSYmVXoobCksQkMobCk7KDB8''@;'; + put 'put ''bVcobCkpPDwyND4+MjQ7KVdyZShsLGMpLHBGKGwpOygwfFJDKGwpKT4xJiZwYihsKSx2VyhsLGIpfShmdW5jdGlvbiBZcmUobCl7KGZ1bmN0aW9uIEdNKGwpe3ZhciBjLGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYysxMj4+Ml0pJiZDb1sxMjcmZl0obCksZnVuY3Rp''@;'; + put 'put ''b24gTkcobCl7dmFyIGMsZj0wOzB8KGM9MHxhWzc2KyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzQ+PjJdKSYmQ29bMTI3JmZdKGwpLFhQKGwpfShsKX0pKGx8PTApLERDKGwpfSkobCksYWU9a31mdW5jdGlvbiBnVyhsKXtyZXR1cm4oMHxhWzE2MCsobHw9MCk+PjJdKTw9KDB8YVtsKzE1Nj4+''@;'; + put 'put ''Ml0pfDB9ZnVuY3Rpb24gUkMobCl7dmFyIGM7cmV0dXJuIDB8YVsoMD09KDB8KGM9MHxhWzMxNisoMHxhWyhsfD0wKT4+Ml0pPj4yXSkpP2wrMTU2fDA6Yyk+PjJdfWZ1bmN0aW9uIEJDKGwpe3ZhciBjLGY7Yz0wfGFbNCsoZj0xNzIrKGx8PTApfDApPj4yXSxhWyhsPWwrMTk2fDApPj4yXT1h''@;'; + put 'put ''W2Y+PjJdLGFbbCs0Pj4yXT1jfWZ1bmN0aW9uIG1XKGwpe3ZhciBmLGM9MDtyZXR1cm4gMHwoKDB8KGY9MHxhWzE5NisobHw9MCk+PjJdKSk+LTEmJigwfGYpPCgwfGFbbCsxNjQ+PjJdKSYmKDB8KGM9MHxhW2wrMjAwPj4yXSkpPi0xPygwfGMpPCgwfGFbbCsxNjg+PjJdKSYxOjApfWZ1bmN0''@;'; + put 'put ''aW9uIFdyZShsLGMpe2N8PTA7dmFyIGIsayxNLEQsUixmPTAscD0wLG09MCxBPTAsdz0wLEc9MDtSPWFlLGFlPWFlKzE3NnwwLGI9UixmPVIrNDh8MCxrPVIrMzJ8MCxNPTB8YVsxNisobHw9MCk+PjJdLEQ9MHxhW2wrMTUyPj4yXSwoMHxhW2wrMTYwPj4yXSk8PTEmJigwfGFbbCsxOTY+PjJd''@;'; + put 'put ''KTw9MD9tPTA6KHVzKGssMTI4LGYpLG09MHxhWyhwPU0rMjEyfDApPj4yXSxTMihsLGspLHVvKGssbSksKGY9MHxhWyhBPWsrNHwwKT4+Ml0pPj4+MD49KDB8YVtrKzg+PjJdKT4+PjAmJihRMChrLDEpLGY9MHxhW0E+PjJdKSxmZVtmPj4wXT0wLGFbQT4+Ml09Zj0wfGFbaz4+Ml0sYVtwPj4y''@;'; + put 'put ''XT1mKSxEdigwfExpKGMsMTAwMDMyKSksZnVuY3Rpb24gVXJlKGwpe3ZhciBELGJlLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxPZT0wO2JlPWFlLGFlPWFlKzQ4fDAsRD1iZSszMnwwLGI9YmUrOHwwLGs9YmUrMTZ8MCxNPWJlLEs9''@;'; + put 'put ''MHxhWyhwZT0xOTYrKGx8PTApfDApPj4yXSxwZT0wfGFbcGUrND4+Ml0sYVsoRz1tPWJlKzI0fDApPj4yXT1LLGFbRys0Pj4yXT1wZSx3PTB8YVsoRz1sKzE2NHwwKT4+Ml0sRz0wfGFbRys0Pj4yXSxhWyhnZT1iKT4+Ml09dyxhW2dlKzQ+PjJdPUcsMHxhWyhnZT1sKzM2MHwwKT4+Ml0/KGFb''@;'; + put 'put ''RD4+Ml09YVttPj4yXSxhW0QrND4+Ml09YVttKzQ+PjJdLFBJKGssRCksaz0wfGFbKHBlPWspPj4yXSxwZT0wfGFbcGUrND4+Ml0sYVsoRz1tKT4+Ml09ayxhW0crND4+Ml09cGUsYVtEPj4yXT1hW2I+PjJdLGFbRCs0Pj4yXT1hW2IrND4+Ml0sUEkoTSxEKSx3PTB8YVsoRz1NKT4+Ml0sRz0w''@;'; + put 'put ''fGFbRys0Pj4yXSxhW2I+PjJdPXcsYVtiKzQ+PjJdPUcsYj1wZSk6KGs9SyxiPXBlKSxfW2wrMjg4Pj4zXT1BPShmPStfW2wrMzIwPj4zXSkqKygwfGspLStfW2wrMjQwPj4zXSxfW2wrMjk2Pj4zXT1SPShwPStfW2wrMzI4Pj4zXSkqKygwfGIpLStfW2wrMjQ4Pj4zXSxfW2wrMzA0Pj4zXT1m''@;'; + put 'put ''K0EsX1tsKzMxMj4+M109cCtSLG09bCs0NzJ8MCwwfGFbMjgrKDB8YVtsKzEyPj4yXSk+PjJdPyhhW20+PjJdPWFbKCgwfGFbbT4+Ml0pPCgwfGFbKEs9bCs0NTZ8MCk+PjJdKT9tOkspPj4yXSxhWyhwZT1sKzQ3NnwwKT4+Ml09YVsoKDB8YVtwZT4+Ml0pPCgwfGFbbCs0NjA+PjJdKT9tOksp''@;'; + put 'put ''KzQ+PjJdLGFbKHBlPWwrNDgwfDApPj4yXT1hWygoMHxhW3BlPj4yXSk+KDB8YVtsKzQ2ND4+Ml0pP206SykrOD4+Ml0sYVsocGU9bCs0ODR8MCk+PjJdPWFbKCgwfGFbcGU+PjJdKT4oMHxhW2wrNDY4Pj4yXSk/bTpLKSsxMj4+Ml0pOihhW20+PjJdPWFbKHBlPWwrNDU2fDApPj4yXSxhW20r''@;'; + put 'put ''ND4+Ml09YVtwZSs0Pj4yXSxhW20rOD4+Ml09YVtwZSs4Pj4yXSxhW20rMTI+PjJdPWFbcGUrMTI+PjJdKSxjPStfW2wrMzM2Pj4zXSwxMjgmKE09MHxhW2wrMTUyPj4yXSk/KF9bbCsyNTY+PjNdPXA9Yy0oZj0uNSorX1tsKzM2OD4+M10pLFI9KEE9K19bbCszNDQ+PjNdKS0oT2U9LjUqK19b''@;'; + put 'put ''bCszNzY+PjNdKSxmKz1jLEE9T2UrQSxjPXApOihfW2wrMjU2Pj4zXT1jPSgrKDB8ayktLjUqKygwfHcpKSpmK2MsUj1BPSgrKDB8YiktLjUqKygwfEcpKSpwKyArX1tsKzM0ND4+M10sZis9YyxBKz1wKSxfW2wrMjY0Pj4zXT1SLF9bbCsyNzI+PjNdPWYsX1tsKzI4MD4+M109QSwwfGFbZ2U+''@;'; + put 'put ''PjJdPyhtPWwrMzg0fDAsX1tsKzUxMj4+M109LUEtK19bbCszOTI+PjNdLyhwPStfW2wrMzUyPj4zXSksNDA5NiZNPyhmPS1mLGM9K19bbT4+M10vcCk6Zj0rX1ttPj4zXS9wLF9bbCs1MDQ+PjNdPWYtYyk6KF9bbCs1MDQ+PjNdPStfW2wrMzg0Pj4zXS8ocD0rX1tsKzM1Mj4+M10pLWMsNDA5''@;'; + put 'put ''NiZNPyhmPS1BLGM9K19bbCszOTI+PjNdL3ApOihmPStfW2wrMzkyPj4zXS9wLGM9UiksX1tsKzUxMj4+M109Zi1jKSxhZT1iZX0obCksZnVuY3Rpb24gWXoobCl7dmFyIGMsZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzI0Pj4yXSkmJkNvWzEyNyZmXShsKX0obCks''@;'; + put 'put ''bWEobCwxMzczMTQpLGhsKGwsMTM0ODAwKTtkb3tpZig0MjU5ODQwJkR8MCl7aWYoMD09KDB8YVtNKzIwOD4+Ml0pJiYwPT0oMSZydFtNKzI2MD4+MV0pKWJyZWFrOzY1NTM2MCZEPyhhW00rMjY0Pj4yXT0oQT0xMzEwNzImRCk+Pj4xNl4yLGY9MHx2cigzMisoQT4+PjEyXjMyKXwwKSxhW2Y+''@;'; + put 'put ''PjJdPWFbKHA9bCsyODh8MCk+PjJdLGFbZis0Pj4yXT1hW3ArND4+Ml0sYVtmKzg+PjJdPWFbcCs4Pj4yXSxhW2YrMTI+PjJdPWFbcCsxMj4+Ml0sYVsocD1mKzE2fDApPj4yXT1hWyhHPWwrMzA0fDApPj4yXSxhW3ArND4+Ml09YVtHKzQ+PjJdLGFbcCs4Pj4yXT1hW0crOD4+Ml0sYVtwKzEy''@;'; + put 'put ''Pj4yXT1hW0crMTI+PjJdLEE/cD0yOihWSShmKSxwPTQpKTooZj0wLHA9MCksODE5MiZEfHxNaChsLGYsZixwKSxhW00rMjcyPj4yXT1mLGFbTSsyNjg+PjJdPXB9fXdoaWxlKDApOzMyNzY4JkR8MCYmMHwodz0wfGFbMTIrKDB8YVtjKzE2Pj4yXSk+PjJdKSYmKGFbTSsxOTI+PjJdPWFbdz4+''@;'; + put 'put ''Ml0pLHA9MCE9KDQmRHwwKTtkb3tpZighcCl7aWYoMD09KDB8YVsoZj1NKzIwOHwwKT4+Ml0pJiYwPT0oMSZydFtNKzI2MD4+MV0pKWJyZWFrO2FbYj4+Ml09YVsoRz1sKzI1NnwwKT4+Ml0sYVtiKzQ+PjJdPWFbRys0Pj4yXSxhW2IrOD4+Ml09YVtHKzg+PjJdLGFbYisxMj4+Ml09YVtHKzEy''@;'; + put 'put ''Pj4yXSxhW2IrMTY+PjJdPWFbRysxNj4+Ml0sYVtiKzIwPj4yXT1hW0crMjA+PjJdLGFbYisyND4+Ml09YVtHKzI0Pj4yXSxhW2IrMjg+PjJdPWFbRysyOD4+Ml0sTEMobCxiKSxHMShsLDB8YVtmPj4yXSwwfGFbTSsyMjg+PjJdLDB8YVtNKzI0ND4+Ml0sMHxhW00rMjEyPj4yXSl9fXdoaWxl''@;'; + put 'put ''KDApOyhmdW5jdGlvbiBRcmUobCxjKXtsfD0wO3ZhciBELEcscGUsZj0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MCxLPTA7cGU9YWUsYWU9YWUrNDh8MCxHPXBlLEQ9cGUrNDB8MCxSPXBlKzM2fDAsSz1wZSszMnwwLChmPTB8TGkoY3w9MCwxNDA5NzcpKT8odz0xJihBPTA9PSgwfGZl''@;'; + put 'put ''W2Y+PjBdKSksZj1BPzEzNzE5ODpmKToodz0xLGY9MTM3MTk4KSxBPTExNj09KDB8ZmVbZj4+MF0pLDI1NiYobT0wfGFbbCsxNTI+PjJdKT9BJiYhKDB8amkoZiwxMzczNzkpKXx8KGI9ZixrPXcsTT04KTpBPyhiPShrPTA9PSgwfGppKGYsMTM3Mzc5KSkpPzEzNzE5ODpmLGs9az8xOncsTT04''@;'; + put 'put ''KTooYj1mLGs9dyxNPTgpLDg9PSgwfE0pJiYhKDAhPSgwfGspJjAhPSgzMzU1NDQzMiZtfDApKSYmKCgwfGxrKGIsRCxSKSk8PDI0Pj4yND8oYVtLPj4yXT0wLGhsKGwsQT0wfGFbRD4+Ml0pLG1hKGwsMTM3Mzc5KSxCSShjLEspLFVmKGwsKGY9MHxhW0QrND4+Ml0pfHwxMzczMTQsbT0wfGVz''@;'; + put 'put ''KGMsMHxhWzQ3MTQzXSwwLDApLCtqbltSPj4yXSksSz0oMHxhW0s+PjJdKT4+PjEmMXwyLGFbRz4+Ml09YVsoUj1sKzI1NnwwKT4+Ml0sYVtHKzQ+PjJdPWFbUis0Pj4yXSxhW0crOD4+Ml09YVtSKzg+PjJdLGFbRysxMj4+Ml09YVtSKzEyPj4yXSxhW0crMTY+PjJdPWFbUisxNj4+Ml0sYVtH''@;'; + put 'put ''KzIwPj4yXT1hW1IrMjA+PjJdLGFbRysyND4+Ml09YVtSKzI0Pj4yXSxhW0crMjg+PjJdPWFbUisyOD4+Ml0seTMobCxHLEspLEZ0KEEpKTooaGwobCxiKSxtYShsLDEzNzM3OSksYVtHPj4yXT1hWyhLPWwrMjU2fDApPj4yXSxhW0crND4+Ml09YVtLKzQ+PjJdLGFbRys4Pj4yXT1hW0srOD4+''@;'; + put 'put ''Ml0sYVtHKzEyPj4yXT1hW0srMTI+PjJdLGFbRysxNj4+Ml09YVtLKzE2Pj4yXSxhW0crMjA+PjJdPWFbSysyMD4+Ml0sYVtHKzI0Pj4yXT1hW0srMjQ+PjJdLGFbRysyOD4+Ml09YVtLKzI4Pj4yXSx5MyhsLEcsMSkpKSwwfChmPTB8YVs4OCsoMHxhWzgrKDB8YVtjKzE2Pj4yXSk+PjJdKT4+''@;'; + put 'put ''Ml0pJiZmdW5jdGlvbiBoOWUobCxjKXtsfD0wLGN8PTA7dmFyIFIscGUsZ2UsYmUsT2UsTGUsUmUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsRz0wLEs9MCxIZT0wLFZlPTAscWU9MDtmb3IoUmU9YWUsYWU9YWUrOTZ8MCxSPVJlKzQ4fDAscGU9UmUrMTZ8MCxMZT1SZSs4''@;'; + put 'put ''fDAsT2U9UmUsYVsoZ2U9UmUrODB8MCk+PjJdPTFlMyxtPTB8UW4oMTZlMyksYmU9bCsyNTZ8MCxwPTEsdz0xLEE9MCxHPTAsSz0wfGFbYys4Pj4yXTshKCgwfEcpPj0oMHxhW2M+PjJdKSk7KXtmPTB8YVtLPj4yXTtlOmRve3N3aXRjaCgwfGYpe2Nhc2UgMTpjYXNlIDA6YVtwZT4+Ml09YVso''@;'; + put 'put ''TT1LKzgwfDApPj4yXSxhW3BlKzQ+PjJdPWFbTSs0Pj4yXSxhW3BlKzg+PjJdPWFbTSs4Pj4yXSxhW3BlKzEyPj4yXT1hW00rMTI+PjJdLGFbcGUrMTY+PjJdPWFbTSsxNj4+Ml0sYVtwZSsyMD4+Ml09YVtNKzIwPj4yXSxhW3BlKzI0Pj4yXT1hW00rMjQ+PjJdLGFbcGUrMjg+PjJdPWFbTSsy''@;'; + put 'put ''OD4+Ml0sYVtSPj4yXT1hW2JlPj4yXSxhW1IrND4+Ml09YVtiZSs0Pj4yXSxhW1IrOD4+Ml09YVtiZSs4Pj4yXSxhW1IrMTI+PjJdPWFbYmUrMTI+PjJdLGFbUisxNj4+Ml09YVtiZSsxNj4+Ml0sYVtSKzIwPj4yXT1hW2JlKzIwPj4yXSxhW1IrMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbUisyOD4+''@;'; + put 'put ''Ml09YVtiZSsyOD4+Ml0sMHxteShwZSxSKSYmKF9bbT4+M109K19bKFZlPUsrOHwwKT4+M10tK19bKHFlPUsrMjR8MCk+PjNdLF9bbSs4Pj4zXT0rX1soTT1LKzE2fDApPj4zXS0rX1soSGU9SyszMnwwKT4+M10sX1ttKzE2Pj4zXT0rX1txZT4+M10rICtfW1ZlPj4zXSxfW20rMjQ+PjNdPStf''@;'; + put 'put ''W0hlPj4zXSsgK19bTT4+M10sJHUobCxtLDIsMD09KDB8Zik/dzowKSksZj13O2JyZWFrO2Nhc2UgMzpjYXNlIDI6YVtwZT4+Ml09YVsocWU9Sys4MHwwKT4+Ml0sYVtwZSs0Pj4yXT1hW3FlKzQ+PjJdLGFbcGUrOD4+Ml09YVtxZSs4Pj4yXSxhW3BlKzEyPj4yXT1hW3FlKzEyPj4yXSxhW3Bl''@;'; + put 'put ''KzE2Pj4yXT1hW3FlKzE2Pj4yXSxhW3BlKzIwPj4yXT1hW3FlKzIwPj4yXSxhW3BlKzI0Pj4yXT1hW3FlKzI0Pj4yXSxhW3BlKzI4Pj4yXT1hW3FlKzI4Pj4yXSxhW1I+PjJdPWFbYmU+PjJdLGFbUis0Pj4yXT1hW2JlKzQ+PjJdLGFbUis4Pj4yXT1hW2JlKzg+PjJdLGFbUisxMj4+Ml09YVti''@;'; + put 'put ''ZSsxMj4+Ml0sYVtSKzE2Pj4yXT1hW2JlKzE2Pj4yXSxhW1IrMjA+PjJdPWFbYmUrMjA+PjJdLGFbUisyND4+Ml09YVtiZSsyND4+Ml0sYVtSKzI4Pj4yXT1hW2JlKzI4Pj4yXSwwfG15KHBlLFIpJiZrYShsLG09MHxPSChtLGdlLDB8YVs0KyhmPUsrOHwwKT4+Ml0sMHxhW2Y+PjJdKSwwfGFb''@;'; + put 'put ''Zj4+Ml0sMj09KDB8YVtLPj4yXSk/dzowKSxmPXc7YnJlYWs7Y2FzZSA1OmNhc2UgNDphW3BlPj4yXT1hWyhxZT1LKzgwfDApPj4yXSxhW3BlKzQ+PjJdPWFbcWUrND4+Ml0sYVtwZSs4Pj4yXT1hW3FlKzg+PjJdLGFbcGUrMTI+PjJdPWFbcWUrMTI+PjJdLGFbcGUrMTY+PjJdPWFbcWUrMTY+''@;'; + put 'put ''PjJdLGFbcGUrMjA+PjJdPWFbcWUrMjA+PjJdLGFbcGUrMjQ+PjJdPWFbcWUrMjQ+PjJdLGFbcGUrMjg+PjJdPWFbcWUrMjg+PjJdLGFbUj4+Ml09YVtiZT4+Ml0sYVtSKzQ+PjJdPWFbYmUrND4+Ml0sYVtSKzg+PjJdPWFbYmUrOD4+Ml0sYVtSKzEyPj4yXT1hW2JlKzEyPj4yXSxhW1IrMTY+''@;'; + put 'put ''PjJdPWFbYmUrMTY+PjJdLGFbUisyMD4+Ml09YVtiZSsyMD4+Ml0sYVtSKzI0Pj4yXT1hW2JlKzI0Pj4yXSxhW1IrMjg+PjJdPWFbYmUrMjg+PjJdLDB8bXkocGUsUikmJlFmKGwsbT0wfE9IKG0sZ2UsMHxhWzQrKGY9Sys4fDApPj4yXSwwfGFbZj4+Ml0pLDB8YVtmPj4yXSwwLDAsND09KDB8''@;'; + put 'put ''YVtLPj4yXSk/MjU1Jnc6MCksZj13O2JyZWFrO2Nhc2UgNjphW3BlPj4yXT1hWyhxZT1LKzgwfDApPj4yXSxhW3BlKzQ+PjJdPWFbcWUrND4+Ml0sYVtwZSs4Pj4yXT1hW3FlKzg+PjJdLGFbcGUrMTI+PjJdPWFbcWUrMTI+PjJdLGFbcGUrMTY+PjJdPWFbcWUrMTY+PjJdLGFbcGUrMjA+PjJd''@;'; + put 'put ''PWFbcWUrMjA+PjJdLGFbcGUrMjQ+PjJdPWFbcWUrMjQ+PjJdLGFbcGUrMjg+PjJdPWFbcWUrMjg+PjJdLGFbUj4+Ml09YVtiZT4+Ml0sYVtSKzQ+PjJdPWFbYmUrND4+Ml0sYVtSKzg+PjJdPWFbYmUrOD4+Ml0sYVtSKzEyPj4yXT1hW2JlKzEyPj4yXSxhW1IrMTY+PjJdPWFbYmUrMTY+PjJd''@;'; + put 'put ''LGFbUisyMD4+Ml09YVtiZSsyMD4+Ml0sYVtSKzI0Pj4yXT1hW2JlKzI0Pj4yXSxhW1IrMjg+PjJdPWFbYmUrMjg+PjJdLDB8bXkocGUsUikmJldvKGwsbT0wfE9IKG0sZ2UsMHxhWzQrKGY9Sys4fDApPj4yXSwwfGFbZj4+Ml0pLDB8YVtmPj4yXSksZj13O2JyZWFrO2Nhc2UgNzphW3BlPj4y''@;'; + put 'put ''XT1hWyhxZT1LKzgwfDApPj4yXSxhW3BlKzQ+PjJdPWFbcWUrND4+Ml0sYVtwZSs4Pj4yXT1hW3FlKzg+PjJdLGFbcGUrMTI+PjJdPWFbcWUrMTI+PjJdLGFbcGUrMTY+PjJdPWFbcWUrMTY+PjJdLGFbcGUrMjA+PjJdPWFbcWUrMjA+PjJdLGFbcGUrMjQ+PjJdPWFbcWUrMjQ+PjJdLGFbcGUr''@;'; + put 'put ''Mjg+PjJdPWFbcWUrMjg+PjJdLGFbUj4+Ml09YVtiZT4+Ml0sYVtSKzQ+PjJdPWFbYmUrND4+Ml0sYVtSKzg+PjJdPWFbYmUrOD4+Ml0sYVtSKzEyPj4yXT1hW2JlKzEyPj4yXSxhW1IrMTY+PjJdPWFbYmUrMTY+PjJdLGFbUisyMD4+Ml09YVtiZSsyMD4+Ml0sYVtSKzI0Pj4yXT1hW2JlKzI0''@;'; + put 'put ''Pj4yXSxhW1IrMjg+PjJdPWFbYmUrMjg+PjJdLDB8bXkocGUsUikmJihfW20+PjNdPStfW0srOD4+M10sX1ttKzg+PjNdPStfW0srMTY+PjNdLGY9MHxhW0srMTEyPj4yXSxhW1I+PjJdPWFbbT4+Ml0sYVtSKzQ+PjJdPWFbbSs0Pj4yXSxhW1IrOD4+Ml09YVttKzg+PjJdLGFbUisxMj4+Ml09''@;'; + put 'put ''YVttKzEyPj4yXSxobShsLFIsZikpLGY9dzticmVhaztjYXNlIDg6aGwobCwwfGFbSys4Pj4yXSksZj0xO2JyZWFrO2Nhc2UgOTptYShsLDB8YVtLKzg+PjJdKSxmPTE7YnJlYWs7Y2FzZSAxMzppZigyIT0oMHxhW0srOD4+Ml0pKXtxZT0wfGFbMTIrKFZlPTB8YVszNisoZj1LKzE2fDApPj4y''@;'; + put 'put ''XSk+PjJdLEQ9K2puW1ZlKzg+PjJdLGY9fn4oNTcuMjk1Nzc5NTEzMDgyMzIqK1VsKCsoK19bSys0MD4+M10tK19bSysyND4+M10pLCsoK19bSyszMj4+M10tK19bZj4+M10pKSksaGwobCwwfGFbVmUrND4+Ml0pLFVmKGwscWUsZixEKSxmPTI7YnJlYWsgZX13PTB8YVs0KyhxZT0wfGFbSys2''@;'; + put 'put ''OD4+Ml0pPj4yXSxNPTB8YVtxZSsxMj4+Ml0sRD0ram5bcWUrOD4+Ml0sZj0oYj0rX1tLKzQwPj4zXSk9PShrPStfW0srMTY+PjNdKSYmK19bSys0OD4+M109PStfW0srMjQ+PjNdPzA6fn4oNTcuMjk1Nzc5NTEzMDgyMzIqK0pwKCsoay1iKS8rX1tLKzMyPj4zXSkpLGhsKGwsdyksVWYobCxN''@;'; + put 'put ''LGYsRCksZj0zO2JyZWFrO2Nhc2UgMTQ6JHIoMCwxMDA0ODEsT2UpLGY9dzticmVhaztjYXNlIDEyOnA/KCRyKDAsMTAwNTIxLExlKSxwPTAsZj13KToocD0wLGY9dyk7YnJlYWs7Y2FzZSAxMTpaQSgwfGFbSys4Pj4yXSksZDIobCwxODgyMjgpLEE9MTg4MjI4LGY9dzticmVhaztkZWZhdWx0''@;'; + put 'put ''OmY9d319d2hpbGUoMCk7dz1mLEc9RysxfDAsSz1LKzEyMHwwfTB8QSYmZDIobCwwfGFbMzM2KygwfGFbbD4+Ml0pPj4yXSksRnQobSksYWU9UmV9KGwsZiksYWU9cGV9KShsLGMpLDB8KGY9MHxhWzEyKygwfGFbYysxNj4+Ml0pPj4yXSkmJmI3KGwsNCxmKTtkb3tpZighcCl7aWYoMD09KDB8''@;'; + put 'put ''YVtNKzIwOD4+Ml0pJiYwPT0oMSZydFtNKzI2MD4+MV0pKWJyZWFrO0VoKGwpfX13aGlsZSgwKTsoZnVuY3Rpb24gSnJlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wO2FbKEE9MjgrKDB8YVsobHw9MCk+PjJdKXwwKT4+Ml09MSsoMHxhW0E+PjJdKSwoQT0wIT0oNCZmfDApKXx8''@;'; + put 'put ''VkEobCxjLGYpO2U6ZG97aWYoMSZmKXtmb3IoRzgobCkscD0wfER0KGMpO3A7KWpBKGwscCkscD0wfHp0KGMscCk7Zm9yKGNtKGwpLFlmKGwpLG09MHxEdChjKTttOyl7Zm9yKHA9MHx3MChjLG0pO3A7KVBDKGwscCkscD0wfFMwKGMscCk7bT0wfHp0KGMsbSl9Zm0obCl9ZWxzZXtpZigxNiZm''@;'; + put 'put ''fDApe2ZvcihZZihsKSxtPTB8RHQoYyk7bTspe2ZvcihwPTB8dzAoYyxtKTtwOylQQyhsLHApLHA9MHxTMChjLHApO209MHx6dChjLG0pfWZvcihmbShsKSxHOChsKSxwPTB8RHQoYyk7cDspakEobCxwKSxwPTB8enQoYyxwKTtjbShsKTticmVha31pZighKDgmZikpZm9yKG09MHxEdChjKTs7''@;'; + put 'put ''KXtpZighbSlicmVhayBlO2ZvcihqQShsLG0pLHA9MHx3MChjLG0pO3A7KWpBKGwsMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdKSxQQyhsLHApLHA9MHxTMChjLHApO209MHx6dChjLG0pfWZvcihHOChsKSxwPTB8RHQoYyk7cDspKDB8WHJlKGMscCkpPDwyND4+MjQm''@;'; + put 'put ''JmpBKGwscCkscD0wfHp0KGMscCk7Zm9yKGNtKGwpLFlmKGwpLG09MHxEdChjKTttOyl7Zm9yKHA9MHx3MChjLG0pO3A7KSgwfGdGKGMscCkpPDwyND4+MjQmJlBDKGwscCkscD0wfFMwKGMscCk7bT0wfHp0KGMsbSl9Zm0obCl9fXdoaWxlKDApO0EmJlZBKGwsYyxmKX0pKGwsYyxEKSxmdW5j''@;'; + put 'put ''dGlvbiBXTShsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrMjg+PjJdKSYmQ29bMTI3JmZdKGwpfShsKSwwfG0mJihDMihrKSxhW00rMjEyPj4yXT1tKSxhZT1SfWZ1bmN0aW9uIHBGKGwpe3ZhciBjLGYsbSxBLHcscD0wLGI9MCxrPTA7dz1hZSxhZT1h''@;'; + put 'put ''ZSszMnwwLGY9dysyNHwwLGs9dys4fDAsbT13LGI9MTg4KyhsfD0wKXwwLGFbKGM9dysxNnwwKT4+Ml09YVsoQT1sKzE5NnwwKT4+Ml0sYVtjKzQ+PjJdPWFbQSs0Pj4yXSxhW2Y+PjJdPWFbYj4+Ml0sYVtmKzQ+PjJdPWFbYis0Pj4yXSxCVChrLGMsZiksYj0wfGFbays0Pj4yXSxhWyhwPUEp''@;'; + put 'put ''Pj4yXT1hW2s+PjJdLGFbcCs0Pj4yXT1iLCgwfG1XKGwpKTw8MjQ+PjI0fHwocD1sKzE4MHwwLDB8YVtsKzE4ND4+Ml0/YVtBPj4yXT1hW2wrMTcyPj4yXTphW2wrMjAwPj4yXT1hW2wrMTc2Pj4yXSxhW2M+PjJdPWFbQT4+Ml0sYVtjKzQ+PjJdPWFbQSs0Pj4yXSxhW2Y+PjJdPWFbcD4+Ml0s''@;'; + put 'put ''YVtmKzQ+PjJdPWFbcCs0Pj4yXSxCVChtLGMsZiksYj0wfGFbbSs0Pj4yXSxhWyhrPUEpPj4yXT1hW20+PjJdLGFbays0Pj4yXT1iKSxhZT13fWZ1bmN0aW9uIHZXKGwsYyl7bHw9MDt2YXIgZj0wOyhmPTB8YVsoY3w9MCk+PjJdKT8oYVtsKzE2MD4+Ml09YVtmPj4yXSxhW2M+PjJdPWYrNCk6''@;'; + put 'put ''YVsoZj1sKzE2MHwwKT4+Ml09MSsoMHxhW2Y+PjJdKX1mdW5jdGlvbiBCVChsLGMsZil7dmFyIHA7cD0oMHxhWzQrKGZ8PTApPj4yXSkrKDB8YVs0KyhjfD0wKT4+Ml0pfDAsYVsobHw9MCk+PjJdPSgwfGFbZj4+Ml0pKygwfGFbYz4+Ml0pLGFbbCs0Pj4yXT1wfWZ1bmN0aW9uIFZBKGwsYyxm''@;'; + put 'put ''KXt2YXIgZ2UsYmUsT2UsUmUsSGUsVmUscWUsbnQsV2Usb3QsU3Qsa3QsbHQsRXQsWnQsY3QsYnQsU24scD0wLG09MCxBPTAsdz0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsTGU9MCxhbj0wLEhuPTA7Zm9yKFNuPWFlLGFlPWFlKzEyOHwwLGdlPVNuKzcyfDAsYnQ9U24rNjR8MCxT''@;'; + put 'put ''dD1TbisxMTJ8MCxFdD0xNisoY3w9MCl8MCxadD0wIT0oNCYoZnw9MCl8MCksY3Q9MTYrKGx8PTApfDAsYmU9KGt0PVNuKSszMnwwLE9lPWt0KzE2fDAsUmU9a3QrOHwwLEhlPWt0KzI0fDAsVmU9a3QrNDh8MCxxZT1rdCs0MHwwLG50PWt0KzU2fDAsV2U9MD09KDgmZnwwKSxvdD00KyhsdD1T''@;'; + put 'put ''bisxMDR8MCl8MCxwZT0xOyEoKDB8cGUpPigwfGFbMTgwKyhwPTB8YVtFdD4+Ml0pPj4yXSkpOyl7aWYoKDB8dFEobCxLPTB8YVsoMHxhW3ArMTg0Pj4yXSkrKHBlPDwyKT4+Ml0pKTw8MjQ+PjI0KXtadCYmVkEobCxLLGYpLFRvZShsLEspLEc9MHxhWyhSPTIwOCsoRD0wfGFbY3Q+PjJdKXww''@;'; + put 'put ''KT4+Ml0/MTowIT0oMSZydFtEKzI2MD4+MV0pLER2KDB8TGkoSywxMDAwMzIpKSxadHwxXkd8fChhW2dlPj4yXT1hWyhNPTE2KygwfGFbSysxNj4+Ml0pfDApPj4yXSxhW2dlKzQ+PjJdPWFbTSs0Pj4yXSxhW2dlKzg+PjJdPWFbTSs4Pj4yXSxhW2dlKzEyPj4yXT1hW00rMTI+PjJdLGFbZ2Ur''@;'; + put 'put ''MTY+PjJdPWFbTSsxNj4+Ml0sYVtnZSsyMD4+Ml09YVtNKzIwPj4yXSxhW2dlKzI0Pj4yXT1hW00rMjQ+PjJdLGFbZ2UrMjg+PjJdPWFbTSsyOD4+Ml0sTEMobCxnZSksRzEobCwwfGFbUj4+Ml0sMHxhW0QrMjI4Pj4yXSwwfGFbRCsyNDQ+PjJdLDB8YVtEKzIxMj4+Ml0pKSxhW1N0Pj4yXT0w''@;'; + put 'put ''LChwPTB8QkkoSyxTdCkpPyhkMihsLHApLGs9MSZhW1N0Pj4yXSk6az0wLHA9MHxKdFsxMTIrKDB8YVsoTT1LKzE2fDApPj4yXSk+PjBdO2Rve2lmKDEmcClwPTB8QmEoSywwLDEwNjI0MCksbT0wfEJhKEssMCwxMDYyNDgpLGFuPTI5O2Vsc2V7aWYoMiZwfDApe3A9MHxCYShLLDAsMTA2MjU2''@;'; + put 'put ''KSxtPTB8QmEoSywwLDEwNjI2NCksYW49Mjk7YnJlYWt9aWYoOCZwfDApe3A9MHxCYShLLDAsMTA2MjcyKSxtPTB8QmEoSywwLDEwNjI4MCksYW49Mjk7YnJlYWt9aWYoNCZwfDApe3A9MHxCYShLLDAsMTA2Mjg4KSxtPTB8QmEoSywwLDEwNjI5NiksYW49Mjk7YnJlYWt9aWYobT0ocD0wfExp''@;'; + put 'put ''KEssMTQwODIzKSk/MD09KDB8ZmVbcD4+MF0pPzA6cDowLHA9KHA9MHxMaShLLDEzNzcyOSkpPzA9PSgwfGZlW3A+PjBdKT9tOnA6bSwoQT0wfExpKEssMTAxNDE4KSkmJihtPTA9PSgwfGZlW0E+PjBdKT9tOkEpLDAhPSgwfGspJjAhPSgwfG0pKWFuPTI5O2Vsc2V7aWYoMHwoQT0wfExpKEss''@;'; + put 'put ''MTQwOTc3KSkmJjB8ZmVbQT4+MF0pe209QSxhbj0yOTticmVha31wPTA9PSgwfHApPzEzNzMxNDpwLHc9MD09KDB8bSk/MTM0ODAwOm0sYVtsdD4+Ml09MCxrP2FuPTMxOm09MH19fXdoaWxlKDApOzI5PT0oMHxhbikmJihhW2x0Pj4yXT0wLHA9MD09KDB8cCk/MTM3MzE0OnAsdz0wPT0oMHxt''@;'; + put 'put ''KT8xMzQ4MDA6bSxhbj0zMSksMzE9PSgwfGFuKSYmKGFuPTAsKDB8bGsodyxsdCxnZSkpPDwyND4+MjQ/KGhsKGwsMHxhW2x0Pj4yXSksVWYobCwobT0wfGFbb3Q+PjJdKXx8MTM3MzE0LEE9MHxlcyhLLDB8YVs0NzE0M10sMCwwKSwram5bZ2U+PjJdKSxtPSgwfGFbU3Q+PjJdKT4+PjEmMXwy''@;'; + put 'put ''KTooaGwobCx3KSxtPTEpKSwwfChBPTB8YVs0NzE0Ml0pJiYwfChMZT0wfEhvKEssQSkpJiYwfGZlW0xlPj4wXSYmeGgobCwrTWwoSywwfGFbNDcxNDJdLDEsMCkpLGs9MHxhW1N0Pj4yXTtkb3tpZig0JmspKEE9MHxlcyhLLDB8YVs0NzE0MV0sMSwwKSl8bXwwJiYoYVtrdD4+Ml09YVsoSG49''@;'; + put 'put ''MTYrKHc9MHxhW00+PjJdKXwwKT4+Ml0sYVtrdCs0Pj4yXT1hW0huKzQ+PjJdLGFba3QrOD4+Ml09YVtIbis4Pj4yXSxhW2t0KzEyPj4yXT1hW0huKzEyPj4yXSxhW2JlPj4yXT1hWyh3PXcrMzJ8MCk+PjJdLGFbYmUrND4+Ml09YVt3KzQ+PjJdLGFbYmUrOD4+Ml09YVt3Kzg+PjJdLGFbYmUr''@;'; + put 'put ''MTI+PjJdPWFbdysxMj4+Ml0sX1tPZT4+M109K19bYmU+PjNdLF9bSGU+PjNdPStfW1JlPj4zXSxfW1ZlPj4zXT0rX1trdD4+M10sX1tudD4+M109K19bcWU+PjNdLG1hKGwsQT9wOjEzNzM3OSksSzUobCxrdCw0LGssbSkpO2Vsc2V7aWYoISg2NCZrKSl7aWYoMHxlcyhLLDB8YVs0NzE0MV0s''@;'; + put 'put ''MSwwKSl7bWEobCxwKSxhW2dlPj4yXT1hWyhIbj0xNisoMHxhW00+PjJdKXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW0huKzQ+PjJdLGFbZ2UrOD4+Ml09YVtIbis4Pj4yXSxhW2dlKzEyPj4yXT1hW0huKzEyPj4yXSxhW2dlKzE2Pj4yXT1hW0huKzE2Pj4yXSxhW2dlKzIwPj4yXT1hW0huKzIwPj4y''@;'; + put 'put ''XSxhW2dlKzI0Pj4yXT1hW0huKzI0Pj4yXSxhW2dlKzI4Pj4yXT1hW0huKzI4Pj4yXSx5MyhsLGdlLG0pO2JyZWFrfWlmKCFtKWJyZWFrO21hKGwsMTM3Mzc5KSxhW2dlPj4yXT1hWyhIbj0xNisoMHxhW00+PjJdKXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW0huKzQ+PjJdLGFbZ2UrOD4+Ml09YVtI''@;'; + put 'put ''bis4Pj4yXSxhW2dlKzEyPj4yXT1hW0huKzEyPj4yXSxhW2dlKzE2Pj4yXT1hW0huKzE2Pj4yXSxhW2dlKzIwPj4yXT1hW0huKzIwPj4yXSxhW2dlKzI0Pj4yXT1hW0huKzI0Pj4yXSxhW2dlKzI4Pj4yXT1hW0huKzI4Pj4yXSx5MyhsLGdlLG0pO2JyZWFrfWFba3Q+PjJdPWFbKGs9MTYrKEhu''@;'; + put 'put ''PTB8YVtNPj4yXSl8MCk+PjJdLGFba3QrND4+Ml09YVtrKzQ+PjJdLGFba3QrOD4+Ml09YVtrKzg+PjJdLGFba3QrMTI+PjJdPWFbaysxMj4+Ml0sYVtiZT4+Ml09YVsoSG49SG4rMzJ8MCk+PjJdLGFbYmUrND4+Ml09YVtIbis0Pj4yXSxhW2JlKzg+PjJdPWFbSG4rOD4+Ml0sYVtiZSsxMj4+''@;'; + put 'put ''Ml09YVtIbisxMj4+Ml0sX1tPZT4+M109K19bYmU+PjNdLF9bSGU+PjNdPStfW1JlPj4zXSxfW1ZlPj4zXT0rX1trdD4+M10sX1tudD4+M109K19bcWU+PjNdLDB8ZXMoSywwfGFbNDcxNDFdLDEsMCk/bWEobCxwKTptYShsLDEzNzM3OSksKDB8aEYobCxrdCx3LDApKT4xJiYoYVtidD4+Ml09''@;'; + put 'put ''MHx0aShLKSwkcigzLDEwMDQwMCxidCkpLGFbZ2U+PjJdPWFbKEhuPTE2KygwfGFbTT4+Ml0pfDApPj4yXSxhW2dlKzQ+PjJdPWFbSG4rND4+Ml0sYVtnZSs4Pj4yXT1hW0huKzg+PjJdLGFbZ2UrMTI+PjJdPWFbSG4rMTI+PjJdLGFbZ2UrMTY+PjJdPWFbSG4rMTY+PjJdLGFbZ2UrMjA+PjJd''@;'; + put 'put ''PWFbSG4rMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbSG4rMjQ+PjJdLGFbZ2UrMjg+PjJdPWFbSG4rMjg+PjJdLHkzKGwsZ2UsMCl9fXdoaWxlKDApO0Z0KDB8YVtsdD4+Ml0pLDB8KHA9MHxhWzEyKygwfGFbTT4+Ml0pPj4yXSkmJmI3KGwsNSxwKSxHJiYoWnQmJihhW2dlPj4yXT1hWyhIbj0xNiso''@;'; + put 'put ''MHxhW00+PjJdKXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW0huKzQ+PjJdLGFbZ2UrOD4+Ml09YVtIbis4Pj4yXSxhW2dlKzEyPj4yXT1hW0huKzEyPj4yXSxhW2dlKzE2Pj4yXT1hW0huKzE2Pj4yXSxhW2dlKzIwPj4yXT1hW0huKzIwPj4yXSxhW2dlKzI0Pj4yXT1hW0huKzI0Pj4yXSxhW2dlKzI4''@;'; + put 'put ''Pj4yXT1hW0huKzI4Pj4yXSxMQyhsLGdlKSxHMShsLDB8YVtSPj4yXSwwfGFbRCsyMjg+PjJdLDB8YVtEKzI0ND4+Ml0sMHxhW0QrMjEyPj4yXSkpLEVoKGwpKTtlOmRve2lmKCFXZSlmb3IobT0wfER0KEspOzspe2lmKCFtKWJyZWFrIGU7Zm9yKGpBKGwsbSkscD0wfHcwKEssbSk7cDspUEMo''@;'; + put 'put ''bCxwKSxwPTB8UzAoSyxwKTttPTB8enQoSyxtKX19d2hpbGUoMCk7ZjllKGwsYyksWnR8fFZBKGwsSyxmKX1wZT1wZSsxfDB9YWU9U259ZnVuY3Rpb24gakEobCxjKXt2YXIgQSx3LGIsZj0wLHA9MCxtPTAsaz0wO2I9YWUsYWU9YWUrMzJ8MCxmPWIsQT0wfGFbKGx8PTApPj4yXSx3PTE2Kyhj''@;'; + put 'put ''fD0wKXwwO2U6ZG97aWYoMHxhWzgrKDB8YVt3Pj4yXSk+PjJdJiYoMHxFb2UobCwwfGNyKGMpLGMpKTw8MjQ+PjI0JiYoaz1sKzI1NnwwLGFbZj4+Ml09YVtrPj4yXSxhW2YrND4+Ml09YVtrKzQ+PjJdLGFbZis4Pj4yXT1hW2srOD4+Ml0sYVtmKzEyPj4yXT1hW2srMTI+PjJdLGFbZisxNj4+''@;'; + put 'put ''Ml09YVtrKzE2Pj4yXSxhW2YrMjA+PjJdPWFbaysyMD4+Ml0sYVtmKzI0Pj4yXT1hW2srMjQ+PjJdLGFbZisyOD4+Ml09YVtrKzI4Pj4yXSwoMHx1OWUoYyxmKSk8PDI0Pj4yNCkmJihwPTExNisoMHxhW3c+PjJdKXwwLG09MHxhW0ErMjg+PjJdLCgwfG0pIT0oMHxmZVtwPj4wXSkpKXtmZVtw''@;'; + put 'put ''Pj4wXT1tLGRtKGwsMHx0aShjKSksZj0wfHYyKGMsMHxhWzQ3MTY5XSwxOTUwNTkpLDB8ZmVbZj4+MF0mJmRtKGwsZiksZj0wfHYyKGMsMHxhWzQ3MTU3XSwxOTUwNTkpO3Q6ZG97aWYoMHxmZVtmPj4wXSlmb3IoWkEoZiksZj0xODgyMjg7Oyl7aWYocD1mLGY9Zis0fDAsIShwPTB8YVtwPj4y''@;'; + put 'put ''XSkpYnJlYWsgdDtpZigxMDU9PSgwfGZlW3A+PjBdKSYmISgwfGppKHAsMTM0MzM1KSkpYnJlYWsgZX19d2hpbGUoMCk7YzllKGwsYyksR3NbNjMmYVsyMCsoMHxhWzQrKDB8YVs4KygwfGFbdz4+Ml0pPj4yXSk+PjJdKT4+Ml1dKGwsYyksMHwoZj0wfGFbMTA4KygwfGFbdz4+Ml0pPj4yXSkm''@;'; + put 'put ''JjB8ZmVbZis4MT4+MF0mJmI3KGwsMTAsZikseG9lKGwpfX13aGlsZSgwKTthZT1ifWZ1bmN0aW9uIFBDKGwsYyl7Y3w9MDt2YXIgQSxmPTAscD0wLG09MCx3PTA7QT1hZSxhZT1hZSszMnwwLGFbKG09QSk+PjJdPWFbKGY9MjU2KyhsfD0wKXwwKT4+Ml0sYVttKzQ+PjJdPWFbZis0Pj4yXSxh''@;'; + put 'put ''W20rOD4+Ml09YVtmKzg+PjJdLGFbbSsxMj4+Ml09YVtmKzEyPj4yXSxhW20rMTY+PjJdPWFbZisxNj4+Ml0sYVttKzIwPj4yXT1hW2YrMjA+PjJdLGFbbSsyND4+Ml09YVtmKzI0Pj4yXSxhW20rMjg+PjJdPWFbZisyOD4+Ml07ZTpkb3tpZigoMHxtRihjLG0pKTw8MjQ+PjI0JiYocD1jKy00''@;'; + put 'put ''OHwwLCgwfEFXKGwsYykpPDwyND4+MjQpKXt3PWMrNDh8MCxpZChmPTB8QjAoMysoZj0wfFVvKDB8dGkoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6dykrNDA+PjJdKSkpKygwfFVvKDB8dGkoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6cCkrNDA+PjJdKSkpfDApLDB8dGkoMHxhWygzPT0oMyZh''@;'; + put 'put ''W2M+PjJdfDApP2M6dykrNDA+PjJdKSksdz0wPT0oMHxTYygwfGNyKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOnApKzQwPj4yXSkpKSxtPWYrKDB8VW8oZikpfDAsdz8oZmVbbT4+MF09MHxmZVsxNDE3NDddLGZlW20rMT4+MF09MHxmZVsxNDE3NDhdLGZlW20rMj4+MF09MHxmZVsxNDE3NDld''@;'; + put 'put ''KTooZmVbbT4+MF09MHxmZVsxMzc3MzhdLGZlW20rMT4+MF09MHxmZVsxMzc3MzldLGZlW20rMj4+MF09MHxmZVsxMzc3NDBdKSxzOShmLDB8dGkoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6cCkrNDA+PjJdKSksZG0obCxmKSxGdChmKSxmPTB8djIoYywwfGFbNDcxOTFdLDE5NTA1OSksMHxm''@;'; + put 'put ''ZVtmPj4wXSYmZG0obCxmKSxmPTB8djIoYywwfGFbNDcxODVdLDE5NTA1OSk7dDpkb3tpZigwfGZlW2Y+PjBdKWZvcihaQShmKSxmPTE4ODIyODs7KXtpZihwPWYsZj1mKzR8MCwhKHA9MHxhW3A+PjJdKSl7Zj0xODgyMjg7YnJlYWsgdH1pZigxMDU9PSgwfGZlW3A+PjBdKSYmISgwfGppKHAs''@;'; + put 'put ''MTM0MzM1KSkpYnJlYWsgZX1lbHNlIGY9MH13aGlsZSgwKTtrSChsLGMsZiksWlUobCxjLGYpLHpVKGwpfX13aGlsZSgwKTthZT1BfWZ1bmN0aW9uIFhyZShsLGMpe2N8PTA7dmFyIGYscD0wO2ZvcihmPTE2KyhsfD0wKXwwLGw9MTs7KXtpZigoMHxsKT4oMHxhWzE4MCsocD0wfGFbZj4+Ml0p''@;'; + put 'put ''Pj4yXSkpe2w9MTticmVha31pZigwfE5yKDB8YVsoMHxhW3ArMTg0Pj4yXSkrKGw8PDIpPj4yXSxjKSl7bD0wO2JyZWFrfWw9bCsxfDB9cmV0dXJuIDB8bH1mdW5jdGlvbiBnRihsLGMpe2N8PTA7dmFyIGYscD0wO2ZvcihmPTE2KyhsfD0wKXwwLGw9MTs7KXtpZigoMHxsKT4oMHxhWzE4MCso''@;'; + put 'put ''cD0wfGFbZj4+Ml0pPj4yXSkpe2w9MTticmVha31pZigwfE5yKDB8YVsoMHxhW3ArMTg0Pj4yXSkrKGw8PDIpPj4yXSxjKSl7bD0wO2JyZWFrfWw9bCsxfDB9cmV0dXJuIDB8bH1mdW5jdGlvbiBtRihsLGMpe2N8PTA7dmFyIHAsbSx3LGIsZj0wLEE9MDtiPWFlLGFlPWFlKzY0fDAsdz1iKzMy''@;'; + put 'put ''fDAscD1iLDAhPSgwfChmPTB8YVs4KyhsPTB8YVsobT0xNisobHw9MCl8MCk+PjJdKT4+Ml0pKSYmKGFbcD4+Ml09YVsoZj1mKzh8MCk+PjJdLGFbcCs0Pj4yXT1hW2YrND4+Ml0sYVtwKzg+PjJdPWFbZis4Pj4yXSxhW3ArMTI+PjJdPWFbZisxMj4+Ml0sYVtwKzE2Pj4yXT1hW2YrMTY+PjJd''@;'; + put 'put ''LGFbcCsyMD4+Ml09YVtmKzIwPj4yXSxhW3ArMjQ+PjJdPWFbZisyND4+Ml0sYVtwKzI4Pj4yXT1hW2YrMjg+PjJdLGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLGFbdysxNj4+Ml09YVtjKzE2Pj4y''@;'; + put 'put ''XSxhW3crMjA+PjJdPWFbYysyMD4+Ml0sYVt3KzI0Pj4yXT1hW2MrMjQ+PjJdLGFbdysyOD4+Ml09YVtjKzI4Pj4yXSwwIT0oMHxteShwLHcpKSk/bD0xOkE9Mztkb3tpZigzPT0oMHxBKSl7aWYoZj0wfGFbbCs5Nj4+Ml0pe2lmKGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJd''@;'; + put 'put ''LGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLGFbdysxNj4+Ml09YVtjKzE2Pj4yXSxhW3crMjA+PjJdPWFbYysyMD4+Ml0sYVt3KzI0Pj4yXT1hW2MrMjQ+PjJdLGFbdysyOD4+Ml09YVtjKzI4Pj4yXSwoMHxFTihmLHcpKTw8MjQ+PjI0KXtsPTE7YnJlYWt9bD0w''@;'; + put 'put ''fGFbbT4+Ml19aWYoMHwobD0wfGFbbCsxMDg+PjJdKSYmMHxmZVtsKzgxPj4wXSYmKGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLGFbdysxNj4+Ml09YVtjKzE2Pj4yXSxhW3crMjA+PjJdPWFbYysy''@;'; + put 'put ''MD4+Ml0sYVt3KzI0Pj4yXT1hW2MrMjQ+PjJdLGFbdysyOD4+Ml09YVtjKzI4Pj4yXSwoMHxFTihsLHcpKTw8MjQ+PjI0KSl7bD0xO2JyZWFrfWw9MH19d2hpbGUoMCk7cmV0dXJuIGFlPWIsMHxsfWZ1bmN0aW9uIEFXKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wO2U6ZG97aWYoKDB8YVts''@;'; + put 'put ''KzE1Nj4+Ml0pPj0yJiYoZj0wfHYyKGMsMHxhWzQ3MTkwXSwxOTUwNTkpLCgwfFJJKGwsZikpPDwyND4+MjQ9PTApKWlmKDB8ZmVbZj4+MF0pZj0wO2Vsc2UgZm9yKGY9MDs7KXtpZigoMHxmKT49Mil7Zj0wO2JyZWFrIGV9aWYocD0wfHYyKDB8YVsoKDMmYVtjPj4yXXwwKT09KDB8KChwPTE9''@;'; + put 'put ''PSgwfGYpKT8yOjMpKT9jOmMrKDQ4KihwPy0xOjEpfDApfDApKzQwPj4yXSwwfGFbNDcxNjddLDE5NTA1OSksISgwfGZlW3A+PjBdKSl7Zj0xO2JyZWFrIGV9aWYoKDB8UkkobCxwKSk8PDI0Pj4yNCl7Zj0xO2JyZWFrfWY9ZisxfDB9ZWxzZSBmPTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5j''@;'; + put 'put ''dGlvbiBaQShsKXtsfD0wO3ZhciBtLEEsdyxiLGssTSxELFIsRyxjPTAsZj0wLHA9MDtHPWFlLGFlPWFlKzE5MnwwLFI9RysyNHwwLEQ9RysxNnwwLE09Rys4fDAsaz1HLG09Rys0OHwwLGI9RyszMnwwLDB8ZmVbMTAwMjgyXSYmKHVzKDE4ODQ5MiwxMjgsMTk0ODI2KSxmZVsxMDAyODJdPTAp''@;'; + put 'put ''LHVzKGIsMTI4LEcrNTZ8MCksYVttPj4yXT1sLEE9Yis0fDAsdz1iKzh8MCxjPTAsZj0wO2U6Zm9yKDs7KXtwPWM7dDpmb3IoOzspc3dpdGNoKDB8U29lKG0sYikpe2Nhc2UgMDpjPTIxO2JyZWFrIGU7Y2FzZSA0MDppZihwPDwyND4+MjQpe2M9NzticmVhayBlfXA9MTtjb250aW51ZSB0O2Nh''@;'; + put 'put ''c2UgNDE6aWYocDw8MjQ+PjI0KXtwPTA7Y29udGludWUgdH1jPTk7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIHR9aWYoIShwPDwyND4+MjQpKXtpZig2Mz09KDB8Zikpe2M9MTI7YnJlYWt9KGM9MHxhWzQ3MTI0XSk+Pj4wPj0oMHxhWzQ3MTI1XSk+Pj4wJiYoUTAoMTg4NDkyLDEpLGM9MHxhWzQ3''@;'; + put 'put ''MTI0XSksYVs0NzEyNF09YysxLGZlW2M+PjBdPTAsYVsxODgyMjgrKGY8PDIpPj4yXT1hWzQ3MTI0XSxmPWYrMXwwfShjPTB8YVtBPj4yXSk+Pj4wPj0oMHxhW3c+PjJdKT4+PjAmJihRMChiLDEpLGM9MHxhW0E+PjJdKSxmZVtjPj4wXT0wLGFbQT4+Ml09Yz0wfGFbYj4+Ml0sdW8oMTg4NDky''@;'; + put 'put ''LGMpLChjPTB8YVs0NzEyNF0pPj4+MD49KDB8YVs0NzEyNV0pPj4+MCYmKFEwKDE4ODQ5MiwxKSxjPTB8YVs0NzEyNF0pLGFbNDcxMjRdPWMrMSxmZVtjPj4wXT0wLGM9cH1kb3tpZig3PT0oMHxjKSlhW2s+PjJdPWwsJHIoMSwxMDAyODMsayksYVs0NzA1N109MCxDMihiKTtlbHNlIGlmKDk9''@;'; + put 'put ''PSgwfGMpKWFbTT4+Ml09bCwkcigxLDEwMDMxNyxNKSxhWzQ3MDU3XT0wLEMyKGIpO2Vsc2UgaWYoMTI9PSgwfGMpKWFbRD4+Ml09bCwkcigwLDEwMDM0NSxEKSxhWzQ3MTIwXT0wLEMyKGIpO2Vsc2UgaWYoMjE9PSgwfGMpKXtpZihwPDwyND4+MjQpe2FbUj4+Ml09bCwkcigxLDEwMDM2OCxS''@;'; + put 'put ''KSxhWzQ3MDU3XT0wLEMyKGIpO2JyZWFrfWFbMTg4MjI4KyhmPDwyKT4+Ml09MCxDMihiKSwoYz0wfGFbNDcxMjRdKT4+PjA+PSgwfGFbNDcxMjVdKT4+PjAmJihRMCgxODg0OTIsMSksYz0wfGFbNDcxMjRdKSxmZVtjPj4wXT0wLGFbNDcxMjRdPWFbNDcxMjNdfX13aGlsZSgwKTtyZXR1cm4g''@;'; + put 'put ''YWU9RywxODgyMjh9ZnVuY3Rpb24gaXAobCl7dmFyIG0sQSxiLGM9MCxmPTAscD0wLHc9MDtiPWFlLGFlPWFlKzEwNDB8MCxBPWIsbT1iKzh8MCxwPTAsYz1sfD0wO2U6Zm9yKDs7KXtkb3tpZihmPWMsYz1jKzF8MCwhKChmPTB8ZmVbZj4+MF0pPDwyND4+MjQpKWJyZWFrIGV9d2hpbGUoKChm''@;'; + put 'put ''PDwyND4+MjQpLTQ4fDApPj4+MD49MTApO2lmKCgwfHApPj0xMDIzKXt3PTc7YnJlYWt9ZmVbbStwPj4wXT1mLHA9cCsxfDB9cmV0dXJuIDc9PSgwfHcpJiYoYVtBPj4yXT1sLCRyKDAsNjY4MTksQSkpLGZlW20rcD4+MF09MCx3PTY1NTM1JigwfHIzKG0pKSxhZT1iLDB8d31mdW5jdGlvbiBQ''@;'; + put 'put ''VChsKXtsfD0wO3ZhciBtLGssTSxjPTAsZj0wLHA9MCxBPTAsdz0wLGI9MDtpZihNPWFlLGFlPWFlKzExODR8MCxBPU0scD1NKzI0fDAsdXMoaz1NKzh8MCwxMDI0LE0rMTUyfDApLChtPStfWzE1MisoYz0wfGFbKHc9bCsxNnwwKT4+Ml0pPj4zXSkhPStfWyhmPTgrKGFbYysxMj4+Ml08PDMp''@;'; + put 'put ''fDApPj4zXSYmKF9bZj4+M109bSx1byhrLDY2ODgyKSxfW0E+PjNdPStfWzE1MisoMHxhW3c+PjJdKT4+M10sb28ocCw2Njg5NixBKSxBRihwLDApLHVvKGsscCksKGM9MHxhWyhwPWsrNHwwKT4+Ml0pPj4+MD49KDB8YVsoZj1rKzh8MCk+PjJdKT4+PjAmJihRMChrLDEpLGM9MHxhW3A+PjJd''@;'; + put 'put ''KSxhW3A+PjJdPWMrMSxmZVtjPj4wXT00MSwoYz0wfGFbcD4+Ml0pPj4+MD49KDB8YVtmPj4yXSk+Pj4wJiYoUTAoaywxKSxjPTB8YVtwPj4yXSksZmVbYz4+MF09MCxhW3A+PjJdPWM9MHxhW2s+PjJdLFA1KGwsNjY5MDEsYyksYz0wfGFbdz4+Ml0pLDB8KGM9MHxhW2MrMTYwPj4yXSkpe3c9''@;'; + put 'put ''ays0fDAsYj1rKzh8MDtlOmZvcig7QT1jKzR8MCxjPTB8YVtjPj4yXSxjOyl7c3dpdGNoKDB8ZmVbYz4+MF0pe2Nhc2UgMTAyOmlmKCEoMHxqaShjLDExMTEwMSkpKXtjPUE7Y29udGludWUgZX1icmVhaztjYXNlIDk4OmlmKCEoMHxqaShjLDExMTA4MykpKXtjPUE7Y29udGludWUgZX1icmVh''@;'; + put 'put ''aztjYXNlIDExNTppZighKDB8amkoYywxMTEwODgpKSl7Yz1BO2NvbnRpbnVlIGV9fXVvKGssYyk7ZG97cD1jLGM9YysxfDB9d2hpbGUoMCE9KDB8ZmVbcD4+MF0pKTtpZigwfGZlW2M+PjBdKXtmb3IoKGY9MHxhW3c+PjJdKT4+PjA+PSgwfGFbYj4+Ml0pPj4+MCYmKFEwKGssMSksZj0wfGFb''@;'; + put 'put ''dz4+Ml0pLGFbdz4+Ml09ZisxLGZlW2Y+PjBdPTQwLHA9MDswfGZlW2M+PjBdOyl7MHxwJiYoKGY9MHxhW3c+PjJdKT4+PjA+PSgwfGFbYj4+Ml0pPj4+MCYmKFEwKGssMSksZj0wfGFbdz4+Ml0pLGFbdz4+Ml09ZisxLGZlW2Y+PjBdPTQ0KSx1byhrLGMpO2Rve2Y9YyxjPWMrMXwwfXdoaWxl''@;'; + put 'put ''KDAhPSgwfGZlW2Y+PjBdKSk7cD1wKzF8MH0oYz0wfGFbdz4+Ml0pPj4+MD49KDB8YVtiPj4yXSk+Pj4wJiYoUTAoaywxKSxjPTB8YVt3Pj4yXSksYVt3Pj4yXT1jKzEsZmVbYz4+MF09NDF9KGM9MHxhW3c+PjJdKT4+PjA+PSgwfGFbYj4+Ml0pPj4+MCYmKFEwKGssMSksYz0wfGFbdz4+Ml0p''@;'; + put 'put ''LGZlW2M+PjBdPTAsYVt3Pj4yXT1jPTB8YVtrPj4yXSxQNShsLDY2OTAxLGMpLGM9QX1DMihrKX1hZT1NfWZ1bmN0aW9uIEZDKGwpe3lGKDE2KygwfGFbMTYrKGx8PTApPj4yXSl8MCksUDUobCw3NTgzNCwxOTM3NTgpfWZ1bmN0aW9uIEhDKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBt''@;'; + put 'put ''LEEsYixrLHc9MDtmb3Ioaz1hZSxhZT1hZSsxMDQwfDAsYj1rLHc9aysxNnwwLChsPTB8YVsobT00KyhBPTB8YVsxMTQxNisoYVsxMisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXTw8Mik+PjJdKXwwKT4+Ml0pPj4+MD49KDB8YVtBKzg+PjJdKT4+PjAmJihRMChBLDEpLGw9MHxhW20+PjJdKSxh''@;'; + put 'put ''W20+PjJdPWwrMSxmZVtsPj4wXT1jLGFbYj4+Ml09cCxvbyh3LDY2ODQ2LGIpLHVvKEEsdyksbD0wOyEoKDB8bCk+PSgwfHApKTspYVtiPj4yXT1hWyh3PWYrKGw8PDQpfDApPj4yXSxhW2IrND4+Ml09YVt3KzQ+PjJdLGFbYis4Pj4yXT1hW3crOD4+Ml0sYVtiKzEyPj4yXT1hW3crMTI+PjJd''@;'; + put 'put ''LEI1KEEsYiksbD1sKzF8MDthZT1rfWZ1bmN0aW9uIEI1KGwsYyl7dmFyIGYscDtsfD0wLGY9YWUsYWU9YWUrMTAyNHwwLFdoKHA9ZiwrX1soY3w9MCk+PjNdKSx1byhsLHApLFdoKHAsK2Z1bmN0aW9uIHNhZShsKXtyZXR1cm4rKGw9K2wpfSgrX1tjKzg+PjNdKSksdW8obCxwKSxhZT1mfWZ1''@;'; + put 'put ''bmN0aW9uIFdoKGwsYyl7dmFyIGYscDtsfD0wLGY9YWUsYWU9YWUrMTZ8MCxfWyhwPWYpPj4zXT0oYz0rYyk+LTFlLTgmYzwxZS04PzA6YyxvbyhsLDY2ODUxLHApLEFGKGwsMSksYWU9Zn1mdW5jdGlvbiBBRihsLGMpe2N8PTA7dmFyIGY9MCxwPTA7aWYoZj0wfCRzKGx8PTAsNDYpKXtmb3Io''@;'; + put 'put ''OzB8ZmVbKGw9ZisxfDApPj4wXTspZj1sO2U6Zm9yKDs7KXtzd2l0Y2goMHxmZVtmPj4wXSl7Y2FzZSA0NjpwPTU7YnJlYWsgZTtjYXNlIDQ4OmJyZWFrO2RlZmF1bHQ6cD02O2JyZWFrIGV9ZmVbZj4+MF09MCxmPWYrLTF8MH01PT0oMHxwKT9mZVtmPj4wXT0wOjY9PSgwfHApJiYoZj1mKzF8''@;'; + put 'put ''MCksMHxjJiYocD0xMCl9ZWxzZSAwfGMmJihmPWwrKDB8VW8obCkpfDAscD0xMCk7MTA9PSgwfHApJiYoZmVbZj4+MF09MzIsZmVbZisxPj4wXT0wKX1mdW5jdGlvbiB5RihsKXt2YXIgYyxmLHAsbSxBLHc7dz1hZSxhZT1hZSszMnwwLEE9dysxNnwwLG09dyxjPTB8ZmVbMysobHw9MCk+PjBd''@;'; + put 'put ''LGY9MHxKdFtsPj4wXSxwPTB8SnRbbCsxPj4wXSxsPTB8SnRbbCsyPj4wXSxjPDwyND4+MjQ9PS0xPyhhW20+PjJdPWYsYVttKzQ+PjJdPXAsYVttKzg+PjJdPWwsb28oMTkzNzU4LDc1NzE0LG0pKTooYVtBPj4yXT1mLGFbQSs0Pj4yXT1wLGFbQSs4Pj4yXT1sLGFbQSsxMj4+Ml09MjU1JmMs''@;'; + put 'put ''b28oMTkzNzU4LDY2ODY0LEEpKSxhZT13fWZ1bmN0aW9uIFA1KGwsYyxmKXtNVygwfGFbMTE0MTYrKGFbMTIrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml08PDIpPj4yXSxjfD0wLGZ8PTApfWZ1bmN0aW9uIE1XKGwsYyxmKXt2YXIgcCxtLEEsdztsfD0wLGN8PTAscD1hZSxhZT1hZSsxMDQwfDAs''@;'; + put 'put ''QT1wLG09cCs4fDAsdz0wfFVvKGZ8PTApLGFbQT4+Ml09YyxhW0ErND4+Ml09dyxvbyhtLDY2ODU3LEEpLHVvKGwsbSksdW8obCxmKSwoYz0wfGFbKGY9bCs0fDApPj4yXSk+Pj4wPj0oMHxhW2wrOD4+Ml0pPj4+MCYmKFEwKGwsMSksYz0wfGFbZj4+Ml0pLGFbZj4+Ml09YysxLGZlW2M+PjBd''@;'; + put 'put ''PTMyLGFlPXB9ZnVuY3Rpb24gd0YobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIFIsSyxwZSxiZSxPZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsRz0wLGdlPTAsTGU9MDtPZT1hZSxhZT1hZSsxMTIwfDAsSz1PZSs2NHwwLGJlPU9lKzgwfDAsQT1PZSszMnwwLFI9T2UrMTZ8MCxH''@;'; + put 'put ''PU9lLG09LjAxNzQ1MzI5MjUxOTk0MzI5NSorKDB8YVsxMzYrKHBlPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0pLCgwfGhyWzgyMzIrKDB8YVs0NjY5MF0pPj4xXSk8MTQ/RlQobCk6KHVzKGJlLDEwMjQsT2UrOTZ8MCksKGdlPTI9PSgwfGMpKT8oZEQoZixBLHAsbSwyKSwoYz0wfGFbKGY9YmUr''@;'; + put 'put ''NHwwKT4+Ml0pPj4+MD49KDB8YVtiZSs4Pj4yXSk+Pj4wJiYoUTAoYmUsMSksYz0wfGFbZj4+Ml0pLGFbZj4+Ml09YysxLGZlW2M+PjBdPTkxLGFbSz4+Ml09YVtBPj4yXSxhW0srND4+Ml09YVtBKzQ+PjJdLGFbSys4Pj4yXT1hW0ErOD4+Ml0sYVtLKzEyPj4yXT1hW0ErMTI+PjJdLEI1KGJl''@;'; + put 'put ''LEspLGFbSz4+Ml09YVsoRz1BKzE2fDApPj4yXSxhW0srND4+Ml09YVtHKzQ+PjJdLGFbSys4Pj4yXT1hW0crOD4+Ml0sYVtLKzEyPj4yXT1hW0crMTI+PjJdLEI1KGJlLEspKTooZEQoZixBLHAsMCwzKSxEPStfW0ErMjQ+PjNdLGs9K19bQT4+M10sMD09bT8oTT0uMjUqRCxtPWI9K19bQSs4''@;'; + put 'put ''Pj4zXSx3PWspOihMZT1NPS4yNSpELHc9K2hhKCttKSpMZStrLGI9K19bQSs4Pj4zXSxtPStEYSgrbSkqTGUrYiksX1tSPj4zXT13LF9bUis4Pj4zXT1tLF9bRz4+M109ayxfW0crOD4+M109YiwoYz0wfGFbKGY9YmUrNHwwKT4+Ml0pPj4+MD49KDB8YVtiZSs4Pj4yXSk+Pj4wJiYoUTAoYmUs''@;'; + put 'put ''MSksYz0wfGFbZj4+Ml0pLGFbZj4+Ml09YysxLGZlW2M+PjBdPTQwLGFbSz4+Ml09YVtSPj4yXSxhW0srND4+Ml09YVtSKzQ+PjJdLGFbSys4Pj4yXT1hW1IrOD4+Ml0sYVtLKzEyPj4yXT1hW1IrMTI+PjJdLEI1KGJlLEspLEVXKGJlLE0pLGFbSz4+Ml09YVtHPj4yXSxhW0srND4+Ml09YVtH''@;'; + put 'put ''KzQ+PjJdLGFbSys4Pj4yXT1hW0crOD4+Ml0sYVtLKzEyPj4yXT1hW0crMTI+PjJdLEI1KGJlLEspLEVXKGJlLEQpKSx1byhiZSw2NjkwNyksZj1wZSs1NnwwLChtPStqblsoYz1wZSsxNDB8MCk+PjJdKT4wPyhIVChiZSxtLGYpLEhUKGJlLCtqbltjPj4yXSxwZSs5NnwwKSk6KEhUKGJlLDAs''@;'; + put 'put ''ZiksSFQoYmUsMSxwZSs5NnwwKSksTDYoYmUpLGY9KGM9MHxhWyhBPWJlKzR8MCk+PjJdKT4+PjA+PSgwfGFbKHA9YmUrOHwwKT4+Ml0pPj4+MCxnZT8oZiYmKFEwKGJlLDEpLGM9MHxhW0E+PjJdKSxhW0E+PjJdPWMrMSxmZVtjPj4wXT05Myk6KGYmJihRMChiZSwxKSxjPTB8YVtBPj4yXSks''@;'; + put 'put ''YVtBPj4yXT1jKzEsZmVbYz4+MF09NDEpLChjPTB8YVtBPj4yXSk+Pj4wPj0oMHxhW3A+PjJdKT4+PjAmJihRMChiZSwxKSxjPTB8YVtBPj4yXSksZmVbYz4+MF09MCxhW0E+PjJdPWdlPTB8YVtiZT4+Ml0sUDUobCw2NjkwNCxnZSksQzIoYmUpKSxhZT1PZX1mdW5jdGlvbiBGVChsKXt5Rig1''@;'; + put 'put ''NisoMHxhWzE2KyhsfD0wKT4+Ml0pfDApLFA1KGwsNjY5MDQsMTkzNzU4KX1mdW5jdGlvbiBFVyhsLGMpe3ZhciBmLHA7bHw9MCxmPWFlLGFlPWFlKzEwMjR8MCxXaChwPWYsYz0rYyksdW8obCxwKSxhZT1mfWZ1bmN0aW9uIEhUKGwsYyxmKXt2YXIgcCxtLEE7bHw9MCxmfD0wLHA9YWUsYWU9''@;'; + put 'put ''YWUrMTA0MHwwLG09cCs4fDAsX1soQT1wKT4+M109Yz0rYyxvbyhtLDk0MTY4LEEpLEFGKG0sMSkseUYoZiksTVcobCxtLDE5Mzc1OCksYWU9cH1mdW5jdGlvbiBOVChsLGMpe2N8PTA7dmFyIGY9MDtmb3IoYVsobHw9MCk+PjJdPS05JmFbbD4+Ml0sZj0wfHlzKGwpO2Y7KU5UKGYsMCksZj0w''@;'; + put 'put ''fE1zKGYpO2U6ZG97aWYoMHxjKWZvcihjPTB8RHQobCk7Oyl7aWYoIWMpYnJlYWsgZTtmb3IoYVtjPj4yXT0tOSZhW2M+PjJdLGY9MHx3MChsLGMpO2Y7KWFbZj4+Ml09LTkmYVtmPj4yXSxmPTB8UzAobCxmKTtjPTB8enQobCxjKX19d2hpbGUoMCl9ZnVuY3Rpb24gYkYobCxjLGYscCl7bHw9''@;'; + put 'put ''MCxjfD0wLHB8PTA7dmFyIFIsRyxwZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsSz0wO2lmKHBlPWFlLGFlPWFlKzE2fDAsSz1wZSs4fDAsRz1wZSxSPTAhPSgwfChmfD0wKSkpe2ZvcihEPTB8aXMoMTE4MzYsMHxhWzQ1ODFdKSwkaShsLDEsMTQxMDYwLDEyLDApLCRpKGwsMiwxNDEw''@;'; + put 'put ''NjAsMTIsMCksJGkobCwwLDE0MTA2MCwtMTIsMCksbT0wfFRXKGwsMCxEKSxrPTB8RHQobCksYj0wLEE9MDtrOyl7Zm9yKDB8czIoMHx0aShrKSwxMDgwMDYsNyk/KE09QSsxfDAsQT1BK218MCk6KE09QSxBPTB8YWllKEQsMHx0aShrKSkpLGFbOCsoMHxhbyhrLDE0MTA2MCwwKSk+PjJdPUEs''@;'; + put 'put ''dz0wfHcwKGwsayksQT1iO3c7KWFbOCsoMHxhbyh3LDE0MTA2MCwwKSk+PjJdPUEsdz0wfFMwKGwsdyksQT1BKzF8MDtrPTB8enQobCxrKSxiPUEsQT1NfU5sKEQpfWVsc2UgbT0wO2FbcD4+Ml09MSsoRD0wfGFbcD4+Ml0pLHZhKGMsRCksRW4oYyw5NzM3NCksZnVuY3Rpb24gX0YobCxjLGYs''@;'; + put 'put ''cCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG0sQSx3LGIsaz0wO3c9YWUsYWU9YWUrMzJ8MCxBPXcrMTZ8MCxtPXcrOHwwLGI9dyxrPTB8dGkobHw9MCksdmEoYywwfGFbcD4+Ml0pLGFbYj4+Ml09MHxvcChrLHApLE9yKGMsNjcxMjQsYiksMHxmJiYoRW4oYyw5NzM0NSksdmEoYywwfGFbcD4+Ml0p''@;'; + put 'put ''LGs9MCE9KDB8U2MobCkpLGFbbT4+Ml09az8xMDc2NTI6MTM3MzA4LE9yKGMsNjc3MzgsbSksdmEoYywwfGFbcD4+Ml0pLGs9MCE9KDB8REEobCkpLGFbQT4+Ml09az8xMDc2NTI6MTM3MzA4LE9yKGMsNjc3NTUsQSkpLGFlPXd9KGwsYyxmLHApLE5DKGwsYyxwKSxFbihjLDk3MzQ1KSx2YShj''@;'; + put 'put ''LDB8YVtwPj4yXSksUj8oYVtHPj4yXT1tLE9yKGMsNjcwMTYsRykpOihhW0s+PjJdPWFbOCsoMHxhbyhsLDE0MTA2MCwwKSk+PjJdLE9yKGMsNjcwMzYsSykpLGZ1bmN0aW9uIHQ3ZShsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTA7aWYoQT0wfER0KGx8PTApKXtm''@;'; + put 'put ''b3IoRW4oYyw5NzM0NSksKHc9MCE9KDB8ZikpPyhwfHwoYVttPj4yXT0xKyhwPTB8YVttPj4yXSksdmEoYyxwKSxFbihjLDY3MDk4KSkscD0wKTooYVttPj4yXT0xKyhwPTB8YVttPj4yXSksdmEoYyxwKSxFbihjLDY3MTEyKSx2YShjLDB8YVttPj4yXSkscD0wKTtBOyl7aWYoMHxzMigwfHRp''@;'; + put 'put ''KEEpLDEwODAwNiw3KSl7ZG97aWYocCl7aWYodyl7RW4oYyw5NzM0NSk7YnJlYWt9RW4oYywxMDA5OTkpO2JyZWFrfXA9MX13aGlsZSgwKTtzaWUoQSxjLGYsbSl9QT0wfHp0KGwsQSl9YVttPj4yXT0oMHxhW20+PjJdKS0xLEVuKGMsMTUzNTk5KSx2YShjLDB8YVttPj4yXSksRW4oYyw5NzM0''@;'; + put 'put ''MCl9ZWxzZSAwIT0oMHxmKSYwIT0oMHxwKSYmKGFbbT4+Ml09KDB8YVttPj4yXSktMSxFbihjLDE1MzU5OSksdmEoYywwfGFbbT4+Ml0pLEVuKGMsOTczNDApKX0obCxjLGYsMHxmdW5jdGlvbiBsaWUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG0sdyxiLEE9MDtpZihiPWFlLGFlPWFl''@;'; + put 'put ''KzE2fDAsdz1iLG09MHx5cyhsfD0wKSl7Zm9yKEVuKGMsOTczNDUpLGFbcD4+Ml09MSsoQT0wfGFbcD4+Ml0pLHZhKGMsQSksKEE9MCE9KDB8ZikpPyhFbihjLDY3MDk4KSxsPTAsZj1tKTooRW4oYyw2NzE1OCksdmEoYywwfGFbcD4+Ml0pLGw9MCxmPW0pO2Y7KWw/RW4oYyw5NzM0NSk6bD0x''@;'; + put 'put ''LEE/RFcoZixjLHApOihhW3c+PjJdPWFbOCsoMHxhbyhmLDE0MTA2MCwwKSk+PjJdLE9yKGMsMTM3Mzk1LHcpKSxmPTB8TXMoZik7QXx8KGFbcD4+Ml09KDB8YVtwPj4yXSktMSxFbihjLDE1MzU5OSksdmEoYywwfGFbcD4+Ml0pLEVuKGMsOTczNDApKSxsPTF9ZWxzZSBsPTA7cmV0dXJuIGFl''@;'; + put 'put ''PWIsMHxsfShsLGMsZixwKSxwKSxmdW5jdGlvbiBiYShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wO209MHxEdChsfD0wKTtlOmRve2lmKDB8bSl7Zm9yKDs7KXtpZighbSlicmVhayBlO2lmKDB8dzAobCxtKSlicmVhazttPTB8enQobCxtKX1mb3IoRW4oYyw5''@;'; + put 'put ''NzM0NSksYVtwPj4yXT0xKyhiPTB8YVtwPj4yXSksdmEoYyxiKSxFbihjLDY3MDQ4KSwoYj0wIT0oMHxmKSl8fHZhKGMsMHxhW3A+PjJdKSxBPTA7bTspe2Zvcih3PTB8dzAobCxtKTt3Oyl7ZG97aWYoQSl7aWYoYil7RW4oYyw5NzM0NSk7YnJlYWt9RW4oYywxMDA5OTkpO2JyZWFrfUE9MX13''@;'; + put 'put ''aGlsZSgwKTtJVyh3LGMsZixwKSx3PTB8UzAobCx3KX1tPTB8enQobCxtKX1hW3A+PjJdPSgwfGFbcD4+Ml0pLTEsRW4oYywxNTM1OTkpLHZhKGMsMHxhW3A+PjJdKSxFbihjLDk3MzQwKX19d2hpbGUoMCl9KGwsYyxmLHApLEVuKGMsMTUzNTk5KSxhW3A+PjJdPUs9KDB8YVtwPj4yXSktMXww''@;'; + put 'put ''LHZhKGMsSyksRW4oYyxSPzExMTAwODo3NTM1NyksYWU9cGV9ZnVuY3Rpb24gVFcobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wO2ZvcigoMHxkaShsfD0wKSkhPSgwfGwpJiYocD1jKzF8MCxhWzgrKDB8YW8obCwxNDEwNjAsMCkpPj4yXT1jLDB8czIoMHx0aShsKSwxMDgwMDYsNyl8fGZ1bmN0''@;'; + put 'put ''aW9uIFJXKGwsYyxmKXtmfD0wO3ZhciBwLEEsbT0wO0E9YWUsYWU9YWUrMTZ8MCxtPUEsKHA9MHxtaVs2MyZhWyhsfD0wKT4+Ml1dKGwsY3w9MCw1MTIpKT8oMHxhW3ArMTI+PjJdKSE9KDB8ZikmJihhW20+PjJdPWMsJHIoMCw2Nzc2OCxtKSk6KG09MHxzaCgxLDE2KSxhW20rOD4+Ml09MHxy''@;'; + put 'put ''YShjKSxhW20rMTI+PjJdPWYsbWlbNjMmYVtsPj4yXV0obCxtLDEpKSxhZT1BfShmLGM9MHx0aShsKSwwfGFbOCsoMHxhbyhsLDE0MTA2MCwwKSk+PjJdKSxjPXApLHA9MHx5cyhsKTtwOylsPTB8VFcocCxjLGYpLHA9MHxNcyhwKSxjPWw7cmV0dXJuIDB8Y31mdW5jdGlvbiBhaWUobCxjKXty''@;'; + put 'put ''ZXR1cm4gMHwoKGw9MHxtaVs2MyZhWyhsfD0wKT4+Ml1dKGwsY3w9MCw1MTIpKT8wfGFbbCsxMj4+Ml06LTEpfWZ1bmN0aW9uIHZhKGwsYyl7Zm9yKGx8PTAsY3w9MDshKCgwfGMpPD0wKTspRW4obCw5MDU3NCksYz1jKy0xfDB9ZnVuY3Rpb24gTkMobCxjLGYpe2N8PTAsZnw9MDt2YXIgdyxi''@;'; + put 'put ''LE0sRCxSLHA9MCxtPTAsQT0wLGs9MDtSPWFlLGFlPWFlKzE2fDAsRD1SKzh8MCxNPVIscD0wfEZzKHc9MHxkaShsfD0wKSxiPTMmYVtsPj4yXSwwKTtlOmRve2lmKDB8cClmb3Ioaz1mKzV8MDs7KXtpZighcClicmVhayBlO209MHxIbyhsLHApO2Rve2lmKDB8bSl7aWYoQT1wKzh8MCwhKDB8''@;'; + put 'put ''ZmVbbT4+MF0pJiYoMTA4IT0oMHxmZVsobT0wfGFbQT4+Ml0pPj4wXSl8fDB8amkobSwxMDgyMjQpKSlicmVhaztpZihFbihjLDk3MzQ1KSx2YShjLDB8YVtmPj4yXSksYVtNPj4yXT0wfG9wKDB8YVtBPj4yXSxmKSxPcihjLDY3MTc0LE0pLDB8ZmVbaz4+MF0mJjB8U2woMHxhW0E+PjJdKSl7''@;'; + put 'put ''bjdlKDB8SG8obCxwKSxjLGYpO2JyZWFrfWFbRD4+Ml09MHxvcCgwfEhvKGwscCksZiksT3IoYyw2NzE4MSxEKX19d2hpbGUoMCk7cD0wfEZzKHcsYixwKX19d2hpbGUoMCk7YWU9Un1mdW5jdGlvbiBJVyhsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgbSxBLHcsayxiPTA7az1hZSxhZT1h''@;'; + put 'put ''ZSszMnwwLGI9aysyNHwwLHc9aysxNnwwLEE9ays4fDAsbT1rLChmfD0wKT8oYVtwPj4yXT0xKyhiPTB8YVtwPj4yXSksdmEoYyxiKSxFbihjLDk3Mzc0KSx2YShjLDB8YVtwPj4yXSksYVttPj4yXT1hWzgrKDB8YW8obCwxNDEwNjAsMCkpPj4yXSxPcihjLDY3MDYwLG0pLHZhKGMsMHxhW3A+''@;'; + put 'put ''PjJdKSxhW0E+PjJdPWFbOCsoMHxhbygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSwxNDEwNjAsMCkpPj4yXSxPcihjLDY3MDc0LEEpLHZhKGMsMHxhW3A+PjJdKSxhW3c+PjJdPWFbOCsoMHxhbygwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0s''@;'; + put 'put ''MTQxMDYwLDApKT4+Ml0sT3IoYyw2NzA4Nyx3KSxOQyhsLGMscCksRW4oYywxNTM1OTkpLGFbcD4+Ml09Yj0oMHxhW3A+PjJdKS0xfDAsdmEoYyxiKSxFbihjLDc1MzU3KSk6KGFbYj4+Ml09YVs4KygwfGFvKGwsMTQxMDYwLDApKT4+Ml0sT3IoYywxMzczOTUsYikpLGFlPWt9ZnVuY3Rpb24g''@;'; + put 'put ''c2llKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBtLEEsYix3PTA7Yj1hZSxhZT1hZSszMnwwLHc9YisxNnwwLEE9Yis4fDAsbT1iLChmfD0wKT8oYVtwPj4yXT0xKyh3PTB8YVtwPj4yXSksdmEoYyx3KSxFbihjLDk3Mzc0KSx2YShjLDB8YVtwPj4yXSksYVttPj4yXT1hWzgrKDB8YW8o''@;'; + put 'put ''bCwxNDEwNjAsMCkpPj4yXSxPcihjLDY3MDYwLG0pLHZhKGMsMHxhW3A+PjJdKSxhW0E+PjJdPTB8b3AoMHx0aShsKSxwKSxPcihjLDY3MTI0LEEpLE5DKGwsYyxwKSxFbihjLDE1MzU5OSksYVtwPj4yXT13PSgwfGFbcD4+Ml0pLTF8MCx2YShjLHcpLEVuKGMsNzUzNTcpKTooYVt3Pj4yXT1h''@;'; + put 'put ''WzgrKDB8YW8obCwxNDEwNjAsMCkpPj4yXSxPcihjLDEzNzM5NSx3KSksYWU9Yn1mdW5jdGlvbiBvcChsLGMpe2x8PTA7dmFyIG0sZj0wLHA9MDswfGZlWyhtPTQrKGN8PTApfDApPj4wXSYmKGw9MHx2ayhsKSksMHxhWzQ2NzA2XXx8dXMoMTg2ODI0LDEwMjQsMCksZj1sO2U6Zm9yKDs7KXtz''@;'; + put 'put ''d2l0Y2goKHA9MHxmZVtmPj4wXSk8PDI0Pj4yNCl7Y2FzZSAwOmJyZWFrIGU7Y2FzZSAzNDp1bygxODY4MjQsNjcxMzcpO2JyZWFrO2Nhc2UgOTI6dW8oMTg2ODI0LDk2NjE2KTticmVhaztjYXNlIDQ3OnVvKDE4NjgyNCw2NzE0MCk7YnJlYWs7Y2FzZSA4OnVvKDE4NjgyNCw2NzE0Myk7YnJl''@;'; + put 'put ''YWs7Y2FzZSAxMjp1bygxODY4MjQsNjcxNDYpO2JyZWFrO2Nhc2UgMTA6dW8oMTg2ODI0LDY3MTQ5KTticmVhaztjYXNlIDEzOnVvKDE4NjgyNCw2NzE1Mik7YnJlYWs7Y2FzZSA5OnVvKDE4NjgyNCw2NzE1NSk7YnJlYWs7ZGVmYXVsdDooYz0wfGFbNDY3MDddKT4+PjA+PSgwfGFbNDY3MDhd''@;'; + put 'put ''KT4+PjAmJihRMCgxODY4MjQsMSksYz0wfGFbNDY3MDddKSxhWzQ2NzA3XT1jKzEsZmVbYz4+MF09cH1mPWYrMXwwfXJldHVybihjPTB8YVs0NjcwN10pPj4+MD49KDB8YVs0NjcwOF0pPj4+MCYmKFEwKDE4NjgyNCwxKSxjPTB8YVs0NjcwN10pLGZlW2M+PjBdPTAsYVs0NjcwN109Yz0wfGFb''@;'; + put 'put ''NDY3MDZdLDB8ZmVbbT4+MF0mJkZ0KGwpLDB8Y31mdW5jdGlvbiBEVyhsLGMsZil7Zm9yKGJGKGx8PTAsY3w9MCwwLGZ8PTApLGw9MHx5cyhsKTtsOylFbihjLDk3MzQ1KSxEVyhsLGMsZiksbD0wfE1zKGwpfWZ1bmN0aW9uIFNsKGwpe3ZhciBjO2M9MSsobHw9MCl8MDtlOmRve2lmKDk1PT0o''@;'; + put 'put ''MHxmZVtsPj4wXSkpe3N3aXRjaCgoKDI1NSYobD0oMHxmZVtjPj4wXSktMTAwPDwyND4+MjQpKT4+PjJ8bDw8NiYyNTUpPDwyND4+MjQpe2Nhc2UgMDppZighKDB8amkoYyw2NzY5NSkpKXtsPTE7YnJlYWsgZX1icmVhaztjYXNlIDI6aWYoISgwfGppKGMsNjc3MDEpKSl7bD0xO2JyZWFrIGV9''@;'; + put 'put ''YnJlYWs7Y2FzZSAxOmlmKCEoMHxqaShjLDY3NzA4KSkpe2w9MTticmVhayBlfXJldHVybiAwPT0oMHxqaShjLDY3NzIyKSl8MDtjYXNlIDQ6aWYoISgwfGppKGMsNjc3MTUpKSl7bD0xO2JyZWFrIGV9bD0wPT0oMHxqaShjLDY3NzMwKSkmMTticmVhayBlO2RlZmF1bHQ6bD0wO2JyZWFrIGV9''@;'; + put 'put ''bD0wfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gbjdlKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgdyxwPTAsbT0wLEE9MDt3PWFlLGFlPWFlKzE2fDAscD13O2Rve2lmKDB8bCYmMHxmZVtsPj4wXSl7aWYoIShBPTB8bEYobCkpKXthW3A+PjJdPWwsJHIoMCw2NzE4''@;'; + put 'put ''NixwKTticmVha31mb3IoRW4oYywxNTM1OTkpLGFbZj4+Ml09MSsobT0wfGFbZj4+Ml0pLHZhKGMsbSksRW4oYyw2NzIxMyksbT1BKzh8MCxsPTAscD0wOyEoKDB8cCk+PSgwfGFbQT4+Ml0pKTspbD9FbihjLDk3MzQ1KTpsPTEscjdlKCgwfGFbbT4+Ml0pKyg4MCpwfDApfDAsYyxmKSxwPXAr''@;'; + put 'put ''MXwwO2FbZj4+Ml09KDB8YVtmPj4yXSktMSxFbihjLDE1MzU5OSksdmEoYywwfGFbZj4+Ml0pLEVuKGMsOTczNDApLFByZShBKX19d2hpbGUoMCk7YWU9d31mdW5jdGlvbiByN2UobCxjLGYpe2x8PTAsY3w9MDt2YXIgbSxBLHcsYixrLE0sRCxSLEcsSyxwZSxnZSxiZSxPZSxMZSxSZSxIZSxW''@;'; + put 'put ''ZSxudCxwPTAscWU9MCxXZT0wLG90PTAsU3Q9MDtudD1hZSxhZT1hZSsyNDB8MCxWZT1udCsyMjR8MCxIZT1udCsyMTZ8MCxSZT1udCsyMDh8MCxMZT1udCsyMDB8MCxPZT1udCsxOTJ8MCxiZT1udCsxODR8MCxnZT1udCsxNzZ8MCxwZT1udCsxNTJ8MCxLPW50KzEzNnwwLEc9bnQrMTI4fDAs''@;'; + put 'put ''Uj1udCsxMTJ8MCxEPW50KzEwNHwwLE09bnQrOTZ8MCxrPW50Kzg4fDAsYj1udCs3MnwwLHc9bnQrNDh8MCxxZT1udCs0MHwwLEE9bnQrOHwwLG09bnQsYVsoZnw9MCk+PjJdPTErKHA9MHxhW2Y+PjJdKSx2YShjLHApLEVuKGMsOTczNzQpLHZhKGMsMHxhW2Y+PjJdKSxwPTB8YVtsPj4yXTtl''@;'; + put 'put ''OmRve3N3aXRjaCgwfHApe2Nhc2UgMTpjYXNlIDA6YVttPj4yXT0wPT0oMHxwKT82OToxMDEsT3IoYyw2NzIxNixtKSx2YShjLDB8YVtmPj4yXSksU3Q9K19bbCsxNj4+M10sb3Q9K19bbCsyND4+M10sV2U9K19bbCszMj4+M10sX1tBPj4zXT0rX1tsKzg+PjNdLF9bQSs4Pj4zXT1TdCxfW0Er''@;'; + put 'put ''MTY+PjNdPW90LF9bQSsyND4+M109V2UsT3IoYyw2NzIyOSxBKTticmVhaztjYXNlIDM6Y2FzZSAyOmFbcWU+PjJdPTI9PSgwfHApPzgwOjExMixPcihjLDY3MjE2LHFlKSx2YShjLDB8YVtmPj4yXSksTFcoYyxsKzh8MCk7YnJlYWs7Y2FzZSA1OmNhc2UgNDphW3c+PjJdPTQ9PSgwfHApPzY2''@;'; + put 'put ''Ojk4LE9yKGMsNjcyMTYsdyksdmEoYywwfGFbZj4+Ml0pLExXKGMsbCs4fDApO2JyZWFrO2Nhc2UgNjpPcihjLDY3MjY0LG50KzU2fDApLHZhKGMsMHxhW2Y+PjJdKSxMVyhjLGwrOHwwKTticmVhaztjYXNlIDc6T3IoYyw2NzI3NixudCs2NHwwKSx2YShjLDB8YVtmPj4yXSksU3Q9K19bbCsx''@;'; + put 'put ''Nj4+M10sX1tiPj4zXT0rX1tsKzg+PjNdLF9bYis4Pj4zXT1TdCxPcihjLDY3Mjg4LGIpLHZhKGMsMHxhW2Y+PjJdKSxhW2s+PjJdPTA9PSgwfChxZT0wfGFbbCsyND4+Ml0pKT8xMDg6MT09KDB8cWUpPzk5OjExNCxPcihjLDY3MzEwLGspLHZhKGMsMHxhW2Y+PjJdKSxfW00+PjNdPStfW2wr''@;'; + put 'put ''MzI+PjNdLE9yKGMsNjczMjYsTSksdmEoYywwfGFbZj4+Ml0pLGFbRD4+Ml09MHxvcCgwfGFbbCs0MD4+Ml0sZiksT3IoYyw2NzM0MyxEKTticmVhaztjYXNlIDk6Y2FzZSA4OmFbUj4+Ml09OD09KDB8cCk/Njc6OTksT3IoYyw2NzIxNixSKSx2YShjLDB8YVtmPj4yXSksT3IoYyw2NzM1Nyxu''@;'; + put 'put ''dCsxMjB8MCksdmEoYywwfGFbZj4+Ml0pLGFbRz4+Ml09MHxvcCgwfGFbbCs4Pj4yXSxmKSxPcihjLDY3Mzc0LEcpO2JyZWFrO2Nhc2UgMTM6Y2FzZSAxNDpzd2l0Y2goYVtLPj4yXT0xMz09KDB8cCk/Njc6OTksT3IoYyw2NzIxNixLKSx2YShjLDB8YVtmPj4yXSksMHxhW2wrOD4+Ml0pe2Nh''@;'; + put 'put ''c2UgMDpPcihjLDY3MzU3LG50KzE0NHwwKSx2YShjLDB8YVtmPj4yXSksYVtwZT4+Ml09MHxvcCgwfGFbbCsxNj4+Ml0sZiksT3IoYyw2NzM3NCxwZSk7YnJlYWsgZTtjYXNlIDE6T3IoYyw2NzM4OSxudCsxNjB8MCksdmEoYywwfGFbZj4+Ml0pLGk3ZShjLGwrMTZ8MCxmKTticmVhayBlO2Rl''@;'; + put 'put ''ZmF1bHQ6T3IoYyw2NzQwOCxudCsxNjh8MCksdmEoYywwfGFbZj4+Ml0pLHVpZShjLGwrMTZ8MCxmKTticmVhayBlfWNhc2UgMTA6T3IoYyw2NzQyNyxnZSksdmEoYywwfGFbZj4+Ml0pLF9bYmU+PjNdPStfW2wrOD4+M10sT3IoYyw2NzQzOSxiZSksdmEoYywwfGFbZj4+Ml0pLGFbT2U+PjJd''@;'; + put 'put ''PTB8b3AoMHxhW2wrMTY+PjJdLGYpLE9yKGMsNjc0NTUsT2UpO2JyZWFrO2Nhc2UgMTE6T3IoYyw2NzQ2OSxMZSksdmEoYywwfGFbZj4+Ml0pLGFbUmU+PjJdPTB8b3AoMHxhW2wrOD4+Ml0sZiksT3IoYyw2NzQ4MSxSZSk7YnJlYWs7Y2FzZSAxNTpPcihjLDY3NDk2LEhlKSx2YShjLDB8YVtm''@;'; + put 'put ''Pj4yXSksYVtWZT4+Ml09YVtsKzg+PjJdLE9yKGMsNjc1MDgsVmUpfX13aGlsZSgwKTthW2Y+PjJdPXFlPSgwfGFbZj4+Ml0pLTF8MCx2YShjLHFlKSxFbihjLDc1MzU3KSxhZT1udH1mdW5jdGlvbiBMVyhsLGMpe3ZhciBmLHAsbSxBLHcsYixrPTA7Zm9yKGI9YWUsYWU9YWUrNDh8MCx3PWIr''@;'; + put 'put ''MzJ8MCxBPWIrMTZ8MCxtPWIrOHwwLHA9MHxhWyhjfD0wKT4+Ml0sZj0wfGFbYys0Pj4yXSxPcihsfD0wLDY3NjY5LGIpLGM9MDshKCgwfGMpPj0oMHxwKSk7KSgwfGMpPjAmJk9yKGwsMTAwOTk5LG0pLGs9K19bZisoMjQqY3wwKSs4Pj4zXSxfW0E+PjNdPStfW2YrKDI0KmN8MCk+PjNdLF9b''@;'; + put 'put ''QSs4Pj4zXT1rLE9yKGwsNjc2ODEsQSksYz1jKzF8MDtPcihsLDY3NjIyLHcpLGFlPWJ9ZnVuY3Rpb24gaTdlKGwsYyxmKXtjfD0wO3ZhciBwLG0sdyxBPTA7cD1hZSxhZT1hZSszMnwwLG09cCsxNnwwLHc9cCx2YShsfD0wLDB8YVsoZnw9MCk+PjJdKSxBPStfW2MrOD4+M10sX1t3Pj4zXT0r''@;'; + put 'put ''X1tjPj4zXSxfW3crOD4+M109QSxPcihsLDY3NjI1LHcpLHZhKGwsMHxhW2Y+PjJdKSxBPStfW2MrMjQ+PjNdLF9bbT4+M109K19bYysxNj4+M10sX1ttKzg+PjNdPUEsT3IobCw2NzY0NyxtKSx2YShsLDB8YVtmPj4yXSksT1cobCwwfGFbYyszMj4+Ml0sMHxhW2MrMzY+PjJdLGYpLGFlPXB9''@;'; + put 'put ''ZnVuY3Rpb24gdWllKGwsYyxmKXtjfD0wO3ZhciBwLG0sYixBPTAsdz0wO3A9YWUsYWU9YWUrNDh8MCxtPXArMjR8MCxiPXAsdmEobHw9MCwwfGFbKGZ8PTApPj4yXSksQT0rX1tjKzg+PjNdLHc9K19bYysxNj4+M10sX1tiPj4zXT0rX1tjPj4zXSxfW2IrOD4+M109QSxfW2IrMTY+PjNdPXcs''@;'; + put 'put ''T3IobCw2NzUyNCxiKSx2YShsLDB8YVtmPj4yXSksdz0rX1tjKzMyPj4zXSxBPStfW2MrNDA+PjNdLF9bbT4+M109K19bYysyND4+M10sX1ttKzg+PjNdPXcsX1ttKzE2Pj4zXT1BLE9yKGwsNjc1NTIsbSksdmEobCwwfGFbZj4+Ml0pLE9XKGwsMHxhW2MrNDg+PjJdLDB8YVtjKzUyPj4yXSxm''@;'; + put 'put ''KSxhZT1wfWZ1bmN0aW9uIE9XKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBBLHcsYixrLG09MCxNPTAsRD0wO2ZvcihrPWFlLGFlPWFlKzQ4fDAsYj1rKzMyfDAsdz1rKzE2fDAsQT1rKzh8MCxPcihsfD0wLDY3NTgwLGspLG09MDshKCgwfG0pPj0oMHxjKSk7KSgwfG0pPjAmJk9yKGws''@;'; + put 'put ''MTAwOTk5LEEpLEQ9K2puW2YrKG08PDMpPj4yXSxNPTB8b3AoMHxhW2YrKG08PDMpKzQ+PjJdLHApLF9bdz4+M109RCxhW3crOD4+Ml09TSxPcihsLDY3NTkxLHcpLG09bSsxfDA7T3IobCw2NzYyMixiKSxhZT1rfWZ1bmN0aW9uIHU3KGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MDtzd2l0Y2go''@;'; + put 'put ''MHxhWzE0NCsobHw9MCk+PjJdKXtjYXNlIDE6cD0xMCxsPTE7YnJlYWs7Y2FzZSAyOnA9MTAsbD0yO2JyZWFrO2RlZmF1bHQ6cD0wLGw9MH1hW2M+PjJdPWwsX1tmPj4zXT1wfWZ1bmN0aW9uIGtGKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIEEsdyxiLG09MCxrPTAsTT0wO2Zv''@;'; + put 'put ''cihiPWFlLGFlPWFlKzE2fDAsdz1iKzh8MCxBPWIsbT0wOyEoKDB8bSk+PSgwfGYpKTspaz0rX1tjKyhtPDw0KSs4Pj4zXSxhW0E+PjJdPX5+KChNPStfW2MrKG08PDQpPj4zXSkrKE0+PTA/LjU6LS41KSksYVtBKzQ+PjJdPX5+KGsrKGs+PTA/LjU6LS41KSksT3IobCw4MTA5OSxBKSxtPW0r''@;'; + put 'put ''MXwwOzB8cCYmKE09K19bYys4Pj4zXSxhW3c+PjJdPX5+KChrPStfW2M+PjNdKSsoaz49MD8uNTotLjUpKSxhW3crND4+Ml09fn4oTSsoTT49MD8uNTotLjUpKSxPcihsLDgxMDk5LHcpKSxFbihsLDE1MzU5OSksYWU9Yn1mdW5jdGlvbiBGVyhsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIg''@;'; + put 'put ''ayxtPTAsQT0wLHc9MCxiPTAsTT0wLEQ9MCxSPTA7Zm9yKGFbKGx8PTApPj4yXT0wLGs9MHxhWzQ2NzExXSxBPTE5NTA3NSxtPTAsdz0tMTs7KXtpZigoMHxtKT49KDB8aykpe009NjticmVha31pZihEPSgwfHJ0WzE5MDY4MCsobTw8MSk+PjFdKS1jfDAsYj0oMHxydFsxOTE3MDQrKG08PDEp''@;'; + put 'put ''Pj4xXSktcHwwLCgwfChiPSgwfEFyKFI9KDB8cnRbMTkxMTkyKyhtPDwxKT4+MV0pLWZ8MCxSKSkrKDB8QXIoRCxEKSkrKDB8QXIoYixiKSl8MCkpPCgwfEEpKXtpZighYilicmVhaztBPWIsdz1tfW09bSsxfDB9cmV0dXJuIDY9PSgwfE0pJiYoYVs0NjcxMV09aysxLDI1Nj09KDB8ayk/bT13''@;'; + put 'put ''OihydFsxOTA2ODArKG08PDEpPj4xXT1jLHJ0WzE5MTE5MisobTw8MSk+PjFdPWYscnRbMTkxNzA0KyhtPDwxKT4+MV09cCxhW2w+PjJdPTEpKSwwfG19ZnVuY3Rpb24gWlQobCxjLGYscCxtLEEsdyxiKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wLGJ8PTA7dmFyIFIsRyxL''@;'; + put 'put ''LHBlLGdlLGJlLEhlLGs9MCxNPTAsRD0wLE9lPTAsTGU9MCxSZT0wLFZlPTA7SGU9YWUsYWU9YWUrMTI4fDAsUmU9SGUrMTIwfDAsYmU9SGUrMTEyfDAsZ2U9SGUrOTZ8MCxwZT1IZSs4MHwwLEs9SGUrNTZ8MCxMZT1IZSs0OHwwLEc9SGUrNDB8MCxPZT1IZSsyNHwwLFI9SGU7ZTpkb3tpZigw''@;'; + put 'put ''IT0oMHxmKSYwIT0oMHxwKSl7Zm9yKGs9cCsxMHwwLCgwfGFbNDY3MTRdKTwoMHxwKT8oYVs0NjcxNF09ayxEPTB8VWEoMHxhWzQ2NzE1XSxrPDwzKSxhWzQ2NzE1XT1EKTpEPTB8YVs0NjcxNV0saz0wOyEoKDB8ayk+PSgwfHApKTspYVtEKyhrPDwzKT4+Ml09fn4oKFZlPStfW2YrKGs8PDQp''@;'; + put 'put ''Pj4zXSkrKFZlPj0wPy41Oi0uNSkpLGFbRCsoazw8MykrND4+Ml09fn4oKFZlPStfW2YrKGs8PDQpKzg+PjNdKSsoVmU+PTA/LjU6LS41KSksaz1rKzF8MDtpZigoZj0wIT0oMHxtKSkmMD09KDB8KGs9MHxhWyhNPWwrNjR8MCk+PjJdKSkpe2lmKCEoMHxmZVttPj4wXSkpYnJlYWs7c3dpdGNo''@;'; + put 'put ''KDB8Yyl7Y2FzZSAwOk9lPTB8YVtEPj4yXSxMZT0wfGFbRCsxMj4+Ml0sUmU9MHxhW0QrOD4+Ml0scD0wfGFbRCs0Pj4yXSxhW1I+PjJdPW0sYVtSKzQ+PjJdPU9lLGFbUis4Pj4yXT1MZSxhW1IrMTI+PjJdPVJlLGFbUisxNj4+Ml09cCxPcihsLDY3OTU0LFIpO2JyZWFrIGU7Y2FzZSAxOlJl''@;'; + put 'put ''PTB8YVtEKzQ+PjJdLHA9KDB8YVtEKzg+PjJdKS0oTGU9MHxhW0Q+PjJdKXwwLGFbT2U+PjJdPW0sYVtPZSs0Pj4yXT1MZSxhW09lKzg+PjJdPVJlLGFbT2UrMTI+PjJdPXAsT3IobCw2Nzk3NSxPZSk7YnJlYWsgZTtjYXNlIDI6Zm9yKGFbRz4+Ml09bSxPcihsLDY3OTk1LEcpLGs9MDshKCgw''@;'; + put 'put ''fGspPj0oMHxwKSk7KVJlPTB8YVsoT2U9MHxhWzQ2NzE1XSkrKGs8PDMpKzQ+PjJdLGFbTGU+PjJdPWFbT2UrKGs8PDMpPj4yXSxhW0xlKzQ+PjJdPVJlLE9yKGwsNjgwMDMsTGUpLGs9aysxfDA7RW4obCwxNTM1OTkpO2JyZWFrIGU7ZGVmYXVsdDpQcigxMzgzOTQsNjgwMTAsNjMsNjgwMzAp''@;'; + put 'put ''fX1pZihmJjE9PSgwfGspKXtpZighKDB8ZmVbbT4+MF0pKWJyZWFrO2lmKCFjKXtMZT0wfGFbRCsxMj4+Ml0sUmU9MHxhW0QrOD4+Ml0scD0wfGFbRCs0Pj4yXSxhW0s+PjJdPWFbRD4+Ml0sYVtLKzQ+PjJdPUxlLGFbSys4Pj4yXT1SZSxhW0srMTI+PjJdPXAsYVtLKzE2Pj4yXT1tLGFbSysy''@;'; + put 'put ''MD4+Ml09QSxPcihsLDY4MDQ3LEspO2JyZWFrfVByKDEzODM5NCw2ODAxMCw3NSw2ODAzMCl9aWYoMj09KC0yJmt8MCkpe3N3aXRjaCgwfGMpe2Nhc2UgMTpFbihsLDY4MDgwKTticmVhaztjYXNlIDA6RW4obCw2ODEwMSk7YnJlYWs7Y2FzZSAyOkVuKGwsNjgxMjApO2JyZWFrO2RlZmF1bHQ6''@;'; + put 'put ''UHIoMTM4Mzk0LDY4MDEwLDkxLDY4MDMwKX0wfGImJjB8ZmVbYj4+MF0mJihFbihsLDczNjAwKSxFbihsLDB8ZlEoYikpLEVuKGwsOTg3NDQpKSxmJiYwfGZlW20+PjBdJiYoRW4obCw2ODEzOSksRW4obCwwfGZRKG0pKSxFbihsLDk4NzQ0KSksMHx3JiYwfGZlW3c+PjBdJiYoRW4obCw3NDU1''@;'; + put 'put ''OSksRW4obCwwfE0xKHcpKSxFbihsLDk4NzQ0KSksMHxBJiYwfGZlW0E+PjBdJiYoRW4obCw2ODE0NyksRW4obCwwfE0xKEEpKSxFbihsLDk4NzQ0KSksRW4obCw2ODE1NiksRW4obCw2ODE2NCk7dDpkb3tzd2l0Y2goMHxjKXtjYXNlIDE6UmU9MHxhWzQrKHA9MHxhWzQ2NzE1XSk+PjJdLHA9''@;'; + put 'put ''KDB8YVtwKzg+PjJdKS0oTGU9MHxhW3A+PjJdKXwwLGFbcGU+PjJdPUxlLGFbcGUrND4+Ml09UmUsYVtwZSs4Pj4yXT1wLE9yKGwsNjgxNzQscGUpO2JyZWFrO2Nhc2UgMDpMZT0wfGFbMTIrKE9lPTB8YVs0NjcxNV0pPj4yXSxSZT0wfGFbT2UrOD4+Ml0scD0wfGFbT2UrND4+Ml0sYVtnZT4+''@;'; + put 'put ''Ml09YVtPZT4+Ml0sYVtnZSs0Pj4yXT1MZSxhW2dlKzg+PjJdPVJlLGFbZ2UrMTI+PjJdPXAsT3IobCw2ODE4MyxnZSk7YnJlYWs7Y2FzZSAyOmZvcihrPTB8YVs0KyhMZT0wfGFbNDY3MTVdKT4+Ml0sYVtiZT4+Ml09YVtMZT4+Ml0sYVtiZSs0Pj4yXT1rLE9yKGwsNjgxOTUsYmUpLGs9MTs7''@;'; + put 'put ''KXtpZigoMHxrKT49KDB8cCkpYnJlYWsgdDtMZT0wfGFbKE9lPTB8YVs0NjcxNV0pKyhrPDwzKSs0Pj4yXSxhW1JlPj4yXT1hW09lKyhrPDwzKT4+Ml0sYVtSZSs0Pj4yXT1MZSxPcihsLDY4MjAxLFJlKSxrPWsrMXwwfX19d2hpbGUoMCk7aWYoMz09KDB8YVtNPj4yXSkpe0VuKGwsNzM0MjQp''@;'; + put 'put ''O2JyZWFrfUVuKGwsNjgyMDgpO2JyZWFrfX19d2hpbGUoMCk7YWU9SGV9ZnVuY3Rpb24gV1QobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wO3N3aXRjaCgwfGFbMTQ0KyhsfD0wKT4+Ml0pe2Nhc2UgMTpwPTEwLGw9MTticmVhaztjYXNlIDI6cD0xMCxsPTI7YnJlYWs7ZGVmYXVsdDpwPTAsbD0w''@;'; + put 'put ''fWFbYz4+Ml09bCxfW2Y+PjNdPXB9ZnVuY3Rpb24gelcobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgQSx3LGIsbT0wLGs9MCxNPTA7Zm9yKGI9YWUsYWU9YWUrMTZ8MCx3PWIrOHwwLEE9YixtPTA7ISgoMHxtKT49KDB8ZikpOylrPStfW2MrKG08PDQpKzg+PjNdLGFbQT4+Ml09''@;'; + put 'put ''fn4oKE09K19bYysobTw8NCk+PjNdKSsoTT49MD8uNTotLjUpKSxhW0ErND4+Ml09fn4oaysoaz49MD8uNTotLjUpKSxPcihsLDgxMDk5LEEpLG09bSsxfDA7MHxwJiYoTT0rX1tjKzg+PjNdLGFbdz4+Ml09fn4oKGs9K19bYz4+M10pKyhrPj0wPy41Oi0uNSkpLGFbdys0Pj4yXT1+fihNKyhN''@;'; + put 'put ''Pj0wPy41Oi0uNSkpLE9yKGwsODEwOTksdykpLEVuKGwsMTUzNTk5KSxhZT1ifWZ1bmN0aW9uIEdXKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBrLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wLFI9MDtmb3IoYVsobHw9MCk+PjJdPTAsaz0wfGFbNDY3MTddLEE9MTk1MDc1LG09MCx3PS0x''@;'; + put 'put ''Ozspe2lmKCgwfG0pPj0oMHxrKSl7TT02O2JyZWFrfWlmKEQ9KDB8cnRbMTkyMjE2KyhtPDwxKT4+MV0pLWN8MCxiPSgwfHJ0WzE5MzI0MCsobTw8MSk+PjFdKS1wfDAsKDB8KGI9KDB8QXIoUj0oMHxydFsxOTI3MjgrKG08PDEpPj4xXSktZnwwLFIpKSsoMHxBcihELEQpKSsoMHxBcihiLGIp''@;'; + put 'put ''KXwwKSk8KDB8QSkpe2lmKCFiKWJyZWFrO0E9Yix3PW19bT1tKzF8MH1yZXR1cm4gNj09KDB8TSkmJihhWzQ2NzE3XT1rKzEsMjU2PT0oMHxrKT9tPXc6KHJ0WzE5MjIxNisobTw8MSk+PjFdPWMscnRbMTkyNzI4KyhtPDwxKT4+MV09ZixydFsxOTMyNDArKG08PDEpPj4xXT1wLGFbbD4+Ml09''@;'; + put 'put ''MSkpLDB8bX1mdW5jdGlvbiBhcChsLGMpe2x8PTA7dmFyIHAsbSxmPTAsQT0wLHc9MDtpZihtPWFlLGFlPWFlKzMyfDAscD1tLDB8KGN8PTApKXtzd2l0Y2goMHxhWzQrKDB8YVtsKzE2Pj4yXSk+PjJdKXtjYXNlIDE6Y2FzZSAwOmY9MTExNDk0O2JyZWFrO2Nhc2UgMjpmPTExMTQ4MTticmVh''@;'; + put 'put ''aztjYXNlIDM6Zj0xMTE0NTA7YnJlYWs7ZGVmYXVsdDpmPTY4ODE4fXc9K19bYys4Pj4zXSxBPStfW2MrMTY+PjNdLF9bcD4+M109K19bYz4+M10sX1twKzg+PjNdPXcsX1twKzE2Pj4zXT1BLGFbcCsyND4+Ml09ZixPcihsLDY4ODI1LHApfWFlPW19ZnVuY3Rpb24gekEobCl7dmFyIG0sdyxi''@;'; + put 'put ''LGssYz0wLGY9MCxwPTAsQT0wO2ZvcihrPWFlLGFlPWFlKzE2fDAsYj1rKzh8MCx3PWssYz0wfGFbMTYwKyhBPTB8YVsobT0xNisobHw9MCl8MCk+PjJdKT4+Ml0sanMobCwrX1tBKzE1Mj4+M10pLEVuKGwsNjg3OTkpO2MmJihBPWMrNHwwLHA9MHxhW2M+PjJdKTspaWYoMHxqaShwLDExMTA4''@;'; + put 'put ''OCkpe2ZvcihmPXA7Yz1mKzF8MCwwfGZlW2Y+PjBdOylmPWM7ZTpmb3IoOzB8ZmVbYz4+MF07KWZvcihhW3c+PjJdPWMsT3IobCw2ODgxNCx3KTs7KXtpZihmPWMrMXwwLCEoMHxmZVtjPj4wXSkpe2M9Zjtjb250aW51ZSBlfWM9Zn0wfGppKHAsMTM0MzM1KXx8KF9bMTUyKygwfGFbbT4+Ml0p''@;'; + put 'put ''Pj4zXT0wKSxhW2I+PjJdPXAsT3IobCw5NjY3MCxiKSxjPUF9ZWxzZSBjPUE7YWU9a31mdW5jdGlvbiBJRihsLGMsZil7Y3w9MCxmfD0wO3ZhciB3LGIsayxNLEQsUixHLHA9MCxtPTAsQT0wO0c9YWUsYWU9YWUrOTZ8MCxiPUcrNDh8MCxSPUcrNDB8MCxNPUcrMzJ8MCxEPUcrMjR8MCx3PUcr''@;'; + put 'put ''MTZ8MCxtPUcrOHwwLHA9RyxrPTB8YVsxNisobHw9MCk+PjJdLEVuKGwsNzM0MjkpO2U6ZG97c3dpdGNoKDB8Yyl7Y2FzZSAyOmFbcD4+Ml09ZixPcihsLDczNDM3LHApO2JyZWFrO2Nhc2UgMzphW20+PjJdPWYsT3IobCw3MzQ0OCxtKTticmVhaztjYXNlIDA6RW4obCwxMzU3MDkpO2JyZWFr''@;'; + put 'put ''O2RlZmF1bHQ6bT1jPWsrNTZ8MCxBPShwPWIpKzQwfDA7ZG97YVtwPj4yXT1hW20+PjJdLHA9cCs0fDAsbT1tKzR8MH13aGlsZSgoMHxwKTwoMHxBKSk7aWYoWkMobCxiKSwxPT0oMHxhW2srODg+PjJdKSl7c3dpdGNoKChjPTB8ZmVbYyszPj4wXSk8PDI0Pj4yNCl7Y2FzZS0xOmNhc2UgMDpi''@;'; + put 'put ''cmVhayBlfV9bdz4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMjU1JmMpLE9yKGwsNzM0NTksdyl9fX13aGlsZSgwKTtFbihsLDczNDc4KSxtPWY9aysxNnwwLEE9KHA9YikrNDB8MDtkb3thW3A+PjJdPWFbbT4+Ml0scD1wKzR8MCxtPW0rNHwwfXdoaWxlKCgwfHApPCgwfEEpKTtzd2l0Y2go''@;'; + put 'put ''WkMobCxiKSwxIT0rX1soYz1rKzE1MnwwKT4+M10mJihFbihsLDczNDg5KSxqcyhsLCtfW2M+PjNdKSksMHxhW2srMTQ0Pj4yXSl7Y2FzZSAxOmFbRD4+Ml09NzM1MjksT3IobCw3MzUwNixEKTticmVhaztjYXNlIDI6YVtNPj4yXT03MzUzMyxPcihsLDczNTA2LE0pfWU6ZG97aWYoMT09KDB8''@;'; + put 'put ''YVtrKzQ4Pj4yXSkpe3N3aXRjaCgoYz0wfGZlW2YrMz4+MF0pPDwyND4+MjQpe2Nhc2UtMTpjYXNlIDA6YnJlYWsgZX1fW1I+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKDI1NSZjKSxPcihsLDczNTM3LFIpfX13aGlsZSgwKTtFbihsLDk4NzQ0KSxhZT1HfWZ1bmN0aW9uIFpDKGwsYyl7bHw9''@;'; + put 'put ''MCxjfD0wO3ZhciBmLHAsbT0wLEE9MDtwPWFlLGFlPWFlKzE2fDAsZj1wO2U6ZG97c3dpdGNoKDB8YVtjKzMyPj4yXSl7Y2FzZSA1OkVuKGwsMHxhW2M+PjJdKTticmVhaztjYXNlIDE6aWYoMHxmZVtjKzM+PjBdKXtBPTB8SnRbYysxPj4wXSxtPTB8SnRbYysyPj4wXSxhW2Y+PjJdPUp0W2M+''@;'; + put 'put ''PjBdLGFbZis0Pj4yXT1BLGFbZis4Pj4yXT1tLE9yKGwsNzU3MTQsZik7YnJlYWsgZX1FbihsLDEzNzM3OSk7YnJlYWsgZTtkZWZhdWx0OlByKDEzODM5NCw3MzU1OCwxMTcsNzM1NzgpfX13aGlsZSgwKTthZT1wfWZ1bmN0aW9uIHFXKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgYixrLE0s''@;'; + put 'put ''RCxSLEcscGUscD0wLG09MCxBPTAsdz0wLEs9MDtwZT1hZSxhZT1hZSsxMTJ8MCxNPXBlKzY0fDAsRz1wZSs1NnwwLGs9cGUrNDh8MCxiPXBlKzQwfDAsbT1wZSszMnwwLHc9cGUsYVs0NjcyMl09MSsoUj0wfGFbNDY3MjJdKSxwPS4wMTc0NTMyOTI1MTk5NDMyOTUqKygwfGFbMTM2KyhEPTB8''@;'; + put 'put ''YVtsKzE2Pj4yXSk+PjJdKSxhW3c+PjJdPTAsYVt3KzQ+PjJdPTAsYVt3Kzg+PjJdPTAsYVt3KzEyPj4yXT0wLGFbdysxNj4+Ml09MCxhW3crMjA+PjJdPTAsYVt3KzI0Pj4yXT0wLGFbdysyOD4+Ml09MCxkRChjLHcsZixwLDApLGFbTT4+Ml09UixPcihsLDczODMxLE0pLEVuKGwsNzM4OTYp''@;'; + put 'put ''LGpzKGwsK19bdz4+M10pLEVuKGwsNzM5MDEpLGpzKGwsK19bdys4Pj4zXSksRW4obCw3MzkwOCksanMobCwrX1t3KzE2Pj4zXSksRW4obCw3MzkxNSksanMobCwrX1t3KzI0Pj4zXSksRW4obCw3MzkyMiksKHA9K2puWyh3PUQrMTQwfDApPj4yXSk+MD8oX1ttPj4zXT1wKy0uMDAxLE9yKGws''@;'; + put 'put ''NzM5MjcsbSkpOkVuKGwsNzM3MDMpLG09Yz1EKzU2fDAsQT0oZj1NKSs0MHwwO2Rve2FbZj4+Ml09YVttPj4yXSxmPWYrNHwwLG09bSs0fDB9d2hpbGUoKDB8Zik8KDB8QSkpO1pDKGwsTSksRW4obCw3MzczOSk7ZTpkb3tpZigxPT0oMHxhW0QrODg+PjJdKSl7c3dpdGNoKChjPTB8ZmVbYysz''@;'; + put 'put ''Pj4wXSk8PDI0Pj4yNCl7Y2FzZS0xOmNhc2UgMDpLPTc7YnJlYWsgZX1fW2I+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKDI1NSZjKSxPcihsLDk5NjEyLGIpfWVsc2UgSz03fXdoaWxlKDApOzc9PSgwfEspJiZFbihsLDczNzU0KSxFbihsLDczNzU3KSwocD0ram5bdz4+Ml0pPjA/KF9baz4+''@;'; + put 'put ''M109cCxPcihsLDczOTI3LGspKTpFbihsLDczNzYzKSxtPWM9RCs5NnwwLEE9KGY9TSkrNDB8MDtkb3thW2Y+PjJdPWFbbT4+Ml0sZj1mKzR8MCxtPW0rNHwwfXdoaWxlKCgwfGYpPCgwfEEpKTtaQyhsLE0pLEVuKGwsNzM3MzkpO2U6ZG97aWYoMT09KDB8YVtEKzEyOD4+Ml0pKXtzd2l0Y2go''@;'; + put 'put ''KGM9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0KXtjYXNlLTE6Y2FzZSAwOks9MTQ7YnJlYWsgZX1fW0c+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKDI1NSZjKSxPcihsLDk5NjEyLEcpfWVsc2UgSz0xNH13aGlsZSgwKTtyZXR1cm4gMTQ9PSgwfEspJiZFbihsLDczNzU0KSxFbihsLDczOTY3KSxh''@;'; + put 'put ''ZT1wZSwwfFJ9ZnVuY3Rpb24gZVkobCl7bHw9MDt2YXIgZix3LGIsayxNLEQsRyxLLGM9MCxwPTAsbT0wLEE9MCxSPTA7Rz1hZSxhZT1hZSs2NHwwLGI9RysxNnwwLEQ9Rys4fDAsdz1HLGFbNDY3MjFdPTErKE09MHxhWzQ2NzIxXSksZj1LPS4wMTc0NTMyOTI1MTk5NDMyOTUqKygwfGFbMTM2''@;'; + put 'put ''KyhrPTB8YVtsKzE2Pj4yXSk+PjJdKSwwPT1LPyhwPTUwLGM9NTApOihwPX5+KDUwKigraGEoK2YpKzEpKSxjPX5+KDUwKigxLStEYSgrZikpKSksYVtiPj4yXT1NLGFbYis0Pj4yXT1wLGFbYis4Pj4yXT1jLE9yKGwsNzM2MTksYiksRW4obCw3MzcwMyksbT1jPWsrNTZ8MCxBPShwPWIpKzQw''@;'; + put 'put ''fDA7ZG97YVtwPj4yXT1hW20+PjJdLHA9cCs0fDAsbT1tKzR8MH13aGlsZSgoMHxwKTwoMHxBKSk7WkMobCxiKSxFbihsLDczNzM5KTtlOmRve2lmKDE9PSgwfGFbays4OD4+Ml0pKXtzd2l0Y2goKGM9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0KXtjYXNlLTE6Y2FzZSAwOlI9NjticmVhayBlfV9b''@;'; + put 'put ''dz4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMjU1JmMpLE9yKGwsOTk2MTIsdyl9ZWxzZSBSPTZ9d2hpbGUoMCk7Nj09KDB8UikmJkVuKGwsNzM3NTQpLEVuKGwsNzM3NTcpLEVuKGwsNzM3NjMpLG09Yz1rKzk2fDAsQT0ocD1iKSs0MHwwO2Rve2FbcD4+Ml09YVttPj4yXSxwPXArNHwwLG09''@;'; + put 'put ''bSs0fDB9d2hpbGUoKDB8cCk8KDB8QSkpO1pDKGwsYiksRW4obCw3MzczOSk7ZTpkb3tpZigxPT0oMHxhW2srMTI4Pj4yXSkpe3N3aXRjaCgoYz0wfGZlW2MrMz4+MF0pPDwyND4+MjQpe2Nhc2UtMTpjYXNlIDA6Uj0xMDticmVhayBlfV9bRD4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMjU1''@;'; + put 'put ''JmMpLE9yKGwsOTk2MTIsRCl9ZWxzZSBSPTEwfXdoaWxlKDApO3JldHVybiAxMD09KDB8UikmJkVuKGwsNzM3NTQpLEVuKGwsNzM3OTkpLGFlPUcsMHxNfWZ1bmN0aW9uIGM3KGwsYyxmLHAsbSl7dmFyIEEsdyxiO2N8PTAsZnw9MCxwfD0wLG18PTAsYj1hZSxhZT1hZSsxNnwwLHc9Yis4fDAs''@;'; + put 'put ''QT1iLEVuKGx8PTAsNzQ1ODcpLEVuKGwsMHxNMShjKSksMHxmJiYoYVtBPj4yXT0wfE0xKGYpLE9yKGwsNzQ1OTUsQSkpLGFbdz4+Ml09cCxPcihsLDc0NTk5LHcpLDB8KGM9MHxMaShtLDc0NjExKSkmJjB8ZmVbYz4+MF0mJihFbihsLDEwMjYwNCksRW4obCwwfE0xKGMpKSksRW4obCw5ODc0''@;'; + put 'put ''NCksYWU9Yn1mdW5jdGlvbiBZVChsKXtyZXR1cm4gMHxsfWZ1bmN0aW9uIFVUKGwpe0VuKGx8PTAsMHxmZVtsKzE0ND4+MF0/MHxhW2wrMTQ4Pj4yXTo3NTI2Myl9ZnVuY3Rpb24gR0EobCxjKXtsfD0wLGN8PTA7dmFyIGYscCxtPTAsQT0wO3A9YWUsYWU9YWUrMTZ8MCxmPXA7ZTpkb3tzd2l0''@;'; + put 'put ''Y2goMHxhW2MrMzI+PjJdKXtjYXNlIDU6RW4obCwwfGFbYz4+Ml0pO2JyZWFrO2Nhc2UgMTppZigwfGZlW2MrMz4+MF0pe0E9MHxKdFtjKzE+PjBdLG09MHxKdFtjKzI+PjBdLGFbZj4+Ml09SnRbYz4+MF0sYVtmKzQ+PjJdPUEsYVtmKzg+PjJdPW0sT3IobCw3NTcxNCxmKTticmVhayBlfUVu''@;'; + put 'put ''KGwsOTczMDkpO2JyZWFrIGU7ZGVmYXVsdDpQcigxMzgzOTQsNzUxODEsNDksNzUyNDUpfX13aGlsZSgwKTthZT1wfWZ1bmN0aW9uIFFUKGwpe3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wO3N3aXRjaCh3PWFlLGFlPWFlKzE2fDAsQT13LDB8YVsxMisobT0wfGFbMTYrKGx8PTApPj4yXSk+PjJd''@;'; + put 'put ''KXtjYXNlIDg6Yz0xLGY9MTExNDgxLHA9bSs4fDA7YnJlYWs7Y2FzZSAxMDpjPTAsZj0xMTE0ODEscD1tKzh8MDticmVhaztjYXNlIDM6Y2FzZSAyOmNhc2UgOTpjPTEsZj0xMTE0NTAscD1tKzh8MDticmVhaztjYXNlIDc6Y2FzZSA2OmNhc2UgMTE6Yz0wLGY9MTExNDUwLHA9bSs4fDA7YnJl''@;'; + put 'put ''YWs7Y2FzZSAwOmNhc2UgMTpjPTEsZj0xMTE0OTQscD1tKzh8MDticmVhaztjYXNlIDQ6Yz0wLGY9NzUyMTcscD1tKzh8MDticmVhaztjYXNlIDU6Yz0wLGY9MTExNDk0LHA9bSs4fDA7YnJlYWs7ZGVmYXVsdDpQcigxMzgzOTQsNzUxODEsMTA2LDc1MjAwKX1tPTB8YVs4KygwfGFbcD4+Ml0p''@;'; + put 'put ''Pj4yXSxhW0E+PjJdPWMsYVtBKzQ+PjJdPWYsYVtBKzg+PjJdPW0sT3IobCw3NTIyOSxBKSxhZT13fWZ1bmN0aW9uIG5pKGwpe2x8PTA7dmFyIHBlLGdlLE9lLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxiZT0wO09lPWFlLGFlPWFlKzE2fDAs''@;'; + put 'put ''Zj1PZSwoYz0wfGFbNDY3MjRdKXx8KGFbNDY3MjVdPTY0LGM9MHxRbig2NCksYVs0NjcyNF09YyksZ2U9ZisxNXwwLHBlPWYrMTR8MCxtPTAsSz0wLFI9MCxmPTAscD0wO2U6Zm9yKDs7KXtEPTAhPSgwfFIpLGs9bSxHPWwsYj1mO3Q6Zm9yKDs7KXtpZighRyl7YmU9MzI7YnJlYWsgZX1pZigh''@;'; + put 'put ''KChmPTB8ZmVbRz4+MF0pPDwyND4+MjQpKXtiZT0zMjticmVhayBlfXN3aXRjaCgoMHxLKT4oKGw9MHxhWzQ2NzI1XSktOHwwKSYmKGFbNDY3MjVdPWM9bDw8MSxjPTB8VjAoMHxhWzQ2NzI0XSxjKSxhWzQ2NzI0XT1jLGM9YytLfDAsZj0wfGZlW0c+PjBdKSxmPDwyND4+MjQpe2Nhc2UgNjA6''@;'; + put 'put ''Zj00LGw9MTAyMTUzLGJlPTI2O2JyZWFrIHQ7Y2FzZSA2MjpmPTQsbD0xMDIxMzYsYmU9Mjc7YnJlYWsgdDtjYXNlIDM4OmJlPTEwO2JyZWFrIHQ7Y2FzZSA0NTpmPTUsbD0xMDIxNDcsdz1iO2JyZWFrIHR9aWYoRCZmPDwyND4+MjQ9PTMyKXtiZT0xMjticmVha31zd2l0Y2goZjw8MjQ+PjI0''@;'; + put 'put ''KXtjYXNlIDM0OmY9NixsPTEwMjExNixiZT0yNjticmVhayB0O2Nhc2UgMzk6Zj01LGw9MTAyMTQxLGJlPTI3O2JyZWFrIHR9aWYoIShmPDwyND4+MjQ8MCkpe2Y9MSxsPUcsYmU9MjY7YnJlYWt9Zm9yKHc9MTI3LGw9MDshKChtPTI1NSZ3KT4+PjA+PShBPTI1NSZmKT4+PjApOylmPXcmQSYy''@;'; + put 'put ''NTUsdz1tPj4+MSxsPWwrMXwwO2lmKCgwfGwpPD0xKXtpZihtPTB8emwoMHwobT0wfFpvKDB8YiwwfHAsNikpLDB8RG4sMjU1JmZ8MCwwKSxwPURuLE09aystMXwwLCEoKDB8ayk+MSkpe2JlPTIxO2JyZWFrfWw9TSxmPW19ZWxzZSBsPWwrLTF8MCxmJj0yNTUscD0wO2s9bCxHPUcrMXwwLGI9''@;'; + put 'put ''Zn1pZigxMD09KDB8YmUpKWJlPTAsZj0obD0wPT0oMHxUbChHKSkpPzU6MSxsPWw/MTAyMTMwOkcsdz1iO2Vsc2UgaWYoMTI9PSgwfGJlKSliZT0wLGY9KGw9MzI9PSgwfGZlW1I+PjBdKSk/NjoxLGw9bD8xMDIxMjM6Ryx3PWI7ZWxzZSBpZigyMT09KDB8YmUpKXtmb3IoYmU9MCxmZVtnZT4+''@;'; + put 'put ''MF09NTksZj0zLEE9cGUsdz1tLGI9cDs7KXtpZihsPTB8blMoMHx3LDB8YiwxMCwwKSxtPUErLTF8MCxmZVtBPj4wXT00OHxsLGw9dyx3PTB8aXcoMHx3LDB8YiwxMCwwKSxwPWIsYj1EbixSPWYsZj1mKzF8MCwoMHxSKT4xMSl7YmU9MjM7YnJlYWsgZX1pZighKHA+Pj4wPjB8MD09KDB8cCkm''@;'; + put 'put ''bD4+PjA+OSkpYnJlYWs7QT1tfWw9QSstMnwwLGZlW20+PjBdPTM1LGZlW2w+PjBdPTM4LGs9TSxwPWJ9ZWxzZSgyNj09KDB8YmUpfHwyNz09KDB8YmUpKSYmKGJlPTAsdz1iKTtmb3IoQT1jK2Z8MCxtPWY7bTspZmVbYz4+MF09MHxmZVtsPj4wXSxtPW0rLTF8MCxsPWwrMXwwLGM9YysxfDA7''@;'; + put 'put ''bT1rLGw9RysxfDAsSz1mK0t8MCxSPUcsYz1BLGY9d31pZigyMz09KDB8YmUpKUN1KDc1NDY0LDQ2LDEsMHxhWzE1NzEyXSksWHUoMSk7ZWxzZSBpZigzMj09KDB8YmUpKXJldHVybiBmZVtjPj4wXT0wLGFlPU9lLDB8YVs0NjcyNF07cmV0dXJuIDB9ZnVuY3Rpb24gVGwobCl7dmFyIGM9MCxm''@;'; + put 'put ''PTA7Yz0wfGZlWyhmPTErKGx8PTApfDApPj4wXTtlOmRve2lmKGM8PDI0Pj4yND09MzUpe3N3aXRjaCgoYz0wfGZlWyhmPWwrMnwwKT4+MF0pPDwyND4+MjQpe2Nhc2UgODg6Y2FzZSAxMjA6YnJlYWs7ZGVmYXVsdDpmb3IobD1mOzspe2lmKGY9bCsxfDAsKGMrLTQ4JjI1NSk+PTEwKWJyZWFr''@;'; + put 'put ''IGU7bD1mLGM9MHxmZVtmPj4wXX19Zm9yKGY9bCszfDA7Oyl7aWYoKChjPTB8ZmVbZj4+MF0pLTQ4JjI1NSk+PTEwKXN3aXRjaChjPDwyND4+MjQpe2Nhc2UgNjU6Y2FzZSA2NjpjYXNlIDY3OmNhc2UgNjg6Y2FzZSA2OTpjYXNlIDcwOmNhc2UgOTc6Y2FzZSA5ODpjYXNlIDk5OmNhc2UgMTAw''@;'; + put 'put ''OmNhc2UgMTAxOmNhc2UgMTAyOmJyZWFrO2RlZmF1bHQ6YnJlYWsgZX1mPWYrMXwwfX1lbHNlIGZvcig7Oyl7aWYobD1mKzF8MCwoKC0zMyZjKS02NSYyNTUpPj0yNilicmVhayBlO2Y9bCxjPTB8ZmVbbD4+MF19fXdoaWxlKDApO3JldHVybiBjPDwyND4+MjQ9PTU5fDB9ZnVuY3Rpb24gSlQo''@;'; + put 'put ''bCl7dmFyIGMsZixBLHcsYixrLHA9MCxtPTA7az1hZSxhZT1hZSs0OHwwLGY9ays4fDAsYj1rLHc9MHxhWzE2KyhsfD0wKT4+Ml0sRW4obCw3NTYzOSksbT13KzE2fDAsQT0ocD1mKSs0MHwwO2Rve2FbcD4+Ml09YVttPj4yXSxwPXArNHwwLG09bSs0fDB9d2hpbGUoKDB8cCk8KDB8QSkpO3N3''@;'; + put 'put ''aXRjaChYVChsLGYpLDEhPShjPStfW3crMTUyPj4zXSkmJihfW2I+PjNdPWMsT3IobCw3NTY1NyxiKSksMHxhW3crMTQ0Pj4yXSl7Y2FzZSAxOkVuKGwsNzU2NzQpO2JyZWFrO2Nhc2UgMjpFbihsLDc1NjkyKX1FbihsLDc1NzA5KSxhZT1rfWZ1bmN0aW9uIFhUKGwsYyl7bHw9MCxjfD0wO3Zh''@;'; + put 'put ''ciBmLHAsbT0wLEE9MDtwPWFlLGFlPWFlKzE2fDAsZj1wO2U6ZG97c3dpdGNoKDB8YVtjKzMyPj4yXSl7Y2FzZSA1OkVuKGwsMHxhW2M+PjJdKTticmVhaztjYXNlIDE6aWYoMHxmZVtjKzM+PjBdKXtBPTB8SnRbYysxPj4wXSxtPTB8SnRbYysyPj4wXSxhW2Y+PjJdPUp0W2M+PjBdLGFbZis0''@;'; + put 'put ''Pj4yXT1BLGFbZis4Pj4yXT1tLE9yKGwsNzU3MTQsZik7YnJlYWsgZX1FbihsLDEzNTcwOSk7YnJlYWsgZTtkZWZhdWx0OlByKDEzODM5NCw3NTcyOCw5NCw3NTc0OCl9fXdoaWxlKDApO2FlPXB9ZnVuY3Rpb24gblkobCxjKXtsfD0wO3ZhciBtLEEsZj0wLHA9MDtpZihBPWFlLGFlPWFlKzQ4''@;'; + put 'put ''fDAsbT1BLGN8PTApe2Y9MHxhW2wrMTY+PjJdLEVuKGwsNzU4MzcpLGY9Zis1NnwwLHA9KGM9bSkrNDB8MDtkb3thW2M+PjJdPWFbZj4+Ml0sYz1jKzR8MCxmPWYrNHwwfXdoaWxlKCgwfGMpPCgwfHApKTtYVChsLG0pLEVuKGwsNzU4NjQpfWVsc2UgRW4obCw3NTg2Nyk7YWU9QX1mdW5jdGlv''@;'; + put 'put ''biBFYShsLGMsZil7dmFyIHAsbSxBLHcsYjtsfD0wLGN8PTAsYj1hZSxhZT1hZSsxMDU2fDAsdz1iLHA9YisyNHwwLGFbKG09Yis4fDApPj4yXT1mfD0wLEE9MHxmTChwLDEwMjQsYyxtKTtkb3tpZigoMHxBKT49MCl7aWYoKDB8QSk+MTAyMyl7bD0wfEIwKEErMXwwKSxhW20+PjJdPWYsX2oo''@;'; + put 'put ''bCxjLG0pO2JyZWFrfWw9MHxyYShwKTticmVha31sPTB8YVsxNisoMHxhW2wrMTI+PjJdKT4+Ml0sYVt3Pj4yXT0wfFhrKDB8YVs0NzY0M10pLEdzWzYzJmxdKDc4Njg3LHcpLGw9MHxyYSgxOTUwNTkpfXdoaWxlKDApO3JldHVybiBhZT1iLDB8bH1mdW5jdGlvbiBXQShsLGMsZil7bHw9MCxm''@;'; + put 'put ''PStmO3ZhciBtLEEsdyxiLGssRCxHLHA9MCxNPTAsUj0wLEs9MCxwZT0wO0c9YWUsYWU9YWUrMTEyfDAsRD1HKzEwNHwwLHc9Rys5NnwwLEE9Rys2NHwwLE09Rys0OHwwLFI9RyszMnwwLGs9RysxNnwwLGI9RyxtPTB8YVszMisoY3w9MCk+PjJdO2U6ZG97c3dpdGNoKDB8bSl7Y2FzZSA1Omlm''@;'; + put 'put ''KCEoMHxqaShwPTB8YVtjPj4yXSwxMzYzMDIpKSl7YVtiPj4yXT03ODUyNCxfW2IrOD4+M109ZixwPTB8RWEobCw3ODUwNyxiKTticmVhayBlfWlmKCEoMHxqaShwLDEzMzQzMikpKXthW2s+PjJdPTc4NTI4LF9bays4Pj4zXT1mLHA9MHxFYShsLDc4NTA3LGspO2JyZWFrIGV9aWYoMHxqaShw''@;'; + put 'put ''LDEzMTQzMSkpe2FbTT4+Ml09cCxfW00rOD4+M109ZixwPTB8RWEobCw3ODUwNyxNKTticmVhayBlfWFbUj4+Ml09Nzg1MzQsX1tSKzg+PjNdPWYscD0wfEVhKGwsNzg1MDcsUik7YnJlYWsgZTtjYXNlIDE6cGU9LjAwMzkwNjI1KisoMHxKdFtjKzE+PjBdKSxLPS4wMDM5MDYyNSorKDB8SnRb''@;'; + put 'put ''YysyPj4wXSksX1tBPj4zXT0uMDAzOTA2MjUqKygwfEp0W2M+PjBdKSxfW0ErOD4+M109cGUsX1tBKzE2Pj4zXT1LLF9bQSsyND4+M109ZixwPTB8RWEobCw3ODUzOSxBKTticmVhaztkZWZhdWx0OlI9MHxhWzE1NzEyXSxNPTB8YVtjPj4yXSxhW3c+PjJdPW0sYVt3KzQ+PjJdPU0sVDAoUiw3''@;'; + put 'put ''ODU3OCx3KSxQcigxMzgzOTQsNzg2MjgsNDM2LDc4NjQ4KX19d2hpbGUoMCk7cmV0dXJuIGFbRD4+Ml09cCxSPTB8RWEobCw3ODY2NSxEKSxGdChwKSxhZT1HLDB8Un1mdW5jdGlvbiBERihsLGMsZil7Y3w9MCxmfD0wO3ZhciBwPTA7c3dpdGNoKDB8YVsxNDQrKGx8PTApPj4yXSl7Y2FzZSAx''@;'; + put 'put ''OnA9MTAsbD0xO2JyZWFrO2Nhc2UgMjpwPTEwLGw9MjticmVhaztkZWZhdWx0OnA9MCxsPTB9YVtjPj4yXT1sLF9bZj4+M109cH1mdW5jdGlvbiBsWShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBBLHcsYixtPTAsaz0wLE09MDtmb3IoYj1hZSxhZT1hZSsxNnwwLHc9Yis4fDAs''@;'; + put 'put ''QT1iLG09MDshKCgwfG0pPj0oMHxmKSk7KWs9K19bYysobTw8NCkrOD4+M10sYVtBPj4yXT1+figoTT0rX1tjKyhtPDw0KT4+M10pKyhNPj0wPy41Oi0uNSkpLGFbQSs0Pj4yXT1+fihrKyhrPj0wPy41Oi0uNSkpLE9yKGwsODEwOTksQSksbT1tKzF8MDswfHAmJihNPStfW2MrOD4+M10sYVt3''@;'; + put 'put ''Pj4yXT1+figoaz0rX1tjPj4zXSkrKGs+PTA/LjU6LS41KSksYVt3KzQ+PjJdPX5+KE0rKE0+PTA/LjU6LS41KSksT3IobCw4MTA5OSx3KSksRW4obCwxNTM1OTkpLGFlPWJ9ZnVuY3Rpb24gUWllKGwpe2x8PTA7dmFyIHAsQSxjPTAsZj0wO0E9YWUsYWU9YWUrMTZ8MCxwPUE7ZTpmb3IoOzsp''@;'; + put 'put ''e2ZvcihjPTE1ODI4O2Y9MHxhW2MrND4+Ml07KXtpZighKDB8amkoZixsKSkpYnJlYWsgZTtjPWMrOHwwfWlmKGFbcD4+Ml09ODEyNTUsYVtwKzQ+PjJdPWwsJHIoMSw4MTIyOSxwKSwhKGM9MHxrJChsLDQ1KSkpe2M9ODEyNzI7YnJlYWt9ZmVbYz4+MF09MH1yZXR1cm4gYWU9QSwwfGN9ZnVu''@;'; + put 'put ''Y3Rpb24gWUEoKXt2YXIgbCxjO2w9YWUsYWU9YWUrMTZ8MCxhWyhjPWwpPj4yXT04MTI1NSxhW2MrND4+Ml09OTEyNjksJHIoMCw4MzYzNCxjKSxhZT1sfWZ1bmN0aW9uIHVZKGwpe3ZhciBjPTAsZj0wO2ZvcihjPTB8RHQobHw9MCk7YzspdDllKGMpLGM9MHx6dChsLGMpO2ZvcihmPTB8RHQo''@;'; + put 'put ''bCk7Zjspe2ZvcihjPTB8dzAobCxmKTtjOyljWShjKSxjPTB8UzAobCxjKTtmPTB8enQobCxmKX19ZnVuY3Rpb24gdDllKGwpe3ZhciBjPTAsZj0wO2gwKGx8PTAsMTM3NDQ3LDMwNCwxKSxzRChsKSx4eShsLDEmYVsxMTYrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+Ml0pLGFbMTc2KygwfGFb''@;'; + put 'put ''KGw9bCsxNnwwKT4+Ml0pPj4yXT0wLGM9MHx2cigyMCksYVsxNzIrKGY9MHxhW2w+PjJdKT4+Ml09YyxhW2YrMTg0Pj4yXT0wLGY9MHx2cigyMCksYVsxODArKGM9MHxhW2w+PjJdKT4+Ml09ZixhW2MrMjAwPj4yXT0wLGM9MHx2cigxMiksYVsxOTYrKGY9MHxhW2w+PjJdKT4+Ml09YyxhW2Yr''@;'; + put 'put ''MTkyPj4yXT0wLGY9MHx2cigxMiksYVsxODgrKGM9MHxhW2w+PjJdKT4+Ml09ZixhW2MrMjA4Pj4yXT0wLGM9MHx2cigxMiksYVsyMDQrKGw9MHxhW2w+PjJdKT4+Ml09YyxhW2wrMjE2Pj4yXT0xfWZ1bmN0aW9uIGNZKGwpe3ZhciBjLGYscCxtPTAsQT0wO2gwKGx8PTAsMTM3NDYwLDE3Niwx''@;'; + put 'put ''KSxMNyhsKSxtPTB8ZXMobCwwfGFbNDcxNzRdLDEsMCksYVsxNTYrKDB8YVsocD1sKzE2fDApPj4yXSk+PjJdPW0sbT0wfHYyKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdLDB8YVs0NzE2OF0sMTk1MDU5KSxBPTB8djIoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCst''@;'; + put 'put ''NDh8MCkrNDA+PjJdLDB8YVs0NzE2OF0sMTk1MDU5KSxydFsoZj0xNTQrKGM9MHxhW3A+PjJdKXwwKT4+MV09MSxydFtjKzE2OD4+MV09MSwoMHxtKT09KDB8QSkmMCE9KDB8ZmVbbT4+MF0pJiYocnRbZj4+MV09MWUzLGFbKEE9YysxNTZ8MCk+PjJdPTEwMCooMHxhW0E+PjJdKSksMHxtSChs''@;'; + put 'put ''KSYmKHJ0WzE1NCsoQT0wfGFbcD4+Ml0pPj4xXT0wLGFbQSsxNTY+PjJdPTApLEE9MjU1JigwfGVzKGwsMHxhWzQ3MTg3XSwwLDApKSxmZVsxNTIrKDB8YVtwPj4yXSk+PjBdPUEsQT02NTUzNSYoMHxlcyhsLDB8YVs0NzE3NV0sMSwwKSkscnRbMTcwKygwfGFbcD4+Ml0pPj4xXT1BfWZ1bmN0''@;'; + put 'put ''aW9uIEg1KGwpe3ZhciBjPTAsZj0wO2ZvcihmdW5jdGlvbiAkaWUobCl7bHw9MDtmb3IodmFyIGM9MCxmPTAscD0wLG09MDtsOyltPTB8YVsxNjQrKDB8YVsocD1sKzE2fDApPj4yXSk+PjJdLEwyKGwpLDE9PSgwfGZlWzE1NisoYz0wfGFbcD4+Ml0pPj4wXSk/KChmPTB8YVtjKzE4MD4+Ml0p''@;'; + put 'put ''JiYoRnQoZiksYz0wfGFbcD4+Ml0pLChmPTB8YVtjKzE3Mj4+Ml0pJiYoRnQoZiksYz0wfGFbcD4+Ml0pLEZ0KGMpLEZ0KGwpLGw9bSk6bD1tfSgwfGFbMTkyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSxmPTB8RHQobCk7Zjspe2ZvcihjPTB8dzAobCxmKTtjOylhZyhjKSxjPTB8UzAobCxj''@;'; + put 'put ''KTtmWShmKSxmPTB8enQobCxmKX1ONShsKX1mdW5jdGlvbiBmWShsKXt2YXIgcCxjPTAsZj0wOyhmPTB8YVsxNzIrKGM9MHxhWyhwPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksKGY9MHxhW2MrMTgwPj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksKGY9MHxh''@;'; + put 'put ''W2MrMTg4Pj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksKGY9MHxhW2MrMTk2Pj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksKGY9MHxhW2MrMjA0Pj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksSWMoMHxhW2MrMTA0Pj4yXSksSWMoMHxhWzEwOCsoMHxhW3A+PjJdKT4+Ml0pLDB8KGM9MHxh''@;'; + put 'put ''WzgrKDB8YVtwPj4yXSk+PjJdKSYmQ29bMTI3JmFbNCsoMHxhW2MrND4+Ml0pPj4yXV0obCksSGkobCwxMzc0NDcpfWZ1bmN0aW9uIE41KGwpe3ZhciBjPTAsZj0wLHA9MDtmb3IoYz0wfHlzKGx8PTApO2M7KU41KGMpLGM9MHxNcyhjKTtpZigwfGgwKGwsMTM3NDgzLDAsMSkpeyhmPTB8YVsx''@;'; + put 'put ''ODQrKGM9MHxhWyhwPWwrMTZ8MCk+PjJdKT4+Ml0pJiYoRnQoZiksYz0wfGFbcD4+Ml0pLChmPTB8YVtjKzI2OD4+Ml0pJiYoRnQoZiksYz0wfGFbcD4+Ml0pLChmPTB8YVtjKzIxNj4+Ml0pJiYoRnQoZiksYz0wfGFbcD4+Ml0pO2Rve2lmKDB8YVtjKzE5Nj4+Ml0pe2ZvcihmPTB8cnRbYysy''@;'; + put 'put ''MzY+PjFdOyEoKDB8Zik+KDB8cnRbYysyMzg+PjFdKSk7KUZ0KDB8YVsoMHxhW2MrMTk2Pj4yXSkrKGY8PDYpKzEyPj4yXSksZj1mKzF8MCxjPTB8YVtwPj4yXTtpZihmPTB8YVtjKzE5Nj4+Ml0sLTE9PSgwfHJ0W2MrMjM2Pj4xXSkpe0Z0KGYrLTY0fDApO2JyZWFrfUZ0KGYpO2JyZWFrfX13''@;'; + put 'put ''aGlsZSgwKTsoMHxkaShsKSkhPSgwfGwpJiYoSWMoMHxhWzEyKygwfGFbcD4+Ml0pPj4yXSksSGkobCwxMzc0ODMpKX19ZnVuY3Rpb24gTDIobCl7dmFyIHAsYz0wLGY9MDtmb3IoYz0wfGFbMTc2KyhmPTB8YVsocD0xNisobHw9MCl8MCk+PjJdKT4+Ml07bD1jKy0xfDAsISgoMHxjKTw9MCk7''@;'; + put 'put ''KVUzKGM9MHxhWygwfGFbZisxNzI+PjJdKSsobDw8Mik+PjJdKSxGdCgwfGFbYysxNj4+Ml0pLEZ0KGMpLGM9bCxmPTB8YVtwPj4yXTtmb3IoYz0wfGFbZisxODQ+PjJdO2w9YystMXwwLCEoKDB8Yyk8PTApOylVMyhjPTB8YVsoMHxhWzE4MCsoMHxhW3A+PjJdKT4+Ml0pKyhsPDwyKT4+Ml0p''@;'; + put 'put ''LEZ0KDB8YVtjKzE2Pj4yXSksRnQoYyksYz1sfWZ1bmN0aW9uIGg3KGwpe3ZhciBwLG0sQSxiLGssTSxjPTAsZj0wLHc9MCxEPTA7Zm9yKE09YWUsYWU9YWUrNDh8MCxrPU0rNDB8MCxmPU0sdz0wfGVzKGx8PTAsMHxzaShsLDAsODUxMDIsMCksLTEsMSksdDQobCwxMCksYz0wfGZ1bmN0aW9u''@;'; + put 'put ''IGdIKGwsYyl7bHw9MCxjfD0wO3ZhciBmLHAsbSxBO3JldHVybiBBPWFlLGFlPWFlKzMyfDAsbT1BKzE2fDAscD1BKzh8MCxhWyhmPUErMjB8MCk+PjJdPTUsMHwobD0wfExpKGwsOTk2MDUpKSYmKGFbcD4+Ml09QSxhW3ArND4+Ml09ZiwoMHxpbChsLDg3NDk3LHApKT49MSkmJiRyKDAsODc1''@;'; + put 'put ''MDQsbSksYVtjKzI0Pj4yXT0wLGFbYyszMj4+Ml09MCxhZT1BLDB9KGwsZikscFkobCxsKSx1WShsKSxwPTE9PSgwfHcpLG09ZiszMnwwLEE9Mj09KDB8dyksdz0zPT0oMHx3KSxiPWYrMjh8MCxmPWYrMjR8MDs7KXtpZigkWShsLGMpLHApe2M9MzticmVha31pZigwfGFbbT4+Ml0mJigkcigw''@;'; + put 'put ''LDg1MTA4LGspLGFbZj4+Ml09MCxjPTApLCRBKGwsMCE9KDB8YykmMSksQSl7Yz03O2JyZWFrfWlmKHZJKGwsYyksdyl7Yz05O2JyZWFrfWlmKGFbYj4+Ml09RD0oMHxhW2I+PjJdKS0xfDAsISgwIT0oMHxEKSYwIT0oMHxhW2Y+PjJdKSkpe2M9MTE7YnJlYWt9fTM9PSgwfGMpP1kzKGwsMSk6''@;'; + put 'put ''Nz09KDB8Yyl8fDk9PSgwfGMpP1kzKGwsMik6MTE9PSgwfGMpJiYoMTYmcnRbMTM2KygwfGFbbCsxNj4+Ml0pPj4xXSYmZnVuY3Rpb24gVjUobCl7dmFyIGYsYz0wLHA9MDtpZigwfChmPTB8ZHMobHw9MCw4NjY3NSwwKSkpe2ZvcihjPTB8RHQoZik7YzspcD0wfHp0KGYsYyksaUkobCxjKSxq''@;'; + put 'put ''NShsLGMpLGZZKGMpLHFyKGwsYyksYz1wO3I3KGwsZil9fShsKSxmSChsKSxmdW5jdGlvbiBpMGUobCl7WjUobHw9MCwxKX0obCksKDB8ZTEoMHxMaShsLDg1MTk5KSkpPDwyND4+MjQmJmZ1bmN0aW9uIE1VKGwpe3ZhciBwLGM9MCxmPTA7Zm9yKHA9MHx2SihsfD0wKSxmPTB8RHQobCk7Zjsp''@;'; + put 'put ''e2ZvcihjPTB8dzAobCxmKTtjOylFVShjLHApLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfU5sKHApfShsKSksYWU9TX1mdW5jdGlvbiB0MGUobCxjKXt2YXIgZixwO2N8PTAsaDAobHw9MCwxMzc0ODMsMjgwLDEpLGY9MHx2cig5NiksYVs4KyhsPTB8YVtsKzE2Pj4yXSk+PjJdPWYsX1tmPj4z''@;'; + put 'put ''XT0rX1socD0wfGFbOCsoYz0wfGFbYysxNj4+Ml0pPj4yXSk+PjNdLF9bZisyND4+M109K19bcCsyND4+M10sYVtsKzE0ND4+Ml09YVtjKzE0ND4+Ml0sZmVbbCsxMTU+PjBdPTB8ZmVbYysxMTU+PjBdLGFbbCsxMTY+PjJdPWFbYysxMTY+PjJdLGFbbCsyNDg+PjJdPWFbYysyNDg+PjJdLGFb''@;'; + put 'put ''bCsyNTI+PjJdPWFbYysyNTI+PjJdLGFbbCsyNDQ+PjJdPWFbYysyNDQ+PjJdfWZ1bmN0aW9uIG4wZShsKXt2YXIgYz0wLGY9MCxwPTA7Zm9yKGM9MHx2cigoMHxHbyhsfD0wKSk8PDQpLGY9MHxEdChsKTtmOylhWzEzMisocD0wfGFbZisxNj4+Ml0pPj4yXT1jLF9bYz4+M109LjAxMzg4ODg4''@;'; + put 'put ''ODg4ODg4ODg4OCorX1twKzE2Pj4zXSxfW2MrOD4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1twKzI0Pj4zXSxjPWMrMTZ8MCxmPTB8enQobCxmKX1mdW5jdGlvbiBoWShsKXt2YXIgcCxjPTAsZj0wLG09MDtmb3IoYz1wPTB8YVsxMzIrKDB8YVsxNisoMHxEdChsfD0wKSk+PjJdKT4+Ml0s''@;'; + put 'put ''Zj0wfER0KGwpO2Y7KWFbMTMyKyhtPTB8YVtmKzE2Pj4yXSk+PjJdPTAsX1ttKzE2Pj4zXT03MiorX1tjPj4zXSxfW20rMjQ+PjNdPTcyKitfW2MrOD4+M10sYz1jKzE2fDAsZj0wfHp0KGwsZik7RnQocCl9ZnVuY3Rpb24gcjBlKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxB''@;'; + put 'put ''PTAsdz0wLGI9MDtmb3IocD0wLG09MDshKCgwfHApPj0oMHxsKSk7KWI9KDB8YVsxODArKDB8YVsxNisoMHxhW2MrKHA8PDIpPj4yXSk+PjJdKT4+Ml0pK218MCxwPXArMXwwLG09Yjtmb3IoYVsxODArKDB8YVsoYj1mKzE2fDApPj4yXSk+PjJdPW0sQT0wfHZyKDQrKG08PDIpfDApLGFbMTg0''@;'; + put 'put ''KygwfGFbYj4+Ml0pPj4yXT1BLEE9MCxwPTE7ISgoMHxBKT49KDB8bCkpOyl7Zm9yKHc9MTYrKDB8YVtjKyhBPDwyKT4+Ml0pfDAsbT0xOyEoKDB8bSk+KDB8YVsxODArKGY9MHxhW3c+PjJdKT4+Ml0pKTspZj0wfHhyZSgwfGFbKDB8YVtmKzE4ND4+Ml0pKyhtPDwyKT4+Ml0pLGFbKDB8YVsx''@;'; + put 'put ''ODQrKDB8YVtiPj4yXSk+PjJdKSsocDw8Mik+PjJdPWYsZFkoMHxhWygwfGFbMTg0KygwfGFbdz4+Ml0pPj4yXSkrKG08PDIpPj4yXSxmKSxtPW0rMXwwLHA9cCsxfDA7QT1BKzF8MH19ZnVuY3Rpb24gZFkobCxjKXtsfD0wO3ZhciBtLGY9MCxwPTA7aDAoY3w9MCwxMzc0ODMsMjgwLDEpLGFb''@;'; + put 'put ''KGM9MTYrKDB8YVsobT1jKzE2fDApPj4yXSl8MCk+PjJdPWFbKGw9MTYrKDB8YVsocD1sKzE2fDApPj4yXSl8MCk+PjJdLGFbYys0Pj4yXT1hW2wrND4+Ml0sYVtjKzg+PjJdPWFbbCs4Pj4yXSxhW2MrMTI+PjJdPWFbbCsxMj4+Ml0sYVtjKzE2Pj4yXT1hW2wrMTY+PjJdLGFbYysyMD4+Ml09''@;'; + put 'put ''YVtsKzIwPj4yXSxhW2MrMjQ+PjJdPWFbbCsyND4+Ml0sYVtjKzI4Pj4yXT1hW2wrMjg+PjJdLGZlWzI3NSsoYz0wfGFbbT4+Ml0pPj4wXT0wfGZlWzI3NSsobD0wfGFbcD4+Ml0pPj4wXSxsPWwrNDh8MCxmPTY0KyhjPWMrNDh8MCl8MDtkb3thW2M+PjJdPWFbbD4+Ml0sYz1jKzR8MCxsPWwr''@;'; + put 'put ''NHwwfXdoaWxlKCgwfGMpPCgwfGYpKTtmb3IoYVsxODArKDB8YVttPj4yXSk+PjJdPWw9MHxhWzE4MCsoMHxhW3A+PjJdKT4+Ml0sYz0wfHZyKDQrKGw8PDIpfDApLGFbMTg0KygwfGFbbT4+Ml0pPj4yXT1jLGM9MTtmPTB8YVtwPj4yXSwhKCgwfGMpPigwfGwpKTspZj0wfHhyZSgwfGFbKDB8''@;'; + put 'put ''YVtmKzE4ND4+Ml0pKyhjPDwyKT4+Ml0pLGFbKDB8YVsxODQrKDB8YVttPj4yXSk+PjJdKSsoYzw8Mik+PjJdPWYsZFkoMHxhWygwfGFbMTg0KygwfGFbcD4+Ml0pPj4yXSkrKGM8PDIpPj4yXSxmKSxjPWMrMXwwO2FbMTIrKDB8YVttPj4yXSk+PjJdPWFbKHA9ZisxMnwwKT4+Ml0sYVtwPj4y''@;'; + put 'put ''XT0wfWZ1bmN0aW9uIHBZKGwsYyl7Zm9yKGN8PTAsKDB8ZGkobHw9MCkpIT0oMHxsKSYmaDAobCwxMzc0ODMsMjgwLDEpLCgwfGwpPT0oMHxjKSYmKGFbMTg4KygwfGFbMTYrKDB8ZGkobCkpPj4yXSk+PjJdPWwpLGw9MHx5cyhsKTtsOylwWShsLGMpLGw9MHxNcyhsKX1mdW5jdGlvbiBZMyhs''@;'; + put 'put ''LGMpe2N8PTA7dmFyIGYscCxtLEEsdyxrLE0sRCxiPTA7Zm9yKEQ9YWUsYWU9YWUrMTA0MHwwLE09RCs4fDAsaz1ELHA9RCsxNnwwLG09MHxzaShsfD0wLDEsODcxNzEsMTk1MDU5KSxBPTB8c2kobCwxLDg1MjQyLDE5NTA1OSksdz0oMHxjKT4wLGY9MT09KDB8YyksYz0wfER0KGwpO2M7KXcm''@;'; + put 'put ''JihhW2s+PjJdPWFbMjMyKygwfGFbKGI9YysxNnwwKT4+Ml0pPj4yXSxvbyhwLDEzNzM5NSxrKSxWbChjLG0scCksIWYpJiYoYVtNPj4yXT1hWzIzNisoMHxhW2I+PjJdKT4+Ml0sb28ocCwxMzczOTUsTSksVmwoYyxBLHApKSxjPTB8enQobCxjKTthZT1EfWZ1bmN0aW9uIGo1KGwsYyl7dmFy''@;'; + put 'put ''IHcsYixrLGY9MCxwPTAsbT0wLEE9MDtmb3IoZj0wfGFbKGw9MHxhWzE5NisoMHxhWyhiPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkrKChrPTB8YVsyMzIrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pPDw2KT4+Ml0sdz1sKyhrPDw2KSs0fDAsQT0wLHA9MDs7KXtpZigoMHxwKT49KDB8Zikpe209''@;'; + put 'put ''NzticmVha31pZihtPTB8YVsoMHxhW3c+PjJdKSsocDw8Mik+PjJdLHA9cCsxfDAsKDB8bSk9PSgwfGMpKXttPTQ7YnJlYWt9QT1tfWlmKDQ9PSgwfG0pKXtmb3IoOyEoKDB8cCk+PSgwfGYpKTspYVsobT0wfGFbbCsoazw8NikrND4+Ml0pKyhwKy0xPDwyKT4+Ml09YVttKyhwPDwyKT4+Ml0s''@;'; + put 'put ''cD1wKzF8MCxmPTB8YVsobT0wfGFbMTk2KygwfGFbYj4+Ml0pPj4yXSkrKGs8PDYpPj4yXSxsPW0sbT00O2FbbCsoazw8Nik+PjJdPWYrLTF9ZWxzZSA3PT0oMHxtKSYmKDB8QSkhPSgwfGMpJiZQcig4NTIwOCw4NTIxNSwyNDgsODUyMjUpfWZ1bmN0aW9uIEFhKGwpe3JldHVybiAwfGFbMTg4''@;'; + put 'put ''KygwfGFbMTYrKDB8ZGkobHw9MCkpPj4yXSk+PjJdfWZ1bmN0aW9uIEpBKGwsYyl7dmFyIGY9MDtyZXR1cm4gZj0wfGZlWzI4KyhsfD0wKT4+MF0sMHxmZVsyOCsoY3w9MCk+PjBdP2Y8PDI0Pj4yND8oZj1+figrX1tsPj4zXS0rX1tjPj4zXSkpfHwoZj1+figrX1tsKzg+PjNdLStfW2MrOD4+''@;'; + put 'put ''M10pKTpmPS0xOmY9Zjw8MjQ+PjI0IT0wJjEsMHxmfWZ1bmN0aW9uIFo1KGwsYyl7Y3w9MDt2YXIgU24sSG4sdXIsSHIsRXIsRHIsSnIsTHIsVmksT2ksUm8sZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJl''@;'; + put 'put ''PTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLGx0PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxhbj0wLGZyPTAsbDA9MCxsbz0wO1JvPWFlLGFlPWFlKzY1NnwwLEhuPVJvKzU5MnwwLFNuPVJvKzU1MnwwLGY9Um8rNTQ0fDAsSnI9Um8sT2k9Um8rNjMyfDAsdXI9NjU1''@;'; + put 'put ''MzUmKFZpPTE0JnJ0WzEzNisoMHxhWyhMcj0xNisobHw9MCl8MCk+PjJdKT4+MV0pLGFbKEhyPTE2KyhEcj1Sbys5NnwwKXwwKT4+Ml09Um8rMzY4LGFbKEVyPUpyKzE2fDApPj4yXT1SbysxOTI7ZG97aWYoVmk8PDE2Pj4xNil7ZnI9Vmk8PDE2Pj4xNj09NDtkb3tpZihmcilnWShsKSwxJmZl''@;'; + put 'put ''WzExMysoMHxhWzE2KygwfGFbbCs2MD4+Ml0pPj4yXSk+PjBdJiYkcigwLDg1MjQ4LGYpLFZlPTk7ZWxzZXtpZihWaTw8MTY+PjE2PT04KXtpZihnWShsKSwxJmZlWzExMysoMHxhWzE2KygwfGFbbCs2MD4+Ml0pPj4yXSk+PjBdKXtvMGUobCksZWkobCwxKSxrPTAsYj0wLHc9MDticmVha31l''@;'; + put 'put ''aShsLDApLGs9MCxiPTAsdz0wO2JyZWFrfVZlPTl9fXdoaWxlKDApO2lmKDk9PSgwfFZlKSl7aWYoZnAobCksMHx4YWUoKSlicmVhaztsMD0wfHZyKDk2KSxhW09pKzg+PjJdPSgwfChjdD0wfGFbMjQ4KygwfGFbTHI+PjJdKT4+Ml0pKS80fDAsYVtPaSsxMj4+Ml09Y3Qsdz0wfHZyKDUxMiks''@;'; + put 'put ''YVsoU3Q9T2krNHwwKT4+Ml09MCxhW09pPj4yXT0wLG50PTB8cnRbMjM2KyhBPTB8YVtMcj4+Ml0pPj4xXSxXZT0wLGJ0PTAsYW49dyxvdD13LGI9dyxrPXcsTT13LGx0PTAsRXQ9MDtlOmZvcig7ISgoMHxudCk+KDB8cnRbQSsyMzg+PjFdKSk7KXtmb3Ioa3Q9KG09MHxhWyhEPTB8YVtBKzE5''@;'; + put 'put ''Nj4+Ml0pKyhudDw8Nik+PjJdKStXZXwwLHFlPShmPShmPTB8YVsocD0wfGFbRCsobnQ8PDYpKzQ+PjJdKT4+Ml0pP35+KChSZT0rX1sxNisoZj0wfGFbZisxNj4+Ml0pPj4zXS0rX1tmKzg4Pj4zXSk+KGxvPSsoMHxsdCkpP2xvOlJlKTpsdCkrLTE2fDAsSGU9KHA9MCE9KDB8bSkmJjAhPSgw''@;'; + put 'put ''fChadD0wfGFbcCsobSstMTw8Mik+PjJdKSk/fn4oKGxvPStfWzk2KyhwPTB8YVtadCsxNj4+Ml0pPj4zXSsgK19bcCsxNj4+M10pPChSZT0rKDB8RXQpKT9SZTpsbyk6RXQpKzE2fDAsTGU9MCxwZT1idCxHPWFuLFI9QSxnZT1vdCxiZT1iLHA9dyxmPUQ7ISgoMHxMZSk+PSgwfG0pKTspe2lm''@;'; + put 'put ''KG09MHxhWzExMisoZj0wfGFbKE9lPTE2Kyh3PTB8YVsoMHxhW2YrKG50PDw2KSs0Pj4yXSkrKExlPDwyKT4+Ml0pfDApPj4yXSk+PjJdKXtpZighKEE9MHxhWzk2KygwfGFbKG09bSsxNnwwKT4+Ml0pPj4yXSkpe1ZlPTIxO2JyZWFrIGV9YVsoSz1BKzU2fDApPj4yXT1hWyhmPWYrMTZ8MCk+''@;'; + put 'put ''PjJdLGFbSys0Pj4yXT1hW2YrND4+Ml0sYVtLKzg+PjJdPWFbZis4Pj4yXSxhW0srMTI+PjJdPWFbZisxMj4+Ml0sZmVbODErKDB8YVs5NisoMHxhW20+PjJdKT4+Ml0pPj4wXT0xLGY9MHxhW09lPj4yXX0wIT0oMHxmZVtmKzE1Nj4+MF0pJiYoMHxfb1s2MyZhWzQzMjVdXSh3KSk8PDI0Pj4y''@;'; + put 'put ''ND09MD8oUj1wZSxmPUcsQT1nZSx3PWJlLG09TSk6KEs9MCxSPXBlLEE9Z2Usdz1iZSxWZT0yNSk7dDpkb3tpZigyNT09KDB8VmUpKXtmb3IoO1ZlPTAsbT0wfGFbKDB8YVsxODArKEQ9MHxhW09lPj4yXSk+PjJdKSsoSzw8Mik+PjJdOyl7c3dpdGNoKDB8ZmVbMTEyKygwfGFbbSsxNj4+Ml0p''@;'; + put 'put ''Pj4wXSl7Y2FzZSA2OmNhc2UgNDpmPVIsbT1HO2JyZWFrO2RlZmF1bHQ6ZUkobSwxLDE2LDY0KSxmPVIrMXwwLGFbRysoUjw8Mik+PjJdPW0sMTI3JmY/bT1HOihtPXA9MHxWMChwLDUxNisoUjw8Mil8MCksQT1wLHc9cCxrPXAsTT1wKX1LPUsrMXwwLFI9ZixHPW0sVmU9MjV9Zj0wfGFbRCsx''@;'; + put 'put ''ODg+PjJdO246ZG97aWYoZilmb3IoSz0wLG09TTs7KXtpZighKGY9MHxhW2YrKEs8PDIpPj4yXSkpYnJlYWsgbjtlSShmLDIsMCwxMjgpLE09UisxfDAsYVtHKyhSPDwyKT4+Ml09ZiwxMjcmTT9mPUc6KGY9cD0wfFYwKG0sNTE2KyhSPDwyKXwwKSxBPXAsdz1wLGs9cCxtPXApLEs9SysxfDAs''@;'; + put 'put ''Uj1NLEc9ZixmPTB8YVsxODgrKEQ9MHxhW09lPj4yXSk+PjJdfWVsc2UgbT1NfXdoaWxlKDApO2lmKGY9MHxhW0QrMjA0Pj4yXSlmb3IoMHxmZVtEKzE1Nj4+MF0/KEs9MCxEPUcpOihsbz0rX1soYmU9RCs5NnwwKT4+M10sX1tiZT4+M109K19bKEs9RCsyNDB8MCk+PjNdLF9bSz4+M109bG8s''@;'; + put 'put ''Sz0wLEQ9Ryk7Oyl7aWYoIShmPTB8YVtmKyhLPDwyKT4+Ml0pKXtmPUQ7YnJlYWsgdH1lSShmLDAsMCwxMjgpLE09UisxfDAsYVtEKyhSPDwyKT4+Ml09ZiwxMjcmTT9mPUQ6KGY9cD0wfFYwKGssNTE2KyhSPDwyKXwwKSxBPXAsdz1wLGs9cCxtPXApLEs9SysxfDAsUj1NLEQ9ZixmPTB8YVsy''@;'; + put 'put ''MDQrKDB8YVtPZT4+Ml0pPj4yXX1lbHNlIGY9R319d2hpbGUoMCk7T2U9MHxhWzE5NisoZ2U9MHxhW0xyPj4yXSk+PjJdLExlPUxlKzF8MCxwZT1SLEc9ZixSPWdlLGdlPUEsYmU9dyxNPW0sbT0wfGFbT2UrKG50PDw2KT4+Ml0sZj1PZX1udD1udCsxfDAsV2U9a3QsYnQ9cGUsYW49RyxvdD1n''@;'; + put 'put ''ZSxBPVIsYj1iZSx3PXAsbHQ9cWUsRXQ9SGV9MjE9PSgwfFZlKSYmUHIoODUzMTYsODUzMjksMzEzLDg1MzQyKSxhW09pPj4yXT1sdCxhW1N0Pj4yXT1FdCx4MShvdCxidCw0LDU4KSxhW2wwKzg0Pj4yXT0wfHZyKDExNTIwKyhXZTw8NSl8MCksYVtPaSsxNj4+Ml09MHx2cihudDw8NSk7ZTpk''@;'; + put 'put ''b3tpZihWaTw8MTY+PjE2PT0yKWZvcihmPTE5MisoMHxhW0xyPj4yXSl8MDs7KXtpZighKHA9MHxhW2Y+PjJdKSlicmVhayBlOzE9PSgwfGZlWzE1NisoZj0wfGFbKG09cCsxNnwwKT4+Ml0pPj4wXSkmJjAhPSgwfGFbZisxMDQ+PjJdKSYmKE9GKHApLGY9MHxhW20+PjJdKSxmPWYrMTY0fDB9''@;'; + put 'put ''fXdoaWxlKDApO0hlPUpyKzQ4fDAsVmU9SnIrLTQ4fDAscWU9RHIrNDh8MCxudD1EcistNDh8MCxSZT0rKDB8Y3QpLExlPTA7ZTpmb3IoOyEoKDB8TGUpPj0oMHxidCkpOyl7aWYoSz0wfHo1KEc9MHxhWyhiZT1hbisoTGU8PDIpfDApPj4yXSksMHxmZVs0NCsocD0wfGFbKHBlPUcrMTZ8MCk+''@;'; + put 'put ''PjJdKT4+MF0/Zj1HOihmPXA9MD09KDB8ZmVbcCs4ND4+MF0pP0s6RyxwPTB8YVtwKzE2Pj4yXSksbT1mKzE2fDAsMzImYVtwKzE2ND4+Ml0pe2dvKDB8KHA9MHxhW0hyPj4yXSksMHxhW20+PjJdLDE3NiksTT1mLEQ9KGs9RHIpKzQ4fDA7ZG97YVtrPj4yXT1hW00+PjJdLGs9ays0fDAsTT1N''@;'; + put 'put ''KzR8MH13aGlsZSgoMHxrKTwoMHxEKSk7YVtIcj4+Ml09cCxhWygzPT0oMHwoaz0zJmFbRHI+PjJdKSk/RHI6cWUpKzQwPj4yXT1hWygyPT0oMHwoTT0zJmFbZj4+Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSxhWygyPT0oMHxrKT9EcjpudCkrNDA+PjJdPWFbKDM9PSgwfE0pP2Y6Zis0OHwwKSs0''@;'; + put 'put ''MD4+Ml0sTT01NisoMHxhW20+PjJdKXwwLEQ9NDArKGs9cCsxNnwwKXwwO2Rve2Fbaz4+Ml09YVtNPj4yXSxrPWsrNHwwLE09TSs0fDB9d2hpbGUoKDB8ayk8KDB8RCkpO009MTYrKDB8YVttPj4yXSl8MCxEPTQwKyhrPXArNTZ8MCl8MDtkb3thW2s+PjJdPWFbTT4+Ml0saz1rKzR8MCxNPU0r''@;'; + put 'put ''NHwwfXdoaWxlKCgwfGspPCgwfEQpKTtmZVtwKzExMj4+MF09MSxhW3ArMTE2Pj4yXT1mLGY9RHJ9Zm9yKFI9ZisxNnwwLE9lPTEsZj1MZTshKCgwfChnZT1mKzF8MCkpPj0oMHxidCl8fChBPWFuKyhnZTw8Mil8MCxmPTB8YVtBPj4yXSwoMHxLKSE9KDB8ejUoZikpKSk7KXtpZighKDB8ZmVb''@;'; + put 'put ''MTEzKygwfGFbcGU+PjJdKT4+MF0pKXtpZigwfGZlWzQ0KyhwPTB8YVsodz1mKzE2fDApPj4yXSk+PjBdfHwoZj1wPTA9PSgwfGZlW3ArODQ+PjBdKT9LOmYscD0wfGFbcCsxNj4+Ml0pLG09ZisxNnwwLDMyJmFbcCsxNjQ+PjJdKXtnbygwfChwPTB8YVtFcj4+Ml0pLDB8YVttPj4yXSwxNzYp''@;'; + put 'put ''LE09ZixEPShrPUpyKSs0OHwwO2Rve2Fbaz4+Ml09YVtNPj4yXSxrPWsrNHwwLE09TSs0fDB9d2hpbGUoKDB8ayk8KDB8RCkpO2FbRXI+PjJdPXAsYVsoMz09KDB8KGs9MyZhW0pyPj4yXSkpP0pyOkhlKSs0MD4+Ml09YVsoMj09KDB8KE09MyZhW2Y+PjJdKSk/ZjpmKy00OHwwKSs0MD4+Ml0s''@;'; + put 'put ''YVsoMj09KDB8ayk/SnI6VmUpKzQwPj4yXT1hWygzPT0oMHxNKT9mOmYrNDh8MCkrNDA+PjJdLE09NTYrKDB8YVttPj4yXSl8MCxEPTQwKyhrPXArMTZ8MCl8MDtkb3thW2s+PjJdPWFbTT4+Ml0saz1rKzR8MCxNPU0rNHwwfXdoaWxlKCgwfGspPCgwfEQpKTtNPTE2KygwfGFbbT4+Ml0pfDAs''@;'; + put 'put ''RD00MCsoaz1wKzU2fDApfDA7ZG97YVtrPj4yXT1hW00+PjJdLGs9ays0fDAsTT1NKzR8MH13aGlsZSgoMHxrKTwoMHxEKSk7ZmVbcCsxMTI+PjBdPTEsYVtwKzExNj4+Ml09Zn1mPXArMTZ8MCxNPTE2KyhtPTB8YVtSPj4yXSl8MCxEPShrPVNuKSs0MHwwO2Rve2Fbaz4+Ml09YVtNPj4yXSxr''@;'; + put 'put ''PWsrNHwwLE09TSs0fDB9d2hpbGUoKDB8ayk8KDB8RCkpO009ZixEPShrPUhuKSs0MHwwO2Rve2Fbaz4+Ml09YVtNPj4yXSxrPWsrNHwwLE09TSs0fDB9d2hpbGUoKDB8ayk8KDB8RCkpO2lmKDB8SkEoU24sSG4pKWJyZWFrO2Y9cCs1NnwwLE09bSs1NnwwLEQ9KGs9U24pKzQwfDA7ZG97YVtr''@;'; + put 'put ''Pj4yXT1hW00+PjJdLGs9ays0fDAsTT1NKzR8MH13aGlsZSgoMHxrKTwoMHxEKSk7TT1mLEQ9KGs9SG4pKzQwfDA7ZG97YVtrPj4yXT1hW00+PjJdLGs9ays0fDAsTT1NKzR8MH13aGlsZSgoMHxrKTwoMHxEKSk7aWYoMHxKQShTbixIbil8fDI9PSgxNSZhWzE2NCsoY3Q9MHxhW3BlPj4yXSk+''@;'; + put 'put ''PjJdfDApJiYoMHxhW2N0Kzk2Pj4yXSkhPSgwfGFbOTYrKDB8YVt3Pj4yXSk+PjJdKXx8NjQmYVsxNjQrKDB8YVsxNisoMHxhW0E+PjJdKT4+Ml0pPj4yXXwwKWJyZWFrfU9lPU9lKzF8MCxmPWdlfWlmKGZyKXtmb3IoZj0xPT0oMHxPZSk/SG46MHx2cihPZTw8MiksYVtmPj4yXT0wfHo1KDB8''@;'; + put 'put ''YVtiZT4+Ml0pLHA9MTshKCgwfHApPj0oMHxPZSkpOylhW2YrKHA8PDIpPj4yXT1hW2JlKyhwPDwyKT4+Ml0scD1wKzF8MDt6UShsLGYsT2UsdXIsMTcyOTYpLCgwfE9lKT4xJiZGdChmKSxMZT1nZX1lbHNlIGlmKG09MHxhWzIzMisocD0wfGFbMTYrKGN0PTB8YVsoMz09KDB8KGY9MyZhW0c+''@;'; + put 'put ''PjJdKSk/RzpHKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0sKDB8Y3QpPT0oMHwoZj0wfGFbKDI9PSgwfGYpP0c6RystNDh8MCkrNDA+PjJdKSkpe2Y9MHxhW0xyPj4yXTtkb3tpZigoMHxtKT09KDB8cnRbZisyMzg+PjFdKSl7aWYoKDB8bSk+MCl7Zj1+figrX1syNCsoMHxhWzE2KygwfGFbYVso''@;'; + put 'put ''MHxhW2YrMTk2Pj4yXSkrKG0rLTE8PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M10tK19bcCsyND4+M10pO2JyZWFrfWY9fn4rX1twKzgwPj4zXTticmVha31pZigoMHxtKT09KDB8cnRbZisyMzY+PjFdKSl7Zj1+figrX1twKzI0Pj4zXS0rX1syNCsoMHxhWzE2KygwfGFbYVsoMHxhW2YrMTk2Pj4y''@;'; + put 'put ''XSkrKG0rMTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXSk7YnJlYWt9Zj0oMHwoY3Q9fn4oK19bMjQrKDB8YVsxNisoMHxhW2FbKGY9MHxhW2YrMTk2Pj4yXSkrKG0rLTE8PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M10tKGxvPStfW3ArMjQ+PjNdKSkpKTwoMHwoZj1+fihsby0rX1syNCsoMHxhWzE2''@;'; + put 'put ''KygwfGFbYVtmKyhtKzE8PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M10pKSk/Y3Q6ZjticmVha313aGlsZSgwKTtmb3IoS0kobDAsYW4sTGUsT2UsUmUsKygwfCgwfGYpLzIpLDE3Mjk2KSxmPTA7Oyl7aWYoKDB8Zik+PSgwfE9lKSl7TGU9Z2U7Y29udGludWUgZX0wfChwPTB8YVs5NisoMHxhWzE2''@;'; + put 'put ''KygwfGFbYW4rKGYrTGU8PDIpPj4yXSk+PjJdKT4+Ml0pJiZlNChsLHApLGY9ZisxfDB9fWVsc2V7aWYoKDB8bSk9PSgwfGFbMjMyKygwfGFbZisxNj4+Ml0pPj4yXSkpe2wwZShsLE9pLGwwLGFuLExlLE9lLHVyKSxMZT1nZTtjb250aW51ZX1zMGUobCxPaSxsMCxhbixMZSxPZSx1ciksTGU9''@;'; + put 'put ''Z2V9fWZvcihmPTE5MisoMHxhW0xyPj4yXSl8MDtwPTB8YVtmPj4yXTspMT09KDB8ZmVbMTU2KyhmPTB8YVsobT1wKzE2fDApPj4yXSk+PjBdKSYmMCE9KDB8YVtmKzEwND4+Ml0pJiYoT0YocCksZTQobCwwfGFbMTA0KygwfGFbbT4+Ml0pPj4yXSksZj0wfGFbbT4+Ml0pLGY9ZisxNjR8MDtj''@;'; + put 'put ''PyhtWShsKSxrPWwwLHc9bDApOihrPWwwLHc9bDApfWU6ZG97aWYoMCE9KDB8YVs0NzE5N10pfDAhPSgwfGFbNDcxOThdKSYmMCE9KDB8YVs0NzIwM10pfDAhPSgwfGFbNDcyMDJdKSlmb3IoQT0wfER0KGwpOzspe2lmKCFBKWJyZWFrIGU7dDpkb3tpZigwfGFbNDcxOTddKWZvcihmPTB8TWYo''@;'; + put 'put ''bCxBKTs7KXtpZighZilicmVhayB0O3A9ZistNDh8MCwwfGFbMTAwKygwfGFbKG09Mj09KDMmYVtmPj4yXXwwKT9mOnApKzE2Pj4yXSk+PjJdJiYoZ2sobSwxKSxlNChsLDB8YVsxMDArKDB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOnApKzE2Pj4yXSk+PjJdKSksZj0wfEgzKGwsZil9fXdoaWxl''@;'; + put 'put ''KDApO3Q6ZG97aWYoMHxhWzQ3MTk4XSlmb3IoZj0wfHcwKGwsQSk7Oyl7aWYoIWYpYnJlYWsgdDswfGFbMTA0KygwfGFbKHA9ZisxNnwwKT4+Ml0pPj4yXSYmMHxnayhmLDApJiZlNChsLDB8YVsxMDQrKDB8YVtwPj4yXSk+PjJdKSxmPTB8UzAobCxmKX19d2hpbGUoMCk7QT0wfHp0KGwsQSl9''@;'; + put 'put ''fXdoaWxlKDApO3N3aXRjaCgxNSZWaSl7Y2FzZSA0OmNhc2UgODpicmVhaztkZWZhdWx0OkZ0KGIpLEZ0KDB8YVtrKzg0Pj4yXSksRnQodyksRnQoMHxhW09pKzE2Pj4yXSksTlEoKX1hWzQ3MTM4XT0xLGFbNDcxMzldPTF9fXdoaWxlKDApO2FlPVJvfWZ1bmN0aW9uIGdZKGwpe3ZhciBjPTAs''@;'; + put 'put ''Zj0wLHA9MCxtPTA7Zm9yKGM9MHxEdChsfD0wKTtjOykwfGFbMjA0KyhmPTB8YVtjKzE2Pj4yXSk+PjJdJiYocD0rX1sobT1mKzk2fDApPj4zXSxfW20+PjNdPStfWyhmPWYrMjQwfDApPj4zXSxfW2Y+PjNdPXApLGM9MHx6dChsLGMpfWZ1bmN0aW9uIG8wZShsKXt2YXIgYz0wLGY9MCxwPTAs''@;'; + put 'put ''bT0wO2M9MTkyKygwfGFbMTYrKGx8PTApPj4yXSl8MDtlOmZvcig7Oyl7aWYoIShwPTB8YVtjPj4yXSkpe2M9MTI7YnJlYWt9Yz0wfGFbKG09cCsxNnwwKT4+Ml07ZG97aWYoMT09KDB8ZmVbYysxNTY+PjBdKSl7aWYoZj0wfGFbYysxMTI+PjJdKXtpZighKGY9MHxhWzk2KygwfGFbZisxNj4+''@;'; + put 'put ''Ml0pPj4yXSkpe2M9NjticmVhayBlfWFbKHA9Zis1NnwwKT4+Ml09YVsoYz1jKzE2fDApPj4yXSxhW3ArND4+Ml09YVtjKzQ+PjJdLGFbcCs4Pj4yXT1hW2MrOD4+Ml0sYVtwKzEyPj4yXT1hW2MrMTI+PjJdLGZlW2YrODE+PjBdPTEsYz1mfWVsc2V7aWYoIShmPTB8YVtjKzEwND4+Ml0pKWJy''@;'; + put 'put ''ZWFrO09GKHApLGM9Zn1lNChsLGMpLGM9MHxhW20+PjJdfX13aGlsZSgwKTtjPWMrMTY0fDB9aWYoNj09KDB8YykpUHIoODU1MTYsODUzMjksMjM0LDg1NTM1KTtlbHNlIGlmKDEyPT0oMHxjKSlyZXR1cm59ZnVuY3Rpb24gZUkobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0w''@;'; + put 'put ''O2Rve2lmKCFjKXtpZigoMHwoYz0wfGFbKDM9PSgwfChtPTMmYVtsPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pKSE9KDB8KG09MHxhWygyPT0oMHxtKT9sOmwrLTQ4fDApKzQwPj4yXSkpKXtjPSgwfGFbMjMyKygwfGFbYysxNj4+Ml0pPj4yXSk9PSgwfGFbMjMyKygwfGFbbSsxNj4+Ml0pPj4y''@;'; + put 'put ''XSk/MjoxO2JyZWFrfWM9MHxmZVs0NCsoYz0wfGFbbCsxNj4+Ml0pPj4wXT80OjA9PSgwfGZlW2MrODQ+PjBdKT84OjR9fXdoaWxlKDApO2U6ZG97aWYoIWYpc3dpdGNoKDB8Yyl7Y2FzZSAxOmY9KDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHwoZj0zJmFbbD4+Ml0pKT9sOmwrNDh8MCkr''@;'; + put 'put ''NDA+PjJdKT4+Ml0pPj4yXSk8KDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHxmKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPzE2OjMyO2JyZWFrIGU7Y2FzZSAyOmY9KDB8YVsyMzYrKDB8YVsxNisoMHxhWygzPT0oMHwoZj0zJmFbbD4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdKT4+''@;'; + put 'put ''Ml0pPj4yXSk8KDB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMHxmKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPzE2OjMyO2JyZWFrIGU7ZGVmYXVsdDpmPTE2O2JyZWFrIGV9fXdoaWxlKDApO2FbMTY0KygwfGFbbCsxNj4+Ml0pPj4yXT1jfHB8Zn1mdW5jdGlvbiBPRihsKXt2YXIg''@;'; + put 'put ''Yz0wLGY9MCxwPTAsbT0wLEE9MDtpZigwfGFbMTc2KyhjPTB8YVsocD0xNisobHw9MCl8MCk+PjJdKT4+Ml0pe2ZvcihjPTB8YVtjKzE4MD4+Ml07MHxmZVsxMTIrKGY9MHxhWyhjPTE2KygwfGFbYz4+Ml0pfDApPj4yXSk+PjBdOyljPWYrMTE2fDA7bT0rX1syNCsoZj0wfGFbZis5Nj4+Ml0p''@;'; + put 'put ''Pj4zXSxBPStfW2YrMzI+PjNdLGY9MCE9KDEmYVsxMTYrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+Ml18MCksbD0wfGFbcD4+Ml0sX1s1NisocD0wfGFbOTYrKDB8YVtjPj4yXSk+PjJdKT4+M109LjUqKGY/QTptKSsgK19bbCsxNj4+M10sX1twKzY0Pj4zXT0rX1tsKzI0Pj4zXSxmZVtwKzgx''@;'; + put 'put ''Pj4wXT0xfX1mdW5jdGlvbiB6NShsKXtsfD0wO2Zvcih2YXIgYz0wLGY9MDtmPTB8YVsxNzIrKGM9MHxhW2wrMTY+PjJdKT4+Ml07KWw9Zjtmb3IoO2M9MHxhW2MrMTE2Pj4yXTspbD1jLGM9MHxhW2MrMTY+PjJdO3JldHVybiAwfGx9ZnVuY3Rpb24gbDBlKGwsYyxmLHAsbSxBLHcpe2x8PTAs''@;'; + put 'put ''Y3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTA7dmFyIFJlLEhlLFZlLG50LGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAscWU9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLGx0PTA7aWYobnQ9YWUsYWU9YWUrMTcxMnwwLFJlPW50KzE2NjR8MCxx''@;'; + put 'put ''ZT1udCsxNjk2fDAsSGU9bnQrNjk2fDAsVmU9bnQsYVsoUj0xNisoZ2U9bnQrMTM5MnwwKXwwKT4+Ml09cGU9bnQrMTQ4OHwwLGJlPTB8ZmVbMTEzKyhiPTB8YVsoSz0xNisoRz0wfGFbcCsobTw8Mik+PjJdKXwwKT4+Ml0pPj4wXSwzMiZhW2IrMTY0Pj4yXSl7Z28oMHxwZSwwfGIsMTc2KSxN''@;'; + put 'put ''PUcsRD0oYj1nZSkrNDh8MDtkb3thW2I+PjJdPWFbTT4+Ml0sYj1iKzR8MCxNPU0rNHwwfXdoaWxlKCgwfGIpPCgwfEQpKTthW1I+PjJdPXBlLGFbKDM9PSgwfChiPTMmYVtnZT4+Ml0pKT9nZTpnZSs0OHwwKSs0MD4+Ml09YVsoMj09KDMmYVtHPj4yXXwwKT9HOkcrLTQ4fDApKzQwPj4yXSxh''@;'; + put 'put ''WygyPT0oMHxiKT9nZTpnZSstNDh8MCkrNDA+PjJdPWFbKDM9PSgzJmFbRz4+Ml18MCk/RzpHKzQ4fDApKzQwPj4yXSxNPTU2KygwfGFbSz4+Ml0pfDAsRD00MCsoYj1wZSsxNnwwKXwwO2Rve2FbYj4+Ml09YVtNPj4yXSxiPWIrNHwwLE09TSs0fDB9d2hpbGUoKDB8Yik8KDB8RCkpO009MTYr''@;'; + put 'put ''KDB8YVtLPj4yXSl8MCxEPTQwKyhiPXBlKzU2fDApfDA7ZG97YVtiPj4yXT1hW00+PjJdLGI9Yis0fDAsTT1NKzR8MH13aGlsZSgoMHxiKTwoMHxEKSk7ZmVbcGUrMTEyPj4wXT0xLGFbcGUrMTE2Pj4yXT1HLEc9Z2V9Zm9yKGI9MTs7KXtpZigoMHxiKT49KDB8QSkpe0xlPTY7YnJlYWt9aWYo''@;'; + put 'put ''MHxmZVsxMTMrKDB8YVsxNisoMHxhW3ArKGIrbTw8Mik+PjJdKT4+Ml0pPj4wXSl7TGU9NzticmVha31iPWIrMXwwfWU6ZG97aWYoNj09KDB8TGUpKWlmKGJlPDwyND4+MjQpTGU9NztlbHNle2lmKDB8YVs5NisoYj0wfGFbRysxNj4+Ml0pPj4yXSl7ZzBlKGwsYyxmLEcsdyk7YnJlYWt9aWYo''@;'; + put 'put ''Mj09KDB8dykpe0hGKDB8YVsoMz09KDB8KHFlPTMmYVtHPj4yXSkpP0c6Rys0OHwwKSs0MD4+Ml0sMHxhWygyPT0oMHxxZSk/RzpHKy00OHwwKSs0MD4+Ml0scCxtLEEsMik7YnJlYWt9aWYoISgoZ2U9MHxmZVtiKzQ5Pj4wXSk8PDI0Pj4yND09MSYoYmU9MHxmZVtiKzg5Pj4wXSk8PDI0Pj4y''@;'; + put 'put ''NCE9NHx8Z2U8PDI0Pj4yNCE9NCZiZTw8MjQ+PjI0PT0xKSlmb3IoRD0wfGFbKDM9PSgwfChSPTMmYVtHPj4yXSkpP0c6Rys0OHwwKSs0MD4+Ml0sUj0wfGFbKDI9PSgwfFIpP0c6RystNDh8MCkrNDA+PjJdLGs9KDB8KE09MHxhWzIzMisoYj0wfGFbRCsxNj4+Ml0pPj4yXSkpPjA/K19bMjQr''@;'; + put 'put ''KDB8YVsxNisoMHxhW2FbKGJlPTB8YVsxOTYrKDB8YVtsKzE2Pj4yXSk+PjJdKSsoKGdlPU0rfigxJmZlWzExMysoMHxhWzE2KygwfGFbbCs2MD4+Ml0pPj4yXSk+PjBdKXwwKTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXS0rX1tiZSsoZ2U8PDYpKzE2Pj4zXS0rX1tiKzI0Pj4zXS0rX1tiZSso''@;'; + put 'put ''TTw8NikrMjQ+PjNdOisoMHxhWzI1MisoMHxhW2wrMTY+PjJdKT4+Ml0pLE9lPSsoMHxhW2MrMTI+PjJdKS8oV2U9KyhBKzF8MCkpLGsvPVdlLG5JKGwsYyxmLEQsRyxIZSwxKSxuSShsLGMsZixSLEcsVmUsMCkscGU9SGUrNTJ8MCxnZT1WZSs1MnwwLFI9MTA9PSgwfHcpLEc9Zis4MHwwLGI9''@;'; + put 'put ''MDs7KXtpZigoMHxiKT49KDB8QSkpYnJlYWsgZTtmb3IoSz0wfGFbcCsoYittPDwyKT4+Ml0sa3Q9K19bSGUrNTYrKChNPShEPTB8YVtwZT4+Ml0pLTF8MCk8PDUpKzE2Pj4zXSxTdD0rX1tIZSs1NisoTTw8NSkrMjQ+PjNdLF9bMTkyMTVdPWx0PStfW0hlKzU2KyhNPDw1KT4+M10sX1sxOTIx''@;'; + put 'put ''Nl09U3QsX1sxOTIxN109a3QrKG90PU9lKihXZT0rKDB8KGI9YisxfDApKSkpLF9bMTkyMThdPVdlPVN0K2sqV2UsX1sxOTIxOV09bHQsX1sxOTIyMF09V2UsX1sxOTIyMV09bHQ9K19bVmUrNTYrKChNPSgwfGFbZ2U+PjJdKS0xfDApPDw1KSsxNj4+M10sX1sxOTIyMl09V2UrayxTdD0rX1tW''@;'; + put 'put ''ZSs1NisoTTw8NSk+PjNdLGt0PStfW1ZlKzU2KyhNPDw1KSsyND4+M10sX1sxOTIyNV09bHQsX1sxOTIyNF09a3QsX1sxOTIyM109U3Qtb3QsX1sxOTIyNl09V2UsTT0wOzspe2lmKCgwfE0pPj0oMHxEKSl7TT0wO2JyZWFrfWFbUmU+PjJdPWFbKEQ9SGUrNTYrKE08PDUpfDApPj4yXSxhW1Jl''@;'; + put 'put ''KzQ+PjJdPWFbRCs0Pj4yXSxhW1JlKzg+PjJdPWFbRCs4Pj4yXSxhW1JlKzEyPj4yXT1hW0QrMTI+PjJdLGFbUmUrMTY+PjJdPWFbRCsxNj4+Ml0sYVtSZSsyMD4+Ml09YVtEKzIwPj4yXSxhW1JlKzI0Pj4yXT1hW0QrMjQ+PjJdLGFbUmUrMjg+PjJdPWFbRCsyOD4+Ml0sWDMoZixSZSksTT1N''@;'; + put 'put ''KzF8MCxEPTB8YVtwZT4+Ml19Zm9yKDszIT0oMHxNKTspYVtSZT4+Ml09YVsodz0xNTM3MjArKE08PDUpfDApPj4yXSxhW1JlKzQ+PjJdPWFbdys0Pj4yXSxhW1JlKzg+PjJdPWFbdys4Pj4yXSxhW1JlKzEyPj4yXT1hW3crMTI+PjJdLGFbUmUrMTY+PjJdPWFbdysxNj4+Ml0sYVtSZSsyMD4+''@;'; + put 'put ''Ml09YVt3KzIwPj4yXSxhW1JlKzI0Pj4yXT1hW3crMjQ+PjJdLGFbUmUrMjg+PjJdPWFbdysyOD4+Ml0sWDMoZixSZSksTT1NKzF8MDtmb3IoRD0wfGFbZ2U+PjJdO009RCstMXwwLCEoKDB8RCk8PTApOylhW1JlPj4yXT1hWyhEPVZlKzU2KyhNPDw1KXwwKT4+Ml0sYVtSZSs0Pj4yXT1hW0Qr''@;'; + put 'put ''ND4+Ml0sYVtSZSs4Pj4yXT1hW0QrOD4+Ml0sYVtSZSsxMj4+Ml09YVtEKzEyPj4yXSxhW1JlKzE2Pj4yXT1hW0QrMTY+PjJdLGFbUmUrMjA+PjJdPWFbRCsyMD4+Ml0sYVtSZSsyND4+Ml09YVtEKzI0Pj4yXSxhW1JlKzI4Pj4yXT1hW0QrMjg+PjJdLFgzKGYsUmUpLEQ9TTtpZihNPVI/MHxi''@;'; + put 'put ''eShmLHFlKTowfGRrKGYscWUpLCEoRD0wfGFbcWU+PjJdKSlicmVhayBlO0F1KEssMHxhWygyPT0oMyZhW0s+PjJdfDApP0s6SystNDh8MCkrNDA+PjJdLE0sRCwxNzI5NiksYVtHPj4yXT0wfWJZKGwsYyxmLHAsbSxBLEcsMTA9PSgwfHcpJjEpfX13aGlsZSgwKTs3PT0oMHxMZSkmJmZ1bmN0''@;'; + put 'put ''aW9uIHAwZShsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxBfD0wO3ZhciBXZSxvdCxTdCxrdCxsdCxFdCxadCxjdCxidCxhbixTbixIbix1cixIcixmcix3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9''@;'; + put 'put ''MCxxZT0wLG50PTAsRXI9MCxEcj0wLEpyPTA7ZnI9YWUsYWU9YWUrMjU2fDAsb3Q9ZnIrMjMyfDAsV2U9ZnIrMjE2fDAsSHI9ZnIrODh8MCx1cj1mcis4MHwwLGJ0PWZyKzY0fDAsYW49ZnIrMjAwfDAsU249ZnIrMTg0fDAsSG49ZnIsU3Q9ZnIrMTY4fDAsa3Q9ZnIrMTUyfDAsbHQ9ZnIrMTM2''@;'; + put 'put ''fDAsRXQ9ZnIrMTIwfDAsWnQ9ZnIrMTA0fDAsY3Q9MHxhWygzPT0oMHwobnQ9MyZhWyhtfD0wKT4+Ml0pKT9tOm0rNDh8MCkrNDA+PjJdLG50PTB8YVsoMj09KDB8bnQpP206bSstNDh8MCkrNDA+PjJdO2Rve2lmKDIhPSgwfCQ1KGN0KSkmJjIhPSgwfCQ1KG50KSkpe2ZvcihtPTAsdz0wLGI9''@;'; + put 'put ''MDshKCgwfGIpPj0oMHxwKSk7KW09bSsoMCE9KDB8YVs5NisocWU9MHxhWzE2KygwfGFbYysoYitmPDwyKT4+Ml0pPj4yXSk+PjJdKSYxKXwwLDA9PSgwfGZlW3FlKzQ0Pj4wXSkmJjA9PSgwfGZlW3FlKzg0Pj4wXSl8fCh3PTEpLGI9YisxfDA7aWYoIXcpe2lmKG0pe19ZKGN0LG50LGMsZixw''@;'; + put 'put ''LEEsbSk7YnJlYWt9SEYoY3QsbnQsYyxmLHAsQSk7YnJlYWt9Zm9yKGgwKGdlPTB8ZHMoVmU9MHxDWShsLEhlPTB8dnIoMTU2KSksODU0NzgsMSksMTM3NDgzLDI4MCwxKSxrYyhnZSw4NzE3MSw4NzE4NSksaz0rX1sxNisoMHxhW250KzE2Pj4yXSk+PjNdLHBlPStfWzE2KygwfGFbY3QrMTY+''@;'; + put 'put ''PjJdKT4+M10sSz0oRz0wPT0oMSZhWzExNisoMHxhWyhxZT1sKzE2fDApPj4yXSk+PjJdfDApKT9udDpjdCxnZT0wfEdDKGdlLEc9Rz9jdDpudCksYmU9MHxHQyhWZSxLKSxtPTAsUj0wOyEoKDB8Uik+PSgwfHApKTspe2Zvcih3PWMrKFIrZjw8Mil8MDswfGZlWzExMisodz0wfGFbKE09MTYr''@;'; + put 'put ''KEQ9MHxhW3c+PjJdKXwwKT4+Ml0pPj4wXTspdz13KzExNnwwO2I9KDB8YVsoMz09KDMmYVtEPj4yXXwwKT9EOkQrNDh8MCkrNDA+PjJdKT09KDB8Ryk/MHxZNShWZSxnZSxiZSxEKTowfFk1KFZlLGJlLGdlLEQpLGFbMTIwKyh3PTB8YVtNPj4yXSk+PjJdPWIsbXx8KDA9PSgwfGZlW3crNDQ+''@;'; + put 'put ''PjBdKSYmMD09KDB8ZmVbdys4ND4+MF0pPyhhWzEyMCsoMHxhW2IrMTY+PjJdKT4+Ml09RCxtPWIpOm09MCksUj1SKzF8MH1mb3IoVmwoUmU9bXx8MHxLYShWZSxnZSxiZSwwLDEpLDB8YVs0NzE3NF0sODU0ODIpLGFbMTQ0KyhNPTB8YVsobT1WZSsxNnwwKT4+Ml0pPj4yXT1hWzE0NCsoMHxh''@;'; + put 'put ''W3FlPj4yXSk+PjJdLGFbTSsxODg+PjJdPVZlLHQ0KFZlLEEpLHVZKFZlKSwkWShWZSwwKSwkQShWZSwwKSx2SShWZSwwKSxNPTB8YVtLKzE2Pj4yXSxPZT0rKDB8fn5rKSxMZT0rKDB8fn4oLjUqKCtfWzE2KygwfGFbYmUrMTY+PjJdKT4+M10rICtfWyhSPTE2KyhEPTB8YVsoSz1nZSsxNnww''@;'; + put 'put ''KT4+Ml0pfDApPj4zXSkpKSxrPSsoMHx+fnBlKSxwZT0rKDB8fn4oLjUqKCtfWzE2KyhBPTB8YVsoRz1HKzE2fDApPj4yXSk+PjNdLStfW0ErOTY+PjNdKyArX1tNKzE2Pj4zXSsgK19bTSs4OD4+M10pKSksTT1EKzI0fDAsbT0xOTIrKDB8YVttPj4yXSl8MDt3PTB8YVttPj4yXTspe2Rve2lm''@;'; + put 'put ''KCgwfHcpIT0oMHxnZSkpe2lmKGI9MjQrKG09MHxhW3crMTY+PjJdKXwwLCgwfHcpPT0oMHxiZSkpe19bYj4+M109ayxfW20rMTY+PjNdPUxlO2JyZWFrfV9bYj4+M109cGU7YnJlYWt9X1tNPj4zXT1PZSxfW1I+PjNdPUxlLG09RH13aGlsZSgwKTttPW0rMTY0fDB9Zm9yKGZIKFZlKSxaNShW''@;'; + put 'put ''ZSwwKSxxZChWZSksYj0wfGFbRz4+Ml0sbT0wfGFbSz4+Ml0sMSZhWzExNisoMHxhW3FlPj4yXSk+PjJdPyh3PW0rMjR8MCxrPStfW20rMTY+PjNdKyArX1tiKzI0Pj4zXSk6KHc9bSsxNnwwLGs9K19bYisyND4+M10tK19bbSsyND4+M10pLF9bYnQ+PjNdPStfW2IrMTY+PjNdLStfW3c+PjNd''@;'; + put 'put ''LF9bYnQrOD4+M109ayxBPUhuKzE2fDAsZ2U9SG4rMzJ8MCxiZT1Ibis0OHwwLEs9MDshKCgwfEspPj0oMHxwKSk7KXtmb3IobT1jKyhLK2Y8PDIpfDA7MHxmZVsxMTIrKG09MHxhWyhHPTE2Kyh3PTB8YVttPj4yXSl8MCk+PjJdKT4+MF07KW09bSsxMTZ8MDtpZighKCgwfChEPTB8YVttKzEy''@;'; + put 'put ''MD4+Ml0pKT09KDB8UmUpJjA9PSgwfGFbMTIwKyhtPTB8YVsoUj1EKzE2fDApPj4yXSk+PjJdKSkpe2Zvcih3PTB8aU4odywwfGFbKEQ9NCsoTT0wfGFbYVttKzg+PjJdPj4yXSl8MCk+PjJdKSxhW3crOD4+Ml09YVtNKzg+PjJdLG09dysxNnwwLERyPTEmYVsxMTYrKDB8YVtxZT4+Ml0pPj4y''@;'; + put 'put ''XSxhW1dlPj4yXT1hWyhiPU0rMTZ8MCk+PjJdLGFbV2UrND4+Ml09YVtiKzQ+PjJdLGFbV2UrOD4+Ml09YVtiKzg+PjJdLGFbV2UrMTI+PjJdPWFbYisxMj4+Ml0sYVtvdD4+Ml09YVtidD4+Ml0sYVtvdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbb3QrOD4+Ml09YVtidCs4Pj4yXSxhW290KzEyPj4y''@;'; + put 'put ''XT1hW2J0KzEyPj4yXSxjbChhbixXZSxvdCxEciksYVttPj4yXT1hW2FuPj4yXSxhW20rND4+Ml09YVthbis0Pj4yXSxhW20rOD4+Ml09YVthbis4Pj4yXSxhW20rMTI+PjJdPWFbYW4rMTI+PjJdLGFbdysxMj4+Ml09YVtNKzEyPj4yXSxtPXcrMzJ8MCxiPTEmYVsxMTYrKDB8YVtxZT4+Ml0p''@;'; + put 'put ''Pj4yXSxhW1dlPj4yXT1hWyhEcj1NKzMyfDApPj4yXSxhW1dlKzQ+PjJdPWFbRHIrND4+Ml0sYVtXZSs4Pj4yXT1hW0RyKzg+PjJdLGFbV2UrMTI+PjJdPWFbRHIrMTI+PjJdLGFbb3Q+PjJdPWFbYnQ+PjJdLGFbb3QrND4+Ml09YVtidCs0Pj4yXSxhW290Kzg+PjJdPWFbYnQrOD4+Ml0sYVtv''@;'; + put 'put ''dCsxMj4+Ml09YVtidCsxMj4+Ml0sY2woU24sV2Usb3QsYiksYVttPj4yXT1hW1NuPj4yXSxhW20rND4+Ml09YVtTbis0Pj4yXSxhW20rOD4+Ml09YVtTbis4Pj4yXSxhW20rMTI+PjJdPWFbU24rMTI+PjJdLG09MDshKCgwfG0pPj0oMHxhW0Q+PjJdKSk7KXtpZihiPSgwfGFbdz4+Ml0pKyht''@;'; + put 'put ''PDw0KXwwLERyPTEmYVsxMTYrKDB8YVtxZT4+Ml0pPj4yXSxhW1dlPj4yXT1hWyhKcj0oMHxhW00+PjJdKSsobTw8NCl8MCk+PjJdLGFbV2UrND4+Ml09YVtKcis0Pj4yXSxhW1dlKzg+PjJdPWFbSnIrOD4+Ml0sYVtXZSsxMj4+Ml09YVtKcisxMj4+Ml0sYVtvdD4+Ml09YVtidD4+Ml0sYVtv''@;'; + put 'put ''dCs0Pj4yXT1hW2J0KzQ+PjJdLGFbb3QrOD4+Ml09YVtidCs4Pj4yXSxhW290KzEyPj4yXT1hW2J0KzEyPj4yXSxjbChTdCxXZSxvdCxEciksYVtiPj4yXT1hW1N0Pj4yXSxhW2IrND4+Ml09YVtTdCs0Pj4yXSxhW2IrOD4+Ml09YVtTdCs4Pj4yXSxhW2IrMTI+PjJdPWFbU3QrMTI+PjJdLGFb''@;'; + put 'put ''SG4+PjJdPWFbU3Q+PjJdLGFbSG4rND4+Ml09YVtTdCs0Pj4yXSxhW0huKzg+PjJdPWFbU3QrOD4+Ml0sYVtIbisxMj4+Ml09YVtTdCsxMj4+Ml0sKDB8KGI9bSsxfDApKT49KDB8YVtEPj4yXSkpe0VyPTQ4O2JyZWFrfURyPSgwfGFbdz4+Ml0pKyhiPDw0KXwwLEpyPTEmYVsxMTYrKDB8YVtx''@;'; + put 'put ''ZT4+Ml0pPj4yXSxhW1dlPj4yXT1hWyhiPSgwfGFbTT4+Ml0pKyhiPDw0KXwwKT4+Ml0sYVtXZSs0Pj4yXT1hW2IrND4+Ml0sYVtXZSs4Pj4yXT1hW2IrOD4+Ml0sYVtXZSsxMj4+Ml09YVtiKzEyPj4yXSxhW290Pj4yXT1hW2J0Pj4yXSxhW290KzQ+PjJdPWFbYnQrND4+Ml0sYVtvdCs4Pj4y''@;'; + put 'put ''XT1hW2J0Kzg+PjJdLGFbb3QrMTI+PjJdPWFbYnQrMTI+PjJdLGNsKGt0LFdlLG90LEpyKSxhW0RyPj4yXT1hW2t0Pj4yXSxhW0RyKzQ+PjJdPWFba3QrND4+Ml0sYVtEcis4Pj4yXT1hW2t0Kzg+PjJdLGFbRHIrMTI+PjJdPWFba3QrMTI+PjJdLGFbQT4+Ml09YVtrdD4+Ml0sYVtBKzQ+PjJd''@;'; + put 'put ''PWFba3QrND4+Ml0sYVtBKzg+PjJdPWFba3QrOD4+Ml0sYVtBKzEyPj4yXT1hW2t0KzEyPj4yXSxKcj0oMHxhW3c+PjJdKSsoKERyPW0rMnwwKTw8NCl8MCxiPTEmYVsxMTYrKDB8YVtxZT4+Ml0pPj4yXSxhW1dlPj4yXT1hWyhEcj0oMHxhW00+PjJdKSsoRHI8PDQpfDApPj4yXSxhW1dlKzQ+''@;'; + put 'put ''PjJdPWFbRHIrND4+Ml0sYVtXZSs4Pj4yXT1hW0RyKzg+PjJdLGFbV2UrMTI+PjJdPWFbRHIrMTI+PjJdLGFbb3Q+PjJdPWFbYnQ+PjJdLGFbb3QrND4+Ml09YVtidCs0Pj4yXSxhW290Kzg+PjJdPWFbYnQrOD4+Ml0sYVtvdCsxMj4+Ml09YVtidCsxMj4+Ml0sY2wobHQsV2Usb3QsYiksYVtK''@;'; + put 'put ''cj4+Ml09YVtsdD4+Ml0sYVtKcis0Pj4yXT1hW2x0KzQ+PjJdLGFbSnIrOD4+Ml09YVtsdCs4Pj4yXSxhW0pyKzEyPj4yXT1hW2x0KzEyPj4yXSxhW2dlPj4yXT1hW2x0Pj4yXSxhW2dlKzQ+PjJdPWFbbHQrND4+Ml0sYVtnZSs4Pj4yXT1hW2x0Kzg+PjJdLGFbZ2UrMTI+PjJdPWFbbHQrMTI+''@;'; + put 'put ''PjJdLERyPTEmYVsxMTYrKDB8YVtxZT4+Ml0pPj4yXSxhW1dlPj4yXT1hWyhiPSgwfGFbTT4+Ml0pKygoSnI9bSszfDApPDw0KXwwKT4+Ml0sYVtXZSs0Pj4yXT1hW2IrND4+Ml0sYVtXZSs4Pj4yXT1hW2IrOD4+Ml0sYVtXZSsxMj4+Ml09YVtiKzEyPj4yXSxhW290Pj4yXT1hW2J0Pj4yXSxh''@;'; + put 'put ''W290KzQ+PjJdPWFbYnQrND4+Ml0sYVtvdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbb3QrMTI+PjJdPWFbYnQrMTI+PjJdLGNsKEV0LFdlLG90LERyKSxhW2JlPj4yXT1hW0V0Pj4yXSxhW2JlKzQ+PjJdPWFbRXQrND4+Ml0sYVtiZSs4Pj4yXT1hW0V0Kzg+PjJdLGFbYmUrMTI+PjJdPWFbRXQrMTI+''@;'; + put 'put ''PjJdLEhBKDE2KygwfGFbcWU+PjJdKXwwLEhuKSxtPUpyfTQ4PT0oMHxFcikmJihFcj0wKSwwfChtPTB8YVs5NisoMHxhW0c+PjJdKT4+Ml0pJiYoSnI9bSs1NnwwLERyPTEmYVsxMTYrKDB8YVtxZT4+Ml0pPj4yXSxhW1dlPj4yXT1hWyhSPTU2KygwfGFbOTYrKDB8YVtSPj4yXSk+PjJdKXww''@;'; + put 'put ''KT4+Ml0sYVtXZSs0Pj4yXT1hW1IrND4+Ml0sYVtXZSs4Pj4yXT1hW1IrOD4+Ml0sYVtXZSsxMj4+Ml09YVtSKzEyPj4yXSxhW290Pj4yXT1hW2J0Pj4yXSxhW290KzQ+PjJdPWFbYnQrND4+Ml0sYVtvdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbb3QrMTI+PjJdPWFbYnQrMTI+PjJdLGNsKFp0LFdl''@;'; + put 'put ''LG90LERyKSxhW0pyPj4yXT1hW1p0Pj4yXSxhW0pyKzQ+PjJdPWFbWnQrND4+Ml0sYVtKcis4Pj4yXT1hW1p0Kzg+PjJdLGFbSnIrMTI+PjJdPWFbWnQrMTI+PjJdLGZlWzgxKyhKcj0wfGFbOTYrKDB8YVtHPj4yXSk+PjJdKT4+MF09MSxlNChsLEpyKSl9Sz1LKzF8MH1XQyhWZSxIZSl9ZWxz''@;'; + put 'put ''ZSBFcj0zfXdoaWxlKDApOzM9PSgwfEVyKSYmMD09KDB8YVs0NjczOF0pJiYoYVs0NjczOF09MSwkcigwLDg1MzU1LHVyKSxFcj0wfHRpKGN0KSxEcj0wIT0oMHxTYyhsKSksSnI9MHx0aShudCksYVtIcj4+Ml09RXIsYVtIcis0Pj4yXT1Ecj8xMzc3Mzg6MTQxNzQ3LGFbSHIrOD4+Ml09SnIs''@;'; + put 'put ''JHIoMyw4NTQ2MSxIcikpLGFlPWZyfShsLHAsbSxBLEcsdyksYWU9bnR9ZnVuY3Rpb24gczBlKGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTA7dmFyIEV0LGFuLFNuLEhuLHVyLEhyLEVyLGZyLERyLEpyLExyLGwwLE9pLFJvLFRhLGphLGdhLGI9MCxr''@;'; + put 'put ''PTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MCxTdD0wLGt0PTAsbHQ9MCxadD0wLGN0PTAsYnQ9MCxWaT0wLGxvPTAseGk9MDtpZihnYT1hZSxhZT1hZSsyNTc2fDAsZnI9Z2ErMjUyOHwwLGxv''@;'; + put 'put ''PWdhKzI1Njh8MCxNPWdhKzIxNzZ8MCxPaT1nYSsxODA4fDAsVGE9Z2ErMTcxMnwwLERyPWdhKzEwMTZ8MCxKcj1nYSszMjB8MCxMcj1nYSsyNTZ8MCxWaT1nYSsyNTY0fDAsUm89Z2ErMjU2MHwwLFZlPWdhKzI4OHwwLHFlPWdhKzIyNHwwLGFuPWdhKzE5MnwwLFNuPWdhKzE2MHwwLEhuPWdh''@;'; + put 'put ''KzEyOHwwLHVyPWdhKzk2fDAsSHI9Z2ErNjR8MCxFcj1nYSszMnwwLGwwPWdhLGFbKHBlPTE2KyhnZT1nYSsxOTA0fDApfDApPj4yXT1iPWdhKzIzNTJ8MCxhWyhEPU9pKzE2fDApPj4yXT1NLGFbKGphPVRhKzE2fDApPj4yXT1nYSsyZTMsMHxhWzQ2NzM0XXx8KGFbNDY3MzRdPTB8UW4oMzJl''@;'; + put 'put ''MyksYVs0NjczNV09MHxRbigzMmUzKSxhWzQ2NzM2XT0yZTMsYVs0NjczN109MmUzKSxSPTQ4KyhiZT0wfGFbcCsobTw8Mik+PjJdKXwwLEc9YmUrLTQ4fDAsSz1iZSsxNnwwLCgwfCgoMHwoYnQ9KDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHwoYnQ9MyZhW2JlPj4yXSkpP2JlOlIpKzQw''@;'; + put 'put ''Pj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDB8YnQpP2JlOkcpKzQwPj4yXSk+PjJdKT4+Ml0pfDApKT4tMT9idDowLWJ0fDApKTw9MSlpZigzMiZhWzE2NCsoYj0wfGFbSz4+Ml0pPj4yXSl7Z28oMHwoTT0wfGFbcGU+PjJdKSwwfGIsMTc2KSxSZT1iZSxIZT0o''@;'; + put 'put ''TGU9Z2UpKzQ4fDA7ZG97YVtMZT4+Ml09YVtSZT4+Ml0sTGU9TGUrNHwwLFJlPVJlKzR8MH13aGlsZSgoMHxMZSk8KDB8SGUpKTthW3BlPj4yXT1NLGFbKDM9PSgwfChMZT0zJmFbZ2U+PjJdKSk/Z2U6Z2UrNDh8MCkrNDA+PjJdPWFbKDI9PSgzJmFbYmU+PjJdfDApP2JlOkcpKzQwPj4yXSxh''@;'; + put 'put ''WygyPT0oMHxMZSk/Z2U6Z2UrLTQ4fDApKzQwPj4yXT1hWygzPT0oMyZhW2JlPj4yXXwwKT9iZTpSKSs0MD4+Ml0sUmU9NTYrKDB8YVtLPj4yXSl8MCxIZT00MCsoTGU9TSsxNnwwKXwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhl''@;'; + put 'put ''KSk7UmU9MTYrKDB8YVtLPj4yXSl8MCxIZT00MCsoTGU9NTYrKGI9MHxhW3BlPj4yXSl8MCl8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpO2ZlW2IrMTEyPj4wXT0xLE09MCxjdD0xMn1lbHNlIGJ0PWJlLE09MDtlbHNle2dv''@;'; + put 'put ''KDB8YiwwfGFbSz4+Ml0sMTc2KSxSZT1iZSxIZT0oTGU9Z2UpKzQ4fDA7ZG97YVtMZT4+Ml09YVtSZT4+Ml0sTGU9TGUrNHwwLFJlPVJlKzR8MH13aGlsZSgoMHxMZSk8KDB8SGUpKTtSZT1SLEhlPTQ4KyhMZT1nZSs0OHwwKXwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1S''@;'; + put 'put ''ZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7aWYoYVtwZT4+Ml09YiwzMiZhWzE2NCsoYj0wfGFbSz4+Ml0pPj4yXSl7Z28oMHwoTT0wfGFbRD4+Ml0pLDB8YiwxNzYpLFJlPWJlLEhlPShMZT1PaSkrNDh8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxl''@;'; + put 'put ''KCgwfExlKTwoMHxIZSkpO2FbRD4+Ml09TSxhWygzPT0oMHwoTGU9MyZhW09pPj4yXSkpP09pOk9pKzQ4fDApKzQwPj4yXT1hWygyPT0oMyZhW2JlPj4yXXwwKT9iZTpHKSs0MD4+Ml0sYVsoMj09KDB8TGUpP09pOk9pKy00OHwwKSs0MD4+Ml09YVsoMz09KDMmYVtiZT4+Ml18MCk/YmU6Uikr''@;'; + put 'put ''NDA+PjJdLFJlPTU2KygwfGFbSz4+Ml0pfDAsSGU9NDArKExlPU0rMTZ8MCl8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpO1JlPTE2KygwfGFbSz4+Ml0pfDAsSGU9NDArKExlPTU2KyhiPTB8YVtEPj4yXSl8MCl8MDtkb3th''@;'; + put 'put ''W0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpO2ZlW2IrMTEyPj4wXT0xLGFbYisxMTY+PjJdPWJlLGFbKDM9PSgzJihEPTB8YVtnZT4+Ml0pfDApP2dlOmdlKzQ4fDApKzQwPj4yXT1hWygyPT0oMyZhW2JlPj4yXXwwKT9iZTpHKSs0MD4+''@;'; + put 'put ''Ml0sUmU9NTYrKDB8YVtLPj4yXSl8MCxIZT00MCsoTGU9MTYrKDB8YVtwZT4+Ml0pfDApfDA7ZG97YVtMZT4+Ml09YVtSZT4+Ml0sTGU9TGUrNHwwLFJlPVJlKzR8MH13aGlsZSgoMHxMZSk8KDB8SGUpKX1lbHNle2dvKDB8TSwwfGIsMTc2KSxSZT1iZSxIZT0oTGU9T2kpKzQ4fDA7ZG97YVtM''@;'; + put 'put ''ZT4+Ml09YVtSZT4+Ml0sTGU9TGUrNHwwLFJlPVJlKzR8MH13aGlsZSgoMHxMZSk8KDB8SGUpKTthW0Q+PjJdPU0sYVsoMz09KDMmKEQ9MHxhW2dlPj4yXSl8MCk/Z2U6Z2UrNDh8MCkrNDA+PjJdPWFbKDM9PSgzJmFbYmU+PjJdfDApP2JlOlIpKzQwPj4yXSxSZT1SLEhlPTQ4KyhMZT1PaSs0''@;'; + put 'put ''OHwwKXwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSl9Zm9yKGI9MHx6NShiZSk7TT0wfGFbMTcyKygwfGFbYisxNj4+Ml0pPj4yXTspYj1NO2FbKDI9PSgzJkR8MCk/Z2U6Z2UrLTQ4fDApKzQwPj4yXT1hWygyPT0oMyZhW2I+''@;'; + put 'put ''PjJdfDApP2I6YistNDh8MCkrNDA+PjJdLGZlWzg0KyhiPTB8YVtwZT4+Ml0pPj4wXT0wLGZlW2IrMTEyPj4wXT0xLGFbKE09Yis1NnwwKT4+Ml09MCxhW00rND4+Ml09MCxhW00rOD4+Ml09MCxhW00rMTI+PjJdPTAsTT0xLGN0PTEyfTEyPT0oMHxjdCkmJihhW2IrMTE2Pj4yXT1iZSxidD1n''@;'; + put 'put ''ZSksY3Q9KEV0PTI9PSgwfHcpKSYmKE9lPTB8ZnVuY3Rpb24gZjBlKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBNLEQsRyxLLHBlLE9lLExlLFJlLG09MCxBPTAsdz0wLGI9MCxrPTAsUj0wLGdlPTAsYmU9MCxIZT0wO2ZvcihSZT1hZSxhZT1hZSs5NnwwLEc9UmUrODB8MCxwZT1SZSs2''@;'; + put 'put ''NHwwLEs9UmUrNDh8MCxiZT1SZSszMnwwLE9lPVJlKzE2fDAsTGU9UmUsaz1jfD0wOzB8ZmVbMTEyKyhtPTB8YVsoZ2U9aysxNnwwKT4+Ml0pPj4wXTspaz0wfGFbbSsxMTY+PjJdO3N3aXRjaChEPTB8YVsoMj09KDB8KG09MyZhW2s+PjJdKSk/azprKy00OHwwKSs0MD4+Ml0sbT0wfGFbKDM9''@;'; + put 'put ''PSgwfG0pP2s6ays0OHwwKSs0MD4+Ml0sMHwoKDB8KEhlPSgwfGFbMjMyKygwfGFbKGs9RCsxNnwwKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsoTT1tKzE2fDApPj4yXSk+PjJdKXwwKSk+LTE/SGU6MC1IZXwwKSl7Y2FzZSAxOm09MDticmVhaztjYXNlIDI6MSZmZVsxMTMrKDB8YVsxNiso''@;'; + put 'put ''MHxhW2wrNjA+PjJdKT4+Ml0pPj4wXT9tPTA6Uj02O2JyZWFrO2RlZmF1bHQ6Uj02fWRve2lmKDY9PSgwfFIpKXtpZigoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pPT0oMHxtKT8oYVtwPj4yXT1ELFI9MTYrKDB8YVtnZT4+Ml0pfDAsYVtwZT4+Ml09YVsoSGU9MTYr''@;'; + put 'put ''KDB8YVtNPj4yXSl8MCk+PjJdLGFbcGUrND4+Ml09YVtIZSs0Pj4yXSxhW3BlKzg+PjJdPWFbSGUrOD4+Ml0sYVtwZSsxMj4+Ml09YVtIZSsxMj4+Ml0sYVtHPj4yXT1hW1I+PjJdLGFbRys0Pj4yXT1hW1IrND4+Ml0sYVtHKzg+PjJdPWFbUis4Pj4yXSxhW0crMTI+PjJdPWFbUisxMj4+Ml0s''@;'; + put 'put ''QnUoYmUscGUsRyksSGU9NTYrKDB8YVtnZT4+Ml0pfDAsYVtwZT4+Ml09YVsoUj0xNisoMHxhW2s+PjJdKXwwKT4+Ml0sYVtwZSs0Pj4yXT1hW1IrND4+Ml0sYVtwZSs4Pj4yXT1hW1IrOD4+Ml0sYVtwZSsxMj4+Ml09YVtSKzEyPj4yXSxhW0c+PjJdPWFbSGU+PjJdLGFbRys0Pj4yXT1hW0hl''@;'; + put 'put ''KzQ+PjJdLGFbRys4Pj4yXT1hW0hlKzg+PjJdLGFbRysxMj4+Ml09YVtIZSsxMj4+Ml0sQnUoT2UscGUsRykpOihhW3A+PjJdPW0sUj01NisoMHxhW2dlPj4yXSl8MCxhW3BlPj4yXT1hWyhIZT0xNisoMHxhW2s+PjJdKXwwKT4+Ml0sYVtwZSs0Pj4yXT1hW0hlKzQ+PjJdLGFbcGUrOD4+Ml09''@;'; + put 'put ''YVtIZSs4Pj4yXSxhW3BlKzEyPj4yXT1hW0hlKzEyPj4yXSxhW0c+PjJdPWFbUj4+Ml0sYVtHKzQ+PjJdPWFbUis0Pj4yXSxhW0crOD4+Ml09YVtSKzg+PjJdLGFbRysxMj4+Ml09YVtSKzEyPj4yXSxCdShiZSxwZSxHKSxIZT0xNisoMHxhW2dlPj4yXSl8MCxhW3BlPj4yXT1hWyhSPTE2Kygw''@;'; + put 'put ''fGFbTT4+Ml0pfDApPj4yXSxhW3BlKzQ+PjJdPWFbUis0Pj4yXSxhW3BlKzg+PjJdPWFbUis4Pj4yXSxhW3BlKzEyPj4yXT1hW1IrMTI+PjJdLGFbRz4+Ml09YVtIZT4+Ml0sYVtHKzQ+PjJdPWFbSGUrND4+Ml0sYVtHKzg+PjJdPWFbSGUrOD4+Ml0sYVtHKzEyPj4yXT1hW0hlKzEyPj4yXSxC''@;'; + put 'put ''dShPZSxwZSxHKSksIShtPTB8YVs5NisoMHxhW2dlPj4yXSk+PjJdKSl7bT1mKzE2fDAsYVtmPj4yXT1hW2JlPj4yXSxhW2YrND4+Ml09YVtiZSs0Pj4yXSxhW2YrOD4+Ml09YVtiZSs4Pj4yXSxhW2YrMTI+PjJdPWFbYmUrMTI+PjJdLGFbbT4+Ml09YVtiZT4+Ml0sYVttKzQ+PjJdPWFbYmUr''@;'; + put 'put ''ND4+Ml0sYVttKzg+PjJdPWFbYmUrOD4+Ml0sYVttKzEyPj4yXT1hW2JlKzEyPj4yXSxtPWYrNDh8MCxhWyhIZT1mKzMyfDApPj4yXT1hW09lPj4yXSxhW0hlKzQ+PjJdPWFbT2UrND4+Ml0sYVtIZSs4Pj4yXT1hW09lKzg+PjJdLGFbSGUrMTI+PjJdPWFbT2UrMTI+PjJdLGFbbT4+Ml09YVtP''@;'; + put 'put ''ZT4+Ml0sYVttKzQ+PjJdPWFbT2UrND4+Ml0sYVttKzg+PjJdPWFbT2UrOD4+Ml0sYVttKzEyPj4yXT1hW09lKzEyPj4yXSxtPTQ7YnJlYWt9dz0rX1ttKzI0Pj4zXSxBPStfW20rMzI+PjNdLGI9KFI9MD09KDEmYVsxMTYrKDB8YVsxNisoMHxjcihEKSk+PjJdKT4+Ml18MCkpP0E6dyxhW0xl''@;'; + put 'put ''Pj4yXT1hWyhIZT01NisoMHxhWzk2KygwfGFbZ2U+PjJdKT4+Ml0pfDApPj4yXSxhW0xlKzQ+PjJdPWFbSGUrND4+Ml0sYVtMZSs4Pj4yXT1hW0hlKzg+PjJdLGFbTGUrMTI+PjJdPWFbSGUrMTI+PjJdLGFbSz4+Ml09YVtPZT4+Ml0sYVtLKzQ+PjJdPWFbT2UrND4+Ml0sYVtLKzg+PjJdPWFb''@;'; + put 'put ''T2UrOD4+Ml0sYVtLKzEyPj4yXT1hW09lKzEyPj4yXSxhW3BlPj4yXT1hW2JlPj4yXSxhW3BlKzQ+PjJdPWFbYmUrND4+Ml0sYVtwZSs4Pj4yXT1hW2JlKzg+PjJdLGFbcGUrMTI+PjJdPWFbYmUrMTI+PjJdLGFbRz4+Ml09YVtIZT4+Ml0sYVtHKzQ+PjJdPWFbSGUrND4+Ml0sYVtHKzg+PjJd''@;'; + put 'put ''PWFbSGUrOD4+Ml0sYVtHKzEyPj4yXT1hW0hlKzEyPj4yXSxIZT0wPT0oMHxGRihLLHBlLEcpKSxBPS41KihSP3c6QSksdz0rX1tMZT4+M10sSGU/KF9bTGU+PjNdPXctQSxfWyhIZT1MZSs4fDApPj4zXT0rX1tIZT4+M10rLjUqYik6KF9bTGU+PjNdPXcrQSxfWyhIZT1MZSs4fDApPj4zXT0r''@;'; + put 'put ''X1tIZT4+M10tLjUqYiksbT1mKzE2fDAsYVtmPj4yXT1hW2JlPj4yXSxhW2YrND4+Ml09YVtiZSs0Pj4yXSxhW2YrOD4+Ml09YVtiZSs4Pj4yXSxhW2YrMTI+PjJdPWFbYmUrMTI+PjJdLGFbbT4+Ml09YVtiZT4+Ml0sYVttKzQ+PjJdPWFbYmUrND4+Ml0sYVttKzg+PjJdPWFbYmUrOD4+Ml0s''@;'; + put 'put ''YVttKzEyPj4yXT1hW2JlKzEyPj4yXSxtPWYrMzJ8MCxIZT1mKzQ4fDAsYVsoYmU9Zis2NHwwKT4+Ml09YVtMZT4+Ml0sYVtiZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbYmUrOD4+Ml09YVtMZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW0xlKzEyPj4yXSxhW0hlPj4yXT1hW0xlPj4yXSxhW0hlKzQ+PjJd''@;'; + put 'put ''PWFbTGUrND4+Ml0sYVtIZSs4Pj4yXT1hW0xlKzg+PjJdLGFbSGUrMTI+PjJdPWFbTGUrMTI+PjJdLGFbbT4+Ml09YVtMZT4+Ml0sYVttKzQ+PjJdPWFbTGUrND4+Ml0sYVttKzg+PjJdPWFbTGUrOD4+Ml0sYVttKzEyPj4yXT1hW0xlKzEyPj4yXSxtPWYrODB8MCxhWyhIZT1mKzk2fDApPj4y''@;'; + put 'put ''XT1hW09lPj4yXSxhW0hlKzQ+PjJdPWFbT2UrND4+Ml0sYVtIZSs4Pj4yXT1hW09lKzg+PjJdLGFbSGUrMTI+PjJdPWFbT2UrMTI+PjJdLGFbbT4+Ml09YVtPZT4+Ml0sYVttKzQ+PjJdPWFbT2UrND4+Ml0sYVttKzg+PjJdPWFbT2UrOD4+Ml0sYVttKzEyPj4yXT1hW09lKzEyPj4yXSxtPTd9''@;'; + put 'put ''fXdoaWxlKDApO3JldHVybiBhZT1SZSwwfG19KGwsYnQsMHxhWzQ2NzM0XSxsbyksYVtSbz4+Ml09T2UsMCE9KDB8T2UpKT82MzoxNTtlOmRve2lmKDE1PT0oMHxjdCkpe2x0PTEwPT0oMHx3KSxhW1JvPj4yXT0wLGI9MHxhWygzPT0oMHwoRD0zJmFbYnQ+PjJdKSk/YnQ6YnQrNDh8MCkrNDA+''@;'; + put 'put ''PjJdLGFbbG8+PjJdPUQ9MHxhWygyPT0oMHxEKT9idDpidCstNDh8MCkrNDA+PjJdLEc1KFZlLGwsYyxiLDAsYnQpLGFbRHI+PjJdPWFbVmU+PjJdLGFbRHIrND4+Ml09YVtWZSs0Pj4yXSxhW0RyKzg+PjJdPWFbVmUrOD4+Ml0sYVtEcisxMj4+Ml09YVtWZSsxMj4+Ml0sYVtEcisxNj4+Ml09''@;'; + put 'put ''YVtWZSsxNj4+Ml0sYVtEcisyMD4+Ml09YVtWZSsyMD4+Ml0sYVtEcisyND4+Ml09YVtWZSsyND4+Ml0sYVtEcisyOD4+Ml09YVtWZSsyOD4+Ml0sYVtMcj4+Ml09YVtWZT4+Ml0sYVtMcis0Pj4yXT1hW1ZlKzQ+PjJdLGFbTHIrOD4+Ml09YVtWZSs4Pj4yXSxhW0xyKzEyPj4yXT1hW1ZlKzEy''@;'; + put 'put ''Pj4yXSxhW0xyKzE2Pj4yXT1hW1ZlKzE2Pj4yXSxhW0xyKzIwPj4yXT1hW1ZlKzIwPj4yXSxKSShmLGJ0LDEsRHIsMHx6QyhiKSksX1sob3Q9THIrMjR8MCk+PjNdPStfW0RyKzU2KygoWnQ9KDB8YVsobnQ9RHIrNTJ8MCk+PjJdKS0xfDApPDw1KSsyND4+M10sX1soU3Q9THIrOHwwKT4+M109''@;'; + put 'put ''K19bRHIrNTYrKFp0PDw1KSs4Pj4zXSxrPStfWzI0KyhadD0wfGFbYisxNj4+Ml0pPj4zXS0rX1soMHxhWzE5NisoMHxhWyhrdD1sKzE2fDApPj4yXSk+PjJdKSsoYVtadCsyMzI+PjJdPDw2KSsxNj4+M10sYVtmcj4+Ml09YVtMcj4+Ml0sYVtmcis0Pj4yXT1hW0xyKzQ+PjJdLGFbZnIrOD4+''@;'; + put 'put ''Ml09YVtMcis4Pj4yXSxhW2ZyKzEyPj4yXT1hW0xyKzEyPj4yXSxhW2ZyKzE2Pj4yXT1hW0xyKzE2Pj4yXSxhW2ZyKzIwPj4yXT1hW0xyKzIwPj4yXSxhW2ZyKzI0Pj4yXT1hW0xyKzI0Pj4yXSxhW2ZyKzI4Pj4yXT1hW0xyKzI4Pj4yXSxYQShxZSxmciwxLGspLGFbTHI+PjJdPWFbcWU+PjJd''@;'; + put 'put ''LGFbTHIrND4+Ml09YVtxZSs0Pj4yXSxhW0xyKzg+PjJdPWFbcWUrOD4+Ml0sYVtMcisxMj4+Ml09YVtxZSsxMj4+Ml0sYVtMcisxNj4+Ml09YVtxZSsxNj4+Ml0sYVtMcisyMD4+Ml09YVtxZSsyMD4+Ml0sYVtMcisyND4+Ml09YVtxZSsyND4+Ml0sYVtMcisyOD4+Ml09YVtxZSsyOD4+Ml0s''@;'; + put 'put ''K19bTHI+PjNdPCtfWyhxZT1McisxNnwwKT4+M10mJitfW1N0Pj4zXTwrX1tvdD4+M10mJihhW250Pj4yXT0xKyhadD0wfGFbbnQ+PjJdKSxhWyhadD1Ecis1NisoWnQ8PDUpfDApPj4yXT1hW0xyPj4yXSxhW1p0KzQ+PjJdPWFbTHIrND4+Ml0sYVtadCs4Pj4yXT1hW0xyKzg+PjJdLGFbWnQr''@;'; + put 'put ''MTI+PjJdPWFbTHIrMTI+PjJdLGFbWnQrMTY+PjJdPWFbTHIrMTY+PjJdLGFbWnQrMjA+PjJdPWFbTHIrMjA+PjJdLGFbWnQrMjQ+PjJdPWFbTHIrMjQ+PjJdLGFbWnQrMjg+PjJdPWFbTHIrMjg+PjJdKSxMZT1sKzYwfDAsV2U9SnIrNTJ8MCxSZT1mKzU2fDAsSGU9Zis2OXwwLHc9ZisxNnww''@;'; + put 'put ''LFZlPWYrMjl8MCxadD1idCxHPTAsSz0tMTt0OmZvcig7Oyl7Zm9yKHBlPWIsZ2U9MCxiPTAsYmU9WnQ7Oyl7aWYoT2U9RCwxIT0oMHxmZVsxNTYrKDB8YVsoUj1EKSsxNj4+Ml0pPj4wXSl8fCgwfF9vWzYzJmFbNDMyNV1dKFIpKTw8MjQ+PjI0KWJyZWFrIHQ7aWYoRD0xfGdlLHhpPTE1Mzcy''@;'; + put 'put ''MCsoZ2U8PDUpfDAsdEkoYW4sYyxsLDB8YVsyMzIrKDB8YVtwZSsxNj4+Ml0pPj4yXSksYVt4aT4+Ml09YVthbj4+Ml0sYVt4aSs0Pj4yXT1hW2FuKzQ+PjJdLGFbeGkrOD4+Ml09YVthbis4Pj4yXSxhW3hpKzEyPj4yXT1hW2FuKzEyPj4yXSxhW3hpKzE2Pj4yXT1hW2FuKzE2Pj4yXSxhW3hp''@;'; + put 'put ''KzIwPj4yXT1hW2FuKzIwPj4yXSxhW3hpKzI0Pj4yXT1hW2FuKzI0Pj4yXSxhW3hpKzI4Pj4yXT1hW2FuKzI4Pj4yXSxifHwoRz0oYj0oMHwoRz0wfGgwZShSKSkpPCgzKyhmZVsxMTMrKDB8YVsxNisoMHxhW0xlPj4yXSk+PjJdKT4+MF08PDEmMikmMjU1fDApKT9HOkcrLTJ8MCxLPWI/Szox''@;'; + put 'put ''LGI9MSYoMV5iKSksISgwPT0oMHxiKXwoMHxLKT4wKSlicmVhazt4aT0xNTM3MjArKEQ8PDUpfDAsRzUoU24sbCxjLFIsYmUsMHxhW2FbMTgwKygwfGFbUisxNj4+Ml0pPj4yXT4+Ml0pLGFbeGk+PjJdPWFbU24+PjJdLGFbeGkrND4+Ml09YVtTbis0Pj4yXSxhW3hpKzg+PjJdPWFbU24rOD4+''@;'; + put 'put ''Ml0sYVt4aSsxMj4+Ml09YVtTbisxMj4+Ml0sYVt4aSsxNj4+Ml09YVtTbisxNj4+Ml0sYVt4aSsyMD4+Ml09YVtTbisyMD4+Ml0sYVt4aSsyND4+Ml09YVtTbisyND4+Ml0sYVt4aSsyOD4+Ml09YVtTbisyOD4+Ml0scGU9MHxhWygzPT0oMHwoRD0zJmFbKHhpPTB8YVthWzE4MCsoMHxhW09l''@;'; + put 'put ''KzE2Pj4yXSk+PjJdPj4yXSk+PjJdKSk/eGk6eGkrNDh8MCkrNDA+PjJdLGFbbG8+PjJdPUQ9MHxhWygyPT0oMHxEKT94aTp4aSstNDh8MCkrNDA+PjJdLGdlPWdlKzJ8MCxLPUsrLTF8MCxiZT14aX1pZihHNShIbixsLGMsUixiZSwwfGFbYVsxODArKDB8YVtSKzE2Pj4yXSk+PjJdPj4yXSks''@;'; + put 'put ''YVtKcj4+Ml09YVtIbj4+Ml0sYVtKcis0Pj4yXT1hW0huKzQ+PjJdLGFbSnIrOD4+Ml09YVtIbis4Pj4yXSxhW0pyKzEyPj4yXT1hW0huKzEyPj4yXSxhW0pyKzE2Pj4yXT1hW0huKzE2Pj4yXSxhW0pyKzIwPj4yXT1hW0huKzIwPj4yXSxhW0pyKzI0Pj4yXT1hW0huKzI0Pj4yXSxhW0pyKzI4''@;'; + put 'put ''Pj4yXT1hW0huKzI4Pj4yXSxYSShmLGJlLDEsSnIsMHx6QygwfGFbKDI9PSgzJmFbYmU+PjJdfDApP2JlOmJlKy00OHwwKSs0MD4+Ml0pKSxrPStfWygwfGFbMTk2KygwfGFba3Q+PjJdKT4+Ml0pKyhhWzIzMisoZ2U9MHxhW09lKzE2Pj4yXSk+PjJdPDw2KSsyND4+M10rICtfW2dlKzI0Pj4z''@;'; + put 'put ''XSxhW2ZyPj4yXT1hWyh4aT1Kcis1NisoKDB8YVtXZT4+Ml0pLTE8PDUpfDApPj4yXSxhW2ZyKzQ+PjJdPWFbeGkrND4+Ml0sYVtmcis4Pj4yXT1hW3hpKzg+PjJdLGFbZnIrMTI+PjJdPWFbeGkrMTI+PjJdLGFbZnIrMTY+PjJdPWFbeGkrMTY+PjJdLGFbZnIrMjA+PjJdPWFbeGkrMjA+PjJd''@;'; + put 'put ''LGFbZnIrMjQ+PjJdPWFbeGkrMjQ+PjJdLGFbZnIrMjg+PjJdPWFbeGkrMjg+PjJdLFhBKExyLGZyLDQsayksK19bTHI+PjNdPCtfW3FlPj4zXSYmK19bU3Q+PjNdPCtfW290Pj4zXSYmKGFbV2U+PjJdPTErKHhpPTB8YVtXZT4+Ml0pLGFbKHhpPUpyKzU2Kyh4aTw8NSl8MCk+PjJdPWFbTHI+''@;'; + put 'put ''PjJdLGFbeGkrND4+Ml09YVtMcis0Pj4yXSxhW3hpKzg+PjJdPWFbTHIrOD4+Ml0sYVt4aSsxMj4+Ml09YVtMcisxMj4+Ml0sYVt4aSsxNj4+Ml09YVtMcisxNj4+Ml0sYVt4aSsyMD4+Ml09YVtMcisyMD4+Ml0sYVt4aSsyND4+Ml09YVtMcisyND4+Ml0sYVt4aSsyOD4+Ml09YVtMcisyOD4+''@;'; + put 'put ''Ml0pLF9bUmU+PjNdPTEuNTcwNzk2MzI2Nzk0ODk2NixmZVtIZT4+MF09MSx2WShmLFp0LGJlLERyLEpyLEQpLGx0PyhiPTB8YnkoZixWaSksRD0wfGFbVmk+PjJdLGN0PTMzKTooYj0wfGRrKGYsVmkpLEV0JigwfChEPTB8YVtWaT4+Ml0pKT40PyhhWyh4aT1iKzE2fDApPj4yXT1hW2I+PjJd''@;'; + put 'put ''LGFbeGkrND4+Ml09YVtiKzQ+PjJdLGFbeGkrOD4+Ml09YVtiKzg+PjJdLGFbeGkrMTI+PjJdPWFbYisxMj4+Ml0sYVsoeGk9YiszMnwwKT4+Ml09YVsoRD1iKyhEKy0xPDw0KXwwKT4+Ml0sYVt4aSs0Pj4yXT1hW0QrND4+Ml0sYVt4aSs4Pj4yXT1hW0QrOD4+Ml0sYVt4aSsxMj4+Ml09YVtE''@;'; + put 'put ''KzEyPj4yXSxuMShiKzQ4fDAsMHxELDE2KSxhW1ZpPj4yXT00LEQ9NCk6Y3Q9MzMpLDMzPT0oMHxjdCkmJihjdD0wLCFEKSlicmVhayBlO2ZvcigoMHwoUj0oYmU9MHxhW1JvPj4yXSkrRHwwKSk+KDB8YVs0NjczNl0pPyhhWzQ2NzM2XT1SPDwxLGdlPTB8VjAoMHxhWzQ2NzM0XSxSPDw1KSxh''@;'; + put 'put ''WzQ2NzM0XT1nZSxEPTB8YVtWaT4+Ml0pOmdlPTB8YVs0NjczNF0scGU9MCxSPWJlOyEoKDB8cGUpPj0oMHxEKSk7KWFbKHhpPWdlKyhSPDw0KXwwKT4+Ml09YVsoYmU9YisocGU8PDQpfDApPj4yXSxhW3hpKzQ+PjJdPWFbYmUrND4+Ml0sYVt4aSs4Pj4yXT1hW2JlKzg+PjJdLGFbeGkrMTI+''@;'; + put 'put ''PjJdPWFbYmUrMTI+PjJdLHBlPXBlKzF8MCxSPVIrMXwwO2FbUm8+PjJdPVIsRD0wfGpsKDB8YVthWzE4MCsoMHxhW09lKzE2Pj4yXSk+PjJdPj4yXSxHLGdlLFJvKSxBWShadCxmKSxiPTB8YVsoMz09KDB8KFI9MyZhW0Q+PjJdKSk/RDpEKzQ4fDApKzQwPj4yXSxhW2xvPj4yXT1SPTB8YVso''@;'; + put 'put ''Mj09KDB8Uik/RDpEKy00OHwwKSs0MD4+Ml0sRzUodXIsbCxjLGIsMHxhW2FbMTcyKygwfGFbKFp0PWIrMTZ8MCk+PjJdKT4+Ml0+PjJdLEQpLGFbRHI+PjJdPWFbdXI+PjJdLGFbRHIrND4+Ml09YVt1cis0Pj4yXSxhW0RyKzg+PjJdPWFbdXIrOD4+Ml0sYVtEcisxMj4+Ml09YVt1cisxMj4+''@;'; + put 'put ''Ml0sYVtEcisxNj4+Ml09YVt1cisxNj4+Ml0sYVtEcisyMD4+Ml09YVt1cisyMD4+Ml0sYVtEcisyND4+Ml09YVt1cisyND4+Ml0sYVtEcisyOD4+Ml09YVt1cisyOD4+Ml0sSkkoZixELDEsRHIsMHx6QyhiKSksaz0rX1syNCsoWnQ9MHxhW1p0Pj4yXSk+PjNdLStfWygwfGFbMTk2KygwfGFb''@;'; + put 'put ''a3Q+PjJdKT4+Ml0pKyhhW1p0KzIzMj4+Ml08PDYpKzE2Pj4zXSxhW2ZyPj4yXT1hWyh4aT1Ecis1NisoKDB8YVtudD4+Ml0pLTE8PDUpfDApPj4yXSxhW2ZyKzQ+PjJdPWFbeGkrND4+Ml0sYVtmcis4Pj4yXT1hW3hpKzg+PjJdLGFbZnIrMTI+PjJdPWFbeGkrMTI+PjJdLGFbZnIrMTY+PjJd''@;'; + put 'put ''PWFbeGkrMTY+PjJdLGFbZnIrMjA+PjJdPWFbeGkrMjA+PjJdLGFbZnIrMjQ+PjJdPWFbeGkrMjQ+PjJdLGFbZnIrMjg+PjJdPWFbeGkrMjg+PjJdLFhBKExyLGZyLDEsayksK19bTHI+PjNdPCtfW3FlPj4zXSYmK19bU3Q+PjNdPCtfW290Pj4zXSYmKGFbbnQ+PjJdPTErKHhpPTB8YVtudD4+''@;'; + put 'put ''Ml0pLGFbKHhpPURyKzU2Kyh4aTw8NSl8MCk+PjJdPWFbTHI+PjJdLGFbeGkrND4+Ml09YVtMcis0Pj4yXSxhW3hpKzg+PjJdPWFbTHIrOD4+Ml0sYVt4aSsxMj4+Ml09YVtMcisxMj4+Ml0sYVt4aSsxNj4+Ml09YVtMcisxNj4+Ml0sYVt4aSsyMD4+Ml09YVtMcisyMD4+Ml0sYVt4aSsyND4+''@;'; + put 'put ''Ml09YVtMcisyND4+Ml0sYVt4aSsyOD4+Ml09YVtMcisyOD4+Ml0pLF9bdz4+M109LTEuNTcwNzk2MzI2Nzk0ODk2NixmZVtWZT4+MF09MSxadD1ELEQ9Un1pZihiPTF8Z2UsSz0xNTM3MjArKGdlPDw1KXwwLHRJKEhyLGMsbCwwfGFbMjMyKygwfGFbcGUrMTY+PjJdKT4+Ml0pLGFbSz4+Ml09''@;'; + put 'put ''YVtIcj4+Ml0sYVtLKzQ+PjJdPWFbSHIrND4+Ml0sYVtLKzg+PjJdPWFbSHIrOD4+Ml0sYVtLKzEyPj4yXT1hW0hyKzEyPj4yXSxhW0srMTY+PjJdPWFbSHIrMTY+PjJdLGFbSysyMD4+Ml09YVtIcisyMD4+Ml0sYVtLKzI0Pj4yXT1hW0hyKzI0Pj4yXSxhW0srMjg+PjJdPWFbSHIrMjg+PjJd''@;'; + put 'put ''LEc1KEVyLGwsYyxSLGJlLDApLGFbSnI+PjJdPWFbRXI+PjJdLGFbSnIrND4+Ml09YVtFcis0Pj4yXSxhW0pyKzg+PjJdPWFbRXIrOD4+Ml0sYVtKcisxMj4+Ml09YVtFcisxMj4+Ml0sYVtKcisxNj4+Ml09YVtFcisxNj4+Ml0sYVtKcisyMD4+Ml09YVtFcisyMD4+Ml0sYVtKcisyND4+Ml09''@;'; + put 'put ''YVtFcisyND4+Ml0sYVtKcisyOD4+Ml09YVtFcisyOD4+Ml0sYVtMcj4+Ml09YVtFcj4+Ml0sYVtMcis0Pj4yXT1hW0VyKzQ+PjJdLGFbTHIrOD4+Ml09YVtFcis4Pj4yXSxhW0xyKzEyPj4yXT1hW0VyKzEyPj4yXSxhW0xyKzE2Pj4yXT1hW0VyKzE2Pj4yXSxhW0xyKzIwPj4yXT1hW0VyKzIw''@;'; + put 'put ''Pj4yXSxhW0xyKzI0Pj4yXT1hW0VyKzI0Pj4yXSxhW0xyKzI4Pj4yXT1hW0VyKzI4Pj4yXSxwZT1iZSstNDh8MCxYSShmLChLPTAhPSgwfE0pKT9PaTpiZSwxLEpyLDB8ekMoMHxhWygyPT0oMyZhW2JlPj4yXXwwKT9iZTpwZSkrNDA+PjJdKSksX1tvdD4+M109K19bSnIrNTYrKCh4aT0oMHxh''@;'; + put 'put ''W1dlPj4yXSktMXwwKTw8NSkrMjQ+PjNdLF9bU3Q+PjNdPStfW0pyKzU2Kyh4aTw8NSkrOD4+M10saz0rX1soMHxhWzE5NisoMHxhW2t0Pj4yXSk+PjJdKSsoYVsyMzIrKHhpPTB8YVtPZSsxNj4+Ml0pPj4yXTw8NikrMjQ+PjNdKyArX1t4aSsyND4+M10sYVtmcj4+Ml09YVtMcj4+Ml0sYVtm''@;'; + put 'put ''cis0Pj4yXT1hW0xyKzQ+PjJdLGFbZnIrOD4+Ml09YVtMcis4Pj4yXSxhW2ZyKzEyPj4yXT1hW0xyKzEyPj4yXSxhW2ZyKzE2Pj4yXT1hW0xyKzE2Pj4yXSxhW2ZyKzIwPj4yXT1hW0xyKzIwPj4yXSxhW2ZyKzI0Pj4yXT1hW0xyKzI0Pj4yXSxhW2ZyKzI4Pj4yXT1hW0xyKzI4Pj4yXSxYQShs''@;'; + put 'put ''MCxmciw0LGspLGFbTHI+PjJdPWFbbDA+PjJdLGFbTHIrND4+Ml09YVtsMCs0Pj4yXSxhW0xyKzg+PjJdPWFbbDArOD4+Ml0sYVtMcisxMj4+Ml09YVtsMCsxMj4+Ml0sYVtMcisxNj4+Ml09YVtsMCsxNj4+Ml0sYVtMcisyMD4+Ml09YVtsMCsyMD4+Ml0sYVtMcisyND4+Ml09YVtsMCsyND4+''@;'; + put 'put ''Ml0sYVtMcisyOD4+Ml09YVtsMCsyOD4+Ml0sK19bTHI+PjNdPCtfW3FlPj4zXSYmK19bU3Q+PjNdPCtfW290Pj4zXSYmKGFbV2U+PjJdPTErKHhpPTB8YVtXZT4+Ml0pLGFbKHhpPUpyKzU2Kyh4aTw8NSl8MCk+PjJdPWFbTHI+PjJdLGFbeGkrND4+Ml09YVtMcis0Pj4yXSxhW3hpKzg+PjJd''@;'; + put 'put ''PWFbTHIrOD4+Ml0sYVt4aSsxMj4+Ml09YVtMcisxMj4+Ml0sYVt4aSsxNj4+Ml09YVtMcisxNj4+Ml0sYVt4aSsyMD4+Ml09YVtMcisyMD4+Ml0sYVt4aSsyND4+Ml09YVtMcisyND4+Ml0sYVt4aSsyOD4+Ml09YVtMcisyOD4+Ml0pLHZZKGYsWnQsYmUsRHIsSnIsYiksRz1sdD8wfGJ5KGYs''@;'; + put 'put ''VmkpOjB8ZGsoZixWaSksRXQmKDB8KGI9MHxhW1ZpPj4yXSkpPjQpYVsoeGk9RysxNnwwKT4+Ml09YVtHPj4yXSxhW3hpKzQ+PjJdPWFbRys0Pj4yXSxhW3hpKzg+PjJdPWFbRys4Pj4yXSxhW3hpKzEyPj4yXT1hW0crMTI+PjJdLGFbKHhpPUcrMzJ8MCk+PjJdPWFbKGI9RysoYistMTw8NCl8''@;'; + put 'put ''MCk+PjJdLGFbeGkrND4+Ml09YVtiKzQ+PjJdLGFbeGkrOD4+Ml09YVtiKzg+PjJdLGFbeGkrMTI+PjJdPWFbYisxMj4+Ml0sbjEoRys0OHwwLDB8YiwxNiksYVtWaT4+Ml09NCxiPTQ7ZWxzZSBpZighYilicmVhaztmb3IoKDB8KE09KEQ9MHxhW1JvPj4yXSkrYnwwKSk+KDB8YVs0NjczNl0p''@;'; + put 'put ''PyhhWzQ2NzM2XT1NPDwxLFI9MHxWMCgwfGFbNDY3MzRdLE08PDUpLGFbNDY3MzRdPVIsYj0wfGFbVmk+PjJdKTpSPTB8YVs0NjczNF0sTT0wOyEoKDB8TSk+PSgwfGIpKTspYVsoeGk9UisoRDw8NCl8MCk+PjJdPWFbKFZpPUcrKE08PDQpfDApPj4yXSxhW3hpKzQ+PjJdPWFbVmkrND4+Ml0s''@;'; + put 'put ''YVt4aSs4Pj4yXT1hW1ZpKzg+PjJdLGFbeGkrMTI+PjJdPWFbVmkrMTI+PjJdLE09TSsxfDAsRD1EKzF8MDthW1JvPj4yXT1ELEFZKFp0LGYpLGFbbG8+PjJdPWFbKGI9Sz8yPT0oMyZhW09pPj4yXXwwKT9PaTpPaSstNDh8MDoyPT0oMyZhW2JlPj4yXXwwKT9iZTpwZSkrNDA+PjJdLE9lPUQs''@;'; + put 'put ''Y3Q9NjN9fXdoaWxlKDApO2U6ZG97aWYoNjM9PSgwfGN0KSl7aWYoMT09KDB8QSkpe0F1KGJ0LDB8YVtsbz4+Ml0sMHxhWzQ2NzM0XSxPZSwxNzI5Nik7YnJlYWt9Zm9yKGJlPU9lKy0xfDAsaz0rKDB8KDB8QXIoMHxhWyhnZT1jKzEyfDApPj4yXSxBKy0xfDApKS8yKSxNPTB8YVs0NjczNF0s''@;'; + put 'put ''Yj0xOyEoKDB8Yik+PSgwfGJlKSk7KV9bKHhpPU0rKGI8PDQpfDApPj4zXT0rX1t4aT4+M10tayxiPWIrMXwwO2ZvcigoMHwoYj0wfGFbNDY3MzZdKSk+KDB8YVs0NjczN10pPyhhWzQ2NzM3XT1iLEQ9MHxWMCgwfGFbNDY3MzVdLGI8PDQpLGFbNDY3MzVdPUQsTT0wfGFbNDY3MzRdKTpEPTB8''@;'; + put 'put ''YVs0NjczNV0sYj0wOyEoKDB8Yik+PSgwfE9lKSk7KWFbKHhpPUQrKGI8PDQpfDApPj4yXT1hWyhjPU0rKGI8PDQpfDApPj4yXSxhW3hpKzQ+PjJdPWFbYys0Pj4yXSxhW3hpKzg+PjJdPWFbYys4Pj4yXSxhW3hpKzEyPj4yXT1hW2MrMTI+PjJdLGI9YisxfDA7Zm9yKEF1KGJ0LDB8YVtsbz4+''@;'; + put 'put ''Ml0sRCxPZSwxNzI5NiksSz1UYSs0OHwwLHBlPVRhKy00OHwwLEc9MTs7KXtpZigoMHxHKT49KDB8QSkpYnJlYWsgZTtpZigzMiZhWzE2NCsoYj0wfGFbKFI9MTYrKEQ9MHxhW3ArKEcrbTw8Mik+PjJdKXwwKT4+Ml0pPj4yXSl7Z28oMHwoTT0wfGFbamE+PjJdKSwwfGIsMTc2KSxSZT1ELEhl''@;'; + put 'put ''PShMZT1UYSkrNDh8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpO2FbamE+PjJdPU0sYVsoMz09KDB8KExlPTMmYVtUYT4+Ml0pKT9UYTpLKSs0MD4+Ml09YVsoMj09KDMmYVtEPj4yXXwwKT9EOkQrLTQ4fDApKzQwPj4yXSxh''@;'; + put 'put ''WygyPT0oMHxMZSk/VGE6cGUpKzQwPj4yXT1hWygzPT0oMyZhW0Q+PjJdfDApP0Q6RCs0OHwwKSs0MD4+Ml0sUmU9NTYrKDB8YVtSPj4yXSl8MCxIZT00MCsoTGU9TSsxNnwwKXwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7''@;'; + put 'put ''UmU9MTYrKDB8YVtSPj4yXSl8MCxIZT00MCsoTGU9NTYrKGI9MHxhW2phPj4yXSl8MCl8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpO2ZlW2IrMTEyPj4wXT0xLGFbYisxMTY+PjJdPUQsRD1UYX1mb3IoUj0wfGFbNDY3MzRd''@;'; + put 'put ''LGI9MTshKCgwfGIpPj0oMHxiZSkpOylfWyh4aT1SKyhiPDw0KXwwKT4+M109K19beGk+PjNdKyArKDB8YVtnZT4+Ml0pLGI9YisxfDA7Zm9yKE09MHxhWzQ2NzM1XSxiPTA7ISgoMHxiKT49KDB8T2UpKTspYVsoeGk9TSsoYjw8NCl8MCk+PjJdPWFbKGxvPVIrKGI8PDQpfDApPj4yXSxhW3hp''@;'; + put 'put ''KzQ+PjJdPWFbbG8rND4+Ml0sYVt4aSs4Pj4yXT1hW2xvKzg+PjJdLGFbeGkrMTI+PjJdPWFbbG8rMTI+PjJdLGI9YisxfDA7QXUoRCwwfGFbKDI9PSgzJmFbRD4+Ml18MCk/RDpEKy00OHwwKSs0MD4+Ml0sTSxPZSwxNzI5NiksRz1HKzF8MH19fXdoaWxlKDApO2FlPWdhfWZ1bmN0aW9uIG1Z''@;'; + put 'put ''KGwpe3ZhciBjPTAsZj0wLHA9MDtmb3IoYz0wfER0KGx8PTApO2M7KXtmb3IoZj0wfHcwKGwsYyk7ZjspKDB8X29bNjMmYVs0MzI0XV0oZikpPDwyND4+MjQmJjB8KHA9MHxhWzgrKDB8YVtmKzE2Pj4yXSk+PjJdKSYmdTBlKHApLGY9MHxTMChsLGYpO2M9MHx6dChsLGMpfX1mdW5jdGlvbiB1''@;'; + put 'put ''MGUobCl7dmFyIG0sQSxjPTAsZj0wLHA9MDtmb3IoYz1BPTB8UW4oNDgqKG09MHxhWzQrKGx8PTApPj4yXSl8MCksZj0wLHA9KDB8YVtsPj4yXSkrKDQ4KihtKy0xfDApfDApfDA7Oyl7aWYoKDB8Zik+PSgwfG0pKXtjPTA7YnJlYWt9YzBlKHAsYyksYz1jKzQ4fDAsZj1mKzF8MCxwPXArLTQ4''@;'; + put 'put ''fDB9Zm9yKDtmPTB8YVtsPj4yXSwhKCgwfGMpPj0oMHxtKSk7KUZ0KDB8YVtmKyg0OCpjfDApPj4yXSksYz1jKzF8MDtGdChmKSxhW2w+PjJdPUF9ZnVuY3Rpb24gYzBlKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3IoZj13PTB8UW4oKEE9MHxhWzQrKGx8PTApPj4yXSk8''@;'; + put 'put ''PDQpLHA9MCxtPSgwfGFbbD4+Ml0pKyhBKy0xPDw0KXwwOyEoKDB8cCk+PSgwfEEpKTspYVtmPj4yXT1hW20+PjJdLGFbZis0Pj4yXT1hW20rND4+Ml0sYVtmKzg+PjJdPWFbbSs4Pj4yXSxhW2YrMTI+PjJdPWFbbSsxMj4+Ml0sZj1mKzE2fDAscD1wKzF8MCxtPW0rLTE2fDA7YVtjPj4yXT13''@;'; + put 'put ''LGFbYys0Pj4yXT1BLGFbYys4Pj4yXT1hW2wrMTI+PjJdLGFbYysxMj4+Ml09YVtsKzg+PjJdLGFbKHc9YysxNnwwKT4+Ml09YVsoQT1sKzMyfDApPj4yXSxhW3crND4+Ml09YVtBKzQ+PjJdLGFbdys4Pj4yXT1hW0ErOD4+Ml0sYVt3KzEyPj4yXT1hW0ErMTI+PjJdLGFbKHc9YyszMnwwKT4+''@;'; + put 'put ''Ml09YVsoQT1sKzE2fDApPj4yXSxhW3crND4+Ml09YVtBKzQ+PjJdLGFbdys4Pj4yXT1hW0ErOD4+Ml0sYVt3KzEyPj4yXT1hW0ErMTI+PjJdfWZ1bmN0aW9uIEc1KGwsYyxmLHAsbSxBKXtsfD0wLGZ8PTA7dmFyIHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTA7aWYoTT0odz0oRz0r''@;'; + put 'put ''X1sxNisoSz0wfGFbMTYrKHB8PTApPj4yXSk+PjNdKS0rX1tLKzg4Pj4zXSktNCxrPTB8QkYoY3w9MCxwLG18PTAsQXw9MCwtMSkpe2I9MHxQRihjLHAsayk7ZG97aWYoIWIpe2lmKHc9K19bMjQwKyhEPTB8YVtrKzE2Pj4yXSk+PjNdKyArX1tEKzE2Pj4zXSwwfGZlW0QrMTU2Pj4wXSl7dys9''@;'; + put 'put ''KygwfGFbZis4Pj4yXSk7YnJlYWt9dz0uNSorKDB8YVsyNDgrKDB8YVtjKzE2Pj4yXSk+PjJdKSt3O2JyZWFrfXc9K19bMzIrKDB8YVtiKzE2Pj4yXSk+PjNdKyArKDB8YVtmKzg+PjJdKX13aGlsZSgwKTtiPX5+KChSPXc8TT93Ok0pKyhSPj0wPy41Oi0uNSkpfWVsc2UgYj0oMHwoYj0wfGFb''@;'; + put 'put ''Zj4+Ml0pKT4oMHwoRD1+fih3KyhNPj0wPy0zLjU6LTQuNSkpKSk/RDpiO2lmKFI9KygwfGIpLE09KEQ9MT09KDB8ZmVbSysxNTY+PjBdKSkmJjAhPSgwfGFbSysxMDQ+PjJdKT9HKzEwOkcrNCsgK19bSys5Nj4+M10saz0wfEJGKGMscCxtLEEsMSkpe2I9MHxQRihjLHAsayk7ZG97aWYoIWIp''@;'; + put 'put ''e2lmKHc9K19bMTYrKHA9MHxhW2srMTY+PjJdKT4+M10tK19bcCs4OD4+M10sMHxmZVtwKzE1Nj4+MF0pe3ctPSsoMHxhW2YrOD4+Ml0pO2JyZWFrfXctPS41KisoMHxhWzI0OCsoMHxhW2MrMTY+PjJdKT4+Ml0pO2JyZWFrfXc9K19bMTYrKDB8YVtiKzE2Pj4yXSk+PjNdLSsoMHxhW2YrOD4+''@;'; + put 'put ''Ml0pfXdoaWxlKDApO2I9fn4oKE09dz5NP3c6TSkrKE0+PTA/LjU6LS41KSl9ZWxzZSBiPSgwfChiPTB8YVtmKzQ+PjJdKSk8KDB8KHA9fn4oTSsoTT49MD8uNTotLjUpKSkpP3A6Yjt3PSsoMHxiKSxEJiYwIT0oMHxhW0srMTA0Pj4yXSkmJih3LT0rX1tLKzk2Pj4zXSk8UiYmKHc9RyksTT0o''@;'; + put 'put ''Rz0rX1tLKzI0Pj4zXSktK19bKGM9MHxhWzE5NisoMHxhW2MrMTY+PjJdKT4+Ml0pKygoSz0wfGFbSysyMzI+PjJdKTw8NikrMTY+PjNdLEc9K19bYysoSzw8NikrMjQ+PjNdK0csX1tsPj4zXT1SLF9bbCs4Pj4zXT1NLF9bbCsxNj4+M109dyxfW2wrMjQ+PjNdPUd9ZnVuY3Rpb24gekMobCl7''@;'; + put 'put ''cmV0dXJuIDB8KDE9PSgwfGZlWzE1NisobD0wfGFbMTYrKGx8PTApPj4yXSk+PjBdKT8oMHxhW2wrMTc2Pj4yXSk+MT8xOigwfGFbbCsxODQ+PjJdKT4xJjE6MCl9ZnVuY3Rpb24gWEEobCxjLGYscCl7dmFyIG0sQTtzd2l0Y2gobHw9MCxjfD0wLHA9K3AsQT1hZSxhZT1hZSszMnwwLG09QSww''@;'; + put 'put ''fChmfD0wKSl7Y2FzZSAxOlJGKG0sK19bYz4+M10scCwrX1tjKzE2Pj4zXSwrX1tjKzg+PjNdKTticmVhaztjYXNlIDQ6UkYobSwrX1tjPj4zXSwrX1tjKzI0Pj4zXSwrX1tjKzE2Pj4zXSxwKX1hW2w+PjJdPWFbbT4+Ml0sYVtsKzQ+PjJdPWFbbSs0Pj4yXSxhW2wrOD4+Ml09YVttKzg+PjJd''@;'; + put 'put ''LGFbbCsxMj4+Ml09YVttKzEyPj4yXSxhW2wrMTY+PjJdPWFbbSsxNj4+Ml0sYVtsKzIwPj4yXT1hW20rMjA+PjJdLGFbbCsyND4+Ml09YVttKzI0Pj4yXSxhW2wrMjg+PjJdPWFbbSsyOD4+Ml0sYWU9QX1mdW5jdGlvbiB0SShsLGMsZixwKXtsfD0wLGZ8PTA7dmFyIGssRCxSLG09MCxBPTAs''@;'; + put 'put ''dz0wLGI9MCxNPTAsRz0wO2s9KE09MHxhWzE2KyhjfD0wKT4+Ml0pKygocHw9MCk8PDUpfDAsQT0rX1soRD1NKyhwPDw1KSs4fDApPj4zXSxSPU0rKHA8PDUpKzE2fDAsdz0rX1soTT1NKyhwPDw1KSsyNHwwKT4+M10sKGI9K19baz4+M10pPT0obT0rX1tSPj4zXSkmJihBPStfWyhmPTB8YVsx''@;'; + put 'put ''OTYrKDB8YVtmKzE2Pj4yXSk+PjJdKSsoKEc9cCsxfDApPDw2KSsyND4+M10rICtfWzI0KygwfGFbMTYrKDB8YVthW2YrKEc8PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M10sbT0rKDB8YVtjKzQ+PjJdKSx3PStfWzI0KygwfGFbMTYrKDB8YVthW2YrKHA8PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M10t''@;'; + put 'put ''K19bZisocDw8NikrMTY+PjNdLF9baz4+M109Yj0rKDB8YVtjPj4yXSksX1tEPj4zXT1BLF9bUj4+M109bSxfW00+PjNdPXcpLF9bbD4+M109YixfW2wrOD4+M109QSxfW2wrMTY+PjNdPW0sX1tsKzI0Pj4zXT13fWZ1bmN0aW9uIGgwZShsKXt2YXIgZixjPTA7Zm9yKGY9MTYrKGw9MHxhWzE2''@;'; + put 'put ''KyhsfD0wKT4+Ml0pfDAsYz0wOzE9PSgwfGZlWzE1NisobD0wfGFbMTYrKDB8YVsoMj09KDMmYVsobD0wfGFbYVtsKzE4MD4+Ml0+PjJdKT4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjBdKSYmMT09KDB8YVtsKzE4ND4+Ml0pJiYxPT0oMHxhW2wrMTc2Pj4yXSkmJitfW2wrMTY+''@;'; + put 'put ''PjNdPT0rX1tmPj4zXTspYz1jKzF8MDtyZXR1cm4gMHxjfWZ1bmN0aW9uIHZZKGwsYyxmLHAsbSxBKXtsfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTA7dmFyIGssTSx3PTAsYj0wO009YWUsYWU9YWUrMzJ8MCxrPU0sdz0wfHlZKGN8PTAsLTEpLGM9MHx5WShjLDEpLDAhPSgwfHcpJiYhKDB8VDco''@;'; + put 'put ''dykpfHwoYj0zKTtkb3tpZigzPT0oMHxiKSl7aWYoMHxjJiYwPT0oMHxUNyhjKSl8fCh3PTB8d1koZiwtMSksYz0wfHdZKGYsMSksMHx3JiYwPT0oMHxUNyh3KSkpfHwwfGMmJjA9PSgwfFQ3KGMpKSlicmVhaztmb3Iodz1wKzUyfDAsYz0wOyEoKDB8Yyk+PSgwfGFbdz4+Ml0pKTspYVtrPj4y''@;'; + put 'put ''XT1hWyhmPXArNTYrKGM8PDUpfDApPj4yXSxhW2srND4+Ml09YVtmKzQ+PjJdLGFbays4Pj4yXT1hW2YrOD4+Ml0sYVtrKzEyPj4yXT1hW2YrMTI+PjJdLGFbaysxNj4+Ml09YVtmKzE2Pj4yXSxhW2srMjA+PjJdPWFbZisyMD4+Ml0sYVtrKzI0Pj4yXT1hW2YrMjQ+PjJdLGFbaysyOD4+Ml09''@;'; + put 'put ''YVtmKzI4Pj4yXSxYMyhsLGspLGM9YysxfDA7Zm9yKHc9MHxhW2wrODA+PjJdLGI9QSstM3wwLGM9MDshKCgwfGMpPj0oMHxBKSk7KWFbaz4+Ml09YVsocD0xNTM3MjArKGM8PDUpfDApPj4yXSxhW2srND4+Ml09YVtwKzQ+PjJdLGFbays4Pj4yXT1hW3ArOD4+Ml0sYVtrKzEyPj4yXT1hW3Ar''@;'; + put 'put ''MTI+PjJdLGFbaysxNj4+Ml09YVtwKzE2Pj4yXSxhW2srMjA+PjJdPWFbcCsyMD4+Ml0sYVtrKzI0Pj4yXT1hW3ArMjQ+PjJdLGFbaysyOD4+Ml09YVtwKzI4Pj4yXSxYMyhsLGspLGM9YysxfDA7Zm9yKGI9YisoZj13KzF8MCl8MCx3PTB8YVttKzUyPj4yXTtjPXcrLTF8MCwhKCgwfHcpPD0w''@;'; + put 'put ''KTspYVtrPj4yXT1hWyh3PW0rNTYrKGM8PDUpfDApPj4yXSxhW2srND4+Ml09YVt3KzQ+PjJdLGFbays4Pj4yXT1hW3crOD4+Ml0sYVtrKzEyPj4yXT1hW3crMTI+PjJdLGFbaysxNj4+Ml09YVt3KzE2Pj4yXSxhW2srMjA+PjJdPWFbdysyMD4+Ml0sYVtrKzI0Pj4yXT1hW3crMjQ+PjJdLGFb''@;'; + put 'put ''aysyOD4+Ml09YVt3KzI4Pj4yXSxYMyhsLGspLHc9YztscChsLGYsYil9fXdoaWxlKDApO2FlPU19ZnVuY3Rpb24gamwobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTA7dmFyIEEsbT0wO2ZvcihtPTB8YVsocHw9MCk+PjJdO2M7KWw9MHxhW2FbMTgwKygwfGFbMTYrKDB8YVsoMj09KDMmYVtsPj4y''@;'; + put 'put ''XXwwKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0+PjJdLGM9YystMXwwO3JldHVybiBhW3A+PjJdPW0rMSxhWyhBPWYrKG08PDQpfDApPj4yXT1hWyhjPWYrKG0rLTE8PDQpfDApPj4yXSxhW0ErND4+Ml09YVtjKzQ+PjJdLGFbQSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2Mr''@;'; + put 'put ''MTI+PjJdLGFbcD4+Ml09MSsobT0wfGFbcD4+Ml0pLGFbKG09ZisobTw8NCl8MCk+PjJdPWFbYz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxhWyhtPWYrKGFbcD4+Ml08PDQpfDApPj4yXT1hWyhwPTE2KygwfGFbMTYr''@;'; + put 'put ''KDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pfDApPj4yXSxhW20rND4+Ml09YVtwKzQ+PjJdLGFbbSs4Pj4yXT1hW3ArOD4+Ml0sYVttKzEyPj4yXT1hW3ArMTI+PjJdLDB8bH1mdW5jdGlvbiBBWShsLGMpe3ZhciBrLE0sZj0wLHA9MCxtPTAsQT0wLHc9MCxi''@;'; + put 'put ''PTA7TT04NCsoY3w9MCl8MCxrPWMrODB8MCxmPTAsYz1sfD0wO2U6Zm9yKDt3PTB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSxiPXcrMTZ8MCwhKDEhPSgwfGZlWzE1NisoMHxhW2I+PjJdKT4+MF0pfHwoMHxfb1s2MyZhWzQzMjVdXSh3KSk8PDI0Pj4yNCk7KXtmb3Io''@;'; + put 'put ''Yz0wfGFbaz4+Ml07Oyl7aWYoKDB8Zik+PSgwfGMpKWJyZWFrIGU7aWYoISgrX1soMHxhW00+PjJdKSsoZjw8NSkrOD4+M10+K19bMjQrKDB8YVtiPj4yXSk+PjNdKSlicmVhaztmPWYrMXwwfWM9MHxhW00+PjJdLGw9MHxhW2I+PjJdO2Rve2lmKCEoK19bYysoZjw8NSkrMjQ+PjNdPCtfW2wr''@;'; + put 'put ''MjQ+PjNdKSl7aWYoQT1+fihtPStfW2MrKGY8PDUpPj4zXSkscD0rX1tjKyhmPDw1KSsxNj4+M10sMHxhW2wrMTA0Pj4yXSl7ZDcodyxBLH5+cCx+figrX1tsKzk2Pj4zXStwKSk7YnJlYWt9ZDcodyxBLH5+KC41KihwK20pKSx+fnApO2JyZWFrfX13aGlsZSgwKTtjPTB8YVthWzE4MCsoMHxh''@;'; + put 'put ''W2I+PjJdKT4+Ml0+PjJdfX1mdW5jdGlvbiBkNyhsLGMsZixwKXtjfD0wLHB8PTAsX1sxNisobD0wfGFbMTYrKGx8PTApPj4yXSk+PjNdPSsoMHwoZnw9MCkpLF9bbCs4OD4+M109KyhmLWN8MCksX1tsKzk2Pj4zXT0rKHAtZnwwKX1mdW5jdGlvbiB5WShsLGMpe2N8PTA7dmFyIGIsZj0wLHA9''@;'; + put 'put ''MCxtPTAsQT0wLHc9MDtmb3IoYj0wfGFbMTgwKygwfGFbMTYrKDB8YVsoMz09KDB8KHc9MyZhWyhsfD0wKT4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSx3PSgyPT0oMHx3KT9sOmwrLTQ4fDApKzQwfDAsQT0wLGw9MDtwPTB8YVtiKyhBPDwyKT4+Ml07KXttPTB8YVsyMzYrKDB8''@;'; + put 'put ''YVsxNisoMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXTtkb3tpZigoMHxBcihtLSgwfGFbMjM2KygwfGFbMTYrKDB8YVt3Pj4yXSk+PjJdKT4+Ml0pfDAsYykpPj0xKXtpZighKDB8YVs4KyhmPTB8YVtwKzE2Pj4yXSk+PjJdKSYmISgoZj0wfGFbZisx''@;'; + put 'put ''MTY+PjJdKSYmMHxhWzgrKDB8YVtmKzE2Pj4yXSk+PjJdKXx8MHxsJiYoMHxBcigoMHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS1tfDAsYykpPD0wKWJyZWFrO2w9cH19d2hpbGUoMCk7QT1BKzF8MH1yZXR1cm4gMHxs''@;'; + put 'put ''fWZ1bmN0aW9uIHdZKGwsYyl7Y3w9MDt2YXIgYixmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihiPTB8YVsxNzIrKDB8YVsxNisoMHxhWygyPT0oMHwodz0zJmFbKGx8PTApPj4yXSkpP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSx3PSgzPT0oMHx3KT9sOmwrNDh8MCkrNDB8MCxBPTAsbD0w''@;'; + put 'put ''O3A9MHxhW2IrKEE8PDIpPj4yXTspe209MHxhWzIzNisoMHxhWzE2KygwfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDpwKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml07ZG97aWYoKDB8QXIobS0oMHxhWzIzNisoMHxhWzE2KygwfGFbdz4+Ml0pPj4yXSk+PjJdKXwwLGMpKT49MSl7aWYoISgwfGFbOCso''@;'; + put 'put ''Zj0wfGFbcCsxNj4+Ml0pPj4yXSkmJiEoKGY9MHxhW2YrMTE2Pj4yXSkmJjB8YVs4KygwfGFbZisxNj4+Ml0pPj4yXSl8fDB8bCYmKDB8QXIoKDB8YVsyMzYrKDB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS1tfDAsYykpPD0wKWJyZWFr''@;'; + put 'put ''O2w9cH19d2hpbGUoMCk7QT1BKzF8MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIGxwKGwsYyxmKXtmfD0wO3ZhciBrLE0scD0wLG09MCxBPTAsdz0wLGI9MCxEPTA7Zm9yKE09ODQrKGx8PTApfDAsdz0oY3w9MCktMXwwOyEoKDB8dyk+KDB8ZikpOylwPStfWyhiPShtPTB8YVtNPj4yXSkrKHc8PDUp''@;'; + put 'put ''fDApPj4zXSx3LWMmMT8oQT1+figuNSooKEQ9K19bKG09bSsodzw8NSkrMTZ8MCk+PjNdKStwKSkscCsxNj5EJiYoX1tiPj4zXT0rKEErLTh8MCksX1ttPj4zXT0rKEErOHwwKSkpOihBPX5+KC41KigoRD0rX1sobT1tKyh3PDw1KSsxNnwwKT4+M10pK3ApKSxwPj1EJiYoX1tiPj4zXT0rKEEr''@;'; + put 'put ''LTh8MCksX1ttPj4zXT0rKEErOHwwKSkpLHc9dysxfDA7Zm9yKGs9KDB8YVtsKzgwPj4yXSktMXwwLEE9MDshKCgwfEEpPj0oMHxrKSk7KWlmKG09KHc9MHxhW00+PjJdKSsoQTw8NSl8MCxsPXcrKChiPUErMXwwKTw8NSl8MCwoMHxBKTwoMHxjKXwoMHxBKT4oMHxmKXx8MCE9KEEtYyYxfDAp''@;'; + put 'put ''KSgwfEEpPCgwfGYpJigwfGIpPj0oMHxjKT9iLWMmMXwwP0E9YjooK19bbT4+M10rMTY+KHA9K19bdysoYjw8NSkrMTY+PjNdKSYmKF9bbT4+M109cCstMTYpLCtfWyhtPXcrKEE8PDUpKzE2fDApPj4zXS0xNjwocD0rX1tsPj4zXSk/KF9bbT4+M109cCsxNixBPWIpOkE9Yik6QT1iO2Vsc2V7''@;'; + put 'put ''aWYoKHA9K19bbT4+M10rMTYpPitfWyhtPXcrKGI8PDUpKzE2fDApPj4zXSYmKF9bbT4+M109cCksISgocD0rX1t3KyhBPDw1KSsxNj4+M10tMTYpPCtfW2w+PjNdKSl7QT1iO2NvbnRpbnVlfV9bbD4+M109cCxBPWJ9fWZ1bmN0aW9uIFJGKGwsYyxmLHAsbSl7Zj0rZixwPStwLG09K20sX1so''@;'; + put 'put ''bHw9MCk+PjNdPWM9K2MsX1tsKzg+PjNdPWYsX1tsKzE2Pj4zXT1wLF9bbCsyND4+M109bX1mdW5jdGlvbiBCRihsLGMsZixwLG0pe2Z8PTAscHw9MCxtfD0wO3ZhciB3LEE9MCxiPTAsaz0wO3c9KGs9MHxhWzE5NisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSkrKChiPTB8YVsyMzIrKEE9MHxh''@;'; + put 'put ''WzE2KyhjfD0wKT4+Ml0pPj4yXSk8PDYpfDAsYj1rKyhiPDw2KSs0fDAsQT0wfGFbQSsyMzY+PjJdO2U6ZG97aWYoKDB8KEE9QSttfDApKTw9LTEpe2w9MDticmVha31pZigoMHxBKT49KDB8YVt3Pj4yXSkpe2w9MDticmVha31zd2l0Y2goMHxmZVsxNTYrKGs9MHxhWzE2KyhsPTB8YVsoMHxh''@;'; + put 'put ''W2I+PjJdKSsoQTw8Mik+PjJdKT4+Ml0pPj4wXSl7Y2FzZSAwOmJyZWFrIGU7Y2FzZSAxOmlmKDB8YVtrKzEwND4+Ml0pYnJlYWsgZX19d2hpbGUoKDB8VGMobCxjLGYscCkpPDwyND4+MjQhPTApO3JldHVybiAwfGx9ZnVuY3Rpb24gUEYobCxjLGYpe2x8PTA7dmFyIHAsbT0wLEE9MCx3PTA7''@;'; + put 'put ''aWYoMHxmZVsxNTYrKGM9MHxhWzE2KyhjfD0wKT4+Ml0pPj4wXT8oQT0wfGFbMjEyKygwfGFbMTYrKDB8YVsoMj09KDB8KG09MyZhWyh3PTB8YVsxMTYrKDB8YVsxNisoMHxhW2FbYysxODA+PjJdPj4yXSk+PjJdKT4+Ml0pPj4yXSkpP3c6dystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSx3PTB8''@;'; + put 'put ''YVsyMTIrKDB8YVsxNisoMHxhWygzPT0oMHxtKT93OncrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk6QT13PTB8YVtjKzIxMj4+Ml0sISgwfGZlWzE1NisoYz0wfGFbMTYrKGZ8PTApPj4yXSk+PjBdKSlyZXR1cm4gMHwoKDB8KGY9KDB8KGY9MHxhW2MrMjEyPj4yXSkpPT0oMHxsKT8wOmYpKT09''@;'; + put 'put ''KDB8QSl8MD09KDB8Zil8KDB8Zik9PSgwfHcpPzA6Zik7aWYoKDB8KGM9KDB8KGM9MHxhWzIxMisoMHxhWzE2KygwfGFbKDM9PSgwfChtPTMmYVsocD0wfGFbMTE2KygwfGFbMTYrKDB8YVthW2MrMTgwPj4yXT4+Ml0pPj4yXSk+PjJdKT4+Ml0pKT9wOnArNDh8MCkrNDA+PjJdKT4+Ml0pPj4y''@;'; + put 'put ''XSkpPT0oMHxsKT8wOmMpKT09KDB8QSl8MD09KDB8Yyl8KDB8Yyk9PSgwfHcpfHwwPT0oMHxkMGUoYyxmKSkpe2lmKCEoKDB8KGM9KDB8KGM9MHxhWzIxMisoMHxhWzE2KygwfGFbKDI9PSgwfG0pP3A6cCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPT0oMHxsKT8wOmMpKT09KDB8QSl8MD09''@;'; + put 'put ''KDB8Yyl8KDB8Yyk9PSgwfHcpKSlyZXR1cm4gMHwoKGY9MD09KDB8ZDBlKGMsZikpKT8wOmMpO2M9MH1yZXR1cm4gMHxjfWZ1bmN0aW9uIGQwZShsLGMpe3ZhciBmLG0scD0wO3JldHVybiAwfCgrX1sxNisoZj0wfGFbMTYrKGx8PTApPj4yXSk+PjNdPD0obT0rX1sxNisobD0wfGFbMTYrKGN8''@;'; + put 'put ''PTApPj4yXSk+PjNdKSYmbTw9K19bZiszMj4+M10mJitfW2YrMjQ+PjNdPD0ocD0rX1tsKzI0Pj4zXSk/cDw9K19bZis0MD4+M10mMTowKX1mdW5jdGlvbiBUYyhsLGMsZixwKXtmfD0wLHB8PTA7dmFyIHcsYixtPTAsQT0wO2I9KDB8YVsyMzYrKHc9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSk+''@;'; + put 'put ''KDB8YVsyMzYrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pO2U6ZG97aWYoMT09KDB8YVt3KzE4ND4+Ml0pKXt0OmRve2lmKDB8cClmb3IoQT0wLGw9MHxhW2FbdysxODA+PjJdPj4yXTs7KXtpZigoMHxBKT49Mnx8KDB8KGw9MHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJd''@;'; + put 'put ''KSk9PSgwfChjPTB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSkpKWJyZWFrIHQ7aWYoYl4oMHxhWzIzNisobT0wfGFbbCsxNj4+Ml0pPj4yXSk+KDB8YVsyMzYrKGw9MHxhW2MrMTY+PjJdKT4+Ml0pKXtsPTE7YnJlYWsgZX1pZighKDE9PSgwfGFbbSsxODQ+PjJdKSYm''@;'; + put 'put ''MHxmZVttKzE1Nj4+MF0mJjE9PSgwfGFbbCsxODQ+PjJdKSYmMHxmZVtsKzE1Nj4+MF0pKWJyZWFrIHQ7QT1BKzF8MCxwPTB8YVthW2wrMTgwPj4yXT4+Ml0sbD0wfGFbYVttKzE4MD4+Ml0+PjJdfX13aGlsZSgwKTtpZigwfGYmJjE9PSgwfGFbdysxNzY+PjJdKSlmb3IobT0wLGM9ZixsPTB8''@;'; + put 'put ''YVthW3crMTcyPj4yXT4+Ml07Oyl7aWYoKDB8bSk+PTIpe2w9MDticmVhayBlfWlmKCgwfChsPTB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSk9PSgwfChjPTB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKSkpe2w9MDticmVhayBlfWlmKGJeKDB8''@;'; + put 'put ''YVsyMzYrKHA9MHxhW2wrMTY+PjJdKT4+Ml0pPigwfGFbMjM2KyhsPTB8YVtjKzE2Pj4yXSk+PjJdKSl7bD0xO2JyZWFrIGV9aWYoMSE9KDB8YVtwKzE3Nj4+Ml0pKXtsPTA7YnJlYWsgZX1pZighKDB8ZmVbcCsxNTY+PjBdKSl7bD0wO2JyZWFrIGV9aWYoMSE9KDB8YVtsKzE3Nj4+Ml0pKXts''@;'; + put 'put ''PTA7YnJlYWsgZX1pZighKDB8ZmVbbCsxNTY+PjBdKSl7bD0wO2JyZWFrIGV9bT1tKzF8MCxjPTB8YVthW2wrMTcyPj4yXT4+Ml0sbD0wfGFbYVtwKzE3Mj4+Ml0+PjJdfWVsc2UgbD0wfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gQnUobCxjLGYpe3ZhciBwO3A9K19b''@;'; + put 'put ''OCsoZnw9MCk+PjNdKyArX1s4KyhjfD0wKT4+M10sX1sobHw9MCk+PjNdPStfW2Y+PjNdKyArX1tjPj4zXSxfW2wrOD4+M109cH1mdW5jdGlvbiBGRihsLGMsZil7dmFyIHAsbTtyZXR1cm4oMHx+figoK19bKGZ8PTApPj4zXS0obT0rX1soY3w9MCk+PjNdKSkqKCtfWzgrKGx8PTApPj4zXS0o''@;'; + put 'put ''cD0rX1tjKzg+PjNdKSktKCtfW2w+PjNdLW0pKigrX1tmKzg+PjNdLXApKSk+MHwwfWZ1bmN0aW9uIGcwZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLG18PTA7dmFyIE0sRCxSLEsscGUsYmUsTGUsUmUsVmUsQT0wLHc9MCxiPTAsaz0wLEc9MCxnZT0wLE9lPTAsSGU9MCxxZT0wLG50PTAs''@;'; + put 'put ''V2U9MCxvdD0wLFN0PTA7Zm9yKFZlPWFlLGFlPWFlKzE2MDB8MCxiZT1WZSsxNTUyfDAsTT1WZSsxNTM2fDAsZ2U9VmUrODQwfDAsT2U9VmUrMTQ0fDAsTGU9VmUrMTU4NHwwLHc9VmUrMzJ8MCxwZT1WZSsxNnwwLEQ9VmUsUj0wfGFbKDM9PSgwfChHPTMmYVsocHw9MCk+PjJdKSk/cDpwKzQ4''@;'; + put 'put ''fDApKzQwPj4yXSxSZT1wKy00OHwwLEc9MHxhWygyPT0oMHxHKT9wOlJlKSs0MD4+Ml0sQT0wfGFbMTcyKyhiPTB8YVsoSz1wKzE2fDApPj4yXSk+PjJdO2s9MHxhWzE3MisoMHxhW0ErMTY+PjJdKT4+Ml07KUE9aztpZihhWyhiPTU2KygwfGFbYis5Nj4+Ml0pfDApPj4yXT1hWyhrPTE2Kygw''@;'; + put 'put ''fGFbKEE9MTYrKDB8YVsoMz09KDMmYVtBPj4yXXwwKT9BOkErNDh8MCkrNDA+PjJdKXwwKT4+Ml0pfDApPj4yXSxhW2IrND4+Ml09YVtrKzQ+PjJdLGFbYis4Pj4yXT1hW2srOD4+Ml0sYVtiKzEyPj4yXT1hW2srMTI+PjJdLGZlWzgxKygwfGFbOTYrKGI9MHxhW0s+PjJdKT4+Ml0pPj4wXT0x''@;'; + put 'put ''LDIhPSgwfG0pKXtmb3IoU3Q9KFdlPStfWzE2KyhiPTB8YVtBPj4yXSk+PjNdKS0rX1tiKzg4Pj4zXSxXZT0rX1tiKzk2Pj4zXStXZSxudD0ob3Q9LjUqK19bYis4MD4+M10rKG50PStfW2IrMjQ+PjNdKSktKChudD0rKDB8fn4oLjE2NjY2NjY2NjY2NjY2NjY2KisoMHx+fihudC0rX1soYj0w''@;'; + put 'put ''fGFbMTk2KygwfGFbbCsxNj4+Ml0pPj4yXSkrKCh3PTB8YVsyMzIrKGs9MHxhW1IrMTY+PjJdKT4+Ml0pPDw2KSsxNj4+M10tK19baysyND4+M10rICtfW2IrKHc8PDYpKzI0Pj4zXSkpKSkpPDU/NTpudCksbkkobCxjLGYsUixwLGdlLDEpLG5JKGwsYyxmLEcscCxPZSwwKSxfWzE5MjE1XT1x''@;'; + put 'put ''ZT0rX1tnZSs1NisoKGs9KGI9MHxhWyh3PWdlKzUyfDApPj4yXSktMXwwKTw8NSk+PjNdLF9bMTkyMTZdPStfW2dlKzU2KyhrPDw1KSsyND4+M10sX1sxOTIxN109U3QsX1sxOTIxOF09bnQsX1sxOTIxOV09cWUsX1sxOTIyMF09bnQsX1sxOTIyMV09cWU9K19bT2UrNTYrKChBPSgwfGFbKGs9''@;'; + put 'put ''T2UrNTJ8MCk+PjJdKS0xfDApPDw1KSsxNj4+M10sX1sxOTIyMl09b3QsX1sxOTIyM109V2UsX1sxOTIyNl09bnQsX1sxOTIyNF09K19bT2UrNTYrKEE8PDUpKzI0Pj4zXSxfWzE5MjI1XT1xZSxBPTA7Oyl7aWYoKDB8QSk+PSgwfGIpKXtBPTA7YnJlYWt9YVtiZT4+Ml09YVsoYj1nZSs1Niso''@;'; + put 'put ''QTw8NSl8MCk+PjJdLGFbYmUrND4+Ml09YVtiKzQ+PjJdLGFbYmUrOD4+Ml09YVtiKzg+PjJdLGFbYmUrMTI+PjJdPWFbYisxMj4+Ml0sYVtiZSsxNj4+Ml09YVtiKzE2Pj4yXSxhW2JlKzIwPj4yXT1hW2IrMjA+PjJdLGFbYmUrMjQ+PjJdPWFbYisyND4+Ml0sYVtiZSsyOD4+Ml09YVtiKzI4''@;'; + put 'put ''Pj4yXSxYMyhmLGJlKSxBPUErMXwwLGI9MHxhW3c+PjJdfWZvcig7MyE9KDB8QSk7KWFbYmU+PjJdPWFbKGdlPTE1MzcyMCsoQTw8NSl8MCk+PjJdLGFbYmUrND4+Ml09YVtnZSs0Pj4yXSxhW2JlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtiZSsxMj4+Ml09YVtnZSsxMj4+Ml0sYVtiZSsxNj4+Ml09''@;'; + put 'put ''YVtnZSsxNj4+Ml0sYVtiZSsyMD4+Ml09YVtnZSsyMD4+Ml0sYVtiZSsyND4+Ml09YVtnZSsyND4+Ml0sYVtiZSsyOD4+Ml09YVtnZSsyOD4+Ml0sWDMoZixiZSksQT1BKzF8MDtmb3Iodz0wfGFbaz4+Ml07QT13Ky0xfDAsISgoMHx3KTw9MCk7KWFbYmU+PjJdPWFbKHc9T2UrNTYrKEE8PDUp''@;'; + put 'put ''fDApPj4yXSxhW2JlKzQ+PjJdPWFbdys0Pj4yXSxhW2JlKzg+PjJdPWFbdys4Pj4yXSxhW2JlKzEyPj4yXT1hW3crMTI+PjJdLGFbYmUrMTY+PjJdPWFbdysxNj4+Ml0sYVtiZSsyMD4+Ml09YVt3KzIwPj4yXSxhW2JlKzI0Pj4yXT1hW3crMjQ+PjJdLGFbYmUrMjg+PjJdPWFbdysyOD4+Ml0s''@;'; + put 'put ''WDMoZixiZSksdz1BO3c9MTA9PSgwfG0pPzB8YnkoZixMZSk6MHxkayhmLExlKSwwfChBPTB8YVtMZT4+Ml0pJiYoSGU9MTcpfWVsc2UgT2U9YisxNnwwLGFbTT4+Ml09YVsoQT0xNisoMHxhW1IrMTY+PjJdKXwwKT4+Ml0sYVtNKzQ+PjJdPWFbQSs0Pj4yXSxhW00rOD4+Ml09YVtBKzg+PjJd''@;'; + put 'put ''LGFbTSsxMj4+Ml09YVtBKzEyPj4yXSxhW2JlPj4yXT1hW09lPj4yXSxhW2JlKzQ+PjJdPWFbT2UrND4+Ml0sYVtiZSs4Pj4yXT1hW09lKzg+PjJdLGFbYmUrMTI+PjJdPWFbT2UrMTI+PjJdLEJ1KHBlLE0sYmUpLEE9NTYrKDB8YVtLPj4yXSl8MCxhW00+PjJdPWFbKE9lPTE2KygwfGFbRysx''@;'; + put 'put ''Nj4+Ml0pfDApPj4yXSxhW00rND4+Ml09YVtPZSs0Pj4yXSxhW00rOD4+Ml09YVtPZSs4Pj4yXSxhW00rMTI+PjJdPWFbT2UrMTI+PjJdLGFbYmU+PjJdPWFbQT4+Ml0sYVtiZSs0Pj4yXT1hW0ErND4+Ml0sYVtiZSs4Pj4yXT1hW0ErOD4+Ml0sYVtiZSsxMj4+Ml09YVtBKzEyPj4yXSxCdShE''@;'; + put 'put ''LE0sYmUpLG90PStfWzU2KyhBPTB8YVs5NisoMHxhW0s+PjJdKT4+Ml0pPj4zXSxTdD0rX1tBKzY0Pj4zXS0uNSorX1tBKzMyPj4zXSxBPXcrMTZ8MCxhW3c+PjJdPWFbcGU+PjJdLGFbdys0Pj4yXT1hW3BlKzQ+PjJdLGFbdys4Pj4yXT1hW3BlKzg+PjJdLGFbdysxMj4+Ml09YVtwZSsxMj4+''@;'; + put 'put ''Ml0sYVtBPj4yXT1hW3BlPj4yXSxhW0ErND4+Ml09YVtwZSs0Pj4yXSxhW0ErOD4+Ml09YVtwZSs4Pj4yXSxhW0ErMTI+PjJdPWFbcGUrMTI+PjJdLEE9dyszMnwwLE9lPXcrNDh8MCxIZT13KzY0fDAsX1t3KzY0Pj4zXT1vdCxfW3crNzI+PjNdPVN0LGFbT2U+PjJdPWFbSGU+PjJdLGFbT2Ur''@;'; + put 'put ''ND4+Ml09YVtIZSs0Pj4yXSxhW09lKzg+PjJdPWFbSGUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtIZSsxMj4+Ml0sYVtBPj4yXT1hW0hlPj4yXSxhW0ErND4+Ml09YVtIZSs0Pj4yXSxhW0ErOD4+Ml09YVtIZSs4Pj4yXSxhW0ErMTI+PjJdPWFbSGUrMTI+PjJdLEE9dys4MHwwLGFbKEhlPXcrOTZ8''@;'; + put 'put ''MCk+PjJdPWFbRD4+Ml0sYVtIZSs0Pj4yXT1hW0QrND4+Ml0sYVtIZSs4Pj4yXT1hW0QrOD4+Ml0sYVtIZSsxMj4+Ml09YVtEKzEyPj4yXSxhW0E+PjJdPWFbRD4+Ml0sYVtBKzQ+PjJdPWFbRCs0Pj4yXSxhW0ErOD4+Ml09YVtEKzg+PjJdLGFbQSsxMj4+Ml09YVtEKzEyPj4yXSxhW0xlPj4y''@;'; + put 'put ''XT03LEE9NyxIZT0xNzsxNz09KDB8SGUpJiZBdShwLDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOlJlKSs0MD4+Ml0sdyxBLDE3Mjk2KSxhZT1WZX1mdW5jdGlvbiBIRihsLGMsZixwLG0sQSl7Y3w9MCxtfD0wLEF8PTA7dmFyIGssTSxELFIsRyxwZSxiZSxudCxXZSxvdCxTdCxrdCxsdCxFdCxa''@;'; + put 'put ''dCxjdCxidCxhbixTbixIbix1cix3PTAsYj0wLEs9MCxnZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wO2Zvcih1cj1hZSxhZT1hZSszNTJ8MCxIZT11ciszMzZ8MCxTbj11cisxMjh8MCxPZT11ciszMDR8MCxWZT11cisyODh8MCxIbj11cisxMTJ8MCxrdD11cis5NnwwLGx0PXVy''@;'; + put 'put ''KzgwfDAsRXQ9dXIrNjR8MCxadD11cis0OHwwLGN0PXVyKzMyfDAsYnQ9dXIrMTZ8MCxhbj11cixnZT0xNisoMHxhWyhMZT0xNisoMHxhWyhmfD0wKSsoKHB8PTApPDwyKT4+Ml0pfDApPj4yXSl8MCxhWyhSZT11ciszMjB8MCk+PjJdPWFbKEs9MTYrKDB8YVsobD0xNisobHw9MCl8MCk+PjJd''@;'; + put 'put ''KXwwKT4+Ml0sYVtSZSs0Pj4yXT1hW0srND4+Ml0sYVtSZSs4Pj4yXT1hW0srOD4+Ml0sYVtSZSsxMj4+Ml09YVtLKzEyPj4yXSxhW0hlPj4yXT1hW2dlPj4yXSxhW0hlKzQ+PjJdPWFbZ2UrND4+Ml0sYVtIZSs4Pj4yXT1hW2dlKzg+PjJdLGFbSGUrMTI+PjJdPWFbZ2UrMTI+PjJdLEJ1KE9l''@;'; + put 'put ''LFJlLEhlKSxvdD0rX1tPZT4+M10sU3Q9K19bT2UrOD4+M10sTGU9NTYrKDB8YVtMZT4+Ml0pfDAsYVtSZT4+Ml09YVsoT2U9MTYrKDB8YVtjKzE2Pj4yXSl8MCk+PjJdLGFbUmUrND4+Ml09YVtPZSs0Pj4yXSxhW1JlKzg+PjJdPWFbT2UrOD4+Ml0sYVtSZSsxMj4+Ml09YVtPZSsxMj4+Ml0s''@;'; + put 'put ''YVtIZT4+Ml09YVtMZT4+Ml0sYVtIZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbSGUrOD4+Ml09YVtMZSs4Pj4yXSxhW0hlKzEyPj4yXT1hW0xlKzEyPj4yXSxCdShWZSxSZSxIZSksV2U9K19bVmUrOD4+M10sKDB8bSk+MT8odz0uNSoocWU9K19bODArKDB8YVtsPj4yXSk+PjNdKSxxZS89KyhtKy0x''@;'; + put 'put ''fDApKToodz0wLHFlPTApLEc9MTA9PSg4fEEpLE09U24rOHwwLEs9U24rMTZ8MCxwZT0uMzMzMzMzMzMzMzMzMzMzMyooKG50PStfW1ZlPj4zXSkrMipvdCksZ2U9U24rMzJ8MCxiZT0uMzMzMzMzMzMzMzMzMzMzMyooMipudCtvdCksRD1TbisyNHwwLE9lPVNuKzQ4fDAsTGU9U24rNjR8MCxS''@;'; + put 'put ''ZT1Tbis4MHwwLEhlPVNuKzk2fDAsVmU9U24rMTEyfDAsaz1TbisxMjh8MCxSPVNuKzEzNnwwLHc9U3QtdyxjPTA7ISgoMHxjKT49KDB8bSkpOyliPTB8YVtmKyhjK3A8PDIpPj4yXSxfW1NuPj4zXT1vdCxfW00+PjNdPVN0LEc/KFc1KEhuLHBlLHcpLGFbSz4+Ml09YVtIbj4+Ml0sYVtLKzQ+''@;'; + put 'put ''PjJdPWFbSG4rND4+Ml0sYVtLKzg+PjJdPWFbSG4rOD4+Ml0sYVtLKzEyPj4yXT1hW0huKzEyPj4yXSxXNShrdCxiZSx3KSxhW2dlPj4yXT1hW2t0Pj4yXSxhW2dlKzQ+PjJdPWFba3QrND4+Ml0sYVtnZSs4Pj4yXT1hW2t0Kzg+PjJdLGFbZ2UrMTI+PjJdPWFba3QrMTI+PjJdLGw9NCxBPTMp''@;'; + put 'put ''OihfW0s+PjNdPW90LF9bRD4+M109U3QsVzUobHQscGUsdyksYVtnZT4+Ml09YVtsdD4+Ml0sYVtnZSs0Pj4yXT1hW2x0KzQ+PjJdLGFbZ2UrOD4+Ml09YVtsdCs4Pj4yXSxhW2dlKzEyPj4yXT1hW2x0KzEyPj4yXSxXNShFdCxwZSx3KSxhW09lPj4yXT1hW0V0Pj4yXSxhW09lKzQ+PjJdPWFb''@;'; + put 'put ''RXQrND4+Ml0sYVtPZSs4Pj4yXT1hW0V0Kzg+PjJdLGFbT2UrMTI+PjJdPWFbRXQrMTI+PjJdLFc1KFp0LHBlLHcpLGFbTGU+PjJdPWFbWnQ+PjJdLGFbTGUrND4+Ml09YVtadCs0Pj4yXSxhW0xlKzg+PjJdPWFbWnQrOD4+Ml0sYVtMZSsxMj4+Ml09YVtadCsxMj4+Ml0sVzUoY3QsYmUsdyks''@;'; + put 'put ''YVtSZT4+Ml09YVtjdD4+Ml0sYVtSZSs0Pj4yXT1hW2N0KzQ+PjJdLGFbUmUrOD4+Ml09YVtjdCs4Pj4yXSxhW1JlKzEyPj4yXT1hW2N0KzEyPj4yXSxXNShidCxiZSx3KSxhW0hlPj4yXT1hW2J0Pj4yXSxhW0hlKzQ+PjJdPWFbYnQrND4+Ml0sYVtIZSs4Pj4yXT1hW2J0Kzg+PjJdLGFbSGUr''@;'; + put 'put ''MTI+PjJdPWFbYnQrMTI+PjJdLFc1KGFuLGJlLHcpLGFbVmU+PjJdPWFbYW4+PjJdLGFbVmUrND4+Ml09YVthbis0Pj4yXSxhW1ZlKzg+PjJdPWFbYW4rOD4+Ml0sYVtWZSsxMj4+Ml09YVthbisxMj4+Ml0sX1trPj4zXT1udCxfW1I+PjNdPVdlLGw9MTAsQT05KSxfW1NuKyhBPDw0KT4+M109''@;'; + put 'put ''bnQsX1tTbisoQTw8NCkrOD4+M109V2UsQXUoYiwwfGFbKDI9PSgzJmFbYj4+Ml18MCk/YjpiKy00OHwwKSs0MD4+Ml0sU24sbCwxNzI5Niksdys9cWUsYz1jKzF8MDthZT11cn1mdW5jdGlvbiBiWShsLGMsZixwLG0sQSx3LGIpe3B8PTAsbXw9MCxifD0wO3ZhciBwZSxnZSxiZSxPZSxMZSxS''@;'; + put 'put ''ZSxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MDtmb3IoUmU9YWUsYWU9YWUrMTQ0MHwwLGdlPVJlKzEzOTJ8MCxPZT1SZSsxNDI0fDAsYmU9UmUsRz0wfGFbKDM9PSgwfChLPTMmYVsod3w9MCk+PjJdKSk/dzp3KzQ4fDApKzQwPj4yXSxLPTB8''@;'; + put 'put ''YVsoMj09KDB8Syk/dzp3Ky00OHwwKSs0MD4+Ml0sTT0oMHwoRD0wfGFbMjMyKyhrPTB8YVtHKzE2Pj4yXSk+PjJdKSk8KDB8cnRbMjM4KyhSPTB8YVsxNisobHw9MCk+PjJdKT4+MV0pPytfW2srMjQ+PjNdLStfWyhIZT0wfGFbUisxOTY+PjJdKSsoRDw8NikrMzI+PjNdLStfWzI0KygwfGFb''@;'; + put 'put ''MTYrKDB8YVthW0hlKygoUj1EKzF8MCk8PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M10tK19bSGUrKFI8PDYpKzQwPj4zXTorKDB8YVtSKzI1Mj4+Ml0pLHBlPSsoMHxhWzEyKyhjfD0wKT4+Ml0pLyhWZT0rKDErKEF8PTApfDApKSxNLz1WZSxORihsLGMsZnw9MCxHLHcsTGU9UmUrNjk2fDAsMSks''@;'; + put 'put ''TkYobCxjLGYsSyx3LGJlLDApLEs9TGUrNTJ8MCx3PWJlKzUyfDAsbD0wPT0oMHxiKSxjPWYrODB8MCxrPTA7ISgoMHxrKT49KDB8QSkpOyl7Zm9yKEc9MHxhW3ArKGsrbTw8Mik+PjJdLG50PStfW0xlKzU2KygoRD0oUj0wfGFbSz4+Ml0pLTF8MCk8PDUpKzg+PjNdLFdlPStfW0xlKzU2KyhE''@;'; + put 'put ''PDw1KSsxNj4+M10sX1sxOTIxNV09b3Q9K19bTGUrNTYrKEQ8PDUpPj4zXSxfWzE5MjE4XT1udCxfWzE5MjE3XT1XZSsocWU9cGUqKFZlPSsoMHwoaz1rKzF8MCkpKSksX1sxOTIxNl09VmU9bnQtTSpWZSxfWzE5MjE5XT1vdCxfWzE5MjIyXT1WZSxfWzE5MjIxXT1vdD0rX1tiZSs1NisoKEQ9''@;'; + put 'put ''KDB8YVt3Pj4yXSktMXwwKTw8NSkrMTY+PjNdLF9bMTkyMjBdPVZlLU0sbnQ9K19bYmUrNTYrKEQ8PDUpPj4zXSxXZT0rX1tiZSs1NisoRDw8NSkrOD4+M10sX1sxOTIyNV09b3QsX1sxOTIyNl09V2UsX1sxOTIyM109bnQtcWUsX1sxOTIyNF09VmUsRD0wOzspe2lmKCgwfEQpPj0oMHxSKSl7''@;'; + put 'put ''RD0wO2JyZWFrfWFbZ2U+PjJdPWFbKFI9TGUrNTYrKEQ8PDUpfDApPj4yXSxhW2dlKzQ+PjJdPWFbUis0Pj4yXSxhW2dlKzg+PjJdPWFbUis4Pj4yXSxhW2dlKzEyPj4yXT1hW1IrMTI+PjJdLGFbZ2UrMTY+PjJdPWFbUisxNj4+Ml0sYVtnZSsyMD4+Ml09YVtSKzIwPj4yXSxhW2dlKzI0Pj4y''@;'; + put 'put ''XT1hW1IrMjQ+PjJdLGFbZ2UrMjg+PjJdPWFbUisyOD4+Ml0sWDMoZixnZSksRD1EKzF8MCxSPTB8YVtLPj4yXX1mb3IoOzMhPSgwfEQpOylhW2dlPj4yXT1hWyhIZT0xNTM3MjArKEQ8PDUpfDApPj4yXSxhW2dlKzQ+PjJdPWFbSGUrND4+Ml0sYVtnZSs4Pj4yXT1hW0hlKzg+PjJdLGFbZ2Ur''@;'; + put 'put ''MTI+PjJdPWFbSGUrMTI+PjJdLGFbZ2UrMTY+PjJdPWFbSGUrMTY+PjJdLGFbZ2UrMjA+PjJdPWFbSGUrMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbSGUrMjQ+PjJdLGFbZ2UrMjg+PjJdPWFbSGUrMjg+PjJdLFgzKGYsZ2UpLEQ9RCsxfDA7Zm9yKFI9MHxhW3c+PjJdO0Q9UistMXwwLCEoKDB8Uik8''@;'; + put 'put ''PTApOylhW2dlPj4yXT1hWyhSPWJlKzU2KyhEPDw1KXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW1IrND4+Ml0sYVtnZSs4Pj4yXT1hW1IrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSKzEyPj4yXSxhW2dlKzE2Pj4yXT1hW1IrMTY+PjJdLGFbZ2UrMjA+PjJdPWFbUisyMD4+Ml0sYVtnZSsyND4+Ml09YVtS''@;'; + put 'put ''KzI0Pj4yXSxhW2dlKzI4Pj4yXT1hW1IrMjg+PjJdLFgzKGYsZ2UpLFI9RDtpZihEPWw/MHxkayhmLE9lKTowfGJ5KGYsT2UpLCEoUj0wfGFbT2U+PjJdKSlicmVhaztBdShHLDB8YVsoMj09KDMmYVtHPj4yXXwwKT9HOkcrLTQ4fDApKzQwPj4yXSxELFIsMTcyOTYpLGFbYz4+Ml09MH1hZT1S''@;'; + put 'put ''ZX1mdW5jdGlvbiBuSShsLGMsZixwLG0sQSx3KXtmfD0wLEF8PTAsd3w9MDt2YXIgYixrLE0sRCxHLFI9MDtEPWFlLGFlPWFlKzEyOHwwLGI9RCs5NnwwLGs9RCs2NHwwLE09RCxHNShSPUQrMzJ8MCxsfD0wLGN8PTAscHw9MCwwLG18PTApLGFbQT4+Ml09YVtSPj4yXSxhW0ErND4+Ml09YVtS''@;'; + put 'put ''KzQ+PjJdLGFbQSs4Pj4yXT1hW1IrOD4+Ml0sYVtBKzEyPj4yXT1hW1IrMTI+PjJdLGFbQSsxNj4+Ml09YVtSKzE2Pj4yXSxhW0ErMjA+PjJdPWFbUisyMD4+Ml0sYVtBKzI0Pj4yXT1hW1IrMjQ+PjJdLGFbQSsyOD4+Ml09YVtSKzI4Pj4yXSxhW2s+PjJdPWFbUj4+Ml0sYVtrKzQ+PjJdPWFb''@;'; + put 'put ''Uis0Pj4yXSxhW2srOD4+Ml09YVtSKzg+PjJdLGFbaysxMj4+Ml09YVtSKzEyPj4yXSxhW2srMTY+PjJdPWFbUisxNj4+Ml0sYVtrKzIwPj4yXT1hW1IrMjA+PjJdLGFbaysyND4+Ml09YVtSKzI0Pj4yXSxhW2srMjg+PjJdPWFbUisyOD4+Ml0sYVtBKzQ4Pj4yXT00LHc8PDI0Pj4yND9KSShm''@;'; + put 'put ''LG0sMixBLDApOlhJKGYsbSwyLEEsMCksX1soUj1rKzI0fDApPj4zXT0rX1tBKzU2KygobT0oMHxhWyhjPUErNTJ8MCk+PjJdKS0xfDApPDw1KSsyND4+M10sX1sodz1rKzh8MCk+PjNdPStfW0ErNTYrKG08PDUpKzg+PjNdLEc9K19bKDB8YVsxOTYrKDB8YVtsKzE2Pj4yXSk+PjJdKSsoYVsy''@;'; + put 'put ''MzIrKHA9MHxhW3ArMTY+PjJdKT4+Ml08PDYpKzI0Pj4zXSsgK19bcCsyND4+M10sYVtiPj4yXT1hW2s+PjJdLGFbYis0Pj4yXT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4yXSxhW2IrMTI+PjJdPWFbaysxMj4+Ml0sYVtiKzE2Pj4yXT1hW2srMTY+PjJdLGFbYisyMD4+Ml09YVtrKzIw''@;'; + put 'put ''Pj4yXSxhW2IrMjQ+PjJdPWFbaysyND4+Ml0sYVtiKzI4Pj4yXT1hW2srMjg+PjJdLFhBKE0sYiw0LEcpLGFbaz4+Ml09YVtNPj4yXSxhW2srND4+Ml09YVtNKzQ+PjJdLGFbays4Pj4yXT1hW00rOD4+Ml0sYVtrKzEyPj4yXT1hW00rMTI+PjJdLGFbaysxNj4+Ml09YVtNKzE2Pj4yXSxhW2sr''@;'; + put 'put ''MjA+PjJdPWFbTSsyMD4+Ml0sYVtrKzI0Pj4yXT1hW00rMjQ+PjJdLGFbaysyOD4+Ml09YVtNKzI4Pj4yXSwrX1trPj4zXTwrX1trKzE2Pj4zXSYmK19bdz4+M108K19bUj4+M10mJihhW2M+PjJdPTErKFI9MHxhW2M+PjJdKSxhWyhSPUErNTYrKFI8PDUpfDApPj4yXT1hW2s+PjJdLGFbUis0''@;'; + put 'put ''Pj4yXT1hW2srND4+Ml0sYVtSKzg+PjJdPWFbays4Pj4yXSxhW1IrMTI+PjJdPWFbaysxMj4+Ml0sYVtSKzE2Pj4yXT1hW2srMTY+PjJdLGFbUisyMD4+Ml09YVtrKzIwPj4yXSxhW1IrMjQ+PjJdPWFbaysyND4+Ml0sYVtSKzI4Pj4yXT1hW2srMjg+PjJdKSxhZT1EfWZ1bmN0aW9uIE5GKGws''@;'; + put 'put ''YyxmLHAsbSxBLHcpe2Z8PTAsQXw9MCx3fD0wO3ZhciBiLGssTSxELEcsUj0wO0Q9YWUsYWU9YWUrMTI4fDAsYj1EKzk2fDAsaz1EKzY0fDAsTT1ELEc1KFI9RCszMnwwLGx8PTAsY3w9MCxwfD0wLDAsbXw9MCksYVtBPj4yXT1hW1I+PjJdLGFbQSs0Pj4yXT1hW1IrND4+Ml0sYVtBKzg+PjJd''@;'; + put 'put ''PWFbUis4Pj4yXSxhW0ErMTI+PjJdPWFbUisxMj4+Ml0sYVtBKzE2Pj4yXT1hW1IrMTY+PjJdLGFbQSsyMD4+Ml09YVtSKzIwPj4yXSxhW0ErMjQ+PjJdPWFbUisyND4+Ml0sYVtBKzI4Pj4yXT1hW1IrMjg+PjJdLGFbaz4+Ml09YVtSPj4yXSxhW2srND4+Ml09YVtSKzQ+PjJdLGFbays4Pj4y''@;'; + put 'put ''XT1hW1IrOD4+Ml0sYVtrKzEyPj4yXT1hW1IrMTI+PjJdLGFbaysxNj4+Ml09YVtSKzE2Pj4yXSxhW2srMjA+PjJdPWFbUisyMD4+Ml0sYVtrKzI0Pj4yXT1hW1IrMjQ+PjJdLGFbaysyOD4+Ml09YVtSKzI4Pj4yXSxhW0ErNDg+PjJdPTEsdzw8MjQ+PjI0P0pJKGYsbSwyLEEsMCk6WEkoZixt''@;'; + put 'put ''LDIsQSwwKSxfWyhSPWsrMjR8MCk+PjNdPStfW0ErNTYrKChtPSgwfGFbKGM9QSs1MnwwKT4+Ml0pLTF8MCk8PDUpKzI0Pj4zXSxfWyh3PWsrOHwwKT4+M109K19bQSs1NisobTw8NSkrOD4+M10sRz0rX1syNCsocD0wfGFbcCsxNj4+Ml0pPj4zXS0rX1soMHxhWzE5NisoMHxhW2wrMTY+PjJd''@;'; + put 'put ''KT4+Ml0pKyhhW3ArMjMyPj4yXTw8NikrMjQ+PjNdLGFbYj4+Ml09YVtrPj4yXSxhW2IrND4+Ml09YVtrKzQ+PjJdLGFbYis4Pj4yXT1hW2srOD4+Ml0sYVtiKzEyPj4yXT1hW2srMTI+PjJdLGFbYisxNj4+Ml09YVtrKzE2Pj4yXSxhW2IrMjA+PjJdPWFbaysyMD4+Ml0sYVtiKzI0Pj4yXT1h''@;'; + put 'put ''W2srMjQ+PjJdLGFbYisyOD4+Ml09YVtrKzI4Pj4yXSxYQShNLGIsMSxHKSxhW2s+PjJdPWFbTT4+Ml0sYVtrKzQ+PjJdPWFbTSs0Pj4yXSxhW2srOD4+Ml09YVtNKzg+PjJdLGFbaysxMj4+Ml09YVtNKzEyPj4yXSxhW2srMTY+PjJdPWFbTSsxNj4+Ml0sYVtrKzIwPj4yXT1hW00rMjA+PjJd''@;'; + put 'put ''LGFbaysyND4+Ml09YVtNKzI0Pj4yXSxhW2srMjg+PjJdPWFbTSsyOD4+Ml0sK19baz4+M108K19baysxNj4+M10mJitfW3c+PjNdPCtfW1I+PjNdJiYoYVtjPj4yXT0xKyhSPTB8YVtjPj4yXSksYVsoUj1BKzU2KyhSPDw1KXwwKT4+Ml09YVtrPj4yXSxhW1IrND4+Ml09YVtrKzQ+PjJdLGFb''@;'; + put 'put ''Uis4Pj4yXT1hW2srOD4+Ml0sYVtSKzEyPj4yXT1hW2srMTI+PjJdLGFbUisxNj4+Ml09YVtrKzE2Pj4yXSxhW1IrMjA+PjJdPWFbaysyMD4+Ml0sYVtSKzI0Pj4yXT1hW2srMjQ+PjJdLGFbUisyOD4+Ml09YVtrKzI4Pj4yXSksYWU9RH1mdW5jdGlvbiBXNShsLGMsZil7Zj0rZixfWyhsfD0w''@;'; + put 'put ''KT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiBfWShsLGMsZixwLG0sQSx3KXtsfD0wLGN8PTAsQXw9MCx3fD0wO3ZhciBMZSxSZSxWZSxxZSxvdCxTdCxrdCxsdCxFdCxadCxjdCxidCxhbixTbixIbix1cixIcixFcixmcixEcixKcixMcixsMCxWaSxPaSxSbyxiPTAsaz0wLE09MCxE''@;'; + put 'put ''PTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxIZT0wLG50PTAsV2U9MCxsbz0wO2ZvcihSbz1hZSxhZT1hZSsyODh8MCxmcj1SbysyNTZ8MCxFcj1SbysyNDB8MCxIcj1SbysyMjR8MCxsMD1SbysyODB8MCxWaT1SbysyNzJ8MCxPaT1SbyszMnwwLERyPVJvKzE2fDAsSnI9Um8s''@;'; + put 'put ''az1SbysyMDh8MCxNPVJvKzE5MnwwLEQ9MHxhWyhmfD0wKSsoKHB8PTApPDwyKT4+Ml0sTHI9MHx2cigobXw9MCk8PDIpLGI9MDshKCgwfGIpPj0oMHxtKSk7KWFbTHIrKGI8PDIpPj4yXT1hW2YrKGIrcDw8Mik+PjJdLGI9YisxfDA7Zm9yKHgxKExyLG0sNCw1OSksV2U9MTYrKDB8YVsoRD1E''@;'; + put 'put ''KzE2fDApPj4yXSl8MCxhW0VyPj4yXT1hWyhwPTE2KygwfGFbKGY9bCsxNnwwKT4+Ml0pfDApPj4yXSxhW0VyKzQ+PjJdPWFbcCs0Pj4yXSxhW0VyKzg+PjJdPWFbcCs4Pj4yXSxhW0VyKzEyPj4yXT1hW3ArMTI+PjJdLGFbZnI+PjJdPWFbV2U+PjJdLGFbZnIrND4+Ml09YVtXZSs0Pj4yXSxh''@;'; + put 'put ''W2ZyKzg+PjJdPWFbV2UrOD4+Ml0sYVtmcisxMj4+Ml09YVtXZSsxMj4+Ml0sQnUoayxFcixmciksYVtEcj4+Ml09YVtrPj4yXSxhW0RyKzQ+PjJdPWFbays0Pj4yXSxhW0RyKzg+PjJdPWFbays4Pj4yXSxhW0RyKzEyPj4yXT1hW2srMTI+PjJdLEQ9NTYrKDB8YVtEPj4yXSl8MCxhW0VyPj4y''@;'; + put 'put ''XT1hWyhwPTE2KygwfGFbKFdlPWMrMTZ8MCk+PjJdKXwwKT4+Ml0sYVtFcis0Pj4yXT1hW3ArND4+Ml0sYVtFcis4Pj4yXT1hW3ArOD4+Ml0sYVtFcisxMj4+Ml09YVtwKzEyPj4yXSxhW2ZyPj4yXT1hW0Q+PjJdLGFbZnIrND4+Ml09YVtEKzQ+PjJdLGFbZnIrOD4+Ml09YVtEKzg+PjJdLGFb''@;'; + put 'put ''ZnIrMTI+PjJdPWFbRCsxMj4+Ml0sQnUoTSxFcixmciksYVtKcj4+Ml09YVtNPj4yXSxhW0pyKzQ+PjJdPWFbTSs0Pj4yXSxhW0pyKzg+PjJdPWFbTSs4Pj4yXSxhW0pyKzEyPj4yXT1hW00rMTI+PjJdLE9lPS41KihiZT0oUmU9K19bSnI+PjNdLStfWzg4KygwfGFbV2U+PjJdKT4+M10pKyhM''@;'; + put 'put ''ZT0rX1s5NisoMHxhW2Y+PjJdKT4+M10rICtfW0RyPj4zXSkpLFdlPTB8YVtMcj4+Ml0sYVtPaT4+Ml09YVtEcj4+Ml0sYVtPaSs0Pj4yXT1hW0RyKzQ+PjJdLGFbT2krOD4+Ml09YVtEcis4Pj4yXSxhW09pKzEyPj4yXT1hW0RyKzEyPj4yXSxhWyhEPU9pKzE2fDApPj4yXT1hW0RyPj4yXSxh''@;'; + put 'put ''W0QrND4+Ml09YVtEcis0Pj4yXSxhW0QrOD4+Ml09YVtEcis4Pj4yXSxhW0QrMTI+PjJdPWFbRHIrMTI+PjJdLGFbKGY9T2krMzJ8MCk+PjJdPWFbSnI+PjJdLGFbZis0Pj4yXT1hW0pyKzQ+PjJdLGFbZis4Pj4yXT1hW0pyKzg+PjJdLGFbZisxMj4+Ml09YVtKcisxMj4+Ml0sYVsocD1PaSs0''@;'; + put 'put ''OHwwKT4+Ml09YVtKcj4+Ml0sYVtwKzQ+PjJdPWFbSnIrND4+Ml0sYVtwKzg+PjJdPWFbSnIrOD4+Ml0sYVtwKzEyPj4yXT1hW0pyKzEyPj4yXSxBdShXZSwwfGFbKDI9PSgzJmFbV2U+PjJdfDApP1dlOldlKy00OHwwKSs0MD4+Ml0sT2ksNCwxNzI5NiksX1s1NisoV2U9MHxhWzk2KygwfGFb''@;'; + put 'put ''V2UrMTY+PjJdKT4+Ml0pPj4zXT1PZSxfW1dlKzY0Pj4zXT0uNSooNisocGU9K19bV2UrMzI+PjNdKSkrKEs9K19bKFZlPURyKzh8MCk+PjNdKSxmZVtXZSs4MT4+MF09MSxxZT0uNSooYmUtKG50PStfW1dlKzI0Pj4zXSkpLG50PS41KihudCtiZSksV2U9T2krMjR8MCxvdD1PaSs0MHwwLFN0''@;'; + put 'put ''PU9pKzU2fDAsa3Q9T2krNjR8MCxsdD1Kcis4fDAsRXQ9T2krNzJ8MCxadD1PaSs4MHwwLGN0PU9pKzg4fDAsYnQ9T2krOTZ8MCxhbj1PaSsxMDR8MCxTbj1PaSsxMTJ8MCxIbj1PaSsxMjB8MCx1cj1sMCs0fDAsTT02PT0oMHxBKSYxLEc9MCxSPTAscGUrPUsrPTMsaz0xOzspe2lmKCgwfGsp''@;'; + put 'put ''Pj0oMHx3KSl7SGU9NjticmVha31pZihjPTB8YVtMcisoazw8Mik+PjJdLDEmaz8obD0wfGFbOTYrKDB8YVsoYj1jKzE2fDApPj4yXSk+PjJdLDE9PSgwfGspJiYoRz0uNSooKFI9K19bbCsyND4+M10pK2JlKSxSPS41KihiZS1SKSksSz1LKy02LStfW2wrMzI+PjNdLGFbT2k+PjJdPWFbRHI+''@;'; + put 'put ''PjJdLGFbT2krND4+Ml09YVtEcis0Pj4yXSxhW09pKzg+PjJdPWFbRHIrOD4+Ml0sYVtPaSsxMj4+Ml09YVtEcisxMj4+Ml0sX1tEPj4zXT0rX1tEcj4+M10sX1tXZT4+M109Z2U9SystNixfW2Y+PjNdPStfW0pyPj4zXSxfW290Pj4zXT1nZSxhW3A+PjJdPWFbSnI+PjJdLGFbcCs0Pj4yXT1h''@;'; + put 'put ''W0pyKzQ+PjJdLGFbcCs4Pj4yXT1hW0pyKzg+PjJdLGFbcCsxMj4+Ml09YVtKcisxMj4+Ml0sX1trdD4+M109RyxfW0V0Pj4zXT0rX1tsdD4+M10sX1tadD4+M109RyxfW2N0Pj4zXT1LLF9bYnQ+PjNdPVIsX1thbj4+M109SyxfW1NuPj4zXT1SLF9bSG4+PjNdPStfW1ZlPj4zXSxnZT0uNSor''@;'; + put 'put ''X1szMisoMHxhWzk2KygwfGFbYj4+Ml0pPj4yXSk+PjNdK0spOihhW09pPj4yXT1hW0RyPj4yXSxhW09pKzQ+PjJdPWFbRHIrND4+Ml0sYVtPaSs4Pj4yXT1hW0RyKzg+PjJdLGFbT2krMTI+PjJdPWFbRHIrMTI+PjJdLF9bRD4+M109cWUsX1tXZT4+M109K19bVmU+PjNdLF9bZj4+M109cWUs''@;'; + put 'put ''X1tvdD4+M109cGUsX1twPj4zXT1udCxfW1N0Pj4zXT1wZSxfW2t0Pj4zXT1udCxfW0V0Pj4zXT1nZT0rX1tsdD4+M10sX1tadD4+M109bG89K19bSnI+PjNdLF9bY3Q+PjNdPWdlLF9bYnQ+PjNdPWxvLF9bYW4+PjNdPWxvPXBlKzYsX1tTbj4+M109K19bRHI+PjNdLF9bSG4+PjNdPWxvLGdl''@;'; + put 'put ''PWxvKy41KihwZT0rX1szMisoMHxhWzk2KygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdKSxwZT1sbytwZSksYVt1cj4+Ml09OCxhW2wwPj4yXT1PaSxhW0hyPj4yXT1hW0RyPj4yXSxhW0hyKzQ+PjJdPWFbRHIrND4+Ml0sYVtIcis4Pj4yXT1hW0RyKzg+PjJdLGFbSHIrMTI+PjJdPWFbRHIrMTI+''@;'; + put 'put ''PjJdLGFbRXI+PjJdPWFbSnI+PjJdLGFbRXIrND4+Ml09YVtKcis0Pj4yXSxhW0VyKzg+PjJdPWFbSnIrOD4+Ml0sYVtFcisxMj4+Ml09YVtKcisxMj4+Ml0sYVtmcj4+Ml09YVtsMD4+Ml0sYVtmcis0Pj4yXT1hW2wwKzQ+PjJdLGI9MHxXSShIcixFcixmcixWaSxNKSwhKGw9MHxhW1ZpPj4y''@;'; + put 'put ''XSkpYnJlYWs7X1s1NisoQT0wfGFbOTYrKDB8YVtjKzE2Pj4yXSk+PjJdKT4+M109T2UsX1tBKzY0Pj4zXT1nZSxmZVtBKzgxPj4wXT0xLEF1KGMsMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdLGIsbCwxNzI5Niksaz1rKzF8MH1lOmRve2lmKDY9PSgwfEhlKSl7Zm9y''@;'; + put 'put ''KE9lPS4zMzMzMzMzMzMzMzMzMzMzKihSZSsyKkxlKSxiZT0uMzMzMzMzMzMzMzMzMzMzMyooMipSZStMZSk7ISgoMHxrKT49KDB8bSkpOyl7aWYoYz0wfGFbTHIrKGs8PDIpPj4yXSwxJms/KGdlPShIZT0xPT0oMHxrKSk/T2U6UixHPUhlP2JlOkcsUj1LKy02LGFbT2k+PjJdPWFbRHI+PjJd''@;'; + put 'put ''LGFbT2krND4+Ml09YVtEcis0Pj4yXSxhW09pKzg+PjJdPWFbRHIrOD4+Ml0sYVtPaSsxMj4+Ml09YVtEcisxMj4+Ml0sX1tEPj4zXT0rX1tEcj4+M10sX1tXZT4+M109Sys9LTEyLF9bZj4+M109K19bSnI+PjNdLF9bb3Q+PjNdPUssYVtwPj4yXT1hW0pyPj4yXSxhW3ArND4+Ml09YVtKcis0''@;'; + put 'put ''Pj4yXSxhW3ArOD4+Ml09YVtKcis4Pj4yXSxhW3ArMTI+PjJdPWFbSnIrMTI+PjJdLF9ba3Q+PjNdPUcsX1tFdD4+M109K19bbHQ+PjNdLF9bWnQ+PjNdPUcsX1tjdD4+M109UixfW2J0Pj4zXT1nZSxfW2FuPj4zXT1SLF9bU24+PjNdPWdlLEs9UixSPStfW1ZlPj4zXSk6KGFbT2k+PjJdPWFb''@;'; + put 'put ''RHI+PjJdLGFbT2krND4+Ml09YVtEcis0Pj4yXSxhW09pKzg+PjJdPWFbRHIrOD4+Ml0sYVtPaSsxMj4+Ml09YVtEcisxMj4+Ml0sX1tEPj4zXT1xZSxfW1dlPj4zXT0rX1tWZT4+M10sX1tmPj4zXT1xZSxfW290Pj4zXT1wZSxfW3A+PjNdPW50LF9bU3Q+PjNdPXBlLF9ba3Q+PjNdPW50LF9b''@;'; + put 'put ''RXQ+PjNdPWdlPStfW2x0Pj4zXSxfW1p0Pj4zXT1sbz0rX1tKcj4+M10sX1tjdD4+M109Z2UsX1tidD4+M109bG8sX1thbj4+M109bG89cGUrNixfW1NuPj4zXT0rX1tEcj4+M10scGU9bG8sZ2U9UixSPWxvKSxfW0huPj4zXT1SLGFbdXI+PjJdPTgsYVtsMD4+Ml09T2ksYVtIcj4+Ml09YVtE''@;'; + put 'put ''cj4+Ml0sYVtIcis0Pj4yXT1hW0RyKzQ+PjJdLGFbSHIrOD4+Ml09YVtEcis4Pj4yXSxhW0hyKzEyPj4yXT1hW0RyKzEyPj4yXSxhW0VyPj4yXT1hW0pyPj4yXSxhW0VyKzQ+PjJdPWFbSnIrND4+Ml0sYVtFcis4Pj4yXT1hW0pyKzg+PjJdLGFbRXIrMTI+PjJdPWFbSnIrMTI+PjJdLGFbZnI+''@;'; + put 'put ''PjJdPWFbbDA+PjJdLGFbZnIrND4+Ml09YVtsMCs0Pj4yXSxiPTB8V0koSHIsRXIsZnIsVmksTSksIShsPTB8YVtWaT4+Ml0pKWJyZWFrIGU7QXUoYywwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0sYixsLDE3Mjk2KSxrPWsrMXwwLFI9Z2V9RnQoTHIpfX13aGlsZSgw''@;'; + put 'put ''KTthZT1Sb31mdW5jdGlvbiBDWShsLGMpe2N8PTA7dmFyIG0sQSxiLGY9MCxwPTAsdz0wO2ZvcihtPWFlLGFlPWFlKzE2fDAscD1tLHc9MD09KDB8U2MobHw9MCkpLGZlW3A+PjBdPTB8ZmVbKHc9dz8xODU5MjoxODU4NCk+PjBdLGZlW3ArMT4+MF09MHxmZVt3KzE+PjBdLGZlW3ArMj4+MF09''@;'; + put 'put ''MHxmZVt3KzI+PjBdLGZlW3ArMz4+MF09MHxmZVt3KzM+PjBdLGgwKHA9MHxvYyg4NTQ5MyxwLDApLDEzNzQ4MywyODAsMSksc2kocCwwLDg3MTcxLDE5NTA1OSksdz0wfHZyKDk2KSxhWzgrKGY9MHxhW3ArMTY+PjJdKT4+Ml09dyxfW3c+PjNdPStfWyhiPTB8YVs4KyhBPTB8YVtsKzE2Pj4y''@;'; + put 'put ''XSk+PjJdKT4+M10sX1t3KzI0Pj4zXT0rX1tiKzI0Pj4zXSxmZVtmKzExNT4+MF09MHxmZVtBKzExNT4+MF0sYVtmKzExNj4+Ml09MSZhW0ErMTE2Pj4yXV4xLGFbZisyNDg+PjJdPWFbQSsyNDg+PjJdLGFbZisyNTI+PjJdPWFbQSsyNTI+PjJdLGY9MHxGcygwfGRpKGwpLDEsMCk7Zjspc2ko''@;'; + put 'put ''cCwxLDB8YVtmKzg+PjJdLDB8YVtmKzEyPj4yXSksZj0wfEZzKDB8ZGkobCksMSxmKTtmb3IoZj0wfEZzKDB8ZGkobCksMiwwKTtmOylzaShwLDIsMHxhW2YrOD4+Ml0sMHxhW2YrMTI+PjJdKSxmPTB8RnMoMHxkaShsKSwyLGYpO3JldHVybiAwfHNpKHAsMiwxMTE0NjQsMCl8fHNpKHAsMiwx''@;'; + put 'put ''MTE0NjQsMTk1MDU5KSwwfHNpKHAsMiwxMTE0NTUsMCl8fHNpKHAsMiwxMTE0NTUsMTk1MDU5KSxmdW5jdGlvbiBtMGUobCxjKXtsfD0wLGFbKGN8PTApPj4yXT1hWzQ3MTg5XSxhW2MrND4+Ml09YVs0NzE5M10sYVtjKzg+PjJdPWFbNDcxOTRdLGFbYysxMj4+Ml09YVs0NzE3NF0sYVtjKzE2''@;'; + put 'put ''Pj4yXT1hWzQ3MTc1XSxhW2MrMjA+PjJdPWFbNDcxODFdLGFbYysyND4+Ml09YVs0NzE4MF0sYVtjKzI4Pj4yXT1hWzQ3MTc5XSxhW2MrMzI+PjJdPWFbNDcyMDVdLGFbYyszNj4+Ml09YVs0NzE5N10sYVtjKzQwPj4yXT1hWzQ3MTgyXSxhW2MrNDQ+PjJdPWFbNDcxOTJdLGFbYys0OD4+Ml09''@;'; + put 'put ''YVs0NzIwMV0sYVtjKzUyPj4yXT1hWzQ3MjAwXSxhW2MrNTY+PjJdPWFbNDcxOTldLGFbYys2MD4+Ml09YVs0NzIwNF0sYVtjKzY0Pj4yXT1hWzQ3MTk4XSxhW2MrNjg+PjJdPWFbNDcxODNdLGFbYys3Mj4+Ml09YVs0NzE0NV0sYVtjKzc2Pj4yXT1hWzQ3MTQ2XSxhW2MrODA+PjJdPWFbNDcx''@;'; + put 'put ''NDddLGFbYys4ND4+Ml09YVs0NzE1N10sYVtjKzg4Pj4yXT1hWzQ3MTUwXSxhW2MrOTI+PjJdPWFbNDcxNTFdLGFbYys5Nj4+Ml09YVs0NzE1Ml0sYVtjKzEwMD4+Ml09YVs0NzE1NF0sYVtjKzEwND4+Ml09YVs0NzE1NV0sYVtjKzEwOD4+Ml09YVs0NzE1OF0sYVtjKzExMj4+Ml09YVs0NzE2''@;'; + put 'put ''MV0sYVtjKzExNj4+Ml09YVs0NzE1OV0sYVtjKzEyMD4+Ml09YVs0NzE2MF0sYVtjKzEyND4+Ml09YVs0NzE2M10sYVtjKzEyOD4+Ml09YVs0NzE2Ml0sYVtjKzEzMj4+Ml09YVs0NzE2NF0sYVtjKzEzNj4+Ml09YVs0NzE2NV0sYVtjKzE0MD4+Ml09YVs0NzE1Nl0sYVtjKzE0ND4+Ml09YVs0''@;'; + put 'put ''NzE2OF0sYVtjKzE1Mj4+Ml09YVs0NzEzOF0sYVtjKzE0OD4+Ml09YVs0NzE0MF0sYVs0NzE4OV09MCxhWzQ3MTkzXT0wfHNpKGwsMiw4NzQxMiwwKSxhWzQ3MTk0XT0wfHNpKGwsMiw4NzQyMSwwKSxjPTB8c2kobCwyLDEwMTU0MSwwKSxhWzQ3MTc0XT1jLGN8fChhWzQ3MTc0XT0wfHNpKGws''@;'; + put 'put ''MiwxMDE1NDEsMTk1MDU5KSksYVs0NzE3NV09MCxhWzQ3MTgxXT0wLGFbNDcxODBdPTB8c2kobCwyLDEwMTQzNywwKSxhWzQ3MTc5XT0wfHNpKGwsMiwxMDE0MjgsMCksYVs0NzIwNV09MHxzaShsLDIsMTAxNzE3LDApLGFbNDcxOTddPTAsYVs0NzE4Ml09MHxzaShsLDIsMTA4MjI0LDApLGFb''@;'; + put 'put ''NDcxOTJdPTB8c2kobCwyLDg1NDk4LDApLGFbNDcyMDFdPTAsYVs0NzIwMF09MHxzaShsLDIsMTAxNjE3LDApLGFbNDcxOTldPTB8c2kobCwyLDEwMTYwMywwKSxhWzQ3MjA0XT0wfHNpKGwsMiwxMDE3MDgsMCksYVs0NzE5OF09MCxhWzQ3MTgzXT0wLGFbNDcxNDVdPTB8c2kobCwxLDE0MTA0''@;'; + put 'put ''OCwwKSxhWzQ3MTQ2XT0wfHNpKGwsMSwxNDExMTYsMCksYVs0NzE0N109MHxzaShsLDEsMTA4MjMwLDApLGFbNDcxNTddPTAsYVs0NzE1MF09MHxzaShsLDEsMTAxNDI4LDApLGFbNDcxNTFdPTB8c2kobCwxLDEwMTQzNywwKSxhWzQ3MTUyXT0wLGFbNDcxNTRdPTB8c2kobCwxLDEwODIyNCww''@;'; + put 'put ''KSxhWzQ3MTU1XT0wLGFbNDcxNThdPTAsYVs0NzE2MV09MHxzaShsLDEsMTAxNDA5LDApLGFbNDcxNTldPTB8c2kobCwxLDE0MTA3NiwwKSxhWzQ3MTYwXT0wfHNpKGwsMSwxMDE0NzIsMCksYVs0NzE2M109MHxzaShsLDEsMTAxNDg0LDApLGFbNDcxNjJdPTB8c2kobCwxLDEwMTM0OCwwKSxh''@;'; + put 'put ''WzQ3MTY0XT0wfHNpKGwsMSwxMDE0ODksMCksYVs0NzE2NV09MHxzaShsLDEsODU1MTAsMCksYVs0NzE1Nl09MCxhWzQ3MTY4XT0wLGFbNDcxNDBdPTB8c2kobCwwLDEwMTQwOSwwKX0ocCxjKSxhZT1tLDB8cH1mdW5jdGlvbiBHQyhsLGMpe3ZhciBmLHAsbT0wO3JldHVybiBwPWFlLGFlPWFl''@;'; + put 'put ''KzE2fDAsZj1wLGgwKGw9MHxHcihsfD0wLDB8dGkoY3w9MCksMSksMTM3NDQ3LDMwNCwxKSxSNihjLGwpLDI9PSgwfCQ1KGMpKSYmKGM9MHxRbigzKygwfFVvKDB8YVthWzEwNCsoMHxhWyhtPWMrMTZ8MCk+PjJdKT4+Ml0+PjJdKSl8MCksYVtmPj4yXT1hW2FbMTA0KygwfGFbbT4+Ml0pPj4y''@;'; + put 'put ''XT4+Ml0sb28oYyw4NTQ4OCxmKSxrYyhsLDEwODIyNCxjKSksYWU9cCwwfGx9ZnVuY3Rpb24gWTUobCxjLGYscCl7cmV0dXJuIHB8PTAsaDAoZj0wfEthKGx8PTAsY3w9MCxmfD0wLDAsMSksMTM3NDYwLDE3NiwxKSxSNihwLGYpLDB8Zn1mdW5jdGlvbiBjbChsLGMsZixwKXtsfD0wLGN8PTAs''@;'; + put 'put ''Znw9MDt2YXIgbSxBLHcsYj0wO3c9YWUsYWU9YWUrMzJ8MCxBPXcrMTZ8MCxtPXcsMHwocHw9MCkmJihiPStfW2M+PjNdLF9bYz4+M109K19bKHA9Yys4fDApPj4zXSxfW3A+PjNdPS1iKSxhW20+PjJdPWFbYz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJdLGFb''@;'; + put 'put ''bSsxMj4+Ml09YVtjKzEyPj4yXSxhW0E+PjJdPWFbZj4+Ml0sYVtBKzQ+PjJdPWFbZis0Pj4yXSxhW0ErOD4+Ml09YVtmKzg+PjJdLGFbQSsxMj4+Ml09YVtmKzEyPj4yXSxCdShsLG0sQSksYWU9d31mdW5jdGlvbiBXQyhsLGMpe2x8PTAsYVs0NzE4OV09YVsoY3w9MCk+PjJdLGFbNDcxOTNd''@;'; + put 'put ''PWFbYys0Pj4yXSxhWzQ3MTk0XT1hW2MrOD4+Ml0sYVs0NzE3NF09YVtjKzEyPj4yXSxhWzQ3MTc1XT1hW2MrMTY+PjJdLGFbNDcxODFdPWFbYysyMD4+Ml0sYVs0NzE4MF09YVtjKzI0Pj4yXSxhWzQ3MTc5XT1hW2MrMjg+PjJdLGFbNDcyMDVdPWFbYyszMj4+Ml0sYVs0NzE5N109YVtjKzM2''@;'; + put 'put ''Pj4yXSxhWzQ3MTgyXT1hW2MrNDA+PjJdLGFbNDcxOTJdPWFbYys0ND4+Ml0sYVs0NzIwMV09YVtjKzQ4Pj4yXSxhWzQ3MjAwXT1hW2MrNTI+PjJdLGFbNDcxOTldPWFbYys1Nj4+Ml0sYVs0NzIwNF09YVtjKzYwPj4yXSxhWzQ3MTk4XT1hW2MrNjQ+PjJdLGFbNDcxODNdPWFbYys2OD4+Ml0s''@;'; + put 'put ''YVs0NzE0NV09YVtjKzcyPj4yXSxhWzQ3MTQ2XT1hW2MrNzY+PjJdLGFbNDcxNDddPWFbYys4MD4+Ml0sYVs0NzE1N109YVtjKzg0Pj4yXSxhWzQ3MTUwXT1hW2MrODg+PjJdLGFbNDcxNTFdPWFbYys5Mj4+Ml0sYVs0NzE1Ml09YVtjKzk2Pj4yXSxhWzQ3MTU0XT1hW2MrMTAwPj4yXSxhWzQ3''@;'; + put 'put ''MTU1XT1hW2MrMTA0Pj4yXSxhWzQ3MTU4XT1hW2MrMTA4Pj4yXSxhWzQ3MTYxXT1hW2MrMTEyPj4yXSxhWzQ3MTU5XT1hW2MrMTE2Pj4yXSxhWzQ3MTYwXT1hW2MrMTIwPj4yXSxhWzQ3MTYzXT1hW2MrMTI0Pj4yXSxhWzQ3MTYyXT1hW2MrMTI4Pj4yXSxhWzQ3MTY0XT1hW2MrMTMyPj4yXSxh''@;'; + put 'put ''WzQ3MTY1XT1hW2MrMTM2Pj4yXSxhWzQ3MTU2XT1hW2MrMTQwPj4yXSxhWzQ3MTY4XT1hW2MrMTQ0Pj4yXSxhWzQ3MTQwXT1hW2MrMTQ4Pj4yXSxhWzQ3MTM4XT1hW2MrMTUyPj4yXSxGdChjKSxINShsKSxDMShsKX1mdW5jdGlvbiBVNShsLGMpe3ZhciBmLHAsbSxBLHc7cmV0dXJuIGY9YWUs''@;'; + put 'put ''YWU9YWUrMTZ8MCxwPWYrOHwwLEE9MTcyKygwfGFbMTYrKGN8PTApPj4yXSl8MCxhWyhtPWYpPj4yXT1hWyh3PTE4MCsoMHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSxhW20rND4+Ml09YVt3KzQ+PjJdLGFbcD4+Ml09YVtBPj4yXSxhW3ArND4+Ml09YVtBKzQ+PjJdLGM9MHxWRihsLG0sYyxw''@;'; + put 'put ''KSxhZT1mLDB8Y31mdW5jdGlvbiBWRihsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MDttPTB8YVs0KyhjfD0wKT4+Ml07ZTpkb3tpZigoMHxtKT4wJiYoQT0wfGFbcCs0Pj4yXSwoMHxBKT4wKSlpZigoMHxtKTwoMHxBKSlmb3IobT0wfGFbYz4+Ml0scD0wOzspe2lmKCEoYz0w''@;'; + put 'put ''fGFbbSsocDw8Mik+PjJdKSl7Yz0wO2JyZWFrIGV9aWYoKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSk9PSgwfGYpKWJyZWFrO3A9cCsxfDB9ZWxzZSBmb3IobT0wfGFbcD4+Ml0scD0wOzspe2lmKCEoYz0wfGFbbSsocDw8Mik+PjJdKSl7Yz0wO2JyZWFrIGV9aWYo''@;'; + put 'put ''KDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKT09KDB8bCkpYnJlYWs7cD1wKzF8MH1lbHNlIGM9MH13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIGtZKGwsYyl7dmFyIGYscCxtLEEsdztyZXR1cm4gZj1hZSxhZT1hZSsxNnwwLHA9Zis4fDAsQT0xOTYrKDB8YVsx''@;'; + put 'put ''NisoY3w9MCk+PjJdKXwwLGFbKG09Zik+PjJdPWFbKHc9MTg4KygwfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdLGFbbSs0Pj4yXT1hW3crND4+Ml0sYVtwPj4yXT1hW0E+PjJdLGFbcCs0Pj4yXT1hW0ErND4+Ml0sYz0wfFZGKGwsbSxjLHApLGFlPWYsMHxjfWZ1bmN0aW9uIFlDKGwpe3ZhciBj''@;'; + put 'put ''PTAsZj0wLHA9MCxtPTA7cmV0dXJuIHA9NDgrKGx8PTApfDAsYz0oYz0wfGFbMTgwKyhmPTB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6cCkrNDA+PjJdKT4+Ml0pPj4yXSk/MHxWMChjLDgrKGFbZisxODQ+PjJdPDwyKXwwKTowfFFuKDgrKGFbZisxODQ+PjJdPDwyKXwwKSxhWzE4''@;'; + put 'put ''MCsoMHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdPWMsZj0wfGFbMTgwKyhtPTB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6cCkrNDA+PjJdKT4+Ml0pPj4yXSxhWyhtPW0rMTg0fDApPj4yXT0xKyhjPTB8YVttPj4yXSksYVtmKyhjPDwy''@;'; + put 'put ''KT4+Ml09bCxhWygwfGFbMTgwKyhwPTB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6cCkrNDA+PjJdKT4+Ml0pPj4yXSkrKGFbcCsxODQ+PjJdPDwyKT4+Ml09MCxwPWwrLTQ4fDAsYz0oZj0wfGFbMTcyKyhjPTB8YVsxNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6cCkrNDA+PjJd''@;'; + put 'put ''KT4+Ml0pPj4yXSk/MHxWMChmLDgrKGFbYysxNzY+PjJdPDwyKXwwKTowfFFuKDgrKGFbYysxNzY+PjJdPDwyKXwwKSxhWzE3MisoMHxhWzE2KygwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdPWMsZj0wfGFbMTcyKyhjPTB8YVsxNisoMHxhWygyPT0oMyZhW2w+''@;'; + put 'put ''PjJdfDApP2w6cCkrNDA+PjJdKT4+Ml0pPj4yXSxhWyhjPWMrMTc2fDApPj4yXT0xKyhtPTB8YVtjPj4yXSksYVtmKyhtPDwyKT4+Ml09bCxhWygwfGFbMTcyKyhtPTB8YVsxNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6cCkrNDA+PjJdKT4+Ml0pPj4yXSkrKGFbbSsxNzY+PjJdPDwyKT4+''@;'; + put 'put ''Ml09MCwwfGx9ZnVuY3Rpb24gc3AobCxjKXtjfD0wO3ZhciBwLG0sZj0wLEE9MCx3PTAsYj0wO2ZvcihtPTB8YVsocD00KyhsfD0wKXwwKT4+Ml0sZj0wOyEoKDB8Zik+PSgwfG0pKTspe2lmKCgwfGFbKHc9KEE9MHxhW2w+PjJdKSsoZjw8Mil8MCk+PjJdKT09KDB8Yykpe2I9NDticmVha31m''@;'; + put 'put ''PWYrMXwwfTQ9PSgwfGIpJiYoYVtwPj4yXT1iPW0rLTF8MCxhW3c+PjJdPWFbQSsoYjw8Mik+PjJdLGFbKDB8YVtsPj4yXSkrKGI8PDIpPj4yXT0wKX1mdW5jdGlvbiBVMyhsKXtpZihsfD0wKXJldHVybiBzcCgxODArKDB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0''@;'; + put 'put ''MD4+Ml0pPj4yXSl8MCxsKSx2b2lkIHNwKDE3MisoMHxhWzE2KygwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSl8MCxsKTtQcig4NTU1MSw4NTU2MSwxMTcsODU1NzApfWZ1bmN0aW9uIFhkKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7cD00OCsobHw9MCl8MCxj''@;'; + put 'put ''PShjPTB8YVsyMDQrKGY9MHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdKT8wfFYwKGMsOCsoYVtmKzIwOD4+Ml08PDIpfDApOjB8UW4oOCsoYVtmKzIwOD4+Ml08PDIpfDApLGFbMjA0KygwfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOnAp''@;'; + put 'put ''KzQwPj4yXSk+PjJdKT4+Ml09YyxjPTB8YVsyMDQrKG09MHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdLGFbKG09bSsyMDh8MCk+PjJdPTErKGY9MHxhW20+PjJdKSxhW2MrKGY8PDIpPj4yXT1sLGFbKDB8YVsyMDQrKHA9MHxhWzE2KygwfGFbKDM9''@;'; + put 'put ''PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdKSsoYVtwKzIwOD4+Ml08PDIpPj4yXT0wfWZ1bmN0aW9uIFNZKGwpeyFmdW5jdGlvbiBqRihsLGMpe2x8PTA7dmFyIHAsdyxmPTAsbT0wLEE9MDtmb3IocD0wfGFbKHc9NCsoY3w9MCl8MCk+PjJdLG09MHxhW2M+PjJdLGY9MDs7''@;'; + put 'put ''KXtpZigoMHxmKT49KDB8cCkpe0E9NDticmVha31pZigoMHxhW20rKGY8PDIpPj4yXSk9PSgwfGwpKWJyZWFrO2Y9ZisxfDB9ND09KDB8QSkmJihmPW0/MHxWMChtLDgrKHA8PDIpfDApOjB8UW4oOCsocDw8Mil8MCksYVtjPj4yXT1mLGFbdz4+Ml09QT0xKyhtPTB8YVt3Pj4yXSl8MCxhW2Yr''@;'; + put 'put ''KG08PDIpPj4yXT1sLGFbKDB8YVtjPj4yXSkrKEE8PDIpPj4yXT0wKX0obHw9MCwyMDQrKDB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSl8MCl9ZnVuY3Rpb24gS0EobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciB3LE0sRCxwPTAsbT0wLEE9MCxi''@;'; + put 'put ''PTAsaz0wO2lmKEQ9MHx2cig5NiksYVsocD1EKzQ4fDApPj4yXT0zfGFbcD4+Ml0sYVtEPj4yXT0tNCZhW0Q+PjJdfDIsbT0wfHZyKDE3NiksYVsoTT1EKzE2fDApPj4yXT1tLGFbKDM9PSgzJmFbRD4+Ml18MCk/RDpwKSs0MD4+Ml09bCx3PUQrLTQ4fDAsYVsoMj09KDMmYVtEPj4yXXwwKT9E''@;'; + put 'put ''OncpKzQwPj4yXT1jLGZlW20rMTEyPj4wXT0xLGYpe2lmKGFbRD4+Ml09MTUmYVtEPj4yXXwtMTYmYVtmPj4yXSxhW3A+PjJdPTE1JmFbcD4+Ml18LTE2JmFbZj4+Ml0scnRbbSsxNjg+PjFdPTB8cnRbMTY4KyhBPTB8YVsoaz1mKzE2fDApPj4yXSk+PjFdLHJ0W20rMTU0Pj4xXT0wfHJ0W0Er''@;'; + put 'put ''MTU0Pj4xXSxhW20rMTU2Pj4yXT1hW0ErMTU2Pj4yXSxydFttKzE3MD4+MV09MHxydFtBKzE3MD4+MV0sYj1mKzQ4fDAsKDB8KGw9MHxhWygzPT0oMyZhW0Q+PjJdfDApP0Q6cCkrNDA+PjJdKSkhPSgwfGFbKDM9PSgwfChjPTMmYVtmPj4yXSkpP2Y6YikrNDA+PjJdKSl7aWYocD1mKy00OHww''@;'; + put 'put ''LCgwfGwpPT0oMHxhWygyPT0oMHxjKT9mOnApKzQwPj4yXSkpe2w9QSs1NnwwLGM9NDArKG09bSsxNnwwKXwwO2Rve2FbbT4+Ml09YVtsPj4yXSxtPW0rNHwwLGw9bCs0fDB9d2hpbGUoKDB8bSk8KDB8YykpfX1lbHNle2w9QSsxNnwwLGM9NDArKG09bSsxNnwwKXwwO2Rve2FbbT4+Ml09YVts''@;'; + put 'put ''Pj4yXSxtPW0rNHwwLGw9bCs0fDB9d2hpbGUoKDB8bSk8KDB8YykpO3A9ZistNDh8MH1pZigoMHwobD0wfGFbKDI9PSgzJmFbRD4+Ml18MCk/RDp3KSs0MD4+Ml0pKSE9KDB8YVsoMj09KDB8KGM9MyZhW2Y+PjJdKSk/ZjpwKSs0MD4+Ml0pKXtpZigoMHxsKT09KDB8YVsoMz09KDB8Yyk/Zjpi''@;'; + put 'put ''KSs0MD4+Ml0pKXtsPTE2KygwfGFbaz4+Ml0pfDAsYz00MCsobT01NisoMHxhW00+PjJdKXwwKXwwO2Rve2FbbT4+Ml09YVtsPj4yXSxtPW0rNHwwLGw9bCs0fDB9d2hpbGUoKDB8bSk8KDB8YykpfX1lbHNle2w9NTYrKDB8YVtrPj4yXSl8MCxjPTQwKyhtPTU2KygwfGFbTT4+Ml0pfDApfDA7''@;'; + put 'put ''ZG97YVttPj4yXT1hW2w+PjJdLG09bSs0fDAsbD1sKzR8MH13aGlsZSgoMHxtKTwoMHxjKSl9MHxhWyhsPTE3MisoMHxhW2s+PjJdKXwwKT4+Ml18fChhW2w+PjJdPUQpLGFbMTE2KygwfGFbTT4+Ml0pPj4yXT1mfWVsc2UgYVttKzE1Nj4+Ml09MSxydFttKzE1ND4+MV09MSxydFttKzE2OD4+''@;'; + put 'put ''MV09MSxydFttKzE3MD4+MV09MTtyZXR1cm4gMHxEfWZ1bmN0aW9uIEpjKGwsYyxmKXtyZXR1cm4gMHxZQygwfEtBKGx8PTAsY3w9MCxmfD0wKSl9ZnVuY3Rpb24gckkobCxjKXt2YXIgZixwLG07YVsxNjQrKGY9MHxhWzE2KyhjfD0wKT4+Ml0pPj4yXT1tPTB8YVsobD0xOTIrKDB8YVsxNiso''@;'; + put 'put ''bHw9MCk+PjJdKXwwKT4+Ml0scD1tLDB8bSYmKGFbMTY4KygwfGFbcCsxNj4+Ml0pPj4yXT1jKSxhW2w+PjJdPWMsYVtmKzE2OD4+Ml09MCwoMHxwKT09KDB8YykmJlByKDg1NTg3LDg1NTYxLDIxNSw4NTYwMyl9ZnVuY3Rpb24gaUkobCxjKXt2YXIgZixwOzB8ZnVuY3Rpb24geTBlKGwsYyl7''@;'; + put 'put ''Zm9yKGN8PTAsbD0xOTIrKDB8YVsxNisobHw9MCk+PjJdKXwwOyEoMD09KDB8KGw9MHxhW2w+PjJdKSl8KDB8bCk9PSgwfGMpKTspbD0xNjQrKDB8YVtsKzE2Pj4yXSl8MDtyZXR1cm4gMHxsfShsfD0wLGN8PTApfHxQcig4NTY1Miw4NTU2MSwyMzEsODU2NzMpLHA9Zj0wfGFbMTY0KyhjPTB8''@;'; + put 'put ''YVtjKzE2Pj4yXSk+PjJdLGM9YysxNjh8MCwwfGYmJihhWzE2OCsoMHxhW2YrMTY+PjJdKT4+Ml09YVtjPj4yXSksKGM9MHxhW2M+PjJdKT9hWzE2NCsoMHxhW2MrMTY+PjJdKT4+Ml09cDphWzE5MisoMHxhW2wrMTY+PjJdKT4+Ml09cH1mdW5jdGlvbiBVaChsKXtsfD0wO3ZhciBjLGYscD0w''@;'; + put 'put ''LG09MDtyZXR1cm4gYz0wfHZyKDY0KSxhW2M+PjJdPS00JmFbYz4+Ml18MSxhWyhmPWMrMTZ8MCk+PjJdPTB8dnIoMzA0KSxhW2MrMjQ+PjJdPTB8ZGkobCksZmVbMTU2KyhtPTB8YVtmPj4yXSk+PjBdPTEsX1ttKzk2Pj4zXT0xLF9bbSs4OD4+M109MSxfW20rODA+PjNdPTEsYVttKzIxNj4+''@;'; + put 'put ''Ml09MSxhW20rMTc2Pj4yXT0wLG09MHx2cigyMCksYVsxNzIrKHA9MHxhW2Y+PjJdKT4+Ml09bSxhW3ArMTg0Pj4yXT0wLHA9MHx2cigyMCksYVsxODArKDB8YVtmPj4yXSk+PjJdPXAsckkobCxjKSxhWyhsPTIzMisoMHxhW2wrMTY+PjJdKXwwKT4+Ml09MSsoMHxhW2w+PjJdKSwwfGN9ZnVu''@;'; + put 'put ''Y3Rpb24gb0kobCxjKXtsfD0wO3ZhciBmPTAscD0wLG09MCxBPTA7bT00OCsoY3w9MCl8MCxmPShwPTB8YVsxODgrKGY9MHxhWzE2KygwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzptKSs0MD4+Ml0pPj4yXSk+PjJdKT8wfFYwKHAsOCsoYVtmKzE5Mj4+Ml08PDIpfDApOjB8UW4oOCsoYVtmKzE5''@;'; + put 'put ''Mj4+Ml08PDIpfDApLGFbMTg4KygwfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml09ZixwPTB8YVsxODgrKEE9MHxhWzE2KygwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzptKSs0MD4+Ml0pPj4yXSk+PjJdLGFbKEE9QSsxOTJ8MCk+PjJdPTErKGY9MHxh''@;'; + put 'put ''W0E+PjJdKSxhW3ArKGY8PDIpPj4yXT1jLGFbKDB8YVsxODgrKG09MHxhWzE2KygwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzptKSs0MD4+Ml0pPj4yXSk+PjJdKSsoYVttKzE5Mj4+Ml08PDIpPj4yXT0wLG09YystNDh8MCxmPShwPTB8YVsxOTYrKGY9MHxhWzE2KygwfGFbKDI9PSgzJmFbYz4+''@;'; + put 'put ''Ml18MCk/YzptKSs0MD4+Ml0pPj4yXSk+PjJdKT8wfFYwKHAsOCsoYVtmKzIwMD4+Ml08PDIpfDApOjB8UW4oOCsoYVtmKzIwMD4+Ml08PDIpfDApLGFbMTk2KygwfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml09ZixwPTB8YVsxOTYrKGY9MHxhWzE2''@;'; + put 'put ''KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzptKSs0MD4+Ml0pPj4yXSk+PjJdLGFbKGY9ZisyMDB8MCk+PjJdPTErKEE9MHxhW2Y+PjJdKSxhW3ArKEE8PDIpPj4yXT1jLGFbKDB8YVsxOTYrKEE9MHxhWzE2KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzptKSs0MD4+Ml0pPj4yXSk+PjJdKSso''@;'; + put 'put ''YVtBKzIwMD4+Ml08PDIpPj4yXT0wLGZlWzI0MCsoMHxhW2wrMTY+PjJdKT4+MF09MSxmZVsyNDArKDB8YVsxNisoMHxBYShsKSk+PjJdKT4+MF09MX1mdW5jdGlvbiBaRihsKXt2YXIgYyxmPTA7KGx8PTApfHxQcig4NTU1MSw4NTU2MSwyNjksODU2OTApLDB8KGM9MHxhWzExNisoMHxhW2wr''@;'; + put 'put ''MTY+PjJdKT4+Ml0pJiYoMHxhWyhmPTE3MisoMHxhW2MrMTY+PjJdKXwwKT4+Ml0pPT0oMHxsKSYmKGFbZj4+Ml09MCksc3AoMTg4KygwfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pfDAsbCksc3AoMTk2KygwfGFbMTYrKDB8YVsoMj09KDMmYVts''@;'; + put 'put ''Pj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKXwwLGwpfWZ1bmN0aW9uIHo2KGwsYyl7dmFyIGYscCxtO2N8PTAsbT1hZSxhZT1hZSsxNnwwLHA9MHxhWyhmPTE3MisoMHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXTtkb3tpZigoMHxwKSE9KDB8Yykpe2lmKCFwKXthW2Y+PjJdPWMsdzBl''@;'; + put 'put ''KGwsYyk7YnJlYWt9UHIoODc1OTMsODU1NjEsMzQwLDg1NzI4KX1lbHNlICRyKDAsODU3MDcsbSl9d2hpbGUoMCk7YWU9bX1mdW5jdGlvbiB3MGUobCxjKXt2YXIgcCxtLGY9MCxBPTA7Zm9yKCgwfGhyWyhmPTE3MCsoMHxhWzE2KyhjfD0wKT4+Ml0pfDApPj4xXSk8KDY1NTM1JihsPTB8cnRb''@;'; + put 'put ''MTcwKyhBPTB8YVsxNisobHw9MCk+PjJdKT4+MV0pKSYmKHJ0W2Y+PjFdPWwpLHA9QSsxNjh8MCxtPUErMTU0fDAsZj1BKzE1NnwwLGw9YztsOylydFsoQT0xNjgrKGM9MHxhW2wrMTY+PjJdKXwwKT4+MV09KDB8aHJbQT4+MV0pKygwfGhyW3A+PjFdKSxydFsoQT1jKzE1NHwwKT4+MV09KDB8''@;'; + put 'put ''aHJbQT4+MV0pKygwfGhyW20+PjFdKSxhWyhBPWMrMTU2fDApPj4yXT0oMHxhW0E+PjJdKSsoMHxhW2Y+PjJdKSxsPTB8YVtjKzE3Mj4+Ml19ZnVuY3Rpb24gTVkobCl7dmFyIGYsYz0wLHA9MCxtPTA7Yz0wfGFbMTcyKygwfGFbKGY9MTYrKGx8PTApfDApPj4yXSk+PjJdO2U6Zm9yKDtjOylm''@;'; + put 'put ''b3IoYUkoYyxsKSxtPTB8YVtjKzE2Pj4yXSxwPTB8YVttKzE3Mj4+Ml0sMHxydFttKzE2OD4+MV18fGxJKGMpOzspe2lmKDEhPSgwfGZlWzExMisoMHxhW2MrMTY+PjJdKT4+MF0pKXtjPXA7Y29udGludWUgZX1pZigxIT0oMHxmZVsxNTYrKGM9MHxhWzE2KygwfGFbKDI9PSgzJmFbYz4+Ml18''@;'; + put 'put ''MCk/YzpjKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjBdKSl7Yz1wO2NvbnRpbnVlIGV9aWYoMSE9KDB8YVtjKzE4ND4+Ml0pKXtjPXA7Y29udGludWUgZX1hSShjPTB8YVthW2MrMTgwPj4yXT4+Ml0sbCl9YVsxNzIrKDB8YVtmPj4yXSk+PjJdPTB9ZnVuY3Rpb24gYUkobCxjKXt2YXIgZjtmPTB8''@;'; + put 'put ''YVsxNisoY3w9MCk+PjJdLHJ0WyhsPTE2OCsoYz0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjFdPSgwfGhyW2w+PjFdKS0oMHxocltmKzE2OD4+MV0pLHJ0WyhsPWMrMTU0fDApPj4xXT0oMHxocltsPj4xXSktKDB8aHJbZisxNTQ+PjFdKSxhWyhjPWMrMTU2fDApPj4yXT0oMHxhW2M+PjJdKS0o''@;'; + put 'put ''MHxhW2YrMTU2Pj4yXSl9ZnVuY3Rpb24gbEkobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7Zm9yKChsfD0wKXx8UHIoODU1NTEsODU1NjEsMTI4LDg1NzQxKSxBPWwrNDh8MCxmPTA7bT0wfGFbKDB8YVsocD0xODArKDB8YVsxNisoMHxhWygzPT0oMyYoYz0wfGFbbD4+Ml0pfDApP2w6QSkr''@;'; + put 'put ''NDA+PjJdKT4+Ml0pfDApPj4yXSkrKGY8PDIpPj4yXTspKDB8bSk9PSgwfGwpJiZzcChwLGwpLGY9ZisxfDA7Zm9yKEE9bCstNDh8MCxtPTA7cD0wfGFbKDB8YVsoZj0xNzIrKDB8YVsxNisoMHxhWygyPT0oMyZjfDApP2w6QSkrNDA+PjJdKT4+Ml0pfDApPj4yXSkrKG08PDIpPj4yXTspKDB8''@;'; + put 'put ''cCk9PSgwfGwpJiYoc3AoZixsKSxjPTB8YVtsPj4yXSksbT1tKzF8MH1mdW5jdGlvbiBnNyhsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Zj0wLHc9MHxEdChsfD0wKTtlOmZvcig7dzspZm9yKGI9MHx6dChsLHcpLGs9dysxNnwwLEE9Yjs7KXtpZighQSl7''@;'; + put 'put ''dz1iO2NvbnRpbnVlIGV9KDB8YVsxNisobT0wfGFbQSsxNj4+Ml0pPj4yXSk+KDB8YVsxMisocD0wfGFbaz4+Ml0pPj4yXSk/KDB8YVtwKzE2Pj4yXSk8PSgwfGFbbSsxMj4+Ml0pJiZLYShsLHcsQSwwLDEpOihLYShsLEEsdywwLDEpLGY9MSksQT0wfHp0KGwsQSl9ZG97aWYoMHxmKXt3PTB8''@;'; + put 'put ''ZHMobCw4NTc2NiwxKSxrPTB8dnIoKDB8R28obCkpPDwyKSxiPTB8dnIoKDB8R28obCkpPDwyKSxtPWMrNHwwLHA9MHxEdChsKTtlOmZvcig7Oyl7aWYoIXApe2Y9MjM7YnJlYWt9aWYoMD09KDB8YVs4KygwfGFbcCsxNj4+Ml0pPj4yXSkmJjB8amQobCxwLDEsMSkpe3Q6ZG97aWYoMHxVQyhs''@;'; + put 'put ''LHAsdyxiKSl7aWYoQT0wfEdvKHcpLCgwfG45ZShsLHcsaykpIT0oMHxBKSl7Zj0xNzticmVhayBlfWZvcih4MShiLEEsNCw2MCksZj0wOzspe2lmKCgwfGYpPj0oMHxBKSlicmVhayB0O2FbMjM2KygwfGFbMTYrKE09MHxhW2srKGY8PDIpPj4yXSk+PjJdKT4+Ml09YVsoYz1iKyhmPDwyKXww''@;'; + put 'put ''KT4+Ml0sYVsoMHxhW20+PjJdKSsoYVtjPj4yXTw8Mik+PjJdPU0sZj1mKzF8MH19fXdoaWxlKDApO0MwZSh3KX1wPTB8enQobCxwKX1pZigxNz09KDB8ZikpUHIoODU3NzEsODU3ODEsMjY1LDg1NzkyKTtlbHNlIGlmKDIzPT0oMHxmKSl7RnQoayk7YnJlYWt9fX13aGlsZSgwKX1mdW5jdGlv''@;'; + put 'put ''biBVQyhsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDtmb3IoYVs4Kyh3PTB8YVsxNisoY3w9MCk+PjJdKT4+Ml09MSx3PTB8YVsyMzYrKDB8YVsxNisoMHxhW3crMjA+PjJdKT4+Ml0pPj4yXSxhW3ArKCgwfEdvKGYpKTw8Mik+PjJdPXcsV24oZixjLDEp''@;'; + put 'put ''LHc9MHx3MChsLGMpLG09MDt3OyltPW0rKCgwfGFbMjM2KygwfGFbMTYrKDB8YVsyMCsoYj0wfGFbMTYrKEE9MHxhWygyPT0oMHwoaz0zJmFbdz4+Ml0pKT93OncrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPj4yXSk+PjJdKT4oMHxhWzIzNisoMHxhWzE2KygwfGFbMjArKDB8YVsxNisoMHxh''@;'; + put 'put ''WygzPT0oMHxrKT93OncrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+PjJdKT4+Ml0pJjEpfDAsMHxhW2IrOD4+Ml18fChtPSgwfFVDKGwsQSxmLHApKSttfDApLHc9MHxTMChsLHcpO2Zvcih3PTB8TWYobCxjKTt3OyltPW0rKCgwfGFbMjM2KygwfGFbMTYrKDB8YVsyMCsoMHxhWzE2KygwfGFb''@;'; + put 'put ''KDI9PSgwfChiPTMmYVt3Pj4yXSkpP3c6dystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+PjJdKT4+Ml0pPigwfGFbMjM2KygwfGFbMTYrKDB8YVsyMCsoaz0wfGFbMTYrKEE9MHxhWygzPT0oMHxiKT93OncrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+PjJdKT4+Ml0pJjEpfDAsMHxhW2srOD4+''@;'; + put 'put ''Ml18fChtPSgwfFVDKGwsQSxmLHApKSttfDApLHc9MHxIMyhsLHcpO3JldHVybiAwfG19ZnVuY3Rpb24gbjllKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7Zm9yKG09MDtwPTB8azBlKGwsYyk7KXtmb3IoYVtmKyhtPDwyKT4+Ml09YVsyMCsoMHxhW3ArMTY+PjJdKT4+''@;'; + put 'put ''Ml0scXIoYyxwKSxwPTB8dzAobCxwKTtwOylBPTB8UzAobCxwKSxxbShsLHApLHA9QTttPW0rMXwwfXJldHVybiAwfG19ZnVuY3Rpb24gQzBlKGwpe3ZhciBjPTAsZj0wO2ZvcihjPTB8RHQobHw9MCk7YzspZj0wfHp0KGwsYykscXIobCxjKSxjPWZ9ZnVuY3Rpb24gazBlKGwsYyl7bHw9MDt2''@;'; + put 'put ''YXIgZj0wO2ZvcihmPTB8RHQoY3w9MCk7Oyl7aWYoIWYpe2Y9MDticmVha31pZighKDB8amQobCxmLDEsMCkpKWJyZWFrO2Y9MHx6dChjLGYpfXJldHVybiAwfGZ9ZnVuY3Rpb24gJEEobCxjKXtjfD0wO3ZhciB3LGY9MCxwPTAsbT0wLEE9MDtmb3IoZnVuY3Rpb24gUUMobCl7bHw9MDt2YXIg''@;'; + put 'put ''Yz0wO2ZlWzE5Mzc2OV09MCxhWzQ2NzQxXT1sLGM9NCsoKDB8VjMoMHxBYShsKSkpPDwyKXwwLGFbNDY3NDBdPTB8dnIoYyksYVs0NjczOV09MHx2cihjKSxmdW5jdGlvbiBIWShsKXtsfD0wO3ZhciBjPTAsZj0wO2FbNDY3NDRdPTgsYVs0NzEzNl09MjQsX1syMzIxNV09Ljk5NSwwfChsPTB8''@;'; + put 'put ''TGkobCw4NjY4NSkpJiYoYz0ra3AobCkpPjAmJihhWzQ2NzQ0XT1+figoZj1jKisoMHxhWzQ2NzQ0XSkpPjE/ZjoxKSxhWzQ3MTM2XT1+figoYyo9KygwfGFbNDcxMzZdKSk+MT9jOjEpKX0obCksMTYmcnRbMTM2KygwfGFbKGM9bCsxNnwwKT4+Ml0pPj4xXSYmZnVuY3Rpb24gS0YobCl7dmFy''@;'; + put 'put ''IGMsZjtjPTB8dnIoKGY9MisoMHxydFsyMzgrKDB8YVsxNisobHw9MCk+PjJdKT4+MV0pfDApPDwyKSxOWShsLGMsZiwwKSxGdChjKX0obCksYlUobCksYkgobCwxKSxtSShsKSxZRihsKSxhWzQ2NzQyXT1ydFsyMzYrKGM9MHxhW2M+PjJdKT4+MV0sYVs0Njc0M109cnRbYysyMzg+PjFdfShs''@;'; + put 'put ''fD0wKSx3PWwrMTZ8MCxwPTAsZj0wOyEoKDB8cCk+PSgwfGFbMjIwKygwfGFbdz4+Ml0pPj4yXSkpOylxQShsLHApLHA9cCsxfDAsZj0oMHxzSShsLDAsYykpK2Z8MDtmb3IoZnVuY3Rpb24gRVkobCl7dmFyIGMsRyxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxSPTA7Zm9yKEc9YWUsYWU9YWUr''@;'; + put 'put ''MTZ8MCxmdW5jdGlvbiBUMGUobCl7dmFyIHAsbSxBLGM9MCxmPTAsdz0wLGI9MDtpZigoMHwoQT0wfGFbKG09MjIwKyhwPTB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0pKT49Mil7Zm9yKHc9cCsyMTZ8MCxsPTAsZj0wOyEoKDB8Zik+PSgwfEEpKTspe2ZvcihjPTB8YVsoMHxhW3c+PjJdKSso''@;'; + put 'put ''Zjw8Mik+PjJdLDB8bCYmKGFbMTY0KygwfGFbbCsxNj4+Ml0pPj4yXT1jKSxhWzE2OCsoYj0wfGFbYysxNj4+Ml0pPj4yXT1sLGw9YyxjPWI7Yz0wfGFbYysxNjQ+PjJdOylsPWMsYz0wfGFbYysxNj4+Ml07Zj1mKzF8MH1hW20+PjJdPTEsYVtwKzE5Mj4+Ml09YVthW3ArMjE2Pj4yXT4+Ml0s''@;'; + put 'put ''cnRbcCsyMzY+PjFdPWFbNDY3NDJdLHJ0W3ArMjM4Pj4xXT1hWzQ2NzQzXX19KGx8PTApLGI9MHxydFsyMzYrKGM9MHxhWyhsKzE2fDApPj4yXSk+PjFdOyEoKDB8Yik+KDB8cnRbYysyMzg+PjFdKSk7KXtmb3IoYVsoZj0wfGFbYysxOTY+PjJdKSsoYjw8Nik+PjJdPXA9MHxhW2YrKGI8PDYp''@;'; + put 'put ''Kzg+PjJdLGFbZisoYjw8NikrND4+Ml09bT0wfGFbZisoYjw8NikrMTI+PjJdLHc9MDshKCgwfHcpPj0oMHxwKSk7KXtpZighKEE9MHxhW20rKHc8PDIpPj4yXSkpe1I9NjticmVha31hWzIzNisoMHxhW0ErMTY+PjJdKT4+Ml09dyx3PXcrMXwwfTY9PSgwfFIpJiYoUj0wLGFbZisoYjw8Nik+''@;'; + put 'put ''PjJdPXcpLGI9YisxfDB9YWU9R30obCksQT0xOyEoKDB8QSk+KDB8KG09MHxhWzE4MCsocD0wfGFbdz4+Ml0pPj4yXSkpKTspbT0oMHx6RigwfGFbKDB8YVtwKzE4ND4+Ml0pKyhBPDwyKT4+Ml0sYykpK2Z8MCxBPUErMXwwLGY9bTtkb3tpZigoMHxtKT4wKXtpZigwfChwPTB8TGkobCw4NTgw''@;'; + put 'put ''NikpJiYoMHxlMShwKSk8PDI0Pj4yND09MClicmVhaztmcChsKSxmZVsxOTM3NjldPTEsZj0wfHNJKGwsMixjKX19d2hpbGUoMCk7IWZ1bmN0aW9uIGV5KGwsYyl7bHw9MDt2YXIgTSxSLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtmb3IoUj1hZSxhZT1hZSsxNnwwLDB8KGY9MHxhWzQ2''@;'; + put 'put ''NzM5XSkmJihGdChmKSxhWzQ2NzM5XT0wKSwwfChmPTB8YVs0Njc0MF0pJiYoRnQoZiksYVs0Njc0MF09MCksTT1sKzE2fDAsZj0xOyEoKDB8Zik+KDB8YVsxODArKHA9MHxhW00+PjJdKT4+Ml0pKTspR0YoMHxhWygwfGFbcCsxODQ+PjJdKSsoZjw8Mik+PjJdKSxmPWYrMXwwO2ZvcihrPTB8''@;'; + put 'put ''cnRbcCsyMzY+PjFdLGY9cDshKCgwfGspPigwfHJ0W2YrMjM4Pj4xXSkpOyl7Zm9yKGI9MDshKCgwfGIpPj0oMHxhWyhmPTB8YVtmKzE5Nj4+Ml0pKyhrPDw2KT4+Ml0pKTspe2FbMjM2KyhmPTB8YVsodz0xNisoMHxhWygwfGFbZisoazw8NikrND4+Ml0pKyhiPDwyKT4+Ml0pfDApPj4yXSk+''@;'; + put 'put ''PjJdPWIsZj0wfGFbZisxODg+PjJdO2U6ZG97aWYoMHxmKWZvcihwPTA7Oyl7aWYoIShtPTB8YVtmKyhwPDwyKT4+Ml0pKWJyZWFrIGU7ND09KDB8ZmVbMTEyKygwfGFbKEE9bSsxNnwwKT4+Ml0pPj4wXSkmJihaRihtKSxGdCgwfGFbQT4+Ml0pLEZ0KG0pLHA9cCstMXwwLGY9MHxhWzE4OCso''@;'; + put 'put ''MHxhW3c+PjJdKT4+Ml0pLHA9cCsxfDB9fXdoaWxlKDApO2I9YisxfDAsZj0wfGFbTT4+Ml19UzBlKDB8YVtmKyhrPDw2KSs1Nj4+Ml0pLGs9aysxfDAsZj0wfGFbTT4+Ml19YWU9Un0obCl9ZnVuY3Rpb24gcUEobCxjKXt2YXIgZj0wLHA9MCxtPTA7YVsxOTIrKGw9MHxhWzE2KyhsfD0wKT4+''@;'; + put 'put ''Ml0pPj4yXT1hWygwfGFbbCsyMTY+PjJdKSsoKGN8PTApPDwyKT4+Ml07ZTpkb3tpZigoMHxjKT4wKWZvcihjPTB8cnRbbCsyMzg+PjFdLGY9bCsxOTZ8MCxsPTB8cnRbbCsyMzY+PjFdOzspe2lmKCgwfGwpPigwfGMpKWJyZWFrIGU7YVsobT0ocD0wfGFbZj4+Ml0pKyhsPDw2KSs0fDApPj4y''@;'; + put 'put ''XT0oMHxhW20+PjJdKSsoYVsocD1wKyhsPDw2KXwwKT4+Ml08PDIpLGFbcD4+Ml09MCxsPWwrMXwwfX13aGlsZSgwKX1mdW5jdGlvbiBzSShsLGMsZil7bHw9MCxmfD0wO3ZhciBSLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihSPWFlLGFlPWFlKzMyfDAsKDB8KGN8PTApKT4xPyhwPTB8''@;'; + put 'put ''WEMoMCksWEYobCkpOnA9MjE0NzQ4MzY0NyxrPWMsbT0wLGM9cDshKCgwfGspPj0zKTspe2ZvcihtPTB8YVs0NzEzNl0sMj09KDB8ayk/KCgwfHApPigwfGMpJiZMWShsKSxwPWMpOihwPSgwfG0pPDQ/bTo0LCgwfEFhKGwpKT09KDB8bCkmJkRZKGwsayksa3x8Y0kobCkseFkobCksKDB8KEE9''@;'; + put 'put ''MHxYQygwKSkpPigwfGMpPyhtPXAscD1BKTooWEYobCksbT1wLHA9QSxjPUEpKSxBPTAsYj0wOyEoKDB8Yik+PSgwfG0pfHwodz1BKzF8MCwwPT0oMHxwKXwoMHxBKT49KDB8YVs0Njc0NF0pKSk7KUkwZShsLGIpLCgwfChwPTB8WEMoMCkpKT4oMHxjKT9BPXc6KFhGKGwpLEE9K19bMjMyMTVd''@;'; + put 'put ''KisoMHxjKT4rKDB8cCk/MDp3LGM9cCksYj1iKzF8MDtpZighcCl7cD0wO2JyZWFrfWs9aysxfDB9KDB8cCk+KDB8YykmJkxZKGwpLCgwfGMpPjA/KGRJKGwsMCkscD0wfFhDKDApKTpwPWM7ZTpkb3tpZigwfGYpZm9yKGM9MDs7KXtpZigoMHxjKT49KDB8bSkpYnJlYWsgZTtEMGUobCksYz1j''@;'; + put 'put ''KzF8MH19d2hpbGUoMCk7cmV0dXJuIGFlPVIsMHxwfWZ1bmN0aW9uIHpGKGwsYyl7Y3w9MDt2YXIgbSxmPTAscD0wLEE9MDtmb3IoZnVuY3Rpb24ga1UobCl7dmFyIGM7YlUobHw9MCksYVsyMjArKGM9MHxhW2wrMTY+PjJdKT4+Ml09MSxhW2FbYysyMTY+PjJdPj4yXT1hW2MrMTkyPj4yXSxt''@;'; + put 'put ''SShsKSxEWShsLDApLGZ1bmN0aW9uIGk5ZShsKXt2YXIgYixrLE0sYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGI9MHxBYShsfD0wKSxjPSh3PTB8cnRbMjM2KyhmPTB8YVsoaz1sKzE2fDApPj4yXSk+PjFdKTw8MTY+PjE2LE09YisxNnwwLHc8PDE2Pj4xNj4wJiYoZmVbKDB8YVsxOTYr''@;'; + put 'put ''KDB8YVtNPj4yXSk+PjJdKSsoYystMTw8NikrNDk+PjBdPTApLHc9YzshKCgwfHcpPigwfHJ0W2YrMjM4Pj4xXSkpOyl7Zm9yKENVKGIsdyxBPTB8YVsyMzYrKDB8YVsxNisoMHxhWygwfGFbZisyNjg+PjJdKSsodzw8Mik+PjJdKT4+Ml0pPj4yXSwwfGFbKDB8YVtmKzE5Nj4+Ml0pKyh3PDw2''@;'; + put 'put ''KT4+Ml0pLHA9MCxtPUE7ISgoMHxwKT49KDB8YVsoYz0wfGFbMTk2KyhmPTB8YVtrPj4yXSk+PjJdKSsodzw8Nik+PjJdKSk7KWFbKDB8YVsoMHxhWzE5NisoMHxhW00+PjJdKT4+Ml0pKyh3PDw2KSs0Pj4yXSkrKG08PDIpPj4yXT1jPTB8YVsoMHxhW2MrKHc8PDYpKzQ+PjJdKSsocDw8Mik+''@;'; + put 'put ''PjJdLGFbMjM2KyhmPTB8YVtjKzE2Pj4yXSk+PjJdPW0sMT09KDB8ZmVbZisxNTY+PjBdKSYmKGFbYysyND4+Ml09MHxkaShiKSksaUkobCxjKSxySShiLGMpLGFbKGY9MjMyKygwfGFbTT4+Ml0pfDApPj4yXT0xKygwfGFbZj4+Ml0pLHA9cCsxfDAsbT1tKzF8MDthW2MrKHc8PDYpKzQ+PjJd''@;'; + put 'put ''PSgwfGFbKG09MHxhWzE5NisoMHxhW00+PjJdKT4+Ml0pKyh3PDw2KSs0Pj4yXSkrKEE8PDIpLGZlW20rKHc8PDYpKzQ5Pj4wXT0wLHc9dysxfDB9KDB8dyk8KDB8cnRbMjM4KyhjPTB8YVtNPj4yXSk+PjFdKSYmKGZlWygwfGFbYysxOTY+PjJdKSsodzw8NikrNDk+PjBdPTApLGZlW2YrMjcy''@;'; + put 'put ''Pj4wXT0xfShsKSxmdW5jdGlvbiBwb2UobCl7dmFyIGssYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MCxEPTAsUj0wO2ZvcihrPTB8QWEobHw9MCksdz0wfER0KGwpO3c7KXtmb3IoYz0wfFNzKGssdyksYj0wO2M7KWlmKEQ9MHxIcyhrLGMsdyksMHxOcihsLGMpKWM9RCxiPU09Yjtl''@;'; + put 'put ''bHNlIGlmKFI9MD09KDB8aWsoYixNPTI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSksQT0oMHwoZj0wfGFbMjMyKygwfGFbMTYrKGM9MHxhWygzPT0oMHwocD0zJmFbTT4+Ml0pKT9NOk0rNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPT0oMHwobT0wfGFbMjMyKygwfGFbMTYrKHA9MHxhWygy''@;'; + put 'put ''PT0oMHxwKT9NOk0rLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKSxSKWlmKEEpKGM9MHxrWShjLHApKT8oMHxNKSE9KDB8Yyk/KFNZKE0pLDB8YVsxNzIrKDB8YVtNKzE2Pj4yXSk+PjJdPyhjPUQsYj1SPWIpOih6NihNLGMpLGM9RCxiPVI9YikpOihjPUQsYj1SPWIpOihvSShrLE0pLGM9RCxi''@;'; + put 'put ''PU0pO2Vsc2V7aWYoKDB8bSk+KDB8Zikpe0FIKGMscCxNKSxjPUQsYj1NO2NvbnRpbnVlfUFIKHAsYyxNKSxjPUQsYj1NfWVsc2V7aWYoYVsxNzIrKDB8YVtNKzE2Pj4yXSk+PjJdPUE/YjowLCEoYz0wfGFbMTcyKygwfGFbYisxNj4+Ml0pPj4yXSkpe2M9RCxiPVI9Yjtjb250aW51ZX1yayhs''@;'; + put 'put ''LE0sYywwKSxTWShNKSxjPUQsYj1SPWJ9dz0wfHp0KGwsdyl9fShsKSxmdW5jdGlvbiBvOWUobCl7dmFyIHcsYz0wLGY9MCxwPTAsbT0wLEE9MDtmb3IoQT0wfHJ0WzIzNisoYz0wfGFbKHc9MTYrKGx8PTApfDApPj4yXSk+PjFdOyEoKDB8QSk+KDB8cnRbYysyMzg+PjFdKSk7KXtmb3IobT0x''@;'; + put 'put ''NisocD0wfGFbKDB8YVtjKzI2OD4+Ml0pKyhBPDwyKT4+Ml0pfDA7Zj0wfGFbYVsxODArKGM9MHxhW20+PjJdKT4+Ml0+PjJdOylVMyhmKTtmb3IoO2M9MHxhW2FbYysxNzI+PjJdPj4yXTspVTMoYyksYz0wfGFbbT4+Ml07aUkoMHxBYShsKSxwKSxhWygwfGFbMjY4KygwfGFbdz4+Ml0pPj4y''@;'; + put 'put ''XSkrKEE8PDIpPj4yXT0wLEE9QSsxfDAsYz0wfGFbdz4+Ml19fShsKX0obHw9MCksWUYobCksY0kobCkseFkobCksbT1sKzE2fDAsZj0wfHNJKGwsMixjKSxwPTE7ISgoMHxwKT4oMHxhWzE4MCsoQT0wfGFbbT4+Ml0pPj4yXSkpOylmPSgwfHpGKDB8YVsoMHxhW0ErMTg0Pj4yXSkrKHA8PDIp''@;'; + put 'put ''Pj4yXSxjKSkrZnwwLHA9cCsxfDA7cmV0dXJuIFVGKGwpLDB8Zn1mdW5jdGlvbiBHRihsKXt2YXIgbSxjPTAsZj0wLHA9MCxBPTAsdz0wLGI9MCxrPTA7Zm9yKG09MTYrKGx8PTApfDAsYz0xOyEoKDB8Yyk+KDB8YVsxODArKHA9MHxhW20+PjJdKT4+Ml0pKTspR0YoMHxhWygwfGFbcCsxODQ+''@;'; + put 'put ''PjJdKSsoYzw8Mik+PjJdKSxjPWMrMXwwO2U6ZG97aWYoMHxhW3ArMjY4Pj4yXSlmb3IoZj0wfHJ0W3ArMjM2Pj4xXSxjPXA7Oyl7aWYoKDB8Zik+KDB8cnRbYysyMzg+PjFdKSlicmVhayBlO3c9MHxXRihsLGI9MHxhWygwfGFbYysyNjg+PjJdKSsoZjw8Mik+PjJdLC0xKSxiPTB8V0YobCxi''@;'; + put 'put ''LDEpLGFbKDB8YVsyNjgrKDB8YVttPj4yXSk+PjJdKSsoZjw8Mik+PjJdPXcsaz0wfGFbKDB8YVsxOTYrKDB8YVsxNisoMHxBYShsKSk+PjJdKT4+Ml0pKyhmPDw2KSs0Pj4yXSxhWyhBPTB8YVsxOTYrKHA9MHxhW20+PjJdKT4+Ml0pKyhmPDw2KSs0Pj4yXT1rKygodz0wfGFbMjM2KygwfGFb''@;'; + put 'put ''dysxNj4+Ml0pPj4yXSk8PDIpLGFbQSsoZjw8Nik+PjJdPTErKDB8YVsyMzYrKDB8YVtiKzE2Pj4yXSk+PjJdKS13LGY9ZisxfDAsYz1wfX13aGlsZSgwKX1mdW5jdGlvbiBTMGUobCl7MHwobHw9MCkmJihGdCgwfGFbbCs4Pj4yXSksRnQobCkpfWZ1bmN0aW9uIFdGKGwsYyxmKXtsfD0wLGZ8''@;'; + put 'put ''PTA7dmFyIHA9MDtmb3IocD1jfD0wO2M9MHxNMGUoYyxmKTspcD0wfHVJKGwsYyk/YzowPT0oMHx0eShsLGMpKT9wOmM7cmV0dXJuIDB8cH1mdW5jdGlvbiBNMGUobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MCxBPTA7cmV0dXJuKGx8PTApfHxQcig4NTg1Niw4NTc4MSwxMDIzLDg1ODU4KSwo''@;'; + put 'put ''MHxjKTwwPygwfChwPTB8YVsyMzYrKGw9MHxhW2wrMTY+PjJdKT4+Ml0pKT4wPyhsPSgwfGFbMTk2KygwfGFbMTYrKDB8YVs0Njc0MV0pPj4yXSk+PjJdKSsoYVtsKzIzMj4+Ml08PDYpKzR8MCxmPXArLTF8MCxtPTcpOkE9MDoocD0wfGFbMjM2KyhsPTB8YVtsKzE2Pj4yXSk+PjJdLGw9KDB8''@;'; + put 'put ''YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyhhW2wrMjMyPj4yXTw8NikrNHwwLGY9cCsxfDAsbT03KSw3PT0oMHxtKSYmKChsPTB8YVsoMHxhW2w+PjJdKSsoZjw8Mik+PjJdKT8oMHxBcigoMHxhWzIzNisoMHxhW2wrMTY+PjJdKT4+Ml0pLXB8MCxjKSk+MD9BPWw6UHIo''@;'; + put 'put ''ODU4NjcsODU3ODEsMTAyOSw4NTg1OCk6QT0wKSwwfEF9ZnVuY3Rpb24gdUkobCxjKXtyZXR1cm4gbHw9MCwwfCgwfGZlWzE1NisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4wXT8wOjAhPSgwfE5yKGwsYykpJjEpfWZ1bmN0aW9uIHR5KGwsYyl7bHw9MDt2YXIgZj0wLHA9MDtpZigxPT0oMHxmZVsx''@;'; + put 'put ''NTYrKGM9MHxhWzE2KyhjfD0wKT4+Ml0pPj4wXSkmJjE9PSgwfGFbYysxNzY+PjJdKSYmMT09KDB8YVtjKzE4ND4+Ml0pKXtmb3IoYz0wfGFbYysxODA+PjJdOzB8ZmVbMTEyKyhmPTB8YVsxNisoYz0wfGFbYz4+Ml0pPj4yXSk+PjBdOyljPWYrMTE2fDA7MHxOcihsLGMpP2M9MTpwPTd9ZWxz''@;'; + put 'put ''ZSBwPTc7cmV0dXJuIDc9PSgwfHApJiYoYz0wKSwwfGN9ZnVuY3Rpb24gWUYobCl7bHw9MDt2YXIgZixwLGM9MDtwPWFlLGFlPWFlKzE2fDAsZj1wLGM9MHxhWzQ3MTQwXTtlOmRve2lmKDAhPSgwfGMpfDAhPSgwfGFbNDcxNjFdKSl7aWYoMHwoYz0wfHYyKGwsYywwKSkpe3N3aXRjaCgwfGZl''@;'; + put 'put ''W2M+PjBdKXtjYXNlIDA6YnJlYWsgZTtjYXNlIDExMTppZighKDB8amkoYyw4NjA2OSkpKXtUWShsLDEpO2JyZWFrIGV9YnJlYWs7Y2FzZSAxMDU6aWYoISgwfGppKGMsOTg3MzUpKSl7VFkobCwwKTticmVhayBlfX1hW2Y+PjJdPWMsJHIoMSw4NjA3MyxmKTticmVha31mb3IoYz0wfHlzKGwp''@;'; + put 'put ''O2M7KTB8bEgoYyl8fFlGKGMpLGM9MHxNcyhjKTswfGFbNDcxNjFdJiZFMGUobCl9fXdoaWxlKDApO2FlPXB9ZnVuY3Rpb24gY0kobCl7dmFyIGIsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKHc9MHxydFsyMzYrKGM9MHxhWyhiPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXTshKCgwfHcpPigw''@;'; + put 'put ''fHJ0W2MrMjM4Pj4xXSkpOyl7Zm9yKGY9MCxBPTA7ISgoMHxBKT49KDB8KG09MHxhWyhwPTB8YVtjKzE5Nj4+Ml0pKyh3PDw2KT4+Ml0pKSk7KWZlWzE1OCsocD0wfGFbMTYrKDB8YVsoMHxhW3ArKHc8PDYpKzQ+PjJdKSsoQTw8Mik+PjJdKT4+Ml0pPj4wXT0wLGZlW3ArMTU3Pj4wXT0wLGFb''@;'; + put 'put ''cCsyODQ+PjJdPUEsMD09KDB8ZikmKDB8YVtwKzE5Mj4+Ml0pPjAmJihmPTB8aEkobSxtKSxhWygwfGFbMTk2KyhjPTB8YVtiPj4yXSk+PjJdKSsodzw8NikrNTY+PjJdPWYsZj0xKSxBPUErMXwwO2U6ZG97aWYoZilmb3IoQT0wLGY9bTs7KXtpZigoMHxBKT49KDB8ZikpYnJlYWsgZTswfGZl''@;'; + put 'put ''WzE1NysoMHxhWzE2KyhtPTB8YVsoMHxhW3ArKHc8PDYpKzQ+PjJdKSsoQTw8Mik+PjJdKT4+Ml0pPj4wXXx8KFFGKGwsbSkscD1mPTB8YVsxOTYrKGM9MHxhW2I+PjJdKT4+Ml0sZj0wfGFbZisodzw8Nik+PjJdKSxBPUErMXwwfX13aGlsZSgwKTt3PXcrMXwwfX1mdW5jdGlvbiB4WShsKXt2''@;'; + put 'put ''YXIgZ2UsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsYmU9MDtpZigwfGZlWzI0MCsoYz0wfGFbKGdlPTE2KyhsfD0wKXwwKT4+Ml0pPj4wXSl7bT0wLHBlPTB8cnRbYysyMzY+PjFdLEs9MCxBPTA7ZTpmb3IoOyEoKDB8cGUpPigwfHJ0''@;'; + put 'put ''W2MrMjM4Pj4xXSkpOyl7aWYocD0wfGFbKGY9MHxhW2MrMTk2Pj4yXSkrKHBlPDw2KT4+Ml0pe2ZvcihSPTB8YVsyMzYrKDB8YVsxNisoMHxhWyhmPTB8YVtmKyhwZTw8NikrND4+Ml0pPj4yXSk+PjJdKT4+Ml0sYz0wOyEoKDB8Yyk+PSgwfHApKTspZmVbMTU3KygwfGFbMTYrKDB8YVtmKyhj''@;'; + put 'put ''PDwyKT4+Ml0pPj4yXSk+PjBdPTAsYz1jKzF8MDtmb3IoYz00KyhjPDwyKXwwLEc9bT8wfFYwKEEsYyk6MHxRbihjKSxNPTAsRD0wOyEoKDB8KHA9MHxhWyhmPTB8YVsxOTYrKGM9MHxhW2dlPj4yXSk+PjJdKSsocGU8PDYpPj4yXSkpPD0oMHxEKSk7KXtmb3Ioaz0xNisodz0wfGFbKDB8YVtm''@;'; + put 'put ''KyhwZTw8NikrND4+Ml0pKygoMD09KDEmYVtjKzExNj4+Ml18MCk/cCt+RHwwOkQpPDwyKT4+Ml0pfDAsYz0wLGI9MDs7KXtpZigoMHxjKT49KDB8YVsyMDArKEE9MHxhW2s+PjJdKT4+Ml0pKXtmPTAscD0wLGM9QTticmVha31BPWIrKDAhPSgwfEpDKGwsMHxhWygwfGFbQSsxOTY+PjJdKSso''@;'; + put 'put ''Yzw8Mik+PjJdKSkmMSl8MCxjPWMrMXwwLGI9QX1mb3IoOyEoKDB8cCk+PSgwfGFbYysxOTI+PjJdKSk7KWY9QT1mKygwIT0oMHxKQyhsLDB8YVsoMHxhW2MrMTg4Pj4yXSkrKHA8PDIpPj4yXSkpJjEpfDAscD1wKzF8MCxjPTB8YVtrPj4yXTtmfGI/Yz0wPT0oMHxiKSYwPT0oMHxmZVtjKzE1''@;'; + put 'put ''Nz4+MF0pPygwfHVwKGwsdyxHKyhNPDwyKXwwLHBlKSkrTXwwOk06KGFbRysoTTw8Mik+PjJdPXcsYz1NKzF8MCksTT1jLEQ9RCsxfDB9dDpkb3tpZihNKXtuOmRve2lmKDEmYVtjKzExNj4+Ml0pcD0wO2Vsc2UgZm9yKGY9RyxjPUcrKE08PDIpfDA7Oyl7aWYoZj4+PjA+PShjPWMrLTR8MCk+''@;'; + put 'put ''Pj4wKXtwPTA7YnJlYWsgbn1EPTB8YVtmPj4yXSxhW2Y+PjJdPWFbYz4+Ml0sYVtjPj4yXT1ELGY9Zis0fDB9fXdoaWxlKDApO2Zvcig7Oyl7aWYoKDB8cCk+PSgwfChmPTB8YVsoQT0wfGFbMTk2KyhjPTB8YVtnZT4+Ml0pPj4yXSkrKHBlPDw2KT4+Ml0pKSl7TT0wLHA9QTticmVha31hWygw''@;'; + put 'put ''fGFbQSsocGU8PDYpKzQ+PjJdKSsocDw8Mik+PjJdPUQ9MHxhW0crKHA8PDIpPj4yXSxhWzIzNisoMHxhW0QrMTY+PjJdKT4+Ml09cCtSLHA9cCsxfDB9Zm9yKDs7KXtpZigoMHxNKT49KDB8ZikpYnJlYWsgdDtpZihBPTB8YVsxODgrKDB8YVsoaz0xNisoMHxhWygwfGFbcCsocGU8PDYpKzQ+''@;'; + put 'put ''PjJdKSsoTTw8Mik+PjJdKXwwKT4+Ml0pPj4yXSl7Zm9yKGI9MCxmPUE7Yz0wfGFbZ2U+PjJdLHA9MHxhW2YrKGI8PDIpPj4yXTspe2lmKEE9MHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgwfCh3PTMmYVtwPj4yXSkpP3A6cCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSx3PTB8YVsyMzYrKDB8''@;'; + put 'put ''YVsxNisoMHxhWygzPT0oMHx3KT9wOnArNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSwxJmFbYysxMTY+PjJdPygwfEEpPigwfHcpP2JlPTM2OmM9YjooMHxBKTwoMHx3KT9iZT0zNjpjPWIsMzY9PSgwfGJlKSl7aWYoYmU9MCwwfEpDKGwscCkpe2JlPTM3O2JyZWFrIGV9WkYocCksZkkobCxwKSxj''@;'; + put 'put ''PWIrLTF8MCxmPTB8YVsxODgrKDB8YVtrPj4yXSk+PjJdfWI9YysxfDB9cD1mPTB8YVtjKzE5Nj4+Ml0sZj0wfGFbZisocGU8PDYpPj4yXX1NPU0rMXwwfX19d2hpbGUoMCk7ZmVbKDB8YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyhwZTw8NikrNDk+PjBdPTAsbT1HLHA9''@;'; + put 'put ''RyxmPUd9ZWxzZSBwPUssZj1BO3BlPXBlKzF8MCxLPXAsQT1mfTM3PT0oMHxiZSkmJlByKDg1OTE1LDg1NzgxLDE1NjEsODU5NTQpLDB8bSYmRnQoSyl9fWZ1bmN0aW9uIFVGKGwpe3ZhciBmLGM9MDtsPTB8YVsoZj0xNisobHw9MCl8MCk+PjJdO2U6ZG97aWYoMHxhW2wrMjY4Pj4yXSlmb3Io''@;'; + put 'put ''Yz0wfHJ0W2wrMjM2Pj4xXTs7KXtpZigoMHxjKT4oMHxydFtsKzIzOD4+MV0pKWJyZWFrIGU7YVsoMHxhW2wrMjY4Pj4yXSkrKGM8PDIpPj4yXT1hW2FbKDB8YVtsKzE5Nj4+Ml0pKyhjPDw2KSs0Pj4yXT4+Ml0sYz1jKzF8MCxsPTB8YVtmPj4yXX19d2hpbGUoMCl9ZnVuY3Rpb24gSkMobCxj''@;'; + put 'put ''KXtyZXR1cm4gbHw9MCwwfCgwIT0oMHxhWzE1NisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSkmJjAhPSgwfEc2KGwsMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pKT8wIT0oMHxHNihsLDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSkpJjE6MCl9''@;'; + put 'put ''ZnVuY3Rpb24gdXAobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIE0sbT0wLEE9MCx3PTAsYj0wLGs9MDtmZVsxNTcrKG09MHxhWyhNPTE2KyhjfD0wKXwwKT4+Ml0pPj4wXT0xO2U6ZG97aWYoKDB8YVttKzE5Mj4+Ml0pPjApZm9yKEE9MCxiPTA7Oyl7aWYoISh3PTB8YVsoMHxhW20rMTg4''@;'; + put 'put ''Pj4yXSkrKGI8PDIpPj4yXSkpYnJlYWsgZTswIT0oMHxKQyhsLHcpKSYmMD09KDB8ZmVbMTU3KygwfGFbMTYrKGs9MHxhWygyPT0oMyZhW3c+PjJdfDApP3c6dystNDh8MCkrNDA+PjJdKT4+Ml0pPj4wXSkmJihBPSgwfHVwKGwsayxmKyhBPDwyKXwwLHApKStBfDApLGI9YisxfDAsbT0wfGFb''@;'; + put 'put ''TT4+Ml19ZWxzZSBBPTB9d2hpbGUoMCk7cmV0dXJuKDB8YVttKzIzMj4+Ml0pPT0oMHxwKT8oYVtmKyhBPDwyKT4+Ml09YyxBKzF8MCk6KFByKDg1OTY3LDg1NzgxLDE0OTAsODU5ODMpLDApfWZ1bmN0aW9uIGZJKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09''@;'; + put 'put ''MCxEPTA7cD0wfGFbMTg4KygwfGFbMTYrKGI9MHxhWygyPT0oMHwodz0zJmFbKGN8PTApPj4yXSkpP2M6YystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXTtlOmRve2lmKHApe2ZvcihNPWMrNDh8MCxtPSgzPT0oMHx3KT9jOk0pKzQwfDAsZj0wOzspe2lmKCEoQT0wfGFbcCsoZjw8Mik+PjJdKSl7''@;'; + put 'put ''Zj1NLEQ9MTU7YnJlYWsgZX1pZigoMHxhWygyPT0oMyZhW0E+PjJdfDApP0E6QSstNDh8MCkrNDA+PjJdKT09KDB8YVttPj4yXSkpYnJlYWs7Zj1mKzF8MH16NihjLEEpLDB8YVsoZj0xNzIrKDB8YVtjKzE2Pj4yXSl8MCk+PjJdfHwoYVtmPj4yXT1BKSw0PT0oMHxmZVsxMTIrKGY9MHxhW0Er''@;'; + put 'put ''MTY+PjJdKT4+MF0pJiYwPT0oMHxhWyhrPWYrMTE2fDApPj4yXSkmJihhW2s+PjJdPWMpLGY9KHA9MHxhWzIwNCsoZj0wfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOk0pKzQwPj4yXSk+PjJdKT4+Ml0pPzB8VjAocCw4KyhhW2YrMjA4Pj4yXTw8Mil8MCk6MHxRbig4KyhhW2YrMjA4''@;'; + put 'put ''Pj4yXTw8Mil8MCksYVsyMDQrKDB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6TSkrNDA+PjJdKT4+Ml0pPj4yXT1mLGI9MHxhWzIwNCsodz0wfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOk0pKzQwPj4yXSk+PjJdKT4+Ml0sYVsodz13KzIwOHwwKT4+Ml09MSsoaz0wfGFb''@;'; + put 'put ''dz4+Ml0pLGFbYisoazw8Mik+PjJdPWMsYVsoMHxhWzIwNCsoYz0wfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOk0pKzQwPj4yXSk+PjJdKT4+Ml0pKyhhW2MrMjA4Pj4yXTw8Mik+PjJdPTB9ZWxzZSBmPWMrNDh8MCxEPTE1fXdoaWxlKDApOzE1PT0oMHxEKSYmKEQ9MHxLQShiLDB8''@;'; + put 'put ''YVsoMz09KDB8dyk/YzpmKSs0MD4+Ml0sYyksTT0wfGFbYysxNj4+Ml0sZmVbMTEyKyhjPTB8YVtEKzE2Pj4yXSk+PjBdPTQ9PSgwfGZlW00rMTEyPj4wXSk/NDozLGFbYys5Nj4+Ml09YVtNKzk2Pj4yXSxvSShsLEQpKX1mdW5jdGlvbiBHNihsLGMpe3ZhciBmO3JldHVybiBmPTB8dUkobHw9''@;'; + put 'put ''MCxjfD0wKSwwfHR5KGwsYyl8ZnwwfWZ1bmN0aW9uIGhJKGwsYyl7dmFyIGY7cmV0dXJuIGx8PTAsY3w9MCxmPTB8dnIoMTIpLGFbZj4+Ml09bCxhW2YrND4+Ml09YyxhW2YrOD4+Ml09MHx2cigwfEFyKGMsbCkpLDB8Zn1mdW5jdGlvbiBRRihsLGMpe3ZhciBrLEcsZj0wLHA9MCxtPTAsQT0w''@;'; + put 'put ''LHc9MCxiPTAsTT0wLEQ9MCxSPTAsSz0wLHBlPTAsZ2U9MDtrPTB8YVsoMHxhWzE5NisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSkrKGFbMjMyKyhNPTB8YVsoRz0xNisoY3w9MCl8MCk+PjJdKT4+Ml08PDYpKzU2Pj4yXSxmZVtNKzE1Nz4+MF09MSxmZVtNKzE1OD4+MF09MSxNPSgwfGFbMTgw''@;'; + put 'put ''KygwfGFbMTYrKDB8QWEobCkpPj4yXSk+PjJdKT4wLHA9MHxhWzE4OCsoZj0wfGFbRz4+Ml0pPj4yXTtlOmRve2lmKHApe0Q9ays0fDAsUj1rKzh8MCxjPTA7dDpmb3IoOzspe2lmKCEoYj0wfGFbcCsoYzw8Mik+PjJdKSl7Sz1mO2JyZWFrIGV9TT8wIT0oMHxOcihsLDB8YVsoMz09KDMmYVti''@;'; + put 'put ''Pj4yXXwwKT9iOmIrNDh8MCkrNDA+PjJdKSkmJjAhPSgwfE5yKGwsMHxhWygyPT0oMyZhW2I+PjJdfDApP2I6YistNDh8MCkrNDA+PjJdKSkmJihwZT03KTpwZT03O2Rve2lmKDc9PSgwfHBlKSYmKHBlPTAsMHxhWzE1NisoMHxhWyhBPWIrMTZ8MCk+PjJdKT4+Ml0pKXtpZihtPWIrLTQ4fDAs''@;'; + put 'put ''cD0oMHwodz0wfGFbMjg0KyhnZT0wfGFbMTYrKDB8YVsoMj09KDB8KGY9MyZhW2I+PjJdKSk/YjptKSs0MD4+Ml0pPj4yXSk+PjJdKSk8KDB8YVtrPj4yXSksMT09KDB8ZmVbZ2UrMTU4Pj4wXSkpe2lmKCFwKXtwZT0xMDticmVhayB0fWlmKCgwfChmPTB8YVsyODQrKDB8YVsxNisoMHxhWygz''@;'; + put 'put ''PT0oMHxmKT9iOmIrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPj0oMHwocD0wfGFbRD4+Ml0pKSl7cGU9MTI7YnJlYWsgdH1pZihmZVsoMHxhW1I+PjJdKSsoKDB8QXIocCx3KSkrZik+PjBdPTEsWkYoYiksYz1jKy0xfDAsND09KDB8ZmVbMTEyKygwfGFbQT4+Ml0pPj4wXSkpYnJlYWs7Zkko''@;'; + put 'put ''bCxiKTticmVha31pZighcCl7cGU9MTY7YnJlYWsgdH1pZigoMHwoZj0wfGFbMjg0KygwfGFbMTYrKDB8YVsoMz09KDB8Zik/YjpiKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKT49KDB8KHA9MHxhW0Q+PjJdKSkpe3BlPTE4O2JyZWFrIHR9aWYoZmVbKDB8YVtSPj4yXSkrKCgwfEFyKHAsZikp''@;'; + put 'put ''K3cpPj4wXT0xLDB8ZmVbMTU3KygwfGFbMTYrKGY9MHxhWygyPT0oMyZhW2I+PjJdfDApP2I6bSkrNDA+PjJdKT4+Ml0pPj4wXSlicmVhaztRRihsLGYpO2JyZWFrfX13aGlsZSgwKTtjPWMrMXwwLGY9cD0wfGFbRz4+Ml0scD0wfGFbcCsxODg+PjJdfTEwPT0oMHxwZSk/UHIoODU5OTMsODU3''@;'; + put 'put ''ODEsMTI1MSw4NjAyNSk6MTI9PSgwfHBlKT9Qcig4NjAzNyw4NTc4MSwxMjUyLDg2MDI1KToxNj09KDB8cGUpP1ByKDg1OTkzLDg1NzgxLDEyNjAsODYwMjUpOjE4PT0oMHxwZSkmJlByKDg2MDM3LDg1NzgxLDEyNjEsODYwMjUpfWVsc2UgSz1mfXdoaWxlKDApO2ZlW0srMTU4Pj4wXT0wfWZ1''@;'; + put 'put ''bmN0aW9uIFRZKGwsYyl7Y3w9MDt2YXIgZj0wO2ZvcihmPTB8RHQobHw9MCk7ZjspSkYobCxmLGMpLGY9MHx6dChsLGYpfWZ1bmN0aW9uIEUwZShsKXt2YXIgcCxtLGM9MCxmPTAsQT0wO2ZvcihtPWFlLGFlPWFlKzE2fDAscD1tLGM9MHxEdChsfD0wKTtjOyl7Zj0wfHYyKGMsMHxhWzQ3MTYx''@;'; + put 'put ''XSwwKTtlOmRve2lmKDB8Zil7c3dpdGNoKDB8ZmVbZj4+MF0pe2Nhc2UgMDpicmVhayBlO2Nhc2UgMTExOmlmKCEoMHxqaShmLDg2MDY5KSkpe0pGKGwsYywxKTticmVhayBlfWJyZWFrO2Nhc2UgMTA1OmlmKCEoMHxqaShmLDk4NzM1KSkpe0pGKGwsYywwKTticmVhayBlfX1BPTB8dGkoYyks''@;'; + put 'put ''YVtwPj4yXT1mLGFbcCs0Pj4yXT1BLCRyKDEsODYxMDQscCl9fXdoaWxlKDApO2M9MHx6dChsLGMpfWFlPW19ZnVuY3Rpb24gSkYobCxjLGYpe2x8PTAsZnw9MDt2YXIgYixwPTAsbT0wLEE9MCx3PTA7Yj0wfGFbNDY3NDBdLHA9MHxhWyhBPTE2KyhjfD0wKXwwKT4+Ml07ZTpkb3tpZighKDB8''@;'; + put 'put ''YVtwKzIxMj4+Ml0pKXt3PTAhPSgwfGYpO3Q6ZG97aWYodylmb3IobT0wLGM9MCxmPXA7Oyl7aWYoIShwPTB8YVsoMHxhW2YrMTgwPj4yXSkrKG08PDIpPj4yXSkpYnJlYWsgdDswfElZKHApfHwoYVtiKyhjPDwyKT4+Ml09cCxjPWMrMXwwLGY9MHxhW0E+PjJdKSxtPW0rMXwwfWVsc2UgZm9y''@;'; + put 'put ''KG09MCxjPTAsZj1wOzspe2lmKCEocD0wfGFbKDB8YVtmKzE3Mj4+Ml0pKyhtPDwyKT4+Ml0pKWJyZWFrIHQ7MHxJWShwKXx8KGFbYisoYzw8Mik+PjJdPXAsYz1jKzF8MCxmPTB8YVtBPj4yXSksbT1tKzF8MH19d2hpbGUoMCk7aWYoKDB8Yyk+PTIpZm9yKGFbYisoYzw8Mik+PjJdPTAseDEo''@;'; + put 'put ''YixjLDQsNjEpLEE9dz8yOjMsbT13Py0xOjEscD0xOzspe2lmKCEoYz0wfGFbYisocDw8Mik+PjJdKXx8MHxrWShmPTB8YVsoKDMmYVsoZj0wfGFbYisocCstMTw8Mik+PjJdKT4+Ml18MCk9PSgwfEEpP2Y6ZisoNDgqbXwwKXwwKSs0MD4+Ml0sYz0wfGFbKCgzJmFbYz4+Ml18MCk9PSgwfEEp''@;'; + put 'put ''P2M6YysoNDgqbXwwKXwwKSs0MD4+Ml0pKWJyZWFrIGU7dz0wfEtBKGYsYywwKSxmZVsxMTIrKDB8YVt3KzE2Pj4yXSk+PjBdPTQsb0kobCx3KSxwPXArMXwwfX19d2hpbGUoMCl9ZnVuY3Rpb24gSVkobCl7bHw9MDtmb3IodmFyIGM9MDtjPTB8YVsxMTYrKDB8YVtsKzE2Pj4yXSk+PjJdOyls''@;'; + put 'put ''PWM7cmV0dXJuKDB8YVsyMTIrKDB8YVsxNisoMHxhWygzPT0oMHwoYz0zJmFbbD4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkhPSgwfGFbMjEyKygwfGFbMTYrKDB8YVsoMj09KDB8Yyk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKXwwfWZ1bmN0aW9uIFhDKGwpe2x8PTA7''@;'; + put 'put ''dmFyIEEsdyxjPTAsZj0wLHA9MCxtPTA7Zm9yKHA9MCxtPTB8cnRbMjM2KyhmPTB8YVsodz0xNisoQT0wfGFbNDY3NDFdKXwwKT4+Ml0pPj4xXTshKCgwfG0pPj0oMHxydFtmKzIzOD4+MV0pKTspMHxmZVsobD0wfGFbZisxOTY+PjJdKSsobTw8NikrNDk+PjBdPyhjPTB8YVtsKyhtPDw2KSs1''@;'; + put 'put ''Mj4+Ml0sbD1mKTooYz0wfEZZKEEsbSksYVsoZj0wfGFbMTk2KyhsPTB8YVt3Pj4yXSk+PjJdKSsobTw8NikrNTI+PjJdPWMsZmVbZisobTw8NikrNDk+PjBdPTEpLHA9YytwfDAsbT1tKzF8MCxmPWw7cmV0dXJuIDB8cH1mdW5jdGlvbiBYRihsKXt2YXIgbSxBLGM9MCxmPTAscD0wLHc9MDtm''@;'; + put 'put ''b3IobT0wfHJ0WzIzOCsobD0wfGFbMTYrKGx8PTApPj4yXSk+PjFdLEE9bCsxOTZ8MCxsPTB8cnRbbCsyMzY+PjFdOyEoKDB8bCk+KDB8bSkpOyl7Zm9yKGY9MHxhWyhwPTB8YVtBPj4yXSkrKGw8PDYpPj4yXSxwPXArKGw8PDYpKzR8MCxjPTA7ISgoMHxjKT49KDB8ZikpOylfWzE2Kyh3PTB8''@;'; + put 'put ''YVsxNisoMHxhWygwfGFbcD4+Ml0pKyhjPDwyKT4+Ml0pPj4yXSk+PjNdPSsoMHxhW3crMjM2Pj4yXSksYz1jKzF8MDtsPWwrMXwwfX1mdW5jdGlvbiBEWShsLGMpe2N8PTA7dmFyIGssTSxELEssZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsUj0wLEc9MDtmb3IoSz1hZSxhZT1hZSsxNnwwLGs9''@;'; + put 'put ''SyxEPTB8bkQoMHxhWzIzMisoMHxhWyhNPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkscD1mPTE5Misodz0wfGFbTT4+Ml0pfDA7cD0wfGFbcD4+Ml07KWZlWzE1NysocD0wfGFbcCsxNj4+Ml0pPj4wXT0wLHA9cCsxNjR8MDtmb3IobT0wfHJ0W3crMjM4Pj4xXSxBPXcrMTk2fDAscD0wfHJ0W3cr''@;'; + put 'put ''MjM2Pj4xXTshKCgwfHApPigwfG0pKTspYVsoMHxhW0E+PjJdKSsocDw8Nik+PjJdPTAscD1wKzF8MDtmb3IoQT0wPT0oMHxjKTtwPTB8YVtmPj4yXTspe2lmKGY9MHxhWyhtPXArMTZ8MCk+PjJdLDA9PSgwfGFbYVsoQT9mKzE3MnwwOmYrMTgwfDApPj4yXT4+Ml0pJiYwPT0oMHxmZVsoYj1m''@;'; + put 'put ''KzE1N3wwKT4+MF0pKXtmb3IoZmVbYj4+MF09MSxENyhELHApO2Y9MHxyRChEKTspNyE9KDB8ZmVbMTU5KygwfGFbZisxNj4+Ml0pPj4wXSk/KFBZKGwsZiksS0MoRCxmLGMpKTpnb2UobCxmLGMsRCk7Zj0wfGFbbT4+Ml19Zj1mKzE2NHwwfWZvcigwfHJEKEQpJiYkcigxLDg2MzEyLGspLHc9''@;'; + put 'put ''MHxydFsyMzYrKGY9MHxhW00+PjJdKT4+MV07ISgoMHx3KT4oMHxydFtmKzIzOD4+MV0pKTspe2lmKGZlWygwfGFbMTk2KygwfGFbMTYrKDB8YVs0Njc0MV0pPj4yXSk+PjJdKSsodzw8NikrNDk+PjBdPTAsMCE9KDEmYVtmKzExNj4+Ml18MCkmJigwfChHPTB8YVsoUj0wfGFbZisxOTY+PjJd''@;'; + put 'put ''KSsodzw8Nik+PjJdKSk+MCl7Zm9yKHA9MHxhW1IrKHc8PDYpKzQ+PjJdLEE9KDB8KG09RystMXwwKSkvMnwwLGY9MDshKCgwfGYpPigwfEEpKTspY3AoMHxhW3ArKGY8PDIpPj4yXSwwfGFbcCsobS1mPDwyKT4+Ml0pLGY9ZisxfDA7Zj0wfGFbTT4+Ml19dz13KzF8MH0oMHxBYShsKSk9PSgw''@;'; + put 'put ''fGwpJiYoMHxYQygwKSk+MCYmZEkobCwwKSxmSihEKSxhZT1LfWZ1bmN0aW9uIExZKGwpe3ZhciBiLGssTSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxEPTA7Zm9yKGI9KGM9MHxydFsyMzgrKGw9MHxhWyhNPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXSk8PDE2Pj4xNixrPWwrMTk2fDAscD1mPTB8''@;'; + put 'put ''cnRbbCsyMzY+PjFdOyEoKDB8cCk+KDB8YikpOyl7Zm9yKEE9MHxhWyh3PTB8YVtrPj4yXSkrKHA8PDYpPj4yXSx3PXcrKHA8PDYpKzR8MCxtPTA7ISgoMHxtKT49KDB8QSkpOylhWzIzNisoRD0wfGFbMTYrKDB8YVsoMHxhW3c+PjJdKSsobTw8Mik+PjJdKT4+Ml0pPj4yXT1+fitfW0QrMTY+''@;'; + put 'put ''PjNdLG09bSsxfDA7cD1wKzF8MH1mb3IoOyEoKDB8Zik+KGM8PDE2Pj4xNnwwKSk7KWZlWygwfGFbMTk2KygwfGFbMTYrKDB8YVs0Njc0MV0pPj4yXSk+PjJdKSsoZjw8NikrNDk+PjBdPTAseDEoMHxhWyhEPTB8YVtsKzE5Nj4+Ml0pKyhmPDw2KSs0Pj4yXSwwfGFbRCsoZjw8Nik+PjJdLDQs''@;'; + put 'put ''NjIpLGY9ZisxfDAsYz0wfHJ0WzIzOCsoRD0wfGFbTT4+Ml0pPj4xXSxsPUR9ZnVuY3Rpb24gSTBlKGwsYyl7dmFyIG0sZj0wLHA9MDtmb3IobT0oMHwoMHwoY3w9MCkpJTQpPDImMSxmPTB8YVsxNisobHw9MCk+PjJdLDEmYz8oYz0wfHJ0W2YrMjM4Pj4xXSxwPS0xLGY9MHxydFtmKzIzNj4+''@;'; + put 'put ''MV0sYz0oKGM8PDE2Pj4xNj49KDB8cnRbMjM4KygwfGFbMTYrKDB8YVs0Njc0MV0pPj4yXSk+PjFdKSk8PDMxPj4zMSkrKGM8PDE2Pj4xNil8MCk6KGM9MHxydFtmKzIzNj4+MV0scD0xLGY9MHxydFtmKzIzOD4+MV0sYz0oYzw8MTY+PjE2PD0oMHxydFsyMzYrKDB8YVsxNisoMHxhWzQ2NzQx''@;'; + put 'put ''XSk+PjJdKT4+MV0pJjEpKyhjPDwxNj4+MTYpfDApLGY9cCtmfDA7KDB8YykhPSgwfGYpOylMMGUobCxjLG0sMjU1JigwfFJZKGwsYyxjLXB8MCkpKSxjPWMrcHwwO2RJKGwsMV5tKX1mdW5jdGlvbiBkSShsLGMpe2N8PTA7dmFyIEEsdyxiLGY9MCxwPTAsbT0wO2Zvcih3PTB8cnRbMjM4Kyhw''@;'; + put 'put ''PTB8YVsoYj0xNisobHw9MCl8MCk+PjJdKT4+MV0sbT1wKzE5NnwwLGY9KEE9MHxydFtwKzIzNj4+MV0pPDwxNj4+MTY7Oyl7aWYoKDB8Zik+KDB8dykpe209QTticmVha31mZVsoMHxhW20+PjJdKSsoZjw8NikrNDg+PjBdPTEsZj1mKzF8MH1mb3IoOzspe2ZvcihmPTAsbT1tPDwxNj4+MTY7''@;'; + put 'put ''ISgoMHxtKT4oMHxydFtwKzIzOD4+MV0pKTspMHxmZVsoMHxhW3ArMTk2Pj4yXSkrKG08PDYpKzQ4Pj4wXSYmKGY9KDB8T1kobCxtLGMpKStmfDAscD0wfGFbYj4+Ml0pLG09bSsxfDA7aWYoKDB8Zik8PTApYnJlYWs7bT0wfHJ0W3ArMjM2Pj4xXX19ZnVuY3Rpb24gRDBlKGwpe3ZhciBSLGM9''@;'; + put 'put ''MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxHPTAsSz0wO0Q9MHxydFsyMzgrKGM9MHxhWyhSPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXTtlOmZvcig7Oyl7aWYoKDB8RCk8KDB8cnRbYysyMzY+PjFdKSl7Yz0xNjticmVha31mZVsoZj0wfGFbYysxOTY+PjJdKSsoRDw8Nikr''@;'; + put 'put ''NDg+PjBdPTAsRz0oMHxEKT4wLEs9RCsxfDAscD0wO3Q6Zm9yKDs7KXtmb3Ioaz0oMHxhW2YrKEQ8PDYpPj4yXSktMXwwLE09ZisoRDw8NikrNHwwLGI9ZisoSzw8Nil8MDs7KXtpZigoMHxwKT49KDB8aykpYnJlYWsgdDtpZigoMHxhWzIzNisoMHxhWzE2KyhBPTB8YVsodz0wfGFbTT4+Ml0p''@;'; + put 'put ''KyhwPDwyKT4+Ml0pPj4yXSk+PjJdKT49KDB8YVsyMzYrKDB8YVsxNisodz0wfGFbdysoKHA9cCsxfDApPDwyKT4+Ml0pPj4yXSk+PjJdKSl7Yz03O2JyZWFrIGV9aWYoISgwfHBJKGwsQSx3KSkmJihHPyhmPTB8bnkoQSx3KSxtPTB8bnkodyxBKSk6KGY9MCxtPTApLCgwfGFbYj4+Ml0pPjAm''@;'; + put 'put ''JihmPSgwfHJ5KEEsdykpK2Z8MCxtPSgwfHJ5KHcsQSkpK218MCksKDB8bSk8PSgwfGYpKSlicmVha31XNihsLEQsQSx3KSxmPTB8YVsxOTYrKGM9MHxhW1I+PjJdKT4+Ml19RD1EKy0xfDB9aWYoNz09KDB8YykpUHIoODYyNjMsODU3ODEsNzIxLDg2Mjg5KTtlbHNlIGlmKDE2PT0oMHxjKSly''@;'; + put 'put ''ZXR1cm59ZnVuY3Rpb24gcEkobCxjLGYpe2x8PTA7dmFyIG0sQSx3LHA9MCxiPTAsaz0wO0E9KDB8KHc9MHxhWzIxMisoYj0wfGFbMTYrKGN8PTApPj4yXSk+PjJdKSkhPSgwfChtPTB8YVsyMTIrKHA9MHxhWzE2KyhmfD0wKT4+Ml0pPj4yXSkpO2Rve2lmKDB8ZmVbMTkzNzY5XSlBP2w9MTpr''@;'; + put 'put ''PTk7ZWxzZSBpZigwPT0oMHxtKXwwPT0oMHx3KXwxXkEpaz05O2Vsc2V7aWYoNz09KDB8ZmVbYisxNTk+PjBdKSYmMT09KDB8ZmVbYisxNTY+PjBdKSl7bD0wO2JyZWFrfWlmKDc9PSgwfGZlW3ArMTU5Pj4wXSkmJjE9PSgwfGZlW3ArMTU2Pj4wXSkpe2w9MDticmVha31sPTF9fXdoaWxlKDAp''@;'; + put 'put ''O3JldHVybiA5PT0oMHxrKSYmKChsPTB8YVsoMHxhWzE5NisocD0wfGFbbCsxNj4+Ml0pPj4yXSkrKGFbYisyMzI+PjJdPDw2KSs1Nj4+Ml0pPyhrPTB8QXIoMHxhW2wrND4+Ml0sMHxhWzI4NCsoMHxhWygoYj0wPT0oMSZhW3ArMTE2Pj4yXXwwKSk/YzpmKSsxNj4+Ml0pPj4yXSksbD0wfGZl''@;'; + put 'put ''WygwfGFbbCs4Pj4yXSkrKCgwfGFbMjg0KygwfGFbKGI/ZjpjKSsxNj4+Ml0pPj4yXSkrayk+PjBdKTpsPTApLDB8bH1mdW5jdGlvbiBueShsLGMpe3ZhciBrLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MCxEPTA7Zm9yKGs9MTYrKGx8PTApfDAsdz0wfGFbMTcyKygwfGFbMTYrKGN8PTAp''@;'; + put 'put ''Pj4yXSk+PjJdLGM9MDtsPTB8YVt3Pj4yXTspe2ZvcihiPTB8cnRbMTU0KyhBPTB8YVtsKzE2Pj4yXSk+PjFdLG09MHxhWzIzNisoMHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0sQT1BKzE2fDAscD0wfGFbMTcyKygwfGFbaz4+Ml0pPj4y''@;'; + put 'put ''XSxsPWM7Yz0wfGFbcD4+Ml07KSgwfChmPSgwfGFbMjM2KygwfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktbXwwKSk8PTA/MD09KDB8ZikmJitfWzE2KyhNPTB8YVtjKzE2Pj4yXSk+PjNdPitfW0E+PjNdJiYoYz1NLEQ9OSk6KGM9MHxh''@;'; + put 'put ''W2MrMTY+PjJdLEQ9OSksOT09KDB8RCkmJihEPTAsbD0oMHxBcigwfHJ0W2MrMTU0Pj4xXSxiKSkrbHwwKSxwPXArNHwwO3c9dys0fDAsYz1sfXJldHVybiAwfGN9ZnVuY3Rpb24gcnkobCxjKXt2YXIgayxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wO2ZvcihrPTE2KyhsfD0wKXww''@;'; + put 'put ''LHc9MHxhWzE4MCsoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSxjPTA7bD0wfGFbdz4+Ml07KXtmb3IoYj0wfHJ0WzE1NCsoQT0wfGFbbCsxNj4+Ml0pPj4xXSxtPTB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSxBPUErNTZ8''@;'; + put 'put ''MCxwPTB8YVsxODArKDB8YVtrPj4yXSk+PjJdLGw9YztjPTB8YVtwPj4yXTspKDB8KGY9KDB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktbXwwKSk8PTA/MD09KDB8ZikmJitfWzU2KyhNPTB8YVtjKzE2Pj4yXSk+PjNd''@;'; + put 'put ''PitfW0E+PjNdJiYoYz1NLEQ9OSk6KGM9MHxhW2MrMTY+PjJdLEQ9OSksOT09KDB8RCkmJihEPTAsbD0oMHxBcigwfHJ0W2MrMTU0Pj4xXSxiKSkrbHwwKSxwPXArNHwwO3c9dys0fDAsYz1sfXJldHVybiAwfGN9ZnVuY3Rpb24gVzYobCxjLGYscCl7bHw9MCxjfD0wO3ZhciBtPTAsQT0wLHc9''@;'; + put 'put ''MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MDtpZigodz0wfGZlWzE1NisoMHxhWzE2KyhmfD0wKT4+Ml0pPj4wXSk8PDI0Pj4yNCE9KDB8ZmVbMTU2KygwfGFbMTYrKHB8PTApPj4yXSk+PjBdKSl7Zm9yKGs9MHxhWyhNPTB8YVsxOTYrKDB8YVsoYj1sKzE2fDApPj4yXSk+PjJdKSsoYzw8Nik+''@;'; + put 'put ''PjJdLE09TSsoYzw8NikrNHwwLGw9MCxtPTAsQT0wOyEoKDB8bCk+PSgwfGspKTspRz0wPT0oMHxmZVsxNTYrKDB8YVsxNisoMHxhWygwfGFbTT4+Ml0pKyhsPDwyKT4+Ml0pPj4yXSk+PjBdKSxsPWwrMXwwLG09bSsoMSZHKXwwLEE9QSsoMSYoMV5HKSl8MDtmb3Iodz13PDwyND4+MjQ9PTAs''@;'; + put 'put ''QT0oMHxtKTwoMHxBKT93P2Y6cDp3P3A6Zix3PTAsbD0wOyEoKDB8bCk+PSgwfGspKTspdz0oMHxhWygwfGFbTT4+Ml0pKyhsPDwyKT4+Ml0pPT0oMHxBKT9sOncsbD1sKzF8MDtmb3IoRz0wPT0oMHxmZVsxNTYrKDB8YVtBKzE2Pj4yXSk+PjBdKSYxLFI9MCxtPXc7Oyl7aWYobD1tKy0xfDAs''@;'; + put 'put ''KDB8bSk8PTApe0Q9MCxsPXc7YnJlYWt9aWYoKDB8ZmVbMTU2KygwfGFbMTYrKDB8YVsoMHxhW00+PjJdKSsobDw8Mik+PjJdKT4+Ml0pPj4wXSkhPSgwfEcpKXtEPTAsbD13O2JyZWFrfVI9UisxfDAsbT1sfWZvcig7ISgoMHwobD1sKzF8MCkpPj0oMHxrKXx8KDB8ZmVbMTU2KygwfGFbMTYr''@;'; + put 'put ''KDB8YVsoMHxhW00+PjJdKSsobDw8Mik+PjJdKT4+Ml0pPj4wXSkhPSgwfEcpKTspRD1EKzF8MDtmb3IoY3AoZixwKSxrPTB8YVsoYj0wfGFbMTk2KygwfGFbYj4+Ml0pPj4yXSkrKGM8PDYpPj4yXSxiPWIrKGM8PDYpKzR8MCxsPTA7Oyl7aWYoKDB8bCk+PSgwfGspKXtBPTAsbT13O2JyZWFr''@;'; + put 'put ''fXc9KDB8YVsoMHxhW2I+PjJdKSsobDw8Mik+PjJdKT09KDB8QSk/bDp3LGw9bCsxfDB9Zm9yKDs7KXtpZihsPW0rLTF8MCwoMHxtKTw9MCl7bT0wLGw9dzticmVha31pZigoMHxmZVsxNTYrKDB8YVsxNisoMHxhWygwfGFbYj4+Ml0pKyhsPDwyKT4+Ml0pPj4yXSk+PjBdKSE9KDB8Rykpe209''@;'; + put 'put ''MCxsPXc7YnJlYWt9QT1BKzF8MCxtPWx9Zm9yKDshKCgwfChsPWwrMXwwKSk+PSgwfGspfHwoMHxmZVsxNTYrKDB8YVsxNisoMHxhWygwfGFbYj4+Ml0pKyhsPDwyKT4+Ml0pPj4yXSk+PjBdKSE9KDB8RykpOyltPW0rMXwwOygwfCgoMHwoYz1BLW18MCkpPi0xP2M6MC1jfDApKT4oMHwoKDB8''@;'; + put 'put ''KEc9Ui1EfDApKT4tMT9HOjAtR3wwKSkmJmNwKGYscCl9fWZ1bmN0aW9uIGNwKGwsYyl7dmFyIGYscCxBLHcsbT0wO3A9MHxhWzIzMisobT0wfGFbMTYrKGx8PTApPj4yXSk+PjJdLGY9MHxhWyhtPW0rMjM2fDApPj4yXSxhW20+PjJdPXc9MHxhWzIzNisoMHxhWyhBPTE2KyhjfD0wKXwwKT4+''@;'; + put 'put ''Ml0pPj4yXSxhWygwfGFbKDB8YVsxOTYrKDB8YVsobT0xNisoMHxhWzQ2NzQxXSl8MCk+PjJdKT4+Ml0pKyhwPDw2KSs0Pj4yXSkrKHc8PDIpPj4yXT1sLGFbMjM2KygwfGFbQT4+Ml0pPj4yXT1mLGFbKDB8YVsoMHxhWzE5NisoMHxhW20+PjJdKT4+Ml0pKyhwPDw2KSs0Pj4yXSkrKGY8PDIp''@;'; + put 'put ''Pj4yXT1jfWZ1bmN0aW9uIE9ZKGwsYyxmKXtmfD0wO3ZhciBSLEcsSyxwZSxnZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2ZlWyhEPTB8YVsxOTYrKDB8YVsoSz0xNisobHw9MCl8MCk+PjJdKT4+Ml0pKygoY3w9MCk8PDYpKzQ4Pj4wXT0wLHBlPSgwfGMpPjAsZ2U9YysxfDAs''@;'; + put 'put ''Uj0wIT0oMHxmKSxHPWMrLTF8MCxwPTAsQT0wLGY9RDtlOmZvcig7Oyl7Zm9yKGs9KDB8YVtmKyhjPDw2KT4+Ml0pLTF8MCxNPWYrKGM8PDYpKzR8MCxtPWYrKGdlPDw2KXwwLEQ9cDs7KXtpZigoMHxEKT49KDB8aykpe2Y9MTc7YnJlYWsgZX1pZigoMHxhWzIzNisoMHxhWzE2Kyh3PTB8YVso''@;'; + put 'put ''Yj0wfGFbTT4+Ml0pKyhEPDwyKT4+Ml0pPj4yXSk+PjJdKT49KDB8YVsyMzYrKDB8YVsxNisoYj0wfGFbYisoKEQ9RCsxfDApPDwyKT4+Ml0pPj4yXSk+PjJdKSl7Zj01O2JyZWFrIGV9aWYoISgwfHBJKGwsdyxiKSkpe2lmKHBlPyhmPTB8bnkodyxiKSxwPTB8bnkoYix3KSk6KGY9MCxwPTAp''@;'; + put 'put ''LCgwfGFbbT4+Ml0pPjAmJihmPSgwfHJ5KHcsYikpK2Z8MCxwPSgwfHJ5KGIsdykpK3B8MCksKDB8Zik+KDB8cCkpYnJlYWs7aWYoKDB8Zik9PSgwfHApJlImKDB8Zik+MCl7Zj1wO2JyZWFrfX19Y3AodyxiKSxBPWYtcCtBfDAsZmVbKHA9MHxhWzE5NisoMHxhWzE2KygwfGFbNDY3NDFdKT4+''@;'; + put 'put ''Ml0pPj4yXSkrKGM8PDYpKzQ5Pj4wXT0wLGZlWyhmPTB8YVsxOTYrKG09MHxhW0s+PjJdKT4+Ml0pKyhjPDw2KSs0OD4+MF09MSwoMHxydFttKzIzNj4+MV0pPCgwfGMpJiYoZmVbcCsoRzw8NikrNDk+PjBdPTAsZmVbZisoRzw8NikrNDg+PjBdPTEpLCgwfHJ0W20rMjM4Pj4xXSk8PSgwfGMp''@;'; + put 'put ''fHwoZmVbcCsoZ2U8PDYpKzQ5Pj4wXT0wLGZlW2YrKGdlPDw2KSs0OD4+MF09MSkscD1EfWlmKDU9PSgwfGYpKVByKDg2MjYzLDg1NzgxLDc3MCw4NjI5Nyk7ZWxzZSBpZigxNz09KDB8ZikpcmV0dXJuIDB8QTtyZXR1cm4gMH1mdW5jdGlvbiBSWShsLGMsZil7dmFyIE0sRCxHLEsscD0wLG09''@;'; + put 'put ''MCxBPTAsdz0wLGI9MCxrPTAsUj0wO2ZvcihLPTB8YVsobD0wfGFbMTk2KygwfGFbKEc9MTYrKGx8PTApfDApPj4yXSk+PjJdKSsoKGN8PTApPDw2KSs0Pj4yXSxNPSgwfChmfD0wKSk+KDB8YyksRD00KyhSPTB8YVs0NjczOV0pfDAsaz0wOzspe2lmKCgwfGspPj0oMHwoZj0wfGFbbCsoYzw8''@;'; + put 'put ''Nik+PjJdKSkpe2w9MCxBPTA7YnJlYWt9bD0wfGFbKGI9MTYrKDB8YVtLKyhrPDwyKT4+Ml0pfDApPj4yXTtlOmRve2lmKE0pZm9yKHc9MHxhW2wrMTgwPj4yXSxsPTAsQT0wOzspe2lmKCEoZj0wfGFbdysoQTw8Mik+PjJdKSlicmVhayBlOygwfHJ0WzE1NCsocD0wfGFbZisxNj4+Ml0pPj4x''@;'; + put 'put ''XSk+MCYmKGFbUisobDw8Mik+PjJdPWFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml08PDh8SnRbcCs4OD4+MF0sbD1sKzF8MCksQT1BKzF8MH1lbHNlIGZvcih3PTB8YVtsKzE3Mj4+Ml0sQT0wLGw9MDs7KXtpZighKGY9MHxh''@;'; + put 'put ''W3crKEE8PDIpPj4yXSkpYnJlYWsgZTsoMHxydFsxNTQrKHA9MHxhW2YrMTY+PjJdKT4+MV0pPjAmJihhW1IrKGw8PDIpPj4yXT1hWzIzNisoMHxhWzE2KygwfGFbKDM9PSgzJmFbZj4+Ml18MCk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml08PDh8SnRbcCs0OD4+MF0sbD1sKzF8MCksQT1B''@;'; + put 'put ''KzF8MH19d2hpbGUoMCk7ZTpkb3tzd2l0Y2goMHxsKXtjYXNlIDA6bT0tMTticmVhaztjYXNlIDE6bT0rKDB8YVtSPj4yXSk7YnJlYWs7Y2FzZSAyOm09KygwfCgoMHxhW0Q+PjJdKSsoMHxhW1I+PjJdKXwwKS8yKTticmVhaztkZWZhdWx0OmlmKHgxKFIsbCw0LDYwKSxmPSgwfGwpLzJ8MCwx''@;'; + put 'put ''Jmx8MCl7bT0rKDB8YVtSKyhmPDwyKT4+Ml0pO2JyZWFrIGV9aWYocD0oMHxhW1IrKGwrLTE8PDIpPj4yXSktKEE9MHxhW1IrKGY8PDIpPj4yXSl8MCwoMHwoZj0obD0wfGFbUisoZistMTw8Mik+PjJdKS0oMHxhW1I+PjJdKXwwKSk9PSgwfHApKXttPSsoMHwobCtBfDApLzIpO2JyZWFrIGV9''@;'; + put 'put ''bT0rKDB8KCgwfEFyKGYsQSkpKygwfEFyKGwscCkpfDApLyhmK3B8MCkpO2JyZWFrIGV9fXdoaWxlKDApO19bMjQwKygwfGFbYj4+Ml0pPj4zXT1tLGs9aysxfDAsbD0wfGFbMTk2KygwfGFbRz4+Ml0pPj4yXX1mb3IoOyEoKDB8QSk+PSgwfGYpKTspMD09KDB8YVsxODQrKFI9MHxhWzE2Kyhw''@;'; + put 'put ''PTB8YVtLKyhBPDwyKT4+Ml0pPj4yXSk+PjJdKSYmMD09KDB8YVtSKzE3Nj4+Ml0pJiYobD0yNTUmKDB8UHUocCl8MjU1JmwpLGY9MHxhWygwfGFbMTk2KygwfGFbRz4+Ml0pPj4yXSkrKGM8PDYpPj4yXSksQT1BKzF8MDtyZXR1cm4gMHxsfWZ1bmN0aW9uIEwwZShsLGMsZixwKXt2YXIgRyxL''@;'; + put 'put ''LGdlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAscGU9MDtmb3IoZ2U9MHxhWyhSPTB8YVsxOTYrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pKygoY3w9MCk8PDYpKzQ+PjJdLEs9MCE9KDB8KGZ8PTApKSxHPTA9PSgocHw9MCl8ZnwwKSxwPTAsZj1SPTB8YVtSKyhjPDw2KT4+Ml0s''@;'; + put 'put ''Uj1nZSsoUjw8Mil8MDtEPWYrLTF8MCwoMHxmKT4wOyl7Zj1nZTtlOmZvcig7Oyl7dDpmb3IoOzspe2lmKGY+Pj4wPj1SPj4+MClicmVhayBlO2Zvcig7Oyl7aWYoZj4+PjA+PVI+Pj4wKWJyZWFrIGU7aWYoISgoTT0rX1syNDArKDB8YVsxNisoaz0wfGFbZj4+Ml0pPj4yXSk+PjNdKTwwKSli''@;'; + put 'put ''cmVhaztmPWYrNHwwfWZvcihiPTA7Oyl7Zm9yKG09Yjw8MjQ+PjI0PT0wOzspe2lmKChmPWYrNHwwKT4+PjA+PVI+Pj4wKWJyZWFrIGU7aWYobSl7bT0xMTticmVha31pZighKDB8YVsyMTIrKDB8YVsxNisoQT0wfGFbZj4+Ml0pPj4yXSk+PjJdKSl7bT0xMzticmVha319aWYoMTE9PSgwfG0p''@;'; + put 'put ''P3c9QT0wfGFbZj4+Ml06MTM9PSgwfG0pJiYodz1BKSwwfHBJKGwsayx3KSljb250aW51ZSB0O2lmKCtfWzI0MCsobT0wfGFbQSsxNj4+Ml0pPj4zXT49MClicmVhaztiPTA9PSgwfGFbbSsyMTI+PjJdKT9iOjF9aWYoKDB8KG09fn5NKSk+KDB8KGI9fn4rX1syNDArKDB8YVtBKzE2Pj4yXSk+''@;'; + put 'put ''PjNdKSl8SyYoMHxtKT09KDB8YikpYnJlYWt9Y3Aoayx3KSxwPXArMXwwfWY9RCxSPUc/UistNHwwOlJ9MHxwJiYoZmVbKHBlPTB8YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyhjPDw2KSs0OT4+MF09MCwoMHxjKT4wKSYmKGZlW3BlKyhjKy0xPDw2KSs0OT4+MF09MCl9''@;'; + put 'put ''ZnVuY3Rpb24gUHUobCl7dmFyIEEsYz0wLGY9MCxwPTAsbT0wO2lmKCgwfGFbMjAwKyhBPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0pPjApe2ZvcihsPTB8YVsoMz09KDMmYVsobD0wfGFbKG09MHxhW0ErMTk2Pj4yXSk+PjJdKT4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSxmPTE7cD0wfGFbbSso''@;'; + put 'put ''Zjw8Mik+PjJdOylsPSgwfGFbMjM2KygwfGFbMTYrKHA9MHxhWygzPT0oMyZhW3A+PjJdfDApP3A6cCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4oMHxhWzIzNisoMHxhW2wrMTY+PjJdKT4+Ml0pP3A6bCxmPWYrMXwwOyhjPStfWzI0MCsoMHxhW2wrMTY+PjJdKT4+M10pPj0wPyhfW0ErMjQw''@;'; + put 'put ''Pj4zXT1jKzEsbD0wKTpsPTF9ZWxzZSBpZigoMHxhW0ErMTkyPj4yXSk+MCl7Zm9yKGw9MSxmPTB8YVsoMj09KDMmYVsoZj0wfGFbKHA9MHxhW0ErMTg4Pj4yXSk+PjJdKT4+Ml18MCk/ZjpmKy00OHwwKSs0MD4+Ml07bT0wfGFbcCsobDw8Mik+PjJdOylsPWwrMXwwLGY9KDB8YVsyMzYrKDB8''@;'; + put 'put ''YVsxNisobT0wfGFbKDI9PSgzJmFbbT4+Ml18MCk/bTptKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhWzIzNisoMHxhW2YrMTY+PjJdKT4+Ml0pP206ZjsoYz0rX1syNDArKDB8YVtmKzE2Pj4yXSk+PjNdKT4wPyhfW0ErMjQwPj4zXT1jKy0xLGw9MCk6bD0xfWVsc2UgbD0xO3JldHVy''@;'; + put 'put ''biAwfGx9ZnVuY3Rpb24gUFkobCxjKXt2YXIgQSxiLGssRyxmPTAscD0wLG09MCx3PTAsTT0wLEQ9MCxSPTA7Rz1hZSxhZT1hZSs5NnwwLFI9Rys2NHwwLEQ9Rys0OHwwLEE9RysyNHwwLHA9Ryx3PTB8YVsoZj0wfGFbMTk2KygwfGFbKE09MTYrKGx8PTApfDApPj4yXSk+PjJdKSsoKGs9MHxh''@;'; + put 'put ''WzIzMisoMHxhWyhiPTE2KyhjfD0wKXwwKT4+Ml0pPj4yXSk8PDYpPj4yXTtkb3tpZigoMHxhW2YrKGs8PDYpKzg+PjJdKT49MSl7aWYoYVsoMHxhW2YrKGs8PDYpKzQ+PjJdKSsodzw8Mik+PjJdPWMsYVsyMzYrKDB8YVtiPj4yXSk+PjJdPXcsYVsoZj0ocD0wfGFbMTk2KyhsPTB8YVtNPj4y''@;'; + put 'put ''XSk+PjJdKSsoazw8Nil8MCk+PjJdPTErKG09MHxhW2Y+PjJdKSwoMHxtKT49KDB8YVtwKyhrPDw2KSs4Pj4yXSkmJlByKDg2Mzc3LDg1NzgxLDEzNDYsODY0MTMpLCgwfHcpPigwfChtPTB8YVsoMHxhWzE5NisoMHxhWzE2KygwfGFbNDY3NDFdKT4+Ml0pPj4yXSkrKGs8PDYpKzg+PjJdKSkp''@;'; + put 'put ''e009MHx0aShjKSxEPTB8YVsyMzYrKDB8YVtiPj4yXSk+PjJdLFI9MHxhWygwfGFbMTk2KygwfGFbMTYrKDB8YVs0Njc0MV0pPj4yXSk+PjJdKSsoazw8NikrOD4+Ml0sYVtBPj4yXT0xMzU5LGFbQSs0Pj4yXT1NLGFbQSs4Pj4yXT1ELGFbQSsxMj4+Ml09ayxhW0ErMTY+PjJdPVIsJHIoMSw4''@;'; + put 'put ''NjQyOSxBKTticmVha31pZigoMHxrKTwoMHwoZj0wfHJ0W2wrMjM2Pj4xXSkpfCgwfGspPigobD0wfHJ0W2wrMjM4Pj4xXSk8PDE2Pj4xNnwwKSl7YVtEPj4yXT0xMzY0LGFbRCs0Pj4yXT1rLGFbRCs4Pj4yXT1mLGFbRCsxMj4+Ml09bDw8MTY+PjE2LCRyKDEsODY1MDIsRCk7YnJlYWt9KCgw''@;'; + put 'put ''fGFbcCsoazw8NikrND4+Ml0pKyh3PDwyKXwwKT4+PjA+KCgwfGFbcCsoazw8NikrMTI+PjJdKSsobTw8Mil8MCk+Pj4wJiYodz0wfHRpKGMpLE09KDB8YVsoRD0wfGFbMTk2KygwfGFbTT4+Ml0pPj4yXSkrKGs8PDYpKzQ+PjJdKSsoYVsyMzYrKDB8YVtiPj4yXSk+PjJdPDwyKXwwLEQ9KDB8''@;'; + put 'put ''YVtEKyhrPDw2KSsxMj4+Ml0pKyhhWygwfGFbMTk2KygwfGFbMTYrKDB8YVs0Njc0MV0pPj4yXSk+PjJdKSsoazw8NikrOD4+Ml08PDIpfDAsYVtSPj4yXT0xMzcwLGFbUis0Pj4yXT1rLGFbUis4Pj4yXT13LGFbUisxMj4+Ml09TSxhW1IrMTY+PjJdPWssYVtSKzIwPj4yXT1rLGFbUisyND4+''@;'; + put 'put ''Ml09RCwkcigxLDg2NTYzLFIpKX1lbHNlIEQ9MHx0aShsKSxSPTB8dGkoYyksYVtwPj4yXT0xMzM5LGFbcCs0Pj4yXT1ELGFbcCs4Pj4yXT1SLGFbcCsxMj4+Ml09ayxhW3ArMTY+PjJdPXcsJHIoMSw4NjMyMixwKX13aGlsZSgwKTthZT1HfWZ1bmN0aW9uIEtDKGwsYyxmKXtsfD0wLGZ8PTA7''@;'; + put 'put ''dmFyIEEscD0wLG09MDtBPTE2KyhjfD0wKXwwO2U6ZG97aWYoZilmb3IobT0wOzspe2lmKCgwfG0pPj0oMHxhWzE3NisoYz0wfGFbQT4+Ml0pPj4yXSkpYnJlYWsgZTtmPTQ4KyhjPTB8YVsoMHxhW2MrMTcyPj4yXSkrKG08PDIpPj4yXSl8MCwwfGZlWyhwPTE1NysoMHxhWzE2KygwfGFbKDM9''@;'; + put 'put ''PSgzJmFbYz4+Ml18MCk/YzpmKSs0MD4+Ml0pPj4yXSl8MCk+PjBdfHwoZmVbcD4+MF09MSxENyhsLDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSkpLG09bSsxfDB9ZWxzZSBmb3IobT0wOzspe2lmKCgwfG0pPj0oMHxhWzE4NCsoYz0wfGFbQT4+Ml0pPj4yXSkpYnJlYWsgZTtm''@;'; + put 'put ''PShjPTB8YVsoMHxhW2MrMTgwPj4yXSkrKG08PDIpPj4yXSktNDh8MCwwfGZlWyhwPTE1NysoMHxhWzE2KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpmKSs0MD4+Ml0pPj4yXSl8MCk+PjBdfHwoZmVbcD4+MF09MSxENyhsLDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSkpLG09''@;'; + put 'put ''bSsxfDB9fXdoaWxlKDApfWZ1bmN0aW9uIEZZKGwsYyl7dmFyIFIsSyxwZSxiZSxPZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxHPTAsZ2U9MDtmb3IoT2U9YWUsYWU9YWUrMTZ8MCxiZT1PZSxwZT0wfGFbKGY9MHxhWzE5NisoMHxhWyhwPTE2KyhsfD0wKXwwKT4+Ml0p''@;'; + put 'put ''Pj4yXSkrKChjfD0wKTw8NikrND4+Ml0sKDB8YVs0Njc0NV0pPigwfChsPTB8YVsoMHxhWzE5NisoMHxhWzE2KygwfGFbNDY3NDFdKT4+Ml0pPj4yXSkrKChnZT1jKzF8MCk8PDYpPj4yXSkpP0c9MHxhWzQ2NzQ2XTooYVs0Njc0NV09bD1sKzF8MCxsPShmPTB8YVs0Njc0Nl0pPzB8VjAoZixs''@;'; + put 'put ''PDwyKTowfFFuKGw8PDIpLGFbNDY3NDZdPWwsZj0wfGFbMTk2KygwfGFbcD4+Ml0pPj4yXSxHPWwpLEs9ZisoZ2U8PDYpfDAsbD0wOyEoKDB8bCk+PSgwfGFbSz4+Ml0pKTspYVtHKyhsPDwyKT4+Ml09MCxsPWwrMXwwO2ZvcihSPWYrKGM8PDYpfDAsRD0wLG09MCxsPTAsdz1HOyEoKDB8RCk+''@;'; + put 'put ''PSgwfChiPTB8YVtSPj4yXSkpKTspe009MHxhWzE4MCsoMHxhWzE2KygwfGFbcGUrKEQ8PDIpPj4yXSk+PjJdKT4+Ml07ZTpkb3tpZigoMHxtKT4wKWZvcihrPTA7Oyl7aWYoIShwPTB8YVtNKyhrPDwyKT4+Ml0pKWJyZWFrIGU7Zm9yKGI9cCsxNnwwLEE9MHxhWzIzNisoMHxhWzE2KygwfGFb''@;'; + put 'put ''KDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdO3A9QSsxfDAsISgoMHxBKT49KDB8bSkpOylBPXAsbD0oMHxBcigwfGFbdysocDw8Mik+PjJdLDB8cnRbMTU0KygwfGFbYj4+Ml0pPj4xXSkpK2x8MDtrPWsrMXwwfX13aGlsZSgwKTtmb3IoQT0wO3A9MHxhW00r''@;'; + put 'put ''KEE8PDIpPj4yXTspYVsoaz1HKygodz0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPDwyKXwwKT4+Ml09KDB8YVtrPj4yXSkrKDB8cnRbMTU0KygwfGFbcCsxNj4+Ml0pPj4xXSksbT0oMHx3KT4oMHxtKT93Om0sQT1B''@;'; + put 'put ''KzF8MCx3PUc7RD1EKzF8MH1mb3IoQT1mKyhjPDw2KSs0fDAsbT0wOyEoKDB8bSk+PSgwfGIpKTspMHxmZVsxNDUrKHA9MHxhWzE2KygwfGFbKDB8YVtBPj4yXSkrKG08PDIpPj4yXSk+PjJdKT4+MF0mJihhW2JlPj4yXT1hWyhjPXArMTgwfDApPj4yXSxhW2JlKzQ+PjJdPWFbYys0Pj4yXSxs''@;'; + put 'put ''PSgwfGdJKGJlLDEpKStsfDApLG09bSsxfDA7Zm9yKEE9MHxhW0s+PjJdLG09ZisoZ2U8PDYpKzR8MCxwPTA7ISgoMHxwKT49KDB8QSkpOykwfGZlWzE0NSsoZj0wfGFbMTYrKDB8YVsoMHxhW20+PjJdKSsocDw8Mik+PjJdKT4+Ml0pPj4wXSYmKGFbYmU+PjJdPWFbKGdlPWYrMTcyfDApPj4y''@;'; + put 'put ''XSxhW2JlKzQ+PjJdPWFbZ2UrND4+Ml0sbD0oMHxnSShiZSwtMSkpK2x8MCkscD1wKzF8MDtyZXR1cm4gYWU9T2UsMHxsfWZ1bmN0aW9uIGdJKGwsYyl7dmFyIGssRCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxNPTA7RD0oMHwoY3w9MCkpPDEsaz0wfGFbKGx8PTApPj4yXSxjPTAsbD0wO2U6''@;'; + put 'put ''Zm9yKDtNPTB8YVtrKyhjPDwyKT4+Ml0sTTspaWYoYz1jKzF8MCxEKWZvcih3PU0rNDh8MCxiPU0rMTZ8MCxBPWM7Oyl7aWYoIShmPTB8YVtrKyhBPDwyKT4+Ml0pKWNvbnRpbnVlIGU7KCtfWzU2KyhwPTB8YVtmKzE2Pj4yXSk+PjNdLStfWzU2KyhtPTB8YVtiPj4yXSk+PjNdKSorKCgwfGFb''@;'; + put 'put ''MjM2KygwfGFbMTYrKDB8YVsoMz09KDMmYVtmPj4yXXwwKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzYrKDB8YVsxNisoMHxhWygzPT0oMyZhW00+PjJdfDApP006dykrNDA+PjJdKT4+Ml0pPj4yXSl8MCk8MCYmKGw9KDB8QXIoMHxydFtwKzE1ND4+MV0sMHxydFttKzE1''@;'; + put 'put ''ND4+MV0pKStsfDApLEE9QSsxfDB9ZWxzZSBmb3Iodz1NKy00OHwwLGI9TSsxNnwwLEE9Yzs7KXtpZighKGY9MHxhW2srKEE8PDIpPj4yXSkpY29udGludWUgZTsoK19bMTYrKHA9MHxhW2YrMTY+PjJdKT4+M10tK19bMTYrKG09MHxhW2I+PjJdKT4+M10pKisoKDB8YVsyMzYrKDB8YVsxNiso''@;'; + put 'put ''MHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhW00+PjJdfDApP006dykrNDA+PjJdKT4+Ml0pPj4yXSl8MCk8MCYmKGw9KDB8QXIoMHxydFtwKzE1ND4+MV0sMHxydFttKzE1ND4+MV0pKStsfDAp''@;'; + put 'put ''LEE9QSsxfDB9cmV0dXJuIDB8bH1mdW5jdGlvbiBtSShsKXt2YXIgQSx3LGM9MCxmPTAscD0wLG09MCxiPTAsaz0wO2Zvcih3PTB8dnIoOCsocnRbMjM4KygwfGFbKEE9MTYrKGx8PTApfDApPj4yXSk+PjFdPDwyKXwwKSxtPTB8RHQobCk7bTspe2ZvcihhWyhwPXcrKGFbMjMyKygwfGFbbSsx''@;'; + put 'put ''Nj4+Ml0pPj4yXTw8Mil8MCk+PjJdPTErKDB8YVtwPj4yXSkscD0wfHcwKGwsbSk7cDspe2ZvcihmPShrPSgwfChjPTB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHwoYj0zJmFbcD4+Ml0pKT9wOnArNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPigwfChiPTB8YVsyMzIrKDB8YVsxNisoMHxh''@;'; + put 'put ''WygyPT0oMHxiKT9wOnArLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKSk/YzpiLGM9az9iOmM7ISgoMHwoYz1jKzF8MCkpPj0oMHxmKSk7KWFbKGs9dysoYzw8Mil8MCk+PjJdPTErKDB8YVtrPj4yXSk7cD0wfFMwKGwscCl9bT0wfHp0KGwsbSl9Zm9yKHA9MHx2cigxMjgrKHJ0WzIzOCsoMHxh''@;'; + put 'put ''W0E+PjJdKT4+MV08PDYpfDApLGFbMTk2KyhmPTB8YVtBPj4yXSk+PjJdPXAsYz0wfHJ0W2YrMjM2Pj4xXTshKCgwfGMpPigwfHJ0W2YrMjM4Pj4xXSkpOylhW3ArKGM8PDYpPj4yXT1mPTB8YVsoYj13KyhjPDwyKXwwKT4+Ml0sYVtwKyhjPDw2KSs4Pj4yXT1mLGI9MHx2cig0KyhhW2I+PjJd''@;'; + put 'put ''PDwyKXwwKSxhWyhrPTB8YVsxOTYrKGY9MHxhW0E+PjJdKT4+Ml0pKyhjPDw2KSs0Pj4yXT1iLGFbaysoYzw8NikrMTI+PjJdPWIsYz1jKzF8MCxwPWs7RnQodyl9ZnVuY3Rpb24gTlkobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIE0sbT0wLEE9MCx3PTAsYj0wLGs9MDtmb3IoTT0xNiso''@;'; + put 'put ''bHw9MCl8MCxBPTE7ISgoMHxBKT4oMHxhWzE4MCsobT0wfGFbTT4+Ml0pPj4yXSkpOylrPTB8TlkoMHxhWygwfGFbbSsxODQ+PjJdKSsoQTw8Mik+PjJdLGMsZixwKSxBPUErMXwwLHA9aztlOmRve2lmKCgwfEFhKGwpKSE9KDB8bCkpe2Zvcih1MigwfGMsMCxmPDwyfDApLG09MHxEdChsKTtt''@;'; + put 'put ''Oyl7Zm9yKGFbYysoYVsyMzIrKDB8YVsoYj1tKzE2fDApPj4yXSk+PjJdPDwyKT4+Ml09MSxBPTB8dzAobCxtKTtBOyl7Zm9yKGs9QSstNDh8MCx3PTB8YVsyMzIrKDB8YVtiPj4yXSk+PjJdO2Y9dysxfDAsISgoMHx3KT49KDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMyZhW0E+PjJdfDAp''@;'; + put 'put ''P0E6aykrNDA+PjJdKT4+Ml0pPj4yXSkpOylhW2MrKGY8PDIpPj4yXT0xLHc9ZjtBPTB8UzAobCxBKX1tPTB8enQobCxtKX1mb3IoQT0wfHJ0WzIzNisobT0wfGFbTT4+Ml0pPj4xXTs7KXtpZigoMHxBKT4oMHxydFttKzIzOD4+MV0pKWJyZWFrIGU7MHxhW2MrKEE8PDIpPj4yXXx8KHB8fChw''@;'; + put 'put ''PTB8ZHMoMHxBYShsKSw4NjY3NSwxKSksaDAobT0wfEdyKHAsMCwxKSwxMzc0NDcsMzA0LDEpLGFbMjMyKyh3PTB8YVsoaz1tKzE2fDApPj4yXSk+PjJdPUEsX1t3Kzk2Pj4zXT0uNSxfW3crODg+PjNdPS41LF9bdys4MD4+M109MSxhW3crMjE2Pj4yXT0xLGFbdysxNzY+PjJdPTAsdz0wfHZy''@;'; + put 'put ''KDIwKSxhWzE3MisoYj0wfGFbaz4+Ml0pPj4yXT13LGFbYisxODQ+PjJdPTAsYj0wfHZyKDIwKSxhWzE4MCsoMHxhW2s+PjJdKT4+Ml09YixXbihsLG0sMSksbT0wfGFbTT4+Ml0pLEE9QSsxfDB9fX13aGlsZSgwKTtyZXR1cm4gMHxwfWZ1bmN0aW9uIGl5KGwpe3ZhciBjLGY9MDtmb3IoVUYo''@;'; + put 'put ''bHw9MCksYz1sKzE2fDAsbD0xOyEoKDB8bCk+KDB8YVsxODArKGY9MHxhW2M+PjJdKT4+Ml0pKTspaXkoMHxhWygwfGFbZisxODQ+PjJdKSsobDw8Mik+PjJdKSxsPWwrMXwwfWZ1bmN0aW9uIE8wZShsKXt2YXIgZixjPTA7Zj0wfFZZKDB8YVsoMz09KDB8KGM9MyZhWyhsfD0wKT4+Ml0pKT9s''@;'; + put 'put ''OmwrNDh8MCkrNDA+PjJdKSxjPTB8YVsxNzMwOCsoMTIqZnwwKSsoKDB8VlkoMHxhWygyPT0oMHxjKT9sOmwrLTQ4fDApKzQwPj4yXSkpPDwyKT4+Ml0sYVsobD0xNTYrKDB8YVtsKzE2Pj4yXSl8MCk+PjJdPTB8QXIoMHxhW2w+PjJdLGMpfWZ1bmN0aW9uIFZZKGwpe3JldHVybiAwfCgxPT0o''@;'; + put 'put ''MHxmZVsxNTYrKGw9MHxhWzE2KyhsfD0wKT4+Ml0pPj4wXSk/MjooMHxmZVtsKzE2MD4+MF0pPDImMSl9ZnVuY3Rpb24gdkkobCxjKXtjfD0wLDB8YVsxOTIrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0mJihmcChsKSwkRihsKSwwfGZlWzE5NDk1NF0mJmZ1bmN0aW9uIERVKGwpe2x8PTA7dmFy''@;'; + put 'put ''IEcsSyxiZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLHBlPTAsZ2U9MDtiZT1hZSxhZT1hZSsxNnwwLEs9YmUsZ2U9NCxwZT0wfEIwKDQwKSxhW3BlPj4yXT0wLGY9MHxhWyhHPWwrMTZ8MCk+PjJdO2U6ZG97aWYoKCgwfHJ0W2YrMjM4Pj4xXSktKDB8cnRb''@;'; + put 'put ''ZisyMzY+PjFdKXwwKT49Mil7TT0xLGM9ZixmPTB8YVtmKzE5Nj4+Ml07dDpmb3IoOzspe2lmKCEoMHxhW2YrKChEPU0rMXwwKTw8Nik+PjJdKSl7Uj0xNTticmVha31mb3Ioaz0wOzspe2lmKCgwfGspPj0oMHwoQT0wfGFbZisoTTw8Nik+PjJdKSkpe009RDtjb250aW51ZSB0fWlmKE1uPTAs''@;'; + put 'put ''Yz0wfGEwKDIwLDB8KGI9MHxhWygwfGFbZisoTTw8NikrND4+Ml0pKyhrPDwyKT4+Ml0pKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfHBlLDB8Z2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtjPURuO2JyZWFrIHR9aWYo''@;'; + put 'put ''Yzw8MjQ+PjI0KXtmb3Iodz1rLGM9QTshKCgwfChtPXcrMXwwKSk+PSgwfGMpKTspe2lmKE1uPTAsYz0wfEZsKDY1LDB8YiwwfGFbKDB8YVtmKyhNPDw2KSs0Pj4yXSkrKG08PDIpPj4yXSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxwZSwwfGdl''@;'; + put 'put ''KSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKSl7Yz1EbjticmVhayB0fWlmKCEoYzw8MjQ+PjI0KSlicmVhazt3PW0sZj1jPTB8YVsxOTYrKDB8YVtHPj4yXSk+PjJdLGM9MHxhW2MrKE08PDYpPj4yXX1pZigobS1rfDApPjEmJihNbj0wLGN1KDYsMHxsLDB8TSwwfGssMHx3''@;'; + put 'put ''LDEpLGM9TW4sTW49MCwwIT0oMHxjKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW2M+PjJdLDB8cGUsMHxnZSkpfHx6ZSgwfGMsMHx4biksRG49eG4pOmY9LTEsMT09KDB8ZikpKXtjPURuO2JyZWFrIHR9fWs9aysxfDAsYz1mPTB8YVtHPj4yXSxmPTB8YVtmKzE5Nj4+Ml19fXQ6ZG97aWYoMTU9''@;'; + put 'put ''PSgwfFIpKXtmb3IoOygwfE0pPjA7KXtmb3Ioaz0wOyEoKDB8ayk+PSgwfChBPTB8YVsoZj0wfGFbYysxOTY+PjJdKSsoTTw8Nik+PjJdKSkpOyl7aWYoTW49MCxjPTB8YTAoMjEsMHwoYj0wfGFbKDB8YVtmKyhNPDw2KSs0Pj4yXSkrKGs8PDIpPj4yXSkpLHA9TW4sTW49MCwwIT0oMHxwKSYw''@;'; + put 'put ''IT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8cGUsMHxnZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMT09KDB8bSkpe2M9RG47YnJlYWsgdH1pZihjPDwyND4+MjQpe2Zvcih3PWssYz1BOyEoKDB8KG09dysxfDApKT49KDB8YykpOyl7aWYoTW49MCxjPTB8RmwoNjYsMHxiLDB8''@;'; + put 'put ''YVsoMHxhW2YrKE08PDYpKzQ+PjJdKSsobTw8Mik+PjJdKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfHBlLDB8Z2UpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKXtjPURuO2JyZWFrIHR9aWYoIShjPDwyND4+MjQpKWJyZWFr''@;'; + put 'put ''O3c9bSxmPWM9MHxhWzE5NisoMHxhW0c+PjJdKT4+Ml0sYz0wfGFbYysoTTw8Nik+PjJdfWlmKChtLWt8MCk+MSYmKE1uPTAsY3UoNiwwfGwsMHxNLDB8aywwfHcsMCksYz1NbixNbj0wLDAhPSgwfGMpJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbYz4+Ml0sMHxwZSwwfGdlKSl8fHplKDB8Yyww''@;'; + put 'put ''fHhuKSxEbj14bik6Zj0tMSwxPT0oMHxmKSkpe2M9RG47YnJlYWsgdH19az1rKzF8MCxjPTB8YVtHPj4yXX1NPU0rLTF8MCxSPTE1fXBlPTB8UGYoMTg3MDE2LDEsMHxwZSwwfGdlKSxnZT1EbixjPU1uPTAsTW49MCwwIT0oMHxjKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW2M+PjJdLDB8cGUs''@;'; + put 'put ''MHxnZSkpfHx6ZSgwfGMsMHx4biksRG49eG4pOmY9LTEsYz0xPT0oMHxmKT9EbjowfX13aGlsZSgwKTt0OmZvcig7Oyl7aWYoYyl7aWYoTW49MCxKcygyMCwzLDg4MTc3LDB8SyksYz1NbixNbj0wLDAhPSgwfGMpJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbYz4+Ml0sMHxwZSwwfGdlKSl8fHpl''@;'; + put 'put ''KDB8YywwfHhuKSxEbj14bik6Zj0tMSwxPT0oMHxmKSl7Yz1Ebjtjb250aW51ZX1icmVha31mb3IocD0xOzspe2lmKCgwfHApPigwfGFbMTgwKyhjPTB8YVtHPj4yXSk+PjJdKSlicmVhayBlO2lmKE1uPTAsc3MoMTAxLDB8YVsoMHxhW2MrMTg0Pj4yXSkrKHA8PDIpPj4yXSksYz1NbixNbj0w''@;'; + put 'put ''LDAhPSgwfGMpJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbYz4+Ml0sMHxwZSwwfGdlKSl8fHplKDB8YywwfHhuKSxEbj14bik6Zj0tMSwxPT0oMHxmKSl7Yz1Ebjtjb250aW51ZSB0fXA9cCsxfDB9fX19d2hpbGUoMCk7RnQoMHxwZSksYWU9YmV9KGwpLGZ1bmN0aW9uIGpZKGwpe3ZhciBjPTAs''@;'; + put 'put ''Zj0wLHA9MDtmb3IoZnVuY3Rpb24geUkobCl7dmFyIGIsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKHc9MHxydFsyMzYrKGw9MHxhWyhiPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXTshKCgwfHcpPigwfHJ0W2wrMjM4Pj4xXSkpOyl7Zm9yKHA9MHxhWyhtPTB8YVtsKzE5Nj4+Ml0pKyh3PDw2''@;'; + put 'put ''KT4+Ml0sbT1tKyh3PDw2KSs0fDAsQT0wLGY9MDshKCgwfGYpPj0oMHxwKSk7KWFbMjM2KyhjPTB8YVsxNisoMHxhWygwfGFbbT4+Ml0pKyhmPDwyKT4+Ml0pPj4yXSk+PjJdPUEsQT0oYz02PT0oMHxmZVtjKzE1OT4+MF0pPzB8YVtjKzIxNj4+Ml06MSkrQXwwLGY9ZisxfDA7aWYoKDB8QSk+''@;'; + put 'put ''KDB8cCkpe2ZvcihsPShsPTB8YVttPj4yXSk/MHxWMChsLDQrKEE8PDIpfDApOjB8UW4oNCsoQTw8Mil8MCksYVsoZj0wfGFbMTk2KygwfGFbYj4+Ml0pPj4yXSkrKHc8PDYpKzQ+PjJdPWwsYz0wfGFbZisodzw8Nik+PjJdO2w9YystMXwwLCEoKDB8Yyk8PTApOylhWyhtPTB8YVtmKyh3PDw2''@;'; + put 'put ''KSs0Pj4yXSkrKGFbMjM2KygwfGFbMTYrKGM9MHxhW20rKGw8PDIpPj4yXSk+PjJdKT4+Ml08PDIpPj4yXT1jLGM9bCxmPTB8YVsxOTYrKDB8YVtiPj4yXSk+PjJdO2FbZisodzw8Nik+PjJdPUEsYVsoMHxhW2YrKHc8PDYpKzQ+PjJdKSsoQTw8Mik+PjJdPTAsbD0wfGFbYj4+Ml19dz13KzF8''@;'; + put 'put ''MH19KGx8PTApLGM9MTkyKygwfGFbbCsxNj4+Ml0pfDA7Yz0wfGFbYz4+Ml07KXtpZigoZj0wfGFbMjI0KyhjPTB8YVsocD1jKzE2fDApPj4yXSk+PjJdKSYmKGF5KGwsZiksYz0wfGFbcD4+Ml0pLChmPTB8YVtjKzIyOD4+Ml0pPyhheShsLGYpLGY9MHxhW3A+PjJdKTpmPWMsMHwocD0wfGFb''@;'; + put 'put ''ZisyMDQ+PjJdKSlmb3IoYz0wOzB8YVtwKyhjPDwyKT4+Ml07KWM9YysxfDA7Yz1mKzE2NHwwfX0obCksMHxmdW5jdGlvbiBtdShsKXt2YXIgTSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLEQ9MCxSPTA7Zm9yKGM9MTkyKygwfGFbKE09MTYrKGx8PTApfDApPj4yXSl8MDtjPTB8''@;'; + put 'put ''YVtjPj4yXTspe2Y9MHxhWzE4OCsoYz0wfGFbKG09YysxNnwwKT4+Ml0pPj4yXTtlOmRve2lmKGYpZm9yKHA9MDs7KXtpZighKGY9MHxhW2YrKHA8PDIpPj4yXSkpe3A9MDticmVhayBlfVEzKGYpLHA9cCsxfDAsZj0wfGFbMTg4KyhjPTB8YVttPj4yXSk+PjJdfWVsc2UgcD0wfXdoaWxlKDAp''@;'; + put 'put ''O2Zvcig7ISgoMHxwKT49KDB8YVtjKzIwOD4+Ml0pKTspKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHwoaz0zJmFbKGY9MHxhWygwfGFbYysyMDQ+PjJdKSsocDw8Mik+PjJdKT4+Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPT0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9''@;'; + put 'put ''PSgwfGspP2Y6Zis0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSYmKFEzKGYpLGM9MHxhW20+PjJdKSxwPXArMXwwO2M9YysxNjR8MH0wPT0oMHxhWzU2KyhjPTB8YVsxOTYrKGs9MHxhW00+PjJdKT4+Ml0pPj4yXSkmJigwfGFbaysxODA+PjJdKTw9MHx8KEE9MTMpO2U6ZG97aWYoMTM9PSgwfEEp''@;'; + put 'put ''KXtBPTB8YVtjKzQ+PjJdLG09MDt0OmZvcig7Oyl7aWYoIShjPTB8YVtBKyhtPDwyKT4+Ml0pKWJyZWFrIGU7Zm9yKGY9MHxhWzE5NisoMHxhW2MrMTY+PjJdKT4+Ml0sYz0wO3A9MHxhW2YrKGM8PDIpPj4yXTspe2lmKDB8YVs5Nisoaz0wfGFbcCsxNj4+Ml0pPj4yXSYmMD09KDB8ZmVbaysx''@;'; + put 'put ''MTM+PjBdKSlicmVhayB0O2M9YysxfDB9bT1tKzF8MH1qVShsKX19d2hpbGUoMCk7Zm9yKGl5KGwpLGY9MCxjPTE5MisoMHxhW00+PjJdKXwwO2M9MHxhW2M+PjJdOyl7cD0wfGFbMTg4KyhjPTB8YVsoaz1jKzE2fDApPj4yXSk+PjJdO2U6ZG97aWYocCl7Zm9yKGI9MDs7KXtpZighKG09MHxh''@;'; + put 'put ''W3ArKGI8PDIpPj4yXSkpe2I9MDticmVha313PTB8YVs5NisoQT0wfGFbbSsxNj4+Ml0pPj4yXTtkb3tpZih3KXtpZigwfGZlW0ErMTEzPj4wXSl7X1tBKzEzNj4+M109K19bKDA9PSgxJmFbMTE2KygwfGFbTT4+Ml0pPj4yXXwwKT93KzI0fDA6dyszMnwwKT4+M107YnJlYWt9SHUobSksZj0x''@;'; + put 'put ''LGM9cD0wfGFbaz4+Ml0scD0wfGFbcCsxODg+PjJdO2JyZWFrfX13aGlsZSgwKTtiPWIrMXwwfWZvcig7Oyl7aWYoKDB8Yik+PSgwfGFbYysyMDg+PjJdKSlicmVhayBlO209MHxhWygzPT0oMHwodz0zJmFbKEE9MHxhWygwfGFbYysyMDQ+PjJdKSsoYjw8Mik+PjJdKT4+Ml0pKT9BOkErNDh8''@;'; + put 'put ''MCkrNDA+PjJdLHc9MHxhWygyPT0oMHx3KT9BOkErLTQ4fDApKzQwPj4yXTtkb3tpZigoMHxtKSE9KDB8dykmJigwfGFbMjMyKygwfGFbbSsxNj4+Ml0pPj4yXSk9PSgwfGFbMjMyKygwfGFbdysxNj4+Ml0pPj4yXSkpe3A9QTtkb3twPTB8YVsxNzIrKHc9MHxhW3ArMTY+PjJdKT4+Ml19d2hp''@;'; + put 'put ''bGUoMCE9KDB8cCkpO2lmKGZlWzExMysobT0wfGFbQSsxNj4+Ml0pPj4wXT1wPTB8ZmVbdysxMTM+PjBdLG09MHxhW20rOTY+PjJdKXtpZihwPDwyND4+MjQpe19bKHc9dysxMzZ8MCk+PjNdPShSPStfWygwPT0oMSZhWzExNisoMHxhW00+PjJdKT4+Ml18MCk/bSsyNHwwOm0rMzJ8MCk+PjNd''@;'; + put 'put ''KT4oRD0rX1t3Pj4zXSk/UjpEO2JyZWFrfUh1KEEpLGY9MSxjPTB8YVtrPj4yXTticmVha319fXdoaWxlKDApO2I9YisxfDB9fX13aGlsZSgwKTtjPWMrMTY0fDB9cmV0dXJuIDB8ZiYmKGZ1bmN0aW9uIGIwZShsKXt2YXIgYixrLE0sRCxSLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLEc9MCxL''@;'; + put 'put ''PTAscGU9MCxnZT0wO2ZvcihSPWFlLGFlPWFlKzEwNDB8MCxNPVIrMTAzMnwwLEQ9UixrPVIrOHwwLHc9MHxydFsyMzYrKGw9MHxhWyhiPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXTshKCgwfHcpPigwfHJ0W2wrMjM4Pj4xXSkpOyl7Zm9yKG09KEE9MHxhW2wrMTk2Pj4yXSkrKHc8PDYpfDAsQT1B''@;'; + put 'put ''Kyh3PDw2KSs0fDAscD0wLGw9MDshKCgwfHApPj0oMHxhW20+PjJdKSk7KTB8YVsxMTIrKDB8YVsoZj0xNisoYz0wfGFbKDB8YVtBPj4yXSkrKHA8PDIpPj4yXSl8MCk+PjJdKT4+Ml0mJihsfHwoZmVbTT4+MF09MHxmZVsxODU4OF0sZmVbTSsxPj4wXT0wfGZlWzE4NTg5XSxmZVtNKzI+PjBd''@;'; + put 'put ''PTB8ZmVbMTg1OTBdLGZlW00rMz4+MF09MHxmZVsxODU5MV0sbD0wfG9jKDg1NzYzLE0sMCkpLGFbRD4+Ml09cCxvbyhrLDEzNzM5NSxEKSxoMChnZT0wfEdyKGwsaywxKSw5MTE2NCwyNCwxKSxHPTB8YVsxODArKDB8YVtmPj4yXSk+PjJdLGFbMTIrKGY9MHxhW2dlKzE2Pj4yXSk+PjJdPShw''@;'; + put 'put ''ZT0oMHwoSz0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDMmYVsoSz0wfGFbRz4+Ml0pPj4yXXwwKT9LOksrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKT4oMHwoRz0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDMmYVsoRz0wfGFbRys0Pj4yXSk+PjJdfDApP0c6RystNDh8MCkrNDA+PjJd''@;'; + put 'put ''KT4+Ml0pPj4yXSkpKT9HOkssYVtmKzE2Pj4yXT1wZT9LOkcsYVtmKzIwPj4yXT1jKSxwPXArMXwwOzB8bCYmKCgwfEdvKGwpKT4xJiZnNyhsLG0pLEMxKGwpKSx3PXcrMXwwLGw9MHxhW2I+PjJdfWFlPVJ9KGwpLEdGKGwpKSwwfGZ9KGwpJiYkRihsKSxmdW5jdGlvbiBaWShsKXsoZnVuY3Rp''@;'; + put 'put ''b24gdEgobCl7dmFyIGM9MCxmPTAscD0wLG09MDtmb3IobD0xOTIrKDB8YVsxNisobHw9MCk+PjJdKXwwO2w9MHxhW2w+PjJdOyl7Zm9yKGY9MHxhWzQrKGw9MTcyKyhwPTB8YVsobT1sKzE2fDApPj4yXSl8MCk+PjJdLGFbKHA9cCsyNDh8MCk+PjJdPWFbbD4+Ml0sYVtwKzQ+PjJdPWYsbD0w''@;'; + put 'put ''fGFbNCsoZj0xODArKHA9MHxhW20+PjJdKXwwKT4+Ml0sYVsocD1wKzI1NnwwKT4+Ml09YVtmPj4yXSxhW3ArND4+Ml09bCxsPTB8YVsxODArKHA9MHxhW20+PjJdKT4+Ml0sZj0wOzB8YVtsKyhmPDwyKT4+Ml07KWY9ZisxfDA7Zm9yKGM9MHxhW3ArMTcyPj4yXSxsPTA7MHxhW2MrKGw8PDIp''@;'; + put 'put ''Pj4yXTspbD1sKzF8MDthW3ArMTc2Pj4yXT0wLGw9MHx2cigxNisobCtmPDwyKXwwKSxhWzE3MisocD0wfGFbbT4+Ml0pPj4yXT1sLGFbcCsxODQ+PjJdPTAscD0wfHZyKDE2KSxhWzE4MCsobD0wfGFbbT4+Ml0pPj4yXT1wLGw9bCsxNjR8MH19KShsfD0wKSxmdW5jdGlvbiBIMGUobCl7dmFy''@;'; + put 'put ''IGJlLE9lLExlLFJlLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsSGU9MCxWZT0wO2ZvcihSZT1hZSxhZT1hZSsxNnwwLExlPTB8YVsxOTYrKHBlPTB8YVsoT2U9MTYrKGx8PTApfDApPj4yXSk+PjJdLGw9MCE9KDEmZmVbMTEz''@;'; + put 'put ''KygwfGFbMTYrKDB8YVtsKzYwPj4yXSk+PjJdKT4+MF0pLGFbKGJlPVJlKT4+Ml09Z2U9MHxhW3BlKzI0OD4+Ml0sYVtiZSs0Pj4yXT1sPzU6Z2UsZ2U9MHxydFtwZSsyMzY+PjFdLGw9cGU7ISgoMHxnZSk+KDB8cnRbbCsyMzg+PjFdKSk7KXthWzIzMisoMHxhWzE2KygwfGFbYVsoUj1MZSso''@;'; + put 'put ''Z2U8PDYpKzR8MCk+PjJdPj4yXSk+PjJdKT4+Ml09MCxHPUxlKyhnZTw8Nil8MCxLPSsoMHxhW2JlKygoMSZnZSk8PDIpPj4yXSksTT0wLEE9MDtlOmZvcig7ISgoMHxBKT49KDB8YVtHPj4yXSkpOyl7aWYoX1syNDArKGw9MHxhWyhwZT0xNisodz0wfGFbKGM9MHxhW1I+PjJdKSsoQTw8Mik+''@;'; + put 'put ''PjJdKXwwKT4+Ml0pPj4zXT1wPStfW2wrOTY+PjNdLCgwfGFbbCsyMDg+PjJdKT4wKXtmb3IobT0wLGM9MDtmPTB8YVsoMHxhW2wrMjA0Pj4yXSkrKG08PDIpPj4yXTspKDB8YVsoMz09KDB8KEQ9MyZhW2Y+PjJdKSk/ZjpmKzQ4fDApKzQwPj4yXSk9PSgwfGFbKDI9PSgwfEQpP2Y6ZistNDh8''@;'; + put 'put ''MCkrNDA+PjJdKSYmKGM9KDB8b0ooZikpK2N8MCxsPTB8YVtwZT4+Ml0pLG09bSsxfDA7X1soRD1sKzk2fDApPj4zXT1wPStfW0Q+PjNdKyArKDB8YyksYz0wfGFbUj4+Ml19Zm9yKChjPTB8YVtjKygoRD1BKzF8MCk8PDIpPj4yXSkmJihGdSh3LGMscD1wK0srICtfWzg4KygwfGFbKGs9Yysx''@;'; + put 'put ''NnwwKT4+Ml0pPj4zXSwwKSxhWzIzMisoMHxhW2s+PjJdKT4+Ml09bD1+fihwK00pLE09KygwfGwpLGw9MHxhW3BlPj4yXSksKGM9MHxhW2wrMTEyPj4yXSk/KGY9KGw9KDB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhWyhBPTB8YVsobT0wfGFbbCsyNTY+PjJdKT4+Ml0pPj4yXXwwKT9B''@;'; + put 'put ''OkErLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPigwfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDMmYVsobT0wfGFbbSs0Pj4yXSk+PjJdfDApP206bSstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpP206QSxtPWw/QTptLHA9KygwfCgwfEFyKDB8YVsyNDgrKDB8YVtPZT4+Ml0pPj4yXSwwfGhy''@;'; + put 'put ''WzE3MCsobD0wfGFbKEE9YysxNnwwKT4+Ml0pPj4xXSkpLzIpLGM9MHxhWygyPT0oMHwoaz0zJmFbZj4+Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSwwfFVZKGY9MHxhWygzPT0oMHxrKT9mOmYrNDh8MCkrNDA+PjJdLGMpfHxGdShjLGYsKygwfH5+KCtfWzk2KygwfGFbYysxNj4+Ml0pPj4zXStw''@;'; + put 'put ''KyArX1s4OCsoMHxhW2YrMTY+PjJdKT4+M10pKSwwfGFbbCsxNTY+PjJdKSxjPTB8YVsoMz09KDB8KGw9MyZhW20+PjJdKSk/bTptKzQ4fDApKzQwPj4yXSwwfFVZKGw9MHxhWygyPT0oMHxsKT9tOm0rLTQ4fDApKzQwPj4yXSxjKXx8RnUoYyxsLCsoMHx+figrX1s5NisoMHxhW2MrMTY+PjJd''@;'; + put 'put ''KT4+M10rcCsgK19bODgrKDB8YVtsKzE2Pj4yXSk+PjNdKSksMHxhWzE1NisoMHxhW0E+PjJdKT4+Ml0pLGs9MCk6az0wOzspe2lmKCgwfGspPj0oMHxhWzE5MisobD0wfGFbcGU+PjJdKT4+Ml0pKXtBPUQ7Y29udGludWUgZX1jPShtPSgwfGFbMjM2KygwfGFbMTYrKGY9MHxhWygzPT0oMHwo''@;'; + put 'put ''QT0zJmFbKHc9MHxhWygwfGFbbCsxODg+PjJdKSsoazw8Mik+PjJdKT4+Ml0pKT93OncrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk8KDB8YVsyMzYrKDB8YVsxNisoQT0wfGFbKDI9PSgwfEEpP3c6dystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpP2Y6QSxtPX5+KChwPStfWzg4KygwfGFbKGY9''@;'; + put 'put ''bT9BOmYpKzE2Pj4yXSk+PjNdKyArX1s5NisoMHxhW2MrMTY+PjJdKT4+M10pKyArKDB8QXIoMHxhWzI0OCsoMHxhW09lPj4yXSk+PjJdLDB8aHJbMTcwKygwfGFbKEE9dysxNnwwKT4+Ml0pPj4xXSkpKSwoYj0wfFU1KGMsZikpPygoMHwoYz1+figocD1wKyArKDB8YVsyNDgrKDB8YVtPZT4+''@;'; + put 'put ''Ml0pPj4yXSkrICsoMHx+figoVmU9K19bMTM2KyhsPTB8YVtBPj4yXSk+PjNdKSsoVmU+PTA/LjU6LS41KSkpKTwoSGU9KygwfG0pKT9IZTpwKSkpPjY1NTM1JiYoRjBlKCsoMHxjKSksYz02NTUzNSxsPTB8YVtBPj4yXSkscnRbKG09MTcwKyhBPTB8YVtiKzE2Pj4yXSl8MCk+PjFdPSgwfGMp''@;'; + put 'put ''PCgwfChmPTB8aHJbbT4+MV0pKT9mOmMsYVsoQT1BKzE1NnwwKT4+Ml09YVsxNTYrKDB8YVsoKDB8YVtBPj4yXSk+KDB8YVtsKzE1Nj4+Ml0pP2I6dykrMTY+PjJdKT4+Ml0pOjB8YVs5NisobD0wfGFbQT4+Ml0pPj4yXXx8RnUoYyxmLCsoMHxtKSwwfGFbbCsxNTY+PjJdKSxrPWsrMXwwfX1n''@;'; + put 'put ''ZT1nZSsxfDAsbD0wfGFbT2U+PjJdfWFlPVJlfShsKSxmdW5jdGlvbiBOMGUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtmb3IoYz0xOTIrKDB8YVsxNisobHw9MCk+PjJdKXwwO2M9MHxhW2M+PjJdOyl7Zj0wfGFbMjU2KyhjPTB8YVsobT1jKzE2fDAp''@;'; + put 'put ''Pj4yXSk+PjJdO2U6ZG97aWYoZilmb3IocD0wOzspe2lmKCEoZj0wfGFbZisocDw8Mik+PjJdKSlicmVhayBlO0Q9MHxVaChsKSxmZVsxNTYrKDB8YVsoYz1EKzE2fDApPj4yXSk+PjBdPTIsdz0oTT0oMHwoQT1+figrX1s1NisoYj0wfGFbKGs9ZisxNnwwKT4+Ml0pPj4zXS0rX1tiKzE2Pj4z''@;'; + put 'put ''XSkpKT4wKT8wOjAtQXwwLEE9TT9BOjAsTT1mKzQ4fDAsRnUoRCwwfGFbKDM9PSgzJmFbZj4+Ml18MCk/ZjpNKSs0MD4+Ml0sKyhBKzF8MCksMHxhW2IrMTU2Pj4yXSksYj1mKy00OHwwLEZ1KEQsMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6YikrNDA+PjJdLCsodysxfDApLDB8YVsxNTYrKDB8''@;'; + put 'put ''YVtrPj4yXSk+PjJdKSxhWzIzMisoMHxhW2M+PjJdKT4+Ml09KCgwfChBPSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8KGs9MyZhW2Y+PjJdKSk/ZjpNKSs0MD4+Ml0pPj4yXSk+PjJdKS1BfDApKTwoMHwoZj0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfGspP2Y6YikrNDA+PjJd''@;'; + put 'put ''KT4+Ml0pPj4yXSktd3wwKSk/QTpmKSstMSxwPXArMXwwLGY9MHxhWzI1NisoYz0wfGFbbT4+Ml0pPj4yXX19d2hpbGUoMCk7Yz1jKzE2NHwwfX0obCksZnVuY3Rpb24gVjBlKGwpeygwfGFbMTgwKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKT4wJiYockgobCksV1kobCksWVkobCksaUgobCkp''@;'; + put 'put ''fShsKSxmdW5jdGlvbiBuSChsKXt2YXIgcCxjPTAsZj0wLG09MDszPT0oMHxhWzg0KyhtPTB8YVs4KygwfGFbKHA9MTYrKGx8PTApfDApPj4yXSk+PjJdKT4+Ml0pJiYhKChmPStfW20rNzI+PjNdKSooYz0rX1ttKzY0Pj4zXSk8PTEpJiYoUWgobCksRnUoMHxhWzI1NisobT0wfGFbcD4+Ml0p''@;'; + put 'put ''Pj4yXSwwfGFbbSsyNjA+PjJdLChmPTA9PSgxJmFbbSsxMTY+PjJdfDApP2M6Zik8NjU1MzU/Zjo2NTUzNSwxZTMpKX0obCl9KGwpLDB8azcobCwyLDB8cUYobCkpJiYoZnVuY3Rpb24gUjBlKGwpe3ZhciBwZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9''@;'; + put 'put ''MCxLPTAsZ2U9MDtmb3IoSz0wfHJ0WzIzNisoYz0wfGFbKHBlPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXTs7KXtpZigoMHxLKT4oMHwoRz0wfHJ0W2MrMjM4Pj4xXSkpKXtnZT0xOTticmVha31NPTB8YVsoUj0oRD0wfGFbYysxOTY+PjJdKSsoSzw8Nil8MCk+PjJdLEQ9RCsoSzw8NikrNHwwLGs9''@;'; + put 'put ''MCxmPTA7ZTpmb3IoOzspe2lmKCgwfGspPj0oMHxNKSl7Z2U9MTQ7YnJlYWt9QT0wfGFbMjU2KyhtPTB8YVsxNisoZj0wfGFbKDB8YVtEPj4yXSkrKGs8PDIpPj4yXSk+PjJdKT4+Ml07dDpkb3tpZigwfEEpZm9yKHA9MDs7KXtpZighKHc9MHxhW0ErKHA8PDIpPj4yXSkpYnJlYWsgdDtpZigo''@;'; + put 'put ''MHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfChiPTMmYVt3Pj4yXSkpP3c6dystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+KDB8Syl8fCgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8Yik/dzp3KzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPigwfEspKWJyZWFrIGU7cD1wKzF8MH19d2hp''@;'; + put 'put ''bGUoMCk7bT0wfGFbbSsyNDg+PjJdO3Q6ZG97aWYoMHxtKWZvcihwPTA7Oyl7aWYoIShBPTB8YVttKyhwPDwyKT4+Ml0pKWJyZWFrIHQ7aWYoKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHwodz0zJmFbQT4+Ml0pKT9BOkErNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+KDB8Syl8fCgwfGFb''@;'; + put 'put ''MjMyKygwfGFbMTYrKDB8YVsoMj09KDB8dyk/QTpBKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4oMHxLKSlicmVhayBlO3A9cCsxfDB9fXdoaWxlKDApO2s9aysxfDB9aWYoMTQ9PSgwfGdlKSYmKGdlPTAsZikpe2lmKGY9MHxhW2FbRD4+Ml0+PjJdLCEoYz0wfGFbYVtSKygoKDB8Syk8KDB8''@;'; + put 'put ''Ryk/MTotMSk8PDYpKzQ+PjJdPj4yXSkpe2dlPTE2O2JyZWFrfVI9MHxVaChsKSxmZVsxNTYrKDB8YVsoRz1SKzE2fDApPj4yXSk+PjBdPTIsRnUoUixmLDAsMCksRnUoUixjLDAsMCksYVsyMzIrKDB8YVtHPj4yXSk+PjJdPWFbMjMyKygwfGFbKCgwfGFbMjMyKygwfGFbZisxNj4+Ml0pPj4y''@;'; + put 'put ''XSk8KDB8YVsyMzIrKDB8YVtjKzE2Pj4yXSk+PjJdKT9mOmMpKzE2Pj4yXSk+PjJdLGM9MHxhW3BlPj4yXX1LPUsrMXwwfWlmKDE2PT0oMHxnZSkpUHIoODY4MjksODY3MjEsMTExLDg2ODMyKTtlbHNlIGlmKDE5PT0oMHxnZSkpO30obCksMHxrNyhsLDIsMHxxRihsKSkpJiZQcig4NjY5Myw4''@;'; + put 'put ''NjcyMSwxMzQsODY3MzIpLGZ1bmN0aW9uICRDKGwpe3ZhciBmLEEsYz0wLHA9MCxtPTAsdz0wLGI9MDtmb3IoQT0wfGFbMTk2KyhsPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0sZj0wfHJ0W2wrMjM4Pj4xXSxsPTB8cnRbbCsyMzY+PjFdOyEoKDB8bCk+KDB8ZikpOyl7Zm9yKHA9MHxhW0ErKGw8''@;'; + put 'put ''PDYpPj4yXSxtPUErKGw8PDYpKzR8MCxjPTA7ISgoMHxjKT49KDB8cCkpOylfWzE2KyhiPTB8YVsxNisoMHxhWygwfGFbbT4+Ml0pKyhjPDwyKT4+Ml0pPj4yXSk+PjNdPSsoMHxhWyh3PWIrMjMyfDApPj4yXSksYVt3Pj4yXT1sLGM9YysxfDA7bD1sKzF8MH19KGwpLGZ1bmN0aW9uIEFJKGws''@;'; + put 'put ''Yyl7Y3w9MDt2YXIgbSxmPTAscD0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTA7elkobHw9MCxsKSxiPTB8YVsobT1sKzE2fDApPj4yXTtlOmRve2lmKCgwfHJ0W2IrMjM4Pj4xXSk+MCYmKHc9MHxhW2IrOD4+Ml0sZj0wfGFbdys4ND4+Ml0sMHxmKSl7Uj1+figrX1tiKzMyPj4z''@;'; + put 'put ''XS0rX1tiKzE2Pj4zXSksTT1+figrX1tiKzQwPj4zXS0rX1tiKzI0Pj4zXSksRD0oRz0wPT0oMSZhW2IrMTE2Pj4yXXwwKSk/TTpSLE09Rz9SOk0sND09KDB8Zik/KGY9MHxCMGUobCksdz0wfGFbOCsoYj0wfGFbbT4+Ml0pPj4yXSk6Zj0yPT0oMHxmKSYxO3Q6ZG97aWYoIShmPDwyND4+MjQp''@;'; + put 'put ''KXtzd2l0Y2goMHxhW3crODQ+PjJdKXtjYXNlIDU6aWYoKHA9K19bdys2ND4+M10pPD0wKWJyZWFrIGU7aWYocD0oQT1wLytfW2IrMzI+PjNdKTwoaz0rX1t3KzcyPj4zXS8rX1tiKzQwPj4zXSk/QTprLEE+MSZrPjEpe2s9cDticmVhayB0fWJyZWFrIGU7Y2FzZSAxOmJyZWFrO2RlZmF1bHQ6''@;'; + put 'put ''YnJlYWsgZX1pZigocD0rKDB8RCkvKygwfE0pKTwoQT0rX1t3KzE2Pj4zXSkpe2s9MSxwPUEvcDticmVha31rPXAvQSxwPTE7YnJlYWt9aWYoKHA9K19bdys2ND4+M10pPD0wKWJyZWFrIGU7aWYoKEE9cC8rKDB8TSkpPDF8KHA9K19bdys3Mj4+M10vKygwfEQpKTwxKXtpZihBPHApe2s9MSxw''@;'; + put 'put ''Lz1BO2JyZWFrfWs9QS9wLHA9MTticmVha31rPUF9d2hpbGUoMCk7Zm9yKEE9KGY9MD09KDEmYVtiKzExNj4+Ml18MCkpP3A6ayxwPWY/azpwLGY9YisxOTJ8MDtmPTB8YVtmPj4yXTspX1soRz0xNisoZj0wfGFbZisxNj4+Ml0pfDApPj4zXT0rKDB8fn4oKGs9K19bRz4+M10qcCkrKGs+PTA/''@;'; + put 'put ''LjU6LS41KSkpLF9bKEc9ZisyNHwwKT4+M109KygwfH5+KChrPStfW0c+PjNdKkEpKyhrPj0wPy41Oi0uNSkpKSxmPWYrMTY0fDA7ZUgobCxwLEEpfX13aGlsZSgwKTswfGMmJmZ1bmN0aW9uIEdZKGwsYyl7dmFyIGYsdyxNLEQ7TT1hZSxhZT1hZSszMnwwLHc9KCtfWzMyKyhEPTB8YVsxNiso''@;'; + put 'put ''bHw9MCk+PjJdKT4+M10tK19bRCsxNj4+M10pLygrX1tEKzQwPj4zXS0rX1tEKzI0Pj4zXSksZj0rX1soY3w9MCk+PjNdO2Rve2lmKHc+MS4xKmYpYVtjKzI0Pj4yXT1+fihmKisoKDB8YVtjKzIwPj4yXSktKDB8YVtjKzE2Pj4yXSl8MCkvdyk7ZWxzZXtpZihsPWMrMjR8MCwhKHc8PS44KmYp''@;'; + put 'put ''KXthW2w+PjJdPTA7YnJlYWt9YVtsPj4yXT0tMX19d2hpbGUoMCk7YWU9TX0obCxjKX0obCxjKSxmdW5jdGlvbiBveShsKXt2YXIgQSxjPTAsZj0wLHA9MCxtPTA7Zm9yKGw9MTkyKygwfGFbKEE9MTYrKGx8PTApfDApPj4yXSl8MDtsPTB8YVtsPj4yXTspe2ZvcihtPWwrMTZ8MCxjPTA7Zj0w''@;'; + put 'put ''fGFbKHA9MHxhWzE4MCsobD0wfGFbbT4+Ml0pPj4yXSkrKGM8PDIpPj4yXTspRnQoMHxhW2YrMTY+PjJdKSxGdChmKSxjPWMrMXwwO3AmJihGdChwKSxsPTB8YVttPj4yXSksKGM9MHxhW2wrMTcyPj4yXSkmJihGdChjKSxsPTB8YVttPj4yXSksZj0wfGFbNCsocD1sKzI1NnwwKT4+Ml0sYVso''@;'; + put 'put ''bD1sKzE4MHwwKT4+Ml09YVtwPj4yXSxhW2wrND4+Ml09ZixwPTB8YVs0KyhmPTI0OCsobD0wfGFbbT4+Ml0pfDApPj4yXSxhWyhsPWwrMTcyfDApPj4yXT1hW2Y+PjJdLGFbbCs0Pj4yXT1wLGw9MTY0KygwfGFbbT4+Ml0pfDB9bD0wLGM9MHxhWzE5MisoMHxhW0E+PjJdKT4+Ml07ZTpmb3Io''@;'; + put 'put ''OzspZm9yKG09MD09KDB8bCkscD1sKzE2fDAsbD1jOzspe2lmKCFsKWJyZWFrIGU7aWYoYz0wfGFbMTY0KyhmPTB8YVtsKzE2Pj4yXSk+PjJdLDIhPSgwfGZlW2YrMTU2Pj4wXSkpY29udGludWUgZTttP2FbMTkyKygwfGFbQT4+Ml0pPj4yXT1jOmFbMTY0KygwfGFbcD4+Ml0pPj4yXT1jLEZ0''@;'; + put 'put ''KGYpLEZ0KGwpLGw9Y31hWzE2OCsoMHxhWzE2KygwfGFbMTkyKygwfGFbQT4+Ml0pPj4yXSk+PjJdKT4+Ml09MH0obCkpfWZ1bmN0aW9uICRGKGwpe3ZhciBPZSxMZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsUmU9''@;'; + put 'put ''MCxIZT0wLFZlPTA7Zm9yKExlPTB8YVsxOTYrKGM9MHxhWyhPZT0xNisobHw9MCl8MCk+PjJdKT4+Ml0sZ2U9MHxydFtjKzIzNj4+MV07ISgoMHxnZSk+KDB8cnRbYysyMzg+PjFdKSk7KXtmb3IoTT1MZSsoZ2U8PDYpfDAsRD1MZSsoZ2U8PDYpKzR8MCxSPUxlKyhnZTw8NikrNDB8MCxHPUxl''@;'; + put 'put ''KyhnZTw8NikrMjR8MCxLPUxlKyhnZTw8NikrMzJ8MCxwZT1MZSsoZ2U8PDYpKzE2fDAsaz0wOyEoKDB8ayk+PSgwfGFbTT4+Ml0pKTspe0E9LjUqK19bODArKGM9MHxhWyhiPTE2KygwfGFbKDB8YVtEPj4yXSkrKGs8PDIpPj4yXSl8MCk+PjJdKT4+M10sbT0wfGFbYysyMDQ+PjJdO2U6ZG97''@;'; + put 'put ''aWYobSlmb3IocD0wOzspe2lmKCEoZj0wfGFbbSsocDw8Mik+PjJdKSlicmVhayBlOygwfGFbKDM9PSgwfChSZT0zJmFbZj4+Ml0pKT9mOmYrNDh8MCkrNDA+PjJdKT09KDB8YVsoMj09KDB8UmUpP2Y6ZistNDh8MCkrNDA+PjJdKSYmMCE9KDB8KGJlPTB8YVs5NisoMHxhW2YrMTY+PjJdKT4+''@;'; + put 'put ''Ml0pKSYmKEE9QT4odz0uNSorX1tiZSszMj4+M10pP0E6dykscD1wKzF8MH19d2hpbGUoMCk7K19bUj4+M108QSYmKF9bRz4+M109QSxfW1I+PjNdPUEpLCtfW0s+PjNdPEEmJihfW3BlPj4zXT1BLF9bSz4+M109QSksMHwoZj0wfGFbYysyMTI+PjJdKSYmKCgwfGYpPT0oMHxsKT9wPTA6KHA9''@;'; + put 'put ''MHxlcyhmLDB8YVs0NzE0NF0sOCwwKSxjPTB8YVtiPj4yXSksbT0wfGFbYysyMzI+PjJdLGM9MTI4KyhmPTB8YVtmKzE2Pj4yXSl8MCxBKz0rKDB8cCksKDB8bSk9PSgwfHJ0W2YrMjM2Pj4xXSkmJihfW2M+PjNdPSh3PStfW2M+PjNdKT5BP3c6QSksYz1mKzEyMHwwLCgwfG0pPT0oMHxydFtm''@;'; + put 'put ''KzIzOD4+MV0pJiYoX1tjPj4zXT0odz0rX1tjPj4zXSk+QT93OkEpKSxrPWsrMXwwfWdlPWdlKzF8MCxjPTB8YVtPZT4+Ml19Zm9yKGs9MHxseShsKSxfWzI0KygwfGFbMTYrKDB8YVthW0xlKygoYz0wfHJ0WzIzOCsocD0wfGFbT2U+PjJdKT4+MV0pPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNd''@;'; + put 'put ''PStfW0xlKyhjPDw2KSsxNj4+M10sZj0wfHJ0W3ArMjM2Pj4xXSxtPXArMjUyfDAsdz0wO2I9YystMXwwLCEoKDB8Yyk8PSgwfGYpKTspQT0oSGU9K19bTGUrKGI8PDYpKzMyPj4zXSsgK19bTGUrKGM8PDYpKzQwPj4zXSsgKygwfGFbbT4+Ml0pKT4oQT0rX1tMZSsoYzw8NikrMjQ+PjNdKzgr''@;'; + put 'put ''ICtfW0xlKyhiPDw2KSsxNj4+M10pP0hlOkEsKDB8YVtMZSsoYjw8Nik+PjJdKT4wJiYoX1syNCsoMHxhWzE2KygwfGFbYVtMZSsoYjw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXT0rX1syNCsoMHxhWzE2KygwfGFbYVtMZSsoYzw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXStBKSx3PXc+QT93OkEs''@;'; + put 'put ''Yz1iO2U6ZG97aWYoMCE9KDB8aykmJjAhPSgxJmFbcCsxMTY+PjJdfDApJiYoc3kobCwwKSxwPTB8YVtPZT4+Ml0sMHxmZVtwKzI3Nj4+MF0pKWZvcihjPTB8cnRbcCsyMzg+PjFdLGY9MHxydFtwKzIzNj4+MV0sQT0rX1syNCsoMHxhWzE2KygwfGFbYVtMZSsoYzw8NikrND4+Ml0+PjJdKT4+''@;'; + put 'put ''Ml0pPj4zXSx3PTA7Oyl7aWYobT1jKy0xfDAsKDB8Yyk8PSgwfGYpKWJyZWFrIGU7SGU9KFZlPStfWzI0KygwfGFbMTYrKDB8YVthW0xlKyhtPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdKS1BLEE9VmUsdz13PkhlP3c6SGUsYz1tfX13aGlsZSgwKTtlOmRve2lmKDB8ZmVbcCsyNzY+PjBdKWZv''@;'; + put 'put ''cihtPTB8cnRbcCsyMzY+PjFdLGY9MHxydFtwKzIzOD4+MV07Oyl7aWYoYz1mKy0xfDAsKDB8Zik8PSgwfG0pKWJyZWFrIGU7KDB8YVtMZSsoYzw8Nik+PjJdKTw9MHx8KF9bMjQrKDB8YVsxNisoMHxhW2FbTGUrKGM8PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M109K19bMjQrKDB8YVsxNisoMHxh''@;'; + put 'put ''W2FbTGUrKGY8PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M10rdyksZj1jfX13aGlsZSgwKTtmb3IoYz1wKzE5MnwwO2M9MHxhW2M+PjJdOylfWzI0KyhjPTB8YVtjKzE2Pj4yXSk+PjNdPStfWzI0KygwfGFbMTYrKDB8YVthW0xlKyhhW2MrMjMyPj4yXTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXSxj''@;'; + put 'put ''PWMrMTY0fDB9ZnVuY3Rpb24gcUYobCl7dmFyIGM7cmV0dXJuIDB8KGw9KGM9MHxMaShsfD0wLDg2OTIxKSk/fn4oK2twKGMpKisoMHxHbyhsKSkpOjIxNDc0ODM2NDcpfWZ1bmN0aW9uIHpZKGwsYyl7Y3w9MDt2YXIgcCxmPTAsbT0wO2ZvcihwPTE2KyhsfD0wKXwwLGY9MTshKCgwfGYpPigw''@;'; + put 'put ''fGFbMTgwKyhtPTB8YVtwPj4yXSk+PjJdKSk7KXpZKDB8YVsoMHxhW20rMTg0Pj4yXSkrKGY8PDIpPj4yXSxjKSxmPWYrMXwwOyFmdW5jdGlvbiByOWUobCxjKXtjfD0wO3ZhciBPZSxMZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAs''@;'; + put 'put ''YmU9MCxSZT0wO3BlPSgwfEFhKGx8PTApKT09KDB8bCksTGU9MHxhWyhPZT1sKzE2fDApPj4yXTtlOmRve2lmKHBlKXtmb3IoRz0obD0wfHJ0W0xlKzIzOD4+MV0pPDwxNj4+MTYsSz1MZSsxOTZ8MCxwZT1MZSsxOTZ8MCxSPShmPTB8cnRbTGUrMjM2Pj4xXSk8PDE2Pj4xNixtPS0yMTQ3NDgz''@;'; + put 'put ''NjQ3LHA9MjE0NzQ4MzY0NzshKCgwfFIpPigwfEcpKTspe2lmKDAhPSgwfChEPTB8YVsoQT0wfGFbSz4+Ml0pKyhSPDw2KT4+Ml0pKSYmMCE9KDB8KGJlPTB8YVsoZ2U9MHxhW0ErKFI8PDYpKzQ+PjJdKT4+Ml0pKSl7Zm9yKGI9MSxBPWJlOygwfGIpPCgwfEQpJih3PTB8ZmVbMTU2KyhBPTB8''@;'; + put 'put ''YVtBKzE2Pj4yXSk+PjBdKTw8MjQ+PjI0IT0wOylBPTB8YVtnZSsoYjw8Mik+PjJdLGI9YisxfDA7aWYoISh3PDwyND4+MjQpKXtmb3IoTT1wPChrPStfW0ErMTY+PjNdLStfW0ErODg+PjNdKSxiPTB8YVsoMHxhW3BlPj4yXSkrKFI8PDYpKzQ+PjJdLHc9RCstMnwwLEE9RCstMXwwOzB8ZmVb''@;'; + put 'put ''MTU2KyhBPTB8YVsxNisoMHxhW2IrKEE8PDIpPj4yXSk+PjJdKT4+MF07KUE9dyx3PXcrLTF8MDttPW0+KFJlPStfW0ErOTY+PjNdKyArX1tBKzE2Pj4zXSk/bTpSZSxwPU0/cDprfX1SPVIrMXwwfWZvcih3PTB8YVtMZSsxODA+PjJdLGI9TGUrMTg0fDAsQT0xOzspe2lmKCgwfEEpPigwfHcp''@;'; + put 'put ''KWJyZWFrIGU7YmU9MHxhWzE2KygwfGFbKDB8YVtiPj4yXSkrKEE8PDIpPj4yXSk+PjJdLEE9QSsxfDAsbT1tPihrPStfW2JlKzMyPj4zXSs4KT9tOmsscD1wPChSZT0rX1tiZSsxNj4+M10tOCk/cDpSZX19ZWxzZSBtPSsoMHxhWzIzMisoMHxhWzE2KygwfGFbTGUrMjYwPj4yXSk+PjJdKT4+''@;'; + put 'put ''Ml0pLHA9KygwfGFbMjMyKygwfGFbMTYrKDB8YVtMZSsyNTY+PjJdKT4+Ml0pPj4yXSksZj0wfHJ0W0xlKzIzNj4+MV0sbD0wfHJ0W0xlKzIzOD4+MV19d2hpbGUoMCk7az0rX1syNCsoMHxhWzE2KygwfGFbYVsoYz0wfGFbMTk2KygwfGFbYysxNj4+Ml0pPj4yXSkrKGw8PDE2Pj4xNjw8Nikr''@;'; + put 'put ''ND4+Ml0+PjJdKT4+Ml0pPj4zXS0rX1tMZSsxMjA+PjNdLFJlPStfW0xlKzEyOD4+M10rICtfWzI0KygwfGFbMTYrKDB8YVthW2MrKGY8PDE2Pj4xNjw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXSxfW0xlKzE2Pj4zXT1wLF9bTGUrMjQ+PjNdPWssX1szMisoYz0wfGFbT2U+PjJdKT4+M109bSxf''@;'; + put 'put ''W2MrNDA+PjNdPVJlfShsLGMpfWZ1bmN0aW9uIEIwZShsKXt2YXIgYyxmLHAsbSxNLHBlLGdlLGJlLEE9MCx3PTAsYj0wLGs9MCxEPTAsUj0wLEc9MCxLPTA7cmV0dXJuIGdlPWFlLGFlPWFlKzgwfDAscD1nZSs2NHwwLGY9Z2UrNDh8MCxNPWdlLHBlPWdlKzMyfDAsYVsobT1nZSsxNnwwKT4+''@;'; + put 'put ''Ml09YVsoYmU9NDgrKGM9MHxhWzgrKDB8YVsobD0xNisobHw9MCl8MCk+PjJdKT4+Ml0pfDApPj4yXSxhW20rND4+Ml09YVtiZSs0Pj4yXSxhW20rOD4+Ml09YVtiZSs4Pj4yXSxhW20rMTI+PjJdPWFbYmUrMTI+PjJdLCtfW20+PjNdPC4wMDF8fCtfWyhBPW0rOHwwKT4+M108LjAwMXx8KGFb''@;'; + put 'put ''TT4+Ml09YVsodz1jKzMyfDApPj4yXSxhW00rND4+Ml09YVt3KzQ+PjJdLGFbTSs4Pj4yXT1hW3crOD4+Ml0sYVtNKzEyPj4yXT1hW3crMTI+PjJdLGFbZj4+Ml09YVttPj4yXSxhW2YrND4+Ml09YVttKzQ+PjJdLGFbZis4Pj4yXT1hW20rOD4+Ml0sYVtmKzEyPj4yXT1hW20rMTI+PjJdLGFb''@;'; + put 'put ''cD4+Ml09YVt3Pj4yXSxhW3ArND4+Ml09YVt3KzQ+PjJdLGFbcCs4Pj4yXT1hW3crOD4+Ml0sYVtwKzEyPj4yXT1hW3crMTI+PjJdLFAwZShwZSxmLHApLGFbbT4+Ml09YVtwZT4+Ml0sYVttKzQ+PjJdPWFbcGUrND4+Ml0sYVttKzg+PjJdPWFbcGUrOD4+Ml0sYVttKzEyPj4yXT1hW3BlKzEy''@;'; + put 'put ''Pj4yXSxhW2Y+PjJdPWFbcGU+PjJdLGFbZis0Pj4yXT1hW3BlKzQ+PjJdLGFbZis4Pj4yXT1hW3BlKzg+PjJdLGFbZisxMj4+Ml09YVtwZSsxMj4+Ml0sYVtwPj4yXT1hW00+PjJdLGFbcCs0Pj4yXT1hW00rND4+Ml0sYVtwKzg+PjJdPWFbTSs4Pj4yXSxhW3ArMTI+PjJdPWFbTSsxMj4+Ml0s''@;'; + put 'put ''UDBlKG0sZixwKSwoUj0oRD0rX1ttPj4zXSkvKGI9K19bMzIrKHc9MHxhW2w+PjJdKT4+M10pKT49MSYoSz0oRz0rX1tBPj4zXSkvKGs9K19bdys0MD4+M10pKT49MSk/bD0wOihLPStJdSgrKFI9KFI9UjxLP1I6Syk+LjU/UjouNSkqay9HKSpHL2ssRz0rSXUoK1IqYi9EKSpEL2IqYixfWzY0''@;'; + put 'put ''KyhsPTB8YVt3Kzg+PjJdKT4+M109RyxfW2wrNzI+PjNdPUsqayxsPTEpLGFlPWdlLDB8bH1mdW5jdGlvbiBlSChsLGMsZil7Yz0rYyxmPStmO3ZhciBwPTAsbT0wO2ZvcihwPTE2KyhsfD0wKXwwLGw9MTshKCgwfGwpPigwfGFbMTgwKyhtPTB8YVtwPj4yXSk+PjJdKSk7KWVIKDB8YVsoMHxh''@;'; + put 'put ''W20rMTg0Pj4yXSkrKGw8PDIpPj4yXSxjLGYpLGw9bCsxfDA7X1socD1tKzE2fDApPj4zXT0rX1twPj4zXSpjLF9bKHA9bSsyNHwwKT4+M109K19bcD4+M10qZixfWyhwPW0rMzJ8MCk+PjNdPStfW3A+PjNdKmMsX1sobT1tKzQwfDApPj4zXT0rX1ttPj4zXSpmfWZ1bmN0aW9uIFAwZShsLGMs''@;'; + put 'put ''Zil7dmFyIHA7cD0rX1s4KyhjfD0wKT4+M10tK19bOCsoZnw9MCk+PjNdLF9bKGx8PTApPj4zXT0rX1tjPj4zXS0rX1tmPj4zXSxfW2wrOD4+M109cH1mdW5jdGlvbiBGdShsLGMsZixwKXtsfD0wLGN8PTAsZj0rZixwfD0wO3ZhciBBLHcsYixtPTA7cmV0dXJuIHc9MHx2cig5NiksYVsoYj13''@;'; + put 'put ''KzQ4fDApPj4yXT0zfGFbYj4+Ml0sYVt3Pj4yXT0tNCZhW3c+PjJdfDIsbT0wfHZyKDE3NiksYVsoQT13KzE2fDApPj4yXT1tLGFbKDM9PSgzJmFbdz4+Ml18MCk/dzpiKSs0MD4+Ml09bCxhWygyPT0oMyZhW3c+PjJdfDApP3c6dystNDh8MCkrNDA+PjJdPWMsZj42NTUzNSYmKEYwZShmKSxm''@;'; + put 'put ''PTY1NTM1LG09MHxhW0E+PjJdKSxydFttKzE3MD4+MV09fn4oZisoZj49MD8uNTotLjUpKSxhW20rMTU2Pj4yXT1wLFlDKHcpLDB8d31mdW5jdGlvbiBGMGUobCl7dmFyIGMsZjtjPWFlLGFlPWFlKzE2fDAsX1soZj1jKT4+M109bD0rbCxhW2YrOD4+Ml09NjU1MzUsJHIoMSw4Njg0NSxmKSxh''@;'; + put 'put ''ZT1jfWZ1bmN0aW9uIFFoKGwpe3ZhciBwLEEsdyxiLGssTSxjPTAsZj0wLG09MDtmb3IoTT1hZSxhZT1hZSsxNnwwLGs9TSxmPTB8ZXMobHw9MCwwfGFbNDcxNDRdLDgsMCkscUMobCksdz0wfGFbMjU2KyhtPTB8YVsoQT1sKzE2fDApPj4yXSk+PjJdLGI9MHxhW20rMjYwPj4yXSxwPSsoMHxm''@;'; + put 'put ''KSxmPTB8cnRbbSsyMzY+PjFdOyEoKDB8Zik+KDB8cnRbbSsyMzg+PjFdKSk7KXtjPTB8YVttKzE5Nj4+Ml07ZG97aWYoMHxhW2MrKGY8PDYpPj4yXSl7aWYoYz0wfGFbYVtjKyhmPDw2KSs0Pj4yXT4+Ml0pe0Z1KHcsYywrX1s4OCsoMHxhW2MrMTY+PjJdKT4+M10rcCsgK19bbSs5Nj4+M10s''@;'; + put 'put ''MCksRnUoYz0wfGFbKDB8YVsoYz0wfGFbMTk2KyhtPTB8YVtBPj4yXSk+PjJdKSsoZjw8NikrND4+Ml0pKygoMHxhW2MrKGY8PDYpPj4yXSktMTw8Mik+PjJdLGIsK19bOTYrKDB8YVtjKzE2Pj4yXSk+PjNdK3ArICtfW20rNjQ+PjNdLDApO2JyZWFrfWFbaz4+Ml09MHx0aShsKSxhW2srND4+''@;'; + put 'put ''Ml09ZiwkcigxLDg2OTI5LGspO2JyZWFrfX13aGlsZSgwKTtmPWYrMXwwLG09MHxhW0E+PjJdfWFlPU19ZnVuY3Rpb24gcUMobCl7dmFyIGM9MCxmPTAscD0wOzB8YVsyNTYrKDB8YVsoYz0xNisobHw9MCl8MCk+PjJdKT4+Ml18fChwPTB8VWgoMHxBYShsKSksZmVbMTU2KygwfGFbcCsxNj4+''@;'; + put 'put ''Ml0pPj4wXT0yLGY9MHxVaCgwfEFhKGwpKSxmZVsxNTYrKDB8YVtmKzE2Pj4yXSk+PjBdPTIsMHxhWzEyKygwfGFbYz4+Ml0pPj4yXSYmKDB8QWEobCkpIT0oMHxsKSYmMD09KDEmYVsxMTYrKDB8YVsxNisoMHxkaShsKSk+PjJdKT4+Ml18MCkmJkZ1KHAsZiwrKDB8fn4rX1s0OCsobD0wfGFb''@;'; + put 'put ''Yz4+Ml0pKygoK19bbCs0OD4+M10+K19bbCs4MD4+M10/MDoyKTw8NCk+PjNdKSwwKSxhWzI1NisoYz0wfGFbYz4+Ml0pPj4yXT1wLGFbYysyNjA+PjJdPWYpfWZ1bmN0aW9uIHJIKGwpe2x8PTA7dmFyIGM9MCxmPTA7ZG97aWYoKDB8QWEobCkpIT0oMHxsKSl7aWYoUWgobCksYz0wfFU1KDB8''@;'; + put 'put ''YVsyNTYrKGM9MHxhWyhsPWwrMTZ8MCk+PjJdKT4+Ml0sMHxhW2MrMjYwPj4yXSkpe2FbKGY9MTU2KygwfGFbYysxNj4+Ml0pfDApPj4yXT0xMjgrKDB8YVtmPj4yXSk7YnJlYWt9RnUoMHxhWzI1NisoZj0wfGFbbD4+Ml0pPj4yXSwwfGFbZisyNjA+PjJdLDEsMTI4KTticmVha31sPWwrMTZ8''@;'; + put 'put ''MH13aGlsZSgwKTtmb3IoYz0xOyEoKDB8Yyk+KDB8YVsxODArKGY9MHxhW2w+PjJdKT4+Ml0pKTspckgoMHxhWygwfGFbZisxODQ+PjJdKSsoYzw8Mik+PjJdKSxjPWMrMXwwfWZ1bmN0aW9uIFdZKGwpe3ZhciBrLEQsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MDtmb3Ioaz0rKDB8''@;'; + put 'put ''KHc9MHxlcyhsfD0wLDB8YVs0NzE0NF0sOCwwKSkpLHc9MHxydFsyMzYrKGM9MHxhWyhEPWwrMTZ8MCk+PjJdKT4+MV07Oyl7aWYoKDB8dyk+KDB8cnRbYysyMzg+PjFdKSl7Zj0xO2JyZWFrfWM9MHxhW2MrMTk2Pj4yXTtlOmRve2lmKDB8YVtjKyh3PDw2KT4+Ml0mJihiPTB8YVthW2MrKHc8''@;'; + put 'put ''PDYpKzQ+PjJdPj4yXSwwfGIpKXtmb3IoZj0wfGFbMjM2KygwfGFbKG09YisxNnwwKT4+Ml0pPj4yXTshKCgwfGYpPD0wKTspe2lmKGY9ZistMXwwLEE9MHxhWygwfGFbKDB8YVsxOTYrKDB8YVsxNisoMHxBYShsKSk+PjJdKT4+Ml0pKyh3PDw2KSs0Pj4yXSkrKGY8PDIpPj4yXSwhKDB8ZmVb''@;'; + put 'put ''MTU2KyhjPTB8YVsocD1BKzE2fDApPj4yXSk+PjBdKSl7TT0xMDticmVha31pZigwfGVrKGwsQSkpe009OTticmVha319Zm9yKDk9PSgwfE0pJiYoYz0wfGFbcD4+Ml0sTT0xMCksMTA9PSgwfE0pJiYoTT0wLEZ1KEEsMHxhWzI1NisoMHxhW0Q+PjJdKT4+Ml0sK19bYys5Nj4+M10raywwKSks''@;'; + put 'put ''Zj0oMHxhWygwfGFbMTk2KygwfGFbRD4+Ml0pPj4yXSkrKHc8PDYpPj4yXSkrKDB8YVsyMzYrKDB8YVttPj4yXSk+PjJdKXwwOzspe2lmKCgwfGYpPj0oMHxhWygwfGFbMTk2KygwfGFbMTYrKDB8QWEobCkpPj4yXSk+PjJdKSsodzw8Nik+PjJdKSlicmVhayBlO2lmKG09MHxhWygwfGFbKDB8''@;'; + put 'put ''YVsxOTYrKDB8YVsxNisoMHxBYShsKSk+PjJdKT4+Ml0pKyh3PDw2KSs0Pj4yXSkrKGY8PDIpPj4yXSwhKDB8ZmVbMTU2KyhjPTB8YVsocD1tKzE2fDApPj4yXSk+PjBdKSlicmVhaztpZigwfGVrKGwsbSkpe009MTU7YnJlYWt9Zj1mKzF8MH0xNT09KDB8TSkmJihNPTAsYz0wfGFbcD4+Ml0p''@;'; + put 'put ''LEZ1KDB8YVsyNjArKDB8YVtEPj4yXSk+PjJdLG0sK19bYys4OD4+M10raywwKX19d2hpbGUoMCk7dz13KzF8MCxjPTB8YVtEPj4yXX1mb3IoOyEoKDB8Zik+KDB8YVtjKzE4MD4+Ml0pKTspV1koMHxhWygwfGFbYysxODQ+PjJdKSsoZjw8Mik+PjJdKSxmPWYrMXwwLGM9MHxhW0Q+PjJdfWZ1''@;'; + put 'put ''bmN0aW9uIFlZKGwpe3ZhciBjLGYscD0wLG09MCxBPTA7Zm9yKHA9MHxlcyhsfD0wLDB8YVs0NzE0NF0sOCwwKSxxQyhsKSxjPWwrMTZ8MCxmPSsoMHxwKSxsPTE7ISgoMHxsKT4oMHxhWzE4MCsocD0wfGFbYz4+Ml0pPj4yXSkpOylxQyhwPTB8YVsoMHxhW3ArMTg0Pj4yXSkrKGw8PDIpPj4y''@;'; + put 'put ''XSksRnUoMHxhWzI1NisobT0wfGFbYz4+Ml0pPj4yXSwwfGFbMjU2KygwfGFbKEE9cCsxNnwwKT4+Ml0pPj4yXSwrX1ttKzk2Pj4zXStmLDApLEZ1KDB8YVsyNjArKDB8YVtBPj4yXSk+PjJdLDB8YVsyNjArKG09MHxhW2M+PjJdKT4+Ml0sK19bbSs2ND4+M10rZiwwKSxZWShwKSxsPWwrMXww''@;'; + put 'put ''fWZ1bmN0aW9uIGlIKGwpe3ZhciBELFIsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRz0wO2ZvcihjPTB8ZXMobHw9MCwwfGFbNDcxNDRdLDgsMCksUj1sKzE2fDAsbD0xOyEoKDB8bCk+KDB8KGY9MHxhWzE4MCsocD0wfGFbUj4+Ml0pPj4yXSkpKTspcUMoMHxhWygwfGFb''@;'; + put 'put ''cCsxODQ+PjJdKSsobDw8Mik+PjJdKSxsPWwrMXwwO2ZvcihEPSsoMHxjKSxNPTEsbD1mLGM9cDshKCgwfE0pPigwfGwpKTspe2ZvcihiPWs9TSsxfDA7cD0wfGFbKGY9MHxhW2MrMTg0Pj4yXSkrKE08PDIpPj4yXSwhKCgwfGIpPigwfGwpKTspdz0obT0oMHxydFsyMzYrKDB8YVtwKzE2Pj4y''@;'; + put 'put ''XSk+PjFdKT4oMHxydFsyMzYrKDB8YVsxNisoZj0wfGFbZisoYjw8Mik+PjJdKT4+Ml0pPj4xXSkpP2Y6cCxBPShHPTB8cnRbMjM2KyhtPTB8YVsoZj1tP3A6ZikrMTY+PjJdKT4+MV0pPDwxNj4+MTYsKDB8cnRbMjM4KyhwPTB8YVt3KzE2Pj4yXSk+PjFdKT49Rzw8MTY+PjE2JiYoRnUoMHxh''@;'; + put 'put ''WzI2MCsoMHxhWygobD0oMHxhWzIzNisoMHxhWzE2KygwfGFbYVsoMHxhW3ArMTk2Pj4yXSkrKEE8PDYpKzQ+PjJdPj4yXSk+PjJdKT4+Ml0pPCgwfGFbMjM2KygwfGFbMTYrKDB8YVthWygwfGFbbSsxOTY+PjJdKSsoQTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4yXSkpP3c6ZikrMTY+PjJdKT4+''@;'; + put 'put ''Ml0sMHxhWzI1NisoMHxhWyhsP2Y6dykrMTY+PjJdKT4+Ml0sRCwwKSxjPWw9MHxhW1I+PjJdLGw9MHxhW2wrMTgwPj4yXSksYj1iKzF8MDtpSChwKSxNPWssbD0wfGFbMTgwKyhjPTB8YVtSPj4yXSk+PjJdfX1mdW5jdGlvbiBlayhsLGMpe2x8PTA7dmFyIGY9MDtpZigxPT0oMHxmZVsxNTYr''@;'; + put 'put ''KGM9MHxhWzE2KyhjfD0wKT4+Ml0pPj4wXSkpe2ZvcihjPTB8YVthW2MrMjU2Pj4yXT4+Ml07Zj0wfGFbMTE2KygwfGFbYysxNj4+Ml0pPj4yXTspYz1mO2M9MHxOcihsLDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKT8wOjA9PSgwfE5yKGwsMHxhWygyPT0oMyZhW2M+''@;'; + put 'put ''PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKSkmMX1lbHNlIGM9MDtyZXR1cm4gMHxjfWZ1bmN0aW9uIFVZKGwsYyl7cmV0dXJuIDB8UVkobHw9MCxjfD0wKX1mdW5jdGlvbiBRWShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MDtlOmRve2lmKCgwfGwpPT0oMHxjKSlsPTE7ZWxzZSBmb3IoZj0w''@;'; + put 'put ''fGFbMTgwKygwfGFbbCsxNj4+Ml0pPj4yXSxsPTA7Oyl7aWYoIShwPTB8YVtmKyhsPDwyKT4+Ml0pKXtsPTA7YnJlYWsgZX1pZigwfFFZKDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSxjKSl7bD0xO2JyZWFrfWw9bCsxfDB9fXdoaWxlKDApO3JldHVybiAwfGx9ZnVu''@;'; + put 'put ''Y3Rpb24gYXkobCxjKXtsfD0wO3ZhciBNLEQsUixmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRz0wO1I9YWUsYWU9YWUrNDh8MCxEPVIrMzJ8MCxNPVIrOHwwLGY9UisyNHwwLGs9UisxNnwwLGI9UixtPTB8YVsocD0xNisoY3w9MCl8MCk+PjJdO2U6ZG97aWYoKDB8YVttKzIxNj4+Ml0p''@;'; + put 'put ''Pj0yKWlmKGFbTT4+Ml09fn4oK19bbSsxNj4+M10tK19bbSs4OD4+M10pLGFbTSs0Pj4yXT1+fitfW20rMjQ+PjNdLGFbRD4+Ml09YVtNPj4yXSxhW0QrND4+Ml09YVtNKzQ+PjJdLEpZKGYsYyxEKSxBPWYsdz0wfGFbQSs0Pj4yXSxmPU0sYVtmPj4yXT1hW0E+PjJdLGFbZis0Pj4yXT13LGY9''@;'; + put 'put ''MHxhW3A+PjJdLCgwfGFbZisxODQ+PjJdKT4wKWZvcihiPTB8YVthW2YrMTgwPj4yXT4+Ml0sZj0xKygwfGFbZisyMzY+PjJdKXwwLGI9MHxNZihsLDB8YVsoMj09KDMmYVtiPj4yXXwwKT9iOmIrLTQ4fDApKzQwPj4yXSk7Oyl7aWYoIWIpYnJlYWsgZTtwPSh3PTI9PSgzJmFbYj4+Ml18MCk/''@;'; + put 'put ''YjpiKy00OHwwKSs0OHwwLCgwfChtPTB8YVsoMz09KDMmYVt3Pj4yXXwwKT93OnApKzQwPj4yXSkpIT0oMHxjKSYmKDB8ZzEobSkpPT0oMHxjKSYmKG09MHxhWygzPT0oMyZhW3c+PjJdfDApP3c6cCkrNDA+PjJdLGFbRD4+Ml09YVtNPj4yXSxhW0QrND4+Ml09YVtNKzQ+PjJdLFhZKGssbCxt''@;'; + put 'put ''LEQsZikscD0wfGFbKG09aykrND4+Ml0sYVsoQT1NKT4+Ml09YVttPj4yXSxhW0ErND4+Ml09cCxNWSh3KSxBPXcrLTQ4fDAscD0obT0wfGFbMTcyKyhwPTB8YVsxNisoMHxhWygyPT0oMyZhW3c+PjJdfDApP3c6QSkrNDA+PjJdKT4+Ml0pPj4yXSk/MHxWMChtLDgrKGFbcCsxNzY+PjJdPDwy''@;'; + put 'put ''KXwwKTowfFFuKDgrKGFbcCsxNzY+PjJdPDwyKXwwKSxhWzE3MisoMHxhWzE2KygwfGFbKDI9PSgzJmFbdz4+Ml18MCk/dzpBKSs0MD4+Ml0pPj4yXSk+PjJdPXAscD0wfGFbMTcyKyhHPTB8YVsxNisoMHxhWygyPT0oMyZhW3c+PjJdfDApP3c6QSkrNDA+PjJdKT4+Ml0pPj4yXSxhWyhHPUcr''@;'; + put 'put ''MTc2fDApPj4yXT0xKyhtPTB8YVtHPj4yXSksYVtwKyhtPDwyKT4+Ml09dyxhWygwfGFbMTcyKyh3PTB8YVsxNisoMHxhWygyPT0oMyZhW3c+PjJdfDApP3c6QSkrNDA+PjJdKT4+Ml0pPj4yXSkrKGFbdysxNzY+PjJdPDwyKT4+Ml09MCxmPWYrMXwwKSxiPTB8SDMobCxiKX1lbHNlIGZvcih3''@;'; + put 'put ''PTB8YVthW2YrMTcyPj4yXT4+Ml0sZj0xKygwfGFbZisyMzY+PjJdKXwwLHc9MHx3MChsLDB8YVsoMz09KDMmYVt3Pj4yXXwwKT93OncrNDh8MCkrNDA+PjJdKTs7KXtpZighdylicmVhayBlO3A9dystNDh8MCwoMHwobT0wfGFbKDI9PSgzJmFbdz4+Ml18MCk/dzpwKSs0MD4+Ml0pKSE9KDB8''@;'; + put 'put ''YykmJigwfGcxKG0pKT09KDB8YykmJihtPTB8YVsoMj09KDMmYVt3Pj4yXXwwKT93OnApKzQwPj4yXSxhW0Q+PjJdPWFbTT4+Ml0sYVtEKzQ+PjJdPWFbTSs0Pj4yXSxYWShiLGwsbSxELGYpLHA9MHxhWyhtPWIpKzQ+PjJdLGFbKEE9TSk+PjJdPWFbbT4+Ml0sYVtBKzQ+PjJdPXAsTVkodyks''@;'; + put 'put ''QT13KzQ4fDAscD0obT0wfGFbMTgwKyhwPTB8YVsxNisoMHxhWygzPT0oMyZhW3c+PjJdfDApP3c6QSkrNDA+PjJdKT4+Ml0pPj4yXSk/MHxWMChtLDgrKGFbcCsxODQ+PjJdPDwyKXwwKTowfFFuKDgrKGFbcCsxODQ+PjJdPDwyKXwwKSxhWzE4MCsoMHxhWzE2KygwfGFbKDM9PSgzJmFbdz4+''@;'; + put 'put ''Ml18MCk/dzpBKSs0MD4+Ml0pPj4yXSk+PjJdPXAsaz0wfGFbMTgwKyhtPTB8YVsxNisoMHxhWygzPT0oMyZhW3c+PjJdfDApP3c6QSkrNDA+PjJdKT4+Ml0pPj4yXSxhWyhtPW0rMTg0fDApPj4yXT0xKyhHPTB8YVttPj4yXSksYVtrKyhHPDwyKT4+Ml09dyxhWygwfGFbMTgwKyhHPTB8YVsx''@;'; + put 'put ''NisoMHxhWygzPT0oMyZhW3c+PjJdfDApP3c6QSkrNDA+PjJdKT4+Ml0pPj4yXSkrKGFbRysxODQ+PjJdPDwyKT4+Ml09MCxmPWYrMXwwKSx3PTB8UzAobCx3KX19d2hpbGUoMCk7YWU9Un1mdW5jdGlvbiBKWShsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTAsbT0wO3h5KGN8PTAsMSZhWzExNiso''@;'; + put 'put ''MHxhWzE2KygwfGNyKGMpKT4+Ml0pPj4yXSksX1syNCsocD0wfGFbYysxNj4+Ml0pPj4zXT0rKDB8YVtmKzQ+PjJdKSxfW3ArMTY+PjNdPW09K19bcCs4OD4+M10rICsoMHxhW2Y+PjJdKSxhW2Y+PjJdPX5+KChtKz0rX1twKzk2Pj4zXSkrICsoMHxhWzI0OCsoMHxhWzE2KygwfGNyKGMpKT4+''@;'; + put 'put ''Ml0pPj4yXSkpLGM9MHxhWyhwPWYpKzQ+PjJdLGFbKGY9bCk+PjJdPWFbcD4+Ml0sYVtmKzQ+PjJdPWN9ZnVuY3Rpb24gWFkobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciB3LGIsayxBPTA7Yj1hZSxhZT1hZSsxNnwwLHc9YixjPTB8QWEoY3w9MCksKDB8KEE9MHxnMShmKSkp''@;'; + put 'put ''IT0oMHxmKSYmZnVuY3Rpb24gQTBlKGwsYyl7dmFyIHAsbSxmPTA7KDB8KGx8PTApKT09KDB8KGN8PTApKSYmUHIoODU2MTMsODU1NjEsMjIwLDg1NjIwKSwwfGFbKGY9MTY0KyhtPTB8YVtjKzE2Pj4yXSl8MCk+PjJdJiZQcig4NTYzMyw4NTU2MSwyMjEsODU2MjApLGFbZj4+Ml09YVsocD0x''@;'; + put 'put ''NjQrKDB8YVtsKzE2Pj4yXSl8MCk+PjJdLDB8KGY9MHxhW3A+PjJdKSYmKGFbMTY4KygwfGFbZisxNj4+Ml0pPj4yXT1jKSxhW20rMTY4Pj4yXT1sLGFbcD4+Ml09Y30oQSxmKSxhWzIzNisoaz0wfGFbZisxNj4+Ml0pPj4yXT1tLGFbaysyMzI+PjJdPUE9MHxhWzIzMisoMHxhW0ErMTY+PjJd''@;'; + put 'put ''KT4+Ml0sYVsoMHxhWygwfGFbMTk2KygwfGFbYysxNj4+Ml0pPj4yXSkrKEE8PDYpKzQ+PjJdKSsobTw8Mik+PjJdPWYsYVt3Pj4yXT1hW3A+PjJdLGFbdys0Pj4yXT1hW3ArND4+Ml0sSlkobCxmLHcpLGFlPWJ9ZnVuY3Rpb24gbHkobCl7dmFyIHcsYz0wLGY9MCxwPTAsbT0wLEE9MCxiPTAs''@;'; + put 'put ''az0wLE09MCxEPTA7Zm9yKE09MHxhWzE5NisoMHxhWzE2KygwfEFhKGx8PTApKT4+Ml0pPj4yXSx3PSgwfEFhKGwpKT09KDB8bCk/ODorKDB8ZXMobCwwfGFbNDcxNDRdLDgsMCkpLHA9MCxiPTEsZj0rX1sxMjArKG09MHxhWyhrPWwrMTZ8MCk+PjJdKT4+M10sYz0rX1ttKzEyOD4+M107ISgo''@;'; + put 'put ''MHxiKT4oMHxhW20rMTgwPj4yXSkpOylwPTB8bHkoQT0wfGFbKDB8YVttKzE4ND4+Ml0pKyhiPDwyKT4+Ml0pfHAsKDB8cnRbMjM4KyhBPTB8YVtBKzE2Pj4yXSk+PjFdKT09KDB8cnRbMjM4KyhtPTB8YVtrPj4yXSk+PjFdKSYmKGY9Zj4oRD0rX1tBKzEyMD4+M10rdyk/ZjpEKSwoMHxydFtB''@;'; + put 'put ''KzIzNj4+MV0pPT0oMHxydFttKzIzNj4+MV0pJiYoYz1jPihEPStfW0ErMTI4Pj4zXSt3KT9jOkQpLGI9YisxfDA7cmV0dXJuKDB8QWEobCkpIT0oMHxsKSYmMCE9KDB8YVsxMisoMHxhW2s+PjJdKT4+Ml0pJiYoMSZhWzExNisoMHxhWzE2KygwfGRpKGwpKT4+Ml0pPj4yXT9wPTE6KHA9MSxm''@;'; + put 'put ''PStfWzU2KyhiPTB8YVtrPj4yXSk+PjNdK2YsYz0rX1tiKzg4Pj4zXStjKSksX1sxMjArKGI9MHxhW2s+PjJdKT4+M109ZixfW2IrMTI4Pj4zXT1jLCgwfEFhKGwpKSE9KDB8bCkmJihfWyhsPU0rKHJ0WzIzNisoaz0wfGFbaz4+Ml0pPj4xXTw8NikrMjR8MCk+PjNdPShEPStfW2w+PjNdKT5j''@;'; + put 'put ''P0Q6YyxfWyhNPU0rKHJ0W2srMjM4Pj4xXTw8NikrMTZ8MCk+PjNdPShEPStfW00+PjNdKT5mP0Q6ZiksMHxwfWZ1bmN0aW9uIHN5KGwsYyl7Y3w9MDt2YXIgYixrLGY9MCxwPTAsbT0wLEE9MCx3PTAsTT0wLEQ9MCxSPTAsRz0wLEs9MDtmb3IoUj0wfGFbMTk2KygwfGFbMTYrKDB8QWEobHw9''@;'; + put 'put ''MCkpPj4yXSk+PjJdLE09KGY9KDB8QWEobCkpPT0oMHxsKT8wOjB8ZXMobCwwfGFbNDcxNDRdLDgsMCkpK2N8MCxiPSsoMHxmKSx3PTEscD0rX1sxMjgrKEE9MHxhWyhrPWwrMTZ8MCk+PjJdKT4+M10sbT0rX1tBKzEyMD4+M10sZj1BOyEoKDB8dyk+KDB8YVtmKzE4MD4+Ml0pKTspc3koQT0w''@;'; + put 'put ''fGFbKDB8YVtmKzE4ND4+Ml0pKyh3PDwyKT4+Ml0sTSksKDB8cnRbMjM4KyhBPTB8YVtBKzE2Pj4yXSk+PjFdKT09KDB8cnRbMjM4KyhmPTB8YVtrPj4yXSk+PjFdKSYmKG09bT4oSz0rX1tBKzEyMD4+M10rYik/bTpLKSwoMHxydFtBKzIzNj4+MV0pPT0oMHxydFtmKzIzNj4+MV0pJiYocD1w''@;'; + put 'put ''PihLPStfW0ErMTI4Pj4zXStiKT9wOkspLHc9dysxfDA7X1tmKzEyMD4+M109bSxfW2YrMTI4Pj4zXT1wLCgwfEFhKGwpKSE9KDB8bCkmJjB8YVsxMisoRD0wfGFbaz4+Ml0pPj4yXSYmKEc9LW0tcCsgK19bRCs0OCsoKCtfW0QrMTA0Pj4zXT4rX1tEKzcyPj4zXT8zOjEpPDw0KSs4Pj4zXS0r''@;'; + put 'put ''X1syNCsoMHxhWzE2KygwfGFbYVtSKyhydFtEKzIzNj4+MV08PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M10rICtfWzI0KygwfGFbMTYrKDB8YVthW1IrKHJ0W0QrMjM4Pj4xXTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXSk+MCYmZnVuY3Rpb24gajBlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIEEsYixr''@;'; + put 'put ''LE0sRCxSLEcsSyxwPTAsbT0wLHc9MCxwZT0wO2lmKGI9MHxhWzE2KygwfEFhKGx8PTApKT4+Ml0scD0wfHJ0WzIzNisoRz0wfGFbbCsxNj4+Ml0pPj4xXSwoMHwoZj1+figoUj0rKDB8KGs9KGMrMXwwKS8yfDApKSkrKEE9KygwfGYpKSsoRD0rX1soTT1HKzEyMHwwKT4+M10pLStfWyhLPTB8''@;'; + put 'put ''YVtiKzE5Nj4+Ml0pKygobD0wfHJ0W0crMjM4Pj4xXSk8PDYpKzE2Pj4zXSkpKT4wKXtmb3IobT0rKDB8Zik7ISgoMHxsKTwoMHxwKSk7KSgwfGFbSysobDw8Nik+PjJdKT4wJiYoX1socGU9MjQrKDB8YVsxNisoMHxhW2FbSysobDw8NikrND4+Ml0+PjJdKT4+Ml0pfDApPj4zXT0rX1twZT4+''@;'; + put 'put ''M10rbSksbD1sKy0xfDA7bD1mLG09KHc9K19bRysxMjg+PjNdKSsgKyhjLWt8MCl9ZWxzZSBsPWMta3wwLG09dz0rX1tHKzEyOD4+M107bD1+figrKDB8bCkrQSttLStfW0srKHA8PDYpKzI0Pj4zXSk7ZTpkb3tpZigoMHxsKT4wKWZvcihmPTB8cnRbYisyMzY+PjFdLG09KygwfGwpOzspe2lm''@;'; + put 'put ''KGw9cCstMXwwLCgwfHApPD0oMHxmKSlicmVhayBlOygwfGFbSysobDw8Nik+PjJdKTw9MHx8KF9bKHA9MjQrKDB8YVsxNisoMHxhW2FbSysobDw8NikrND4+Ml0+PjJdKT4+Ml0pfDApPj4zXT0rX1twPj4zXSttKSxwPWx9fXdoaWxlKDApO19bRysxMjg+PjNdPXcrICsoYy1rfDApLF9bTT4+''@;'; + put 'put ''M109RCtSfShsLH5+RyxjKSwoMHxBYShsKSkhPSgwfGwpJiYoX1soTT1SKyhydFsyMzYrKEQ9MHxhW2s+PjJdKT4+MV08PDYpKzI0fDApPj4zXT0oSz0rX1tNPj4zXSk+KEc9K19bRCsxMjg+PjNdKT9LOkcsX1soUj1SKyhydFtEKzIzOD4+MV08PDYpKzE2fDApPj4zXT0oRz0rX1tSPj4zXSk+''@;'; + put 'put ''KEs9K19bRCsxMjA+PjNdKT9HOkspfWZ1bmN0aW9uIHRrKGwsYyl7dmFyIGYscDtwPTB8ZmVbODQrKGY9MHxhWzE2KyhsfD0wKT4+Ml0pPj4wXSxsPTB8YVsxNisoY3w9MCk+PjJdO2Rve2lmKHA8PDI0Pj4yND09KDB8ZmVbbCs4ND4+MF0pKXtpZigrX1tmKzU2Pj4zXT09K19bbCs1Nj4+M10p''@;'; + put 'put ''e2lmKHA8PDI0Pj4yNCE9MCYmK19bZis2ND4+M10hPStfW2wrNjQ+PjNdKXtsPTA7YnJlYWt9fWVsc2UgaWYocDw8MjQ+PjI0KXtsPTA7YnJlYWt9aWYoK19bZisxNj4+M109PStfW2wrMTY+PjNdJiYrX1tmKzI0Pj4zXT09K19bbCsyND4+M10pe2w9MTticmVha31sPTA9PSgwfGZlW2YrNDQ+''@;'; + put 'put ''PjBdKSYxfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gS1kobCl7dmFyIHcsYz0wLGY9MCxwPTAsbT0wLEE9MDtmb3IocnRbMjM2KyhjPTB8YVsodz0xNisobHw9MCl8MCk+PjJdKT4+MV09MzI3NjcscnRbYysyMzg+PjFdPS0xLGM9MCxBPTB8RHQobCk7Zj0wfGFbdz4+''@;'; + put 'put ''Ml0sQTspKDB8KG09MHxhWzIzMisoMHxhW0ErMTY+PjJdKT4+Ml0pKT4oMHxydFsocD1mKzIzOHwwKT4+MV0pJiYocnRbcD4+MV09bSksKDB8bSk8KDB8cnRbKGY9ZisyMzZ8MCk+PjFdKSYmKHJ0W2Y+PjFdPW0pLGM9Yz8oMHxtKTwoMHxhWzIzMisoMHxhW2MrMTY+PjJdKT4+Ml0pP0E6YzpB''@;'; + put 'put ''LEE9MHx6dChsLEEpO2FbZisyNjQ+PjJdPWN9ZnVuY3Rpb24gb0gobCl7dmFyIHAsYz0wLGY9MCxtPTA7Zm9yKGM9KGM9MHxMaShsfD0wLDg2OTc0KSk/fn4oK2twKGMpKisoMHxHbyhsKSkpOjIxNDc0ODM2NDcscD1sKzE2fDAsZj0wOyEoKDB8Zik+PSgwfGFbMjIwKyhtPTB8YVtwPj4yXSk+''@;'; + put 'put ''PjJdKSk7KWFbbSsxOTI+PjJdPWFbKDB8YVttKzIxNj4+Ml0pKyhmPDwyKT4+Ml0sazcobCwwPT0oMHxhW20rMTgwPj4yXSkmMSxjKSxmPWYrMXwwfWZ1bmN0aW9uICRZKGwsYyl7Y3w9MDt2YXIgcCxtPTA7cD1hZSxhZT1hZSsxNnwwLDB8TGkobHw9MCw4Njk4Myk/KHJ0WyhtPTEzNisoMHxh''@;'; + put 'put ''W2wrMTY+PjJdKXwwKT4+MV09MTZ8cnRbbT4+MV0sZnVuY3Rpb24gWjBlKGwsYyl7bHw9MCxjfD0wO3ZhciBtLHcsZj0wLHA9MCxBPTA7dz1hZSxhZT1hZSsxNnwwLEE9dyxhWzQ2NzQ3XT0wLGZlW0E+PjBdPTB8ZmVbMTg1ODhdLGZlW0ErMT4+MF09MHxmZVsxODU4OV0sZmVbQSsyPj4wXT0w''@;'; + put 'put ''fGZlWzE4NTkwXSxmZVtBKzM+PjBdPTB8ZmVbMTg1OTFdLGgwKEE9MHxvYyg4NzIwMSxBLDApLDg3MjMwLDI4MCwxKSxmdW5jdGlvbiBFaShsLGMsZil7dmFyIHA7Y3w9MCxmfD0wLHA9MHxNdChsfD0wLDEyKSxhW3A+PjJdPWMsYVtwKzQ+PjJdPWYsYVtwKzg+PjJdPWFbKGY9NDgrKDB8YVts''@;'; + put 'put ''KzY0Pj4yXSl8MCk+PjJdLGFbZj4+Ml09cH0oQSwxNzQwNCwxNzM0NCkscVkobCksKGY9MHxMaShsLDg2OTc0KSk/cD1+figra3AoZikqKygwfEdvKGwpKSk6cD0yMTQ3NDgzNjQ3LHdJKGwsMCksZnVuY3Rpb24gYkkobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTA7Zm9yKGFbNDY3NDddPTAs''@;'; + put 'put ''Zj0wfER0KGwpO2Y7KSgwfEpoKGYpKT09KDB8ZikmJihwPTB8ZnkoYywwfHRpKGYpKSxhWzE0OCsoMHxhW2YrMTY+PjJdKT4+Ml09cCksZj0wfHp0KGwsZik7Zm9yKGY9MHxEdChsKTtmOykwfGFbMTQ4KygwfGFbKGM9ZisxNnwwKT4+Ml0pPj4yXXx8KHA9MHxhWzE0OCsoMHxhWzE2KygwfEpo''@;'; + put 'put ''KGYpKT4+Ml0pPj4yXSxhWzE0OCsoMHxhW2M+PjJdKT4+Ml09cCksZj0wfHp0KGwsZil9KGwsQSksZnVuY3Rpb24gSjBlKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtmb3Iodz0wfER0KGx8PTApO3c7KXtmb3IoZj0wfGFbMTQ4KygwfGFbdysxNj4+Ml0p''@;'; + put 'put ''Pj4yXSxiPTB8dzAobCx3KTtiOyl7ZG97aWYoMD09KDB8JDBlKGIpKSYmKGs9YistNDh8MCwoMHxmKSE9KDB8KE09MHxhWzE0OCsoMHxhWzE2KygwfEpoKDB8YVsoMj09KDMmYVtiPj4yXXwwKT9iOmspKzQwPj4yXSkpPj4yXSk+PjJdKSkpKXtpZihBPWIrNDh8MCxwPSgzPT0oMHwobT0zJmFb''@;'; + put 'put ''Yj4+Ml0pKT9iOkEpKzQwfDAsbT0wfGFbMjEyKygwfGFbMTYrKDB8YVsoMj09KDB8bSk/YjprKSs0MD4+Ml0pPj4yXSk+PjJdLDB8cTBlKGIpKXsoMHwobT0wfEpoKDB8YVtwPj4yXSkpKSE9KDB8YVsyMTIrKDB8YVsxNisoMHxhWzIxMisoMHxhWzE2KygwfGFbKDM9PSgwfChwPTMmYVtiPj4y''@;'; + put 'put ''XSkpP2I6QSkrNDA+PjJdKT4+Ml0pPj4yXSk+PjJdKT4+Ml0pJiYoMHwoQT0wfEpoKDB8YVsoMj09KDB8cCk/YjprKSs0MD4+Ml0pKSkhPSgwfGFbMjA4KygwfGFbMTYrKDB8YVsyMTIrKDB8YVsxNisoMHxhWygyPT0oMyZhW2I+PjJdfDApP2I6aykrNDA+PjJdKT4+Ml0pPj4yXSk+PjJdKT4+''@;'; + put 'put ''Ml0pP3A9TToocD1mLGY9TSksdVUoYyxmLHAsYik7YnJlYWt9aWYoMD09KDB8dUgoMHxhWzIxMisoMHxhWzE2KygwfGFbcD4+Ml0pPj4yXSk+PjJdKSkmJjA9PSgwfHVIKG0pKSl7dVUoYyxmLE0sYik7YnJlYWt9Q0koYyxmLE0sYik7YnJlYWt9fXdoaWxlKDApO2I9MHxTMChsLGIpfXc9MHx6''@;'; + put 'put ''dChsLHcpfX0obCxBKSxhVShsLEEsMCwwKSxmdW5jdGlvbiBYMGUobCl7dmFyIGM9MCxmPTA7Zm9yKGM9MHxEdChsfD0wKTtjOylmZVsxNTgrKGY9MHxhW2MrMTY+PjJdKT4+MF09MCxmZVtmKzE1Nz4+MF09MCxjPTB8enQobCxjKTtmb3IoYz0wfER0KGwpO2M7KWh5KGwsYyksYz0wfHp0KGws''@;'; + put 'put ''Yyl9KEEpLG09MHxmdW5jdGlvbiBLMGUobCl7dmFyIGM9MCxmPTAscD0wLG09MDtmb3IoYz0wfER0KGx8PTApO2M7KWFbMTI4KygwfGFbYysxNj4+Ml0pPj4yXT0wLGM9MHx6dChsLGMpO2ZvcihjPTAscD0wfER0KGwpO3A7KWY9YysxfDAsMHxhWzEyOCsoMHxhW3ArMTY+PjJdKT4+Ml18fChj''@;'; + put 'put ''eShsLHAsZiksYz1mKSxwPTB8enQobCxwKTtlOmRve2lmKCgwfGMpPjEpZm9yKG09MHxmeShsLDg3MjQ2KSxmPTEscD0wfER0KGwpOzspe2lmKCFwKWJyZWFrIGU7KDB8YVsxMjgrKDB8YVtwKzE2Pj4yXSk+PjJdKT09KDB8ZikmJihLYShsLG0scCwwLDEpLGY9ZisxfDApLHA9MHx6dChsLHAp''@;'; + put 'put ''fX13aGlsZSgwKTtyZXR1cm4gMHxjfShBKSxmdW5jdGlvbiBfSShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2ZvcihBPTB8RHQobHw9MCk7QTspe2Zvcih3PUErMTZ8MCxtPTB8dzAobCxBKTttOyljPShmPTB8YVsxODArKGM9MHxhW3c+PjJdKT4+Ml0pPzB8VjAoZiw4Kyhh''@;'; + put 'put ''W2MrMTg0Pj4yXTw8Mil8MCk6MHxRbig4KyhhW2MrMTg0Pj4yXTw8Mil8MCksYVsxODArKGY9MHxhW3c+PjJdKT4+Ml09YyxhWyhmPWYrMTg0fDApPj4yXT0xKyhwPTB8YVtmPj4yXSksYVtjKyhwPDwyKT4+Ml09bSxhWygwfGFbMTgwKyhwPTB8YVt3Pj4yXSk+PjJdKSsoYVtwKzE4ND4+Ml08''@;'; + put 'put ''PDIpPj4yXT0wLHA9bSstNDh8MCxjPShmPTB8YVsxNzIrKGM9MHxhWzE2KygwfGFbKDI9PSgzJmFbbT4+Ml18MCk/bTpwKSs0MD4+Ml0pPj4yXSk+PjJdKT8wfFYwKGYsOCsoYVtjKzE3Nj4+Ml08PDIpfDApOjB8UW4oOCsoYVtjKzE3Nj4+Ml08PDIpfDApLGFbMTcyKygwfGFbMTYrKDB8YVso''@;'; + put 'put ''Mj09KDMmYVttPj4yXXwwKT9tOnApKzQwPj4yXSk+PjJdKT4+Ml09YyxjPTB8YVsxNzIrKGI9MHxhWzE2KygwfGFbKDI9PSgzJmFbbT4+Ml18MCk/bTpwKSs0MD4+Ml0pPj4yXSk+PjJdLGFbKGI9YisxNzZ8MCk+PjJdPTErKGY9MHxhW2I+PjJdKSxhW2MrKGY8PDIpPj4yXT1tLGFbKDB8YVsx''@;'; + put 'put ''NzIrKHA9MHxhWzE2KygwfGFbKDI9PSgzJmFbbT4+Ml18MCk/bTpwKSs0MD4+Ml0pPj4yXSk+PjJdKSsoYVtwKzE3Nj4+Ml08PDIpPj4yXT0wLG09MHxTMChsLG0pO0E9MHx6dChsLEEpfX0oQSksMHxjJiYoeVUoQSkscFUoQSkpLGhRKEEsMSxwLGY9KGY9MHxMaShsLDEwMjU4NikpPzB8cjMo''@;'; + put 'put ''Zik6LTEpLGZ1bmN0aW9uIGxVKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO3J0WzIzNisoUj0wfGFbKEQ9MTYrKGx8PTApfDApPj4yXSk+PjFdPTMyNzY3LHJ0W1IrMjM4Pj4xXT0tMTtlOmRve2lmKCgwfGYpPjEpZm9yKG09MHx2cig0''@;'; + put 'put ''KyhmPDwyKXwwKSxwPWYrMXwwLGY9MTs7KXtpZigoMHxmKT09KDB8cCkpe009bSxSPW07YnJlYWsgZX1hW20rKGY8PDIpPj4yXT0zMjc2NyxmPWYrMXwwfWVsc2UgTT0wLFI9MH13aGlsZSgwKTtmb3IoQT0wPT0oMHxNKSxtPTB8RHQobCk7bTspdz0wfGFbMTYrKDB8YVsxNDgrKDB8YVsxNiso''@;'; + put 'put ''MHxKaChtKSk+PjJdKT4+Ml0pPj4yXSxhWzIzMisoaz0wfGFbbSsxNj4+Ml0pPj4yXT1iPTB8YVt3KzIzMj4+Ml0sKDB8Yik+KDB8cnRbKHA9MjM4KyhmPTB8YVtEPj4yXSl8MCk+PjFdKSYmKHJ0W3A+PjFdPWIpLCgwfGIpPCgwfHJ0WyhmPWYrMjM2fDApPj4xXSkmJihydFtmPj4xXT1iKSxB''@;'; + put 'put ''fHwoYVtrKzEyOD4+Ml09dz0wfGFbdysxMjg+PjJdLGFbKGs9TSsodzw8Mil8MCk+PjJdPSgwfCh3PTB8YVtrPj4yXSkpPCgwfGIpP3c6YiksbT0wfHp0KGwsbSk7dz0wIT0oMHxNKTtlOmRve2lmKHcpZm9yKGY9MHxEdChsKTs7KXtpZighZil7Zj0xO2JyZWFrIGV9YVsoRD0yMzIrKGs9MHxh''@;'; + put 'put ''W2YrMTY+PjJdKXwwKT4+Ml09KDB8YVtEPj4yXSktKDB8YVtNKyhhW2srMTI4Pj4yXTw8Mik+PjJdKSxmPTB8enQobCxmKX1lbHNlIGlmKE09MHxydFsyMzYrKDB8YVtEPj4yXSk+PjFdLHA9TTw8MTY+PjE2LE08PDE2Pj4xNj4wKXtmb3IoZj0wfER0KGwpO2Y7KWFbKE09MjMyKygwfGFbZisx''@;'; + put 'put ''Nj4+Ml0pfDApPj4yXT0oMHxhW00+PjJdKS1wLGY9MHx6dChsLGYpO3J0WyhEPTIzNisoZj0wfGFbRD4+Ml0pfDApPj4xXT0oMHxocltEPj4xXSktcCxydFsoZj1mKzIzOHwwKT4+MV09KDB8aHJbZj4+MV0pLXAsZj0wfWVsc2UgZj0wfXdoaWxlKDApO2ZvcihuayhsLGYpLEE9MHxEdChjKTtB''@;'; + put 'put ''OykobT0wfGFbMTcyKyhmPTB8YVsocD1BKzE2fDApPj4yXSk+PjJdKSYmKEZ0KG0pLGY9MHxhW3A+PjJdKSwwfChmPTB8YVtmKzE4MD4+Ml0pJiZGdChmKSxBPTB8enQoYyxBKTtmb3IoRnQoMHxhWzExMisoMHxhWzE2KygwfER0KGwpKT4+Ml0pPj4yXSksZj0wfER0KGwpO2Y7KWFbMTEyKygw''@;'; + put 'put ''fGFbZisxNj4+Ml0pPj4yXT0wLGY9MHx6dChsLGYpO3cmJkZ0KFIpfShsLEEsbSksQzEoQSksYWU9d30obCxjKSk6ejBlKGwsYyksYWU9cH1mdW5jdGlvbiB6MGUobCxjKXtjfD0wO3ZhciBwLG0sQSxmPTAsdz0wLGI9MDtBPWFlLGFlPWFlKzMyfDAsbT1BKzE2fDAscD1BKzh8MCxmPUEscVko''@;'; + put 'put ''bHw9MCk7ZG97aWYoYyl7aWYoeVUobCkscFUobCksdXkobCxsKSxFSShsKSxtNyhmLGwpLGY9MHxhWyhiPWYpKzQ+PjJdLGFbKHc9cCk+PjJdPWFbYj4+Ml0sYVt3KzQ+PjJdPWYsYkgobCwwKSwoMHxhWzIyMCsodz0wfGFbbCsxNj4+Ml0pPj4yXSk8PTEmJigwfGFbdysxODA+PjJdKTw9MCli''@;'; + put 'put ''cmVhazthW2MrMzI+PjJdPTEsYz0wfWVsc2UgdXkobCxsKSxFSShsKSxtNyhmLGwpLGY9MHxhWyh3PWYpKzQ+PjJdLGFbKGM9cCk+PjJdPWFbdz4+Ml0sYVtjKzQ+PjJdPWYsYkgobCwwKSxjPTB9d2hpbGUoMCk7KGZ1bmN0aW9uIGZVKGwpe3ZhciBwLGM9MCxmPTAsbT0wO2ZvcihwPTE2Kyhs''@;'; + put 'put ''fD0wKXwwLGY9MDshKCgwfGYpPj0oMHxhWzIyMCsobD0wfGFbcD4+Ml0pPj4yXSkpOyl7Zm9yKGFbbCsxOTI+PjJdPWM9MHxhWygwfGFbbCsyMTY+PjJdKSsoZjw8Mik+PjJdLGM9bD1jO2M7KWZlWzE1NysobT0wfGFbYysxNj4+Ml0pPj4wXT0wLGM9MHxhW20rMTY0Pj4yXTtmb3IoO2w7KWhV''@;'; + put 'put ''KGwpLGw9MHxhWzE2NCsoMHxhW2wrMTY+PjJdKT4+Ml07Zj1mKzF8MH19KShsKSxhW20+PjJdPWFbcD4+Ml0sYVttKzQ+PjJdPWFbcCs0Pj4yXSwwfGZ1bmN0aW9uIEcwZShsLGMpe2N8PTA7dmFyIGIsZj0wLHA9MCxtPTAsQT0wLHc9MCxrPTAsTT0wOzA9PSgwfGFbMjI4Kyh3PTB8YVsoYj0x''@;'; + put 'put ''NisobHw9MCl8MCk+PjJdKT4+Ml0pJiYwPT0oMHxhW3crMjI0Pj4yXSk/Yz0wOmY9MztlOmRve2lmKDM9PSgwfGYpKWZvcihtPTB8RHQobCksdz1jKzR8MCxBPTY1NTM1JmFbYz4+Ml0sYz0wOzspe2lmKCFtKWJyZWFrIGU7KDB8bSk9PSgwfGcxKG0pKSYmKDA9PSgwfGFbMTg0KyhmPTB8YVso''@;'; + put 'put ''cD1tKzE2fDApPj4yXSk+PjJdKSYmISgwPT0oMHwoaz0wfGFbMjI4KygwfGFbYj4+Ml0pPj4yXSkpfCgwfG0pPT0oMHxrKSkmJihjPTB8SmMobSxrLDApLHJ0WzE3MCsoZj0wfGFbYysxNj4+Ml0pPj4xXT1hW3c+PjJdLGFbZisxNTY+PjJdPTAsZj0wfGFbcD4+Ml0pLDA9PSgwfGFbZisxNzY+''@;'; + put 'put ''PjJdKSYmISgwPT0oMHwoTT0wfGFbMjI0KygwfGFbYj4+Ml0pPj4yXSkpfCgwfG0pPT0oMHxNKSkmJihjPTB8SmMoTSxtLDApLHJ0WzE3MCsocD0wfGFbYysxNj4+Ml0pPj4xXT1BLGFbcCsxNTY+PjJdPTApKSxtPTB8enQobCxtKX19d2hpbGUoMCk7cmV0dXJuIDAhPSgwfGMpfDB9KGwsbSkm''@;'; + put 'put ''JmJIKGwsMCksYz9mdW5jdGlvbiBhb2UobCxjKXt2YXIgdyxiLGssTSxLLGY9MCxwPTAsbT0wLEE9MCxHPTA7Zm9yKEs9YWUsYWU9YWUrMTZ8MCxiPTB8YVsyNCsoY3w9MCk+PjJdLGZ1bmN0aW9uIGxvZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9''@;'; + put 'put ''MDtmb3IoYVs0Njc1Ml09MHxRbigyNCooMHxHbyhsfD0wKSl8MCksYVs0Njc1MV09MCxjPTB8RHQobCk7YzspYVsxMjArKDB8YVtjKzE2Pj4yXSk+PjJdPS0xLGM9MHx6dChsLGMpO2Zvcih3PTB8RHQobCk7dzspe2I9dysxNnwwO2Rve2lmKDB8YVsyMTYrKDB8YVtiPj4yXSk+PjJdKXtpZihB''@;'; + put 'put ''PTB8ZzEodyksKDB8KGY9MHxhWzEyMCsoYz0wfGFbKGs9QSsxNnwwKT4+Ml0pPj4yXSkpPi0xKXttPTB8YVsoQT0wfGFbNDY3NTJdKSsoMjQqZnwwKT4+Ml0sYVsocD1BKygyNCpmfDApKzR8MCk+PjJdPTErKGs9MHxhW3A+PjJdKSxhW20rKGs8PDIpPj4yXT13LGs9MHxhW2I+PjJdLF9bKGI9''@;'; + put 'put ''QSsoMjQqZnwwKSs4fDApPj4zXT0rX1tiPj4zXSsgK19bayszMj4+M10sX1soYj1BKygyNCpmfDApKzE2fDApPj4zXT0oTT0rX1tiPj4zXSk8KEQ9K19bays0MD4+M10pP0Q6TSxhW2srMTIwPj4yXT1mO2JyZWFrfWY9MHx2cihhW2MrMjE2Pj4yXTw8MiksYVsoYz0ocD0wfGFbNDY3NTJdKSso''@;'; + put 'put ''MjQqKG09MHxhWzQ2NzUxXSl8MCl8MCk+PjJdPWYsYVtmPj4yXT1BLCgwfEEpPT0oMHx3KT8oX1twKygyNCptfDApKzg+PjNdPStfWzMyKygwfGFbaz4+Ml0pPj4zXSxmPTEsYz13KTooYVs0KygwfGFbYz4+Ml0pPj4yXT13LF9bcCsoMjQqbXwwKSs4Pj4zXT0rX1szMisoYz0wfGFbYj4+Ml0p''@;'; + put 'put ''Pj4zXSsgK19bMzIrKFI9MHxhW2s+PjJdKT4+M10sZj0yLGM9K19bUis0MD4+M108K19bYys0MD4+M10/dzpBKSxhW3ArKDI0Km18MCkrND4+Ml09ZixfW3ArKDI0Km18MCkrMTY+PjNdPStfWzQwKygwfGFbYysxNj4+Ml0pPj4zXSxhWzEyMCsoMHxhW2s+PjJdKT4+Ml09bSxhWzEyMCsoMHxh''@;'; + put 'put ''W2I+PjJdKT4+Ml09bSxhWzQ2NzUxXT1tKzF9ZWxzZSBtPTB8dnIoNCksYVsoQT0wfGFbNDY3NTJdKSsoMjQqKGs9MHxhWzQ2NzUxXSl8MCk+PjJdPW0sYVttPj4yXT13LGFbQSsoMjQqa3wwKSs0Pj4yXT0xLF9bQSsoMjQqa3wwKSs4Pj4zXT0rX1szMisoYj0wfGFbYj4+Ml0pPj4zXSxfW0Er''@;'; + put 'put ''KDI0Kmt8MCkrMTY+PjNdPStfW2IrNDA+PjNdLGFbYisxMjA+PjJdPWssYVs0Njc1MV09aysxfXdoaWxlKDApO3c9MHx6dChsLHcpfX0obHw9MCksTT1jKzh8MCx3PTFeKGs9LTE9PSgwfGIpKSxtPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixBPTA7a3woMHxBKTwoMHxiKTspe2ZvcihmPTB8RHQo''@;'; + put 'put ''bCk7ZjspYVsyMzIrKDB8YVtmKzE2Pj4yXSk+PjJdPTAsZj0wfHp0KGwsZik7aWYob0gobCkscD0rZ1UobCksX1tNPj4zXT1wLCEoIShwPD0rX1tjPj4zXSkmKCEobTw9cCl8dykpKXtHPTk7YnJlYWt9c29lKGwpLG09cCxBPUErMXwwfTk9PSgwfEcpJiYoYVtjKzE2Pj4yXT1hWyhHPWMrMjB8''@;'; + put 'put ''MCk+PjJdLGFbRz4+Ml09QSksb0gobCksTUkobCksZnVuY3Rpb24gcEgoKXt2YXIgTSxELGw9MCxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLFI9MDtmb3IoTT0wfGFbNDY3NDldLEQ9MHxhWzQ2NzUwXSxrPTAsYz0wLGw9MDshKCgwfGspPj0oMHxNKSk7KXtmPUQrKDQwKmt8MCl8''@;'; + put 'put ''MCxiPTB8YVtEKyg0MCprfDApKzEyPj4yXSxwPTA9PSgwfGMpO2U6ZG97aWYoYil7aWYocCljPTA7ZWxzZSBpZigoMHxhW2Y+PjJdKT4oMHxsKSlmb3IobT1EKyg0MCprfDApKzR8MCxmPTA7Oyl7aWYoKDB8Zik+PSgwfGIpKWJyZWFrIGU7Zm9yKHc9MHxhWzQrKEE9MHxhWygwfGFbbT4+Ml0p''@;'; + put 'put ''KyhmPDwyKT4+Ml0pPj4yXSxwPTA7ISgoMHxwKT49KDB8dykpOylhWyhSPTIzMisoMHxhWzE2KygwfGFbKDB8YVtBPj4yXSkrKHA8PDIpPj4yXSk+PjJdKXwwKT4+Ml09KDB8YVtSPj4yXSktYyxwPXArMXwwO2Y9ZisxfDB9fWVsc2UgcCYmKGw9MHxhW2Y+PjJdKSxjPWMrMXwwfXdoaWxlKDAp''@;'; + put 'put ''O2s9aysxfDB9fSgpLF9bTT4+M109K2dVKGwpLGFlPUt9KGwsYyk6b0gobCksZnVuY3Rpb24gVzBlKGwsYyl7Y3w9MDt2YXIgYixmPTAscD0wLG09MCxBPTAsdz0wO3A9MHxEdChsfD0wKSxmPTB8YVsoYj1sKzE2fDApPj4yXTtlOmRve2lmKHApe2ZvcihydFtmKzIzNj4+MV09MzI3NjcscnRb''@;'; + put 'put ''ZisyMzg+PjFdPS0xLHc9MD09KDB8Yyk7cDspe2Y9MHxnMShwKSxjPTB8YVsyMzIrKEE9MHxhW3ArMTY+PjJdKT4+Ml07ZG97aWYoKDB8ZikhPSgwfHApKXtpZighdyl7aWYoYylicmVhaztjPTB9YVtBKzIzMj4+Ml09Yz1jKygwfGFbMjMyKygwfGFbZisxNj4+Ml0pPj4yXSl8MH19d2hpbGUo''@;'; + put 'put ''MCk7c3dpdGNoKCgwfGMpPigwfHJ0WyhtPTIzOCsoZj0wfGFbYj4+Ml0pfDApPj4xXSkmJihydFttPj4xXT1jKSwoMHxjKTwoMHxydFsoZj1mKzIzNnwwKT4+MV0pJiYocnRbZj4+MV09YyksMHxmZVtBKzE1OT4+MF0pe2Nhc2UgNjpjYXNlIDA6YnJlYWs7ZGVmYXVsdDpyZyhwKX1wPTB8enQo''@;'; + put 'put ''bCxwKX1pZigoMHxBYShsKSk9PSgwfGwpKXtpZigxMDAhPSgwfGFbNDcxMzVdKSl7VTBlKGwpO2JyZWFrfWZvcihjPTE7Oyl7aWYoKDB8Yyk+KDB8YVsxODArKGY9MHxhW2I+PjJdKT4+Ml0pKWJyZWFrIGU7dFUoMHxhWygwfGFbZisxODQ+PjJdKSsoYzw8Mik+PjJdKSxjPWMrMXwwfX19ZWxz''@;'; + put 'put ''ZSBydFtmKzIzOD4+MV09MCxydFtmKzIzNj4+MV09MH13aGlsZSgwKX0obCxjKSxmdW5jdGlvbiBZMGUobCl7dmFyIGIsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsaz0wLE09MCxEPTA7Zm9yKGI9MTYrKGx8PTApfDAsZj0wOyEoKDB8Zik+PSgwfGFbMjIwKyhjPTB8YVtiPj4yXSk+PjJdKSk7''@;'; + put 'put ''KXtmb3IoYVtjKzE5Mj4+Ml09dz0wfGFbKDB8YVtjKzIxNj4+Ml0pKyhmPDwyKT4+Ml0sYz13O2M7KWVVKDE3MisoMHxhWyh3PWMrMTZ8MCk+PjJdKXwwKSxlVSgxODArKDB8YVt3Pj4yXSl8MCksZmVbMTU3Kyh3PTB8YVt3Pj4yXSk+PjBdPTAsYz0wfGFbdysxNjQ+PjJdO2Y9ZisxfDB9Zm9y''@;'; + put 'put ''KHc9MHxEdChsKTt3Oyl7Zm9yKEE9MHx3MChsLHcpO0E7KXtpZigwIT0oMHwobT0wfGFbMTcyKyhjPTB8YVsocD1BKzE2fDApPj4yXSk+PjJdKSkmJigwfEEpPT0oMHxhWzExNisoMHxhWyhrPW0rMTZ8MCk+PjJdKT4+Ml0pKXtmb3IoYz0wfER0KGwpO2M7KXtmb3IoZj0wfHcwKGwsYyk7Zjsp''@;'; + put 'put ''KDB8QSkhPSgwfGYpJiYwIT0oMHwoRD0wfGFbKE09MTcyKygwfGFbZisxNj4+Ml0pfDApPj4yXSkpJigwfG0pPT0oMHxEKSYmKGFbTT4+Ml09MCksZj0wfFMwKGwsZik7Yz0wfHp0KGwsYyl9RnQoMHxhW2s+PjJdKSxGdChtKSxjPTB8YVtwPj4yXX1hW2MrMTcyPj4yXT0wLEE9MHxTMChsLEEp''@;'; + put 'put ''fXc9MHx6dChsLHcpfUZ0KDB8YVsyMTYrKDB8YVtiPj4yXSk+PjJdKSxhWzIxNisoRD0wfGFbYj4+Ml0pPj4yXT0wLGFbRCsyMjA+PjJdPTB9KGwpLGFlPUF9ZnVuY3Rpb24gcVkobCl7dmFyIGM9MCxmPTAscD0wO2lmKDEmZmVbMTEzKygwfGFbMTYrKDB8YVs2MCsobHw9MCk+PjJdKT4+Ml0p''@;'; + put 'put ''Pj4wXSl7Zm9yKGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KXJ0WyhwPTE3MCsoMHxhW2MrMTY+PjJdKXwwKT4+MV09KDB8aHJbcD4+MV0pPDwxLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfWFbKHA9MjUyKygwfGFbbCsxNj4+Ml0pfDApPj4yXT0oMSsoMHxhW3A+PjJdKXwwKS8y''@;'; + put 'put ''fDB9fWZ1bmN0aW9uIHV5KGwsYyl7bHw9MDt2YXIgZj0wO2ZvcihjPTB8eXMoY3w9MCk7Yzspe2Y9MHxRMGUoYyk7ZG97aWYoZil7aWYoNz09KDB8ZikmMTAwPT0oMHxhWzQ3MTM1XSkpe25VKGwsYyk7YnJlYWt9YUgobCxjLGYpO2JyZWFrfXV5KGwsYyl9d2hpbGUoMCk7Yz0wfE1zKGMpfX1m''@;'; + put 'put ''dW5jdGlvbiBtNyhsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtjPTB8YVsyMjgrKGY9MHxhWyh3PTE2KyhjfD0wKXwwKT4+Ml0pPj4yXSxwPTA9PSgwfChmPTB8YVtmKzIyND4+Ml0pKSxjP209cD81OjQ6cD8oYj0wLGs9MCk6bT00LDQ9PSgwfG0pJiYoYz0wfGcx''@;'; + put 'put ''KGYpLGFbMjI0KyhmPTB8YVt3Pj4yXSk+PjJdPWMsKGM9MHxhW2YrMjI4Pj4yXSk/bT01OihBPTAsYz1mLG09MTIpKTtkb3tpZig1PT0oMHxtKSlpZihjPTB8ZzEoYyksYVsyMjgrKGY9MHxhW3c+PjJdKT4+Ml09YyxjKXtmb3IocD01PT0oMHxmZVsxNTkrKGM9MHxhWyhmPWMrMTZ8MCk+PjJd''@;'; + put 'put ''KT4+MF0pJjE7Oyl7aWYoIShjPTB8YVthW2MrMTgwPj4yXT4+Ml0pKXttPTExO2JyZWFrfWlmKCgwfChBPTB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSkpIT0oMHxnMShBKSkpe209OTticmVha31TSShjKSxjPTB8YVtmPj4yXX1pZig5PT0oMHxtKSlQcig4NzA5NCw4''@;'; + put 'put ''NzAzNCwzNDYsODcxMjYpO2Vsc2UgaWYoMTE9PSgwfG0pKXtBPXAsYz0wfGFbdz4+Ml0sbT0xMjticmVha319ZWxzZSBBPTAsYz1mLG09MTJ9d2hpbGUoMCk7ZTpkb3tpZigxMj09KDB8bSkpaWYoYz0wfGFbYysyMjQ+PjJdLGMpe2ZvcihwPTM9PSgwfGZlWzE1OSsoYz0wfGFbKGY9YysxNnww''@;'; + put 'put ''KT4+Ml0pPj4wXSkmMTs7KXtpZighKGM9MHxhW2FbYysxNzI+PjJdPj4yXSkpe2I9cCxrPUE7YnJlYWsgZX1pZigoMHwodz0wfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSkpIT0oMHxnMSh3KSkpYnJlYWs7U0koYyksYz0wfGFbZj4+Ml19UHIoODcxMzksODcwMzQsMzUz''@;'; + put 'put ''LDg3MTI2KX1lbHNlIGI9MCxrPUF9d2hpbGUoMCk7YVtsPj4yXT1iLGFbbCs0Pj4yXT1rfWZ1bmN0aW9uIGVVKGwpe3ZhciBmLGM9MDtmb3IoYz0wfGFbKGY9NCsobHw9MCl8MCk+PjJdOyEoKDB8Yyk8PS0xKTspYVsoMHxhW2w+PjJdKSsoYzw8Mik+PjJdPTAsYz1jKy0xfDA7YVtmPj4yXT0w''@;'; + put 'put ''fWZ1bmN0aW9uIHRVKGwpe3ZhciBjLHAsZj0wO2ZvcihydFsobD0yMzYrKGY9MHxhWyhjPTE2KyhsfD0wKXwwKT4+Ml0pfDApPj4xXT0ocD0wfGFbMjMyKygwfGFbMTYrKDB8YVtmKzI2ND4+Ml0pPj4yXSk+PjJdKSsoMHxocltsPj4xXSkscnRbKGw9ZisyMzh8MCk+PjFdPXArKDB8aHJbbD4+''@;'; + put 'put ''MV0pLGw9MTshKCgwfGwpPigwfGFbZisxODA+PjJdKSk7KXRVKDB8YVsoMHxhW2YrMTg0Pj4yXSkrKGw8PDIpPj4yXSksbD1sKzF8MCxmPTB8YVtjPj4yXX1mdW5jdGlvbiBVMGUobCl7dmFyIGM9MDtmb3IoYz0wfHlzKDB8QWEobHw9MCkpO2M7KTc9PSgwfGZlWzI3NCsoMHxhW2MrMTY+PjJd''@;'; + put 'put ''KT4+MF0pJiZuVShsLGMpLGM9MHxNcyhjKX1mdW5jdGlvbiBuVShsLGMpe3ZhciBmO2x8PTAsZj0yMDArKDB8YVsxNisoY3w9MCk+PjJdKXwwO2Rve2lmKDA9PSgwfGFbZj4+Ml0pJiYoYVtmPj4yXT1sLHJVKGwsYyksMHxEdChjKSkpe2lmKGlVKGwsYyksMTAwPT0oMHxhWzQ3MTM1XSkpe3ow''@;'; + put 'put ''ZShjLDApLG9VKGMpO2JyZWFrfUtZKGMpO2JyZWFrfX13aGlsZSgwKX1mdW5jdGlvbiByVShsLGMpe3ZhciBBLGY9MCxwPTAsbT0wLHc9MCxiPTAsaz0wO2ZvcihBPTE2KyhsfD0wKXwwLG09MHxEdChjfD0wKTttOylpZih3PTB8enQoYyxtKSwwfGZlWzE1OSsoMHxhWyhiPW0rMTZ8MCk+PjJd''@;'; + put 'put ''KT4+MF0pb2koYyxtKSxtPXc7ZWxzZXtmb3IocD0xOyEoKDB8cCk+PSgwfChsPTB8YVsxODArKGY9MHxhW0E+PjJdKT4+Ml0pKSk7KXtpZigwfE5yKDB8YVsoMHxhW2YrMTg0Pj4yXSkrKHA8PDIpPj4yXSxtKSl7az03O2JyZWFrfXA9cCsxfDB9Nz09KDB8aykmJihrPTAsbD0wfGFbMTgwKygw''@;'; + put 'put ''fGFbQT4+Ml0pPj4yXSksKDB8cCk8KDB8bCkmJm9pKGMsbSksYVsyMTIrKDB8YVtiPj4yXSk+PjJdPTAsbT13fWZvcihmPTB8RHQoYyk7Zjspe2ZvcihsPTB8dzAoMHxBYShjKSxmKTtsOykwfE5yKGMsMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKSYmVmQoYyxsLDEp''@;'; + put 'put ''LGw9MHxTMCgwfEFhKGMpLGwpO2Y9MHx6dChjLGYpfX1mdW5jdGlvbiBpVShsLGMpe2N8PTA7dmFyIHAsbSxBLGY9MDthWyhBPTE4MCsoZj0wfGFbKHA9MTYrKGx8PTApfDApPj4yXSl8MCk+PjJdPW09MSsobD0wfGFbQT4+Ml0pfDAsbD0oZj0wfGFbZisxODQ+PjJdKT8wfEJIKGYsbCsyfDAs''@;'; + put 'put ''NCxtKTowfHZyKDgrKGw8PDIpfDApLGFbMTg0KygwfGFbcD4+Ml0pPj4yXT1sLGFbbCsobTw8Mik+PjJdPWMsdWsoYyl9ZnVuY3Rpb24gb1UobCl7dmFyIG0sYz0wLGY9MCxwPTAsQT0wO2ZvcihjPTE5MisobT0wfGFbMTYrKGx8PTApPj4yXSl8MCxBPTA7Yz0wfGFbYz4+Ml07KWY9MHxhWzIz''@;'; + put 'put ''MisocD0wfGFbYysxNj4+Ml0pPj4yXT9BOjA9PSgwfGZlW3ArMTU2Pj4wXSk/YzpBLGM9cCsxNjR8MCxBPWY7Zm9yKEF8fFByKDg3MDE5LDg3MDM0LDIzOCw4NzA0MSksYVttKzI2ND4+Ml09QSxjPTB8RHQobCk7Oyl7aWYoIWMpe2M9MTM7YnJlYWt9aWYoZj1jKzE2fDAsISgoMHxjKT09KDB8''@;'; + put 'put ''QSl8fCgwfGFbMjE2KygwfGFbZj4+Ml0pPj4yXSk8Mikpe2M9MTE7YnJlYWt9aUQoYyxBKSxmZVsxNTkrKDB8YVtmPj4yXSk+PjBdPTcsYz0wfHp0KGwsYyl9aWYoMTE9PSgwfGMpKVByKDg3MDU2LDg3MDM0LDI0Miw4NzA0MSk7ZWxzZSBpZigxMz09KDB8YykpcmV0dXJufWZ1bmN0aW9uIFEw''@;'; + put 'put ''ZShsKXt2YXIgYz0wO3JldHVybiAwfGxIKGx8PTApP2w9NzooYz0wfG1OKDB8TGkobCw4NzE3MSksMTczNTYsMTczODApLGZlWzI3NCsoMHxhW2wrMTY+PjJdKT4+MF09YyxsPWMpLDB8bH1mdW5jdGlvbiBhSChsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wO209MHxE''@;'; + put 'put ''dChjfD0wKTtlOmRve2lmKDB8bSl7Zm9yKHc9bSsxNnwwLHA9bSxBPWI9MjU1JmY7ZmVbMTU5KygwfGFbcCsxNj4+Ml0pPj4wXT1BLHA9MHx6dChjLHApOylpRChtLHApLEE9MHxmZVsxNTkrKDB8YVt3Pj4yXSk+PjBdO3N3aXRjaCgwfGYpe2Nhc2UgMzpjYXNlIDI6KEE9MHxhWzIyNCsocD0w''@;'; + put 'put ''fGFbKGw9bCsxNnwwKT4+Ml0pPj4yXSkmJihtPTB8aUQoQSxtKSxwPTB8YVtsPj4yXSksYVtwKzIyND4+Ml09bTticmVhaztjYXNlIDU6Y2FzZSA0OihBPTB8YVsyMjgrKHA9MHxhWyhsPWwrMTZ8MCk+PjJdKT4+Ml0pJiYobT0wfGlEKEEsbSkscD0wfGFbbD4+Ml0pLGFbcCsyMjg+PjJdPW07''@;'; + put 'put ''YnJlYWs7ZGVmYXVsdDpicmVhayBlfXN3aXRjaCgwfGYpe2Nhc2UgMzpwPXArMjI0fDA7YnJlYWs7Y2FzZSA1OnA9cCsyMjh8MDticmVhaztkZWZhdWx0OmJyZWFrIGV9ZmVbMTU5KygwfGFbMTYrKDB8YVtwPj4yXSk+PjJdKT4+MF09Yn19d2hpbGUoMCl9ZnVuY3Rpb24gbEgobCl7cmV0dXJu''@;'; + put 'put ''IDA9PSgwfHMyKDB8dGkobHw9MCksMTA4MDA2LDcpKXwwfWZ1bmN0aW9uIHdJKGwsYyl7Y3w9MDt2YXIgbSxNLGY9MCxwPTAsQT0wLHc9MCxiPTAsaz0wO2lmKE09YWUsYWU9YWUrMTZ8MCxtPU0sISgwfGZ1bmN0aW9uIHRvZShsKXtyZXR1cm4gMD09KDB8RHQobHw9MCkpfDB9KGx8PTApKSl7''@;'; + put 'put ''ZG97aWYoMHxjRChsKSl7aWYoYyl7YVsyMDQrKDB8YVtsKzE2Pj4yXSk+PjJdPTErKDB8YVsyMDQrKDB8YVtjKzE2Pj4yXSk+PjJdKSxub2UobCxjKSxjPWw7YnJlYWt9YVsyMDQrKDB8YVtsKzE2Pj4yXSk+PjJdPTAsYz1sO2JyZWFrfX13aGlsZSgwKTtmb3IoZj0wfHlzKGwpO2Y7KXdJKGYs''@;'; + put 'put ''YyksZj0wfE1zKGYpO2U6ZG97aWYoMHxjRChsKSlmb3IoZj0wfER0KGwpOzspe2lmKCFmKWJyZWFrIGU7MHxhWyhwPTIxMisoMHxhW2YrMTY+PjJdKXwwKT4+Ml18fChhW3A+PjJdPWwpLGY9MHx6dChsLGYpfX13aGlsZSgwKTtzd2l0Y2goMHxmdW5jdGlvbiByb2UobCl7dmFyIGM9MDtyZXR1''@;'; + put 'put ''cm4gMCE9KDB8KGw9MHxMaShsfD0wLDg3MTcxKSkpJiYwIT0oMHxmZVtsPj4wXSk/MHxqaShsLDg3MTgxKT8wfGppKGwsODcxODUpPzB8amkobCw4NzE5Mik/MHxqaShsLDg3MTk2KT8wfGppKGwsODcxNzYpP2M9ODpsPTE6bD01Omw9NDpsPTM6bD0yOmM9OCw4PT0oMHxjKSYmKGw9NiksMHxs''@;'; + put 'put ''fShsKSl7Y2FzZSAzOmZlWzI0MSsoMHxhWyhjPWMrMTZ8MCk+PjJdKT4+MF09MSxrPTE5O2JyZWFrO2Nhc2UgMjpjPWMrMTZ8MCxrPTE5O2JyZWFrO2Nhc2UgNTpmZVsyNDIrKDB8YVsoYz1jKzE2fDApPj4yXSk+PjBdPTEsaz0yMTticmVhaztjYXNlIDQ6Yz1jKzE2fDAsaz0yMTticmVhaztj''@;'; + put 'put ''YXNlIDE6a0kobCk7YnJlYWs7Y2FzZSA2OmJyZWFrO2RlZmF1bHQ6Zj0wfHRpKGwpLHA9MHxMaShsLDg3MTcxKSxhW20+PjJdPWYsYVttKzQ+PjJdPXAsJHIoMCw4NzM1NCxtKX0xOT09KDB8ayk/KGs9MHxjSChrPTB8a0kobCksMHxhWzIwOCsoMHxhW2M+PjJdKT4+Ml0pLGFbMjA4KygwfGFb''@;'; + put 'put ''Yz4+Ml0pPj4yXT1rKToyMT09KDB8aykmJihrPTB8Y0goaz0wfGtJKGwpLDB8YVsyMTIrKDB8YVtjPj4yXSk+PjJdKSxhWzIxMisoMHxhW2M+PjJdKT4+Ml09ayksMHxjRChsKSYmMHwoYj0wfGFbMjA4Kyh3PTB8YVsoQT1sKzE2fDApPj4yXSk+PjJdKSYmKDB8Yik9PSgwfGFbdysyMTI+PjJd''@;'; + put 'put ''KSYmKGI9MHxrSShsKSxhWzIwOCsoaz0wfGFbQT4+Ml0pPj4yXT1iLGFbaysyMTI+PjJdPWIpfWFlPU19ZnVuY3Rpb24gYVUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTA7aWYoMCE9KDB8Y0QobHw9MCkpJiYwIT0oMHx1SChsKSkpe2ZvcihBPTB8RHQobCk7QTspMHxNZihs''@;'; + put 'put ''LEEpfHwobT0wfGFbMTQ4KygwfGFbMTYrKDB8SmgoQSkpPj4yXSk+PjJdLGZ8fChmPTB8ZnkoYyw4NzI1MikpLEthKGMsZixtLDAsMSkpLDB8dzAobCxBKXx8KG09MHxhWzE0OCsoMHxhWzE2KygwfEpoKEEpKT4+Ml0pPj4yXSxwfHwocD0wfGZ5KGMsODcyNTcpKSxLYShjLG0scCwwLDEpKSxB''@;'; + put 'put ''PTB8enQobCxBKTswIT0oMHxwKSYwIT0oMHxmKSYmc0goMHxLYShjLGYscCwwLDEpLDAsMWUzKSxtPWZ9ZWxzZSBtPWY7Zm9yKGY9MHx5cyhsKTtmOylhVShmLGMsbSxwKSxmPTB8TXMoZil9ZnVuY3Rpb24gSmgobCl7dmFyIGMsZixwPTA7aWYocD0wfGFbKGY9MTUyKygwfGFbKGM9MTYrKGx8''@;'; + put 'put ''PTApfDApPj4yXSl8MCk+PjJdKXtpZigoMHxwKSE9KDB8bCkpcmV0dXJuIHA9MHxKaChwKSxhWzE1MisoMHxhW2M+PjJdKT4+Ml09cCwwfHB9ZWxzZSBhW2Y+PjJdPWw7cmV0dXJuIDB8bH1mdW5jdGlvbiBuayhsLGMpe2N8PTA7dmFyIHcsZj0wLHA9MCxtPTAsQT0wO2Zvcih3PTE2KyhsfD0w''@;'; + put 'put ''KXwwLGY9MTshKCgwfGYpPigwfGFbMTgwKyhwPTB8YVt3Pj4yXSk+PjJdKSk7KW5rKDB8YVsoMHxhW3ArMTg0Pj4yXSkrKGY8PDIpPj4yXSwwKSxmPWYrMXwwO2lmKDAhPSgwfGMpfDAhPSgwfGFbcCsyMDA+PjJdKSl7Zm9yKHJ0W3ArMjM2Pj4xXT0zMjc2NyxydFtwKzIzOD4+MV09LTEsZj0w''@;'; + put 'put ''LEE9MHxEdChsKTtBOykoMHwobT0wfGFbMjMyKygwfGFbQSsxNj4+Ml0pPj4yXSkpPigwfHJ0WyhwPTIzOCsoYz0wfGFbdz4+Ml0pfDApPj4xXSkmJihydFtwPj4xXT1tKSwoMHxtKTwoMHxydFsoYz1jKzIzNnwwKT4+MV0pJiYocnRbYz4+MV09bSxmPUEpLEE9MHx6dChsLEEpO2FbMjY0Kygw''@;'; + put 'put ''fGFbdz4+Ml0pPj4yXT1mfX1mdW5jdGlvbiBjeShsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTA7cD0xMjgrKDB8YVsxNisoY3w9MCk+PjJdKXwwO2U6ZG97aWYoISgwfGFbcD4+Ml0pKXtmb3IoYVtwPj4yXT1mLHA9MHx3MChsLGMpO3A7KWN5KGwsMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCst''@;'; + put 'put ''NDh8MCkrNDA+PjJdLGYpLHA9MHxTMChsLHApO2ZvcihwPTB8TWYobCxjKTs7KXtpZighcClicmVhayBlO2N5KGwsMHxhWygzPT0oMyZhW3A+PjJdfDApP3A6cCs0OHwwKSs0MD4+Ml0sZikscD0wfEgzKGwscCl9fX13aGlsZSgwKX1mdW5jdGlvbiBmeShsLGMpe3ZhciBtLGY9MCxwPTA7cmV0''@;'; + put 'put ''dXJuIG09MHxHcihsfD0wLGN8PTAsMSksYVsxNzYrKDB8YVsoYz1tKzE2fDApPj4yXSk+PjJdPTAscD0wfHZyKDIwKSxhWzE3MisoZj0wfGFbYz4+Ml0pPj4yXT1wLGFbZisxODQ+PjJdPTAsZj0wfHZyKDIwKSxhWzE4MCsoYz0wfGFbYz4+Ml0pPj4yXT1mLHA9YysxNjh8MCwoZj0wfGFbNDY3''@;'; + put 'put ''NDddKT8oYVtwPj4yXT1mLGFbMTY0KygwfGFbZisxNj4+Ml0pPj4yXT1tKTooYVtwPj4yXT0wLGFbMTkyKygwfGFbbCsxNj4+Ml0pPj4yXT1tKSxhWzQ2NzQ3XT1tLGFbYysxNjQ+PjJdPTAsMHxtfWZ1bmN0aW9uIGh5KGwsYyl7bHw9MDt2YXIgQSxmPTAscD0wLG09MDtpZighKDB8ZmVbKHA9''@;'; + put 'put ''MTU3KyhmPTB8YVsoQT0xNisoY3w9MCl8MCk+PjJdKXwwKT4+MF0pKXtmb3IoZmVbcD4+MF09MSxmZVtmKzE1OD4+MF09MSxjPTB8dzAobCxjKTtjOylmPTB8UzAobCxjKSwwfGZlWzE1OCsobT0wfGFbMTYrKHA9MHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKT4+Ml0p''@;'; + put 'put ''Pj4wXT8oc1UobCxjKSxjPWYpOigwfGZlW20rMTU3Pj4wXXx8aHkobCxwKSxjPWYpO2ZlWzE1OCsoMHxhW0E+PjJdKT4+MF09MH19ZnVuY3Rpb24gc1UobCxjKXt2YXIgcCxmPTAsbT0wO209KGN8PTApLTQ4fDAscD1jKzQ4fDAsKGY9MHxLYShsfD0wLDB8YVsoMj09KDB8KGY9MyZhW2M+PjJd''@;'; + put 'put ''KSk/YzptKSs0MD4+Ml0sMHxhWygzPT0oMHxmKT9jOnApKzQwPj4yXSwwLDApKXx8KGY9MHxLYShsLDB8YVsoMj09KDB8KGY9MyZhW2M+PjJdKSk/YzptKSs0MD4+Ml0sMHxhWygzPT0oMHxmKT9jOnApKzQwPj4yXSwwLDEpKSxzSChmLDB8aHJbMTcwKyhtPTB8YVtjKzE2Pj4yXSk+PjFdLDB8''@;'; + put 'put ''YVttKzE1Nj4+Ml0pLG9pKGwsYyl9ZnVuY3Rpb24gc0gobCxjLGYpe3ZhciBwLG07Znw9MCxydFsocD0xNzArKGw9MHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4xXT0oMHwobT0wfGhyW3A+PjFdKSk+KDB8KGN8PTApKT9tOmMsYVsoYz1sKzE1NnwwKT4+Ml09KDB8YVtjPj4yXSkrZn1mdW5jdGlv''@;'; + put 'put ''biB1SChsKXtyZXR1cm4gMjU1JigwfG5nKDB8TGkobHw9MCw4NzI2MiksMCkpfDB9ZnVuY3Rpb24gJDBlKGwpe2x8PTA7dmFyIGMsZj0wO3JldHVybiAwfCgwIT0oMHwoYz0wfGFbNDcxODldKSkmJjAhPSgwfChmPTB8SG8obCxjKSkpJiYwIT0oMHxmZVtmPj4wXSkmJigwfGUxKGYpKTw8MjQ+''@;'; + put 'put ''PjI0PT0wPzE6MCl9ZnVuY3Rpb24gcTBlKGwpe3ZhciBjLGY9MDtyZXR1cm4oMHwoYz0wfGFbMjEyKygwfGFbMTYrKDB8YVsoMz09KDB8KGY9MyZhWyhsfD0wKT4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPT0oMHwobD0wfGFbMjEyKygwfGFbMTYrKDB8YVsoMj09KDB8Zik/''@;'; + put 'put ''bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk/MTooZj0wfGZ1bmN0aW9uIGVvZShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTA7ZTpmb3IoOzspe2ZvcihwPWwrMTZ8MDs7KXtpZigoMHxsKT09KDB8YykpYnJlYWsgZTtpZigoMHxhWzIwNCsobT0wfGFbcD4+Ml0pPj4yXSk+PSgw''@;'; + put 'put ''fGFbMjA0KyhmPTB8YVtjKzE2Pj4yXSk+PjJdKSlicmVhaztjPTB8YVtmKzIwMD4+Ml19bD0wfGFbbSsyMDA+PjJdfXJldHVybiAwfGx9KGMsbCksMSYoKDB8Zik9PSgwfGMpfCgwfGYpPT0oMHxsKSl8MCl9ZnVuY3Rpb24gdVUobCxjLGYscCl7cHw9MDt2YXIgQSxiLG09MCx3PTA7Yj1hZSxh''@;'; + put 'put ''ZT1hZSsxNnwwLEE9YiwobT0wfEthKGx8PTAsY3w9MCxmfD0wLDAsMCkpfHwobT0wfEthKGwsZixjLDAsMCkpfHwobT0wfEthKGwsYyxmLDAsMSkpP3c9NDooYz0wfHRpKGMpLHA9MHx0aShmKSxhW0E+PjJdPWMsYVtBKzQ+PjJdPXAsJHIoMSw4NzI3OSxBKSksND09KDB8dykmJnNIKG0sMHxo''@;'; + put 'put ''clsxNzArKHc9MHxhW3ArMTY+PjJdKT4+MV0sMHxhW3crMTU2Pj4yXSksYWU9Yn1mdW5jdGlvbiBDSShsLGMsZixwKXtmfD0wLHB8PTA7dmFyIGssbT0wLEE9MCx3PTAsYj0wLE09MDtmb3Ioaz1hZSxhZT1hZSsxMTJ8MCx3PWssQT1rKzR8MCxtPTB8TWYobHw9MCxjfD0wKTs7KXtpZighbSl7''@;'; + put 'put ''Yj02O2JyZWFrfWlmKDB8KE09MHx3MChsLDB8YVsoMz09KDMmYVttPj4yXXwwKT9tOm0rNDh8MCkrNDA+PjJdKSkmJigwfGFbKDI9PSgzJmFbTT4+Ml18MCk/TTpNKy00OHwwKSs0MD4+Ml0pPT0oMHxmKSlicmVhazttPTB8SDMobCxtKX02PT0oMHxiKSYmKGFbNDY3NDhdPTErKE09MHxhWzQ2''@;'; + put 'put ''NzQ4XSksYVt3Pj4yXT1NLG9vKEEsODcyNzAsdyksTT0wfEthKGwsQT0wfGZ5KGwsQSksYywwLDEpLEE9MHxLYShsLEEsZiwwLDEpLGFbKE09MTU2KygwfGFbTSsxNj4+Ml0pfDApPj4yXT0oMHxhW00+PjJdKSsoMWUzKigwfGFbKGI9MTU2KyhmPTB8YVtwKzE2Pj4yXSl8MCk+PjJdKXwwKSxy''@;'; + put 'put ''dFsodz0xNzArKE09MHxhW0ErMTY+PjJdKXwwKT4+MV09MHxydFsxNzArKDB8YVsoKDB8aHJbdz4+MV0pPigwfGhyW2YrMTcwPj4xXSk/QTpwKSsxNj4+Ml0pPj4xXSxhWyhNPU0rMTU2fDApPj4yXT0oMHxhW00+PjJdKSsoMHxhW2I+PjJdKSksYWU9a31mdW5jdGlvbiBub2UobCxjKXthWzIw''@;'; + put 'put ''MCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXT1jfD0wLGlVKGMsbCksclUoYyxsKX1mdW5jdGlvbiBrSShsKXt2YXIgYz0wLGY9MDtmPTB8RHQobHw9MCk7ZTpkb3tpZihmKWZvcihjPTB8SmgoZik7Oyl7aWYoIShmPTB8enQobCxmKSkpYnJlYWsgZTtjSChjLGYpfWVsc2UgYz0wfXdoaWxlKDAp''@;'; + put 'put ''O3JldHVybiAwfGN9ZnVuY3Rpb24gY0gobCxjKXtyZXR1cm4gbHw9MCwoY3w9MCkmJihsPTB8SmgobCksYVsxNTIrKDB8YVsxNisoMHxKaChjKSk+PjJdKT4+Ml09bCksMHxsfWZ1bmN0aW9uIGZIKGwpe3ZhciBNLEQsRyxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLFI9MDtHPWFl''@;'; + put 'put ''LGFlPWFlKzI0MHwwLE09RysxMjB8MCxEPUcsYVs0NzE5M109MHxzaShsfD0wLDIsODc0MTIsMCksaz0wfHNpKGwsMiw4NzQyMSwwKSxhWzQ3MTk0XT1rO2U6ZG97aWYoMCE9KDB8ayl8MCE9KDB8YVs0NzE5M10pKWZvcihrPTB8RHQobCk7Oyl7aWYoIWspYnJlYWsgZTtmb3IoYj0wLGM9MCx3''@;'; + put 'put ''PTB8U3MobCxrKTs7KXtpZighdyl7cD0wO2JyZWFrfXA9MHxhWygyPT0oMHwobT0zJihmPTB8YVt3Pj4yXSkpKT93OncrLTQ4fDApKzQwPj4yXSxBPXcrNDh8MDt0OmRve2lmKCgwfHApIT0oMHxhWygzPT0oMHxtKT93OkEpKzQwPj4yXSkpe209MHxhWzQ3MTkzXTtkb3tpZigoMHxwKT09KDB8''@;'; + put 'put ''aykmMCE9KDB8bSkpe2lmKHA9MHxIbyh3LG0pLDB8ZmVbcD4+MF0pe2Y9YixjPTB8aEgoTSxjLGssdyxwKTticmVhayB0fWY9MHxhW3c+PjJdO2JyZWFrfX13aGlsZSgwKTtmPTB8KHA9MHxhWzQ3MTk0XSkmJigwfGFbKDM9PSgzJmZ8MCk/dzpBKSs0MD4+Ml0pPT0oMHxrKSYmKFI9MHxIbyh3''@;'; + put 'put ''LHApLDAhPSgwfGZlW1I+PjBdKSk/MHxoSChELGIsayx3LFIpOmJ9ZWxzZSBmPWJ9d2hpbGUoMCk7Yj1mLHc9MHxIcyhsLHcsayl9Zm9yKDs7KXtpZigoMHxwKT49KDB8Yykpe2Y9MDticmVha31mPU0rKDI0KnB8MCkrNHwwLCgwfGFbTSsoMjQqcHwwKSs4Pj4yXSk+MSYmZEgoayxmKSwwfChm''@;'; + put 'put ''PTB8YVtmPj4yXSkmJkZ0KGYpLHA9cCsxfDB9Zm9yKDshKCgwfGYpPj0oMHxiKSk7KWM9RCsoMjQqZnwwKSs0fDAsKDB8YVtEKygyNCpmfDApKzg+PjJdKT4xJiZkSChrLGMpLDB8KGM9MHxhW2M+PjJdKSYmRnQoYyksZj1mKzF8MDtrPTB8enQobCxrKX19d2hpbGUoMCk7YWU9R31mdW5jdGlv''@;'; + put 'put ''biBoSChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgayxNLFIsQT0wLHc9MCxiPTAsRD0wLEc9MCxLPTAscGU9MDtmb3IoUj1hZSxhZT1hZSsxNnwwLGI9UixrPVIrMTJ8MCxNPVIrOHwwLEQ9MDs7KXtpZigoMHxEKT49KDB8Yykpe3c9MTA7YnJlYWt9aWYoKDB8ZmVb''@;'; + put 'put ''KHc9MHxhW2wrKDI0KkR8MCk+PjJdKT4+MF0pPT0oMHxmZVttPj4wXSkmJjA9PSgwfGppKHcsbSkpKXt3PTU7YnJlYWt9RD1EKzF8MH1kb3tpZig1PT0oMHx3KSkodz0wfGFbKGI9bCsoMjQqRHwwKSs0fDApPj4yXSk/KG09Rz1sKygyNCpEfDApKzh8MCx3PTB8VjAodyw4KyhhW0c+PjJdPDwy''@;'; + put 'put ''KXwwKSk6KG09dz1sKygyNCpEfDApKzh8MCx3PTB8UW4oOCsoYVt3Pj4yXTw8Mil8MCkpLGFbYj4+Ml09dyxhW20+PjJdPUc9MSsoSz0wfGFbbT4+Ml0pfDAsYVt3KyhLPDwyKT4+Ml09cCxhWygwfGFbYj4+Ml0pKyhHPDwyKT4+Ml09MCx3PTEzO2Vsc2UgaWYoMTA9PSgwfHcpKXtpZigoMHxj''@;'; + put 'put ''KT40KXtLPTB8dGkoZiksYVtiPj4yXT01LGFbYis0Pj4yXT1LLCRyKDEsODc0MzAsYik7YnJlYWt9YVsocGU9bCsoMjQqRHwwKSs4fDApPj4yXT0wLGI9MHx2cig4KSxhWyhLPWwrKDI0KkR8MCkrNHwwKT4+Ml09YixhW3BlPj4yXT13PTErKEc9MHxhW3BlPj4yXSl8MCxhW2IrKEc8PDIpPj4y''@;'; + put 'put ''XT1wLGFbKDB8YVtLPj4yXSkrKHc8PDIpPj4yXT0wLGFbbCsoMjQqRHwwKT4+Ml09bSxhW2wrKDI0KkR8MCkrMTI+PjJdPTAsX1tsKygyNCpEfDApKzE2Pj4zXT0wLGM9YysxfDAsdz0xMzticmVha319d2hpbGUoMCk7cmV0dXJuIDEzPT0oMHx3KSYmKFRDKHAsayxNKSwodz0oMHxhWygyPT0o''@;'; + put 'put ''MyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdKT09KDB8Zik/MHxhW00+PjJdOjB8YVtrPj4yXSkmJihhWyhLPWwrKDI0KkR8MCkrMTJ8MCk+PjJdPTErKHBlPTB8YVtLPj4yXSksQT1wZT8wOitsNyhwLHcpLF9bbCsoMjQqRHwwKSsxNj4+M109QSkpLGFlPVIsMHxjfWZ1bmN0aW9uIGRI''@;'; + put 'put ''KGwsYyl7dmFyIGdlLGJlLE9lLExlLFJlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsSGU9MDtmb3IoUmU9YWUsYWU9YWUrODB8MCxnZT1SZSs2OHwwLGJlPVJlKzY0fDAsSz1SZSxNPTB8YVsoT2U9NCsoY3w9MCl8MCk+PjJdLExlPTE2Kyhs''@;'; + put 'put ''fD0wKXwwLEE9MCxSPTAsRz0wOyEoKDB8QSk+PSgwfE0pKTspKDB8KGY9MHxhWygyPT0oMHwobT0zJmFbKHA9MHxhWygwfGFbYz4+Ml0pKyhBPDwyKT4+Ml0pPj4yXSkpP3A6cCstNDh8MCkrNDA+PjJdKSk9PSgwfGwpJiYoZj0wfGFbKDM9PSgwfG0pP3A6cCs0OHwwKSs0MD4+Ml0pLEE9QSsx''@;'; + put 'put ''fDAsUj0oYj0rX1sxNisobT0wfGFbZisxNj4+Ml0pPj4zXS0rX1sxNisocGU9MHxhW0xlPj4yXSk+PjNdKS8oRD0rS3koYixrPStfW20rMjQ+PjNdLStfW3BlKzI0Pj4zXSkpK1IsRz1rL0QrRztmb3Iodz0rS3koUixHKSxiPStfWzE2KyhwZT0wfGFbTGU+PjJdKT4+M10saz0rX1twZSsyND4+''@;'; + put 'put ''M10scGU9KEhlPStfW3BlKzk2Pj4zXSsgK19bcGUrODg+PjNdKT4oRD0rX1twZSs4MD4+M10pKyArKDB8YVsyNTIrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+Ml0pLGY9MHxhW0xlPj4yXSxwZT9EPStfW2YrOTY+PjNdKyArX1tmKzg4Pj4zXTooRD0rX1tmKzgwPj4zXSxEKz0rKDB8YVsyNTIr''@;'; + put 'put ''KDB8YVsxNisoMHxjcihsKSk+PjJdKT4+Ml0pLGY9MHxhW0xlPj4yXSksSGU9K19bZisxNj4+M10rRCooUi93KSx3PStfW2YrMjQ+PjNdK0QqKEcvdyksX1tLPj4zXT1iLF9bKE09Sys4fDApPj4zXT1rLF9bSysxNj4+M109LjMzMzMzMzMzMzMzMzMzMzMqKEhlKzIqYiksX1tLKzI0Pj4zXT0u''@;'; + put 'put ''MzMzMzMzMzMzMzMzMzMzMyoodysyKmspLF9bSyszMj4+M109LjMzMzMzMzMzMzMzMzMzMzMqKDIqSGUrYiksX1tLKzQwPj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooMip3K2spLF9bSys0OD4+M109SGUsX1tLKzU2Pj4zXT13LGZ1bmN0aW9uIG9sZShsLGMpe2N8PTA7dmFyIGYscCxtLEEsdyxi''@;'; + put 'put ''LE0saz0wLEQ9MDtNPWFlLGFlPWFlKzQ4fDAsZj1NKzE2fDAscD1NLG09TSszMnwwLDB8KGI9MHxhWzgrKHc9MHxhWyhBPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkmJjB8YVsxMisoMHxhWyhrPWIrNHwwKT4+Ml0pPj4yXSYmKGFbbT4+Ml09bCxhW20rND4+Ml09MCxEPStfW3crOTY+PjNdLF9b''@;'; + put 'put ''cD4+M109K19bYz4+M10tK19bdysxNj4+M10sX1twKzg+PjNdPStfW2MrOD4+M10tK19bdysyND4+M10saz0wfGFbMTIrKDB8YVtrPj4yXSk+PjJdLGFbZj4+Ml09YVtwPj4yXSxhW2YrND4+Ml09YVtwKzQ+PjJdLGFbZis4Pj4yXT1hW3ArOD4+Ml0sYVtmKzEyPj4yXT1hW3ArMTI+PjJdLGs9''@;'; + put 'put ''MHxCaVsxMjcma10obSxmKSxfWzk2KygwfGFbQT4+Ml0pPj4zXT1ELHJOKG0sbCxjLGspKSxhZT1NfShsLEspLGI9KygwfH5+KChiPStfW00+PjNdLStfWzI0KyhwZT0wfGFbTGU+PjJdKT4+M10pKyhiPj0wPy41Oi0uNSkpKSxwZT0yNTUmfn4oMjU2KigoSGU9K19bcGUrODg+PjNdKSsodz0r''@;'; + put 'put ''KDB8fn4oKHc9K19bSz4+M10tK19bcGUrMTY+PjNdKSsodz49MD8uNTotLjUpKSkpKS8oK19bcGUrOTY+PjNdK0hlKSksSz0wOyEoKDB8Syk+PSgwfGFbT2U+PjJdKSk7KXtmb3IoVEMoTT0wfGFbKDB8YVtjPj4yXSkrKEs8PDIpPj4yXSxnZSxiZSk7TTspe2ZvcihtPU07Oyl7aWYoIW0pe0E9''@;'; + put 'put ''TTticmVha31BPW0rLTQ4fDAsKDB8YVsoMj09KDMmKGY9MHxhW20+PjJdKXwwKT9tOkEpKzQwPj4yXSk9PSgwfGwpJiYoX1s1NisoZj0wfGFbbSsxNj4+Ml0pPj4zXT13LF9bZis2ND4+M109YixfW2YrNzI+PjNdPTAsYVtmKzgwPj4yXT0wLGZlW2YrODQ+PjBdPTEsZmVbZis4NT4+MF09MCxm''@;'; + put 'put ''ZVtmKzg2Pj4wXT0wLGZlW2YrODc+PjBdPTAsZmVbZis4OD4+MF09cGUsZmVbZis4OT4+MF09MCxhW2YrOTI+PjJdPTAsZj0wfGFbbT4+Ml0pLHA9bSsxNnwwLCgwfGFbKDM9PSgzJmZ8MCk/bTptKzQ4fDApKzQwPj4yXSk9PSgwfGwpJiYoX1sxNisoZj0wfGFbcD4+Ml0pPj4zXT13LF9bZisy''@;'; + put 'put ''ND4+M109YixfW2YrMzI+PjNdPTAsYVtmKzQwPj4yXT0wLGZlW2YrNDQ+PjBdPTEsZmVbZis0NT4+MF09MCxmZVtmKzQ2Pj4wXT0wLGZlW2YrNDc+PjBdPTAsZmVbZis0OD4+MF09cGUsZmVbZis0OT4+MF09MCxhW2YrNTI+PjJdPTApLG09MT09KDB8ZmVbMTEyKygwfGFbcD4+Ml0pPj4wXSkm''@;'; + put 'put ''JjE9PSgwfGZlWzE1NisoZj0wfGFbMTYrKDB8YVsoMj09KDMmYVttPj4yXXwwKT9tOkEpKzQwPj4yXSk+PjJdKT4+MF0pJiYxPT0oMHxhW2YrMTg0Pj4yXSk/MHxhW2FbZisxODA+PjJdPj4yXTowfWZvcig7QTspKDB8YVsoMj09KDMmKGY9MHxhW0E+PjJdKXwwKT9BOkErLTQ4fDApKzQwPj4y''@;'; + put 'put ''XSk9PSgwfGwpJiYoX1s1NisoZj0wfGFbQSsxNj4+Ml0pPj4zXT13LF9bZis2ND4+M109YixfW2YrNzI+PjNdPTAsYVtmKzgwPj4yXT0wLGZlW2YrODQ+PjBdPTEsZmVbZis4NT4+MF09MCxmZVtmKzg2Pj4wXT0wLGZlW2YrODc+PjBdPTAsZmVbZis4OD4+MF09cGUsZmVbZis4OT4+MF09MCxh''@;'; + put 'put ''W2YrOTI+PjJdPTAsZj0wfGFbQT4+Ml0pLHA9QSs0OHwwLG09QSsxNnwwLCgwfGFbKDM9PSgzJmZ8MCk/QTpwKSs0MD4+Ml0pPT0oMHxsKSYmKF9bMTYrKGY9MHxhW20+PjJdKT4+M109dyxfW2YrMjQ+PjNdPWIsX1tmKzMyPj4zXT0wLGFbZis0MD4+Ml09MCxmZVtmKzQ0Pj4wXT0xLGZlW2Yr''@;'; + put 'put ''NDU+PjBdPTAsZmVbZis0Nj4+MF09MCxmZVtmKzQ3Pj4wXT0wLGZlW2YrNDg+PjBdPXBlLGZlW2YrNDk+PjBdPTAsYVtmKzUyPj4yXT0wKSxBPTE9PSgwfGZlWzExMisoMHxhW20+PjJdKT4+MF0pJiYxPT0oMHxmZVsxNTYrKGY9MHxhWzE2KygwfGFbKDM9PSgzJmFbQT4+Ml18MCk/QTpwKSs0''@;'; + put 'put ''MD4+Ml0pPj4yXSk+PjBdKSYmMT09KDB8YVtmKzE3Nj4+Ml0pPzB8YVthW2YrMTcyPj4yXT4+Ml06MDtNPTB8YVsxNzIrKDB8YVtNKzE2Pj4yXSk+PjJdfUs9SysxfDB9ZmVbMTQ1KygwfGFbTGU+PjJdKT4+MF09MSxhZT1SZX1mdW5jdGlvbiBTSShsKXt2YXIgZixwLGM9MDtVMyhsfD0wKSxm''@;'; + put 'put ''PWwrLTQ4fDAscD1sKzQ4fDAsKGM9MHxVNSgwfGFbKDI9PSgwfChjPTMmYVtsPj4yXSkpP2w6ZikrNDA+PjJdLDB8YVsoMz09KDB8Yyk/bDpwKSs0MD4+Ml0pKT96NihsLGMpOkpjKDB8YVsoMj09KDB8KGM9MyZhW2w+PjJdKSk/bDpmKSs0MD4+Ml0sMHxhWygzPT0oMHxjKT9sOnApKzQwPj4y''@;'; + put 'put ''XSxsKX1mdW5jdGlvbiBoVShsKXt2YXIgbSxjPTAsZj0wLHA9MDtpZighKDB8ZmVbKGw9MTU3KyhjPTB8YVsobT0xNisobHw9MCl8MCk+PjJdKXwwKT4+MF0pKXtmb3IoZmVbbD4+MF09MSxmZVtjKzE1OD4+MF09MSxsPTA7cD0wfGFbKDB8YVtjKzE4MD4+Ml0pKyhsPDwyKT4+Ml07KTB8ZmVb''@;'; + put 'put ''MTU4KyhmPTB8YVsxNisoYz0wfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjBdPyhTSShwKSxsPWwrLTF8MCk6MHxmZVtmKzE1Nz4+MF18fGhVKGMpLGw9bCsxfDAsYz0wfGFbbT4+Ml07ZmVbYysxNTg+PjBdPTB9fWZ1bmN0aW9uIHBVKGwpe3ZhciBjPTAs''@;'; + put 'put ''Zj0wLHA9MCxtPTA7Zm9yKGY9MHxEdChsfD0wKTtmOyl7Zm9yKHA9MHxhWzE3NisobT0wfGFbZisxNj4+Ml0pPj4yXSxtPW0rMTcyfDAsYz0wOyEoKDB8Yyk+PSgwfHApKTspZmVbMTEyKygwfGFbMTYrKDB8YVsoMHxhW20+PjJdKSsoYzw8Mik+PjJdKT4+Ml0pPj4wXT0wLGM9YysxfDA7Zj0w''@;'; + put 'put ''fHp0KGwsZil9fWZ1bmN0aW9uIGdVKGwpe3ZhciBtLEEsYz0wLGY9MCxwPTAsdz0wLGI9MDtmb3IoTUkobHw9MCksYz0rKDB8QXIoMHxhWzI1MisocD0wfGFbbCsxNj4+Ml0pPj4yXSwoQT0wfGFbNDY3NDldKS0xfDApKSxtPTB8YVs0Njc1MF0scD1wKzI0OHwwLGw9MCxmPTA7ISgoMHxsKT49''@;'; + put 'put ''KDB8QSkpOyl3PStfW20rKDQwKmx8MCkrMjQ+PjNdKyArKDB8QXIoMHxhW3A+PjJdLDB8YVttKyg0MCpsfDApKzE2Pj4yXSkpLGI9K19bbSsoNDAqbHwwKSszMj4+M10rYyxsPWwrMXwwLGM9YixmPWY8dz93OmY7cmV0dXJuK2YvY31mdW5jdGlvbiBzb2UobCl7dmFyIGM9MDtmb3IoYVs0Njc1''@;'; + put 'put ''M109MHx2cigoMHxHbyhsfD0wKSk8PDIpLGM9MDshKCgwfGMpPj0oMHxHbyhsKSkpOylhWygwfGFbNDY3NTNdKSsoYzw8Mik+PjJdPWMsYz1jKzF8MDtNSShsKSxmdW5jdGlvbiBtVShsKXt4MSgwfGFbNDY3NTNdLDB8R28obHw9MCksNCw2Myl9KGwpLGZ1bmN0aW9uIHZVKGwpe2x8PTA7dmFy''@;'; + put 'put ''IGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTA7Zm9yKHc9MHxhWzQ2NzQ5XSxiPTB8YVs0Njc1MF0sbT0wfGFbNDY3NTNdLEE9MDs7KXtpZigoMHxBKT49KDB8dykpe2Y9MCxjPTA7YnJlYWt9aWYocD1BKzF8MCwhKCgwfGFbYiso''@;'; + put 'put ''NDAqKGY9MHxhW20rKEE8PDIpPj4yXSl8MCkrMTI+PjJdKTwyKSl7az00O2JyZWFrfUE9cH00PT0oMHxrKSYmKGM9KDB8dyk+KDB8cCk/K19bYisoNDAqKDB8YVttKyhwPDwyKT4+Ml0pfDApKzI0Pj4zXTowKTtlOmRve2lmKCgwfEEpIT0oMHx3KSlmb3IoeDEoMHxhW2IrKDQwKmZ8MCkrND4+''@;'; + put 'put ''Ml0sMHxhW2IrKDQwKmZ8MCkrMTI+PjJdLDQsNjQpLG09MHxhWzQ2NzUwXSxwZT0rX1ttKyg0MCpmfDApKzI0Pj4zXSxwZT0hKGM8PS4yNSpwZSkmIShjPj0uNzUqcGUpP2M6LjUqcGUsZ2U9MHxhW20rKDQwKmZ8MCkrMTI+PjJdLEs9bCsxNnwwLEQ9MCxSPTAsYz0wLHA9MCxHPTA7Oyl7aWYo''@;'; + put 'put ''KDB8Ryk+PShwK2dlfDApKWJyZWFrIGU7ZG97aWYoMHxhWygwfGFbbSsoNDAqZnwwKSs4Pj4yXSkrKEc8PDIpPj4yXSl3PUQsQT1SLHA9cCsxfDA7ZWxzZXtpZighKChBPTAhPSgwfFIpKSYhKChNPTcyKitfWyhsPTgrKGs9MHxhWygwfGFbbSsoNDAqZnwwKSs0Pj4yXSkrKEc8PDIpPj4yXSl8''@;'; + put 'put ''MCk+PjNdK2MrKGM+MD8rKDB8YVsyNDgrKDB8YVtLPj4yXSk+PjJdKTowKSk8PXBlKSkpe3c9QT9EOmssQT1BP1I6MSxjPU07YnJlYWt9Zm9yKHc9RCs0fDAsYj1rKzR8MCxBPTA7KDB8QSk8KDB8YVt3Pj4yXSk7KXtmb3IobT0wOyEoKDB8bSk+PSgwfGFbYj4+Ml0pKTspZmVbMTEyKygwfGFb''@;'; + put 'put ''MTYrKDB8SmMoMHxhWygwfGFbRD4+Ml0pKyhBPDwyKT4+Ml0sMHxhWygwfGFbaz4+Ml0pKyhtPDwyKT4+Ml0sMCkpPj4yXSk+PjBdPTEsbT1tKzF8MDtBPUErMXwwfWFbKDB8YVsobT0wfGFbNDY3NTBdKSsoNDAqZnwwKSs4Pj4yXSkrKEc8PDIpPj4yXT0xLGFbKHc9bSsoNDAqZnwwKSsxMnww''@;'; + put 'put ''KT4+Ml09KDB8YVt3Pj4yXSktMSxhWyh3PW0rKDQwKmZ8MCkrMTZ8MCk+PjJdPTErKDB8YVt3Pj4yXSksX1sodz1tKyg0MCpmfDApKzI0fDApPj4zXT0tNzIqK19bbD4+M10tKygwfGFbMjQ4KygwfGFbSz4+Ml0pPj4yXSkrICtfW3c+PjNdLHc9RCxBPVJ9fXdoaWxlKDApO0Q9dyxSPUEsRz1H''@;'; + put 'put ''KzF8MH19d2hpbGUoMCl9KGwpfWZ1bmN0aW9uIE1JKGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2lmKGFbNDY3NDldPTAsMHwoYz0wfGFbNDY3NTBdKSl7Zm9yKHA9MDshKCgwfHApPj0oMHxhWzQ2NzUxXSkpOykoZj0wfGFbYysoNDAqcHwwKSs0Pj4y''@;'; + put 'put ''XSkmJihGdChmKSxjPTB8YVs0Njc1MF0pLChmPTB8YVtjKyg0MCpwfDApKzg+PjJdKSYmKEZ0KGYpLGM9MHxhWzQ2NzUwXSkscD1wKzF8MDtGdChjKX1mb3IoYVs0Njc1MF09MHx2cig0MCooMHxhWzQ2NzUxXSl8MCksYz0wOyEoKDB8Yyk+PSgwfChmPTB8YVs0Njc1MV0pKSk7KWs9MHx2cihm''@;'; + put 'put ''PDwyKSxhWygwfGFbNDY3NTBdKSsoNDAqY3wwKSs0Pj4yXT1rLGs9MHx2cihhWzQ2NzUxXTw8MiksYVsoTT0wfGFbNDY3NTBdKSsoNDAqY3wwKSs4Pj4yXT1rLGFbTSsoNDAqY3wwKT4+Ml09YyxhW00rKDQwKmN8MCkrMTI+PjJdPTAsYVtNKyg0MCpjfDApKzE2Pj4yXT0wLGFbKE09TSsoNDAq''@;'; + put 'put ''Y3wwKSsyNHwwKT4+Ml09MCxhW00rND4+Ml09MCxhW00rOD4+Ml09MCxhW00rMTI+PjJdPTAsYz1jKzF8MDtmb3IocD0wfER0KGwpO3A7KXtmb3IoZj0wfHcwKGwscCk7Zjspe2ZvcihtPWYrLTQ4fDAsQT0wfGFbNDY3NTBdLGM9MHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgzJih3PTB8YVtm''@;'; + put 'put ''Pj4yXSl8MCk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml07ISgoMHwoYz1jKzF8MCkpPj0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgzJnd8MCk/ZjptKSs0MD4+Ml0pPj4yXSk+PjJdKSk7KWFbKHc9QSsoNDAqY3wwKSsxNnwwKT4+Ml09MSsoMHxhW3c+PjJdKSx3PTB8YVtmPj4yXTtm''@;'; + put 'put ''PTB8UzAobCxmKX1wPTB8enQobCxwKX1mb3Iodz0wfGFbNDY3NTFdLGs9MHxhWzQ2NzUyXSxNPTB8YVs0Njc1MF0sZj1sKzE2fDAsYz0wOyEoKDB8Yyk+PSgwfHcpKTspKDB8KG09MHxhWzIzMisoMHxhWyhwPTE2KygwfGFbYVtrKygyNCpjfDApPj4yXT4+Ml0pfDApPj4yXSk+PjJdKSk+PSgw''@;'; + put 'put ''fGFbNDY3NDldKSYmKGFbNDY3NDldPW0rMSksX1soQT1NKyg0MCptfDApKzI0fDApPj4zXT0oYj0rX1tBPj4zXSkrNzIqK19baysoMjQqY3wwKSs4Pj4zXSsoYj4wPysoMHxhWzI0OCsoMHxhW2Y+PjJdKT4+Ml0pOjApLCtfWyhBPU0rKDQwKm18MCkrMzJ8MCk+PjNdPChiPTcyKitfW2srKDI0''@;'; + put 'put ''KmN8MCkrMTY+PjNdKSYmKF9bQT4+M109YiksYVsoMHxhW00rKDQwKm18MCkrND4+Ml0pKyhhW00rKDQwKm18MCkrMTI+PjJdPDwyKT4+Ml09aysoMjQqY3wwKSxhWyhsPU0rKDQwKigwfGFbMjMyKygwfGFbcD4+Ml0pPj4yXSl8MCkrMTJ8MCk+PjJdPTErKDB8YVtsPj4yXSksYz1jKzF8MH1m''@;'; + put 'put ''dW5jdGlvbiBBVShsKXt2YXIgbSxjPTAsZj0wLHA9MCxBPTA7Zm9yKG09NCsobHw9MCl8MCxmPTAsYz0wOyEoKDB8Zik+PSgwfGFbbT4+Ml0pKTspe2ZvcihwPTB8dzAoQT0wfGNyKHA9MHxhWygwfGFbbD4+Ml0pKyhmPDwyKT4+Ml0pLHApO3A7KXA9MHxTMChBLHApLGM9YysxfDA7Zj1mKzF8''@;'; + put 'put ''MH1yZXR1cm4gMHxjfWZ1bmN0aW9uIHlVKGwpe3ZhciBjPTA7Zm9yKGM9MHxEdChsfD0wKTtjOylhWzIxNisoMHxhW2MrMTY+PjJdKT4+Ml09MCxjPTB8enQobCxjKX1mdW5jdGlvbiBtSChsKXtsfD0wO3ZhciBjLGY9MDtyZXR1cm4gMHwoMCE9KDB8KGM9MHxhWzQ3MTg5XSkpJiYwIT0oMHwo''@;'; + put 'put ''Zj0wfEhvKGwsYykpKSYmMCE9KDB8ZmVbZj4+MF0pJiYoMHxlMShmKSk8PDI0Pj4yND09MD8xOjApfWZ1bmN0aW9uIEVJKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7Zm9yKHlIKGx8PTApLGM9MHxEdChsKTtjOyl7Zm9yKGY9MHx3MChsLGMpO2Y7KXtkb3tpZigwPT0oMHxh''@;'; + put 'put ''WzE3MisoMHxhW2YrMTY+PjJdKT4+Ml0pJiYwPT0oMHxtSChmKSkmJihwPWYrNDh8MCxBPWYrLTQ4fDAsKDB8KG09MHxnMSgwfGFbKDM9PSgzJmFbZj4+Ml18MCk/ZjpwKSs0MD4+Ml0pKSkhPSgwfCh3PTB8ZzEoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6QSkrNDA+PjJdKSkpKSl7aWYoMD09''@;'; + put 'put ''KDB8YVsyMTIrKDB8YVttKzE2Pj4yXSk+PjJdKSYmMD09KDB8YVsyMTIrKDB8YVt3KzE2Pj4yXSk+PjJdKSl7aWYoYj0wfFU1KG0sdykpe3o2KGYsYik7YnJlYWt9SmMobSx3LGYpO2JyZWFrfXZIKGwsMHxhWygzPT0oMHwoYj0zJmFbZj4+Ml0pKT9mOnApKzQwPj4yXSwwfGFbKDI9PSgwfGIp''@;'; + put 'put ''P2Y6QSkrNDA+PjJdLGYpfX13aGlsZSgwKTtmPTB8UzAobCxmKX1jPTB8enQobCxjKX19ZnVuY3Rpb24gdkgobCxjLGYscCl7Y3w9MCxmfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7Yj0oQT0wfGFbMjEyKyhtPTB8YVsxNisoMHxhWygzPT0oMHwodz0zJmFbKHB8PTApPj4yXSkpP3A6cCs0OHww''@;'; + put 'put ''KSs0MD4+Ml0pPj4yXSk+PjJdKT8oMHxhW20rMjMyPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWzI2NCsoMHxhW0ErMTY+PjJdKT4+Ml0pPj4yXSk+PjJdKXwwOjAsYj0obT0oQT0wfGFbMjEyKyhtPTB8YVsxNisoMHxhWygyPT0oMHx3KT9wOnArLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0p''@;'; + put 'put ''PygwfGFbMjMyKygwfGFbMTYrKDB8YVsyNjQrKDB8YVtBKzE2Pj4yXSk+PjJdKT4+Ml0pPj4yXSktKDB8YVttKzIzMj4+Ml0pfDA6MCkrYisoMHxoclsxNzArKDB8YVsodz1wKzE2fDApPj4yXSk+PjFdKXwwLGw9MHxVaChsfD0wKSxmZVsxNTYrKDB8YVtsKzE2Pj4yXSk+PjBdPTIsQT0wfGcx''@;'; + put 'put ''KGMpLGM9MHxnMShmKSxmPTB8RnUobCxBLCgwfGIpPjA/MDorKDAtYnwwKSwxMCooMHxhWzE1NisoMHxhW3c+PjJdKT4+Ml0pfDApLGFbMTE2KygwfGFbMTYrKDB8RnUobCxjLCsoMHwoKDB8Yik+MD9iOjApKSwwfGFbMTU2KygwfGFbdz4+Ml0pPj4yXSkpPj4yXSk+PjJdPXAsYVsxMTYrKDB8''@;'; + put 'put ''YVtmKzE2Pj4yXSk+PjJdPXB9ZnVuY3Rpb24gcmsobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIG0sQT0wLHc9MCxiPTA7dz0wfGFbMjMyKygwfGFbMTYrKDB8YVsoKDB8YVsyMzIrKDB8YVsxNisoMHxhWyhBPTM9PSgwfCh3PTMmYVsoY3w9MCk+PjJdKSk/YzpjKzQ4fDApKzQwPj4yXSk+''@;'; + put 'put ''PjJdKT4+Ml0pPigwfGFbMjMyKygwfGFbMTYrKDB8YVsodz0yPT0oMHx3KT9jOmMrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pP0E6dykrNDA+PjJdKT4+Ml0pPj4yXSwwfGFbKGM9MTcyKygwfGFbKEE9YysxNnwwKT4+Ml0pfDApPj4yXSYmUHIoODc1OTMsODc2MTUsMTQ4LDg3NjI0KSxhW2M+''@;'; + put 'put ''PjJdPWYsbT0wPT0oMHxwKTtkb3tpZihjPTB8YVtBPj4yXSxtP3A9MHxhW2YrMTY+PjJdOnJ0WyhiPTE2OCsocD0wfGFbZisxNj4+Ml0pfDApPj4xXT0oMHxocltiPj4xXSkrKDB8aHJbYysxNjg+PjFdKSxydFsoYj1wKzE1NHwwKT4+MV09KDB8aHJbYj4+MV0pKygwfGhyW2MrMTU0Pj4xXSks''@;'; + put 'put ''YVsocD1wKzE1NnwwKT4+Ml09KDB8YVtwPj4yXSkrKDB8YVtjKzE1Nj4+Ml0pLGM9ZistNDh8MCwoMHxhWzIzMisoMHxhWzE2KyhwPTB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOmMpKzQwPj4yXSk+PjJdKT4+Ml0pPT0oMHx3KSlicmVhazt3VShsLHApLGY9MHxhW2FbMTgwKygwfGFbMTYrKDB8''@;'; + put 'put ''YVsoMj09KDMmYVtmPj4yXXwwKT9mOmMpKzQwPj4yXSk+PjJdKT4+Ml0+PjJdfXdoaWxlKDAhPSgwfGYpKX1mdW5jdGlvbiB3VShsLGMpe3ZhciBmO2Y9KygwfCgwfGFbMjQ4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKS8yKSxfWyhsPTg4KyhjPTB8YVsxNisoY3w9MCk+PjJdKXwwKT4+M109''@;'; + put 'put ''K19bbD4+M10rZixfWyhjPWMrOTZ8MCk+PjNdPStfW2M+PjNdK2Z9ZnVuY3Rpb24gaWsobCxjKXt2YXIgZj0wLHA9MDtyZXR1cm4gMHwoMCE9KDB8KGx8PTApKSYwIT0oMHwoY3w9MCkpJiYoMHxhWygzPT0oMHwocD0zJmFbbD4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdKT09KDB8YVsoMz09KDB8''@;'; + put 'put ''KGY9MyZhW2M+PjJdKSk/YzpjKzQ4fDApKzQwPj4yXSkmJigwfGFbKDI9PSgwfHApP2w6bCstNDh8MCkrNDA+PjJdKT09KDB8YVsoMj09KDB8Zik/YzpjKy00OHwwKSs0MD4+Ml0pJiYoMHxhWzk2KygwfGFbbCsxNj4+Ml0pPj4yXSk9PSgwfGFbOTYrKDB8YVtjKzE2Pj4yXSk+PjJdKSYmMCE9''@;'; + put 'put ''KDB8dGsobCxjKSk/MTowKX1mdW5jdGlvbiBiVShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MDtmb3IoYVsxOTIrKGM9MHxhWyhnZT0xNisobHw9MCl8MCk+PjJdKT4+Ml09MCxhW2MrMjMyPj4yXT0wLHlIKGwpLGM9''@;'; + put 'put ''MTshKCgwfGMpPigwfGFbMTgwKyhmPTB8YVtnZT4+Ml0pPj4yXSkpOylTVShsLDB8YVsoMHxhW2YrMTg0Pj4yXSkrKGM8PDIpPj4yXSksYz1jKzF8MDtmb3IoQT0wfER0KGwpO0E7KXtmb3IobT0wfHcwKGwsQSk7bTspKHA9MHxmZVsoZj0xNjArKDB8YVsxNisoMHxhWygyPT0oMyYoYz0wfGFb''@;'; + put 'put ''bT4+Ml0pfDApP206bSstNDh8MCkrNDA+PjJdKT4+Ml0pfDApPj4wXSk8PDI0Pj4yNDwzJiYoZmVbZj4+MF09cCsxPDwyND4+MjQsYz0wfGFbbT4+Ml0pLChmPTB8ZmVbKGM9MTYwKygwfGFbMTYrKDB8YVsoMz09KDMmY3wwKT9tOm0rNDh8MCkrNDA+PjJdKT4+Ml0pfDApPj4wXSk8PDI0Pj4y''@;'; + put 'put ''NDwzJiYoZmVbYz4+MF09ZisxPDwyND4+MjQpLG09MHxTMChsLG0pO0E9MHx6dChsLEEpfWZvcihEPTB8RHQobCk7RDspe2ZvcigwPT0oMHxhWzIxMisoMHxhW0QrMTY+PjJdKT4+Ml0pJiYoMHxEKT09KDB8ZzEoRCkpJiYockkobCxEKSxhWyhNPTIzMisoMHxhW2dlPj4yXSl8MCk+PjJdPTEr''@;'; + put 'put ''KDB8YVtNPj4yXSkpLGM9MCxNPTB8dzAobCxEKTtNOyl7QT0wfGFbKGs9TSsxNnwwKT4+Ml07ZTpkb3tpZigwfGFbQSsxNzI+PjJdKWM9TTtlbHNle2lmKDB8Zm9lKE0pKXtpZighKDB8aWsoYyxNKSkpe2hvZShsLE0pLGM9TTticmVha31pZigwfChmPTB8YVsxNzIrKDB8YVtjKzE2Pj4yXSk+''@;'; + put 'put ''PjJdKSl7cmsobCxNLGYsMCksWGQoTSk7YnJlYWt9aWYoKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHwoaz0zJmFbTT4+Ml0pKT9NOk0rNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkhPSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDB8ayk/TTpNKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJd''@;'; + put 'put ''KSlicmVhazt6NihNLGMpLFhkKE0pO2JyZWFrfWlmKGMpaWYoZj1NKzQ4fDAsKDB8KHA9MHxhWygzPT0oMHwodz0zJmFbTT4+Ml0pKT9NOmYpKzQwPj4yXSkpPT0oMHxhWygzPT0oMHwobT0zJmFbYz4+Ml0pKT9jOmMrNDh8MCkrNDA+PjJdKSYmKDB8KFI9MHxhWygyPT0oMHx3KT9NOk0rLTQ4''@;'; + put 'put ''fDApKzQwPj4yXSkpPT0oMHxhWygyPT0oMHxtKT9jOmMrLTQ4fDApKzQwPj4yXSkpe2lmKCgwfGFbMjMyKygwfGFbcCsxNj4+Ml0pPj4yXSk9PSgwfGFbMjMyKygwfGFbUisxNj4+Ml0pPj4yXSkpe3o2KE0sYyksWGQoTSk7YnJlYWt9aWYoMD09KDB8YVtBKzk2Pj4yXSkmJjA9PSgwfGFbOTYr''@;'; + put 'put ''KDB8YVsoRz1jKzE2fDApPj4yXSk+PjJdKSYmMCE9KDB8dGsoTSxjKSkpe2lmKDB8ZmVbMTk0OTU0XSl7ZmVbMTEyKygwfGFbaz4+Ml0pPj4wXT02O2JyZWFrfXJrKGwsTSwwfGFbMTcyKygwfGFbRz4+Ml0pPj4yXSwxKSxYZChNKTticmVha313PWZ9ZWxzZSB3PWY7ZWxzZSB3PU0rNDh8MDtp''@;'; + put 'put ''ZihiPU0rLTQ4fDAsKDB8KGY9MHxhWygzPT0oMHwoQT0zJmFbTT4+Ml0pKT9NOncpKzQwPj4yXSkpPT0oMHxhWygyPT0oMHxBKT9NOmIpKzQwPj4yXSkpe1hkKE0pLGM9TTticmVha31pZihmPTB8ZzEoZikscD0wfGcxKDB8YVsoMj09KDMmYVtNPj4yXXwwKT9NOmIpKzQwPj4yXSksKDB8YVso''@;'; + put 'put ''Mz09KDB8KEE9MyZhW00+PjJdKSk/TTp3KSs0MD4+Ml0pPT0oMHxmKSYmKDB8YVsoMj09KDB8QSk/TTpiKSs0MD4+Ml0pPT0oMHxwKSl7aWYoKDB8KG09MHxhWzIzMisoMHxhW2YrMTY+PjJdKT4+Ml0pKT09KDB8KEE9MHxhWzIzMisoMHxhW3ArMTY+PjJdKT4+Ml0pKSl7b0kobCxNKSxjPU07''@;'; + put 'put ''YnJlYWt9aWYoKDB8QSk+KDB8bSkpe3hJKGwsZixwLE0pLGM9TTticmVha31mPTB8S2EobCxwLGYsMCwwKTtkb3tpZigwfGYmJigwfChwZT0wfGFbKDI9PSgwfChLPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdKSkhPSgwfGFbKDI9PSgzJmFbTT4+Ml18MCk/TTpiKSs0MD4+Ml0pJiYo''@;'; + put 'put ''MHxhWzE3MisoMHxhWyhwPWYrMTZ8MCk+PjJdKT4+Ml18fHhJKGwsMHxhWygzPT0oMHxLKT9mOmYrNDh8MCkrNDA+PjJdLHBlLGYpLDA9PSgwfGFbOTYrKDB8YVtrPj4yXSk+PjJdKSYmMD09KDB8YVs5NisoMHxhW3A+PjJdKT4+Ml0pKSl7aWYoISgwfHRrKE0sZikpKWJyZWFrO2lmKDB8ZmVb''@;'; + put 'put ''MTk0OTU0XSl7ZmVbMTEyKygwfGFbaz4+Ml0pPj4wXT02LGZlWzE1MysoMHxhW3A+PjJdKT4+MF09MTticmVhayBlfVhkKE0pLHJrKGwsTSwwfGFbMTcyKygwfGFbcD4+Ml0pPj4yXSwxKTticmVhayBlfX13aGlsZSgwKTt4SShsLDB8YVsoMj09KDB8KGM9MyZhW00+PjJdKSk/TTpiKSs0MD4+''@;'; + put 'put ''Ml0sMHxhWygzPT0oMHxjKT9NOncpKzQwPj4yXSxNKSxjPU19fX13aGlsZSgwKTtNPTB8UzAobCxNKX1EPTB8enQobCxEKX0oMHxBYShsKSkhPSgwfGwpJiYoYz0oYz0wfGFbMjE2KygwfGFbZ2U+PjJdKT4+Ml0pPzB8VjAoYyw0KTowfFFuKDQpLGFbMjE2KyhnZT0wfGFbZ2U+PjJdKT4+Ml09''@;'; + put 'put ''YyxhW2M+PjJdPWFbZ2UrMTkyPj4yXSl9ZnVuY3Rpb24gZm9lKGwpe3ZhciBjO3JldHVybiAwfCg3PT0oMHxmZVsxNTkrKDB8YVsxNisoMHxhWygzPT0oMHwoYz0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjBdKT8xOjc9PSgwfGZlWzE1OSsoMHxhWzE2KygwfGFb''@;'; + put 'put ''KDI9PSgwfGMpP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4wXSkmMSl9ZnVuY3Rpb24gaG9lKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MDtwPTB8WmwoMHxhWygzPT0oMyZhWyhjfD0wKT4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSksbT0wfFpsKDB8YVsoMj09KDMmYVtjPj4y''@;'; + put 'put ''XXwwKT9jOmMrLTQ4fDApKzQwPj4yXSksZj0odz0oMHxhWzIzMisoMHxhW3ArMTY+PjJdKT4+Ml0pPigwfGFbMjMyKygwfGFbbSsxNj4+Ml0pPj4yXSkpP3A6bSxtPShwPXc/bTpwKSsxNnwwLHc9ZisxNnwwO2U6ZG97aWYoKDB8YVsyMTIrKDB8YVttPj4yXSk+PjJdKSE9KDB8YVsyMTIrKDB8''@;'; + put 'put ''YVt3Pj4yXSk+PjJdKSl7aWYoMHwoQT0wfFU1KHAsZikpKXtyayhsLGMsQSwxKTticmVha31pZigoMHxhWzIzMisoMHxhW20+PjJdKT4+Ml0pIT0oMHxhWzIzMisoMHxhW3c+PjJdKT4+Ml0pKWZvcih4SShsLHAsZixjKSxmPTE3MisoMHxhW2MrMTY+PjJdKXwwOzspe2lmKCEoZj0wfGFbZj4+''@;'; + put 'put ''Ml0pfHwocD1mKy00OHwwLCgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOnApKzQwPj4yXSk+PjJdKT4+Ml0pPigwfGFbMjMyKygwfGFbdz4+Ml0pPj4yXSkpKWJyZWFrIGU7ZmVbMTEyKygwfGFbZisxNj4+Ml0pPj4wXT01LGY9MHxhWzE4MCsoMHxhWzE2KygwfGFb''@;'; + put 'put ''KDI9PSgzJmFbZj4+Ml18MCk/ZjpwKSs0MD4+Ml0pPj4yXSk+PjJdfX19d2hpbGUoMCl9ZnVuY3Rpb24geEkobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTA7dmFyIGIsTSxrLG09MCxBPTAsdz0wO2ZvcihrPTB8YVs5NisobT0wfGFbKE09MTYrKHB8PTApfDApPj4yXSk+PjJdPygoMHxhWzIzMiso''@;'; + put 'put ''MHxhW2YrMTY+PjJdKT4+Ml0pKygwfGFbMjMyKygwfGFbYysxNj4+Ml0pPj4yXSl8MCkvMnwwOi0xLDB8YVttKzE3Mj4+Ml0mJlByKDg3NjM2LDg3NjE1LDg5LDg3NjYxKSxiPWYrMTZ8MCx3PTB8YVsyMzIrKDB8YVtjKzE2Pj4yXSk+PjJdO0E9dysxfDAsISgoMHx3KT49KDB8KG09MHxhWzIz''@;'; + put 'put ''MisoMHxhW2I+PjJdKT4+Ml0pKSk7KSgwfEEpPCgwfG0pPyhtPSgwfEEpPT0oMHxrKT8wfGRvZShsLHApOjB8X1UobCksYVsyMzIrKDB8YVttKzE2Pj4yXSk+PjJdPUEpOm09ZixPMGUoMHxKYyhjLG0scCkpLHc9QSxjPW07MHxhWzE3MisoMHxhW00+PjJdKT4+Ml18fFByKDg3NjcyLDg3NjE1''@;'; + put 'put ''LDEwMyw4NzY2MSl9ZnVuY3Rpb24gZG9lKGwsYyl7dmFyIGYscCx3LG09MCxBPTA7cmV0dXJuIGY9K19bMjQrKG09MHxhWzk2KygwfGFbKEE9MTYrKGN8PTApfDApPj4yXSk+PjJdKT4+M10scD0rX1ttKzMyPj4zXSxtPTB8VWgobHw9MCksYVsxMDQrKDB8YVsoYz1tKzE2fDApPj4yXSk+PjJd''@;'; + put 'put ''PWFbOTYrKDB8YVtBPj4yXSk+PjJdLHc9KygwfGFbMjQ4KygwfGFbMTYrKDB8ZGkobSkpPj4yXSk+PjJdKSxfWzg4KygwfGFbYz4+Ml0pPj4zXT13LDB8ZmVbMTE0KygwfGFbQT4+Ml0pPj4wXXx8KGw9MD09KDEmYVsxMTYrKDB8YVsxNisoMHxkaShsKSk+PjJdKT4+Ml18MCksX1s4MCsoQT0w''@;'; + put 'put ''fGFbYz4+Ml0pPj4zXT1sP3A6ZixfW0ErOTY+PjNdPWw/ZjpwKSwwfG19ZnVuY3Rpb24gX1UobCl7dmFyIGM7cmV0dXJuIHdVKGx8PTAsYz0wfFVoKGwpKSwwfGN9ZnVuY3Rpb24gWmwobCl7dmFyIGM7cmV0dXJuIDB8KDc9PSgwfGZlWzE1OSsoYz0wfGFbMTYrKGx8PTApPj4yXSk+PjBdKT8w''@;'; + put 'put ''fGFbKDB8YVsyNjgrKDB8YVsxNisoMHxhW2MrMjEyPj4yXSk+PjJdKT4+Ml0pKyhhW2MrMjMyPj4yXTw8Mik+PjJdOjB8ZzEobCkpfWZ1bmN0aW9uIEFIKGwsYyxmKXt2YXIgcCxtO2N8PTAsZnw9MCxmdW5jdGlvbiB2NyhsLGMsZixwLG0pe2Z8PTAscHw9MCxtfD0wO3ZhciBSLEE9MCx3PTAs''@;'; + put 'put ''Yj0wLGs9MCxNPTAsRD0wOygwfChBPTB8YVsyMzIrKDB8YVsoUj0xNisoY3w9MCl8MCk+PjJdKT4+Ml0pKTw9KDB8KGI9MHxhWzIzMisoMHxhWyhEPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkpJiZQcig4NzY5Nyw4NzcyNSw4MSw4NzczNSksKDB8YVsoMz09KDB8KE09MyZhW3A+PjJdKSk/cDpw''@;'; + put 'put ''KzQ4fDApKzQwPj4yXSk9PSgwfGwpJiYoMHxhWygyPT0oMHxNKT9wOnArLTQ4fDApKzQwPj4yXSk9PSgwfGMpfHwoaz01KTtlOmRve2lmKDU9PSgwfGspKXtpZigoMHxydFsxNjgrKDB8YVtwKzE2Pj4yXSk+PjFdKT4xKXtpZihhWzE3MisoMHxhW2YrMTY+PjJdKT4+Ml09MCwxPT0oQS1ifDAp''@;'; + put 'put ''JiYwfCh3PTB8VTUobCxjKSkmJjB8dGsoZix3KSl7aWYoejYoZix3KSwwfGZlWzE1NisoMHxhW0Q+PjJdKT4+MF18fDB8ZmVbMTU2KygwfGFbUj4+Ml0pPj4wXSlicmVhaztYZChmKTticmVha31mb3IoTT0yNTUmbSxtPWwsaz0wfGFbMjMyKygwfGFbRD4+Ml0pPj4yXTs7KXtpZigoMHxrKT49''@;'; + put 'put ''KDB8KEE9MHxhWzIzMisoMHxhW1I+PjJdKT4+Ml0pKSlicmVhayBlOygwfGspPChBKy0xfDApPyh3PXArLTQ4fDAsQT0wfG9rKEE9MHxBYShsKSwwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDp3KSs0MD4+Ml0pLGI9cCk6KEE9Yyx3PXArLTQ4fDAsYj1wKSxmZVsxMTIrKDB8YVsxNisoMHxKYyht''@;'; + put 'put ''LEEsZikpPj4yXSk+PjBdPU0scnRbKEQ9MTY4KygwfGFbcCsxNj4+Ml0pfDApPj4xXT0oMHxydFtEPj4xXSktMTw8MTY+PjE2LG09QSxrPWsrMXwwLHA9MHxhW2FbMTgwKygwfGFbMTYrKDB8YVsoMj09KDMmYVtiPj4yXXwwKT9wOncpKzQwPj4yXSk+PjJdKT4+Ml0+PjJdfX1kb3tpZigxPT0o''@;'; + put 'put ''QS1ifDApKXtpZigwfChwPTB8VTUobCxjKSkmJjB8dGsoZixwKSl7aWYoYVsxNzIrKDB8YVtmKzE2Pj4yXSk+PjJdPXAsZmVbMTEyKyhNPTB8YVtwKzE2Pj4yXSk+PjBdPW0scnRbKE09TSsxNjh8MCk+PjFdPTErKDB8cnRbTT4+MV0pPDwxNj4+MTYsMHxmZVsxNTYrKDB8YVtEPj4yXSk+PjBd''@;'; + put 'put ''fHwwfGZlWzE1NisoMHxhW1I+PjJdKT4+MF0pYnJlYWs7WGQoZik7YnJlYWt9YVsxNzIrKDB8YVtmKzE2Pj4yXSk+PjJdPTAscD0wfEpjKGwsYyxmKSxmZVsxMTIrKDB8YVtwKzE2Pj4yXSk+PjBdPW19fXdoaWxlKDApO2lmKCgoQT0wfGFbMjMyKygwfGFbUj4+Ml0pPj4yXSktKDB8YVsyMzIr''@;'; + put 'put ''KDB8YVtEPj4yXSk+PjJdKXwwKT4xKXtmb3IoKDB8YVsoMz09KDMmYVtwPj4yXXwwKT9wOnArNDh8MCkrNDA+PjJdKT09KDB8bCk/az1BOihhWzE3MisoMHxhWyhEPWYrMTZ8MCk+PjJdKT4+Ml09MCxrPTB8SmMobCwwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0sZiks''@;'; + put 'put ''YVsxNzIrKDB8YVtEPj4yXSk+PjJdPWssVTMocCkscD1rLGs9MHxhWzIzMisoMHxhW1I+PjJdKT4+Ml0pOygwfGFbMjMyKyhiPTB8YVsxNisodz0wfGFbKDI9PSgwfChBPTMmYVtwPj4yXSkpP3A6cCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkhPSgwfGspOylwPTB8YVthW2IrMTgwPj4yXT4+''@;'; + put 'put ''Ml07KDB8dykhPSgwfGMpJiYoZmVbMTEyKygwfGFbMTYrKDB8SmMoMHxhWygzPT0oMHxBKT9wOnArNDh8MCkrNDA+PjJdLGMsZikpPj4yXSk+PjBdPW0sVTMocCkpfX19d2hpbGUoMCl9KG09MHxZNihsfD0wKSxwPTB8WTYoYyksZiwwfGFbMTcyKygwfGFbZisxNj4+Ml0pPj4yXSwoMHxtKT09''@;'; + put 'put ''KDB8bCkmKDB8cCk9PSgwfGMpPzE6NSl9ZnVuY3Rpb24gWTYobCl7dmFyIGMsZixwPTA7cmV0dXJuIDAhPSgwfChmPTB8YVsyMTIrKGM9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSkpJiYwPT0oMHxmZVsyNzIrKHA9MHxhW2YrMTY+PjJdKT4+MF0pJiYobD0wfGFbKDB8YVtwKzI2OD4+Ml0pKyhh''@;'; + put 'put ''W2MrMjMyPj4yXTw8Mik+PjJdKSwwfGx9ZnVuY3Rpb24gb2sobCxjKXt2YXIgcCxtLGY9MDtyZXR1cm4gQ1UobHw9MCxwPTB8YVsyMzIrKGM9MHxhWyhmPTE2KyhjfD0wKXwwKT4+Ml0pPj4yXSwwfGFbYysyMzY+PjJdLDIpLGM9MHxVaChsKSxfWzg4KyhtPTB8YVtjKzE2Pj4yXSk+PjNdPStf''@;'; + put 'put ''Wzg4KyhmPTB8YVtmPj4yXSk+PjNdLF9bbSs5Nj4+M109K19bZis5Nj4+M10sYVttKzIzMj4+Ml09YVtmKzIzMj4+Ml0sYVttKzIzNj4+Ml09Zj0xKygwfGFbZisyMzY+PjJdKXwwLGFbKDB8YVsoMHxhWzE5NisoMHxhW2wrMTY+PjJdKT4+Ml0pKyhwPDw2KSs0Pj4yXSkrKGY8PDIpPj4yXT1j''@;'; + put 'put ''LDB8Y31mdW5jdGlvbiBDVShsLGMsZixwKXtmfD0wLHB8PTA7dmFyIHcsYixtPTAsQT0wLGs9MDtiPTB8YVsobT0wfGFbMTk2KygwfGFbKHc9MTYrKGx8PTApfDApPj4yXSk+PjJdKSsoKGN8PTApPDw2KSs0Pj4yXTtlOmRve2lmKCgwfHApPDEpe2ZvcihmPWYtcHwwOyEoKDB8KEE9ZisxfDAp''@;'; + put 'put ''KT49KDB8KGw9MHxhW20rKGM8PDYpPj4yXSkpKTspYVsyMzYrKDB8YVsxNisobD0wfGFbYisoQTw8Mik+PjJdKT4+Ml0pPj4yXT1tPWYrcHwwLGFbYisobTw8Mik+PjJdPWwsZj1BLG09MHxhWzE5NisoMHxhW3c+PjJdKT4+Ml07Zm9yKGY9KEE9cCstMXwwKStsfDA7Oyl7aWYoKDB8Zik+PSgw''@;'; + put 'put ''fGwpKWJyZWFrIGU7YVtiKyhmPDwyKT4+Ml09MCxmPWYrMXwwLGw9MHxhWyhtPTB8YVsxOTYrKDB8YVt3Pj4yXSk+PjJdKSsoYzw8Nik+PjJdfX1lbHNle2ZvcihBPXArLTF8MCxsPTB8YVttKyhjPDw2KT4+Ml07ISgoMHwobD1sKy0xfDApKTw9KDB8ZikpOylhWzIzNisoMHxhWzE2KyhrPTB8''@;'; + put 'put ''YVtiKyhsPDwyKT4+Ml0pPj4yXSk+PjJdPW09QStsfDAsYVtiKyhtPDwyKT4+Ml09aztmb3IobT1wK2Z8MCxsPWY7ISgoMHwobD1sKzF8MCkpPj0oMHxtKSk7KWFbYisobDw8Mik+PjJdPTA7bT1sPTB8YVsxOTYrKDB8YVt3Pj4yXSk+PjJdLGw9MHxhW2wrKGM8PDYpPj4yXX19d2hpbGUoMCk7''@;'; + put 'put ''YVttKyhjPDw2KT4+Ml09QStsfWZ1bmN0aW9uIHlIKGwpe3ZhciBNLEQsUixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihSPWFlLGFlPWFlKzE2fDAsRD1SLHA9MHxEdChsfD0wKTtwOyk3PT0oMHxmZVsxNTkrKGM9MHxhWyhmPXArMTZ8MCk+PjJdKT4+MF0pJiYocmcocCks''@;'; + put 'put ''Yz0wfGFbZj4+Ml0pLGFbYysyMTI+PjJdPTAscD0wfHp0KGwscCk7Zm9yKE09bCsxNnwwLGs9MTshKCgwfGspPigwfGFbMTgwKyhjPTB8YVtNPj4yXSk+PjJdKSk7KXt3PTE2KyhBPTB8YVsoMHxhW2MrMTg0Pj4yXSkrKGs8PDIpPj4yXSl8MCxjPTB8RHQoQSk7ZTpmb3IoO2M7KWlmKGI9MHx6''@;'; + put 'put ''dChBLGMpLDB8ZmVbMTU5KygwfGFbKGY9YysxNnwwKT4+Ml0pPj4wXSlwPTB8dGkoYyksbT0wfHRpKGwpLGFbRD4+Ml09cCxhW0QrND4+Ml09bSwkcigwLDg3NzQ0LEQpLG9pKEEsYyksYz1iO2Vsc2UgZm9yKGdOKGMsMHxhWzI2NCsoMHxhW3c+PjJdKT4+Ml0pLGFbMjEyKyhtPTB8YVtmPj4y''@;'; + put 'put ''XSk+PjJdPUEsZmVbbSsxNTk+PjBdPTcsbT0wfHcwKEEsYyk7Oyl7aWYoIW0pe2M9Yjtjb250aW51ZSBlfWM9MHxhWzE3MisoMHxhW20rMTY+PjJdKT4+Ml07dDpkb3tpZigwfGMpZG97aWYoZj1jKy00OHwwLDEhPSgwfGZlWzE1NisocD0wfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9j''@;'; + put 'put ''OmYpKzQwPj4yXSk+PjJdKT4+MF0pKWJyZWFrIHQ7YVtwKzIxMj4+Ml09QSxjPTB8YVthWzE4MCsoMHxhWzE2KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpmKSs0MD4+Ml0pPj4yXSk+PjJdPj4yXX13aGlsZSgwIT0oMHxjKSl9d2hpbGUoMCk7bT0wfFMwKEEsbSl9az1rKzF8MH1hZT1SfWZ1''@;'; + put 'put ''bmN0aW9uIFNVKGwsYyl7bHw9MDt2YXIgYixmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihwPTB8dnIoOCsocnRbMjM4KygwfGFbKGI9MTYrKGN8PTApfDApPj4yXSk+PjFdPDwyKXwwKSxhWzI2OCsoZj0wfGFbYj4+Ml0pPj4yXT1wLHA9MCxtPTB8cnRbZisyMzY+PjFdOyEoKDB8bSk+KDB8cnRb''@;'; + put 'put ''ZisyMzg+PjFdKSk7KWY9MHxVaChsKSxhWygwfGFbMjY4KygwfGFbYj4+Ml0pPj4yXSkrKG08PDIpPj4yXT1mLGFbMjMyKyh3PTB8YVtmKzE2Pj4yXSk+PjJdPW0sZmVbdysxNTk+PjBdPTcsYVt3KzIxMj4+Ml09YywwfHAmJih3PTE1NCsoMHxhWzE2KygwfEpjKHAsZiwwKSk+PjJdKXwwLHJ0''@;'; + put 'put ''W3c+PjFdPTFlMyooMHxydFt3Pj4xXSkpLHA9ZixtPW0rMXwwLGY9MHxhW2I+PjJdO2Zvcih3PTB8RHQoYyk7Zj0wfGFbYj4+Ml0sdzspe2ZvcihhWyhmPTIxNisoMHxhWyhtPTE2KygwfGFbKDB8YVtmKzI2OD4+Ml0pKyhhWzIzMisoMHxhW3crMTY+PjJdKT4+Ml08PDIpPj4yXSl8MCk+PjJd''@;'; + put 'put ''KXwwKT4+Ml09MSsoMHxhW2Y+PjJdKSxmPTB8dzAoYyx3KTtmOyl7Zm9yKGw9ZistNDh8MCxwPTB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMyYoQT0wfGFbZj4+Ml0pfDApP2Y6Zis0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdOyEoKDB8cCk+PSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDMm''@;'; + put 'put ''QXwwKT9mOmwpKzQwPj4yXSk+PjJdKT4+Ml0pKTspcnRbKEE9MTY4KygwfGFbMTYrKDB8YVthWzE4MCsoMHxhW20+PjJdKT4+Ml0+PjJdKT4+Ml0pfDApPj4xXT0xKygwfHJ0W0E+PjFdKTw8MTY+PjE2LHA9cCsxfDAsQT0wfGFbZj4+Ml07Zj0wfFMwKGMsZil9dz0wfHp0KGMsdyl9Zm9yKGw9''@;'; + put 'put ''MHxydFtmKzIzOD4+MV0sQT1mKzI2OHwwLGY9MHxydFtmKzIzNj4+MV07ISgoMHxmKT4oMHxsKSk7KSgwfChtPTB8YVsocD0yMTYrKDB8YVsxNisoMHxhWygwfGFbQT4+Ml0pKyhmPDwyKT4+Ml0pPj4yXSl8MCk+PjJdKSk+MSYmKGFbcD4+Ml09bSstMSksZj1mKzF8MH1mdW5jdGlvbiBnb2Uo''@;'; + put 'put ''bCxjLGYscCl7bHw9MCxwfD0wO3ZhciB3LGIsbT0wLEE9MDtpZigoMHwodz0xKyhmfD0wKXwwKSkhPSgwfGZlWzI3MysoYz0wfGFbKGI9MTYrKDB8YVsyMTIrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pfDApPj4yXSk+PjBdKSl7Zm9yKEE9MHxydFtjKzIzNj4+MV07ISgoMHxBKT4oKG09MHxy''@;'; + put 'put ''dFtjKzIzOD4+MV0pPDwxNj4+MTZ8MCkpOylQWShsLDB8YVsoMHxhW2MrMjY4Pj4yXSkrKEE8PDIpPj4yXSksQT1BKzF8MCxjPTB8YVtiPj4yXTtmb3IoQT0wfHJ0W2MrMjM2Pj4xXTshKCgwfEEpPihtPDwxNj4+MTZ8MCkpOylLQyhwLDB8YVsoMHxhW2MrMjY4Pj4yXSkrKEE8PDIpPj4yXSxm''@;'; + put 'put ''KSxBPUErMXwwLG09MHxydFsyMzgrKGw9MHxhW2I+PjJdKT4+MV0sYz1sO2ZlW2MrMjczPj4wXT13fX1mdW5jdGlvbiBmcChsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtmb3IoQT0wfER0KGx8PTApO0E7KXtmb3IoYVsyMTIrKDB8YVtBKzE2Pj4yXSk+PjJdPTAsbT0wfHcwKGwsQSk7bTsp''@;'; + put 'put ''e2M9MHxhWzE3MisoMHxhW20rMTY+PjJdKT4+Ml07ZTpkb3tpZigwfGMpZG97aWYoZj1jKy00OHwwLDEhPSgwfGZlWzE1NisocD0wfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSk+PjJdKT4+MF0pKWJyZWFrIGU7YVtwKzIxMj4+Ml09MCxjPTB8YVthWzE4MCsoMHxh''@;'; + put 'put ''WzE2KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpmKSs0MD4+Ml0pPj4yXSk+PjJdPj4yXX13aGlsZSgwIT0oMHxjKSl9d2hpbGUoMCk7bT0wfFMwKGwsbSl9QT0wfHp0KGwsQSl9bW9lKGwpfWZ1bmN0aW9uIG1vZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGY9MTYrKGx8''@;'; + put 'put ''PTApfDAsYz0xOyEoKDB8Yyk+KDB8YVsxODArKHA9MHxhW2Y+PjJdKT4+Ml0pKTspbW9lKDB8YVsoMHxhW3ArMTg0Pj4yXSkrKGM8PDIpPj4yXSksYz1jKzF8MDtmb3Iodz0wfER0KGwpO3c7KXtmb3IoMHxhWyhjPTIxMisoMHxhW3crMTY+PjJdKXwwKT4+Ml18fChhW2M+PjJdPWwpLEE9MHx3''@;'; + put 'put ''MChsLHcpO0E7KXtjPTB8YVsxNzIrKDB8YVtBKzE2Pj4yXSk+PjJdO2U6ZG97aWYoMHxjKWRve2lmKG09YystNDh8MCwxIT0oMHxmZVsxNTYrKHA9MHxhWzE2KygwfGFbKDI9PSgzJihmPTB8YVtjPj4yXSl8MCk/YzptKSs0MD4+Ml0pPj4yXSk+PjBdKSlicmVhayBlOzB8YVsocD1wKzIxMnww''@;'; + put 'put ''KT4+Ml18fChhW3A+PjJdPWwsZj0wfGFbYz4+Ml0pLGM9MHxhW2FbMTgwKygwfGFbMTYrKDB8YVsoMj09KDMmZnwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml0+PjJdfXdoaWxlKDAhPSgwfGMpKX13aGlsZSgwKTtBPTB8UzAobCxBKX13PTB8enQobCx3KX19ZnVuY3Rpb24gRVUobCxjKXtjfD0w''@;'; + put 'put ''O3ZhciBiLGssTSxwZSxIZSxxZSxudCx1cixmPTAscD0wLG09MCxBPTAsdz0wLEQ9MCxSPTAsRz0wLEs9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsVmU9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLGx0PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxhbj0wLFNuPTAsSG49MDt1cj1hZSxhZT1hZSsz''@;'; + put 'put ''MjB8MCxjdD11cisyOTZ8MCxadD11cisyODB8MCxWZT11cisxMzZ8MCxIZT11cisxMjB8MCxSPXVyKzEwNHwwLGI9dXIrODh8MCxtPXVyKzgwfDAsbHQ9dXIrMTZ8MCxudD11cixrPXVyKzI2NHwwLE09dXIrMjQ4fDAsRD11cisyMzJ8MCxHPXVyKzIxNnwwLFdlPXVyKzIwMHwwLG90PXVyKzE4''@;'; + put 'put ''NHwwLHFlPXVyKzE2OHwwLGt0PXVyKzE1MnwwLEE9MHx4VSgwfExpKGx8PTAsODc3OTgpLGMpLGdlPTAhPSgwfChwZT0wfHhVKDB8TGkobCw4NzgwNCksYykpKSxjPTAhPSgwfEEpO2Rve2lmKGN8Z2UmJjB8KHA9MHxhWzgrKDB8YVsoSG49bCsxNnwwKT4+Ml0pPj4yXSkpe2lmKCgwfGFbcCs0''@;'; + put 'put ''Pj4yXSk+MSl7U249MHx0aSgwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSksSG49MHx0aSgwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pLGFbbT4+Ml09U24sYVttKzQ+PjJdPUhuLCRyKDAsODc4MTAsbSk7YnJlYWt9cD0wfGFbNCsoYnQ9MHxh''@;'; + put 'put ''W3A+PjJdKT4+Ml0sYmU9bCstNDh8MCxPZT0wfGFbKDI9PSgwfChLPTMmYVtsPj4yXSkpP2w6YmUpKzQwPj4yXSxMZT1sKzQ4fDAsSz0wfGFbKDM9PSgwfEspP2w6TGUpKzQwPj4yXSxhbj0wfFFuKDQ4KSxhW2FuKzEyPj4yXT1hWyhSZT1idCsxMnwwKT4+Ml0sYVthbis4Pj4yXT1hWyhTdD1i''@;'; + put 'put ''dCs4fDApPj4yXTtkb3tpZihjKXtpZih3PTE2KygwfGFbQSsxNj4+Ml0pfDAsYVtjdD4+Ml09YVsoQT0xNisoMHxhW09lKzE2Pj4yXSl8MCk+PjJdLGFbY3QrND4+Ml09YVtBKzQ+PjJdLGFbY3QrOD4+Ml09YVtBKzg+PjJdLGFbY3QrMTI+PjJdPWFbQSsxMj4+Ml0sISgwfGR5KGN0LHcpKSl7''@;'; + put 'put ''Rz0wfHRpKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOkxlKSs0MD4+Ml0pLEV0PTB8dGkoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6YmUpKzQwPj4yXSksU249MHxMaShsLDg3Nzk4KSxhW2I+PjJdPUcsYVtiKzQ+PjJdPUV0LGFbYis4Pj4yXT1TbiwkcigwLDg3ODUxLGIpLFNuPTI2O2JyZWFr''@;'; + put 'put ''fWlmKGFbY3Q+PjJdPWFbKGM9MHxhW2J0Pj4yXSk+PjJdLGFbY3QrND4+Ml09YVtjKzQ+PjJdLGFbY3QrOD4+Ml09YVtjKzg+PjJdLGFbY3QrMTI+PjJdPWFbYysxMj4+Ml0sMHxkeShjdCx3KSl7aWYoYVtjdD4+Ml09YVsoRXQ9MTYrKDB8YVtLKzE2Pj4yXSl8MCk+PjJdLGFbY3QrND4+Ml09''@;'; + put 'put ''YVtFdCs0Pj4yXSxhW2N0Kzg+PjJdPWFbRXQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtFdCsxMj4+Ml0sMHxkeShjdCx3KSl7Rz0wfHRpKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOkxlKSs0MD4+Ml0pLEV0PTB8dGkoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6YmUpKzQwPj4yXSksU249MHxMaShs''@;'; + put 'put ''LDg3Nzk4KSxhW1I+PjJdPUcsYVtSKzQ+PjJdPUV0LGFbUis4Pj4yXT1TbiwkcigwLDg3ODk0LFIpLFNuPTI2O2JyZWFrfWlmKDB8YVtTdD4+Ml18fFByKDg3OTM2LDg3OTQ3LDM2OSw4Nzk1OCksRz1idCsxNnwwLGFbWnQ+PjJdPWFbYz4+Ml0sYVtadCs0Pj4yXT1hW2MrND4+Ml0sYVtadCs4''@;'; + put 'put ''Pj4yXT1hW2MrOD4+Ml0sYVtadCsxMj4+Ml09YVtjKzEyPj4yXSxhW2N0Pj4yXT1hW0c+PjJdLGFbY3QrND4+Ml09YVtHKzQ+PjJdLGFbY3QrOD4+Ml09YVtHKzg+PjJdLGFbY3QrMTI+PjJdPWFbRysxMj4+Ml0sVEkobnQsWnQsY3QsdyksYVsoRXQ9NDgrKDB8YVtidD4+Ml0pfDApPj4yXT1h''@;'; + put 'put ''W250Pj4yXSxhW0V0KzQ+PjJdPWFbbnQrND4+Ml0sYVtFdCs4Pj4yXT1hW250Kzg+PjJdLGFbRXQrMTI+PjJdPWFbbnQrMTI+PjJdLEV0PTE2KygwfGFbYnQ+PjJdKXwwLGFbWnQ+PjJdPWFbbnQ+PjJdLGFbWnQrND4+Ml09YVtudCs0Pj4yXSxhW1p0Kzg+PjJdPWFbbnQrOD4+Ml0sYVtadCsx''@;'; + put 'put ''Mj4+Ml09YVtudCsxMj4+Ml0sYVtjdD4+Ml09YVtHPj4yXSxhW2N0KzQ+PjJdPWFbRys0Pj4yXSxhW2N0Kzg+PjJdPWFbRys4Pj4yXSxhW2N0KzEyPj4yXT1hW0crMTI+PjJdLFhoKGssWnQsY3QpLGFbRXQ+PjJdPWFbaz4+Ml0sYVtFdCs0Pj4yXT1hW2srND4+Ml0sYVtFdCs4Pj4yXT1hW2sr''@;'; + put 'put ''OD4+Ml0sYVtFdCsxMj4+Ml09YVtrKzEyPj4yXSxhW1p0Pj4yXT1hWyhjPTE2KyhFdD0wfGFbYnQ+PjJdKXwwKT4+Ml0sYVtadCs0Pj4yXT1hW2MrND4+Ml0sYVtadCs4Pj4yXT1hW2MrOD4+Ml0sYVtadCsxMj4+Ml09YVtjKzEyPj4yXSxhW2N0Pj4yXT1hW0c+PjJdLGFbY3QrND4+Ml09YVtH''@;'; + put 'put ''KzQ+PjJdLGFbY3QrOD4+Ml09YVtHKzg+PjJdLGFbY3QrMTI+PjJdPWFbRysxMj4+Ml0sWGgoTSxadCxjdCksYVtFdD4+Ml09YVtNPj4yXSxhW0V0KzQ+PjJdPWFbTSs0Pj4yXSxhW0V0Kzg+PjJdPWFbTSs4Pj4yXSxhW0V0KzEyPj4yXT1hW00rMTI+PjJdLGM9MzIrKEV0PTB8YVtidD4+Ml0p''@;'; + put 'put ''fDAsYVtadD4+Ml09YVsoRXQ9RXQrMTZ8MCk+PjJdLGFbWnQrND4+Ml09YVtFdCs0Pj4yXSxhW1p0Kzg+PjJdPWFbRXQrOD4+Ml0sYVtadCsxMj4+Ml09YVtFdCsxMj4+Ml0sYVtjdD4+Ml09YVtudD4+Ml0sYVtjdCs0Pj4yXT1hW250KzQ+PjJdLGFbY3QrOD4+Ml09YVtudCs4Pj4yXSxhW2N0''@;'; + put 'put ''KzEyPj4yXT1hW250KzEyPj4yXSxYaChELFp0LGN0KSxhW2M+PjJdPWFbRD4+Ml0sYVtjKzQ+PjJdPWFbRCs0Pj4yXSxhW2MrOD4+Ml09YVtEKzg+PjJdLGFbYysxMj4+Ml09YVtEKzEyPj4yXSwhKGM9MHxhW1JlPj4yXSkpe0V0PTM7YnJlYWt9RXQ9MysoMHxjRihsLDB8YVtidD4+Ml0sMCww''@;'; + put 'put ''LGFuLGMpKXwwO2JyZWFrfWZvcihBPXArLTF8MCxjPTA7ISgoMHxjKT49KDB8QSl8fDB8VFUoKDB8YVtidD4+Ml0pKyhjPDw0KXwwLHcpKTspYz1jKzN8MDtpZihtPTAhPSgwfChwPTB8YVtSZT4+Ml0pKSwoMHxjKSE9KDB8QSkpe20mJihjPTB8Y0YobCwwfGFbYnQ+PjJdLDAsYyxhbixwKSks''@;'; + put 'put ''RXQ9YyszfDA7YnJlYWt9aWYobSl7RXQ9YW4rMzJ8MCxSPSgwfGFbYnQ+PjJdKSsoQTw8NCl8MCxhW1p0Pj4yXT1hWyhEPWJ0KzMyfDApPj4yXSxhW1p0KzQ+PjJdPWFbRCs0Pj4yXSxhW1p0Kzg+PjJdPWFbRCs4Pj4yXSxhW1p0KzEyPj4yXT1hW0QrMTI+PjJdLGFbY3Q+PjJdPWFbUj4+Ml0s''@;'; + put 'put ''YVtjdCs0Pj4yXT1hW1IrND4+Ml0sYVtjdCs4Pj4yXT1hW1IrOD4+Ml0sYVtjdCsxMj4+Ml09YVtSKzEyPj4yXSxUSShHLFp0LGN0LHcpLGFbRXQ+PjJdPWFbRz4+Ml0sYVtFdCs0Pj4yXT1hW0crND4+Ml0sYVtFdCs4Pj4yXT1hW0crOD4+Ml0sYVtFdCsxMj4+Ml09YVtHKzEyPj4yXSxFdD1B''@;'; + put 'put ''O2JyZWFrfVByKDg3OTc1LDg3OTQ3LDM4Nyw4Nzk1OCl9ZWxzZSBTbj0yNn13aGlsZSgwKTsyNj09KDB8U24pJiYoYz1wKy0xfDAsMHxhW1JlPj4yXSYmKGFbKEV0PWFuKzMyfDApPj4yXT1hWyhHPWJ0KzMyfDApPj4yXSxhW0V0KzQ+PjJdPWFbRys0Pj4yXSxhW0V0Kzg+PjJdPWFbRys4Pj4y''@;'; + put 'put ''XSxhW0V0KzEyPj4yXT1hW0crMTI+PjJdKSxFdD1jKTtkb3tpZihnZSl7aWYobT0xNisoMHxhW3BlKzE2Pj4yXSl8MCxhW2N0Pj4yXT1hWyhnZT0xNisoMHxhW0srMTY+PjJdKXwwKT4+Ml0sYVtjdCs0Pj4yXT1hW2dlKzQ+PjJdLGFbY3QrOD4+Ml09YVtnZSs4Pj4yXSxhW2N0KzEyPj4yXT1h''@;'; + put 'put ''W2dlKzEyPj4yXSwhKDB8ZHkoY3QsbSkpKXtadD0wfHRpKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOkxlKSs0MD4+Ml0pLGN0PTB8dGkoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6YmUpKzQwPj4yXSksU249MHxMaShsLDg3ODA0KSxhW0hlPj4yXT1adCxhW0hlKzQ+PjJdPWN0LGFbSGUrOD4+''@;'; + put 'put ''Ml09U24sJHIoMCw4Nzk4NixIZSksU249NTI7YnJlYWt9aWYoYVtjdD4+Ml09YVsoYz0oMHxhW2J0Pj4yXSkrKEV0PDw0KXwwKT4+Ml0sYVtjdCs0Pj4yXT1hW2MrND4+Ml0sYVtjdCs4Pj4yXT1hW2MrOD4+Ml0sYVtjdCsxMj4+Ml09YVtjKzEyPj4yXSwwfGR5KGN0LG0pKXtpZihhW2N0Pj4y''@;'; + put 'put ''XT1hWyhsdD0xNisoMHxhW09lKzE2Pj4yXSl8MCk+PjJdLGFbY3QrND4+Ml09YVtsdCs0Pj4yXSxhW2N0Kzg+PjJdPWFbbHQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtsdCsxMj4+Ml0sMHxkeShjdCxtKSl7WnQ9MHx0aSgwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpMZSkrNDA+PjJdKSxjdD0wfHRp''@;'; + put 'put ''KDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmJlKSs0MD4+Ml0pLFNuPTB8TGkobCw4NzgwNCksYVtWZT4+Ml09WnQsYVtWZSs0Pj4yXT1jdCxhW1ZlKzg+PjJdPVNuLCRyKDAsODgwMjksVmUpLFNuPTUyO2JyZWFrfWlmKDB8YVtSZT4+Ml18fFByKDg3OTc1LDg3OTQ3LDQyOSw4Nzk1OCksVmU9''@;'; + put 'put ''YW4rMzJ8MCxhW1p0Pj4yXT1hW2M+PjJdLGFbWnQrND4+Ml09YVtjKzQ+PjJdLGFbWnQrOD4+Ml09YVtjKzg+PjJdLGFbWnQrMTI+PjJdPWFbYysxMj4+Ml0sYVtjdD4+Ml09YVtWZT4+Ml0sYVtjdCs0Pj4yXT1hW1ZlKzQ+PjJdLGFbY3QrOD4+Ml09YVtWZSs4Pj4yXSxhW2N0KzEyPj4yXT1h''@;'; + put 'put ''W1ZlKzEyPj4yXSxUSShudCxadCxjdCxtKSxhWyhsdD0oMHxhW2J0Pj4yXSkrKChmPUV0Ky0zfDApPDw0KXwwKT4+Ml09YVtudD4+Ml0sYVtsdCs0Pj4yXT1hW250KzQ+PjJdLGFbbHQrOD4+Ml09YVtudCs4Pj4yXSxhW2x0KzEyPj4yXT1hW250KzEyPj4yXSxjPSgwfGFbYnQ+PjJdKSsoKGx0''@;'; + put 'put ''PUV0Ky0xfDApPDw0KXwwLGFbWnQ+PjJdPWFbbnQ+PjJdLGFbWnQrND4+Ml09YVtudCs0Pj4yXSxhW1p0Kzg+PjJdPWFbbnQrOD4+Ml0sYVtadCsxMj4+Ml09YVtudCsxMj4+Ml0sYVtjdD4+Ml09YVtWZT4+Ml0sYVtjdCs0Pj4yXT1hW1ZlKzQ+PjJdLGFbY3QrOD4+Ml09YVtWZSs4Pj4yXSxh''@;'; + put 'put ''W2N0KzEyPj4yXT1hW1ZlKzEyPj4yXSxYaChXZSxadCxjdCksYVtjPj4yXT1hW1dlPj4yXSxhW2MrND4+Ml09YVtXZSs0Pj4yXSxhW2MrOD4+Ml09YVtXZSs4Pj4yXSxhW2MrMTI+PjJdPWFbV2UrMTI+PjJdLGt0PShjPTB8YVtidD4+Ml0pKyhFdDw8NCl8MCxhW1p0Pj4yXT1hWyhjPWMrKGx0''@;'; + put 'put ''PDw0KXwwKT4+Ml0sYVtadCs0Pj4yXT1hW2MrND4+Ml0sYVtadCs4Pj4yXT1hW2MrOD4+Ml0sYVtadCsxMj4+Ml09YVtjKzEyPj4yXSxhW2N0Pj4yXT1hW1ZlPj4yXSxhW2N0KzQ+PjJdPWFbVmUrND4+Ml0sYVtjdCs4Pj4yXT1hW1ZlKzg+PjJdLGFbY3QrMTI+PjJdPWFbVmUrMTI+PjJdLFho''@;'; + put 'put ''KG90LFp0LGN0KSxhW2t0Pj4yXT1hW290Pj4yXSxhW2t0KzQ+PjJdPWFbb3QrND4+Ml0sYVtrdCs4Pj4yXT1hW290Kzg+PjJdLGFba3QrMTI+PjJdPWFbb3QrMTI+PjJdLGM9KGt0PTB8YVtidD4+Ml0pKyhFdCstMjw8NCl8MCxhW1p0Pj4yXT1hWyhsdD1rdCsobHQ8PDQpfDApPj4yXSxhW1p0''@;'; + put 'put ''KzQ+PjJdPWFbbHQrND4+Ml0sYVtadCs4Pj4yXT1hW2x0Kzg+PjJdLGFbWnQrMTI+PjJdPWFbbHQrMTI+PjJdLGFbY3Q+PjJdPWFbbnQ+PjJdLGFbY3QrND4+Ml09YVtudCs0Pj4yXSxhW2N0Kzg+PjJdPWFbbnQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtudCsxMj4+Ml0sWGgocWUsWnQsY3QpLGFb''@;'; + put 'put ''Yz4+Ml09YVtxZT4+Ml0sYVtjKzQ+PjJdPWFbcWUrND4+Ml0sYVtjKzg+PjJdPWFbcWUrOD4+Ml0sYVtjKzEyPj4yXT1hW3FlKzEyPj4yXSwhKGM9MHxhW1N0Pj4yXSkpYnJlYWs7Zj0wfE9hKGwsMHxhW2J0Pj4yXSxmLGYsYW4sYyk7YnJlYWt9Zm9yKHA9RXQ7KDB8cCk+MDspe2ZvcihjPTA7''@;'; + put 'put ''NCE9KDB8Yyk7KWFbKG90PWx0KyhjPDw0KXwwKT4+Ml09YVsoV2U9KDB8YVtidD4+Ml0pKyhwLWM8PDQpfDApPj4yXSxhW290KzQ+PjJdPWFbV2UrND4+Ml0sYVtvdCs4Pj4yXT1hW1dlKzg+PjJdLGFbb3QrMTI+PjJdPWFbV2UrMTI+PjJdLGM9YysxfDA7aWYoMHxUVShsdCxtKSl7Yz0wLFNu''@;'; + put 'put ''PTQzO2JyZWFrfXA9cCstM3wwfWU6ZG97aWYoNDM9PSgwfFNuKSlmb3IoOzspe2lmKFNuPTAsND09KDB8YykpYnJlYWsgZTthWyhTbj0oMHxhW2J0Pj4yXSkrKHAtYzw8NCl8MCk+PjJdPWFbKG90PWx0KyhjPDw0KXwwKT4+Ml0sYVtTbis0Pj4yXT1hW290KzQ+PjJdLGFbU24rOD4+Ml09YVtv''@;'; + put 'put ''dCs4Pj4yXSxhW1NuKzEyPj4yXT1hW290KzEyPj4yXSxjPWMrMXwwLFNuPTQzfX13aGlsZSgwKTtpZigwfHApe2lmKGY9cCstM3wwLCEoYz0wfGFbU3Q+PjJdKSlicmVhaztmPTB8T2EobCwwfGFbYnQ+PjJdLGYsRXQrLTN8MCxhbixjKTticmVha31pZigwfGFbU3Q+PjJdKXtmPWFuKzE2fDAs''@;'; + put 'put ''bD0wfGFbYnQ+PjJdLGFbWnQ+PjJdPWFbKGx0PWJ0KzE2fDApPj4yXSxhW1p0KzQ+PjJdPWFbbHQrND4+Ml0sYVtadCs4Pj4yXT1hW2x0Kzg+PjJdLGFbWnQrMTI+PjJdPWFbbHQrMTI+PjJdLGFbY3Q+PjJdPWFbbD4+Ml0sYVtjdCs0Pj4yXT1hW2wrND4+Ml0sYVtjdCs4Pj4yXT1hW2wrOD4+''@;'; + put 'put ''Ml0sYVtjdCsxMj4+Ml09YVtsKzEyPj4yXSxUSShrdCxadCxjdCxtKSxhW2Y+PjJdPWFba3Q+PjJdLGFbZis0Pj4yXT1hW2t0KzQ+PjJdLGFbZis4Pj4yXT1hW2t0Kzg+PjJdLGFbZisxMj4+Ml09YVtrdCsxMj4+Ml0sZj0wO2JyZWFrfVByKDg3OTM2LDg3OTQ3LDQ1Miw4Nzk1OCl9ZWxzZSBT''@;'; + put 'put ''bj01Mn13aGlsZSgwKTtmb3IoNTI9PSgwfFNuKSYmKDB8YVtTdD4+Ml0mJihhWyhmPWFuKzE2fDApPj4yXT1hWyhTbj1idCsxNnwwKT4+Ml0sYVtmKzQ+PjJdPWFbU24rND4+Ml0sYVtmKzg+PjJdPWFbU24rOD4+Ml0sYVtmKzEyPj4yXT1hW1NuKzEyPj4yXSksZj0wKSxhWyhwPWFuKzR8MCk+''@;'; + put 'put ''PjJdPWM9RXQtZisxfDAsYVthbj4+Ml09MHxRbihjPDw0KSxjPTA7ISgoMHxjKT49KDB8YVtwPj4yXSkpOylhWyhTbj0oMHxhW2FuPj4yXSkrKGM8PDQpfDApPj4yXT1hWyhsPSgwfGFbYnQ+PjJdKSsoZjw8NCl8MCk+PjJdLGFbU24rND4+Ml09YVtsKzQ+PjJdLGFbU24rOD4+Ml09YVtsKzg+''@;'; + put 'put ''PjJdLGFbU24rMTI+PjJdPWFbbCsxMj4+Ml0sZj1mKzF8MCxjPWMrMXwwO0Z0KDB8YVtidD4+Ml0pLEZ0KGJ0KSxhW2FbOCsoMHxhW0huPj4yXSk+PjJdPj4yXT1hbn19d2hpbGUoMCk7YWU9dXJ9ZnVuY3Rpb24geFUobCxjKXt2YXIgZixwO3JldHVybiBjfD0wLHA9YWUsYWU9YWUrMTZ8MCxm''@;'; + put 'put ''PXAsMCE9KDB8KGx8PTApKSYmMCE9KDB8ZmVbbD4+MF0pPyhjPTB8X04oYyxsKSl8fChhW2Y+PjJdPWwsJHIoMCw4ODE0OSxmKSxjPTApOmM9MCxhZT1wLDB8Y31mdW5jdGlvbiBkeShsLGMpe3ZhciBwLGY9MDtyZXR1cm4gMHwoK19bKGN8PTApPj4zXTw9KHA9K19bKGx8PTApPj4zXSkmJnA8''@;'; + put 'put ''PStfW2MrMTY+PjNdJiYrX1tjKzg+PjNdPD0oZj0rX1tsKzg+PjNdKT9mPD0rX1tjKzI0Pj4zXSYxOjApfWZ1bmN0aW9uIFRJKGwsYyxmLHApe2x8PTA7dmFyIGssRCxLLHBlLGdlLGJlLE9lLExlLFdlLG90LG09MCxBPTAsdz0wLGI9MCxNPTAsUj0wLEc9MCxSZT0wLEhlPTAsVmU9MCxxZT0w''@;'; + put 'put ''LG50PTA7b3Q9YWUsYWU9YWUrNDY0fDAsRD1vdCs0OHwwLFdlPW90KzMyfDAsTGU9b3QsUmU9b3QrMzY0fDAsSGU9b3QrMjY0fDAscWU9b3QrMTY0fDAsbnQ9b3QrNjR8MCxLPStfWyhjfD0wKT4+M10scGU9K19bYys4Pj4zXSxnZT0rX1soZnw9MCk+PjNdLGJlPStfW2YrOD4+M10sYVsoT2U9''@;'; + put 'put ''b3QrMTZ8MCk+PjJdPWFbKHB8PTApPj4yXSxhW09lKzQ+PjJdPWFbcCs0Pj4yXSxhW09lKzg+PjJdPWFbcCs4Pj4yXSxhW09lKzEyPj4yXT1hW3ArMTI+PjJdLGFbTGU+PjJdPWFbKHA9cCsxNnwwKT4+Ml0sYVtMZSs0Pj4yXT1hW3ArND4+Ml0sYVtMZSs4Pj4yXT1hW3ArOD4+Ml0sYVtMZSsx''@;'; + put 'put ''Mj4+Ml09YVtwKzEyPj4yXSxnZTwoaz0rX1tPZT4+M10pJiYobT1wZSsgKygwfH5+KChrLUspKihwZS1iZSkvKEstZ2UpKSkpPj0rX1tPZSs4Pj4zXSYmbTw9K19bTGUrOD4+M10/KFI9bSxHPWspOnc9NDtkb3tpZig0PT0oMHx3KSl7aWYoZ2U+KGI9K19bTGU+PjNdKSl7aWYoKEE9cGUrICso''@;'; + put 'put ''MHx+figoYi1LKSoocGUtYmUpLyhLLWdlKSkpKT49KG09K19bT2UrOD4+M10pJiZBPD0rX1tMZSs4Pj4zXSl7Uj1BLEc9YjticmVha319ZWxzZSBtPStfW09lKzg+PjNdO2lmKGJlPG0mJiEoISgoTT1LKyArKDB8fn4oKG0tcGUpKihLLWdlKS8ocGUtYmUpKSkpPj1rKXwhKE08PWIpKSl7Uj1t''@;'; + put 'put ''LEc9TTticmVha31pZihiZT4obT0rX1tMZSs4Pj4zXSkmJiEoISgoVmU9SysgKygwfH5+KChtLXBlKSooSy1nZSkvKHBlLWJlKSkpKT49ayl8IShWZTw9YikpKXtSPW0sRz1WZTticmVha31hW0Q+PjJdPWFbYz4+Ml0sYVtEKzQ+PjJdPWFbYys0Pj4yXSxhW0QrOD4+Ml09YVtjKzg+PjJdLGFb''@;'; + put 'put ''RCsxMj4+Ml09YVtjKzEyPj4yXSxSZT0wfExJKEQsUmUpLGFbRD4+Ml09YVtmPj4yXSxhW0QrND4+Ml09YVtmKzQ+PjJdLGFbRCs4Pj4yXT1hW2YrOD4+Ml0sYVtEKzEyPj4yXT1hW2YrMTI+PjJdLEhlPTB8TEkoRCxIZSksYVtEPj4yXT1hW09lPj4yXSxhW0QrND4+Ml09YVtPZSs0Pj4yXSxh''@;'; + put 'put ''W0QrOD4+Ml09YVtPZSs4Pj4yXSxhW0QrMTI+PjJdPWFbT2UrMTI+PjJdLHFlPTB8TEkoRCxxZSksYVtEPj4yXT1hW0xlPj4yXSxhW0QrND4+Ml09YVtMZSs0Pj4yXSxhW0QrOD4+Ml09YVtMZSs4Pj4yXSxhW0QrMTI+PjJdPWFbTGUrMTI+PjJdLG50PTB8TEkoRCxudCksYVtXZT4+Ml09UmUs''@;'; + put 'put ''YVtXZSs0Pj4yXT1IZSxhW1dlKzg+PjJdPXFlLGFbV2UrMTI+PjJdPW50LCRyKDEsODgwNzEsV2UpLFByKDEzODM5NCw4Nzk0Nyw3OCw4ODEyMyl9fXdoaWxlKDApO19bbD4+M109RyxfW2wrOD4+M109UixhZT1vdH1mdW5jdGlvbiBYaChsLGMsZil7dmFyIHA7cD0uNSooK19bOCsoZnw9MCk+''@;'; + put 'put ''PjNdKyArX1s4KyhjfD0wKT4+M10pLF9bKGx8PTApPj4zXT0uNSooK19bZj4+M10rICtfW2M+PjNdKSxfW2wrOD4+M109cH1mdW5jdGlvbiBUVShsLGMpe2x8PTAsY3w9MDt2YXIgYixrLE0sZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3IoTT1hZSxhZT1hZSs4MHwwLGI9TSsxNnwwLGs9TSxwPTA7''@;'; + put 'put ''NCE9KDB8cCk7KWFbKHc9YisocDw8NCl8MCk+PjJdPWFbKEE9bCsocDw8NCl8MCk+PjJdLGFbdys0Pj4yXT1hW0ErND4+Ml0sYVt3Kzg+PjJdPWFbQSs4Pj4yXSxhW3crMTI+PjJdPWFbQSsxMj4+Ml0scD1wKzF8MDtyZXR1cm4oZj0rSUkobCwwLDEsK19bYz4+M10sK19bKHA9Yys4fDApPj4z''@;'; + put 'put ''XSwrX1sodz1jKzI0fDApPj4zXSkpPj0wJmY8Mj93dShrLGIsMyxmLGwsMCk6Zj0yLChtPStJSShsLDAsZj4xPzE6ZiwrX1soQT1jKzE2fDApPj4zXSwrX1twPj4zXSwrX1t3Pj4zXSkpPj0wJm08ZiYmKHd1KGssYiwzLG0sbCwwKSxmPW0pLChtPStESShsLDAsZj4xPzE6ZiwrX1twPj4zXSwr''@;'; + put 'put ''X1tjPj4zXSwrX1tBPj4zXSkpPj0wJm08ZiYmKHd1KGssYiwzLG0sbCwwKSxmPW0pLChtPStESShsLDAsZj4xPzE6ZiwrX1t3Pj4zXSwrX1tjPj4zXSwrX1tBPj4zXSkpPj0wJm08ZiYmKHd1KGssYiwzLG0sbCwwKSxmPW0pLGFlPU0sZjwyfDB9ZnVuY3Rpb24gSUkobCxjLGYscCxtLEEpe2x8''@;'; + put 'put ''PTAsYz0rYyxmPStmLHA9K3AsbT0rbSxBPStBO3ZhciBiLGssTSxELHc9MDtEPWFlLGFlPWFlKzE0NHwwLGs9RCs4MHwwLE09RCsxNnwwLGI9RDtlOmRve2lmKGMhPWYpe3N3aXRjaCgwfElVKGwscCkpe2Nhc2UgMDpjPS0xO2JyZWFrIGU7Y2FzZSAxOmlmKCtlbygrKCtfW2wrNDg+PjNdLXAp''@;'; + put 'put ''KTw9LjAwNSl7Yz0hKChjPStfW2wrNTY+PjNdKT49bSl8IShjPD1BKT8tMTpmO2JyZWFrIGV9fXd1KGIsbCwzLC41LGssTSksKGM9K0lJKGssYyx3PS41KihmK2MpLHAsbSxBKSk+PTB8fChjPStJSShNLHcsZixwLG0sQSkpfX13aGlsZSgwKTtyZXR1cm4gYWU9RCwrY31mdW5jdGlvbiBESShs''@;'; + put 'put ''LGMsZixwLG0sQSl7bHw9MCxjPStjLGY9K2YscD0rcCxtPSttLEE9K0E7dmFyIGIsayxNLEQsdz0wO0Q9YWUsYWU9YWUrMTQ0fDAsaz1EKzgwfDAsTT1EKzE2fDAsYj1EO2U6ZG97aWYoYyE9Zil7c3dpdGNoKDB8dm9lKGwscCkpe2Nhc2UgMDpjPS0xO2JyZWFrIGU7Y2FzZSAxOmlmKCtlbygr''@;'; + put 'put ''KCtfW2wrNTY+PjNdLXApKTw9LjAwNSl7Yz0hKChjPStfW2wrNDg+PjNdKT49bSl8IShjPD1BKT8tMTpmO2JyZWFrIGV9fXd1KGIsbCwzLC41LGssTSksKGM9K0RJKGssYyx3PS41KihmK2MpLHAsbSxBKSk+PTB8fChjPStESShNLHcsZixwLG0sQSkpfX13aGlsZSgwKTtyZXR1cm4gYWU9RCwr''@;'; + put 'put ''Y31mdW5jdGlvbiB2b2UobCxjKXt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7Zm9yKGY9MSxwPW09KEE9K19bOCsobHw9MCk+PjNdKTwoYz0rYyk/LTE6QT5jJjEsbT0wPT0oMHxtKSYxOzQhPSgwfGYpOyl3PW0rKDAhPSgwfHApJigwfChiPShBPStfW2wrKGY8PDQpKzg+PjNdKTxjPy0x''@;'; + put 'put ''OkE+YyYxKSkhPSgwfHApJjEpfDAsZj1mKzF8MCxwPWIsbT13O3JldHVybiAwfG19ZnVuY3Rpb24gSVUobCxjKXt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7Zm9yKGY9MSxwPW09KEE9K19bKGx8PTApPj4zXSk8KGM9K2MpPy0xOkE+YyYxLG09MD09KDB8bSkmMTs0IT0oMHxmKTspdz1t''@;'; + put 'put ''KygwIT0oMHxwKSYoMHwoYj0oQT0rX1tsKyhmPDw0KT4+M10pPGM/LTE6QT5jJjEpKSE9KDB8cCkmMSl8MCxmPWYrMXwwLHA9YixtPXc7cmV0dXJuIDB8bX1mdW5jdGlvbiBMSShsLGMpe3ZhciBmLHAsbTtyZXR1cm4gY3w9MCxmPWFlLGFlPWFlKzE2fDAsbT0rX1s4KyhsfD0wKT4+M10sX1so''@;'; + put 'put ''cD1mKT4+M109K19bbD4+M10sX1twKzg+PjNdPW0sb28oYyw4ODEzNyxwKSxhZT1mLDB8Y31mdW5jdGlvbiBMVShsKXtyZXR1cm4gMHwoMT09KDB8ZmVbMTU2KyhsPTB8YVsxNisobHw9MCk+PjJdKT4+MF0pJiYxPT0oMHxhW2wrMTc2Pj4yXSkmJjE9PSgwfGFbbCsxODQ+PjJdKT8wPT0oMHxh''@;'; + put 'put ''W2wrMTA0Pj4yXSkmMTowKX1mdW5jdGlvbiBSVShsKXtyZXR1cm4gMHwoMT09KDB8ZmVbMTU2KyhsPTB8YVsxNisobHw9MCk+PjJdKT4+MF0pJiYxPT0oMHxhW2wrMTg0Pj4yXSkmJjE9PSgwfGFbbCsxNzY+PjJdKT8wPT0oMHxhW2wrMTA0Pj4yXSkmMTowKX1mdW5jdGlvbiBQVShsLGMpe3Zh''@;'; + put 'put ''ciBmLHA7MCE9KDB8KHA9MHxhWyhsPSgwfGFbMjY4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSsoYVsyMzIrKGY9MHxhWzE2KyhjfD0wKT4+Ml0pPj4yXTw8Mil8MCk+PjJdKSkmJigwfGFbMjM2KygwfGFbcCsxNj4+Ml0pPj4yXSk8PSgwfGFbZisyMzY+PjJdKXx8KGFbbD4+Ml09Yyl9ZnVu''@;'; + put 'put ''Y3Rpb24gRlUobCxjKXtsfD0wLGN8PTA7Zm9yKHZhciBmPTAscD0wOzB8ZmVbMTEyKyhwPTB8YVtsKzE2Pj4yXSk+PjBdOylsPTB8YVtwKzExNj4+Ml07Zm9yKDswfGZlWzExMisoZj0wfGFbYysxNj4+Ml0pPj4wXTspYz0wfGFbZisxMTY+PjJdO3JldHVybiAwfChsPTA9PSgwfGZlW3ArMTUz''@;'; + put 'put ''Pj4wXSkmJjA9PSgwfGZlW2YrMTUzPj4wXSk/KDB8QXIoKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHwoZj0zJmFbbD4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHxmKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0p''@;'; + put 'put ''fDAsKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHwocD0zJmFbYz4+Ml0pKT9jOmMrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHxwKT9jOmMrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pfDApKT4wJjE6MCl9ZnVuY3Rpb24gYkgobCxjKXts''@;'; + put 'put ''fD0wLGN8PTA7dmFyIGIsayxmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihrPWFlLGFlPWFlKzU0NHwwLGZ1bmN0aW9uIEhVKGwsYyxmKXtsfD0wLGFbKGN8PTApPj4yXT1mfD0wLGFbYys0Pj4yXT1mKzUxMixhW2MrMTI+PjJdPTAsYVtjKzg+PjJdPTAsYVtsPj4yXT1jLGFbbCs0Pj4yXT1jLGFb''@;'; + put 'put ''bCs4Pj4yXT1mfShiPWsrNTI4fDAsays1MTJ8MCxrKSxmZVsxOTM3NzBdPShmPTErKDB8ZmVbMTkzNzcwXSk8PDI0Pj4yNCk8PDI0Pj4yND09MD8xOmYsYVsyMjArKGY9MHxhW2wrMTY+PjJdKT4+Ml09MCxhW2YrMjMyPj4yXT0wLGY9KDB8Yyk+MCxjPTB8RHQobCk7YzspZiYmMCE9KDB8KHc9''@;'; + put 'put ''MHxhWzIxMisoQT0wfGFbYysxNj4+Ml0pPj4yXSkpPyhtPTB8YVsoMHxhWzI2OCsoMHxhW3crMTY+PjJdKT4+Ml0pKyhhW0ErMjMyPj4yXTw8Mik+PjJdLHA9Nyk6cD02LDY9PSgwfHApJiYocD0wLCgwfGMpPT0oMHxnMShjKSkpJiYobT1jLHA9NyksNz09KDB8cCkmJigwfGZlWzE1NysoMHxh''@;'; + put 'put ''W20rMTY+PjJdKT4+MF0pIT0oMHxmZVsxOTM3NzBdKSYmKHlvZShsKSxOVShiLGwsbSksd29lKGwpKSxjPTB8enQobCxjKTsoZnVuY3Rpb24gYWsobCl7dmFyIGM9MDtmb3IobD0wfGFbMTIrKDB8YVsobHw9MCk+PjJdKT4+Ml07bDspYz0wfGFbbCsxMj4+Ml0sRnQoMHxhW2w+PjJdKSxGdChs''@;'; + put 'put ''KSxsPWN9KShiKSxhZT1rfWZ1bmN0aW9uIHlvZShsKXthWzE5MisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXT0wLGFbNDY3OTNdPTB9ZnVuY3Rpb24gTlUobCxjLGYpe2N8PTA7dmFyIGssTSxELEcsSyxwPTAsbT0wLEE9MCx3PTAsYj0wLFI9MDtLPWFlLGFlPWFlKzMyfDAsRz1LLFZVKGx8PTAs''@;'; + put 'put ''Znw9MCksaz1HKzh8MCxNPUcrMTZ8MCxEPUcrMjR8MDtlOmZvcig7Uj0wfF9IKGwpLFI7KWlmKGY9UisxNnwwLCgwfGZlWzE1NysoMHxhW2Y+PjJdKT4+MF0pIT0oMHxmZVsxOTM3NzBdKSlmb3IoQ0goYyxSKSxBPTB8YVtmPj4yXSxtPUErMTgwfDAsYj0wfGFbbSs0Pj4yXSx3PUcsYVt3Pj4y''@;'; + put 'put ''XT1hW20+PjJdLGFbdys0Pj4yXT1iLHc9QSsxNzJ8MCxiPTB8YVt3KzQ+PjJdLG09ayxhW20+PjJdPWFbdz4+Ml0sYVttKzQ+PjJdPWIsbT1BKzE4OHwwLGI9MHxhW20rND4+Ml0sdz1NLGFbdz4+Ml09YVttPj4yXSxhW3crND4+Ml09YixBPUErMTk2fDAsdz0wfGFbQSs0Pj4yXSxiPUQsYVti''@;'; + put 'put ''Pj4yXT1hW0E+PjJdLGFbYis0Pj4yXT13LGI9Mzs7KXtpZigoMHxiKTw9LTEpY29udGludWUgZTtmPTB8YVtHKyhiPDwzKT4+Ml07dDpkb3tpZigwfGYpZm9yKHc9KDB8YVtHKyhiPDwzKSs0Pj4yXSktMXwwLEE9Zisodzw8Mil8MDs7KXtpZigoMHx3KTw9LTEpYnJlYWsgdDsoMHwoZj0wfGFb''@;'; + put 'put ''KDI9PSgwfChtPTMmYVsocD0wfGFbQT4+Ml0pPj4yXSkpP3A6cCstNDh8MCkrNDA+PjJdKSk9PSgwfFIpJiYoZj0wfGFbKDM9PSgwfG0pP3A6cCs0OHwwKSs0MD4+Ml0pLCgwfGZlWzE1NysoMHxhW2YrMTY+PjJdKT4+MF0pIT0oMHxmZVsxOTM3NzBdKSYmKDB8Zik9PSgwfGcxKGYpKSYmVlUo''@;'; + put 'put ''bCxmKSxBPUErLTR8MCx3PXcrLTF8MH19d2hpbGUoMCk7Yj1iKy0xfDB9YWU9S31mdW5jdGlvbiB3b2UobCl7dmFyIGYscCxjPTAsbT0wO2FbKG09MjIwKyhjPTB8YVsoZj0xNisobHw9MCl8MCk+PjJdKXwwKT4+Ml09bD0xKyhwPTB8YVttPj4yXSl8MCxsPShjPTB8YVtjKzIxNj4+Ml0pPzB8''@;'; + put 'put ''VjAoYyxsPDwyKTowfFFuKGw8PDIpLGFbMjE2KyhtPTB8YVtmPj4yXSk+PjJdPWwsYVtsKyhwPDwyKT4+Ml09YVttKzE5Mj4+Ml19ZnVuY3Rpb24gVlUobCxjKXtjfD0wO3ZhciBwLG0sQSx3LGIsZj0wO2I9YWUsYWU9YWUrMTZ8MCxtPWIrOHwwLHA9YiwoMHwoZj0wfGFbKHc9OCsobHw9MCl8''@;'; + put 'put ''MCk+PjJdKSk9PSgwfGFbNCsobD0wfGFbKEE9bCs0fDApPj4yXSk+PjJdKSYmKChmPTB8YVtsKzEyPj4yXSl8fCgoZj0wfHZyKDE2KSl8fCRyKDEsOTg5NjkscCksYVtmKzg+PjJdPWFbQT4+Ml0sYVtmKzEyPj4yXT0wLGw9MHx2cig0ZTYpLGFbZj4+Ml09bCxsfHwoJHIoMSw4ODM3NyxtKSxs''@;'; + put 'put ''PTB8YVtmPj4yXSksYVtmKzQ+PjJdPWwrNGU2LGFbMTIrKDB8YVtBPj4yXSk+PjJdPWYpLGFbQT4+Ml09ZixhW3c+PjJdPWY9MHxhW2Y+PjJdKSxmZVsxNTcrKDB8YVtjKzE2Pj4yXSk+PjBdPTErKDB8SnRbMTkzNzcwXSksYVt3Pj4yXT1mKzQsYVtmPj4yXT1jLGFlPWJ9ZnVuY3Rpb24gX0go''@;'; + put 'put ''bCl7dmFyIGYscCxtLGM9MCxBPTA7cmV0dXJuKDB8KGM9MHxhWyhtPTgrKGx8PTApfDApPj4yXSkpPT0oMHxhWyhwPTB8YVsoZj1sKzR8MCk+PjJdKT4+Ml0pPygwfHApPT0oMHxhW2w+PjJdKT9jPTA6KGFbZj4+Ml09Yz0wfGFbcCs4Pj4yXSxhW20+PjJdPWM9MHxhW2MrND4+Ml0sQT00KTpB''@;'; + put 'put ''PTQsND09KDB8QSkmJihhW20+PjJdPWM9YystNHwwLGM9MHxhW2M+PjJdKSwwfGN9ZnVuY3Rpb24gQ0gobCxjKXtjfD0wO3ZhciBmLHAsbT0wO2FbKG09MjMyKyhwPTB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml09MSsoMHxhW20+PjJdKSxmZVsxNTcrKG09MHxhW2MrMTY+PjJdKT4+MF09MHxm''@;'; + put 'put ''ZVsxOTM3NzBdLGY9bSsxNjh8MCwobD0wfGFbNDY3OTNdKT8oYVtmPj4yXT1sLGFbMTY0KygwfGFbbCsxNj4+Ml0pPj4yXT1jKTooYVtmPj4yXT0wLGFbcCsxOTI+PjJdPWMpLGFbNDY3OTNdPWMsYVttKzE2ND4+Ml09MH1mdW5jdGlvbiBRMyhsKXt2YXIgZixBLGM9MCxwPTAsbT0wLHc9MDtm''@;'; + put 'put ''PShBPSgwfChtPTB8YVsyMzYrKDB8YVsocD0xNisodz0wfGFbKDM9PSgwfChjPTMmYVsobHw9MCk+PjJdKSk/bDpsKzQ4fDApKzQwPj4yXSl8MCk+PjJdKT4+Ml0pKTwoMHwoYz0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDB8Yyk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSkpP2M6''@;'; + put 'put ''bSxwPSh3PTB8YVsxOTYrKDB8YVsxNisoMHxBYSh3KSk+PjJdKT4+Ml0pKyhhWzIzMisoMHxhW3A+PjJdKT4+Ml08PDYpKzR8MCxjPUE/bTpjO2U6Zm9yKDtjPWMrMXwwLCEoKDB8Yyk+PSgwfGYpKTspe3N3aXRjaCgwfGZlWzE1NisobT0wfGFbMTYrKDB8YVsoMHxhW3A+PjJdKSsoYzw8Mik+''@;'; + put 'put ''PjJdKT4+Ml0pPj4wXSl7Y2FzZSAwOmJyZWFrIGU7Y2FzZSAxOmJyZWFrO2RlZmF1bHQ6Y29udGludWUgZX1pZigwfGFbbSsxMDQ+PjJdKWJyZWFrfWlmKCgwfGMpPT0oMHxmKSlkb3tmZVsxMTMrKHc9MHxhW2wrMTY+PjJdKT4+MF09MSxsPTB8YVt3KzE3Mj4+Ml19d2hpbGUoMCE9KDB8bCkp''@;'; + put 'put ''fWZ1bmN0aW9uIGpVKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7Zm9yKDB8cnRbMjM2KyhsPTB8YVsobT0xNisobHw9MCl8MCk+PjJdKT4+MV0mJlByKDg4NDM0LDg4NDE3LDE5MCw4ODQ1MyksYz0zKygwfHJ0W2wrMjM4Pj4xXSl8MCxjPTY0KyhsPShsPTB8YVtsKzE5Nj4+Ml0pPzB8VjAobCxj''@;'; + put 'put ''PDw2KTowfFFuKGM8PDYpKXwwLGFbMTk2KyhsPTB8YVttPj4yXSk+PjJdPWMsbD0wfHJ0W2wrMjM4Pj4xXTshKCgwfGwpPD0tMSk7KXtmPWMrKGw8PDYpfDAsbD1jKygocD1sKy0xfDApPDw2KXwwLGM9Zis2NHwwO2Rve2FbZj4+Ml09YVtsPj4yXSxmPWYrNHwwLGw9bCs0fDB9d2hpbGUoKDB8''@;'; + put 'put ''Zik8KDB8YykpO2w9cCxjPTB8YVsxOTYrKDB8YVttPj4yXSk+PjJdfWFbYysobDw8NikrOD4+Ml09MCxhW2MrKGw8PDYpPj4yXT0wLGY9MHx2cig4KSxhWyhwPTB8YVsxOTYrKG09MHxhW20+PjJdKT4+Ml0pKyhsPDw2KSsxMj4+Ml09ZixhW3ArKGw8PDYpKzQ+PjJdPWYsYVtwKyhsPDw2KSs1''@;'; + put 'put ''Nj4+Ml09MCxfW3ArKGw8PDYpKzI0Pj4zXT0xLF9bcCsobDw8NikrMTY+PjNdPTEsX1twKyhsPDw2KSs0MD4+M109MSxfW3ArKGw8PDYpKzMyPj4zXT0xLHJ0WyhtPW0rMjM2fDApPj4xXT0oMHxydFttPj4xXSktMTw8MTY+PjE2fWZ1bmN0aW9uIEh1KGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAs''@;'; + put 'put ''QT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDswfGFbOTYrKDB8YVsodz0xNisobHw9MCl8MCk+PjJdKT4+Ml0mJihNPWwrNDh8MCxiPTB8QWEoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6TSkrNDA+PjJdKSxjPTB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMyZhW2w+''@;'; + put 'put ''PjJdfDApP2w6TSkrNDA+PjJdKT4+Ml0pPj4yXSxrPTB8ZnVuY3Rpb24gTmxlKGwsYyl7dmFyIHcsYixrLEQsUixmPTAscD0wLG09MCxBPTAsTT0wO2ZvcihSPWFlLGFlPWFlKzMyfDAsbT1SKzR8MCxBPVIsdz0wfGFbKGw9MHxhWzE5NisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSkrKChNPSgw''@;'; + put 'put ''fGFbMjMyKygwfGFbMTYrKHA9MHxhWygzPT0oMHwoZj0zJmFbKGN8PTApPj4yXSkpP2M6Yys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0xfDApPDw2KSs0Pj4yXSxsPTB8YVtsKyhNPDw2KT4+Ml0sYVsoTT04KyhrPVIrOHwwKXwwKT4+Ml09LTEsYVtrPj4yXT0tMSxhWyhEPWsrMTJ8MCk+PjJd''@;'; + put 'put ''PWwsYVsoYj1rKzR8MCk+PjJdPWwsa0oocCwwfGFbKDI9PSgwfGYpP2M6YystNDh8MCkrNDA+PjJdLG0sQSksbT0wfGFbbT4+Ml0sQT0wfGFbQT4+Ml0sZj0wLHA9bCxjPS0xOyEoKDB8Zik+PSgwfHApfHwocD1wKy0xfDAseE4oMHxhW3crKGY8PDIpPj4yXSxrLG0sQSksKDB8ZikhPSgwfHAp''@;'; + put 'put ''JiZ4TigwfGFbdysocDw8Mik+PjJdLGssbSxBKSxsPTB8YVtiPj4yXSxjPTB8YVtrPj4yXSwobC1jfDApPDIpKTspZj1mKzF8MDtyZXR1cm4gYWU9UiwwfCgobD0oMHxjKT4oMHxsKT8oMHxhW0Q+PjJdKSsoMHxhW00+PjJdKXwwOmwrY3wwKSsxfDApLzJ9KGIsbCkscD0oQT0wfGFbYVsobT0w''@;'; + put 'put ''fGFbMTk2KyhmPTB8YVsoRD1iKzE2fDApPj4yXSk+PjJdKSsoKFI9YystMXwwKTw8NikrND4+Ml0+PjJdKT8rX1syNCsoMHxhW0ErMTY+PjJdKT4+M10tK19bbSsoUjw8NikrMTY+PjNdOitfW20rKGM8PDYpKzI0Pj4zXSsgK19bMjQrKDB8YVsxNisoMHxhW2FbbSsoYzw8NikrND4+Ml0+PjJd''@;'; + put 'put ''KT4+Ml0pPj4zXSsgKygwfGFbZisyNTI+PjJdKSxjPTB8ZnVuY3Rpb24gVmxlKGwsYyxmKXtmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wO2ZvcihwPShtPTB8YVsxOTYrKDB8YVsoQT0xNisobHw9MCl8MCk+PjJdKT4+Ml0pKygoY3w9MCk8PDYpfDAsbT0obT0wfGFbbSsoYzw8NikrND4+''@;'; + put 'put ''Ml0pPzB8VjAobSw4KyhhW3A+PjJdPDwyKXwwKTowfFFuKDgrKGFbcD4+Ml08PDIpfDApLGFbKHA9MHxhWzE5NisoMHxhW0E+PjJdKT4+Ml0pKyhjPDw2KSs0Pj4yXT1tLHA9MHxhW3ArKGM8PDYpPj4yXTshKCgwfHApPD0oMHxmKSk7KWFbbSsocDw8Mik+PjJdPWI9MHxhW20rKCh3PXArLTF8''@;'; + put 'put ''MCk8PDIpPj4yXSxhWyhiPTIzNisoMHxhW2IrMTY+PjJdKXwwKT4+Ml09MSsoMHxhW2I+PjJdKSxwPXc7cmV0dXJuIHc9MHxVaChsKSxhWyhiPW0rKGY8PDIpfDApPj4yXT13LGFbMjM2Kyh3PTB8YVt3KzE2Pj4yXSk+PjJdPWYsYVt3KzIzMj4+Ml09YyxhWyhBPSgwfGFbMTk2KygwfGFbQT4+''@;'; + put 'put ''Ml0pPj4yXSkrKGM8PDYpfDApPj4yXT13PTErKDB8YVtBPj4yXSl8MCxhW20rKHc8PDIpPj4yXT0wLDB8YVtiPj4yXX0oYixSLGspLEs9K19bMjQrKGI9MHxhWzk2KygwfGFbdz4+Ml0pPj4yXSk+PjNdLEc9K19bYiszMj4+M10sX1s4MCsoZj0wfGFbKG09YysxNnwwKT4+Ml0pPj4zXT1wZT0o''@;'; + put 'put ''dz0wPT0oMSZhWzExNisoMHxhW0Q+PjJdKT4+Ml18MCkpP0c6SyxrPX5+KC41KnBlKSxfW2YrOTY+PjNdPUc9LjUqKHc/SzpHKSxfW2YrODg+PjNdPUcsYVtmKzEwND4+Ml09YixfW2YrMjQ+PjNdPSsoayt+fnB8MCksZj0wfEpjKGMsMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6TSkrNDA+PjJd''@;'; + put 'put ''LGwpLF9bMTYrKGY9MHxhW2YrMTY+PjJdKT4+M109LStfWzg4KygwfGFbbT4+Ml0pPj4zXSxfW2YrNTY+PjNdPStfWzk2KygwfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOk0pKzQwPj4yXSk+PjJdKT4+M10sZmVbZisxMTI+PjBdPTQsZj1sKy00OHwwLGM9MHxKYyhjLDB8YVsoMj09''@;'; + put 'put ''KDMmYVtsPj4yXXwwKT9sOmYpKzQwPj4yXSxsKSxfWzE2KyhjPTB8YVtjKzE2Pj4yXSk+PjNdPStfWzk2KyhtPTB8YVttPj4yXSk+PjNdLF9bYys1Nj4+M109K19bODgrKDB8YVsxNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6ZikrNDA+PjJdKT4+Ml0pPj4zXSxmZVtjKzExMj4+MF09NCwr''@;'; + put 'put ''X1soZj0oYz0wfGFbMTk2KygwfGFbRD4+Ml0pPj4yXSkrKFI8PDYpKzE2fDApPj4zXTwocD0rKDB8aykpJiYoX1tmPj4zXT1wKSwrX1soYz1jKyhSPDw2KSsyNHwwKT4+M108cCYmKF9bYz4+M109cCksYVttKzExMj4+Ml09bCl9ZnVuY3Rpb24ga0gobCxjLGYpe2N8PTAsZnw9MDt2YXIgayxL''@;'; + put 'put ''LGdlLGJlLE9lLFJlLEhlLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0wLEQ9MCxSPTAsRz0wLHBlPTAsTGU9MDtIZT1hZSxhZT1hZSsxNjB8MCxiZT1IZSsyMHwwLGdlPUhlKzE2fDAsaz1IZSxNPUhlKzMyfDAsT2U9MHxhWzE1MisobHw9MCk+PjJdLGFbKExlPUhlKzI0fDApPj4yXT0wLGFbYmU+''@;'; + put 'put ''PjJdPTAsYVtnZT4+Ml09MCxSZT0wfHhmKGwpLGFbUmUrND4+Ml09MyxhW1JlKzg+PjJdPWMsYVtSZSsxMj4+Ml09OSwwfChiPTB8YVs5NisoMHxhWyhLPWMrMTZ8MCk+PjJdKT4+Ml0pJiYwPT0oMHxmZVtiKzgyPj4wXSkmJigwfG5nKDB8TGkoYywxMDAxMDUpLDApKTw8MjQ+PjI0JiYocnRb''@;'; + put 'put ''KGI9UmUrMjYwfDApPj4xXT01MTJ8cnRbYj4+MV0pLDB8ZiYmMHxhWzgrKDB8YVtLPj4yXSk+PjJdJiZkMihsLGYpLDB8KGY9MHxhWzQ3MjA2XSkmJjB8KHA9MHxIbyhjLGYpKSYmMHxmZVtwPj4wXSYmeGgobCwrTWwoYywwfGFbNDcyMDZdLDEsMCkpO2Rve2lmKDE2Nzc3MjE2Jk9lfDApe2lm''@;'; + put 'put ''KGY9Yys0OHwwLCgwfGhyWzE3OCsoMHxhWzE2KygwfGNyKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSkpPj4yXSk+PjFdKT4yKXtfW1JlKzE3Nj4+M109KygwfH5+KCh3PTcyKitfWzE2KygwfGFbMTMyKygwfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4y''@;'; + put 'put ''XSk+PjJdKT4+Ml0pPj4zXSkrKHc+PTA/LjU6LS41KSkpLF9bUmUrMTg0Pj4zXT0rKDB8fn4oKHc9NzIqK19bMTYrKDB8YVsxMzIrKDB8YVsxNisoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+PjNdKSsodz49MD8uNTotLjUpKSk7YnJlYWt9YVso''@;'; + put 'put ''Yj1SZSsxNzZ8MCk+PjJdPTAsYVtiKzQ+PjJdPTAsYVtiKzg+PjJdPTAsYVtiKzEyPj4yXT0wO2JyZWFrfX13aGlsZSgwKTtpZigzMjc2OCZPZXwwJiYoKGY9MHxhWzk2KyhiPTB8YVtLPj4yXSk+PjJdKT9hW1JlKzE5Mj4+Ml09Zj0wfGFbZj4+Ml06Zj0wfGFbUmUrMTkyPj4yXSxhWyhwPVJl''@;'; + put 'put ''KzE5NnwwKT4+Ml09ZixhWyhBPVJlKzIwNHwwKT4+Ml09ZixhWyhtPVJlKzIwMHwwKT4+Ml09ZiwwfChmPTB8YVtiKzEwOD4+Ml0pJiYoYVtwPj4yXT1hW2Y+PjJdKSwwfChmPTB8YVtiKzEwND4+Ml0pJiYoYVttPj4yXT1hW2Y+PjJdKSwwfChmPTB8YVtiKzEwMD4+Ml0pJiYoYVtBPj4yXT1h''@;'; + put 'put ''W2Y+PjJdKSksNjU1MzYmT2Upe3VzKGssMTI4LE0pLGFbUmUrMjEyPj4yXT0wfG0yKDB8ZkYobCxjLGspLGMpLEMyKGspLDAhPSgwfChmPTB8TGkoYywxNDEwNTUpKSkmJjAhPSgwfGZlW2Y+PjBdKXx8MCE9KDB8KGY9MHxMaShjLDExMTQ3NykpKSYmMCE9KDB8ZmVbZj4+MF0pP0Q9MzE6cD0w''@;'; + put 'put ''LDMxPT0oMHxEKSYmKHA9MHxtMihmLGMpKSxEPTAhPSgwfChmPTB8TGkoYywxMDAxMTgpKSkmJjAhPSgwfGZlW2Y+PjBdKT8zNjozNDtkb3tpZigzND09KDB8RCkpe2lmKDB8KGY9MHxMaShjLDEwMDEyNykpJiYwfGZlW2Y+PjBdKXtEPTM2O2JyZWFrfTB8cCYmKGY9MHxyYShwKSxEPTM5KX19''@;'; + put 'put ''d2hpbGUoMCk7MzY9PSgwfEQpJiYoZj0wfG0yKGYsYyksRD0zOSksMzk9PSgwfEQpJiYoYVtSZSsyMDg+PjJdPWYpLEQ9MCE9KDB8KGY9MHxMaShjLDEwMDEzNSkpKSYmMCE9KDB8ZmVbZj4+MF0pPzQ0OjQyO2Rve2lmKDQyPT0oMHxEKSl7aWYoMHwoZj0wfExpKGMsMTAwMTQ1KSkmJjB8ZmVb''@;'; + put 'put ''Zj4+MF0pe0Q9NDQ7YnJlYWt9MHxwJiYoZj0wfHJhKHApLEQ9NDcpfX13aGlsZSgwKTs0ND09KDB8RCkmJihmPTB8bTIoZixjKSxEPTQ3KSw0Nz09KDB8RCkmJihhW1JlKzIxNj4+Ml09ZiksRD0wIT0oMHwoZj0wfExpKGMsMTAwMTU0KSkpJiYwIT0oMHxmZVtmPj4wXSk/NTI6NTA7ZG97aWYo''@;'; + put 'put ''NTA9PSgwfEQpKXtpZigwfChmPTB8TGkoYywxMDAxNjMpKSYmMHxmZVtmPj4wXSl7RD01MjticmVha30wfHAmJihhW1JlKzIyMD4+Ml09MHxyYShwKSl9fXdoaWxlKDApOzUyPT0oMHxEKSYmKGFbUmUrMjIwPj4yXT0wfG0yKGYsYykscnRbKEQ9UmUrMjYwfDApPj4xXT0xMjh8cnRbRD4+MV0p''@;'; + put 'put ''LEQ9MCE9KDB8KGY9MHxMaShjLDEwMDE3MSkpKSYmMCE9KDB8ZmVbZj4+MF0pPzU5OjU3O2Rve2lmKDU3PT0oMHxEKSl7aWYoMHwoZj0wfExpKGMsMTAwMTgwKSkmJjB8ZmVbZj4+MF0pe0Q9NTk7YnJlYWt9MHxwJiYoYVtSZSsyMjQ+PjJdPTB8cmEocCkpfX13aGlsZSgwKTs1OT09KDB8RCkm''@;'; + put 'put ''JihhW1JlKzIyND4+Ml09MHxtMihmLGMpLHJ0WyhEPVJlKzI2MHwwKT4+MV09MjU2fHJ0W0Q+PjFdKSxtPXB9ZWxzZSBtPTA7ZG97aWYoODM4ODYwOCZPZSl7aWYocD0wIT0oMHwoZj0wfExpKGMsMTQxMDg4KSkpJiYwIT0oMHxmZVtmPj4wXSk/MHxtMihmLGMpOjAsMCE9KDB8KGY9MHxMaShj''@;'; + put 'put ''LDEwMDE4OCkpKSYmMCE9KDB8ZmVbZj4+MF0pPyhydFsoRD1SZSsyNjB8MCk+PjFdPTY0fHJ0W0Q+PjFdLGY9MHxtMihmLGMpLEQ9NzIpOkQ9NzAsNzA9PSgwfEQpJiYwfHAmJihmPTB8cmEocCksRD03MiksNzI9PSgwfEQpJiYoYVtSZSsyNDQ+PjJdPWYpLDAhPSgwfChmPTB8TGkoYywxMDAx''@;'; + put 'put ''OTkpKSkmJjAhPSgwfGZlW2Y+PjBdKT8oZj0wfG0yKGYsYyksRD03OCk6RD03Niw3Nj09KDB8RCkmJjB8cCYmKGY9MHxyYShwKSxEPTc4KSw3OD09KDB8RCkmJihhW1JlKzI0OD4+Ml09ZiksMCE9KDB8KGY9MHxMaShjLDEwMDIxMSkpKSYmMCE9KDB8ZmVbZj4+MF0pPyhhW1JlKzI1Mj4+Ml09''@;'; + put 'put ''MHxtMihmLGMpLHJ0WyhNPVJlKzI2MHwwKT4+MV09MTZ8cnRbTT4+MV0pOkQ9ODIsODI9PSgwfEQpJiYwfHAmJihhW1JlKzI1Mj4+Ml09MHxyYShwKSksMHwoZj0wfExpKGMsMTAwMjIyKSkmJjB8ZmVbZj4+MF0pe3J0WyhEPVJlKzI2MHwwKT4+MV09MzJ8cnRbRD4+MV0sYVtSZSsyNTY+PjJd''@;'; + put 'put ''PTB8bTIoZixjKTticmVha31wP2FbUmUrMjU2Pj4yXT0wfHJhKHApOnA9MH1lbHNlIHA9MH13aGlsZSgwKTtkb3tpZig0MTk0MzA0Jk9lfDApe0Q9MCE9KDB8KGY9MHxMaShjLDE0MTEwMSkpKSYmMCE9KDB8ZmVbZj4+MF0pPzk0OjkyO2Rve2lmKDkyPT0oMHxEKSl7aWYoMHwoZj0wfExpKGMs''@;'; + put 'put ''MTAwMjMzKSkmJjB8ZmVbZj4+MF0pe0Q9OTQ7YnJlYWt9MHwoZj0wfGFbUmUrMTkyPj4yXSkmJihhW1JlKzIyOD4+Ml09MHxyYShmKSl9fXdoaWxlKDApO2lmKDk0PT0oMHxEKSYmKE09MHxBNyhmLGMpLGFbUmUrMjI4Pj4yXT0wfG0yKE0sYyksRnQoTSkscnRbKE09UmUrMjYwfDApPj4xXT0x''@;'; + put 'put ''fHJ0W00+PjFdKSwwIT0oMHwoZj0wfExpKGMsMTAwMjQ1KSkpJiYwIT0oMHxmZVtmPj4wXSk/KE09MHxBNyhmLGMpLGFbUmUrMjMyPj4yXT0wfG0yKE0sYyksRnQoTSkscnRbKE09UmUrMjYwfDApPj4xXT04fHJ0W00+PjFdKTpEPTEwMCwxMDA9PSgwfEQpJiYwfChSPTB8YVtSZSsxOTI+PjJd''@;'; + put 'put ''KSYmKGFbUmUrMjMyPj4yXT0wfHJhKFIpKSwwIT0oMHwoZj0wfExpKGMsMTAwMjU4KSkpJiYwIT0oMHxmZVtmPj4wXSk/KFI9MHxBNyhmLGMpLGFbUmUrMjM2Pj4yXT0wfG0yKFIsYyksRnQoUikscnRbKFI9UmUrMjYwfDApPj4xXT0yfHJ0W1I+PjFdKTpEPTEwNSwxMDU9PSgwfEQpJiYwfChH''@;'; + put 'put ''PTB8YVtSZSsyMDA+PjJdKSYmKGFbUmUrMjM2Pj4yXT0wfHJhKEcpKSwwfChmPTB8TGkoYywxMDAyNzApKSYmMHxmZVtmPj4wXSl7Rz0wfEE3KGYsYyksYVtSZSsyNDA+PjJdPTB8bTIoRyxjKSxGdChHKSxydFsoRz1SZSsyNjB8MCk+PjFdPTR8cnRbRz4+MV07YnJlYWt9MHwoZj0wfGFbUmUr''@;'; + put 'put ''MjA0Pj4yXSkmJihhW1JlKzI0MD4+Ml09MHxyYShmKSl9fXdoaWxlKDApO0Z0KG0pLEZ0KHApO2Rve2lmKDQyNTk4NDAmT2V8MCYmMHwocGU9MHxhWzgrKDB8YVtLPj4yXSk+PjJdKSl7aWYoMHxhW1JlKzIwOD4+Ml0pe2lmKCEoNTI0Mjg4Jk9lKSlicmVha31lbHNlIGlmKDA9PSg1MjQyODgm''@;'; + put 'put ''T2V8MCl8MD09KDB8YVtSZSsyMjg+PjJdKSlicmVhaztmb3Iodz0odz0uNSorX1sxNTIrKDB8YVtsKzE2Pj4yXSk+PjNdKT4yP3c6MixwPTB8YVtwZSs0Pj4yXSxmPTA7ISgoMHxmKT49KDB8cCkpOylFSChMZSxiZSxnZSwoMHxhW3BlPj4yXSkrKDQ4KmZ8MCl8MCx3KSxmPWYrMXwwO2lmKGFb''@;'; + put 'put ''UmUrMjc2Pj4yXT1tPTB8YVtnZT4+Ml0sYVtSZSsyODA+PjJdPUE9MHxhW2JlPj4yXSw4MTkyJk9lKWY9MHxhW0xlPj4yXTtlbHNle2ZvcihmPTAscD0wOyEoKDB8cCk+PSgwfG0pKTspZj0oMHxhW0ErKHA8PDIpPj4yXSkrZnwwLHA9cCsxfDA7TWgobCxMZT0wfGFbTGU+PjJdLExlLGYpLGY9''@;'; + put 'put ''TGV9YVtSZSsyODQ+PjJdPWYsYVtSZSsyNjQ+PjJdPTIsYVtSZSsyNzI+PjJdPWYsYVtSZSsyNjg+PjJdPWFbQT4+Ml19fXdoaWxlKDApOyhmdW5jdGlvbiBBMyhsLGMpe2N8PTA7dmFyIGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYys2ND4+Ml0pJiZDb1sxMjcmZl0o''@;'; + put 'put ''bCl9KShsLGMpLDA9PSgwfChmPTB8YVtSZSsyMDg+PjJdKSkmJiEoMSZydFtSZSsyNjA+PjFdKXx8RzEobCxmLDB8YVtSZSsyMjg+PjJdLDB8YVtSZSsyNDQ+PjJdLDB8YVtSZSsyMTI+PjJdKSxhZT1IZX1mdW5jdGlvbiBaVShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIE9lLExlLFJlLHFl''@;'; + put 'put ''LG50LFdlLG90LFN0LGt0LGx0LGN0LGJ0LGFuLHVyLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsSGU9MCxWZT0wLEV0PTAsWnQ9MCxTbj0wLEhuPTAsSHI9MCxFcj0wLGZyPTA7dXI9YWUsYWU9YWUrMjQwfDAsYnQ9dXIrMjI0fDAs''@;'; + put 'put ''Y3Q9dXIrMjA4fDAsTGU9dXIrMTI4fDAsT2U9dXIrMTEyfDAsSG49dXIrNjR8MCxudD11cis0OHwwLFdlPXVyKzMyfDAsU3Q9dXIsa3Q9dXIrMTkyfDAsbHQ9dXIrMTc2fDAsUmU9dXIrMTYwfDAscWU9dXIrMTQ0fDAsYVsob3Q9dXIrMTZ8MCk+PjJdPTAsYVtvdCs0Pj4yXT0wLGFbb3QrOD4+''@;'; + put 'put ''Ml09MCxhW290KzEyPj4yXT0wLGFuPStfWzE1MisoMHxhW2wrMTY+PjJdKT4+M10sRHYoMHxMaShjLDEwMDAzMikpLFp0PWMrMTZ8MDtlOmRve2lmKDB8YVs4KygwfGFbWnQ+PjJdKT4+Ml0pe1NuPStNbChjLDB8YVs0NzE4OF0sMSwwKSx3PTB8djIoYywwfGFbNDcxNzZdLDE5NTA1OSksYmU9''@;'; + put 'put ''MCE9KDB8Zik7dDpkb3tpZihiZSlmb3IocD1mOzspe2lmKG09cCxwPXArNHwwLCEobT0wfGFbbT4+Ml0pKXtNPTA7YnJlYWsgdH1pZigxMTY9PSgwfGZlW20+PjBdKSYmISgwfGppKG0sMTExMTE3KSkpe009MTticmVha319ZWxzZSBNPTB9d2hpbGUoMCk7QT13LFI9MCxtPTA7dDpmb3IoOzsp''@;'; + put 'put ''e3N3aXRjaCgwfGZlW0E+PjBdKXtjYXNlIDA6YnJlYWsgdDtjYXNlIDU4OnA9UisxfDA7YnJlYWs7Y2FzZSA1OTpwPVIsbT1tKzF8MDticmVhaztkZWZhdWx0OnA9Un1BPUErMXwwLFI9cH1pZigwIT0oMHxtKSYoaz0wIT0oMHxSKSkpe2lmKCEoMHxZVShsLGMsZix3LFIrMXwwLFNuLGFuKSkp''@;'; + put 'put ''YnJlYWs7Yj0xMzczMTR9ZWxzZSBiPXc7aWYoMSYocD0wfEp0WzExNSsoMHxhW1p0Pj4yXSk+PjBdKT8oQT0xMDYyNDgscD0xMDYyNDAsdz0xODg3MTIsbT0xODg3MTIsRD0xOCk6MiZwPyhBPTEwNjI2NCxwPTEwNjI1Nix3PTE4ODcxMixtPTE4ODcxMixEPTE4KTo4JnA/KEE9MTA2MjgwLHA9''@;'; + put 'put ''MTA2MjcyLHc9MTg4NzEyLG09MTg4NzEyLEQ9MTgpOjQmcD8oQT0xMDYyOTYscD0xMDYyODgsdz0xODg3MTIsbT0xODg3MTIsRD0xOCk6KG09YixBPTB8QmEoYywwfGFbNDcxNzddLGIpKSwxOD09KDB8RCkmJihtPTB8QmEoYyxtPTB8YVttPj4yXSwwfE9JKGIscCkpLHA9MHxCYShjLDB8YVt3''@;'; + put 'put ''Pj4yXSxBKSwoMHxtKT09KDB8Yik/KG09YixBPXApOihtYShsLG0pLEE9cCkpLCgwfEEpIT0oMHxiKSYmaGwobCxBKSxNPDwyND4+MjQpe209MD09KDB8ZmVbbT4+MF0pPzEzNzMxNDptLHA9MD09KDB8ZmVbQT4+MF0pPzEzNzMxNDpBLG1hKGwsMTM3Mzc5KSxobChsLG0pLEc9MHxhW2FbOCso''@;'; + put 'put ''MHxhW1p0Pj4yXSk+PjJdPj4yXSxLPShnZT1IbikrNDh8MDtkb3thW2dlPj4yXT1hW0c+PjJdLGdlPWdlKzR8MCxHPUcrNHwwfXdoaWxlKCgwfGdlKTwoMHxLKSk7aWYoWnQ9MHxjbGUoSG4sMHxRNShjKSxhbiwwLDApLGthKGwsMHxhW1p0Kzg+PjJdLDB8YVtadD4+Ml0sMSksYTllKFp0KSxt''@;'; + put 'put ''YShsLG0pLCgwfHApIT0oMHxtKSYmaGwobCxwKSwwfChwPTB8YVtIbis4Pj4yXSkmJihadD0wfGFbSG4+PjJdLGFbY3Q+PjJdPWFbKEV0PUhuKzE2fDApPj4yXSxhW2N0KzQ+PjJdPWFbRXQrND4+Ml0sYVtjdCs4Pj4yXT1hW0V0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbRXQrMTI+PjJdLGFbYnQ+''@;'; + put 'put ''PjJdPWFbWnQ+PjJdLGFbYnQrND4+Ml09YVtadCs0Pj4yXSxhW2J0Kzg+PjJdPWFbWnQrOD4+Ml0sYVtidCsxMj4+Ml09YVtadCsxMj4+Ml0sWWQobCwyLGN0LGJ0LFNuLGFuLHApKSwhKHA9MHxhW0huKzEyPj4yXSkpYnJlYWs7WnQ9SG4rMzJ8MCxIbj0oMHxhW0huPj4yXSkrKCgwfGFbSG4r''@;'; + put 'put ''ND4+Ml0pLTE8PDQpfDAsYVtjdD4+Ml09YVtadD4+Ml0sYVtjdCs0Pj4yXT1hW1p0KzQ+PjJdLGFbY3QrOD4+Ml09YVtadCs4Pj4yXSxhW2N0KzEyPj4yXT1hW1p0KzEyPj4yXSxhW2J0Pj4yXT1hW0huPj4yXSxhW2J0KzQ+PjJdPWFbSG4rND4+Ml0sYVtidCs4Pj4yXT1hW0huKzg+PjJdLGFb''@;'; + put 'put ''YnQrMTI+PjJdPWFbSG4rMTI+PjJdLFlkKGwsMyxjdCxidCxTbixhbixwKTticmVha31pZihwPTB8YVtadD4+Ml0sIWspe2Rve2lmKCEoMyZmZVtwKzExNT4+MF0pKXtpZigwfGZlW20+PjBdKXttYShsLG0pLGhsKGwsQSk7YnJlYWt9aWYobWEobCwxMzczMTQpLDB8ZmVbQT4+MF0pe2hsKGws''@;'; + put 'put ''QSk7YnJlYWt9aGwobCwxMzczMTQpO2JyZWFrfX13aGlsZSgwKTtmb3Iodz1sKzE1MnwwLGI9SG4rNHwwLGs9SG4rOHwwLE09SG4rMTJ8MCxEPUhuKzMyfDAsUj1IbisxNnwwLEE9MDs7KXtpZigoMHxBKT49KDB8YVs0KyhwPTB8YVs4KygwfGFbWnQ+PjJdKT4+Ml0pPj4yXSkpYnJlYWsgZTtH''@;'; + put 'put ''PSgwfGFbcD4+Ml0pKyg0OCpBfDApfDAsSz0oZ2U9SG4pKzQ4fDA7ZG97YVtnZT4+Ml09YVtHPj4yXSxnZT1nZSs0fDAsRz1HKzR8MH13aGlsZSgoMHxnZSk8KDB8SykpO3A9MHxhW0huPj4yXSxtPTB8YVtiPj4yXTtkb3tpZigxNjM4NCZhW3c+PjJdKVFmKGwscCxtLDB8YVtrPj4yXSwwfGFb''@;'; + put 'put ''TT4+Ml0sMCk7ZWxzZSBpZihRZihsLHAsbSwwLDAsMCksMHwocD0wfGFbaz4+Ml0pJiYoRXQ9MHxhW0huPj4yXSxhW2N0Pj4yXT1hW1I+PjJdLGFbY3QrND4+Ml09YVtSKzQ+PjJdLGFbY3QrOD4+Ml09YVtSKzg+PjJdLGFbY3QrMTI+PjJdPWFbUisxMj4+Ml0sYVtidD4+Ml09YVtFdD4+Ml0s''@;'; + put 'put ''YVtidCs0Pj4yXT1hW0V0KzQ+PjJdLGFbYnQrOD4+Ml09YVtFdCs4Pj4yXSxhW2J0KzEyPj4yXT1hW0V0KzEyPj4yXSxZZChsLDIsY3QsYnQsU24sYW4scCkpLDB8KHA9MHxhW00+PjJdKSYmKEV0PSgwfGFbSG4+PjJdKSsoKDB8YVtiPj4yXSktMTw8NCl8MCxhW2N0Pj4yXT1hW0Q+PjJdLGFb''@;'; + put 'put ''Y3QrND4+Ml09YVtEKzQ+PjJdLGFbY3QrOD4+Ml09YVtEKzg+PjJdLGFbY3QrMTI+PjJdPWFbRCsxMj4+Ml0sYVtidD4+Ml09YVtFdD4+Ml0sYVtidCs0Pj4yXT1hW0V0KzQ+PjJdLGFbYnQrOD4+Ml09YVtFdCs4Pj4yXSxhW2J0KzEyPj4yXT1hW0V0KzEyPj4yXSxZZChsLDMsY3QsYnQsU24s''@;'; + put 'put ''YW4scCkpLCgwfGFbNCsoMHxhWzgrKDB8YVtadD4+Ml0pPj4yXSk+PjJdKT4xKXtpZigwfGFbaz4+Ml0pe2lmKCFiZSlicmVha31lbHNlIGlmKCEoYmUmMCE9KDB8YVtNPj4yXSkpKWJyZWFrO2QyKGwsZil9fXdoaWxlKDApO0E9QSsxfDB9fWZvcihIZT0wfEIwKFZlPTQ4KihFdD0wfGFbNCso''@;'; + put 'put ''MHxhW3ArOD4+Ml0pPj4yXSl8MCksVmU9MHxCMChWZSkscGU9LjUqKyhSKzJ8MCksYmU9SG4rNHwwLEQ9bnQrOHwwLFI9V2UrOHwwLGM9b3QrOHwwLGY9U3QrOHwwLE09MDshKCgwfE0pPj0oMHxFdCkpOyl7Rz0oMHxhW2FbOCsoMHxhW1p0Pj4yXSk+PjJdPj4yXSkrKDQ4Kk18MCl8MCxLPShn''@;'; + put 'put ''ZT1IbikrNDh8MDtkb3thW2dlPj4yXT1hW0c+PjJdLGdlPWdlKzR8MCxHPUcrNHwwfXdoaWxlKCgwfGdlKTwoMHxLKSk7Zm9yKGFbSGUrKDQ4Kk18MCkrND4+Ml09cD0wfGFbYmU+PjJdLGFbVmUrKDQ4Kk18MCkrND4+Ml09cCxiPTB8QjAoaz1wPDw0KSxhW0hlKyg0OCpNfDApPj4yXT1iLGs9''@;'; + put 'put ''MHxCMChrKSxhW1ZlKyg0OCpNfDApPj4yXT1rLGFbU3Q+PjJdPWFbKHc9MHxhW0huPj4yXSk+PjJdLGFbU3QrND4+Ml09YVt3KzQ+PjJdLGFbU3QrOD4+Ml09YVt3Kzg+PjJdLGFbU3QrMTI+PjJdPWFbdysxMj4+Ml0sdz0wOyEoKDB8dyk+PShwKy0xfDApKTspYVtudD4+Ml09YVtTdD4+Ml0s''@;'; + put 'put ''YVtudCs0Pj4yXT1hW1N0KzQ+PjJdLGFbbnQrOD4+Ml09YVtTdCs4Pj4yXSxhW250KzEyPj4yXT1hW1N0KzEyPj4yXSxhW1dlPj4yXT1hWyhBPSgwfGFbSG4+PjJdKSsoKHA9dysxfDApPDw0KXwwKT4+Ml0sYVtXZSs0Pj4yXT1hW0ErND4+Ml0sYVtXZSs4Pj4yXT1hW0ErOD4+Ml0sYVtXZSsx''@;'; + put 'put ''Mj4+Ml09YVtBKzEyPj4yXSxBPWIrKHc8PDQpfDAsdz8oYVtjdD4+Ml09YVtvdD4+Ml0sYVtjdCs0Pj4yXT1hW290KzQ+PjJdLGFbY3QrOD4+Ml09YVtvdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW290KzEyPj4yXSxhW2J0Pj4yXT1hW1dlPj4yXSxhW2J0KzQ+PjJdPWFbV2UrND4+Ml0sYVtidCs4''@;'; + put 'put ''Pj4yXT1hW1dlKzg+PjJdLGFbYnQrMTI+PjJdPWFbV2UrMTI+PjJdLE1IKGx0LGN0LGJ0KSxhW0E+PjJdPWFbbHQ+PjJdLGFbQSs0Pj4yXT1hW2x0KzQ+PjJdLGFbQSs4Pj4yXT1hW2x0Kzg+PjJdLGFbQSsxMj4+Ml09YVtsdCsxMj4+Ml0pOihhW2N0Pj4yXT1hW250Pj4yXSxhW2N0KzQ+PjJd''@;'; + put 'put ''PWFbbnQrND4+Ml0sYVtjdCs4Pj4yXT1hW250Kzg+PjJdLGFbY3QrMTI+PjJdPWFbbnQrMTI+PjJdLGFbYnQ+PjJdPWFbV2U+PjJdLGFbYnQrND4+Ml09YVtXZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbV2UrOD4+Ml0sYVtidCsxMj4+Ml09YVtXZSsxMj4+Ml0sTUgoa3QsY3QsYnQpLGFbQT4+Ml09''@;'; + put 'put ''YVtrdD4+Ml0sYVtBKzQ+PjJdPWFba3QrND4+Ml0sYVtBKzg+PjJdPWFba3QrOD4+Ml0sYVtBKzEyPj4yXT1hW2t0KzEyPj4yXSksYVtvdD4+Ml09YVsoZnI9KEVyPTB8YVtIbj4+Ml0pKygoSz13KzJ8MCk8PDQpfDApPj4yXSxhW290KzQ+PjJdPWFbZnIrND4+Ml0sYVtvdCs4Pj4yXT1hW2Zy''@;'; + put 'put ''Kzg+PjJdLGFbb3QrMTI+PjJdPWFbZnIrMTI+PjJdLGFbU3Q+PjJdPWFbKEVyPUVyKygoZ2U9dyszfDApPDw0KXwwKT4+Ml0sYVtTdCs0Pj4yXT1hW0VyKzQ+PjJdLGFbU3QrOD4+Ml09YVtFcis4Pj4yXSxhW1N0KzEyPj4yXT1hW0VyKzEyPj4yXSxIcj1iKyhwPDw0KXwwLEc9YisoSzw8NCl8''@;'; + put 'put ''MCxhW09lPj4yXT1hW250Pj4yXSxhW09lKzQ+PjJdPWFbbnQrND4+Ml0sYVtPZSs4Pj4yXT1hW250Kzg+PjJdLGFbT2UrMTI+PjJdPWFbbnQrMTI+PjJdLGFbTGU+PjJdPWFbV2U+PjJdLGFbTGUrND4+Ml09YVtXZSs0Pj4yXSxhW0xlKzg+PjJdPWFbV2UrOD4+Ml0sYVtMZSsxMj4+Ml09YVtX''@;'; + put 'put ''ZSsxMj4+Ml0sYVtjdD4+Ml09YVtmcj4+Ml0sYVtjdCs0Pj4yXT1hW2ZyKzQ+PjJdLGFbY3QrOD4+Ml09YVtmcis4Pj4yXSxhW2N0KzEyPj4yXT1hW2ZyKzEyPj4yXSxhW2J0Pj4yXT1hW0VyPj4yXSxhW2J0KzQ+PjJdPWFbRXIrND4+Ml0sYVtidCs4Pj4yXT1hW0VyKzg+PjJdLGFbYnQrMTI+''@;'; + put 'put ''PjJdPWFbRXIrMTI+PjJdLENvZShSZSxPZSxMZSxjdCxidCksYVtHPj4yXT1hW1JlPj4yXSxhW0crND4+Ml09YVtSZSs0Pj4yXSxhW0crOD4+Ml09YVtSZSs4Pj4yXSxhW0crMTI+PjJdPWFbUmUrMTI+PjJdLGFbSHI+PjJdPWFbUmU+PjJdLGFbSHIrND4+Ml09YVtSZSs0Pj4yXSxhW0hyKzg+''@;'; + put 'put ''PjJdPWFbUmUrOD4+Ml0sYVtIcisxMj4+Ml09YVtSZSsxMj4+Ml0sX1trKyh3PDw0KT4+M109K19bbnQ+PjNdLStfW0E+PjNdKnBlLF9baysodzw8NCkrOD4+M109K19bRD4+M10tK19bYisodzw8NCkrOD4+M10qcGUsX1trKyhwPDw0KT4+M109K19bV2U+PjNdLStfW0hyPj4zXSpwZSxfW2sr''@;'; + put 'put ''KHA8PDQpKzg+PjNdPStfW1I+PjNdLStfW2IrKHA8PDQpKzg+PjNdKnBlLF9baysoSzw8NCk+PjNdPStfW290Pj4zXS0rX1tHPj4zXSpwZSxfW2srKEs8PDQpKzg+PjNdPStfW2M+PjNdLStfW2IrKEs8PDQpKzg+PjNdKnBlLHc9Z2UscD0wfGFbYmU+PjJdO2ZyPWIrKHc8PDQpfDAsYVtjdD4+''@;'; + put 'put ''Ml09YVtvdD4+Ml0sYVtjdCs0Pj4yXT1hW290KzQ+PjJdLGFbY3QrOD4+Ml09YVtvdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW290KzEyPj4yXSxhW2J0Pj4yXT1hW1N0Pj4yXSxhW2J0KzQ+PjJdPWFbU3QrND4+Ml0sYVtidCs4Pj4yXT1hW1N0Kzg+PjJdLGFbYnQrMTI+PjJdPWFbU3QrMTI+PjJd''@;'; + put 'put ''LE1IKHFlLGN0LGJ0KSxhW2ZyPj4yXT1hW3FlPj4yXSxhW2ZyKzQ+PjJdPWFbcWUrND4+Ml0sYVtmcis4Pj4yXT1hW3FlKzg+PjJdLGFbZnIrMTI+PjJdPWFbcWUrMTI+PjJdLF9baysodzw8NCk+PjNdPStfW1N0Pj4zXS0rX1tmcj4+M10qcGUsX1trKyh3PDw0KSs4Pj4zXT0rX1tmPj4zXS0r''@;'; + put 'put ''X1tiKyh3PDw0KSs4Pj4zXSpwZSxNPU0rMXwwfWZvcihmPTAsRz1tLHA9bSxBPW0sbT1LPTB8cmEobSk7bT0wfGw5KG0sMTA3OTg0KTspe2ZvcigoMHwoYz0wPT0oMHxmZVttPj4wXSk/MTM3MzE0Om0pKSE9KDB8QSkmJigzJmZlWzExNSsoMHxhW1p0Pj4yXSk+PjBdfHwobWEobCxjKSxobChs''@;'; + put 'put ''LGMpKSxBPWMpLGI9MD09KDB8Ziksaz1mPj4+MDwyLG09MDshKCgwfG0pPj0oMHxFdCkpOyl7Zm9yKE09MHxhW1ZlKyg0OCptfDApPj4yXSxEPTB8YVtIZSsoNDgqbXwwKT4+Ml0sUj0wfGFbVmUrKDQ4Km18MCkrND4+Ml0sdz0wOyEoKDB8dyk+PSgwfFIpKTspX1soZnI9TSsodzw8NCl8MCk+''@;'; + put 'put ''PjNdPStfW2ZyPj4zXSsgK19bRCsodzw8NCk+PjNdLF9bKGZyPU0rKHc8PDQpKzh8MCk+PjNdPStfW2ZyPj4zXSsgK19bRCsodzw8NCkrOD4+M10sdz13KzF8MDtRZihsLE0sUiwwLDAsMCksbT1tKzF8MH1mPWYrMXwwLEc9Yj9jOkcscD1rP2M6cCxtPTB9Zm9yKChtPTB8YVtIbis4Pj4yXSk/''@;'; + put 'put ''KHA/MyZmZVsxMTUrKDB8YVtadD4+Ml0pPj4wXXx8KG1hKGwscCksaGwobCxwKSk6cD0wLGZyPTB8YVtIbj4+Ml0sYVtjdD4+Ml09YVsoRXI9SG4rMTZ8MCk+PjJdLGFbY3QrND4+Ml09YVtFcis0Pj4yXSxhW2N0Kzg+PjJdPWFbRXIrOD4+Ml0sYVtjdCsxMj4+Ml09YVtFcisxMj4+Ml0sYVti''@;'; + put 'put ''dD4+Ml09YVtmcj4+Ml0sYVtidCs0Pj4yXT1hW2ZyKzQ+PjJdLGFbYnQrOD4+Ml09YVtmcis4Pj4yXSxhW2J0KzEyPj4yXT1hW2ZyKzEyPj4yXSxZZChsLDIsY3QsYnQsU24sYW4sbSksbT1wKTptPTAsMHwocD0wfGFbKEE9SG4rMTJ8MCk+PjJdKSYmKCgwfG0pIT0oMHxHKSYmMD09KDMmZmVb''@;'; + put 'put ''MTE1KygwfGFbWnQ+PjJdKT4+MF0pJiYobWEobCxHKSxobChsLEcpLHA9MHxhW0E+PjJdKSxmcj0oMHxhW0huPj4yXSkrKCgwfGFbYmU+PjJdKS0xPDw0KXwwLGFbY3Q+PjJdPWFbKEVyPUhuKzMyfDApPj4yXSxhW2N0KzQ+PjJdPWFbRXIrND4+Ml0sYVtjdCs4Pj4yXT1hW0VyKzg+PjJdLGFb''@;'; + put 'put ''Y3QrMTI+PjJdPWFbRXIrMTI+PjJdLGFbYnQ+PjJdPWFbZnI+PjJdLGFbYnQrND4+Ml09YVtmcis0Pj4yXSxhW2J0Kzg+PjJdPWFbZnIrOD4+Ml0sYVtidCsxMj4+Ml09YVtmcisxMj4+Ml0sWWQobCwzLGN0LGJ0LFNuLGFuLHApKSxGdChLKSxwPTA7ISgoMHxwKT49KDB8RXQpKTspRnQoMHxh''@;'; + put 'put ''W0hlKyg0OCpwfDApPj4yXSksRnQoMHxhW1ZlKyg0OCpwfDApPj4yXSkscD1wKzF8MDtGdChIZSksRnQoVmUpfX13aGlsZSgwKTthZT11cn1mdW5jdGlvbiB6VShsKXt2YXIgcGUsZ2UsT2UsTGUsUmUsSGUsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAs''@;'; + put 'put ''Sz0wLGJlPTAsVmU9MDtIZT1hZSxhZT1hZSs2NHwwLHBlPUhlKzQ4fDAsT2U9SGUrMzJ8MCxiZT1IZSsxNnwwLGdlPUhlLExlPTB8YVs4KyhSZT0wfGFbMTYrKGx8PTApPj4yXSk+PjJdLDA9PSgwfGFbKEs9UmUrMjA4fDApPj4yXSkmJiEoMSZydFtSZSsyNjA+PjFdKXx8KGM9Myk7ZTpkb3tp''@;'; + put 'put ''ZigzPT0oMHxjKSYmKEVoKGwpLEc9UmUrMjc2fDAsZj0wfGFbRz4+Ml0sMHxmKSlmb3IoQT1SZSsyODB8MCxjPTB8YVtBPj4yXSx3PVJlKzI2OHwwLGI9UmUrMjg0fDAsaz1SZSsyNzJ8MCxNPVJlKzIyOHwwLEQ9UmUrMjQ0fDAsUj1SZSsyMTJ8MCxwPTB8YVtjPj4yXSxtPTE7Oyl7aWYoKDB8''@;'; + put 'put ''bSk+PSgwfGYpKWJyZWFrIGU7YVt3Pj4yXT1hW2MrKG08PDIpPj4yXSxhW2s+PjJdPSgwfGFbYj4+Ml0pKyhwPDw0KSxHMShsLDB8YVtLPj4yXSwwfGFbTT4+Ml0sMHxhW0Q+PjJdLDB8YVtSPj4yXSksRWgobCkscD0oMHxhWyhWZT0wfGFbQT4+Ml0pKyhtPDwyKT4+Ml0pK3B8MCxtPW0rMXww''@;'; + put 'put ''LGY9MHxhW0c+PjJdLGM9VmV9fXdoaWxlKDApO2FbUmUrMjY4Pj4yXT0wLGFbUmUrMjcyPj4yXT0wLChmPTB8YVs4KyhjPTB8YVsoSz1MZSsxNnwwKT4+Ml0pPj4yXSk/KGM9MHxhWyhHPTB8YVtmPj4yXSk+PjJdLFZlPTB8YVtHKzg+PjJdLGFbYmU+PjJdPWFbKFI9RysxNnwwKT4+Ml0sYVti''@;'; + put 'put ''ZSs0Pj4yXT1hW1IrND4+Ml0sYVtiZSs4Pj4yXT1hW1IrOD4+Ml0sYVtiZSsxMj4+Ml09YVtSKzEyPj4yXSxhW2dlPj4yXT1hWyhHPUcrMzJ8MCk+PjJdLGFbZ2UrND4+Ml09YVtHKzQ+PjJdLGFbZ2UrOD4+Ml09YVtHKzg+PjJdLGFbZ2UrMTI+PjJdPWFbRysxMj4+Ml0sVmU/KGFbT2U+PjJd''@;'; + put 'put ''PWFbYmU+PjJdLGFbT2UrND4+Ml09YVtiZSs0Pj4yXSxhW09lKzg+PjJdPWFbYmUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtiZSsxMj4+Ml0pOihhW09lPj4yXT1hW2M+PjJdLGFbT2UrND4+Ml09YVtjKzQ+PjJdLGFbT2UrOD4+Ml09YVtjKzg+PjJdLGFbT2UrMTI+PjJdPWFbYysxMj4+Ml0pLEc9''@;'; + put 'put ''MHxydFsocD1SZSsyNjB8MCk+PjFdLFI9MHxhW1JlKzIyMD4+Ml0sYVtwZT4+Ml09YVtPZT4+Ml0sYVtwZSs0Pj4yXT1hW09lKzQ+PjJdLGFbcGUrOD4+Ml09YVtPZSs4Pj4yXSxhW3BlKzEyPj4yXT1hW09lKzEyPj4yXSxocChsLHBlLChHPDw4JjY1NTM1KTw8MTY+PjE2Pj4xNSYyNTUsUiwo''@;'; + put 'put ''Rzw8MTQmNjU1MzUpPDwxNj4+MTY+PjE1JjI1NSksYz0wfGFbKFI9MHxhWyhHPTB8YVs4KygwfGFbSz4+Ml0pPj4yXSk+PjJdKSsoNDgqKEc9KDB8YVtHKzQ+PjJdKS0xfDApfDApPj4yXSxmPTB8YVtSKyg0OCpHfDApKzQ+PjJdLFZlPTB8YVtSKyg0OCpHfDApKzEyPj4yXSxhW2JlPj4yXT1h''@;'; + put 'put ''WyhEPVIrKDQ4Kkd8MCkrMTZ8MCk+PjJdLGFbYmUrND4+Ml09YVtEKzQ+PjJdLGFbYmUrOD4+Ml09YVtEKzg+PjJdLGFbYmUrMTI+PjJdPWFbRCsxMj4+Ml0sYVtnZT4+Ml09YVsoYmU9UisoNDgqR3wwKSszMnwwKT4+Ml0sYVtnZSs0Pj4yXT1hW2JlKzQ+PjJdLGFbZ2UrOD4+Ml09YVtiZSs4''@;'; + put 'put ''Pj4yXSxhW2dlKzEyPj4yXT1hW2JlKzEyPj4yXSxWZT8oYVtPZT4+Ml09YVtnZT4+Ml0sYVtPZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbT2UrOD4+Ml09YVtnZSs4Pj4yXSxhW09lKzEyPj4yXT1hW2dlKzEyPj4yXSk6KGFbT2U+PjJdPWFbKFZlPWMrKGYrLTE8PDQpfDApPj4yXSxhW09lKzQ+PjJd''@;'; + put 'put ''PWFbVmUrND4+Ml0sYVtPZSs4Pj4yXT1hW1ZlKzg+PjJdLGFbT2UrMTI+PjJdPWFbVmUrMTI+PjJdKSxjPTB8cnRbcD4+MV0sVmU9MHxhW1JlKzIyND4+Ml0sYVtwZT4+Ml09YVtPZT4+Ml0sYVtwZSs0Pj4yXT1hW09lKzQ+PjJdLGFbcGUrOD4+Ml09YVtPZSs4Pj4yXSxhW3BlKzEyPj4yXT1h''@;'; + put 'put ''W09lKzEyPj4yXSxocChsLHBlLChjPDw3JjY1NTM1KTw8MTY+PjE2Pj4xNSYyNTUsVmUsKGM8PDEzJjY1NTM1KTw8MTY+PjE2Pj4xNSYyNTUpLGM9MHxhW0s+PjJdKTpwPVJlKzI2MHwwLFNIKGwsZj0wfGFbYys5Nj4+Ml0sMTEsbT0ocnRbcD4+MV08PDEyJjY1NTM1KTw8MTY+PjE2Pj4xNTw8''@;'; + put 'put ''MTY+PjE2LEE9MHxhWyhNPVJlKzIxNnwwKT4+Ml0sdz0wfGFbKEQ9UmUrMjMyfDApPj4yXSxiPTB8YVsoUj1SZSsyNDh8MCk+PjJdLGs9MHxhWyhHPVJlKzIxMnwwKT4+Ml0sYz0oMHxlMSgwfHYyKExlLDB8YVs0NzE4Nl0sMTM3MzA4KSkpPDwyND4+MjQ/MHxhWzgrKDB8YVtLPj4yXSk+PjJd''@;'; + put 'put ''OjApLFNIKGwsYj0wfGFbMTA4KygwfGFbSz4+Ml0pPj4yXSwxMSxrPShydFtwPj4xXTw8MTImNjU1MzUpPDwxNj4+MTY+PjE1PDwxNj4+MTYsdz0wfGFbTT4+Ml0sQT0wfGFbRD4+Ml0sZj0wfGFbUj4+Ml0sbT0wfGFbRz4+Ml0sYz0oMHxlMSgwfHYyKExlLDB8YVs0NzE4Nl0sMTM3MzA4KSkp''@;'; + put 'put ''PDwyND4+MjQ/MHxhWzgrKDB8YVtLPj4yXSk+PjJdOjApLFNIKGwsMHxhWzEwMCsoMHxhW0s+PjJdKT4+Ml0sNywocnRbcD4+MV08PDEzJjY1NTM1KTw8MTY+PjE2Pj4xNTw8MTY+PjE2LDB8YVtSZSsyMjQ+PjJdLDB8YVtSZSsyNDA+PjJdLDB8YVtSZSsyNTY+PjJdLDB8YVtHPj4yXSwwKSxT''@;'; + put 'put ''SChsLDB8YVsxMDQrKDB8YVtLPj4yXSk+PjJdLDYsKHJ0W3A+PjFdPDwxNCY2NTUzNSk8PDE2Pj4xNj4+MTU8PDE2Pj4xNiwwfGFbUmUrMjIwPj4yXSwwfGFbUmUrMjM2Pj4yXSwwfGFbUmUrMjUyPj4yXSwwfGFbRz4+Ml0sMCksZnVuY3Rpb24gbWIobCl7dmFyIGMsZj0wOzB8KGM9MHxhWzYw''@;'; + put 'put ''KyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzY4Pj4yXSkmJkNvWzEyNyZmXShsKX0obCksREMobCksYWU9SGV9ZnVuY3Rpb24gaHAobCxjLGYscCxtKXt2YXIgQSx3LGI7Y3w9MCxwfD0wLGI9YWUsYWU9YWUrMTZ8MCxBPWIsdz0wfGFbMTYrKGx8PTApPj4yXSwoZnw9MCk8PDI0Pj4yNHx8KHA9''@;'; + put 'put ''MHxhW3crMjA4Pj4yXSksKG18PTApPDwyND4+MjQ9PTAmJjA9PSgwfHApJiYwPT0oMSZydFt3KzI2MD4+MV0pfHwoYVtBPj4yXT1hW2M+PjJdLGFbQSs0Pj4yXT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFbYys4Pj4yXSxhW0ErMTI+PjJdPWFbYysxMj4+Ml0sZnVuY3Rpb24gX29lKGwsYyl7Y3w9''@;'; + put 'put ''MDt2YXIgcCxmPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtmPTB8YVsxNisobHw9MCk+PjJdLDQyNTk4NDAmKHA9MHxhW2wrMTUyPj4yXSl8MCYmKGFbZisyNjQ+PjJdPWI9KG09MTMxMDcyJnApPj4+MTZeMixhWyhrPWYrMjY4fDApPj4yXT1iKzIsRnQoMHxhWyhiPWYrMjcyfDApPj4yXSksZj0w''@;'; + put 'put ''fHZyKGFbaz4+Ml08PDQpLGFbYj4+Ml09ZixfW2Y+PjNdPSh3PStfW2M+PjNdKS0zLF9bZis4Pj4zXT0oQT0rX1tjKzg+PjNdKS0zLF9bZisxNj4+M109dyszLF9bZisyND4+M109QSszLDgxOTImcHx8TWgobCxmLGYsMiksbXx8VkkoZikpfShsLEEpKSxhZT1ifWZ1bmN0aW9uIFNIKGwsYyxm''@;'; + put 'put ''LHAsbSxBLHcsYixrKXtmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTAsYnw9MCxrfD0wO3ZhciBLLHBlLE09MCxEPTAsUj0wLEc9MDtpZihwZT1hZSxhZT1hZSsxNnwwLFI9cGUsSz0wfGFbMTUyKyhsfD0wKT4+Ml0sMHwoY3w9MCkmJjB8ZmVbYys4MT4+MF0pe2lmKGIpe3N3aXRjaChEPTB8dnIo''@;'; + put 'put ''MTErKDB8VW8oYikpfDApLDB8Zil7Y2FzZSAxMTpNPTEwODIyNDticmVhaztjYXNlIDc6TT0xMDE1ODM7YnJlYWs7Y2FzZSA2Ok09MTAxNTkzO2JyZWFrO2RlZmF1bHQ6UHIoMTM4Mzk0LDk5OTA2LDI3MzAsMTAwMDQ0KX1hW1I+PjJdPWIsYVtSKzQ+PjJdPU0sb28oRCwxMDAwNjAsUil9ZWxz''@;'; + put 'put ''ZSBEPTA7Rz0wfGFbKGI9MTIrKDB8YVsoUj1sKzE2fDApPj4yXSl8MCk+PjJdLGFbYj4+Ml09ZiwoYj0wIT0oMHxwKXwwIT0oMHxtKSkmKE09MD09KDQmS3wwKSkmJihHVShsLGMpLEcxKGwsbSxBLHcsRCkpLGI3KGwsZixjKSwwfGsmJmZ1bmN0aW9uIGJvZShsLGMsZil7bHw9MCxmfD0wO3Zh''@;'; + put 'put ''ciBtLEEsdyxiLEQscD0wLGs9MCxNPTAsUj0wO2ZvcihEPWFlLGFlPWFlKzk2fDAsbT1EKzgwfDAsQT1EKzMyfDAsdz1EKzE2fDAsYj1ELHA9MHxhWyhjfD0wKT4+Ml07KGs9MHxmZVtwPj4wXSk8PDI0Pj4yNDspe2lmKCEoMHwkYygyNTUmaykpKXtNPTQ7YnJlYWt9cD1wKzF8MH00PT0oMHxN''@;'; + put 'put ''KSYmKFdVKEEsK19bKGs9Yys1NnwwKT4+M10rLjUqKFI9K19bYysyND4+M10pLCtfW2MrNjQ+PjNdLS41KitfW2MrMzI+PjNdKSxNPUErMTZ8MCxXVSh3LCtfW0E+PjNdLVIsK19bQSs4Pj4zXSksYVtNPj4yXT1hW3c+PjJdLGFbTSs0Pj4yXT1hW3crND4+Ml0sYVtNKzg+PjJdPWFbdys4Pj4y''@;'; + put 'put ''XSxhW00rMTI+PjJdPWFbdysxMj4+Ml0sTT1BKzMyfDAsYVttPj4yXT1hW2s+PjJdLGFbbSs0Pj4yXT1hW2srND4+Ml0sYVttKzg+PjJdPWFbays4Pj4yXSxhW20rMTI+PjJdPWFbaysxMj4+Ml0sbEQoYixmLG0pLGFbTT4+Ml09YVtiPj4yXSxhW00rND4+Ml09YVtiKzQ+PjJdLGFbTSs4Pj4y''@;'; + put 'put ''XT1hW2IrOD4+Ml0sYVtNKzEyPj4yXT1hW2IrMTI+PjJdLGQyKGwsMHxhWzMzNisoMHxhW2w+PjJdKT4+Ml0pLG1hKGwsMHxhW2MrOD4+Ml0pLFdvKGwsQSwzKSksYWU9RH0obCxjLGspLGImJihNfHwoR1UobCxjKSxHMShsLG0sQSx3LEQpKSxFaChsKSksRnQoRCksYVsxMisoMHxhW1I+PjJd''@;'; + put 'put ''KT4+Ml09R31hZT1wZX1mdW5jdGlvbiBHVShsLGMpe2N8PTA7dmFyIHAsZj0wLG09MCxBPTAsdz0wLGI9MDtmPTB8YVsxNisobHw9MCk+PjJdLDQyNTk4NDAmKHA9MHxhW2wrMTUyPj4yXSl8MCYmKGFbZisyNjQ+PjJdPXc9KG09MTMxMDcyJnApPj4+MTZeMixhWyhiPWYrMjY4fDApPj4yXT13''@;'; + put 'put ''KzIsRnQoMHxhWyh3PWYrMjcyfDApPj4yXSksZj0wfHZyKGFbYj4+Ml08PDQpLGFbdz4+Ml09ZixfW2Y+PjNdPStfWyh3PWMrNTZ8MCk+PjNdLS41KitfWyhiPWMrMjR8MCk+PjNdLF9bZis4Pj4zXT0rX1soQT1jKzY0fDApPj4zXS0uNSorX1soYz1jKzMyfDApPj4zXSxfW2YrMTY+PjNdPS41''@;'; + put 'put ''KitfW2I+PjNdKyArX1t3Pj4zXSxfW2YrMjQ+PjNdPS41KitfW2M+PjNdKyArX1tBPj4zXSw4MTkyJnB8fE1oKGwsZixmLDIpLG18fFZJKGYpKX1mdW5jdGlvbiBXVShsLGMsZil7Zj0rZixfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiBZVShsLGMsZixwLG0sQSx3KXts''@;'; + put 'put ''fD0wLGN8PTAsZnw9MCxBPStBLHc9K3c7dmFyIG90LFN0LGt0LGx0LEV0LFp0LGJ0LGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsY3Q9MDtpZihidD1hZSxhZT1hZSsyNTZ8MCxTdD1idCsy''@;'; + put 'put ''MjR8MCxvdD1idCsyMDh8MCxiPWJ0KzE5MnwwLGx0PWJ0KzE0NHwwLEV0PWJ0Kzk2fDAsWnQ9YnQrNDh8MCxrdD1idCwoMHwocD0wfHM3KHB8PTAsbXw9MCxrPWJ0KzI0MHwwKSkpPjE/KHFlPWMrNDh8MCxudD0wfGNyKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOnFlKSs0MD4+Ml0pLHFlPTB8''@;'; + put 'put ''dGkoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6cWUpKzQwPj4yXSksbnQ9MCE9KDB8U2MobnQpKSxXZT0wfHRpKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSksYVtiPj4yXT1xZSxhW2IrND4+Ml09bnQ/MTAwMDc5OjEwMDA4NCxhW2IrOD4+Ml09V2UsJHIoMywxMDAw''@;'; + put 'put ''ODksYiksMj09KDB8cCk/cD0xOmN0PTQpOjE9PSgwfHApP3A9MTpjdD00LDQ9PSgwfGN0KSl7Zm9yKFdlPWMrMTZ8MCxnZT04KyhwZT0wfGFbaz4+Ml0pfDAsYmU9WnQrNHwwLE9lPWx0Kzh8MCxMZT1sdCsxMnwwLFJlPTAhPSgwfGYpLEs9MD09KDB8ZiksSGU9bHQrMzJ8MCxWZT1sdCs0fDAs''@;'; + put 'put ''cWU9bHQrMTZ8MCxudD1rdCs0fDAscD0wLEc9MDshKCgwfEcpPj0oMHxhWzQrKG09MHxhWzgrKDB8YVtXZT4+Ml0pPj4yXSk+PjJdKSk7KXttPSgwfGFbbT4+Ml0pKyg0OCpHfDApfDAsYz0oYj1sdCkrNDh8MDtkb3thW2I+PjJdPWFbbT4+Ml0sYj1iKzR8MCxtPW0rNHwwfXdoaWxlKCgwfGIp''@;'; + put 'put ''PCgwfGMpKTtjPTEsTT0xLFI9MHxhW2dlPj4yXTtlOmZvcig7bT0wfGFbUj4+Ml0sbTspe0Q9K2puWyhrPVIrNHwwKT4+Ml07ZG97aWYoRDwxZS01JkQ+LTFlLTUpbT1jO2Vsc2V7aWYobWEobCxtKSxNLT1EPStqbltrPj4yXSxwPTB8YVtSPj4yXSwwfGMpe2lmKHB5KGx0LEQsWnQsa3QpLFFm''@;'; + put 'put ''KGwsaz0wfGFbWnQ+PjJdLDB8YVtiZT4+Ml0sMCwwLDApLEZ0KGspLE08MWUtNSZNPi0xZS01KXtjdD0xMTticmVhayBlfW09MDticmVha31pZihNPDFlLTUmTT4tMWUtNSl7Y3Q9MTM7YnJlYWsgZX1tPWt0LGM9KGI9RXQpKzQ4fDA7ZG97YVtiPj4yXT1hW20+PjJdLGI9Yis0fDAsbT1tKzR8''@;'; + put 'put ''MH13aGlsZSgoMHxiKTwoMHxjKSk7cHkoRXQsKEQ9K2puW2s+PjJdKS8oTStEKSxadCxrdCksRnQoMHxhW0V0Pj4yXSksUWYobCxtPTB8YVtadD4+Ml0sMHxhW2JlPj4yXSwwLDAsMCksRnQobSksbT0wfX13aGlsZSgwKTtjPW0sUj1SKzEyfDB9MTE9PSgwfGN0KT8oY3Q9MCxGdCgwfGFba3Q+''@;'; + put 'put ''PjJdKSk6MTM9PSgwfGN0KSYmKGN0PTAsUWYobCxSPTB8YVtrdD4+Ml0sMHxhW250Pj4yXSwwLDAsMCksRnQoUikpLDB8YVtPZT4+Ml0mJihtYShsLDB8YVthW2dlPj4yXT4+Ml0pLGhsKGwsMHxhW2FbZ2U+PjJdPj4yXSksaz0wfGFbbHQ+PjJdLFI9MHxhW09lPj4yXSxhW290Pj4yXT1hW3Fl''@;'; + put 'put ''Pj4yXSxhW290KzQ+PjJdPWFbcWUrND4+Ml0sYVtvdCs4Pj4yXT1hW3FlKzg+PjJdLGFbb3QrMTI+PjJdPWFbcWUrMTI+PjJdLGFbU3Q+PjJdPWFbaz4+Ml0sYVtTdCs0Pj4yXT1hW2srND4+Ml0sYVtTdCs4Pj4yXT1hW2srOD4+Ml0sYVtTdCsxMj4+Ml09YVtrKzEyPj4yXSxZZChsLDIsb3Qs''@;'; + put 'put ''U3QsQSx3LFIpKSwwfGFbTGU+PjJdJiYobWEobCxwKSxobChsLHApLGs9KDB8YVtsdD4+Ml0pKygoMHxhW1ZlPj4yXSktMTw8NCl8MCxSPTB8YVtMZT4+Ml0sYVtvdD4+Ml09YVtIZT4+Ml0sYVtvdCs0Pj4yXT1hW0hlKzQ+PjJdLGFbb3QrOD4+Ml09YVtIZSs4Pj4yXSxhW290KzEyPj4yXT1h''@;'; + put 'put ''W0hlKzEyPj4yXSxhW1N0Pj4yXT1hW2s+PjJdLGFbU3QrND4+Ml09YVtrKzQ+PjJdLGFbU3QrOD4+Ml09YVtrKzg+PjJdLGFbU3QrMTI+PjJdPWFbaysxMj4+Ml0sWWQobCwzLG90LFN0LEEsdyxSKSk7ZG97aWYoKDB8YVs0KygwfGFbOCsoMHxhW1dlPj4yXSk+PjJdKT4+Ml0pPjEpe2lmKDB8''@;'; + put 'put ''YVtPZT4+Ml0pe2lmKEspYnJlYWt9ZWxzZSBpZighKFJlJjAhPSgwfGFbTGU+PjJdKSkpYnJlYWs7ZDIobCxmKX19d2hpbGUoMCk7Rz1HKzF8MH1GQShwZSkscD0wfXJldHVybiBhZT1idCwwfHB9ZnVuY3Rpb24gT0kobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTA7Zj0xO2U6Zm9yKDs7KXtz''@;'; + put 'put ''d2l0Y2goMHxmZVtsPj4wXSl7Y2FzZSAwOmJyZWFrIGU7Y2FzZSA1ODpmPWYrMXwwfWw9bCsxfDB9Zm9yKGw9MTArKHA9MHxBcigxKygwfFVvKGMpKXwwLGYpKXwwLCgwfGFbNDcxMjFdKTwoMHxwKT8oYVs0NzEyMV09bCxsPTB8VWEoMHxhWzQ3MTIyXSxsKSxhWzQ3MTIyXT1sKTpsPTB8YVs0''@;'; + put 'put ''NzEyMl0saWQobCxjKTtsPTB8YVs0NzEyMl0sZj1mKy0xfDA7KXA9bCsoMHxVbyhsKSl8MCxmZVtwPj4wXT01OCxmZVtwKzE+PjBdPTAsczkobCxjKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIFE1KGwpe2x8PTA7dmFyIGM9MCxmPTA7Yz0wfGFbNDcxODRdO2U6ZG97aWYoYylzd2l0Y2goYz0wfEhv''@;'; + put 'put ''KGwsYyksMHxmZVtjPj4wXSl7Y2FzZSAxMTA6aWYoMHxqaShjLDEzNTcwOSkpe2Y9NzticmVhayBlfWM9MTticmVhayBlO2Nhc2UgMTAyOmlmKDB8amkoYywxMDAwNjYpKXtmPTc7YnJlYWsgZX1jPTI7YnJlYWsgZTtjYXNlIDk4OmlmKCEoMHxqaShjLDEwMDA3NCkpKXtjPTM7YnJlYWsgZX1p''@;'; + put 'put ''ZigwfGppKGMsMTExMjIxKSl7Zj03O2JyZWFrIGV9Yz00O2JyZWFrIGU7ZGVmYXVsdDpmPTc7YnJlYWsgZX1lbHNlIGY9N313aGlsZSgwKTtyZXR1cm4gNz09KDB8ZikmJihjPShjPTAhPSgwfFNjKDB8Y3IoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKSkpKT8yOjEp''@;'; + put 'put ''LDB8Y31mdW5jdGlvbiBhOWUobCl7MHwobHw9MCkmJihGdCgwfGFbbCs4Pj4yXSksRnQobCkpfWZ1bmN0aW9uIE1IKGwsYyxmKXt2YXIgcCxtLEE7bHw9MCxwPTIvK0QwKCsoKG09K19bKGN8PTApPj4zXS0rX1soZnw9MCk+PjNdKSptKzFlLTQrKEE9K19bYys4Pj4zXS0rX1tmKzg+PjNdKSpB''@;'; + put 'put ''KSksX1tsPj4zXT1wKkEsX1tsKzg+PjNdPS1tKnB9ZnVuY3Rpb24gQ29lKGwsYyxmLHAsbSl7bHw9MCxjfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wLGs9MDsoQT0rRDAoKygoYj0rX1s4KyhmfD0wKT4+M10tK19bOCsocHw9MCk+PjNdKSpiKyh3PStfW2Y+PjNdLStfW3A+PjNdKSp3KSkpPDFl''@;'; + put 'put ''LTQmJihiPUE9K19bYys4Pj4zXS0rX1ttKzg+PjNdLHc9az0rX1tjPj4zXS0rX1ttPj4zXSxBPStEMCgrKGsqaysxZS00K0EqQSkpKSxfW2w+PjNdPWIqKGs9Mi9BKSxfW2wrOD4+M109LWsqd31mdW5jdGlvbiBweShsLGMsZixwKXtjPStjLGZ8PTAscHw9MDt2YXIgUixHLG09MCxBPTAsdz0w''@;'; + put 'put ''LGI9MCxrPTAsTT0wLEQ9MCxLPTAscGU9MCxnZT0wO2lmKEc9YWUsYWU9YWUrMTZ8MCxSPUcsYj0oKEQ9MHxhWzQrKGx8PTApPj4yXSktMXwwKS8zfDAsKEQrLTR8MCk+Pj4wPDMpYVtmKzQ+PjJdPTQsYVtmPj4yXT0wfHZyKDY0KSxhW3ArND4+Ml09NCxEPTB8dnIoNjQpLGFbcD4+Ml09RCx3''@;'; + put 'put ''dShSLDB8YVtsPj4yXSwzLGMsMHxhW2Y+PjJdLEQpO2Vsc2V7Zm9yKEQ9MHx2cihiPDwzKSxBPTAsdz0wfGFbbD4+Ml0sbT0wOyEoKDB8QSk+PSgwfGIpKTspSz0rdnUodyksX1tEKyhBPDwzKT4+M109SyxBPUErMXwwLHc9dys0OHwwLG09SyttO2ZvcihjKj1tLE09MCxtPTA7ISgoMHxiKTw9''@;'; + put 'put ''KDB8TSl8fChtPStfW0QrKE08PDMpPj4zXSttLG0+PWMpKTspTT1NKzF8MDtmb3IoYVsodz1mKzR8MCk+PjJdPUE9NCsoaz0zKk18MCl8MCxhW2Y+PjJdPTB8dnIoQTw8NCksQT0xKygzKihiLU18MCl8MCl8MCxhWyhiPXArNHwwKT4+Ml09QSxhW3A+PjJdPTB8dnIoQTw8NCksQT0wOyEoKDB8''@;'; + put 'put ''QSk+PSgwfGFbdz4+Ml0pKTspYVsocGU9KDB8YVtmPj4yXSkrKEE8PDQpfDApPj4yXT1hWyhnZT0oMHxhW2w+PjJdKSsoQTw8NCl8MCk+PjJdLGFbcGUrND4+Ml09YVtnZSs0Pj4yXSxhW3BlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtwZSsxMj4+Ml09YVtnZSsxMj4+Ml0sQT1BKzF8MDtmb3IoQT1B''@;'; + put 'put ''Ky00fDAsdz0wOyEoKDB8dyk+PSgwfGFbYj4+Ml0pKTspYVsoZ2U9KDB8YVtwPj4yXSkrKHc8PDQpfDApPj4yXT1hWyhwZT0oMHxhW2w+PjJdKSsoQTw8NCl8MCk+PjJdLGFbZ2UrND4+Ml09YVtwZSs0Pj4yXSxhW2dlKzg+PjJdPWFbcGUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtwZSsxMj4+Ml0s''@;'; + put 'put ''QT1BKzF8MCx3PXcrMXwwO3d1KFIsKDB8YVtsPj4yXSkrKGs8PDQpfDAsMywoYy1tKyhLPStfW0QrKE08PDMpPj4zXSkpL0ssKDB8YVtmPj4yXSkrKGs8PDQpfDAsMHxhW3A+PjJdKSxGdChEKX1hZT1HfWZ1bmN0aW9uIHZ1KGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO3JldHVybiBwPStE''@;'; + put 'put ''MCgrKChjPStfWzgrKGx8PTApPj4zXS0oQT0rX1tsKzI0Pj4zXSkpKmMrKHA9K19bbD4+M10tKG09K19bbCsxNj4+M10pKSpwKSksKygocD0rRDAoKygoQS09Zj0rX1tsKzQwPj4zXSkqQSsobS09Yz0rX1tsKzMyPj4zXSkqbSkpK3ApKyArRDAoKygoZi09K19bbCs1Nj4+M10pKmYrKGMtPStf''@;'; + put 'put ''W2wrNDg+PjNdKSpjKSkpfWZ1bmN0aW9uIEE3KGwsYyl7cmV0dXJuIGx8PTAsYz0wfGRpKGN8PTApLDB8ZnVuY3Rpb24gJFUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7Yz1sfD0wLG09bDtlOmZvcig7Oyl7Zm9yKHA9MDs7KXtpZihmPWMsYz1jKzF8MCwhKChmPTB8ZmVbZj4+MF0pPDwy''@;'; + put 'put ''ND4+MjQpKWJyZWFrIGU7aWYocDw8MjQ+PjI0KXtBPTU7YnJlYWt9aWYoZjw8MjQ+PjI0IT05MilicmVhaztwPTF9dDpkb3tpZig1PT0oMHxBKSlzd2l0Y2goQT0wLGY8PDI0Pj4yNHwwKXtjYXNlIDExNDpmPTEzO2JyZWFrIHQ7Y2FzZSAxMDg6Y2FzZSAxMTA6Zj0xMDticmVhayB0O2RlZmF1''@;'; + put 'put ''bHQ6YnJlYWsgdH19d2hpbGUoMCk7ZmVbbT4+MF09ZixtPW0rMXwwfXJldHVybiBmZVttPj4wXT0wLDB8bH0oYz0xPT0oMHxmZVsxMTUrKDB8YVtjKzE2Pj4yXSk+PjBdKT8wfHZrKGwpOjB8U04obCxjKSl9ZnVuY3Rpb24gRUgobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG09K207''@;'; + put 'put ''dmFyIEQsUixHLEsscGUsQT0wLHc9MCxiPTAsaz0wLE09MCxnZT0wLGJlPTA7Zm9yKHBlPWFlLGFlPWFlKzE2NjR8MCxEPXBlKzE2MDB8MCxSPXBlKzgwMHwwLEc9cGUsSz0wfFFuKDI0KSxhW0srMTY+PjJdPTEsaz0oKDB8YVtwKzQ+PjJdKS0xfDApLzN8MCx3PTAsYj1LOyEoKDB8dyk+PSgw''@;'; + put 'put ''fGspKTspe2ZvcihNPTMqd3wwLEE9MDs0IT0oMHxBKTspYVsoZ2U9RCsoQTw8NCl8MCk+PjJdPWFbKGJlPSgwfGFbcD4+Ml0pKyhBK008PDQpfDApPj4yXSxhW2dlKzQ+PjJdPWFbYmUrND4+Ml0sYVtnZSs4Pj4yXT1hW2JlKzg+PjJdLGFbZ2UrMTI+PjJdPWFbYmUrMTI+PjJdLEE9QSsxfDA7''@;'; + put 'put ''dz13KzF8MCxiPTB8Z3koRCxiKX1mb3IoQT0wLHc9MCxiPUs7Oyl7aWYoIWIpe3c9SyxBPUs7YnJlYWt9WFUodyxiLGs9MHxhW2IrMTY+PjJdLE09UisoQTw8NCl8MCxwPUcrKEE8PDQpfDAsbSksNTA9PSgwfChBPUErMXwwKSl8MD09KDB8ayk/KHhIKGwsYyxmLEEsUixHKSxhW1I+PjJdPWFb''@;'; + put 'put ''TT4+Ml0sYVtSKzQ+PjJdPWFbTSs0Pj4yXSxhW1IrOD4+Ml09YVtNKzg+PjJdLGFbUisxMj4+Ml09YVtNKzEyPj4yXSxhW0c+PjJdPWFbcD4+Ml0sYVtHKzQ+PjJdPWFbcCs0Pj4yXSxhW0crOD4+Ml09YVtwKzg+PjJdLGFbRysxMj4+Ml09YVtwKzEyPj4yXSx3PWIsQT0xLGI9ayk6KHc9Yixi''@;'; + put 'put ''PWspfWZvcig7dzspYmU9MHxhW3crMTY+PjJdLEZ0KEEpLHc9YmUsQT1iZTthZT1wZX1mdW5jdGlvbiBneShsLGMpe2N8PTA7dmFyIHAsbSxBLGY9MDtyZXR1cm4gQT1hZSxhZT1hZSsxNDR8MCxtPUErMTI4fDAsZj1BKzY0fDAscD1BLDB8T0MobHw9MCk/KDE9PSgwfGFbKGY9YysxNnwwKT4+''@;'; + put 'put ''Ml0pJiYoYVtmPj4yXT0wLGFbYz4+Ml09YVtsPj4yXSxhW2MrND4+Ml09YVtsKzQ+PjJdLGFbYys4Pj4yXT1hW2wrOD4+Ml0sYVtjKzEyPj4yXT1hW2wrMTI+PjJdKSxhW20+PjJdPWFbKGY9bCs0OHwwKT4+Ml0sYVttKzQ+PjJdPWFbZis0Pj4yXSxhW20rOD4+Ml09YVtmKzg+PjJdLGFbbSsx''@;'; + put 'put ''Mj4+Ml09YVtmKzEyPj4yXSxmPTB8ZnVuY3Rpb24gS1UobCxjKXtsfD0wLGN8PTA7dmFyIGY7cmV0dXJuIGY9MHxRbigyNCksYVtmKzE2Pj4yXT0wLGFbZj4+Ml09YVtsPj4yXSxhW2YrND4+Ml09YVtsKzQ+PjJdLGFbZis4Pj4yXT1hW2wrOD4+Ml0sYVtmKzEyPj4yXT1hW2wrMTI+PjJdLGFb''@;'; + put 'put ''YysxNj4+Ml09ZiwwfGZ9KG0sYykpOih3dShtLGwsMywuNSxmLHApLGY9MHxneShwLDB8Z3koZixjKSkpLGFlPUEsMHxmfWZ1bmN0aW9uIFhVKGwsYyxmLHAsbSxBKXtsfD0wLGZ8PTAscHw9MCxtfD0wLEE9K0E7dmFyIGssTSxELFIsRyxLLHBlLGdlLGJlLHc9MCxiPTA7cGU9YWUsYWU9YWUr''@;'; + put 'put ''OTZ8MCxEPXBlKzgwfDAsTT1wZSs2NHwwLGs9cGUrNDh8MCxHPXBlKzE2fDAsSz1wZSxhWyhSPXBlKzMyfDApPj4yXT1hWyhjfD0wKT4+Ml0sYVtSKzQ+PjJdPWFbYys0Pj4yXSxhW1IrOD4+Ml09YVtjKzg+PjJdLGFbUisxMj4+Ml09YVtjKzEyPj4yXTtkb3tpZihsKXtpZihhW0c+PjJdPWFb''@;'; + put 'put ''bD4+Ml0sYVtHKzQ+PjJdPWFbbCs0Pj4yXSxhW0crOD4+Ml09YVtsKzg+PjJdLGFbRysxMj4+Ml09YVtsKzEyPj4yXSxmKXthW0s+PjJdPWFbZj4+Ml0sYVtLKzQ+PjJdPWFbZis0Pj4yXSxhW0srOD4+Ml09YVtmKzg+PjJdLGFbSysxMj4+Ml09YVtmKzEyPj4yXSx3PStfW1I+PjNdLGI9K19b''@;'; + put 'put ''Uis4Pj4zXTticmVha31fW0s+PjNdPTIqKHc9K19bUj4+M10pLStfW0c+PjNdLF9bSys4Pj4zXT0yKihiPStfW1IrOD4+M10pLStfW0crOD4+M107YnJlYWt9YVtLPj4yXT1hW2Y+PjJdLGFbSys0Pj4yXT1hW2YrND4+Ml0sYVtLKzg+PjJdPWFbZis4Pj4yXSxhW0srMTI+PjJdPWFbZisxMj4+''@;'; + put 'put ''Ml0sX1tHPj4zXT0yKih3PStfW1I+PjNdKS0rX1tLPj4zXSxfW0crOD4+M109MiooYj0rX1tSKzg+PjNdKS0rX1tLKzg+PjNdfXdoaWxlKDApO2Fbaz4+Ml09YVtHPj4yXSxhW2srND4+Ml09YVtHKzQ+PjJdLGFbays4Pj4yXT1hW0crOD4+Ml0sYVtrKzEyPj4yXT1hW0crMTI+PjJdLGFbTT4+''@;'; + put 'put ''Ml09YVtSPj4yXSxhW00rND4+Ml09YVtSKzQ+PjJdLGFbTSs4Pj4yXT1hW1IrOD4+Ml0sYVtNKzEyPj4yXT1hW1IrMTI+PjJdLGFbRD4+Ml09YVtLPj4yXSxhW0QrND4+Ml09YVtLKzQ+PjJdLGFbRCs4Pj4yXT1hW0srOD4+Ml0sYVtEKzEyPj4yXT1hW0srMTI+PjJdLGJlPStmdW5jdGlvbiBU''@;'; + put 'put ''SChsLGMsZil7bHw9MDt2YXIgQSxwPTAsbT0wO3JldHVybiBtPStVbCgrKCtfWzgrKGZ8PTApPj4zXS0oQT0rX1s4KyhjfD0wKT4+M10pKSwrKCtfW2Y+PjNdLShwPStfW2M+PjNdKSkpLCsoLjUqKChtLT1wPStVbCgrKCtfW2wrOD4+M10tQSksKygrX1tsPj4zXS1wKSkpPjA/bSstNi4yODMx''@;'; + put 'put ''ODUzMDcxNzk1ODY6bSkrcCl9KGssTSxEKSxnZT0raGEoK2JlKSpBLEE9K0RhKCtiZSkqQSxfW3A+PjNdPXcrZ2UsX1twKzg+PjNdPWIrQSxfW20+PjNdPXctZ2UsX1ttKzg+PjNdPWItQSxhZT1wZX1mdW5jdGlvbiB4SChsLGMsZixwLG0sQSl7bHw9MCxjfD0wLG18PTAsQXw9MDt2YXIgYix3''@;'; + put 'put ''PTAsaz0wLE09MCxEPTA7Zm9yKGI9KHB8PTApPDwxLGs9MHxhWyhmfD0wKT4+Ml0sdz0wLE09MDshKCgwfHcpPj0oMHxrKSk7KUQ9KDB8YVsoMHxhW2M+PjJdKSsodzw8Mik+PjJdKStNfDAsdz13KzF8MCxNPUQ7Zm9yKGFbZj4+Ml09RD1rKzF8MCxEPTB8VjAoMHxhW2M+PjJdLEQ8PDIpLGFb''@;'; + put 'put ''Yz4+Ml09RCxhW0QrKHc8PDIpPj4yXT1iLGFbbD4+Ml09MHxWMCgwfGFbbD4+Ml0sTStiPDw0KSxjPWIrLTErTXwwLHc9MDshKCgwfHcpPj0oMHxwKSk7KWFbKEQ9KDB8YVtsPj4yXSkrKHcrTTw8NCl8MCk+PjJdPWFbKGs9bSsodzw8NCl8MCk+PjJdLGFbRCs0Pj4yXT1hW2srND4+Ml0sYVtE''@;'; + put 'put ''Kzg+PjJdPWFbays4Pj4yXSxhW0QrMTI+PjJdPWFbaysxMj4+Ml0sYVsoRD0oMHxhW2w+PjJdKSsoYy13PDw0KXwwKT4+Ml09YVsoaz1BKyh3PDw0KXwwKT4+Ml0sYVtEKzQ+PjJdPWFbays0Pj4yXSxhW0QrOD4+Ml09YVtrKzg+PjJdLGFbRCsxMj4+Ml09YVtrKzEyPj4yXSx3PXcrMXwwfWZ1''@;'; + put 'put ''bmN0aW9uIFNvZShsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGY9MHxhWyhsfD0wKT4+Ml07Oyl7aWYoISgobT0wfGZlW2Y+PjBdKTw8MjQ+PjI0KSl7cD0wO2JyZWFrfWlmKCEobTw8MjQ+PjI0PT00NHwwIT0oMHwkYyhwPW08PDI0Pj4yNCkpKSl7QT01O2JyZWFrfWY9''@;'; + put 'put ''ZisxfDB9ZTpkb3tpZig1PT0oMHxBKSl7c3dpdGNoKDB8cCl7Y2FzZSAwOnA9MDticmVhayBlO2Nhc2UgNDE6Y2FzZSA0MDpmPWYrMXwwO2JyZWFrIGV9Zm9yKEE9Yys0fDAsdz1jKzh8MDs7KXtpZigoMHxsOWUobTw8MjQ+PjI0KSk8PDI0Pj4yNCl7cD0xO2JyZWFrIGV9KHA9MHxhW0E+PjJd''@;'; + put 'put ''KT4+PjA+PSgwfGFbdz4+Ml0pPj4+MCYmKFEwKGMsMSkscD0wfGFbQT4+Ml0pLGFbQT4+Ml09cCsxLGZlW3A+PjBdPW0sZj1wPWYrMXwwLG09MHxmZVtwPj4wXX19fXdoaWxlKDApO3JldHVybiBhW2w+PjJdPWYsMHxwfWZ1bmN0aW9uIGw5ZShsKXtzd2l0Y2goMHwobHw9MCkpe2Nhc2UgMDpj''@;'; + put 'put ''YXNlIDQ0OmNhc2UgNDE6Y2FzZSA0MDpsPTE7YnJlYWs7ZGVmYXVsdDpsPTB9cmV0dXJuIDB8bH1mdW5jdGlvbiBSSShsLGMpe3JldHVybiAwfE1vZSgwfGFbKGx8PTApPj4yXSwwfGFbbCsxNjA+PjJdLDB8YVtsKzE1Nj4+Ml0sY3w9MCl9ZnVuY3Rpb24gTW9lKGwsYyxmLHApe2x8PTAsY3w9''@;'; + put 'put ''MCxmfD0wLHB8PTA7dmFyIHcsYixrLE0sRCxSLG09MCxBPTA7Uj1hZSxhZT1hZSsxNjB8MCxNPVIrMTZ8MCxEPVIsYVsoaz1SKzIwfDApPj4yXT0wLGFbTT4+Ml09MCx1cyhELDEyOCxSKzI0fDApLHVvKEQscCksKHA9MHxhWyhtPUQrNHwwKT4+Ml0pPj4+MD49KDB8YVtEKzg+PjJdKT4+PjAm''@;'; + put 'put ''JihRMChELDEpLHA9MHxhW20+PjJdKSxmZVtwPj4wXT0wLGFbbT4+Ml09QT0wfGFbRD4+Ml0sdz1sKzMwMHwwLGI9bCsyOTZ8MCxwPTAsbT1BO2U6Zm9yKDs7KXtpZihwKXtwPTE7YnJlYWt9aWYoIShwPTB8a2oobSwwfGFbdz4+Ml0saykpKXtwPTA7YnJlYWt9c3dpdGNoKCgwIT0oMHwocD0o''@;'; + put 'put ''QT0wIT0oMHwobT0wfGtqKHAsMHxhW2I+PjJdLE0pKSkpPzB8a2ooMCwwfGFbYj4+Ml0sTSk6MCkpJjEpKygxJkEpJjMpe2Nhc2UgMjptPTB8cVUobCxtLDApLHA9KChwPTB8cVUobCxwLGYpKSZtfDApPi0xJigwfCgoQT0oMHxtKT4oMHxwKSk/bTpwKSk+PSgwfGMpJigwfChBP3A6bSkpPD0o''@;'; + put 'put ''MHxjKSxtPTA7Y29udGludWUgZTtjYXNlIDE6cD0oMHxxVShsLG0sYykpPT0oMHxjKSxtPTA7Y29udGludWUgZTtkZWZhdWx0OnA9MCxtPTA7Y29udGludWUgZX19cmV0dXJuIEMyKEQpLGFlPVIsMHxwfWZ1bmN0aW9uIHFVKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIEEscD0wLG09MDsoQT0wfGZl''@;'; + put 'put ''WyhjfD0wKT4+MF0pPDwyND4+MjQ9PTk3JiYwPT0oMHxqaShjLDEwMDM5NikpfHwocD0zKTtlOmRve2lmKDM9PSgwfHApKXtpZigoMHxzOWUoYykpPDwyND4+MjQpe2Y9MHxyMyhjKTticmVha31pZihtPTB8YVtsKzMwOD4+Ml0pZm9yKGw9MHxhW2wrMzEyPj4yXSxmPTE7Oyl7aWYoKDB8Zik+''@;'; + put 'put ''KDB8bCkpe2Y9LTE7YnJlYWsgZX1pZihBPDwyND4+MjQ9PSgwfGZlWyhwPTB8YVttKyhmPDwyKT4+Ml0pPj4wXSkmJjA9PSgwfGppKGMscCkpKWJyZWFrIGU7Zj1mKzF8MH1lbHNlIGY9LTF9fXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gczllKGwpe2x8PTA7Zm9yKHZhciBjPTA7Oyl7''@;'; + put 'put ''aWYoISgoYz0wfGZlW2w+PjBdKTw8MjQ+PjI0KSl7bD0xO2JyZWFrfWlmKCEoKCgyNTUmYyktNDh8MCk+Pj4wPDEwKSl7bD0wO2JyZWFrfWw9bCsxfDB9cmV0dXJuIDB8bH1mdW5jdGlvbiBteShsLGMpe3JldHVybiAwfCgrX1sxNisobHw9MCk+PjNdPj0rX1soY3w9MCk+PjNdJiYrX1tjKzE2''@;'; + put 'put ''Pj4zXT49K19bbD4+M10mJitfW2wrMjQ+PjNdPj0rX1tjKzg+PjNdPytfW2MrMjQ+PjNdPj0rX1tsKzg+PjNdJjE6MCl9ZnVuY3Rpb24gRW9lKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MDtlOmRve2lmKCgwfGFbbCsxNTY+PjJdKT49MiYmKHA9MHx2MihmLDB8YVs0NzE2N10s''@;'; + put 'put ''MTk1MDU5KSwoMHxSSShsLHApKTw8MjQ+PjI0PT0wKSlpZigwfGZlW3A+PjBdKXA9MDtlbHNlIGlmKDB8U3MoYyxmKSlmb3IocD0wfFNzKGMsZik7Oyl7aWYoIXApe3A9MDticmVhayBlfWlmKG09MHx2MihwLDB8YVs0NzE5MF0sMTk1MDU5KSwhKDB8ZmVbbT4+MF0pKXtwPTE7YnJlYWsgZX1p''@;'; + put 'put ''ZigoMHxSSShsLG0pKTw8MjQ+PjI0KXtwPTE7YnJlYWsgZX1wPTB8SHMoYyxwLGYpfWVsc2UgcD0xO2Vsc2UgcD0xfXdoaWxlKDApO3JldHVybiAwfHB9ZnVuY3Rpb24gdTllKGwsYyl7dmFyIGYscCxtO3JldHVybiBjfD0wLGY9YWUsYWU9YWUrNjR8MCxwPWYrMzJ8MCxhWyhtPWYpPj4yXT1h''@;'; + put 'put ''WyhsPTQ4KygwfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdLGFbbSs0Pj4yXT1hW2wrND4+Ml0sYVttKzg+PjJdPWFbbCs4Pj4yXSxhW20rMTI+PjJdPWFbbCsxMj4+Ml0sYVttKzE2Pj4yXT1hW2wrMTY+PjJdLGFbbSsyMD4+Ml09YVtsKzIwPj4yXSxhW20rMjQ+PjJdPWFbbCsyND4+Ml0sYVtt''@;'; + put 'put ''KzI4Pj4yXT1hW2wrMjg+PjJdLGFbcD4+Ml09YVtjPj4yXSxhW3ArND4+Ml09YVtjKzQ+PjJdLGFbcCs4Pj4yXT1hW2MrOD4+Ml0sYVtwKzEyPj4yXT1hW2MrMTI+PjJdLGFbcCsxNj4+Ml09YVtjKzE2Pj4yXSxhW3ArMjA+PjJdPWFbYysyMD4+Ml0sYVtwKzI0Pj4yXT1hW2MrMjQ+PjJdLGFb''@;'; + put 'put ''cCsyOD4+Ml09YVtjKzI4Pj4yXSxjPTI1NSYoMHxteShtLHApKSxhZT1mLDB8Y31mdW5jdGlvbiBjOWUobCxjKXtjfD0wO3ZhciBLLHBlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsZ2U9MCxiZT0wLE9lPTA7Sz0wfGFbMTUyKyhsfD0wKT4+Ml0scGU9MHx4''@;'; + put 'put ''ZihsKSxhW3BlKzQ+PjJdPTIsYVtwZSs4Pj4yXT1jLGFbcGUrMTI+PjJdPTgsMTY3NzcyMTYmS3wwJiYoZj0oMHxoclsxNzgrKDB8YVsxNisoMHxjcihjKSk+PjJdKT4+MV0pPjI/KygwfH5+KChmPTcyKitfWzE2KygwfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdKSsoZj49MD8uNTot''@;'; + put 'put ''LjUpKSk6MCxfW3BlKzE2OD4+M109ZiksSUgobCwwfGFbMTA0KygwfGFbKHc9YysxNnwwKT4+Ml0pPj4yXSxjKTtkb3tpZig0MjU5ODQwJkt8MCl7aWYoMD09KDB8YVtwZSsyMDg+PjJdKSYmMD09KDEmcnRbcGUrMjYwPj4xXSkpYnJlYWs7Uj0wfCQ1KGMpLGY9K19bMTYrKGI9MHxhW3c+PjJd''@;'; + put 'put ''KT4+M10sRz0rX1tiKzI0Pj4zXSxiPTB8ZVEoYyk7ZTpkb3tpZigzPT0oMnxSKSlpZihNPTB8YVsxMisoMHxhW3c+PjJdKT4+Ml0scD0oMHxESChNKSk8PDI0Pj4yND8wIT0oYVtNKzQ+PjJdfGJ8MCk6MCwwPT0oNTI0Mjg4Jkt8MCl8MD09KDB8TSl8cClnZT0zMTtlbHNle2lmKEQ9KDB8KEQ9''@;'; + put 'put ''MHxhWyhtPU0rOHwwKT4+Ml0pKTwzPzE6RCxrPSgwfChrPTB8YVsoQT1NKzR8MCk+PjJdKSk+MT9rOjEsUj0wfGFbTSs0ND4+Ml0scD0oKHA9KHA9MHxMaShjLDEwMjcwNSkpPzB8cjMocCk6MCktNHwwKT4+PjA+NTY/MjA6cCwhKGFbQT4+Ml18Yikpe2FbcGUrMjY0Pj4yXT0wLG09MHx2cigz''@;'; + put 'put ''MiksX1ttPj4zXT1mLShPZT0rX1s4OCsocD0wfGFbdz4+Ml0pPj4zXSksX1ttKzg+PjNdPUctKGJlPS41KitfW3ArODA+PjNdKSxfW20rMTY+PjNdPU9lK2YsX1ttKzI0Pj4zXT1iZStHLHA9MjticmVha31pZigoMHwobT0wfGFbbT4+Ml0pKTwzJiYwPT0rX1tNKzMyPj4zXSYmMD09K19bTSsy''@;'; + put 'put ''ND4+M10pe2lmKG09cGUrMjY0fDAsMHxhW00+PjJdKXthW20+PjJdPTEsbT0wfHZyKDMyKSxfW20+PjNdPWYsX1ttKzg+PjNdPUcsX1ttKzE2Pj4zXT0rX1tSKygocD0oazw8MSktMXwwKTw8NCk+PjNdK2YsX1ttKzI0Pj4zXT0rX1tSKyhwPDw0KSs4Pj4zXStHLHA9MjticmVha31mb3IoYVtt''@;'; + put 'put ''Pj4yXT0yLG09MHxMSCgrX1tSKygobT0oazw8MSktMXwwKTw8NCk+PjNdLCtfW1IrKG08PDQpKzg+PjNdLHApLEE9MDs7KXtpZigoMHxBKT49KDB8cCkpYnJlYWsgZTtfWyhSPW0rKEE8PDQpfDApPj4zXT0rX1tSPj4zXStmLF9bKFI9bSsoQTw8NCkrOHwwKT4+M109K19bUj4+M10rRyxBPUEr''@;'; + put 'put ''MXwwfX1pZihrPTB8QXIobSxrKy0xfDApLGFbcGUrMjY0Pj4yXT0yLCgwfG0pPCgwfHApKWZvcihtPTB8dnIoRDw8NCkscD0wOzspe2lmKCgwfHApPj0oMHxEKSl7cD1EO2JyZWFrIGV9X1ttKyhwPDw0KT4+M109K19bUisoKE09cCtrfDApPDw0KT4+M10rZixfW20rKHA8PDQpKzg+PjNdPStf''@;'; + put 'put ''W1IrKE08PDQpKzg+PjNdK0cscD1wKzF8MH1lbHNlIGZvcihiPSgwfG0pLygwfHApfDAsbT0wfHZyKHA8PDQpLEE9MCx3PTA7Oyl7aWYoKDB8QSk+PSgwfHApKWJyZWFrIGU7X1ttKyhBPDw0KT4+M109K19bUisoKEQ9dytrfDApPDw0KT4+M10rZixfW20rKEE8PDQpKzg+PjNdPStfW1IrKEQ8''@;'; + put 'put ''PDQpKzg+PjNdK0csQT1BKzF8MCx3PXcrYnwwfX1lbHNlIGdlPTMxfXdoaWxlKDApOzMxPT0oMHxnZSkmJihhW3BlKzI2ND4+Ml09MCxtPTB8dnIoMzIpLF9bbT4+M109Zi0rX1s4OCsocD0wfGFbdz4+Ml0pPj4zXSxfW20rOD4+M109Ry0oT2U9LjUqK19bcCs4MD4+M10pLF9bbSsxNj4+M109''@;'; + put 'put ''K19bcCs5Nj4+M10rZixfW20rMjQ+PjNdPU9lK0cscD0yKSw4MTkyJkt8fE1oKGwsbSxtLHApLGFbcGUrMjcyPj4yXT1tLGFbcGUrMjY4Pj4yXT1wfX13aGlsZSgwKTtEdigwfExpKGMsMTAwMDMyKSksZnVuY3Rpb24gZ2IobCxjKXtjfD0wO3ZhciBmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4y''@;'; + put 'put ''XSkmJjB8KGY9MHxhW2MrNTY+PjJdKSYmQ29bMTI3JmZdKGwpfShsLGMpfWZ1bmN0aW9uIHhvZShsKXsoZnVuY3Rpb24gVU0obCl7dmFyIGMsZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzYwPj4yXSkmJkNvWzEyNyZmXShsKX0pKGx8PTApLERDKGwpfWZ1bmN0aW9u''@;'; + put 'put ''IElIKGwsYyxmKXtsfD0wLGN8PTA7dmFyIG0sdyxiLGssTSxBLHA9MDtNPWFlLGFlPWFlKzE0NHwwLGI9TSxwPTB8TGkoZnw9MCwxNDEwNTUpLHc9MHxMaShmLDE0MTEwMSksaz0wfExpKGYsMTQxMDg4KSx1cyhiLDEyOCxNKzE2fDApLEE9Yz8wfGFbYz4+Ml06MCwwIT0oMHxwKSYmMCE9KDB8''@;'; + put 'put ''ZmVbcD4+MF0pfHwocD0wfExpKGYsMTExNDc3KSksbT0wfGZGKGwsZixiKSxRMShsLEEscCxjPXc/MHxBNyh3LGYpOjAsayxtLGYpLEZ0KGMpLEMyKGIpLGFlPU19ZnVuY3Rpb24gZVEobCl7dmFyIGM9MCxmPTA7bD0wfEJhKGx8PTAsMHxhWzQ3MTU3XSwxOTUwNTkpO2U6ZG97aWYoMHxmZVts''@;'; + put 'put ''Pj4wXSlmb3IoWkEobCksbD0wLGM9MTg4MjI4Ozspe2lmKCEoZj0wfGFbYz4+Ml0pKWJyZWFrIGU7bD0oZj0wPT0oMHxqaShmLDExMTEwMSkpKT8xOmwsYz1jKzR8MH1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIERIKGwpe3ZhciBjPTA7cmV0dXJuIDB8KDQ9PSgwfGFb''@;'; + put 'put ''OCsobHw9MCk+PjJdKSYmMD09KDB8KDB8fn4oKGM9K19bbCsxNj4+M10pKyhjPj0wPy41Oi0uNSkpKSU5MCkmJjA9PStfW2wrMjQ+PjNdPzA9PStfW2wrMzI+PjNdJjE6MCl9ZnVuY3Rpb24gTEgobCxjLGYpe2w9K2wsYz0rYzt2YXIgQSx3LHA9MCxtPTA7Zm9yKEE9Ni4yODMxODUzMDcxNzk1''@;'; + put 'put ''ODYvKygwfChmfD0wKSksdz0wfHZyKGY8PDQpLHA9MCxtPTA7ISgoMHxtKT49KDB8ZikpOylfW3crKG08PDQpPj4zXT0raGEoK3ApKmwsX1t3KyhtPDw0KSs4Pj4zXT0rRGEoK3ApKmMscCs9QSxtPW0rMXwwO3JldHVybiAwfHd9ZnVuY3Rpb24gdFEobCxjKXtsfD0wLGN8PTA7dmFyIGY9MDtl''@;'; + put 'put ''OmRve2lmKCgwfGFbbCsxNTY+PjJdKT49MiYmKGY9MHx2MihjLDB8c2koYywwLDEwMTUxMCwwKSwxOTUwNTkpLCgwfFJJKGwsZikpPDwyND4+MjQ9PTApKWlmKDB8ZmVbZj4+MF0pZj0wO2Vsc2UgZm9yKGY9MHxEdChjKTs7KXtpZighZil7Zj0wO2JyZWFrIGV9aWYoKDB8RW9lKGwsYyxmKSk8''@;'; + put 'put ''PDI0Pj4yNCl7Zj0xO2JyZWFrIGV9Zj0wfHp0KGMsZil9ZWxzZSBmPTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBUb2UobCxjKXt2YXIgZjtjfD0wLGY9MHx4ZihsfD0wKSxhW2YrND4+Ml09MSxhW2YrOD4+Ml09YyxhW2YrMTI+PjJdPTEsSUgobCwwfGFbMTIrKDB8YVtjKzE2Pj4y''@;'; + put 'put ''XSk+PjJdLGMpLGZ1bmN0aW9uIF9SKGwsYyl7Y3w9MDt2YXIgZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzMyPj4yXSkmJkNvWzEyNyZmXShsKX0obCxjKX1mdW5jdGlvbiBCSShsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MDtsPTB8TGkobHw9MCwxNDEwODIp''@;'; + put 'put ''O2U6ZG97aWYoMCE9KDB8bCkmJjAhPSgwfGZlW2w+PjBdKSlmb3IoWkEobCksZj0xODgyMjgsbD0wOzspe2Zvcig7Oyl7aWYoIShwPTB8YVtmPj4yXSkpe2Y9MTg4MjI4O2JyZWFrIGV9aWYoISgwfGppKHAsMTExMTAxKSkpe209MTA7YnJlYWt9aWYoISgwfGppKHAsMTA2MzM0KSkpe3A9Zixt''@;'; + put 'put ''PTEyO2JyZWFrfWlmKCEoMHxqaShwLDEwNjM0MSkpKXtwPWYsbT0xNDticmVha31pZighKDB8amkocCwxMDYzMTYpKSl7cD1mLG09MTY7YnJlYWt9Zj1mKzR8MH1pZigxMCE9KDB8bSkpaWYoMTIhPSgwfG0pKWlmKDE0IT0oMHxtKSlpZigxNiE9KDB8bSkpO2Vsc2V7Zm9yKDthWyhtPXApPj4y''@;'; + put 'put ''XT1BPTB8YVsocD1wKzR8MCk+PjJdLEE7KW09MTY7bHw9NH1lbHNle2Zvcig7YVsobT1wKT4+Ml09QT0wfGFbKHA9cCs0fDApPj4yXSxBOyltPTE0O2x8PTY0fWVsc2V7Zm9yKDthWyhBPXApPj4yXT1tPTB8YVsocD1wKzR8MCk+PjJdLG07KW09MTI7bHw9M31lbHNlIGY9Zis0fDAsbHw9MX1l''@;'; + put 'put ''bHNlIGY9MCxsPTB9d2hpbGUoMCk7cmV0dXJuIGFbYz4+Ml09bCwwfGZ9ZnVuY3Rpb24gbGsobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBBLGIscD0wLG09MCx3PTAsaz0wO2lmKGI9YWUsYWU9YWUrMTZ8MCxBPWIsYVsodz1iKzR8MCk+PjJdPTAsaz0wPT0oMHxzNyhsLDAsdykpLHc9MHxh''@;'; + put 'put ''W3c+PjJdLGsmJigwfChwPTB8YVt3Pj4yXSkpPj0yJiYwIT0oMHxhW2FbKG09dys4fDApPj4yXT4+Ml0pKXsoMHxwKT4yJiYkcigwLDEwMDQxNSxBKSxrPTB8UW4oMSsoMHxVbyhsKSl8MCksYVtjPj4yXT1rLGlkKGssMHxhW2FbbT4+Ml0+PjJdKSwwfGFbMTIrKDB8YVttPj4yXSk+PjJdPyhr''@;'; + put 'put ''PShrPTB8YVtjPj4yXSkrKDErKDB8VW8oaykpKXwwLGFbYys0Pj4yXT1rLGlkKGssMHxhWzEyKygwfGFbbT4+Ml0pPj4yXSkpOmFbYys0Pj4yXT0wLGw9MHxhW20+PjJdO2Rve2lmKCEoMHxmZVtsKzg+PjBdKSl7aWYoMHxmZVtsKzIwPj4wXSl7am5bZj4+Ml09MS0ram5bbCsxNj4+Ml07YnJl''@;'; + put 'put ''YWt9am5bZj4+Ml09MDticmVha31hW2Y+PjJdPWFbbCs0Pj4yXX13aGlsZSgwKTtGQSh3KSxsPTF9ZWxzZSBhW2M+PjJdPTAsRkEodyksbD0wO3JldHVybiBhZT1iLDB8bH1mdW5jdGlvbiBmOWUobCxjKXsoZnVuY3Rpb24gWU0obCxjKXtjfD0wO3ZhciBmPTA7MHwoYz0wfGFbNjArKGx8PTAp''@;'; + put 'put ''Pj4yXSkmJjB8KGY9MHxhW2MrMzY+PjJdKSYmQ29bMTI3JmZdKGwpfSkobHw9MCxjfD0wKSxEQyhsKX1mdW5jdGlvbiBPSChsLGMsZixwKXtsfD0wLGZ8PTA7dmFyIEEsbT0wO2ZvcihtPSgwfChtPShBPTB8YVsoY3w9MCk+PjJdKTw8MSkpPigwfChwfD0wKSk/bTpwLCgwfEEpPCgwfHApJiYo''@;'; + put 'put ''bD0wfFYwKGwsbTw8NCksYVtjPj4yXT1tKSxjPTA7ISgoMHxjKT49KDB8cCkpOylfW2wrKGM8PDQpPj4zXT0rX1tmKygyNCpjfDApPj4zXSxfW2wrKGM8PDQpKzg+PjNdPStfW2YrKDI0KmN8MCkrOD4+M10sYz1jKzF8MDtyZXR1cm4gMHxsfWZ1bmN0aW9uIFBJKGwsYyl7dmFyIGY7Zj0wfGFb''@;'; + put 'put ''KGN8PTApPj4yXSxhWyhsfD0wKT4+Ml09YVtjKzQ+PjJdLGFbbCs0Pj4yXT1mfWZ1bmN0aW9uIElvZShsLGMpe2x8PTA7dmFyIG0sZj0wLHA9MDtmb3IobT0xNisoY3w9MCl8MCxwPTE7ISgoMHxwKT4oMHxhWzE4MCsoYz0wfGFbbT4+Ml0pPj4yXSkpOylJb2UobCxmPTB8YVsoMHxhW2MrMTg0''@;'; + put 'put ''Pj4yXSkrKHA8PDIpPj4yXSksMHwoYz0wfExpKGYsMTQwODIzKSkmJjB8ZmVbYz4+MF0mJm1hKGwsYyksMHwoYz0wfExpKGYsMTM3NzI5KSkmJjB8ZmVbYz4+MF0mJm1hKGwsYyksMHwoYz0wfExpKGYsMTQwOTc3KSkmJjB8ZmVbYz4+MF0mJm1hKGwsYyksMHwoYz0wfExpKGYsMTAxNDE4KSkm''@;'; + put 'put ''JjB8ZmVbYz4+MF0mJmhsKGwsYyksMHwoYz0wfExpKGYsMTAxNDQ2KSkmJjB8ZmVbYz4+MF0mJm1hKGwsYykscD1wKzF8MH1mdW5jdGlvbiBkOWUobCl7bHw9MDt2YXIgYz0wLGY9MCxwPTA7cmV0dXJuKGM9MHxhWzQ3MTI3XSl8fChjPTB8aXMoMjA2MjgsMHxhWzQ1ODFdKSxhWzQ3MTI3XT1j''@;'; + put 'put ''KSwwfG1pWzYzJmFbYz4+Ml1dKGMsbCw0KT9jPTA6KHA9MHxhWyhmPTB8YVs0NzEyN10pPj4yXSxjPTB8cmEobCksbWlbNjMmcF0oZixjLDEpLGM9MSksMHxjfWZ1bmN0aW9uIHNjKGwpe3ZhciBjPTA7Yz0wfGFbNDcxMjhdLChsfD0wKT8oYVs0NzEyOF09YysxLGN8fChhWzQ3MTI5XT0wfHJh''@;'; + put 'put ''KDB8YmooMSwwKSksYmooMSwxNTM1NjMpKSk6KDB8Yyk+MCYmKGFbNDcxMjhdPWM9YystMXwwLDA9PSgwfGMpKSYmKGJqKDEsMHxhWzQ3MTI5XSksRnQoMHxhWzQ3MTI5XSkpfWZ1bmN0aW9uIGcyKGwsYyl7bHw9MCxjfD0wO3ZhciBHLGdlLE9lLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9''@;'; + put 'put ''MCxNPTAsRD0wLFI9MDtPZT1hZSxhZT1hZSs5NnwwLEc9T2UrNDh8MCxnZT1PZSsyNHwwLHA9T2UrOHwwLGY9T2U7ZG97aWYoMCE9KDB8aDAoYywxMzc0ODMsMCwxKSkmJjAhPSgwfGFbOCsoMHxhWyhSPWMrMTZ8MCk+PjJdKT4+Ml0pKXtEb2UoYyksTG9lKGwsYyksT29lKGwsYyksc2MoMSks''@;'; + put 'put ''Yj1sKzU2fDAsaz1sKzE4NHwwLE09bCsxOTJ8MCxEPWwrMjh8MCx3PTB8akcobCk7ZTpmb3IoOzspe2lmKCF3KXtBPTMzO2JyZWFrfWlmKChmPTB8YVtiPj4yXSk/KGFbdysyMD4+Ml09YVtmKzg+PjJdLGY9MHxhW2YrMTI+PjJdKTooYVt3KzIwPj4yXT0wLGY9MCksYVt3KzI0Pj4yXT1mLGFb''@;'; + put 'put ''dysxMj4+Ml09bCxhW3crMjg+PjJdPWFbaz4+Ml0sYVt3KzYyMD4+Ml09MjU3NjQsYVt3KzYyND4+Ml09MTQsISgwfGFbOCsoMHxhW1I+PjJdKT4+Ml0pKXtBPTEzO2JyZWFrfXN3aXRjaChBPTB8Q3YodywwfGFbKHA9dys1MnwwKT4+Ml0pLGFbdys1Nj4+Ml09QSwwfEEpe2Nhc2UgOTk5OkE9''@;'; + put 'put ''MTY7YnJlYWsgZTtjYXNlIDIxOmY9MTticmVhaztjYXNlIDI0OmY9NTIwO2JyZWFrO2RlZmF1bHQ6Zj0wfHJRKGMpfWFbKG09dysxNTJ8MCk+PjJdPWFbbT4+Ml18ZixmPTB8YVtNPj4yXTtkb3tpZihmKXtpZigzMiZhW2YrMTUyPj4yXXwwJiYwPT0oMHxqaSgwfGFbcD4+Ml0sMHxhW2YrNTI+''@;'; + put 'put ''PjJdKSkpe2lmKCEoZj0wfGFbNDcxMzBdKSl7QT0yNzticmVha31hW2YrOD4+Ml09dyxhW3crMzY+PjJdPWFbZiszNj4+Ml0sQT0yOTticmVha31rdihmKSxhW00+PjJdPTAsYVtEPj4yXT0wLEE9MjR9ZWxzZSBBPTI0fXdoaWxlKDApOzI0PT0oMHxBKSYmKGFbNDcxMzBdPTAsQT0yNyksMjc9''@;'; + put 'put ''PSgwfEEpJiYoQT0wLDA9PSgwfHdSKHcpKSkmJihhW00+PjJdPXcsQT0yOSksMjk9PSgwfEEpJiYoYVt3Kzg+PjJdPTAsYVt3KzEwND4+Ml09MjU4NzYsUm9lKHcpLEZJKHcpLEJvZSh3LGMpLFBvZSh3LGMpLEZvZSh3LGMpLDEyOCZhW20+PjJdfHxkVyh3LGMpLGFbNDcxMzBdPXcpLHc9MHxI''@;'; + put 'put ''bWUobCl9aWYoMTM9PSgwfEEpKXskcigxLDEwMDY3OSxnZSksc2MoMCksZj0tMTticmVha31pZigxNj09KDB8QSkpe2FbRz4+Ml09YVtwPj4yXSwkcigxLDEwMDcwMCxHKSxzYygwKSxmPS0xO2JyZWFrfWlmKDMzPT0oMHxBKSl7c2MoMCksZj0wO2JyZWFrfX1lbHNlIEE9NX13aGlsZSgwKTty''@;'; + put 'put ''ZXR1cm4gNT09KDB8QSkmJigkcigxLDEwMDYwMixmKSxmPS0xKSxhZT1PZSwwfGZ9ZnVuY3Rpb24gRG9lKGwpe3ZhciBjPTA7Zm9yKGM9MHxEdChsfD0wKTtjOylWb2UobCxjKSxjPTB8enQobCxjKX1mdW5jdGlvbiBMb2UobCxjKXt2YXIgdyxiLEQsZj0wLHA9MCxtPTAsQT0wLGs9MCxNPTAs''@;'; + put 'put ''Uj0wO0Q9YWUsYWU9YWUrMzJ8MCxiPUQrMjR8MCxwPUQrMTZ8MCx3PUQrOHwwLE09RCxhWzE2OCsobHw9MCk+PjJdPWN8PTAsZmVbKG09bCsyOTN8MCk+PjBdPTAsMHwoZj0wfExpKGMsMTA1NDk2KSkmJihhW3A+PjJdPXcsYVtwKzQ+PjJdPU0sKDB8KEE9MHxpbChmLDEwNTUwMyxwKSkpPjAp''@;'; + put 'put ''JiYoX1soZj1sKzIwOHwwKT4+M109Uj03MiorX1t3Pj4zXSxfW2wrMjAwPj4zXT1SLDEhPSgwfEEpJiYoX1tmPj4zXT03MiorX1tNPj4zXSksZmVbbT4+MF09MSksZmVbKHA9bCsyOTJ8MCk+PjBdPTAsMHwoZj0wfExpKGMsMTAxMTAyKSkmJihhW2I+PjJdPXcsYVtiKzQ+PjJdPU0sKDB8KGs9''@;'; + put 'put ''MHxpbChmLDEwNTUwMyxiKSkpPjApJiYoX1soZj1sKzIyNHwwKT4+M109Uj03MiorX1t3Pj4zXSxfW2wrMjE2Pj4zXT1SLDEhPSgwfGspJiYoX1tmPj4zXT03MiorX1tNPj4zXSksZmVbcD4+MF09MSksZmVbKGY9bCsyOTR8MCk+PjBdPTAsYVsocD1sKzIzMnwwKT4+Ml09YVsoTT00OCsoMHxh''@;'; + put 'put ''WzgrKDB8YVsobT1jKzE2fDApPj4yXSk+PjJdKXwwKT4+Ml0sYVtwKzQ+PjJdPWFbTSs0Pj4yXSxhW3ArOD4+Ml09YVtNKzg+PjJdLGFbcCsxMj4+Ml09YVtNKzEyPj4yXSwrX1s0OCsocD0wfGFbOCsoMHxhW20+PjJdKT4+Ml0pPj4zXT4uMDAxJiYrX1twKzU2Pj4zXT4uMDAxJiYoZmVbZj4+''@;'; + put 'put ''MF09MSksYVtsKzI4OD4+Ml09MHxmZVtwKzgxPj4wXT85MDowLGFbKGY9bCsxOTZ8MCk+PjJdPTEwMTEwNiwwfChwPTB8TGkoYywxMDExMDkpKSYmMHxmZVtwPj4wXSYmKGFbZj4+Ml09cCksYVsoTT1sKzI1NnwwKT4+Ml09YVsoaz0xNisoMHxhW20+PjJdKXwwKT4+Ml0sYVtNKzQ+PjJdPWFb''@;'; + put 'put ''ays0Pj4yXSxhW00rOD4+Ml09YVtrKzg+PjJdLGFbTSsxMj4+Ml09YVtrKzEyPj4yXSxhW00rMTY+PjJdPWFbaysxNj4+Ml0sYVtNKzIwPj4yXT1hW2srMjA+PjJdLGFbTSsyND4+Ml09YVtrKzI0Pj4yXSxhW00rMjg+PjJdPWFbaysyOD4+Ml0sYVs0NzE0MV09MHxzaShjLDAsMTAxNDcyLDAp''@;'; + put 'put ''LGFbNDcxNDJdPTB8c2koYywwLDEwMTQ2MywwKSxhW2wrMzIwPj4yXT0wfEJhKDAsMHxhWzQ3MTUxXSwxMDc5OTQpLF9bbCszMjg+PjNdPStNbCgwLDB8YVs0NzE1MF0sMTQsMSksYVtsKzMzNj4+Ml09MjA2NjQsYVtsKzE4OD4+Ml09MHx0aShjKSxhZT1EfWZ1bmN0aW9uIE9vZShsLGMpe2N8''@;'; + put 'put ''PTA7dmFyIG0sZj0wLHA9MDswfChwPTB8YVsoZj0zMDQrKGx8PTApfDApPj4yXSkmJihGdChwKSxhW2Y+PjJdPTApLDB8KGY9MHxhWyhwPWwrMzA4fDApPj4yXSkmJihGdChmKSxhW3A+PjJdPTApLDB8KGY9MHxhWyhtPWwrMzE2fDApPj4yXSkmJihGdChmKSxhW20+PjJdPTApLChmPTB8TGko''@;'; + put 'put ''YywxMDA4NTMpKT8oYVtsKzMxMj4+Ml09MHxmdW5jdGlvbiBIb2UobCxjLGYpe2x8PTAsZnw9MDt2YXIgQSxiLHA9MCxtPTAsdz0wO2ZvcihiPWFlLGFlPWFlKzE2fDAsbT1iLHA9MHxMaShjfD0wLDEwMDk3MyksYVsodz1sKzI5NnwwKT4+Ml09MD09KDB8cCk/MTAwOTgyOnAsYz0wfExpKGMs''@;'; + put 'put ''MTAwOTg2KSxhWyhwPWwrMzAwfDApPj4yXT1jPTA9PSgwfGMpPzEwMDk5OTpjLDB8KGM9MHxmdW5jdGlvbiBrY2UobCxjKXtyZXR1cm4gYz0obHw9MCkrKDB8Q2oobCxjfD0wKSl8MCwwfCgwfGZlW2M+PjBdP2M6MCl9KDB8YVt3Pj4yXSxjKSkmJihhW20+PjJdPWZlW2M+PjBdLCRyKDAsMTAx''@;'; + put 'put ''MDAxLG0pLGFbcD4+Ml09MTk1MDU5KSxjPTB8cmEoZiksYVtsKzMwND4+Ml09YyxBPWwrMzA4fDAscD0wLGw9MDtmPTB8bDkoYywwfGFbdz4+Ml0pOyltPWwrMXwwLCgwfGwpPCgwfHApP2M9MHxhW0E+PjJdOihwPXArMTI4fDAsYz0oYz0wfGFbQT4+Ml0pPzB8VjAoYyxwPDwyKTowfFFuKHA8''@;'; + put 'put ''PDIpLGFbQT4+Ml09YyksYVtjKyhtPDwyKT4+Ml09ZixsPW0sYz0wO3JldHVybiAwfGwmJih3PTB8VjAoMHxhW0E+PjJdLDgrKGw8PDIpfDApLGFbQT4+Ml09dyxhW3c+PjJdPTAsYVsoMHxhW0E+PjJdKSsobCsxPDwyKT4+Ml09MCksYWU9YiwwfGx9KGwsYyxmKSwwfChmPTB8TGkoYywxMDA4''@;'; + put 'put ''NjApKSYmMHxmZVtmPj4wXSYmKGFbbT4+Ml09MHxmdW5jdGlvbiBOb2UobCxjKXtjfD0wO3ZhciBiLGssTSxmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihNPWFlLGFlPWFlKzE2fDAsaz1NLGY9MHxRbig4KyhhWyhiPTMxMisobHw9MCl8MCk+PjJdPDwyKXwwKSxwPTAsdz0xOyEoKDB8dyk+KDB8''@;'; + put 'put ''KEE9MHxhW2I+PjJdKSkpOyltPXArMXwwLCgwfE1vZShsLHcsQSxjKSk8PDI0Pj4yNCYmKGFbZisobTw8Mik+PjJdPXcscD1tKSx3PXcrMXwwO3JldHVybiBwPyhhW2Y+PjJdPXAsYVtmKyhwKzE8PDIpPj4yXT0xKygwfGFbYj4+Ml0pKTooYVtrPj4yXT1jLCRyKDAsMTAwODcyLGspLEZ0KGYp''@;'; + put 'put ''LGY9MCksYWU9TSwwfGZ9KGwsZikpKTooYVtwPj4yXT0wLGFbbCszMTI+PjJdPTEpfWZ1bmN0aW9uIHJRKGwpe2w9MHxMaShsfD0wLDEwMDgyMSk7ZTpkb3tpZihsKXN3aXRjaCgwfGZlW2w+PjBdKXtjYXNlIDExMDppZigwfGppKGwrMXwwLDEwMDgzMykpe2w9MDticmVhayBlfWw9MTticmVh''@;'; + put 'put ''aztjYXNlIDEwMTppZigwfGppKGwrMXwwLDEwMDg0Mykpe2w9MDticmVhayBlfWw9MTY7YnJlYWs7ZGVmYXVsdDpsPTA7YnJlYWsgZX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIFJvZShsKXt2YXIgYz0wLGY9MDswfGZlWzI5MisoZj0wfGFbKGx8PTApPj4yXSk+PjBd''@;'; + put 'put ''PyhhWyhsPWwrMjQwfDApPj4yXT1hWyhmPWYrMjE2fDApPj4yXSxhW2wrND4+Ml09YVtmKzQ+PjJdLGFbbCs4Pj4yXT1hW2YrOD4+Ml0sYVtsKzEyPj4yXT1hW2YrMTI+PjJdKTooX1tsKzI0OD4+M109Yz0zMDA9PSgwfGFbbCs1Nj4+Ml0pPytfWzgrKDB8YVtsKzY4Pj4yXSk+PjNdOjQsX1ts''@;'; + put 'put ''KzI0MD4+M109Yyl9ZnVuY3Rpb24gRkkobCl7dmFyIGM9MDtjPTB8YVsobHw9MCk+PjJdO2U6ZG97aWYoMHxmZVtjKzI5Mz4+MF0pbD1sKzQxNnwwLGM9YysyMDB8MCxhW2w+PjJdPWFbYz4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtj''@;'; + put 'put ''KzEyPj4yXTtlbHNlIHN3aXRjaCgwfGFbbCs1Nj4+Ml0pe2Nhc2UgMzAwOmFbKGM9bCs0MTZ8MCk+PjJdPWFbKGw9OCsoMHxhW2wrODQ+PjJdKXwwKT4+Ml0sYVtjKzQ+PjJdPWFbbCs0Pj4yXSxhW2MrOD4+Ml09YVtsKzg+PjJdLGFbYysxMj4+Ml09YVtsKzEyPj4yXTticmVhayBlO2Nhc2Ug''@;'; + put 'put ''MzA6Y2FzZSAyMTpjYXNlIDIyOmNhc2UgNDpjYXNlIDM6Y2FzZSAyOl9bbCs0MjQ+PjNdPTM2LF9bbCs0MTY+PjNdPTM2O2JyZWFrIGU7ZGVmYXVsdDphWyhjPWwrNDE2fDApPj4yXT0wLGFbYys0Pj4yXT0wLGFbYys4Pj4yXT0wLGFbYysxMj4+Ml09MDticmVhayBlfX13aGlsZSgwKX1mdW5j''@;'; + put 'put ''dGlvbiBCb2UobCxjKXt2YXIgZixwPTA7cD0wfGFbMTkyKygwfGFbKGx8PTApPj4yXSk+PjJdLGY9K19bMjQrKDB8YVs4KygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKT4+M107ZG97aWYoMD09Zil7aWYoMHxwJiYwfGZlW3ArMTI4Pj4wXSl7YVsobD1sKzQzMnwwKT4+Ml09YVsocD1wKzExMnww''@;'; + put 'put ''KT4+Ml0sYVtsKzQ+PjJdPWFbcCs0Pj4yXSxhW2wrOD4+Ml09YVtwKzg+PjJdLGFbbCsxMj4+Ml09YVtwKzEyPj4yXTticmVha31pZihjPWwrNDMyfDAsMzAwPT0oMHxhW2wrNTY+PjJdKSl7YVtjPj4yXT1hWyhsPTQwKygwfGFbbCs4ND4+Ml0pfDApPj4yXSxhW2MrND4+Ml09YVtsKzQ+PjJd''@;'; + put 'put ''LGFbYys4Pj4yXT1hW2wrOD4+Ml0sYVtjKzEyPj4yXT1hW2wrMTI+PjJdO2JyZWFrfV9bbCs0NDA+PjNdPTk2LF9bYz4+M109OTY7YnJlYWt9X1tsKzQ0MD4+M109ZixfW2wrNDMyPj4zXT1mfXdoaWxlKDApfWZ1bmN0aW9uIFBvZShsLGMpe2N8PTA7dmFyIEQsUixHLEsscGUsZ2UsT2UsTGUs''@;'; + put 'put ''UmUsSGUsVmUscWUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxiZT0wO3FlPWFlLGFlPWFlKzExMnwwLGdlPXFlKzgwfDAsYmU9cWUrNTZ8MCxwZT1xZSs0MHwwLE9lPXFlKzMyfDAsTGU9cWUrMjR8MCxSZT1xZSsxNnwwLEhlPXFlKzh8MCxWZT1xZSxEPStfWzI3Misoaz0wfGFb''@;'; + put 'put ''KGx8PTApPj4yXSk+PjNdLEc9K19baysyODA+PjNdLEs9K19baysyNjQ+PjNdLF9bbCsyMDg+PjNdPWY9KFI9K19baysyNTY+PjNdKS0ocD0rX1tsKzI0MD4+M10pLF9bbCsyMTY+PjNdPXc9Sy0oQT0rX1tsKzI0OD4+M10pLF9bbCsyMjQ+PjNdPXArPUQsX1tsKzIzMj4+M109QSs9RyxmPXAt''@;'; + put 'put ''Zix3PUEtdyxfW1JlPj4zXT0xLEE9K19bNjQrKG09MHxhWzgrKDB8YVtjKzE2Pj4yXSk+PjJdKT4+M107ZG97aWYoQT4uMDAxJiYoYj0rX1ttKzcyPj4zXSk+LjAwMSl7aWYoIShBPChmPTA9PWY/QTpmKXxiPChwPTA9PXc/Yjp3KXx8Yj5wJkE+ZiYwIT0oMHxmZVttKzgwPj4wXSkpKXtiPWYs''@;'; + put 'put ''dz1wLEE9MTticmVha31fW1JlPj4zXT1BPSgoTT1BL2Y8Yi9wKT9BOmIpLyhNP2Y6cCksYj1mLHc9cH1lbHNlIGI9ZixBPTF9d2hpbGUoMCk7aWYoX1tIZT4+M109cD0uNSooUitEKSxfW1ZlPj4zXT1mPS41KihLK0cpLGFbbCszNjA+PjJdPWFbaysyODg+PjJdLF9bT2U+PjNdPWIqPUEsX1tM''@;'; + put 'put ''ZT4+M109dyo9QSxtPTB8TGkoYywxMDA3NTIpKXtrPTB8QjAoMSsoMHxVbyhtKSl8MCksTT0wfEIwKDErKDB8VW8obSkpfDApLGFbcGU+PjJdPU9lLGFbcGUrND4+Ml09TGUsYVtwZSs4Pj4yXT1SZSxhW3BlKzEyPj4yXT1rO2Rve2lmKDQ9PSgwfGlsKG0sMTAwNzYxLHBlKSkpMHwobT0wfEdy''@;'; + put 'put ''KDB8YVtjKzYwPj4yXSxrLDApKSYmKF9bSGU+PjNdPStfWzE2KyhiZT0wfGFbbSsxNj4+Ml0pPj4zXSxfW1ZlPj4zXT0rX1tiZSsyND4+M10pO2Vsc2V7aWYoYVtiZT4+Ml09T2UsYVtiZSs0Pj4yXT1MZSxhW2JlKzg+PjJdPVJlLGFbYmUrMTI+PjJdPWssYVtiZSsxNj4+Ml09TSw0IT0oMHxp''@;'; + put 'put ''bChtLDEwMDc4MSxiZSkpKXthW2dlPj4yXT1PZSxhW2dlKzQ+PjJdPUxlLGFbZ2UrOD4+Ml09UmUsYVtnZSsxMj4+Ml09SGUsYVtnZSsxNj4+Ml09VmUsaWwobSwxMDA4MDEsZ2UpO2JyZWFrfTB8KG09MHxHcigwfGFbYys2MD4+Ml0saywwKSkmJihfW0hlPj4zXT0rX1sxNisoYmU9MHxhW20r''@;'; + put 'put ''MTY+PjJdKT4+M10sX1tWZT4+M109K19bYmUrMjQ+PjNdKX19d2hpbGUoMCk7RnQoayksRnQoTSksYj0rX1tPZT4+M10sdz0rX1tMZT4+M10sQT0rX1tSZT4+M10scD0rX1tIZT4+M10sZj0rX1tWZT4+M119X1tsKzM2OD4+M109YixfW2wrMzc2Pj4zXT13LF9bbCszNTI+PjNdPUEsX1tsKzMz''@;'; + put 'put ''Nj4+M109cCxfW2wrMzQ0Pj4zXT1mLGFlPXFlfWZ1bmN0aW9uIEZvZShsLGMpe2N8PTA7dmFyIEcscGUsVmUscWUsbnQsV2Usb3QsU3Qsa3QsbHQsY3QsU24sSG4sdXIsSHIsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEs9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJl''@;'; + put 'put ''PTAsSGU9MCxFdD0wLFp0PTAsYnQ9MCxhbj0wO1NuPWFlLGFlPWFlKzIyNHwwLGN0PVNuKzIwMHwwLFZlPVNuKzE2OHwwLFN0PVNuKzE0NHwwLFp0PVNuKzEyMHwwLGt0PVNuKzk2fDAsZj1TbisxODR8MCxPZT1TbisxNzZ8MCxMZT1TbisxNjB8MCxIZT1TbisxMzZ8MCxSZT1TbisxMTJ8MCxx''@;'; + put 'put ''ZT1Tbis4MHwwLG50PVNuKzQ4fDAsV2U9U24rMzJ8MCxvdD1TbisxNnwwLGJ0PVNuKzh8MCxhbj1TbixiZT0wfGFbKGx8PTApPj4yXSxhWyhsdD1Tbis2NHwwKT4+Ml09MCxhW2x0KzQ+PjJdPTAsYVtsdCs4Pj4yXT0wLGFbbHQrMTI+PjJdPTAsYVtadD4+Ml09YVsoRXQ9bCszNjh8MCk+PjJd''@;'; + put 'put ''LGFbWnQrND4+Ml09YVtFdCs0Pj4yXSxhW1p0Kzg+PjJdPWFbRXQrOD4+Ml0sYVtadCsxMj4+Ml09YVtFdCsxMj4+Ml0sMHxhWyhFdD1sKzM2MHwwKT4+Ml0mJihhW2N0Pj4yXT1hW1p0Pj4yXSxhW2N0KzQ+PjJdPWFbWnQrND4+Ml0sYVtjdCs4Pj4yXT1hW1p0Kzg+PjJdLGFbY3QrMTI+PjJd''@;'; + put 'put ''PWFbWnQrMTI+PjJdLHNrKGYsY3QpLGFbWnQ+PjJdPWFbZj4+Ml0sYVtadCs0Pj4yXT1hW2YrND4+Ml0sYVtadCs4Pj4yXT1hW2YrOD4+Ml0sYVtadCsxMj4+Ml09YVtmKzEyPj4yXSksYVtrdD4+Ml09YVsoZ2U9bCs0MTZ8MCk+PjJdLGFba3QrND4+Ml09YVtnZSs0Pj4yXSxhW2t0Kzg+PjJd''@;'; + put 'put ''PWFbZ2UrOD4+Ml0sYVtrdCsxMj4+Ml09YVtnZSsxMj4+Ml0sMCE9KDB8ZmVbYmUrMjk0Pj4wXSkmJjAhPSgzMiZhW2wrMTUyPj4yXXwwKT8oX1tTdD4+M109QT0rX1tiZSsyMzI+PjNdLTIqK19ba3Q+PjNdLF9bKFI9U3QrOHwwKT4+M109Yj0rX1tiZSsyNDA+PjNdLTIqK19ba3QrOD4+M10s''@;'; + put 'put ''QTwxZS00PyhhW2wrMTY0Pj4yXT0xLGY9MSk6KGFbKHA9bCsxNjR8MCk+PjJdPWY9fn4oKEQ9K19bWnQ+PjNdKS9BKSxELUEqKygwfGYpPjFlLTQmJihhW3A+PjJdPWY9ZisxfDApKSxiPDFlLTQ/KGFbbCsxNjg+PjJdPTEscD0xLG09K19bWnQrOD4+M10pOihhWyh3PWwrMTY4fDApPj4yXT1w''@;'; + put 'put ''PX5+KChtPStfW1p0Kzg+PjNdKS9iKSxtLWIqKygwfHApPjFlLTQmJihhW3c+PjJdPXA9cCsxfDApKSxhW2wrMjA0Pj4yXT0wfEFyKHAsZiksX1tadD4+M109RD0rX1soK19bWnQ+PjNdPEE/WnQ6U3QpPj4zXSxmPVIscD1adCxrPStfWyhtPGI/WnQ6U3QpKzg+PjNdLG09RCx3PTIxKTooMHxh''@;'; + put 'put ''W2wrNjg+PjJdPyhfW1N0Pj4zXT1BPShBPStfWzI0KyhmPTB8YVtsKzg0Pj4yXSk+PjNdLTIqK19ba3Q+PjNdKTwwPzA6QSxEPStfW2YrMzI+PjNdLTIqK19ba3QrOD4+M10sX1soZj1TdCs4fDApPj4zXT1ELEQ8MD8ocD1TdCx3PTE3KTpmPVN0KTooX1tTdCs4Pj4zXT0wLHA9U3QsZj1TdCx3''@;'; + put 'put ''PTE3KSwxNz09KDB8dykmJihfW2Y+PjNdPTAsZj1wLEE9K19bcD4+M10pLGFbbCsyMDQ+PjJdPTEsYVtsKzE2OD4+Ml09MSxhW2wrMTY0Pj4yXT0xLEE8KG09K19bWnQ+PjNdKSYmKF9bZj4+M109bSxBPW0pLChiPStfWyhmPVN0Kzh8MCk+PjNdKTwoaz0rX1tadCs4Pj4zXSk/KHA9U3Qsdz0y''@;'; + put 'put ''MSk6KEs9ZixrPWIpKSwyMT09KDB8dykmJihfW3ArOD4+M109ayxLPWYsaz0rX1tmPj4zXSksYVtsKzQ0OD4+Ml09fn4oKGI9LjAxMzg4ODg4ODg4ODg4ODg4OCorX1socGU9bCs0MzJ8MCk+PjNdKigyKihNPStfW2t0Pj4zXSkrQSkpKyhiPj0wPy41Oi0uNSkpLGFbbCs0NTI+PjJdPX5+KChE''@;'; + put 'put ''PS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bKGdlPWwrNDQwfDApPj4zXSooMiooYj0rX1soRz1rdCs4fDApPj4zXSkraykpKyhEPj0wPy41Oi0uNSkpLHc9bCsxODh8MCxSPWwrMTgwfDAscD1iZSsxOTZ8MCxhWyhmPWwrMTcyfDApPj4yXT0wLGFbZis0Pj4yXT0wLGFbZis4Pj4yXT0wLGFbZisx''@;'; + put 'put ''Mj4+Ml09MCxhW2YrMTY+PjJdPTAsYVtmKzIwPj4yXT0wLEhJKE9lLGwsMHxmZVthW3A+PjJdPj4wXSksT2U9MHxhWyhiZT1PZSkrND4+Ml0sYVsoZj1SKT4+Ml09YVtiZT4+Ml0sYVtmKzQ+PjJdPU9lLEhJKExlLGwsMHxmZVsxKygwfGFbcD4+Ml0pPj4wXSksTGU9MHxhWyhmPUxlKT4+Ml0s''@;'; + put 'put ''Zj0wfGFbZis0Pj4yXSxhWyhPZT13KT4+Ml09TGUsYVtPZSs0Pj4yXT1mLDE9PSgwfCgoMHwoTGU9KDB8YVtSPj4yXSkrTGV8MCkpPi0xP0xlOjAtTGV8MCkpJiYxPT0oMHwoKDB8KExlPSgwfGFbbCsxODQ+PjJdKStmfDApKT4tMT9MZTowLUxlfDApKXx8KEhJKEhlLGwsNjYpLEhlPTB8YVso''@;'; + put 'put ''T2U9SGUpKzQ+PjJdLGFbKExlPVIpPj4yXT1hW09lPj4yXSxhW0xlKzQ+PjJdPUhlLEhJKFJlLGwsNzYpLFJlPTB8YVsoTGU9UmUpKzQ+PjJdLGFbKEhlPXcpPj4yXT1hW0xlPj4yXSxhW0hlKzQ+PjJdPVJlLGFbVmU+PjJdPWFbcD4+Ml0sJHIoMCwxMDA3MzIsVmUpKSwwfGZlWzgyKygwfGFb''@;'; + put 'put ''OCsoMHxhW2MrMTY+PjJdKT4+Ml0pPj4wXT8oQT5tP19bbHQ+PjNdPWs9LjUqKEEtbSk6az0wLChBPStfW0s+PjNdKT4oRD0rX1tadCs4Pj4zXSk/X1tsdCs4Pj4zXT1BPS41KihBLUQpOkE9MCk6KEE9MCxrPTApLDB8YVtFdD4+Ml0/KGFbY3Q+PjJdPWFbWnQ+PjJdLGFbY3QrND4+Ml09YVta''@;'; + put 'put ''dCs0Pj4yXSxhW2N0Kzg+PjJdPWFbWnQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtadCsxMj4+Ml0sc2socWUsY3QpLGFbWnQ+PjJdPWFbcWU+PjJdLGFbWnQrND4+Ml09YVtxZSs0Pj4yXSxhW1p0Kzg+PjJdPWFbcWUrOD4+Ml0sYVtadCsxMj4+Ml09YVtxZSsxMj4+Ml0sYVtjdD4+Ml09YVtTdD4+''@;'; + put 'put ''Ml0sYVtjdCs0Pj4yXT1hW1N0KzQ+PjJdLGFbY3QrOD4+Ml09YVtTdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW1N0KzEyPj4yXSxzayhudCxjdCksYVtTdD4+Ml09YVtudD4+Ml0sYVtTdCs0Pj4yXT1hW250KzQ+PjJdLGFbU3QrOD4+Ml09YVtudCs4Pj4yXSxhW1N0KzEyPj4yXT1hW250KzEyPj4y''@;'; + put 'put ''XSxhW2N0Pj4yXT1hW2t0Pj4yXSxhW2N0KzQ+PjJdPWFba3QrND4+Ml0sYVtjdCs4Pj4yXT1hW2t0Kzg+PjJdLGFbY3QrMTI+PjJdPWFba3QrMTI+PjJdLHNrKFdlLGN0KSxhW2t0Pj4yXT1hW1dlPj4yXSxhW2t0KzQ+PjJdPWFbV2UrND4+Ml0sYVtrdCs4Pj4yXT1hW1dlKzg+PjJdLGFba3Qr''@;'; + put 'put ''MTI+PjJdPWFbV2UrMTI+PjJdLGFbY3Q+PjJdPWFbbHQ+PjJdLGFbY3QrND4+Ml09YVtsdCs0Pj4yXSxhW2N0Kzg+PjJdPWFbbHQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtsdCsxMj4+Ml0sc2sob3QsY3QpLGFbbHQ+PjJdPWFbb3Q+PjJdLGFbbHQrND4+Ml09YVtvdCs0Pj4yXSxhW2x0Kzg+PjJd''@;'; + put 'put ''PWFbb3QrOD4+Ml0sYVtsdCsxMj4+Ml09YVtvdCsxMj4+Ml0sTT0rX1trdD4+M10saz0rX1tsdD4+M10sYj0rX1tHPj4zXSxBPStfW2x0Kzg+PjNdLG09K19bWnQ+PjNdLHc9MD09KDB8YVtFdD4+Ml0pKTp3PTEsX1tsKzM4ND4+M109RD1rK00sX1tsKzM5Mj4+M109dXI9QStiLF9bbCs0MDA+''@;'; + put 'put ''PjNdPUhuPWsrTSttLF9bbCs0MDg+PjNdPU09QStiKyhIcj0rX1tadCs4Pj4zXSksX1tsKzMyMD4+M109bS8oaz0rX1tsKzM1Mj4+M10pLF9bbCszMjg+PjNdPUhyL2ssYVsocD1sKzQ1NnwwKT4+Ml09fn4oKEQ9LjAxMzg4ODg4ODg4ODg4ODg4OCpEKihrPStfW3BlPj4zXSkpKyhEPj0wPy41''@;'; + put 'put ''Oi0uNSkpLGFbbCs0NjA+PjJdPX5+KChiPS4wMTM4ODg4ODg4ODg4ODg4ODgqdXIqKEQ9K19bZ2U+PjNdKSkrKGI+PTA/LjU6LS41KSksYVsoZj1sKzQ2NHwwKT4+Ml09fn4oKGsqPS4wMTM4ODg4ODg4ODg4ODg4ODgqSG4pKyhrPj0wPy41Oi0uNSkpLGFbbCs0Njg+PjJdPX5+KChEKj0uMDEz''@;'; + put 'put ''ODg4ODg4ODg4ODg4ODg4Kk0pKyhEPj0wPy41Oi0uNSkpLHd8fChhW2N0Pj4yXT1hW3A+PjJdLGFbY3QrND4+Ml09YVtwKzQ+PjJdLFBJKGJ0LGN0KSxidD0wfGFbKFp0PWJ0KSs0Pj4yXSxhWyhsPXApPj4yXT1hW1p0Pj4yXSxhW2wrND4+Ml09YnQsYVtjdD4+Ml09YVtmPj4yXSxhW2N0KzQ+''@;'; + put 'put ''PjJdPWFbZis0Pj4yXSxQSShhbixjdCksYnQ9MHxhWyhsPWFuKSs0Pj4yXSxhWyhhbj1mKT4+Ml09YVtsPj4yXSxhW2FuKzQ+PjJdPWJ0KSxhZT1Tbn1mdW5jdGlvbiBzayhsLGMpe3ZhciBmO2Y9K19bKGN8PTApPj4zXSxfWyhsfD0wKT4+M109K19bYys4Pj4zXSxfW2wrOD4+M109Zn1mdW5j''@;'; + put 'put ''dGlvbiBISShsLGMsZil7c3dpdGNoKGx8PTAsY3w9MCwoZj0oKGZ8PTApPDwyND4+MjQpLTY2fDApPj4+MXxmPDwzMXwwKXtjYXNlIDk6YVtjKzE3Nj4+Ml09KDB8YVtjKzE2OD4+Ml0pLTEsYz0wLGY9LTE7YnJlYWs7Y2FzZSAwOmM9MCxmPTE7YnJlYWs7Y2FzZSA1OmM9MSxmPTA7YnJlYWs7''@;'; + put 'put ''Y2FzZSA4OmFbYysxNzI+PjJdPSgwfGFbYysxNjQ+PjJdKS0xLGM9LTEsZj0wO2JyZWFrO2RlZmF1bHQ6Yz0wLGY9MH1hW2w+PjJdPWMsYVtsKzQ+PjJdPWZ9ZnVuY3Rpb24gVm9lKGwsYyl7dmFyIGYscCxtLEE7Zm9yKGx8PTAsX1s0OCsoZj0wfGFbMTYrKGN8PTApPj4yXSk+PjNdPShBPStf''@;'; + put 'put ''W2YrMTY+PjNdKS0rX1tmKzg4Pj4zXSxfW2YrNTY+PjNdPShwPStfW2YrMjQ+PjNdKS0obT0uNSorX1tmKzgwPj4zXSksX1tmKzY0Pj4zXT0rX1tmKzk2Pj4zXStBLF9bZis3Mj4+M109bStwLGM9MHx3MChsLGMpO2M7KWpvZShjKSxjPTB8UzAobCxjKX1mdW5jdGlvbiBqb2UobCl7MHwobD0w''@;'; + put 'put ''fGFbOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSkmJmZ1bmN0aW9uIFpvZShsKXt2YXIgdyxiLGssTSxELFIsRyxLLHBlLGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLG50LG90LGM9MCxmPTAscD0wLG09MCxBPTAsV2U9MDtvdD1hZSxhZT1hZSsyNDB8MCxMZT1vdCsxOTJ8MCxPZT1vdCsxNzZ8''@;'; + put 'put ''MCxSZT1vdCs2NHwwLEhlPW90KzMyfDAsVmU9b3QscWU9b3QrMTQ0fDAsbnQ9b3QrMTEyfDAsKDB8YVsoV2U9NCsobHw9MCl8MCk+PjJdKTw9MCYmUHIoMTAxMTQwLDk5OTA2LDM5OTQsMTAxMTU0KSxwPWM9MHxhW2w+PjJdLG09KGY9UmUpKzQ4fDA7ZG97YVtmPj4yXT1hW3A+PjJdLGY9Zis0''@;'; + put 'put ''fDAscD1wKzR8MH13aGlsZSgoMHxmKTwoMHxtKSk7cD1jLG09KGY9TGUpKzQ4fDA7ZG97YVtmPj4yXT1hW3A+PjJdLGY9Zis0fDAscD1wKzR8MH13aGlsZSgoMHxmKTwoMHxtKSk7Zm9yKHk3KEhlLExlKSx3PUhlKzh8MCxiPVZlKzh8MCxrPUhlKzE2fDAsTT1WZSsxNnwwLEQ9SGUrMjR8MCxS''@;'; + put 'put ''PVZlKzI0fDAsRz1SZSs4fDAsSz1SZSsxMnwwLHBlPVJlKzMyfDAsZ2U9UmUrNHwwLGJlPVJlKzE2fDAsQT0wOyEoKDB8QSk+PSgwfGFbV2U+PjJdKSk7KXtpZigoMHxBKT4wKXtwPWM9KDB8YVtsPj4yXSkrKDQ4KkF8MCl8MCxtPShmPVJlKSs0OHwwO2Rve2FbZj4+Ml09YVtwPj4yXSxmPWYr''@;'; + put 'put ''NHwwLHA9cCs0fDB9d2hpbGUoKDB8Zik8KDB8bSkpO3A9YyxtPShmPUxlKSs0OHwwO2Rve2FbZj4+Ml09YVtwPj4yXSxmPWYrNHwwLHA9cCs0fDB9d2hpbGUoKDB8Zik8KDB8bSkpO3k3KFZlLExlKSxfW0hlPj4zXT0rX1soK19bSGU+PjNdPCtfW1ZlPj4zXT9IZTpWZSk+PjNdLF9bdz4+M109''@;'; + put 'put ''K19bKCtfW3c+PjNdPCtfW2I+PjNdP0hlOlZlKSs4Pj4zXSxfW2s+PjNdPStfWygrX1trPj4zXT4rX1tNPj4zXT9IZTpWZSkrMTY+PjNdLF9bRD4+M109K19bKCtfW0Q+PjNdPitfW1I+PjNdP0hlOlZlKSsyND4+M119MHwoYz0wfGFbRz4+Ml0pJiYobT0wfGFbUmU+PjJdLGFbT2U+PjJdPWFb''@;'; + put 'put ''YmU+PjJdLGFbT2UrND4+Ml09YVtiZSs0Pj4yXSxhW09lKzg+PjJdPWFbYmUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtiZSsxMj4+Ml0sYVtMZT4+Ml09YVttPj4yXSxhW0xlKzQ+PjJdPWFbbSs0Pj4yXSxhW0xlKzg+PjJdPWFbbSs4Pj4yXSxhW0xlKzEyPj4yXT1hW20rMTI+PjJdLFBBKHFlLE9l''@;'; + put 'put ''LExlLDEpLGFbVmU+PjJdPWFbcWU+PjJdLGFbVmUrND4+Ml09YVtxZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbcWUrOD4+Ml0sYVtWZSsxMj4+Ml09YVtxZSsxMj4+Ml0sYVtWZSsxNj4+Ml09YVtxZSsxNj4+Ml0sYVtWZSsyMD4+Ml09YVtxZSsyMD4+Ml0sYVtWZSsyND4+Ml09YVtxZSsyND4+Ml0s''@;'; + put 'put ''YVtWZSsyOD4+Ml09YVtxZSsyOD4+Ml0sX1tIZT4+M109K19bKCtfW0hlPj4zXTwrX1tWZT4+M10/SGU6VmUpPj4zXSxfW3c+PjNdPStfWygrX1t3Pj4zXTwrX1tiPj4zXT9IZTpWZSkrOD4+M10sX1trPj4zXT0rX1soK19baz4+M10+K19bTT4+M10/SGU6VmUpKzE2Pj4zXSxfW0Q+PjNdPStf''@;'; + put 'put ''WygrX1tEPj4zXT4rX1tSPj4zXT9IZTpWZSkrMjQ+PjNdKSwwfChjPTB8YVtLPj4yXSkmJihtPSgwfGFbUmU+PjJdKSsoKDB8YVtnZT4+Ml0pLTE8PDQpfDAsYVtPZT4+Ml09YVtwZT4+Ml0sYVtPZSs0Pj4yXT1hW3BlKzQ+PjJdLGFbT2UrOD4+Ml09YVtwZSs4Pj4yXSxhW09lKzEyPj4yXT1h''@;'; + put 'put ''W3BlKzEyPj4yXSxhW0xlPj4yXT1hW20+PjJdLGFbTGUrND4+Ml09YVttKzQ+PjJdLGFbTGUrOD4+Ml09YVttKzg+PjJdLGFbTGUrMTI+PjJdPWFbbSsxMj4+Ml0sUEEobnQsT2UsTGUsMSksYVtWZT4+Ml09YVtudD4+Ml0sYVtWZSs0Pj4yXT1hW250KzQ+PjJdLGFbVmUrOD4+Ml09YVtudCs4''@;'; + put 'put ''Pj4yXSxhW1ZlKzEyPj4yXT1hW250KzEyPj4yXSxhW1ZlKzE2Pj4yXT1hW250KzE2Pj4yXSxhW1ZlKzIwPj4yXT1hW250KzIwPj4yXSxhW1ZlKzI0Pj4yXT1hW250KzI0Pj4yXSxhW1ZlKzI4Pj4yXT1hW250KzI4Pj4yXSxfW0hlPj4zXT0rX1soK19bSGU+PjNdPCtfW1ZlPj4zXT9IZTpWZSk+''@;'; + put 'put ''PjNdLF9bdz4+M109K19bKCtfW3c+PjNdPCtfW2I+PjNdP0hlOlZlKSs4Pj4zXSxfW2s+PjNdPStfWygrX1trPj4zXT4rX1tNPj4zXT9IZTpWZSkrMTY+PjNdLF9bRD4+M109K19bKCtfW0Q+PjNdPitfW1I+PjNdP0hlOlZlKSsyND4+M10pLEE9QSsxfDB9YVsoV2U9bCs4fDApPj4yXT1hW0hl''@;'; + put 'put ''Pj4yXSxhW1dlKzQ+PjJdPWFbSGUrND4+Ml0sYVtXZSs4Pj4yXT1hW0hlKzg+PjJdLGFbV2UrMTI+PjJdPWFbSGUrMTI+PjJdLGFbV2UrMTY+PjJdPWFbSGUrMTY+PjJdLGFbV2UrMjA+PjJdPWFbSGUrMjA+PjJdLGFbV2UrMjQ+PjJdPWFbSGUrMjQ+PjJdLGFbV2UrMjg+PjJdPWFbSGUrMjg+''@;'; + put 'put ''PjJdLGFlPW90fShsKX1mdW5jdGlvbiB5NyhsLGMpe2x8PTA7dmFyIGYscCxtLEEsdyxiLGssTSxELFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wO2ZvcihEPWFlLGFlPWFlKzQ4fDAsdz1EKzMyfDAsYj1ELCgwfChrPTB8YVs0KyhjfD0wKT4+Ml0pKTw9MCYmUHIoMTAxMTcwLDk5OTA2LDM5''@;'; + put 'put ''NjgsMTAxMTgyKSwxIT0oMHwoaz4+PjApJTMpJiZQcigxMDExOTIsOTk5MDYsMzk2OSwxMDExODIpLGFbKE09YisxNnwwKT4+Ml09YVsoZj0wfGFbYz4+Ml0pPj4yXSxhW00rND4+Ml09YVtmKzQ+PjJdLGFbTSs4Pj4yXT1hW2YrOD4+Ml0sYVtNKzEyPj4yXT1hW2YrMTI+PjJdLGFbYj4+Ml09''@;'; + put 'put ''YVtmPj4yXSxhW2IrND4+Ml09YVtmKzQ+PjJdLGFbYis4Pj4yXT1hW2YrOD4+Ml0sYVtiKzEyPj4yXT1hW2YrMTI+PjJdLHA9dys4fDAsbT1iKzh8MCxBPWIrMjR8MCxjPTE7ISgoMHxjKT49KDB8aykpOylHPStfW2YrKGM8PDQpKzg+PjNdLFI9K19bZisoKGJlPWMrMXwwKTw8NCkrOD4+M10s''@;'; + put 'put ''X1t3Pj4zXT1wZT0uNSooK19bZisoYmU8PDQpPj4zXSsgK19bZisoYzw8NCk+PjNdKSxfW3A+PjNdPUc9LjUqKFIrRyksX1tiPj4zXT1SPStfWygrX1tiPj4zXTxwZT9iOncpPj4zXSxfW20+PjNdPWdlPStfWygrX1ttPj4zXTxHP2I6dykrOD4+M10sX1tNPj4zXT1wZT0rX1soK19bTT4+M10+''@;'; + put 'put ''cGU/TTp3KT4+M10sX1tBPj4zXT1HPStfWygrX1tBPj4zXT5HP006dykrOD4+M10sYVt3Pj4yXT1hWyhiZT1mKyhjKzI8PDQpfDApPj4yXSxhW3crND4+Ml09YVtiZSs0Pj4yXSxhW3crOD4+Ml09YVtiZSs4Pj4yXSxhW3crMTI+PjJdPWFbYmUrMTI+PjJdLF9bYj4+M109K19bKFI8KEs9K19b''@;'; + put 'put ''dz4+M10pP2I6dyk+PjNdLF9bbT4+M109K19bKGdlPChSPStfW3A+PjNdKT9iOncpKzg+PjNdLF9bTT4+M109K19bKHBlPks/TTp3KT4+M10sX1tBPj4zXT0rX1soRz5SP006dykrOD4+M10sYz1jKzN8MDthW2w+PjJdPWFbYj4+Ml0sYVtsKzQ+PjJdPWFbYis0Pj4yXSxhW2wrOD4+Ml09YVti''@;'; + put 'put ''Kzg+PjJdLGFbbCsxMj4+Ml09YVtiKzEyPj4yXSxhW2wrMTY+PjJdPWFbYisxNj4+Ml0sYVtsKzIwPj4yXT1hW2IrMjA+PjJdLGFbbCsyND4+Ml09YVtiKzI0Pj4yXSxhW2wrMjg+PjJdPWFbYisyOD4+Ml0sYWU9RH1mdW5jdGlvbiBOSShsLGMsZil7dmFyIE0sYixwPTAsbT0wLEE9MCx3PTAs''@;'; + put 'put ''az0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MDtiPSEoTT0hKChnZT0rX1sobHw9MCk+PjNdKT49KGJlPStfWyhmfD0wKT4+M10pKSkmJmdlPD0rX1tmKzE2Pj4zXSYmKG09K19bbCs4Pj4zXSk+PStfW2YrOD4+M10/bTw9K19bZisyND4+M106MCwobT0rX1soY3w9MCk+PjNdKT49''@;'; + put 'put ''YmUmJm08PStfW2YrMTY+PjNdJiYoQT0rX1tjKzg+PjNdKT49K19bZis4Pj4zXT9iXihwPUE8PStfW2YrMjQ+PjNdKT9wPTA6YiZwP3A9MTpEPTExOmI/cD0wOkQ9MTE7ZTpkb3tpZigxMT09KDB8RCkpe3BlPStfW2wrOD4+M107ZG97aWYoZ2U9PW0pe2lmKCEoTXxwZT49KGJlPStfW2YrOD4+''@;'; + put 'put ''M10pXitfW2MrOD4+M10+PWJlXjEpJiZnZTw9K19bZisxNj4+M10pe3A9MDticmVhayBlfX1lbHNle2lmKHBlPT0oaz0rX1tjKzg+PjNdKSl7aWYoIShnZT49YmVebT49YmUmJnBlPj0rX1tmKzg+PjNdKSlicmVhaztpZihwZTw9K19bZisyND4+M10pe3A9MDticmVhayBlfWJyZWFrfWlmKEs9''@;'; + put 'put ''KGstcGUpLyhtLWdlKSwhKCEoYmU+PSh3PShEPWdlPG0pP2dlOm0pKXwhKGJlPD0obT1EP206Z2UpKXwhKChBPShiZS1nZSkqSytwZSk+PShSPStfW2YrOD4+M10pKSkmJkE8PStfW2YrMjQ+PjNdKXtwPTA7YnJlYWsgZX1pZigoQT0oKEc9K19bZisxNj4+M10pLWJlKSpLK0EpPj1SJiYhKCEo''@;'; + put 'put ''Rzw9bSl8KEc+PXc/IShBPD0rX1tmKzI0Pj4zXSk6MSkpKXtwPTA7YnJlYWsgZX1pZih3PShEPXBlPGspP3BlOmssQT1EP2s6cGUsKG09KFItcGUpL0srZ2UpPj1iZSYmISghKFI8PUEpfCEoUj49dyl8IShtPD1HKSkpe3A9MDticmVhayBlfWlmKChnZT0oKHBlPStfW2YrMjQ+PjNdKS1SKS9L''@;'; + put 'put ''K20pPj1iZSYmISghKHBlPD1BKXwhKHBlPj13KXwhKGdlPD1HKSkpe3A9MDticmVhayBlfX19d2hpbGUoMCk7cD0tMX19d2hpbGUoMCk7cmV0dXJuIDB8cH1mdW5jdGlvbiBWSShsKXt2YXIgYyxmO19bMzIrKGx8PTApPj4zXT1mPStfWyhjPWwrMTZ8MCk+PjNdLF9bbCs0OD4+M109ZixfW2wr''@;'; + put 'put ''NDA+PjNdPStfW2wrMjQ+PjNdLF9bbCs1Nj4+M109K19bbCs4Pj4zXSxfW2M+PjNdPStfW2w+PjNdfWZ1bmN0aW9uIGlRKGwsYyxmKXt2YXIgcCxtLEEsdztsfD0wLGN8PTAsKDB8YVs0NzEzMV0pIT0oMHwoZnw9MCkpJiYoc0woLjE1OTE1NDk0MzA5MTg5NTM1KisoMHxmKSwxODYzMjgsMTg2''@;'; + put 'put ''MzM2KSxhWzQ3MTMxXT1mKSxfW2w+PjNdPShwPStfWzIzMjkyXSkqKEE9K19bYz4+M10pLSh3PStfWzIzMjkxXSkqKG09K19bYys4Pj4zXSksX1tsKzg+PjNdPXcqQSttKnB9ZnVuY3Rpb24gakkobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxBLHcsayxwPTAsYj0wO2s9YWUsYWU9YWUrMTZ8MCxt''@;'; + put 'put ''PWsscD0rX1soY3w9MCk+PjNdLEE9K19bKHc9Yys4fDApPj4zXTtlOmRve3N3aXRjaCgwfGYpe2Nhc2UgMDpiPTExO2JyZWFrO2Nhc2UgOTA6X1tjPj4zXT1BLHA9LXAsYj0xMDticmVhaztjYXNlIDE4MDpwPS1BLGI9MTA7YnJlYWs7Y2FzZSAyNzA6X1tjPj4zXT1BLGI9MTA7YnJlYWs7ZGVm''@;'; + put 'put ''YXVsdDppZigoMHxmKTwwKXthW20+PjJdPWFbYz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxVNihsLG0sMC1mfDApO2JyZWFrIGV9aWYoKDB8Zik+MzYwKXthW20+PjJdPWFbYz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4y''@;'; + put 'put ''XSxhW20rOD4+Ml09YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxqSShsLG0sKGY+Pj4wKSUzNjB8MCk7YnJlYWsgZX1hW20+PjJdPWFbYz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxpUShsLG0sZik7YnJl''@;'; + put 'put ''YWsgZX19d2hpbGUoMCk7MTA9PSgwfGIpJiYoX1t3Pj4zXT1wLGI9MTEpLDExPT0oMHxiKSYmKGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdKSxhZT1rfWZ1bmN0aW9uIFU2KGwsYyxmKXtsfD0wLGZ8''@;'; + put 'put ''PTA7dmFyIG0sQSx3LGsscD0wLGI9MDtrPWFlLGFlPWFlKzE2fDAsbT1rLHA9K19bKGN8PTApPj4zXSxBPStfWyh3PWMrOHwwKT4+M107ZTpkb3tzd2l0Y2goMHxmKXtjYXNlIDA6Yj0xMTticmVhaztjYXNlIDkwOl9bYz4+M109LUEsYj0xMDticmVhaztjYXNlIDE4MDpwPS1BLGI9MTA7YnJl''@;'; + put 'put ''YWs7Y2FzZSAyNzA6X1tjPj4zXT1BLGI9MTA7YnJlYWs7ZGVmYXVsdDppZigoMHxmKTwwKXthW20+PjJdPWFbYz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxqSShsLG0sMC1mfDApO2JyZWFrIGV9aWYoKDB8Zik+MzYw''@;'; + put 'put ''KXthW20+PjJdPWFbYz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxVNihsLG0sKGY+Pj4wKSUzNjB8MCk7YnJlYWsgZX1hW20+PjJdPWFbYz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJd''@;'; + put 'put ''LGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxpUShsLG0sMzYwLWZ8MCk7YnJlYWsgZX19d2hpbGUoMCk7MTA9PSgwfGIpJiYoX1t3Pj4zXT1wLGI9MTEpLDExPT0oMHxiKSYmKGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1h''@;'; + put 'put ''W2MrMTI+PjJdKSxhZT1rfWZ1bmN0aW9uIHpvZShsLGMsZil7dmFyIG0sQSx3LHA9MDtBPShwPStfWzgrKGZ8PTApPj4zXSkrICtfWyhjfD0wKT4+M10sbT0odz0rX1tmPj4zXSkrICtfW2MrMjQ+PjNdLHArPStfW2MrMTY+PjNdLF9bKGx8PTApPj4zXT13KyArX1tjKzg+PjNdLF9bbCs4Pj4z''@;'; + put 'put ''XT1BLF9bbCsxNj4+M109bSxfW2wrMjQ+PjNdPXB9ZnVuY3Rpb24gb1EobCxjLGYpe3ZhciBwLG0sdyxBPTA7cmV0dXJuIEE9KCtfWzgrKGZ8PTApPj4zXS0odz0rX1s4KyhsfD0wKT4+M10pKSoocD0rX1soY3w9MCk+PjNdLShBPStfW2w+PjNdKSktKCtfW2Y+PjNdLUEpKihtPStfW2MrOD4+''@;'; + put 'put ''M10tdyksKygoQSo9QSk8MWUtMTA/MDpBLyhtKm0rcCpwKSl9ZnVuY3Rpb24gYVEobCxjLGYpe3ZhciBwLG0sQTtmfD0wLEE9YWUsYWU9YWUrMTZ8MCxtPUErOHwwLHA9QSwwfChsPTB8TGkobHw9MCxjfD0wKSkmJihhW20+PjJdPXAsKDB8aWwobCwxMDEyMDksbSkpPjApJiYoX1tmPj4zXT0r''@;'; + put 'put ''X1twPj4zXSksYWU9QX1mdW5jdGlvbiBzUShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHcsYixNLEQscD0wLG09MCxBPTAsaz0wO0Q9YWUsYWU9YWUrNDh8MCxrPUQrMzJ8MCxBPUQrMTZ8MCxiPUQrOHwwLHc9RCxmZVsoTT1EKzQwfDApPj4wXT0wLGw9MHxMaShsLGMpO2Rve2lmKGwpe2lm''@;'; + put 'put ''KGFbQT4+Ml09YixhW0ErND4+Ml09dyxhW0ErOD4+Ml09TSwoQT0oMHxpbChsLDEwMTc0OSxBKSk+MSkmKG09K19bYj4+M10pPjAmKHA9K19bdz4+M10pPjApe19bZj4+M109KygwfH5+KChtKj03MikrKG0+PTA/LjU6LS41KSkpLF9bZis4Pj4zXT0rKDB8fn4oKG09NzIqcCkrKG0+PTA/LjU6''@;'; + put 'put ''LS41KSkpLGw9MzM9PSgwfGZlW00+PjBdKTticmVha31mZVtNPj4wXT0wLGFbaz4+Ml09YixhW2srND4+Ml09TSwoaz0oMHxpbChsLDEwMTc1OSxrKSk+MCkmKHA9K19bYj4+M10pPjA/KF9bZj4+M109bT0rKDB8fn4oKG09NzIqcCkrKG0+PTA/LjU6LS41KSkpLF9bZis4Pj4zXT1tLGw9MzM9''@;'; + put 'put ''PSgwfGZlW00+PjBdKSk6bD0wfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiBhZT1ELDEmbHwwfWZ1bmN0aW9uIHVrKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2M9MHxMaShsfD0wLDEwODIyNCk7ZG97aWYoMHxjJiYwfGZlW2M+PjBdKXtmZVsoZj0xMTMrKDB8YVsxNisoMHxhW2wrNjA+''@;'; + put 'put ''PjJdKT4+Ml0pfDApPj4wXT04fGZlW2Y+PjBdLGM9MHxKNShsLGMsKGY9MCE9KDB8T28oYykpKT8yOjAsbT0rTWwobCwwfHNpKGwsMCwxMDE0MjgsMCksMTQsMSksQT0wfEJhKGwsMHxzaShsLDAsMTAxNDM3LDApLDEwNzk5NCksMHxCYShsLDB8c2kobCwwLDEwMTQ0NiwwKSwxMzczMTQpKSxh''@;'; + put 'put ''WzEyKygwfGFbKEE9bCsxNnwwKT4+Ml0pPj4yXT1jLGY9MCE9KDB8KGM9MHxMaShsLDEwNTYyOCkpKTtkb3tpZigoMHxkaShsKSk9PSgwfGwpKXtpZihmJiYxMTY9PSgwfGZlW2M+PjBdKSl7Yz0xO2JyZWFrfWM9MH1lbHNle2lmKGYmJjk4PT0oMHxmZVtjPj4wXSkpe2M9MDticmVha31jPTF9''@;'; + put 'put ''fXdoaWxlKDApO2Y9MHxMaShsLDEwMTcyNik7ZTpkb3tpZihmKXN3aXRjaCgwfGZlW2Y+PjBdKXtjYXNlIDEwODpjfD0yO2JyZWFrIGU7Y2FzZSAxMTQ6Y3w9NDticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX19d2hpbGUoMCk7aWYoZmVbMjc1KygwfGFbQT4+Ml0pPj4wXT1jLCgwfGRpKGwpKSE9''@;'; + put 'put ''KDB8bCkpe2lmKHA9K19bMjQrKGM9MHxhWzEyKygwfGFbQT4+Ml0pPj4yXSk+PjNdKzE2LG09K19bYyszMj4+M10rOCxsPTA9PSgxJmFbMTE2KygwfGFbMTYrKDB8ZGkobCkpPj4yXSk+PjJdfDApLGY9ZmVbMjc1KyhjPTB8YVtBPj4yXSk+PjBdPDwxJjIsbCl7X1tjKzQ4KygobD0yNTUmZik8''@;'; + put 'put ''PDQpPj4zXT1wLF9bYys0OCsobDw8NCkrOD4+M109bTticmVha31fW2MrNDgrKChsPTI1NSYoM15mKSk8PDQpPj4zXT1tLF9bYys0OCsobDw8NCkrOD4+M109cDticmVha319fXdoaWxlKDApfWZ1bmN0aW9uIHc3KGwsYyl7bHw9MDt2YXIgTSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7''@;'; + put 'put ''aWYocD0wfGFbKGN8PTApPj4yXSxhWyhNPWMrMjR8MCk+PjJdPTAsYVtNKzQ+PjJdPTAsYVtNKzg+PjJdPTAsYVtNKzEyPj4yXT0wLDB8ZmVbcD4+MF0pe3c9MHxRbigxKygwfFVvKHApKXwwKSxmZVt3Pj4wXT0wLGI9YysxMnwwLGY9dztlOmZvcig7Oyl7dDpmb3IoOzspe2lmKEE9cCsxfDAs''@;'; + put 'put ''ISgobT0wfGZlW3A+PjBdKTw8MjQ+PjI0KSlicmVhayBlO2lmKCEobTw8MjQ+PjI0PT0tMXwoMjU1Jm0pPDE2MXwyIT0oMHxhW2I+PjJdKSkpe2lmKGZlW2Y+PjBdPW0sbT1mKzJ8MCxmZVtmKzE+PjBdPUE9MHxmZVtBPj4wXSxBPDwyND4+MjQpe2Y9bSxwPXArMnwwO2NvbnRpbnVlfWY9bTti''@;'; + put 'put ''cmVhayBlfXN3aXRjaChtPDwyND4+MjQpe2Nhc2UgOTI6YnJlYWsgdDtjYXNlIDEwOms9MTI7YnJlYWsgdH1mZVtmPj4wXT1tLGY9ZisxfDAscD1BfWlmKDEyIT0oMHxrKSl7c3dpdGNoKChtPTB8ZmVbQT4+MF0pPDwyND4+MjR8MCl7Y2FzZSAxMTQ6Y2FzZSAxMDg6Y2FzZSAxMTA6bT1mKzF8''@;'; + put 'put ''MCxmZVtmPj4wXT0wLFpJKGwsYyx3LDB8ZmVbQT4+MF0pLGY9bTticmVhaztkZWZhdWx0OmZlW2Y+PjBdPW0sZj1mKzF8MCxtPXd9dz1tLHA9MD09KDB8ZmVbQT4+MF0pP0E6cCsyfDB9ZWxzZSBrPTAscD1mKzF8MCxmZVtmPj4wXT0wLFpJKGwsYyx3LDExMCksZj1wLHc9cCxwPUF9KDB8dykh''@;'; + put 'put ''PSgwfGYpJiYoZmVbZj4+MF09MCxaSShsLGMsdywxMTApKSxhWyhjPWMrNDB8MCk+PjJdPWFbTT4+Ml0sYVtjKzQ+PjJdPWFbTSs0Pj4yXSxhW2MrOD4+Ml09YVtNKzg+PjJdLGFbYysxMj4+Ml09YVtNKzEyPj4yXX19ZnVuY3Rpb24gWkkobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIE0s''@;'; + put 'put ''RCxSLEssayxtPTAsQT0wLHc9MCxiPTAsRz0wO0s9YWUsYWU9YWUrMzJ8MCxSPUsrMTZ8MCxEPUssdz0wfHJ0WyhHPTc2KyhjfD0wKXwwKT4+MV0saz0oYj0wfGFbKE09Yys3MnwwKT4+Ml0pPzB8QkgoYix3KzJ8MCw1Nix3KzF8MCk6MHx2cigxMTIrKDU2Knd8MCl8MCksYVtNPj4yXT1rLGFb''@;'; + put 'put ''KGI9aysoNTYqKHc9MHxydFtHPj4xXSl8MCl8MCk+PjJdPWYsZmVbaysoNTYqd3wwKSs0OD4+MF09cCwwIT0oMHxmKSYmMCE9KDB8ZmVbZj4+MF0pPyhhWzQ2NTk0XT1hW2MrND4+Ml0sX1syMzI5OV09K19bYysxNj4+M10sYVtrKyg1Nip3fDApKzQ+PjJdPTB8bWlbNjMmYVsocD0wfGFbbCsx''@;'; + put 'put ''NDQ+PjJdKT4+Ml1dKHAsMTg2Mzc2LDEpLGVEKEQsbCxiKSxfW1I+PjNdPUE9K19bRD4+M10sbT0rX1tEKzg+PjNdKTooX1tSPj4zXT0wLF9baysoNTYqd3wwKSs0MD4+M109bT0rKDB8fn4oMS4yKitfW2MrMTY+PjNdKSksQT0wKSxydFtHPj4xXT0xKygwfHJ0W0c+PjFdKTw8MTY+PjE2LF9b''@;'; + put 'put ''KEc9YysyNHwwKT4+M109K19bKCtfW0c+PjNdPkE/RzpSKT4+M10sX1soRz1jKzMyfDApPj4zXT0rX1tHPj4zXSttLGFlPUt9ZnVuY3Rpb24gSjUobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHA9K3AsbXw9MCxBfD0wO3ZhciB3LEcscGUsZ2UsYj0wLGs9MCxNPTAsRD0wLFI9MCxLPTA7''@;'; + put 'put ''c3dpdGNoKGdlPWFlLGFlPWFlKzMyfDAsRz1nZSsxNnwwLFI9Z2UrOHwwLEQ9Z2UscGU9MHx2cig4OCksMHxraShsKSl7Y2FzZSAwOmI9MCxLPTB8YVtsKzYwPj4yXSxrPWwsTT0wO2JyZWFrO2Nhc2UgMTpiPTAsSz0wfGRpKDB8Y3IobCkpLGs9MCxNPWw7YnJlYWs7Y2FzZSAyOmI9bCxLPTB8''@;'; + put 'put ''ZGkoMHxjcigwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pKSxrPTAsTT0wO2JyZWFrO2RlZmF1bHQ6Yj0wLEs9MCxrPTAsTT0wfWFbcGUrND4+Ml09bSxhW3BlKzg+PjJdPUEsX1twZSsxNj4+M109cCxhWyhBPXBlKzEyfDApPj4yXT1KdFsxMTUrKDB8YVsodz1LKzE2''@;'; + put 'put ''fDApPj4yXSk+PjBdO2U6ZG97aWYoNCZmKWFbcGU+PjJdPTB8cmEoYyksMiZmfDAmJihmZVtwZSs4Mj4+MF09MSk7ZWxzZSBzd2l0Y2goMHxmKXtjYXNlIDI6aWYoYVtwZT4+Ml09MHxyYShjKSxmZVtwZSs4Mj4+MF09MSwhKDB8djYobCxwZSkpKWJyZWFrIGU7c3dpdGNoKDB8a2kobCkpe2Nh''@;'; + put 'put ''c2UgMDphW0Q+PjJdPTB8dGkoayksJHIoMywxMDE5ODMsRCk7YnJlYWsgZTtjYXNlIDE6YVtSPj4yXT0wfHRpKE0pLCRyKDMsMTAyMDA1LFIpO2JyZWFrIGU7Y2FzZSAyOkQ9MHx0aSgwfGFbKDM9PSgzJmFbYj4+Ml18MCk/YjpiKzQ4fDApKzQwPj4yXSksUj0wIT0oMHxTYyhLKSksSz0wfHRp''@;'; + put 'put ''KDB8YVsoMj09KDMmYVtiPj4yXXwwKT9iOmIrLTQ4fDApKzQwPj4yXSksYVtHPj4yXT1ELGFbRys0Pj4yXT1SPzEzNzczODoxNDE3NDcsYVtHKzg+PjJdPUssJHIoMywxMDIwMjYsRyk7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9Y2FzZSAwOm09MHx1UShjLGwsMCksYVtwZT4+Ml09bSxtPTE9''@;'; + put 'put ''PSgwfGFbQT4+Ml0pPzB8dmsobSk6MHxTTihtLEspLEZ0KDB8YVtwZT4+Ml0pLGFbcGU+PjJdPW0sdzcoMHxhWzE0NCsoMHxhW3c+PjJdKT4+Ml0scGUpO2JyZWFrIGU7ZGVmYXVsdDpQcigxMDIwNTMsMTAyMDY5LDE2NiwxMDIwNzgpfX13aGlsZSgwKTtyZXR1cm4gYWU9Z2UsMHxwZX1mdW5j''@;'; + put 'put ''dGlvbiB1UShsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wO3N3aXRjaCgwfGtpKGN8PTApKXtjYXNlIDA6bT0wfFVvKHc9MHx0aShjKSksKHA9''@;'; + put 'put ''MHxhWzEyKygwfGFbYysxNj4+Ml0pPj4yXSk/KHA9MHxhW3A+PjJdLGw/KFJlPTAsT2U9MixMZT0yLGJlPTIsQT0yLHFlPTEwMjEwMSxEPTEwMjA5OCxiPTEwNTQ5MyxHPTE5NTA1OSxwZT0xOTUwNTksSz0wLGdlPTAsUj0wfFVvKHApLEhlPXAsVmU9MTAyMDk1KTooUmU9MCxPZT0yLExlPTIs''@;'; + put 'put ''YmU9MixBPTIscWU9MTAyMTAxLEQ9MTAyMDk4LGI9MTA1NDkzLEc9MTk1MDU5LHBlPTE5NTA1OSxLPTAsZ2U9MCxSPTIsSGU9cCxWZT0xMDIwOTUpKTooUmU9MCxPZT0yLExlPTIsYmU9MixBPTIscWU9MTAyMTAxLEQ9MTAyMDk4LGI9MTA1NDkzLEc9MTk1MDU5LHBlPTE5NTA1OSxLPTAsZ2U9''@;'; + put 'put ''MCxSPTIsSGU9MTAyMDg5LFZlPTEwMjA5NSk7YnJlYWs7Y2FzZSAxOm09MHxVbyh3PTB8dGkoMHxjcihjKSkpLEE9MHxVbyhiPTB8dGkoYykpLChwPTB8YVsxMDQrKDB8YVtjKzE2Pj4yXSk+PjJdKT8ocD0wfGFbcD4+Ml0sbD8oUmU9MCxPZT0yLExlPTIsYmU9MixxZT0xMDIxMDEsRD0xMDIw''@;'; + put 'put ''OTgsRz0xOTUwNTkscGU9MTk1MDU5LEs9MCxnZT0wLFI9MHxVbyhwKSxIZT1wLFZlPTEwMjA5NSk6KFJlPTAsT2U9MixMZT0yLGJlPTIscWU9MTAyMTAxLEQ9MTAyMDk4LEc9MTk1MDU5LHBlPTE5NTA1OSxLPTAsZ2U9MCxSPTIsSGU9cCxWZT0xMDIwOTUpKTooUmU9MCxPZT0yLExlPTIsYmU9''@;'; + put 'put ''MixxZT0xMDIxMDEsRD0xMDIwOTgsRz0xOTUwNTkscGU9MTk1MDU5LEs9MCxnZT0wLFI9MixIZT0xMDIwODksVmU9MTAyMDk1KTticmVhaztjYXNlIDI6QT1jKzQ4fDAsbT0wfFVvKHc9MHx0aSgwfGRpKDB8Y3IoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6QSkrNDA+PjJdKSkpKSxrPTB8VW8o''@;'; + put 'put ''TT0wfHRpKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOkEpKzQwPj4yXSkpLGdlPShwZT0wfGFbNTIrKDB8YVsocD1jKzE2fDApPj4yXSk+PjJdKT8wfFVvKHBlKTowLEQ9MHx0aSgwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pLEs9KEc9MHxhWzkyKyhwPTB8YVtwPj4y''@;'; + put 'put ''XSk+PjJdKT8wfFVvKEcpOjAsYj0wfFVvKEQpLChwPTB8YVtwKzk2Pj4yXSk/KHA9MHxhW3A+PjJdLFI9bD8wfFVvKHApOjIpOihSPTIscD0xMDIwODkpLFZlPTA9PSgwfFNjKDB8ZGkoMHxjcigwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpBKSs0MD4+Ml0pKSkpLFJlPTEsT2U9ayxMZT1iLGJl''@;'; + put 'put ''PWsrMisoMHxnZT9nZSsxfDA6MCkrYisoMHxLP0srMXwwOjApfDAsQT0yLHFlPU0sYj0xMDU0OTMsSGU9cCxWZT1WZT8xNDE3NDc6MTM3NzM4O2JyZWFrO2RlZmF1bHQ6UmU9MCxPZT0yLExlPTIsYmU9MixBPTIsbT0yLHFlPTEwMjEwMSxEPTEwMjA5OCxiPTEwNTQ5Myx3PTEwMjA5MixHPTE5''@;'; + put 'put ''NTA1OSxwZT0xOTUwNTksSz0wLGdlPTAsUj0yLEhlPTEwMjA4OSxWZT0xMDIwOTV9Zj0wPT0oMHxmKSxNPTAscD1sO2U6Zm9yKDs7KXtjPXArMXwwO3Q6ZG97c3dpdGNoKDB8ZmVbcD4+MF0pe2Nhc2UgMDpicmVhayBlO2Nhc2UgOTI6c3dpdGNoKHA9cCsyfDAsMHxmZVtjPj4wXSl7Y2FzZSA3''@;'; + put 'put ''ODprPUE7YnJlYWsgdDtjYXNlIDcxOms9bTticmVhayB0O2Nhc2UgNjk6az1iZTticmVhayB0O2Nhc2UgNzI6az1MZTticmVhayB0O2Nhc2UgODQ6az1PZTticmVhayB0O2Nhc2UgNzY6az1SO2JyZWFrIHQ7Y2FzZSA5MjppZighZil7az0xO2JyZWFrIHR9fWs9MjticmVhaztkZWZhdWx0Oms9''@;'; + put 'put ''MSxwPWN9fXdoaWxlKDApO009TStrfDB9YmU9MHxRbihNKzF8MCksUj0wPT0oMHxSZSksTT0wPT0oMHxnZSksYz0wPT0oMHxLKSxwPWJlLG09bDtlOmZvcig7Oyl7c3dpdGNoKGs9bSsxfDAsKEE9MHxmZVttPj4wXSk8PDI0Pj4yNCl7Y2FzZSAwOmJyZWFrIGU7Y2FzZSA5MjpicmVhaztkZWZh''@;'; + put 'put ''dWx0OmZlW3A+PjBdPUEscD1wKzF8MCxtPWs7Y29udGludWUgZX1zd2l0Y2goQT1tKzJ8MCwobT0wfGZlW2s+PjBdKTw8MjQ+PjI0fDApe2Nhc2UgNzE6Zm9yKG09dzs7KXtpZihmZVtwPj4wXT1sPTB8ZmVbbT4+MF0sIShsPDwyND4+MjQpKXttPUE7Y29udGludWUgZX1tPW0rMXwwLHA9cCsx''@;'; + put 'put ''fDB9Y2FzZSA3ODpmb3IobT1iOzspe2lmKGZlW3A+PjBdPWw9MHxmZVttPj4wXSwhKGw8PDI0Pj4yNCkpe209QTtjb250aW51ZSBlfW09bSsxfDAscD1wKzF8MH1jYXNlIDY5OmlmKFIpe209QTtjb250aW51ZSBlfWZvcihtPXFlO2ZlW3A+PjBdPWw9MHxmZVttPj4wXSxsPDwyND4+MjQ7KW09''@;'; + put 'put ''bSsxfDAscD1wKzF8MDtpZihNKW09VmU7ZWxzZSBmb3IoZmVbcD4+MF09NTgsbT1wZTs7KXtpZihmZVsocD1wKzF8MCk+PjBdPWw9MHxmZVttPj4wXSwhKGw8PDI0Pj4yNCkpe209VmU7YnJlYWt9bT1tKzF8MH1mb3IoOzspe2lmKGZlW3A+PjBdPWw9MHxmZVttPj4wXSwhKGw8PDI0Pj4yNCkp''@;'; + put 'put ''e209RDticmVha31tPW0rMXwwLHA9cCsxfDB9Zm9yKDtmZVtwPj4wXT1sPTB8ZmVbbT4+MF0sbDw8MjQ+PjI0OyltPW0rMXwwLHA9cCsxfDA7aWYoYyl7bT1BO2NvbnRpbnVlIGV9Zm9yKGZlW3A+PjBdPTU4LG09Rzs7KXtpZihmZVsocD1wKzF8MCk+PjBdPWw9MHxmZVttPj4wXSwhKGw8PDI0''@;'; + put 'put ''Pj4yNCkpe209QTtjb250aW51ZSBlfW09bSsxfDB9Y2FzZSA4NDpmb3IobT1xZTs7KXtpZihmZVtwPj4wXT1sPTB8ZmVbbT4+MF0sIShsPDwyND4+MjQpKXttPUE7Y29udGludWUgZX1tPW0rMXwwLHA9cCsxfDB9Y2FzZSA3Mjpmb3IobT1EOzspe2lmKGZlW3A+PjBdPWw9MHxmZVttPj4wXSwh''@;'; + put 'put ''KGw8PDI0Pj4yNCkpe209QTtjb250aW51ZSBlfXA9cCsxfDAsbT1tKzF8MH1jYXNlIDc2OmZvcihtPUhlOzspe2lmKGZlW3A+PjBdPWw9MHxmZVttPj4wXSwhKGw8PDI0Pj4yNCkpe209QTtjb250aW51ZSBlfXA9cCsxfDAsbT1tKzF8MH1jYXNlIDkyOmlmKCFmKXtmZVtwPj4wXT05MixwPXAr''@;'; + put 'put ''MXwwLG09QTtjb250aW51ZSBlfX1mZVtwPj4wXT05MixmZVtwKzE+PjBdPW0scD1wKzJ8MCxtPUF9cmV0dXJuIGZlW3A+PjBdPTAsMHxiZX1mdW5jdGlvbiB2eShsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MDtpZigwfChsfD0wKSl7Zm9yKGY9bCxwPTA7ISgoMHxwKT49KDB8YykpOylw''@;'; + put 'put ''fHxGdCgwfGFbZj4+Ml0pLDB8KEE9MHxhW2YrOD4+Ml0pJiYwfChtPTB8YVtmKzEyPj4yXSkmJkNvWzEyNyZtXShBKSxmPWYrNTZ8MCxwPXArMXwwO0Z0KGwpfX1mdW5jdGlvbiBJYyhsKXt2YXIgYz0wOzB8KGx8PTApJiYoRnQoMHxhW2w+PjJdKSxjPWwrNzJ8MCwwfGZlW2wrODI+PjBdPzB8''@;'; + put 'put ''KGM9MHxhW2M+PjJdKSYmQW0oYywxKTp2eSgwfGFbYz4+Ml0sMHxydFtsKzc2Pj4xXSksRnQobCkpfWZ1bmN0aW9uIGI3KGwsYyxmKXtmfD0wO3ZhciBSLEcsSyxwZSxnZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2lmKGdlPWFlLGFlPWFlKzMyfDAsUj1nZSsxNnwwLEc9Z2Us''@;'; + put 'put ''cGU9MHxhWyhLPTEyKyh3PTB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0sYVtLPj4yXT1jfD0wLDB8ZmVbZis4Mj4+MF0pKGZ1bmN0aW9uIGZFKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIEEsYixrLE0scD0wLG09MCx3PTA7c3dpdGNoKE09YWUsYWU9YWUrODB8MCxrPU0sZnVuY3Rpb24gJHoobCl7''@;'; + put 'put ''dmFyIGMsZixwPTA7c3dpdGNoKGM9MHx4ZihsfD0wKSxhW2MrND4+Ml09bD0wfGFbNCsoZj0wfGFbYz4+Ml0pPj4yXSxhW2MrMTI+PjJdPWFbZisxMj4+Ml0sMHxsKXtjYXNlIDI6Y2FzZSAwOmNhc2UgMTpjYXNlIDM6bD1mKzh8MCxwPTZ9Nj09KDB8cCkmJihhW2MrOD4+Ml09YVtsPj4yXSks''@;'; + put 'put ''YVtjKzIwOD4+Ml09YVtmKzIwOD4+Ml0sYVtjKzIyOD4+Ml09YVtmKzIyOD4+Ml0sYVtjKzI0ND4+Ml09YVtmKzI0ND4+Ml0scnRbKHA9YysyNjB8MCk+PjFdPS0yJnJ0W3A+PjFdfDEmcnRbZisyNjA+PjFdfShsfD0wKSxiPStfW2YrNTY+PjNdLG09K19bZis2ND4+M10sMHxmZVtmKzgwPj4w''@;'; + put 'put ''XSl7Y2FzZSAxMTY6bT0uNSooK19bZis0OD4+M10tK2hFKGMpKSttLHA9NDticmVhaztjYXNlIDk4Om0tPS41KigrX1tmKzQ4Pj4zXS0raEUoYykpLHA9NH00PT0oMHxwKSYmKG0rPS0xKSxfW2s+PjNdPWIsX1trKzg+PjNdPW0sYVtrKzIwPj4yXT1hW2YrOD4+Ml0sYVtrKzE2Pj4yXT1hW2Yr''@;'; + put 'put ''ND4+Ml0sX1trKzMyPj4zXT0rX1tmKzE2Pj4zXSxwPTB8TGkoMHxhWzgrKDB8YVsodz1sKzE2fDApPj4yXSk+PjJdLDEzNzI5NyksYVsoZj1rKzU2fDApPj4yXT1wLGFbKEE9ays2MHwwKT4+Ml09YVsyMTIrKDB8YVt3Pj4yXSk+PjJdLGZlWyh3PWsrNjR8MCk+PjBdPTAsMCE9KDB8cCkmJjAh''@;'; + put 'put ''PSgwfGZlW3A+PjBdKXx8KGFbZj4+Ml09MTM3MzA4KSwxPT0oMHxmZVtjKzQ+PjBdKT8oZj0wfGFbYz4+Ml0sZDIobCwwfGFbMzM2KygwfGFbbD4+Ml0pPj4yXSksbWEobCwocD0wfGFbZisyND4+Ml0pfHwxMzczMTQpLGRFKGwsZixrKSwwfGZlW3c+PjBdJiZGdCgwfGFbQT4+Ml0pKTprZChs''@;'; + put 'put ''LDB8YVtjPj4yXSxrKSxmdW5jdGlvbiBwNihsKXt2YXIgYzthWzIwOCsoYz0wfGFbMTYrKGx8PTApPj4yXSk+PjJdPTAsYVtjKzIyOD4+Ml09MCxhW2MrMjQ0Pj4yXT0wLGFbYysyMTI+PjJdPTAsREMobCl9KGwpLGFlPU19KShsLDB8YVtmKzcyPj4yXSxmKSxtPTE4O2Vsc2UgaWYoKDB8cnRb''@;'; + put 'put ''KEQ9Zis3NnwwKT4+MV0pPj0xKXtzd2l0Y2goVzgobCwwKSxtYShsLDB8YVtmKzg+PjJdKSwwfGZlW2YrODA+PjBdKXtjYXNlIDExNjpwPS41KitfW2YrNDg+PjNdKyhBPStfW2YrNjQ+PjNdKTticmVhaztjYXNlIDk4OnA9LS41KitfW2YrNDg+PjNdKyhBPStfW2YrNjQ+PjNdKSsgK19bZisz''@;'; + put 'put ''Mj4+M107YnJlYWs7ZGVmYXVsdDpwPS41KitfW2YrMzI+PjNdKyhBPStfW2YrNjQ+PjNdKX1mb3IoX1soTT1HKzh8MCk+PjNdPXAtPStfW2YrMTY+PjNdLDUxMiZydFt3KzI2MD4+MV0mJihfW00+PjNdPXAtQSksYj1mKzcyfDAsaz1mKzU2fDAsbT1mKzQwfDAsYz0wOyEoKDB8Yyk+PSgwfHJ0''@;'; + put 'put ''W0Q+PjFdKSk7KXtzd2l0Y2goMHxmZVsodz0wfGFbYj4+Ml0pKyg1NipjfDApKzQ4Pj4wXSl7Y2FzZSAxMDg6cD0rX1trPj4zXS0uNSorX1ttPj4zXTticmVhaztjYXNlIDExNDpwPS41KitfW20+PjNdKyArX1trPj4zXTticmVhaztkZWZhdWx0OnA9K19baz4+M119X1tHPj4zXT1wLGFbUj4+''@;'; + put 'put ''Ml09YVtHPj4yXSxhW1IrND4+Ml09YVtHKzQ+PjJdLGFbUis4Pj4yXT1hW0crOD4+Ml0sYVtSKzEyPj4yXT1hW0crMTI+PjJdLGhtKGwsUix3Kyg1NipjfDApfDApLF9bTT4+M109K19bTT4+M10tK19bKDB8YVtiPj4yXSkrKDU2KmN8MCkrNDA+PjNdLGM9YysxfDB9TzQobCksbT0xOH0xOD09''@;'; + put 'put ''KDB8bSkmJihhW0s+PjJdPXBlKSxhZT1nZX1mdW5jdGlvbiBtMihsLGMpe3JldHVybiAwfHVRKGx8PTAsY3w9MCwxKX1mdW5jdGlvbiBNMShsKXtyZXR1cm4gMHxSSChsfD0wLDApfWZ1bmN0aW9uIFJIKGwsYyl7bHw9MCxjfD0wO3ZhciBiLGY9MCxwPTAsbT0wLEE9MCx3PTAsaz0wO2Zvcigo''@;'; + put 'put ''Zj0wfGFbNDcyMDddKXx8KGFbNDcyMDhdPTY0LGY9MHxRbig2NCksYVs0NzIwN109ZiksYj1jPDwyND4+MjQ9PTAsdz0wLHA9MCxBPWw7QSYmKGM9MHxmZVtBPj4wXSk8PDI0Pj4yNDspeygwfHcpPigobD0wfGFbNDcyMDhdKS04fDApJiYoYVs0NzIwOF09Zj1sPDwxLGY9MHxWMCgwfGFbNDcy''@;'; + put 'put ''MDddLGYpLGFbNDcyMDddPWYsZj1mK3d8MCxjPTB8ZmVbQT4+MF0pO2U6ZG97c3dpdGNoKGM8PDI0Pj4yNCl7Y2FzZSAzODpiJiYwIT0oMHxjUShBKSk/az0xODoocD01LGM9MTAyMTMwKTticmVhaztjYXNlIDYwOnA9NCxjPTEwMjE1MzticmVhaztjYXNlIDYyOnA9NCxjPTEwMjEzNjticmVh''@;'; + put 'put ''aztjYXNlIDQ1OnA9NSxjPTEwMjE0NzticmVhaztkZWZhdWx0OmlmKDAhPSgwfHApJmM8PDI0Pj4yND09MzIpe2lmKDMyPT0oMHxmZVtwPj4wXSkpe3A9NixjPTEwMjEyMzticmVhayBlfWs9MTg7YnJlYWsgZX1zd2l0Y2goYzw8MjQ+PjI0KXtjYXNlIDM0OnA9NixjPTEwMjExNjticmVhayBl''@;'; + put 'put ''O2Nhc2UgMzk6cD01LGM9MTAyMTQxO2JyZWFrIGU7Y2FzZSAxMDppZihiKXtrPTE4O2JyZWFrIGV9cD01LGM9MTAyMTEwO2JyZWFrIGU7ZGVmYXVsdDprPTE4O2JyZWFrIGV9fX13aGlsZSgwKTtmb3IoMTg9PSgwfGspJiYoaz0wLHA9KGM9YnxjPDwyND4+MjQhPTEzKT8xOjUsYz1jP0E6MTAy''@;'; + put 'put ''MTA0KSxtPWYrcHwwLGw9cDtsOylmZVtmPj4wXT0wfGZlW2M+PjBdLGw9bCstMXwwLGM9YysxfDAsZj1mKzF8MDtsPUEsdz1wK3d8MCxmPW0sQT1BKzF8MCxwPWx9cmV0dXJuIGZlW2Y+PjBdPTAsMHxhWzQ3MjA3XX1mdW5jdGlvbiBjUShsKXt2YXIgYz0wLGY9MDtjPTB8ZmVbKGY9MSsobHw9''@;'; + put 'put ''MCl8MCk+PjBdO2U6ZG97aWYoYzw8MjQ+PjI0PT0zNSl7c3dpdGNoKChjPTB8ZmVbKGY9bCsyfDApPj4wXSk8PDI0Pj4yNCl7Y2FzZSA4ODpjYXNlIDEyMDpicmVhaztkZWZhdWx0OmZvcihsPWY7Oyl7aWYoZj1sKzF8MCwoYystNDgmMjU1KT49MTApYnJlYWsgZTtsPWYsYz0wfGZlW2Y+PjBd''@;'; + put 'put ''fX1mb3IoZj1sKzN8MDs7KXtpZigoKGM9MHxmZVtmPj4wXSktNDgmMjU1KT49MTApc3dpdGNoKGM8PDI0Pj4yNCl7Y2FzZSA2NTpjYXNlIDY2OmNhc2UgNjc6Y2FzZSA2ODpjYXNlIDY5OmNhc2UgNzA6Y2FzZSA5NzpjYXNlIDk4OmNhc2UgOTk6Y2FzZSAxMDA6Y2FzZSAxMDE6Y2FzZSAxMDI6''@;'; + put 'put ''YnJlYWs7ZGVmYXVsdDpicmVhayBlfWY9ZisxfDB9fWVsc2UgZm9yKDs7KXtpZihsPWYrMXwwLCgoLTMzJmMpLTY1JjI1NSk+PTI2KWJyZWFrIGU7Zj1sLGM9MHxmZVtsPj4wXX19d2hpbGUoMCk7cmV0dXJuIGM8PDI0Pj4yND09NTl8MH1mdW5jdGlvbiBmUShsKXtsfD0wO3ZhciBjPTAsZj0w''@;'; + put 'put ''LHA9MCxtPTAsQT0wLHc9MCxiPTA7Zm9yKChjPTB8YVs0NzIwOV0pfHwoYVs0NzIxMF09NjQsYz0wfFFuKDY0KSxhWzQ3MjA5XT1jKSx3PTA7bCYmKGY9MHxmZVtsPj4wXSk8PDI0Pj4yNDspe3N3aXRjaCgoMHx3KT4oKHA9MHxhWzQ3MjEwXSktOHwwKSYmKGFbNDcyMTBdPWM9cDw8MSxjPTB8''@;'; + put 'put ''VjAoMHxhWzQ3MjA5XSxjKSxhWzQ3MjA5XT1jLGM9Yyt3fDAsZj0wfGZlW2w+PjBdKSxmPDwyND4+MjQpe2Nhc2UgMzg6MHxjUShsKT9iPTEyOihtPTUsZj0xMDIxMzApO2JyZWFrO2Nhc2UgNjA6bT00LGY9MTAyMTUzO2JyZWFrO2Nhc2UgNjI6bT00LGY9MTAyMTM2O2JyZWFrO2Nhc2UgMzQ6''@;'; + put 'put ''bT02LGY9MTAyMTE2O2JyZWFrO2Nhc2UgMzk6bT01LGY9MTAyMTQxO2JyZWFrO2RlZmF1bHQ6Yj0xMn1mb3IoMTI9PSgwfGIpJiYoYj0wLG09MSxmPWwpLEE9YyttfDAscD1tO3A7KWZlW2M+PjBdPTB8ZmVbZj4+MF0scD1wKy0xfDAsZj1mKzF8MCxjPWMrMXwwO3c9bSt3fDAsYz1BLGw9bCsx''@;'; + put 'put ''fDB9cmV0dXJuIGZlW2M+PjBdPTAsMHxhWzQ3MjA5XX1mdW5jdGlvbiB2cihsKXt2YXIgYz0wO3JldHVybihsfD0wKT8odTIoMHwoYz0wfFFuKGwpKSwwLDB8bCksbD1jKTpsPTAsMHxsfWZ1bmN0aW9uIFFuKGwpe3JldHVybihsfD0wKT8obD0wfEIwKGwpKXx8KEN1KDExMTc0MCwxNCwxLDB8''@;'; + put 'put ''YVsxNTcxMl0pLGw9MCk6bD0wLDB8bH1mdW5jdGlvbiBCSChsLGMsZixwKXtyZXR1cm4gcHw9MCwwIT0oMHwoY3w9MCkpJjA9PSgwfChsPTB8VWEobHw9MCwwfEFyKGZ8PTAsYykpKSk/Q3UoMTExNzQwLDE0LDEsMHxhWzE1NzEyXSk6Yz4+PjA+cD4+PjAmJnUyKGwrKDB8QXIocCxmKSl8MCww''@;'; + put 'put ''LDB8QXIoYy1wfDAsZikpLDB8bH1mdW5jdGlvbiBWMChsLGMpe3JldHVybiAwIT0oMHwoY3w9MCkpJjA9PSgwfChsPTB8VWEobHw9MCxjKSkpJiZDdSgxMTE3NDAsMTQsMSwwfGFbMTU3MTJdKSwwfGx9ZnVuY3Rpb24gaFEobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgRCxSLGdl''@;'; + put 'put ''LG09MCxBPTAsdz0wLGI9MCxNPTAsSz0wLHBlPTA7Z2U9YWUsYWU9YWUrODB8MCxSPWdlKzMyfDAsRD1nZSsyNHwwLE09Z2UsSz00LHBlPTB8QjAoNDApLGFbcGU+PjJdPTAsbT1nZSs2OHwwLEE9Z2UrNjR8MCxiPTY7ZG97aWYoNj09KDB8Yikpe2lmKE1uPTAsbT0wfGEwKDI3LDB8bCksQT1N''@;'; + put 'put ''bixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKHc9MHxnaSgwfGFbQT4+Ml0sMHxwZSwwfEspKXx8emUoMHxBLDB8eG4pLERuPXhuKTp3PS0xLDEhPSgwfHcpKXtpZighbSYmKE1uPTAsWmMoMiksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxwZSww''@;'; + put 'put ''fEspKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKSl7bT1EbixiPTE1O2JyZWFrfWlmKCgwfGYpPDEpe2lmKE1uPTAsWmMoMyksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxwZSwwfEspKXx8emUoMHxtLDB8eG4pLERuPXhuKTpB''@;'; + put 'put ''PS0xLDE9PSgwfEEpKXttPURuLGI9MTU7YnJlYWt9bT0wO2JyZWFrfWlmKGFbNDcyMTFdPSgwfHApPi0xP3A6MzAscGU9MHxQZigxODg4NDgsMSwwfHBlLDB8SyksSz1EbixtPU1uPTAsTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8cGUsMHxLKSl8fHplKDB8''@;'; + put 'put ''bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiPTE1O2JyZWFrfW09MCxiPTE1O2JyZWFrfW09RG4sYj0xNX19d2hpbGUoMCk7ZTpkb3tpZigxNT09KDB8Yikpe3Q6Zm9yKDs7KXtpZigwfG0pe209MjticmVhayBlfWlmKE1uPTAsWmMoNCksbT1NbixNbj0wLDAhPSgwfG0pJjAh''@;'; + put 'put ''PSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxwZSwwfEspKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKXtmb3IobD0wfGFbMTU3MTJdLE09MDs7KXtpZihNbj0wLGI9MHx5ZCgyKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSww''@;'; + put 'put ''fHBlLDB8SykpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYj0xNTtjb250aW51ZSB0fWlmKCFiKWJyZWFrO2lmKE1uPTAsbT0wfGEwKDI4LDB8YiksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKHc9MHxnaSgwfGFbQT4+Ml0sMHxwZSwwfEspKXx8emUo''@;'; + put 'put ''MHxBLDB8eG4pLERuPXhuKTp3PS0xLDE9PSgwfHcpKXttPURuLGI9MTU7Y29udGludWUgdH1pZihNbj0wLFoxKDI1LDB8YiwwfG0pLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8cGUsMHxLKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0o''@;'; + put 'put ''MHxBKSl7bT1EbixiPTE1O2NvbnRpbnVlIHR9TT1NKzF8MDtkb3tpZigwPT0oMHwoMHxNKSUxMDApJiExKXtpZigxMDA9PSgwfChtPSgwfE0pJTFlM3wwKSkpe2lmKE1uPTAsRmwoOTMsMTAyMjAyLDB8bCksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0s''@;'; + put 'put ''MHxwZSwwfEspKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGI9MTU7Y29udGludWUgdH1pZihNbj0wLGFbRD4+Ml09TSxKcygzMiwwfGwsMTAyMjIwLDB8RCksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxwZSwwfEsp''@;'; + put 'put ''KXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGI9MTU7Y29udGludWUgdH1icmVha31pZihNbj0wLGFbUj4+Ml09TSxKcygzMiwwfGwsMTAyMjIwLDB8UiksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKHc9MHxnaSgwfGFbQT4+Ml0sMHxwZSwwfEspKXx8''@;'; + put 'put ''emUoMHxBLDB8eG4pLERuPXhuKTp3PS0xLDE9PSgwfHcpKXttPURuLGI9MTU7Y29udGludWUgdH1pZighbSYmKE1uPTAsRmwoOTQsMTAsMHxsKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfHBlLDB8SykpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9''@;'; + put 'put ''LTEsMT09KDB8QSkpKXttPURuLGI9MTU7Y29udGludWUgdH19fXdoaWxlKDApO2lmKCgwfE0pPj0oMHxmKSlicmVha31zd2l0Y2goMHxjKXtjYXNlIDE6aWYoTW49MCxaYyg1KSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfHBlLDB8SykpfHx6ZSgw''@;'; + put 'put ''fG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYj0xNTtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMjppZihNbj0wLFpjKDYpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8cGUsMHxLKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwx''@;'; + put 'put ''PT0oMHxBKSl7bT1EbixiPTE1O2NvbnRpbnVlIHR9YnJlYWs7ZGVmYXVsdDppZihNbj0wLFpjKDcpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8cGUsMHxLKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiPTE1O2Nv''@;'; + put 'put ''bnRpbnVlIHR9aWYoTW49MCxaYygzKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfHBlLDB8SykpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYj0xNTtjb250aW51ZSB0fX1tPTA7YnJlYWsgZX1tPURuLGI9MTV9bT0w''@;'; + put 'put ''fX13aGlsZSgwKTtyZXR1cm4gRnQoMHxwZSksYWU9Z2UsMHxtfWZ1bmN0aW9uIGRRKCl7dmFyIGw9MCxjPTAsZj0wO2ZvcihsPTE5MisoMHxhWzE2KygwfGFbNDcyNTRdKT4+Ml0pfDA7bD0wfGFbbD4+Ml07KShjPTB8YVsyNjQrKGw9MHxhWyhmPWwrMTZ8MCk+PjJdKT4+Ml0pJiYoRnQoYyks''@;'; + put 'put ''bD0wfGFbZj4+Ml0pLChjPTB8YVtsKzI3Mj4+Ml0pJiYoRnQoYyksbD0wfGFbZj4+Ml0pLGZlW2wrMTU3Pj4wXT0wLGw9bCsxNjR8MH1mdW5jdGlvbiBQSChsKXt2YXIgYz0wLGY9MDtyZXR1cm4gbD0oYz0oMHxhWzI4OCsoMHxhWzE2KyhmPTB8YVsoMz09KDB8KGM9MyZhWyhsfD0wKT4+Ml0p''@;'; + put 'put ''KT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk8KDB8YVsyODgrKDB8YVsxNisobD0wfGFbKDI9PSgwfGMpP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpP2Y6bCxhWzQ3MjU3XT0wLGFbNDcyNThdPTIxNDc0ODM2NDcsYVs0NzI1OV09YVsyODQrKGY9MHxhW2wrMTY+PjJdKT4+Ml0s''@;'; + put 'put ''YVs0NzI2MF09YVtmKzI4OD4+Ml0sYz9ISChsKTpRNihsKSwwfGFbNDcyNTddfWZ1bmN0aW9uIGdRKCl7dmFyIEEsdyxsPTAsYz0wLGY9MCxwPTAsbT0wLGI9MDtmb3Iodz1hZSxhZT1hZSsxNnwwLGFbKEE9dyk+PjJdPTAsYVtBPj4yXT0yMTQ3NDgzNjQ3LGFbNDcyNTNdPS0yMTQ3NDgzNjQ3''@;'; + put 'put ''LGY9bD0xOTIrKDB8YVsxNisoMHxhWzQ3MjU0XSk+PjJdKXwwLG09MjE0NzQ4MzY0NyxwPS0yMTQ3NDgzNjQ3O2M9MHxhW2Y+PjJdOykwfGZlWzE1NisoZj0wfGFbYysxNj4+Ml0pPj4wXT9jPW06KGFbQT4+Ml09Yz0oMHxtKTwoMHwoYj0wfGFbZisyMzI+PjJdKSk/bTpiLGFbNDcyNTNdPXA9''@;'; + put 'put ''KDB8cCk+KDB8Yik/cDpiKSxmPWYrMTY0fDAsbT1jO2lmKDB8bSl7Zm9yKDtsPTB8YVtsPj4yXTspYVsoYj0yMzIrKGw9MHxhW2wrMTY+PjJdKXwwKT4+Ml09KDB8YVtiPj4yXSktbSxsPWwrMTY0fDA7YVs0NzI1M109cC1tLGFbQT4+Ml09MH1hZT13fWZ1bmN0aW9uIFg1KGwsYyl7dmFyIG0s''@;'; + put 'put ''Zj0wLHA9MDtmb3IoYVsocD0yMzIrKGw9MHxhWyhtPTE2KyhsfD0wKXwwKT4+Ml0pfDApPj4yXT0oMHxhW3A+PjJdKS0oY3w9MCkscD0wOzspe2lmKCEoZj0wfGFbKDB8YVtsKzI3Mj4+Ml0pKyhwPDwyKT4+Ml0pKXtwPTA7YnJlYWt9KDB8ZikhPSgwfGFbbCsyODA+PjJdKSYmKFg1KDB8YVso''@;'; + put 'put ''Mj09KDMmYVtmPj4yXXwwKT9mOmYrLTQ4fDApKzQwPj4yXSxjKSxsPTB8YVttPj4yXSkscD1wKzF8MH1mb3IoO2Y9MHxhWygwfGFbbCsyNjQ+PjJdKSsocDw8Mik+PjJdOykoMHxmKSE9KDB8YVtsKzI4MD4+Ml0pJiYoWDUoMHxhWygzPT0oMyZhW2Y+PjJdfDApP2Y6Zis0OHwwKSs0MD4+Ml0s''@;'; + put 'put ''YyksbD0wfGFbbT4+Ml0pLHA9cCsxfDB9ZnVuY3Rpb24gbVEobCxjLGYscCl7dmFyIG0sQSx3LGI9MCxrPTA7Zm9yKEE9MD09KDB8KHB8PTApKSYxLHc9MC0oZnw9MCl8MCxtPTB8YVsyODgrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0sYz1sfD0wOyEoKDB8YVsyODQrKGw9MHxhW2MrMTY+PjJd''@;'; + put 'put ''KT4+Ml0pPD0oMHxtKSYmKDB8bSk8PSgwfGFbbCsyODg+PjJdKSk7KWI9NDgrKGw9MHxhW2wrMjgwPj4yXSl8MCxhWyhrPTE2MCsoMHxhW2wrMTY+PjJdKXwwKT4+Ml09KDB8KCgwfGMpPT0oMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6YikrNDA+PjJdKT9wOkEpP2Y6dykrKDB8YVtrPj4yXSks''@;'; + put 'put ''Yz0oMHxhWzI4OCsoMHxhWzE2KyhiPTB8YVsoMz09KDB8KGs9MyZhW2w+PjJdKSk/bDpiKSs0MD4+Ml0pPj4yXSk+PjJdKT4oMHxhWzI4OCsoMHxhWzE2KyhsPTB8YVsoMj09KDB8ayk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT9iOmw7cmV0dXJuIDB8Y31mdW5jdGlvbiB6SShsLGMs''@;'; + put 'put ''Zil7Znw9MDt2YXIgQSxwPTAsbT0wO2ZvcihhWzI4MCsobD0wfGFbKEE9MTYrKGx8PTApfDApPj4yXSk+PjJdPWN8PTAsYVtsKzI4ND4+Ml09ZixtPTA7Oyl7aWYoIShwPTB8YVsoMHxhW2wrMjcyPj4yXSkrKG08PDIpPj4yXSkpe209MDticmVha30oMHxwKSE9KDB8YykmJihmPTB8ekkoMHxh''@;'; + put 'put ''WygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdLHAsZiksbD0wfGFbQT4+Ml0pLG09bSsxfDB9Zm9yKDtwPTB8YVsoMHxhW2wrMjY0Pj4yXSkrKG08PDIpPj4yXTspKDB8cCkhPSgwfGMpJiYoZj0wfHpJKDB8YVsoMz09KDMmYVtwPj4yXXwwKT9wOnArNDh8MCkrNDA+PjJdLHAs''@;'; + put 'put ''ZiksbD0wfGFbQT4+Ml0pLG09bSsxfDA7cmV0dXJuIGFbbCsyODg+PjJdPWYsZisxfDB9ZnVuY3Rpb24gUTYobCl7dmFyIHcsYz0wLGY9MCxwPTAsbT0wLEE9MCxiPTA7Zm9yKHc9MTYrKGx8PTApfDAsbT0wOzspe2lmKCEoZj0wfGFbKDB8YVsxODArKGw9MHxhW3c+PjJdKT4+Ml0pKyhtPDwy''@;'; + put 'put ''KT4+Ml0pKXtmPTA7YnJlYWt9KDB8YVsxNjQrKHA9MHxhW2YrMTY+PjJdKT4+Ml0pPDA/KDB8YVs0NzI1OV0pPigwfChiPTB8YVsyODgrKGM9MHxhWzE2KygwfGFbKDI9PSgwfChsPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpfCgwfGIpPigwfGFbNDcyNjBdKSYm''@;'; + put 'put ''KDB8KEE9KDB8YVtjKzIzMj4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8bCk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGhyW3ArMTcwPj4xXSl8MCkpPCgwfGFbNDcyNThdKXwwPT0oMHxhWzQ3MjU3XSkmJihhWzQ3MjU3XT1mLGFbNDcyNThdPUEpOigwfGFbMjg4''@;'; + put 'put ''KygwfGFbMTYrKGM9MHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk8KDB8YVtsKzI4OD4+Ml0pJiZRNihjKSxtPW0rMXwwfWZvcig7MCE9KDB8KGM9MHxhWygwfGFbbCsyNjQ+PjJdKSsoZjw8Mik+PjJdKSkmKDB8YVs0NzI1OF0pPjA7KSgwfGFbMjg4''@;'; + put 'put ''KygwfGFbMTYrKGM9MHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhW2wrMjg4Pj4yXSkmJihRNihjKSxsPTB8YVt3Pj4yXSksZj1mKzF8MH1mdW5jdGlvbiBISChsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wLGI9MDtmb3Iodz0xNisobHw9''@;'; + put 'put ''MCl8MCxtPTA7Oyl7aWYoIShmPTB8YVsoMHxhWzE3MisobD0wfGFbdz4+Ml0pPj4yXSkrKG08PDIpPj4yXSkpe2Y9MDticmVha30oMHxhWzE2NCsocD0wfGFbZisxNj4+Ml0pPj4yXSk8MD8oMHxhWzQ3MjU5XSk+KDB8KGI9MHxhWzI4OCsoYz0wfGFbMTYrKDB8YVsoMz09KDB8KGw9MyZhW2Y+''@;'; + put 'put ''PjJdKSk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKXwoMHxiKT4oMHxhWzQ3MjYwXSkmJigwfChBPSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDB8bCk/ZjpmKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhW2MrMjMyPj4yXSktKDB8aHJbcCsxNzA+PjFdKXwwKSk8KDB8YVs0''@;'; + put 'put ''NzI1OF0pfDA9PSgwfGFbNDcyNTddKSYmKGFbNDcyNTddPWYsYVs0NzI1OF09QSk6KDB8YVsyODgrKDB8YVsxNisoYz0wfGFbKDM9PSgzJmFbZj4+Ml18MCk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPCgwfGFbbCsyODg+PjJdKSYmSEgoYyksbT1tKzF8MH1mb3IoOzAhPSgwfChjPTB8''@;'; + put 'put ''YVsoMHxhW2wrMjcyPj4yXSkrKGY8PDIpPj4yXSkpJigwfGFbNDcyNThdKT4wOykoMHxhWzI4OCsoMHxhWzE2KyhjPTB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPCgwfGFbbCsyODg+PjJdKSYmKEhIKGMpLGw9MHxhW3c+PjJdKSxmPWYrMXwwfWZ1''@;'; + put 'put ''bmN0aW9uIHFvZShsKXt2YXIgYztyZXR1cm4gbHw9MCxjPTB8dnIoMTYpLGFbYz4+Ml09bCxhW2MrND4+Ml09MHxqSChsLGMpLGFbYysxMj4+Ml09YywwfGN9ZnVuY3Rpb24gdGFlKGwpe3JldHVybiAwfGFbNCsobHw9MCk+PjJdfWZ1bmN0aW9uIG5hZShsKXt2YXIgYyxmLHAsbT0wO3JldHVy''@;'; + put 'put ''biBhWzgrKGM9MHxhWyhtPTB8YVsobHw9MCk+PjJdKT4+Ml0pPj4yXT0tMSxhW20+PjJdPWFbbSsoKHA9KDB8YVsoZj1sKzR8MCk+PjJdKS0xfDApPDwyKT4+Ml0sYVs4KygwfGFbKG09MHxhW2w+PjJdKT4+Ml0pPj4yXT0wLGFbbSsocDw8Mik+PjJdPWMsYVtmPj4yXT1wLE5IKGwsMCksMHxj''@;'; + put 'put ''fWZ1bmN0aW9uIHJhZShsKXtyZXR1cm4gMHxDNygwfGFbKGx8PTApPj4yXSwwLDApfWZ1bmN0aW9uIGlhZShsKXt2YXIgZixwLG0sQSx3LGM9MDtyZXR1cm4oMHxhWzE2NCsoMHxhWyhjPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSk+LTEmJlByKDEwMjM1MCwxMDIzMzEsNDYzLDEwMjM2NCksbT1s''@;'; + put 'put ''KzQ4fDAsZj0wfEtkKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOm0pKzQwPj4yXSksdz1sKy00OHwwLHA9MHxLZCgwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDp3KSs0MD4+Ml0pLGM9KDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHwoQT0zJmFbbD4+Ml0pKT9sOncpKzQwPj4yXSk+PjJdKT4+''@;'; + put 'put ''Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8QSk/bDptKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxoclsxNzArKDB8YVtjPj4yXSk+PjFdKXwwLC0xPT0oMHxhW2YrOD4+Ml0pP0dJKDB8YVtmPj4yXSwwLGMpOkdJKDB8YVtwPj4yXSwwLDAtY3wwKSxfNyhsKSwwfGZ1bmN0aW9uIGxh''@;'; + put 'put ''ZShsLGMpe2x8PTAsY3w9MDtmb3IodmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDshKDA9PSgwfChmPTB8YVsoQT1sKzEyfDApPj4yXSkpfCgwfGYpPT0oMHxsKSk7KWw9Zjtmb3IoOyEoMD09KDB8KGY9MHxhWyhtPWMrMTJ8MCk+PjJdKSl8KDB8Zik9PSgwfGMpKTspYz1mO2lmKCgw''@;'; + put 'put ''fGwpIT0oMHxjKSl7cD0wfGFbbCs4Pj4yXSxmPTB8YVtjKzg+PjJdO2Rve2lmKCgwfHApPi0xKS0xPT0oMHxmKT93PWw6az0xMDtlbHNle2lmKCgwfGYpPi0xKXtpZigtMT09KDB8cCkpe3c9YzticmVha31rPTEwO2JyZWFrfVByKDEwMjM3NiwxMDIzMzEsMzI3LDEwMjQyMyl9fXdoaWxlKDAp''@;'; + put 'put ''OzEwPT0oMHxrKSYmKHc9KDB8YVtjKzQ+PjJdKTwoMHxhW2wrND4+Ml0pP2w6YyksYVttPj4yXT13LGFbQT4+Ml09dyxhW3crND4+Ml09KDB8YVtjKzQ+PjJdKSsoMHxhW2wrND4+Ml0pLCgwfGFbdys4Pj4yXSk+LTE/Yj13OlByKDEwMjQzNCwxMDIzMzEsMzM1LDEwMjQyMyl9ZWxzZSBiPWw7''@;'; + put 'put ''cmV0dXJuIDB8Yn0oZixwKX1mdW5jdGlvbiBOSChsLGMpe2N8PTA7dmFyIEEsdyxmPTAscD0wLG09MCxiPTA7Zm9yKHc9MHxhWyhsfD0wKT4+Ml0sQT0wfGFbbCs0Pj4yXTttPTIrKGw9Yzw8MSl8MCwoMHwobHw9MSkpPCgwfEEpJiYoMHxhWzQrKDB8YVt3KyhsPDwyKT4+Ml0pPj4yXSk8KDB8''@;'; + put 'put ''YVs0KygwfGFbdysoYzw8Mik+PjJdKT4+Ml0pfHwobD1jKSwhKCgwfG0pPj0oMHxBKXx8KGY9dysobTw8Mil8MCxwPTB8YVtmPj4yXSwoMHxtKT09KDB8Yyl8fCgwfGFbcCs0Pj4yXSk+PSgwfGFbNCsoMHxhW3crKGw8PDIpPj4yXSk+PjJdKSkpOylsPTB8YVsoYj13KyhjPDwyKXwwKT4+Ml0s''@;'; + put 'put ''YVtiPj4yXT1wLGFbZj4+Ml09bCxhWzgrKDB8YVtiPj4yXSk+PjJdPWMsYVtsKzg+PjJdPW0sYz1tfWZ1bmN0aW9uIFZIKGwsYyl7Y3w9MDt2YXIgbSxmPTAscD0wO2ZvcihtPTE2KyhsfD0wKXwwLGY9MDs7KXtpZighKHA9MHxhWygwfGFbMjcyKyhsPTB8YVttPj4yXSk+PjJdKSsoZjw8Mik+''@;'; + put 'put ''PjJdKSl7cD0wO2JyZWFrfSgwfHApIT0oMHxjKSYmVkgoMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdLHApLGY9ZisxfDB9Zm9yKDtmPTB8YVsoMHxhW2wrMjY0Pj4yXSkrKHA8PDIpPj4yXTspKDB8ZikhPSgwfGMpJiYoVkgoMHxhWygzPT0oMyZhW2Y+PjJdfDApP2Y6''@;'; + put 'put ''Zis0OHwwKSs0MD4+Ml0sZiksbD0wfGFbbT4+Ml0pLHA9cCsxfDA7MHxjJiZmdW5jdGlvbiBhYWUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtmb3IoKDB8YVsyODArKHA9MHxhWzE2KyhmPTB8YVsoMz09KDB8KGM9MyZhWyhsfD0wKT4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJd''@;'; + put 'put ''KT4+Ml0pPj4yXSk9PSgwfGwpP2I9MTooYj0tMSxmPXA9MHxhWygyPT0oMHxjKT9sOmwrLTQ4fDApKzQwPj4yXSxwPTB8YVtwKzE2Pj4yXSksQT0wfGFbcCsxODA+PjJdLGM9MCxtPTA7dz0wfGFbQSsobTw8Mik+PjJdOyljPSgwfHZRKHcsZixiKSkrY3wwLG09bSsxfDA7Zm9yKEE9MHxhW3Ar''@;'; + put 'put ''MTcyPj4yXSxwPTA7bT0wfGFbQSsocDw8Mik+PjJdOyljPSgwfHZRKG0sZixiKSkrY3wwLHA9cCsxfDA7YVsxNjArKDB8YVtsKzE2Pj4yXSk+PjJdPWN9KGMpfWZ1bmN0aW9uIHZRKGwsYyxmKXt2YXIgdyxwPTAsbT0wLEE9MCxiPTA7cmV0dXJuKDB8KHA9MHxhWyhiPTM9PSgwfCh3PTMmYVso''@;'; + put 'put ''bHw9MCk+PjJdKSk/bDpsKzQ4fDApKzQwPj4yXSkpPT0oMHwoY3w9MCkpJiYocD0wfGFbKDI9PSgwfHcpP2w6bCstNDh8MCkrNDA+PjJdKSwoMHxhWzI4NCsoQT0wfGFbYysxNj4+Ml0pPj4yXSk8PSgwfChtPTB8YVsyODgrKDB8YVtwKzE2Pj4yXSk+PjJdKSkmJigwfG0pPD0oMHxhW0ErMjg4''@;'; + put 'put ''Pj4yXSk/KEE9MSxwPShwPSgwfGFbMTY0KyhtPTB8YVtsKzE2Pj4yXSk+PjJdKT4tMT8wfGFbbSsxNjA+PjJdOjApLSgwfGFbbSsxNTY+PjJdKXwwKTooQT0wLHA9MHxhWzE1NisoMHxhW2wrMTY+PjJdKT4+Ml0pLGI9KDB8YVsoKDB8KGZ8PTApKT4wPzI9PSgwfHcpP2w6bCstNDh8MDpiKSs0''@;'; + put 'put ''MD4+Ml0pPT0oMHxjKT8xOi0xLDB8KCgwfChBP2I6MC1ifDApKTwwPzAtcHwwOnApfWZ1bmN0aW9uIEtkKGwpe3ZhciBjPTAsZj0wO2ZvcihsPTB8YVsyODArKDB8YVsxNisobHw9MCk+PjJdKT4+Ml07KDB8KGY9MHxhWyhjPWwrMTJ8MCk+PjJdKSkhPSgwfGwpJjAhPSgwfGYpOykobD0wfGFb''@;'; + put 'put ''ZisxMj4+Ml0pP2FbYz4+Ml09bDpsPWY7cmV0dXJuIDB8bH1mdW5jdGlvbiBHSShsLGMsZil7Y3w9MDt2YXIgdyxwPTAsbT0wLEE9MDtmb3IoYVsoQT0yMzIrKHA9MHxhWyh3PTE2KyhsfD0wKXwwKT4+Ml0pfDApPj4yXT0oMHxhW0E+PjJdKSsoZnw9MCksQT0wOzspe2lmKCEobT0wfGFbKDB8''@;'; + put 'put ''YVtwKzI2ND4+Ml0pKyhBPDwyKT4+Ml0pKXtBPTA7YnJlYWt9KDB8KG09MHxhWygzPT0oMyZhW20+PjJdfDApP206bSs0OHwwKSs0MD4+Ml0pKSE9KDB8YykmJihHSShtLGwsZikscD0wfGFbdz4+Ml0pLEE9QSsxfDB9Zm9yKDttPTB8YVsoMHxhW3ArMjcyPj4yXSkrKEE8PDIpPj4yXTspKDB8''@;'; + put 'put ''KG09MHxhWygyPT0oMyZhW20+PjJdfDApP206bSstNDh8MCkrNDA+PjJdKSkhPSgwfGMpJiYoR0kobSxsLGYpLHA9MHxhW3c+PjJdKSxBPUErMXwwfWZ1bmN0aW9uIF83KGwpe3ZhciBBLGM9MCxmPTAscD0wLG09MCx3PTA7QT1hZSxhZT1hZSszMnwwLCgwfGFbKGM9MTY0KygwfGFbMTYrKGx8''@;'; + put 'put ''PTApPj4yXSl8MCk+PjJdKT4tMSYmKCRyKDEsMTAyNDUzLEEpLHplKDE4ODg0OCwxKSksYVtjPj4yXT1tPTB8YVs0NzI1NV0sYz0wfGFbNDcyNTZdLGFbNDcyNTVdPW0rMSxhW2MrKG08PDIpPj4yXT1sLG09bCs0OHwwLDB8ZmVbMTU3KygwfGFbMTYrKGY9MHxhWygzPT0oMyYoYz0wfGFbbD4+''@;'; + put 'put ''Ml0pfDApP2w6bSkrNDA+PjJdKT4+Ml0pPj4wXXx8KHA9MHxhWzQ3MjYyXSxhWzQ3MjYzXT0xKyhjPTB8YVs0NzI2M10pLGFbcCsoYzw8Mik+PjJdPWYsYz0wfGFbbD4+Ml0pLHA9bCstNDh8MCwwfGZlWzE1NysoMHxhWzE2KyhmPTB8YVsoMj09KDMmY3wwKT9sOnApKzQwPj4yXSk+PjJdKT4+''@;'; + put 'put ''MF18fCh3PTB8YVs0NzI2Ml0sYVs0NzI2M109MSsoYz0wfGFbNDcyNjNdKSxhW3crKGM8PDIpPj4yXT1mLGM9MHxhW2w+PjJdKSxmZVsxNTcrKGM9MHxhWyh3PTE2KygwfGFbKDM9PSgzJmN8MCk/bDptKSs0MD4+Ml0pfDApPj4yXSk+PjBdPTEsZj0wfGFbYysyNzI+PjJdLGFbKGM9YysyNzZ8''@;'; + put 'put ''MCk+PjJdPTErKG09MHxhW2M+PjJdKSxhW2YrKG08PDIpPj4yXT1sLGFbKDB8YVsyNzIrKG09MHxhW3c+PjJdKT4+Ml0pKyhhW20rMjc2Pj4yXTw8Mik+PjJdPTAsMHxhWygwfGFbMTgwKyh3PTB8YVt3Pj4yXSk+PjJdKSsoKDB8YVt3KzI3Nj4+Ml0pLTE8PDIpPj4yXXx8KCRyKDEsMTAyNDg3''@;'; + put 'put ''LEErOHwwKSx6ZSgxODg4NDgsMSkpLGZlWzE1NysoZj0wfGFbKHc9MTYrKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOnApKzQwPj4yXSl8MCk+PjJdKT4+MF09MSxwPTB8YVtmKzI2ND4+Ml0sYVsoZj1mKzI2OHwwKT4+Ml09MSsobT0wfGFbZj4+Ml0pLGFbcCsobTw8Mik+PjJdPWwsYVsoMHxh''@;'; + put 'put ''WzI2NCsobD0wfGFbdz4+Ml0pPj4yXSkrKGFbbCsyNjg+PjJdPDwyKT4+Ml09MCwwfGFbKDB8YVsxNzIrKHc9MHxhW3c+PjJdKT4+Ml0pKygoMHxhW3crMjY4Pj4yXSktMTw8Mik+PjJdP2FlPUE6KCRyKDEsMTAyNTIyLEErMTZ8MCksemUoMTg4ODQ4LDEpKX1mdW5jdGlvbiBDNyhsLGMsZil7''@;'; + put 'put ''Y3w9MCxmfD0wO3ZhciBNLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLEQ9MDtNPTB8S2QobHw9MCksZj8oKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHwoaz0zJmFbZj4+Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8ayk/''@;'; + put 'put ''ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pfDApIT0oMHxoclsxNzArKDB8YVtmKzE2Pj4yXSk+PjFdKSYmKHA9Myk6KGY9MCxwPTMpO2U6ZG97aWYoMz09KDB8cCkpe2ZvcihrPWwrMTZ8MCxiPTA7Oyl7aWYoISh3PTB8YVsoMHxhWzE4MCsocD0wfGFbaz4+Ml0pPj4yXSkrKGI8PDIpPj4y''@;'; + put 'put ''XSkpe2I9MDticmVha31wPXcrMTZ8MCxtPXcrLTQ4fDAsQT0wfGFbKDI9PSgzJmFbdz4+Ml18MCk/dzptKSs0MD4+Ml07ZG97aWYoKDB8YVsxNjQrKDB8YVtwPj4yXSk+PjJdKT4tMSkoMHxBKSE9KDB8YykmJihmPTB8QzcoQSxsLGYpKTtlbHNlIGlmKCgwfEtkKEEpKSE9KDB8TSkpe2lmKDB8''@;'; + put 'put ''ZiYmKCgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDB8KEQ9MyZhW3c+PjJdKSk/dzptKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfEQpP3c6dys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxoclsxNzArKDB8YVtwPj4yXSk+PjFdKXwwKT49KCgw''@;'; + put 'put ''fGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDB8KEE9MyZhW2Y+PjJdKSk/ZjpmKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfEEpP2Y6Zis0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxoclsxNzArKDB8YVtmKzE2Pj4yXSk+PjFdKXwwKSli''@;'; + put 'put ''cmVhaztmPXd9fXdoaWxlKDApO2I9YisxfDB9Zm9yKDs7KXtpZighKHA9MHxhWygwfGFbcCsxNzI+PjJdKSsoYjw8Mik+PjJdKSlicmVhayBlO209cCsxNnwwLEE9cCs0OHwwLHc9MHxhWygzPT0oMyZhW3A+PjJdfDApP3A6QSkrNDA+PjJdO2Rve2lmKCgwfGFbMTY0KygwfGFbbT4+Ml0pPj4y''@;'; + put 'put ''XSk+LTEpKDB8dykhPSgwfGMpJiYoZj0wfEM3KHcsbCxmKSk7ZWxzZSBpZigoMHxLZCh3KSkhPSgwfE0pKXtpZigwfGYmJigoMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfCh3PTMmYVtwPj4yXSkpP3A6cCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxh''@;'; + put 'put ''WygzPT0oMHx3KT9wOkEpKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGhyWzE3MCsoMHxhW20+PjJdKT4+MV0pfDApPj0oKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHwoRD0zJmFbZj4+Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09''@;'; + put 'put ''KDB8RCk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGhyWzE3MCsoMHxhW2YrMTY+PjJdKT4+MV0pfDApKWJyZWFrO2Y9cH19d2hpbGUoMCk7Yj1iKzF8MCxwPTB8YVtrPj4yXX19fXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gakgobCxjKXt2YXIgTSxmPTAscD0wLG09MCxB''@;'; + put 'put ''PTAsdz0wLGI9MCxrPTAsRD0wLFI9MCxHPTA7Zm9yKGFbMjgwKyhmPTB8YVsoTT0xNisobHw9MCl8MCk+PjJdKT4+Ml09Y3w9MCxsPTEsQT0wOzspe2lmKCEobT0wfGFbKDB8YVtmKzE3Mj4+Ml0pKyhBPDwyKT4+Ml0pKXtBPTA7YnJlYWt9KDB8YVsxNjQrKHA9MHxhW20rMTY+PjJdKT4+Ml0p''@;'; + put 'put ''PD0tMSYmKGI9bSs0OHwwLDA9PSgwfGFbMjgwKyhrPTB8YVsxNisoMHxhWygzPT0oMHwodz0zJmFbbT4+Ml0pKT9tOmIpKzQwPj4yXSk+PjJdKT4+Ml0pKSYmKCgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDB8dyk/bTptKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhW2srMjMyPj4y''@;'; + put 'put ''XSl8MCk9PSgwfGhyW3ArMTcwPj4xXSkmJihfNyhtKSxsPSgwfGpIKDB8YVsoMz09KDMmYVttPj4yXXwwKT9tOmIpKzQwPj4yXSxjKSkrbHwwLGY9MHxhW00+PjJdKSxBPUErMXwwfWZvcig7cD0wfGFbKDB8YVtmKzE4MD4+Ml0pKyhBPDwyKT4+Ml07KSgwfGFbMTY0KyhtPTB8YVtwKzE2Pj4y''@;'; + put 'put ''XSk+PjJdKTw9LTEmJihSPXArLTQ4fDAsMD09KDB8YVsyODArKEc9MHxhWzE2KygwfGFbKDI9PSgwfChEPTMmYVtwPj4yXSkpP3A6UikrNDA+PjJdKT4+Ml0pPj4yXSkpJiYoKDB8YVtHKzIzMj4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8RCk/cDpwKzQ4fDApKzQwPj4yXSk+''@;'; + put 'put ''PjJdKT4+Ml0pfDApPT0oMHxoclttKzE3MD4+MV0pJiYoXzcocCksbD0oMHxqSCgwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpSKSs0MD4+Ml0sYykpK2x8MCxmPTB8YVtNPj4yXSksQT1BKzF8MDtyZXR1cm4gMHxsfWZ1bmN0aW9uIGs3KGwsYyxmKXt2YXIgcD0wO3JldHVybiAwfGhRKGx8PTAs''@;'; + put 'put ''Y3w9MCxmfD0wLHA9KHA9MHxMaShsLDEwMjU4NikpPzB8cjMocCk6MzApfWZ1bmN0aW9uIEFRKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBELEcsSyxwZSxnZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxSPTAsYmU9MDtmb3IoSz1hZSxhZT1hZSsxNnwwLEc9SyxhWzQ3MjY0XT1hWzQr''@;'; + put 'put ''KDB8YVs4KygwfGFbNjQrKGN8PTApPj4yXSk+PjJdKT4+Ml0sZ2U9K19bMzIrKEE9MHxhW2MrMTY+PjJdKT4+M10scGU9K19bQSs0MD4+M10sUzcoZiwxMDI1OTcsK19bbCszNTI+PjNdKSxTNyhmLDEwMjYwNCwuMDEzODg4ODg4ODg4ODg4ODg4KmdlKSxTNyhmLDEwMjYwNCwuMDEzODg4ODg4''@;'; + put 'put ''ODg4ODg4ODg4KnBlKSxaSChmKSxBPTB8RHQoYyk7QTspMHxmZVsxMTgrKDB8YVsobT1BKzE2fDApPj4yXSk+PjBdfHwoSjMoZiwxMDI2MDYsMHxPQSgwfHRpKEEpKSksYVtHPj4yXT1hWyhSPTE2KygwfGFbbT4+Ml0pfDApPj4yXSxhW0crND4+Ml09YVtSKzQ+PjJdLGFbRys4Pj4yXT1hW1Ir''@;'; + put 'put ''OD4+Ml0sYVtHKzEyPj4yXT1hW1IrMTI+PjJdLHpIKGYsRyksbD0wfGZlWzgyKygwfGFbMTA0KygwfGFbbT4+Ml0pPj4yXSk+PjBdPzB8T0EoMHxIbyhBLDB8YVs0NzE1NF0pKTowfEdIKGw9MHxjcihBKSwwfGFbYVsxMDQrKDB8YVttPj4yXSk+PjJdPj4yXSksUzcoZiwxMDI2MDQsK19bMzIr''@;'; + put 'put ''KDB8YVttPj4yXSk+PjNdKSxTNyhmLDEwMjYwNCwrX1s0MCsoMHxhW20+PjJdKT4+M10pLEozKGYsMTAyNjA0LGwpLEozKGYsMTAyNjA0LDB8QmEoQSwwfGFbNDcxNTddLDExMTA2NykpLEozKGYsMTAyNjA0LDB8YVthWzgrKDB8YVttPj4yXSk+PjJdPj4yXSksSjMoZiwxMDI2MDQsMHxCYShB''@;'; + put 'put ''LDB8YVs0NzE0OF0sMTM3MzE0KSksbD0wfEJhKEEsMHxhWzQ3MTQ5XSwxOTUwNTkpLDB8ZmVbbD4+MF18fChsPTB8QmEoQSwwfGFbNDcxNDhdLDEzNDgwMCkpLEozKGYsMTAyNjA0LGwpLFpIKGYpKSxBPTB8enQoYyxBKTtmb3IoRD1wPDwyND4+MjQ9PTAsTT0wfER0KGMpO007KXtmb3Ioaz0w''@;'; + put 'put ''fHcwKGMsTSk7azspe0Q/KHA9MTk1MDU5LHc9MTk1MDU5KToodz0wfExpKGssMTExNDU1KSxwPTB8KHA9MHxMaShrLDExMTQ2NCkpP3A6MTk1MDU5LHc9MHx3P3c6MTk1MDU5KSxiPTB8YVs4KyhsPTB8YVsoUj1rKzE2fDApPj4yXSk+PjJdO2U6ZG97aWYoYil7Zm9yKEE9MHxhW2IrND4+Ml0s''@;'; + put 'put ''bD0wLG09MDshKCgwfGwpPj0oMHxBKSk7KWJlPSgwfGFbKDB8YVtiPj4yXSkrKDQ4Kmx8MCkrND4+Ml0pK218MCxsPWwrMXwwLG09YmU7Zm9yKEozKGYsMCwxMTE0NTApLHdRKGYsMHxhWygzPT0oMyZhW2s+PjJdfDApP2s6ays0OHwwKSs0MD4+Ml0sdyksd1EoZiwwfGFbKDI9PSgzJmFbaz4+''@;'; + put 'put ''Ml18MCk/azprKy00OHwwKSs0MD4+Ml0scCksdWFlKGYsbSkscD0wOzspe2lmKCgwfHApPj0oMHxhWzQrKG09MHxhWzgrKGw9MHxhW1I+PjJdKT4+Ml0pPj4yXSkpYnJlYWsgZTtmb3IobT0wfGFbKEE9MHxhW20+PjJdKSsoNDgqcHwwKT4+Ml0sQT0wfGFbQSsoNDgqcHwwKSs0Pj4yXSxsPTA7''@;'; + put 'put ''ISgoMHxsKT49KDB8QSkpOylhW0c+PjJdPWFbKGJlPW0rKGw8PDQpfDApPj4yXSxhW0crND4+Ml09YVtiZSs0Pj4yXSxhW0crOD4+Ml09YVtiZSs4Pj4yXSxhW0crMTI+PjJdPWFbYmUrMTI+PjJdLHpIKGYsRyksbD1sKzF8MDtwPXArMXwwfX19d2hpbGUoMCk7MHxhW2wrOTY+PjJdJiYoSjMo''@;'; + put 'put ''ZiwxMDI2MDQsMHxHSChiZT0wfGNyKDB8YVsoMz09KDMmYVtrPj4yXXwwKT9rOmsrNDh8MCkrNDA+PjJdKSwwfGFbYVs5NisoMHxhW1I+PjJdKT4+Ml0+PjJdKSksYVtHPj4yXT1hWyhiZT01NisoMHxhWzk2KygwfGFbUj4+Ml0pPj4yXSl8MCk+PjJdLGFbRys0Pj4yXT1hW2JlKzQ+PjJdLGFb''@;'; + put 'put ''Rys4Pj4yXT1hW2JlKzg+PjJdLGFbRysxMj4+Ml09YVtiZSsxMj4+Ml0sekgoZixHKSksSjMoZiwxMDI2MDQsMHxCYShrLDB8YVs0NzE4NV0sMTExMDY3KSksSjMoZiwxMDI2MDQsMHxCYShrLDB8YVs0NzE3Nl0sMTM3MzE0KSksWkgoZiksaz0wfFMwKGMsayl9TT0wfHp0KGMsTSl9TTcoMTAy''@;'; + put 'put ''NjEyLGYpLGFlPUt9ZnVuY3Rpb24gUzcobCxjLGYpe3ZhciBwLG0sQTtsfD0wLGY9K2YsQT1hZSxhZT1hZSsxMDQwfDAsbT1BLHA9QSs4fDAsMHwoY3w9MCkmJk03KGMsbCksX1ttPj4zXT1mLG9vKHAsMTAyNjE4LG0pLE03KHAsbCksYWU9QX1mdW5jdGlvbiBaSChsKXtsfD0wLGZlWzE5NDk1''@;'; + put 'put ''NV09MTAsQmlbMTI3JmFbNDcyNjRdXShsLDE5NDk1NSl9ZnVuY3Rpb24gSjMobCxjLGYpe2x8PTAsZnw9MCwwfChjfD0wKSYmTTcoYyxsKSxNNyhmLGwpfWZ1bmN0aW9uIHpIKGwsYyl7UzcobHw9MCwxMDI2MDQsLjAxMzg4ODg4ODg4ODg4ODg4OCorX1soY3w9MCk+PjNdKSxTNyhsLDEwMjYw''@;'; + put 'put ''NCwuMDEzODg4ODg4ODg4ODg4ODg4KitfW2MrOD4+M10pfWZ1bmN0aW9uIEdIKGwsYyl7dmFyIGY7cmV0dXJuIGM9MHxPQShmPTB8cjAobHw9MCxjfD0wKSksZTAobCxmKSwwfGN9ZnVuY3Rpb24gd1EobCxjLGYpe2Z8PTAsSjMobHw9MCwxMDI2MDQsYz0wfGZlWzExOCsoMHxhWzE2KyhjfD0w''@;'; + put 'put ''KT4+Ml0pPj4wXT8wfEdIKDB8Y3IoYyksMSsoMHwkcygwfHRpKGMpLDU4KSl8MCk6MHxPQSgwfHRpKGMpKSksMHxmJiYwfGZlW2Y+PjBdJiZKMyhsLDEwNzk4NCwwfE9BKGYpKX1mdW5jdGlvbiB1YWUobCxjKXt2YXIgZixwLG07Y3w9MCxmPWFlLGFlPWFlKzEwNDB8MCxtPWYscD1mKzh8MCxN''@;'; + put 'put ''NygxMDI2MDQsbHw9MCksYVttPj4yXT1jLG9vKHAsMTM3Mzk1LG0pLE03KHAsbCksYWU9Zn1mdW5jdGlvbiBNNyhsLGMpe0JpWzEyNyZhWzQ3MjY0XV0oY3w9MCxsfD0wKX1mdW5jdGlvbiBiUShsLGMsZil7Y3w9MCxmfD0wO3ZhciBSZSxIZSxWZSxxZSxXZSxvdCxTdCxrdCxsdCxFdCxadCxj''@;'; + put 'put ''dCxidCxhbixTbixIbix1cixIcixFcixmcixEcixKcixMcixwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxudD0wO2ZvcihMcj1hZSxhZT1hZSsyMjg4fDAsRHI9THIrMjA4fDAsZnI9THIrMTkyfDAsRXI9THIrMTc2''@;'; + put 'put ''fDAsSHI9THIrMTYwfDAsdXI9THIrMTQ0fDAsSG49THIrMTI4fDAsYW49THIrMTEyfDAsYnQ9THIrOTZ8MCxjdD1Mcis4MHwwLFp0PUxyKzY0fDAsRXQ9THIrNTZ8MCxsdD1Mcis0OHwwLEpyPUxyKzMyfDAsU249THIrMjR8MCxrdD1McixXZT1McisxMjY0fDAsb3Q9THIrMjI0fDAscWU9KDB8''@;'; + put 'put ''aHJbMTc4KygwfGFbKFN0PTE2KyhsfD0wKXwwKT4+Ml0pPj4xXSk+MixzYygxKSx1cyhvdCwxMDI0LExyKzI0MHwwKSxaMihsLDEsMTAyNjIzLDE5NTA1OSksWjIobCwxLDEwMjYyNywxOTUwNTkpLGFbNDcxNDZdPTB8WjIobCwxLDE0MTExNiwxOTUwNTkpLGFbNDcxNDVdPTB8WjIobCwxLDE0''@;'; + put 'put ''MTA0OCwxOTUwNTkpLFoyKGwsMiwxMDI2MjMsMTk1MDU5KSwxNiYocD0wfGZlWzExMysoMHxhW1N0Pj4yXSk+PjBdKSYmKFoyKGwsMSwxMDI2MzMsMTk1MDU5KSxwPTB8ZmVbMTEzKygwfGFbU3Q+PjJdKT4+MF0pLDEmcCYmKFoyKGwsMiwxMDI2MzcsMTk1MDU5KSxwPTB8ZmVbMTEzKygwfGFb''@;'; + put 'put ''U3Q+PjJdKT4+MF0pLDMyJnAmJihaMihsLDIsMTAyNjMzLDE5NTA1OSkscD0wfGZlWzExMysoMHxhW1N0Pj4yXSk+PjBdKSwyJnAmJihaMihsLDIsMTAyNjQwLDE5NTA1OSkscD0wfGZlWzExMysoMHxhW1N0Pj4yXSk+PjBdKSw0JnAmJihaMihsLDIsMTAyNjQ4LDE5NTA1OSkscD0wfGZlWzEx''@;'; + put 'put ''MysoMHxhW1N0Pj4yXSk+PjBdKSw4JnA/KE9lPTB8WjIobCwwLDEwMjYzNywxOTUwNTkpLGJlPTB8WjIobCwwLDEwMjY1NiwxOTUwNTkpLGdlPTB8WjIobCwwLDEwMjY2MywxOTUwNTkpKTooZ2U9MCxiZT0wLE9lPTApLFJlPTB8WjIobCwwLDEwMjY3MSwxOTUwNTkpLEhlPW90KzR8MCxWZT1v''@;'; + put 'put ''dCs4fDAscGU9MCxwPTAsTGU9MHxEdChsKTtMZTspe2lmKGs9K19bMTYrKEE9MHxhWyhLPUxlKzE2fDApPj4yXSk+PjNdLG09ITAscWUpe2Zvcih3PW0/K19bQSsyND4+M106K19bMjMzMDFdLStfW0ErMjQ+PjNdLEQ9NzIqK19bMTYrKDB8YVtBKzEzMj4+Ml0pPj4zXSxfW2t0Pj4zXT1rLF9b''@;'; + put 'put ''a3QrOD4+M109dyxfW2t0KzE2Pj4zXT1ELG9vKFdlLDEwMjY3NCxrdCksdW8ob3QsV2UpLG09MzshKCgwfG0pPj0oMHxoclsxNzgrKDB8YVtTdD4+Ml0pPj4xXSkpOylfW1NuPj4zXT03MiorX1soMHxhWzEzMisoMHxhW0s+PjJdKT4+Ml0pKyhtPDwzKT4+M10sb28oV2UsMTAyNjg5LFNuKSx1''@;'; + put 'put ''byhvdCxXZSksbT1tKzF8MDsobT0wfGFbSGU+PjJdKT4+PjA+PSgwfGFbVmU+PjJdKT4+PjAmJihRMChvdCwxKSxtPTB8YVtIZT4+Ml0pLGZlW20+PjBdPTAsYVtIZT4+Ml09Rz0wfGFbb3Q+PjJdLGtjKExlLDEwMjYyMyxHKSxHPUxlfWVsc2Ugdz1tPytfW0ErMjQ+PjNdOitfWzIzMzAxXS0r''@;'; + put 'put ''X1tBKzI0Pj4zXSxfW0pyPj4zXT1rLF9bSnIrOD4+M109dyxvbyhXZSwxMDI2OTUsSnIpLGtjKExlLDEwMjYyMyxXZSksRz1MZTtpZihfW2x0Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfWzgwKygwfGFbSz4+Ml0pPj4zXSxvbyhXZSwxMDI2MTgsbHQpLFZsKEcsMHxhWzQ3MTQ1XSxXZSks''@;'; + put 'put ''X1tFdD4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCooK19bOTYrKG09MHxhW0s+PjJdKT4+M10rICtfW20rODg+PjNdKSxvbyhXZSwxMDI2MTgsRXQpLFZsKEcsMHxhWzQ3MTQ2XSxXZSksMCE9KDB8KEE9MHxhWzEwOCsobT0wfGFbSz4+Ml0pPj4yXSkpJiYwIT0oMHxmZVtBKzgxPj4wXSkmJihE''@;'; + put 'put ''PStfW0ErNjQ+PjNdLF9bWnQ+PjNdPStfW0ErNTY+PjNdLF9bWnQrOD4+M109RCxvbyhXZSwxMDI2OTUsWnQpLGtjKEcsMTAyNjMzLFdlKSxtPTB8YVtLPj4yXSksMHxqaSgwfGFbYVttKzg+PjJdPj4yXSwxMDYyMjApKXtpZigwfGFbNDcxNzBdJiYoMHxGYWUoTGUpKTw8MjQ+PjI0KXtmb3Io''@;'; + put 'put ''KDB8KG09MHxhWyhSPTgrKEE9MHxhWzEyKygwfGFbSz4+Ml0pPj4yXSl8MCk+PjJdKSk8MyYmKG09KDB8KG09KG09MHxMaShHLDEwMjcwNSkpPzB8cjMobSk6OCkpPDM/ODptKSxNPUErNDR8MCxEPTEvKygwfG0pLGI9MDshKCgwfGIpPj0oMHxtKSk7KSgwfGIpPjAmJigoQT0wfGFbSGU+PjJd''@;'; + put 'put ''KT4+PjA+PSgwfGFbVmU+PjJdKT4+PjAmJihRMChvdCwxKSxBPTB8YVtIZT4+Ml0pLGFbSGU+PjJdPUErMSxmZVtBPj4wXT0zMiksKDB8YVtSPj4yXSk+Mj8odz0uMDEzODg4ODg4ODg4ODg4ODg4KitfWyhBPTB8YVtNPj4yXSkrKGI8PDQpKzg+PjNdLF9bY3Q+PjNdPS4wMTM4ODg4ODg4ODg4''@;'; + put 'put ''ODg4ODgqK19bQSsoYjw8NCk+PjNdLF9bY3QrOD4+M109dyxvbyhXZSwxMDI3MTgsY3QpKTooaz0uNSorX1szMisoQT0wfGFbSz4+Ml0pPj4zXSoraGEoKyh3PUQqKygwfGIpKjYuMjgzMTg1MzA3MTc5NTg2KSksdz0uNSorX1tBKzQwPj4zXSorRGEoK3cpLF9bYnQ+PjNdPWssX1tidCs4Pj4z''@;'; + put 'put ''XT13LG9vKFdlLDEwMjcxOCxidCkpLHVvKG90LFdlKSxiPWIrMXwwO0E9MHxhWzQ3MTcwXSwobT0wfGFbSGU+PjJdKT4+PjA+PSgwfGFbVmU+PjJdKT4+PjAmJihRMChvdCwxKSxtPTB8YVtIZT4+Ml0pLGZlW20+PjBdPTAsYVtIZT4+Ml09Sz0wfGFbb3Q+PjJdLFZsKEcsQSxLKX19ZWxzZSBf''@;'; + put 'put ''UShMZSwwfGFbbSsxMj4+Ml0sb3QpLEw2KG90KSwobT0wfGFbSGU+PjJdKT4+PjA+PSgwfGFbVmU+PjJdKT4+PjAmJihRMChvdCwxKSxtPTB8YVtIZT4+Ml0pLGZlW20+PjBdPTAsYVtIZT4+Ml09Sz0wfGFbb3Q+PjJdLGtjKEcsMTAyNjI3LEspO2U6ZG97aWYoKDB8YVs0NzEzOF0pPjApZm9y''@;'; + put 'put ''KEs9MHx3MChsLExlKSxtPXBlOzspe2lmKCFLKWJyZWFrIGU7QT0wfGFbKEc9SysxNnwwKT4+Ml07ZG97aWYoNiE9KDB8ZmVbQSsxMTI+PjBdKSYmMCE9KDB8KG50PTB8YVtBKzg+PjJdKSkpe2ZvcihSPTAsQT1udDshKCgwfFIpPj0oMHxhW0ErND4+Ml0pKTspe2ZvcigoMHxSKT4wJiYoKEE9''@;'; + put 'put ''MHxhW0hlPj4yXSk+Pj4wPj0oMHxhW1ZlPj4yXSk+Pj4wJiYoUTAob3QsMSksQT0wfGFbSGU+PjJdKSxhW0hlPj4yXT1BKzEsZmVbQT4+MF09NTksQT0wfGFbOCsoMHxhW0c+PjJdKT4+Ml0pLDB8YVsoQT0wfGFbQT4+Ml0pKyg0OCpSfDApKzg+PjJdJiYodz0rX1tBKyg0OCpSfDApKzI0Pj4z''@;'; + put 'put ''XSxfW2FuPj4zXT0rX1tBKyg0OCpSfDApKzE2Pj4zXSxfW2FuKzg+PjNdPXcsb28oV2UsMTAyNzI4LGFuKSx1byhvdCxXZSkscD0xLEE9MHxhW2FbOCsoMHxhW0c+PjJdKT4+Ml0+PjJdKSwwfGFbQSsoNDgqUnwwKSsxMj4+Ml0mJih3PStfW0ErKDQ4KlJ8MCkrNDA+PjNdLF9bSG4+PjNdPStf''@;'; + put 'put ''W0ErKDQ4KlJ8MCkrMzI+PjNdLF9bSG4rOD4+M109dyxvbyhXZSwxMDI3NDEsSG4pLHVvKG90LFdlKSxtPTEpLE09MDshKCgwfE0pPj0oMHxhWyhiPTB8YVsoQT0wfGFbOCsoMHxhW0c+PjJdKT4+Ml0pPj4yXSkrKDQ4KlJ8MCkrND4+Ml0pKTspKDB8TSk+MD8oKEE9MHxhW0hlPj4yXSk+Pj4w''@;'; + put 'put ''Pj0oMHxhW1ZlPj4yXSk+Pj4wJiYoUTAob3QsMSksQT0wfGFbSGU+PjJdKSxhW0hlPj4yXT1BKzEsZmVbQT4+MF09MzIsQT0wfGFbYVs4KygwfGFbRz4+Ml0pPj4yXT4+Ml0pOkE9YixEPStfWyhwZT0wfGFbQSsoNDgqUnwwKT4+Ml0pKyhNPDw0KSs4Pj4zXSxfW3VyPj4zXT0rX1twZSsoTTw8''@;'; + put 'put ''NCk+PjNdLF9bdXIrOD4+M109RCxvbyhXZSwxMDI2OTUsdXIpLHVvKG90LFdlKSxNPU0rMXwwO1I9UisxfDB9KEE9MHxhW0hlPj4yXSk+Pj4wPj0oMHxhW1ZlPj4yXSk+Pj4wJiYoUTAob3QsMSksQT0wfGFbSGU+PjJdKSxmZVtBPj4wXT0wLGFbSGU+PjJdPUE9MHxhW290Pj4yXSxrYyhLLDEw''@;'; + put 'put ''MjYyMyxBKSwoYj0wfGFbOTYrKEE9MHxhW0c+PjJdKT4+Ml0pJiYoRD0rX1tiKzY0Pj4zXSxfW0hyPj4zXT0rX1tiKzU2Pj4zXSxfW0hyKzg+PjNdPUQsb28oV2UsMTAyNjk1LEhyKSxrYyhLLDEwMjYzNyxXZSksQT0wfGFbRz4+Ml0pLGI9MHxhW0ErMTA4Pj4yXTtkb3tpZihiKXtpZighKDB8''@;'; + put 'put ''ZmVbYis4MT4+MF0pKWJyZWFrO0Q9K19bYis2ND4+M10sX1tFcj4+M109K19bYis1Nj4+M10sX1tFcis4Pj4zXT1ELG9vKFdlLDEwMjY5NSxFciksa2MoSywxMDI2MzMsV2UpLEE9MHxhW0c+PjJdfX13aGlsZSgwKTtpZigoYj0wfGFbQSsxMDA+PjJdKSYmKEQ9K19bYis2ND4+M10sX1tmcj4+''@;'; + put 'put ''M109K19bYis1Nj4+M10sX1tmcis4Pj4zXT1ELG9vKFdlLDEwMjY5NSxmciksa2MoSywxMDI2NDAsV2UpLEE9MHxhW0c+PjJdKSwhKEE9MHxhW0ErMTA0Pj4yXSkpYnJlYWs7RD0rX1tBKzY0Pj4zXSxfW0RyPj4zXT0rX1tBKzU2Pj4zXSxfW0RyKzg+PjNdPUQsb28oV2UsMTAyNjk1LERyKSxr''@;'; + put 'put ''YyhLLDEwMjY0OCxXZSl9fXdoaWxlKDApO0s9MHxTMChsLEspfWVsc2UgbT1wZX13aGlsZSgwKTtwZT1tLExlPTB8enQobCxMZSl9Q1EobCxSZSxPZSxiZSxnZSksQzIob3QpLDEmcnRbMTM2KygwfGFbU3Q+PjJdKT4+MV0mJnlKKGwpLGFbYz4+Ml09cCxhW2Y+PjJdPXBlLHNjKDApLGFlPUxy''@;'; + put 'put ''fWZ1bmN0aW9uIF9RKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIGIsayxNLEQscD0wLG09MCxBPTAsdz0wLFI9MDtmb3IoRD1hZSxhZT1hZSsxMDU2fDAsaz1ELGI9RCszMnwwLDB8YVsoTT00OCsoY3w9MCl8MCk+PjJdfHwobT0oQT0rX1syNCsocD0wfGFbbCsxNj4+Ml0pPj4zXSkrICtfW2MrMjQ+''@;'; + put 'put ''PjNdLEErPStfW2MrNDA+PjNdLFI9KHc9K19bcCsxNj4+M10pKyArX1tjKzMyPj4zXSxfW2s+PjNdPXcrICtfW2MrMTY+PjNdLF9bays4Pj4zXT1tLF9baysxNj4+M109UixfW2srMjQ+PjNdPUEsb28oYiwxMDI3NzksayksdW8oZixiKSksYz1jKzU2fDAscD0wOyEoKDB8cCk+PSgwfGFbTT4+''@;'; + put 'put ''Ml0pKTspX1EobCwwfGFbKDB8YVtjPj4yXSkrKHA8PDIpPj4yXSxmKSxwPXArMXwwO2FlPUR9ZnVuY3Rpb24gQ1EobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiLGssTSxELFIsRyxLLHBlLEE9MCx3PTAsZ2U9MDtmb3IocGU9YWUsYWU9YWUrMTA4OHwwLEQ9cGUrNTZ8MCxH''@;'; + put 'put ''PXBlKzQ4fDAsUj1wZSszMnwwLE09cGUrNjR8MCxiPStfWzI0KyhBPTB8YVsoSz0xNisobHw9MCl8MCk+PjJdKT4+M10saz0rX1tBKzQwPj4zXSxnZT0rX1tBKzMyPj4zXSxfWyh3PXBlKT4+M109K19bQSsxNj4+M10sX1t3Kzg+PjNdPWIsX1t3KzE2Pj4zXT1nZSxfW3crMjQ+PjNdPWssb28o''@;'; + put 'put ''TSwxMDI3NTQsdyksVmwobCxjLE0pLDAhPSgwfChBPTB8YVsxMisoMHxhW0s+PjJdKT4+Ml0pKSYmMCE9KDB8ZmVbYVtBPj4yXT4+MF0pJiYoZ2U9K19bQSs2ND4+M10sX1tSPj4zXT0rX1tBKzU2Pj4zXSxfW1IrOD4+M109Z2Usb28oTSwxMDI2OTUsUiksVmwobCxmLE0pLGdlPStfWzMyKyhB''@;'; + put 'put ''PTB8YVsxMisoMHxhW0s+PjJdKT4+Ml0pPj4zXSxfW0c+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bQSsyND4+M10sb28oTSwxMDI3NzQsRyksVmwobCxwLE0pLF9bRD4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCpnZSxvbyhNLDEwMjc3NCxEKSxWbChsLG0sTSkpLEE9MTshKCgwfEEpPigw''@;'; + put 'put ''fGFbMTgwKyh3PTB8YVtLPj4yXSk+PjJdKSk7KUNRKDB8YVsoMHxhW3crMTg0Pj4yXSkrKEE8PDIpPj4yXSxjLGYscCxtKSxBPUErMXwwO2FlPXBlfWZ1bmN0aW9uIEU3KGwpe3ZhciBjO2M9YWUsYWU9YWUrMTZ8MCxiUShsfD0wLGMsYys0fDApLGFlPWN9ZnVuY3Rpb24geDcoKXtyZXR1cm4g''@;'; + put 'put ''MHxpcygyMDc0MCwwfGFbNDU4MV0pfWZ1bmN0aW9uIEF5KGwpe05sKGx8PTApfWZ1bmN0aW9uIGtRKGwsYyl7dmFyIGYscDtsfD0wLGY9YWUsYWU9YWUrMTZ8MCxhWyhwPWYpPj4yXT1hWyhjfD0wKT4+Ml0sYVtwKzQ+PjJdPWFbYys0Pj4yXSxjPTB8U1EocCksKDB8bWlbNjMmYVtsPj4yXV0o''@;'; + put 'put ''bCxjLDEpKSE9KDB8YykmJkZ0KGMpLGFlPWZ9ZnVuY3Rpb24gU1EobCl7dmFyIGMsZixwO3JldHVybiBsfD0wLGM9MHx2cigxNiksZj0wfGFbKHA9bCkrND4+Ml0sYVsobD1jKzh8MCk+PjJdPWFbcD4+Ml0sYVtsKzQ+PjJdPWYsMHxjfWZ1bmN0aW9uICRkKGwsYyxmKXt2YXIgcCxtLEE7bHw9''@;'; + put 'put ''MCxmfD0wLHA9YWUsYWU9YWUrMTZ8MCxtPXArOHwwLGFbKEE9cCk+PjJdPWN8PTAsYVtBKzQ+PjJdPWYsYVttPj4yXT1hW0E+PjJdLGFbbSs0Pj4yXT1hW0ErND4+Ml0sYz0wfFNRKG0pLCgwfG1pWzYzJmFbbD4+Ml1dKGwsYywxKSkhPSgwfGMpJiZGdChjKSxhZT1wfWZ1bmN0aW9uIGhhZShs''@;'; + put 'put ''LGMpe3ZhciBmLHAsbSxBO3JldHVybiBsfD0wLGY9YWUsYWU9YWUrMTZ8MCxtPTB8YVs0KyhBPWN8PTApPj4yXSxhWyhjPShwPWYpKzh8MCk+PjJdPWFbQT4+Ml0sYVtjKzQ+PjJdPW0sYz0wIT0oMHxtaVs2MyZhW2w+PjJdXShsLHAsNCkpJjEsYWU9ZiwwfGN9ZnVuY3Rpb24gTVEobCxjLGYp''@;'; + put 'put ''e3ZhciBwLG07cmV0dXJuIGx8PTAsZnw9MCxwPWFlLGFlPWFlKzE2fDAsYVsobT1wKSs4Pj4yXT1jfD0wLGFbbSsxMj4+Ml09ZixmPTAhPSgwfG1pWzYzJmFbbD4+Ml1dKGwsbSw0KSkmMSxhZT1wLDB8Zn1mdW5jdGlvbiBFUShsKXtyZXR1cm4gMHxwdShsfD0wKX1mdW5jdGlvbiB4UShsKXt2''@;'; + put 'put ''YXIgZixjPTAscD0wLG09MCxBPTA7Zm9yKGM9Zj0wfHZyKCgwfHB1KGx8PTApKTw8MyksbD0wfHMwKGwpO2w7KW09MHxhWzQrKEE9bCs4fDApPj4yXSxhWyhwPWMpPj4yXT1hW0E+PjJdLGFbcCs0Pj4yXT1tLGM9Yys4fDAsbD0wfGFbbD4+Ml07cmV0dXJuIDB8Zn1mdW5jdGlvbiBtYWUobCl7''@;'; + put 'put ''bWlbNjMmYVsobHw9MCk+PjJdXShsLDAsNjQpfWZ1bmN0aW9uIFRRKGwsYyl7dmFyIHAsbSxBLHcsYixrLE0sUixLLHBlLGdlLGJlLGY9MCxEPTAsRz0wO2ZvcihiZT1hZSxhZT1hZSsxNjB8MCxLPWJlKzE0NHwwLGY9YmUrNDh8MCxiPWJlKzEyOHwwLGs9YmUrMTEyfDAsTT1iZSs5NnwwLEQ9''@;'; + put 'put ''YmUrODB8MCxSPWJlKzMyfDAsRz1iZSsxNnwwLHBlPWJlLHA9K19bMTYrKGw9MHxhWyhnZT0xNisobHw9MCl8MCk+PjJdKT4+M10sbT0rX1tsKzI0Pj4zXSxBPStfW2wrMzI+PjNdLHc9K19bbCs0MD4+M10sKChjfD0wKS0xfDApPj4+MDwyPyhKNihiLHAsdyksYVtLPj4yXT1hW2I+PjJdLGFb''@;'; + put 'put ''Sys0Pj4yXT1hW2IrND4+Ml0sYVtLKzg+PjJdPWFbYis4Pj4yXSxhW0srMTI+PjJdPWFbYisxMj4+Ml0saWgoZixLKSxHPWYrMTZ8MCxKNihrLEEsbSksYVtLPj4yXT1hW2s+PjJdLGFbSys0Pj4yXT1hW2srND4+Ml0sYVtLKzg+PjJdPWFbays4Pj4yXSxhW0srMTI+PjJdPWFbaysxMj4+Ml0s''@;'; + put 'put ''aWgoTSxLKSxhW0c+PjJdPWFbTT4+Ml0sYVtHKzQ+PjJdPWFbTSs0Pj4yXSxhW0crOD4+Ml09YVtNKzg+PjJdLGFbRysxMj4+Ml09YVtNKzEyPj4yXSk6KEo2KEQscCxtKSxhW0s+PjJdPWFbRD4+Ml0sYVtLKzQ+PjJdPWFbRCs0Pj4yXSxhW0srOD4+Ml09YVtEKzg+PjJdLGFbSysxMj4+Ml09''@;'; + put 'put ''YVtEKzEyPj4yXSxpaChmLEspLEQ9ZisxNnwwLEo2KFIsQSx3KSxhW0s+PjJdPWFbUj4+Ml0sYVtLKzQ+PjJdPWFbUis0Pj4yXSxhW0srOD4+Ml09YVtSKzg+PjJdLGFbSysxMj4+Ml09YVtSKzEyPj4yXSxpaChHLEspLGFbRD4+Ml09YVtHPj4yXSxhW0QrND4+Ml09YVtHKzQ+PjJdLGFbRCs4''@;'; + put 'put ''Pj4yXT1hW0crOD4+Ml0sYVtEKzEyPj4yXT1hW0crMTI+PjJdKSxhWyhsPTE2KygwfGFbZ2U+PjJdKXwwKT4+Ml09YVtmPj4yXSxhW2wrND4+Ml09YVtmKzQ+PjJdLGFbbCs4Pj4yXT1hW2YrOD4+Ml0sYVtsKzEyPj4yXT1hW2YrMTI+PjJdLGFbbCsxNj4+Ml09YVtmKzE2Pj4yXSxhW2wrMjA+''@;'; + put 'put ''PjJdPWFbZisyMD4+Ml0sYVtsKzI0Pj4yXT1hW2YrMjQ+PjJdLGFbbCsyOD4+Ml09YVtmKzI4Pj4yXSwobD0wfGFbMTIrKDB8YVtnZT4+Ml0pPj4yXSkmJihhW0s+PjJdPWFbKGw9bCs1NnwwKT4+Ml0sYVtLKzQ+PjJdPWFbbCs0Pj4yXSxhW0srOD4+Ml09YVtsKzg+PjJdLGFbSysxMj4+Ml09''@;'; + put 'put ''YVtsKzEyPj4yXSxpaChwZSxLKSxhW2w+PjJdPWFbcGU+PjJdLGFbbCs0Pj4yXT1hW3BlKzQ+PjJdLGFbbCs4Pj4yXT1hW3BlKzg+PjJdLGFbbCsxMj4+Ml09YVtwZSsxMj4+Ml0pLGw9MTshKCgwfGwpPigwfGFbMTgwKyhmPTB8YVtnZT4+Ml0pPj4yXSkpOylUUSgwfGFbKDB8YVtmKzE4ND4+''@;'; + put 'put ''Ml0pKyhsPDwyKT4+Ml0sYyksbD1sKzF8MDthZT1iZX1mdW5jdGlvbiBKNihsLGMsZil7Zj0rZixfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiBpaChsLGMpe2x8PTA7dmFyIGYsbSxBLHA9MDtmPWFlLGFlPWFlKzMyfDAscD1mLG09OTAqKDB8YVs0NzI2NV0pfDAsYVso''@;'; + put 'put ''QT1mKzE2fDApPj4yXT1hWyhjfD0wKT4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxVNihwLEEsbSksYVtjPj4yXT1hW3A+PjJdLGFbYys0Pj4yXT1hW3ArND4+Ml0sYVtjKzg+PjJdPWFbcCs4Pj4yXSxhW2MrMTI+PjJd''@;'; + put 'put ''PWFbcCsxMj4+Ml0sX1tjPj4zXT0rX1tjPj4zXS0rX1syMzMwM10sX1socD1jKzh8MCk+PjNdPStfW3A+PjNdLStfWzIzMzA0XSxhW2w+PjJdPWFbYz4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXSxhZT1mfWZ1bmN0aW9u''@;'; + put 'put ''IFg2KGwsYyl7bHw9MCxjfD0wO3ZhciBELFIsSyxwZSxnZSxMZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEc9MDtMZT1hZSxhZT1hZSsxMTY4fDAscGU9TGUrMTQ0fDAsRD1MZSszMnwwLFI9TGUrMTZ8MCxHPUxlLGFbKGdlPUxlKzQ4fDApPj4yXT0wLGFbZ2UrND4+Ml09MCxh''@;'; + put 'put ''W2dlKzg+PjJdPTAsYVtnZSsxMj4+Ml09MCxhWzQ3MjY1XT0zJihrPTB8YVsxMTYrKDB8YVsoSz1sKzE2fDApPj4yXSk+PjJdKSxmZVsxOTQ5NTddPWsmPTEsazw8MjQ+PjI0P0lRKGwpOkRRKGwpLGZ1bmN0aW9uIEFhZShsKXt2YXIgRCxPZSxMZSxSZSxIZSxWZSxxZSxudCxXZSxvdCxTdCxr''@;'; + put 'put ''dCxsdCxFdCxadCxjdCxidCxhbix1cixFcixmcixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxTbj0wLEhuPTA7aWYoZnI9YWUsYWU9YWUrNTQ0fDAsYnQ9ZnIrNTA0fDAsRXI9ZnIrNDE2fDAsY3Q9ZnIrMzUyfDAsWnQ9ZnIr''@;'; + put 'put ''MzEyfDAsRXQ9ZnIrMjg4fDAsbHQ9ZnIrMjQ4fDAsYW49ZnIrMjAwfDAscWU9ZnIrMTUyfDAsSG49ZnIrOTZ8MCxEPWZyKzQ4OHwwLG50PWZyKzQ1NnwwLFdlPWZyKzQyNHwwLG90PWZyKzM4NHwwLFN0PWZyKzM2MHwwLGt0PWZyKzMyMHwwLE9lPWZyKzI5NnwwLExlPWZyKzI1NnwwLFJlPWZy''@;'; + put 'put ''KzIzMnwwLEhlPWZyKzE2OHwwLFZlPWZyKzEzNnwwLGM9ZnIrNTZ8MCxTbj1mcisxNnwwLHVyPWZyLGY9MTQmcnRbMTM2KyhnZT0wfGFbKE09MTYrKGx8PTApfDApPj4yXSk+PjFdLCEoMD09KDU0JihnZT0wfEp0W2dlKzExMz4+MF0pfDApJiYwPT0oMSZnZXwwKXwwIT0oMHxhWzQ3MTM5XSkp''@;'; + put 'put ''KXtmb3IoZ2U9Zjw8MTY+PjE2PT0wLGs9MHxEdChsKSxwPTAsQT0wLG09MDtrOyl7Zj0wfGFbMTA4KygwfGFbaysxNj4+Ml0pPj4yXTtkb3tpZihmKXtpZigwfGZlW2YrODE+PjBdKXtwPXArMXwwO2JyZWFrfW09bSsxfDA7YnJlYWt9fXdoaWxlKDApO2ZvcihiPTB8dzAobCxrKSxmPUE7Yjsp''@;'; + put 'put ''e0E9MHxhWzEwOCsodz0wfGFbYisxNj4+Ml0pPj4yXTtkb3tpZihBKXtpZigwfGZlW0ErODE+PjBdKXtwPXArMXwwO2JyZWFrfWdlfHwoZj1mKygwIT0oMHxhW3crOD4+Ml0pJjEpfDApfX13aGlsZSgwKTtBPTB8YVt3KzEwMD4+Ml07ZG97aWYoQSl7aWYoMHxmZVtBKzgxPj4wXSl7cD1wKzF8''@;'; + put 'put ''MDticmVha31nZXx8KGY9ZisoMCE9KDB8YVt3Kzg+PjJdKSYxKXwwKX19d2hpbGUoMCk7QT0wfGFbdysxMDQ+PjJdO2Rve2lmKEEpe2lmKDB8ZmVbQSs4MT4+MF0pe3A9cCsxfDA7YnJlYWt9Z2V8fChmPWYrKDAhPSgwfGFbdys4Pj4yXSkmMSl8MCl9fXdoaWxlKDApO0E9MHxhW3crOTY+PjJd''@;'; + put 'put ''O2Rve2lmKEEpe2lmKDB8ZmVbQSs4MT4+MF0pe3A9cCsxfDA7YnJlYWt9Z2V8fChmPWYrKDAhPSgwfGFbdys4Pj4yXSkmMSl8MCl9fXdoaWxlKDApO2I9MHxTMChsLGIpfWs9MHx6dChsLGspLEE9Zn1pZihNPTgmZmVbMTEzKygwfGFbTT4+Ml0pPj4wXT8wfFdIKGwpOjAsMHwocGU9QSttfDAp''@;'; + put 'put ''KXtmb3IoRz0wfHZyKDQwKihSPXArQStNKygwfEdvKGwpKXwwKXwwKSxLPTB8dnIoNDAqcGV8MCksSjYoYW4sMjE0NzQ4MzY0NywyMTQ3NDgzNjQ3KSxmPWFuKzE2fDAsSjYoRCwtMjE0NzQ4MzY0NywtMjE0NzQ4MzY0NyksYVtmPj4yXT1hW0Q+PjJdLGFbZis0Pj4yXT1hW0QrND4+Ml0sYVtm''@;'; + put 'put ''Kzg+PjJdPWFbRCs4Pj4yXSxhW2YrMTI+PjJdPWFbRCsxMj4+Ml0sZj1LLG09RyxrPTB8RHQobCk7azspe2FbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sYVtidCsxNj4+Ml09YVthbisx''@;'; + put 'put ''Nj4+Ml0sYVtidCsyMD4+Ml09YVthbisyMD4+Ml0sYVtidCsyND4+Ml09YVthbisyND4+Ml0sYVtidCsyOD4+Ml09YVthbisyOD4+Ml0sYmFlKG50LGssbSxidCksYVthbj4+Ml09YVtudD4+Ml0sYVthbis0Pj4yXT1hW250KzQ+PjJdLGFbYW4rOD4+Ml09YVtudCs4Pj4yXSxhW2FuKzEyPj4y''@;'; + put 'put ''XT1hW250KzEyPj4yXSxhW2FuKzE2Pj4yXT1hW250KzE2Pj4yXSxhW2FuKzIwPj4yXT1hW250KzIwPj4yXSxhW2FuKzI0Pj4yXT1hW250KzI0Pj4yXSxhW2FuKzI4Pj4yXT1hW250KzI4Pj4yXSxwPTB8YVsxMDgrKDB8YVtrKzE2Pj4yXSk+PjJdO2Rve2lmKHApe2lmKDB8ZmVbcCs4MT4+MF0p''@;'; + put 'put ''e209bSs0MHwwLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sYVtidCsxNj4+Ml09YVthbisxNj4+Ml0sYVtidCsyMD4+Ml09YVthbisyMD4+Ml0sYVtidCsyND4+Ml09YVthbisyND4+''@;'; + put 'put ''Ml0sYVtidCsyOD4+Ml09YVthbisyOD4+Ml0sd3koV2UscCxtLGJ0KSxhW2FuPj4yXT1hW1dlPj4yXSxhW2FuKzQ+PjJdPWFbV2UrND4+Ml0sYVthbis4Pj4yXT1hW1dlKzg+PjJdLGFbYW4rMTI+PjJdPWFbV2UrMTI+PjJdLGFbYW4rMTY+PjJdPWFbV2UrMTY+PjJdLGFbYW4rMjA+PjJdPWFb''@;'; + put 'put ''V2UrMjA+PjJdLGFbYW4rMjQ+PjJdPWFbV2UrMjQ+PjJdLGFbYW4rMjg+PjJdPWFbV2UrMjg+PjJdO2JyZWFrfWFbYnQ+PjJdPWFbcWU+PjJdLGFbYnQrND4+Ml09YVtxZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbcWUrOD4+Ml0sYVtidCsxMj4+Ml09YVtxZSsxMj4+Ml0sZmsocCxtLGYsMCxidCks''@;'; + put 'put ''Zj1mKzQwfDA7YnJlYWt9fXdoaWxlKDApO2ZvcihiPTB8dzAobCxrKSxtPW0rNDB8MDtiOyl7QT0wfGFbOTYrKHA9MHxhWyh3PWIrMTZ8MCk+PjJdKT4+Ml07ZTpkb3tpZihBKXtkb3tpZighKDB8ZmVbQSs4MT4+MF0pKXtpZighZ2UmJjB8YVtwKzg+PjJdKXtsSihTdCxsLGIpLGFbYnQ+PjJd''@;'; + put 'put ''PWFbU3Q+PjJdLGFbYnQrND4+Ml09YVtTdCs0Pj4yXSxhW2J0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtidCsxMj4+Ml09YVtTdCsxMj4+Ml0sZmsoQSxtLGYsMSxidCksZj1mKzQwfDA7YnJlYWt9YVtsdD4+Ml09YVtBPj4yXSwkcigwLDEwMzgyNyxsdCk7YnJlYWsgZX1hW2J0Pj4yXT1hW2FuPj4y''@;'; + put 'put ''XSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLGFbYnQrMTY+PjJdPWFbYW4rMTY+PjJdLGFbYnQrMjA+PjJdPWFbYW4rMjA+PjJdLGFbYnQrMjQ+PjJdPWFbYW4rMjQ+PjJdLGFbYnQrMjg+PjJdPWFbYW4rMjg+PjJd''@;'; + put 'put ''LHd5KG90LEEsbSxidCksYVthbj4+Ml09YVtvdD4+Ml0sYVthbis0Pj4yXT1hW290KzQ+PjJdLGFbYW4rOD4+Ml09YVtvdCs4Pj4yXSxhW2FuKzEyPj4yXT1hW290KzEyPj4yXSxhW2FuKzE2Pj4yXT1hW290KzE2Pj4yXSxhW2FuKzIwPj4yXT1hW290KzIwPj4yXSxhW2FuKzI0Pj4yXT1hW290''@;'; + put 'put ''KzI0Pj4yXSxhW2FuKzI4Pj4yXT1hW290KzI4Pj4yXX13aGlsZSgwKTttPW0rNDB8MCxwPTB8YVt3Pj4yXSxiZT01Mn1lbHNlIGJlPTUyfXdoaWxlKDApO2U6ZG97aWYoNTI9PSgwfGJlKSl7aWYoYmU9MCxBPTB8YVtwKzEwND4+Ml0pe2Rve2lmKCEoMHxmZVtBKzgxPj4wXSkpe2lmKCFnZSYm''@;'; + put 'put ''MHxhW3ArOD4+Ml0pe09RKE9lLGIpLGFbYnQ+PjJdPWFbT2U+PjJdLGFbYnQrND4+Ml09YVtPZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbT2UrOD4+Ml0sYVtidCsxMj4+Ml09YVtPZSsxMj4+Ml0sZmsoQSxtLGYsMSxidCksZj1mKzQwfDA7YnJlYWt9YVtFdD4+Ml09YVtBPj4yXSwkcigwLDEwMzg2''@;'; + put 'put ''MixFdCk7YnJlYWsgZX1hW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLGFbYnQrMTY+PjJdPWFbYW4rMTY+PjJdLGFbYnQrMjA+PjJdPWFbYW4rMjA+PjJdLGFbYnQrMjQ+PjJdPWFbYW4r''@;'; + put 'put ''MjQ+PjJdLGFbYnQrMjg+PjJdPWFbYW4rMjg+PjJdLHd5KGt0LEEsbSxidCksYVthbj4+Ml09YVtrdD4+Ml0sYVthbis0Pj4yXT1hW2t0KzQ+PjJdLGFbYW4rOD4+Ml09YVtrdCs4Pj4yXSxhW2FuKzEyPj4yXT1hW2t0KzEyPj4yXSxhW2FuKzE2Pj4yXT1hW2t0KzE2Pj4yXSxhW2FuKzIwPj4y''@;'; + put 'put ''XT1hW2t0KzIwPj4yXSxhW2FuKzI0Pj4yXT1hW2t0KzI0Pj4yXSxhW2FuKzI4Pj4yXT1hW2t0KzI4Pj4yXX13aGlsZSgwKTttPW0rNDB8MCxwPTB8YVt3Pj4yXX1pZihBPTB8YVtwKzEwMD4+Ml0pe2Rve2lmKCEoMHxmZVtBKzgxPj4wXSkpe2lmKCFnZSYmMHxhW3ArOD4+Ml0pe19hZShSZSxi''@;'; + put 'put ''KSxhW2J0Pj4yXT1hW1JlPj4yXSxhW2J0KzQ+PjJdPWFbUmUrND4+Ml0sYVtidCs4Pj4yXT1hW1JlKzg+PjJdLGFbYnQrMTI+PjJdPWFbUmUrMTI+PjJdLGZrKEEsbSxmLDEsYnQpLGY9Zis0MHwwO2JyZWFrfWFbWnQ+PjJdPWFbQT4+Ml0sJHIoMCwxMDM5MDIsWnQpO2JyZWFrIGV9YVtidD4+''@;'; + put 'put ''Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxhW2J0KzE2Pj4yXT1hW2FuKzE2Pj4yXSxhW2J0KzIwPj4yXT1hW2FuKzIwPj4yXSxhW2J0KzI0Pj4yXT1hW2FuKzI0Pj4yXSxhW2J0KzI4Pj4yXT1h''@;'; + put 'put ''W2FuKzI4Pj4yXSx3eShMZSxBLG0sYnQpLGFbYW4+PjJdPWFbTGU+PjJdLGFbYW4rND4+Ml09YVtMZSs0Pj4yXSxhW2FuKzg+PjJdPWFbTGUrOD4+Ml0sYVthbisxMj4+Ml09YVtMZSsxMj4+Ml0sYVthbisxNj4+Ml09YVtMZSsxNj4+Ml0sYVthbisyMD4+Ml09YVtMZSsyMD4+Ml0sYVthbisy''@;'; + put 'put ''ND4+Ml09YVtMZSsyND4+Ml0sYVthbisyOD4+Ml09YVtMZSsyOD4+Ml19d2hpbGUoMCk7bT1tKzQwfDAscD0wfGFbdz4+Ml19aWYoQT0wfGFbcCsxMDg+PjJdKXtkb3tpZighKDB8ZmVbQSs4MT4+MF0pKXtpZighZ2UmJjB8YVtwKzg+PjJdKXtsSihWZSxsLGIpLGFbYnQ+PjJdPWFbVmU+PjJd''@;'; + put 'put ''LGFbYnQrND4+Ml09YVtWZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbVmUrOD4+Ml0sYVtidCsxMj4+Ml09YVtWZSsxMj4+Ml0sZmsoQSxtLGYsMSxidCksZj1mKzQwfDA7YnJlYWt9YVtjdD4+Ml09YVtBPj4yXSwkcigwLDEwMzk0MixjdCk7YnJlYWsgZX1hW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+''@;'; + put 'put ''PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLGFbYnQrMTY+PjJdPWFbYW4rMTY+PjJdLGFbYnQrMjA+PjJdPWFbYW4rMjA+PjJdLGFbYnQrMjQ+PjJdPWFbYW4rMjQ+PjJdLGFbYnQrMjg+PjJdPWFbYW4rMjg+PjJdLHd5KEhlLEEs''@;'; + put 'put ''bSxidCksYVthbj4+Ml09YVtIZT4+Ml0sYVthbis0Pj4yXT1hW0hlKzQ+PjJdLGFbYW4rOD4+Ml09YVtIZSs4Pj4yXSxhW2FuKzEyPj4yXT1hW0hlKzEyPj4yXSxhW2FuKzE2Pj4yXT1hW0hlKzE2Pj4yXSxhW2FuKzIwPj4yXT1hW0hlKzIwPj4yXSxhW2FuKzI0Pj4yXT1hW0hlKzI0Pj4yXSxh''@;'; + put 'put ''W2FuKzI4Pj4yXT1hW0hlKzI4Pj4yXX13aGlsZSgwKTttPW0rNDB8MH19fXdoaWxlKDApO2I9MHxTMChsLGIpfWs9MHx6dChsLGspfWlmKDB8TSl7YVtjPj4yXT1hW2FuPj4yXSxhW2MrND4+Ml09YVthbis0Pj4yXSxhW2MrOD4+Ml09YVthbis4Pj4yXSxhW2MrMTI+PjJdPWFbYW4rMTI+PjJd''@;'; + put 'put ''LGFbYysxNj4+Ml09YVthbisxNj4+Ml0sYVtjKzIwPj4yXT1hW2FuKzIwPj4yXSxhW2MrMjQ+PjJdPWFbYW4rMjQ+PjJdLGFbYysyOD4+Ml09YVthbisyOD4+Ml0sYVtjKzMyPj4yXT1tLGY9KHA9YnQpKzQwfDA7ZG97YVtwPj4yXT1hW2M+PjJdLHA9cCs0fDAsYz1jKzR8MH13aGlsZSgoMHxw''@;'; + put 'put ''KTwoMHxmKSk7aGsoU24sbCxidCksYVthbj4+Ml09YVtTbj4+Ml0sYVthbis0Pj4yXT1hW1NuKzQ+PjJdLGFbYW4rOD4+Ml09YVtTbis4Pj4yXSxhW2FuKzEyPj4yXT1hW1NuKzEyPj4yXSxhW2FuKzE2Pj4yXT1hW1NuKzE2Pj4yXSxhW2FuKzIwPj4yXT1hW1NuKzIwPj4yXSxhW2FuKzI0Pj4y''@;'; + put 'put ''XT1hW1NuKzI0Pj4yXSxhW2FuKzI4Pj4yXT1hW1NuKzI4Pj4yXX1mb3IoZmVbSG4rMzI+PjBdPTB8aEoobCwwfHNpKGwsMCwxMDM5NzgsMCksMSksYVtIbj4+Ml09YVthbj4+Ml0sYVtIbis0Pj4yXT1hW2FuKzQ+PjJdLGFbSG4rOD4+Ml09YVthbis4Pj4yXSxhW0huKzEyPj4yXT1hW2FuKzEy''@;'; + put 'put ''Pj4yXSxhW0huKzE2Pj4yXT1hW2FuKzE2Pj4yXSxhW0huKzIwPj4yXT1hW2FuKzIwPj4yXSxhW0huKzI0Pj4yXT1hW2FuKzI0Pj4yXSxhW0huKzI4Pj4yXT1hW2FuKzI4Pj4yXSxmdW5jdGlvbiBUdihsLGMsZixwLG0pe3ZhciBSLEcsSyxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtpZihLPWFl''@;'; + put 'put ''LGFlPWFlKzMyfDAsRz1LLFI9MHxmdW5jdGlvbiB3YihsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgdyxBPTAsYj0wLGs9MDtBPTB8dnIoMjgpLGs9MHxpcygyNTkxMiwwfGFbNDU4NF0pLGFbKHc9QSsyMHwwKT4+Ml09aztkb3tpZihrKXtpZihrPTB8SGIoKSxhW0Er''@;'; + put 'put ''MjQ+PjJdPWssayl7YVtBPj4yXT1sLGFbQSs0Pj4yXT1jLGFbQSs4Pj4yXT1mLGFbQSsxMj4+Ml09cCxhW0ErMTY+PjJdPW07YnJlYWt9Q3UoMTExNzQwLDE0LDEsMHxhWzE1NzEyXSksYj02O2JyZWFrfUN1KDExMTc0MCwxNCwxLDB8YVsxNTcxMl0pLGI9Nn13aGlsZSgwKTtyZXR1cm4gNj09''@;'; + put 'put ''KDB8YikmJigwfChsPTB8YVt3Pj4yXSkmJk5sKGwpLDB8KGw9MHxhW0ErMjQ+PjJdKSYmTmIobCksRnQoQSksQT0wKSwwfEF9KGx8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCksZj0wfGZ1bmN0aW9uIGM2KGwpe3ZhciBjPTA7cmV0dXJuKDB8KGM9MHxmdW5jdGlvbiBJdihsKXt2YXIgZixwLG0s''@;'; + put 'put ''QSx3LGIsayxNLGM9MCxEPTAsUj0wLEc9MDtmb3IoTT1hZSxhZT1hZSszMnwwLGY9TSsyNHwwLHA9TSsxNnwwLG09TSxBPTB8ZnVuY3Rpb24gWDIobCl7dmFyIGMsZjtyZXR1cm4gMSsoMHxmdW5jdGlvbiBtbShsKXt2YXIgYz0wLGY9MDtyZXR1cm4obHw9MCk/KGw9KGY9bD4+PjA+NjU1MzUp''@;'; + put 'put ''P2w+Pj4xNjpsLGY9Zj8xNjowLGY9KGM9bD4+PjA+MjU1KT84fGY6ZixmPShjPShsPWM/bD4+Pjg6bCk+Pj4wPjE1KT80fGY6ZixsPSgoYz0obD1jP2w+Pj40OmwpPj4+MD4zKT8yfGY6ZikrKChjP2w+Pj4yOmwpPj4+MD4xJjEpfDApOmw9LTEsMHxsfSh+figoZj0rX1sxNisobD0wfGFbMTYr''@;'; + put 'put ''KGx8PTApPj4yXSk+PjNdKT4oYz0rX1tsKzI0Pj4zXSk/ZjpjKT4+PjApKXwwfShsfD0wKSx3PWwrNHwwLGI9cCs0fDAsaz1sKzIwfDAsYz0wOzspe2lmKCgwfGMpPj0oMHxhW3c+PjJdKSl7Yz0wO2JyZWFrfWlmKFI9MTIrKEQ9MHx2cigzMikpfDAsYVtEKzI4Pj4yXT1HPSgwfGFbbD4+Ml0p''@;'; + put 'put ''Kyg0MCpjfDApfDAsazMobSxHKSxhW1I+PjJdPWFbbT4+Ml0sYVtSKzQ+PjJdPWFbbSs0Pj4yXSxhW1IrOD4+Ml09YVttKzg+PjJdLGFbUisxMj4+Ml09YVttKzEyPj4yXSxhW3A+PjJdPSgoKDB8YVtEKzIwPj4yXSktKFI9MHxhW1I+PjJdKXwwKS8yfDApK1IsYVtiPj4yXT0oKCgwfGFbRCsy''@;'; + put 'put ''ND4+Ml0pLShSPTB8YVtEKzE2Pj4yXSl8MCkvMnwwKStSLGFbZj4+Ml09YVtwPj4yXSxhW2YrND4+Ml09YVtwKzQ+PjJdLGFbRCs4Pj4yXT0wfGJiKGYsQSksISgwfG1pWzYzJmFbKFI9MHxhW2s+PjJdKT4+Ml1dKFIsRCwxKSkpe2M9LTE7YnJlYWt9Yz1jKzF8MH1yZXR1cm4gYWU9TSwwfGN9''@;'; + put 'put ''KGx8PTApKSk+PTAmJihmdW5jdGlvbiBYOChsKXt2YXIgYyxmLHA9MDtmb3IoYz0yNCsobHw9MCl8MCxsPTB8bWlbNjMmYVsocD0wfGFbKGY9bCsyMHwwKT4+Ml0pPj4yXV0ocCwwLDEyOCk7bDspamIocD0wfGFbYz4+Ml0sbCsxMnwwLDB8YVtsKzI4Pj4yXSxwLDApLGw9MHxtaVs2MyZhWyhw''@;'; + put 'put ''PTB8YVtmPj4yXSk+PjJdXShwLGwsOCl9KGwpLGZ1bmN0aW9uIGY2KGwpe3ZhciBwLG0sYz0wLGY9MCxBPTAsdz0wO2ZvcihtPTB8cHUoMHxhWyhwPTIwKyhsfD0wKXwwKT4+Ml0pLGY9MDswfHB1KDB8YVtwPj4yXSk7KXtpZighKGw9MHxhWzQrKDB8YVs4KyhBPTB8YVtwPj4yXSk+PjJdKT4+''@;'; + put 'put ''Ml0pKXt3PTg7YnJlYWt9aWYoIShsPSgwfChjPTB8YVs4KygwfGFbQSs0Pj4yXSk+PjJdKSk8MD8wfGFbbCs4Pj4yXTpsKygwLWMpfDApKXt3PTg7YnJlYWt9bWlbNjMmYVtBPj4yXV0oQSxsLDQwOTYpLEZ0KGwpLGY9ZisxfDB9OD09KDB8dykmJlByKDExMTY0OSwxMTE1NDMsNjE2LDExMTY1''@;'; + put 'put ''MiksKDB8bSkhPSgwfGYpJiZQcigxMTE2NjQsMTExNTQzLDYyMywxMTE2NTIpfShsKSxjPTB8TmwoMHxhW2wrMjA+PjJdKSksMHxjfShSKSwoMHxmKT49MCl7Zm9yKE09RysxNnwwLEQ9RysyNHwwLGs9Rys4fDAsYj1tKzMyfDAsZj0wLG09MDshKCgwfG0pPj0oMHxjKSk7KXtwPWwrKDQwKm18''@;'; + put 'put ''MCkrMzJ8MDtkb3tpZigwfGFbcD4+Ml0pe2lmKGlFKEcsUixsKyg0MCptfDApfDApLEE9K19bTT4+M10sdz0rX1tEPj4zXSwhKDB8YVtHPj4yXSkpe2ZlWzM2KygwfGFbcD4+Ml0pPj4wXT0xO2JyZWFrfWlmKDA9PStfW2s+PjNdKXtfWzE2KyhwPTB8YVtwPj4yXSk+PjNdPUEsX1twKzI0Pj4z''@;'; + put 'put ''XT13LGZlW3ArMzY+PjBdPTE7YnJlYWt9MT09KDB8ZmVbYj4+MF0pPyhfWzE2KyhwPTB8YVtwPj4yXSk+PjNdPUEsX1twKzI0Pj4zXT13LGZlW3ArMzY+PjBdPTEpOmY9MX19d2hpbGUoMCk7bT1tKzF8MH0hZnVuY3Rpb24geWMobCl7TmIoMHxhWzI0KyhsfD0wKT4+Ml0pLEZ0KGwpfShSKX1y''@;'; + put 'put ''ZXR1cm4gYWU9SywwfGZ9KEcsUixLLHBlLEhuKSxjPTAsZj0wLHA9SzshKCgwfGYpPj0oMHxwZSkpOykwfGZlW3ArMzY+PjBdJiYoZmVbODErKEhuPTB8YVtwKzMyPj4yXSk+PjBdPTEsU249SG4rNTZ8MCxDYWUodXIscCksYVtTbj4+Ml09YVt1cj4+Ml0sYVtTbis0Pj4yXT1hW3VyKzQ+PjJd''@;'; + put 'put ''LGFbU24rOD4+Ml09YVt1cis4Pj4yXSxhW1NuKzEyPj4yXT1hW3VyKzEyPj4yXSxlNChsLEhuKSxjPWMrMXwwKSxmPWYrMXwwLHA9cCs0MHwwOygwfGMpIT0oMHxwZSkmJihhW0VyPj4yXT1jLGFbRXIrND4+Ml09cGUsJHIoMCwxMDQwMjMsRXIpKSxGdChHKSxGdChLKX19YWU9ZnJ9KGwpLGY9''@;'; + put 'put ''MHxhWzEyKyhrPTB8YVtLPj4yXSk+PjJdO2Rve2lmKDB8ZiYmMD09KDB8ZmVbZis4MT4+MF0pKXtpZihhW2dlPj4yXT1hWyhtPWYrMjR8MCk+PjJdLGFbZ2UrND4+Ml09YVttKzQ+PjJdLGFbZ2UrOD4+Ml09YVttKzg+PjJdLGFbZ2UrMTI+PjJdPWFbbSsxMj4+Ml0sX1tnZT4+M109TT0rX1tn''@;'; + put 'put ''ZT4+M10rMTYsX1sobT1nZSs4fDApPj4zXT1wPStfW20+PjNdKzgsbT0wIT0oMSZmZVtrKzI3NT4+MF0pLDB8ZmVbMTk0OTU3XSl7aWYobT9fWyhBPWsrMzJ8MCk+PjNdPStfW0E+PjNdK3A6X1soQT1rKzE2fDApPj4zXT0rX1tBPj4zXS1wLCEoTT4oYj0ocD0rX1sobT1rKzQwfDApPj4zXSkt''@;'; + put 'put ''KHc9K19bKEE9aysyNHwwKT4+M10pKSkpYnJlYWs7X1tBPj4zXT13LShNPS41KihNLWIpKSxfW20+PjNdPXArTTticmVha31BPTA9PSgwfGFbNDcyNjVdKTtkb3tpZihtKXtpZihBKXtfWyhBPWsrNDB8MCk+PjNdPStfW0E+PjNdK3A7YnJlYWt9X1soQT1rKzI0fDApPj4zXT0rX1tBPj4zXS1w''@;'; + put 'put ''O2JyZWFrfWlmKEEpe19bKEE9aysyNHwwKT4+M109K19bQT4+M10tcDticmVha31fWyhBPWsrNDB8MCk+PjNdPStfW0E+PjNdK3A7YnJlYWt9d2hpbGUoMCk7TT4oYj0ocD0rX1sobT1rKzMyfDApPj4zXSktKHc9K19bKEE9aysxNnwwKT4+M10pKSYmKF9bQT4+M109dy0oTT0uNSooTS1iKSks''@;'; + put 'put ''X1ttPj4zXT1wK00pfX13aGlsZSgwKTtpZihjKXtzd2l0Y2goMHxhWzQ3MjY1XSl7Y2FzZSAwOmFbNDY2MDZdPWFbKEc9aysxNnwwKT4+Ml0sYVs0NjYwN109YVtHKzQ+PjJdLGFbNDY2MDhdPWFbRys4Pj4yXSxhWzQ2NjA5XT1hW0crMTI+PjJdO2JyZWFrO2Nhc2UgMTpKNihELC0rX1trKzQw''@;'; + put 'put ''Pj4zXSwrX1trKzE2Pj4zXSksYVs0NjYwNl09YVtEPj4yXSxhWzQ2NjA3XT1hW0QrND4+Ml0sYVs0NjYwOF09YVtEKzg+PjJdLGFbNDY2MDldPWFbRCsxMj4+Ml07YnJlYWs7Y2FzZSAyOko2KFIsK19baysxNj4+M10sLStfW2srNDA+PjNdKSxhWzQ2NjA2XT1hW1I+PjJdLGFbNDY2MDddPWFb''@;'; + put 'put ''Uis0Pj4yXSxhWzQ2NjA4XT1hW1IrOD4+Ml0sYVs0NjYwOV09YVtSKzEyPj4yXTticmVhaztjYXNlIDM6SjYoRywrX1trKzI0Pj4zXSwrX1trKzE2Pj4zXSksYVs0NjYwNl09YVtHPj4yXSxhWzQ2NjA3XT1hW0crND4+Ml0sYVs0NjYwOF09YVtHKzg+PjJdLGFbNDY2MDldPWFbRysxMj4+Ml19''@;'; + put 'put ''KGZ1bmN0aW9uIHlhZShsKXtsfD0wO3ZhciBwLG0sQSx3LGM9MCxmPTAsYj0wO2lmKHc9YWUsYWU9YWUrNDh8MCxwPXcrMzJ8MCxtPXcrMTZ8MCxBPXcsMCE9K19bMjMzMDNdfDAhPStfWzIzMzA0XXwwIT0oMHxhWzQ3MjY1XSkpe2ZvcihmPTB8RHQobCk7ZjspezB8YVs0NzI2NV0mJnh5KGYs''@;'; + put 'put ''MCksYVtwPj4yXT1hWyhiPTE2KygwfGFbKGM9ZisxNnwwKT4+Ml0pfDApPj4yXSxhW3ArND4+Ml09YVtiKzQ+PjJdLGFbcCs4Pj4yXT1hW2IrOD4+Ml0sYVtwKzEyPj4yXT1hW2IrMTI+PjJdLGloKG0scCksYVtiPj4yXT1hW20+PjJdLGFbYis0Pj4yXT1hW20rND4+Ml0sYVtiKzg+PjJdPWFb''@;'; + put 'put ''bSs4Pj4yXSxhW2IrMTI+PjJdPWFbbSsxMj4+Ml0sMHwoYz0wfGFbMTA4KygwfGFbYz4+Ml0pPj4yXSkmJihhW3A+PjJdPWFbKGI9Yys1NnwwKT4+Ml0sYVtwKzQ+PjJdPWFbYis0Pj4yXSxhW3ArOD4+Ml09YVtiKzg+PjJdLGFbcCsxMj4+Ml09YVtiKzEyPj4yXSxpaChBLHApLGFbYj4+Ml09''@;'; + put 'put ''YVtBPj4yXSxhW2IrND4+Ml09YVtBKzQ+PjJdLGFbYis4Pj4yXT1hW0ErOD4+Ml0sYVtiKzEyPj4yXT1hW0ErMTI+PjJdKTtlOmRve2lmKDE9PSgwfGFbNDcxMzhdKSlmb3IoYz0wfHcwKGwsZik7Oyl7aWYoIWMpYnJlYWsgZTt3YWUoYyksYz0wfFMwKGwsYyl9fXdoaWxlKDApO2Y9MHx6dChs''@;'; + put 'put ''LGYpfVRRKGwsMyZhWzExNisoMHxhW2wrMTY+PjJdKT4+Ml0pfWFlPXd9KShsKSxmPTB8YVsxMisoMHxhW0s+PjJdKT4+Ml19MHxmJiYwPT0oMHxmZVtmKzgxPj4wXSkmJihhW3BlPj4yXT1hW2dlPj4yXSxhW3BlKzQ+PjJdPWFbZ2UrND4+Ml0sYVtwZSs4Pj4yXT1hW2dlKzg+PjJdLGFbcGUr''@;'; + put 'put ''MTI+PjJdPWFbZ2UrMTI+PjJdLGZ1bmN0aW9uIExRKGwsYyl7Y3w9MDt2YXIgbSxBLGY9MCxwPTAsdz0wO2w9KG09MHxmZVsyNzUrKHc9MHxhWyhBPTE2KyhsfD0wKXwwKT4+Ml0pPj4wXSk8PDI0Pj4yNDtkb3tpZighKDQmbCkpe2lmKGY9K19bdysxNj4+M10sMiZsKXtwPS41KitfW2M+PjNd''@;'; + put 'put ''K2Y7YnJlYWt9cD0uNSooK19bdyszMj4+M10rZik7YnJlYWt9cD0rX1t3KzMyPj4zXS0uNSorX1tjPj4zXX13aGlsZSgwKTtmPTEmbT8rX1t3KzQwPj4zXS0uNSorX1tjKzg+PjNdOi41KitfW2MrOD4+M10rICtfW3crMjQ+PjNdLF9bNTYrKHc9MHxhW3crMTI+PjJdKT4+M109cCxfW3crNjQ+''@;'; + put 'put ''PjNdPWYsZmVbODErKDB8YVsxMisoMHxhW0E+PjJdKT4+Ml0pPj4wXT0xfShsLHBlKSksYWU9TGV9ZnVuY3Rpb24gSVEobCl7dmFyIHcsYz0wLGY9MCxwPTAsbT0wLEE9MDtpZih3PTE2KyhsfD0wKXwwLCgwfGRpKGwpKSE9KDB8bCkmJjAhPSgwfChBPTB8YVsxMisobT0wfGFbdz4+Ml0pPj4y''@;'; + put 'put ''XSkpJiYwPT0oMHxmZVtBKzgxPj4wXSkpezEmKGM9MHxmZVttKzI3NT4+MF0pPyhwPStfW20rMzI+PjNdLS41KitfW20rNjQ+PjNdLGw9bSs3MnwwKToocD0rX1ttKzE2Pj4zXSsuNSorX1ttKzk2Pj4zXSxsPW0rMTA0fDApLGY9K19bbD4+M10sbD1jPDwyND4+MjQ7ZG97aWYoISg0JmwpKXtp''@;'; + put 'put ''ZigyJmwpe2Y9K19bbSs0MD4+M10tLjUqZjticmVha31mPS41KigrX1ttKzQwPj4zXSsgK19bbSsyND4+M10pO2JyZWFrfWY9K19bbSsyND4+M10rLjUqZn13aGlsZSgwKTtfW0ErNTY+PjNdPXAsX1tBKzY0Pj4zXT1mLGZlWzgxKygwfGFbMTIrKDB8YVt3Pj4yXSk+PjJdKT4+MF09MSxsPTF9''@;'; + put 'put ''ZWxzZSBsPTE7Zm9yKDshKCgwfGwpPigwfGFbMTgwKyhjPTB8YVt3Pj4yXSk+PjJdKSk7KUlRKDB8YVsoMHxhW2MrMTg0Pj4yXSkrKGw8PDIpPj4yXSksbD1sKzF8MH1mdW5jdGlvbiBEUShsKXt2YXIgYixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtpZihiPTE2KyhsfD0wKXwwLCgwfGRpKGwp''@;'; + put 'put ''KSE9KDB8bCkmJjAhPSgwfCh3PTB8YVsxMisoQT0wfGFbYj4+Ml0pPj4yXSkpJiYwPT0oMHxmZVt3KzgxPj4wXSkpezEmKGM9MHxmZVtBKzI3NT4+MF0pPyhtPStfW0ErNDA+PjNdLS41KitfW0ErODg+PjNdLGw9QSs4MHwwKToobT0rX1tBKzI0Pj4zXSsuNSorX1tBKzU2Pj4zXSxsPUErNDh8''@;'; + put 'put ''MCkscD0rX1tsPj4zXSxsPWM8PDI0Pj4yNDtkb3tpZighKDQmbCkpe2lmKGY9K19bQSsxNj4+M10sMiZsKXtmKz0uNSpwO2JyZWFrfWY9LjUqKCtfW0ErMzI+PjNdK2YpO2JyZWFrfWY9K19bQSszMj4+M10tLjUqcH13aGlsZSgwKTtfW3crNTY+PjNdPWYsX1t3KzY0Pj4zXT1tLGZlWzgxKygw''@;'; + put 'put ''fGFbMTIrKDB8YVtiPj4yXSk+PjJdKT4+MF09MSxsPTF9ZWxzZSBsPTE7Zm9yKDshKCgwfGwpPigwfGFbMTgwKyhjPTB8YVtiPj4yXSk+PjJdKSk7KURRKDB8YVsoMHxhW2MrMTg0Pj4yXSkrKGw8PDIpPj4yXSksbD1sKzF8MH1mdW5jdGlvbiB3YWUobCl7dmFyIHcsYixrLE0sRCxSLEcsZ2Us''@;'; + put 'put ''Yz0wLGY9MCxwPTAsbT0wLEE9MCxLPTAscGU9MCxiZT0wO2lmKGdlPWFlLGFlPWFlKzE0NHwwLEs9Z2UrMTIwfDAsZj1nZSsxNnwwLHc9Z2UrMTA0fDAsYj1nZSs4OHwwLGs9Z2UrNzJ8MCxNPWdlKzU2fDAsRD1nZSs0MHwwLFI9Z2UrMjR8MCxwZT1nZSxwPTB8YVs4KyhjPTB8YVsoRz0xNiso''@;'; + put 'put ''bHw9MCl8MCk+PjJdKT4+Ml0pe2ZvcihBPTAsbD1wOyEoKDB8QSk+PSgwfGFbbCs0Pj4yXSkpOyl7Zm9yKGw9MHxhWyhtPTB8YVtsPj4yXSkrKDQ4KkF8MCk+PjJdLGY9MHxhW20rKDQ4KkF8MCkrND4+Ml0scD0wfGFbbSsoNDgqQXwwKSs4Pj4yXSxtPTB8YVttKyg0OCpBfDApKzEyPj4yXSxj''@;'; + put 'put ''PTA7ISgoMHxjKT49KDB8ZikpOylhW0s+PjJdPWFbKGJlPWwrKGM8PDQpfDApPj4yXSxhW0srND4+Ml09YVtiZSs0Pj4yXSxhW0srOD4+Ml09YVtiZSs4Pj4yXSxhW0srMTI+PjJdPWFbYmUrMTI+PjJdLGloKHcsSyksYVtiZT4+Ml09YVt3Pj4yXSxhW2JlKzQ+PjJdPWFbdys0Pj4yXSxhW2Jl''@;'; + put 'put ''Kzg+PjJdPWFbdys4Pj4yXSxhW2JlKzEyPj4yXT1hW3crMTI+PjJdLGM9YysxfDA7MHxwJiYoYVtLPj4yXT1hWyhiZT0oMHxhW2FbOCsoMHxhW0c+PjJdKT4+Ml0+PjJdKSsoNDgqQXwwKSsxNnwwKT4+Ml0sYVtLKzQ+PjJdPWFbYmUrND4+Ml0sYVtLKzg+PjJdPWFbYmUrOD4+Ml0sYVtLKzEy''@;'; + put 'put ''Pj4yXT1hW2JlKzEyPj4yXSxpaChiLEspLGFbYmU+PjJdPWFbYj4+Ml0sYVtiZSs0Pj4yXT1hW2IrND4+Ml0sYVtiZSs4Pj4yXT1hW2IrOD4+Ml0sYVtiZSsxMj4+Ml09YVtiKzEyPj4yXSksMHxtJiYoYVtLPj4yXT1hWyhiZT0oMHxhW2FbOCsoMHxhW0c+PjJdKT4+Ml0+PjJdKSsoNDgqQXww''@;'; + put 'put ''KSszMnwwKT4+Ml0sYVtLKzQ+PjJdPWFbYmUrND4+Ml0sYVtLKzg+PjJdPWFbYmUrOD4+Ml0sYVtLKzEyPj4yXT1hW2JlKzEyPj4yXSxpaChrLEspLGFbYmU+PjJdPWFbaz4+Ml0sYVtiZSs0Pj4yXT1hW2srND4+Ml0sYVtiZSs4Pj4yXT1hW2srOD4+Ml0sYVtiZSsxMj4+Ml09YVtrKzEyPj4y''@;'; + put 'put ''XSksQT1BKzF8MCxsPTB8YVs4KyhjPTB8YVtHPj4yXSk+PjJdfShsPTB8YVtjKzk2Pj4yXSkmJihhW0s+PjJdPWFbKGM9bCs1NnwwKT4+Ml0sYVtLKzQ+PjJdPWFbYys0Pj4yXSxhW0srOD4+Ml09YVtjKzg+PjJdLGFbSysxMj4+Ml09YVtjKzEyPj4yXSxpaChNLEspLGFbYz4+Ml09YVtNPj4y''@;'; + put 'put ''XSxhW2MrND4+Ml09YVtNKzQ+PjJdLGFbYys4Pj4yXT1hW00rOD4+Ml0sYVtjKzEyPj4yXT1hW00rMTI+PjJdLGM9MHxhW0c+PjJdKSwobD0wfGFbYysxMDg+PjJdKSYmKGFbSz4+Ml09YVsoYz1sKzU2fDApPj4yXSxhW0srND4+Ml09YVtjKzQ+PjJdLGFbSys4Pj4yXT1hW2MrOD4+Ml0sYVtL''@;'; + put 'put ''KzEyPj4yXT1hW2MrMTI+PjJdLGloKEQsSyksYVtjPj4yXT1hW0Q+PjJdLGFbYys0Pj4yXT1hW0QrND4+Ml0sYVtjKzg+PjJdPWFbRCs4Pj4yXSxhW2MrMTI+PjJdPWFbRCsxMj4+Ml0sYz0wfGFbRz4+Ml0pLChsPTB8YVtjKzEwMD4+Ml0pJiYoYVtLPj4yXT1hWyhjPWwrNTZ8MCk+PjJdLGFb''@;'; + put 'put ''Sys0Pj4yXT1hW2MrND4+Ml0sYVtLKzg+PjJdPWFbYys4Pj4yXSxhW0srMTI+PjJdPWFbYysxMj4+Ml0saWgoUixLKSxhW2M+PjJdPWFbUj4+Ml0sYVtjKzQ+PjJdPWFbUis0Pj4yXSxhW2MrOD4+Ml09YVtSKzg+PjJdLGFbYysxMj4+Ml09YVtSKzEyPj4yXSxjPTB8YVtHPj4yXSksMHwoYz0w''@;'; + put 'put ''fGFbYysxMDQ+PjJdKSYmKGFbSz4+Ml09YVsoYmU9Yys1NnwwKT4+Ml0sYVtLKzQ+PjJdPWFbYmUrND4+Ml0sYVtLKzg+PjJdPWFbYmUrOD4+Ml0sYVtLKzEyPj4yXT1hW2JlKzEyPj4yXSxpaChwZSxLKSxhW2JlPj4yXT1hW3BlPj4yXSxhW2JlKzQ+PjJdPWFbcGUrND4+Ml0sYVtiZSs4Pj4y''@;'; + put 'put ''XT1hW3BlKzg+PjJdLGFbYmUrMTI+PjJdPWFbcGUrMTI+PjJdKX1lbHNlIDA9PSgwfGZlWzE5NDk1NF0pJiY2IT0oMHxmZVtjKzExMj4+MF0pJiYoSz0wfHRpKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSxwZT0wfHRpKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwr''@;'; + put 'put ''LTQ4fDApKzQwPj4yXSksYVtmPj4yXT1LLGFbZis0Pj4yXT1wZSwkcigxLDEwMzgxMCxmKSk7YWU9Z2V9ZnVuY3Rpb24gV0gobCl7dmFyIHAsYz0wLGY9MDtmb3IocD0xNisobHw9MCl8MCwoMHxkaShsKSkhPSgwfGwpJiYwIT0oMHwoYz0wfGFbMTIrKDB8YVtwPj4yXSk+PjJdKSk/KGY9MSxs''@;'; + put 'put ''PTAhPSgwfGZlW2MrODE+PjBdKSYxKTooZj0xLGw9MCk7ISgoMHxmKT4oMHxhWzE4MCsoYz0wfGFbcD4+Ml0pPj4yXSkpOyljPSgwfFdIKDB8YVsoMHxhW2MrMTg0Pj4yXSkrKGY8PDIpPj4yXSkpK2x8MCxmPWYrMXwwLGw9YztyZXR1cm4gMHxsfWZ1bmN0aW9uIGJhZShsLGMsZixwKXt2YXIg''@;'; + put 'put ''bSxBLHcsYixrLE07bHw9MCxwfD0wLG09YWUsYWU9YWUrMzJ8MCxBPW0saz0wfGFbKGM9MTYrKGN8PTApfDApPj4yXSxfWzE2KyhmfD0wKT4+M109NzIqKGI9K19bKChNPTA9PSgwfGZlWzE5NDk1N10pKT9rKzMyfDA6ays0MHwwKT4+M10pLF9bZisyND4+M109NzIqKHc9K19bKE0/ays0MHww''@;'; + put 'put ''OmsrMzJ8MCk+PjNdKSxhW2Y+PjJdPWFbKGM9MTYrKDB8YVtjPj4yXSl8MCk+PjJdLGFbZis0Pj4yXT1hW2MrND4+Ml0sYVtmKzg+PjJdPWFbYys4Pj4yXSxhW2YrMTI+PjJdPWFbYysxMj4+Ml0sX1tmPj4zXT0rX1tmPj4zXS0zNipiLF9bKGM9Zis4fDApPj4zXT0rX1tjPj4zXS0zNip3LGFb''@;'; + put 'put ''QT4+Ml09YVtwPj4yXSxhW0ErND4+Ml09YVtwKzQ+PjJdLGFbQSs4Pj4yXT1hW3ArOD4+Ml0sYVtBKzEyPj4yXT1hW3ArMTI+PjJdLGFbQSsxNj4+Ml09YVtwKzE2Pj4yXSxhW0ErMjA+PjJdPWFbcCsyMD4+Ml0sYVtBKzI0Pj4yXT1hW3ArMjQ+PjJdLGFbQSsyOD4+Ml09YVtwKzI4Pj4yXSxS''@;'; + put 'put ''UShsLGYsQSksYWU9bX1mdW5jdGlvbiB3eShsLGMsZixwKXt2YXIgbSxBLHcsYixrLE07bHw9MCxwfD0wLG09YWUsYWU9YWUrMzJ8MCxBPW0saz0yNCsoY3w9MCl8MCxfWzE2KyhmfD0wKT4+M109Yj0rX1soKE09MD09KDB8ZmVbMTk0OTU3XSkpP2s6YyszMnwwKT4+M10sX1tmKzI0Pj4zXT13''@;'; + put 'put ''PStfWyhNP2MrMzJ8MDprKT4+M10sYVtmPj4yXT1hWyhjPWMrNTZ8MCk+PjJdLGFbZis0Pj4yXT1hW2MrND4+Ml0sYVtmKzg+PjJdPWFbYys4Pj4yXSxhW2YrMTI+PjJdPWFbYysxMj4+Ml0sX1tmPj4zXT0rX1tmPj4zXS0uNSpiLF9bKGM9Zis4fDApPj4zXT0rX1tjPj4zXS0uNSp3LGFbQT4+''@;'; + put 'put ''Ml09YVtwPj4yXSxhW0ErND4+Ml09YVtwKzQ+PjJdLGFbQSs4Pj4yXT1hW3ArOD4+Ml0sYVtBKzEyPj4yXT1hW3ArMTI+PjJdLGFbQSsxNj4+Ml09YVtwKzE2Pj4yXSxhW0ErMjA+PjJdPWFbcCsyMD4+Ml0sYVtBKzI0Pj4yXT1hW3ArMjQ+PjJdLGFbQSsyOD4+Ml09YVtwKzI4Pj4yXSxSUShs''@;'; + put 'put ''LGYsQSksYWU9bX1mdW5jdGlvbiBmayhsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLG18PTAsMHwocHw9MCkmJihhWyhwPWMrMTZ8MCk+PjJdPTAsYVtwKzQ+PjJdPTAsYVtwKzg+PjJdPTAsYVtwKzEyPj4yXT0wLGFbYz4+Ml09YVttPj4yXSxhW2MrND4+Ml09YVttKzQ+PjJdLGFbYys4Pj4y''@;'; + put 'put ''XT1hW20rOD4+Ml0sYVtjKzEyPj4yXT1hW20rMTI+PjJdKSwwfGZlWzE5NDk1N10/KF9bZj4+M109K19bbCszMj4+M10sX1tmKzg+PjNdPStfW2wrMjQ+PjNdKTooYVtmPj4yXT1hWyhtPWwrMjR8MCk+PjJdLGFbZis0Pj4yXT1hW20rND4+Ml0sYVtmKzg+PjJdPWFbbSs4Pj4yXSxhW2YrMTI+''@;'; + put 'put ''PjJdPWFbbSsxMj4+Ml0pLGFbZiszMj4+Ml09bCxmZVtmKzM2Pj4wXT0wLGFbYyszMj4+Ml09Zn1mdW5jdGlvbiBPUShsLGMpe2x8PTAsYz0wfFQ3KGN8PTApO2Rve2lmKGMpe2lmKDB8YVs4KyhjPTB8YVtjPj4yXSk+PjJdKXthW2w+PjJdPWFbKGM9YysxNnwwKT4+Ml0sYVtsKzQ+PjJdPWFb''@;'; + put 'put ''Yys0Pj4yXSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXTticmVha31hW2w+PjJdPWFbKGM9MHxhW2M+PjJdKT4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXTticmVha31hW2w+PjJdPTAsYVts''@;'; + put 'put ''KzQ+PjJdPTAsYVtsKzg+PjJdPTAsYVtsKzEyPj4yXT0wfXdoaWxlKDApfWZ1bmN0aW9uIF9hZShsLGMpe2x8PTA7dmFyIGY9MDtjPTB8VDcoY3w9MCk7ZG97aWYoYyl7aWYoMHxhWyhmPTB8YVtjPj4yXSkrKDQ4KihjPSgwfGFbYys0Pj4yXSktMXwwKXwwKSsxMj4+Ml0pe2FbbD4+Ml09YVso''@;'; + put 'put ''Zj1mKyg0OCpjfDApKzMyfDApPj4yXSxhW2wrND4+Ml09YVtmKzQ+PjJdLGFbbCs4Pj4yXT1hW2YrOD4+Ml0sYVtsKzEyPj4yXT1hW2YrMTI+PjJdO2JyZWFrfWFbbD4+Ml09YVsoZj0oMHxhW2YrKDQ4KmN8MCk+PjJdKSsoKDB8YVtmKyg0OCpjfDApKzQ+PjJdKS0xPDw0KXwwKT4+Ml0sYVts''@;'; + put 'put ''KzQ+PjJdPWFbZis0Pj4yXSxhW2wrOD4+Ml09YVtmKzg+PjJdLGFbbCsxMj4+Ml09YVtmKzEyPj4yXTticmVha31hW2w+PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzg+PjJdPTAsYVtsKzEyPj4yXT0wfXdoaWxlKDApfWZ1bmN0aW9uIGhrKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIGssUixLLHA9MCxt''@;'; + put 'put ''PTAsQT0wLHc9MCxiPTAsTT0wLEQ9MCxHPTA7Zm9yKEs9YWUsYWU9YWUrMTEyfDAsaz1LKzcyfDAsRD1LKzMyfDAsUj1LLEc9MTYrKGN8PTApfDAsYj0xOyEoKDB8Yik+KDB8YVsxODArKHA9MHxhW0c+PjJdKT4+Ml0pKTspe3A9MHxhWygwfGFbcCsxODQ+PjJdKSsoYjw8Mik+PjJdLEE9Zix3''@;'; + put 'put ''PShtPWspKzQwfDA7ZG97YVttPj4yXT1hW0E+PjJdLG09bSs0fDAsQT1BKzR8MH13aGlsZSgoMHxtKTwoMHx3KSk7aGsoRCxwLGspLEE9RCx3PShtPWYpKzQwfDA7ZG97YVttPj4yXT1hW0E+PjJdLG09bSs0fDAsQT1BKzR8MH13aGlsZSgoMHxtKTwoMHx3KSk7Yj1iKzF8MH0oMHxkaShjKSkh''@;'; + put 'put ''PSgwfGMpJiYwfChNPTB8YVsxMisoMHxhW0c+PjJdKT4+Ml0pJiYwfGZlW00rODE+PjBdJiYoRD0wfGFbKEc9ZiszMnwwKT4+Ml0sYVtrPj4yXT1hW2Y+PjJdLGFbays0Pj4yXT1hW2YrND4+Ml0sYVtrKzg+PjJdPWFbZis4Pj4yXSxhW2srMTI+PjJdPWFbZisxMj4+Ml0sYVtrKzE2Pj4yXT1h''@;'; + put 'put ''W2YrMTY+PjJdLGFbaysyMD4+Ml09YVtmKzIwPj4yXSxhW2srMjQ+PjJdPWFbZisyND4+Ml0sYVtrKzI4Pj4yXT1hW2YrMjg+PjJdLHd5KFIsTSxELGspLGFbZj4+Ml09YVtSPj4yXSxhW2YrND4+Ml09YVtSKzQ+PjJdLGFbZis4Pj4yXT1hW1IrOD4+Ml0sYVtmKzEyPj4yXT1hW1IrMTI+PjJd''@;'; + put 'put ''LGFbZisxNj4+Ml09YVtSKzE2Pj4yXSxhW2YrMjA+PjJdPWFbUisyMD4+Ml0sYVtmKzI0Pj4yXT1hW1IrMjQ+PjJdLGFbZisyOD4+Ml09YVtSKzI4Pj4yXSxhW0c+PjJdPTQwKygwfGFbRz4+Ml0pKSxBPWYsdz0obT1sKSs0MHwwO2Rve2FbbT4+Ml09YVtBPj4yXSxtPW0rNHwwLEE9QSs0fDB9''@;'; + put 'put ''d2hpbGUoKDB8bSk8KDB8dykpO2FlPUt9ZnVuY3Rpb24gQ2FlKGwsYyl7dmFyIGY7Zj0uNSorX1s4KyhjfD0wKT4+M10rICtfW2MrMjQ+PjNdLF9bKGx8PTApPj4zXT0uNSorX1tjPj4zXSsgK19bYysxNj4+M10sX1tsKzg+PjNdPWZ9ZnVuY3Rpb24gUlEobCxjLGYpe2x8PTA7dmFyIHAsbSxB''@;'; + put 'put ''PTAsdz0wLGI9MDtwPWFlLGFlPWFlKzE2fDAsbT1wLF9bKGZ8PTApPj4zXT0rX1soK19bZj4+M108KGI9K19bKGN8PTApPj4zXSk/ZjpjKT4+M10sX1soQT1mKzh8MCk+PjNdPStfWygrX1tBPj4zXTwodz0rX1tjKzg+PjNdKT9mOmMpKzg+PjNdLF9bbT4+M109Yj0rX1tjKzE2Pj4zXStiLF9b''@;'; + put 'put ''bSs4Pj4zXT13PStfW2MrMjQ+PjNdK3csX1soQT1mKzE2fDApPj4zXT0rX1soK19bQT4+M10+Yj9BOm0pPj4zXSxfWyhjPWYrMjR8MCk+PjNdPStfWygrX1tjPj4zXT53P0E6bSkrOD4+M10sYVtsPj4yXT1hW2Y+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxh''@;'; + put 'put ''W2wrMTI+PjJdPWFbZisxMj4+Ml0sYVtsKzE2Pj4yXT1hW2YrMTY+PjJdLGFbbCsyMD4+Ml09YVtmKzIwPj4yXSxhW2wrMjQ+PjJdPWFbZisyND4+Ml0sYVtsKzI4Pj4yXT1hW2YrMjg+PjJdLGFlPXB9ZnVuY3Rpb24gcWQobCl7WDYobHw9MCwxKX1mdW5jdGlvbiBZSChsLGMsZil7bHw9MCxm''@;'; + put 'put ''fD0wO3ZhciBiLGssTSxELHA9MCxtPTAsQT0wLHc9MDtEPWFlLGFlPWFlKzE2fDAsTT1EKzh8MCxrPUQsYj0wIT0oMHwoY3w9MCkpO2U6ZG97aWYoYil7QT0wLHA9MDt0OmZvcig7Oylmb3IoOzspe2lmKEEpYnJlYWsgZTtpZighKG09MHxhW2MrKHA8PDIpPj4yXSkpe3c9NjticmVhayBlfWlm''@;'; + put 'put ''KHA9cCsxfDAsISgwfGZlW20+PjBdKSl7QT0xO2NvbnRpbnVlIHR9fX1lbHNlIHc9Nn13aGlsZSgwKTtlOmRve2lmKDY9PSgwfHcpKWZvcig7Oyl7aWYoIShwPTB8YVtmPj4yXSkpYnJlYWsgZTtFbihsLHApLEVuKGwsMTUzNTk5KSxmPWYrNHwwLHc9Nn19d2hpbGUoMCk7ZTpkb3tpZihiKWZv''@;'; + put 'put ''cihBPTA7Oyl7aWYoIShwPTB8YVtjKyhBPDwyKT4+Ml0pKWJyZWFrIGU7ZG97aWYoMHxmZVtwPj4wXSl7aWYoIShmPTB8YUQocCkpKXthW2s+PjJdPXAsJHIoMCwxMDQzODQsayk7YnJlYWt9aWYoIShtPTB8ZVMoZiwxMzg4MjEpKSl7YVtNPj4yXT1mLCRyKDAsMTA0NDEyLE0pO2JyZWFrfWZv''@;'; + put 'put ''cig7cD0wfGJsZShtKTspRW4obCxwKTtFbihsLDE1MzU5OSksZXcobSl9fXdoaWxlKDApO0E9QSsxfDB9fXdoaWxlKDApO2FlPUR9ZnVuY3Rpb24gRlEobCxjKXtsfD0wO3ZhciBmPTAscD0wLG09MDtjPTB8YVs1MisoY3w9MCk+PjJdO2U6Zm9yKDs7KXtmPTB8ZmVbYz4+MF07dDpkb3tzd2l0''@;'; + put 'put ''Y2goZjw8MjQ+PjI0KXtjYXNlIDA6YnJlYWsgZTtjYXNlIDM3OmlmKDM3PT0oMHxmZVtjKzE+PjBdKSl7aWYoMCE9KDB8bzQoZj1jKzJ8MCwxMDQ0NDAsMykpJiYwIT0oMHxvNChmLDEwNDQ0NCw1KSkmJjAhPSgwfG80KGYsMTA0NDUwLDMpKSYmMCE9KDB8bzQoZiwxMDQ0NTQsNykpKXtmPTM3''@;'; + put 'put ''O2JyZWFrIHR9bT0zNztuOmZvcig7Oyl7c3dpdGNoKG08PDI0Pj4yNCl7Y2FzZSAxMzpwPTEwO2JyZWFrIG47Y2FzZSAxMDpjYXNlIDA6cD0xMjticmVhayBufWM9bT1jKzF8MCxtPTB8ZmVbbT4+MF19aWYoMTA9PSgwfHApKXtpZigxMD09KDB8ZmVbKGY9YysxfDApPj4wXSkpe2M9YysyfDA7''@;'; + put 'put ''Y29udGludWUgZX19ZWxzZSAxMj09KDB8cCkmJihmPWMrMXwwKTtjPW08PDI0Pj4yND09MD9jOmY7Y29udGludWUgZX1mPTM3fX13aGlsZSgwKTt0OmZvcig7Oyl7c3dpdGNoKGY8PDI0Pj4yNCl7Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMDpicmVhayB0fUpQKGwsZjw8MjQ+PjI0KSxjPW09Yysx''@;'; + put 'put ''fDAsZj0wfGZlW20+PjBdfXA9YysxfDAsYz1mPDwyND4+MjQ9PTEzJiYxMD09KDB8ZmVbcD4+MF0pP2MrMnwwOmY8PDI0Pj4yND09MD9jOnAsSlAobCwxMCl9fWZ1bmN0aW9uIFVIKGwsYyl7bHw9MCxjfD0wO3ZhciBtLGY9MCxwPTAsQT0wO209YWUsYWU9YWUrMTZ8MCxmPW07ZTpkb3tzd2l0''@;'; + put 'put ''Y2goMHxjKXtjYXNlIDA6cD1sO2JyZWFrO2Nhc2UgMTpwPTB8YkoobCk7YnJlYWs7ZGVmYXVsdDpzd2l0Y2goMHxFYWUobCkpe2Nhc2UgMjpicmVhaztjYXNlIDE6cD0wfGJKKGwpO2JyZWFrIGU7ZGVmYXVsdDpwPWw7YnJlYWsgZX0wfGFbNDcyNjhdfHwoJHIoMCwxMDQ1MjUsZiksYVs0NzI2''@;'; + put 'put ''OF09MSkscD1sfX13aGlsZSgwKTswfGFbNDcyNjldfHx1cygxODkwNzYsMCwwKSwoYz0wfGFbNDcyNzBdKT4+PjA+PSgwfGFbNDcyNzFdKT4+PjAmJihRMCgxODkwNzYsMSksYz0wfGFbNDcyNzBdKSxhWzQ3MjcwXT1jKzEsZmVbYz4+MF09NDAsZj1wO2U6Zm9yKDs7KXtzd2l0Y2goMHxmZVtm''@;'; + put 'put ''Pj4wXSl7Y2FzZSAwOmJyZWFrIGU7Y2FzZSA5MjpjYXNlIDQxOmNhc2UgNDA6KGM9MHxhWzQ3MjcwXSk+Pj4wPj0oMHxhWzQ3MjcxXSk+Pj4wJiYoUTAoMTg5MDc2LDEpLGM9MHxhWzQ3MjcwXSksYVs0NzI3MF09YysxLGZlW2M+PjBdPTkyfShjPTB8YVs0NzI3MF0pPj4+MD49KDB8YVs0NzI3''@;'; + put 'put ''MV0pPj4+MCYmKFEwKDE4OTA3NiwxKSxjPTB8YVs0NzI3MF0pLEE9MHxmZVtmPj4wXSxhWzQ3MjcwXT1jKzEsZmVbYz4+MF09QSxmPWYrMXwwfXJldHVybihjPTB8YVs0NzI3MF0pPj4+MD49KDB8YVs0NzI3MV0pPj4+MCYmKFEwKDE4OTA3NiwxKSxjPTB8YVs0NzI3MF0pLGFbNDcyNzBdPWMr''@;'; + put 'put ''MSxmZVtjPj4wXT00MSwoMHxwKSE9KDB8bCkmJkZ0KHApLChjPTB8YVs0NzI3MF0pPj4+MD49KDB8YVs0NzI3MV0pPj4+MCYmKFEwKDE4OTA3NiwxKSxjPTB8YVs0NzI3MF0pLGZlW2M+PjBdPTAsYVs0NzI3MF09QT0wfGFbNDcyNjldLGFlPW0sMHxBfWZ1bmN0aW9uIEVhZShsKXtsfD0wO3Zh''@;'; + put 'put ''ciBjPTAsZj0wO2M9MDtlOmZvcig7Oyl7Zm9yKDs7KXtpZighKChmPTB8ZmVbbD4+MF0pPDwyND4+MjQpKWJyZWFrIGU7aWYoISgoMjU1JmYpPDEyNykpYnJlYWs7bD1sKzF8MH1pZigoLTQmZik8PDI0Pj4yNCE9LTY0KXtjPTI7YnJlYWt9Yz0xLGw9bCsyfDB9cmV0dXJuIDB8Y31mdW5jdGlv''@;'; + put 'put ''biBXSShsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIHcsYixrLE0sRCxBPTAsUj0wLEc9MDtEPWFlLGFlPWFlKzk2fDAsdz1EKzgwfDAsYj1EKzcyfDAsTT1EKzY0fDAsaz1ELF9bKEE9RCszMnwwKT4+M109K19bKGx8PTApPj4zXSxfW0ErOD4+M109K19bbCs4Pj4zXSxfW0Er''@;'; + put 'put ''MTY+PjNdPStfW2M+PjNdLF9bQSsyND4+M109K19bYys4Pj4zXTtkb3tpZigoMHx1NShmLEEsYikpPj0wKXtpZihtKWFbdz4+Ml09YVtiPj4yXSxhW3crND4+Ml09YVtiKzQ+PjJdLExkKHcsTSk7ZWxzZXtmb3IobT0wfGFbNDcyNzRdLCgwfChsPTB8YVsoYz1mKzR8MCk+PjJdKSk+KDB8YVs0''@;'; + put 'put ''NzI3M10pPyhsPW0/MHxWMChtLGw8PDUpOjB8UW4obDw8NSksYVs0NzI3NF09bCxhWzQ3MjczXT1BPTB8YVtjPj4yXSxtPWwpOkE9bCxjPTB8YVtmPj4yXSxsPTA7ISgoMHxsKT49KDB8QSkpOylhWyhSPW0rKGw8PDUpfDApPj4yXT1hWyhmPWMrKGw8PDQpfDApPj4yXSxhW1IrND4+Ml09YVtm''@;'; + put 'put ''KzQ+PjJdLGFbUis4Pj4yXT1hW2YrOD4+Ml0sYVtSKzEyPj4yXT1hW2YrMTI+PjJdLGFbKFI9bSsobDw8NSkrMTZ8MCk+PjJdPWFbKEc9YysoKCgwfChmPWwrMXwwKSklKDB8QSl8MCk8PDQpfDApPj4yXSxhW1IrND4+Ml09YVtHKzQ+PjJdLGFbUis4Pj4yXT1hW0crOD4+Ml0sYVtSKzEyPj4y''@;'; + put 'put ''XT1hW0crMTI+PjJdLGw9ZjtpZihhW2s+PjJdPTAsYVtrKzQ+PjJdPTAsYVtrKzg+PjJdPTAsYVtrKzEyPj4yXT0wLGFbaysxNj4+Ml09MCxhW2srMjA+PjJdPTAsYVtrKzI0Pj4yXT0wLGFbaysyOD4+Ml09MCxhW3c+PjJdPWFbYj4+Ml0sYVt3KzQ+PjJdPWFbYis0Pj4yXSwoMHxxdihtLEEs''@;'; + put 'put ''dyxrLE0pKTwwKXtsPTA7YnJlYWt9fWlmKDB8SFEoMHxhWyhsPU0rNHwwKT4+Ml0pKWw9MDtlbHNle2ZvcihBPTB8YVtsPj4yXSxsPTB8YVs0NzI3NV0sbT0wfGFbTT4+Ml0sYz0wOyEoKDB8Yyk+PSgwfEEpKTspYVsoRz1sKyhjPDw0KXwwKT4+Ml09YVsoUj1tKyhjPDw0KXwwKT4+Ml0sYVtH''@;'; + put 'put ''KzQ+PjJdPWFbUis0Pj4yXSxhW0crOD4+Ml09YVtSKzg+PjJdLGFbRysxMj4+Ml09YVtSKzEyPj4yXSxjPWMrMXwwO2FbcD4+Ml09QX19ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGFlPUQsMHxsfWZ1bmN0aW9uIEhRKGwpe2x8PTA7dmFyIGYscCxjPTA7cD1hZSxhZT1hZSsxNnwwLGY9cCxj''@;'; + put 'put ''PTB8YVs0NzI3Nl07ZG97aWYoKDB8Yyk8KDB8bCkpe2lmKGM9MHxWMCgwfGFbNDcyNzVdLChsPWwrMzAwLSgoMHxsKSUzMDB8MCkrY3wwKTw8NCksYVs0NzI3NV09YyxjKXthWzQ3Mjc2XT1sLGw9MDticmVha30kcigxLDEwNDYxNSxmKSxsPTE7YnJlYWt9bD0wfXdoaWxlKDApO3JldHVybiBh''@;'; + put 'put ''ZT1wLDB8bH1mdW5jdGlvbiB4YWUoKXt2YXIgYyxsPTAsZj0wO2M9YWUsYWU9YWUrMTZ8MCxsPWMsYVs0NzI3N109MSsoZj0wfGFbNDcyNzddKTtkb3tpZigoMHxmKTw9MCl7aWYoZj0wfFFuKDQ4MDApLGFbNDcyNzVdPWYsIWYpeyRyKDEsMTA0NjM4LGwpLGw9MTticmVha31hWzQ3Mjc2XT0z''@;'; + put 'put ''MDAsYVs0NzI3OF09MCxhWzQ3Mjc5XT0wLGw9MH1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gYWU9YywwfGx9ZnVuY3Rpb24gTlEoKXt2YXIgYyxmO2M9YWUsYWU9YWUrMTZ8MCxhWzQ3Mjc3XT0oZj0wfGFbNDcyNzddKS0xLCgwfGYpPD0xJiZGdCgwfGFbNDcyNzVdKSxhZT1jfWZ1bmN0aW9u''@;'; + put 'put ''IGJ5KGwsYyl7cmV0dXJuIDB8VlEobHw9MCxjfD0wLDApfWZ1bmN0aW9uIFZRKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcGUsZ2UsYmUsTGUsUmUsSGUsU3Qsa3QsbHQsRXQsWnQsY3QscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxPZT0wLFZlPTAscWU9''@;'; + put 'put ''MCxudD0wLFdlPTAsb3Q9MCxidD0wLGFuPTA7Zm9yKGN0PWFlLGFlPWFlKzE3NnwwLFN0PWN0KzE2OHwwLFp0PWN0KzEyOHwwLFJlPWN0KzEyMHwwLE9lPWN0KzExMnwwLEE9Y3QrMTA0fDAscGU9Y3QrODh8MCxNPWN0KzcyfDAsbT1jdCs2NHwwLGdlPWN0KzE2MHwwLGx0PWN0KzE1MnwwLEhl''@;'; + put 'put ''PWN0KzE0NHwwLGJlPWN0KzMyfDAsTGU9Y3QsRXQ9Y3QrMTM2fDAsYVs0NzI3OF09MSsoMHxhWzQ3Mjc4XSksYVs0NzI3OV09KDB8YVs0NzI3OV0pKyhrdD0wfGFbbCs4MD4+Ml0pLHA9bCs4OHwwOzspe2lmKCEoV2U9MHxhW3A+PjJdKSl7b3Q9NDticmVha31pZighKDB8ZmVbMTEyKyhwPTB8''@;'; + put 'put ''YVtXZSsxNj4+Ml0pPj4wXSkpe290PTU7YnJlYWt9cD1wKzExNnwwfWRve2lmKDQ9PSgwfG90KSkkcigxLDEwNDcxOSxtKSxwPTA7ZWxzZSBpZig1PT0oMHxvdCkpaWYoMHxqUShrdCxudD0wfGFbbCs4ND4+Ml0sbCkpcD0wO2Vsc2V7KDB8KG09a3Q8PDMpKT4oMHxhWzQ3MjgwXSkmJihwPShw''@;'; + put 'put ''PTB8YVs0NzI4MV0pPzB8VjAocCxrdDw8Nyk6MHxRbihrdDw8NyksYVs0NzI4MV09cCxhWzQ3MjgwXT1tKTtlOmRve2lmKCgwfGt0KT4xJiYrX1tudCs4Pj4zXT4rX1tudCs0MD4+M10pZm9yKHA9MDs7KXtpZigoMHxwKT09KDB8a3QpKXtSPTE7YnJlYWsgZX1rPStfWyhWZT1udCsocDw8NSkr''@;'; + put 'put ''MjR8MCk+PjNdLF9bVmU+PjNdPS0rX1socWU9bnQrKHA8PDUpKzh8MCk+PjNdLF9bcWU+PjNdPS1rLHA9cCsxfDB9ZWxzZSBSPTB9d2hpbGUoMCk7aWYoVmU9V2UrNDh8MCxxZT1XZSstNDh8MCwoMHwocD0wfGFbKDM9PSgwfChLPTMmYVtXZT4+Ml0pKT9XZTpWZSkrNDA+PjJdKSk9PSgwfGFb''@;'; + put 'put ''KDI9PSgwfEspP1dlOnFlKSs0MD4+Ml0pKXthW0E+PjJdPTB8dGkocCksJHIoMSwxMDQ4MjYsQSkscD0wO2JyZWFrfUQ9a3QrLTF8MCxLPUc9MHxhWzQ3MjgxXSxwPTAsdz0wO2U6Zm9yKDs7KXtpZigoMHx3KT49KDB8a3QpKXt3PUQsTT1wO2JyZWFrfW09KDB8dyk+MD8rX1tudCsodzw8NSkr''@;'; + put 'put ''OD4+M10+K19bbnQrKHcrLTE8PDUpKzg+PjNdPy0xOjE6MCxBPSgwfHcpPCgwfEQpPytfW250Kyh3KzE8PDUpKzg+PjNdPitfW250Kyh3PDw1KSs4Pj4zXT8xOi0xOjA7dDpkb3tpZigoMHxtKSE9KDB8QSkpe2lmKDE9PSgwfG0pfC0xPT0oMHxBKSl7X1tHKyhwPDw0KT4+M109K19bKG09bnQr''@;'; + put 'put ''KHc8PDUpfDApPj4zXSxBPXArMXwwLF9bRysocDw8NCkrOD4+M109K19bbnQrKHc8PDUpKzI0Pj4zXSxfW0crKEE8PDQpPj4zXT0rX1ttPj4zXSxtPW50Kyh3PDw1KSs4fDAsb3Q9Mjk7YnJlYWt9X1tHKyhwPDw0KT4+M109K19bKG09bnQrKHc8PDUpKzE2fDApPj4zXSxBPXArMXwwLF9bRyso''@;'; + put 'put ''cDw8NCkrOD4+M109K19bbnQrKHc8PDUpKzg+PjNdLF9bRysoQTw8NCk+PjNdPStfW20+PjNdLG09bnQrKHc8PDUpKzI0fDAsb3Q9Mjk7YnJlYWt9c3dpdGNoKDB8bSl7Y2FzZS0xOmJyZWFrIHQ7Y2FzZSAwOmJyZWFrO2RlZmF1bHQ6b3Q9Mjg7YnJlYWsgZX1fW0crKHA8PDQpPj4zXT0rX1so''@;'; + put 'put ''bT1udCsodzw8NSl8MCk+PjNdLEE9cCsxfDAsX1tHKyhwPDw0KSs4Pj4zXT0rX1tudCsodzw8NSkrMjQ+PjNdLF9bRysoQTw8NCk+PjNdPStfW20+PjNdLG09bnQrKHc8PDUpKzh8MCxvdD0yOX13aGlsZSgwKTsyOT09KDB8b3QpJiYob3Q9MCxfW0crKEE8PDQpKzg+PjNdPStfW20+PjNdLHA9''@;'; + put 'put ''cCsyfDApLHc9dysxfDB9aWYoMjg9PSgwfG90KSl7YVtNPj4yXT1tLGFbTSs0Pj4yXT1tLGFbTSs4Pj4yXT00ODAsJHIoMSwxMDQ3NjEsTSkscD0wO2JyZWFrfWU6Zm9yKDshKCgwfHcpPD0tMSk7KXtwPSgwfHcpPCgwfEQpPytfW250Kyh3PDw1KSs4Pj4zXT4rX1tudCsodysxPDw1KSs4Pj4z''@;'; + put 'put ''XT8tMToxOjAsbT0oMHx3KT4wPytfW250Kyh3Ky0xPDw1KSs4Pj4zXT4rX1tudCsodzw8NSkrOD4+M10/MTotMTowO3Q6ZG97aWYoKDB8cCkhPSgwfG0pKXtpZigxPT0oMHxwKXwtMT09KDB8bSkpe19bRysoTTw8NCk+PjNdPStfWyhwPW50Kyh3PDw1KXwwKT4+M10sbT1NKzF8MCxfW0crKE08''@;'; + put 'put ''PDQpKzg+PjNdPStfW250Kyh3PDw1KSsyND4+M10sX1tHKyhtPDw0KT4+M109K19bcD4+M10scD1udCsodzw8NSkrOHwwLEE9MjticmVha31fW0crKE08PDQpPj4zXT0rX1socD1udCsodzw8NSkrMTZ8MCk+PjNdLG09TSsxfDAsX1tHKyhNPDw0KSs4Pj4zXT0rX1tudCsodzw8NSkrOD4+M10s''@;'; + put 'put ''X1tHKyhtPDw0KT4+M109K19bcD4+M10scD1udCsodzw8NSkrMjR8MCxBPTI7YnJlYWt9c3dpdGNoKDB8cCl7Y2FzZSAwOl9bRysoTTw8NCk+PjNdPStfWyhwPW50Kyh3PDw1KSsxNnwwKT4+M10sbT1NKzF8MCxfW0crKE08PDQpKzg+PjNdPStfW250Kyh3PDw1KSs4Pj4zXSxfW0crKG08PDQp''@;'; + put 'put ''Pj4zXT0rX1twPj4zXSxwPW50Kyh3PDw1KSsyNHwwLEE9MjticmVhayB0O2Nhc2UtMTpfW0crKE08PDQpPj4zXT0rX1soYW49bnQrKHc8PDUpKzE2fDApPj4zXSxBPU0rMXwwLF9bRysoTTw8NCkrOD4+M109K19bKHA9bnQrKHc8PDUpKzh8MCk+PjNdLF9bRysoQTw8NCk+PjNdPStfW2FuPj4z''@;'; + put 'put ''XSxidD1NKzJ8MCxfW0crKEE8PDQpKzg+PjNdPStfWyhhbj1udCsodzw8NSkrMjR8MCk+PjNdLF9bRysoYnQ8PDQpPj4zXT0rX1soQT1udCsodzw8NSl8MCk+PjNdLG09TSszfDAsX1tHKyhidDw8NCkrOD4+M109K19bYW4+PjNdLF9bRysobTw8NCk+PjNdPStfW0E+PjNdLEE9NDticmVhayB0''@;'; + put 'put ''O2RlZmF1bHQ6b3Q9NDI7YnJlYWsgZX19d2hpbGUoMCk7X1tHKyhtPDw0KSs4Pj4zXT0rX1twPj4zXSx3PXcrLTF8MCxNPU0rQXwwfWlmKDQyPT0oMHxvdCkpe2FbcGU+PjJdPXAsYVtwZSs0Pj4yXT1wLGFbcGUrOD4+Ml09NTEzLCRyKDEsMTA0NzYxLHBlKSxwPTA7YnJlYWt9ZTpkb3tpZihS''@;'; + put 'put ''KXtmb3IocD0wOzspe2lmKCgwfHApPj0oMHxrdCkpe3A9MDticmVha31rPStfWyhidD1udCsocDw8NSkrMjR8MCk+PjNdLF9bYnQ+PjNdPS0rX1soYW49bnQrKHA8PDUpKzh8MCk+PjNdLF9bYW4+PjNdPS1rLHA9cCsxfDB9Zm9yKDs7KXtpZigoMHxwKT49KDB8TSkpe3A9MDticmVhayBlfV9b''@;'; + put 'put ''KGFuPUcrKHA8PDQpKzh8MCk+PjNdPS0rX1thbj4+M10scD1wKzF8MH19ZWxzZSBwPTB9d2hpbGUoMCk7Zm9yKDshKCgwfHApPj0oMHxrdCkpOylfW250KyhwPDw1KT4+M109MjE0NzQ4MzY0NyxfW250KyhwPDw1KSsxNj4+M109LTIxNDc0ODM2NDgscD1wKzF8MDtpZihhW2dlPj4yXT1LLGFb''@;'; + put 'put ''KEE9Z2UrNHwwKT4+Ml09TSxfW2JlPj4zXT0rX1tsPj4zXSxfW2JlKzg+PjNdPStfW2wrOD4+M10sX1tiZSsxNj4+M109K19bbCs0MD4+M10sX1tiZSsyND4+M109K19bbCs0OD4+M10sKDB8dTUoZ2UsYmUsbHQpKTwwKXskcigxLDEwNDg2NSxPZSkscD0wO2JyZWFrfWlmKGYpYVtTdD4+Ml09''@;'; + put 'put ''YVtsdD4+Ml0sYVtTdCs0Pj4yXT1hW2x0KzQ+PjJdLExkKFN0LEhlKTtlbHNle2ZvcihwPTB8YVs0NzI3NF0sKDB8KG09MHxhW0E+PjJdKSk+KDB8YVs0NzI3M10pJiYocD1wPzB8VjAocCxtPDw1KTowfFFuKG08PDUpLGFbNDcyNzRdPXAsYVs0NzI3M109bT0wfGFbQT4+Ml0pLHc9MHxhWzQ3''@;'; + put 'put ''MjgxXSxBPTA7ISgoMHxBKT49KDB8bSkpOylhWyhidD1wKyhBPDw1KXwwKT4+Ml09YVsoYW49dysoQTw8NCl8MCk+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sYVsoYnQ9cCsoQTw8NSkrMTZ8MCk+PjJdPWFb''@;'; + put 'put ''KE9lPXcrKCgoMHwoYW49QSsxfDApKSUoMHxtKXwwKTw8NCl8MCk+PjJdLGFbYnQrND4+Ml09YVtPZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbT2UrOD4+Ml0sYVtidCsxMj4+Ml09YVtPZSsxMj4+Ml0sQT1hbjtpZigwfGZlW2wrMjk+PjBdPyhiPStoYSgrKGs9K19bbCsxNj4+M10pKSxrPStEYSgr''@;'; + put 'put ''aykpOihiPTAsaz0wKSxfW0xlKzg+PjNdPWssX1tMZT4+M109YiwwfGZlW2wrNjk+PjBdPyhiPS0raGEoKyhrPStfW2wrNTY+PjNdKSksaz0tK0RhKCtrKSk6KGI9MCxrPTApLF9bTGUrMjQ+PjNdPWssX1tMZSsxNj4+M109YixhW1N0Pj4yXT1hW2x0Pj4yXSxhW1N0KzQ+PjJdPWFbbHQrND4+''@;'; + put 'put ''Ml0sKDB8cXYocCxtLFN0LExlLEhlKSk8MCl7JHIoMSwxMDQ5MDQsUmUpLHA9MDticmVha319aWYoMHxIUSgwfGFbKE09SGUrNHwwKT4+Ml0pKXA9MDtlbHNle2ZvcihwPTA7ISgoMHxwKT49KDB8a3QpKTspX1tudCsocDw8NSk+PjNdPTIxNDc0ODM2NDcsX1tudCsocDw8NSkrMTY+PjNdPS0y''@;'; + put 'put ''MTQ3NDgzNjQ4LHA9cCsxfDA7Zm9yKEE9MHxhW00+PjJdLHc9MHxhWzQ3Mjc1XSxtPTB8YVtIZT4+Ml0scD0wOzspe2lmKCgwfHApPj0oMHxBKSl7QT0xLHA9MTAsbT0wO2JyZWFrfWFbKGFuPXcrKHA8PDQpfDApPj4yXT1hWyhidD1tKyhwPDw0KXwwKT4+Ml0sYVthbis0Pj4yXT1hW2J0KzQ+''@;'; + put 'put ''PjJdLGFbYW4rOD4+Ml09YVtidCs4Pj4yXSxhW2FuKzEyPj4yXT1hW2J0KzEyPj4yXSxwPXArMXwwfWZvcig7KDB8bSk8MTUmQTw8MjQ+PjI0IT0wOyl7Zm9yKFpRKG50LGt0LDB8YVs0NzI3NV0sMHxhW00+PjJdLHApLHc9MDshKCgwfHcpPj0oMHxrdCkpOyl7aWYoMjE0NzQ4MzY0Nz09K19b''@;'; + put 'put ''bnQrKHc8PDUpPj4zXSl7b3Q9ODI7YnJlYWt9aWYoLTIxNDc0ODM2NDg9PStfW250Kyh3PDw1KSsxNj4+M10pe290PTgyO2JyZWFrfXc9dysxfDB9ODI9PSgwfG90KSYmKG90PTAscD1hbj1wPDwxLG09KDB8YW4pPigwfDIxNDc0ODM2NDcvKDB8a3QpKT8xNTptKSxBPSgwfHcpPT0oMHxrdCk/''@;'; + put 'put ''MDpBLG09bSsxfDB9QTw8MjQ+PjI0JiYoYnQ9MHx0aSgwfGFbKDM9PSgzJmFbV2U+PjJdfDApP1dlOlZlKSs0MD4+Ml0pLGFuPTB8dGkoMHxhWygyPT0oMyZhW1dlPj4yXXwwKT9XZTpxZSkrNDA+PjJdKSxhW1p0Pj4yXT1idCxhW1p0KzQ+PjJdPWFuLCRyKDAsMTA0OTQyLFp0KSxhW1N0Pj4y''@;'; + put 'put ''XT1hW2x0Pj4yXSxhW1N0KzQ+PjJdPWFbbHQrND4+Ml0sTGQoU3QsRXQpLFpRKG50LGt0LDB8YVtFdD4+Ml0sMHxhW0V0KzQ+PjJdLDEwKSxGdCgwfGFbRXQ+PjJdKSksYVtjPj4yXT1hW00+PjJdLHA9MHxhWzQ3Mjc1XX19fXdoaWxlKDApO3JldHVybiBhZT1jdCwwfHB9ZnVuY3Rpb24galEo''@;'; + put 'put ''bCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBadCxjdCxidCxEcixwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxsdD0wLEV0PTAsYW49''@;'; + put 'put ''MCxTbj0wLEhuPTAsdXI9MCxIcj0wLEVyPTAsZnI9MDtmb3IoRHI9YWUsYWU9YWUrMzJ8MCxjdD1EcisxNnwwLFp0PURyKzh8MCxrPURyLHA9MCxiPTA7ISgoMHxiKT49KDB8bCkpOyl3PWMrKGI8PDUpfDAsISgoKGdlPStfW2MrKGI8PDUpKzg+PjNdLStfW2MrKGI8PDUpKzI0Pj4zXSk+PTA/''@;'; + put 'put ''Z2U6LWdlKTwuMDEpJiYhKCgoZ2U9K19bdz4+M10tK19bYysoYjw8NSkrMTY+PjNdKT49MD9nZTotZ2UpPC4wMSkmJigoMHxwKSE9KDB8YikmJihhWyhFcj1jKyhwPDw1KXwwKT4+Ml09YVt3Pj4yXSxhW0VyKzQ+PjJdPWFbdys0Pj4yXSxhW0VyKzg+PjJdPWFbdys4Pj4yXSxhW0VyKzEyPj4y''@;'; + put 'put ''XT1hW3crMTI+PjJdLGFbRXIrMTY+PjJdPWFbdysxNj4+Ml0sYVtFcisyMD4+Ml09YVt3KzIwPj4yXSxhW0VyKzI0Pj4yXT1hW3crMjQ+PjJdLGFbRXIrMjg+PjJdPWFbdysyOD4+Ml0pLHA9cCsxfDApLGI9YisxfDA7YnQ9YysxNnwwO2Rve2lmKCtfW2M+PjNdPitfW2J0Pj4zXXx8K19bKFNu''@;'; + put 'put ''PWMrOHwwKT4+M10+K19bKHVyPWMrMjR8MCk+PjNdKWZyPTEyO2Vsc2V7Zm9yKEVyPXArLTF8MCxIbj0wfGFbMTU3MTJdLFJlPTA7ISgoMHxSZSk+PSgwfEVyKSk7KXtpZigobT0rX1soa3Q9YysoKFN0PVJlKzF8MCk8PDUpfDApPj4zXSk+KEE9K19bKGx0PWMrKFN0PDw1KSsxNnwwKT4+M10p''@;'; + put 'put ''KXtmcj0xNjticmVha31pZigoTT0rX1sobnQ9YysoU3Q8PDUpKzh8MCk+PjNdKT4oRD0rX1soV2U9YysoU3Q8PDUpKzI0fDApPj4zXSkpe2ZyPTE2O2JyZWFrfSEwfDFeKFI9MCE9KDB8KEhlPShsPTEmKE9lPStfWyhvdD1jKyhSZTw8NSl8MCk+PjNdPkEpKSsocD0xJihMZT0rX1soRXQ9Yyso''@;'; + put 'put ''UmU8PDUpKzE2fDApPj4zXTxtKSkrKGI9MSYoYmU9K19bKHFlPWMrKFJlPDw1KSsyNHwwKT4+M108TSkpKyh3PTEmKGs9K19bKFZlPWMrKFJlPDw1KSs4fDApPj4zXT5EKSl8MCkpKXx8KGFbY3Q+PjJdPVJlLGFbY3QrND4+Ml09U3QsVDAoSG4sMTA1MTQyLGN0KSxRSChmKSk7ZTpkb3tpZihS''@;'; + put 'put ''KWZvcihMZT8oaz13LFI9MCxwPWt0LHc9RXQsZnI9MjQpOk9lPyhrPXcsbD0wLFI9cCxwPWx0LHc9b3QsZnI9MjQpOmJlPyhrPXcsYj0wLFI9cCxwPW50LHc9cWUsZnI9MjQpOmsmJihrPTAsUj1wLHA9V2Usdz1WZSxmcj0yNCksMjQ9PSgwfGZyKSYmKGZyPTAsUmU9fn4rX1t3Pj4zXSxfW3c+''@;'; + put 'put ''PjNdPStfW3A+PjNdLF9bcD4+M109KygwfFJlKSx3PWsscD1SKSxSPUhlKy0xfDAsaz0wOzspe2lmKCgwfGspPj0oMHxSKSlicmVhayBlO2Rve2lmKDEhPSgwfHApKXtpZigxPT0oMHxsKSl7X1tsdD4+M109Z2U9KygwfH5+KC41KigrX1tsdD4+M10rICtfW290Pj4zXSkrLjUpKSxfW290Pj4z''@;'; + put 'put ''XT1nZSxsPTA7YnJlYWt9aWYoMT09KDB8Yikpe19bbnQ+PjNdPWdlPSsoMHx+figuNSooK19bbnQ+PjNdKyArX1txZT4+M10pKy41KSksX1txZT4+M109Z2UsYj0wO2JyZWFrfTE9PSgwfHcpJiYoX1tXZT4+M109Z2U9KygwfH5+KC41KigrX1tXZT4+M10rICtfW1ZlPj4zXSkrLjUpKSxfW1Zl''@;'; + put 'put ''Pj4zXT1nZSx3PTApfWVsc2UgX1trdD4+M109Z2U9KygwfH5+KC41KigrX1trdD4+M10rICtfW0V0Pj4zXSkrLjUpKSxfW0V0Pj4zXT1nZSxwPTB9d2hpbGUoMCk7az1rKzF8MH19d2hpbGUoMCk7MCE9KDB8KHc9MHxKSCh+fihHPStfW290Pj4zXSksfn4oSz0rX1tFdD4+M10pLH5+KHBlPStf''@;'; + put 'put ''W2t0Pj4zXSksfn4oZ2U9K19bbHQ+PjNdKSkpKSYwIT0oMHwocD0wfEpIKH5+KEQ9K19bVmU+PjNdKSx+fihNPStfW3FlPj4zXSksfn4oQT0rX1tudD4+M10pLH5+KG09K19bV2U+PjNdKSkpKT8oMHx3KTwoMHxwKT8oUmU9SzxnZSxfWygoV2U9Sy1HPmdlLXBlKT9SZT9FdDpvdDpSZT9rdDps''@;'; + put 'put ''dCk+PjNdPVdlP1JlP3BlOmdlOlJlP0s6RyxSZT1TdCk6KFJlPU08bSxfWygoV2U9TS1EPm0tQSk/UmU/RXQ6b3Q6UmU/a3Q6bHQpKzg+PjNdPVdlP1JlP0E6bTpSZT9NOkQsUmU9U3QpOlJlPVN0fWlmKDE2PT0oMHxmcikpe2FbWnQ+PjJdPVN0LCRyKDEsMTA1MDk2LFp0KSxRSChmKSxwPTE7''@;'; + put 'put ''YnJlYWt9aWYoISgobT0rX1tmPj4zXSk8KEE9K19bYz4+M10pKSYmIShtPitfW2J0Pj4zXSkmJiEoKGFuPStfW2YrOD4+M10pPCtfW1NuPj4zXSkmJiEoYW4+K19bdXI+PjNdKXx8KG08QT9fW2Y+PjNdPUE6QT1tLEE+KG09K19bYnQ+PjNdKSYmKF9bZj4+M109bSksKEE9K19bKHA9Zis4fDAp''@;'; + put 'put ''Pj4zXSk8KG09K19bU24+PjNdKSYmKF9bcD4+M109bSxBPW0pLEE+KG09K19bdXI+PjNdKSYmKF9bcD4+M109bSkpLCEoKG09K19bKHc9Zis0MHwwKT4+M10pPChBPStfWyhwPWMrKEVyPDw1KXwwKT4+M10pfHxtPitfW2MrKEVyPDw1KSsxNj4+M118fChIcj0rX1tmKzQ4Pj4zXSxIcjwrX1tj''@;'; + put 'put ''KyhFcjw8NSkrOD4+M10pfHxIcj4rX1tjKyhFcjw8NSkrMjQ+PjNdKSl7cD0wO2JyZWFrfW08QSYmKF9bdz4+M109QSxtPUEpLG0+KEE9K19bYysoRXI8PDUpKzE2Pj4zXSkmJihfW3c+PjNdPUEpLChtPStfWyhwPWYrNDh8MCk+PjNdKTwoQT0rX1tjKyhFcjw8NSkrOD4+M10pP19bcD4+M109''@;'; + put 'put ''QTpBPW0sQT4obT0rX1tjKyhFcjw8NSkrMjQ+PjNdKSYmKF9bcD4+M109bSkscD0wfX13aGlsZSgwKTtyZXR1cm4gMTI9PSgwfGZyKSYmKCRyKDEsMTA1MDUxLGspLFFIKGYpLHA9MSksYWU9RHIsMHxwfWZ1bmN0aW9uIFpRKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTA7dmFyIE9lLExlLEE9''@;'; + put 'put ''MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wO0xlPTEvKygwfChPZT0wfEFyKG18PTAsY3w9MCkpKSxtPTA7ZTpmb3IoO1JlPW0rM3wwLCEoKDB8UmUpPj0oMHxwKSk7KWZvcihLPWYrKG08PDQpfDAs''@;'; + put 'put ''cGU9ZisobTw8NCkrOHwwLGJlPW0rMXwwLGdlPWYrKGJlPDw0KXwwLGJlPWYrKGJlPDw0KSs4fDAsaz1tKzJ8MCxiPWYrKGs8PDQpfDAsaz1mKyhrPDw0KSs4fDAsTT1mKyhSZTw8NCl8MCxEPWYrKFJlPDw0KSs4fDAsdz0wOzspe2lmKCgwfHcpPigwfE9lKSl7bT1SZTtjb250aW51ZSBlfWZv''@;'; + put 'put ''cihSPSgobnQ9K19bZ2U+PjNdKS0oUj0rX1tLPj4zXSkpKihIZT1MZSorKDB8dykpK1IsRz0oKFZlPStfW2JlPj4zXSktKEc9K19bcGU+PjNdKSkqSGUrRyxSPSgoKFdlPStfW2I+PjNdKS0obnQ9KFdlLW50KSpIZStudCkrKCtfW00+PjNdLVdlKSpIZSkqSGUrbnQtKFI9KG50LVIpKkhlK1Ip''@;'; + put 'put ''KSpIZStSLEc9KCgocWU9K19baz4+M10pLShWZT0ocWUtVmUpKkhlK1ZlKSsoK19bRD4+M10tcWUpKkhlKSpIZStWZS0oRz0oVmUtRykqSGUrRykpKkhlK0csQT0wOyEoKDB8QSk+PSgwfGMpKTspRzw9K19bbCsoQTw8NSkrMjQ+PjNdKzFlLTQmJkc+PStfW2wrKEE8PDUpKzg+PjNdLTFlLTQm''@;'; + put 'put ''JigrX1sobT1sKyhBPDw1KXwwKT4+M10+UiYmKF9bbT4+M109UiksK19bKG09bCsoQTw8NSkrMTZ8MCk+PjNdPFImJihfW20+PjNdPVIpKSxBPUErMXwwO3c9dysxfDB9fWZ1bmN0aW9uIFFIKGwpe3ZhciBmLHAsQSx3LGIsayxjPTAsbT0wLE09MCxEPTAsUj0wLEc9MCxLPTA7Zm9yKGs9YWUs''@;'; + put 'put ''YWU9YWUrMTEyfDAsdz1rKzgwfDAsYj1rKzQ4fDAsQT1rKzh8MCxmPTB8YVsxNTcxMl0sYVsobT1rKT4+Ml09YVsocD04MCsobHw9MCl8MCk+PjJdLFQwKGYsMTA1MjY4LG0pLG09bCs4NHwwLGM9MDshKCgwfGMpPj0oMHxhW3A+PjJdKSk7KUc9K19bKEs9MHxhW20+PjJdKSsoYzw8NSk+PjNd''@;'; + put 'put ''LFI9K19bSysoYzw8NSkrOD4+M10sRD0rX1tLKyhjPDw1KSsxNj4+M10sTT0rX1tLKyhjPDw1KSsyND4+M10sYVtBPj4yXT1jLF9bQSs4Pj4zXT1HLF9bQSsxNj4+M109UixfW0ErMjQ+PjNdPUQsX1tBKzMyPj4zXT1NLFQwKGYsMTA1Mjc5LEEpLGM9YysxfDA7Rz0rX1tsKzg+PjNdLFI9K19b''@;'; + put 'put ''bCsxNj4+M10sSz0wfGZlW2wrMjk+PjBdPzEwNTMxMDoxMDUzMjIsX1tiPj4zXT0rX1tsPj4zXSxfW2IrOD4+M109RyxfW2IrMTY+PjNdPVIsYVtiKzI0Pj4yXT1LLFQwKGYsMTA1MzM4LGIpLFI9K19bbCs0OD4+M10sRz0rX1tsKzU2Pj4zXSxLPTB8ZmVbbCs2OT4+MF0/MTA1MzEwOjEwNTMy''@;'; + put 'put ''MixfW3c+PjNdPStfW2wrNDA+PjNdLF9bdys4Pj4zXT1SLF9bdysxNj4+M109RyxhW3crMjQ+PjJdPUssVDAoZiwxMDUzODksdyksYWU9a31mdW5jdGlvbiBKSChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO2Rve2lmKCgwfGMpPigwfGYpJigwfHApPigwfGwpKXtpZighKCgwfGYpPigw''@;'; + put 'put ''fGwpfCgwfHApPCgwfGwpKSl7bD1wLWx8MDticmVha31pZigoMHxjKTwoMHxmKXwoMHxjKT4oMHxwKSl7bD0oMHwoYz1jLWx8MCkpPCgwfChsPXAtZnwwKSk/YzpsO2JyZWFrfWw9Yy1mfDA7YnJlYWt9bD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gZGsobCxjKXtyZXR1cm4gMHxW''@;'; + put 'put ''UShsfD0wLGN8PTAsMSl9ZnVuY3Rpb24gVGFlKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBrLG09MCxBPTAsdz0wLGI9MDtmb3Ioaz1hZSxhZT1hZSs4MHwwLEE9ayxiPTEsbT1jfD0wO3c9bSwwIT0oMHwobT0wfGFbMTcyKygwfGFbbSsxNj4+Ml0pPj4yXSkpJigwfHcpIT0oMHxtKTsp''@;'; + put 'put ''Yj1iKzF8MDtmb3IoKDB8Yik+PTIxJiYoQT0wfHZyKGI8PDIpKSx3PTAsbT1jOyEoKDB8dyk+PSgwfGIpKTspYVtBKyh3PDwyKT4+Ml09bSx3PXcrMXwwLG09MHxhWzE3MisoMHxhW20rMTY+PjJdKT4+Ml07elEobCxBLGIsZixwKSwoMHxiKT4yMCYmRnQoQSksYWU9a31mdW5jdGlvbiB6UShs''@;'; + put 'put ''LGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGdlLFZlLHFlLG50LFdlLG90LGt0LGx0LEV0LFp0LGN0LEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFN0PTAsYnQ9MCxhbj0wLFNuPTAsSG49MCx1cj0wO2N0''@;'; + put 'put ''PWFlLGFlPWFlKzMwNHwwLHFlPWN0KzI3MnwwLGx0PWN0KzMyfDAsRXQ9Y3QrMTZ8MCxadD1jdCxLPWN0KzE5MnwwLEhlPWN0KzE3NnwwLEE9Y3QrMTYwfDAsbnQ9Y3QrMjk2fDAsV2U9Y3QrMjg4fDAsYj0odz0wfGFbKGN8PTApPj4yXSktNDh8MCxvdD0wfGFbKDI9PSgwfChMZT0zJmFbdz4+''@;'; + put 'put ''Ml0pKT93OmIpKzQwPj4yXSxnZT0xNisoa3Q9Y3QrOTZ8MCl8MCxTdD0xNisoMHxhWyhSZT13KzE2fDApPj4yXSl8MCxhWyhWZT1jdCsyMDh8MCk+PjJdPWFbKExlPTE2KygwfGFbMTYrKDB8YVsoMz09KDB8TGUpP3c6dys0OHwwKSs0MD4+Ml0pPj4yXSl8MCk+PjJdLGFbVmUrND4+Ml09YVtM''@;'; + put 'put ''ZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbTGUrOD4+Ml0sYVtWZSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtxZT4+Ml09YVtTdD4+Ml0sYVtxZSs0Pj4yXT1hW1N0KzQ+PjJdLGFbcWUrOD4+Ml09YVtTdCs4Pj4yXSxhW3FlKzEyPj4yXT1hW1N0KzEyPj4yXSxHUShLLFZlLHFlKSxhW2t0Pj4yXT1hW0s+''@;'; + put 'put ''PjJdLGFba3QrND4+Ml09YVtLKzQ+PjJdLGFba3QrOD4+Ml09YVtLKzg+PjJdLGFba3QrMTI+PjJdPWFbSysxMj4+Ml0sYVtnZT4+Ml09YVtLPj4yXSxhW2dlKzQ+PjJdPWFbSys0Pj4yXSxhW2dlKzg+PjJdPWFbSys4Pj4yXSxhW2dlKzEyPj4yXT1hW0srMTI+PjJdLGFbRXQ+PjJdPWFbSz4+''@;'; + put 'put ''Ml0sYVtFdCs0Pj4yXT1hW0srND4+Ml0sYVtFdCs4Pj4yXT1hW0srOD4+Ml0sYVtFdCsxMj4+Ml09YVtLKzEyPj4yXSxLPWt0KzMyfDAsU3Q9a3QrNDh8MCxSZT01NisoMHxhW1JlPj4yXSl8MCxhW1ZlPj4yXT1hWyhMZT0xNisoMHxhW290KzE2Pj4yXSl8MCk+PjJdLGFbVmUrND4+Ml09YVtM''@;'; + put 'put ''ZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbTGUrOD4+Ml0sYVtWZSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtxZT4+Ml09YVtSZT4+Ml0sYVtxZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbcWUrOD4+Ml09YVtSZSs4Pj4yXSxhW3FlKzEyPj4yXT1hW1JlKzEyPj4yXSxHUShIZSxWZSxxZSksYVtTdD4+Ml09YVtI''@;'; + put 'put ''ZT4+Ml0sYVtTdCs0Pj4yXT1hW0hlKzQ+PjJdLGFbU3QrOD4+Ml09YVtIZSs4Pj4yXSxhW1N0KzEyPj4yXT1hW0hlKzEyPj4yXSxhW0s+PjJdPWFbSGU+PjJdLGFbSys0Pj4yXT1hW0hlKzQ+PjJdLGFbSys4Pj4yXT1hW0hlKzg+PjJdLGFbSysxMj4+Ml09YVtIZSsxMj4+Ml0sYVtadD4+Ml09''@;'; + put 'put ''YVtIZT4+Ml0sYVtadCs0Pj4yXT1hW0hlKzQ+PjJdLGFbWnQrOD4+Ml09YVtIZSs4Pj4yXSxhW1p0KzEyPj4yXT1hW0hlKzEyPj4yXTtlOmRve2lmKDEhPSgwfGYpJjA9PSgwfGZlWzE5NDk1NF0pKWZvcihrPStfW2t0Pj4zXSxNPStfW1N0Pj4zXSxidD1rLU0sRD0rX1trdCs4Pj4zXSxSPStf''@;'; + put 'put ''W2t0KzU2Pj4zXSxwZT1ELVIsRz1wZSpwZSxHK2J0KmJ0PDFlLTY/KGFbZ2U+PjJdPWFba3Q+PjJdLGFbZ2UrND4+Ml09YVtrdCs0Pj4yXSxhW2dlKzg+PjJdPWFba3QrOD4+Ml0sYVtnZSsxMj4+Ml09YVtrdCsxMj4+Ml0sYVtLPj4yXT1hW1N0Pj4yXSxhW0srND4+Ml09YVtTdCs0Pj4yXSxh''@;'; + put 'put ''W0srOD4+Ml09YVtTdCs4Pj4yXSxhW0srMTI+PjJdPWFbU3QrMTI+PjJdLEhlPWt0KzI0fDAsUmU9a3QrNDB8MCxNPTAsaz0wKTooYW49TS1rLGJ0PStEMCgrKEcrYW4qYW4pKSxMZT0wfGFbMjQ4KygwfGFbMTYrKDB8YVtsKzYwPj4yXSk+PjJdKT4+Ml0sU249KygwfCgwfEFyKExlLGYrLTF8''@;'; + put 'put ''MCkpLzIpLEc9cGUqU24vYnQsX1tnZT4+M109RytrLGs9YW4qU24vYnQsSGU9a3QrMjR8MCxfW0hlPj4zXT1rK0QsX1tLPj4zXT1HK00sUmU9a3QrNDB8MCxfW1JlPj4zXT1SK2ssaz0rKDAtTGV8MCksTT1hbiprL2J0LGs9cGUqay9idCkscD02PT0oMHxwKSxiZT1XZSs0fDAsT2U9bnQrNHww''@;'; + put 'put ''LHc9MDs7KXtpZigoMHx3KT49KDB8ZikpYnJlYWsgZTtiPShMZT0wfGFbYysodzw8Mik+PjJdKS00OHwwO3Q6ZG97aWYoKDB8YVsoMj09KDMmYVtMZT4+Ml18MCk/TGU6YikrNDA+PjJdKT09KDB8b3QpKWZvcihhW0V0Pj4yXT1hW2t0Pj4yXSxhW0V0KzQ+PjJdPWFba3QrND4+Ml0sYVtFdCs4''@;'; + put 'put ''Pj4yXT1hW2t0Kzg+PjJdLGFbRXQrMTI+PjJdPWFba3QrMTI+PjJdLGFbWnQ+PjJdPWFbU3Q+PjJdLGFbWnQrND4+Ml09YVtTdCs0Pj4yXSxhW1p0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtadCsxMj4+Ml09YVtTdCsxMj4+Ml0sQT0wOzspe2lmKDQ9PSgwfEEpKWJyZWFrIHQ7YVsoSG49bHQrKEE8''@;'; + put 'put ''PDQpfDApPj4yXT1hWyh1cj1rdCsoQTw8NCl8MCk+PjJdLGFbSG4rND4+Ml09YVt1cis0Pj4yXSxhW0huKzg+PjJdPWFbdXIrOD4+Ml0sYVtIbisxMj4+Ml09YVt1cisxMj4+Ml0sQT1BKzF8MH1lbHNlIGZvcihhW0V0Pj4yXT1hW1N0Pj4yXSxhW0V0KzQ+PjJdPWFbU3QrND4+Ml0sYVtFdCs4''@;'; + put 'put ''Pj4yXT1hW1N0Kzg+PjJdLGFbRXQrMTI+PjJdPWFbU3QrMTI+PjJdLGFbWnQ+PjJdPWFba3Q+PjJdLGFbWnQrND4+Ml09YVtrdCs0Pj4yXSxhW1p0Kzg+PjJdPWFba3QrOD4+Ml0sYVtadCsxMj4+Ml09YVtrdCsxMj4+Ml0sQT0wOzspe2lmKDQ9PSgwfEEpKWJyZWFrIHQ7YVsodXI9bHQrKDMt''@;'; + put 'put ''QTw8NCl8MCk+PjJdPWFbKEhuPWt0KyhBPDw0KXwwKT4+Ml0sYVt1cis0Pj4yXT1hW0huKzQ+PjJdLGFbdXIrOD4+Ml09YVtIbis4Pj4yXSxhW3VyKzEyPj4yXT1hW0huKzEyPj4yXSxBPUErMXwwfX13aGlsZSgwKTtpZihwKXtmb3IoYVtiZT4+Ml09NCxhW1dlPj4yXT1WZSxBPTA7NCE9KDB8''@;'; + put 'put ''QSk7KWFbKHVyPVZlKyhBPDw0KXwwKT4+Ml09YVsoSG49bHQrKEE8PDQpfDApPj4yXSxhW3VyKzQ+PjJdPWFbSG4rND4+Ml0sYVt1cis4Pj4yXT1hW0huKzg+PjJdLGFbdXIrMTI+PjJdPWFbSG4rMTI+PjJdLEE9QSsxfDA7YVtxZT4+Ml09YVtXZT4+Ml0sYVtxZSs0Pj4yXT1hW1dlKzQ+PjJd''@;'; + put 'put ''LExkKHFlLG50KSxBdShMZSwwfGFbKDI9PSgzJmFbTGU+PjJdfDApP0xlOmIpKzQwPj4yXSwwfGFbbnQ+PjJdLDB8YVtPZT4+Ml0sbSl9ZWxzZSBBdShMZSwwfGFbKDI9PSgzJmFbTGU+PjJdfDApP0xlOmIpKzQwPj4yXSxsdCw0LG0pO2FbVmU+PjJdPWFbRXQ+PjJdLGFbVmUrND4+Ml09YVtF''@;'; + put 'put ''dCs0Pj4yXSxhW1ZlKzg+PjJdPWFbRXQrOD4+Ml0sYVtWZSsxMj4+Ml09YVtFdCsxMj4+Ml0sYVtxZT4+Ml09YVtadD4+Ml0sYVtxZSs0Pj4yXT1hW1p0KzQ+PjJdLGFbcWUrOD4+Ml09YVtadCs4Pj4yXSxhW3FlKzEyPj4yXT1hW1p0KzEyPj4yXSx0ZygwLExlKSxfW2dlPj4zXT0rX1tnZT4+''@;'; + put 'put ''M10rayxfW0hlPj4zXT0rX1tIZT4+M10rTSxfW0s+PjNdPStfW0s+PjNdK2ssX1tSZT4+M109K19bUmU+PjNdK00sdz13KzF8MH1lbHNlIDQ9PSgwfHApJiYoSWFlKEEsbCksYVtxZT4+Ml09YVtBPj4yXSxhW3FlKzQ+PjJdPWFbQSs0Pj4yXSxhW3FlKzg+PjJdPWFbQSs4Pj4yXSxhW3FlKzEy''@;'; + put 'put ''Pj4yXT1hW0ErMTI+PjJdLERhZShrdCxxZSkpLEF1KHcsMHxhWygyPT0oMyZhW3c+PjJdfDApP3c6YikrNDA+PjJdLGt0LDQsbSksYVtWZT4+Ml09YVtFdD4+Ml0sYVtWZSs0Pj4yXT1hW0V0KzQ+PjJdLGFbVmUrOD4+Ml09YVtFdCs4Pj4yXSxhW1ZlKzEyPj4yXT1hW0V0KzEyPj4yXSxhW3Fl''@;'; + put 'put ''Pj4yXT1hW1p0Pj4yXSxhW3FlKzQ+PjJdPWFbWnQrND4+Ml0sYVtxZSs4Pj4yXT1hW1p0Kzg+PjJdLGFbcWUrMTI+PjJdPWFbWnQrMTI+PjJdLHRnKDAsdyl9d2hpbGUoMCk7YWU9Y3R9ZnVuY3Rpb24gR1EobCxjLGYpe3ZhciBwO3A9K19bOCsoZnw9MCk+PjNdKyArX1s4KyhjfD0wKT4+M10s''@;'; + put 'put ''X1sobHw9MCk+PjNdPStfW2Y+PjNdKyArX1tjPj4zXSxfW2wrOD4+M109cH1mdW5jdGlvbiBJYWUobCxjKXtsfD0wLF9bMjMzMDVdPS41KigrX1szMisoYz0wfGFbMTYrKGN8PTApPj4yXSk+PjNdKyArX1tjKzE2Pj4zXSksX1syMzMwNl09LjUqKCtfW2MrNDA+PjNdKyArX1tjKzI0Pj4zXSks''@;'; + put 'put ''YVtsPj4yXT1hWzQ2NjEwXSxhW2wrND4+Ml09YVs0NjYxMV0sYVtsKzg+PjJdPWFbNDY2MTJdLGFbbCsxMj4+Ml09YVs0NjYxM119ZnVuY3Rpb24gRGFlKGwsYyl7Y3w9MDt2YXIgbSxmPTAscD0wLEE9MCx3PTAsYj0wO2I9LjUqKChwPStfWzQ4KyhsfD0wKT4+M10pKyhBPStfW2w+PjNdKSks''@;'; + put 'put ''bT0uNSooKGY9K19bbCs1Nj4+M10pKyh3PStfW2wrOD4+M10pKSxBPS4yKitEMCgrKCh3PWYtdykqdysoQT1wLUEpKkEpKSwwIT0ocD0rRDAoKygoZj0rX1tjKzg+PjNdLW0pKmYrKHc9K19bYz4+M10tYikqdykpKSYmKHc9Yi13L3AqQSxiPW0tZi9wKkEsX1tsKzMyPj4zXT13LF9bbCsxNj4+''@;'; + put 'put ''M109dyxfW2wrNDA+PjNdPWIsX1tsKzI0Pj4zXT1iKX1mdW5jdGlvbiBLNShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLG18PTA7dmFyIFN0LEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50''@;'; + put 'put ''PTAsV2U9MCxvdD0wLGt0PTAsbHQ9MCxFdD0wLFp0PTAsY3Q9MDtpZihTdD1hZSxhZT1hZSsyMDh8MCxiZT1TdCsxOTJ8MCxnZT1TdCsxNzZ8MCxXZT1TdCszMnwwLFJlPVN0KzE2fDAsSGU9U3QsVmU9U3QrMTYwfDAscWU9U3QrMTQ0fDAsT2U9U3QrMTI4fDAsTGU9U3QrMTEyfDAsQT0yMTMw''@;'; + put 'put ''NzA2NDMyJihwfD0wKSw0MzYyMDc2MTY9PSgwfChudD0wPT0oOCZwfDApPzA9PSgwfEEpPzQ6QTo4KSkpIWZ1bmN0aW9uIExhZShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgbSxBLHcsYixrO209YWUsYWU9YWUrMTEyfDAsaz0yKitfWzgrKGN8PTApPj4zXSxhWyhBPW0pPj4yXT1hW2M+''@;'; + put 'put ''PjJdLGFbQSs0Pj4yXT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFbYys4Pj4yXSxhW0ErMTI+PjJdPWFbYysxMj4+Ml0sX1tBKzE2Pj4zXT0rX1tjKzE2Pj4zXSxfW0ErMjQ+PjNdPWstK19bYysyND4+M10sX1tBKzMyPj4zXT0rX1tjKzMyPj4zXSxfW0ErNDA+PjNdPWstK19bYys0MD4+M10sX1tB''@;'; + put 'put ''KzQ4Pj4zXT0rX1tjKzQ4Pj4zXSxfW0ErNTY+PjNdPWstK19bYys1Nj4+M10sX1tBKzY0Pj4zXT0rX1tjKzY0Pj4zXSxfW0ErNzI+PjNdPWstK19bYys3Mj4+M10sX1tBKzgwPj4zXT0rX1tjKzgwPj4zXSxfW0ErODg+PjNdPWstK19bYys4OD4+M10sYVsodz1BKzk2fDApPj4yXT1hWyhiPWMr''@;'; + put 'put ''OTZ8MCk+PjJdLGFbdys0Pj4yXT1hW2IrND4+Ml0sYVt3Kzg+PjJdPWFbYis4Pj4yXSxhW3crMTI+PjJdPWFbYisxMj4+Ml0sUWYobCxjLGYsMCwwLDI1NSZwKSxRZihsLEEsNywwLDAsMCksYWU9bX0obCxjLGYsbSk7ZWxzZXtmb3Iob3Q9MHx2cig2NCsoZjw8Nil8MCksRz1mKy0xfDAsSz1I''@;'; + put 'put ''ZSs4fDAscGU9UmUrOHwwLFI9MTIscD0wOyEoKDB8cCk+PSgwfGYpKTspYVtSZT4+Ml09YVsoRD1jKyhwPDw0KXwwKT4+Ml0sYVtSZSs0Pj4yXT1hW0QrND4+Ml0sYVtSZSs4Pj4yXT1hW0QrOD4+Ml0sYVtSZSsxMj4+Ml09YVtEKzEyPj4yXSwoMHxwKTwoMHxHKT8oYVtIZT4+Ml09YVsoRD1j''@;'; + put 'put ''KygocD1wKzF8MCk8PDQpfDApPj4yXSxhW0hlKzQ+PjJdPWFbRCs0Pj4yXSxhW0hlKzg+PjJdPWFbRCs4Pj4yXSxhW0hlKzEyPj4yXT1hW0QrMTI+PjJdKTooYVtIZT4+Ml09YVtjPj4yXSxhW0hlKzQ+PjJdPWFbYys0Pj4yXSxhW0hlKzg+PjJdPWFbYys4Pj4yXSxhW0hlKzEyPj4yXT1hW2Mr''@;'; + put 'put ''MTI+PjJdLHA9cCsxfDApLFI9UjwoTT0uMzMzMzMzMzMzMzMzMzMzMyorRDAoKygoa3Q9K19bSz4+M10tK19bcGU+PjNdKSprdCsoTT0rX1tIZT4+M10tK19bUmU+PjNdKSpNKSkpP1I6TTtmb3Ioaz04Mzg4NjA4MD09KDE2Nzc3MjE2fEEpLEQ9ND09KDB8bnQpLGI9MTY3NzcyMTY9PSgwfEEp''@;'; + put 'put ''LHA9MCx3PTA7ISgoMHx3KT49KDB8ZikpOylhW1JlPj4yXT1hWyhBPWMrKHc8PDQpfDApPj4yXSxhW1JlKzQ+PjJdPWFbQSs0Pj4yXSxhW1JlKzg+PjJdPWFbQSs4Pj4yXSxhW1JlKzEyPj4yXT1hW0ErMTI+PjJdLCgwfHcpPCgwfEcpPyhhW0hlPj4yXT1hWyhBPWMrKHcrMTw8NCl8MCk+PjJd''@;'; + put 'put ''LGFbSGUrND4+Ml09YVtBKzQ+PjJdLGFbSGUrOD4+Ml09YVtBKzg+PjJdLGFbSGUrMTI+PjJdPWFbQSsxMj4+Ml0pOihhW0hlPj4yXT1hW2M+PjJdLGFbSGUrND4+Ml09YVtjKzQ+PjJdLGFbSGUrOD4+Ml09YVtjKzg+PjJdLGFbSGUrMTI+PjJdPWFbYysxMj4+Ml0pLE09Ui8rRDAoKygoa3Q9''@;'; + put 'put ''K19bSz4+M10tK19bcGU+PjNdKSprdCsoTT0rX1tIZT4+M10tK19bUmU+PjNdKSpNKSksTT1rPy4zMzMzMzMzMzMzMzMzMzMzKk06Yj8uNSpNOk0sQT1vdCsocDw8NCl8MCxEPyhhW2dlPj4yXT1hW1JlPj4yXSxhW2dlKzQ+PjJdPWFbUmUrND4+Ml0sYVtnZSs4Pj4yXT1hW1JlKzg+PjJdLGFb''@;'; + put 'put ''Z2UrMTI+PjJdPWFbUmUrMTI+PjJdLGFbYmU+PjJdPWFbSGU+PjJdLGFbYmUrND4+Ml09YVtIZSs0Pj4yXSxhW2JlKzg+PjJdPWFbSGUrOD4+Ml0sYVtiZSsxMj4+Ml09YVtIZSsxMj4+Ml0sWUkoVmUsLjUqTSxnZSxiZSksYVtBPj4yXT1hW1ZlPj4yXSxhW0ErND4+Ml09YVtWZSs0Pj4yXSxh''@;'; + put 'put ''W0ErOD4+Ml09YVtWZSs4Pj4yXSxhW0ErMTI+PjJdPWFbVmUrMTI+PjJdKTooYVtBPj4yXT1hW1JlPj4yXSxhW0ErND4+Ml09YVtSZSs0Pj4yXSxhW0ErOD4+Ml09YVtSZSs4Pj4yXSxhW0ErMTI+PjJdPWFbUmUrMTI+PjJdKSxBPW90KyhwKzE8PDQpfDAsYVtnZT4+Ml09YVtSZT4+Ml0sYVtn''@;'; + put 'put ''ZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbZ2UrOD4+Ml09YVtSZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW1JlKzEyPj4yXSxhW2JlPj4yXT1hW0hlPj4yXSxhW2JlKzQ+PjJdPWFbSGUrND4+Ml0sYVtiZSs4Pj4yXT1hW0hlKzg+PjJdLGFbYmUrMTI+PjJdPWFbSGUrMTI+PjJdLFlJKHFlLE0sZ2UsYmUp''@;'; + put 'put ''LGFbQT4+Ml09YVtxZT4+Ml0sYVtBKzQ+PjJdPWFbcWUrND4+Ml0sYVtBKzg+PjJdPWFbcWUrOD4+Ml0sYVtBKzEyPj4yXT1hW3FlKzEyPj4yXSxBPXArM3wwLGx0PW90KyhwKzI8PDQpfDAsYVtnZT4+Ml09YVtSZT4+Ml0sYVtnZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbZ2UrOD4+Ml09YVtSZSs4''@;'; + put 'put ''Pj4yXSxhW2dlKzEyPj4yXT1hW1JlKzEyPj4yXSxhW2JlPj4yXT1hW0hlPj4yXSxhW2JlKzQ+PjJdPWFbSGUrND4+Ml0sYVtiZSs4Pj4yXT1hW0hlKzg+PjJdLGFbYmUrMTI+PjJdPWFbSGUrMTI+PjJdLFlJKE9lLDEtTSxnZSxiZSksYVtsdD4+Ml09YVtPZT4+Ml0sYVtsdCs0Pj4yXT1hW09l''@;'; + put 'put ''KzQ+PjJdLGFbbHQrOD4+Ml09YVtPZSs4Pj4yXSxhW2x0KzEyPj4yXT1hW09lKzEyPj4yXSxEPyhsdD1vdCsoQTw8NCl8MCxhW2dlPj4yXT1hW1JlPj4yXSxhW2dlKzQ+PjJdPWFbUmUrND4+Ml0sYVtnZSs4Pj4yXT1hW1JlKzg+PjJdLGFbZ2UrMTI+PjJdPWFbUmUrMTI+PjJdLGFbYmU+PjJd''@;'; + put 'put ''PWFbSGU+PjJdLGFbYmUrND4+Ml09YVtIZSs0Pj4yXSxhW2JlKzg+PjJdPWFbSGUrOD4+Ml0sYVtiZSsxMj4+Ml09YVtIZSsxMj4+Ml0sWUkoTGUsMS0uNSpNLGdlLGJlKSxhW2x0Pj4yXT1hW0xlPj4yXSxhW2x0KzQ+PjJdPWFbTGUrND4+Ml0sYVtsdCs4Pj4yXT1hW0xlKzg+PjJdLGFbbHQr''@;'; + put 'put ''MTI+PjJdPWFbTGUrMTI+PjJdLHA9cCs0fDApOnA9QSx3PXcrMXwwO2FbKGs9b3QrKHA8PDQpfDApPj4yXT1hW290Pj4yXSxhW2srND4+Ml09YVtvdCs0Pj4yXSxhW2srOD4+Ml09YVtvdCs4Pj4yXSxhW2srMTI+PjJdPWFbb3QrMTI+PjJdLGFbKGs9b3QrKHArMTw8NCl8MCk+PjJdPWFbKGI9''@;'; + put 'put ''b3QrMTZ8MCk+PjJdLGFbays0Pj4yXT1hW2IrND4+Ml0sYVtrKzg+PjJdPWFbYis4Pj4yXSxhW2srMTI+PjJdPWFbYisxMj4+Ml0sYVsocD1vdCsocCsyPDw0KXwwKT4+Ml09YVsoaz1vdCszMnwwKT4+Ml0sYVtwKzQ+PjJdPWFbays0Pj4yXSxhW3ArOD4+Ml09YVtrKzg+PjJdLGFbcCsxMj4+''@;'; + put 'put ''Ml09YVtrKzEyPj4yXSxwPTIxNDc0ODM2NDcmbnQ7ZTpkb3tpZigoMHxwKTwyMDEzMjY1OTIpe2lmKCgwfHApPj04Mzg4NjA4MCl7aWYoKDB8cCk8MTM0MjE3NzI4KXtpZigoMHxwKTwxMDA2NjMyOTYpe2lmKDgzODg2MDgwIT0oMHxwKSlicmVhayBlO2lmKDQ9PSgwfGYpKXtsdD0wfHZyKDE5''@;'; + put 'put ''MiksYVtsdD4+Ml09YVtjPj4yXSxhW2x0KzQ+PjJdPWFbYys0Pj4yXSxhW2x0Kzg+PjJdPWFbYys4Pj4yXSxhW2x0KzEyPj4yXT1hW2MrMTI+PjJdLGFbKEc9bHQrMTZ8MCk+PjJdPWFbKGJlPWMrMTZ8MCk+PjJdLGFbRys0Pj4yXT1hW2JlKzQ+PjJdLGFbRys4Pj4yXT1hW2JlKzg+PjJdLGFb''@;'; + put 'put ''RysxMj4+Ml09YVtiZSsxMj4+Ml0sRz1vdCs0OHwwLF9bKEQ9bHQrMzJ8MCk+PjNdPVI9K19bKGJlPW90KzY0fDApPj4zXSxLPW90KzU2fDAsX1socWU9bHQrNDB8MCk+PjNdPUV0PStfWyhwZT1vdCs3MnwwKT4+M10sX1soT2U9bHQrNDh8MCk+PjNdPWt0PStfW0c+PjNdK1ItK19baz4+M10s''@;'; + put 'put ''X1soSGU9bHQrNTZ8MCk+PjNdPWN0PStfW0s+PjNdK0V0LStfW290KzQwPj4zXSxadD0rX1tiZT4+M10ra3QtK19bRz4+M10sX1soRz1sdCs2NHwwKT4+M109WnQsTT0rX1twZT4+M10rY3QtK19bSz4+M10sX1soSz1sdCs3MnwwKT4+M109TSxfWyhwZT1sdCs4MHwwKT4+M109UitadC1rdCxf''@;'; + put 'put ''W2x0Kzg4Pj4zXT1FdCtNLWN0LGJlPW90Kzk2fDAsX1soZj1sdCsxNDR8MCk+PjNdPWN0PStfWyhMZT1vdCs4MHwwKT4+M10sUmU9b3QrMTA0fDAsX1tsdCsxNTI+PjNdPU09K19bKGdlPW90Kzg4fDApPj4zXSxfWyhWZT1sdCsxMjh8MCk+PjNdPUV0PStfW2JlPj4zXStjdC0rX1tvdCsxMTI+''@;'; + put 'put ''PjNdLF9bKG50PWx0KzEzNnwwKT4+M109a3Q9K19bUmU+PjNdK00tK19bb3QrMTIwPj4zXSxadD0rX1tMZT4+M10rRXQtK19bYmU+PjNdLF9bKGJlPWx0KzExMnwwKT4+M109WnQsUj0rX1tnZT4+M10ra3QtK19bUmU+PjNdLF9bKFJlPWx0KzEyMHwwKT4+M109UixfWyhnZT1sdCs5NnwwKT4+''@;'; + put 'put ''M109Y3QrWnQtRXQsX1soTGU9bHQrMTA0fDApPj4zXT1NK1Ita3QsYVsoaz1sdCsxNjB8MCk+PjJdPWFbKGI9YyszMnwwKT4+Ml0sYVtrKzQ+PjJdPWFbYis0Pj4yXSxhW2srOD4+Ml09YVtiKzg+PjJdLGFbaysxMj4+Ml09YVtiKzEyPj4yXSxhWyhrPWx0KzE3NnwwKT4+Ml09YVsoYz1jKzQ4''@;'; + put 'put ''fDApPj4yXSxhW2srND4+Ml09YVtjKzQ+PjJdLGFbays4Pj4yXT1hW2MrOD4+Ml0sYVtrKzEyPj4yXT1hW2MrMTI+PjJdLGthKGwsbHQsMTIsbSksYVtXZT4+Ml09YVtEPj4yXSxhW1dlKzQ+PjJdPWFbRCs0Pj4yXSxhW1dlKzg+PjJdPWFbRCs4Pj4yXSxhW1dlKzEyPj4yXT1hW0QrMTI+PjJd''@;'; + put 'put ''LFI9K19bT2U+PjNdLF9bKE9lPVdlKzE2fDApPj4zXT1rdD0oa3Q9K19bRD4+M10pK2t0LVIsRXQ9K19bSGU+PjNdLF9bKEhlPVdlKzI0fDApPj4zXT1NPShNPStfW3FlPj4zXSkrTS1FdCxfWyhxZT1XZSszMnwwKT4+M109K19bRz4+M10ra3QtUixfWyhjPVdlKzQwfDApPj4zXT0rX1tLPj4z''@;'; + put 'put ''XStNLUV0LGFbKG09V2UrNDh8MCk+PjJdPWFbcGU+PjJdLGFbbSs0Pj4yXT1hW3BlKzQ+PjJdLGFbbSs4Pj4yXT1hW3BlKzg+PjJdLGFbbSsxMj4+Ml09YVtwZSsxMj4+Ml0sV28obCxXZSw0KSxhW1dlPj4yXT1hW2dlPj4yXSxhW1dlKzQ+PjJdPWFbZ2UrND4+Ml0sYVtXZSs4Pj4yXT1hW2dl''@;'; + put 'put ''Kzg+PjJdLGFbV2UrMTI+PjJdPWFbZ2UrMTI+PjJdLEV0PStfW2dlPj4zXSxfW09lPj4zXT1FdC09KE09K19bYmU+PjNdKS1FdCxSPStfW0xlPj4zXSxfW0hlPj4zXT1SLT0oa3Q9K19bUmU+PjNdKS1SLF9bcWU+PjNdPStfW1ZlPj4zXStFdC1NLF9bYz4+M109K19bbnQ+PjNdK1Ita3QsYVtt''@;'; + put 'put ''Pj4yXT1hW2Y+PjJdLGFbbSs0Pj4yXT1hW2YrND4+Ml0sYVttKzg+PjJdPWFbZis4Pj4yXSxhW20rMTI+PjJdPWFbZisxMj4+Ml0sV28obCxXZSw0KSxGdChsdCk7YnJlYWt9UHIoMTA1NDM4LDEwNTQ0OSw3MzcsMTA1NDU4KX1pZigoMHxwKTwxMTc0NDA1MTIpe2lmKDEwMDY2MzI5NiE9KDB8''@;'; + put 'put ''cCkpYnJlYWsgZTtsdD0wfHZyKChWZT1mKzV8MCk8PDQpLF9bbHQ+PjNdPUV0PS42MjUqKCtfW2M+PjNdLShFdD0rX1socWU9YysxNnwwKT4+M10pKStFdCxMZT1vdCs0OHwwLF9bbHQrOD4+M109Y3Q9LjUqKCtfWyhmPWMrMjR8MCk+PjNdLShjdD0rX1sobnQ9Yys0MHwwKT4+M10pKStjdCsx''@;'; + put 'put ''LjUqKCtfWyhSZT1vdCs1NnwwKT4+M10tK19bKEhlPW90KzcyfDApPj4zXSksX1tsdCsxNj4+M109WnQ9LjI1KigrX1tjPj4zXS0oWnQ9K19bcWU+PjNdKSkrWnQsX1tsdCsyND4+M109Y3QsX1tsdCszMj4+M109WnQsX1tsdCs0MD4+M109LjUqKCtfW2Y+PjNdLShrdD0rX1tudD4+M10pKStr''@;'; + put 'put ''dCxfW2x0KzQ4Pj4zXT1adD0uNSooK19baz4+M10tK19bTGU+PjNdKStadCxfW2x0KzU2Pj4zXT0uNSooK19bZj4+M10tKGt0PStfW250Pj4zXSkpK2t0LF9bbHQrNjQ+PjNdPVp0LF9bbHQrNzI+PjNdPVp0PS41KigrX1tmPj4zXS0oWnQ9K19bbnQ+PjNdKSkrWnQrKCtfW1JlPj4zXS0rX1tI''@;'; + put 'put ''ZT4+M10pLF9bbHQrODA+PjNdPUV0LF9bbHQrODg+PjNdPVp0LF9bbHQrOTY+PjNdPUV0LF9bbHQrMTA0Pj4zXT1adC09LjI1KigrX1tSZT4+M10tK19bSGU+PjNdKSxfW2x0KzExMj4+M109K19baz4+M10rRXQtK19bTGU+PjNdLF9bbHQrMTIwPj4zXT0uNSooK19bUmU+PjNdLStfW0hlPj4z''@;'; + put 'put ''XSkrWnQsX1tsdCsxMjg+PjNdPStfW2x0Pj4zXSxfW2x0KzEzNj4+M109LjI1KigrX1tSZT4+M10tK19bSGU+PjNdKStjdCxrYShsLGx0LFZlLG0pLF9bV2U+PjNdPStfW3FlPj4zXSxfW1dlKzg+PjNdPS41KigrX1tmPj4zXS0oY3Q9K19bbnQ+PjNdKSkrY3QsX1tXZSsxNj4+M109K19bYz4+''@;'; + put 'put ''M10sX1tXZSsyND4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQobHQpO2JyZWFrfWlmKDExNzQ0MDUxMiE9KDB8cCkpYnJlYWsgZTtsdD0wfHZyKChmPWYrMXwwKTw8NCksX1tsdD4+M109K19bYj4+M10sX1tsdCs4Pj4zXT0rX1tvdCsyND4+M10tLjUq''@;'; + put 'put ''KCtfWyhxZT1vdCs1NnwwKT4+M10tK19bKG50PW90KzcyfDApPj4zXSksX1tsdCsxNj4+M109K19bb3QrNDg+PjNdLF9bbHQrMjQ+PjNdPShjdD0rX1txZT4+M10pLS41KihjdC0rX1tudD4+M10pLF9bbHQrMzI+PjNdPStfW2MrMzI+PjNdLF9bbHQrNDA+PjNdPS41KigrX1txZT4+M10tK19b''@;'; + put 'put ''bnQ+PjNdKSsgK19bKFdlPWMrNDB8MCk+PjNdLF9bbHQrNDg+PjNdPStfW2I+PjNdLF9bbHQrNTY+PjNdPS41KigrX1txZT4+M10tK19bbnQ+PjNdKSsgK19bV2U+PjNdLF9bbHQrNzI+PjNdPShjdD0rX1tjKzg+PjNdKS0uNSooY3QtK19bYys1Nj4+M10pLF9bbHQrNjQ+PjNdPStfW2M+PjNd''@;'; + put 'put ''LGthKGwsbHQsZixtKSxGdChsdCk7YnJlYWt9aWYoKDB8cCk8MTY3NzcyMTYwKXtpZigoMHxwKTwxNTA5OTQ5NDQpe2lmKDEzNDIxNzcyOCE9KDB8cCkpYnJlYWsgZTtsdD0wfHZyKChWZT1mKzR8MCk8PDQpLF9bbHQ+PjNdPWt0PS41KigrX1tjPj4zXS0oa3Q9K19bKHFlPWMrMTZ8MCk+PjNd''@;'; + put 'put ''KSkra3QrLjI1KigrX1trPj4zXS0rX1soSGU9b3QrNDh8MCk+PjNdKSxfW2x0Kzg+PjNdPWN0PS41KigrX1soZj1jKzI0fDApPj4zXS0oY3Q9K19bKG50PWMrNDB8MCk+PjNdKSkrY3QsX1tsdCsxNj4+M109a3QsX1tsdCsyND4+M109RXQ9LjUqKCtfWyhMZT1vdCs1NnwwKT4+M10tK19bKFJl''@;'; + put 'put ''PW90KzcyfDApPj4zXSkrY3QsX1tsdCszMj4+M109a3Q9LjUqKCtfW2s+PjNdLStfW0hlPj4zXSkra3QsX1tsdCs0MD4+M109RXQsX1tsdCs0OD4+M109a3QsX1tsdCs1Nj4+M109a3Q9LjUqKCtfW0xlPj4zXS0rX1tSZT4+M10pK0V0LF9bbHQrNjQ+PjNdPVp0PS41KigrX1tjPj4zXS0oWnQ9''@;'; + put 'put ''K19bcWU+PjNdKSkrWnQrLS43NSooK19baz4+M10tK19bSGU+PjNdKSxfW2x0KzcyPj4zXT1rdCxfW2x0KzgwPj4zXT1adCxfW2x0Kzg4Pj4zXT1FdCxfW2x0Kzk2Pj4zXT1adD0uNSooK19bYz4+M10tKFp0PStfW3FlPj4zXSkpK1p0Ky0uMjUqKCtfW2s+PjNdLStfW0hlPj4zXSksX1tsdCsx''@;'; + put 'put ''MDQ+PjNdPUV0LF9bbHQrMTEyPj4zXT1adCxfW2x0KzEyMD4+M109Y3Qsa2EobCxsdCxWZSxtKSxfW1dlPj4zXT0rX1txZT4+M10sX1tXZSs4Pj4zXT0uNSooK19bZj4+M10tKGN0PStfW250Pj4zXSkpK2N0LF9bV2UrMTY+PjNdPStfW2M+PjNdLF9bV2UrMjQ+PjNdPS41KigrX1tjKzg+PjNd''@;'; + put 'put ''LStfW2MrNTY+PjNdKStjdCxXbyhsLFdlLDIpLEZ0KGx0KTticmVha31pZigxNTA5OTQ5NDQhPSgwfHApKWJyZWFrIGU7bHQ9MHx2cigoVmU9ZisyfDApPDw0KSxfW2x0Pj4zXT1FdD0uNSooK19bYz4+M10tKEV0PStfWyhxZT1jKzE2fDApPj4zXSkpK0V0Ky43NSooK19baz4+M10tK19bKEhl''@;'; + put 'put ''PW90KzQ4fDApPj4zXSksX1tsdCs4Pj4zXT1jdD0uNSooK19bKGY9YysyNHwwKT4+M10tKGN0PStfWyhudD1jKzQwfDApPj4zXSkpK2N0LF9bbHQrMTY+PjNdPUV0LF9bbHQrMjQ+PjNdPUV0PS4yNSooK19bKExlPW90KzU2fDApPj4zXS0rX1soUmU9b3QrNzJ8MCk+PjNdKStjdCxfW2x0KzMy''@;'; + put 'put ''Pj4zXT0uNSooK19bYz4+M10tKFp0PStfW3FlPj4zXSkpK1p0Ky4yNSooK19baz4+M10tK19bSGU+PjNdKSxfW2x0KzQwPj4zXT1adD0uNSooK19bTGU+PjNdLStfW1JlPj4zXSkrRXQsX1tsdCs0OD4+M109LjUqKCtfW2M+PjNdLShrdD0rX1txZT4+M10pKStrdCstLjI1KigrX1trPj4zXS0r''@;'; + put 'put ''X1tIZT4+M10pLF9bbHQrNTY+PjNdPVp0LF9bbHQrNjQ+PjNdPVp0PS41KigrX1tjPj4zXS0oWnQ9K19bcWU+PjNdKSkrWnQrLS43NSooK19baz4+M10tK19bSGU+PjNdKSxfW2x0KzcyPj4zXT1FdCxfW2x0KzgwPj4zXT1adCxfW2x0Kzg4Pj4zXT1jdCxrYShsLGx0LFZlLG0pLF9bV2U+PjNd''@;'; + put 'put ''PStfW3FlPj4zXSxfW1dlKzg+PjNdPS41KigrX1tmPj4zXS0oY3Q9K19bbnQ+PjNdKSkrY3QsX1tXZSsxNj4+M109K19bYz4+M10sX1tXZSsyND4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQobHQpO2JyZWFrfWlmKCgwfHApPDE4NDU0OTM3Nil7aWYo''@;'; + put 'put ''MTY3NzcyMTYwIT0oMHxwKSlicmVhayBlO2x0PTB8dnIoKFZlPWYrMXwwKTw8NCksX1tsdD4+M109RXQ9K19baz4+M10rKEV0PStfWyhxZT1jKzE2fDApPj4zXSkrLjUqKCtfW2M+PjNdLUV0KS0rX1soTGU9b3QrNDh8MCk+PjNdLF9bbHQrOD4+M109Y3Q9LjUqKCtfWyhmPWMrMjR8MCk+PjNd''@;'; + put 'put ''LShjdD0rX1sobnQ9Yys0MHwwKT4+M10pKStjdCsuMjUqKCtfWyhSZT1vdCs1NnwwKT4+M10tK19bKEhlPW90KzcyfDApPj4zXSksX1tsdCsxNj4+M109RXQ9RXQtK19baz4+M10rICtfW0xlPj4zXSxfW2x0KzI0Pj4zXT0rX1tSZT4+M10rY3QtK19bSGU+PjNdLF9bbHQrMzI+PjNdPUV0LF9b''@;'; + put 'put ''bHQrNDA+PjNdPUV0PS41KigrX1tSZT4+M10tK19bSGU+PjNdKStjdCxfW2x0KzQ4Pj4zXT1adD0uMjUqKCtfW2M+PjNdLShadD0rX1txZT4+M10pKStadCxfW2x0KzU2Pj4zXT1FdCxfW2x0KzY0Pj4zXT1adCxfW2x0KzcyPj4zXT1jdCxrYShsLGx0LFZlLG0pLF9bV2U+PjNdPStfW3FlPj4z''@;'; + put 'put ''XSxfW1dlKzg+PjNdPS41KigrX1tmPj4zXS0oY3Q9K19bbnQ+PjNdKSkrY3QsX1tXZSsxNj4+M109K19bYz4+M10sX1tXZSsyND4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQobHQpO2JyZWFrfWlmKDE4NDU0OTM3NiE9KDB8cCkpYnJlYWsgZTtsdD0w''@;'; + put 'put ''fHZyKChxZT1mKzR8MCk8PDQpLF9bbHQ+PjNdPVp0PS4xMjUqKFp0PStfW2M+PjNdLShFdD0rX1soVmU9YysxNnwwKT4+M10pKStFdCsuNSooK19baz4+M10tK19bKE9lPW90KzQ4fDApPj4zXStadCksX1tsdCs4Pj4zXT1FdD0uNSooK19bKEhlPWMrMjR8MCk+PjNdLShFdD0rX1soUmU9Yys0''@;'; + put 'put ''MHwwKT4+M10pKStFdCsuMjUqKCtfWyhmPW90KzU2fDApPj4zXS0rX1soTGU9b3QrNzJ8MCk+PjNdKSxfW2x0KzE2Pj4zXT1jdD0uMzc1KigrX1tjPj4zXS0oY3Q9K19bVmU+PjNdKSkrY3QsX1tsdCsyND4+M109RXQsX1tsdCszMj4+M109Y3QsX1tsdCs0MD4+M109RXQ9LjUqKCtfW2Y+PjNd''@;'; + put 'put ''LStfW0xlPj4zXSkrRXQsX1tsdCs0OD4+M109Y3QtPS41KigrX1trPj4zXS0rX1tPZT4+M10pLF9bbHQrNTY+PjNdPUV0LF9bKG50PWx0KzY0fDApPj4zXT1jdCxfW2x0KzcyPj4zXT1jdD0uNSooK19bSGU+PjNdLShjdD0rX1tSZT4+M10pKStjdCstLjI1KigrX1tmPj4zXS0rX1tMZT4+M10p''@;'; + put 'put ''LF9bbHQrODA+PjNdPUV0PVp0LS41KigrX1trPj4zXS0rX1tPZT4+M10pLF9bbHQrODg+PjNdPWN0LF9bbHQrOTY+PjNdPUV0LF9bbHQrMTA0Pj4zXT1jdC09LjUqKCtfW2Y+PjNdLStfW0xlPj4zXSksX1soTGU9bHQrMTEyfDApPj4zXT1adCxfW2x0KzEyMD4+M109Y3Qsa2EobCxsdCxxZSxt''@;'; + put 'put ''KSxfW1dlPj4zXT0rX1tWZT4+M10sX1soVmU9V2UrOHwwKT4+M109LjUqKCtfW0hlPj4zXS0oY3Q9K19bUmU+PjNdKSkrY3QsX1socWU9V2UrMTZ8MCk+PjNdPStfW250Pj4zXSxfWyhtPVdlKzI0fDApPj4zXT0uNSooK19bKG50PWMrOHwwKT4+M10tK19bKGY9Yys1NnwwKT4+M10pK2N0LFdv''@;'; + put 'put ''KGwsV2UsMiksX1tXZT4+M109K19bTGU+PjNdLF9bVmU+PjNdPS41KigrX1tIZT4+M10tKGN0PStfW1JlPj4zXSkpK2N0LF9bcWU+PjNdPStfW2M+PjNdLF9bbT4+M109LjUqKCtfW250Pj4zXS0rX1tmPj4zXSkrY3QsV28obCxXZSwyKSxGdChsdCk7YnJlYWt9aWYoKDB8cCk8MzM1NTQ0MzIp''@;'; + put 'put ''e2lmKCgwfHApPDgpe2lmKDQhPSgwfHApKWJyZWFrIGU7Zm9yKHc9MHxRbigzMisoOTYqZnwwKXwwKSxwPTAsQT0wO2I9MXxBLGs9dysoQTw8NCl8MCwhKCgwfHApPj0oMHxmKSk7KWFbaz4+Ml09YVsobHQ9b3QrKChjPXA8PDIpPDw0KXwwKT4+Ml0sYVtrKzQ+PjJdPWFbbHQrND4+Ml0sYVtr''@;'; + put 'put ''Kzg+PjJdPWFbbHQrOD4+Ml0sYVtrKzEyPj4yXT1hW2x0KzEyPj4yXSxhWyhsdD13KyhiPDw0KXwwKT4+Ml09YVsoV2U9b3QrKCgxfGMpPDw0KXwwKT4+Ml0sYVtsdCs0Pj4yXT1hW1dlKzQ+PjJdLGFbbHQrOD4+Ml09YVtXZSs4Pj4yXSxhW2x0KzEyPj4yXT1hW1dlKzEyPj4yXSxhWyhsdD13''@;'; + put 'put ''KyhBKzI8PDQpfDApPj4yXT1hW1dlPj4yXSxhW2x0KzQ+PjJdPWFbV2UrND4+Ml0sYVtsdCs4Pj4yXT1hW1dlKzg+PjJdLGFbbHQrMTI+PjJdPWFbV2UrMTI+PjJdLGFbKGx0PXcrKEErMzw8NCl8MCk+PjJdPWFbKFdlPW90KygoMnxjKTw8NCl8MCk+PjJdLGFbbHQrND4+Ml09YVtXZSs0Pj4y''@;'; + put 'put ''XSxhW2x0Kzg+PjJdPWFbV2UrOD4+Ml0sYVtsdCsxMj4+Ml09YVtXZSsxMj4+Ml0sYVsobHQ9dysoQSs0PDw0KXwwKT4+Ml09YVtXZT4+Ml0sYVtsdCs0Pj4yXT1hW1dlKzQ+PjJdLGFbbHQrOD4+Ml09YVtXZSs4Pj4yXSxhW2x0KzEyPj4yXT1hW1dlKzEyPj4yXSxhWyhsdD13KyhBKzU8PDQp''@;'; + put 'put ''fDApPj4yXT1hWyhjPW90KygoM3xjKTw8NCl8MCk+PjJdLGFbbHQrND4+Ml09YVtjKzQ+PjJdLGFbbHQrOD4+Ml09YVtjKzg+PjJdLGFbbHQrMTI+PjJdPWFbYysxMj4+Ml0scD1wKzF8MCxBPUErNnwwO2Fbaz4+Ml09YVt3Pj4yXSxhW2srND4+Ml09YVt3KzQ+PjJdLGFbays4Pj4yXT1hW3cr''@;'; + put 'put ''OD4+Ml0sYVtrKzEyPj4yXT1hW3crMTI+PjJdLGFbKGY9dysoYjw8NCl8MCk+PjJdPWFbKGx0PXcrMTZ8MCk+PjJdLGFbZis0Pj4yXT1hW2x0KzQ+PjJdLGFbZis4Pj4yXT1hW2x0Kzg+PjJdLGFbZisxMj4+Ml09YVtsdCsxMj4+Ml0sUWYobCxsdCxiLDAsMCwyNTUmbSksRnQodyk7YnJlYWt9''@;'; + put 'put ''aWYoKDB8cCk8MTY3NzcyMTYpe2lmKDghPSgwfHApKWJyZWFrIGU7Zm9yKGthKGwsYyxmLG0pLEE9V2UrMTZ8MCxwPTA7Oyl7aWYoKDB8cCk+PSgwfGYpKWJyZWFrIGU7YVtXZT4+Ml09YVsobT1vdCsoMisobHQ9MypwfDApPDw0KXwwKT4+Ml0sYVtXZSs0Pj4yXT1hW20rND4+Ml0sYVtXZSs4''@;'; + put 'put ''Pj4yXT1hW20rOD4+Ml0sYVtXZSsxMj4+Ml09YVttKzEyPj4yXSxhW0E+PjJdPWFbKGx0PW90KyhsdCs0PDw0KXwwKT4+Ml0sYVtBKzQ+PjJdPWFbbHQrND4+Ml0sYVtBKzg+PjJdPWFbbHQrOD4+Ml0sYVtBKzEyPj4yXT1hW2x0KzEyPj4yXSxXbyhsLFdlLDIpLHA9cCsxfDB9fWlmKDE2Nzc3''@;'; + put 'put ''MjE2IT0oMHxwKSlicmVhayBlO2Zvcih3PTB8dnIoKEE9ZisxfDApPDw0KSxwPTE7ISgoMHxwKT49KDB8ZikpOylhWyhsdD13KyhwPDw0KXwwKT4+Ml09YVsobnQ9YysocDw8NCl8MCk+PjJdLGFbbHQrND4+Ml09YVtudCs0Pj4yXSxhW2x0Kzg+PjJdPWFbbnQrOD4+Ml0sYVtsdCsxMj4+Ml09''@;'; + put 'put ''YVtudCsxMj4+Ml0scD1wKzF8MDthW3c+PjJdPWFbKG50PW90KygxKyhjPTMqZnwwKTw8NCl8MCk+PjJdLGFbdys0Pj4yXT1hW250KzQ+PjJdLGFbdys4Pj4yXT1hW250Kzg+PjJdLGFbdysxMj4+Ml09YVtudCsxMj4+Ml0sYVsoZj13KyhmPDw0KXwwKT4+Ml09YVsobHQ9b3QrKGMrLTE8PDQp''@;'; + put 'put ''fDApPj4yXSxhW2YrND4+Ml09YVtsdCs0Pj4yXSxhW2YrOD4+Ml09YVtsdCs4Pj4yXSxhW2YrMTI+PjJdPWFbbHQrMTI+PjJdLGthKGwsdyxBLG0pLEZ0KHcpLGFbV2U+PjJdPWFbbHQ+PjJdLGFbV2UrND4+Ml09YVtsdCs0Pj4yXSxhW1dlKzg+PjJdPWFbbHQrOD4+Ml0sYVtXZSsxMj4+Ml09''@;'; + put 'put ''YVtsdCsxMj4+Ml0sYVsobHQ9V2UrMTZ8MCk+PjJdPWFbbnQ+PjJdLGFbbHQrND4+Ml09YVtudCs0Pj4yXSxhW2x0Kzg+PjJdPWFbbnQrOD4+Ml0sYVtsdCsxMj4+Ml09YVtudCsxMj4+Ml0sX1sobT1XZSszMnwwKT4+M109K19bV2U+PjNdKyArX1tsdD4+M10tK19bb3QrKGM8PDQpPj4zXSxf''@;'; + put 'put ''W1dlKzQwPj4zXT0rX1tXZSs4Pj4zXSsgK19bV2UrMjQ+PjNdLStfW290KyhjPDw0KSs4Pj4zXSxXbyhsLGx0LDIpLGFbbHQ+PjJdPWFbbT4+Ml0sYVtsdCs0Pj4yXT1hW20rND4+Ml0sYVtsdCs4Pj4yXT1hW20rOD4+Ml0sYVtsdCsxMj4+Ml09YVttKzEyPj4yXSxXbyhsLFdlLDIpO2JyZWFr''@;'; + put 'put ''fWlmKCgwfHApPDUwMzMxNjQ4KXtpZigzMzU1NDQzMiE9KDB8cCkpYnJlYWsgZTtmb3Iodz0wfHZyKChBPWYrMnwwKTw8NCksYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sYVsoYj13KzE2fDApPj4y''@;'; + put 'put ''XT1hW2s+PjJdLGFbYis0Pj4yXT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4yXSxhW2IrMTI+PjJdPWFbaysxMj4+Ml0sX1t3KzMyPj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooK19bKGI9b3QrNDh8MCk+PjNdLStfWyhmPW90KzY0fDApPj4zXSkrICtfW2s+PjNdLF9bdys0MD4+M109LjMz''@;'; + put 'put ''MzMzMzMzMzMzMzMzMzMqKCtfWyhsdD1vdCs1NnwwKT4+M10tK19bKHA9b3QrNzJ8MCk+PjNdKSsgK19bb3QrNDA+PjNdLF9bdys0OD4+M109LjMzMzMzMzMzMzMzMzMzMzMqKChjdD0rX1tiPj4zXSktK19bZj4+M10pK2N0LF9bdys1Nj4+M109LjMzMzMzMzMzMzMzMzMzMzMqKChjdD0rX1ts''@;'; + put 'put ''dD4+M10pLStfW3A+PjNdKStjdCxwPTQ7ISgoMHxwKT49KDB8QSkpOylhWyhsdD13KyhwPDw0KXwwKT4+Ml09YVsoZj1jKyhwKy0yPDw0KXwwKT4+Ml0sYVtsdCs0Pj4yXT1hW2YrND4+Ml0sYVtsdCs4Pj4yXT1hW2YrOD4+Ml0sYVtsdCsxMj4+Ml09YVtmKzEyPj4yXSxwPXArMXwwO2thKGws''@;'; + put 'put ''dyxBLG0pLEZ0KHcpLGFbV2U+PjJdPWFbYj4+Ml0sYVtXZSs0Pj4yXT1hW2IrND4+Ml0sYVtXZSs4Pj4yXT1hW2IrOD4+Ml0sYVtXZSsxMj4+Ml09YVtiKzEyPj4yXSxhWyhsdD1XZSsxNnwwKT4+Ml09YVtrPj4yXSxhW2x0KzQ+PjJdPWFbays0Pj4yXSxhW2x0Kzg+PjJdPWFbays4Pj4yXSxh''@;'; + put 'put ''W2x0KzEyPj4yXT1hW2srMTI+PjJdLFdvKGwsV2UsMik7YnJlYWt9aWYoKDB8cCk+PTY3MTA4ODY0KXtpZig2NzEwODg2NCE9KDB8cCkpYnJlYWsgZTtpZig0PT0oMHxmKSl7bHQ9MHx2cig5NiksYVtsdD4+Ml09YVtjPj4yXSxhW2x0KzQ+PjJdPWFbYys0Pj4yXSxhW2x0Kzg+PjJdPWFbYys4''@;'; + put 'put ''Pj4yXSxhW2x0KzEyPj4yXT1hW2MrMTI+PjJdLGFbKGY9bHQrMTZ8MCk+PjJdPWFbaz4+Ml0sYVtmKzQ+PjJdPWFbays0Pj4yXSxhW2YrOD4+Ml09YVtrKzg+PjJdLGFbZisxMj4+Ml09YVtrKzEyPj4yXSxhWyhmPWx0KzMyfDApPj4yXT1hWyhudD1vdCs2NHwwKT4+Ml0sYVtmKzQ+PjJdPWFb''@;'; + put 'put ''bnQrND4+Ml0sYVtmKzg+PjJdPWFbbnQrOD4+Ml0sYVtmKzEyPj4yXT1hW250KzEyPj4yXSxhWyhmPWx0KzQ4fDApPj4yXT1hWyhjPWMrMzJ8MCk+PjJdLGFbZis0Pj4yXT1hW2MrND4+Ml0sYVtmKzg+PjJdPWFbYys4Pj4yXSxhW2YrMTI+PjJdPWFbYysxMj4+Ml0sYVsoYz1sdCs2NHwwKT4+''@;'; + put 'put ''Ml09YVsoZj1vdCsxMjh8MCk+PjJdLGFbYys0Pj4yXT1hW2YrND4+Ml0sYVtjKzg+PjJdPWFbZis4Pj4yXSxhW2MrMTI+PjJdPWFbZisxMj4+Ml0sYVsoYz1sdCs4MHwwKT4+Ml09YVsocWU9b3QrMTYwfDApPj4yXSxhW2MrND4+Ml09YVtxZSs0Pj4yXSxhW2MrOD4+Ml09YVtxZSs4Pj4yXSxh''@;'; + put 'put ''W2MrMTI+PjJdPWFbcWUrMTI+PjJdLGthKGwsbHQsNixtKSxGdChsdCksX1tXZT4+M109K19bb3QrMTc2Pj4zXSsgK19bYj4+M10tK19bb3Q+PjNdLF9bV2UrOD4+M109K19bb3QrMTg0Pj4zXSsgK19bb3QrMjQ+PjNdLStfW290Kzg+PjNdLGFbKGx0PVdlKzE2fDApPj4yXT1hW250Pj4yXSxh''@;'; + put 'put ''W2x0KzQ+PjJdPWFbbnQrND4+Ml0sYVtsdCs4Pj4yXT1hW250Kzg+PjJdLGFbbHQrMTI+PjJdPWFbbnQrMTI+PjJdLFdvKGwsV2UsMiksYVtsdD4+Ml09YVtmPj4yXSxhW2x0KzQ+PjJdPWFbZis0Pj4yXSxhW2x0Kzg+PjJdPWFbZis4Pj4yXSxhW2x0KzEyPj4yXT1hW2YrMTI+PjJdLFdvKGws''@;'; + put 'put ''V2UsMiksYVtsdD4+Ml09YVtvdD4+Ml0sYVtsdCs0Pj4yXT1hW290KzQ+PjJdLGFbbHQrOD4+Ml09YVtvdCs4Pj4yXSxhW2x0KzEyPj4yXT1hW290KzEyPj4yXSxXbyhsLFdlLDIpO2JyZWFrfVByKDEwNTQzOCwxMDU0NDksNzE0LDEwNTQ1OCl9aWYoNTAzMzE2NDghPSgwfHApKWJyZWFrIGU7''@;'; + put 'put ''Zm9yKHc9MHx2cigoQT1mKzN8MCk8PDQpLGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLF9bdysxNj4+M109KGN0PStfW2M+PjNdKS0uMjUqKGN0LStfW2I+PjNdKSxfW3crMjQ+PjNdPWN0PS4zMzMz''@;'; + put 'put ''MzMzMzMzMzMzMzMzKigrX1socD1vdCs1NnwwKT4+M10tK19bb3QrNzI+PjNdKSsgK19bYys4Pj4zXSxfW3crMzI+PjNdPShadD0rX1tjPj4zXSktMiooWnQtK19bYj4+M10pLF9bdys0MD4+M109Y3QsX1t3KzQ4Pj4zXT0oY3Q9K19bYz4+M10pLTIuMjUqKGN0LStfW2I+PjNdKSxfW3crNTY+''@;'; + put 'put ''PjNdPStfW3A+PjNdLF9bdys2ND4+M109K19bb3QrNDg+PjNdLF9bdys3Mj4+M109K19bcD4+M10scD00OyEoKDB8cCk+PSgwfEEpKTspYVsobHQ9dysocDw8NCl8MCk+PjJdPWFbKGY9YysocCstMzw8NCl8MCk+PjJdLGFbbHQrND4+Ml09YVtmKzQ+PjJdLGFbbHQrOD4+Ml09YVtmKzg+PjJd''@;'; + put 'put ''LGFbbHQrMTI+PjJdPWFbZisxMj4+Ml0scD1wKzF8MDtrYShsLHcsQSxtKSxGdCh3KTticmVha31pZigoMHxwKTwzMTg3NjcxMDQpe2lmKCgwfHApPDI1MTY1ODI0MCl7aWYoKDB8cCk8MjE4MTAzODA4KXtpZigyMDEzMjY1OTIhPSgwfHApKWJyZWFrIGU7T2U9MHx2cihsdD1mPDw0KSxfW09l''@;'; + put 'put ''Pj4zXT1jdD0rX1soTGU9YysxNnwwKT4+M10sVmU9b3QrNDh8MCxfW09lKzg+PjNdPVp0PS41KigrX1sobnQ9YysyNHwwKT4+M10tKFp0PStfWyhxZT1jKzQwfDApPj4zXSkpK1p0Ky4xMjUqKCtfWyhSZT1vdCs1NnwwKT4+M10tK19bKEhlPW90KzcyfDApPj4zXSksX1tPZSsxNj4+M109RXQ9''@;'; + put 'put ''MiooK19baz4+M10tK19bVmU+PjNdKStjdCxfW09lKzI0Pj4zXT1adCxfW09lKzMyPj4zXT1FdCxfW09lKzQwPj4zXT1adD0uNSooK19bUmU+PjNdLStfW0hlPj4zXSkrWnQsX1tPZSs0OD4+M109Y3QsX1tPZSs1Nj4+M109WnQsa2EobCxPZSxmLG0pLEZ0KE9lKSxsdD0wfHZyKGx0KSxfW2x0''@;'; + put 'put ''Pj4zXT1adD0rX1trPj4zXSsgK19bTGU+PjNdLStfW1ZlPj4zXSxfW2x0Kzg+PjNdPWN0PS41KigrX1tudD4+M10tKGN0PStfW3FlPj4zXSkpK2N0Ky0uNjI1KigrX1tSZT4+M10tK19bSGU+PjNdKSxFdD0rX1trPj4zXS0rX1tWZT4+M10rWnQsX1soVmU9bHQrMTZ8MCk+PjNdPUV0LF9bbHQr''@;'; + put 'put ''MjQ+PjNdPWN0LF9bbHQrMzI+PjNdPUV0LF9bbHQrNDA+PjNdPWN0PS41KigrX1tSZT4+M10tK19bSGU+PjNdKStjdCxfW2x0KzQ4Pj4zXT1adCxfW2x0KzU2Pj4zXT1jdCxrYShsLGx0LGYsbSksX1tXZT4+M109K19bVmU+PjNdLF9bV2UrOD4+M109LjUqKCtfW250Pj4zXS0oY3Q9K19bcWU+''@;'; + put 'put ''PjNdKSkrY3QsX1tXZSsxNj4+M109K19bYz4+M10sX1tXZSsyND4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQobHQpO2JyZWFrfWlmKCgwfHApPDIzNDg4MTAyNCl7aWYoMjE4MTAzODA4IT0oMHxwKSlicmVhayBlO1JlPTB8dnIobHQ9Zjw8NCksX1tS''@;'; + put 'put ''ZT4+M109Y3Q9K19bYz4+M10sX1tSZSs4Pj4zXT1adD0uNSooK19bKHFlPWMrMjR8MCk+PjNdLShadD0rX1soVmU9Yys0MHwwKT4+M10pKStadCsuMTI1KigrX1soSGU9b3QrNTZ8MCk+PjNdLStfWyhudD1vdCs3MnwwKT4+M10pLF9bUmUrMTY+PjNdPWN0LF9bUmUrMjQ+PjNdPUV0PS41Kigr''@;'; + put 'put ''X1tIZT4+M10tK19bbnQ+PjNdKStadCxfW1JlKzMyPj4zXT1jdC09MiooK19bSGU+PjNdLStfW250Pj4zXSksX1tSZSs0MD4+M109RXQsX1tSZSs0OD4+M109Y3QsX1tSZSs1Nj4+M109WnQsa2EobCxSZSxmLG0pLEZ0KFJlKSxsdD0wfHZyKGx0KSxfW2x0Pj4zXT1adD0rX1tjPj4zXS0rX1tr''@;'; + put 'put ''Pj4zXSsgK19bb3QrNDg+PjNdLF9bbHQrOD4+M109Y3Q9LjUqKCtfW3FlPj4zXS0oY3Q9K19bVmU+PjNdKSkrY3QrLS42MjUqKCtfW0hlPj4zXS0rX1tudD4+M10pLF9bbHQrMTY+PjNdPVp0LF9bbHQrMjQ+PjNdPUV0PS41KigrX1tIZT4+M10tK19bbnQ+PjNdKStjdCxfW2x0KzMyPj4zXT1a''@;'; + put 'put ''dC09K19bSGU+PjNdLStfW250Pj4zXSxfW2x0KzQwPj4zXT1FdCxfWyhudD1sdCs0OHwwKT4+M109WnQsX1tsdCs1Nj4+M109Y3Qsa2EobCxsdCxmLG0pLF9bV2U+PjNdPStfW2MrMTY+PjNdLF9bV2UrOD4+M109LjUqKCtfW3FlPj4zXS0oY3Q9K19bVmU+PjNdKSkrY3QsX1tXZSsxNj4+M109''@;'; + put 'put ''K19bbnQ+PjNdLF9bV2UrMjQ+PjNdPS41KigrX1tjKzg+PjNdLStfW2MrNTY+PjNdKStjdCxXbyhsLFdlLDIpLEZ0KGx0KTticmVha31pZigyMzQ4ODEwMjQhPSgwfHApKWJyZWFrIGU7VmU9MHx2cihsdD1mPDw0KSxfW1ZlPj4zXT1adD0uNSooK19bYz4+M10tKFp0PStfWyhPZT1jKzE2fDAp''@;'; + put 'put ''Pj4zXSkpK1p0Ky0xLjEyNSooK19baz4+M10tK19bKExlPW90KzQ4fDApPj4zXSksX1tWZSs4Pj4zXT1jdD0uNSooK19bKEhlPWMrMjR8MCk+PjNdLShjdD0rX1soUmU9Yys0MHwwKT4+M10pKStjdCsuMTI1KigrX1sobnQ9b3QrNTZ8MCk+PjNdLStfWyhxZT1vdCs3MnwwKT4+M10pLF9bVmUr''@;'; + put 'put ''MTY+PjNdPUV0PStfW2s+PjNdLStfW0xlPj4zXStadCxfW1ZlKzI0Pj4zXT1jdCxfW1ZlKzMyPj4zXT1FdCxfW1ZlKzQwPj4zXT1jdD0uNSooK19bbnQ+PjNdLStfW3FlPj4zXSkrY3QsX1tWZSs0OD4+M109WnQsX1tWZSs1Nj4+M109Y3Qsa2EobCxWZSxmLG0pLEZ0KFZlKSxWZT0wfHZyKGx0''@;'; + put 'put ''KSxfW1ZlPj4zXT1jdD0uNSooK19bYz4+M10tKGN0PStfW09lPj4zXSkpK2N0Ky0xLjEyNSooK19baz4+M10tK19bTGU+PjNdKSxfW1ZlKzg+PjNdPVp0PS41KigrX1tIZT4+M10tKFp0PStfW1JlPj4zXSkpK1p0Ky0uNjI1KigrX1tudD4+M10tK19bcWU+PjNdKSxfW1ZlKzE2Pj4zXT1FdD0r''@;'; + put 'put ''X1trPj4zXS0rX1tMZT4+M10rY3QsX1tWZSsyND4+M109WnQsX1tWZSszMj4+M109RXQsX1tWZSs0MD4+M109WnQ9LjUqKCtfW250Pj4zXS0rX1txZT4+M10pK1p0LF9bVmUrNDg+PjNdPWN0LF9bVmUrNTY+PjNdPVp0LGthKGwsVmUsZixtKSxGdChWZSksVmU9MHx2cihsdCksX1tWZT4+M109''@;'; + put 'put ''WnQ9LjUqKCtfW2M+PjNdLShadD0rX1tPZT4+M10pKStadCsuMTI1KigrX1trPj4zXS0rX1tMZT4+M10pLF9bVmUrOD4+M109Y3Q9LjUqKCtfW0hlPj4zXS0oY3Q9K19bUmU+PjNdKSkrY3QrLS42MjUqKCtfW250Pj4zXS0rX1txZT4+M10pLF9bVmUrMTY+PjNdPUV0PStfW2s+PjNdLStfW0xl''@;'; + put 'put ''Pj4zXStadCxfW1ZlKzI0Pj4zXT1jdCxfW1ZlKzMyPj4zXT1FdCxfW1ZlKzQwPj4zXT1jdD0uNSooK19bbnQ+PjNdLStfW3FlPj4zXSkrY3QsX1tWZSs0OD4+M109WnQsX1tWZSs1Nj4+M109Y3Qsa2EobCxWZSxmLG0pLEZ0KFZlKSxsdD0wfHZyKGx0KSxfW2x0Pj4zXT1jdD0uNSooK19bYz4+''@;'; + put 'put ''M10tKGN0PStfW09lPj4zXSkpK2N0Ky4xMjUqKCtfW2s+PjNdLStfW0xlPj4zXSksX1tsdCs4Pj4zXT1adD0uNSooK19bSGU+PjNdLShadD0rX1tSZT4+M10pKStadCsuMTI1KigrX1tudD4+M10tK19bcWU+PjNdKSxfWyhWZT1sdCsxNnwwKT4+M109RXQ9K19baz4+M10tK19bTGU+PjNdK2N0''@;'; + put 'put ''LF9bbHQrMjQ+PjNdPVp0LF9bbHQrMzI+PjNdPUV0LF9bbHQrNDA+PjNdPVp0PS41KigrX1tudD4+M10tK19bcWU+PjNdKStadCxfW2x0KzQ4Pj4zXT1jdCxfW2x0KzU2Pj4zXT1adCxrYShsLGx0LGYsbSksX1tXZT4+M109K19bVmU+PjNdLF9bKFZlPVdlKzh8MCk+PjNdPS41KigrX1tIZT4+''@;'; + put 'put ''M10tKFp0PStfW1JlPj4zXSkpK1p0LF9bKHFlPVdlKzE2fDApPj4zXT0rX1tjPj4zXSxfWyhtPVdlKzI0fDApPj4zXT0uNSooK19bKG50PWMrOHwwKT4+M10tK19bKGY9Yys1NnwwKT4+M10pK1p0LFdvKGwsV2UsMiksX1tXZT4+M109LjUqKCtfW2M+PjNdLShadD0rX1tPZT4+M10pKStadCst''@;'; + put 'put ''MS4xMjUqKCtfW2s+PjNdLStfW0xlPj4zXSksX1tWZT4+M109LjUqKCtfW0hlPj4zXS0oY3Q9K19bUmU+PjNdKSkrY3QsX1txZT4+M109WnQsX1ttPj4zXT0uNSooK19bbnQ+PjNdLStfW2Y+PjNdKStjdCxXbyhsLFdlLDIpLEZ0KGx0KTticmVha31pZigoMHxwKTwyODUyMTI2NzIpe2lmKCgw''@;'; + put 'put ''fHApPDI2ODQzNTQ1Nil7aWYoMjUxNjU4MjQwIT0oMHxwKSlicmVhayBlO09lPTB8dnIobHQ9Zjw8NCksX1tPZT4+M109Y3Q9KGN0PStfWyhMZT1jKzE2fDApPj4zXSktK19baz4+M10rLjUqKCtfW2M+PjNdLWN0KSsgK19bKFZlPW90KzQ4fDApPj4zXSxfW09lKzg+PjNdPVp0PS41KigrX1so''@;'; + put 'put ''SGU9YysyNHwwKT4+M10tKFp0PStfWyhSZT1jKzQwfDApPj4zXSkpK1p0Ky4xMjUqKCtfWyhudD1vdCs1NnwwKT4+M10tK19bKHFlPW90KzcyfDApPj4zXSksX1tPZSsxNj4+M109RXQ9MiooK19baz4+M10tK19bVmU+PjNdKStjdCxfW09lKzI0Pj4zXT1adCxfW09lKzMyPj4zXT1FdCxfW09l''@;'; + put 'put ''KzQwPj4zXT1adD0uNSooK19bbnQ+PjNdLStfW3FlPj4zXSkrWnQsX1tPZSs0OD4+M109Y3QsX1tPZSs1Nj4+M109WnQsa2EobCxPZSxmLG0pLEZ0KE9lKSxsdD0wfHZyKGx0KSxfW2x0Pj4zXT1adD0oWnQ9K19bTGU+PjNdKS0rX1trPj4zXSsuNSooK19bYz4+M10tWnQpKyArX1tWZT4+M10s''@;'; + put 'put ''X1tsdCs4Pj4zXT1jdD0uNSooK19bSGU+PjNdLShjdD0rX1tSZT4+M10pKStjdCstLjYyNSooK19bbnQ+PjNdLStfW3FlPj4zXSksRXQ9MiooK19baz4+M10tK19bVmU+PjNdKStadCxfWyhWZT1sdCsxNnwwKT4+M109RXQsX1tsdCsyND4+M109Y3QsX1tsdCszMj4+M109RXQsX1tsdCs0MD4+''@;'; + put 'put ''M109Y3Q9LjUqKCtfW250Pj4zXS0rX1txZT4+M10pK2N0LF9bbHQrNDg+PjNdPVp0LF9bbHQrNTY+PjNdPWN0LGthKGwsbHQsZixtKSxfW1dlPj4zXT0rX1tWZT4+M10sX1soVmU9V2UrOHwwKT4+M109LjUqKCtfW0hlPj4zXS0oY3Q9K19bUmU+PjNdKSkrY3QsX1socWU9V2UrMTZ8MCk+PjNd''@;'; + put 'put ''PStfW2M+PjNdLF9bKG09V2UrMjR8MCk+PjNdPS41KigrX1sobnQ9Yys4fDApPj4zXS0rX1soZj1jKzU2fDApPj4zXSkrY3QsV28obCxXZSwyKSxfW1dlPj4zXT0rX1tMZT4+M10sX1tWZT4+M109LjUqKCtfW0hlPj4zXS0oY3Q9K19bUmU+PjNdKSkrY3QsX1txZT4+M109K19bbHQ+PjNdLF9b''@;'; + put 'put ''bT4+M109LjUqKCtfW250Pj4zXS0rX1tmPj4zXSkrY3QsV28obCxXZSwyKSxGdChsdCk7YnJlYWt9aWYoMjY4NDM1NDU2IT0oMHxwKSlicmVhayBlO2x0PTB8dnIoZjw8NCksX1tsdD4+M109K19bYz4+M10sTGU9b3QrNDh8MCxfW2x0Kzg+PjNdPStfW290KzI0Pj4zXS0uNSooK19bKEhlPW90''@;'; + put 'put ''KzU2fDApPj4zXS0rX1soVmU9b3QrNzJ8MCk+PjNdKSxfW2x0KzE2Pj4zXT0rX1tMZT4+M10sX1tsdCsyND4+M109KGN0PStfW0hlPj4zXSktLjUqKGN0LStfW1ZlPj4zXSksX1tsdCszMj4+M109K19bYyszMj4+M10sX1tsdCs0MD4+M109LjUqKCtfW0hlPj4zXS0rX1tWZT4+M10pKyArX1so''@;'; + put 'put ''cWU9Yys0MHwwKT4+M10sX1tsdCs0OD4+M109K19bYz4+M10sX1tsdCs1Nj4+M109LjUqKCtfW0hlPj4zXS0rX1tWZT4+M10pKyArX1txZT4+M10sa2EobCxsdCxmLG0pLF9bV2U+PjNdPVp0PShjdD0uMjUqKCtfW2s+PjNdLStfW0xlPj4zXSkpKyArX1soUmU9YysxNnwwKT4+M10sX1sobnQ9''@;'; + put 'put ''V2UrOHwwKT4+M109RXQ9LjUqKCtfWyhPZT1jKzI0fDApPj4zXS0oRXQ9K19bcWU+PjNdKSkrRXQrLjEyNSooa3Q9K19bSGU+PjNdLStfW1ZlPj4zXSksX1soZj1XZSsxNnwwKT4+M109Y3QrWnQsX1sobT1XZSsyNHwwKT4+M109RXQtLjI1Kmt0LFdvKGwsV2UsMiksX1tXZT4+M109RXQ9KGt0''@;'; + put 'put ''PS4yNSooK19baz4+M10tK19bTGU+PjNdKSkrICtfW1JlPj4zXSxfW250Pj4zXT1adD0uNSooK19bT2U+PjNdLShadD0rX1txZT4+M10pKStadCstLjEyNSooY3Q9K19bSGU+PjNdLStfW1ZlPj4zXSksX1tmPj4zXT1rdCtFdCxfW20+PjNdPS4yNSpjdCtadCxXbyhsLFdlLDIpLF9bV2U+PjNd''@;'; + put 'put ''PShadD0uMjUqKCtfW2s+PjNdLStfW0xlPj4zXSkpKyArX1tSZT4+M10sX1tudD4+M109Y3Q9Ljc1KigrX1tIZT4+M10tK19bVmU+PjNdKSsgK19bcWU+PjNdLF9bZj4+M109K19bYz4+M10tWnQsX1ttPj4zXT1jdCxXbyhsLFdlLDIpLEZ0KGx0KTticmVha31pZigoMHxwKTwzMDE5ODk4ODgp''@;'; + put 'put ''e2lmKDI4NTIxMjY3MiE9KDB8cCkpYnJlYWsgZTtWZT0wfHZyKGY8PDQpLF9bVmU+PjNdPVp0PS41KigrX1trPj4zXS0rX1socWU9b3QrNDh8MCk+PjNdKygrX1tjPj4zXS0oWnQ9K19bKExlPWMrMTZ8MCk+PjNdKSkpK1p0LF9bVmUrOD4+M109a3Q9LjUqKCtfW2s+PjNdLStfW3FlPj4zXSso''@;'; + put 'put ''K19bKEhlPWMrMjR8MCk+PjNdLShrdD0rX1soUmU9Yys0MHwwKT4+M10pKSkra3QsX1tWZSsxNj4+M109WnQsX1tWZSsyND4+M109WnQ9LjUqKCtfW0hlPj4zXS0oWnQ9K19bUmU+PjNdKS0oUj0rX1trPj4zXS0rX1txZT4+M10pKStadCxfW1ZlKzMyPj4zXT1jdD0uNSooK19bYz4+M10tKGN0''@;'; + put 'put ''PStfW0xlPj4zXSktUikrY3QsX1tWZSs0MD4+M109WnQsX1tWZSs0OD4+M109Y3QsX1tWZSs1Nj4+M109a3Qsa2EobCxWZSxmLG0pLEZ0KFZlKSxfW1dlPj4zXT1SPShrdD0uNSooK19bYz4+M10tKGt0PStfW0xlPj4zXSkpK2t0KSsoWnQ9Ljc1KihjdD0rX1trPj4zXS0rX1txZT4+M10pKSxf''@;'; + put 'put ''WyhWZT1XZSs4fDApPj4zXT1adD0oRXQ9LjUqKCtfW0hlPj4zXS0oRXQ9K19bUmU+PjNdKSkrRXQpK1p0LF9bKG50PVdlKzE2fDApPj4zXT1SLF9bKGx0PVdlKzI0fDApPj4zXT1FdCs9Y3QqPS0uNzUsX1tXZSszMj4+M109Y3Q9a3QrY3QsX1tXZSs0MD4+M109RXQsX1tXZSs0OD4+M109Y3Qs''@;'; + put 'put ''X1tXZSs1Nj4+M109WnQsYVsoZj1XZSs2NHwwKT4+Ml09YVtXZT4+Ml0sYVtmKzQ+PjJdPWFbV2UrND4+Ml0sYVtmKzg+PjJdPWFbV2UrOD4+Ml0sYVtmKzEyPj4yXT1hW1dlKzEyPj4yXSxXbyhsLFdlLDUpLF9bV2U+PjNdPS41KigoY3Q9K19bYz4+M10pLShadD0rX1tMZT4+M10pKStadCsu''@;'; + put 'put ''NzUqKCtfW2s+PjNdLStfW3FlPj4zXSksX1tWZT4+M109LjUqKCtfW0hlPj4zXS0oWnQ9K19bUmU+PjNdKSkrWnQsX1tudD4+M109Y3QsX1tsdD4+M109LjUqKCtfWyhmPWMrOHwwKT4+M10tK19bKG09Yys1NnwwKT4+M10pK1p0LFdvKGwsV2UsMiksX1tXZT4+M109WnQ9K19bTGU+PjNdLF9b''@;'; + put 'put ''VmU+PjNdPS41KigrX1tIZT4+M10tKGN0PStfW1JlPj4zXSkpK2N0LF9bbnQ+PjNdPS41KigrX1tjPj4zXS1adCkrWnQrLS43NSooK19baz4+M10tK19bcWU+PjNdKSxfW2x0Pj4zXT0uNSooK19bZj4+M10tK19bbT4+M10pK2N0LFdvKGwsV2UsMik7YnJlYWt9aWYoMzAxOTg5ODg4IT0oMHxw''@;'; + put 'put ''KSlicmVhayBlO2x0PTB8dnIoKG50PWYrMTJ8MCk8PDQpLF9bbHQ+PjNdPU09LjUqKCtfW2M+PjNdLShNPStfWyhIZT1jKzE2fDApPj4zXSkpK00rLjI1KigrX1trPj4zXS0rX1soZ2U9b3QrNDh8MCk+PjNdKSxfWyhPZT1sdCs4fDApPj4zXT1rdD0uNSooK19bKExlPW90KzU2fDApPj4zXS0r''@;'; + put 'put ''X1soUmU9b3QrNzJ8MCk+PjNdKygrX1socWU9YysyNHwwKT4+M10tKGt0PStfWyhWZT1jKzQwfDApPj4zXSkpKStrdCxfW2x0KzE2Pj4zXT1NLF9bKGJlPWx0KzI0fDApPj4zXT1rdD0uMTI1KigrX1tMZT4+M10tK19bUmU+PjNdKStrdCxfWyhmPWx0KzMyfDApPj4zXT1FdD1NLS4xMjUqKCtf''@;'; + put 'put ''W2s+PjNdLStfW2dlPj4zXSksX1tsdCs0MD4+M109Uj0uMTI1KigrX1tMZT4+M10tK19bUmU+PjNdKStrdCxfW2x0KzQ4Pj4zXT1NLF9bbHQrNTY+PjNdPVp0PS4xMjUqKCtfW0xlPj4zXS0rX1tSZT4+M10pK1IsX1tsdCs2ND4+M109TSxfW2x0KzcyPj4zXT1NPS4xMjUqKCtfW0xlPj4zXS0r''@;'; + put 'put ''X1tSZT4+M10pK1p0LF9bbHQrODA+PjNdPUV0LF9bbHQrODg+PjNdPU0sX1tsdCs5Nj4+M109RXQ9LjUqKCtfW2M+PjNdLShFdD0rX1tIZT4+M10pKStFdCxfW2x0KzEwND4+M109WnQsX1tsdCsxMTI+PjNdPWN0PUV0LS4xMjUqKCtfW2s+PjNdLStfW2dlPj4zXSksX1tsdCsxMjA+PjNdPU0s''@;'; + put 'put ''X1tsdCsxMjg+PjNdPWN0LT0uMTI1KigrX1trPj4zXS0rX1tnZT4+M10pLF9bbHQrMTM2Pj4zXT1NLF9bbHQrMTQ0Pj4zXT1jdCxfW2x0KzE1Mj4+M109WnQsX1tsdCsxNjA+PjNdPVp0PS4xMjUqKCtfW2s+PjNdLStfW2dlPj4zXSkrY3QsX1tsdCsxNjg+PjNdPVIsX1tsdCsxNzY+PjNdPWN0''@;'; + put 'put ''LF9bbHQrMTg0Pj4zXT1rdCxfW2x0KzE5Mj4+M109Y3QsX1tsdCsyMDA+PjNdPWN0PStfW09lPj4zXSxfW2x0KzIwOD4+M109WnQsX1tsdCsyMTY+PjNdPWN0LF9bKE9lPWx0KzIyNHwwKT4+M109RXQsX1tsdCsyMzI+PjNdPStfW2JlPj4zXSxfW2x0KzI0MD4+M109K19bZj4+M10sX1tsdCsy''@;'; + put 'put ''NDg+PjNdPWN0LGthKGwsbHQsbnQsbSksX1tXZT4+M109Y3Q9K19bT2U+PjNdLF9bKG50PVdlKzh8MCk+PjNdPUV0PS41KigrX1txZT4+M10tKEV0PStfW1ZlPj4zXSkpK0V0LF9bKGY9V2UrMTZ8MCk+PjNdPWN0LF9bKG09V2UrMjR8MCk+PjNdPS4xMjUqKCtfW0xlPj4zXS0rX1tSZT4+M10p''@;'; + put 'put ''K0V0LFdvKGwsV2UsMiksX1tXZT4+M109RXQ9K19bT2U+PjNdLF9bbnQ+PjNdPWN0PS41KigrX1txZT4+M10tKGN0PStfW1ZlPj4zXSkpK2N0Ky4yNSooWnQ9K19bTGU+PjNdLStfW1JlPj4zXSksX1tmPj4zXT1FdCxfW20+PjNdPS4xMjUqWnQrY3QsV28obCxXZSwyKSxfW1dlPj4zXT0rX1tI''@;'; + put 'put ''ZT4+M10sX1tudD4+M109LjUqKCtfW3FlPj4zXS0oY3Q9K19bVmU+PjNdKSkrY3QsX1tmPj4zXT0rX1tjPj4zXSxfW20+PjNdPS41KigrX1tjKzg+PjNdLStfW2MrNTY+PjNdKStjdCxXbyhsLFdlLDIpLEZ0KGx0KTticmVha31pZigoMHxwKTwzNjkwOTg3NTIpe2lmKCgwfHApPDMzNTU0NDMy''@;'; + put 'put ''MCl7aWYoMzE4NzY3MTA0IT0oMHxwKSlicmVhayBlO2x0PTB8dnIoKG50PWYrNHwwKTw8NCksX1tsdD4+M109RXQ9LjUqKCtfW2M+PjNdLShFdD0rX1soSGU9YysxNnwwKT4+M10pKStFdCsuMTI1KigrX1trPj4zXS0rX1soZj1vdCs0OHwwKT4+M10pLF9bbHQrOD4+M109Y3Q9LjUqKCtfWyhM''@;'; + put 'put ''ZT1vdCs1NnwwKT4+M10tK19bKFJlPW90KzcyfDApPj4zXSsoK19bKHFlPWMrMjR8MCk+PjNdLShjdD0rX1soVmU9Yys0MHwwKT4+M10pKSkrY3QsX1tsdCsxNj4+M109Uj0uMTI1KigrX1trPj4zXS0rX1tmPj4zXSkrRXQsX1tsdCsyND4+M109WnQ9LjEyNSooK19bTGU+PjNdLStfW1JlPj4z''@;'; + put 'put ''XSkrY3QsX1tsdCszMj4+M109UixfW2x0KzQwPj4zXT1SPS4yNSooK19bTGU+PjNdLStfW1JlPj4zXSkrWnQsX1tsdCs0OD4+M109RXQsX1tsdCs1Nj4+M109a3Q9LjEyNSooK19bTGU+PjNdLStfW1JlPj4zXSkrUixfW2x0KzY0Pj4zXT1FdC09LjI1KigrX1trPj4zXS0rX1tmPj4zXSksX1ts''@;'; + put 'put ''dCs3Mj4+M109a3QsX1tsdCs4MD4+M109a3Q9RXQtLjEyNSooK19baz4+M10tK19bZj4+M10pLF9bbHQrODg+PjNdPVIsX1tsdCs5Nj4+M109a3QsX1tsdCsxMDQ+PjNdPVp0LF9bbHQrMTEyPj4zXT1FdCxfW2x0KzEyMD4+M109Y3Qsa2EobCxsdCxudCxtKSxfW1dlPj4zXT1jdD0uNSooK19b''@;'; + put 'put ''Yz4+M10tKGN0PStfW0hlPj4zXSkpK2N0LF9bKG50PVdlKzh8MCk+PjNdPUV0PS41KigrX1txZT4+M10tKEV0PStfW1ZlPj4zXSkpK0V0LF9bKGY9V2UrMTZ8MCk+PjNdPWN0LF9bKG09V2UrMjR8MCk+PjNdPS4xMjUqKCtfW0xlPj4zXS0rX1tSZT4+M10pK0V0LFdvKGwsV2UsMiksX1tXZT4+''@;'; + put 'put ''M109RXQ9LjUqKCtfW2M+PjNdLShFdD0rX1tIZT4+M10pKStFdCxfW250Pj4zXT1jdD0uNSooK19bcWU+PjNdLShjdD0rX1tWZT4+M10pKStjdCsuMjUqKFp0PStfW0xlPj4zXS0rX1tSZT4+M10pLF9bZj4+M109RXQsX1ttPj4zXT0uMTI1Klp0K2N0LFdvKGwsV2UsMiksX1tXZT4+M109K19b''@;'; + put 'put ''SGU+PjNdLF9bbnQ+PjNdPS41KigrX1txZT4+M10tKGN0PStfW1ZlPj4zXSkpK2N0LF9bZj4+M109K19bYz4+M10sX1ttPj4zXT0uNSooK19bYys4Pj4zXS0rX1tjKzU2Pj4zXSkrY3QsV28obCxXZSwyKSxGdChsdCk7YnJlYWt9aWYoKDB8cCk8MzUyMzIxNTM2KXtpZigzMzU1NDQzMjAhPSgw''@;'; + put 'put ''fHApKWJyZWFrIGU7bHQ9MHx2cigoSGU9ZisxMnwwKTw8NCksX1tsdD4+M109TT0uNSooK19bYz4+M10tKE09K19bKFZlPWMrMTZ8MCk+PjNdKSkrTSsuMjUqKCtfW2s+PjNdLStfWyhPZT1vdCs0OHwwKT4+M10pLF9bKGY9bHQrOHwwKT4+M109a3Q9LjUqKCtfWyhnZT1vdCs1NnwwKT4+M10t''@;'; + put 'put ''K19bKGJlPW90KzcyfDApPj4zXSsoK19bKG50PWMrMjR8MCk+PjNdLShrdD0rX1socWU9Yys0MHwwKT4+M10pKSkra3QsX1tsdCsxNj4+M109TSxfWyhMZT1sdCsyNHwwKT4+M109a3Q9LjEyNSooK19bZ2U+PjNdLStfW2JlPj4zXSkra3QsX1soUmU9bHQrMzJ8MCk+PjNdPVp0PU0tLjEyNSoo''@;'; + put 'put ''K19baz4+M10tK19bT2U+PjNdKSxfW2x0KzQwPj4zXT1SPS4xMjUqKCtfW2dlPj4zXS0rX1tiZT4+M10pK2t0LF9bbHQrNDg+PjNdPU0sX1tsdCs1Nj4+M109RXQ9LjEyNSooK19bZ2U+PjNdLStfW2JlPj4zXSkrUixfW2x0KzY0Pj4zXT1NLF9bbHQrNzI+PjNdPU09LjEyNSooK19bZ2U+PjNd''@;'; + put 'put ''LStfW2JlPj4zXSkrRXQsX1tsdCs4MD4+M109WnQsX1tsdCs4OD4+M109TSxfW2x0Kzk2Pj4zXT1adD0uNSooK19bYz4+M10tKFp0PStfW1ZlPj4zXSkpK1p0LF9bbHQrMTA0Pj4zXT1FdCxfW2x0KzExMj4+M109Y3Q9WnQtLjEyNSooK19baz4+M10tK19bT2U+PjNdKSxfW2x0KzEyMD4+M109''@;'; + put 'put ''TSxfW2x0KzEyOD4+M109Y3QtPS4xMjUqKCtfW2s+PjNdLStfW09lPj4zXSksX1tsdCsxMzY+PjNdPU0sX1tsdCsxNDQ+PjNdPWN0LF9bbHQrMTUyPj4zXT1FdCxfW2x0KzE2MD4+M109RXQ9LjEyNSooK19baz4+M10tK19bT2U+PjNdKStjdCxfW2x0KzE2OD4+M109UixfW2x0KzE3Nj4+M109''@;'; + put 'put ''Y3QsX1tsdCsxODQ+PjNdPWt0LF9bbHQrMTkyPj4zXT1jdCxfW2x0KzIwMD4+M109Y3Q9K19bZj4+M10sX1tsdCsyMDg+PjNdPUV0LF9bbHQrMjE2Pj4zXT1jdCxfWyhmPWx0KzIyNHwwKT4+M109WnQsX1tsdCsyMzI+PjNdPStfW0xlPj4zXSxfW2x0KzI0MD4+M109K19bUmU+PjNdLF9bbHQr''@;'; + put 'put ''MjQ4Pj4zXT1jdCxrYShsLGx0LEhlLG0pLGFbV2U+PjJdPWFbZj4+Ml0sYVtXZSs0Pj4yXT1hW2YrND4+Ml0sYVtXZSs4Pj4yXT1hW2YrOD4+Ml0sYVtXZSsxMj4+Ml09YVtmKzEyPj4yXSxfWyhmPVdlKzE2fDApPj4zXT0rX1tXZT4+M10sX1sobT1XZSsyNHwwKT4+M109LjUqKCtfW250Pj4z''@;'; + put 'put ''XS0oY3Q9K19bcWU+PjNdKSkrY3QsV28obCxXZSwyKSxfW1dlPj4zXT0rX1tWZT4+M10sX1tXZSs4Pj4zXT0uNSooK19bbnQ+PjNdLShjdD0rX1txZT4+M10pKStjdCxfW2Y+PjNdPStfW2M+PjNdLF9bbT4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQo''@;'; + put 'put ''bHQpO2JyZWFrfWlmKDM1MjMyMTUzNiE9KDB8cCkpYnJlYWsgZTtsdD0wfHZyKChudD1mKzR8MCk8PDQpLF9bbHQ+PjNdPVp0PS41KigrX1tjPj4zXS0oWnQ9K19bKEhlPWMrMTZ8MCk+PjNdKSkrWnQrLjEyNSooK19baz4+M10tK19bKFJlPW90KzQ4fDApPj4zXSksX1soZj1sdCs4fDApPj4z''@;'; + put 'put ''XT1jdD0uNSooK19bKE9lPW90KzU2fDApPj4zXS0rX1soTGU9b3QrNzJ8MCk+PjNdKygrX1socWU9YysyNHwwKT4+M10tKGN0PStfWyhWZT1jKzQwfDApPj4zXSkpKStjdCxfW2x0KzE2Pj4zXT1SPS4xMjUqKCtfW2s+PjNdLStfW1JlPj4zXSkrWnQsX1tsdCsyND4+M109RXQ9LjEyNSooK19b''@;'; + put 'put ''T2U+PjNdLStfW0xlPj4zXSkrY3QsX1tsdCszMj4+M109UixfW2x0KzQwPj4zXT1SPS4yNSooK19bT2U+PjNdLStfW0xlPj4zXSkrRXQsX1tsdCs0OD4+M109WnQsX1tsdCs1Nj4+M109a3Q9LjEyNSooK19bT2U+PjNdLStfW0xlPj4zXSkrUixfW2x0KzY0Pj4zXT1adC09LjI1KigrX1trPj4z''@;'; + put 'put ''XS0rX1tSZT4+M10pLF9bbHQrNzI+PjNdPWt0LF9bbHQrODA+PjNdPWt0PVp0LS4xMjUqKCtfW2s+PjNdLStfW1JlPj4zXSksX1tsdCs4OD4+M109UixfW2x0Kzk2Pj4zXT1rdCxfW2x0KzEwND4+M109RXQsX1tsdCsxMTI+PjNdPVp0LF9bbHQrMTIwPj4zXT1jdCxrYShsLGx0LG50LG0pLF9b''@;'; + put 'put ''V2U+PjNdPWN0PS41KigrX1tjPj4zXS0oY3Q9K19bSGU+PjNdKSkrY3QsX1sobnQ9V2UrOHwwKT4+M109K19bZj4+M10sX1soZj1XZSsxNnwwKT4+M109Y3QsX1sobT1XZSsyNHwwKT4+M109LjUqKCtfW3FlPj4zXS0oY3Q9K19bVmU+PjNdKSkrY3QsV28obCxXZSwyKSxfW1dlPj4zXT0rX1tI''@;'; + put 'put ''ZT4+M10sX1tudD4+M109LjUqKCtfW3FlPj4zXS0oY3Q9K19bVmU+PjNdKSkrY3QsX1tmPj4zXT0rX1tjPj4zXSxfW20+PjNdPS41KigrX1tjKzg+PjNdLStfW2MrNTY+PjNdKStjdCxXbyhsLFdlLDIpLEZ0KGx0KTticmVha31pZigoMHxwKTw0MDI2NTMxODQpe2lmKCgwfHApPDM4NTg3NTk2''@;'; + put 'put ''OCl7aWYoMzY5MDk4NzUyIT0oMHxwKSlicmVhayBlO2x0PTB8dnIoKGY9Zis1fDApPDw0KSxfW2x0Pj4zXT0rX1tiPj4zXS0uNSooK19baz4+M10tK19bKFdlPW90KzQ4fDApPj4zXSksX1tsdCs4Pj4zXT0rX1tvdCsyND4+M10tLjUqKCtfWyhWZT1vdCs1NnwwKT4+M10tK19bKG50PW90Kzcy''@;'; + put 'put ''fDApPj4zXSksX1tsdCsxNj4+M109K19bV2U+PjNdLF9bbHQrMjQ+PjNdPShjdD0rX1tWZT4+M10pLS41KihjdC0rX1tudD4+M10pLF9bbHQrMzI+PjNdPStfW2MrMzI+PjNdLF9bbHQrNDA+PjNdPStfWyhxZT1jKzQwfDApPj4zXSxfW2x0KzQ4Pj4zXT0uNSooKGN0PStfW2s+PjNdKS0rX1tX''@;'; + put 'put ''ZT4+M10pK2N0LF9bbHQrNTY+PjNdPStfW3FlPj4zXSxfW2x0KzY0Pj4zXT0uNSooKGN0PStfW2s+PjNdKS0rX1tXZT4+M10pK2N0LF9bbHQrNzI+PjNdPS41KigrX1tWZT4+M10tK19bbnQ+PjNdKSsgK19bcWU+PjNdLF9bbHQrODA+PjNdPStfW2I+PjNdLS41KigrX1trPj4zXS0rX1tXZT4+''@;'; + put 'put ''M10pLF9bbHQrODg+PjNdPS41KigrX1tWZT4+M10tK19bbnQ+PjNdKSsgK19bcWU+PjNdLF9bbHQrOTY+PjNdPStfW2I+PjNdLS41KigrX1trPj4zXS0rX1tXZT4+M10pLF9bbHQrMTA0Pj4zXT0rX1socWU9Yys1NnwwKT4+M10sX1tsdCsxMjA+PjNdPShjdD0rX1sobnQ9Yys4fDApPj4zXSkt''@;'; + put 'put ''LjUqKGN0LStfW3FlPj4zXSksX1tsdCsxMTI+PjNdPStfW2M+PjNdLF9bbHQrMTM2Pj4zXT0rX1tudD4+M10sX1tsdCsxMjg+PjNdPStfW2I+PjNdLS41KigrX1trPj4zXS0rX1tXZT4+M10pLGthKGwsbHQsZixtKSxGdChsdCk7YnJlYWt9aWYoMzg1ODc1OTY4IT0oMHxwKSlicmVhayBlO2x0''@;'; + put 'put ''PTB8dnIoKGY9ZiszfDApPDw0KSxfW2x0Pj4zXT0rX1tiPj4zXS0uNSooK19baz4+M10tK19bKFdlPW90KzQ4fDApPj4zXSksX1tsdCs4Pj4zXT0rX1tvdCsyND4+M10tLjUqKCtfWyhWZT1vdCs1NnwwKT4+M10tK19bKG50PW90KzcyfDApPj4zXSksX1tsdCsxNj4+M109K19bV2U+PjNdLF9b''@;'; + put 'put ''bHQrMjQ+PjNdPShjdD0rX1tWZT4+M10pLS41KihjdC0rX1tudD4+M10pLF9bbHQrMzI+PjNdPStfW2MrMzI+PjNdLF9bbHQrNDA+PjNdPS41KigrX1tWZT4+M10tK19bbnQ+PjNdKSsgK19bKHFlPWMrNDB8MCk+PjNdLF9bbHQrNDg+PjNdPStfW2I+PjNdLS41KigrX1trPj4zXS0rX1tXZT4+''@;'; + put 'put ''M10pLF9bbHQrNTY+PjNdPS41KigrX1tWZT4+M10tK19bbnQ+PjNdKSsgK19bcWU+PjNdLF9bbHQrNjQ+PjNdPStfW2I+PjNdLS41KigrX1trPj4zXS0rX1tXZT4+M10pLF9bbHQrNzI+PjNdPStfWyhxZT1jKzU2fDApPj4zXSxfW2x0Kzg4Pj4zXT0oY3Q9K19bKG50PWMrOHwwKT4+M10pLS41''@;'; + put 'put ''KihjdC0rX1txZT4+M10pLF9bbHQrODA+PjNdPStfW2M+PjNdLF9bbHQrMTA0Pj4zXT0rX1tudD4+M10sX1tsdCs5Nj4+M109K19bYj4+M10tLjUqKCtfW2s+PjNdLStfW1dlPj4zXSksa2EobCxsdCxmLG0pLEZ0KGx0KTticmVha31pZigoMHxwKTw0MTk0MzA0MDApe2lmKDQwMjY1MzE4NCE9''@;'; + put 'put ''KDB8cCkpYnJlYWsgZTtsdD0wfHZyKChmPWYrM3wwKTw8NCksX1tsdD4+M109K19bYz4+M10scWU9b3QrNDh8MCxfW2x0Kzg+PjNdPStfWyhWZT1jKzh8MCk+PjNdLS41KigrX1sobnQ9b3QrNTZ8MCk+PjNdLStfWyhXZT1vdCs3MnwwKT4+M10pLF9bbHQrMTY+PjNdPS41KigoY3Q9K19baz4+''@;'; + put 'put ''M10pLStfW3FlPj4zXSkrY3QsX1tsdCsyND4+M109K19bVmU+PjNdLS41KigrX1tudD4+M10tK19bV2U+PjNdKSxfW2x0KzMyPj4zXT0uNSooKGN0PStfW2s+PjNdKS0rX1txZT4+M10pK2N0LF9bbHQrNDA+PjNdPStfW290KzQwPj4zXSxfW2x0KzQ4Pj4zXT0rX1tjKzE2Pj4zXSxfW2x0KzU2''@;'; + put 'put ''Pj4zXT0oY3Q9K19bYysyND4+M10pLS41KihjdC0rX1soVmU9Yys0MHwwKT4+M10pLF9bbHQrNjQ+PjNdPS41KigoY3Q9K19baz4+M10pLStfW3FlPj4zXSkrY3QsX1tsdCs3Mj4+M109K19bVmU+PjNdLF9bbHQrODg+PjNdPS41KigrX1tudD4+M10tK19bV2U+PjNdKSsgK19bVmU+PjNdLF9b''@;'; + put 'put ''bHQrODA+PjNdPS41KigoY3Q9K19baz4+M10pLStfW3FlPj4zXSkrY3QsX1tsdCsxMDQ+PjNdPS41KigrX1tudD4+M10tK19bV2U+PjNdKSsgK19bYys1Nj4+M10sX1tsdCs5Nj4+M109K19bYz4+M10sa2EobCxsdCxmLG0pLEZ0KGx0KTticmVha31pZig0MTk0MzA0MDAhPSgwfHApKWJyZWFr''@;'; + put 'put ''IGU7bHQ9MHx2cigoZj1mKzV8MCk8PDQpLF9bbHQ+PjNdPStfW2M+PjNdLG50PW90KzQ4fDAsX1tsdCs4Pj4zXT0rX1soV2U9Yys4fDApPj4zXS0uNSooK19bKFZlPW90KzU2fDApPj4zXS0rX1socWU9b3QrNzJ8MCk+PjNdKSxfW2x0KzE2Pj4zXT0uNSooKGN0PStfW2s+PjNdKS0rX1tudD4+''@;'; + put 'put ''M10pK2N0LF9bbHQrMjQ+PjNdPStfW1dlPj4zXS0uNSooK19bVmU+PjNdLStfW3FlPj4zXSksX1tsdCszMj4+M109LjUqKChjdD0rX1trPj4zXSktK19bbnQ+PjNdKStjdCxfW2x0KzQwPj4zXT0rX1tvdCs0MD4+M10sX1tsdCs0OD4+M109K19bYysxNj4+M10sX1tsdCs1Nj4+M109KGN0PStf''@;'; + put 'put ''W2MrMjQ+PjNdKS0uNSooY3QtK19bKFdlPWMrNDB8MCk+PjNdKSxfW2x0KzY0Pj4zXT0uNSooKGN0PStfW2s+PjNdKS0rX1tudD4+M10pK2N0LF9bbHQrNzI+PjNdPStfW1dlPj4zXSxfW2x0Kzg4Pj4zXT0uNSooK19bVmU+PjNdLStfW3FlPj4zXSkrICtfW1dlPj4zXSxfW2x0KzgwPj4zXT0u''@;'; + put 'put ''NSooKGN0PStfW2s+PjNdKS0rX1tudD4+M10pK2N0LF9bbHQrMTA0Pj4zXT0uNSooK19bVmU+PjNdLStfW3FlPj4zXSkrICtfWyhXZT1jKzU2fDApPj4zXSxfW2x0Kzk2Pj4zXT0rX1tiPj4zXS0uNSooK19baz4+M10tK19bbnQ+PjNdKSxfW2x0KzExMj4+M109K19bYj4+M10tLjUqKCtfW2s+''@;'; + put 'put ''PjNdLStfW250Pj4zXSksX1tsdCsxMjA+PjNdPStfW1dlPj4zXSxfW2x0KzEyOD4+M109K19bYys0OD4+M10sX1tsdCsxMzY+PjNdPStfW1dlPj4zXSxrYShsLGx0LGYsbSksRnQobHQpO2JyZWFrfXdoaWxlKDApO0Z0KG90KX1hZT1TdH1mdW5jdGlvbiBZSShsLGMsZixwKXt2YXIgQSxtPTA7''@;'; + put 'put ''bT0oK19bOCsocHw9MCk+PjNdLShtPStfWzgrKGZ8PTApPj4zXSkpKihjPStjKSttLF9bKGx8PTApPj4zXT0oK19bcD4+M10tKEE9K19bZj4+M10pKSpjK0EsX1tsKzg+PjNdPW19ZnVuY3Rpb24gJDUobCl7aWYobD0wfGFbOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSlpZig5MSE9KDB8KGw9''@;'; + put 'put ''MHxhW2FbbCs0Pj4yXT4+Ml0pKSl7aWYoOTQhPSgwfGwpKXJldHVybiAwfCg5Mz09KDB8bCk/Mzo5Nj09KDB8bCk/NDowKTtsPTJ9ZWxzZSBsPTE7ZWxzZSBsPTA7cmV0dXJuIDB8bH1mdW5jdGlvbiBYSChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBPZSxMZSxSZSxIZSxWZSxx''@;'; + put 'put ''ZSxudCxXZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsb3Q9MCxTdD0wLGt0PTA7bT0wfHZyKDcyKSxEPTB8YVsxMDQrKDB8YVtsKzE2Pj4yXSk+PjJdLE09MCxBPTEsdz0wfGFbNDcyODJdO2U6Zm9yKDs7KXtzd2l0Y2goKGI9MHxmZVt3''@;'; + put 'put ''Pj4wXSk8PDI0Pj4yNCl7Y2FzZSAwOmJyZWFrIGU7Y2FzZSA5Mjpzd2l0Y2goKGI9MHxmZVsodz13KzF8MCk+PjBdKTw8MjQ+PjI0KXtjYXNlIDEyNDpjYXNlIDEyNTpjYXNlIDEyMzpjYXNlIDkyOms9TTticmVhaztkZWZhdWx0Omt0PTR9YnJlYWs7ZGVmYXVsdDprdD00fWlmKDQ9PSgwfGt0''@;'; + put 'put ''KSl7c3dpdGNoKGt0PTAsYjw8MjQ+PjI0KXtjYXNlIDEyMzprPU0rMXwwO2JyZWFrO2Nhc2UgMTI1Oms9TSstMXwwO2JyZWFrO2RlZmF1bHQ6az1NLEE9QSsoMD09KDB8TSkmYjw8MjQ+PjI0PT0xMjQmMSl8MH1pZigoMHxrKTwwKWJyZWFrfU09ayx3PXcrMXwwfWFbKFdlPW0rNTZ8MCk+PjJd''@;'; + put 'put ''PTB8dnIoQTw8MiksZmVbbSs2ND4+MF09YyxWZT0wPT0oMHxjKSYxLHFlPUQrODJ8MCxudD1wKzF8MCxMZT0wIT0oMHxmKSxSZT1EKzE2fDAsSGU9RCs0fDAsT2U9RCs4fDAsYj0wLE09MCxjPTAsYmU9MCxrPTAsZj0wLEQ9cCxBPTAsdz0wO2U6Zm9yKDs7KXtHPWIsYj0wO3Q6Zm9yKDs7KXtu''@;'; + put 'put ''OmZvcig7Oyl7Z2U9ZjtyOmZvcig7Oyl7cGU9YixSPUE7aTpmb3IoOzspe0s9TTtvOmZvcig7Oyl7Zm9yKDs7KXtpZihiZSl7a3Q9Nzg7YnJlYWsgZX1pZigoKEE9MHxmZVsoTT0wfGFbNDcyODJdKT4+MF0pLTEmMjU1KT49MzEpYnJlYWs7YVs0NzI4Ml09TSsxfXN3aXRjaChBPDwyND4+MjR8''@;'; + put 'put ''MCl7Y2FzZSA5MjprdD01MzticmVhayBuO2Nhc2UgMDpjYXNlIDEyNDpjYXNlIDEyNTpicmVhayByO2Nhc2UgNjA6YnJlYWsgaTtjYXNlIDYyOmJyZWFrIG87Y2FzZSAxMjM6YnJlYWs7ZGVmYXVsdDpiPWMsQT1NO2JyZWFrIG59aWYoYVs0NzI4Ml09QT1NKzF8MCwwfGspe2t0PTM0O2JyZWFr''@;'; + put 'put ''IGV9aWYoISgwfGZlW0E+PjBdKSl7a3Q9MzQ7YnJlYWsgZX1pZihmPTB8WEgobCxWZSwwLHApLGFbKDB8YVtXZT4+Ml0pKyhLPDwyKT4+Ml09ZiwhZil7a3Q9MzY7YnJlYWsgZX1LPUsrMXwwLGs9NH1pZigwfGZlW3FlPj4wXSl7Yj1jLEE9TTticmVhayBufWlmKCEoMTYmaykpe2t0PTI3O2Jy''@;'; + put 'put ''ZWFrIGV9QT1SPj4+MD5udD4+PjAmJigwfChvdD1SKy0xfDApKSE9KDB8Z2UpJiYzMj09KDB8ZmVbb3Q+PjBdKT9vdDpSLGZlW0E+PjBdPTAscGU9MHxyYShwKSxhWzQ3MjgyXT0xKygwfGFbNDcyODJdKSxNPUssayY9LTE3LFI9QX1pZig2Jmt8MCl7a3Q9MjI7YnJlYWsgZX1pZigwfGZlW3Fl''@;'; + put 'put ''Pj4wXSl7Yj1jLEE9TTticmVhayBufWFbNDcyODJdPU0rMSxNPUssa3w9MTgsYj1wZSxnZT1wLEE9cH1pZighKDA9PSgxNiZrfDApJihMZXxBPDwyND4+MjQhPTApKSl7a3Q9Mzg7YnJlYWsgZX1zd2l0Y2goNCZrPyhiPUcsTT1LKTooYj0wfHZyKDcyKSxhWygwfGFbV2U+PjJdKSsoSzw8Mik+''@;'; + put 'put ''PjJdPWIsTT1LKzF8MCksMHxwZSYmKGFbYis2MD4+Ml09cGUpLDUma3x8KGZlW3Ardz4+MF09MzIsa3w9MSx3PXcrMXwwKSxBPXArd3wwLDEmayYmKCgwfHcpPjEmJigwfChTdD1BKy0xfDApKSE9KDB8RCkmJihBPTMyPT0oMHxmZVtTdD4+MF0pP1N0OkEpLGZlW0E+PjBdPTAsRD0wfHJhKHAp''@;'; + put 'put ''LGFbYis1Mj4+Ml09MHxKNShsLEQsMHxmZVtxZT4+MF0/MjowLCtfW1JlPj4zXSwwfGFbSGU+PjJdLDB8YVtPZT4+Ml0pLGZlW2IrNjQ+PjBdPTEsRD1wLHc9MCksMHxmZVsoQT0wfGFbNDcyODJdKT4+MF0pe2Nhc2UgMDpiZT0xLGY9Z2UsQT1SO2NvbnRpbnVlIGU7Y2FzZSAxMjU6a3Q9NTE7''@;'; + put 'put ''YnJlYWsgZX1hWzQ3MjgyXT1BKzEsRz1iLGs9MCxiPTAsZj1nZSxBPVJ9bjpkb3tpZig1Mz09KDB8a3QpKXtzd2l0Y2goa3Q9MCxiPXArd3wwLDB8ZmVbKEE9TSsxfDApPj4wXSl7Y2FzZSAwOmI9YyxBPU07YnJlYWsgbjtjYXNlIDYyOmNhc2UgNjA6Y2FzZSAxMjQ6Y2FzZSAxMjU6Y2FzZSAx''@;'; + put 'put ''MjM6Yj1jO2JyZWFrO2Nhc2UgMzI6MHxmZVtxZT4+MF0/a3Q9NTU6Yj0xO2JyZWFrO2RlZmF1bHQ6a3Q9NTV9NTU9PSgwfGt0KSYmKGt0PTAsZmVbYj4+MF09OTIsYj1jLGt8PTksdz13KzF8MCksYVs0NzI4Ml09QX19d2hpbGUoMCk7aWYoYz1wK3d8MCw0Jmt8MCYmMzIhPSgwfGZlW0E+PjBd''@;'; + put 'put ''KSl7a3Q9NTk7YnJlYWsgZX1mb3IoMjQma3x8KGs9MzI9PSgwfGZlW0E+PjBdKT9rOjl8ayksOCZrPyghKChmPTAhPSgwfGIpKXwoTT0wfGZlW0E+PjBdKTw8MjQ+PjI0IT0zMikmJjMyPT0oMHxmZVtjKy0xPj4wXSkmJjA9PSgwfGZlW3FlPj4wXSl8fChmZVtjPj4wXT1NLHc9dysxfDApLGY/''@;'; + put 'put ''KGY9Z2UsRD1wK3crLTF8MCk6Zj1nZSk6MTYmaz8oKGM9MCE9KDB8YikpfChNPTB8ZmVbQT4+MF0pPDwyND4+MjQhPTMyP2t0PTczOigwfFIpIT0oMHxwKT8zMj09KDB8ZmVbUistMT4+MF0pP009UjprdD03MzpNPXAsNzM9PSgwfGt0KSYmKGt0PTAsZmVbUj4+MF09TSxNPVIrMXwwLEE9MHxh''@;'; + put 'put ''WzQ3MjgyXSksZj1jP00rLTF8MDpnZSxSPU0pOmY9Z2UsYVs0NzI4Ml09QT1BKzF8MDs7KXtpZigoMHxmZVtBPj4wXSk+PTApe009SyxjPWIsYj1wZSxBPVI7Y29udGludWUgdH1hWzQ3MjgyXT1nZT1BKzF8MCxmZVtwK3c+PjBdPTB8ZmVbQT4+MF0sdz13KzF8MCxBPWdlfX19cmV0dXJuIDIy''@;'; + put 'put ''PT0oMHxrdCl8fDI3PT0oMHxrdCl8fDM0PT0oMHxrdCl8fDM2PT0oMHxrdCl8fDM4PT0oMHxrdCk/KEN5KG0scGUpLG09MCk6NTE9PSgwfGt0KT8oYVs0NzI4Ml09QSsxLGFbbSs0OD4+Ml09TSk6NTk9PSgwfGt0KT8oQ3kobSxwZSksbT0wKTo3OD09KDB8a3QpJiYoYVttKzQ4Pj4yXT1LKSww''@;'; + put 'put ''fG19ZnVuY3Rpb24gV1EobCxjLGYpe2x8PTAsY3w9MDt2YXIgcGUsZ2UsYmUscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MDtiZT1hZSxhZT1hZSs2NHwwLGI9YmUrNDh8MCxrPWJlKzQwfDAsTT1iZSszMnwwLGdlPWJlKzE2fDAscGU9YmUsdz0wfGFbNTIrKGZ8''@;'; + put 'put ''PTApPj4yXTtlOmRve2lmKHcpe2lmKChtPStfW3crMjQ+PjNdKT4wfChwPStfW3crMzI+PjNdKT4wKXt3PTB8TGkoYywxMDU0OTYpO2Rve2lmKHcpe2lmKGFbYj4+Ml09ayxhW2IrND4+Ml09TSwoMHwodz0wfGlsKHcsMTA1NTAzLGIpKSk8PTApe0E9OCxtKz0xNjticmVha31tKz1BPSsofn4o''@;'; + put 'put ''KEE9NzIqK19baz4+M10pKyhBPj0wPy41Oi0uNSkpPDwxfDApLDEhPSgwfHcpJiYoQT0rKH5+KChBPTcyKitfW00+PjNdKSsoQT49MD8uNTotLjUpKTw8MXwwKSl9ZWxzZSBBPTgsbSs9MTZ9d2hpbGUoMCk7cD1BK3B9X1tnZT4+M109bSxfW2dlKzg+PjNdPXB9ZWxzZSBmb3IoTT1nZSs4fDAs''@;'; + put 'put ''RD1mKzQ4fDAsUj1mKzU2fDAsRz1mKzY0fDAsSz1wZSs4fDAsYVtnZT4+Ml09MCxhW2dlKzQ+PjJdPTAsYVtnZSs4Pj4yXT0wLGFbZ2UrMTI+PjJdPTAsdz0wOzspe2lmKCgwfHcpPj0oMHxhW0Q+PjJdKSlicmVhayBlO1dRKHBlLGMsMHxhWygwfGFbUj4+Ml0pKyh3PDwyKT4+Ml0pLDB8ZmVb''@;'; + put 'put ''Rz4+MF0/KF9bZ2U+PjNdPStfW2dlPj4zXSsgK19bcGU+PjNdLGI9TSxrPSgrX1tNPj4zXT4rX1tLPj4zXT9nZTpwZSkrOHwwKTooX1tNPj4zXT0rX1tNPj4zXSsgK19bSz4+M10sYj1nZSxrPStfW2dlPj4zXT4rX1twZT4+M10/Z2U6cGUpLF9bYj4+M109K19baz4+M10sdz13KzF8MH19d2hp''@;'; + put 'put ''bGUoMCk7YVtmPj4yXT1hW2dlPj4yXSxhW2YrND4+Ml09YVtnZSs0Pj4yXSxhW2YrOD4+Ml09YVtnZSs4Pj4yXSxhW2YrMTI+PjJdPWFbZ2UrMTI+PjJdLGFbbD4+Ml09YVtnZT4+Ml0sYVtsKzQ+PjJdPWFbZ2UrND4+Ml0sYVtsKzg+PjJdPWFbZ2UrOD4+Ml0sYVtsKzEyPj4yXT1hW2dlKzEy''@;'; + put 'put ''Pj4yXSxhZT1iZX1mdW5jdGlvbiBZUShsLGMsZil7Znw9MDt2YXIgQSxrLEQsUixHLEsscGUscD0wLG09MCx3PTAsYj0wLE09MDtwZT1hZSxhZT1hZSszMnwwLEQ9cGUrMTZ8MCxSPXBlLEE9KEc9K19bKGN8PTApPj4zXSktK19bKGx8PTApPj4zXSxwPShLPStfW2MrOD4+M10pLStfW2wrOD4+''@;'; + put 'put ''M10sYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml0sMCE9KDB8Zil8MD09KDB8KGM9MHxhW2wrNTI+PjJdKSl8fChfWyhNPWMrNDB8MCk+PjNdPStfW00+PjNdK0EsX1soTT1jKzQ4fDApPj4zXT0rX1tN''@;'; + put 'put ''Pj4zXStwKSxjPTB8YVsoaz1sKzQ4fDApPj4yXTtlOmRve2lmKDB8Yylmb3IoTT1sKzY0fDAscD0oMD09KDB8ZmVbTT4+MF0pP3A6QSkvKygwfGMpLGI9bCs1NnwwLHc9MDs7KXtpZigoMHx3KT49KDB8YykpYnJlYWsgZTtsPTB8YVsoMHxhW2I+PjJdKSsodzw8Mik+PjJdLGM9fn4ocCorKDB8''@;'; + put 'put ''KG09dysxfDApKSktfn4ocCorKDB8dykpfDAsMHxmZVtNPj4wXT9feShSLCtfW2w+PjNdKyArKDB8YyksSyk6X3koUixHLCtfW2wrOD4+M10rICsoMHxjKSksYVtEPj4yXT1hW1I+PjJdLGFbRCs0Pj4yXT1hW1IrND4+Ml0sYVtEKzg+PjJdPWFbUis4Pj4yXSxhW0QrMTI+PjJdPWFbUisxMj4+''@;'; + put 'put ''Ml0sWVEobCxELGYpLHc9bSxjPTB8YVtrPj4yXX19d2hpbGUoMCk7YWU9cGV9ZnVuY3Rpb24gX3kobCxjLGYpe2Y9K2YsX1sobHw9MCk+PjNdPWM9K2MsX1tsKzg+PjNdPWZ9ZnVuY3Rpb24gVVEobCxjLGYpe2N8PTA7dmFyIEEsdyxELFIsRyxLLHBlLHA9MCxtPTAsYj0wLGs9MCxNPTA7Zm9y''@;'; + put 'put ''KEc9YWUsYWU9YWUrNDh8MCx3PUcrMzJ8MCxNPUcrMTZ8MCxrPUcsZmVbNjUrKGx8PTApPj4wXT1mfD0wLGI9bCsxNnwwLF95KE0scGU9K19bYz4+M10sKEs9K19bKFI9Yys4fDApPj4zXSktK19bbCs4Pj4zXSksYVtiPj4yXT1hW00+PjJdLGFbYis0Pj4yXT1hW00rND4+Ml0sYVtiKzg+PjJd''@;'; + put 'put ''PWFbTSs4Pj4yXSxhW2IrMTI+PjJdPWFbTSsxMj4+Ml0sYj1sKzMyfDAsX3koaywrX1tsPj4zXStwZSxLKSxhW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxrPShiPTB8YVtsKzQ4Pj4yXSktMXwwLE09''@;'; + put 'put ''MD09KDB8ZiksRD1sKzU2fDAsQT1sKzY0fDAsbT0wOyEoKDB8bSk+PSgwfGIpKTspe2Rve2lmKCFNKXtpZihsPTA9PSgwfG0pLHA9KDB8bSk9PSgwfGspLDB8ZmVbQT4+MF0pe2lmKGwpe2w9cD8xNToxMzticmVha31sPXA/Nzo1O2JyZWFrfWlmKGwpe2w9cD8xNToxNDticmVha31sPXA/MTE6''@;'; + put 'put ''MTA7YnJlYWt9bD0wfXdoaWxlKDApO3A9MHxhWygwfGFbRD4+Ml0pKyhtPDwyKT4+Ml0sYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sVVEocCx3LGwmZiksMHxmZVtBPj4wXT9fW2M+PjNdPStfW2Fb''@;'; + put 'put ''KDB8YVtEPj4yXSkrKG08PDIpPj4yXT4+M10rICtfW2M+PjNdOl9bUj4+M109K19bUj4+M10tK19bOCsoMHxhWygwfGFbRD4+Ml0pKyhtPDwyKT4+Ml0pPj4zXSxtPW0rMXwwfWFlPUd9ZnVuY3Rpb24gQ3kobCxjKXtjfD0wLEtIKGx8PTApLEZ0KGMpfWZ1bmN0aW9uIEtIKGwpe3ZhciBmLHAs''@;'; + put 'put ''Yz0wO2ZvcihmPTQ4KyhsfD0wKXwwLHA9bCs1NnwwLGM9MDshKCgwfGMpPj0oMHxhW2Y+PjJdKSk7KUtIKDB8YVsoMHxhW3A+PjJdKSsoYzw8Mik+PjJdKSxjPWMrMXwwO0Z0KDB8YVtsKzYwPj4yXSksSWMoMHxhW2wrNTI+PjJdKSxGdCgwfGFbcD4+Ml0pLEZ0KGwpfWZ1bmN0aW9uIFBhZShs''@;'; + put 'put ''KXt2YXIgZixjPTA7cmV0dXJuKyArKDB8fn4oKGM9NzIqKChmPStNbChsfD0wLDB8YVs0NzE0Nl0sMCwuMDEpKT4oYz0rTWwobCwwfGFbNDcxNDVdLDAsLjAyKSk/ZjpjKSkrKGM+PTA/LjU6LS41KSkpfWZ1bmN0aW9uIFFRKGwsYyl7dmFyIGY7cmV0dXJuKyArKCgrKDB8KGY9fn4oKGw9K2wp''@;'; + put 'put ''LyhjPStjKSkpKSpjKzFlLTU8bCYxKStmfDApKmN9ZnVuY3Rpb24gRmFlKGwpe3JldHVybiAwfCgobD0wfGFbOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSk/OTE9PSgwfGFbYVtsKzQ+PjJdPj4yXSkmMTowKX1mdW5jdGlvbiAkSChsKXtsfD0wO3ZhciBwLGM9MCxmPTAsbT0wLEE9MDtwPTB8''@;'; + put 'put ''YVs0NzI4M107ZTpkb3tpZihwKWZvcihtPTB8YVs0NzI4NF0sZj0wOzspe2lmKCgwfGYpPj0oMHxtKSl7Yz0wO2JyZWFrIGV9aWYoKDB8ZmVbKEE9MHxhWyhjPTB8YVtwKyhmPDwyKT4+Ml0pPj4yXSk+PjBdKT09KDB8ZmVbbD4+MF0pJiYwPT0oMHxqaShBLGwpKSlicmVhayBlO2Y9ZisxfDB9''@;'; + put 'put ''ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBKUShsLGMpe2N8PTA7dmFyIGssTSxELFIsRyxLLHBlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGdlPTAsYmU9MDtpZihwZT1hZSxhZT1hZSsxMTJ8MCxEPXBlKzk2fDAsTT1wZSs4MHwwLEc9cGUrNjR8MCxrPXBlKzQ4fDAs''@;'; + put 'put ''Sz1wZSszMnwwLFI9cGUsbT1wZSsxNnwwLGx8PTApe0E9MHxhW2wrND4+Ml0sdz05MCooMyZhWzExNisoMHxhWzE2KygwfGNyKGw9MHxhW2w+PjJdKSk+PjJdKT4+Ml0pfDAsYVtEPj4yXT1hW2M+PjJdLGFbRCs0Pj4yXT1hW2MrND4+Ml0sYVtEKzg+PjJdPWFbYys4Pj4yXSxhW0QrMTI+PjJd''@;'; + put 'put ''PWFbYysxMj4+Ml0sVTYobSxELHcpLGFbSz4+Ml09YVttPj4yXSxhW0srND4+Ml09YVttKzQ+PjJdLGFbSys4Pj4yXT1hW20rOD4+Ml0sYVtLKzEyPj4yXT1hW20rMTI+PjJdO2U6ZG97aWYoQSlmPStfW0ErOD4+M10scD0rX1tBKzI0Pj4zXSxnZT0rX1tLPj4zXSxsPStfW0E+PjNdPD1nZSYm''@;'; + put 'put ''Z2U8PStfW0ErMTY+PjNdJiYoYj0rX1tLKzg+PjNdLGY8PWIpP2I8PXAmMTowO2Vsc2UgZm9yKCgwfGwpPT0oMHxhWzQ3Mjg3XSk/KG09MHxhWzQ3Mjg4XSxBPTB8YVs0NzI5MF0sdz0wfGFbNDcyODldKTooQT0wfGFbMTIrKDB8YVtsKzE2Pj4yXSk+PjJdLGFbNDcyOTFdPUEsdz0wfGFbQSs0''@;'; + put 'put ''ND4+Ml0sYVs0NzI4OV09dyxtPTB8YVtBKzg+PjJdLGFbNDcyODhdPW0sQT0wfEFyKCgwfGFbQSs0Pj4yXSktMXwwLG0pLEE9KDB8QSk+MD9BOjAsYVs0NzI5MF09QSxhWzQ3Mjg3XT1sKSxsPTAsYz0wOzspe2lmKCgwfGwpPj0oMHxtKSl7bD0xO2JyZWFrIGV9aWYoYVtSPj4yXT1hWyhiZT13''@;'; + put 'put ''KyhBK2w8PDQpfDApPj4yXSxhW1IrND4+Ml09YVtiZSs0Pj4yXSxhW1IrOD4+Ml09YVtiZSs4Pj4yXSxhW1IrMTI+PjJdPWFbYmUrMTI+PjJdLGJlPXcrKEErKChsKzR8MCklKDB8bSl8MCk8PDQpfDAsYVtrPj4yXT1hW0s+PjJdLGFbays0Pj4yXT1hW0srND4+Ml0sYVtrKzg+PjJdPWFbSys4''@;'; + put 'put ''Pj4yXSxhW2srMTI+PjJdPWFbSysxMj4+Ml0sYVtHPj4yXT1hWzQ2NjE0XSxhW0crND4+Ml09YVs0NjYxNV0sYVtHKzg+PjJdPWFbNDY2MTZdLGFbRysxMj4+Ml09YVs0NjYxN10sYVtNPj4yXT1hW1I+PjJdLGFbTSs0Pj4yXT1hW1IrND4+Ml0sYVtNKzg+PjJdPWFbUis4Pj4yXSxhW00rMTI+''@;'; + put 'put ''PjJdPWFbUisxMj4+Ml0sYVtEPj4yXT1hW2JlPj4yXSxhW0QrND4+Ml09YVtiZSs0Pj4yXSxhW0QrOD4+Ml09YVtiZSs4Pj4yXSxhW0QrMTI+PjJdPWFbYmUrMTI+PjJdLDI9PSgwfChjPWMrKDA9PSgwfE15KGssRyxNLEQpKSYxKXwwKSkpe2w9MDticmVha31sPWwrMnwwfX13aGlsZSgwKX1l''@;'; + put 'put ''bHNlIGFbNDcyODddPTAsbD0wO3JldHVybiBhZT1wZSwwfGx9ZnVuY3Rpb24gWFEobCxjKXtsfD0wO3ZhciBwLEEsZj0wLG09MDtyZXR1cm4gQT1hZSxhZT1hZSsxNnwwLDB8KGY9MHxVSShjfD0wLHA9QSkpJiZkMihsLGYpLDB8KGY9MHxhWzQ3MTcyXSkmJjB8KG09MHxIbyhjLGYpKSYmMHxm''@;'; + put 'put ''ZVttPj4wXSYmeGgobCwrTWwoYywwfGFbNDcxNzJdLDEsMCkpLGFlPUEsMHxhW3A+PjJdfWZ1bmN0aW9uIHFIKGwpe3JldHVybiAwfEtRKGx8PTAsMTM0ODAwKX1mdW5jdGlvbiBreShsLGMpe3JldHVybiBsfD0wLGM9MHxCYShjfD0wLDB8YVs0NzE0OF0sMTk1MDU5KSxtYShsLGM9MHxmZVtj''@;'; + put 'put ''Pj4wXT9jOjEzNzMxNCksMHxjfWZ1bmN0aW9uIGVOKGwsYyl7bHw9MDt2YXIgZixwLHcsYixrLE0sbT0wLEE9MDtmPWFlLGFlPWFlKzk2fDAsYj1mKzgwfDAsaz1mKzY0fDAscD1mKzMyfDAsQT1mLF9bOCsoTT1mKzE2fDApPj4zXT0uMzc1KihtPStfWzgwKyhjPTB8YVsxNisoY3w9MCk+PjJd''@;'; + put 'put ''KT4+M10pLF9bTT4+M109LjY2MTQqKHc9K19bYys5Nj4+M10pLGM9YysxNnwwLGFbaz4+Ml09YVtNPj4yXSxhW2srND4+Ml09YVtNKzQ+PjJdLGFbays4Pj4yXT1hW00rOD4+Ml0sYVtrKzEyPj4yXT1hW00rMTI+PjJdLGFbYj4+Ml09YVtjPj4yXSxhW2IrND4+Ml09YVtjKzQ+PjJdLGFbYis4''@;'; + put 'put ''Pj4yXT1hW2MrOD4+Ml0sYVtiKzEyPj4yXT1hW2MrMTI+PjJdLHE1KEEsayxiKSxhW3A+PjJdPWFbQT4+Ml0sYVtwKzQ+PjJdPWFbQSs0Pj4yXSxhW3ArOD4+Ml09YVtBKzg+PjJdLGFbcCsxMj4+Ml09YVtBKzEyPj4yXSxfWyhjPXArMjR8MCk+PjNdPStfWyhBPXArOHwwKT4+M10sX1twKzE2''@;'; + put 'put ''Pj4zXT0rX1twPj4zXS0xLjMyMjgqdyxXbyhsLHAsMiksX1tBPj4zXT1tPStfW0E+PjNdLS43NSptLF9bYz4+M109bSxXbyhsLHAsMiksYWU9Zn1mdW5jdGlvbiBxNShsLGMsZil7dmFyIHA7cD0rX1s4KyhmfD0wKT4+M10rICtfWzgrKGN8PTApPj4zXSxfWyhsfD0wKT4+M109K19bZj4+M10r''@;'; + put 'put ''ICtfW2M+PjNdLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIEtRKGwsYyl7Y3w9MDt2YXIgZj0wO3JldHVybiBmPTB8QmEobHw9MCwwfGFbNDcxNDldLDE5NTA1OSksMHxmZVtmPj4wXT8wfGY6KGY9MHxCYShsLDB8YVs0NzE0OF0sMTk1MDU5KSwwfCgwPT0oMHxmZVtmPj4wXSk/YzpmKSl9ZnVuY3Rp''@;'; + put 'put ''b24gVUkobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtmPTB8QmEobHw9MCwwfGFbNDcxNTddLDE5NTA1OSk7ZTpkb3tpZigwfGZlW2Y+PjBdKXtBPW09MHxaQShmKSxmPTA7dDpmb3IoOzspe2lmKCEocD0wfGFbQT4+Ml0pKWJyZWFrIGU7c3dpdGNoKDB8ZmVbcD4+MF0p''@;'; + put 'put ''e2Nhc2UgMTAyOmlmKCEoMHxqaShwLDExMTEwMSkpKXtBPUErNHwwLGZ8PTE7Y29udGludWUgdH1icmVhaztjYXNlIDExNDppZighKDB8amkocCwxMDYzMTYpKSl7cD1BO2Rve2FbKGI9cCk+PjJdPXc9MHxhWyhwPXArNHwwKT4+Ml19d2hpbGUoMCE9KDB8dykpO2Z8PTQsQT1iPUE7Y29udGlu''@;'; + put 'put ''dWUgdH1pZighKDB8amkocCwxMDYzMzQpKSl7cD1BO2Rve2FbKHc9cCk+PjJdPWI9MHxhWyhwPXArNHwwKT4+Ml19d2hpbGUoMCE9KDB8YikpO2Z8PTMsQT1iPUE7Y29udGludWUgdH1icmVhaztjYXNlIDEwMDppZighKDB8amkocCwxMDYzMjQpKSl7cD1BO2Rve2FbKHc9cCk+PjJdPWI9MHxh''@;'; + put 'put ''WyhwPXArNHwwKT4+Ml19d2hpbGUoMCE9KDB8YikpO2Z8PTgsQT1iPUE7Y29udGludWUgdH1icmVhaztjYXNlIDEwNTppZighKDB8amkocCwxMzQzMzUpKSl7QT1BKzR8MCxmfD0zMjtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTE1OmlmKDA9PSgwfGppKHAsMTA2MzQxKSkmJjB8V2FlKGwpKXtw''@;'; + put 'put ''PUE7ZG97YVsodz1wKT4+Ml09Yj0wfGFbKHA9cCs0fDApPj4yXX13aGlsZSgwIT0oMHxiKSk7Znw9NjQsQT1iPUE7Y29udGludWUgdH1icmVhaztjYXNlIDExOTppZigwPT0oMHxqaShwLDEwNjM0OSkpJiYwfFN5KGwpKXtwPUE7ZG97YVsodz1wKT4+Ml09Yj0wfGFbKHA9cCs0fDApPj4yXX13''@;'; + put 'put ''aGlsZSgwIT0oMHxiKSk7Znw9NTEyLEE9Yj1BO2NvbnRpbnVlIHR9fUE9QSs0fDB9fWVsc2UgbT0wLGY9MH13aGlsZSgwKTtyZXR1cm4ocD0wfGFbOCsoMHxhWzgrKDB8YVtsKzE2Pj4yXSk+PjJdKT4+Ml0pJiYoZnw9YVtwKzQwPj4yXSksYVtjPj4yXT1mLDB8bX1mdW5jdGlvbiBXYWUobCl7''@;'; + put 'put ''dmFyIGM9MDtyZXR1cm4gMHwoMCE9KDB8KGw9MHxhWzgrKDB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKT4+Ml0pKSYmND09KDB8YVtsKzg+PjJdKSYmMD09KDB8KDB8fn4oKGM9K19bbCsxNj4+M10pKyhjPj0wPy41Oi0uNSkpKSU5MCkmJjA9PStfW2wrMjQ+PjNdPzA9PStfW2wrMzI+''@;'; + put 'put ''PjNdJjE6MCl9ZnVuY3Rpb24gU3kobCl7cmV0dXJuIDB8KChsPTB8YVs4KygwfGFbOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSk+PjJdKT8oMHxhW2wrOD4+Ml0pPDMmMTowKX1mdW5jdGlvbiBNeShsLGMsZixwKXt2YXIgbSx3LGIsQT0wO3JldHVybiAxJigrX1s4KyhsfD0wKT4+M10qKG09''@;'; + put 'put ''K19bKHB8PTApPj4zXS0oQT0rX1soZnw9MCk+PjNdKSkrICtfW2w+PjNdKih3PS0oK19bcCs4Pj4zXS0oYj0rX1tmKzg+PjNdKSkpLShBPW0qYitBKncpPj0wXitfWyhjfD0wKT4+M10qdy1BKyArX1tjKzg+PjNdKm0+PTBeMSl8MH1mdW5jdGlvbiBwayhsLGMsZixwLG0sQSl7bHw9MCxmfD0w''@;'; + put 'put ''LHB8PTAsbXw9MCxBfD0wO3ZhciBPZSxMZSxSZSxWZSxxZSxudCxvdCxTdCxsdCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLEhlPTAsV2U9MCxrdD0wLEV0PTA7bHQ9YWUsYWU9YWUrMTkyfDAsbnQ9bHQrMTc2fDAsU3Q9bHQrMTYwfDAsaz1sdCsxNDR8''@;'; + put 'put ''MCxWZT1sdCsxMjh8MCxxZT1sdCsxMTJ8MCxNPWx0Kzk2fDAsRD1sdCs4MHwwLFI9bHQrNjR8MCxPZT1sdCs0OHwwLExlPWx0KzMyfDAsUmU9bHQrMTZ8MCxvdD1sdCwoY3w9MCk/KF95KGssLjUqKChHPStfW2MrMTY+PjNdKSsoYj0rX1tjPj4zXSkpLC41KigoSz0rX1tjKzI0Pj4zXSkrKGdl''@;'; + put 'put ''PStfW2MrOD4+M10pKSksYVtTdD4+Ml09YVtrPj4yXSxhW1N0KzQ+PjJdPWFbays0Pj4yXSxhW1N0Kzg+PjJdPWFbays4Pj4yXSxhW1N0KzEyPj4yXT1hW2srMTI+PjJdLGs9MSxXZT1TdCx3PStfW1N0Pj4zXSxrdD1FdD1TdCs4fDAscGU9K19bRXQ+PjNdKTooYVtTdD4+Ml09MCxhW1N0KzQ+''@;'; + put 'put ''PjJdPTAsYVtTdCs4Pj4yXT0wLGFbU3QrMTI+PjJdPTAsaz0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXXwwKSxHPS41KitfWzgwKyhXZT0wfGFbbCsxNj4+Ml0pPj4zXSx3PStfW1dlKzg4Pj4zXSxnZT1rP0c6dyxHPWs/dzpHLGs9MCxXZT1TdCx3PTAsYj0tRyxLPWdl''@;'; + put 'put ''LGt0PVN0Kzh8MCxwZT0wLGdlPS1nZSksYmU9NCooRz5LP0c6Syk7ZTpkb3tpZigwIT0oMHxwKSYmKEhlPTB8ZmVbcD4+MF0sSGU8PDI0Pj4yNCE9MCkpc3dpdGNoKHA9cCsxfDAsSGU8PDI0Pj4yNHwwKXtjYXNlIDk5OlI9MSxtPTAscD0wLE09MCx3PTAsRD0wO2JyZWFrIGU7Y2FzZSAxMDE6''@;'; + put 'put ''aWYoMHxmZVtwPj4wXSl7Uj0xLG09MCxwPTAsTT0wLHc9MCxEPTE7YnJlYWsgZX1BPyhlZyhWZSxBLHBlLGJlKSxhW1N0Pj4yXT1hW1ZlPj4yXSxhW1N0KzQ+PjJdPWFbVmUrND4+Ml0sYVtTdCs4Pj4yXT1hW1ZlKzg+PjJdLGFbU3QrMTI+PjJdPWFbVmUrMTI+PjJdKTpfW1dlPj4zXT1HLFI9''@;'; + put 'put ''MCxtJj0yLHA9MCxNPTEsdz0wLEQ9MCxrPTE7YnJlYWsgZTtjYXNlIDExNTpzd2l0Y2goX1trdD4+M109Z2UsMHxmZVtwPj4wXSl7Y2FzZSAwOkE/KGVnKHFlLEEsLWJlLHcpLGFbU3Q+PjJdPWFbcWU+PjJdLGFbU3QrND4+Ml09YVtxZSs0Pj4yXSxhW1N0Kzg+PjJdPWFbcWUrOD4+Ml0sYVtT''@;'; + put 'put ''dCsxMj4+Ml09YVtxZSsxMj4+Ml0pOl9bV2U+PjNdPXcsUj0wLG0mPTEscD0wLE09MSx3PS0xLjU3MDc5NjMyNjc5NDg5NjYsRD0wLGs9MTticmVhayBlO2Nhc2UgMTAxOkE/KGVnKE0sQSwtYmUsYmUpLGFbU3Q+PjJdPWFbTT4+Ml0sYVtTdCs0Pj4yXT1hW00rND4+Ml0sYVtTdCs4Pj4yXT1h''@;'; + put 'put ''W00rOD4+Ml0sYVtTdCsxMj4+Ml09YVtNKzEyPj4yXSk6X1tXZT4+M109RyxSPTAsbSY9MyxwPTAsTT0xLHc9LS43ODUzOTgxNjMzOTc0NDgzLEQ9MCxrPTE7YnJlYWsgZTtjYXNlIDExOTpBPyhlZyhELEEsYmU9LWJlLGJlKSxhW1N0Pj4yXT1hW0Q+PjJdLGFbU3QrND4+Ml09YVtEKzQ+PjJd''@;'; + put 'put ''LGFbU3QrOD4+Ml09YVtEKzg+PjJdLGFbU3QrMTI+PjJdPWFbRCsxMj4+Ml0pOl9bV2U+PjNdPWIsUj0wLG0mPTkscD0wLE09MSx3PS0yLjM1NjE5NDQ5MDE5MjM0NSxEPTAsaz0xO2JyZWFrIGU7ZGVmYXVsdDpfW2t0Pj4zXT1wZSxSPTEsbT0wLHA9MCxNPTAsdz0wLEQ9MTticmVhayBlfWNh''@;'; + put 'put ''c2UgMTE5OmlmKDB8ZmVbcD4+MF0pe1I9MSxtPTAscD0wLE09MCx3PTAsRD0xO2JyZWFrIGV9QT8oZWcoUixBLHBlLC1iZSksYVtTdD4+Ml09YVtSPj4yXSxhW1N0KzQ+PjJdPWFbUis0Pj4yXSxhW1N0Kzg+PjJdPWFbUis4Pj4yXSxhW1N0KzEyPj4yXT1hW1IrMTI+PjJdKTpfW1dlPj4zXT1i''@;'; + put 'put ''LFI9MCxtJj04LHA9MCxNPTEsdz0zLjE0MTU5MjY1MzU4OTc5MyxEPTAsaz0xO2JyZWFrIGU7Y2FzZSAxMTA6c3dpdGNoKF9ba3Q+PjNdPUssMHxmZVtwPj4wXSl7Y2FzZSAwOkE/KGVnKE9lLEEsYmUsdyksYVtTdD4+Ml09YVtPZT4+Ml0sYVtTdCs0Pj4yXT1hW09lKzQ+PjJdLGFbU3QrOD4+''@;'; + put 'put ''Ml09YVtPZSs4Pj4yXSxhW1N0KzEyPj4yXT1hW09lKzEyPj4yXSk6X1tXZT4+M109dyxSPTAsbSY9NCxwPTAsTT0xLHc9MS41NzA3OTYzMjY3OTQ4OTY2LEQ9MCxrPTE7YnJlYWsgZTtjYXNlIDEwMTpBPyhlZyhMZSxBLGJlLGJlKSxhW1N0Pj4yXT1hW0xlPj4yXSxhW1N0KzQ+PjJdPWFbTGUr''@;'; + put 'put ''ND4+Ml0sYVtTdCs4Pj4yXT1hW0xlKzg+PjJdLGFbU3QrMTI+PjJdPWFbTGUrMTI+PjJdKTpfW1dlPj4zXT1HLFI9MCxtJj02LHA9MCxNPTEsdz0uNzg1Mzk4MTYzMzk3NDQ4MyxEPTAsaz0xO2JyZWFrIGU7Y2FzZSAxMTk6QT8oZWcoUmUsQSxiZSwtYmUpLGFbU3Q+PjJdPWFbUmU+PjJdLGFb''@;'; + put 'put ''U3QrND4+Ml09YVtSZSs0Pj4yXSxhW1N0Kzg+PjJdPWFbUmUrOD4+Ml0sYVtTdCsxMj4+Ml09YVtSZSsxMj4+Ml0pOl9bV2U+PjNdPWIsUj0wLG0mPTEyLHA9MCxNPTEsdz0yLjM1NjE5NDQ5MDE5MjM0NSxEPTAsaz0xO2JyZWFrIGU7ZGVmYXVsdDpfW2t0Pj4zXT1wZSxSPTEsbT0wLHA9MCxN''@;'; + put 'put ''PTAsdz0wLEQ9MTticmVhayBlfWNhc2UgOTU6Uj0xLHA9MSxNPTAsdz0wLEQ9MDticmVhayBlO2RlZmF1bHQ6Uj0xLG09MCxwPTAsTT0wLHc9MCxEPTE7YnJlYWsgZX1lbHNlIFI9MSxtPTAscD0wLE09MCx3PTAsRD0wfXdoaWxlKDApO3JldHVybiBFdD05MCooMyZhWzExNisoMHxhWzE2Kygw''@;'; + put 'put ''fGNyKGwpKT4+Ml0pPj4yXSl8MCxhW250Pj4yXT1hW1N0Pj4yXSxhW250KzQ+PjJdPWFbU3QrND4+Ml0sYVtudCs4Pj4yXT1hW1N0Kzg+PjJdLGFbbnQrMTI+PjJdPWFbU3QrMTI+PjJdLGpJKG90LG50LEV0KSxhW1N0Pj4yXT1hW290Pj4yXSxhW1N0KzQ+PjJdPWFbb3QrND4+Ml0sYVtTdCs4''@;'; + put 'put ''Pj4yXT1hW290Kzg+PjJdLGFbU3QrMTI+PjJdPWFbb3QrMTI+PjJdLHA8PDI0Pj4yNHx8KG09MHxmdW5jdGlvbiBZYWUobCxjKXtsfD0wLGN8PTA7ZTpkb3tzd2l0Y2goMHxjKXtjYXNlIDM6c3dpdGNoKDB8bCl7Y2FzZSA0Omw9MjticmVhayBlO2Nhc2UgMTpsPTg7YnJlYWsgZTtjYXNlIDg6''@;'; + put 'put ''bD0xO2JyZWFrIGU7Y2FzZSAyOmw9NDticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX1jYXNlIDI6c3dpdGNoKDB8bCl7Y2FzZSA0Omw9MTticmVhayBlO2Nhc2UgMTpsPTQ7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9Y2FzZSAxOnN3aXRjaCgwfGwpe2Nhc2UgNDpsPTI7YnJlYWsgZTtjYXNlIDE6''@;'; + put 'put ''bD04O2JyZWFrIGU7Y2FzZSA4Omw9NDticmVhayBlO2Nhc2UgMjpsPTE7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fX13aGlsZSgwKTtyZXR1cm4gMHxsfShtLDMmYVsxMTYrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+Ml0pKSxmZVtmKzMzPj4wXT1tLGFbZisyND4+Ml09YyxfW2Y+PjNdPSso''@;'; + put 'put ''MHx+figoYj0rX1tXZT4+M10pKyhiPj0wPy41Oi0uNSkpKSxfW2YrOD4+M109KygwfH5+KChiPStfW2t0Pj4zXSkrKGI+PTA/LjU6LS41KSkpLF9bZisxNj4+M109K2Z1bmN0aW9uIFVhZShsLGMpe3N3aXRjaChsPStsLDB8KGN8PTApKXtjYXNlIDM6My4xNDE1OTI2NTM1ODk3OTMhPWw/Mi4z''@;'; + put 'put ''NTYxOTQ0OTAxOTIzNDUhPWw/MS41NzA3OTYzMjY3OTQ4OTY2IT1sPzAhPWw/LS43ODUzOTgxNjMzOTc0NDgzIT1sPy0xLjU3MDc5NjMyNjc5NDg5NjY9PWwmJihsPTMuMTQxNTkyNjUzNTg5NzkzKTpsPTIuMzU2MTk0NDkwMTkyMzQ1Omw9MS41NzA3OTYzMjY3OTQ4OTY2Omw9MDpsPS0uNzg1''@;'; + put 'put ''Mzk4MTYzMzk3NDQ4MzpsPS0xLjU3MDc5NjMyNjc5NDg5NjY7YnJlYWs7Y2FzZSAyOmw9LWw7YnJlYWs7Y2FzZSAxOmwrPS0xLjU3MDc5NjMyNjc5NDg5NjZ9cmV0dXJuK2x9KHcsMyZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXSksbT0wPT0oYj0rX1tXZT4+M10pJjA9PSh3PStf''@;'; + put 'put ''W2t0Pj4zXSk/LTEyODoyNTUmfn4oNDAuNzQzNjY1NDMxNTI1MjEqKChnZT00LjcxMjM4ODk4MDM4NDY5KyhiZT0rVWwoK3csK2IpKSk+PTYuMjgzMTg1MzA3MTc5NTg2P2JlKy0xLjU3MDc5NjMyNjc5NDg5NjY6Z2UpKSxmZVtmKzMyPj4wXT1tLGZlW2YrMjk+PjBdPU0sZmVbZisyOD4+MF09''@;'; + put 'put ''ayxmZVtmKzMwPj4wXT1SLGZlW2YrMzE+PjBdPXAsYWU9bHQsMHxEfWZ1bmN0aW9uICRRKGwsYyl7dmFyIGYscDtjfD0wLGY9YWUsYWU9YWUrMTZ8MCxhWyhwPWYpPj4yXT0wfHRpKGx8PTApLGFbcCs0Pj4yXT1jLCRyKDAsMTA2NDE5LHApLGFlPWZ9ZnVuY3Rpb24gZWcobCxjLGYscCl7bHw9''@;'; + put 'put ''MCxmPStmLHA9K3A7dmFyIG0sQSx3LGIsayxELFIsRyxLLE09MDtHPWFlLGFlPWFlKzEyOHwwLEE9RysxMTJ8MCxiPUcrNDh8MCxrPUcrMTZ8MCxNPUcrMzJ8MCxEPUcsdz0zJmFbMTE2KygwfGFbMTYrKDB8Y3IoUj0wfGFbKGN8PTApPj4yXSkpPj4yXSk+PjJdLF9baz4+M109cCxfW2srOD4+''@;'; + put 'put ''M109ZiwobT0wIT0oMHx3KSkmJihhW0E+PjJdPWFbaz4+Ml0sYVtBKzQ+PjJdPWFbays0Pj4yXSxhW0ErOD4+Ml09YVtrKzg+PjJdLGFbQSsxMj4+Ml09YVtrKzEyPj4yXSxqSShNLEEsOTAqd3wwKSxhW2s+PjJdPWFbTT4+Ml0sYVtrKzQ+PjJdPWFbTSs0Pj4yXSxhW2srOD4+Ml09YVtNKzg+''@;'; + put 'put ''PjJdLGFbaysxMj4+Ml09YVtNKzEyPj4yXSksTT1iKzQ4fDAsSz1iKzMyfDAsYVtiPj4yXT0wLGFbYis0Pj4yXT0wLGFbYis4Pj4yXT0wLGFbYisxMj4+Ml09MCxhW2IrMTY+PjJdPTAsYVtiKzIwPj4yXT0wLGFbYisyND4+Ml09MCxhW2IrMjg+PjJdPTAsYVtLPj4yXT1hW2s+PjJdLGFbSys0''@;'; + put 'put ''Pj4yXT1hW2srND4+Ml0sYVtLKzg+PjJdPWFbays4Pj4yXSxhW0srMTI+PjJdPWFbaysxMj4+Ml0sYVtNPj4yXT1hW2s+PjJdLGFbTSs0Pj4yXT1hW2srND4+Ml0sYVtNKzg+PjJdPWFbays4Pj4yXSxhW00rMTI+PjJdPWFbaysxMj4+Ml0sUUkoYywwfGFbMTIrKDB8YVs0KygwfGFbOCsoMHxh''@;'; + put 'put ''W1IrMTY+PjJdKT4+Ml0pPj4yXSk+PjJdLGIsMSksbSYmKGFbQT4+Ml09YVtiPj4yXSxhW0ErND4+Ml09YVtiKzQ+PjJdLGFbQSs4Pj4yXT1hW2IrOD4+Ml0sYVtBKzEyPj4yXT1hW2IrMTI+PjJdLFU2KEQsQSw5MCp3fDApLGFbYj4+Ml09YVtEPj4yXSxhW2IrND4+Ml09YVtEKzQ+PjJdLGFb''@;'; + put 'put ''Yis4Pj4yXT1hW0QrOD4+Ml0sYVtiKzEyPj4yXT1hW0QrMTI+PjJdKSxhW2w+PjJdPWFbYj4+Ml0sYVtsKzQ+PjJdPWFbYis0Pj4yXSxhW2wrOD4+Ml09YVtiKzg+PjJdLGFbbCsxMj4+Ml09YVtiKzEyPj4yXSxhZT1HfWZ1bmN0aW9uIHRKKGwsYyxmKXtsfD0wLGN8PTA7dmFyIEQsUixHLEss''@;'; + put 'put ''cGUsZ2UsYmUscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2ZvcihiZT1hZSxhZT1hZSsxNDR8MCxSPWJlKzEyOHwwLEQ9YmUrMTEyfDAsRz1iZSsxNnwwLEs9YmUsbT1iZSs5NnwwLEE9YmUrODB8MCxwZT1iZSs2NHwwLGdlPWJlKzQ4fDAsKHA9MHxhWyh3PTUyKyhmfD0wKXwwKT4+Ml0p''@;'; + put 'put ''PyhNPXArNTZ8MCxwPWYrMzJ8MCxhW0Q+PjJdPWFbKGs9ZisxNnwwKT4+Ml0sYVtEKzQ+PjJdPWFbays0Pj4yXSxhW0QrOD4+Ml09YVtrKzg+PjJdLGFbRCsxMj4+Ml09YVtrKzEyPj4yXSxhW1I+PjJdPWFbcD4+Ml0sYVtSKzQ+PjJdPWFbcCs0Pj4yXSxhW1IrOD4+Ml09YVtwKzg+PjJdLGFb''@;'; + put 'put ''UisxMj4+Ml09YVtwKzEyPj4yXSxmdW5jdGlvbiAkYWUobCxjLGYpe3ZhciBwO3A9LjUqKCtfWzgrKGZ8PTApPj4zXSsgK19bOCsoY3w9MCk+PjNdKSxfWyhsfD0wKT4+M109LjUqKCtfW2Y+PjNdKyArX1tjPj4zXSksX1tsKzg+PjNdPXB9KG0sRCxSKSxrPTE2KygwfGFbKHA9YysxNnwwKT4+''@;'; + put 'put ''Ml0pfDAsYVtEPj4yXT1hW20+PjJdLGFbRCs0Pj4yXT1hW20rND4+Ml0sYVtEKzg+PjJdPWFbbSs4Pj4yXSxhW0QrMTI+PjJdPWFbbSsxMj4+Ml0sYVtSPj4yXT1hW2s+PjJdLGFbUis0Pj4yXT1hW2srND4+Ml0sYVtSKzg+PjJdPWFbays4Pj4yXSxhW1IrMTI+PjJdPWFbaysxMj4+Ml0scTUo''@;'; + put 'put ''QSxELFIpLGFbTT4+Ml09YVtBPj4yXSxhW00rND4+Ml09YVtBKzQ+PjJdLGFbTSs4Pj4yXT1hW0ErOD4+Ml0sYVtNKzEyPj4yXT1hW0ErMTI+PjJdLGI3KGwsMTAsMHxhW3c+PjJdKSxreShsLGMpKTpwPWMrMTZ8MCxhW0s+PjJdPWFbKGI9MTYrKDB8YVtwPj4yXSl8MCk+PjJdLGFbSys0Pj4y''@;'; + put 'put ''XT1hW2IrND4+Ml0sYVtLKzg+PjJdPWFbYis4Pj4yXSxhW0srMTI+PjJdPWFbYisxMj4+Ml0sYj1mKzQ4fDAsaz1mKzY0fDAsTT1HKzE2fDAsdz1mKzU2fDAsZj1HKzE2fDAsQT0wOyEoKDB8QSk+PSgwfGFbYj4+Ml0pKTspKDB8QSk+MCYmKG09MHxhWyhwPSgwfGFbdz4+Ml0pKyhBPDwyKXww''@;'; + put 'put ''KT4+Ml0sMHxmZVtrPj4wXT8oYVtHPj4yXT1hWyhtPW0rMTZ8MCk+PjJdLGFbRys0Pj4yXT1hW20rND4+Ml0sYVtHKzg+PjJdPWFbbSs4Pj4yXSxhW0crMTI+PjJdPWFbbSsxMj4+Ml0sX1tmPj4zXT0rX1tHPj4zXSxwPTMyKygwfGFbcD4+Ml0pfDAsbT0xKTooYVtNPj4yXT1hWyhtPW0rMzJ8''@;'; + put 'put ''MCk+PjJdLGFbTSs0Pj4yXT1hW20rND4+Ml0sYVtNKzg+PjJdPWFbbSs4Pj4yXSxhW00rMTI+PjJdPWFbbSsxMj4+Ml0sX1tHPj4zXT0rX1sxNisoMHxhW3A+PjJdKT4+M10scD1NLG09MCksX1tHKyhtPDw0KSs4Pj4zXT0rX1twKzg+PjNdLGFbRD4+Ml09YVtHPj4yXSxhW0QrND4+Ml09YVtH''@;'; + put 'put ''KzQ+PjJdLGFbRCs4Pj4yXT1hW0crOD4+Ml0sYVtEKzEyPj4yXT1hW0crMTI+PjJdLGFbUj4+Ml09YVtLPj4yXSxhW1IrND4+Ml09YVtLKzQ+PjJdLGFbUis4Pj4yXT1hW0srOD4+Ml0sYVtSKzEyPj4yXT1hW0srMTI+PjJdLHE1KHBlLEQsUiksYVtHPj4yXT1hW3BlPj4yXSxhW0crND4+Ml09''@;'; + put 'put ''YVtwZSs0Pj4yXSxhW0crOD4+Ml09YVtwZSs4Pj4yXSxhW0crMTI+PjJdPWFbcGUrMTI+PjJdLGFbRD4+Ml09YVtNPj4yXSxhW0QrND4+Ml09YVtNKzQ+PjJdLGFbRCs4Pj4yXT1hW00rOD4+Ml0sYVtEKzEyPj4yXT1hW00rMTI+PjJdLGFbUj4+Ml09YVtLPj4yXSxhW1IrND4+Ml09YVtLKzQ+''@;'; + put 'put ''PjJdLGFbUis4Pj4yXT1hW0srOD4+Ml0sYVtSKzEyPj4yXT1hW0srMTI+PjJdLHE1KGdlLEQsUiksYVtNPj4yXT1hW2dlPj4yXSxhW00rND4+Ml09YVtnZSs0Pj4yXSxhW00rOD4+Ml09YVtnZSs4Pj4yXSxhW00rMTI+PjJdPWFbZ2UrMTI+PjJdLFdvKGwsRywyKSksdEoobCxjLDB8YVsoMHxh''@;'; + put 'put ''W3c+PjJdKSsoQTw8Mik+PjJdKSxBPUErMXwwO2FlPWJlfWZ1bmN0aW9uIG5KKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTA7MCE9KDB8KGY9MHxhWzYwKyhsfD0wKT4+Ml0pKSYmKDB8ZmVbZj4+MF0pPT0oMHxmZVtjPj4wXSkmJjA9PSgwfGppKGYsYykpfHwocD00KTtlOmRve2lmKDQ9PSgw''@;'; + put 'put ''fHApKWZvcihtPWwrNTZ8MCxwPTB8YVtsKzQ4Pj4yXSxmPTA7Oyl7aWYoKDB8Zik+PSgwfHApKXtsPTA7YnJlYWsgZX1pZihsPTB8bkooMHxhWygwfGFbbT4+Ml0pKyhmPDwyKT4+Ml0sYykpYnJlYWs7Zj1mKzF8MH19d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBySihsLGMpe2x8PTAs''@;'; + put 'put ''Y3w9MDt2YXIgZ2UsYmUsT2UsTGUsUmUsSGUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDtIZT1hZSxhZT1hZSsxNDR8MCxPZT1IZSsxMTJ8MCxiZT1IZSs5NnwwLExlPUhlKzgwfDAsZ2U9SGUrNjR8MCxSZT1IZSszMnwwLEs9SGUrMTZ8MCxw''@;'; + put 'put ''ZT1IZSxBPUhlKzQ4fDA7ZG97aWYobCl7aWYoYj0wfGFbbCs0Pj4yXSxSPTkwKigzJmFbMTE2KygwfGFbMTYrKDB8Y3Ioaz0wfGFbbD4+Ml0pKT4+Ml0pPj4yXSl8MCxhW09lPj4yXT1hW2M+PjJdLGFbT2UrND4+Ml09YVtjKzQ+PjJdLGFbT2UrOD4+Ml09YVtjKzg+PjJdLGFbT2UrMTI+PjJd''@;'; + put 'put ''PWFbYysxMj4+Ml0sVTYoQSxPZSxSKSxhW1JlPj4yXT1hW0E+PjJdLGFbUmUrND4+Ml09YVtBKzQ+PjJdLGFbUmUrOD4+Ml09YVtBKzg+PjJdLGFbUmUrMTI+PjJdPWFbQSsxMj4+Ml0sMHxiKXtpZighKCtfW2I+PjNdPD0oZj0rX1tSZT4+M10pKSl7bD0wO2JyZWFrfWlmKCEoZjw9K19bYisx''@;'; + put 'put ''Nj4+M10pKXtsPTA7YnJlYWt9aWYoISgrX1tiKzg+PjNdPD0oZj0rX1tSZSs4Pj4zXSkpKXtsPTA7YnJlYWt9bD1mPD0rX1tiKzI0Pj4zXTticmVha31pZigoMHxrKT09KDB8YVs0NzI5Ml0pPyhmPStfWzIzMzA5XSxwPStfWzIzMzEwXSx3PStfWzIzMzExXSk6KGFbNDcyOTNdPWM9MHxhWzEy''@;'; + put 'put ''KygwfGFbKGw9aysxNnwwKT4+Ml0pPj4yXSxhWzQ3Mjk0XT1hW2MrNDQ+PjJdLGFbNDcyOTVdPWFbYys4Pj4yXSwyMDQ4JmFbYys0MD4+Ml0/KGdKKE9lLGMpLHc9K19bT2UrMTY+PjNdLStfW09lPj4zXSxtPStfW09lKzI0Pj4zXS0rX1tPZSs4Pj4zXSxSPTA9PSgxJmFbMTE2KygwfGFbMTYr''@;'; + put 'put ''KDB8Y3IoaykpPj4yXSk+PjJdfDApLF9bKFI/MTg2NDk2OjE4NjUwNCk+PjNdPXcsX1soUj8xODY1MDQ6MTg2NDk2KT4+M109bSk6KEQ9MD09KDEmYVsxMTYrKDB8YVsxNisoMHxjcihrKSk+PjJdKT4+Ml18MCksX1soRD8xODY0OTY6MTg2NTA0KT4+M109K19bOTYrKFI9MHxhW2w+PjJdKT4+''@;'; + put 'put ''M10rICtfW1IrODg+PjNdLF9bKEQ/MTg2NTA0OjE4NjQ5Nik+PjNdPStfW1IrODA+PjNdLG09KygwfH5+KChtPTcyKitfW1IrNDA+PjNdKSsobT49MD8uNTotLjUpKSksdz0rKDB8fn4oKHc9NzIqK19bUiszMj4+M10pKyh3Pj0wPy41Oi0uNSkpKSksMD09KGY9K19bMjMzMTJdKSYmKF9bMjMz''@;'; + put 'put ''MTJdPTEsZj0xKSwwPT0ocD0rX1syMzMxM10pJiYoX1syMzMxM109MSxwPTEpLF9bMjMzMDldPWY9dy9mLF9bMjMzMTBdPXA9bS9wLF9bMjMzMTFdPXcqPS41LF9bMjMzMTRdPS41Km0sUj0wfEFyKCgwfGFbNCsoMHxhWzQ3MjkzXSk+PjJdKS0xfDAsMHxhWzQ3Mjk1XSksYVs0NzI5Nl09KDB8''@;'; + put 'put ''Uik+MD9SOjAsYVs0NzI5Ml09ayksX1tSZT4+M109bT0rX1tSZT4+M10qZixfWyhSPVJlKzh8MCk+PjNdPWY9K19bUj4+M10qcCwrZW8oK20pPnd8fChwPStlbygrZikpPihHPStfWzIzMzE0XSkpbD0wO2Vsc2V7aWYoKDB8KFI9MHxhWzQ3Mjk1XSkpPDMpe2w9K0t5KG0vdyxmL0cpPDE7YnJl''@;'; + put 'put ''YWt9aWYobD0oMSsoYz0oMHxhWzQ3Mjk3XSklKDB8Uil8MCl8MCklKDB8Uil8MCxhW0s+PjJdPWFbKEQ9KGs9MHxhWzQ3Mjk0XSkrKChNPTB8YVs0NzI5Nl0pK2M8PDQpfDApPj4yXSxhW0srND4+Ml09YVtEKzQ+PjJdLGFbSys4Pj4yXT1hW0QrOD4+Ml0sYVtLKzEyPj4yXT1hW0QrMTI+PjJd''@;'; + put 'put ''LGFbcGU+PjJdPWFbKEQ9aysoTStsPDw0KXwwKT4+Ml0sYVtwZSs0Pj4yXT1hW0QrND4+Ml0sYVtwZSs4Pj4yXT1hW0QrOD4+Ml0sYVtwZSsxMj4+Ml09YVtEKzEyPj4yXSxhW2dlPj4yXT1hW1JlPj4yXSxhW2dlKzQ+PjJdPWFbUmUrND4+Ml0sYVtnZSs4Pj4yXT1hW1JlKzg+PjJdLGFbZ2Ur''@;'; + put 'put ''MTI+PjJdPWFbUmUrMTI+PjJdLGFbTGU+PjJdPWFbNDY2MzBdLGFbTGUrND4+Ml09YVs0NjYzMV0sYVtMZSs4Pj4yXT1hWzQ2NjMyXSxhW0xlKzEyPj4yXT1hWzQ2NjMzXSxhW2JlPj4yXT1hW0s+PjJdLGFbYmUrND4+Ml09YVtLKzQ+PjJdLGFbYmUrOD4+Ml09YVtLKzg+PjJdLGFbYmUrMTI+''@;'; + put 'put ''PjJdPWFbSysxMj4+Ml0sYVtPZT4+Ml09YVtEPj4yXSxhW09lKzQ+PjJdPWFbRCs0Pj4yXSxhW09lKzg+PjJdPWFbRCs4Pj4yXSxhW09lKzEyPj4yXT1hW0QrMTI+PjJdLDB8TXkoZ2UsTGUsYmUsT2UpKXtpZihhW2dlPj4yXT1hW1JlPj4yXSxhW2dlKzQ+PjJdPWFbUmUrND4+Ml0sYVtnZSs4''@;'; + put 'put ''Pj4yXT1hW1JlKzg+PjJdLGFbZ2UrMTI+PjJdPWFbUmUrMTI+PjJdLGFbTGU+PjJdPWFbSz4+Ml0sYVtMZSs0Pj4yXT1hW0srND4+Ml0sYVtMZSs4Pj4yXT1hW0srOD4+Ml0sYVtMZSsxMj4+Ml09YVtLKzEyPj4yXSxhW2JlPj4yXT1hW3BlPj4yXSxhW2JlKzQ+PjJdPWFbcGUrND4+Ml0sYVti''@;'; + put 'put ''ZSs4Pj4yXT1hW3BlKzg+PjJdLGFbYmUrMTI+PjJdPWFbcGUrMTI+PjJdLGFbT2U+PjJdPWFbNDY2MzBdLGFbT2UrND4+Ml09YVs0NjYzMV0sYVtPZSs4Pj4yXT1hWzQ2NjMyXSxhW09lKzEyPj4yXT1hWzQ2NjMzXSwoRD0wIT0oMHxNeShnZSxMZSxiZSxPZSkpKSYmKGFbZ2U+PjJdPWFbUmU+''@;'; + put 'put ''PjJdLGFbZ2UrND4+Ml09YVtSZSs0Pj4yXSxhW2dlKzg+PjJdPWFbUmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtMZT4+Ml09YVtwZT4+Ml0sYVtMZSs0Pj4yXT1hW3BlKzQ+PjJdLGFbTGUrOD4+Ml09YVtwZSs4Pj4yXSxhW0xlKzEyPj4yXT1hW3BlKzEyPj4yXSxhW2JlPj4y''@;'; + put 'put ''XT1hWzQ2NjMwXSxhW2JlKzQ+PjJdPWFbNDY2MzFdLGFbYmUrOD4+Ml09YVs0NjYzMl0sYVtiZSsxMj4+Ml09YVs0NjYzM10sYVtPZT4+Ml09YVtLPj4yXSxhW09lKzQ+PjJdPWFbSys0Pj4yXSxhW09lKzg+PjJdPWFbSys4Pj4yXSxhW09lKzEyPj4yXT1hW0srMTI+PjJdLDAhPSgwfE15KGdl''@;'; + put 'put ''LExlLGJlLE9lKSkpKXtsPTE7YnJlYWt9Zm9yKGI9YyxjPTE7Oyl7aWYoKDB8Yyk+PSgwfFIpKXtjPTMxO2JyZWFrfWlmKEQ/KEE9bCxsPShsKzF8MCklKDB8Uil8MCk6KEE9KGIrLTErUnwwKSUoMHxSKXwwLGw9YiksSz1rKyhNK0E8PDQpfDAscGU9aysoTStsPDw0KXwwLGFbZ2U+PjJdPWFb''@;'; + put 'put ''UmU+PjJdLGFbZ2UrND4+Ml09YVtSZSs0Pj4yXSxhW2dlKzg+PjJdPWFbUmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtMZT4+Ml09YVs0NjYzMF0sYVtMZSs0Pj4yXT1hWzQ2NjMxXSxhW0xlKzg+PjJdPWFbNDY2MzJdLGFbTGUrMTI+PjJdPWFbNDY2MzNdLGFbYmU+PjJdPWFb''@;'; + put 'put ''Sz4+Ml0sYVtiZSs0Pj4yXT1hW0srND4+Ml0sYVtiZSs4Pj4yXT1hW0srOD4+Ml0sYVtiZSsxMj4+Ml09YVtLKzEyPj4yXSxhW09lPj4yXT1hW3BlPj4yXSxhW09lKzQ+PjJdPWFbcGUrND4+Ml0sYVtPZSs4Pj4yXT1hW3BlKzg+PjJdLGFbT2UrMTI+PjJdPWFbcGUrMTI+PjJdLCEoMHxNeShn''@;'; + put 'put ''ZSxMZSxiZSxPZSkpKXtjPTMwO2JyZWFrfWI9QSxjPWMrMXwwfWlmKDMwPT0oMHxjKSl7YVs0NzI5N109QSxsPTA7YnJlYWt9aWYoMzE9PSgwfGMpKXthWzQ3Mjk3XT1iLGw9MTticmVha319ZWxzZSBsPTB9fWVsc2UgYVs0NzI5Ml09MCxsPTB9d2hpbGUoMCk7cmV0dXJuIGFlPUhlLDEmbHww''@;'; + put 'put ''fWZ1bmN0aW9uIG5OKGwsYyl7Y3w9MDt2YXIgbSxiLGY9MCxwPTAsQT0wLHc9MCxrPTA7cmV0dXJuIGI9YWUsYWU9YWUrMzJ8MCxtPWIrMTZ8MCx3PWIsKGx8PTApPyhrPTkwKigzJmFbMTE2KygwfGFbMTYrKDB8Y3IobD0wfGFbbD4+Ml0pKT4+Ml0pPj4yXSl8MCxhW20+PjJdPWFbYz4+Ml0s''@;'; + put 'put ''YVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxVNih3LG0sayksQT0rX1t3Pj4zXSxwPStfW3crOD4+M10sKDB8bCk9PSgwfGFbNDczMDBdKT9mPStfWzIzMzE3XTooX1syMzMxN109Zj0rX1soMHxhWzQ0Kyh3PTB8YVsxMisoMHxh''@;'; + put 'put ''W2wrMTY+PjJdKT4+Ml0pPj4yXSkrKCgxfCgoMHwoaz0oYVt3KzQ+PjJdPDwxKS0yfDApKT4wP2s6MCkpPDw0KT4+M10sYVs0NzMwMF09bCksbD0rZW8oK0EpPmZ8K2VvKCtwKT5mPzA6K0t5KEEscCk8PWYmMSk6KGFbNDczMDBdPTAsbD0wKSxhZT1iLDB8bH1mdW5jdGlvbiBFeShsLGMsZixw''@;'; + put 'put ''KXt2YXIgbSxBO2x8PTAsbT1hZSxhZT1hZSs0OHwwLEE9bSxmPTB8ZnVuY3Rpb24gbmxlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIFZlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxxZT0wLG50PTAs''@;'; + put 'put ''V2U9MDtWZT1hZSxhZT1hZSszMnwwLEhlPVZlLG09VmUrMjR8MCxiPVZlKzE2fDAsUmU9MyZhWzExNisoMHxhWzE2KygwfGFbNjArKDB8Y3IobHw9MCkpPj4yXSk+PjJdKT4+Ml0sYVtIZT4+Ml09YVsoTGU9MTYrKDB8YVsocD1sKzE2fDApPj4yXSl8MCk+PjJdLGFbSGUrND4+Ml09YVtMZSs0''@;'; + put 'put ''Pj4yXSxhW0hlKzg+PjJdPWFbTGUrOD4+Ml0sYVtIZSsxMj4+Ml09YVtMZSsxMj4+Ml0saUoobSxIZSxSZSksYVtIZT4+Ml09YVsoTGU9MTYrKDB8YVtjKzE2Pj4yXSl8MCk+PjJdLGFbSGUrND4+Ml09YVtMZSs0Pj4yXSxhW0hlKzg+PjJdPWFbTGUrOD4+Ml0sYVtIZSsxMj4+Ml09YVtMZSsx''@;'; + put 'put ''Mj4+Ml0saUooYixIZSxSZSksSGU9MjU1JihSZT0wfGZlW2YrMzM+PjBdKTtlOmRve3N3aXRjaChSZTw8MjQ+PjI0KXtjYXNlIDA6Y2FzZSAxNTpjPTA7YnJlYWs7ZGVmYXVsdDpmb3IoKGM9MHxhW2YrMjQ+PjJdKT8oTT0rX1tjPj4zXSxBPStfW2MrMTY+PjNdLGs9K19bYysyND4+M10sdz0r''@;'; + put 'put ''X1tjKzg+PjNdKTooUmU9MD09KDEmYVsxMTYrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+Ml18MCkscWU9LShudD0uNSorX1s4MCsoTGU9MHxhW3A+PjJdKT4+M10pLHc9LShrPStfW0xlKzg4Pj4zXSksTT1SZT93OnFlLEE9UmU/azpudCxrPVJlP250Omssdz1SZT9xZTp3KSxSZT0wfGFbbT4+''@;'; + put 'put ''Ml0sT2U9MHxhW20rND4+Ml0sTGU9MHxhW2I+PjJdLHBlPTB8YVtiKzQ+PjJdLGdlPX5+dyxiZT1+figuNSooQStNKSksSz1+fkEsRz1+figuNSooayt3KSksUj1+fmssRD1+fk0sbT0wLGI9MCxjPTAsZj0wLGw9MDs7KXtpZig0PT0oMHxiKSlicmVhayBlO2lmKDE8PGImSGUpe3N3aXRjaCgw''@;'; + put 'put ''fGIpe2Nhc2UgMDpmPWJlLGw9Z2U7YnJlYWs7Y2FzZSAxOmY9SyxsPUc7YnJlYWs7Y2FzZSAyOmY9YmUsbD1SO2JyZWFrO2Nhc2UgMzpmPUQsbD1HfXA9KGY9UmUrZnwwKS1MZXwwLDA9PSgwfGMpfCgwfChwPSgwfEFyKFdlPShsPU9lK2x8MCktcGV8MCxXZSkpKygwfEFyKHAscCkpfDApKTwo''@;'; + put 'put ''MHxtKT9jPTB8YVsyMjAyOCsoYjw8Mik+PjJdOnA9bX1lbHNlIHA9bTttPXAsYj1iKzF8MH19fXdoaWxlKDApO3JldHVybiBhZT1WZSwwfGN9KGN8PTAsZnw9MCxwfD0wKSxhW0ErMzY+PjJdPWFbcCszNj4+Ml0scGsoYywwfGFbcCsyND4+Ml0sQSxmLDB8SnRbcCszMz4+MF0sMCksYz1BLGY9''@;'; + put 'put ''bCs0MHwwO2Rve2FbbD4+Ml09YVtjPj4yXSxsPWwrNHwwLGM9Yys0fDB9d2hpbGUoKDB8bCk8KDB8ZikpO2FlPW19ZnVuY3Rpb24gaUoobCxjLGYpe2x8PTAsY3w9MDt2YXIgcD0wLG09MDtzd2l0Y2goMHwoZnw9MCkpe2Nhc2UgMDptPStfW2M+PjNdLHA9K19bYys4Pj4zXTticmVhaztjYXNl''@;'; + put 'put ''IDI6bT0rX1tjPj4zXSxwPS0rX1tjKzg+PjNdO2JyZWFrO2Nhc2UgMTptPS0rX1tjKzg+PjNdLHA9K19bYz4+M107YnJlYWs7Y2FzZSAzOm09K19bYys4Pj4zXSxwPStfW2M+PjNdO2JyZWFrO2RlZmF1bHQ6bT0wLHA9MH1hW2w+PjJdPX5+KG0rKG0+PTA/LjU6LS41KSksYVtsKzQ+PjJdPX5+''@;'; + put 'put ''KHArKHA+PTA/LjU6LS41KSl9ZnVuY3Rpb24gcmxlKGwpe3ZhciBtLEEsdyxjPTAsZj0wLHA9MDtpZih3PWFlLGFlPWFlKzgwfDAscD13KzQwfDAsQT13LGM9MTYrKGY9MHxhWyhtPTE2KyhsfD0wKXwwKT4+Ml0pfDAsMHxmZVtmKzQ3Pj4wXSl7RXkocCwwfGFbKDM9PSgwfChmPTMmYVtsPj4y''@;'; + put 'put ''XSkpP2w6bCs0OHwwKSs0MD4+Ml0sMHxhWygyPT0oMHxmKT9sOmwrLTQ4fDApKzQwPj4yXSxjKSxmPXAscD1jKzQwfDA7ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSk7Zj0wfGFbbT4+Ml19aWYoYz1mKzU2fDAsMHxmZVtmKzg3Pj4wXSl7RXko''@;'; + put 'put ''QSwwfGFbKDI9PSgwfChmPTMmYVtsPj4yXSkpP2w6bCstNDh8MCkrNDA+PjJdLDB8YVsoMz09KDB8Zik/bDpsKzQ4fDApKzQwPj4yXSxjKSxmPUEscD1jKzQwfDA7ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSl9YWU9d31mdW5jdGlvbiBRSShs''@;'; + put 'put ''LGMsZixwKXtsfD0wLGN8PTAsZnw9MDt2YXIgSyxnZSxiZSxPZSxMZSxSZSxxZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxwZT0wLEhlPTAsVmU9MCxudD0wO2ZvcihxZT1hZSxhZT1hZSsxOTJ8MCxnZT1xZSsxNzZ8MCxIZT1xZSsxMTJ8MCxWZT1xZSs0OHwwLGJlPXFl''@;'; + put 'put ''KzMyfDAsT2U9cWUrMjR8MCxMZT1xZSsxNnwwLFJlPXFlLChwfD0wKTw8MjQ+PjI0PyhhW2JlPj4yXT1hW2Y+PjJdLGFbYmUrND4+Ml09YVtmKzQ+PjJdLGFbYmUrOD4+Ml09YVtmKzg+PjJdLGFbYmUrMTI+PjJdPWFbZisxMj4+Ml0saz1MZSxNPU9lLEQ9MCxSPUhlKTooYVtiZT4+Ml09YVso''@;'; + put 'put ''az1mKzQ4fDApPj4yXSxhW2JlKzQ+PjJdPWFbays0Pj4yXSxhW2JlKzg+PjJdPWFbays4Pj4yXSxhW2JlKzEyPj4yXT1hW2srMTI+PjJdLGs9T2UsTT1MZSxEPUhlLFI9MCksX1tPZT4+M109MCxfW0xlPj4zXT0xLEs9YmUrOHwwLG09MCxBPTEsYj0wLEc9K19bYmU+PjNdOzspe3BlPStfW0s+''@;'; + put 'put ''PjNdLHd1KFJlLGYsMyxtPS41KihtK0EpLEQsUiksYVtiZT4+Ml09YVtSZT4+Ml0sYVtiZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbYmUrOD4+Ml09YVtSZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW1JlKzEyPj4yXSxhW2dlPj4yXT1hW1JlPj4yXSxhW2dlKzQ+PjJdPWFbUmUrND4+Ml0sYVtnZSs4Pj4y''@;'; + put 'put ''XT1hW1JlKzg+PjJdLGFbZ2UrMTI+PjJdPWFbUmUrMTI+PjJdO2U6ZG97aWYoKDB8QmlbMTI3JmNdKGwsZ2UpKTw8MjQ+PjI0KXA9TTtlbHNlIGZvcihwPTA7Oyl7aWYoND09KDB8cCkpe3A9ayxiPTE7YnJlYWsgZX1hWyhiPVZlKyhwPDw0KXwwKT4+Ml09YVsobnQ9SGUrKHA8PDQpfDApPj4y''@;'; + put 'put ''XSxhW2IrND4+Ml09YVtudCs0Pj4yXSxhW2IrOD4+Ml09YVtudCs4Pj4yXSxhW2IrMTI+PjJdPWFbbnQrMTI+PjJdLHA9cCsxfDB9fXdoaWxlKDApO2lmKF9bcD4+M109bSwhKCgoRy09dz0rX1tiZT4+M10pPj0wP0c6LUcpPi41fHwocGUtPStfW0s+PjNdLChwZT49MD9wZTotcGUpPi41KSkp''@;'; + put 'put ''YnJlYWs7bT0rX1tPZT4+M10sQT0rX1tMZT4+M10sRz13fWU6ZG97aWYoYjw8MjQ+PjI0KWZvcihwPTA7Oyl7aWYoND09KDB8cCkpYnJlYWsgZTthWyhudD1mKyhwPDw0KXwwKT4+Ml09YVsoSGU9VmUrKHA8PDQpfDApPj4yXSxhW250KzQ+PjJdPWFbSGUrND4+Ml0sYVtudCs4Pj4yXT1hW0hl''@;'; + put 'put ''Kzg+PjJdLGFbbnQrMTI+PjJdPWFbSGUrMTI+PjJdLHA9cCsxfDB9ZWxzZSBmb3IocD0wOzspe2lmKDQ9PSgwfHApKWJyZWFrIGU7YVsobnQ9ZisocDw8NCl8MCk+PjJdPWFbKFZlPUhlKyhwPDw0KXwwKT4+Ml0sYVtudCs0Pj4yXT1hW1ZlKzQ+PjJdLGFbbnQrOD4+Ml09YVtWZSs4Pj4yXSxh''@;'; + put 'put ''W250KzEyPj4yXT1hW1ZlKzEyPj4yXSxwPXArMXwwfX13aGlsZSgwKTthZT1xZX1mdW5jdGlvbiByTihsLGMsZixwKXt2YXIgbSxBLHcsYixrLE0sRDtmb3IobHw9MCxmfD0wLHB8PTAsRD1hZSxhZT1hZSs2NHwwLE09RCxrPStfWzk2KyhBPTB8YVsoYj0xNisoY3w9MCl8MCk+PjJdKT4+M10s''@;'; + put 'put ''dz1BKzE2fDAsbT1BKzI0fDAsYz0wOzQhPSgwfGMpOylfW00rKGM8PDQpPj4zXT0rX1tmKyhjPDw0KT4+M10tK19bdz4+M10sX1tNKyhjPDw0KSs4Pj4zXT0rX1tmKyhjPDw0KSs4Pj4zXS0rX1ttPj4zXSxjPWMrMXwwO2ZvcihRSShsLDB8YVsxMisoMHxhWzQrKDB8YVtBKzg+PjJdKT4+Ml0p''@;'; + put 'put ''Pj4yXSxNLHApLGM9MDs0IT0oMHxjKTspX1tmKyhjPDw0KT4+M109K19bMTYrKHA9MHxhW2I+PjJdKT4+M10rICtfW00rKGM8PDQpPj4zXSxfW2YrKGM8PDQpKzg+PjNdPStfW3ArMjQ+PjNdKyArX1tNKyhjPDw0KSs4Pj4zXSxjPWMrMXwwO19bOTYrKDB8YVtiPj4yXSk+PjNdPWssYWU9RH1m''@;'; + put 'put ''dW5jdGlvbiBpTihsLGMpe2x8PTAsY3w9MDtmb3IodmFyIGY9MCxwPTA7MHxmZVsxMTIrKGw9MHxhWyhwPWwrMTZ8MCk+PjJdKT4+MF07KWw9MHxhW2wrMTE2Pj4yXTsobD0wfGFbbCs4Pj4yXSl8fChsPTB8dnIoNDApLGFbOCsoMHxhW3A+PjJdKT4+Ml09bCksbD0oZj0wfGFbbD4+Ml0pPzB8''@;'; + put 'put ''VjAoZiw0OCsoNDgqKDB8YVtsKzQ+PjJdKXwwKXwwKTowfFFuKDQ4Kyg0OCooMHxhW2wrND4+Ml0pfDApfDApLGFbKHA9MHxhWzgrKDB8YVtwPj4yXSk+PjJdKT4+Ml09bCxhWyhwPXArNHwwKT4+Ml09MSsoZj0wfGFbcD4+Ml0pLGFbKHA9bCsoNDgqZnwwKXwwKT4+Ml09MHx2cihjPDw0KSxh''@;'; + put 'put ''W2wrKDQ4KmZ8MCkrND4+Ml09YyxmPTQwKyhsPWwrKDQ4KmZ8MCkrOHwwKXwwO2Rve2FbbD4+Ml09MCxsPWwrNHwwfXdoaWxlKCgwfGwpPCgwfGYpKTtyZXR1cm4gMHxwfWZ1bmN0aW9uIEF1KGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgZ2UsTGUsVmUscWUsV2UsQT0wLHc9''@;'; + put 'put ''MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxiZT0wLE9lPTAsUmU9MCxIZT0wLG90PTAsU3Q9MDtmb3IoV2U9YWUsYWU9YWUrOTZ8MCxWZT1XZSsxNnwwLGdlPVdlLExlPVdlKzkyfDAsUmU9V2UrODh8MCxiZT1XZSs4MHwwLEhlPTB8Y3IoYj0wfGFbKDM9PSgzJmFbKGx8PTAp''@;'; + put 'put ''Pj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSxxZT0wfGlOKGwscCksaz1sOzB8ZmVbMTEyKyhNPTB8YVtrKzE2Pj4yXSk+PjBdOylrPTB8YVtNKzExNj4+Ml07aWYoMD09KDB8ZmVbbSs4Pj4wXSkmJigwfGFbMjMyKyhBPTB8YVtiKzE2Pj4yXSk+PjJdKT09KDB8YVsyMzIrKHc9MHxhW2MrMTY+''@;'; + put 'put ''PjJdKT4+Ml0pPyhPZT0oRD0oMHxhW0ErMjM2Pj4yXSk+KDB8YVt3KzIzNj4+Ml0pKT9iOmMsYj1EP2M6Yik6T2U9YywoMHxiKT09KDB8YVsoMz09KDMmYVtrPj4yXXwwKT9rOmsrNDh8MCkrNDA+PjJdKT8oQT1NKzgwfDAsdz1NKzQwfDAsRD0wfEp0W00rODY+PjBdLGM9MHxKdFtNKzQ2Pj4w''@;'; + put 'put ''XSk6KEE9TSs0MHwwLHc9TSs4MHwwLEQ9MHxKdFtNKzQ2Pj4wXSxjPTB8SnRbTSs4Nj4+MF0pLE09MHxhW0E+PjJdLEE9MHxhW3c+PjJdLDAhPSgwfGMpJiYwIT0oMHwoUj0wfGFbOCsoMHxhWyhHPWIrMTZ8MCk+PjJdKT4+Ml0pKSYmMCE9KDB8YVsxMisoMHxhW1IrND4+Ml0pPj4yXSkpe2Zv''@;'; + put 'put ''cihhW2JlPj4yXT1iLGFbYmUrND4+Ml09QSxBPXArLTR8MCxjPWdlKzh8MCx3PTA7ISgoMHx3KT49KDB8QSkpJiYoX1tnZT4+M109K19bZisoKGs9dyszfDApPDw0KT4+M10tK19bMTYrKFI9MHxhW0c+PjJdKT4+M10sX1tjPj4zXT0rX1tmKyhrPDw0KSs4Pj4zXS0rX1tSKzI0Pj4zXSxSPTB8''@;'; + put 'put ''YVsxMisoMHxhWzQrKDB8YVtSKzg+PjJdKT4+Ml0pPj4yXSxhW1ZlPj4yXT1hW2dlPj4yXSxhW1ZlKzQ+PjJdPWFbZ2UrND4+Ml0sYVtWZSs4Pj4yXT1hW2dlKzg+PjJdLGFbVmUrMTI+PjJdPWFbZ2UrMTI+PjJdLCgwfEJpWzEyNyZSXShiZSxWZSkpPDwyND4+MjQpOyl3PWs7YVtMZT4+Ml09''@;'; + put 'put ''dyxyTihiZSxiLGYrKHc8PDQpfDAsMSl9ZWxzZSBhW0xlPj4yXT0wLHc9MDtpZigwIT0oMHxEKSYmMCE9KDB8KEs9MHxhWzgrKDB8YVsocGU9T2UrMTZ8MCk+PjJdKT4+Ml0pKSYmMCE9KDB8YVsxMisoMHxhW0srND4+Ml0pPj4yXSkpe2ZvcihhW2JlPj4yXT1PZSxhW2JlKzQ+PjJdPU0sYz1n''@;'; + put 'put ''ZSs4fDAsQT1iPXArLTR8MDshKCgwfEEpPD0wKSYmKF9bZ2U+PjNdPStfW2YrKEE8PDQpPj4zXS0rX1sxNisocD0wfGFbcGU+PjJdKT4+M10sX1tjPj4zXT0rX1tmKyhBPDw0KSs4Pj4zXS0rX1twKzI0Pj4zXSxwPTB8YVsxMisoMHxhWzQrKDB8YVtwKzg+PjJdKT4+Ml0pPj4yXSxhW1ZlPj4y''@;'; + put 'put ''XT1hW2dlPj4yXSxhW1ZlKzQ+PjJdPWFbZ2UrND4+Ml0sYVtWZSs4Pj4yXT1hW2dlKzg+PjJdLGFbVmUrMTI+PjJdPWFbZ2UrMTI+PjJdLCgwfEJpWzEyNyZwXShiZSxWZSkpPDwyND4+MjQpOylBPUErLTN8MDthW1JlPj4yXT1BLHJOKGJlLE9lLGYrKEE8PDQpfDAsMCl9ZWxzZSBhW1JlPj4y''@;'; + put 'put ''XT1iPXArLTR8MCxBPWI7Zm9yKDshKCgwfHcpPj0oMHxiKSkmJihTdD0rX1tmKyh3PDw0KSs4Pj4zXS0rX1tmKygoYz13KzN8MCk8PDQpKzg+PjNdKSpTdCsob3Q9K19bZisodzw8NCk+PjNdLStfW2YrKGM8PDQpPj4zXSkqb3Q8MWUtNjspdz1jO2ZvcihhW0xlPj4yXT13OyEoKDB8QSk8PTAp''@;'; + put 'put ''JiYob3Q9K19bZisoQTw8NCkrOD4+M10tK19bZisoKGJlPUErM3wwKTw8NCkrOD4+M10pKm90KyhTdD0rX1tmKyhBPDw0KT4+M10tK19bZisoYmU8PDQpPj4zXSkqU3Q8MWUtNjspQT1BKy0zfDA7Zm9yKGFbUmU+PjJdPUEsZnVuY3Rpb24gb04obCxjLGYscCxtLEEsdyl7Y3w9MCxmfD0wLHB8''@;'; + put 'put ''PTAsbXw9MCxBfD0wLHd8PTA7dmFyIE0sRCxHLGI9MCxrPTAsUj0wO2ZvcihHPWFlLGFlPWFlKzE2fDAsTT1HKzR8MCxEPUcsUj1sfD0wO2I9MHxhWzExNisoMHxhW1IrMTY+PjJdKT4+Ml07KVI9YjtiPTB8ZmVbdys4Pj4wXT8wOjI1NSYoMHxfb1s2MyZhW3c+PjJdXShSKSksVEMoUixNLEQp''@;'; + put 'put ''LCgwfF9vWzYzJmFbKGs9dys0fDApPj4yXV0oYykpPDwyND4+MjQmJihhW0Q+PjJdPTApLCgwfF9vWzYzJmFbaz4+Ml1dKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSk8PDI0Pj4yNCYmKGFbTT4+Ml09MCksMHxiJiYoYz0wfGFbTT4+Ml0sYVtNPj4yXT1hW0Q+PjJd''@;'; + put 'put ''LGFbRD4+Ml09YyksMHxmZVt3Kzk+PjBdPyhiPTB8YVtNPj4yXSl8KGs9MHxhW0Q+PjJdKXwwJiZmdW5jdGlvbiBrbChsLGMsZixwLG0sQSx3KXtsfD0wLGN8PTAsbXw9MDt2YXIgYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTA7''@;'; + put 'put ''KDB8KHB8PTApKT09KDB8KGZ8PTApKSYoTGU9MCE9KDB8KEF8PTApKSkmKE09MCE9KDB8KHd8PTApKSk/KGJlPStfWyhnZT1jKyhwPDw0KXwwKT4+M10sT2U9K19bYysocDw8NCkrOD4+M10saz0rX1soTGU9YysoKE09cCszfDApPDw0KXwwKT4+M10sYj0rX1soTT1jKyhNPDw0KSs4fDApPj4z''@;'; + put 'put ''XSxEPStsNyhsLEEpLEhlPSEoKHBlPStsNyhsLHcpKStEPj0oUj0rRDAoKygoSz1PZS1iKSpLKyhSPWJlLWspKlIpKSkpLFIqPS4zMzMzMzMzMzMzMzMzMzMzLEQ9SGU/RDpSLFI9SGU/cGU6UixPZT09Yj8oSz0oKEhlPWJlPGspPy1SOlIpK2sscGU9KEhlP0Q6LUQpK2JlLEc9T2UsRD1PZSk6''@;'; + put 'put ''KEs9YmUscGU9YmUsRz0oKEhlPU9lPGIpP0Q6LUQpK09lLEQ9KEhlPy1SOlIpK2IpLF9bKFJlPWMrKChIZT1wKzF8MCk8PDQpfDApPj4zXT1wZSxfW2MrKEhlPDw0KSs4Pj4zXT1HLGFbZ2U+PjJdPWFbUmU+PjJdLGFbZ2UrND4+Ml09YVtSZSs0Pj4yXSxhW2dlKzg+PjJdPWFbUmUrOD4+Ml0s''@;'; + put 'put ''YVtnZSsxMj4+Ml09YVtSZSsxMj4+Ml0sUmU9YysocCsyPDw0KXwwLF9bTGU+PjNdPUssX1tNPj4zXT1ELGFbUmU+PjJdPWFbTGU+PjJdLGFbUmUrND4+Ml09YVtMZSs0Pj4yXSxhW1JlKzg+PjJdPWFbTGUrOD4+Ml0sYVtSZSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVttKzEyPj4yXT13LF9bbSsz''@;'; + put 'put ''Mj4+M109YmUsX1ttKzQwPj4zXT1PZSxSZT0xNik6KE0mJihnZT1jKygoTT1wKzN8MCk8PDQpfDAsYj0oYj0rbDcobCx3KSk+PShPZT0uOSorRDAoKygoYmU9KEs9K19bYysocDw8NCkrOD4+M10pLShHPStfWyhNPWMrKE08PDQpKzh8MCk+PjNdKSkqYmUrKE9lPShrPStfW2MrKHA8PDQpPj4z''@;'; + put 'put ''XSktKFI9K19bZ2U+PjNdKSkqT2UpKSk/T2U6YixLPT1HPyhEPShrPFI/LWI6YikrUixiPUspOihEPWssYj0oSzxHPy1iOmIpK0cpLF9bYysoKEhlPXArMXwwKTw8NCk+PjNdPWssX1tjKyhIZTw8NCkrOD4+M109SyxwPWMrKHArMjw8NCl8MCxfW2dlPj4zXT1ELF9bTT4+M109YixhW3A+PjJd''@;'; + put 'put ''PWFbZ2U+PjJdLGFbcCs0Pj4yXT1hW2dlKzQ+PjJdLGFbcCs4Pj4yXT1hW2dlKzg+PjJdLGFbcCsxMj4+Ml09YVtnZSsxMj4+Ml0sYVttKzEyPj4yXT13LF9bbSszMj4+M109UixfW20rNDA+PjNdPUcpLExlJiYoRD0oRD0rbDcobCxBKSk+PShPZT0uOSorRDAoKygoYmU9KGI9K19bYysoZjw8''@;'; + put 'put ''NCkrOD4+M10pLShLPStfW2MrKChIZT1mKzN8MCk8PDQpKzg+PjNdKSkqYmUrKE9lPShrPStfWyhNPWMrKGY8PDQpfDApPj4zXSktKEc9K19bYysoSGU8PDQpPj4zXSkpKk9lKSkpP09lOkQsYj09Sz8oUj0oazxHP0Q6LUQpK2ssRD1iKTooUj1rLEQ9KGI8Sz9EOi1EKStiKSxfWyhSZT1jKygo''@;'; + put 'put ''SGU9ZisxfDApPDw0KXwwKT4+M109UixfW2MrKEhlPDw0KSs4Pj4zXT1ELGFbTT4+Ml09YVtSZT4+Ml0sYVtNKzQ+PjJdPWFbUmUrND4+Ml0sYVtNKzg+PjJdPWFbUmUrOD4+Ml0sYVtNKzEyPj4yXT1hW1JlKzEyPj4yXSxfW2MrKChSZT1mKzJ8MCk8PDQpPj4zXT1HLF9bYysoUmU8PDQpKzg+''@;'; + put 'put ''PjNdPUssUmU9MTYpKSwxNj09KDB8UmUpJiYoYVttKzg+PjJdPUEsX1ttKzE2Pj4zXT1rLF9bbSsyND4+M109Yil9KFIsZiwwfGFbcD4+Ml0sMHxhW20+PjJdLEEsYixrKTooMHwoYj0wfGFbTT4+Ml0pJiYoYVtwPj4yXT0wfE9hKFIsZiwwfGFbcD4+Ml0sMHxhW20+PjJdLEEsYikpLDB8KGI9''@;'; + put 'put ''MHxhW0Q+PjJdKSYmKGFbbT4+Ml09MHxjRihSLGYsMHxhW3A+PjJdLDB8YVttPj4yXSxBLGIpKSksYWU9R30obCxPZSxmLExlLFJlLHFlLG0pLGI9NCsoaz0wfGFbUmU+PjJdKXwwLGs9ayszfDAsTT1WZSsxNnwwLEQ9VmUrMzJ8MCxSPVZlKzQ4fDAsdz1IZSsxNnwwLEE9Rz0wfGFbTGU+PjJd''@;'; + put 'put ''OyEoKDB8QSk+PSgwfGIpKSYmKGFbKEhlPSgwfGFbcWU+PjJdKSsoQS1HPDw0KXwwKT4+Ml09YVsoYz1mKyhBPDw0KXwwKT4+Ml0sYVtIZSs0Pj4yXT1hW2MrND4+Ml0sYVtIZSs4Pj4yXT1hW2MrOD4+Ml0sYVtIZSsxMj4+Ml09YVtjKzEyPj4yXSxhW1ZlPj4yXT1hW2M+PjJdLGFbVmUrND4+''@;'; + put 'put ''Ml09YVtjKzQ+PjJdLGFbVmUrOD4+Ml09YVtjKzg+PjJdLGFbVmUrMTI+PjJdPWFbYysxMj4+Ml0sYz1BKzF8MCwhKCgwfEEpPj0oMHxrKSkpOylhWyhSZT0oMHxhW3FlPj4yXSkrKGMtRzw8NCl8MCk+PjJdPWFbKEhlPWYrKGM8PDQpfDApPj4yXSxhW1JlKzQ+PjJdPWFbSGUrND4+Ml0sYVtS''@;'; + put 'put ''ZSs4Pj4yXT1hW0hlKzg+PjJdLGFbUmUrMTI+PjJdPWFbSGUrMTI+PjJdLGFbTT4+Ml09YVtIZT4+Ml0sYVtNKzQ+PjJdPWFbSGUrND4+Ml0sYVtNKzg+PjJdPWFbSGUrOD4+Ml0sYVtNKzEyPj4yXT1hW0hlKzEyPj4yXSxhWyhSZT0oMHxhW3FlPj4yXSkrKChIZT1BKzJ8MCktRzw8NCl8MCk+''@;'; + put 'put ''PjJdPWFbKEhlPWYrKEhlPDw0KXwwKT4+Ml0sYVtSZSs0Pj4yXT1hW0hlKzQ+PjJdLGFbUmUrOD4+Ml09YVtIZSs4Pj4yXSxhW1JlKzEyPj4yXT1hW0hlKzEyPj4yXSxhW0Q+PjJdPWFbSGU+PjJdLGFbRCs0Pj4yXT1hW0hlKzQ+PjJdLGFbRCs4Pj4yXT1hW0hlKzg+PjJdLGFbRCsxMj4+Ml09''@;'; + put 'put ''YVtIZSsxMj4+Ml0sYVtSPj4yXT1hWyhSZT1mKygoSGU9QSszfDApPDw0KXwwKT4+Ml0sYVtSKzQ+PjJdPWFbUmUrND4+Ml0sYVtSKzg+PjJdPWFbUmUrOD4+Ml0sYVtSKzEyPj4yXT1hW1JlKzEyPj4yXSxIQSgxNisoMHxhW3c+PjJdKXwwLFZlKSxBPUhlO2FbcWUrND4+Ml09Yi1HLGFlPVdl''@;'; + put 'put ''fWZ1bmN0aW9uIFgzKGwsYyl7bHw9MDt2YXIgZj0wLHA9MDsrX1soY3w9MCk+PjNdPCtfW2MrMTY+PjNdJiYrX1tjKzg+PjNdPCtfW2MrMjQ+PjNdJiYoZj0wfGFbbCs4ND4+Ml0sYVsocD1sKzgwfDApPj4yXT0xKyhsPTB8YVtwPj4yXSksYVsobD1mKyhsPDw1KXwwKT4+Ml09YVtjPj4yXSxh''@;'; + put 'put ''W2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdLGFbbCsxNj4+Ml09YVtjKzE2Pj4yXSxhW2wrMjA+PjJdPWFbYysyMD4+Ml0sYVtsKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbbCsyOD4+Ml09YVtjKzI4Pj4yXSl9ZnVuY3Rpb24gSkkobCxj''@;'; + put 'put ''LGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBELFIsZ2UsYmUsTGUsUmUsQT0wLHc9MCxiPTAsaz0wLE09MCxHPTAsSz0wLHBlPTAsT2U9MCxIZT0wLFZlPTA7aWYoUmU9YWUsYWU9YWUrMTEyfDAsYmU9UmUrNzJ8MCxEPVJlKzU2fDAsTT1SZSsxNnwwLEc9UmUsUj00OCsoY3w9MCl8''@;'; + put 'put ''MCxMZT0wfGFbKDM9PSgwfCh3PTMmYVtjPj4yXSkpP2M6UikrNDA+PjJdLEE9MTYrKEs9MHxhWyhnZT1jKzE2fDApPj4yXSl8MCwwfGZlW0srNDc+PjBdKXtFeShNLExlLDB8YVsoMj09KDB8dyk/YzpjKy00OHwwKSs0MD4+Ml0sQSksdz1NLE09QSs0MHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxB''@;'; + put 'put ''PUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8TSkpfXN3aXRjaChNPShBPTB8YVs4Kyh3PTB8YVsoSz1MZSsxNnwwKT4+Ml0pPj4yXSk/MHxhWzE2KygwfGFbQSs0Pj4yXSk+PjJdOjAsQT13KzE2fDAsdz0xNisoMHxhW2dlPj4yXSl8MCxhW0Q+PjJdPWFbQT4+Ml0sYVtEKzQ+PjJdPWFb''@;'; + put 'put ''QSs0Pj4yXSxhW0QrOD4+Ml09YVtBKzg+PjJdLGFbRCsxMj4+Ml09YVtBKzEyPj4yXSxhW2JlPj4yXT1hW3c+PjJdLGFbYmUrND4+Ml09YVt3KzQ+PjJdLGFbYmUrOD4+Ml09YVt3Kzg+PjJdLGFbYmUrMTI+PjJdPWFbdysxMj4+Ml0sYU4oRyxELGJlKSxhW2w+PjJdPWFbRz4+Ml0sYVtsKzQ+''@;'; + put 'put ''PjJdPWFbRys0Pj4yXSxhW2wrOD4+Ml09YVtHKzg+PjJdLGFbbCsxMj4+Ml09YVtHKzEyPj4yXSxtPDwyND4+MjQ/KGI9K2xOKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOlIpKzQwPj4yXSksT2U9OSk6MHxmZVs0NSsoQT0wfGFbZ2U+PjJdKT4+MF0/KGI9K19bQSszMj4+M10sT2U9OSk6QT0w''@;'; + put 'put ''LDk9PSgwfE9lKSYmKF9bbCsxNj4+M109YixBPTEpLGZlW2wrMjk+PjBdPUEsYVtsKzgwPj4yXT0wLGFbbCs4OD4+Ml09YyxhWyhHPXArMzJ8MCk+PjJdPWFbbD4+Ml0sYVtHKzQ+PjJdPWFbbCs0Pj4yXSxhW0crOD4+Ml09YVtsKzg+PjJdLGFbRysxMj4+Ml09YVtsKzEyPj4yXSwwfGYpe2Nh''@;'; + put 'put ''c2UgMTppZigwPT0oMHxmZVsxNTYrKHc9MHxhW0s+PjJdKT4+MF0pJiYocGU9MjU1JihHPTB8ZmVbNDkrKDB8YVtnZT4+Ml0pPj4wXSksRzw8MjQ+PjI0IT0wKSl7YVtiZT4+Ml09YVtwPj4yXSxhW2JlKzQ+PjJdPWFbcCs0Pj4yXSxhW2JlKzg+PjJdPWFbcCs4Pj4yXSxhW2JlKzEyPj4yXT1h''@;'; + put 'put ''W3ArMTI+PjJdLGFbYmUrMTY+PjJdPWFbcCsxNj4+Ml0sYVtiZSsyMD4+Ml09YVtwKzIwPj4yXSxhW2JlKzI0Pj4yXT1hW3ArMjQ+PjJdLGFbYmUrMjg+PjJdPWFbcCsyOD4+Ml07ZG97aWYoNCZwZSl7aWYoYVtwKzQ4Pj4yXT00LGI9K19bYmU+PjNdLCtfW2w+PjNdPCtfW3crMTY+PjNdKXtW''@;'; + put 'put ''ZT1iKy0xLEhlPStfW2wrOD4+M10sYj0rX1sobD1iZSsxNnwwKT4+M10saz0uNSorX1t3KzgwPj4zXSsgK19bdysyND4+M10says9KygwfCgwfGFbMjUyKygwfGFbMTYrKDB8Y3IoTGUpKT4+Ml0pPj4yXSkvMiksX1tsPj4zXT0rX1sxNisoQT0wfGFbSz4+Ml0pPj4zXS0rX1tBKzg4Pj4zXSxf''@;'; + put 'put ''W2JlKzI0Pj4zXT1IZSxfW2JlKzg+PjNdPStfW0ErMjQ+PjNdLS41KitfW0ErODA+PjNdLF9bYmU+PjNdPVZlLF9bcCs1Nj4+M109VmUsX1twKzY0Pj4zXT1IZSxfW3ArNzI+PjNdPWIsX1twKzgwPj4zXT1rLGFbKEE9cCs4OHwwKT4+Ml09YVtiZT4+Ml0sYVtBKzQ+PjJdPWFbYmUrND4+Ml0s''@;'; + put 'put ''YVtBKzg+PjJdPWFbYmUrOD4+Ml0sYVtBKzEyPj4yXT1hW2JlKzEyPj4yXSxhW0ErMTY+PjJdPWFbYmUrMTY+PjJdLGFbQSsyMD4+Ml09YVtiZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW2JlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbYmUrMjg+PjJdLEE9MjticmVha31rPStfW2wrOD4+M10sSGU9K19b''@;'; + put 'put ''KEE9YmUrMTZ8MCk+PjNdKzEsVmU9LjUqK19bdys4MD4+M10rICtfW3crMjQ+PjNdLFZlKz0rKDB8KDB8YVsyNTIrKDB8YVsxNisoMHxjcihMZSkpPj4yXSk+PjJdKS8yKSxfW2JlPj4zXT0rX1s5NisobD0wfGFbSz4+Ml0pPj4zXSsgK19bbCsxNj4+M10sX1tiZSsyND4+M109ayxfW2JlKzg+''@;'; + put 'put ''PjNdPStfW2wrMjQ+PjNdLS41KitfW2wrODA+PjNdLF9bQT4+M109SGUsX1twKzU2Pj4zXT1iLF9bcCs2ND4+M109ayxfW3ArNzI+PjNdPUhlLF9bcCs4MD4+M109VmUsYVsoQT1wKzg4fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxh''@;'; + put 'put ''W0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0yO2JyZWFrfWlmKDEmcGV8MCl7YVtwKzQ4Pj4yXT0xLF9bKEE9YmUrMjR8MCk+PjNd''@;'; + put 'put ''PStfWygrX1tBPj4zXT4rX1tsKzg+PjNdP2JlKzE2fDA6bCkrOD4+M10sYVsoQT1wKzU2fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4y''@;'; + put 'put ''XT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0xO2JyZWFrfWlmKEE9cCs0OHwwLDgmcGUpe2FbQT4+Ml09OCxfW2JlKzE2Pj4zXT0rX1tsPj4zXSxfW2JlKzg+PjNdPStfW3crMjQ+PjNdLS41KitfW3crODA+PjNdLF9bYmUrMjQ+''@;'; + put 'put ''PjNdPStfW2wrOD4+M10sYVsoQT1wKzU2fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFb''@;'; + put 'put ''YmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0xO2JyZWFrfWFbQT4+Ml09MixfW2JlPj4zXT0rX1tsPj4zXSxfW2JlKzg+PjNdPStfW3crMjQ+PjNdLS41KitfW3crODA+PjNdLF9bYmUrMjQ+PjNdPStfW2wrOD4+M10sYVsoQT1wKzU2fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+''@;'; + put 'put ''Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0xO2JyZWFrfXdoaWxl''@;'; + put 'put ''KDApO2ZvcihhW3ArNTI+PjJdPUE7MHxmZVsxMTIrKEE9MHxhW2MrMTY+PjJdKT4+MF07KWM9MHxhW0ErMTE2Pj4yXTtmZVszMCsoKDB8TGUpPT0oMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pP0ErMTZ8MDpBKzU2fDApPj4wXT0wfWVsc2Ugdz0xLE9lPTQ3O2JyZWFr''@;'; + put 'put ''O2Nhc2UgMjppZih3PTI1NSYocGU9MHxmZVs0OSsoMHxhW2dlPj4yXSk+PjBdKSxwZTw8MjQ+PjI0KXthW2JlPj4yXT1hW3A+PjJdLGFbYmUrND4+Ml09YVtwKzQ+PjJdLGFbYmUrOD4+Ml09YVtwKzg+PjJdLGFbYmUrMTI+PjJdPWFbcCsxMj4+Ml0sYVtiZSsxNj4+Ml09YVtwKzE2Pj4yXSxh''@;'; + put 'put ''W2JlKzIwPj4yXT1hW3ArMjA+PjJdLGFbYmUrMjQ+PjJdPWFbcCsyND4+Ml0sYVtiZSsyOD4+Ml09YVtwKzI4Pj4yXTtkb3tpZighKDQmdykpe2lmKDEmd3wwKXtpZig0PT0oMHxhW3ArNDg+PjJdKSl7VmU9K19bMjQrKEE9MHxhW0s+PjJdKT4+M10tLjUqK19bQSs4MD4+M10sSGU9K19bKEE9''@;'; + put 'put ''YmUrMTZ8MCk+PjNdKzEsYj0rX1tsPj4zXSxrPVZlLSsoMHwoMHxhWzI1MisoMHxhWzE2KygwfGNyKExlKSk+PjJdKT4+Ml0pLzIpLF9bYmU+PjNdPStfWzk2KyhsPTB8YVtLPj4yXSk+PjNdKyArX1tsKzE2Pj4zXSxfW2JlKzg+PjNdPVZlLF9bYmUrMjQ+PjNdPS41KitfW2wrODA+PjNdKyAr''@;'; + put 'put ''X1tsKzI0Pj4zXSxfW0E+PjNdPUhlLF9bcCs1Nj4+M109YixfW3ArNjQ+PjNdPWssX1twKzcyPj4zXT1IZSxfW3ArODA+PjNdPVZlLGFbKEE9cCs4OHwwKT4+Ml09YVtiZT4+Ml0sYVtBKzQ+PjJdPWFbYmUrND4+Ml0sYVtBKzg+PjJdPWFbYmUrOD4+Ml0sYVtBKzEyPj4yXT1hW2JlKzEyPj4y''@;'; + put 'put ''XSxhW0ErMTY+PjJdPWFbYmUrMTY+PjJdLGFbQSsyMD4+Ml09YVtiZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW2JlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbYmUrMjg+PjJdLEE9MjticmVha31fWyhBPWJlKzI0fDApPj4zXT0rX1soK19bQT4+M10+K19bbCs4Pj4zXT9iZSsxNnwwOmwpKzg+PjNdLGFb''@;'; + put 'put ''KEE9cCs1NnwwKT4+Ml09YVtiZT4+Ml0sYVtBKzQ+PjJdPWFbYmUrND4+Ml0sYVtBKzg+PjJdPWFbYmUrOD4+Ml0sYVtBKzEyPj4yXT1hW2JlKzEyPj4yXSxhW0ErMTY+PjJdPWFbYmUrMTY+PjJdLGFbQSsyMD4+Ml09YVtiZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW2JlKzI0Pj4yXSxhW0ErMjg+''@;'; + put 'put ''PjJdPWFbYmUrMjg+PjJdLEE9MTticmVha31pZihiPStfW2w+PjNdLDgmdyl7X1soQT1iZSsxNnwwKT4+M109YisxLGI9K19bMjQrKGY9MHxhW0s+PjJdKT4+M10saz0uNSorX1tmKzgwPj4zXSw0PT0oMHxhW3ArNDg+PjJdKT8oX1tiZSsyND4+M109aytiLGI9K19bbCs4Pj4zXS0xLEE9YmUp''@;'; + put 'put ''OihfW2JlKzg+PjNdPWItayxiPStfW2wrOD4+M10rMSksX1tBKzg+PjNdPWIsYVsoQT1wKzU2fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIw''@;'; + put 'put ''Pj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0xO2JyZWFrfV9bYmU+PjNdPWIsYj0rX1syNCsoZj0wfGFbSz4+Ml0pPj4zXSxrPS41KitfW2YrODA+PjNdLDQ9PSgwfGFbcCs0OD4+Ml0pPyhfW2JlKzI0Pj4zXT1rK2IsYj0r''@;'; + put 'put ''X1tsKzg+PjNdLEE9YmUpOihfW2JlKzg+PjNdPWItayxiPStfW2wrOD4+M10rMSxBPWJlKzE2fDApLF9bQSs4Pj4zXT1iLGFbKEE9cCs1NnwwKT4+Ml09YVtiZT4+Ml0sYVtBKzQ+PjJdPWFbYmUrND4+Ml0sYVtBKzg+PjJdPWFbYmUrOD4+Ml0sYVtBKzEyPj4yXT1hW2JlKzEyPj4yXSxhW0Er''@;'; + put 'put ''MTY+PjJdPWFbYmUrMTY+PjJdLGFbQSsyMD4+Ml09YVtiZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW2JlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbYmUrMjg+PjJdLEE9MTticmVha31fWyhBPWJlKzh8MCk+PjNdPStfWygrX1tBPj4zXTwrX1tsKzg+PjNdP2JlOmwpKzg+PjNdLGFbKEE9cCs1NnwwKT4+''@;'; + put 'put ''Ml09YVtiZT4+Ml0sYVtBKzQ+PjJdPWFbYmUrND4+Ml0sYVtBKzg+PjJdPWFbYmUrOD4+Ml0sYVtBKzEyPj4yXT1hW2JlKzEyPj4yXSxhW0ErMTY+PjJdPWFbYmUrMTY+PjJdLGFbQSsyMD4+Ml09YVtiZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW2JlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbYmUrMjg+''@;'; + put 'put ''PjJdLEE9MX13aGlsZSgwKTtmb3IoYVtwKzUyPj4yXT1BOzB8ZmVbMTEyKyhBPTB8YVtjKzE2Pj4yXSk+PjBdOyljPTB8YVtBKzExNj4+Ml07ZmVbMzArKCgwfExlKT09KDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKT9BKzE2fDA6QSs1NnwwKT4+MF09MCxhW3ArNDg+''@;'; + put 'put ''PjJdPXd9ZWxzZSBPZT00NjticmVhaztkZWZhdWx0Ok9lPTQ2fTQ2PT0oMHxPZSkmJih3PTB8YVtwKzQ4Pj4yXSxPZT00Nyk7ZTpkb3tpZig0Nz09KDB8T2UpKXtpZihNKXtpZih3PTB8TzJbMTI3Jk1dKExlLDE2KygwfGFbZ2U+PjJdKXwwLHcsYz1wKzU2fDAsQT1wKzUyfDApKXthW3ArNDg+''@;'; + put 'put ''PjJdPXc7YnJlYWt9fWVsc2UgQT1wKzUyfDAsYz1wKzU2fDA7c3dpdGNoKGFbYz4+Ml09YVtwPj4yXSxhW2MrND4+Ml09YVtwKzQ+PjJdLGFbYys4Pj4yXT1hW3ArOD4+Ml0sYVtjKzEyPj4yXT1hW3ArMTI+PjJdLGFbYysxNj4+Ml09YVtwKzE2Pj4yXSxhW2MrMjA+PjJdPWFbcCsyMD4+Ml0s''@;'; + put 'put ''YVtjKzI0Pj4yXT1hW3ArMjQ+PjJdLGFbYysyOD4+Ml09YVtwKzI4Pj4yXSxhW0E+PjJdPTEsMHxmKXtjYXNlIDg6UHIoMTM4Mzk0LDEwNjUxNCw1NjksMTA2NTI0KTticmVhaztjYXNlIDI6X1s4Kyg0PT0oMHxhW3ArNDg+PjJdKT9wKzU2fDA6cCs3MnwwKT4+M109K19bbCs4Pj4zXTticmVh''@;'; + put 'put ''ayBlO2Nhc2UgMTpfW3ArODA+PjNdPStfW2wrOD4+M10sYVtwKzQ4Pj4yXT0xO2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX19d2hpbGUoMCk7YWU9UmV9ZnVuY3Rpb24gYU4obCxjLGYpe3ZhciBwO3A9K19bOCsoZnw9MCk+PjNdKyArX1s4KyhjfD0wKT4+M10sX1sobHw9MCk+PjNdPStfW2Y+''@;'; + put 'put ''PjNdKyArX1tjPj4zXSxfW2wrOD4+M109cH1mdW5jdGlvbiBsTihsKXt2YXIgcCx3LGssTSxjPTAsZj0wLG09MCxBPTAsYj0wO2ZvcihiPTB8YVsxNzIrKHc9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSxtPTAsQT0wO2w9MHxhW2IrKEE8PDIpPj4yXTspbT0rX1sxNisoMHxhWzE2KygwfGFbKDM9''@;'; + put 'put ''PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSk+PjJdKT4+M10rbSxBPUErMXwwO2ZvcihwPTB8YVt3KzE4MD4+Ml0sYz0wLGw9MDtmPTB8YVtwKyhsPDwyKT4+Ml07KWM9K19bMTYrKDB8YVsxNisoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4z''@;'; + put 'put ''XStjLGw9bCsxfDA7cmV0dXJuIG09K1VsKCsoKE09K19bdysyND4+M10pLStfWzI0KygwfGFbMTYrKDB8YVsoMz09KDMmYVsoYj0wfGFbYj4+Ml0pPj4yXXwwKT9iOmIrNDh8MCkrNDA+PjJdKT4+Ml0pPj4zXSksKygoaz0rX1t3KzE2Pj4zXSktbS8rKDB8QSkpKSwuNSooK1VsKCsoK19bMjQr''@;'; + put 'put ''KDB8YVsxNisoMHxhWygyPT0oMyZhWyhiPTB8YVtwPj4yXSk+PjJdfDApP2I6YistNDh8MCkrNDA+PjJdKT4+Ml0pPj4zXS1NKSwrKGMvKygwfGwpLWspKSttKX1mdW5jdGlvbiBYSShsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIFIsSyxiZSxMZSxIZSxWZSxELEE9MCx3PTAs''@;'; + put 'put ''Yj0wLGs9MCxNPTAsRz0wLHBlPTAsZ2U9MCxPZT0wLFJlPTAscWU9MCxudD0wO2lmKFZlPWFlLGFlPWFlKzExMnwwLExlPVZlKzcyfDAsUj1WZSs1NnwwLE09VmUrMTZ8MCxnZT1WZSxLPShjfD0wKS00OHwwLEhlPTB8YVsoMj09KDB8KHc9MyZhW2M+PjJdKSk/YzpLKSs0MD4+Ml0sQT01Niso''@;'; + put 'put ''cGU9MHxhWyhiZT1jKzE2fDApPj4yXSl8MCwwfGZlW3BlKzg3Pj4wXSl7RXkoTSxIZSwwfGFbKDM9PSgwfHcpP2M6Yys0OHwwKSs0MD4+Ml0sQSksdz1NLE09QSs0MHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8TSkpfXN3aXRjaChEPShBPTB8''@;'; + put 'put ''YVs4Kyh3PTB8YVsocGU9SGUrMTZ8MCk+PjJdKT4+Ml0pPzB8YVsxNisoMHxhW0ErND4+Ml0pPj4yXTowLE09bCs0MHwwLEE9dysxNnwwLHc9NTYrKDB8YVtiZT4+Ml0pfDAsYVtSPj4yXT1hW0E+PjJdLGFbUis0Pj4yXT1hW0ErND4+Ml0sYVtSKzg+PjJdPWFbQSs4Pj4yXSxhW1IrMTI+PjJd''@;'; + put 'put ''PWFbQSsxMj4+Ml0sYVtMZT4+Ml09YVt3Pj4yXSxhW0xlKzQ+PjJdPWFbdys0Pj4yXSxhW0xlKzg+PjJdPWFbdys4Pj4yXSxhW0xlKzEyPj4yXT1hW3crMTI+PjJdLGFOKGdlLFIsTGUpLGFbTT4+Ml09YVtnZT4+Ml0sYVtNKzQ+PjJdPWFbZ2UrND4+Ml0sYVtNKzg+PjJdPWFbZ2UrOD4+Ml0s''@;'; + put 'put ''YVtNKzEyPj4yXT1hW2dlKzEyPj4yXSxtPDwyND4+MjQ/KGs9K2xOKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOkspKzQwPj4yXSkrMy4xNDE1OTI2NTM1ODk3OTMsX1tsKzU2Pj4zXT1rLGs8Ni4yODMxODUzMDcxNzk1ODY/Rz0xOlByKDEwNjUzNCwxMDY1MTQsNjA2LDEwNjU1OCkpOjB8ZmVb''@;'; + put 'put ''ODUrKEE9MHxhW2JlPj4yXSk+PjBdPyhfW2wrNTY+PjNdPStfW0ErNzI+PjNdLEc9MSk6Rz0wLGZlW2wrNjk+PjBdPUcsYVsoZ2U9cCszMnwwKT4+Ml09YVtNPj4yXSxhW2dlKzQ+PjJdPWFbTSs0Pj4yXSxhW2dlKzg+PjJdPWFbTSs4Pj4yXSxhW2dlKzEyPj4yXT1hW00rMTI+PjJdLDB8Zil7''@;'; + put 'put ''Y2FzZSAxOmlmKDA9PSgwfGZlWzE1Nisodz0wfGFbcGU+PjJdKT4+MF0pJiYoT2U9MjU1JihnZT0wfGZlWzg5KygwfGFbYmU+PjJdKT4+MF0pLGdlPDwyND4+MjQhPTApKXthW0xlPj4yXT1hW3A+PjJdLGFbTGUrND4+Ml09YVtwKzQ+PjJdLGFbTGUrOD4+Ml09YVtwKzg+PjJdLGFbTGUrMTI+''@;'; + put 'put ''PjJdPWFbcCsxMj4+Ml0sYVtMZSsxNj4+Ml09YVtwKzE2Pj4yXSxhW0xlKzIwPj4yXT1hW3ArMjA+PjJdLGFbTGUrMjQ+PjJdPWFbcCsyND4+Ml0sYVtMZSsyOD4+Ml09YVtwKzI4Pj4yXTtkb3tpZighKDQmT2UpKXtpZigxJk9lKXtpZihhW3ArNDg+PjJdPTEsYj0rX1tMZT4+M10sK19bTT4+''@;'; + put 'put ''M108K19bdysxNj4+M10pe250PWIrLTEsaz0rX1tsKzQ4Pj4zXSxiPStfWyhsPUxlKzE2fDApPj4zXSxxZT0tLjUqK19bdys4MD4+M10rICtfW3crMjQ+PjNdLHFlLT0rKDB8KDB8YVsyNTIrKDB8YVsxNisoMHxjcihIZSkpPj4yXSk+PjJdKS8yKSxfW2w+PjNdPStfWzE2KyhBPTB8YVtwZT4+''@;'; + put 'put ''Ml0pPj4zXS0rX1tBKzg4Pj4zXSxfW0xlKzg+PjNdPWssX1tMZSsyND4+M109LjUqK19bQSs4MD4+M10rICtfW0ErMjQ+PjNdLF9bTGU+PjNdPW50LF9bcCs1Nj4+M109bnQsX1twKzY0Pj4zXT1xZSxfW3ArNzI+PjNdPWIsX1twKzgwPj4zXT1rLGFbKEE9cCs4OHwwKT4+Ml09YVtMZT4+Ml0s''@;'; + put 'put ''YVtBKzQ+PjJdPWFbTGUrND4+Ml0sYVtBKzg+PjJdPWFbTGUrOD4+Ml0sYVtBKzEyPj4yXT1hW0xlKzEyPj4yXSxhW0ErMTY+PjJdPWFbTGUrMTY+PjJdLGFbQSsyMD4+Ml09YVtMZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbTGUrMjg+PjJdLEE9MjticmVh''@;'; + put 'put ''a31udD0rX1tsKzQ4Pj4zXSxxZT0rX1soQT1MZSsxNnwwKT4+M10rMSxrPS0uNSorX1t3KzgwPj4zXSsgK19bdysyND4+M10say09KygwfCgwfGFbMjUyKygwfGFbMTYrKDB8Y3IoSGUpKT4+Ml0pPj4yXSkvMiksX1tMZT4+M109K19bOTYrKGw9MHxhW3BlPj4yXSk+PjNdKyArX1tsKzE2Pj4z''@;'; + put 'put ''XSxfW0xlKzg+PjNdPW50LF9bTGUrMjQ+PjNdPS41KitfW2wrODA+PjNdKyArX1tsKzI0Pj4zXSxfW0E+PjNdPXFlLF9bcCs1Nj4+M109YixfW3ArNjQ+PjNdPWssX1twKzcyPj4zXT1xZSxfW3ArODA+PjNdPW50LGFbKEE9cCs4OHwwKT4+Ml09YVtMZT4+Ml0sYVtBKzQ+PjJdPWFbTGUrND4+''@;'; + put 'put ''Ml0sYVtBKzg+PjJdPWFbTGUrOD4+Ml0sYVtBKzEyPj4yXT1hW0xlKzEyPj4yXSxhW0ErMTY+PjJdPWFbTGUrMTY+PjJdLGFbQSsyMD4+Ml09YVtMZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbTGUrMjg+PjJdLEE9MjticmVha31pZihBPXArNDh8MCw4Jk9l''@;'; + put 'put ''KXthW0E+PjJdPTgsX1tMZSsxNj4+M109K19bTT4+M10sX1tMZSsyND4+M109LjUqK19bdys4MD4+M10rICtfW3crMjQ+PjNdLF9bTGUrOD4+M109K19bbCs0OD4+M10sYVsoQT1wKzU2fDApPj4yXT1hW0xlPj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxh''@;'; + put 'put ''W0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0xO2JyZWFrfWFbQT4+Ml09MixfW0xlPj4zXT0rX1tNPj4zXSxfW0xlKzI0Pj4zXT0u''@;'; + put 'put ''NSorX1t3KzgwPj4zXSsgK19bdysyND4+M10sX1tMZSs4Pj4zXT0rX1tsKzQ4Pj4zXSxhWyhBPXArNTZ8MCk+PjJdPWFbTGU+PjJdLGFbQSs0Pj4yXT1hW0xlKzQ+PjJdLGFbQSs4Pj4yXT1hW0xlKzg+PjJdLGFbQSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW0xlKzE2Pj4yXSxh''@;'; + put 'put ''W0ErMjA+PjJdPWFbTGUrMjA+PjJdLGFbQSsyND4+Ml09YVtMZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW0xlKzI4Pj4yXSxBPTE7YnJlYWt9YVtwKzQ4Pj4yXT00LF9bKEE9TGUrOHwwKT4+M109K19bKCtfW0E+PjNdPCtfW2wrNDg+PjNdP0xlOk0pKzg+PjNdLGFbKEE9cCs1NnwwKT4+Ml09YVtM''@;'; + put 'put ''ZT4+Ml0sYVtBKzQ+PjJdPWFbTGUrND4+Ml0sYVtBKzg+PjJdPWFbTGUrOD4+Ml0sYVtBKzEyPj4yXT1hW0xlKzEyPj4yXSxhW0ErMTY+PjJdPWFbTGUrMTY+PjJdLGFbQSsyMD4+Ml09YVtMZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbTGUrMjg+PjJdLEE9''@;'; + put 'put ''MX13aGlsZSgwKTtmb3IoYVtwKzUyPj4yXT1BOzB8ZmVbMTEyKyhBPTB8YVtjKzE2Pj4yXSk+PjBdOyljPTB8YVtBKzExNj4+Ml07ZmVbMzArKCgwfEhlKT09KDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSk/QSs1NnwwOkErMTZ8MCk+PjBdPTAsYVtwKzQ4Pj4yXT1P''@;'; + put 'put ''ZX1lbHNlIHc9NCxSZT00NzticmVhaztjYXNlIDI6aWYodz0yNTUmKE9lPTB8ZmVbODkrKDB8YVtiZT4+Ml0pPj4wXSksT2U8PDI0Pj4yNCl7YVtMZT4+Ml09YVtwPj4yXSxhW0xlKzQ+PjJdPWFbcCs0Pj4yXSxhW0xlKzg+PjJdPWFbcCs4Pj4yXSxhW0xlKzEyPj4yXT1hW3ArMTI+PjJdLGFb''@;'; + put 'put ''TGUrMTY+PjJdPWFbcCsxNj4+Ml0sYVtMZSsyMD4+Ml09YVtwKzIwPj4yXSxhW0xlKzI0Pj4yXT1hW3ArMjQ+PjJdLGFbTGUrMjg+PjJdPWFbcCsyOD4+Ml07ZG97aWYoISg0JncpKXtpZigxJnd8MCl7aWYoND09KDB8YVtwKzQ4Pj4yXSkpe2I9K19bTGU+PjNdLTEscWU9K19bTT4+M10saz0o''@;'; + put 'put ''bnQ9K19bMjQrKEE9MHxhW3BlPj4yXSk+PjNdLS41KitfW0ErODA+PjNdKS0rKDB8KDB8YVsyNTIrKDB8YVsxNisoMHxjcihIZSkpPj4yXSk+PjJdKS8yKSxfW0xlKzE2Pj4zXT0rX1sxNisoQT0wfGFbcGU+PjJdKT4+M10tMi0rX1tBKzg4Pj4zXSxfW0xlKzg+PjNdPW50LF9bTGUrMjQ+PjNd''@;'; + put 'put ''PS41KitfW0ErODA+PjNdKyArX1tBKzI0Pj4zXSxfW0xlPj4zXT1iLF9bcCs1Nj4+M109YixfW3ArNjQ+PjNdPWssX1twKzcyPj4zXT1xZSxfW3ArODA+PjNdPW50LGFbKEE9cCs4OHwwKT4+Ml09YVtMZT4+Ml0sYVtBKzQ+PjJdPWFbTGUrND4+Ml0sYVtBKzg+PjJdPWFbTGUrOD4+Ml0sYVtB''@;'; + put 'put ''KzEyPj4yXT1hW0xlKzEyPj4yXSxhW0ErMTY+PjJdPWFbTGUrMTY+PjJdLGFbQSsyMD4+Ml09YVtMZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbTGUrMjg+PjJdLEE9MjticmVha31fWyhBPUxlKzI0fDApPj4zXT0rX1soK19bQT4+M10+K19bbCs4Pj4zXT9M''@;'; + put 'put ''ZSsxNnwwOmwpKzg+PjNdLGFbKEE9cCs1NnwwKT4+Ml09YVtMZT4+Ml0sYVtBKzQ+PjJdPWFbTGUrND4+Ml0sYVtBKzg+PjJdPWFbTGUrOD4+Ml0sYVtBKzEyPj4yXT1hW0xlKzEyPj4yXSxhW0ErMTY+PjJdPWFbTGUrMTY+PjJdLGFbQSsyMD4+Ml09YVtMZSsyMD4+Ml0sYVtBKzI0Pj4yXT1h''@;'; + put 'put ''W0xlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbTGUrMjg+PjJdLEE9MTticmVha31pZihiPStfW00+PjNdLDgmdyl7X1soQT1MZSsxNnwwKT4+M109YisxLGI9K19bMjQrKGY9MHxhW3BlPj4yXSk+PjNdLGs9LjUqK19bZis4MD4+M10sND09KDB8YVtwKzQ4Pj4yXSk/KF9bTGUrMjQ+PjNdPWsrYixi''@;'; + put 'put ''PStfW2wrNDg+PjNdLTEsQT1MZSk6KF9bTGUrOD4+M109Yi1rLGI9K19bbCs0OD4+M10rMSksX1tBKzg+PjNdPWIsYVsoQT1wKzU2fDApPj4yXT1hW0xlPj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+''@;'; + put 'put ''Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0xO2JyZWFrfV9bTGU+PjNdPWIrLTEsYj0rX1syNCsoZj0wfGFbcGU+PjJdKT4+M10saz0uNSorX1tmKzgwPj4zXSw0PT0oMHxhW3ArNDg+''@;'; + put 'put ''PjJdKT8oX1tMZSsyND4+M109aytiLGI9K19bbCs0OD4+M10tMSxBPUxlKTooX1tMZSs4Pj4zXT1iLWssYj0rX1tsKzQ4Pj4zXSxBPUxlKzE2fDApLF9bQSs4Pj4zXT1iLGFbKEE9cCs1NnwwKT4+Ml09YVtMZT4+Ml0sYVtBKzQ+PjJdPWFbTGUrND4+Ml0sYVtBKzg+PjJdPWFbTGUrOD4+Ml0s''@;'; + put 'put ''YVtBKzEyPj4yXT1hW0xlKzEyPj4yXSxhW0ErMTY+PjJdPWFbTGUrMTY+PjJdLGFbQSsyMD4+Ml09YVtMZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbTGUrMjg+PjJdLEE9MTticmVha31fWyhBPUxlKzh8MCk+PjNdPStfWygrX1tBPj4zXTwrX1tsKzQ4Pj4z''@;'; + put 'put ''XT9MZTpNKSs4Pj4zXSxhWyhBPXArNTZ8MCk+PjJdPWFbTGU+PjJdLGFbQSs0Pj4yXT1hW0xlKzQ+PjJdLGFbQSs4Pj4yXT1hW0xlKzg+PjJdLGFbQSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW0xlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbTGUrMjA+PjJdLGFbQSsyND4+Ml09YVtM''@;'; + put 'put ''ZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW0xlKzI4Pj4yXSxBPTF9d2hpbGUoMCk7Zm9yKGFbcCs1Mj4+Ml09QTswfGZlWzExMisoQT0wfGFbYysxNj4+Ml0pPj4wXTspYz0wfGFbQSsxMTY+PjJdO2ZlWzMwKygoMHxIZSk9PSgwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0p''@;'; + put 'put ''P0ErNTZ8MDpBKzE2fDApPj4wXT0wLGFbcCs0OD4+Ml09d31lbHNlIFJlPTQ2O2JyZWFrO2RlZmF1bHQ6UmU9NDZ9NDY9PSgwfFJlKSYmKHc9MHxhW3ArNDg+PjJdLFJlPTQ3KTtlOmRve2lmKDQ3PT0oMHxSZSkpe2lmKEQpe2lmKHc9MHxPMlsxMjcmRF0oSGUsNTYrKDB8YVtiZT4+Ml0pfDAs''@;'; + put 'put ''dyxjPXArNTZ8MCxBPXArNTJ8MCkpe2FbcCs0OD4+Ml09dzticmVha319ZWxzZSBBPXArNTJ8MCxjPXArNTZ8MDtzd2l0Y2goYVtjPj4yXT1hW3A+PjJdLGFbYys0Pj4yXT1hW3ArND4+Ml0sYVtjKzg+PjJdPWFbcCs4Pj4yXSxhW2MrMTI+PjJdPWFbcCsxMj4+Ml0sYVtjKzE2Pj4yXT1hW3Ar''@;'; + put 'put ''MTY+PjJdLGFbYysyMD4+Ml09YVtwKzIwPj4yXSxhW2MrMjQ+PjJdPWFbcCsyND4+Ml0sYVtjKzI4Pj4yXT1hW3ArMjg+PjJdLGFbQT4+Ml09MSwwfGYpe2Nhc2UgODpQcigxMzgzOTQsMTA2NTE0LDc2NSwxMDY1NTgpO2JyZWFrO2Nhc2UgMjpfWzgrKDQ9PSgwfGFbcCs0OD4+Ml0pP3ArNTZ8''@;'; + put 'put ''MDpwKzcyfDApPj4zXT0rX1tsKzQ4Pj4zXTticmVhayBlO2Nhc2UgMTpfW3ArNjQ+PjNdPStfW2wrNDg+PjNdLGFbcCs0OD4+Ml09NDticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX19fXdoaWxlKDApO2FlPVZlfWZ1bmN0aW9uIG9KKGwpe3ZhciBtLEEsYz0wLGY9MCxwPTAsdz0wO3JldHVybiBB''@;'; + put 'put ''PTB8YVs5NisobT0wfGFbMTYrKGx8PTApPj4yXSk+PjJdLDA9PSgwfGZlW20rNDQ+PjBdKSYmMD09KDB8ZmVbbSs4ND4+MF0pP3c9NjowIT0oOCYoZj0yNTUmKGM9MHxmZVttKzQ5Pj4wXSkpfDApfHwwIT0oOCYocD0wfGZlW20rODk+PjBdKSl8fDAhPSg1JmZ8MCkmJmM8PDI0Pj4yND09cDw8''@;'; + put 'put ''MjQ+PjI0P2w9MDp3PTYsNj09KDB8dykmJihBPyhsPTAhPSgxJmFbMTE2KygwfGFbMTYrKDB8Y3IoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKSk+PjJdKT4+Ml18MCksbD1+figrX1sobD9BKzMyfDA6QSsyNHwwKT4+M10rMTgpKTpsPTE4KSwwfGx9ZnVuY3Rpb24g''@;'; + put 'put ''S0kobCxjLGYscCxtLEEsdyl7bHw9MCxwfD0wLG09K20sQT0rQSx3fD0wO3ZhciBiPTAsaz0wLE09MCxEPTA7TT0wPT0oMHxmZVs0NCsobD0wfGFbMTYrKDB8YVsoY3w9MCkrKChmfD0wKTw8Mik+PjJdKT4+Ml0pPj4wXSkmJjA9PSgwfGZlW2wrODQ+PjBdKT82OjM7ZG97aWYoMz09KDB8TSkp''@;'; + put 'put ''e2lmKCEoOCYoaz0yNTUmKGI9MHxmZVtsKzQ5Pj4wXSkpKSl7aWYoMD09KDgmKEQ9MHxmZVtsKzg5Pj4wXSkpJiYoMD09KDUma3wwKXx8Yjw8MjQ+PjI0IT1EPDwyND4+MjQpKXtNPTY7YnJlYWt9aWYoISg4JmZlW2wrODk+PjBdKSl7aWYoNCZrfDApe2FKKGMsZixwLG0sQSx3KTticmVha31p''@;'; + put 'put ''ZigxJmspe3NsZShjLGYscCxtLEEsdyk7YnJlYWt9UHIoMTM4Mzk0LDEwNjUxNCwxMjMxLDEwNjU2Nil9fWlmKDA9PSgyJmIpJiYwPT0oMiZmZVtsKzg5Pj4wXSkpe2xsZShjLGYscCxtLEEsdyk7YnJlYWt9YUooYyxmLHAsbSxBLHcpfX13aGlsZSgwKTs2PT0oMHxNKSYmZnVuY3Rpb24gYWxl''@;'; + put 'put ''KGwsYyxmLHAsbSxBKXtwPStwLEF8PTA7dmFyIEsscGUsZ2UsYmUsT2UsTGUsUmUsSGUsbnQsV2Usb3QsU3Qsa3QsWnQsY3QsYnQsYW4sU24sSG4sdXIsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLFZlPTAscWU9MCxsdD0wLEV0PTAsSHI9MCxFcj0wLGZyPTA7c3dpdGNoKHVyPWFlLGFl''@;'; + put 'put ''PWFlKzE2MDgwfDAsYnQ9dXIrODB8MCxhbj11cis2NHwwLFNuPXVyKzQ4fDAsSG49dXIrMzJ8MCxadD11cisxNnwwLGN0PXVyLGs9KGs9LjUqKG09K20pLysoMHwoZnw9MCkpKT4yP2s6MixXZT0xNisoMHxhWygzPT0oMyZhWyhxZT0wfGFbKGx8PTApKygoY3w9MCk8PDIpPj4yXSk+PjJdfDAp''@;'; + put 'put ''P3FlOnFlKzQ4fDApKzQwPj4yXSl8MCxvdD0oYj0rX1sxNisocWU9MHxhW3FlKzE2Pj4yXSk+PjNdKSsobnQ9K19bMTYrKFZlPTB8YVtXZT4+Ml0pPj4zXSksa3Q9KG09K19bcWUrNTY+PjNdKStudCx3PShTdD0rX1txZSsyND4+M10rKGx0PStfW1ZlKzI0Pj4zXSkpPj0obHQ9K19bcWUrNjQ+''@;'; + put 'put ''PjNdK2x0KT8xOi0xLEQ9K19bVmUrOTY+PjNdLDB8JEkoMHxKdFtxZSs0OT4+MF0sMHxKdFtxZSs4OT4+MF0pKXtjYXNlIDY1OmNhc2UgMzI6U3Q9PWx0JiYodz0wLXd8MCl9Zm9yKEhyPTMqKEQtYiksYj0zKihELW0pLGJlPWsqKygwfHcpLGdlPWJ0Kzh8MCxPZT1idCsxNnwwLExlPWJ0KzMy''@;'; + put 'put ''fDAsUmU9YnQrNDh8MCxIZT0uNSoobHQrU3QpLFZlPWJ0KzY0fDAscWU9YnQrODB8MCxLPWJ0Kzk2fDAscGU9YnQrMTA0fDAsRz0wLE09MCxtPUQsaz1EPEhyP0Q6SHIsYj1EPGI/RDpiOyEoKDB8Ryk+PSgwfGYpKTspUj1jKzF8MCxjPTB8YVtsKyhjPDwyKT4+Ml0sRD1tK3Asays9cCxiKz1w''@;'; + put 'put ''LE0rPWJlLF9bYnQ+PjNdPW90LF9bZ2U+PjNdPVN0LHl1KGFuLC4zMzMzMzMzMzMzMzMzMzMzKmsrb3QsSHI9TStTdCksYVtPZT4+Ml09YVthbj4+Ml0sYVtPZSs0Pj4yXT1hW2FuKzQ+PjJdLGFbT2UrOD4+Ml09YVthbis4Pj4yXSxhW09lKzEyPj4yXT1hW2FuKzEyPj4yXSx5dShTbixFcj1E''@;'; + put 'put ''K250LEhyKSxhW0xlPj4yXT1hW1NuPj4yXSxhW0xlKzQ+PjJdPWFbU24rND4+Ml0sYVtMZSs4Pj4yXT1hW1NuKzg+PjJdLGFbTGUrMTI+PjJdPWFbU24rMTI+PjJdLHl1KEhuLEVyLEhlKSxhW1JlPj4yXT1hW0huPj4yXSxhW1JlKzQ+PjJdPWFbSG4rND4+Ml0sYVtSZSs4Pj4yXT1hW0huKzg+''@;'; + put 'put ''PjJdLGFbUmUrMTI+PjJdPWFbSG4rMTI+PjJdLHl1KFp0LEVyLEhyPWx0LU0pLGFbVmU+PjJdPWFbWnQ+PjJdLGFbVmUrND4+Ml09YVtadCs0Pj4yXSxhW1ZlKzg+PjJdPWFbWnQrOD4+Ml0sYVtWZSsxMj4+Ml09YVtadCsxMj4+Ml0seXUoY3QsLjMzMzMzMzMzMzMzMzMzMzMqYitrdCxIciks''@;'; + put 'put ''YVtxZT4+Ml09YVtjdD4+Ml0sYVtxZSs0Pj4yXT1hW2N0KzQ+PjJdLGFbcWUrOD4+Ml09YVtjdCs4Pj4yXSxhW3FlKzEyPj4yXT1hW2N0KzEyPj4yXSxfW0s+PjNdPWt0LF9bcGU+PjNdPWx0LG09MCE9KDB8YVs5NisoMHxhWyh3PWMrMTZ8MCk+PjJdKT4+Ml0pJiYoZnI9MD09KDEmYVsxMTYr''@;'; + put 'put ''KDB8YVsxNisoMHxjcigwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSkpPj4yXSk+PjJdfDApLF9bNTYrKHc9MHxhWzk2KygwfGFbdz4+Ml0pPj4yXSk+PjNdPS41KihFdD0rX1soZnI/dysyNHwwOncrMzJ8MCk+PjNdKStEKyArX1sxNisoZnI9MHxhW1dlPj4yXSk+PjNd''@;'; + put 'put ''LF9bdys2ND4+M109K19bZnIrMjQ+PjNdLGZlW3crODE+PjBdPTEsRXQ+cCk/RXQrbTpELEF1KGMsMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdLGJ0LDcsQSksYz1SLEc9RysxfDA7YWU9dXJ9KGMsZixwLG0sQSx3KX1mdW5jdGlvbiBhSihsLGMsZixwLG0sQSl7bT0r''@;'; + put 'put ''bSxBfD0wO3ZhciBnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxXZSxvdCxTdCxrdCxFdCxjdCxidCxhbixTbixIbix1cixIcix3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsbnQ9MCxsdD0wLFp0PTAsRXI9MCxmcj0wO3N3aXRjaChIcj1hZSxhZT1hZSsxNjA4MHwwLGFuPUhy''@;'; + put 'put ''KzgwfDAsU249SHIrNjR8MCxIbj1Icis0OHwwLHVyPUhyKzMyfDAsY3Q9SHIrMTZ8MCxidD1IcixSPShSPS41KihwPStwKS8rKDB8KGZ8PTApKSk+Mj9SOjIsb3Q9MTYrKDB8YVsoMz09KDMmYVsobnQ9MHxhWyhsfD0wKSsoKGN8PTApPDwyKT4+Ml0pPj4yXXwwKT9udDpudCs0OHwwKSs0MD4+''@;'; + put 'put ''Ml0pfDAsa3Q9KEQ9K19bMjQrKG50PTB8YVtudCsxNj4+Ml0pPj4zXSkrKFdlPStfWzI0KyhiPTB8YVtvdD4+Ml0pPj4zXSksRXQ9KE09K19bbnQrNjQ+PjNdKStXZSxrPShTdD0odz0rX1tudCsxNj4+M10pKyhsdD0rX1tiKzE2Pj4zXSkpPj0obHQ9KHA9K19bbnQrNTY+PjNdKStsdCk/MTot''@;'; + put 'put ''MSxLPS41KitfW2IrODA+PjNdLDB8JEkoMHxKdFtudCs0OT4+MF0sMHxKdFtudCs4OT4+MF0pKXtjYXNlIDE1Onc9KFItcCsgK19bYis5Nj4+M10pKms7YnJlYWs7Y2FzZSAzODp3PShwK1IrICtfW2IrODg+PjNdKSprO2JyZWFrO2Nhc2UgNDE6Y2FzZSA0ODp3PShSLXcrICtfW2IrOTY+PjNd''@;'; + put 'put ''KSprO2JyZWFrO2Nhc2UgNTg6Y2FzZSA1NzpjYXNlIDUxOmNhc2UgNDc6Y2FzZSAzNzpjYXNlIDE0Onc9LjMzMzMzMzMzMzMzMzMzMzMqayoody1wKyArX1tiKzg4Pj4zXSsgK19bYis5Nj4+M10pO2JyZWFrO2Nhc2UgNzM6dz0odytSKyArX1tiKzg4Pj4zXSkqazticmVhaztjYXNlIDgzOnc9''@;'; + put 'put ''KCtfW2IrODg+PjNdK3cpKms7YnJlYWs7Y2FzZSA4NDp3PSguNSoody1wKyArX1tiKzg4Pj4zXSsgK19bYis5Nj4+M10pK1IpKms7YnJlYWs7Y2FzZSA4NTpjYXNlIDc1OmNhc2UgNzQ6dz0oLjUqKHctcCsgK19bYis4OD4+M10rICtfW2IrOTY+PjNdKSsyKlIpKms7YnJlYWs7ZGVmYXVsdDp3''@;'; + put 'put ''PTB9Zm9yKFIqPWssT2U9YW4rOHwwLExlPWFuKzE2fDAsUmU9YW4rMzJ8MCxIZT1hbis0OHwwLFZlPS41KihsdCtTdCkscWU9YW4rNjR8MCxudD1hbis4MHwwLGdlPWFuKzk2fDAsYmU9YW4rMTA0fDAscGU9MCxwPUssRD1LPChEPTMqKEstRCkpP0s6RCxrPUs8KE09MyooSy1NKSk/SzpNOyEo''@;'; + put 'put ''KDB8cGUpPj0oMHxmKSk7KUc9YysxfDAsYz0wfGFbbCsoYzw8Mik+PjJdLE09cCttLEQrPW0says9bSx3Kz1SLF9bYW4+PjNdPVN0LF9bT2U+PjNdPWt0LHl1KFNuLEs9dytTdCwuMzMzMzMzMzMzMzMzMzMzMypEK2t0KSxhW0xlPj4yXT1hW1NuPj4yXSxhW0xlKzQ+PjJdPWFbU24rND4+Ml0s''@;'; + put 'put ''YVtMZSs4Pj4yXT1hW1NuKzg+PjJdLGFbTGUrMTI+PjJdPWFbU24rMTI+PjJdLHl1KEhuLEssRXI9TStXZSksYVtSZT4+Ml09YVtIbj4+Ml0sYVtSZSs0Pj4yXT1hW0huKzQ+PjJdLGFbUmUrOD4+Ml09YVtIbis4Pj4yXSxhW1JlKzEyPj4yXT1hW0huKzEyPj4yXSx5dSh1cixWZSxFciksYVtI''@;'; + put 'put ''ZT4+Ml09YVt1cj4+Ml0sYVtIZSs0Pj4yXT1hW3VyKzQ+PjJdLGFbSGUrOD4+Ml09YVt1cis4Pj4yXSxhW0hlKzEyPj4yXT1hW3VyKzEyPj4yXSx5dShjdCxLPWx0LXcsRXIpLGFbcWU+PjJdPWFbY3Q+PjJdLGFbcWUrND4+Ml09YVtjdCs0Pj4yXSxhW3FlKzg+PjJdPWFbY3QrOD4+Ml0sYVtx''@;'; + put 'put ''ZSsxMj4+Ml09YVtjdCsxMj4+Ml0seXUoYnQsSywuMzMzMzMzMzMzMzMzMzMzMyprK0V0KSxhW250Pj4yXT1hW2J0Pj4yXSxhW250KzQ+PjJdPWFbYnQrND4+Ml0sYVtudCs4Pj4yXT1hW2J0Kzg+PjJdLGFbbnQrMTI+PjJdPWFbYnQrMTI+PjJdLF9bZ2U+PjNdPWx0LF9bYmU+PjNdPUV0LHA9''@;'; + put 'put ''MCE9KDB8YVs5NisoMHxhWyhiPWMrMTZ8MCk+PjJdKT4+Ml0pJiYoZnI9MD09KDEmYVsxMTYrKDB8YVsxNisoMHxjcigwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSkpPj4yXSk+PjJdfDApLF9bNjQrKGI9MHxhWzk2KygwfGFbYj4+Ml0pPj4yXSk+PjNdPS41KihadD0r''@;'; + put 'put ''X1soZnI/YiszMnwwOmIrMjR8MCk+PjNdKStNKyArX1syNCsoZnI9MHxhW290Pj4yXSk+PjNdLF9bYis1Nj4+M109K19bZnIrMTY+PjNdLGZlW2IrODE+PjBdPTEsWnQ+bSk/WnQrcDpNLEF1KGMsMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdLGFuLDcsQSksYz1HLHBl''@;'; + put 'put ''PXBlKzF8MDthZT1Icn1mdW5jdGlvbiBsbGUobCxjLGYscCxtLEEpe3A9K3AsQXw9MDt2YXIgSyxwZSxnZSxiZSxPZSxMZSxSZSxIZSxudCxXZSxvdCxTdCxrdCxadCxjdCxidCxhbixTbixIbix1cix3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsVmU9MCxxZT0wLGx0PTAsRXQ9MCxIcj0w''@;'; + put 'put ''LEVyPTAsZnI9MDtzd2l0Y2godXI9YWUsYWU9YWUrMTYwODB8MCxidD11cis4MHwwLGFuPXVyKzY0fDAsU249dXIrNDh8MCxIbj11ciszMnwwLFp0PXVyKzE2fDAsY3Q9dXIsaz0oaz0uNSoobT0rbSkvKygwfChmfD0wKSkpPjI/azoyLFdlPTE2KygwfGFbKDM9PSgzJmFbKHFlPTB8YVsobHw9''@;'; + put 'put ''MCkrKChjfD0wKTw8Mik+PjJdKT4+Ml18MCk/cWU6cWUrNDh8MCkrNDA+PjJdKXwwLG90PShiPStfWzE2KyhxZT0wfGFbcWUrMTY+PjJdKT4+M10pKyhudD0rX1sxNisoVmU9MHxhW1dlPj4yXSk+PjNdKSxrdD0obT0rX1txZSs1Nj4+M10pK250LHc9KFN0PStfW3FlKzI0Pj4zXSsobHQ9K19b''@;'; + put 'put ''VmUrMjQ+PjNdKSk+PShsdD0rX1txZSs2ND4+M10rbHQpPzE6LTEsRD0rX1tWZSs4OD4+M10sMHwkSSgwfEp0W3FlKzQ5Pj4wXSwwfEp0W3FlKzg5Pj4wXSkpe2Nhc2UgNjc6Y2FzZSAxMjpTdD09bHQmJih3PTAtd3wwKX1mb3IoSHI9MyooYitEKSxiPTMqKG0rRCksYmU9ayorKDB8dyksZ2U9''@;'; + put 'put ''YnQrOHwwLE9lPWJ0KzE2fDAsTGU9YnQrMzJ8MCxSZT1idCs0OHwwLEhlPS41KihsdCtTdCksVmU9YnQrNjR8MCxxZT1idCs4MHwwLEs9YnQrOTZ8MCxwZT1idCsxMDR8MCxHPTAsTT0wLG09RCxrPUQ8SHI/RDpIcixiPUQ8Yj9EOmI7ISgoMHxHKT49KDB8ZikpOylSPWMrMXwwLGM9MHxhW2wr''@;'; + put 'put ''KGM8PDIpPj4yXSxEPW0rcCxrKz1wLGIrPXAsTSs9YmUsX1tidD4+M109b3QsX1tnZT4+M109U3QseXUoYW4sb3QtLjMzMzMzMzMzMzMzMzMzMzMqayxIcj1NK1N0KSxhW09lPj4yXT1hW2FuPj4yXSxhW09lKzQ+PjJdPWFbYW4rND4+Ml0sYVtPZSs4Pj4yXT1hW2FuKzg+PjJdLGFbT2UrMTI+''@;'; + put 'put ''PjJdPWFbYW4rMTI+PjJdLHl1KFNuLEVyPW50LUQsSHIpLGFbTGU+PjJdPWFbU24+PjJdLGFbTGUrND4+Ml09YVtTbis0Pj4yXSxhW0xlKzg+PjJdPWFbU24rOD4+Ml0sYVtMZSsxMj4+Ml09YVtTbisxMj4+Ml0seXUoSG4sRXIsSGUpLGFbUmU+PjJdPWFbSG4+PjJdLGFbUmUrND4+Ml09YVtI''@;'; + put 'put ''bis0Pj4yXSxhW1JlKzg+PjJdPWFbSG4rOD4+Ml0sYVtSZSsxMj4+Ml09YVtIbisxMj4+Ml0seXUoWnQsRXIsSHI9bHQtTSksYVtWZT4+Ml09YVtadD4+Ml0sYVtWZSs0Pj4yXT1hW1p0KzQ+PjJdLGFbVmUrOD4+Ml09YVtadCs4Pj4yXSxhW1ZlKzEyPj4yXT1hW1p0KzEyPj4yXSx5dShjdCxr''@;'; + put 'put ''dC0uMzMzMzMzMzMzMzMzMzMzMypiLEhyKSxhW3FlPj4yXT1hW2N0Pj4yXSxhW3FlKzQ+PjJdPWFbY3QrND4+Ml0sYVtxZSs4Pj4yXT1hW2N0Kzg+PjJdLGFbcWUrMTI+PjJdPWFbY3QrMTI+PjJdLF9bSz4+M109a3QsX1twZT4+M109bHQsbT0wIT0oMHxhWzk2KygwfGFbKHc9YysxNnwwKT4+''@;'; + put 'put ''Ml0pPj4yXSkmJihmcj0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKSk+PjJdKT4+Ml18MCksX1s1Nisodz0wfGFbOTYrKDB8YVt3Pj4yXSk+PjJdKT4+M109LS41KihFdD0rX1soZnI/dysyNHwwOncrMzJ8MCk+PjNdKS1E''@;'; + put 'put ''KyArX1sxNisoZnI9MHxhW1dlPj4yXSk+PjNdLF9bdys2ND4+M109K19bZnIrMjQ+PjNdLGZlW3crODE+PjBdPTEsRXQ+cCk/RXQrbTpELEF1KGMsMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdLGJ0LDcsQSksYz1SLEc9RysxfDA7YWU9dXJ9ZnVuY3Rpb24gc2xlKGws''@;'; + put 'put ''YyxmLHAsbSxBKXttPSttLEF8PTA7dmFyIEsscGUsYmUsT2UsTGUsUmUsVmUsb3QsU3Qsa3QsbHQsWnQsY3QsYnQsYW4sU24sSG4sdXIsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLGdlPTAsSGU9MCxxZT0wLG50PTAsV2U9MCxFdD0wLEhyPTAsRXI9MCxmcj0wO2Zvcih1cj1hZSxhZT1h''@;'; + put 'put ''ZSsxNjA4MHwwLGJ0PXVyKzgwfDAsYW49dXIrNjR8MCxTbj11cis0OHwwLEhuPXVyKzMyfDAsWnQ9dXIrMTZ8MCxjdD11cixPZT0xNisoMHxhWygzPT0oMyZhWyhudD0wfGFbKGx8PTApKygoY3w9MCk8PDIpPj4yXSk+PjJdfDApP250Om50KzQ4fDApKzQwPj4yXSl8MCxSZT0oYj0rX1syNCso''@;'; + put 'put ''bnQ9MHxhW250KzE2Pj4yXSk+PjNdKSsoYmU9K19bMjQrKFdlPTB8YVtPZT4+Ml0pPj4zXSksVmU9KGs9K19bbnQrNjQ+PjNdKStiZSxnZT0oTGU9K19bbnQrMTY+PjNdKyhIZT0rX1tXZSsxNj4+M10pKT49KEhlPStfW250KzU2Pj4zXStIZSk/MTotMSxNPS41KitfW1dlKzgwPj4zXSxxZT0o''@;'; + put 'put ''KHFlPS41KihwPStwKS8rKDB8KGZ8PTApKSk+Mj9xZToyKSorKDB8KChudD02Nz09KDB8JEkoMHxKdFtudCs0OT4+MF0sMHxKdFtudCs4OT4+MF0pKSk/MC1nZXwwOmdlKSksZ2U9YnQrOHwwLG50PWJ0KzE2fDAsV2U9YnQrMzJ8MCxvdD1idCs0OHwwLFN0PS41KihIZStMZSksa3Q9YnQrNjR8''@;'; + put 'put ''MCxsdD1idCs4MHwwLEs9YnQrOTZ8MCxwZT1idCsxMDR8MCxwPU0sdz0wLGI9TTwoYj0zKihiK00pKT9NOmIsaz1NPChrPTMqKGsrTSkpP006ayxSPTA7ISgoMHxSKT49KDB8ZikpOylHPWMrMXwwLEQ9MHxhW2wrKGM8PDIpPj4yXSxNPXArbSxiKz1tLGsrPW0sdys9cWUsX1tidD4+M109TGUs''@;'; + put 'put ''X1tnZT4+M109UmUseXUoYW4sSHI9dytMZSxSZS0uMzMzMzMzMzMzMzMzMzMzMypiKSxhW250Pj4yXT1hW2FuPj4yXSxhW250KzQ+PjJdPWFbYW4rND4+Ml0sYVtudCs4Pj4yXT1hW2FuKzg+PjJdLGFbbnQrMTI+PjJdPWFbYW4rMTI+PjJdLHl1KFNuLEhyLEVyPWJlLU0pLGFbV2U+PjJdPWFb''@;'; + put 'put ''U24+PjJdLGFbV2UrND4+Ml09YVtTbis0Pj4yXSxhW1dlKzg+PjJdPWFbU24rOD4+Ml0sYVtXZSsxMj4+Ml09YVtTbisxMj4+Ml0seXUoSG4sU3QsRXIpLGFbb3Q+PjJdPWFbSG4+PjJdLGFbb3QrND4+Ml09YVtIbis0Pj4yXSxhW290Kzg+PjJdPWFbSG4rOD4+Ml0sYVtvdCsxMj4+Ml09YVtI''@;'; + put 'put ''bisxMj4+Ml0seXUoWnQsSHI9SGUtdyxFciksYVtrdD4+Ml09YVtadD4+Ml0sYVtrdCs0Pj4yXT1hW1p0KzQ+PjJdLGFba3QrOD4+Ml09YVtadCs4Pj4yXSxhW2t0KzEyPj4yXT1hW1p0KzEyPj4yXSx5dShjdCxIcixWZS0uMzMzMzMzMzMzMzMzMzMzMyprKSxhW2x0Pj4yXT1hW2N0Pj4yXSxh''@;'; + put 'put ''W2x0KzQ+PjJdPWFbY3QrND4+Ml0sYVtsdCs4Pj4yXT1hW2N0Kzg+PjJdLGFbbHQrMTI+PjJdPWFbY3QrMTI+PjJdLF9bSz4+M109SGUsX1twZT4+M109VmUscD0wIT0oMHxhWzk2KygwfGFbKGM9RCsxNnwwKT4+Ml0pPj4yXSkmJihmcj0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKDB8YVso''@;'; + put 'put ''Mz09KDMmYVtEPj4yXXwwKT9EOkQrNDh8MCkrNDA+PjJdKSk+PjJdKT4+Ml18MCksX1s2NCsoYz0wfGFbOTYrKDB8YVtjPj4yXSk+PjJdKT4+M109LS41KihFdD0rX1soZnI/YyszMnwwOmMrMjR8MCk+PjNdKS1NKyArX1syNCsoZnI9MHxhW09lPj4yXSk+PjNdLF9bYys1Nj4+M109K19bZnIr''@;'; + put 'put ''MTY+PjNdLGZlW2MrODE+PjBdPTEsRXQ+bSk/RXQrcDpNLEF1KEQsMHxhWygyPT0oMyZhW0Q+PjJdfDApP0Q6RCstNDh8MCkrNDA+PjJdLGJ0LDcsQSksYz1HLFI9UisxfDA7YWU9dXJ9ZnVuY3Rpb24gJEkobCxjKXtsfD0wLGN8PTA7dmFyIGY9MDtmb3IoZj0wOzspe2lmKCgwfGYpPj04KXtj''@;'; + put 'put ''PS0xO2JyZWFrfWlmKCgwfGFbMjIwNDQrKGY8PDIpPj4yXSk9PSgwfGMpKXtjPWY7YnJlYWt9Zj1mKzF8MH1mb3IoZj0wOzspe2lmKCgwfGYpPj04KXtmPS0xO2JyZWFrfWlmKCgwfGFbMjIwNDQrKGY8PDIpPj4yXSk9PSgwfGwpKWJyZWFrO2Y9ZisxfDB9cmV0dXJuIDB8KChmfGN8MCk8MD8w''@;'; + put 'put ''OjB8YVsyMjA3NisoZjw8NSkrKGM8PDIpPj4yXSl9ZnVuY3Rpb24geXUobCxjLGYpe2Y9K2YsX1sobHw9MCk+PjNdPWM9K2MsX1tsKzg+PjNdPWZ9ZnVuY3Rpb24gc04obCl7bHw9MDt2YXIgYz0wLGY9MDswIT0oMHxhWzQ3MjAzXSl8MCE9KDB8YVs0NzIwMl0pJiYoMHwoZj0wfGFbMTAwKygw''@;'; + put 'put ''fGFbKGM9bCsxNnwwKT4+Ml0pPj4yXSkmJjA9PSgwfGZlW2YrODE+PjBdKSYmMHxnayhsLDEpJiZlNChmPTB8Y3IoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pLDB8YVsxMDArKDB8YVtjPj4yXSk+PjJdKSwwfChmPTB8YVsxMDQrKDB8YVtjPj4yXSk+PjJdKSYmMD09''@;'; + put 'put ''KDB8ZmVbZis4MT4+MF0pJiYwfGdrKGwsMCkmJmU0KGY9MHxjcigwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSksMHxhWzEwNCsoMHxhW2M+PjJdKT4+Ml0pKX1mdW5jdGlvbiBnayhsLGMpe2N8PTA7dmFyIEcsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxE''@;'; + put 'put ''PTAsUj0wLEs9MDtHPWFlLGFlPWFlKzk2fDAsRD1HKzMyfDAsaz1HKzE2fDAsTT1HLEE9MTYrKGx8PTApfDA7ZG97aWYoNiE9KDB8ZmVbMTEyKygwfGFbQT4+Ml0pPj4wXSkpe2lmKDA9PSgwfChmPTB8YVs0NzIwM10pKXx8MD09KDB8ZmVbKDB8SG8obCxmKSk+PjBdKSl7aWYoIShmPTB8YVs0''@;'; + put 'put ''NzIwMl0pKXtmPTA7YnJlYWt9aWYoISgwfGZlWygwfEhvKGwsZikpPj4wXSkpe2Y9MDticmVha319aWYoUj0wfGFbQT4+Ml0sUj0wfGFbKChjPWM8PDI0Pj4yND09MCk/UisxMDR8MDpSKzEwMHwwKT4+Ml0sZj0wfFQ3KGwpKXtiPTB8YVtmPj4yXTtkb3tpZihjKXtpZigwfGFbYis4Pj4yXSl7''@;'; + put 'put ''dz0rX1soZj0wfGFbYj4+Ml0pPj4zXSxtPStfW2IrMTY+PjNdLGY9Zis4fDAscD0rX1tiKzI0Pj4zXTticmVha31mb3IobT0rX1soZj0wfGFbYj4+Ml0pPj4zXSxwPStfW2YrOD4+M10sZj0wOzQhPSgwfGYpOylhWyhNPUQrKGY8PDQpfDApPj4yXT1hWyhBPSgwfGFbYj4+Ml0pKyhmPDw0KXww''@;'; + put 'put ''KT4+Ml0sYVtNKzQ+PjJdPWFbQSs0Pj4yXSxhW00rOD4+Ml09YVtBKzg+PjJdLGFbTSsxMj4+Ml09YVtBKzEyPj4yXSxmPWYrMXwwO3d1KGssRCwzLC4xLDAsMCksdz0rX1trPj4zXSxmPWsrOHwwfWVsc2V7aWYoQT1iKyg0OCooYz0oMHxhW2YrND4+Ml0pLTF8MCl8MCl8MCwwfGFbYisoNDgq''@;'; + put 'put ''Y3wwKSsxMj4+Ml0pe3c9K19bKEQ9MHxhW0E+PjJdKSsoKGY9KDB8YVtiKyg0OCpjfDApKzQ+PjJdKS0xfDApPDw0KT4+M10sbT0rX1tiKyg0OCpjfDApKzMyPj4zXSxmPUQrKGY8PDQpKzh8MCxwPStfW2IrKDQ4KmN8MCkrNDA+PjNdO2JyZWFrfWZvcihtPStfWyhrPTB8YVtBPj4yXSkrKChm''@;'; + put 'put ''PSgwfGFbKGM9YisoNDgqY3wwKSs0fDApPj4yXSktMXwwKTw8NCk+PjNdLHA9K19baysoZjw8NCkrOD4+M10sZj0wOzQhPSgwfGYpOylhWyhrPUQrKGY8PDQpfDApPj4yXT1hWyhiPSgwfGFbQT4+Ml0pKyhmKy00KygwfGFbYz4+Ml0pPDw0KXwwKT4+Ml0sYVtrKzQ+PjJdPWFbYis0Pj4yXSxh''@;'; + put 'put ''W2srOD4+Ml09YVtiKzg+PjJdLGFbaysxMj4+Ml09YVtiKzEyPj4yXSxmPWYrMXwwO3d1KE0sRCwzLC45LDAsMCksdz0rX1tNPj4zXSxmPU0rOHwwfX13aGlsZSgwKTtLPStVbCgrKCtfW2Y+PjNdLXApLCsody1tKSksSz0uMDE3NDUzMjkyNTE5OTQzMjk1KitNbChsLDB8YVs0NzIwM10sLTI1''@;'; + put 'put ''LC0xODApK0ssdz0xMCorTWwobCwwfGFbNDcyMDJdLDEsMCksX1tSKzU2Pj4zXT13KitoYSgrSykrbSxfW1IrNjQ+PjNdPStEYSgrSykqdytwLGZlW1IrODE+PjBdPTEsZj0xfWVsc2UgZj0wfWVsc2UgZj0wfXdoaWxlKDApO3JldHVybiBhZT1HLDB8Zn1mdW5jdGlvbiBUNyhsKXt2YXIgcCxB''@;'; + put 'put ''LGM9MCxmPTAsbT0wO2ZvcihBPWFlLGFlPWFlKzE2fDAscD1BLGM9bHw9MDshKDB8KGM9MHxhWzgrKGY9MHxhW2MrMTY+PjJdKT4+Ml0pKTspe2lmKCEoMHxmZVtmKzExMj4+MF0pKXttPTU7YnJlYWt9Yz0wfGFbZisxMTY+PjJdfXJldHVybiA1PT0oMHxtKSYmKG09MHx0aSgwfGFbKDM9PSgz''@;'; + put 'put ''JmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSksYz0wfHRpKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSksYVtwPj4yXT1tLGFbcCs0Pj4yXT1jLCRyKDEsMTA2NTc5LHApLGM9MCksYWU9QSwwfGN9ZnVuY3Rpb24gbEoobCxjLGYpe2x8PTA7dmFyIHAsbSxBLHcs''@;'; + put 'put ''YixrLE0sRCxSLEsscGUsZ2UsYmUsRz0wO3BlPWFlLGFlPWFlKzk2fDAsaz1wZSs4MHwwLE09cGUrNjR8MCxEPXBlKzQ4fDAsSz1wZSxiPTB8cnRbMTM2KygwfGFbMTYrKGN8PTApPj4yXSk+PjFdLGZ1bmN0aW9uIHNKKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIG0sQSx3LHA9MCxiPTAsaz0wLE09''@;'; + put 'put ''MDt3PWFlLGFlPWFlKzMyfDAsbT13LHA9MHxhWyhrPTB8YVsobHw9MCk+PjJdKT4+Ml0sYj0wfGFbays4Pj4yXSxhWyhBPXcrMTZ8MCk+PjJdPWFbKE09aysxNnwwKT4+Ml0sYVtBKzQ+PjJdPWFbTSs0Pj4yXSxhW0ErOD4+Ml09YVtNKzg+PjJdLGFbQSsxMj4+Ml09YVtNKzEyPj4yXSxhW20+''@;'; + put 'put ''PjJdPWFbKGs9ayszMnwwKT4+Ml0sYVttKzQ+PjJdPWFbays0Pj4yXSxhW20rOD4+Ml09YVtrKzg+PjJdLGFbbSsxMj4+Ml09YVtrKzEyPj4yXSxiPyhhW2M+PjJdPWFbQT4+Ml0sYVtjKzQ+PjJdPWFbQSs0Pj4yXSxhW2MrOD4+Ml09YVtBKzg+PjJdLGFbYysxMj4+Ml09YVtBKzEyPj4yXSk6''@;'; + put 'put ''KGFbYz4+Ml09YVtwPj4yXSxhW2MrND4+Ml09YVtwKzQ+PjJdLGFbYys4Pj4yXT1hW3ArOD4+Ml0sYVtjKzEyPj4yXT1hW3ArMTI+PjJdKSxwPTB8YVsoYj0wfGFbbD4+Ml0pKyg0OCooaz0oMHxhW2wrND4+Ml0pLTF8MCl8MCk+PjJdLGw9MHxhW2IrKDQ4Kmt8MCkrND4+Ml0sTT0wfGFbYiso''@;'; + put 'put ''NDgqa3wwKSsxMj4+Ml0sYVtBPj4yXT1hWyhjPWIrKDQ4Kmt8MCkrMTZ8MCk+PjJdLGFbQSs0Pj4yXT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFbYys4Pj4yXSxhW0ErMTI+PjJdPWFbYysxMj4+Ml0sYVttPj4yXT1hWyhrPWIrKDQ4Kmt8MCkrMzJ8MCk+PjJdLGFbbSs0Pj4yXT1hW2srND4+Ml0s''@;'; + put 'put ''YVttKzg+PjJdPWFbays4Pj4yXSxhW20rMTI+PjJdPWFbaysxMj4+Ml0sTT8oYVtmPj4yXT1hW20+PjJdLGFbZis0Pj4yXT1hW20rND4+Ml0sYVtmKzg+PjJdPWFbbSs4Pj4yXSxhW2YrMTI+PjJdPWFbbSsxMj4+Ml0pOihhW2Y+PjJdPWFbKE09cCsobCstMTw8NCl8MCk+PjJdLGFbZis0Pj4y''@;'; + put 'put ''XT1hW00rND4+Ml0sYVtmKzg+PjJdPWFbTSs4Pj4yXSxhW2YrMTI+PjJdPWFbTSsxMj4+Ml0pLGFlPXd9KDB8YVs4KygwfGFbKGM9MTYrKGZ8PTApfDApPj4yXSk+PjJdLFI9cGUrMzJ8MCxHPXBlKzE2fDApLGdlPShwPStfW1I+PjNdKS0obT0rX1tHPj4zXSksYmU9KEE9K19bUis4Pj4zXSkt''@;'; + put 'put ''KHc9K19bRys4Pj4zXSk7ZTpkb3tpZihiZSpiZStnZSpnZTwxZS02KWFbRD4+Ml09YVtSPj4yXSxhW0QrND4+Ml09YVtSKzQ+PjJdLGFbRCs4Pj4yXT1hW1IrOD4+Ml0sYVtEKzEyPj4yXT1hW1IrMTI+PjJdO2Vsc2Ugc3dpdGNoKDE0JmIpe2Nhc2UgNDpjYXNlIDEwOl9bTT4+M109LjUqKG0r''@;'; + put 'put ''cCksX1tNKzg+PjNdPS41Kih3K0EpLEc9MHxhWzgrKDB8YVtjPj4yXSk+PjJdLGFbaz4+Ml09YVtNPj4yXSxhW2srND4+Ml09YVtNKzQ+PjJdLGFbays4Pj4yXT1hW00rOD4+Ml0sYVtrKzEyPj4yXT1hW00rMTI+PjJdLGxEKEssRyxrKSxhW0Q+PjJdPWFbSz4+Ml0sYVtEKzQ+PjJdPWFbSys0''@;'; + put 'put ''Pj4yXSxhW0QrOD4+Ml09YVtLKzg+PjJdLGFbRCsxMj4+Ml09YVtLKzEyPj4yXTticmVhayBlO2RlZmF1bHQ6dWxlKEQsMHxhWzgrKDB8YVtjPj4yXSk+PjJdLFIsRyk7YnJlYWsgZX19d2hpbGUoMCk7YVtsPj4yXT1hW0Q+PjJdLGFbbCs0Pj4yXT1hW0QrND4+Ml0sYVtsKzg+PjJdPWFbRCs4''@;'; + put 'put ''Pj4yXSxhW2wrMTI+PjJdPWFbRCsxMj4+Ml0sYWU9cGV9ZnVuY3Rpb24gdWxlKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBnZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxiZT0wO2ZvcihnZT0wfGFbNCsoY3w9MCk+PjJdLEE9MCxtPTA7ISgoMHxt''@;'; + put 'put ''KT49KDB8Z2UpKTspe2ZvcihrPTB8YVsoTT0wfGFbYz4+Ml0pKyg0OCptfDApPj4yXSxNPTB8YVtNKyg0OCptfDApKzQ+PjJdLHc9MyxiPTA7ISgoMHx3KT49KDB8TSkpOylwZT0rX1trKyhiPDw0KT4+M10tK19baysodzw8NCk+PjNdLEs9K19baysoYjw8NCkrOD4+M10tK19baysodzw8NCkr''@;'; + put 'put ''OD4+M10sdz13KzN8MCxiPWIrM3wwLEE9K0QwKCsoSypLK3BlKnBlKSkrQTttPW0rMXwwfU09MCxBKj0uNTtlOmZvcig7Oyl7aWYoKDB8TSk+PSgwfGdlKSl7bT0xNTticmVha31mb3IoYj0wfGFbKGs9MHxhW2M+PjJdKSsoNDgqTXwwKT4+Ml0saz0wfGFbaysoNDgqTXwwKSs0Pj4yXSxtPTMs''@;'; + put 'put ''dz0wOyEoKDB8bSk+PSgwfGspKTspe2lmKChwZT0rRDAoKygoYmU9KEs9K19bYisodzw8NCkrOD4+M10pLShHPStfW2IrKG08PDQpKzg+PjNdKSkqYmUrKHBlPShEPStfW2IrKHc8PDQpPj4zXSktKFI9K19bYisobTw8NCk+PjNdKSkqcGUpKSk+PUEpe209MTI7YnJlYWsgZX1tPW0rM3wwLHc9''@;'; + put 'put ''dyszfDAsQS09cGV9TT1NKzF8MH1pZigxMj09KDB8bSkpcmV0dXJuIF9bZj4+M109RCxfW2YrOD4+M109SyxfW3A+PjNdPVIsX1twKzg+PjNdPUcsX1tsPj4zXT0oKGJlPXBlLUEpKkQrUipBKS9wZSx2b2lkKF9bbCs4Pj4zXT0oYmUqSytHKkEpL3BlKTsxNT09KDB8bSkmJlByKDEzODcxMiwx''@;'; + put 'put ''MDY1MTQsMTMxNiwxMDY2NDEpfWZ1bmN0aW9uIHRnKGwsYyxmLHApe3NOKGN8PTApfWZ1bmN0aW9uIGNsZShsLGMsZixwLG0pe2N8PTAsZj0rZixwfD0wLG18PTA7dmFyIFdlLG90LFN0LGt0LGx0LEV0LFp0LGN0LEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9''@;'; + put 'put ''MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsYnQ9MDtmb3IoWnQ9MHxmdW5jdGlvbiBmbGUobCl7bHw9MDt2YXIgbSxBLHcsYixrLE0sRCxSLEcsSyxwZSxjPTAsZj0wLHA9MCxnZT0wLGJlPTAsT2U9MDtwZT1hZSxhZT1hZSsxNDR8MCxiPXBlKzEyOHwwLHc9cGUr''@;'; + put 'put ''MTEyfDAsaz1wZSs5NnwwLE09cGUrNjR8MCxEPXBlLFI9cGUrODB8MCxHPTB8ZnVuY3Rpb24gdUooKXt2YXIgbDtyZXR1cm4gbD0wfHZyKDEyKSxhW2wrND4+Ml09MCxhW2wrOD4+Ml09MmUzLGFbbD4+Ml09MHx2cigxMjhlMyksMHxsfSgpLEs9MHxhW2wrND4+Ml0sYVtiPj4yXT1hWyhtPTB8''@;'; + put 'put ''YVtsPj4yXSk+PjJdLGFbYis0Pj4yXT1hW20rND4+Ml0sYVtiKzg+PjJdPWFbbSs4Pj4yXSxhW2IrMTI+PjJdPWFbbSsxMj4+Ml0sY0ooRyxiLDApLGFbKEE9RCs0OHwwKT4+Ml09YVttPj4yXSxhW0ErND4+Ml09YVttKzQ+PjJdLGFbQSs4Pj4yXT1hW20rOD4+Ml0sYVtBKzEyPj4yXT1hW20r''@;'; + put 'put ''MTI+PjJdLGY9MCxjPTA7ZTpmb3IoO3A9ZiszfDAsISgoMHxwKT49KDB8SykpOyl7Zm9yKGFbRD4+Ml09YVtBPj4yXSxhW0QrND4+Ml09YVtBKzQ+PjJdLGFbRCs4Pj4yXT1hW0ErOD4+Ml0sYVtEKzEyPj4yXT1hW0ErMTI+PjJdLGw9MTs0IT0oMHxsKTspYVsoZ2U9RCsobDw8NCl8MCk+PjJd''@;'; + put 'put ''PWFbKGJlPW0rKGwrZjw8NCl8MCk+PjJdLGFbZ2UrND4+Ml09YVtiZSs0Pj4yXSxhW2dlKzg+PjJdPWFbYmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtiZSsxMj4+Ml0sbD1sKzF8MDtmb3IoYVtrPj4yXT1hW0Q+PjJdLGFbays0Pj4yXT1hW0QrND4+Ml0sYVtrKzg+PjJdPWFbRCs4Pj4yXSxhW2sr''@;'; + put 'put ''MTI+PjJdPWFbRCsxMj4+Ml0sbD0xOzspe2lmKDIxPT0oMHxsKSl7Zj1wO2NvbnRpbnVlIGV9d3UoUixELDMsLjA1KisoMHxsKSwwLDApLGFbTT4+Ml09YVtSPj4yXSxhW00rND4+Ml09YVtSKzQ+PjJdLGFbTSs4Pj4yXT1hW1IrOD4+Ml0sYVtNKzEyPj4yXT1hW1IrMTI+PjJdLGFbdz4+Ml09''@;'; + put 'put ''YVtrPj4yXSxhW3crND4+Ml09YVtrKzQ+PjJdLGFbdys4Pj4yXT1hW2srOD4+Ml0sYVt3KzEyPj4yXT1hW2srMTI+PjJdLGFbYj4+Ml09YVtSPj4yXSxhW2IrND4+Ml09YVtSKzQ+PjJdLGFbYis4Pj4yXT1hW1IrOD4+Ml0sYVtiKzEyPj4yXT1hW1IrMTI+PjJdLE9lPStkbGUodyxiKStjLGFb''@;'; + put 'put ''Yj4+Ml09YVtNPj4yXSxhW2IrND4+Ml09YVtNKzQ+PjJdLGFbYis4Pj4yXT1hW00rOD4+Ml0sYVtiKzEyPj4yXT1hW00rMTI+PjJdLGNKKEcsYixPZSksYVtrPj4yXT1hW00+PjJdLGFbays0Pj4yXT1hW00rND4+Ml0sYVtrKzg+PjJdPWFbTSs4Pj4yXSxhW2srMTI+PjJdPWFbTSsxMj4+Ml0s''@;'; + put 'put ''bD1sKzF8MCxjPU9lfX1yZXR1cm4gZnVuY3Rpb24gcGxlKGwpe3ZhciBjOygwfGFbOCsobHw9MCk+PjJdKT4oMHwoYz0wfGFbbCs0Pj4yXSkpJiYoYVtsPj4yXT0wfFYwKDB8YVtsPj4yXSxjPDw2KSl9KEcpLGFlPXBlLDB8R30obHw9MCksV2U9K19bKGN0PTB8YVtadD4+Ml0pKygobHQ9KEV0''@;'; + put 'put ''PTB8YVtadCs0Pj4yXSktMXwwKTw8NikrMTY+PjNdLG90PSsoMHxFdCksU3Q9Mj09KDB8bSksa3Q9MCE9KDB8cCksRD0wLHc9MCxBPTAsaz0wLE09MDshKCgwfEQpPj0oMHxFdCkpOyl7bD1+fitxSSgrKEQrLTF8MCksb3QpLGJ0PX5+K3FJKCsoMHwobnQ9RCsxfDApKSxvdCksYmU9K19bKGdl''@;'; + put 'put ''PWN0KyhEPDw2KSsxNnwwKT4+M10sT2U9Y3QrKEQ8PDYpKzI0fDAsTGU9Y3QrKEQ8PDYpKzMyfDAsUmU9Y3QrKEQ8PDYpKzQwfDAsSGU9Y3QrKEQ8PDYpKzQ4fDAsVmU9Y3QrKEQ8PDYpKzU2fDAsYj0rdU4oK19bY3QrKGJ0PDw2KSs4Pj4zXS0oaz0rX1socWU9Y3QrKEQ8PDYpKzh8MCk+PjNd''@;'; + put 'put ''KSwrX1tjdCsoYnQ8PDYpPj4zXS0oTT0rX1soUj1jdCsoRDw8Nil8MCk+PjNdKSksSz0rdU4oK19bY3QrKGw8PDYpKzg+PjNdLWssK19bY3QrKGw8PDYpPj4zXS1NKSxwZT0rc3dbNyZjXShiZSxXZSxmKSxsPTA9PSgwfEQpO2Rve2lmKGx8KDB8RCk9PSgwfGx0KSl7aWYobCl7aWYoQT1iKzEu''@;'; + put 'put ''NTcwNzk2MzI2Nzk0ODk2NiwhU3Qpe2w9MCxHPUEsdz1wZTticmVha31sPTAsRz1BLHc9cGUsay09K0RhKCtiKSpwZSxNLT0raGEoK2IpKnBlO2JyZWFrfWlmKEE9SystMS41NzA3OTYzMjY3OTQ4OTY2LCFTdCl7bD0wLEc9QSx3PXBlO2JyZWFrfWw9MCxHPUEsdz1wZSxrLT0rRGEoK0spKnBl''@;'; + put 'put ''LE0tPStoYSgrSykqcGU7YnJlYWt9Yj0oRz0xLjU3MDc5NjMyNjc5NDg5NjYtLjUqKChHPWItSyk8MD9HKzYuMjgzMTg1MzA3MTc5NTg2OkcpKSsoQT1iKzEuNTcwNzk2MzI2Nzk0ODk2Niksa3R8KHc9MD09KHc9K2hhKCtHKSk/MDpwZS93KT4xMCpwZT8oSz0rcUkoSystMS41NzA3OTYzMjY3''@;'; + put 'put ''OTQ4OTY2LDYuMjgzMTg1MzA3MTc5NTg2KSxsPTEsRz0rcUkoQSw2LjI4MzE4NTMwNzE3OTU4Niksdz1wZSxBPUspOihsPTAsRz1iLEE9Yil9d2hpbGUoMCk7X1tSPj4zXT1NLF9bcWU+PjNdPWssX1tnZT4+M109YmUsZmVbT2U+PjBdPTEwOCxfW0xlPj4zXT1BLF9bUmU+PjNdPXcsYVtIZT4+''@;'; + put 'put ''Ml09bCxfW1ZlPj4zXT1HLEQ9bnR9Zm9yKFI9MHx2cigxMiksbD0wOyEoKDB8bCk+PSgwfEV0KSk7KU09K19bY3QrKGw8PDYpPj4zXSxrPStfW2N0KyhsPDw2KSs4Pj4zXSx3PStfW2N0KyhsPDw2KSs0MD4+M10sYnQ9MHxhW2N0KyhsPDw2KSs0OD4+Ml0sYj0rX1tjdCsobDw8NikrNTY+PjNd''@;'; + put 'put ''LEk3KFIsK2hhKCsoQT0rX1tjdCsobDw8NikrMzI+PjNdKSkqdytNLCtEYSgrQSkqdytrKSwwfGJ0JiZjTihNLGssdywxLEEsYixwLFIpLGw9bCsxfDA7Zm9yKGI9QSszLjE0MTU5MjY1MzU4OTc5MywoRD0xPT0oMHxtKSk/Zk4oUixNLGssdyxBLGIpOihJNyhSLCtoYSgrYikqdytNLCtEYSgr''@;'; + put 'put ''YikqdytrKSxBPWIpLGw9RXQrLTJ8MCxiPU07ISgoMHxsKTw9LTEpOylNPStfW2N0KyhsPDw2KT4+M10saz0rX1tjdCsobDw8NikrOD4+M10sdz0rX1tjdCsobDw8NikrNDA+PjNdLGJ0PTB8YVtjdCsobDw8NikrNDg+PjJdLEE9K19bY3QrKGw8PDYpKzMyPj4zXSszLjE0MTU5MjY1MzU4OTc5''@;'; + put 'put ''MyxJNyhSLCtoYSgrKGI9K19bY3QrKGw8PDYpKzU2Pj4zXSszLjE0MTU5MjY1MzU4OTc5MykpKncrTSwrRGEoK2IpKncrayksMHxidCYmY04oTSxrLHcsMCxBLGIscCxSKSxsPWwrLTF8MCxiPU07cmV0dXJuIEQmJmZOKFIsYixrLHcsQSxBKzMuMTQxNTkyNjUzNTg5NzkzKSxmdW5jdGlvbiBo''@;'; + put 'put ''bGUobCl7RnQoMHxhWyhsfD0wKT4+Ml0pLEZ0KGwpfShadCksMHxSfWZ1bmN0aW9uIHFJKGwsYyl7dmFyIGY7cmV0dXJuIGY9KGw9K2wpLStjZigrbC8oYz0rYykpKmMsKyghKGw8MCkmIShsPj1jKT9sOmYpfWZ1bmN0aW9uIHVOKGwsYyl7cmV0dXJuIDA9PShsPStsKSYwPT0oYz0rYyk/bD0w''@;'; + put 'put ''OihsPStVbCgrbCwrYykpPj0wfHwobCs9Ni4yODMxODUzMDcxNzk1ODYpLCtsfWZ1bmN0aW9uIEk3KGwsYyxmKXtjPStjLGY9K2Y7dmFyIHA9MCxtPTA7KDB8KHA9MHxhWyhsfD0wKT4+Ml0pKTwoMHxhWyhtPWwrNHwwKT4+Ml0pP209MHxhW2wrOD4+Ml06KGFbbT4+Ml09MmUzLG09MHxWMCgw''@;'; + put 'put ''fGFbKHA9bCs4fDApPj4yXSwzMmUzKSxhW3A+PjJdPW0scD0wfGFbbD4+Ml0pLGFbbD4+Ml09cCsxLF9bbSsocDw8NCk+PjNdPWMsX1ttKyhwPDw0KSs4Pj4zXT1mfWZ1bmN0aW9uIGNOKGwsYyxmLHAsbSxBLHcsYil7dmFyIGs7bD0rbCxjPStjLGY9K2YsbT0rbSxBPStBLHd8PTAsYnw9MCxr''@;'; + put 'put ''PShwPTA9PSgwfChwfD0wKSkpP206QTtkb3tpZigxPT0oMHx3KSl7aWYoKG09KG09KHA/QTptKS1rKTw9LjAwMTc0NTMyOTI1MTk5NDMyOTY/bSs2LjI4MzE4NTMwNzE3OTU4NjptKTwzLjE0MTU5MjY1MzU4OTc5Myl7Zk4oYixsLGMsZixtK2ssayk7YnJlYWt9STcoYiwraGEoK2spKmYrbCwr''@;'; + put 'put ''RGEoK2spKmYrbCk7YnJlYWt9STcoYiwraGEoK2spKmYrbCwrRGEoK2spKmYrbCl9d2hpbGUoMCl9ZnVuY3Rpb24gZk4obCxjLGYscCxtLEEpe2M9K2MsZj0rZixwPStwLEE9K0E7dmFyIHc9MCxiPTA7STcobHw9MCwraGEoKyhtPSttKSkqcCtjLCtEYSgrbSkqcCtmKTtlOmRve2lmKDAhPXAp''@;'; + put 'put ''e2Zvcig7QT5tOylBKz0tNi4yODMxODUzMDcxNzk1ODY7Zm9yKEE9bS1BO0E+Ni4yODMxODUzMDcxNzk1ODY7KUErPS02LjI4MzE4NTMwNzE3OTU4Njtmb3IoQSo9LjA1MjYzMTU3ODk0NzM2ODQyLHc9MTs7KXtpZigyMD09KDB8dykpYnJlYWsgZTtJNyhsLCtoYSgrKGI9bS1BKisoMHx3KSkp''@;'; + put 'put ''KnArYywrRGEoK2IpKnArZiksdz13KzF8MH19fXdoaWxlKDApfWZ1bmN0aW9uIGNKKGwsYyxmKXtjfD0wLGY9K2Y7dmFyIG0sQSx3LHA9MDsoMHwocD0wfGFbKHc9NCsobHw9MCl8MCk+PjJdKSk8KDB8KEE9MHxhWyhtPWwrOHwwKT4+Ml0pKT9sPTB8YVtsPj4yXTooYVttPj4yXT1BPDwxLHA9''@;'; + put 'put ''MHxWMCgwfGFbbD4+Ml0sQTw8NyksYVtsPj4yXT1wLGw9cCxwPTB8YVt3Pj4yXSksX1tsKyhwPDw2KT4+M109K19bYz4+M10sX1tsKyhwPDw2KSs4Pj4zXT0rX1tjKzg+PjNdLGFbdz4+Ml09cCsxLF9bbCsocDw8NikrMTY+PjNdPWZ9ZnVuY3Rpb24gZGxlKGwsYyl7dmFyIGYscDtyZXR1cm4r''@;'; + put 'put ''ICtEMCgrKChwPStfWzgrKGx8PTApPj4zXS0rX1s4KyhjfD0wKT4+M10pKnArKGY9K19bbD4+M10tK19bYz4+M10pKmYpKX1mdW5jdGlvbiBlRChsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIEEsdyxiLE0scD0wLG09MCxrPTA7TT1hZSxhZT1hZSsxNnwwLGs9TSs4fDAsYj1NLGFbKEE9TSsx''@;'; + put 'put ''MnwwKT4+Ml09MCwodz0wfGFbZis0Pj4yXSl8fFByKDEwNjY1OCwxMDY2NjksMjAzLDEwNjY4MCksKHA9MHxhW3c+PjJdKXx8UHIoMTA2Njk0LDEwNjY2OSwyMDYsMTA2NjgwKSwwfGFbKG09dys4fDApPj4yXXx8KGFbbT4+Ml09MHxmdW5jdGlvbiBnbGUobCl7bHw9MDt2YXIgYztyZXR1cm4g''@;'; + put 'put ''MCE9KDB8KGM9MHxhWzQ3MzAxXSkpJiYwPT0oMHx5MChjLGwpKT9sPTB8YVs0NzMxMF06KEZ0KGMpLGFbNDczMDFdPTB8cmEobCksbD0wfHR3KDE4OTIwNCwyMjMzMiwzNSwzNiw5NSksYVs0NzMxMF09bCksMHxsfShwKSksKDB8ZnVuY3Rpb24gSVIobCxjLGYpe3ZhciBwPTA7cmV0dXJuIDB8''@;'; + put 'put ''KDAhPSgwfChsPTB8YVsxNDgrKGx8PTApPj4yXSkpJiYwIT0oMHwocD0wfGFbbD4+Ml0pKT8wfEJpWzEyNyZwXShjfD0wLGZ8PTApOjApfShjLGYscD0wKSk8PDI0Pj4yNHx8ZnVuY3Rpb24gbWxlKGwsYyl7Y3w9MDt2YXIgQSxmPTAscD0wLG09MCx3PTAsYj0wO2lmKGY9MHxhWyh3PTB8YVs0''@;'; + put 'put ''KyhsfD0wKT4+Ml0pPj4yXSxBPStfW3crMTY+PjNdLF9bKHc9bCszMnwwKT4+M109MCxfW2wrNDA+PjNdPTEuMipBLF9bbCsxNj4+M109MCxfW2wrMjQ+PjNdPS4xKkEsYVtsKzg+PjJdPTAsYVtsKzEyPj4yXT0wLDB8bzQoZiwxMDY3NzEsNCk/MCE9KDB8bzQoZiwxMDY3NzYsNSkpJiYwIT0o''@;'; + put 'put ''MHxvNChmLDEwNjc4Miw5KSk/KG09NDI0OCxmPTEwNjc5Mik6KG09ODM0NCxmPTEwNjgyOCk6KG09NjI5NixmPTEwNjgwOSksMHxjJiYoYVtjPj4yXT1mKSwwfChmPTB8YVtsPj4yXSkpe2ZvcihwPTA7KGw9MHxmZVtmPj4wXSk8PDI0Pj4yNDspX1t3Pj4zXT1iPXArICtfW20rKCgyNTUmbCk8''@;'; + put 'put ''PDMpPj4zXSxmPWYrMXwwLHA9YjtfW3c+PjNdPXAqQX19KGYscCk7ZG97aWYoMHxwKXtpZihjPTB8YVsxNTcxMl0scD0wfGFbdz4+Ml0sbT0wfGFbQT4+Ml0pe2FbYj4+Ml09cCxhW2IrND4+Ml09bSxUMChjLDEwNjcwNSxiKTticmVha31hW2s+PjJdPXAsVDAoYywxMDY3Mzcsayk7YnJlYWt9''@;'; + put 'put ''fXdoaWxlKDApO2FbbD4+Ml09YVsoaz1mKzMyfDApPj4yXSxhW2wrND4+Ml09YVtrKzQ+PjJdLGFbbCs4Pj4yXT1hW2srOD4+Ml0sYVtsKzEyPj4yXT1hW2srMTI+PjJdLGFlPU19ZnVuY3Rpb24gbkQobCl7dmFyIGMsZjtyZXR1cm4gbHw9MCxjPTB8dnIoMTYpLGY9MHx2cigobD0oMHxsKT4y''@;'; + put 'put ''P2w6Mik8PDIpLGFbYz4+Ml09ZixhW2MrMTI+PjJdPWYsYVtjKzg+PjJdPWYsYVtjKzQ+PjJdPWYrKGw8PDIpLDB8Y31mdW5jdGlvbiBmSihsKXtGdCgwfGFbKGx8PTApPj4yXSksRnQobCl9ZnVuY3Rpb24gRDcobCxjKXt2YXIgZixwO2N8PTAsYVsoZj0xMisobHw9MCl8MCk+PjJdPTQrKHA9''@;'; + put 'put ''MHxhW2Y+PjJdKSxhW3A+PjJdPWMsKDB8YVtmPj4yXSk+Pj4wPj0oMHxhW2wrND4+Ml0pPj4+MCYmKGFbZj4+Ml09YVtsPj4yXSl9ZnVuY3Rpb24gckQobCl7dmFyIGYsYz0wLHA9MDtyZXR1cm4oMHwoYz0wfGFbKGY9OCsobHw9MCl8MCk+PjJdKSkhPSgwfGFbbCsxMj4+Ml0pPyhhW2Y+PjJd''@;'; + put 'put ''PXA9Yys0fDAsYz0wfGFbYz4+Ml0scD4+PjA+PSgwfGFbbCs0Pj4yXSk+Pj4wJiYoYVtmPj4yXT1hW2w+PjJdKSk6Yz0wLDB8Y31mdW5jdGlvbiBlcyhsLGMsZixwKXtmfD0wLHB8PTA7dmFyIG0sdyxBPTA7cmV0dXJuIHc9YWUsYWU9YWUrMTZ8MCxtPXcsMCE9KDB8KGN8PTApKSYmMCE9KDB8''@;'; + put 'put ''KEE9MHxIbyhsfD0wLGMpKSkmJjAhPSgwfGZlW0E+PjBdKSYmKGM9MHx2TChBLG0sMTApLGY9KDB8QSk9PSgwfGFbbT4+Ml0pP2Y6KDB8Yyk8KDB8cCk/cDpjKSxhZT13LDB8Zn1mdW5jdGlvbiBNbChsLGMsZixwKXtmPStmLHA9K3A7dmFyIG0sdyxBPTAsYj0wO3JldHVybiB3PWFlLGFlPWFl''@;'; + put 'put ''KzE2fDAsbT13LDAhPSgwfChsfD0wKSkmMCE9KDB8KGN8PTApKSYmMCE9KDB8KEE9MHxIbyhsLGMpKSkmJjAhPSgwfGZlW0E+PjBdKSYmKGI9K2kzKEEsbSksZj0oMHxBKT09KDB8YVttPj4yXSk/ZjpiPHA/cDpiKSxhZT13LCtmfWZ1bmN0aW9uIHBOKGwpe2x8PTA7dmFyIGM9MDtyZXR1cm4o''@;'; + put 'put ''Yz0rX1syMzI5M10pPjB8fChjPTA9PShjPStNbChsLDB8c2kobCwwLDEwNzYzOCwwKSwtMSwwKSk/NzI6YyksK2N9ZnVuY3Rpb24gdjIobCxjLGYpe3JldHVybiBmfD0wLDAhPSgwfChsfD0wKSkmMCE9KDB8KGN8PTApKSYmKGY9MHxIbyhsLGMpKSwwfGZ9ZnVuY3Rpb24gQmEobCxjLGYpe3Jl''@;'; + put 'put ''dHVybiAwIT0oMHwobD0wfHYyKGx8PTAsY3w9MCxmfD0wKSkpJiYwIT0oMHxmZVtsPj4wXSkmJihmPWwpLDB8Zn1mdW5jdGlvbiBoSihsLGMsZil7cmV0dXJuIGx8PTAsZnw9MCwwfCgoY3w9MCk/MHxlMSgwfEhvKGwsYykpOjI1NSZmKX1mdW5jdGlvbiBlMShsKXtyZXR1cm4gMHxuZyhsfD0w''@;'; + put 'put ''LDApfWZ1bmN0aW9uIG5nKGwsYyl7Y3w9MDt2YXIgZj0wO3JldHVybiAwIT0oMHwobHw9MCkpJiYoZj0wfGZlW2w+PjBdKTw8MjQ+PjI0IT0wJiYoMCE9KDB8eTAobCwxMzczMDgpKSYmMCE9KDB8eTAobCwxMDc2NDkpKT8wIT0oMHx5MChsLDEwNzY1MikpJiYwIT0oMHx5MChsLDEwNzY1Nykp''@;'; + put 'put ''PygoZjw8MjQ+PjI0KS00OHwwKT4+PjA8MTAmJihjPTI1NSYoMHxyMyhsKSkpOmM9MTpjPTApLDB8Y31mdW5jdGlvbiBnMShsKXtsfD0wO2Zvcih2YXIgYz0wLGY9MDsoMHwoZj0wfGFbKGM9MjIwKygwfGFbbCsxNj4+Ml0pfDApPj4yXSkpIT0oMHxsKSYwIT0oMHxmKTspKGw9MHxhWzIyMCso''@;'; + put 'put ''MHxhW2YrMTY+PjJdKT4+Ml0pP2FbYz4+Ml09bDpsPWY7cmV0dXJuIDB8bH1mdW5jdGlvbiBpRChsLGMpe3ZhciBmPTAscD0wLG09MCxBPTAsdz0wO3JldHVybigwfChsfD0wKSkhPSgwfChjfD0wKSkmJigwfGFbKHA9MjIwKyhmPTB8YVtsKzE2Pj4yXSl8MCk+PjJdP2w9MHxnMShsKTooYVtw''@;'; + put 'put ''Pj4yXT1sLGFbZisyMTY+PjJdPTEpLDB8YVsocD0yMjArKGY9MHxhW2MrMTY+PjJdKXwwKT4+Ml0/KGM9Zj0wfGcxKGMpLGY9MHxhW2YrMTY+PjJdKTooYVtwPj4yXT1jLGFbZisyMTY+PjJdPTEpLG09YysxNnwwLGFbKCh3PSgwfGFbMTIwKyhwPTB8YVsoQT1sKzE2fDApPj4yXSk+PjJdKT4o''@;'; + put 'put ''MHxhW2YrMTIwPj4yXSkpP3A6ZikrMjIwPj4yXT1sPXc/YzpsLGFbKHA9MjE2KygwfGFbKHc/bTpBKT4+Ml0pfDApPj4yXT0oMHxhW3A+PjJdKSsoMHxhWzIxNisoMHxhWyh3P0E6bSk+PjJdKT4+Ml0pKSwwfGx9ZnVuY3Rpb24gcmcobCl7YVsyMTYrKGw9MHxhWzE2KyhsfD0wKT4+Ml0pPj4y''@;'; + put 'put ''XT0xLGFbbCsyMjA+PjJdPTAsZmVbbCsxNTk+PjBdPTB9ZnVuY3Rpb24gZ04obCxjKXtpZihjfD0wLCgwfGcxKGx8PTApKT09KDB8bCkpcmV0dXJuIGFbMjIwKyhsPTB8YVtsKzE2Pj4yXSk+PjJdPWMsdm9pZChhWyhjPTIxNisoMHxhW2MrMTY+PjJdKXwwKT4+Ml09KDB8YVtjPj4yXSkrKDB8''@;'; + put 'put ''YVtsKzIxNj4+Ml0pKTtQcigxMDc2NjksMTA3NjYxLDE5NCwxMDc2ODUpfWZ1bmN0aW9uIG9EKGwsYyl7dmFyIGY7Zj03MiorX1s4KyhjPTB8YVsxMzIrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pPj4zXSxfWyhsfD0wKT4+M109NzIqK19bYz4+M10sX1tsKzg+PjNdPWZ9ZnVuY3Rpb24gd3Uo''@;'; + put 'put ''bCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHA9K3AsbXw9MCxBfD0wO3ZhciBNLEQsUix3PTAsYj0wLGs9MCxHPTA7Zm9yKFI9YWUsYWU9YWUrNTc2fDAsRD1SLHc9MDshKCgwfHcpPigwfGYpKTspYVsoaz1EKyh3PDw0KXwwKT4+Ml09YVsoYj1jKyh3PDw0KXwwKT4+Ml0sYVtrKzQ+PjJd''@;'; + put 'put ''PWFbYis0Pj4yXSxhW2srOD4+Ml09YVtiKzg+PjJdLGFbaysxMj4+Ml09YVtiKzEyPj4yXSx3PXcrMXwwO2ZvcihNPTEtcCx3PTE7ISgoMHx3KT4oMHxmKSk7KXtmb3IoYj1mLXd8MCxrPXcrLTF8MCxjPTA7ISgoMHxjKT4oMHxiKSk7KV9bRCsoOTYqd3wwKSsoYzw8NCk+PjNdPStfW0QrKDk2''@;'; + put 'put ''Kmt8MCkrKChHPWMrMXwwKTw8NCk+PjNdKnArICtfW0QrKDk2Kmt8MCkrKGM8PDQpPj4zXSpNLF9bRCsoOTYqd3wwKSsoYzw8NCkrOD4+M109K19bRCsoOTYqa3wwKSsoRzw8NCkrOD4+M10qcCsgK19bRCsoOTYqa3wwKSsoYzw8NCkrOD4+M10qTSxjPUc7dz13KzF8MH1lOmRve2lmKDB8bSlm''@;'; + put 'put ''b3Iodz0wOzspe2lmKCgwfHcpPigwfGYpKWJyZWFrIGU7YVsoRz1tKyh3PDw0KXwwKT4+Ml09YVsoaz1EKyg5Nip3fDApfDApPj4yXSxhW0crND4+Ml09YVtrKzQ+PjJdLGFbRys4Pj4yXT1hW2srOD4+Ml0sYVtHKzEyPj4yXT1hW2srMTI+PjJdLHc9dysxfDB9fXdoaWxlKDApO2U6ZG97aWYo''@;'; + put 'put ''MHxBKWZvcih3PTA7Oyl7aWYoKDB8dyk+KDB8ZikpYnJlYWsgZTthWyhHPUErKHc8PDQpfDApPj4yXT1hWyhtPUQrKDk2KihmLXd8MCl8MCkrKHc8PDQpfDApPj4yXSxhW0crND4+Ml09YVttKzQ+PjJdLGFbRys4Pj4yXT1hW20rOD4+Ml0sYVtHKzEyPj4yXT1hW20rMTI+PjJdLHc9dysxfDB9''@;'; + put 'put ''fXdoaWxlKDApO2FbbD4+Ml09YVsoRz1EKyg5NipmfDApfDApPj4yXSxhW2wrND4+Ml09YVtHKzQ+PjJdLGFbbCs4Pj4yXT1hW0crOD4+Ml0sYVtsKzEyPj4yXT1hW0crMTI+PjJdLGFlPVJ9ZnVuY3Rpb24gYmxlKGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wLG09MDtmPTA7ZG97aWYocD0xMDI0''@;'; + put 'put ''KyhjPTB8YVs0NzMxNV0pfDAsKGMtZnwwKTwxMDI0PyhhWzQ3MzE1XT1wLHA9MHxWMCgwfGFbNDczMTZdLHApLGFbNDczMTZdPXAsYz0wfGFbNDczMTVdKTpwPTB8YVs0NzMxNl0sIShjPTB8eWcocCtmfDAsYy1mfDAsbCkpKXttPTY7YnJlYWt9Zj0oMHxVbyhjKSkrZnwwLGM9MHxhWzQ3MzE2''@;'; + put 'put ''XX13aGlsZSgxMCE9KDB8ZmVbYysoZistMSk+PjBdKSk7cmV0dXJuIDY9PSgwfG0pJiYoYz0wfGFbNDczMTZdKSwwfCgoMHxmKT4wP2M6MCl9ZnVuY3Rpb24gYUQobCl7bHw9MDt2YXIgcCxjPTAsZj0wO3A9YWUsYWU9YWUrMTZ8MDtkb3tpZigwIT0oMHxsKSYmMCE9KDB8ZmVbbD4+MF0pKXtp''@;'; + put 'put ''ZihmPTB8YVs0NzMxOF0sKDB8YVs0NzMxN10pPT0oMHwoYz0wfGFbNDcxMzNdKSkpYz1mO2Vsc2V7aWYoZiYmKEZ0KDB8YVtmPj4yXSksRnQoMHxhWzQ3MzE4XSksYVs0NzMxOF09MCxjPTB8YVs0NzEzM10pLGFbNDczMTddPWMsIShjJiYwfGZlW2M+PjBdKSlicmVhaztjPTB8X2xlKGMpLGFb''@;'; + put 'put ''NDczMThdPWN9aWYoISg0NyE9KDB8ZmVbbD4+MF0pJjAhPSgwfGMpKSlicmVhaztsPTB8ZEooYywwfGFbNDczMTldLGwpO2JyZWFrfWw9MH13aGlsZSgwKTtyZXR1cm4gYWU9cCwwfGx9ZnVuY3Rpb24gX2xlKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2ZvcihwPTAsbT0wLEE9MCxjPTB8''@;'; + put 'put ''cmEobHw9MCksZj0wO2M9MHxsOShjLDEwNzk4NCk7KWw9OCsoQTw8Mil8MCxsPW0/MHxWMChmLGwpOjB8UW4obCksYVtsKyhBPDwyKT4+Ml09YyxwPXA+Pj4wPihtPTB8VW8oYykpPj4+MD9wOm0sbT1sLEE9QSsxfDAsYz0wLGY9bDtyZXR1cm4gYVttKyhBPDwyKT4+Ml09MCxhWzQ3MzE5XT1w''@;'; + put 'put ''LDB8bX1mdW5jdGlvbiBkSihsLGMsZil7bHw9MDt2YXIgcCxBLG09MCx3PTA7Zm9yKEE9YWUsYWU9YWUrMTZ8MCxwPUEsYVs0NzMyMF09MHxVYSh3PTB8YVs0NzMyMF0sMisoY3w9MCkrKDB8VW8oZnw9MCkpfDApOzspe2lmKCEoYz0wfGFbbD4+Ml0pKXtsPTA7YnJlYWt9aWYodz0wfGFbNDcz''@;'; + put 'put ''MjBdLGFbcD4+Ml09YyxhW3ArND4+Ml09MTA3OTgyLGFbcCs4Pj4yXT1mLG9vKHcsMTA3OTc1LHApLCEoMHxEY2UoMHxhWzQ3MzIwXSw0KSkpe209NDticmVha31sPWwrNHwwfXJldHVybiA0PT0oMHxtKSYmKGw9MHxhWzQ3MzIwXSksYWU9QSwwfGx9ZnVuY3Rpb24gbU4obCxjLGYpe2N8PTAs''@;'; + put 'put ''Znw9MDt2YXIgbSxwPTAsQT0wO2ZvcihtPTA9PSgwfChsfD0wKSkscD0wOyhBPTB8YVtjKyhwPDwyKT4+Ml0pJiYobXx8KDB8ZmVbbD4+MF0pIT0oMHxmZVtBPj4wXSl8fDAhPSgwfGppKGwsQSkpKTspcD1wKzF8MDtyZXR1cm4gMHxhW2YrKHA8PDIpPj4yXX1mdW5jdGlvbiBsRChsLGMsZil7''@;'; + put 'put ''bHw9MDt2YXIgUixPZSxMZSxSZSxIZSxWZSxxZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsbnQ9MCxXZT0wO2ZvcihxZT1hZSxhZT1hZSs4MHwwLEhlPXFlKzE2fDAsVmU9cWUsT2U9MHxhWzQrKGN8PTApPj4yXSxMZT0wfGFbYz4+Ml0s''@;'; + put 'put ''UmU9OCsoZnw9MCl8MCxtPTAscD0tMSxBPTFlMzgsYz0tMTshKCgwfG0pPj0oMHxPZSkpOyl7Zm9yKGdlPTB8YVtMZSsoNDgqbXwwKT4+Ml0sYmU9MHxhW0xlKyg0OCptfDApKzQ+PjJdLHBlPTA7ISgoMHxwZSk+PSgwfGJlKSk7KVdlPShudD0tMT09KDB8cCl8KEs9KEc9K19bZ2UrKHBlPDw0''@;'; + put 'put ''KSs4Pj4zXS0rX1tSZT4+M10pKkcrKEs9K19bZ2UrKHBlPDw0KT4+M10tK19bZj4+M10pKkspPEEpP3BlOnAscGU9cGUrMXwwLGM9bnQ/bTpjLHA9V2UsQT1udD9LOkE7bT1tKzF8MH1mb3IobT0wfGFbTGUrKDQ4KmN8MCk+PjJdLHA9KHA9cCsoKCgwfHApPT0oKDB8YVtMZSsoNDgqY3wwKSs0''@;'; + put 'put ''Pj4yXSktMXwwKSk8PDMxPj4zMSl8MCktKCgwfHApJTN8MCl8MCxjPTA7NCE9KDB8Yyk7KV9bSGUrKGM8PDQpPj4zXT0rX1ttKygoV2U9YytwfDApPDw0KT4+M10sX1tIZSsoYzw8NCkrOD4+M109K19bbSsoV2U8PDQpKzg+PjNdLGM9YysxfDA7Zm9yKGM9VmUrOHwwLEE9MSx3PTAsYj0oRD0r''@;'; + put 'put ''X1tIZSs1Nj4+M10tKFI9K19bUmU+PjNdKSkqRCsoYj0rX1tIZSs0OD4+M10tKEs9K19bZj4+M10pKSpiLGs9KEc9K19bSGUrOD4+M10tUikqRysoaz0rX1tIZT4+M10tSykqazt3dShWZSxIZSwzLEc9LjUqKEErdyksMCwwKSxNPStfW1ZlPj4zXSxEPStfW2M+PjNdLCEoK2VvKCsoay1iKSk8''@;'; + put 'put ''MXx8K2VvKCsoQS13KSk8MWUtNSk7KUQ9KEQtPVIpKkQrKE0tPUspKk0sQT0oV2U9azxiKT9HOkEsdz1XZT93OkcsYj1XZT9EOmIsaz1XZT9rOkQ7X1tsPj4zXT1NLF9bbCs4Pj4zXT1ELGFlPXFlfWZ1bmN0aW9uIHNEKGwpe3ZhciBmLHAsbSxiLGM9MCxBPTAsdz0wLGs9MDtjPStNbChsfD0w''@;'; + put 'put ''LDB8YVs0NzE0Nl0sLjc1LC4wMSksX1szMisoMHxhWyhtPWwrMTZ8MCk+PjJdKT4+M109YyxjPStNbChsLDB8YVs0NzE0NV0sLjUsLjAyKSxfWzQwKygwfGFbbT4+Ml0pPj4zXT1jLGs9MHxmdW5jdGlvbiBIYWUobCxjKXtsfD0wO3ZhciBmPTAscD0wLG09MDswfGFEKDB8TGkoY3w9MCwxMDU1''@;'; + put 'put ''MjYpKT8xMDE9PSgwfGZlW2w+PjBdKSYmMD09KDB8amkobCwxMDU2ODUpKT8oYz0xMDEsbT02KToobD0xMDU1MTksbT00KTptPTQsND09KDB8bSkmJigoYz0wfGZlW2w+PjBdKTw8MjQ+PjI0PT05OT8wfGppKGwsMTA1NTE5KT8oYz05OSxtPTYpOm09MTE6bT02KTtlOmRve2lmKDY9PSgwfG0p''@;'; + put 'put ''KWZvcihmPTIwODQ4Ozspe2lmKCEocD0wfGFbZj4+Ml0pKXttPTExO2JyZWFrIGV9aWYoKDB8ZmVbcD4+MF0pPT1jPDwyND4+MjQmJjA9PSgwfGppKHAsbCkpKXtsPWY7YnJlYWsgZX1mPWYrMTZ8MH19d2hpbGUoMCk7cmV0dXJuIDExPT0oMHxtKSYmKGw9MHxmdW5jdGlvbiBOYWUobCl7dmFy''@;'; + put 'put ''IG0sQSxjPTAsZj0wLHA9MDtpZihBPWFlLGFlPWFlKzE2fDAsbT1BLCEoYz0wfCRIKGx8PTApKSl7YVs0NzI4NF09Yz0xKyhwPTB8YVs0NzI4NF0pfDAsYz0oZj0wfGFbNDcyODNdKT8wfFYwKGYsYzw8Mik6MHxRbihjPDwyKSxhWzQ3MjgzXT1jLGM9MHx2cigxNiksYVsoMHxhWzQ3MjgzXSkr''@;'; + put 'put ''KHA8PDIpPj4yXT1jLGFbYz4+Ml09YVs1MjEyXSxhW2MrND4+Ml09YVs1MjEzXSxhW2MrOD4+Ml09YVs1MjE0XSxhW2MrMTI+PjJdPWFbNTIxNV0sZj0wfHJhKGwpLGFbYz4+Ml09Zjtkb3tpZig5OT09KDB8ZmVbbD4+MF0pJiYwPT0oMHxqaShsLDEwNTUxOSkpKXtmPTE7YnJlYWt9YVttPj4y''@;'; + put 'put ''XT1hWzUyMTJdLGFbbSs0Pj4yXT1mLCRyKDAsMTA1NjkwLG0pLGY9MH13aGlsZSgwKTtmZVtjKzEyPj4wXT1mfXJldHVybiBhZT1BLDB8Y30obCkpLDB8bH0oMHxCYShsLDB8YVs0NzE0N10sMTA3OTg2KSxsKSxhWzgrKDB8YVttPj4yXSk+PjJdPWssaz0wfEhvKGwsMHxhWzQ3MTU0XSksYz0r''@;'; + put 'put ''TWwobCwwfGFbNDcxNTBdLDE0LDEpLGY9MHxCYShsLDB8YVs0NzE1MV0sMTA3OTk0KSxwPTB8QmEobCwwfGFbNDcxNTJdLDEzNzMxNCksQT0wIT0oMHxPbyhrKSksQT0wfEo1KGwsaywoMj09KDB8JDUobCkpPzQ6MCl8KEE/MjowKSxjLGYscCksYVsxMDQrKDB8YVttPj4yXSk+PjJdPUEsMHwo''@;'; + put 'put ''QT0wfGFbNDcxNTVdKSYmMHwodz0wfEhvKGwsQSkpJiYwfGZlW3c+PjBdJiYoaz0wfEo1KGwsdywoaz0wIT0oMHxPbyh3KSkpPzI6MCxjLGYscCksYVsxMDgrKDB8YVttPj4yXSk+PjJdPWssaz0xMTMrKDB8YVsxNisoMHxjcihsKSk+PjJdKXwwLGZlW2s+PjBdPTE2fGZlW2s+PjBdKSxiPTI1''@;'; + put 'put ''NSYoMHxlcyhsLDB8YVs0NzE1OF0sMCwwKSksZmVbMTQ0KyhrPTB8YVttPj4yXSk+PjBdPWIsQ29bMTI3JmFbYVs0KygwfGFbays4Pj4yXSk+PjJdPj4yXV0obCl9ZnVuY3Rpb24gTDcobCl7dmFyIGssTSxSLEsscGUsYmUsT2UsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLEQ9MCxHPTAs''@;'; + put 'put ''Z2U9MDtPZT1hZSxhZT1hZSsxMTJ8MCxrPU9lKzk2fDAsTT1PZSs4MHwwLHBlPU9lKzQwfDAsYmU9T2UsSz00OCsobHw9MCl8MCxSPTB8Y3IoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6SykrNDA+PjJdKSxhWyhtPWsrOHwwKT4+Ml09MCxhWyhEPU0rOHwwKT4+Ml09MCwwIT0oMHwoYz0wfGFb''@;'; + put 'put ''NDcxODJdKSkmJjAhPSgwfChmPTB8SG8obCxjKSkpJiYwIT0oMHxmZVtmPj4wXSk/KHZOKGwsayksZj0wfEo1KGwsZiwoZ2U9MCE9KDB8T28oZikpKT8yOjAsQT0rX1trPj4zXSxwPTB8YVttPj4yXSxjPTB8YVtrKzEyPj4yXSksYVs5NisoMHxhWyhnZT1sKzE2fDApPj4yXSk+PjJdPWYsZmVb''@;'; + put 'put ''KGY9MTEzKygwfGFbUisxNj4+Ml0pfDApPj4wXT0xfGZlW2Y+PjBdLGY9MHxlMSgwfHYyKGwsMHxhWzQ3MTkyXSwxMzczMDgpKSxmZVsxMTQrKDB8YVtnZT4+Ml0pPj4wXT1mLGdlPTEsZj1wKTooZ2U9MCxjPTAsQT0wLGY9MCksMHwocD0wfGFbNDcxODNdKSYmMHwodz0wfEhvKGwscCkpJiYw''@;'; + put 'put ''fGZlW3c+PjBdJiYoZnx8KHZOKGwsayksQT0rX1trPj4zXSxmPTB8YVttPj4yXSxjPTB8YVtrKzEyPj4yXSksdz0wfEo1KGwsdywobT0wIT0oMHxPbyh3KSkpPzI6MCxBLGYsYyksYVsxMDgrKDB8YVtsKzE2Pj4yXSk+PjJdPXcsZmVbKHc9MTEzKygwfGFbUisxNj4+Ml0pfDApPj4wXT0zMnxm''@;'; + put 'put ''ZVt3Pj4wXSksMCE9KDB8KGM9MHxhWzQ3MTk3XSkpJiYwIT0oMHwoYj0wfEhvKGwsYykpKSYmMCE9KDB8ZmVbYj4+MF0pPyhwSihsLGssTSksYj0wfEo1KGwsYiwodz0wIT0oMHxPbyhiKSkpPzI6MCxBPStfW00+PjNdLGM9MHxhW0Q+PjJdLGY9MHxhW00rMTI+PjJdKSxhWzEwMCsoMHxhW2wr''@;'; + put 'put ''MTY+PjJdKT4+Ml09YixmZVsoYj0xMTMrKDB8YVtSKzE2Pj4yXSl8MCk+PjBdPTJ8ZmVbYj4+MF0pOihmPTAsQT0wLGM9MCksMHwocD0wfGFbNDcxOThdKSYmMHwoRz0wfEhvKGwscCkpJiYwfGZlW0c+PjBdJiYoY3x8KHBKKGwsayxNKSxmPTB8YVtNKzEyPj4yXSxBPStfW00+PjNdLGM9MHxh''@;'; + put 'put ''W0Q+PjJdKSxHPTB8SjUobCxHLChEPTAhPSgwfE9vKEcpKSk/MjowLEEsYyxmKSxhWzEwNCsoMHxhW2wrMTY+PjJdKT4+Ml09RyxmZVsoRz0xMTMrKDB8YVtSKzE2Pj4yXSl8MCk+PjBdPTR8ZmVbRz4+MF0pLGM9MHxMaShsLDExMTQ1NSksMHxmZVsoYz0wfGM/YzoxOTUwNTkpPj4wXSYmKGZl''@;'; + put 'put ''WzE0NSsoMHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpLKSs0MD4+Ml0pPj4yXSk+PjBdPTEpLHA9MTYrKDB8YVsobT1sKzE2fDApPj4yXSl8MCxBTihwZSwwfGFbOCsoMHxhWzQrKDB8YVs4KygwfGFbMTYrKGY9MHxhWygzPT0oMyZhW2w+PjJdfDApP2w6SykrNDA+PjJdKT4+Ml0p''@;'; + put 'put ''Pj4yXSk+PjJdKT4+Ml0sZixjKSxjPXBlLGY9cCs0MHwwO2Rve2FbcD4+Ml09YVtjPj4yXSxwPXArNHwwLGM9Yys0fDB9d2hpbGUoKDB8cCk8KDB8ZikpOygwfHlOKGwsMHxhWzQ3MjA0XSkpPDwyND4+MjQmJihmZVs0NisoMHxhW20+PjJdKT4+MF09MCksYz0wfExpKGwsMTExNDY0KSwwfGZl''@;'; + put 'put ''WyhjPTB8Yz9jOjE5NTA1OSk+PjBdPyhmPWwrLTQ4fDAsZmVbMTQ1KygwfGFbMTYrKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmYpKzQwPj4yXSk+PjJdKT4+MF09MSk6Zj1sKy00OHwwLHA9NTYrKDB8YVttPj4yXSl8MCxBTihiZSwwfGFbOCsoMHxhWzQrKDB8YVs4KygwfGFbMTYrKGY9MHxh''@;'; + put 'put ''WygyPT0oMyZhW2w+PjJdfDApP2w6ZikrNDA+PjJdKT4+Ml0pPj4yXSk+PjJdKT4+Ml0sZixjKSxjPWJlLGY9cCs0MHwwO2Rve2FbcD4+Ml09YVtjPj4yXSxwPXArNHwwLGM9Yys0fDB9d2hpbGUoKDB8cCk8KDB8ZikpO3JldHVybigwfHlOKGwsMHxhWzQ3MjA1XSkpPDwyND4+MjQmJihmZVs4''@;'; + put 'put ''NisoMHxhW20+PjJdKT4+MF09MCksYWU9T2UsMHxnZX1mdW5jdGlvbiB2TihsLGMpe19bKGN8PTApPj4zXT0rTWwobHw9MCwwfGFbNDcxNzldLDE0LDEpLGFbYys4Pj4yXT0wfEJhKGwsMHxhWzQ3MTgwXSwxMDc5OTQpLGFbYysxMj4+Ml09MHxCYShsLDB8YVs0NzE4MV0sMTM3MzE0KX1mdW5j''@;'; + put 'put ''dGlvbiBwSihsLGMsZil7dmFyIHA7bHw9MCxmfD0wLDB8YVsocD04KyhjfD0wKXwwKT4+Ml18fHZOKGwsYyksX1tmPj4zXT0rTWwobCwwfGFbNDcxOTldLCtfW2M+PjNdLDEpLGFbZis4Pj4yXT0wfEJhKGwsMHxhWzQ3MjAwXSwwfGFbcD4+Ml0pLGFbZisxMj4+Ml09MHxCYShsLDB8YVs0NzIw''@;'; + put 'put ''MV0sMHxhW2MrMTI+PjJdKX1mdW5jdGlvbiBBTihsLGMsZixwKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSxrLE0sbT0wLHc9MCxiPTA7aWYoTT1hZSxhZT1hZSsxMjh8MCxrPU0rODB8MCxBPU0rNDB8MCxtPU0sMCE9KDB8KHB8PTApKSYmMCE9KDB8KGI9MHwkcyhwLDU4KSkpKXtmZVtiPj4wXT0w''@;'; + put 'put ''LFJjWzMxJmNdKEEsZixwLHc9YisxfDApLG09QSxjPShmPWspKzM2fDA7ZG97YVtmPj4yXT1hW20+PjJdLGY9Zis0fDAsbT1tKzR8MH13aGlsZSgoMHxmKTwoMHxjKSk7ZmVbYj4+MF09NTgscD13fWVsc2V7UmNbMzEmY10obSxmLHAsMCksYz0oZj1rKSszNnwwO2Rve2FbZj4+Ml09YVttPj4y''@;'; + put 'put ''XSxmPWYrNHwwLG09bSs0fDB9d2hpbGUoKDB8Zik8KDB8YykpfW09ayxjPShmPWwpKzM2fDA7ZG97YVtmPj4yXT1hW20+PjJdLGY9Zis0fDAsbT1tKzR8MH13aGlsZSgoMHxmKTwoMHxjKSk7YVtsKzM2Pj4yXT1wLGFlPU19ZnVuY3Rpb24geU4obCxjKXtsfD0wO3ZhciBmPTA7cmV0dXJuIDB8''@;'; + put 'put ''KDAhPSgwfChjfD0wKSkmJjAhPSgwfChmPTB8SG8obCxjKSkpJiYwIT0oMHxmZVtmPj4wXSk/KDB8ZTEoZikpPDwyND4+MjQ9PTAmMTowKX1mdW5jdGlvbiBnSihsLGMpe2x8PTA7dmFyIHAsbSxBLHcsYixrLGY9MCxNPTAsRD0wLFI9MDtmb3Ioaz1hZSxhZT1hZSszMnwwLHc9ayxmPSgwfGFb''@;'; + put 'put ''NDQrKGN8PTApPj4yXSkrKCgwfEFyKCgwfChmPTB8YVtjKzQ+PjJdKSk+MT9mKy0xfDA6MCxiPTB8YVtjKzg+PjJdKSk8PDQpfDAsYVsocD13KzE2fDApPj4yXT1hW2Y+PjJdLGFbcCs0Pj4yXT1hW2YrND4+Ml0sYVtwKzg+PjJdPWFbZis4Pj4yXSxhW3ArMTI+PjJdPWFbZisxMj4+Ml0sYVt3''@;'; + put 'put ''Pj4yXT1hW2Y+PjJdLGFbdys0Pj4yXT1hW2YrND4+Ml0sYVt3Kzg+PjJdPWFbZis4Pj4yXSxhW3crMTI+PjJdPWFbZisxMj4+Ml0sbT13Kzh8MCxBPXcrMjR8MCxjPTE7ISgoMHxjKT49KDB8YikpOylfW3c+PjNdPStfWygrX1t3Pj4zXTwoUj0rX1soTT1mKyhjPDw0KXwwKT4+M10pP3c6TSk+''@;'; + put 'put ''PjNdLF9bbT4+M109K19bKCtfW20+PjNdPChEPStfW00rOD4+M10pP3c6TSkrOD4+M10sX1twPj4zXT0rX1soK19bcD4+M10+Uj9wOk0pPj4zXSxfW0E+PjNdPStfWygrX1tBPj4zXT5EP3A6TSkrOD4+M10sYz1jKzF8MDthW2w+PjJdPWFbdz4+Ml0sYVtsKzQ+PjJdPWFbdys0Pj4yXSxhW2wr''@;'; + put 'put ''OD4+Ml09YVt3Kzg+PjJdLGFbbCsxMj4+Ml09YVt3KzEyPj4yXSxhW2wrMTY+PjJdPWFbdysxNj4+Ml0sYVtsKzIwPj4yXT1hW3crMjA+PjJdLGFbbCsyND4+Ml09YVt3KzI0Pj4yXSxhW2wrMjg+PjJdPWFbdysyOD4+Ml0sYWU9a31mdW5jdGlvbiBlNChsLGMpe2N8PTA7dmFyIGYscCxBLG09''@;'; + put 'put ''MDtmPWFlLGFlPWFlKzY0fDAscD1mLGw9MTYrKG09MHxhWzE2KyhsfD0wKT4+Ml0pfDAsbT0xJmFbbSsxMTY+PjJdLGFbKEE9ZiszMnwwKT4+Ml09YVtsPj4yXSxhW0ErND4+Ml09YVtsKzQ+PjJdLGFbQSs4Pj4yXT1hW2wrOD4+Ml0sYVtBKzEyPj4yXT1hW2wrMTI+PjJdLGFbQSsxNj4+Ml09''@;'; + put 'put ''YVtsKzE2Pj4yXSxhW0ErMjA+PjJdPWFbbCsyMD4+Ml0sYVtBKzI0Pj4yXT1hW2wrMjQ+PjJdLGFbQSsyOD4+Ml09YVtsKzI4Pj4yXSxPNyhwLEEsYyxtKSxhW2w+PjJdPWFbcD4+Ml0sYVtsKzQ+PjJdPWFbcCs0Pj4yXSxhW2wrOD4+Ml09YVtwKzg+PjJdLGFbbCsxMj4+Ml09YVtwKzEyPj4y''@;'; + put 'put ''XSxhW2wrMTY+PjJdPWFbcCsxNj4+Ml0sYVtsKzIwPj4yXT1hW3ArMjA+PjJdLGFbbCsyND4+Ml09YVtwKzI0Pj4yXSxhW2wrMjg+PjJdPWFbcCsyOD4+Ml0sYWU9Zn1mdW5jdGlvbiBPNyhsLGMsZixwKXtsfD0wO3ZhciB3LGIsayxNLEQsbT0wLEE9MDtNPStfWzY0KyhmfD0wKT4+M10saz0r''@;'; + put 'put ''X1tmKzI0Pj4zXSx3PStfW2YrMzI+PjNdLG09KEE9K19bZis1Nj4+M10pLShEPS41KigoYj0ocHw9MCk8PDI0Pj4yND09MCk/azp3KSksQT1EK0EsbTwrX1soY3w9MCk+PjNdJiYoX1tjPj4zXT1tKSxBPitfWyhwPWMrMTZ8MCk+PjNdJiYoX1twPj4zXT1BKSxtPU0tKEE9LjUqKGI/dzprKSks''@;'; + put 'put ''QSs9TSxtPCtfWyhwPWMrOHwwKT4+M10mJihfW3A+PjNdPW0pLEE+K19bKHA9YysyNHwwKT4+M10mJihfW3A+PjNdPUEpLGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdLGFbbCsxNj4+Ml09YVtjKzE2''@;'; + put 'put ''Pj4yXSxhW2wrMjA+PjJdPWFbYysyMD4+Ml0sYVtsKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbbCsyOD4+Ml09YVtjKzI4Pj4yXX1mdW5jdGlvbiBpZyhsKXt2YXIgZ2UsYmUsT2UsTGUsUmUsSGUsVmUscWUsbnQsbHQsRXQsWnQsYW4sYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAs''@;'; + put 'put ''RD0wLFI9MCxHPTAsSz0wLHBlPTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxjdD0wLGJ0PTAsU249MCxIbj0wLHVyPTAsSHI9MDtpZihhbj1hZSxhZT1hZSs0NDh8MCxFdD1hbis0MTZ8MCxnZT1hbiszODR8MCxiZT1hbiszMDR8MCxidD1hbisyNTZ8MCxsdD1hbisxOTJ8MCxudD1hbisxNDR8MCxX''@;'; + put 'put ''ZT1hbis5NnwwLGM9YW4rNDAwfDAsZj1hbiszNjh8MCxwPWFuKzM1MnwwLG09YW4rMzM2fDAsT2U9YW4rMjg4fDAsTGU9YW4rMjI0fDAsUmU9YW4rMTYwfDAsSGU9YW4rMTEyfDAsVmU9YW4rNjR8MCxxZT1hbiszMnwwLFp0PWFuLGN0PTE2KyhsfD0wKXwwLDA9PSgwfEdvKGwpKSYmMD09KDB8''@;'; + put 'put ''YVsxODArKDB8YVtjdD4+Ml0pPj4yXSkpdUQoYywwLDApLGFbYnQ+PjJdPWFbYz4+Ml0sYVtidCs0Pj4yXT1hW2MrND4+Ml0sYVtidCs4Pj4yXT1hW2MrOD4+Ml0sYVtidCsxMj4+Ml09YVtjKzEyPj4yXSxidD1idCsxNnwwLHVEKGYsMCwwKSxhW2J0Pj4yXT1hW2Y+PjJdLGFbYnQrND4+Ml09''@;'; + put 'put ''YVtmKzQ+PjJdLGFbYnQrOD4+Ml09YVtmKzg+PjJdLGFbYnQrMTI+PjJdPWFbZisxMj4+Ml07ZWxzZXtmb3IodUQocCwyMTQ3NDgzNjQ3LDIxNDc0ODM2NDcpLGFbYnQ+PjJdPWFbcD4+Ml0sYVtidCs0Pj4yXT1hW3ArND4+Ml0sYVtidCs4Pj4yXT1hW3ArOD4+Ml0sYVtidCsxMj4+Ml09YVtw''@;'; + put 'put ''KzEyPj4yXSxrdD1idCsxNnwwLHVEKG0sLTIxNDc0ODM2NDcsLTIxNDc0ODM2NDcpLGFba3Q+PjJdPWFbbT4+Ml0sYVtrdCs0Pj4yXT1hW20rND4+Ml0sYVtrdCs4Pj4yXT1hW20rOD4+Ml0sYVtrdCsxMj4+Ml09YVttKzEyPj4yXSxEPVdlKzh8MCxSPWJlKzE2fDAsb3Q9YnQrOHwwLEc9YmUr''@;'; + put 'put ''OHwwLFN0PWJ0KzI0fDAsSz1iZSsyNHwwLHBlPW50Kzh8MCxNPTB8RHQobCk7TTspe2ZvcihvRChudCxNKSxfW1dlPj4zXT0uNSooK19bOTYrKGs9MHxhWyhjPU0rMTZ8MCk+PjJdKT4+M10rICtfW2srODg+PjNdKSxfW0Q+PjNdPS41KitfW2srODA+PjNdLGFbZ2U+PjJdPWFbbnQ+PjJdLGFb''@;'; + put 'put ''Z2UrND4+Ml09YVtudCs0Pj4yXSxhW2dlKzg+PjJdPWFbbnQrOD4+Ml0sYVtnZSsxMj4+Ml09YVtudCsxMj4+Ml0sYVtFdD4+Ml09YVtXZT4+Ml0sYVtFdCs0Pj4yXT1hW1dlKzQ+PjJdLGFbRXQrOD4+Ml09YVtXZSs4Pj4yXSxhW0V0KzEyPj4yXT1hW1dlKzEyPj4yXSx3TihiZSxnZSxFdCks''@;'; + put 'put ''YVtnZT4+Ml09YVtudD4+Ml0sYVtnZSs0Pj4yXT1hW250KzQ+PjJdLGFbZ2UrOD4+Ml09YVtudCs4Pj4yXSxhW2dlKzEyPj4yXT1hW250KzEyPj4yXSxhW0V0Pj4yXT1hW1dlPj4yXSxhW0V0KzQ+PjJdPWFbV2UrND4+Ml0sYVtFdCs4Pj4yXT1hW1dlKzg+PjJdLGFbRXQrMTI+PjJdPWFbV2Ur''@;'; + put 'put ''MTI+PjJdLG1KKE9lLGdlLEV0KSxhW1I+PjJdPWFbT2U+PjJdLGFbUis0Pj4yXT1hW09lKzQ+PjJdLGFbUis4Pj4yXT1hW09lKzg+PjJdLGFbUisxMj4+Ml09YVtPZSsxMj4+Ml0sX1tidD4+M109K19bKCtfW2J0Pj4zXTwrX1tiZT4+M10/YnQ6YmUpPj4zXSxfW290Pj4zXT0rX1soK19bb3Q+''@;'; + put 'put ''PjNdPCtfW0c+PjNdP2J0OmJlKSs4Pj4zXSxfW2t0Pj4zXT0rX1soK19ba3Q+PjNdPitfW1I+PjNdP2J0OmJlKSsxNj4+M10sX1tTdD4+M109K19bKCtfW1N0Pj4zXT4rX1tLPj4zXT9idDpiZSkrMjQ+PjNdLDB8KGM9MHxhWzEwOCsoMHxhW2M+PjJdKT4+Ml0pJiYwfGZlW2MrODE+PjBdJiYo''@;'; + put 'put ''az0xJmFbMTE2KygwfGFbY3Q+PjJdKT4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09YVtidCs4Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEyPj4yXSxhW0V0KzE2Pj4yXT1hW2J0KzE2Pj4yXSxhW0V0KzIwPj4yXT1hW2J0KzIwPj4yXSxhW0V0''@;'; + put 'put ''KzI0Pj4yXT1hW2J0KzI0Pj4yXSxhW0V0KzI4Pj4yXT1hW2J0KzI4Pj4yXSxPNyhMZSxFdCxjLGspLGFbYnQ+PjJdPWFbTGU+PjJdLGFbYnQrND4+Ml09YVtMZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbTGUrOD4+Ml0sYVtidCsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtidCsxNj4+Ml09YVtMZSsxNj4+''@;'; + put 'put ''Ml0sYVtidCsyMD4+Ml09YVtMZSsyMD4+Ml0sYVtidCsyND4+Ml09YVtMZSsyND4+Ml0sYVtidCsyOD4+Ml09YVtMZSsyOD4+Ml0pLGs9MHx3MChsLE0pO2s7KXtpZigwfChmPTB8YVsodz04KyhjPTB8YVsoYj1rKzE2fDApPj4yXSl8MCk+PjJdKSl7Zm9yKEE9MDsoMHxBKTwoMHxhW2YrND4+''@;'; + put 'put ''Ml0pOyl7Zm9yKG09MDshKCgwfG0pPj0oMHxhWyhwPTB8YVtmPj4yXSkrKDQ4KkF8MCkrND4+Ml0pKTspYVtudD4+Ml09YVsoZj0oMHxhW3ArKDQ4KkF8MCk+PjJdKSsobTw8NCl8MCk+PjJdLGFbbnQrND4+Ml09YVtmKzQ+PjJdLGFbbnQrOD4+Ml09YVtmKzg+PjJdLGFbbnQrMTI+PjJdPWFb''@;'; + put 'put ''ZisxMj4+Ml0sX1tidD4+M109K19bKCtfW2J0Pj4zXTwoSG49K19bbnQ+PjNdKT9idDpudCk+PjNdLF9bb3Q+PjNdPStfWygrX1tvdD4+M108KFNuPStfW3BlPj4zXSk/YnQ6bnQpKzg+PjNdLF9ba3Q+PjNdPStfWygrX1trdD4+M10+SG4/a3Q6bnQpPj4zXSxfW1N0Pj4zXT0rX1soK19bU3Q+''@;'; + put 'put ''PjNdPlNuP2t0Om50KSs4Pj4zXSxtPW0rMXwwLGY9MHxhW3c+PjJdO0E9QSsxfDB9MCE9KDB8KGY9MHxhW2MrOTY+PjJdKSkmJjAhPSgwfGZlW2YrODE+PjBdKSYmKGM9MSZhWzExNisoMHxhW2N0Pj4yXSk+PjJdLGFbRXQ+PjJdPWFbYnQ+PjJdLGFbRXQrND4+Ml09YVtidCs0Pj4yXSxhW0V0''@;'; + put 'put ''Kzg+PjJdPWFbYnQrOD4+Ml0sYVtFdCsxMj4+Ml09YVtidCsxMj4+Ml0sYVtFdCsxNj4+Ml09YVtidCsxNj4+Ml0sYVtFdCsyMD4+Ml09YVtidCsyMD4+Ml0sYVtFdCsyND4+Ml09YVtidCsyND4+Ml0sYVtFdCsyOD4+Ml09YVtidCsyOD4+Ml0sTzcoUmUsRXQsZixjKSxhW2J0Pj4yXT1hW1Jl''@;'; + put 'put ''Pj4yXSxhW2J0KzQ+PjJdPWFbUmUrND4+Ml0sYVtidCs4Pj4yXT1hW1JlKzg+PjJdLGFbYnQrMTI+PjJdPWFbUmUrMTI+PjJdLGFbYnQrMTY+PjJdPWFbUmUrMTY+PjJdLGFbYnQrMjA+PjJdPWFbUmUrMjA+PjJdLGFbYnQrMjQ+PjJdPWFbUmUrMjQ+PjJdLGFbYnQrMjg+PjJdPWFbUmUrMjg+''@;'; + put 'put ''PjJdLGM9MHxhW2I+PjJdKSwwIT0oMHwoZj0wfGFbYysxMDA+PjJdKSkmJjAhPSgwfGZlW2YrODE+PjBdKSYmKGM9MSZhWzExNisoMHxhW2N0Pj4yXSk+PjJdLGFbRXQ+PjJdPWFbYnQ+PjJdLGFbRXQrND4+Ml09YVtidCs0Pj4yXSxhW0V0Kzg+PjJdPWFbYnQrOD4+Ml0sYVtFdCsxMj4+Ml09''@;'; + put 'put ''YVtidCsxMj4+Ml0sYVtFdCsxNj4+Ml09YVtidCsxNj4+Ml0sYVtFdCsyMD4+Ml09YVtidCsyMD4+Ml0sYVtFdCsyND4+Ml09YVtidCsyND4+Ml0sYVtFdCsyOD4+Ml09YVtidCsyOD4+Ml0sTzcoSGUsRXQsZixjKSxhW2J0Pj4yXT1hW0hlPj4yXSxhW2J0KzQ+PjJdPWFbSGUrND4+Ml0sYVti''@;'; + put 'put ''dCs4Pj4yXT1hW0hlKzg+PjJdLGFbYnQrMTI+PjJdPWFbSGUrMTI+PjJdLGFbYnQrMTY+PjJdPWFbSGUrMTY+PjJdLGFbYnQrMjA+PjJdPWFbSGUrMjA+PjJdLGFbYnQrMjQ+PjJdPWFbSGUrMjQ+PjJdLGFbYnQrMjg+PjJdPWFbSGUrMjg+PjJdLGM9MHxhW2I+PjJdKSwwIT0oMHwoZj0wfGFb''@;'; + put 'put ''YysxMDQ+PjJdKSkmJjAhPSgwfGZlW2YrODE+PjBdKSYmKGM9MSZhWzExNisoMHxhW2N0Pj4yXSk+PjJdLGFbRXQ+PjJdPWFbYnQ+PjJdLGFbRXQrND4+Ml09YVtidCs0Pj4yXSxhW0V0Kzg+PjJdPWFbYnQrOD4+Ml0sYVtFdCsxMj4+Ml09YVtidCsxMj4+Ml0sYVtFdCsxNj4+Ml09YVtidCsx''@;'; + put 'put ''Nj4+Ml0sYVtFdCsyMD4+Ml09YVtidCsyMD4+Ml0sYVtFdCsyND4+Ml09YVtidCsyND4+Ml0sYVtFdCsyOD4+Ml09YVtidCsyOD4+Ml0sTzcoVmUsRXQsZixjKSxhW2J0Pj4yXT1hW1ZlPj4yXSxhW2J0KzQ+PjJdPWFbVmUrND4+Ml0sYVtidCs4Pj4yXT1hW1ZlKzg+PjJdLGFbYnQrMTI+PjJd''@;'; + put 'put ''PWFbVmUrMTI+PjJdLGFbYnQrMTY+PjJdPWFbVmUrMTY+PjJdLGFbYnQrMjA+PjJdPWFbVmUrMjA+PjJdLGFbYnQrMjQ+PjJdPWFbVmUrMjQ+PjJdLGFbYnQrMjg+PjJdPWFbVmUrMjg+PjJdLGM9MHxhW2I+PjJdKSwwfChjPTB8YVtjKzEwOD4+Ml0pJiYwfGZlW2MrODE+PjBdJiYoYj0xJmFb''@;'; + put 'put ''MTE2KygwfGFbY3Q+PjJdKT4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09YVtidCs4Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEyPj4yXSxhW0V0KzE2Pj4yXT1hW2J0KzE2Pj4yXSxhW0V0KzIwPj4yXT1hW2J0KzIwPj4yXSxhW0V0KzI0Pj4y''@;'; + put 'put ''XT1hW2J0KzI0Pj4yXSxhW0V0KzI4Pj4yXT1hW2J0KzI4Pj4yXSxPNyhxZSxFdCxjLGIpLGFbYnQ+PjJdPWFbcWU+PjJdLGFbYnQrND4+Ml09YVtxZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbcWUrOD4+Ml0sYVtidCsxMj4+Ml09YVtxZSsxMj4+Ml0sYVtidCsxNj4+Ml09YVtxZSsxNj4+Ml0sYVti''@;'; + put 'put ''dCsyMD4+Ml09YVtxZSsyMD4+Ml0sYVtidCsyND4+Ml09YVtxZSsyND4+Ml0sYVtidCsyOD4+Ml09YVtxZSsyOD4+Ml0pfWs9MHxTMChsLGspfU09MHx6dChsLE0pfWZvcihwPTB8YVsxODArKGM9MHxhW2N0Pj4yXSk+PjJdLG09YysxODR8MCxBPWx0Kzh8MCx3PWx0KzE2fDAsYj1sdCsyNHww''@;'; + put 'put ''LGY9MTshKCgwfGYpPigwfHApKTspX1tsdD4+M109SHI9K19bMTYrKDB8YVsxNisoMHxhWygwfGFbbT4+Ml0pKyhmPDwyKT4+Ml0pPj4yXSk+PjNdLF9bQT4+M109dXI9K19bMjQrKFdlPTB8YVsxNisoMHxhWygwfGFbbT4+Ml0pKyhmPDwyKT4+Ml0pPj4yXSk+PjNdLF9bdz4+M109U249K19b''@;'; + put 'put ''V2UrMzI+PjNdLF9bYj4+M109SG49K19bV2UrNDA+PjNdLF9bYnQ+PjNdPStfWygrX1tidD4+M108SHI/YnQ6bHQpPj4zXSxfW290Pj4zXT0rX1soK19bb3Q+PjNdPHVyP2J0Omx0KSs4Pj4zXSxfW2t0Pj4zXT0rX1soK19ba3Q+PjNdPlNuP2J0Omx0KSsxNj4+M10sX1tTdD4+M109K19bKCtf''@;'; + put 'put ''W1N0Pj4zXT5Ibj9idDpsdCkrMjQ+PjNdLGY9ZisxfDA7MCE9KDB8KGY9MHxhW2MrMTI+PjJdKSkmJjAhPSgwfGZlW2YrODE+PjBdKSYmKGM9MSZhW2MrMTE2Pj4yXSxhW0V0Pj4yXT1hW2J0Pj4yXSxhW0V0KzQ+PjJdPWFbYnQrND4+Ml0sYVtFdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbRXQrMTI+''@;'; + put 'put ''PjJdPWFbYnQrMTI+PjJdLGFbRXQrMTY+PjJdPWFbYnQrMTY+PjJdLGFbRXQrMjA+PjJdPWFbYnQrMjA+PjJdLGFbRXQrMjQ+PjJdPWFbYnQrMjQ+PjJdLGFbRXQrMjg+PjJdPWFbYnQrMjg+PjJdLE83KFp0LEV0LGYsYyksYVtidD4+Ml09YVtadD4+Ml0sYVtidCs0Pj4yXT1hW1p0KzQ+PjJd''@;'; + put 'put ''LGFbYnQrOD4+Ml09YVtadCs4Pj4yXSxhW2J0KzEyPj4yXT1hW1p0KzEyPj4yXSxhW2J0KzE2Pj4yXT1hW1p0KzE2Pj4yXSxhW2J0KzIwPj4yXT1hW1p0KzIwPj4yXSxhW2J0KzI0Pj4yXT1hW1p0KzI0Pj4yXSxhW2J0KzI4Pj4yXT1hW1p0KzI4Pj4yXSxjPTB8YVtjdD4+Ml0pLGFbKGN0PWMr''@;'; + put 'put ''MTZ8MCk+PjJdPWFbYnQ+PjJdLGFbY3QrND4+Ml09YVtidCs0Pj4yXSxhW2N0Kzg+PjJdPWFbYnQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtidCsxMj4+Ml0sYVtjdCsxNj4+Ml09YVtidCsxNj4+Ml0sYVtjdCsyMD4+Ml09YVtidCsyMD4+Ml0sYVtjdCsyND4+Ml09YVtidCsyND4+Ml0sYVtjdCsy''@;'; + put 'put ''OD4+Ml09YVtidCsyOD4+Ml19YWU9YW59ZnVuY3Rpb24gdUQobCxjLGYpe2Y9K2YsX1sobHw9MCk+PjNdPWM9K2MsX1tsKzg+PjNdPWZ9ZnVuY3Rpb24gd04obCxjLGYpe3ZhciBwO3A9K19bOCsoY3w9MCk+PjNdLStfWzgrKGZ8PTApPj4zXSxfWyhsfD0wKT4+M109K19bYz4+M10tK19bZj4+''@;'; + put 'put ''M10sX1tsKzg+PjNdPXB9ZnVuY3Rpb24gbUoobCxjLGYpe3ZhciBwO3A9K19bOCsoZnw9MCk+PjNdKyArX1s4KyhjfD0wKT4+M10sX1sobHw9MCk+PjNdPStfW2Y+PjNdKyArX1tjPj4zXSxfW2wrOD4+M109cH1mdW5jdGlvbiBjRChsKXtyZXR1cm4gMHwoKDB8YVs2MCsobHw9MCk+PjJdKT09''@;'; + put 'put ''KDB8bCk/MTowPT0oMHxvNCgwfHRpKGwpLDEwODAwNiw3KSkmMSl9ZnVuY3Rpb24gYk4obCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7ZTpkb3tpZighbSlzd2l0Y2goMHxraShjKSl7Y2FzZSAwOm09MHxzaShsLDAsZiwxOTUwNTkpO2JyZWFrIGU7Y2FzZSAxOm09MHxzaShs''@;'; + put 'put ''LDEsZiwxOTUwNTkpO2JyZWFrIGU7Y2FzZSAyOm09MHxzaShsLDIsZiwxOTUwNTkpO2JyZWFrIGU7ZGVmYXVsdDptPTA7YnJlYWsgZX19d2hpbGUoMCk7cmV0dXJuIFZsKGMsbSxwKSwwfG19ZnVuY3Rpb24gdkoobCl7dmFyIGM7cmV0dXJuIEFKKGx8PTAsYz0wfGlzKDIzNjI4LDB8YVs0NTgx''@;'; + put 'put ''XSkpLDB8Y31mdW5jdGlvbiBTbGUobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBrLE0sRyxiZSxBPTAsdz0wLGI9MCxEPTAsUj0wLEs9MCxwZT0wLGdlPTA7YmU9YWUsYWU9YWUrNDh8MCxLPWJlKzMyfDAsRz1iZSsyNHwwLGdlPWJlKzE2fDAscGU9YmUrOHwwLGs9YmUsTT0w''@;'; + put 'put ''fGFbKDM9PSgwfChEPTMmYVsobHw9MCk+PjJdKSk/bDpsKzQ4fDApKzQwPj4yXSxEPTB8YVsoMj09KDB8RCk/bDpsKy00OHwwKSs0MD4+Ml07ZG97aWYoISgwfGZlWzExOCsoMHxhW0QrMTY+PjJdKT4+MF0pJiYoQT0wIT0oMHwoUj0wfHMyKDB8dGkoTSksMTA4MDA2LDcpPzA6MHxfTihtLDB8''@;'; + put 'put ''dGkoTSkpKSkpfChiPTAhPSgwfCh3PTB8czIoMHx0aShEKSwxMDgwMDYsNyk/MDowfF9OKG0sMHx0aShEKSkpKSkpe2lmKCgwfFIpPT0oMHx3KSl7cGU9MHx0aShNKSxnZT0wfHRpKE0pLGFbaz4+Ml09cGUsYVtrKzQ+PjJdPWdlLCRyKDAsMTA4MDI5LGspO2JyZWFrfWlmKDB8KG09MHxNbGUo''@;'; + put 'put ''cCxsKSkpe21rKGwsMHxhW20rMTY+PjJdLDB8YVttKzIwPj4yXSk7YnJlYWt9aWYoIWIpe2lmKDB8TnIoUixEKSl7cGU9MHx0aShEKSxnZT0wfHRpKFIpLGFbSz4+Ml09cGUsYVtLKzQ+PjJdPWdlLCRyKDAsMTA4MTg0LEspO2JyZWFrfUNOKHAsTSxELDB8bWsobCwwfGZEKE0sUixmLGMpLEQp''@;'; + put 'put ''KTticmVha31pZighQSl7aWYoMHxOcih3LE0pKXtwZT0wfHRpKE0pLGdlPTB8dGkodyksYVtHPj4yXT1wZSxhW0crND4+Ml09Z2UsJHIoMCwxMDgxNDcsRyk7YnJlYWt9Q04ocCxNLEQsMHxtayhsLE0sMHxmRChELHcsZixjKSkpO2JyZWFrfWlmKDB8TnIodyxSKSl7Sz0wfHRpKFIpLGdlPTB8''@;'; + put 'put ''dGkodyksYVtwZT4+Ml09SyxhW3BlKzQ+PjJdPWdlLCRyKDAsMTA4MDY3LHBlKTticmVha31pZigwfE5yKFIsdykpe0s9MHx0aSh3KSxwZT0wfHRpKFIpLGFbZ2U+PjJdPUssYVtnZSs0Pj4yXT1wZSwkcigwLDEwODEwNyxnZSk7YnJlYWt9Q04ocCxNLEQsMHxtayhsLGdlPTB8ZkQoTSxSLGYs''@;'; + put 'put ''YyksMHxmRChELHcsZixjKSkpO2JyZWFrfX13aGlsZSgwKTthZT1iZX1mdW5jdGlvbiBfTihsLGMpe3JldHVybiAwfCgobD0wfG1pWzYzJmFbKGx8PTApPj4yXV0obCxjfD0wLDUxMikpPzB8YVtsKzEyPj4yXTowKX1mdW5jdGlvbiBNbGUobCxjKXt2YXIgZixwLG07cmV0dXJuIGx8PTAsZj1h''@;'; + put 'put ''ZSxhZT1hZSsxNnwwLGFbKHA9Zik+PjJdPWFbKDM9PSgwfChtPTMmYVsoY3w9MCk+PjJdKSk/YzpjKzQ4fDApKzQwPj4yXSxhW3ArND4+Ml09YVsoMj09KDB8bSk/YzpjKy00OHwwKSs0MD4+Ml0sYz0wfG1pWzYzJmFbbD4+Ml1dKGwscCw1MTIpLGFlPWYsMHxjfWZ1bmN0aW9uIG1rKGwsYyxm''@;'; + put 'put ''KXtyZXR1cm4gbHw9MCxmfD0wLGgwKGY9MHxLYSgwfGNyKGN8PTApLGMsZiwwLDEpLDEzNzQ2MCwxNzYsMSksUjYobCxmKSwwfGZ9ZnVuY3Rpb24gZkQobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIEEsayxtPTAsdz0wLGI9MDtyZXR1cm4gaz1hZSxhZT1hZSsxMTJ8MCxtPWssYj1rKzR8''@;'; + put 'put ''MCx1byhmfD0wLDEwODIyMSksYVs0NzMyMV09MSsodz0wfGFbNDczMjFdKSxhW20+PjJdPXcsb28oYiwxMzczOTUsbSksdW8oZixiKSwobT0wfGFbKGI9Zis0fDApPj4yXSk+Pj4wPj0oMHxhWyh3PWYrOHwwKT4+Ml0pPj4+MCYmKFEwKGYsMSksbT0wfGFbYj4+Ml0pLGFbYj4+Ml09bSsxLGZl''@;'; + put 'put ''W20+PjBdPTU4LHVvKGYsMHx0aShjKSksQT0wfGRpKGMpLChtPTB8YVtiPj4yXSk+Pj4wPj0oMHxhW3c+PjJdKT4+PjAmJihRMChmLDEpLG09MHxhW2I+PjJdKSxmZVttPj4wXT0wLGFbYj4+Ml09Zj0wfGFbZj4+Ml0saDAoYj0wfEdyKEEsZiwxKSwxMzc0NDcsMzA0LDEpLGZlWzExOCsoMHxh''@;'; + put 'put ''W2IrMTY+PjJdKT4+MF09MSxXbihjLGIsMSksV24ocCxsLDEpLHA9MHxjcihiKSxhWzQ3MTU0XT0wfGJOKHAsYiwxMDgyMjQsMTk1MDU5LDB8YVs0NzE1NF0pLHA9MHxjcihiKSxhWzQ3MTU3XT0wfGJOKHAsYiwxNDEwODIsMTM0MzM1LDB8YVs0NzE1N10pLHA9MHxjcihiKSxhWzQ3MTQ3XT0w''@;'; + put 'put ''fGJOKHAsYiwxMDgyMzAsMTA4MjM2LDB8YVs0NzE0N10pLGFlPWssMHxifWZ1bmN0aW9uIENOKGwsYyxmLHApe3ZhciBtLEEsdyxiLGssTSxELFIsRztsfD0wLGZ8PTAscHw9MCxtPWFlLGFlPWFlKzMyfDAsYVsoUj0oQT1tKSs4fDApPj4yXT1jfD0wLGFbKEQ9QSsxMnwwKT4+Ml09ZixiPXAr''@;'; + put 'put ''NDh8MCxhWyhrPUErMTZ8MCk+PjJdPWFbKDM9PSgwfChHPTMmYVtwPj4yXSkpP3A6YikrNDA+PjJdLE09cCstNDh8MCxhWyh3PUErMjB8MCk+PjJdPWFbKDI9PSgwfEcpP3A6TSkrNDA+PjJdLG1pWzYzJmFbbD4+Ml1dKGwsQSwxKSxhW1I+PjJdPWYsYVtEPj4yXT1jLGFbaz4+Ml09YVsoMj09''@;'; + put 'put ''KDB8KGY9MyZhW3A+PjJdKSk/cDpNKSs0MD4+Ml0sYVt3Pj4yXT1hWygzPT0oMHxmKT9wOmIpKzQwPj4yXSxtaVs2MyZhW2w+PjJdXShsLEEsMSksYWU9bX1mdW5jdGlvbiBBSihsLGMpe2N8PTA7dmFyIG0sQSx3LGY9MCxwPTAsYj0wO2Zvcih3PWFlLGFlPWFlKzE2fDAsQT13LG09MTYrKGx8''@;'; + put 'put ''PTApfDAscD0xOyEoKDB8cCk+KDB8YVsxODArKGw9MHxhW20+PjJdKT4+Ml0pKTspZj0wfHRpKGw9MHxhWygwfGFbbCsxODQ+PjJdKSsocDw8Mik+PjJdKSwwfG1pWzYzJmFbYz4+Ml1dKGMsZiw1MTIpPyhhW0E+PjJdPWYsJHIoMCwxMDgyNDAsQSkpOihiPTB8dnIoMTYpLGFbYis4Pj4yXT1m''@;'; + put 'put ''LGFbYisxMj4+Ml09bCxtaVs2MyZhW2M+PjJdXShjLGIsMSkpLEFKKGwsYykscD1wKzF8MDthZT13fWZ1bmN0aW9uIHlKKGwpe3ZhciBwLGM9MCxmPTA7Zm9yKGgwKHA9MHxkcyhsfD0wLDEwODAxNCwxKSwxMzc0ODMsMjgwLDEpLGM9MHxEdChsKTtjOyl7Zm9yKGY9MHx3MChsLGMpO2Y7KURs''@;'; + put 'put ''ZShmLHApLGY9MHxTMChsLGYpO2M9MHx6dChsLGMpfWZvcihjPTB8RHQocCk7YzspZj0wfHp0KHAsYyksb2coYyksb2kobCxjKSxjPWY7QzEocCl9ZnVuY3Rpb24gRGxlKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MDtwPTB8YVsoMz09KDB8KGY9MyZhWyhsfD0wKT4+Ml0pKT9sOmwrNDh8MCkrNDA+''@;'; + put 'put ''PjJdLGY9MHxhWygyPT0oMHxmKT9sOmwrLTQ4fDApKzQwPj4yXSwwPT0oMHxmZVsxMTgrKDB8YVtwKzE2Pj4yXSk+PjBdKSYmISgwfGZlWzExOCsoMHxhW2YrMTY+PjJdKT4+MF0pfHwoZj0wfG1rKGwscD0wfGtOKHAsYyksMHxrTihmLGMpKSxhWzgrKGY9MHxhW2YrMTY+PjJdKT4+Ml09YVso''@;'; + put 'put ''Yz04KyhwPTB8YVtsKzE2Pj4yXSl8MCk+PjJdLGFbYz4+Ml09MCxhW2YrOTY+PjJdPWFbKGM9cCs5NnwwKT4+Ml0sYVtjPj4yXT0wLGFbZisxMDg+PjJdPWFbKGM9cCsxMDh8MCk+PjJdLGFbYz4+Ml09MCxhW2YrMTAwPj4yXT1hWyhjPXArMTAwfDApPj4yXSxhW2M+PjJdPTAsYVtmKzEwND4+''@;'; + put 'put ''Ml09YVsocD1wKzEwNHwwKT4+Ml0sYVtwPj4yXT0wLGFnKGwpKX1mdW5jdGlvbiBvZyhsKXt2YXIgcCxjPTAsZj0wOyhmPTB8YVsxMzIrKGM9MHxhWyhwPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksKGY9MHxhW2MrOD4+Ml0pJiYoQ29bMTI3JmFbNCsoMHxh''@;'; + put 'put ''W2YrND4+Ml0pPj4yXV0obCksYz0wfGFbcD4+Ml0pLEljKDB8YVtjKzEwND4+Ml0pLEljKDB8YVsxMDgrKDB8YVtwPj4yXSk+PjJdKSxIaShsLDEzNzQ0Nyl9ZnVuY3Rpb24ga04obCxjKXtjfD0wO3ZhciBwLGY9MDtwPTB8Y3IobHw9MCk7ZTpkb3tpZigwfGZlWzExOCsoMHxhW2wrMTY+PjJd''@;'; + put 'put ''KT4+MF0mJihXbihjLGwsMSksbD0wfCRzKDB8dGkobCksNTgpLGx8fFByKDExMTIwOCwxMDc2NjEsMTIyNSwxMDgyOTIpLGM9bCsxfDAsbD0wfEdyKHAsYywwKSwhbCkpZm9yKGw9MHxHcihwLGMsMSksaDAobCwxMzc0NDcsMzA0LDEpLGM9MHxGcyhwLDEsMCk7Oyl7aWYoIWMpYnJlYWsgZTso''@;'; + put 'put ''MHxIbyhsLGMpKSE9KDB8KGY9MHxhW2MrMTI+PjJdKSkmJlZsKGwsYyxmKSxjPTB8RnMocCwxLGMpfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIGFnKGwpe3ZhciBjO0Z0KDB8YVsxNDQrKDB8YVsoYz0xNisobHw9MCl8MCk+PjJdKT4+Ml0pLGhEKGwpLEljKDB8YVs5NisoMHxhW2M+''@;'; + put 'put ''PjJdKT4+Ml0pLEljKDB8YVsxMDgrKDB8YVtjPj4yXSk+PjJdKSxJYygwfGFbMTAwKygwfGFbYz4+Ml0pPj4yXSksSWMoMHxhWzEwNCsoMHxhW2M+PjJdKT4+Ml0pLEhpKGwsMTM3NDYwKX1mdW5jdGlvbiBoRChsKXt2YXIgcCxjPTAsZj0wO2lmKGM9MHxhWzgrKGw9MHxhWyhwPTE2KyhsfD0w''@;'; + put 'put ''KXwwKT4+Ml0pPj4yXSl7Zm9yKGY9MDtsPTB8YVtjPj4yXSwhKCgwfGYpPj0oMHxhW2MrND4+Ml0pKTspRnQoMHxhW2wrKDQ4KmZ8MCk+PjJdKSxmPWYrMXwwLGM9MHxhWzgrKDB8YVtwPj4yXSk+PjJdO0Z0KGwpLEZ0KDB8YVs4KygwfGFbcD4+Ml0pPj4yXSksbD0wfGFbcD4+Ml19YVtsKzg+''@;'; + put 'put ''PjJdPTB9ZnVuY3Rpb24gWjIobCxjLGYscCl7cHw9MDt2YXIgbT0wO3JldHVybihtPTB8c2kobHw9MCxjfD0wLGZ8PTAsMCkpfHwobT0wfHNpKGwsYyxmLHApKSwwfG19ZnVuY3Rpb24gTGxlKGwsYyl7Y3w9MDt2YXIgQSx3LGIsayxNLEQsUixmPTAscD0wLG09MDtyZXR1cm4gUj1hZSxhZT1h''@;'; + put 'put ''ZSszMnwwLHc9UixBPVIrOHwwLGI9UisxNnwwLE09MHwkcyhsfD0wLDU5KSwoZj0wfGFbKEQ9Yys0fDApPj4yXSk+Pj4wPj0oMHxhWyhrPWMrOHwwKT4+Ml0pPj4+MCYmKFEwKGMsMSksZj0wfGFbRD4+Ml0pLGFbRD4+Ml09ZisxLGZlW2Y+PjBdPTM4LDAhPSgwfE0pJiYoKHA9TS1sfDApLTJ8''@;'; + put 'put ''MCk+Pj4wPD02JiYocXkoYixsLHApLGZlW2IrcD4+MF09MCxhW0E+PjJdPWIsMCE9KDB8KG09MHx0dyhBLDIzNjY0LDI1Miw4LDk2KSkpKSYmKGFbdz4+Ml09YVttKzQ+PjJdLG9vKGIsMTM3Mzk1LHcpLChsPTB8YVtEPj4yXSk+Pj4wPj0oMHxhW2s+PjJdKT4+PjAmJihRMChjLDEpLGw9MHxh''@;'; + put 'put ''W0Q+PjJdKSxhW0Q+PjJdPWwrMSxmZVtsPj4wXT0zNSx1byhjLGIpLChsPTB8YVtEPj4yXSk+Pj4wPj0oMHxhW2s+PjJdKT4+PjAmJihRMChjLDEpLGw9MHxhW0Q+PjJdKSxhW0Q+PjJdPWwrMSxmZVtsPj4wXT01OSxsPU0rMXwwKSxhZT1SLDB8bH1mdW5jdGlvbiBTTihsLGMpe2N8PTA7dmFy''@;'; + put 'put ''IHcsYixrLFIsSyxmPTAscD0wLG09MCxBPTAsTT0wLEQ9MCxHPTA7Zm9yKEs9YWUsYWU9YWUrMTA3MnwwLGs9Sys4fDAsYj1LLFI9SysyNHwwLGFbKHc9SysxNnwwKT4+Ml09bHw9MCwoMHxhWzQ3MzIyXSkhPSgwfGMpJiYoYVs0NzMyMl09YyxmZVsxOTQ5NThdPTApLHVzKFIsMTAyNCxLKzQw''@;'; + put 'put ''fDApLEc9Uis0fDAsRD1SKzh8MDthW3c+PjJdPXA9bCsxfDAsKGY9MHxmZVtsPj4wXSk8PDI0Pj4yNDspe2Rve2lmKCgyNTUmZik8MTkyKWlmKGY8PDI0Pj4yND09MzgpaWYocD0wfE1OKHcpKXtpZihwPj4+MDwxMjcpe2Y9MjU1JnA7YnJlYWt9aWYoZj0obD0wfGFbRz4+Ml0pPj4+MD49KDB8''@;'; + put 'put ''YVtEPj4yXSk+Pj4wLHA+Pj4wPDIwNDcpe2YmJihRMChSLDEpLGw9MHxhW0c+PjJdKSxhW0c+PjJdPWwrMSxmZVtsPj4wXT1wPj4+NnwxOTIsZj0yNTUmKDYzJnB8MTI4KTticmVha31mJiYoUTAoUiwxKSxsPTB8YVtHPj4yXSksYVtHPj4yXT1sKzEsZmVbbD4+MF09cD4+PjEyfDIyNCwobD0w''@;'; + put 'put ''fGFbRz4+Ml0pPj4+MD49KDB8YVtEPj4yXSk+Pj4wJiYoUTAoUiwxKSxsPTB8YVtHPj4yXSksYVtHPj4yXT1sKzEsZmVbbD4+MF09cD4+PjYmNjN8MTI4LGY9MjU1Jig2MyZwfDEyOCl9ZWxzZSBmPTM4O2Vsc2UgQT0wLE09OTtlbHNlKDI1NSZmKT49MjI0PygyNTUmZik+PTI0MD8oMjU1JmYp''@;'; + put 'put ''PDI0OD8oQT0zLE09OSk6KDB8ZmVbMTk0OTU4XXx8KGFbYj4+Ml09MHx0aShjKSwkcigwLDEwOTcwNyxiKSxmZVsxOTQ5NThdPTEpLEE9LTEsZj0wfHdKKGYsUiksTT05KTooQT0yLE09OSk6KEE9MSxNPTkpfXdoaWxlKDApO2Rve2lmKDk9PSgwfE0pKXtmb3IoTT0wLG09MDs7KXtpZigoMHxt''@;'; + put 'put ''KT49KDB8QSkpe009MzQ7YnJlYWt9aWYoKC02NCZmZVtwPj4wXSk8PDI0Pj4yNCE9LTEyOClicmVhazsobD0wfGFbRz4+Ml0pPj4+MD49KDB8YVtEPj4yXSk+Pj4wJiYoUTAoUiwxKSxsPTB8YVtHPj4yXSksYVtHPj4yXT1sKzEsZmVbbD4+MF09ZixtPW0rMXwwLGY9MHxmZVtwPj4wXSxwPXAr''@;'; + put 'put ''MXwwfWlmKDM0PT0oMHxNKSl7TT0wLGFbdz4+Ml09cDticmVha31hW3c+PjJdPXAsMHxmZVsxOTQ5NThdfHwobT0wfHRpKGMpLGFbaz4+Ml09QSsxLGFbays0Pj4yXT1tLCRyKDAsMTA5ODI4LGspLGZlWzE5NDk1OF09MSksZj0wfHdKKGYsUil9fXdoaWxlKDApOyhsPTB8YVtHPj4yXSk+Pj4w''@;'; + put 'put ''Pj0oMHxhW0Q+PjJdKT4+PjAmJihRMChSLDEpLGw9MHxhW0c+PjJdKSxhW0c+PjJdPWwrMSxmZVtsPj4wXT1mLGw9MHxhW3c+PjJdfXJldHVybihsPTB8YVtHPj4yXSk+Pj4wPj0oMHxhW0Q+PjJdKT4+PjAmJihRMChSLDEpLGw9MHxhW0c+PjJdKSxmZVtsPj4wXT0wLGFbRz4+Ml09RD0wfGFb''@;'; + put 'put ''Uj4+Ml0sRz0wfHJhKEQpLEMyKFIpLGFlPUssMHxHfWZ1bmN0aW9uIHdKKGwsYyl7Y3w9MDt2YXIgQSx3LGIsZj0wLHA9MCxtPTAsaz0wO2ZvcihiPWFlLGFlPWFlKzE2fDAsZmVbKG09Yik+PjBdPWx8PTAsZmVbbSsxPj4wXT0wLEE9Yys0fDAsdz1jKzh8MCxmPTB8VW8obT0wfHZrKG0pKSxw''@;'; + put 'put ''PW07ISgoMHxmKTw9MSk7KShsPTB8YVtBPj4yXSk+Pj4wPj0oMHxhW3c+PjJdKT4+PjAmJihRMChjLDEpLGw9MHxhW0E+PjJdKSxrPTB8ZmVbcD4+MF0sYVtBPj4yXT1sKzEsZmVbbD4+MF09ayxmPWYrLTF8MCxwPXArMXwwO3JldHVybiBrPTB8ZmVbcD4+MF0sRnQobSksYWU9YiwwfGt9ZnVu''@;'; + put 'put ''Y3Rpb24gTU4obCl7dmFyIHcsYz0wLGY9MCxwPTAsbT0wLEE9MDt3PWFlLGFlPWFlKzMyfDAsQT13LGM9dys4fDAsZj0wfGFbKGx8PTApPj4yXTtlOmRve2lmKDM1IT0oMHxmZVtmPj4wXSkpe2FbQT4+Ml09YyxtPTA7dDpmb3IoOzspe2lmKCgwfG0pPj04KXtjPTA7YnJlYWsgZX1zd2l0Y2go''@;'; + put 'put ''KHA9MHxmZVtmK20+PjBdKTw8MjQ+PjI0KXtjYXNlIDA6Yz0wO2JyZWFrIGU7Y2FzZSA1OTpicmVhayB0fWZlW2M+PjBdPXAsYz1jKzF8MCxtPW0rMXwwfWZlW2M+PjBdPTAsKGM9MHx0dyhBLDIzNjY0LDI1Miw4LDk2KSk/KGY9ZisobSsxKXwwLGM9MHxhW2MrND4+Ml0pOmM9MH1lbHNle2M9''@;'; + put 'put ''MjU1JihBPTB8ZmVbZisxPj4wXSk7dDpkb3tpZigoMzJ8QSk8PDI0Pj4yND09MTIwKWZvcihBPTAsbT0yOzspe2lmKCgwfG0pPj04KXtwPUE7YnJlYWsgdH1pZihjPTI1NSYocD0wfGZlW2YrbT4+MF0pLChwKy02NSYyNTUpPj02KWlmKChwKy05NyYyNTUpPj02KXtpZighKChwKy00OCYyNTUp''@;'; + put 'put ''PDEwKSl7cD1BO2JyZWFrIHR9cD0tNDh9ZWxzZSBwPS04NztlbHNlIHA9LTU1O0E9KGM9cCtjfDApKyhBPDw0KXwwLG09bSsxfDB9ZWxzZSBmb3IocD0wLG09MTs7KXtpZigoMHxtKT49OHx8KGM9MjU1JihBPTB8ZmVbZittPj4wXSksKEErLTQ4JjI1NSk+PTEwKSlicmVhayB0O3A9KDEwKnB8''@;'; + put 'put ''MCktNDgrY3wwLG09bSsxfDB9fXdoaWxlKDApO2Y9KGM9NTk9PSgwfGMpKT9mKyhtKzEpfDA6ZixjPWM/cDowfX13aGlsZSgwKTtyZXR1cm4gYVtsPj4yXT1mLGFlPXcsMHxjfWZ1bmN0aW9uIHZrKGwpe3ZhciBtLHcsayxjPTAsZj0wLHA9MCxBPTAsYj0wO2ZvcihrPWFlLGFlPWFlKzEwNTZ8''@;'; + put 'put ''MCx3PWsrOHwwLGFbKG09ayk+PjJdPWx8PTAsdXModywxMDI0LGsrMjR8MCksYj13KzR8MCxBPXcrOHwwO2FbbT4+Ml09bCsxLChjPTB8ZmVbbD4+MF0pPDwyND4+MjQ7KXtsPTI1NSZjLGM8PDI0Pj4yND09Mzg/KGw9MHxNTihtKSk/cD01OihsPTM4LHA9Nik6cD01O2Rve2lmKDU9PSgwfHAp''@;'; + put 'put ''KWlmKHA9MCxsPj4+MDwxMjcpcD02O2Vsc2V7aWYoZj0oYz0wfGFbYj4+Ml0pPj4+MD49KDB8YVtBPj4yXSk+Pj4wLGw+Pj4wPDIwNDcpe2YmJihRMCh3LDEpLGM9MHxhW2I+PjJdKSxhW2I+PjJdPWMrMSxmZVtjPj4wXT1sPj4+NnwxOTIsKGM9MHxhW2I+PjJdKT4+PjA+PSgwfGFbQT4+Ml0p''@;'; + put 'put ''Pj4+MCYmKFEwKHcsMSksYz0wfGFbYj4+Ml0pLGw9NjMmbHwxMjg7YnJlYWt9ZiYmKFEwKHcsMSksYz0wfGFbYj4+Ml0pLGFbYj4+Ml09YysxLGZlW2M+PjBdPWw+Pj4xMnwyMjQsKGM9MHxhW2I+PjJdKT4+PjA+PSgwfGFbQT4+Ml0pPj4+MCYmKFEwKHcsMSksYz0wfGFbYj4+Ml0pLGFbYj4+''@;'; + put 'put ''Ml09YysxLGZlW2M+PjBdPWw+Pj42JjYzfDEyOCwoYz0wfGFbYj4+Ml0pPj4+MD49KDB8YVtBPj4yXSk+Pj4wJiYoUTAodywxKSxjPTB8YVtiPj4yXSksbD02MyZsfDEyOH19d2hpbGUoMCk7Nj09KDB8cCkmJihjPTB8YVtiPj4yXSk+Pj4wPj0oMHxhW0E+PjJdKT4+PjAmJihRMCh3LDEpLGM9''@;'; + put 'put ''MHxhW2I+PjJdKSxhW2I+PjJdPWMrMSxmZVtjPj4wXT1sLGw9MHxhW20+PjJdfXJldHVybihsPTB8YVtiPj4yXSk+Pj4wPj0oMHxhW0E+PjJdKT4+PjAmJihRMCh3LDEpLGw9MHxhW2I+PjJdKSxmZVtsPj4wXT0wLGFbYj4+Ml09QT0wfGFbdz4+Ml0sYj0wfHJhKEEpLEMyKHcpLGFlPWssMHxi''@;'; + put 'put ''fWZ1bmN0aW9uIGJKKGwpe2x8PTA7dmFyIG0sdyxjPTAsZj0wLHA9MCxBPTA7Zm9yKHc9YWUsYWU9YWUrMTA0MHwwLHVzKG09dywxMDI0LHcrMTZ8MCksQT1tKzR8MCxwPW0rOHwwO2M9bCsxfDAsKGY9MHxmZVtsPj4wXSk8PDI0Pj4yNDspKDI1NSZmKTwxMjc/KChsPTB8YVtBPj4yXSk+Pj4w''@;'; + put 'put ''Pj0oMHxhW3A+PjJdKT4+PjAmJihRMChtLDEpLGw9MHxhW0E+PjJdKSxhW0E+PjJdPWwrMSxmZVtsPj4wXT1mLGw9Yyk6KGY9NjMmZmVbYz4+MF18Zjw8NiYyNTUsKGM9MHxhW0E+PjJdKT4+PjA+PSgwfGFbcD4+Ml0pPj4+MCYmKFEwKG0sMSksYz0wfGFbQT4+Ml0pLGFbQT4+Ml09YysxLGZl''@;'; + put 'put ''W2M+PjBdPWYsbD1sKzJ8MCk7cmV0dXJuKGw9MHxhW0E+PjJdKT4+PjA+PSgwfGFbcD4+Ml0pPj4+MCYmKFEwKG0sMSksbD0wfGFbQT4+Ml0pLGZlW2w+PjBdPTAsYVtBPj4yXT1wPTB8YVttPj4yXSxBPTB8cmEocCksQzIobSksYWU9dywwfEF9ZnVuY3Rpb24gUmxlKGwsYyl7dmFyIHAsbSxB''@;'; + put 'put ''LHcsYixrLEQsZj0wLE09MDtyZXR1cm4gRD1hZSxhZT1hZSs4MHwwLHA9RCs0OHwwLGY9RCszMnwwLG09RCs2NHwwLEE9RCsxNnwwLHc9RCwrX1soYj0xNisoY3w9MCl8MCk+PjNdPj0rX1s0OCsoTT0wfGFbKGs9MTYrKGx8PTApfDApPj4yXSk+PjNdJiYrX1tNKzY0Pj4zXT49K19bYz4+M10m''@;'; + put 'put ''JitfW2MrMjQ+PjNdPj0rX1tNKzU2Pj4zXSYmK19bTSs3Mj4+M10+PStfW2MrOD4+M10/KE09TSsxNnwwLGFbZj4+Ml09YVtiPj4yXSxhW2YrND4+Ml09YVtiKzQ+PjJdLGFbZis4Pj4yXT1hW2IrOD4+Ml0sYVtmKzEyPj4yXT1hW2IrMTI+PjJdLGFbcD4+Ml09YVtjPj4yXSxhW3ArND4+Ml09''@;'; + put 'put ''YVtjKzQ+PjJdLGFbcCs4Pj4yXT1hW2MrOD4+Ml0sYVtwKzEyPj4yXT1hW2MrMTI+PjJdLGZ1bmN0aW9uIEJsZShsLGMsZil7dmFyIHA7cD0uNSooK19bOCsoZnw9MCk+PjNdKyArX1s4KyhjfD0wKT4+M10pLF9bKGx8PTApPj4zXT0uNSooK19bZj4+M10rICtfW2M+PjNdKSxfW2wrOD4+M109''@;'; + put 'put ''cH0oQSxmLHApLGFbZj4+Ml09YVtNPj4yXSxhW2YrND4+Ml09YVtNKzQ+PjJdLGFbZis4Pj4yXT1hW00rOD4+Ml0sYVtmKzEyPj4yXT1hW00rMTI+PjJdLGFbcD4+Ml09YVtBPj4yXSxhW3ArND4+Ml09YVtBKzQ+PjJdLGFbcCs4Pj4yXT1hW0ErOD4+Ml0sYVtwKzEyPj4yXT1hW0ErMTI+PjJd''@;'; + put 'put ''LHdOKHcsZixwKSxhW20+PjJdPWwsYVttKzQ+PjJdPTAsZj0wfGFbMTIrKDB8YVs0KygwfGFbOCsoMHxhW2s+PjJdKT4+Ml0pPj4yXSk+PjJdLGFbcD4+Ml09YVt3Pj4yXSxhW3ArND4+Ml09YVt3KzQ+PjJdLGFbcCs4Pj4yXT1hW3crOD4+Ml0sYVtwKzEyPj4yXT1hW3crMTI+PjJdLGY9MHxC''@;'; + put 'put ''aVsxMjcmZl0obSxwKSk6Zj0wLGFlPUQsMHxmfWZ1bmN0aW9uIEVOKGwsYyl7dmFyIHAsbSxBLHcsYixrLE0sRDtyZXR1cm4gY3w9MCxwPWFlLGFlPWFlKzgwfDAsYj1wKzY0fDAsaz1wKzQ4fDAsRD1wKzMyfDAsQT1wKzE2fDAsX1soTT1wKT4+M109LjUqK19bMjQrKGx8PTApPj4zXSxfW00r''@;'; + put 'put ''OD4+M109LjUqK19bbCszMj4+M10sYVtrPj4yXT1hWyhsPWwrNTZ8MCk+PjJdLGFbays0Pj4yXT1hW2wrND4+Ml0sYVtrKzg+PjJdPWFbbCs4Pj4yXSxhW2srMTI+PjJdPWFbbCsxMj4+Ml0sYVtiPj4yXT1hW00+PjJdLGFbYis0Pj4yXT1hW00rND4+Ml0sYVtiKzg+PjJdPWFbTSs4Pj4yXSxh''@;'; + put 'put ''W2IrMTI+PjJdPWFbTSsxMj4+Ml0sd04oRCxrLGIpLHc9K19bRD4+M10sbT0rX1tEKzg+PjNdLGFbaz4+Ml09YVtsPj4yXSxhW2srND4+Ml09YVtsKzQ+PjJdLGFbays4Pj4yXT1hW2wrOD4+Ml0sYVtrKzEyPj4yXT1hW2wrMTI+PjJdLGFbYj4+Ml09YVtNPj4yXSxhW2IrND4+Ml09YVtNKzQ+''@;'; + put 'put ''PjJdLGFbYis4Pj4yXT1hW00rOD4+Ml0sYVtiKzEyPj4yXT1hW00rMTI+PjJdLG1KKEEsayxiKSxhZT1wLDB8KCtfW2MrMTY+PjNdPj13JiYrX1tBPj4zXT49K19bYz4+M10mJitfW2MrMjQ+PjNdPj1tPytfW0ErOD4+M10+PStfW2MrOD4+M10mMTowKX1mdW5jdGlvbiBfSihsLGMpe2N8PTA7''@;'; + put 'put ''dmFyIHcsYixrLE0sUixmPTAscD0wLG09MCxBPTAsRD0wO1I9YWUsYWU9YWUrODB8MCxNPVIrNDh8MCxrPVIsYj0wfGFbOCsobD0wfGFbKHc9MTYrKGx8PTApfDApPj4yXSk+PjJdO2U6ZG97aWYoMCE9KDB8YikmJihBPWIrOHwwLGFbaz4+Ml09YVtBPj4yXSxhW2srND4+Ml09YVtBKzQ+PjJd''@;'; + put 'put ''LGFbays4Pj4yXT1hW0ErOD4+Ml0sYVtrKzEyPj4yXT1hW0ErMTI+PjJdLGFbaysxNj4+Ml09YVtBKzE2Pj4yXSxhW2srMjA+PjJdPWFbQSsyMD4+Ml0sYVtrKzI0Pj4yXT1hW0ErMjQ+PjJdLGFbaysyOD4+Ml09YVtBKzI4Pj4yXSxhW00+PjJdPWFbYz4+Ml0sYVtNKzQ+PjJdPWFbYys0Pj4y''@;'; + put 'put ''XSxhW00rOD4+Ml09YVtjKzg+PjJdLGFbTSsxMj4+Ml09YVtjKzEyPj4yXSxhW00rMTY+PjJdPWFbYysxNj4+Ml0sYVtNKzIwPj4yXT1hW2MrMjA+PjJdLGFbTSsyND4+Ml09YVtjKzI0Pj4yXSxhW00rMjg+PjJdPWFbYysyOD4+Ml0sMCE9KDB8UGxlKGssTSkpKSl7Zm9yKGY9Yis0fDAsbD0w''@;'; + put 'put ''OyEoKDB8bCk+PSgwfGFbZj4+Ml0pKTspe209KDB8YVtiPj4yXSkrKDQ4Kmx8MCl8MCxBPShwPWspKzQ4fDA7ZG97YVtwPj4yXT1hW20+PjJdLHA9cCs0fDAsbT1tKzR8MH13aGlsZSgoMHxwKTwoMHxBKSk7aWYoYVtNPj4yXT1hW2M+PjJdLGFbTSs0Pj4yXT1hW2MrND4+Ml0sYVtNKzg+PjJd''@;'; + put 'put ''PWFbYys4Pj4yXSxhW00rMTI+PjJdPWFbYysxMj4+Ml0sYVtNKzE2Pj4yXT1hW2MrMTY+PjJdLGFbTSsyMD4+Ml09YVtjKzIwPj4yXSxhW00rMjQ+PjJdPWFbYysyND4+Ml0sYVtNKzI4Pj4yXT1hW2MrMjg+PjJdLCgwfEZsZShrLE0pKTw8MjQ+PjI0KXtsPTE7YnJlYWsgZX1sPWwrMXwwfWw9''@;'; + put 'put ''MHxhW3c+PjJdLEQ9N31lbHNlIEQ9N313aGlsZSgwKTtkb3tpZig3PT0oMHxEKSl7aWYoMHwobD0wfGFbbCs5Nj4+Ml0pJiYoYVtNPj4yXT1hW2M+PjJdLGFbTSs0Pj4yXT1hW2MrND4+Ml0sYVtNKzg+PjJdPWFbYys4Pj4yXSxhW00rMTI+PjJdPWFbYysxMj4+Ml0sYVtNKzE2Pj4yXT1hW2Mr''@;'; + put 'put ''MTY+PjJdLGFbTSsyMD4+Ml09YVtjKzIwPj4yXSxhW00rMjQ+PjJdPWFbYysyND4+Ml0sYVtNKzI4Pj4yXT1hW2MrMjg+PjJdLCgwfEVOKGwsTSkpPDwyND4+MjQpKXtsPTE7YnJlYWt9bD0wfX13aGlsZSgwKTtyZXR1cm4gYWU9UiwwfGx9ZnVuY3Rpb24gUGxlKGwsYyl7cmV0dXJuIDB8KCtf''@;'; + put 'put ''WzE2KyhsfD0wKT4+M10+PStfWyhjfD0wKT4+M10mJitfW2MrMTY+PjNdPj0rX1tsPj4zXSYmK19bbCsyND4+M10+PStfW2MrOD4+M10/K19bYysyND4+M10+PStfW2wrOD4+M10mMTowKX1mdW5jdGlvbiBGbGUobCxjKXtjfD0wO3ZhciBtLGIsayxNLFIsZj0wLHA9MCxBPTAsdz0wLEQ9MDtm''@;'; + put 'put ''b3IoUj1hZSxhZT1hZSs5NnwwLE09Uis2NHwwLGs9Uis0OHwwLGI9UiszMnwwLG09UisxNnwwLEE9UiwoZj0wfGFbKEQ9NCsobHw9MCl8MCk+PjJdKXx8UHIoMTA5OTM3LDEwNzY2MSwxNjM3LDEwOTk0NSksYVtBPj4yXT1hWyhwPTB8YVtsPj4yXSk+PjJdLGFbQSs0Pj4yXT1hW3ArND4+Ml0s''@;'; + put 'put ''YVtBKzg+PjJdPWFbcCs4Pj4yXSxhW0ErMTI+PjJdPWFbcCsxMj4+Ml0scD0xOzspe2lmKCgwfHApPj0oMHxmKSl7dz03O2JyZWFrfWlmKGFbbT4+Ml09YVsoZj0oMHxhW2w+PjJdKSsocDw8NCl8MCk+PjJdLGFbbSs0Pj4yXT1hW2YrND4+Ml0sYVttKzg+PjJdPWFbZis4Pj4yXSxhW20rMTI+''@;'; + put 'put ''PjJdPWFbZisxMj4+Ml0sYVtiPj4yXT1hW2Y+PjJdLGFbYis0Pj4yXT1hW2YrND4+Ml0sYVtiKzg+PjJdPWFbZis4Pj4yXSxhW2IrMTI+PjJdPWFbZisxMj4+Ml0sYVtrPj4yXT1hW0E+PjJdLGFbays0Pj4yXT1hW0ErND4+Ml0sYVtrKzg+PjJdPWFbQSs4Pj4yXSxhW2srMTI+PjJdPWFbQSsx''@;'; + put 'put ''Mj4+Ml0sYVtNPj4yXT1hW2M+PjJdLGFbTSs0Pj4yXT1hW2MrND4+Ml0sYVtNKzg+PjJdPWFbYys4Pj4yXSxhW00rMTI+PjJdPWFbYysxMj4+Ml0sYVtNKzE2Pj4yXT1hW2MrMTY+PjJdLGFbTSsyMD4+Ml09YVtjKzIwPj4yXSxhW00rMjQ+PjJdPWFbYysyND4+Ml0sYVtNKzI4Pj4yXT1hW2Mr''@;'; + put 'put ''Mjg+PjJdLC0xIT0oMHxOSShiLGssTSkpKXtmPTE7YnJlYWt9YVtBPj4yXT1hW20+PjJdLGFbQSs0Pj4yXT1hW20rND4+Ml0sYVtBKzg+PjJdPWFbbSs4Pj4yXSxhW0ErMTI+PjJdPWFbbSsxMj4+Ml0scD1wKzF8MCxmPTB8YVtEPj4yXX1kb3tpZig3PT0oMHx3KSl7aWYoMHwoZj0wfGFbbCs4''@;'; + put 'put ''Pj4yXSkmJih3PTB8YVtsPj4yXSxhW2I+PjJdPWFbKEE9bCsxNnwwKT4+Ml0sYVtiKzQ+PjJdPWFbQSs0Pj4yXSxhW2IrOD4+Ml09YVtBKzg+PjJdLGFbYisxMj4+Ml09YVtBKzEyPj4yXSxhW2s+PjJdPWFbdz4+Ml0sYVtrKzQ+PjJdPWFbdys0Pj4yXSxhW2srOD4+Ml09YVt3Kzg+PjJdLGFb''@;'; + put 'put ''aysxMj4+Ml09YVt3KzEyPj4yXSxhW00+PjJdPWFbYz4+Ml0sYVtNKzQ+PjJdPWFbYys0Pj4yXSxhW00rOD4+Ml09YVtjKzg+PjJdLGFbTSsxMj4+Ml09YVtjKzEyPj4yXSxhW00rMTY+PjJdPWFbYysxNj4+Ml0sYVtNKzIwPj4yXT1hW2MrMjA+PjJdLGFbTSsyND4+Ml09YVtjKzI0Pj4yXSxh''@;'; + put 'put ''W00rMjg+PjJdPWFbYysyOD4+Ml0sKDB8Q0ooYixrLDAsTSkpPDwyND4+MjQpKXtmPTE7YnJlYWt9aWYoMHwoZj0wfGFbbCsxMj4+Ml0pJiYoRD0oMHxhW2w+PjJdKSsoKDB8YVtEPj4yXSktMTw8NCl8MCxhW2I+PjJdPWFbKHc9bCszMnwwKT4+Ml0sYVtiKzQ+PjJdPWFbdys0Pj4yXSxhW2Ir''@;'; + put 'put ''OD4+Ml09YVt3Kzg+PjJdLGFbYisxMj4+Ml09YVt3KzEyPj4yXSxhW2s+PjJdPWFbRD4+Ml0sYVtrKzQ+PjJdPWFbRCs0Pj4yXSxhW2srOD4+Ml09YVtEKzg+PjJdLGFbaysxMj4+Ml09YVtEKzEyPj4yXSxhW00+PjJdPWFbYz4+Ml0sYVtNKzQ+PjJdPWFbYys0Pj4yXSxhW00rOD4+Ml09YVtj''@;'; + put 'put ''Kzg+PjJdLGFbTSsxMj4+Ml09YVtjKzEyPj4yXSxhW00rMTY+PjJdPWFbYysxNj4+Ml0sYVtNKzIwPj4yXT1hW2MrMjA+PjJdLGFbTSsyND4+Ml09YVtjKzI0Pj4yXSxhW00rMjg+PjJdPWFbYysyOD4+Ml0sKDB8Q0ooYixrLDAsTSkpPDwyND4+MjQpKXtmPTE7YnJlYWt9Zj0wfX13aGlsZSgw''@;'; + put 'put ''KTtyZXR1cm4gYWU9UiwwfGZ9ZnVuY3Rpb24gQ0oobCxjLGYscCl7Y3w9MDt2YXIgQSx3LGIsayxNLEQsbT0wLFI9MDtyZXR1cm4gTT1hZSxhZT1hZSsxNjB8MCxBPU0rMTQ0fDAsRD1NKzk2fDAsdz1NKzY0fDAsYj1NKzMyfDAsaz1NLFI9K19bMTYrKHB8PTApPj4zXSxhWyhtPU0rMTI4fDAp''@;'; + put 'put ''Pj4yXT1hWyhsfD0wKT4+Ml0sYVttKzQ+PjJdPWFbbCs0Pj4yXSxhW20rOD4+Ml09YVtsKzg+PjJdLGFbbSsxMj4+Ml09YVtsKzEyPj4yXSxhW0E+PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxQQShELG0s''@;'; + put 'put ''QSwxKSxtPVI+PStfW0Q+PjNdJiYoYVttPj4yXT1hW2w+PjJdLGFbbSs0Pj4yXT1hW2wrND4+Ml0sYVttKzg+PjJdPWFbbCs4Pj4yXSxhW20rMTI+PjJdPWFbbCsxMj4+Ml0sYVtBPj4yXT1hW2M+PjJdLGFbQSs0Pj4yXT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFbYys4Pj4yXSxhW0ErMTI+PjJd''@;'; + put 'put ''PWFbYysxMj4+Ml0sUEEodyxtLEEsMSksK19bdysxNj4+M10+PStfW3A+PjNdKSYmKFI9K19bcCsyND4+M10sYVttPj4yXT1hW2w+PjJdLGFbbSs0Pj4yXT1hW2wrND4+Ml0sYVttKzg+PjJdPWFbbCs4Pj4yXSxhW20rMTI+PjJdPWFbbCsxMj4+Ml0sYVtBPj4yXT1hW2M+PjJdLGFbQSs0Pj4y''@;'; + put 'put ''XT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFbYys4Pj4yXSxhW0ErMTI+PjJdPWFbYysxMj4+Ml0sUEEoYixtLEEsMSksUj49K19bYis4Pj4zXSkmJihhW20+PjJdPWFbbD4+Ml0sYVttKzQ+PjJdPWFbbCs0Pj4yXSxhW20rOD4+Ml09YVtsKzg+PjJdLGFbbSsxMj4+Ml09YVtsKzEyPj4yXSxhW0E+''@;'; + put 'put ''PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxQQShrLG0sQSwxKSwrX1trKzI0Pj4zXT49K19bcCs4Pj4zXSk/MTowLGFlPU0sMHxtfWZ1bmN0aW9uIHQ0KGwsYyl7dmFyIGY7Y3w9MCwoZj0wfExpKGx8PTAs''@;'; + put 'put ''MTEwMDU2KSkmJihjPTB8ZmVbZj4+MF0/MHxmdW5jdGlvbiBIbGUobCxjKXtsfD0wLGN8PTA7dmFyIHAsbSxmPTA7bT1hZSxhZT1hZSsxNnwwLHA9bTtlOmRve2lmKDAhPSgwfGwpJiYoZj0wfGZlW2w+PjBdLGY8PDI0Pj4yNCE9MCkpe3N3aXRjaChmPDwyND4+MjR8MCl7Y2FzZSA0ODpjPTI7''@;'; + put 'put ''YnJlYWsgZTtjYXNlIDU3OmNhc2UgNTY6Y2FzZSA1NTpjYXNlIDU0OmNhc2UgNTM6Y2FzZSA1MjpjYXNlIDUxOmNhc2UgNTA6Y2FzZSA0OTpjPTEwO2JyZWFrIGU7Y2FzZSA2NzpjYXNlIDk5OmlmKCEoMHx5MChmPWwrMXwwLDEwOTk2MCkpKXtjPTQ7YnJlYWsgZX1pZighKDB8eTAoZiwxMDk5''@;'; + put 'put ''NjYpKSl7Yz0xMjticmVhayBlfWJyZWFrO2Nhc2UgNzA6Y2FzZSAxMDI6aWYoISgwfHkwKGwrMXwwLDEwOTk3NCkpKXtjPTI7YnJlYWsgZX1icmVhaztjYXNlIDc2OmNhc2UgMTA4OmlmKCEoMHx5MChsKzF8MCwxMDk5NzkpKSl7Yz0yO2JyZWFrIGV9YnJlYWs7Y2FzZSA3ODpjYXNlIDExMDpp''@;'; + put 'put ''ZighKDB8eTAoZj1sKzF8MCwxMDk5ODMpKSl7Yz0wO2JyZWFrIGV9aWYoISgwfHkwKGYsMTA5OTg3KSkpe2M9MjticmVhayBlfWJyZWFrO2Nhc2UgNzk6Y2FzZSAxMTE6aWYoISgwfHkwKGwrMXwwLDEwOTk4OSkpKXtjPTg7YnJlYWsgZX1icmVhaztjYXNlIDgwOmNhc2UgMTEyOmlmKCEoMHx5''@;'; + put 'put ''MChsKzF8MCwxMDk5OTQpKSl7Yz02O2JyZWFrIGV9YnJlYWs7Y2FzZSA4MzpjYXNlIDExNTppZighKDB8eTAobCsxfDAsMTEwMDAyKSkpe2M9MTA7YnJlYWsgZX1icmVhaztjYXNlIDg0OmNhc2UgMTE2OmlmKCEoMHx5MChsKzF8MCwxMTAwMDgpKSl7Yz0xMDticmVhayBlfWJyZWFrO2Nhc2Ug''@;'; + put 'put ''ODk6Y2FzZSAxMjE6aWYoISgwfHkwKGwrMXwwLDExMDAxMikpKXtjPTEwO2JyZWFrIGV9fWFbcD4+Ml09bCwkcigwLDExMDAxNSxwKX19d2hpbGUoMCk7cmV0dXJuIGFlPW0sMHxjfShmLGMpOjApLHJ0WyhsPTEzNisoMHxhW2wrMTY+PjJdKXwwKT4+MV09Y3xocltsPj4xXX1mdW5jdGlvbiBk''@;'; + put 'put ''RChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHA9K3A7dmFyIEssZ2UsT2UsTGUsUmUsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxwZT0wLGJlPTAsSGU9MDtSZT1hZSxhZT1hZSszMnwwLEs9UmUrMTZ8MCxnZT1SZSxPZT0xJihtfD0wKSxMZT0yJm07ZTpkb3tpZigyPT0oMHxm''@;'; + put 'put ''KSliZT0rX1tsKzE2Pj4zXSxBPStfW2w+PjNdLGs9K19bbCsyND4+M10sYj0rX1tsKzg+PjNdLEEtPWJlLUEsX1tLPj4zXT1BLF9bZ2U+PjNdPWJlLGItPWstYixfW0srOD4+M109YixfW2dlKzg+PjNdPWs7ZWxzZSBmb3Iodz0rX1tsPj4zXSxfW2dlPj4zXT13LF9bSz4+M109dyxrPStfW2wr''@;'; + put 'put ''OD4+M10sRD1nZSs4fDAsX1tEPj4zXT1rLFI9Sys4fDAsX1tSPj4zXT1rLG09MCxBPXcsYj1rOzspe2lmKCgwfG0pPj0oMHxmKSl7YmU9dzticmVhayBlfV9bSz4+M109TT0rX1soKHBlPStfWyhIZT1sKyhtPDw0KXwwKT4+M10pPEE/SGU6Syk+PjNdLF9bUj4+M109Rz0rX1soKGJlPStfW2wr''@;'; + put 'put ''KG08PDQpKzg+PjNdKTxiP0hlOkspKzg+PjNdLF9bZ2U+PjNdPXBlPStfWyhwZT53P0hlOmdlKT4+M10sX1tEPj4zXT1iZT0rX1soYmU+az9IZTpnZSkrOD4+M10sbT1tKzF8MCxBPU0sYj1HLHc9cGUsaz1iZX19d2hpbGUoMCk7cGU9KHc9LjUqKGJlLUEpKStBLE09KEc9LjUqKGstYikpK2Is''@;'; + put 'put ''T2U/KHA9K0QwKCsoRypHK3cqdykpLF9bYys4Pj4zXT0wfExlP006LU0sX1tjPj4zXT1wZSxfW2MrMTY+PjNdPS4yNSpwLF9bYysyND4+M109cCk6KEE9ay1NLGI9K0RhKCsoaz1wKSksaz0raGEoK2spLExlPyh3PU0tKEEqPWIpLEErPU0pOih3PWIqQS1NLEE9LU0tRypiKSxfW2MrOD4+M109''@;'; + put 'put ''dyxfW2MrMjQ+PjNdPUEsX1tjPj4zXT1wZS0ocD1rKihiZS1wZSkpLF9bYysxNj4+M109cCtwZSksYWU9UmV9ZnVuY3Rpb24geHkobCxjKXt2YXIgcCxtLGY9MDttPTB8YVsocD0xNisobHw9MCl8MCk+PjJdLChjfD0wKTw8MjQ+PjI0PyhfW20rODg+PjNdPWY9MzYqK19bbSs0MD4+M10sbD1t''@;'; + put 'put ''KzMyfDApOihfW20rODg+PjNdPWY9MzYqK19bbSszMj4+M10sbD1tKzQwfDApLF9bbSs5Nj4+M109ZixfWzgwKygwfGFbcD4+Ml0pPj4zXT03MiorX1tsPj4zXX1mdW5jdGlvbiBrSihsLGMsZixwKXt2YXIgbTtwfD0wLGFbKGZ8PTApPj4yXT0obT0oMHwobD0wfGFbMjM2KygwfGFbMTYrKGx8''@;'; + put 'put ''PTApPj4yXSk+PjJdKSk+KDB8KGM9MHxhWzIzNisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSkpKT9jOmwsYVtwPj4yXT1tP2w6Y31mdW5jdGlvbiB4TihsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgTSxtPTAsQT0wLHc9MCxiPTAsaz0wLEQ9MDtNPWFlLGFlPWFlKzE2fDAsQT1NKzR8MCxt''@;'; + put 'put ''PU0sbD0wfGFbMTYrKGx8PTApPj4yXTtkb3tpZigxPT0oMHxmZVtsKzE1Nj4+MF0pKXtpZihrPTB8YVtsKzIzNj4+Ml0sMHxhW2wrMTc2Pj4yXSl7Zm9yKHc9MHxhW2wrMTgwPj4yXSxsPTAsbT0wLEE9MDtiPTB8YVt3KyhBPDwyKT4+Ml07KWw9KGI9KDB8KEQ9MHxhWzIzNisoMHxhWzE2Kygw''@;'; + put 'put ''fGFbKDI9PSgzJmFbYj4+Ml18MCk/YjpiKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk+KDB8ZikpPygwfEQpPCgwfHApP2w6MTpsLG09Yj9tOjEsQT1BKzF8MDtpZihtPDwyND4+MjQhPTAmbDw8MjQ+PjI0PT0wKXthW2M+PjJdPWsrMTticmVha31pZighKG08PDI0Pj4yND09MCZsPDwyND4+''@;'; + put 'put ''MjQhPTApKWJyZWFrO2FbYys0Pj4yXT1rKy0xO2JyZWFrfWlmKDIhPSgwfGFbbCsxODQ+PjJdKSYmUHIoODgzOTcsODg0MTcsNjMsODg0MjQpLGtKKDB8YVsoMj09KDMmYVsoRD0wfGFbKHc9MHxhW2wrMTgwPj4yXSk+PjJdKT4+Ml18MCk/RDpEKy00OHwwKSs0MD4+Ml0sMHxhWygyPT0oMyZh''@;'; + put 'put ''Wyh3PTB8YVt3KzQ+PjJdKT4+Ml18MCk/dzp3Ky00OHwwKSs0MD4+Ml0sQSxtKSwoMHwodz0wfGFbbT4+Ml0pKTw9KDB8Zikpe2FbYz4+Ml09ayxhW2MrOD4+Ml09azticmVha31pZigoMHwobD0wfGFbQT4+Ml0pKT49KDB8cCkpe2FbYys0Pj4yXT1rLGFbYysxMj4+Ml09azticmVha31pZigh''@;'; + put 'put ''KChBPSgwfHcpPigwfHApKSYobT0oMHxsKTwoMHxmKSkpKXtpZighbSYmISgoMHx3KTwoMHxwKSYoMHxsKT09KDB8ZikpfHwoYVtjKzg+PjJdPWspLCEoQXx8KDB8dyk9PSgwfHApJigwfGwpPigwfGYpKSlicmVhazthW2MrMTI+PjJdPWt9fX13aGlsZSgwKTthZT1NfWZ1bmN0aW9uIEFrKGwp''@;'; + put 'put ''e3ZhciBjO2gwKGx8PTAsMTM3NDQ3LDMwNCwxKSxzRChsKSxjPTB8dnIoKDB8aHJbMTc2KygwfGFbMTYrKDB8Y3IobCkpPj4yXSk+PjFdKTw8MyksYVsxMzIrKDB8YVtsKzE2Pj4yXSk+PjJdPWMseHkobCwxJmFbMTE2KygwfGFbMTYrKDB8Y3IobCkpPj4yXSk+PjJdKX1mdW5jdGlvbiBTSihs''@;'; + put 'put ''LGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBBLHcsayxHLHBlLG09MCxiPTAsTT0wLEQ9MCxSPTAsSz0wLGdlPTAsYmU9MDtwZT1hZSxhZT1hZSs2NHwwLHc9cGUrNDh8MCxEPXBlKzQwfDAsYj1wZSsyNHwwLEE9cGUrOHwwLEc9cGUrNTZ8MCxrPXBlO2Rve2lmKDAhPSgwfGwpJiYo''@;'; + put 'put ''Uj0wfGFbMTMyKygwfGFbKEs9ZisxNnwwKT4+Ml0pPj4yXSxtPTB8SG8oZixsKSwwIT0oMHxmZVttPj4wXSkpKXtpZihmZVtHPj4wXT0wLGw9Uis4fDAsKDB8YVs0NzEzN10pPjImJihhW0E+PjJdPVIsYVtBKzQ+PjJdPWwsYVtBKzg+PjJdPVIrMTYsYVtBKzEyPj4yXT1HLCgwfGlsKG0sODg1''@;'; + put 'put ''MzUsQSkpPjIpKXtmZVsxMTkrKDB8YVtLPj4yXSk+PjBdPTEsbT0wfGFbNDcxMzddO2U6ZG97aWYoK19bMjMyOTNdPjApZm9yKGw9MDs7KXtpZigoMHxsKT49KDB8bSkpYnJlYWsgZTtfWyhEPVIrKGw8PDMpfDApPj4zXT0rX1tEPj4zXS8rX1syMzI5M10sbD1sKzF8MH19d2hpbGUoMCk7aWYo''@;'; + put 'put ''KDB8bSk+MyYmWUooZixwLDMpLDMzIT0oMHxmZVtHPj4wXSkpe2lmKCFjKXtsPTE7YnJlYWt9aWYoISgoMHxlMSgwfEhvKGYsYykpKTw8MjQ+PjI0KSl7bD0xO2JyZWFrfX1mZVsxMTkrKDB8YVtLPj4yXSk+PjBdPTMsbD0xO2JyZWFrfWlmKGFbYj4+Ml09UixhW2IrND4+Ml09bCxhW2IrOD4+''@;'; + put 'put ''Ml09RywoMHxpbChtLDEwMTc0OSxiKSk8PTEpe2Fbdz4+Ml09MHx0aShmKSxhW3crND4+Ml09bSwkcigxLDg4NTQ5LHcpLGw9MDticmVha31mZVsxMTkrKDB8YVtLPj4yXSk+PjBdPTEsbT0wfGFbNDcxMzddO2U6ZG97aWYoK19bMjMyOTNdPjApZm9yKGw9MDs7KXtpZigoMHxsKT49KDB8bSkp''@;'; + put 'put ''YnJlYWsgZTtfWyhiPVIrKGw8PDMpfDApPj4zXT0rX1tiPj4zXS8rX1syMzI5M10sbD1sKzF8MH19d2hpbGUoMCk7ZG97aWYoKDB8bSk+Mil7aWYoMHwobD0wfGFbNDcxNzFdKSYmMHwoTT0wfEhvKGYsbCkpJiYoYVtEPj4yXT1rLDE9PSgwfGlsKE0sMTAxMjA5LEQpKSkpe2dlPStfW2s+PjNd''@;'; + put 'put ''LF9bUisxNj4+M109KGJlPStfWzIzMjkzXSk+MD9nZS9iZTpnZSxZSihmLHAsMyk7YnJlYWt9WU4oZixwKX19d2hpbGUoMCk7aWYoMzMhPSgwfGZlW0c+PjBdKSl7aWYoIWMpe2w9MTticmVha31pZighKCgwfGUxKDB8SG8oZixjKSkpPDwyND4+MjQpKXtsPTE7YnJlYWt9fWZlWzExOSsoMHxh''@;'; + put 'put ''W0s+PjJdKT4+MF09MyxsPTF9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGFlPXBlLDB8bH1mdW5jdGlvbiBXbGUobCxjKXtjfD0wO3ZhciBiLGssTSxHLGY9MCxwPTAsbT0wLEE9MCx3PTAsRD0wLFI9MDtmb3IoRz1hZSxhZT1hZSs0OHwwLGs9RyszMnwwLEQ9RyxiPTB8c2kobHw9MCwwLDEw''@;'; + put 'put ''MjYzNywwKSxmPTB8c2kobCwwLDEwMjY3MSwwKSxSPSgwfG5nKDB8TGkobCw4ODU5MyksMCkpPDwyND4+MjQhPTAsZnx8KGY9MHxzaShsLDAsMTAyNjcxLDE5NTA1OSkpLGZ1bmN0aW9uIGNzZShsKXtHSihsfD0wLDApfShsKSxNPWwrMTZ8MCxBPTA7Oyl7aWYoISh3PTB8YVsoMHxhWzE1Miso''@;'; + put 'put ''MHxhW00+PjJdKT4+Ml0pKyhBPDwyKT4+Ml0pKXtwPTEyO2JyZWFrfWlmKCEoMHxmZVsxMTkrKHA9MHxhWyhtPXcrMTZ8MCk+PjJdKT4+MF0pKXtpZigwfHMyKDB8dGkodyksMTA4MDA2LDcpKXtwPTg7YnJlYWt9cD0wfGFbbT4+Ml19MHwocD0wfGFbcCsxMDg+PjJdKSYmeWsodyxwLDEwMjYz''@;'; + put 'put ''MyksQT1BKzF8MH1lOmRve2lmKDg9PSgwfHApKVI9MHx0aSh3KSxmPTB8dGkobCksYVtrPj4yXT1SLGFbays0Pj4yXT1mLCRyKDEsODg2MDUsayksZj0tMTtlbHNlIGlmKDEyPT0oMHxwKSl7aWYoTUoobCxiLGYpLHc9MHxZbGUobCksMHxhWzg4KyhmPTB8YVs4KygwfGFbTT4+Ml0pPj4yXSk+''@;'; + put 'put ''PjJdPyhhW2YrODQ+PjJdPTAsZj0xKTpmPTAsKEE9MCE9KDB8ZikpfChtPTAhPSgwfGMpKSYxPT0oMHxhWzQ3MTM0XSleMXx8MD09KDB8RHkobCkpP3A9MDooKHA9MHxhWzEyKygwfGFbTT4+Ml0pPj4yXSkmJihmZVtwKzgxPj4wXT0wKSxwPTEpLGlnKGwpLEEmJihjPTE2KygwfGFbTT4+Ml0p''@;'; + put 'put ''fDAsZEYoRCxsKSxhW2M+PjJdPWFbRD4+Ml0sYVtjKzQ+PjJdPWFbRCs0Pj4yXSxhW2MrOD4+Ml09YVtEKzg+PjJdLGFbYysxMj4+Ml09YVtEKzEyPj4yXSxhW2MrMTY+PjJdPWFbRCsxNj4+Ml0sYVtjKzIwPj4yXT1hW0QrMjA+PjJdLGFbYysyND4+Ml09YVtEKzI0Pj4yXSxhW2MrMjg+PjJd''@;'; + put 'put ''PWFbRCsyOD4+Ml0pLCFtKWZvcihhWzQ3MTM4XT0xLHA9MHxEdChsKTs7KXtpZighcClicmVhayBlO19bMTYrKFI9MHxhW3ArMTY+PjJdKT4+M109NzIqK19bKEQ9MHxhW1IrMTMyPj4yXSk+PjNdLF9bUisyND4+M109NzIqK19bRCs4Pj4zXSxwPTB8enQobCxwKX1kb3tpZighKFJ8QSkpe2lm''@;'; + put 'put ''KDA9PStfWzE2KyhSPTB8YVtNPj4yXSk+PjNdJiYwPT0rX1tSKzI0Pj4zXSlicmVhaztGSihsKX19d2hpbGUoMCk7aWYoMCE9KDB8dykmKHB8KDB8SE4obCkpPDwyND4+MjQhPTApKVVsZShsKTtlbHNlIGlmKDI9PSgwfHcpKXthWzQ3MTM4XT0xO2JyZWFrfUFEKGwsMCl9fXdoaWxlKDApO3Jl''@;'; + put 'put ''dHVybiBhZT1HLDB8Zn1mdW5jdGlvbiB5ayhsLGMsZil7Y3w9MDt2YXIgcCxtLEEsYix3PTA7Yj1hZSxhZT1hZSs0OHwwLHc9YiszMnwwLHA9YisyNHwwLG09YisxNnwwLEE9YiwwfChsPTB8TGkobHw9MCxmfD0wKSkmJihhW3c+PjJdPXAsYVt3KzQ+PjJdPW0sMj09KDB8aWwobCwxMDU1MDMs''@;'; + put 'put ''dykpKSYmKHc9Yys1NnwwLEVKKEEsK19bcD4+M10sK19bbT4+M10pLGFbdz4+Ml09YVtBPj4yXSxhW3crND4+Ml09YVtBKzQ+PjJdLGFbdys4Pj4yXT1hW0ErOD4+Ml0sYVt3KzEyPj4yXT1hW0ErMTI+PjJdLGZlW2MrODE+PjBdPTEpLGFlPWJ9ZnVuY3Rpb24gTUoobCxjLGYpe2Z8PTA7dmFy''@;'; + put 'put ''IG0sQSx3LGIsayxwPTAsTT0wO2s9YWUsYWU9YWUrNDh8MCxiPWsrMzJ8MCxwPWsrMjR8MCxtPWsrMTZ8MCxBPWssdz0xNisobHw9MCl8MCwwfChjfD0wKSYmMCE9KDB8YVsxMisoMHxhW3c+PjJdKT4+Ml0pJiYoTT0wfEhvKGwsYyksYVtiPj4yXT1wLGFbYis0Pj4yXT1tLDI9PSgwfGlsKE0s''@;'; + put 'put ''MTA1NTAzLGIpKSkmJihNPTU2KygwfGFbMTIrKDB8YVt3Pj4yXSk+PjJdKXwwLEVKKEEsK19bcD4+M10sK19bbT4+M10pLGFbTT4+Ml09YVtBPj4yXSxhW00rND4+Ml09YVtBKzQ+PjJdLGFbTSs4Pj4yXT1hW0ErOD4+Ml0sYVtNKzEyPj4yXT1hW0ErMTI+PjJdLGZlWzgxKygwfGFbMTIrKDB8''@;'; + put 'put ''YVt3Pj4yXSk+PjJdKT4+MF09MSk7ZTpkb3tpZigwfGYpZm9yKHA9MHx5cyhsKTs7KXtpZighcClicmVhayBlO3hKKHAsbCxjLGYpLHA9MHxNcyhwKX19d2hpbGUoMCk7YWU9a31mdW5jdGlvbiBZbGUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7aWYoMHxWMyhsfD0wKSlpZigwPT0oMHwo''@;'; + put 'put ''bT0wfHNpKGwsMiwxMDI2MjMsMCkpKXwoMHxhWzQ3MTM0XSk8MiljPTA7ZWxzZXtmb3IoYz0wLHA9MHxEdChsKTtwOyl7Zm9yKGY9MHx3MChsLHApO2Y7KUE9YysoMCE9KDB8UWxlKG0sZikpJjEpfDAsZj0wfFMwKGwsZiksYz1BO3A9MHx6dChsLHApfWM9Yz8oYz0oMHxjKT09KDB8VjMobCkp''@;'; + put 'put ''KT8yOjE6MH1lbHNlIGM9MjtyZXR1cm4gMHxjfWZ1bmN0aW9uIFVsZShsKXt2YXIgYz0wLGY9MCxwPTA7Zm9yKGY9MHxEdChsfD0wKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KWhEKGMpLEljKDB8YVs5NisoMHxhWyhwPWMrMTZ8MCk+PjJdKT4+Ml0pLEljKDB8YVsxMDgrKDB8YVtwPj4yXSk+''@;'; + put 'put ''PjJdKSxJYygwfGFbMTAwKygwfGFbcD4+Ml0pPj4yXSksSWMoMHxhWzEwNCsoMHxhW3A+PjJdKT4+Ml0pLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfX1mdW5jdGlvbiBRbGUobCxjKXt2YXIgSyxwZSxnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxudCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxr''@;'; + put 'put ''PTAsTT0wLEQ9MCxSPTAsRz0wLFdlPTAsb3Q9MDtudD1hZSxhZT1hZSs5NnwwLFZlPW50KzcyfDAsUmU9bnQrNTZ8MCxxZT1udCs0OHwwLEhlPW50KzMyfDAsTGU9bnQrMTZ8MCxLPW50Kzg4fDAscGU9bnQrOHwwLGdlPW50LGJlPW50Kzg0fDAsT2U9bnQrODB8MCxsPTB8SG8oY3w9MCxsfD0w''@;'; + put 'put ''KTtkb3tpZigwfGZlW2w+PjBdKXtUQyhjLGJlLE9lKSxHPTEscD0wLGY9MCx3PTAsQT0wLGI9MCxtPTA7ZTpmb3IoOzspe2lmKGFbTGU+PjJdPXBlLGFbTGUrND4+Ml09Z2UsYVtMZSs4Pj4yXT1LLDI9PSgwfGlsKGwsODg2NDIsTGUpKT8oUj0xLGw9bCsoMHxhW0s+PjJdKXwwLEE9K19bcGU+''@;'; + put 'put ''PjNdLG09K19bZ2U+PjNdKTpSPWYsYVtIZT4+Ml09cGUsYVtIZSs0Pj4yXT1nZSxhW0hlKzg+PjJdPUssMj09KDB8aWwobCw4ODY1NCxIZSkpPyhEPTEsbD1sKygwfGFbSz4+Ml0pfDAsdz0rX1twZT4+M10sYj0rX1tnZT4+M10pOkQ9cCwhKCgwfChrPTB8SmxlKGwpKSk+MyYxPT0oMHwoMHxr''@;'; + put 'put ''KSUzKSkpe2Y9ODticmVha31mb3IoZj1NPTB8UW4oazw8NCkscD1rO3A7KXtpZihhW1JlPj4yXT1wZSxhW1JlKzQ+PjJdPWdlLGFbUmUrOD4+Ml09SywoMHxpbChsLDg4NzI0LFJlKSk8Mil7Zj0xMzticmVhayBlfVdlPWwrKDB8YVtLPj4yXSl8MCxfW2Y+PjNdPStfW3BlPj4zXSxfW2YrOD4+''@;'; + put 'put ''M109K19bZ2U+PjNdLGY9ZisxNnwwLHA9cCstMXwwLGw9V2V9Zm9yKDtwPWwrMXwwLDB8JGMoKGY9MHxmZVtsPj4wXSk8PDI0Pj4yNCk7KWw9cDtmb3IobD0oV2U9Zjw8MjQ+PjI0PT0wKT9sOnAsRz1XZT8wOkcscD0wfGlOKGMsayksMHxSJiYoYVtwKzg+PjJdPWFbYmU+PjJdLF9bcCsxNj4+''@;'; + put 'put ''M109QSxfW3ArMjQ+PjNdPW0pLDB8RCYmKGFbcCsxMj4+Ml09YVtPZT4+Ml0sX1twKzMyPj4zXT13LF9bcCs0MD4+M109YiksZj0wOyEoKDB8Zik+PSgwfGspKTspYVsoV2U9KDB8YVtwPj4yXSkrKGY8PDQpfDApPj4yXT1hWyhvdD1NKyhmPDw0KXwwKT4+Ml0sYVtXZSs0Pj4yXT1hW290KzQ+''@;'; + put 'put ''PjJdLGFbV2UrOD4+Ml09YVtvdCs4Pj4yXSxhW1dlKzEyPj4yXT1hW290KzEyPj4yXSxmPWYrMXwwO2lmKEZ0KE0pLCFHKXtmPTI2O2JyZWFrfXA9RCxmPVJ9aWYoOD09KDB8Zikpe2lmKGhEKGMpLDB8ZmVbMTkzNzcxXSl7bD0wO2JyZWFrfWZlWzE5Mzc3MV09MSxvdD0wfHRpKDB8YVsoMz09''@;'; + put 'put ''KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKSxsPTB8dGkoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKSxhW3FlPj4yXT1vdCxhW3FlKzQ+PjJdPWwsJHIoMCw4ODY2NyxxZSksbD0wO2JyZWFrfWlmKDEzPT0oMHxmKSl7MHxmZVsxOTM3NzFdfHwoZmVbMTkz''@;'; + put 'put ''NzcxXT0xLFdlPTB8dGkoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pLG90PTB8dGkoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKSxhW1ZlPj4yXT1XZSxhW1ZlKzQ+PjJdPW90LCRyKDAsODg3MzQsVmUpKSxGdChNKSxoRChjKSxsPTA7YnJl''@;'; + put 'put ''YWt9aWYoMjY9PSgwfGYpKXtpZigoZj0wfGFbOTYrKGw9MHxhWyhwPWMrMTZ8MCk+PjJdKT4+Ml0pJiYoeWsoYyxmLDEwMjYzNyksbD0wfGFbcD4+Ml0pLChmPTB8YVtsKzEwOD4+Ml0pJiYoeWsoYyxmLDEwMjYzMyksbD0wfGFbcD4+Ml0pLChmPTB8YVtsKzEwMD4+Ml0pJiYoeWsoYyxmLDEw''@;'; + put 'put ''MjY0MCksbD0wfGFbcD4+Ml0pLCEobD0wfGFbbCsxMDQ+PjJdKSl7bD0xO2JyZWFrfXlrKGMsbCwxMDI2NDgpLGw9MTticmVha319ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGFlPW50LDB8bH1mdW5jdGlvbiBKbGUobCl7bHw9MDt2YXIgYz0wLGY9MDtmPTA7ZG97Zm9yKDswfCRjKDI1NSYo''@;'; + put 'put ''Yz0wfGZlW2w+PjBdKSk7KWw9bCsxfDA7ZTpkb3tpZihjPDwyND4+MjQpZm9yKGY9ZisxfDA7Oyl7aWYoIShjPDwyND4+MjQpKXtjPTA7YnJlYWsgZX1pZihjPDwyND4+MjQ9PTU5fDAhPSgwfCRjKDI1NSZjKSkpYnJlYWsgZTtsPWM9bCsxfDAsYz0wfGZlW2M+PjBdfWVsc2UgYz0wfXdoaWxl''@;'; + put 'put ''KDApfXdoaWxlKDAhPSgwfCRjKDI1NSZjKSkpO3JldHVybiAwfGZ9ZnVuY3Rpb24gRUoobCxjLGYpe2Y9K2YsX1sobHw9MCk+PjNdPWM9K2MsX1tsKzg+PjNdPWZ9ZnVuY3Rpb24geEoobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG0sdyxBPTAsYj0wO3c9YWUsYWU9YWUrMzJ8MCxtPXcs''@;'; + put 'put ''MD09KDB8czIoMHx0aShsfD0wKSwxMDgwMDYsNykpJiYwIT0oMHxmdW5jdGlvbiBYbGUobCxjLGYpe2Z8PTA7dmFyIEEsdyxiLGsscD0wLG09MDtyZXR1cm4gdz1hZSxhZT1hZSs0OHwwLGI9dyszMnwwLEE9dyxrPTB8SG8obHw9MCxjfD0wKSxsPUErOHwwLGM9QSsyNHwwLGFbYj4+Ml09QSxh''@;'; + put 'put ''W2IrND4+Ml09bCxhW2IrOD4+Ml09QSsxNixhW2IrMTI+PjJdPWMsND09KDB8aWwoayw4ODc4MixiKSk/KChwPStfW2w+PjNdKT4obT0rX1tjPj4zXSkmJihfW2w+PjNdPW0sX1tjPj4zXT1wKSxhW2Y+PjJdPWFbQT4+Ml0sYVtmKzQ+PjJdPWFbQSs0Pj4yXSxhW2YrOD4+Ml09YVtBKzg+PjJd''@;'; + put 'put ''LGFbZisxMj4+Ml09YVtBKzEyPj4yXSxhW2YrMTY+PjJdPWFbQSsxNj4+Ml0sYVtmKzIwPj4yXT1hW0ErMjA+PjJdLGFbZisyND4+Ml09YVtBKzI0Pj4yXSxhW2YrMjg+PjJdPWFbQSsyOD4+Ml0sbD0xKTpsPTAsYWU9dywwfGx9KGwscCxtKSk/KGgwKGwsMTM3NDgzLDI4MCwxKSxhWyhiPTE2''@;'; + put 'put ''KygwfGFbbCsxNj4+Ml0pfDApPj4yXT1hW20+PjJdLGFbYis0Pj4yXT1hW20rND4+Ml0sYVtiKzg+PjJdPWFbbSs4Pj4yXSxhW2IrMTI+PjJdPWFbbSsxMj4+Ml0sYVtiKzE2Pj4yXT1hW20rMTY+PjJdLGFbYisyMD4+Ml09YVttKzIwPj4yXSxhW2IrMjQ+PjJdPWFbbSsyND4+Ml0sYVtiKzI4''@;'; + put 'put ''Pj4yXT1hW20rMjg+PjJdLGZ1bmN0aW9uIEtsZShsLGMpe2N8PTA7dmFyIHAsbSxBLGY9MDthWyhBPTE4MCsoZj0wfGFbKHA9MTYrKGx8PTApfDApPj4yXSl8MCk+PjJdPW09MSsobD0wfGFbQT4+Ml0pfDAsbD0oZj0wfGFbZisxODQ+PjJdKT8wfEJIKGYsbCsyfDAsNCxtKTowfHZyKDgrKGw8''@;'; + put 'put ''PDIpfDApLGFbMTg0KygwfGFbcD4+Ml0pPj4yXT1sLGFbbCsobTw8Mik+PjJdPWMsdWsoYyl9KGMsbCksTUoobCxmLHApKTpBPTQ7ZTpkb3tpZig0PT0oMHxBKSlmb3IobD0wfHlzKGwpOzspe2lmKCFsKWJyZWFrIGU7eEoobCxjLGYscCksbD0wfE1zKGwpfX13aGlsZSgwKTthZT13fWZ1bmN0''@;'; + put 'put ''aW9uIFROKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIG0sQSx3LGssTSxwPTAsYj0wO009YWUsYWU9YWUrNDh8MCxrPU0rOHwwLGI9TSxBPU0rMTZ8MCx3PU0rMTJ8MCxtPTB8TGkobHw9MCw4ODc5OCk7ZG97aWYoMCE9KDB8bSkmJihwPTB8ZmVbbT4+MF0pPDwyND4+MjQhPTApe2lmKDB8Y0wocCY9''@;'; + put 'put ''MjU1KSl7aWYoISgwfHMyKG0sODg4MDQsNCkpKXtjPTA7YnJlYWt9aWYoISgwfHMyKG0sMTA1NTExLDcpKSl7Yz0xO2JyZWFrfWlmKDB8czIobSw4ODgwOSw2KSl7aWYoMiE9KDB8YykpYnJlYWs7Yz1tfWVsc2UgYz1tKzZ8MH1lbHNle2lmKCEoMj09KDB8Yyl8KHArLTQ4fDApPj4+MDwxMCkp''@;'; + put 'put ''YnJlYWs7Yz1tfSgoMHxKdFtjPj4wXSktNDh8MCk+Pj4wPDEwJiYoYVtiPj4yXT13LCgwfGlsKGMsOTk5MzMsYikpPj0xKXx8KGI9MHxUaigpLGI9KDB8aG4oMCkpXmIsYVt3Pj4yXT1iLGFbaz4+Ml09YixvbyhBLDk5OTMzLGspLGtjKGwsODg3OTgsQSkpLGFbZj4+Ml09YVt3Pj4yXSxjPTJ9''@;'; + put 'put ''fXdoaWxlKDApO3JldHVybiBhZT1NLDB8Y31mdW5jdGlvbiBUSihsLGMsZil7dmFyIHAsbTtyZXR1cm4gbHw9MCxjfD0wLGZ8PTAsbT1hZSxhZT1hZSsxNnwwLGFbKHA9bSs0fDApPj4yXT0xLDIhPSgwfChmPTB8VE4obCxmLHApKSkmMCE9KDB8YVs0Njc5Nl0pJiYkcigwLDg4ODE2LG0pLDE9''@;'; + put 'put ''PSgwfGYpJiZmdW5jdGlvbiAkbGUobCxjKXt2YXIgbSxBLGY9MCxwPTAsdz0wLGI9MCxrPTA7Zm9yKEE9Ni4yODMxODUzMDcxNzk1ODYvKG09KygwfChjfD0wKSkpLGY9MHxEdChsfD0wKSxwPTA7Zjspaz0raGEoK3ApKm0sX1soYj0wfGFbMTMyKyh3PTB8YVtmKzE2Pj4yXSk+PjJdKT4+M109''@;'; + put 'put ''ayxfW2IrOD4+M109K0RhKCtwKSptLGZlW3crMTE5Pj4wXT0xLCgwfGFbNDcxMzddKT4yJiZZTihmLGMpLGY9MHx6dChsLGYpLHArPUF9KGwsYyksSWooMHxhW3A+PjJdKSxhZT1tLDB8Zn1mdW5jdGlvbiBBMihsKXtsfD0wO3ZhciBiLGssUixHLEssYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAs''@;'; + put 'put ''TT0wLEQ9MDtLPWFlLGFlPWFlKzgwfDAsYz1LKzI0fDAsTT1LKzMyfDAsYj1LLFI9SysyOHwwLGs9Sys2NHwwLEc9K19bMjMyOTNdO2Rve2lmKDB8YVs0NzEzNF0pe2lmKF9bMjMyOTNdPTcyLHdrKGwpLElOKGwpLCgwfFdsZShsLDEpKTwwKXskcigzLDg4ODY0LGMpO2JyZWFrfVg2KGwsMCks''@;'; + put 'put ''cD0zMjticmVha31EPTB8bmcoMHxMaShsLDg4NTkzKSwwKSxfWzIzMjkzXT0rcE4obCksd2sobCksbT0wfHFsZShsKSx1MmUobCxiLDApLEE9MHxlc2UobCksdz0wfFMxKGwsMCxNKSxjPTB8eGMobCwtMSw4KSxhWzQ2Nzk1XT1jLGY9KDB8Yyk8MDtkb3tpZih3KWYmJihhWzQ2Nzk1XT04KSxw''@;'; + put 'put ''PTExO2Vsc2V7aWYoMCE9KDB8bSkmZil7YVs0Njc5NV09OCxhW00rMTY+PjJdPTIscD0xMTticmVha31pZihhW00rMTY+PjJdPTIsKDB8Yyk8PS0xKXtpZihETihsLG0sQSksejcobCxiKSxJTihsKSxEPDwyND4+MjQpe0xOKGwpO2JyZWFrfUs2KGwpO2JyZWFrfXA9MTF9fXdoaWxlKDApO2lm''@;'; + put 'put ''KDExPT0oMHxwKSl7dz0wfEJBKGwsUiw4ODg5MixrKSxjPTB8YVtSPj4yXTtkb3tpZigoMHxjKTw9MSl7aWYoRE4obCxtLEEpLHo3KGwsYiksRDw8MjQ+PjI0KXtMTihsKTticmVha31LNihsKTticmVha31mb3IocD1EPDwyND4+MjQ9PTAsZj0wOyEoKDB8Zik+PSgwfGMpKTspTUMoYz0wfGFb''@;'; + put 'put ''dysoZjw8Mik+PjJdKSxETihjLG0sQSksejcoYyxiKSx0NChjLDIpLHA/SzYoYyk6TE4oYyksZj1mKzF8MCxjPTB8YVtSPj4yXTswfGZlW2s+PjBdPyhmPTB8dnIoYyksZmVbZj4+MF09MSxjPTB8YVtSPj4yXSk6Zj0wLGFbTSs4Pj4yXT1hWzQ2Nzk1XSxhW00rMjA+PjJdPWYsYVtNKzEyPj4y''@;'; + put 'put ''XT0xLHVXKGMsdyxsLE0pLEZ0KGYpfXdoaWxlKDApO2ZvcihpZyhsKSxJTihsKSxjPTA7ISgoMHxjKT49KDB8YVtSPj4yXSkpOylXTihNPTB8YVt3KyhjPDwyKT4+Ml0pLEhpKE0sMTM3NDgzKSxvaShsLE0pLGM9YysxfDA7RnQodyl9WDYobCxEPDwyND4+MjQ9PTAmMSkscD0zMn13aGlsZSgw''@;'; + put 'put ''KTszMj09KDB8cCkmJihfWzIzMjkzXT1HKSxhZT1LfWZ1bmN0aW9uIHdrKGwpe3ZhciBwLG0sYz0wLGY9MDt0NChsfD0wLDIpLHA9MHxlcyhsLDB8c2kobCwwLDkxMzY4LDApLDIsMiksYz02NTUzNSYoMHxlcyhsLDB8c2kobCwwLDkxMzc0LDApLHAsMikpLHJ0WzE3NisoMHxhWzE2KygwfGRp''@;'; + put 'put ''KGwpKT4+Ml0pPj4xXT1jLHJ0WyhtPTE3NisoYz0wfGFbMTYrKDB8YVtsKzYwPj4yXSk+PjJdKXwwKT4+MV09Zj0oNjU1MzUmKGY9MHxydFttPj4xXSkpPDEwP2Y6MTAsYVs0NzEzN109ZiY9NjU1MzUscnRbYysxNzg+PjFdPSgwfHApPCgwfGYpP3A6ZixmdW5jdGlvbiByc2UobCl7dmFyIHAs''@;'; + put 'put ''Yz0wLGY9MDtmb3IoZj0wfEdvKGx8PTApLGFbNDY3OTZdPTB8c2kobCwxLDEwMjYyMywwKSxwPTB8c2kobCwxLDkwNjYwLDApLGM9MHxEdChsKTtjOylBayhjKSxTSigwfGFbNDY3OTZdLHAsYyxmKSxjPTB8enQobCxjKTtmb3IoZj0wfER0KGwpO2Y7KXtmb3IoYz0wfHcwKGwsZik7YzspcEQo''@;'; + put 'put ''YyksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9fShsKX1mdW5jdGlvbiBJTihsKXtsfD0wO3ZhciBmLHAsbSxjPTA7bT1hZSxhZT1hZSsxMDQwfDAscD1tLGY9bSs4fDA7ZTpkb3tpZigoMHxhWzQ3MTM3XSk+MiYwIT0oMHxhWzQ3MTcxXSkpZm9yKGM9MHxEdChsKTs7KXtpZighYylicmVhayBl''@;'; + put 'put ''O19bcD4+M109NzIqK19bMTYrKDB8YVsxMzIrKDB8YVtjKzE2Pj4yXSk+PjJdKT4+M10sb28oZiwxMDEyMDkscCksVmwoYywwfGFbNDcxNzFdLGYpLGM9MHx6dChsLGMpfX13aGlsZSgwKTthZT1tfWZ1bmN0aW9uIHFsZShsKXt2YXIgYyxmLHA7cD1hZSxhZT1hZSsxNnwwLGY9cCxjPTB8TGko''@;'; + put 'put ''bHw9MCw4OTU3Nyk7ZTpkb3tpZihjKXtzd2l0Y2goMHxmZVtjPj4wXSl7Y2FzZSAwOmw9MTticmVhayBlO2Nhc2UgNzU6aWYoISgwfGppKGMsODk1ODIpKSl7bD0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAxMDk6aWYoISgwfGppKGMsODk1ODUpKSl7bD0xO2JyZWFrIGV9YnJlYWs7Y2FzZSAxMDQ6''@;'; + put 'put ''aWYoISgwfGppKGMsODk1OTEpKSl7bD0yO2JyZWFrIGV9fWw9MHx0aShsKSxhW2Y+PjJdPWMsYVtmKzQ+PjJdPWwsJHIoMCw4OTU5NixmKSxsPTF9ZWxzZSBsPTF9d2hpbGUoMCk7cmV0dXJuIGFlPXAsMHxsfWZ1bmN0aW9uIGVzZShsKXt2YXIgYyxmLHAsbSxBO0E9YWUsYWU9YWUrMzJ8MCxt''@;'; + put 'put ''PUErMTZ8MCxwPUErOHwwLGY9QSxjPTB8TGkobHw9MCw4OTM2MCk7ZTpkb3tpZihjKXtzd2l0Y2goMHxmZVtjPj4wXSl7Y2FzZSAwOmw9MDticmVhayBlO2Nhc2UgOTk6aWYoISgwfGppKGMsODkzNjYpKSl7bD0xO2JyZWFrIGV9YnJlYWs7Y2FzZSAxMTU6aWYoISgwfGppKGMsODkzNzQpKSl7''@;'; + put 'put ''bD0yO2JyZWFrIGV9aWYoISgwfGppKGMsODkzODEpKSl7bD0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAxMDk6aWYoISgwfGppKGMsODkzOTEpKSl7aWYoMHxzaShsLDIsOTI0OTMsMCkpe2w9MzticmVhayBlfWFbZj4+Ml09MHx0aShsKSwkcigwLDg5Mzk1LGYpLCRyKDMsODk0NTgscCksbD0wO2Jy''@;'; + put 'put ''ZWFrIGV9fWw9MHx0aShsKSxhW20+PjJdPWMsYVttKzQ+PjJdPWwsJHIoMCw4OTUxNSxtKSxsPTB9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGFlPUEsMHxsfWZ1bmN0aW9uIEROKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MDtwPShwPTB8TGkobHw9MCw5MTA2MSkpPzB8cjMocCk6MT09KDB8''@;'; + put 'put ''Yyk/MjAwOjEwMCooMHxHbyhsKSl8MCxhWzQ3MTM2XT1wLHA9MHxHSihsLGMpO2Rve2lmKCEoKDB8cCk8MnwoMHxhWzQ3MTM2XSk8MCkpe2lmKGMpe3RzZShsLHAsYyxmLDB8YVs0NzEzN10pO2JyZWFrfU9OKGwscCxmKTticmVha319d2hpbGUoMCl9ZnVuY3Rpb24gTE4obCl7aWcobHw9MCks''@;'; + put 'put ''QUQobCwxKX1mdW5jdGlvbiB0c2UobCxjLGYscCxtKXtwfD0wLG18PTA7dmFyIEQsRyxLLHBlLGdlLGJlLE9lLEE9MCx3PTAsYj0wLGs9MCxNPTA7Zm9yKE9lPWFlLGFlPWFlKzY0fDAscGU9T2UrNDB8MCxHPU9lKzQ4fDAsYmU9T2UrNDR8MCx3PTB8VEoobHw9MCxjfD0wLChLPTI9PSgwfChm''@;'; + put 'put ''fD0wKSkpPzA6MiksYj0wfGZ1bmN0aW9uIHBwKGwpe3ZhciBjLGY7cmV0dXJuIGY9YWUsYWU9YWUrMTZ8MCxjPWYsMD09KDB8KGw9MHxlcyhsfD0wLDB8c2kobCwwLDg5MzA1LDApLDIsMCkpKXwoMHxsKT4yJiYoYVtjPj4yXT04OTMwNSwkcigwLDg5MzE0LGMpLGw9MiksYWU9ZiwwfGx9KGwp''@;'; + put 'put ''LGs9NHxiLGdlPTB8UW4obTw8MiksYVtnZT4+Ml09MHxRbigwfEFyKGM8PDMsbSkpLEE9MHxhWzQ3MTM3XSxtPTE7ISgoMHxtKT49KDB8QSkpOylhW2dlKyhtPDwyKT4+Ml09KDB8YVtnZT4+Ml0pKygoMHxBcihtLGMpKTw8MyksbT1tKzF8MDttPShBPTA9PSgwfHcpKT9rOmIsRD0wfElKKGws''@;'; + put 'put ''YyxHLGYscCxiZSksMSE9KDB8Zik/KE09K01sKGwsMHxzaShsLDAsODkyNzksMCksMCwtMTc5NzY5MzEzNDg2MjMxNTdlMjkyKSxLPyhtPTB8ZnVuY3Rpb24gTFgobCxjLGYscCxtLEEsdyxiLGssTSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsYnw9MCxrfD0wLE09K007dmFyIFp0''@;'; + put 'put ''LGN0LGFuLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MCxTdD0wLGt0PTAsbHQ9MCxFdD0wLGJ0PTAsU249MDthbj1hZSxhZT1hZSs0OHwwLFN0PWFuKzI0fDAsb3Q9YW4rMTZ8MCxXZT1hbis4fDAsbnQ9''@;'; + put 'put ''YW4sY3Q9YW4rMzZ8MCxsdD1hbiszMnwwLHBlPTQmKHd8PTApLGFbKFp0PWFuKzQwfDApPj4yXT0wLGFbY3Q+PjJdPTA7ZTpkb3tpZigwfGFbbCsxNj4+Ml0pe2ZvcihSPTAsRD0wOyEoKDB8Uik+PSgwfGMpKTspe2ZvcihnZT0wfGFbbCsoMjAqUnwwKT4+Ml0sYmU9bCsoMjAqUnwwKSsxNnww''@;'; + put 'put ''LEs9MTshKCgwfEspPj0oMHxnZSkpOylEPUQ8PDI0Pj4yND8xOjAhPStqblsoMHxhW2JlPj4yXSkrKEs8PDIpPj4yXSxLPUsrMXwwLEQmPTE7Uj1SKzF8MH1pZihEPDwyND4+MjQpe2lmKFZlPTAhPSgwfHBlKSl7Sz1wKzR8MDt0OmRve2lmKCgwfEEpPjIpe2lmKCgwfHpOKGwsYyxmLEssbSxE''@;'; + put 'put ''PUErLTF8MCx3LGIsMTUpKTwwKXtEPS0xO2JyZWFrIGV9Zm9yKFI9cCsoRDw8Mil8MCxEPTA7Oyl7aWYoKDB8RCk+PSgwfGMpKWJyZWFrIHQ7X1soMHxhW1I+PjJdKSsoRDw8Myk+PjNdPStfWygwfGFbSz4+Ml0pKyhEPDwzKT4+M10sRD1EKzF8MH19fXdoaWxlKDApO2lmKEhlPTB8YVtwPj4y''@;'; + put 'put ''XSwwPT0oMHxSMmUobCxjLExlPTB8YVtLPj4yXSxjKSkmJjA9PSgwfEZ4KGwsYywuMDEsLjEsTGUsWnQsY3QsbHQpKSl7aWYoKDB8KFJlPTB8YVtsdD4+Ml0pKTwxKXtEPTB8ek4obCxjLGYscCxtLEEsdyxiLGspO2JyZWFrfXQ6ZG97aWYoTT4wKWZvcihwZT0wfGFbWnQ+PjJdLGdlPTB8YVtj''@;'; + put 'put ''dD4+Ml0sYmU9UmUrLTF8MCxHPTAsSz0wOzspe2lmKCgwfEspPj0oMHxSZSkpYnJlYWsgdDtmb3IoRz0oKHFlPU0tRy0rX1tMZSsoYVtwZSsoKEQ9MHxhW2dlKyhLPDwyKT4+Ml0pPDwyKT4+Ml08PDMpPj4zXSsgK19bTGUrKGFbcGUrKEQrLTE8PDIpPj4yXTw8Myk+PjNdKTwwPzA6cWUpK0cs''@;'; + put 'put ''Uj0oMHxLKTwoMHxiZSk/MHxhW2dlKyhLKzE8PDIpPj4yXTpjOyEoKDB8RCk+PSgwfFIpKTspX1soRXQ9TGUrKGFbcGUrKEQ8PDIpPj4yXTw8Myl8MCk+PjNdPStfW0V0Pj4zXStHLEQ9RCsxfDA7Sz1LKzF8MH19d2hpbGUoMCk7Mj09KDB8QSkmJjAhPSgwfHoyZShsLGMsTGUsSGUsK19bMjMy''@;'; + put 'put ''OTRdKSk/KFI9MCxEPS0xKTpidD0zM31lbHNlIFI9MCxEPS0xfWVsc2UgWk4obCxjLEEscCxtKSwwfEZ4KGwsYywuMDEsLjEsMCxadCxjdCxsdCk/KFI9MCxEPS0xKTpidD0zMzt0OmRve2lmKDMzPT0oMHxidCkpe2lmKDE9PSgwfGMpKXtEPTA7YnJlYWsgZX1pZihFdD0wfFFuKGFbbHQ+PjJd''@;'; + put 'put ''PDwyKSwhayl7RD0wO2JyZWFrIGV9c3dpdGNoKDB8Yil7Y2FzZSAyOkQ9MHxqSihsLGMpLGJ0PTQ2O2JyZWFrO2Nhc2UgMTooRD0wfFR5KGwsYykpP2t0PUQ6KCRyKDAsOTMzMTUsbnQpLCRyKDMsOTMzNjQsV2UpLGJ0PTQ3KTticmVhaztjYXNlIDM6RD0wfCQ2KGwsYyksYnQ9NDY7YnJlYWs7''@;'; + put 'put ''ZGVmYXVsdDpidD00N300Nj09KDB8YnQpJiYoRD9rdD1EOmJ0PTQ3KSw0Nz09KDB8YnQpJiYoa3Q9MHx5RChsLGMpKSxvdD0oSGU9KDB8QXIobD1jKy0xfDAsYykpLzJ8MCkrY3wwO246ZG97aWYoIVZlKXtmb3IoRz0xLFI9MDshKCgwfFIpPj0oMHxBKSk7KXtmb3IoSz1wKyhSPDwyKXwwLEQ9''@;'; + put 'put ''MDshKCgwfEQpPj0oMHxjKSk7KUc9KHFlPStlbygrICtfWygwfGFbSz4+Ml0pKyhEPDwzKT4+M10pKT5HP3FlOkcsRD1EKzF8MDtSPVIrMXwwfWZvcihHPTEvRyxSPTA7Oyl7aWYoKDB8Uik+PSgwfEEpKWJyZWFrIG47Zm9yKEs9cCsoUjw8Mil8MCxEPTA7ISgoMHxEKT49KDB8YykpOylfWyhX''@;'; + put 'put ''ZT0oMHxhW0s+PjJdKSsoRDw8Myl8MCk+PjNdPTEwKkcqK19bV2U+PjNdLEQ9RCsxfDA7Uj1SKzF8MH19fXdoaWxlKDApO246ZG97aWYoTT4wKXtPZT0rKDB8SGUpLEQ9MCxHPTAscGU9MDtyOmZvcig7ISgoMHxwZSk+PSgwfGwpKTspZm9yKGdlPXBlKzF8MCxLPUQsUj1nZTs7KXtpZihEPUsr''@;'; + put 'put ''MXwwLCgwfFIpPj0oMHxjKSl7cGU9Z2U7Y29udGludWUgcn1LPUQsRz0ocWU9K0pYKHAsQSxwZSxSKSkvK2puW2t0KyhEPDwyKT4+Ml0rRyxSPVIrMXwwfWZvcihHLz1PZSxEPTA7Oyl7aWYoKDB8RCk+PSgwfG90KSl7RD0wO2JyZWFrIG59am5bKFdlPWt0KyhEPDwyKXwwKT4+Ml09K2puW1dl''@;'; + put 'put ''Pj4yXSpHLEQ9RCsxfDB9fWVsc2UgRD0wfXdoaWxlKDApO2Zvcig7ISgoMHxEKT49KDB8QSkpOylhOChjLDB8YVtwKyhEPDwyKT4+Ml0pLEQ9RCsxfDA7Zm9yKEc9K19bKFI9MHxhW3ArND4+Ml0pPj4zXSxEPTA7ISgoMHxEKT49KDB8YykpOylfWyhXZT1SKyhEPDwzKXwwKT4+M109K19bV2U+''@;'; + put 'put ''PjNdLUcsRD1EKzF8MDtmb3IoV2U9MHxRbihiZT1BPDwyKSxLPTB8UW4oTGU9MHxBcihSZT1jPDwyLEEpKSxEPTA7ISgoMHxEKT49KDB8QSkpOyl7Zm9yKHBlPUsrKCgwfEFyKEQsYykpPDwyKXwwLGFbV2UrKEQ8PDIpPj4yXT1wZSxnZT1wKyhEPDwyKXwwLFI9MDshKCgwfFIpPj0oMHxjKSk7''@;'; + put 'put ''KWpuW3BlKyhSPDwyKT4+Ml09K19bKDB8YVtnZT4+Ml0pKyhSPDwzKT4+M10sUj1SKzF8MDtEPUQrMXwwfWZvcihPZT0rKDB8SGUpLE5rKG90LGt0KSxzSyhvdCxrdCksV0QoYywwLG50PTB8UW4oYzw8MykpLEQ9MCxLPTA7Oyl7aWYoKDB8Syk+PSgwfGwpKXtEPWMsUj0wLEs9MDticmVha31m''@;'; + put 'put ''b3IocGU9Yy1LfDAsRz0wLFI9MTtEPUQrMXwwLCEoKDB8Uik+PSgwfHBlKSk7KV9bKFN0PW50KyhSK0s8PDMpfDApPj4zXT0rX1tTdD4+M10tKHFlPStqbltrdCsoRDw8Mik+PjJdKSxHKz1xZSxSPVIrMXwwO19bKFN0PW50KyhLPDwzKXwwKT4+M109K19bU3Q+PjNdLUcsSz1LKzF8MH1mb3Io''@;'; + put 'put ''OyEoKDB8Uik+PSgwfGMpKTspam5ba3QrKEs8PDIpPj4yXT0rX1tudCsoUjw8Myk+PjNdLFN0PUQrS3wwLEQ9RCstMXwwLFI9UisxfDAsSz1TdDtmb3IoYj0wfFFuKGJlKSxhW2I+PjJdPTB8UW4oTGUpLEQ9MTshKCgwfEQpPj0oMHxBKSk7KWFbYisoRDw8Mik+PjJdPSgwfGFbYj4+Ml0pKygo''@;'; + put 'put ''MHxBcihELGMpKTw8MiksRD1EKzF8MDtmb3IoVmU9MHxRbihSZSksbT0wfFFuKFJlKSx3PTB8UW4ob3Q8PDIpLFI9MHxmSyhrdCxjKSxmPTB8alYoa3QsYywwfGFbWnQ+PjJdLDB8YVtjdD4+Ml0sMHxhW2x0Pj4yXSksSGU9Yis0fDAsSz0wLHFlPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixEPTA7''@;'; + put 'put ''Szw8MjQ+PjI0PT0wJigwfEQpPCgwfGspOyl7Zm9yKFdEKGMsMCxudCksUFYob3Qsa3QsdyksTGU9MCxnZT0wOzspe2lmKCgwfExlKT49KDB8bCkpe0s9MCxwZT1jLGdlPTA7YnJlYWt9Zm9yKFJlPWMtTGUtMXwwLGp5KGMsMCxtKSxLPTA7ISgoMHxLKT49KDB8QSkpOylqeShSZSwram5bKDB8''@;'; + put 'put ''YVsobHQ9V2UrKEs8PDIpfDApPj4yXSkrKExlPDwyKT4+Ml0sVmUpLEdEKFJlLFZlLC0xLCgwfGFbbHQ+PjJdKSsoTGU8PDIpKzR8MCksTmsoUmUsVmUpLHpEKFJlLFZlLG0sbSksSz1LKzF8MDtmb3IodUsoUmUsbSksSz0wOyEoKDB8Syk+PSgwfFJlKSk7KShHPStqblsocGU9bSsoSzw8Mil8''@;'; + put 'put ''MCk+PjJdKT49MzQwMjgyMzQ2NjM4NTI4ODZlMjJ8RzwwJiYoam5bcGU+PjJdPTApLEs9SysxfDA7Zm9yKGJlPUxlKzF8MCxHPTAsSz1nZSxwZT0wO0s9SysxfDAsISgoMHxwZSk+PSgwfFJlKSk7KWpuWyhsdD13KyhLPDwyKXwwKT4+Ml09U249K2puW2x0Pj4yXSoram5bbSsocGU8PDIpPj4y''@;'; + put 'put ''XSxfWyhsdD1udCsoYmUrcGU8PDMpfDApPj4zXT0rX1tsdD4+M10tU24sRys9U24scGU9cGUrMXwwO19bKGdlPW50KyhMZTw8Myl8MCk+PjNdPStfW2dlPj4zXS1HLExlPWJlLGdlPUt9Zm9yKDs7KXtpZigoMHxLKT49KDB8Yykpe0s9MDticmVha31qblt3KyhnZTw8Mik+PjJdPStfW250KyhL''@;'; + put 'put ''PDwzKT4+M10sbHQ9cGUrZ2V8MCxLPUsrMXwwLHBlPXBlKy0xfDAsZ2U9bHR9Zm9yKDs7KXtpZigoMHxLKT49KDB8QSkpe0c9MCxLPTA7YnJlYWt9dGQodyxjLDB8YVtXZSsoSzw8Mik+PjJdLDB8YVtiKyhLPDwyKT4+Ml0pLEs9SysxfDB9Zm9yKDshKCgwfEspPj0oMHxBKSk7KUc9K1g3KGMs''@;'; + put 'put ''MHxhW1dlKyhLPDwyKT4+Ml0sMHxhW2IrKEs8PDIpPj4yXSkrRyxLPUsrMXwwO2ZvcihHPTIqRytPZSxLPTA7ISgoMHxLKT49KDB8QSkpOyl0ZChrdCxjLDB8YVsobHQ9V2UrKEs8PDIpfDApPj4yXSxWZSksRy09K1g3KGMsMHxhW2x0Pj4yXSxWZSksSz1LKzF8MDtmb3IoSz0xJigoMHxEKT4x''@;'; + put 'put ''Jkc+cWV8KFNuPStlbygrKEctcWUpKS8rZW8oKyhxZSsxZS0xMCkpKTwrX1syMzI5NF0pLHBlPTA7ISgoMHxwZSk+PSgwfEEpKTspe2lmKDEhPSgwfHBlKSl7aWYoMHxEayhrdCwwfGFbV2UrKHBlPDwyKT4+Ml0sMHxhW2IrKHBlPDwyKT4+Ml0sYywuMDAxLGMpKXtEPS0xO2JyZWFrIHR9fWVs''@;'; + put 'put ''c2UgQXZlKGYsMHxhW0hlPj4yXSxXZSxBLDEsMTUsRXQsTSk7cGU9cGUrMXwwfXFlPUcsRD1EKzF8MH1pZihGdChFdCksd3ZlKGYpLDB8V2Upe2ZvcihLPTA7ISgoMHxLKT49KDB8QSkpOyl7Zm9yKGdlPVdlKyhLPDwyKXwwLGJlPXArKEs8PDIpfDAscGU9MDshKCgwfHBlKT49KDB8YykpOylf''@;'; + put 'put ''WygwfGFbYmU+PjJdKSsocGU8PDMpPj4zXT0ram5bKDB8YVtnZT4+Ml0pKyhwZTw8Mik+PjJdLHBlPXBlKzF8MDtLPUsrMXwwfUZ0KDB8YVtXZT4+Ml0pLEZ0KFdlKX0wfGImJihGdCgwfGFbYj4+Ml0pLEZ0KGIpKSxGdChWZSksRnQobSksRnQobnQpLEZ0KGt0KSxGdCh3KX19d2hpbGUoMCk7''@;'; + put 'put ''RnQoMHxhW1p0Pj4yXSksRnQoMHxhW2N0Pj4yXSksUiYmKEZ0KDB8YVtSPj4yXSksRnQoUikpfWVsc2UgYnQ9MTB9ZWxzZSBidD0xMH13aGlsZSgwKTtyZXR1cm4gMTA9PSgwfGJ0KSYmKEQ9MHx6TihsLGMsZixwLG0sQSx3LGIsaykpLGFlPWFuLDB8RH0oRCxjLDB8YVtHPj4yXSxnZSwwfGFb''@;'; + put 'put ''YmU+PjJdLDB8YVs0NzEzN10sbSxwLDB8YVs0NzEzNl0sTSksQT0xMik6QT0xNCk6KG09MHx6TihELGMsMHxhW0c+PjJdLGdlLDB8YVtiZT4+Ml0sMHxhWzQ3MTM3XSxtLHAsMHxhWzQ3MTM2XSksQT0xMiksMTI9PSgwfEEpJiYoKDB8bSk8MD8kcigzLDg5Mjg5LHBlKTpBPTE0KTtlOmRve2lm''@;'; + put 'put ''KDE0PT0oMHxBKSlmb3IoQT0wfER0KGwpOzspe2lmKCFBKWJyZWFrIGU7Zm9yKHc9MHxhWzEyMCsoaz0wfGFbQSsxNj4+Ml0pPj4yXSxiPTB8YVs0NzEzN10saz1rKzEzMnwwLG09MDshKCgwfG0pPj0oMHxiKSk7KV9bKDB8YVtrPj4yXSkrKG08PDMpPj4zXT0rX1soMHxhW2dlKyhtPDwyKT4+''@;'; + put 'put ''Ml0pKyh3PDwzKT4+M10sbT1tKzF8MDtBPTB8enQobCxBKX19d2hpbGUoMCk7RlgoRCksRnQoMHxhW2dlPj4yXSksRnQoZ2UpLEZ0KDB8YVtiZT4+Ml0pLGFlPU9lfWZ1bmN0aW9uIE9OKGwsYyxmKXt2YXIgcCxBO3N3aXRjaChsfD0wLGN8PTAsQT1hZSxhZT1hZSs0OHwwLHA9QSwwfChmfD0w''@;'; + put 'put ''KSl7Y2FzZSAyOiFmdW5jdGlvbiBYYyhsLGMpe3ZhciBwLEEsdyxiLGY9MCxtPTA7Zm9yKGI9YWUsYWU9YWUrMTZ8MCx3PTB8ZnVuY3Rpb24gY3ZlKGwsYyl7dmFyIGYscDtyZXR1cm4gcD0wfGFbOCsobHw9MCk+PjJdLFVYKGwsY3w9MCksZj0wfElWKGwsYyksUVgobCxjLHApLDB8Zn0oQT0w''@;'; + put 'put ''fElKKGx8PTAsY3w9MCxiLDAsMiwwKSxjKSxwPWwrMTZ8MCxsPTA7ISgoMHxsKT49KDB8YykpOyl7Zm9yKG09dysobDw8Mil8MCxmPTA7KDB8ZikhPSgwfGMpOylfWygwfGFbKDB8YVsxNjArKDB8YVtwPj4yXSk+PjJdKSsobDw8Mik+PjJdKSsoZjw8Myk+PjNdPSsoMHxhWygwfGFbbT4+Ml0p''@;'; + put 'put ''KyhmPDwyKT4+Ml0pLGY9ZisxfDA7bD1sKzF8MH1GdCgwfGFbdz4+Ml0pLEZ0KHcpLEZYKEEpLGFlPWJ9KGwsYyk7YnJlYWs7Y2FzZSAxOjB8ZnVuY3Rpb24gRFgobCxjKXtsfD0wO3ZhciB3LGIsayxmPTAscD0wLG09MCxBPTAsTT0wO2ZvcihiPTB8Y2coY3w9MCxjLDApLGs9MHxjZyhjLGMs''@;'; + put 'put ''MCkscD0wfER0KGwpO3A7KXtmb3IoZj0wfFNzKGwscCk7ZjspKDB8KG09KDB8YVthWygzPT0oMHwoQT0zJmFbZj4+Ml0pKT9mOmYrNDh8MCkrNDA+PjJdPj4yXSk+Pj40KSkhPSgwfChBPSgwfGFbYVsoMj09KDB8QSk/ZjpmKy00OHwwKSs0MD4+Ml0+PjJdKT4+PjQpKSYmKF9bKDB8YVtiKyhB''@;'; + put 'put ''PDwyKT4+Ml0pKyhtPDwzKT4+M109TT0tMS8rX1sxMzYrKDB8YVtmKzE2Pj4yXSk+PjNdLF9bKDB8YVtiKyhtPDwyKT4+Ml0pKyhBPDwzKT4+M109TSksZj0wfEhzKGwsZixwKTtwPTB8enQobCxwKX13PTB8Z1YoYyxiLGspO2U6ZG97aWYoMHx3KWZvcihtPWwrMTZ8MCxwPTA7Oyl7aWYoKDB8''@;'; + put 'put ''cCk+PSgwfGMpKWJyZWFrIGU7Zm9yKEE9aysocDw8Mil8MCxmPTA7KDB8ZikhPSgwfGMpOylfWygwfGFbKDB8YVsxNjArKDB8YVttPj4yXSk+PjJdKSsocDw8Mik+PjJdKSsoZjw8Myk+PjNdPStfWygwfGFbaysoZjw8Mik+PjJdKSsoZjw8Myk+PjNdKyArX1sobD0wfGFbQT4+Ml0pKyhwPDwz''@;'; + put 'put ''KT4+M10rLTIqK19bbCsoZjw8Myk+PjNdLGY9ZisxfDA7cD1wKzF8MH19d2hpbGUoMCk7cmV0dXJuIEI3KGIpLEI3KGspLDB8d30obCxjKXx8KGFbcD4+Ml09MHx0aShsKSwkcigwLDg4OTAyLHApLCRyKDMsOTMzNjQsQSs4fDApLCRyKDMsODg5NTQsQSsxNnwwKSwkcigzLDg5MDI2LEErMjR8''@;'; + put 'put ''MCksSkoobCxjKSk7YnJlYWs7ZGVmYXVsdDpKSihsLGMpLDM9PSgwfGYpJiZmdW5jdGlvbiBSNyhsKXt2YXIgbSxjPTAsZj0wLHA9MCxBPTAsdz0wLGI9MDtmb3IobT0xNisobHw9MCl8MCxmPTB8RHQobCk7Zjspe2ZvcihjPTB8dzAobCxmKTtjOykoMHwocD0oMHxhW2FbKDM9PSgwfChBPTMm''@;'; + put 'put ''YVtjPj4yXSkpP2M6Yys0OHwwKSs0MD4+Ml0+PjJdKT4+PjQpKSE9KDB8KEE9KDB8YVthWygyPT0oMHxBKT9jOmMrLTQ4fDApKzQwPj4yXT4+Ml0pPj4+NCkpJiYoX1soMHxhWyh3PTB8YVsxNjArKDB8YVttPj4yXSk+PjJdKSsoQTw8Mik+PjJdKSsocDw8Myk+PjNdPWI9K19bMTM2KygwfGFb''@;'; + put 'put ''YysxNj4+Ml0pPj4zXSxfWygwfGFbdysocDw8Mik+PjJdKSsoQTw8Myk+PjNdPWIpLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfX0obCl9KGZ1bmN0aW9uIHY5ZShsLGMpe3ZhciBwLGY9MDtwPWFlLGFlPWFlKzE2fDAsZj1wLGM9MHxUSihsfD0wLGN8PTAsMik7ZTpkb3tpZigxIT0oMHxjKSlm''@;'; + put 'put ''b3IoYVs0Njc5N118Y3x8KCRyKDAsOTAxOTIsZiksYVs0Njc5N109MSksZj1sKzE2fDAsYz0wOzspe2lmKCEobD0wfGFbKDB8YVsxNTIrKDB8YVtmPj4yXSk+PjJdKSsoYzw8Mik+PjJdKSlicmVhayBlOzB8ZmVbMTE5KygwfGFbbCsxNj4+Ml0pPj4wXXx8ZnNlKGwsMSksYz1jKzF8MH19d2hp''@;'; + put 'put ''bGUoMCk7YWU9cH0pKGwsYyksZnVuY3Rpb24gUDcobCxjKXtjfD0wO3ZhciBrLEQsUixLLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MCxwZT0wO2ZvcihLPWFlLGFlPWFlKzk2fDAsRD1LLGs9MHxhWzE2NCsobT0wfGFbKFI9MTYrKGx8PTApfDApPj4yXSk+PjJdLG09MHxhW20rMTYwPj4y''@;'; + put 'put ''XSxNPTA7ISgoMHxNKT49KDB8YykpOyl7Zm9yKHc9bSsoTTw8Mil8MCxiPWsrKE08PDIpfDAscD0wOygwfHApIT0oMHxNKTspQT0xLygoQT0rX1soMHxhW3c+PjJdKSsocDw8Myk+PjNdKSpBKSwoZj0wfEthKGwsMHxhWyhmPTB8YVsxNTIrKDB8YVtSPj4yXSk+PjJdKSsoTTw8Mik+PjJdLDB8''@;'; + put 'put ''YVtmKyhwPDwyKT4+Ml0sMCwwKSkmJihBKj0rX1sxMjgrKDB8YVtmKzE2Pj4yXSk+PjNdKSxfWygwfGFbaysocDw8Mik+PjJdKSsoTTw8Myk+PjNdPUEsX1soMHxhW2I+PjJdKSsocDw8Myk+PjNdPUEscD1wKzF8MDtNPU0rMXwwfWZvcihsPTB8YVs0NzEzN10scD0wOygwfHApPCgwfGMpOyl7''@;'; + put 'put ''Zm9yKGY9MDshKCgwfGYpPj0oMHxsKSk7KV9bKDB8YVsoMHxhWzE2OCsoMHxhW1I+PjJdKT4+Ml0pKyhwPDwyKT4+Ml0pKyhmPDwzKT4+M109MCxmPWYrMXwwO3A9cCsxfDB9Zm9yKHc9MDtmPTB8YVsoMHxhWzE1MisoMHxhW1I+PjJdKT4+Ml0pKyh3PDwyKT4+Ml07KXtmb3IobD1mKzE2fDAs''@;'; + put 'put ''Zj0wOyEoKDB8Zik+PSgwfGMpKTspe2U6ZG97aWYoKDB8dykhPSgwfGYpKWZvcihBPSt6SigwfGFbMTMyKygwfGFbbD4+Ml0pPj4yXSwwfGFbMTMyKygwfGFbMTYrKDB8YVsoMHxhWzE1MisoMHxhW1I+PjJdKT4+Ml0pKyhmPDwyKT4+Ml0pPj4yXSk+PjJdLEQpLG09MHxhWzQ3MTM3XSxBPTEv''@;'; + put 'put ''QSxwPTA7Oyl7aWYoKDB8cCk+PSgwfG0pKWJyZWFrIGU7X1soMHxhWygwfGFbKDB8YVsxNzIrKE09MHxhW1I+PjJdKT4+Ml0pKyh3PDwyKT4+Ml0pKyhmPDwyKT4+Ml0pKyhwPDwzKT4+M109cGU9KChwZT0rX1tEKyhwPDwzKT4+M10pLStfWygwfGFbKDB8YVtNKzE2MD4+Ml0pKyh3PDwyKT4+''@;'; + put 'put ''Ml0pKyhmPDwzKT4+M10qcGUqQSkqK19bKDB8YVsoMHxhW00rMTY0Pj4yXSkrKHc8PDIpPj4yXSkrKGY8PDMpPj4zXSxfWyhNPSgwfGFbKDB8YVtNKzE2OD4+Ml0pKyh3PDwyKT4+Ml0pKyhwPDwzKXwwKT4+M109K19bTT4+M10rcGUscD1wKzF8MH19d2hpbGUoMCk7Zj1mKzF8MH13PXcrMXww''@;'; + put 'put ''fWFlPUt9KGwsYyksZnVuY3Rpb24gVUoobCxjKXtsfD0wLGN8PTA7dmFyIEEsdyxiLGY9MCxrPTA7Zm9yKHc9YWUsYWU9YWUrMzJ8MCxBPXcrMjR8MCxfWzIzMjE2XT0oYj0rX1syMzI5NF0pKmI7Zj0wfEE5ZShsLGMpOyliRChsLGMsZik7KDB8KGM9MHxhWzE1NisoMHxhWyhjPWwrMTZ8MCk+''@;'; + put 'put ''PjJdKT4+Ml0pKT09KDB8YVs0NzEzNl0pJiYoaz0wfHRpKGwpLGFbQT4+Ml09YyxhW0ErND4+Ml09aywkcigwLDkwMzIwLEEpKSxhZT13fShsLGMpLGFlPUF9ZnVuY3Rpb24gSUoobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgcWUsbnQsb3Qsa3QsbHQsRXQsdz0w''@;'; + put 'put ''LGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAsV2U9MCxTdD0wLFp0PTAsY3Q9MDtmb3Iodz0wfFYzKGx8PTApLEV0PTB8ZnVuY3Rpb24gZGFlKCl7dmFyIGwscCxjPTAsZj0wO2Y9MjA3NzYscD0zNisoYz1sPTB8UW4o''@;'; + put 'put ''NDApKXwwO2Rve2FbYz4+Ml09YVtmPj4yXSxjPWMrNHwwLGY9Zis0fDB9d2hpbGUoKDB8Yyk8KDB8cCkpO3JldHVybiBhW2wrMzY+PjJdPTAsMHxpcyhsLDB8YVs0NTgxXSl9KCksMj09KDB8bSk/KGI9MCxTdD0wKTooU3Q9MHxzaShsLDIsOTI0OTMsMCksYj0wIT0oMHxhWzQ3MTc0XSkmMSxT''@;'; + put 'put ''dD0wIT0oMHxTdCkpLG50PTM9PSgxfHApLGt0PTB8UW4oMjAqY3wwKSxsdD0wfFFuKGM8PDIpLE09MHxRbihrPSh3PDwxKStjPDwyKSxtPShxZT1udHxTdCk/MHxRbihrKTowLHc9KG90PTAhPSgwfGIpKT8wfFFuKGspOjAsYj1udD8wfFFuKGspOjAsaz0wLEhlPTB8RHQobCksVmU9MDtIZTsp''@;'; + put 'put ''e2lmKG1hZShFdCksKDB8YVsxMjArKDB8YVtIZSsxNj4+Ml0pPj4yXSkhPSgwfFZlKSl7V2U9MTI7YnJlYWt9Zm9yKGFbbHQrKFZlPDwyKT4+Ml09SGUsYVsoT2U9a3QrKDIwKlZlfDApKzR8MCk+PjJdPU0sYVsoTGU9a3QrKDIwKlZlfDApKzh8MCk+PjJdPXFlP206MCxhWyhSZT1rdCsoMjAq''@;'; + put 'put ''VmV8MCkrMTJ8MCk+PjJdPW90P3c6MCxhW2t0KygyMCpWZXwwKSsxNj4+Ml09bnQ/YjowLHBlPTEsYmU9MHxTcyhsLEhlKSxnZT0xLEs9ayxNPU0rNHwwLG09cWU/bSs0fDA6bSx3PW90P3crNHwwOncsYj1udD9iKzR8MDpiO2JlOyl7RD0zJmFbYmU+PjJdLEc9YmUrLTQ4fDAsaz1iZSs0OHww''@;'; + put 'put ''O2Rve2lmKCgwfGFbKDI9PSgwfEQpP2JlOkcpKzQwPj4yXSk9PSgwfGFbKDM9PSgwfEQpP2JlOmspKzQwPj4yXSkpRD1wZSxHPWdlLGs9SztlbHNle2lmKCgwfChEPTB8bnNlKEV0LGJlLHBlKSkpIT0oMHxwZSkpe2lmKG90JiYoam5bKEc9KDB8YVtSZT4+Ml0pKyhEPDwyKXwwKT4+Ml09K19b''@;'; + put 'put ''MTI4KygwfGFbYmUrMTY+PjJdKT4+M10rICtqbltHPj4yXSksIVN0KXtEPXBlLEc9Z2Usaz1LO2JyZWFrfWpuWyhEPSgwfGFbTGU+PjJdKSsoRDw8Mil8MCk+PjJdPShadD0rX1sxMzYrKDB8YVtiZSsxNj4+Ml0pPj4zXSk+KFI9KygwfH5+K2puW0Q+PjJdKSk/WnQ6UixEPXBlLEc9Z2Usaz1L''@;'; + put 'put ''O2JyZWFrfUs9SysxfDAsRD1wZSsxfDAscGU9TSs0fDAsYVtNPj4yXT1hWzEyMCsoMHxhWzE2KygwfGFbKCgwfGFbKGs9Mz09KDB8KGN0PTMmYVtiZT4+Ml0pKT9iZTprKSs0MD4+Ml0pPT0oMHxIZSk/Mj09KDB8Y3QpP2JlOkc6aykrNDA+PjJdKT4+Ml0pPj4yXSxvdCYmKGpuW3c+PjJdPStf''@;'; + put 'put ''WzEyOCsoMHxhW2JlKzE2Pj4yXSk+PjNdLHc9dys0fDApLFN0PyhrPW0rNHwwLGpuW20+PjJdPStfWzEzNisoMHxhW2JlKzE2Pj4yXSk+PjNdLG50PyhtPWssV2U9MjcpOm09ayk6bnQmJihqblttPj4yXT0xLG09bSs0fDAsV2U9MjcpLDI3PT0oMHxXZSkmJihXZT0wLFI9MCE9KDB8KGs9MHxM''@;'; + put 'put ''aShiZSwxMDE1NTkpKSkmJjA9PSgwfHMyKGssMTM1NzA5LDQpKT8wOigwfEhlKT09KDB8YVsoMj09KDMmYVtiZT4+Ml18MCk/YmU6RykrNDA+PjJdKT8xOi0xLGpuW2I+PjJdPVIsYj1iKzR8MCksRz1nZSsxfDAsaz1LLE09cGV9fXdoaWxlKDApO3BlPUQsYmU9MHxIcyhsLGJlLEhlKSxnZT1H''@;'; + put 'put ''LEs9a31hW2t0KygyMCpWZXwwKT4+Ml09Z2UsYVthW09lPj4yXT4+Ml09VmUsaz1LLEhlPTB8enQobCxIZSksVmU9VmUrMXwwfTEyPT0oMHxXZSkmJlByKDg5MTAzLDg5MTE4LDgxOSw4OTEzMCksbnQmJmZ1bmN0aW9uIGxnKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxB''@;'; + put 'put ''PTA7Zm9yKG09MDs7KXtpZigoMHxtKT49KDB8Yykpe209MDticmVha31mZVsxNTcrKEE9MHxhWzE2KygwfGFbcCsobTw8Mik+PjJdKT4+Ml0pPj4wXT0wLGZlW0ErMTU4Pj4wXT0wLG09bSsxfDB9Zm9yKDshKCgwfG0pPj0oMHxjKSk7KTB8ZmVbMTU3KygwfGFbMTYrKDB8YVtwKyhtPDwyKT4+''@;'; + put 'put ''Ml0pPj4yXSk+PjBdfHxuNChsLG0sZixwKSxtPW0rMXwwfShrdCxjLHAsbHQpLEQ9KDB8aykvMnwwO2U6ZG97aWYoKDB8RCkhPSgwfFYzKGwpKSlmb3Ioaz0oRDw8MSkrYzw8MixiPTB8VjAoMHxhW2t0KzQ+PjJdLGspLFN0JiYobT0wfFYwKDB8YVtrdCs4Pj4yXSxrKSksb3Q/KE09MCx3PTB8''@;'; + put 'put ''VjAoMHxhW2t0KzEyPj4yXSxrKSk6TT0wOzspe2lmKCgwfE0pPj0oMHxjKSlicmVhayBlO2s9MHxhW2t0KygyMCpNfDApPj4yXSxhW2t0KygyMCpNfDApKzQ+PjJdPWIsU3QmJihhW2t0KygyMCpNfDApKzg+PjJdPW0sbT1tKyhrPDwyKXwwKSxvdCYmKGFba3QrKDIwKk18MCkrMTI+PjJdPXcs''@;'; + put 'put ''dz13KyhrPDwyKXwwKSxNPU0rMXwwLGI9Yisoazw8Mil8MH19d2hpbGUoMCk7cmV0dXJuIGFbZj4+Ml09RCxBP2FbQT4+Ml09bHQ6RnQobHQpLGZ1bmN0aW9uIHl5KGwpe3ZhciBjLGY9MDtmb3IoYz0wfGFbNCsobHw9MCk+PjJdLE5sKGwpLGw9MHxhW2MrMzY+PjJdO2w7KWY9MHxhW2w+PjJd''@;'; + put 'put ''LEZ0KGwpLGw9ZjtGdChjKX0oRXQpLDB8a3R9ZnVuY3Rpb24gbnNlKGwsYyxmKXt2YXIgcCxtPTA7cmV0dXJuIDB8ZnVuY3Rpb24gdmFlKGwsYyxmLHApe3ZhciBtLEE7cmV0dXJuIGx8PTAsZnw9MCxwfD0wLG09YWUsYWU9YWUrMzJ8MCxhWyhBPW0pKzg+PjJdPWN8PTAsYVtBKzEyPj4yXT1m''@;'; + put 'put ''LGFbQSsxNj4+Ml09cCxwPTB8YVsxNisoMHxtaVs2MyZhW2w+PjJdXShsLEEsMSkpPj4yXSxhZT1tLDB8cH0obHw9MCwobT0oMHwocD0wfGFbMTIwKygwfGFbMTYrKDB8YVsoMz09KDB8KG09MyZhWyhjfD0wKT4+Ml0pKT9jOmMrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPigwfChjPTB8YVsx''@;'; + put 'put ''MjArKDB8YVsxNisoMHxhWygyPT0oMHxtKT9jOmMrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKSk/YzpwLG0/cDpjLGZ8PTApfWZ1bmN0aW9uIG40KGwsYyxmLHApe2x8PTAsZnw9MDt2YXIgTSxELFIsSyxtPTAsQT0wLHc9MCxiPTAsaz0wLEc9MDtmZVsxNTcrKGs9MHxhWyhLPTE2KygwfGFb''@;'; + put 'put ''KHB8PTApKygoY3w9MCk8PDIpPj4yXSl8MCk+PjJdKT4+MF09MSxmZVtrKzE1OD4+MF09MSxrPWwrKDIwKmN8MCl8MCxNPWwrKDIwKmN8MCkrMTZ8MCxEPWwrKDIwKmN8MCkrNHwwLFI9Mz09KDB8Zik/LTE6MSxiPTE7ZTpmb3IoOzspe2lmKCgwfGIpPj0oMHxhW2s+PjJdKSl7bT0xNDticmVh''@;'; + put 'put ''a31tPSgwfGFbTT4+Ml0pKyhiPDwyKXwwO2Rve2lmKDEhPStqblttPj4yXSl7aWYoISgwfGZlWzE1OCsoQT0wfGFbMTYrKDB8YVtwKygoRz0wfGFbKDB8YVtEPj4yXSkrKGI8PDIpPj4yXSk8PDIpPj4yXSk+PjJdKT4+MF0pKXtpZigwfGZlW0ErMTU3Pj4wXSlicmVhaztuNChsLEcsZixwKTti''@;'; + put 'put ''cmVha31mb3Ioam5bbT4+Ml09UixBPWwrKDIwKkd8MCkrNHwwLHc9MHxhW2wrKDIwKkd8MCk+PjJdLG09MTs7KXtpZigoMHxtKT49KDB8dykpe209OTticmVhayBlfWlmKCgwfGFbKDB8YVtBPj4yXSkrKG08PDIpPj4yXSk9PSgwfGMpKWJyZWFrO209bSsxfDB9am5bKDB8YVtsKygyMCpHfDAp''@;'; + put 'put ''KzE2Pj4yXSkrKG08PDIpPj4yXT0tMX19d2hpbGUoMCk7Yj1iKzF8MH1pZig5PT0oMHxtKSlQcig4OTE0NCw4OTExOCw3MjEsODkxNjQpO2Vsc2UgaWYoMTQ9PSgwfG0pKXJldHVybiB2b2lkKGZlWzE1OCsoMHxhW0s+PjJdKT4+MF09MCl9ZnVuY3Rpb24gcEQobCl7dmFyIGM7aDAobHw9MCwx''@;'; + put 'put ''Mzc0NjAsMTc2LDEpLEw3KGwpLGM9K01sKGwsMHxhWzQ3MTc0XSwxLDEpLF9bMTI4KygwfGFbbCsxNj4+Ml0pPj4zXT1jfWZ1bmN0aW9uIFJOKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIGIscD0wLG09MCxBPTAsdz0wLGs9MDtpZihiPWFlLGFlPWFlKzE2fDAscD1iLHc9KEE9MHxydFsxNjgrKDB8''@;'; + put 'put ''YVsobT0xNisoY3w9MCl8MCk+PjJdKT4+MV0pPDwxNj4+MTYsQTw8MTY+PjE2IT0xJjA9PSgwfGZlWzE5NDk1NF0pKXtmb3IoQT0wfFFuKHc8PDIpLHA9MDshKCgwfHApPj0oMHx3KSk7KWFbQSsocDw8Mik+PjJdPWMsYz0wfGFbMTcyKygwfGFbYysxNj4+Ml0pPj4yXSxwPXArMXwwO2ZvcihL''@;'; + put 'put ''SShsLEEsMCx3LGs9KygwfGYpLGssMTc3OTIpLGM9MDshKCgwfGMpPj0oMHx3KSk7KTB8YVs5NisoMHxhWyhtPTE2KyhwPTB8YVtBKyhjPDwyKT4+Ml0pfDApPj4yXSk+PjJdJiZlNChmPTB8Y3IoMHxhWygzPT0oMyZhW3A+PjJdfDApP3A6cCs0OHwwKSs0MD4+Ml0pLDB8YVs5NisoMHxhW20+''@;'; + put 'put ''PjJdKT4+Ml0pLHNOKHApLGM9YysxfDA7RnQoQSl9ZWxzZSBhW3A+PjJdPWMsS0kobCxwLDAsMSxrPSsoMHxmKSxrLDE3NzkyKSwwfGFbOTYrKDB8YVttPj4yXSk+PjJdJiZlNCh3PTB8Y3IoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pLDB8YVs5NisoMHxhW20+PjJd''@;'; + put 'put ''KT4+Ml0pLHNOKGMpO2FlPWJ9ZnVuY3Rpb24gbUQobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBWZSxxZSxudCxvdCxTdCxTbixwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsV2U9MCxrdD0wLGx0''@;'; + put 'put ''PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxhbj0wO1NuPWFlLGFlPWFlKzM4NHwwLGJ0PVNuKzM2OHwwLGFuPVNuKzExMnwwLEE9U24rMzJ8MCxHPVNuKzMzNnwwLGx0PVNuKzMyMHwwLEV0PVNuKzMwNHwwLFp0PVNuKzI4OHwwLGN0PVNuKzI3MnwwLG09U24rMjU2fDAsb3Q9U24rMjQwfDAsU3Q9''@;'; + put 'put ''U24rMjI0fDAsa3Q9U24rMjA4fDAscGU9U24rMTkyfDAsZ2U9U24rMTc2fDAsYmU9U24rMTYwfDAsSGU9U24rMTQ0fDAsVmU9U24rMTI4fDAscWU9U24rOTZ8MCxudD1TbisxNnwwLFdlPVNuO2U6ZG97c3dpdGNoKDB8JDUobCkpe2Nhc2UgMzpjYXNlIDE6cD0wfHZyKDgpLG09MHxhWzEyKyhs''@;'; + put 'put ''PTB8YVsoSGU9bCsxNnwwKT4+Ml0pPj4yXTtkb3tpZihmPDwyND4+MjQpe2lmKDIwNDgmYVttKzQwPj4yXSl7Z0ooRyxtKSxMZT0rX1tHKzg+PjNdLFI9K19bRysxNj4+M10sUmU9K19bRysyND4+M10sX1tBPj4zXT1EPStfW0c+PjNdLF9bQSs4Pj4zXT1MZSxfW0ErMTY+PjNdPVIsX1tBKzI0''@;'; + put 'put ''Pj4zXT1MZSxfW0ErMzI+PjNdPVIsX1tBKzQwPj4zXT1SZSxfW0ErNDg+PjNdPUQsX1tBKzU2Pj4zXT1SZSxSZT0wLGw9NCxmPTAsRD0wLFI9MDticmVha31MZT0tLjUqKFJlPStfW2wrODA+PjNdKSxfW0E+PjNdPUQ9LShSPStfW2wrODg+PjNdKSxfW0ErOD4+M109TGUsX1tBKzE2Pj4zXT1S''@;'; + put 'put ''LF9bQSsyND4+M109TGUsUmUqPS41LF9bQSszMj4+M109UixfW0ErNDA+PjNdPVJlLF9bQSs0OD4+M109RCxfW0ErNTY+PjNdPVJlLFJlPTAsbD00LGY9MCxEPTAsUj0wO2JyZWFrfWlmKCgwfChsPTB8YVttKzg+PjJdKSk+Mil7UmU9MCxBPTB8YVttKzQ0Pj4yXSxmPTAsRD0ram5bYz4+Ml0s''@;'; + put 'put ''Uj0ram5bYys0Pj4yXTticmVha31SZT0uMDEqK3FjKCksbD04LEE9MCxmPTEsRD0wLFI9MDticmVha313aGlsZSgwKTtmb3IoYVtwKzQ+PjJdPWwsRz0wfHZyKGw8PDQpLGFbcD4+Ml09RyxLPTEvKygwfGwpLHBlPWMrOHwwLGdlPWMrNHwwLGJlPTQ9PSgwfGwpLE9lPS1ELExlPS1SLG09MDs7''@;'; + put 'put ''KXtpZigoMHxsKTw9KDB8bSkpYnJlYWsgZTtkb3tpZihmKWI9K2hhKCsodz02LjI4MzE4NTMwNzE3OTU4NiorKDB8bSkqSytSZSkpLHc9K0RhKCt3KSwwfGZlW3BlPj4wXT8oaz0oK19bODArKGFuPTB8YVtIZT4+Ml0pPj4zXSsgK2puW2dlPj4yXSkqdyx3PSgrX1thbis5Nj4+M10rICtfW2Fu''@;'; + put 'put ''Kzg4Pj4zXSsgK2puW2M+PjJdKSpiKTooaz13KitqbltnZT4+Ml0qK19bODArKGFuPTB8YVtIZT4+Ml0pPj4zXSx3PWIqK2puW2M+PjJdKigrX1thbis5Nj4+M10rICtfW2FuKzg4Pj4zXSkpLE09LjUqdyx3PS41Kms7ZWxzZXtpZighKDB8ZmVbcGU+PjBdKSl7TT0rX1tBKyhtPDw0KT4+M10q''@;'; + put 'put ''RCx3PStfW0ErKG08PDQpKzg+PjNdKlI7YnJlYWt9aWYoIWJlKXtNPStfW0ErKG08PDQpPj4zXSxNKj1ELyhrPStEMCgrKCh3PStfW0ErKG08PDQpKzg+PjNdKSp3K00qTSkpKSsxLHcqPVIvaysxO2JyZWFrfXN3aXRjaCgwfG0pe2Nhc2UgMDpiPVIsdz1EO2JyZWFrO2Nhc2UgMTpiPVIsdz1P''@;'; + put 'put ''ZTticmVhaztjYXNlIDI6Yj1MZSx3PU9lO2JyZWFrO2Nhc2UgMzpiPUxlLHc9RDticmVhaztkZWZhdWx0OmI9MCx3PTB9TT0rX1tBKyhtPDw0KT4+M10rdyx3PStfW0ErKG08PDQpKzg+PjNdK2J9fXdoaWxlKDApO19bRysoKGFuPWwtbS0xfDApPDw0KT4+M109K19bMTYrKGJ0PTB8YVtIZT4+''@;'; + put 'put ''Ml0pPj4zXStNLF9bRysoYW48PDQpKzg+PjNdPStfW2J0KzI0Pj4zXSt3LG09bSsxfDB9Y2FzZSAyOmlmKHc9K19bMTYrKHA9MHxhWzEyKygwfGFbKFdlPWwrMTZ8MCk+PjJdKT4+Ml0pPj4zXSxNPStfW3ArMjQ+PjNdLGI9K19bcCszMj4+M10saz0rX1twKzQwPj4zXSxwPTB8dnIoOCksYVtw''@;'; + put 'put ''KzQ+PjJdPTQsbD0wfHZyKDY0KSxhW3A+PjJdPWwsYVthbj4+Ml09YVsoV2U9MTYrKDB8YVtXZT4+Ml0pfDApPj4yXSxhW2FuKzQ+PjJdPWFbV2UrND4+Ml0sYVthbis4Pj4yXT1hW1dlKzg+PjJdLGFbYW4rMTI+PjJdPWFbV2UrMTI+PjJdLDB8ZmVbYys4Pj4wXSl7UmU9dy0ram5bYz4+Ml0s''@;'; + put 'put ''TGU9TS0ram5bKGt0PWMrNHwwKT4+Ml0sYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxzZyhsdCxSZSxMZSxidCksYVtsPj4yXT1hW2x0Pj4yXSxhW2wrND4+Ml09YVtsdCs0Pj4yXSxh''@;'; + put 'put ''W2wrOD4+Ml09YVtsdCs4Pj4yXSxhW2wrMTI+PjJdPWFbbHQrMTI+PjJdLGx0PTE2KygwfGFbcD4+Ml0pfDAsTGU9dy0ram5bYz4+Ml0sUmU9aysgK2puW2t0Pj4yXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+''@;'; + put 'put ''PjJdPWFbYW4rMTI+PjJdLHNnKEV0LExlLFJlLGJ0KSxhW2x0Pj4yXT1hW0V0Pj4yXSxhW2x0KzQ+PjJdPWFbRXQrND4+Ml0sYVtsdCs4Pj4yXT1hW0V0Kzg+PjJdLGFbbHQrMTI+PjJdPWFbRXQrMTI+PjJdLEV0PTMyKygwfGFbcD4+Ml0pfDAsUmU9YisgK2puW2M+PjJdLExlPWsrICtqbltr''@;'; + put 'put ''dD4+Ml0sYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxzZyhadCxSZSxMZSxidCksYVtFdD4+Ml09YVtadD4+Ml0sYVtFdCs0Pj4yXT1hW1p0KzQ+PjJdLGFbRXQrOD4+Ml09YVtadCs4''@;'; + put 'put ''Pj4yXSxhW0V0KzEyPj4yXT1hW1p0KzEyPj4yXSxadD00OCsoMHxhW3A+PjJdKXwwLExlPWIrICtqbltjPj4yXSxSZT1NLStqbltrdD4+Ml0sYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4y''@;'; + put 'put ''XSxzZyhjdCxMZSxSZSxidCksYVtadD4+Ml09YVtjdD4+Ml0sYVtadCs0Pj4yXT1hW2N0KzQ+PjJdLGFbWnQrOD4+Ml09YVtjdCs4Pj4yXSxhW1p0KzEyPj4yXT1hW2N0KzEyPj4yXTticmVhayBlfWFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFb''@;'; + put 'put ''YW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sdWcobSx3LE0sYnQsYyksYVtsPj4yXT1hW20+PjJdLGFbbCs0Pj4yXT1hW20rND4+Ml0sYVtsKzg+PjJdPWFbbSs4Pj4yXSxhW2wrMTI+PjJdPWFbbSsxMj4+Ml0sY3Q9MTYrKDB8YVtwPj4yXSl8MCxhW2J0Pj4yXT1hW2FuPj4yXSxh''@;'; + put 'put ''W2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHVnKG90LHcsayxidCxjKSxhW2N0Pj4yXT1hW290Pj4yXSxhW2N0KzQ+PjJdPWFbb3QrND4+Ml0sYVtjdCs4Pj4yXT1hW290Kzg+PjJdLGFbY3QrMTI+PjJdPWFbb3QrMTI+''@;'; + put 'put ''PjJdLGN0PTMyKygwfGFbcD4+Ml0pfDAsYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSx1ZyhTdCxiLGssYnQsYyksYVtjdD4+Ml09YVtTdD4+Ml0sYVtjdCs0Pj4yXT1hW1N0KzQ+PjJd''@;'; + put 'put ''LGFbY3QrOD4+Ml09YVtTdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW1N0KzEyPj4yXSxjdD00OCsoMHxhW3A+PjJdKXwwLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sdWcoa3QsYixNLGJ0''@;'; + put 'put ''LGMpLGFbY3Q+PjJdPWFba3Q+PjJdLGFbY3QrND4+Ml09YVtrdCs0Pj4yXSxhW2N0Kzg+PjJdPWFba3QrOD4+Ml0sYVtjdCsxMj4+Ml09YVtrdCsxMj4+Ml07YnJlYWsgZTtjYXNlIDQ6aWYobD1sKzE2fDAscD0wfHZyKDgpLGFbcCs0Pj4yXT00LG09MHx2cig2NCksYVtwPj4yXT1tLGFbYW4+''@;'; + put 'put ''PjJdPWFbKGN0PTE2KyhBPTB8YVtsPj4yXSl8MCk+PjJdLGFbYW4rND4+Ml09YVtjdCs0Pj4yXSxhW2FuKzg+PjJdPWFbY3QrOD4+Ml0sYVthbisxMj4+Ml09YVtjdCsxMj4+Ml0sdz0tK19bQSs4OD4+M10sMHxmZVtjKzg+PjBdKXtSZT13LStqbltjPj4yXSxMZT0tK19bQSs4MD4+M10tK2pu''@;'; + put 'put ''WyhadD1jKzR8MCk+PjJdLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sc2cocGUsUmUsTGUsYnQpLGFbbT4+Ml09YVtwZT4+Ml0sYVttKzQ+PjJdPWFbcGUrND4+Ml0sYVttKzg+PjJd''@;'; + put 'put ''PWFbcGUrOD4+Ml0sYVttKzEyPj4yXT1hW3BlKzEyPj4yXSxjdD0xNisoMHxhW3A+PjJdKXwwLExlPS0rX1s4OCsoRXQ9MHxhW2w+PjJdKT4+M10tK2puW2M+PjJdLFJlPStfW0V0KzgwPj4zXSsgK2puW1p0Pj4yXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVti''@;'; + put 'put ''dCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHNnKGdlLExlLFJlLGJ0KSxhW2N0Pj4yXT1hW2dlPj4yXSxhW2N0KzQ+PjJdPWFbZ2UrND4+Ml0sYVtjdCs4Pj4yXT1hW2dlKzg+PjJdLGFbY3QrMTI+PjJdPWFbZ2UrMTI+PjJdLGN0PTMyKygwfGFbcD4+Ml0pfDAs''@;'; + put 'put ''UmU9K19bOTYrKEV0PTB8YVtsPj4yXSk+PjNdKyAram5bYz4+Ml0sTGU9K19bRXQrODA+PjNdKyAram5bWnQ+PjJdLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sc2coYmUsUmUsTGUs''@;'; + put 'put ''YnQpLGFbY3Q+PjJdPWFbYmU+PjJdLGFbY3QrND4+Ml09YVtiZSs0Pj4yXSxhW2N0Kzg+PjJdPWFbYmUrOD4+Ml0sYVtjdCsxMj4+Ml09YVtiZSsxMj4+Ml0sY3Q9NDgrKDB8YVtwPj4yXSl8MCxMZT0rX1s5NisoRXQ9MHxhW2w+PjJdKT4+M10rICtqbltjPj4yXSxSZT0tK19bRXQrODA+PjNd''@;'; + put 'put ''LStqbltadD4+Ml0sYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxzZyhIZSxMZSxSZSxidCksYVtjdD4+Ml09YVtIZT4+Ml0sYVtjdCs0Pj4yXT1hW0hlKzQ+PjJdLGFbY3QrOD4+Ml09''@;'; + put 'put ''YVtIZSs4Pj4yXSxhW2N0KzEyPj4yXT1hW0hlKzEyPj4yXTticmVhayBlfUxlPS0rX1tBKzgwPj4zXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHVnKFZlLHcsTGUsYnQsYyksYVtt''@;'; + put 'put ''Pj4yXT1hW1ZlPj4yXSxhW20rND4+Ml09YVtWZSs0Pj4yXSxhW20rOD4+Ml09YVtWZSs4Pj4yXSxhW20rMTI+PjJdPWFbVmUrMTI+PjJdLGN0PTE2KygwfGFbcD4+Ml0pfDAsTGU9LStfWzg4KyhadD0wfGFbbD4+Ml0pPj4zXSxSZT0rX1tadCs4MD4+M10sYVtidD4+Ml09YVthbj4+Ml0sYVti''@;'; + put 'put ''dCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSx1ZyhxZSxMZSxSZSxidCxjKSxhW2N0Pj4yXT1hW3FlPj4yXSxhW2N0KzQ+PjJdPWFbcWUrND4+Ml0sYVtjdCs4Pj4yXT1hW3FlKzg+PjJdLGFbY3QrMTI+PjJdPWFbcWUrMTI+''@;'; + put 'put ''PjJdLGN0PTMyKygwfGFbcD4+Ml0pfDAsUmU9K19bOTYrKFp0PTB8YVtsPj4yXSk+PjNdLExlPStfW1p0KzgwPj4zXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHVnKG50LFJlLExl''@;'; + put 'put ''LGJ0LGMpLGFbY3Q+PjJdPWFbbnQ+PjJdLGFbY3QrND4+Ml09YVtudCs0Pj4yXSxhW2N0Kzg+PjJdPWFbbnQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtudCsxMj4+Ml0sY3Q9NDgrKDB8YVtwPj4yXSl8MCxMZT0rX1s5NisoWnQ9MHxhW2w+PjJdKT4+M10sUmU9LStfW1p0KzgwPj4zXSxhW2J0Pj4y''@;'; + put 'put ''XT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHVnKFdlLExlLFJlLGJ0LGMpLGFbY3Q+PjJdPWFbV2U+PjJdLGFbY3QrND4+Ml09YVtXZSs0Pj4yXSxhW2N0Kzg+PjJdPWFbV2UrOD4+Ml0sYVtjdCsx''@;'; + put 'put ''Mj4+Ml09YVtXZSsxMj4+Ml07YnJlYWsgZTtkZWZhdWx0OnA9MH19d2hpbGUoMCk7cmV0dXJuIGFlPVNuLDB8cH1mdW5jdGlvbiBzZyhsLGMsZixwKXtmPStfWzgrKHB8PTApPj4zXSsoZj0rZiksX1sobHw9MCk+PjNdPStfW3A+PjNdKyhjPStjKSxfW2wrOD4+M109Zn1mdW5jdGlvbiB1Zyhs''@;'; + put 'put ''LGMsZixwLG0pe2Y9K2puWzQrKG18PTApPj4yXSooZj0rZikrICtfWzgrKHB8PTApPj4zXSxfWyhsfD0wKT4+M109K2puW20+PjJdKihjPStjKSsgK19bcD4+M10sX1tsKzg+PjNdPWZ9ZnVuY3Rpb24gT0oobCxjLGYscCxtLEEpe2x8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgdyxiLGss''@;'; + put 'put ''TSxELFIsRyxLPTAscGU9MCxnZT0wO0c9YWUsYWU9YWUrMTEyfDAsaz1HKzg4fDAsTT1HKzMyfDAsRD1HKzE2fDAsUj1HLG09Rys1NnwwLEE9Rys0MHwwLHc9NDgrKGN8PTApfDAscGU9MTYrKDB8YVsoSz1jKzE2fDApPj4yXSl8MCxhWyhiPUcrNzJ8MCk+PjJdPWFbKGdlPTE2KygwfGFbMTYr''@;'; + put 'put ''KDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOncpKzQwPj4yXSk+PjJdKXwwKT4+Ml0sYVtiKzQ+PjJdPWFbZ2UrND4+Ml0sYVtiKzg+PjJdPWFbZ2UrOD4+Ml0sYVtiKzEyPj4yXT1hW2dlKzEyPj4yXSxhW2s+PjJdPWFbcGU+PjJdLGFbays0Pj4yXT1hW3BlKzQ+PjJdLGFbays4Pj4yXT1hW3Bl''@;'; + put 'put ''Kzg+PjJdLGFbaysxMj4+Ml09YVtwZSsxMj4+Ml0sYmsobSxiLGspLGFbRD4+Ml09YVttPj4yXSxhW0QrND4+Ml09YVttKzQ+PjJdLGFbRCs4Pj4yXT1hW20rOD4+Ml0sYVtEKzEyPj4yXT1hW20rMTI+PjJdLG09YystNDh8MCxLPTU2KygwfGFbSz4+Ml0pfDAsYVtiPj4yXT1hWyhwZT0xNiso''@;'; + put 'put ''MHxhWzE2KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzptKSs0MD4+Ml0pPj4yXSl8MCk+PjJdLGFbYis0Pj4yXT1hW3BlKzQ+PjJdLGFbYis4Pj4yXT1hW3BlKzg+PjJdLGFbYisxMj4+Ml09YVtwZSsxMj4+Ml0sYVtrPj4yXT1hW0s+PjJdLGFbays0Pj4yXT1hW0srND4+Ml0sYVtrKzg+PjJd''@;'; + put 'put ''PWFbSys4Pj4yXSxhW2srMTI+PjJdPWFbSysxMj4+Ml0sYmsoQSxiLGspLGFbUj4+Ml09YVtBPj4yXSxhW1IrND4+Ml09YVtBKzQ+PjJdLGFbUis4Pj4yXT1hW0ErOD4+Ml0sYVtSKzEyPj4yXT1hW0ErMTI+PjJdLHA/KEE9MHxhWzI4OCsoMHxhWzE2KygwfGFbKDI9PSgwfChnZT0zJmFbYz4+''@;'; + put 'put ''Ml0pKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml0sbT0wfGFbMjg4KygwfGFbMTYrKDB8YVsoMz09KDB8Z2UpP2M6dykrNDA+PjJdKT4+Ml0pPj4yXSk6KEE9LTExMTEsbT0tMTExMSksYVtiPj4yXT1hW0Q+PjJdLGFbYis0Pj4yXT1hW0QrND4+Ml0sYVtiKzg+PjJdPWFbRCs4Pj4yXSxhW2IrMTI+''@;'; + put 'put ''PjJdPWFbRCsxMj4+Ml0sYVtrPj4yXT1hW1I+PjJdLGFbays0Pj4yXT1hW1IrND4+Ml0sYVtrKzg+PjJdPWFbUis4Pj4yXSxhW2srMTI+PjJdPWFbUisxMj4+Ml0sZnVuY3Rpb24gSWQobCxjLGYscCxtLEEpe2x8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgYixSLEcsSyx3PTAsaz0wLE09''@;'; + put 'put ''MCxEPTA7Zm9yKEs9YWUsYWU9YWUrMzJ8MCxrPUssYVsoRD1LKzE2fDApPj4yXT1hWyhjfD0wKT4+Ml0sYVtEKzQ+PjJdPWFbYys0Pj4yXSxhW0QrOD4+Ml09YVtjKzg+PjJdLGFbRCsxMj4+Ml09YVtjKzEyPj4yXSxSPTB8Zl8obCxmLEQpLGFbRD4+Ml09YVtwPj4yXSxhW0QrND4+Ml09YVtw''@;'; + put 'put ''KzQ+PjJdLGFbRCs4Pj4yXT1hW3ArOD4+Ml0sYVtEKzEyPj4yXT1hW3ArMTI+PjJdLEc9MHxmXyhsLG0sRCksYVtrPj4yXT1hW2M+PjJdLGFbays0Pj4yXT1hW2MrND4+Ml0sYVtrKzg+PjJdPWFbYys4Pj4yXSxhW2srMTI+PjJdPWFbYysxMj4+Ml0sYVtEPj4yXT1hW3A+PjJdLGFbRCs0Pj4y''@;'; + put 'put ''XT1hW3ArND4+Ml0sYVtEKzg+PjJdPWFbcCs4Pj4yXSxhW0QrMTI+PjJdPWFbcCsxMj4+Ml0sRD0wfGZ1bmN0aW9uIHFFKGwsYyxmLHAsbSxBLHcpe2N8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgYixrLE0sRD0wO3JldHVybiBrPWFlLGFlPWFlKzMyfDAsTT1rKzE2fDAsYj0wfGFbNCso''@;'; + put 'put ''d3w9MCk+PjJdLGFbKEQ9ayk+PjJdPWFbKGx8PTApPj4yXSxhW0QrND4+Ml09YVtsKzQ+PjJdLGFbRCs4Pj4yXT1hW2wrOD4+Ml0sYVtEKzEyPj4yXT1hW2wrMTI+PjJdLGFbTT4+Ml09YVtwPj4yXSxhW00rND4+Ml09YVtwKzQ+PjJdLGFbTSs4Pj4yXT1hW3ArOD4+Ml0sYVtNKzEyPj4yXT1h''@;'; + put 'put ''W3ArMTI+PjJdLDB8ZnVuY3Rpb24gZF8obCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MDt2YXIgRCxSLEcsSyxwZSxnZSxiZSxPZSxBPTAsdz0wLGI9MCxrPTAsTT0wO09lPWFlLGFlPWFlKzY0fDAsUj1PZSs0OHwwLEQ9T2UrMzJ8MCxLPU9lKzE2fDAsRz1PZSxnZT0wfGFbNCsobXw9MCk+PjJd''@;'; + put 'put ''LGJlPTB8YVttKzg+PjJdLHBlPTB8YVttKzE2Pj4yXSxBPSgwfChwfD0wKSk8MDtkb3tpZighKCgwfGMpPDApKXtpZihBKXtNPTB8YVttKzEyPj4yXSxtPTAsdz0wLGI9YyxrPU0sYz1NKyhjPDwyKXwwLE09OTticmVha31pZihBPTB8YVttKzEyPj4yXSwoMHxjKT4oMHxwKSl7bT0wfGFbQSso''@;'; + put 'put ''cCsxPDwyKT4+Ml0sdz0wfGFbQSsocDw8Mik+PjJdLGI9YyxrPUEsYz1BKyhjPDwyKXwwLE09OTticmVha31tPTB8YVtBKyhjKzE8PDIpPj4yXSx3PTB8YVtBKyhjPDwyKT4+Ml0sYj1wLGs9QSxjPUErKHA8PDIpfDAsTT05O2JyZWFrfUE/KEE9MCxiPTAsbT0wLHc9MCk6KGM9MHxhW20rMTI+''@;'; + put 'put ''PjJdLG09MCx3PTAsYj1wLGs9YyxjPWMrKHA8PDIpfDAsTT05KX13aGlsZSgwKTtmb3IoOT09KDB8TSkmJihBPTB8YVtrKyhiKzE8PDIpPj4yXSxiPTB8YVtjPj4yXSksYz0wOzspe2lmKCgwfGMpPj0oMHx3KSl7TT0xMzticmVha31pZihrPWJlKyhjPDw0KXwwLHA9YmUrKGFbcGUrKGM8PDIp''@;'; + put 'put ''Pj4yXTw8NCl8MCxhW0c+PjJdPWFbbD4+Ml0sYVtHKzQ+PjJdPWFbbCs0Pj4yXSxhW0crOD4+Ml09YVtsKzg+PjJdLGFbRysxMj4+Ml09YVtsKzEyPj4yXSxhW0s+PjJdPWFbZj4+Ml0sYVtLKzQ+PjJdPWFbZis0Pj4yXSxhW0srOD4+Ml09YVtmKzg+PjJdLGFbSysxMj4+Ml09YVtmKzEyPj4y''@;'; + put 'put ''XSxhW0Q+PjJdPWFbaz4+Ml0sYVtEKzQ+PjJdPWFbays0Pj4yXSxhW0QrOD4+Ml09YVtrKzg+PjJdLGFbRCsxMj4+Ml09YVtrKzEyPj4yXSxhW1I+PjJdPWFbcD4+Ml0sYVtSKzQ+PjJdPWFbcCs0Pj4yXSxhW1IrOD4+Ml09YVtwKzg+PjJdLGFbUisxMj4+Ml09YVtwKzEyPj4yXSwwfEM2KEcs''@;'; + put 'put ''SyxELFIpKXtBPTA7YnJlYWt9Yz1jKzF8MH1lOmRve2lmKDEzPT0oMHxNKSl7Zm9yKDshKCgwfG0pPj0oMHxiKSk7KXtpZihwPWJlKyhtPDw0KXwwLE09YmUrKGFbcGUrKG08PDIpPj4yXTw8NCl8MCxhW0c+PjJdPWFbbD4+Ml0sYVtHKzQ+PjJdPWFbbCs0Pj4yXSxhW0crOD4+Ml09YVtsKzg+''@;'; + put 'put ''PjJdLGFbRysxMj4+Ml09YVtsKzEyPj4yXSxhW0s+PjJdPWFbZj4+Ml0sYVtLKzQ+PjJdPWFbZis0Pj4yXSxhW0srOD4+Ml09YVtmKzg+PjJdLGFbSysxMj4+Ml09YVtmKzEyPj4yXSxhW0Q+PjJdPWFbcD4+Ml0sYVtEKzQ+PjJdPWFbcCs0Pj4yXSxhW0QrOD4+Ml09YVtwKzg+PjJdLGFbRCsx''@;'; + put 'put ''Mj4+Ml09YVtwKzEyPj4yXSxhW1I+PjJdPWFbTT4+Ml0sYVtSKzQ+PjJdPWFbTSs0Pj4yXSxhW1IrOD4+Ml09YVtNKzg+PjJdLGFbUisxMj4+Ml09YVtNKzEyPj4yXSwwfEM2KEcsSyxELFIpKXtBPTA7YnJlYWsgZX1tPW0rMXwwLE09MTN9Zm9yKDs7KXtpZigoMHxBKT49KDB8Z2UpKXtBPTE7''@;'; + put 'put ''YnJlYWsgZX1pZihwPWJlKyhBPDw0KXwwLE09YmUrKGFbcGUrKEE8PDIpPj4yXTw8NCl8MCxhW0c+PjJdPWFbbD4+Ml0sYVtHKzQ+PjJdPWFbbCs0Pj4yXSxhW0crOD4+Ml09YVtsKzg+PjJdLGFbRysxMj4+Ml09YVtsKzEyPj4yXSxhW0s+PjJdPWFbZj4+Ml0sYVtLKzQ+PjJdPWFbZis0Pj4y''@;'; + put 'put ''XSxhW0srOD4+Ml09YVtmKzg+PjJdLGFbSysxMj4+Ml09YVtmKzEyPj4yXSxhW0Q+PjJdPWFbcD4+Ml0sYVtEKzQ+PjJdPWFbcCs0Pj4yXSxhW0QrOD4+Ml09YVtwKzg+PjJdLGFbRCsxMj4+Ml09YVtwKzEyPj4yXSxhW1I+PjJdPWFbTT4+Ml0sYVtSKzQ+PjJdPWFbTSs0Pj4yXSxhW1IrOD4+''@;'; + put 'put ''Ml09YVtNKzg+PjJdLGFbUisxMj4+Ml09YVtNKzEyPj4yXSwwfEM2KEcsSyxELFIpKXtBPTA7YnJlYWt9QT1BKzF8MH19fXdoaWxlKDApO3JldHVybiBhZT1PZSwwfEF9KEQsYyxNLG0sdyk/KGw9MHxCMCg4KyhiPDwyKXwwKSxhW2wrKGI8PDIpPj4yXT1EPWIrMXwwLGFbbCsoRDw8Mik+PjJd''@;'; + put 'put ''PS0xKTooYVsobD0wfGFbdysyND4+Ml0pKyhiPDwyKT4+Ml09QSxhW2wrKChEPWIrMXwwKTw8Mik+PjJdPWYsbD0wfGZ1bmN0aW9uIHNfKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBELFIsRyxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxLPTAscGU9MDtmb3IoRD0wfEIwKChmfD0wKTw8''@;'; + put 'put ''MiksRz04KyhSPTB8QjAoOCsoZjw8Myl8MCkpfDAsbT0wOyEoKDB8bSk+PSgwfGYpKTspYVtEKyhtPDwyKT4+Ml09LTEsX1tHKyhtPDwzKT4+M109LTIxNDc0ODM2NDcsbT1tKzF8MDtfW1I+PjNdPS0yMTQ3NDgzNjQ4O2U6Zm9yKDsoMHxsKSE9KDB8Yyk7KWZvcihNPUcrKGw8PDMpfDAsYj0r''@;'; + put 'put ''X1tNPj4zXSxfW00+PjNdPS0yMTQ3NDgzNjQ3PT1iPzA6LWIsaz0wLG09LTE7Oyl7aWYoKDB8ayk+PSgwfGYpKXtsPW07Y29udGludWUgZX0oQT0rX1sodz1HKyhrPDwzKXwwKT4+M10pPDAmJigwIT0oSz0rX1soMHxhW3ArKCgocGU9KDB8bCk8KDB8aykpP2s6bCk8PDIpPj4yXSkrKChwZT9s''@;'; + put 'put ''OmspPDwzKT4+M10pJkE8KGI9LShLKyArX1tNPj4zXSkpJiYoX1t3Pj4zXT1iLGFbRCsoazw8Mik+PjJdPWwsQT1iKSxtPUE+K19bRysobTw8Myk+PjNdP2s6bSksaz1rKzF8MH1yZXR1cm4gRnQoUiksMHxEfShELGIsYisyfDAsbCkpLGFlPWssMHxsfShrLGYsUixELG0sRyxsKSxrPTErKGY9''@;'; + put 'put ''MHxhW2wrND4+Ml0pfDAsbT0xLHc9ZjtNPW0rMXwwLCgwfCh3PTB8YVtEKyh3PDwyKT4+Ml0pKSE9KDB8ayk7KW09TTtmb3IoYj0wfEIwKE08PDQpLGFbKHc9YisobTw8NCl8MCk+PjJdPWFbcD4+Ml0sYVt3KzQ+PjJdPWFbcCs0Pj4yXSxhW3crOD4+Ml09YVtwKzg+PjJdLGFbdysxMj4+Ml09''@;'; + put 'put ''YVtwKzEyPj4yXSxsPWwrOHwwO3c9YisoKG09bSstMXwwKTw8NCl8MCwoMHwoZj0wfGFbRCsoZjw8Mik+PjJdKSkhPSgwfGspOylhW3c+PjJdPWFbKHA9KDB8YVtsPj4yXSkrKGY8PDQpfDApPj4yXSxhW3crND4+Ml09YVtwKzQ+PjJdLGFbdys4Pj4yXT1hW3ArOD4+Ml0sYVt3KzEyPj4yXT1h''@;'; + put 'put ''W3ArMTI+PjJdO3JldHVybiBhW3c+PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtjKzEyPj4yXSwwfG0mJlByKDE0MTgwOSwxNDE4MTYsMTQ4LDE0MTgyMiksMHxSJiZGdChSKSwwfEcmJkZ0KEcpLGFbQSs0Pj4yXT1NLGFb''@;'; + put 'put ''QT4+Ml09YixGdChEKSxhZT1LLDF9KGYsYixtLGssQSxNKSxwZT0wfGFbKEs9TSkrND4+Ml0sYVsoZ2U9bCk+PjJdPWFbSz4+Ml0sYVtnZSs0Pj4yXT1wZSxhZT1HfWZ1bmN0aW9uIGJrKGwsYyxmKXt2YXIgcDtwPStfWzgrKGZ8PTApPj4zXSsgK19bOCsoY3w9MCk+PjNdLF9bKGx8PTApPj4z''@;'; + put 'put ''XT0rX1tmPj4zXSsgK19bYz4+M10sX1tsKzg+PjNdPXB9ZnVuY3Rpb24gUE4obCxjLGYscCxtKXtmfD0wLHB8PTAsbXw9MDt2YXIgYixrLE0sRCxLLHBlLGdlLGJlLExlLFIsQT0wLHc9MCxPZT0wLFJlPTA7TGU9YWUsYWU9YWUrMTQ0fDAsSz1MZSsxMDR8MCxwZT1MZSs4OHwwLFI9TGUrNzJ8''@;'; + put 'put ''MCxiZT1MZSsxMjh8MCxNPUxlKzMyfDAsRD1MZSsxMjR8MCxPZT1MZSsxNnwwLGdlPUxlLGI9TGUrMTIwfDAsQT0wfGFbKHc9MTQ0KygwfGFbMTYrKGN8PTApPj4yXSl8MCk+PjJdLHc9MHxhW3crND4+Ml0sYVsoUmU9az1MZSs2NHwwKT4+Ml09QSxhW1JlKzQ+PjJdPXcsYVtPZT4+Ml09YVso''@;'; + put 'put ''UmU9QSk+PjJdLGFbT2UrND4+Ml09YVtSZSs0Pj4yXSxhW09lKzg+PjJdPWFbUmUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtnZT4+Ml09YVsodz1BKyh3Ky0xPDw0KXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW3crND4+Ml0sYVtnZSs4Pj4yXT1hW3crOD4+Ml0sYVtnZSsxMj4+Ml09''@;'; + put 'put ''YVt3KzEyPj4yXTtlOmRve2lmKG08PDI0Pj4yNClmb3IoQT0tMTExMSxtPS0xMTExLHc9MDs7KXtpZigoMHx3KT49KDB8cCkpYnJlYWsgZTstMTExMT09KDB8bSkmJihhW3BlPj4yXT1hWyhtPTB8YVtmKyh3PDwyKT4+Ml0pPj4yXSxhW3BlKzQ+PjJdPWFbbSs0Pj4yXSxhW0s+PjJdPWFbT2U+''@;'; + put 'put ''PjJdLGFbSys0Pj4yXT1hW09lKzQ+PjJdLGFbSys4Pj4yXT1hW09lKzg+PjJdLGFbSysxMj4+Ml09YVtPZSsxMj4+Ml0sbT0obT0wPT0oMHxfNihwZSxLKSkpPy0xMTExOncpLC0xMTExPT0oMHxBKSYmKGFbcGU+PjJdPWFbKEE9MHxhW2YrKHc8PDIpPj4yXSk+PjJdLGFbcGUrND4+Ml09YVtB''@;'; + put 'put ''KzQ+PjJdLGFbSz4+Ml09YVtnZT4+Ml0sYVtLKzQ+PjJdPWFbZ2UrND4+Ml0sYVtLKzg+PjJdPWFbZ2UrOD4+Ml0sYVtLKzEyPj4yXT1hW2dlKzEyPj4yXSxBPShBPTA9PSgwfF82KHBlLEspKSk/LTExMTE6dyksdz13KzF8MH1lbHNlIEE9LTExMTEsbT0tMTExMX13aGlsZSgwKTsoZnVuY3Rp''@;'; + put 'put ''b24gb3NlKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgSyx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscGU9MCxnZT0wO2ZvcihiPTAsdz0wOyEoKDB8Yik+PSgwfGMpKTspKDB8Yik9PSgwfGYpfCgwfGIpPT0oMHxwKXx8KHc9KDB8YVs0KygwfGFb''@;'; + put 'put ''bCsoYjw8Mik+PjJdKT4+Ml0pK3d8MCksYj1iKzF8MDtmb3IoSz0wfFFuKHc8PDUpLGI9MCxHPTA7ISgoMHxHKT49KDB8YykpOyl7ZTpkb3tpZighKCgwfEcpPT0oMHxmKXwoMHxHKT09KDB8cCkpKWZvcihSPWwrKEc8PDIpfDAsRD0wOzspe2lmKCgwfEQpPj0oMHwoTT0wfGFbNCsoaz0wfGFb''@;'; + put 'put ''Uj4+Ml0pPj4yXSkpKWJyZWFrIGU7cGU9RCsxfDAsYVsoZ2U9SysoYjw8NSl8MCk+PjJdPWFbKGs9KDB8YVtrPj4yXSkrKEQ8PDQpfDApPj4yXSxhW2dlKzQ+PjJdPWFbays0Pj4yXSxhW2dlKzg+PjJdPWFbays4Pj4yXSxhW2dlKzEyPj4yXT1hW2srMTI+PjJdLGFbKGs9SysoYjw8NSkrMTZ8''@;'; + put 'put ''MCk+PjJdPWFbKE09KDB8YVthW1I+PjJdPj4yXSkrKCgoMHxwZSk8KDB8TSk/cGU6MCk8PDQpfDApPj4yXSxhW2srND4+Ml09YVtNKzQ+PjJdLGFbays4Pj4yXT1hW00rOD4+Ml0sYVtrKzEyPj4yXT1hW00rMTI+PjJdLEQ9cGUsYj1iKzF8MH19d2hpbGUoMCk7Rz1HKzF8MH1pZigoMHxiKT09''@;'; + put 'put ''KDB8dykpcmV0dXJuIGFbbT4+Ml09Syx2b2lkKGFbQT4+Ml09dyk7UHIoODk3MTksODk3MjYsNzcsODk3NDEpfSkoZixwLG0sQSxiLEQpLGFbTT4+Ml09MCxhW00rND4+Ml09MCxhW00rOD4+Ml09MCxhW00rMTI+PjJdPTAsYVtNKzE2Pj4yXT0wLGFbTSsyMD4+Ml09MCxhW00rMjQ+PjJdPTAs''@;'; + put 'put ''YVtNKzI4Pj4yXT0wLHc9MHxhW2I+PjJdLFJlPTB8YVtEPj4yXSxhW0s+PjJdPWFbaz4+Ml0sYVtLKzQ+PjJdPWFbays0Pj4yXSwoMHxxdih3LFJlLEssTSxiZSkpPDA/KE9lPTB8dGkoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pLFJlPTB8dGkoMHxhWygyPT0oMyZh''@;'; + put 'put ''W2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKSxhW1I+PjJdPU9lLGFbUis0Pj4yXT1SZSwkcigxLDg5NjU3LFIpKToobT1jKy00OHwwLEF1KGMsMHxhWygyPT0oMyZhWyhBPWMpPj4yXXwwKT9jOm0pKzQwPj4yXSwwfGFbYmU+PjJdLDB8YVtiZSs0Pj4yXSwxNzc5MiksRnQodyksYVtwZT4+''@;'; + put 'put ''Ml09YVtPZT4+Ml0sYVtwZSs0Pj4yXT1hW09lKzQ+PjJdLGFbcGUrOD4+Ml09YVtPZSs4Pj4yXSxhW3BlKzEyPj4yXT1hW09lKzEyPj4yXSxhW0s+PjJdPWFbZ2U+PjJdLGFbSys0Pj4yXT1hW2dlKzQ+PjJdLGFbSys4Pj4yXT1hW2dlKzg+PjJdLGFbSysxMj4+Ml09YVtnZSsxMj4+Ml0sdGco''@;'; + put 'put ''MCxjKSksYWU9TGV9ZnVuY3Rpb24gUkoobCxjLGYpe2N8PTAsZnw9MDt2YXIgQSxrLEQscD0wLG09MCx3PTAsYj0wLE09MCxSPTAsRz0wO2ZvcihEPWFlLGFlPWFlKzMyfDAsaz1EKzEyfDAsZnVuY3Rpb24gVFgobCxjKXtsfD0wO3ZhciBmLG0sdyxwPTA7dz1hZSxhZT1hZSs0OHwwLG09dysy''@;'; + put 'put ''NHwwLDAhPSgwfChmPTB8TGkoY3w9MCw5MzExNikpKSYmMCE9KDB8SWsoZixtLDEsMCkpfHwocD0zKTtkb3tpZigzPT0oMHxwKSl7aWYoMHwoYz0wfExpKGMsOTMxMTIpKSYmMHxJayhjLG0sMS4yNSwzLjIwMDAwMDA0NzY4MzcxNikpYnJlYWs7am5bbSs0Pj4yXT0zLjIwMDAwMDA0NzY4Mzcx''@;'; + put 'put ''NixqblttPj4yXT0zLjIwMDAwMDA0NzY4MzcxNixmZVttKzg+PjBdPTF9fXdoaWxlKDApO2FbbD4+Ml09YVttPj4yXSxhW2wrND4+Ml09YVttKzQ+PjJdLGFbbCs4Pj4yXT1hW20rOD4+Ml0sYWU9d30ocD1ELGx8PTApLGFbaz4+Ml09YVtwPj4yXSxhW2srND4+Ml09YVtwKzQ+PjJdLGFbays4''@;'; + put 'put ''Pj4yXT1hW3ArOD4+Ml0scD0wfER0KGwpO3A7KXtmb3IobT0wfHcwKGwscCk7bTspcmxlKG0pLG09MHxTMChsLG0pO3A9MHx6dChsLHApfWZvcihBPTB8aXMoMTc3NTYsMHxhWzQ1ODFdKSxwPTB8RHQobCk7cDspe2ZvcihtPTB8dzAobCxwKTttOykoMHxhWzQ3MTM0XSk+MSYmMCE9KDB8YVs4''@;'; + put 'put ''Kyh3PTB8YVttKzE2Pj4yXSk+PjJdKT9ydFsoUj13KzE2OHwwKT4+MV09MSsoMHxydFtSPj4xXSk8PDE2Pj4xNjpNPTE0LDE0PT0oMHxNKSYmKE09MCwoMHwoYj0wfEZOKEEsbSkpKSE9KDB8bSkpJiYocnRbKEc9MTY4KyhSPTB8YVtiKzE2Pj4yXSl8MCk+PjFdPTErKDB8cnRbRz4+MV0pPDwx''@;'; + put 'put ''Nj4+MTYsYVsxNzIrKDB8YVttKzE2Pj4yXSk+PjJdPWFbKFI9UisxNzJ8MCk+PjJdLGFbUj4+Ml09bSksbT0wfFMwKGwsbSk7cD0wfHp0KGwscCl9cmV0dXJuIE5sKEEpLDB8bWlbNjMmY10obCxrLGYpP3A9MTooYVs0NzEzOF09MSxwPTApLGFlPUQsMHxwfWZ1bmN0aW9uIEZOKGwsYyl7bHw9''@;'; + put 'put ''MDt2YXIgdyxLLGY9MCxwPTAsbT0wLEE9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MDtLPWFlLGFlPWFlKzY0fDAsRz1LLHc9MHxhWygzPT0oMHwocD0zJmFbKGN8PTApPj4yXSkpP2M6Yys0OHwwKSs0MD4+Ml0scD0wfGFbKDI9PSgwfHApP2M6YystNDh8MCkrNDA+PjJdO2Rve2lmKHc+Pj4w''@;'; + put 'put ''Pj1wPj4+MCl7aWYoZj1jKzE2fDAsdz4+PjA+cD4+PjApe1I9cCxwPXcsaz0rX1sxNisoZj0wfGFbZj4+Ml0pPj4zXSxNPStfW2YrMjQ+PjNdLEE9K19bZis1Nj4+M10sbT0rX1tmKzY0Pj4zXTticmVha31EPStfWzY0KyhSPTB8YVtmPj4yXSk+PjNdLG09K19bUisyND4+M10sKEE9K19bUisx''@;'; + put 'put ''Nj4+M10pPChiPStfW1IrNTY+PjNdKT8oUj13LHA9dyxrPWIsTT1EKTpBPmI/KFI9dyxwPXcsaz1BLE09bSxBPWIsbT1EKTooZj1tPkQsbTxEPyhSPXcscD13LGs9YixNPUQpOihSPXcscD13LGs9QSxNPW0sQT1mP2I6QSxtPWY/RDptKSl9ZWxzZSBSPXcsaz0rX1s1NisoZj0wfGFbYysxNj4+''@;'; + put 'put ''Ml0pPj4zXSxNPStfW2YrNjQ+PjNdLEE9K19bZisxNj4+M10sbT0rX1tmKzI0Pj4zXX13aGlsZSgwKTtyZXR1cm4gYVtHKzg+PjJdPVIsX1tHKzE2Pj4zXT1BLF9bRysyND4+M109bSxhW0crMzI+PjJdPXAsX1tHKzQwPj4zXT1rLF9bRys0OD4+M109TSxhW0crNTY+PjJdPWMsRz0wfGFbNTYr''@;'; + put 'put ''KDB8bWlbNjMmYVtsPj4yXV0obCxHLDEpKT4+Ml0sYWU9SywwfEd9ZnVuY3Rpb24gdkQobCxjKXtyZXR1cm4gMHxSSihsfD0wLDIxLGN8PTApfWZ1bmN0aW9uIFBKKGwsYyl7dmFyIG0sQSx3LGIsayxNLGYsUixwPTAsRD0wLEc9MDtNPWFlLGFlPWFlKzk2fDAsQT1NKzY0fDAsbT1NKzQ4fDAs''@;'; + put 'put ''dz1NKzgwfDAsYj1NKzE2fDAsaz1NLFI9MHxhWyhEPTE0NCsoMHxhWzE2KyhjfD0wKT4+Ml0pfDApPj4yXSxEPTB8YVtEKzQ+PjJdLGFbKEc9cD1NKzMyfDApPj4yXT1SLGFbRys0Pj4yXT1ELGFbYj4+Ml09YVsoRz1SKT4+Ml0sYVtiKzQ+PjJdPWFbRys0Pj4yXSxhW2IrOD4+Ml09YVtHKzg+''@;'; + put 'put ''PjJdLGFbYisxMj4+Ml09YVtHKzEyPj4yXSxhW2s+PjJdPWFbKEQ9UisoRCstMTw8NCl8MCk+PjJdLGFbays0Pj4yXT1hW0QrND4+Ml0sYVtrKzg+PjJdPWFbRCs4Pj4yXSxhW2srMTI+PjJdPWFbRCsxMj4+Ml0sYVtBPj4yXT1hW3A+PjJdLGFbQSs0Pj4yXT1hW3ArND4+Ml0sTGQoQSx3KSxm''@;'; + put 'put ''PWMrLTQ4fDAsQXUoYywwfGFbKDI9PSgzJmFbKHA9Yyk+PjJdfDApP2M6ZikrNDA+PjJdLDB8YVt3Pj4yXSwwfGFbdys0Pj4yXSwxNzc5MiksYVttPj4yXT1hW2I+PjJdLGFbbSs0Pj4yXT1hW2IrND4+Ml0sYVttKzg+PjJdPWFbYis4Pj4yXSxhW20rMTI+PjJdPWFbYisxMj4+Ml0sYVtBPj4y''@;'; + put 'put ''XT1hW2s+PjJdLGFbQSs0Pj4yXT1hW2srND4+Ml0sYVtBKzg+PjJdPWFbays4Pj4yXSxhW0ErMTI+PjJdPWFbaysxMj4+Ml0sdGcoMCxjKSxhZT1NfWZ1bmN0aW9uIEFEKGwsYyl7dmFyIGY7Zj0xNCZydFsxMzYrKDB8YVsxNisobHw9MCk+PjJdKT4+MV0sKGN8PTApPDwyND4+MjQmJkhOKGwp''@;'; + put 'put ''LGY8PDE2Pj4xNiYmdkQobCw2NTUzNSZmKX1mdW5jdGlvbiBITihsKXt2YXIgZixjPTAscD0wLG09MDtmb3IoZj0wfGZ1bmN0aW9uIE5OKGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7ZTpkb3tpZigoMHxhW2wrNjA+PjJdKT09KDB8bCkmJihmPWwrMTZ8MCxw''@;'; + put 'put ''PTB8YVtmPj4yXSwwIT0oMHxhWzg0KygwfGFbcCs4Pj4yXSk+PjJdKSkpezA9PStfW3ArMTY+PjNdJiYwPT0rX1twKzI0Pj4zXT9jPTA6KEZKKGwpLGM9MSxwPTB8YVtmPj4yXSksKGI9MD09KDEmYVtwKzExNj4+Ml18MCkpfHwodz0rX1soaz1wKzMyfDApPj4zXSxfW2s+PjNdPStfWyhmPXAr''@;'; + put 'put ''NDB8MCk+PjNdLF9bZj4+M109dyksZj0wfGFbcCs4Pj4yXTt0OmRve3N3aXRjaCgwfGFbZis4ND4+Ml0pe2Nhc2UgMjppZigobT0rX1tmKzY0Pj4zXSk8PTApYnJlYWsgZTtpZigoQT1tLytfW3ArMzI+PjNdKTwxfChtPStfW2YrNzI+PjNdLytfW3ArNDA+PjNdKTwxKXtpZihBPG0pe3c9MSxt''@;'; + put 'put ''Lz1BO2JyZWFrIHR9dz1BL20sbT0xO2JyZWFrIHR9dz1BO2JyZWFrO2Nhc2UgNTppZigobT0rX1tmKzY0Pj4zXSk8PTB8fCEoKEE9bS8rX1twKzMyPj4zXSk+MSYobT0rX1tmKzcyPj4zXS8rX1twKzQwPj4zXSk+MSkpYnJlYWsgZTt3PW09QTxtP0E6bTticmVhaztjYXNlIDE6aWYoKG09K19b''@;'; + put 'put ''cCs0MD4+M10vK19bcCszMj4+M10pPChBPStfW2YrMTY+PjNdKSl7dz0xLG09QS9tO2JyZWFrIHR9dz1tL0EsbT0xO2JyZWFrIHQ7ZGVmYXVsdDpicmVhayBlfX13aGlsZSgwKTtBPWI/bTp3LG09Yj93Om07dDpkb3tpZigoMHxhWzQ3MTM0XSk+MSlmb3IoZj0wfER0KGwpOzspe2lmKCFmKWJy''@;'; + put 'put ''ZWFrIHQ7Zm9yKGM9MHx3MChsLGYpO2M7KTB8YVs4KygwfGFbYysxNj4+Ml0pPj4yXSYmSEooYyxtLEEpLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfX13aGlsZSgwKTtmb3IoYz0wfER0KGwpO2M7KV9bKGs9MHxhWzEzMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXT0rX1trPj4zXSptLF9bKGs9''@;'; + put 'put ''ays4fDApPj4zXT0rX1trPj4zXSpBLGM9MHx6dChsLGMpO1ZOKGwsbSxBKSxjPTF9ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIDB8Y30obHw9MCksYz0wfER0KGwpO2M7KV9bMTYrKHA9MHxhW2MrMTY+PjJdKT4+M109NzIqK19bKG09MHxhW3ArMTMyPj4yXSk+PjNdLF9bcCsyND4+M109NzIq''@;'; + put 'put ''K19bbSs4Pj4zXSxjPTB8enQobCxjKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIEZKKGwpe3ZhciBwLG0sQSx3LGIsayxNLGM9MCxmPTAsRD0wO2ZvcihNPWFlLGFlPWFlKzMyfDAsYj1NKzE2fDAsYVsoaz1NKT4+Ml09YVsoYz0xNisoMHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSxhW2srND4+Ml09''@;'; + put 'put ''YVtjKzQ+PjJdLGFbays4Pj4yXT1hW2MrOD4+Ml0sYVtrKzEyPj4yXT1hW2MrMTI+PjJdLG09LjAxMzg4ODg4ODg4ODg4ODg4OCoocD0rX1trPj4zXSksdz0uMDEzODg4ODg4ODg4ODg4ODg4KihBPStfW2srOD4+M10pLGM9MHxEdChsKTtjOylfWyhEPTB8YVsxMzIrKGY9MHxhW2MrMTY+PjJd''@;'; + put 'put ''KT4+Ml0pPj4zXT0rX1tEPj4zXS1tLF9bKEQ9RCs4fDApPj4zXT0rX1tEPj4zXS13LDB8KGY9MHxhW2YrMTA4Pj4yXSkmJjB8ZmVbZis4MT4+MF0mJihfWyhEPWYrNTZ8MCk+PjNdPStfW0Q+PjNdLXAsX1soRD1mKzY0fDApPj4zXT0rX1tEPj4zXS1BKSxjPTB8enQobCxjKTtmb3IoZj0wfER0''@;'; + put 'put ''KGwpO2Y7KXtmb3IoYz0wfHcwKGwsZik7YzspMHxhWzgrKDB8YVtjKzE2Pj4yXSk+PjJdJiYoYVtiPj4yXT1hW2s+PjJdLGFbYis0Pj4yXT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4yXSxhW2IrMTI+PjJdPWFbaysxMj4+Ml0sak4oYyxiKSksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9''@;'; + put 'put ''YVtiPj4yXT1hW2s+PjJdLGFbYis0Pj4yXT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4yXSxhW2IrMTI+PjJdPWFbaysxMj4+Ml0sTkoobCxiKSxhZT1NfWZ1bmN0aW9uIEhKKGwsYyxmKXt2YXIgdyxiLEsscGUscD0wLG09MCxBPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxnZT0wLGJlPTAs''@;'; + put 'put ''T2U9MDtmb3IoSz0oZ2U9NzIqKChjPStjKS0xKSkqK19bKEE9MHxhWzEzMisoMHxhWzE2KygwfGFbKDI9PSgwfChHPTMmYVsobHw9MCk+PjJdKSk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4+M10scGU9KGJlPTcyKigoZj0rZiktMSkpKitfW0ErOD4+M10sZ2UqPStfWyhHPTB8YVsx''@;'; + put 'put ''MzIrKDB8YVsxNisoMHxhWygzPT0oMHxHKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+PjNdLGJlKj0rX1tHKzg+PjNdLGI9KHc9MHxhWzQrKEE9MHxhWzgrKEc9MHxhW2wrMTY+PjJdKT4+Ml0pPj4yXSktMXwwLGw9MCxBPTB8YVtBPj4yXTshKCgwfGwpPj0oMHx3KSk7KXtmb3IoTT0o''@;'; + put 'put ''az0wfGFbQSs0Pj4yXSktMXwwLEQ9KDB8bCk9PSgwfGIpLHA9MCxtPTB8YVtBPj4yXTshKCgwfHApPj0oMHxrKSk7KXtkb3tpZihwfGwpe2lmKFI9K19bbT4+M10sKDB8cCk9PSgwfE0pJkQpe19bbT4+M109UitLLF9bKE9lPW0rOHwwKT4+M109K19bT2U+PjNdK3BlO2JyZWFrfV9bbT4+M109''@;'; + put 'put ''UipjLF9bKE9lPW0rOHwwKT4+M109K19bT2U+PjNdKmY7YnJlYWt9X1ttPj4zXT0rX1ttPj4zXStnZSxfWyhPZT1tKzh8MCk+PjNdPStfW09lPj4zXStiZX13aGlsZSgwKTtwPXArMXwwLG09bSsxNnwwfTB8YVtBKzg+PjJdJiYoX1soT2U9QSsxNnwwKT4+M109K19bT2U+PjNdK2dlLF9bKE9l''@;'; + put 'put ''PUErMjR8MCk+PjNdPStfW09lPj4zXStiZSksMHxhW0ErMTI+PjJdJiYoX1soT2U9QSszMnwwKT4+M109K19bT2U+PjNdK0ssX1soT2U9QSs0MHwwKT4+M109K19bT2U+PjNdK3BlKSxsPWwrMXwwLEE9QSs0OHwwfTB8KGw9MHxhW0crOTY+PjJdKSYmMHxmZVtsKzgxPj4wXSYmKF9bKE9lPWwr''@;'; + put 'put ''NTZ8MCk+PjNdPStfW09lPj4zXSpjLF9bKE9lPWwrNjR8MCk+PjNdPStfW09lPj4zXSpmKSwwfChsPTB8YVtHKzEwMD4+Ml0pJiYwfGZlW2wrODE+PjBdJiYoX1soT2U9bCs1NnwwKT4+M109K19bT2U+PjNdK0ssX1soT2U9bCs2NHwwKT4+M109K19bT2U+PjNdK3BlKSwwfChsPTB8YVtHKzEw''@;'; + put 'put ''ND4+Ml0pJiYwfGZlW2wrODE+PjBdJiYoX1soT2U9bCs1NnwwKT4+M109K19bT2U+PjNdK2dlLF9bKE9lPWwrNjR8MCk+PjNdPStfW09lPj4zXStiZSl9ZnVuY3Rpb24gVk4obCxjLGYpe2Y9K2Y7dmFyIG0sQSxwPTA7Zm9yKF9bKGw9MzIrKG09MHxhWyhBPTE2KyhsfD0wKXwwKT4+Ml0pfDAp''@;'; + put 'put ''Pj4zXT0rX1tsPj4zXSooYz0rYyksX1sobD1tKzQwfDApPj4zXT0rX1tsPj4zXSpmLF9bKGw9bSsxNnwwKT4+M109K19bbD4+M10qYyxfWyhsPW0rMjR8MCk+PjNdPStfW2w+PjNdKmYsMCE9KDB8KGw9MHxhW20rMTI+PjJdKSkmJjAhPSgwfGZlW2wrODE+PjBdKT8oX1socD1sKzU2fDApPj4z''@;'; + put 'put ''XT0rX1twPj4zXSpjLF9bKHA9bCs2NHwwKT4+M109K19bcD4+M10qZixwPTEsbD1tKToocD0xLGw9bSk7ISgoMHxwKT4oMHxhW2wrMTgwPj4yXSkpOylWTigwfGFbKDB8YVtsKzE4ND4+Ml0pKyhwPDwyKT4+Ml0sYyxmKSxwPXArMXwwLGw9MHxhW0E+PjJdfWZ1bmN0aW9uIGpOKGwsYyl7dmFy''@;'; + put 'put ''IHcsYixrLGY9MCxwPTAsbT0wLEE9MCxNPTA7Zm9yKHc9MHxhWzQrKGw9MHxhWzgrKGI9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSk+PjJdLGs9OCsoY3w9MCl8MCxsPTB8YVtsPj4yXSxtPTA7ISgoMHxtKT49KDB8dykpOyl7Zm9yKEE9MHxhW2wrND4+Ml0sZj0wfGFbbD4+Ml0scD0wOyEoKDB8''@;'; + put 'put ''cCk+PSgwfEEpKTspX1tmPj4zXT0rX1tmPj4zXS0rX1tjPj4zXSxfWyhNPWYrOHwwKT4+M109K19bTT4+M10tK19baz4+M10sZj1mKzE2fDAscD1wKzF8MDswfGFbbCs4Pj4yXSYmKF9bKE09bCsxNnwwKT4+M109K19bTT4+M10tK19bYz4+M10sX1soTT1sKzI0fDApPj4zXT0rX1tNPj4zXS0r''@;'; + put 'put ''X1trPj4zXSksMHxhW2wrMTI+PjJdJiYoX1soTT1sKzMyfDApPj4zXT0rX1tNPj4zXS0rX1tjPj4zXSxfWyhNPWwrNDB8MCk+PjNdPStfW00+PjNdLStfW2s+PjNdKSxsPWwrNDh8MCxtPW0rMXwwfTB8KGw9MHxhW2IrOTY+PjJdKSYmMHxmZVtsKzgxPj4wXSYmKF9bKE09bCs1NnwwKT4+M109''@;'; + put 'put ''K19bTT4+M10tK19bYz4+M10sX1soTT1sKzY0fDApPj4zXT0rX1tNPj4zXS0rX1trPj4zXSksMHwobD0wfGFbYisxMDg+PjJdKSYmMHxmZVtsKzgxPj4wXSYmKF9bKE09bCs1NnwwKT4+M109K19bTT4+M10tK19bYz4+M10sX1soTT1sKzY0fDApPj4zXT0rX1tNPj4zXS0rX1trPj4zXSksMHwo''@;'; + put 'put ''bD0wfGFbYisxMDA+PjJdKSYmMHxmZVtsKzgxPj4wXSYmKF9bKE09bCs1NnwwKT4+M109K19bTT4+M10tK19bYz4+M10sX1soTT1sKzY0fDApPj4zXT0rX1tNPj4zXS0rX1trPj4zXSksMHwobD0wfGFbYisxMDQ+PjJdKSYmMHxmZVtsKzgxPj4wXSYmKF9bKE09bCs1NnwwKT4+M109K19bTT4+''@;'; + put 'put ''M10tK19bYz4+M10sX1soTT1sKzY0fDApPj4zXT0rX1tNPj4zXS0rX1trPj4zXSl9ZnVuY3Rpb24gTkoobCxjKXt2YXIgcCxtLEEsdyxiLGY9MCxrPTA7Zm9yKGI9YWUsYWU9YWUrMTZ8MCx3PWIsX1soZj0zMisobD0wfGFbKEE9MTYrKGx8PTApfDApPj4yXSl8MCk+PjNdPStfW2Y+PjNdLSht''@;'; + put 'put ''PStfWyhjfD0wKT4+M10pLF9bKGY9bCs0MHwwKT4+M109K19bZj4+M10tKHA9K19bYys4Pj4zXSksX1soZj1sKzE2fDApPj4zXT0rX1tmPj4zXS1tLF9bKGY9bCsyNHwwKT4+M109K19bZj4+M10tcCwwIT0oMHwoZj0wfGFbbCsxMj4+Ml0pKSYmMCE9KDB8ZmVbZis4MT4+MF0pJiYoX1soaz1m''@;'; + put 'put ''KzU2fDApPj4zXT0rX1trPj4zXS1tLF9bKGY9Zis2NHwwKT4+M109K19bZj4+M10tcCksZj0xOyEoKDB8Zik+KDB8YVtsKzE4MD4+Ml0pKTspaz0wfGFbKDB8YVtsKzE4ND4+Ml0pKyhmPDwyKT4+Ml0sYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4''@;'; + put 'put ''Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sTkooayx3KSxmPWYrMXwwLGw9MHxhW0E+PjJdO2FlPWJ9ZnVuY3Rpb24gSzYobCl7dmFyIGYscCxtLEEsdyxjPTAsYj0wO2Zvcih3PWFlLGFlPWFlKzE2fDAsZj13LGlnKGx8PTApLG09LjAxMzg4ODg4ODg4ODg4ODg4OCorX1sxNisoYz0wfGFb''@;'; + put 'put ''KHA9bCsxNnwwKT4+Ml0pPj4zXSxBPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bYysyND4+M10sYz0wfER0KGwpO2M7KV9bKGI9MHxhWzEzMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXT0rX1tiPj4zXS1tLF9bKGI9Yis4fDApPj4zXT0rX1tiPj4zXS1BLGM9MHx6dChsLGMpO2FbZj4+Ml09YVso''@;'; + put 'put ''Yj0xNisoMHxhW3A+PjJdKXwwKT4+Ml0sYVtmKzQ+PjJdPWFbYis0Pj4yXSxhW2YrOD4+Ml09YVtiKzg+PjJdLGFbZisxMj4+Ml09YVtiKzEyPj4yXSxWSihsLGYpLEFEKGwsMSksYWU9d31mdW5jdGlvbiBWSihsLGMpe2N8PTA7dmFyIGYsQSx3LGIscD0wLG09MDtmb3IoQT1hZSxhZT1hZSsx''@;'; + put 'put ''NnwwLG09QSxmPTE2KyhsfD0wKXwwLGw9MTshKCgwfGwpPigwfGFbMTgwKyhwPTB8YVtmPj4yXSk+PjJdKSk7KXA9MHxhWygwfGFbcCsxODQ+PjJdKSsobDw8Mik+PjJdLGFbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1h''@;'; + put 'put ''W2MrMTI+PjJdLFZKKHAsbSksbD1sKzF8MDtfWyhtPXArMzJ8MCk+PjNdPStfW20+PjNdLShiPStfW2M+PjNdKSx3PStfW2MrOD4+M10sX1soYz1wKzQwfDApPj4zXT0rX1tjPj4zXS13LF9bKGM9cCsxNnwwKT4+M109K19bYz4+M10tYixfWyhjPXArMjR8MCk+PjNdPStfW2M+PjNdLXcsYWU9''@;'; + put 'put ''QX1mdW5jdGlvbiBaTihsLGMsZixwLG0pe2x8PTAsY3w9MCxtfD0wO3ZhciBHLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxLPTA7Zm9yKEc9KDB8KGZ8PTApKT4yLEQ9MCxSPTAsdz0wfGFbNCsocHw9MCk+PjJdLGw9MHxhW3A+PjJdOzspe2lmKCgwfFIpPj0oMHxjKSl7bD0wO2JyZWFr''@;'; + put 'put ''fWs9MHxmZVsxMTkrKEE9MHxhWzE2KygwfGFbbSsoUjw8Mik+PjJdKT4+Ml0pPj4wXTtlOmRve2lmKGs8PDI0Pj4yNCl7TT1sKzh8MCxfW2w+PjNdPStfWyhiPTB8YVtBKzEzMj4+Ml0pPj4zXSxBPXcrOHwwLF9bdz4+M109K19bYis4Pj4zXTt0OmRve2lmKEcpZm9yKHc9MixsPWIrMTZ8MDs7''@;'; + put 'put ''KXtpZigoMHx3KT09KDB8ZikpYnJlYWsgdDtfWygwfGFbcCsodzw8Mik+PjJdKSsoUjw8Myk+PjNdPStfW2w+PjNdLHc9dysxfDAsbD1sKzh8MH19d2hpbGUoMCk7dz0oMjU1JmspPjE/MTpELGw9TX1lbHNlIGlmKGI9bCs4fDAsX1tsPj4zXT0rcWMoKSxBPXcrOHwwLF9bdz4+M109K3FjKCks''@;'; + put 'put ''Rylmb3IobD0yOzspe2lmKCgwfGwpPT0oMHxmKSl7dz1ELGw9YjticmVhayBlfUs9K3FjKCksX1soMHxhW3ArKGw8PDIpPj4yXSkrKFI8PDMpPj4zXT1LLGw9bCsxfDB9ZWxzZSB3PUQsbD1ifXdoaWxlKDApO0Q9dyxSPVIrMXwwLHc9QX1mb3IoOyEoKDB8bCk+PSgwfGYpKTspYTgoYywwfGFb''@;'; + put 'put ''cCsobDw8Mik+PjJdKSxsPWwrMXwwO3JldHVybiAwfER9ZnVuY3Rpb24gVHkobCxjKXtsfD0wO3ZhciBELFIsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxHPTA7Zj0wfHZyKCgoMHxBcigxKyhjfD0wKXwwLGMpKS8yfDApPDwyKSxEPTB8Y2coYyxjLDApLFI9MHxjZyhjLGMsMCk7''@;'; + put 'put ''ZTpkb3tpZigwfGFbbCs4Pj4yXSlmb3IocD0wOzspe2lmKCgwfHApPj0oMHxjKSlicmVhayBlO2ZvcihBPTB8YVtsKygyMCpwfDApPj4yXSx3PWwrKDIwKnB8MCkrNHwwLGI9bCsoMjAqcHwwKSs4fDAsTT1EKyhwPDwyKXwwLG09MTshKCgwfG0pPj0oMHxBKSk7KV9bKDB8YVtEKygoRz0wfGFb''@;'; + put 'put ''KDB8YVt3Pj4yXSkrKG08PDIpPj4yXSk8PDIpPj4yXSkrKHA8PDMpPj4zXT1rPS0xLytqblsoMHxhW2I+PjJdKSsobTw8Mik+PjJdLF9bKDB8YVtNPj4yXSkrKEc8PDMpPj4zXT1rLG09bSsxfDA7cD1wKzF8MH1lbHNlIGZvcihwPTA7Oyl7aWYoKDB8cCk+PSgwfGMpKWJyZWFrIGU7Zm9yKEE9''@;'; + put 'put ''MHxhW2wrKDIwKnB8MCk+PjJdLHc9bCsoMjAqcHwwKSs0fDAsYj1EKyhwPDwyKXwwLG09MTshKCgwfG0pPj0oMHxBKSk7KV9bKDB8YVtEKygoTT0wfGFbKDB8YVt3Pj4yXSkrKG08PDIpPj4yXSk8PDIpPj4yXSkrKHA8PDMpPj4zXT0tMSxfWygwfGFbYj4+Ml0pKyhNPDwzKT4+M109LTEsbT1t''@;'; + put 'put ''KzF8MDtwPXArMXwwfX13aGlsZSgwKTtlOmRve2lmKDB8Z1YoYyxELFIpKWZvcihtPTAsdz0wLE09Yzs7KXtpZigoMHx3KT49KDB8YykpYnJlYWsgZTtmb3IoYj1SKyh3PDwyKXwwLHA9dyxBPW07KDB8cCkhPSgwfGMpOylrPSgwfHcpPT0oMHxwKT8wOitfWygwfGFbUisocDw8Mik+PjJdKSso''@;'; + put 'put ''cDw8Myk+PjNdKyArX1soRz0wfGFbYj4+Ml0pKyh3PDwzKT4+M10rLTIqK19bRysocDw8Myk+PjNdLGpuW2YrKEE8PDIpPj4yXT1rLHA9cCsxfDAsQT1BKzF8MDttPW0rTXwwLHc9dysxfDAsTT1NKy0xfDB9ZWxzZSBGdChmKSxmPTB9d2hpbGUoMCk7cmV0dXJuIEI3KEQpLEI3KFIpLDB8Zn1m''@;'; + put 'put ''dW5jdGlvbiAkNihsLGMpe2N8PTA7dmFyIEssZj0wLHA9MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAscGU9MDtpZihLPWFlLGFlPWFlKzE2fDAsMHxhWzgrKGx8PTApPj4yXSlmb3IoZj0wfF9rKGwsYykscD0wLFI9MDshKCgwfFIpPj0oMHxjKSk7KXtmb3IocD1wK1J8MCxEPTB8YVts''@;'; + put 'put ''KygyMCpSfDApPj4yXSxiPWwrKDIwKlJ8MCkrNHwwLGs9KDB8QXIoUixjKSktcHwwLE09bCsoMjAqUnwwKSs4fDAsdz0xOyEoKDB8dyk+PSgwfEQpKTspKDB8KEE9MHxhWygwfGFbYj4+Ml0pKyh3PDwyKT4+Ml0pKT49KDB8UikmJihlbygrKCtqblsoQT1mKyhrK0E8PDIpfDApPj4yXS0ocGU9''@;'; + put 'put ''K2puWygwfGFbTT4+Ml0pKyh3PDwyKT4+Ml0pKSksam5bQT4+Ml09cGUpLHc9dysxfDA7Uj1SKzF8MH1lbHNlIGY9MDtyZXR1cm4gYWU9SywwfGZ9ZnVuY3Rpb24gX2sobCxjKXtsfD0wO3ZhciB3LGIsayxELGY9MCxwPTAsbT0wLEE9MCxNPTA7Zm9yKEQ9YWUsYWU9YWUrMTZ8MCx3PUQsYj0w''@;'; + put 'put ''fHZyKCgoMHxBcigxKyhjfD0wKXwwLGMpKS8yfDApPDwyKSxrPTB8dnIoYzw8MiksTHkodyxjKSxmPTAsbT0wLE09YzshKCgwfGYpPj0oMHxjKSk7KXtmb3IoT0QoZixsLGMsaykscD1mLEE9bTsoMHxwKSE9KDB8Yyk7KWFbYisoQTw8Mik+PjJdPWFbaysocDw8Mik+PjJdLHA9cCsxfDAsQT1B''@;'; + put 'put ''KzF8MDtmPWYrMXwwLG09bStNfDAsTT1NKy0xfDB9cmV0dXJuIEZ0KGspLHhEKHcpLGFlPUQsMHxifWZ1bmN0aW9uIHlEKGwsYyl7bHw9MDt2YXIgdyxiLGssRCxmPTAscD0wLG09MCxBPTAsTT0wO2ZvcihEPWFlLGFlPWFlKzE2fDAsdz1ELGI9MHx2cigoKDB8QXIoMSsoY3w9MCl8MCxjKSkv''@;'; + put 'put ''MnwwKTw8Miksaz0wfHZyKGM8PDIpLEx5KHcsYyksZj0wLG09MCxNPWM7ISgoMHxmKT49KDB8YykpOyl7Zm9yKHI4KGYsbCxjLGssdykscD1mLEE9bTsoMHxwKSE9KDB8Yyk7KWpuW2IrKEE8PDIpPj4yXT0rKDB8YVtrKyhwPDwyKT4+Ml0pLHA9cCsxfDAsQT1BKzF8MDtmPWYrMXwwLG09bStN''@;'; + put 'put ''fDAsTT1NKy0xfDB9cmV0dXJuIEZ0KGspLHhEKHcpLGFlPUQsMHxifWZ1bmN0aW9uIGpKKGwsYyl7Y3w9MDt2YXIgcGUsZ2UsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAsYmU9MDtmb3IoZj0wfGFbKGdlPTgrKGx8PTApfDApPj4yXSxwPTAsbT0wOyEo''@;'; + put 'put ''KDB8bSk+PSgwfGMpKTspcD0oMHxhW2wrKDIwKm18MCk+PjJdKStwfDAsbT1tKzF8MDtmb3IobT0wfHZyKHA8PDIpLHBlPTB8dnIoYzw8MikscD0wOyEoKDB8cCk+PSgwfGMpKTspYVtwZSsocDw8Mik+PjJdPTAscD1wKzF8MDtpZigwfGFbZ2U+PjJdKXtmb3IoYj0wOyEoKDB8Yik+PSgwfGMp''@;'; + put 'put ''KTspe2ZvcihGayhsLGIscGUpLFI9bCsoMjAqYnwwKSs0fDAsRz0oRD0wfGFbKGs9bCsoMjAqYnwwKXwwKT4+Ml0pLTJ8MCxLPWwrKDIwKmJ8MCkrOHwwLHc9MTshKCgwfHcpPj0oMHxEKSk7KWJlPSsoKEE9RysoMHxhW2wrKDIwKihwPTB8YVsoMHxhW1I+PjJdKSsodzw8Mik+PjJdKXwwKT4+''@;'; + put 'put ''Ml0pfDApLSgoMHxQayhsLGIscCxwZSkpPDwxKXwwKSwoTT0ram5bKDB8YVtLPj4yXSkrKHc8PDIpPj4yXSk8YmUmJihNPSsoQS0oKDB8UGsobCxiLHAscGUpKTw8MSl8MCkpLGpuW20rKHc8PDIpPj4yXT1NLHc9dysxfDA7WVgobCxiLHBlKSxhW0s+PjJdPW0sbT1tKyhhW2s+PjJdPDwyKXww''@;'; + put 'put ''LGI9YisxfDB9bT0wfF9rKGwsYyl9ZWxzZXtmb3IoQT0wOyEoKDB8QSk+PSgwfGMpKTspe2ZvcihhW2wrKDIwKkF8MCkrOD4+Ml09bSxGayhsLEEscGUpLGs9bCsoMjAqQXwwKSs0fDAsTT0rKChiPTB8YVsodz1sKygyMCpBfDApfDApPj4yXSktMXwwKSxwPTE7ISgoMHxwKT49KDB8YikpOylq''@;'; + put 'put ''blttKyhwPDwyKT4+Ml09KGJlPSsoKDB8YVtsKygyMCooSz0wfGFbKDB8YVtrPj4yXSkrKHA8PDIpPj4yXSl8MCk+PjJdKS0xfDApK00pLSsoKDB8UGsobCxBLEsscGUpKTw8MXwwKSxwPXArMXwwO1lYKGwsQSxwZSksbT1tKyhhW3c+PjJdPDwyKXwwLEE9QSsxfDB9bT0wfHlEKGwsYyl9RnQo''@;'; + put 'put ''cGUpLEZ0KDB8YVtnZT4+Ml0pLGFbZ2U+PjJdPTA7ZTpkb3tpZigwfGYpZm9yKHA9MDs7KXtpZigoMHxwKT49KDB8YykpYnJlYWsgZTthW2wrKDIwKnB8MCkrOD4+Ml09ZixmPWYrKGFbbCsoMjAqcHwwKT4+Ml08PDIpfDAscD1wKzF8MH19d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiB6''@;'; + put 'put ''TihsLGMsZixwLG0sQSx3LGIsayl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsYnw9MCxrfD0wO3ZhciBFdCxadCxidCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxs''@;'; + put 'put ''dD0wLGFuPTAsU249MDtidD1hZSxhZT1hZSs4MHwwLFp0PWJ0KzQ4fDAsVmU9YnQrNDB8MCxnZT1idCszMnwwLHBlPWJ0KzI0fDAsSz1idCsxNnwwLEQ9YnQrOHwwLE09YnQsUj00Jih3fD0wKSxFdD0zJnc7ZTpkb3tpZigoMHxrKTwwKWY9MDtlbHNle3c9Mj09KDB8Yik7dDpkb3tpZih3KWY9''@;'; + put 'put ''MHxqSihsLGMpLE9lPTE0O2Vsc2V7c3dpdGNoKDB8Yil7Y2FzZSAxOmlmKDB8KGY9MHxUeShsLGMpKSl7bHQ9ZjticmVhayB0fSRyKDAsOTMzMTUsTSksJHIoMyw5MzM2NCxEKSxPZT0xNTticmVhayB0O2Nhc2UgMzpicmVhaztkZWZhdWx0Ok9lPTE1O2JyZWFrIHR9Zj0wfCQ2KGwsYyksT2U9''@;'; + put 'put ''MTR9fXdoaWxlKDApOzE0PT0oMHxPZSkmJihmP2x0PWY6T2U9MTUpO2Rve2lmKDE1PT0oMHxPZSkpe2lmKDB8YVtsKzg+PjJdKXtsdD0wfF9rKGwsYyk7YnJlYWt9bHQ9MHx5RChsLGMpO2JyZWFrfX13aGlsZSgwKTt0OmRve2lmKCgwfGMpPjEmMCE9KDB8UikpaWYoKDB8d0QobCxjLHAsQSxS''@;'; + put 'put ''LEV0LDEmdykpPDApZ2U9MCxwZT0wLGY9LTEsbD0wLEs9MCxSPTAsRD0wLE09MCxiPTAsdz0wO2Vsc2UgZm9yKHc9MDs7KXtpZigoMHx3KT49KDB8QSkpe1JlPTAsT2U9MzU7YnJlYWsgdH1mb3IoYj1wKyh3PDwyKXwwLEc9MSxmPTA7KDB8ZikhPSgwfGMpOylHPShMZT0rZW8oKyArX1soMHxh''@;'; + put 'put ''W2I+PjJdKSsoZjw8Myk+PjNdKSk+Rz9MZTpHLGY9ZisxfDA7Zm9yKEc9MS9HLGY9MDs7KXtpZigoMHxmKT09KDB8Yykpe2Y9MDticmVha31fWyhrdD0oMHxhW2I+PjJdKSsoZjw8Myl8MCk+PjNdPStfW2t0Pj4zXSpHLGY9ZisxfDB9Zm9yKDsoMHxmKSE9KDB8Yyk7KUxlPTFlLTYqKCtxYygp''@;'; + put 'put ''LS41KSxfWyhrdD0oMHxhW2I+PjJdKSsoZjw8Myl8MCk+PjNdPStfW2t0Pj4zXStMZSxmPWYrMXwwO2E4KGMsMHxhW2I+PjJdKSx3PXcrMXwwfWVsc2UgUmU9MHxaTigwLGMsQSxwLG0pLE9lPTM1fXdoaWxlKDApO3Q6ZG97aWYoMzU9PSgwfE9lKSl7aWYoMT09KDB8Yyl8MD09KDB8aykpe2Y9''@;'; + put 'put ''MDticmVhayBlfWZvcihrdD0wfHZyKEs9QTw8MiksU3Q9MHx2cihsPTB8QXIocGU9Yzw8MixBKSksZj0wOyEoKDB8Zik+PSgwfEEpKTspe2ZvcihiPVN0KygoMHxBcihmLGMpKTw8Mil8MCxhW2t0KyhmPDwyKT4+Ml09YixNPXArKGY8PDIpfDAsdz0wOyEoKDB8dyk+PSgwfGMpKTspam5bYiso''@;'; + put 'put ''dzw8Mik+PjJdPStfWygwfGFbTT4+Ml0pKyh3PDwzKT4+M10sdz13KzF8MDtmPWYrMXwwfW46ZG97aWYoRXQpRz0uNSorKDB8YykqKyhjKy0xfDApO2Vsc2UgZm9yKEQ9YystMXwwLGY9MCxHPTAsTT0wOzspe2lmKCgwfE0pPj0oMHxEKSlicmVhayBuO2ZvcihSPWMtTXwwLGI9Zix3PTE7Zj1i''@;'; + put 'put ''KzF8MCwhKCgwfHcpPj0oMHxSKSk7KWI9ZixHPStqbltsdCsoZjw8Mik+PjJdK0csdz13KzF8MDtNPU0rMXwwfX13aGlsZSgwKTtmb3IocWU9KDB8QXIoYysxfDAsYykpLzJ8MCwobnQ9Mj09KDB8RXQpKSYmTmsocWUsbHQpLHNLKHFlLGx0KSx1MigwfChiPTB8dnIoV2U9Yzw8MykpLDAsMHxX''@;'; + put 'put ''ZSksb3Q9YystMXwwLGY9MCxNPTA7Oyl7aWYoKDB8TSk+PSgwfG90KSl7Zj1jLHc9MCxNPTA7YnJlYWt9Zm9yKEQ9Yy1NfDAsYmU9MCx3PTE7Zj1mKzF8MCwhKCgwfHcpPj0oMHxEKSk7KV9bKEhlPWIrKHcrTTw8Myl8MCk+PjNdPStfW0hlPj4zXS0oTGU9K2puW2x0KyhmPDwyKT4+Ml0pLGJl''@;'; + put 'put ''Kz1MZSx3PXcrMXwwO19bKEhlPWIrKE08PDMpfDApPj4zXT0rX1tIZT4+M10tYmUsTT1NKzF8MH1mb3IoOyEoKDB8dyk+PSgwfGMpKTspam5bbHQrKE08PDIpPj4yXT0rX1tiKyh3PDwzKT4+M10sSGU9ZitNfDAsZj1mKy0xfDAsdz13KzF8MCxNPUhlO2ZvcihIZT0wfHZyKEspLGFbSGU+PjJd''@;'; + put 'put ''PTB8dnIobCksZj0xOyEoKDB8Zik+PSgwfEEpKTspYVtIZSsoZjw8Mik+PjJdPSgwfGFbSGU+PjJdKSsoKDB8QXIoZixjKSk8PDIpLGY9ZisxfDA7Zm9yKEQ9MHx2cihwZSksTT0wfHZyKHBlKSx3PTB8dnIocWU8PDIpLE9lPTA9PSgwfFJlKSxSZT0wfGFbMTU3MTJdLGY9MCxSPTAsTGU9MTc5''@;'; + put 'put ''NzY5MzEzNDg2MjMxNTdlMjkyO1I8PDI0Pj4yND09MCYoMHxmKTwoMHxrKTspe2Zvcih1MigwfGIsMCwwfFdlKSxudD8oUFYocWUsbHQsdyksZ2U9MCxsPTApOihnZT0wLGw9MCk7Oyl7aWYoKDB8Z2UpPj0oMHxvdCkpe1I9YyxLPTAsbD0wO2JyZWFrfWZvcihqeShwZT1jLWdlLTF8MCwwLE0p''@;'; + put 'put ''LFI9MDshKCgwfFIpPj0oMHxBKSk7KWp5KHBlLCtqblsoMHxhWyhWZT1rdCsoUjw8Mil8MCk+PjJdKSsoZ2U8PDIpPj4yXSxEKSxHRChwZSxELC0xLCgwfGFbVmU+PjJdKSsoZ2U8PDIpKzR8MCksTmsocGUsRCksekQocGUsRCxNLE0pLFI9UisxfDA7Zm9yKHVLKHBlLE0pLFI9MDshKCgwfFIp''@;'; + put 'put ''Pj0oMHxwZSkpOykoYmU9K2puWyhLPU0rKFI8PDIpfDApPj4yXSk+PTM0MDI4MjM0NjYzODUyODg2ZTIyfGJlPDAmJihqbltLPj4yXT0wKSxSPVIrMXwwO1I9bCsxfDAsbD1nZSsxfDA7bjpkb3tpZihudClmb3IoYmU9MCxLPTA7Oyl7aWYoKDB8Syk+PSgwfHBlKSlicmVhayBuO2puWyhWZT13''@;'; + put 'put ''KyhSPDwyKXwwKT4+Ml09YW49K2puW1ZlPj4yXSoram5bTSsoSzw8Mik+PjJdLF9bKFZlPWIrKGwrSzw8Myl8MCk+PjNdPStfW1ZlPj4zXS1hbixiZSs9YW4sUj1SKzF8MCxLPUsrMXwwfWVsc2UgZm9yKGJlPTAsSz0wOzspe2lmKCgwfEspPj0oMHxwZSkpYnJlYWsgbjtqblt3KyhSPDwyKT4+''@;'; + put 'put ''Ml09YW49K2puW00rKEs8PDIpPj4yXSxfWyhWZT1iKyhsK0s8PDMpfDApPj4zXT0rX1tWZT4+M10tYW4sYmUrPWFuLFI9UisxfDAsSz1LKzF8MH19d2hpbGUoMCk7X1soVmU9YisoZ2U8PDMpfDApPj4zXT0rX1tWZT4+M10tYmUsZ2U9bCxsPVJ9Zm9yKDs7KXtpZigoMHxLKT49KDB8Yykpe1I9''@;'; + put 'put ''MDticmVha31qblt3KyhsPDwyKT4+Ml09K19bYisoSzw8Myk+PjNdLFZlPVIrbHwwLFI9UistMXwwLEs9SysxfDAsbD1WZX1mb3IoOzspe2lmKCgwfFIpPj0oMHxBKSl7YmU9MCxSPTA7YnJlYWt9dGQodyxjLDB8YVtrdCsoUjw8Mik+PjJdLDB8YVtIZSsoUjw8Mik+PjJdKSxSPVIrMXwwfWZv''@;'; + put 'put ''cig7ISgoMHxSKT49KDB8QSkpOyliZT0rWDcoYywwfGFba3QrKFI8PDIpPj4yXSwwfGFbSGUrKFI8PDIpPj4yXSkrYmUsUj1SKzF8MDtmb3IoYmU9MipiZStHLFI9MDshKCgwfFIpPj0oMHxBKSk7KXRkKGx0LGMsMHxhWyhWZT1rdCsoUjw8Mil8MCk+PjJdLEQpLGJlLT0rWDcoYywwfGFbVmU+''@;'; + put 'put ''PjJdLEQpLFI9UisxfDA7Zm9yKFNuPUxlLWJlLFI9MSYoYmU8KGFuPStfWzIzMjk0XSk/MTooU24+PTA/U246LVNuKS9MZTxhbiksbD0wOyEoKDB8bCk+PSgwfEEpKTspe0s9MHxhWyhwZT1rdCsobDw8Mil8MCk+PjJdO246ZG97aWYoT2Upe2lmKCgwfERrKGx0LEssMHxhW0hlKyhsPDwyKT4+''@;'; + put 'put ''Ml0sYywuMDAxLGMpKTwwKXtnZT1IZSxwZT1sdCxmPS0xLGw9U3QsSz1rdCxSPUhlO2JyZWFrIHR9fWVsc2V7aWYobEsoYyxLLEQpLCgwfERrKGx0LEQsMHxhW0hlKyhsPDwyKT4+Ml0sYywuMDAxLGMpKTwwKXtnZT1IZSxwZT1sdCxmPS0xLGw9U3QsSz1rdCxSPUhlO2JyZWFrIHR9Zm9yKEs9''@;'; + put 'put ''MDs7KXtpZigoMHxLKT49KDB8YykpYnJlYWsgbjsoMHxKdFsxMTkrKDB8YVsxNisoMHxhW20rKEs8PDIpPj4yXSk+PjJdKT4+MF0pPD0xJiYoYVsoMHxhW3BlPj4yXSkrKEs8PDIpPj4yXT1hW0QrKEs8PDIpPj4yXSksSz1LKzF8MH19fXdoaWxlKDApO2w9bCsxfDB9MD09KDB8KDB8ZiklNSkm''@;'; + put 'put ''ITEmJihfW1p0Pj4zXT1iZSxUMChSZSw5MDM3MSxadCksMD09KDB8KGYrNXwwKSU1MCkpJiZGaigxMCxSZSksZj1mKzF8MCxMZT1iZX1mb3IoUj0wOzspe2lmKCgwfFIpPj0oMHxBKSl7Z2U9SGUscGU9bHQsbD1TdCxLPWt0LFI9SGU7YnJlYWsgdH1mb3IobD1rdCsoUjw8Mil8MCxwZT1wKyhS''@;'; + put 'put ''PDwyKXwwLEs9MDshKCgwfEspPj0oMHxjKSk7KV9bKDB8YVtwZT4+Ml0pKyhLPDwzKT4+M109K2puWygwfGFbbD4+Ml0pKyhLPDwyKT4+Ml0sSz1LKzF8MDtSPVIrMXwwfX19d2hpbGUoMCk7RnQobCksRnQoSyksRnQocGUpLDB8Z2UmJihGdCgwfGFbZ2U+PjJdKSxGdChSKSksRnQoRCksRnQo''@;'; + put 'put ''TSksRnQoYiksRnQodyl9fXdoaWxlKDApO3JldHVybiBhZT1idCwwfGZ9ZnVuY3Rpb24gd0QobCxjLGYscCxtLEEsdyl7bHw9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTA7dmFyIFN0LGt0LGx0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxw''@;'; + put 'put ''ZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MDtmb3IodXI9YWUsYWU9YWUrMzJ8MCxNPXVyKzI0fDAsSG49dXIrOHwwLGt0PXVyKzR8MCxhbj11cixTbj0wfFFuKChidD0oMHwoY3w9MCkpPDUwP2M6NTApPDwyKSxrPTB8UW4oMHxBcihT''@;'; + put 'put ''dD1jPDwzLGJ0KSksYj0wOyEoKDB8Yik+PSgwfGJ0KSk7KWFbU24rKGI8PDIpPj4yXT1rKygoMHxBcihiLGMpKTw8MyksYj1iKzF8MDtmb3IoV2U9KDB8KFdlPSgwfChXZT1idDw8MSkpPjUwP1dlOjUwKSk+KDB8Yyk/YzpXZSxhW00+PjJdPTAsZnVuY3Rpb24gTlgobCxjLGYscCxtKXtsfD0w''@;'; + put 'put ''LHB8PTAsbXw9MDt2YXIgayxNLFIsRyxLLEE9MCx3PTAsYj0wLEQ9MCxwZT0wLGdlPTAsYmU9MDtmb3IoSz1hZSxhZT1hZSsxNnwwLEc9Syx3PTB8UW4oMHxBcihEPShjfD0wKTw8MixmfD0wKSksQT0wfGFbcD4+Ml0sRD0wfFFuKEQpLFI9MHxhW2wrOD4+Ml0sMHxBJiYoRnQoMHxhW0E+PjJd''@;'; + put 'put ''KSxGdChBKSksTT0wfFFuKGY8PDIpLGFbcD4+Ml09TSxBPTA7ISgoMHxBKT49KDB8ZikpOylhW00rKEE8PDIpPj4yXT13KygoMHxBcihBLGMpKTw8MiksQT1BKzF8MDtmb3IoKGs9MCE9KDB8bSkpJiZVWChsLGMpLHA9KDB8VDEoKSklKDB8Yyl8MCxMeShHLGMpLEE9MHxhW00+PjJdLGs/KE95''@;'; + put 'put ''KHAsbCxjLEEpLG09MCxBPTApOihyOChwLGwsYyxBLEcpLG09MCxBPTApOzspe2lmKCgwfEEpPj0oMHxjKSl7Yj0xO2JyZWFrfWFbRCsoQTw8Mik+PjJdPXc9MHxhWygwfGFbTT4+Ml0pKyhBPDwyKT4+Ml0sbT0oYj0oMHx3KT4oMHxtKSk/dzptLHA9Yj9BOnAsQT1BKzF8MH1mb3IoOyEoKDB8''@;'; + put 'put ''Yik+PSgwfGYpKTspe2ZvcihBPTB8YVsodz1NKyhiPDwyKXwwKT4+Ml0saz8oT3kocCxsLGMsQSksQT0wLG09MCk6KHI4KHAsbCxjLEEsRyksQT0wLG09MCk7ISgoMHxBKT49KDB8YykpOylhWyhiZT1EKyhBPDwyKXwwKT4+Ml09Z2U9KDB8KHBlPTB8YVtiZT4+Ml0pKTwoMHwoZ2U9MHxhWygw''@;'; + put 'put ''fGFbdz4+Ml0pKyhBPDwyKT4+Ml0pKT9wZTpnZSxwZT0oYmU9KDB8Z2UpPigwfG0pKT9BOnAsQT1BKzF8MCxtPWJlP2dlOm0scD1wZTtiPWIrMXwwfUZ0KEQpLGsmJlFYKGwsYyxSKSxhZT1LfShsLGMsV2UsTSx3KSxmdW5jdGlvbiBQRChsLGMsZil7bHw9MCxmfD0wO3ZhciBiLHA9MCxtPTAs''@;'; + put 'put ''QT0wLHc9MCxrPTAsTT0wO2ZvcihiPTEvKygwfChjfD0wKSksdz0wOyEoKDB8dyk+PSgwfGYpKTspe2ZvcihrPWwrKHc8PDIpfDAscD0wLG09MDshKCgwfG0pPj0oMHxjKSk7KXArPSsoMHxhWygwfGFbaz4+Ml0pKyhtPDwyKT4+Ml0pLG09bSsxfDA7Zm9yKEE9fn4ocCpiKSxtPTA7ISgoMHxt''@;'; + put 'put ''KT49KDB8YykpOylhWyhNPSgwfGFbaz4+Ml0pKyhtPDwyKXwwKT4+Ml09KDB8YVtNPj4yXSktQSxtPW0rMXwwO3c9dysxfDB9fSgwfGFbTT4+Ml0sYyxXZSksZnVuY3Rpb24gbmQobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBLLHBlLGdlLEE9MCx3PTAsYj0wLGs9MCxNPTAs''@;'; + put 'put ''RD0wLFI9MCxHPTAsYmU9MDtmb3IoZ2U9MHxRbigobXw9MCk8PDIpLHc9Yzw8MyxBPTA7ISgoMHxBKT49KDB8bSkpOylhW2dlKyhBPDwyKT4+Ml09MHxRbih3KSxBPUErMXwwO2ZvcihLPTB8UW4obTw8MykscGU9MHxRbihjPDwyKSxBPTB8UW4oMHxBcih3LGMpKSx3PTA7ISgoMHx3KT49KDB8''@;'; + put 'put ''YykpOylhW3BlKyh3PDwyKT4+Ml09QSxBPUErKGM8PDMpfDAsdz13KzF8MDtmb3Ioaz0wLEc9MTshKCgwfGspPj0oMHxjKSk7KXtmb3IoTT1sKyhrPDwyKXwwLEQ9cGUrKGs8PDIpfDAsdz0wOygwfHcpIT0oMHxHKTspe2ZvcihSPWwrKHc8PDIpfDAsQT0wLGI9MDshKCgwfEEpPj0oMHxmKSk7''@;'; + put 'put ''KWJlPWIrICsoMHxBcigwfGFbKDB8YVtSPj4yXSkrKEE8PDIpPj4yXSwwfGFbKDB8YVtNPj4yXSkrKEE8PDIpPj4yXSkpLEE9QSsxfDAsYj1iZTtfWygwfGFbcGUrKHc8PDIpPj4yXSkrKGs8PDMpPj4zXT1iLF9bKDB8YVtEPj4yXSkrKHc8PDMpPj4zXT1iLHc9dysxfDB9az1rKzF8MCxHPUcr''@;'; + put 'put ''MXwwfWZvcihySyhwZSxjLG0sZ2UsSywxKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfG0pKXtBPTA7YnJlYWt9Zm9yKE09Z2UrKHc8PDIpfDAsRD1wKyh3PDwyKXwwLGs9MDsoMHxrKTwoMHxmKTspe2ZvcihBPTAsYj0wOyEoKDB8QSk+PSgwfGMpKTspYmU9K19bKDB8YVtNPj4yXSkrKEE8PDMpPj4z''@;'; + put 'put ''XSorKDB8YVsoMHxhW2wrKEE8PDIpPj4yXSkrKGs8PDIpPj4yXSkrYixBPUErMXwwLGI9YmU7X1soMHxhW0Q+PjJdKSsoazw8Myk+PjNdPWIsaz1rKzF8MH13PXcrMXwwfWZvcig7ISgoMHxBKT49KDB8bSkpOylGdCgwfGFbZ2UrKEE8PDIpPj4yXSksQT1BKzF8MDtGdChnZSksRnQoSyksRnQo''@;'; + put 'put ''MHxhW3BlPj4yXSksRnQocGUpfSgwfGFbTT4+Ml0sV2UsYyxTbixidCksRnQoMHxhW2FbTT4+Ml0+PjJdKSxGdCgwfGFbTT4+Ml0pLGN0PTB8UW4oV2U9Yzw8MiksYj0wOyEoKDB8Yik+PSgwfGMpKTspYVtjdCsoYjw8Mik+PjJdPS0xLGI9YisxfDA7Zm9yKEx5KEhuLGMpLEV0PTB8YVtsKzg+''@;'; + put 'put ''PjJdLChsdD0wIT0oMHx3KSkmJlVYKGwsYykscWU9MHxRbihXZSksWnQ9MHxRbigxNjApLGs9MHxRbigxNjAqY3wwKSxudD0wfFFuKDE2MCksYj0wOzQwIT0oMHxiKTspYVtudCsoYjw8Mik+PjJdPWsrKCgwfEFyKGIsYykpPDwyKSxiPWIrMXwwO2ZvcihiPSgwfFQxKCkpJSgwfGMpfDAsYVtj''@;'; + put 'put ''dCsoYjw8Mik+PjJdPTAsYVtadD4+Ml09YixrPTB8YVtudD4+Ml0sbHQ/KE95KGIsbCxjLGspLGs9MCxNPTApOihyOChiLGwsYyxrLEhuKSxrPTAsTT0wKTs7KXtpZigoMHxNKT49KDB8Yykpe0c9MTticmVha31hW3FlKyhNPDwyKT4+Ml09b3Q9MHxhWygwfGFbbnQ+PjJdKSsoTTw8Mik+PjJd''@;'; + put 'put ''LGI9KFZlPSgwfG90KT4oMHxrKSk/TTpiLGs9VmU/b3Q6ayxNPU0rMXwwfWZvcig7Oyl7aWYoNDA9PSgwfEcpKXtiPTA7YnJlYWt9Zm9yKGFbY3QrKGI8PDIpPj4yXT1HLGFbWnQrKEc8PDIpPj4yXT1iLGs9MHxhWyhwZT1udCsoRzw8Mil8MCk+PjJdLGx0PyhPeShiLGwsYyxrKSxSPTAsaz0w''@;'; + put 'put ''KToocjgoYixsLGMsayxIbiksUj0wLGs9MCk7ISgoMHxSKT49KDB8YykpOylhWyhNPXFlKyhSPDwyKXwwKT4+Ml09dz0oMHwob3Q9MHxhW00+PjJdKSk8KDB8KHc9MHxhWygwfGFbcGU+PjJdKSsoUjw8Mik+PjJdKSk/b3Q6dywoMHx3KTw9KDB8ayk/KDB8dyk9PSgwfGspJiYwPT0oMHwoMHxU''@;'; + put 'put ''MSgpKSUoUisxfDApKSYmKGs9MHxhW00+PjJdLGI9Uik6KGs9dyxiPVIpLFI9UisxfDA7Rz1HKzF8MH1mb3IoOyEoKDB8Yik+PSgwfGMpKTspYVtxZSsoYjw8Mik+PjJdPS0xLGI9YisxfDA7Zm9yKE9lPTB8UW4oV2UpLG90PTB8UW4oYzw8NCksUmU9KExlPWMrLTF8MCk8PDIsVmU9MCxNPTAs''@;'; + put 'put ''dz0wLGs9MCxIZT0wOyEoKDB8SGUpPj0oMHxjKSk7KXtiPWN0KyhIZTw8Mil8MDtlOmRve2lmKCgwfGFbYj4+Ml0pPi0xKXtmb3IoYVsocGU9b3QrKEhlPDw0KSs0fDApPj4yXT0wfFFuKFJlKSxiZT0wfFFuKFJlKSxhW290KyhIZTw8NCkrOD4+Ml09YmUsYVtvdCsoSGU8PDQpPj4yXT1MZSxm''@;'; + put 'put ''ZVtvdCsoSGU8PDQpKzEyPj4wXT0xLEc9bnQrKGFbYj4+Ml08PDIpfDAsYj0wOzspe2lmKCgwfGIpPT0oMHxIZSkpe1I9SGU7YnJlYWt9YVsoMHxhW3BlPj4yXSkrKGI8PDIpPj4yXT1iLGFbYmUrKGI8PDIpPj4yXT1hWygwfGFbRz4+Ml0pKyhiPDwyKT4+Ml0sYj1iKzF8MH1mb3IoOzspe2lm''@;'; + put 'put ''KGI9UisxfDAsKDB8Uik9PSgwfExlKSl7Yj1MZTticmVhayBlfWFbKDB8YVtwZT4+Ml0pKyhSPDwyKT4+Ml09YixhW2JlKyhSPDwyKT4+Ml09YVsoMHxhW0c+PjJdKSsoYjw8Mik+PjJdLFI9Yn19ZWxzZXtmb3IoKDB8ayk8NDA/KHc9MHxRbihXZSksTT0wfFFuKFdlKSxrPWMsYj0xKTpiPTAs''@;'; + put 'put ''ZmVbb3QrKEhlPDw0KSsxMj4+MF09YixhW290KyhIZTw8NCkrND4+Ml09dyxhW290KyhIZTw8NCkrOD4+Ml09TSxhW290KyhIZTw8NCk+PjJdPTQwLGI9MDs0MCE9KDB8Yik7KWFbdysoYjw8Mik+PjJdPWFbWnQrKGI8PDIpPj4yXSxhW00rKGI8PDIpPj4yXT1hWygwfGFbbnQrKGI8PDIpPj4y''@;'; + put 'put ''XSkrKEhlPDwyKT4+Ml0sYj1iKzF8MDtNPU0rMTYwfDAsdz13KzE2MHwwLGs9aystNDB8MCxiPTQwfX13aGlsZSgwKTtWZT1iK1ZlfDAsSGU9SGUrMXwwfWZvcihGdChxZSksRnQoT2UpLDB8bnQmJihGdCgwfGFbbnQ+PjJdKSxGdChudCkpLG50PTB8UW4oMjAqY3wwKSxHPTB8UW4oUj1WZStj''@;'; + put 'put ''PDwyKSxiZT0yPT0oMHxBKSxSPTB8UW4oUikscGU9MDshKCgwfHBlKT49KDB8YykpOyl7YVtudCsoMjAqcGV8MCkrND4+Ml09RyxhW250KygyMCpwZXwwKSs4Pj4yXT1SLGFbKE9lPW50KygyMCpwZXwwKXwwKT4+Ml09Yj0xKygwfGFbb3QrKHBlPDw0KT4+Ml0pfDAsTT0oMHxhW290KyhwZTw8''@;'; + put 'put ''NCkrOD4+Ml0pLTR8MCx3PW90KyhwZTw8NCkrNHwwO2U6ZG97aWYoYmUpZm9yKEQ9MCxrPTE7Oyl7aWYoKDB8ayk+PSgwfGIpKWJyZWFrIGU7YVtHKyhrPDwyKT4+Ml09YVsoMHxhW3c+PjJdKSsoaystMTw8Mik+PjJdLGpuW1IrKGs8PDIpPj4yXT1nZT0tMS8oKGdlPSsoMHxhW00rKGs8PDIp''@;'; + put 'put ''Pj4yXSkpKmdlKSxELT1nZSxrPWsrMXwwLGI9MHxhW09lPj4yXX1lbHNlIGZvcihEPTAsaz0xOzspe2lmKCgwfGspPj0oMHxiKSlicmVhayBlO2FbRysoazw8Mik+PjJdPWFbKDB8YVt3Pj4yXSkrKGsrLTE8PDIpPj4yXSxqbltSKyhrPDwyKT4+Ml09Z2U9LTEvKygwfGFbTSsoazw8Mik+PjJd''@;'; + put 'put ''KSxELT1nZSxrPWsrMXwwLGI9MHxhW09lPj4yXX19d2hpbGUoMCk7YVtHPj4yXT1wZSxqbltSPj4yXT1ELFI9UisoKFdlPTB8YVtPZT4+Ml0pPDwyKXwwLEc9RysoV2U8PDIpfDAscGU9cGUrMXwwfWZvcihxZT0wfFFuKHA8PDIpLGFbcWU+PjJdPTB8UW4oMHxBcihwPDwzLGJ0KSksYj0xOyEo''@;'; + put 'put ''KDB8Yik+PSgwfHApKTspYVtxZSsoYjw8Mik+PjJdPSgwfGFbcWU+PjJdKSsoKDB8QXIoYixidCkpPDwzKSxiPWIrMXwwO2U6ZG97aWYobSl7Zm9yKGI9MDshKCgwfGIpPj0oMHxwKSk7KXtmb3IoTT1xZSsoYjw8Mil8MCxrPTA7ISgoMHxrKT49KDB8YnQpKTspX1soMHxhW00+PjJdKSsoazw8''@;'; + put 'put ''Myk+PjNdPTAsaz1rKzF8MDtiPWIrMXwwfWlmKDIhPSgwfHApKWZvcihiPTA7Oyl7aWYoKDB8Yik+PSgwfHApKXtiPTA7YnJlYWsgZX1fWygwfGFbcWUrKGI8PDIpPj4yXSkrKGI8PDMpPj4zXT0xLGI9YisxfDB9aWYoX1thW3FlPj4yXT4+M109MSwoMHxCMmUoU24sYnQsYywwfGFbKGI9cWUr''@;'; + put 'put ''NHwwKT4+Ml0pKTw8MjQ+PjI0KWI9MDtlbHNle2ZvcihrPTB8YVtiPj4yXSxiPTA7ISgoMHxiKT49KDB8YnQpKTspX1trKyhiPDwzKT4+M109MCxiPWIrMXwwO19bays4Pj4zXT0xLGI9MH19ZWxzZSBmb3Ioaz0wOzspe2lmKCgwfGspPj0oMHxwKSl7Yj0wO2JyZWFrIGV9Zm9yKE09cWUrKGs8''@;'; + put 'put ''PDIpfDAsYj0wOyEoKDB8Yik+PSgwfGJ0KSk7KWdlPTQuNjU2NjEyODc1MjQ1Nzk3ZS0xMCorKDB8VDEoKSksX1soMHxhW00+PjJdKSsoYjw8Myk+PjNdPWdlLGI9YisxfDA7az1rKzF8MH19d2hpbGUoMCk7Zm9yKDshKCgwfGIpPj0oMHxwKSk7KUJWKFNuLGMsYnQsMHxhW3FlKyhiPDwyKT4+''@;'; + put 'put ''Ml0sMHxhW2YrKGI8PDIpPj4yXSksYj1iKzF8MDthW2t0Pj4yXT0wLGFbYW4+PjJdPTAsb0sobnQsU24sYyxidCxrdCksZnVuY3Rpb24gVDJlKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MDtmb3IoKGI9MHxhWyhB''@;'; + put 'put ''fD0wKT4+Ml0pPyh3PTB8VWEoMHxhW2I+PjJdLDB8QXIoUj1mPDwyLG0pKSxSPTB8VWEoYixSKSk6KHc9MHxCMCgwfEFyKFI9Zjw8MixtKSksUj0wfEIwKFIpKSxhW0E+PjJdPVIsYj0wOzspe2lmKCgwfGIpPj0oMHxmKSl7QT0wO2JyZWFrfWFbUisoYjw8Mik+PjJdPXcsYj1iKzF8MCx3PXcr''@;'; + put 'put ''KG08PDIpfDB9Zm9yKDshKCgwfEEpPj0oMHxmKSk7KXtmb3IoTT1sKyhBPDwyKXwwLEQ9UisoQTw8Mil8MCxiPTA7KDB8Yik8KDB8bSk7KXtmb3Iodz0wLGs9MDshKCgwfHcpPj0oMHxwKSk7KUc9K19bKDB8YVtNPj4yXSkrKHc8PDMpPj4zXSoram5bKDB8YVtjKyh3PDwyKT4+Ml0pKyhiPDwy''@;'; + put 'put ''KT4+Ml0rayx3PXcrMXwwLGs9RztqblsoMHxhW0Q+PjJdKSsoYjw8Mik+PjJdPWssYj1iKzF8MH1BPUErMXwwfX0oU24sMHxhW2t0Pj4yXSxidCxjLGJ0LGFuKSxGdCgwfGFbYVtrdD4+Ml0+PjJdKSxGdCgwfGFba3Q+PjJdKSxIZT0wfFFuKFN0KSxWZT0wfFFuKGJ0PDwzKSxiPTAsaz0wLEQ9''@;'; + put 'put ''K2xzZShmLG90LHAsYyxBKTtlOmZvcig7KDB8ayk8NTAmYjw8MjQ+PjI0PT0wOyl7Zm9yKExlPTA7ISgoMHxMZSk+PSgwfHApKTspe2ZvcihSZT1mKyhMZTw8Mil8MCxNPTA7ISgoMHxNKT49KDB8YykpOyl7Zm9yKF9bKFI9SGUrKE08PDMpfDApPj4zXT0wLEc9KDB8YVtvdCsoTTw8NCkrOD4+''@;'; + put 'put ''Ml0pLTR8MCxwZT0wfGFbbnQrKDIwKk18MCkrND4+Ml0sYmU9MHxhW250KygyMCpNfDApKzg+PjJdLE9lPW50KygyMCpNfDApfDAsSz0wLHc9MTshKCgwfHcpPj0oMHxhW09lPj4yXSkpOykoZ2U9K0pYKGYscCxNLGI9MHxhW3BlKyh3PDwyKT4+Ml0pKT4xZS0zMCYmKF9bUj4+M109KGdlPS0r''@;'; + put 'put ''am5bYmUrKHc8PDIpPj4yXSorKDB8YVtHKyh3PDwyKT4+Ml0pL2dlKSorX1soMHxhW1JlPj4yXSkrKGI8PDMpPj4zXSsgK19bUj4+M10sSy09Z2UpLHc9dysxfDA7X1tSPj4zXT0rX1tSPj4zXSsgK19bKDB8YVtSZT4+Ml0pKyhNPDwzKT4+M10qSyxNPU0rMXwwfWlmKE9WKFNuLGJ0LGMsSGUs''@;'; + put 'put ''VmUpLDB8dlYoMHxhW2FuPj4yXSwwfGFbKGI9cWUrKExlPDwyKXwwKT4+Ml0sVmUsYnQsLjAwMSxidCwwKSl7az0tMTticmVhayBlfUJWKFNuLGMsYnQsMHxhW2I+PjJdLDB8YVtSZT4+Ml0pLExlPUxlKzF8MH0xJms/Yj0wOihnZT0rbHNlKGYsb3QscCxjLEEpLGI9KEQ9K2VvKCsoZ2UtRCkp''@;'; + put 'put ''LyhnZSsxZS0xMCkpPCtfWzIzMjk0XSYxLEQ9Z2UpLGs9aysxfDB9Zm9yKEZ0KFZlKSxGdChIZSksbHQmJlFYKGwsYyxFdCksYj0wOyEoKDB8Yik+PSgwfGMpKTspMHxmZVtvdCsoYjw8NCkrMTI+PjBdJiYoRnQoMHxhW290KyhiPDw0KSs0Pj4yXSksRnQoMHxhW290KyhiPDw0KSs4Pj4yXSkp''@;'; + put 'put ''LGI9YisxfDA7cmV0dXJuIEZ0KG90KSxGdCgwfGFbbnQrND4+Ml0pLEZ0KDB8YVtudCs4Pj4yXSksRnQobnQpLEZ0KGN0KSxGdChadCksRnQoMHxhW3FlPj4yXSksRnQocWUpLDB8KGI9MHxhW2FuPj4yXSkmJihGdCgwfGFbYj4+Ml0pLEZ0KDB8YVthbj4+Ml0pKSxGdCgwfGFbU24+PjJdKSxG''@;'; + put 'put ''dChTbikseEQoSG4pLGFlPXVyLDB8a31mdW5jdGlvbiBsc2UobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTA7ZTpkb3tpZigyPT0oMHxtKSlmb3IoQT0wLE09MDs7KXtpZigoMHxNKT49KDB8cCkp''@;'; + put 'put ''YnJlYWsgZTtmb3IoUj0wfGFbYysoTTw8NCk+PjJdLEc9YysoTTw8NCkrNHwwLEQ9YysoTTw8NCkrOHwwLGs9MDshKCgwfGspPj0oMHxSKSk7KXtpZigoMHwoYj0wfGFbKDB8YVtHPj4yXSkrKGs8PDIpPj4yXSkpPigwfE0pKXtmb3Iodz0wLG09MDshKCgwfG0pPj0oMHxmKSk7KXc9KEs9K19b''@;'; + put 'put ''KHBlPTB8YVtsKyhtPDwyKT4+Ml0pKyhNPDwzKT4+M10tK19bcGUrKGI8PDMpPj4zXSkqSyt3LG09bSsxfDA7dz0rRDAoK3cpLEE9KHc9KEs9KygwfGFbKDB8YVtEPj4yXSkrKGs8PDIpPj4yXSkpLXcpKncvKEsqSykrQX1rPWsrMXwwfU09TSsxfDB9ZWxzZSBmb3IoTT0wLEE9MDs7KXtpZigo''@;'; + put 'put ''MHxNKT49KDB8cCkpYnJlYWsgZTtmb3IoRD0wfGFbYysoTTw8NCk+PjJdLFI9YysoTTw8NCkrNHwwLEc9YysoTTw8NCkrOHwwLGs9MDshKCgwfGspPj0oMHxEKSk7KXtpZigoMHwoYj0wfGFbKDB8YVtSPj4yXSkrKGs8PDIpPj4yXSkpPigwfE0pKXtmb3Iodz0wLG09MDshKCgwfG0pPj0oMHxm''@;'; + put 'put ''KSk7KXc9KEs9K19bKHBlPTB8YVtsKyhtPDwyKT4+Ml0pKyhNPDwzKT4+M10tK19bcGUrKGI8PDMpPj4zXSkqSyt3LG09bSsxfDA7dz0rRDAoK3cpLEE9KHc9KEs9KygwfGFbKDB8YVtHPj4yXSkrKGs8PDIpPj4yXSkpLXcpKncvSytBfWs9aysxfDB9TT1NKzF8MH19d2hpbGUoMCk7cmV0dXJu''@;'; + put 'put ''K0F9ZnVuY3Rpb24gWkoobCl7cmV0dXJuKyArRDAoKyhsPStsKSkqbH1mdW5jdGlvbiB6SihsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIEEscD0wLG09MCx3PTA7Zm9yKEE9MHxhWzQ3MTM3XSxwPTAsbT0wOyEoKDB8bSk+PSgwfEEpKTspX1tmKyhtPDwzKT4+M109dz0rX1tsKyhtPDwzKT4+''@;'; + put 'put ''M10tK19bYysobTw8Myk+PjNdLHA9dyp3K3AsbT1tKzF8MDtyZXR1cm4rICtEMCgrcCl9ZnVuY3Rpb24gY2cobCxjLGYpe2N8PTAsZj0rZjt2YXIgdyxwPTAsbT0wLEE9MDtmb3Iodz0wfHZyKChsfD0wKTw8MiksbT0wLEE9MHx2cigwfEFyKGw8PDMsYykpOyEoKDB8bSk+PSgwfGwpKTspe2Zv''@;'; + put 'put ''cihhW3crKG08PDIpPj4yXT1BLHA9MDshKCgwfHApPj0oMHxjKSk7KV9bQSsocDw8Myk+PjNdPWYscD1wKzF8MDttPW0rMXwwLEE9QSsoYzw8Myl8MH1yZXR1cm4gMHx3fWZ1bmN0aW9uIEI3KGwpezB8KGx8PTApJiYoRnQoMHxhW2w+PjJdKSxGdChsKSl9ZnVuY3Rpb24gR0oobCxjKXtjfD0w''@;'; + put 'put ''O3ZhciBiLGssTSxELGY9MCxwPTAsbT0wLEE9MCx3PTAsUj0wO0Q9YWUsYWU9YWUrMTZ8MCxNPTB8R28obHw9MCksaz0wfFYzKGwpLGI9MHxzaShsLDIsOTI0OTMsMCk7ZTpkb3tpZihjKWZvcihfWzIzMjk0XT0xZS00LGFRKGwsMTA4ODg2LDE4NjM1MiksbT0wLGY9MCxBPTB8RHQobCk7Oyl7''@;'; + put 'put ''aWYoIUEpYnJlYWsgZTthWzEyMCsoMHxhW0ErMTY+PjJdKT4+Ml09bSxtPW0rMXwwLGY9cD0rR04obCxBLGIpK2YsQT0wfHp0KGwsQSl9ZWxzZSBmb3IoX1syMzI5NF09MWUtNCorKDB8TSksYVEobCwxMDg4ODYsMTg2MzUyKSxtPTB8TGkoMHxhW2wrNjA+PjJdLDkwMTAwKSxmPW0/K2twKG0p''@;'; + put 'put ''Oi45OSxfWzIzMjk2XT1mLG09MHx2cig0KyhNPDwyKXwwKSx3PWwrMTZ8MCxhWzE1MisoMHxhW3c+PjJdKT4+Ml09bSxtPTAsZj0wLEE9MHxEdChsKTs7KXtpZighQSlicmVhayBlO2FbKDB8YVsxNTIrKDB8YVt3Pj4yXSk+PjJdKSsobTw8Mik+PjJdPUEsYVsxMjArKFI9MHxhW0ErMTY+PjJd''@;'; + put 'put ''KT4+Ml09bSxhW1IrMTI0Pj4yXT0tMSxtPW0rMXwwLGY9cD0rR04obCxBLGIpK2YsQT0wfHp0KGwsQSl9fXdoaWxlKDApO3JldHVybiAwIT0oMHwobT0wfExpKGwsOTAxMDgpKSkmJjAhPSgwfGZlW20+PjBdKT8oZj0rX1syMzI5NF0pPihwPStrcChtKSl8fChmPXApOmY9Zi8rKDB8KCgwfGsp''@;'; + put 'put ''PjE/azoxKSkqK0QwKCsgKygwfE0pKSsxLF9bMjMyOTVdPWYsYVs0NzEzNF18Y3x8KGM9MHxjZyhNLE0sZiksYVsxNjArKDB8YVsoUj1sKzE2fDApPj4yXSk+PjJdPWMsYz0wfGNnKE0sTSwxKSxhWzE2NCsoMHxhW1I+PjJdKT4+Ml09YyxjPTB8Y2coTSwwfGFbNDcxMzddLDEpLGFbMTY4Kygw''@;'; + put 'put ''fGFbUj4+Ml0pPj4yXT1jLGM9MHxmdW5jdGlvbiBzc2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgYixrLE0scD0wLG09MCxBPTAsdz0wO2ZvcihiPTB8dnIoNCsoKGx8PTApPDwyKXwwKSxrPTQrKGM8PDIpfDAsTT1mPDwzLEE9MDshKCgwfEEpPj0oMHxsKSk7KXtmb3IoYVsodz1iKyhBPDwyKXww''@;'; + put 'put ''KT4+Ml09MHx2cihrKSxtPTA7ISgoMHxtKT49KDB8YykpOyl7Zm9yKHA9MHx2cihNKSxhWygwfGFbdz4+Ml0pKyhtPDwyKT4+Ml09cCxwPTA7ISgoMHxwKT49KDB8ZikpOylfWygwfGFbKDB8YVt3Pj4yXSkrKG08PDIpPj4yXSkrKHA8PDMpPj4zXT0wLHA9cCsxfDA7bT1tKzF8MH1hWygwfGFb''@;'; + put 'put ''dz4+Ml0pKyhtPDwyKT4+Ml09MCxBPUErMXwwfXJldHVybiBhW2IrKEE8PDIpPj4yXT0wLDB8Yn0oTSxNLDB8YVs0NzEzN10pLGFbMTcyKygwfGFbUj4+Ml0pPj4yXT1jKSxhZT1ELDB8TX1mdW5jdGlvbiBHTihsLGMsZil7Znw9MDt2YXIgQSx3LGsscD0wLG09MCxiPTA7Zm9yKGs9YWUsYWU9''@;'; + put 'put ''YWUrMzJ8MCx3PWsrOHwwLEE9ayxjPTB8dzAobHw9MCxjfD0wKSxwPTA7Yzspe3N3aXRjaCgwfHVzZShjLGYsQSkpe2Nhc2UgMDptPStfW0E+PjNdO2JyZWFrO2Nhc2UgMjphW3c+PjJdPTB8dGkobCksX1t3Kzg+PjNdPTEsJHIoMyw5MDEyMCx3KSxiPTY7YnJlYWs7ZGVmYXVsdDpiPTZ9Nj09''@;'; + put 'put ''KDB8YikmJihiPTAsX1tBPj4zXT0xLG09MSksX1sxMzYrKDB8YVtjKzE2Pj4yXSk+PjNdPW0sYz0wfFMwKGwsYykscD1tK3B9cmV0dXJuIGFlPWssK3B9ZnVuY3Rpb24gdXNlKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSx3LGIscD0wLG09MDtiPWFlLGFlPWFlKzE2fDAsdz1iKzh8MCxB''@;'; + put 'put ''PWI7ZG97aWYoMCE9KDB8YykmJihwPTB8SG8obCxjKSwwIT0oMHxmZVtwPj4wXSkpKXtpZihhW0E+PjJdPWYsKDB8aWwocCwxMDEyMDksQSkpPj0xJiYhKChtPStfW2Y+PjNdKTwwKSYmMCE9bXwwIT0oMHxhWzQ3MTM0XSkpe2w9MDticmVha31hW3c+PjJdPXAsJHIoMCw5MDE0Nyx3KSxsPTJ9''@;'; + put 'put ''ZWxzZSBsPTF9d2hpbGUoMCk7cmV0dXJuIGFlPWIsMHxsfWZ1bmN0aW9uIFdOKGwpe0Z0KDB8YVsxNTIrKDB8YVsobD0xNisobHw9MCl8MCk+PjJdKT4+Ml0pLDB8YVs0NzEzNF18fChCNygwfGFbMTYwKygwfGFbbD4+Ml0pPj4yXSksQjcoMHxhWzE2NCsoMHxhW2w+PjJdKT4+Ml0pLEI3KDB8''@;'; + put 'put ''YVsxNjgrKDB8YVtsPj4yXSk+PjJdKSxmdW5jdGlvbiBtOWUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7aWYoMHwobHw9MCkpe2ZvcihtPTA7Yz0wfGFbKEE9bCsobTw8Mil8MCk+PjJdOyl7Zm9yKHA9MDtmPTB8YVtjKyhwPDwyKT4+Ml07KUZ0KGYpLHA9cCsxfDAsYz0wfGFbQT4+Ml07''@;'; + put 'put ''RnQoYyksbT1tKzF8MH1GdChsKX19KDB8YVsxNzIrKDB8YVtsPj4yXSk+PjJdKSxhWzE3MisoMHxhW2w+PjJdKT4+Ml09MCl9ZnVuY3Rpb24gWUoobCxjLGYpe2Z8PTA7dmFyIHAsbT0wO2ZvcihwPSsoMHwoY3w9MCkpLGM9MTYrKGx8PTApfDA7ISgoMHxmKT49KDB8YVs0NzEzN10pKTspbT0r''@;'; + put 'put ''cWMoKSpwLF9bKDB8YVsxMzIrKDB8YVtjPj4yXSk+PjJdKSsoZjw8Myk+PjNdPW0sZj1mKzF8MH1mdW5jdGlvbiBZTihsLGMpe1lKKGx8PTAsY3w9MCwyKX1mdW5jdGlvbiBmc2UobCxjKXtsfD0wO3ZhciBmLG0scD0wO3A9KygwfChjfD0wKSksbT0rcWMoKSpwLF9bYVsxMzIrKDB8YVsoZj1s''@;'; + put 'put ''KzE2fDApPj4yXSk+PjJdPj4zXT1tLHA9K3FjKCkqcCxfWzgrKDB8YVsxMzIrKDB8YVtmPj4yXSk+PjJdKT4+M109cCwoMHxhWzQ3MTM3XSk+MiYmWU4obCxjKX1mdW5jdGlvbiBBOWUobCxjKXtsfD0wLGN8PTA7dmFyIEQsRyxLLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0w''@;'; + put 'put ''LHBlPTA7aWYoSz1hZSxhZT1hZSsxNnwwLEc9SyxhWzQ2Nzk5XT1EPTErKDB8YVs0Njc5OV0pfDAsKDB8YVsxNTYrKGw9MHxhW2wrMTY+PjJdKT4+Ml0pPCgwfGFbNDcxMzZdKSl7Zm9yKGs9MHxhWzQ3MTM3XSxNPWwrMTUyfDAsYj1sKzE2OHwwLGw9MCxmPTAsdz0wOyEoKDB8dyk+PSgwfGMp''@;'; + put 'put ''KTspe2lmKCgwfEp0WzExOSsoMHxhWzE2KyhtPTB8YVsoMHxhW00+PjJdKSsodzw8Mik+PjJdKT4+Ml0pPj4wXSk8PTEpe2ZvcihBPTAscD0wOyEoKDB8cCk+PSgwfGspKTspQT0ocGU9K19bKDB8YVsoMHxhW2I+PjJdKSsodzw8Mik+PjJdKSsocDw8Myk+PjNdKSpwZStBLHA9cCsxfDA7QT5m''@;'; + put 'put ''JiYobD1tLGY9QSl9dz13KzF8MH1mPCtfWzIzMjE2XT9sPTA6ITEmMD09KDB8KDB8RCklMTAwKSYmKFI9MHxhWzE1NzEyXSxfW0c+PjNdPStEMCgrZiksVDAoUiw5MDM3MSxHKSwwPT0oMHwoMHxhWzQ2Nzk5XSklMWUzKSkmJkZqKDEwLFIpfWVsc2UgbD0wO3JldHVybiBhZT1LLDB8bH1mdW5j''@;'; + put 'put ''dGlvbiBiRChsLGMsZil7bHw9MCxjfD0wO3ZhciBiLFIsTSxwPTAsbT0wLEE9MCx3PTAsaz0wO2ZvcihSPWFlLGFlPWFlKzE2fDAsTT0wfGFbMTIwKygwfGFbKGs9MTYrKGZ8PTApfDApPj4yXSk+PjJdLEE9KG09MHxhWzQ2Nzk4XSk/MHxWMChtLDB8QXIoKEE9MHxhWzQ3MTM3XSk8PDMsQSkp''@;'; + put 'put ''OjB8UW4oMHxBcigoQT0wfGFbNDcxMzddKTw8MyxBKSksYVs0Njc5OF09QSxmdW5jdGlvbiBVTihsLGMsZixwKXtjfD0wLHB8PTA7dmFyIGdlLGJlLE9lLFJlLEhlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLExlPTA7Zm9yKEhlPWFlLGFlPWFlKzgwfDAs''@;'; + put 'put ''UmU9SGUsaz0wfGFbMTY0KyhMZT0wfGFbMTYrKGx8PTApPj4yXSk+PjJdLE09MHxhW0xlKzE2MD4+Ml0sYj0wfGFbKExlPTB8YVtMZSsxNTI+PjJdKSsoKGZ8PTApPDwyKT4+Ml0sQT0wfGFbNDcxMzddLGw9MDshKCgwfGwpPj0oMHxBKSk7KXtmb3Iodz0wfEFyKEEsbCksbT0wOygwfG0pIT0o''@;'; + put 'put ''MHxBKTspX1twKyh3K208PDMpPj4zXT0wLG09bSsxfDA7bD1sKzF8MH1mb3IoT2U9MHxhWzQ3MTM3XSxiZT1iKzE2fDAsZ2U9aysoZjw8Mil8MCxrPU0rKGY8PDIpfDAsYj0wOyEoKDB8Yik+PSgwfGMpKTspe2U6ZG97aWYoKDB8YikhPSgwfGYpKXtmb3IobT0xNisoMHxhW0xlKyhiPDwyKT4+''@;'; + put 'put ''Ml0pfDAscGU9MCxsPTA7ISgoMHxsKT49KDB8T2UpKTspX1tSZSsobDw8Myk+PjNdPUs9K19bKDB8YVsxMzIrKDB8YVtiZT4+Ml0pPj4yXSkrKGw8PDMpPj4zXS0rX1soMHxhWzEzMisoMHxhW20+PjJdKT4+Ml0pKyhsPDwzKT4+M10scGU9SypLK3BlLGw9bCsxfDA7Zm9yKEQ9MS8rWkoocGUp''@;'; + put 'put ''LHc9MDs7KXtpZigoMHx3KT49KDB8T2UpKWJyZWFrIGU7Zm9yKG09KDB8YVtnZT4+Ml0pKyhiPDwzKXwwLEE9KDB8YVtrPj4yXSkrKGI8PDMpfDAsUj0rX1tSZSsodzw8Myk+PjNdLGw9MDtHPStfW20+PjNdLEs9K19bQT4+M10sKDB8bCkhPSgwfHcpOylNPXArKCgwfEFyKE9lLGwpKSt3PDwz''@;'; + put 'put ''KXwwLF9bTT4+M109K19bTT4+M10rRypEKksqUiorX1tSZSsobDw8Myk+PjNdLGw9bCsxfDA7TT1wKygoMHxBcihPZSx3KSkrdzw8Myl8MCxfW00+PjNdPSgxLUsqRCoocGUtUipSKSkqRysgK19bTT4+M10sdz13KzF8MH19fXdoaWxlKDApO2I9YisxfDB9Zm9yKG09MHxhWzQ3MTM3XSx3PTE7''@;'; + put 'put ''ISgoMHx3KT49KDB8bSkpOyl7Zm9yKEE9MHxBcihtLHcpLGw9MDsoMHxsKSE9KDB8dyk7KV9bcCsoQStsPDwzKT4+M109K19bcCsoKDB8QXIobSxsKSkrdzw8Myk+PjNdLGw9bCsxfDA7dz13KzF8MH1hZT1IZX0obCxjLE0sQSksdz0wfGFbNDcxMzddLGI9bCsxNnwwLG09MDshKCgwfG0pPj0o''@;'; + put 'put ''MHx3KSk7KV9bMTg1NzM2KyhtPDwzKT4+M109LStfWygwfGFbKDB8YVsxNjgrKDB8YVtiPj4yXSk+PjJdKSsoTTw8Mik+PjJdKSsobTw8Myk+PjNdLG09bSsxfDA7Zm9yKGZ1bmN0aW9uIEoyZShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MDt2YXIgcGUsZ2UsYmUsT2UsbT0wLEE9MCx3PTAsYj0w''@;'; + put 'put ''LGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLExlPTAsUmU9MDtmb3IoYmU9MHxRbigoZ2U9MHxBcihwfD0wLHApKTw8MyksT2U9MHxRbihwPDwzKSxtPTA7ISgoMHxtKT49KDB8cCkpOylfW09lKyhtPDwzKT4+M109K19bZisobTw8Myk+PjNdLG09bSsxfDA7Zm9yKG09MDshKCgwfG0pPj0oMHxn''@;'; + put 'put ''ZSkpOylfW2JlKyhtPDwzKT4+M109K19bbCsobTw8Myk+PjNdLG09bSsxfDA7cGU9cCstMXwwLHc9MCxLPTA7ZTpmb3IoOzspe2lmKCEoKDB8Syk8KDB8cGUpKSl7RD0yMTticmVha31mb3IoQT0wLG09SzshKCgwfG0pPj0oMHxwKSk7KUc9KFI9KExlPStlbygrICtfW2wrKCgwfEFyKG0scCkp''@;'; + put 'put ''K0s8PDMpPj4zXSkpPEEpP3c6bSxBPVI/QTpMZSxtPW0rMXwwLHc9RztpZihBPDFlLTEwKXtEPTMzO2JyZWFrfWZvcihiPTB8QXIodyxwKSxHPTB8QXIoSyxwKSxtPUs7ISgoMHxtKT49KDB8cCkpOylMZT0rX1soRD1sKyhtK2I8PDMpfDApPj4zXSxfW0Q+PjNdPStfWyhSPWwrKG0rRzw8Myl8''@;'; + put 'put ''MCk+PjNdLF9bUj4+M109TGUsbT1tKzF8MDtmb3IoTGU9K19bKFI9Zisodzw8Myl8MCk+PjNdLF9bUj4+M109K19bKGs9ZisoSzw8Myl8MCk+PjNdLF9baz4+M109TGUsTT1sKyhHK0s8PDMpfDAsbT1SPUsrMXwwOzspe2lmKCgwfG0pPj0oMHxwKSl7Sz1SO2NvbnRpbnVlIGV9Zm9yKEQ9MHxB''@;'; + put 'put ''cihtLHApLF9bKGI9ZisobTw8Myl8MCk+PjNdPStfW2I+PjNdLStfW2s+PjNdKihBPStfW2wrKEQrSzw8Myk+PjNdLytfW00+PjNdKSxiPTA7ISgoMHxiKT49KDB8cCkpOylfWyhSZT1sKyhiK0Q8PDMpfDApPj4zXT0rX1tSZT4+M10tK19bbCsoYitHPDwzKT4+M10qQSxiPWIrMXwwO209bSsx''@;'; + put 'put ''fDB9fWlmKDIxPT0oMHxEKSlpZigrZW8oKyhBPStfW2wrKGdlKy0xPDwzKT4+M10pKTwxZS0xMClEPTMzO2Vsc2V7Zm9yKF9bYysocGU8PDMpPj4zXT0rX1tmKyhwZTw8Myk+PjNdL0EsbT0wOzspe2lmKCgwfG0pPj0oMHxwZSkpe209MDticmVha31mb3IoX1soaz1jKygoYj0odz1wLW18MCkt''@;'; + put 'put ''MnwwKTw8Myl8MCk+PjNdPUE9K19bZisoYjw8Myk+PjNdLE09MHxBcihiLHApLHc9dystMXwwOyEoKDB8dyk+PSgwfHApKTspX1trPj4zXT1MZT1BLStfW2MrKHc8PDMpPj4zXSorX1tsKyh3K008PDMpPj4zXSx3PXcrMXwwLEE9TGU7X1trPj4zXT1BLytfW2wrKE0rYjw8Myk+PjNdLG09bSsx''@;'; + put 'put ''fDB9Zm9yKDs7KXtpZigoMHxtKT49KDB8cCkpe209MDticmVha31fW2YrKG08PDMpPj4zXT0rX1tPZSsobTw8Myk+PjNdLG09bSsxfDB9Zm9yKDshKCgwfG0pPj0oMHxnZSkpOylfW2wrKG08PDMpPj4zXT0rX1tiZSsobTw8Myk+PjNdLG09bSsxfDA7RnQoYmUpLEZ0KE9lKX0zMz09KDB8RCkm''@;'; + put 'put ''JihmdW5jdGlvbiBjZmUobCl7bHw9MDt2YXIgcCxtLGM9MCxmPTA7bT0oMHxhWzc2KyhwPTB8YVsxNTY3OV0pPj4yXSk+LTE/MHxSZigpOjA7ZG97aWYoKDB8X3UobCxwKSk8MClsPS0xO2Vsc2V7aWYoMTAhPSgwfGZlW3ArNzU+PjBdKSYmKGY9MHxhWyhjPXArMjB8MCk+PjJdKT4+PjA8KDB8''@;'; + put 'put ''YVtwKzE2Pj4yXSk+Pj4wKXthW2M+PjJdPWYrMSxmZVtmPj4wXT0xMCxsPTA7YnJlYWt9bD0oMHx4aihwLDEwKSk+PjMxfX13aGlsZSgwKTswfG0mJmUzKCl9KDkzOTg5KSxGdChiZSksRnQoT2UpKX0oQSwxODU4MTYsMTg1NzM2LHcpLG09MDshKCgwfG0pPj0oMHxhWzQ3MTM3XSkpOylwPTIq''@;'; + put 'put ''KDEtKHA9K19bMjMyOTZdKSkqK3FjKCkrcCxfWyh3PTE4NTgxNisobTw8Myl8MCk+PjNdPXAqPStfW3c+PjNdLF9bKHc9KDB8YVsxMzIrKDB8YVtrPj4yXSk+PjJdKSsobTw8Myl8MCk+PjNdPStfW3c+PjNdK3AsbT1tKzF8MDthWyhrPTE1NisoMHxhW2I+PjJdKXwwKT4+Ml09MSsoMHxhW2s+''@;'; + put 'put ''PjJdKSxmdW5jdGlvbiBRTihsLGMsZil7Y3w9MDt2YXIgYixrLE0scD0wLG09MCxBPTAsdz0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTA7Zm9yKE09YWUsYWU9YWUrODB8MCxrPU0sQT0wfGFbKDB8YVsxNTIrKG09MHxhWyhiPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkrKChmfD0wKTw8Mik+''@;'; + put 'put ''PjJdLHA9MHxhWzQ3MTM3XSxtPW0rMTY4fDAsbD0wOyEoKDB8bCk+PSgwfHApKTspX1soMHxhWygwfGFbbT4+Ml0pKyhmPDwyKT4+Ml0pKyhsPDwzKT4+M109MCxsPWwrMXwwO2ZvcihtPUErMTZ8MCxsPTA7ISgoMHxsKT49KDB8YykpOyl7ZTpkb3tpZigoMHxsKSE9KDB8ZikpZm9yKHc9K3pK''@;'; + put 'put ''KDB8YVsxMzIrKDB8YVttPj4yXSk+PjJdLDB8YVsxMzIrKDB8YVsxNisoMHxhWygwfGFbMTUyKygwfGFbYj4+Ml0pPj4yXSkrKGw8PDIpPj4yXSk+PjJdKT4+Ml0sayksQT0wfGFbNDcxMzddLHc9MS93LHA9MDs7KXtpZigoMHxwKT49KDB8QSkpYnJlYWsgZTtfWyhwZT0oMHxhWygwfGFbKEs9''@;'; + put 'put ''MHxhWzE3MisoRD0wfGFbYj4+Ml0pPj4yXSkrKGY8PDIpPj4yXSkrKGw8PDIpPj4yXSkrKHA8PDMpfDApPj4zXT1SPSgoUj0rX1trKyhwPDwzKT4+M10pLStfWygwfGFbKDB8YVtEKzE2MD4+Ml0pKyhmPDwyKT4+Ml0pKyhsPDwzKT4+M10qUip3KSorX1soMHxhWygwfGFbRCsxNjQ+PjJdKSso''@;'; + put 'put ''Zjw8Mik+PjJdKSsobDw8Myk+PjNdLF9bKGdlPSgwfGFbKEQ9MHxhW0QrMTY4Pj4yXSkrKGY8PDIpPj4yXSkrKHA8PDMpfDApPj4zXT0rX1tnZT4+M10rUixSPStfWyhLPSgwfGFbKDB8YVtLKyhsPDwyKT4+Ml0pKyhmPDwyKT4+Ml0pKyhwPDwzKXwwKT4+M10sX1tLPj4zXT1HPS0rX1twZT4+''@;'; + put 'put ''M10sX1soRD0oMHxhW0QrKGw8PDIpPj4yXSkrKHA8PDMpfDApPj4zXT1HLVIrICtfW0Q+PjNdLHA9cCsxfDB9fXdoaWxlKDApO2w9bCsxfDB9YWU9TX0obCxjLE0pLGFlPVJ9ZnVuY3Rpb24gSk4obCl7dmFyIGYsQSxjPTAscD0wLG09MCx3PTAsYj0wO2ZvcihBPTB8YVs0NjgwMF0sYz0wfGFb''@;'; + put 'put ''MTI0KygwfGFbKGY9MTYrKGx8PTApfDApPj4yXSk+PjJdOyEoKDB8Yyk8PTB8fCh3PShjKy0xfDApLzJ8MCxiPUErKHc8PDIpfDAscD0wfGFbYj4+Ml0sbT1wKzE2fDAsK19bMTM2KygwfGFbbT4+Ml0pPj4zXTw9K19bMTM2KygwfGFbZj4+Ml0pPj4zXSkpOylhW2I+PjJdPWwsYVsxMjQrKDB8''@;'; + put 'put ''YVtmPj4yXSk+PjJdPXcsYVtBKyhjPDwyKT4+Ml09cCxhWzEyNCsoMHxhW20+PjJdKT4+Ml09YyxjPXd9ZnVuY3Rpb24gWE4obCl7dmFyIGMsZjsoMHxhWyhjPTEyNCsoMHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSk+PTAmJlByKDkwMzc3LDkwMzk3LDY0Myw5MDQwNSksYVs0NjgwMV09MSso''@;'; + put 'put ''Zj0wfGFbNDY4MDFdKSxhW2M+PjJdPWYsYVsoMHxhWzQ2ODAwXSkrKGY8PDIpPj4yXT1sLCgwfGYpPjAmJkpOKGwpfWZ1bmN0aW9uIFFKKCl7dmFyIGMsbD0wLGY9MCxwPTA7cmV0dXJuKGM9MHxhWzQ2ODAxXSk/KGw9MHxhWyhwPTB8YVs0NjgwMF0pPj4yXSxhWzQ2ODAxXT1mPWMrLTF8MCxh''@;'; + put 'put ''W3A+PjJdPWY9MHxhW3ArKGY8PDIpPj4yXSxhWzEyNCsoMHxhW2YrMTY+PjJdKT4+Ml09MCwoMHxjKT4yJiZmdW5jdGlvbiBkc2UobCl7dmFyIHcsYixrLGM9MCxmPTAscD0wLG09MCxBPTAsTT0wO2ZvcihiPTB8YVs0NjgwMV0saz0wfGFbNDY4MDBdLEE9MHxhWzEyNCsoMHxhWyh3PTE2Kyhs''@;'; + put 'put ''fD0wKXwwKT4+Ml0pPj4yXTshKCgwfChwPUE8PDF8MSkpPj0oMHxiKXx8KGY9cCsxfDAsKDB8Zik8KDB8Yik/KG09MHxhW2srKGY8PDIpPj4yXSxjPTB8YVtrKyhwPDwyKT4+Ml0sK19bMTM2KygwfGFbbSsxNj4+Ml0pPj4zXTwrX1sxMzYrKDB8YVtjKzE2Pj4yXSk+PjNdPyhwPWYsYz1tKTpN''@;'; + put 'put ''PTYpOihjPTB8YVtrKyhwPDwyKT4+Ml0sTT02KSw2PT0oMHxNKSYmKE09MCksZj1jKzE2fDAsK19bMTM2KygwfGFbdz4+Ml0pPj4zXTw9K19bMTM2KygwfGFbZj4+Ml0pPj4zXSkpOylhW2srKHA8PDIpPj4yXT1sLGFbMTI0KygwfGFbdz4+Ml0pPj4yXT1wLGFbaysoQTw8Mik+PjJdPWMsYVsx''@;'; + put 'put ''MjQrKDB8YVtmPj4yXSk+PjJdPUEsQT1wfShmKSxhWzEyNCsoMHxhW2wrMTY+PjJdKT4+Ml09LTEpOmw9MCwwfGx9ZnVuY3Rpb24gSkoobCxjKXt2YXIgcDtmb3IobHw9MCxwPWFlLGFlPWFlKzE2fDAsYVs0NjgwMF09MHx2cig0KygoY3w9MCk8PDIpfDApLGM9MHxEdChsKTtjOylYSihsLGMp''@;'; + put 'put ''LGM9MHx6dChsLGMpO0Z0KDB8YVs0NjgwMF0pLGFlPXB9ZnVuY3Rpb24gWEoobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7Zm9yKHA9MHxhWzE1MisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSxtPStfWzIzMjk1XSxmPTA7QT0wfGFbcCsoZjw8Mik+PjJdOylfWzEz''@;'; + put 'put ''NisoMHxhW0ErMTY+PjJdKT4+M109bSxmPWYrMXwwO2FbNDY4MDJdPWMsX1sxMzYrKGs9MHxhW2MrMTY+PjJdKT4+M109MCxhW2srMTI4Pj4yXT0wLFhOKGMpO2U6Zm9yKDtrPTB8UUooKSxrOylmb3IoZj0wfGFbNDY4MDJdLGI9aysxNnwwLCgwfGspIT0oMHxmKSYmeTllKGwsZixrLCtfWzEz''@;'; + put 'put ''NisoMHxhW2I+PjJdKT4+M10pLHc9MHxTcyhsLGspOzspe2lmKCF3KWNvbnRpbnVlIGU7KDB8KGM9MHxhWygzPT0oMHwoZj0zJmFbdz4+Ml0pKT93OncrNDh8MCkrNDA+PjJdKSk9PSgwfGspJiYoYz0wfGFbKDI9PSgwfGYpP3c6dystNDh8MCkrNDA+PjJdKSxtPStfWzEzNisoMHxhW3crMTY+''@;'; + put 'put ''PjJdKT4+M10rICtfWzEzNisoZj0wfGFbYj4+Ml0pPj4zXSxBPTEzNisocD0wfGFbYysxNj4+Ml0pfDA7ZG97aWYoK19bQT4+M10+bSl7aWYoX1tBPj4zXT1tLCgwfGFbcCsxMjQ+PjJdKT4tMSl7Sk4oYyk7YnJlYWt9YVtwKzEyOD4+Ml09MSsoMHxhW2YrMTI4Pj4yXSksWE4oYyk7YnJlYWt9''@;'; + put 'put ''fXdoaWxlKDApO3c9MHxIcyhsLHcsayl9fWZ1bmN0aW9uIHk5ZShsLGMsZixwKXtfWygwfGFbKGw9MHxhWzE2MCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSkrKChmPTB8YVsxMjArKDB8YVsxNisoZnw9MCk+PjJdKT4+Ml0pPDwyKT4+Ml0pKygoYz0wfGFbMTIwKygwfGFbMTYrKGN8PTApPj4y''@;'; + put 'put ''XSk+PjJdKTw8Myk+PjNdPXA9K3AsX1soMHxhW2wrKGM8PDIpPj4yXSkrKGY8PDMpPj4zXT1wfWZ1bmN0aW9uIHBzZShsKXt2YXIgYztoMChsfD0wLDEzNzQ2MCwxNzYsMSksTDcobCksYz0rTWwobCwwfGFbNDcxNzRdLDEsMCksX1sxMjgrKDB8YVtsKzE2Pj4yXSk+PjNdPWN9ZnVuY3Rpb24g''@;'; + put 'put ''bXNlKGwsYyl7Y3w9MDt2YXIgZj0wO2ZvcihmPTB8RHQobHw9MCk7Oyl7aWYoIWYpe2Y9MDticmVha31pZigoMHxlMSgwfEhvKGYsYykpKTw8MjQ+PjI0KWJyZWFrO2Y9MHx6dChsLGYpfXJldHVybiAwfGZ9ZnVuY3Rpb24gcUoobCxjKXtsfD0wO3ZhciBBLGIsZj0wLHA9MCxtPTAsdz0wO2Zv''@;'; + put 'put ''cihiPWFlLGFlPWFlKzE2fDAsQT1iLCh3PTA9PSgwfChjfD0wKSkpJiYoZnVuY3Rpb24gUzllKGwpe2FbKGx8PTApPj4yXT0wLGFbbCs0Pj4yXT0wLGFbbCs4Pj4yXT0wfShBKSxjPUEpLGY9MHx5cyhsKTtmOykwfHMyKDB8dGkoZiksMTA4MDA2LDcpP3FKKGYsYyk6KGgwKGYsMTM3NDgzLDI4''@;'; + put 'put ''MCwxKSxlWChjLGYpLHFKKGYsMCkpLGY9MHxNcyhmKTt3JiYoYVsxODArKDB8YVsobT1sKzE2fDApPj4yXSk+PjJdPXA9MHxhW0ErOD4+Ml0sMHxwKSYmKHc9MHxWMCgwfGFbQT4+Ml0sNCsocDw8Mil8MCksYVsxODQrKDB8YVttPj4yXSk+PjJdPXcpLGFlPWJ9ZnVuY3Rpb24gS04obCl7a2Mo''@;'; + put 'put ''bHw9MCwxMDgyMzAsMTA4MjM2KX1mdW5jdGlvbiBrOWUobCl7aDAobHw9MCwxMzc0NjAsMzA0LDEpfWZ1bmN0aW9uIGVYKGwsYyl7Y3w9MDt2YXIgcCxtLEEsdyxmPTA7YVsoQT04KyhsfD0wKXwwKT4+Ml09Zj0xKygwfGFbQT4+Ml0pfDAsbT0xMCsodz0wfGFbKHA9bCs0fDApPj4yXSl8MCwo''@;'; + put 'put ''MHxmKTwoMHx3KT9sPTB8YVtsPj4yXTooYVtwPj4yXT1tLGY9MHxWMCgwfGFbbD4+Ml0sbTw8MiksYVtsPj4yXT1mLGw9ZixmPTB8YVtBPj4yXSksYVtsKyhmPDwyKT4+Ml09Y31mdW5jdGlvbiB0WChsLGMpe2x8PTA7dmFyIEEsYixmPTAscD0wLG09MCx3PTA7Zm9yKGI9YWUsYWU9YWUrMTZ8''@;'; + put 'put ''MCxBPWIsKHc9MD09KDB8KGN8PTApKSkmJihmdW5jdGlvbiByWChsKXthWyhsfD0wKT4+Ml09MCxhW2wrND4+Ml09MCxhW2wrOD4+Ml09MH0oQSksYz1BKSxmPTB8eXMobCk7ZjspMHxzMigwfHRpKGYpLDEwODAwNiw3KT90WChmLGMpOihoMChmLDEzNzQ4MywyODAsMSksdWsoZiksYnNlKGMs''@;'; + put 'put ''ZiksdFgoZiwwKSksZj0wfE1zKGYpO3cmJihhWzE4MCsoMHxhWyhtPWwrMTZ8MCk+PjJdKT4+Ml09cD0wfGFbQSs4Pj4yXSwwfHApJiYodz0wfFYwKDB8YVtBPj4yXSw0KyhwPDwyKXwwKSxhWzE4NCsoMHxhW20+PjJdKT4+Ml09dyksYWU9Yn1mdW5jdGlvbiB5c2UobCxjKXt2YXIgTGUsUmUs''@;'; + put 'put ''bHQsRXQsWnQsY3QsYnQsYW4sU24sSG4sZnIsV2Usa3QsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxxZT0wLG50PTAsb3Q9MCxTdD0wLEhyPTAsRXI9MDtmb3IoZnI9YWUsYWU9YWUrNDQ4fDAsRXQ9ZnIrNDAwfDAs''@;'; + put 'put ''bHQ9ZnIrMzg0fDAsRXI9ZnIrMzQ0fDAsSHI9ZnIrMzA0fDAsU3Q9ZnIrMTkyfDAsUj1mcis3MnwwLGY9ZnIrNjR8MCxjdD1mciszMnwwLGJ0PWZyLFdlPWZyKzQxNnwwLE9lPWZyKzMyOHwwLFJlPWZyKzI4OHwwLGFuPWZyKzIzMnwwLFNuPWZyKzE3NnwwLEhuPWZyKzEzNnwwLFp0PWZyKzgw''@;'; + put 'put ''fDAsRD0wfGFbNjArKGx8PTApPj4yXSxrdD1sKzE2fDAsbT0xKyhjfD0wKXwwLGY9MSxwPTA7ISgoMHxmKT4oMHxhWzE4MCsoQT0wfGFba3Q+PjJdKT4+Ml0pKTspeXNlKG90PTB8YVsoMHxhW0ErMTg0Pj4yXSkrKGY8PDIpPj4yXSxtKSxmPWYrMXwwLHA9KDB8R28ob3QpKStwfDA7aWYoRz0o''@;'; + put 'put ''MHxHbyhsKSktcHwwLChMZT0wPT0oMHwob3Q9KDB8YVsxODArKGY9MHxhW2t0Pj4yXSk+PjJdKStHfDApKSkmJjA9PSgwfGFbZisxMj4+Ml0pKWFbKEVyPWYrMTZ8MCk+PjJdPTAsYVtFcis0Pj4yXT0wLGFbRXIrOD4+Ml09MCxhW0VyKzEyPj4yXT0wLF9bZis0MD4+M109MTgsX1tmKzMyPj4z''@;'; + put 'put ''XT0xODtlbHNle2Y9V2UrMTZ8MDtkb3tpZigoMHxhNyhsLDQsNCxXZSkpPj4+MD49Myl7aWYoND09KDB8YVtmPj4yXSkmJjAhPSgyJmFbV2UrMjg+PjJdfDApKXtpZigwIT0oMHwocD0wfHNpKEQsMCw5OTE5MCwwKSkpfDAhPSgwfChmPTB8c2koRCwxLDk5MTkwLDApKSkpe2FbV2UrMjQ+PjJd''@;'; + put 'put ''PTB8dnIob3Q8PDIpO2JyZWFrfWFbUj4+Ml09MHx0aShsKSwkcigwLDkwNTc3LFIpLGY9MCxwPTA7YnJlYWt9Zj0wLHA9MH1lbHNlIGFbZj4+Ml09MyxmPTAscD0wfXdoaWxlKDApO2ZvcihxZT0wfHZyKG90PDw1KSxudD0wfHZyKG90PDwyKSxnZT1XZSsyNHwwLEQ9MCE9KDB8cCkscGU9MCxB''@;'; + put 'put ''PTE7ISgoMHxBKT4oMHxhWzE4MCsobT0wfGFba3Q+PjJdKT4+Ml0pKTspYVsoYmU9cWUrKHBlPDw1KXwwKT4+Ml09YVsoSz0xNisoMHxhWzE2KyhtPTB8YVsoMHxhW20rMTg0Pj4yXSkrKEE8PDIpPj4yXSk+PjJdKXwwKT4+Ml0sYVtiZSs0Pj4yXT1hW0srND4+Ml0sYVtiZSs4Pj4yXT1hW0sr''@;'; + put 'put ''OD4+Ml0sYVtiZSsxMj4+Ml09YVtLKzEyPj4yXSxhW2JlKzE2Pj4yXT1hW0srMTY+PjJdLGFbYmUrMjA+PjJdPWFbSysyMD4+Ml0sYVtiZSsyND4+Ml09YVtLKzI0Pj4yXSxhW2JlKzI4Pj4yXT1hW0srMjg+PjJdLEQmMCE9KDB8YVtnZT4+Ml0pJiYoYmU9MHxlcyhtLHAsMCwwKSxhWygwfGFb''@;'; + put 'put ''Z2U+PjJdKSsocGU8PDIpPj4yXT1iZSksYVtudCsocGU8PDIpPj4yXT1tLHBlPXBlKzF8MCxBPUErMXwwO2U6ZG97aWYoKDB8Ryk+MClmb3IoUj1jdCsxNnwwLEc9Y3QrMjR8MCxLPTAhPSgwfGYpLEQ9MHxEdChsKSxwPXBlOzspe2lmKCFEKWJyZWFrIGU7MHxhWyhBPTExMisobT0wfGFbRCsx''@;'; + put 'put ''Nj4+Ml0pfDApPj4yXXx8KGFbQT4+Ml09bCxhW2N0Pj4yXT0wLGFbY3QrND4+Ml09MCxhW2N0Kzg+PjJdPTAsYVtjdCsxMj4+Ml09MCxfW1I+PjNdPStfW20rOTY+PjNdKyArX1ttKzg4Pj4zXSxfW0c+PjNdPStfW20rODA+PjNdLGFbKGJlPXFlKyhwPDw1KXwwKT4+Ml09YVtjdD4+Ml0sYVti''@;'; + put 'put ''ZSs0Pj4yXT1hW2N0KzQ+PjJdLGFbYmUrOD4+Ml09YVtjdCs4Pj4yXSxhW2JlKzEyPj4yXT1hW2N0KzEyPj4yXSxhW2JlKzE2Pj4yXT1hW2N0KzE2Pj4yXSxhW2JlKzIwPj4yXT1hW2N0KzIwPj4yXSxhW2JlKzI0Pj4yXT1hW2N0KzI0Pj4yXSxhW2JlKzI4Pj4yXT1hW2N0KzI4Pj4yXSxLJjAh''@;'; + put 'put ''PSgwfGFbZ2U+PjJdKSYmKGJlPTB8ZXMoRCxmLDAsMCksYVsoMHxhW2dlPj4yXSkrKHA8PDIpPj4yXT1iZSksYVtudCsocDw8Mik+PjJdPUQscD1wKzF8MCksRD0wfHp0KGwsRCl9fXdoaWxlKDApO2ZvcihiZT0wfGZ1bmN0aW9uIGFXKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDtlOmRve2lmKCgw''@;'; + put 'put ''fGwpPDEpbD0wO2Vsc2Ugc3dpdGNoKDB8YVtmKzE2Pj4yXSl7Y2FzZSA0Omw9MHxuVyhsLGMsZik7YnJlYWsgZTtjYXNlIDM6bD0wfGxXKGwsYyxmKTticmVhayBlO2RlZmF1bHQ6bD0wO2JyZWFrIGV9fXdoaWxlKDApO3JldHVybiAwfGx9KG90LHFlLFdlKSwwfChmPTB8YVtnZT4+Ml0pJiZG''@;'; + put 'put ''dChmKSxuWChidCwyMTQ3NDgzNjQ3LDIxNDc0ODM2NDcpLGdlPWJ0KzE2fDAsblgoT2UsLTIxNDc0ODM2NDcsLTIxNDc0ODM2NDcpLGFbZ2U+PjJdPWFbT2U+PjJdLGFbZ2UrND4+Ml09YVtPZSs0Pj4yXSxhW2dlKzg+PjJdPWFbT2UrOD4+Ml0sYVtnZSsxMj4+Ml09YVtPZSsxMj4+Ml0sQT1j''@;'; + put 'put ''dCsxNnwwLEQ9Y3QrOHwwLFI9Y3QrMjR8MCxHPWJ0Kzh8MCxLPWJ0KzI0fDAscGU9MHxhWzE1NzEyXSxmPTA7ISgoMHxmKT49KDB8b3QpKTspYj0rKDB8YVtiZSsoZjw8Myk+PjJdKSxNPSsoMHxhW2JlKyhmPDwzKSs0Pj4yXSksYVtjdD4+Ml09YVsocD1xZSsoZjw8NSl8MCk+PjJdLGFbY3Qr''@;'; + put 'put ''ND4+Ml09YVtwKzQ+PjJdLGFbY3QrOD4+Ml09YVtwKzg+PjJdLGFbY3QrMTI+PjJdPWFbcCsxMj4+Ml0sYVtjdCsxNj4+Ml09YVtwKzE2Pj4yXSxhW2N0KzIwPj4yXT1hW3ArMjA+PjJdLGFbY3QrMjQ+PjJdPWFbcCsyND4+Ml0sYVtjdCsyOD4+Ml09YVtwKzI4Pj4yXSxfW2N0Pj4zXT13PStf''@;'; + put 'put ''W2N0Pj4zXStiLF9bQT4+M109Yj0rX1tBPj4zXStiLF9bRD4+M109az0rX1tEPj4zXStNLF9bUj4+M109TT0rX1tSPj4zXStNLF9bYnQ+PjNdPStfWygrX1tidD4+M108dz9idDpjdCk+PjNdLF9bRz4+M109K19bKCtfW0c+PjNdPGs/YnQ6Y3QpKzg+PjNdLF9bZ2U+PjNdPStfWygrX1tnZT4+''@;'; + put 'put ''M10+Yj9idDpjdCkrMTY+PjNdLF9bSz4+M109K19bKCtfW0s+PjNdPk0/YnQ6Y3QpKzI0Pj4zXSxtPTE2KyhwPTB8YVtudCsoZjw8Mik+PjJdKXwwLCgwfGYpPCgwfGFbMTgwKygwfGFba3Q+PjJdKT4+Ml0pPyhhWyhPZT0xNisoMHxhW20+PjJdKXwwKT4+Ml09YVtjdD4+Ml0sYVtPZSs0Pj4y''@;'; + put 'put ''XT1hW2N0KzQ+PjJdLGFbT2UrOD4+Ml09YVtjdCs4Pj4yXSxhW09lKzEyPj4yXT1hW2N0KzEyPj4yXSxhW09lKzE2Pj4yXT1hW2N0KzE2Pj4yXSxhW09lKzIwPj4yXT1hW2N0KzIwPj4yXSxhW09lKzI0Pj4yXT1hW2N0KzI0Pj4yXSxhW09lKzI4Pj4yXT1hW2N0KzI4Pj4yXSk6KE9lPTE2Kygw''@;'; + put 'put ''fGFbbT4+Ml0pfDAsYVtsdD4+Ml09YVtjdD4+Ml0sYVtsdCs0Pj4yXT1hW2N0KzQ+PjJdLGFbbHQrOD4+Ml09YVtjdCs4Pj4yXSxhW2x0KzEyPj4yXT1hW2N0KzEyPj4yXSxhW0V0Pj4yXT1hW0E+PjJdLGFbRXQrND4+Ml09YVtBKzQ+PjJdLGFbRXQrOD4+Ml09YVtBKzg+PjJdLGFbRXQrMTI+''@;'; + put 'put ''PjJdPWFbQSsxMj4+Ml0sd3NlKFJlLGx0LEV0KSxhW09lPj4yXT1hW1JlPj4yXSxhW09lKzQ+PjJdPWFbUmUrND4+Ml0sYVtPZSs4Pj4yXT1hW1JlKzg+PjJdLGFbT2UrMTI+PjJdPWFbUmUrMTI+PjJdKSxmPWYrMXwwO2ZvcigwfChmPTB8YVsxMisocD0wfGFba3Q+PjJdKT4+Ml0pJiYodz0r''@;'; + put 'put ''X1tmKzI0Pj4zXSxMZT8oYj0rX1tmKzMyPj4zXSxhW2J0Pj4yXT0wLGFbYnQrND4+Ml09MCxhW2J0Kzg+PjJdPTAsYVtidCsxMj4+Ml09MCxfW2dlPj4zXT13LF9bSz4+M109YixiPTAsaz13KTooYj0rX1tidD4+M10saz0rX1tnZT4+M10pLHc9LjUqKE09dy0oay1iKSksTT4wJiYoX1tidD4+''@;'; + put 'put ''M109Yi13LF9bZ2U+PjNdPWsrdykpLF9bYnQ+PjNdPWI9K19bYnQ+PjNdLSh3PSgwfGMpPjA/LjUqKygoMHxhW1dlKzg+PjJdKT4+PjApOjApLF9bZ2U+PjNdPWs9K19bZ2U+PjNdK3csX1tHPj4zXT1NPS13LStfW3ArNTY+PjNdKyArX1tHPj4zXSxfW0s+PjNdPXc9K19bcCs4OD4+M10rdysg''@;'; + put 'put ''K19bSz4+M10sZj0wOyEoKDB8Zik+PSgwfG90KSk7KW09MTYrKHA9MHxhW250KyhmPDwyKT4+Ml0pfDAsKDB8Zik8KDB8YVsxODArKDB8YVtrdD4+Ml0pPj4yXSk/KGFbY3Q+PjJdPWFbKFN0PTE2KygwfGFbbT4+Ml0pfDApPj4yXSxhW2N0KzQ+PjJdPWFbU3QrND4+Ml0sYVtjdCs4Pj4yXT1h''@;'; + put 'put ''W1N0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbU3QrMTI+PjJdLGFbY3QrMTY+PjJdPWFbU3QrMTY+PjJdLGFbY3QrMjA+PjJdPWFbU3QrMjA+PjJdLGFbY3QrMjQ+PjJdPWFbU3QrMjQ+PjJdLGFbY3QrMjg+PjJdPWFbU3QrMjg+PjJdLGFbbHQ+PjJdPWFbU3Q+PjJdLGFbbHQrND4+Ml09YVtTdCs0''@;'; + put 'put ''Pj4yXSxhW2x0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtsdCsxMj4+Ml09YVtTdCsxMj4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09YVtidCs4Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEyPj4yXSxINyhjdCxsdCxFdCksYVtsdD4+Ml09YVtBPj4y''@;'; + put 'put ''XSxhW2x0KzQ+PjJdPWFbQSs0Pj4yXSxhW2x0Kzg+PjJdPWFbQSs4Pj4yXSxhW2x0KzEyPj4yXT1hW0ErMTI+PjJdLGFbRXQ+PjJdPWFbYnQ+PjJdLGFbRXQrND4+Ml09YVtidCs0Pj4yXSxhW0V0Kzg+PjJdPWFbYnQrOD4+Ml0sYVtFdCsxMj4+Ml09YVtidCsxMj4+Ml0sSDcoYW4sbHQsRXQp''@;'; + put 'put ''LGFbQT4+Ml09YVthbj4+Ml0sYVtBKzQ+PjJdPWFbYW4rND4+Ml0sYVtBKzg+PjJdPWFbYW4rOD4+Ml0sYVtBKzEyPj4yXT1hW2FuKzEyPj4yXSxhWyhTdD0xNisoMHxhW20+PjJdKXwwKT4+Ml09YVtjdD4+Ml0sYVtTdCs0Pj4yXT1hW2N0KzQ+PjJdLGFbU3QrOD4+Ml09YVtjdCs4Pj4yXSxh''@;'; + put 'put ''W1N0KzEyPj4yXT1hW2N0KzEyPj4yXSxhW1N0KzE2Pj4yXT1hW2N0KzE2Pj4yXSxhW1N0KzIwPj4yXT1hW2N0KzIwPj4yXSxhW1N0KzI0Pj4yXT1hW2N0KzI0Pj4yXSxhW1N0KzI4Pj4yXT1hW2N0KzI4Pj4yXSk6KGFbbHQ+PjJdPWFbKFN0PTE2KygwfGFbbT4+Ml0pfDApPj4yXSxhW2x0KzQ+''@;'; + put 'put ''PjJdPWFbU3QrND4+Ml0sYVtsdCs4Pj4yXT1hW1N0Kzg+PjJdLGFbbHQrMTI+PjJdPWFbU3QrMTI+PjJdLGFbRXQ+PjJdPWFbYnQ+PjJdLGFbRXQrND4+Ml09YVtidCs0Pj4yXSxhW0V0Kzg+PjJdPWFbYnQrOD4+Ml0sYVtFdCsxMj4+Ml09YVtidCsxMj4+Ml0sSDcoU24sbHQsRXQpLGFbU3Q+''@;'; + put 'put ''PjJdPWFbU24+PjJdLGFbU3QrND4+Ml09YVtTbis0Pj4yXSxhW1N0Kzg+PjJdPWFbU24rOD4+Ml0sYVtTdCsxMj4+Ml09YVtTbisxMj4+Ml0pLGY9ZisxfDA7YVtsdD4+Ml09YVtnZT4+Ml0sYVtsdCs0Pj4yXT1hW2dlKzQ+PjJdLGFbbHQrOD4+Ml09YVtnZSs4Pj4yXSxhW2x0KzEyPj4yXT1h''@;'; + put 'put ''W2dlKzEyPj4yXSxhW0V0Pj4yXT1hW2J0Pj4yXSxhW0V0KzQ+PjJdPWFbYnQrND4+Ml0sYVtFdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbRXQrMTI+PjJdPWFbYnQrMTI+PjJdLEg3KEhuLGx0LEV0KSxhW2dlPj4yXT1hW0huPj4yXSxhW2dlKzQ+PjJdPWFbSG4rND4+Ml0sYVtnZSs4Pj4yXT1hW0hu''@;'; + put 'put ''Kzg+PjJdLGFbZ2UrMTI+PjJdPWFbSG4rMTI+PjJdLGFbbHQ+PjJdPWFbYnQ+PjJdLGFbbHQrND4+Ml09YVtidCs0Pj4yXSxhW2x0Kzg+PjJdPWFbYnQrOD4+Ml0sYVtsdCsxMj4+Ml09YVtidCsxMj4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+''@;'; + put 'put ''Ml09YVtidCs4Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEyPj4yXSxINyhadCxsdCxFdCksYVtidD4+Ml09YVtadD4+Ml0sYVtidCs0Pj4yXT1hW1p0KzQ+PjJdLGFbYnQrOD4+Ml09YVtadCs4Pj4yXSxhW2J0KzEyPj4yXT1hW1p0KzEyPj4yXSxhWyhIcj0xNisoMHxhW2t0Pj4yXSl8MCk+PjJd''@;'; + put 'put ''PWFbYnQ+PjJdLGFbSHIrND4+Ml09YVtidCs0Pj4yXSxhW0hyKzg+PjJdPWFbYnQrOD4+Ml0sYVtIcisxMj4+Ml09YVtidCsxMj4+Ml0sYVtIcisxNj4+Ml09YVtidCsxNj4+Ml0sYVtIcisyMD4+Ml09YVtidCsyMD4+Ml0sYVtIcisyND4+Ml09YVtidCsyND4+Ml0sYVtIcisyOD4+Ml09YVti''@;'; + put 'put ''dCsyOD4+Ml0sRnQocWUpLEZ0KG50KSxGdChiZSl9YWU9ZnJ9ZnVuY3Rpb24gJE4obCxjKXt2YXIgRyxLLHBlLGJlLGY9MCxwPTAsbT0wLEE9MCx3PTAsaz0wLE09MCxEPTAsUj0wLE9lPTA7YmU9YWUsYWU9YWUrODB8MCx3PWJlKzh8MCxmPWJlLEc9K19bMTYrKFI9MHxhWyhwZT0xNisobHw9''@;'; + put 'put ''MCl8MCk+PjJdKT4+M10sSz0rX1tSKzI0Pj4zXSxSPTAhPSgwfChjfD0wKSk7ZTpkb3tpZihSKWZvcihmPTB8RHQobCkscD0wfGFbMTU3MTJdOzspe2lmKCFmKWJyZWFrIGU7KDB8YVsxMTIrKEE9MHxhWyhtPWYrMTZ8MCk+PjJdKT4+Ml0pPT0oMHxsKSYmKF9bKE9lPUErMTZ8MCk+PjNdPStf''@;'; + put 'put ''W09lPj4zXStHLF9bKEE9QSsyNHwwKT4+M109K19bQT4+M10rSywhMSkmJihxNihjKSxPZT0wfHRpKGYpLE09K19bMTYrKEE9MHxhW20+PjJdKT4+M10sRD0rX1tBKzI0Pj4zXSxhW3c+PjJdPU9lLF9bdys4Pj4zXT1NLF9bdysxNj4+M109RCxUMChwLDkwNTQ0LHcpKSxmPTB8enQobCxmKX1l''@;'; + put 'put ''bHNlIHA9MHxhWzE1NzEyXX13aGlsZSgwKTtmb3Iodz1jKzF8MCxsPTE7ISgoMHxsKT4oMHxhWzE4MCsoZj0wfGFbcGU+PjJdKT4+Ml0pKTspQT0wfGFbKDB8YVtmKzE4ND4+Ml0pKyhsPDwyKT4+Ml0sUiYmKGs9K19bMjQrKGY9MHxhWyhtPUErMTZ8MCk+PjJdKT4+M10rSyxNPStfW2YrMzI+''@;'; + put 'put ''PjNdK0csRD0rX1tmKzQwPj4zXStLLF9bZisxNj4+M109K19bZisxNj4+M10rRyxfW2YrMjQ+PjNdPWssX1tmKzMyPj4zXT1NLF9bZis0MD4+M109RCksJE4oQSx3KSxsPWwrMXwwO2FlPWJlfWZ1bmN0aW9uIHE2KGwpe3ZhciBjO2ZvcihsfD0wLGM9MHxhWzE1NzEyXTshKCgwfGwpPD0wKTsp''@;'; + put 'put ''X3UoOTA1NzQsYyksbD1sKy0xfDB9ZnVuY3Rpb24gblgobCxjLGYpe2Y9K2YsX1sobHw9MCk+PjNdPWM9K2MsX1tsKzg+PjNdPWZ9ZnVuY3Rpb24gd3NlKGwsYyxmKXt2YXIgcDtwPS41KigrX1s4KyhmfD0wKT4+M10rICtfWzgrKGN8PTApPj4zXSksX1sobHw9MCk+PjNdPS41KigrX1tmPj4z''@;'; + put 'put ''XSsgK19bYz4+M10pLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIEg3KGwsYyxmKXt2YXIgcDtwPStfWzgrKGN8PTApPj4zXS0rX1s4KyhmfD0wKT4+M10sX1sobHw9MCk+PjNdPStfW2M+PjNdLStfW2Y+PjNdLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIGJzZShsLGMpe2N8PTA7dmFyIHAsbSxBLHcsZj0w''@;'; + put 'put ''O2FbKEE9OCsobHw9MCl8MCk+PjJdPWY9MSsoMHxhW0E+PjJdKXwwLG09MTArKHc9MHxhWyhwPWwrNHwwKT4+Ml0pfDAsKDB8Zik8KDB8dyk/bD0wfGFbbD4+Ml06KGFbcD4+Ml09bSxmPTB8VjAoMHxhW2w+PjJdLG08PDIpLGFbbD4+Ml09ZixsPWYsZj0wfGFbQT4+Ml0pLGFbbCsoZjw8Mik+''@;'; + put 'put ''PjJdPWN9ZnVuY3Rpb24gb1gobCl7dmFyIGMsZj0wLHA9MDtmb3IoYz0xNisobHw9MCl8MCxsPTE7Zj0wfGFbMTg0KyhwPTB8YVtjPj4yXSk+PjJdLCEoKDB8bCk+KDB8YVtwKzE4MD4+Ml0pKTspSWMoMHxhWzEyKygwfGFbMTYrKHA9MHxhW2YrKGw8PDIpPj4yXSk+PjJdKT4+Ml0pLG9YKHAp''@;'; + put 'put ''LGw9bCsxfDA7RnQoZil9ZnVuY3Rpb24gQ3NlKGwpe3ZhciBjO3NEKGx8PTApLGM9MHx2cigoMHxoclsxNzYrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+MV0pPDwzKSxhWzEzMisoMHxhW2wrMTY+PjJdKT4+Ml09Yyx4eShsLDEmYVsxMTYrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+Ml0pfWZ1''@;'; + put 'put ''bmN0aW9uIGtzZShsLGMpe2N8PTA7dmFyIGYscD0wO2gwKGx8PTAsMTM3NDYwLDE3NiwxKSxwPStNbChsLDB8YVs0NzE3NF0sMSwwKSxfWzEyOCsoMHxhWyhmPWwrMTZ8MCk+PjJdKT4+M109cCxwPStNbChsLGMsK19bMTM3MV0sMCksX1sxMzYrKDB8YVtmPj4yXSk+PjNdPXAsTDcobCl9ZnVu''@;'; + put 'put ''Y3Rpb24gYVgobCl7dmFyIEEsYz0wLGY9MCxwPTAsbT0wO2ZvcihBPTE2KyhsfD0wKXwwLG09MTtjPTB8YVsxODQrKHA9MHxhW0E+PjJdKT4+Ml0sISgoMHxtKT4oMHxhW3ArMTgwPj4yXSkpOylJYygwfGFbMTIrKDB8YVsoYz0xNisocD0wfGFbYysobTw8Mik+PjJdKXwwKT4+Ml0pPj4yXSks''@;'; + put 'put ''MHwoZj0wfGFbMTQwKygwfGFbYz4+Ml0pPj4yXSkmJihGdCgwfGFbZj4+Ml0pLEZ0KDB8YVsxNDArKDB8YVtjPj4yXSk+PjJdKSksYVgocCksbT1tKzF8MDtGdChjKSwoMHxkaShsKSkhPSgwfGwpJiZIaShsLDEzNzQ4Myl9ZnVuY3Rpb24gX0QobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxiLGss''@;'; + put 'put ''TSxwPTAsQT0wLHc9MCxEPTAsUj0wLEc9MDtmb3IoTT1hZSxhZT1hZSsxNnwwLGI9TSwoaz0wPT0oMHwoY3w9MCkpKSYmKGZ1bmN0aW9uIE43KGwpe2FbKGx8PTApPj4yXT0wLGFbbCs0Pj4yXT0wLGFbbCs4Pj4yXT0wfShiKSxjPWIpLG09ZisxNnwwLHA9MHx5cyhsKTtwOykwfHMyKDB8dGko''@;'; + put 'put ''cCksMTA4MDA2LDcpP19EKHAsYyxmKTooaDAocCwxMzc0ODMsMjgwLDEpLEQ9MHx2cig1NiksYVsxNDArKEc9MHxhW3ArMTY+PjJdKT4+Ml09RCxydFtHKzE3Nj4+MV09MHxydFsxNzYrKFI9MHxhW20+PjJdKT4+MV0sYVtEKzQ0Pj4yXT0xKygwfGFbNDQrKDB8YVtSKzE0MD4+Ml0pPj4yXSks''@;'; + put 'put ''YVtEKzQ4Pj4yXT1mLHFOKGMscCksX0QocCwwLHApKSxwPTB8TXMocCk7ayYmKGFbMTgwKygwfGFbKHc9bCsxNnwwKT4+Ml0pPj4yXT1BPTB8YVtiKzg+PjJdLDB8QSkmJihHPTB8VjAoMHxhW2I+PjJdLDQrKEE8PDIpfDApLGFbMTg0KygwfGFbdz4+Ml0pPj4yXT1HKSxhZT1NfWZ1bmN0aW9u''@;'; + put 'put ''IHFOKGwsYyl7Y3w9MDt2YXIgcCxtLEEsdyxmPTA7YVsoQT04KyhsfD0wKXwwKT4+Ml09Zj0xKygwfGFbQT4+Ml0pfDAsbT0xMCsodz0wfGFbKHA9bCs0fDApPj4yXSl8MCwoMHxmKTwoMHx3KT9sPTB8YVtsPj4yXTooYVtwPj4yXT1tLGY9MHxWMCgwfGFbbD4+Ml0sbTw8MiksYVtsPj4yXT1m''@;'; + put 'put ''LGw9ZixmPTB8YVtBPj4yXSksYVtsKyhmPDwyKT4+Ml09Y31mdW5jdGlvbiB0VihsLGMpe2N8PTA7dmFyIGssTSxSLEcscGUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsRD0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MDtmb3IocGU9YWUsYWU9YWUrNjR8MCxmPXBlKzQwfDAsRD1wZSs1Nnww''@;'; + put 'put ''LE09cGUrNTJ8MCxrPXBlLGY9MHxEdChsfD0wKTtmOylhWzE2NCsoMHxhW2YrMTY+PjJdKT4+Ml09MCxmPTB8enQobCxmKTtmb3IoUj0wfGZ1bmN0aW9uIEoxKGwsYyl7bHw9MDt2YXIgRCxSLEcsUmUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxLPTAscGU9MCxnZT0wLGJlPTAs''@;'; + put 'put ''T2U9MCxMZT0wO2ZvcihSZT1hZSxhZT1hZSsxNjB8MCxLPVJlKzI0fDAscGU9UmUrOHwwLHA9UmUsZj1SZSs1NnwwLGFbKE9lPTE2KyhjfD0wKXwwKT4+Ml09MSsoTGU9MHxhW09lPj4yXSksYVtLPj4yXT1MZSxvbyhmLDkwNzk2LEspLGZlW0s+PjBdPTB8ZmVbMTg1ODhdLGZlW0srMT4+MF09''@;'; + put 'put ''MHxmZVsxODU4OV0sZmVbSysyPj4wXT0wfGZlWzE4NTkwXSxmZVtLKzM+PjBdPTB8ZmVbMTg1OTFdLGgwKExlPTB8b2MoOTExNTYsSywwKSwxMzc0ODMsMjgwLDEpLGJlPTB8dnIoNTYpLGFbMTQwKyhNPTB8YVsoT2U9TGUrMTZ8MCk+PjJdKT4+Ml09YmUscnRbTSsxNzY+PjFdPTB8cnRbMTc2''@;'; + put 'put ''KygwfGFbKGJlPWwrMTZ8MCk+PjJdKT4+MV0sdVgobCxMZSw5MjUwNyksdVgobCxMZSw5MzExMiksdVgobCxMZSw5MTIwMiksTT1jKzR8MCxEPUsrMTZ8MCxSPUsrOHwwLEc9SysyNHwwLEE9MCxrPTE7ISgoMHxrKT4oMHxhWzE4MCsoZj0wfGFbYmU+PjJdKT4+Ml0pKTspe2ZvcihhW0s+PjJd''@;'; + put 'put ''PWFbMzMyXSxhW0srND4+Ml09YVszMzNdLGFbSys4Pj4yXT1hWzMzNF0sYVtLKzEyPj4yXT1hWzMzNV0sYVtLKzE2Pj4yXT1hWzMzNl0sYVtLKzIwPj4yXT1hWzMzN10sYVtLKzI0Pj4yXT1hWzMzOF0sYVtLKzI4Pj4yXT1hWzMzOV0sdWsocD0wfGFbKDB8YVtmKzE4ND4+Ml0pKyhrPDwyKT4+''@;'; + put 'put ''Ml0pLG09MHxUZihMZSwwfHRpKHApKSxhWzIxMisoZj0wfGFbKHc9bSsxNnwwKT4+Ml0pPj4yXT1wLGI9QSsxfDAsYVtmKzEyMD4+Ml09QSwwfGFbTT4+Ml0mJkw5ZShwLG0sYyxLKSxmPTB8RHQocCk7ZjspYVsxNjQrKDB8YVtmKzE2Pj4yXSk+PjJdPW0sZj0wfHp0KHAsZik7MHxmZVsxMTkr''@;'; + put 'put ''KGY9MHxhW3c+PjJdKT4+MF0mJihfWyh3PTB8YVtmKzEzMj4+Ml0pPj4zXT0uNSooK19bRD4+M10rICtfW0s+PjNdKSxfW3crOD4+M109LjUqKCtfW0c+PjNdKyArX1tSPj4zXSkpLEE9YixrPWsrMXwwfWZvcih3PTB8RHQobCk7dzspe2lmKDB8YVsxNjQrKHA9MHxhWyhmPXcrMTZ8MCk+PjJd''@;'; + put 'put ''KT4+Ml0pZj1BO2Vsc2V7aWYoMHwoSz0wfGFbKG09cCsyMTJ8MCk+PjJdKSYmKDB8SykhPSgwfGFbNDgrKDB8YVsxNDArKDB8YVtiZT4+Ml0pPj4yXSk+PjJdKSl7Z2U9MTg7YnJlYWt9YVttPj4yXT1sLDB8ZmVbcCsxMTg+PjBdP2Y9QToobT0wfFRmKExlLDB8dGkodykpLGFbMTY0KyhwPTB8''@;'; + put 'put ''YVtmPj4yXSk+PjJdPW0sYVsxMjArKG09MHxhW20rMTY+PjJdKT4+Ml09QSxfW20rMzI+PjNdPStfW3ArMzI+PjNdLF9bbSs0MD4+M109K19bcCs0MD4+M10sX1ttKzg4Pj4zXT0rX1twKzg4Pj4zXSxfW20rOTY+PjNdPStfW3ArOTY+PjNdLF9bbSs4MD4+M109K19bcCs4MD4+M10sYVttKzg+''@;'; + put 'put ''PjJdPWFbcCs4Pj4yXSxhW20rMTI+PjJdPWFbcCsxMj4+Ml0sKGY9MHxmZVtwKzExOT4+MF0pPDwyND4+MjQmJihfWyhLPTB8YVttKzEzMj4+Ml0pPj4zXT0rX1soYz0wfGFbcCsxMzI+PjJdKT4+M10sX1tLKzg+PjNdPStfW2MrOD4+M10sZmVbbSsxMTk+PjBdPWYpLGFbOCsoMHxhW20rMTEy''@;'; + put 'put ''Pj4yXSk+PjJdPXcsZj1BKzF8MCl9dz0wfHp0KGwsdyksQT1mfWZvcigxOD09KDB8Z2UpJiYoYz0wfHRpKHcpLEs9MHx0aShsKSxnZT0wfHRpKDB8YVsyMTIrKDB8YVtmPj4yXSk+PjJdKSxhW3BlPj4yXT1jLGFbcGUrND4+Ml09SyxhW3BlKzg+PjJdPWdlLCRyKDEsOTA4MjYscGUpLHplKDE4''@;'; + put 'put ''NzIxMiwxKSksYj0wfER0KGwpO2I7KXtmb3IoTT0xNisoaz0wfGFbMTY0KygwfGFbYisxNj4+Ml0pPj4yXSl8MCxtPTB8dzAobCxiKTttOykoMHwoZj0wfGFbMTY0KygwfGFbMTYrKDB8YVsoMj09KDMmYVttPj4yXXwwKT9tOm0rLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKSE9KDB8aykmJiho''@;'; + put 'put ''MCh3PWY+Pj4wPms+Pj4wPzB8S2EoTGUsayxmLDAsMSk6MHxLYShMZSxmLGssMCwxKSwxMzc0NjAsMTc2LDEpLF9bMTM2KyhnZT0wfGFbdysxNj4+Ml0pPj4zXT0rX1sxMzYrKHA9MHxhW20rMTY+PjJdKT4+M10sX1tnZSsxMjg+PjNdPStfW3ArMTI4Pj4zXSxhWyhwPTQrKGY9MHxhWzExMiso''@;'; + put 'put ''MHxhW2YrMTY+PjJdKT4+Ml0pfDApPj4yXT0xKygwfGFbcD4+Ml0pLGFbKHBlPTQrKHA9MHxhWzExMisoMHxhW00+PjJdKT4+Ml0pfDApPj4yXT0xKygwfGFbcGU+PjJdKSwwfGFbZ2UrMTcyPj4yXXx8KGFbZj4+Ml09MSsoMHxhW2Y+PjJdKSxhW3A+PjJdPTErKDB8YVtwPj4yXSkpLG5WKHcs''@;'; + put 'put ''bSkpLG09MHxTMChsLG0pO2I9MHx6dChsLGIpfWlmKDB8KHA9MHxhWyhmPTB8YVsxNDArKDB8YVtiZT4+Ml0pPj4yXSk+PjJdKSl7Zm9yKG09MHx2cigxNisoYVtmKzQ+PjJdPDw0KXwwKSxhW2FbMTQwKygwfGFbT2U+PjJdKT4+Ml0+PjJdPW0sZj0wOzB8YVtwPj4yXTspKGI9MHxhWzE2NCso''@;'; + put 'put ''MHxhWzE2KygwfGFbcCs0Pj4yXSk+PjJdKT4+Ml0pJiYoTzllKGwscCksaz0wfFRmKExlLDE5Mzc3MiksYVsxMjArKDB8YVsoTT1rKzE2fDApPj4yXSk+PjJdPUEsaDAodz1rPj4+MD5iPj4+MD8wfEthKExlLGIsaywwLDEpOjB8S2EoTGUsayxiLDAsMSksMTM3NDYwLDE3NiwxKSxfWzEzNiso''@;'; + put 'put ''YmU9MHxhW3crMTY+PjJdKT4+M109K19bMTM2KyhwZT0wfGFbMTYrKGdlPTB8YVtwPj4yXSk+PjJdKT4+M10sX1tiZSsxMjg+PjNdPStfW3BlKzEyOD4+M10sblYodyxnZSksYVsoYmU9NCsoZ2U9MHxhWzExMisoMHxhW00+PjJdKT4+Ml0pfDApPj4yXT0xKygwfGFbYmU+PjJdKSxhWyhwZT00''@;'; + put 'put ''KyhiZT0wfGFbMTEyKygwfGFbYisxNj4+Ml0pPj4yXSl8MCk+PjJdPTErKDB8YVtwZT4+Ml0pLGFbZ2U+PjJdPTErKDB8YVtnZT4+Ml0pLGFbYmU+PjJdPTErKDB8YVtiZT4+Ml0pLGFbbSs0Pj4yXT1rLF9bbSs4Pj4zXT0rX1twKzg+PjNdLGFbbT4+Ml09dyxmPWYrMXwwLG09bSsxNnwwLEE9''@;'; + put 'put ''QSsxfDApLHA9cCsxNnwwO2FbNCsoMHxhWzE0MCsoMHxhW09lPj4yXSk+PjJdKT4+Ml09Zn1yZXR1cm4gYWU9UmUsMHxMZX0obCxjKSxHPTB8ZnVuY3Rpb24gQnZlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIGssTSxELFIscD0wLG09MCxBPTAsdz0wLGI9MCxHPTA7Uj1hZSxhZT1hZSsxNjB8MCxE''@;'; + put 'put ''PVIrMTZ8MCxiPVIrOHwwLG09UixrPVIrMjR8MCxNPTB8dnIoMHxHbyhsfD0wKSkscD0wfGFbYVsxNDArKDB8YVsoQT1sKzE2fDApPj4yXSk+PjJdPj4yXTtlOmRve2lmKHApZm9yKEc9MHx0aShsKSx3PTB8YVs0NjkyM10sYVttPj4yXT1HLGFbbSs0Pj4yXT13LG9vKGssOTQ2MTIsbSksdz0w''@;'; + put 'put ''fGRzKGwsaywxKSxoMCh3LDEzNzQ4MywyODAsMSksbT0wfHZyKDU2KSxhWzE0MCsoMHxhW3crMTY+PjJdKT4+Ml09bSxhW20+PjJdPXAsYVttKzQ+PjJdPWFbNCsoMHxhWzE0MCsoMHxhW0E+PjJdKT4+Ml0pPj4yXTs7KXtpZighKG09MHxhW3ArND4+Ml0pKXttPXcscD0xO2JyZWFrIGV9MHxm''@;'; + put 'put ''ZVtNKygwfGFbMTIwKygwfGFbbSsxNj4+Ml0pPj4yXSk+PjBdfHxRVihsLG0sdyxNKSxwPXArMTZ8MH1lbHNlIG09MCxwPTB9d2hpbGUoMCk7Zm9yKEE9MCx3PTB8RHQobCk7dzspMD09KDB8ZmVbTSsoMHxhWzEyMCsoRz0wfGFbdysxNj4+Ml0pPj4yXSk+PjBdKSYmMz09KDB8ZmVbRysxMTk+''@;'; + put 'put ''PjBdKSYmKG18fChHPTB8dGkobCksbT0oMHxhWzQ2OTIzXSkrcHwwLGFbYj4+Ml09RyxhW2IrND4+Ml09bSxvbyhrLDk0NjEyLGIpLGgwKG09MHxkcyhsLGssMSksMTM3NDgzLDI4MCwxKSxHPTB8dnIoNTYpLGFbMTQwKygwfGFbbSsxNj4+Ml0pPj4yXT1HLHA9cCsxfDApLFFWKGwsdyxtLE0p''@;'; + put 'put ''LEE9MSksdz0wfHp0KGwsdyk7Zm9yKDB8bSYmTUMobSksbT0wfER0KGwpO207KTB8ZmVbTSsoMHxhWzEyMCsoMHxhW20rMTY+PjJdKT4+Ml0pPj4wXXx8KGI9MHx0aShsKSxHPSgwfGFbNDY5MjNdKStwfDAsYVtEPj4yXT1iLGFbRCs0Pj4yXT1HLG9vKGssOTQ2MjAsRCksaDAoRz0wfGRzKGws''@;'; + put 'put ''aywxKSwxMzc0ODMsMjgwLDEpLGI9MHx2cig1NiksYVsxNDArKDB8YVtHKzE2Pj4yXSk+PjJdPWIsUVYobCxtLEcsTSksTUMoRykscD1wKzF8MCksbT0wfHp0KGwsbSk7Zm9yKEZ0KE0pLGFbNDY5MjNdPSgwfGFbNDY5MjNdKStwLDB8YyYmKGFbYz4+Ml09cCksMHxmJiYoYVtmPj4yXT1BKSxB''@;'; + put 'put ''PXc9MHx2cig0KyhwPDwyKXwwKSxtPTB8eXMobCk7bTspYVtBPj4yXT1tLEE9QSs0fDAsbT0wfE1zKG0pLHA9cCstMXwwO3JldHVybiBwPyhQcig5NDYyOCw5NDYzOSwxMzQsOTQ2NDYpLDApOihhW0E+PjJdPTAsYWU9UiwwfHcpfShSLEQsTSksZj1HO2I9Zis0fDAscD0wfGFbZj4+Ml07KXtm''@;'; + put 'put ''b3IoQjllKHAsayksZj0wfER0KHApO2Y7KW09MHx6dChwLGYpLDB8YVsyMTIrKHc9MHxhWyhBPWYrMTZ8MCk+PjJdKT4+Ml0/KHRWKE9lPTB8eDllKGYscCksYyksX1szMisodz0wfGFbQT4+Ml0pPj4zXT1iZT0rX1syNCsoT2U9MHxhWzE0MCsoMHxhW09lKzE2Pj4yXSk+PjJdKT4+M10sX1t3''@;'; + put 'put ''KzQwPj4zXT1nZT0rX1tPZSszMj4+M10sX1t3Kzg4Pj4zXT1iZSo9MzYsX1t3Kzk2Pj4zXT1iZSxfW3crODA+PjNdPTcyKmdlLGY9bSk6KDB8YVs4KygwfGFbdysxMTI+PjJdKT4+Ml18fG9pKHAsZiksZj1tKTsoMHxHbyhwKSk8PTF8fCgoMHxhW2M+PjJdKT09KDB8bCkmJnMyZShwKSxoWChw''@;'; + put 'put ''LGspKSxmPWJ9Zm9yKCgwfChmPTB8YVtEPj4yXSkpPD0xPygxPT0oMHxmKSYmaWcoMHxhW0c+PjJdKSxmPTApOigwfGFbTT4+Ml0/KHA9MHx2cihmKSxmZVtwPj4wXT0xLGY9MHxhW0Q+PjJdKTpwPTAsYVtjKzQwPj4yXT1wLGY9MHxXZChmLEcsMCxjKzIwfDApLEZ0KHApKSxmdW5jdGlvbiBU''@;'; + put 'put ''OWUobCxjLGYscCxtLEEpe2x8PTAsZnw9MCxwfD0wO3ZhciBIZSxWZSxxZSxudCxXZSx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLG90PTAsU3Q9MCxrdD0wLGx0PTAsRXQ9MCxadD0wO1dlPWFlLGFlPWFlKzMyfDAsSGU9V2Ur''@;'; + put 'put ''MTZ8MCxudD1XZSxNPTB8YVs4KyhBfD0wKT4+Ml0sYj0wfGFbQSsxMj4+Ml0sVmU9KDB8YVtBPj4yXSk9PSgwfChtfD0wKSkscWU9MCE9KDB8KGN8PTApKTtlOmRve2lmKHFlKWlmKEc9MHxhWzE2KygwfGFbZj4+Ml0pPj4yXSxrPStfW0crMTY+PjNdLE09fn4oaysoaz49MD8uNTotLjUpKSxh''@;'; + put 'put ''W250Pj4yXT1NLGs9K19bRysyND4+M10sQT1+fihrKyhrPj0wPy41Oi0uNSkpLE9lPW50KzR8MCxhW09lPj4yXT1BLGs9K19bRyszMj4+M10sRD1+fihrKyhrPj0wPy41Oi0uNSkpLExlPW50Kzh8MCxhW0xlPj4yXT1ELGs9K19bRys0MD4+M10sRz1+fihrKyhrPj0wPy41Oi0uNSkpLFJlPW50''@;'; + put 'put ''KzEyfDAsYVtSZT4+Ml09RywoMHxjKT4xKWZvcihLPTB8YVtwPj4yXSxiZT0wfGFbcCs0Pj4yXSxNPUsrTXwwLGFbbnQ+PjJdPU0sYz1iZStBfDAsYVtPZT4+Ml09YyxEPUsrRHwwLGFbTGU+PjJdPUQsSz1IZSs0fDAscGU9SGUrOHwwLGdlPUhlKzEyfDAsUj1wLEE9ZixiZT1iZStHfDAsRz1j''@;'; + put 'put ''Ozspe2lmKEE9QSs0fDAsYj1SKzh8MCxhW1JlPj4yXT1iZSwhKGM9MHxhW0E+PjJdKSl7Yj0wLHBlPUcsZ2U9YmU7YnJlYWsgZX1FdD0rX1sxNisoa3Q9MHxhW2MrMTY+PjJdKT4+M10sdz0rX1trdCsyND4+M10saz0rX1trdCszMj4+M10sYVtnZT4+Ml09a3Q9fn4oKFp0PStfW2t0KzQwPj4z''@;'; + put 'put ''XSkrKFp0Pj0wPy41Oi0uNSkpLGx0PTB8YVtSKzEyPj4yXSxhW0hlPj4yXT1TdD0oYz0wfGFbYj4+Ml0pK35+KEV0KyhFdD49MD8uNTotLjUpKXwwLGFbSz4+Ml09b3Q9bHQrfn4odysodz49MD8uNTotLjUpKXwwLGFbcGU+PjJdPWM9Yyt+fihrKyhrPj0wPy41Oi0uNSkpfDAsYVtnZT4+Ml09''@;'; + put 'put ''a3Q9bHQra3R8MCxhW250Pj4yXT1TdD0wfGFbKCgwfE0pPCgwfFN0KT9udDpIZSk+PjJdLGFbT2U+PjJdPW90PTB8YVsoKDB8Ryk8KDB8b3QpP250OkhlKSs0Pj4yXSxhW0xlPj4yXT1jPTB8YVsoKDB8RCk+KDB8Yyk/bnQ6SGUpKzg+PjJdLFI9YixiZT0wfGFbKCgwfGJlKT4oMHxrdCk/bnQ6''@;'; + put 'put ''SGUpKzEyPj4yXSxNPVN0LEc9b3QsRD1jfWVsc2UgYj0wLHBlPUEsZ2U9RztlbHNlIGFbbnQ+PjJdPTAsYVtudCs0Pj4yXT0wLEQ9MHxlcyhtLE0sNTQsMyksYVtudCs4Pj4yXT1ELGdlPTB8ZXMobSxiLDM2LDMpLGFbbnQrMTI+PjJdPWdlLGI9MSxNPTAscGU9MH13aGlsZSgwKTsoQT0wfGFb''@;'; + put 'put ''MTIrKFI9MHxhWyhjPW0rMTZ8MCk+PjJdKT4+Ml0pPygoMHwoQT1NLUQrfn4oKFp0PStfW0ErMjQ+PjNdKSsoWnQ+PTA/LjU6LS41KSl8MCkpPjAmJihhW250Pj4yXT1NPU0tKEE+Pj49MSl8MCxhW250Kzg+PjJdPUQ9RCtBfDApLEE9MCk6QT1iLFZlfDAhPSgwfEEpPyhiPTAsQT1SKTooYj0w''@;'; + put 'put ''fGVzKGwsMHxhWzQ3MTQ0XSw4LDApLEE9MHxhW2M+PjJdKSxLPWItTXwwLEc9fn4oK19bQSs1Nj4+M10rICsoYi1wZXwwKSksYVtudD4+Ml09MCxhW250KzQ+PjJdPTAsYVtudCs4Pj4yXT1SPUsrYitEfDAsYVtudCsxMj4+Ml09Yz1+figrX1tBKzg4Pj4zXSsgKyhiK0d8MCkrICsoMHxnZSkp''@;'; + put 'put ''O2U6ZG97aWYocWUpe0E9cDt0OmZvcig7Oyl7aWYoRD1mKzR8MCwhKGI9MHxhW2Y+PjJdKSlicmVhayBlO2ZvcihBPyhNPUErOHwwLGY9KDB8YVtBPj4yXSkrS3wwLEE9KDB8YVtBKzQ+PjJdKStHfDApOihNPTAsZj1LLEE9Ryksaz0uMDEzODg4ODg4ODg4ODg4ODg4KisoMHxmKSx3PS4wMTM4''@;'; + put 'put ''ODg4ODg4ODg4ODg4ODgqKygwfEEpLGY9MHxEdChiKTs7KXtpZighZil7Zj1ELEE9TTtjb250aW51ZSB0fV9bKGx0PTB8YVsxMzIrKDB8YVtmKzE2Pj4yXSk+PjJdKT4+M109K19bbHQ+PjNdK2ssX1sobHQ9bHQrOHwwKT4+M109K19bbHQ+PjNdK3csZj0wfHp0KGIsZil9fX19d2hpbGUoMCk7''@;'; + put 'put ''YVsoa3Q9OCsobHQ9MHxhWzE0MCsoMHxhW2wrMTY+PjJdKT4+Ml0pfDApPj4yXT0wLGFba3QrND4+Ml09MCxhW2t0Kzg+PjJdPTAsYVtrdCsxMj4+Ml09MCxfW2x0KzI0Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KisoMHxSKSxfW2x0KzMyPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KisoMHxj''@;'; + put 'put ''KSxhZT1XZX0oUiwwfGFbRD4+Ml0sRyxmLGwsYyksRnQoZikscD0wfER0KFIpO3A7KShmPTB8YVsyMTIrKG09MHxhW3ArMTY+PjJdKT4+Ml0pPyhfWzgrKE9lPTB8YVsxNDArKDB8YVtmKzE2Pj4yXSk+PjJdKT4+M109TGU9K19bKEQ9MHxhW20rMTMyPj4yXSk+PjNdLS41KihSZT0rX1ttKzMy''@;'; + put 'put ''Pj4zXSksX1tPZSsxNj4+M109YmU9K19bRCs4Pj4zXS0uNSooZ2U9K19bbSs0MD4+M10pLF9bT2UrMjQ+PjNdPVJlK0xlLF9bT2UrMzI+PjNdPWdlK2JlKTowfChmPTB8YVs4KygwfGFbbSsxMTI+PjJdKT4+Ml0pJiYoX1soT2U9MHxhWzEzMisoMHxhW2YrMTY+PjJdKT4+Ml0pPj4zXT0rX1so''@;'; + put 'put ''RD0wfGFbbSsxMzI+PjJdKT4+M10sX1tPZSs4Pj4zXT0rX1tEKzg+PjNdKSxwPTB8enQoUixwKTthWyhPZT04KygwfGFbMTQwKygwfGFbbCsxNj4+Ml0pPj4yXSl8MCk+PjJdPWFbKEQ9OCsoMHxhWzE0MCsoMHxhW1IrMTY+PjJdKT4+Ml0pfDApPj4yXSxhW09lKzQ+PjJdPWFbRCs0Pj4yXSxh''@;'; + put 'put ''W09lKzg+PjJdPWFbRCs4Pj4yXSxhW09lKzEyPj4yXT1hW0QrMTI+PjJdLGFbT2UrMTY+PjJdPWFbRCsxNj4+Ml0sYVtPZSsyMD4+Ml09YVtEKzIwPj4yXSxhW09lKzI0Pj4yXT1hW0QrMjQ+PjJdLGFbT2UrMjg+PjJdPWFbRCsyOD4+Ml0sZnVuY3Rpb24gSXNlKGwsYyl7bHw9MCxjfD0wO2Zv''@;'; + put 'put ''cih2YXIgZj0wLHA9MDtmPTB8YVtjPj4yXTspZnMoZiksSGkoZiwxMzc0ODMpLGM9Yys0fDA7Zm9yKDB8KGM9MHxhW2FbMTQwKygwfGFbbCsxNj4+Ml0pPj4yXT4+Ml0pJiZGdChjKSxmcyhsKSxIaShsLDEzNzQ4MyksZj0wfER0KGwpO2Y7KXtmb3IocD0wfHp0KGwsZiksYz0wfHcwKGwsZik7''@;'; + put 'put ''YzspRnQoMHxhWzE3MisoMHxhW2MrMTY+PjJdKT4+Ml0pLEhpKGMsMTM3NDYwKSxjPTB8UzAobCxjKTtJOWUoZiksZj1wfUMxKGwpfShSLEcpLEZ0KEcpLGFlPXBlfWZ1bmN0aW9uIHNYKGwsYyl7dmFyIG0sQSx3LGY9MCxwPTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wO209K19bOCso''@;'; + put 'put ''Yj0wfGFbMTQwKygwfGFbKHc9MTYrKGx8PTApfDApPj4yXSk+PjJdKT4+M10sQT0rX1tiKzE2Pj4zXSxiPSgwfGwpIT0oMHwoY3w9MCkpO2U6ZG97aWYoYilmb3IoZj0wfER0KGwpOzspe2lmKCFmKXtsPTE7YnJlYWsgZX0oMHxhWzIxMisocD0wfGFbZisxNj4+Ml0pPj4yXSk9PSgwfGwpJiYo''@;'; + put 'put ''X1socD0wfGFbcCsxMzI+PjJdKT4+M109K19bcD4+M10rbSxfWyhwPXArOHwwKT4+M109K19bcD4+M10rQSksZj0wfHp0KGwsZil9ZWxzZSBsPTF9d2hpbGUoMCk7Zm9yKDshKCgwfGwpPigwfGFbMTgwKyhmPTB8YVt3Pj4yXSk+PjJdKSk7KWY9MHxhWygwfGFbZisxODQ+PjJdKSsobDw8Mik+''@;'; + put 'put ''PjJdLGImJihLPTgrKHA9MHxhWzE0MCsoMHxhW2YrMTY+PjJdKT4+Ml0pfDAsRz0rX1soUj1wKzE2fDApPj4zXStBLEQ9K19bKE09cCsyNHwwKT4+M10rbSxrPStfWyhwPXArMzJ8MCk+PjNdK0EsX1tLPj4zXT0rX1tLPj4zXSttLF9bUj4+M109RyxfW00+PjNdPUQsX1twPj4zXT1rKSxzWChm''@;'; + put 'put ''LGMpLGw9bCsxfDB9ZnVuY3Rpb24gQ0QobCl7dmFyIGMscCxtLEEsZj0wO2ZvcihBPTcyKitfWzE2KyhmPTB8YVsxNDArKGw9MHxhWyhjPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSk+PjNdLG09NzIqK19bZisyND4+M10scD03MiorX1tmKzMyPj4zXSxfW2wrMTY+PjNdPTcyKitfW2YrOD4+M10s''@;'; + put 'put ''X1tsKzI0Pj4zXT1BLF9bbCszMj4+M109bSxfW2wrNDA+PjNdPXAsbD0xOyEoKDB8bCk+KDB8YVsxODArKGY9MHxhW2M+PjJdKT4+Ml0pKTspQ0QoMHxhWygwfGFbZisxODQ+PjJdKSsobDw8Mik+PjJdKSxsPWwrMXwwfWZ1bmN0aW9uIHg5ZShsLGMpe2N8PTA7dmFyIGsscD0wLG09MCxBPTAs''@;'; + put 'put ''dz0wLGI9MCxNPTA7az0wfGFbMjEyKyhNPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0sTT0wfGFbNCsoMHxhW00rMTEyPj4yXSk+PjJdO2Rve2lmKDB8TSl7Zm9yKGI9MHx2cigxNisoTTw8NCl8MCksQT04KyhtPTB8SXkobCxjKSl8MCxjPTAscD1tOzB8YVtwPj4yXTspYz0wfEQ5ZShsLHAsYixj''@;'; + put 'put ''LDB8YVsodz1wKzI0fDApPj4yXT8rX1twKzMyPj4zXTorX1tBPj4zXSs2LjI4MzE4NTMwNzE3OTU4NikscD13O2lmKCgwfGMpPT0oMHxNKSl7YVsobD0wfGFbMTQwKygwfGFbaysxNj4+Ml0pPj4yXSk+PjJdPWIsYVtsKzQ+PjJdPU0sRnQobSk7YnJlYWt9UHIoOTA3NDIsOTA3NTIsNzY2LDkw''@;'; + put 'put ''NzYxKX19d2hpbGUoMCk7cmV0dXJuIDB8a31mdW5jdGlvbiBmcyhsKXtGdCgwfGFbMTQwKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKX1mdW5jdGlvbiBJOWUobCl7dmFyIGM7RnQoMHxhWzExMisoMHxhWyhjPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSksRnQoMHxhWzEzMisoMHxhW2M+PjJdKT4+''@;'; + put 'put ''Ml0pLEhpKGwsMTM3NDQ3KX1mdW5jdGlvbiBJeShsLGMpe2N8PTA7dmFyIE0sRCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7Zm9yKEQ9MHx2cigyNCsoMjQqKE09MHxhW2FbMTEyKygwfGFbKGs9MTYrKGx8PTApfDApPj4yXSk+PjJdPj4yXSl8MCl8MCksdz0wLGI9MHxTcyhjLGwpO2I7''@;'; + put 'put ''KSgwfChwPTB8YVsoMj09KDB8KG09MyZhW2I+PjJdKSk/YjpiKy00OHwwKSs0MD4+Ml0pKT09KDB8bCkmJihwPTB8YVsoMz09KDB8bSk/YjpiKzQ4fDApKzQwPj4yXSksQT0rX1socD0wfGFbMTMyKygwfGFbcCsxNj4+Ml0pPj4yXSk+PjNdLStfWyhtPTB8YVsxMzIrKDB8YVtrPj4yXSk+PjJd''@;'; + put 'put ''KT4+M10sZj0rX1twKzg+PjNdLStfW20rOD4+M10sYVtEKygyNCp3fDApPj4yXT1iLF9bRCsoMjQqd3wwKSs4Pj4zXT0rVWwoK2YsK0EpLF9bRCsoMjQqd3wwKSsxNj4+M109ZipmK0EqQSx3PXcrMXwwLGI9MHxIcyhjLGIsbCk7KDB8dykhPSgwfE0pJiZQcig5MDc3NSw5MDc1Miw2NDIsOTA3''@;'; + put 'put ''ODQpLHgxKEQsTSwyNCw2Nyk7ZTpkb3tpZigoMHxNKT4xKXtiPU0rLTF8MCxwPTA7dDpmb3IoOzspe2lmKCgwfHApPj0oMHxiKSlicmVhayBlO2ZvcihBPStfW0QrKDI0KnB8MCkrOD4+M10sdz1tPXArMXwwOyEoKDB8dyk+PSgwfE0pfHwrX1tEKygyNCp3fDApKzg+PjNdIT1BKTspdz13KzF8''@;'; + put 'put ''MDtpZigoMHx3KSE9KDB8bSkpZm9yKGY9KGY9KChmPSgwfHcpPT0oMHxNKT8zLjE0MTU5MjY1MzU4OTc5MzorX1tEKygyNCp3fDApKzg+PjNdKS1BKS8rKHctcHwwKSk+LjAzNDkwNjU4NTAzOTg4NjU5Py4wMzQ5MDY1ODUwMzk4ODY1OTpmLEE9MDs7KXtpZigoMHxwKT49KDB8dykpY29udGlu''@;'; + put 'put ''dWUgdDtfWyhrPUQrKDI0KnB8MCkrOHwwKT4+M109K19baz4+M10rQSxBKz1mLHA9cCsxfDB9ZWxzZSBwPW19fX13aGlsZSgwKTtyZXR1cm4gMHxEfWZ1bmN0aW9uIEQ5ZShsLGMsZixwLG0pe2Z8PTAscHw9MDt2YXIgayxSLEcsQT0wLHc9MCxiPTAsTT0wLEQ9MCxLPTA7Zm9yKFI9KE09MHxy''@;'; + put 'put ''dFsxNjgrKEQ9MHxhWzE2KyhiPTB8YVsoY3w9MCk+PjJdKT4+Ml0pPj4xXSk8PDE2Pj4xNiwoMHwoQT0wfGFbKDI9PSgwfCh3PTMmYVtiPj4yXSkpP2I6YistNDh8MCkrNDA+PjJdKSk9PSgwfChsfD0wKSkmJihBPTB8YVsoMz09KDB8dyk/YjpiKzQ4fDApKzQwPj4yXSksbT0obT0oKG09K20p''@;'; + put 'put ''LShHPStfW2MrOD4+M10pKS8rKE08PDE2Pj4xNikpPi4wMzQ5MDY1ODUwMzk4ODY1OT8uMDM0OTA2NTg1MDM5ODg2NTk6bSxrPShNPUE+Pj4wPmw+Pj4wKT9tOi1tLGM9TT8xOi0xLGI9MCxBPTB8YVtEKzE3Mj4+Ml0sdz1NP3A6cCstMStSfDAsbT1NP0c6bSorKFIrLTF8MCkrRzshKCgwfGIp''@;'; + put 'put ''Pj0oMHxSKSk7KWFbZisodzw8NCk+PjJdPUQ9MHxhW0E+PjJdLGFbZisodzw8NCkrND4+Ml09YVsoKDB8YVsxNjQrKDB8YVsxNisoMHxhWyhLPTM9PSgwfChNPTMmYVtEPj4yXSkpP0Q6RCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT09KDB8bCk/SzoyPT0oMHxNKT9EOkQrLTQ4fDApKzQwPj4y''@;'; + put 'put ''XSxfW2YrKHc8PDQpKzg+PjNdPW0sYj1iKzF8MCxBPUErNHwwLHc9dytjfDAsbSs9aztyZXR1cm4gUitwfDB9ZnVuY3Rpb24gdVgobCxjLGYpe2N8PTA7dmFyIHA9MDtwPTB8c2kobHw9MCwwLGZ8PTAsMCk7ZG97aWYoMHxwKXtpZihsPTB8SG8obCxwKSxwPTB8c2koYywwLGYsMCkpe1ZsKGMs''@;'; + put 'put ''cCxsKTticmVha31zaShjLDAsZixsKTticmVha319d2hpbGUoMCl9ZnVuY3Rpb24gVGYobCxjKXt2YXIgZixwO3JldHVybiBoMChjPTB8R3IobHw9MCxjfD0wLDEpLDEzNzQ0NywzMDQsMSkscD0wfHZyKDMyKSxhWzExMisoMHxhWyhmPWMrMTZ8MCk+PjJdKT4+Ml09cCxsPTB8UW4oKDB8aHJb''@;'; + put 'put ''MTc2KygwfGFbbCsxNj4+Ml0pPj4xXSk8PDMpLGFbMTMyKygwfGFbZj4+Ml0pPj4yXT1sLDB8Y31mdW5jdGlvbiBMOWUobCxjLGYscCl7Y3w9MCxwfD0wO3ZhciBiLGssTSxELFIsRyxtPTAsQT0wLHc9MDtHPWFlLGFlPWFlKzgwfDAsTT1HKzU2fDAsaz1HKzMyfDAsUj1HLEQ9Rys2NHwwLGI9''@;'; + put 'put ''MHxIbyhsfD0wLEE9MHxhWzQrKGZ8PTApPj4yXSk7ZG97aWYoMHxmZVtiPj4wXSl7aWYoISgoMHxhW2Y+PjJdKT09KDB8bCl8fCgwfChmPTB8SG8oMHxrMShsKSxBKSkpIT0oMHxiKSYmMHxqaShiLGYpKSlicmVhaztpZihmZVtEPj4wXT0wLGY9Uis4fDAsQT1SKzE2fDAsdz1SKzI0fDAsYVtr''@;'; + put 'put ''Pj4yXT1SLGFbays0Pj4yXT1mLGFbays4Pj4yXT1BLGFbaysxMj4+Ml09dyxhW2srMTY+PjJdPUQsKDB8aWwoYiw5MDkzNyxrKSk8PTMpe2FbTT4+Ml09MHx0aShsKSxhW00rND4+Ml09YiwkcigwLDkwOTU1LE0pO2JyZWFrfShtPStfWzIzMjkzXSk+MCYmKF9bUj4+M109K19bUj4+M10vbSxf''@;'; + put 'put ''W2Y+PjNdPStfW2Y+PjNdL20sX1tBPj4zXT0rX1tBPj4zXS9tLF9bdz4+M109K19bdz4+M10vbSksZmVbMTE5KygwfGFbYysxNj4+Ml0pPj4wXT0oZj0wfGZlW0Q+PjBdKTw8MjQ+PjI0PT0zMz8zOmY8PDI0Pj4yND09NjM/MjoxLGFbcD4+Ml09YVtSPj4yXSxhW3ArND4+Ml09YVtSKzQ+PjJd''@;'; + put 'put ''LGFbcCs4Pj4yXT1hW1IrOD4+Ml0sYVtwKzEyPj4yXT1hW1IrMTI+PjJdLGFbcCsxNj4+Ml09YVtSKzE2Pj4yXSxhW3ArMjA+PjJdPWFbUisyMD4+Ml0sYVtwKzI0Pj4yXT1hW1IrMjQ+PjJdLGFbcCsyOD4+Ml09YVtSKzI4Pj4yXX19d2hpbGUoMCk7YWU9R31mdW5jdGlvbiBuVihsLGMpe2N8''@;'; + put 'put ''PTA7dmFyIG0sZj0wLHA9MDtsPTB8cnRbMTY4KyhwPTB8YVsobT0xNisobHw9MCl8MCk+PjJdKT4+MV0sKHA9MHxhW3ArMTcyPj4yXSk/KGY9bD1sPDwxNj4+MTYsbD0wfFYwKHAsNCsobDw8Mil8MCkpOihmPWw9bDw8MTY+PjE2LGw9MHxRbig0KyhsPDwyKXwwKSksYVtsKyhmPDwyKT4+Ml09''@;'; + put 'put ''YyxhWzE3MisoYz0wfGFbbT4+Ml0pPj4yXT1sLHJ0WyhjPWMrMTY4fDApPj4xXT0xKygwfHJ0W2M+PjFdKTw8MTY+PjE2fWZ1bmN0aW9uIE85ZShsLGMpe3ZhciBwLG0sYixmPTAsQT0wLHc9MCxrPTA7Yj1hZSxhZT1hZSs0OHwwLHc9YisyNHwwLEE9YixtPTB8YVsoMj09KDB8KGY9MyZhWyhw''@;'; + put 'put ''PTB8YVsoY3w9MCk+PjJdKT4+Ml0pKT9wOnArLTQ4fDApKzQwPj4yXSxmPTB8YVsoMz09KDB8Zik/cDpwKzQ4fDApKzQwPj4yXSxrPSg4KyhjPTB8VW8oMHx0aShsfD0wKSkpKyhrPTB8VW8oMHx0aShtKSkpKygwfFVvKDB8dGkoZikpKXwwKT45OTksYz0wfHRpKGwpLGs/KGY9MHx0aShmKSxr''@;'; + put 'put ''PTB8dGkobSksdz0oMHxhW3A+PjJdKT4+PjQsYVtBPj4yXT1jLGFbQSs0Pj4yXT1mLGFbQSs4Pj4yXT1rLGFbKGs9QSsxNnwwKT4+Ml09dyxhW2srND4+Ml09MCxvbygxOTM3NzIsOTA4OTUsQSkpOihmPTB8YVsxMjArKDB8YVtmKzE2Pj4yXSk+PjJdLGs9MHxhWzEyMCsoMHxhW20rMTY+PjJd''@;'; + put 'put ''KT4+Ml0sQT0oMHxhW3A+PjJdKT4+PjQsYVt3Pj4yXT1jLGFbdys0Pj4yXT1mLGFbdys4Pj4yXT1rLGFbKGs9dysxNnwwKT4+Ml09QSxhW2srND4+Ml09MCxvbygxOTM3NzIsOTA5MTQsdykpLGFlPWJ9ZnVuY3Rpb24gQjllKGwsYyl7dmFyIHAsbSx3LGIsZj0wLEE9MDtiPWFlLGFlPWFlKzE2''@;'; + put 'put ''fDAsZj1iLEE9MHxhW2FbMTQwKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdPj4yXSx3PTB8ZnVuY3Rpb24gTHNlKGwsYyl7bHw9MCxjfD0wO3ZhciBwLG0sQSxmPTAsdz0wLGI9MDstMT09K19bMjMyNDNdPyh3PTB8R28obCksX1syMzI0M109LjIqK19bMjMyNDFdKihmPStfWzIzMjQyXSkqK0Qw''@;'; + put 'put ''KCsgKygwfHcpKSx3PTEpOih3PTAsZj0rX1syMzI0Ml0pLF9bYys4Pj4zXT0rclYoQT0wfGFbNDY1MDRdKSxfW2MrMTY+PjNdPWYsX1tjKzI0Pj4zXT0rX1syMzI0MF0sYVtjPj4yXT1sPShwPTB8YVs0NjQ3OF0pLUF8MCxtPTB8YVs0NjQ3N107ZG97aWYoKDB8bSk+LTEpe2lmKCgwfG0pPD0o''@;'; + put 'put ''MHxBKSl7YVs0NjUwNV09bSxsPTAsYj0xMDticmVha30oMHxtKTw9KDB8cCkmJihhWzQ2NTA1XT1BLGw9bS1BfDAsYj0xMCl9ZWxzZSBhWzQ2NTA1XT1BLGI9MTB9d2hpbGUoMCk7cmV0dXJuIDEwPT0oMHxiKSYmKGFbYyszMj4+Ml09bCksMHx3fShsLGN8PTApLGZ1bmN0aW9uIFA5ZShsLGMs''@;'; + put 'put ''Zil7bHw9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wO2ZvcihMZT0wfEdvKGN8PTApLEhlPTB8YVs0KygwfGFbMTQwKygwfGFbYysxNj4+Ml0pPj4yXSk+PjJd''@;'; + put 'put ''LE9lPTB8RHQoYyksSz0wLHBlPTAsbT0wLGI9MCxEPTA7T2U7KTB8ZmVbMTE5KyhwPTB8YVtPZSsxNj4+Ml0pPj4wXT8oQT0rX1socD0wfGFbcCsxMzI+PjJdKT4+M10sSz8oRD1+figoZ2U9K19bcCs4Pj4zXSk+KFI9KygwfEQpKT9nZTpSKSxwPX5+KEE8KEc9KygwfHBlKSk/QTpHKSxtPX5+''@;'; + put 'put ''KGdlPChiZT0rKDB8bSkpP2dlOmJlKSxiPX5+KEE+KFJlPSsoMHxiKSk/QTpSZSkpOihEPW09fn4rX1twKzg+PjNdLHA9Yj1+fkEpLEs9SysxfDApOnA9cGUsT2U9MHx6dChjLE9lKSxwZT1wO2lmKEE9K19bMjMyNDJdKigrRDAoKyArKExlLUhlfDApKSsxKSxfWzIzMjQ5XT1nZT0uNipBLF9b''@;'; + put 'put ''MjMyNDhdPWdlLDEhPSgwfEspKWlmKCgwfEspPjEpe2JlPS41KisoYitwZXwwKSxSZT0uNSorKEQrbXwwKSx3PShNPTEuMiooaz0rKEQtbXwwKSkpKihHPTEuMiooUj0rKGItcGV8MCkpKS8oQT0yLjQqQSpnZSk7ZG97aWYodz49MSlfWzIzMjQ4XT13PS42KlIsQT0uNiprLHFlPTIwO2Vsc2V7''@;'; + put 'put ''aWYodz4wKXtBPTIqK0QwKCt3KSxfWzIzMjQ4XT13PUcvQSxBPU0vQSxxZT0yMDticmVha31pZihHPjApe19bMjMyNDhdPXc9LjYqUixBPUEvRyouNSxxZT0yMDticmVha31NPjA/KF9bMjMyNDhdPXc9QS9NKi41LEE9LjYqayxxZT0yMCk6KEE9Z2Usdz1nZSl9fXdoaWxlKDApOzIwPT0oMHxx''@;'; + put 'put ''ZSkmJihfWzIzMjQ5XT1BKSxnZT0rVWwoK0EsK3cpLHcvPStoYSgrZ2UpLF9bMjMyNDhdPXcsQS89K0RhKCtnZSksX1syMzI0OV09QX1lbHNlIGJlPTAsUmU9MCx3PWdlLEE9Z2U7ZWxzZSBiZT0rKDB8cGUpLFJlPSsoMHxtKSx3PWdlLEE9Z2U7X1syMzI1MF09dyp3LF9bMjMyNTFdPUEqQSwy''@;'; + put 'put ''PT0oMHxhWzQ2NDg4XSk/cD0wfGFbNDY0NzZdOihwPTB8VGooKSxwPSgwfGhuKDApKV5wKSxJaihwKTtlOmRve2lmKGYpe2Zvcig7MHxhW2Y+PjJdOylnZT0raGEoKyArX1soT2U9Zis4fDApPj4zXSkqK19bMjMyNDhdK2JlLF9bKExlPTB8YVsxMzIrKEhlPTB8YVsxNisoMHxhW2YrND4+Ml0p''@;'; + put 'put ''Pj4yXSk+PjJdKT4+M109Z2UsX1tMZSs4Pj4zXT0rRGEoKyArX1tPZT4+M10pKitfWzIzMjQ5XStSZSxmZVtIZSsxMTk+PjBdPTEsZj1mKzE2fDA7Zm9yKGs9LjEqYmUsTT0uMSpSZSxwZT0wfER0KGMpOzspe2lmKCFwZSlicmVhayBlOzA9PSgwfGFbOCsoMHxhWzExMisoZj0wfGFbKEs9cGUr''@;'; + put 'put ''MTZ8MCk+PjJdKT4+Ml0pPj4yXSkmJiEoMHxhW2YrMjEyPj4yXSl8fChxZT0zMik7ZG97aWYoMzI9PSgwfHFlKSl7aWYocWU9MCwwfGZlW2YrMTE5Pj4wXSl7X1soSGU9MHxhW2YrMTMyPj4yXSk+PjNdPStfW0hlPj4zXS1iZSxfWyhIZT1IZSs4fDApPj4zXT0rX1tIZT4+M10tUmU7YnJlYWt9''@;'; + put 'put ''Zm9yKEQ9MHxTcyhjLHBlKSxmPTAsdz0wLEE9MDtEOyl7bT0wfGFbKHA9Mj09KDB8KGI9MyZhW0Q+PjJdKSk/RDpEKy00OHwwKSs0MD4+Ml0sYj0zPT0oMHxiKT9EOkQrNDh8MDtkb3tpZigoMHxtKSE9KDB8YVtiKzQwPj4yXSkmJjAhPSgwfGZlWzExOSsoVmU9MHxhWzE2KygwfGFbKCgwfG0p''@;'; + put 'put ''PT0oMHxwZSk/YjpwKSs0MD4+Ml0pPj4yXSk+PjBdKSl7aWYoZil7dz0oK19bKEhlPTB8YVtWZSsxMzI+PjJdKT4+M10rdyooRz0rKDB8ZikpKS8oZ2U9KygwfChmPWYrMXwwKSkpLEE9KCtfW0hlKzg+PjNdK0EqRykvZ2U7YnJlYWt9Zj0xLHc9K19bKEhlPTB8YVtWZSsxMzI+PjJdKT4+M10s''@;'; + put 'put ''QT0rX1tIZSs4Pj4zXTticmVha319d2hpbGUoMCk7RD0wfEhzKGMsRCxwZSl9ZG97aWYoKDB8Zik8PTEpe2lmKDE9PSgwfGYpKXtfWyhmPTB8YVsxMzIrKHA9MHxhW0s+PjJdKT4+Ml0pPj4zXT0uOTgqdytrLEE9LjkqQStNO2JyZWFrfUE9Ni4yODMxODUzMDcxNzk1ODYqK3FjKCksRz0oZ2U9''@;'; + put 'put ''LjkqK3FjKCkpKitfWzIzMjQ4XSoraGEoK0EpLF9bKGY9MHxhWzEzMisocD0wfGFbSz4+Ml0pPj4yXSk+PjNdPUcsQT0rX1syMzI0OV0qZ2UqK0RhKCtBKTticmVha31fWyhmPTB8YVsxMzIrKHA9MHxhW0s+PjJdKT4+Ml0pPj4zXT13fXdoaWxlKDApO19bZis4Pj4zXT1BLGZlW3ArMTE5Pj4w''@;'; + put 'put ''XT0xfX13aGlsZSgwKTtwZT0wfHp0KGMscGUpfX1lbHNle2lmKGY9MHxEdChjKSwhSylmb3IoOzspe2lmKCFmKWJyZWFrIGU7Z2U9K19bMjMyNDhdLGdlPSgyKitxYygpLTEpKmdlLF9bYVsxMzIrKDB8YVsocWU9ZisxNnwwKT4+Ml0pPj4yXT4+M109Z2UsZ2U9K19bMjMyNDldLGdlPSgyKitx''@;'; + put 'put ''YygpLTEpKmdlLF9bOCsoMHxhWzEzMisoMHxhW3FlPj4yXSk+PjJdKT4+M109Z2UsZj0wfHp0KGMsZil9Zm9yKDs7KXtpZighZilicmVhayBlOzB8ZmVbMTE5KyhtPTB8YVsocD1mKzE2fDApPj4yXSk+PjBdPyhfWyhxZT0wfGFbbSsxMzI+PjJdKT4+M109K19bcWU+PjNdLWJlLF9bKHFlPXFl''@;'; + put 'put ''Kzh8MCk+PjNdPStfW3FlPj4zXS1SZSk6KGdlPStfWzIzMjQ4XSxnZT0oMiorcWMoKS0xKSpnZSxfW2FbMTMyKygwfGFbcD4+Ml0pPj4yXT4+M109Z2UsZ2U9K19bMjMyNDldLGdlPSgyKitxYygpLTEpKmdlLF9bOCsoMHxhWzEzMisoMHxhW3A+PjJdKT4+Ml0pPj4zXT1nZSksZj0wfHp0KGMs''@;'; + put 'put ''Zil9fX13aGlsZSgwKTtfW2w+PjNdPWJlLF9bbCs4Pj4zXT1SZX0oZixsLEEpLHA9K19bZj4+M10sbT0rX1tmKzg+PjNdO2U6ZG97aWYoMHxhWzQ2NDc0XSl7Zm9yKF9LKGY9MHx1MWUoMHxHbyhsKSksMHxHbyhsKSksYz0wOyEoKDB8Yyk+PSgwfGFbNDY1MDVdKSk7KUY5ZShsLCtyVihjKSxB''@;'; + put 'put ''LGYpLGM9YysxfDA7Q0soZil9ZWxzZSBmb3IoYz0wOzspe2lmKCgwfGMpPj0oMHxhWzQ2NTA1XSkpYnJlYWsgZTtPc2UobCwrclYoYyksQSksYz1jKzF8MH19d2hpbGUoMCk7ZTpkb3tpZigwIT1wfDAhPW0pZm9yKGM9MHxEdChsKTs7KXtpZighYylicmVhayBlO19bKEE9MHxhWzEzMisoMHxh''@;'; + put 'put ''W2MrMTY+PjJdKT4+Ml0pPj4zXT0rX1tBPj4zXStwLF9bKEE9QSs4fDApPj4zXT0rX1tBPj4zXSttLGM9MHx6dChsLGMpfX13aGlsZSgwKTswfHcmJmZ1bmN0aW9uIEg5ZSgpe19bMjMyNDNdPS0xfSgpLGFlPWJ9ZnVuY3Rpb24gclYobCl7dmFyIGM7cmV0dXJuKyArX1syMzI0M10qKygoYz0w''@;'; + put 'put ''fGFbNDY0NzhdKS0obHw9MCl8MCkvKygwfGMpfWZ1bmN0aW9uIEY5ZShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wO2lmKCEoKGM9K2MpPD0wKSl7Zm9yKGZ1bmN0aW9uIGgxZShsKXt2YXIgYz0wO21pWzYzJmFbKGM9MHxhWyhsfD0wKT4+Ml0pPj4yXV0oYyww''@;'; + put 'put ''LDY0KSxhW2wrMjA+PjJdPWFbbCsxNj4+Ml0sYVtsKzg+PjJdPWM9MHxhW2wrND4+Ml0sYVtjKzQ+PjJdPWFbYz4+Ml19KHApLG09MHxEdChsKTttOylhWyhBPTE2KygwfGFbMTEyKyh3PTB8YVttKzE2Pj4yXSk+PjJdKXwwKT4+Ml09MCxhW0ErND4+Ml09MCxhW0ErOD4+Ml09MCxhW0ErMTI+''@;'; + put 'put ''PjJdPTAsU0socCxBPX5+K2NmKCsgK19bKHc9MHxhW3crMTMyPj4yXSk+PjNdLyhiPStfWzIzMjQ1XSkpLH5+K2NmKCsgK19bdys4Pj4zXS9iKSxtKSxtPTB8enQobCxtKTtmb3IoQT0wfER0KGwpO0E7KXtmb3IobT0wfHcwKGwsQSk7bTspKDB8QSkhPSgwfCh3PTB8YVsoMj09KDMmYVttPj4y''@;'; + put 'put ''XXwwKT9tOm0rLTQ4fDApKzQwPj4yXSkpJiZSc2UoQSx3LG0pLG09MHxTMChsLG0pO0E9MHx6dChsLEEpfShmdW5jdGlvbiBFSyhsLGMpeyFmdW5jdGlvbiBUUChsLGMsZil7Y3w9MCxmfD0wO3ZhciBBLHA9MCxtPTAsdz0wO0E9MzIrKGx8PTApfDAsbT0wfG1pWzYzJmFbbD4+Ml1dKGwsMCwx''@;'; + put 'put ''MjgpO2Rve2lmKCFtKXtwPTA7YnJlYWt9dz0wfGFbQT4+Ml0scD1tLG09MHxtaVs2MyZhW2w+PjJdXShsLG0sOCkscD0wfG1pWzYzJmNdKDA9PSgwfHcpP2w6dyxwLGYpfXdoaWxlKCgwfHApPj0wKX0oMHxhWyhsfD0wKT4+Ml0sY3w9MCxsKX0pKHAsMjMpLGZYKGwsYyxmKX19ZnVuY3Rpb24g''@;'; + put 'put ''T3NlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wO2lmKCEoKGM9K2MpPD0wKSl7Zm9yKHA9MHxEdChsKTtwOylhWyhBPTE2KygwfGFbMTEyKygwfGFbcCsxNj4+Ml0pPj4yXSl8MCk+PjJdPTAsYVtBKzQ+PjJdPTAsYVtBKzg+PjJdPTAsYVtBKzEyPj4yXT0wLHA9MHx6dChsLHAp''@;'; + put 'put ''O2ZvcihBPTB8RHQobCk7QTspe2ZvcihwPUE7cD0wfHp0KGwscCk7KWNYKEEscCk7Zm9yKHA9MHx3MChsLEEpO3A7KSgwfEEpIT0oMHwobT0wfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0pKSYmUnNlKEEsbSxwKSxwPTB8UzAobCxwKTtBPTB8enQobCxBKX1mWChsLGMs''@;'; + put 'put ''Zil9fWZ1bmN0aW9uIGNYKGwsYyl7dmFyIGYscCxtLEE7QnNlKGx8PTAsY3w9MCxmPStfWyhBPTB8YVsxMzIrKDB8YVtjKzE2Pj4yXSk+PjJdKT4+M10tK19bKG09MHxhWzEzMisoMHxhW2wrMTY+PjJdKT4+Ml0pPj4zXSxwPStfW0ErOD4+M10tK19bbSs4Pj4zXSxwKnArZipmKX1mdW5jdGlv''@;'; + put 'put ''biBSc2UobCxjLGYpe2Z8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihBPXA9K19bKGs9MHxhWzEzMisoMHxhWyhiPTE2KyhjfD0wKXwwKT4+Ml0pPj4yXSk+PjNdLStfWyhjPTB8YVsxMzIrKDB8YVsobD0xNisobHw9MCl8MCk+PjJdKT4+Ml0pPj4zXSx3PW09K19bays4Pj4z''@;'; + put 'put ''XS0rX1tjKzg+PjNdLHAqPXAsbSo9bTswPT0ocCs9bSk7KUE9cD0rKDUtKCgwfFQxKCkpJTEwfDApfDApLHc9bT0rKDUtKCgwfFQxKCkpJTEwfDApfDApLHAqPXAsbSo9bTttPStEMCgrcCkscD0rX1sxMjgrKGM9MHxhW2YrMTY+PjJdKT4+M10sX1soYj0xNisoaz0wfGFbMTEyKygwfGFbYj4+''@;'; + put 'put ''Ml0pPj4yXSl8MCk+PjNdPStfW2I+PjNdLShBKj1wPTB8YVs0NjQ3NV0/KG0tK19bYysxMzY+PjNdKSpwL206cCptLytfW2MrMTM2Pj4zXSksX1soaz1rKzI0fDApPj4zXT0rX1trPj4zXS0odyo9cCksX1soYj0xNisoaz0wfGFbMTEyKygwfGFbbD4+Ml0pPj4yXSl8MCk+PjNdPStfW2I+PjNd''@;'; + put 'put ''K0EsX1soaz1rKzI0fDApPj4zXT0rX1trPj4zXSt3fWZ1bmN0aW9uIGZYKGwsYyxmKXt2YXIgRCxSLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtmb3IoUj0oYz0rYykqYyxEPTA9PSgwfChmfD0wKSksTT0wfER0KGx8PTApO007KXtpZighKDImZmVbMTE5KyhrPTB8YVtNKzE2Pj4yXSk+''@;'; + put 'put ''PjBdKSl7KG09KEE9K19bMjQrKGI9MHxhW2srMTEyPj4yXSk+PjNdKSpBKyhwPStfW2IrMTY+PjNdKSpwKTxSPyh3PStfWyhmPTB8YVtrKzEzMj4+Ml0pPj4zXStwLHA9K19bZis4Pj4zXStBKToobT1jLytEMCgrbSksdz0rX1soZj0wfGFbaysxMzI+PjJdKT4+M10rbSpwLHA9K19bZis4Pj4z''@;'; + put 'put ''XSttKkEpO2Rve2lmKCFEKXtpZihtPStEMCgrKHAqcC8rX1syMzI1MV0rdyp3LytfWzIzMjUwXSkpLDA9PSgwfGFbYis4Pj4yXSkmJjA9PSgwfGFbaysyMTI+PjJdKSl7X1tmPj4zXT13L20scC89bTticmVha31pZihtPj0xKXtfW2Y+PjNdPS45NSp3L20scD0uOTUqcC9tO2JyZWFrfV9bZj4+''@;'; + put 'put ''M109dzticmVha31fW2Y+PjNdPXd9d2hpbGUoMCk7X1tmKzg+PjNdPXB9TT0wfHp0KGwsTSl9fWZ1bmN0aW9uIEJzZShsLGMsZixwLG0pe2x8PTAsY3w9MCxwPStwO3ZhciBBPTAsdz0wLGI9MDtmb3IoQT1mPStmLGY9bT0rbTswPT1mOylBPWY9Kyg1LSgoMHxUMSgpKSUxMHwwKXwwKSxmPShw''@;'; + put 'put ''PSsoNS0oKDB8VDEoKSklMTB8MCl8MCkpKnArZipmOzB8YVs0NjQ3NV0/KG09K0QwKCtmKSxmPStfWzIzMjQ3XS8obSpmKSk6Zj0rX1syMzI0N10vZiwwPT0oMHxhWzgrKGw9MHxhWzExMisoYj0wfGFbbCsxNj4+Ml0pPj4yXSk+PjJdKSYmMD09KDB8YVtiKzIxMj4+Ml0pJiYwPT0oMHxhWzgr''@;'; + put 'put ''KDB8YVsxMTIrKHc9MHxhW2MrMTY+PjJdKT4+Ml0pPj4yXSkmJihmPTA9PSgwfGFbdysyMTI+PjJdKT8xMCpmOmYpLF9bKGM9MTYrKGI9MHxhWzExMisoMHxhW2MrMTY+PjJdKT4+Ml0pfDApPj4zXT0rX1tjPj4zXSsobT1mKkEpLF9bKGI9YisyNHwwKT4+M109K19bYj4+M10rKEE9ZipwKSxf''@;'; + put 'put ''WyhiPWwrMTZ8MCk+PjNdPStfW2I+PjNdLW0sX1soYj1sKzI0fDApPj4zXT0rX1tiPj4zXS1BfWZ1bmN0aW9uIFY3KGwsYyxmLHApe3B8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtpZihsPTB8ZnVuY3Rpb24gSlYobCxjLGYpe2x8PTAsZnw9MDt2YXIgcCxtO3JldHVybiBw''@;'; + put 'put ''PWFlLGFlPWFlKzMyfDAsYVsobT1wKT4+Ml09Y3w9MCxhW20rND4+Ml09ZixmPTB8bWlbNjMmYVsoZj0wfGFbbD4+Ml0pPj4yXV0oZixtLDQpLGFlPXAsMHxmfShsfD0wLGN8PTAsZnw9MCksMCE9KDB8cCkmMCE9KDB8bCkpe2s9bCs4fDA7ZG97Zm9yKGI9MTYrKGY9MHxhW3A+PjJdKXwwLGw9''@;'; + put 'put ''aztsPTB8YVtsPj4yXTspKHc9KEE9K19bOCsoRD0wfGFbMTMyKygwfGFbMTYrKGM9MHxhW2w+PjJdKT4+Ml0pPj4yXSk+PjNdLStfWzgrKE09MHxhWzEzMisoMHxhW2I+PjJdKT4+Ml0pPj4zXSkqQSsobT0rX1tEPj4zXS0rX1tNPj4zXSkqbSk8K19bMjMyNDZdJiZCc2UoZixjLG0sQSx3KSxs''@;'; + put 'put ''PWwrNHwwO3A9MHxhW3ArND4+Ml19d2hpbGUoMCE9KDB8cCkpfX1mdW5jdGlvbiBoWChsLGMpe2N8PTA7dmFyIEEsZj0wLHA9MCx3PTA7QT1hZSxhZT1hZSsxNnwwLDAhPSgwfChmPTB8TGkobHw9MCw5MjUwNykpKSYmMCE9KDB8ZmVbZj4+MF0pfHwoZj05MTEyNSkscD0wfCRzKGYsNTgpO2Rv''@;'; + put 'put ''e2lmKHApe2lmKCgwfHApIT0oMHxmKSYmKCgwfGZlW2Y+PjBdKS00OHwwKT4+PjA+PTEwKXtwPTA7YnJlYWt9dz0wfHIzKGYpLGY9cCsxfDAscD0oMHx3KT4wP3c6MH1lbHNlIHA9MH13aGlsZSgwKTswIT0oMHxwKSYmISgwfGZ1bmN0aW9uIE45ZShsLGMsZil7Y3w9MCxmfD0wO3ZhciB3LEcs''@;'; + put 'put ''SyxwZSxwPTAsbT0wLEE9MCxiPTAsaz0wLE09MCxEPTAsUj0wO3BlPWFlLGFlPWFlKzY0fDAsRz1wZSxBPXBlKzQwfDAsSz0wfEdvKGx8PTApLHc9MHxWMyhsKSxXNyhBLGwpLGFbNDY4NDJdPWFbQT4+Ml0sYVs0Njg0M109YVtBKzQ+PjJdLGFbNDY4NDRdPWFbQSs4Pj4yXSwwfGZlWzE4NzM3''@;'; + put 'put ''Nl0mJihqbls0Njg0Ml09LjAxMzg4ODg4ODg4ODg4ODg4OCoram5bNDY4NDJdLGpuWzQ2ODQzXT0uMDEzODg4ODg4ODg4ODg4ODg4Kitqbls0Njg0M10pLHA9MHxmdW5jdGlvbiBGc2UobCl7dmFyIGM9MCxmPTAscD0wLG09MDtmb3IoYz0wLG09MHxEdChsfD0wKTttOyl7Zm9yKHA9bTtmPTB8''@;'; + put 'put ''enQobCxwKTspcD1mLGM9KDB8aVYobSxmKSkrY3wwO209MHx6dChsLG0pfXJldHVybiAwfGN9KGwpO2U6ZG97aWYocCl7bT0oQT1HKSs0MHwwO2Rve2FbQT4+Ml09YVtjPj4yXSxBPUErNHwwLGM9Yys0fDB9d2hpbGUoKDB8QSk8KDB8bSkpO2ZvcihSPStfWyhBPUcrMTZ8MCk+PjNdLE09Mior''@;'; + put 'put ''KDB8dyksRD0xLysoMHxBcihLKy0xfDAsSykpLG09MCxrPVI7Oyl7aWYoISgwIT0oMHxwKSYoMHxtKTwoMHxmKSkpYnJlYWsgZTtmb3IoVjllKEssRyksX1syMzI1NF09Yj0rX1syMzI1M10qK19bMTcwXSxfWzIzMjU1XT1NKmIqRCxjPTA7ISgoMHxjKT49KDB8YVs0NjUxMl0pfHwoYj0rZFgo''@;'; + put 'put ''YyksYjw9MCkpOyl7aWYoIShwPTB8ajllKGwsYikpKXtwPTA7YnJlYWt9Yz1jKzF8MH1fW0E+PjNdPWI9aytSLG09bSsxfDAsaz1ifX1lbHNlIHA9MH13aGlsZSgwKTtyZXR1cm4gYWU9cGUsMHxwfShsLGMscCkpfHxoVihsLGYpLGFlPUF9ZnVuY3Rpb24gVjllKGwsYyl7dmFyIGYscCxtO2x8''@;'; + put 'put ''PTAsX1sxNzFdPXA9K19bMTYrKGN8PTApPj4zXSxhWzM0NF09YVtjPj4yXSxfWzIzMjU3XT1tPStfW2MrOD4+M10sYVs0NjUxMl09YVtjKzMyPj4yXSwoZj0rX1tjKzI0Pj4zXSk+MCYmKF9bMTcwXT1mKSxfWzIzMjUzXT1wKnAsMD09bSYmKF9bMjMyNTddPS4yKitEMCgrICsoMHxsKSkqcCl9''@;'; + put 'put ''ZnVuY3Rpb24gZFgobCl7dmFyIGM7cmV0dXJuKyArX1syMzI1N10qKygoYz0wfGFbMzQ0XSktKGx8PTApfDApLysoMHxjKX1mdW5jdGlvbiBqOWUobCxjKXtjPStjO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2ZvcihmPTB8RHQobHw9MCk7ZjspYVsodz0xNisoMHxhWzEx''@;'; + put 'put ''MisoMHxhW2YrMTY+PjJdKT4+Ml0pfDApPj4yXT0wLGFbdys0Pj4yXT0wLGFbdys4Pj4yXT0wLGFbdysxMj4+Ml09MCxmPTB8enQobCxmKTtmb3IoZj0wLHc9MHxEdChsKTt3Oyl7Zm9yKG09dztwPTB8enQobCxtKTspbT1wLGY9KDB8SHNlKHcscCkpK2Z8MDtmb3IocD0wfHcwKGwsdyk7cDsp''@;'; + put 'put ''WjllKHcsMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdKSxwPTB8UzAobCxwKTt3PTB8enQobCx3KX1lOmRve2lmKGYpZm9yKE09YypjLG09MHxEdChsKTs7KXtpZighbSlicmVhayBlOzMhPSgwfGZlWzExOSsocD0wfGFbbSsxNj4+Ml0pPj4wXSkmJigoaz0oQT0rX1sy''@;'; + put 'put ''NCsodz0wfGFbcCsxMTI+PjJdKT4+M10pKkErKGI9K19bdysxNj4+M10pKmIpPE0/X1socD0wfGFbcCsxMzI+PjJdKT4+M109K19bcD4+M10rYjooaz0rRDAoK2spLF9bKHA9MHxhW3ArMTMyPj4yXSk+PjNdPStfW3A+PjNdK2IqYy9rLEE9QSpjL2spLF9bKHc9cCs4fDApPj4zXT0rX1t3Pj4z''@;'; + put 'put ''XStBKSxtPTB8enQobCxtKX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIEhzZShsLGMpe3ZhciBmLHAsbSxBO3JldHVybiAwfGZ1bmN0aW9uIHBYKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGY9K2YscD0rcCxtPSttO2Zvcih2YXIgQSx3OzA9PW07KWY9bT0rKDUtKCgwfFQx''@;'; + put 'put ''KCkpJTEwfDApfDApLG09KHA9Kyg1LSgoMHxUMSgpKSUxMHwwKXwwKSkqcCttKm07cmV0dXJuIEE9MHxpVihsLGMpLF9bKHc9MTYrKGM9MHxhWzExMisoMHxhW2MrMTY+PjJdKT4+Ml0pfDApPj4zXT0rX1t3Pj4zXSsoZj0obT0oMD09KDB8QSk/K19bMjMyNTVdOitfWzIzMjU0XSkvbSkqZiks''@;'; + put 'put ''X1soYz1jKzI0fDApPj4zXT0rX1tjPj4zXSsobSo9cCksX1sobD0xNisoYz0wfGFbMTEyKygwfGFbbCsxNj4+Ml0pPj4yXSl8MCk+PjNdPStfW2w+PjNdLWYsX1soYz1jKzI0fDApPj4zXT0rX1tjPj4zXS1tLDB8QX0obHw9MCxjfD0wLGY9K19bKEE9MHxhWzEzMisoMHxhW2MrMTY+PjJdKT4+''@;'; + put 'put ''Ml0pPj4zXS0rX1sobT0wfGFbMTMyKygwfGFbbCsxNj4+Ml0pPj4yXSk+PjNdLHA9K19bQSs4Pj4zXS0rX1ttKzg+PjNdLHAqcCtmKmYpfWZ1bmN0aW9uIFo5ZShsLGMpe3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDswfGlWKGx8PTAsY3w9MCl8fChBPStEMCgrKChm''@;'; + put 'put ''PStfWzgrKEQ9MHxhWzEzMisodz0wfGFbYysxNj4+Ml0pPj4yXSk+PjNdLStfWzgrKE09MHxhWzEzMisobT0wfGFbbCsxNj4+Ml0pPj4yXSk+PjNdKSpmKyhwPStfW0Q+PjNdLStfW00+PjNdKSpwKSksYj0rTnNlKGwpLGI9K05zZShjKStiLF9bKGw9MTYrKGM9MHxhW3crMTEyPj4yXSl8MCk+''@;'; + put 'put ''PjNdPStfW2w+PjNdLShwKj1BPShrPUEtYikqay8oKCtfWzE3MV0rYikqQSkpLF9bKGM9YysyNHwwKT4+M109K19bYz4+M10tKGYqPUEpLF9bKGw9MTYrKGM9MHxhW20rMTEyPj4yXSl8MCk+PjNdPStfW2w+PjNdK3AsX1soYz1jKzI0fDApPj4zXT0rX1tjPj4zXStmKX1mdW5jdGlvbiBpVihs''@;'; + put 'put ''LGMpe3ZhciB3LGIsZj0wLHA9MCxtPTAsQT0wO3JldHVybiBtPStfWyhiPTB8YVsxMzIrKHc9MHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk+PjNdLStfWyhsPTB8YVsxMzIrKGM9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSk+PjNdLEE9KEE9K19bYis4Pj4zXS0rX1tsKzg+PjNdKTwwPy1BOkEsZj0r''@;'; + put 'put ''X1tjKzMyPj4zXSwobD0wPT0oMHxmZVsxODczNzZdKSk/KGY9LjUqZioocD0ram5bNDY4NDJdKSxwKj0uNSorX1t3KzMyPj4zXSk6KGY9LjUqZisocD0ram5bNDY4NDJdKSxwPS41KitfW3crMzI+PjNdK3ApLChtPDA/LW06bSk8PXArZj8oZj0rX1tjKzQwPj4zXSxsPyhwPS41KmYqKG09K2pu''@;'; + put 'put ''WzQ2ODQzXSksZj0uNSorX1t3KzQwPj4zXSptKToocD0uNSpmKyhtPStqbls0Njg0M10pLGY9LjUqK19bdys0MD4+M10rbSksYz1BPD1mK3AmMSk6Yz0wLDB8Y31mdW5jdGlvbiBOc2UobCl7dmFyIGM9MCxmPTA7cmV0dXJuIGM9K19bMzIrKGw9MHxhWzE2KyhsfD0wKT4+Ml0pPj4zXSwwfGZl''@;'; + put 'put ''WzE4NzM3Nl0/KGY9LjUqYysgK2puWzQ2ODQyXSxjPS41KitfW2wrNDA+PjNdKyAram5bNDY4NDNdKTooZj0uNSpjKitqbls0Njg0Ml0sYz0uNSorX1tsKzQwPj4zXSoram5bNDY4NDNdKSwrICtEMCgrKGMqYytmKmYpKX1mdW5jdGlvbiBHOWUobCl7dmFyIGM7aDAobHw9MCwxMzc0NjAsMTc2''@;'; + put 'put ''LDEpLEw3KGwpLGM9K01sKGwsMHxhWzQ3MTc0XSwxLDApLF9bMTI4KygwfGFbbCsxNj4+Ml0pPj4zXT1jfWZ1bmN0aW9uIFc5ZShsLGMsZil7Znw9MDt2YXIgcD0wO3JldHVybiBoMChjPTB8R3IobHw9MCxjfD0wLDEpLDEzNzQ0NywzMDQsMSkscD0wfHZyKDQwKSxhWzExMisoMHxhWyhsPWMr''@;'; + put 'put ''MTZ8MCk+PjJdKT4+Ml09cCxwPTB8dnIoYVs0NzEzN108PDMpLGFbMTMyKyhsPTB8YVtsPj4yXSk+PjJdPXAsX1tsKzg4Pj4zXT0rX1s4OCsocD0wfGFbZisxNj4+Ml0pPj4zXSxfW2wrOTY+PjNdPStfW3ArOTY+PjNdLF9bbCs4MD4+M109K19bcCs4MD4+M10sYVthW2wrMTEyPj4yXT4+Ml09''@;'; + put 'put ''ZiwwfGN9ZnVuY3Rpb24genNlKGwpe3ZhciBjPTAsZj0wLHA9MDtmb3IoYz0wfER0KGx8PTApO2M7KXA9MHxhWzEzMisoZj0wfGFbYysxNj4+Ml0pPj4yXSxfWyhmPTB8YVsxMzIrKDB8YVsxNisoMHxhW2FbZisxMTI+PjJdPj4yXSk+PjJdKT4+Ml0pPj4zXT0rX1twPj4zXSxfW2YrOD4+M109''@;'; + put 'put ''K19bcCs4Pj4zXSxjPTB8enQobCxjKX1mdW5jdGlvbiB2WChsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHcsYixELFIsRyxLLE0scD0wLG09MCxBPTAsaz0wO0s9YWUsYWU9YWUrNDh8MCxtPUssRD1LKzMyfDAsYj1LKzI4fDAsRz1LKzIwfDAsUj1LKzE2fDAsYVsoQT1LKzI0fDApPj4yXT0w''@;'; + put 'put ''LGFbRz4+Ml09MCxhW1I+PjJdPTAscD0wfGFbNDcxMzddLE09MT09KDB8YVsodz1jKzEzNnwwKT4+Ml0pPzB8bDJlKGwscCxSKTowfGwyZShsLHAsMCk7ZG97aWYoKDB8YVtjKzEyND4+Ml0pPi0xKXtpZigoMHxhW2MrMTYwPj4yXSk+MCl7YVttPj4yXT1hW2Y+PjJdLGFbbSs0Pj4yXT1hW2Yr''@;'; + put 'put ''ND4+Ml0sYVttKzg+PjJdPWFbZis4Pj4yXSxhW20rMTI+PjJdPWFbZisxMj4+Ml0saz0wfGEyZShsLG0sQSxHKTticmVha31hW20+PjJdPWFbZj4+Ml0sYVttKzQ+PjJdPWFbZis0Pj4yXSxhW20rOD4+Ml09YVtmKzg+PjJdLGFbbSsxMj4+Ml09YVtmKzEyPj4yXSxrPTB8YTJlKGwsbSwwLDAp''@;'; + put 'put ''O2JyZWFrfWs9MH13aGlsZSgwKTtzd2l0Y2gocD0wfGZ1bmN0aW9uIFVzZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7dz0wfHZyKDB8QXIoKHc9MHxhWzQ3MTM3XSk8PDMsMHxHbyhsfD0wKSkpO2U6ZG97aWYoMHxzaShsLDEsMTAyNjIzLDApKWZvcihwPTB8RHQobCk7Oyl7aWYo''@;'; + put 'put ''IXApYnJlYWsgZTtjPTB8YVtwKzE2Pj4yXTt0OmRve2lmKDB8ZmVbYysxMTk+PjBdKWZvcihtPTB8YVs0NzEzN10sQT0wfEFyKG0sMHxhW2MrMTIwPj4yXSksZj1jKzEzMnwwLGM9MDs7KXtpZigoMHxjKT49KDB8bSkpYnJlYWsgdDtfW3crKEErYzw8Myk+PjNdPStfWygwfGFbZj4+Ml0pKyhj''@;'; + put 'put ''PDwzKT4+M10sYz1jKzF8MH19d2hpbGUoMCk7cD0wfHp0KGwscCl9fXdoaWxlKDApO3JldHVybiAwfHd9KGwpLGFbRD4+Ml09cCwwfGFbdz4+Ml0pe2Nhc2UgMTpjYXNlIDA6TWsoMHxhWzQ3MTM3XSxNLDB8YVtSPj4yXSxjLDAsayxwLDB8YVtBPj4yXSwwfGFbRz4+Ml0sYik7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSA1OiFmdW5jdGlvbiBidShsLGMsZixwKXtsfD0wLGZ8PTA7dmFyIGIsbT0wLEE9MCx3PTAsaz0wLE09MDtmb3IoYj0wfGFbKGN8PTApPj4yXSxhWyhwfD0wKT4+Ml09MCxrPTB8QXIoYixsKSxwPTA7Oyl7aWYoKDB8cCk+PSgwfGspKXtwPTEsbT0xO2JyZWFrfV9bZisocDw8Myk+PjNdPTEw''@;'; + put 'put ''MCorQmgoKSxwPXArMXwwfWZvcig7ISgoMHxtKT49KDB8YikpOyl7Zm9yKHc9MHxBcihtLGwpLEE9MDshKCgwfEEpPj0oMHxsKSk7KXtpZigoKE09K19bZisoQTw8Myk+PjNdLStfW2YrKEErdzw8Myk+PjNdKT49MD9NOi1NKT4xZS0xNil7cD0wLG09YjticmVha31BPUErMXwwfW09bSsxfDB9''@;'; + put 'put ''ZTpkb3tpZigwfHApZm9yKG53KDEpLHA9MDs7KXtpZigoMHxwKT49KDB8aykpYnJlYWsgZTtfW2YrKHA8PDMpPj4zXT0xMDAqK0JoKCkscD1wKzF8MH19d2hpbGUoMCk7aWYoMHxsaChwPTB8ZnVuY3Rpb24gbzJlKGwsYyl7Yz0rYzt2YXIgZixtLHA9MCxBPTA7Zj0xPT0oMHxhWzE2KyhsfD0w''@;'; + put 'put ''KT4+Ml0pPzB8YWgobCwwKTowfEE1KGwpLG09MHxhW2YrMjg+PjJdO2U6ZG97aWYoMSE9Yylmb3IocD0wfGFbZis4Pj4yXSxsPTA7Oyl7aWYoKDB8bCk+PSgwfHApKWJyZWFrIGU7X1soQT1tKyhsPDwzKXwwKT4+M109K19bQT4+M10qYyxsPWwrMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxmfShj''@;'; + put 'put ''LDEpLDApKXJldHVybiBaNyhrPTB8RWsoMCxwLDAsMTAxZTUsMTAwLDApLGwsZiwzMDApLHlsKGspLFo3KGs9MHxFaygwLHAsMCwxMDFlMywxMDAsMCksbCxmLDMwMCkseWwoayksWjcoaz0wfEVrKDAscCwwLDEwMTAsMTAwLDApLGwsZiwzMDApLHlsKGspLFo3KGs9MHxFaygwLHAsMCwxMC4x''@;'; + put 'put ''LDEwMCwwKSxsLGYsMzAwKSx5bChrKSxmdW5jdGlvbiBybihsLGMsZixwLG0sQSx3KXtsPStsLGM9K2MsZj0rZixwPStwLG18PTAsQXw9MCx3fD0wO3ZhciBELFIsRyxLLGI9MCxrPTAsTT0wLHBlPTAsZ2U9MCxiZT0wO2ZvcihLPWFlLGFlPWFlKzgwfDAsUj1LKzQ4fDAsRD1LKzI0fDAsRz1L''@;'; + put 'put ''LGI9MDs7KXtpZigoMHxiKT49KDB8QSkpe2s9MDticmVha31fW1IrKGI8PDMpPj4zXT1wZT0rX1t3KyhiPDwzKT4+M10sX1tEKyhiPDwzKT4+M109cGUsYj1iKzF8MH1mb3IoOyEoKDB8ayk+PSgwfG0pKTspe2ZvcihNPTB8QXIoayxBKSxiPTA7ISgoMHxiKT49KDB8QSkpOylfWyhnZT1SKyhi''@;'; + put 'put ''PDwzKXwwKT4+M109KGJlPStfW3crKGIrTTw8Myk+PjNdKTwocGU9K19bZ2U+PjNdKT9iZTpwZSxfWyhnZT1EKyhiPDwzKXwwKT4+M109YmU+KHBlPStfW2dlPj4zXSk/YmU6cGUsYj1iKzF8MDtrPWsrMXwwfWZvcihmPTAhPShwZT0rX1tEPj4zXS0rX1tSPj4zXSk/KGYtbCkvcGU6MSxiZT0o''@;'; + put 'put ''cC1jKS8ocGU9K19bRCs4Pj4zXS0rX1tSKzg+PjNdKSxmPTAhPXBlP2Y8YmU/ZjpiZTpmLF9bRz4+M109bCxfW0crOD4+M109YyxfW0crMTY+PjNdPTAsaz0wOyEoKDB8ayk+PSgwfG0pKTspe2ZvcihNPTB8QXIoayxBKSxiPTA7ISgoMHxiKT49KDB8QSkpOylfWyhnZT13KyhiK008PDMpfDAp''@;'; + put 'put ''Pj4zXT0oK19bZ2U+PjNdLStfW1IrKGI8PDMpPj4zXSkqZisgK19bRysoYjw8Myk+PjNdLGI9YisxfDA7az1rKzF8MH1hZT1LfSgwLDAsNDkwLDcwMCwwfGFbYz4+Ml0sbCxmKSx2b2lkIFJhKHApO1ByKDkyNDMwLDkyMzg3LDE2NCw5MjQ2Nil9KDB8YVs0NzEzN10sTSxwLGIpO2JyZWFrO2Nh''@;'; + put 'put ''c2UgNDpwPShwPTB8YVtSPj4yXSk/MHxVayhwLDApOjB8QTUoTSksYVtSPj4yXT1wLGZ1bmN0aW9uIEs5ZShsLGMsZixwLG0sQSx3LGIpeyFmdW5jdGlvbiBEYyhsLGMsZixwLG0sQSx3KXtsfD0wLGZ8PTAscHw9MCxtfD0wLEE9K0Esd3w9MDt2YXIgTSxiPTAsaz0wLEQ9MDtpZihEPTA9PSgw''@;'; + put 'put ''fGxoKGN8PTAsMCkpLGI9MT09KDB8YVtjKzE2Pj4yXSksRD9iP2I9MHx3cCgwfGFoKGMsMCkpOms9NTpiP2I9YzprPTUsNT09KDB8aykmJihiPTB8QTUoYykpLEQ9MHx3cChiKSxhW3c+PjJdPTAsYj0wfGFbRD4+Ml0sZnx8KFFuKDB8QXIobDw8MyxiKSksYmwoKSksTT0wfGZ1bmN0aW9uIHd4''@;'; + put 'put ''KGwsYyxmLHAsbSxBKXtjfD0wLGY9K2YscHw9MCxtfD0wLEF8PTA7dmFyIGFuLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLGx0PTAsRXQ9MCxadD0wLGN0''@;'; + put 'put ''PTAsYnQ9MCxTbj0wLEhuPTAsdXI9MDtpZihhbj0wfGFbKGx8PTApPj4yXSwwfGxoKGwsMCkmJjE9PSgwfGFbbCsxNj4+Ml0pKXtmb3Ioaz0wfEFyKGFuLGMpLGI9MCx3PTA7ISgoMHx3KT49KDB8aykpOyliPShwZT0rX1twKyh3PDwzKT4+M10pKnBlK2Isdz13KzF8MDtlOmRve2lmKDA9PWIp''@;'; + put 'put ''Zm9yKHc9MDs7KXtpZigoMHx3KT49KDB8aykpYnJlYWsgZTtfW3ArKHc8PDMpPj4zXT03MiorQmgoKSx3PXcrMXwwfX13aGlsZSgwKTtmb3IobHQ9MHxhW2wrMjA+PjJdLEV0PTB8YVtsKzI0Pj4yXSxadD0wfGFbbCsyOD4+Ml0sdz0wfFFuKDU2KSxfWyhidD13KzMyfDApPj4zXT0xLGFbdysy''@;'; + put 'put ''MD4+Ml09MCxhW3crMjQ+PjJdPTAsYVt3Pj4yXT1sLF9bdys0MD4+M109LjAxLGFbdys0OD4+Ml09fn4rRDAoKyArKDB8YVtsPj4yXSkpLGN0PTB8UW4oYW48PDMpLGFbdysxMj4+Ml09Y3Qsaz0wOyEoKDB8ayk+PSgwfGFuKSk7KV9bY3QrKGs8PDMpPj4zXT1mLGs9aysxfDA7aWYoYVsoU3Q9''@;'; + put 'put ''dys0fDApPj4yXT0wfHVjKGFuLGFuLGw9KDB8YVtsKzg+PjJdKSthbnwwLDEsMSksbD0wfHVjKGFuLGFuLGwsMSwxKSxhWyhrdD13Kzh8MCk+PjJdPWwsMD09KDB8bCl8MD09KDB8KGs9MHxhW1N0Pj4yXSkpKVE0KHcpLHc9MDtlbHNle1ZlPTB8YVtrKzIwPj4yXSxxZT0wfGFbaysyND4+Ml0s''@;'; + put 'put ''V2U9MHxhW2wrMjQ+PjJdLFJlPTB8YVtrKzI4Pj4yXSxvdD0wfGFbbCsyOD4+Ml0sYVsobnQ9MHxhW2wrMjA+PjJdKT4+Ml09MCxhW1ZlPj4yXT0wLEs9MCxwZT0wLEhlPTAsYmU9MDtlOmZvcig7ISgoMHxiZSk+PSgwfGFuKSk7KXtmb3IoTGU9bHQrKChPZT1iZSsxfDApPDwyKXwwLE09MCxE''@;'; + put 'put ''PTAsZ2U9MHxhW2x0KyhiZTw8Mik+PjJdLEc9SyxmPXBlLGw9SGU7ISgoMHxnZSk+PSgwfGFbTGU+PjJdKSk7KXtpZigoMHwoaz0wfGFbRXQrKGdlPDwyKT4+Ml0pKT09KDB8YmUpKWI9RyxrPWw7ZWxzZXtzd2l0Y2goYVtxZSsobDw8Mik+PjJdPWssUj0rX1tadCsoZ2U8PDMpPj4zXSwwfG0p''@;'; + put 'put ''e2Nhc2UgMjpiPTA9PShiPVIqUik/LTFlNTotMS9iO2JyZWFrO2Nhc2UgMTpiPVIqUj09MD8tMWU1Oi0xL1I7YnJlYWs7Y2FzZSAwOmI9LTE7YnJlYWs7ZGVmYXVsdDpTbj0yMzticmVhayBlfV9bUmUrKGw8PDMpPj4zXT1iLGFbV2UrKGw8PDIpPj4yXT1rLF9bKHVyPW90KyhsPDwzKXwwKT4+''@;'; + put 'put ''M109SG49YipSLGY9K19jKHAsYyxiZSxrKSpIbitmLE09YitNLEQ9KEhuPStfW3VyPj4zXSkrRCxiPUhuKlIrRyxrPWwrMXwwfWdlPWdlKzF8MCxHPWIsbD1rfWFbcWUrKGw8PDIpPj4yXT1iZSxfWyhIZT1jdCsoYmU8PDMpfDApPj4zXT1LPS1NKitfW0hlPj4zXSxfW1JlKyhsPDwzKT4+M109''@;'; + put 'put ''Sy1NLGFbV2UrKGw8PDIpPj4yXT1iZSxfW290KyhsPDwzKT4+M109LUQsYVtWZSsoT2U8PDIpPj4yXT1IZT1sKzF8MCxhW250KyhPZTw8Mik+PjJdPUhlLEs9RyxwZT1mLGJlPU9lfWlmKDIzPT0oMHxTbikmJlByKDEzODM5NCw5NTgzMSw1OTEsOTYwMTIpLDA9PShiPTA9PSgwfEEpPzE6cGUv''@;'; + put 'put ''Sykpdz0wO2Vsc2V7Zm9yKGs9MDshKCgwfGspPj0oMHxIZSkpOylfWyh1cj1vdCsoazw8Myl8MCk+PjNdPStfW3VyPj4zXSpiLGs9aysxfDA7X1tidD4+M109YixhWzgrKDB8YVtTdD4+Ml0pPj4yXT1IZSxhWzgrKDB8YVtrdD4+Ml0pPj4yXT1IZX19cmV0dXJuIDB8d31yZXR1cm4gUHIoOTU5''@;'; + put 'put ''NDUsOTU4MzEsNTI1LDk2MDEyKSwwfShELGwsMCwwfGFbZj4+Ml0sMD09KDB8cCk/MDoyLDEpKXtmb3IoX1tNKzQwPj4zXT0uMSxhW00rMjQ+PjJdPTUsZnVuY3Rpb24gX3gobCxjLGYscCxtKXt6bShsfD0wLGN8PTAsZnw9MCxwfD0wLG09K20pfShNLGwsMHxhW2Y+PjJdLG0sQSksaz0wfEFy''@;'; + put 'put ''KGIsbCkscD1NKzMyfDAsYj0wOyEoKDB8Yik+PSgwfGspKTspX1sodz0oMHxhW2Y+PjJdKSsoYjw8Myl8MCk+PjNdPStfW3c+PjNdLytfW3A+PjNdLGI9YisxfDA7IWZ1bmN0aW9uIGJ4KGwpe1E0KGx8PTApfShNKX1lbHNlIGFbdz4+Ml09LTE7KDB8RCkhPSgwfGMpJiZSYShEKX0obHw9MCxm''@;'; + put 'put ''fD0wLHB8PTAsbXw9MCxBfD0wLHc9K3csYnw9MCl9KDB8YVs0NzEzN10sMCxwLEQsMSwyMDAsLjAwMSxiKX1mb3IocD0wfER0KGwpO3A7KXtmb3IoYz0oMHxhW0Q+PjJdKSsoKDB8QXIoMHxhWzEyMCsoQT0wfGFbcCsxNj4+Ml0pPj4yXSxmPTB8YVs0NzEzN10pKTw8Myl8MCxBPUErMTMyfDAs''@;'; + put 'put ''bT0wOyEoKDB8bSk+PSgwfGYpKTspX1soMHxhW0E+PjJdKSsobTw8Myk+PjNdPStfW2MrKG08PDMpPj4zXSxtPW0rMXwwO3A9MHx6dChsLHApfUZ0KGspLEZ0KDB8YVtEPj4yXSksUmEoTSksMHwocD0wfGFbUj4+Ml0pJiZSYShwKSwwfChwPTB8YVtHPj4yXSkmJkZ0KHApLGFlPUt9ZnVuY3Rp''@;'; + put 'put ''b24geVgobCl7aDAobHw9MCwxMzc0NjAsMTc2LDEpLEw3KGwpfWZ1bmN0aW9uIFhzZSgpe3ZhciBsLGM7cmV0dXJuIGw9MHxRbigxNjgpLF9bbD4+M109LTEuMDAwMTIzNCxfW2wrOD4+M109MSxhW2wrMTY+PjJdPTEsX1tsKzI0Pj4zXT0tMSxfW2wrMzI+PjNdPS4yLGFbbCs0MD4+Ml09MCxh''@;'; + put 'put ''W2wrNDQ+PjJdPTQsYVtsKzQ4Pj4yXT0xLGFbbCs1Mj4+Ml09NDUsYVtsKzU2Pj4yXT0xMCxfW2wrNjQ+PjNdPS42LF9bbCs3Mj4+M109LjAwMSxhW2wrODA+PjJdPTUwMCxfW2wrODg+PjNdPS45LF9bbCs5Nj4+M109LjEsYVtsKzEwND4+Ml09MSxhW2wrMTA4Pj4yXT0xMjMsYVsoYz1sKzEx''@;'; + put 'put ''MnwwKT4+Ml09MCxhW2MrND4+Ml09MCxhW2MrOD4+Ml09MCxhW2MrMTI+PjJdPTAsYVtsKzEyOD4+Ml09MSxhW2wrMTMyPj4yXT0zLGFbbCsxMzY+PjJdPTAsX1tsKzE0ND4+M109LTQsX1tsKzE1Mj4+M109MCxhW2wrMTYwPj4yXT0wLDB8bH1mdW5jdGlvbiBvVihsKXtGdChsfD0wKX1mdW5j''@;'; + put 'put ''dGlvbiBhVihsKXtGdChsfD0wKX1mdW5jdGlvbiBsVihsKXt2YXIgYztyZXR1cm4gbHw9MCxjPTB8UW4oMTg0KSxhW2M+PjJdPWwsYVtjKzE3Nj4+Ml09MCwwfGN9ZnVuY3Rpb24gd1gobCxjKXt2YXIgcCxtLGY9MDtfWzgrKGx8PTApKygocD0wfGFbbD4+Ml0pPDwzKT4+M109Yz0rYyxtPWwr''@;'; + put 'put ''MTc2fDA7ZTpkb3tzd2l0Y2goMHxhW20+PjJdKXtjYXNlIDA6MjA9PSgwfChmPTB8YVtsPj4yXSkpPyhhW20+PjJdPS0xLGY9MTkpOihhW20+PjJdPTEsZj0oMHxmKT4xOT8yMDpmKzF8MCksYVtsPj4yXT1mO2JyZWFrO2Nhc2UgMTppZigoMHwoZj0wfGFbbD4+Ml0pKTwyMCYmK19bbCs4Kyhw''@;'; + put 'put ''Ky0xPDwzKT4+M10+Yyl7YVtsPj4yXT1mKzE7YnJlYWsgZX1hW2w+PjJdPWYrLTEsYVttPj4yXT0tMTticmVhayBlO2RlZmF1bHQ6aWYoKDB8KGY9MHxhW2w+PjJdKSk+MCYmK19bbCs4KyhwKzE8PDMpPj4zXT5jKXthW2w+PjJdPWYrLTE7YnJlYWsgZX1hW2w+PjJdPWYrMSxhW20+PjJdPTE7''@;'; + put 'put ''YnJlYWsgZX19d2hpbGUoMCl9ZnVuY3Rpb24gajcobCl7cmV0dXJuIDB8YVsobHw9MCk+PjJdfWZ1bmN0aW9uIFNEKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIEQsUixHLEsscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLHBlPTA7aWYoSz0wfGFbMjQrKGx8PTApPj4yXSxSPTB8YVsoRz0wfGFb''@;'; + put 'put ''bCsyMD4+Ml0pKygoRD0wfGFbbD4+Ml0pPDwyKT4+Ml0pe2w9MCxwPTA7ZTpmb3IoOyEoKDB8bCk+PSgwfEQpKTspZm9yKGI9bCsxfDAsaz0wfGFbRysoYjw8Mik+PjJdLE09MHxBcihsLGMpLHc9MHxhW0crKGw8PDIpPj4yXTs7KXtpZigoMHx3KT49KDB8aykpe2w9Yjtjb250aW51ZSBlfWZv''@;'; + put 'put ''cihBPUsrKHc8PDIpfDAsbD0wLG09MDshKCgwfGwpPj0oMHxjKSk7KXBlPStfW2YrKGwrTTw8Myk+PjNdLStfW2YrKCgwfEFyKDB8YVtBPj4yXSxjKSk8PDMpPj4zXSxsPWwrMXwwLG09cGUqcGUrbTt3PXcrMXwwLHA9K0QwKCttKStwfXAvPSsoMHxSKX1lbHNlIHA9MTtyZXR1cm4rcH1mdW5j''@;'; + put 'put ''dGlvbiBLc2UobCxjLGYpe3ZhciBwO2x8PTAscD0xMCsoY3w9MCl8MCwoMHxhWyhmfD0wKT4+Ml0pPD0oMHxjKSYmKGFbZj4+Ml09cCxhW2w+PjJdPTB8VjAoMHxhW2w+PjJdLHA8PDMpKX1mdW5jdGlvbiBVOWUobCxjLGYpe3ZhciBwO2x8PTAscD0xMCsoY3w9MCl8MCwoMHxhWyhmfD0wKT4+''@;'; + put 'put ''Ml0pPD0oMHxjKSYmKGFbZj4+Ml09cCxhW2w+PjJdPTB8VjAoMHxhW2w+PjJdLHA8PDIpKX1mdW5jdGlvbiB0OChsLGMsZixwKXtsfD0wLGZ8PTA7dmFyIEEsdyxiLGssTSxtPTA7Zm9yKE09YWUsYWU9YWUrMTZ8MCxrPU0sYj0wfEFyKHB8PTAsY3w9MCksYz0wfEFyKGYsYykscD0wOzIhPSgw''@;'; + put 'put ''fHApOylfW2srKHA8PDMpPj4zXT0rX1tsKyhwK2I8PDMpPj4zXS0rX1tsKyhwK2M8PDMpPj4zXSxwPXArMXwwO3c9K19baz4+M10sQT0rX1trKzg+PjNdO2Rve2lmKCEoKHc+PTA/dzotdyk8PTFlLTUqKEE+PTA/QTotQSkpKXtpZihtPStaZigrQS93KSx3PjApe2lmKCEoQTwwKSlicmVhaztt''@;'; + put 'put ''Kz02LjI4MzE4NTMwNzE3OTU4NjticmVha31pZighKHc8MCkpYnJlYWs7bSs9My4xNDE1OTI2NTM1ODk3OTM7YnJlYWt9bT1BPjA/MS41NzA3OTYzMjY3OTQ4OTY2OjQuNzEyMzg4OTgwMzg0Njl9d2hpbGUoMCk7cmV0dXJuIGFlPU0sK219ZnVuY3Rpb24gJHNlKGwsYyxmLHAsbSxBKXtsfD0w''@;'; + put 'put ''LGN8PTAscHw9MCxtfD0wLEF8PTA7dmFyIEhyLEVyLGZyLERyLEpyLFZpLFJvLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLGx0PTAsY3Q9MCxidD0wLGFu''@;'; + put 'put ''PTAsU249MCxIbj0wLHVyPTAsTHI9MCxsMD0wLGxvPTAsVGE9MDtSbz1hZSxhZT1hZSs4MHwwLFZpPVJvLEc9K19bKGZ8PTApPj4zXSxEPStfWyhNPWYrMjR8MCk+PjNdLGI9K19bKFI9ZiszMnwwKT4+M10sSHI9K19bZis3Mj4+M10sRXI9MHxhW2YrODA+PjJdLGZyPStfW2YrODg+PjNdLEs9''@;'; + put 'put ''K19bZis5Nj4+M10sRHI9MHxhW2YrMTA0Pj4yXSx3PTB8YVsoSnI9Zis1NnwwKT4+Ml07ZG97aWYoISgwPT0oMHxjKXwoMHxFcik8MXx8KExyPTB8YVtjKzQ+PjJdLCgwfGwpPDF8KDB8THIpPDEpKSl7aWYodXI9MHxhW2M+PjJdLGwwPTB8bFYodyksYVtBPj4yXT0wLCgwfHVyKSE9KDB8THIp''@;'; + put 'put ''KXthW0E+PjJdPS0xMDAsYVYobDApLGFbSnI+PjJdPXc7YnJlYWt9U249MHxhaChjLDEpLEhuPTB8YVtTbisyMD4+Ml0sdXI9MHxhW1NuKzI0Pj4yXTtlOmRve2lmKDB8YVtmKzE2Pj4yXSlmb3IobncoMHxhW2YrMTA4Pj4yXSksaz0wfEFyKExyLGwpLHc9MDs7KXtpZigoMHx3KT49KDB8aykp''@;'; + put 'put ''YnJlYWsgZTtfW20rKHc8PDMpPj4zXT0rQmgoKSx3PXcrMXwwfX13aGlsZSgwKTtmb3IoRDwwJiYoRD0rU0QoU24sbCxtKSxfW00+PjNdPUQpLGI8MCYmKF9bUj4+M109LjIsYj0uMiksRz49MCYmKF9bZj4+M109LTEsRz0tMSksYW49K3FsKCtELCsoMS1HKSksbnQ9K3FsKCtiLC4zMzMzMzMz''@;'; + put 'put ''MzMzMzMzMzMzKigyLUcpKS9ELG90PTB8UW4oV2U9MHxBcihMcixsPDwzKSksU3Q9MHxRbihXZSksa3Q9ZisxMTZ8MCxsdD1mKzY0fDAsY3Q9VmkrOHwwLGJ0PVZpKzE2fDAsVmU9MCxxZT0wLExlPUs7Oyl7Z28oMHxvdCwwfG0sMHxXZSksS1YoSGU9MHxHayhsLExyLFJlPTB8ajcobDApLG0s''@;'; + put 'put ''MD09KDB8YVtrdD4+Ml0pPzA6cCksU3QsbSwrX1tsdD4+M10sRyxhbixWaSxBKSxNPTA7ZTpmb3IoOzspe2lmKCgwfE0pPj0oMHxMcikpe0s9MCxrPTA7YnJlYWt9Zm9yKHBlPVN0KygoUj0wfEFyKE0sbCkpPDwzKXwwLGJlPUhuKygoZ2U9TSsxfDApPDwyKXwwLGs9MHxhW0huKyhNPDwyKT4+''@;'; + put 'put ''Ml07Oyl7aWYoKDB8ayk+PSgwfGFbYmU+PjJdKSl7TT1nZTtjb250aW51ZSBlfXc9MHxhWyhPZT11cisoazw8Mil8MCk+PjJdO3Q6ZG97aWYoKDB8dykhPSgwfE0pKWZvcihiPStfYyhtLGwsTSx3KSpudCx3PTA7Oyl7aWYoKDB8dyk+PSgwfGwpKWJyZWFrIHQ7Sz1iKigrX1ttKyh3K1I8PDMp''@;'; + put 'put ''Pj4zXS0rX1ttKygoMHxBcigwfGFbT2U+PjJdLGwpKSt3PDwzKT4+M10pLF9bKGxvPXBlKyh3PDwzKXwwKT4+M109K19bbG8+PjNdLUssdz13KzF8MH19d2hpbGUoMCk7az1rKzF8MH19Zm9yKDshKCgwfGspPj0oMHxMcikpOyl7Zm9yKFI9U3QrKChNPTB8QXIoayxsKSk8PDMpfDAsYj0wLHc9''@;'; + put 'put ''MDshKCgwfHcpPj0oMHxsKSk7KWI9KFRhPStfW1IrKHc8PDMpPj4zXSkqVGErYix3PXcrMXwwO0s9KGI9K0QwKCtiKSkrSztlOmRve2lmKGI+MClmb3IoYj0xL2Isdz0wOzspe2lmKCgwfHcpPj0oMHxsKSl7dz0wO2JyZWFrIGV9X1sobG89Uisodzw8Myl8MCk+PjNdPStfW2xvPj4zXSpiLHc9''@;'; + put 'put ''dysxfDB9ZWxzZSB3PTB9d2hpbGUoMCk7Zm9yKDshKCgwfHcpPj0oMHxsKSk7KV9bKGxvPW0rKHcrTTw8Myl8MCk+PjNdPStfW2xvPj4zXSsgK19bUisodzw8Myk+PjNdKkxlLHc9dysxfDA7az1rKzF8MH1pZihWZT1WZSsxfDAsSGUmJihlOShIZSksd1gobDAsLjg1KitfW2N0Pj4zXSsgK19b''@;'; + put 'put ''Vmk+PjNdKzMuMyorX1tidD4+M10pKSwhKCgwfFZlKTwoMHxFcikmKExlPStrayhEcixMZSxLLHFlLGZyKSk+SHIpKWJyZWFrO3FlPUt9MHxhW2YrMTEyPj4yXSYmU2sobCxTbixtKSxhVihsMCksYVtKcj4+Ml09UmUsRnQob3QpLCgwfFNuKSE9KDB8YykmJlJhKFNuKSxGdChTdCl9fXdoaWxl''@;'; + put 'put ''KDApO2FlPVJvfWZ1bmN0aW9uIGtrKGwsYyxmLHAsbSl7bHw9MCxjPStjLGY9K2YscD0rcCxtPSttO2Rve2lmKGwpe2lmKGY+PXApe2MqPW07YnJlYWt9Ljk1KnA8Znx8KGM9Ljk5KmMvbSl9ZWxzZSBjKj1tfXdoaWxlKDApO3JldHVybitjfWZ1bmN0aW9uIFNrKGwsYyxmKXtsfD0wLGZ8PTA7''@;'; + put 'put ''dmFyIGJlLE9lLExlLFZlLHFlLG50LFdlLG90LFN0LHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLFJlPTAsSGU9MDtmb3IoU3Q9YWUsYWU9YWUrMTZ8MCxWZT1TdCs4fDAscWU9U3QrNHwwLG50PVN0LFdlPTB8YVsoY3w9MCk+PjJdLG90PTB8''@;'; + put 'put ''YVtjKzIwPj4yXSxiZT0wfGFbYysyND4+Ml0sYVsoTGU9U3QrMTJ8MCk+PjJdPTEwLGFbbnQ+PjJdPTEwLE9lPTB8UW4oV2U8PDIpLG09MHxRbig4MCksYVtWZT4+Ml09bSxwPTB8UW4oNDApLGFbcWU+PjJdPXAsYz0wOzspe2lmKCgwfGMpPj0oMHxXZSkpe0Q9MCxwZT1tLGs9cCxSPXAsTT1t''@;'; + put 'put ''O2JyZWFrfWFbT2UrKGM8PDIpPj4yXT0wLGM9YysxfDB9Zm9yKDshKCgwfEQpPj0oMHxXZSkpOyl7Yz0wfGFbb3QrKEQ8PDIpPj4yXTtlOmRve2lmKDE9PSgoMHxhW290KyhEKzE8PDIpPj4yXSktY3wwKSYmMD09KDB8YVtPZSsoRDw8Mik+PjJdKSYmKFJlPTB8YVtiZSsoYzw8Mik+PjJdLEhl''@;'; + put 'put ''PU9lKyhSZTw8Mil8MCwwPT0oMHxhW0hlPj4yXSkpKXtmb3IoYVtIZT4+Ml09MSxLPW90KyhSZSsxPDwyKXwwLEQ9MCxnZT0wLEE9MCxHPTB8YVtvdCsoUmU8PDIpPj4yXSxrPVIsYz1wZTshKCgwfEcpPj0oMHxhW0s+PjJdKSk7KTE9PSgoMHxhW290KygxKyhtPTB8YVsocD1iZSsoRzw8Mil8''@;'; + put 'put ''MCk+PjJdKTw8Mik+PjJdKS0oMHxhW290KyhtPDwyKT4+Ml0pfDApPyhhW09lKyhtPDwyKT4+Ml09MSxVOWUocWUsZ2UsTGUpLEE9K19jKGYsbCxSZSwwfGFbcD4+Ml0pK0EsYVsoaz0wfGFbcWU+PjJdKSsoZ2U8PDIpPj4yXT1hW3A+PjJdLHA9RCxtPWdlKzF8MCk6KEtzZShWZSxELG50KSxi''@;'; + put 'put ''PSt0OChmLGwsUmUsMHxhW3A+PjJdKSxfWyhjPTB8YVtWZT4+Ml0pKyhEPDwzKT4+M109YixwPUQrMXwwLG09Z2UsTT1jKSxEPXAsZ2U9bSxHPUcrMXwwO2ZvcihiPUEvKygwfGdlKSwoMHxEKT4wJiYoX1goRCxNKSxjPU0pLEE9KDB8Z2UpPjE/Ni4yODMxODUzMDcxNzk1ODYvKyhnZSstMXww''@;'; + put 'put ''KTowLHA9MCx3PTA7Oyl7aWYoKDB8cCk+PSgwfGdlKSl7Uj1rLG09azticmVhayBlfXFzZShmLGwsYix3LFJlLDB8YVtrKyhwPDwyKT4+Ml0pLHA9cCsxfDAsdys9QX19ZWxzZSBwPUQsbT1rLGM9cGV9d2hpbGUoMCk7RD1wKzF8MCxwZT1jLGs9bX1GdChPZSksRnQocGUpLEZ0KGspLGFlPVN0''@;'; + put 'put ''fWZ1bmN0aW9uIF9YKGwsYyl7eDEoY3w9MCxsfD0wLDgsNjgpfWZ1bmN0aW9uIHFzZShsLGMsZixwLG0sQSl7dmFyIHc7bHw9MCxjfD0wLGY9K2YsbXw9MCxBfD0wLHc9K2hhKCsocD0rcCkpKmYsbT0wfEFyKG0sYyksQT0wfEFyKEEsYyksX1tsKyhBPDwzKT4+M109dysgK19bbCsobTw8Myk+''@;'; + put 'put ''PjNdLHA9K0RhKCtwKSpmLF9bbCsoQSsxPDwzKT4+M109cCsgK19bbCsobSsxPDwzKT4+M119ZnVuY3Rpb24gZTJlKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAscHw9MCxtfD0wLEF8PTA7dmFyIHVyLEhyLEVyLGZyLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJl''@;'; + put 'put ''PTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MCxrdD0wLGx0PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxhbj0wLFNuPTAsSG49MCxEcj0wLEpyPTAsTHI9MCxsMD0wO2lmKEc9K19bKGZ8PTApPj4zXSxNPStfWyhEPWYrMjR8MCk+PjNdLGs9K19bKFI9''@;'; + put 'put ''ZiszMnwwKT4+M10sdXI9K19bZis3Mj4+M10sSHI9MHxhW2YrODA+PjJdLEVyPStfW2YrODg+PjNdLGdlPStfW2YrOTY+PjNdLGZyPTB8YVtmKzEwND4+Ml0sdz0wfGFbZis1Nj4+Ml0sQ3UoOTIxOTgsMzIsMSwwfGFbMTU3MTJdKSwhKDA9PSgwfGMpfCgwfEhyKTwxfHwoRHI9MHxhW2M+PjJd''@;'; + put 'put ''LGI9MHxhW2MrND4+Ml0sKDB8bCk8MXwoMHxiKTwxKSkpe2lmKEpyPTB8UW4oMHxBcihLPWw8PDMsYikpLCgwfGIpPCgwfGFbZis1Mj4+Ml0pPyhadD0wLGN0PTAsYnQ9MCxhbj0wLFNuPTAsSG49MCk6KGxWKHcpLGFuPTB8UW4oODAqbHwwKSxTbj0wfFFuKDgwKSxadD1Ibj0wfFFuKDgwKSxj''@;'; + put 'put ''dD1TbixidD1hbiksYVtBPj4yXT0wLCgwfERyKT09KDB8Yikpe2t0PTB8YWgoYywxKSxsdD0wfGFba3QrMjA+PjJdLEV0PTB8YVtrdCsyND4+Ml07ZTpkb3tpZigwfGFbZisxNj4+Ml0pZm9yKG53KDB8YVtmKzEwOD4+Ml0pLGI9MHxBcihEcixsKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfGIpKWJy''@;'; + put 'put ''ZWFrIGU7X1ttKyh3PDwzKT4+M109K0JoKCksdz13KzF8MH19d2hpbGUoMCk7Zm9yKE08MCYmKE09K1NEKGt0LGwsbSksX1tEPj4zXT1NKSxrPDAmJihfW1I+PjNdPS4yLGs9LjIpLEc+PTAmJihfW2Y+PjNdPS0xLEc9LTEpLFN0PStxbCgrTSwrKG90PTEtRykpLG50PStxbCgraywuMzMzMzMz''@;'; + put 'put ''MzMzMzMzMzMzMyooMi1HKSkvTSxXZT0wfFFuKEspLFJlPTB8UW4oTGU9MHxBcihEcixLKSksSGU9MHxBcihEcixsKSxWZT1mKzExNnwwLHFlPTAhPSgwfHApLE9lPS0xPT1HLGJlPTAsRz0wOzspe2Zvcih3PTA7ISgoMHx3KT49KDB8SGUpKTspX1tKcisodzw8Myk+PjNdPTAsdz13KzF8MDtm''@;'; + put 'put ''b3IoZ28oMHxSZSwwfG0sMHxMZSksSz0wOzspe2lmKCEoKDB8Syk8KDB8RHIpKSl7Uj0wO2JyZWFrfWZvcih3PTA7ISgoMHx3KT49KDB8bCkpOylfW1dlKyh3PDwzKT4+M109MCx3PXcrMXwwO1I9MHxBcihLLGwpO2U6ZG97aWYocWUmMCE9KDB8YVtWZT4+Ml0pKWZvcih3PTA7Oyl7aWYoKDB8''@;'; + put 'put ''dyk9PSgwfERyKSl7dz0wO2JyZWFrIGV9dDpkb3tpZigoMHx3KSE9KDB8SykpZm9yKE09K2R1KG0sbCxLLHcpLEE9cCsodzw8Myl8MCxEPTB8QXIodyxsKSxrPStxbCgrTSwrb3QpLGs9MS8oT2U/TSpNOmspLGI9MDs7KXtpZigoMHxiKT49KDB8bCkpYnJlYWsgdDtfWyhwZT1XZSsoYjw8Myl8''@;'; + put 'put ''MCk+PjNdPStfW0E+PjNdKlN0KigrX1ttKyhiK1I8PDMpPj4zXS0rX1ttKyhiK0Q8PDMpPj4zXSkqaysgK19bcGU+PjNdLGI9YisxfDB9fXdoaWxlKDApO3c9dysxfDB9ZWxzZSBmb3Iodz0wOzspe2lmKCgwfHcpPT0oMHxEcikpe3c9MDticmVhayBlfXQ6ZG97aWYoKDB8dykhPSgwfEspKWZv''@;'; + put 'put ''cihNPStkdShtLGwsSyx3KSxBPTB8QXIodyxsKSxrPStxbCgrTSwrb3QpLGs9MS8oT2U/TSpNOmspLGI9MDs7KXtpZigoMHxiKT49KDB8bCkpYnJlYWsgdDtfWyhwZT1XZSsoYjw8Myl8MCk+PjNdPSgrX1ttKyhiK1I8PDMpPj4zXS0rX1ttKyhiK0E8PDMpPj4zXSkqU3QqaysgK19bcGU+PjNd''@;'; + put 'put ''LGI9YisxfDB9fXdoaWxlKDApO3c9dysxfDB9fXdoaWxlKDApO2Zvcig7ISgoMHx3KT49KDB8bCkpOylfWyhwZT1KcisodytSPDwzKXwwKT4+M109K19bcGU+PjNdKyArX1tXZSsodzw8Myk+PjNdLHc9dysxfDA7Sz1LKzF8MH1lOmZvcig7Oyl7aWYoISgoMHxSKTwoMHxEcikpKXtNPTAsYj0w''@;'; + put 'put ''O2JyZWFrfWZvcih3PTA7ISgoMHx3KT49KDB8bCkpOylfW1dlKyh3PDwzKT4+M109MCx3PXcrMXwwO2ZvcihBPWx0KygoSz1SKzF8MCk8PDIpfDAscGU9MHxBcihSLGwpLGI9MHxhW2x0KyhSPDwyKT4+Ml07Oyl7aWYoKDB8Yik+PSgwfGFbQT4+Ml0pKXt3PTA7YnJlYWt9dz0wfGFbKEQ9RXQr''@;'; + put 'put ''KGI8PDIpfDApPj4yXTt0OmRve2lmKCgwfHcpIT0oMHxSKSlmb3Ioaz0rX2MobSxsLFIsdykqbnQsdz0wOzspe2lmKCgwfHcpPj0oMHxsKSlicmVhayB0O009ayooK19bbSsodytwZTw8Myk+PjNdLStfW20rKCgwfEFyKDB8YVtEPj4yXSxsKSkrdzw8Myk+PjNdKSxfWyhMcj1XZSsodzw8Myl8''@;'; + put 'put ''MCk+PjNdPStfW0xyPj4zXS1NLHc9dysxfDB9fXdoaWxlKDApO2I9YisxfDB9Zm9yKDs7KXtpZigoMHx3KT49KDB8bCkpe1I9Sztjb250aW51ZSBlfV9bKExyPUpyKyh3K3BlPDwzKXwwKT4+M109K19bTHI+PjNdKyArX1tXZSsodzw8Myk+PjNdLHc9dysxfDB9fWZvcig7ISgoMHxiKT49KDB8''@;'; + put 'put ''RHIpKTspe2ZvcihBPTB8QXIoYixsKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfGwpKXtrPTAsdz0wO2JyZWFrfV9bV2UrKHc8PDMpPj4zXT0rX1tKcisodytBPDwzKT4+M10sdz13KzF8MH1mb3IoOyEoKDB8dyk+PSgwfGwpKTspaz0obDA9K19bV2UrKHc8PDMpPj4zXSkqbDArayx3PXcrMXwwO009''@;'; + put 'put ''KGs9K0QwKCtrKSkrTTtlOmRve2lmKGs+MClmb3Ioaz0xL2ssdz0wOzspe2lmKCgwfHcpPj0oMHxsKSl7dz0wO2JyZWFrIGV9X1soTHI9V2UrKHc8PDMpfDApPj4zXT0rX1tMcj4+M10qayx3PXcrMXwwfWVsc2Ugdz0wfXdoaWxlKDApO2Zvcig7ISgoMHx3KT49KDB8bCkpOylfWyhMcj1tKyh3''@;'; + put 'put ''K0E8PDMpfDApPj4zXT0rX1tMcj4+M10rICtfW1dlKyh3PDwzKT4+M10qZ2Usdz13KzF8MDtiPWIrMXwwfWlmKCEoKDB8KGJlPWJlKzF8MCkpPCgwfEhyKSYoZ2U9K2trKGZyLGdlLE0sRyxFcikpPnVyKSlicmVhaztHPU19MHxhW2YrMTEyPj4yXSYmU2sobCxrdCxtKSxGdChSZSksKDB8a3Qp''@;'; + put 'put ''IT0oMHxjKSYmUmEoa3QpLEZ0KFdlKX1lbHNlIGFbQT4+Ml09LTEwMDswfGJ0JiZGdChhbiksMHxjdCYmRnQoU24pLDB8WnQmJkZ0KEhuKSxGdChKcil9fWZ1bmN0aW9uIFE5ZShsLGMsZixwLG0sQSl7bHw9MCxjfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBEcixKcixMcixsMCxWaSxSbyxsbyxn''@;'; + put 'put ''YSx4aSxEbCxvcyxvbCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxsdD0wLEV0PTAsWnQ9MCxjdD0wLGJ0PTAsYW49MCxTbj0wLEhuPTAsdXI9MCxIcj0w''@;'; + put 'put ''LEVyPTAsZnI9MCxPaT0wLFRhPTAsamE9MCxMMD0wLHhhPTA7aWYob2w9YWUsYWU9YWUrMzJ8MCxsbz1vbCsyMHwwLHhpPW9sKzE2fDAsRGw9b2wrMTJ8MCxvcz1vbCs4fDAsRHI9b2wsZ2U9K19bKGZ8PTApPj4zXSxwZT0rX1soaz1mKzI0fDApPj4zXSxLPStfWyhNPWYrMzJ8MCk+PjNdLEpy''@;'; + put 'put ''PStfW2YrNzI+PjNdLExyPTB8YVtmKzgwPj4yXSxsMD0rX1tmKzg4Pj4zXSxiZT0rX1tmKzk2Pj4zXSxWaT0wfGFbZisxMDQ+PjJdLGFbKFJvPW9sKzI0fDApPj4yXT0wLGFbbG8+PjJdPTEwLGFbeGk+PjJdPTAsYVtEbD4+Ml09MCxhW29zPj4yXT0wLF9bRHI+PjNdPTAsRD0wfGFbKGdhPWYr''@;'; + put 'put ''NTZ8MCk+PjJdLCEoMD09KDB8Yyl8KDB8THIpPDF8fChPaT0wfGFbYz4+Ml0sdz0wfGFbYys0Pj4yXSwoMHxsKTwxfCgwfHcpPDEpKSl7KDB8dyk8KDB8YVtmKzUyPj4yXSk/KGphPTAsVGE9MCk6KGphPTB8bFYoRCksYVt4aT4+Ml09MHxRbig4MCpsfDApLGFbRGw+PjJdPTB8UW4oODApLGFb''@;'; + put 'put ''b3M+PjJdPTB8UW4oODApLFRhPTEpLGFbQT4+Ml09MDtlOmRve2lmKCgwfE9pKT09KDB8dykpe1I9MHxhaChjLDEpLHVyPTB8YVtSKzIwPj4yXSxIcj0wfGFbUisyND4+Ml07dDpkb3tpZigwfGFbZisxNj4+Ml0pZm9yKG53KDB8YVtmKzEwOD4+Ml0pLGI9MHxBcihPaSxsKSx3PTA7Oyl7aWYo''@;'; + put 'put ''KDB8dyk+PSgwfGIpKWJyZWFrIHQ7X1ttKyh3PDwzKT4+M109K0JoKCksdz13KzF8MH19d2hpbGUoMCk7Zm9yKHBlPDAmJihwZT0rU0QoUixsLG0pLF9baz4+M109cGUpLEs8MCYmKF9bTT4+M109LjIsSz0uMiksZ2U+PTAmJihfW2Y+PjNdPS0xLGdlPS0xKSxIbj0rcWwoK3BlLCsoU249MS1n''@;'; + put 'put ''ZSkpLEV0PStxbCgrSywuMzMzMzMzMzMzMzMzMzMzMyooMi1nZSkpL3BlLEVyPTB8UW4oWnQ9bDw8MyksZnI9MHxRbihadD0wfEFyKE9pLFp0KSksY3Q9MCE9KDB8VGEpLGJ0PWYrMTE2fDAsYW49Zis2NHwwLFN0PS0xPT1nZSxrdD0wIT0oMHxwKSxsdD0xLysoMHxPaSksdz0wLFdlPTAsb3Q9''@;'; + put 'put ''MDs7KXtXZT1XZSsxfDAsZ28oMHxmciwwfG0sMHxadCksY3QmJihEPXc9MHxqNyhqYSksdz0wfEdrKGwsT2ksdyxtLDA9PSgwfGFbYnQ+PjJdKT8wOnApKSxPZT0wLGdlPTAsTGU9MCxwZT0wO3Q6Zm9yKDsoMHxMZSk8KDB8T2kpOyl7Zm9yKGI9MDshKCgwfGIpPj0oMHxsKSk7KV9bRXIrKGI8''@;'; + put 'put ''PDMpPj4zXT0wLGI9YisxfDA7Zm9yKE09dXIrKChxZT1MZSsxfDApPDwyKXwwLG50PTB8QXIoTGUsbCksaz0wfGFbdXIrKExlPDwyKT4+Ml07ISgoMHxrKT49KDB8YVtNPj4yXSkpOyl7Yj0wfGFbKEc9SHIrKGs8PDIpfDApPj4yXTtuOmRve2lmKCgwfGIpIT0oMHxMZSkpZm9yKEs9K19jKG0s''@;'; + put 'put ''bCxMZSxiKSpFdCxiPTA7Oyl7aWYoKDB8Yik+PSgwfGwpKWJyZWFrIG47TDA9SyooK19bbSsoYitudDw8Myk+PjNdLStfW20rKCgwfEFyKDB8YVtHPj4yXSxsKSkrYjw8Myk+PjNdKSxfWyhWZT1FcisoYjw8Myl8MCk+PjNdPStfW1ZlPj4zXS1MMCxiPWIrMXwwfX13aGlsZSgwKTtrPWsrMXww''@;'; + put 'put ''fW46ZG97aWYoY3Qpe2lmKCREKHcsK19bYW4+PjNdLG0rKG50PDwzKXwwLExlLFJvLGxvLHhpLERsLG9zLERyLEEpLE9lPStfW0RyPj4zXStPZSxnZSs9KygwfChWZT0wfGFbUm8+PjJdKSksMHxhW0E+PjJdKXtNPUVyLGs9ZnIsdz1FcixiPWZyLEc9Njc7YnJlYWsgZX1mb3IoTT0wfGFbb3M+''@;'; + put 'put ''PjJdLEc9MHxhW0RsPj4yXSxMZT0wfGFbeGk+PjJdLGI9MDs7KXtpZigoMHxiKT49KDB8VmUpKWJyZWFrIG47Zm9yKEwwPShMMD0rX1tNKyhiPDwzKT4+M10pPjFlLTE1P0wwOjFlLTE1LFJlPUcrKGI8PDMpfDAsSGU9MHxBcihiLGwpLEs9K3FsKCtMMCwrU24pLEs9MS8oU3Q/TDAqTDA6Syks''@;'; + put 'put ''az0wOyEoKDB8ayk+PSgwfGwpKTspX1soeGE9RXIrKGs8PDMpfDApPj4zXT0rX1tSZT4+M10qSG4qKCtfW20rKGsrbnQ8PDMpPj4zXS0rX1tMZSsoaytIZTw8Myk+PjNdKSpLKyArX1t4YT4+M10saz1rKzF8MDtiPWIrMXwwfX1lbHNlIGlmKGt0JjAhPSgwfGFbYnQ+PjJdKSlmb3IoYj0wOzsp''@;'; + put 'put ''e2lmKCgwfGIpPT0oMHxPaSkpYnJlYWsgbjtyOmRve2lmKCgwfGIpIT0oMHxMZSkpZm9yKEwwPStkdShtLGwsTGUsYiksTT1wKyhiPDwzKXwwLEc9MHxBcihiLGwpLEs9K3FsKCtMMCwrU24pLEs9MS8oU3Q/TDAqTDA6Syksaz0wOzspe2lmKCgwfGspPj0oMHxsKSlicmVhayByO19bKFZlPUVy''@;'; + put 'put ''KyhrPDwzKXwwKT4+M109K19bTT4+M10qSG4qKCtfW20rKGsrbnQ8PDMpPj4zXS0rX1ttKyhrK0c8PDMpPj4zXSkqSysgK19bVmU+PjNdLGs9aysxfDB9fXdoaWxlKDApO2I9YisxfDB9ZWxzZSBmb3IoYj0wOzspe2lmKCgwfGIpPT0oMHxPaSkpYnJlYWsgbjtyOmRve2lmKCgwfGIpIT0oMHxM''@;'; + put 'put ''ZSkpZm9yKEwwPStkdShtLGwsTGUsYiksTT0wfEFyKGIsbCksSz0rcWwoK0wwLCtTbiksSz0xLyhTdD9MMCpMMDpLKSxrPTA7Oyl7aWYoKDB8ayk+PSgwfGwpKWJyZWFrIHI7X1soVmU9RXIrKGs8PDMpfDApPj4zXT0oK19bbSsoaytudDw8Myk+PjNdLStfW20rKGsrTTw8Myk+PjNdKSpIbipL''@;'; + put 'put ''KyArX1tWZT4+M10saz1rKzF8MH19d2hpbGUoMCk7Yj1iKzF8MH19d2hpbGUoMCk7Zm9yKEs9MCxiPTA7ISgoMHxiKT49KDB8bCkpOylLPShMMD0rX1tFcisoYjw8Myk+PjNdKSpMMCtLLGI9YisxfDA7cGU9KEs9K0QwKCtLKSkrcGU7bjpkb3tpZihLPjApZm9yKEs9MS9LLGI9MDs7KXtpZigo''@;'; + put 'put ''MHxiKT49KDB8bCkpe2I9MDticmVhayBufV9bKHhhPUVyKyhiPDwzKXwwKT4+M109K19beGE+PjNdKkssYj1iKzF8MH1lbHNlIGI9MH13aGlsZSgwKTtmb3IoOzspe2lmKCgwfGIpPj0oMHxsKSl7TGU9cWU7Y29udGludWUgdH1fWyh4YT1tKyhiK250PDwzKXwwKT4+M109K19beGE+PjNdKyAr''@;'; + put 'put ''X1tFcisoYjw8Myk+PjNdKmJlLGI9YisxfDB9fWlmKDB8dyYmKGU5KHcpLHdYKGphLGdlKmx0KjUrT2UqbHQpKSwhKCgwfFdlKTwoMHxMcikmKGJlPStrayhWaSxiZSxwZSxvdCxsMCkpPkpyKSlicmVhaztvdD1wZX0wfGFbZisxMTI+PjJdPyhTayhsLFIsbSksTT1FcixrPWZyLGI9ZnIsdz1F''@;'; + put 'put ''cixHPTY2KTooTT1FcixrPWZyLGI9ZnIsdz1FcixHPTY2KX1lbHNlIGFbQT4+Ml09LTEwMCxSPWMsTT0wLGs9MCxiPTAsdz0wLEc9NjZ9d2hpbGUoMCk7NjY9PSgwfEcpJiZUYSYmKEc9NjcpLDY3PT0oMHxHKSYmKGFWKGphKSxhW2dhPj4yXT1EKSwwfGsmJkZ0KGIpLCgwfFIpIT0oMHxjKSYm''@;'; + put 'put ''UmEoUiksMHxNJiZGdCh3KSwwfCh3PTB8YVt4aT4+Ml0pJiZGdCh3KSwwfCh3PTB8YVtEbD4+Ml0pJiZGdCh3KSwwfCh3PTB8YVtvcz4+Ml0pJiZGdCh3KX1hZT1vbH1mdW5jdGlvbiBNRChsLGMsZixwLG0sQSx3LGIpe2x8PTAsY3w9MCxmfD0wLG18PTAsQXw9MCx3PSt3LGJ8PTA7dmFyIExy''@;'; + put 'put ''LGwwLFZpLE9pLFJvLGxvLGphLGdhLERsLG9zLG9sLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxsdD0wLEV0PTAsWnQ9MCxjdD0wLGJ0PTAsYW49MCxTbj0wLEhuPTAs''@;'; + put 'put ''dXI9MCxIcj0wLEVyPTAsZnI9MCxEcj0wLEpyPTAsVGE9MCx4aT0wLEwwPTAseGE9MDtpZihvbD1hZSxhZT1hZSs0OHwwLFI9b2wrOHwwLGdhPW9sKzM2fDAsTHI9b2wrMzJ8MCxEbD1vbCsyOHwwLG9zPW9sKzI0fDAsbDA9b2wsRz0rX1socHw9MCk+PjNdLHBlPStfWyhLPXArMzJ8MCk+PjNd''@;'; + put 'put ''LFZpPStfW3ArNzI+PjNdLE9pPTB8YVtwKzgwPj4yXSxSbz0rX1twKzg4Pj4zXSxiZT0rX1twKzk2Pj4zXSxsbz0wfGFbcCsxMDQ+PjJdLGFbKGphPW9sKzQwfDApPj4yXT0wLGFbZ2E+PjJdPTEwLGFbTHI+PjJdPTAsYVtEbD4+Ml09MCxhW29zPj4yXT0wLF9bbDA+PjNdPTAsISgwPT0oMHxj''@;'; + put 'put ''KXwoMHxPaSk8MXx8KFRhPTB8YVtjPj4yXSxEPTB8YVtjKzQ+PjJdLCgwfGwpPDF8KDB8RCk8MSkpKXtpZigwIT0oMHxhW3ArMTMyPj4yXSkmJigwfEQpPj0oMHxhW3ArNTI+PjJdKT8oTT0wfFFuKDgwKmx8MCksYVtMcj4+Ml09TSxhW0RsPj4yXT0wfFFuKDgwKSxhW29zPj4yXT0wfFFuKDgw''@;'; + put 'put ''KSxnZT0xLGs9TSk6KGdlPTAsaz0wLE09MCksYVtiPj4yXT0wLCgwfFRhKT09KDB8RCkpe0pyPTB8YWgoYywxKSxmPyhEcj0wfGFbZisyOD4+Ml0saz1mKTooRHI9MCxrPUpyKSxmcj0wfGFbaysyND4+Ml0sRXI9MHxhW2srMjA+PjJdLHc8MCYmKGt0PStmdW5jdGlvbiBKOWUobCxjLGYpe2x8''@;'; + put 'put ''PTAsY3w9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MDtpZihmfD0wKXttPTAscD0wO2U6Zm9yKDshKCgwfG0pPj0oMHxsKSk7KWZvcihBPW0rMXwwLHc9MHxhW2MrKEE8PDIpPj4yXSxtPTB8YVtjKyhtPDwyKT4+Ml07Oyl7aWYoKDB8bSk+PSgwfHcpKXttPUE7Y29udGludWUgZX1iPStfW2Yr''@;'; + put 'put ''KG08PDMpPj4zXStwLG09bSsxfDAscD1ifXAvPSsoMHxhW2MrKGw8PDIpPj4yXSl9ZWxzZSBwPTE7cmV0dXJuK3B9KFRhLEVyLERyKSx3PShTdD0rKDB8YVtFcisoVGE8PDIpPj4yXSkpLygoV2U9KygwfFRhKSkqV2UtU3QpKncvK3FsKCtrdCwrKEcrMSkpLEhyPTB8YVsxNTcxMl0sX1tSPj4z''@;'; + put 'put ''XT1rdCxfW1IrOD4+M109dyxUMChIciw5MjIzMSxSKSk7ZTpkb3tpZigwfGFbcCsxNj4+Ml0pZm9yKEN1KDkyMjUzLDI0LDEsMHxhWzE1NzEyXSksbncoMHxhW3ArMTA4Pj4yXSksTT0wfEFyKFRhLGwpLGs9MDs7KXtpZigoMHxrKT49KDB8TSkpYnJlYWsgZTtfW0ErKGs8PDMpPj4zXT0rQmgo''@;'; + put 'put ''KSxrPWsrMXwwfX13aGlsZSgwKTsoZnVuY3Rpb24gSzMobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYmUsT2UsTGUsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsUmU9MDtMZT1hZSxhZT1hZSsxNnwwLE9lPUxlLGJlPTA9PSgwfChB''@;'; + put 'put ''fD0wKSksaz0wLE09MCxEPTEsYj0wO2U6Zm9yKDshKCgwfGIpPj0oMHxsKSk7KWZvcihwZT1iKzF8MCxnZT1wKyhwZTw8Mil8MCxLPTB8YVtwKyhiPDwyKT4+Ml07Oyl7aWYoKDB8Syk+PSgwfGFbZ2U+PjJdKSl7Yj1wZTtjb250aW51ZSBlfXc9MHxhW20rKEs8PDIpPj4yXTt0OmRve2lmKCgw''@;'; + put 'put ''fHcpIT0oMHxiKSlmb3IoUj0rZHUoZixjLGIsdyksYmV8fChEPStfW0ErKEs8PDMpPj4zXSksUmU9MS8oRCpEKSxHPUQqUipSZSxSPVIqUipSZSx3PTA7Oyl7aWYoKDB8dyk+PSgwfGMpKWJyZWFrIHQ7dz13KzF8MCxrKz1SLE0rPUd9fXdoaWxlKDApO0s9SysxfDB9Zm9yKGs9TS9rLGI9MHxB''@;'; + put 'put ''cihjLGwpLHc9MDshKCgwfHcpPj0oMHxiKSk7KV9bKGM9Zisodzw8Myl8MCk+PjNdPStfW2M+PjNdKmssdz13KzF8MDtmPTB8YVsxNTcxMl0sX1tPZT4+M109ayxUMChmLDkyMjc4LE9lKSxhZT1MZX0pKFRhLGwsQSxFcixmcixEcikscGU8MCYmKF9bSz4+M109LjIpLEc+PTAmJihfW3A+PjNd''@;'; + put 'put ''PS0xLEc9LTEpLEhuPTB8UW4odXI9bDw8MyksSHI9MHxRbih1cj0wfEFyKFRhLHVyKSksRXQ9MCE9KDB8Z2UpLFp0PXArMTE2fDAsY3Q9MD09KDB8RHIpLGJ0PXArOHwwLGFuPTAhPSgwfG0pLFNuPS0xPT1HLGt0PTEtRyxsdD1wKzY0fDAsaz0wLG90PTAsU3Q9MCxHPTEsV2U9YmU7ZTpmb3Io''@;'; + put 'put ''Ozspe290PW90KzF8MCxnbygwfEhyLDB8QSwwfHVyKSxFdCYmKGs9MHxHayhsLFRhLDEwLEEsMD09KDB8YVtadD4+Ml0pPzA6bSkpLGdlPTAsYmU9MDt0OmZvcig7KDB8Z2UpPCgwfFRhKTspe2ZvcihNPTA7ISgoMHxNKT49KDB8bCkpOylfW0huKyhNPDwzKT4+M109MCxNPU0rMXwwO2ZvcihL''@;'; + put 'put ''PUVyKygobnQ9Z2UrMXwwKTw8Mil8MCxxZT0wfEFyKGdlLGwpLFI9MHxhW0VyKyhnZTw8Mik+PjJdOyEoKDB8Uik+PSgwfGFbSz4+Ml0pKTspe009MHxhWyhmPWZyKyhSPDwyKXwwKT4+Ml07bjpkb3tpZigoMHxNKSE9KDB8Z2UpKXtWZT0rZHUoQSxsLGdlLE0pLGN0fHwoRz0rX1tEcisoUjw8''@;'; + put 'put ''Myk+PjNdKSxwZT0rX1tidD4+M107cjpkb3tpZigyIT1wZSlpZigxPT1wZSlmb3IocGU9MS8oRypHKSooVmUtRyksT2U9MS9WZSxNPTA7Oyl7aWYoKDB8TSk+PSgwfGwpKWJyZWFrIHI7TGU9cGUqKCtfW0ErKE0rcWU8PDMpPj4zXS0rX1tBKygoMHxBcigwfGFbZj4+Ml0sbCkpK008PDMpPj4z''@;'; + put 'put ''XSkqT2UsX1soSGU9SG4rKE08PDMpfDApPj4zXT0rX1tIZT4+M10tTGUsTT1NKzF8MH1lbHNlIGZvcihwZT0xLytxbCgrRywrKHBlKzEpKSxPZT1WZS1HLExlPTEvVmUsTT0wOzspe2lmKCgwfE0pPj0oMHxsKSlicmVhayByO0wwPXBlKihMMD0rX1tBKyhNK3FlPDwzKT4+M10tK19bQSsoKDB8''@;'; + put 'put ''QXIoMHxhW2Y+PjJdLGwpKStNPDwzKT4+M10pKitxbCgrT2UsKyArX1tidD4+M10pKkxlLF9bKEhlPUhuKyhNPDwzKXwwKT4+M109K19bSGU+PjNdLUwwLE09TSsxfDB9ZWxzZSBmb3IocGU9VmUtRyxwZT1wZSpwZSooMS8oRypHKkcpKSxPZT0xL1ZlLE09MDs7KXtpZigoMHxNKT49KDB8bCkp''@;'; + put 'put ''YnJlYWsgcjtMMD1wZSooK19bQSsoTStxZTw8Myk+PjNdLStfW0ErKCgwfEFyKDB8YVtmPj4yXSxsKSkrTTw8Myk+PjNdKSpPZSxfWyhIZT1IbisoTTw8Myl8MCk+PjNdPStfW0hlPj4zXS1MMCxNPU0rMXwwfX13aGlsZSgwKTtpZihhbiYwIT0oMHxhW1p0Pj4yXSkpZm9yKEQ9bSsoUjw8Myl8''@;'; + put 'put ''MCxwZT0rcWwoK1ZlLCtrdCkscGU9MS8oU24/VmUqVmU6cGUpLE09MDs7KXtpZigoMHxNKT49KDB8bCkpYnJlYWsgbjtMMD0rX1tEPj4zXSp3KigrX1tBKyhNK3FlPDwzKT4+M10tK19bQSsoKDB8QXIoMHxhW2Y+PjJdLGwpKStNPDwzKT4+M10pKnBlLF9bKEhlPUhuKyhNPDwzKXwwKT4+M109''@;'; + put 'put ''K19bSGU+PjNdLUwwLE09TSsxfDB9ZWxzZSBmb3IocGU9K3FsKCtWZSwra3QpLHBlPTEvKFNuP1ZlKlZlOnBlKSxNPTA7Oyl7aWYoKDB8TSk+PSgwfGwpKWJyZWFrIG47TDA9KCtfW0ErKE0rcWU8PDMpPj4zXS0rX1tBKygoMHxBcigwfGFbZj4+Ml0sbCkpK008PDMpPj4zXSkqdypwZSxfWyhI''@;'; + put 'put ''ZT1IbisoTTw8Myl8MCk+PjNdPStfW0hlPj4zXS1MMCxNPU0rMXwwfX19d2hpbGUoMCk7Uj1SKzF8MH1uOmRve2lmKEV0KXtpZigkRChrLCtfW2x0Pj4zXSxBKyhxZTw8Myl8MCxnZSxqYSxnYSxMcixEbCxvcyxsMCxiKSxmPTB8YVtqYT4+Ml0sMHxhW2I+PjJdKWJyZWFrIGU7Zm9yKFI9MHxh''@;'; + put 'put ''W29zPj4yXSxLPTB8YVtEbD4+Ml0sZ2U9MHxhW0xyPj4yXSxNPTA7Oyl7aWYoKDB8TSk+PSgwfGYpKXtwZT0wLE09MDticmVhayBufWZvcihMMD0oTDA9K19bUisoTTw8Myk+PjNdKT4xZS0xNT9MMDoxZS0xNSxSZT1LKyhNPDwzKXwwLEhlPTB8QXIoTSxsKSxwZT0rcWwoK0wwLCtrdCkscGU9''@;'; + put 'put ''MS8oU24/TDAqTDA6cGUpLEQ9MDshKCgwfEQpPj0oMHxsKSk7KV9bKHhhPUhuKyhEPDwzKXwwKT4+M109K19bUmU+PjNdKncqKCtfW0ErKEQrcWU8PDMpPj4zXS0rX1tnZSsoRCtIZTw8Myk+PjNdKSpwZSsgK19beGE+PjNdLEQ9RCsxfDA7TT1NKzF8MH19ZWxzZSBpZihhbiYwIT0oMHxhW1p0''@;'; + put 'put ''Pj4yXSkpZm9yKE09MDs7KXtpZigoMHxNKT09KDB8VGEpKXtwZT0wLE09MDticmVhayBufXI6ZG97aWYoKDB8TSkhPSgwfGdlKSlmb3IoTDA9K2R1KEEsbCxnZSxNKSxmPW0rKE08PDMpfDAsUj0wfEFyKE0sbCkscGU9K3FsKCtMMCwra3QpLHBlPTEvKFNuP0wwKkwwOnBlKSxEPTA7Oyl7aWYo''@;'; + put 'put ''KDB8RCk+PSgwfGwpKWJyZWFrIHI7X1soSGU9SG4rKEQ8PDMpfDApPj4zXT0rX1tmPj4zXSp3KigrX1tBKyhEK3FlPDwzKT4+M10tK19bQSsoRCtSPDwzKT4+M10pKnBlKyArX1tIZT4+M10sRD1EKzF8MH19d2hpbGUoMCk7TT1NKzF8MH1lbHNlIGZvcihNPTA7Oyl7aWYoKDB8TSk9PSgwfFRh''@;'; + put 'put ''KSl7cGU9MCxNPTA7YnJlYWsgbn1yOmRve2lmKCgwfE0pIT0oMHxnZSkpZm9yKEwwPStkdShBLGwsZ2UsTSksZj0wfEFyKE0sbCkscGU9K3FsKCtMMCwra3QpLHBlPTEvKFNuP0wwKkwwOnBlKSxEPTA7Oyl7aWYoKDB8RCk+PSgwfGwpKWJyZWFrIHI7X1soSGU9SG4rKEQ8PDMpfDApPj4zXT0o''@;'; + put 'put ''K19bQSsoRCtxZTw8Myk+PjNdLStfW0ErKEQrZjw8Myk+PjNdKSp3KnBlKyArX1tIZT4+M10sRD1EKzF8MH19d2hpbGUoMCk7TT1NKzF8MH19d2hpbGUoMCk7Zm9yKDshKCgwfE0pPj0oMHxsKSk7KXBlPShMMD0rX1tIbisoTTw8Myk+PjNdKSpMMCtwZSxNPU0rMXwwO2JlPShwZT0rRDAoK3Bl''@;'; + put 'put ''KSkrYmU7bjpkb3tpZihwZT4wKWZvcihwZT0xL3BlLE09MDs7KXtpZigoMHxNKT49KDB8bCkpe009MDticmVhayBufV9bKHhhPUhuKyhNPDwzKXwwKT4+M109K19beGE+PjNdKnBlLE09TSsxfDB9ZWxzZSBNPTB9d2hpbGUoMCk7Zm9yKDs7KXtpZigoMHxNKT49KDB8bCkpe2dlPW50O2NvbnRp''@;'; + put 'put ''bnVlIHR9X1soeGE9QSsoTStxZTw8Myl8MCk+PjNdPStfW3hhPj4zXSsgK19bSG4rKE08PDMpPj4zXSpXZSxNPU0rMXwwfX1pZigwfGsmJmU5KGspLCEoKDB8b3QpPCgwfE9pKSYoV2U9K2trKGxvLFdlLGJlLFN0LFJvKSk+VmkpKXt4aT04MzticmVha31TdD1iZX04Mz09KDB8eGkpJiYwfGFb''@;'; + put 'put ''cCsxMTI+PjJdJiZTayhsLEpyLEEpLEZ0KEhyKSwoMHxKcikhPSgwfGMpJiZSYShKciksRnQoSG4pLE09az0wfGFbTHI+PjJdfWVsc2UgYVtiPj4yXT0tMTAwOzB8TSYmRnQoayksMHwoaz0wfGFbRGw+PjJdKSYmRnQoayksMHwoaz0wfGFbb3M+PjJdKSYmRnQoayl9YWU9b2x9ZnVuY3Rpb24g''@;'; + put 'put ''dDJlKGwsYyxmKXtmfD0wO3ZhciBELFIsRyxLLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxwZT0wO1I9MHxhWzIwKyhjfD0wKT4+Ml0sRz0wfGFbYysyND4+Ml0sSz0wfFFuKChsfD0wKTw8MyksRD0wfGFbYz4+Ml0saz0wO2U6Zm9yKDsoMHxrKTwoMHxEKTspe2ZvcihjPTA7ISgoMHxj''@;'; + put 'put ''KT49KDB8bCkpOylfW0srKGM8PDMpPj4zXT0wLGM9YysxfDA7Zm9yKGI9MHxhW1IrKChNPWsrMXwwKTw8Mik+PjJdLHc9MHxhW1IrKGs8PDIpPj4yXSxjPTA7ISgoMHx3KT49KDB8YikpOyl7aWYoKDB8KHA9MHxhW0crKHc8PDIpPj4yXSkpIT0oMHxrKSl7Zm9yKEE9MHxBcihwLGwpLHA9MDsh''@;'; + put 'put ''KCgwfHApPj0oMHxsKSk7KV9bKHBlPUsrKHA8PDMpfDApPj4zXT0rX1twZT4+M10rICtfW2YrKEErcDw8Myk+PjNdLHA9cCsxfDA7Yz1jKzF8MH13PXcrMXwwfWlmKCgwfGMpPD0wKWs9TTtlbHNlIGZvcihtPS41LysoMHxjKSxwPTB8QXIoayxsKSxjPTA7Oyl7aWYoKDB8Yyk+PSgwfGwpKXtr''@;'; + put 'put ''PU07Y29udGludWUgZX1fWyhwZT1mKyhjK3A8PDMpfDApPj4zXT0rX1tLKyhjPDwzKT4+M10qbSsuNSorX1twZT4+M10sYz1jKzF8MH19RnQoSyl9ZnVuY3Rpb24gRUQobCl7dmFyIHcsYixrLE0sRCxjPTAsZj0wLHA9MCxtPTAsQT0wO2ZvcihiPTB8YVsyMCsobHw9MCk+PjJdLGs9MHxhW2wr''@;'; + put 'put ''MjQ+PjJdLE09MHxRbig0Kygodz0wfGFbbD4+Ml0pPDwyKXwwKSxsPTA7Oyl7aWYoKDB8bCk+KDB8dykpe2Y9MCxwPTA7YnJlYWt9YVtNKyhsPDwyKT4+Ml09MCxsPWwrMXwwfWZvcig7ISgoMHxwKT49KDB8dykpOyl7Zm9yKEE9MHxhW2IrKChtPXArMXwwKTw8Mik+PjJdLGw9MCxjPTB8YVti''@;'; + put 'put ''KyhwPDwyKT4+Ml07ISgoMHxjKT49KDB8QSkpOylsPWwrKCgwfHApIT0oMHxhW2srKGM8PDIpPj4yXSkmMSl8MCxjPWMrMXwwO2FbKEE9TSsobDw8Mil8MCk+PjJdPXA9MSsoMHxhW0E+PjJdKXwwLGY9KDB8Zik+KDB8cCk/ZjpwLHA9bX1yZXR1cm4gbD0uOCorKDB8Zik8KEQ9KygwfGFbTSs0''@;'; + put 'put ''Pj4yXSkpJiYuMyorKDB8dyk8RD8xOjAsRnQoTSksMHxsfWZ1bmN0aW9uIG4yZShsLGMsZil7bHw9MCxmfD0wO3ZhciBHLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEs9MCxwZT0wLGdlPTA7Zm9yKEc9YWUsYWU9YWUrNDh8MCxSPUcrMTZ8MCxrPUcsdz0wfEFyKGN8PTAs''@;'; + put 'put ''YyksbT0wOzspe2lmKCgwfG0pPj0oMHx3KSl7bT0wO2JyZWFrfV9bUisobTw8Myk+PjNdPTAsbT1tKzF8MH1mb3IoOzspe2lmKCgwfG0pPj0oMHxjKSl7dz0wO2JyZWFrfV9baysobTw8Myk+PjNdPTAsbT1tKzF8MH1mb3IoOyEoKDB8dyk+PSgwfGwpKTspe2ZvcihiPTB8QXIodyxjKSxtPTA7''@;'; + put 'put ''ISgoMHxtKT49KDB8YykpOylfWyhEPWsrKG08PDMpfDApPj4zXT0rX1tEPj4zXSsgK19bZisobStiPDwzKT4+M10sbT1tKzF8MDt3PXcrMXwwfWZvcihwPTEvKygwfGwpLG09MDs7KXtpZigoMHxtKT49KDB8Yykpe3c9MDticmVha31fWyhEPWsrKG08PDMpfDApPj4zXT0rX1tEPj4zXSpwLG09''@;'; + put 'put ''bSsxfDB9Zm9yKDs7KXtpZigoMHx3KT49KDB8bCkpe2I9MDticmVha31mb3IoYj0wfEFyKHcsYyksbT0wOyEoKDB8bSk+PSgwfGMpKTspX1soRD1mKyhtK2I8PDMpfDApPj4zXT0rX1tEPj4zXS0rX1trKyhtPDwzKT4+M10sbT1tKzF8MDt3PXcrMXwwfWZvcig7ISgoMHxiKT49KDB8bCkpOyl7''@;'; + put 'put ''Zm9yKGs9MHxBcihiLGMpLHc9MDshKCgwfHcpPj0oMHxjKSk7KXtmb3IoTT1mKyh3K2s8PDMpfDAsRD0wfEFyKHcsYyksbT0wOygwfG0pIT0oMHxjKTspX1soSz1SKyhtK0Q8PDMpfDApPj4zXT0rX1tLPj4zXSsgK19bZisobStrPDwzKT4+M10qK19bTT4+M10sbT1tKzF8MDt3PXcrMXwwfWI9''@;'; + put 'put ''YisxfDB9Zm9yKHA9MD09KHA9K19bUis4Pj4zXSk/MDotKChBPStfW1IrMjQ+PjNdKS0ocGU9K19bUj4+M10pLStEMCgrKHBlKnBlK3AqcCo0KygtMipwZStBKSpBKSkpLygyKnApLHAvPUE9K0QwKCsocCpwKzEpKSxBPTEvQSxtPTA7ISgoMHxtKT49KDB8bCkpOylLPTB8QXIobSxjKSxfWyhS''@;'; + put 'put ''PWYrKEs8PDMpfDApPj4zXT0oZ2U9K19bKEs9ZisoSysxPDwzKXwwKT4+M10pKkErKHBlPStfW1I+PjNdKSpwLF9bSz4+M109Z2UqcC1wZSpBLG09bSsxfDA7YWU9R31mdW5jdGlvbiBNayhsLGMsZixwLG0sQSx3LGIsayxNKXshZnVuY3Rpb24gcjJlKGwsYyxmLHAsbSxBLHcsYixrLE0pe2x8''@;'; + put 'put ''PTAsY3w9MCxmfD0wLG18PTAsd3w9MCxifD0wLGt8PTAsTXw9MDt2YXIgYW4sSG4sRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxTdD0wLGt0PTAsbHQ9MCxFdD0wLGJ0PTAsU249MDtIbj1hZSxhZT1hZSsxOTJ8''@;'; + put 'put ''MCxnbygwfChhbj1IbiksMHwocHw9MCksMTY4KSxhW00+PjJdPTA7ZG97aWYoMHxjJiYhKCgwfGwpPDF8KDB8KFNuPTB8YVtjKzQ+PjJdKSk8MSkpezAhPSgwfGxoKGMsMCkpJiYxPT0oMHxhW2MrMTY+PjJdKT8oUj0xPT0oMHxhW3ArMTM2Pj4yXSk/MHx3cChmKTpmLGJ0PTB8d3AoYykpOmJl''@;'; + put 'put ''PTU7ZG97aWYoNT09KDB8YmUpKXtpZigxPT0oMHxhW3ArMTM2Pj4yXSkpe2J0PTB8VWsoYywwKSxSPTB8VWsoZiwwKTticmVha31idD0wfEE1KGMpLFI9ZjticmVha319d2hpbGUoMCk7aWYoMz09KDB8KEc9MHxhWyhFdD1wKzE2MHwwKT4+Ml0pKT8oMHxiKT4wJiYoYmU9MTQpOigwfGIpPjAm''@;'; + put 'put ''ND09KDB8RykmJihiZT0xNCksMTQ9PSgwfGJlKSl7aWYoZj0wfFFuKDB8QXIobDw8MywwfGFbYnQ+PjJdKSksTWsobCxTbj0wfENYKGJ0LGIsayksMCxwLDAsMCxmLDAsMCxNKSxpMmUobCxidCxiLGssdyxmKSxIVihsLDAsMCwwLDAsMCwwfGFbRXQ+PjJdKSxSYShTbiksRnQoZiksKDB8YnQp''@;'; + put 'put ''PT0oMHxjKSlicmVhaztSYShidCk7YnJlYWt9Zm9yKGt0PTB8S0IoMHxhW3ArNDQ+PjJdLDB8YVtwKzQ4Pj4yXSksYVtrdCsxNj4+Ml09YVtwKzQwPj4yXSxLPTB8X0EobHQ9MHwkQihidCxSLG0sa3QpKSxwZT0wfGFbSyszMj4+Ml0/MHxRbigwfEFyKGw8PDMsMHxhW0srND4+Ml0pKTp3LEc9''@;'; + put 'put ''MHxFRChidCksLTEuMDAwMTIzND09K19bcD4+M10mJihfW3A+PjNdPTA9PSgwfEcpPy0xOi0xLjgpLExlPXArMTM2fDAsUmU9cCsyNHwwLEhlPXArMTZ8MCxWZT1wKzEwNHwwLHFlPXArOTZ8MCxudD1sPDwzLFdlPXArMTMyfDAsU3Q9cCs4MHwwOzspe2U6ZG97c3dpdGNoKDB8YVtMZT4+Ml0p''@;'; + put 'put ''e2Nhc2UgMDpzd2l0Y2goMHxhW1dlPj4yXSl7Y2FzZSAwOmUyZShsLDB8YVtLKzg+PjJdLHAsMHxhW0srMjQ+PjJdLHBlLE0pO2JyZWFrIGU7Y2FzZSAyOkc9Sys4fDAsYmU9Mjk7YnJlYWs7Y2FzZSAzOmJlPSgwfGFbKGdlPTB8YVsoRz1LKzh8MCk+PjJdKT4+Ml0pPjFlND8yOTozMDticmVh''@;'; + put 'put ''aztkZWZhdWx0OmdlPTB8YVtLKzg+PjJdLGJlPTMwfWlmKDI5PT0oMHxiZSkpeyRzZShsLDB8YVtHPj4yXSxwLDB8YVtLKzI0Pj4yXSxwZSxNKTticmVhayBlfWlmKDMwPT0oMHxiZSkpe1E5ZShsLGdlLHAsMHxhW0srMjQ+PjJdLHBlLE0pO2JyZWFrIGV9YnJlYWs7Y2FzZSAxOl9bcWU+PjNd''@;'; + put 'put ''PTEsYVtWZT4+Ml09MSxEPShPZT0wPT0oMHxhW0srMjg+PjJdKSk/LjU6LjA1LGFbU3Q+PjJdPU9lPzUwMDoxMDAsT2U9MD09KDB8YVtLKzMyPj4yXSksTUQobCwwfGFbKEc9Sys4fDApPj4yXSwwfGFbKGdlPUsrMTJ8MCk+PjJdLHAsMHxhWyhiZT1LKzI0fDApPj4yXSxwZSxELE0pLE9lJiYo''@;'; + put 'put ''YVtIZT4+Ml09MCxfW3FlPj4zXT0uMDUsYVtWZT4+Ml09MCxNRChsLDB8YVtHPj4yXSwwfGFbZ2U+PjJdLHAsMHxhW2JlPj4yXSxwZSwuNSpELE0pLE1EKGwsMHxhW0c+PjJdLDB8YVtnZT4+Ml0scCwwfGFbYmU+PjJdLHBlLC4xMjUqRCxNKSxNRChsLDB8YVtHPj4yXSwwfGFbZ2U+PjJdLHAs''@;'; + put 'put ''MHxhW2JlPj4yXSxwZSwuMDMxMjUqRCxNKSl9fXdoaWxlKDApO2lmKCEoYmU9MHxhW0srMzI+PjJdKSl7YmU9Mzk7YnJlYWt9aWYoMHxhW00+PjJdKXtiZT0zNTticmVha31PZT0wfGFbSysxNj4+Ml0sRz0wfGFbSys0MD4+Ml0sZ2U9MHxhW2JlKzMyPj4yXT8wfFFuKDB8QXIobnQsMHxhW2Jl''@;'; + put 'put ''KzQ+PjJdKSk6dyxuOChsLDB8YVtiZSs4Pj4yXSxPZSwwfGFbYmUrMjA+PjJdLHBlLGdlLEcsLjAwMSorX1tSZT4+M10pLEZ0KHBlKSxhW0hlPj4yXT0wLF9bUmU+PjNdPS43NSorX1tSZT4+M10sYVtWZT4+Ml09MCxfW3FlPj4zXT0oKDB8YVs0MCsoMHxhW2JlKzI4Pj4yXSk+PjJdKS05fDAp''@;'; + put 'put ''Pj4+MDwyPzE6LjEsSz1iZSxwZT1nZX0zNT09KDB8YmUpP0Z0KHBlKTozOT09KDB8YmUpJiYoRXgobCxidCxwLG0sdyxNKSwyPT0oMHxsKSYmbjJlKFNuLDIsdyksMCE9KEQ9K19bcCsxNTI+PjNdKSYmJGgoU24sbCx3LEQpLEhWKGwsMCwwLDAsMCwwLDB8YVtFdD4+Ml0pKSxnbygwfHAsMHxh''@;'; + put 'put ''biwxNjgpLCgwfGJ0KSE9KDB8YykmJlJhKGJ0KSwwPT0oMHxSKXwoMHxSKT09KDB8Zil8fFJhKFIpLGl0KGt0KSxzdChsdCl9fXdoaWxlKDApO2FlPUhufShsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsMCx3fD0wLGJ8PTAsa3w9MCxNfD0wKX1mdW5jdGlvbiBDWChsLGMsZil7Y3w9MCxmfD0w''@;'; + put 'put ''O3ZhciBPZSxMZSxSZSxIZSxxZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLFZlPTA7Zm9yKHFlPWFlLGFlPWFlKzE2fDAsVmU9cWUsTGU9MHxhWzIwKyhsfD0wKT4+Ml0sUmU9MHxhW2wrMjQ+PjJdLEhlPTB8UW4oYVtsPj4yXTw8''@;'; + put 'put ''MikscD0wOzspe2lmKCgwfHApPj0oMHxhW2w+PjJdKSl7cD0wO2JyZWFrfWFbSGUrKHA8PDIpPj4yXT0xLHA9cCsxfDB9Zm9yKDs7KXtpZigoMHxwKT49KDB8Yykpe3A9MCxmPTA7YnJlYWt9YVtIZSsoYVtmKyhwPDwyKT4+Ml08PDIpPj4yXT0tMSxwPXArMXwwfWZvcig7Oyl7aWYoKDB8Zik+''@;'; + put 'put ''PSgwfChEPTB8YVtsPj4yXSkpKXtmPTAsYz0wO2JyZWFrfSgwfGFbKGM9SGUrKGY8PDIpfDApPj4yXSk+MCYmKGFbYz4+Ml09cCxwPXArMXwwKSxmPWYrMXwwfWU6Zm9yKDs7KXtmb3IoOzspe2lmKCgwfGMpPj0oMHxEKSlicmVhayBlO2lmKCgwfGFbSGUrKGM8PDIpPj4yXSk+PTApYnJlYWs7''@;'; + put 'put ''Yz1jKzF8MH1mb3IoTT0wfGFbTGUrKChrPWMrMXwwKTw8Mik+PjJdLGI9MHxhW0xlKyhjPDwyKT4+Ml07Oyl7aWYoKDB8Yik+PSgwfE0pKXtjPWs7Y29udGludWUgZX1tPTB8YVtSZSsoYjw8Mik+PjJdO3Q6ZG97aWYoKDB8YVtIZSsobTw8Mik+PjJdKT4tMSlmPWYrMXwwO2Vsc2UgZm9yKHc9''@;'; + put 'put ''MHxhW0xlKyhtKzE8PDIpPj4yXSxBPTB8YVtMZSsobTw8Mik+PjJdOzspe2lmKCgwfEEpPj0oMHx3KSlicmVhayB0OygwfChtPTB8YVtSZSsoQTw8Mik+PjJdKSkhPSgwfGMpJiYoZj0oKDB8YVtIZSsobTw8Mik+PjJdKT4+PjMxXjEpK2Z8MCksQT1BKzF8MH19d2hpbGUoMCk7Yj1iKzF8MH19''@;'; + put 'put ''Yz1mPDwyLCgwfGYpPjA/KGdlPTB8UW4oYyksSz1iZT0wfFFuKGMpLHBlPWdlKTooSz0wLHBlPTAsZ2U9MCxiZT0wKSxPZT0wfGFbMTU3MTJdLGM9MCxtPTA7ZTpmb3IoOzspe2ZvcihmPTB8YVtsPj4yXTs7KXtpZigoMHxjKT49KDB8ZikpYnJlYWsgZTtpZigoMHxhWyhHPUhlKyhjPDwyKXww''@;'; + put 'put ''KT4+Ml0pPj0wKWJyZWFrO2M9YysxfDB9Zm9yKFI9TGUrKChEPWMrMXwwKTw8Mil8MCxNPTB8YVtMZSsoYzw8Mik+PjJdLGY9bTs7KXtpZigoMHxNKT49KDB8YVtSPj4yXSkpe2M9RCxtPWY7Y29udGludWUgZX1BPTB8YVsobT1SZSsoTTw8Mil8MCk+PjJdO3Q6ZG97aWYoKDB8YVtIZSsoQTw8''@;'; + put 'put ''Mik+PjJdKT4tMSlhW3BlKyhmPDwyKT4+Ml09YVtHPj4yXSxhW0srKGY8PDIpPj4yXT1hW0hlKyhhW20+PjJdPDwyKT4+Ml0sZj1mKzF8MDtlbHNlIGZvcihrPUxlKyhBKzE8PDIpfDAsYj0wfGFbTGUrKEE8PDIpPj4yXTs7KXtpZigoMHxiKT49KDB8YVtrPj4yXSkpYnJlYWsgdDt3PTB8YVso''@;'; + put 'put ''bT1SZSsoYjw8Mil8MCk+PjJdO2Rve2lmKCgwfHcpIT0oMHxjKSYmKDB8YVtIZSsodzw8Mik+PjJdKT4tMSl7aWYoYVtwZSsoZjw8Mik+PjJdPWFbRz4+Ml0sdz1mKzF8MCxhW0srKGY8PDIpPj4yXT1hW0hlKyhhW20+PjJdPDwyKT4+Ml0sZj0wfGFbSGUrKGFbbT4+Ml08PDIpPj4yXSw2OCE9''@;'; + put 'put ''KDB8KEE9MHxhW0c+PjJdKSkpe2lmKDY4IT0oMHxmKSl7Zj13O2JyZWFrfWY9Njh9YVtWZT4+Ml09QSxhW1ZlKzQ+PjJdPWYsVDAoT2UsOTIzODAsVmUpLGY9d319d2hpbGUoMCk7Yj1iKzF8MH19d2hpbGUoMCk7TT1NKzF8MH19cmV0dXJuIFZlPTB8cjQobSxwLHAscGUsSywwLDgsOCksRnQo''@;'; + put 'put ''Z2UpLEZ0KGJlKSxGdChIZSksYWU9cWUsMHxWZX1mdW5jdGlvbiBpMmUobCxjLGYscCxtLEEpe2x8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgRyxLLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLHBlPTA7Zm9yKEs9MHxRbihhWyhjfD0wKT4+Ml08PDIpLHc9MDs7KXtpZigoMHx3KT49KDB8''@;'; + put 'put ''YVtjPj4yXSkpe3c9MDticmVha31hW0srKHc8PDIpPj4yXT0xLHc9dysxfDB9Zm9yKDs7KXtpZigoMHx3KT49KDB8Zikpe3c9MCxNPTA7YnJlYWt9KDB8KGI9MHxhW3ArKHc8PDIpPj4yXSkpPi0xJiYoMHxiKTwoMHxhW2M+PjJdKSYmKGFbSysoYjw8Mik+PjJdPS0xKSx3PXcrMXwwfWZvcig7''@;'; + put 'put ''Oyl7aWYoKDB8TSk+PSgwfChSPTB8YVtjPj4yXSkpKXtNPTA7YnJlYWt9KDB8YVsoYj1LKyhNPDwyKXwwKT4+Ml0pPi0xJiYoYVtiPj4yXT13LHc9dysxfDApLE09TSsxfDB9Zm9yKDshKCgwfE0pPj0oMHxSKSk7KXt3PTB8YVtLKyhNPDwyKT4+Ml07ZTpkb3tpZigoMHx3KT4tMSlmb3IoRD0w''@;'; + put 'put ''fEFyKE0sbCksYj0wfEFyKHcsbCksdz0wOzspe2lmKCgwfHcpPj0oMHxsKSlicmVhayBlO19bbSsodytEPDwzKT4+M109K19bQSsoYit3PDwzKT4+M10sdz13KzF8MH19d2hpbGUoMCk7TT1NKzF8MH1mb3IoRz1jKzIwfDAsQT1jKzI0fDAsUj0wOyEoKDB8Uik+PSgwfGYpKTspe2ZvcihEPShN''@;'; + put 'put ''PTB8YVsodz0wfGFbRz4+Ml0pKygxKyhjPTB8YVtwKyhSPDwyKT4+Ml0pPDwyKT4+Ml0pLSh3PTB8YVt3KyhjPDwyKT4+Ml0pfDAsYz0wfEFyKGMsbCksYj0wOyEoKDB8Yik+PSgwfGwpKTspX1ttKyhiK2M8PDMpPj4zXT0wLGI9YisxfDA7Zm9yKDsoMHx3KTwoMHxNKTspe2ZvcihiPTA7ISgo''@;'; + put 'put ''MHxiKT49KDB8bCkpOylrPStfW20rKCgwfEFyKDB8YVsoMHxhW0E+PjJdKSsodzw8Mik+PjJdLGwpKStiPDwzKT4+M10sX1socGU9bSsoYitjPDwzKXwwKT4+M109K19bcGU+PjNdK2ssYj1iKzF8MDt3PXcrMXwwfWZvcihrPTEvKygwfEQpLHc9MDshKCgwfHcpPj0oMHxsKSk7KV9bKHBlPW0r''@;'; + put 'put ''KHcrYzw8Myl8MCk+PjNdPStfW3BlPj4zXSprLHc9dysxfDA7Uj1SKzF8MH1GdChLKX1mdW5jdGlvbiBuOChsLGMsZixwLG0sQSx3LGIpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCx3fD0wLGI9K2I7dmFyIEQsUixrPTAsTT0wLEc9MCxLPTA7Uj1hZSxhZT1hZSsxNnwwLGFbKEQ9Uik+PjJd''@;'; + put 'put ''PUF8PTAsemkoZiwwLG0sMCxELDAsbCk7ZTpkb3tpZigodystMXwwKT4+PjA8Nil7dDJlKGwsYywwfGFbRD4+Ml0pLGs9MHxhW3A+PjJdLE09MHxhW3ArMjA+PjJdLEE9MHxhW3ArMjQ+PjJdLGM9MDt0OmZvcig7Oyl7aWYoKDB8Yyk+PSgwfGspKWJyZWFrIGU7cD1NKygodz1jKzF8MCk8PDIp''@;'; + put 'put ''fDAsYz0wfGFbTSsoYzw8Mik+PjJdO246Zm9yKDs7KXtpZigoMHwoYz1jKzF8MCkpPj0oMHxhW3A+PjJdKSl7Yz13O2NvbnRpbnVlIHR9Zm9yKG09QSsoYzw8Mil8MCxmPTA7Oyl7aWYoKDB8Zik+PSgwfGwpKWNvbnRpbnVlIG47Sz0oK0JoKCktLjUpKmIsRz0oMHxhW0Q+PjJdKSsoKDB8QXIo''@;'; + put 'put ''MHxhW20+PjJdLGwpKStmPDwzKXwwLF9bRz4+M109K19bRz4+M10rSyxmPWYrMXwwfX19fX13aGlsZSgwKTthZT1SfWZ1bmN0aW9uICRoKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHA9K3A7dmFyIE0sbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTAsUj0wLEc9MDtmb3IoTT1hZSxhZT1hZSsxNnww''@;'; + put 'put ''LGs9TSxtPTA7Oyl7aWYoKDB8bSk+PSgwfGMpKXt3PTA7YnJlYWt9X1trKyhtPDwzKT4+M109MCxtPW0rMXwwfWZvcig7ISgoMHx3KT49KDB8bCkpOyl7Zm9yKGI9MHxBcih3LGMpLG09MDshKCgwfG0pPj0oMHxjKSk7KV9bKEQ9aysobTw8Myl8MCk+PjNdPStfW0Q+PjNdKyArX1tmKyhtK2I8''@;'; + put 'put ''PDMpPj4zXSxtPW0rMXwwO3c9dysxfDB9Zm9yKEE9MS8rKDB8bCksbT0wOzspe2lmKCgwfG0pPj0oMHxjKSl7dz0wO2JyZWFrfV9bKEQ9aysobTw8Myl8MCk+PjNdPStfW0Q+PjNdKkEsbT1tKzF8MH1mb3IoOyEoKDB8dyk+PSgwfGwpKTspe2ZvcihiPTB8QXIodyxjKSxtPTA7ISgoMHxtKT49''@;'; + put 'put ''KDB8YykpOylfWyhEPWYrKG0rYjw8Myl8MCk+PjNdPStfW0Q+PjNdLStfW2srKG08PDMpPj4zXSxtPW0rMXwwO3c9dysxfDB9Zm9yKEE9K2hhKCsocCo9LS4wMTc0NTMyNzc3Nzc3Nzc3NzYpKSxwPStEYSgrcCksbT0wOyEoKDB8bSk+PSgwfGwpKTspRD0wfEFyKG0sYyksX1soaz1mKyhEPDwz''@;'; + put 'put ''KXwwKT4+M109KEc9K19bKEQ9ZisoRCsxPDwzKXwwKT4+M10pKnArKFI9K19baz4+M10pKkEsX1tEPj4zXT1HKkEtUipwLG09bSsxfDA7YWU9TX1mdW5jdGlvbiBFayhsLGMsZixwLG0sQSl7bHw9MCxmfD0wLHA9K3AsbT0rbSxBfD0wO3ZhciBNLEQsT2UsTGUsUmUsSGUsdz0wLGI9MCxrPTAs''@;'; + put 'put ''Uj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsVmU9MDtpZihSZT0wfGFbKGN8PTApPj4yXSxIZT0wfGFbYysyMD4+Ml0sT2U9MHxhW2MrMjQ+PjJdLExlPTB8YVtjKzI4Pj4yXSwwfGxoKGMsMCl8fFByKDk1Nzk1LDkyMzg3LDM3LDkyNDA0KSxsPTB8UW4oNTYpLGFbKGs9bCsyMHwwKT4+Ml09''@;'; + put 'put ''MCxhW2wrMjQ+PjJdPTIsYVtsKzEyPj4yXT0wLGI9MHxRbigxNiksYVtrPj4yXT1iLF9bYj4+M109cCxfW2IrOD4+M109bSxhW2wrMTY+PjJdPTEwNSxfW2wrNDA+PjNdPS4wMSxhW2wrNDg+PjJdPX5+K0QwKCsgKygwfGFbYz4+Ml0pKSxhWyhrPWwrNHwwKT4+Ml09MHx1YyhSZSxSZSwoMHxh''@;'; + put 'put ''WyhiPWMrOHwwKT4+Ml0pK1JlfDAsMSwxKSxiPTB8dWMoUmUsUmUsKDB8YVtiPj4yXSkrUmV8MCwxLDEpLGFbbCs4Pj4yXT1iLE09MHxhWzI4KyhrPTB8YVtrPj4yXSk+PjJdLEQ9MHxhW2IrMjg+PjJdLDA9PSgwfGIpfDA9PSgwfGspKVE0KGwpLGw9MDtlbHNle2ZvcihSPTB8YVtrKzIwPj4y''@;'; + put 'put ''XSxHPTB8YVtrKzI0Pj4yXSxwZT0wfGFbYisyND4+Ml0sYVsoSz0wfGFbYisyMD4+Ml0pPj4yXT0wLGFbUj4+Ml09MCxjPTAsZj0wOyEoKDB8Yyk+PSgwfFJlKSk7KXtmb3IoYmU9SGUrKChnZT1jKzF8MCk8PDIpfDAscD0wLG09MCx3PTB8YVtIZSsoYzw8Mik+PjJdOyEoKDB8dyk+PSgwfGFb''@;'; + put 'put ''YmU+PjJdKSk7KSgwfChBPTB8YVtPZSsodzw8Mik+PjJdKSkhPSgwfGMpJiYoVmU9KFZlPShWZT0rX1tMZSsodzw8Myk+PjNdKT49MD9WZTotVmUpPi4wMT9WZTouMDEsYVtHKyhmPDwyKT4+Ml09QSxhW3BlKyhmPDwyKT4+Ml09QSxfWyhBPU0rKGY8PDMpfDApPj4zXT0tMSxfW0QrKGY8PDMp''@;'; + put 'put ''Pj4zXT0tVmUscD0rX1tBPj4zXStwLG0tPVZlLGY9ZisxfDApLHc9dysxfDA7YVtHKyhmPDwyKT4+Ml09YyxhW3BlKyhmPDwyKT4+Ml09YyxfW00rKGY8PDMpPj4zXT0tcCxfW0QrKGY8PDMpPj4zXT0tbSxhW1IrKGdlPDwyKT4+Ml09Zj1mKzF8MCxhW0srKGdlPDwyKT4+Ml09ZixjPWdlfWFb''@;'; + put 'put ''ays4Pj4yXT1mLGFbYis4Pj4yXT1mfXJldHVybiAwfGx9ZnVuY3Rpb24geWwobCl7UTQobHw9MCl9ZnVuY3Rpb24gWjcobCxjLGYscCl7cmV0dXJuKyArem0obHw9MCxjfD0wLGZ8PTAscHw9MCwuMDAxKX1mdW5jdGlvbiBhMmUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIHcsYixrLG09''@;'; + put 'put ''MCxBPTAsTT0wLEQ9MDtmb3Ioaz0wfFFuKCgwfEdvKGx8PTApKTw8NCksdz0wIT0oMHxwKSxiPWMrOHwwLEE9MHxEdChsKSxtPTA7QTspdyYmKG09bSsoMD09KDB8czIoMHx0aShBKSw5MjQ4MSwxMSkpJjEpfDApLF9baysoKE09YVsxMjArKEQ9MHxhW0ErMTY+PjJdKT4+Ml08PDEpPDwzKT4+''@;'; + put 'put ''M109LjUqK19bRCszMj4+M10rICtfW2M+PjNdLF9baysoKDF8TSk8PDMpPj4zXT0uNSorX1tEKzQwPj4zXSsgK19bYj4+M10sQT0wfHp0KGwsQSk7aWYodyYwIT0oMHxtKSl7Zm9yKGM9MHxRbihtPDwyKSxBPTB8RHQobCksbT0wO0E7KTB8czIoMHx0aShBKSw5MjQ4MSwxMSl8fChhW2MrKG08''@;'; + put 'put ''PDIpPj4yXT1hWzEyMCsoMHxhW0ErMTY+PjJdKT4+Ml0sbT1tKzF8MCksQT0wfHp0KGwsQSk7YVtwPj4yXT1jLGFbZj4+Ml09bX1yZXR1cm4gMHxrfWZ1bmN0aW9uIGwyZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBPZSxMZSxSZSxxZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9''@;'; + put 'put ''MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLEhlPTAsVmU9MCxudD0wO2lmKHFlPWFlLGFlPWFlKzMyfDAsUmU9cWUrMTZ8MCxMZT1xZSs4fDAsT2U9cWUsbHw9MCl7Zm9yKEhlPTB8R28obCksVmU9MHxWMyhsKSxjPTB8RHQobCkscD0wO2M7KWFbMTIwKygwfGFbYysxNj4+Ml0pPj4yXT1wLGM9''@;'; + put 'put ''MHx6dChsLGMpLHA9cCsxfDA7Zm9yKEs9MHxRbihwZT1WZTw8MikscGU9MHxRbihwZSksZ2U9MHxRbihjPVZlPDwzKSxSPTB8c2kobCwyLDEwMTU0MSwwKSwoYmU9MCE9KDB8ZikpPyhwPTB8c2kobCwyLDkyNDkzLDApLEQ9Rz0wfHZyKGMpKTooRD0wLHA9MCxHPTApLGI9MD09KDB8Uiksaz0w''@;'; + put 'put ''PT0oMHxwKSx3PTB8RHQobCksYz0wO3c7KXtmb3IoTT0wfGFbMTIwKygwfGFbdysxNj4+Ml0pPj4yXSxBPTB8dzAobCx3KTtBOylhW0srKGM8PDIpPj4yXT1NLGFbcGUrKGM8PDIpPj4yXT1hWzEyMCsoMHxhWzE2KygwfGFbKDI9PSgzJmFbQT4+Ml18MCk/QTpBKy00OHwwKSs0MD4+Ml0pPj4y''@;'; + put 'put ''XSk+PjJdLGJ8fChudD0wfEhvKEEsUiksYVtMZT4+Ml09T2UsMSE9KDB8aWwobnQsMTAxMjA5LExlKSkpPyhfW09lPj4zXT0xLG09MSk6bT0rX1tPZT4+M10sX1tnZSsoYzw8Myk+PjNdPW0sa3x8KG50PTB8SG8oQSxwKSxhW1JlPj4yXT1PZSwxPT0oMHxpbChudCwxMDEyMDksUmUpKT9tPStf''@;'; + put 'put ''W09lPj4zXTooX1tPZT4+M109MSxtPTEpLF9bRCsoYzw8Myk+PjNdPW0pLEE9MHxTMChsLEEpLGM9YysxfDA7dz0wfHp0KGwsdyl9Yz0wfHI0KFZlLEhlLEhlLEsscGUsZ2UsMSw4KSxiZSYmKGFbZj4+Ml09MHxyNChWZSxIZSxIZSxLLHBlLEcsMSw4KSksRnQoSyksRnQocGUpLEZ0KGdlKSxE''@;'; + put 'put ''JiZGdChHKX1lbHNlIGM9MDtyZXR1cm4gYWU9cWUsMHxjfWZ1bmN0aW9uIHMyZShsKXtsfD0wO3ZhciBNLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wLFI9MCxHPTA7TT1hZSxhZT1hZSsxNnwwLGs9TTtlOmRve2lmKDB8JDllKGwsaykpe2ZvcihjPTB8YVsxMzIrKDB8YVsx''@;'; + put 'put ''NisoMHxEdChsKSk+PjJdKT4+Ml0sQT0rX1tjPj4zXSxwPStfW2MrOD4+M10sYz0wfER0KGwpO2M7KV9bKG09MHxhWzEzMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXT0rX1ttPj4zXS1BLF9bKG09bSs4fDApPj4zXT0rX1ttPj4zXS1wLGM9MHx6dChsLGMpO2ZvcihjPTEmKDAhPUF8MCE9cCks''@;'; + put 'put ''Zj0wfER0KGwpOzspe2lmKCFmKWJyZWFrIGU7aWYoMHwobT0wfHcwKGwsZikpKWJyZWFrO2Y9MHx6dChsLGYpfWlmKHA9K1VsKCsoK19bOCsoZj0wfGFbMTMyKygwfGFbMTYrKDB8YVsoMj09KDB8KEQ9MyZhW20+PjJdKSk/bTptKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4+M10tKHc9K19b''@;'; + put 'put ''OCsobT0wfGFbMTMyKygwfGFbMTYrKDB8YVsoMz09KDB8RCk/bTptKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPj4zXSkpLCsoK19bZj4+M10tKGI9K19bbT4+M10pKSksX1trPj4zXT1wPStfW2s+PjNdLXAsMCE9cClmb3IoQT0raGEoK3ApLHA9K0RhKCtwKSxjPTB8RHQobCk7Oyl7aWYoIWMp''@;'; + put 'put ''e2M9MTticmVhayBlfV9bKGs9MHxhWzEzMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXT0oRz0rX1trPj4zXS1iKSpBK2ItKFI9K19bKEQ9ays4fDApPj4zXS13KSpwLF9bRD4+M109RypwK3crUipBLGM9MHx6dChsLGMpfX1lbHNlIGM9MH13aGlsZSgwKTtyZXR1cm4gYWU9TSwwfGN9ZnVuY3Rp''@;'; + put 'put ''b24gJDllKGwsYyl7Y3w9MDt2YXIgcCxtLGY9MDttPWFlLGFlPWFlKzE2fDAscD1tLGw9MHxMaShsfD0wLDkyNDk3KTtkb3tpZigwIT0oMHxsKSYmMCE9KDB8ZmVbbD4+MF0pKXtpZihmPStpMyhsLHApLCgwfGFbcD4+Ml0pPT0oMHxsKSl7aWYoISgoMHxlMShsKSk8PDI0Pj4yNCkpe2w9MDti''@;'; + put 'put ''cmVha31mPTB9Zm9yKDtmPjE4MDspZis9LTM2MDtmb3IoO2Y8PS0xODA7KWYrPTM2MDtfW2M+PjNdPS4wMTc0NTMyOTI1MTk5NDMyOTUqZixsPTF9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGFlPW0sMHxsfWZ1bmN0aW9uIHUyZShsLGMsZil7dmFyIHA7cmV0dXJuIGN8PTAsZnw9MCwwfHNW''@;'; + put 'put ''KGx8PTAsMD09KDB8KHA9MHxMaShsLDkyNTA3KSkpPzB8Zj9mOjE5NTA1OTpwLGMpfWZ1bmN0aW9uIHNWKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHcsTSxwPTAsbT0wLEE9MCxiPTA7aWYoTT1hZSxhZT1hZSszMnwwLHc9TSs4fDAsQT1NLDAhPSgwfChjfD0wKSkmJjAhPSgwfGZlW2M+PjBdKSl7''@;'; + put 'put ''Zm9yKHA9MTc4OTY7bT0wfGFbcCs0Pj4yXTspe2lmKCEoMHxvNChjLG0sMHxhW3ArOD4+Ml0pKSl7Yj02O2JyZWFrfXA9cCsxNnwwfTY9PSgwfGIpJiYoMHxhW3ArMTI+PjJdfHwoYVtBPj4yXT1tLCRyKDAsOTI1MTUsQSkscD0xNzg5NiksYVtmPj4yXT1BPTB8YVtwPj4yXSxhW2YrND4+Ml09''@;'; + put 'put ''YVtwKzEyPj4yXSwxOD09KDB8QSkmJmZ1bmN0aW9uIHhrKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcCxBLG09MDtwPWFlLGFlPWFlKzE2fDAsYVsobT1wKT4+Ml09QT1wKzR8MCxtPSgwfGlsKGMsMTM3Mzk1LG0pKT4wLGFbZis4Pj4yXT1tJigwfChjPTB8YVtBPj4yXSkpPi0xP2M6MWUz''@;'; + put 'put ''LF9bZisxNj4+M109K01sKGwsMHxzaShsLDAsOTI2NDgsMCksLTQsLTFlMTApLGFlPXB9KGwsYysoMHxhW3ArOD4+Ml0pfDAsZikpLDB8YVtwKzQ+PjJdfHwoKHA9MHxuZyhjLDYzKSk8PDI0Pj4yND09NjM/KGFbdz4+Ml09YywkcigwLDkyNTU3LHcpLHA9MCk6cCY9MjU1LGFbZj4+Ml09MSYo''@;'; + put 'put ''cD0wPT0oMHxwKSkscD1wPzkyNjA0OjEzNTcwOSxiPTE1KX1lbHNlIGFbZj4+Ml09MCxwPTEzNTcwOSxiPTE1O3JldHVybiAxNT09KDB8YikmJihhW2YrND4+Ml09cCksYWU9TSwwfGZ9ZnVuY3Rpb24gejcobCxjKXtsfD0wLGN8PTA7dmFyIEEsdyxmPTAscD0wO3c9YWUsYWU9YWUrMTZ8MCxB''@;'; + put 'put ''PXcrOHwwO2Rve2lmKCgwfEdvKGwpKT49Mil7aWYoZj0wfHMyZShsKSxmPSgwfHVWKGwpKStmfDAscD0wfGFbYz4+Ml0pe2lmKHA+Pj4wPjIpe3N3aXRjaCgwfHApe2Nhc2UgMzpwPTB8d1YobCwxKTticmVhaztjYXNlIDQ6cD0wfHdWKGwsMCk7YnJlYWs7Y2FzZSA2OmNhc2UgNTpwPTA7YnJl''@;'; + put 'put ''YWs7Y2FzZSAxMDpjYXNlIDk6Y2FzZSA3OmNhc2UgODpjYXNlIDE0OmNhc2UgMTM6Y2FzZSAxMTpjYXNlIDEyOk9YKGwscCkscD0wO2JyZWFrO2Nhc2UgMTU6cD0wfHdWKGwsLTEpO2JyZWFrO2RlZmF1bHQ6YVtBPj4yXT1hW2MrND4+Ml0sJHIoMCw5M2UzLEEpLHA9MH1mPXArZnwwO2JyZWFr''@;'; + put 'put ''fWlmKDB8YzJlKGwpKXtUaygpLEZ0KDB8YVs0Njg0NV0pLGFbNDY4NDVdPTA7YnJlYWt9a1gobCksMHwocD0yPT0oMHxhW2M+PjJdKT8wfEc3KCk6MHxncCgpKSYmZjJlKCksVGsoKSxGdCgwfGFbNDY4NDVdKSxhWzQ2ODQ1XT0wLGY9cCtmfDB9fWVsc2UgZj0wfXdoaWxlKDApO3JldHVybiBh''@;'; + put 'put ''ZT13LDB8Zn1mdW5jdGlvbiB1VihsKXt2YXIgbSxiLE0sYz0wLGY9MCxwPTAsQT0wLHc9MCxrPTA7TT1hZSxhZT1hZSs0OHwwLHc9TSsyNHwwLG09TSsxNnwwLGI9TSxjPTB8TGkobHw9MCwxNDA3NDIpO2U6ZG97aWYoMD09KDB8Yyl8fChrPWIrOHwwLGFbbT4+Ml09YixhW20rND4+Ml09ayxw''@;'; + put 'put ''PTB8aWwoYywxMDU1MDMsbSksMD09KDB8cCkpfHwoQT0rX1tiPj4zXSwrZW8oK0EpPDFlLTkpKWM9MDtlbHNle2lmKDEhPSgwfHApKXtpZigrZW8oKyhmPStfW2s+PjNdKSk8MWUtOSl7Yz0wO2JyZWFrfX1lbHNlIF9baz4+M109QSxmPUE7aWYoMT09ZiYxPT1BKWM9MDtlbHNlIGZvcihjPTB8''@;'; + put 'put ''RHQobCk7Oyl7aWYoIWMpe2M9MTticmVhayBlfV9bKHc9MHxhWzEzMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXT0rX1t3Pj4zXSorX1tiPj4zXSxfWyh3PXcrOHwwKT4+M109K19bdz4+M10qK19baz4+M10sYz0wfHp0KGwsYyl9fX13aGlsZSgwKTtyZXR1cm4gYWU9TSwwfGN9ZnVuY3Rpb24g''@;'; + put 'put ''YzJlKGwpe3ZhciBrLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxNPTA7Zm9yKGs9YWUsYWU9YWUrMTZ8MCx3PWssYVs0Njg1NF09MHxHbyhsfD0wKSxmdW5jdGlvbiBsdmUoKXthWzQ2ODU1XT1+fitEMCgrICsoNCsoMHxhWzQ2ODU0XSl8MCkpfSgpLGFbNDY4NjldPTB8UW4oOTYqKDB8''@;'; + put 'put ''YVs0Njg1NF0pfDApLHA9MHxEdChsKSxjPTB8YVs0Njg2OV0sVzcodyxsKSxtPStqblt3Pj4yXSxBPStqblt3KzQ+PjJdLEE9KHc9MD09KDB8ZmVbdys4Pj4wXSkpP0E6LjAxMzg4ODg4ODg4ODg4ODg4OCpBLG09dz9tOi4wMTM4ODg4ODg4ODg4ODg4ODgqbSx3PXc/MjoxLGY9MDs7KXtpZigo''@;'; + put 'put ''MHxmKT49KDB8YVs0Njg1NF0pKXtjPTA7YnJlYWt9aWYoX1tjKzg+PjNdPStfWyhNPTB8YVsxMzIrKDB8YVtwKzE2Pj4yXSk+PjJdKT4+M10sX1tjKzE2Pj4zXT0rX1tNKzg+PjNdLDB8ZDhbMyZ3XShjKzQwfDAscCxtLEEpKXtiPTQ7YnJlYWt9YVtjKzI0Pj4yXT1mLGFbYysyOD4+Ml09MSxh''@;'; + put 'put ''W2M+PjJdPXAsYVtjKzg4Pj4yXT0wLGM9Yys5NnwwLGY9ZisxfDAscD0wfHp0KGwscCl9cmV0dXJuIDQ9PSgwfGIpJiYoRnQoMHxhWzQ2ODY5XSksYVs0Njg2OV09MCxjPTEpLGFlPWssMHxjfWZ1bmN0aW9uIFRrKCl7dmFyIGw9MCxjPTA7Zm9yKGw9MHxhWzQ2ODY5XSxjPTA7ISgoMHxjKT49''@;'; + put 'put ''KDB8YVs0Njg1NF0pKTspaHZlKGwrNDB8MCksbD1sKzk2fDAsYz1jKzF8MDsoZnVuY3Rpb24gUDJlKCl7YVs0NjkxNF09MCxGdCgwfGFbNDY5MTVdKSxGdCgwfGFbNDY5MTZdKSxGdCgwfGFbNDY5MTddKSxhWzQ2OTE1XT0wLGFbNDY5MTZdPTAsYVs0NjkxN109MH0pKCksTnkoKSxGdCgwfGFb''@;'; + put 'put ''NDY4NjldKX1mdW5jdGlvbiBrWChsKXtsfD0wO3ZhciBwLGssTSxELFIsYz0wLGY9MCxtPTAsQT0wLHc9MCxiPTAsRz0wLEs9MCxwZT0wLGdlPTA7Zm9yKEQ9YWUsYWU9YWUrMzJ8MCxrPUQrMTZ8MCxNPUQscD0wfGFbNDY4NTRdLGM9Uj0wfGFbNDY4NjldLGY9MSxtPStfW1IrNDA+PjNdKyhB''@;'; + put 'put ''PStfW1IrOD4+M10pLEE9K19bUis1Nj4+M10rQSx3PStfW1IrNDg+PjNdKyhiPStfW1IrMTY+PjNdKSxiPStfW1IrNjQ+PjNdK2I7ISgoMHxmKT49KDB8cCkpOylnZT0rX1tjKzEzNj4+M10rKHBlPStfW2MrMTA0Pj4zXSksSz0rX1tjKzE0ND4+M10rKEc9K19bYysxMTI+PjNdKSxwZT0rX1tj''@;'; + put 'put ''KzE1Mj4+M10rcGUsRz0rX1tjKzE2MD4+M10rRyxjPWMrOTZ8MCxmPWYrMXwwLG09Z2U8bT9nZTptLEE9cGU+QT9wZTpBLHc9Szx3P0s6dyxiPUc+Yj9HOmI7MHwoYz0wfExpKGwsOTMxMDApKSYmMHxmZVtjPj4wXSYmKF9bMTczXT0ra3AoYykpLGdlPShwZT0rX1sxNzNdKSooYi13KSxfW2s+''@;'; + put 'put ''PjNdPW0tKHBlKj1BLW0pLF9bays4Pj4zXT13LWdlLF9bTT4+M109cGUrQSxfW00rOD4+M109Z2UrYixjVihrLE0pLGFlPUR9ZnVuY3Rpb24gRzcoKXt2YXIgZixsPTA7aWYoZj1hZSxhZT1hZSsxNnwwLDB8SWYoKSl7U1goKSxsPTA7ZG97eFgoKSxsPWwrMXwwfXdoaWxlKDAhPSgwfElmKCkp''@;'; + put 'put ''KTtsPTF9ZWxzZSBsPTA7cmV0dXJuIGFlPWYsMHxsfWZ1bmN0aW9uIGdwKCl7dmFyIGIsbD0wLGM9MCxmPTAscD0wLG09MDtpZihiPWFlLGFlPWFlKzE2fDAsYz0wfElmKCkpe2ZvcihTWCgpLE1YKDApLHpWKDAsMSksbD0wLHA9MCxmPTA7bTEoKSxtPTB8SWYoZj1mKzF8MCk7KWM9KDB8bSk8''@;'; + put 'put ''KDB8Yyk/MDpwKzF8MCxhWzQ2ODQ2XT0xLGMmJihkMmUoKSxsPWwrMXwwKSxNWCgxKSx6VigwLDEpLHA9YyxjPW07KGZ1bmN0aW9uIGZnKCl7KGZ1bmN0aW9uIFpYKCl7RnQoMHxhWzQ2ODU2XSksYVs0Njg1Nl09MH0pKCksZnVuY3Rpb24gelgoKXtaeSgxODc0NDgsNDApLEZ0KDB8YVs0Njg2''@;'; + put 'put ''NV0pLGFbNDY4NjVdPTB9KCksaEsoKSxSRCgpfSkoKSxsPTF9ZWxzZSBsPTA7cmV0dXJuIGFlPWIsMHxsfWZ1bmN0aW9uIGYyZSgpe3ZhciBmLGw9MCxjPTAscD0wO2ZvcihmPTB8YVs0Njg1NF0sbD0wfGFbNDY4NjldLGM9MDshKCgwfGMpPj0oMHxmKSk7KV9bKHA9MHxhWzEzMisoMHxhWzE2''@;'; + put 'put ''KygwfGFbbD4+Ml0pPj4yXSk+PjJdKT4+M109K19bbCs4Pj4zXSxfW3ArOD4+M109K19bbCsxNj4+M10sbD1sKzk2fDAsYz1jKzF8MH1mdW5jdGlvbiBJZihsKXt2YXIgUixwZSxHLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtmb3IocGU9YWUsYWU9YWUrNDh8MCxH''@;'; + put 'put ''PXBlKzI0fDAsUj1wZSs4fDAsZj0wfGFbNDY4NjldLHA9MHxhWzQ2ODU0XSxjPTA7Oyl7aWYoKDB8Yyk+PSgwfHApKXttPTAsYz0wO2JyZWFrfWFbZisoOTYqY3wwKSszMj4+Ml09MCxjPWMrMXwwfWU6Zm9yKDshKCgwfGMpPj0ocCstMXwwKSk7KWZvcihEPWYrOTZ8MCxjPWMrMXwwLGs9Zis4''@;'; + put 'put ''fDAsTT1mKzQwfDAsYj1mKzMyfDAsQT1ELHc9Yzs7KXtpZigoMHx3KT49KDB8cCkpe2Y9RDtjb250aW51ZSBlfXA9QSs4fDAsYVtSPj4yXT1hW2s+PjJdLGFbUis0Pj4yXT1hW2srND4+Ml0sYVtSKzg+PjJdPWFbays4Pj4yXSxhW1IrMTI+PjJdPWFbaysxMj4+Ml0sYVtHPj4yXT1hW3A+PjJd''@;'; + put 'put ''LGFbRys0Pj4yXT1hW3ArND4+Ml0sYVtHKzg+PjJdPWFbcCs4Pj4yXSxhW0crMTI+PjJdPWFbcCsxMj4+Ml0sMHxndmUoUixNLEcsQSs0MHwwKT8oYVtiPj4yXT0xLGFbQSszMj4+Ml09MSxmPW0rMXwwKTpmPW0sQT1BKzk2fDAsdz13KzF8MCxtPWYscD0wfGFbNDY4NTRdfXJldHVybiBhZT1w''@;'; + put 'put ''ZSwwfG19ZnVuY3Rpb24gU1goKXt2YXIgayxNLGw9MCxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsRD0wLFI9MDtmVigpLGs9MHxhWzQ2ODQ4XSxNPTB8YVs0Njg2OV0sbD0wfGFbNDY4NDVdO2U6Zm9yKDt3PWwsIShsPj4+MD49az4+PjApOylpZigoYz1sKzR8MCk+Pj4wPj1rPj4+MCls''@;'; + put 'put ''PWM7ZWxzZSBpZigrX1sobT0wfGFbYz4+Ml0pPj4zXT09KEE9K19bKGY9MHxhW2w+PjJdKT4+M10pKWlmKCtfW20rOD4+M109PShwPStfW2YrOD4+M10pKXtmb3IoYj1sKzh8MCxtPTI7IShiPj4+MD49az4+PjApOyl7aWYoK19bKGY9MHxhW2I+PjJdKT4+M10hPUEpe0Q9MTE7YnJlYWt9aWYo''@;'; + put 'put ''K19bZis4Pj4zXSE9cCl7RD0xMTticmVha31iPWIrNHwwLG09bSsxfDB9aWYoMTE9PSgwfEQpJiYoRD0wLCtfWzgrKGY9MHxhW2I+PjJdKT4+M109PXApKWZvcihwPSgrX1tmPj4zXS1BKS8rKDB8bSksZj0xKygoKGI+Pj4wPmM+Pj4wP2I6YykrLTErKDAtdyl8MCk+Pj4yKXwwLGw9MTs7KXtp''@;'; + put 'put ''ZigoMHxsKT09KDB8Zikpe2w9Yjtjb250aW51ZSBlfV9bKHc9MHxhW2M+PjJdKT4+M109K19bdz4+M10rcCorKDB8bCksbD1sKzF8MCxjPWMrNHwwfWZvcig7Oyl7aWYoYz4+PjA+PWI+Pj4wKXtsPWI7Y29udGludWUgZX1fWyh3PTB8YVtjPj4yXSk+PjNdPS41KigrX1tNKyg5NiooUj0wfGFb''@;'; + put 'put ''MTYrKG09MHxhW2w+PjJdKT4+Ml0pfDApKzU2Pj4zXS0rX1tNKyg5NipSfDApKzQwPj4zXSsgK19bTSsoOTYqKGY9MHxhW3crMTY+PjJdKXwwKSs1Nj4+M10tK19bTSsoOTYqZnwwKSs0MD4+M10pKyArX1ttPj4zXSxjPWMrNHwwLGw9bCs0fDB9fWVsc2UgbD1jO2Vsc2UgbD1jfWZ1bmN0aW9u''@;'; + put 'put ''IE1YKGwpe3ZhciB3LGIsayxjPTAsZj0wLHA9MCxtPTAsQT0wO2ZvcigwfChsfD0wKSYmZlYoKSxfWzIzMjcyXT1mPStfWyhiPTB8YVsodz0wfGFbNDY4NDVdKT4+Ml0pPj4zXSxrPTB8YVs0Njg1NF0sbT0xLEE9K19bYj4+M107ISgoMHxtKT49KDB8aykpOykoYz0rX1sobD0wfGFbdysobTw8''@;'; + put 'put ''Mik+PjJdKT4+M10pPGY/KF9bMjMyNzJdPWMscD0rX1tsPj4zXSk6KHA9YyxjPWYpLG09bSsxfDAsZj1jLEE9cD5BP3A6QTtfWzIzMjczXT1wPStfW2IrOD4+M10sX1syMzI3NV09K19bOCsoMHxhW3crKGsrLTE8PDIpPj4yXSk+PjNdLXAsX1syMzI3NF09QS1mfWZ1bmN0aW9uIG0xKCl7dmFy''@;'; + put 'put ''IGYsbD0wLGM9MDtmb3IobD0wfGFbNDY4NjldLGZ1bmN0aW9uIEtjKCl7dmFyIGw9MCxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wO2ZvcihtPStZNyhBPTgrKEQ9MHxhWzQ2ODY5XSl8MCwxODYwNjQp''@;'; + put 'put ''LHA9K1k3KEEsMTg2MDgwKSxmPStZNyhBLDE4NjA5NiksbD0xLGM9K1k3KEEsMTg2MTEyKSxBPUQsdz1ELGI9RCxrPUQ7TT1EKzk2fDAsISgoMHxsKT49KDB8YVs0Njg1NF0pKTspUj0oZ2U9K1k3KHBlPUQrMTA0fDAsMTg2MDY0KSk8bSxLPShPZT0rWTcocGUsMTg2MDk2KSk8ZixHPShiZT0r''@;'; + put 'put ''WTcocGUsMTg2MDgwKSk8cCxsPWwrMXwwLGM9KHBlPShMZT0rWTcocGUsMTg2MTEyKSk8Yyk/TGU6YyxmPUs/T2U6ZixwPUc/YmU6cCxtPVI/Z2U6bSxBPXBlP006QSx3PUs/TTp3LGI9Rz9NOmIsaz1SP006ayxEPU07TGMoays4fDAsK19bMjMyNThdLCtfWzIzMjU5XSksTGModys4fDAsK19b''@;'; + put 'put ''MjMyNjJdLCtfWzIzMjYzXSksTGMoYis4fDAsK19bMjMyNjBdLCtfWzIzMjYxXSksTGMoQSs4fDAsK19bMjMyNjRdLCtfWzIzMjY1XSl9KCksZj0wPT0oMHxhWzQ2ODQ2XSksYz0wOyEoKDB8Yyk+PSgwfGFbNDY4NTRdKSk7KWYmJiEoMHxhW2wrMzI+PjJdKXx8aGcobCksbD1sKzk2fDAsYz1j''@;'; + put 'put ''KzF8MH1mdW5jdGlvbiBkMmUoKXt2YXIgbCxjLGYscCxtLEEsdyxiLGs7bD1hZSxhZT1hZSszMnwwLGY9bCsxNnwwLHA9LjA1KigoYj0rX1syMzI2Nl0pLShtPStfWzIzMjY3XSkpLF9bKGM9bCk+PjNdPShBPS4wNSooKGs9K19bMjMyNjhdKS0odz0rX1syMzI2OV0pKSkrayxfW2MrOD4+M109''@;'; + put 'put ''YitwLF9bZj4+M109dy1BLF9bZis4Pj4zXT1tLXAsY1YoZixjKSxhZT1sfWZ1bmN0aW9uIGNWKGwsYyl7dmFyIGYscCxtLEE7Y3w9MCxfWzIzMjY5XT1BPStfWyhsfD0wKT4+M10sX1syMzI2OF09bT0rX1tjPj4zXSxfWzIzMjY3XT1mPStfW2wrOD4+M10sX1syMzI2Nl09cD0rX1tjKzg+PjNd''@;'; + put 'put ''LF9bMjMyNThdPUEsX1syMzI2MF09QSxfWzIzMjYyXT1tLF9bMjMyNjRdPW0sX1syMzI2NV09cCxfWzIzMjYxXT1wLF9bMjMyNjNdPWYsX1syMzI1OV09Zn1mdW5jdGlvbiBoZyhsKXt2YXIgQSx3LGIsTSxELFIsRyxjPTAsZj0wLHA9MCxtPTAsaz0wLEs9MCxwZT0wLGdlPTA7Zm9yKEc9YWUs''@;'; + put 'put ''YWU9YWUrNjR8MCxiPUcrNDh8MCx3PUcrMzJ8MCxBPUcrMTZ8MCxNPUcrOHwwLEQ9RyxSPTgrKGs9MHxhWzg4KyhsfD0wKT4+Ml0pfDAsYz0wLGY9MCxwPTAsaz0wfGFbaz4+Ml07bT0wfGFbaz4+Ml07KWdlPWsrOHwwLHBlPW0rOHwwLGFbQT4+Ml09YVtSPj4yXSxhW0ErND4+Ml09YVtSKzQ+''@;'; + put 'put ''PjJdLGFbQSs4Pj4yXT1hW1IrOD4+Ml0sYVtBKzEyPj4yXT1hW1IrMTI+PjJdLGFbdz4+Ml09YVtnZT4+Ml0sYVt3KzQ+PjJdPWFbZ2UrND4+Ml0sYVt3Kzg+PjJdPWFbZ2UrOD4+Ml0sYVt3KzEyPj4yXT1hW2dlKzEyPj4yXSxhW2I+PjJdPWFbcGU+PjJdLGFbYis0Pj4yXT1hW3BlKzQ+PjJd''@;'; + put 'put ''LGFbYis4Pj4yXT1hW3BlKzg+PjJdLGFbYisxMj4+Ml09YVtwZSsxMj4+Ml0sSz0rcDJlKEEsdyxiKSxhW0E+PjJdPWFbUj4+Ml0sYVtBKzQ+PjJdPWFbUis0Pj4yXSxhW0ErOD4+Ml09YVtSKzg+PjJdLGFbQSsxMj4+Ml09YVtSKzEyPj4yXSxhW3c+PjJdPWFbZ2U+PjJdLGFbdys0Pj4yXT1h''@;'; + put 'put ''W2dlKzQ+PjJdLGFbdys4Pj4yXT1hW2dlKzg+PjJdLGFbdysxMj4+Ml09YVtnZSsxMj4+Ml0sYVtiPj4yXT1hW3BlPj4yXSxhW2IrND4+Ml09YVtwZSs0Pj4yXSxhW2IrOD4+Ml09YVtwZSs4Pj4yXSxhW2IrMTI+PjJdPWFbcGUrMTI+PjJdLHE5ZShBLHcsYixNLEQpLGM9K19bRD4+M10qSytj''@;'; + put 'put ''LGY9K19bTT4+M10qSytmLHA9SytwLGs9bTtfW2wrOD4+M109Zi9wLF9bbCsxNj4+M109Yy9wLGFlPUd9ZnVuY3Rpb24gcDJlKGwsYyxmKXt2YXIgcCxtLEE7cmV0dXJuLjUqK2VvKCsoKChBPStfWzgrKGZ8PTApPj4zXSktKG09K19bOCsobHw9MCk+PjNdKSkqK19bKGN8PTApPj4zXSsoKHA9''@;'; + put 'put ''K19bYys4Pj4zXSktQSkqK19bbD4+M10rICtfW2Y+PjNdKihtLXApKSl9ZnVuY3Rpb24gcTllKGwsYyxmLHAsbSl7bXw9MCxfWyhwfD0wKT4+M109LjMzMzMzMzMzMzMzMzMzMzMqKCtfWyhjfD0wKT4+M10rICtfWyhsfD0wKT4+M10rICtfWyhmfD0wKT4+M10pLF9bbT4+M109LjMzMzMzMzMz''@;'; + put 'put ''MzMzMzMzMzMqKCtfW2MrOD4+M10rICtfW2wrOD4+M10rICtfW2YrOD4+M10pfWZ1bmN0aW9uIGZWKCl7dmFyIHAsbD0wLGM9MCxmPTA7Zm9yKChsPTB8YVs0Njg0NV0pfHwobD0wfFFuKGFbNDY4NTRdPDwyKSxhWzQ2ODQ1XT1sLGFbNDY4NDhdPWwrKGFbNDY4NTRdPDwyKSksZj0wfGFbNDY4''@;'; + put 'put ''NjldLE55KCkscD0wfGFbNDY4NTRdLGM9MDshKCgwfGMpPj0oMHxwKSk7KWFbbD4+Ml09Zis4LGFbZis4OD4+Ml09MCxhW2YrMjg+PjJdPTEsZj1mKzk2fDAsbD1sKzR8MCxjPWMrMXwwO3gxKDB8YVs0Njg0NV0scCw0LDY5KSxhWzQ2ODQ3XT1hWzQ2ODQ1XX1mdW5jdGlvbiB4WCgpe3ZhciBm''@;'; + put 'put ''LGw9MCxjPTAscD0wO2ZvcihmPTB8YVs0Njg1NF0sbD0wLGM9MHxhWzQ2ODY5XTshKCgwfGwpPj0oMHxmKSk7KV9bKHA9Yys4fDApPj4zXT0xLjA1KitfW3A+PjNdLF9bKHA9YysxNnwwKT4+M109MS4wNSorX1twPj4zXSxsPWwrMXwwLGM9Yys5NnwwfWZ1bmN0aW9uIFc3KGwsYyl7bHw9MDt2''@;'; + put 'put ''YXIgZixtLHcscD0wO3c9YWUsYWU9YWUrNDh8MCxtPXcrMjR8MCwwIT0oMHwoZj0wfExpKGN8PTAsOTMxMTIpKSkmJjAhPSgwfElrKGYsbSwxLDApKXx8KHA9Myk7ZG97aWYoMz09KDB8cCkpe2lmKDB8KGM9MHxMaShjLDkzMTE2KSkmJjB8SWsoYyxtLC44MDAwMDAwMTE5MjA5MjksNCkpYnJl''@;'; + put 'put ''YWs7am5bbSs0Pj4yXT00LGpuW20+PjJdPTQsZmVbbSs4Pj4wXT0xfX13aGlsZSgwKTthW2w+PjJdPWFbbT4+Ml0sYVtsKzQ+PjJdPWFbbSs0Pj4yXSxhW2wrOD4+Ml09YVttKzg+PjJdLGFlPXd9ZnVuY3Rpb24gSWsobCxjLGYscCl7bHw9MCxjfD0wLGY9K2YscD0rcDt2YXIgdyxiLGssRCxS''@;'; + put 'put ''LG09MCxBPTAsTT0wLEc9MDtmb3IoRD1hZSxhZT1hZSsxNnwwLGs9RCx3PUQrMTJ8MCxiPUQrOHwwO0E9bCsxfDAsMHwkYygobT0wfGZlW2w+PjBdKTw8MjQ+PjI0KTspbD1BO3N3aXRjaChSPW08PDI0Pj4yND09NDMsZmVbKG09Yys4fDApPj4wXT0xJlIsYVtrPj4yXT13LGFbays0Pj4yXT1i''@;'; + put 'put ''LDB8aWwoUj9BOmwsOTMxNTQsaykpe2Nhc2UgMDpsPTA7YnJlYWs7Y2FzZSAxOmFbYj4+Ml09YVt3Pj4yXSxNPTU7YnJlYWs7ZGVmYXVsdDpNPTV9aWYoNT09KDB8TSkpe2Rve2lmKDB8ZmVbbT4+MF0pe2lmKGY+MSl7am5bYz4+Ml09KEc9K2puW3c+PjJdL2YpPnA/cDpHLGY9KGY9K2puW2I+''@;'; + put 'put ''PjJdL2YpPnA/cDpmO2JyZWFrfWlmKGY8MSl7am5bYz4+Ml09KEc9K2puW3c+PjJdL2YpPHA/cDpHLGY9KGY9K2puW2I+PjJdL2YpPHA/cDpmO2JyZWFrfWFbYz4+Ml09YVt3Pj4yXSxmPStqbltiPj4yXTticmVha31qbltjPj4yXT0ram5bdz4+Ml0vZisxLGY9K2puW2I+PjJdL2YrMX13aGls''@;'; + put 'put ''ZSgwKTtqbltjKzQ+PjJdPWYsbD0xfXJldHVybiBhZT1ELDB8bH1mdW5jdGlvbiBoVihsLGMpe3ZhciBmLHA7cmV0dXJuIGN8PTAscD1hZSxhZT1hZSszMnwwLGY9cCwoMHxHbyhsfD0wKSk8Mj9sPTA6KHNWKGwsYyxmKSxsPTB8ejcobCxmKSksYWU9cCwwfGx9ZnVuY3Rpb24gRHkobCl7cmV0''@;'; + put 'put ''dXJuIDB8aFYobHw9MCwwfExpKGwsOTI1MDcpKX1mdW5jdGlvbiByOChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgUixHLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2ZvcihHPWFlLGFlPWFlKzE2fDAsUj1HLEE9MDshKCgwfEEpPj0oMHxmKSk7KWFbcCsoQTw8Mik+''@;'; + put 'put ''PjJdPS0xLEE9QSsxfDA7YVtwKyhsPDwyKT4+Ml09MCxmdW5jdGlvbiBJWChsLGMpe2FbYVsobHw9MCk+PjJdPj4yXT1jfD0wLGFbbCsxMj4+Ml09MCxhW2wrOD4+Ml09MX0obSxsKTtlOmRve2lmKDB8YVtjKzg+PjJdKXtBPTIxNDc0ODM2NDc7dDpmb3IoOzspe2lmKCEoKDB8ZFYobSxSKSk8''@;'; + put 'put ''PDI0Pj4yNCkpYnJlYWsgZTtmb3IoQT0wfGFbcCsoKGs9MHxhW1I+PjJdKTw8Mik+PjJdLHc9YysoMjAqa3wwKXwwLGI9YysoMjAqa3wwKSs0fDAsaz1jKygyMCprfDApKzh8MCxsPTE7Oyl7aWYoKDB8bCk+PSgwfGFbdz4+Ml0pKWNvbnRpbnVlIHQ7KDB8YVsoRD1wKygoTT0wfGFbKDB8YVti''@;'; + put 'put ''Pj4yXSkrKGw8PDIpPj4yXSk8PDIpfDApPj4yXSk8MCYmKGFbRD4+Ml09QSt+fitqblsoMHxhW2s+PjJdKSsobDw8Mik+PjJdLHBWKG0sTSkpLGw9bCsxfDB9fX1lbHNle0E9MjE0NzQ4MzY0Nzt0OmZvcig7Oyl7aWYoISgoMHxkVihtLFIpKTw8MjQ+PjI0KSlicmVhayBlO2ZvcihBPTB8YVtw''@;'; + put 'put ''KygoYj0wfGFbUj4+Ml0pPDwyKT4+Ml0sdz1jKygyMCpifDApfDAsYj1jKygyMCpifDApKzR8MCxrPUErMXwwLGw9MTs7KXtpZigoMHxsKT49KDB8YVt3Pj4yXSkpY29udGludWUgdDsoMHxhWyhEPXArKChNPTB8YVsoMHxhW2I+PjJdKSsobDw8Mik+PjJdKTw8Mil8MCk+PjJdKTwwJiYoYVtE''@;'; + put 'put ''Pj4yXT1rLHBWKG0sTSkpLGw9bCsxfDB9fX19d2hpbGUoMCk7Zm9yKGw9QSsxMHwwLEE9MDshKCgwfEEpPj0oMHxmKSk7KSgwfGFbKHc9cCsoQTw8Mil8MCk+PjJdKTwwJiYoYVt3Pj4yXT1sKSxBPUErMXwwO2FlPUd9ZnVuY3Rpb24gZFYobCxjKXt2YXIgZixwO3JldHVybiBjfD0wLCgwfChw''@;'; + put 'put ''PTB8YVsoZj0xMisobHw9MCl8MCk+PjJdKSk8KDB8YVtsKzg+PjJdKT8obD0wfGFbbD4+Ml0sYVtmPj4yXT1wKzEsYVtjPj4yXT1hW2wrKHA8PDIpPj4yXSxsPTEpOmw9MCwwfGx9ZnVuY3Rpb24gcFYobCxjKXt2YXIgZixwO3JldHVybiBjfD0wLCgwfChwPTB8YVsoZj04KyhsfD0wKXwwKT4+''@;'; + put 'put ''Ml0pKTwoMHxhW2wrND4+Ml0pPyhsPTB8YVtsPj4yXSxhW2Y+PjJdPXArMSxhW2wrKHA8PDIpPj4yXT1jLGw9MSk6bD0wLDB8bH1mdW5jdGlvbiBMeShsLGMpe2FbKGx8PTApPj4yXT0wfFFuKChjfD0wKTw8MiksYVtsKzQ+PjJdPWMsYVtsKzg+PjJdPTAsYVtsKzEyPj4yXT0wfWZ1bmN0aW9u''@;'; + put 'put ''IHhEKGwpe0Z0KDB8YVsobHw9MCk+PjJdKX1mdW5jdGlvbiBnVihsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MDtmb3IoQT0wOyEoKDB8QSk+PSgwfGwpKTspe2Zvcih3PWMrKEE8PDIpfDAsbT0wLHA9MDsoMHxtKSE9KDB8bCk7KSgwfEEpIT0oMHxtKSYmKHA9K19b''@;'; + put 'put ''KDB8YVt3Pj4yXSkrKG08PDMpPj4zXStwKSxtPW0rMXwwO19bKDB8YVt3Pj4yXSkrKEE8PDMpPj4zXT0tcCxBPUErMXwwfXJldHVybiAwfGZ1bmN0aW9uIG5LKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MDtlOmRve2lmKDB8SHgobCxmKSl7Zm9yKG09MHx2''@;'; + put 'put ''cihmPDwzKSxsPTA7KDB8bCk8KDB8Zik7KXtmb3IocD0wOygwfHApIT0oMHxmKTspX1ttKyhwPDwzKT4+M109MCxwPXArMXwwO19bbSsobDw8Myk+PjNdPTEsZlAoMHxhW2MrKGw8PDIpPj4yXSxtLGYpLGw9bCsxfDB9Zm9yKEZ0KG0pLG09MDs7KXtpZigoMHxtKT49KDB8Zikpe2w9MTticmVh''@;'; + put 'put ''ayBlfWZvcihwPWMrKG08PDIpfDAsbD0wOygwfGwpIT0oMHxtKTspdz0rX1soYj0oMHxhW3A+PjJdKSsobDw8Myl8MCk+PjNdLF9bYj4+M109K19bKEE9KDB8YVtjKyhsPDwyKT4+Ml0pKyhtPDwzKXwwKT4+M10sX1tBPj4zXT13LGw9bCsxfDA7bT1tKzF8MH19ZWxzZSBsPTB9d2hpbGUoMCk7''@;'; + put 'put ''cmV0dXJuIDB8bH0oYyxmLGwrLTF8MCl9ZnVuY3Rpb24gdlYobCxjLGYscCxtLEEsdyl7bHw9MCxjfD0wLGZ8PTAsbT0rbSxBfD0wLHd8PTA7dmFyIE0sRCxSLEcscGUsZ2UsT2UsYj0wLGs9MCxLPTAsYmU9MDtmb3IoT2U9YWUsYWU9YWUrMTZ8MCxNPU9lLHBlPTB8UW4oSz0ocHw9MCk8PDMp''@;'; + put 'put ''LGdlPTB8UW4oSyksRD0wfFFuKEspLFI9MHxRbihLKSxHPTB8UW4oSyksUlYocCxmLEs9MHxRbihLKSksdzw8MjQ+PjI0JiYoYTgocCxLKSxhOChwLGMpKSxxMyhsLHAsYyxSKSxaRChwLEssUixwZSksUlYocCxwZSxnZSksdz1BKy0xfDAsZj0wLGI9K3ZwKHAscGUscGUpOzspe2lmKCgwfGYp''@;'; + put 'put ''Pj0oMHxBKSl7Zj0wO2JyZWFrfWlmKCEoK2VkKHAscGUpPm0pKXtmPTA7YnJlYWt9aWYocTMobCxwLGdlLEQpLDA9PShrPSt2cChwLGdlLEQpKSl7Zj0wO2JyZWFrfWlmKFZ5KHAsZ2Usaz1iL2ssRyksSGsocCxjLEcsYyksKDB8Zik8KDB8dykpe2lmKFZ5KHAsRCxrLEQpLFpEKHAscGUsRCxw''@;'; + put 'put ''ZSksaz0rdnAocCxwZSxwZSksMD09Yil7YmU9OTticmVha31WeShwLGdlLGsvYixnZSksSGsocCxwZSxnZSxnZSksYj1rfWY9ZisxfDB9cmV0dXJuIDk9PSgwfGJlKSYmKCRyKDEsOTMyNDIsTSksZj0xKSxGdChwZSksRnQoZ2UpLEZ0KEQpLEZ0KFIpLEZ0KEcpLEZ0KEspLGFlPU9lLDB8Zn1m''@;'; + put 'put ''dW5jdGlvbiBEayhsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAsbT0rbSxBfD0wO3ZhciBrLE0sUixHLEssZ2Usdz0wLGI9MCxEPTAscGU9MDtmb3IoZ2U9YWUsYWU9YWUrMTZ8MCxNPWdlLFI9MHx2cihEPShwfD0wKTw8MiksRz0wfHZyKEQpLEs9MHx2cihEKSxEPTB8dnIoRCksbDgocCxj''@;'; + put 'put ''KSxsOChwLGYpLHRkKGwscCxjLEQpLGw4KHAsRCksZnVuY3Rpb24gRDJlKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MDtmb3IobT0wOyEoKDB8bSk+PSgwfGwpKTspam5bcCsobTw8Mik+PjJdPStqbltjKyhtPDwyKT4+Ml0tK2puW2YrKG08PDIpPj4yXSxtPW0rMXwwfShw''@;'; + put 'put ''LGYsRCxSKSxsSyhwLFIsRyksaz1BKy0xfDAsZj0wLHc9K1g3KHAsUixSKTs7KXtpZigoMHxmKT49KDB8QSkpe2Y9MDticmVha31pZighKCtMMmUocCxSKT5tKSl7Zj0wO2JyZWFrfWlmKGw4KHAsRyksbDgocCxjKSxsOChwLFIpLHRkKGwscCxHLEspLGw4KHAsSyksMD09KGI9K1g3KHAsRyxL''@;'; + put 'put ''KSkpe2Y9MDticmVha31pZihHRChwLGMsYj13L2IsRyksKDB8Zik8KDB8aykpe2lmKEdEKHAsUiwtYixLKSxiPStYNyhwLFIsUiksMD09dyl7cGU9NzticmVha31hSyhwLEcsYi93LEcpLHpEKHAsUixHLEcpLHc9Yn1mPWYrMXwwfXJldHVybiA3PT0oMHxwZSkmJigkcigxLDkzMjQyLE0pLGY9''@;'; + put 'put ''MSksRnQoUiksRnQoRyksRnQoSyksRnQoRCksYWU9Z2UsMHxmfWZ1bmN0aW9uIE9YKGwsYyl7Y3w9MDt2YXIgbSx3LGssTSxmPTAscD0wLEE9MCxiPTA7Zm9yKE09YWUsYWU9YWUrNDh8MCxtPU0rMjR8MCxBPU0rMTJ8MCxmPU0saz0wfFFuKDQ4Kih3PTB8R28obHw9MCkpfDApLFc3KGYsbCks''@;'; + put 'put ''YVtBPj4yXT1hW2Y+PjJdLGFbQSs0Pj4yXT1hW2YrND4+Ml0sYVtBKzg+PjJdPWFbZis4Pj4yXSxmPTB8RHQobCkscD1rO2Y7KWFbbT4+Ml09YVtBPj4yXSxhW20rND4+Ml09YVtBKzQ+PjJdLGFbbSs4Pj4yXT1hW0ErOD4+Ml0sUlgoZixwLG0pLGY9MHx6dChsLGYpLHA9cCs0OHwwO2U6ZG97''@;'; + put 'put ''aWYoMHxBVihrLHcpKXtzd2l0Y2goMHxjKXtjYXNlIDk6aTgobCxrLHcsNzAsMSksbzgobCxrLHcsNzEsMSksZj0wLHA9azticmVhaztjYXNlIDEwOm84KGwsayx3LDcxLDEpLGk4KGwsayx3LDcwLDEpLGY9MCxwPWs7YnJlYWs7Y2FzZSA3Omk4KGwsayx3LDcyLDEpLG84KGwsayx3LDcxLDEp''@;'; + put 'put ''LGI9OTticmVhaztjYXNlIDg6Yj05O2JyZWFrO2Nhc2UgMTM6Yj0xMDticmVhaztjYXNlIDE0Om84KGwsayx3LDcxLDApLGk4KGwsayx3LDcwLDApLGY9MCxwPWs7YnJlYWs7Y2FzZSAxMjpvOChsLGssdyw3MywwKSxpOChsLGssdyw3MCwwKSxmPTAscD1rO2JyZWFrO2RlZmF1bHQ6aTgobCxr''@;'; + put 'put ''LHcsNzIsMCksbzgobCxrLHcsNzEsMCksZj0wLHA9a31mb3IoOT09KDB8YikmJihvOChsLGssdyw3MywxKSxpOChsLGssdyw3MCwxKSxiPTEwKSwxMD09KDB8YikmJihpOChsLGssdyw3MCwwKSxvOChsLGssdyw3MSwwKSxmPTAscD1rKTs7KXtpZigoMHxmKT49KDB8dykpe2Y9MTticmVhayBl''@;'; + put 'put ''fUE9MHxhW3ArMTY+PjJdLF9bKGI9MHxhWzEzMisoMHxhWzE2KygwfGFbcCsyMD4+Ml0pPj4yXSk+PjJdKT4+M109LjAwMTM4ODg4ODg4ODg4ODg4ODcqKygwfGFbcCsxMj4+Ml0pLF9bYis4Pj4zXT0uMDAxMzg4ODg4ODg4ODg4ODg4NyorKDB8QSksZj1mKzF8MCxwPXArNDh8MH19ZWxzZSBm''@;'; + put 'put ''PTB9d2hpbGUoMCk7cmV0dXJuIEZ0KGspLGFlPU0sMHxmfWZ1bmN0aW9uIFJYKGwsYyxmKXt2YXIgQSxwPTAsbT0wLHc9MCxiPTAsaz0wO0E9fn4oKGI9NzIwKitfWyh3PTB8YVsxMzIrKHA9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSk+PjNdKSsoYj49MD8uNTotLjUpKSx3PX5+KChiPTcyMCor''@;'; + put 'put ''X1t3Kzg+PjNdKSsoYj49MD8uNTotLjUpKSwwfGZlWzgrKGZ8PTApPj4wXT8obT1+figxMCooK2puW2Y+PjJdKyArKDB8fn4oKGI9MzYqK19bcCszMj4+M10pKyhiPj0wPy41Oi0uNSkpKSkpLHA9fn4oMTAqKCtqbltmKzQ+PjJdKyArKDB8fn4oKGs9MzYqK19bcCs0MD4+M10pKyhrPj0wPy41''@;'; + put 'put ''Oi0uNSkpKSkpKToobT1+figoaz03MiorX1twKzMyPj4zXSooNSoram5bZj4+Ml0pKSsoaz49MD8uNTotLjUpKSxwPX5+KChiPTcyKitfW3ArNDA+PjNdKig1KitqbltmKzQ+PjJdKSkrKGI+PTA/LjU6LS41KSkpLGFbMTIrKGN8PTApPj4yXT1BLGFbYysxNj4+Ml09dyxhW2MrMjA+PjJdPWws''@;'; + put 'put ''YVtjKzMyPj4yXT1BLW0sYVtjKzM2Pj4yXT13LXAsYVtjKzQwPj4yXT1tK0EsYVtjKzQ0Pj4yXT1wK3d9ZnVuY3Rpb24gQVYobCxjKXtsfD0wO3ZhciBNLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtNPShjfD0wKS0xfDAsZj0wO2U6Zm9yKDs7KXtpZigoMHxmKT49KDB8TSkpe2w9MDti''@;'; + put 'put ''cmVha31mb3IoQT1sKzMyfDAsdz1sKzQwfDAsYj1sKzM2fDAsbT1sKzQ0fDAsbD1rPWwrNDh8MCxwPWY9ZisxfDA7Oyl7aWYoKDB8cCk+PSgwfGMpKXtsPWs7Y29udGludWUgZX1pZigoMHxhW0E+PjJdKTw9KDB8YVtsKzQwPj4yXSkmJigwfGFbbCszMj4+Ml0pPD0oMHxhW3c+PjJdKSYmKDB8''@;'; + put 'put ''YVtiPj4yXSk8PSgwfGFbbCs0ND4+Ml0pJiYoMHxhW2wrMzY+PjJdKTw9KDB8YVttPj4yXSkpe2w9MTticmVhayBlfWw9bCs0OHwwLHA9cCsxfDB9fXJldHVybiAwfGx9ZnVuY3Rpb24gaTgobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGIsQT0wLHc9MDtmb3IoYj0w''@;'; + put 'put ''fGlzKDE4MTY4LDB8YVs0NTg0XSksQT1jLHc9MDshKCgwfHcpPj0oMHxmKSk7KWFbQSs4Pj4yXT1hW0ErMTI+PjJdLG1pWzYzJmFbYj4+Ml1dKGIsQSwxKSxBPUErNDh8MCx3PXcrMXwwO2ZvcihrNyh3PW0/MHxnMmUoYixwLDc0KTowfEVzKGwsYixwLDc0KSwyLDIxNDc0ODM2NDcpLEE9MDsh''@;'; + put 'put ''KCgwfEEpPj0oMHxmKSk7KXA9KGw9MHxhWzIzMisoMHxhWzE2KygwfGFbYysyND4+Ml0pPj4yXSk+PjJdKS0oMHxhWyhtPWMrMTJ8MCk+PjJdKXwwLGFbbT4+Ml09bCxhWyhtPWMrMzJ8MCk+PjJdPSgwfGFbbT4+Ml0pK3AsYVsobT1jKzQwfDApPj4yXT0oMHxhW20+PjJdKStwLGM9Yys0OHww''@;'; + put 'put ''LEE9QSsxfDA7ZGcodyksTmwoYil9ZnVuY3Rpb24gbzgobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGIsQT0wLHc9MDtmb3IoYj0wfGlzKDE4MTY4LDB8YVs0NTg0XSksQT1jLHc9MDshKCgwfHcpPj0oMHxmKSk7KWFbQSs4Pj4yXT1hW0ErMTY+PjJdLG1pWzYzJmFb''@;'; + put 'put ''Yj4+Ml1dKGIsQSwxKSxBPUErNDh8MCx3PXcrMXwwO2ZvcihrNyh3PW0/MHxnMmUoYixwLDc1KTowfEVzKGwsYixwLDc1KSwyLDIxNDc0ODM2NDcpLEE9MDshKCgwfEEpPj0oMHxmKSk7KXA9KGw9MHxhWzIzMisoMHxhWzE2KygwfGFbYysyND4+Ml0pPj4yXSk+PjJdKS0oMHxhWyhtPWMrMTZ8''@;'; + put 'put ''MCk+PjJdKXwwLGFbbT4+Ml09bCxhWyhtPWMrMzZ8MCk+PjJdPSgwfGFbbT4+Ml0pK3AsYVsobT1jKzQ0fDApPj4yXT0oMHxhW20+PjJdKStwLGM9Yys0OHwwLEE9QSsxfDA7ZGcodyksTmwoYil9ZnVuY3Rpb24gSUQobCxjKXtyZXR1cm4gMHwoKDB8YVsxMisobHw9MCk+PjJdKS0oMHxhW2wr''@;'; + put 'put ''ND4+Ml0pKygwfGFbMTIrKGN8PTApPj4yXSktKDB8YVtjKzQ+PjJdKXwwKS8yfWZ1bmN0aW9uIFBYKGwsYyl7cmV0dXJuIDB8KCgwfGFbOCsobHw9MCk+PjJdKS0oMHxhW2w+PjJdKSsoMHxhWzgrKGN8PTApPj4yXSktKDB8YVtjPj4yXSl8MCkvMn1mdW5jdGlvbiBnMmUobCxjLGYpe2x8PTAs''@;'; + put 'put ''Y3w9MCxmfD0wO3ZhciBMZSxSZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTA7Zm9yKFJlPWFlLGFlPWFlKzE2fDAsZmVbKE9lPVJlKT4+MF09MHxmZVsxODU4OF0sZmVbT2UrMT4+MF09MHxmZVsxODU4OV0sZmVbT2UrMj4+''@;'; + put 'put ''MF09MHxmZVsxODU5MF0sZmVbT2UrMz4+MF09MHxmZVsxODU5MV0saDAoTGU9MHxvYyg5MzUxNSxPZSwwKSwxMzc0ODMsMjgwLDEpLHA9MHxzMChsKSxtPS0yMTQ3NDgzNjQ3LGJlPTA7cDspZ2U9YmUrKCgwfG0pIT0oMHwocGU9MHxhW3ArOD4+Ml0pKSYxKXwwLHA9MHxhW3A+PjJdLG09cGUs''@;'; + put 'put ''YmU9Z2U7Zm9yKHBlPUxlKzE2fDAsZ2U9KGJlPDwzKS00fDAsTT0wLHc9MCxwPTAsbT0wLGs9MCxLPTB8czAobCksQT0tMjE0NzQ4MzY0NztLOykoMHxBKSE9KDB8KEc9MHxhW0srOD4+Ml0pKT8oaDAoUj0wfEdyKExlLDB8dGkoMHxhW0srMjA+PjJdKSwxKSwxMzc0NDcsMzA0LDEpLGFbMTEy''@;'; + put 'put ''KyhwPTB8YVsoRD1SKzE2fDApPj4yXSk+PjJdPUssbT8oYVsxNjQrKDB8YVtNKzE2Pj4yXSk+PjJdPVIsTT1tKTooYVsxOTIrKDB8YVtwZT4+Ml0pPj4yXT1SLE09UiksYVtwKzE3Nj4+Ml09MCxBPTB8dnIoKGI9dysxfDApPDwyKSxhWzE3MisoMHxhW0Q+PjJdKT4+Ml09QSxrPyhhWzE4NCso''@;'; + put 'put ''MHxhWyhBPWsrMTZ8MCk+PjJdKT4+Ml09MCx3PTB8dnIoKDB8ayk9PSgwfE0pP2dlOmJlLXc8PDIpLGFbMTgwKygwfGFbQT4+Ml0pPj4yXT13LGgwKHc9MHxLYShMZSxrLFIsMCwxKSwxMzc0NjAsMTc2LDEpLHJ0WzE3MCsocD0wfGFbdysxNj4+Ml0pPj4xXT0xMCxhW3ArMTU2Pj4yXT0xLHA9''@;'; + put 'put ''KG09MHxhWzE4MCsocD0wfGFbQT4+Ml0pPj4yXSk/MHxWMChtLDgrKGFbcCsxODQ+PjJdPDwyKXwwKTowfFFuKDgrKGFbcCsxODQ+PjJdPDwyKXwwKSxhWzE4MCsoaz0wfGFbQT4+Ml0pPj4yXT1wLGFbKGs9aysxODR8MCk+PjJdPTErKG09MHxhW2s+PjJdKSxhW3ArKG08PDIpPj4yXT13LGFb''@;'; + put 'put ''KDB8YVsxODArKHA9MHxhW0E+PjJdKT4+Ml0pKyhhW3ArMTg0Pj4yXTw8Mik+PjJdPTAscD0obT0wfGFbMTcyKyhwPTB8YVtEPj4yXSk+PjJdKT8wfFYwKG0sOCsoYVtwKzE3Nj4+Ml08PDIpfDApOjB8UW4oOCsoYVtwKzE3Nj4+Ml08PDIpfDApLGFbMTcyKyhtPTB8YVtEPj4yXSk+PjJdPXAs''@;'; + put 'put ''YVsobT1tKzE3NnwwKT4+Ml09MSsoaz0wfGFbbT4+Ml0pLGFbcCsoazw8Mik+PjJdPXcsYVsoMHxhWzE3Misodz0wfGFbRD4+Ml0pPj4yXSkrKGFbdysxNzY+PjJdPDwyKT4+Ml09MCx3PWIsYj1SLGs9UixwPVIsbT1NLEE9Ryk6KHc9YixiPVIsaz1SLHA9UixtPU0sQT1HKSk6KGI9cCxwPU0p''@;'; + put 'put ''LGFbSysyND4+Ml09YixNPXAscD1iLEs9MHxhW0s+PjJdO2ZvcihhWzE4NCsoMHxhWyhrPWsrMTZ8MCk+PjJdKT4+Ml09MCxwPTB8dnIoNCksYVsxODArKDB8YVtrPj4yXSk+PjJdPXAsZmVbT2U+PjBdPTB8ZmVbMTg1ODhdLGZlW09lKzE+PjBdPTB8ZmVbMTg1ODldLGZlW09lKzI+PjBdPTB8''@;'; + put 'put ''ZmVbMTg1OTBdLGZlW09lKzM+PjBdPTB8ZmVbMTg1OTFdLGs9MHxvYyg5MzU2MixPZSwwKSxwPTB8czAobCk7cDspaDAoT2U9MHxHcihrLDB8dGkoMHxhW3ArMjA+PjJdKSwxKSwxMzc0NDcsMzA0LDEpLGFbcCsyOD4+Ml09T2UsYVsxMTIrKDB8YVtPZSsxNj4+Ml0pPj4yXT1wLHA9MHxhW3A+''@;'; + put 'put ''PjJdO3A9MCxiPTB8czAobCksbT0tMjE0NzQ4MzY0NztlOmZvcig7Yjspe3c9MHxhW2IrOD4+Ml07dDpkb3tpZigoMHxtKT09KDB8dykpdz1tO2Vsc2UgZm9yKHA9Yjs7KXtpZighKHA9MHxhW3A+PjJdKSlicmVhayBlO2lmKCgwfGFbcCs4Pj4yXSkhPSgwfHcpKWJyZWFrIHR9fXdoaWxlKDAp''@;'; + put 'put ''O2ZvcihBPWIrMjh8MCxtPXA7bTspMHxCaVsxMjcmY10oYixtKSYmS2EoaywwfGFbQT4+Ml0sMHxhW20rMjg+PjJdLDAsMSksbT0wfGFbbT4+Ml07Yj0wfGFbYj4+Ml0sbT13fXJldHVybiBmdW5jdGlvbiB5VihsLGMsZil7Y3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxN''@;'; + put 'put ''PTAsRD0wLFI9MCxHPTAsSz0wLHBlPTA7Zm9yKGs9MHxEdChsfD0wKTtrOyl7Zm9yKEQ9MHxhWzI0KyhSPTB8YVsxMTIrKDB8YVtrKzE2Pj4yXSk+PjJdKT4+Ml0sUj1SKzMyfDAsRz1EKzE2fDAsTT0wfHcwKGwsayk7TTspSz0wfEJpWzEyNyZmXShSLDMyKyhBPTB8YVsxMTIrKDB8YVsxNiso''@;'; + put 'put ''MHxhWygyPT0oMyZhW00+PjJdfDApP006TSstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSl8MCksaDAodz0wfEthKGMsRCxBPTB8YVtBKzI0Pj4yXSwwLDEpLDEzNzQ2MCwxNzYsMSksYVsxNTYrKHA9MHxhWyhiPXcrMTZ8MCk+PjJdKT4+Ml09MSwoMHxLKT4oNjU1MzUmKG09MHxydFtwKzE3MD4+''@;'; + put 'put ''MV0pfDApJiYobTw8MTY+PjE2fHwocD0obT0wfGFbMTgwKyhwPTB8YVtHPj4yXSk+PjJdKT8wfFYwKG0sOCsoYVtwKzE4ND4+Ml08PDIpfDApOjB8UW4oOCsoYVtwKzE4ND4+Ml08PDIpfDApLGFbMTgwKyhwZT0wfGFbRz4+Ml0pPj4yXT1wLGFbKHBlPXBlKzE4NHwwKT4+Ml09MSsobT0wfGFb''@;'; + put 'put ''cGU+PjJdKSxhW3ArKG08PDIpPj4yXT13LGFbKDB8YVsxODArKHA9MHxhW0c+PjJdKT4+Ml0pKyhhW3ArMTg0Pj4yXTw8Mik+PjJdPTAscD0obT0wfGFbMTcyKyhwPTB8YVsoQT1BKzE2fDApPj4yXSk+PjJdKT8wfFYwKG0sOCsoYVtwKzE3Nj4+Ml08PDIpfDApOjB8UW4oOCsoYVtwKzE3Nj4+''@;'; + put 'put ''Ml08PDIpfDApLGFbMTcyKyhtPTB8YVtBPj4yXSk+PjJdPXAsYVsobT1tKzE3NnwwKT4+Ml09MSsocGU9MHxhW20+PjJdKSxhW3ArKHBlPDwyKT4+Ml09dyxhWygwfGFbMTcyKyhwPTB8YVtBPj4yXSk+PjJdKSsoYVtwKzE3Nj4+Ml08PDIpPj4yXT0wLHA9MHxhW2I+PjJdKSxydFtwKzE3MD4+''@;'; + put 'put ''MV09SyksTT0wfFMwKGwsTSk7az0wfHp0KGwsayl9fShrLExlLGYpLEMxKGspLGFlPVJlLDB8TGV9ZnVuY3Rpb24gRXMobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgcGUsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLGdlPTA7Zm9yKHBlPWFlLGFlPWFl''@;'; + put 'put ''KzE2fDAsZmVbKEs9cGUpPj4wXT0wfGZlWzE4NTg4XSxmZVtLKzE+PjBdPTB8ZmVbMTg1ODldLGZlW0srMj4+MF09MHxmZVsxODU5MF0sZmVbSyszPj4wXT0wfGZlWzE4NTkxXSxoMChLPTB8b2MoOTM1MTUsSywwKSwxMzc0ODMsMjgwLDEpLGI9SysxNnwwLG09MHxzMChjKSxBPTA7bTspaDAo''@;'; + put 'put ''dz0wfEdyKEssMHx0aSgwfGFbbSsyMD4+Ml0pLDEpLDEzNzQ0NywzMDQsMSksYVsxMTIrKE09MHxhWyhSPXcrMTZ8MCk+PjJdKT4+Ml09bSxhW20rMjQ+PjJdPXcsYVtNKzE3Nj4+Ml09MCxNPTB8dnIoNCksYVsxNzIrKEQ9MHxhW1I+PjJdKT4+Ml09TSxhW0QrMTg0Pj4yXT0wLEQ9MHx2cig0''@;'; + put 'put ''KSxhWzE4MCsoMHxhW1I+PjJdKT4+Ml09RCxBP2FbMTY0KygwfGFbQSsxNj4+Ml0pPj4yXT13OmFbMTkyKygwfGFbYj4+Ml0pPj4yXT13LG09MHxhW20+PjJdLEE9dztrPTB8czAoYyk7ZTpmb3IoO2s7KXtmb3IoTT1rKzMyfDAsRD1rKzI0fDAsUj1rKzIwfDAsbT1rO209MHxhW20+PjJdOylp''@;'; + put 'put ''ZigwfEJpWzEyNyZmXShrLG0pKXtpZihBPTB8QmlbMTI3JnBdKE0sbSszMnwwKSxoMCh3PTB8S2EoSywwfGFbRD4+Ml0sMHxhW20rMjQ+PjJdLDAsMSksMTM3NDYwLDE3NiwxKSwoMHxBKT49NjU1MzYpe0c9MTM7YnJlYWsgZX1ydFsxNzArKGdlPTB8YVsoYj13KzE2fDApPj4yXSk+PjFdPUEs''@;'; + put 'put ''YVtnZSsxNTY+PjJdPTEsMHx3JiYwfEthKGwsMHxhW1I+PjJdLDB8YVttKzIwPj4yXSwwLDApJiYoYVsxNTYrKDB8YVtiPj4yXSk+PjJdPTEwMCl9az0wfGFbaz4+Ml19Zm9yKDEzPT0oMHxHKSYmUHIoOTM1MTgsOTM1MzQsMjU0LDkzNTQ3KSxrPTB8czAoYyk7azspe2ZvcihNPTE2KyhiPTB8''@;'; + put 'put ''YVtrKzI0Pj4yXSl8MCxiPTB8dzAoSyxiKTtiOyltPShBPTB8YVsxODArKG09MHxhW00+PjJdKT4+Ml0pPzB8VjAoQSw4KyhhW20rMTg0Pj4yXTw8Mil8MCk6MHxRbig4KyhhW20rMTg0Pj4yXTw8Mil8MCksYVsxODArKEE9MHxhW00+PjJdKT4+Ml09bSxhWyhBPUErMTg0fDApPj4yXT0xKyh3''@;'; + put 'put ''PTB8YVtBPj4yXSksYVttKyh3PDwyKT4+Ml09YixhWygwfGFbMTgwKyh3PTB8YVtNPj4yXSk+PjJdKSsoYVt3KzE4ND4+Ml08PDIpPj4yXT0wLHc9YistNDh8MCxtPShBPTB8YVsxNzIrKG09MHxhWzE2KygwfGFbKDI9PSgzJmFbYj4+Ml18MCk/Yjp3KSs0MD4+Ml0pPj4yXSk+PjJdKT8wfFYw''@;'; + put 'put ''KEEsOCsoYVttKzE3Nj4+Ml08PDIpfDApOjB8UW4oOCsoYVttKzE3Nj4+Ml08PDIpfDApLGFbMTcyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtiPj4yXXwwKT9iOncpKzQwPj4yXSk+PjJdKT4+Ml09bSxHPTB8YVsxNzIrKHA9MHxhWzE2KygwfGFbKDI9PSgzJmFbYj4+Ml18MCk/Yjp3KSs0MD4+''@;'; + put 'put ''Ml0pPj4yXSk+PjJdLGFbKHA9cCsxNzZ8MCk+PjJdPTErKGdlPTB8YVtwPj4yXSksYVtHKyhnZTw8Mik+PjJdPWIsYVsoMHxhWzE3MisoZ2U9MHxhWzE2KygwfGFbKDI9PSgzJmFbYj4+Ml18MCk/Yjp3KSs0MD4+Ml0pPj4yXSk+PjJdKSsoYVtnZSsxNzY+PjJdPDwyKT4+Ml09MCxiPTB8UzAo''@;'; + put 'put ''SyxiKTtrPTB8YVtrPj4yXX1yZXR1cm4gYWU9cGUsMHxLfWZ1bmN0aW9uIGRnKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7Zm9yKG09MHxEdChsfD0wKTttOykocD0wfGFbMTcyKyhjPTB8YVsoZj1tKzE2fDApPj4yXSk+PjJdKSYmKEZ0KHApLGM9MHxhW2Y+PjJdKSwwfChjPTB8YVtjKzE4MD4+''@;'; + put 'put ''Ml0pJiZGdChjKSxtPTB8enQobCxtKTtDMShsKX1mdW5jdGlvbiB3VihsLGMpe2N8PTA7dmFyIGssTSxHLHBlLE9lLExlLFJlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLEQ9MCxSPTAsYmU9MCxIZT0wLFZlPTA7Zm9yKFJlPWFlLGFlPWFlKzY0fDAsRz1SZSs1MnwwLFI9UmUrNDB8MCxwZT1S''@;'; + put 'put ''ZSxMZT0wfFFuKDcyKihPZT0wfEdvKGx8PTApKXwwKSxXNyhSLGwpLHc9K2puW1I+PjJdLGI9K2puW1IrND4+Ml0saz0uNSoodz0oUj0wIT0oMHxmZVtSKzg+PjBdKSk/LjAxMzg4ODg4ODg4ODg4ODg4OCp3OncpLE09LjUqKGI9Uj8uMDEzODg4ODg4ODg4ODg4ODg4KmI6YiksZj1MZSxwPTB8''@;'; + put 'put ''RHQobCk7cDspbT0rX1szMisoRD0wfGFbcCsxNj4+Ml0pPj4zXSxSPyhBPS41KitfW0QrNDA+PjNdK2IsbT0uNSptK3cpOihBPU0qK19bRCs0MD4+M10sbSo9ayksX1tmPj4zXT1WZT0rX1soRD0wfGFbRCsxMzI+PjJdKT4+M10sX1tmKzg+PjNdPUhlPStfW0QrOD4+M10sX1tmKzE2Pj4zXT1W''@;'; + put 'put ''ZS1tLF9bZisyND4+M109SGUtQSxfW2YrMzI+PjNdPVZlK20sX1tmKzQwPj4zXT1IZStBLF9bZis0OD4+M109bSxfW2YrNTY+PjNdPUEsYVtmKzY0Pj4yXT1wLGY9Zis3MnwwLHA9MHx6dChsLHApO2Rve2lmKCgwfGMpPDApe2lmKDA9PShtPStiVihMZSxPZSkpKXtGdChMZSksZj0wO2JyZWFr''@;'; + put 'put ''fXc9bSxBPW0sYmU9MTl9ZWxzZXtpZihwPTB8bTJlKExlLE9lLEcpLCEoZj0wfGFbRz4+Ml0pKXtGdChwKSxGdChMZSksZj0wO2JyZWFrfWM/bT1BPStldmUocCxmKToodHZlKHBlLHAsZiksbT0rX1twZT4+M10sQT0rX1twZSs4Pj4zXSksRnQocCksdz1tLGJlPTE5fX13aGlsZSgwKTtpZigx''@;'; + put 'put ''OT09KDB8YmUpKXtmb3IoZj0wLHA9TGU7ISgoMHxmKT49KDB8T2UpKTspX1soYmU9MHxhWzEzMisoMHxhWzE2KygwfGFbcCs2ND4+Ml0pPj4yXSk+PjJdKT4+M109K19bcD4+M10qdyxfW2JlKzg+PjNdPStfW3ArOD4+M10qQSxmPWYrMXwwLHA9cCs3MnwwO0Z0KExlKSxmPTF9cmV0dXJuIGFl''@;'; + put 'put ''PVJlLDB8Zn1mdW5jdGlvbiBiVihsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTA7Zj0wLHA9MDtlOmZvcig7ISgoMHxwKT49KDB8YykpOylmb3IoYmU9bCs3MnwwLHA9cCsxfDAsUj1sKzE2fDAs''@;'; + put 'put ''Rz1sKzh8MCxLPWwrNTZ8MCxwZT1sKzQ4fDAsZ2U9bCszMnwwLE09bCsyNHwwLEQ9bCs0MHwwLGI9cCxrPWJlOzspe2lmKCgwfGIpPj0oMHxjKSl7bD1iZTtjb250aW51ZSBlfWlmKCtfW1I+PjNdPD0rX1trKzMyPj4zXSYmK19baysxNj4+M108PStfW2dlPj4zXSYmK19bTT4+M108PStfW2sr''@;'; + put 'put ''NDA+PjNdJiYrX1trKzI0Pj4zXTw9K19bRD4+M10pe2Y9MDticmVhayBlfShtPStfW2w+PjNdKT09KEE9K19baz4+M10pP3c9QXM6KHc9K2VvKCsobS1BKSksdz0oK19bays0OD4+M10rICtfW3BlPj4zXSkvdyksKG09K19bRz4+M10pPT0oQT0rX1trKzg+PjNdKT9tPUFzOihtPStlbygrKG0t''@;'; + put 'put ''QSkpLG09KCtfW2srNTY+PjNdKyArX1tLPj4zXSkvbSksYj1iKzF8MCxrPWsrNzJ8MCxmPSh3PW08dz9tOncpPmY/dzpmfXJldHVybitmfWZ1bmN0aW9uIG0yZShsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9''@;'; + put 'put ''MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTA7RD0wLHA9MCxSPWs9MHxRbigxNisoKGN8PTApPDw0KXwwKSxHPWMsdz1rO2U6Zm9yKDshKCgwfHApPj0oMHxjKSk7KWZvcihxZT1sKzcyfDAscD1wKzF8MCxWZT1sKzE2fDAsZ2U9bCszMnwwLGJlPWwrMjR8MCxPZT1s''@;'; + put 'put ''KzQwfDAsTGU9bCs4fDAsUmU9bCs1NnwwLEhlPWwrNDh8MCxLPXAscGU9cWUsTT13Ozspe2lmKCgwfEspPT0oMHxjKSl7bD1xZSx3PU07Y29udGludWUgZX0rX1tWZT4+M108PStfW3BlKzMyPj4zXSYmK19bcGUrMTY+PjNdPD0rX1tnZT4+M10mJitfW2JlPj4zXTw9K19bcGUrNDA+PjNdJiYr''@;'; + put 'put ''X1twZSsyND4+M108PStfW09lPj4zXT8odz1HK2N8MCwoMHxEKT09KDB8Ryk/KFI9az0wfFYwKGssMTYrKHc8PDQpfDApLE09ayk6dz1HLChtPStfW2w+PjNdKSE9KEE9K19bcGU+PjNdKT8obT0oK19bcGUrNDg+PjNdKyArX1tIZT4+M10pLytlbygrKG0tQSkpKTwxJiYobT0xLG50PTEzKToo''@;'; + put 'put ''bT1BcyxudD0xMyksMTM9PSgwfG50KSYmKG50PTApLChBPStfW0xlPj4zXSkhPShiPStfW3BlKzg+PjNdKT8oQT0oK19bcGUrNTY+PjNdKyArX1tSZT4+M10pLytlbygrKEEtYikpKTwxJiYoQT0xLG50PTE2KTooQT1BcyxudD0xNiksMTY9PSgwfG50KSYmKG50PTApLF9bUisoKEQ9RCsxfDAp''@;'; + put 'put ''PDw0KT4+M109bSxfW1IrKEQ8PDQpKzg+PjNdPUEpOnc9RyxLPUsrMXwwLHBlPXBlKzcyfDAsRz13fXJldHVybiBudD0wfFYwKHcsMTYrKEQ8PDQpfDApLGFbZj4+Ml09RCwwfG50fWZ1bmN0aW9uIGV2ZShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3IocD0xLG09''@;'; + put 'put ''MDtmPWwrMTZ8MCwhKCgwfHApPigwfGMpKTspcD1wKzF8MCxtPShBPSh3PStfW2Y+PjNdKTwoQT0rX1tsKzI0Pj4zXSk/dzpBKT5tP0E6bSxsPWY7cmV0dXJuK219ZnVuY3Rpb24gdHZlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHcscD0wLG09MCxBPTAsYj0wO2ZvcihfWyhjfD0wKT4+M109MSxf''@;'; + put 'put ''W2MrOD4+M109QXMseDEoYysxNnwwLGYsMTYsNzYpLHc9MHxRbigxNisoZjw8NCl8MCksX1t3KyhmPDw0KT4+M109K19bYysoZjw8NCk+PjNdLEE9ZixwPTE7Oyl7aWYoX1t3KyhBPDw0KSs4Pj4zXT1wLG09QSstMXwwLCgwfEEpPD0wKXtwPUFzLG09MCxBPTA7YnJlYWt9X1t3KyhtPDw0KT4+''@;'; + put 'put ''M109K19bYysobTw8NCk+PjNdLGI9K19bKCtfW2MrKEE8PDQpKzg+PjNdPnA/Yzp3KSsoQTw8NCkrOD4+M10sQT1tLHA9Yn1mb3IoOyEoKDB8QSk+KDB8ZikpOylwPShjPShiPStfW3crKEE8PDQpKzg+PjNdKitfW3crKEE8PDQpPj4zXSk8cCk/YjpwLG09Yz9BOm0sQT1BKzF8MDtpZihwPEFz''@;'; + put 'put ''KXJldHVybiBiPStfW3crKG08PDQpKzg+PjNdLF9bbD4+M109K19bdysobTw8NCk+PjNdLHZvaWQoX1tsKzg+PjNdPWIpO1ByKDkzNTk2LDkzNTM0LDgzMiw5MzYxNil9ZnVuY3Rpb24gcnZlKGwsYyxmKXtyZXR1cm4gY3w9MCxmfD0wLGY9YWUsYWU9YWUrMTZ8MCxhWyhjPWYpPj4yXT05MzYz''@;'; + put 'put ''MSwkcigxLDkzNjgxLGMpLGFlPWYsMH1mdW5jdGlvbiBGWChsKXt2YXIgYz0wOzB8KGx8PTApJiYoMHwoYz0wfGFbbCs0Pj4yXSkmJkZ0KGMpLDB8KGM9MHxhW2wrOD4+Ml0pJiZGdChjKSwwfChjPTB8YVtsKzE2Pj4yXSkmJkZ0KGMpLEZ0KGwpKX1mdW5jdGlvbiBPeShsLGMsZixwKXtsfD0w''@;'; + put 'put ''LGN8PTAscHw9MDt2YXIgayxNLEQsUixtPTAsQT0wLHc9MCxiPTA7Zm9yKFI9YWUsYWU9YWUrMTZ8MCxEPVIrOHwwLE09UixrPTB8VWEoMHxhWzQ2ODQ5XSwoZnw9MCk8PDIpLGFbNDY4NDldPWssbT0wOyEoKDB8bSk+PSgwfGYpKTspYVtwKyhtPDwyKT4+Ml09MjE0NzQ4MzY0NyxtPW0rMXww''@;'; + put 'put ''O2ZvcihhW3ArKGw8PDIpPj4yXT0wLEE9YysoMjAqbHwwKXwwLHc9YysoMjAqbHwwKSs4fDAsYj1jKygyMCpsfDApKzR8MCxtPTE7ISgoMHxtKT49KDB8YVtBPj4yXSkpOylhW3ArKGFbKDB8YVtiPj4yXSkrKG08PDIpPj4yXTw8Mik+PjJdPX5+K2puWygwfGFbdz4+Ml0pKyhtPDwyKT4+Ml0s''@;'; + put 'put ''bT1tKzF8MDtmb3IoZnVuY3Rpb24gdjJlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgYixrLEE9MCx3PTA7Zm9yKGI9MT09KDB8KG18PTApKT8wOjB8UW4oKG08PDIpLTR8MCksYVtsPj4yXT1iLGFbbCs0Pj4yXT1rPW0rLTF8MCxBPTAsdz0wOyEoKDB8dyk+PSgwfG0pKTsp''@;'; + put 'put ''KDB8dykhPSgwfGMpJiYoYVtiKyhBPDwyKT4+Ml09dyxhW2YrKHc8PDIpPj4yXT1BLEE9QSsxfDApLHc9dysxfDA7Zm9yKEE9KDB8aykvMnwwOyEoKDB8QSk8PS0xKTspUnkobCxBLGYscCksQT1BKy0xfDB9KEQsbCxrLHAsZiksdz0tMjE0NzQ4MzYzOTs7KXtpZighKCgwfEEyZShELE0sMHxh''@;'; + put 'put ''WzQ2ODQ5XSxwKSk8PDI0Pj4yNCkpe209MDticmVha31pZigyMTQ3NDgzNjQ3PT0oMHwobD0wfGFbcCsoKG09MHxhW00+PjJdKTw8Mik+PjJdKSkpe209MDticmVha31mb3Iodz1jKygyMCptfDApfDAsYj1jKygyMCptfDApKzR8MCxBPWMrKDIwKm18MCkrOHwwLG09MTshKCgwfG0pPj0oMHxh''@;'; + put 'put ''W3c+PjJdKSk7KXkyZShELDB8YVsoMHxhW2I+PjJdKSsobTw8Mik+PjJdLGwrfn4ram5bKDB8YVtBPj4yXSkrKG08PDIpPj4yXXwwLDB8YVs0Njg0OV0scCksbT1tKzF8MDt3PWwrMTB8MH1mb3IoOyEoKDB8bSk+PSgwfGYpKTspMjE0NzQ4MzY0Nz09KDB8YVsoQT1wKyhtPDwyKXwwKT4+Ml0p''@;'; + put 'put ''JiYoYVtBPj4yXT13KSxtPW0rMXwwO0xEKEQpLGFlPVJ9ZnVuY3Rpb24gQTJlKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtLEE9MDtyZXR1cm4gMHxhWyhtPTQrKGx8PTApfDApPj4yXT8oYVtjPj4yXT1hWyhBPTB8YVtsPj4yXSk+PjJdLGFbQT4+Ml09Yz0wfGFbQSsoKDB8YVttPj4y''@;'; + put 'put ''XSktMTw8Mik+PjJdLGFbZisoYzw8Mik+PjJdPTAsYVttPj4yXT0oMHxhW20+PjJdKS0xLFJ5KGwsMCxmLHApLGw9MSk6bD0wLDB8bH1mdW5jdGlvbiB5MmUobCxjLGYscCxtKXtsfD0wLHB8PTA7dmFyIEE9MCx3PTAsYj0wLGs9MDtpZigoMHxhWyhBPShtfD0wKSsoKGN8PTApPDwyKXwwKT4+''@;'; + put 'put ''Ml0pPigwfChmfD0wKSkpe2ZvcihiPTB8YVsoaz1wKyhjPDwyKXwwKT4+Ml0sYVtBPj4yXT1mLEE9MHxhW2w+PjJdLGw9YjshKCgwfGwpPD0wfHwodz1sPj4+MSxiPTB8YVtBKyh3PDwyKT4+Ml0sKDB8YVttKyhiPDwyKT4+Ml0pPD0oMHxmKSkpOylhW0ErKGw8PDIpPj4yXT1iLGFbcCsoYjw8''@;'; + put 'put ''Mik+PjJdPWwsbD13O2FbQSsobDw8Mik+PjJdPWMsYVtrPj4yXT1sfX1mdW5jdGlvbiBMRChsKXswfChsPTB8YVsobHw9MCk+PjJdKSYmRnQobCl9ZnVuY3Rpb24gUnkobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGIsbT0wLEE9MCx3PTAsaz0wO2ZvcihiPTQrKGx8PTApfDA7QT0xfCht''@;'; + put 'put ''PWM8PDEpLCgwfG0pPCgwfCh3PTB8YVtiPj4yXSkpJiYoMHxhW3ArKGFbKGs9MHxhW2w+PjJdKSsobTw8Mik+PjJdPDwyKT4+Ml0pPCgwfGFbcCsoYVtrKyhjPDwyKT4+Ml08PDIpPj4yXSl8fChtPWMpLCgwfEEpPCgwfHcpJiYobT0oMHxhW3ArKGFbKGs9MHxhW2w+PjJdKSsoQTw8Mik+PjJd''@;'; + put 'put ''PDwyKT4+Ml0pPCgwfGFbcCsoYVtrKyhtPDwyKT4+Ml08PDIpPj4yXSk/QTptKSwoMHxtKSE9KDB8Yyk7KUE9MHxhWyh3PShrPTB8YVtsPj4yXSkrKG08PDIpfDApPj4yXSxhW3c+PjJdPWFbKGs9aysoYzw8Mil8MCk+PjJdLGFbaz4+Ml09QSxhW2YrKGFbdz4+Ml08PDIpPj4yXT1tLGFbZiso''@;'; + put 'put ''YVtrPj4yXTw8Mik+PjJdPWMsYz1tfWZ1bmN0aW9uIE9EKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIE0sRCxSLEcsbT0wLEE9MCx3PTAsYj0wLGs9MDtmb3IoRz1hZSxhZT1hZSsxNnwwLE09Rys4fDAsYVsoRD1HKT4+Ml09MCxSPTB8UW4oZjw8MiksbT0wOyEoKDB8bSk+PSgw''@;'; + put 'put ''fGYpKTspam5bcCsobTw8Mik+PjJdPTM0MDI4MjM0NjYzODUyODg2ZTIyLG09bSsxfDA7Zm9yKGpuW3ArKGw8PDIpPj4yXT0wLEE9MHxhW2MrKDIwKmx8MCk+PjJdLHc9YysoMjAqbHwwKSs4fDAsYj1jKygyMCpsfDApKzR8MCxtPTE7ISgoMHxtKT49KDB8QSkpOylhW3ArKGFbKDB8YVtiPj4y''@;'; + put 'put ''XSkrKG08PDIpPj4yXTw8Mik+PjJdPWFbKDB8YVt3Pj4yXSkrKG08PDIpPj4yXSxtPW0rMXwwOyFmdW5jdGlvbiBCeShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIGIsayxBPTAsdz0wO2ZvcihrPTB8UW4oKGI9KG18PTApLTF8MCk8PDIpLGFbbD4+Ml09ayxhW2wrND4+Ml09''@;'; + put 'put ''YixBPTAsdz0wOyEoKDB8dyk+PSgwfG0pKTspKDB8dykhPSgwfGMpJiYoYVtrKyhBPDwyKT4+Ml09dyxhW2YrKHc8PDIpPj4yXT1BLEE9QSsxfDApLHc9dysxfDA7Zm9yKEE9KDB8YikvMnwwOyEoKDB8QSk8PS0xKTspQ1YobCxBLGYscCksQT1BKy0xfDB9KE0sbCxSLHAsZik7ZTpmb3IoOygw''@;'; + put 'put ''fExrKE0sRCxSLHApKTw8MjQ+PjI0JiYobT0wfGFbRD4+Ml0saz0ram5bcCsobTw8Mik+PjJdLDM0MDI4MjM0NjYzODUyODg2ZTIyIT1rKTspZm9yKHc9YysoMjAqbXwwKXwwLGI9YysoMjAqbXwwKSs0fDAsQT1jKygyMCptfDApKzh8MCxtPTE7Oyl7aWYoKDB8bSk+PSgwfGFbdz4+Ml0pKWNv''@;'; + put 'put ''bnRpbnVlIGU7X1YoTSwwfGFbKDB8YVtiPj4yXSkrKG08PDIpPj4yXSwram5bKDB8YVtBPj4yXSkrKG08PDIpPj4yXStrLFIscCksbT1tKzF8MH1MRChNKSxGdChSKSxhZT1HfWZ1bmN0aW9uIExrKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtLEE9MDtyZXR1cm4gMHxhWyhtPTQrKGx8''@;'; + put 'put ''PTApfDApPj4yXT8oYVtjPj4yXT1hWyhBPTB8YVtsPj4yXSk+PjJdLGFbQT4+Ml09Yz0wfGFbQSsoKDB8YVttPj4yXSktMTw8Mik+PjJdLGFbZisoYzw8Mik+PjJdPTAsYVttPj4yXT0oMHxhW20+PjJdKS0xLENWKGwsMCxmLHApLGw9MSk6bD0wLDB8bH1mdW5jdGlvbiBfVihsLGMsZixwLG0p''@;'; + put 'put ''e2x8PTAscHw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wO2lmKCEoK2puWyhBPShtfD0wKSsoKGN8PTApPDwyKXwwKT4+Ml08PShmPStmKSkpe2ZvcihiPTB8YVsoaz1wKyhjPDwyKXwwKT4+Ml0sam5bQT4+Ml09ZixBPTB8YVtsPj4yXSxsPWI7ISgoMHxsKTw9MCkmJitqblttKygoYj0wfGFbQSso''@;'; + put 'put ''KHc9bD4+PjEpPDwyKT4+Ml0pPDwyKT4+Ml0+ZjspYVtBKyhsPDwyKT4+Ml09YixhW3ArKGI8PDIpPj4yXT1sLGw9dzthW0ErKGw8PDIpPj4yXT1jLGFbaz4+Ml09bH19ZnVuY3Rpb24gQ1YobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGIsbT0wLEE9MCx3PTAsaz0wO2ZvcihiPTQrKGx8''@;'; + put 'put ''PTApfDA7QT0xfChtPWM8PDEpLCgwfG0pPCgwfCh3PTB8YVtiPj4yXSkpJiYram5bcCsoYVsoaz0wfGFbbD4+Ml0pKyhtPDwyKT4+Ml08PDIpPj4yXTwram5bcCsoYVtrKyhjPDwyKT4+Ml08PDIpPj4yXXx8KG09YyksKDB8QSk8KDB8dykmJitqbltwKyhhWyhrPTB8YVtsPj4yXSkrKEE8PDIp''@;'; + put 'put ''Pj4yXTw8Mik+PjJdPCtqbltwKyhhW2srKG08PDIpPj4yXTw8Mik+PjJdJiYobT1BKSwoMHxtKSE9KDB8Yyk7KUE9MHxhWyh3PShrPTB8YVtsPj4yXSkrKG08PDIpfDApPj4yXSxhW3c+PjJdPWFbKGs9aysoYzw8Mil8MCk+PjJdLGFbaz4+Ml09QSxhW2YrKGFbdz4+Ml08PDIpPj4yXT1tLGFb''@;'; + put 'put ''ZisoYVtrPj4yXTw8Mik+PjJdPWMsYz1tfWZ1bmN0aW9uIFJEKCl7WnkoMTg3NDAwLDQ4KSxhWzQ2ODUzXT0wfWZ1bmN0aW9uIGtWKGwsYyl7bHw9MCxjfD0wO3ZhciBBLHcsZj0wLHA9MCxtPTA7cmV0dXJuIHc9MHx6eSgxODc0MDApLGFbdyszMj4+Ml09bCxhW3crMzY+PjJdPWMsSkQobCks''@;'; + put 'put ''SkQoYyksYVt3KzI0Pj4yXT0wLGFbdysyOD4+Ml09MCxBPStfW2M+PjNdLShtPStfW2w+PjNdKSxmPStfW2MrOD4+M10tKHA9K19bbCs4Pj4zXSksX1soYz13KzE2fDApPj4zXT1tPWYqcCtBKm0rLjUqKGYqZitBKkEpLChBPjA/QTotQSk+KGY+MD9mOi1mKT8oX1t3Pj4zXT0xLHA9Zi9BLGY9''@;'; + put 'put ''QSxsPXcrOHwwKTooX1t3Kzg+PjNdPTEscD1BL2YsbD13KSxfW2w+PjNdPXAsX1tjPj4zXT1tL2YsYVt3KzQwPj4yXT1jPTB8YVs0Njg1M10sYVs0Njg1M109YysxLDB8d31mdW5jdGlvbiBPayhsKXt2YXIgTSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLEQ9MDtNPStfWyhsfD0w''@;'; + put 'put ''KT4+M107ZTpkb3tpZigxPT1NKXsrX1tsKzg+PjNdPj0wPyhjPTB8YVtsKzI0Pj4yXSxEPShmPTB8YVtsKzI4Pj4yXSk/NTo5KTooYz0wfGFbbCsyOD4+Ml0sRD0oZj0wfGFbbCsyND4+Ml0pPzU6OSk7ZG97aWYoNT09KDB8RCkpe2lmKChwPStfW2YrOD4+M10pPitfWzIzMjY2XSlicmVhayBl''@;'; + put 'put ''O2lmKHA+PShtPStfWzIzMjY3XSkpe3c9cCxwPStfW2Y+PjNdO2JyZWFrfXc9bSxwPStfW2wrMTY+PjNdLStfW2wrOD4+M10qbTticmVha305PT0oMHxEKSYmKHc9bT0rX1syMzI2N10scD0rX1tsKzE2Pj4zXS0rX1tsKzg+PjNdKm0pfXdoaWxlKDApO2Rve2lmKGMpe2lmKChBPStfW2MrOD4+''@;'; + put 'put ''M10pPG0pYnJlYWsgZTtpZihBPD0obT0rX1syMzI2Nl0pKXttPStfW2M+PjNdO2JyZWFrfUE9bSxtPStfW2wrMTY+PjNdLStfW2wrOD4+M10qbTticmVha31BPW09K19bMjMyNjZdLG09K19bbCsxNj4+M10tK19bbCs4Pj4zXSptfXdoaWxlKDApOyhjPXA+KGI9K19bMjMyNjhdKSkmKGY9bT5i''@;'; + put 'put ''KXxwPChrPStfWzIzMjY5XSkmbTxrfHwoYyYmKHc9KCtfW2wrMTY+PjNdLWIpLytfW2wrOD4+M10scD1iKSxwPGsmJih3PSgrX1tsKzE2Pj4zXS1rKS8rX1tsKzg+PjNdLHA9ayksZiYmKEE9KCtfW2wrMTY+PjNdLWIpLytfW2wrOD4+M10sbT1iKSxtPGsmJihBPSgrX1tsKzE2Pj4zXS1rKS8r''@;'; + put 'put ''X1tsKzg+PjNdLG09ayksRD00Nil9ZWxzZXtmPTB8YVtsKzI4Pj4yXSxjPTB8YVtsKzI0Pj4yXTtkb3tpZihjKXtpZigocD0rX1tjPj4zXSk+K19bMjMyNjhdKWJyZWFrIGU7aWYocD49KEE9K19bMjMyNjldKSl7dz0rX1tjKzg+PjNdO2JyZWFrfXc9K19bbCsxNj4+M10tQSpNLHA9QTticmVh''@;'; + put 'put ''a313PStfW2wrMTY+PjNdLShBPStfWzIzMjY5XSkqTSxwPUF9d2hpbGUoMCk7ZG97aWYoZil7aWYoKG09K19bZj4+M10pPEEpYnJlYWsgZTtpZihtPD0oYj0rX1syMzI2OF0pKXtBPStfW2YrOD4+M107YnJlYWt9QT0rX1tsKzE2Pj4zXS1NKmIsbT1iO2JyZWFrfUE9K19bbCsxNj4+M10tTSoo''@;'; + put 'put ''bT0rX1syMzI2OF0pfXdoaWxlKDApOyhjPXc+KGI9K19bMjMyNjZdKSkmKGY9QT5iKXx3PChrPStfWzIzMjY3XSkmQTxrfHwoYyYmKHc9YixwPSgrX1tsKzE2Pj4zXS1iKS9NKSx3PGsmJih3PWsscD0oK19bbCsxNj4+M10taykvTSksZiYmKEE9YixtPSgrX1tsKzE2Pj4zXS1iKS9NKSxBPGsm''@;'; + put 'put ''JihBPWssbT0oK19bbCsxNj4+M10taykvTSksRD00Nil9fXdoaWxlKDApOzQ2PT0oMHxEKSYmZnVuY3Rpb24gSFgobCxjLGYscCxtKXtwPStwLG09K207dmFyIEE7TGMoMHxhWyhBPTMyKyhsfD0wKXwwKT4+Ml0sYz0rYyxmPStmKSxMYygwfGFbQT4+Ml0scCxtKSxMYygwfGFbKGw9bCszNnww''@;'; + put 'put ''KT4+Ml0sYyxmKSxMYygwfGFbbD4+Ml0scCxtKX0obCxwLHcsbSxBKX1mdW5jdGlvbiBCRChsLGMsZil7YVsyNCsobHw9MCkrKChjfD0wKTw8Mik+PjJdPWZ8PTAsSkQoZiksMHxhW2wrMjQrKDEtYzw8Mik+PjJdJiYoT2sobCksUUQoMHxhW2wrMzI+PjJdKSxRRCgwfGFbbCszNj4+Ml0pLEZW''@;'; + put 'put ''KGwsMTg3NDAwKSl9ZnVuY3Rpb24gWTcobCxjKXt2YXIgZixwO3JldHVybisoKHA9K19bOCsobHw9MCk+PjNdLStfWzgrKGN8PTApPj4zXSkqcCsoZj0rX1tsPj4zXS0rX1tjPj4zXSkqZil9ZnVuY3Rpb24gVlgobCxjLGYpe19bKGx8PTApPj4zXT0rX1soY3w9MCk+PjNdLStfWyhmfD0wKT4+''@;'; + put 'put ''M10sX1tsKzg+PjNdPStfW2MrOD4+M10tK19bZis4Pj4zXX1mdW5jdGlvbiBTVihsLGMsZil7X1sobHw9MCk+PjNdPStfWyhmfD0wKT4+M10rICtfWyhjfD0wKT4+M10sX1tsKzg+PjNdPStfW2YrOD4+M10rICtfW2MrOD4+M119ZnVuY3Rpb24gUmsobCxjLGYpe3ZhciBwLG07cmV0dXJuKygo''@;'; + put 'put ''K19bKGZ8PTApPj4zXS0obT0rX1soY3w9MCk+PjNdKSkqKCtfWzgrKGx8PTApPj4zXS0ocD0rX1tjKzg+PjNdKSktKCtfW2w+PjNdLW0pKigrX1tmKzg+PjNdLXApKX1mdW5jdGlvbiBQeShsLGMsZil7dmFyIHAsbSxBLHc7cmV0dXJuIGN8PTAsZnw9MCxwPWFlLGFlPWFlKzQ4fDAsbT1wKzMy''@;'; + put 'put ''fDAsQT1wKzE2fDAsYVsodz1wKT4+Ml09YVsobHw9MCk+PjJdLGFbdys0Pj4yXT1hW2wrND4+Ml0sYVt3Kzg+PjJdPWFbbCs4Pj4yXSxhW3crMTI+PjJdPWFbbCsxMj4+Ml0sYVtBPj4yXT1hW2M+PjJdLGFbQSs0Pj4yXT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFbYys4Pj4yXSxhW0ErMTI+PjJd''@;'; + put 'put ''PWFbYysxMj4+Ml0sYVttPj4yXT1hW2Y+PjJdLGFbbSs0Pj4yXT1hW2YrND4+Ml0sYVttKzg+PjJdPWFbZis4Pj4yXSxhW20rMTI+PjJdPWFbZisxMj4+Ml0sZj0rUmsodyxBLG0pPjAmMSxhZT1wLDB8Zn1mdW5jdGlvbiBGRChsLGMsZixwLG0pe218PTA7dmFyIEEsdyxiLGssTSxELFIsRyxL''@;'; + put 'put ''LHBlPTAsZ2U9MDtyZXR1cm4gMD09KHc9KFI9KChwZT0rX1s4KyhwfD0wKT4+M10pLShnZT0rX1s4KyhmfD0wKT4+M10pKSooSz0rX1sobHw9MCk+PjNdKSkrKEc9K19bKGN8PTApPj4zXSkqKGdlLXBlKSsoaz0oTT0rX1tjKzg+PjNdKS0oYj0rX1tsKzg+PjNdKSkqKEQ9K19bcD4+M10pKyhB''@;'; + put 'put ''PStfW2Y+PjNdKSooYi1NKSk/cD0wOihwZT0oQSooYi1wZSkrUisoZ2UtYikqRCkvdyxnZT0tKEEqaysoKGdlLU0pKksrKGItZ2UpKkcpKS93LF9bbT4+M109cGUqKEctSykrSyxfW20rOD4+M109aypwZStiLHA9Z2U8PTEmZ2U+PTAmcGU+PTAmcGU8PTEmMSksMHxwfWZ1bmN0aW9uIFU3KGws''@;'; + put 'put ''YyxmKXtmPStmO3ZhciB3LHA9MCxtPTAsQT0wO2ZvcihhWzIwKyhsfD0wKT4+Ml09Y3w9MCxKRChjKSxfWyh3PWwrMjR8MCk+PjNdPStfW2MrOD4+M10rZixwPShwPTB8YVs0Njg1Nl0pKyg0MCooMHxqWChsKSl8MCl8MDsocD0wfGFbKG09cCszMnwwKT4+Ml0pJiYoKGY9K19bdz4+M10pPihB''@;'; + put 'put ''PStfW3ArMjQ+PjNdKXx8Zj09QSYmK19bYz4+M10+K19bYVtwKzIwPj4yXT4+M10pOyk7YVtsKzMyPj4yXT1wLGFbbT4+Ml09bCxhWzQ2ODU3XT0xKygwfGFbNDY4NTddKX1mdW5jdGlvbiBqWChsKXt2YXIgYyxmLHA7Yz0oK19bMjQrKGx8PTApPj4zXS0rX1syMzI3M10pLytfWzIzMjc1XSoo''@;'; + put 'put ''cD0rKDB8KGY9MHxhWzQ2ODU4XSkpKTtkb3tpZighKGM8MCkpe2lmKGM+PXApe2w9ZistMXwwO2JyZWFrfWw9fn5jO2JyZWFrfWw9MH13aGlsZSgwKTtyZXR1cm4oMHxsKTwoMHxhWzQ2ODU5XSkmJihhWzQ2ODU5XT1sKSwwfGx9ZnVuY3Rpb24gQmsobCl7dmFyIGYsYz0wLHA9MDtpZigwfGFb''@;'; + put 'put ''KGY9MjArKGx8PTApfDApPj4yXSl7Yz0oYz0wfGFbNDY4NTZdKSsoNDAqKDB8algobCkpfDApfDA7ZG97Yz0wfGFbKHA9YyszMnwwKT4+Ml19d2hpbGUoKDB8YykhPSgwfGwpKTthW3A+PjJdPWFbbCszMj4+Ml0sYVs0Njg1N109KDB8YVs0Njg1N10pLTEsUUQoMHxhW2Y+PjJdKSxhW2Y+PjJd''@;'; + put 'put ''PTB9fWZ1bmN0aW9uIEZ5KCl7cmV0dXJuIDA9PSgwfGFbNDY4NTddKXwwfWZ1bmN0aW9uIHcyZShsKXtsfD0wO3ZhciBjLG0sZj0wLHA9MDtmb3IoYz0wfGFbNDY4NTZdLGY9MHxhWzQ2ODU5XTshKDB8KHA9MHxhW2MrKDQwKmZ8MCkrMzI+PjJdKSk7KWFbNDY4NTldPXA9ZisxfDAsZj1wO209''@;'; + put 'put ''K19bcCsyND4+M10sX1tsPj4zXT0rX1thW3ArMjA+PjJdPj4zXSxfW2wrOD4+M109bX1mdW5jdGlvbiBiMmUoKXt2YXIgbCxjO3JldHVybiBhWyhjPSgwfGFbNDY4NTZdKSsoNDAqKDB8YVs0Njg1OV0pfDApKzMyfDApPj4yXT1hWzMyKyhsPTB8YVtjPj4yXSk+PjJdLGFbNDY4NTddPSgwfGFb''@;'; + put 'put ''NDY4NTddKS0xLDB8bH1mdW5jdGlvbiBIRChsLGMpe3ZhciBmO3JldHVybiBsfD0wLGN8PTAsZj0wfHp5KDE4NzQ0OCksYVtmKzg+PjJdPWwsZmVbZisxNj4+MF09YyxhW2YrMzI+PjJdPTAsYVtmKzIwPj4yXT0wLGFbZisxMj4+Ml09MCwwfGZ9ZnVuY3Rpb24gTkQobCxjKXt2YXIgQSxiLGY9''@;'; + put 'put ''MCxwPTAsbT0wLHc9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MDtBPTB8YVs4KyhsfD0wKT4+Ml0sYj0wfGFbOCsoY3w9MCk+PjJdO2Rve2lmKDA9PSgwfEEpfDA9PSgwfGIpfHwoMHwoUj0wfGFbQSszNj4+Ml0pKT09KDB8KGY9MHxhW2IrMzY+PjJdKSl8fChNPShwPStfW2IrOD4+M10pKih3''@;'; + put 'put ''PStfW0E+PjNdKS0oaz0rX1tiPj4zXSkqKG09K19bQSs4Pj4zXSkpPi0xZS0xMCZNPDFlLTEwKWw9MDtlbHNle0Q9KChHPStfW0ErMTY+PjNdKSpwLShLPStfW2IrMTY+PjNdKSptKS9NLHc9KEsqdy1HKmspL00scD0rX1tSKzg+PjNdLG09K19bZis4Pj4zXTtkb3tpZihwPG0pZj1SO2Vsc2V7''@;'; + put 'put ''aWYocD09bSYmK19bUj4+M108K19bZj4+M10pe2Y9UjticmVha31sPWN9fXdoaWxlKDApO2lmKGw9MHxmZVtsKzE2Pj4wXSxEPj0rX1tmPj4zXSl7aWYoIShsPDwyND4+MjQpKXtsPTA7YnJlYWt9fWVsc2UgaWYobDw8MjQ+PjI0PT0xKXtsPTA7YnJlYWt9bD0wfHp5KDE4NzY3NiksYVtsKzIw''@;'; + put 'put ''Pj4yXT0wLF9bbD4+M109RCxfW2wrOD4+M109d319d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBWRChsLGMpe3ZhciBiLE0sRCxHLGY9MCxwPTAsbT0wLEE9MCx3PTAsaz0wLFI9MDtpZihHPTB8ZmVbMTYrKGx8PTApPj4wXSwoTT0oaz0rX1soY3w9MCk+PjNdKT4oUj0rX1soYj0wfGFb''@;'; + put 'put ''MzYrKEQ9MHxhW2wrOD4+Ml0pPj4yXSk+PjNdKSk/Rzw8MjQ+PjI0P3A9NDpsPTE6Rzw8MjQ+PjI0PT0xP2w9MDpwPTQsND09KDB8cCkpe2Y9K19bRD4+M107ZTpkb3tpZigxPT1mKXttPShmPStfW2MrOD4+M10pLStfW2IrOD4+M10sQT1rLVIsYz0odz0rX1tEKzg+PjNdKTwwO2Rve2lmKCEo''@;'; + put 'put ''TT93Pj0wOmMpKXtpZihsPXcqZitrPitfW0QrMTY+PjNdLGMpe2lmKGwpe2w9MDticmVhayBlfWJyZWFrfWlmKGwpYnJlYWs7bD0wO2JyZWFrIGV9aWYobT49dypBKXtsPTE7YnJlYWsgZX19d2hpbGUoMCk7bD13KihBKkEtbSptKTwoUi09K19bYVtEKzMyPj4yXT4+M10pKm0qKDIqQS9SKzEr''@;'; + put 'put ''dyp3KSxjJiYobF49MSl9ZWxzZSBBPStfW0QrMTY+PjNdLWsqZix3PStfW2MrOD4+M10tQSxSPWstUixrPUEtK19bYis4Pj4zXSxsPXcqdz5rKmsrUipSfXdoaWxlKDApO2w9MSYobF5HPDwyND4+MjQhPTApfXJldHVybiAwfGx9ZnVuY3Rpb24gR1gobCxjKXthWyhjfD0wKT4+Ml09bHw9MCxh''@;'; + put 'put ''W2MrND4+Ml09YVsobD1sKzR8MCk+PjJdLGFbYVtsPj4yXT4+Ml09YyxhW2w+PjJdPWN9ZnVuY3Rpb24gTVYobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7aWYoIShjPTB8RVYobT0oMHwoYz0oMHwoYz1+figoK19bKGx8PTApPj4zXS0rX1syMzI3Ml0pLytfWzIzMjc0XSorKDB8KG09MHxh''@;'; + put 'put ''WzQ2ODY2XSkpKSkpPjA/YzowKSk8KDB8bSk/YzptKy0xfDApKSl7Zm9yKGY9MTshKDB8KGM9MHxFVihtLWZ8MCkpfHwoYz0wfEVWKGYrbXwwKSwwfGMpKTspZj1mKzF8MDthWzQ2ODY3XT0oMHxhWzQ2ODY3XSkrZn1hWzQ2ODY4XT0xKygwfGFbNDY4NjhdKSxwPTB8YVs0Njg2MF0sZj0wfGFb''@;'; + put 'put ''NDY4NjFdO2U6ZG97aWYoKDB8Yyk9PSgwfHApKUE9OTtlbHNle2lmKCgwfGMpIT0oMHxmKSYmMCE9KDB8VkQoYyxsKSkpe0E9OTticmVha31mb3IoOzspe2lmKCgwfChjPTB8YVtjPj4yXSkpPT0oMHxwKSlicmVhayBlO2lmKDB8VkQoYyxsKSl7cD1jO2JyZWFrfX19fXdoaWxlKDApO2lmKDk9''@;'; + put 'put ''PSgwfEEpKXtmb3IoOygwfChjPTB8YVtjKzQ+PjJdKSkhPSgwfGYpJiYwfFZEKGMsbCk7KUE9OTtwPTB8YVtjPj4yXX1yZXR1cm4oMHxtKT4wJiYoMHxtKTwoKDB8YVs0Njg2Nl0pLTF8MCkmJigwfChmPTB8YVsoYz0oMHxhWzQ2ODY1XSkrKG08PDIpfDApPj4yXSkmJihhWyhBPWYrMTJ8MCk+''@;'; + put 'put ''PjJdPSgwfGFbQT4+Ml0pLTEpLGFbYz4+Ml09cCxhWyhBPXArMTJ8MCk+PjJdPTErKDB8YVtBPj4yXSkpLDB8cH1mdW5jdGlvbiBFVihsKXt2YXIgYz0wLGY9MDtyZXR1cm4oMHwobHw9MCkpPi0xJigwfGFbNDY4NjZdKT4oMHxsKSYmMCE9KDB8KGM9MHxhWyhmPSgwfGFbNDY4NjVdKSsobDw8''@;'; + put 'put ''Mil8MCk+PjJdKSk/LTI9PSgwfGFbYys4Pj4yXSkmJihhW2Y+PjJdPTAsYVsobD1jKzEyfDApPj4yXT1mPSgwfGFbbD4+Ml0pLTF8MCxmfHxGVihjLDE4NzQ0OCksYz0wKTpjPTAsMHxjfWZ1bmN0aW9uIHhWKGwpe3ZhciBjLGY7YVs0KyhmPTB8YVsobHw9MCk+PjJdKT4+Ml09YVsoYz1sKzR8''@;'; + put 'put ''MCk+PjJdLGFbYVtjPj4yXT4+Ml09ZixhW2wrOD4+Ml09LTJ9ZnVuY3Rpb24gSHkobCl7cmV0dXJuIDB8YVs0KyhsfD0wKT4+Ml19ZnVuY3Rpb24gazJlKGwpe3JldHVybiAwfGFbKGx8PTApPj4yXX1mdW5jdGlvbiBzdmUobCl7dmFyIGM7cmV0dXJuIDB8YVsobD0oYz0wfGFbOCsobHw9MCk+''@;'; + put 'put ''PjJdKT8wPT0oMHxmZVtsKzE2Pj4wXSk/YyszMnwwOmMrMzZ8MDoxODc2NzIpPj4yXX1mdW5jdGlvbiBXWChsKXt2YXIgYztyZXR1cm4gMHxhWyhsPShjPTB8YVs4KyhsfD0wKT4+Ml0pPzA9PSgwfGZlW2wrMTY+PjBdKT9jKzM2fDA6YyszMnwwOjE4NzY3Mik+PjJdfWZ1bmN0aW9uIE55KCl7''@;'; + put 'put ''WnkoMTg3NDgwLDI0KX1mdW5jdGlvbiBMYyhsLGMsZil7Zj0rZjt2YXIgYixwPTAsbT0wLEE9MCx3PTA7Yj1hZSxhZT1hZSszMnwwLG09MHxhWyhBPSgwfGFbNDY4NjldKSsoOTYqKDB8YVsxNisobHw9MCk+PjJdKXwwKSs4OHwwKT4+Ml0sX1sodz1iKSs4Pj4zXT1jPStjLF9bdysxNj4+M109''@;'; + put 'put ''ZixwPTB8VFYobCx3LG0pO2Rve2lmKDB8cCl7aWYoKDB8cCk8MCl7dz0wfHp5KDE4NzQ4MCksX1t3Kzg+PjNdPWMsX1t3KzE2Pj4zXT1mLGFbdz4+Ml09bSxhW0E+PjJdPXc7YnJlYWt9Zm9yKDsoMHwoQT0wfFRWKGwsdyxwPTB8YVttPj4yXSkpKT4wOyltPXA7MHxBJiYodz0wfHp5KDE4NzQ4''@;'; + put 'put ''MCksX1t3Kzg+PjNdPWMsX1t3KzE2Pj4zXT1mLGFbbT4+Ml09dyxhW3c+PjJdPXApfX13aGlsZSgwKTthZT1ifWZ1bmN0aW9uIFRWKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2Rve2lmKGYpaWYoKG09K19bYys4Pj4zXSk9PShiPStfW2Yr''@;'; + put 'put ''OD4+M10pJihwPStfW2MrMTY+PjNdKT09KEE9K19bZisxNj4+M10pKWM9MDtlbHNle2lmKGs9bS0oTT0rX1tsPj4zXSksdz1wLShtPStfW2wrOD4+M10pLGItPU0scD1BLW0sIShrPj0wKSl7aWYoYj49MCl7Yz0xO2JyZWFrfWlmKG09cC9iLChwPXcvayk8bSl7Yz0tMTticmVha31pZihwPm0p''@;'; + put 'put ''e2M9MTticmVha31jPWs+Yj8tMToxO2JyZWFrfWlmKCEoYjwwKSl7aWYoYz1iPjAsaz4wKXtpZighYyl7Yz1wPjA/LTE6MTticmVha31pZihtPXAvYiwocD13L2spPG0pe2M9LTE7YnJlYWt9aWYocD5tKXtjPTE7YnJlYWt9Yz1rPGI/LTE6MTticmVha31pZihjKXtjPXc8PTA/LTE6MTticmVh''@;'; + put 'put ''a31pZih3PHApe2M9cDw9MD8xOi0xO2JyZWFrfWM9dzw9MD8tMToxO2JyZWFrfWM9LTF9ZWxzZSBjPS0xfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gUGsobCxjLGYscCl7Y3w9MCxwfD0wO3ZhciBtLEE9MDtmb3IobT0wfGFbKGx8PTApKygyMCooZnw9MCl8MCk+PjJdLGY9bCsoMjAq''@;'; + put 'put ''ZnwwKSs0fDAsYz0xLGw9MDshKCgwfGMpPj0oMHxtKSk7KUE9bCsoKDB8YVtwKyhhWygwfGFbZj4+Ml0pKyhjPDwyKT4+Ml08PDIpPj4yXSk+MCYxKXwwLGM9YysxfDAsbD1BO3JldHVybiAwfGx9ZnVuY3Rpb24gRmsobCxjLGYpe3ZhciBwO2ZvcihmfD0wLHA9KGx8PTApKygyMCooY3w9MCl8''@;'; + put 'put ''MCl8MCxjPWwrKDIwKmN8MCkrNHwwLGw9MTshKCgwfGwpPj0oMHxhW3A+PjJdKSk7KWFbZisoYVsoMHxhW2M+PjJdKSsobDw8Mik+PjJdPDwyKT4+Ml09MSxsPWwrMXwwfWZ1bmN0aW9uIFlYKGwsYyxmKXt2YXIgcDtmb3IoZnw9MCxwPShsfD0wKSsoMjAqKGN8PTApfDApfDAsYz1sKygyMCpj''@;'; + put 'put ''fDApKzR8MCxsPTE7ISgoMHxsKT49KDB8YVtwPj4yXSkpOylhW2YrKGFbKDB8YVtjPj4yXSkrKGw8PDIpPj4yXTw8Mik+PjJdPTAsbD1sKzF8MH1mdW5jdGlvbiBJVihsLGMpe2x8PTA7dmFyIHAsZj0wLG09MDtmb3IocD0wfFFuKDB8QXIobT0oY3w9MCk8PDIsYykpLG09MHxRbihtKSxmPTA7''@;'; + put 'put ''Oyl7aWYoKDB8Zik+PSgwfGMpKXtmPTA7YnJlYWt9YVttKyhmPDwyKT4+Ml09cCsoKDB8QXIoZixjKSk8PDIpLGY9ZisxfDB9Zm9yKDshKCgwfGYpPj0oMHxjKSk7KU95KGYsbCxjLDB8YVttKyhmPDwyKT4+Ml0pLGY9ZisxfDA7cmV0dXJuIDB8bX1mdW5jdGlvbiBVWChsLGMpe2x8PTA7dmFy''@;'; + put 'put ''IE0sZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLEQ9MDtmb3IoTT0wfFFuKChjfD0wKTw8MiksZj0wLHA9MDshKCgwfGYpPj0oMHxjKSk7KWs9KDB8YVtsKygyMCpmfDApPj4yXSkrcHwwLGY9ZisxfDAscD1rO2ZvcihwPTB8UW4ocDw8MiksZj0wOyEoKDB8Zik+PSgwfGMpKTspYVtNKyhm''@;'; + put 'put ''PDwyKT4+Ml09MCxmPWYrMXwwO2ZvcihtPTA7ISgoMHxtKT49KDB8YykpOyl7Zm9yKGFbbCsoMjAqbXwwKSs4Pj4yXT1wLEZrKGwsbSxNKSxiPWwrKDIwKm18MCkrNHwwLGs9KHc9MHxhWyhBPWwrKDIwKm18MCl8MCk+PjJdKS0yfDAsZj0xOyEoKDB8Zik+PSgwfHcpKTspam5bcCsoZjw8Mik+''@;'; + put 'put ''PjJdPSsoaysoMHxhW2wrKDIwKihEPTB8YVsoMHxhW2I+PjJdKSsoZjw8Mik+PjJdKXwwKT4+Ml0pLSgoMHxQayhsLDAsRCxNKSk8PDEpfDApLGY9ZisxfDA7WVgobCxtLE0pLHA9cCsoYVtBPj4yXTw8Mil8MCxtPW0rMXwwfUZ0KE0pfWZ1bmN0aW9uIFFYKGwsYyxmKXtjfD0wLGZ8PTA7dmFy''@;'; + put 'put ''IHA9MCxtPTA7RnQoMHxhWyhwPTgrKGx8PTApfDApPj4yXSksYVtwPj4yXT0wO2U6ZG97aWYoMHxmKWZvcihwPTA7Oyl7aWYoKDB8cCk+PSgwfGMpKWJyZWFrIGU7YVtsKygyMCpwfDApKzg+PjJdPWYsbT1mKyhhW2wrKDIwKnB8MCk+PjJdPDwyKXwwLHA9cCsxfDAsZj1tfX13aGlsZSgwKX1m''@;'; + put 'put ''dW5jdGlvbiBKWChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7Zm9yKG09MCxBPTA7ISgoMHxtKT49KDB8YykpOyliPTB8YVtsKyhtPDwyKT4+Ml0sbT1tKzF8MCxBPSh3PStfW2IrKGY8PDMpPj4zXS0rX1tiKyhwPDwzKT4+M10pKncrQTtyZXR1cm4r''@;'; + put 'put ''ICtEMCgrQSl9ZnVuY3Rpb24gRFYobCxjLGYscCl7Y3w9MCwoMHwocHw9MCkpPigwfChmfD0wKSkmJihhWzQ2ODczXT1sfD0wLHgxKGMrKGY8PDIpfDAsMS1mK3B8MCw0LDc3KSl9ZnVuY3Rpb24gUTcobCxjLGYscCl7bHw9MCxjfD0wO3ZhciB3LG09MCxBPTA7dz1hZSxhZT1hZSsxNnwwLG09''@;'; + put 'put ''dywoMHwoZnw9MCkpPCgwfChwfD0wKSkmJihmdW5jdGlvbiB4cyhsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixrLE0sQT0wLHc9MCxEPTAsUj0wO0E9MHxUMSgpLEE9YysoKCgoKDB8VDEoKSk8PDE2fEEpPj4+MCklKCgxLWYrcHwwKT4+PjApfDApK2Y8PDIpfDAs''@;'; + put 'put ''Yj0wfGFbQT4+Ml0sYVtBPj4yXT1hWyhrPWMrKGY8PDIpfDApPj4yXSxhW2s+PjJdPWIsTT0rX1tsKyhiPDwzKT4+M10sQT1mKzF8MCxmPXA7ZTpmb3IoOyEoKDB8QSk+PSgwfGYpKTspe2Zvcig7ISgoMHxBKT49KDB8ZikpJiYrX1tsKyhhW2MrKEE8PDIpPj4yXTw8Myk+PjNdPD1NOylBPUEr''@;'; + put 'put ''MXwwO2Zvcig7Oyl7aWYoKDB8QSk+PSgwfGYpKWNvbnRpbnVlIGU7aWYoISgrX1tsKygodz0wfGFbKHA9YysoZjw8Mil8MCk+PjJdKTw8Myk+PjNdPk0pKWJyZWFrO2Y9ZistMXwwfUQ9MHxhWyhSPWMrKEE8PDIpfDApPj4yXSxhW1I+PjJdPXcsYVtwPj4yXT1ELEE9QSsxfDAsZj1mKy0xfDB9''@;'; + put 'put ''YVttPj4yXT1SPUErKCgrX1tsKyhhW2MrKEE8PDIpPj4yXTw8Myk+PjNdPk0pPDwzMT4+MzEpfDAsYVtrPj4yXT1hWyhSPWMrKFI8PDIpfDApPj4yXSxhW1I+PjJdPWJ9KGwsYyxmLHAsbSksUTcobCxjLGYsbT0oQT0wfGFbbT4+Ml0pLTF8MCksUTcobCxjLEE9QSsxfDAscCksMHxwZyhsLGMs''@;'; + put 'put ''ZixtKXx8UTcobCxjLGYsbSksMHxwZyhsLGMsQSxwKXx8UTcobCxjLEEscCkpLGFlPXd9ZnVuY3Rpb24gcGcobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MDtmb3IoQT0xO209ZisxfDAsKDB8Zik8KDB8cCkmMCE9KDB8QSk7KUE9K19bbCsoYVtjKyhmPDwyKT4+Ml08''@;'; + put 'put ''PDMpPj4zXT4rX1tsKyhhW2MrKG08PDIpPj4yXTw8Myk+PjNdPzA6QSxmPW07cmV0dXJuIDB8QX1mdW5jdGlvbiBYWChsLGMpe2x8PTAsY3w9MDt2YXIgcGUsZ2UsTGUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAsYmU9MCxPZT0wLFJlPTAsSGU9MDtp''@;'; + put 'put ''ZihMZT1hZSxhZT1hZSsxNnwwLGJlPTQsT2U9MHxCMCg0MCksYVtPZT4+Ml09MCxwZT1MZSxNbj0wLGdlPTB8YTAoMjMsNDAqY3wwKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8YmUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEh''@;'; + put 'put ''PSgwfHApKXtmb3IoZj0wLEc9MDshKCgwfGYpPj0oMHxjKSk7KUs9KDB8YVs0KygwfGFbbCsoZjw8Mik+PjJdKT4+Ml0pK0d8MCxmPWYrMXwwLEc9SztpZihNbj0wLEs9MHxhMCgyMywyNCpHfDApLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2Us''@;'; + put 'put ''MHxiZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMSE9KDB8cCkpe2ZvcihmPTAsTT0wOyEoKDB8TSk+PSgwfGMpKTspe2ZvcihhWyhEPWdlKyg0MCpNfDApfDApPj4yXT1LKygyNCpmfDApLFI9bCsoTTw8Mil8MCxtPTAsQT0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsdz0tMTc5NzY5MzEz''@;'; + put 'put ''NDg2MjMxNTdlMjkyLGI9LTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixrPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjshKCgwfG0pPj0oMHxhWzQrKHA9MHxhW1I+PjJdKT4+Ml0pKTspUmU9K19bKHA9MHxhW3A+PjJdKSsobTw8NCkrOD4+M10sX1tLKygyNCpmfDApPj4zXT1IZT0rX1twKyhtPDw0KT4+''@;'; + put 'put ''M10sX1tLKygyNCpmfDApKzg+PjNdPVJlLGFbSysoMjQqZnwwKSsxNj4+Ml09RCxhW0srKDI0KmZ8MCkrMjA+PjJdPTAsbT1tKzF8MCxmPWYrMXwwLEE9QTxIZT9BOkhlLHc9dz5IZT93OkhlLGI9Yj5SZT9iOlJlLGs9azxSZT9rOlJlO2FbZ2UrKDQwKk18MCkrND4+Ml09SysoMjQqKGYrLTF8''@;'; + put 'put ''MCl8MCksX1tnZSsoNDAqTXwwKSs4Pj4zXT1BLF9bZ2UrKDQwKk18MCkrMTY+PjNdPWssX1tnZSsoNDAqTXwwKSsyND4+M109dyxfW2dlKyg0MCpNfDApKzMyPj4zXT1iLE09TSsxfDB9YVtwZT4+Ml09RyxhW3BlKzQ+PjJdPWMsT2U9MHxQZigxODc0OTYsMSwwfE9lLDB8YmUpLGJlPURuLGY9''@;'; + put 'put ''TW49MCxNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfGJlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKT8oZj1EbixSPUssTT1LLEQ9Z2UpOihmPTAsUj1LLE09SyxEPWdlKX1lbHNlIGY9RG4sUj0wLE09SyxEPWdlfWVsc2UgZj1E''@;'; + put 'put ''bixSPTAsTT0wLEQ9MDtmb3IoOzspe2lmKDB8Zil7aWYoTW49MCxzcygxMDUsMHxnZSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfGJlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKSl7Zj1EbixEPW09RCxNPUc9TSxS''@;'; + put 'put ''PUs9Ujtjb250aW51ZX1pZihNbj0wLHNzKDEwNSwwfE0pLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxiZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMT09KDB8cCkpe2Y9RG4sRD1tPUQsTT1HPU0sUj1LPVI7Y29udGludWV9cD0x''@;'; + put 'put ''NzticmVha31pZihNbj0wLGY9MHxGbCg3OCwwfFIsMHxwZSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfGJlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxIT0oMHxtKSlpZihmfHwoTW49MCxmPTB8SnMoMjQsMHxsLDB8YywwfEQp''@;'; + put 'put ''LHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxiZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMSE9KDB8bSkpKWlmKE1uPTAsc3MoMTA1LDB8Z2UpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJd''@;'; + put 'put ''LDB8T2UsMHxiZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMSE9KDB8bSkpe2lmKE1uPTAsc3MoMTA1LDB8TSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfGJlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxIT0oMHxtKSl7''@;'; + put 'put ''cD0yNDticmVha31mPURuLEQ9bT1ELE09Rz1NLFI9Sz1SfWVsc2UgZj1EbixEPW09RCxNPUc9TSxSPUs9UjtlbHNlIGY9RG4sRD1tPUQsTT1HPU0sUj1LPVI7ZWxzZSBmPURuLEQ9bT1ELE09Rz1NLFI9Sz1SfXJldHVybiAxNz09KDB8cCk/Zj0wOjI0PT0oMHxwKSYmKGY9MD09KDB8ZikmMSks''@;'; + put 'put ''RnQoMHxPZSksYWU9TGUsMHxmfWZ1bmN0aW9uIHgyZShsLGMpe3ZhciBwLGY9MDtyZXR1cm4gMHwobD0wPT0oZj0rX1socD0wfGFbKGx8PTApPj4yXSk+PjNdLStfWyhsPTB8YVsoY3w9MCk+PjJdKT4+M10pJiYwPT0oZj0rX1twKzg+PjNdLStfW2wrOD4+M10pPzA6Zj4wPzE6LTEpfWZ1bmN0''@;'; + put 'put ''aW9uIEtYKGwsYyl7dmFyIHAsbSxBLHcsYixrLE0sZj0wO009YWUsYWU9YWUrNjR8MCxBPU0rMzJ8MCx3PU0rMjR8MCxiPU0rMTZ8MCxrPU0sJFgobHw9MCxjfD0wLG09TSs0OHwwKSxwPTB8YVsoZj1tKzh8MCk+PjJdO2Rve2lmKCgwfHApPjApZj0wO2Vsc2V7aWYoKDB8cCk8MCl7aWYoJFgo''@;'; + put 'put ''YyxsLG0pLCgwfChmPTB8YVtmPj4yXSkpPjApe2Y9MDticmVha31pZighKDB8cVgobCxjLHcsYixmPSgwfGYpPDA/MzowfHFoKGMsbCwoMHwoZj0wfGFbbT4+Ml0pKT4tMT9mOjAtZnwwKSkpKXtmPTA7YnJlYWt9fWVsc2UgaWYoKDB8KGY9MHxhW20+PjJdKSk9PSgwfGFbbSs0Pj4yXSk/KGY9''@;'; + put 'put ''MHxxaChsLGMsMCksZj0oMHxxaChsLGMsKDB8Zik8PSgwfHFoKGwsYywxKSkmMSkpPDwxKTpmPTB8cWgobCxjLCgwfGYpPi0xP2Y6MC1mfDApLCEoMHxxWChsLGMsdyxiLGYpKSl7Zj0wO2JyZWFrfV9baz4+M109K19bdz4+M10sX1trKzg+PjNdPStfW2I+PjNdLGFbQT4+Ml09YVtrPj4yXSxh''@;'; + put 'put ''W0ErND4+Ml09YVtrKzQ+PjJdLGFbQSs4Pj4yXT1hW2srOD4+Ml0sYVtBKzEyPj4yXT1hW2srMTI+PjJdLGY9MHxlSyhsLGMsQSl9fXdoaWxlKDApO3JldHVybiBhZT1NLDB8Zn1mdW5jdGlvbiAkWChsLGMsZil7dmFyIG0sQSx3LGssTSxwPTAsYj0wO3c9K19bKGx8PTApPj4zXSxiPStfW2wr''@;'; + put 'put ''OD4+M10sKDB8YVs0KyhwPTB8YVtsKzE2Pj4yXSk+PjJdKT09KDB8bCk/cD1sPTB8YVtwPj4yXToocD1sKzI0fDAsbD1sKzI0fDApLEE9K19bcD4+M10tdyxtPStfW2wrOD4+M10tYiwoMHxhWzQrKHA9MHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk9PSgwfGMpP3A9bD0wfGFbcD4+Ml06KHA9Yysy''@;'; + put 'put ''NHwwLGw9YysyNHwwKSxrPStfW3A+PjNdLXcsTT0rX1tsKzg+PjNdLWIsYVsoZnw9MCk+PjJdPWM9MD09KGI9KCtfW2MrOD4+M10tYikqQS0oK19bYz4+M10tdykqbSk/MDpiPjA/MTotMSxhW2YrND4+Ml09bD0wPT0oYj1NKkEtayptKT8wOmI+MD8xOi0xLGFbZis4Pj4yXT0wfEFyKGwsYyl9''@;'; + put 'put ''ZnVuY3Rpb24gcWgobCxjLGYpe3ZhciBtLEEsdyxiLGssTTtjfD0wLGZ8PTAsaz0rX1sobHw9MCk+PjNdLE09K19bbCs4Pj4zXSxiPStfWyhsPSgwfGFbNCsobT0wfGFbbCsxNj4+Ml0pPj4yXSk9PSgwfGwpPzB8YVttPj4yXTpsKzI0fDApPj4zXSx3PStfW2wrOD4+M107ZG97aWYoZil7aWYo''@;'; + put 'put ''KDB8YVs0KyhsPTB8YVtjKzE2Pj4yXSk+PjJdKT09KDB8Yykpe2M9MHxhW2w+PjJdO2JyZWFrfWM9YysyNHwwO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gQT0rX1tjPj4zXSwwfChrPT1iP2s9PUE/LTEhPSgwfHRLKE0sK19bYys4Pj4zXSx3KSkmMTowOjB8dEsoayxBLGIpKX1mdW5jdGlvbiBx''@;'; + put 'put ''WChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTA7ZTpkb3tpZigoMHxtKTwxKUE9MDtlbHNle1I9K19bbD4+M10sSz0rX1tsKzg+PjNdLE09K19bKEE9KDB8YVs0KyhBPTB8YVtsKzE2Pj4yXSk+PjJdKT09''@;'; + put 'put ''KDB8bCk/MHxhW0E+PjJdOmwrMjR8MCk+PjNdLGI9K19bQSs4Pj4zXSxEPStfW2M+PjNdLEc9K19bYys4Pj4zXSxrPStfWyhBPSgwfGFbNCsoQT0wfGFbYysxNj4+Ml0pPj4yXSk9PSgwfGMpPzB8YVtBPj4yXTpjKzI0fDApPj4zXSx3PStfW0ErOD4+M107dDpkb3tzd2l0Y2goMHxtKXtjYXNl''@;'; + put 'put ''IDM6aWYoUj09TSl7X1tmPj4zXT1SLHc9KEctdykvKEQtaykqKFItaykrdzticmVhayB0fWlmKEQ9PWspe19bZj4+M109RCx3PShLLWIpLyhSLU0pKihELU0pK2I7YnJlYWsgdH1fW2Y+PjNdPSgoSy09KE09KEstYikvKFItTSkpKlIpLShHLT0oaz0oRy13KS8oRC1rKSkqRCkpLyh3PWstTSks''@;'; + put 'put ''dz0oaypLLUcqTSkvdzticmVhayB0O2Nhc2UgMjppZigtMT09KDB8cWgobCxjLDApKSktMT09KDB8cWgoYyxsLDEpKT8oTT0obT0tMT09KDB8cWgoYyxsLDApKSk/TTpSLGs9RCxiPW0/YjpLLHc9Ryk6KE09ayxrPUQsYj13LHc9Ryk7ZWxzZSBpZigtMSE9KDB8cWgobCxjLDEpKSl7aWYoLTEh''@;'; + put 'put ''PSgwfHFoKGMsbCwwKSkpe0E9MDticmVhayBlfWs9Uix3PUt9ZWxzZSBNPUQsYj1HO19bZj4+M109LjUqKGsrTSksdz0uNSoodytiKTticmVhaztjYXNlIDE6aWYoKEctSykqKFItTSk9PShELVIpKihLLWIpKXtfW2Y+PjNdPUQsdz1HO2JyZWFrIHR9X1tmPj4zXT1rO2JyZWFrIHQ7ZGVmYXVs''@;'; + put 'put ''dDpBPTE7YnJlYWsgZX19d2hpbGUoMCk7X1twPj4zXT13LEE9MX19d2hpbGUoMCk7cmV0dXJuIDB8QX1mdW5jdGlvbiBlSyhsLGMsZil7Znw9MDt2YXIgQSx3LGIsayxNLEQsUixnZSxHLHA9MCxtPTAscGU9MDtnZT1hZSxhZT1hZSsxNnwwLFI9K19bKGx8PTApPj4zXSxHPStfW2wrOD4+M10s''@;'; + put 'put ''TT0rX1socD0oMHxhWzQrKHA9MHxhW2wrMTY+PjJdKT4+Ml0pPT0oMHxsKT8wfGFbcD4+Ml06bCsyNHwwKT4+M10sYj0rX1twKzg+PjNdLGs9K19bKGN8PTApPj4zXSxEPStfW2MrOD4+M10sdz0rX1socD0oMHxhWzQrKHA9MHxhW2MrMTY+PjJdKT4+Ml0pPT0oMHxjKT8wfGFbcD4+Ml06Yysy''@;'; + put 'put ''NHwwKT4+M10sQT0rX1twKzg+PjNdO2U6ZG97aWYoUiE9TSZrIT13KXBlPTE4O2Vsc2V7ZG97aWYoUj09TSl7aWYoUj09KG09K19bZj4+M10pJiZHPT0rX1tmKzg+PjNdKWJyZWFrO2lmKE0hPW0pe3BlPTE4O2JyZWFrIGV9aWYoYiE9K19bZis4Pj4zXSl7cGU9MTg7YnJlYWsgZX19fXdoaWxl''@;'; + put 'put ''KDApO2lmKGs9PXcpe2lmKGs9PShtPStfW2Y+PjNdKSYmRD09K19bZis4Pj4zXSl7cD0wO2JyZWFrfXc9PW0mJkE9PStfW2YrOD4+M10/cD0wOnBlPTE4fWVsc2UgcD0wfX13aGlsZSgwKTtyZXR1cm4gMTg9PSgwfHBlKSYmKHA9MSksYWU9Z2UsMHxwfWZ1bmN0aW9uIHRLKGwsYyxmKXtyZXR1''@;'; + put 'put ''cm4gMHwoKGw9K2wpPT0oYz0rYyl8Yz09KGY9K2YpPzA6KGw8Yz9jPGY6ZjxjKT8xOi0xKX1mdW5jdGlvbiBySyhsLGMsZixwLG0sQSl7bHw9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBSLEcsSyxnZSx3PTAsYj0wLGs9MCxNPTAsRD0wLHBlPTAsYmU9MDtLPTB8UW4ocGU9KGN8PTApPDwz''@;'; + put 'put ''KSxwZT0wfFFuKHBlKSxnZT0zMCpjfDAsUj0oMHxmKTwoMHxjKT9mOmMsRz1jKy0xfDAsRD0wPT0oMHxBKSxmPTAsdz0wO2U6Zm9yKDshKCgwfHcpPj0oMHxSKSk7KXtrPTB8YVtwKyh3PDwyKT4+Ml07ZG97dDpkb3tpZihEKWY9MDtlbHNlIGZvcihmPTA7Oyl7aWYoKDB8Zik9PSgwfGMpKXtm''@;'; + put 'put ''PTA7YnJlYWsgdH1fW2srKGY8PDMpPj4zXT0rKDB8KDB8VDEoKSklMTAwKSxmPWYrMXwwfX13aGlsZSgwKTtmb3IoOygwfGYpIT0oMHx3KTspZ2coaywwLEcsLStvaChBPTB8YVtwKyhmPDwyKT4+Ml0sMCxHLGspLEEpLGY9ZisxfDA7Yj0rbXAoaywwLEcpfXdoaWxlKGI8MWUtMTApO0o3KGss''@;'; + put 'put ''MCxHLDEvYixrKSxmPTA7ZG97Zm9yKCQzKHBlLDAsRyxrKSxPVihsLGMsYyxrLEspLCQzKGssMCxHLEspLEE9MDsoMHxBKSE9KDB8dyk7KWdnKGssMCxHLC0rb2goYmU9MHxhW3ArKEE8PDIpPj4yXSwwLEcsayksYmUpLEE9QSsxfDA7aWYoYmU9ZixmPWYrMXwwLCEoKDB8YmUpPCgwfGdlKSYh''@;'; + put 'put ''KChiPSttcChrLDAsRykpPDFlLTEwKSkpYnJlYWsgZTtKNyhrLDAsRywxL2IsayksTT0rb2goaywwLEcscGUpfXdoaWxlKCtlbygrTSk8Ljk5OSk7X1ttKyh3PDwzKT4+M109TSpiLHc9dysxfDB9Zm9yKDshKCgwfHcpPj0oMHxSKSk7KXtmb3Ioaz0wfGFbcCsodzw8Mik+PjJdLEE9MDs7KXtp''@;'; + put 'put ''ZigoMHxBKT49KDB8Yykpe0E9MDticmVha31fW2srKEE8PDMpPj4zXT0rKDB8KDB8VDEoKSklMTAwKSxBPUErMXwwfWZvcig7ISgoMHxBKT49KDB8dykpOylnZyhrLDAsRywtK29oKGJlPTB8YVtwKyhBPDwyKT4+Ml0sMCxHLGspLGJlKSxBPUErMXwwO0o3KGssMCxHLDEvK21wKGssMCxHKSxr''@;'; + put 'put ''KSxfW20rKHc8PDMpPj4zXT0wLHc9dysxfDB9Zm9yKEQ9UistMXwwLHc9MDshKCgwfHcpPj0oMHxEKSk7KXtmb3IoYj0rX1sobD1tKyh3PDwzKXwwKT4+M10sQT13LGs9Yz13KzF8MDshKCgwfGspPj0oMHxSKSk7KWI9KGJlPWI8KE09K19bbSsoazw8Myk+PjNdKSk/TTpiLEE9YmU/azpBLGs9''@;'; + put 'put ''aysxfDA7KDB8QSkhPSgwfHcpPygkMyhLLDAsRywwfGFbKGs9cCsodzw8Mil8MCk+PjJdKSwkMygwfGFbaz4+Ml0sMCxHLDB8YVsoYmU9cCsoQTw8Mil8MCk+PjJdKSwkMygwfGFbYmU+PjJdLDAsRyxLKSxfW20rKEE8PDMpPj4zXT0rX1tsPj4zXSxfW2w+PjNdPWIsdz1jKTp3PWN9cmV0dXJu''@;'; + put 'put ''IEZ0KEspLEZ0KHBlKSwoMHxmKTw9KDB8Z2UpfDB9ZnVuY3Rpb24gb2gobCxjLGYscCl7dmFyIG09MCxBPTA7Zm9yKEE9MCxtPTEtKGN8PTApKyhmfD0wKXwwLHA9KHB8PTApKyhjPDwzKXwwLGY9KGx8PTApKyhjPDwzKXwwO207KUE9K19bcD4+M10qK19bZj4+M10rQSxtPW0rLTF8MCxwPXAr''@;'; + put 'put ''OHwwLGY9Zis4fDA7cmV0dXJuK0F9ZnVuY3Rpb24gZ2cobCxjLGYscCxtKXtwPStwO3ZhciBBPTA7Zm9yKEE9MS0oY3w9MCkrKGZ8PTApfDAsbT0obXw9MCkrKGM8PDMpfDAsZj0obHw9MCkrKGM8PDMpfDA7QTspX1tmPj4zXT0rX1tmPj4zXSsgK19bbT4+M10qcCxBPUErLTF8MCxtPW0rOHww''@;'; + put 'put ''LGY9Zis4fDB9ZnVuY3Rpb24gbXAobCxjLGYpe3JldHVybisgK0QwKCsgK29oKGx8PTAsY3w9MCxmfD0wLGwpKX1mdW5jdGlvbiBKNyhsLGMsZixwLG0pe3A9K3A7dmFyIEE9MDtmb3IoQT0xLShjfD0wKSsoZnw9MCl8MCxtPShtfD0wKSsoYzw8Myl8MCxmPShsfD0wKSsoYzw8Myl8MDtBOylf''@;'; + put 'put ''W2Y+PjNdPStfW20+PjNdKnAsQT1BKy0xfDAsbT1tKzh8MCxmPWYrOHwwfWZ1bmN0aW9uICQzKGwsYyxmLHApe3ZhciBtPTA7Zm9yKG09MS0oY3w9MCkrKGZ8PTApfDAscD0ocHw9MCkrKGM8PDMpfDAsZj0obHw9MCkrKGM8PDMpfDA7bTspX1tmPj4zXT0rX1twPj4zXSxtPW0rLTF8MCxwPXAr''@;'; + put 'put ''OHwwLGY9Zis4fDB9ZnVuY3Rpb24gT1YobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wLGs9MDtmb3IoYj0wOyEoKDB8Yik+PSgwfGMpKTspe2ZvcihrPWwrKGI8PDIpfDAsQT0wLHc9MDshKCgwfHcpPj0oMHxmKSk7KUE9K19bcCsodzw8Myk+PjNd''@;'; + put 'put ''KitfWygwfGFbaz4+Ml0pKyh3PDwzKT4+M10rQSx3PXcrMXwwO19bbSsoYjw8Myk+PjNdPUEsYj1iKzF8MH19ZnVuY3Rpb24gb0sobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MDtmb3IoKHc9MHxhWyhtfD0wKT4+''@;'; + put 'put ''Ml0pPyhBPTB8VWEoMHxhW3c+PjJdLDB8QXIoMjAqZnwwLHApKSxLPTB8VWEodyxmPDwyKSk6KEE9MHxCMCgwfEFyKDIwKmZ8MCxwKSksSz0wfEIwKGY8PDIpKSxhW20+PjJdPUssdz0wOzspe2lmKCgwfHcpPj0oMHxmKSl7bT0wO2JyZWFrfWFbSysodzw8Mik+PjJdPUEsdz13KzF8MCxBPUEr''@;'; + put 'put ''KHA8PDIpfDB9Zm9yKDshKCgwfG0pPj0oMHxmKSk7KXtmb3Ioaz0wfGFbbCsoMjAqbXwwKSs0Pj4yXSxNPTB8YVtsKygyMCptfDApKzg+PjJdLEQ9MHxhW2wrKDIwKm18MCk+PjJdLFI9SysobTw8Mil8MCxBPTA7ISgoMHxBKT49KDB8cCkpOyl7Zm9yKEc9YysoQTw8Mil8MCxiPTAsdz0wOyEo''@;'; + put 'put ''KDB8dyk+PSgwfEQpKTspYj0rX1soMHxhW0c+PjJdKSsoYVtrKyh3PDwyKT4+Ml08PDMpPj4zXSoram5bTSsodzw8Mik+PjJdK2Isdz13KzF8MDtqblsoMHxhW1I+PjJdKSsoQTw8Mik+PjJdPWIsQT1BKzF8MH1tPW0rMXwwfX1mdW5jdGlvbiBhOChsLGMpe3ZhciBmPTAscD0wLG09MDtmb3Io''@;'; + put 'put ''Zj0wLHA9Y3w9MCxtPWx8PTA7bTspZj0rX1twPj4zXStmLHA9cCs4fDAsbT1tKy0xfDA7Zm9yKGYvPSsoMHxsKTtsOylfW2M+PjNdPStfW2M+PjNdLWYsYz1jKzh8MCxsPWwrLTF8MH1mdW5jdGlvbiBPZihsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAs''@;'; + put 'put ''az0wLE09MDtmb3Iodz0wOyEoKDB8dyk+PSgwfGMpKTspe2ZvcihiPTB8YVtsKygyMCp3fDApPj4yXSxrPWwrKDIwKnd8MCkrOHwwLE09bCsoMjAqd3wwKSs0fDAsbT0wLEE9MDshKCgwfEEpPj0oMHxiKSk7KW09K19bZisoYVsoMHxhW00+PjJdKSsoQTw8Mik+PjJdPDwzKT4+M10qK2puWygw''@;'; + put 'put ''fGFbaz4+Ml0pKyhBPDwyKT4+Ml0rbSxBPUErMXwwO19bcCsodzw8Myk+PjNdPW0sdz13KzF8MH19ZnVuY3Rpb24gcTMobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wO2Zvcih3PTA7ISgoMHx3KT49KDB8YykpOyl7Zm9yKGI9bCsodzw8Mil8MCxtPTAs''@;'; + put 'put ''QT0wOygwfEEpIT0oMHxjKTspbT0rX1tmKyhBPDwzKT4+M10qK2puWygwfGFbYj4+Ml0pKyhBPDwyKT4+Ml0rbSxBPUErMXwwO19bcCsodzw8Myk+PjNdPW0sdz13KzF8MH19ZnVuY3Rpb24gWkQobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wO2ZvcihtPTA7ISgoMHxtKT49''@;'; + put 'put ''KDB8bCkpOylfW3ArKG08PDMpPj4zXT0rX1tjKyhtPDwzKT4+M10tK19bZisobTw8Myk+PjNdLG09bSsxfDB9ZnVuY3Rpb24gSGsobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wO2ZvcihtPTA7ISgoMHxtKT49KDB8bCkpOylfW3ArKG08PDMpPj4zXT0rX1tmKyhtPDwzKT4+''@;'; + put 'put ''M10rICtfW2MrKG08PDMpPj4zXSxtPW0rMXwwfWZ1bmN0aW9uIFZ5KGwsYyxmLHApe2x8PTAsY3w9MCxmPStmLHB8PTA7dmFyIG09MDtmb3IobT0wOyEoKDB8bSk+PSgwfGwpKTspX1twKyhtPDwzKT4+M109K19bYysobTw8Myk+PjNdKmYsbT1tKzF8MH1mdW5jdGlvbiBSVihsLGMsZil7bHw9''@;'; + put 'put ''MCxjfD0wLGZ8PTA7dmFyIHA9MDtmb3IocD0wOyEoKDB8cCk+PSgwfGwpKTspX1tmKyhwPDwzKT4+M109K19bYysocDw8Myk+PjNdLHA9cCsxfDB9ZnVuY3Rpb24gdnAobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wO2ZvcihwPTAsbT0wOyEoKDB8bSk+PSgwfGwpKTspcD0rX1tm''@;'; + put 'put ''KyhtPDwzKT4+M10qK19bYysobTw8Myk+PjNdK3AsbT1tKzF8MDtyZXR1cm4rcH1mdW5jdGlvbiBlZChsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTA7Zm9yKGY9MCxwPS0xZTUwOyEoKDB8Zik+PSgwfGwpKTspbT0rZW8oKyArX1tjKyhmPDwzKT4+M10pLGY9ZisxfDAscD1tPnA/bTpw''@;'; + put 'put ''O3JldHVybitwfWZ1bmN0aW9uIEJWKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MDtmb3IoYj0wOygwfGIpPCgwfGMpOyl7Zm9yKEE9MCx3PTA7ISgoMHx3KT49KDB8ZikpOylBPStfW3ArKHc8PDMpPj4zXSorX1soMHxhW2wrKHc8PDIpPj4yXSkr''@;'; + put 'put ''KGI8PDMpPj4zXStBLHc9dysxfDA7X1ttKyhiPDwzKT4+M109QSxiPWIrMXwwfX1mdW5jdGlvbiBsOChsLGMpe3ZhciBmPTAscD0wLG09MDtmb3IoZj0wLHA9Y3w9MCxtPWx8PTA7bTspZj0ram5bcD4+Ml0rZixwPXArNHwwLG09bSstMXwwO2ZvcihmLz0rKDB8bCk7bDspam5bYz4+Ml09K2pu''@;'; + put 'put ''W2M+PjJdLWYsYz1jKzR8MCxsPWwrLTF8MH1mdW5jdGlvbiB0ZChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDtmb3IobT0wOzspe2lmKCgwfG0pPj0oMHxjKSl7dz0wLGs9MCxSPWM7YnJlYWt9am5b''@;'; + put 'put ''cCsobTw8Mik+PjJdPTAsbT1tKzF8MH1mb3IoOyEoKDB8ayk+PSgwfGMpKTspe2ZvcihBPStqbltsKyh3PDwyKT4+Ml0qKEQ9K2puW2YrKGs8PDIpPj4yXSksYj1NPWsrMXwwLG09dzttPW0rMXwwLCgwfGIpIT0oMHxjKTspRz0ram5bZisoYjw8Mik+PjJdKihwZT0ram5bbCsobTw8Mik+PjJd''@;'; + put 'put ''KStBLGpuWyhLPXArKGI8PDIpfDApPj4yXT0ram5bSz4+Ml0rcGUqRCxBPUcsYj1iKzF8MDtqblsoSz1wKyhrPDwyKXwwKT4+Ml09K2puW0s+PjJdK0Esdz13K1J8MCxrPU0sUj1SKy0xfDB9fWZ1bmN0aW9uIHpEKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MDtmb3IobT0w''@;'; + put 'put ''OyEoKDB8bSk+PSgwfGwpKTspam5bcCsobTw8Mik+PjJdPStqbltmKyhtPDwyKT4+Ml0rICtqbltjKyhtPDwyKT4+Ml0sbT1tKzF8MH1mdW5jdGlvbiBHRChsLGMsZixwKXtsfD0wLGN8PTAsZj0rZixwfD0wO3ZhciBtPTAsQT0wO2ZvcihtPTA7ISgoMHxtKT49KDB8bCkpOylqblsoQT1jKyht''@;'; + put 'put ''PDwyKXwwKT4+Ml09K2puW3ArKG08PDIpPj4yXSpmKyAram5bQT4+Ml0sbT1tKzF8MH1mdW5jdGlvbiBhSyhsLGMsZixwKXtsfD0wLGN8PTAsZj0rZixwfD0wO3ZhciBtPTA7Zm9yKG09MDshKCgwfG0pPj0oMHxsKSk7KWpuW3ArKG08PDIpPj4yXT0ram5bYysobTw8Mik+PjJdKmYsbT1tKzF8''@;'; + put 'put ''MH1mdW5jdGlvbiBsSyhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MDtmb3IocD0wOyEoKDB8cCk+PSgwfGwpKTspYVtmKyhwPDwyKT4+Ml09YVtjKyhwPDwyKT4+Ml0scD1wKzF8MH1mdW5jdGlvbiBYNyhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTA7Zm9yKHA9MCxtPTA7''@;'; + put 'put ''ISgoMHxtKT49KDB8bCkpOylwKz0ram5bZisobTw8Mik+PjJdKitqbltjKyhtPDwyKT4+Ml0sbT1tKzF8MDtyZXR1cm4rcH1mdW5jdGlvbiBXRChsLGMsZil7bHw9MCxjPStjLGZ8PTA7dmFyIHA9MDtmb3IocD0wOyEoKDB8cCk+PSgwfGwpKTspX1tmKyhwPDwzKT4+M109YyxwPXArMXwwfWZ1''@;'; + put 'put ''bmN0aW9uIGp5KGwsYyxmKXtsfD0wLGM9K2MsZnw9MDt2YXIgcD0wO2ZvcihwPTA7ISgoMHxwKT49KDB8bCkpOylqbltmKyhwPDwyKT4+Ml09YyxwPXArMXwwfWZ1bmN0aW9uIEwyZShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTA7Zm9yKGY9LTEuMDAwMDAwMDE1MDQ3NDY2MmUzMCxw''@;'; + put 'put ''PTA7ISgoMHxwKT49KDB8bCkpOylmPShtPStlbygrICtqbltjKyhwPDwyKT4+Ml0pKT5mP206ZixwPXArMXwwO3JldHVybitmfWZ1bmN0aW9uIE5rKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MDtmb3IoZj0wOyEoKDB8Zik+PSgwfGwpKTspam5bKHA9YysoZjw8Mil8MCk+PjJdPSht''@;'; + put 'put ''PStqbltwPj4yXSkqbSxmPWYrMXwwfWZ1bmN0aW9uIHNLKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MDtmb3IoZj0wOyEoKDB8Zik+PSgwfGwpKTspMCE9KG09K2puWyhwPWMrKGY8PDIpfDApPj4yXSkmJihqbltwPj4yXT0xL20pLGY9ZisxfDB9ZnVuY3Rpb24gUFYobCxjLGYpe2x8''@;'; + put 'put ''PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wO2ZvcihwPTA7ISgoMHxwKT49KDB8bCkpOykobT0ram5bYysocDw8Mik+PjJdKT49MCYmKGpuW2YrKHA8PDIpPj4yXT0rRDAoK20pKSxwPXArMXwwfWZ1bmN0aW9uIHVLKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MDtmb3IoZj0wOyEoKDB8''@;'; + put 'put ''Zik+PSgwfGwpKTspKG09K2puWyhwPWMrKGY8PDIpfDApPj4yXSk+MCYmKGpuW3A+PjJdPTEvK0QwKCttKSksZj1mKzF8MH1mdW5jdGlvbiBaeShsLGMpe2N8PTA7dmFyIGY9MDthWyhsfD0wKT4+Ml09MCwzJmMmJihjPTQlKGM+Pj4wKXwwPzB8QXIoNC8oKDB8ZnVuY3Rpb24gTzJlKGwpe2x8''@;'; + put 'put ''PTA7dmFyIGM9MCxmPTA7Zj00O2U6Zm9yKDs7KXtmb3IoYz1mOzspe2lmKCgwfGMpPT0oMHxsKSlicmVhayBlO2lmKCgwfGMpPD0oMHxsKSlicmVhaztjPWMtbHwwfWY9YyxsPWwtY3wwfXJldHVybiAwfGx9KGMpKT4+PjApfDAsYyk6NCksYVtsKzg+PjJdPWMsYz0wfGFbKGw9bCs0fDApPj4y''@;'; + put 'put ''XTtlOmRve2lmKDB8Yylmb3IoOzspe2lmKCFjKWJyZWFrIGU7Zj0wfGFbYz4+Ml0sRnQoMHxhW2MrND4+Ml0pLEZ0KGMpLGM9Zn19d2hpbGUoMCk7YVtsPj4yXT0wfWZ1bmN0aW9uIHp5KGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7aWYoIShjPTB8YVsobHw9MCk+PjJdKSl7Zm9yKGY9MHxhW2wr''@;'; + put 'put ''OD4+Ml0scD0wfFFuKDgpLG09MHxRbigwfEFyKDB8YVs0Njg1NV0sZikpLGFbcCs0Pj4yXT1tLGM9MDshKCgwfGMpPj0oMHxhWzQ2ODU1XSkpOylGVihtKygwfEFyKGMsZikpfDAsbCksYz1jKzF8MDthW3A+PjJdPWFbKGM9bCs0fDApPj4yXSxhW2M+PjJdPXAsYz0wfGFbbD4+Ml19cmV0dXJu''@;'; + put 'put ''IGFbbD4+Ml09YVtjPj4yXSwwfGN9ZnVuY3Rpb24gRlYobCxjKXthWyhsfD0wKT4+Ml09YVsoY3w9MCk+PjJdLGFbYz4+Ml09bH1mdW5jdGlvbiBSMmUobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIE0sRCxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihEPTB8dnIoKGN8PTApPDwzKSxtPTB8''@;'; + put 'put ''YVsoTT1sKzh8MCk+PjJdLGZ1bmN0aW9uIGZ2ZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBiLHA9MCxtPTAsQT0wLHc9MCxrPTAsTT0wO2ZvcihiPTE2KyhsfD0wKXwwLEE9MDshKCgwfEEpPj0oMHxjKSk7KXtpZigwfGFbYj4+Ml0pe2ZvcihrPTB8YVtsKygyMCpBfDApPj4yXSxNPWwrKDIwKkF8''@;'; + put 'put ''MCkrOHwwLHc9bCsoMjAqQXwwKSsxNnwwLHA9MCxtPTE7ISgoMHxtKT49KDB8aykpOylwKz0ram5bKDB8YVt3Pj4yXSkrKG08PDIpPj4yXSoram5bKDB8YVtNPj4yXSkrKG08PDIpPj4yXSxtPW0rMXwwO19bZisoQTw8Myk+PjNdPXB9QT1BKzF8MH19KGwsYyxEKSxmdW5jdGlvbiBJMmUobCxj''@;'; + put 'put ''KXtsfD0wLGN8PTA7dmFyIGY9MDtmb3IoZj0wOyEoKDB8Zik+PSgwfGwpKTspX1tjKyhmPDwzKT4+M109KygwfCgwfFQxKCkpJTUwMCksZj1mKzF8MDthOChsLGMpfShjLGYpLEE9MCx3PTA7ISgoMHx3KT49KDB8YykpOylBPSgwfGFbbCsoMjAqd3wwKT4+Ml0pK0F8MCx3PXcrMXwwO2ZvcihB''@;'; + put 'put ''PTB8UW4oQTw8MiksYj0wOyEoKDB8Yik+PSgwfGMpKTspe2ZvcihhW2wrKDIwKmJ8MCkrOD4+Ml09QSxqbltBPj4yXT0rKDEtKGs9MHxhW2wrKDIwKmJ8MCk+PjJdKXwwKSx3PTE7ISgoMHx3KT49KDB8aykpOylqbltBKyh3PDwyKT4+Ml09MSx3PXcrMXwwO0E9QSsoazw8Mil8MCxiPWIrMXww''@;'; + put 'put ''fWZvcih3PTB8ZnVuY3Rpb24gbVYobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLG09K20sQXw9MDt2YXIgayxNLEQsUixLLHBlLGdlLE9lLHc9MCxiPTAsRz0wLGJlPTA7Zm9yKE9lPWFlLGFlPWFlKzE2fDAsTT1PZSxLPTB8UW4oRz0ocHw9MCk8PDMpLHBlPTB8UW4oRyksZ2U9MHxRbihH''@;'; + put 'put ''KSxEPTB8UW4oRyksUj0wfFFuKEcpLFJWKHAsZixHPTB8UW4oRykpLGE4KHAsRyksYTgocCxjKSxPZihsLHAsYyxEKSxaRChwLEcsRCxLKSxSVihwLEsscGUpLGs9QSstMXwwLGY9MCx3PSt2cChwLEssSyk7Oyl7aWYoKDB8Zik+PSgwfEEpKXtmPTA7YnJlYWt9aWYoISgrZWQocCxLKT5tKSl7''@;'; + put 'put ''Zj0wO2JyZWFrfWlmKE9mKGwscCxwZSxnZSksMD09KGI9K3ZwKHAscGUsZ2UpKSl7Zj0wO2JyZWFrfWlmKFZ5KHAscGUsYj13L2IsUiksSGsocCxjLFIsYyksKDB8Zik8KDB8aykpe2lmKFZ5KHAsZ2UsYixnZSksWkQocCxLLGdlLEspLGI9K3ZwKHAsSyxLKSwwPT13KXtiZT03O2JyZWFrfVZ5''@;'; + put 'put ''KHAscGUsYi93LHBlKSxIayhwLEsscGUscGUpLHc9Yn1mPWYrMXwwfXJldHVybiA3PT0oMHxiZSkmJigkcigxLDkzMjQyLE0pLGY9MSksRnQoSyksRnQocGUpLEZ0KGdlKSxGdChEKSxGdChSKSxGdChHKSxhZT1PZSwwfGZ9KGwsZixELGMsLjAwMSxwKSxGdCgwfGFbTT4+Ml0pLEE9MDshKCgw''@;'; + put 'put ''fEEpPj0oMHxjKSk7KWFbbCsoMjAqQXwwKSs4Pj4yXT1tLG09bSsoYVtsKygyMCpBfDApPj4yXTw8Mil8MCxBPUErMXwwO3JldHVybiBGdChEKSx3Pj4+MzF8MH1mdW5jdGlvbiBIVihsLGMsZixwLG0sQSx3LGIsayl7bHw9MCx3PSt3LGw9YWUsYWU9YWUrMTZ8MCwwfGFbNDY5MTNdfHwoYVs0''@;'; + put 'put ''NjkxM109MSwkcigxLDkzODIwLGwpKSxhZT1sfWZ1bmN0aW9uIEIyZShsLGMsZixwKXt2YXIgbSxBLHcsYixrO3JldHVybiBsfD0wLGN8PTAsZnw9MCxtPWFlLGFlPWFlKzMyfDAsaz1tKzIwfDAsYj1tKzEyfDAsdz1tKzh8MCxhWyhBPW0rMTZ8MCk+PjJdPXB8PTAsYVtiPj4yXT0wLGFbdz4+''@;'; + put 'put ''Ml09MCxmdW5jdGlvbiBQaChsLGMsZixwKXt2YXIgbSxBO2x8PTAsY3w9MCxwfD0wLG09YWUsYWU9YWUrMTZ8MCxmdW5jdGlvbiAkZihsLGMpe2FbKGx8PTApPj4yXT0wfFFuKChjfD0wKTw8NCksYVtsKzQ+PjJdPWMsYVtsKzg+PjJdPTB9KEE9bSxmfD0wKSxmdW5jdGlvbiBxZihsLGMsZixw''@;'; + put 'put ''KXtsfD0wLGZ8PTAscHw9MDt2YXIgayxNLEQsUixLLHBlLGdlLE9lLExlLFJlLG50LG90LFN0LG09MCxBPTAsdz0wLGI9MCxHPTAsYmU9MCxIZT0wLFZlPTAscWU9MCxXZT0wO2ZvcihTdD1hZSxhZT1hZSs2NHwwLHBlPVN0KzMyfDAsT2U9U3QrNDh8MCxMZT1TdCsxNnwwLFJlPVN0LG50PTB8''@;'; + put 'put ''UW4oYmU9KGN8PTApPDwyKSxvdD0wfFFuKGJlKSxhW0xlPj4yXT0wLGFbTGUrND4+Ml09MCxhW0xlKzg+PjJdPTAsYVtMZSsxMj4+Ml09MCxnZT0wfFFuKGJlKSxiZT0wfFFuKGJlKSxtPTA7ISgoMHxtKT49KDB8YykpOylhW2dlKyhtPDwyKT4+Ml09bSxtPW0rMXwwO2ZvcihRNyhsLGdlLDAs''@;'; + put 'put ''Sz1jKy0xfDApLG09MDshKCgwfG0pPj0oMHxjKSk7KWFbYmUrKGFbZ2UrKG08PDIpPj4yXTw8Mik+PjJdPW0sbT1tKzF8MDtmb3IoZnVuY3Rpb24gdVAobCxjLGYscCl7Y3w9MCxmfD0wO3ZhciBtLEE9MCx3PTAsYj0wLGs9MCxNPTA7Zm9yKGFbNCsobHw9MCk+PjJdPW09KHB8PTApLTF8MCxh''@;'; + put 'put ''W2wrOD4+Ml09bSxhW2w+PjJdPTB8UW4obTw8NCkscD0wOyEoKDB8cCk+PSgwfG0pKTspYj0rX1tjKygoaz0wfGFbZisoKEE9cCsxfDApPDwyKT4+Ml0pPDwzKT4+M10tK19bYysoKE09MHxhW2YrKHA8PDIpPj4yXSk8PDMpPj4zXSxhWyh3PTB8YVtsPj4yXSkrKHA8PDQpPj4yXT1NLGFbdyso''@;'; + put 'put ''cDw8NCkrND4+Ml09ayxfW3crKHA8PDQpKzg+PjNdPWIscD1BO2ZvcihwPSgwfG0pLzJ8MDshKCgwfHApPD0tMSk7KV81KGwscCkscD1wKy0xfDB9KE9lLGwsZ2UsYyksbT0xOzspe2lmKCgwfG0pPj0oMHxjKSl7bT0wO2JyZWFrfWFbbnQrKGFbZ2UrKG08PDIpPj4yXTw8Mik+PjJdPWFbZ2Ur''@;'; + put 'put ''KG0rLTE8PDIpPj4yXSxtPW0rMXwwfWZvcig7ISgoMHxtKT49KDB8SykpOylhW290KyhhW2dlKyhtPDwyKT4+Ml08PDIpPj4yXT1hW2dlKygoRz1tKzF8MCk8PDIpPj4yXSxtPUc7Zm9yKGs9cCs4fDAsTT1wKzR8MCxEPUxlKzR8MCxSPVJlKzR8MCxHPVJlKzh8MCxiPTA7ISgoMHxiKT49KDB8''@;'; + put 'put ''ZikpJiYoMHxjUChPZSxMZSkpPDwyND4+MjQ7KSgwfChtPTB8YVtrPj4yXSkpPCgwfChjPTB8YVtNPj4yXSkpP2M9MHxhW3A+PjJdOihhW00+PjJdPWM8PDEsYz0wfFVhKDB8YVtwPj4yXSxjPDw1KSxhW3A+PjJdPWMsbT0wfGFbaz4+Ml0pLGFbaz4+Ml09bSsxLGFbKG09YysobTw8NCl8MCk+''@;'; + put 'put ''PjJdPWFbTGU+PjJdLGFbbSs0Pj4yXT1hW0xlKzQ+PjJdLGFbbSs4Pj4yXT1hW0xlKzg+PjJdLGFbbSsxMj4+Ml09YVtMZSsxMj4+Ml0sdz0wfGFbYmUrKChBPTB8YVtEPj4yXSk8PDIpPj4yXSwoMHwoYz0wfGFbYmUrKChtPTB8YVtMZT4+Ml0pPDwyKT4+Ml0pKT4wJiYoMHxhW2JlKyhhWyhW''@;'; + put 'put ''ZT1vdCsoKEhlPTB8YVtnZSsoYystMTw8Mik+PjJdKTw8Mil8MCk+PjJdPDwyKT4+Ml0pPCgwfHcpJiYoYVtSZT4+Ml09SGUsYVtSPj4yXT1BLF9bRz4+M109K19bbCsoQTw8Myk+PjNdLStfW2wrKEhlPDwzKT4+M10sYVtwZT4+Ml09YVtSZT4+Ml0sYVtwZSs0Pj4yXT1hW1JlKzQ+PjJdLGFb''@;'; + put 'put ''cGUrOD4+Ml09YVtSZSs4Pj4yXSxhW3BlKzEyPj4yXT1hW1JlKzEyPj4yXSxQeChPZSxwZSksYVtWZT4+Ml09QSxhW250KyhBPDwyKT4+Ml09SGUpLCgwfHcpPCgwfEspJiYoMHxhW2JlKyhhWyhXZT1udCsoKHFlPTB8YVtnZSsodysxPDwyKT4+Ml0pPDwyKXwwKT4+Ml08PDIpPj4yXSk+KDB8''@;'; + put 'put ''YykmJihhW1JlPj4yXT1tLGFbUj4+Ml09cWUsX1tHPj4zXT0rX1tsKyhxZTw8Myk+PjNdLStfW2wrKG08PDMpPj4zXSxhW3BlPj4yXT1hW1JlPj4yXSxhW3BlKzQ+PjJdPWFbUmUrND4+Ml0sYVtwZSs4Pj4yXT1hW1JlKzg+PjJdLGFbcGUrMTI+PjJdPWFbUmUrMTI+PjJdLFB4KE9lLHBlKSxh''@;'; + put 'put ''W1dlPj4yXT1tLGFbb3QrKG08PDIpPj4yXT1xZSksYj1iKzF8MDtGdChudCksRnQob3QpLEZ0KGdlKSxGdChiZSksZnVuY3Rpb24gal8obCl7RnQoMHxhWyhsfD0wKT4+Ml0pfShPZSksYWU9U3R9KGwsYyxmLEEpLGZ1bmN0aW9uIE94KGwsYyxmKXtjfD0wLGZ8PTA7dmFyIGIsayxNLHA9MCxt''@;'; + put 'put ''PTAsQT0wLHc9MCxEPTAsUj0wO2ZvcihrPTB8UW4oKGx8PTApPDwyKSxwPTB8UW4oQT0oYj0oKHc9MHxhWyhNPWMrOHwwKT4+Ml0pPDwxKStsfDApPDwyKSxBPTB8UW4oQSksbT0wOyEoKDB8bSk+PSgwfGwpKTspYVtrKyhtPDwyKT4+Ml09MSxtPW0rMXwwO2ZvcihtPTA7Oyl7aWYoKDB8bSk+''@;'; + put 'put ''PSgwfHcpKXttPTA7YnJlYWt9RD0wfGFbKFI9MHxhW2M+PjJdKSsobTw8NCkrND4+Ml0sYVsoUj1rKyhhW1IrKG08PDQpPj4yXTw8Mil8MCk+PjJdPTErKDB8YVtSPj4yXSksYVsoRD1rKyhEPDwyKXwwKT4+Ml09MSsoMHxhW0Q+PjJdKSxtPW0rMXwwfWZvcig7ISgoMHxtKT49KDB8YikpOylq''@;'; + put 'put ''bltBKyhtPDwyKT4+Ml09MSxtPW0rMXwwO2Zvcih3PTB8UW4oMjAqbHwwKSxhW2Y+PjJdPXcsbT0wOyEoKDB8bSk+PSgwfGwpKTspYVt3KygyMCptfDApPj4yXT0xLGFbdysoMjAqbXwwKSs4Pj4yXT1BLGFbdysoMjAqbXwwKSs0Pj4yXT1wLGFbcD4+Ml09bSxqbltBPj4yXT0wLEE9QSsoKFI9''@;'; + put 'put ''MHxhW2srKG08PDIpPj4yXSk8PDIpfDAscD1wKyhSPDwyKXwwLG09bSsxfDA7Zm9yKEZ0KGspO3A9MHxhW00+PjJdOylhW00+PjJdPVI9cCstMXwwLEJ4KHcsMHxhWyhEPTB8YVtjPj4yXSkrKFI8PDQpPj4yXSwwfGFbRCsoUjw8NCkrND4+Ml0pfShjLEEscCksZnVuY3Rpb24gUngobCl7RnQo''@;'; + put 'put ''MHxhWyhsfD0wKT4+Ml0pfShBKSxhZT1tfSgwfGFbbD4+Ml0sZixmPDwyLGspLG9LKDB8YVtrPj4yXSxsLGYsYyxiKSxmdW5jdGlvbiBpSyhsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciB3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MDtmb3IoKGI9MHxhWyhBfD0wKT4+''@;'; + put 'put ''Ml0pPyh3PTB8VWEoMHxhW2I+PjJdLDB8QXIoZjw8MyxtKSksUj0wfFVhKGIsZjw8MikpOih3PTB8QjAoMHxBcihmPDwzLG0pKSxSPTB8QjAoZjw8MikpLGFbQT4+Ml09UixiPTA7Oyl7aWYoKDB8Yik+PSgwfGYpKXtBPTA7YnJlYWt9YVtSKyhiPDwyKT4+Ml09dyxiPWIrMXwwLHc9dysobTw8''@;'; + put 'put ''Myl8MH1mb3IoOyEoKDB8QSk+PSgwfGYpKTspe2ZvcihNPWwrKEE8PDIpfDAsRD1SKyhBPDwyKXwwLGI9MDsoMHxiKTwoMHxtKTspe2ZvcihrPTAsdz0wOyEoKDB8dyk+PSgwfHApKTspaz0rX1soMHxhW00+PjJdKSsodzw8Myk+PjNdKitqblsoMHxhW2MrKHc8PDIpPj4yXSkrKGI8PDIpPj4y''@;'; + put 'put ''XStrLHc9dysxfDA7X1soMHxhW0Q+PjJdKSsoYjw8Myk+PjNdPWssYj1iKzF8MH1BPUErMXwwfX0obCwwfGFbYj4+Ml0sYyxmLGMsdyksRnQoMHxhW2FbYj4+Ml0+PjJdKSxGdCgwfGFbYj4+Ml0pLHA9MjU1JigwfHJLKDB8YVt3Pj4yXSxjLDEsQSxtLDEpKSxhZT1tLDB8cH1mdW5jdGlvbiBo''@;'; + put 'put ''dmUobCl7RnQoMHxhWzM2KyhsfD0wKT4+Ml0pfWZ1bmN0aW9uIEYyZShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MDtkb3tpZig0PT0oMHxjKSl7aWYoYz1sKzE2fDAsKGY9K19bbCs4Pj4zXSk9PShwPStfW2wrMjQ+PjNdKSl7aWYoK19bbCs0MD4+M10hPStfW2wrNTY+PjNdKXtjPTA7YnJl''@;'; + put 'put ''YWt9aWYoK19bbD4+M10hPStfW2wrNDg+PjNdKXtjPTA7YnJlYWt9Yz0rX1tjPj4zXT09K19bbCszMj4+M107YnJlYWt9Yz0rX1tsPj4zXT09K19bYz4+M10mJitfW2wrMzI+PjNdPT0rX1tsKzQ4Pj4zXSYmZj09K19bbCs1Nj4+M10/cD09K19bbCs0MD4+M106MH1lbHNlIGM9MH13aGlsZSgw''@;'; + put 'put ''KTtyZXR1cm4gMSZjfDB9ZnVuY3Rpb24gTlYobCxjLGYscCl7Y3w9MCxmPStmLHA9K3A7dmFyIEEsdyxiLG09MCxrPTAsTT0wO2ZvcihiPTB8UW4oKHc9KDB8KG09KG09MHxMaShsfD0wLDEwMjcwNSkpPzB8cjMobSk6MCkpPDM/MjA6bSk8PDQpLGw9bCsxNnwwLEE9MS8rKDB8dyksbT0wOyEo''@;'; + put 'put ''KDB8bSk+PSgwfHcpKTspX1tiKyhtPDw0KT4+M109KC41KitfWzMyKyhNPTB8YVtsPj4yXSk+PjNdK2YpKitoYSgrKGs9QSorKDB8bSkqNi4yODMxODUzMDcxNzk1ODYpKSxfW2IrKG08PDQpKzg+PjNdPSguNSorX1tNKzQwPj4zXStwKSorRGEoK2spLG09bSsxfDA7cmV0dXJuIGFbYz4+Ml09''@;'; + put 'put ''dywwfGJ9ZnVuY3Rpb24gVlYobCxjLGYscCxtKXtmfD0wLG09K20sX1sobHw9MCk+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqKygwfChjfD0wKSkrKHA9K3ApLF9bbCs4Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KisoMHxmKSttfWZ1bmN0aW9uIEgyZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9''@;'; + put 'put ''MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MDtmb3IobT0xLEE9Yj0rX1s4KyhsfD0wKT4+M10sdz1rPStfW2w+PjNdOyEoKDB8bSk+PSgwfGMpKTspbT1tKzF8MCxBPShSPStfW2wrMjQ+PjNdKT5BP1I6QSx3PShEPStfWyhNPWwrMTZ8MCk+PjNdKT53P0Q6dyxiPVI8Yj9S''@;'; + put 'put ''OmIsaz1EPGs/RDprLGw9TTtfW2Y+PjNdPWssX1tmKzg+PjNdPWIsX1twPj4zXT13LF9bcCs4Pj4zXT1BfWZ1bmN0aW9uIFlEKGwsYyxmKXtmPStmLF9bKGx8PTApPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KihjPStjKSxfW2wrOD4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCpmfWZ1bmN0aW9u''@;'; + put 'put ''IGd2ZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgYixNLEQsUixHLHBlLG09MCxBPTAsdz0wLGs9MCxLPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MDtwZT1hZSxhZT1hZSsxMjh8MCxSPXBlKzExMnwwLE09cGUrODB8MCxtPXBlKzY0fDAsRz1wZSs0OHwwLEs9cGUrMzJ8MCxiPXBlKzE2fDAs''@;'; + put 'put ''az1wZSxhWyhEPXBlKzk2fDApPj4yXT1hWyhsfD0wKT4+Ml0sYVtEKzQ+PjJdPWFbbCs0Pj4yXSxhW0QrOD4+Ml09YVtsKzg+PjJdLGFbRCsxMj4+Ml09YVtsKzEyPj4yXSxhW1I+PjJdPWFbYz4+Ml0sYVtSKzQ+PjJdPWFbYys0Pj4yXSxhW1IrOD4+Ml09YVtjKzg+PjJdLGFbUisxMj4+Ml09''@;'; + put 'put ''YVtjKzEyPj4yXSxTVihHLEQsUiksQT1jKzE2fDAsYVtEPj4yXT1hW2w+PjJdLGFbRCs0Pj4yXT1hW2wrND4+Ml0sYVtEKzg+PjJdPWFbbCs4Pj4yXSxhW0QrMTI+PjJdPWFbbCsxMj4+Ml0sYVtSPj4yXT1hW0E+PjJdLGFbUis0Pj4yXT1hW0ErND4+Ml0sYVtSKzg+PjJdPWFbQSs4Pj4yXSxh''@;'; + put 'put ''W1IrMTI+PjJdPWFbQSsxMj4+Ml0sU1YoSyxELFIpLGFbRD4+Ml09YVtmPj4yXSxhW0QrND4+Ml09YVtmKzQ+PjJdLGFbRCs4Pj4yXT1hW2YrOD4+Ml0sYVtEKzEyPj4yXT1hW2YrMTI+PjJdLGFbUj4+Ml09YVtwPj4yXSxhW1IrND4+Ml09YVtwKzQ+PjJdLGFbUis4Pj4yXT1hW3ArOD4+Ml0s''@;'; + put 'put ''YVtSKzEyPj4yXT1hW3ArMTI+PjJdLFNWKGIsRCxSKSx3PXArMTZ8MCxhW0Q+PjJdPWFbZj4+Ml0sYVtEKzQ+PjJdPWFbZis0Pj4yXSxhW0QrOD4+Ml09YVtmKzg+PjJdLGFbRCsxMj4+Ml09YVtmKzEyPj4yXSxhW1I+PjJdPWFbdz4+Ml0sYVtSKzQ+PjJdPWFbdys0Pj4yXSxhW1IrOD4+Ml09''@;'; + put 'put ''YVt3Kzg+PjJdLGFbUisxMj4+Ml09YVt3KzEyPj4yXSxTVihrLEQsUiksYVttPj4yXT1hW0c+PjJdLGFbbSs0Pj4yXT1hW0crND4+Ml0sYVttKzg+PjJdPWFbRys4Pj4yXSxhW20rMTI+PjJdPWFbRysxMj4+Ml0sYVtNPj4yXT1hW0s+PjJdLGFbTSs0Pj4yXT1hW0srND4+Ml0sYVtNKzg+PjJd''@;'; + put 'put ''PWFbSys4Pj4yXSxhW00rMTI+PjJdPWFbSysxMj4+Ml0sYVtEPj4yXT1hW2I+PjJdLGFbRCs0Pj4yXT1hW2IrND4+Ml0sYVtEKzg+PjJdPWFbYis4Pj4yXSxhW0QrMTI+PjJdPWFbYisxMj4+Ml0sYVtSPj4yXT1hW2s+PjJdLGFbUis0Pj4yXT1hW2srND4+Ml0sYVtSKzg+PjJdPWFbays4Pj4y''@;'; + put 'put ''XSxhW1IrMTI+PjJdPWFbaysxMj4+Ml07ZG97aWYoMHxtdmUobSxNLEQsUikpe2lmKDEmKG09MHxhW2MrNDA+PjJdKXwwJiYxJmFbcCs0MD4+Ml18MCl7bT0xO2JyZWFrfWlmKDImbXwwJiYyJmFbcCs0MD4+Ml18MCl7bT0hKChPZT0rX1tsKzg+PjNdLStfW2YrOD4+M10pKk9lKyhiZT0rX1ts''@;'; + put 'put ''Pj4zXS0rX1tmPj4zXSkqYmU+KGdlPStfW0E+PjNdLStfW2M+PjNdKyArX1t3Pj4zXS0rX1twPj4zXSkqZ2UqLjI1KTticmVha31pZigobT0wfGFbNDY5MTVdKT93PTB8YVs0NjkxNl06KGFbNDY5MTVdPTB8UW4oYVs0NjkxNF08PDQpLHc9MHxRbihhWzQ2OTE0XTw8NCksYVs0NjkxNl09dyxt''@;'; + put 'put ''PTB8YVs0NjkxNV0pLExlPTB8YVtjKzM2Pj4yXSxBPTB8YVsoYz1jKzMyfDApPj4yXSxhW1I+PjJdPWFbbD4+Ml0sYVtSKzQ+PjJdPWFbbCs0Pj4yXSxhW1IrOD4+Ml09YVtsKzg+PjJdLGFbUisxMj4+Ml09YVtsKzEyPj4yXSxjSyhMZSxBLFIsbSksbD0wfGFbcCszNj4+Ml0scD0wfGFbKEE9''@;'; + put 'put ''cCszMnwwKT4+Ml0sYVtSPj4yXT1hW2Y+PjJdLGFbUis0Pj4yXT1hW2YrND4+Ml0sYVtSKzg+PjJdPWFbZis4Pj4yXSxhW1IrMTI+PjJdPWFbZisxMj4+Ml0sY0sobCxwLFIsdyksMHx2dmUobSx3LDB8YVtjPj4yXSwwfGFbQT4+Ml0pKW09MTtlbHNle2lmKGFbTT4+Ml09YVsobT0wfGFbNDY5''@;'; + put 'put ''MTVdKT4+Ml0sYVtNKzQ+PjJdPWFbbSs0Pj4yXSxhW00rOD4+Ml09YVttKzg+PjJdLGFbTSsxMj4+Ml09YVttKzEyPj4yXSxhW0Q+PjJdPWFbYj4+Ml0sYVtEKzQ+PjJdPWFbYis0Pj4yXSxhW0QrOD4+Ml09YVtiKzg+PjJdLGFbRCsxMj4+Ml09YVtiKzEyPj4yXSxhW1I+PjJdPWFbaz4+Ml0s''@;'; + put 'put ''YVtSKzQ+PjJdPWFbays0Pj4yXSxhW1IrOD4+Ml09YVtrKzg+PjJdLGFbUisxMj4+Ml09YVtrKzEyPj4yXSwwfE4yZShNLEQsUikmJihrPTB8YVs0NjkxNl0sTGU9MHxhW0E+PjJdLGFbUj4+Ml09YVttPj4yXSxhW1IrND4+Ml09YVttKzQ+PjJdLGFbUis4Pj4yXT1hW20rOD4+Ml0sYVtSKzEy''@;'; + put 'put ''Pj4yXT1hW20rMTI+PjJdLDB8VjJlKGssTGUsUikpKXttPTE7YnJlYWt9YVtNPj4yXT1hWyhtPTB8YVs0NjkxNl0pPj4yXSxhW00rND4+Ml09YVttKzQ+PjJdLGFbTSs4Pj4yXT1hW20rOD4+Ml0sYVtNKzEyPj4yXT1hW20rMTI+PjJdLGFbRD4+Ml09YVtHPj4yXSxhW0QrND4+Ml09YVtHKzQ+''@;'; + put 'put ''PjJdLGFbRCs4Pj4yXT1hW0crOD4+Ml0sYVtEKzEyPj4yXT1hW0crMTI+PjJdLGFbUj4+Ml09YVtLPj4yXSxhW1IrND4+Ml09YVtLKzQ+PjJdLGFbUis4Pj4yXT1hW0srOD4+Ml0sYVtSKzEyPj4yXT1hW0srMTI+PjJdLDB8TjJlKE0sRCxSKT8oSz0wfGFbNDY5MTVdLExlPTB8YVtjPj4yXSxh''@;'; + put 'put ''W1I+PjJdPWFbbT4+Ml0sYVtSKzQ+PjJdPWFbbSs0Pj4yXSxhW1IrOD4+Ml09YVttKzg+PjJdLGFbUisxMj4+Ml09YVttKzEyPj4yXSxtPTAhPSgwfFYyZShLLExlLFIpKSk6bT0wfX1lbHNlIG09MH13aGlsZSgwKTtyZXR1cm4gYWU9cGUsMSZtfDB9ZnVuY3Rpb24gbXZlKGwsYyxmLHApe3Jl''@;'; + put 'put ''dHVybiBjfD0wLGZ8PTAsMHwoK19bKGx8PTApPj4zXTw9K19bKHB8PTApPj4zXSYmK19bZj4+M108PStfW2M+PjNdJiYrX1tsKzg+PjNdPD0rX1twKzg+PjNdPytfW2YrOD4+M108PStfW2MrOD4+M10mMTowKX1mdW5jdGlvbiBjSyhsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgQSxtPTA7''@;'; + put 'put ''Zm9yKEE9OCsoZnw9MCl8MCxtPTA7ISgoMHxtKT49KDB8YykpOylfW3A+PjNdPStfW2Y+PjNdKyArX1tsPj4zXSxfW3ArOD4+M109K19bQT4+M10rICtfW2wrOD4+M10sbT1tKzF8MCxsPWwrMTZ8MCxwPXArMTZ8MH1mdW5jdGlvbiB2dmUobCxjLGYscCl7bHw9MCxjfD0wO3ZhciBLLHBlLGdl''@;'; + put 'put ''LGJlLE9lLExlLFJlLEhlLFZlLHFlLG50LFdlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLG90PTAsU3Q9MDtmb3IoV2U9YWUsYWU9YWUrMTEyfDAsYmU9V2UrOTZ8MCxnZT1XZSs4MHwwLHBlPVdlKzY0fDAsSz1XZSs0OHwwLExlPVdlKzMyfDAsUmU9V2UrMTZ8MCxIZT1X''@;'; + put 'put ''ZSxWZT0oZnw9MCktMXwwLHFlPShwfD0wKS0xfDAsbnQ9Zjw8MSxPZT1wPDwxLG09MCxBPTAsdz0wLGI9MDs7KXtpZihTdD1sKygoKFZlK218MCklKDB8Zil8MCk8PDQpfDAsYVtnZT4+Ml09YVsob3Q9bCsobTw8NCl8MCk+PjJdLGFbZ2UrND4+Ml09YVtvdCs0Pj4yXSxhW2dlKzg+PjJdPWFb''@;'; + put 'put ''b3QrOD4+Ml0sYVtnZSsxMj4+Ml09YVtvdCsxMj4+Ml0sYVtiZT4+Ml09YVtTdD4+Ml0sYVtiZSs0Pj4yXT1hW1N0KzQ+PjJdLGFbYmUrOD4+Ml09YVtTdCs4Pj4yXSxhW2JlKzEyPj4yXT1hW1N0KzEyPj4yXSxWWChMZSxnZSxiZSksUj1jKygoKHFlK0F8MCklKDB8cCl8MCk8PDQpfDAsYVtn''@;'; + put 'put ''ZT4+Ml09YVsoRz1jKyhBPDw0KXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW0crND4+Ml0sYVtnZSs4Pj4yXT1hW0crOD4+Ml0sYVtnZSsxMj4+Ml09YVtHKzEyPj4yXSxhW2JlPj4yXT1hW1I+PjJdLGFbYmUrND4+Ml09YVtSKzQ+PjJdLGFbYmUrOD4+Ml09YVtSKzg+PjJdLGFbYmUrMTI+PjJdPWFb''@;'; + put 'put ''UisxMj4+Ml0sVlgoUmUsZ2UsYmUpLGFbcGU+PjJdPWFbNDY1NDBdLGFbcGUrND4+Ml09YVs0NjU0MV0sYVtwZSs4Pj4yXT1hWzQ2NTQyXSxhW3BlKzEyPj4yXT1hWzQ2NTQzXSxhW2dlPj4yXT1hW0xlPj4yXSxhW2dlKzQ+PjJdPWFbTGUrND4+Ml0sYVtnZSs4Pj4yXT1hW0xlKzg+PjJdLGFb''@;'; + put 'put ''Z2UrMTI+PjJdPWFbTGUrMTI+PjJdLGFbYmU+PjJdPWFbUmU+PjJdLGFbYmUrND4+Ml09YVtSZSs0Pj4yXSxhW2JlKzg+PjJdPWFbUmUrOD4+Ml0sYVtiZSsxMj4+Ml09YVtSZSsxMj4+Ml0saz0rUmsocGUsZ2UsYmUpLGFbcGU+PjJdPWFbU3Q+PjJdLGFbcGUrND4+Ml09YVtTdCs0Pj4yXSxh''@;'; + put 'put ''W3BlKzg+PjJdPWFbU3QrOD4+Ml0sYVtwZSsxMj4+Ml09YVtTdCsxMj4+Ml0sYVtnZT4+Ml09YVtvdD4+Ml0sYVtnZSs0Pj4yXT1hW290KzQ+PjJdLGFbZ2UrOD4+Ml09YVtvdCs4Pj4yXSxhW2dlKzEyPj4yXT1hW290KzEyPj4yXSxhW2JlPj4yXT1hW0c+PjJdLGFbYmUrND4+Ml09YVtHKzQ+''@;'; + put 'put ''PjJdLGFbYmUrOD4+Ml09YVtHKzg+PjJdLGFbYmUrMTI+PjJdPWFbRysxMj4+Ml0sTT0wfFB5KHBlLGdlLGJlKSxhW3BlPj4yXT1hW1I+PjJdLGFbcGUrND4+Ml09YVtSKzQ+PjJdLGFbcGUrOD4+Ml09YVtSKzg+PjJdLGFbcGUrMTI+PjJdPWFbUisxMj4+Ml0sYVtnZT4+Ml09YVtHPj4yXSxh''@;'; + put 'put ''W2dlKzQ+PjJdPWFbRys0Pj4yXSxhW2dlKzg+PjJdPWFbRys4Pj4yXSxhW2dlKzEyPj4yXT1hW0crMTI+PjJdLGFbYmU+PjJdPWFbb3Q+PjJdLGFbYmUrND4+Ml09YVtvdCs0Pj4yXSxhW2JlKzg+PjJdPWFbb3QrOD4+Ml0sYVtiZSsxMj4+Ml09YVtvdCsxMj4+Ml0sRD0wfFB5KHBlLGdlLGJl''@;'; + put 'put ''KSxhW0s+PjJdPWFbU3Q+PjJdLGFbSys0Pj4yXT1hW1N0KzQ+PjJdLGFbSys4Pj4yXT1hW1N0Kzg+PjJdLGFbSysxMj4+Ml09YVtTdCsxMj4+Ml0sYVtwZT4+Ml09YVtvdD4+Ml0sYVtwZSs0Pj4yXT1hW290KzQ+PjJdLGFbcGUrOD4+Ml09YVtvdCs4Pj4yXSxhW3BlKzEyPj4yXT1hW290KzEy''@;'; + put 'put ''Pj4yXSxhW2dlPj4yXT1hW1I+PjJdLGFbZ2UrND4+Ml09YVtSKzQ+PjJdLGFbZ2UrOD4+Ml09YVtSKzg+PjJdLGFbZ2UrMTI+PjJdPWFbUisxMj4+Ml0sYVtiZT4+Ml09YVtHPj4yXSxhW2JlKzQ+PjJdPWFbRys0Pj4yXSxhW2JlKzg+PjJdPWFbRys4Pj4yXSxhW2JlKzEyPj4yXT1hW0crMTI+''@;'; + put 'put ''PjJdLDB8RkQoSyxwZSxnZSxiZSxIZSkpe209MTticmVha31SPTA9PSgwfE0pLEc9MD09KDB8RCk7ZG97aWYoMCE9a3wwIT0oRHxNfDApKXtpZihrPj0wKXtpZihSKXtBPShBKzF8MCklKDB8cCl8MCxiPWIrMXwwO2JyZWFrfW09KG0rMXwwKSUoMHxmKXwwLHc9dysxfDA7YnJlYWt9aWYoRyl7''@;'; + put 'put ''bT0obSsxfDApJSgwfGYpfDAsdz13KzF8MDticmVha31BPShBKzF8MCklKDB8cCl8MCxiPWIrMXwwO2JyZWFrfW09KG0rMXwwKSUoMHxmKXwwLHc9dysxfDB9d2hpbGUoMCk7aWYoISgoMHxiKTwoMHxPZSkmKDB8dyk8KDB8bnQpJigoMHxiKTwoMHxwKXwoMHx3KTwoMHxmKSkpKXttPTA7YnJl''@;'; + put 'put ''YWt9fXJldHVybiBhZT1XZSwwfG19ZnVuY3Rpb24gTjJlKGwsYyxmKXtjfD0wO3ZhciBtLHA9MDtyZXR1cm4gMHwoKG09K19bKGx8PTApPj4zXSk8PStfWyhmfD0wKT4+M10mJm0+PStfW2M+PjNdJiYocD0rX1tsKzg+PjNdKTw9K19bZis4Pj4zXT9wPj0rX1tjKzg+PjNdJjE6MCl9ZnVuY3Rp''@;'; + put 'put ''b24gVjJlKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2ZvcigocD0wfGFbNDY5MTddKXx8KHA9MHxRbihhWzQ2OTE0XTw8NCksYVs0NjkxN109cCksdz1mKzh8MCxBPTA7ISgoMHxBKT49KDB8YykpOylfW3ArKEE8PDQpPj4zXT0rX1tsKyhB''@;'; + put 'put ''PDw0KT4+M10tK19bZj4+M10sX1twKyhBPDw0KSs4Pj4zXT0rX1tsKyhBPDw0KSs4Pj4zXS0rX1t3Pj4zXSxBPUErMXwwO2Y9YystMXwwLG09MCxsPTA7ZTpmb3IoOzspe2lmKCgwfGwpPj0oMHxjKSl7TT0xOTticmVha31pZihBPShmK2x8MCklKDB8Yyl8MCwodz0wPT0oYj0rX1twKyhsPDw0''@;'; + put 'put ''KSs4Pj4zXSkpJiYwPT0rX1twKyhBPDw0KSs4Pj4zXSl7aWYoK19bcCsoQTw8NCk+PjNdKitfW3ArKGw8PDQpPj4zXTwwKXtwPTE7YnJlYWt9fWVsc2UgTT0xMTtkb3tpZigxMT09KDB8TSkpe2lmKE09MCwhKGI+PTApfCEoKGs9K19bcCsoQTw8NCkrOD4+M10pPD0wKSYmIShrPj0wKXwhKGI8''@;'; + put 'put ''PTApKWJyZWFrO2lmKDA9PShiPShrKitfW3ArKGw8PDQpPj4zXS1iKitfW3ArKEE8PDQpPj4zXSkvKGstYikpKXtwPTE7YnJlYWsgZX1pZihiPjApe2lmKDA9PWt8dyl7bSs9LjU7YnJlYWt9bSs9MTticmVha319fXdoaWxlKDApO2w9bCsxfDB9cmV0dXJuIDE5PT0oMHxNKSYmKHA9MT09KDB8''@;'; + put 'put ''KDB8fn5tKSUyKSYxKSwwfHB9ZnVuY3Rpb24gZksobCxjKXtsfD0wO3ZhciBrLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MDtmb3Ioaz0wfFFuKChjfD0wKTw8MiksZj0wfFFuKChiPTB8QXIoYyxjKSk8PDIpLGFbaz4+Ml09ZixqeShiLDAsZiksZj0xOzspe2lmKCgwfGYpPj0oMHxjKSl7''@;'; + put 'put ''Zj0wLEE9MCxiPWM7YnJlYWt9YVtrKyhmPDwyKT4+Ml09KDB8YVtrPj4yXSkrKCgwfEFyKGYsYykpPDwyKSxmPWYrMXwwfWZvcig7ISgoMHxBKT49KDB8YykpOyl7Zm9yKHc9aysoQTw8Mil8MCxwPUEsbT1mOygwfHApIT0oMHxjKTspYVsoMHxhW3c+PjJdKSsocDw8Mik+PjJdPU09MHxhW2wr''@;'; + put 'put ''KG08PDIpPj4yXSxhWygwfGFbaysocDw8Mik+PjJdKSsoQTw8Mik+PjJdPU0scD1wKzF8MCxtPW0rMXwwO2Y9ZitifDAsQT1BKzF8MCxiPWIrLTF8MH1yZXR1cm4gMHxrfWZ1bmN0aW9uIEF2ZShsLGMsZixwLG0sQSx3LGIpe2N8PTAscHw9MCxBfD0wLHd8PTAsYj0rYjt2YXIgb3QsU3Qsa3Qs''@;'; + put 'put ''bHQsRXQsSG4saz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLFp0PTAsY3Q9MCxidD0wLGFuPTAsU249MCx1cj0wO0huPTB8YVsoZnw9MCkrKChtfD0wKTw8Mik+PjJdLG90PTB8YVs0KyhsfD0wKT4+''@;'; + put 'put ''Ml0sU3Q9MHxhW2w+PjJdLGt0PTB8YVtsKzQ4Pj4yXSxsdD0wfGFbbCs1Mj4+Ml0sRXQ9MHxhW2wrNTY+PjJdO2U6ZG97aWYoKDB8QSk8MSlmPTA7ZWxzZXtmb3IoajJlKEhuLG90LGt0LGx0LEV0LGIpLFp0PTB8YVtsKzI4Pj4yXSxjdD0wfGFbbCszMj4+Ml0sYnQ9MHxhW2wrMzY+PjJdLGFu''@;'; + put 'put ''PTB8YVtsKzEyPj4yXSxTbj0wfGFbbCsxNj4+Ml0sbT0wLHA9MCxmPS0xOyEoKDB8bSk+PSgwfG90KSk7KSgwfG0pPj0oMHxwKSYmKCgwfChmPWYrMXwwKSk9PSgwfEV0KT8ocD1vdCxmPUV0KTpwPTB8YVtsdCsoZjw8Mik+PjJdKSxhW1NuKyhhW2t0KyhtPDwyKT4+Ml08PDIpPj4yXT1mLG09''@;'; + put 'put ''bSsxfDA7Zm9yKG50PTB8YVtsKzQwPj4yXSxXZT1jdCsob3QrLTE8PDIpfDAsZj0wLHA9MDs7KXtpZighKHA8PDI0Pj4yND09MCYoMHxmKTwoMHxBKSkpYnJlYWsgZTtrPS0xZTksbT0wLHA9MTt0OmZvcig7Oyl7Zm9yKFZlPW07Oyl7aWYoKDB8VmUpPj0oMHxvdCkpYnJlYWsgdDtmb3IoTT1x''@;'; + put 'put ''ZT0ram5bSG4rKChtPTB8YVtrdCsoVmU8PDIpPj4yXSk8PDIpPj4yXSxIZT1WZSxEPTA7Oyl7aWYoam5bbnQrKG08PDIpPj4yXT1ELCgwfChtPUhlKzF8MCkpPj0oMHxvdCkpe1JlPTA7YnJlYWt9aWYoK2VvKCsoKEQ9K2puW0huKygobD0wfGFba3QrKG08PDIpPj4yXSk8PDIpPj4yXSktKE09''@;'; + put 'put ''KDB8YVtTbisobTw8Mik+PjJdKT4oMHxhW1NuKyhIZTw8Mik+PjJdKT9NK2I6TSkpKT4xZS05KXtSZT0xO2JyZWFrfUhlPW0sRC09cWUsbT1sfWZvcihSPVZlOzspe2lmKCgwfFIpPigwfEhlKSl7bD0wLEc9VmU7YnJlYWt9Zm9yKEs9MHxhW1N0KygoRz0wfGFba3QrKFI8PDIpPj4yXSk8PDIp''@;'; + put 'put ''Pj4yXSxsPTAsTT0tK2puW2MrKEc8PDIpPj4yXTshKCgwfGwpPj0oMHxvdCkpOykoMHxsKSE9KDB8RykmJihNPStqbltIbisobDw8Mik+PjJdKitqbltLKyhsPDwyKT4+Ml0rTSksbD1sKzF8MDtqbltadCsoRzw8Mik+PjJdPU0vLStqbltLKyhHPDwyKT4+Ml0tK2puW250KyhHPDwyKT4+Ml0s''@;'; + put 'put ''Uj1SKzF8MH1uOmZvcig7Oyl7aWYoKDB8Ryk+KDB8SGUpKXtEPTAscGU9MCxnZT0wO2JyZWFrfWZvcihnZT0oMHwoUj0wfGFbU24rKGFba3QrKEc8PDIpPj4yXTw8Mik+PjJdKSk9PSgwfEV0KXx8KDB8bSk8KDB8KGdlPTB8YVtsdCsoUjw8Mik+PjJdKSk/bTpnZSxLPUc7Oyl7aWYoKDB8Syk+''@;'; + put 'put ''PSgwfGdlKSl7Sz1HO2JyZWFrfStqbltadCsoKFI9MHxhW2t0KyhLPDwyKT4+Ml0pPDwyKT4+Ml08cWUmJihhW2FuKyhsPDwyKT4+Ml09UixsPWwrMXwwKSxLPUsrMXwwfWZvcig7ISgoMHxLKT49KDB8Z2UpKTspK2puW1p0KygoUj0wfGFba3QrKEs8PDIpPj4yXSk8PDIpPj4yXT09cWUmJihh''@;'; + put 'put ''W2FuKyhsPDwyKT4+Ml09UixsPWwrMXwwKSxLPUsrMXwwO2Zvcig7Oyl7aWYoKDB8Ryk+PSgwfGdlKSl7Rz1nZTtjb250aW51ZSBufStqbltadCsoKFI9MHxhW2t0KyhHPDwyKT4+Ml0pPDwyKT4+Ml0+cWUmJihhW2FuKyhsPDwyKT4+Ml09UixsPWwrMXwwKSxHPUcrMXwwfX1mb3IoOyEoKDB8''@;'; + put 'put ''Z2UpPj0oMHxsKSk7KXtmb3IoSz0wfGFbU3QrKChHPTB8YVthbisoZ2U8PDIpPj4yXSk8PDIpPj4yXSxNPTAsUj0wOygwfFIpIT0oMHxnZSk7KU0tPStqbltLKyhhW2FuKyhSPDwyKT4+Ml08PDIpPj4yXSxSPVIrMXwwO2puW2N0KyhnZTw8Mik+PjJdPWJlPSgodXI9MipNKSpxZStEKnBlLStq''@;'; + put 'put ''bltadCsoRzw8Mik+PjJdKihiZT0ram5bKExlPUsrKEc8PDIpfDApPj4yXSkpLygoTT11citEKS1iZSksRD1NLStqbltMZT4+Ml0scGU9YmUsZ2U9Z2UrMXwwfWZvcigoSz0oMHxsKT09KDB8b3QpKSYmKGpuW1dlPj4yXT1xZSksRD0wLHBlPTAsRz1MZT1sKy0xfDA7ISgoMHxHKTw9LTEpOyl7''@;'; + put 'put ''Zm9yKE9lPTB8YVtTdCsoKGdlPTB8YVthbisoRzw8Mik+PjJdKTw8Mik+PjJdLE09MCxSPUc7ISgoMHwoUj1SKzF8MCkpPj0oMHxsKSk7KU0tPStqbltPZSsoYVthbisoUjw8Mik+PjJdPDwyKT4+Ml07am5bYnQrKEc8PDIpPj4yXT11cj0oKE0qPTIpKnFlK0QqcGUtK2puW1p0KyhnZTw8Mik+''@;'; + put 'put ''PjJdKih1cj0ram5bKE9lPU9lKyhnZTw8Mil8MCk+PjJdKSkvKChiZT1NK0QpLXVyKSxEPWJlLStqbltPZT4+Ml0scGU9dXIsRz1HKy0xfDB9Zm9yKEs/KGpuW2J0Pj4yXT1xZSxiZT0wLFI9LTEsSz0wKTooYmU9MCxSPS0xLEs9MCk7ISgoMHxsKTw9KDB8SykpOyl7cGU9K2puW2J0KyhLPDwy''@;'; + put 'put ''KT4+Ml0sTT0oMHxLKT4wPytqbltjdCsoSystMTw8Mik+PjJdOnBlO2Rve2lmKHBlPE0pe2lmKEc9TT5xZSxwZTxxZSl7RD1NPUc/cWU6TTticmVha31HPyhEPXBlLE09cGUpOkQ9cGV9ZWxzZSBEPXBlfXdoaWxlKDApO2JlPShPZT0odXI9K2VvKCsoRC1xZSkpKisobC1LfDApKyArZW8oKyhN''@;'; + put 'put ''LXFlKSkqKygwfEspKT5iZSk/dXI6YmUsUj1PZT9LOlIsSz1LKzF8MH1pZigoMHxSKT4tMSlicmVhaztSZSYmKDB8YVtTbisoYVtrdCsobTw8Mik+PjJdPDwyKT4+Ml0pPigwfGFbU24rKGFba3QrKEhlPDwyKT4+Ml08PDIpPj4yXSk/KGs9K2puW0huKyhhW2FuKyhMZTw8Mik+PjJdPDwyKT4+''@;'; + put 'put ''Ml0rYixWZT1tKTooaz0ram5bSG4rKGFbYW4rKExlPDwyKT4+Ml08PDIpPj4yXSxWZT1tKX1SZT8oTT0ram5bSG4rKChPZT0wfGFba3QrKG08PDIpPj4yXSk8PDIpPj4yXSxNPSgoMHxhW1NuKyhPZTw8Mik+PjJdKT4oMHxhW1NuKyhhW2t0KyhIZTw8Mik+PjJdPDwyKT4+Ml0pP00tYjpNKS0r''@;'; + put 'put ''am5bbnQrKGFbYW4rKExlPDwyKT4+Ml08PDIpPj4yXSk6TT0xZTksTT0oRD0ram5bYnQrKFI8PDIpPj4yXSk8TT9EOk0saz0ocGU9Uj8ram5bY3QrKFIrLTE8PDIpPj4yXTpEKT5rP3BlOms7ZG97aWYoTTxrKXtpZihHPWs+cWUsTTxxZSl7RD1NPUc/cWU6azticmVha31HP0Q9TTooRD1NLE09''@;'; + put 'put ''ayl9ZWxzZSBEPU0sTT1rfXdoaWxlKDApO2ZvcihHPTA7ISgoMHxHKT49KDB8UikpOylqbltIbisoKE9lPTB8YVthbisoRzw8Mik+PjJdKTw8Mik+PjJdPStqbltudCsoT2U8PDIpPj4yXStNLEc9RysxfDA7Zm9yKDshKCgwfFIpPj0oMHxsKSk7KWpuW0huKygoT2U9MHxhW2FuKyhSPDwyKT4+''@;'; + put 'put ''Ml0pPDwyKT4+Ml09K2puW250KyhPZTw8Mik+PjJdK0QsUj1SKzF8MDtmb3Ioaz1SZSYmKDB8YVtTbisoYVtrdCsobTw8Mik+PjJdPDwyKT4+Ml0pPigwfGFbU24rKGFba3QrKEhlPDwyKT4+Ml08PDIpPj4yXSk/K2puW0huKyhhW2FuKyhMZTw8Mik+PjJdPDwyKT4+Ml0rYjoram5bSG4rKGFb''@;'; + put 'put ''YW4rKExlPDwyKT4+Ml08PDIpPj4yXSxsPVZlOyEoKDB8bCk+KDB8SGUpKTspYVtrdCsobDw8Mik+PjJdPWFbYW4rKGwtVmU8PDIpPj4yXSxsPWwrMXwwO3A9cDw8MjQ+PjI0IT0wJiYrZW8oKyhNLXFlKSk8LjAxPytlbygrKEQtcWUpKTwuMDE6MCxwJj0xfWw4KG90LEhuKSx5dmUoSG4sa3Qs''@;'; + put 'put ''bHQsRXQsdyksZj1mKzF8MH19fXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24geXZlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTA7Zm9yKEE9MDshKCgwfEEpPj0oMHxwKSk7KWFbbSsoQTw8Mik+PjJdPWFbbCsoYVtjKygoMHxhW2YrKEE8PDIpPj4yXSkt''@;'; + put 'put ''MTw8Mik+PjJdPDwyKT4+Ml0sQT1BKzF8MH1mdW5jdGlvbiBqMmUobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBPStBO3ZhciB3PTAsYj0wLGs9MCxNPTAsRD0wO2Zvcih3PS0xZTksaz0wLGI9LTEsRD0wOyEoKDB8RCk+PSgwfGMpKTspKDB8RCk8KDB8ayl8fCh3PSgw''@;'; + put 'put ''fEQpPjA/K2puW2wrKGFbZisoRCstMTw8Mik+PjJdPDwyKT4+Ml0rQTotMWU5LERWKGwsZixELChrPSgwfChiPWIrMXwwKSk9PSgwfG0pP2M6MHxhW3ArKGI8PDIpPj4yXSkrLTF8MCkpLE09aywram5bKGs9bCsoYVtmKyhEPDwyKT4+Ml08PDIpfDApPj4yXTx3JiYoam5baz4+Ml09dyksaz1N''@;'; + put 'put ''LEQ9RCsxfDB9ZnVuY3Rpb24gd3ZlKGwpe0Z0KDB8YVthWyhsfD0wKT4+Ml0+PjJdKSxGdCgwfGFbbD4+Ml0pLEZ0KDB8YVtsKzg+PjJdKSxGdCgwfGFbbCsyOD4+Ml0pLEZ0KDB8YVtsKzMyPj4yXSksRnQoMHxhW2wrMzY+PjJdKSxGdCgwfGFbbCs0MD4+Ml0pLEZ0KDB8YVtsKzEyPj4yXSks''@;'; + put 'put ''RnQoMHxhW2wrMTY+PjJdKSxGdCgwfGFbbCsyMD4+Ml0pLEZ0KDB8YVtsKzI0Pj4yXSksRnQobCl9ZnVuY3Rpb24galYobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGIsayxNLEQsQT0wLHc9MDtmb3IoTT0wfFFuKDYwKSxhW00+PjJdPTAsYVsoRD1NKzR8MCk+PjJd''@;'; + put 'put ''PWMsYVtNKzQ4Pj4yXT1mLGFbTSs1Mj4+Ml09cCxhW00rNTY+PjJdPW0sYVtNPj4yXT0wfGZLKGwsYyksaz0wfFFuKGI9Yzw8MiksYVtNKzg+PjJdPWssdz0wLGM9MCxsPS0xOyEoKDB8dyk+PSgwfGFbRD4+Ml0pKTspQT1sKzF8MCwoMHx3KT49KDB8YykmJihjPTB8YVsoKDB8QSk9PSgwfG0p''@;'; + put 'put ''P0Q6cCsoQTw8Mil8MCk+PjJdLGw9QSksYVtrKyhhW2YrKHc8PDIpPj4yXTw8Mik+PjJdPWwsdz13KzF8MDtyZXR1cm4gYVtNKzI4Pj4yXT0wfFFuKGIpLGFbTSszMj4+Ml09MHxRbihiKSxhW00rMzY+PjJdPTB8UW4oYiksYVtNKzQwPj4yXT0wfFFuKGIpLGFbTSsxMj4+Ml09MHxRbihiKSxh''@;'; + put 'put ''W00rMTY+PjJdPTB8UW4oYiksYVtNKzIwPj4yXT0wfFFuKGIpLGFbTSsyND4+Ml09MHxRbihiKSwwfE19ZnVuY3Rpb24gaEsoKXtaeSgxODc2NzYsMjQpLGFbNDY5MjJdPTB9ZnVuY3Rpb24gWlYobCxjKXt2YXIgZixwO3JldHVybisgK0QwKCsoKHA9K19bOCsobHw9MCk+PjNdLStfWzgrKGN8''@;'; + put 'put ''PTApPj4zXSkqcCsoZj0rX1tsPj4zXS0rX1tjPj4zXSkqZikpfWZ1bmN0aW9uIGJ2ZShsKXt2YXIgYzthWzE2KyhsfD0wKT4+Ml09Yz0wfGFbNDY5MjJdLGFbNDY5MjJdPWMrMX1mdW5jdGlvbiBRRChsKXt2YXIgYyxmO2FbKGY9MjArKGx8PTApfDApPj4yXT1jPSgwfGFbZj4+Ml0pLTF8MCxj''@;'; + put 'put ''fHxGVihsLDE4NzY3Nil9ZnVuY3Rpb24gSkQobCl7YVsobD0yMCsobHw9MCl8MCk+PjJdPTErKDB8YVtsPj4yXSl9ZnVuY3Rpb24gejJlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAsbT0rbTt2YXIgYmUsT2UsTGUsUmUsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9''@;'; + put 'put ''MCxnZT0wLEhlPTA7Zm9yKFJlPWFlLGFlPWFlKzE2fDAsYVsoRD1SZSk+PjJdPXB8PTAsT2U9MHxRbihHPWM8PDIpLExlPTB8UW4oaz1jPDwzKSxiZT0wfGZ1bmN0aW9uIFMyZShsLGMpe3JldHVybiBjfD0wLGw9MHxhWzgrKGx8PTApPj4yXT8wfElWKGwsYyk6MHxmdW5jdGlvbiB1dmUobCxj''@;'; + put 'put ''KXtsfD0wO3ZhciBwLG0sdyxmPTAsQT0wO2Zvcih3PWFlLGFlPWFlKzE2fDAsbT13LHA9MHxRbigwfEFyKEE9KGN8PTApPDwyLGMpKSxBPTB8UW4oQSksZj0wOyEoKDB8Zik+PSgwfGMpKTspYVtBKyhmPDwyKT4+Ml09cCsoKDB8QXIoZixjKSk8PDIpLGY9ZisxfDA7Zm9yKEx5KG0sYyksZj0w''@;'; + put 'put ''OyEoKDB8Zik+PSgwfGMpKTspcjgoZixsLGMsMHxhW0ErKGY8PDIpPj4yXSxtKSxmPWYrMXwwO3JldHVybiB4RChtKSxhZT13LDB8QX0obCxjKSwwfGx9KGwsYyksbD0wOyEoKDB8bCk+PSgwfGMpKTspe2ZvcihiPWJlKyhsPDwyKXwwLHc9MDsoMHx3KSE9KDB8Yyk7KWFbKHBlPSgwfGFbYj4+''@;'; + put 'put ''Ml0pKyh3PDwyKXwwKT4+Ml09YVtwZT4+Ml08PDgsdz13KzF8MDtsPWwrMXwwfWZvcihmfHxQcig5Mzk1Miw5Mzk2MCwyODMsOTM5NzQpLHBlPTB8UW4oayksbD0wOyEoKDB8bCk+PSgwfGMpKTspX1twZSsobDw8Myk+PjNdPStfW2YrKGw8PDMpPj4zXSxsPWwrMXwwO2ZvcihkSyhwZSxjKSxB''@;'; + put 'put ''PTAsTT0wLGs9MTshKCgwfGspPj0oMHxjKSk7KXtmb3Iodz1iZSsoazw8Mil8MCxiPWYrKGs8PDMpfDAsbD0wOygwfGwpIT0oMHxrKTspQT0oSz0rX1tiPj4zXS0rX1tmKyhsPDwzKT4+M10pKksqKDEvKygwfEFyKEhlPTB8YVsoMHxhW3c+PjJdKSsobDw8Mik+PjJdLEhlKSkpK0EsTT0rZW8o''@;'; + put 'put ''K0spKigxLysoMHxIZSkpK00sbD1sKzF8MDtrPWsrMXwwfWZvcihLPU0vQSxsPTA7ISgoMHxsKT49KDB8YykpOylfWyhIZT1mKyhsPDwzKXwwKT4+M109K19bSGU+PjNdKkssbD1sKzF8MDtmb3IoZnVuY3Rpb24gRzJlKGwsYyxmLHAsbSl7Y3w9MCxmPStmLHB8PTA7dmFyIGssTSxBPTAsdz0w''@;'; + put 'put ''LGI9MCxEPTA7aWYoaz0wfGZ1bmN0aW9uIFcyZShsLGMpe2x8PTA7dmFyIEEsTSxSLGY9MCxwPTAsbT0wLHc9MCxiPTAsaz0wLEQ9MCxHPTA7Zm9yKFI9YWUsYWU9YWUrMTZ8MCxtPVIscD0wfFFuKDB8QXIoRD0oY3w9MCk8PDIsYykpLEQ9MHxRbihEKSxmPTA7ISgoMHxmKT49KDB8YykpOylh''@;'; + put 'put ''W0QrKGY8PDIpPj4yXT1wKygoMHxBcihmLGMpKTw8MiksZj1mKzF8MDtmb3IoTT0wfGZ1bmN0aW9uIFEyZShsLGMsZil7bHw9MCxmfD0wO3ZhciBiLGsscD0wLG09MCxBPTAsdz0wLE09MCxEPTA7Zm9yKGI9MHxRbigoY3w9MCk8PDIpLGs9MS8rKDB8YykscD0wLHc9MDshKCgwfHcpPj0oMHxj''@;'; + put 'put ''KSk7KXtmb3IoTT1sKyh3PDwyKXwwLG09MCxBPTA7KDB8QSkhPSgwfGMpOylEPSsoMHxhWygwfGFbTT4+Ml0pKyhBPDwyKT4+Ml0pLG09KEQqPUQpK20sQT1BKzF8MCxwPUQrcDtqbltiKyh3PDwyKT4+Ml09ayptLHc9dysxfDB9cmV0dXJuIGpuW2Y+PjJdPXAvKygwfEFyKGMsYykpLDB8Yn0o''@;'; + put 'put ''bCxjLG0pLEE9K2puW20+PjJdLHA9MCxrPTE7ISgoMHxwKT49KDB8YykpOyl7Zm9yKG09bCsocDw8Mil8MCx3PU0rKHA8PDIpfDAsYj1EKyhwPDwyKXwwLGY9MDsoMHxmKSE9KDB8ayk7KWpuWygwfGFbYj4+Ml0pKyhmPDwyKT4+Ml09Rz0ram5bTSsoZjw8Mik+PjJdKyAram5bdz4+Ml0tKEc9''@;'; + put 'put ''KygwfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSkpKkctQSxqblsoMHxhW0QrKGY8PDIpPj4yXSkrKHA8PDIpPj4yXT1HLGY9ZisxfDA7cD1wKzF8MCxrPWsrMXwwfXJldHVybiBGdChNKSxhZT1SLDB8RH0obXw9MCxsfD0wKSxNPTB8UW4oOCkscCl7Zm9yKEE9MHxRbihsPDwzKSxtPTA7ISgo''@;'; + put 'put ''MHxtKT49KDB8bCkpOylfW0ErKG08PDMpPj4zXT0rX1twKyhtPDwzKT4+M10sbT1tKzF8MDtkSyhBLGwpLG09QSxiPUF9ZWxzZSBtPTAsYj0wO2ZvcihmdW5jdGlvbiBZMmUobCxjLGYscCxtLEEpe2x8PTAsZnw9MCxwfD0wLG18PTAsQT0rQTt2YXIgRyxLLHBlLHc9MCxiPTAsaz0wLE09MCxE''@;'; + put 'put ''PTAsUj0wLGdlPTAsYmU9MDtwZT0wfFFuKGdlPShjfD0wKTw8MyksZ2U9MHxRbihnZSksUj0xLUEsRz0oMHxjKTwxP2M6MSxLPWMrLTF8MCxrPTA9PSgwfG0pLGI9MDtlOmZvcig7ISgoMHxiKT49KDB8RykpOyl7TT0wfGFbZisoYjw8Mik+PjJdO2Rve2Zvcih3PTA7KDB8dykhPSgwfGMpOylf''@;'; + put 'put ''W00rKHc8PDMpPj4zXT0rKDB8KDB8VDEoKSklMTAwKSx3PXcrMXwwO2ZvcihrfHxnZyhNLDAsSywtK29oKG0sMCxLLE0pLG0pLHc9MDsoMHx3KSE9KDB8Yik7KWdnKE0sMCxLLEQ9LStvaCgwfGFbKGJlPWYrKHc8PDIpfDApPj4yXSwwLEssTSksMHxhW2JlPj4yXSksdz13KzF8MDtBPSttcChN''@;'; + put 'put ''LDAsSyl9d2hpbGUoQTwxZS0xMCk7SjcoTSwwLEssMS9BLE0pO2Rve2ZvcigkMyhnZSwwLEssTSksVTJlKGwsYyxjLE0scGUsbSksJDMoTSwwLEsscGUpLHc9MDsoMHx3KSE9KDB8Yik7KWdnKE0sMCxLLEQ9LStvaCgwfGFbKGJlPWYrKHc8PDIpfDApPj4yXSwwLEssTSksMHxhW2JlPj4yXSks''@;'; + put 'put ''dz13KzF8MDtpZigoQT0rbXAoTSwwLEspKTwxZS0xMClicmVhayBlO0o3KE0sMCxLLDEvQSxNKSxEPStvaChNLDAsSyxnZSl9d2hpbGUoK2VvKCtEKTxSKTtfW3ArKGI8PDMpPj4zXT1EKkEsYj1iKzF8MH1mb3IoOyEoKDB8Yik+PSgwfEcpKTspe2ZvcihrPTB8YVtmKyhiPDwyKT4+Ml0sdz0w''@;'; + put 'put ''Ozspe2lmKCgwfHcpPj0oMHxjKSl7dz0wO2JyZWFrfV9baysodzw8Myk+PjNdPSsoMHwoMHxUMSgpKSUxMDApLHc9dysxfDB9Zm9yKDshKCgwfHcpPj0oMHxiKSk7KWdnKGssMCxLLFI9LStvaCgwfGFbKGJlPWYrKHc8PDIpfDApPj4yXSwwLEssayksMHxhW2JlPj4yXSksdz13KzF8MDtKNyhr''@;'; + put 'put ''LDAsSywxLyttcChrLDAsSyksayksX1twKyhiPDwzKT4+M109MCxiPWIrMXwwfWZvcihNPUcrLTF8MCxiPTA7ISgoMHxiKT49KDB8TSkpOyl7Zm9yKEE9K19bKGw9cCsoYjw8Myl8MCk+PjNdLHc9YixrPW09YisxfDA7ISgoMHxrKT49KDB8RykpOylBPShiZT1BPChSPStfW3ArKGs8PDMpPj4z''@;'; + put 'put ''XSkpP1I6QSx3PWJlP2s6dyxrPWsrMXwwOygwfHcpIT0oMHxiKT8oJDMocGUsMCxLLDB8YVsoYz1mKyhiPDwyKXwwKT4+Ml0pLCQzKDB8YVtjPj4yXSwwLEssMHxhWyhiZT1mKyh3PDwyKXwwKT4+Ml0pLCQzKDB8YVtiZT4+Ml0sMCxLLHBlKSxfW3ArKHc8PDMpPj4zXT0rX1tsPj4zXSxfW2w+''@;'; + put 'put ''PjNdPUEsYj1tKTpiPW19RnQocGUpLEZ0KGdlKX0oayxsLGMsTSxtLGYpLHA9MDsxIT0oMHxwKTspe2ZvcihBPU0rKHA8PDMpfDAsdz1jKyhwPDwyKXwwLG09MDshKCgwfG0pPj0oMHxsKSk7KWY9K0QwKCsgK2VvKCsgK19bQT4+M10pKSxfWyhEPSgwfGFbdz4+Ml0pKyhtPDwzKXwwKT4+M109''@;'; + put 'put ''K19bRD4+M10qZixtPW0rMXwwO3A9cCsxfDB9RnQoMHxhW2s+PjJdKSxGdChrKSxGdChNKSxGdChiKX0oYyxELG0sZixiZSksYj0wfFFuKDB8QXIoRyxjKSksdz0wOzspe2lmKCgwfHcpPj0oMHxjKSl7Yj0xO2JyZWFrfWZvcihrPWIrKCgwfEFyKHcsYykpPDwyKXwwLGFbT2UrKHc8PDIpPj4y''@;'; + put 'put ''XT1rLEQ9YmUrKHc8PDIpfDAsQT0wLGw9MDsoMHxsKSE9KDB8Yyk7KSgwfGwpIT0oMHx3KSYmKGpuW2srKGw8PDIpPj4yXT1SPS0xLygoUj0rKDB8YVsoMHxhW0Q+PjJdKSsobDw8Mik+PjJdKSkqUiksQS09UiksbD1sKzF8MDtqbltrKyh3PDwyKT4+Ml09QSx3PXcrMXwwfWZvcig7Oyl7aWYo''@;'; + put 'put ''KDB8Yik+PSgwfGMpKXt3PTA7YnJlYWt9Zm9yKEE9K19bZisoYjw8Myk+PjNdLHc9YmUrKGI8PDIpfDAsbD0wOygwfGwpIT0oMHxiKTspRz1+fitEMCgrKFI9KE09KygwfGFbKEhlPSgwfGFbdz4+Ml0pKyhsPDwyKXwwKT4+Ml0pKSpNLShSPUEtK19bZisobDw8Myk+PjNdKSpSKSksYVsoMHxh''@;'; + put 'put ''W2JlKyhsPDwyKT4+Ml0pKyhiPDwyKT4+Ml09Rz1SPjA/RzowLGFbSGU+PjJdPUcsbD1sKzF8MDtiPWIrMXwwfWZvcig7Oyl7aWYoKDB8dyk+PSgwfGMpKXtHPTAsbD0wO2JyZWFrfWZvcihNPStfW3ArKHc8PDMpPj4zXSxfWyhrPUxlKyh3PDwzKXwwKT4+M109MCxEPWJlKyh3PDwyKXwwLGI9''@;'; + put 'put ''T2UrKHc8PDIpfDAsbD0wLEE9MDsoMHxsKSE9KDB8Yyk7KSgwfGwpIT0oMHx3KSYmKFI9K2puWygwfGFbYj4+Ml0pKyhsPDwyKT4+Ml0qKygwfGFbKDB8YVtEPj4yXSkrKGw8PDIpPj4yXSksX1trPj4zXT1BKz1NPj0rX1twKyhsPDwzKT4+M10/LVI6UiksbD1sKzF8MDt3PXcrMXwwfWZvcig7''@;'; + put 'put ''Oyl7aWYoIShsPDwyND4+MjQ9PTAmKDB8Ryk8MjAwKSl7Z2U9NDI7YnJlYWt9aWYoKDB8dlYoT2UscCxMZSxjLG0sYywxKSk8MCl7bD0xO2JyZWFrfWZvcihsPTEsRD0wOyEoKDB8RCk+PSgwfGMpKTspe2ZvcihSPStfW3ArKEQ8PDMpPj4zXSxiPWJlKyhEPDwyKXwwLGs9T2UrKEQ8PDIpfDAs''@;'; + put 'put ''QT0wLHc9MDsoMHx3KSE9KDB8Yyk7KXtkb3tpZigoMHx3KSE9KDB8RCkpe2lmKE09K2puWygwfGFbaz4+Ml0pKyh3PDwyKT4+Ml0qKygwfGFbKDB8YVtiPj4yXSkrKHc8PDIpPj4yXSksUj49K19bcCsodzw8Myk+PjNdKXtBKz0tTTticmVha31BKz1NO2JyZWFrfX13aGlsZSgwKTt3PXcrMXww''@;'; + put 'put ''fUEhPShSPStfWyh3PUxlKyhEPDwzKXwwKT4+M10pJiYrZW8oKygxLUEvUikpPjFlLTUmJihfW3c+PjNdPUEsbD0wKSxEPUQrMXwwfUc9RysxfDB9ZTpkb3tpZig0Mj09KDB8Z2UpKWZvcihBPTEvSyxsPTA7Oyl7aWYoKDB8bCk+PSgwfGMpKXtsPTA7YnJlYWsgZX1fWyhIZT1mKyhsPDwzKXww''@;'; + put 'put ''KT4+M109K19bSGU+PjNdKkEsX1soSGU9cCsobDw8Myl8MCk+PjNdPStfW0hlPj4zXSpBLGw9bCsxfDB9fXdoaWxlKDApO3JldHVybiBGdCgwfGFbYmU+PjJdKSxGdChiZSksRnQoMHxhW09lPj4yXSksRnQoT2UpLEZ0KHBlKSxGdChMZSksYWU9UmUsMHxsfWZ1bmN0aW9uIGRLKGwsYyl7bHw9''@;'; + put 'put ''MCxjfD0wO3ZhciBmPTAscD0wLG09MCxBPTA7Zm9yKGY9MCxwPTA7ISgoMHxmKT49KDB8YykpOyltPStfW2wrKGY8PDMpPj4zXStwLGY9ZisxfDAscD1tO2ZvcihwLz0rKDB8YyksZj0wOyEoKDB8Zik+PSgwfGMpKTspX1soQT1sKyhmPDwzKXwwKT4+M109K19bQT4+M10tcCxmPWYrMXwwO0o3''@;'; + put 'put ''KGwsMCxBPWMrLTF8MCwxLyttcChsLDAsQSksbCl9ZnVuY3Rpb24gVTJlKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgdz0wLGI9MCxrPTAsTT0wO2Zvcih3PTA7ISgoMHx3KT49KDB8YykpOyl7Zm9yKE09bCsodzw8Mil8MCxiPTAsaz0wOyEoKDB8ayk+''@;'; + put 'put ''PSgwfGYpKTspYj0rX1twKyhrPDwzKT4+M10qK2puWygwfGFbTT4+Ml0pKyhrPDwyKT4+Ml0rYixrPWsrMXwwO19bbSsodzw8Myk+PjNdPWIsdz13KzF8MH13PWMrLTF8MCwwfEEmJmdnKG0sMCx3LC0rb2gobSwwLHcsQSksQSl9ZnVuY3Rpb24gelYobCxjKXtsfD0wLGN8PTA7dmFyIEcsSyxw''@;'; + put 'put ''ZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsZ2U9MCxiZT0wLE9lPTA7cGU9YWUsYWU9YWUrMTZ8MCxLPXBlLFJEKCksaEsoKSxmdW5jdGlvbiBfMmUoKXt2YXIgbD0wLGM9MCxmPTA7Zm9yKGFbNDY4NTddPTAsYVs0Njg1OV09MCxhWzQ2ODU4XT1jPShsPTB8YVs0''@;'; + put 'put ''Njg1NV0pPDwyLChmPTB8YVs0Njg1Nl0pfHwoZj0wfFFuKDE2MCpsfDApLGFbNDY4NTZdPWYsYz0wfGFbNDY4NThdKSxsPTA7ISgoMHxsKT49KDB8YykpOylhW2YrKDQwKmx8MCkrMzI+PjJdPTAsbD1sKzF8MH0oKSxhWzQ2OTE4XT0wfCQxWzMmY10oKSxmdW5jdGlvbiBDMmUoKXt2YXIgbD0w''@;'; + put 'put ''LGM9MCxmPTA7Zm9yKFp5KDE4NzQ0OCw0MCksYVs0Njg2Nl09Yz0obD0wfGFbNDY4NTVdKTw8MSwoZj0wfGFbNDY4NjVdKXx8KGY9MHxRbihsPDwzKSxhWzQ2ODY1XT1mLGM9MHxhWzQ2ODY2XSksbD0wOyEoKDB8bCk+PSgwfGMpKTspYVtmKyhsPDwyKT4+Ml09MCxsPWwrMXwwO2FbNDY4NjBd''@;'; + put 'put ''PTB8SEQoMCwwKSxhWzQ2ODYxXT0wfEhEKDAsMCksYVthWzQ2ODYwXT4+Ml09MCxhWzQrKGM9MHxhWzQ2ODYwXSk+PjJdPWY9MHxhWzQ2ODYxXSxhW2Y+PjJdPWMsYVs0KygwfGFbNDY4NjFdKT4+Ml09MCxhWyhmPTB8YVs0Njg2NV0pPj4yXT1hWzQ2ODYwXSxhW2YrKCgwfGFbNDY4NjZdKS0x''@;'; + put 'put ''PDwyKT4+Ml09YVs0Njg2MV19KCksRz1LKzh8MCxSPTB8JDFbMyZjXSgpLGY9MCxwPTA7ZTpmb3IoOzspe2ZvcihNPTA9PSgwfFIpLEQ9Uis4fDA7MHxGeSgpfHwodzJlKEspLGY9K19bSz4+M10scD0rX1tHPj4zXSksTXx8ISgwfEZ5KCl8fChtPStfW0Q+PjNdLG08cCl8fG09PXAmJitfW1I+''@;'; + put 'put ''PjNdPGYpOyl7aWYoMHxGeSgpKWJyZWFrIGU7bD0wfGsyZShnZT0wfGIyZSgpKSxPZT0wfEh5KGdlKSxBPTB8SHkoT2UpLGs9MHxzdmUoZ2UpLGJlPTB8V1goT2UpLGJ2ZSh3PTB8YVtnZSsyMD4+Ml0pLEJEKDB8YVtnZSs4Pj4yXSwwfGZlW2dlKzE2Pj4wXSx3KSxCRCgwfGFbT2UrOD4+Ml0s''@;'; + put 'put ''MHxmZVtPZSsxNj4+MF0sdykseFYoZ2UpLEJrKE9lKSx4VihPZSksZ2U9MSYoT2U9K19bays4Pj4zXT4rX1tiZSs4Pj4zXSksR1gobCxrPTB8SEQoYmU9MHxrVihiPU9lP2JlOmssT2U/azpiZSksZ2UpKSxCRChiZSwyNTUmKDFeZ2UpLHcpLFFEKHcpLDB8KHc9MHxORChsLGspKSYmKEJrKGwp''@;'; + put 'put ''LFU3KGwsdywrWlYodyxiKSkpLChsPTB8TkQoayxBKSkmJlU3KGssbCwrWlYobCxiKSl9Yj0wfEh5KGw9MHxNVihSKSksR1gobCxrPTB8SEQoQT0wfGtWKDB8V1gobCksUiksMCkpLDB8KHc9MHxORChsLGspKSYmKEJrKGwpLFU3KGwsdywrWlYodyxSKSkpLEdYKGssQT0wfEhEKEEsMSkpLDB8''@;'; + put 'put ''KGw9MHxORChBLGIpKSYmVTcoQSxsLCtaVihsLFIpKSxSPTB8JDFbMyZjXSgpfWZvcihsPTB8YVs0Njg2MF07KDB8KGw9MHxIeShsKSkpIT0oMHxhWzQ2ODYxXSk7KU9rKDB8YVtsKzg+PjJdKTthZT1wZX1mdW5jdGlvbiBHVihsLGMpe2x8PTAsY3w9MDt2YXIgbSxBLGY9MCx3PTA7QT1hZSxh''@;'; + put 'put ''ZT1hZSsxNnwwLG09QSs4fDA7ZG97aWYoMSE9KDB8R28obCkpKXtpZihwSyhsKSxjfHwoYz0wfFgyZShsKSksKDB8KGY9MHxnSyhsLGMpKSk8MCl7JHIoMSw5NDAzOSxtKTticmVha31LMmUobCksJDJlKGwsYyksX3ZlKGwsYyksQ3ZlKGwsZik7YnJlYWt9dz0wfGFbMTMyKygwfGFbMTYrKDB8''@;'; + put 'put ''RHQobCkpPj4yXSk+PjJdLGFbdz4+Ml09MCxhW3crND4+Ml09MCxhW3crOD4+Ml09MCxhW3crMTI+PjJdPTB9d2hpbGUoMCk7cmV0dXJuIGFlPUEsMHxjfWZ1bmN0aW9uIHBLKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2ZvcihmPTB8R28obHw9MCksZj0wfEFyKGYsZiksYz0wfER0KGwp''@;'; + put 'put ''O2M7KWFbKEE9MjQrKG09MHxhWzExMisoMHxhWyhwPWMrMTZ8MCk+PjJdKT4+Ml0pfDApPj4yXT1mLGFbQSs0Pj4yXT0wLF9bbSs0OD4+M109MTAsbT0wPT0oMHxNdmUobCxjKSksYVsocD0wfGFbMTEyKygwfGFbcD4+Ml0pPj4yXSk+PjJdPW0/ZjowLGFbcCs0Pj4yXT0wLGM9MHx6dChsLGMp''@;'; + put 'put ''fWZ1bmN0aW9uIFgyZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7cD0oMHxHbyhsfD0wKSk8MyxjPTB8RHQobCk7ZTpkb3tpZighcCl7Zm9yKDtjOykwPT0oMHxhWyhwPTB8YVsxMTIrKDB8YVtjKzE2Pj4yXSk+PjJdKT4+Ml0pJjA9PSgwfGFbcCs0Pj4yXSkmJnIxZShsLGMsMCks''@;'; + put 'put ''Yz0wfHp0KGwsYyk7Zm9yKGY9MCxjPTAscD0wfER0KGwpOzspe2lmKCFwKWJyZWFrIGU7QT0wfGFbKHc9MHxhWzExMisoMHxhW3ArMTY+PjJdKT4+Ml0pPj4yXSxmPShtPSh3PTB8YVt3KzQ+PjJdKT4+PjA+KG09KCgwfGYpPDApPDwzMT4+MzEpPj4+MHwoMHx3KT09KDB8bSkmQT4+PjA+Zj4+''@;'; + put 'put ''PjApP0E6ZixjPW0/cDpjLHA9MHx6dChsLHApfX19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBnSyhsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2ZvcihwPTB8YVsobT0yNCsoZj0wfGFbMTEyKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKXwwKT4+Ml0sYVttPj4y''@;'; + put 'put ''XT0wLGFbbSs0Pj4yXT0wLGFbZiszMj4+Ml09MCxmdW5jdGlvbiBTdmUobCxjKXtjfD0wO3ZhciBiLEQsUixHLGY9MCxwPTAsbT0wLEE9MCx3PTAsaz0wLE09MCxLPTAscGU9MDtHPWFlLGFlPWFlKzE2fDAsRD1HLFI9MHxzaShsfD0wLDIsMTAxNTQxLDApLGFbRCs0Pj4yXT0wLGFbRD4+Ml09''@;'; + put 'put ''MCx0MWUoRCxjKSxiPTA9PSgwfFIpO2U6Zm9yKDtrPTB8bjFlKEQpLGs7KWZvcihNPWsrMTZ8MCxBPTB8YVsyNCsoMHxhWzExMisoMHxhW00+PjJdKT4+Ml0pPj4yXSxtPTB8U3MobCxrKSxBPTB8emwoMCwwfEEsMCwxKSxBPTB8U0woMHxBLDB8RG4sMzIpLHc9RG47Oyl7aWYoIW0pY29udGlu''@;'; + put 'put ''dWUgZTshYiYmNDg9PSgwfGZlWygwfEhvKG0sUikpPj4wXSkmJiEoMHxqaSgwfEhvKG0sUiksMTM4Mzk0KSl8fCgoMHwoZj0wfGFbKDM9PSgwfChjPTMmYVttPj4yXSkpP206bSs0OHwwKSs0MD4+Ml0pKT09KDB8aykmJihmPTB8YVsoMj09KDB8Yyk/bTptKy00OHwwKSs0MD4+Ml0pLHc+Pj4w''@;'; + put 'put ''PChwZT0wfGFbNCsoSz1wPTI0KyhjPTB8YVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdKXwwKT4+Ml0pPj4+MHwoKDB8dyk9PSgwfHBlKT9BPj4+MDwoMHxhW0s+PjJdKT4+PjA6MCkmJihhWyhwZT1wKT4+Ml09QSxhW3BlKzQ+PjJdPXcsYVtjKzMyPj4yXT1rLEs9MHx6bCgwfGFbKEs9cGU9MTYr''@;'; + put 'put ''KDB8YVsxMTIrKDB8YVtNPj4yXSk+PjJdKXwwKT4+Ml0sMHxhW0srND4+Ml0sMSwwKSxhW3BlPj4yXT1LLGFbcGUrND4+Ml09RG4sdDFlKEQsZikpKSxtPTB8SHMobCxtLGspfWFlPUd9KGwsYyksZj0wfER0KGwpLHA9MHxTTCgwLDB8cCwzMiksbT1EbixjPTA7Zjspe2lmKCgwfChBPTB8YVso''@;'; + put 'put ''dz0yNCsoMHxhWzExMisoMHxhW2YrMTY+PjJdKT4+Ml0pfDApPj4yXSkpPT0oMHxwKSYoMHwodz0wfGFbdys0Pj4yXSkpPT0oMHxtKSl7Yz0tMTticmVha31jPXc+Pj4wPihiPSgoMHxjKTwwKTw8MzE+PjMxKT4+PjB8KDB8dyk9PSgwfGIpJkE+Pj4wPmM+Pj4wP0E6YyxmPTB8enQobCxmKX1y''@;'; + put 'put ''ZXR1cm4gMHxjfWZ1bmN0aW9uIEsyZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wO2ZvcihmPTB8RHQobHw9MCk7Zjspe3A9MTYrKGM9MHxhWzExMisoMHxhW2YrMTY+PjJdKT4+Ml0pfDA7ZTpkb3tpZigwPT0oMHxhW3A+PjJdKSYwPT0oMHxhW3ArND4+Ml0pKWZvcig7Oyl7aWYobT0wfHpsKDB8''@;'; + put 'put ''YVsobT1wPWMrOHwwKT4+Ml0sMHxhW20rND4+Ml0sMSwwKSxhW3A+PjJdPW0sYVtwKzQ+PjJdPURuLCEoYz0wfGFbYyszMj4+Ml0pKWJyZWFrIGU7Yz0wfGFbMTEyKygwfGFbYysxNj4+Ml0pPj4yXX19d2hpbGUoMCk7Zj0wfHp0KGwsZil9fWZ1bmN0aW9uICQyZShsLGMpe2x8PTAsX1s0MCso''@;'; + put 'put ''MHxhWzExMisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk+PjNdPTYuMjgzMTg1MzA3MTc5NTg2LGUxZShsLGMpfWZ1bmN0aW9uIF92ZShsLGMpe2x8PTAsX1s0OCsoMHxhWzExMisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk+PjNdPTAscTJlKGwsYyl9ZnVuY3Rpb24gQ3ZlKGwsYyl7dmFyIEEs''@;'; + put 'put ''dyxmPTAscD0wLG09MCxiPTAsaz0wO2Zvcih3PWFlLGFlPWFlKzE2fDAsbT13LEE9MHxmdW5jdGlvbiBrdmUobCxjKXtsfD0wO3ZhciBiLGssTSxmPTAscD0wLG09MCxBPTAsdz0wO009YWUsYWU9YWUrMTZ8MCxiPU0saz0wfHZyKDgrKChjfD0wKTw8Myl8MCksbD0wfHYyKGwsMHxzaSgwfGFb''@;'; + put 'put ''bCs2MD4+Ml0sMCwxMDEyODgsMCksMCk7ZTpkb3tpZihsKXtBPTAsZj0wLG09MTt0OmZvcig7Oyl7aWYoKDB8bSk+KDB8Yykpe3A9QSxsPW07YnJlYWsgZX1pZighKChwPStpMyhsLGIpKT4wKSl7cD1BLGw9bTticmVhayBlfWZvcih3PW0rMXwwLF9baysobTw8Myk+PjNdPWY9KEE9cD4uMDI/''@;'; + put 'put ''cDouMDIpK2YsbD0wfGFbYj4+Ml07Oyl7aWYoISgobT0wfGZlW2w+PjBdKTw8MjQ+PjI0KSl7bT13O2NvbnRpbnVlIHR9aWYoIShtPDwyND4+MjQ9PTU4fDAhPSgwfCRjKG08PDI0Pj4yNCkpKSl7bT13O2NvbnRpbnVlIHR9bD1sKzF8MH19fWVsc2UgcD0xLGY9MCxsPTF9d2hpbGUoMCk7Zm9y''@;'; + put 'put ''KDshKCgwfGwpPigwfGMpKTspX1trKyhsPDwzKT4+M109QT1mK3AsbD1sKzF8MCxmPUE7cmV0dXJuIGFlPU0sMHxrfShsfD0wLGN8PTApLGY9MHxEdChsKTtmOyliPStfW0ErKGFbMjQrKHA9MHxhWzExMisobT0wfGFbZisxNj4+Ml0pPj4yXSk+PjJdPDwzKT4+M10saz0raGEoKyArX1socD1w''@;'; + put 'put ''KzQ4fDApPj4zXSkqYixfWyhtPTB8YVttKzEzMj4+Ml0pPj4zXT1rLF9bbSs4Pj4zXT0rRGEoKyArX1twPj4zXSkqYixmPTB8enQobCxmKTtGdChBKSxhZT13fWZ1bmN0aW9uIHEyZShsLGMpe3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtmb3IocD0wfGFbMzIrKGY9MHxhWzExMisoMHxh''@;'; + put 'put ''WzE2KyhjfD0wKT4+Ml0pPj4yXSk+PjJdPytfW2YrNDg+PjNdLS41KitfW2YrNDA+PjNdOjAsQT0wfFNzKGx8PTAsYyk7QTspKDB8KG09MHxhWygzPT0oMHwoZj0zJmFbQT4+Ml0pKT9BOkErNDh8MCkrNDA+PjJdKSk9PSgwfGMpJiYobT0wfGFbKDI9PSgwfGYpP0E6QSstNDh8MCkrNDA+PjJd''@;'; + put 'put ''KSwoMHxhWzMyKyhmPTB8YVsxMTIrKDB8YVttKzE2Pj4yXSk+PjJdKT4+Ml0pPT0oMHxjKSYmMTA9PStfWyh3PWYrNDh8MCk+PjNdJiYoX1t3Pj4zXT0uNSooYj0rX1tmKzQwPj4zXSkrcCxwPWIrcCwwPT0oMHxhWyhmPWYrMTZ8MCk+PjJdKSYwPT0oMHxhW2YrND4+Ml0pfHxxMmUobCxtKSks''@;'; + put 'put ''QT0wfEhzKGwsQSxjKX1mdW5jdGlvbiBlMWUobCxjKXt2YXIgQSxmPTAscD0wLG09MCx3PTAsYj0wO2ZvcihBPStfWzQwKyhwPTB8YVsxMTIrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pPj4zXS8oKygoMHxhWyhtPXArOHwwKT4+Ml0pPj4+MCkrNDI5NDk2NzI5NiorKCgwfGFbbSs0Pj4yXSk+''@;'; + put 'put ''Pj4wKSksbT0wfFNzKGx8PTAsYyk7bTspKDB8KGY9MHxhWygzPT0oMHwocD0zJmFbbT4+Ml0pKT9tOm0rNDh8MCkrNDA+PjJdKSk9PSgwfGMpJiYoZj0wfGFbKDI9PSgwfHApP206bSstNDh8MCkrNDA+PjJdKSwoMHxhWzMyKyhwPTB8YVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdKT4+Ml0pPT0o''@;'; + put 'put ''MHxjKSYmMD09K19bKHc9cCs0MHwwKT4+M10mJihfW3c+PjNdPUEqKCsoKDB8YVsoYj1wKzh8MCk+PjJdKT4+PjApKzQyOTQ5NjcyOTYqKygoMHxhW2IrND4+Ml0pPj4+MCkpLCEoMD09KDB8YVsocD1wKzE2fDApPj4yXSkmMD09KDB8YVtwKzQ+PjJdKSkpJiZlMWUobCxmKSxtPTB8SHMobCxt''@;'; + put 'put ''LGMpfWZ1bmN0aW9uIHQxZShsLGMpe3ZhciBmLHA7bHw9MCxjfD0wLGY9MHx2cig4KSxhW2Y+PjJdPWMsYVsoMD09KDB8KHA9MHxhWyhjPWwrNHwwKT4+Ml0pKT9sOnArNHwwKT4+Ml09ZixhW2M+PjJdPWZ9ZnVuY3Rpb24gbjFlKGwpe3ZhciBmLGM9MDtyZXR1cm4oZj0wfGFbKGx8PTApPj4y''@;'; + put 'put ''XSk/KGM9MHxhW2Y+PjJdLGFbbD4+Ml09YVtmKzQ+PjJdLEZ0KGYpLDB8YVtsPj4yXXx8KGFbbCs0Pj4yXT0wKSk6Yz0wLDB8Y31mdW5jdGlvbiByMWUobCxjLGYpe2Z8PTA7dmFyIGIscD0wLG09MCxBPTAsdz0wLGs9MCxNPTA7Zm9yKHc9MHxhW2FbMTEyKygwfGFbMTYrKGN8PTApPj4yXSk+''@;'; + put 'put ''PjJdPj4yXSxBPTB8U3MobHw9MCxjKSx3PTB8U0woMHwodz0wfHpsKDAsMHx3LDAsMSkpLDB8RG4sMzIpLGI9RG47QTspKDB8KHA9MHxhWygzPT0oMHwobT0zJmFbQT4+Ml0pKT9BOkErNDh8MCkrNDA+PjJdKSk9PSgwfGMpJiYocD0wfGFbKDI9PSgwfG0pP0E6QSstNDh8MCkrNDA+PjJdKSwo''@;'; + put 'put ''MHxwKSE9KDB8ZikmJmI+Pj4wPChNPTB8YVs0KyhtPWs9MHxhWzExMisoMHxhW3ArMTY+PjJdKT4+Ml0pPj4yXSk+Pj4wfCgoMHxiKT09KDB8TSk/dz4+PjA8KDB8YVttPj4yXSk+Pj4wOjApJiYoYVsoTT1rKT4+Ml09dyxhW00rND4+Ml09YixyMWUobCxwLGMpKSxBPTB8SHMobCxBLGMpfWZ1''@;'; + put 'put ''bmN0aW9uIE12ZShsLGMpe3ZhciBmPTAscD0wLG09MCxBPTA7Zm9yKG09MCxBPTB8U3MobHw9MCxjfD0wKTs7KXtpZighQSl7Zj0xO2JyZWFrfWlmKCgwfChmPTB8YVsoMz09KDB8KHA9MyZhW0E+PjJdKSk/QTpBKzQ4fDApKzQwPj4yXSkpPT0oMHxjKSYmKGY9MHxhWygyPT0oMHxwKT9BOkEr''@;'; + put 'put ''LTQ4fDApKzQwPj4yXSksKDB8ZikhPSgwfGMpKXtpZihtKXtpZigoMHxtKSE9KDB8Zikpe2Y9MDticmVha31mPW19fWVsc2UgZj1tO209ZixBPTB8SHMobCxBLGMpfXJldHVybiAwfGZ9ZnVuY3Rpb24gaTFlKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIEcsbT0wLEE9MCx3PTAs''@;'; + put 'put ''Yj0wLGs9MCxNPTAsRD0wLFI9MDtmb3IoRz0wfHZyKDcyKSxhW0crNjA+PjJdPTAsYVtHKzU2Pj4yXT1sLGs9bCsxNnwwLG09MCxNPTAsdz0xLGI9MCxEPTA7ISgoMHx3KT4oMHxhWzE4MCsoQT0wfGFbaz4+Ml0pPj4yXSkpOylBPTB8aTFlKDB8YVsoMHxhW0ErMTg0Pj4yXSkrKHc8PDIpPj4y''@;'; + put 'put ''XSxjLGYscCksbT0rX1tBPj4zXSttLDB8YiYmKGFbYis1Mj4+Ml09QSksTT1NKzF8MCx3PXcrMXwwLGI9QSxEPTA9PSgwfEQpP0E6RDtmb3IoUj0wfER0KGwpLEE9RDtSOykwfGFbYVsxMTIrKDB8YVsodz1SKzE2fDApPj4yXSk+PjJdPj4yXT93PU06KGs9MHx4dmUoUixmKSxtPStfW2s+PjNd''@;'; + put 'put ''K20sMHxiJiYoYVtiKzUyPj4yXT1rKSxhW2FbMTEyKygwfGFbdz4+Ml0pPj4yXT4+Ml09bCx3PU0rMXwwLGI9ayxBPTA9PSgwfEEpP2s6QSksUj0wfHp0KGwsUiksTT13O3JldHVybiBhW0crNjQ+PjJdPU0sTT8oX1tHKzg+PjNdPW0sbT0rZnVuY3Rpb24gV1YobCxjKXt2YXIgZj0wO3JldHVy''@;'; + put 'put ''bisoZj0wPT0oZj0rTWwoMHxhWzU2KyhsfD0wKT4+Ml0sY3w9MCwwLDApKT8rX1tsKzg+PjNdOihmPStEMCgrICtfW2wrOD4+M10pKzIqZikqZil9KEcscCkpOm09K3lLKGwsYyksX1tHPj4zXT1tLGFbRys0OD4+Ml09QSwwfEd9ZnVuY3Rpb24gdksobCl7dmFyIFIsRyxjPTAsZj0wLHA9MCxt''@;'; + put 'put ''PTAsQT0wLHc9MCxiPTAsaz0wLE09MCxLPTAscGU9MCxnZT0wO0c9YWUsYWU9YWUrMTc2fDAsbT1HKzE0NHwwLGs9RyszMnwwLHc9RyxSPTB8YVs2NCsobHw9MCk+PjJdO2U6ZG97aWYoMHxSKXtmb3IoTT0wfHZyKFI8PDIpLHA9MCxmPWM9bCs0OHwwO2Y9MHxhW2Y+PjJdLCEoKDB8cCk+PSgw''@;'; + put 'put ''fFIpKTspYVtNKyhwPDwyKT4+Ml09ZixwPXArMXwwLGY9Zis1MnwwO2Zvcih4MShNLFIsNCw4MCksYj0wfHZyKFI8PDMpLGY9MDshKCgwfGYpPj0oMHxSKSk7KV9bYisoZjw8Myk+PjNdPStfW2FbTSsoZjw8Mik+PjJdPj4zXSxmPWYrMXwwO2ZvcigrX1tsPj4zXT09KEE9K19bbCs4Pj4zXSk/''@;'; + put 'put ''KGFbbT4+Ml09YVsodz1sKzE2fDApPj4yXSxhW20rND4+Ml09YVt3KzQ+PjJdLGFbbSs4Pj4yXT1hW3crOD4+Ml0sYVttKzEyPj4yXT1hW3crMTI+PjJdLGFbbSsxNj4+Ml09YVt3KzE2Pj4yXSxhW20rMjA+PjJdPWFbdysyMD4+Ml0sYVttKzI0Pj4yXT1hW3crMjQ+PjJdLGFbbSsyOD4+Ml09''@;'; + put 'put ''YVt3KzI4Pj4yXSx3PTB8bDFlKFIsYixtKSk6KEs9K19bbCs0MD4+M10scGU9K19bbCszMj4+M10sX1t3Pj4zXT0rX1tsKzE2Pj4zXSxfW3crOD4+M109K19bbCsyND4+M10sQT0uNSoocGUrSy0rRDAoKyg0KkErKGdlPUstcGUpKmdlKSkpLF9bdysxNj4+M109cGUtQSxfW3crMjQ+PjNdPUst''@;'; + put 'put ''QSxhW20+PjJdPWFbdz4+Ml0sYVttKzQ+PjJdPWFbdys0Pj4yXSxhW20rOD4+Ml09YVt3Kzg+PjJdLGFbbSsxMj4+Ml09YVt3KzEyPj4yXSxhW20rMTY+PjJdPWFbdysxNj4+Ml0sYVttKzIwPj4yXT1hW3crMjA+PjJdLGFbbSsyND4+Ml09YVt3KzI0Pj4yXSxhW20rMjg+PjJdPWFbdysyOD4+''@;'; + put 'put ''Ml0sdz0wfGwxZShSLGIsbSkpLHA9MHxhWzE1NzEyXSxmPTA7ISgoMHxmKT49KDB8UikpOylhWyhrPTE2KygwfGFbTSsoZjw8Mik+PjJdKXwwKT4+Ml09YVsobT13KyhmPDw1KXwwKT4+Ml0sYVtrKzQ+PjJdPWFbbSs0Pj4yXSxhW2srOD4+Ml09YVttKzg+PjJdLGFbaysxMj4+Ml09YVttKzEy''@;'; + put 'put ''Pj4yXSxhW2srMTY+PjJdPWFbbSsxNj4+Ml0sYVtrKzIwPj4yXT1hW20rMjA+PjJdLGFbaysyND4+Ml09YVttKzI0Pj4yXSxhW2srMjg+PjJdPWFbbSsyOD4+Ml0sZj1mKzF8MDtmb3IoRnQoTSksRnQoYiksRnQodyksZj0wOzspe2lmKGM9MHxhW2M+PjJdLCgwfGYpPj0oMHxSKSlicmVhayBl''@;'; + put 'put ''OzB8YVtjKzYwPj4yXXx8dksoYyksYz1jKzUyfDAsZj1mKzF8MH19fXdoaWxlKDApO2FlPUd9ZnVuY3Rpb24gQUsobCl7dmFyIG0sYz0wLGY9MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2lmKG09YWUsYWU9YWUrNDh8MCwwfGFbNjArKGx8PTApPj4yXSlrPStfW2wrMjQ+PjNdLHc9K19bbCszMj4+''@;'; + put 'put ''M10sQT0rX1tsKzQwPj4zXSxfWzE2KyhiPTB8YVsoZj0xNisoYz0wfGFbbCs1Nj4+Ml0pfDApPj4yXSk+PjNdPStfW2wrMTY+PjNdLF9bYisyND4+M109ayxfWzMyKyhsPTB8YVtmPj4yXSk+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqdyxfW2wrNDA+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgq''@;'; + put 'put ''QSx4eShjLDEmYVsxMTYrKDB8YVsxNisoMHxjcihjKSk+PjJdKT4+Ml0pLGZ1bmN0aW9uIGExZShsKXtsfD0wO3ZhciBjLGYscCxtO209YWUsYWU9YWUrNDh8MCxwPW0sYz1tKzh8MCwwfChmPTB8YVs0NzE1MF0pJiYwPT0oMHxmZVsoMHxIbyhsLGYpKT4+MF0pJiYoX1twPj4zXT0uNyorX1s4''@;'; + put 'put ''MCsoMHxhW2wrMTY+PjJdKT4+M10sb28oYyw5NDE2OCxwKSxWbChsLDB8YVs0NzE1MF0sYykpLHNEKGwpLGFlPW19KGMpO2Vsc2V7Zm9yKGM9bCs0OHwwO2M9MHxhW2M+PjJdOylBSyhjKSxjPWMrNTJ8MDtrPStfW2wrMjQ+PjNdLS41KihNPStfW2wrNDA+PjNdKSxfWzE2KyhiPTB8YVsxNiso''@;'; + put 'put ''MHxhW2wrNTY+PjJdKT4+Ml0pPj4zXT1BPStfW2wrMTY+PjNdLS41Kih3PStfW2wrMzI+PjNdKSxfW2IrMjQ+PjNdPWssX1tiKzMyPj4zXT1BK3csX1tiKzQwPj4zXT1rK019YWU9bX1mdW5jdGlvbiBvMWUobCl7dmFyIHAsYz0wLGY9MDtmb3IocD0wfGFbNjQrKGx8PTApPj4yXSxjPWwrNDh8''@;'; + put 'put ''MCxmPTA7Yz0wfGFbYz4+Ml0sISgoMHxmKT49KDB8cCkpOylvMWUoYyksYz1jKzUyfDAsZj1mKzF8MDtGdChsKX1mdW5jdGlvbiB4dmUobCxjKXt2YXIgZjtyZXR1cm4gbHw9MCxjfD0wLGY9MHx2cig3MiksX1tmPj4zXT0reUsobCxjKSxhW2YrNjA+PjJdPTEsYVtmKzU2Pj4yXT1sLDB8Zn1m''@;'; + put 'put ''dW5jdGlvbiB5SyhsLGMpe3ZhciBmO3JldHVybisoMD09KGY9K01sKGx8PTAsY3w9MCwxLDApKT8xZTM6MWUzKmYpfWZ1bmN0aW9uIGwxZShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIEEsdyxwPTAsbT0wLGI9MDtmb3Iodz1hZSxhZT1hZSszMnwwLEE9dyxwPTAsbT0wOyEoKDB8cCk+PSgw''@;'; + put 'put ''fGwpKTspYj0rX1tjKyhwPDwzKT4+M10rbSxwPXArMXwwLG09YjtyZXR1cm4gbT4rX1tmKzI0Pj4zXSorX1tmKzE2Pj4zXSsuMDAxP3A9MDoocD0wfHZyKGw8PDUpLGFbQT4+Ml09YVtmPj4yXSxhW0ErND4+Ml09YVtmKzQ+PjJdLGFbQSs4Pj4yXT1hW2YrOD4+Ml0sYVtBKzEyPj4yXT1hW2Yr''@;'; + put 'put ''MTI+PjJdLGFbQSsxNj4+Ml09YVtmKzE2Pj4yXSxhW0ErMjA+PjJdPWFbZisyMD4+Ml0sYVtBKzI0Pj4yXT1hW2YrMjQ+PjJdLGFbQSsyOD4+Ml09YVtmKzI4Pj4yXSxZVihsLGMscCwwLDAsMSwwLDEsQSkpLGFlPXcsMHxwfWZ1bmN0aW9uIFlWKGwsYyxmLHAsbSxBLHcsYixrKXtsfD0wLGN8''@;'; + put 'put ''PTAsZnw9MCxwfD0wLG09K20sQT0rQSx3PSt3LGI9K2I7dmFyIFJlLEhlLFZlLHFlLE09MCxEPTAsUj0wLEc9MCxLPTAsZ2U9MCxiZT0wLExlPTAsbnQ9MCxXZT0wO3FlPWFlLGFlPWFlKzExMnwwLFZlPXFlKzcyfDAsRz1xZSszMnwwLE09cWUsTGU9K19bMTYrKGt8PTApKygoMSYhKChLPStf''@;'; + put 'put ''WyhSZT1rKzE2fDApPj4zXSk8K19bKEhlPWsrMjR8MCk+PjNdKSk8PDMpPj4zXTtkb3tpZigoMHxsKT49MSl7aWYoIXApe0xlPSh3PStfW2M+PjNdKS8oV2U9TGUqTGUpLFdlLz13LGFbVmU+PjJdPWFbaz4+Ml0sYVtWZSs0Pj4yXT1hW2srND4+Ml0sYVtWZSs4Pj4yXT1hW2srOD4+Ml0sYVtW''@;'; + put 'put ''ZSsxMj4+Ml09YVtrKzEyPj4yXSxhW1ZlKzE2Pj4yXT1hW2srMTY+PjJdLGFbVmUrMjA+PjJdPWFbaysyMD4+Ml0sYVtWZSsyND4+Ml09YVtrKzI0Pj4yXSxhW1ZlKzI4Pj4yXT1hW2srMjg+PjJdLFlWKGwsYyxmLDEsdyx3LHcsTGU+V2U/TGU6V2UsVmUpO2JyZWFrfWlmKCgwfGwpPigwfHAp''@;'; + put 'put ''JiYoRD0oYmU9K19bYysocDw8Myk+PjNdKTxtP206YmUsZ2U9YmU+QT9BOmJlLFI9KGJlKz13KS9MZSwoUj0oV2U9KFIqPVIpL2dlKT4oUj1EL1IpP1dlOlIpPD1iKSl7YVtWZT4+Ml09YVtrPj4yXSxhW1ZlKzQ+PjJdPWFbays0Pj4yXSxhW1ZlKzg+PjJdPWFbays4Pj4yXSxhW1ZlKzEyPj4y''@;'; + put 'put ''XT1hW2srMTI+PjJdLGFbVmUrMTY+PjJdPWFbaysxNj4+Ml0sYVtWZSsyMD4+Ml09YVtrKzIwPj4yXSxhW1ZlKzI0Pj4yXT1hW2srMjQ+PjJdLGFbVmUrMjg+PjJdPWFbaysyOD4+Ml0sWVYobCxjLGYscCsxfDAsRCxnZSxiZSxSLFZlKTticmVha31pZihLPXcvTGUsTGU9PShEPStfW1JlPj4z''@;'; + put 'put ''XSkpe2ZvcihSPTEvSyxHPWsrOHwwLEQ9K19baz4+M10tLjUqRCxNPTA7ISgoMHxNKT49KDB8cCkpOylfW2YrKE08PDUpKzI0Pj4zXT1LLF9bZisoTTw8NSkrMTY+PjNdPVdlPStfW2MrKE08PDMpPj4zXSpSLF9bZisoTTw8NSkrOD4+M109LjUqKCtfW0hlPj4zXS1LKSsgK19bRz4+M10sX1tm''@;'; + put 'put ''KyhNPDw1KT4+M109LjUqV2UrRCxEPVdlK0QsTT1NKzF8MDtfW0c+PjNdPStfW0c+PjNdLS41KkssTT0xfWVsc2V7Zm9yKFI9MS9LLEQ9LjUqK19bSGU+PjNdKyArX1trKzg+PjNdLE09MDshKCgwfE0pPj0oMHxwKSk7KV9bZisoTTw8NSkrMTY+PjNdPUssX1tmKyhNPDw1KSsyND4+M109V2U9''@;'; + put 'put ''K19bYysoTTw8Myk+PjNdKlIsX1tmKyhNPDw1KT4+M109LjUqKEstK19bUmU+PjNdKSsgK19baz4+M10sX1tmKyhNPDw1KSs4Pj4zXT1ELS41KldlLEQtPVdlLE09TSsxfDA7X1trPj4zXT0rX1trPj4zXSsuNSpLLE09MH1fWyhudD1rKzE2KyhNPDwzKXwwKT4+M109K19bbnQ+PjNdLUssYVtW''@;'; + put 'put ''ZT4+Ml09YVtrPj4yXSxhW1ZlKzQ+PjJdPWFbays0Pj4yXSxhW1ZlKzg+PjJdPWFbays4Pj4yXSxhW1ZlKzEyPj4yXT1hW2srMTI+PjJdLGFbVmUrMTY+PjJdPWFbaysxNj4+Ml0sYVtWZSsyMD4+Ml09YVtrKzIwPj4yXSxhW1ZlKzI0Pj4yXT1hW2srMjQ+PjJdLGFbVmUrMjg+PjJdPWFbaysy''@;'; + put 'put ''OD4+Ml0sWVYobC1wfDAsYysocDw8Myl8MCxmKyhwPDw1KXwwLDAsMCwwLDAsMSxWZSl9fXdoaWxlKDApO2FlPXFlfWZ1bmN0aW9uIER2ZShsLGMpe2N8PTA7dmFyIGIsayxNLEQsRyxLLGY9MCxwPTAsbT0wLEE9MCx3PTAsUj0wO2ZvcihHPWFlLGFlPWFlKzE2fDAsRD1HLHA9MHxhWygyPT0o''@;'; + put 'put ''MHwoZj0zJmFbKGx8PTApPj4yXSkpP2w6bCstNDh8MCkrNDA+PjJdLGY9MHxhWygzPT0oMHxmKT9sOmwrNDh8MCkrNDA+PjJdLGFbKE09Rys0fDApPj4yXT1BPTB8YVsyMTIrKDB8YVsoSz1wKzE2fDApPj4yXSk+PjJdLGFbRD4+Ml09bT0wfGFbMjEyKygwfGFbKHc9ZisxNnwwKT4+Ml0pPj4y''@;'; + put 'put ''XSxrPTB8dnIoMTIpLGw9QSxiPW0sMHxmZVsxMTgrKDB8YVtLPj4yXSk+PjBdJiYoYVtNPj4yXT1sPTB8YVs0OCsoMHxhWzE0MCsoMHxhW2wrMTY+PjJdKT4+Ml0pPj4yXSxwPUEsQT1sKSwwfGZlWzExOCsoMHxhW3c+PjJdKT4+MF0/KGFbRD4+Ml09dz0wfGFbNDgrKDB8YVsxNDArKDB8YVti''@;'; + put 'put ''KzE2Pj4yXSk+PjJdKT4+Ml0sZj1tLG09dyk6dz1iLCgwfChBPTB8YVs0NCsoMHxhWzE0MCsoMHxhW0ErMTY+PjJdKT4+Ml0pPj4yXSkpPD0oMHwobT0wfGFbNDQrKDB8YVsxNDArKDB8YVttKzE2Pj4yXSk+PjJdKT4+Ml0pKT8oMHxtKT4oMHxBKT8od0soayxtLGYsQSxELGMpLG09bD0wfGFb''@;'; + put 'put ''RD4+Ml0sZj1ELFI9MTEpOkE9dzood0soayxBLHAsbSxNLGMpLHA9bD0wfGFbTT4+Ml0sbT1mLGY9TSxSPTExKTsxMT09KDB8UikmJihhW2Y+PjJdPWFbNDgrKDB8YVsxNDArKDB8YVtsKzE2Pj4yXSk+PjJdKT4+Ml0sZj1tLGw9MHxhW00+PjJdLEE9MHxhW0Q+PjJdKSwoMHxsKSE9KDB8QSk7''@;'; + put 'put ''KVVWKGssbCwwLHAsYyksVVYoayxBLGYsMCxjKSxhW00+PjJdPWFbNDgrKDB8YVsxNDArKDB8YVtsKzE2Pj4yXSk+PjJdKT4+Ml0scD1sLG09QSxmPUQsbD1BLFI9MTE7cmV0dXJuIFVWKGssQSxmLHAsYyksYWU9RywwfGt9ZnVuY3Rpb24gTHZlKGwpe2FbKGx8PTApPj4yXT0wfWZ1bmN0aW9u''@;'; + put 'put ''IHdLKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLEF8PTA7dmFyIHc9MCxiPTA7Zm9yKGI9bXw9MDt3PTB8YVtiPj4yXSwhKCgwfGMpPD0oMHxwKSk7KVVWKGwsdyxmLDAsQSksYz1jKy0xfDAsYj00OCsoMHxhWzE0MCsoMHxhW3crMTY+PjJdKT4+Ml0pfDAsZj13O2FbbT4+Ml09''@;'; + put 'put ''Zn1mdW5jdGlvbiBVVihsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTA7Zm9yKEE9MHxEdChjfD0wKTtBOyl3PTB8YVtBKzE2Pj4yXSwhKCgwfEEpPT0oMHxwKXwoKDB8QSk9PSgwfGYpPzE6KDB8YVt3KzIxMj4+Ml0pIT0oMHxjKSkpJiYwPT0oMHxmZVt3KzExOD4+''@;'; + put 'put ''MF0pJiZzMWUobCwwfG1EKEEsbSwwKSksQT0wfHp0KGMsQSk7Zm9yKHc9YysxNnwwLGM9MTshKCgwfGMpPigwfGFbMTgwKyhBPTB8YVt3Pj4yXSk+PjJdKSk7KSgwfChBPTB8YVsoMHxhW0ErMTg0Pj4yXSkrKGM8PDIpPj4yXSkpPT0oMHxmKXwoMHxBKT09KDB8cCl8fHMxZShsLDB8UnZlKEEs''@;'; + put 'put ''bSkpLGM9YysxfDB9ZnVuY3Rpb24gczFlKGwsYyl7Y3w9MDt2YXIgcCxtLGY9MCxBPTA7bT0wfGFbKHA9NCsobHw9MCl8MCk+PjJdLGY9MHxhWyhBPWwrOHwwKT4+Ml07ZG97aWYoKDB8bSk9PSgwfGFbbD4+Ml0pKXtpZihmKXthW3A+PjJdPW08PDEsZj0wfFYwKGYsbTw8MyksYVtBPj4yXT1m''@;'; + put 'put ''O2JyZWFrfWY9MHxRbig0MDApLGFbQT4+Ml09ZixhW3A+PjJdPTEwMDticmVha319d2hpbGUoMCk7YVtsPj4yXT0xKyhBPTB8YVtsPj4yXSksYVtmKyhBPDwyKT4+Ml09Y31mdW5jdGlvbiBSdmUobCxjKXtsfD0wLGN8PTA7dmFyIHcsYixrLGY9MCxwPTAsbT0wLEE9MCxNPTAsRD0wLFI9MDty''@;'; + put 'put ''ZXR1cm4gaz0wfHZyKDgpLGY9K19bMTYrKGw9MHxhW2wrMTY+PjJdKT4+M10sYj0rX1tsKzI0Pj4zXSxwPStfW2wrMzI+PjNdLHc9K19bbCs0MD4+M10sYVtrKzQ+PjJdPTQsbD0wfHZyKDY0KSxhW2s+PjJdPWwsMHxmZVtjKzg+PjBdPyhBPWYtKG09K2puW2M+PjJdKSxtPXArbSxwPXcrKFI9''@;'; + put 'put ''K2puW2MrND4+Ml0pLGY9Yi1SKTooQT1mKihSPStqbltjPj4yXSktKG09LjUqKHArZikqKFIrLTEpKSxtPXAqUi1tLHA9dyooRD0ram5bYys0Pj4yXSktKE09LjUqKHcrYikqKEQrLTEpKSxmPWIqRC1NKSxfW2w+PjNdPUEsX1tsKzg+PjNdPWYsX1tsKzE2Pj4zXT1BLF9bbCsyND4+M109cCxf''@;'; + put 'put ''W2wrMzI+PjNdPW0sX1tsKzQwPj4zXT1wLF9bbCs0OD4+M109bSxfW2wrNTY+PjNdPWYsMHxrfWZ1bmN0aW9uIFFWKGwsYyxmLHApe2x8PTAsZnw9MDt2YXIgbT0wLEE9MCx3PTA7Zm9yKGZlWyhwfD0wKSsoMHxhWzEyMCsoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk+PjBdPTEsV24oZixjLDEp''@;'; + put 'put ''LHc9MHxTcyhsLGMpO3c7KSgwfChtPTB8YVsoMz09KDB8KEE9MyZhW3c+PjJdKSk/dzp3KzQ4fDApKzQwPj4yXSkpPT0oMHxjKSYmKG09MHxhWygyPT0oMHxBKT93OncrLTQ4fDApKzQwPj4yXSksMHxmZVtwKygwfGFbMTIwKygwfGFbbSsxNj4+Ml0pPj4yXSk+PjBdfHxRVihsLG0sZixwKSx3''@;'; + put 'put ''PTB8SHMobCx3LGMpfWZ1bmN0aW9uIHUxZShsKXt2YXIgYztyZXR1cm4gbHw9MCxjPTB8UW4oMjQpLGFbNDY5MjRdPWMsYVtjPj4yXT0wfGlzKDE4MjA0LDB8YVs0NTgxXSksYVtjKzE2Pj4yXT0wLGFbYysxMj4+Ml09MCxhW2MrND4+Ml09MHxjMWUobCksMHxjfWZ1bmN0aW9uIGMxZShsKXt2''@;'; + put 'put ''YXIgYyxmO3JldHVybiBsfD0wLGM9MHxRbigxNiksYVtjKzEyPj4yXT0wLGY9MHxRbigyMCpsfDApLGFbYz4+Ml09ZixhW2MrOD4+Ml09ZisoMjAqbHwwKSxhW2MrND4+Ml09ZiwwfGN9ZnVuY3Rpb24gX0sobCxjKXt2YXIgbSxmPTAscD0wOygwfChmPTB8YVsobT0xMisobHw9MCl8MCk+PjJd''@;'; + put 'put ''KSk8KDB8KGN8PTApKSYmKHA9KDB8KHA9Zjw8MSkpPCgwfGMpP2M6cCwwfChmPTB8YVsoYz1sKzE2fDApPj4yXSkmJkZ0KGYpLGFbYz4+Ml09MHxRbihwPDwzKSxhW20+PjJdPXApfWZ1bmN0aW9uIENLKGwpe05sKDB8YVsobHw9MCk+PjJdKSxmdW5jdGlvbiBrSyhsKXtsfD0wO2Zvcih2YXIg''@;'; + put 'put ''Yz0wO2w7KWM9MHxhW2wrMTI+PjJdLEZ0KDB8YVtsPj4yXSksRnQobCksbD1jfSgwfGFbbCs0Pj4yXSksRnQoMHxhW2wrMTY+PjJdKSxGdChsKX1mdW5jdGlvbiBTSyhsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgQSxiLHc9MDtBPWFlLGFlPWFlKzMyfDAsYVsodz1BKzEyfDApPj4yXT1j''@;'; + put 'put ''fD0wLGFbdys0Pj4yXT1mLHc9OCsoMHxtaVs2MyZhWyhiPTB8YVtsPj4yXSk+PjJdXShiLHcsMSkpfDAsYVt3Pj4yXT0wfGZ1bmN0aW9uIE1LKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA7cmV0dXJuIGFbKHA9MjArKGx8PTApfDApPj4yXT04KyhsPTB8YVtwPj4yXSksYVtsPj4yXT1jLGFbbCs0''@;'; + put 'put ''Pj4yXT1mLDB8bH0obCxwLDB8YVt3Pj4yXSksYWU9QX1mdW5jdGlvbiBHeShsKXtyZXR1cm4rICtfWyhsfD0wKT4+M119ZnVuY3Rpb24gVmsobCl7cmV0dXJuIDB8YVs4KyhsfD0wKT4+Ml19ZnVuY3Rpb24gamsobCl7cmV0dXJuIDB8fn4rX1sxNisobHw9MCk+PjNdfWZ1bmN0aW9uIEtEKGws''@;'; + put 'put ''YyxmLHAsbSxBKXtsfD0wLHB8PTAsbXw9MCxBfD0wLCgwfChjPTB8YVsoY3w9MCk+PjJdKSk+PSgwfGFbKGZ8PTApPj4yXSkmJihhW2Y+PjJdPWM9YysxMHwwLGFbcD4+Ml09MHxWMCgwfGFbcD4+Ml0sMHxBcihsPDwzLGMpKSxhW20+PjJdPTB8VjAoMHxhW20+PjJdLGFbZj4+Ml08PDMpLGFb''@;'; + put 'put ''QT4+Ml09MHxWMCgwfGFbQT4+Ml0sYVtmPj4yXTw8MykpfWZ1bmN0aW9uIHhLKGwsYyxmLHAsbSxBLHcsYixrLE0sRCl7bHw9MCxjPStjLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLGt8PTAsRHw9MDt2YXIgUj0wLEc9MCxLPTAscGU9MCxnZT0wO19bKE18PTApPj4zXT0rX1tNPj4z''@;'; + put 'put ''XSsxO2U6ZG97aWYoMHxsKXtpZihwZT0wfGFbbCsxNj4+Ml0sMHwoUj0wfGFbbCs0MD4+Ml0pKWRve2lmKEtEKHBlLG0sQSx3LGIsayksKDB8amsoMHxMdShSKSkpIT0oMHxwKSl7Zm9yKEs9MHxWaygwfEx1KFIpKSxHPTA7ISgoMHxHKT49KDB8cGUpKTspX1soMHxhW3c+PjJdKSsoKDB8QXIo''@;'; + put 'put ''MHxhW20+PjJdLHBlKSkrRzw8Myk+PjNdPStfW0srKEc8PDMpPj4zXSxHPUcrMXwwO2dlPStHeSgwfEx1KFIpKSxfWygwfGFbYj4+Ml0pKyhhW20+PjJdPDwzKT4+M109Z2UsZ2U9K2JBKGYsSyxwZSksX1soMHxhW2s+PjJdKSsoKEs9MHxhW20+PjJdKTw8Myk+PjNdPWdlLGFbbT4+Ml09Sysx''@;'; + put 'put ''fVI9MHxHbShSKX13aGlsZSgwIT0oMHxSKSk7aWYoMHxhWyhLPWwrMzZ8MCk+PjJdKXtpZihnZT0rYkEoMHxhW2wrMjA+PjJdLGYscGUpLCEoK19bbCsyND4+M108Z2UqYykpZm9yKEc9MTw8cGUsUj0wOzspe2lmKCgwfFIpPj0oMHxHKSlicmVhayBlO3hLKDB8YVsoMHxhW0s+PjJdKSsoUjw8''@;'; + put 'put ''Mik+PjJdLGMsZixwLG0sQSx3LGIsayxNLEQpLFI9UisxfDB9Zm9yKEtEKHBlLG0sQSx3LGIsayksRz1sKzMyfDAsUj0wOyEoKDB8Uik+PSgwfHBlKSk7KV9bKDB8YVt3Pj4yXSkrKCgwfEFyKDB8YVttPj4yXSxwZSkpK1I8PDMpPj4zXT0rX1soMHxhW0c+PjJdKSsoUjw8Myk+PjNdLFI9Uisx''@;'; + put 'put ''fDA7X1soMHxhW2I+PjJdKSsoYVttPj4yXTw8Myk+PjNdPStfW2wrOD4+M10sZ2U9K2JBKDB8YVtHPj4yXSxmLHBlKSxfWygwfGFbaz4+Ml0pKygoYj0wfGFbbT4+Ml0pPDwzKT4+M109Z2UsYVttPj4yXT1iKzF9fX13aGlsZSgwKX1mdW5jdGlvbiAkRChsLGMsZixwLG0sQSx3LGIsayxNLEQp''@;'; + put 'put ''e3ZhciBSO2M9K2MsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wLGJ8PTAsa3w9MCxEfD0wLFI9MHxhWzE2KyhsfD0wKT4+Ml0sX1soTXw9MCk+PjNdPTAsYVttPj4yXT0wLGFbRD4+Ml09MCxhW0E+PjJdPTEwLDB8YVt3Pj4yXXx8KGFbdz4+Ml09MHxRbig4MCpSfDApKSwwfGFbYj4+Ml18fChh''@;'; + put 'put ''W2I+PjJdPTB8UW4oYVtBPj4yXTw8MykpLDB8YVtrPj4yXXx8KGFbaz4+Ml09MHxRbihhW0E+PjJdPDwzKSkseEsobCxjLGYscCxtLEEsdyxiLGssTSxEKX1mdW5jdGlvbiBLVihsLGMsZixwLG0sQSx3LGIpe2N8PTAsZnw9MCxwPStwLG09K20sQT0rQSx3fD0wLGJ8PTA7dmFyIGs9MCxNPTAs''@;'; + put 'put ''RD0wO2ZvcihEPTB8YVsobHw9MCk+PjJdLE09MHxhW2wrMTY+PjJdLGs9MDs0IT0oMHxrKTspX1t3KyhrPDwzKT4+M109MCxrPWsrMXwwO2ZvcihhW2I+PjJdPTAsTT0wfEFyKE0sRCksaz0wOyEoKDB8ayk+PSgwfE0pKTspX1tjKyhrPDwzKT4+M109MCxrPWsrMXwwO2ZvcihLNyhsLGwsZixj''@;'; + put 'put ''LHAsbSxBLHcpLFRLKGwsYyx3KSxwPTEvKygwfEQpLGs9MDs0IT0oMHxrKTspX1soRD13KyhrPDwzKXwwKT4+M109K19bRD4+M10qcCxrPWsrMXwwfWZ1bmN0aW9uIEs3KGwsYyxmLHAsbSxBLHcsYil7bHw9MCxjfD0wLGZ8PTAscHw9MCxtPSttLEE9K0Esdz0rdyxifD0wO3ZhciBrPTAsTT0w''@;'; + put 'put ''LEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTA7ZTpkb3tpZigwIT0oMHxsKSYwIT0oMHxjKSl7aWYoKDB8YVtsPj4yXSk+MCYmKDB8YVtjPj4yXSk+MCl7aWYoSz0wfGFbbCs0MD4+Ml0sRz0wfGFbKFJlPWMrNDB8MCk+PjJdLGdlPStiQSgw''@;'; + put 'put ''fGFbKGs9bCszMnwwKT4+Ml0sMHxhWyhEPWMrMzJ8MCk+PjJdLEhlPTB8YVtsKzE2Pj4yXSksKFI9K19bYysyND4+M10pKyhNPStfW2wrMjQ+PjNdKTxnZSptKWZvcihfW2I+PjNdPStfW2I+PjNdKzEscGU9MHxhW2s+PjJdLFI9K19bbCs4Pj4zXSxLPTB8WmsobCxIZSksRz0wfGFbRD4+Ml0s''@;'; + put 'put ''TT0rX1tjKzg+PjNdLEQ9MHxaayhjLEhlKSxnZT4wfHxQcig5NDc5OCw5NDY4MSwxOTEsOTQ3NjQpLFI9Uip3Kk0sTT0rcWwoK2dlLCsoMS1BKSksTT0xLygtMT09QT9nZSpnZTpNKSxrPTA7Oyl7aWYoKDB8ayk+PSgwfEhlKSlicmVhayBlO19bKHA9Sysoazw8Myl8MCk+PjNdPSh3PVIqKCtf''@;'; + put 'put ''W3BlKyhrPDwzKT4+M10tK19bRysoazw8Myk+PjNdKSpNKSsgK19bcD4+M10sX1socD1EKyhrPDwzKXwwKT4+M109K19bcD4+M10tdyxrPWsrMXwwfWlmKExlPSgwfGwpPT0oMHxjKSwoRD0wIT0oMHxLKSkmKGs9MCE9KDB8RykpKWZvcihiZT1iKzh8MCxPZT0tMT09QSxtPTEtQSxEPUs7Oyl7''@;'; + put 'put ''aWYoIUQpYnJlYWsgZTtmb3IoSz0wfFZrKDB8THUoRCkpLGdlPStHeSgwfEx1KEQpKSxsPTB8emsocCxwZT0wfGprKDB8THUoRCkpLEQsSGUpLGdlKj13LEc9MHxhW1JlPj4yXTtHOyl7Yz0wfFZrKDB8THUoRykpLE09K0d5KDB8THUoRykpLGI9MHx6ayhwLGs9MHxqaygwfEx1KEcpKSxHLEhl''@;'; + put 'put ''KTt0OmRve2lmKCEoKDB8cGUpPT0oMHxrKXxMZSYoMHxrKTwoMHxwZSkpKWZvcihfW2JlPj4zXT0rX1tiZT4+M10rMSxBPStkdShmLEhlLHBlLGspLE0qPWdlLFI9K3FsKCtBLCttKSxSPTEvKE9lP0EqQTpSKSxrPTA7Oyl7aWYoKDB8ayk+PSgwfEhlKSlicmVhayB0O19bKFZlPWwrKGs8PDMp''@;'; + put 'put ''fDApPj4zXT0oQT1NKigrX1tLKyhrPDwzKT4+M10tK19bYysoazw8Myk+PjNdKSpSKSsgK19bVmU+PjNdLF9bKFZlPWIrKGs8PDMpfDApPj4zXT0rX1tWZT4+M10tQSxrPWsrMXwwfX13aGlsZSgwKTtHPTB8R20oRyl9RD0wfEdtKEQpfWlmKExlKWZvcihwZT0xPDxIZSxHPWwrMzZ8MCxEPTA7''@;'; + put 'put ''Oyl7aWYoKDB8RCk+PSgwfHBlKSlicmVhayBlO2ZvcihLPTB8YVsoMHxhW0c+PjJdKSsoRDw8Mik+PjJdLGs9RDsoMHxrKSE9KDB8cGUpOylLNyhLLDB8YVsoMHxhW0c+PjJdKSsoazw8Mik+PjJdLGYscCxtLEEsdyxiKSxrPWsrMXwwO0Q9RCsxfDB9aWYoIShEfCEoTT5SKSkpZm9yKEc9MTw8''@;'; + put 'put ''SGUsRD1sKzM2fDAsaz0wOzspe2lmKCgwfGspPj0oMHxHKSlicmVhayBlO0s3KDB8YVsoMHxhW0Q+PjJdKSsoazw8Mik+PjJdLGMsZixwLG0sQSx3LGIpLGs9aysxfDB9aWYoIShrfCEoUj5NKSkpZm9yKEc9MTw8SGUsRD1jKzM2fDAsaz0wOzspe2lmKCgwfGspPj0oMHxHKSlicmVhayBlO0s3''@;'; + put 'put ''KDB8YVsoMHxhW0Q+PjJdKSsoazw8Mik+PjJdLGwsZixwLG0sQSx3LGIpLGs9aysxfDB9aWYoIUQpZm9yKEc9MTw8SGUsRD1sKzM2fDAsaz0wOzspe2lmKCgwfGspPj0oMHxHKSlicmVhayBlO0s3KDB8YVsoMHxhW0Q+PjJdKSsoazw8Mik+PjJdLGMsZixwLG0sQSx3LGIpLGs9aysxfDB9Zm9y''@;'; + put 'put ''KGsmJlByKDEzODM5NCw5NDY4MSwyNzMsOTQ3NjQpLEc9MTw8SGUsRD1jKzM2fDAsaz0wOzspe2lmKCgwfGspPj0oMHxHKSlicmVhayBlO0s3KDB8YVsoMHxhW0Q+PjJdKSsoazw8Mik+PjJdLGwsZixwLG0sQSx3LGIpLGs9aysxfDB9fVByKDk0NzM5LDk0NjgxLDE3NSw5NDc2NCl9fXdoaWxl''@;'; + put 'put ''KDApfWZ1bmN0aW9uIFRLKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIEQsUixwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRz0wO3A9MHxhWzQwKyhsfD0wKT4+Ml0sQT0rX1tsKzg+PjNdLFI9MHxaayhsLEQ9MHxhW2wrMTY+PjJdKSxBPjB8fFByKDk0NjczLDk0NjgxLDI4OSw5NDY5MiksX1so''@;'; + put 'put ''TT1mKzE2fDApPj4zXT0rX1tNPj4zXSsxO2U6ZG97aWYocClmb3Iodz0xL0E7Oyl7aWYoIXApYnJlYWsgZTtmb3IobT0wfHprKGMsMHxqaygwfEx1KHApKSxwLEQpLEE9K0d5KDB8THUocCkpKncsbD0wOyEoKDB8bCk+PSgwfEQpKTspX1soRz1tKyhsPDwzKXwwKT4+M109K19bRz4+M10rICtf''@;'; + put 'put ''W1IrKGw8PDMpPj4zXSpBLGw9bCsxfDA7cD0wfEdtKHApfWVsc2V7Zm9yKE09MTw8RCxrPWwrMzZ8MCxBPTEvQSxsPTA7Oyl7aWYoKDB8bCk+PSgwfE0pKWJyZWFrIGU7aWYoMHwobT0wfGFbKDB8YVtrPj4yXSkrKGw8PDIpPj4yXSkpe2lmKCgwfGFbbT4+Ml0pPD0wKWJyZWFrO2ZvcihiPTB8''@;'; + put 'put ''WmsobSxEKSx3PStfW20rOD4+M10qQSxwPTA7ISgoMHxwKT49KDB8RCkpOylfWyhHPWIrKHA8PDMpfDApPj4zXT0rX1tHPj4zXSsgK19bUisocDw8Myk+PjNdKncscD1wKzF8MDtUSyhtLGMsZil9bD1sKzF8MH1Qcig5NDcyOCw5NDY4MSwzMDcsOTQ2OTIpfX13aGlsZSgwKX1mdW5jdGlvbiBa''@;'; + put 'put ''ayhsLGMpe2N8PTA7dmFyIGY9MDtsPTB8YVsoZj00OCsobHw9MCl8MCk+PjJdO2U6ZG97aWYoIWwpZm9yKGw9MHxRbihjPDwzKSxhW2Y+PjJdPWwsZj0wOzspe2lmKCgwfGYpPj0oMHxjKSlicmVhayBlO19bbCsoZjw8Myk+PjNdPTAsZj1mKzF8MH19d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5j''@;'; + put 'put ''dGlvbiB6ayhsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgbT0wO3JldHVybihtPTB8YVsyNCsoMHxMdShmfD0wKSk+PjJdKXx8KG09bCsoKDB8QXIocCxjKSk8PDMpfDAsYVsyNCsoMHxMdShmKSk+PjJdPW0sbT0wfGFbMjQrKDB8THUoZikpPj4yXSksMHxtfWZ1bmN0aW9uIEdrKGwsYyxm''@;'; + put 'put ''LHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgTSxELEE9MCx3PTAsYj0wLGs9MCxSPTAsRz0wLEs9MCxwZT0wO2lmKDAhPSgwfChNPTB8UW4oUj0obHw9MCk8PDMpKSkmMCE9KDB8KEQ9MHxRbihSKSkpJjAhPSgwfChSPTB8UW4oUikpKSl7Zm9yKEE9MDs7KXtpZigoMHxBKT49KDB8bCkp''@;'; + put 'put ''e0E9MDticmVha31fW00rKEE8PDMpPj4zXT0rX1twKyhBPDwzKT4+M10sQT1BKzF8MH1mb3IoOzspe2lmKCgwfEEpPj0oMHxsKSl7dz0xO2JyZWFrfV9bRCsoQTw8Myk+PjNdPStfW3ArKEE8PDMpPj4zXSxBPUErMXwwfWZvcig7ISgoMHx3KT49KDB8YykpOyl7Zm9yKGs9MHxBcih3LGwpLEE9''@;'; + put 'put ''MDshKCgwfEEpPj0oMHxsKSk7KV9bKEc9TSsoQTw8Myl8MCk+PjNdPShiPStfW0c+PjNdKTwoSz0rX1socGU9cCsoQStrPDwzKXwwKT4+M10pP2I6SyxfWyhHPUQrKEE8PDMpfDApPj4zXT0oSz0rX1tHPj4zXSk+KGI9K19bcGU+PjNdKT9LOmIsQT1BKzF8MDt3PXcrMXwwfWZvcihiPStfW0Q+''@;'; + put 'put ''PjNdLStfW00+PjNdLEE9MDshKCgwfEEpPj0oMHxsKSk7KV9bUisoQTw8Myk+PjNdPS41KigrX1soRz1EKyhBPDwzKXwwKT4+M10rICtfWyhwZT1NKyhBPDwzKXwwKT4+M10pLGI9Yj4oSz0rX1tHPj4zXS0rX1twZT4+M10pP2I6SyxBPUErMXwwO0E9MHxxRChsLFIsMD09Yj81MmUtNzouNTIq''@;'; + put 'put ''YixmKTtlOmRve2lmKG0pZm9yKHc9MDs7KXtpZigoMHx3KT49KDB8YykpYnJlYWsgZTtBPTB8JDcoQSxwZT1wKygoMHxBcih3LGwpKTw8Myl8MCwrX1ttKyh3PDwzKT4+M10sdyksdz13KzF8MH1lbHNlIGZvcih3PTA7Oyl7aWYoKDB8dyk+PSgwfGMpKWJyZWFrIGU7QT0wfCQ3KEEscCsoKDB8''@;'; + put 'put ''QXIodyxsKSk8PDMpfDAsMSx3KSx3PXcrMXwwfX13aGlsZSgwKTtGdChNKSxGdChEKSxGdChSKX1lbHNlIEZ0KE0pLEZ0KEQpLEZ0KFIpLEE9MDtyZXR1cm4gMHxBfWZ1bmN0aW9uIHFEKGwsYyxmLHApe2x8PTAsY3w9MCxmPStmLHB8PTA7dmFyIEEsdyxtPTA7Zm9yKEE9MHxRbig1NiksYVtB''@;'; + put 'put ''KzE2Pj4yXT1sLGFbQT4+Ml09MCx3PTB8UW4obDw8MyksYVtBKzIwPj4yXT13LG09MDshKCgwfG0pPj0oMHxsKSk7KV9bdysobTw8Myk+PjNdPStfW2MrKG08PDMpPj4zXSxtPW0rMXwwO3JldHVybiBmPjA/KF9bQSsyND4+M109ZixfW0ErOD4+M109MCxhW0ErMzI+PjJdPTAsYVtBKzM2Pj4y''@;'; + put 'put ''XT0wLGFbQSs0MD4+Ml09MCxhW0ErNDQ+PjJdPXAsYVtBKzQ4Pj4yXT0wLDB8QSk6KFByKDk0ODk2LDk0NjgxLDQxMCw5NDkwNiksMCl9ZnVuY3Rpb24gJDcobCxjLGYscCl7cmV0dXJuIGY9K2YsKGx8PTApP1drKGwsY3w9MCxmLHB8PTAsMCk6bD0wLDB8bH1mdW5jdGlvbiBXayhsLGMsZixw''@;'; + put 'put ''LG0pe2N8PTAsZj0rZixwfD0wLG18PTA7dmFyIGdlLGJlLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsT2U9MDtnZT0wfGFbKE9lPTE2KyhsfD0wKXwwKT4+Ml0sYmU9MHxhW2wrNDQ+PjJdLEQ9MHxhW2w+PjJdO2Rve2lmKEQpe2lmKCgwfGJlKTw9KDB8bSkpe2Zv''@;'; + put 'put ''cigwfGFbbCszNj4+Ml0mJlByKDk0ODgxLDk0NjgxLDU0MSw5NDgxNSksYVtsPj4yXT1BPUQrMXwwLF9bKHc9bCs4fDApPj4zXT0rX1t3Pj4zXStmLHc9bCszMnwwLGs9KygwfEEpLE09MS8rKEQrMnwwKSxBPTA7ISgoMHxBKT49KDB8Z2UpKTspX1socGU9KDB8YVt3Pj4yXSkrKEE8PDMpfDAp''@;'; + put 'put ''Pj4zXT0oK19bcGU+PjNdKmsrICtfW2MrKEE8PDMpPj4zXSkqTSxBPUErMXwwO2lmKEE9MHxxNyhnZSxmLGMscCksYj0wfGFbKHc9bCs0MHwwKT4+Ml0pe2Fbdz4+Ml09MHxDQShiLEEpO2JyZWFrfVByKDk0ODkxLDk0NjgxLDU0Nyw5NDgxNSl9Zm9yKF9bKHc9bCs4fDApPj4zXT0rX1t3Pj4z''@;'; + put 'put ''XStmLHc9bCszMnwwLE09KygwfEQpLGs9MS8rKEQrMXwwKSxBPTA7ISgoMHxBKT49KDB8Z2UpKTspX1socGU9KDB8YVt3Pj4yXSkrKEE8PDMpfDApPj4zXT0oK19bcGU+PjNdKk0rICtfW2MrKEE8PDMpPj4zXSkqayxBPUErMXwwO3BlPWwrMzZ8MCxLPTE8PGdlO2U6ZG97aWYoISgwfGFbcGU+''@;'; + put 'put ''PjJdKSlmb3IoYVtwZT4+Ml09MHxRbihLPDwyKSxBPTA7Oyl7aWYoKDB8QSk+PSgwfEspKWJyZWFrIGU7YVsoMHxhW3BlPj4yXSkrKEE8PDIpPj4yXT0wLEE9QSsxfDB9fXdoaWxlKDApOygwfChiPTB8JFYoZ2UsQT0wfGFbKFI9bCsyMHwwKT4+Ml0sYykpKTwoMHxLKSYoMHxiKT4tMXx8UHIo''@;'; + put 'put ''OTQ4MzcsOTQ2ODEsNTE1LDk0ODE1KSwodz0wfGFbKDB8YVtwZT4+Ml0pKyhiPDwyKT4+Ml0pfHwodz0wfEFwKDB8YVtPZT4+Ml0sQSwuNSorX1tsKzI0Pj4zXSxiZSxiKSxhWygwfGFbcGU+PjJdKSsoYjw8Mik+PjJdPXcsdz0wfGFbKDB8YVtwZT4+Ml0pKyhiPDwyKT4+Ml0pLHA9MHxXayh3''@;'; + put 'put ''LGMsZixwLEc9bSsxfDApLGFbKDB8YVtwZT4+Ml0pKyhiPDwyKT4+Ml09cCwwfGFbKDB8YVtwZT4+Ml0pKyhiPDwyKT4+Ml18fFByKDk0ODYwLDk0NjgxLDUxOSw5NDgxNSksQT0wfGFbKGM9bCs0MHwwKT4+Ml07ZG97aWYoMHxBKXtpZihEPTB8amsoMHxMdShBKSksMSE9KDB8YVtsPj4yXSkm''@;'; + put 'put ''JlByKDk0ODcxLDk0NjgxLDUyMyw5NDgxNSksbT0wfFZrKDB8THUoMHxhW2M+PjJdKSksaz0rR3koMHxMdSgwfGFbYz4+Ml0pKSwoMHwoYj0wfCRWKGdlLHc9MHxhW1I+PjJdLG0pKSk8KDB8SykmKDB8Yik+LTF8fFByKDk0ODM3LDk0NjgxLDUyNyw5NDgxNSksKEE9MHxhWygwfGFbcGU+PjJd''@;'; + put 'put ''KSsoYjw8Mik+PjJdKXx8KEE9MHxBcCgwfGFbT2U+PjJdLHcsLjUqK19bbCsyND4+M10sYmUsYiksYVsoMHxhW3BlPj4yXSkrKGI8PDIpPj4yXT1BLEE9MHxhWygwfGFbcGU+PjJdKSsoYjw8Mik+PjJdKSxPZT0wfFdrKEEsbSxrLEQsRyksYVsoMHxhW3BlPj4yXSkrKGI8PDIpPj4yXT1PZSww''@;'; + put 'put ''fGFbKDB8YVtwZT4+Ml0pKyhiPDwyKT4+Ml0pe3pfKDB8YVtjPj4yXSwxMDYpLGFbYz4+Ml09MDticmVha31Qcig5NDg2MCw5NDY4MSw1MzIsOTQ4MTUpfX13aGlsZSgwKTthW2w+PjJdPTErKDB8YVtsPj4yXSl9ZWxzZXtmb3IoYVtsPj4yXT0xLF9bbCs4Pj4zXT1mLGI9MHxRbihnZTw8Myks''@;'; + put 'put ''YVtsKzMyPj4yXT1iLHc9MHxhW09lPj4yXSxBPTA7ISgoMHxBKT49KDB8dykpOylfW2IrKEE8PDMpPj4zXT0rX1tjKyhBPDwzKT4+M10sQT1BKzF8MDtpZihBPTB8cTcodyxmLGMscCksISgwfGFbKHc9bCs0MHwwKT4+Ml0pKXthW3c+PjJdPTB8Wl8oQSk7YnJlYWt9UHIoOTQ4MDcsOTQ2ODEs''@;'; + put 'put ''NTAyLDk0ODE1KX19d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBxNyhsLGMsZixwKXt2YXIgbSxBO2ZvcihsfD0wLGM9K2MsZnw9MCxwfD0wLEE9MHxRbigzMiksX1tBPj4zXT1jLG09MHxRbihsPDwzKSxhW0ErOD4+Ml09bSxfW0ErMTY+PjNdPSsoMHxwKSxwPTA7ISgoMHxwKT49KDB8''@;'; + put 'put ''bCkpOylfW20rKHA8PDMpPj4zXT0rX1tmKyhwPDwzKT4+M10scD1wKzF8MDtyZXR1cm4gYVtBKzI0Pj4yXT0wLDB8QX1mdW5jdGlvbiAkVihsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTA7Zm9yKG09MDtwPWwrLTF8MCwhKCgwfGwpPD0wKTspbD1wLG09bTw8MXwxJiEoK19bZiso''@;'; + put 'put ''cDw8Myk+PjNdLStfW2MrKHA8PDMpPj4zXTwwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIEFwKGwsYyxmLHAsbSl7dmFyIEEsdyxiO2ZvcihtfD0wLEE9MHxxRChsfD0wLGN8PTAsZj0rZixwfD0wKSx3PTB8YVtBKzIwPj4yXSxiPS1mLHA9MCxjPW07ISgoMHxwKT49KDB8bCkpOylfWyhtPXcrKHA8''@;'; + put 'put ''PDMpfDApPj4zXT0rX1ttPj4zXSsoMD09KDEmY3wwKT9iOmYpLHA9cCsxfDAsYz0oMHxjKS8yfDA7cmV0dXJuIDB8QX1mdW5jdGlvbiBlOShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtpZigwfChsfD0wKSl7aWYoYz0wfGFbbCsxNj4+Ml0sRnQoMHxhW2wrMjA+PjJdKSxGdCgwfGFbbCsz''@;'; + put 'put ''Mj4+Ml0pLEZ0KDB8YVtsKzQ4Pj4yXSksMHwocD0wfGFbKEE9bCszNnwwKT4+Ml0pKXtmb3IobT0xPDxjLGY9MCxjPXA7ISgoMHxmKT49KDB8bSkpOyllOSgwfGFbYysoZjw8Mik+PjJdKSxmPWYrMXwwLGM9MHxhW0E+PjJdO0Z0KGMpfXpfKDB8YVtsKzQwPj4yXSwxMDYpLEZ0KGwpfX1mdW5j''@;'; + put 'put ''dGlvbiBXeShsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MDtlOmRve2lmKGwpe2ZvcihNPTB8YVtsKzIwPj4yXSxEPTB8YVtsKzI0Pj4yXSxmPTB8YVtsKzg+PjJdLFI9MHxhW2w+PjJdLHA9''@;'; + put 'put ''MHxhW2wrND4+Ml0sdz1sKzE2fDAsMSE9KDB8YVtsKzMyPj4yXSkmJlByKDk0OTE5LDk0OTQzLDc2LDk0OTU4KSxjPTB8dWMocCxSLGYsMHxhW3c+PjJdLDEpLGFbYys4Pj4yXT1mLEc9MHxhW2MrMjA+PjJdLGs9MHxhW2MrMjQ+PjJdLGY9MDs7KXtpZigoMHxmKT4oMHxwKSl7Zj0wO2JyZWFr''@;'; + put 'put ''fWFbRysoZjw8Mik+PjJdPTAsZj1mKzF8MH10OmZvcig7Oyl7aWYoKDB8Zik+PSgwfFIpKXtmPTA7YnJlYWt9Zm9yKEE9TSsoKG09ZisxfDApPDwyKXwwLGY9MHxhW00rKGY8PDIpPj4yXTs7KXtpZigoMHxmKT49KDB8YVtBPj4yXSkpe2Y9bTtjb250aW51ZSB0fWFbKGI9RysoMSsoMHxhW0Qr''@;'; + put 'put ''KGY8PDIpPj4yXSk8PDIpfDApPj4yXT0xKygwfGFbYj4+Ml0pLGY9ZisxfDB9fWZvcig7ISgoMHxmKT49KDB8cCkpOylhWyhBPUcrKChiPWYrMXwwKTw8Mil8MCk+PjJdPSgwfGFbQT4+Ml0pKygwfGFbRysoZjw8Mik+PjJdKSxmPWI7dDpkb3tzd2l0Y2goMHxhW3c+PjJdKXtjYXNlIDE6QT0w''@;'; + put 'put ''fGFbbCsyOD4+Ml0sbD0wfGFbYysyOD4+Ml0sbT0wO246Zm9yKDs7KXtpZigoMHxtKT49KDB8UikpYnJlYWsgdDtmb3IoYj1NKygodz1tKzF8MCk8PDIpfDAsZj0wfGFbTSsobTw8Mik+PjJdOzspe2lmKCgwfGYpPj0oMHxhW2I+PjJdKSl7bT13O2NvbnRpbnVlIG59YVtrKyhhW0crKGFbKGdl''@;'; + put 'put ''PUQrKGY8PDIpfDApPj4yXTw8Mik+PjJdPDwyKT4+Ml09bSxwZT0rX1tBKyhmPDwzKT4+M10sYVsoZ2U9RysoYVtnZT4+Ml08PDIpfDApPj4yXT0xKyhLPTB8YVtnZT4+Ml0pLF9bbCsoSzw8Myk+PjNdPXBlLGY9ZisxfDB9fWNhc2UgMjpBPTB8YVtsKzI4Pj4yXSxsPTB8YVtjKzI4Pj4yXSxt''@;'; + put 'put ''PTA7bjpmb3IoOzspe2lmKCgwfG0pPj0oMHxSKSlicmVhayB0O2ZvcihiPU0rKCh3PW0rMXwwKTw8Mil8MCxmPTB8YVtNKyhtPDwyKT4+Ml07Oyl7aWYoKDB8Zik+PSgwfGFbYj4+Ml0pKXttPXc7Y29udGludWUgbn1hW2srKGFbRysoYVsoZ2U9RCsoZjw8Mil8MCk+PjJdPDwyKT4+Ml08PDIp''@;'; + put 'put ''Pj4yXT1tLF9bbCsoKGJlPShLPTB8YVsoZ2U9RysoYVtnZT4+Ml08PDIpfDApPj4yXSk8PDEpPDwzKT4+M109K19bQSsoKE9lPWY8PDEpPDwzKT4+M10sX1tsKygoMXxiZSk8PDMpPj4zXT0rX1tBKygoMXxPZSk8PDMpPj4zXSxhW2dlPj4yXT1LKzEsZj1mKzF8MH19Y2FzZSA0OkE9MHxhW2wr''@;'; + put 'put ''Mjg+PjJdLGw9MHxhW2MrMjg+PjJdLG09MDtuOmZvcig7Oyl7aWYoKDB8bSk+PSgwfFIpKWJyZWFrIHQ7Zm9yKGI9TSsoKHc9bSsxfDApPDwyKXwwLGY9MHxhW00rKG08PDIpPj4yXTs7KXtpZigoMHxmKT49KDB8YVtiPj4yXSkpe209dztjb250aW51ZSBufWFbaysoYVtHKyhhWyhnZT1EKyhm''@;'; + put 'put ''PDwyKXwwKT4+Ml08PDIpPj4yXTw8Mik+PjJdPW0sYmU9MHxhW0ErKGY8PDIpPj4yXSxhWyhnZT1HKyhhW2dlPj4yXTw8Mil8MCk+PjJdPTErKE9lPTB8YVtnZT4+Ml0pLGFbbCsoT2U8PDIpPj4yXT1iZSxmPWYrMXwwfX1jYXNlIDg6bT0wO246Zm9yKDs7KXtpZigoMHxtKT49KDB8UikpYnJl''@;'; + put 'put ''YWsgdDtmb3IobD1NKygoQT1tKzF8MCk8PDIpfDAsZj0wfGFbTSsobTw8Mik+PjJdOzspe2lmKCgwfGYpPj0oMHxhW2w+PjJdKSl7bT1BO2NvbnRpbnVlIG59YVsoYmU9RysoYVtEKyhmPDwyKT4+Ml08PDIpfDApPj4yXT0xKyhPZT0wfGFbYmU+PjJdKSxhW2srKE9lPDwyKT4+Ml09bSxmPWYr''@;'; + put 'put ''MXwwfX1kZWZhdWx0OlJhKGMpLGM9MDticmVhayBlfX13aGlsZSgwKTtmb3IoO2Y9cCstMXwwLCEoKDB8cCk8PTApOylhW0crKHA8PDIpPj4yXT1hW0crKGY8PDIpPj4yXSxwPWY7YVtHPj4yXT0wfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gUmEobCl7dmFyIGM9MDsw''@;'; + put 'put ''fChsfD0wKSYmKDB8KGM9MHxhW2wrMjA+PjJdKSYmRnQoYyksMHwoYz0wfGFbbCsyND4+Ml0pJiZGdChjKSxGdCgwfGFbbCsyOD4+Ml0pLEZ0KGwpKX1mdW5jdGlvbiB1YyhsLGMsZixwLG0pe3JldHVybiBmfD0wLG18PTAsbD0wfHFWKGx8PTAsY3w9MCxwfD0wLDB8ZnVuY3Rpb24gWWsobCl7''@;'; + put 'put ''c3dpdGNoKDB8KGx8PTApKXtjYXNlIDE6bD04O2JyZWFrO2Nhc2UgMjpsPTE2O2JyZWFrO2Nhc2UgNDpsPTQ7YnJlYWs7ZGVmYXVsdDpsPTB9cmV0dXJuIDB8bH0ocCksbSksKDB8Zik+MCYmZWoobCxmKSwwfGx9ZnVuY3Rpb24gcVYobCxjLGYscCxtKXt2YXIgQTtyZXR1cm4gbHw9MCxjfD0w''@;'; + put 'put ''LGZ8PTAscHw9MCxtfD0wLEE9MHxRbig0NCksYVtBPj4yXT1sLGFbQSs0Pj4yXT1jLGFbQSs4Pj4yXT0wLGFbQSsxMj4+Ml09MCxhW0ErMTY+PjJdPWYsYVtBKzQwPj4yXT1wLGw9Mj09KDB8bSk/MDowfFFuKDQrKGw8PDIpfDApLGFbQSsyMD4+Ml09bCxhW0ErMjQ+PjJdPTAsYVtBKzI4Pj4y''@;'; + put 'put ''XT0wLGFbQSszMj4+Ml09bSxhW0ErMzY+PjJdPTAsMHxBfWZ1bmN0aW9uIGVqKGwsYyl7Y3w9MDt2YXIgcCxtLHcsZj0wLEE9MDtyZXR1cm4gdz0wfGFbMzIrKGx8PTApPj4yXSxhWyhtPWwrMjh8MCk+PjJdPTAscD0wfFFuKGY9Yzw8MiksMiE9KDB8dyk/KGFbbCsyND4+Ml09cCwwIT0oMHxj''@;'; + put 'put ''KSYoMHwoZj0wfGFbbCs0MD4+Ml0pKT4wJiYoQT00KSk6KGFbbCsyMD4+Ml09cCxhW2wrMjQ+PjJdPTB8UW4oZiksZj0wfGFbbCs0MD4+Ml0sQT00KSw0PT0oMHxBKSYmKGFbbT4+Ml09MHxRbigwfEFyKGYsYykpKSxhW2wrMTI+PjJdPWMsMHxsfWZ1bmN0aW9uIGFoKGwsYyl7cmV0dXJuIDB8''@;'; + put 'put ''bGgobHw9MCxjfD0wKT9jPTB8dDkobCk6KGM9MHxXeShsKSk/KGw9MHx5cChsLGMpLFJhKGMpLGFbKGM9bCszNnwwKT4+Ml09M3xhW2M+PjJdLGM9bCk6Yz0wLDB8Y31mdW5jdGlvbiBsaChsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAs''@;'; + put 'put ''Sz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MDtpZihsfD0wKWlmKDEhPSgwfGFbbCszMj4+Ml0pJiZQcig5NDkxOSw5NDk0MywxODcsOTUwNzQpLDA9PSgyJihmPTB8YVsoYmU9bCszNnwwKT4+Ml0pfDApJiYwPT0oMSZmfDApfDFeKEs9MCE9KDB8YykpKWlmKCgwfGFbbD4+Ml0pPT0oMHxh''@;'; + put 'put ''W2wrND4+Ml0pJiYwIT0oMHwoT2U9MHxXeShsKSkpKXtmb3Ioaz0wfGFbbCsyMD4+Ml0sTT0wfGFbbCsyND4+Ml0sRD0wfGFbT2UrMjA+PjJdLFI9MHxhW09lKzI0Pj4yXSxwZT0wfFFuKChHPTB8YVtsPj4yXSk8PDIpLGM9MDshKCgwfGMpPj0oMHxHKSk7KWFbcGUrKGM8PDIpPj4yXT0tMSxj''@;'; + put 'put ''PWMrMXwwO2U6ZG97c3dpdGNoKDB8KEs/ODowfGFbbCsxNj4+Ml0pKXtjYXNlIDE6Zm9yKEE9MHxhW2wrMjg+PjJdLHc9MHxhW09lKzI4Pj4yXSxjPTA7Oyl7aWYoKDB8Yyk+KDB8Rykpe2Y9MDticmVha31pZigoMHxhW2srKGM8PDIpPj4yXSkhPSgwfGFbRCsoYzw8Mik+PjJdKSl7Yz0wO2Jy''@;'; + put 'put ''ZWFrIGV9Yz1jKzF8MH10OmZvcig7Oyl7aWYoKDB8Zik+PSgwfEcpKXtnZT01NDticmVhayBlfWZvcihsPWsrKChtPWYrMXwwKTw8Mil8MCxjPTB8YVsocD1rKyhmPDwyKXwwKT4+Ml07ISgoMHxjKT49KDB8YVtsPj4yXSkpOylhW3BlKyhhW00rKGM8PDIpPj4yXTw8Mik+PjJdPWMsYz1jKzF8''@;'; + put 'put ''MDtmb3IobD0wfGFbRCsobTw8Mik+PjJdLGY9Yz0wfGFbRCsoZjw8Mik+PjJdOyEoKDB8Zik+PSgwfGwpKTspe2lmKCgwfGFbcGUrKGFbUisoZjw8Mik+PjJdPDwyKT4+Ml0pPCgwfGFbcD4+Ml0pKXtjPTA7YnJlYWsgZX1mPWYrMXwwfWZvcig7Oyl7aWYoKDB8Yyk+PSgwfGwpKXtmPW07Y29u''@;'; + put 'put ''dGludWUgdH1pZigoKExlPStfW3crKGM8PDMpPj4zXS0rX1tBKyhhW3BlKyhhW1IrKGM8PDIpPj4yXTw8Mik+PjJdPDwzKT4+M10pPj0wP0xlOi1MZSk+MWUtNyl7Yz0wO2JyZWFrIGV9Yz1jKzF8MH19Y2FzZSAyOmZvcih3PTB8YVtsKzI4Pj4yXSxiPTB8YVtPZSsyOD4+Ml0sYz0wOzspe2lm''@;'; + put 'put ''KCgwfGMpPigwfEcpKXtmPTA7YnJlYWt9aWYoKDB8YVtrKyhjPDwyKT4+Ml0pIT0oMHxhW0QrKGM8PDIpPj4yXSkpe2M9MDticmVhayBlfWM9YysxfDB9dDpmb3IoOzspe2lmKCgwfGYpPj0oMHxHKSl7Z2U9NTQ7YnJlYWsgZX1mb3IobD1rKygoQT1mKzF8MCk8PDIpfDAsYz0wfGFbKG09ayso''@;'; + put 'put ''Zjw8Mil8MCk+PjJdOyEoKDB8Yyk+PSgwfGFbbD4+Ml0pKTspYVtwZSsoYVtNKyhjPDwyKT4+Ml08PDIpPj4yXT1jLGM9YysxfDA7Zm9yKHA9MHxhW0QrKEE8PDIpPj4yXSxjPWY9MHxhW0QrKGY8PDIpPj4yXTs7KXtpZigoMHxjKT49KDB8cCkpe2M9ZjticmVha31pZigoMHxhW3BlKyhhW1Ir''@;'; + put 'put ''KGM8PDIpPj4yXTw8Mik+PjJdKTwoMHxhW20+PjJdKSl7Yz0wO2JyZWFrIGV9Yz1jKzF8MH1mb3IoOzspe2lmKCgwfGMpPj0oMHxwKSl7Zj1BO2NvbnRpbnVlIHR9aWYoKChMZT0rX1tiKygoZj1jPDwxKTw8Myk+PjNdLStfW3crKChsPWFbcGUrKGFbUisoYzw8Mik+PjJdPDwyKT4+Ml08PDEp''@;'; + put 'put ''PDwzKT4+M10pPj0wP0xlOi1MZSk+MWUtNyl7Yz0wO2JyZWFrIGV9aWYoKChMZT0rX1tiKygoMXxmKTw8Myk+PjNdLStfW3crKCgxfGwpPDwzKT4+M10pPj0wP0xlOi1MZSk+MWUtNyl7Yz0wO2JyZWFrIGV9Yz1jKzF8MH19Y2FzZSA0Om09MHxhW2wrMjg+PjJdLEE9MHxhW09lKzI4Pj4yXSxj''@;'; + put 'put ''PTA7dDpmb3IoOzspe2lmKCgwfGMpPj0oMHxHKSl7Z2U9NTQ7YnJlYWsgZX1mb3IobD1rKygodz1jKzF8MCk8PDIpfDAsZj0wfGFbKHA9aysoYzw8Mil8MCk+PjJdOyEoKDB8Zik+PSgwfGFbbD4+Ml0pKTspYVtwZSsoYVtNKyhmPDwyKT4+Ml08PDIpPj4yXT1mLGY9ZisxfDA7Zm9yKGw9MHxh''@;'; + put 'put ''W0QrKHc8PDIpPj4yXSxmPWM9MHxhW0QrKGM8PDIpPj4yXTshKCgwfGYpPj0oMHxsKSk7KXtpZigoMHxhW3BlKyhhW1IrKGY8PDIpPj4yXTw8Mik+PjJdKTwoMHxhW3A+PjJdKSl7Yz0wO2JyZWFrIGV9Zj1mKzF8MH1mb3IoOzspe2lmKCgwfGMpPj0oMHxsKSl7Yz13O2NvbnRpbnVlIHR9aWYo''@;'; + put 'put ''KDB8YVtBKyhjPDwyKT4+Ml0pIT0oMHxhW20rKGFbcGUrKGFbUisoYzw8Mik+PjJdPDwyKT4+Ml08PDIpPj4yXSkpe2M9MDticmVhayBlfWM9YysxfDB9fWNhc2UgODpsPTA7dDpmb3IoOzspe2lmKCgwfGwpPj0oMHxHKSl7Z2U9NTQ7YnJlYWsgZX1mb3IoZj1rKygobT1sKzF8MCk8PDIpfDAs''@;'; + put 'put ''Yz0wfGFbKHA9aysobDw8Mil8MCk+PjJdOyEoKDB8Yyk+PSgwfGFbZj4+Ml0pKTspYVtwZSsoYVtNKyhjPDwyKT4+Ml08PDIpPj4yXT1jLGM9YysxfDA7Zm9yKGY9MHxhW0QrKG08PDIpPj4yXSxjPTB8YVtEKyhsPDwyKT4+Ml07Oyl7aWYoKDB8Yyk+PSgwfGYpKXtsPW07Y29udGludWUgdH1p''@;'; + put 'put ''ZigoMHxhW3BlKyhhW1IrKGM8PDIpPj4yXTw8Mik+PjJdKTwoMHxhW3A+PjJdKSl7Yz0wO2JyZWFrIGV9Yz1jKzF8MH19ZGVmYXVsdDpjPTB9fXdoaWxlKDApOzU0PT0oMHxnZSkmJihmPTB8YVtiZT4+Ml0sSz9jPTE6KGFbYmU+PjJdPTJ8ZixjPTMpLGFbYmU+PjJdPWN8ZixjPTEpLEZ0KHBl''@;'; + put 'put ''KSxSYShPZSl9ZWxzZSBjPTA7ZWxzZSBjPTE7ZWxzZSBjPTA7cmV0dXJuIDB8Y31mdW5jdGlvbiB0OShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wO3JldHVybihsfD0wKT8oYz0wfHRqKDB8YVtsPj4yXSwwfGFbbCs0Pj4yXSwwfGFbKHA9bCs4fDApPj4yXSwwfGFbbCsxNj4+Ml0sMHxhWyhtPWwr''@;'; + put 'put ''NDB8MCk+PjJdLDB8YVtsKzMyPj4yXSksZ28oMHxhW2MrMjA+PjJdLDB8YVsoZj1sKzIwfDApPj4yXSw0KyhhW2w+PjJdPDwyKXwwKSxnbygwfGFbYysyND4+Ml0sMHxhW2wrMjQ+PjJdLGFbKDB8YVtmPj4yXSkrKGFbbD4+Ml08PDIpPj4yXTw8MnwwKSwwfChmPTB8YVtsKzI4Pj4yXSkmJmdv''@;'; + put 'put ''KDB8YVtjKzI4Pj4yXSwwfGYsMHxBcigwfGFbcD4+Ml0sMHxhW20+PjJdKSksYVtjKzM2Pj4yXT1hW2wrMzY+PjJdLGFbYys4Pj4yXT1hW3A+PjJdKTpjPTAsMHxjfWZ1bmN0aW9uIHlwKGwsYyl7dmFyIEcsSyxnZSxiZSxPZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxS''@;'; + put 'put ''PTAscGU9MCxMZT0wLFJlPTA7aWYoSz0wfGFbMjArKGx8PTApPj4yXSxnZT0wfGFbbCsyND4+Ml0sYmU9MHxhWzIwKyhjfD0wKT4+Ml0sT2U9MHxhW2MrMjQ+PjJdLDAhPSgwfGwpJjAhPSgwfGMpfHxQcig5NDk4MSw5NDk0Myw5NzMsOTQ5ODgpLDE9PSgwfChwZT0wfGFbbCszMj4+Ml0pKSYm''@;'; + put 'put ''KDB8cGUpPT0oMHxhW2MrMzI+PjJdKXx8UHIoOTUwMDUsOTQ5NDMsOTc0LDk0OTg4KSwoMHwoZj0wfGFbKHA9bCsxNnwwKT4+Ml0pKSE9KDB8YVtjKzE2Pj4yXSkmJlByKDk1MDU1LDk0OTQzLDk3NSw5NDk4OCksbT0wfGFbbCs0Pj4yXSwoMHwoRz0wfGFbbD4+Ml0pKT09KDB8YVtjPj4yXSkm''@;'; + put 'put ''JigwfG0pPT0oMHxhW2MrND4+Ml0pJiYwfChMZT0wfHVjKEcsbSwoMHxhW2MrOD4+Ml0pKygwfGFbbCs4Pj4yXSl8MCxmLDEpKSl7Zm9yKEQ9MHxhW0xlKzIwPj4yXSxSPTB8YVtMZSsyND4+Ml0scGU9MHxRbihtPDwyKSxmPTA7ISgoMHxmKT49KDB8bSkpOylhW3BlKyhmPDwyKT4+Ml09LTEs''@;'; + put 'put ''Zj1mKzF8MDthW0Q+PjJdPTA7ZTpkb3tzd2l0Y2goMHxhW3A+PjJdKXtjYXNlIDE6Zm9yKE09MHxhW2wrMjg+PjJdLHc9MHxhW2MrMjg+PjJdLGI9MHxhW0xlKzI4Pj4yXSxmPTAsbT0wOzspe2lmKCgwfG0pPj0oMHxHKSlicmVhayBlO2ZvcihwPUsrKChrPW0rMXwwKTw8Mil8MCxsPTB8YVtL''@;'; + put 'put ''KyhtPDwyKT4+Ml07ISgoMHxsKT49KDB8YVtwPj4yXSkpOylhW3BlKyhhWyhBPWdlKyhsPDwyKXwwKT4+Ml08PDIpPj4yXT1mLGFbUisoZjw8Mik+PjJdPWFbQT4+Ml0sX1tiKyhmPDwzKT4+M109K19bTSsobDw8Myk+PjNdLGw9bCsxfDAsZj1mKzF8MDtmb3IoYz1iZSsoazw8Mil8MCxBPUQr''@;'; + put 'put ''KG08PDIpfDAsbT0wfGFbYmUrKG08PDIpPj4yXTshKCgwfG0pPj0oMHxhW2M+PjJdKSk7KSgwfChwPTB8YVtwZSsoKGw9MHxhW09lKyhtPDwyKT4+Ml0pPDwyKT4+Ml0pKTwoMHxhW0E+PjJdKT8oYVtSKyhmPDwyKT4+Ml09bCxfW2IrKGY8PDMpPj4zXT0rX1t3KyhtPDwzKT4+M10sZj1mKzF8''@;'; + put 'put ''MCk6X1socD1iKyhwPDwzKXwwKT4+M109K19bcD4+M10rICtfW3crKG08PDMpPj4zXSxtPW0rMXwwO2FbRCsoazw8Mik+PjJdPWYsbT1rfWNhc2UgMjpmb3IoTT0wfGFbbCsyOD4+Ml0saz0wfGFbYysyOD4+Ml0sdz0wfGFbTGUrMjg+PjJdLG09MCxmPTA7Oyl7aWYoKDB8bSk+PSgwfEcpKWJy''@;'; + put 'put ''ZWFrIGU7Zm9yKHA9SysoKGI9bSsxfDApPDwyKXwwLGw9MHxhW0srKG08PDIpPj4yXTshKCgwfGwpPj0oMHxhW3A+PjJdKSk7KWFbcGUrKGFbKGM9Z2UrKGw8PDIpfDApPj4yXTw8Mik+PjJdPWYsYVtSKyhmPDwyKT4+Ml09YVtjPj4yXSxfW3crKChBPWY8PDEpPDwzKT4+M109K19bTSsoKGM9''@;'; + put 'put ''bDw8MSk8PDMpPj4zXSxfW3crKCgxfEEpPDwzKT4+M109K19bTSsoKDF8Yyk8PDMpPj4zXSxsPWwrMXwwLGY9ZisxfDA7Zm9yKGM9YmUrKGI8PDIpfDAsQT1EKyhtPDwyKXwwLG09MHxhW2JlKyhtPDwyKT4+Ml07ISgoMHxtKT49KDB8YVtjPj4yXSkpOykoMHwocD0wfGFbcGUrKChsPTB8YVtP''@;'; + put 'put ''ZSsobTw8Mik+PjJdKTw8Mik+PjJdKSk8KDB8YVtBPj4yXSk/KGFbUisoZjw8Mik+PjJdPWwsX1t3KygocD1mPDwxKTw8Myk+PjNdPStfW2srKChsPW08PDEpPDwzKT4+M10sX1t3KygoMXxwKTw8Myk+PjNdPStfW2srKCgxfGwpPDwzKT4+M10sZj1mKzF8MCk6KF9bKFJlPXcrKChwPDw9MSk8''@;'; + put 'put ''PDMpfDApPj4zXT0rX1tSZT4+M10rICtfW2srKChsPW08PDEpPDwzKT4+M10sX1socD13KygoMXxwKTw8Myl8MCk+PjNdPStfW3A+PjNdKyArX1trKygoMXxsKTw8Myk+PjNdKSxtPW0rMXwwO2FbRCsoYjw8Mik+PjJdPWYsbT1ifWNhc2UgNDpmb3IoTT0wfGFbbCsyOD4+Ml0sdz0wfGFbYysy''@;'; + put 'put ''OD4+Ml0sYj0wfGFbTGUrMjg+PjJdLG09MCxmPTA7Oyl7aWYoKDB8bSk+PSgwfEcpKWJyZWFrIGU7Zm9yKHA9SysoKGs9bSsxfDApPDwyKXwwLGw9MHxhW0srKG08PDIpPj4yXTshKCgwfGwpPj0oMHxhW3A+PjJdKSk7KWFbcGUrKGFbKFJlPWdlKyhsPDwyKXwwKT4+Ml08PDIpPj4yXT1mLGFb''@;'; + put 'put ''UisoZjw8Mik+PjJdPWFbUmU+PjJdLGFbYisoZjw8Mik+PjJdPWFbTSsobDw8Mik+PjJdLGw9bCsxfDAsZj1mKzF8MDtmb3IoYz1iZSsoazw8Mil8MCxBPUQrKG08PDIpfDAsbT0wfGFbYmUrKG08PDIpPj4yXTshKCgwfG0pPj0oMHxhW2M+PjJdKSk7KSgwfChwPTB8YVtwZSsoKGw9MHxhW09l''@;'; + put 'put ''KyhtPDwyKT4+Ml0pPDwyKT4+Ml0pKTwoMHxhW0E+PjJdKT8oYVtSKyhmPDwyKT4+Ml09bCxhW2IrKGY8PDIpPj4yXT1hW3crKG08PDIpPj4yXSxmPWYrMXwwKTphWyhSZT1iKyhwPDwyKXwwKT4+Ml09KDB8YVtSZT4+Ml0pKygwfGFbdysobTw8Mik+PjJdKSxtPW0rMXwwO2FbRCsoazw8Mik+''@;'; + put 'put ''PjJdPWYsbT1rfWNhc2UgODpmb3IoZj0wLG09MDs7KXtpZigoMHxtKT49KDB8RykpYnJlYWsgZTtmb3IocD1LKygodz1tKzF8MCk8PDIpfDAsbD0wfGFbSysobTw8Mik+PjJdOyEoKDB8bCk+PSgwfGFbcD4+Ml0pKTspYVtwZSsoYVsoUmU9Z2UrKGw8PDIpfDApPj4yXTw8Mik+PjJdPWYsYVtS''@;'; + put 'put ''KyhmPDwyKT4+Ml09YVtSZT4+Ml0sZj1mKzF8MCxsPWwrMXwwO2ZvcihjPWJlKyh3PDwyKXwwLEE9RCsobTw8Mil8MCxwPTB8YVtiZSsobTw8Mik+PjJdOyEoKDB8cCk+PSgwfGFbYz4+Ml0pKTspKDB8YVtwZSsoKGw9MHxhW09lKyhwPDwyKT4+Ml0pPDwyKT4+Ml0pPCgwfGFbQT4+Ml0pJiYo''@;'; + put 'put ''YVtSKyhmPDwyKT4+Ml09bCxmPWYrMXwwKSxwPXArMXwwO2FbRCsodzw8Mik+PjJdPWYsbT13fWRlZmF1bHQ6Zj0wfX13aGlsZSgwKTtyZXR1cm4gYVtMZSs4Pj4yXT1mLEZ0KHBlKSwwfExlfXJldHVybiAwfWZ1bmN0aW9uIHRqKGwsYyxmLHAsbSxBKXtyZXR1cm4gZnw9MCxsPTB8cVYobHw9''@;'; + put 'put ''MCxjfD0wLHB8PTAsbXw9MCxBfD0wKSwoMHxmKT4wJiZlaihsLGYpLDB8bH1mdW5jdGlvbiBVayhsLGMpe3ZhciBmPTA7cmV0dXJuIDB8bGgobHw9MCxjfD0wKT8oYz0wfHQ5KGwpLGY9NSk6KGM9MHxXeShsKSk/KGY9MHx5cChsLGMpLFJhKGMpLGFbKGM9ZiszNnwwKT4+Ml09M3xhW2M+PjJd''@;'; + put 'put ''LGM9ZixmPTUpOmM9MCw1PT0oMHxmKSYmKGM9MHx3cChjKSksMHxjfWZ1bmN0aW9uIHdwKGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtlOmRve2lmKGwpe009MHxhW2wrMjQ+PjJdLGY9MHxhWyhrPTB8YVtsKzIwPj4yXSk+PjJdO3Q6ZG97c3dp''@;'; + put 'put ''dGNoKDB8YVtsKzE2Pj4yXSl7Y2FzZSAxOmZvcihiPTB8YVtsKzI4Pj4yXSx3PTAsYz0wOzspe2lmKCgwfHcpPj0oMHxhW2w+PjJdKSlicmVhayB0O2ZvcihBPWsrKChtPXcrMXwwKTw8Mil8MDshKCgwfGYpPj0oMHwocD0wfGFbQT4+Ml0pKSk7KSgwfChwPTB8YVtNKyhmPDwyKT4+Ml0pKSE9''@;'; + put 'put ''KDB8dykmJihhW00rKGM8PDIpPj4yXT1wLF9bYisoYzw8Myk+PjNdPStfW2IrKGY8PDMpPj4zXSxjPWMrMXwwKSxmPWYrMXwwO2FbQT4+Ml09Yyx3PW0sZj1wfWNhc2UgMjpmb3IoYj0wfGFbbCsyOD4+Ml0sdz0wLGM9MDs7KXtpZigoMHx3KT49KDB8YVtsPj4yXSkpYnJlYWsgdDtmb3IoQT1r''@;'; + put 'put ''KygobT13KzF8MCk8PDIpfDA7ISgoMHxmKT49KDB8KHA9MHxhW0E+PjJdKSkpOykoMHwocD0wfGFbTSsoZjw8Mik+PjJdKSkhPSgwfHcpJiYoYVtNKyhjPDwyKT4+Ml09cCxfW2IrKChwPWM8PDEpPDwzKT4+M109K19bYisoKEQ9Zjw8MSk8PDMpPj4zXSxfW2IrKCgxfHApPDwzKT4+M109K19b''@;'; + put 'put ''YisoKDF8RCk8PDMpPj4zXSxjPWMrMXwwKSxmPWYrMXwwO2FbQT4+Ml09Yyx3PW0sZj1wfWNhc2UgNDpmb3IoYj0wfGFbbCsyOD4+Ml0sdz0wLGM9MDs7KXtpZigoMHx3KT49KDB8YVtsPj4yXSkpYnJlYWsgdDtmb3IoQT1rKygobT13KzF8MCk8PDIpfDA7ISgoMHxmKT49KDB8KHA9MHxhW0E+''@;'; + put 'put ''PjJdKSkpOykoMHwocD0wfGFbTSsoZjw8Mik+PjJdKSkhPSgwfHcpJiYoYVtNKyhjPDwyKT4+Ml09cCxhW2IrKGM8PDIpPj4yXT1hW2IrKGY8PDIpPj4yXSxjPWMrMXwwKSxmPWYrMXwwO2FbQT4+Ml09Yyx3PW0sZj1wfWNhc2UgODpmb3Iodz0wLGM9MDs7KXtpZigoMHx3KT49KDB8YVtsPj4y''@;'; + put 'put ''XSkpYnJlYWsgdDtmb3IoQT1rKygobT13KzF8MCk8PDIpfDA7ISgoMHxmKT49KDB8KHA9MHxhW0E+PjJdKSkpOykoMHwocD0wfGFbTSsoZjw8Mik+PjJdKSkhPSgwfHcpJiYoYVtNKyhjPDwyKT4+Ml09cCxjPWMrMXwwKSxmPWYrMXwwO2FbQT4+Ml09Yyx3PW0sZj1wfWRlZmF1bHQ6bD0wO2Jy''@;'; + put 'put ''ZWFrIGV9fXdoaWxlKDApO2FbbCs4Pj4yXT1jfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gbmoobCl7cmV0dXJuIDI9PSgwfGFbMzIrKGx8PTApPj4yXSk/MHxyNCgwfGFbbCs4Pj4yXSwwfGFbbD4+Ml0sMHxhW2wrND4+Ml0sMHxhW2wrMjA+PjJdLDB8YVtsKzI0Pj4y''@;'; + put 'put ''XSwwfGFbbCsyOD4+Ml0sMHxhW2wrMTY+PjJdLDB8YVtsKzQwPj4yXSk6KFByKDk1MTAwLDk0OTQzLDgwMyw5NTEyNiksMCl9ZnVuY3Rpb24gcjQobCxjLGYscCxtLEEsdyxiKXtyZXR1cm4gMHxmdW5jdGlvbiB3QShsLGMsZixwLG0sQSx3LGIsayl7cHw9MCxtfD0wLEF8PTAsd3w9MCxifD0w''@;'; + put 'put ''LGt8PTA7dmFyIE9lLExlLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTA7Zm9yKCgwfChsfD0wKSk+LTEmKDB8KGN8PTApKT4wJigwfChmfD0wKSk+MHx8UHIoOTUxNjIsOTQ5NDMsODQzLDk1MTg4KSwoYj0wfHRqKGMsZixsLHcsYiwxKSl8fFByKDk1MjMzLDk0OTQzLDg0Nyw5''@;'; + put 'put ''NTE4OCksTGU9MHxhW2IrMjA+PjJdLE9lPTB8YVtiKzI0Pj4yXSxEPWMrMXwwLE09MDsoMHxNKSE9KDB8RCk7KWFbTGUrKE08PDIpPj4yXT0wLE09TSsxfDA7ZTpkb3tzd2l0Y2goMHx3KXtjYXNlIDE6Zm9yKHc9MHxhW2IrMjg+PjJdLE09MDs7KXtpZigoMHxNKT49KDB8bCkpe3BlPTA7YnJl''@;'; + put 'put ''YWt9aWYoISgoMHwoRD0wfGFbcCsoTTw8Mik+PjJdKSk+LTEmKDB8RCk8KDB8YykpKXtiZT0xMzticmVha31pZighKCgwfChnZT0wfGFbbSsoTTw8Mik+PjJdKSk+LTEmKDB8Z2UpPCgwfGYpKSl7YmU9MTM7YnJlYWt9YVsoZ2U9TGUrKEQrMTw8Mil8MCk+PjJdPTErKDB8YVtnZT4+Ml0pLE09''@;'; + put 'put ''TSsxfDB9Zm9yKDEzPT0oMHxiZSkmJlByKDEzODM5NCw5NDk0Myw4NjIsOTUxODgpOzspe2lmKCgwfHBlKT09KDB8Yykpe009MDticmVha31hWyhmPUxlKygoYmU9cGUrMXwwKTw8Mil8MCk+PjJdPSgwfGFbZj4+Ml0pKygwfGFbTGUrKHBlPDwyKT4+Ml0pLHBlPWJlfWZvcig7KDB8TSkhPSgw''@;'; + put 'put ''fGwpOylfW3crKChiZT0wfGFbKGdlPUxlKyhhW3ArKE08PDIpPj4yXTw8Mil8MCk+PjJdKTw8Myk+PjNdPStfW0ErKE08PDMpPj4zXSxmPTB8YVttKyhNPDwyKT4+Ml0sYVtnZT4+Ml09YmUrMSxhW09lKyhiZTw8Mik+PjJdPWYsTT1NKzF8MDtmb3IoOzspe2lmKCgwfGMpPD0wKWJyZWFrIGU7''@;'; + put 'put ''YVtMZSsoYzw8Mik+PjJdPWFbTGUrKChtPWMrLTF8MCk8PDIpPj4yXSxjPW19Y2FzZSAyOmZvcih3PTB8YVtiKzI4Pj4yXSxNPTA7Oyl7aWYoKDB8TSk+PSgwfGwpKXtnZT0wO2JyZWFrfWlmKCEoKDB8KEQ9MHxhW3ArKE08PDIpPj4yXSkpPi0xJigwfEQpPCgwfGMpKSl7YmU9MjU7YnJlYWt9''@;'; + put 'put ''aWYoISgoMHwocGU9MHxhW20rKE08PDIpPj4yXSkpPi0xJigwfHBlKTwoMHxmKSkpe2JlPTI1O2JyZWFrfWFbKHBlPUxlKyhEKzE8PDIpfDApPj4yXT0xKygwfGFbcGU+PjJdKSxNPU0rMXwwfWZvcigyNT09KDB8YmUpJiZQcigxMzgzOTQsOTQ5NDMsODgwLDk1MTg4KTs7KXtpZigoMHxnZSk9''@;'; + put 'put ''PSgwfGMpKXtNPTA7YnJlYWt9YVsoZj1MZSsoKGJlPWdlKzF8MCk8PDIpfDApPj4yXT0oMHxhW2Y+PjJdKSsoMHxhW0xlKyhnZTw8Mik+PjJdKSxnZT1iZX1mb3IoOygwfE0pIT0oMHxsKTspX1t3KygoZj0oYmU9MHxhWyhnZT1MZSsoYVtwKyhNPDwyKT4+Ml08PDIpfDApPj4yXSk8PDEpPDwz''@;'; + put 'put ''KT4+M109K19bQT4+M10sX1t3KygoMXxmKTw8Myk+PjNdPStfW0ErOD4+M10sZj0wfGFbbSsoTTw8Mik+PjJdLGFbZ2U+PjJdPWJlKzEsYVtPZSsoYmU8PDIpPj4yXT1mLEE9QSsxNnwwLE09TSsxfDA7Zm9yKDs7KXtpZigoMHxjKTw9MClicmVhayBlO2FbTGUrKGM8PDIpPj4yXT1hW0xlKygo''@;'; + put 'put ''bT1jKy0xfDApPDwyKT4+Ml0sYz1tfWNhc2UgNDpmb3Iodz0wfGFbYisyOD4+Ml0sTT0wOzspe2lmKCgwfE0pPj0oMHxsKSl7Sz0wO2JyZWFrfWlmKCEoKDB8KEQ9MHxhW3ArKE08PDIpPj4yXSkpPi0xJigwfEQpPCgwfGMpKSl7YmU9Mzc7YnJlYWt9aWYoISgoMHwoZ2U9MHxhW20rKE08PDIp''@;'; + put 'put ''Pj4yXSkpPi0xJigwfGdlKTwoMHxmKSkpe2JlPTM3O2JyZWFrfWFbKGdlPUxlKyhEKzE8PDIpfDApPj4yXT0xKygwfGFbZ2U+PjJdKSxNPU0rMXwwfWZvcigzNz09KDB8YmUpJiZQcigxMzgzOTQsOTQ5NDMsODk5LDk1MTg4KTs7KXtpZigoMHxLKT09KDB8Yykpe009MDticmVha31hWyhmPUxl''@;'; + put 'put ''KygoYmU9SysxfDApPDwyKXwwKT4+Ml09KDB8YVtmPj4yXSkrKDB8YVtMZSsoSzw8Mik+PjJdKSxLPWJlfWZvcig7KDB8TSkhPSgwfGwpOylhW3crKGFbTGUrKGFbKGdlPXArKE08PDIpfDApPj4yXTw8Mik+PjJdPDwyKT4+Ml09YVtBKyhNPDwyKT4+Ml0sZj0wfGFbbSsoTTw8Mik+PjJdLGFb''@;'; + put 'put ''KGdlPUxlKyhhW2dlPj4yXTw8Mil8MCk+PjJdPTErKGJlPTB8YVtnZT4+Ml0pLGFbT2UrKGJlPDwyKT4+Ml09ZixNPU0rMXwwO2Zvcig7Oyl7aWYoKDB8Yyk8PTApYnJlYWsgZTthW0xlKyhjPDwyKT4+Ml09YVtMZSsoKG09YystMXwwKTw8Mik+PjJdLGM9bX1jYXNlIDg6Zm9yKEE9MDs7KXtp''@;'; + put 'put ''ZigoMHxBKT49KDB8bCkpe1I9MDticmVha31pZighKCgwfChNPTB8YVtwKyhBPDwyKT4+Ml0pKT4tMSYoMHxNKTwoMHxjKSkpe2JlPTQ4O2JyZWFrfWlmKCEoKDB8KGdlPTB8YVttKyhBPDwyKT4+Ml0pKT4tMSYoMHxnZSk8KDB8ZikpKXtiZT00ODticmVha31hWyhnZT1MZSsoTSsxPDwyKXww''@;'; + put 'put ''KT4+Ml09MSsoMHxhW2dlPj4yXSksQT1BKzF8MH1mb3IoNDg9PSgwfGJlKSYmUHIoMTM4Mzk0LDk0OTQzLDkxNSw5NTE4OCk7Oyl7aWYoKDB8Uik9PSgwfGMpKXtBPTA7YnJlYWt9YVsoZj1MZSsoKGJlPVIrMXwwKTw8Mil8MCk+PjJdPSgwfGFbZj4+Ml0pKygwfGFbTGUrKFI8PDIpPj4yXSks''@;'; + put 'put ''Uj1iZX1mb3IoOygwfEEpIT0oMHxsKTspZj0wfGFbbSsoQTw8Mik+PjJdLGFbKGdlPUxlKyhhW3ArKEE8PDIpPj4yXTw8Mil8MCk+PjJdPTErKGJlPTB8YVtnZT4+Ml0pLGFbT2UrKGJlPDwyKT4+Ml09ZixBPUErMXwwO2Zvcig7Oyl7aWYoKDB8Yyk8PTApYnJlYWsgZTthW0xlKyhjPDwyKT4+''@;'; + put 'put ''Ml09YVtMZSsoKG09YystMXwwKTw8Mik+PjJdLGM9bX1jYXNlIDE2OmZvcihNPTA7Oyl7aWYoKDB8TSk+PSgwfGwpKXtHPTA7YnJlYWt9aWYoISgoMHwoRD0wfGFbcCsoTTw8Mik+PjJdKSk+LTEmKDB8RCk8KDB8YykpKXtiZT01OTticmVha31pZighKCgwfChnZT0wfGFbbSsoTTw8Mik+PjJd''@;'; + put 'put ''KSk+LTEmKDB8Z2UpPCgwfGYpKSl7YmU9NTk7YnJlYWt9YVsoZ2U9TGUrKEQrMTw8Mil8MCk+PjJdPTErKDB8YVtnZT4+Ml0pLE09TSsxfDB9Zm9yKDU5PT0oMHxiZSkmJlByKDEzODM5NCw5NDk0Myw5MzAsOTUxODgpOygwfEcpIT0oMHxjKTspYVsoZj1MZSsoKGJlPUcrMXwwKTw8Mil8MCk+''@;'; + put 'put ''PjJdPSgwfGFbZj4+Ml0pKygwfGFbTGUrKEc8PDIpPj4yXSksRz1iZTtmb3IoZ28oMHxhW2IrMjg+PjJdLDB8QSwwfEFyKDB8YVtiKzQwPj4yXSxsKSksQT0wOygwfEEpIT0oMHxsKTspZj0wfGFbbSsoQTw8Mik+PjJdLGFbKGdlPUxlKyhhW3ArKEE8PDIpPj4yXTw8Mil8MCk+PjJdPTErKGJl''@;'; + put 'put ''PTB8YVtnZT4+Ml0pLGFbT2UrKGJlPDwyKT4+Ml09ZixBPUErMXwwO2Zvcig7Oyl7aWYoKDB8Yyk8PTApYnJlYWsgZTthW0xlKyhjPDwyKT4+Ml09YVtMZSsoKG09YystMXwwKTw8Mik+PjJdLGM9bX1kZWZhdWx0OlByKDEzODM5NCw5NDk0Myw5NDQsOTUxODgpfX13aGlsZSgwKTtyZXR1cm4g''@;'; + put 'put ''YVtMZT4+Ml09MCxhW2IrOD4+Ml09bCxrJiYoYj0wfGZ1bmN0aW9uIFhmKGwsYyl7Y3w9MDt2YXIgT2UsTGUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsUmU9MCxIZT0wO09lPTB8YVsyMCsobHw9MCk+PjJdLExlPTB8YVts''@;'; + put 'put ''KzI0Pj4yXSxwPTB8YVtsKzE2Pj4yXSxnZT0wfGFbbCs0Pj4yXTtlOmRve2lmKGMpe2ZvcihSPTB8UW4oRD1nZTw8MiksZj0wOyEoKDB8Zik+PSgwfGdlKSk7KWFbUisoZjw8Mik+PjJdPS0xLGY9ZisxfDA7dDpkb3tzd2l0Y2goMHxwKXtjYXNlIDE6az0wfGFbbCsyOD4+Ml0sbT0wLHA9MHxh''@;'; + put 'put ''W09lPj4yXSxmPTA7bjpmb3IoOzspe2lmKCgwfGYpPj0oMHxhW2w+PjJdKSl7UmU9bSxIZT1SO2JyZWFrIHR9Zm9yKEQ9T2UrKChNPWYrMXwwKTw8Mil8MCx3PU9lKyhmPDwyKXwwLGY9bTshKCgwfHApPj0oMHwoYz0wfGFbRD4+Ml0pKSk7KXtpZigoMHwoQT0wfGFbUisoKG09MHxhWyhjPUxl''@;'; + put 'put ''KyhwPDwyKXwwKT4+Ml0pPDwyKT4+Ml0pKTwoMHxhW3c+PjJdKSlhW0xlKyhmPDwyKT4+Ml09bSxfW2srKGY8PDMpPj4zXT0rX1trKyhwPDwzKT4+M10sYVtSKyhhW2M+PjJdPDwyKT4+Ml09ZixmPWYrMXwwO2Vsc2V7aWYoKDB8YVtMZSsoQTw8Mik+PjJdKSE9KDB8bSkpYnJlYWsgbjtfWyhi''@;'; + put 'put ''ZT1rKyhBPDwzKXwwKT4+M109K19bYmU+PjNdKyArX1trKyhwPDwzKT4+M119cD1wKzF8MH1hW0Q+PjJdPWYsbT1mLHA9YyxmPU19UHIoOTUyMzUsOTQ5NDMsMTc5Miw5NTI2MCk7YnJlYWs7Y2FzZSAyOnN3aXRjaChiZT0wfGFbbCsyOD4+Ml0sMHxjKXtjYXNlIDE6Yz0wfGFbT2U+PjJdLHA9''@;'; + put 'put ''MCxmPTA7bjpmb3IoOzspe2lmKCgwfHApPj0oMHxhW2w+PjJdKSl7UmU9ZixIZT1SO2JyZWFrIHR9Zm9yKE09T2UrKChrPXArMXwwKTw8Mil8MCx3PU9lKyhwPDwyKXwwOyEoKDB8Yyk+PSgwfChwPTB8YVtNPj4yXSkpKTspe2lmKCgwfChBPTB8YVtSKygobT0wfGFbKHA9TGUrKGM8PDIpfDAp''@;'; + put 'put ''Pj4yXSk8PDIpPj4yXSkpPCgwfGFbdz4+Ml0pKWFbTGUrKGY8PDIpPj4yXT1tLF9bYmUrKChnZT1mPDwxKTw8Myk+PjNdPStfW2JlKygocGU9Yzw8MSk8PDMpPj4zXSxfW2JlKygoMXxnZSk8PDMpPj4zXT0rX1tiZSsoKDF8cGUpPDwzKT4+M10sYVtSKyhhW3A+PjJdPDwyKT4+Ml09ZixmPWYr''@;'; + put 'put ''MXwwO2Vsc2V7aWYoKDB8YVtMZSsoQTw8Mik+PjJdKSE9KDB8bSkpYnJlYWsgbjtfWyhLPWJlKygoZ2U9QTw8MSk8PDMpfDApPj4zXT0rX1tLPj4zXSsgK19bYmUrKChwZT1jPDwxKTw8Myk+PjNdLF9bKGdlPWJlKygoMXxnZSk8PDMpfDApPj4zXT0rX1tnZT4+M10rICtfW2JlKygoMXxwZSk8''@;'; + put 'put ''PDMpPj4zXX1jPWMrMXwwfWFbTT4+Ml09ZixjPXAscD1rfVByKDk1MjM1LDk0OTQzLDE4MTUsOTUyNjApO2JyZWFrO2Nhc2UgNDpjPTB8YVtPZT4+Ml0scD0wLGY9MDtuOmZvcig7Oyl7aWYoKDB8cCk+PSgwfGFbbD4+Ml0pKXtSZT1mLEhlPVI7YnJlYWsgdH1mb3Ioaz1PZSsoKE09cCsxfDAp''@;'; + put 'put ''PDwyKXwwLHc9T2UrKHA8PDIpfDA7ISgoMHxjKT49KDB8KHA9MHxhW2s+PjJdKSkpOyl7aWYoKDB8KEE9MHxhW1IrKChtPTB8YVsocD1MZSsoYzw8Mil8MCk+PjJdKTw8Mik+PjJdKSk8KDB8YVt3Pj4yXSkpYVtMZSsoZjw8Mik+PjJdPW0sX1tiZSsoKGdlPWY8PDEpPDwzKT4+M109K19bYmUr''@;'; + put 'put ''KChwZT1jPDwxKTw8Myk+PjNdLF9bYmUrKCgxfGdlKTw8Myk+PjNdPStfW2JlKygoMXxwZSk8PDMpPj4zXSxhW1IrKGFbcD4+Ml08PDIpPj4yXT1mLGY9ZisxfDA7ZWxzZXtpZigoMHxhW0xlKyhBPDwyKT4+Ml0pIT0oMHxtKSlicmVhayBuO19bKEs9YmUrKChnZT1BPDwxKTw8Myl8MCk+PjNd''@;'; + put 'put ''PStfW0s+PjNdKyArX1tiZSsoKHBlPWM8PDEpPDwzKT4+M10sX1tiZSsoKDF8Z2UpPDwzKT4+M109K19bYmUrKCgxfHBlKTw8Myk+PjNdfWM9YysxfDB9YVtrPj4yXT1mLGM9cCxwPU19UHIoOTUyMzUsOTQ5NDMsMTgzNSw5NTI2MCk7YnJlYWs7Y2FzZSAyOnc9MHxhW2w+PjJdLHA9cGU9fn4r''@;'; + put 'put ''X1tiZSs4Pj4zXSxBPTAsZj0wO246Zm9yKDshKCgwfEEpPj0oMHx3KSk7KWZvcihrPUErMXwwLE09MHxhW09lKyhrPDwyKT4+Ml0sbT1mLGM9cGUsZj0wfGFbT2UrKEE8PDIpPj4yXTs7KXtpZigoMHxmKT49KDB8TSkpe3BlPWMsQT1rLGY9bTtjb250aW51ZSBufXBlPX5+K19bYmUrKChtPDwx''@;'; + put 'put ''fDEpPDwzKT4+M10sbT1tKzF8MCxwPSgwfHApPigwfHBlKT9wOnBlLGM9KDB8Yyk8KDB8cGUpP2M6cGUsZj1mKzF8MH1mb3IoRnQoUiksRz0wfFFuKDB8QXIoSz1wLXBlKzF8MCxEKSksSz0wfEFyKEssZ2UpLGY9MDshKCgwfGYpPj0oMHxLKSk7KWFbRysoZjw8Mik+PjJdPS0xLGY9ZisxfDA7''@;'; + put 'put ''Zj0wLGM9MHxhW09lPj4yXSxwPTA7bjpmb3IoOzspe2lmKCgwfHApPj0oMHxhW2w+PjJdKSl7UmU9ZixIZT1HO2JyZWFrIHR9Zm9yKFI9T2UrKChEPXArMXwwKTw8Mil8MCxNPU9lKyhwPDwyKXwwOyEoKDB8Yyk+PSgwfChwPTB8YVtSPj4yXSkpKTspe2lmKHA9MHxhW0xlKyhjPDwyKT4+Ml0s''@;'; + put 'put ''QT0oMHxBcih+fihiPStfW2JlKygoMXwobT1jPDwxKSk8PDMpPj4zXSktcGV8MCxnZSkpK3B8MCwoMHwoaz0wfGFbKHc9RysoQTw8Mil8MCk+PjJdKSk8KDB8YVtNPj4yXSkpYVtMZSsoZjw8Mik+PjJdPXAsX1tiZSsoKGs9Zjw8MSk8PDMpPj4zXT0rX1tiZSsobTw8Myk+PjNdLF9bYmUrKCgx''@;'; + put 'put ''fGspPDwzKT4+M109YixhW3c+PjJdPWYsZj1mKzF8MDtlbHNle2lmKCgwfEEpPj0oMHxLKSl7Zj01NTticmVhayBufWlmKCgwfGFbTGUrKGs8PDIpPj4yXSkhPSgwfHApKXtmPTU3O2JyZWFrIG59X1sodz1iZSsoKGs8PD0xKTw8Myl8MCk+PjNdPStfW3c+PjNdKyArX1tiZSsobTw8Myk+PjNd''@;'; + put 'put ''LF9bYmUrKCgxfGspPDwzKT4+M109Yn1jPWMrMXwwfWFbUj4+Ml09ZixjPXAscD1EfTU1PT0oMHxmKT9Qcig5NTI5Miw5NDk0MywxODY5LDk1MjYwKTo1Nz09KDB8ZikmJlByKDk1MzEzLDk0OTQzLDE4NzAsOTUyNjApO2JyZWFrO2Nhc2UgMzp3PTB8YVtsPj4yXSxmPW09fn4rX1tiZSs4Pj4z''@;'; + put 'put ''XSxwPTAsQT0wO246Zm9yKDshKCgwfEEpPj0oMHx3KSk7KWZvcihrPUErMXwwLE09MHxhW09lKyhrPDwyKT4+Ml0sYz1mLGY9MHxhW09lKyhBPDwyKT4+Ml07Oyl7aWYoKDB8Zik+PSgwfE0pKXtmPWMsQT1rO2NvbnRpbnVlIG59Yz0oMHxjKT4oMHwocGU9fn4rX1tiZSsocDw8MTw8Myk+PjNd''@;'; + put 'put ''KSk/YzpwZSxtPSgwfG0pPigwfHBlKT9tOnBlLHA9cCsxfDAsZj1mKzF8MH1mb3IoRnQoUiksRz0wfFFuKDB8QXIocD1mLW0rMXwwLEQpKSxwPTB8QXIocCxnZSksZj0wOyEoKDB8Zik+PSgwfHApKTspYVtHKyhmPDwyKT4+Ml09LTEsZj1mKzF8MDtmPTAsYz0wfGFbT2U+PjJdLHA9MDtuOmZv''@;'; + put 'put ''cig7Oyl7aWYoKDB8cCk+PSgwfGFbbD4+Ml0pKXtSZT1mLEhlPUc7YnJlYWsgdH1mb3IoUj1PZSsoKEQ9cCsxfDApPDwyKXwwLE09T2UrKHA8PDIpfDA7ISgoMHxjKT49KDB8KHA9MHxhW1I+PjJdKSkpOyl7aWYocD0wfGFbTGUrKGM8PDIpPj4yXSx3PUcrKCgwfEFyKH5+KGI9K19bYmUrKChB''@;'; + put 'put ''PWM8PDEpPDwzKT4+M10pLW18MCxnZSkpK3A8PDIpfDAsKDB8KGs9MHxhW3c+PjJdKSk8KDB8YVtNPj4yXSkpYVtMZSsoZjw8Mik+PjJdPXAsX1tiZSsoKHBlPWY8PDEpPDwzKT4+M109YixfW2JlKygoMXxwZSk8PDMpPj4zXT0rX1tiZSsoKDF8QSk8PDMpPj4zXSxhW3c+PjJdPWYsZj1mKzF8''@;'; + put 'put ''MDtlbHNle2lmKCgwfGFbTGUrKGs8PDIpPj4yXSkhPSgwfHApKWJyZWFrIG47X1tiZSsoKHBlPWs8PDEpPDwzKT4+M109YixfWyhwZT1iZSsoKDF8cGUpPDwzKXwwKT4+M109K19bcGU+PjNdKyArX1tiZSsoKDF8QSk8PDMpPj4zXX1jPWMrMXwwfWFbUj4+Ml09ZixjPXAscD1EfVByKDk1MzEz''@;'; + put 'put ''LDk0OTQzLDE5MDUsOTUyNjApO2JyZWFrO2RlZmF1bHQ6UmU9MCxIZT1SO2JyZWFrIHR9YnJlYWs7Y2FzZSA0Oms9MHxhW2wrMjg+PjJdLHA9MCxmPTAsYz0wfGFbT2U+PjJdO246Zm9yKDs7KXtpZigoMHxwKT49KDB8YVtsPj4yXSkpe1JlPWYsSGU9UjticmVhayB0fWZvcihEPU9lKygoTT1w''@;'; + put 'put ''KzF8MCk8PDIpfDAsdz1PZSsocDw8Mil8MDshKCgwfGMpPj0oMHwobT0wfGFbRD4+Ml0pKSk7KXtpZigoMHwoQT0wfGFbUisoKG09MHxhWyhwPUxlKyhjPDwyKXwwKT4+Ml0pPDwyKT4+Ml0pKTwoMHxhW3c+PjJdKSlhW0xlKyhmPDwyKT4+Ml09bSxhW2srKGY8PDIpPj4yXT1hW2srKGM8PDIp''@;'; + put 'put ''Pj4yXSxhW1IrKGFbcD4+Ml08PDIpPj4yXT1mLGY9ZisxfDA7ZWxzZXtpZigoMHxhW0xlKyhBPDwyKT4+Ml0pIT0oMHxtKSlicmVhayBuO2FbKGJlPWsrKEE8PDIpfDApPj4yXT0oMHxhW2JlPj4yXSkrKDB8YVtrKyhjPDwyKT4+Ml0pfWM9YysxfDB9YVtEPj4yXT1mLHA9TSxjPW19UHIoOTUy''@;'; + put 'put ''MzUsOTQ5NDMsMTkyOSw5NTI2MCk7YnJlYWs7Y2FzZSA4OnA9MCxmPTAsYz0wfGFbT2U+PjJdO246Zm9yKDs7KXtpZigoMHxwKT49KDB8YVtsPj4yXSkpe1JlPWYsSGU9UjticmVhayB0fWZvcihNPU9lKygoaz1wKzF8MCk8PDIpfDAsdz1PZSsocDw8Mil8MDshKCgwfGMpPj0oMHwobT0wfGFb''@;'; + put 'put ''TT4+Ml0pKSk7KXtpZigoMHwoQT0wfGFbUisoKG09MHxhWyhwPUxlKyhjPDwyKXwwKT4+Ml0pPDwyKT4+Ml0pKT49KDB8YVt3Pj4yXSkpe2lmKCgwfGFbTGUrKEE8PDIpPj4yXSkhPSgwfG0pKWJyZWFrIG59ZWxzZSBhW0xlKyhmPDwyKT4+Ml09bSxhW1IrKGFbcD4+Ml08PDIpPj4yXT1mLGY9''@;'; + put 'put ''ZisxfDA7Yz1jKzF8MH1hW00+PjJdPWYscD1rLGM9bX1Qcig5NTIzNSw5NDk0MywxOTQ4LDk1MjYwKTticmVhaztkZWZhdWx0Omw9MDticmVhayBlfX13aGlsZSgwKTthW2wrOD4+Ml09UmUsRnQoSGUpfX13aGlsZSgwKTtyZXR1cm4gMHxsfShiLGspKSwwfGJ9KGx8PTAsY3w9MCxmfD0wLHB8''@;'; + put 'put ''PTAsbXw9MCxBfD0wLHd8PTAsYnw9MCwxKX1mdW5jdGlvbiByaihsLGMsZixwKXt2YXIgbSxBO2ZvcihjfD0wLGZ8PTAsbT03MisobHw9MCl8MCxBPTQrKHB8PTApfDA7ISgoZi1jfDApPD0wKTspe3N3aXRjaCgwfGZlW20rKDB8SnRbYz4+MF0pPj4wXSl7Y2FzZSA1OmM9YysyfDA7YnJlYWs7''@;'; + put 'put ''Y2FzZSA2OmM9YyszfDA7YnJlYWs7Y2FzZSA3OmM9Yys0fDA7YnJlYWs7Y2FzZSAxMDphW0E+PjJdPS0xLGFbcD4+Ml09MSsoMHxhW3A+PjJdKSxjPWMrMXwwO2JyZWFrO2Nhc2UgOTphW3A+PjJdPTErKDB8YVtwPj4yXSksYz0oZi0obD1jKzF8MCl8MCk+MCYmMTA9PSgwfGZlW20rKDB8SnRb''@;'; + put 'put ''bD4+MF0pPj4wXSk/YysyfDA6bCxhW0E+PjJdPS0xO2JyZWFrO2RlZmF1bHQ6Yz1jKzF8MH1hW0E+PjJdPTErKDB8YVtBPj4yXSl9fWZ1bmN0aW9uIGVMKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgYixtPTAsQT0wLHc9MCxrPTA7bT0oYj1mfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfG0pPjAp''@;'; + put 'put ''e3N3aXRjaCgwfGZlWyhrPWwrNzJ8MCkrKDB8SnRbYz4+MF0pPj4wXSl7Y2FzZSAyOTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6Zj0xO2JyZWFrO2Nhc2UgNTppZigoMHxtKTwyKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQwPj4yXV0o''@;'; + put 'put ''bCxjKSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1mPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfG0pPDMpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDQ+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWY9MzticmVhaztjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVh''@;'; + put 'put ''ayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0OD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9Zj00O2JyZWFrO2Nhc2UgMTk6Zj0wfFJLKGwsYysxfDAsZixwKTticmVhayBlfW09bCszMjh8MCxBPWwrMzMyfDAsdz1sKzMzNnwwLGM9YytmfDA7dDpmb3IoOzspe2lmKCgwfChmPWIt''@;'; + put 'put ''Y3wwKSk8PTApe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtrKygwfEp0W2M+PjBdKT4+MF0pe2Nhc2UgMjk6bT0xODticmVhayB0O2Nhc2UgMTg6bT0yOTticmVhayB0O2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpmPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfGYpPDIp''@;'; + put 'put ''e2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbT4+Ml1dKGwsYykpKXttPTIxO2JyZWFrIHR9Zj0yO2JyZWFrO2Nhc2UgNjppZigoMHxmKTwzKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW0E+PjJdXShsLGMpKSl7bT0yNDticmVhayB0fWY9MzticmVhaztjYXNlIDc6aWYoKDB8''@;'; + put 'put ''Zik8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVt3Pj4yXV0obCxjKSkpe209Mjc7YnJlYWsgdH1mPTQ7YnJlYWs7ZGVmYXVsdDptPTMwO2JyZWFrIHR9Yz1jK2Z8MH1pZigxOD09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjE9PSgwfG0pKXthW3A+PjJdPWMsZj0wO2Jy''@;'; + put 'put ''ZWFrfWlmKDI0PT0oMHxtKSl7YVtwPj4yXT1jLGY9MDticmVha31pZigyNz09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjk9PSgwfG0pKXthW3A+PjJdPWMrMSxmPTk7YnJlYWt9aWYoMzA9PSgwfG0pKXthW3A+PjJdPWMsZj0wO2JyZWFrfX1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0''@;'; + put 'put ''dXJuIDB8Zn1mdW5jdGlvbiBpaihsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7bT0oZnw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHxtKT4wKXtzd2l0Y2goMHxmZVsoaz1sKzcyfDApKygwfEp0W2M+PjBdKT4+MF0pe2Nhc2UgMjk6ZGVmYXVsdDphW3A+PjJdPWMs''@;'; + put 'put ''Zj0wO2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOm09MTticmVhaztjYXNlIDU6aWYoKDB8bSk8Mil7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0MD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9bT0yO2JyZWFrO2Nhc2UgNjppZigoMHxtKTwzKXtmPS0yO2JyZWFr''@;'; + put 'put ''IGV9aWYoISgwfEJpWzEyNyZhW2wrMzQ0Pj4yXV0obCxjKSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1tPTM7YnJlYWs7Y2FzZSA3OmlmKCgwfG0pPDQpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDg+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfW09NDticmVh''@;'; + put 'put ''aztjYXNlIDMwOmNhc2UgOTpjYXNlIDEwOmNhc2UgMjE6YVtwPj4yXT1jLGY9MjI7YnJlYWsgZX1BPWwrMzI4fDAsdz1sKzMzMnwwLGI9bCszMzZ8MCxjPWMrbXwwO3Q6Zm9yKDs7KXtpZigoMHwobT1mLWN8MCkpPD0wKXtmPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbaysoMHxKdFtjPj4wXSk+''@;'; + put 'put ''PjBdKXtjYXNlIDI5Om09MTg7YnJlYWsgdDtjYXNlIDE4Om09Mjk7YnJlYWsgdDtjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6bT0xO2JyZWFrO2Nhc2UgNTppZigoMHxtKTwyKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW0E+PjJdXShsLGMpKSl7bT0yMTti''@;'; + put 'put ''cmVhayB0fW09MjticmVhaztjYXNlIDY6aWYoKDB8bSk8Myl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVt3Pj4yXV0obCxjKSkpe209MjQ7YnJlYWsgdH1tPTM7YnJlYWs7Y2FzZSA3OmlmKCgwfG0pPDQpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbYj4+Ml1dKGwsYykpKXtt''@;'; + put 'put ''PTI3O2JyZWFrIHR9bT00O2JyZWFrO2RlZmF1bHQ6bT0zMDticmVhayB0fWM9YyttfDB9aWYoMTg9PSgwfG0pKXthW3A+PjJdPWMsZj0wO2JyZWFrfWlmKDIxPT0oMHxtKSl7YVtwPj4yXT1jLGY9MDticmVha31pZigyND09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjc9PSgwfG0p''@;'; + put 'put ''KXthW3A+PjJdPWMsZj0wO2JyZWFrfWlmKDI5PT0oMHxtKSl7YVtwPj4yXT1jKzEsZj0yODticmVha31pZigzMD09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIFJLKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBB''@;'; + put 'put ''LG09MDtBPWZ8PTA7ZTpkb3tpZigoQS1jfDApPjApe2lmKChtPTB8ZmVbYz4+MF0pPDwyND4+MjQ9PTEyMCl7bD0wfEJLKGwsYysxfDAsZixwKTticmVha31pZigyNSE9KDB8ZmVbKGY9bCs3MnwwKSsoMjU1Jm0pPj4wXSkpe2FbcD4+Ml09YyxsPTA7YnJlYWt9dDpmb3IoOzspe2lmKChBLShs''@;'; + put 'put ''PWMrMXwwKXwwKTw9MCl7bD0tMTticmVhayBlfXN3aXRjaCgwfGZlW2YrKDB8SnRbbD4+MF0pPj4wXSl7Y2FzZSAyNTpjPWw7YnJlYWs7Y2FzZSAxODpmPTg7YnJlYWsgdDtkZWZhdWx0OmY9OTticmVhayB0fX1pZig4PT0oMHxmKSl7YVtwPj4yXT1jKzIsbD0xMDticmVha31pZig5PT0oMHxm''@;'; + put 'put ''KSl7YVtwPj4yXT1sLGw9MDticmVha319ZWxzZSBsPS0xfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gQksobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wO2U6ZG97aWYoKGYtY3wwKT4wKXtpZigoLTImZmVbKGw9bCs3MnwwKSsoMHxKdFtjPj4wXSk+PjBdKTw8MjQ+''@;'; + put 'put ''PjI0IT0yNCl7YVtwPj4yXT1jLGY9MDticmVha310OmZvcig7Oyl7aWYoKGYtKG09YysxfDApfDApPD0wKXtmPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbbCsoMHxKdFttPj4wXSk+PjBdKXtjYXNlIDI0OmNhc2UgMjU6Yz1tO2JyZWFrO2Nhc2UgMTg6bD02O2JyZWFrIHQ7ZGVmYXVsdDpsPTc7''@;'; + put 'put ''YnJlYWsgdH19aWYoNj09KDB8bCkpe2FbcD4+Ml09YysyLGY9MTA7YnJlYWt9aWYoNz09KDB8bCkpe2FbcD4+Ml09bSxmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIFB2ZShsLGMsZixwKXtsfD0wLHB8PTA7dmFyIEssbT0wLEE9MCx3PTAsYj0wLGs9''@;'; + put 'put ''MCxNPTAsRD0wLFI9MCxHPTAscGU9MDttPShLPWZ8PTApLShjfD0wKXwwO2U6ZG97aWYoKDB8bSk+MCl7c3dpdGNoKDB8ZmVbKEc9bCs3MnwwKSsoMHxKdFtjPj4wXSk+PjBdKXtjYXNlIDI5OmFbcD4+Ml09YyxtPTA7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6bT0xO2JyZWFrO2Nhc2UgNTpp''@;'; + put 'put ''ZigoMHxtKTwyKXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQwPj4yXV0obCxjKSkpe2FbcD4+Ml09YyxtPTA7YnJlYWsgZX1tPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfG0pPDMpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDQ+PjJdXShsLGMpKSl7YVtwPj4yXT1j''@;'; + put 'put ''LG09MDticmVhayBlfW09MzticmVhaztjYXNlIDc6aWYoKDB8bSk8NCl7bT0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0OD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsbT0wO2JyZWFrIGV9bT00O2JyZWFrO2Nhc2UgMTY6aWYoKEstKG09YysxfDApfDApPD0wKXttPS0xO2JyZWFrIGV9''@;'; + put 'put ''c3dpdGNoKDB8ZmVbRysoMHxKdFttPj4wXSk+PjBdKXtjYXNlIDI3Om09MHxvaihsLGMrMnwwLGYscCk7YnJlYWsgZTtjYXNlIDIwOm09MHxhaihjKzJ8MCxmLHApO2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPW0sbT0wO2JyZWFrIGV9Y2FzZSAxNTptPTB8dEwobCxjKzF8MCxmLHApO2JyZWFr''@;'; + put 'put ''IGU7Y2FzZSAxNzptPTB8RnZlKGwsYysxfDAsZixwKTticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1jLG09MDticmVhayBlfXc9bCszMjh8MCxiPWwrMzMyfDAsaz1sKzMzNnwwLE09bCszNDB8MCxEPWwrMzQ0fDAsUj1sKzM0OHwwLEE9MCxtPWMrbXwwO3Q6Zm9yKDs7KXtpZigoMHwoYz1LLW18''@;'; + put 'put ''MCkpPD0wKXttPS0xO2JyZWFrIGV9bjpkb3tzd2l0Y2goMHxmZVtHKygwfEp0W20+PjBdKT4+MF0pe2Nhc2UgMjk6cGU9MjQ7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOnBlPTUwO2JyZWFrIHQ7Y2FzZSAxMTpwZT02NDticmVhayB0O2Nhc2UgMTc6YnJlYWsgdDtjYXNlIDI3OmNh''@;'; + put 'put ''c2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6Yz0xO2JyZWFrO2Nhc2UgNTppZigoMHxjKTwyKXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW3c+PjJdXShsLG0pKSl7cGU9Mjc7YnJlYWsgdH1jPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfGMpPDMpe209LTI7YnJlYWsgZX1pZighKDB8''@;'; + put 'put ''QmlbMTI3JmFbYj4+Ml1dKGwsbSkpKXtwZT0zMDticmVhayB0fWM9MzticmVhaztjYXNlIDc6aWYoKDB8Yyk8NCl7bT0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtrPj4yXV0obCxtKSkpe3BlPTMzO2JyZWFrIHR9Yz00O2JyZWFrO2Nhc2UgMjM6aWYoMHxBKXtwZT0zNTticmVhayB0fWlm''@;'; + put 'put ''KCgwfChjPUstKEE9bSsxfDApfDApKTw9MCl7bT0tMTticmVhayBlfXN3aXRjaCgwfGZlW0crKDB8SnRbQT4+MF0pPj4wXSl7Y2FzZSAyOTpwZT0zODticmVhayB0O2Nhc2UgMjQ6Y2FzZSAyMjpBPTEsYz0yO2JyZWFrIG47Y2FzZSA1OmlmKCgwfGMpPDIpe209LTI7YnJlYWsgZX1pZigwfEJp''@;'; + put 'put ''WzEyNyZhW00+PjJdXShsLEEpKXtBPTEsYz0zO2JyZWFrIG59cGU9NDI7YnJlYWsgdDtjYXNlIDY6aWYoKDB8Yyk8Myl7bT0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbRD4+Ml1dKGwsQSkpe0E9MSxjPTQ7YnJlYWsgbn1wZT00NTticmVhayB0O2Nhc2UgNzppZigoMHxjKTw0KXttPS0yO2Jy''@;'; + put 'put ''ZWFrIGV9aWYoMHxCaVsxMjcmYVtSPj4yXV0obCxBKSl7QT0xLGM9NTticmVhayBufXBlPTQ4O2JyZWFrIHQ7ZGVmYXVsdDpwZT00OTticmVhayB0fWRlZmF1bHQ6cGU9Njk7YnJlYWsgdH19d2hpbGUoMCk7bT1tK2N8MH10OnN3aXRjaCgwfHBlKXtjYXNlIDI0OmNhc2UgMjc6Y2FzZSAzMDpj''@;'; + put 'put ''YXNlIDMzOmNhc2UgMzU6Y2FzZSA2OTphW3A+PjJdPW0sbT0wO2JyZWFrIGU7Y2FzZSAzODpjYXNlIDQyOmNhc2UgNDU6Y2FzZSA0ODpjYXNlIDQ5OmFbcD4+Ml09QSxtPTA7YnJlYWsgZTtjYXNlIDUwOm46Zm9yKDs7KXtpZihwZT0wLCgwfChjPUstKEE9bSsxfDApfDApKTw9MCl7bT0tMTti''@;'; + put 'put ''cmVhayBlfXN3aXRjaCgwfGZlW0crKDB8SnRbQT4+MF0pPj4wXSl7Y2FzZSAxMTptPUEscGU9NjQ7YnJlYWsgdDtjYXNlIDE3Om09QTticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6bT1BLHBlPTUwO2JyZWFrO2Nhc2UgMjk6cGU9NTI7YnJlYWsgbjtjYXNlIDI0OmNhc2UgMjI6QT0y''@;'; + put 'put ''O2JyZWFrIG47Y2FzZSA1OnBlPTUzO2JyZWFrIG47Y2FzZSA2OnBlPTU2O2JyZWFrIG47Y2FzZSA3OnBlPTU5O2JyZWFrIG47ZGVmYXVsdDpwZT02MjticmVhayBufX1pZig1Mj09KDB8cGUpKXthW3A+PjJdPUEsbT0wO2JyZWFrIGV9aWYoNTM9PSgwfHBlKSl7aWYoKDB8Yyk8Mil7bT0tMjti''@;'; + put 'put ''cmVhayBlfWlmKCEoMHxCaVsxMjcmYVtNPj4yXV0obCxBKSkpe2FbcD4+Ml09QSxtPTA7YnJlYWsgZX1BPTN9ZWxzZSBpZig1Nj09KDB8cGUpKXtpZigoMHxjKTwzKXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW0Q+PjJdXShsLEEpKSl7YVtwPj4yXT1BLG09MDticmVhayBlfUE9NH1l''@;'; + put 'put ''bHNlIGlmKDU5PT0oMHxwZSkpe2lmKCgwfGMpPDQpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbUj4+Ml1dKGwsQSkpKXthW3A+PjJdPUEsbT0wO2JyZWFrIGV9QT01fWVsc2UgaWYoNjI9PSgwfHBlKSl7YVtwPj4yXT1BLG09MDticmVhayBlfW09MHxKeShsLG0rQXwwLGYscCk7YnJl''@;'; + put 'put ''YWsgZX1pZig2ND09KDB8cGUpKXthW3A+PjJdPW0rMSxtPTI7YnJlYWt9aWYoKEstKEE9bSsxfDApfDApPjApe2lmKDYyPT0oMHxmZVtBPj4wXSkpe2FbcD4+Ml09bSsyLG09NDticmVha31hW3A+PjJdPUEsbT0wO2JyZWFrfW09LTF9ZWxzZSBtPS0xfXdoaWxlKDApO3JldHVybiAwfG19ZnVu''@;'; + put 'put ''Y3Rpb24gb2oobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDtlOmRve2lmKChmLWN8MCk+MCl7aWYoNDUhPSgwfGZlW2M+PjBdKSl7YVtwPj4yXT1jLGY9MDticmVha31tPWwrNzJ8MCxBPWwrMzUyfDAsdz1sKzM1NnwwLGI9bCszNjB8MCxrPWMr''@;'; + put 'put ''MXwwO3Q6Zm9yKDs7KXtpZigoMHwoYz1mLWt8MCkpPD0wKXtmPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbbSsoMHxKdFtrPj4wXSk+PjBdKXtjYXNlIDg6Y2FzZSAxOmNhc2UgMDpjPTE5O2JyZWFrIHQ7Y2FzZSA1OmlmKCgwfGMpPDIpe2Y9LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW0E+PjJd''@;'; + put 'put ''XShsLGspKXtjPTk7YnJlYWsgdH1rPWsrMnwwO2NvbnRpbnVlIHQ7Y2FzZSA2OmlmKCgwfGMpPDMpe2Y9LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW3c+PjJdXShsLGspKXtjPTEzO2JyZWFrIHR9az1rKzN8MDtjb250aW51ZSB0O2Nhc2UgNzppZigoMHxjKTw0KXtmPS0yO2JyZWFrIGV9aWYo''@;'; + put 'put ''MHxCaVsxMjcmYVtiPj4yXV0obCxrKSl7Yz0xNzticmVhayB0fWs9ays0fDA7Y29udGludWUgdDtjYXNlIDI3OmlmKChmLShjPWsrMXwwKXwwKTw9MCl7Zj0tMTticmVhayBlfWlmKDQ1PT0oMHxmZVtjPj4wXSkpe2M9MjI7YnJlYWsgdH1rPWM7Y29udGludWUgdDtkZWZhdWx0Oms9aysxfDA7''@;'; + put 'put ''Y29udGludWUgdH19aWYoOT09KDB8Yykpe2FbcD4+Ml09ayxmPTA7YnJlYWt9aWYoMTM9PSgwfGMpKXthW3A+PjJdPWssZj0wO2JyZWFrfWlmKDE3PT0oMHxjKSl7YVtwPj4yXT1rLGY9MDticmVha31pZigxOT09KDB8Yykpe2FbcD4+Ml09ayxmPTA7YnJlYWt9aWYoMjI9PSgwfGMpKXtpZigo''@;'; + put 'put ''Zi0oYz1rKzJ8MCl8MCk8PTApe2Y9LTE7YnJlYWt9aWYoNjI9PSgwfGZlW2M+PjBdKSl7YVtwPj4yXT1rKzMsZj0xMzticmVha31hW3A+PjJdPWMsZj0wO2JyZWFrfX1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBhaihsLGMsZil7aWYoZnw9MCwoKGN8PTApLShsfD0w''@;'; + put 'put ''KXwwKT41KXtmb3IoYz0wOzspe2lmKCgwfGMpPj02KXtjPTg7YnJlYWt9aWYoKDB8ZmVbbD4+MF0pIT0oMHxmZVsxNDQzMDArYz4+MF0pKXtjPTA7YnJlYWt9Yz1jKzF8MCxsPWwrMXwwfWFbZj4+Ml09bH1lbHNlIGM9LTE7cmV0dXJuIDB8Y31mdW5jdGlvbiB0TChsLGMsZixwKXtsfD0wLHB8''@;'; + put 'put ''PTA7dmFyIEQsUixHLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO0c9YWUsYWU9YWUrMTZ8MCxSPUcsZj0oRD1mfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfGYpPjApe3N3aXRjaCgwfGZlWyhNPWwrNzJ8MCkrKDB8SnRbYz4+MF0pPj4wXSl7Y2FzZSAyOTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7''@;'; + put 'put ''YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6Zj0xO2JyZWFrO2Nhc2UgNTppZigoMHxmKTwyKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQwPj4yXV0obCxjKSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1mPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfGYpPDMpe2Y9LTI7YnJlYWsgZX1p''@;'; + put 'put ''ZighKDB8QmlbMTI3JmFbbCszNDQ+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWY9MzticmVhaztjYXNlIDc6aWYoKDB8Zik8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0OD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9Zj00fUE9bCszMjh8''@;'; + put 'put ''MCx3PWwrMzMyfDAsYj1sKzMzNnwwLGY9YytmfDA7dDpmb3IoOzspe2lmKCgwfChtPUQtZnwwKSk8PTApe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtNKygwfEp0W2Y+PjBdKT4+MF0pe2Nhc2UgMjk6az0xNzticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6az0yODticmVhayB0O2Nh''@;'; + put 'put ''c2UgMTU6az01MDticmVhayB0O2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjptPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfG0pPDIpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbQT4+Ml1dKGwsZikpKXtrPTIwO2JyZWFrIHR9bT0yO2JyZWFrO2Nhc2UgNjppZigo''@;'; + put 'put ''MHxtKTwzKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW3c+PjJdXShsLGYpKSl7az0yMzticmVhayB0fW09MzticmVhaztjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtiPj4yXV0obCxmKSkpe2s9MjY7YnJlYWsgdH1tPTQ7YnJlYWs7ZGVmYXVs''@;'; + put 'put ''dDpicmVhayB0fWY9ZittfDB9aWYoMTc9PSgwfGspKXthW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDIwPT0oMHxrKSl7YVtwPj4yXT1mLGY9MDticmVha31pZigyMz09KDB8aykpe2FbcD4+Ml09ZixmPTA7YnJlYWt9aWYoMjY9PSgwfGspKXthW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDI4PT0oMHxr''@;'; + put 'put ''KSl7aWYoISgwfGxqKGMsZixSKSkpe2FbcD4+Ml09ZixmPTA7YnJlYWt9QT1sKzM1MnwwLHc9bCszNTZ8MCxiPWwrMzYwfDAsbT1mKzF8MDt0OmZvcig7Oyl7aWYoKDB8KGY9RC1tfDApKTw9MCl7Zj0tMTticmVhayBlfXN3aXRjaCgwfGZlW00rKDB8SnRbbT4+MF0pPj4wXSl7Y2FzZSA4OmNh''@;'; + put 'put ''c2UgMTpjYXNlIDA6az00NTticmVhayB0O2Nhc2UgNTppZigoMHxmKTwyKXtmPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtBPj4yXV0obCxtKSl7az0zNTticmVhayB0fW09bSsyfDA7Y29udGludWUgdDtjYXNlIDY6aWYoKDB8Zik8Myl7Zj0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbdz4+''@;'; + put 'put ''Ml1dKGwsbSkpe2s9Mzk7YnJlYWsgdH1tPW0rM3wwO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfGYpPDQpe2Y9LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW2I+PjJdXShsLG0pKXtrPTQzO2JyZWFrIHR9bT1tKzR8MDtjb250aW51ZSB0O2Nhc2UgMTU6aWYoKEQtKGY9bSsxfDApfDApPD0wKXtm''@;'; + put 'put ''PS0xO2JyZWFrIGV9aWYoNjI9PSgwfGZlW2Y+PjBdKSl7az00ODticmVhayB0fW09Zjtjb250aW51ZSB0O2RlZmF1bHQ6bT1tKzF8MDtjb250aW51ZSB0fX1pZigzNT09KDB8aykpe2FbcD4+Ml09bSxmPTA7YnJlYWt9aWYoMzk9PSgwfGspKXthW3A+PjJdPW0sZj0wO2JyZWFrfWlmKDQzPT0o''@;'; + put 'put ''MHxrKSl7YVtwPj4yXT1tLGY9MDticmVha31pZig0NT09KDB8aykpe2FbcD4+Ml09bSxmPTA7YnJlYWt9aWYoNDg9PSgwfGspKXthW3A+PjJdPW0rMixmPTB8YVtSPj4yXTticmVha319ZWxzZSBpZig1MD09KDB8aykpe2lmKCEoMHxsaihjLGYsUikpKXthW3A+PjJdPWYsZj0wO2JyZWFrfWlm''@;'; + put 'put ''KChELShtPWYrMXwwKXwwKTw9MCl7Zj0tMTticmVha31pZig2Mj09KDB8ZmVbbT4+MF0pKXthW3A+PjJdPWYrMixmPTB8YVtSPj4yXTticmVha31mPW19YVtwPj4yXT1mLGY9MH1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIGFlPUcsMHxmfWZ1bmN0aW9uIEZ2ZShsLGMsZixwKXtsfD0wLHB8''@;'; + put 'put ''PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7bT0oZnw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHxtKT4wKXtzd2l0Y2goMHxmZVsoaz1sKzcyfDApKygwfEp0W2M+PjBdKT4+MF0pe2Nhc2UgMjk6ZGVmYXVsdDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOm09MTticmVh''@;'; + put 'put ''aztjYXNlIDU6aWYoKDB8bSk8Mil7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0MD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9bT0yO2JyZWFrO2Nhc2UgNjppZigoMHxtKTwzKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQ0Pj4yXV0obCxjKSkp''@;'; + put 'put ''e2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1tPTM7YnJlYWs7Y2FzZSA3OmlmKCgwfG0pPDQpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDg+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfW09NH1BPWwrMzI4fDAsdz1sKzMzMnwwLGI9bCszMzZ8MCxtPWMrbXwwO3Q6''@;'; + put 'put ''Zm9yKDs7KXtpZigoMHwoYz1mLW18MCkpPD0wKXtmPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbaysoMHxKdFttPj4wXSk+PjBdKXtjYXNlIDI5OkE9MTc7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOkE9Mjc7YnJlYWsgdDtjYXNlIDExOkE9MzI7YnJlYWsgdDtjYXNlIDIzOmNhc2Ug''@;'; + put 'put ''Mjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpjPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfGMpPDIpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbQT4+Ml1dKGwsbSkpKXtBPTIwO2JyZWFrIHR9Yz0yO2JyZWFrO2Nhc2UgNjppZigoMHxjKTwzKXtmPS0yO2JyZWFrIGV9aWYo''@;'; + put 'put ''ISgwfEJpWzEyNyZhW3c+PjJdXShsLG0pKSl7QT0yMzticmVhayB0fWM9MzticmVhaztjYXNlIDc6aWYoKDB8Yyk8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtiPj4yXV0obCxtKSkpe0E9MjY7YnJlYWsgdH1jPTQ7YnJlYWs7ZGVmYXVsdDpBPTMzO2JyZWFrIHR9bT1tK2N8MH1p''@;'; + put 'put ''ZigxNz09KDB8QSkpe2FbcD4+Ml09bSxmPTA7YnJlYWt9aWYoMjA9PSgwfEEpKXthW3A+PjJdPW0sZj0wO2JyZWFrfWlmKDIzPT0oMHxBKSl7YVtwPj4yXT1tLGY9MDticmVha31pZigyNj09KDB8QSkpe2FbcD4+Ml09bSxmPTA7YnJlYWt9aWYoMjc9PSgwfEEpKXt0OmZvcig7Oyl7aWYoKGYt''@;'; + put 'put ''KGM9bSsxfDApfDApPD0wKXtmPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbaysoMHxKdFtjPj4wXSk+PjBdKXtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOm09YyxBPTI3O2JyZWFrO2Nhc2UgMTE6QT0yOTticmVhayB0O2RlZmF1bHQ6QT0zMDticmVhayB0fX1pZigyOT09KDB8QSkpe2FbcD4+Ml09''@;'; + put 'put ''bSsyLGY9NTticmVha31pZigzMD09KDB8QSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9fWVsc2V7aWYoMzI9PSgwfEEpKXthW3A+PjJdPW0rMSxmPTU7YnJlYWt9aWYoMzM9PSgwfEEpKXthW3A+PjJdPW0sZj0wO2JyZWFrfX19ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24g''@;'; + put 'put ''SnkobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIGIsayxNLEQsUixHLEsscGUsZ2UsYmUsT2UsTGUsSGUsbT0wLEE9MCx3PTAsUmU9MDtIZT1hZSxhZT1hZSsxNnwwLGFbKE9lPUhlKT4+Ml09Y3w9MCxMZT1mLEs9bCs3MnwwLHBlPWwrMzI4fDAsZ2U9bCszMzJ8MCxiZT1sKzMzNnwwLGI9''@;'; + put 'put ''bCszNDB8MCxrPWwrMzQ0fDAsTT1sKzM0OHwwLEQ9bCszNTJ8MCxSPWwrMzU2fDAsRz1sKzM2MHwwLEE9MDtlOmZvcig7Oyl7aWYoKDB8KG09TGUtY3wwKSk8PTApe2M9LTE7YnJlYWt9dDpkb3tzd2l0Y2goMHxmZVtLKygwfEp0W2M+PjBdKT4+MF0pe2Nhc2UgMjk6UmU9NDticmVhayBlO2Nh''@;'; + put 'put ''c2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjphW09lPj4yXT1tPWMrMXwwLGM9bSxBPXc9QTtjb250aW51ZSBlO2Nhc2UgNTppZigoMHxtKTwyKXtjPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW3BlPj4yXV0obCxjKSkpe1JlPTg7YnJlYWsgZX1hW09lPj4yXT1tPWMr''@;'; + put 'put ''MnwwLGM9bSxBPXc9QTtjb250aW51ZSBlO2Nhc2UgNjppZigoMHxtKTwzKXtjPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2dlPj4yXV0obCxjKSkpe1JlPTEyO2JyZWFrIGV9YVtPZT4+Ml09bT1jKzN8MCxjPW0sQT13PUE7Y29udGludWUgZTtjYXNlIDc6aWYoKDB8bSk8NCl7Yz0tMjti''@;'; + put 'put ''cmVhayBlfWlmKCEoMHxCaVsxMjcmYVtiZT4+Ml1dKGwsYykpKXtSZT0xNjticmVhayBlfWFbT2U+PjJdPW09Yys0fDAsYz1tLEE9dz1BO2NvbnRpbnVlIGU7Y2FzZSAyMzppZigwfEEpe1JlPTE5O2JyZWFrIGV9aWYoYVtPZT4+Ml09bT1jKzF8MCwoMHwoQT1MZS1tfDApKTw9MCl7Yz0tMTti''@;'; + put 'put ''cmVhayBlfXN3aXRjaCgwfGZlW0srKDB8SnRbbT4+MF0pPj4wXSl7Y2FzZSAyOTpSZT0yMjticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjphW09lPj4yXT13PWMrMnwwLEE9MSxjPXc7Y29udGludWUgZTtjYXNlIDU6aWYoKDB8QSk8Mil7Yz0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtiPj4y''@;'; + put 'put ''XV0obCxtKSkpe1JlPTI2O2JyZWFrIGV9YVtPZT4+Ml09dz1jKzN8MCxBPTEsYz13O2NvbnRpbnVlIGU7Y2FzZSA2OmlmKCgwfEEpPDMpe2M9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbaz4+Ml1dKGwsbSkpKXtSZT0zMDticmVhayBlfWFbT2U+PjJdPXc9Yys0fDAsQT0xLGM9dztjb250''@;'; + put 'put ''aW51ZSBlO2Nhc2UgNzppZigoMHxBKTw0KXtjPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW00+PjJdXShsLG0pKSl7UmU9MzQ7YnJlYWsgZX1hW09lPj4yXT13PWMrNXwwLEE9MSxjPXc7Y29udGludWUgZTtkZWZhdWx0OlJlPTM2O2JyZWFrIGV9Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpm''@;'; + put 'put ''b3IoOzspe2lmKGFbT2U+PjJdPWM9YysxfDAsKExlLWN8MCk8PTApe2M9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtLKygwfEp0W2M+PjBdKT4+MF0pe2Nhc2UgMTQ6YnJlYWsgdDtjYXNlIDk6Y2FzZSAxMDpjYXNlIDIxOmJyZWFrO2RlZmF1bHQ6UmU9Mzk7YnJlYWsgZX19Y2FzZSAxNDpicmVh''@;'; + put 'put ''aztkZWZhdWx0OlJlPTkyO2JyZWFrIGV9fXdoaWxlKDApO2Zvcig7Oyl7aWYoYVtPZT4+Ml09bT1jKzF8MCwoTGUtbXwwKTw9MCl7Yz0tMTticmVhayBlfWlmKCgxfCh3PTB8ZmVbSysoMHxKdFttPj4wXSk+PjBdKSk8PDI0Pj4yND09MTMpYnJlYWs7c3dpdGNoKHc8PDI0Pj4yNCl7Y2FzZSA5''@;'; + put 'put ''OmNhc2UgMTA6Y2FzZSAyMTpjPW07YnJlYWs7ZGVmYXVsdDpSZT00MzticmVhayBlfX1hW09lPj4yXT1jPWMrMnwwO3Q6Zm9yKDs7KXtpZigoMHwobT1MZS1jfDApKTw9MCl7Yz0tMTticmVhayBlfWlmKChBPTB8ZmVbSysoMHxKdFtjPj4wXSk+PjBdKTw8MjQ+PjI0PT13PDwyND4+MjQpYnJl''@;'; + put 'put ''YWs7c3dpdGNoKEE8PDI0Pj4yNCl7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6UmU9NjA7YnJlYWsgZTtjYXNlIDI6UmU9NjU7YnJlYWsgZTtjYXNlIDU6aWYoKDB8bSk8Mil7Yz0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbRD4+Ml1dKGwsYykpe1JlPTUwO2JyZWFrIGV9YVtPZT4+Ml09QT1jKzJ8''@;'; + put 'put ''MCxjPUE7Y29udGludWUgdDtjYXNlIDY6aWYoKDB8bSk8Myl7Yz0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbUj4+Ml1dKGwsYykpe1JlPTU0O2JyZWFrIGV9YVtPZT4+Ml09QT1jKzN8MCxjPUE7Y29udGludWUgdDtjYXNlIDc6aWYoKDB8bSk8NCl7Yz0tMjticmVhayBlfWlmKDB8QmlbMTI3''@;'; + put 'put ''JmFbRz4+Ml1dKGwsYykpe1JlPTU4O2JyZWFrIGV9YVtPZT4+Ml09QT1jKzR8MCxjPUE7Y29udGludWUgdDtjYXNlIDM6aWYoKDB8KGM9MHxlTChsLGMrMXwwLGYsT2UpKSk8MSl7UmU9NjM7YnJlYWsgZX1jPTB8YVtPZT4+Ml07Y29udGludWUgdDtkZWZhdWx0OmFbT2U+PjJdPUE9YysxfDAs''@;'; + put 'put ''Yz1BO2NvbnRpbnVlIHR9fWlmKGFbT2U+PjJdPW09YysxfDAsKExlLW18MCk8PTApe2M9LTE7YnJlYWt9c3dpdGNoKDB8ZmVbSysoMHxKdFttPj4wXSk+PjBdKXtjYXNlIDExOlJlPTg2O2JyZWFrIGU7Y2FzZSAxNzpSZT04NzticmVhayBlO2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6Yz1tO2Jy''@;'; + put 'put ''ZWFrO2RlZmF1bHQ6UmU9Njk7YnJlYWsgZX10OmZvcig7Oyl7aWYoYVtPZT4+Ml09bT1jKzF8MCwoMHwoQT1MZS1tfDApKTw9MCl7Yz0tMTticmVhayBlfXN3aXRjaCgwfGZlW0srKDB8SnRbbT4+MF0pPj4wXSl7Y2FzZSAyOTpSZT03MjticmVhayBlO2Nhc2UgMTE6UmU9ODY7YnJlYWsgZTtj''@;'; + put 'put ''YXNlIDE3OlJlPTg3O2JyZWFrIGU7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpjPW07YnJlYWs7Y2FzZSAyNDpjYXNlIDIyOlJlPTczO2JyZWFrIHQ7Y2FzZSA1OlJlPTc0O2JyZWFrIHQ7Y2FzZSA2OlJlPTc4O2JyZWFrIHQ7Y2FzZSA3OlJlPTgyO2JyZWFrIHQ7ZGVmYXVsdDpSZT05MTticmVh''@;'; + put 'put ''ayBlfX1pZig3MyE9KDB8UmUpKWlmKDc0IT0oMHxSZSkpaWYoNzghPSgwfFJlKSlpZig4MiE9KDB8UmUpKTtlbHNle2lmKFJlPTAsKDB8QSk8NCl7Yz0tMjticmVha31pZighKDB8QmlbMTI3JmFbTT4+Ml1dKGwsbSkpKXtSZT04NDticmVha31hW09lPj4yXT1jPWMrNXwwLEE9MH1lbHNle2lm''@;'; + put 'put ''KFJlPTAsKDB8QSk8Myl7Yz0tMjticmVha31pZighKDB8QmlbMTI3JmFbaz4+Ml1dKGwsbSkpKXtSZT04MDticmVha31hW09lPj4yXT1jPWMrNHwwLEE9MH1lbHNle2lmKFJlPTAsKDB8QSk8Mil7Yz0tMjticmVha31pZighKDB8QmlbMTI3JmFbYj4+Ml1dKGwsbSkpKXtSZT03NjticmVha31h''@;'; + put 'put ''W09lPj4yXT1jPWMrM3wwLEE9MH1lbHNlIFJlPTAsYVtPZT4+Ml09Yz1jKzJ8MCxBPTB9c3dpdGNoKDB8UmUpe2Nhc2UgNDpjYXNlIDg6Y2FzZSAxMjpjYXNlIDE2OmNhc2UgMTk6Y2FzZSAzOTpjYXNlIDUwOmNhc2UgNTQ6Y2FzZSA1ODpjYXNlIDYwOmNhc2UgNjU6Y2FzZSA5MjphW3A+PjJd''@;'; + put 'put ''PWMsYz0wO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyNjpjYXNlIDMwOmNhc2UgMzQ6Y2FzZSAzNjpjYXNlIDQzOmNhc2UgNjk6Y2FzZSA3MjpjYXNlIDc2OmNhc2UgODA6Y2FzZSA4NDpjYXNlIDkxOmFbcD4+Ml09bSxjPTA7YnJlYWs7Y2FzZSA2MzpjfHwoYVtwPj4yXT1hW09lPj4yXSxjPTApO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgODY6YVtwPj4yXT1jKzIsYz0xO2JyZWFrO2Nhc2UgODc6aWYoYVtPZT4+Ml09Yz1tKzF8MCwoTGUtY3wwKT4wKXtpZig2Mj09KDB8ZmVbYz4+MF0pKXthW3A+PjJdPW0rMixjPTM7YnJlYWt9YVtwPj4yXT1jLGM9MDticmVha31jPS0xfXJldHVybiBhZT1IZSwwfGN9ZnVuY3Rp''@;'; + put 'put ''b24gbGoobCxjLGYpe2x8PTAsY3w9MCxhWyhmfD0wKT4+Ml09MTE7ZTpkb3tpZigzPT0oYy1sfDApKXtzd2l0Y2goMHxmZVtsPj4wXSl7Y2FzZSAxMjA6Yz0wO2JyZWFrO2Nhc2UgODg6Yz0xO2JyZWFrO2RlZmF1bHQ6Yz0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbbCsxPj4wXSl7Y2FzZSAxMDk6''@;'; + put 'put ''YnJlYWs7Y2FzZSA3NzpjPTE7YnJlYWs7ZGVmYXVsdDpjPTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtsKzI+PjBdKXtjYXNlIDEwODpicmVhaztjYXNlIDc2OmM9MDticmVhayBlO2RlZmF1bHQ6Yz0xO2JyZWFrIGV9Yz9jPTA6KGFbZj4+Ml09MTIsYz0xKX1lbHNlIGM9MX13aGlsZSgwKTtyZXR1''@;'; + put 'put ''cm4gMHxjfWZ1bmN0aW9uIHAxZShsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGIsayxNLEQsQT0wLHc9MCxSPTA7Yj03MisoY3w9MCl8MCxrPWMrMzUyfDAsTT1jKzM1NnwwLEQ9YyszNjB8MDtlOmZvcig7Oyl7aWYoKDB8KEE9cC1mfDApKTw9MCl7cD0tMTticmVha31zd2l0''@;'; + put 'put ''Y2goKHc9MHxmZVtiKygwfEp0W2Y+PjBdKT4+MF0pPDwyND4+MjQpe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOlI9MTY7YnJlYWsgZTtjYXNlIDU6aWYoKDB8QSk8Mil7cD0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbaz4+Ml1dKGMsZikpe1I9NjticmVhayBlfWY9ZisyfDA7Y29udGludWUgZTtj''@;'; + put 'put ''YXNlIDY6aWYoKDB8QSk8Myl7cD0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbTT4+Ml1dKGMsZikpe1I9MTA7YnJlYWsgZX1mPWYrM3wwO2NvbnRpbnVlIGU7Y2FzZSA3OmlmKCgwfEEpPDQpe3A9LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW0Q+PjJdXShjLGYpKXtSPTE0O2JyZWFrIGV9Zj1m''@;'; + put 'put ''KzR8MDtjb250aW51ZSBlO2Nhc2UgMTM6Y2FzZSAxMjppZihmPWYrMXwwLCgyNTUmd3wwKT09KDB8bCkpe1I9MTg7YnJlYWsgZX1jb250aW51ZSBlO2RlZmF1bHQ6Zj1mKzF8MDtjb250aW51ZSBlfX1lOmRve2lmKDY9PSgwfFIpKWFbbT4+Ml09ZixwPTA7ZWxzZSBpZigxMD09KDB8UikpYVtt''@;'; + put 'put ''Pj4yXT1mLHA9MDtlbHNlIGlmKDE0PT0oMHxSKSlhW20+PjJdPWYscD0wO2Vsc2UgaWYoMTY9PSgwfFIpKWFbbT4+Ml09ZixwPTA7ZWxzZSBpZigxOD09KDB8UikpaWYoKHAtZnwwKT4wKXtzd2l0Y2goYVttPj4yXT1mLDB8ZmVbYisoMHxKdFtmPj4wXSk+PjBdKXtjYXNlIDIwOmNhc2UgMzA6''@;'; + put 'put ''Y2FzZSAxMTpjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOnA9Mjc7YnJlYWsgZX1wPTB9ZWxzZSBwPS0yN313aGlsZSgwKTtyZXR1cm4gMHxwfWZ1bmN0aW9uIGcxZShsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgbSxBPTAsdz0wO209Znw9MDtlOmRve2lmKChtLWN8MCk+MClzd2l0Y2goQT1s''@;'; + put 'put ''KzcyfDAsMHxmZVtBKygwfEp0W2M+PjBdKT4+MF0pe2Nhc2UgMjc6bD0wfG9qKGwsYysxfDAsZixwKTticmVhayBlO2Nhc2UgMjA6YVtwPj4yXT1jKzEsbD0zMzticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjp0OmZvcig7Oyl7aWYoKDB8KGY9bS0obD1jKzF8MCl8MCkpPD0wKXtsPS0xO2JyZWFr''@;'; + put 'put ''IGV9c3dpdGNoKDB8ZmVbQSsoMHxKdFtsPj4wXSk+PjBdKXtjYXNlIDI0OmNhc2UgMjI6Yz1sO2JyZWFrO2Nhc2UgMzA6dz04O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpicmVhayB0O2RlZmF1bHQ6dz0xMjticmVhayB0fX1pZigxMj09KDB8dykpe2FbcD4+Ml09bCxsPTA7YnJl''@;'; + put 'put ''YWsgZX10OmRve2lmKDg9PSgwfHcpKXtpZigoMHxmKTw9MSl7bD0tMTticmVhayBlfXN3aXRjaCgwfGZlW0ErKDB8SnRbYysyPj4wXSk+PjBdKXtjYXNlIDMwOmNhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6YnJlYWs7ZGVmYXVsdDpicmVhayB0fWFbcD4+Ml09bCxsPTA7YnJlYWsgZX19d2hpbGUo''@;'; + put 'put ''MCk7YVtwPj4yXT1sLGw9MTY7YnJlYWsgZTtkZWZhdWx0OmFbcD4+Ml09YyxsPTA7YnJlYWsgZX1lbHNlIGw9LTF9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBQSyhsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7bT0oZnw9MCktKGN8PTApfDA7ZTpkb3tp''@;'; + put 'put ''ZigoMHxtKT4wKXtzd2l0Y2goMHxmZVsoaz1sKzcyfDApKygwfEp0W2M+PjBdKT4+MF0pe2Nhc2UgMjk6ZGVmYXVsdDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOm09MTticmVhaztjYXNlIDU6aWYoKDB8bSk8Mil7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVts''@;'; + put 'put ''KzM0MD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9bT0yO2JyZWFrO2Nhc2UgNjppZigoMHxtKTwzKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQ0Pj4yXV0obCxjKSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1tPTM7YnJlYWs7Y2FzZSA3OmlmKCgwfG0pPDQp''@;'; + put 'put ''e2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDg+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfW09NH1BPWwrMzI4fDAsdz1sKzMzMnwwLGI9bCszMzZ8MCxjPWMrbXwwO3Q6Zm9yKDs7KXtpZigoMHwobT1mLWN8MCkpPD0wKXtmPS0yMDticmVhayBlfXN3aXRjaCgw''@;'; + put 'put ''fGZlW2srKDB8SnRbYz4+MF0pPj4wXSl7Y2FzZSAyOTptPTE3O2JyZWFrIHQ7Y2FzZSAzNjpjYXNlIDMwOmNhc2UgMTE6Y2FzZSAzMjpjYXNlIDIxOmNhc2UgMTA6Y2FzZSA5Om09Mjg7YnJlYWsgdDtjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6bT0xO2JyZWFrO2Nh''@;'; + put 'put ''c2UgNTppZigoMHxtKTwyKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW0E+PjJdXShsLGMpKSl7bT0yMDticmVhayB0fW09MjticmVhaztjYXNlIDY6aWYoKDB8bSk8Myl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVt3Pj4yXV0obCxjKSkpe209MjM7YnJlYWsgdH1tPTM7YnJl''@;'; + put 'put ''YWs7Y2FzZSA3OmlmKCgwfG0pPDQpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbYj4+Ml1dKGwsYykpKXttPTI2O2JyZWFrIHR9bT00O2JyZWFrO2RlZmF1bHQ6bT0yOTticmVhayB0fWM9YyttfDB9aWYoMTc9PSgwfG0pKXthW3A+PjJdPWMsZj0wO2JyZWFrfWlmKDIwPT0oMHxtKSl7''@;'; + put 'put ''YVtwPj4yXT1jLGY9MDticmVha31pZigyMz09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjY9PSgwfG0pKXthW3A+PjJdPWMsZj0wO2JyZWFrfWlmKDI4PT0oMHxtKSl7YVtwPj4yXT1jLGY9MjA7YnJlYWt9aWYoMjk9PSgwfG0pKXthW3A+PjJdPWMsZj0wO2JyZWFrfX1lbHNlIGY9''@;'; + put 'put ''LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBmMChsLGMpe2N8PTA7dmFyIGY9MDtzd2l0Y2goKGx8PTApPDwyND4+MjQpe2Nhc2UtMzc6Y2FzZS0zODpjYXNlLTM5OmNhc2UtNDA6bD03O2JyZWFrO2Nhc2UtMzM6Y2FzZS0zNDpjYXNlLTM1OmNhc2UtMzY6bD04O2JyZWFrO2Nhc2Ut''@;'; + put 'put ''MTooMjU1JmMpPjI1Mz9sPTA6Zj00O2JyZWFrO2RlZmF1bHQ6Zj00fXJldHVybiA0PT0oMHxmKSYmKGw9MjkpLDB8bH1mdW5jdGlvbiBuTChsLGMsZixwKXtsfD0wLHB8PTA7dmFyIGssbT0wLEE9MCx3PTAsYj0wO3c9KGs9Znw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHx3KT4xKXtzd2l0Y2go''@;'; + put 'put ''MHwobT0oYj0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjPj4wXSk6MHxKdFtsKzcyKygyNTUmKEE9MHxmZVtjPj4wXSkpPj4wXSkpe2Nhc2UgMjk6aWYoISgxPDwoMzEmKHc9MjU1JkEpKSZhWzU2OTQwKygodz4+PjV8KDB8SnRbMTQzNzg4KygyNTUmYik+PjBdKTw8Myk8''@;'; + put 'put ''PDIpPj4yXSkpe2FbcD4+Ml09YyxsPTA7YnJlYWsgZX1icmVhaztjYXNlIDI0OmNhc2UgMjI6YnJlYWs7Y2FzZSA1OmRlZmF1bHQ6YVtwPj4yXT1jLGw9MDticmVhayBlO2Nhc2UgNjppZigoMHx3KTwzKXtsPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGw9MDticmVhayBlO2Nhc2UgNzppZigoMHx3''@;'; + put 'put ''KTw0KXtsPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGw9MDticmVhayBlO2Nhc2UgMTk6bD0wfE0xZShsLGMrMnwwLGYscCk7YnJlYWsgZX1iPWwrNzJ8MCx3PWM7dDpmb3IoOzspe2lmKCgwfChjPWstKEE9dysyfDApfDApKTw9MSl7bD0tMTticmVhayBlfXN3aXRjaChtPTB8ZmVbQT4+MF0sMHwo''@;'; + put 'put ''Zj0obD0wfGZlW3crMz4+MF0pPDwyND4+MjQ/MHxmMChsLG0pOjB8SnRbYisoMjU1Jm0pPj4wXSkpe2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjp3PUE7Y29udGludWUgdDtjYXNlIDU6bT0yMzticmVhayB0O2Nhc2UgNjptPTI0O2JyZWFrIHQ7Y2FzZSA3Om09MjY7''@;'; + put 'put ''YnJlYWsgdDtjYXNlIDE4Om09Mjg7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6bT0yOTticmVhayB0fWlmKCEoMTw8KDMxJihjPTI1NSZtKSkmYVs1Njk0MCsoKGM+Pj41fCgwfEp0WzE0NDA0NCsoMjU1JmwpPj4wXSk8PDMpPDwyKT4+Ml0pKXttPTIyO2JyZWFrfXc9QX1pZigyMj09''@;'; + put 'put ''KDB8bSkpe2FbcD4+Ml09QSxsPTA7YnJlYWt9aWYoMjM9PSgwfG0pKXthW3A+PjJdPUEsbD0wO2JyZWFrfWlmKDI0PT0oMHxtKSl7aWYoKDB8Yyk8Myl7bD0tMjticmVha31hW3A+PjJdPUEsbD0wO2JyZWFrfWlmKDI2PT0oMHxtKSl7aWYoKDB8Yyk8NCl7bD0tMjticmVha31hW3A+PjJdPUEs''@;'; + put 'put ''bD0wO2JyZWFrfWlmKDI4PT0oMHxtKSl7YVtwPj4yXT13KzQsbD05O2JyZWFrfWlmKDI5PT0oMHxtKSl7YVtwPj4yXT1BLGw9MDticmVha319ZWxzZSBsPS0xfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gckwobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0w''@;'; + put 'put ''O3c9KGZ8PTApLShjfD0wKXwwO2U6ZG97aWYoKDB8dyk+MSl7c3dpdGNoKDB8KG09KGI9MHxmZVtjKzE+PjBdKTw8MjQ+PjI0PzB8ZjAoYixBPTB8ZmVbYz4+MF0pOjB8SnRbbCs3MisoMjU1JihBPTB8ZmVbYz4+MF0pKT4+MF0pKXtjYXNlIDI5OmlmKCEoMTw8KDMxJihrPTI1NSZBKSkmYVs1''@;'; + put 'put ''Njk0MCsoKGs+Pj41fCgwfEp0WzE0Mzc4OCsoMjU1JmIpPj4wXSk8PDMpPDwyKT4+Ml0pKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2Nhc2UgNTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDY6aWYoKDB8dyk8Myl7Zj0tMjti''@;'; + put 'put ''cmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDc6aWYoKDB8dyk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDMwOmNhc2UgOTpjYXNlIDEwOmNhc2UgMjE6YVtwPj4yXT1jLGY9MjI7YnJlYWsgZX1rPWwrNzJ8MCxsPWM7dDpmb3IoOzspe2lmKCgw''@;'; + put 'put ''fChjPWYtKGI9bCsyfDApfDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChBPTB8ZmVbYj4+MF0sMHwodz0obT0wfGZlW2wrMz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8SnRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpsPWI7Y29u''@;'; + put 'put ''dGludWUgdDtjYXNlIDU6bT0yMzticmVhayB0O2Nhc2UgNjptPTI0O2JyZWFrIHQ7Y2FzZSA3Om09MjY7YnJlYWsgdDtjYXNlIDE4Om09Mjg7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6bT0yOTticmVhayB0fWlmKCEoMTw8KDMxJihjPTI1NSZBKSkmYVs1Njk0MCsoKGM+Pj41fCgw''@;'; + put 'put ''fEp0WzE0NDA0NCsoMjU1Jm0pPj4wXSk8PDMpPDwyKT4+Ml0pKXttPTIyO2JyZWFrfWw9Yn1pZigyMj09KDB8bSkpe2FbcD4+Ml09YixmPTA7YnJlYWt9aWYoMjM9PSgwfG0pKXthW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDI0PT0oMHxtKSl7aWYoKDB8Yyk8Myl7Zj0tMjticmVha31hW3A+PjJd''@;'; + put 'put ''PWIsZj0wO2JyZWFrfWlmKDI2PT0oMHxtKSl7aWYoKDB8Yyk8NCl7Zj0tMjticmVha31hW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDI4PT0oMHxtKSl7YVtwPj4yXT1sKzQsZj0yODticmVha31pZigyOT09KDB8bSkpe2FbcD4+Ml09YixmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1''@;'; + put 'put ''cm4gMHxmfWZ1bmN0aW9uIE0xZShsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgYixtPTAsQT0wLHc9MDtiPWZ8PTA7ZTpkb3tpZigoYi1jfDApPjEpe0E9MHxmZVtjKzE+PjBdLG09MHxmZVtjPj4wXTtkb3tpZighKEE8PDI0Pj4yNCkpe2lmKG08PDI0Pj4yND09MTIwKXttPTB8RTFlKGws''@;'; + put 'put ''YysyfDAsZixwKTticmVhayBlfW09MHxKdFtsKzcyKygyNTUmbSk+PjBdO2JyZWFrfW09MHxmMChBLG0pfXdoaWxlKDApO2lmKDI1IT0oMHxtKSl7YVtwPj4yXT1jLG09MDticmVha313PWwrNzJ8MCxsPWM7dDpmb3IoOzspe2lmKChiLShBPWwrMnwwKXwwKTw9MSl7bT0tMTticmVhayBlfXN3''@;'; + put 'put ''aXRjaChmPTB8ZmVbQT4+MF0sMHwobT0obT0wfGZlW2wrMz4+MF0pPDwyND4+MjQ/MHxmMChtLGYpOjB8SnRbdysoMjU1JmYpPj4wXSkpe2Nhc2UgMjU6bD1BO2JyZWFrO2Nhc2UgMTg6Zj0xNTticmVhayB0O2RlZmF1bHQ6Zj0xNjticmVhayB0fX1pZigxNT09KDB8Zikpe2FbcD4+Ml09bCs0''@;'; + put 'put ''LG09MTA7YnJlYWt9aWYoMTY9PSgwfGYpKXthW3A+PjJdPUEsbT0wO2JyZWFrfX1lbHNlIG09LTF9d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiBFMWUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTA7ZTpkb3tpZigoZi1jfDApPjEpe2lmKDI0IT0oLTIm''@;'; + put 'put ''KG09KG09MHxmZVtjKzE+PjBdKTw8MjQ+PjI0PzB8ZjAobSwwfGZlW2M+PjBdKTowfEp0W2wrNzIrKDB8SnRbYz4+MF0pPj4wXSl8MCkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9dz1sKzcyfDA7dDpmb3IoOzspe2lmKChmLShBPWMrMnwwKXwwKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChsPTB8''@;'; + put 'put ''ZmVbQT4+MF0sMHwobT0obT0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChtLGwpOjB8SnRbdysoMjU1JmwpPj4wXSkpe2Nhc2UgMjQ6Y2FzZSAyNTpjPUE7YnJlYWs7Y2FzZSAxODptPTEzO2JyZWFrIHQ7ZGVmYXVsdDptPTE0O2JyZWFrIHR9fWlmKDEzPT0oMHxtKSl7YVtwPj4yXT1jKzQs''@;'; + put 'put ''Zj0xMDticmVha31pZigxND09KDB8bSkpe2FbcD4+Ml09QSxmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIGk0KGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MDt3PShSPWZ8PTApLShjfD0wKXwwO2U6''@;'; + put 'put ''ZG97aWYoKDB8dyk+MSl7c3dpdGNoKDB8KG09KGI9MHxmZVtjKzE+PjBdKTw8MjQ+PjI0PzB8ZjAoYixBPTB8ZmVbYz4+MF0pOjB8SnRbbCs3MisoMjU1JihBPTB8ZmVbYz4+MF0pKT4+MF0pKXtjYXNlIDI5OmlmKCEoMTw8KDMxJihNPTI1NSZBKSkmYVs1Njk0MCsoKE0+Pj41fEp0WzE0Mzc4''@;'; + put 'put ''OCsoMjU1JmIpPj4wXTw8Myk8PDIpPj4yXSkpe2FbcD4+Ml09YyxtPTA7YnJlYWsgZX1icmVhaztjYXNlIDI0OmNhc2UgMjI6YnJlYWs7Y2FzZSA1OmFbcD4+Ml09YyxtPTA7YnJlYWsgZTtjYXNlIDY6aWYoKDB8dyk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09YyxtPTA7YnJlYWsgZTtjYXNl''@;'; + put 'put ''IDc6aWYoKDB8dyk8NCl7bT0tMjticmVhayBlfWFbcD4+Ml09YyxtPTA7YnJlYWsgZTtjYXNlIDE2OmlmKChSLShBPWMrMnwwKXwwKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaCgwfChtPShtPTB8ZmVbYyszPj4wXSk8PDI0Pj4yND8wfGYwKG0sMHxmZVtBPj4wXSk6MHxKdFtsKzcyKygwfEp0''@;'; + put 'put ''W0E+PjBdKT4+MF0pKXtjYXNlIDI3Om09MHxqSyhsLGMrNHwwLGYscCk7YnJlYWsgZTtjYXNlIDIwOm09MHx4MWUoYys0fDAsZixwKTticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1BLG09MDticmVhayBlfWNhc2UgMTU6bT0wfFpLKGwsYysyfDAsZixwKTticmVhayBlO2Nhc2UgMTc6bT0wfFQx''@;'; + put 'put ''ZShsLGMrMnwwLGYscCk7YnJlYWsgZTtkZWZhdWx0OmFbcD4+Ml09YyxtPTA7YnJlYWsgZX1NPWwrNzJ8MCxrPTAsbT1jKzJ8MDt0OmZvcig7Oyl7bjpmb3IoOzspe2lmKCgwfChBPVItbXwwKSk8PTEpe209LTE7YnJlYWsgZX1zd2l0Y2goYj0wfGZlW20+PjBdLDB8KGM9KHc9MHxmZVttKzE+''@;'; + put 'put ''PjBdKTw8MjQ+PjI0PzB8ZjAodyxiKTowfEp0W00rKDI1NSZiKT4+MF0pKXtjYXNlIDU6RD0zNDticmVhayB0O2Nhc2UgNjpEPTM1O2JyZWFrIHQ7Y2FzZSA3OkQ9Mzc7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOkQ9NTU7YnJlYWsgdDtjYXNlIDExOkQ9Njk7YnJlYWsgdDtjYXNl''@;'; + put 'put ''IDE3OmJyZWFrIHQ7Y2FzZSAyMzpicmVhayBuO2Nhc2UgMjk6aWYoISgxPDwoMzEmKGM9MjU1JmIpKSZhWzU2OTQwKygoYz4+PjV8SnRbMTQ0MDQ0KygyNTUmdyk+PjBdPDwzKTw8Mik+PjJdKSl7RD0zMjticmVhayB0fWJyZWFrO2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2Fz''@;'; + put 'put ''ZSAyMjpicmVhaztkZWZhdWx0OkQ9NzU7YnJlYWsgdH1tPW0rMnwwfWlmKDB8ayl7RD00MDticmVha31pZigoMHwoYz1SLShiPW0rMnwwKXwwKSk8PTEpe209LTE7YnJlYWsgZX1zd2l0Y2goQT0wfGZlW2I+PjBdLDB8KHc9KGs9MHxmZVttKzM+PjBdKTw8MjQ+PjI0PzB8ZjAoayxBKTowfEp0''@;'; + put 'put ''W00rKDI1NSZBKT4+MF0pKXtjYXNlIDU6RD00OTticmVhayB0O2Nhc2UgNjpEPTUwO2JyZWFrIHQ7Y2FzZSA3OkQ9NTI7YnJlYWsgdDtjYXNlIDI5OmlmKCEoMTw8KDMxJihjPTI1NSZBKSkmYVs1Njk0MCsoKGM+Pj41fEp0WzE0Mzc4OCsoMjU1JmspPj4wXTw8Myk8PDIpPj4yXSkpe0Q9NDc7''@;'; + put 'put ''YnJlYWsgdH1icmVhaztjYXNlIDI0OmNhc2UgMjI6YnJlYWs7ZGVmYXVsdDpEPTU0O2JyZWFrIHR9az0xLG09bSs0fDB9dDpzd2l0Y2goMHxEKXtjYXNlIDMyOmNhc2UgMzQ6Y2FzZSA0MDpjYXNlIDc1OmFbcD4+Ml09bSxtPTA7YnJlYWsgZTtjYXNlIDM1OmlmKCgwfEEpPDMpe209LTI7YnJl''@;'; + put 'put ''YWsgZX1hW3A+PjJdPW0sbT0wO2JyZWFrIGU7Y2FzZSAzNzppZigoMHxBKTw0KXttPS0yO2JyZWFrIGV9YVtwPj4yXT1tLG09MDticmVhayBlO2Nhc2UgNDc6Y2FzZSA0OTpjYXNlIDU0OmFbcD4+Ml09YixtPTA7YnJlYWsgZTtjYXNlIDUwOmlmKCgwfGMpPDMpe209LTI7YnJlYWsgZX1hW3A+''@;'; + put 'put ''PjJdPWIsbT0wO2JyZWFrIGU7Y2FzZSA1MjppZigoMHxjKTw0KXttPS0yO2JyZWFrIGV9YVtwPj4yXT1iLG09MDticmVhayBlO2Nhc2UgNTU6bjpmb3IoOzspe2lmKEQ9MCwoMHwodz1SLShBPW0rMnwwKXwwKSk8PTEpe209LTE7YnJlYWsgZX1zd2l0Y2goYz0wfGZlW0E+PjBdLDB8KGs9KGI9''@;'; + put 'put ''MHxmZVttKzM+PjBdKTw8MjQ+PjI0PzB8ZjAoYixjKTowfEp0W00rKDI1NSZjKT4+MF0pKXtjYXNlIDExOm09QSxEPTY5O2JyZWFrIHQ7Y2FzZSAxNzptPUE7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOm09QSxEPTU1O2JyZWFrO2Nhc2UgMjk6RD02MDticmVhayBuO2Nhc2UgMjQ6''@;'; + put 'put ''Y2FzZSAyMjpicmVhayBuO2Nhc2UgNTpEPTYzO2JyZWFrIG47Y2FzZSA2OkQ9NjQ7YnJlYWsgbjtjYXNlIDc6RD02NjticmVhayBuO2RlZmF1bHQ6RD02ODticmVhayBufX1pZig2MD09KDB8RCkpe2lmKCEoMTw8KDMxJihSPTI1NSZjKSkmYVs1Njk0MCsoKFI+Pj41fEp0WzE0Mzc4OCsoMjU1''@;'; + put 'put ''JmIpPj4wXTw8Myk8PDIpPj4yXSkpe2FbcD4+Ml09QSxtPTA7YnJlYWsgZX19ZWxzZXtpZig2Mz09KDB8RCkpe2FbcD4+Ml09QSxtPTA7YnJlYWsgZX1pZig2ND09KDB8RCkpe2lmKCgwfHcpPDMpe209LTI7YnJlYWsgZX1hW3A+PjJdPUEsbT0wO2JyZWFrIGV9aWYoNjY9PSgwfEQpKXtpZigo''@;'; + put 'put ''MHx3KTw0KXttPS0yO2JyZWFrIGV9YVtwPj4yXT1BLG09MDticmVhayBlfWlmKDY4PT0oMHxEKSl7YVtwPj4yXT1BLG09MDticmVhayBlfX1tPTB8STFlKGwsbSs0fDAsZixwKTticmVhayBlfWlmKDY5PT0oMHxEKSl7YVtwPj4yXT1tKzIsbT0yO2JyZWFrfWlmKChSLShBPW0rMnwwKXwwKT4x''@;'; + put 'put ''KXtpZigwPT0oMHxmZVttKzM+PjBdKSYmNjI9PSgwfGZlW0E+PjBdKSl7YVtwPj4yXT1tKzQsbT00O2JyZWFrfWFbcD4+Ml09QSxtPTB9ZWxzZSBtPS0xfWVsc2UgbT0tMX13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIGpLKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciB3LG09MCxB''@;'; + put 'put ''PTAsYj0wO3c9Znw9MDtlOmRve2lmKCh3LWN8MCk+MSl7aWYoMD09KDB8ZmVbYysxPj4wXSkmJjQ1PT0oMHxmZVtjPj4wXSkpe0E9bCs3MnwwLG09YysyfDA7dDpmb3IoOzspe2lmKCgwfChjPXctbXwwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2gobD0wfGZlW20+PjBdLDB8KGY9KGY9MHxm''@;'; + put 'put ''ZVttKzE+PjBdKTw8MjQ+PjI0PzB8ZjAoZixsKTowfEp0W0ErKDI1NSZsKT4+MF0pKXtjYXNlIDg6Y2FzZSAxOmNhc2UgMDpiPTE2O2JyZWFrIHQ7Y2FzZSA1OmRlZmF1bHQ6bT1tKzJ8MDtjb250aW51ZSB0O2Nhc2UgNjppZigoMHxjKTwzKXtmPS0yO2JyZWFrIGV9bT1tKzN8MDtjb250aW51''@;'; + put 'put ''ZSB0O2Nhc2UgNzppZigoMHxjKTw0KXtmPS0yO2JyZWFrIGV9bT1tKzR8MDtjb250aW51ZSB0O2Nhc2UgMjc6aWYoKHctKGY9bSsyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMHxmZVttKzM+PjBdKXttPWY7Y29udGludWUgdH1pZig0NT09KDB8ZmVbZj4+MF0pKWJyZWFrIHQ7bT1mO2Nv''@;'; + put 'put ''bnRpbnVlIHR9fWlmKDE2PT0oMHxiKSl7YVtwPj4yXT1tLGY9MDticmVha31pZigody0oZj1tKzR8MCl8MCk8PTEpe2Y9LTE7YnJlYWt9aWYoMD09KDB8ZmVbbSs1Pj4wXSkmJjYyPT0oMHxmZVtmPj4wXSkpe2FbcD4+Ml09bSs2LGY9MTM7YnJlYWt9YVtwPj4yXT1mLGY9MDticmVha31hW3A+''@;'; + put 'put ''PjJdPWMsZj0wfWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIHgxZShsLGMsZil7aWYoZnw9MCwoKGN8PTApLShsfD0wKXwwKT4xMSl7Zm9yKGM9MDs7KXtpZigoMHxjKT49Nil7Yz04O2JyZWFrfWlmKDB8ZmVbbCsxPj4wXSl7Yz0wO2JyZWFrfWlmKCgwfGZlW2w+PjBd''@;'; + put 'put ''KSE9KDB8ZmVbMTQ0MzAwK2M+PjBdKSl7Yz0wO2JyZWFrfWM9YysxfDAsbD1sKzJ8MH1hW2Y+PjJdPWx9ZWxzZSBjPS0xO3JldHVybiAwfGN9ZnVuY3Rpb24gWksobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBELFIsRyxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtHPWFlLGFlPWFlKzE2fDAsUj1H''@;'; + put 'put ''LHc9KEQ9Znw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHx3KT4xKXtzd2l0Y2goMHwobT0oZj0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChmLEE9MHxmZVtjPj4wXSk6MHxKdFtsKzcyKygyNTUmKEE9MHxmZVtjPj4wXSkpPj4wXSkpe2Nhc2UgMjk6aWYoISgxPDwoMzEmKGs9MjU1JkEpKSZh''@;'; + put 'put ''WzU2OTQwKygoaz4+PjV8SnRbMTQzNzg4KygyNTUmZik+PjBdPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6ZGVmYXVsdDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA2OmlmKCgwfHcpPDMpe2Y9LTI7YnJl''@;'; + put 'put ''YWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA3OmlmKCgwfHcpPDQpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGV9az1sKzcyfDAsYj1jO3Q6Zm9yKDs7KXtpZigoMHwobT1ELShmPWIrMnwwKXwwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2godz0wfGZlW2Y+PjBd''@;'; + put 'put ''LDB8KGw9KEE9MHxmZVtiKzM+PjBdKTw8MjQ+PjI0PzB8ZjAoQSx3KTowfEp0W2srKDI1NSZ3KT4+MF0pKXtjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6Yj1mO2NvbnRpbnVlIHQ7Y2FzZSA1Ok09MjI7YnJlYWsgdDtjYXNlIDY6TT0yMzticmVhayB0O2Nhc2UgNzpN''@;'; + put 'put ''PTI1O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpNPTI3O2JyZWFrIHQ7Y2FzZSAxNTpNPTQ2O2JyZWFrIHQ7Y2FzZSAyOTpicmVhaztkZWZhdWx0OmJyZWFrIHR9aWYoISgxPDwoMzEmKGI9MjU1JncpKSZhWzU2OTQwKygoYj4+PjV8SnRbMTQ0MDQ0KygyNTUmQSk+PjBdPDwzKTw8''@;'; + put 'put ''Mik+PjJdKSl7TT0yMTticmVha31iPWZ9aWYoMjE9PSgwfE0pKXthW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDIyPT0oMHxNKSl7YVtwPj4yXT1mLGY9MDticmVha31pZigyMz09KDB8TSkpe2lmKCgwfG0pPDMpe2Y9LTI7YnJlYWt9YVtwPj4yXT1mLGY9MDticmVha31pZigyNT09KDB8TSkpe2lm''@;'; + put 'put ''KCgwfG0pPDQpe2Y9LTI7YnJlYWt9YVtwPj4yXT1mLGY9MDticmVha31pZigyNz09KDB8TSkpe2lmKCEoMHx6SyhjLGYsUikpKXthW3A+PjJdPWYsZj0wO2JyZWFrfXc9Yis0fDA7dDpmb3IoOzspe2lmKCgwfChBPUQtd3wwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2gobT0wfGZlW3c+PjBd''@;'; + put 'put ''LDB8KGY9KGY9MHxmZVt3KzE+PjBdKTw8MjQ+PjI0PzB8ZjAoZixtKTowfEp0W2srKDI1NSZtKT4+MF0pKXtjYXNlIDg6Y2FzZSAxOmNhc2UgMDpNPTQwO2JyZWFrIHQ7Y2FzZSA1OmRlZmF1bHQ6dz13KzJ8MDtjb250aW51ZSB0O2Nhc2UgNjppZigoMHxBKTwzKXtmPS0yO2JyZWFrIGV9dz13''@;'; + put 'put ''KzN8MDtjb250aW51ZSB0O2Nhc2UgNzppZigoMHxBKTw0KXtmPS0yO2JyZWFrIGV9dz13KzR8MDtjb250aW51ZSB0O2Nhc2UgMTU6aWYoKEQtKGY9dysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMHxmZVt3KzM+PjBdKXt3PWY7Y29udGludWUgdH1pZig2Mj09KDB8ZmVbZj4+MF0pKXtN''@;'; + put 'put ''PTQ0O2JyZWFrIHR9dz1mO2NvbnRpbnVlIHR9fWlmKDQwPT0oMHxNKSl7YVtwPj4yXT13LGY9MDticmVha31pZig0ND09KDB8TSkpe2FbcD4+Ml09dys0LGY9MHxhW1I+PjJdO2JyZWFrfX1lbHNlIGlmKDQ2PT0oMHxNKSl7aWYoISgwfHpLKGMsZixSKSkpe2FbcD4+Ml09ZixmPTA7YnJlYWt9''@;'; + put 'put ''aWYoKEQtKGY9Yis0fDApfDApPD0xKXtmPS0xO2JyZWFrfWlmKDA9PSgwfGZlW2IrNT4+MF0pJiY2Mj09KDB8ZmVbZj4+MF0pKXthW3A+PjJdPWIrNixmPTB8YVtSPj4yXTticmVha319YVtwPj4yXT1mLGY9MH1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIGFlPUcsMHxmfWZ1bmN0aW9uIFQx''@;'; + put 'put ''ZShsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7dz0oZnw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHx3KT4xKXtzd2l0Y2goMHwobT0oYj0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjPj4wXSk6MHxKdFtsKzcyKygyNTUmKEE9MHxmZVtjPj4w''@;'; + put 'put ''XSkpPj4wXSkpe2Nhc2UgMjk6aWYoISgxPDwoMzEmKGs9MjU1JkEpKSZhWzU2OTQwKygoaz4+PjV8KDB8SnRbMTQzNzg4KygyNTUmYik+PjBdKTw8Myk8PDIpPj4yXSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1icmVhaztjYXNlIDI0OmNhc2UgMjI6YnJlYWs7Y2FzZSA1OmRlZmF1bHQ6YVtw''@;'; + put 'put ''Pj4yXT1jLGY9MDticmVhayBlO2Nhc2UgNjppZigoMHx3KTwzKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgNzppZigoMHx3KTw0KXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlfWs9bCs3MnwwLGw9Yzt0OmZvcig7Oyl7aWYoKDB8KGM9Zi0odz1s''@;'; + put 'put ''KzJ8MCl8MCkpPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKEE9MHxmZVt3Pj4wXSwwfChiPShtPTB8ZmVbbCszPj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxKdFtrKygyNTUmQSk+PjBdKSl7Y2FzZSAyMzpjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6bD13O2NvbnRp''@;'; + put 'put ''bnVlIHQ7Y2FzZSA1Om09MjI7YnJlYWsgdDtjYXNlIDY6bT0yMzticmVhayB0O2Nhc2UgNzptPTI1O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTptPTI3O2JyZWFrIHQ7Y2FzZSAxMTptPTM0O2JyZWFrIHQ7Y2FzZSAyOTpicmVhaztkZWZhdWx0Om09MzU7YnJlYWsgdH1pZighKDE8''@;'; + put 'put ''PCgzMSYoYz0yNTUmQSkpJmFbNTY5NDArKChjPj4+NXwoMHxKdFsxNDQwNDQrKDI1NSZtKT4+MF0pPDwzKTw8Mik+PjJdKSl7bT0yMTticmVha31sPXd9aWYoMjE9PSgwfG0pKXthW3A+PjJdPXcsZj0wO2JyZWFrfWlmKDIyPT0oMHxtKSl7YVtwPj4yXT13LGY9MDticmVha31pZigyMz09KDB8''@;'; + put 'put ''bSkpe2lmKCgwfGMpPDMpe2Y9LTI7YnJlYWt9YVtwPj4yXT13LGY9MDticmVha31pZigyNT09KDB8bSkpe2lmKCgwfGMpPDQpe2Y9LTI7YnJlYWt9YVtwPj4yXT13LGY9MDticmVha31pZigyNz09KDB8bSkpe3Q6Zm9yKDs7KXtpZigoZi0oYj13KzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1z''@;'; + put 'put ''d2l0Y2goQT0wfGZlW2I+PjBdLDB8KG09KG09MHxmZVt3KzM+PjBdKTw8MjQ+PjI0PzB8ZjAobSxBKTowfEp0W2srKDI1NSZBKT4+MF0pKXtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOnc9YixtPTI3O2JyZWFrO2Nhc2UgMTE6bT0zMjticmVhayB0O2RlZmF1bHQ6bT0zMzticmVhayB0fX1pZigz''@;'; + put 'put ''Mj09KDB8bSkpe2FbcD4+Ml09dys0LGY9NTticmVha31pZigzMz09KDB8bSkpe2FbcD4+Ml09YixmPTA7YnJlYWt9fWVsc2V7aWYoMzQ9PSgwfG0pKXthW3A+PjJdPWwrNCxmPTU7YnJlYWt9aWYoMzU9PSgwfG0pKXthW3A+PjJdPXcsZj0wO2JyZWFrfX19ZWxzZSBmPS0xfXdoaWxlKDApO3Jl''@;'; + put 'put ''dHVybiAwfGZ9ZnVuY3Rpb24gSTFlKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBELEcsSyxwZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxSPTA7cGU9YWUsYWU9YWUrMTZ8MCxhWyhHPXBlKT4+Ml09Y3w9MCxLPWYsRD1sKzcyfDAsbT0wO2U6Zm9yKDs7KXt0OmZvcig7Oyl7aWYoKDB8''@;'; + put 'put ''KGs9Sy1jfDApKTw9MSl7Yz0tMTticmVhayBlfXN3aXRjaCh3PTB8ZmVbYz4+MF0sMHwoYj0oQT0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChBLHcpOjB8SnRbRCsoMjU1JncpPj4wXSkpe2Nhc2UgNTpSPTExO2JyZWFrIGU7Y2FzZSA2OlI9MTI7YnJlYWsgZTtjYXNlIDc6Uj0xNDticmVh''@;'; + put 'put ''ayBlO2Nhc2UgMjM6Uj0xNjticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6Uj0zMTticmVhayB0O2Nhc2UgMTQ6Uj0zNzticmVhayB0O2Nhc2UgMjk6aWYoISgxPDwoMzEmKE09MjU1JncpKSZhWzU2OTQwKygoTT4+PjV8SnRbMTQ0MDQ0KygyNTUmQSk+PjBdPDwzKTw8Mik+PjJdKSl7''@;'; + put 'put ''Uj05O2JyZWFrIGV9YnJlYWs7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2RlZmF1bHQ6Uj04OTticmVhayBlfWFbRz4+Ml09TT1jKzJ8MCxjPU19dDpkb3tpZigxNj09KDB8Uikpe2lmKFI9MCwwfG0pe1I9MTc7YnJlYWsgZX1pZihhW0c+PjJdPW09Yysy''@;'; + put 'put ''fDAsKDB8KHc9Sy0oQT1tKXwwKSk8PTEpe2M9LTE7YnJlYWsgZX1zd2l0Y2goaz0wfGZlW20+PjBdLDB8KE09KGI9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAoYixrKTowfEp0W0QrKDI1NSZrKT4+MF0pKXtjYXNlIDU6Uj0yNTticmVhayBlO2Nhc2UgNjpSPTI2O2JyZWFrIGU7Y2FzZSA3''@;'; + put 'put ''OlI9Mjg7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6bT0xO2JyZWFrIHQ7Y2FzZSAyOTpicmVhaztkZWZhdWx0OlI9MzA7YnJlYWsgZX1pZighKDE8PCgzMSYoTT0yNTUmaykpJmFbNTY5NDArKChNPj4+NXxKdFsxNDM3ODgrKDI1NSZiKT4+MF08PDMpPDwyKT4+Ml0pKXtSPTI0O2JyZWFrIGV9''@;'; + put 'put ''bT0xfWVsc2UgaWYoMzE9PSgwfFIpKWZvcig7Oyl7aWYoUj0wLGFbRz4+Ml09QT1jKzJ8MCwoSy0odz1BKXwwKTw9MSl7Yz0tMTticmVhayBlfXN3aXRjaChtPTB8ZmVbQT4+MF0sMHwoYz0oYz0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChjLG0pOjB8SnRbRCsoMjU1Jm0pPj4wXSkpe2Nh''@;'; + put 'put ''c2UgMTQ6Yz1BLFI9Mzc7YnJlYWsgdDtjYXNlIDk6Y2FzZSAxMDpjYXNlIDIxOmM9QSxSPTMxO2JyZWFrO2RlZmF1bHQ6Uj0zNjticmVhayBlfX19d2hpbGUoMCk7dDpkb3tpZigzNz09KDB8Uikpe2Zvcig7Oyl7aWYoUj0wLGFbRz4+Ml09dz1jKzJ8MCwoSy0oYj13KXwwKTw9MSl7Yz0tMTti''@;'; + put 'put ''cmVhayBlfWlmKEE9MHxmZVt3Pj4wXSwxMz09KDF8KGs9KG09MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAobSxBKTowfEp0W0QrKDI1NSZBKT4+MF0pKSlicmVhaztzd2l0Y2goMHxrKXtjYXNlIDk6Y2FzZSAxMDpjYXNlIDIxOmM9dyxSPTM3O2JyZWFrO2RlZmF1bHQ6Uj00MzticmVhayBl''@;'; + put 'put ''fX1hW0c+PjJdPWM9Yys0fDA7bjpmb3IoOzspe2lmKCgwfCh3PUstY3wwKSk8PTEpe2M9LTE7YnJlYWsgZX1pZihBPTB8ZmVbYz4+MF0sKDB8KG09KG09MHxmZVtjKzE+PjBdKTw8MjQ+PjI0PzB8ZjAobSxBKTowfEp0W0QrKDI1NSZBKT4+MF0pKT09KDB8aykpYnJlYWs7c3dpdGNoKDB8bSl7''@;'; + put 'put ''Y2FzZSA4OmNhc2UgMTpjYXNlIDA6Uj01NjticmVhayBlO2Nhc2UgMjpSPTYxO2JyZWFrIGU7Y2FzZSA1OmRlZmF1bHQ6YVtHPj4yXT1NPWMrMnwwLGM9TTtjb250aW51ZSBuO2Nhc2UgNjppZigoMHx3KTwzKXtjPS0yO2JyZWFrIGV9YVtHPj4yXT1NPWMrM3wwLGM9TTtjb250aW51ZSBuO2Nh''@;'; + put 'put ''c2UgNzppZigoMHx3KTw0KXtjPS0yO2JyZWFrIGV9YVtHPj4yXT1NPWMrNHwwLGM9TTtjb250aW51ZSBuO2Nhc2UgMzppZigoMHwoYz0wfG5MKGwsYysyfDAsZixHKSkpPDEpe1I9NTk7YnJlYWsgZX1jPTB8YVtHPj4yXTtjb250aW51ZSBufX1pZihhW0c+PjJdPUE9YysyfDAsKEstKGI9QSl8''@;'; + put 'put ''MCk8PTEpe2M9LTE7YnJlYWsgZX1zd2l0Y2godz0wfGZlW0E+PjBdLDB8KG09KG09MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAobSx3KTowfEp0W0QrKDI1NSZ3KT4+MF0pKXtjYXNlIDExOlI9ODE7YnJlYWsgZTtjYXNlIDE3OlI9ODI7YnJlYWsgZTtjYXNlIDEwOmNhc2UgOTpjYXNlIDIx''@;'; + put 'put ''OmM9QTticmVhaztkZWZhdWx0OlI9Njg7YnJlYWsgZX1uOmZvcig7Oyl7aWYoYVtHPj4yXT1BPWMrMnwwLCgwfCh3PUstKG09QSl8MCkpPD0xKXtjPS0xO2JyZWFrIGV9c3dpdGNoKGs9MHxmZVtBPj4wXSwwfChNPShiPTB8ZmVbYyszPj4wXSk8PDI0Pj4yND8wfGYwKGIsayk6MHxKdFtEKygy''@;'; + put 'put ''NTUmayk+PjBdKSl7Y2FzZSA1OlI9NzY7YnJlYWsgZTtjYXNlIDY6Uj03NzticmVhayBlO2Nhc2UgNzpSPTc5O2JyZWFrIGU7Y2FzZSAxMTpSPTgxO2JyZWFrIGU7Y2FzZSAxNzpSPTgyO2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOm09MDticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6''@;'; + put 'put ''Yz1BO2JyZWFrO2Nhc2UgMjk6YnJlYWsgbjtkZWZhdWx0OlI9ODc7YnJlYWsgZX19aWYoISgxPDwoMzEmKE09MjU1JmspKSZhWzU2OTQwKygoTT4+PjV8SnRbMTQzNzg4KygyNTUmYik+PjBdPDwzKTw8Mik+PjJdKSl7Uj03NTticmVhayBlfW09MH19d2hpbGUoMCk7YVtHPj4yXT1jPWMrNHww''@;'; + put 'put ''fXN3aXRjaCgwfFIpe2Nhc2UgOTpjYXNlIDExOmNhc2UgMTc6Y2FzZSA1NjpjYXNlIDYxOmNhc2UgODk6YVtwPj4yXT1jLGM9MDticmVhaztjYXNlIDEyOigwfGspPDM/Yz0tMjooYVtwPj4yXT1jLGM9MCk7YnJlYWs7Y2FzZSAxNDooMHxrKTw0P2M9LTI6KGFbcD4+Ml09YyxjPTApO2JyZWFr''@;'; + put 'put ''O2Nhc2UgMjQ6Y2FzZSAyNTpjYXNlIDg3OmFbcD4+Ml09bSxjPTA7YnJlYWs7Y2FzZSAyNjooMHx3KTwzP2M9LTI6KGFbcD4+Ml09bSxjPTApO2JyZWFrO2Nhc2UgMjg6KDB8dyk8ND9jPS0yOihhW3A+PjJdPW0sYz0wKTticmVhaztjYXNlIDMwOmNhc2UgNzU6Y2FzZSA3NjphW3A+PjJdPUEs''@;'; + put 'put ''Yz0wO2JyZWFrO2Nhc2UgMzY6YVtwPj4yXT13LGM9MDticmVhaztjYXNlIDQzOmNhc2UgNjg6YVtwPj4yXT1iLGM9MDticmVhaztjYXNlIDU5OmN8fChhW3A+PjJdPWFbRz4+Ml0sYz0wKTticmVhaztjYXNlIDc3OigwfHcpPDM/Yz0tMjooYVtwPj4yXT1BLGM9MCk7YnJlYWs7Y2FzZSA3OToo''@;'; + put 'put ''MHx3KTw0P2M9LTI6KGFbcD4+Ml09QSxjPTApO2JyZWFrO2Nhc2UgODE6YVtwPj4yXT1jKzQsYz0xO2JyZWFrO2Nhc2UgODI6aWYoYVtHPj4yXT1tPUErMnwwLChLLShjPW0pfDApPjEpe2lmKDA9PSgwfGZlW0ErMz4+MF0pJiY2Mj09KDB8ZmVbbT4+MF0pKXthW3A+PjJdPUErNCxjPTM7YnJl''@;'; + put 'put ''YWt9YVtwPj4yXT1jLGM9MH1lbHNlIGM9LTF9cmV0dXJuIGFlPXBlLDB8Y31mdW5jdGlvbiB6SyhsLGMsZil7bHw9MCxjfD0wLGFbKGZ8PTApPj4yXT0xMTtlOmRve2lmKDY9PShjLWx8MCkmJjA9PSgwfGZlW2wrMT4+MF0pKXtzd2l0Y2goMHxmZVtsPj4wXSl7Y2FzZSAxMjA6Yz0wO2JyZWFr''@;'; + put 'put ''O2Nhc2UgODg6Yz0xO2JyZWFrO2RlZmF1bHQ6Yz0xO2JyZWFrIGV9aWYoMHxmZVtsKzM+PjBdKWM9MTtlbHNle3N3aXRjaCgwfGZlW2wrMj4+MF0pe2Nhc2UgMTA5OmJyZWFrO2Nhc2UgNzc6Yz0xO2JyZWFrO2RlZmF1bHQ6Yz0xO2JyZWFrIGV9aWYoMHxmZVtsKzU+PjBdKWM9MTtlbHNle3N3''@;'; + put 'put ''aXRjaCgwfGZlW2wrND4+MF0pe2Nhc2UgMTA4OmJyZWFrO2Nhc2UgNzY6Yz0wO2JyZWFrIGU7ZGVmYXVsdDpjPTE7YnJlYWsgZX1jP2M9MDooYVtmPj4yXT0xMixjPTEpfX19ZWxzZSBjPTF9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBHSyhsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0w''@;'; + put 'put ''LG18PTA7dmFyIGIsQT0wLHc9MCxrPTA7Yj03MisoY3w9MCl8MDtlOmZvcig7Oyl7dDpmb3IoOzspe2lmKCgwfCh3PXAtZnwwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2goQT0wfGZlW2Y+PjBdLDB8KGM9KGM9MHxmZVtmKzE+PjBdKTw8MjQ+PjI0PzB8ZjAoYyxBKTowfEp0W2IrKDI1NSZB''@;'; + put 'put ''KT4+MF0pKXtjYXNlIDg6Y2FzZSAxOmNhc2UgMDprPTEwO2JyZWFrIGU7Y2FzZSA2Oms9OTticmVhayB0O2Nhc2UgNzprPTE5O2JyZWFrIHQ7Y2FzZSA1OmRlZmF1bHQ6Zj1mKzJ8MDtjb250aW51ZSB0O2Nhc2UgMTM6Y2FzZSAxMjppZihBPWYrMnwwLCgwfGMpPT0oMHxsKSl7az0xMjticmVh''@;'; + put 'put ''ayBlfWY9QTtjb250aW51ZSB0fX1pZig5IT0oMHxrKSlpZigxOSE9KDB8aykpO2Vsc2V7aWYoaz0wLCgwfHcpPDQpe2Y9LTI7YnJlYWt9Zj1mKzR8MH1lbHNle2lmKGs9MCwoMHx3KTwzKXtmPS0yO2JyZWFrfWY9ZiszfDB9fWU6ZG97aWYoMTA9PSgwfGspKWFbbT4+Ml09ZixmPTA7ZWxzZSBp''@;'; + put 'put ''ZigxMj09KDB8aykpaWYoKHAtQXwwKT4xKXtzd2l0Y2goYVttPj4yXT1BLHA9MHxmZVtmKzM+PjBdLGY9MHxmZVtBPj4wXSwwfChmPXA8PDI0Pj4yND8wfGYwKHAsZik6MHxKdFtiKygyNTUmZik+PjBdKSl7Y2FzZSAyMDpjYXNlIDMwOmNhc2UgMTE6Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpm''@;'; + put 'put ''PTI3O2JyZWFrIGV9Zj0wfWVsc2UgZj0tMjd9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBEMWUobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIGIsbT0wLEE9MCx3PTAsaz0wO2I9Znw9MDtlOmRve2lmKChiLWN8MCk+MSlzd2l0Y2gobT0wfGZlW2MrMT4+MF0sbT1tPDwyND4+MjQ/''@;'; + put 'put ''MHxmMChtLDB8ZmVbYz4+MF0pOjB8SnRbbCs3MisoMHxKdFtjPj4wXSk+PjBdLDB8bSl7Y2FzZSAyNzptPTB8aksobCxjKzJ8MCxmLHApO2JyZWFrIGU7Y2FzZSAyMDphW3A+PjJdPWMrMixtPTMzO2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOnc9bCs3MnwwO3Q6Zm9yKDs7KXtpZigoMHwoZj1i''@;'; + put 'put ''LShBPWMrMnwwKXwwKSk8PTEpe209LTE7YnJlYWsgZX1zd2l0Y2gobD0wfGZlW0E+PjBdLDB8KG09KG09MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAobSxsKTowfEp0W3crKDI1NSZsKT4+MF0pKXtjYXNlIDI0OmNhc2UgMjI6Yz1BO2JyZWFrO2Nhc2UgMzA6az0xNTticmVhayB0O2Nhc2Ug''@;'; + put 'put ''MTA6Y2FzZSA5OmNhc2UgMjE6YnJlYWsgdDtkZWZhdWx0Oms9MjI7YnJlYWsgdH19aWYoMjI9PSgwfGspKXthW3A+PjJdPUEsbT0wO2JyZWFrIGV9dDpkb3tpZigxNT09KDB8aykpe2lmKCgwfGYpPD0zKXttPS0xO2JyZWFrIGV9c3dpdGNoKG09MHxmZVtjKzQ+PjBdLDB8KG09KGw9MHxmZVtj''@;'; + put 'put ''KzU+PjBdKTw8MjQ+PjI0PzB8ZjAobCxtKTowfEp0W3crKDI1NSZtKT4+MF0pKXtjYXNlIDMwOmNhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6YnJlYWs7ZGVmYXVsdDpicmVhayB0fWFbcD4+Ml09QSxtPTA7YnJlYWsgZX19d2hpbGUoMCk7YVtwPj4yXT1BLG09MTY7YnJlYWsgZTtkZWZhdWx0OmFb''@;'; + put 'put ''cD4+Ml09YyxtPTA7YnJlYWsgZX1lbHNlIG09LTF9d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiBMMWUobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7dz0oZnw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHx3KT4xKXtzd2l0Y2goMHwobT0oYj0wfGZlW2MrMT4+MF0p''@;'; + put 'put ''PDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjPj4wXSk6MHxKdFtsKzcyKygyNTUmKEE9MHxmZVtjPj4wXSkpPj4wXSkpe2Nhc2UgMjk6aWYoISgxPDwoMzEmKHc9MjU1JkEpKSZhWzU2OTQwKygodz4+PjV8KDB8SnRbMTQzNzg4KygyNTUmYik+PjBdKTw8Myk8PDIpPj4yXSkpe2FbcD4+Ml09Yyxm''@;'; + put 'put ''PTA7YnJlYWsgZX1icmVhaztjYXNlIDI0OmNhc2UgMjI6YnJlYWs7Y2FzZSA1OmRlZmF1bHQ6YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgNjppZigoMHx3KTwzKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgNzppZigoMHx3KTw0KXtmPS0yO2JyZWFrIGV9YVtw''@;'; + put 'put ''Pj4yXT1jLGY9MDticmVhayBlfWw9bCs3MnwwLGI9Yzt0OmZvcig7Oyl7aWYobT1iLCgwfChjPWYtKGI9YisyfDApfDApKTw9MSl7Zj0tMjA7YnJlYWsgZX1zd2l0Y2goQT0wfGZlW2I+PjBdLDB8KHc9KG09MHxmZVttKzM+PjBdKTw8MjQ+PjI0PzB8ZjAobSxBKTowfEp0W2wrKDI1NSZBKT4+''@;'; + put 'put ''MF0pKXtjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6Y29udGludWUgdDtjYXNlIDU6bT0yMjticmVhayB0O2Nhc2UgNjptPTIzO2JyZWFrIHQ7Y2FzZSA3Om09MjU7YnJlYWsgdDtjYXNlIDM2OmNhc2UgMzA6Y2FzZSAxMTpjYXNlIDMyOmNhc2UgMjE6Y2FzZSAxMDpj''@;'; + put 'put ''YXNlIDk6bT0yNzticmVhayB0O2Nhc2UgMjk6YnJlYWs7ZGVmYXVsdDptPTI4O2JyZWFrIHR9aWYoISgxPDwoMzEmKGM9MjU1JkEpKSZhWzU2OTQwKygoYz4+PjV8KDB8SnRbMTQ0MDQ0KygyNTUmbSk+PjBdKTw8Myk8PDIpPj4yXSkpe209MjE7YnJlYWt9fWlmKDIxPT0oMHxtKSl7YVtwPj4y''@;'; + put 'put ''XT1iLGY9MDticmVha31pZigyMj09KDB8bSkpe2FbcD4+Ml09YixmPTA7YnJlYWt9aWYoMjM9PSgwfG0pKXtpZigoMHxjKTwzKXtmPS0yO2JyZWFrfWFbcD4+Ml09YixmPTA7YnJlYWt9aWYoMjU9PSgwfG0pKXtpZigoMHxjKTw0KXtmPS0yO2JyZWFrfWFbcD4+Ml09YixmPTA7YnJlYWt9aWYo''@;'; + put 'put ''Mjc9PSgwfG0pKXthW3A+PjJdPWIsZj0yMDticmVha31pZigyOD09KDB8bSkpe2FbcD4+Ml09YixmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIFdLKGwsYyxmKXtyZXR1cm4gbHw9MCxjfD0wLC0xPT0oMHwoZj0wfGlMKGZ8PTApKSk/Zj0wOihmZVts''@;'; + put 'put ''KzY5Pj4wXT1mLGFbbD4+Ml09NjcsYVtsKzQ+PjJdPTY4LGFbbCs0OD4+Ml09MzEsYVtsKzcyPj4yXT1jLGFbYz4+Ml09bCxmPTEpLDB8Zn1mdW5jdGlvbiBpTChsKXtsfD0wO3ZhciBjPTA7ZTpkb3tpZihsKWZvcihjPTA7Oyl7aWYoKDB8Yyk+PTYpe2M9LTE7YnJlYWsgZX1pZigwfHBqKGws''@;'; + put 'put ''MHxhWzYwMDY4KyhjPDwyKT4+Ml0pKWJyZWFrIGU7Yz1jKzF8MH1lbHNlIGM9Nn13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIGNqKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgdz0wLGI9MCxrPTAsTT0wO2U6ZG97aWYocD4+PjA8bT4+PjApe009''@;'; + put 'put ''MHxhW2MrNzI+PjJdLHc9cCsxfDA7dDpkb3tpZigoMHx3KSE9KDB8bSkpe2I9NjU1MzUmKCgyNTUmKGs9MHxmZVtwPj4wXSkpPDw4fDI1NSYodz0wfGZlW3c+PjBdKSk7bjpkb3tpZihiPDwxNj4+MTY8LTIpe2lmKGI8PDE2Pj4xNj49LTI1Nyl7aWYoYjw8MTY+PjE2IT0tMjU3KWJyZWFrIG47''@;'; + put 'put ''aWYoMT09KDB8ZikmMD09KDB8ZmVbYys2OT4+MF0pKWJyZWFrIHQ7YVtBPj4yXT1wKzIsYVtNPj4yXT1hW2wrMTY+PjJdLHc9MTQ7YnJlYWsgZX1pZihiPDwxNj4+MTYhPS00MTY1KWJyZWFrIG47aWYoMT09KDB8Zikpc3dpdGNoKDB8ZmVbYys2OT4+MF0pe2Nhc2UgMDpjYXNlIDM6Y2FzZSA0''@;'; + put 'put ''OmNhc2UgNTpicmVhayB0fWlmKCgwfCh3PXArMnwwKSk9PSgwfG0pKXt3PS0xO2JyZWFrIGV9aWYoLTY1IT0oMHxmZVt3Pj4wXSkpYnJlYWsgdDthW0E+PjJdPXArMyxhW00+PjJdPWFbbCs4Pj4yXSx3PTE0O2JyZWFrIGV9aWYoYjw8MTY+PjE2PDE1MzYwKXtpZihiPDwxNj4+MTYhPS0yKWJy''@;'; + put 'put ''ZWFrIG47aWYoMT09KDB8ZikmMD09KDB8ZmVbYys2OT4+MF0pKWJyZWFrIHQ7YVtBPj4yXT1wKzIsYVtNPj4yXT1hW2wrMjA+PjJdLHc9MTQ7YnJlYWsgZX1pZihiPDwxNj4+MTYhPTE1MzYwKWJyZWFrIG47aWYoKHc9MHxmZVtjKzY5Pj4wXSk8PDI0Pj4yND09NCl7aWYoMT09KDB8ZikpYnJl''@;'; + put 'put ''YWsgdH1lbHNlIGlmKDE9PSgwfGYpJnc8PDI0Pj4yND09MylicmVhayB0O2FbTT4+Ml09dz0wfGFbbCsyMD4+Ml0sdz0wfHEwWzEyNyZhW3crKGY8PDIpPj4yXV0odyxwLG0sQSk7YnJlYWsgZX13aGlsZSgwKTtpZihrPDwyND4+MjQpe2lmKDE9PSgwfGYpfHc8PDI0Pj4yNCE9MClicmVhazth''@;'; + put 'put ''W00+PjJdPXc9MHxhW2wrMjA+PjJdLHc9MHxxMFsxMjcmYVt3KyhmPDwyKT4+Ml1dKHcscCxtLEEpO2JyZWFrIGV9aWYoMT09KDB8ZikmJjU9PSgwfGZlW2MrNjk+PjBdKSlicmVhazthW00+PjJdPXc9MHxhW2wrMTY+PjJdLHc9MHxxMFsxMjcmYVt3KyhmPDwyKT4+Ml1dKHcscCxtLEEpO2Jy''@;'; + put 'put ''ZWFrIGV9aWYoKCgodz0wfGZlW2MrNjk+PjBdKTw8MjQ+PjI0KS0zfDApPj4+MDwzKXt3PS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbcD4+MF0pe2Nhc2UgNjA6Y2FzZSAwOnc9LTE7YnJlYWsgZTtjYXNlLTE3OmNhc2UtMTpjYXNlLTI6YnJlYWs7ZGVmYXVsdDpicmVhayB0fWlmKCEoMT09KDB8''@;'; + put 'put ''Zikmdzw8MjQ+PjI0PT0wKSl7dz0tMTticmVhayBlfX13aGlsZSgwKTthW00+PjJdPXc9MHxhW2wrKGZlW2MrNjk+PjBdPDwyKT4+Ml0sdz0wfHEwWzEyNyZhW3crKGY8PDIpPj4yXV0odyxwLG0sQSl9ZWxzZSB3PS00fXdoaWxlKDApO3JldHVybiAwfHd9ZnVuY3Rpb24gZGoobCxjLGYscCl7''@;'; + put 'put ''bHw9MCxwfD0wO3ZhciBrLEE9MCx3PTAsYj0wO3c9KGs9Znw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHx3KT4xKXtzd2l0Y2goMHwoKGI9MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKGIsQT0wfGZlW2MrMT4+MF0pOjB8SnRbbCs3MisoMjU1JihBPTB8ZmVbYysxPj4wXSkpPj4wXSkpe2Nhc2Ug''@;'; + put 'put ''Mjk6aWYoISgxPDwoMzEmKHc9MjU1JkEpKSZhWzU2OTQwKygodz4+PjV8KDB8SnRbMTQzNzg4KygyNTUmYik+PjBdKTw8Myk8PDIpPj4yXSkpe2FbcD4+Ml09YyxsPTA7YnJlYWsgZX1icmVhaztjYXNlIDI0OmNhc2UgMjI6YnJlYWs7Y2FzZSA1OmRlZmF1bHQ6YVtwPj4yXT1jLGw9MDticmVh''@;'; + put 'put ''ayBlO2Nhc2UgNjppZigoMHx3KTwzKXtsPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGw9MDticmVhayBlO2Nhc2UgNzppZigoMHx3KTw0KXtsPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGw9MDticmVhayBlO2Nhc2UgMTk6bD0wfGoxZShsLGMrMnwwLGYscCk7YnJlYWsgZX1iPWwrNzJ8MCx3PWM7dDpm''@;'; + put 'put ''b3IoOzspe2lmKCgwfChjPWstKEE9dysyfDApfDApKTw9MSl7bD0tMTticmVhayBlfXN3aXRjaChmPTB8ZmVbdyszPj4wXSwwfCgobD0wfGZlW0E+PjBdKTw8MjQ+PjI0PzB8ZjAobCxmKTowfEp0W2IrKDI1NSZmKT4+MF0pKXtjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2Ug''@;'; + put 'put ''MjI6dz1BO2NvbnRpbnVlIHQ7Y2FzZSA1OmY9MjM7YnJlYWsgdDtjYXNlIDY6Zj0yNDticmVhayB0O2Nhc2UgNzpmPTI2O2JyZWFrIHQ7Y2FzZSAxODpmPTI4O2JyZWFrIHQ7Y2FzZSAyOTpicmVhaztkZWZhdWx0OmY9Mjk7YnJlYWsgdH1pZighKDE8PCgzMSYoYz0yNTUmZikpJmFbNTY5NDAr''@;'; + put 'put ''KChjPj4+NXwoMHxKdFsxNDQwNDQrKDI1NSZsKT4+MF0pPDwzKTw8Mik+PjJdKSl7Zj0yMjticmVha313PUF9aWYoMjI9PSgwfGYpKXthW3A+PjJdPUEsbD0wO2JyZWFrfWlmKDIzPT0oMHxmKSl7YVtwPj4yXT1BLGw9MDticmVha31pZigyND09KDB8Zikpe2lmKCgwfGMpPDMpe2w9LTI7YnJl''@;'; + put 'put ''YWt9YVtwPj4yXT1BLGw9MDticmVha31pZigyNj09KDB8Zikpe2lmKCgwfGMpPDQpe2w9LTI7YnJlYWt9YVtwPj4yXT1BLGw9MDticmVha31pZigyOD09KDB8Zikpe2FbcD4+Ml09dys0LGw9OTticmVha31pZigyOT09KDB8Zikpe2FbcD4+Ml09QSxsPTA7YnJlYWt9fWVsc2UgbD0tMX13aGls''@;'; + put 'put ''ZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIFYxZShsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7dz0oZnw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHx3KT4xKXtzd2l0Y2goMHwobT0oYj0wfGZlW2M+PjBdKTw8MjQ+PjI0PzB8ZjAoYixBPTB8ZmVbYysxPj4wXSk6''@;'; + put 'put ''MHxKdFtsKzcyKygyNTUmKEE9MHxmZVtjKzE+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYoaz0yNTUmQSkpJmFbNTY5NDArKChrPj4+NXwoMHxKdFsxNDM3ODgrKDI1NSZiKT4+MF0pPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2Fz''@;'; + put 'put ''ZSAyMjpicmVhaztjYXNlIDU6ZGVmYXVsdDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA2OmlmKCgwfHcpPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA3OmlmKCgwfHcpPDQpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSAzMDpj''@;'; + put 'put ''YXNlIDk6Y2FzZSAxMDpjYXNlIDIxOmFbcD4+Ml09YyxmPTIyO2JyZWFrIGV9az1sKzcyfDAsbD1jO3Q6Zm9yKDs7KXtpZigoMHwoYz1mLShiPWwrMnwwKXwwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2goQT0wfGZlW2wrMz4+MF0sMHwodz0obT0wfGZlW2I+PjBdKTw8MjQ+PjI0PzB8ZjAo''@;'; + put 'put ''bSxBKTowfEp0W2srKDI1NSZBKT4+MF0pKXtjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6bD1iO2NvbnRpbnVlIHQ7Y2FzZSA1Om09MjM7YnJlYWsgdDtjYXNlIDY6bT0yNDticmVhayB0O2Nhc2UgNzptPTI2O2JyZWFrIHQ7Y2FzZSAxODptPTI4O2JyZWFrIHQ7Y2Fz''@;'; + put 'put ''ZSAyOTpicmVhaztkZWZhdWx0Om09Mjk7YnJlYWsgdH1pZighKDE8PCgzMSYoYz0yNTUmQSkpJmFbNTY5NDArKChjPj4+NXwoMHxKdFsxNDQwNDQrKDI1NSZtKT4+MF0pPDwzKTw8Mik+PjJdKSl7bT0yMjticmVha31sPWJ9aWYoMjI9PSgwfG0pKXthW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDIz''@;'; + put 'put ''PT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha31pZigyND09KDB8bSkpe2lmKCgwfGMpPDMpe2Y9LTI7YnJlYWt9YVtwPj4yXT1iLGY9MDticmVha31pZigyNj09KDB8bSkpe2lmKCgwfGMpPDQpe2Y9LTI7YnJlYWt9YVtwPj4yXT1iLGY9MDticmVha31pZigyOD09KDB8bSkpe2FbcD4+Ml09''@;'; + put 'put ''bCs0LGY9Mjg7YnJlYWt9aWYoMjk9PSgwfG0pKXthW3A+PjJdPWIsZj0wO2JyZWFrfX1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBqMWUobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIGIsbT0wLEE9MCx3PTA7Yj1mfD0wO2U6ZG97aWYoKGItY3wwKT4xKXtBPTB8''@;'; + put 'put ''ZmVbYz4+MF0sbT0wfGZlW2MrMT4+MF07ZG97aWYoIShBPDwyND4+MjQpKXtpZihtPDwyND4+MjQ9PTEyMCl7bT0wfGVBZShsLGMrMnwwLGYscCk7YnJlYWsgZX1tPTB8SnRbbCs3MisoMjU1Jm0pPj4wXTticmVha31tPTB8ZjAoQSxtKX13aGlsZSgwKTtpZigyNSE9KDB8bSkpe2FbcD4+Ml09''@;'; + put 'put ''YyxtPTA7YnJlYWt9dz1sKzcyfDAsbD1jO3Q6Zm9yKDs7KXtpZigoYi0oQT1sKzJ8MCl8MCk8PTEpe209LTE7YnJlYWsgZX1zd2l0Y2goZj0wfGZlW2wrMz4+MF0sMHwobT0obT0wfGZlW0E+PjBdKTw8MjQ+PjI0PzB8ZjAobSxmKTowfEp0W3crKDI1NSZmKT4+MF0pKXtjYXNlIDI1Omw9QTti''@;'; + put 'put ''cmVhaztjYXNlIDE4OmY9MTU7YnJlYWsgdDtkZWZhdWx0OmY9MTY7YnJlYWsgdH19aWYoMTU9PSgwfGYpKXthW3A+PjJdPWwrNCxtPTEwO2JyZWFrfWlmKDE2PT0oMHxmKSl7YVtwPj4yXT1BLG09MDticmVha319ZWxzZSBtPS0xfXdoaWxlKDApO3JldHVybiAwfG19ZnVuY3Rpb24gZUFlKGws''@;'; + put 'put ''YyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wO2U6ZG97aWYoKGYtY3wwKT4xKXtpZigyNCE9KC0yJihtPShtPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChtLDB8ZmVbYysxPj4wXSk6MHxKdFtsKzcyKygwfEp0W2MrMT4+MF0pPj4wXSl8MCkpe2FbcD4+Ml09Yyxm''@;'; + put 'put ''PTA7YnJlYWt9dz1sKzcyfDA7dDpmb3IoOzspe2lmKChmLShBPWMrMnwwKXwwKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChsPTB8ZmVbYyszPj4wXSwwfChtPShtPTB8ZmVbQT4+MF0pPDwyND4+MjQ/MHxmMChtLGwpOjB8SnRbdysoMjU1JmwpPj4wXSkpe2Nhc2UgMjQ6Y2FzZSAyNTpjPUE7''@;'; + put 'put ''YnJlYWs7Y2FzZSAxODptPTEzO2JyZWFrIHQ7ZGVmYXVsdDptPTE0O2JyZWFrIHR9fWlmKDEzPT0oMHxtKSl7YVtwPj4yXT1jKzQsZj0xMDticmVha31pZigxND09KDB8bSkpe2FbcD4+Ml09QSxmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIHRBZShs''@;'; + put 'put ''LGMsZixwKXtsfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTA7dz0oUj1mfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShiPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjKzE+PjBdKTowfEp0W2wrNzIrKDI1NSYo''@;'; + put 'put ''QT0wfGZlW2MrMT4+MF0pKT4+MF0pKXtjYXNlIDI5OmlmKCEoMTw8KDMxJihNPTI1NSZBKSkmYVs1Njk0MCsoKE0+Pj41fEp0WzE0Mzc4OCsoMjU1JmIpPj4wXTw8Myk8PDIpPj4yXSkpe2FbcD4+Ml09YyxtPTA7YnJlYWsgZX1icmVhaztjYXNlIDI0OmNhc2UgMjI6YnJlYWs7Y2FzZSA1OmFb''@;'; + put 'put ''cD4+Ml09YyxtPTA7YnJlYWsgZTtjYXNlIDY6aWYoKDB8dyk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09YyxtPTA7YnJlYWsgZTtjYXNlIDc6aWYoKDB8dyk8NCl7bT0tMjticmVhayBlfWFbcD4+Ml09YyxtPTA7YnJlYWsgZTtjYXNlIDE2OmlmKChSLShBPWMrMnwwKXwwKTw9MSl7bT0tMTti''@;'; + put 'put ''cmVhayBlfXN3aXRjaCgwfChtPShtPTB8ZmVbQT4+MF0pPDwyND4+MjQ/MHxmMChtLDB8ZmVbYyszPj4wXSk6MHxKdFtsKzcyKygwfEp0W2MrMz4+MF0pPj4wXSkpe2Nhc2UgMjc6bT0wfFoxZShsLGMrNHwwLGYscCk7YnJlYWsgZTtjYXNlIDIwOm09MHx6MWUoYys0fDAsZixwKTticmVhayBl''@;'; + put 'put ''O2RlZmF1bHQ6YVtwPj4yXT1BLG09MDticmVhayBlfWNhc2UgMTU6bT0wfFFLKGwsYysyfDAsZixwKTticmVhayBlO2Nhc2UgMTc6bT0wfEcxZShsLGMrMnwwLGYscCk7YnJlYWsgZTtkZWZhdWx0OmFbcD4+Ml09YyxtPTA7YnJlYWsgZX1NPWwrNzJ8MCxrPTAsbT1jKzJ8MDt0OmZvcig7Oyl7''@;'; + put 'put ''bjpmb3IoOzspe2lmKCgwfChBPVItbXwwKSk8PTEpe209LTE7YnJlYWsgZX1zd2l0Y2goYj0wfGZlW20rMT4+MF0sMHwoYz0odz0wfGZlW20+PjBdKTw8MjQ+PjI0PzB8ZjAodyxiKTowfEp0W00rKDI1NSZiKT4+MF0pKXtjYXNlIDU6RD0zNDticmVhayB0O2Nhc2UgNjpEPTM1O2JyZWFrIHQ7''@;'; + put 'put ''Y2FzZSA3OkQ9Mzc7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOkQ9NTU7YnJlYWsgdDtjYXNlIDExOkQ9Njk7YnJlYWsgdDtjYXNlIDE3OmJyZWFrIHQ7Y2FzZSAyMzpicmVhayBuO2Nhc2UgMjk6aWYoISgxPDwoMzEmKGM9MjU1JmIpKSZhWzU2OTQwKygoYz4+PjV8SnRbMTQ0MDQ0''@;'; + put 'put ''KygyNTUmdyk+PjBdPDwzKTw8Mik+PjJdKSl7RD0zMjticmVhayB0fWJyZWFrO2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpicmVhaztkZWZhdWx0OkQ9NzU7YnJlYWsgdH1tPW0rMnwwfWlmKDB8ayl7RD00MDticmVha31pZigoMHwoaz1SLShjPW0rMnwwKXwwKSk8''@;'; + put 'put ''PTEpe209LTE7YnJlYWsgZX1zd2l0Y2godz0wfGZlW20rMz4+MF0sMHwoYj0oQT0wfGZlW2M+PjBdKTw8MjQ+PjI0PzB8ZjAoQSx3KTowfEp0W00rKDI1NSZ3KT4+MF0pKXtjYXNlIDU6RD00OTticmVhayB0O2Nhc2UgNjpEPTUwO2JyZWFrIHQ7Y2FzZSA3OkQ9NTI7YnJlYWsgdDtjYXNlIDI5''@;'; + put 'put ''OmlmKCEoMTw8KDMxJihrPTI1NSZ3KSkmYVs1Njk0MCsoKGs+Pj41fEp0WzE0Mzc4OCsoMjU1JkEpPj4wXTw8Myk8PDIpPj4yXSkpe0Q9NDc7YnJlYWsgdH1icmVhaztjYXNlIDI0OmNhc2UgMjI6YnJlYWs7ZGVmYXVsdDpEPTU0O2JyZWFrIHR9az0xLG09bSs0fDB9dDpzd2l0Y2goMHxEKXtj''@;'; + put 'put ''YXNlIDMyOmNhc2UgMzQ6Y2FzZSA0MDpjYXNlIDc1OmFbcD4+Ml09bSxtPTA7YnJlYWsgZTtjYXNlIDM1OmlmKCgwfEEpPDMpe209LTI7YnJlYWsgZX1hW3A+PjJdPW0sbT0wO2JyZWFrIGU7Y2FzZSAzNzppZigoMHxBKTw0KXttPS0yO2JyZWFrIGV9YVtwPj4yXT1tLG09MDticmVhayBlO2Nh''@;'; + put 'put ''c2UgNDc6Y2FzZSA0OTpjYXNlIDU0OmFbcD4+Ml09YyxtPTA7YnJlYWsgZTtjYXNlIDUwOmlmKCgwfGspPDMpe209LTI7YnJlYWsgZX1hW3A+PjJdPWMsbT0wO2JyZWFrIGU7Y2FzZSA1MjppZigoMHxrKTw0KXttPS0yO2JyZWFrIGV9YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgNTU6bjpm''@;'; + put 'put ''b3IoOzspe2lmKEQ9MCwoMHwodz1SLShBPW0rMnwwKXwwKSk8PTEpe209LTE7YnJlYWsgZX1zd2l0Y2goYz0wfGZlW20rMz4+MF0sMHwoaz0oYj0wfGZlW0E+PjBdKTw8MjQ+PjI0PzB8ZjAoYixjKTowfEp0W00rKDI1NSZjKT4+MF0pKXtjYXNlIDExOm09QSxEPTY5O2JyZWFrIHQ7Y2FzZSAx''@;'; + put 'put ''NzptPUE7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOm09QSxEPTU1O2JyZWFrO2Nhc2UgMjk6RD02MDticmVhayBuO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhayBuO2Nhc2UgNTpEPTYzO2JyZWFrIG47Y2FzZSA2OkQ9NjQ7YnJlYWsgbjtjYXNlIDc6RD02NjticmVhayBuO2RlZmF1bHQ6''@;'; + put 'put ''RD02ODticmVhayBufX1pZig2MD09KDB8RCkpe2lmKCEoMTw8KDMxJihSPTI1NSZjKSkmYVs1Njk0MCsoKFI+Pj41fEp0WzE0Mzc4OCsoMjU1JmIpPj4wXTw8Myk8PDIpPj4yXSkpe2FbcD4+Ml09QSxtPTA7YnJlYWsgZX19ZWxzZXtpZig2Mz09KDB8RCkpe2FbcD4+Ml09QSxtPTA7YnJlYWsg''@;'; + put 'put ''ZX1pZig2ND09KDB8RCkpe2lmKCgwfHcpPDMpe209LTI7YnJlYWsgZX1hW3A+PjJdPUEsbT0wO2JyZWFrIGV9aWYoNjY9PSgwfEQpKXtpZigoMHx3KTw0KXttPS0yO2JyZWFrIGV9YVtwPj4yXT1BLG09MDticmVhayBlfWlmKDY4PT0oMHxEKSl7YVtwPj4yXT1BLG09MDticmVhayBlfX1tPTB8''@;'; + put 'put ''VzFlKGwsbSs0fDAsZixwKTticmVhayBlfWlmKDY5PT0oMHxEKSl7YVtwPj4yXT1tKzIsbT0yO2JyZWFrfWlmKChSLShBPW0rMnwwKXwwKT4xKXtpZigwPT0oMHxmZVtBPj4wXSkmJjYyPT0oMHxmZVttKzM+PjBdKSl7YVtwPj4yXT1tKzQsbT00O2JyZWFrfWFbcD4+Ml09QSxtPTB9ZWxzZSBt''@;'; + put 'put ''PS0xfWVsc2UgbT0tMX13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIFoxZShsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgdyxtPTAsQT0wLGI9MDt3PWZ8PTA7ZTpkb3tpZigody1jfDApPjEpe2lmKDA9PSgwfGZlW2M+PjBdKSYmNDU9PSgwfGZlW2MrMT4+MF0pKXtBPWwrNzJ8MCxt''@;'; + put 'put ''PWMrMnwwO3Q6Zm9yKDs7KXtpZigoMHwoYz13LW18MCkpPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKGw9MHxmZVttKzE+PjBdLDB8KGY9KGY9MHxmZVttPj4wXSk8PDI0Pj4yND8wfGYwKGYsbCk6MHxKdFtBKygyNTUmbCk+PjBdKSl7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6Yj0xNjticmVhayB0''@;'; + put 'put ''O2Nhc2UgNTpkZWZhdWx0Om09bSsyfDA7Y29udGludWUgdDtjYXNlIDY6aWYoKDB8Yyk8Myl7Zj0tMjticmVhayBlfW09bSszfDA7Y29udGludWUgdDtjYXNlIDc6aWYoKDB8Yyk8NCl7Zj0tMjticmVhayBlfW09bSs0fDA7Y29udGludWUgdDtjYXNlIDI3OmlmKCh3LShmPW0rMnwwKXwwKTw9''@;'; + put 'put ''MSl7Zj0tMTticmVhayBlfWlmKDB8ZmVbZj4+MF0pe209Zjtjb250aW51ZSB0fWlmKDQ1PT0oMHxmZVttKzM+PjBdKSlicmVhayB0O209Zjtjb250aW51ZSB0fX1pZigxNj09KDB8Yikpe2FbcD4+Ml09bSxmPTA7YnJlYWt9aWYoKHctKGY9bSs0fDApfDApPD0xKXtmPS0xO2JyZWFrfWlmKDA9''@;'; + put 'put ''PSgwfGZlW2Y+PjBdKSYmNjI9PSgwfGZlW20rNT4+MF0pKXthW3A+PjJdPW0rNixmPTEzO2JyZWFrfWFbcD4+Ml09ZixmPTA7YnJlYWt9YVtwPj4yXT1jLGY9MH1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiB6MWUobCxjLGYpe2lmKGZ8PTAsKChjfD0wKS0obHw9MCl8''@;'; + put 'put ''MCk+MTEpe2ZvcihjPTA7Oyl7aWYoKDB8Yyk+PTYpe2M9ODticmVha31pZigwfGZlW2w+PjBdKXtjPTA7YnJlYWt9aWYoKDB8ZmVbbCsxPj4wXSkhPSgwfGZlWzE0NDMwMCtjPj4wXSkpe2M9MDticmVha31jPWMrMXwwLGw9bCsyfDB9YVtmPj4yXT1sfWVsc2UgYz0tMTtyZXR1cm4gMHxjfWZ1''@;'; + put 'put ''bmN0aW9uIFFLKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgRCxSLEcsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Rz1hZSxhZT1hZSsxNnwwLFI9RyxBPShEPWZ8PTApLShjfD0wKXwwO2U6ZG97aWYoKDB8QSk+MSl7c3dpdGNoKDB8KGY9KHc9MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKHcsbT0w''@;'; + put 'put ''fGZlW2MrMT4+MF0pOjB8SnRbbCs3MisoMjU1JihtPTB8ZmVbYysxPj4wXSkpPj4wXSkpe2Nhc2UgMjk6aWYoISgxPDwoMzEmKGs9MjU1Jm0pKSZhWzU2OTQwKygoaz4+PjV8SnRbMTQzNzg4KygyNTUmdyk+PjBdPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWJyZWFrO2Nh''@;'; + put 'put ''c2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6ZGVmYXVsdDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA2OmlmKCgwfEEpPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA3OmlmKCgwfEEpPDQpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGV9''@;'; + put 'put ''az1sKzcyfDAsYj1jO3Q6Zm9yKDs7KXtpZigoMHwobT1ELShmPWIrMnwwKXwwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2godz0wfGZlW2IrMz4+MF0sMHwobD0oQT0wfGZlW2Y+PjBdKTw8MjQ+PjI0PzB8ZjAoQSx3KTowfEp0W2srKDI1NSZ3KT4+MF0pKXtjYXNlIDI3OmNhc2UgMjY6Y2Fz''@;'; + put 'put ''ZSAyNTpjYXNlIDI0OmNhc2UgMjI6Yj1mO2NvbnRpbnVlIHQ7Y2FzZSA1Ok09MjI7YnJlYWsgdDtjYXNlIDY6TT0yMzticmVhayB0O2Nhc2UgNzpNPTI1O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpNPTI3O2JyZWFrIHQ7Y2FzZSAxNTpNPTQ2O2JyZWFrIHQ7Y2FzZSAyOTpicmVh''@;'; + put 'put ''aztkZWZhdWx0OmJyZWFrIHR9aWYoISgxPDwoMzEmKGI9MjU1JncpKSZhWzU2OTQwKygoYj4+PjV8SnRbMTQ0MDQ0KygyNTUmQSk+PjBdPDwzKTw8Mik+PjJdKSl7TT0yMTticmVha31iPWZ9aWYoMjE9PSgwfE0pKXthW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDIyPT0oMHxNKSl7YVtwPj4yXT1m''@;'; + put 'put ''LGY9MDticmVha31pZigyMz09KDB8TSkpe2lmKCgwfG0pPDMpe2Y9LTI7YnJlYWt9YVtwPj4yXT1mLGY9MDticmVha31pZigyNT09KDB8TSkpe2lmKCgwfG0pPDQpe2Y9LTI7YnJlYWt9YVtwPj4yXT1mLGY9MDticmVha31pZigyNz09KDB8TSkpe2lmKCEoMHxKSyhjLGYsUikpKXthW3A+PjJd''@;'; + put 'put ''PWYsZj0wO2JyZWFrfXc9Yis0fDA7dDpmb3IoOzspe2lmKCgwfChBPUQtd3wwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2gobT0wfGZlW3crMT4+MF0sMHwoZj0oZj0wfGZlW3c+PjBdKTw8MjQ+PjI0PzB8ZjAoZixtKTowfEp0W2srKDI1NSZtKT4+MF0pKXtjYXNlIDg6Y2FzZSAxOmNhc2Ug''@;'; + put 'put ''MDpNPTQwO2JyZWFrIHQ7Y2FzZSA1OmRlZmF1bHQ6dz13KzJ8MDtjb250aW51ZSB0O2Nhc2UgNjppZigoMHxBKTwzKXtmPS0yO2JyZWFrIGV9dz13KzN8MDtjb250aW51ZSB0O2Nhc2UgNzppZigoMHxBKTw0KXtmPS0yO2JyZWFrIGV9dz13KzR8MDtjb250aW51ZSB0O2Nhc2UgMTU6aWYoKEQt''@;'; + put 'put ''KGY9dysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMHxmZVtmPj4wXSl7dz1mO2NvbnRpbnVlIHR9aWYoNjI9PSgwfGZlW3crMz4+MF0pKXtNPTQ0O2JyZWFrIHR9dz1mO2NvbnRpbnVlIHR9fWlmKDQwPT0oMHxNKSl7YVtwPj4yXT13LGY9MDticmVha31pZig0ND09KDB8TSkpe2FbcD4+''@;'; + put 'put ''Ml09dys0LGY9MHxhW1I+PjJdO2JyZWFrfX1lbHNlIGlmKDQ2PT0oMHxNKSl7aWYoISgwfEpLKGMsZixSKSkpe2FbcD4+Ml09ZixmPTA7YnJlYWt9aWYoKEQtKGY9Yis0fDApfDApPD0xKXtmPS0xO2JyZWFrfWlmKDA9PSgwfGZlW2Y+PjBdKSYmNjI9PSgwfGZlW2IrNT4+MF0pKXthW3A+PjJd''@;'; + put 'put ''PWIrNixmPTB8YVtSPj4yXTticmVha319YVtwPj4yXT1mLGY9MH1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIGFlPUcsMHxmfWZ1bmN0aW9uIEcxZShsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7dz0oZnw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHx3KT4xKXtz''@;'; + put 'put ''d2l0Y2goMHwobT0oYj0wfGZlW2M+PjBdKTw8MjQ+PjI0PzB8ZjAoYixBPTB8ZmVbYysxPj4wXSk6MHxKdFtsKzcyKygyNTUmKEE9MHxmZVtjKzE+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYoaz0yNTUmQSkpJmFbNTY5NDArKChrPj4+NXwoMHxKdFsxNDM3ODgrKDI1NSZiKT4+''@;'; + put 'put ''MF0pPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6ZGVmYXVsdDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA2OmlmKCgwfHcpPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA3''@;'; + put 'put ''OmlmKCgwfHcpPDQpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGV9az1sKzcyfDAsbD1jO3Q6Zm9yKDs7KXtpZigoMHwoYz1mLSh3PWwrMnwwKXwwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2goQT0wfGZlW2wrMz4+MF0sMHwoYj0obT0wfGZlW3c+PjBdKTw8MjQ+PjI0PzB8''@;'; + put 'put ''ZjAobSxBKTowfEp0W2srKDI1NSZBKT4+MF0pKXtjYXNlIDIzOmNhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpsPXc7Y29udGludWUgdDtjYXNlIDU6bT0yMjticmVhayB0O2Nhc2UgNjptPTIzO2JyZWFrIHQ7Y2FzZSA3Om09MjU7YnJlYWsgdDtjYXNlIDEwOmNhc2Ug''@;'; + put 'put ''OTpjYXNlIDIxOm09Mjc7YnJlYWsgdDtjYXNlIDExOm09MzQ7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6bT0zNTticmVhayB0fWlmKCEoMTw8KDMxJihjPTI1NSZBKSkmYVs1Njk0MCsoKGM+Pj41fCgwfEp0WzE0NDA0NCsoMjU1Jm0pPj4wXSk8PDMpPDwyKT4+Ml0pKXttPTIxO2Jy''@;'; + put 'put ''ZWFrfWw9d31pZigyMT09KDB8bSkpe2FbcD4+Ml09dyxmPTA7YnJlYWt9aWYoMjI9PSgwfG0pKXthW3A+PjJdPXcsZj0wO2JyZWFrfWlmKDIzPT0oMHxtKSl7aWYoKDB8Yyk8Myl7Zj0tMjticmVha31hW3A+PjJdPXcsZj0wO2JyZWFrfWlmKDI1PT0oMHxtKSl7aWYoKDB8Yyk8NCl7Zj0tMjti''@;'; + put 'put ''cmVha31hW3A+PjJdPXcsZj0wO2JyZWFrfWlmKDI3PT0oMHxtKSl7dDpmb3IoOzspe2lmKChmLShiPXcrMnwwKXwwKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChBPTB8ZmVbdyszPj4wXSwwfChtPShtPTB8ZmVbYj4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8SnRbaysoMjU1JkEpPj4wXSkp''@;'; + put 'put ''e2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6dz1iLG09Mjc7YnJlYWs7Y2FzZSAxMTptPTMyO2JyZWFrIHQ7ZGVmYXVsdDptPTMzO2JyZWFrIHR9fWlmKDMyPT0oMHxtKSl7YVtwPj4yXT13KzQsZj01O2JyZWFrfWlmKDMzPT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha319ZWxzZXtpZigzND09''@;'; + put 'put ''KDB8bSkpe2FbcD4+Ml09bCs0LGY9NTticmVha31pZigzNT09KDB8bSkpe2FbcD4+Ml09dyxmPTA7YnJlYWt9fX1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBXMWUobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIEQsRyxLLHBlLG09MCxBPTAsdz0wLGI9MCxrPTAs''@;'; + put 'put ''TT0wLFI9MDtwZT1hZSxhZT1hZSsxNnwwLGFbKEc9cGUpPj4yXT1jfD0wLEs9ZixEPWwrNzJ8MCxtPTA7ZTpmb3IoOzspe3Q6Zm9yKDs7KXtpZigoMHwoaz1LLWN8MCkpPD0xKXtjPS0xO2JyZWFrIGV9c3dpdGNoKHc9MHxmZVtjKzE+PjBdLDB8KGI9KEE9MHxmZVtjPj4wXSk8PDI0Pj4yND8w''@;'; + put 'put ''fGYwKEEsdyk6MHxKdFtEKygyNTUmdyk+PjBdKSl7Y2FzZSA1OlI9MTE7YnJlYWsgZTtjYXNlIDY6Uj0xMjticmVhayBlO2Nhc2UgNzpSPTE0O2JyZWFrIGU7Y2FzZSAyMzpSPTE2O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpSPTMxO2JyZWFrIHQ7Y2FzZSAxNDpSPTM3O2JyZWFr''@;'; + put 'put ''IHQ7Y2FzZSAyOTppZighKDE8PCgzMSYoTT0yNTUmdykpJmFbNTY5NDArKChNPj4+NXxKdFsxNDQwNDQrKDI1NSZBKT4+MF08PDMpPDwyKT4+Ml0pKXtSPTk7YnJlYWsgZX1icmVhaztjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6YnJlYWs7ZGVmYXVsdDpSPTg5O2Jy''@;'; + put 'put ''ZWFrIGV9YVtHPj4yXT1NPWMrMnwwLGM9TX10OmRve2lmKDE2PT0oMHxSKSl7aWYoUj0wLDB8bSl7Uj0xNzticmVhayBlfWlmKGFbRz4+Ml09bT1jKzJ8MCwoMHwodz1LLShBPW0pfDApKTw9MSl7Yz0tMTticmVhayBlfXN3aXRjaChrPTB8ZmVbYyszPj4wXSwwfChNPShiPTB8ZmVbbT4+MF0p''@;'; + put 'put ''PDwyND4+MjQ/MHxmMChiLGspOjB8SnRbRCsoMjU1JmspPj4wXSkpe2Nhc2UgNTpSPTI1O2JyZWFrIGU7Y2FzZSA2OlI9MjY7YnJlYWsgZTtjYXNlIDc6Uj0yODticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjptPTE7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6Uj0zMDticmVhayBlfWlm''@;'; + put 'put ''KCEoMTw8KDMxJihNPTI1NSZrKSkmYVs1Njk0MCsoKE0+Pj41fEp0WzE0Mzc4OCsoMjU1JmIpPj4wXTw8Myk8PDIpPj4yXSkpe1I9MjQ7YnJlYWsgZX1tPTF9ZWxzZSBpZigzMT09KDB8UikpZm9yKDs7KXtpZihSPTAsYVtHPj4yXT1BPWMrMnwwLChLLSh3PUEpfDApPD0xKXtjPS0xO2JyZWFr''@;'; + put 'put ''IGV9c3dpdGNoKGM9MHxmZVtjKzM+PjBdLDB8KGM9KG09MHxmZVtBPj4wXSk8PDI0Pj4yND8wfGYwKG0sYyk6MHxKdFtEKygyNTUmYyk+PjBdKSl7Y2FzZSAxNDpjPUEsUj0zNzticmVhayB0O2Nhc2UgOTpjYXNlIDEwOmNhc2UgMjE6Yz1BLFI9MzE7YnJlYWs7ZGVmYXVsdDpSPTM2O2JyZWFr''@;'; + put 'put ''IGV9fX13aGlsZSgwKTt0OmRve2lmKDM3PT0oMHxSKSl7Zm9yKDs7KXtpZihSPTAsYVtHPj4yXT13PWMrMnwwLChLLShiPXcpfDApPD0xKXtjPS0xO2JyZWFrIGV9aWYoQT0wfGZlW2MrMz4+MF0sMTM9PSgxfChrPShtPTB8ZmVbdz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8SnRbRCsoMjU1''@;'; + put 'put ''JkEpPj4wXSkpKWJyZWFrO3N3aXRjaCgwfGspe2Nhc2UgOTpjYXNlIDEwOmNhc2UgMjE6Yz13LFI9Mzc7YnJlYWs7ZGVmYXVsdDpSPTQzO2JyZWFrIGV9fWFbRz4+Ml09Yz1jKzR8MDtuOmZvcig7Oyl7aWYoKDB8KHc9Sy1jfDApKTw9MSl7Yz0tMTticmVhayBlfWlmKEE9MHxmZVtjKzE+PjBd''@;'; + put 'put ''LCgwfChtPShtPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8SnRbRCsoMjU1JkEpPj4wXSkpPT0oMHxrKSlicmVhaztzd2l0Y2goMHxtKXtjYXNlIDg6Y2FzZSAxOmNhc2UgMDpSPTU2O2JyZWFrIGU7Y2FzZSAyOlI9NjE7YnJlYWsgZTtjYXNlIDU6ZGVmYXVsdDphW0c+PjJdPU09''@;'; + put 'put ''YysyfDAsYz1NO2NvbnRpbnVlIG47Y2FzZSA2OmlmKCgwfHcpPDMpe2M9LTI7YnJlYWsgZX1hW0c+PjJdPU09YyszfDAsYz1NO2NvbnRpbnVlIG47Y2FzZSA3OmlmKCgwfHcpPDQpe2M9LTI7YnJlYWsgZX1hW0c+PjJdPU09Yys0fDAsYz1NO2NvbnRpbnVlIG47Y2FzZSAzOmlmKCgwfChjPTB8''@;'; + put 'put ''ZGoobCxjKzJ8MCxmLEcpKSk8MSl7Uj01OTticmVhayBlfWM9MHxhW0c+PjJdO2NvbnRpbnVlIG59fWlmKGFbRz4+Ml09QT1jKzJ8MCwoSy0oYj1BKXwwKTw9MSl7Yz0tMTticmVhayBlfXN3aXRjaCh3PTB8ZmVbYyszPj4wXSwwfChtPShtPTB8ZmVbQT4+MF0pPDwyND4+MjQ/MHxmMChtLHcp''@;'; + put 'put ''OjB8SnRbRCsoMjU1JncpPj4wXSkpe2Nhc2UgMTE6Uj04MTticmVhayBlO2Nhc2UgMTc6Uj04MjticmVhayBlO2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6Yz1BO2JyZWFrO2RlZmF1bHQ6Uj02ODticmVhayBlfW46Zm9yKDs7KXtpZihhW0c+PjJdPUE9YysyfDAsKDB8KHc9Sy0obT1BKXwwKSk8''@;'; + put 'put ''PTEpe2M9LTE7YnJlYWsgZX1zd2l0Y2goaz0wfGZlW2MrMz4+MF0sMHwoTT0oYj0wfGZlW0E+PjBdKTw8MjQ+PjI0PzB8ZjAoYixrKTowfEp0W0QrKDI1NSZrKT4+MF0pKXtjYXNlIDU6Uj03NjticmVhayBlO2Nhc2UgNjpSPTc3O2JyZWFrIGU7Y2FzZSA3OlI9Nzk7YnJlYWsgZTtjYXNlIDEx''@;'; + put 'put ''OlI9ODE7YnJlYWsgZTtjYXNlIDE3OlI9ODI7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6bT0wO2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpjPUE7YnJlYWs7Y2FzZSAyOTpicmVhayBuO2RlZmF1bHQ6Uj04NzticmVhayBlfX1pZighKDE8PCgzMSYoTT0yNTUmaykpJmFbNTY5NDAr''@;'; + put 'put ''KChNPj4+NXxKdFsxNDM3ODgrKDI1NSZiKT4+MF08PDMpPDwyKT4+Ml0pKXtSPTc1O2JyZWFrIGV9bT0wfX13aGlsZSgwKTthW0c+PjJdPWM9Yys0fDB9c3dpdGNoKDB8Uil7Y2FzZSA5OmNhc2UgMTE6Y2FzZSAxNzpjYXNlIDU2OmNhc2UgNjE6Y2FzZSA4OTphW3A+PjJdPWMsYz0wO2JyZWFr''@;'; + put 'put ''O2Nhc2UgMTI6KDB8ayk8Mz9jPS0yOihhW3A+PjJdPWMsYz0wKTticmVhaztjYXNlIDE0OigwfGspPDQ/Yz0tMjooYVtwPj4yXT1jLGM9MCk7YnJlYWs7Y2FzZSAyNDpjYXNlIDI1OmNhc2UgODc6YVtwPj4yXT1tLGM9MDticmVhaztjYXNlIDI2OigwfHcpPDM/Yz0tMjooYVtwPj4yXT1tLGM9''@;'; + put 'put ''MCk7YnJlYWs7Y2FzZSAyODooMHx3KTw0P2M9LTI6KGFbcD4+Ml09bSxjPTApO2JyZWFrO2Nhc2UgMzA6Y2FzZSA3NTpjYXNlIDc2OmFbcD4+Ml09QSxjPTA7YnJlYWs7Y2FzZSAzNjphW3A+PjJdPXcsYz0wO2JyZWFrO2Nhc2UgNDM6Y2FzZSA2ODphW3A+PjJdPWIsYz0wO2JyZWFrO2Nhc2Ug''@;'; + put 'put ''NTk6Y3x8KGFbcD4+Ml09YVtHPj4yXSxjPTApO2JyZWFrO2Nhc2UgNzc6KDB8dyk8Mz9jPS0yOihhW3A+PjJdPUEsYz0wKTticmVhaztjYXNlIDc5OigwfHcpPDQ/Yz0tMjooYVtwPj4yXT1BLGM9MCk7YnJlYWs7Y2FzZSA4MTphW3A+PjJdPWMrNCxjPTE7YnJlYWs7Y2FzZSA4MjppZihhW0c+''@;'; + put 'put ''PjJdPW09QSsyfDAsKEstKGM9bSl8MCk+MSl7aWYoMD09KDB8ZmVbbT4+MF0pJiY2Mj09KDB8ZmVbQSszPj4wXSkpe2FbcD4+Ml09QSs0LGM9MzticmVha31hW3A+PjJdPWMsYz0wfWVsc2UgYz0tMX1yZXR1cm4gYWU9cGUsMHxjfWZ1bmN0aW9uIEpLKGwsYyxmKXtsfD0wLGN8PTAsYVsoZnw9''@;'; + put 'put ''MCk+PjJdPTExO2U6ZG97aWYoNj09KGMtbHwwKSYmMD09KDB8ZmVbbD4+MF0pKXtzd2l0Y2goMHxmZVtsKzE+PjBdKXtjYXNlIDEyMDpjPTA7YnJlYWs7Y2FzZSA4ODpjPTE7YnJlYWs7ZGVmYXVsdDpjPTE7YnJlYWsgZX1pZigwfGZlW2wrMj4+MF0pYz0xO2Vsc2V7c3dpdGNoKDB8ZmVbbCsz''@;'; + put 'put ''Pj4wXSl7Y2FzZSAxMDk6YnJlYWs7Y2FzZSA3NzpjPTE7YnJlYWs7ZGVmYXVsdDpjPTE7YnJlYWsgZX1pZigwfGZlW2wrND4+MF0pYz0xO2Vsc2V7c3dpdGNoKDB8ZmVbbCs1Pj4wXSl7Y2FzZSAxMDg6YnJlYWs7Y2FzZSA3NjpjPTA7YnJlYWsgZTtkZWZhdWx0OmM9MTticmVhayBlfWM/Yz0w''@;'; + put 'put ''OihhW2Y+PjJdPTEyLGM9MSl9fX1lbHNlIGM9MX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIHJkKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixBPTAsdz0wLGs9MDtiPTcyKyhjfD0wKXwwO2U6Zm9yKDs7KXt0OmZvcig7Oyl7aWYoKDB8KHc9cC1mfDApKTw9MSl7''@;'; + put 'put ''Zj0tMTticmVhayBlfXN3aXRjaChBPTB8ZmVbZisxPj4wXSwwfChBPShjPTB8ZmVbZj4+MF0pPDwyND4+MjQ/MHxmMChjLEEpOjB8SnRbYisoMjU1JkEpPj4wXSkpe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOms9MTA7YnJlYWsgZTtjYXNlIDY6az05O2JyZWFrIHQ7Y2FzZSA3Oms9MTk7YnJlYWsg''@;'; + put 'put ''dDtjYXNlIDU6ZGVmYXVsdDpmPWYrMnwwO2NvbnRpbnVlIHQ7Y2FzZSAxMzpjYXNlIDEyOmlmKGM9ZisyfDAsKDB8QSk9PSgwfGwpKXtrPTEyO2JyZWFrIGV9Zj1jO2NvbnRpbnVlIHR9fWlmKDkhPSgwfGspKWlmKDE5IT0oMHxrKSk7ZWxzZXtpZihrPTAsKDB8dyk8NCl7Zj0tMjticmVha31m''@;'; + put 'put ''PWYrNHwwfWVsc2V7aWYoaz0wLCgwfHcpPDMpe2Y9LTI7YnJlYWt9Zj1mKzN8MH19ZTpkb3tpZigxMD09KDB8aykpYVttPj4yXT1mLGY9MDtlbHNlIGlmKDEyPT0oMHxrKSlpZigocC1jfDApPjEpe3N3aXRjaChhW20+PjJdPWMsZj0wfGZlW2YrMz4+MF0sMHwoZj0ocD0wfGZlW2M+PjBdKTw8''@;'; + put 'put ''MjQ+PjI0PzB8ZjAocCxmKTowfEp0W2IrKDI1NSZmKT4+MF0pKXtjYXNlIDIwOmNhc2UgMzA6Y2FzZSAxMTpjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOmY9Mjc7YnJlYWsgZX1mPTB9ZWxzZSBmPS0yN313aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIG9MKGwsYyxmLHApe2x8PTAsY3w9MCxw''@;'; + put 'put ''fD0wO3ZhciBiLG09MCxBPTAsdz0wLGs9MDtiPWZ8PTA7ZTpkb3tpZigoYi1jfDApPjEpc3dpdGNoKG09MHxmZVtjPj4wXSxtPW08PDI0Pj4yND8wfGYwKG0sMHxmZVtjKzE+PjBdKTowfEp0W2wrNzIrKDB8SnRbYysxPj4wXSk+PjBdLDB8bSl7Y2FzZSAyNzptPTB8WjFlKGwsYysyfDAsZixw''@;'; + put 'put ''KTticmVhayBlO2Nhc2UgMjA6YVtwPj4yXT1jKzIsbT0zMzticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjp3PWwrNzJ8MDt0OmZvcig7Oyl7aWYoKDB8KGY9Yi0oQT1jKzJ8MCl8MCkpPD0xKXttPS0xO2JyZWFrIGV9c3dpdGNoKGw9MHxmZVtjKzM+PjBdLDB8KG09KG09MHxmZVtBPj4wXSk8PDI0''@;'; + put 'put ''Pj4yND8wfGYwKG0sbCk6MHxKdFt3KygyNTUmbCk+PjBdKSl7Y2FzZSAyNDpjYXNlIDIyOmM9QTticmVhaztjYXNlIDMwOms9MTU7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOmJyZWFrIHQ7ZGVmYXVsdDprPTIyO2JyZWFrIHR9fWlmKDIyPT0oMHxrKSl7YVtwPj4yXT1BLG09MDti''@;'; + put 'put ''cmVhayBlfXQ6ZG97aWYoMTU9PSgwfGspKXtpZigoMHxmKTw9Myl7bT0tMTticmVhayBlfXN3aXRjaChtPTB8ZmVbYys1Pj4wXSwwfChtPShsPTB8ZmVbYys0Pj4wXSk8PDI0Pj4yND8wfGYwKGwsbSk6MHxKdFt3KygyNTUmbSk+PjBdKSl7Y2FzZSAzMDpjYXNlIDEwOmNhc2UgOTpjYXNlIDIx''@;'; + put 'put ''OmJyZWFrO2RlZmF1bHQ6YnJlYWsgdH1hW3A+PjJdPUEsbT0wO2JyZWFrIGV9fXdoaWxlKDApO2FbcD4+Ml09QSxtPTE2O2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPWMsbT0wO2JyZWFrIGV9ZWxzZSBtPS0xfXdoaWxlKDApO3JldHVybiAwfG19ZnVuY3Rpb24gcjkobCxjLGYscCl7bHw9MCxw''@;'; + put 'put ''fD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7dz0oZnw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHx3KT4xKXtzd2l0Y2goMHwobT0oYj0wfGZlW2M+PjBdKTw8MjQ+PjI0PzB8ZjAoYixBPTB8ZmVbYysxPj4wXSk6MHxKdFtsKzcyKygyNTUmKEE9MHxmZVtjKzE+PjBdKSk+PjBdKSl7Y2FzZSAyOTpp''@;'; + put 'put ''ZighKDE8PCgzMSYodz0yNTUmQSkpJmFbNTY5NDArKCh3Pj4+NXwoMHxKdFsxNDM3ODgrKDI1NSZiKT4+MF0pPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6ZGVmYXVsdDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7''@;'; + put 'put ''Y2FzZSA2OmlmKCgwfHcpPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA3OmlmKCgwfHcpPDQpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGV9bD1sKzcyfDAsYj1jO3Q6Zm9yKDs7KXtpZihtPWIsKDB8KGM9Zi0oYj1iKzJ8MCl8MCkpPD0xKXtm''@;'; + put 'put ''PS0yMDticmVhayBlfXN3aXRjaChtPTB8ZmVbbSszPj4wXSwwfChBPSh3PTB8ZmVbYj4+MF0pPDwyND4+MjQ/MHxmMCh3LG0pOjB8SnRbbCsoMjU1Jm0pPj4wXSkpe2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpjb250aW51ZSB0O2Nhc2UgNTptPTIyO2JyZWFrIHQ7''@;'; + put 'put ''Y2FzZSA2Om09MjM7YnJlYWsgdDtjYXNlIDc6bT0yNTticmVhayB0O2Nhc2UgMzY6Y2FzZSAzMDpjYXNlIDExOmNhc2UgMzI6Y2FzZSAyMTpjYXNlIDEwOmNhc2UgOTptPTI3O2JyZWFrIHQ7Y2FzZSAyOTpicmVhaztkZWZhdWx0Om09Mjg7YnJlYWsgdH1pZighKDE8PCgzMSYoYz0yNTUmbSkp''@;'; + put 'put ''JmFbNTY5NDArKChjPj4+NXwoMHxKdFsxNDQwNDQrKDI1NSZ3KT4+MF0pPDwzKTw8Mik+PjJdKSl7bT0yMTticmVha319aWYoMjE9PSgwfG0pKXthW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDIyPT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha31pZigyMz09KDB8bSkpe2lmKCgwfGMpPDMpe2Y9''@;'; + put 'put ''LTI7YnJlYWt9YVtwPj4yXT1iLGY9MDticmVha31pZigyNT09KDB8bSkpe2lmKCgwfGMpPDQpe2Y9LTI7YnJlYWt9YVtwPj4yXT1iLGY9MDticmVha31pZigyNz09KDB8bSkpe2FbcD4+Ml09YixmPTIwO2JyZWFrfWlmKDI4PT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha319ZWxzZSBmPS0x''@;'; + put 'put ''fXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gcGoobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MDtlOmZvcig7Oylzd2l0Y2gobT0wfGZlW2w+PjBdLEE9MHxmZVtjPj4wXSxtPShtKy05NyYyNTUpPDI2PzIyNCsoMjU1Jm0pJjI1NTptLDMmKG08PDI0Pj4yND09KChBKy05''@;'; + put 'put ''NyYyNTUpPDI2PzIyNCsoMjU1JkEpJjI1NTpBKTw8MjQ+PjI0P208PDI0Pj4yND09MD8yOjA6MSkpe2Nhc2UgMDpjPWMrMXwwLGw9bCsxfDA7YnJlYWs7Y2FzZSAxOnA9MzticmVhayBlO2Nhc2UgMjpmPTE7YnJlYWsgZTtkZWZhdWx0OnA9NTticmVhayBlfXJldHVybiAzPT0oMHxwKSYmKGY9''@;'; + put 'put ''MCksMHxmfWZ1bmN0aW9uIG1nKGwsYyxmLHAsbSxBLHcsYixrLE0sRCl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLGt8PTAsTXw9MCxEfD0wO3ZhciBHLEsscGUsT2UsTGUsUmUsUj0wLGdlPTAsYmU9MDtSZT1hZSxhZT1hZSsxNnwwLE9lPVJlKzh8MCxHPVJlKzR8''@;'; + put 'put ''MCxLPVJlLGFbKHBlPVJlKzEyfDApPj4yXT0wLGFbRz4+Ml09MCxhW0s+PjJdPTAsYVtPZT4+Ml09Z2U9cCsoNSooYmU9MHxhWyhMZT1mKzY0fDApPj4yXSl8MCl8MCxnZT0wIT0oMHxnaihmLGdlLGJlPW0rKDAtKGJlPDwxKSl8MCxHLEsscGUsT2UpKSxwPVI9MHxhW0c+PjJdO2U6ZG97aWYo''@;'; + put 'put ''Z2UmMCE9KDB8Uikpe2dlPWYrMjR8MCxtPTB8YVtLPj4yXTtkb3tpZigwfHEwWzEyNyZhW2dlPj4yXV0oZixSLG0sMTQ0MzQwKSl7aWYoMHx3JiYoYVt3Pj4yXT1hW3BlPj4yXSksYj9hW2I+PjJdPXA9MHxhW09lPj4yXTpwPTB8YVtPZT4+Ml0sISgwfGdqKGYscCxiZSxHLEsscGUsT2UpKSl7''@;'; + put 'put ''YVtBPj4yXT1hW09lPj4yXSxwPTA7YnJlYWsgZX1pZigwfChtPTB8YVtHPj4yXSkpe3A9bSxSPW0sbT0wfGFbSz4+Ml07YnJlYWt9aWYoIWMpe3A9MTticmVhayBlfWFbQT4+Ml09YVtPZT4+Ml0scD0wO2JyZWFrIGV9aWYoIWMpe2FbQT4+Ml09cCxwPTA7YnJlYWsgZX19d2hpbGUoMCk7aWYo''@;'; + put 'put ''MHxxMFsxMjcmYVtnZT4+Ml1dKGYsUixtLDE0NDM0OCkpe2lmKHA9bT0wfGFbcGU+PjJdLCgoLTMzJigwfHM4KGYsbSxiZSkpKS02NXwwKT4+PjA+PTI2KXthW0E+PjJdPXAscD0wO2JyZWFrfWlmKDB8ayYmKGFbaz4+Ml09cCkscD0wfGFbT2U+PjJdLDB8TSYmKGFbTT4+Ml09MHxtaVs2MyZs''@;'; + put 'put ''XShmLG0scCsoMC0oMHxhW0xlPj4yXSkpfDApKSwhKDB8Z2ooZixwLGJlLEcsSyxwZSxPZSkpKXthW0E+PjJdPWFbT2U+PjJdLHA9MDticmVha31pZighKHA9MHxhW0c+PjJdKSl7cD0xO2JyZWFrfVI9cCxtPTB8YVtLPj4yXX1pZigwIT0oMHxjKXwwPT0oMHxxMFsxMjcmYVtnZT4+Ml1dKGYs''@;'; + put 'put ''UixtLDE0NDM1NykpKXthW0E+PjJdPXAscD0wO2JyZWFrfWlmKFI9bT0wfGFbcGU+PjJdLDB8cTBbMTI3JmFbZ2U+PjJdXShmLG0sKHA9MHxhW09lPj4yXSkrKDAtKDB8YVtMZT4+Ml0pKXwwLDEwNzY1NykpRCYmKGFbRD4+Ml09MSk7ZWxzZXtpZighKDB8cTBbMTI3JmFbZ2U+PjJdXShmLG0s''@;'; + put 'put ''cCsoMC0oMHxhW0xlPj4yXSkpfDAsMTA3NjQ5KSkpe2FbQT4+Ml09UixwPTA7YnJlYWt9RCYmKGFbRD4+Ml09MCl9Zm9yKDswfG5hKDB8czgoZixwLGJlKSk7KXA9cCsoMHxhW0xlPj4yXSl8MDthW09lPj4yXT1wLCgwfHApPT0oMHxiZSk/cD0xOihhW0E+PjJdPXAscD0wKX1lbHNlIGFbQT4+''@;'; + put 'put ''Ml09YVtPZT4+Ml0scD0wfXdoaWxlKDApO3JldHVybiBhZT1SZSwwfHB9ZnVuY3Rpb24gZ2oobCxjLGYscCxtLEEsdyl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MDt2YXIgYj0wLGs9MDtlOmRve2lmKCgwfGMpIT0oMHxmKSl7aWYoISgwfG5hKDB8czgobCxjLGYpKSkpe2Fb''@;'; + put 'put ''dz4+Ml09YyxjPTA7YnJlYWt9az1sKzY0fDA7ZG97Yz1jKygwfGFbaz4+Ml0pfDB9d2hpbGUoMCE9KDB8bmEoMHxzOChsLGMsZikpKSk7aWYoKDB8Yyk9PSgwfGYpKXthW3A+PjJdPTAsYz0xO2JyZWFrfWFbcD4+Ml09Yzt0OmZvcig7Oyl7c3dpdGNoKDB8KGI9MHxzOChsLGMsZikpKXtjYXNl''@;'; + put 'put ''LTE6Yj0xMTticmVhayB0O2Nhc2UgNjE6Yj0xMjticmVhayB0fWlmKDB8bmEoYikpe2I9MTQ7YnJlYWt9Yz1jKygwfGFbaz4+Ml0pfDB9aWYoMTE9PSgwfGIpKXthW3c+PjJdPWMsYz0wO2JyZWFrfWlmKDEyPT0oMHxiKSlhW20+PjJdPWM7ZWxzZSBpZigxND09KDB8Yikpe2FbbT4+Ml09Yztk''@;'; + put 'put ''b3tiPTB8czgobCxjPWMrKDB8YVtrPj4yXSl8MCxmKX13aGlsZSgwIT0oMHxuYShiKSkpO2lmKDYxIT0oMHxiKSl7YVt3Pj4yXT1jLGM9MDticmVha319aWYoKDB8Yyk9PSgwfGFbcD4+Ml0pKXthW3c+PjJdPWMsYz0wO2JyZWFrfWRve2I9MHxzOChsLGM9YysoMHxhW2s+PjJdKXwwLGYpfXdo''@;'; + put 'put ''aWxlKDAhPSgwfG5hKGIpKSk7c3dpdGNoKDB8Yil7Y2FzZSAzNDpjYXNlIDM5OmJyZWFrO2RlZmF1bHQ6YVt3Pj4yXT1jLGM9MDticmVhayBlfWFbQT4+Ml09bT1jKygwfGFbaz4+Ml0pfDAsYz1iPDwyND4+MjQ7dDpmb3IoOzspe2lmKCgwfChiPTB8czgobCxtLGYpKSk9PSgwfGMpKXtiPTMw''@;'; + put 'put ''O2JyZWFrfWlmKChiKy00OHwwKT4+PjA+OSYoKC0zMyZiKS02NXwwKT4+PjA+MjUpc3dpdGNoKDB8Yil7Y2FzZSA0NTpjYXNlIDQ2OmNhc2UgOTU6YnJlYWs7ZGVmYXVsdDpiPTI4O2JyZWFrIHR9bT1tKygwfGFbaz4+Ml0pfDB9aWYoMjg9PSgwfGIpKXthW3c+PjJdPW0sYz0wO2JyZWFrfWlm''@;'; + put 'put ''KDMwPT0oMHxiKSl7YVt3Pj4yXT1tKygwfGFbaz4+Ml0pLGM9MTticmVha319ZWxzZSBhW3A+PjJdPTAsYz0xfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gczgobCxjLGYpe3ZhciBwLG0sQSx3O3JldHVybiBsfD0wLGZ8PTAsQT1hZSxhZT1hZSsxNnwwLHA9QSs4fDAsbT1BLGFbKHc9''@;'; + put 'put ''QSs0fDApPj4yXT1jfD0wLGFbbT4+Ml09cCxPMlsxMjcmYVtsKzU2Pj4yXV0obCx3LGYsbSxwKzF8MCksYWU9QSwwfCgoMHxhW20+PjJdKT09KDB8cCk/LTE6MHxmZVtwPj4wXSl9ZnVuY3Rpb24gbmEobCl7c3dpdGNoKDB8KGx8PTApKXtjYXNlIDk6Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMzI6''@;'; + put 'put ''bD0xO2JyZWFrO2RlZmF1bHQ6bD0wfXJldHVybiAwfGx9ZnVuY3Rpb24gVmEobCxjKXtyZXR1cm4gMjg9PSgwfChjfD0wKSkmMD09KDB8YVsxNisobHw9MCk+PjJdKT9sPTU5OihhW2w+PjJdPTE4LGw9LTEpLDB8bH1mdW5jdGlvbiAkSyhsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAs''@;'; + put 'put ''bXw9MDt2YXIgQT0wLHc9MCxiPTA7ZTpkb3tzd2l0Y2goMHxjKXtjYXNlLTQ6Y2FzZSAxNTpsPTA7YnJlYWs7Y2FzZSAxNjppZigwfHEwWzEyNyZhWyhBPW0rMjR8MCk+PjJdXShtLGYrKGFbKHc9bSs2NHwwKT4+Ml08PDEpfDAscCwxNDQzOTApKXthW2w+PjJdPTI0LGw9MTE7YnJlYWsgZX1p''@;'; + put 'put ''ZigwfHEwWzEyNyZhW0E+PjJdXShtLGYrKGFbdz4+Ml08PDEpfDAscCwxNDQzOTcpKXthW2w+PjJdPTI1LGw9MzM7YnJlYWsgZX1pZigwfHEwWzEyNyZhW0E+PjJdXShtLGYrKGFbdz4+Ml08PDEpfDAscCwxNDQ0MDUpKXthW2w+PjJdPTI2LGw9Mzk7YnJlYWsgZX0wfHEwWzEyNyZhW0E+PjJd''@;'; + put 'put ''XShtLGYrKGFbdz4+Ml08PDEpfDAscCwxNDQ0MTMpPyhhW2w+PjJdPTI3LGw9MTcpOmI9MTQ7YnJlYWs7Y2FzZSAxMTpsPTU1O2JyZWFrO2Nhc2UgMTM6bD01NjticmVhaztjYXNlIDI4Omw9NjA7YnJlYWs7Y2FzZSAyNjphW2w+PjJdPTI4LGw9MzticmVhaztkZWZhdWx0OmI9MTR9fXdoaWxl''@;'; + put 'put ''KDApO3JldHVybiAxND09KDB8YikmJihsPTB8VmEobCxjKSksMHxsfWZ1bmN0aW9uIEIwKGwpe2x8PTA7dmFyIFZlLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wO1ZlPWFlLGFlPWFl''@;'; + put 'put ''KzE2fDAsSz1WZTtkb3tpZihsPj4+MDwyNDUpe2lmKDMmKGY9KEc9MHxhWzQ3NTE5XSk+Pj4obD0oRD1sPj4+MDwxMT8xNjpsKzExJi04KT4+PjMpKXwwKXJldHVybigwfChBPTB8YVsobT04KyhwPTB8YVsoZj04KyhsPTE5MDExNisoKGM9KDEmZl4xKStsfDApPDwxPDwyKXwwKXwwKT4+Ml0p''@;'; + put 'put ''fDApPj4yXSkpPT0oMHxsKT9hWzQ3NTE5XT1HJn4oMTw8Yyk6KGFbQSsxMj4+Ml09bCxhW2Y+PjJdPUEpLGFbcCs0Pj4yXT0zfChIZT1jPDwzKSxhWyhIZT1wK0hlKzR8MCk+PjJdPTF8YVtIZT4+Ml0sYWU9VmUsMHxtO2lmKEQ+Pj4wPihSPTB8YVs0NzUyMV0pPj4+MCl7aWYoMHxmKXJldHVy''@;'; + put 'put ''biBjPSgoYz1mPDxsJigoYz0yPDxsKXwwLWMpKSYwLWMpLTF8MCwoMHwoZj0wfGFbKGI9OCsoQT0wfGFbKGw9OCsoYz0xOTAxMTYrKChwPSgoZj0oYz4+Pj1iPWM+Pj4xMiYxNik+Pj41JjgpfGJ8KEE9KGM+Pj49Zik+Pj4yJjQpfChsPShjPj4+PUEpPj4+MSYyKXwocD0oYz4+Pj1sKT4+PjEm''@;'; + put 'put ''MSkpKyhjPj4+cCl8MCk8PDE8PDIpfDApfDApPj4yXSl8MCk+PjJdKSk9PSgwfGMpP2FbNDc1MTldPWw9RyZ+KDE8PHApOihhW2YrMTI+PjJdPWMsYVtsPj4yXT1mLGw9Ryksdz0oSGU9cDw8MyktRHwwLGFbQSs0Pj4yXT0zfEQsYVs0KyhtPUErRHwwKT4+Ml09MXx3LGFbQStIZT4+Ml09dyww''@;'; + put 'put ''fFImJihwPTB8YVs0NzUyNF0sZj0xOTAxMTYrKChjPVI+Pj4zKTw8MTw8Mil8MCxsJihjPTE8PGMpP2M9MHxhWyhsPWYrOHwwKT4+Ml06KGFbNDc1MTldPWx8YyxjPWYsbD1mKzh8MCksYVtsPj4yXT1wLGFbYysxMj4+Ml09cCxhW3ArOD4+Ml09YyxhW3ArMTI+PjJdPWYpLGFbNDc1MjFdPXcs''@;'; + put 'put ''YVs0NzUyNF09bSxhZT1WZSwwfGI7aWYoaz0wfGFbNDc1MjBdKXtpZihmPShrJjAtayktMXwwLGY9KC04JmFbNCsobD0wfGFbMTkwMzgwKygoKHc9KGY+Pj49Yj1mPj4+MTImMTYpPj4+NSY4KXxifChNPShmPj4+PXcpPj4+MiY0KXwocD0oZj4+Pj1NKT4+PjEmMil8KGw9KGY+Pj49cCk+Pj4x''@;'; + put 'put ''JjEpKSsoZj4+PmwpPDwyKT4+Ml0pPj4yXSktRHwwLHA9MHxhW2wrMTYrKCgwPT0oMHxhW2wrMTY+PjJdKSYxKTw8Mik+PjJdKXtkb3tmPShNPShiPSgtOCZhW3ArND4+Ml0pLUR8MCk+Pj4wPGY+Pj4wKT9iOmYsbD1NP3A6bCxwPTB8YVtwKzE2KygoMD09KDB8YVtwKzE2Pj4yXSkmMSk8PDIp''@;'; + put 'put ''Pj4yXX13aGlsZSgwIT0oMHxwKSk7TT1sLHc9Zn1lbHNlIE09bCx3PWY7aWYoKGI9TStEfDApPj4+MD5NPj4+MCl7bT0wfGFbTSsyND4+Ml0sYz0wfGFbTSsxMj4+Ml07ZG97aWYoKDB8Yyk9PSgwfE0pKXtpZighKGM9MHxhWyhsPU0rMjB8MCk+PjJdKSYmIShjPTB8YVsobD1NKzE2fDApPj4y''@;'; + put 'put ''XSkpe2Y9MDticmVha31mb3IoOzspaWYoMHwocD0wfGFbKGY9YysyMHwwKT4+Ml0pKWM9cCxsPWY7ZWxzZXtpZighKHA9MHxhWyhmPWMrMTZ8MCk+PjJdKSlicmVhaztjPXAsbD1mfWFbbD4+Ml09MCxmPWN9ZWxzZSBhWzEyKyhmPTB8YVtNKzg+PjJdKT4+Ml09YyxhW2MrOD4+Ml09ZixmPWN9''@;'; + put 'put ''d2hpbGUoMCk7ZG97aWYoMHxtKXtpZigoMHxNKT09KDB8YVsobD0xOTAzODArKChjPTB8YVtNKzI4Pj4yXSk8PDIpfDApPj4yXSkpe2lmKGFbbD4+Ml09ZiwhZil7YVs0NzUyMF09ayZ+KDE8PGMpO2JyZWFrfX1lbHNlIGlmKGFbbSsxNisoKCgwfGFbbSsxNj4+Ml0pIT0oMHxNKSYxKTw8Mik+''@;'; + put 'put ''PjJdPWYsIWYpYnJlYWs7YVtmKzI0Pj4yXT1tLDB8KGM9MHxhW00rMTY+PjJdKSYmKGFbZisxNj4+Ml09YyxhW2MrMjQ+PjJdPWYpLDB8KGM9MHxhW00rMjA+PjJdKSYmKGFbZisyMD4+Ml09YyxhW2MrMjQ+PjJdPWYpfX13aGlsZSgwKTtyZXR1cm4gdz4+PjA8MTY/KGFbTSs0Pj4yXT0zfChI''@;'; + put 'put ''ZT13K0R8MCksYVsoSGU9TStIZSs0fDApPj4yXT0xfGFbSGU+PjJdKTooYVtNKzQ+PjJdPTN8RCxhW2IrND4+Ml09MXx3LGFbYit3Pj4yXT13LDB8UiYmKHA9MHxhWzQ3NTI0XSxmPTE5MDExNisoKGM9Uj4+PjMpPDwxPDwyKXwwLEcmKGM9MTw8Yyk/Yz0wfGFbKGw9Zis4fDApPj4yXTooYVs0''@;'; + put 'put ''NzUxOV09R3xjLGM9ZixsPWYrOHwwKSxhW2w+PjJdPXAsYVtjKzEyPj4yXT1wLGFbcCs4Pj4yXT1jLGFbcCsxMj4+Ml09ZiksYVs0NzUyMV09dyxhWzQ3NTI0XT1iKSxhZT1WZSwwfE0rOH1SPUR9ZWxzZSBSPUR9ZWxzZSBSPUR9ZWxzZSBpZihsPj4+MDw9NDI5NDk2NzIzMSlpZihEPS04Jihs''@;'; + put 'put ''PWwrMTF8MCksTT0wfGFbNDc1MjBdKXtwPTAtRHwwLGs9KGw+Pj49OCk/RD4+PjA+MTY3NzcyMTU/MzE6RD4+Pig3KyhrPTE0LSgoUj0oNTIwMTkyKyhSZT1sPDwoRz0obCsxMDQ4MzIwfDApPj4+MTYmOCkpfDApPj4+MTYmNCl8R3woaz0oMjQ1NzYwKyhSZTw8PVIpfDApPj4+MTYmMikpKyhS''@;'; + put 'put ''ZTw8az4+PjE1KXwwKXwwKSYxfGs8PDE6MCxmPTB8YVsxOTAzODArKGs8PDIpPj4yXTtlOmRve2lmKGYpZm9yKGw9MCxiPWYsdz1EPDwoMzE9PSgwfGspPzA6MjUtKGs+Pj4xKXwwKSxmPTA7Oyl7aWYoKG09KC04JmFbYis0Pj4yXSktRHwwKT4+PjA8cD4+PjApe2lmKCFtKXtwPTAsZj1iLGw9''@;'; + put 'put ''YixSZT02MTticmVhayBlfWw9YixwPW19aWYoZj0wPT0oMHwobT0wfGFbYisyMD4+Ml0pKXwoMHxtKT09KDB8KGI9MHxhW2IrMTYrKHc+Pj4zMTw8Mik+PjJdKSk/ZjptLG09MD09KDB8Yikpe1JlPTU3O2JyZWFrfXc8PD0xJigxXm0pfWVsc2UgZj0wLGw9MCxSZT01N313aGlsZSgwKTtpZig1''@;'; + put 'put ''Nz09KDB8UmUpKXtpZigwPT0oMHxmKSYwPT0oMHxsKSl7aWYoIShsPU0mKChsPTI8PGspfDAtbCkpKXtSPUQ7YnJlYWt9Rz0obCYwLWwpLTF8MCxsPTAsZj0wfGFbMTkwMzgwKygoKHc9KEc+Pj49Yj1HPj4+MTImMTYpPj4+NSY4KXxifChrPShHPj4+PXcpPj4+MiY0KXwoUj0oRz4+Pj1rKT4+''@;'; + put 'put ''PjEmMil8KGY9KEc+Pj49Uik+Pj4xJjEpKSsoRz4+PmYpPDwyKT4+Ml19Zj9SZT02MTooYj1sLHc9cCl9aWYoNjE9PSgwfFJlKSlmb3IoOzspe2lmKFJlPTAscD0oRz0oUj0oLTgmYVtmKzQ+PjJdKS1EfDApPj4+MDxwPj4+MCk/UjpwLGw9Rz9mOmwsIShmPTB8YVtmKzE2KygoMD09KDB8YVtm''@;'; + put 'put ''KzE2Pj4yXSkmMSk8PDIpPj4yXSkpe2I9bCx3PXA7YnJlYWt9UmU9NjF9aWYoMCE9KDB8YikmJnc+Pj4wPCgoMHxhWzQ3NTIxXSktRHwwKT4+PjApe2lmKChBPWIrRHwwKT4+PjA8PWI+Pj4wKXJldHVybiBhZT1WZSwwO209MHxhW2IrMjQ+PjJdLGM9MHxhW2IrMTI+PjJdO2Rve2lmKCgwfGMp''@;'; + put 'put ''PT0oMHxiKSl7aWYoIShjPTB8YVsobD1iKzIwfDApPj4yXSkmJiEoYz0wfGFbKGw9YisxNnwwKT4+Ml0pKXtjPTA7YnJlYWt9Zm9yKDs7KWlmKDB8KHA9MHxhWyhmPWMrMjB8MCk+PjJdKSljPXAsbD1mO2Vsc2V7aWYoIShwPTB8YVsoZj1jKzE2fDApPj4yXSkpYnJlYWs7Yz1wLGw9Zn1hW2w+''@;'; + put 'put ''PjJdPTB9ZWxzZSBhWzEyKyhIZT0wfGFbYis4Pj4yXSk+PjJdPWMsYVtjKzg+PjJdPUhlfXdoaWxlKDApO2Rve2lmKG0pe2lmKCgwfGIpPT0oMHxhWyhmPTE5MDM4MCsoKGw9MHxhW2IrMjg+PjJdKTw8Mil8MCk+PjJdKSl7aWYoYVtmPj4yXT1jLCFjKXthWzQ3NTIwXT1wPU0mfigxPDxsKTti''@;'; + put 'put ''cmVha319ZWxzZSBpZihhW20rMTYrKCgoMHxhW20rMTY+PjJdKSE9KDB8YikmMSk8PDIpPj4yXT1jLCFjKXtwPU07YnJlYWt9YVtjKzI0Pj4yXT1tLDB8KGw9MHxhW2IrMTY+PjJdKSYmKGFbYysxNj4+Ml09bCxhW2wrMjQ+PjJdPWMpLChsPTB8YVtiKzIwPj4yXSkmJihhW2MrMjA+PjJdPWws''@;'; + put 'put ''YVtsKzI0Pj4yXT1jKSxwPU19ZWxzZSBwPU19d2hpbGUoMCk7ZG97aWYodz4+PjA+PTE2KXtpZihhW2IrND4+Ml09M3xELGFbQSs0Pj4yXT0xfHcsYVtBK3c+PjJdPXcsYz13Pj4+Myx3Pj4+MDwyNTYpe2Y9MTkwMTE2KyhjPDwxPDwyKXwwLChsPTB8YVs0NzUxOV0pJihjPTE8PGMpP2M9MHxh''@;'; + put 'put ''WyhsPWYrOHwwKT4+Ml06KGFbNDc1MTldPWx8YyxjPWYsbD1mKzh8MCksYVtsPj4yXT1BLGFbYysxMj4+Ml09QSxhW0ErOD4+Ml09YyxhW0ErMTI+PjJdPWY7YnJlYWt9aWYoZj0xOTAzODArKChjPShjPXc+Pj44KT93Pj4+MD4xNjc3NzIxNT8zMTp3Pj4+KDcrKGM9MTQtKChMZT0oNTIwMTky''@;'; + put 'put ''KyhIZT1jPDwoUmU9KGMrMTA0ODMyMHwwKT4+PjE2JjgpKXwwKT4+PjE2JjQpfFJlfChjPSgyNDU3NjArKEhlPDw9TGUpfDApPj4+MTYmMikpKyhIZTw8Yz4+PjE1KXwwKXwwKSYxfGM8PDE6MCk8PDIpfDAsYVtBKzI4Pj4yXT1jLGFbNCsobD1BKzE2fDApPj4yXT0wLGFbbD4+Ml09MCwhKHAm''@;'; + put 'put ''KGw9MTw8YykpKXthWzQ3NTIwXT1wfGwsYVtmPj4yXT1BLGFbQSsyND4+Ml09ZixhW0ErMTI+PjJdPUEsYVtBKzg+PjJdPUE7YnJlYWt9Zm9yKGw9dzw8KDMxPT0oMHxjKT8wOjI1LShjPj4+MSl8MCksZj0wfGFbZj4+Ml07Oyl7aWYoKC04JmFbZis0Pj4yXXwwKT09KDB8dykpe1JlPTk3O2Jy''@;'; + put 'put ''ZWFrfWlmKCEoYz0wfGFbKHA9ZisxNisobD4+PjMxPDwyKXwwKT4+Ml0pKXtSZT05NjticmVha31sPDw9MSxmPWN9aWYoOTY9PSgwfFJlKSl7YVtwPj4yXT1BLGFbQSsyND4+Ml09ZixhW0ErMTI+PjJdPUEsYVtBKzg+PjJdPUE7YnJlYWt9aWYoOTc9PSgwfFJlKSl7YVsxMisoSGU9MHxhWyhS''@;'; + put 'put ''ZT1mKzh8MCk+PjJdKT4+Ml09QSxhW1JlPj4yXT1BLGFbQSs4Pj4yXT1IZSxhW0ErMTI+PjJdPWYsYVtBKzI0Pj4yXT0wO2JyZWFrfX1lbHNlIGFbYis0Pj4yXT0zfChIZT13K0R8MCksYVsoSGU9YitIZSs0fDApPj4yXT0xfGFbSGU+PjJdfXdoaWxlKDApO3JldHVybiBhZT1WZSwwfGIrOH1S''@;'; + put 'put ''PUR9ZWxzZSBSPUQ7ZWxzZSBSPS0xfXdoaWxlKDApO2lmKChmPTB8YVs0NzUyMV0pPj4+MD49Uj4+PjApcmV0dXJuIGw9MHxhWzQ3NTI0XSwoYz1mLVJ8MCk+Pj4wPjE1PyhhWzQ3NTI0XT1IZT1sK1J8MCxhWzQ3NTIxXT1jLGFbSGUrND4+Ml09MXxjLGFbbCtmPj4yXT1jLGFbbCs0Pj4yXT0z''@;'; + put 'put ''fFIpOihhWzQ3NTIxXT0wLGFbNDc1MjRdPTAsYVtsKzQ+PjJdPTN8ZixhWyhIZT1sK2YrNHwwKT4+Ml09MXxhW0hlPj4yXSksYWU9VmUsMHxsKzg7aWYoKGI9MHxhWzQ3NTIyXSk+Pj4wPlI+Pj4wKXJldHVybiBhWzQ3NTIyXT1MZT1iLVJ8MCxhWzQ3NTI1XT1SZT0oSGU9MHxhWzQ3NTI1XSkr''@;'; + put 'put ''UnwwLGFbUmUrND4+Ml09MXxMZSxhW0hlKzQ+PjJdPTN8UixhZT1WZSwwfEhlKzg7aWYoMHxhWzQ3NjM3XT9sPTB8YVs0NzYzOV06KGFbNDc2MzldPTQwOTYsYVs0NzYzOF09NDA5NixhWzQ3NjQwXT0tMSxhWzQ3NjQxXT0tMSxhWzQ3NjQyXT0wLGFbNDc2MzBdPTAsYVs0NzYzN109LTE2Jkte''@;'; + put 'put ''MTQzMTY1NTc2OCxsPTQwOTYpLGs9Uis0OHwwLChEPSh3PWwrKE09Uis0N3wwKXwwKSYobT0wLWx8MCkpPj4+MDw9Uj4+PjB8fDB8KGw9MHxhWzQ3NjI5XSkmJihLPShHPTB8YVs0NzYyN10pK0R8MCk+Pj4wPD1HPj4+MHxLPj4+MD5sPj4+MClyZXR1cm4gYWU9VmUsMDtlOmRve2lmKDQmYVs0''@;'; + put 'put ''NzYzMF0pYz0wLFJlPTEzMztlbHNle2Y9MHxhWzQ3NTI1XTt0OmRve2lmKGYpe2ZvcihwPTE5MDUyNDshKChsPTB8YVtwPj4yXSk+Pj4wPD1mPj4+MCYmKGJlPXArNHwwLChsKygwfGFbYmU+PjJdKXwwKT4+PjA+Zj4+PjApKTspe2lmKCEobD0wfGFbcCs4Pj4yXSkpe1JlPTExODticmVhayB0''@;'; + put 'put ''fXA9bH1pZigoYz13LWImbSk+Pj4wPDIxNDc0ODM2NDcpaWYoKDB8KGw9MHx5MigwfGMpKSk9PSgoMHxhW3A+PjJdKSsoMHxhW2JlPj4yXSl8MCkpe2lmKC0xIT0oMHxsKSl7dz1jLEE9bCxSZT0xMzU7YnJlYWsgZX19ZWxzZSBwPWwsUmU9MTI2O2Vsc2UgYz0wfWVsc2UgUmU9MTE4fXdoaWxl''@;'; + put 'put ''KDApO2Rve2lmKDExOD09KDB8UmUpKWlmKC0xIT0oMHwoZj0wfHkyKDApKSkmJihnZT0oYz0oMD09KChnZT0ocGU9MHxhWzQ3NjM4XSktMXwwKSYoYz1mKXwwKT8wOihnZStjJjAtcGUpLWN8MCkrRHwwKSsocGU9MHxhWzQ3NjI3XSl8MCxjPj4+MD5SPj4+MCZjPj4+MDwyMTQ3NDgzNjQ3KSl7''@;'; + put 'put ''aWYoMHwoYmU9MHxhWzQ3NjI5XSkmJmdlPj4+MDw9cGU+Pj4wfGdlPj4+MD5iZT4+PjApe2M9MDticmVha31pZigoMHwobD0wfHkyKDB8YykpKT09KDB8Zikpe3c9YyxBPWYsUmU9MTM1O2JyZWFrIGV9cD1sLFJlPTEyNn1lbHNlIGM9MH13aGlsZSgwKTtkb3tpZigxMjY9PSgwfFJlKSl7aWYo''@;'; + put 'put ''Zj0wLWN8MCwhKGs+Pj4wPmM+Pj4wJmM+Pj4wPDIxNDc0ODM2NDcmLTEhPSgwfHApKSl7aWYoLTE9PSgwfHApKXtjPTA7YnJlYWt9dz1jLEE9cCxSZT0xMzU7YnJlYWsgZX1pZigobD1NLWMrKGw9MHxhWzQ3NjM5XSkmMC1sKT4+PjA+PTIxNDc0ODM2NDcpe3c9YyxBPXAsUmU9MTM1O2JyZWFr''@;'; + put 'put ''IGV9aWYoLTE9PSgwfHkyKDB8bCkpKXt5MigwfGYpLGM9MDticmVha313PWwrY3wwLEE9cCxSZT0xMzU7YnJlYWsgZX19d2hpbGUoMCk7YVs0NzYzMF09NHxhWzQ3NjMwXSxSZT0xMzN9fXdoaWxlKDApO2lmKDEzMz09KDB8UmUpJiZEPj4+MDwyMTQ3NDgzNjQ3JiYhKC0xPT0oMHwoQT0wfHky''@;'; + put 'put ''KDB8RCkpKXwxXihMZT0oT2U9KGJlPTB8eTIoMCkpLUF8MCk+Pj4wPihSKzQwfDApPj4+MCl8QT4+PjA8YmU+Pj4wJi0xIT0oMHxBKSYtMSE9KDB8YmUpXjEpJiYodz1MZT9PZTpjLFJlPTEzNSksMTM1PT0oMHxSZSkpe2FbNDc2MjddPWM9KDB8YVs0NzYyN10pK3d8MCxjPj4+MD4oMHxhWzQ3''@;'; + put 'put ''NjI4XSk+Pj4wJiYoYVs0NzYyOF09Yyksaz0wfGFbNDc1MjVdO2Rve2lmKGspe2ZvcihjPTE5MDUyNDs7KXtpZigoMHxBKT09KChsPTB8YVtjPj4yXSkrKHA9MHxhWyhmPWMrNHwwKT4+Ml0pfDApKXtSZT0xNDM7YnJlYWt9aWYoIShtPTB8YVtjKzg+PjJdKSlicmVhaztjPW19aWYoMTQzPT0o''@;'; + put 'put ''MHxSZSkmJjA9PSg4JmFbYysxMj4+Ml18MCkmJkE+Pj4wPms+Pj4wJmw+Pj4wPD1rPj4+MCl7YVtmPj4yXT1wK3csUmU9aysoTGU9MD09KDcmKExlPWsrOHwwKXwwKT8wOjAtTGUmNyl8MCxMZT0oSGU9KDB8YVs0NzUyMl0pK3d8MCktTGV8MCxhWzQ3NTI1XT1SZSxhWzQ3NTIyXT1MZSxhW1Jl''@;'; + put 'put ''KzQ+PjJdPTF8TGUsYVtrK0hlKzQ+PjJdPTQwLGFbNDc1MjZdPWFbNDc2NDFdO2JyZWFrfWZvcihBPj4+MDwoMHxhWzQ3NTIzXSk+Pj4wJiYoYVs0NzUyM109QSksbD1BK3d8MCxjPTE5MDUyNDs7KXtpZigoMHxhW2M+PjJdKT09KDB8bCkpe1JlPTE1MTticmVha31pZighKGM9MHxhW2MrOD4+''@;'; + put 'put ''Ml0pKXtsPTE5MDUyNDticmVha319aWYoMTUxPT0oMHxSZSkpe2lmKCEoOCZhW2MrMTI+PjJdKSl7YVtjPj4yXT1BLGFbKEQ9Yys0fDApPj4yXT0oMHxhW0Q+PjJdKSt3LE09KEQ9QSsoMD09KDcmKEQ9QSs4fDApfDApPzA6MC1EJjcpfDApK1J8MCxiPShjPWwrKDA9PSg3JihjPWwrOHwwKXww''@;'; + put 'put ''KT8wOjAtYyY3KXwwKS1ELVJ8MCxhW0QrND4+Ml09M3xSO2Rve2lmKCgwfGspIT0oMHxjKSl7aWYoKDB8YVs0NzUyNF0pPT0oMHxjKSl7YVs0NzUyMV09SGU9KDB8YVs0NzUyMV0pK2J8MCxhWzQ3NTI0XT1NLGFbTSs0Pj4yXT0xfEhlLGFbTStIZT4+Ml09SGU7YnJlYWt9aWYoMT09KDMmKGw9''@;'; + put 'put ''MHxhW2MrND4+Ml0pfDApKXt3PS04JmwscD1sPj4+MztlOmRve2lmKGw+Pj4wPDI1Nil7aWYoKDB8KGY9MHxhW2MrMTI+PjJdKSk9PSgwfChsPTB8YVtjKzg+PjJdKSkpe2FbNDc1MTldPWFbNDc1MTldJn4oMTw8cCk7YnJlYWt9YVtsKzEyPj4yXT1mLGFbZis4Pj4yXT1sO2JyZWFrfUE9MHxh''@;'; + put 'put ''W2MrMjQ+PjJdLGw9MHxhW2MrMTI+PjJdO2Rve2lmKCgwfGwpPT0oMHxjKSl7aWYoIShsPTB8YVsoZj00KyhwPWMrMTZ8MCl8MCk+PjJdKSl7aWYoIShsPTB8YVtwPj4yXSkpe2w9MDticmVha31mPXB9Zm9yKDs7KWlmKDB8KG09MHxhWyhwPWwrMjB8MCk+PjJdKSlsPW0sZj1wO2Vsc2V7aWYo''@;'; + put 'put ''IShtPTB8YVsocD1sKzE2fDApPj4yXSkpYnJlYWs7bD1tLGY9cH1hW2Y+PjJdPTB9ZWxzZSBhWzEyKyhIZT0wfGFbYys4Pj4yXSk+PjJdPWwsYVtsKzg+PjJdPUhlfXdoaWxlKDApO2lmKCFBKWJyZWFrO3A9MTkwMzgwKygoZj0wfGFbYysyOD4+Ml0pPDwyKXwwO2Rve2lmKCgwfGFbcD4+Ml0p''@;'; + put 'put ''PT0oMHxjKSl7aWYoYVtwPj4yXT1sLDB8bClicmVhazthWzQ3NTIwXT1hWzQ3NTIwXSZ+KDE8PGYpO2JyZWFrIGV9aWYoYVtBKzE2KygoKDB8YVtBKzE2Pj4yXSkhPSgwfGMpJjEpPDwyKT4+Ml09bCwhbClicmVhayBlfXdoaWxlKDApO2lmKGFbbCsyND4+Ml09QSwwfChwPTB8YVsoZj1jKzE2''@;'; + put 'put ''fDApPj4yXSkmJihhW2wrMTY+PjJdPXAsYVtwKzI0Pj4yXT1sKSwhKGY9MHxhW2YrND4+Ml0pKWJyZWFrO2FbbCsyMD4+Ml09ZixhW2YrMjQ+PjJdPWx9d2hpbGUoMCk7Yz1jK3d8MCxtPXcrYnwwfWVsc2UgbT1iO2lmKGFbKGM9Yys0fDApPj4yXT0tMiZhW2M+PjJdLGFbTSs0Pj4yXT0xfG0s''@;'; + put 'put ''YVtNK20+PjJdPW0sYz1tPj4+MyxtPj4+MDwyNTYpe2Y9MTkwMTE2KyhjPDwxPDwyKXwwLChsPTB8YVs0NzUxOV0pJihjPTE8PGMpP2M9MHxhWyhsPWYrOHwwKT4+Ml06KGFbNDc1MTldPWx8YyxjPWYsbD1mKzh8MCksYVtsPj4yXT1NLGFbYysxMj4+Ml09TSxhW00rOD4+Ml09YyxhW00rMTI+''@;'; + put 'put ''PjJdPWY7YnJlYWt9Yz1tPj4+ODtkb3tpZihjKXtpZihtPj4+MD4xNjc3NzIxNSl7Yz0zMTticmVha31jPW0+Pj4oNysoYz0xNC0oKExlPSg1MjAxOTIrKEhlPWM8PChSZT0oYysxMDQ4MzIwfDApPj4+MTYmOCkpfDApPj4+MTYmNCl8UmV8KGM9KDI0NTc2MCsoSGU8PD1MZSl8MCk+Pj4xNiYy''@;'; + put 'put ''KSkrKEhlPDxjPj4+MTUpfDApfDApJjF8Yzw8MX1lbHNlIGM9MH13aGlsZSgwKTtpZihwPTE5MDM4MCsoYzw8Mil8MCxhW00rMjg+PjJdPWMsYVs0KyhsPU0rMTZ8MCk+PjJdPTAsYVtsPj4yXT0wLCEoKGw9MHxhWzQ3NTIwXSkmKGY9MTw8YykpKXthWzQ3NTIwXT1sfGYsYVtwPj4yXT1NLGFb''@;'; + put 'put ''TSsyND4+Ml09cCxhW00rMTI+PjJdPU0sYVtNKzg+PjJdPU07YnJlYWt9Zm9yKGw9bTw8KDMxPT0oMHxjKT8wOjI1LShjPj4+MSl8MCksZj0wfGFbcD4+Ml07Oyl7aWYoKC04JmFbZis0Pj4yXXwwKT09KDB8bSkpe1JlPTE5MjticmVha31pZighKGM9MHxhWyhwPWYrMTYrKGw+Pj4zMTw8Mil8''@;'; + put 'put ''MCk+PjJdKSl7UmU9MTkxO2JyZWFrfWw8PD0xLGY9Y31pZigxOTE9PSgwfFJlKSl7YVtwPj4yXT1NLGFbTSsyND4+Ml09ZixhW00rMTI+PjJdPU0sYVtNKzg+PjJdPU07YnJlYWt9aWYoMTkyPT0oMHxSZSkpe2FbMTIrKEhlPTB8YVsoUmU9Zis4fDApPj4yXSk+PjJdPU0sYVtSZT4+Ml09TSxh''@;'; + put 'put ''W00rOD4+Ml09SGUsYVtNKzEyPj4yXT1mLGFbTSsyND4+Ml09MDticmVha319ZWxzZSBhWzQ3NTIyXT1IZT0oMHxhWzQ3NTIyXSkrYnwwLGFbNDc1MjVdPU0sYVtNKzQ+PjJdPTF8SGV9d2hpbGUoMCk7cmV0dXJuIGFlPVZlLDB8RCs4fWw9MTkwNTI0fWZvcig7ISgoYz0wfGFbbD4+Ml0pPj4+''@;'; + put 'put ''MDw9az4+PjAmJihIZT1jKygwfGFbbCs0Pj4yXSl8MCxIZT4+PjA+az4+PjApKTspbD0wfGFbbCs4Pj4yXTtjPShsPShsPShtPUhlKy00N3wwKSsoMD09KDcmKGw9bSs4fDApfDApPzA6MC1sJjcpfDApPj4+MDwobT1rKzE2fDApPj4+MD9rOmwpKzh8MCxSZT1BKyhMZT0wPT0oNyYoTGU9QSs4''@;'; + put 'put ''fDApfDApPzA6MC1MZSY3KXwwLExlPShmPXcrLTQwfDApLUxlfDAsYVs0NzUyNV09UmUsYVs0NzUyMl09TGUsYVtSZSs0Pj4yXT0xfExlLGFbQStmKzQ+PjJdPTQwLGFbNDc1MjZdPWFbNDc2NDFdLGFbKGY9bCs0fDApPj4yXT0yNyxhW2M+PjJdPWFbNDc2MzFdLGFbYys0Pj4yXT1hWzQ3NjMy''@;'; + put 'put ''XSxhW2MrOD4+Ml09YVs0NzYzM10sYVtjKzEyPj4yXT1hWzQ3NjM0XSxhWzQ3NjMxXT1BLGFbNDc2MzJdPXcsYVs0NzYzNF09MCxhWzQ3NjMzXT1jLGM9bCsyNHwwO2Rve1JlPWMsYVsoYz1jKzR8MCk+PjJdPTd9d2hpbGUoKFJlKzh8MCk+Pj4wPEhlPj4+MCk7aWYoKDB8bCkhPSgwfGspKXtp''@;'; + put 'put ''ZihBPWwta3wwLGFbZj4+Ml09LTImYVtmPj4yXSxhW2srND4+Ml09MXxBLGFbbD4+Ml09QSxjPUE+Pj4zLEE+Pj4wPDI1Nil7Zj0xOTAxMTYrKGM8PDE8PDIpfDAsKGw9MHxhWzQ3NTE5XSkmKGM9MTw8Yyk/Yz0wfGFbKGw9Zis4fDApPj4yXTooYVs0NzUxOV09bHxjLGM9ZixsPWYrOHwwKSxh''@;'; + put 'put ''W2w+PjJdPWssYVtjKzEyPj4yXT1rLGFbays4Pj4yXT1jLGFbaysxMj4+Ml09ZjticmVha31pZihwPTE5MDM4MCsoKGY9KGM9QT4+PjgpP0E+Pj4wPjE2Nzc3MjE1PzMxOkE+Pj4oNysoZj0xNC0oKExlPSg1MjAxOTIrKEhlPWM8PChSZT0oYysxMDQ4MzIwfDApPj4+MTYmOCkpfDApPj4+MTYm''@;'; + put 'put ''NCl8UmV8KGY9KDI0NTc2MCsoSGU8PD1MZSl8MCk+Pj4xNiYyKSkrKEhlPDxmPj4+MTUpfDApfDApJjF8Zjw8MTowKTw8Mil8MCxhW2srMjg+PjJdPWYsYVtrKzIwPj4yXT0wLGFbbT4+Ml09MCwhKChjPTB8YVs0NzUyMF0pJihsPTE8PGYpKSl7YVs0NzUyMF09Y3xsLGFbcD4+Ml09ayxhW2sr''@;'; + put 'put ''MjQ+PjJdPXAsYVtrKzEyPj4yXT1rLGFbays4Pj4yXT1rO2JyZWFrfWZvcihsPUE8PCgzMT09KDB8Zik/MDoyNS0oZj4+PjEpfDApLGY9MHxhW3A+PjJdOzspe2lmKCgtOCZhW2YrND4+Ml18MCk9PSgwfEEpKXtSZT0yMTM7YnJlYWt9aWYoIShjPTB8YVsocD1mKzE2KyhsPj4+MzE8PDIpfDAp''@;'; + put 'put ''Pj4yXSkpe1JlPTIxMjticmVha31sPDw9MSxmPWN9aWYoMjEyPT0oMHxSZSkpe2FbcD4+Ml09ayxhW2srMjQ+PjJdPWYsYVtrKzEyPj4yXT1rLGFbays4Pj4yXT1rO2JyZWFrfWlmKDIxMz09KDB8UmUpKXthWzEyKyhIZT0wfGFbKFJlPWYrOHwwKT4+Ml0pPj4yXT1rLGFbUmU+PjJdPWssYVtr''@;'; + put 'put ''Kzg+PjJdPUhlLGFbaysxMj4+Ml09ZixhW2srMjQ+PjJdPTA7YnJlYWt9fX1lbHNlIDA9PSgwfChIZT0wfGFbNDc1MjNdKSl8QT4+PjA8SGU+Pj4wJiYoYVs0NzUyM109QSksYVs0NzYzMV09QSxhWzQ3NjMyXT13LGFbNDc2MzRdPTAsYVs0NzUyOF09YVs0NzYzN10sYVs0NzUyN109LTEsYVs0''@;'; + put 'put ''NzUzMl09MTkwMTE2LGFbNDc1MzFdPTE5MDExNixhWzQ3NTM0XT0xOTAxMjQsYVs0NzUzM109MTkwMTI0LGFbNDc1MzZdPTE5MDEzMixhWzQ3NTM1XT0xOTAxMzIsYVs0NzUzOF09MTkwMTQwLGFbNDc1MzddPTE5MDE0MCxhWzQ3NTQwXT0xOTAxNDgsYVs0NzUzOV09MTkwMTQ4LGFbNDc1NDJd''@;'; + put 'put ''PTE5MDE1NixhWzQ3NTQxXT0xOTAxNTYsYVs0NzU0NF09MTkwMTY0LGFbNDc1NDNdPTE5MDE2NCxhWzQ3NTQ2XT0xOTAxNzIsYVs0NzU0NV09MTkwMTcyLGFbNDc1NDhdPTE5MDE4MCxhWzQ3NTQ3XT0xOTAxODAsYVs0NzU1MF09MTkwMTg4LGFbNDc1NDldPTE5MDE4OCxhWzQ3NTUyXT0xOTAx''@;'; + put 'put ''OTYsYVs0NzU1MV09MTkwMTk2LGFbNDc1NTRdPTE5MDIwNCxhWzQ3NTUzXT0xOTAyMDQsYVs0NzU1Nl09MTkwMjEyLGFbNDc1NTVdPTE5MDIxMixhWzQ3NTU4XT0xOTAyMjAsYVs0NzU1N109MTkwMjIwLGFbNDc1NjBdPTE5MDIyOCxhWzQ3NTU5XT0xOTAyMjgsYVs0NzU2Ml09MTkwMjM2LGFb''@;'; + put 'put ''NDc1NjFdPTE5MDIzNixhWzQ3NTY0XT0xOTAyNDQsYVs0NzU2M109MTkwMjQ0LGFbNDc1NjZdPTE5MDI1MixhWzQ3NTY1XT0xOTAyNTIsYVs0NzU2OF09MTkwMjYwLGFbNDc1NjddPTE5MDI2MCxhWzQ3NTcwXT0xOTAyNjgsYVs0NzU2OV09MTkwMjY4LGFbNDc1NzJdPTE5MDI3NixhWzQ3NTcx''@;'; + put 'put ''XT0xOTAyNzYsYVs0NzU3NF09MTkwMjg0LGFbNDc1NzNdPTE5MDI4NCxhWzQ3NTc2XT0xOTAyOTIsYVs0NzU3NV09MTkwMjkyLGFbNDc1NzhdPTE5MDMwMCxhWzQ3NTc3XT0xOTAzMDAsYVs0NzU4MF09MTkwMzA4LGFbNDc1NzldPTE5MDMwOCxhWzQ3NTgyXT0xOTAzMTYsYVs0NzU4MV09MTkw''@;'; + put 'put ''MzE2LGFbNDc1ODRdPTE5MDMyNCxhWzQ3NTgzXT0xOTAzMjQsYVs0NzU4Nl09MTkwMzMyLGFbNDc1ODVdPTE5MDMzMixhWzQ3NTg4XT0xOTAzNDAsYVs0NzU4N109MTkwMzQwLGFbNDc1OTBdPTE5MDM0OCxhWzQ3NTg5XT0xOTAzNDgsYVs0NzU5Ml09MTkwMzU2LGFbNDc1OTFdPTE5MDM1Nixh''@;'; + put 'put ''WzQ3NTk0XT0xOTAzNjQsYVs0NzU5M109MTkwMzY0LFJlPUErKExlPTA9PSg3JihMZT1BKzh8MCl8MCk/MDowLUxlJjcpfDAsTGU9KEhlPXcrLTQwfDApLUxlfDAsYVs0NzUyNV09UmUsYVs0NzUyMl09TGUsYVtSZSs0Pj4yXT0xfExlLGFbQStIZSs0Pj4yXT00MCxhWzQ3NTI2XT1hWzQ3NjQx''@;'; + put 'put ''XX13aGlsZSgwKTtpZigoYz0wfGFbNDc1MjJdKT4+PjA+Uj4+PjApcmV0dXJuIGFbNDc1MjJdPUxlPWMtUnwwLGFbNDc1MjVdPVJlPShIZT0wfGFbNDc1MjVdKStSfDAsYVtSZSs0Pj4yXT0xfExlLGFbSGUrND4+Ml09M3xSLGFlPVZlLDB8SGUrOH1yZXR1cm4gYVs0NzY0M109MTIsYWU9VmUs''@;'; + put 'put ''MH1mdW5jdGlvbiBGdChsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtpZihsfD0wKXttPTB8YVs0NzUyM10saz0oZj1sKy04fDApKyhjPS04JihsPTB8YVtsKy00Pj4yXSkpfDA7ZG97aWYoMSZsKWI9Zix3PWY7ZWxzZXtpZihwPTB8YVtmPj4yXSwhKDMmbCl8fChBPXAr''@;'; + put 'put ''Y3wwLCh3PWYrKDAtcCl8MCk+Pj4wPG0+Pj4wKSlyZXR1cm47aWYoKDB8YVs0NzUyNF0pPT0oMHx3KSl7aWYoMyE9KDMmKGM9MHxhWyhsPWsrNHwwKT4+Ml0pfDApKXtiPXcsYz1BO2JyZWFrfXJldHVybiBhWzQ3NTIxXT1BLGFbbD4+Ml09LTImYyxhW3crND4+Ml09MXxBLHZvaWQoYVt3K0E+''@;'; + put 'put ''PjJdPUEpfWlmKGY9cD4+PjMscD4+PjA8MjU2KXtpZigoMHwoYz0wfGFbdysxMj4+Ml0pKT09KDB8KGw9MHxhW3crOD4+Ml0pKSl7YVs0NzUxOV09YVs0NzUxOV0mfigxPDxmKSxiPXcsYz1BO2JyZWFrfWFbbCsxMj4+Ml09YyxhW2MrOD4+Ml09bCxiPXcsYz1BO2JyZWFrfW09MHxhW3crMjQ+''@;'; + put 'put ''PjJdLGw9MHxhW3crMTI+PjJdO2Rve2lmKCgwfGwpPT0oMHx3KSl7aWYoIShsPTB8YVsoYz00KyhmPXcrMTZ8MCl8MCk+PjJdKSl7aWYoIShsPTB8YVtmPj4yXSkpe2w9MDticmVha31jPWZ9Zm9yKDs7KWlmKDB8KHA9MHxhWyhmPWwrMjB8MCk+PjJdKSlsPXAsYz1mO2Vsc2V7aWYoIShwPTB8''@;'; + put 'put ''YVsoZj1sKzE2fDApPj4yXSkpYnJlYWs7bD1wLGM9Zn1hW2M+PjJdPTB9ZWxzZSBhWzEyKyhiPTB8YVt3Kzg+PjJdKT4+Ml09bCxhW2wrOD4+Ml09Yn13aGlsZSgwKTtpZihtKXtpZigoMHxhWyhmPTE5MDM4MCsoKGM9MHxhW3crMjg+PjJdKTw8Mil8MCk+PjJdKT09KDB8dykpe2lmKGFbZj4+''@;'; + put 'put ''Ml09bCwhbCl7YVs0NzUyMF09YVs0NzUyMF0mfigxPDxjKSxiPXcsYz1BO2JyZWFrfX1lbHNlIGlmKGFbbSsxNisoKCgwfGFbbSsxNj4+Ml0pIT0oMHx3KSYxKTw8Mik+PjJdPWwsIWwpe2I9dyxjPUE7YnJlYWt9YVtsKzI0Pj4yXT1tLDB8KGY9MHxhWyhjPXcrMTZ8MCk+PjJdKSYmKGFbbCsx''@;'; + put 'put ''Nj4+Ml09ZixhW2YrMjQ+PjJdPWwpLChjPTB8YVtjKzQ+PjJdKT8oYVtsKzIwPj4yXT1jLGFbYysyND4+Ml09bCxiPXcsYz1BKTooYj13LGM9QSl9ZWxzZSBiPXcsYz1BfX13aGlsZSgwKTtpZighKHc+Pj4wPj1rPj4+MCkmJjEmKHA9MHxhWyhsPWsrNHwwKT4+Ml0pKXtpZigyJnApYVtsPj4y''@;'; + put 'put ''XT0tMiZwLGFbYis0Pj4yXT0xfGMsYVt3K2M+PjJdPWMsbT1jO2Vsc2V7aWYoKDB8YVs0NzUyNV0pPT0oMHxrKSl7aWYoYVs0NzUyMl09az0oMHxhWzQ3NTIyXSkrY3wwLGFbNDc1MjVdPWIsYVtiKzQ+PjJdPTF8aywoMHxiKSE9KDB8YVs0NzUyNF0pKXJldHVybjtyZXR1cm4gYVs0NzUyNF09''@;'; + put 'put ''MCx2b2lkKGFbNDc1MjFdPTApfWlmKCgwfGFbNDc1MjRdKT09KDB8aykpcmV0dXJuIGFbNDc1MjFdPWs9KDB8YVs0NzUyMV0pK2N8MCxhWzQ3NTI0XT13LGFbYis0Pj4yXT0xfGssdm9pZChhW3craz4+Ml09ayk7bT0oLTgmcCkrY3wwLGY9cD4+PjM7ZG97aWYocD4+PjA8MjU2KXtpZigoMHwo''@;'; + put 'put ''bD0wfGFbaysxMj4+Ml0pKT09KDB8KGM9MHxhW2srOD4+Ml0pKSl7YVs0NzUxOV09YVs0NzUxOV0mfigxPDxmKTticmVha31hW2MrMTI+PjJdPWwsYVtsKzg+PjJdPWM7YnJlYWt9QT0wfGFbaysyND4+Ml0sbD0wfGFbaysxMj4+Ml07ZG97aWYoKDB8bCk9PSgwfGspKXtpZighKGw9MHxhWyhj''@;'; + put 'put ''PTQrKGY9aysxNnwwKXwwKT4+Ml0pKXtpZighKGw9MHxhW2Y+PjJdKSl7Zj0wO2JyZWFrfWM9Zn1mb3IoOzspaWYoMHwocD0wfGFbKGY9bCsyMHwwKT4+Ml0pKWw9cCxjPWY7ZWxzZXtpZighKHA9MHxhWyhmPWwrMTZ8MCk+PjJdKSlicmVhaztsPXAsYz1mfWFbYz4+Ml09MCxmPWx9ZWxzZSBh''@;'; + put 'put ''WzEyKyhmPTB8YVtrKzg+PjJdKT4+Ml09bCxhW2wrOD4+Ml09ZixmPWx9d2hpbGUoMCk7aWYoMHxBKXtpZigoMHxhWyhjPTE5MDM4MCsoKGw9MHxhW2srMjg+PjJdKTw8Mil8MCk+PjJdKT09KDB8aykpe2lmKGFbYz4+Ml09ZiwhZil7YVs0NzUyMF09YVs0NzUyMF0mfigxPDxsKTticmVha319''@;'; + put 'put ''ZWxzZSBpZihhW0ErMTYrKCgoMHxhW0ErMTY+PjJdKSE9KDB8aykmMSk8PDIpPj4yXT1mLCFmKWJyZWFrO2FbZisyND4+Ml09QSwwfChjPTB8YVsobD1rKzE2fDApPj4yXSkmJihhW2YrMTY+PjJdPWMsYVtjKzI0Pj4yXT1mKSwwfChsPTB8YVtsKzQ+PjJdKSYmKGFbZisyMD4+Ml09bCxhW2wr''@;'; + put 'put ''MjQ+PjJdPWYpfX13aGlsZSgwKTtpZihhW2IrND4+Ml09MXxtLGFbdyttPj4yXT1tLCgwfGIpPT0oMHxhWzQ3NTI0XSkpcmV0dXJuIHZvaWQoYVs0NzUyMV09bSl9aWYobD1tPj4+MyxtPj4+MDwyNTYpcmV0dXJuIGY9MTkwMTE2KyhsPDwxPDwyKXwwLChjPTB8YVs0NzUxOV0pJihsPTE8PGwp''@;'; + put 'put ''P2w9MHxhWyhjPWYrOHwwKT4+Ml06KGFbNDc1MTldPWN8bCxsPWYsYz1mKzh8MCksYVtjPj4yXT1iLGFbbCsxMj4+Ml09YixhW2IrOD4+Ml09bCx2b2lkKGFbYisxMj4+Ml09Zik7cD0xOTAzODArKChsPShsPW0+Pj44KT9tPj4+MD4xNjc3NzIxNT8zMTptPj4+KDcrKGw9MTQtKChBPSg1MjAx''@;'; + put 'put ''OTIrKGs9bDw8KHc9KGwrMTA0ODMyMHwwKT4+PjE2JjgpKXwwKT4+PjE2JjQpfHd8KGw9KDI0NTc2MCsoazw8PUEpfDApPj4+MTYmMikpKyhrPDxsPj4+MTUpfDApfDApJjF8bDw8MTowKTw8Mil8MCxhW2IrMjg+PjJdPWwsYVtiKzIwPj4yXT0wLGFbYisxNj4+Ml09MCxjPTB8YVs0NzUyMF0s''@;'; + put 'put ''Zj0xPDxsO2Rve2lmKGMmZil7Zm9yKGM9bTw8KDMxPT0oMHxsKT8wOjI1LShsPj4+MSl8MCksZj0wfGFbcD4+Ml07Oyl7aWYoKC04JmFbZis0Pj4yXXwwKT09KDB8bSkpe2w9NzM7YnJlYWt9aWYoIShsPTB8YVsocD1mKzE2KyhjPj4+MzE8PDIpfDApPj4yXSkpe2w9NzI7YnJlYWt9Yzw8PTEs''@;'; + put 'put ''Zj1sfWlmKDcyPT0oMHxsKSl7YVtwPj4yXT1iLGFbYisyND4+Ml09ZixhW2IrMTI+PjJdPWIsYVtiKzg+PjJdPWI7YnJlYWt9aWYoNzM9PSgwfGwpKXthWzEyKyhrPTB8YVsodz1mKzh8MCk+PjJdKT4+Ml09YixhW3c+PjJdPWIsYVtiKzg+PjJdPWssYVtiKzEyPj4yXT1mLGFbYisyND4+Ml09''@;'; + put 'put ''MDticmVha319ZWxzZSBhWzQ3NTIwXT1jfGYsYVtwPj4yXT1iLGFbYisyND4+Ml09cCxhW2IrMTI+PjJdPWIsYVtiKzg+PjJdPWJ9d2hpbGUoMCk7aWYoYVs0NzUyN109az0oMHxhWzQ3NTI3XSktMXwwLGspcmV0dXJuO2ZvcihsPTE5MDUzMjtsPTB8YVtsPj4yXTspbD1sKzh8MDthWzQ3NTI3''@;'; + put 'put ''XT0tMX19fWZ1bmN0aW9uIHNoKGwsYyl7Y3w9MDt2YXIgZj0wO3JldHVybihsfD0wKT8oZj0wfEFyKGMsbCksKGN8bCk+Pj4wPjY1NTM1JiYoZj0oMHwoZj4+PjApLyhsPj4+MCkpPT0oMHxjKT9mOi0xKSk6Zj0wLCEobD0wfEIwKGYpKXx8ISgzJmFbbCstND4+Ml0pfHx1MigwfGwsMCwwfGYp''@;'; + put 'put ''LDB8bH1mdW5jdGlvbiBVYShsLGMpe2N8PTA7dmFyIGY9MCxwPTA7cmV0dXJuKGx8PTApP2M+Pj4wPjQyOTQ5NjcyMzE/KGFbNDc2NDNdPTEyLDB8KGM9MCkpOihmPTB8ZnVuY3Rpb24gQnVlKGwsYyl7Y3w9MDt2YXIgRCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MDtpZihi''@;'; + put 'put ''PShsfD0wKSsoZj0tOCYoUj0wfGFbKEQ9bCs0fDApPj4yXSkpfDAsISgzJlIpKXJldHVybiBjPj4+MDwyNTY/MHwobD0wKTooZj4+PjA+PShjKzR8MCk+Pj4wJiYoZi1jfDApPj4+MDw9YVs0NzYzOV08PDE+Pj4wfHwobD0wKSwwfGwpO2lmKGY+Pj4wPj1jPj4+MClyZXR1cm4oZj1mLWN8MCk+''@;'; + put 'put ''Pj4wPD0xNXx8KE09bCtjfDAsYVtEPj4yXT0xJlJ8Y3wyLGFbTSs0Pj4yXT0zfGYsYVsoUj1iKzR8MCk+PjJdPTF8YVtSPj4yXSxhTChNLGYpKSwwfGw7aWYoKDB8YVs0NzUyNV0pPT0oMHxiKSlyZXR1cm4gZj0oTT0oMHxhWzQ3NTIyXSkrZnwwKS1jfDAscD1sK2N8MCxNPj4+MDw9Yz4+PjA/''@;'; + put 'put ''MHwobD0wKTooYVtEPj4yXT0xJlJ8Y3wyLGFbcCs0Pj4yXT0xfGYsYVs0NzUyNV09cCxhWzQ3NTIyXT1mLDB8bCk7aWYoKDB8YVs0NzUyNF0pPT0oMHxiKSlyZXR1cm4ocD0oMHxhWzQ3NTIxXSkrZnwwKT4+PjA8Yz4+PjA/MHwobD0wKTooKGY9cC1jfDApPj4+MD4xNT8oTT1sK2N8MCxwPWwr''@;'; + put 'put ''cHwwLGFbRD4+Ml09MSZSfGN8MixhW00rND4+Ml09MXxmLGFbcD4+Ml09ZixhWyhwPXArNHwwKT4+Ml09LTImYVtwPj4yXSxwPU0pOihhW0Q+PjJdPTEmUnxwfDIsYVsocD1sK3ArNHwwKT4+Ml09MXxhW3A+PjJdLHA9MCxmPTApLGFbNDc1MjFdPWYsYVs0NzUyNF09cCwwfGwpO2lmKDImKHA9''@;'; + put 'put ''MHxhW2IrND4+Ml0pfDB8fChrPSgtOCZwKStmfDApPj4+MDxjPj4+MClyZXR1cm4gMDtNPWstY3wwLG09cD4+PjM7ZG97aWYocD4+PjA8MjU2KXtpZigoMHwoZj0wfGFbYisxMj4+Ml0pKT09KDB8KHA9MHxhW2IrOD4+Ml0pKSl7YVs0NzUxOV09YVs0NzUxOV0mfigxPDxtKTticmVha31hW3Ar''@;'; + put 'put ''MTI+PjJdPWYsYVtmKzg+PjJdPXA7YnJlYWt9dz0wfGFbYisyND4+Ml0sZj0wfGFbYisxMj4+Ml07ZG97aWYoKDB8Zik9PSgwfGIpKXtpZihmPTB8YVsocD00KyhtPWIrMTZ8MCl8MCk+PjJdKUE9cDtlbHNle2lmKCEoZj0wfGFbbT4+Ml0pKXttPTA7YnJlYWt9QT1tfWZvcig7OylpZigwfChw''@;'; + put 'put ''PTB8YVsobT1mKzIwfDApPj4yXSkpZj1wLEE9bTtlbHNle2lmKCEobT0wfGFbKHA9ZisxNnwwKT4+Ml0pKWJyZWFrO2Y9bSxBPXB9YVtBPj4yXT0wLG09Zn1lbHNlIGFbMTIrKG09MHxhW2IrOD4+Ml0pPj4yXT1mLGFbZis4Pj4yXT1tLG09Zn13aGlsZSgwKTtpZigwfHcpe2lmKCgwfGFbKHA9''@;'; + put 'put ''MTkwMzgwKygoZj0wfGFbYisyOD4+Ml0pPDwyKXwwKT4+Ml0pPT0oMHxiKSl7aWYoYVtwPj4yXT1tLCFtKXthWzQ3NTIwXT1hWzQ3NTIwXSZ+KDE8PGYpO2JyZWFrfX1lbHNlIGlmKGFbdysxNisoKCgwfGFbdysxNj4+Ml0pIT0oMHxiKSYxKTw8Mik+PjJdPW0sIW0pYnJlYWs7YVttKzI0Pj4y''@;'; + put 'put ''XT13LDB8KHA9MHxhWyhmPWIrMTZ8MCk+PjJdKSYmKGFbbSsxNj4+Ml09cCxhW3ArMjQ+PjJdPW0pLDB8KGY9MHxhW2YrND4+Ml0pJiYoYVttKzIwPj4yXT1mLGFbZisyND4+Ml09bSl9fXdoaWxlKDApO3JldHVybiBNPj4+MDwxNj8oYVtEPj4yXT1rfDEmUnwyLGFbKFI9bCtrKzR8MCk+PjJd''@;'; + put 'put ''PTF8YVtSPj4yXSwwfGwpOihiPWwrY3wwLGFbRD4+Ml09MSZSfGN8MixhW2IrND4+Ml09M3xNLGFbKFI9bCtrKzR8MCk+PjJdPTF8YVtSPj4yXSxhTChiLE0pLDB8bCl9KGwrLTh8MCxjPj4+MDwxMT8xNjpjKzExJi04KSwwfGY/MHwoYz1mKzh8MCk6KGY9MHxCMChjKSk/KGdvKDB8ZiwwfGws''@;'; + put 'put ''MHwoKHA9KC04JihwPTB8YVtsKy00Pj4yXSkpLSgwPT0oMyZwfDApPzg6NCl8MCk+Pj4wPGM+Pj4wP3A6YykpLEZ0KGwpLDB8KGM9ZikpOjB8KGM9MCkpOjB8KGM9MHxCMChjKSl9ZnVuY3Rpb24gYUwobCxjKXt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7Yj0obHw9MCkrKGN8PTApfDAs''@;'; + put 'put ''Zj0wfGFbbCs0Pj4yXTtkb3tpZigxJmYpdz1sO2Vsc2V7aWYoISgzJmYpKXJldHVybjtpZihjPShtPTB8YVtsPj4yXSkrY3wwLCgwfGFbNDc1MjRdKT09KDB8KHc9bCsoMC1tKXwwKSkpe2lmKDMhPSgzJihmPTB8YVsobD1iKzR8MCk+PjJdKXwwKSlicmVhaztyZXR1cm4gYVs0NzUyMV09Yyxh''@;'; + put 'put ''W2w+PjJdPS0yJmYsYVt3KzQ+PjJdPTF8Yyx2b2lkKGFbYj4+Ml09Yyl9aWYocD1tPj4+MyxtPj4+MDwyNTYpe2lmKCgwfChmPTB8YVt3KzEyPj4yXSkpPT0oMHwobD0wfGFbdys4Pj4yXSkpKXthWzQ3NTE5XT1hWzQ3NTE5XSZ+KDE8PHApO2JyZWFrfWFbbCsxMj4+Ml09ZixhW2YrOD4+Ml09''@;'; + put 'put ''bDticmVha31BPTB8YVt3KzI0Pj4yXSxsPTB8YVt3KzEyPj4yXTtkb3tpZigoMHxsKT09KDB8dykpe2lmKCEobD0wfGFbKGY9NCsocD13KzE2fDApfDApPj4yXSkpe2lmKCEobD0wfGFbcD4+Ml0pKXtsPTA7YnJlYWt9Zj1wfWZvcig7OylpZigwfChtPTB8YVsocD1sKzIwfDApPj4yXSkpbD1t''@;'; + put 'put ''LGY9cDtlbHNle2lmKCEobT0wfGFbKHA9bCsxNnwwKT4+Ml0pKWJyZWFrO2w9bSxmPXB9YVtmPj4yXT0wfWVsc2UgYVsxMisobT0wfGFbdys4Pj4yXSk+PjJdPWwsYVtsKzg+PjJdPW19d2hpbGUoMCk7aWYoQSl7aWYoKDB8YVsocD0xOTAzODArKChmPTB8YVt3KzI4Pj4yXSk8PDIpfDApPj4y''@;'; + put 'put ''XSk9PSgwfHcpKXtpZihhW3A+PjJdPWwsIWwpe2FbNDc1MjBdPWFbNDc1MjBdJn4oMTw8Zik7YnJlYWt9fWVsc2UgaWYoYVtBKzE2KygoKDB8YVtBKzE2Pj4yXSkhPSgwfHcpJjEpPDwyKT4+Ml09bCwhbClicmVhazthW2wrMjQ+PjJdPUEsMHwocD0wfGFbKGY9dysxNnwwKT4+Ml0pJiYoYVts''@;'; + put 'put ''KzE2Pj4yXT1wLGFbcCsyND4+Ml09bCksKGY9MHxhW2YrND4+Ml0pJiYoYVtsKzIwPj4yXT1mLGFbZisyND4+Ml09bCl9fX13aGlsZSgwKTtpZigyJihwPTB8YVsobD1iKzR8MCk+PjJdKSlhW2w+PjJdPS0yJnAsYVt3KzQ+PjJdPTF8YyxhW3crYz4+Ml09YyxtPWM7ZWxzZXtpZigoMHxhWzQ3''@;'; + put 'put ''NTI1XSk9PSgwfGIpKXtpZihhWzQ3NTIyXT1iPSgwfGFbNDc1MjJdKStjfDAsYVs0NzUyNV09dyxhW3crND4+Ml09MXxiLCgwfHcpIT0oMHxhWzQ3NTI0XSkpcmV0dXJuO3JldHVybiBhWzQ3NTI0XT0wLHZvaWQoYVs0NzUyMV09MCl9aWYoKDB8YVs0NzUyNF0pPT0oMHxiKSlyZXR1cm4gYVs0''@;'; + put 'put ''NzUyMV09Yj0oMHxhWzQ3NTIxXSkrY3wwLGFbNDc1MjRdPXcsYVt3KzQ+PjJdPTF8Yix2b2lkKGFbdytiPj4yXT1iKTttPSgtOCZwKStjfDAsZj1wPj4+Mztkb3tpZihwPj4+MDwyNTYpe2lmKCgwfChjPTB8YVtiKzEyPj4yXSkpPT0oMHwobD0wfGFbYis4Pj4yXSkpKXthWzQ3NTE5XT1hWzQ3''@;'; + put 'put ''NTE5XSZ+KDE8PGYpO2JyZWFrfWFbbCsxMj4+Ml09YyxhW2MrOD4+Ml09bDticmVha31BPTB8YVtiKzI0Pj4yXSxjPTB8YVtiKzEyPj4yXTtkb3tpZigoMHxjKT09KDB8Yikpe2lmKCEoYz0wfGFbKGw9NCsoZj1iKzE2fDApfDApPj4yXSkpe2lmKCEoYz0wfGFbZj4+Ml0pKXtmPTA7YnJlYWt9''@;'; + put 'put ''bD1mfWZvcig7OylpZigwfChwPTB8YVsoZj1jKzIwfDApPj4yXSkpYz1wLGw9ZjtlbHNle2lmKCEocD0wfGFbKGY9YysxNnwwKT4+Ml0pKWJyZWFrO2M9cCxsPWZ9YVtsPj4yXT0wLGY9Y31lbHNlIGFbMTIrKGY9MHxhW2IrOD4+Ml0pPj4yXT1jLGFbYys4Pj4yXT1mLGY9Y313aGlsZSgwKTtp''@;'; + put 'put ''ZigwfEEpe2lmKCgwfGFbKGw9MTkwMzgwKygoYz0wfGFbYisyOD4+Ml0pPDwyKXwwKT4+Ml0pPT0oMHxiKSl7aWYoYVtsPj4yXT1mLCFmKXthWzQ3NTIwXT1hWzQ3NTIwXSZ+KDE8PGMpO2JyZWFrfX1lbHNlIGlmKGFbQSsxNisoKCgwfGFbQSsxNj4+Ml0pIT0oMHxiKSYxKTw8Mik+PjJdPWYs''@;'; + put 'put ''IWYpYnJlYWs7YVtmKzI0Pj4yXT1BLDB8KGw9MHxhWyhjPWIrMTZ8MCk+PjJdKSYmKGFbZisxNj4+Ml09bCxhW2wrMjQ+PjJdPWYpLDB8KGM9MHxhW2MrND4+Ml0pJiYoYVtmKzIwPj4yXT1jLGFbYysyND4+Ml09Zil9fXdoaWxlKDApO2lmKGFbdys0Pj4yXT0xfG0sYVt3K20+PjJdPW0sKDB8''@;'; + put 'put ''dyk9PSgwfGFbNDc1MjRdKSlyZXR1cm4gdm9pZChhWzQ3NTIxXT1tKX1pZihjPW0+Pj4zLG0+Pj4wPDI1NilyZXR1cm4gZj0xOTAxMTYrKGM8PDE8PDIpfDAsKGw9MHxhWzQ3NTE5XSkmKGM9MTw8Yyk/Yz0wfGFbKGw9Zis4fDApPj4yXTooYVs0NzUxOV09bHxjLGM9ZixsPWYrOHwwKSxhW2w+''@;'; + put 'put ''PjJdPXcsYVtjKzEyPj4yXT13LGFbdys4Pj4yXT1jLHZvaWQoYVt3KzEyPj4yXT1mKTtpZihjPShjPW0+Pj44KT9tPj4+MD4xNjc3NzIxNT8zMTptPj4+KDcrKGM9MTQtKChwPSg1MjAxOTIrKGI9Yzw8KEE9KGMrMTA0ODMyMHwwKT4+PjE2JjgpKXwwKT4+PjE2JjQpfEF8KGM9KDI0NTc2MCso''@;'; + put 'put ''Yjw8PXApfDApPj4+MTYmMikpKyhiPDxjPj4+MTUpfDApfDApJjF8Yzw8MTowLHA9MTkwMzgwKyhjPDwyKXwwLGFbdysyOD4+Ml09YyxhW3crMjA+PjJdPTAsYVt3KzE2Pj4yXT0wLCEoKGw9MHxhWzQ3NTIwXSkmKGY9MTw8YykpKXJldHVybiBhWzQ3NTIwXT1sfGYsYVtwPj4yXT13LGFbdysy''@;'; + put 'put ''ND4+Ml09cCxhW3crMTI+PjJdPXcsdm9pZChhW3crOD4+Ml09dyk7Zm9yKGw9bTw8KDMxPT0oMHxjKT8wOjI1LShjPj4+MSl8MCksZj0wfGFbcD4+Ml07Oyl7aWYoKC04JmFbZis0Pj4yXXwwKT09KDB8bSkpe2M9Njk7YnJlYWt9aWYoIShjPTB8YVsocD1mKzE2KyhsPj4+MzE8PDIpfDApPj4y''@;'; + put 'put ''XSkpe2M9Njg7YnJlYWt9bDw8PTEsZj1jfXJldHVybiA2OD09KDB8Yyk/KGFbcD4+Ml09dyxhW3crMjQ+PjJdPWYsYVt3KzEyPj4yXT13LHZvaWQoYVt3Kzg+PjJdPXcpKTo2OT09KDB8Yyk/KGFbMTIrKGI9MHxhWyhBPWYrOHwwKT4+Ml0pPj4yXT13LGFbQT4+Ml09dyxhW3crOD4+Ml09Yixh''@;'; + put 'put ''W3crMTI+PjJdPWYsdm9pZChhW3crMjQ+PjJdPTApKTp2b2lkIDB9ZnVuY3Rpb24gdWgobCl7cmV0dXJuKGx8PTApPj4+MD40Mjk0OTYzMjAwJiYoYVs0NzY0M109MC1sLGw9LTEpLDB8bH1mdW5jdGlvbiBxSyhsKXtyZXR1cm4gMHxsfWZ1bmN0aW9uIGUkKGwsYyxmKXtjfD0wLGZ8PTA7dmFy''@;'; + put 'put ''IHcsYixrLE0sUixwPTAsbT0wLEE9MCxEPTAsRz0wLEs9MDtSPWFlLGFlPWFlKzQ4fDAsTT1SKzE2fDAsQT1SLGFbKG09UiszMnwwKT4+Ml09cD0wfGFbKGI9MjgrKGx8PTApfDApPj4yXSxhW20rND4+Ml09cD0oMHxhWyhrPWwrMjB8MCk+PjJdKS1wfDAsYVttKzg+PjJdPWMsYVttKzEyPj4y''@;'; + put 'put ''XT1mLHA9cCtmfDAsYVtBPj4yXT1hWyh3PWwrNjB8MCk+PjJdLGFbQSs0Pj4yXT1tLGFbQSs4Pj4yXT0yLEE9MHx1aCgwfHQ2KDE0NiwwfEEpKTtlOmRve2lmKCgwfHApIT0oMHxBKSl7Zm9yKGM9MjshKCgwfEEpPDApOylpZihwPXAtQXwwLGM9YysoKEc9QT4+PjA+KEs9MHxhW20rND4+Ml0p''@;'; + put 'put ''Pj4+MCk8PDMxPj4zMSl8MCxhWyhtPUc/bSs4fDA6bSk+PjJdPSgwfGFbbT4+Ml0pKyhLPUEtKEc/SzowKXwwKSxhWyhHPW0rNHwwKT4+Ml09KDB8YVtHPj4yXSktSyxhW00+PjJdPWFbdz4+Ml0sYVtNKzQ+PjJdPW0sYVtNKzg+PjJdPWMsKDB8cCk9PSgwfChBPTB8dWgoMHx0NigxNDYsMHxN''@;'; + put 'put ''KSkpKSl7RD0zO2JyZWFrIGV9YVtsKzE2Pj4yXT0wLGFbYj4+Ml09MCxhW2s+PjJdPTAsYVtsPj4yXT0zMnxhW2w+PjJdLGY9Mj09KDB8Yyk/MDpmLSgwfGFbbSs0Pj4yXSl8MH1lbHNlIEQ9M313aGlsZSgwKTtyZXR1cm4gMz09KDB8RCkmJihhW2wrMTY+PjJdPShLPTB8YVtsKzQ0Pj4yXSkr''@;'; + put 'put ''KDB8YVtsKzQ4Pj4yXSksYVtiPj4yXT1LLGFbaz4+Ml09SyksYWU9UiwwfGZ9ZnVuY3Rpb24gdCQobCxjKXt2YXIgZixwO3JldHVybiBjfD0wLGY9YWUsYWU9YWUrMTZ8MCxhWyhwPWYpPj4yXT1sfD0wLGFbcCs0Pj4yXT1jLGM9MHx1aCgwfFQ0KDkxLDB8cCkpLGFlPWYsMHxjfWZ1bmN0aW9u''@;'; + put 'put ''IEh1ZShsLGMsZixwLG0sQSl7dmFyIHcsYjtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCxiPWFlLGFlPWFlKzMyfDAsdz1iO2Rve2lmKDA9PSg0MDk1JkF8MCkmMD09KCgoMHxBKTwwKTw8MzE+PjMxJi00MDk2fDApKXtpZihjPj4+MD4yMTQ3NDgzNjQ2KXthWzQ3NjQzXT0xMixsPS0x''@;'; + put 'put ''O2JyZWFrfWFbdz4+Ml09bCxhW3crND4+Ml09YyxhW3crOD4+Ml09ZixhW3crMTI+PjJdPXAsYVt3KzE2Pj4yXT1tLGFbdysyMD4+Ml09QT4+MTIsbD0wfHVoKDB8UjgoMTkyLDB8dykpfWVsc2UgYVs0NzY0M109MjIsbD0tMX13aGlsZSgwKTtyZXR1cm4gYWU9YiwwfGx9ZnVuY3Rpb24gbEwo''@;'; + put 'put ''bCxjKXtsfD0wO3ZhciBmPTAscD0wLG09MDtwPTI1NSYoY3w9MCk7ZTpkb3tpZihwKXtpZigzJmwpe2Y9MjU1JmM7ZG97aWYoKG09MHxmZVtsPj4wXSk8PDI0Pj4yND09MHx8bTw8MjQ+PjI0PT1mPDwyND4+MjQpYnJlYWsgZTtsPWwrMXwwfXdoaWxlKDAhPSgzJmx8MCkpfXA9MHxBcihwLDE2''@;'; + put 'put ''ODQzMDA5KSxmPTB8YVtsPj4yXTt0OmRve2lmKCEoKC0yMTM5MDYyMTQ0JmZeLTIxMzkwNjIxNDQpJmYrLTE2ODQzMDA5KSlkb3tpZigoLTIxMzkwNjIxNDQmKG09Zl5wKV4tMjEzOTA2MjE0NCkmbSstMTY4NDMwMDl8MClicmVhayB0O2Y9MHxhWyhsPWwrNHwwKT4+Ml19d2hpbGUoISgoLTIx''@;'; + put 'put ''MzkwNjIxNDQmZl4tMjEzOTA2MjE0NCkmZistMTY4NDMwMDl8MCkpfXdoaWxlKDApO2ZvcihmPTI1NSZjOyhtPTB8ZmVbbD4+MF0pPDwyND4+MjQhPTAmJm08PDI0Pj4yNCE9Zjw8MjQ+PjI0OylsPWwrMXwwfWVsc2UgbD1sKygwfFVvKGwpKXwwfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rp''@;'; + put 'put ''b24gVW8obCl7dmFyIHAsYz0wLGY9MDtwPWx8PTA7ZTpkb3tpZigzJnApZm9yKGM9cDs7KXtpZighKDB8ZmVbbD4+MF0pKXtsPWM7YnJlYWsgZX1pZighKDMmKGM9bD1sKzF8MCkpKXtmPTQ7YnJlYWt9fWVsc2UgZj00fXdoaWxlKDApO2lmKDQ9PSgwfGYpKXtmb3IoOyEoKC0yMTM5MDYyMTQ0''@;'; + put 'put ''JihjPTB8YVtsPj4yXSleLTIxMzkwNjIxNDQpJmMrLTE2ODQzMDA5KTspbD1sKzR8MDtpZigoMjU1JmMpPDwyND4+MjQpZG97bD1sKzF8MH13aGlsZSgwIT0oMHxmZVtsPj4wXSkpfXJldHVybiBsLXB8MH1mdW5jdGlvbiBYeShsLGMpe3ZhciBmO3JldHVybiBjfD0wLGY9MHxUcygwfChsfD0w''@;'; + put 'put ''KSksMHwoMD09KDB8Yyk/bDpmKX1mdW5jdGlvbiBqaShsLGMpe3ZhciBmPTAscD0wO2lmKHA9MHxmZVsoY3w9MCk+PjBdLChmPTB8ZmVbKGx8PTApPj4wXSk8PDI0Pj4yND09MHx8Zjw8MjQ+PjI0IT1wPDwyND4+MjQpbD1wO2Vsc2V7ZG97Zj0wfGZlWyhsPWwrMXwwKT4+MF0scD0wfGZlWyhj''@;'; + put 'put ''PWMrMXwwKT4+MF19d2hpbGUoZjw8MjQ+PjI0IT0wJiZmPDwyND4+MjQ9PXA8PDI0Pj4yNCk7bD1wfXJldHVybigyNTUmZiktKDI1NSZsKXwwfWZ1bmN0aW9uIFhrKGwpe3JldHVybiAwfGZ1bmN0aW9uIENBZShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MDtmb3IocD0wOzspe2lmKCgwfEp0''@;'; + put 'put ''WzE0NDUzMStwPj4wXSk9PSgwfGwpKXtsPTI7YnJlYWt9aWYoODc9PSgwfChmPXArMXwwKSkpe2Y9MTQ0NjE5LHA9ODcsbD01O2JyZWFrfXA9Zn1pZigyPT0oMHxsKSYmKHA/KGY9MTQ0NjE5LGw9NSk6Zj0xNDQ2MTkpLDU9PSgwfGwpKWZvcig7Oyl7ZG97bD1mLGY9ZisxfDB9d2hpbGUoMCE9''@;'; + put 'put ''KDB8ZmVbbD4+MF0pKTtpZighKHA9cCstMXwwKSlicmVhaztsPTV9cmV0dXJuIDB8ZnVuY3Rpb24ga0FlKGwsYyl7cmV0dXJuIDB8ZnVuY3Rpb24gU0FlKGwsYyl7cmV0dXJuIGx8PTAsYz0oY3w9MCk/MHxmdW5jdGlvbiBNQWUobCxjLGYpe2N8PTAsZnw9MDt2YXIgRyxwPTAsbT0wLEE9MCx3''@;'; + put 'put ''PTAsYj0wLGs9MCxNPTAsRD0wLFI9MDtBPTB8WHkoMHxhWzgrKGx8PTApPj4yXSxHPTE3OTQ4OTUxMzgrKDB8YVtsPj4yXSl8MCkscD0wfFh5KDB8YVtsKzEyPj4yXSxHKSxtPTB8WHkoMHxhW2wrMTY+PjJdLEcpO2U6ZG97aWYoQT4+PjA8Yz4+PjI+Pj4wJiYoUj1jLShBPDwyKXwwLHA+Pj4w''@;'; + put 'put ''PFI+Pj4wJm0+Pj4wPFI+Pj4wKSYmMD09KDMmKG18cCl8MCkpe2ZvcihSPXA+Pj4yLEQ9bT4+PjIsTT0wOzspe2lmKHA9MHxYeSgwfGFbbCsoKG09KHc9KGs9TSsoYj1BPj4+MSl8MCk8PDEpK1J8MCk8PDIpPj4yXSxHKSwhKChtPTB8WHkoMHxhW2wrKG0rMTw8Mik+PjJdLEcpKT4+PjA8Yz4+''@;'; + put 'put ''PjAmcD4+PjA8KGMtbXwwKT4+PjApKXtwPTA7YnJlYWsgZX1pZigwfGZlW2wrKG0rcCk+PjBdKXtwPTA7YnJlYWsgZX1pZighKHA9MHxqaShmLGwrbXwwKSkpYnJlYWs7aWYocD0oMHxwKTwwLDE9PSgwfEEpKXtwPTA7YnJlYWsgZX1NPXA/TTprLEE9cD9iOkEtYnwwfW09MHxYeSgwfGFbbCso''@;'; + put 'put ''KHA9dytEfDApPDwyKT4+Ml0sRykscD0ocD0wfFh5KDB8YVtsKyhwKzE8PDIpPj4yXSxHKSk+Pj4wPGM+Pj4wJm0+Pj4wPChjLXB8MCk+Pj4wJiYwPT0oMHxmZVtsKyhwK20pPj4wXSk/bCtwfDA6MH1lbHNlIHA9MH13aGlsZSgwKTtyZXR1cm4gMHxwfSgwfGFbYz4+Ml0sMHxhW2MrND4+Ml0s''@;'; + put 'put ''bCk6MCwwfCgwfGM/YzpsKX0obHw9MCxjfD0wKX0oZiwwfGFbYysyMD4+Ml0pfShsfD0wLDB8YVsxNTc5MV0pfWZ1bmN0aW9uIG4kKGwsYyxmKXt2YXIgcCxtLEE7cmV0dXJuIGM9K2MscD0oQT0obD0rbCkqbCkqKEEqQSkqKDEuNTg5NjkwOTk1MjExNTVlLTEwKkEtMi41MDUwNzYwMjUzNDA2''@;'; + put 'put ''ODYzZS04KSsoQSooMjc1NTczMTM3MDcwNzAwNjhlLTIyKkEtLjAwMDE5ODQxMjY5ODI5ODU3OTUpKy4wMDgzMzMzMzMzMzMzMjI0OSksbT1BKmwsKGZ8PTApP2wtPS4xNjY2NjY2NjY2NjY2NjYzMiptKyhBKiguNSpjLW0qcCktYyk6bD1tKihBKnAtLjE2NjY2NjY2NjY2NjY2NjMyKStsLCts''@;'; + put 'put ''fWZ1bmN0aW9uIHIkKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtfW1NpPj4zXT1sPStsLGM9MHxhW1NpPj4yXSxwPSgwfChmPTB8YVtTaSs0Pj4yXSkpPDA7ZG97aWYocHxmPj4+MDwxMDQ4NTc2KXtpZigwPT0oMHxjKSYwPT0oMjE0NzQ4MzY0NyZmfDApKXts''@;'; + put 'put ''PS0xLyhsKmwpO2JyZWFrfWlmKHApe2w9KGwtbCkvMDticmVha31fW1NpPj4zXT0weDQwMDAwMDAwMDAwMDAwKmwsZj0wfGFbU2krND4+Ml0scD0tMTA3NyxjPTB8YVtTaT4+Ml0sbT05O2JyZWFrfWY+Pj4wPD0yMTQ2NDM1MDcxJiYoMD09KDB8YykmITAmMTA3MjY5MzI0OD09KDB8Zik/bD0w''@;'; + put 'put ''OihwPS0xMDIzLG09OSkpfXdoaWxlKDApO3JldHVybiA5PT0oMHxtKSYmKG09Zis2MTQyNDJ8MCxhW1NpPj4yXT1jLGFbU2krND4+Ml09MTA3MjA3OTAwNisoMTA0ODU3NSZtKSxBPShrPSh3PShNPStfW1NpPj4zXS0xKS8oTSsyKSkqdykqayxfW1NpPj4zXT1NLShiPU0qKC41Kk0pKSxmPTB8''@;'; + put 'put ''YVtTaSs0Pj4yXSxhW1NpPj4yXT0wLGFbU2krND4+Ml09ZixBPU0tKGw9K19bU2k+PjNdKS1iK3cqKGIrKEEqKEEqKC4xNTMxMzgzNzY5OTIwOTM3MypBKy4yMjIyMjE5ODQzMjE0OTc4NCkrLjM5OTk5OTk5OTk5NDA5NDIpK2sqKEEqKEEqKC4xNDc5ODE5ODYwNTExNjU4NipBKy4xODE4MzU3''@;'; + put 'put ''MjE2MTYxODA1KSsuMjg1NzE0Mjg3NDM2NjIzOSkrLjY2NjY2NjY2NjY2NjY3MzUpKSksbD0odz0oaz0xLjQ0MjY5NTA0MDcyMTQ0NjMqbCkrKGI9KyhwKyhtPj4+MjApfDApKSkrKGsrKGItdykrKDEuNDQyNjk1MDQwNzIxNDQ2MypBKzEuNjc1MTcxMzE2NDg4NjUxMmUtMTAqKEErbCkpKSks''@;'; + put 'put ''K2x9ZnVuY3Rpb24gaSQobCxjKXtjfD0wO3ZhciBwLG0sZj0wO3N3aXRjaChfW1NpPj4zXT1sPStsLDIwNDcmKG09MHx3bCgwfChmPTB8YVtTaT4+Ml0pLDB8KHA9MHxhW1NpKzQ+PjJdKSw1MikpKXtjYXNlIDA6MCE9bD8obD0raSQoMHgxMDAwMDAwMDAwMDAwMDAwMCpsLGMpLGY9KDB8YVtj''@;'; + put 'put ''Pj4yXSktNjR8MCk6Zj0wLGFbYz4+Ml09ZjticmVhaztjYXNlIDIwNDc6YnJlYWs7ZGVmYXVsdDphW2M+PjJdPSgyMDQ3Jm0pLTEwMjIsYVtTaT4+Ml09ZixhW1NpKzQ+PjJdPS0yMTQ2NDM1MDczJnB8MTA3MTY0NDY3MixsPStfW1NpPj4zXX1yZXR1cm4rbH1mdW5jdGlvbiBvJChsLGMpe3Zh''@;'; + put 'put ''ciBmLHAsbSxBO3JldHVybisoKEE9MS0obT0uNSooZj0obD0rbCkqbCkpKSsoMS1BLW0rKGYqKGYqKGYqKDI0ODAxNTg3Mjg5NDc2NzNlLTIwKmYtLjAwMTM4ODg4ODg4ODg4NzQxMSkrLjA0MTY2NjY2NjY2NjY2NjYpKyhwPWYqZikqcCooZiooMi4wODc1NzIzMjEyOTgxNzVlLTktMTEzNTk2''@;'; + put 'put ''NDc1NTc3ODgxOTVlLTI3KmYpLTIuNzU1NzMxNDM1MTM5MDY2M2UtNykpLWwqKGM9K2MpKSkpfWZ1bmN0aW9uIGp1ZShsLGMpe2N8PTA7dmFyIGssTSxELEssZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsUj0wLEc9MCxwZT0wO0s9YWUsYWU9YWUrNDh8MCxrPUsrMTZ8MCxNPUssX1tTaT4+M109''@;'; + put 'put ''bD0rbCxEPTB8d2woMHwoZj0wfGFbU2k+PjJdKSwwfCh3PTB8YVtTaSs0Pj4yXSksNjMpLEc9MjE0NzQ4MzY0NyZ3O2Rve2lmKEc+Pj4wPDEwNzQ3NTIxMjMpe2lmKDU5ODUyMyE9KDEwNDg1NzUmd3wwKSl7aWYoZj0wIT0oMHxEKSxHPj4+MDwxMDczOTI4NTczKXtpZihmKXtfW2M+PjNdPWI9''@;'; + put 'put ''KEE9bCsxLjU3MDc5NjMyNjczNDEyNTYpKzYwNzcxMDA1MDY1MDYxOTJlLTI2LF9bYys4Pj4zXT1BLWIrNjA3NzEwMDUwNjUwNjE5MmUtMjYsZj0tMTticmVha31fW2M+PjNdPWI9KEE9bCstMS41NzA3OTYzMjY3MzQxMjU2KSstNjA3NzEwMDUwNjUwNjE5MmUtMjYsX1tjKzg+PjNdPUEtYi02''@;'; + put 'put ''MDc3MTAwNTA2NTA2MTkyZS0yNixmPTE7YnJlYWt9aWYoZil7X1tjPj4zXT1iPShBPWwrMy4xNDE1OTI2NTM0NjgyNTEyKSsxLjIxNTQyMDEwMTMwMTIzODRlLTEwLF9bYys4Pj4zXT1BLWIrMS4yMTU0MjAxMDEzMDEyMzg0ZS0xMCxmPS0yO2JyZWFrfV9bYz4+M109Yj0oQT1sKy0zLjE0MTU5''@;'; + put 'put ''MjY1MzQ2ODI1MTIpKy0xLjIxNTQyMDEwMTMwMTIzODRlLTEwLF9bYys4Pj4zXT1BLWItMS4yMTU0MjAxMDEzMDEyMzg0ZS0xMCxmPTI7YnJlYWt9Uj0yMX1lbHNle2lmKEc+Pj4wPDEwNzU1OTQ4MTIpe2lmKEc+Pj4wPDEwNzUxODMwMzcpe2lmKDEwNzQ5NzcxNDg9PSgwfEcpKXtSPTIxO2Jy''@;'; + put 'put ''ZWFrfWlmKEQpe19bYz4+M109Yj0oQT1sKzQuNzEyMzg4OTgwMjAyMzc3KSsxLjgyMzEzMDE1MTk1MTg1NzhlLTEwLF9bYys4Pj4zXT1BLWIrMS44MjMxMzAxNTE5NTE4NTc4ZS0xMCxmPS0zO2JyZWFrfV9bYz4+M109Yj0oQT1sKy00LjcxMjM4ODk4MDIwMjM3NykrLTEuODIzMTMwMTUxOTUx''@;'; + put 'put ''ODU3OGUtMTAsX1tjKzg+PjNdPUEtYi0xLjgyMzEzMDE1MTk1MTg1NzhlLTEwLGY9MzticmVha31pZigxMDc1Mzg4OTIzPT0oMHxHKSl7Uj0yMTticmVha31pZihEKXtfW2M+PjNdPWI9KEE9bCs2LjI4MzE4NTMwNjkzNjUwMjUpKzIuNDMwODQwMjAyNjAyNDc3ZS0xMCxfW2MrOD4+M109QS1i''@;'; + put 'put ''KzIuNDMwODQwMjAyNjAyNDc3ZS0xMCxmPS00O2JyZWFrfV9bYz4+M109Yj0oQT1sKy02LjI4MzE4NTMwNjkzNjUwMjUpKy0yLjQzMDg0MDIwMjYwMjQ3N2UtMTAsX1tjKzg+PjNdPUEtYi0yLjQzMDg0MDIwMjYwMjQ3N2UtMTAsZj00O2JyZWFrfWlmKEc+Pj4wPj0xMDk0MjYzMjkxKXtpZihH''@;'; + put 'put ''Pj4+MD4yMTQ2NDM1MDcxKXtfW2MrOD4+M109Yj1sLWwsX1tjPj4zXT1iLGY9MDticmVha31hW1NpPj4yXT1mLGFbU2krND4+Ml09MTA0ODU3NSZ3fDEwOTY4MTA0OTYsbD0rX1tTaT4+M10sZj0wO2Rve19baysoZjw8Myk+PjNdPWI9KygwfH5+bCksbD0xNjc3NzIxNioobC1iKSxmPWYrMXww''@;'; + put 'put ''fXdoaWxlKDIhPSgwfGYpKTtpZihfW2srMTY+PjNdPWwsMD09bClmb3IoZj0xOzA9PStfW2srKGY8PDMpPj4zXTspZj1mKy0xfDA7ZWxzZSBmPTI7aWYoZj0wfFp1ZShrLE0sKEc+Pj4yMCktMTA0NnwwLGYrMXwwLDEpLGw9K19bTT4+M10sRCl7X1tjPj4zXT0tbCxfW2MrOD4+M109LStfW00r''@;'; + put 'put ''OD4+M10sZj0wLWZ8MDticmVha31fW2M+PjNdPWwsX1tjKzg+PjNdPStfW00rOD4+M107YnJlYWt9Uj0yMX19d2hpbGUoMCk7cmV0dXJuIDIxPT0oMHxSKSYmKGY9fn4oQT0uNjM2NjE5NzcyMzY3NTgxNCpsKzY3NTUzOTk0NDEwNTU3NDQtNjc1NTM5OTQ0MTA1NTc0NCksX1tjPj4zXT1sPShw''@;'; + put 'put ''PWwtMS41NzA3OTYzMjY3MzQxMjU2KkEpLShtPTYwNzcxMDA1MDY1MDYxOTJlLTI2KkEpLF9bU2k+PjNdPWwsKCh3PUc+Pj4yMCktKDIwNDcmKFI9MHx3bCgwfGFbU2k+PjJdLDB8YVtTaSs0Pj4yXSw1MikpKXwwKT4xNiYmKF9bYz4+M109bD0oYj1wLShtPTYwNzcxMDA1MDYzMDM5NjZlLTI2''@;'; + put 'put ''KkEpKS0obT0yMDIyMjY2MjQ4Nzk1OTUwNmUtMzcqQS0ocC1iLW0pKSxfW1NpPj4zXT1sLEE9ODQ3ODQyNzY2MDM2ODllLTQ1KkEtKGItKHA9Yi0ocGU9MjAyMjI2NjI0ODcxMTE2NjVlLTM3KkEpKS1wZSksKHctKDIwNDcmKEc9MHx3bCgwfGFbU2k+PjJdLDB8YVtTaSs0Pj4yXSw1MikpKXww''@;'; + put 'put ''KT40OT8oX1tjPj4zXT1sPXAtQSxtPUEpOnA9YiksX1tjKzg+PjNdPXAtbC1tKSxhZT1LLDB8Zn1mdW5jdGlvbiBadWUobCxjLGYscCxtKXtsfD0wLGN8PTA7dmFyIGJlLE9lLExlLFJlLEhlLHFlLG50LFdlLG90LGx0LEV0LEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBl''@;'; + put 'put ''PTAsZ2U9MCxWZT0wLFN0PTAsa3Q9MCxadD0wO2lmKEV0PWFlLGFlPWFlKzU2MHwwLFdlPUV0KzQ4MHwwLHFlPUV0KzMyMHwwLGx0PUV0KzE2MHwwLFN0PUV0LG90PTB8YVs2MzIyMCsoKG18PTApPDwyKT4+Ml0sRz0ocHw9MCktMXwwLGI9KGZ8PTApLTI0KyhudD0wfEFyKFZlPSgwfChWZT0o''@;'; + put 'put ''ZistM3wwKS8yNHwwKSk+MD9WZTowLC0yNCkpfDAsKG90K0d8MCk+PTApZm9yKEQ9b3QrcHwwLGs9VmUtR3wwLE09MDtfW3FlKyhNPDwzKT4+M109QT0oMHxrKTwwPzA6KygwfGFbNjMyMzYrKGs8PDIpPj4yXSksKDB8KE09TSsxfDApKSE9KDB8RCk7KWs9aysxfDA7Zm9yKFI9KDB8cCk+MCxE''@;'; + put 'put ''PTA7Oyl7aWYoUil7TT1EK0d8MCxBPTAsaz0wO2Rve0ErPStfW2wrKGs8PDMpPj4zXSorX1txZSsoTS1rPDwzKT4+M10saz1rKzF8MH13aGlsZSgoMHxrKSE9KDB8cCkpfWVsc2UgQT0wO2lmKF9bU3QrKEQ8PDMpPj4zXT1BLCEoKDB8RCk8KDB8b3QpKSlicmVhaztEPUQrMXwwfWJlPSgwfGIp''@;'; + put 'put ''PjAsT2U9MjQtYnwwLExlPTIzLWJ8MCxSZT0oMHxwKT4wLEhlPTA9PSgwfGIpLGs9b3Q7ZTpmb3IoOzspe2lmKEE9K19bU3QrKGs8PDMpPj4zXSxSPSgwfGspPjApZm9yKE09ayxEPTA7YVtXZSsoRDw8Mik+PjJdPX5+KEEtMTY3NzcyMTYqKHc9KygwfH5+KDUuOTYwNDY0NDc3NTM5MDYzZS04''@;'; + put 'put ''KkEpKSkpLGdlPU0sQT0rX1tTdCsoKE09TSstMXwwKTw8Myk+PjNdK3csISgoMHxnZSk8PTEpOylEPUQrMXwwO0E9K3ZnKEEsYiksQS09OCorY2YoLjEyNSpBKSxBLT0rKDB8KE09fn5BKSk7ZG97aWYoIWJlKXtpZihIZSl7RD1hW1dlKyhrKy0xPDwyKT4+Ml0+PjIzLGt0PTE5O2JyZWFrfWlm''@;'; + put 'put ''KEE+PS41KXtEPTIsa3Q9MjA7YnJlYWt9Rz0wLGdlPU07YnJlYWt9YVsoZ2U9V2UrKGsrLTE8PDIpfDApPj4yXT1EPShEPTB8YVtnZT4+Ml0pLSgoa3Q9RD4+T2UpPDxPZSl8MCxEPj49TGUsTT1rdCtNfDAsa3Q9MTl9d2hpbGUoMCk7aWYoMTk9PSgwfGt0KSYmKGt0PTAsKDB8RCk+MD9rdD0y''@;'; + put 'put ''MDooRz1ELGdlPU0pKSwyMD09KDB8a3QpKXtpZihrdD0wLGdlPU0rMXwwLFIpe009MCxwZT0wO2Rve0s9MHxhWyhHPVdlKyhwZTw8Mil8MCk+PjJdLE0/KFI9MTY3NzcyMTUsa3Q9MjMpOks/KE09MSxSPTE2Nzc3MjE2LGt0PTIzKTpNPTAsMjM9PSgwfGt0KSYmKGt0PTAsYVtHPj4yXT1SLUsp''@;'; + put 'put ''LHBlPXBlKzF8MH13aGlsZSgoMHxwZSkhPSgwfGspKX1lbHNlIE09MDt0OmRve2lmKGJlKXtzd2l0Y2goMHxiKXtjYXNlIDE6Uj04Mzg4NjA3O2JyZWFrO2Nhc2UgMjpSPTQxOTQzMDM7YnJlYWs7ZGVmYXVsdDpicmVhayB0fWFbKHBlPVdlKyhrKy0xPDwyKXwwKT4+Ml09YVtwZT4+Ml0mUn19''@;'; + put 'put ''d2hpbGUoMCk7Mj09KDB8RCk/KEE9MS1BLE0/KEc9MixBLT0rdmcoMSxiKSk6Rz0yKTpHPUR9aWYoMCE9QSl7a3Q9NDI7YnJlYWt9aWYoKDB8ayk+KDB8b3QpKXtNPTAsRD1rO2Rve018PWFbV2UrKChEPUQrLTF8MCk8PDIpPj4yXX13aGlsZSgoMHxEKT4oMHxvdCkpO2lmKE0pe2t0PTQxO2Jy''@;'; + put 'put ''ZWFrfU09MX1lbHNlIE09MTtmb3IoOyEoMHxhW1dlKyhvdC1NPDwyKT4+Ml0pOylNPU0rMXwwO2lmKFI9TStrfDAsKDB8TSk8PTApaz1SO2Vsc2UgZm9yKDs7KXtpZihfW3FlKygoTT1rK3B8MCk8PDMpPj4zXT0rKDB8YVs2MzIzNisoKEQ9aysxfDApK1ZlPDwyKT4+Ml0pLFJlKXtBPTAsaz0w''@;'; + put 'put ''O2Rve0ErPStfW2wrKGs8PDMpPj4zXSorX1txZSsoTS1rPDwzKT4+M10saz1rKzF8MH13aGlsZSgoMHxrKSE9KDB8cCkpfWVsc2UgQT0wO2lmKF9bU3QrKEQ8PDMpPj4zXT1BLCEoKDB8RCk8KDB8UikpKXtrPVI7Y29udGludWUgZX1rPUR9fWlmKDQxPT0oMHxrdCkpZm9yKDs7KXtpZihrdD0w''@;'; + put 'put ''LGI9YistMjR8MCwwfGFbV2UrKChrPWsrLTF8MCk8PDIpPj4yXSl7Uj1rO2JyZWFrfWt0PTQxfWVsc2UgNDI9PSgwfGt0KSYmKChBPSt2ZyhBLDAtYnwwKSk+PTE2Nzc3MjE2JiYoYVtXZSsoazw8Mik+PjJdPX5+KEEtMTY3NzcyMTYqKHc9KygwfH5+KDUuOTYwNDY0NDc3NTM5MDYzZS04KkEp''@;'; + put 'put ''KSkpLGI9bnQrZnwwLGs9aysxfDAsQT13KSxhW1dlKyhrPDwyKT4+Ml09fn5BLFI9ayk7aWYoRD0oMHxSKT4tMSl7Zm9yKEE9K3ZnKDEsYiksYj1SO19bU3QrKGI8PDMpPj4zXT1BKisoMHxhW1dlKyhiPDwyKT4+Ml0pLCgwfGIpPjA7KUEqPTUuOTYwNDY0NDc3NTM5MDYzZS04LGI9YistMXww''@;'; + put 'put ''O2lmKEQpZm9yKGs9Ujs7KXtmb3IoTT1SLWt8MCxiPTAsQT0wO0ErPStfWzEwOTA0KyhiPDwzKT4+M10qK19bU3QrKGIrazw8Myk+PjNdLCEoKDB8Yik+PSgwfG90KXwoMHxiKT49KDB8TSkpOyliPWIrMXwwO2lmKF9bbHQrKE08PDMpPj4zXT1BLCEoKDB8ayk+MCkpYnJlYWs7az1rKy0xfDB9''@;'; + put 'put ''fXN3aXRjaCgwfG0pe2Nhc2UgMDppZihEKWZvcihBPTAsYj1SO0ErPStfW2x0KyhiPDwzKT4+M10sKDB8Yik+MDspYj1iKy0xfDA7ZWxzZSBBPTA7dz0wPT0oMHxHKT9BOi1BLGt0PTczO2JyZWFrO2Nhc2UgMjpjYXNlIDE6aWYoRClmb3IoQT0wLGI9UjtBKz0rX1tsdCsoYjw8Myk+PjNdLCgw''@;'; + put 'put ''fGIpPjA7KWI9YistMXwwO2Vsc2UgQT0wO2lmKF9bYz4+M109KGs9MD09KDB8RykpP0E6LUEsQT0rX1tsdD4+M10tQSwoMHxSKT49MSlmb3IoYj0xO0ErPStfW2x0KyhiPDwzKT4+M10sKDB8YikhPSgwfFIpOyliPWIrMXwwO3c9az9BOi1BLGM9Yys4fDAsa3Q9NzM7YnJlYWs7Y2FzZSAzOmlm''@;'; + put 'put ''KCgwfFIpPjApe2I9UixBPStfW2x0KyhSPDwzKT4+M107ZG97X1tsdCsoKGt0PWIpPDwzKT4+M109KFp0PUEpKygodz0rX1soU3Q9bHQrKChiPWIrLTF8MCk8PDMpfDApPj4zXSktKEE9dytBKSksX1tTdD4+M109QX13aGlsZSgoMHxrdCk+MSk7aWYoaz0oMHxSKT4xKXtiPVIsQT0rX1tsdCso''@;'; + put 'put ''Ujw8Myk+PjNdO2Rve19bbHQrKChrdD1iKTw8Myk+PjNdPSh3PUEpKygoWnQ9K19bKFN0PWx0KygoYj1iKy0xfDApPDwzKXwwKT4+M10pLShBPVp0K0EpKSxfW1N0Pj4zXT1BfXdoaWxlKCgwfGt0KT4yKTtpZihrKWZvcihiPVIsdz0wO3crPStfW2x0KyhiPDwzKT4+M10sKDB8Yik+MjspYj1i''@;'; + put 'put ''Ky0xfDA7ZWxzZSB3PTB9ZWxzZSB3PTB9ZWxzZSB3PTA7QT0rX1tsdD4+M10sRz8oX1tjPj4zXT0tQSx3PS13LEE9LStfW2x0Kzg+PjNdKTooX1tjPj4zXT1BLEE9K19bbHQrOD4+M10pLF9bYys4Pj4zXT1BLGM9YysxNnwwLGt0PTczfXJldHVybiA3Mz09KDB8a3QpJiYoX1tjPj4zXT13KSxh''@;'; + put 'put ''ZT1FdCw3JmdlfDB9ZnVuY3Rpb24gdmcobCxjKXtsPStsO3ZhciBmPTAscD0wO3JldHVybigwfChjfD0wKSk8PTEwMjM/KDB8Yyk8LTEwMjImJihsKj0yMjI1MDczODU4NTA3MjAxNGUtMzI0LGY9YysyMDQ0fDAsbD0ocD0oMHxjKTwtMjA0NCk/MjIyNTA3Mzg1ODUwNzIwMTRlLTMyNCpsOmws''@;'; + put 'put ''Yz1wPygwfGYpPi0xMDIyP2Y6LTEwMjI6YysxMDIyfDApOihsKj04OTg4NDY1Njc0MzExNThlMjkzLHA9YystMjA0NnwwLGw9KGY9KDB8Yyk+MjA0Nik/ODk4ODQ2NTY3NDMxMTU4ZTI5MypsOmwsYz1mPygwfHApPDEwMjM/cDoxMDIzOmMrLTEwMjN8MCksZj0wfFpvKGMrMTAyM3wwLDAsNTIp''@;'; + put 'put ''LHA9RG4sYVtTaT4+Ml09ZixhW1NpKzQ+PjJdPXAsK2wqK19bU2k+PjNdfWZ1bmN0aW9uIG1qKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO19bU2k+PjNdPWw9K2wsYz0yMTQ3NDgzNjQ3JihmPTB8YVtTaSs0Pj4yXSk7ZG97aWYoYz4+PjA+MjE0NjQzNTA3MSlsKz1sO2Vsc2V7aWYoYz4+''@;'; + put 'put ''PjA8MTA0ODU3Nil7aWYoX1tTaT4+M109MHg0MDAwMDAwMDAwMDAwMCpsLCEoYz0yMTQ3NDgzNjQ3JihmPTB8YVtTaSs0Pj4yXSkpKWJyZWFrO3A9Njk2MjE5Nzk1fWVsc2UgcD03MTUwOTQxNjM7YVtTaT4+Ml09MCxhW1NpKzQ+PjJdPSgoYz4+PjApLzN8MCkrcHwtMjE0NzQ4MzY0OCZmLF9b''@;'; + put 'put ''U2k+PjNdPSgoQT0obT0rX1tTaT4+M10pKm0qKG0vbCkpKihBKkEpKiguMTQ1OTk2MTkyODg2NjEyNDUqQS0uNzU4Mzk3OTM0Nzc4NzY2KSsoQSooMS42MjE0Mjk3MjAxMDUzNTQ1KkEtMS44ODQ5Nzk3OTU0MzM3NzE3KSsxLjg3NTk1MTgyNDI3MTc3KSkqbSxmPTB8emwoMHxhW1NpPj4yXSww''@;'; + put 'put ''fGFbU2krND4+Ml0sLTIxNDc0ODM2NDgsMCkscD1EbixhW1NpPj4yXT0tMTA3Mzc0MTgyNCZmLGFbU2krND4+Ml09cCxsPSgobC89KG09K19bU2k+PjNdKSptKS1tKS8obSttK2wpKm0rbX19d2hpbGUoMCk7cmV0dXJuK2x9ZnVuY3Rpb24gYSQobCxjKXtyZXR1cm4rICtmdW5jdGlvbiB6dWUo''@;'; + put 'put ''bCxjKXtjPStjO3ZhciBwLGY9MDtyZXR1cm4gX1tTaT4+M109bD0rbCxwPTB8YVtTaT4+Ml0sZj0wfGFbU2krND4+Ml0sX1tTaT4+M109YyxmPS0yMTQ3NDgzNjQ4JmFbU2krND4+Ml18MjE0NzQ4MzY0NyZmLGFbU2k+PjJdPXAsYVtTaSs0Pj4yXT1mLCsgK19bU2k+PjNdfShsPStsLGM9K2Mp''@;'; + put 'put ''fWZ1bmN0aW9uIGwkKGwsYyl7cmV0dXJuKyArdmcobD0rbCxjfD0wKX1mdW5jdGlvbiBzJChsLGMpe3JldHVybisgK2Z1bmN0aW9uIEd1ZShsLGMpe2M9K2M7dmFyIEcsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEs9MDtfW1NpPj4zXT1sPStsLHc9MHxhW1NpPj4y''@;'; + put 'put ''XSxrPTB8YVtTaSs0Pj4yXSxfW1NpPj4zXT1jLEQ9MHxhW1NpPj4yXSxSPTB8YVtTaSs0Pj4yXSxwPTIwNDcmKHA9MHx3bCgwfHcsMHxrLDUyKSksTT0yMDQ3JihNPTB8d2woMHxELDB8Uiw1MikpLEc9LTIxNDc0ODM2NDgmayxBPTB8Wm8oMHxELDB8UiwxKSxiPURuO2U6ZG97aWYoMD09KDB8''@;'; + put 'put ''QSkmMD09KDB8Yil8fChtPTB8V3VlKGMpLGY9MjE0NzQ4MzY0NyZEbiwyMDQ3PT0oMHxwKXxmPj4+MD4yMTQ2NDM1MDcyfDIxNDY0MzUwNzI9PSgwfGYpJm0+Pj4wPjApKUs9MztlbHNle2lmKGY9MHxabygwfHcsMHxrLDEpLCEoKG09RG4pPj4+MD5iPj4+MHwoMHxtKT09KDB8YikmZj4+PjA+''@;'; + put 'put ''QT4+PjApKXJldHVybisoKDB8Zik9PSgwfEEpJigwfG0pPT0oMHxiKT8wKmw6bCk7aWYocClBPTEwNDg1NzUma3wxMDQ4NTc2O2Vsc2V7aWYoZj0wfFpvKDB8dywwfGssMTIpLCgwfChtPURuKSk+LTF8LTE9PSgwfG0pJmY+Pj4wPjQyOTQ5NjcyOTUpe3A9MDtkb3twPXArLTF8MCxmPTB8Wm8o''@;'; + put 'put ''MHxmLDB8bSwxKSxtPURufXdoaWxlKCgwfG0pPi0xfC0xPT0oMHxtKSZmPj4+MD40Mjk0OTY3Mjk1KX1lbHNlIHA9MDt3PTB8Wm8oMHx3LDB8aywxLXB8MCksQT1Ebn1pZihNKWs9MTA0ODU3NSZSfDEwNDg1NzY7ZWxzZXtpZihtPTB8Wm8oMHxELDB8UiwxMiksKDB8KGI9RG4pKT4tMXwtMT09''@;'; + put 'put ''KDB8YikmbT4+PjA+NDI5NDk2NzI5NSl7Zj0wO2Rve2Y9ZistMXwwLG09MHxabygwfG0sMHxiLDEpLGI9RG59d2hpbGUoKDB8Yik+LTF8LTE9PSgwfGIpJm0+Pj4wPjQyOTQ5NjcyOTUpfWVsc2UgZj0wO0Q9MHxabygwfEQsMHxSLDEtZnwwKSxNPWYsaz1Ebn1tPTB8U3AoMHx3LDB8QSwwfEQs''@;'; + put 'put ''MHxrKSxiPSgwfChmPURuKSk+LTF8LTE9PSgwfGYpJm0+Pj4wPjQyOTQ5NjcyOTU7dDpkb3tpZigoMHxwKT4oMHxNKSl7Zm9yKDs7KXtpZihiKXtpZigwPT0oMHxtKSYwPT0oMHxmKSlicmVha31lbHNlIG09dyxmPUE7aWYocD1wKy0xfDAsbT0wfFNwKDB8KHc9MHxabygwfG0sMHxmLDEpKSww''@;'; + put 'put ''fChBPURuKSwwfEQsMHxrKSxiPSgwfChmPURuKSk+LTF8LTE9PSgwfGYpJm0+Pj4wPjQyOTQ5NjcyOTUsKDB8cCk8PSgwfE0pKWJyZWFrIHR9Yz0wKmw7YnJlYWsgZX19d2hpbGUoMCk7aWYoYil7aWYoMD09KDB8bSkmMD09KDB8Zikpe2M9MCpsO2JyZWFrfX1lbHNlIGY9QSxtPXc7aWYoZj4+''@;'; + put 'put ''PjA8MTA0ODU3NnwxMDQ4NTc2PT0oMHxmKSZtPj4+MDwwKWRve209MHxabygwfG0sMHxmLDEpLGY9RG4scD1wKy0xfDB9d2hpbGUoZj4+PjA8MTA0ODU3NnwxMDQ4NTc2PT0oMHxmKSZtPj4+MDwwKTsoMHxwKT4wPyhSPTB8emwoMHxtLDB8ZiwwLC0xMDQ4NTc2KSxmPURuLHA9MHxabygwfHAs''@;'; + put 'put ''MCw1MiksZnw9RG4scHw9Uik6KHA9MHx3bCgwfG0sMHxmLDEtcHwwKSxmPURuKSxhW1NpPj4yXT1wLGFbU2krND4+Ml09ZnxHLGM9K19bU2k+PjNdfX13aGlsZSgwKTtyZXR1cm4gMz09KDB8SykmJihjPShjKj1sKS9jKSwrY30obD0rbCxjPStjKX1mdW5jdGlvbiBXdWUobCl7cmV0dXJuIF9b''@;'; + put 'put ''U2k+PjNdPWw9K2wsRG49MHxhW1NpKzQ+PjJdLDB8YVtTaT4+Ml19ZnVuY3Rpb24gS3kobCxjKXtjPStjO3ZhciBiLGssTSxELFIsRyxLLHBlLGY9MCxwPTAsbT0wLEE9MCx3PTAsZ2U9MDtHPWFlLGFlPWFlKzMyfDAsaz1HKzI0fDAsTT1HKzE2fDAsRD1HKzh8MCxSPUcsX1tTaT4+M109bD0r''@;'; + put 'put ''bCxnZT0wfGFbU2k+PjJdLEE9MHxhW1NpKzQ+PjJdLF9bU2k+PjNdPWMscGU9KHc9KEEmPTIxNDc0ODM2NDcpPj4+MDwobT0yMTQ3NDgzNjQ3JmFbU2krND4+Ml0pPj4+MHwoMHxBKT09KDB8bSkmZ2U+Pj4wPChwPTB8YVtTaT4+Ml0pPj4+MCk/cDpnZSxLPXc/bTpBLHA9dz9nZTpwLG09dz9B''@;'; + put 'put ''Om0sQT0wfHdsKDB8cGUsMHxLLDUyKSx3PTB8d2woMHxwLDB8bSw1MiksYVtTaT4+Ml09cGUsYVtTaSs0Pj4yXT1LLGw9K19bU2k+PjNdLGFbU2k+PjJdPXAsYVtTaSs0Pj4yXT1tLGI9K19bU2k+PjNdO2Rve2lmKDIwNDchPSgwfHcpKXtpZighKDA9PSgwfHApJjA9PSgwfG0pfDIwNDc9PSgw''@;'; + put 'put ''fEEpKSl7aWYoKEEtd3wwKT42NCl7bCs9YjticmVha30oMHxBKT4xNTMzPyhmPTUuMjYwMTM1OTAxNTQ4Mzc0ZTIxMCxjPTE5MDEwOTE1NjYyOTUxNmUtMjI1KmwsbD0xOTAxMDkxNTY2Mjk1MTZlLTIyNSpiKTooZj0oZ2U9KDB8dyk8NTczKT8xOTAxMDkxNTY2Mjk1MTZlLTIyNToxLGM9Z2U/''@;'; + put 'put ''NS4yNjAxMzU5MDE1NDgzNzRlMjEwKmw6bCxsPWdlPzUuMjYwMTM1OTAxNTQ4Mzc0ZTIxMCpiOmIpLFl1ZShrLE0sYyksWXVlKEQsUixsKSxsPWYqK0QwKCsoK19bUj4+M10rICtfW00+PjNdKyArX1tEPj4zXSsgK19baz4+M10pKX19ZWxzZSBsPWJ9d2hpbGUoMCk7cmV0dXJuIGFlPUcsK2x9''@;'; + put 'put ''ZnVuY3Rpb24gWXVlKGwsYyxmKXtjfD0wO3ZhciBwLG09MDttPTEzNDIxNzcyOSooZj0rZikscD1mLShtKz1mLW0pLF9bKGx8PTApPj4zXT1mKj1mLF9bYz4+M109cCpwKyhtKm0tZisyKm0qcCl9ZnVuY3Rpb24gc0wobCxjLGYpe2N8PTAsZnw9MDt2YXIgQSxiLHA9MCxtPTAsdz0wLGs9MDti''@;'; + put 'put ''PWFlLGFlPWFlKzE2fDAsQT1iLF9bU2k+PjNdPWw9K2wsbT0yMTQ3NDgzNjQ3JmFbU2krND4+Ml07ZG97aWYobT4+PjA8MTA3MjI0MzE5Nil7aWYobT4+PjA8MTA0NDgxNjAzMCl7X1tjPj4zXT1sLF9bZj4+M109MTticmVha31fW2M+PjNdPStuJChsLDAsMCksX1tmPj4zXT0rbyQobCwwKTti''@;'; + put 'put ''cmVha31pZihtPj4+MD4yMTQ2NDM1MDcxKXtfW2Y+PjNdPXc9bC1sLF9bYz4+M109dzticmVha31zd2l0Y2gobT0wfGp1ZShsLEEpLHA9K24kKCtfW0E+PjNdLCtfWyhrPUErOHwwKT4+M10sMSksbD0rbyQoK19bQT4+M10sK19baz4+M10pLDMmbSl7Y2FzZSAwOl9bYz4+M109cCx3PWw7YnJl''@;'; + put 'put ''YWs7Y2FzZSAxOl9bYz4+M109bCx3PS1wO2JyZWFrO2Nhc2UgMjpfW2M+PjNdPS1wLHc9LWw7YnJlYWs7Y2FzZSAzOl9bYz4+M109LWwsdz1wfV9bZj4+M109d313aGlsZSgwKTthZT1ifWZ1bmN0aW9uIEVBZShsLGMpe3JldHVybisgK2kkKGw9K2wsY3w9MCl9ZnVuY3Rpb24gczIobCxjLGYp''@;'; + put 'put ''e2x8PTAsY3w9MDt2YXIgcD0wLG09MDtpZihmfD0wKXtwPTB8ZmVbbD4+MF07ZTpkb3tpZihwPDwyND4+MjQpZm9yKDs7KXtpZighKHA8PDI0Pj4yND09KG09MHxmZVtjPj4wXSk8PDI0Pj4yNCYwIT0oMHwoZj1mKy0xfDApKSZtPDwyND4+MjQhPTApKWJyZWFrIGU7aWYoYz1jKzF8MCwhKChw''@;'; + put 'put ''PTB8ZmVbKGw9bCsxfDApPj4wXSk8PDI0Pj4yNCkpe3A9MDticmVha319ZWxzZSBwPTB9d2hpbGUoMCk7cD0oMjU1JnApLSgwfEp0W2M+PjBdKXwwfWVsc2UgcD0wO3JldHVybiAwfHB9ZnVuY3Rpb24gJHMobCxjKXtyZXR1cm4gbD0wfGxMKGx8PTAsY3w9MCksMHwoKDB8ZmVbbD4+MF0pPT0o''@;'; + put 'put ''MjU1JmMpPDwyND4+MjQ/bDowKX1mdW5jdGlvbiAkYyhsKXtyZXR1cm4gMSYoMzI9PSgwfChsfD0wKSl8KGwrLTl8MCk+Pj4wPDUpfDB9ZnVuY3Rpb24gJGsobCxjLGYpe2x8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MDtBPTI1NSYoY3w9MCkscD0wIT0oMHwoZnw9MCkpO2U6ZG97aWYocCYwIT0o''@;'; + put 'put ''MyZsfDApKWZvcihtPTI1NSZjOzspe2lmKCgwfGZlW2w+PjBdKT09bTw8MjQ+PjI0KXt3PTY7YnJlYWsgZX1pZighKChwPTAhPSgwfChmPWYrLTF8MCkpKSYwIT0oMyYobD1sKzF8MCl8MCkpKXt3PTU7YnJlYWt9fWVsc2Ugdz01fXdoaWxlKDApOzU9PSgwfHcpJiYocD93PTY6Zj0wKTtlOmRv''@;'; + put 'put ''e2lmKDY9PSgwfHcpJiYobT0yNTUmYywoMHxmZVtsPj4wXSkhPW08PDI0Pj4yNCkpe3A9MHxBcihBLDE2ODQzMDA5KTt0OmRve2lmKGY+Pj4wPjMpe2Zvcig7ISgoLTIxMzkwNjIxNDQmKEE9YVtsPj4yXV5wKV4tMjEzOTA2MjE0NCkmQSstMTY4NDMwMDl8MCk7KWlmKGw9bCs0fDAsKGY9Zist''@;'; + put 'put ''NHwwKT4+PjA8PTMpe3c9MTE7YnJlYWsgdH19ZWxzZSB3PTExfXdoaWxlKDApO2lmKDExPT0oMHx3KSYmIWYpe2Y9MDticmVha31mb3IoOzspe2lmKCgwfGZlW2w+PjBdKT09bTw8MjQ+PjI0KWJyZWFrIGU7aWYobD1sKzF8MCwhKGY9ZistMXwwKSl7Zj0wO2JyZWFrfX19fXdoaWxlKDApO3Jl''@;'; + put 'put ''dHVybiAwfCgwfGY/bDowKX1mdW5jdGlvbiB1JChsLGMsZixwLG0pe3ZhciBBLHcsYixrO3JldHVybiBsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsaz1hZSxhZT1hZSsxMjh8MCxhWyh3PWspPj4yXT0wLGFbKGI9dys0fDApPj4yXT1sLGFbdys0ND4+Ml09bCxhWyhBPXcrOHwwKT4+Ml09KDB8''@;'; + put 'put ''bCk8MD8tMTpsKzIxNDc0ODM2NDd8MCxhW3crNzY+PjJdPS0xLGNoKHcsMCksZj0wfGMkKHcsZiwxLHAsbSksMHxjJiYoYVtjPj4yXT1sKygoMHxhW2I+PjJdKSsoMHxhW3crMTA4Pj4yXSktKDB8YVtBPj4yXSkpKSxhZT1rLDB8Zn1mdW5jdGlvbiBjaChsLGMpe3ZhciBmLHAsbTthWzEwNCso''@;'; + put 'put ''bHw9MCk+PjJdPWN8PTAsYVtsKzEwOD4+Ml09bT0oZj0wfGFbbCs4Pj4yXSktKHA9MHxhW2wrND4+Ml0pfDAsYVtsKzEwMD4+Ml09MCE9KDB8YykmKDB8bSk+KDB8Yyk/cCtjfDA6Zn1mdW5jdGlvbiBjJChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxi''@;'; + put 'put ''PTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDtlOmRve2lmKGM+Pj4wPjM2KWFbNDc2NDNdPTIyLG09MCxwPTA7ZWxzZXtwZT1sKzR8MCxLPWwrMTAwfDA7ZG97KEE9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbSz4+Ml0pPj4+MD8oYVtwZT4+Ml09QSsxLEE9MHxKdFtBPj4wXSk6QT0wfEls''@;'; + put 'put ''KGwpfXdoaWxlKDAhPSgwfCRjKEEpKSk7dDpkb3tzd2l0Y2goMHxBKXtjYXNlIDQzOmNhc2UgNDU6aWYoQT0oNDU9PSgwfEEpKTw8MzE+PjMxLCh3PTB8YVtwZT4+Ml0pPj4+MDwoMHxhW0s+PjJdKT4+PjApe2FbcGU+PjJdPXcrMSxHPUEsQT0wfEp0W3c+PjBdO2JyZWFrIHR9Rz1BLEE9MHxJ''@;'; + put 'put ''bChsKTticmVhayB0O2RlZmF1bHQ6Rz0wfX13aGlsZSgwKTt3PTA9PSgwfGMpO2Rve2lmKDE2PT0oMTZ8YykmNDg9PSgwfEEpKXtpZigoQT0wfGFbcGU+PjJdKT4+PjA8KDB8YVtLPj4yXSk+Pj4wPyhhW3BlPj4yXT1BKzEsQT0wfEp0W0E+PjBdKTpBPTB8SWwobCksMTIwIT0oMzJ8QSkpe2lm''@;'; + put 'put ''KHcpe2M9OCxEPTQ2O2JyZWFrfUQ9MzI7YnJlYWt9aWYoKEE9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbSz4+Ml0pPj4+MD8oYVtwZT4+Ml09QSsxLEE9MHxKdFtBPj4wXSk6QT0wfElsKGwpLCgwfEp0WzE0OTU5MitBPj4wXSk+MTUpe2lmKChwPTA9PSgwfGFbSz4+Ml0pKXx8KGFbcGU+PjJdPSgw''@;'; + put 'put ''fGFbcGU+PjJdKS0xKSwhZil7Y2gobCwwKSxtPTAscD0wO2JyZWFrIGV9aWYocCl7bT0wLHA9MDticmVhayBlfWFbcGU+PjJdPSgwfGFbcGU+PjJdKS0xLG09MCxwPTA7YnJlYWsgZX1jPTE2LEQ9NDZ9ZWxzZXtpZighKChjPXc/MTA6Yyk+Pj4wPigwfEp0WzE0OTU5MitBPj4wXSk+Pj4wKSl7''@;'; + put 'put ''MHxhW0s+PjJdJiYoYVtwZT4+Ml09KDB8YVtwZT4+Ml0pLTEpLGNoKGwsMCksYVs0NzY0M109MjIsbT0wLHA9MDticmVhayBlfUQ9MzJ9fXdoaWxlKDApO3Q6ZG97aWYoMzI9PSgwfEQpKWlmKDEwPT0oMHxjKSl7aWYoKGM9QSstNDh8MCk+Pj4wPDEwKXtBPTAsdz1jO2Rve0E9KDEwKkF8MCkr''@;'; + put 'put ''d3wwLChjPTB8YVtwZT4+Ml0pPj4+MDwoMHxhW0s+PjJdKT4+PjA/KGFbcGU+PjJdPWMrMSxjPTB8SnRbYz4+MF0pOmM9MHxJbChsKSx3PWMrLTQ4fDB9d2hpbGUodz4+PjA8MTAmQT4+PjA8NDI5NDk2NzI5KTtmPTB9ZWxzZSBjPUEsQT0wLGY9MDtpZigoYj1jKy00OHwwKT4+PjA8MTApe3c9''@;'; + put 'put ''Yztkb3tpZihjPTB8cncoMHxBLDB8ZiwxMCwwKSwoaz1Ebik+Pj4wPihSPX4oTT0oKDB8Yik8MCk8PDMxPj4zMSkpPj4+MHwoMHxrKT09KDB8UikmYz4+PjA+fmI+Pj4wKXtjPTEwLEQ9NzI7YnJlYWsgdH1BPTB8emwoMHxjLDB8aywwfGIsMHxNKSxmPURuLChjPTB8YVtwZT4+Ml0pPj4+MDwo''@;'; + put 'put ''MHxhW0s+PjJdKT4+PjA/KGFbcGU+PjJdPWMrMSx3PTB8SnRbYz4+MF0pOnc9MHxJbChsKSxiPXcrLTQ4fDB9d2hpbGUoYj4+PjA8MTAmKGY+Pj4wPDQyOTQ5NjcyOXw0Mjk0OTY3Mjk9PSgwfGYpJkE+Pj4wPDI1NzY5ODAzNzgpKTtiPj4+MD45Pyh3PUcsYz1mKTooYz0xMCxEPTcyKX1lbHNl''@;'; + put 'put ''IHc9RyxjPWZ9ZWxzZSBEPTQ2fXdoaWxlKDApO3Q6ZG97aWYoNDY9PSgwfEQpKXtpZighKGMrLTEmYykpe2lmKEQ9MHxmZVsxNDk4NDgrKCgyMypjfDApPj4+NSY3KT4+MF0sYz4+PjA+KHc9MjU1JihmPTB8ZmVbMTQ5NTkyK0E+PjBdKSk+Pj4wKXtBPTAsYj13O2Rve0E9YnxBPDxELCh3PTB8''@;'; + put 'put ''YVtwZT4+Ml0pPj4+MDwoMHxhW0s+PjJdKT4+PjA/KGFbcGU+PjJdPXcrMSx3PTB8SnRbdz4+MF0pOnc9MHxJbChsKSxiPTI1NSYoZj0wfGZlWzE0OTU5Mit3Pj4wXSl9d2hpbGUoQT4+PjA8MTM0MjE3NzI4JmM+Pj4wPmI+Pj4wKTtiPTB9ZWxzZSB3PUEsYj0wLEE9MDtpZihrPTB8d2woLTEs''@;'; + put 'put ''LTEsMHxEKSxjPj4+MDw9KDI1NSZmKT4+PjB8KE09RG4pPj4+MDxiPj4+MHwoMHxNKT09KDB8Yikmaz4+PjA8QT4+PjApe2Y9YixEPTcyO2JyZWFrfWZvcih3PWI7Oyl7aWYoQT0wfFpvKDB8QSwwfHcsMHxEKSxiPURuLEF8PTI1NSZmLCh3PTB8YVtwZT4+Ml0pPj4+MDwoMHxhW0s+PjJdKT4+''@;'; + put 'put ''PjA/KGFbcGU+PjJdPXcrMSx3PTB8SnRbdz4+MF0pOnc9MHxJbChsKSxjPj4+MDw9KDI1NSYoZj0wfGZlWzE0OTU5Mit3Pj4wXSkpPj4+MHxiPj4+MD5NPj4+MHwoMHxiKT09KDB8TSkmQT4+PjA+az4+PjApe2Y9YixEPTcyO2JyZWFrIHR9dz1ifX1pZihjPj4+MD4odz0yNTUmKGY9MHxmZVsx''@;'; + put 'put ''NDk1OTIrQT4+MF0pKT4+PjApe0E9MCxiPXc7ZG97QT1iKygwfEFyKEEsYykpfDAsKHc9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbSz4+Ml0pPj4+MD8oYVtwZT4+Ml09dysxLHc9MHxKdFt3Pj4wXSk6dz0wfElsKGwpLGI9MjU1JihmPTB8ZmVbMTQ5NTkyK3c+PjBdKX13aGlsZShBPj4+MDwxMTkz''@;'; + put 'put ''MDQ2NDcmYz4+PjA+Yj4+PjApO2I9MH1lbHNlIHc9QSxBPTAsYj0wO2lmKGM+Pj4wPigyNTUmZik+Pj4wKWZvcihEPTB8aXcoLTEsLTEsMHxjLDApLFI9RG4sTT1iOzspe2lmKE0+Pj4wPlI+Pj4wfCgwfE0pPT0oMHxSKSZBPj4+MD5EPj4+MCl7Zj1NLEQ9NzI7YnJlYWsgdH1pZihiPTB8cnco''@;'; + put 'put ''MHxBLDB8TSwwfGMsMCksKGs9RG4pPj4+MD40Mjk0OTY3Mjk1fC0xPT0oMHxrKSZiPj4+MD5+KGYmPTI1NSk+Pj4wKXtmPU0sRD03MjticmVhayB0fWlmKEE9MHx6bCgwfGIsMHxrLDB8ZiwwKSxiPURuLCh3PTB8YVtwZT4+Ml0pPj4+MDwoMHxhW0s+PjJdKT4+PjA/KGFbcGU+PjJdPXcrMSx3''@;'; + put 'put ''PTB8SnRbdz4+MF0pOnc9MHxJbChsKSxjPj4+MDw9KDI1NSYoZj0wfGZlWzE0OTU5Mit3Pj4wXSkpPj4+MCl7Zj1iLEQ9NzI7YnJlYWt9TT1ifWVsc2UgZj1iLEQ9NzJ9fXdoaWxlKDApO2lmKDcyPT0oMHxEKSlpZihjPj4+MD4oMHxKdFsxNDk1OTIrdz4+MF0pPj4+MCl7ZG97KEE9MHxhW3Bl''@;'; + put 'put ''Pj4yXSk+Pj4wPCgwfGFbSz4+Ml0pPj4+MD8oYVtwZT4+Ml09QSsxLEE9MHxKdFtBPj4wXSk6QT0wfElsKGwpfXdoaWxlKGM+Pj4wPigwfEp0WzE0OTU5MitBPj4wXSk+Pj4wKTthWzQ3NjQzXT0zNCx3PTA9PSgxJnB8MCkmITA/RzowLGM9bSxBPXB9ZWxzZSB3PUcsYz1mO2lmKDB8YVtLPj4y''@;'; + put 'put ''XSYmKGFbcGU+PjJdPSgwfGFbcGU+PjJdKS0xKSwhKGM+Pj4wPG0+Pj4wfCgwfGMpPT0oMHxtKSZBPj4+MDxwPj4+MCkpe2lmKCEoMCE9KDEmcHwwKXwhMXwwIT0oMHx3KSkpe2FbNDc2NDNdPTM0LHA9MHx6bCgwfHAsMHxtLC0xLC0xKSxtPURuO2JyZWFrfWlmKGM+Pj4wPm0+Pj4wfCgwfGMp''@;'; + put 'put ''PT0oMHxtKSZBPj4+MD5wPj4+MCl7YVs0NzY0M109MzQ7YnJlYWt9fXA9MHxTcChBXnd8MCxjXihwPSgoMHx3KTwwKTw8MzE+PjMxKXwwLDB8dywwfHApLG09RG59fXdoaWxlKDApO3JldHVybiBEbj1tLDB8cH1mdW5jdGlvbiBJbChsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7cmV0''@;'; + put 'put ''dXJuIDAhPSgwfChtPTB8YVsoZj0xMDQrKGx8PTApfDApPj4yXSkpJiYoMHxhW2wrMTA4Pj4yXSk+PSgwfG0pP0E9NDooMHwoYz0wfHVMKGwpKSk+PTA/KHA9MHxhW2Y+PjJdLGY9bCs4fDAscD8odz0wfGFbZj4+Ml0sZj1wLSgwfGFbbCsxMDg+PjJdKXwwLHA9dyxmPSh3LShtPTB8YVtsKzQ+''@;'; + put 'put ''PjJdKXwwKTwoMHxmKT9wOm0rKGYrLTEpfDApOmY9cD0wfGFbZj4+Ml0sYVtsKzEwMD4+Ml09ZixmPWwrNHwwLHA/YVsodz1sKzEwOHwwKT4+Ml09cCsxLShmPTB8YVtmPj4yXSkrKDB8YVt3Pj4yXSk6Zj0wfGFbZj4+Ml0sKDB8YykhPSgwfEp0WyhmPWYrLTF8MCk+PjBdKSYmKGZlW2Y+PjBd''@;'; + put 'put ''PWMpKTpBPTQsND09KDB8QSkmJihhW2wrMTAwPj4yXT0wLGM9LTEpLDB8Y31mdW5jdGlvbiB1TChsKXt2YXIgYyxmO3JldHVybiBmPWFlLGFlPWFlKzE2fDAsYz1mLGw9MD09KDB8ZiQobHw9MCkpJiYxPT0oMHxtaVs2MyZhW2wrMzI+PjJdXShsLGMsMSkpPzB8SnRbYz4+MF06LTEsYWU9Ziww''@;'; + put 'put ''fGx9ZnVuY3Rpb24gZiQobCl7dmFyIGM9MCxmPTA7cmV0dXJuIGZlWyhjPTc0KyhsfD0wKXwwKT4+MF09MjU1KyhmPTB8ZmVbYz4+MF0pfGYsKDB8YVsoYz1sKzIwfDApPj4yXSk+Pj4wPigwfGFbKGY9bCsyOHwwKT4+Ml0pPj4+MCYmbWlbNjMmYVtsKzM2Pj4yXV0obCwwLDApLGFbbCsxNj4+''@;'; + put 'put ''Ml09MCxhW2Y+PjJdPTAsYVtjPj4yXT0wLDQmKGM9MHxhW2w+PjJdKT8oYVtsPj4yXT0zMnxjLGM9LTEpOihhW2wrOD4+Ml09Zj0oMHxhW2wrNDQ+PjJdKSsoMHxhW2wrNDg+PjJdKXwwLGFbbCs0Pj4yXT1mLGM9Yzw8Mjc+PjMxKSwwfGN9ZnVuY3Rpb24gaCQobCl7cmV0dXJuKChsfD0wKS00''@;'; + put 'put ''OHwwKT4+PjA8MTB8MH1mdW5jdGlvbiBpOShsKXtyZXR1cm4gMSYoKChsfD0wKS00OHwwKT4+PjA8MTB8MCE9KDB8Y0wobCkpKXwwfWZ1bmN0aW9uIGNMKGwpe3JldHVybigoMzJ8KGx8PTApKS05N3wwKT4+PjA8MjZ8MH1mdW5jdGlvbiB5MChsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wO2Y9''@;'; + put 'put ''MHxmZVsobHw9MCk+PjBdO2U6ZG97aWYoZjw8MjQ+PjI0KWZvcihtPTI1NSZmOzspe2lmKCEoKHA9MHxmZVtjPj4wXSk8PDI0Pj4yNCl8fGY8PDI0Pj4yNCE9cDw8MjQ+PjI0JiYoMHwobT0wfENwKG0pKSkhPSgwfENwKDI1NSZwKSkpYnJlYWsgZTtpZihjPWMrMXwwLCEoKGY9MHxmZVsobD1s''@;'; + put 'put ''KzF8MCk+PjBdKTw8MjQ+PjI0KSl7Zj0wO2JyZWFrfW09MjU1JmZ9ZWxzZSBmPTB9d2hpbGUoMCk7cmV0dXJuKG09MHxDcCgyNTUmZikpLSgwfENwKDB8SnRbYz4+MF0pKXwwfWZ1bmN0aW9uIENwKGwpe3JldHVybiAwfCgwPT0oMHxVdWUobHw9MCkpP2w6MzJ8bCl9ZnVuY3Rpb24gVXVlKGwp''@;'; + put 'put ''e3JldHVybigobHw9MCktNjV8MCk+Pj4wPDI2fDB9ZnVuY3Rpb24gbzkobCl7cmV0dXJuIDB8UXVlKGx8PTAsMCl9ZnVuY3Rpb24gUXVlKGwsYyl7bHw9MDt2YXIgdyxiLGY9MCxwPTAsbT0wLEE9MCxrPTA7dz0oKGN8PTApPDwxKS0xfDAsYj1jKy0xfDA7ZTpkb3tpZighKChsKy00MzAwOHww''@;'; + put 'put ''KT4+PjA8MjIyNzJ8KGwrLTExNzc2fDApPj4+MDwzMDc4NHwobCstMTUzNnwwKT4+PjA8MjU2MHwwPT0oMHxkJChsKSkpKXtpZigoZj0wIT0oMHxjKSkmKGwrLTQyNTZ8MCk+Pj4wPDQ2KXtpZigoMHxsKT40MjkzKXN3aXRjaCgwfGwpe2Nhc2UgNDI5NTpjYXNlIDQzMDE6YnJlYWs7ZGVmYXVs''@;'; + put 'put ''dDpicmVhayBlfWw9bCs3MjY0fDA7YnJlYWt9aWYoKGwrLTExNTIwfDApPj4+MDwzOCYoMV5mKSl7bD1sKy03MjY0fDA7YnJlYWt9Zj0wO2Rve2lmKCgocD1sLSgwfGhyWzY2MzQ2KyhmPDwyKT4+MV0pfDApLShiJihBPShtPTB8ZmVbNjYzNDYrKGY8PDIpKzI+PjBdKTw8MjQ+PjI0KSl8MCk+''@;'; + put 'put ''Pj4wPCgwfEp0WzY2MzQ2KyhmPDwyKSszPj4wXSk+Pj4wKXtrPTExO2JyZWFrfWY9ZisxfDB9d2hpbGUoNjEhPSgwfGYpKTtpZigxMT09KDB8aykpe2lmKG08PDI0Pj4yND09MSl7bD1jK2wtKDEmcCl8MDticmVha31sPSgwfEFyKHcsQSkpK2x8MDticmVha31mPTB8cnRbNjU4NTgrKChtPTEt''@;'; + put 'put ''Y3wwKTw8MSk+PjFdO3Q6ZG97aWYoZjw8MTY+PjE2KXtmb3IocD0wOyg2NTUzNSZmfDApIT0oMHxsKTspaWYoISgoZj0wfHJ0WzY1ODU4KygocD1wKzF8MCk8PDIpKyhtPDwxKT4+MV0pPDwxNj4+MTYpKWJyZWFrIHQ7bD0wfGhyWzY1ODU4KyhwPDwyKSsoYzw8MSk+PjFdO2JyZWFrIGV9fXdo''@;'; + put 'put ''aWxlKDApO3JldHVybiAwfCgobCstNjY2MDArKDQwKmN8MCl8MCk+Pj4wPDQwP2wrLTQwKyg4MCpjfDApfDA6bCl9fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gZCQobCl7cmV0dXJuIDB8KChsfD0wKT4+PjA8MTMxMDcyPygwfEp0WzE0OTg1NysoKDB8SnRbMTQ5ODU3KyhsPj4+OCk+''@;'; + put 'put ''PjBdKTw8NXxsPj4+MyYzMSk+PjBdKT4+Pig3JmwpJjE6bD4+PjA8MTk2NjA2JjEpfWZ1bmN0aW9uIG80KGwsYyxmKXtsfD0wLGN8PTA7dmFyIHA9MCxtPTAsQT0wO2lmKGZ8PTApe3A9MHxmZVtsPj4wXTtlOmRve2lmKHA8PDI0Pj4yNClmb3IoQT1sLGw9cCxwJj0yNTU7Oyl7aWYoISgwIT0o''@;'; + put 'put ''MHwoZj1mKy0xfDApKSYobT0wfGZlW2M+PjBdKTw8MjQ+PjI0IT0wKXx8bDw8MjQ+PjI0IT1tPDwyND4+MjQmJigwfChwPTB8Q3AocCkpKSE9KDB8Q3AoMjU1Jm0pKSlicmVhayBlO2lmKGM9YysxfDAsISgocD0wfGZlWyhBPUErMXwwKT4+MF0pPDwyND4+MjQpKXtsPTA7YnJlYWt9bD1wLHAm''@;'; + put 'put ''PTI1NX1lbHNlIGw9MH13aGlsZSgwKTtsPShsPTB8Q3AoMjU1JmwpKS0oMHxDcCgwfEp0W2M+PjBdKSl8MH1lbHNlIGw9MDtyZXR1cm4gMHxsfWZ1bmN0aW9uIEp1ZShsKXtpZigobHw9MCk+Pj4wPj0yNTUpe2lmKCEoKGwrLTU3MzQ0fDApPj4+MDw4MTg1fGw+Pj4wPDgyMzJ8KGwrLTgyMzR8''@;'; + put 'put ''MCk+Pj4wPDQ3MDYyKSlyZXR1cm4gNjU1MzQhPSg2NTUzNCZsfDApJihsKy02NTUzMnwwKT4+PjA8MTA0ODU4MCYxfDA7bD0xfWVsc2UgbD0obCsxJjEyNyk+Pj4wPjMyJjE7cmV0dXJuIDB8bH1mdW5jdGlvbiBEQWUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTA7dmFyIHcsayxtPTAsQT0wLGI9''@;'; + put 'put ''MCxNPTA7az1hZSxhZT1hZSsxNnwwLG09ayxwPTB8YVsodz0wPT0oMHwocHw9MCkpPzE5MDY0MDpwKT4+Ml07ZTpkb3tpZihjKWlmKEE9MD09KDB8bCk/bTpsLGYpe2lmKHApbT1mLGI9MTE7ZWxzZXtpZigocD0wfGZlW2M+PjBdKTw8MjQ+PjI0Pi0xKXthW0E+PjJdPTI1NSZwLHA9cDw8MjQ+''@;'; + put 'put ''PjI0IT0wJjE7YnJlYWt9aWYocD0wfGZlW2M+PjBdLG09MD09KDB8YVthWzE1NzkxXT4+Ml0pKXthW0E+PjJdPXA8PDI0Pj4yNCY1NzM0MyxwPTE7YnJlYWt9aWYoKHA9KDI1NSZwKS0xOTR8MCk+Pj4wPjUwKXtiPTE3O2JyZWFrfXA9MHxhWzYyMzg0KyhwPDwyKT4+Ml0sKG09ZistMXwwKSYm''@;'; + put 'put ''KGM9YysxfDAsYj0xMSl9dDpkb3tpZigxMT09KDB8Yikpe2lmKCgoTT0oMjU1JihsPTB8ZmVbYz4+MF0pKT4+PjMpLTE2fE0rKHA+PjI2KSk+Pj4wPjcpe2I9MTc7YnJlYWsgZX1mb3IoO2M9YysxfDAsbT1tKy0xfDAsISgoMHwocD0oMjU1JmwpLTEyOHxwPDw2KSk+PTApOyl7aWYoIW0pYnJl''@;'; + put 'put ''YWsgdDtpZigoLTY0JihsPTB8ZmVbYz4+MF0pKTw8MjQ+PjI0IT0tMTI4KXtiPTE3O2JyZWFrIGV9fWFbdz4+Ml09MCxhW0E+PjJdPXAscD1mLW18MDticmVhayBlfX13aGlsZSgwKTthW3c+PjJdPXAscD0tMn1lbHNlIHA9LTI7ZWxzZSBwP2I9MTc6cD0wfXdoaWxlKDApO3JldHVybiAxNz09''@;'; + put 'put ''KDB8YikmJihhW3c+PjJdPTAsYVs0NzY0M109ODQscD0tMSksYWU9aywwfHB9ZnVuY3Rpb24gWHVlKGwsYyl7cmV0dXJuIDB8KGw9KGx8PTApPzB8ZnVuY3Rpb24gS3VlKGwsYyxmKXtsfD0wLGN8PTA7ZG97aWYobCl7aWYoYz4+PjA8MTI4KXtmZVtsPj4wXT1jLGw9MTticmVha31pZighKDB8''@;'; + put 'put ''YVthWzE1NzkxXT4+Ml0pKXtpZig1NzIxNj09KC0xMjgmY3wwKSl7ZmVbbD4+MF09YyxsPTE7YnJlYWt9YVs0NzY0M109ODQsbD0tMTticmVha31pZihjPj4+MDwyMDQ4KXtmZVtsPj4wXT1jPj4+NnwxOTIsZmVbbCsxPj4wXT02MyZjfDEyOCxsPTI7YnJlYWt9aWYoYz4+PjA8NTUyOTZ8NTcz''@;'; + put 'put ''NDQ9PSgtODE5MiZjfDApKXtmZVtsPj4wXT1jPj4+MTJ8MjI0LGZlW2wrMT4+MF09Yz4+PjYmNjN8MTI4LGZlW2wrMj4+MF09NjMmY3wxMjgsbD0zO2JyZWFrfWlmKChjKy02NTUzNnwwKT4+PjA8MTA0ODU3Nil7ZmVbbD4+MF09Yz4+PjE4fDI0MCxmZVtsKzE+PjBdPWM+Pj4xMiY2M3wxMjgs''@;'; + put 'put ''ZmVbbCsyPj4wXT1jPj4+NiY2M3wxMjgsZmVbbCszPj4wXT02MyZjfDEyOCxsPTQ7YnJlYWt9YVs0NzY0M109ODQsbD0tMTticmVha31sPTF9d2hpbGUoMCk7cmV0dXJuIDB8bH0obCxjfD0wKTowKX1mdW5jdGlvbiBpZChsLGMpe3JldHVybiBmdW5jdGlvbiB0Y2UobCxjKXtsfD0wO3ZhciBm''@;'; + put 'put ''PTAscD0wO2Y9Y3w9MDtlOmRve2lmKDMmKGZebCkpcD04O2Vsc2V7aWYoMyZmKWRve2lmKGZlW2w+PjBdPWY9MHxmZVtjPj4wXSwhKGY8PDI0Pj4yNCkpYnJlYWsgZTtjPWMrMXwwLGw9bCsxfDB9d2hpbGUoMCE9KDMmY3wwKSk7aWYoISgoLTIxMzkwNjIxNDQmKGY9MHxhW2M+PjJdKV4tMjEz''@;'; + put 'put ''OTA2MjE0NCkmZistMTY4NDMwMDkpKWZvcihwPWw7Yz1jKzR8MCxsPXArNHwwLGFbcD4+Ml09ZiwhKCgtMjEzOTA2MjE0NCYoZj0wfGFbYz4+Ml0pXi0yMTM5MDYyMTQ0KSZmKy0xNjg0MzAwOXwwKTspcD1sO3A9OH19d2hpbGUoMCk7aWYoOD09KDB8cCkmJihmZVtsPj4wXT1wPTB8ZmVbYz4+''@;'; + put 'put ''MF0scDw8MjQ+PjI0KSlkb3tmZVsobD1sKzF8MCk+PjBdPXA9MHxmZVsoYz1jKzF8MCk+PjBdfXdoaWxlKHA8PDI0Pj4yNCE9MCl9KGx8PTAsY3w9MCksMHxsfWZ1bmN0aW9uIHAkKGwpe3JldHVybiAwfCgobHw9MCk/MCE9KDB8ZnVuY3Rpb24gcmNlKGwsYyl7bHw9MDt2YXIgZj0wO2lmKGN8''@;'; + put 'put ''PTApe2Zvcig7ISgwPT0oMHwoZj0wfGFbbD4+Ml0pKXwoMHxmKT09KDB8YykpOylsPWwrNHwwO2w9MHxmP2w6MH1lbHNlIGw9bCsoKDB8ZnVuY3Rpb24gSUFlKGwpe3ZhciBjPTA7Zm9yKGM9bHw9MDswfGFbYz4+Ml07KWM9Yys0fDA7cmV0dXJuIGMtbD4+MnwwfShsKSk8PDIpfDA7cmV0dXJu''@;'; + put 'put ''IDB8bH0oNjM1MDAsbCkpJjE6MCl9ZnVuY3Rpb24gdTgobCxjKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxOmw9MHx3cyhsKTticmVhaztjYXNlIDI6bD0wfGQkKGwpO2JyZWFrO2Nhc2UgMzpsPTB8ZnVuY3Rpb24gaWNlKGwpe3JldHVybiAwfGZ1bmN0aW9uIG5jZShsKXtyZXR1cm4g''@;'; + put 'put ''MSYoMzI9PSgwfChsfD0wKSl8OT09KDB8bCkpfDB9KGx8PTApfShsKTticmVhaztjYXNlIDQ6bD0wfGZ1bmN0aW9uIG9jZShsKXtyZXR1cm4gMSYoKChsfD0wKS02NTUyOXwwKT4+PjA8M3w4MjMyPT0oLTImbHwwKXxsPj4+MDwzMnwobCstMTI3fDApPj4+MDwzMyl8MH0obCk7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSA1Omw9MHxoJChsKTticmVhaztjYXNlIDY6bD0wfGZ1bmN0aW9uIGFjZShsKXtyZXR1cm4gMHwoMHxwJChsfD0wKT8wOjAhPSgwfEp1ZShsKSkmMSl9KGwpO2JyZWFrO2Nhc2UgNzpsPTB8dmoobCk7YnJlYWs7Y2FzZSA4Omw9MHxKdWUobCk7YnJlYWs7Y2FzZSA5Omw9MHxmdW5jdGlvbiB4''@;'; + put 'put ''QWUobCl7cmV0dXJuIDB8KChsfD0wKT4+PjA8MTMxMDcyPygwfEp0WzE0NjQyMysoKDB8SnRbMTQ2NDIzKyhsPj4+OCk+PjBdKTw8NXxsPj4+MyYzMSk+PjBdKT4+Pig3JmwpJjE6MCl9KGwpO2JyZWFrO2Nhc2UgMTA6bD0wfHAkKGwpO2JyZWFrO2Nhc2UgMTE6bD0wfEFqKGwpO2JyZWFrO2Nh''@;'; + put 'put ''c2UgMTI6bD0wfGZ1bmN0aW9uIGxjZShsKXtyZXR1cm4gMSYoKChsfD0wKS00OHwwKT4+PjA8MTB8KCgzMnxsKS05N3wwKT4+PjA8Nil8MH0obCk7YnJlYWs7ZGVmYXVsdDpsPTB9cmV0dXJuIDB8bH1mdW5jdGlvbiB3cyhsKXtyZXR1cm4gMHwoMHxoJChsfD0wKT8xOjAhPSgwfGQkKGwpKSYx''@;'; + put 'put ''KX1mdW5jdGlvbiB2aihsKXtyZXR1cm4oMHxvOShsfD0wKSkhPSgwfGwpfDB9ZnVuY3Rpb24gQWoobCl7cmV0dXJuKDB8QWcobHw9MCkpIT0oMHxsKXwwfWZ1bmN0aW9uIEFnKGwpe3JldHVybiAwfFF1ZShsfD0wLDEpfWZ1bmN0aW9uIGZMKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7''@;'; + put 'put ''dmFyIGIsRCxtPTAsQT0wLHc9MCxrPTAsTT0wO0Q9YWUsYWU9YWUrMTI4fDAsbT1EKzEyNHwwLHc9NjM1ODgsYj0oQT1NPUQpKzEyNHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8YikpO3JldHVybihjKy0xfDApPj4+MD4yMTQ3NDgzNjQ2P2M/''@;'; + put 'put ''KGFbNDc2NDNdPTc1LGM9LTEpOihsPW0sYz0xLGs9NCk6az00LDQ9PSgwfGspJiYoYVtNKzQ4Pj4yXT1rPWM+Pj4wPihrPS0yLWx8MCk+Pj4wP2s6YyxhWyhtPU0rMjB8MCk+PjJdPWwsYVtNKzQ0Pj4yXT1sLGM9bCtrfDAsYVsobD1NKzE2fDApPj4yXT1jLGFbTSsyOD4+Ml09YyxjPTB8aEwo''@;'; + put 'put ''TSxmLHApLGsmJihmZVsoTT0wfGFbbT4+Ml0pKygoKDB8TSk9PSgwfGFbbD4+Ml0pKTw8MzE+PjMxKT4+MF09MCkpLGFlPUQsMHxjfWZ1bmN0aW9uIGhMKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgRCxHLEsscGUsZ2UscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MDtnZT1hZSxh''@;'; + put 'put ''ZT1hZSsyMjR8MCxEPWdlKzEyMHwwLEs9Z2UscGU9Z2UrMTM2fDAsbT00MCsocD1HPWdlKzgwfDApfDA7ZG97YVtwPj4yXT0wLHA9cCs0fDB9d2hpbGUoKDB8cCk8KDB8bSkpO3JldHVybiBhW0Q+PjJdPWFbZj4+Ml0sKDB8eWooMCxjLEQsSyxHKSk8MD9mPS0xOihSPSgwfGFbbCs3Nj4+Ml0p''@;'; + put 'put ''Pi0xPzB8UmYoKTowLE09MzImKGY9MHxhW2w+PjJdKSwoMHxmZVtsKzc0Pj4wXSk8MSYmKGFbbD4+Ml09LTMzJmYpLDB8YVsocD1sKzQ4fDApPj4yXT9mPTB8eWoobCxjLEQsSyxHKTooQT0wfGFbKG09bCs0NHwwKT4+Ml0sYVttPj4yXT1wZSxhWyh3PWwrMjh8MCk+PjJdPXBlLGFbKGI9bCsy''@;'; + put 'put ''MHwwKT4+Ml09cGUsYVtwPj4yXT04MCxhWyhrPWwrMTZ8MCk+PjJdPXBlKzgwLGY9MHx5aihsLGMsRCxLLEcpLEEmJihtaVs2MyZhW2wrMzY+PjJdXShsLDAsMCksZj0wPT0oMHxhW2I+PjJdKT8tMTpmLGFbbT4+Ml09QSxhW3A+PjJdPTAsYVtrPj4yXT0wLGFbdz4+Ml09MCxhW2I+PjJdPTAp''@;'; + put 'put ''KSxhW2w+PjJdPShwPTB8YVtsPj4yXSl8TSwwfFImJmUzKCksZj0wPT0oMzImcHwwKT9mOi0xKSxhZT1nZSwwfGZ9ZnVuY3Rpb24geWoobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBMZSxSZSxIZSxxZSxudCxXZSxvdCxTdCxrdCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxS''@;'; + put 'put ''PTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLFZlPTA7a3Q9YWUsYWU9YWUrNjR8MCxXZT1rdCxWZT1rdCsyNHwwLG90PWt0Kzh8MCxTdD1rdCsyMHwwLGFbKG50PWt0KzE2fDApPj4yXT1jfD0wLExlPTAhPSgwfGwpLEhlPVJlPVZlKzQwfDAsVmU9VmUrMzl8MCxxZT1vdCs0fDAsdz0w''@;'; + put 'put ''LEE9MCxEPTA7ZTpmb3IoOzspe2Rve2lmKCgwfEEpPi0xKXtpZigoMHx3KT4oMjE0NzQ4MzY0Ny1BfDApKXthWzQ3NjQzXT03NSxBPS0xO2JyZWFrfUE9dytBfDA7YnJlYWt9fXdoaWxlKDApO2lmKCEoKHc9MHxmZVtjPj4wXSk8PDI0Pj4yNCkpe09lPTg2O2JyZWFrfWI9Yzt0OmZvcig7Oyl7''@;'; + put 'put ''c3dpdGNoKHc8PDI0Pj4yNCl7Y2FzZSAzNzp3PWIsT2U9OTticmVhayB0O2Nhc2UgMDp3PWI7YnJlYWsgdH1hW250Pj4yXT1iZT1iKzF8MCx3PTB8ZmVbYmU+PjBdLGI9YmV9dDpkb3tpZig5PT0oMHxPZSkpZm9yKDs7KXtpZihPZT0wLDM3IT0oMHxmZVtiKzE+PjBdKSlicmVhayB0O2lmKHc9''@;'; + put 'put ''dysxfDAsYVtudD4+Ml09Yj1iKzJ8MCwzNyE9KDB8ZmVbYj4+MF0pKWJyZWFrO09lPTl9fXdoaWxlKDApO2lmKHc9dy1jfDAsTGUmJlZ1KGwsYyx3KSwwfHcpYz1iO2Vsc2V7aWYoKHc9KDB8ZmVbKGs9YisxfDApPj4wXSktNDh8MCk+Pj4wPDEwPyhwZT0oYmU9MzY9PSgwfGZlW2IrMj4+MF0p''@;'; + put 'put ''KT93Oi0xLEQ9YmU/MTpELGs9YmU/YiszfDA6ayk6cGU9LTEsYVtudD4+Ml09aywoYmU9KCh3PTB8ZmVbaz4+MF0pPDwyND4+MjQpLTMyfDApPj4+MD4zMXwwPT0oMTw8YmUmNzU5MTN8MCkpYj0wO2Vsc2V7Yj0wO2Rve2J8PTE8PCh3PDwyND4+MjQpLTMyLGFbbnQ+PjJdPWs9aysxfDAsYmU9''@;'; + put 'put ''KCh3PTB8ZmVbaz4+MF0pPDwyND4+MjQpLTMyfDB9d2hpbGUoIShiZT4+PjA+MzF8MD09KDE8PGJlJjc1OTEzfDApKSl9aWYodzw8MjQ+PjI0PT00Mil7aWYoKHc9KDB8ZmVbKE09aysxfDApPj4wXSktNDh8MCk+Pj4wPDEwJiYzNj09KDB8ZmVbaysyPj4wXSkpYVttKyh3PDwyKT4+Ml09MTAs''@;'; + put 'put ''dz0wfGFbcCsoKDB8ZmVbTT4+MF0pLTQ4PDwzKT4+Ml0sRD0xLGs9ayszfDA7ZWxzZXtpZigwfEQpe0E9LTE7YnJlYWt9TGU/KHc9MHxhWyhEPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPUQrNCxEPTAsaz1NKToodz0wLEQ9MCxrPU0pfWFbbnQ+PjJdPWssdz0oZ2U9KDB8dyk8MCk/''@;'; + put 'put ''MC13fDA6dyxnZT1nZT84MTkyfGI6Yn1lbHNle2lmKCgwfCh3PTB8ZyQobnQpKSk8MCl7QT0tMTticmVha31nZT1iLGs9MHxhW250Pj4yXX1kb3tpZig0Nj09KDB8ZmVbaz4+MF0pKXtpZig0MiE9KDB8ZmVbaysxPj4wXSkpe2FbbnQ+PjJdPWsrMSxiPTB8ZyQobnQpLGs9MHxhW250Pj4yXTti''@;'; + put 'put ''cmVha31pZigoYj0oMHxmZVsoTT1rKzJ8MCk+PjBdKS00OHwwKT4+PjA8MTAmJjM2PT0oMHxmZVtrKzM+PjBdKSl7YVttKyhiPDwyKT4+Ml09MTAsYj0wfGFbcCsoKDB8ZmVbTT4+MF0pLTQ4PDwzKT4+Ml0sYVtudD4+Ml09az1rKzR8MDticmVha31pZigwfEQpe0E9LTE7YnJlYWsgZX1MZT8o''@;'; + put 'put ''Yj0wfGFbKGJlPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPWJlKzQpOmI9MCxhW250Pj4yXT1NLGs9TX1lbHNlIGI9LTF9d2hpbGUoMCk7Zm9yKEs9MDs7KXtpZigoKDB8ZmVbaz4+MF0pLTY1fDApPj4+MD41Nyl7QT0tMTticmVhayBlfWlmKGFbbnQ+PjJdPWJlPWsrMXwwLCEoKChS''@;'; + put 'put ''PTI1NSYoTT0wfGZlWygwfGZlW2s+PjBdKS02NSsoMTUyOTQ0Kyg1OCpLfDApKT4+MF0pKS0xfDApPj4+MDw4KSlicmVhaztLPVIsaz1iZX1pZighKE08PDI0Pj4yNCkpe0E9LTE7YnJlYWt9Rz0oMHxwZSk+LTE7ZG97aWYoTTw8MjQ+PjI0PT0xOSl7aWYoRyl7QT0tMTticmVhayBlfU9lPTQ4''@;'; + put 'put ''fWVsc2V7aWYoRyl7YVttKyhwZTw8Mik+PjJdPVIscGU9MHxhWzQrKEc9cCsocGU8PDMpfDApPj4yXSxhWyhPZT1XZSk+PjJdPWFbRz4+Ml0sYVtPZSs0Pj4yXT1wZSxPZT00ODticmVha31pZighTGUpe0E9MDticmVhayBlfW0kKFdlLFIsZil9fXdoaWxlKDApO2lmKDQ4IT0oMHxPZSl8fChP''@;'; + put 'put ''ZT0wLExlKSl7az0wIT0oMHxLKSYzPT0oMTUmKGs9MHxmZVtrPj4wXSl8MCk/LTMzJms6ayxwZT0tNjU1MzcmZ2UsZ2U9MD09KDgxOTImZ2V8MCk/Z2U6cGU7dDpkb3tzd2l0Y2goMHxrKXtjYXNlIDExMDpzd2l0Y2goKDI1NSZLKTw8MjQ+PjI0KXtjYXNlIDA6Y2FzZSAxOmNhc2UgNjphW2Fb''@;'; + put 'put ''V2U+PjJdPj4yXT1BLHc9MCxjPWJlO2NvbnRpbnVlIGU7Y2FzZSAyOmNhc2UgNzphWyh3PTB8YVtXZT4+Ml0pPj4yXT1BLGFbdys0Pj4yXT0oKDB8QSk8MCk8PDMxPj4zMSx3PTAsYz1iZTtjb250aW51ZSBlO2Nhc2UgMzpydFthW1dlPj4yXT4+MV09QSx3PTAsYz1iZTtjb250aW51ZSBlO2Nh''@;'; + put 'put ''c2UgNDpmZVthW1dlPj4yXT4+MF09QSx3PTAsYz1iZTtjb250aW51ZSBlO2RlZmF1bHQ6dz0wLGM9YmU7Y29udGludWUgZX1jYXNlIDExMjprPTEyMCxiPWI+Pj4wPjg/Yjo4LGM9OHxnZSxPZT02MDticmVhaztjYXNlIDg4OmNhc2UgMTIwOmM9Z2UsT2U9NjA7YnJlYWs7Y2FzZSAxMTE6TT0w''@;'; + put 'put ''LFI9MTUzNDA4LGI9MD09KDgmZ2V8MCl8KDB8Yik+KDB8KEs9SGUtKEc9MHxjY2UoYz0wfGFbKGs9V2UpPj4yXSxrPTB8YVtrKzQ+PjJdLFJlKSl8MCkpP2I6SysxfDAsSz1nZSxPZT02NjticmVhaztjYXNlIDEwNTpjYXNlIDEwMDppZihjPTB8YVsoaz1XZSk+PjJdLCgwfChrPTB8YVtrKzQ+''@;'; + put 'put ''PjJdKSk8MCl7Yz0wfFNwKDAsMCwwfGMsMHxrKSxrPURuLGFbKE09V2UpPj4yXT1jLGFbTSs0Pj4yXT1rLE09MSxSPTE1MzQwOCxPZT02NTticmVhayB0fU09MCE9KDIwNDkmZ2V8MCkmMSxSPTA9PSgyMDQ4JmdlfDApPzA9PSgxJmdlfDApPzE1MzQwODoxNTM0MTA6MTUzNDA5LE9lPTY1O2Jy''@;'; + put 'put ''ZWFrIHQ7Y2FzZSAxMTc6TT0wLFI9MTUzNDA4LGM9MHxhWyhrPVdlKT4+Ml0saz0wfGFbays0Pj4yXSxPZT02NTticmVhaztjYXNlIDk5OmZlW1ZlPj4wXT1hW1dlPj4yXSxjPVZlLE09MCxSPTE1MzQwOCxHPVJlLGs9MSxiPXBlO2JyZWFrO2Nhc2UgMTA5Oms9MHxYaygwfGFbNDc2NDNdKSxP''@;'; + put 'put ''ZT03MDticmVhaztjYXNlIDExNTprPTB8KGs9MHxhW1dlPj4yXSk/azoxNTM0MTgsT2U9NzA7YnJlYWs7Y2FzZSA2NzphW290Pj4yXT1hW1dlPj4yXSxhW3FlPj4yXT0wLGFbV2U+PjJdPW90LEc9LTEsaz1vdCxPZT03NDticmVhaztjYXNlIDgzOmM9MHxhW1dlPj4yXSxiPyhHPWIsaz1jLE9l''@;'; + put 'put ''PTc0KTooY2MobCwzMix3LDAsZ2UpLGM9MCxPZT04Myk7YnJlYWs7Y2FzZSA2NTpjYXNlIDcxOmNhc2UgNzA6Y2FzZSA2OTpjYXNlIDk3OmNhc2UgMTAzOmNhc2UgMTAyOmNhc2UgMTAxOnc9MHxmY2UobCwrX1tXZT4+M10sdyxiLGdlLGspLGM9YmU7Y29udGludWUgZTtkZWZhdWx0Ok09MCxS''@;'; + put 'put ''PTE1MzQwOCxHPVJlLGs9YixiPWdlfX13aGlsZSgwKTt0OmRve2lmKDYwPT0oMHxPZSkpZ2U9V2UscGU9MHxhW2dlPj4yXSxnZT0wfGFbZ2UrND4+Ml0sRz0wfHVjZShwZSxnZSxSZSwzMiZrKSxSPTA9PSg4JmN8MCl8MD09KDB8cGUpJjA9PSgwfGdlKSxNPVI/MDoyLFI9Uj8xNTM0MDg6MTUz''@;'; + put 'put ''NDA4KyhrPj40KXwwLEs9YyxjPXBlLGs9Z2UsT2U9NjY7ZWxzZSBpZig2NT09KDB8T2UpKUc9MHwkeShjLGssUmUpLEs9Z2UsT2U9NjY7ZWxzZSBpZig3MD09KDB8T2UpKU9lPTAsZ2U9MHwkayhrLDAsYiksSz0wPT0oMHxnZSksYz1rLE09MCxSPTE1MzQwOCxHPUs/aytifDA6Z2Usaz1LP2I6''@;'; + put 'put ''Z2Uta3wwLGI9cGU7ZWxzZSBpZig3ND09KDB8T2UpKXtmb3IoT2U9MCxSPWssYz0wLGI9MDsoTT0wfGFbUj4+Ml0pJiYhKCgwfChiPTB8WHVlKFN0LE0pKSk8MHxiPj4+MD4oRy1jfDApPj4+MCkmJkc+Pj4wPihjPWIrY3wwKT4+PjA7KVI9Uis0fDA7aWYoKDB8Yik8MCl7QT0tMTticmVhayBl''@;'; + put 'put ''fWlmKGNjKGwsMzIsdyxjLGdlKSxjKWZvcihNPTA7Oyl7aWYoIShiPTB8YVtrPj4yXSkpe09lPTgzO2JyZWFrIHR9aWYoKDB8KE09KGI9MHxYdWUoU3QsYikpK018MCkpPigwfGMpKXtPZT04MzticmVhayB0fWlmKFZ1KGwsU3QsYiksTT4+PjA+PWM+Pj4wKXtPZT04MzticmVha31rPWsrNHww''@;'; + put 'put ''fWVsc2UgYz0wLE9lPTgzfX13aGlsZSgwKTtpZig2Nj09KDB8T2UpKU9lPTAsZ2U9MCE9KDB8Yil8KGs9MCE9KDB8Yyl8MCE9KDB8aykpLGs9SGUtRysoMSYoMV5rKSl8MCxjPWdlP0c6UmUsRz1SZSxrPWdlPygwfGIpPigwfGspP2I6azpiLGI9KDB8Yik+LTE/LTY1NTM3Jks6SztlbHNlIGlm''@;'; + put 'put ''KDgzPT0oMHxPZSkpe09lPTAsY2MobCwzMix3LGMsODE5Ml5nZSksdz0oMHx3KT4oMHxjKT93OmMsYz1iZTtjb250aW51ZX1jYyhsLDMyLHc9KDB8dyk8KDB8KGdlPShLPSgwfGspPCgwfChwZT1HLWN8MCkpP3BlOmspK018MCkpP2dlOncsZ2UsYiksVnUobCxSLE0pLGNjKGwsNDgsdyxnZSw2''@;'; + put 'put ''NTUzNl5iKSxjYyhsLDQ4LEsscGUsMCksVnUobCxjLHBlKSxjYyhsLDMyLHcsZ2UsODE5Ml5iKSxjPWJlfWVsc2Ugdz0wLGM9YmV9fWU6ZG97aWYoODY9PSgwfE9lKSYmIWwpaWYoRCl7Zm9yKEE9MTtjPTB8YVttKyhBPDwyKT4+Ml07KXtpZihtJChwKyhBPDwzKXwwLGMsZiksYz1BKzF8MCwh''@;'; + put 'put ''KCgwfEEpPDkpKXtBPWM7YnJlYWt9QT1jfWlmKCgwfEEpPDEwKWZvcig7Oyl7aWYoMHxhW20rKEE8PDIpPj4yXSl7QT0tMTticmVhayBlfWlmKCEoKDB8QSk8OSkpe0E9MTticmVha31BPUErMXwwfWVsc2UgQT0xfWVsc2UgQT0wfXdoaWxlKDApO3JldHVybiBhZT1rdCwwfEF9ZnVuY3Rpb24g''@;'; + put 'put ''UmYobCl7cmV0dXJuIDB9ZnVuY3Rpb24gZTMobCl7fWZ1bmN0aW9uIFZ1KGwsYyxmKXszMiZhWyhsfD0wKT4+Ml18fHdqKGN8PTAsZnw9MCxsKX1mdW5jdGlvbiBnJChsKXt2YXIgYz0wLGY9MCxwPTA7aWYoKHA9KDB8ZmVbKGY9MHxhWyhsfD0wKT4+Ml0pPj4wXSktNDh8MCk+Pj4wPDEwKXtj''@;'; + put 'put ''PTA7ZG97Yz1wKygxMCpjfDApfDAsYVtsPj4yXT1mPWYrMXwwLHA9KDB8ZmVbZj4+MF0pLTQ4fDB9d2hpbGUocD4+PjA8MTApfWVsc2UgYz0wO3JldHVybiAwfGN9ZnVuY3Rpb24gbSQobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MDtlOmRve2lmKGM+Pj4wPD0yMClzd2l0''@;'; + put 'put ''Y2goMHxjKXtjYXNlIDk6Yz0wfGFbKHA9MysoMHxhW2Y+PjJdKSYtNCk+PjJdLGFbZj4+Ml09cCs0LGFbbD4+Ml09YzticmVhayBlO2Nhc2UgMTA6Yz0wfGFbKHA9MysoMHxhW2Y+PjJdKSYtNCk+PjJdLGFbZj4+Ml09cCs0LGFbKHA9bCk+PjJdPWMsYVtwKzQ+PjJdPSgoMHxjKTwwKTw8MzE+''@;'; + put 'put ''PjMxO2JyZWFrIGU7Y2FzZSAxMTpjPTB8YVsocD0zKygwfGFbZj4+Ml0pJi00KT4+Ml0sYVtmPj4yXT1wKzQsYVsocD1sKT4+Ml09YyxhW3ArND4+Ml09MDticmVhayBlO2Nhc2UgMTI6bT0wfGFbKGM9cD03KygwfGFbZj4+Ml0pJi04KT4+Ml0sYz0wfGFbYys0Pj4yXSxhW2Y+PjJdPXArOCxh''@;'; + put 'put ''WyhwPWwpPj4yXT1tLGFbcCs0Pj4yXT1jO2JyZWFrIGU7Y2FzZSAxMzpwPTB8YVsobT0zKygwfGFbZj4+Ml0pJi00KT4+Ml0sYVtmPj4yXT1tKzQsYVsobT1sKT4+Ml09cD0oNjU1MzUmcCk8PDE2Pj4xNixhW20rND4+Ml09KCgwfHApPDApPDwzMT4+MzE7YnJlYWsgZTtjYXNlIDE0OnA9MHxh''@;'; + put 'put ''WyhtPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPW0rNCxhWyhtPWwpPj4yXT02NTUzNSZwLGFbbSs0Pj4yXT0wO2JyZWFrIGU7Y2FzZSAxNTpwPTB8YVsobT0zKygwfGFbZj4+Ml0pJi00KT4+Ml0sYVtmPj4yXT1tKzQsYVsobT1sKT4+Ml09cD0oMjU1JnApPDwyND4+MjQsYVttKzQ+''@;'; + put 'put ''PjJdPSgoMHxwKTwwKTw8MzE+PjMxO2JyZWFrIGU7Y2FzZSAxNjpwPTB8YVsobT0zKygwfGFbZj4+Ml0pJi00KT4+Ml0sYVtmPj4yXT1tKzQsYVsobT1sKT4+Ml09MjU1JnAsYVttKzQ+PjJdPTA7YnJlYWsgZTtjYXNlIDE3OmNhc2UgMTg6QT0rX1sobT03KygwfGFbZj4+Ml0pJi04KT4+M10s''@;'; + put 'put ''YVtmPj4yXT1tKzgsX1tsPj4zXT1BO2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX13aGlsZSgwKX1mdW5jdGlvbiB1Y2UobCxjLGYscCl7aWYoZnw9MCxwfD0wLCEoMD09KDB8KGx8PTApKSYwPT0oMHwoY3w9MCkpKSlkb3tmZVsoZj1mKy0xfDApPj4wXT0wfEp0WzE1MzQ1NisoMTUmbCk+PjBd''@;'; + put 'put ''fHAsbD0wfHdsKDB8bCwwfGMsNCksYz1Ebn13aGlsZSghKDA9PSgwfGwpJjA9PSgwfGMpKSk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBjY2UobCxjLGYpe2lmKGZ8PTAsISgwPT0oMHwobHw9MCkpJjA9PSgwfChjfD0wKSkpKWRve2ZlWyhmPWYrLTF8MCk+PjBdPTcmbHw0OCxsPTB8d2woMHxsLDB8''@;'; + put 'put ''YywzKSxjPURufXdoaWxlKCEoMD09KDB8bCkmMD09KDB8YykpKTtyZXR1cm4gMHxmfWZ1bmN0aW9uICR5KGwsYyxmKXtmfD0wO3ZhciBwPTA7aWYoKGN8PTApPj4+MD4wfDA9PSgwfGMpJihsfD0wKT4+PjA+NDI5NDk2NzI5NSl7Zm9yKDtwPTB8blMoMHxsLDB8YywxMCwwKSxmZVsoZj1mKy0x''@;'; + put 'put ''fDApPj4wXT0yNTUmcHw0OCxwPWwsbD0wfGl3KDB8bCwwfGMsMTAsMCksYz4+PjA+OXw5PT0oMHxjKSZwPj4+MD40Mjk0OTY3Mjk1OyljPURuO2M9bH1lbHNlIGM9bDtpZihjKWZvcig7ZmVbKGY9ZistMXwwKT4+MF09NDh8KGM+Pj4wKSUxMCwhKGM+Pj4wPDEwKTspYz0oYz4+PjApLzEwfDA7''@;'; + put 'put ''cmV0dXJuIDB8Zn1mdW5jdGlvbiBjYyhsLGMsZixwLG0pe3ZhciBBLHc7aWYobHw9MCxjfD0wLHc9YWUsYWU9YWUrMjU2fDAsQT13LCgwfChmfD0wKSk+KDB8KHB8PTApKSYwPT0oNzM3MjgmKG18PTApfDApKXtpZih1MigwfEEsMHxjLDB8KChtPWYtcHwwKT4+PjA8MjU2P206MjU2KSksbT4+''@;'; + put 'put ''PjA+MjU1KXtjPWYtcHwwO2Rve1Z1KGwsQSwyNTYpLG09bSstMjU2fDB9d2hpbGUobT4+PjA+MjU1KTttPTI1NSZjfVZ1KGwsQSxtKX1hZT13fWZ1bmN0aW9uIGZjZShsLGMsZixwLG0sQSl7bHw9MCxjPStjLGZ8PTAscHw9MCxtfD0wLEF8PTA7dmFyIGx0LHc9MCxiPTAsaz0wLE09MCxEPTAs''@;'; + put 'put ''Uj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsU3Q9MCxrdD0wO2x0PWFlLGFlPWFlKzU2MHwwLGs9bHQrOHwwLFN0PWt0PWx0KzUyNHwwLE09bHQrNTEyfDAsYVsoYmU9bHQpPj4yXT0wLG90PU0rMTJ8MCx2JChj''@;'; + put 'put ''KSwoMHxEbik8MD8oYz0tYyxudD0xLHFlPTE1MzQyNSk6KG50PTAhPSgyMDQ5Jm18MCkmMSxxZT0wPT0oMjA0OCZtfDApPzA9PSgxJm18MCk/MTUzNDI2OjE1MzQzMToxNTM0MjgpLHYkKGMpO2Rve2lmKCEwJjIxNDY0MzUwNzI9PSgyMTQ2NDM1MDcyJkRufDApKWt0PTAhPSgzMiZBfDApLGNj''@;'; + put 'put ''KGwsMzIsZix3PW50KzN8MCwtNjU1MzcmbSksVnUobCxxZSxudCksVnUobCxjIT1jfCExP2t0PzE1MzU5MzoxNTM0NTI6a3Q/MTUzNDQ0OjE1MzQ0OCwzKSxjYyhsLDMyLGYsdyw4MTkyXm0pO2Vsc2V7aWYoKHc9MCE9KEs9MiorRUFlKGMsYmUpKSkmJihhW2JlPj4yXT0oMHxhW2JlPj4yXSkt''@;'; + put 'put ''MSksOTc9PSgwfChMZT0zMnxBKSkpe3BlPTA9PSgwfChSPTMyJkEpKT9xZTpxZSs5fDAsRz0yfG50LHc9MTItcHwwO2Rve2lmKCEocD4+PjA+MTF8MD09KDB8dykpKXtjPTg7ZG97dz13Ky0xfDAsYyo9MTZ9d2hpbGUoMCE9KDB8dykpO2lmKDQ1PT0oMHxmZVtwZT4+MF0pKXtjPS0oYysoLUst''@;'; + put 'put ''YykpO2JyZWFrfWM9SytjLWM7YnJlYWt9Yz1LfXdoaWxlKDApOygwfCh3PTB8JHkodz0oMHwoYj0wfGFbYmU+PjJdKSk8MD8wLWJ8MDpiLCgoMHx3KTwwKTw8MzE+PjMxLG90KSkpPT0oMHxvdCkmJihmZVsodz1NKzExfDApPj4wXT00OCksZmVbdystMT4+MF09NDMrKGI+PjMxJjIpLGZlWyhE''@;'; + put 'put ''PXcrLTJ8MCk+PjBdPUErMTUsaz0oMHxwKTwxLE09MD09KDgmbXwwKSx3PWt0O2Rve2I9dysxfDAsZmVbdz4+MF09UnxKdFsxNTM0NTYrKFdlPX5+Yyk+PjBdLGM9MTYqKGMtKygwfFdlKSksMSE9KGItU3R8MCl8fE0mayYwPT1jP3c9YjooZmVbYj4+MF09NDYsdz13KzJ8MCl9d2hpbGUoMCE9''@;'; + put 'put ''Yyk7MCE9KDB8cCkmJigtMi1TdCt3fDApPCgwfHApPyhiPXctU3R8MCx3PXArMnwwKTpiPXc9dy1TdHwwLGNjKGwsMzIsZixTdD0ob3Q9b3QtRHwwKStHK3d8MCxtKSxWdShsLHBlLEcpLGNjKGwsNDgsZixTdCw2NTUzNl5tKSxWdShsLGt0LGIpLGNjKGwsNDgsdy1ifDAsMCwwKSxWdShsLEQs''@;'; + put 'put ''b3QpLGNjKGwsMzIsZixTdCw4MTkyXm0pLHc9U3Q7YnJlYWt9Yj0oMHxwKTwwPzY6cCx3PyhhW2JlPj4yXT13PSgwfGFbYmU+PjJdKS0yOHwwLGM9MjY4NDM1NDU2KkspOihjPUssdz0wfGFbYmU+PjJdKSxrPVdlPSgwfHcpPDA/azprKzI4OHwwO2Rve2Fbaz4+Ml09SGU9fn5jPj4+MCxrPWsr''@;'; + put 'put ''NHwwLGM9MWU5KihjLSsoSGU+Pj4wKSl9d2hpbGUoMCE9Yyk7aWYoKDB8dyk+MClmb3IoTT1XZSxSPWs7Oyl7aWYoRD0oMHx3KTwyOT93OjI5LCh3PVIrLTR8MCk+Pj4wPj1NPj4+MCl7az0wO2Rve09lPTB8blMoMHwoUmU9MHx6bCgwfChSZT0wfFpvKDB8YVt3Pj4yXSwwLDB8RCkpLDB8RG4s''@;'; + put 'put ''MHxrLDApKSwwfChIZT1EbiksMWU5LDApLGFbdz4+Ml09T2Usaz0wfGl3KDB8UmUsMHxIZSwxZTksMCksdz13Ky00fDB9d2hpbGUodz4+PjA+PU0+Pj4wKTtrJiYoYVsoTT1NKy00fDApPj4yXT1rKX1mb3Ioaz1SOyEoaz4+PjA8PU0+Pj4wfHwwfGFbKHc9aystNHwwKT4+Ml0pOylrPXc7aWYo''@;'; + put 'put ''YVtiZT4+Ml09dz0oMHxhW2JlPj4yXSktRHwwLCEoKDB8dyk+MCkpYnJlYWs7Uj1rfWVsc2UgTT1XZTtpZigoMHx3KTwwKXtwPTErKChiKzI1fDApLzl8MCl8MCxnZT0xMDI9PSgwfExlKTtkb3tpZihwZT0oMHwocGU9MC13fDApKTw5P3BlOjksTT4+PjA8az4+PjApe0Q9KDE8PHBlKS0xfDAs''@;'; + put 'put ''Uj0xZTk+Pj5wZSxHPTAsdz1NO2Rve2Fbdz4+Ml09KChIZT0wfGFbdz4+Ml0pPj4+cGUpK0csRz0wfEFyKEhlJkQsUiksdz13KzR8MH13aGlsZSh3Pj4+MDxrPj4+MCk7dz0wPT0oMHxhW00+PjJdKT9NKzR8MDpNLEc/KGFbaz4+Ml09RyxNPXcsdz1rKzR8MCk6KE09dyx3PWspfWVsc2UgTT0w''@;'; + put 'put ''PT0oMHxhW00+PjJdKT9NKzR8MDpNLHc9aztrPSh3LShrPWdlP1dlOk0pPj4yfDApPigwfHApP2srKHA8PDIpfDA6dyxhW2JlPj4yXT13PSgwfGFbYmU+PjJdKStwZXwwfXdoaWxlKCgwfHcpPDApO3c9TSxwPWt9ZWxzZSB3PU0scD1rO2lmKEhlPVdlLHc+Pj4wPHA+Pj4wKXtpZihrPTkqKEhl''@;'; + put 'put ''LXc+PjIpfDAsKEQ9MHxhW3c+PjJdKT4+PjA+PTEwKXtNPTEwO2Rve009MTAqTXwwLGs9aysxfDB9d2hpbGUoRD4+PjA+PU0+Pj4wKX19ZWxzZSBrPTA7aWYoKDB8KE09Yi0oMTAyIT0oMHxMZSk/azowKSsoKChPZT0wIT0oMHxiKSkmKGdlPTEwMz09KDB8TGUpKSk8PDMxPj4zMSl8MCkpPCgo''@;'; + put 'put ''OSoocC1IZT4+Mil8MCktOXwwKSl7aWYocGU9V2UrNCsoKCgwfChNPU0rOTIxNnwwKSkvOXwwKS0xMDI0PDwyKXwwLCgwfChNPSgwfE0pJTl8MCkpPDgpZm9yKEQ9MTA7RD0xMCpEfDAsKDB8TSk8NzspTT1NKzF8MDtlbHNlIEQ9MTA7aWYoKE09KHBlKzR8MCk9PSgwfHApKSYwPT0oMHwoRz0o''@;'; + put 'put ''KFI9MHxhW3BlPj4yXSk+Pj4wKSUoRD4+PjApfDApKSlNPXBlO2Vsc2UgaWYoSz0wPT0oMSYoKFI+Pj4wKS8oRD4+PjApfDApfDApPzkwMDcxOTkyNTQ3NDA5OTI6OTAwNzE5OTI1NDc0MDk5NCxjPUc+Pj4wPChSZT0oMHxEKS8yfDApPj4+MD8uNTpNJigwfEcpPT0oMHxSZSk/MToxLjUsbnQm''@;'; + put 'put ''JihjPShSZT00NT09KDB8ZmVbcWU+PjBdKSk/LWM6YyxLPVJlPy1LOkspLGFbcGU+PjJdPU09Ui1HfDAsSytjIT1LKXtpZihhW3BlPj4yXT1SZT1NK0R8MCxSZT4+PjA+OTk5OTk5OTk5KWZvcihrPXBlO009aystNHwwLGFbaz4+Ml09MCxNPj4+MDx3Pj4+MCYmKGFbKHc9dystNHwwKT4+Ml09''@;'; + put 'put ''MCksYVtNPj4yXT1SZT0xKygwfGFbTT4+Ml0pfDAsUmU+Pj4wPjk5OTk5OTk5OTspaz1NO2Vsc2UgTT1wZTtpZihrPTkqKEhlLXc+PjIpfDAsKFI9MHxhW3c+PjJdKT4+PjA+PTEwKXtEPTEwO2Rve0Q9MTAqRHwwLGs9aysxfDB9d2hpbGUoUj4+PjA+PUQ+Pj4wKX19ZWxzZSBNPXBlO009cD4+''@;'; + put 'put ''PjA+KE09TSs0fDApPj4+MD9NOnAsUmU9d31lbHNlIE09cCxSZT13O2ZvcihMZT1NOzspe2lmKExlPj4+MDw9UmU+Pj4wKXtiZT0wO2JyZWFrfWlmKDB8YVsodz1MZSstNHwwKT4+Ml0pe2JlPTE7YnJlYWt9TGU9d31wPTAta3wwO2Rve2lmKGdlKXtpZigoMHwodz1iKygxJigxXk9lKSl8MCkp''@;'; + put 'put ''PigwfGspJigwfGspPi01PyhEPUErLTF8MCxiPXcrLTEta3wwKTooRD1BKy0yfDAsYj13Ky0xfDApLCEodz04Jm0pKXtpZihiZSYmMCE9KDB8KFZlPTB8YVtMZSstND4+Ml0pKSlpZigoVmU+Pj4wKSUxMHwwKU09MDtlbHNle009MCx3PTEwO2Rve3c9MTAqd3wwLE09TSsxfDB9d2hpbGUoISgw''@;'; + put 'put ''fChWZT4+PjApJSh3Pj4+MCkpKX1lbHNlIE09OTtpZih3PSg5KihMZS1IZT4+Mil8MCktOXwwLDEwMj09KDMyfEQpKXtiPSgwfGIpPCgwfChwZT0oMHwocGU9dy1NfDApKT4wP3BlOjApKT9iOnBlLHBlPTA7YnJlYWt9Yj0oMHxiKTwoMHwocGU9KDB8KHBlPXcray1NfDApKT4wP3BlOjApKT9i''@;'; + put 'put ''OnBlLHBlPTA7YnJlYWt9cGU9d31lbHNlIEQ9QSxwZT04Jm19d2hpbGUoMCk7aWYoUj0wIT0oMHwoZ2U9YnxwZSkpJjEsRz0xMDI9PSgzMnxEKSlPZT0wLHc9KDB8ayk+MD9rOjA7ZWxzZXtpZigoKE09b3QpLSh3PTB8JHkodz0oMHxrKTwwP3A6aywoKDB8dyk8MCk8PDMxPj4zMSxvdCkpfDAp''@;'; + put 'put ''PDIpZG97ZmVbKHc9dystMXwwKT4+MF09NDh9d2hpbGUoKE0td3wwKTwyKTtmZVt3Ky0xPj4wXT00Mysoaz4+MzEmMiksZmVbKHc9dystMnwwKT4+MF09RCxPZT13LHc9TS13fDB9aWYoY2MobCwzMixmLHc9bnQrMStiK1Ird3wwLG0pLFZ1KGwscWUsbnQpLGNjKGwsNDgsZix3LDY1NTM2Xm0p''@;'; + put 'put ''LEcpe1I9cGU9a3QrOXwwLEc9a3QrOHwwLE09RD1SZT4+PjA+V2U+Pj4wP1dlOlJlO2Rve2lmKGs9MHwkeSgwfGFbTT4+Ml0sMCxwZSksKDB8TSk9PSgwfEQpKSgwfGspPT0oMHxwZSkmJihmZVtHPj4wXT00OCxrPUcpO2Vsc2UgaWYoaz4+PjA+a3Q+Pj4wKXt1MigwfGt0LDQ4LGstU3R8MCk7''@;'; + put 'put ''ZG97az1rKy0xfDB9d2hpbGUoaz4+PjA+a3Q+Pj4wKX1WdShsLGssUi1rfDApLE09TSs0fDB9d2hpbGUoTT4+PjA8PVdlPj4+MCk7aWYoMHxnZSYmVnUobCwxNTM0NzIsMSksTT4+PjA8TGU+Pj4wJigwfGIpPjApZm9yKDs7KXtpZigoaz0wfCR5KDB8YVtNPj4yXSwwLHBlKSk+Pj4wPmt0Pj4+''@;'; + put 'put ''MCl7dTIoMHxrdCw0OCxrLVN0fDApO2Rve2s9aystMXwwfXdoaWxlKGs+Pj4wPmt0Pj4+MCl9aWYoVnUobCxrLCgwfGIpPDk/Yjo5KSxrPWIrLTl8MCwhKChNPU0rNHwwKT4+PjA8TGU+Pj4wJigwfGIpPjkpKXtiPWs7YnJlYWt9Yj1rfWNjKGwsNDgsYis5fDAsOSwwKX1lbHNle2lmKGdlPWJl''@;'; + put 'put ''P0xlOlJlKzR8MCwoMHxiKT4tMSl7cGU9MD09KDB8cGUpLHA9YmU9a3QrOXwwLFI9MC1TdHwwLEc9a3QrOHwwLEQ9UmU7ZG97KDB8KGs9MHwkeSgwfGFbRD4+Ml0sMCxiZSkpKT09KDB8YmUpJiYoZmVbRz4+MF09NDgsaz1HKTtkb3tpZigoMHxEKT09KDB8UmUpKXtpZihNPWsrMXwwLFZ1KGws''@;'; + put 'put ''aywxKSxwZSYoMHxiKTwxKXtrPU07YnJlYWt9VnUobCwxNTM0NzIsMSksaz1NfWVsc2V7aWYoaz4+PjA8PWt0Pj4+MClicmVhazt1MigwfGt0LDQ4LGsrUnwwKTtkb3trPWsrLTF8MH13aGlsZShrPj4+MD5rdD4+PjApfX13aGlsZSgwKTtWdShsLGssKDB8Yik+KDB8KFN0PXAta3wwKSk/U3Q6''@;'; + put 'put ''YiksYj1iLVN0fDAsRD1EKzR8MH13aGlsZShEPj4+MDxnZT4+PjAmKDB8Yik+LTEpfWNjKGwsNDgsYisxOHwwLDE4LDApLFZ1KGwsT2Usb3QtT2V8MCl9Y2MobCwzMixmLHcsODE5Ml5tKX19d2hpbGUoMCk7cmV0dXJuIGFlPWx0LDB8KCgwfHcpPCgwfGYpP2Y6dyl9ZnVuY3Rpb24gdiQobCl7''@;'; + put 'put ''cmV0dXJuIF9bU2k+PjNdPWw9K2wsRG49MHxhW1NpKzQ+PjJdLDB8YVtTaT4+Ml19ZnVuY3Rpb24gd2oobCxjLGYpe2x8PTAsY3w9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MDsobT0wfGFbKHA9MTYrKGZ8PTApfDApPj4yXSk/QT01OjB8QSQoZik/cD0wOihtPTB8YVtwPj4yXSxBPTUpO2U6''@;'; + put 'put ''ZG97aWYoNT09KDB8QSkpe2lmKHA9dz0wfGFbKGI9ZisyMHwwKT4+Ml0sKG0td3wwKT4+PjA8Yz4+PjApe3A9MHxtaVs2MyZhW2YrMzY+PjJdXShmLGwsYyk7YnJlYWt9dDpkb3tpZigoMHxmZVtmKzc1Pj4wXSk+LTEpe2Zvcih3PWM7Oyl7aWYoIXcpe0E9MCxtPWw7YnJlYWsgdH1pZigxMD09''@;'; + put 'put ''KDB8ZmVbbCsobT13Ky0xfDApPj4wXSkpYnJlYWs7dz1tfWlmKChwPTB8bWlbNjMmYVtmKzM2Pj4yXV0oZixsLHcpKT4+PjA8dz4+PjApYnJlYWsgZTtBPXcsbT1sK3d8MCxjPWMtd3wwLHA9MHxhW2I+PjJdfWVsc2UgQT0wLG09bH13aGlsZSgwKTtnbygwfHAsMHxtLDB8YyksYVtiPj4yXT0o''@;'; + put 'put ''MHxhW2I+PjJdKStjLHA9QStjfDB9fXdoaWxlKDApO3JldHVybiAwfHB9ZnVuY3Rpb24gQSQobCl7dmFyIGM9MCxmPTA7cmV0dXJuIGZlWyhjPTc0KyhsfD0wKXwwKT4+MF09MjU1KyhmPTB8ZmVbYz4+MF0pfGYsOCYoYz0wfGFbbD4+Ml0pPyhhW2w+PjJdPTMyfGMsbD0tMSk6KGFbbCs4Pj4y''@;'; + put 'put ''XT0wLGFbbCs0Pj4yXT0wLGFbbCsyOD4+Ml09Zj0wfGFbbCs0ND4+Ml0sYVtsKzIwPj4yXT1mLGFbbCsxNj4+Ml09ZisoMHxhW2wrNDg+PjJdKSxsPTApLDB8bH1mdW5jdGlvbiBkY2UobCl7dmFyIHAsYz0wLGY9MCxtPTA7Zm9yKHA9MHxmZVsobHw9MCk+PjBdLGM9MSxmPTE1MzQ3NCxtPTk3''@;'; + put 'put ''O3A8PDI0Pj4yNCE9bTw8MjQ+PjI0fHwwIT0oMHxqaShsLGYpKTspe2lmKCEoKG09MHxmZVsoZj1mKzZ8MCk+PjBdKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrfWM9YysxfDB9cmV0dXJuIDB8Y31mdW5jdGlvbiBhOShsKXtyZXR1cm4gMHwoMD09KDB8ZnVuY3Rpb24gc2NlKGwpe3JldHVybigobHw9''@;'; + put 'put ''MCktOTd8MCk+Pj4wPDI2fDB9KGx8PTApKT9sOjk1JmwpfWZ1bmN0aW9uIGJqKGwsYyl7bHw9MCxjfD0wO3ZhciBtLEEsZj0wLHA9MDtBPWFlLGFlPWFlKzE2fDAsbT1BO2Rve2lmKGw+Pj4wPjYpYz0wO2Vsc2V7aWYoJHAoMTkwNjU2KSw2IT0oMHxsKSl7Yz0wfHkkKGwsYykscjYoMTkwNjU2''@;'; + put 'put ''KTticmVha31pZihjKXtmPTE1MzU0NyxwPShsPW0pKzE2fDA7ZG97ZmVbbD4+MF09MHxmZVtmPj4wXSxsPWwrMXwwLGY9ZisxfDB9d2hpbGUoKDB8bCk8KDB8cCkpO3A9MDtkb3soMHwoZj0obD0wfGxMKGMsNTkpKS1jfDApKTwxNiYmKGdvKDB8bSwwfGMsMHxmKSxmZVttK2Y+PjBdPTAsYz0w''@;'; + put 'put ''PT0oMHxmZVtsPj4wXSk/YzpsKzF8MCkseSQocCxtKSxwPXArMXwwfXdoaWxlKDYhPSgwfHApKTtjPTE5NzEzMixsPTB9ZWxzZSBjPTE5NzEzMixsPTA7Zm9yKDtnbygwfGMsMHwocD0wfChwPTB8YVsxOTA2MTYrKGw8PDIpPj4yXSk/cCs4fDA6MTUzNTYzKSwwfChmPTB8VW8ocCkpKSxmZVso''@;'; + put 'put ''cD1jK2Z8MCk+PjBdPTU5LDYhPSgwfChsPWwrMXwwKSk7KWM9YysoZisxKXwwO2ZlW3A+PjBdPTAscjYoMTkwNjU2KSxjPTE5NzEzMn19d2hpbGUoMCk7cmV0dXJuIGFlPUEsMHxjfWZ1bmN0aW9uIHkkKGwsYyl7cmV0dXJuIGx8PTAsKGN8PTApPyhjPTB8ZnVuY3Rpb24gZWNlKGwsYyl7bHw9''@;'; + put 'put ''MCxjfD0wO3ZhciBELEcsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxSPTA7Rz1hZSxhZT1hZSsyNzJ8MCxEPUcrOHwwLFI9Rztkb3tpZighKDB8ZmVbYz4+MF0pKXtpZigwfChjPTB8RHUoMTUyODMzKSkmJjB8ZmVbYz4+MF18fDB8KGM9MHxEdSgxNTI4NDArKDEyKmx8MCl8MCkp''@;'; + put 'put ''JiYwfGZlW2M+PjBdfHwwfChjPTB8RHUoMTUyOTEyKSkmJjB8ZmVbYz4+MF0pYnJlYWs7Yz0xNTI5MTd9fXdoaWxlKDApO2Y9MDtlOmRve3N3aXRjaCgwfGZlW2MrZj4+MF0pe2Nhc2UgNDc6Y2FzZSAwOmJyZWFrIGV9Zj1mKzF8MH13aGlsZShmPj4+MDwxNSk7KHA9MHxmZVtjPj4wXSk8PDI0''@;'; + put 'put ''Pj4yNCE9NDYmJjA9PSgwfGZlW2MrZj4+MF0pP3A8PDI0Pj4yND09Njc/TT0xNTooaz1jLE09MTYpOihjPTE1MjkxNyxNPTE1KSwxNT09KDB8TSkmJigwfGZlW2MrMT4+MF0/KGs9YyxNPTE2KTpNPTE4KTtlOmRve2lmKDE2PT0oMHxNKSlpZigwIT0oMHxqaShrLDE1MjkxNykpJiYwIT0oMHxq''@;'; + put 'put ''aShrLDE1MjkyNSkpKXtpZigwfChjPTB8YVs0NzY2MV0pKWRve2lmKCEoMHxqaShrLGMrOHwwKSkpYnJlYWsgZTtjPTB8YVtjKzI0Pj4yXX13aGlsZSgwIT0oMHxjKSk7JHAoMTkwNjQ4KSxjPTB8YVs0NzY2MV07dDpkb3tpZigwfGMpe2Zvcig7MHxqaShrLGMrOHwwKTspaWYoIShjPTB8YVtj''@;'; + put 'put ''KzI0Pj4yXSkpYnJlYWsgdDtyNigxOTA2NDgpO2JyZWFrIGV9fXdoaWxlKDApO3Q6ZG97aWYoMD09KDB8YVs0NzY0Nl0pJiYwIT0oMHwobT0wfER1KDE1MjkzMSkpKSYmMCE9KDB8ZmVbbT4+MF0pKXtmb3Iodz0yNTQtZnwwLGI9ZisxfDAscD1tOzspe2lmKChtPShBPTB8bEwocCw1OCkpLXAr''@;'; + put 'put ''KCgoYz0wfGZlW0E+PjBdKTw8MjQ+PjI0IT0wKTw8MzE+PjMxKXwwKT4+PjA8dz4+PjApe2lmKGdvKDB8RCwwfHAsMHxtKSxmZVsocD1EK218MCk+PjBdPTQ3LGdvKHArMXwwLDB8aywwfGYpLGZlW0QrKGIrbSk+PjBdPTAsMHwocD0wfE84KDB8RCwwfFIpKSlicmVhaztjPTB8ZmVbQT4+MF19''@;'; + put 'put ''aWYoISgwfGZlWyhwPUErKGM8PDI0Pj4yNCE9MCYxKXwwKT4+MF0pKXtNPTQxO2JyZWFrIHR9fWlmKGM9MHxCMCgyOCkpe2FbYz4+Ml09cCxhW2MrND4+Ml09YVtSPj4yXSxnbygwfChSPWMrOHwwKSwwfGssMHxmKSxmZVtSK2Y+PjBdPTAsYVtjKzI0Pj4yXT1hWzQ3NjYxXSxhWzQ3NjYxXT1j''@;'; + put 'put ''O2JyZWFrfXQkKHAsMHxhW1I+PjJdKSxNPTQxO2JyZWFrfU09NDF9d2hpbGUoMCk7NDE9PSgwfE0pJiYoYz0wfEIwKDI4KSkmJihhW2M+PjJdPWFbMTU1ODRdLGFbYys0Pj4yXT1hWzE1NTg1XSxnbygwfChSPWMrOHwwKSwwfGssMHxmKSxmZVtSK2Y+PjBdPTAsYVtjKzI0Pj4yXT1hWzQ3NjYx''@;'; + put 'put ''XSxhWzQ3NjYxXT1jKSxyNigxOTA2NDgpLGM9MD09KDB8bCkmMD09KDB8Yyk/NjIzMzY6Y31lbHNlIGM9ayxNPTE4fXdoaWxlKDApO2Rve2lmKDE4PT0oMHxNKSl7aWYoMD09KDB8bCkmJjQ2PT0oMHxmZVtjKzE+PjBdKSl7Yz02MjMzNjticmVha31jPTB9fXdoaWxlKDApO3JldHVybiBhZT1H''@;'; + put 'put ''LDB8Y30obCxjKSxhWzE5MDYxNisobDw8Mik+PjJdPWMsbD1jKTpsPTB8YVsxOTA2MTYrKGw8PDIpPj4yXSwwfCgwfGw/bCs4fDA6MTUzNTYzKX1mdW5jdGlvbiB0MyhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTA7ZTpkb3tpZihmKXtmb3IoOyhwPTB8ZmVbbD4+MF0pPDwyND4+''@;'; + put 'put ''MjQ9PShtPTB8ZmVbYz4+MF0pPDwyND4+MjQ7KXtpZighKGY9ZistMXwwKSl7bD0wO2JyZWFrIGV9bD1sKzF8MCxjPWMrMXwwfWw9KDI1NSZwKS0oMjU1Jm0pfDB9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiB5ZyhsLGMsZil7bHw9MDt2YXIgcD0wLG09MCxBPTAsdz0w''@;'; + put 'put ''LGI9MCxrPTAsRD0wLFI9MCxHPTA7aWYoZnw9MCwwLHA9KGN8PTApKy0xfDAsKDB8Yyk8MilmZVsoRD1mKzc0fDApPj4wXT0yNTUrKGs9MHxmZVtEPj4wXSl8ayxwP2w9MDpmZVtsPj4wXT0wO2Vsc2V7ZTpkb3tpZihwKXtmb3IoYj1mKzR8MCxrPWYrOHwwLGM9bDs7KXtpZihnbygwfGMsMHwo''@;'; + put 'put ''bT0wfGFbYj4+Ml0pLDB8KEE9KEE9KHc9MD09KDB8KEE9MHwkayhtLDEwLEc9KDB8YVtrPj4yXSktKFI9bSl8MCkpKSk/RzoxLVIrQXwwKT4+PjA8cD4+PjA/QTpwKSksYVtiPj4yXT1tPSgwfGFbYj4+Ml0pK0F8MCxjPWMrQXwwLCEodyYwIT0oMHwoQT1wLUF8MCkpKSl7RD0xNzticmVhayBl''@;'; + put 'put ''fWlmKG0+Pj4wPj0oMHxhW2s+PjJdKT4+PjApe2lmKCgwfChwPTB8dUwoZikpKTwwKWJyZWFrO3c9cH1lbHNlIGFbYj4+Ml09bSsxLHc9MHxKdFttPj4wXTtpZihwPUErLTF8MCxtPWMrMXwwLGZlW2M+PjBdPXcsISgwIT0oMHxwKSYxMCE9KDI1NSZ3fDApKSl7Yz1tLEQ9MTc7YnJlYWsgZX1j''@;'; + put 'put ''PW19KDB8YykhPSgwfGwpJiYwIT0oMTYmYVtmPj4yXXwwKT9EPTE3Omw9MH1lbHNlIGM9bCxEPTE3fXdoaWxlKDApOzE3PT0oMHxEKSYmKGw/ZmVbYz4+MF09MDpsPTApfXJldHVybiAwfGx9ZnVuY3Rpb24gcWsobCxjKXt2YXIgZjtsfD0wLGY9MHxmZVsoY3w9MCk+PjBdO2Rve2lmKGY8PDI0''@;'; + put 'put ''Pj4yNClpZihsPTB8JHMobCxmPDwyND4+MjQpKXtpZigwfGZlW2MrMT4+MF0paWYoMHxmZVtsKzE+PjBdKXtpZighKDB8ZmVbYysyPj4wXSkpe2w9MHxtY2UobCxjKTticmVha31pZigwfGZlW2wrMj4+MF0pe2lmKCEoMHxmZVtjKzM+PjBdKSl7bD0wfHZjZShsLGMpO2JyZWFrfWlmKDB8ZmVb''@;'; + put 'put ''bCszPj4wXSl7aWYoMHxmZVtjKzQ+PjBdKXtsPTB8eWNlKGwsYyk7YnJlYWt9bD0wfEFjZShsLGMpO2JyZWFrfWw9MH1lbHNlIGw9MH1lbHNlIGw9MH1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIG1jZShsLGMpe3ZhciBtLGY9MCxwPTA7Zm9yKG09KDB8SnRbKGN8PTAp''@;'; + put 'put ''Pj4wXSk8PDh8MHxKdFtjKzE+PjBdLHA9MHxKdFsobHw9MCk+PjBdOyhmPTB8ZmVbKGM9bCsxfDApPj4wXSk8PDI0Pj4yNCYmKDB8KHA9cDw8OCY2NTI4MHwyNTUmZikpIT0oMHxtKTspbD1jO3JldHVybiAwfChmPDwyND4+MjQ/bDowKX1mdW5jdGlvbiB2Y2UobCxjKXt2YXIgcCxmPTA7aWYo''@;'; + put 'put ''cD0oMHxKdFsxKyhjfD0wKT4+MF0pPDwxNnwoMHxKdFtjPj4wXSk8PDI0fCgwfEp0W2MrMj4+MF0pPDw4LCEoKDB8KGw9KDB8SnRbMSsobHw9MCk+PjBdKTw8MTZ8KDB8SnRbbD4+MF0pPDwyNHwoMjU1JihjPTB8ZmVbKGY9bCsyfDApPj4wXSkpPDw4KSk9PSgwfHApfGM8PDI0Pj4yND09MCkp''@;'; + put 'put ''ZG97bD0obHwyNTUmKGM9MHxmZVsoZj1mKzF8MCk+PjBdKSk8PDh9d2hpbGUoISgoMHxsKT09KDB8cCl8Yzw8MjQ+PjI0PT0wKSk7cmV0dXJuIDB8KGM8PDI0Pj4yND9mKy0yfDA6MCl9ZnVuY3Rpb24gQWNlKGwsYyl7dmFyIHAsZj0wO2lmKHA9KDB8SnRbMSsoY3w9MCk+PjBdKTw8MTZ8KDB8''@;'; + put 'put ''SnRbYz4+MF0pPDwyNHwoMHxKdFtjKzI+PjBdKTw8OHwwfEp0W2MrMz4+MF0sISgoZj0wfGZlWyhjPTMrKGx8PTApfDApPj4wXSk8PDI0Pj4yND09MHwoMHwobD0oMHxKdFtsKzE+PjBdKTw8MTZ8KDB8SnRbbD4+MF0pPDwyNHwoMHxKdFtsKzI+PjBdKTw8OHwyNTUmZikpPT0oMHxwKSkpZG97''@;'; + put 'put ''bD1sPDw4fDI1NSYoZj0wfGZlWyhjPWMrMXwwKT4+MF0pfXdoaWxlKCEoZjw8MjQ+PjI0PT0wfCgwfGwpPT0oMHxwKSkpO3JldHVybiAwfChmPDwyND4+MjQ/YystM3wwOjApfWZ1bmN0aW9uIHljZShsLGMpe2x8PTAsY3w9MDt2YXIgYmUsT2UsTGUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAs''@;'; + put 'put ''az0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wO0xlPWFlLGFlPWFlKzEwNTZ8MCxPZT1MZSxhWyhiZT1MZSsxMDI0fDApPj4yXT0wLGFbYmUrND4+Ml09MCxhW2JlKzg+PjJdPTAsYVtiZSsxMj4+Ml09MCxhW2JlKzE2Pj4yXT0wLGFbYmUrMjA+PjJdPTAsYVtiZSsyND4+Ml09MCxh''@;'; + put 'put ''W2JlKzI4Pj4yXT0wLGY9MHxmZVtjPj4wXTtlOmRve2lmKGY8PDI0Pj4yNCl7Z2U9MDtkb3tpZighKDB8ZmVbbCtnZT4+MF0pKXtmPTA7YnJlYWsgZX1hWyhwZT1iZSsoKCgyNTUmZik+Pj41JjI1NSk8PDIpfDApPj4yXT1hW3BlPj4yXXwxPDwoMzEmZiksYVtPZSsoKDI1NSZmKTw8Mik+PjJd''@;'; + put 'put ''PWdlPWdlKzF8MCxmPTB8ZmVbYytnZT4+MF19d2hpbGUoZjw8MjQ+PjI0IT0wKTtpZihNPWdlPj4+MD4xKXtwPTAsaz0tMSxtPTE7dDpmb3IoOzspe2ZvcihBPTEsZj1wOzspe3A9bTtuOmZvcig7Oyl7Zm9yKGI9MTs7KXtpZigobT0wfGZlW2MrKGIrayk+PjBdKTw8MjQ+PjI0IT0odz0wfGZl''@;'; + put 'put ''W2MrcD4+MF0pPDwyND4+MjQpYnJlYWsgbjtpZigoMHxiKT09KDB8QSkpYnJlYWs7aWYoKHA9KGI9YisxfDApK2Z8MCk+Pj4wPj1nZT4+PjApe0Q9QSxmPWs7YnJlYWsgdH19aWYoKHA9MSsoZj1BK2Z8MCl8MCk+Pj4wPj1nZT4+PjApe0Q9QSxmPWs7YnJlYWsgdH19aWYoQT1wLWt8MCwoMjU1''@;'; + put 'put ''Jm0pPD0oMjU1JncpKWJyZWFrO2lmKChtPXArMXwwKT4+PjA+PWdlPj4+MCl7RD1BLGY9azticmVhayB0fWY9cH1pZigobT1mKzJ8MCk+Pj4wPj1nZT4+PjApe0Q9MTticmVha31wPWYrMXwwLGs9Zn1pZihNKWZvcihBPTAsTT0tMSx3PTE7Oyl7Zm9yKHA9MSxtPUE7Oyl7QT13O3Q6Zm9yKDs7''@;'; + put 'put ''KXtmb3Ioaz0xOzspe2lmKCh3PTB8ZmVbYysoaytNKT4+MF0pPDwyND4+MjQhPShiPTB8ZmVbYytBPj4wXSk8PDI0Pj4yNClicmVhayB0O2lmKCgwfGspPT0oMHxwKSlicmVhaztpZigoQT0oaz1rKzF8MCkrbXwwKT4+PjA+PWdlPj4+MCl7dz1ELG09TSxBPTI2O2JyZWFrIGV9fWlmKChBPTEr''@;'; + put 'put ''KG09cCttfDApfDApPj4+MD49Z2U+Pj4wKXt3PUQsbT1NLEE9MjY7YnJlYWsgZX19aWYocD1BLU18MCwoMjU1JncpPj0oMjU1JmIpKWJyZWFrO2lmKCh3PUErMXwwKT4+PjA+PWdlPj4+MCl7dz1ELG09TSxBPTI2O2JyZWFrIGV9bT1BfWlmKCh3PW0rMnwwKT4+PjA+PWdlPj4+MCl7dz1ELHA9''@;'; + put 'put ''MSxBPTI2O2JyZWFrfUE9bSsxfDAsTT1tfWVsc2Ugdz1ELHA9MSxtPS0xLEE9MjZ9ZWxzZSB3PTEsZj0tMSxwPTEsbT0tMSxBPTI2fWVsc2Ugdz0xLGY9LTEsZ2U9MCxwPTEsbT0tMSxBPTI2fXdoaWxlKDApO2U6ZG97aWYoMjY9PSgwfEEpKWZvcihLPShtKzF8MCk+Pj4wPihmKzF8MCk+Pj4w''@;'; + put 'put ''LHA9Sz9wOncsSz1LP206ZixwZT1LKzF8MCwwfHQzKGMsYytwfDAscGUpPyhwPWdlLUstMXwwLEc9MCxwPShLPj4+MD5wPj4+MD9LOnApKzF8MCk6Rz1nZS1wfDAsaz02M3xnZSxNPWdlKy0xfDAsRD0wIT0oMHxHKSxSPWdlLXB8MCxmPWwsYj0wLG09bDs7KXtBPWY7ZG97aWYoKG0tQXwwKT4+''@;'; + put 'put ''PjA8Z2U+Pj4wKXtpZih3PTB8JGsobSwwLGspKXtpZigody1BfDApPj4+MDxnZT4+PjApe2Y9MDticmVhayBlfWJyZWFrfXc9bStrfDA7YnJlYWt9dz1tfXdoaWxlKDApO209MHxmZVtmK00+PjBdO3Q6ZG97aWYoMTw8KDMxJm0pJmFbYmUrKCgoMjU1Jm0pPj4+NSYyNTUpPDwyKT4+Ml0pe2lm''@;'; + put 'put ''KDB8KG09Z2UtKDB8YVtPZSsoKDI1NSZtKTw8Mik+PjJdKXwwKSl7QT0wLG09RCYwIT0oMHxiKSZtPj4+MDxwPj4+MD9SOm07YnJlYWt9QT0wfGZlW2MrKG09cGU+Pj4wPmI+Pj4wP3BlOmIpPj4wXTtuOmRve2lmKEE8PDI0Pj4yNCl7Zm9yKDtBPDwyND4+MjQ9PSgwfGZlW2YrbT4+MF0pOylp''@;'; + put 'put ''ZighKChBPTB8ZmVbYysobT1tKzF8MCk+PjBdKTw8MjQ+PjI0KSl7bT1wZTticmVhayBufUE9MCxtPW0tS3wwO2JyZWFrIHR9bT1wZX13aGlsZSgwKTtmb3IoOzspe2lmKG0+Pj4wPD1iPj4+MClicmVhayBlO2lmKCgwfGZlW2MrKG09bSstMXwwKT4+MF0pIT0oMHxmZVtmK20+PjBdKSl7QT1H''@;'; + put 'put ''LG09cDticmVha319fWVsc2UgQT0wLG09Z2V9d2hpbGUoMCk7Zj1mK218MCxiPUEsbT13fX13aGlsZSgwKTtyZXR1cm4gYWU9TGUsMHxmfWZ1bmN0aW9uIHF5KGwsYyxmKXtyZXR1cm4gZnVuY3Rpb24gd2NlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wO209Y3w9MDtlOmRve2lm''@;'; + put 'put ''KDMmKG1ebCkpQT0xMTtlbHNle2lmKChwPTAhPSgwfGYpKSYwIT0oMyZtfDApKWRve2lmKGZlW2w+PjBdPW09MHxmZVtjPj4wXSwhKG08PDI0Pj4yNCkpYnJlYWsgZTtjPWMrMXwwLGw9bCsxfDAscD0wIT0oMHwoZj1mKy0xfDApKX13aGlsZShwJjAhPSgzJmN8MCkpO2lmKHApe2lmKDB8ZmVb''@;'; + put 'put ''Yz4+MF0pe3Q6ZG97aWYoZj4+PjA+Mylmb3IocD1jOzspe2lmKCgtMjEzOTA2MjE0NCYoYz0wfGFbcD4+Ml0pXi0yMTM5MDYyMTQ0KSZjKy0xNjg0MzAwOXwwKXtjPXA7YnJlYWsgdH1pZihhW2w+PjJdPWMsYz1wKzR8MCxsPWwrNHwwLCEoKGY9ZistNHwwKT4+PjA+MykpYnJlYWs7cD1jfX13''@;'; + put 'put ''aGlsZSgwKTtBPTExfX1lbHNlIGY9MH19d2hpbGUoMCk7ZTpkb3tpZigxMT09KDB8QSkpaWYoZilmb3IoOzspe2lmKGZlW2w+PjBdPUE9MHxmZVtjPj4wXSwhKEE8PDI0Pj4yNCkpYnJlYWsgZTtpZihsPWwrMXwwLCEoZj1mKy0xfDApKXtmPTA7YnJlYWt9Yz1jKzF8MH1lbHNlIGY9MH13aGls''@;'; + put 'put ''ZSgwKTt1MigwfGwsMCwwfGYpfShsfD0wLGN8PTAsZnw9MCksMHxsfWZ1bmN0aW9uIHckKGwsYyl7bHw9MCxjfD0wO3ZhciBwLG0sZj0wLEE9MDttPWFlLGFlPWFlKzMyfDAsYVsocD1tKT4+Ml09MCxhW3ArND4+Ml09MCxhW3ArOD4+Ml09MCxhW3ArMTI+PjJdPTAsYVtwKzE2Pj4yXT0wLGFb''@;'; + put 'put ''cCsyMD4+Ml09MCxhW3ArMjQ+PjJdPTAsYVtwKzI4Pj4yXT0wLGY9MHxmZVtjPj4wXTtkb3tpZihmPDwyND4+MjQpe2lmKCEoMHxmZVtjKzE+PjBdKSl7Zm9yKGM9bDsoMHxmZVtjPj4wXSk9PWY8PDI0Pj4yNDspYz1jKzF8MDtjPWMtbHwwO2JyZWFrfWRve2FbKEE9cCsoKCgyNTUmZik+Pj41''@;'; + put 'put ''JjI1NSk8PDIpfDApPj4yXT1hW0E+PjJdfDE8PCgzMSZmKSxmPTB8ZmVbKGM9YysxfDApPj4wXX13aGlsZShmPDwyND4+MjQhPTApO2Y9MHxmZVtsPj4wXTtlOmRve2lmKGY8PDI0Pj4yNCl7Yz1sO2Rve2lmKCEoYVtwKygoKDI1NSZmKT4+PjUmMjU1KTw8Mik+PjJdJjE8PCgzMSZmKSkpYnJl''@;'; + put 'put ''YWsgZTtmPTB8ZmVbKGM9YysxfDApPj4wXX13aGlsZShmPDwyND4+MjQhPTApfWVsc2UgYz1sfXdoaWxlKDApO2M9Yy1sfDB9ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIGFlPW0sMHxjfWZ1bmN0aW9uIG9vKGwsYyxmKXt2YXIgcCxtO3JldHVybiBsfD0wLGN8PTAscD1hZSxhZT1hZSsxNnww''@;'; + put 'put ''LGFbKG09cCk+PjJdPWZ8PTAsZj0wfF9qKGwsYyxtKSxhZT1wLDB8Zn1mdW5jdGlvbiBfaihsLGMsZil7cmV0dXJuIDB8ZkwobHw9MCwyMTQ3NDgzNjQ3LGN8PTAsZnw9MCl9ZnVuY3Rpb24geDEobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBrLE0sRCxtPTAsQT0wLHc9MCxiPTAsUj0wO0Q9YWUs''@;'; + put 'put ''YWU9YWUrMjA4fDAsaz1EKzh8MCxNPUQsdz0wfEFyKGZ8PTAsY3w9MCksYVsoYj1NKT4+Ml09MSxhW2IrND4+Ml09MDtlOmRve2lmKDB8dyl7Zm9yKGI9MC1mfDAsYVtrKzQ+PjJdPWYsYVtrPj4yXT1mLG09MixjPWYsQT1mO2FbaysobTw8Mik+PjJdPWM9YytmK0F8MCxjPj4+MDx3Pj4+MDsp''@;'; + put 'put ''Uj1BLG09bSsxfDAsQT1jLGM9UjtpZigoQT1sK3crYnwwKT4+PjA+bD4+PjApe3c9QSxtPTEsYz0xO2Rve2Rve2lmKDMhPSgzJmN8MCkpe2lmKCgwfGFbaysoKGM9bSstMXwwKTw8Mik+PjJdKT4+PjA8KHctbHwwKT4+PjA/ZEwobCxmLHAsbSxrKTpnTChsLGYscCxNLG0sMCxrKSwxPT0oMHxt''@;'; + put 'put ''KSl7bUwoTSwxKSxtPTA7YnJlYWt9bUwoTSxjKSxtPTE7YnJlYWt9ZEwobCxmLHAsbSxrKSxwTChNLDIpLG09bSsyfDB9d2hpbGUoMCk7YVtNPj4yXT1jPTF8YVtNPj4yXSxsPWwrZnwwfXdoaWxlKGw+Pj4wPEE+Pj4wKX1lbHNlIG09MSxjPTE7Zm9yKGdMKGwsZixwLE0sbSwwLGspLEE9TSs0''@;'; + put 'put ''fDA7Oyl7aWYoMT09KDB8bSkmMT09KDB8Yykpe2lmKCEoMHxhW0E+PjJdKSlicmVhayBlfWVsc2UgaWYoKDB8bSk+PTIpe21MKE0sMiksUj1tKy0yfDAsYVtNPj4yXT03XmFbTT4+Ml0scEwoTSwxKSxnTChsKygwLSgwfGFbaysoUjw8Mik+PjJdKSkrYnwwLGYscCxNLG0rLTF8MCwxLGspLG1M''@;'; + put 'put ''KE0sMSksYVtNPj4yXT1jPTF8YVtNPj4yXSxnTCh3PWwrYnwwLGYscCxNLFIsMSxrKSxsPXcsbT1SO2NvbnRpbnVlfXBMKE0sYz0wfGIkKE0pKSxsPWwrYnwwLG09YyttfDAsYz0wfGFbTT4+Ml19fX13aGlsZSgwKTthZT1EfWZ1bmN0aW9uIGRMKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAs''@;'; + put 'put ''bXw9MDt2YXIgRCxSLEE9MCx3PTAsYj0wLGs9MCxNPTA7Uj1hZSxhZT1hZSsyNDB8MCxhWyhEPVIpPj4yXT1sfD0wO2U6ZG97aWYoKDB8cCk+MSlmb3IoTT0wLWN8MCxBPWwsaz1wLHA9MTs7KXtpZigoMHxCaVsxMjcmZl0obCxBPSh3PUErTXwwKSsoMC0oMHxhW20rKChiPWsrLTJ8MCk8PDIp''@;'; + put 'put ''Pj4yXSkpfDApKT4tMSYmKDB8QmlbMTI3JmZdKGwsdykpPi0xKWJyZWFrIGU7aWYobD1wKzF8MCxwPUQrKHA8PDIpfDAsKDB8QmlbMTI3JmZdKEEsdykpPi0xPyhhW3A+PjJdPUEscD1rKy0xfDApOihhW3A+PjJdPXcsQT13LHA9YiksKDB8cCk8PTEpe3A9bDticmVhayBlfWs9cCxwPWwsbD0w''@;'; + put 'put ''fGFbRD4+Ml19ZWxzZSBwPTF9d2hpbGUoMCk7QyQoYyxELHApLGFlPVJ9ZnVuY3Rpb24gcEwobCxjKXt2YXIgbSxmPTAscD0wO209NCsobHw9MCl8MCwoY3w9MCk+Pj4wPjMxPyhhW2w+PjJdPXA9MHxhW20+PjJdLGFbbT4+Ml09MCxjPWMrLTMyfDAsZj0wKTooZj0wfGFbbT4+Ml0scD0wfGFb''@;'; + put 'put ''bD4+Ml0pLGFbbD4+Ml09Zjw8MzItY3xwPj4+YyxhW20+PjJdPWY+Pj5jfWZ1bmN0aW9uIGdMKGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxmfD0wLG18PTAsQXw9MCx3fD0wO3ZhciBNLFIsRyxLLGI9MCxrPTAsRD0wLHBlPTA7Sz1hZSxhZT1hZSsyNDB8MCxHPUssYVsoUj1LKzIzMnwwKT4+''@;'; + put 'put ''Ml09cGU9MHxhWyhwfD0wKT4+Ml0sYVsoTT1SKzR8MCk+PjJdPWs9MHxhW3ArND4+Ml0sYVtHPj4yXT1sO2U6ZG97aWYoMSE9KDB8cGUpfDAhPSgwfGspJiYoRD0wLWN8MCxiPWwrKDAtKDB8YVt3KyhtPDwyKT4+Ml0pKXwwLCgwfEJpWzEyNyZmXShiLGwpKT49MSkpZm9yKHA9MSxBPTA9PSgw''@;'; + put 'put ''fEEpLGs9Yjs7KXtpZihBJigwfG0pPjEpe2lmKGI9MHxhW3crKG0rLTI8PDIpPj4yXSwoMHxCaVsxMjcmZl0oQT1sK0R8MCxrKSk+LTEpe2I9MTA7YnJlYWsgZX1pZigoMHxCaVsxMjcmZl0oQSsoMC1iKXwwLGspKT4tMSl7Yj0xMDticmVhayBlfX1pZihBPXArMXwwLGFbRysocDw8Mik+PjJd''@;'; + put 'put ''PWsscEwoUixwZT0wfGIkKFIpKSxtPXBlK218MCwhKDEhPSgwfGFbUj4+Ml0pfDAhPSgwfGFbTT4+Ml0pKSl7cD1BLGw9ayxiPTEwO2JyZWFrIGV9aWYoKDB8QmlbMTI3JmZdKGw9aysoMC0oMHxhW3crKG08PDIpPj4yXSkpfDAsMHxhW0c+PjJdKSk8MSl7bD1rLHA9QSxBPTAsYj05O2JyZWFr''@;'; + put 'put ''fXBlPWsscD1BLEE9MSxrPWwsbD1wZX1lbHNlIHA9MSxiPTl9d2hpbGUoMCk7OT09KDB8YikmJjA9PSgwfEEpJiYoYj0xMCksMTA9PSgwfGIpJiYoQyQoYyxHLHApLGRMKGwsYyxmLG0sdykpLGFlPUt9ZnVuY3Rpb24gbUwobCxjKXt2YXIgbSxmPTAscD0wO209NCsobHw9MCl8MCwoY3w9MCk+''@;'; + put 'put ''Pj4wPjMxPyhhW20+PjJdPXA9MHxhW2w+PjJdLGFbbD4+Ml09MCxjPWMrLTMyfDAsZj0wKTooZj0wfGFbbD4+Ml0scD0wfGFbbT4+Ml0pLGFbbT4+Ml09Zj4+PigzMi1jfDApfHA8PGMsYVtsPj4yXT1mPDxjfWZ1bmN0aW9uIGIkKGwpe3ZhciBjPTA7cmV0dXJuKGM9MHxfJCgoMHxhWyhsfD0w''@;'; + put 'put ''KT4+Ml0pLTF8MCkpPzB8YzowfCgwPT0oMHwoYz0wfF8kKDB8YVtsKzQ+PjJdKSkpPzA6YyszMnwwKX1mdW5jdGlvbiBfJChsKXt2YXIgYz0wO2lmKGx8PTApaWYoMSZsKWw9MDtlbHNle2M9bCxsPTA7ZG97bD1sKzF8MCxjPj4+PTF9d2hpbGUoISgxJmN8MCkpfWVsc2UgbD0zMjtyZXR1cm4g''@;'; + put 'put ''MHxsfWZ1bmN0aW9uIEMkKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgdyxwPTAsbT0wLEE9MCxiPTA7dz1hZSxhZT1hZSsyNTZ8MCxwPXc7ZTpkb3tpZigoMHxmKT49MiYmKEE9YysoZjw8Mil8MCxhW0E+PjJdPXAsMHxsKSlmb3IoOzspe2dvKDB8cCwwfGFbYz4+Ml0sMHwobT1sPj4+MDwy''@;'; + put 'put ''NTY/bDoyNTYpKSxwPTA7ZG97Z28oMHxhWyhiPWMrKHA8PDIpfDApPj4yXSwwfGFbYysoKHA9cCsxfDApPDwyKT4+Ml0sMHxtKSxhW2I+PjJdPSgwfGFbYj4+Ml0pK219d2hpbGUoKDB8cCkhPSgwfGYpKTtpZighKGw9bC1tfDApKWJyZWFrIGU7cD0wfGFbQT4+Ml19fXdoaWxlKDApO2FlPXd9''@;'; + put 'put ''ZnVuY3Rpb24gVDAobCxjLGYpe3ZhciBwLG07cmV0dXJuIGx8PTAsY3w9MCxwPWFlLGFlPWFlKzE2fDAsYVsobT1wKT4+Ml09Znw9MCxmPTB8aEwobCxjLG0pLGFlPXAsMHxmfWZ1bmN0aW9uIF9jZShsKXtsfD0wO3ZhciBwLGM9MCxmPTA7Zm9yKHA9YWUsYWU9YWUrMTZ8MCxMTSgwLDB8KGY9''@;'; + put 'put ''cCkpLGM9MCxmPTY1NTM3KigwfGFbZis0Pj4yXSleKGY+Pj40KStsO2ZlW2wrYz4+MF09NjUrKDE1JmYpfGY8PDEmMzIsNiE9KDB8KGM9YysxfDApKTspZj4+Pj01O3JldHVybiBhZT1wLDB8bH1mdW5jdGlvbiB2TChsLGMsZil7cmV0dXJuIDB8dSQobHw9MCxjfD0wLGZ8PTAsLTIxNDc0ODM2''@;'; + put 'put ''NDgsMCl9ZnVuY3Rpb24gQ2oobCxjKXtsfD0wO3ZhciBwLEEsZj0wLG09MCx3PTA7QT1hZSxhZT1hZSszMnwwLHA9QSxmPTB8ZmVbKGN8PTApPj4wXTtlOmRve2lmKGY8PDI0Pj4yNCE9MCYmMCE9KDB8ZmVbYysxPj4wXSkpe2FbcD4+Ml09MCxhW3ArND4+Ml09MCxhW3ArOD4+Ml09MCxhW3Ar''@;'; + put 'put ''MTI+PjJdPTAsYVtwKzE2Pj4yXT0wLGFbcCsyMD4+Ml09MCxhW3ArMjQ+PjJdPTAsYVtwKzI4Pj4yXT0wO2Rve2FbKHc9cCsoKCgyNTUmZik+Pj41JjI1NSk8PDIpfDApPj4yXT1hW3c+PjJdfDE8PCgzMSZmKSxmPTB8ZmVbKGM9YysxfDApPj4wXX13aGlsZShmPDwyND4+MjQhPTApO2lmKChm''@;'; + put 'put ''PTB8ZmVbbD4+MF0pPDwyND4+MjQpe2M9bDtkb3tpZihhW3ArKCgoMjU1JmYpPj4+NSYyNTUpPDwyKT4+Ml0mMTw8KDMxJmYpfDApYnJlYWsgZTtmPTB8ZmVbKGM9YysxfDApPj4wXX13aGlsZShmPDwyND4+MjQhPTApfWVsc2UgYz1sfWVsc2UgbT0zfXdoaWxlKDApO3JldHVybiAzPT0oMHxt''@;'; + put 'put ''KSYmKGM9MHxsTChsLGY8PDI0Pj4yNCkpLGFlPUEsYy1sfDB9ZnVuY3Rpb24gbDkobCxjKXtjfD0wO3ZhciBmPTA7KGx8PTApfHwobD0wfGFbNDc2NjZdKT9mPTM6bD0wO2Rve2lmKDM9PSgwfGYpKXtpZihsPWwrKDB8dyQobCxjKSl8MCwhKDB8ZmVbbD4+MF0pKXthWzQ3NjY2XT0wLGw9MDti''@;'; + put 'put ''cmVha31pZihjPWwrKDB8Q2oobCxjKSl8MCxhWzQ3NjY2XT1jLDB8ZmVbYz4+MF0pe2FbNDc2NjZdPWMrMSxmZVtjPj4wXT0wO2JyZWFrfWFbNDc2NjZdPTA7YnJlYWt9fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24ga2oobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wOyhsfD0wKXx8KGw9''@;'; + put 'put ''MHxhW2Y+PjJdKT9wPTM6bD0wO2Rve2lmKDM9PSgwfHApKXtpZihsPWwrKDB8dyQobCxjKSl8MCwhKDB8ZmVbbD4+MF0pKXthW2Y+PjJdPTAsbD0wO2JyZWFrfWlmKGM9bCsoMHxDaihsLGMpKXwwLGFbZj4+Ml09YywwfGZlW2M+PjBdKXthW2Y+PjJdPWMrMSxmZVtjPj4wXT0wO2JyZWFrfWFb''@;'; + put 'put ''Zj4+Ml09MDticmVha319d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiByYShsKXt2YXIgZixjPTA7cmV0dXJuKGM9MHxCMChmPTErKDB8VW8obHw9MCkpfDApKT9nbygwfGMsMHxsLDB8Zik6Yz0wLDB8Y31mdW5jdGlvbiBrJChsLGMpe3JldHVybiAwfGZ1bmN0aW9uIENjZShsLGMsZil7''@;'; + put 'put ''dmFyIHA7bHw9MCxmfD0wLHA9MjU1JihjfD0wKTtkb3tpZighZil7Yz0wO2JyZWFrfWM9bCsoZj1mKy0xfDApfDB9d2hpbGUoKDB8ZmVbYz4+MF0pIT1wPDwyND4+MjQpO3JldHVybiAwfGN9KGx8PTAsY3w9MCwxKygwfFVvKGwpKXwwKX1mdW5jdGlvbiBzOShsLGMpe3JldHVybiBjfD0wLGlk''@;'; + put 'put ''KChsfD0wKSsoMHxVbyhsKSl8MCxjKSwwfGx9ZnVuY3Rpb24gUyQobCl7cmV0dXJuIDB8KDB8YVsobHw9MCk+PjJdKT4+PjQmMX1mdW5jdGlvbiBldyhsKXt2YXIgQSxjPTAsZj0wLHA9MDtyZXR1cm4gMCxmdW5jdGlvbiBTY2UobCl7dmFyIGM9MDswfGFbNjgrKGx8PTApPj4yXSYmKGM9MHxh''@;'; + put 'put ''W2wrMTE2Pj4yXSxsPWwrMTEyfDAsMHxjJiYoYVtjKzExMj4+Ml09YVtsPj4yXSksbD0obD0wfGFbbD4+Ml0pP2wrMTE2fDA6NjMyMDgsYVtsPj4yXT1jKX0obHw9MCksKEE9MCE9KDEmYVtsPj4yXXwwKSl8fChwPTB8U2ooKSxjPWwrNTZ8MCwwfChmPTB8YVtsKzUyPj4yXSkmJihhW2YrNTY+''@;'; + put 'put ''PjJdPWFbYz4+Ml0pLDB8KGM9MHxhW2M+PjJdKSYmKGFbYys1Mj4+Ml09ZiksKDB8YVtwPj4yXSk9PSgwfGwpJiYoYVtwPj4yXT1jKSxNaigpKSxjPTB8QUwobCksYz0wfF9vWzYzJmFbbCsxMj4+Ml1dKGwpfGMsMHwoZj0wfGFbbCs5Mj4+Ml0pJiZGdChmKSxBfHxGdChsKSwwfGN9ZnVuY3Rp''@;'; + put 'put ''b24gU2ooKXtyZXR1cm4gJHAoMTkwNjY4KSwxOTA2NzZ9ZnVuY3Rpb24gTWooKXtyNigxOTA2NjgpfWZ1bmN0aW9uIEFMKGwpe2x8PTA7dmFyIGM9MDtkb3tpZihsKXtpZigoMHxhW2wrNzY+PjJdKTw9LTEpe2M9MHxFaihsKTticmVha30hMCxjPTB8RWoobCl9ZWxzZXtpZihjPTB8YVsxNTcx''@;'; + put 'put ''MV0/MHxBTCgwfGFbMTU3MTFdKTowLGw9MHxhWygwfFNqKCkpPj4yXSlkb3swLCgwfGFbbCsyMD4+Ml0pPj4+MD4oMHxhW2wrMjg+PjJdKT4+PjAmJihjPTB8RWoobCl8YyksbD0wfGFbbCs1Nj4+Ml19d2hpbGUoMCE9KDB8bCkpO01qKCl9fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24g''@;'; + put 'put ''RWoobCl7dmFyIGMsdyxmPTAscD0wLG09MCxBPTA7cmV0dXJuKDB8YVsoYz0yMCsobHw9MCl8MCk+PjJdKT4+PjA+KDB8YVsodz1sKzI4fDApPj4yXSk+Pj4wJiYobWlbNjMmYVtsKzM2Pj4yXV0obCwwLDApLDA9PSgwfGFbYz4+Ml0pKT9sPS0xOigocD0wfGFbKGY9bCs0fDApPj4yXSk+Pj4w''@;'; + put 'put ''PChBPTB8YVsobT1sKzh8MCk+PjJdKT4+PjAmJm1pWzYzJmFbbCs0MD4+Ml1dKGwscC1BfDAsMSksYVtsKzE2Pj4yXT0wLGFbdz4+Ml09MCxhW2M+PjJdPTAsYVttPj4yXT0wLGFbZj4+Ml09MCxsPTApLDB8bH1mdW5jdGlvbiBNJChsLGMpe2x8PTA7dmFyIG0sYixrLE0sRCxSLGY9MCxwPTAs''@;'; + put 'put ''QT0wLHc9MDtpZihSPWFlLGFlPWFlKzY0fDAsRD1SKzQwfDAsaz1SKzI0fDAsYj1SKzE2fDAsbT1SLE09Uis1NnwwLDB8JGsoMTUzNTgwLChwPTB8ZmVbKGN8PTApPj4wXSk8PDI0Pj4yNCw0KSlpZihmPTB8QjAoMTE1Nikpe3c9KEE9ZikrMTI0fDA7ZG97YVtBPj4yXT0wLEE9QSs0fDB9d2hp''@;'; + put 'put ''bGUoKDB8QSk8KDB8dykpOzB8JHMoYyw0Myl8fChhW2Y+PjJdPXA8PDI0Pj4yND09MTE0Pzg6NCksMHwkcyhjLDEwMSkmJihhW20+PjJdPWwsYVttKzQ+PjJdPTIsYVttKzg+PjJdPTEsd2QoMjIxLDB8bSkscD0wfGZlW2M+PjBdKSxwPDwyND4+MjQ9PTk3PyhhW2I+PjJdPWwsYVtiKzQ+PjJd''@;'; + put 'put ''PTMsMTAyNCYocD0wfHdkKDIyMSwwfGIpKXx8KGFbaz4+Ml09bCxhW2srND4+Ml09NCxhW2srOD4+Ml09MTAyNHxwLHdkKDIyMSwwfGspKSxhW2Y+PjJdPWM9MTI4fGFbZj4+Ml0pOmM9MHxhW2Y+PjJdLGFbZis2MD4+Ml09bCxhW2YrNDQ+PjJdPWYrMTMyLGFbZis0OD4+Ml09MTAyNCxmZVso''@;'; + put 'put ''cD1mKzc1fDApPj4wXT0tMSwwPT0oOCZjfDApJiYoYVtEPj4yXT1sLGFbRCs0Pj4yXT0yMTUyMyxhW0QrOD4+Ml09TSwwPT0oMHxuNig1NCwwfEQpKSkmJihmZVtwPj4wXT0xMCksYVtmKzMyPj4yXT0xNSxhW2YrMzY+PjJdPTE4LGFbZis0MD4+Ml09MTYsYVtmKzEyPj4yXT0xNywwfGFbNDc2''@;'; + put 'put ''NDVdfHwoYVtmKzc2Pj4yXT0tMSksZnVuY3Rpb24gRWNlKGwpe2x8PTA7dmFyIGMsZjtjPTB8U2ooKSxhW2wrNTY+PjJdPWFbYz4+Ml0sMHwoZj0wfGFbYz4+Ml0pJiYoYVtmKzUyPj4yXT1sKSxhW2M+PjJdPWwsTWooKX0oZil9ZWxzZSBmPTA7ZWxzZSBhWzQ3NjQzXT0yMixmPTA7cmV0dXJu''@;'; + put 'put ''IGFlPVIsMHxmfWZ1bmN0aW9uIGM4KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgdyxwPTAsbT0wLEE9MDt3PWFlLGFlPWFlKzE2fDAscD13O2U6ZG97aWYoYyl7ZG97aWYoMHxmKXtpZihBPTA9PSgwfGwpP3A6bCwobD0wfGZlW2M+PjBdKTw8MjQ+PjI0Pi0xKXthW0E+PjJdPTI1NSZsLGw9''@;'; + put 'put ''bDw8MjQ+PjI0IT0wJjE7YnJlYWsgZX1pZihsPTB8ZmVbYz4+MF0sbT0wPT0oMHxhW2FbMTU3OTFdPj4yXSkpe2FbQT4+Ml09bDw8MjQ+PjI0JjU3MzQzLGw9MTticmVhayBlfWlmKChsPSgyNTUmbCktMTk0fDApPj4+MDw9NTApe2lmKHA9YysxfDAsbT0wfGFbNjIzODQrKGw8PDIpPj4yXSxm''@;'; + put 'put ''Pj4+MDw0JiZtJi0yMTQ3NDgzNjQ4Pj4+KCg2KmZ8MCktNnwwKXwwKWJyZWFrO2lmKCgoZj0obD0wfEp0W3A+PjBdKT4+PjMpLTE2fGYrKG0+PjI2KSk+Pj4wPD03KXtpZigoMHwobD1sKy0xMjh8bTw8NikpPj0wKXthW0E+PjJdPWwsbD0yO2JyZWFrIGV9aWYoKHA9KDB8SnRbYysyPj4wXSkt''@;'; + put 'put ''MTI4fDApPj4+MDw9NjMpe2lmKCgwfChwfD1sPDw2KSk+PTApe2FbQT4+Ml09cCxsPTM7YnJlYWsgZX1pZigobD0oMHxKdFtjKzM+PjBdKS0xMjh8MCk+Pj4wPD02Myl7YVtBPj4yXT1sfHA8PDYsbD00O2JyZWFrIGV9fX19fX13aGlsZSgwKTthWzQ3NjQzXT04NCxsPS0xfWVsc2UgbD0wfXdo''@;'; + put 'put ''aWxlKDApO3JldHVybiBhZT13LDB8bH1mdW5jdGlvbiBfdShsLGMpe3ZhciBmO3JldHVybiBjfD0wLCgoMHxDdShsfD0wLDEsZj0wfFVvKGwpLGMpKSE9KDB8ZikpPDwzMT4+MzF8MH1mdW5jdGlvbiBDdShsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG07cmV0dXJuIG09MHxBcihmfD0wLGN8PTAp''@;'; + put 'put ''LGY9MD09KDB8Yyk/MDpmLCgwfGFbcCs3Nj4+Ml0pPi0xPyghMCxsPTB8d2oobCxtLHApKTpsPTB8d2oobCxtLHApLCgwfGwpIT0oMHxtKSYmKGY9KGw+Pj4wKS8oYz4+PjApfDApLDB8Zn1mdW5jdGlvbiB4aihsLGMpe2x8PTA7dmFyIHcsYixrLGY9MCxwPTAsbT0wLEE9MDtrPWFlLGFlPWFl''@;'; + put 'put ''KzE2fDAsZmVbKHc9ayk+PjBdPWI9MjU1JihjfD0wKSwobT0wfGFbKHA9bCsxNnwwKT4+Ml0pP0E9NDowfEEkKGwpP2Y9LTE6KG09MHxhW3A+PjJdLEE9NCk7ZG97aWYoND09KDB8QSkpe2lmKChwPTB8YVsoQT1sKzIwfDApPj4yXSk+Pj4wPG0+Pj4wJiYoMHwoZj0yNTUmYykpIT0oMHxmZVts''@;'; + put 'put ''Kzc1Pj4wXSkpe2FbQT4+Ml09cCsxLGZlW3A+PjBdPWI7YnJlYWt9Zj0xPT0oMHxtaVs2MyZhW2wrMzY+PjJdXShsLHcsMSkpPzB8SnRbdz4+MF06LTF9fXdoaWxlKDApO3JldHVybiBhZT1rLDB8Zn1mdW5jdGlvbiBUY2UobCxjLGYpe3ZhciBwLG07cmV0dXJuIGN8PTAsZnw9MCxwPWFlLGFl''@;'; + put 'put ''PWFlKzE2fDAsYVsobT1wKT4+Ml09bHw9MCxhW20rND4+Ml09YyxhW20rOD4+Ml09ZixmPTB8dWgoMHxtdigzLDB8bSkpLGFlPXAsMHxmfWZ1bmN0aW9uIFRqKCl7dmFyIGwsYztyZXR1cm4gYz1hZSxhZT1hZSsxNnwwLGw9MHxhYigyMCwwfGMpLGFlPWMsMHxsfWZ1bmN0aW9uIEUkKGwsYyl7''@;'; + put 'put ''Y3w9MDt2YXIgcCxtLEEsZj0wO3JldHVybiBBPWFlLGFlPWFlKzQ4fDAsbT1BKzQwfDAscD1BKzh8MCxhWyhmPUEpPj4yXT1sfD0wLGFbZis0Pj4yXT1jLC05PT0oMHwoZj0wfEdmKDE5NywwfGYpKSkmJihhW3A+PjJdPWwsYVtwKzQ+PjJdPTEsKDB8d2QoMjIxLDB8cCkpPj0wKT8oZnVuY3Rp''@;'; + put 'put ''b24gSWNlKGwsYyl7Y3w9MDt2YXIgbSxmPTAscD0wO3A9MTUzNTY1LG09MTUrKGY9bHw9MCl8MDtkb3tmZVtmPj4wXT0wfGZlW3A+PjBdLGY9ZisxfDAscD1wKzF8MH13aGlsZSgoMHxmKTwoMHxtKSk7aWYoYyl7Zm9yKHA9YyxmPTE0O2Y9ZisxfDAsIShwPj4+MDwxMCk7KXA9KHA+Pj4wKS8x''@;'; + put 'put ''MHwwO2ZvcihmZVtsK2Y+PjBdPTA7ZmVbbCsoZj1mKy0xfDApPj4wXT00OHwoYz4+PjApJTEwLCEoYz4+PjA8MTApOyljPShjPj4+MCkvMTB8MH1lbHNlIGZlW2wrMTQ+PjBdPTQ4LGZlW2wrMTU+PjBdPTB9KHAsbCksYVttPj4yXT1wLGFbbSs0Pj4yXT1jLGM9MHx1aCgwfEFjKDE5NSwwfG0p''@;'; + put 'put ''KSk6Yz0wfHVoKGYpLGFlPUEsMHxjfWZ1bmN0aW9uIERjZShsLGMpe3ZhciBmLHA7cmV0dXJuIGN8PTAsZj1hZSxhZT1hZSsxNnwwLGFbKHA9Zik+PjJdPWx8PTAsYVtwKzQ+PjJdPWMsYz0wfHVoKDB8dG0oMzMsMHxwKSksYWU9ZiwwfGN9ZnVuY3Rpb24gZVMobCxjKXtsfD0wO3ZhciBtLEEs''@;'; + put 'put ''dyxmPTAscD0wO3JldHVybiB3PWFlLGFlPWFlKzQ4fDAsQT13KzMyfDAsbT13KzE2fDAsZj13LDB8JGsoMTUzNTgwLDB8ZmVbKGN8PTApPj4wXSw0KT8ocD0wfGZ1bmN0aW9uIExjZShsKXt2YXIgYyxmPTA7cmV0dXJuIGY9MD09KDB8JHMobHw9MCw0MykpLGM9MHxmZVtsPj4wXSxmPWY/Yzw8''@;'; + put 'put ''MjQ+PjI0IT0xMTQmMToyLGY9MD09KDB8JHMobCwxMjApKT9mOjEyOHxmLGw9KGw9MD09KDB8JHMobCwxMDEpKSk/Zjo1MjQyODh8ZixsPWM8PDI0Pj4yND09MTE0P2w6NjR8bCxsPWM8PDI0Pj4yND09MTE5PzUxMnxsOmwsMHwoYzw8MjQ+PjI0PT05Nz8xMDI0fGw6bCl9KGMpLGFbZj4+Ml09''@;'; + put 'put ''bCxhW2YrND4+Ml09MzI3Njh8cCxhW2YrOD4+Ml09NDM4LCgwfChmPTB8dWgoMHxCOCg1LDB8ZikpKSk+PTA/KDUyNDI4OCZwfDAmJihhW20+PjJdPWYsYVttKzQ+PjJdPTIsYVttKzg+PjJdPTEsd2QoMjIxLDB8bSkpLChsPTB8TSQoZixjKSl8fChhW0E+PjJdPWYsSnUoNiwwfEEpLGw9MCkp''@;'; + put 'put ''Omw9MCk6KGFbNDc2NDNdPTIyLGw9MCksYWU9dywwfGx9ZnVuY3Rpb24gaWwobCxjLGYpe3ZhciBwLG07cmV0dXJuIGx8PTAsY3w9MCxwPWFlLGFlPWFlKzE2fDAsYVsobT1wKT4+Ml09Znw9MCxmPTB8ZnVuY3Rpb24gT2NlKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcCxBLG09MCx3PTA7''@;'; + put 'put ''QT1hZSxhZT1hZSsxMjh8MCx3PShtPXA9QSkrMTI0fDA7ZG97YVttPj4yXT0wLG09bSs0fDB9d2hpbGUoKDB8bSk8KDB8dykpO3JldHVybiBhW3ArMzI+PjJdPTQxLGFbcCs0ND4+Ml09bCxhW3ArNzY+PjJdPS0xLGFbcCs4ND4+Ml09bCx3PTB8ZnVuY3Rpb24gQmNlKGwsYyxmKXtmfD0wO3Zh''@;'; + put 'put ''ciBsdCxFdCxadCxjdCxTbixwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxidD0wO1NuPWFlLGFlPWFlKzI4OHwwLGx0PVNuKzh8MCxF''@;'; + put 'put ''dD1TbisxN3wwLFp0PVNuLGN0PVNuKzE2fDAsbHw9MCxwPTB8ZmVbKGN8PTApPj4wXTtlOmRve2lmKHA8PDI0Pj4yNCl7SGU9bCs0fDAsVmU9bCsxMDB8MCxxZT1sKzEwOHwwLG50PWwrOHwwLFdlPUV0KzEwfDAsb3Q9RXQrMzN8MCxSZT1sdCs0fDAsU3Q9RXQrMXwwLGt0PUV0KzF8MCx3PWMs''@;'; + put 'put ''Sz0wLGM9MCxBPTAsbT0wO3Q6Zm9yKDs7KXtuOmRve2lmKDB8JGMoMjU1JnApKXtmb3IoOzB8JGMoMHxKdFsocD13KzF8MCk+PjBdKTspdz1wO2NoKGwsMCk7ZG97KHA9MHxhW0hlPj4yXSk+Pj4wPCgwfGFbVmU+PjJdKT4+PjA/KGFbSGU+PjJdPXArMSxwPTB8SnRbcD4+MF0pOnA9MHxJbChs''@;'; + put 'put ''KX13aGlsZSgwIT0oMHwkYyhwKSkpOzB8YVtWZT4+Ml0/YVtIZT4+Ml09cD0oMHxhW0hlPj4yXSktMXwwOnA9MHxhW0hlPj4yXSxiPSgwfGFbcWU+PjJdKStLK3AtKDB8YVtudD4+Ml0pfDB9ZWxzZXtwPXA8PDI0Pj4yND09Mzc7cjpkb3tpZihwKXtiPTB8ZmVbKE09dysxfDApPj4wXTtpOmRv''@;'; + put 'put ''e3N3aXRjaChiPDwyND4+MjQpe2Nhc2UgMzc6YnJlYWsgcjtjYXNlIDQyOkxlPTAsdz13KzJ8MDticmVhaztkZWZhdWx0OmlmKChwPSgyNTUmYiktNDh8MCk+Pj4wPDEwJiYzNj09KDB8ZmVbdysyPj4wXSkpe0xlPTB8UGNlKGYscCksdz13KzN8MDticmVhayBpfUxlPTB8YVsodz0zKygwfGFb''@;'; + put 'put ''Zj4+Ml0pJi00KT4+Ml0sYVtmPj4yXT13KzQsdz1NfX13aGlsZSgwKTtpZigoKGI9MjU1JihwPTB8ZmVbdz4+MF0pKS00OHwwKT4+PjA8MTApe009MDtkb3tNPSgxMCpNfDApLTQ4K2J8MCxiPTI1NSYocD0wfGZlWyh3PXcrMXwwKT4+MF0pfXdoaWxlKChiKy00OHwwKT4+PjA8MTApfWVsc2Ug''@;'; + put 'put ''TT0wO3N3aXRjaChBPShwPXA8PDI0Pj4yND09MTA5KT8wOkEsbT1wPzA6bSx3PXA/dysxfDA6dyxwJj1PZT0wIT0oMHxMZSksYj13KzF8MCwwfGZlW3c+PjBdKXtjYXNlIDEwNDpEPShiZT0xMDQ9PSgwfGZlW2I+PjBdKSk/LTI6LTEsdz1iZT93KzJ8MDpiO2JyZWFrO2Nhc2UgMTA4OkQ9KGJl''@;'; + put 'put ''PTEwOD09KDB8ZmVbYj4+MF0pKT8zOjEsdz1iZT93KzJ8MDpiO2JyZWFrO2Nhc2UgMTA2OkQ9Myx3PWI7YnJlYWs7Y2FzZSAxMTY6Y2FzZSAxMjI6RD0xLHc9YjticmVhaztjYXNlIDc2OkQ9Mix3PWI7YnJlYWs7Y2FzZSAxMTA6Y2FzZSAxMTI6Y2FzZSA2NzpjYXNlIDgzOmNhc2UgOTE6Y2Fz''@;'; + put 'put ''ZSA5OTpjYXNlIDExNTpjYXNlIDg4OmNhc2UgNzE6Y2FzZSA3MDpjYXNlIDY5OmNhc2UgNjU6Y2FzZSAxMDM6Y2FzZSAxMDI6Y2FzZSAxMDE6Y2FzZSA5NzpjYXNlIDEyMDpjYXNlIDExNzpjYXNlIDExMTpjYXNlIDEwNTpjYXNlIDEwMDpEPTA7YnJlYWs7ZGVmYXVsdDpidD0xMzU7YnJlYWsg''@;'; + put 'put ''dH1zd2l0Y2goRz0ocGU9Mz09KDQ3JihHPTB8SnRbdz4+MF0pfDApKT8zMnxHOkcscGU9cGU/MTpELChSPTI1NSZHKTw8MjQ+PjI0KXtjYXNlIDk5Ok09KDB8TSk+MT9NOjEsYmU9SzticmVhaztjYXNlIDkxOmJlPUs7YnJlYWs7Y2FzZSAxMTA6eCQoTGUscGUsSywoKDB8Syk8MCk8PDMxPj4z''@;'; + put 'put ''MSksYj1LO2JyZWFrIG47ZGVmYXVsdDpjaChsLDApO2RveyhiPTB8YVtIZT4+Ml0pPj4+MDwoMHxhW1ZlPj4yXSk+Pj4wPyhhW0hlPj4yXT1iKzEsYj0wfEp0W2I+PjBdKTpiPTB8SWwobCl9d2hpbGUoMCE9KDB8JGMoYikpKTswfGFbVmU+PjJdP2FbSGU+PjJdPWI9KDB8YVtIZT4+Ml0pLTF8''@;'; + put 'put ''MDpiPTB8YVtIZT4+Ml0sYmU9KDB8YVtxZT4+Ml0pK0srYi0oMHxhW250Pj4yXSl8MH1pZihjaChsLE0pLChiPTB8YVtIZT4+Ml0pPj4+MDwoRD0wfGFbVmU+PjJdKT4+PjApYVtIZT4+Ml09YisxO2Vsc2V7aWYoKDB8SWwobCkpPDApe2J0PTEzNTticmVhayB0fUQ9MHxhW1ZlPj4yXX0wfEQm''@;'; + put 'put ''JihhW0hlPj4yXT0oMHxhW0hlPj4yXSktMSk7aTpkb3tzd2l0Y2goUjw8MjQ+PjI0KXtjYXNlIDkxOmNhc2UgOTk6Y2FzZSAxMTU6Z2U9OTk9PSgwfEcpO286ZG97aWYoMTE1PT0oMTZ8RykpdTIoMHxTdCwtMSwyNTYpLGZlW0V0Pj4wXT0wLDExNT09KDB8RykmJihmZVtvdD4+MF09MCxmZVtX''@;'; + put 'put ''ZT4+MF09MCxmZVtXZSsxPj4wXT0wLGZlW1dlKzI+PjBdPTAsZmVbV2UrMz4+MF09MCxmZVtXZSs0Pj4wXT0wKTtlbHNle3N3aXRjaChLPTEmKGI9OTQ9PSgwfGZlWyhHPXcrMXwwKT4+MF0pKSx3PWI/dysyfDA6Ryx1MigwfGt0LDEmYnwwLDI1NiksZmVbRXQ+PjBdPTAsKGI9MHxmZVt3Pj4w''@;'; + put 'put ''XSk8PDI0Pj4yNCl7Y2FzZSA0NTpiPTQ2LGJ0PTYzO2JyZWFrO2Nhc2UgOTM6Yj05NCxidD02M31mb3IoOzspezYzPT0oMHxidCkmJihidD0wLGZlW0V0K2I+PjBdPTFeSyx3PWI9dysxfDAsYj0wfGZlW2I+PjBdKTthOmRve3N3aXRjaChiPDwyND4+MjQpe2Nhc2UgMDpidD0xMzU7YnJlYWsg''@;'; + put 'put ''dDtjYXNlIDkzOmJyZWFrIG87Y2FzZSA0NTpzd2l0Y2goKGI9MHxmZVsoRz13KzF8MCk+PjBdKTw8MjQ+PjI0KXtjYXNlIDkzOmNhc2UgMDpiPTQ1O2JyZWFrIGF9aWYoKDI1NSYodz0wfGZlW3crLTE+PjBdKSk8KDI1NSZiKSl7Uj0yNTUmKDFeSyksdyY9MjU1O2Rve2ZlW0V0Kyh3PXcrMXww''@;'; + put 'put ''KT4+MF09UixiPTB8ZmVbRz4+MF19d2hpbGUoKDB8dyk8KDI1NSZifDApKTt3PUd9ZWxzZSB3PUd9fXdoaWxlKDApO2I9MSsoMjU1JmIpfDAsYnQ9NjN9fX13aGlsZSgwKTtiPWdlP00rMXwwOjMxLEc9MT09KDB8cGUpO286ZG97aWYoRyl7aWYocCl7aWYoIShtPTB8QjAoYjw8MikpKXtBPTAs''@;'; + put 'put ''bT0wLHA9MSxidD0xMzU7YnJlYWsgdH19ZWxzZSBtPUxlO2FbbHQ+PjJdPTAsYVtSZT4+Ml09MCxSPWIsQT0wO2E6Zm9yKDs7KXtEPTA9PSgwfG0pO2Rve2w6Zm9yKDs7KXtpZigoYj0wfGFbSGU+PjJdKT4+PjA8KDB8YVtWZT4+Ml0pPj4+MD8oYVtIZT4+Ml09YisxLGI9MHxKdFtiPj4wXSk6''@;'; + put 'put ''Yj0wfElsKGwpLCEoMHxmZVtFdCsoYisxKT4+MF0pKWJyZWFrIGE7c3dpdGNoKGZlW2N0Pj4wXT1iLDB8REFlKFp0LGN0LDEsbHQpKXtjYXNlLTE6QT0wLGJ0PTEzNTticmVhayB0O2Nhc2UtMjpicmVhaztkZWZhdWx0OmJyZWFrIGx9fUR8fChhW20rKEE8PDIpPj4yXT1hW1p0Pj4yXSxBPUEr''@;'; + put 'put ''MXwwKX13aGlsZSghKHAmKDB8QSk9PSgwfFIpKSk7aWYoIShiPTB8VWEobSwoQT1SPDwxfDEpPDwyKSkpe0E9MCxwPTEsYnQ9MTM1O2JyZWFrIHR9cGU9UixSPUEsbT1iLEE9cGV9aWYoISgwfEZjZShsdCkpKXtBPTAsYnQ9MTM1O2JyZWFrIHR9Yj1BLEE9MCxSPW19ZWxzZXtpZihwKXtpZigh''@;'; + put 'put ''KEE9MHxCMChiKSkpe0E9MCxtPTAscD0xLGJ0PTEzNTticmVhayB0fWZvcihEPWIsbT0wOzspe2Rve2lmKChiPTB8YVtIZT4+Ml0pPj4+MDwoMHxhW1ZlPj4yXSk+Pj4wPyhhW0hlPj4yXT1iKzEsYj0wfEp0W2I+PjBdKTpiPTB8SWwobCksISgwfGZlW0V0KyhiKzEpPj4wXSkpe2I9bSxSPTAs''@;'; + put 'put ''bT0wO2JyZWFrIG99ZmVbQSttPj4wXT1iLG09bSsxfDB9d2hpbGUoKDB8bSkhPSgwfEQpKTtpZighKGI9MHxVYShBLG09RDw8MXwxKSkpe209MCxwPTEsYnQ9MTM1O2JyZWFrIHR9cGU9RCxEPW0sQT1iLG09cGV9fWlmKExlKWZvcihiPTAsQT1EOzspe2lmKChtPTB8YVtIZT4+Ml0pPj4+MDxB''@;'; + put 'put ''Pj4+MD8oYVtIZT4+Ml09bSsxLG09MHxKdFttPj4wXSk6bT0wfElsKGwpLCEoMHxmZVtFdCsobSsxKT4+MF0pKXtBPUxlLFI9MCxtPTA7YnJlYWsgb31mZVtMZStiPj4wXT1tLGI9YisxfDAsQT0wfGFbVmU+PjJdfWVsc2UgZm9yKEE9RDs7KXtpZigobT0wfGFbSGU+PjJdKT4+PjA8QT4+PjA/''@;'; + put 'put ''KGFbSGU+PjJdPW0rMSxtPTB8SnRbbT4+MF0pOm09MHxJbChsKSwhKDB8ZmVbRXQrKG0rMSk+PjBdKSl7Yj0wLEE9MCxSPTAsbT0wO2JyZWFrIG99QT0wfGFbVmU+PjJdfX19d2hpbGUoMCk7aWYoMHxhW1ZlPj4yXT9hW0hlPj4yXT1EPSgwfGFbSGU+PjJdKS0xfDA6RD0wfGFbSGU+PjJdLCEo''@;'; + put 'put ''RD1ELSgwfGFbbnQ+PjJdKSsoMHxhW3FlPj4yXSl8MCkpe2J0PTEzNzticmVhayB0fWlmKCEoKDB8RCk9PSgwfE0pfDFeZ2UpKXtidD0xMzc7YnJlYWsgdH1kb3tpZihwKXtpZihHKXthW0xlPj4yXT1SO2JyZWFrfWFbTGU+PjJdPUE7YnJlYWt9fXdoaWxlKDApO2lmKCFnZSl7aWYoMHxSJiYo''@;'; + put 'put ''YVtSKyhiPDwyKT4+Ml09MCksIUEpe0E9MDticmVhayBpfWZlW0ErYj4+MF09MH1icmVhaztjYXNlIDEyMDpjYXNlIDg4OmNhc2UgMTEyOmI9MTYsYnQ9MTIzO2JyZWFrO2Nhc2UgMTExOmI9OCxidD0xMjM7YnJlYWs7Y2FzZSAxMTc6Y2FzZSAxMDA6Yj0xMCxidD0xMjM7YnJlYWs7Y2FzZSAx''@;'; + put 'put ''MDU6Yj0wLGJ0PTEyMzticmVhaztjYXNlIDcxOmNhc2UgMTAzOmNhc2UgNzA6Y2FzZSAxMDI6Y2FzZSA2OTpjYXNlIDEwMTpjYXNlIDY1OmNhc2UgOTc6aWYoaz0rVCQobCxwZSwwKSwoMHxhW3FlPj4yXSk9PSgoMHxhW250Pj4yXSktKDB8YVtIZT4+Ml0pfDApKXtidD0xMzc7YnJlYWsgdH1p''@;'; + put 'put ''ZihMZSlzd2l0Y2goMHxwZSl7Y2FzZSAwOmpuW0xlPj4yXT1rO2JyZWFrIGk7Y2FzZSAxOmNhc2UgMjpfW0xlPj4zXT1rO2JyZWFrIGk7ZGVmYXVsdDpicmVhayBpfX19d2hpbGUoMCk7ZG97aWYoMTIzPT0oMHxidCkpe2lmKGJ0PTAsYj0wfGMkKGwsYiwwLC0xLC0xKSwoMHxhW3FlPj4yXSk9''@;'; + put 'put ''PSgoMHxhW250Pj4yXSktKDB8YVtIZT4+Ml0pfDApKXtidD0xMzc7YnJlYWsgdH1pZihPZSYxMTI9PSgwfEcpKXthW0xlPj4yXT1iO2JyZWFrfXgkKExlLHBlLGIsRG4pO2JyZWFrfX13aGlsZSgwKTtjPWMrKDEmT2UpfDAsYj0oMHxhW3FlPj4yXSkrYmUrKDB8YVtIZT4+Ml0pLSgwfGFbbnQ+''@;'; + put 'put ''PjJdKXwwO2JyZWFrIG59fXdoaWxlKDApO2lmKHc9dysoMSZwKXwwLGNoKGwsMCksKHA9MHxhW0hlPj4yXSk+Pj4wPCgwfGFbVmU+PjJdKT4+PjA/KGFbSGU+PjJdPXArMSxwPTB8SnRbcD4+MF0pOnA9MHxJbChsKSwoMHxwKSE9KDB8SnRbdz4+MF0pKXtidD0yMjticmVhayB0fWI9SysxfDB9''@;'; + put 'put ''fXdoaWxlKDApO2lmKCEoKHA9MHxmZVsodz13KzF8MCk+PjBdKTw8MjQ+PjI0KSlicmVhayBlO0s9Yn1pZigyMj09KDB8YnQpKXtpZigwfGFbVmU+PjJdJiYoYVtIZT4+Ml09KDB8YVtIZT4+Ml0pLTEpLDAhPSgwfGMpfCgwfHApPi0xKWJyZWFrO3A9MCxidD0xMzZ9ZWxzZSAxMzU9PSgwfGJ0''@;'; + put 'put ''KT8ocCY9MSxjfHwoYnQ9MTM2KSk6MTM3PT0oMHxidCkmJihwJj0xKTsxMzY9PSgwfGJ0KSYmKGM9LTEpLHAmJihGdChBKSxGdChtKSl9ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIGFlPVNuLDB8Y30ocCxjLGYpLGFlPUEsMHx3fShsLGMsbSksYWU9cCwwfGZ9ZnVuY3Rpb24gUGNlKGwsYyl7''@;'; + put 'put ''Y3w9MDt2YXIgZixwLG09MDtmb3IocD1hZSxhZT1hZSsxNnwwLGFbKGY9cCk+PjJdPWFbKGx8PTApPj4yXTtsPTB8YVsobT0zKygwfGFbZj4+Ml0pJi00KT4+Ml0sYVtmPj4yXT1tKzQsYz4+PjA+MTspYz1jKy0xfDA7cmV0dXJuIGFlPXAsMHxsfWZ1bmN0aW9uIHgkKGwsYyxmLHApe2x8PTAs''@;'; + put 'put ''Y3w9MCxmfD0wLHB8PTA7ZTpkb3tpZigwfGwpc3dpdGNoKDB8Yyl7Y2FzZS0yOmZlW2w+PjBdPWY7YnJlYWsgZTtjYXNlLTE6cnRbbD4+MV09ZjticmVhayBlO2Nhc2UgMDpjYXNlIDE6YVtsPj4yXT1mO2JyZWFrIGU7Y2FzZSAzOmFbKGM9bCk+PjJdPWYsYVtjKzQ+PjJdPXA7YnJlYWsgZTtk''@;'; + put 'put ''ZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApfWZ1bmN0aW9uIEZjZShsKXtyZXR1cm4gMHwoKGx8PTApPzA9PSgwfGFbbD4+Ml0pJjE6MSl9ZnVuY3Rpb24gVCQobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTA7c3dpdGNoKDB8KGN8PTApKXtj''@;'; + put 'put ''YXNlIDA6az0tMTQ5LE09MjQsdz00O2JyZWFrO2Nhc2UgMTpjYXNlIDI6az0tMTA3NCxNPTUzLHc9NDticmVhaztkZWZhdWx0OnA9MH1lOmRve2lmKDQ9PSgwfHcpKXtSPWwrNHwwLEQ9bCsxMDB8MDtkb3soYz0wfGFbUj4+Ml0pPj4+MDwoMHxhW0Q+PjJdKT4+PjA/KGFbUj4+Ml09YysxLGM9''@;'; + put 'put ''MHxKdFtjPj4wXSk6Yz0wfElsKGwpfXdoaWxlKDAhPSgwfCRjKGMpKSk7dDpkb3tzd2l0Y2goMHxjKXtjYXNlIDQzOmNhc2UgNDU6aWYoQT0xLSgoNDU9PSgwfGMpJjEpPDwxKXwwLChjPTB8YVtSPj4yXSk+Pj4wPCgwfGFbRD4+Ml0pPj4+MCl7YVtSPj4yXT1jKzEsbT0wfEp0W2M+PjBdO2Jy''@;'; + put 'put ''ZWFrIHR9bT0wfElsKGwpO2JyZWFrIHQ7ZGVmYXVsdDptPWMsQT0xfX13aGlsZSgwKTtjPTA7ZG97aWYoKDMyfG0pIT0oMHxmZVsxNTM1ODQrYz4+MF0pKWJyZWFrO2Rve2lmKGM+Pj4wPDcpe2lmKChtPTB8YVtSPj4yXSk+Pj4wPCgwfGFbRD4+Ml0pPj4+MCl7YVtSPj4yXT1tKzEsbT0wfEp0''@;'; + put 'put ''W20+PjBdO2JyZWFrfW09MHxJbChsKTticmVha319d2hpbGUoMCk7Yz1jKzF8MH13aGlsZShjPj4+MDw4KTt0OmRve3N3aXRjaCgwfGMpe2Nhc2UgODpicmVhaztjYXNlIDM6dz0yMzticmVhaztkZWZhdWx0OmlmKChiPTAhPSgwfGYpKSZjPj4+MD4zKXtpZig4PT0oMHxjKSlicmVhayB0O3c9''@;'; + put 'put ''MjM7YnJlYWsgdH1uOmRve2lmKCFjKXtjPTA7ZG97aWYoKDMyfG0pIT0oMHxmZVsxNTM1OTMrYz4+MF0pKWJyZWFrIG47ZG97aWYoYz4+PjA8Mil7aWYoKG09MHxhW1I+PjJdKT4+PjA8KDB8YVtEPj4yXSk+Pj4wKXthW1I+PjJdPW0rMSxtPTB8SnRbbT4+MF07YnJlYWt9bT0wfElsKGwpO2Jy''@;'; + put 'put ''ZWFrfX13aGlsZSgwKTtjPWMrMXwwfXdoaWxlKGM+Pj4wPDMpfX13aGlsZSgwKTtzd2l0Y2goMHxjKXtjYXNlIDM6aWYoKGM9MHxhW1I+PjJdKT4+PjA8KDB8YVtEPj4yXSk+Pj4wPyhhW1I+PjJdPWMrMSxjPTB8SnRbYz4+MF0pOmM9MHxJbChsKSw0MCE9KDB8Yykpe2lmKCEoMHxhW0Q+PjJd''@;'; + put 'put ''KSl7cD1qYzticmVhayBlfWFbUj4+Ml09KDB8YVtSPj4yXSktMSxwPWpjO2JyZWFrIGV9Zm9yKGM9MTsobT0wfGFbUj4+Ml0pPj4+MDwoMHxhW0Q+PjJdKT4+PjA/KGFbUj4+Ml09bSsxLG09MHxKdFttPj4wXSk6bT0wfElsKGwpLChtKy00OHwwKT4+PjA8MTB8KG0rLTY1fDApPj4+MDwyNnx8''@;'; + put 'put ''OTU9PSgwfG0pfChtKy05N3wwKT4+PjA8MjY7KWM9YysxfDA7aWYoNDE9PSgwfG0pKXtwPWpjO2JyZWFrIGV9aWYoKG09MD09KDB8YVtEPj4yXSkpfHwoYVtSPj4yXT0oMHxhW1I+PjJdKS0xKSwhYil7YVs0NzY0M109MjIsY2gobCwwKSxwPTA7YnJlYWsgZX1pZighYyl7cD1qYzticmVhayBl''@;'; + put 'put ''fWZvcig7OylpZihjPWMrLTF8MCxtfHwoYVtSPj4yXT0oMHxhW1I+PjJdKS0xKSwhYyl7cD1qYzticmVhayBlfWNhc2UgMDppZig0OD09KDB8bSkpe2lmKChjPTB8YVtSPj4yXSk+Pj4wPCgwfGFbRD4+Ml0pPj4+MD8oYVtSPj4yXT1jKzEsYz0wfEp0W2M+PjBdKTpjPTB8SWwobCksMTIwPT0o''@;'; + put 'put ''MzJ8Yykpe3A9K0hjZShsLE0sayxBLGYpO2JyZWFrIGV9MHxhW0Q+PjJdJiYoYVtSPj4yXT0oMHxhW1I+PjJdKS0xKSxjPTQ4fWVsc2UgYz1tO3A9K05jZShsLGMsTSxrLEEsZik7YnJlYWsgZTtkZWZhdWx0OjB8YVtEPj4yXSYmKGFbUj4+Ml09KDB8YVtSPj4yXSktMSksYVs0NzY0M109MjIs''@;'; + put 'put ''Y2gobCwwKSxwPTA7YnJlYWsgZX19fXdoaWxlKDApO2lmKDIzPT0oMHx3KSYmKChtPTA9PSgwfGFbRD4+Ml0pKXx8KGFbUj4+Ml09KDB8YVtSPj4yXSktMSksMCE9KDB8ZikmYz4+PjA+MykpZG97bXx8KGFbUj4+Ml09KDB8YVtSPj4yXSktMSksYz1jKy0xfDB9d2hpbGUoYz4+PjA+Myk7cD0r''@;'; + put 'put ''KDB8QSkqQXN9fXdoaWxlKDApO3JldHVybitwfWZ1bmN0aW9uIEhjZShsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIFZlLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAscWU9MDsodz0wfGFbKHFl''@;'; + put 'put ''PTQrKGx8PTApfDApPj4yXSk+Pj4wPCgwfGFbKFZlPWwrMTAwfDApPj4yXSk+Pj4wPyhhW3FlPj4yXT13KzEsYj0wfEp0W3c+PjBdLE09MCk6KGI9MHxJbChsKSxNPTApO2U6Zm9yKDs7KXtzd2l0Y2goMHxiKXtjYXNlIDQ2OkhlPTg7YnJlYWsgZTtjYXNlIDQ4OmJyZWFrO2RlZmF1bHQ6YmU9''@;'; + put 'put ''MCxSPTAsRz0xLEE9MCx3PTAsRD1iLE9lPU0sUmU9MCxMZT0wLE09MCxiPTA7YnJlYWsgZX0odz0wfGFbcWU+PjJdKT4+PjA8KDB8YVtWZT4+Ml0pPj4+MD8oYVtxZT4+Ml09dysxLGI9MHxKdFt3Pj4wXSxNPTEpOihiPTB8SWwobCksTT0xKX1pZig4PT0oMHxIZSkpaWYoKHc9MHxhW3FlPj4y''@;'; + put 'put ''XSk+Pj4wPCgwfGFbVmU+PjJdKT4+PjA/KGFbcWU+PjJdPXcrMSxiPTB8SnRbdz4+MF0pOmI9MHxJbChsKSw0OD09KDB8Yikpe009MCxiPTA7ZG97KHc9MHxhW3FlPj4yXSk+Pj4wPCgwfGFbVmU+PjJdKT4+PjA/KGFbcWU+PjJdPXcrMSxEPTB8SnRbdz4+MF0pOkQ9MHxJbChsKSxNPTB8emwo''@;'; + put 'put ''MHxNLDB8YiwtMSwtMSksYj1Ebn13aGlsZSg0OD09KDB8RCkpO2JlPTEsUj0wLEc9MSxBPTAsdz0wLE9lPTEsUmU9MCxMZT0wfWVsc2UgYmU9MSxSPTAsRz0xLEE9MCx3PTAsRD1iLE9lPU0sUmU9MCxMZT0wLE09MCxiPTA7Zm9yKDs7KXtpZihLPTMyfEQsKHBlPUQrLTQ4fDApPj4+MD49MTAp''@;'; + put 'put ''e2lmKCEoKGdlPTQ2PT0oMHxEKSl8KEsrLTk3fDApPj4+MDw2KSlicmVhaztpZihnZSl7aWYoYmUpe0Q9NDY7YnJlYWt9YmU9MSxrPUcsZ2U9T2UsTT1MZSxiPVJlLHBlPUxlLEs9UmV9ZWxzZSBIZT0yMH1lbHNlIEhlPTIwO2lmKDIwPT0oMHxIZSkpe0hlPTAsRD0oMHxEKT41Nz9LKy04N3ww''@;'; + put 'put ''OnBlO2Rve2lmKCEoKDB8UmUpPDB8MD09KDB8UmUpJkxlPj4+MDw4KSl7aWYoKDB8UmUpPDB8MD09KDB8UmUpJkxlPj4+MDwxNCl7az1HKj0uMDYyNSxBKz1HKisoMHxEKTticmVha31SPShPZT0wIT0oMHxSKXwwPT0oMHxEKSk/UjoxLGs9RyxBPU9lP0E6QSsuNSpHO2JyZWFrfWs9Ryx3PUQr''@;'; + put 'put ''KHc8PDQpfDB9d2hpbGUoMCk7cGU9MHx6bCgwfExlLDB8UmUsMSwwKSxnZT0xLEs9RG59KEQ9MHxhW3FlPj4yXSk+Pj4wPCgwfGFbVmU+PjJdKT4+PjA/KGFbcWU+PjJdPUQrMSxHPWssRD0wfEp0W0Q+PjBdLE9lPWdlLFJlPUssTGU9cGUpOihHPWssRD0wfElsKGwpLE9lPWdlLFJlPUssTGU9''@;'; + put 'put ''cGUpfWRve2lmKE9lKXtpZihwZT0oSz0wPT0oMHxiZSkpP0xlOk0sSz1LP1JlOmIsKDB8UmUpPDB8MD09KDB8UmUpJkxlPj4+MDw4KWZvcihNPUxlLGI9UmU7Oyl7aWYodzw8PTQsSGU9TSxNPTB8emwoMHxNLDB8YiwxLDApLCEoKDB8Yik8MHwwPT0oMHxiKSZIZT4+PjA8Nykpe1I9dzticmVh''@;'; + put 'put ''a31iPURufWVsc2UgUj13O2lmKDExMj09KDMyfEQpKXtpZigwPT0oMHwoYj0wfEkkKGwsbSkpKSYtMjE0NzQ4MzY0OD09KDB8KHc9RG4pKSl7aWYoIW0pe2NoKGwsMCksQT0wO2JyZWFrfTB8YVtWZT4+Ml0/KGFbcWU+PjJdPSgwfGFbcWU+PjJdKS0xLGI9MCx3PTApOihiPTAsdz0wKX19ZWxz''@;'; + put 'put ''ZSAwfGFbVmU+PjJdPyhhW3FlPj4yXT0oMHxhW3FlPj4yXSktMSxiPTAsdz0wKTooYj0wLHc9MCk7aWYoTT0wfHpsKDB8KE09MHxabygwfHBlLDB8SywyKSksMHxEbiwtMzIsLTEpLE09MHx6bCgwfE0sMHxEbiwwfGIsMHx3KSx3PURuLCFSKXtBPTAqKygwfHApO2JyZWFrfWlmKCgwfHcpPigw''@;'; + put 'put ''fChtPSgoMHwocWU9MC1mfDApKTwwKTw8MzE+PjMxKSl8KDB8dyk9PSgwfG0pJk0+Pj4wPnFlPj4+MCl7YVs0NzY0M109MzQsQT0xNzk3NjkzMTM0ODYyMzE1N2UyOTIqKygwfHApKjE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjticmVha31pZigoMHx3KTwoMHwobT0oKDB8KHFlPWYrLTEwNnwwKSk8''@;'; + put 'put ''MCk8PDMxPj4zMSkpfCgwfHcpPT0oMHxtKSZNPj4+MDxxZT4+PjApe2FbNDc2NDNdPTM0LEE9MjIyNTA3Mzg1ODUwNzIwMTRlLTMyNCorKDB8cCkqMjIyNTA3Mzg1ODUwNzIwMTRlLTMyNDticmVha31pZigoMHxSKT4tMSl7Yj1SO2Rve2I9Yjw8MXwxJigxXihxZT0hKEE+PS41KSkpLEErPXFl''@;'; + put 'put ''P0E6QSstMSxNPTB8emwoMHxNLDB8dywtMSwtMSksdz1Ebn13aGlsZSgoMHxiKT4tMSk7Rz1BLEQ9Yn1lbHNlIEc9QSxEPVI7cWU9KCgwfGMpPDApPDwzMT4+MzEsdz0wfHpsKDB8KGY9MHxTcCgzMiwwLDB8ZiwoKDB8Zik8MCk8PDMxPj4zMXwwKSksMHxEbiwwfE0sMHx3KSwoMHwoZj1Ebikp''@;'; + put 'put ''PCgwfHFlKXwoMHxmKT09KDB8cWUpJnc+Pj4wPGM+Pj4wPygwfHcpPjA/SGU9NTk6KGI9MCx3PTg0LEhlPTYxKToodz1jLEhlPTU5KSw1OT09KDB8SGUpJiYoKDB8dyk8NTM/KGI9dyx3PTg0LXd8MCxIZT02MSk6KGs9MCxBPSsoMHxwKSkpLDYxPT0oMHxIZSkmJihBPSsoMHxwKSxrPSthJCgr''@;'; + put 'put ''dmcoMSx3KSxBKSx3PWIpLDA9PShBPSgocD0wPT0oMSZEfDApJjAhPUcmKDB8dyk8MzIpPzA6RykqQSsoaytBKisoKEQrKDEmcCl8MCk+Pj4wKSktaykmJihhWzQ3NjQzXT0zNCksQT0rbCQoQSxNKX1lbHNlKHc9MD09KDB8YVtWZT4+Ml0pKXx8KGFbcWU+PjJdPSgwfGFbcWU+PjJdKS0xKSxt''@;'; + put 'put ''Pyh3fHwoYVtxZT4+Ml09KDB8YVtxZT4+Ml0pLTEpLDA9PSgwfGJlKXx3fHwoYVtxZT4+Ml09KDB8YVtxZT4+Ml0pLTEpKTpjaChsLDApLEE9MCorKDB8cCl9d2hpbGUoMCk7cmV0dXJuK0F9ZnVuY3Rpb24gTmNlKGwsYyxmLHAsbSxBKXtjfD0wLG18PTAsQXw9MDt2YXIga3QsRXQsWnQsdz0w''@;'; + put 'put ''LGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MCxTdD0wLGx0PTAsY3Q9MDtadD1hZSxhZT1hZSs1MTJ8MCxrdD1adCxFdD0wLShsdD0ocHw9MCkrKGZ8PTApfDApfDAsV2U9NCsobHw9''@;'; + put 'put ''MCl8MCxvdD1sKzEwMHwwLGs9MDtlOmZvcig7Oyl7c3dpdGNoKDB8Yyl7Y2FzZSA0NjpxZT02O2JyZWFrIGU7Y2FzZSA0ODpicmVhaztkZWZhdWx0OkxlPTAsRz1rLEs9MCxSPTA7YnJlYWsgZX0oYz0wfGFbV2U+PjJdKT4+PjA8KDB8YVtvdD4+Ml0pPj4+MD8oYVtXZT4+Ml09YysxLGM9MHxK''@;'; + put 'put ''dFtjPj4wXSxrPTEpOihjPTB8SWwobCksaz0xKX1pZig2PT0oMHxxZSkpaWYoKGM9MHxhW1dlPj4yXSk+Pj4wPCgwfGFbb3Q+PjJdKT4+PjA/KGFbV2U+PjJdPWMrMSxjPTB8SnRbYz4+MF0pOmM9MHxJbChsKSw0OD09KDB8YykpZm9yKGs9MCxjPTA7Oyl7aWYoaz0wfHpsKDB8aywwfGMsLTEs''@;'; + put 'put ''LTEpLFI9RG4sKGM9MHxhW1dlPj4yXSk+Pj4wPCgwfGFbb3Q+PjJdKT4+PjA/KGFbV2U+PjJdPWMrMSxjPTB8SnRbYz4+MF0pOmM9MHxJbChsKSw0OCE9KDB8Yykpe0xlPTEsRz0xLEs9azticmVha31jPVJ9ZWxzZSBMZT0xLEc9ayxLPTAsUj0wO2Fba3Q+PjJdPTAsRD1jKy00OHwwLE09NDY9''@;'; + put 'put ''PSgwfGMpO2U6ZG97aWYoTXxEPj4+MDwxMCl7bnQ9a3QrNDk2fDAsUmU9MCxrPTAsT2U9MCxIZT1MZSxWZT1HLHFlPUQsRz0wLEQ9MDt0OmZvcig7Oyl7ZG97aWYoTSl7aWYoSGUpYnJlYWsgdDtIZT0xLEs9RyxSPUR9ZWxzZXtpZihHPTB8emwoMHxHLDB8RCwxLDApLEQ9RG4sTGU9NDghPSgw''@;'; + put 'put ''fGMpLCgwfGspPj0xMjUpe2lmKCFMZSlicmVhazthW250Pj4yXT0xfGFbbnQ+PjJdO2JyZWFrfWFbKE09a3QrKGs8PDIpfDApPj4yXT1jPVJlP2MrLTQ4KygxMCooMHxhW00+PjJdKXwwKXwwOnFlLFJlPShWZT05PT0oMHwoUmU9UmUrMXwwKSkpPzA6UmUsaz1rKygxJlZlKXwwLE9lPUxlP0c6''@;'; + put 'put ''T2UsVmU9MX19d2hpbGUoMCk7aWYoKGM9MHxhW1dlPj4yXSk+Pj4wPCgwfGFbb3Q+PjJdKT4+PjA/KGFbV2U+PjJdPWMrMSxjPTB8SnRbYz4+MF0pOmM9MHxJbChsKSwhKChNPTQ2PT0oMHxjKSl8KHFlPWMrLTQ4fDApPj4+MDwxMCkpe0xlPUhlLE09VmUscWU9Mjk7YnJlYWsgZX19Yz1SZSxN''@;'; + put 'put ''PTAhPSgwfFZlKSxxZT0zN31lbHNlIFJlPTAsaz0wLE9lPTAsTT1HLEc9MCxEPTAscWU9Mjl9d2hpbGUoMCk7ZG97aWYoMjk9PSgwfHFlKSl7aWYoSz0obnQ9MD09KDB8TGUpKT9HOkssUj1udD9EOlIsISgoTT0wIT0oMHxNKSkmMTAxPT0oMzJ8YykpKXtpZigoMHxjKT4tMSl7Yz1SZSxxZT0z''@;'; + put 'put ''NzticmVha31jPVJlLHFlPTM5O2JyZWFrfWlmKDA9PSgwfChNPTB8SSQobCxBKSkpJi0yMTQ3NDgzNjQ4PT0oMHwoYz1EbikpKXtpZighQSl7Y2gobCwwKSx3PTA7YnJlYWt9MHxhW290Pj4yXT8oYVtXZT4+Ml09KDB8YVtXZT4+Ml0pLTEsTT0wLGM9MCk6KE09MCxjPTApfVZlPTB8emwoMHxN''@;'; + put 'put ''LDB8YywwfEssMHxSKSxjPVJlLFI9RG4scWU9NDF9fXdoaWxlKDApOzM3PT0oMHxxZSkmJigwfGFbb3Q+PjJdPyhhW1dlPj4yXT0oMHxhW1dlPj4yXSktMSxNPyhWZT1LLHFlPTQxKTpxZT00MCk6cWU9MzkpLDM5PT0oMHxxZSkmJihNPyhWZT1LLHFlPTQxKTpxZT00MCk7ZG97aWYoNDA9PSgw''@;'; + put 'put ''fHFlKSlhWzQ3NjQzXT0yMixjaChsLDApLHc9MDtlbHNlIGlmKDQxPT0oMHxxZSkpe2lmKCEoTT0wfGFba3Q+PjJdKSl7dz0wKisoMHxtKTticmVha31pZigoMHxWZSk9PSgwfEcpJigwfFIpPT0oMHxEKSYoKDB8RCk8MHwwPT0oMHxEKSZHPj4+MDwxMCkmJigwfGYpPjMwfDA9PShNPj4+Znww''@;'; + put 'put ''KSl7dz0rKDB8bSkqKyhNPj4+MCk7YnJlYWt9aWYoKDB8Uik+KDB8KG90PSgoMHwobD0oMHxwKS8tMnwwKSk8MCk8PDMxPj4zMSkpfCgwfFIpPT0oMHxvdCkmVmU+Pj4wPmw+Pj4wKXthWzQ3NjQzXT0zNCx3PTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MiorKDB8bSkqMTc5NzY5MzEzNDg2MjMxNTdl''@;'; + put 'put ''MjkyO2JyZWFrfWlmKCgwfFIpPCgwfChvdD0oKDB8KGw9cCstMTA2fDApKTwwKTw8MzE+PjMxKSl8KDB8Uik9PSgwfG90KSZWZT4+PjA8bD4+PjApe2FbNDc2NDNdPTM0LHc9MjIyNTA3Mzg1ODUwNzIwMTRlLTMyNCorKDB8bSkqMjIyNTA3Mzg1ODUwNzIwMTRlLTMyNDticmVha31pZihjKXtp''@;'; + put 'put ''ZigoMHxjKTw5KXtmb3IoTT0wfGFbKEQ9a3QrKGs8PDIpfDApPj4yXTtNPTEwKk18MCwhKCgwfGMpPj04KTspYz1jKzF8MDthW0Q+PjJdPU19az1rKzF8MH1pZigoMHxPZSk8OSYmKDB8T2UpPD0oMHxWZSkmKDB8VmUpPDE4KXtpZig5PT0oMHxWZSkpe3c9KygwfG0pKisoKDB8YVtrdD4+Ml0p''@;'; + put 'put ''Pj4+MCk7YnJlYWt9aWYoKDB8VmUpPDkpe3c9KygwfG0pKisoKDB8YVtrdD4+Ml0pPj4+MCkvKygwfGFbNjM3MTIrKDgtVmU8PDIpPj4yXSk7YnJlYWt9aWYoKDB8KGw9ZisyNysoMHxBcihWZSwtMykpfDApKT4zMHwwPT0oKGM9MHxhW2t0Pj4yXSk+Pj5sfDApKXt3PSsoMHxtKSorKGM+Pj4w''@;'; + put 'put ''KSorKDB8YVs2MzcxMisoVmUrLTEwPDwyKT4+Ml0pO2JyZWFrfX1pZihjPSgwfFZlKSU5fDApe2lmKEc9MHxhWzYzNzEyKyg4LShPZT0oMHxWZSk+LTE/YzpjKzl8MCk8PDIpPj4yXSxrKXtLPTFlOS8oMHxHKXwwLEQ9MCxSPTAsTT1WZSxjPTA7ZG97YVsoV2U9a3QrKGM8PDIpfDApPj4yXT1s''@;'; + put 'put ''PSgoKG90PTB8YVtXZT4+Ml0pPj4+MCkvKEc+Pj4wKXwwKStEfDAsRD0wfEFyKEssKG90Pj4+MCklKEc+Pj4wKXwwKSxNPShsPSgwfGMpPT0oMHxSKSYwPT0oMHxsKSk/TSstOXwwOk0sUj1sP1IrMSYxMjc6UixjPWMrMXwwfXdoaWxlKCgwfGMpIT0oMHxrKSk7RD8oYVtrdCsoazw8Mik+PjJd''@;'; + put 'put ''PUQsRD1SLGs9aysxfDApOkQ9Un1lbHNlIEQ9MCxrPTAsTT1WZTtjPTAsVmU9OS1PZStNfDB9ZWxzZSBjPTAsRD0wO2U6Zm9yKDs7KXtmb3IoT2U9KDB8VmUpPDE4LExlPTE4PT0oMHxWZSksUmU9a3QrKEQ8PDIpfDA7Oyl7aWYoIU9lKXtpZighTGUpe009VmU7YnJlYWsgZX1pZigoMHxhW1Jl''@;'; + put 'put ''Pj4yXSk+Pj4wPj05MDA3MTk5KXtNPTE4O2JyZWFrIGV9fWZvcihNPTAsSGU9ayxrPWsrMTI3fDA7az0wfHpsKDB8KGs9MHxabygwfGFbKEc9a3QrKChSPTEyNyZrKTw8Mil8MCk+PjJdLDAsMjkpKSwwfERuLDB8TSwwKSwoTT1Ebik+Pj4wPjB8MD09KDB8TSkmaz4+PjA+MWU5PyhLPTB8aXco''@;'; + put 'put ''MHxrLDB8TSwxZTksMCksaz0wfG5TKDB8aywwfE0sMWU5LDApKTpLPTAsYVtHPj4yXT1rLEhlPTA9PSgwfGspJigxXigoMHxSKSE9KEhlKzEyNyYxMjd8MCl8KGw9KDB8Uik9PSgwfEQpKSkpP1I6SGUsIWw7KU09SyxrPVIrLTF8MDtpZihjPWMrLTI5fDAsMHxLKWJyZWFrO2s9SGV9az1IZSsx''@;'; + put 'put ''MjcmMTI3LE09a3QrKChIZSsxMjYmMTI3KTw8Mil8MCwoMHwoRD1EKzEyNyYxMjcpKT09KDB8SGUpP2FbTT4+Ml09YVtNPj4yXXxhW2t0KyhrPDwyKT4+Ml06az1IZSxhW2t0KyhEPDwyKT4+Ml09SyxWZT1WZSs5fDB9ZTpmb3IoOzspe2ZvcihSZT1rKzEmMTI3LEhlPWt0KygoaysxMjcmMTI3''@;'; + put 'put ''KTw8Mil8MDs7KXtmb3IoSz0xOD09KDB8TSksTGU9KDB8TSk+Mjc/OToxLFZlPUQ7Oyl7Zm9yKEc9MDs7KXtpZigoMHwoRD1HK1ZlJjEyNykpPT0oMHxrKSl7U3Q9MixxZT04ODticmVha31pZigoRD0wfGFba3QrKEQ8PDIpPj4yXSk+Pj4wPChSPTB8YVs2Mzc0NCsoRzw8Mik+PjJdKT4+PjAp''@;'; + put 'put ''e1N0PTIscWU9ODg7YnJlYWt9aWYoRD4+PjA+Uj4+PjApYnJlYWs7aWYoRD1HKzF8MCwhKCgwfEcpPDEpKXtTdD1ELHFlPTg4O2JyZWFrfUc9RH1pZig4OD09KDB8cWUpJiYocWU9MCxLJjI9PSgwfFN0KSkpe3c9MCxSPTA7YnJlYWsgZX1pZihjPUxlK2N8MCwoMHxWZSkhPSgwfGspKWJyZWFr''@;'; + put 'put ''O1ZlPWt9Sz0oMTw8TGUpLTF8MCxPZT0xZTk+Pj5MZSxHPTAsRD1WZSxSPVZlO2Rve2FbKFdlPWt0KyhSPDwyKXwwKT4+Ml09bD0oKG90PTB8YVtXZT4+Ml0pPj4+TGUpK0d8MCxHPTB8QXIob3QmSyxPZSksTT0obD0oMHxSKT09KDB8RCkmMD09KDB8bCkpP00rLTl8MDpNLEQ9bD9EKzEmMTI3''@;'; + put 'put ''OkQsUj1SKzEmMTI3fXdoaWxlKCgwfFIpIT0oMHxrKSk7aWYoRyl7aWYoKDB8UmUpIT0oMHxEKSlicmVhazthW0hlPj4yXT0xfGFbSGU+PjJdfX1hW2t0KyhrPDwyKT4+Ml09RyxrPVJlfWRve009aysxJjEyNywoMHwoRD1SK1ZlJjEyNykpPT0oMHxrKSYmKGFba3QrKE0rLTE8PDIpPj4yXT0w''@;'; + put 'put ''LGs9TSksdz0xZTkqdysgKygoMHxhW2t0KyhEPDwyKT4+Ml0pPj4+MCksUj1SKzF8MH13aGlsZSgyIT0oMHxSKSk7aWYoYj13KihiZT0rKDB8bSkpLCgwfChEPShLPSgwfChHPShSPWMrNTN8MCktcHwwKSk8KDB8ZikpPygwfEcpPjA/RzowOmYpKTw1Mz8oZ2U9Y3Q9K2EkKCt2ZygxLDEwNS1E''@;'; + put 'put ''fDApLGIpLHc9cGU9K3MkKGIsK3ZnKDEsNTMtRHwwKSkscGU9Y3QrKGItcGUpKTooZ2U9MCx3PTAscGU9YiksKDB8KE09VmUrMiYxMjcpKSE9KDB8aykpe009MHxhW2t0KyhNPDwyKT4+Ml07ZG97aWYoTT4+PjA+PTVlOCl7aWYoNWU4IT0oMHxNKSl7dz0uNzUqYmUrdzticmVha31pZigoVmUr''@;'; + put 'put ''MyYxMjd8MCk9PSgwfGspKXt3PS41KmJlK3c7YnJlYWt9dz0uNzUqYmUrdzticmVha31pZigwPT0oMHxNKSYmKFZlKzMmMTI3fDApPT0oMHxrKSlicmVhazt3PS4yNSpiZSt3fXdoaWxlKDApO2I9KDUzLUR8MCk+MSYmMD09K3MkKHcsMSk/dysxOnd9ZWxzZSBiPXc7dz1wZStiLWdlO2Rve2lm''@;'; + put 'put ''KCgyMTQ3NDgzNjQ3JlJ8MCk+KC0yLWx0fDApKXtpZih3PShsdD0hKCtlbygrdyk+PTkwMDcxOTkyNTQ3NDA5OTIpKT93Oi41KncsKDUwKyhjPWMrKDEmKDFebHQpKXwwKXwwKTw9KDB8RXQpJiYhKDAhPWImSyYoKDB8RCkhPSgwfEcpfGx0KSkpYnJlYWs7YVs0NzY0M109MzR9fXdoaWxlKDAp''@;'; + put 'put ''O3c9K2wkKHcsYyl9fXdoaWxlKDApO3JldHVybiBhZT1adCwrd31mdW5jdGlvbiBJJChsLGMpe2N8PTA7dmFyIEEsZj0wLHA9MCxtPTAsdz0wO3N3aXRjaCgoZj0wfGFbKEE9NCsobHw9MCl8MCk+PjJdKT4+PjA8KDB8YVsodz1sKzEwMHwwKT4+Ml0pPj4+MD8oYVtBPj4yXT1mKzEsZj0wfEp0''@;'; + put 'put ''W2Y+PjBdKTpmPTB8SWwobCksMHxmKXtjYXNlIDQzOmNhc2UgNDU6cD00NT09KDB8ZikmMSwoZj0wfGFbQT4+Ml0pPj4+MDwoMHxhW3c+PjJdKT4+PjA/KGFbQT4+Ml09ZisxLGY9MHxKdFtmPj4wXSk6Zj0wfElsKGwpLDAhPSgwfGMpJihmKy00OHwwKT4+PjA+OSYmMCE9KDB8YVt3Pj4yXSkm''@;'; + put 'put ''JihhW0E+PjJdPSgwfGFbQT4+Ml0pLTEpO2JyZWFrO2RlZmF1bHQ6cD0wfWlmKChmKy00OHwwKT4+PjA+OSkwfGFbdz4+Ml0/KGFbQT4+Ml09KDB8YVtBPj4yXSktMSxwPS0yMTQ3NDgzNjQ4LGY9MCk6KHA9LTIxNDc0ODM2NDgsZj0wKTtlbHNle209MDtkb3ttPWYrLTQ4KygxMCptfDApfDAs''@;'; + put 'put ''KGY9MHxhW0E+PjJdKT4+PjA8KDB8YVt3Pj4yXSk+Pj4wPyhhW0E+PjJdPWYrMSxmPTB8SnRbZj4+MF0pOmY9MHxJbChsKX13aGlsZSgoZistNDh8MCk+Pj4wPDEwJigwfG0pPDIxNDc0ODM2NCk7aWYoYz0oKDB8bSk8MCk8PDMxPj4zMSwoZistNDh8MCk+Pj4wPDEwKWRve2M9MHxydygwfG0s''@;'; + put 'put ''MHxjLDEwLDApLG09RG4sZj0wfHpsKDB8ZiwoKDB8Zik8MCk8PDMxPj4zMXwwLC00OCwtMSksbT0wfHpsKDB8ZiwwfERuLDB8YywwfG0pLGM9RG4sKGY9MHxhW0E+PjJdKT4+PjA8KDB8YVt3Pj4yXSk+Pj4wPyhhW0E+PjJdPWYrMSxmPTB8SnRbZj4+MF0pOmY9MHxJbChsKX13aGlsZSgoZist''@;'; + put 'put ''NDh8MCk+Pj4wPDEwJigoMHxjKTwyMTQ3NDgzNnwyMTQ3NDgzNj09KDB8YykmbT4+PjA8MjA2MTU4NDMwMikpO2lmKChmKy00OHwwKT4+PjA8MTApZG97KGY9MHxhW0E+PjJdKT4+PjA8KDB8YVt3Pj4yXSk+Pj4wPyhhW0E+PjJdPWYrMSxmPTB8SnRbZj4+MF0pOmY9MHxJbChsKX13aGlsZSgo''@;'; + put 'put ''ZistNDh8MCk+Pj4wPDEwKTswfGFbdz4+Ml0mJihhW0E+PjJdPSgwfGFbQT4+Ml0pLTEpLHc9MCE9KDB8cCksZj0wfFNwKDAsMCwwfG0sMHxjKSxwPXc/RG46YyxmPXc/ZjptfXJldHVybiBEbj1wLDB8Zn1mdW5jdGlvbiBuMyhsLGMsZil7cmV0dXJuIDB8ZnVuY3Rpb24gamNlKGwsYyxmKXtj''@;'; + put 'put ''fD0wLGZ8PTA7cmV0dXJuKDB8YVs3NisobHw9MCk+PjJdKT4tMT8oITAsYz0wfEQkKGwsYyxmKSk6Yz0wfEQkKGwsYyxmKSwwfGN9KGx8PTAsY3w9MCxmfD0wKX1mdW5jdGlvbiBEJChsLGMsZil7dmFyIHAsbTtyZXR1cm4gbHw9MCxjfD0wLDE9PSgwfChmfD0wKSkmJihjPWMtKDB8YVtsKzg+''@;'; + put 'put ''PjJdKSsoMHxhW2wrND4+Ml0pfDApLCgwfGFbKHA9bCsyMHwwKT4+Ml0pPj4+MD4oMHxhWyhtPWwrMjh8MCk+PjJdKT4+PjAmJihtaVs2MyZhW2wrMzY+PjJdXShsLDAsMCksMD09KDB8YVtwPj4yXSkpP2M9LTE6KGFbbCsxNj4+Ml09MCxhW20+PjJdPTAsYVtwPj4yXT0wLCgwfG1pWzYzJmFb''@;'; + put 'put ''bCs0MD4+Ml1dKGwsYyxmKSk8MD9jPS0xOihhW2wrOD4+Ml09MCxhW2wrND4+Ml09MCxhW2w+PjJdPS0xNyZhW2w+PjJdLGM9MCkpLDB8Y31mdW5jdGlvbiByMyhsKXtsfD0wO2Zvcih2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7bT1sKzF8MCwwfCRjKGM9KHA9MHxmZVtsPj4wXSk8PDI0''@;'; + put 'put ''Pj4yNCk7KWw9bTtzd2l0Y2goMHxjKXtjYXNlIDQ1Omw9MSxBPTU7YnJlYWs7Y2FzZSA0MzpsPTAsQT01O2JyZWFrO2RlZmF1bHQ6dz0wLGY9bCxsPXB9aWYoNT09KDB8QSkmJih3PWwsZj1tLGw9MHxmZVttPj4wXSksKGM9KGw8PDI0Pj4yNCktNDh8MCk+Pj4wPDEwKXtsPTA7ZG97bD0oMTAq''@;'; + put 'put ''bHwwKS1jfDAsYz0oMHxmZVsoZj1mKzF8MCk+PjBdKS00OHwwfXdoaWxlKGM+Pj4wPDEwKX1lbHNlIGw9MDtyZXR1cm4gMHwoMHx3P2w6MC1sfDApfWZ1bmN0aW9uIGtwKGwpe3JldHVybisgK2kzKGx8PTAsMCl9ZnVuY3Rpb24gaTMobCxjKXtyZXR1cm4rICtmdW5jdGlvbiBaY2UobCxjLGYp''@;'; + put 'put ''e2x8PTAsY3w9MCxmfD0wO3ZhciBwLHcsYixtPTAsQT0wO2I9YWUsYWU9YWUrMTI4fDAsQT0obT13PWIpKzEyNHwwO2Rve2FbbT4+Ml09MCxtPW0rNHwwfXdoaWxlKCgwfG0pPCgwfEEpKTtyZXR1cm4gYVsobT13KzR8MCk+PjJdPWwsYVsoQT13Kzh8MCk+PjJdPS0xLGFbdys0ND4+Ml09bCxh''@;'; + put 'put ''W3crNzY+PjJdPS0xLGNoKHcsMCkscD0rVCQodyxmLDEpLGY9KDB8YVttPj4yXSktKDB8YVtBPj4yXSkrKDB8YVt3KzEwOD4+Ml0pfDAsMHxjJiYoYVtjPj4yXT0wfGY/bCtmfDA6bCksYWU9YiwrcH0obHw9MCxjfD0wLDEpfWZ1bmN0aW9uIHR3KGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAs''@;'; + put 'put ''cHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MDtlOmRve2lmKGYpZm9yKGI9Yzs7KXtpZihjPWIrKDB8QXIodz1mPj4+MSxwKSl8MCwhKEE9MHxCaVsxMjcmbV0obCxjKSkpYnJlYWsgZTtpZigxPT0oMHxmKSl7Yz0wO2JyZWFrIGV9aWYoIShmPShBPSgwfEEpPDApP3c6Zi13fDApKXtjPTA7YnJl''@;'; + put 'put ''YWt9Yj1BP2I6Y31lbHNlIGM9MH13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIG53KGwpe2FbNDY2NTJdPShsfD0wKS0xLGFbNDY2NTNdPTB9ZnVuY3Rpb24gVDEoKXt2YXIgbD0wLGM9MDtyZXR1cm4gYz0wfHpsKDB8KGM9MHxydygwfGFbKGM9MTg2NjA4KT4+Ml0sMHxhW2MrND4+Ml0s''@;'; + put 'put ''MTI4NDg2NTgzNywxNDgxNzY1OTMzKSksMHxEbiwxLDApLGw9RG4sYVs0NjY1Ml09YyxhWzQ2NjUzXT1sLDB8d2woMHxjLDB8bCwzMyl9ZnVuY3Rpb24gSWoobCl7dmFyIGMsZjtsfD0wLGM9YWUsYWU9YWUrMTZ8MCxydFsoZj1jKT4+MV09MTMwNzAscnRbZisyPj4xXT1sLHJ0W2YrND4+MV09''@;'; + put 'put ''bD4+PjE2LGZ1bmN0aW9uIEdjZShsKXtsfD0wLHJ0Wzk2ODc2XT0wfHJ0WzMyOTIyXSxydFs5Njg3N109MHxydFszMjkyM10scnRbOTY4NzhdPTB8cnRbMzI5MjRdLHJ0WzMyOTIyXT0wfHJ0W2w+PjFdLHJ0WzMyOTIzXT0wfHJ0W2wrMj4+MV0scnRbMzI5MjRdPTB8cnRbbCs0Pj4xXX0oZiks''@;'; + put 'put ''YWU9Y31mdW5jdGlvbiBxYygpe3JldHVybisgK2Z1bmN0aW9uIFdjZShsKXt2YXIgYz0wO3JldHVybiBjPTB8Wm8oMHwoYz0wfGZ1bmN0aW9uIHpjZShsLGMpe3ZhciBwLG0sZjtyZXR1cm4gYz0wfHpsKDB8cncoKDB8aHJbMisoY3w9MCk+PjFdKTw8MTZ8MHxocltjPj4xXXwwLDB8aHJbYys0''@;'; + put 'put ''Pj4xXSwoMHxoclsobT0yKyhsfD0wKXwwKT4+MV0pPDwxNnwwfGhyW2w+PjFdfDAsMHxoclsocD1sKzR8MCk+PjFdKSwwfERuLDB8aHJbYys2Pj4xXSwwKSxmPURuLHJ0W2w+PjFdPWMsbD0wfHdsKDB8YywwfGYsMTYpLHJ0W20+PjFdPWwscnRbcD4+MV09ZixEbj02NTUzNSZmLDB8Y30obHw9''@;'; + put 'put ''MCw2NTg1MCkpLDB8RG4sNCksbD0xMDcyNjkzMjQ4fERuLGFbU2k+PjJdPWMsYVtTaSs0Pj4yXT1sLCsoK19bU2k+PjNdLTEpfSg2NTg0NCl9ZnVuY3Rpb24gTCQobCxjKXtyZXR1cm4gY3w9MCwobHw9MCk/KGFbYz4+Ml09MCxhW2MrND4+Ml09MCxhW2MrOD4+Ml09MCxhW2MrMTI+PjJdPTAs''@;'; + put 'put ''YVtjKzE2Pj4yXT0wLGFbYysyMD4+Ml09MCk6Yz0wfHNoKDEsMjQpLDB8Y31mdW5jdGlvbiB3ZyhsKXt2YXIgYz0wLGY9MDtpZigwfChjPTB8YVsobHw9MCk+PjJdKSlkb3tGdCgwfGFbYz4+Ml0pLGY9YyxjPTB8YVtjKzQ+PjJdLEZ0KGYpfXdoaWxlKDAhPSgwfGMpKTtGdChsKX1mdW5jdGlv''@;'; + put 'put ''biBYMShsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wLGs9MCxNPTA7dz0xNisobHw9MCl8MDtlOmRve2lmKDB8YVt3Pj4yXSljPTA7ZWxzZXtpZigoQT0wfGFbKE09bCsxMnwwKT4+Ml0pPj4+MDxtPj4+MCl7ZG97aWYoYyl7aWYoZil7YVsodz1sKzh8MCk+''@;'; + put 'put ''PjJdPWYsQT0xMDI0LGM9ZjticmVha31hW3c+PjJdPTEsYz0wO2JyZWFrIGV9aWYoQT0oQT1tPDwzKT4+PjA+MTAyND9BOjEwMjQsIShrPTB8QjAoOCkpKXthW3c+PjJdPTEsYz0wO2JyZWFrIGV9aWYoYz0wfEIwKEEpLGFbaz4+Ml09YyxmPWMsIWMpe0Z0KGspLGFbdz4+Ml09MSxjPTA7YnJl''@;'; + put 'put ''YWsgZX1hW2srND4+Ml09MCwwfChiPTB8YVsodz1sKzR8MCk+PjJdKSYmKGFbYis0Pj4yXT1rKSwwfGFbbD4+Ml18fChhW2w+PjJdPWspLGFbdz4+Ml09ayxhWyh3PWwrOHwwKT4+Ml09Zn13aGlsZSgwKTthW00+PjJdPUF9ZWxzZSBmPWM9MHxhWyh3PWwrOHwwKT4+Ml07YVt3Pj4yXT1jKyhm''@;'; + put 'put ''PSgwPT0oMHwoZj1mK20mMykpPzA6NC1mfDApK218MCksYVtNPj4yXT1BLWYscCYmdTIoMHxjLDAsMHxmKX19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBEaihsKXtGdCgwfGFbMTYrKGx8PTApPj4yXSksRnQobCl9ZnVuY3Rpb24gUWNlKGwpe3ZhciBHLEsscGUsZ2UsYmUsT2UsYz0w''@;'; + put 'put ''LGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MDtPZT1hZSxhZT1hZSsxNnwwLEc9T2UrNHwwLEs9T2UscGU9MSZhWzMyKyhsfD0wKT4+Ml0sZj0wfGFbKGdlPWwrMTZ8MCk+PjJdLGM9MHxRYShiZT0wfGFbbCs0Pj4yXSwwKTtlOmRve2lmKCFjKXtNPTAhPSgwfHBlKSxE''@;'; + put 'put ''PWwrOHwwLFI9bCsxMnwwLGM9MCxrPTE7dDpmb3IoOzspe209MCxBPWMscD0wO246Zm9yKDs7KXtpZihjPTB8ZmVbZj4+MF0sTSl7aWYoYzw8MjQ+PjI0PT00MClicmVhaztiPTAhPSgwfEEpJmM8PDI0Pj4yND09NDE/MTM6MTR9ZWxzZSBpZihjPDwyND4+MjQ9PTkyKXN3aXRjaCgwfGZlW2Yr''@;'; + put 'put ''MT4+MF0pe2Nhc2UgNDA6YnJlYWsgbjtjYXNlIDQxOmI9MTM7YnJlYWs7ZGVmYXVsdDpiPTE0fWVsc2UgYj0xNDtpZigxMz09KDB8Yikpe2lmKGI9MCx3PTB8dDEoMHxhW2w+PjJdLC0xLC0xLC0xKSxhW0Q+PjJdPXcsIXcpe2M9MTI7YnJlYWsgZX13PXB9ZWxzZSBpZigxND09KDB8Yikpe2lm''@;'; + put 'put ''KGI9MCwwfChjPTB8RiQobCxmKSkpYnJlYWsgZTt3PXAsZj0wfGFbUj4+Ml19cjpmb3IoOzspe2k6Zm9yKDs7KXtzd2l0Y2goKGM9MHxmZVtmPj4wXSk8PDI0Pj4yNCl7Y2FzZSA0MjpjYXNlIDkyOmJyZWFrO2RlZmF1bHQ6aWYoIU0pYnJlYWsgaTtzd2l0Y2goYzw8MjQ+PjI0KXtjYXNlIDEy''@;'; + put 'put ''MzpjYXNlIDYzOmNhc2UgNDM6YnJlYWs7ZGVmYXVsdDpicmVhayBpfX1pZihNJihjPWM8PDI0Pj4yND09OTIpKWJyZWFrO2lmKHA9ZisxfDAsYylzd2l0Y2goMHxmZVtwPj4wXSl7Y2FzZSAxMjM6Y2FzZSA2MzpjYXNlIDQzOmJyZWFrO2RlZmF1bHQ6YnJlYWsgaX1pZihmPWM/cDpmLCFNJiYo''@;'; + put 'put ''MHxmKT09KDErKDB8YVtnZT4+Ml0pfDApJiY5ND09KDB8ZmVbZistMT4+MF0pKWJyZWFrO2lmKDEyMz09KDB8ZmVbZj4+MF0pKXtpZighKGY9MHwkY2UoZisxfDAscGUsRyxLKSkpe2I9Mjg7YnJlYWsgdH1wPTB8YVtsPj4yXSwoYz0wfGFbSz4+Ml0pP2I9MzY6Yz0wfHQxKHAsLTEsLTEsLTEp''@;'; + put 'put ''fWVsc2UgYVtHPj4yXT0wLGFbSz4+Ml09LTEsKGM9MHxmZVtmPj4wXSk8PDI0Pj4yND09NDMmJihhW0c+PjJdPTEsYz0wfGZlW2Y+PjBdKSxjPDwyND4+MjQ9PTYzPyhhW0s+PjJdPTEsYz0xKTpjPS0xLGY9ZisxfDAscD0wfGFbbD4+Ml0sYj0zNjtpZigzNj09KDB8YikmJihiPTAsYz0wfE9q''@;'; + put 'put ''KHAsMHxhW0Q+PjJdLDB8YVtHPj4yXSxjLDApKSxhW0Q+PjJdPWMsIWMpe2M9MTI7YnJlYWsgZX19Yz0wfHU5KDB8YVtsPj4yXSxtLDB8YVtEPj4yXSkscD0wfGZlW2Y+PjBdO2k6ZG97aWYoTSl7aWYocDw8MjQ+PjI0PT0xMjQpe2I9NDA7YnJlYWsgcn1pZighKDAhPSgwfEEpJnA8PDI0Pj4y''@;'; + put 'put ''ND09NDF8cDw8MjQ+PjI0PT0wKSl7bT1jLHA9dztjb250aW51ZSBufWI9NDd9ZWxzZXtzd2l0Y2gocDw8MjQ+PjI0KXtjYXNlIDA6Yj00NzticmVhayBpO2Nhc2UgOTI6YnJlYWs7ZGVmYXVsdDptPWMscD13O2NvbnRpbnVlIG59c3dpdGNoKDB8ZmVbZisxPj4wXSl7Y2FzZSAxMjQ6Y2FzZSA0''@;'; + put 'put ''MTpicmVhaztkZWZhdWx0Om09YyxwPXc7Y29udGludWUgbn1pZihjPTB8YmcoMHxhW2w+PjJdLHcsYyksMTI0PT0oMHxmZVtmKzE+PjBdKSl7cD0yO2JyZWFrIHJ9aWYoIUEpe2M9ODticmVhayBlfWY9ZisyfDAscD05Mn19d2hpbGUoMCk7aWYoNDc9PSgwfGIpJiYoYj0wLGM9MHxiZygwfGFb''@;'; + put 'put ''bD4+Ml0sdyxjKSxmPXA8PDI0Pj4yND09NDE/ZisxfDA6ZiksMHwoYz0wfHFjZShsLGMsMHxCZihiZSkpKSlicmVhayBlO2lmKGM9cDw8MjQ+PjI0PT0wLChwPSgwfEEpPDEpJmMpe2I9NTA7YnJlYWsgdH1pZihwfGMpe2M9ODticmVhayBlfW09MHxmaChiZSksQT1BKy0xfDAsdz0wfGZoKGJl''@;'; + put 'put ''KX00MD09KDB8YikmJihwPTEsYz0wfGJnKDB8YVtsPj4yXSx3LGMpKSxtPTAsZj1mK3B8MCxwPWN9aWYoMHwoYz0wfEVsKGJlLHApKXx8MHwoYz0wfEVsKGJlLG0pKXx8MHwoYz0wfFFhKGJlLGspKSlicmVhayBlO2M9QSsxfDAsaz1rKzF8MCxmPU0/ZisxfDA6ZisyfDB9aWYoMjg9PSgwfGIp''@;'; + put 'put ''KXtjPTEwO2JyZWFrfWlmKDUwPT0oMHxiKSl7YVtsKzIwPj4yXT1rLGM9MDticmVha319fXdoaWxlKDApO3JldHVybiBhZT1PZSwwfGN9ZnVuY3Rpb24gTyQobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIFZlLHFlLG50LG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9''@;'; + put 'put ''MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFdlPTA7VmU9MHxlZihjfD0wKSwocWU9MD09KDB8bCl8MD09KDB8cCkpfHwoYVtwKzQ4Pj4yXT0wLGFbYVtwKzM2Pj4yXT4+Ml09LTEpLG50PTB8QjAoOCsoKEE9MHxhW3ArMjg+PjJdKTw8Myl8MCk7ZG97aWYobnQpe2lmKGFb''@;'; + put 'put ''bnQ+PjJdPS0xLCEoV2U9MHxCMCg0KyhBPDwyKXwwKSkpe0Z0KG50KSxtPTEyO2JyZWFrfWZvcihhW1dlPj4yXT0tMSxtPTA7IShtPj4+MD5BPj4+MCk7KW09bSsxfDA7RWwoYyxmKSxtPTB8UWEoYywwKTtlOmRve2lmKDAhPSgwfG0pfCgwfGVmKGMpKTw9KDB8VmUpKWY9bnQsUj0wLEE9MCxE''@;'; + put 'put ''PTAsTT0tMTtlbHNlIGZvcihMZT1wKzMyfDAsUmU9cCszNnwwLEhlPXArMTZ8MCxmPW50LFI9MCxBPTAsRD0wLE9lPTEsTT0tMSxiZT0wOzspe3Q6ZG97c3dpdGNoKDB8QmYoYykpe2Nhc2UgNjp3PTB8QmYoYyksbT0wO2Rve2I9ZisobTw8Mil8MCxtPW0rMXwwfXdoaWxlKCgwfGFbYj4+Ml0p''@;'; + put 'put ''Pi0xKTtmb3IoYVtiPj4yXT13PDwxfDEsYVtmKyhtPDwyKT4+Ml09LTEsbT0wOygwfGFbV2UrKG08PDIpPj4yXSk+LTE7KW09bSsxfDA7YVtXZSsobSstMTw8Mik+PjJdPS0xLG09MCxiPU9lLHc9YmU7YnJlYWs7Y2FzZSAwOmlmKHBlPTB8ZmgoYyksKDB8KGI9MHxhWyhnZT1wZSsxMnwwKT4+''@;'; + put 'put ''Ml0pKT4tMSl7bT0wO2Rve3c9ZisobTw8Mil8MCxtPW0rMXwwfXdoaWxlKCgwfGFbdz4+Ml0pPi0xKTtpZihhW3c+PjJdPWI8PDEsYVtmKyhtPDwyKT4+Ml09LTEsIXFlKXtmb3IobT0wOygwfGFbV2UrKG08PDIpPj4yXSk+LTE7KW09bSsxfDA7aWYoYVsodz0oMHxhW0hlPj4yXSkrKDEyKmJ8''@;'; + put 'put ''MCkrOHwwKT4+Ml09MCwoMHxtKT4wKXtpZighKG09MHxCMCg0KyhtPDwyKXwwKSkpe209MTIsYj1PZSx3PWJlO2JyZWFrIHR9aWYoYVt3Pj4yXT1tLCgwfCh3PTB8YVtXZT4+Ml0pKT4tMSl7az0wLGI9bTtkb3thW2I+PjJdPXcsdz0wfGFbV2UrKChrPWsrMXwwKTw8Mik+PjJdLGI9bSsoazw8''@;'; + put 'put ''Mil8MH13aGlsZSgoMHx3KT4tMSk7bT1ifWFbbT4+Ml09LTF9fWlmKDB8KG09MHxRYShjLDB8YVtnZT4+Ml0pKSl7Yj1PZSx3PWJlO2JyZWFrIHR9aWYoMHwobT0wfFFhKGMsNikpKXtiPU9lLHc9YmU7YnJlYWsgdH19bjpkb3tzd2l0Y2goMHxhW3BlPj4yXSl7Y2FzZSAwOmlmKCgwfChLPTB8''@;'; + put 'put ''YVthW3BlKzQ+PjJdPj4yXSkpPi0xfC00PT0oMHxLKSYmKDB8YVtmPj4yXSk+LTEpe2lmKHFlKWFbcGUrMjA+PjJdPTEsbT0wO2Vsc2V7aWYobT0wfFJqKGwscGUsRCksYVsoMHxhW0xlPj4yXSkrKEQ8PDIpPj4yXT1iZSwoMHxNKT4tMSl7Zm9yKGI9MHxhW1JlPj4yXSx3PTA7Rz13KzF8MCwo''@;'; + put 'put ''MHxhWyhrPWIrKHc8PDIpfDApPj4yXSk+LTE7KXc9RzthW2s+PjJdPUQsYVtiKyhHPDwyKT4+Ml09TSxhW2IrKHcrMjw8Mik+PjJdPS0xLEE9QSsxfDAsTT0tMX1rTChmLHAsRCl9YVtmPj4yXT0tMSxLPU9lKzF8MCxHPWJlLFI9UisxfDAsRD1PZX1lbHNlIEs9T2UsbT0wLEc9YmU7YnJlYWs7''@;'; + put 'put ''Y2FzZSAxOms9MHxhWyhiPTB8YVtwZSs0Pj4yXSk+PjJdLGI9MHxhW2IrND4+Ml0sKG09MHxFbChjLHBlKSl8fChtPTB8UWEoYyw1KSl8fChtPTB8RWwoYyxiKSl8fChtPTB8UWEoYywwKSl8fChtPTB8UWEoYywoMHxhWyh3PWsrMjB8MCk+PjJdKStPZXwwKSk/KEs9T2UsRz1iZSk6KCgwfGFb''@;'; + put 'put ''dz4+Ml0pPjA/KG09KHc9KDB8YVtiKzIwPj4yXSk+MCk/T2U6LTEsdz1PZSsoMSZ3KXwwKToobT0tMSx3PU9lKSwobT0wfFFhKGMsbSkpfHwobT0wfFFhKGMsNCkpfHwobT0wfEVsKGMsaykpPyhLPXcsRz1iZSk6KEs9dyxtPTB8UWEoYywwKSxHPWJlKSk7YnJlYWs7Y2FzZSAyOmlmKHc9MHxh''@;'; + put 'put ''W3BlKzQ+PjJdLHFlKXtpZigwfChtPTB8UWEoYywxJihtPSgwfGFbZj4+Ml0pPi0xPzE6MCE9KDEmZmVbdysxMj4+MF0pKSkpKXtLPU9lLEc9YmU7YnJlYWsgbn19ZWxzZXtpZigwfChtPTB8UWEoYyxEKSkpe0s9T2UsRz1iZTticmVhayBufWlmKDB8KG09MHxRYShjLDEmZmVbdysxMj4+MF0p''@;'; + put 'put ''KSl7Sz1PZSxHPWJlO2JyZWFrIG59fWlmKG09MHxFbChjLHBlKSlLPU9lLEc9YmU7ZWxzZSBpZihtPTB8UWEoYywxKSlLPU9lLEc9YmU7ZWxzZSBpZihtPTB8RWwoYywwfGFbdz4+Ml0pKUs9T2UsRz1iZTtlbHNlIGlmKG09MHxRYShjLDApKUs9T2UsRz1iZTtlbHNle2lmKCgwfGFbZj4+Ml0p''@;'; + put 'put ''PD0tMSYmMD09KDEmZmVbdysxMj4+MF0pKXtLPU9lLG09MCxHPTA7YnJlYWsgbn1pZihxZSltPTA7ZWxzZXtpZihtPTB8UmoobCxwZSxEKSxhWygwfGFbTGU+PjJdKSsoRDw8Mik+PjJdPTA9PSgxJmZlW3crMTI+PjBdKT9iZToxLCgwfE0pPi0xKXtmb3IoYj0wfGFbUmU+PjJdLHc9MDtHPXcr''@;'; + put 'put ''MXwwLCgwfGFbKGs9Yisodzw8Mil8MCk+PjJdKT4tMTspdz1HO2Fbaz4+Ml09RCxhW2IrKEc8PDIpPj4yXT1NLGFbYisodysyPDwyKT4+Ml09LTEsQT1BKzF8MCxNPS0xfWtMKGYscCxEKX1hW2Y+PjJdPS0xLEs9T2UrMXwwLEc9MCxSPVIrMXwwLEQ9T2V9YnJlYWs7Y2FzZSAzOmlmKGs9MHxh''@;'; + put 'put ''WyhiPTB8YVtwZSs0Pj4yXSk+PjJdLGI9MHxhW2IrND4+Ml0sSz1PZSsxfDAsbT0wfFFhKGMsKHc9KDB8YVtmPj4yXSk+LTEpP0s6T2UpKUs9T2UsRz1iZTtlbHNlIGlmKG09MHxRYShjLHc/T2U6RCkpSz1PZSxHPWJlO2Vsc2UgaWYobT0wfEVsKGMsZikpSz1PZSxHPWJlO2Vsc2UgaWYobT0w''@;'; + put 'put ''fFFhKGMsKDB8YVtmPj4yXSk+Pj4zMV4xKSlLPU9lLEc9YmU7ZWxzZSBpZihtPTB8RWwoYyxwZSkpSz1PZSxHPWJlO2Vsc2UgaWYobT0wfEVsKGMsYikpSz1PZSxHPWJlO2Vsc2UgaWYobT0wfEVsKGMsaykpSz1PZSxHPWJlO2Vsc2UgaWYobT0wfFFhKGMsMykpSz1PZSxHPWJlO2Vsc2UgaWYo''@;'; + put 'put ''bT0wfEVsKGMsYikpSz1PZSxHPWJlO2Vsc2UgaWYobT0wfFFhKGMsMCkpSz1PZSxHPWJlO2Vsc2V7aWYoMHwobT0wfFFhKGMsMikpKXtLPU9lLEc9YmU7YnJlYWsgbn1pZigwfChtPTB8RWwoYyxrKSkpe0s9T2UsRz1iZTticmVhayBufWlmKDB8KG09MHxRYShjLDApKSl7Sz1PZSxHPWJlO2Jy''@;'; + put 'put ''ZWFrIG59aWYoKDB8YVtmPj4yXSk+LTEpe2lmKHFlKW09MDtlbHNle2lmKG09MHxSaihsLHBlLEQpLGFbKDB8YVtMZT4+Ml0pKyhEPDwyKT4+Ml09YmUsKDB8TSk+LTEpe2ZvcihiPTB8YVtSZT4+Ml0sdz0wO0c9dysxfDAsKDB8YVsoaz1iKyh3PDwyKXwwKT4+Ml0pPi0xOyl3PUc7YVtrPj4y''@;'; + put 'put ''XT1ELGFbYisoRzw8Mik+PjJdPU0sYVtiKyh3KzI8PDIpPj4yXT0tMSxBPUErMXwwLE09LTF9a0woZixwLEQpfWFbZj4+Ml09LTEsUj1SKzF8MCxEPU9lLHc9S31lbHNlIG09MCx3PU9lO0s9KE9lPSgwfGFbcGUrMTY+PjJdKT4wKT93KzJ8MDp3LEc9YmUsRD1PZT93KzF8MDpEfWJyZWFrO2Rl''@;'; + put 'put ''ZmF1bHQ6Sz1PZSxtPTAsRz1iZX19d2hpbGUoMCk7aWYoKDB8KGI9MHxhW2dlPj4yXSkpPi0xKXt3PTA7ZG97az1XZSsodzw8Mil8MCx3PXcrMXwwfXdoaWxlKCgwfGFbaz4+Ml0pPi0xKTthW2s+PjJdPWIsYVtXZSsodzw8Mik+PjJdPS0xLGI9Syx3PUd9ZWxzZSBiPUssdz1HO2JyZWFrO2Nh''@;'; + put 'put ''c2UgMTptPTB8ZmgoYykscWU/KHc9MHxhWzIwKygwfGFbYVttKzQ+PjJdPj4yXSk+PjJdLGFbbSsyMD4+Ml09KDB8QmYoYykpK3csdz0wLE09LTEpOihwZT0wfEJmKGMpLGdlPTB8QmYoYyksdz1wZSxNPTA9PSgwfHBlKT9NOmdlKSxtPTAsYj1PZSx3PXFlP2JlOjA9PSgwfHcpJjE7YnJlYWs7''@;'; + put 'put ''Y2FzZSA0Onc9MHxCZihjKSxiPTB8QmYoYyksbT0wLEQ9KDB8dyk+LTE/dzpELHc9YmU7YnJlYWs7Y2FzZSA1Om09MHxmaChjKSxxZT8oYVttKzIwPj4yXT0oMHxhWzIwKygwfGFbNCsoYj0wfGFbbSs0Pj4yXSk+PjJdKT4+Ml0pKygwfGFbMjArKDB8YVtiPj4yXSk+PjJdKSxtPTAsYj1PZSx3''@;'; + put 'put ''PWJlKToobT0wLGI9T2Usdz1iZSk7YnJlYWs7Y2FzZSAyOmZvcig7Oyl7aWYoISgoMHxhW2Y+PjJdKT4tMSkpe209MCxiPU9lLHc9YmU7YnJlYWt9Zj1mKzR8MH1icmVhaztjYXNlIDM6Yj0wfGZoKGMpLEc9MHxmaChjKSxtPTB8ZmgoYyksZj0wfEJmKGMpLHFlPyhhW20rMjA+PjJdPSgwfGFb''@;'; + put 'put ''MjArKDB8YVsoZ2U9MHxhW20rND4+Ml0pPj4yXSk+PjJdKStmKygwfGFbMjArKDB8YVtnZSs0Pj4yXSk+PjJdKSsoKDB8YVsoYmU9bSsxNnwwKT4+Ml0pPjA/MjowKSxtPWJlKTptPW0rMTZ8MCxmPTB8ZmgoYyksdz0wfEJmKGMpLGs9MHxCZihjKSwoMHxhW20+PjJdKT4wPyhxZT9tPTA6KG09''@;'; + put 'put ''MHxQJChsLGIsdyksYVsoMHxhW0xlPj4yXSkrKHc8PDIpPj4yXT0xLG18fChtPTB8UCQobCxHLGspKSxhWygwfGFbTGU+PjJdKSsoazw8Mik+PjJdPTEpLFI9UisyfDAsYj1PZSx3PTEpOihtPTAsYj1PZSx3PTEpO2JyZWFrO2RlZmF1bHQ6bT0wLGI9T2Usdz1iZX19d2hpbGUoMCk7aWYoMCE9''@;'; + put 'put ''KDB8bSl8KDB8ZWYoYykpPD0oMHxWZSkpYnJlYWsgZTtPZT1iLGJlPXd9fXdoaWxlKDApO2lmKCFxZSYmKGtMKGYscCxEKSwoMHxNKT4tMSkpe2Zvcih3PTB8YVtwKzM2Pj4yXSxmPTA7az1mKzF8MCwoMHxhWyhiPXcrKGY8PDIpfDApPj4yXSk+LTE7KWY9azthW2I+PjJdPUQsYVt3KyhrPDwy''@;'; + put 'put ''KT4+Ml09TSxhW3crKGYrMjw8Mik+PjJdPS0xLEE9QSsxfDB9YVtwKzQ4Pj4yXT1SLGFbcCs0MD4+Ml09UixhW3ArNDQ+PjJdPUEsRnQobnQpLEZ0KFdlKX1lbHNlIG09MTJ9d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiBKY2UobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3Zh''@;'; + put 'put ''ciBPZSxMZSxSZSxxZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxIZT0wLFZlPTA7cWU9YWUsYWU9YWUrMTZ8MCxPZT1xZSsxMnwwLFZlPXFlKzh8MCxMZT1xZSs0fDAsUmU9cWUsSGU9MHxlZihjfD0wKSxhW09lPj4yXT0wLGFbVmU+PjJdPTAs''@;'; + put 'put ''Zj0wfEVsKGMsZik7ZTpkb3tpZighZiYmKGY9MHxRYShjLDApLCFmKSl7dDpkb3tpZigoMHxlZihjKSk+KDB8SGUpKXtBPTAsYj0wLGs9MDtuOmZvcig7Oyl7cGU9MHxCZihjKSxnZT0wfGZoKGMpO3I6ZG97c3dpdGNoKDB8cGUpe2Nhc2UgMDpzd2l0Y2goMHxhW2dlPj4yXSl7Y2FzZSAwOmlm''@;'; + put 'put ''KCEoKDB8KGdlPTB8YVsoZj0wfGFbZ2UrND4+Ml0pPj4yXSkpPi0xfC00PT0oMHxnZSkpKXtmPWs7YnJlYWsgcn1pZihhWyhnZT1mKzh8MCk+PjJdPWY9KDB8YVtnZT4+Ml0pK2t8MCwoMHxmKTw9KDB8YVtWZT4+Ml0pKXtmPWs7YnJlYWsgcn1hW1ZlPj4yXT1mLGY9azticmVhayByO2Nhc2Ug''@;'; + put 'put ''MzpjYXNlIDE6aWYoMHwoZj0wfEVsKGMsMHxhWzQrKHc9MHxhW2dlKzQ+PjJdKT4+Ml0pKXx8MHwoZj0wfFFhKGMsMCkpfHwwfChmPTB8RWwoYywwfGFbdz4+Ml0pKSlicmVhayB0O2JyZWFrO2Nhc2UgMjppZih3PTB8YVtnZSs0Pj4yXSwwfChmPTB8UWEoYyxrKSl8fDB8KGY9MHxFbChjLGdl''@;'; + put 'put ''KSl8fDB8KGY9MHxRYShjLDEpKXx8MHwoZj0wfEVsKGMsMHxhW3c+PjJdKSl8fDB8KGY9MHxRYShjLDApKSlicmVhayB0OygwfGFbdys0Pj4yXSk8PTEmJigwfGFbdys4Pj4yXSk8PTE/Zj1rOihhW09lPj4yXT0wLGY9MCksYj1iKzF8MDticmVhayByO2RlZmF1bHQ6Zj1rO2JyZWFrIHJ9aWYo''@;'; + put 'put ''Zj0wfFFhKGMsMCkpYnJlYWsgdDtmPWs7YnJlYWs7Y2FzZSAxOkc9MHxhWyhLPWdlKzR8MCk+PjJdLHBlPTB8QmYoYyksYVtPZT4+Ml09cGUsKDB8KGs9MHxhWyhSPUcrNHwwKT4+Ml0pKTw9MT8oMHxhW0crOD4+Ml0pPjE/KGFbTGU+PjJdPTAsKDB8ayk+MD9iZT0zMDooZj1wZSx3PTAsYmU9''@;'; + put 'put ''MzcpKTpmPXBlOihhW0xlPj4yXT0wLGJlPTMwKTtpOmRve2lmKDMwPT0oMHxiZSkpe2lmKGY9MHxDTChsLGMsMHxhW0c+PjJdLCgwfGspPjE/MToyLE9lLG0sUmUsVmUpKXtiZT0zNDticmVhayBufWZvcih3PTAsTT1wZSxEPTE7Oyl7aWYoZj0wfGFbUmU+PjJdLCEodz13PzB8dTkobCx3LGYp''@;'; + put 'put ''OmYpKXtmPTEyLGJlPTM0O2JyZWFrIG59aWYoKDB8RCk+PSgwfChrPTB8YVtSPj4yXSkpKXtmPU0sYmU9Mzc7YnJlYWsgaX1pZihNPTB8YVtPZT4+Ml0sMHwoZj0wfENMKGwsYywwfGFbRz4+Ml0sKDB8KEQ9RCsxfDApKTwoMHxrKT8xOjIsT2UsbSxSZSxWZSkpKXtiZT0zNDticmVhayBufX19''@;'; + put 'put ''fXdoaWxlKDApO2lmKDM3PT0oMHxiZSkpe2lmKGJlPTAsLTE9PSgwfChNPTB8YVsoUj1HKzh8MCk+PjJdKSkpe2lmKE09MHxhW09lPj4yXSwwfChmPTB8Q0wobCxjLDB8YVtHPj4yXSwwLE9lLDAsTGUsVmUpKSlicmVhayBuO2lmKGs9MHxPaihsLDB8YVtMZT4+Ml0sMCwtMSwwKSxhW0xlPj4y''@;'; + put 'put ''XT1rLCFrKXtmPTEyO2JyZWFrIG59Zj1NfWVsc2UgaWYoKDB8ayk8KDB8TSkpZm9yKE09ayxrPTA7Oyl7aWYoRD0wfGFbT2U+PjJdLDB8KGY9MHxDTChsLGMsMHxhW0c+PjJdLDAsT2UsMCxSZSxWZSkpKXtiZT00OTticmVhayBufWlmKGs/KGY9MHx1OShsLDB8YVtSZT4+Ml0sayksYVtMZT4+''@;'; + put 'put ''Ml09Zik6YVtMZT4+Ml09Zj0wfGFbUmU+PjJdLCFmKXtmPTEyLGJlPTQ5O2JyZWFrIG59aWYoIShrPTB8dDEobCwtMSwtMSwtMSkpKXtmPTEyLGJlPTQ5O2JyZWFrIG59aWYoaz0wfGJnKGwsayxmKSxhW0xlPj4yXT1rLCFrKXtmPTEyLGJlPTQ5O2JyZWFrIG59aWYoKDB8KE09TSsxfDApKT49''@;'; + put 'put ''KDB8YVtSPj4yXSkpe2Y9RDticmVha319ZWxzZSBrPTA7aWYoYVtPZT4+Ml09Zix3P2smJih3PTB8dTkobCx3LGspLGJlPTU0KToodz1rLGJlPTU0KSw1ND09KDB8YmUpJiYoYmU9MCwhdykpe2Y9MTI7YnJlYWsgbn1hW0s+PjJdPWFbdys0Pj4yXSxhW2dlPj4yXT1hW3c+PjJdfXc9Zi1wZStB''@;'; + put 'put ''fDAsKGI9YistMXwwKT9BPXc6KGFbT2U+PjJdPXcsQT13LGI9MCxmPXcpO2JyZWFrO2RlZmF1bHQ6Zj1rfX13aGlsZSgwKTtpZighKCgwfGVmKGMpKT4oMHxIZSkpKXtmPTA7YnJlYWsgdH1rPWZ9YnJlYWsgZX1mPTAsQT0wfXdoaWxlKDApO2FbcD4+Ml09KDB8KFZlPTB8YVtWZT4+Ml0pKT4o''@;'; + put 'put ''MHwoSGU9KDB8YVtwPj4yXSkrQXwwKSk/VmU6SGV9fXdoaWxlKDApO3JldHVybiBhZT1xZSwwfGZ9ZnVuY3Rpb24gdDEobCxjLGYscCl7dmFyIG07cmV0dXJuIGN8PTAsZnw9MCxwfD0wLChsPTB8dFMobHw9MCwwLG09MHxYMShsLDAsMCwxLDIwKSkpPyhhW20+PjJdPWMsYVttKzQ+PjJdPWYs''@;'; + put 'put ''YVttKzg+PjJdPXApOmw9MCwwfGx9ZnVuY3Rpb24gdTkobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wO3JldHVybihjfD0wKSYmKChsPTB8dFMobCwxLHA9MHxYMShsLDAsMCwxLDgpKSk/KGFbcD4+Ml09YyxhW3ArND4+Ml09ZixhW2wrMTY+PjJdPSgwfGFbZisxNj4+Ml0pKygwfGFbYysxNj4+''@;'; + put 'put ''Ml0pLGY9bCk6Zj0wKSwwfGZ9ZnVuY3Rpb24gWGNlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIGssTSxELEcscD0wLG09MCxBPTAsdz0wLGI9MCxSPTA7Rz1hZSxhZT1hZSsxNnwwLGs9Rys0fDAsTT1HLEQ9MHxlZihjfD0wKSxmPTB8RWwoYyxmKTtlOmRve2lmKCFmJiYoZj0wfFFhKGMsMCksIWYp''@;'; + put 'put ''KWlmKCgwfGVmKGMpKT4oMHxEKSl7dDpmb3IoOzspe3c9MHxCZihjKSxiPTB8ZmgoYyk7bjpkb3tzd2l0Y2goMHx3KXtjYXNlIDA6c3dpdGNoKDB8YVtiPj4yXSl7Y2FzZSAwOmlmKC00PT0oMHwobT0wfGFbKEE9MHxhW2IrND4+Ml0pPj4yXSkpKXtpZihhW2IrOD4+Ml09MCx3PTB8d0wobCww''@;'; + put 'put ''fGFbKGY9QSs4fDApPj4yXSwwLDExMTQxMTEsMCwwLC0xKSxhW2IrMjQ+PjJdPXcsIXcpe2Y9MTI7YnJlYWsgZX1pZih3PTB8d0wobCwwfGFbZj4+Ml0sMCwxMTE0MTExLDAsMCwwfGFbQSs0Pj4yXSksYVtiKzI4Pj4yXT13LHcpYnJlYWsgbjtmPTEyO2JyZWFrIGV9aWYoZj1iKzh8MCwoMHxt''@;'; + put 'put ''KTwwKXtpZihhW2Y+PjJdPTEsdz0wfEIkKGwpLGFbYisyND4+Ml09dywhdyl7Zj0xMjticmVhayBlfWlmKHc9MHxCJChsKSxhW2IrMjg+PjJdPXcsdylicmVhayBuO2Y9MTI7YnJlYWsgZX1pZihhW2Y+PjJdPTAsdz0wfHdMKGwsMHxhWyhmPUErOHwwKT4+Ml0sbSwwfGFbKHA9QSs0fDApPj4y''@;'; + put 'put ''XSwwLDAsLTEpLGFbYisyND4+Ml09dywhdyl7Zj0xMjticmVhayBlfWlmKHc9MHx3TChsLDB8YVtmPj4yXSwwfGFbQT4+Ml0sMHxhW3A+PjJdLDB8YVtBKzEyPj4yXSwwfGFbQSsxNj4+Ml0sLTEpLGFbYisyOD4+Ml09dyx3KWJyZWFrIG47Zj0xMjticmVhayBlO2Nhc2UgMzppZigwfChmPTB8''@;'; + put 'put ''RWwoYyxiKSl8fDB8KGY9MHxRYShjLDEpKXx8MHwoZj0wfEVsKGMsMHxhWzQrKDB8YVsocD1iKzR8MCk+PjJdKT4+Ml0pKXx8MHwoZj0wfFFhKGMsMCkpfHwwfChmPTB8RWwoYywwfGFbYVtwPj4yXT4+Ml0pKXx8KGY9MHxRYShjLDApKSlicmVhayBlO2JyZWFrIG47Y2FzZSAxOmlmKDB8KGY9''@;'; + put 'put ''MHxFbChjLGIpKXx8MHwoZj0wfFFhKGMsMikpfHwwfChmPTB8RWwoYywwfGFbNCsoMHxhWyhwPWIrNHwwKT4+Ml0pPj4yXSkpfHwwfChmPTB8UWEoYywwKSl8fDB8KGY9MHxFbChjLDB8YVthW3A+PjJdPj4yXSkpfHwoZj0wfFFhKGMsMCkpKWJyZWFrIGU7YnJlYWsgbjtjYXNlIDI6aWYoMHwo''@;'; + put 'put ''Zj0wfEVsKGMsYikpfHwwfChmPTB8UWEoYywzKSl8fDB8KGY9MHxFbChjLDB8YVthW2IrND4+Ml0+PjJdKSl8fChmPTB8UWEoYywwKSkpYnJlYWsgZTticmVhayBuO2RlZmF1bHQ6YnJlYWsgbn1jYXNlIDE6aWYoQT0wfGFbKG09NCsoZj0wfGFbYis0Pj4yXSl8MCk+PjJdLGFbYis4Pj4yXT0x''@;'; + put 'put ''Jih3PTB8YVs4KyhwPTB8YVtmPj4yXSk+PjJdPzE6MCE9KDB8YVtBKzg+PjJdKSksdz0wfGJMKGwsMHxhW3ArMjQ+PjJdLDB8YVtBKzI0Pj4yXSwwLDApLGFbYisyND4+Ml09dywhdyl7Zj0xMjticmVhayBlfWlmKHc9MHxiTChsLDB8YVsyOCsoMHxhW2Y+PjJdKT4+Ml0sMHxhWzI4KygwfGFb''@;'; + put 'put ''bT4+Ml0pPj4yXSwwLDApLGFbYisyOD4+Ml09dywhdyl7Zj0xMjticmVhayBlfWJyZWFrO2Nhc2UgMzpmPTB8YVsodz0wfGFbYis0Pj4yXSk+PjJdLGFbYis4Pj4yXT1wPTB8YVt3KzQ+PjJdPzAhPSgwfGFbZis4Pj4yXSkmMToxLGFbYisyND4+Ml09YVtmKzI0Pj4yXSxhW2IrMjg+PjJdPWFb''@;'; + put 'put ''ZisyOD4+Ml07YnJlYWs7Y2FzZSAyOmlmKGFbYis4Pj4yXT0xJihtPTB8YVsocD04KyhmPTB8YVsoQT0wfGFbYis0Pj4yXSk+PjJdKXwwKT4+Ml0/MCE9KDB8YVs4KygwfGFbQSs0Pj4yXSk+PjJdKTowKSwwfGFbcD4+Ml0pe2lmKDB8KGY9MHxfTChjLGYsMCwwLGspKSlicmVhayB0O2lmKCEo''@;'; + put 'put ''cD0wfEIwKDQrKGFbaz4+Ml08PDIpfDApKSl7Zj0xMjticmVhayB0fWlmKGFbcD4+Ml09LTEsYVtNPj4yXT0wLDB8KGY9MHxfTChjLDB8YVtBPj4yXSxwLE0sMCkpKXtSPTQ1O2JyZWFrIHR9aWYoYVsodz1iKzI0fDApPj4yXT0wfGJMKGwsMHxhWzI0KygwfGFbKGY9QSs0fDApPj4yXSk+PjJd''@;'; + put 'put ''LDB8YVsyNCsoMHxhW0E+PjJdKT4+Ml0scCwwfGFbTT4+Ml0pLEZ0KHApLCEoMHxhW3c+PjJdKSl7Zj0xMjticmVhayB0fW09Zn1lbHNlIGFbYisyND4+Ml09YVtmKzI0Pj4yXSxtPUErNHwwO2lmKDB8YVs4KyhmPTB8YVttPj4yXSk+PjJdKXtpZigwfChmPTB8X0woYyxmLDAsMCxrKSkpYnJl''@;'; + put 'put ''YWsgdDtpZighKHA9MHxCMCg0KyhhW2s+PjJdPDwyKXwwKSkpe2Y9MTI7YnJlYWsgdH1pZihhW3A+PjJdPS0xLGFbTT4+Ml09MCwwfChmPTB8X0woYywwfGFbbT4+Ml0scCxNLDApKSl7Uj01MjticmVhayB0fWlmKGFbKGI9YisyOHwwKT4+Ml09MHxiTChsLDB8YVsyOCsoMHxhW0E+PjJdKT4+''@;'; + put 'put ''Ml0sMHxhWzI4KygwfGFbbT4+Ml0pPj4yXSxwLDB8YVtNPj4yXSksRnQocCksISgwfGFbYj4+Ml0pKXtmPTEyO2JyZWFrIHR9fWVsc2UgYVtiKzI4Pj4yXT1hW2YrMjg+PjJdfX13aGlsZSgwKTtpZigoMHxlZihjKSk8PSgwfEQpKXtmPTA7YnJlYWsgZX19KDQ1PT0oMHxSKXx8NTI9PSgwfFIp''@;'; + put 'put ''KSYmRnQocCl9ZWxzZSBmPTB9d2hpbGUoMCk7cmV0dXJuIGFlPUcsMHxmfWZ1bmN0aW9uIHlMKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wO2U6Zm9yKDs7KXtzd2l0Y2goMHxhW2w+PjJdKXtjYXNlIDI6aWYoLTE9PSgwfGFbOCsobD0wfGFbbCs0Pj4yXSk+''@;'; + put 'put ''PjJdKSYmMCE9KDB8KHc9MHxSJCgwfGFbMjgrKHc9MHxhW2w+PjJdKT4+Ml0sMHxhW3crMjQ+PjJdLGMsZixwKSkpKXtsPXc7YnJlYWsgZX1icmVhaztjYXNlIDM6aWYoMHwobD0wfHlMKDB8YVsobT0wfGFbbCs0Pj4yXSk+PjJdLGMsZixwKSkpYnJlYWsgZTtsPW0rNHwwO2JyZWFrO2Nhc2Ug''@;'; + put 'put ''MTppZigwfChsPTB8UiQoMHxhWzI4KygwfGFbKG09MHxhW2wrND4+Ml0pPj4yXSk+PjJdLDB8YVsyNCsoMHxhWyhBPW0rNHwwKT4+Ml0pPj4yXSxjLGYscCkpKWJyZWFrIGU7aWYobD0wfHlMKDB8YVttPj4yXSxjLGYscCkpYnJlYWsgZTtsPUE7YnJlYWs7ZGVmYXVsdDpsPTA7YnJlYWsgZX1s''@;'; + put 'put ''PTB8YVtsPj4yXX1yZXR1cm4gMHxsfWZ1bmN0aW9uIEtjZShsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wO2lmKDB8KHc9MHxhWzQrKGx8PTApPj4yXSkpe2lmKGw9MHxhW3c+PjJdLDB8YVsocD13KzR8MCk+PjJdKXtmPTA7ZG97MHxhW2wrKGY8PDUpKzg+PjJdJiYoKGM9MHxhW2wrKGY8''@;'; + put 'put ''PDUpKzE2Pj4yXSkmJihGdChjKSxsPTB8YVt3Pj4yXSksKGM9MHxhW2wrKGY8PDUpKzI4Pj4yXSkmJihGdChjKSxsPTB8YVt3Pj4yXSkpLGY9ZisxfDB9d2hpbGUoZj4+PjA8KDB8YVtwPj4yXSk+Pj4wKX1pZigwfGwmJkZ0KGwpLDB8KGw9MHxhWyhmPXcrOHwwKT4+Ml0pKXtpZigwfGFbbCs4''@;'; + put 'put ''Pj4yXSl7Zm9yKDswfChjPTB8YVtsKzE2Pj4yXSkmJkZ0KGMpLDB8YVtsKzQwPj4yXTspbD1sKzMyfDA7bD0wfGFbZj4+Ml19RnQobCl9aWYoMHwobD0wfGFbKG09dysxNnwwKT4+Ml0pKXtpZihjPTB8YVsoQT13KzI4fDApPj4yXSl7cD0wO2RveyhmPTB8YVtsKygxMipwfDApKzg+PjJdKSYm''@;'; + put 'put ''KEZ0KGYpLGM9MHxhW0E+PjJdLGw9MHxhW20+PjJdKSxwPXArMXwwfXdoaWxlKHA+Pj4wPGM+Pj4wKX1GdChsKX0wfChsPTB8YVt3KzMyPj4yXSkmJkZ0KGwpLDB8KGw9MHxhW3crMjA+PjJdKSYmRnQobCksMHwobD0wfGFbdyszNj4+Ml0pJiZGdChsKSxGdCh3KX19ZnVuY3Rpb24gUiQobCxj''@;'; + put 'put ''LGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wO3c9KDB8KEE9MHxhWyhsfD0wKT4+Ml0pKT4tMTtlOmRve2lmKGYpaWYodylmb3Io''@;'; + put 'put ''Ozspe3c9MHxhW2M+PjJdO3Q6ZG97aWYoKDB8dyk+LTEpZm9yKHBlPWwrNHwwLGdlPWwrOHwwLGJlPWwrMTZ8MCxPZT1sKzIwfDAsTGU9bCsyNHwwLFJlPWwrMjh8MCxIZT1sKzEyfDAscD0tMSxBPWM7Oyl7Zm9yKEs9dzsoMHxLKT09KDB8cCk7KXtpZighKCgwfCh3PTB8YVsoQT1BKzMyfDAp''@;'; + put 'put ''Pj4yXSkpPi0xKSlicmVhayB0O0s9d31mb3IoRD1mKyhhW20rKGFbbD4+Ml08PDIpPj4yXTw8NSl8MDswfGFbKHc9RCs4fDApPj4yXTspRD1EKzMyfDA7aWYoYVtEKzQwPj4yXT0wLGFbRD4+Ml09YVtwZT4+Ml0sYVtEKzQ+PjJdPWFbZ2U+PjJdLGFbdz4+Ml09ZisoYVttKyhLPDwyKT4+Ml08''@;'; + put 'put ''PDUpLGFbRCsxMj4+Ml09SyxhWyhiPUQrMjB8MCk+PjJdPXA9YVtBKzE2Pj4yXXxhW2JlPj4yXXwoMHwodz0wfGFbT2U+PjJdKT80OjApfCgwfGFbTGU+PjJdPzg6MCksKDB8KGs9MHxhW1JlPj4yXSkpPi0xJiYoYVtiPj4yXT0yNTZ8cCx3PWspLGFbRCsyND4+Ml09dyxwPTB8YVtMZT4+Ml0p''@;'; + put 'put ''e3c9MDtkb3tHPXcsdz13KzF8MH13aGlsZSgwIT0oMHxhW3ArKEc8PDIpPj4yXSkpO2lmKHc9MHxCMCh3PDwyKSxhW0QrMjg+PjJdPXcsIXcpe0E9MTI7YnJlYWsgZX1pZihwPTB8YVsoTT0wfGFbTGU+PjJdKT4+Ml0pe2s9MCxiPXc7ZG97YVtiPj4yXT1wLHA9MHxhW00rKChrPWsrMXwwKTw8''@;'; + put 'put ''Mik+PjJdLGI9dysoazw8Mil8MH13aGlsZSgwIT0oMHxwKSk7dz1ifWFbdz4+Ml09MH1lbHNlIGFbRCsyOD4+Ml09MDtpZihwPTB8YVtIZT4+Ml0pZm9yKHc9MDsoMHxhW3ArKHc8PDIpPj4yXSk+LTE7KXc9dysxfDA7ZWxzZSB3PTA7aWYoYj0wfGFbKE09QSsxMnwwKT4+Ml0pZm9yKHA9MDso''@;'; + put 'put ''MHxhW2IrKHA8PDIpPj4yXSk+LTE7KXA9cCsxfDA7ZWxzZSBwPTA7aWYoMHwoYj0wfGFbKGs9RCsxNnwwKT4+Ml0pJiZGdChiKSxhW2s+PjJdPTAsKDB8KHc9cCt3fDApKT4wKXtpZihHPTB8QjAoNCsodzw8Mil8MCksYVtrPj4yXT1HLCFHKXtBPTEyO2JyZWFrIGV9aWYoMCE9KDB8KHA9MHxh''@;'; + put 'put ''W0hlPj4yXSkpJiYoMHwoVmU9MHxhW3A+PjJdKSk+LTEpe3c9MCxiPVZlO2Rve2FbRysodzw8Mik+PjJdPWIsYj0wfGFbcCsoKHc9dysxfDApPDwyKT4+Ml19d2hpbGUoKDB8Yik+LTEpO1I9d31lbHNlIFI9MDtpZigwIT0oMHwoaz0wfGFbTT4+Ml0pKSYmKDB8KHFlPTB8YVtrPj4yXSkpPi0x''@;'; + put 'put ''KXtNPSgwfFIpPjAsdz1SLGI9MCxEPXFlO2Rve246ZG97aWYoTSlmb3IocD0wOzspe2lmKCgwfGFbRysocDw8Mik+PjJdKT09KDB8RCkpYnJlYWsgbjtpZigoMHwocD1wKzF8MCkpPj0oMHxSKSl7bnQ9Mzk7YnJlYWt9fWVsc2UgbnQ9Mzl9d2hpbGUoMCk7Mzk9PSgwfG50KSYmKG50PTAsYVtH''@;'; + put 'put ''Kyh3PDwyKT4+Ml09RCx3PXcrMXwwKSxEPTB8YVtrKygoYj1iKzF8MCk8PDIpPj4yXX13aGlsZSgoMHxEKT4tMSl9ZWxzZSB3PVI7YVtHKyh3PDwyKT4+Ml09LTF9aWYoKDB8KHc9MHxhWyhBPUErMzJ8MCk+PjJdKSk8PS0xKWJyZWFrO3A9S319d2hpbGUoMCk7aWYoKDB8YVsobD1sKzMyfDAp''@;'; + put 'put ''Pj4yXSk8PS0xKXtBPTA7YnJlYWt9fWVsc2UgQT0wO2Vsc2UgaWYodyl7dz1jKzMyfDA7ZG97aWYoKDB8YVtjPj4yXSk+LTEmJihhWyhudD1wKyhBPDwyKXwwKT4+Ml09MSsoMHxhW250Pj4yXSksKDB8YVt3Pj4yXSk+LTEpKXtBPXc7ZG97YVsobnQ9cCsoYVtsPj4yXTw8Mil8MCk+PjJdPTEr''@;'; + put 'put ''KDB8YVtudD4+Ml0pLEE9QSszMnwwfXdoaWxlKCgwfGFbQT4+Ml0pPi0xKX1BPTB8YVsobD1sKzMyfDApPj4yXX13aGlsZSgoMHxBKT4tMSk7QT0wfWVsc2UgQT0wfXdoaWxlKDApO3JldHVybiAwfEF9ZnVuY3Rpb24gZWYobCl7cmV0dXJuIDB8YVsxMisobHw9MCk+PjJdfWZ1bmN0aW9uIEVs''@;'; + put 'put ''KGwsYyl7dmFyIGYscCxtO3JldHVybiBsfD0wLGY9YWUsYWU9YWUrMTZ8MCxwPWYrNHwwLGFbKG09Zik+PjJdPWN8PTAsYVtwPj4yXT1hW20+PjJdLGM9MHxMaihsLHApLGFlPWYsMHxjfWZ1bmN0aW9uIFFhKGwsYyl7dmFyIGYscCxtO3JldHVybiBsfD0wLGY9YWUsYWU9YWUrMTZ8MCxwPWYr''@;'; + put 'put ''NHwwLGFbKG09Zik+PjJdPWN8PTAsYVtwPj4yXT1hW20+PjJdLGM9MHxMaihsLHApLGFlPWYsMHxjfWZ1bmN0aW9uIEJmKGwpe3ZhciBjLGY7cmV0dXJuIGM9MHxhWzE2KyhsfD0wKT4+Ml0sYVsoZj1sKzEyfDApPj4yXT1sPSgwfGFbZj4+Ml0pLTF8MCwwfGFbYysobDw8Mik+PjJdfWZ1bmN0''@;'; + put 'put ''aW9uIGZoKGwpe3ZhciBjLGY7cmV0dXJuIGM9MHxhWzE2KyhsfD0wKT4+Ml0sYVsoZj1sKzEyfDApPj4yXT1sPSgwfGFbZj4+Ml0pLTF8MCwwfGFbYysobDw8Mik+PjJdfWZ1bmN0aW9uIHdMKGwsYyxmLHAsbSxBLHcpe3JldHVybiBjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCwobD0w''@;'; + put 'put ''fFgxKGx8PTAsMCwwLDEsNjQpKT8oYVtsPj4yXT1jLGFbbCs0Pj4yXT1mLGFbbCs4Pj4yXT1wLGFbbCsyMD4+Ml09bSxhW2wrMjQ+PjJdPUEsYVtsKzI4Pj4yXT13LGFbbCszMj4+Ml09LTEsYVtsKzM2Pj4yXT0tMSxhW2wrNDA+PjJdPS0xKTpsPTAsMHxsfWZ1bmN0aW9uIEIkKGwpe3JldHVy''@;'; + put 'put ''bihsPTB8WDEobHw9MCwwLDAsMSwzMikpPyhhW2w+PjJdPS0xLGFbbCs0Pj4yXT0tMSxhW2wrOD4+Ml09LTEpOmw9MCwwfGx9ZnVuY3Rpb24gYkwobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxtfD0wO3ZhciBLLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTA7aWYoSz0wPT0oMHwo''@;'; + put 'put ''cHw9MCkpKUc9MDtlbHNlIGZvcihBPTA7Oyl7aWYoISgoMHxhW3ArKEE8PDIpPj4yXSk+LTEpKXtHPUE7YnJlYWt9QT1BKzF8MH1mb3Iodz0wOzspe2lmKCEoKDB8YVtjKyh3PDw1KT4+Ml0pPi0xKSl7QT0wO2JyZWFrfXc9dysxfDB9Zm9yKDsoMHxhW2YrKEE8PDUpPj4yXSk+LTE7KUE9QSsx''@;'; + put 'put ''fDA7QT0wfFgxKGwsMCwwLDEsMzIrKEErdzw8NSl8MCk7ZTpkb3tpZihBKXtpZigoMHwodz0wfGFbYz4+Ml0pKT4tMSlmb3IoUj0oMHxHKT4wLGI9MDs7KXtpZihhW0ErKGI8PDUpPj4yXT13LGFbQSsoYjw8NSkrND4+Ml09YVtjKyhiPDw1KSs0Pj4yXSxhW0ErKGI8PDUpKzg+PjJdPWFbYyso''@;'; + put 'put ''Yjw8NSkrOD4+Ml0sYVtBKyhiPDw1KSsxNj4+Ml09YVtjKyhiPDw1KSsxNj4+Ml18bSxhW0ErKGI8PDUpKzIwPj4yXT1hW2MrKGI8PDUpKzIwPj4yXSxhW0ErKGI8PDUpKzI0Pj4yXT1hW2MrKGI8PDUpKzI0Pj4yXSxhW0ErKGI8PDUpKzI4Pj4yXT1hW2MrKGI8PDUpKzI4Pj4yXSxLJih3PTA9''@;'; + put 'put ''PSgwfChrPTB8YVsoRD1jKyhiPDw1KSsxMnwwKT4+Ml0pKSkpdz0wO2Vsc2V7aWYodylNPTA7ZWxzZSBmb3Iodz0wOzspe2lmKCEoKDB8YVtrKyh3PDwyKT4+Ml0pPi0xKSl7TT13O2JyZWFrfXc9dysxfDB9aWYoISh3PTB8WDEobCwwLDAsMCw0KyhNK0c8PDIpfDApKSl7QT0wO2JyZWFrIGV9''@;'; + put 'put ''aWYoKDB8TSk+MCl7RD0wfGFbRD4+Ml0saz0wO2Rve2Fbdysoazw8Mik+PjJdPWFbRCsoazw8Mik+PjJdLGs9aysxfDB9d2hpbGUoKDB8aykhPSgwfE0pKX1lbHNlIE09MDtpZihSKXtrPTA7ZG97YVt3KyhrK008PDIpPj4yXT1hW3ArKGs8PDIpPj4yXSxrPWsrMXwwfXdoaWxlKCgwfGspIT0o''@;'; + put 'put ''MHxHKSk7az1HfWVsc2Ugaz0wO2FbdysoaytNPDwyKT4+Ml09LTF9aWYoYVtBKyhiPDw1KSsxMj4+Ml09dywoMHwodz0wfGFbYysoKGI9YisxfDApPDw1KT4+Ml0pKTw9LTEpe0c9YjticmVha319ZWxzZSBHPTA7aWYodz1BKyhHPDw1KXwwLCgwfChiPTB8YVtmPj4yXSkpPi0xKXtSPTAsRD1H''@;'; + put 'put ''O2Rve2lmKGFbdz4+Ml09YixhW0ErKEQ8PDUpKzQ+PjJdPWFbZisoUjw8NSkrND4+Ml0sYVtBKyhEPDw1KSs4Pj4yXT1hW2YrKFI8PDUpKzg+PjJdLGFbQSsoRDw8NSkrMTY+PjJdPWFbZisoUjw8NSkrMTY+PjJdLGFbQSsoRDw8NSkrMjA+PjJdPWFbZisoUjw8NSkrMjA+PjJdLGFbQSsoRDw8''@;'; + put 'put ''NSkrMjQ+PjJdPWFbZisoUjw8NSkrMjQ+PjJdLGFbQSsoRDw8NSkrMjg+PjJdPWFbZisoUjw8NSkrMjg+PjJdLHc9MHxhWyhrPWYrKFI8PDUpKzEyfDApPj4yXSl7Zm9yKGI9MDsoMHxhW3crKGI8PDIpPj4yXSk+LTE7KWI9YisxfDA7aWYoISh3PTB8WDEobCwwLDAsMCw0KyhiPDwyKXwwKSkp''@;'; + put 'put ''e0E9MDticmVhayBlfWlmKCgwfGIpPjApe009MHxhW2s+PjJdLGs9MDtkb3thW3crKGs8PDIpPj4yXT1hW00rKGs8PDIpPj4yXSxrPWsrMXwwfXdoaWxlKCgwfGspIT0oMHxiKSl9ZWxzZSBiPTA7YVt3KyhiPDwyKT4+Ml09LTF9ZWxzZSB3PTA7YVtBKyhEPDw1KSsxMj4+Ml09dyxiPTB8YVtm''@;'; + put 'put ''KygoUj1SKzF8MCk8PDUpPj4yXSx3PUErKChEPVIrR3wwKTw8NSl8MH13aGlsZSgoMHxiKT4tMSl9YVt3Pj4yXT0tMX1lbHNlIEE9MH13aGlsZSgwKTtyZXR1cm4gMHxBfWZ1bmN0aW9uIF9MKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgSyxwZSxBPTAsdz0wLGI9MCxrPTAs''@;'; + put 'put ''TT0wLEQ9MCxSPTAsRz0wO0s9MHxlZihsfD0wKSwocGU9MCE9KDB8bSkpJiYoYVttPj4yXT0wKSxjPTB8RWwobCxjKTtlOmRve2lmKGMpQT1jO2Vsc2UgaWYoUj0wPT0oMHxmKSxEPTA9PSgwfHApLCgwfGVmKGwpKT4oMHxLKSlmb3IoOzspe2M9MHxmaChsKTt0OmRve3N3aXRjaCgwfGFbYz4+''@;'; + put 'put ''Ml0pe2Nhc2UgMDpzd2l0Y2goMHxhWyhjPTB8YVtjKzQ+PjJdKT4+Ml0pe2Nhc2UtMzpicmVhaztjYXNlLTI6aWYoRClicmVhayB0O2FbcD4+Ml09YVtwPj4yXXxhW2MrND4+Ml07YnJlYWsgdDtkZWZhdWx0OmJyZWFrIHR9aWYoKDB8KHc9MHxhW2MrND4+Ml0pKT4tMSl7bjpkb3tpZighUil7''@;'; + put 'put ''Zm9yKGM9MDshKCgwfChrPTB8YVsoYj1mKyhjPDwyKXwwKT4+Ml0pKTw9LTEpOyl7aWYoKDB8ayk9PSgwfHcpKWJyZWFrIG47Yz1jKzF8MH1hW2I+PjJdPXcsYVtmKyhjKzE8PDIpPj4yXT0tMX19d2hpbGUoMCk7cGUmJihhW20+PjJdPTErKDB8YVttPj4yXSkpfWJyZWFrO2Nhc2UgMzppZigw''@;'; + put 'put ''fGFbOCsodz0wfGFbKGM9MHxhW2MrND4+Ml0pPj4yXSk+PjJdKXtNPXcsRz02O2JyZWFrIHR9MHxhWzgrKGM9MHxhW2MrND4+Ml0pPj4yXSYmKE09YyxHPTYpO2JyZWFrO2Nhc2UgMTppZigwfCh3PTB8RWwobCwwfGFbKGM9MHxhW2MrND4+Ml0pPj4yXSkpKXtBPXc7YnJlYWsgZX1NPTB8YVtj''@;'; + put 'put ''KzQ+PjJdLEc9NjticmVhaztjYXNlIDI6MHxhWzgrKGM9MHxhW2FbYys0Pj4yXT4+Ml0pPj4yXSYmKE09YyxHPTYpfX13aGlsZSgwKTtpZig2PT0oMHxHKSYmKEc9MCwwfChBPTB8RWwobCxNKSkpKWJyZWFrIGU7aWYoKDB8ZWYobCkpPD0oMHxLKSl7QT0wO2JyZWFrIGV9fWVsc2UgQT0wfXdo''@;'; + put 'put ''aWxlKDApO3JldHVybiAwfEF9ZnVuY3Rpb24gTGoobCxjKXtjfD0wO3ZhciBwLEEsayxNLGY9MCxtPTAsdz0wLGI9MDtyZXR1cm4gTT1hZSxhZT1hZSsxNnwwLEE9TSwoMHwocD0wfGFbKGY9MTIrKGx8PTApfDApPj4yXSkpPj0oMHwoaz0wfGFbbD4+Ml0pKT8oMHxrKTwoMHwoZj0wfGFbbCs0''@;'; + put 'put ''Pj4yXSkpJiYwIT0oMHwoYj0wfFVhKDB8YVsodz1sKzE2fDApPj4yXSwobT0oMHwobT0oMHxhW2wrOD4+Ml0pK2t8MCkpPigwfGYpP2Y6bSk8PDIpKSk/KGFbbD4+Ml09bSxhW3c+PjJdPWIsYVtBPj4yXT1hW2M+PjJdLExqKGwsQSksZj0wKTpmPTEyOihhWygwfGFbbCsxNj4+Ml0pKyhwPDwy''@;'; + put 'put ''KT4+Ml09YVtjPj4yXSxhW2Y+PjJdPTErKDB8YVtmPj4yXSksZj0wKSxhZT1NLDB8Zn1mdW5jdGlvbiB0UyhsLGMsZil7cmV0dXJuIGN8PTAsMCE9KDB8KGZ8PTApKSYwIT0oMHwobD0wfFgxKGx8PTAsMCwwLDEsMzIpKSk/KGFbbCs0Pj4yXT1mLGFbbD4+Ml09YyxhW2wrOD4+Ml09LTEsYVts''@;'; + put 'put ''KzEyPj4yXT0tMSk6bD0wLDB8bH1mdW5jdGlvbiBDTChsLGMsZixwLG0sQSx3LGIpe2x8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wLGJ8PTA7dmFyIGdlLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTA7Z2U9MHxlZihjfD0wKSxFbChjLGYpLGY9MHxRYShjLDApO2U6ZG97aWYoZilw''@;'; + put 'put ''PTA7ZWxzZSBmb3IocGU9MD09KDEmcHwwKSxLPTAhPSgyJnB8MCksRz0wLE09MSxmPXc7Oyl7aWYoISgoMHxlZihjKSk+KDB8Z2UpKSl7cD1HLGY9MDticmVhayBlfVI9Zjt0OmZvcig7Oyl7bjpmb3IoOzspe3N3aXRjaCgwfEJmKGMpKXtjYXNlIDE6dz03O2JyZWFrIG47Y2FzZSAwOnN3aXRj''@;'; + put 'put ''aChmPTB8ZmgoYyksMHxhW2Y+PjJdKXtjYXNlIDA6dz05O2JyZWFrIHQ7Y2FzZSAzOnc9MTk7YnJlYWsgdDtjYXNlIDE6dz0yNjticmVhayB0O2Nhc2UgMjp3PTMzO2JyZWFrIG59fWlmKCgwfGVmKGMpKTw9KDB8Z2UpKXtwPUcsZj0wO2JyZWFrIGV9fWlmKDc9PSgwfHcpKWY9MHxmaChjKTtl''@;'; + put 'put ''bHNlIGlmKDMzPT0oMHx3KSl7aWYoMHwoZj0wfEVsKGMsMHxhWyhwPTB8YVtmKzQ+PjJdKT4+Ml0pKSl7cD1HO2JyZWFrIGV9aWYoMHwoZj0wfFFhKGMsMCkpKXtwPUc7YnJlYWsgZX1pZihmPTB8T2oobCwwfGFbcD4+Ml0sMHxhW3ArND4+Ml0sMHxhW3ArOD4+Ml0sMSZmZVtwKzEyPj4wXSks''@;'; + put 'put ''YVtSPj4yXT1mLCFmKXtwPUcsZj0xMjticmVhayBlfWY9MHxhW2YrND4+Ml19aWYoISgoMHxlZihjKSk+KDB8Z2UpKSl7cD1HLGY9MDticmVhayBlfVI9Zn1pZig5PT0oMHx3KSl3PTB8YVs4KyhEPTB8YVtmKzQ+PjJdKT4+Ml0sZj0wfGFbRCs0Pj4yXSwoMHwocD0wfGFbRD4+Ml0pKT4tMXwt''@;'; + put 'put ''ND09KDB8cCk/KHc9KDB8YVttPj4yXSkrd3wwLGs9RysxfDApOnBlfC0zIT0oMHxwKT8tMz09KDB8cCk/SyYwIT0oMHxNKT8oYVtBKyhmPDwyKT4+Ml09MSxwPS0zLGs9RyxNPTApOihwPS0zLGs9Ryk6az1HOihmPS0xLHA9LTEsdz0tMSxrPUcpLGY9MHx0MShsLHAsZix3KSxhW1I+PjJdPWYs''@;'; + put 'put ''Zj8oYVsxMisoZj0wfGFbZis0Pj4yXSk+PjJdPWFbRCsxMj4+Ml0sYVtmKzE2Pj4yXT1hW0QrMTY+PjJdLGY9MCk6Zj0xMiwoMHx3KT4oMHxhW2I+PjJdKSYmKGFbYj4+Ml09dykscD1SO2Vsc2UgaWYoMTk9PSgwfHcpKXtpZihmPTB8YmcobCwwfGFbKHc9MHxhW2YrND4+Ml0pPj4yXSwwfGFb''@;'; + put 'put ''KHA9dys0fDApPj4yXSksYVtSPj4yXT1mLCFmKXtwPUcsZj0xMjticmVhayBlfWlmKEQ9MHxhW2YrND4+Ml0sMHwoZj0wfEVsKGMsMHxhW3A+PjJdKSkpe3A9RzticmVhayBlfWlmKDB8KGY9MHxRYShjLDApKSl7cD1HO2JyZWFrIGV9aWYoMHwoZj0wfEVsKGMsRCs0fDApKSl7cD1HO2JyZWFr''@;'; + put 'put ''IGV9aWYoMHwoZj0wfFFhKGMsMSkpKXtwPUc7YnJlYWsgZX1pZigwfChmPTB8RWwoYywwfGFbdz4+Ml0pKSl7cD1HO2JyZWFrIGV9az1HLHA9RCxmPTB8UWEoYywwKX1lbHNlIGlmKDI2PT0oMHx3KSl7aWYoZj0wfHU5KGwsMHxhWyhEPTB8YVtmKzQ+PjJdKT4+Ml0sMHxhWyh3PUQrNHwwKT4+''@;'; + put 'put ''Ml0pLGFbUj4+Ml09ZiwhZil7cD1HLGY9MTI7YnJlYWsgZX1pZihhWyhwPTB8YVtmKzQ+PjJdKT4+Ml09MCxhWyhrPXArNHwwKT4+Ml09MCwwfChmPTB8RWwoYywwfGFbdz4+Ml0pKSl7cD1HO2JyZWFrIGV9aWYoMHwoZj0wfFFhKGMsMCkpKXtwPUc7YnJlYWsgZX1pZigwfChmPTB8RWwoYyxr''@;'; + put 'put ''KSkpe3A9RzticmVhayBlfWlmKDB8KGY9MHxRYShjLDEpKSl7cD1HO2JyZWFrIGV9aWYoMHwoZj0wfEVsKGMsMHxhW0Q+PjJdKSkpe3A9RzticmVhayBlfWs9RyxmPTB8UWEoYywwKX1pZihmKXtwPWs7YnJlYWt9Rz1rLGY9cH19d2hpbGUoMCk7cmV0dXJuIGFbbT4+Ml09KDB8YVttPj4yXSkr''@;'; + put 'put ''cCwwfGZ9ZnVuY3Rpb24gT2oobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTA7cmV0dXJuKGw9MHx0UyhsfD0wLDIsQT0wfFgxKGwsMCwwLDEsMTYpKSk/KGFbQT4+Ml09YyxhW0ErND4+Ml09ZixhW0ErOD4+Ml09cCxmZVsoQT1BKzEyfDApPj4wXT0tMiZmZVtBPj4wXXwx''@;'; + put 'put ''Jm0sYVtsKzE2Pj4yXT1hW2MrMTY+PjJdKTpsPTAsMHxsfWZ1bmN0aW9uIGJnKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MDtyZXR1cm4oY3w9MCkmJigwIT0oMHxmKSYwIT0oMHwobD0wfHRTKGwsMyxwPTB8WDEobCwwLDAsMSw4KSkpKT8oYVtwPj4yXT1jLGFbcCs0Pj4yXT1mLGFbbCsxNj4+''@;'; + put 'put ''Ml09KDB8YVtmKzE2Pj4yXSkrKDB8YVtjKzE2Pj4yXSksZj1sKTpmPTApLDB8Zn1mdW5jdGlvbiBSaihsLGMsZil7Y3w9MCxmfD0wO3ZhciBwLG09MDtyZXR1cm4gMCE9KDB8KHA9MHxYMShsfD0wLDAsMCwwLDgpKSkmJihmPTB8dDEobCwtMyxmLC0xKSxhW3A+PjJdPWYsMCE9KDB8ZikpJiYo''@;'; + put 'put ''bT0wfFgxKGwsMCwwLDAsMzIpLGFbcCs0Pj4yXT1tLDAhPSgwfG0pKT8oYVttKzQ+PjJdPWFbKGw9Yys0fDApPj4yXSxhW20+PjJdPWFbYz4+Ml0sYVttKzg+PjJdPS0xLGFbbSsxMj4+Ml09LTEsYVsobT1tKzE2fDApPj4yXT0wLGFbbSs0Pj4yXT0wLGFbbSs4Pj4yXT0wLGFbbSsxMj4+Ml09''@;'; + put 'put ''MCxhW2w+PjJdPXAsYVtjPj4yXT0xLGw9MCk6bD0xMiwwfGx9ZnVuY3Rpb24ga0wobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7aWYoKDB8KG09MHxhWyhsfD0wKT4+Ml0pKT4tMSl7QT0wfGFbYysxNj4+Ml0scD0wLGM9bTtkb3ttPWM+Pj4xLGFbKDA9PSgxJmN8MCk/QSsoMTIq''@;'; + put 'put ''bXwwKXwwOkErKDEyKm18MCkrNHwwKT4+Ml09ZixjPTB8YVtsKygocD1wKzF8MCk8PDIpPj4yXX13aGlsZSgoMHxjKT4tMSl9YVtsPj4yXT0tMX1mdW5jdGlvbiBQJChsLGMsZil7Y3w9MCxmfD0wO3ZhciBwLG09MDtyZXR1cm4gMCE9KDB8KHA9MHxYMShsfD0wLDAsMCwwLDgpKSkmJihmPTB8''@;'; + put 'put ''dDEobCwtMyxmLC0xKSxhW3ArND4+Ml09ZiwwIT0oMHxmKSkmJihtPTB8WDEobCwwLDAsMCwzMiksYVtwPj4yXT1tLDAhPSgwfG0pKT8oYVttKzQ+PjJdPWFbKGw9Yys0fDApPj4yXSxhW20+PjJdPWFbYz4+Ml0sYVttKzg+PjJdPS0xLGFbbSsxMj4+Ml09LTEsYVsobT1tKzE2fDApPj4yXT0w''@;'; + put 'put ''LGFbbSs0Pj4yXT0wLGFbbSs4Pj4yXT0wLGFbbSsxMj4+Ml09MCxhW2w+PjJdPXAsYVtjPj4yXT0xLGw9MCk6bD0xMiwwfGx9ZnVuY3Rpb24gRiQobCxjKXtjfD0wO3ZhciBNLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtNPWFlLGFlPWFlKzE2fDAsYj1NLG09MSYoQT0wfGFbKHc9MzIr''@;'; + put 'put ''KGx8PTApfDApPj4yXSk7ZTpkb3tzd2l0Y2goMHxmZVtjPj4wXSl7Y2FzZSA5MTpmPTB8ZWZlKGwsYysxfDApO2JyZWFrO2Nhc2UgOTI6aWYoMHwocD0wfHRmZShmPWMrMXwwKSkpe2Y9MHxGJChsLHApLGFbbCsxMj4+Ml09YysyO2JyZWFrIGV9c3dpdGNoKDB8KHA9MHxmZVtmPj4wXSkpe2Nh''@;'; + put 'put ''c2UgMDpmPTU7YnJlYWsgZTtjYXNlIDk4OnA9MHx0MSgwfGFbbD4+Ml0sLTIsNjQsLTEpO2JyZWFrO2Nhc2UgNjY6cD0wfHQxKDB8YVtsPj4yXSwtMiwxMjgsLTEpO2JyZWFrO2Nhc2UgNjA6cD0wfHQxKDB8YVtsPj4yXSwtMiwxNiwtMSk7YnJlYWs7Y2FzZSA2MjpwPTB8dDEoMHxhW2w+PjJd''@;'; + put 'put ''LC0yLDMyLC0xKTticmVhaztjYXNlIDEyMDptPSh3PTEyMz09KDB8ZmVbKEE9YysyfDApPj4wXSkpPzg6MixBPXc/YyszfDA6QSxmPTAscD0wO2Rve2lmKCgwfChjPTB8bmZlKDB8ZmVbQStmPj4wXSkpKTwwKWJyZWFrO3A9YysocDw8NCl8MCxmPWYrMXwwfXdoaWxlKCgwfHApPDExMTQxMTIm''@;'; + put 'put ''KDB8Zik8KDB8bSkpO2lmKGY9QStmfDAsdyl7aWYoMTI1IT0oMHxmZVtmPj4wXSkpe2Y9OTticmVhayBlfWY9ZisxfDB9Yj0wfGFbbD4+Ml0sYVsodz1sKzI0fDApPj4yXT0xKyhrPTB8YVt3Pj4yXSkscD0wfHQxKGIscCxwLGspLGY9ZistMXwwO2JyZWFrO2Nhc2UgNjM6Y2FzZSA0MzpjYXNl''@;'; + put 'put ''IDEyMzppZihtKXtrPTM3O2JyZWFrIGV9Zj0xMzticmVhayBlO2Nhc2UgMTI0OmlmKDB8bSl7az0zNzticmVhayBlfWY9MHx0MSgwfGFbbD4+Ml0sLTEsLTEsLTEpLGs9NDU7YnJlYWsgZTtkZWZhdWx0OmlmKCEoMD09KDB8bSkmKHArLTQ5fDApPj4+MDw5KSl7az0zNzticmVhayBlfWI9cCst''@;'; + put 'put ''NDh8MCxrPTB8YVtsPj4yXSxhWyh3PWwrMjR8MCk+PjJdPTErKHA9MHxhW3c+PjJdKSxwPTB8dDEoaywtNCxiLHApLGFbKGs9bCsyOHwwKT4+Ml09KDB8Yik8KDB8KHc9MHxhW2s+PjJdKSk/dzpifWM9ZisxfDAsZj1wLGs9NDU7YnJlYWs7Y2FzZSA0NjpmPTB8YVtsPj4yXSxhWyhtPWwrMjR8''@;'; + put 'put ''MCk+PjJdPTErKHA9MHxhW20+PjJdKSw0JkE/KHA9MHx0MShmLDAsOSxwKSxrPTB8YVtsPj4yXSxhW20+PjJdPTErKGY9MHxhW20+PjJdKSxmPTAhPSgwfHApJjAhPSgwfChmPTB8dDEoaywxMSwxMTE0MTExLGYpKSk/MHxiZygwfGFbbD4+Ml0scCxmKTowKTpmPTB8dDEoZiwwLDExMTQxMTEs''@;'; + put 'put ''cCksYz1jKzF8MCxrPTQ1O2JyZWFrO2Nhc2UgOTQ6aWYoMD09KDB8bSkmJigwfGFbbCsxNj4+Ml0pIT0oMHxjKSl7Zj1jLGs9Mzc7YnJlYWsgZX1jPWMrMXwwLGY9MHx0MSgwfGFbbD4+Ml0sLTIsMSwtMSksaz00NTticmVhaztjYXNlIDM2OmlmKGY9YysxfDAsMD09KDB8bSkmJjB8ZmVbZj4+''@;'; + put 'put ''MF0pe2Y9YyxrPTM3O2JyZWFrIGV9Yz1mLGY9MHx0MSgwfGFbbD4+Ml0sLTIsMiwtMSksaz00NTticmVhaztjYXNlIDYzOmNhc2UgNDM6Y2FzZSAxMjM6Y2FzZSA0MjptP2Y9MTM6KGY9YyxrPTM3KTticmVhaztjYXNlIDEyNDptP2s9MzY6KGY9YyxrPTM3KTticmVhaztjYXNlIDA6az0zNjti''@;'; + put 'put ''cmVhaztkZWZhdWx0OmY9YyxrPTM3fX13aGlsZSgwKTtpZigzNj09KDB8aykpZj0wfHQxKDB8YVtsPj4yXSwtMSwtMSwtMSksaz00NTtlbHNlIGlmKDM3PT0oMHxrKSlpZigoMHwoQT0wfGM4KGIsZiwtMSkpKTwwKWY9MjtlbHNle2Rve2lmKDImYVt3Pj4yXSl7aWYoMD09KDB8QWooMHxhW2I+''@;'; + put 'put ''PjJdKSkmJjA9PSgwfHZqKDB8YVtiPj4yXSkpKXtrPTQzO2JyZWFrfW09MCE9KDB8KG09MHx0MSh3PTB8YVtsPj4yXSwwfG85KDB8YVtiPj4yXSksbT0wfG85KDB8YVtiPj4yXSksMHxhWyhwPWwrMjR8MCk+PjJdKSkpJjAhPSgwfChjPTB8dDEoMHxhW2w+PjJdLHc9MHxBZygwfGFbYj4+Ml0p''@;'; + put 'put ''LGM9MHxBZygwfGFbYj4+Ml0pLDB8YVtwPj4yXSkpKT8wfGJnKDB8YVtsPj4yXSxtLGMpOjB9ZWxzZSBrPTQzfXdoaWxlKDApOzQzPT0oMHxrKSYmKG09MHx0MSgwfGFbbD4+Ml0sbT0wfGFbYj4+Ml0sbSwwfGFbKHA9bCsyNHwwKT4+Ml0pKSxhW3A+PjJdPTErKDB8YVtwPj4yXSksYz1mK0F8''@;'; + put 'put ''MCxmPW0saz00NX1yZXR1cm4gNDU9PSgwfGspJiYoZj8oYVtsKzg+PjJdPWYsYVtsKzEyPj4yXT1jLGY9MCk6Zj0xMiksYWU9TSwwfGZ9ZnVuY3Rpb24gJGNlKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBiLG09MCxBPTAsdz0wO2I9YWUsYWU9YWUrMTZ8MCxtPWIsbD0wfEgkKGx8PTAs''@;'; + put 'put ''dz1iKzR8MCksNDQ9PSgwfGZlW2w+PjBdKT8obD0wfEgkKGwrMXwwLG0pLEE9MHxhW20+PjJdLG09MHxhW3c+PjJdKTooYVttPj4yXT13PTB8YVt3Pj4yXSxBPXcsbT13KTtkb3tpZihtPj4+MD4yNTV8KDB8QSk+MjU1fCgwfEEpPi0xJigwfEEpPCgwfG0pKWw9MDtlbHNle2lmKCFjKXtpZig5''@;'; + put 'put ''MiE9KDB8ZmVbbD4+MF0pKXtsPTA7YnJlYWt9bD1sKzF8MH0xMjU9PSgwfGZlW2w+PjBdKT8oYVtmPj4yXT1tLGFbcD4+Ml09QSxsPWwrMXwwKTpsPTB9fXdoaWxlKDApO3JldHVybiBhZT1iLDB8bH1mdW5jdGlvbiBxY2UobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7cmV0dXJu''@;'; + put 'put ''KDB8YVsxMisoY3w9MCk+PjJdKT4tMT8wIT0oMHwocD0wfHQxKDB8YVtsPj4yXSwtMSwtMSwtMSkpKSYmMCE9KDB8KG09MHx1OSgwfGFbbD4+Ml0scCxjKSkpPyhhW20rMTY+PjJdPXA9MHxhW2MrMTY+PjJdLEE9Nik6cD0xMjoobT1jLHA9MHxhW2MrMTY+PjJdLEE9NiksNj09KDB8QSkmJihh''@;'; + put 'put ''W20rMTI+PjJdPWYsYVttKzE2Pj4yXT1wKzEsYVtsKzg+PjJdPW0scD0wKSwwfHB9ZnVuY3Rpb24gSCQobCxjKXtsfD0wO3ZhciBmPTAscD0wLG09MDtpZihhWyhjfD0wKT4+Ml09LTEsKCgwfGZlW2w+PjBdKS00OHwwKT4+PjA8MTApZm9yKGFbYz4+Ml09MCxmPWwsbT0wLHA9MHxmZVtsPj4w''@;'; + put 'put ''XTthW2M+PjJdPW09KDEwKm18MCktNDgrKHA8PDI0Pj4yNCl8MCwhKCgwfG0pPjI1NXwoKChwPTB8ZmVbKGw9ZisxfDApPj4wXSk8PDI0Pj4yNCktNDh8MCk+Pj4wPjkpOylmPWw7cmV0dXJuIDB8bH1mdW5jdGlvbiBlZmUobCxjKXtjfD0wO3ZhciBnZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9''@;'; + put 'put ''MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wO2lmKGdlPWFlLGFlPWFlKzI4OHwwLG09Z2UsYVsoZj1nZSsyNjR8MCk+PjJdPWFbKGx8PTApPj4yXSxhWyhBPWYrOHwwKT4+Ml09MCxhW2YrMTI+PjJdPTMyLEc9MHxCMCgxMjgpLGFbKHBlPWYrNHwwKT4+Ml09RyxHKXthWyhwPW0rNHww''@;'; + put 'put ''KT4+Ml09MCxhW20+PjJdPTEmKEc9OTQ9PSgwfGZlW2M+PjBdKSksYz0wfGZ1bmN0aW9uIHJmZShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgUixLLGJlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxHPTAscGU9MCxnZT0wO2JlPWFlLGFlPWFlKzMyfDAsSz1iZSs0fDAsdz0wfGM4''@;'; + put 'put ''KFI9YmUsY3w9MCwtMSksbT0wfGZlW2M+PjBdO2U6ZG97aWYoKDB8dyk+PTEpe3BlPXArNHwwLEQ9bCszMnwwLEE9YyxiPXc7dDpmb3IoOzspe2lmKCEoKHc9KDB8QSk9PSgwfGMpKXxtPDwyND4+MjQhPTkzKSl7Z2U9NTticmVha31uOmRve2lmKCEod3xtPDwyND4+MjQhPTQ1KSl7c3dpdGNo''@;'; + put 'put ''KDB8ZmVbQSsxPj4wXSl7Y2FzZSA5MzpicmVhayBuO2Nhc2UgNDU6YnJlYWs7ZGVmYXVsdDptPTExO2JyZWFrIGV9aWYoOTM9PSgwfGZlW0ErMj4+MF0pKXttPTExO2JyZWFrIGV9fX13aGlsZSgwKTtuOmRve2lmKG08PDI0Pj4yND09OTEpe3N3aXRjaCgwfGZlW0ErMT4+MF0pe2Nhc2UgNjE6''@;'; + put 'put ''Y2FzZSA0NjptPTM7YnJlYWsgZTtjYXNlIDU4OmJyZWFrO2RlZmF1bHQ6Z2U9MTc7YnJlYWsgbn13PUErMnwwLG09MDtyOmZvcig7Oyl7c3dpdGNoKDB8ZmVbdyttPj4wXSl7Y2FzZSAwOmdlPTE2O2JyZWFrIHQ7Y2FzZSA1ODpicmVhayByfWlmKCEoKDB8bSk8MTMpKXtnZT0xNjticmVhayB0''@;'; + put 'put ''fW09bSsxfDB9aWYoZ28oMHxLLDB8dywwfG0pLGZlW0srbT4+MF09MCwhKGI9MHxkY2UoSykpKXtnZT0xNjticmVhayB0fWlmKEE9dysobSsyKXwwLDkzIT0oMHxmZVt3KyhtKzEpPj4wXSkpe2dlPTE2O2JyZWFrIHR9aWYoMHxhW3A+PjJdKXtpZigoMHwobT0wfGFbcGU+PjJdKSk+NjMpe209''@;'; + put 'put ''MTI7YnJlYWsgZX1hW3BlPj4yXT1tKzEsYVtwKzgrKG08PDIpPj4yXT1ifWVsc2UgbT0xMTE0MTExLE09MCxrPTEsZ2U9MjV9ZWxzZSBnZT0xN313aGlsZSgwKTtpZigxNz09KDB8Z2UpKWlmKGdlPTAsdz0wfGFbUj4+Ml0sNDU9PSgwfGZlWyhBPUErYnwwKT4+MF0pJiY5MyE9KDB8ZmVbKEc9''@;'; + put 'put ''QSsxfDApPj4wXSkpe2lmKCgwfChBPTB8YzgoUixHLC0xKSkpPDF8KDB8dyk+KDB8KG09MHxhW1I+PjJdKSkpe209MTE7YnJlYWsgZX1iPTAsTT13LEE9RytBfDAsaz0wLGdlPTI1fWVsc2UgYj0wLG09dyxNPXcsaz0wLGdlPTI1O2lmKDI1PT0oMHxnZSkpe2lmKGdlPTAsISh3PTB8QmooZikp''@;'; + put 'put ''KXttPTEyO2JyZWFrIGV9aWYoYVt3Pj4yXT1NLGFbdys0Pj4yXT1tLGFbdysxMj4+Ml09YixhW3crOD4+Ml09LTEsIShrfDA9PSgyJmFbRD4+Ml18MCkpJiYwIT0oMHxvZmUoZixNLG0pKSl7bT0xMjticmVhayBlfX1pZihiPTB8YzgoUixBLC0xKSxtPTB8ZmVbQT4+MF0sKDB8Yik8MSl7Z2U9''@;'; + put 'put ''MzticmVhayBlfX1pZig1PT0oMHxnZSkpe2FbbCsxMj4+Ml09QSsxLG09MDticmVha31pZigxNj09KDB8Z2UpKXttPTQ7YnJlYWt9fWVsc2UgZ2U9M313aGlsZSgwKTtyZXR1cm4gMz09KDB8Z2UpJiYobT1tPDwyND4+MjQ/Mjo3KSxhZT1iZSwwfG19KGwsRz9jKzF8MDpjLGYsbSk7ZTpkb3tp''@;'; + put 'put ''ZihjKWY9MDtlbHNle2lmKEc9MD09KDB8YVttPj4yXSkpcD0wO2Vsc2V7aWYoeDEoMHxhW3BlPj4yXSwwfGFbQT4+Ml0sNCwxMTEpLCEoYz0wfEJqKGYpKSl7Yz0xMixmPTA7YnJlYWt9aWYoYVtjPj4yXT0xMTE0MTEyLGFbYys0Pj4yXT0xMTE0MTEyLGFbYys4Pj4yXT0tMSxjPTB8YVtwPj4y''@;'; + put 'put ''XSl7aWYoIShwPTB8WDEoMHxhW2w+PjJdLDAsMCwwLDQrKGY9Yzw8Mil8MCkpKXtjPTEyLGY9MDticmVha31nbygwfHAsbSs4fDAsMHxmKSxhW3ArKGM8PDIpPj4yXT0wfWVsc2UgcD0wfWlmKCgwfChNPTB8YVtBPj4yXSkpPjApZm9yKEQ9MHxhW3BlPj4yXSxSPWwrMjR8MCxmPTAsYz0wLGs9''@;'; + put 'put ''MDs7KXttPTB8YVsoYj0wfGFbRCsoazw8Mik+PjJdKT4+Ml0sdz0wfGFbKEE9Yis0fDApPj4yXTtkb3tpZighRyl7aWYoKDB8bSk+KDB8Yykpe2FbYj4+Ml09YyxhW0E+PjJdPW0rLTEsYz13KzF8MCxLPTE0O2JyZWFrfWM9KDB8KGI9dysxfDApKT49KDB8Yyk/YjpjO2JyZWFrfUs9MTR9d2hp''@;'; + put 'put ''bGUoMCk7aWYoMTQ9PSgwfEspJiYoSz0wLGFbYis4Pj4yXT1hW1I+PjJdLGFbYisxNj4+Ml09cCxiPTB8dFMoMHxhW2w+PjJdLDAsYiksIShmPTB8YmcoMHxhW2w+PjJdLGYsYikpKSl7Yz0xMixmPTA7YnJlYWsgZX1pZigoMHwoaz1rKzF8MCkpPj0oMHxNKSl7Yz0wO2JyZWFrfX1lbHNlIGM9''@;'; + put 'put ''MCxmPTB9fXdoaWxlKDApO0Z0KDB8YVtwZT4+Ml0pLGFbKHBlPWwrMjR8MCk+PjJdPTErKDB8YVtwZT4+Ml0pLGFbbCs4Pj4yXT1mfWVsc2UgYz0xMjtyZXR1cm4gYWU9Z2UsMHxjfWZ1bmN0aW9uIHRmZShsKXt2YXIgYztmb3IoYz0wfGZlWyhsfD0wKT4+MF0sbD0wOygwfGZlWzYzNzUyKyhs''@;'; + put 'put ''PDwzKT4+MF0pIT1jPDwyND4+MjQ7KWlmKDEyPT0oMHwobD1sKzF8MCkpKXtsPTEyO2JyZWFrfXJldHVybiAwfGFbNjM3NTIrKGw8PDMpKzQ+PjJdfWZ1bmN0aW9uIG5mZShsKXt2YXIgYz0wO3JldHVybihjPShsfD0wKS00OHwwKT4+PjA8MTA/MHxjOjB8KCgoYz0zMnxsKS05N3wwKT4+PjA8''@;'; + put 'put ''Nj9jKy04N3wwOi0xKX1mdW5jdGlvbiBCaihsKXt2YXIgcCxtLHcsYz0wLGY9MCxBPTAsYj0wO3JldHVybigwfChmPTB8YVsodz04KyhsfD0wKXwwKT4+Ml0pKT49KDB8KG09MHxhWyhwPWwrMTJ8MCk+PjJdKSk/KDB8bSk8PTMyNzY3JiYoYVtwPj4yXT1tPDwxLDAhPSgwfChjPTB8VWEoMHxh''@;'; + put 'put ''WyhBPWwrNHwwKT4+Ml0sbTw8MykpKSk/KGFbQT4+Ml09YyxmPTB8YVt3Pj4yXSxiPTYpOmM9MDooYz0wfGFbbCs0Pj4yXSxiPTYpLDY9PSgwfGIpJiYoYVt3Pj4yXT1mKzEsYj0wfFgxKDB8YVtsPj4yXSwwLDAsMSwyMCksYVtjKyhmPDwyKT4+Ml09YixjPWIpLDB8Y31mdW5jdGlvbiBvZmUo''@;'; + put 'put ''bCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTA7ZTpkb3tpZigoMHxjKT4oMHxmKSljPTA7ZWxzZSBmb3IoOzspe3Q6ZG97aWYoMHx2aihjKSlmb3IobT0wfG85KGMpLHA9bTs7KXtpZihBPWMrMXwwLHA9cCsxfDAsKDB8Yyk+PSgwfGYpKXt3PW0sYz1BLEE9MTI7YnJl''@;'; + put 'put ''YWsgdH1pZigoMHxvOShBKSkhPSgwfHApKXt3PW0sYz1BLEE9MTI7YnJlYWt9Yz1BfWVsc2V7aWYoISgwfEFqKGMpKSl7Yz1jKzF8MDticmVha31mb3IocD1tPTB8QWcoYyk7Oyl7aWYoQT1jKzF8MCxwPXArMXwwLCgwfGMpPj0oMHxmKSl7dz1tLGM9QSxBPTEyO2JyZWFrIHR9aWYoKDB8QWco''@;'; + put 'put ''QSkpIT0oMHxwKSl7dz1tLGM9QSxBPTEyO2JyZWFrfWM9QX19fXdoaWxlKDApO2lmKDEyPT0oMHxBKSl7aWYoQT0wLCEobT0wfEJqKGwpKSl7Yz0tMTticmVhayBlfWFbbT4+Ml09dyxhW20rND4+Ml09cCstMSxhW20rOD4+Ml09LTF9aWYoKDB8Yyk+KDB8Zikpe2M9MDticmVha319fXdoaWxl''@;'; + put 'put ''KDApO3JldHVybiAwfGN9ZnVuY3Rpb24gYWZlKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgdyxiLGssTSxSLEE9MCxEPTA7cmV0dXJuIFI9YWUsYWU9YWUrMTZ8MCxNPVIsKDB8KGw9MHxhWzQwKyhiPTB8YVs0KyhsfD0wKT4+Ml0pPj4yXSkpPjAmMCE9KDB8KHc9MD09KDgm''@;'; + put 'put ''YVsoaz1iKzU2fDApPj4yXXwwKT9mOjApKT8obD0wfEIwKGw8PDIpKT8oQT1sLGY9bCxEPTMpOmw9MTI6KEE9MCxmPTAsRD0zKSwzPT0oMHxEKSYmKGw9MHxhW2IrNjA+PjJdPzB8ZnVuY3Rpb24gbGZlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBKcixMcixsMCxW''@;'; + put 'put ''aSxPaSxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLFdlPTAsb3Q9MCxTdD0wLGt0PTAsbHQ9MCxFdD0wLFp0PTAsY3Q9MCxidD0wLGFuPTAsU249MCxIbj0wLHVyPTAsSHI9MCxFcj0w''@;'; + put 'put ''LGZyPTAsRHI9MDtPaT1hZSxhZT1hZSsxNnwwLGFbKGwwPU9pKT4+Ml09MCxHPTEmcCxKcj0yJnAsUj00JmFbKExyPWwrNTZ8MCk+PjJdLFZpPTB8TCQoMCwwKTtlOmRve2lmKFZpKXtpZighKEs9MHxYMShWaSwwLDAsMCwzMikpKXt3ZyhWaSkscD0xMjticmVha31hW0srMjQ+PjJdPTAsYVtL''@;'; + put 'put ''KzI4Pj4yXT0wLChwZT0wfGFbKERyPWwrNDB8MCk+PjJdKT8ocD0wfEIwKHBlPDwyKSk/KGs9cCxiPXAsU3Q9Nik6KEQ9MCxNPTAsaz1wLHA9MTIsYj0wLHc9MCxBPTApOihrPTAsYj0wLFN0PTYpO3Q6ZG97aWYoNj09KDB8U3QpKXtpZihwPTB8YVtsKzI4Pj4yXSl7aWYoIShwPTB8QjAocDw8''@;'; + put 'put ''MykpKXtEPXAsTT0wLHA9MTIsdz0wLEE9MDticmVha31EPXAsdz1wfWVsc2UgRD0wLHc9MDtpZihwPTB8YVsoZnI9bCs1MnwwKT4+Ml0pe2lmKCEocD0wfEIwKHA8PDIpKSl7TT1wLHA9MTIsQT0wO2JyZWFrfU09cCxBPXB9ZWxzZSBNPTAsQT0wO1NuPWwrOHwwLEhuPWwrMTJ8MCx1cj0wPT0o''@;'; + put 'put ''MHxmKSxIcj0wIT0oMHxmKSxFcj1sKzMyfDAsYW49MCE9KDB8UiksYnQ9MD09KDB8RyksYmU9YyxwPTEsZ2U9LTEsUmU9LTEsUj1wZSxvdD0wO246Zm9yKDs7KXtpZigoMHxSKT4wKXtHPTA7ZG97YVtrKyhHPDwyKT4+Ml09LTEsdXJ8fChhW2YrKEc8PDIpPj4yXT0tMSxSPTB8YVtEcj4+Ml0p''@;'; + put 'put ''LEc9RysxfDB9d2hpbGUoKDB8Ryk8KDB8UikpfWlmKCgwfChSPTB8YVtmcj4+Ml0pKT4wJiZ1MigwfEEsMCxSPDwyfDApLFp0PXArZ2V8MCwoMHwocD0wfGM4KGwwLGJlLDQpKSk8MSl7aWYoKDB8cCk8MCl7cD0xO2JyZWFrIHR9cD0xfWlmKEV0PWJlK3B8MCxjdD0wfGFbbDA+PjJdLDB8YVso''@;'; + put 'put ''Rz04KyhSPTB8YVtTbj4+Ml0pfDApPj4yXSl7Zm9yKEhlPTAhPSgwfFp0KSxWZT05NT09KDB8b3QpLHFlPTA9PSgwfFp0KSxXZT1hbiYxMD09KDB8b3QpLG50PSgwfFp0KTwxJmJ0LExlPVIsUj0wLE9lPTAsYmU9Rzs7KXtHPTB8YVsoZ2U9TGUrMjB8MCk+PjJdO3I6ZG97aWYoRyl7aWYoMD09''@;'; + put 'put ''KDEmR3wwKXxudHxXZSl7aWYoMiZHfDAmJiEoMD09KChsdD0wfGFbbDA+PjJdKXxKcnwwKXxhbiYxMD09KDB8bHQpKSl7cGU9T2U7YnJlYWt9ZG97aWYoMTYmR3wwKXtpZihWZSl7cGU9T2U7YnJlYWsgcn1pZigwfHdzKG90KSl7cGU9T2U7YnJlYWsgcn1pZig5NT09KDB8KEc9MHxhW2wwPj4y''@;'; + put 'put ''XSkpKWJyZWFrO2lmKCEoMHx3cyhHKSkpe3BlPU9lO2JyZWFrIHJ9fX13aGlsZSgwKTtpZigzMiYoRz0wfGFbZ2U+PjJdKSl7aWYoVmUpe2lmKDk1PT0oMHwoRz0wfGFbbDA+PjJdKSkpe3BlPU9lO2JyZWFrfX1lbHNlIGlmKChsdD0wPT0oMHx3cyhvdCkpKXw5NT09KDB8KEc9MHxhW2wwPj4y''@;'; + put 'put ''XSkpKXtwZT1PZTticmVha31pZigwfHdzKEcpKXtwZT1PZTticmVha31HPTB8YVtnZT4+Ml19cGU9MHxhW2wwPj4yXTtkb3tpZigwIT0oMHxwZSkmSGUmMCE9KDY0Jkd8MCkpe2lmKFZlP0c9MTooRz0wIT0oMHx3cyhvdCkpLHBlPTB8YVtsMD4+Ml0pLDk1PT0oMHxwZSkpe2lmKEcpe3BlPU9l''@;'; + put 'put ''O2JyZWFrIHJ9YnJlYWt9aWYoR14wIT0oMHx3cyhwZSkpKWJyZWFrO3BlPU9lO2JyZWFrIHJ9fXdoaWxlKDApO2lmKCEoMTI4JmFbZ2U+PjJdKSl7U3Q9NDk7YnJlYWt9aWYocWV8MD09KDB8KEc9MHxhW2wwPj4yXSkpKXtwZT1PZTticmVha31pZihWZT9wZT0xOihwZT0wIT0oMHx3cyhvdCkp''@;'; + put 'put ''LEc9MHxhW2wwPj4yXSksOTU9PSgwfEcpKXtpZihwZSl7U3Q9NDk7YnJlYWt9cGU9T2U7YnJlYWt9aWYocGVeMCE9KDB8d3MoRykpKXtwZT1PZTticmVha31TdD00OTticmVha31wZT1PZX1lbHNlIFN0PTQ5fXdoaWxlKDApO2Rve2lmKDQ5PT0oMHxTdCkpe2lmKFN0PTAsIU9lKXtSPTB8YVtM''@;'; + put 'put ''ZSsxNj4+Ml0scGU9MHxhW2JlPj4yXTticmVha31pZihHPTB8YVsocGU9SysyOHwwKT4+Ml0pSz1HO2Vsc2V7aWYoIShHPTB8WDEoVmksMCwwLDAsMzIpKSl7U3Q9NTM7YnJlYWsgbn1pZihhW0crMjQ+PjJdPUssYVtHKzI4Pj4yXT0wLGx0PTB8WDEoVmksMCwwLDAsYVtEcj4+Ml08PDIpLGFb''@;'; + put 'put ''RysyMD4+Ml09bHQsIWx0KXtTdD02MDticmVhayBufWFbcGU+PjJdPUcsSz1HfWlmKGFbSz4+Ml09WnQsYVtLKzQ+PjJdPUV0LGFbSys4Pj4yXT1hW2JlPj4yXSxhW0srMTI+PjJdPWFbTGUrMTI+PjJdLGFbSysxNj4+Ml09YVtsMD4+Ml0sKDB8YVtEcj4+Ml0pPjApe3BlPTB8YVtLKzIwPj4y''@;'; + put 'put ''XSxHPTA7ZG97YVtwZSsoRzw8Mik+PjJdPWFbaysoRzw8Mik+PjJdLEc9RysxfDB9d2hpbGUoKDB8Ryk8KDB8YVtEcj4+Ml0pKX1pZihHPTB8YVtMZSsxNj4+Ml0pe2lmKCgwfChwZT0wfGFbRz4+Ml0pKTw9LTEpe3BlPU9lO2JyZWFrfWdlPTB8YVtLKzIwPj4yXTtkb3tHPUcrNHwwLGFbZ2Ur''@;'; + put 'put ''KHBlPDwyKT4+Ml09WnQscGU9MHxhW0c+PjJdfXdoaWxlKCgwfHBlKT4tMSk7cGU9T2V9ZWxzZSBwZT1PZX19d2hpbGUoMCk7aWYoISgwfGFbKGJlPUxlKzQwfDApPj4yXSkpYnJlYWs7TGU9TGUrMzJ8MCxPZT1wZX1pZihSKXtpZigoMHwoRz0wfGFbUj4+Ml0pKT4tMSlkb3thW2srKEc8PDIp''@;'; + put 'put ''Pj4yXT1adCxHPTB8YVsoUj1SKzR8MCk+PjJdfXdoaWxlKCgwfEcpPi0xKX1lbHNlIFI9MDtwZT8oYmU9WnQsZ2U9RXQsSGU9cGUsVmU9UixTdD03OSk6U3Q9MTcxfWVsc2UgUj0wLFN0PTE3MTtyOmZvcig7Oyl7aWYoNzk9PSgwfFN0KSl7aWYoKDB8SGUpPT0oMHxhW0huPj4yXSkpe2lmKCgw''@;'; + put 'put ''fFJlKT49KDB8YmUpKXtpZighKEhyJigwfFJlKT09KDB8YmUpKSl7Uj1WZSxTdD0xNzE7Y29udGludWV9aWYoISgwfGokKFI9MHxhW0RyPj4yXSwwfGFbRXI+PjJdLGssZikpKXtSPVZlLFN0PTE3MTtjb250aW51ZX19ZWxzZXtpZih1cil7UmU9YmUsUj1WZSxTdD0xNzE7Y29udGludWV9Uj0w''@;'; + put 'put ''fGFbRHI+PjJdfWlmKCEoKDB8Uik+MCkpe1JlPWJlLFI9VmUsU3Q9MTcxO2NvbnRpbnVlfWZvcihSPTA7OylpZihhW2YrKFI8PDIpPj4yXT1hW2srKFI8PDIpPj4yXSwoMHwoUj1SKzF8MCkpPj0oMHxhW0RyPj4yXSkpe1JlPWJlLFI9VmUsU3Q9MTcxO2NvbnRpbnVlIHJ9fWlmKDAhPSgwfGFb''@;'; + put 'put ''KExlPUhlKzh8MCk+PjJdKSYmMCE9KDI1NiZhW0hlKzIwPj4yXXwwKSl7aWYoTiQoMSsoRz0wfGFbSGUrMjQ+PjJdKXwwLEQsLTkmYVtMcj4+Ml0sbCxrLGJlKSwwfHMyKGMrKGx0PTB8YVtEKyhHPDwzKT4+Ml0pfDAsZ2UrLTF8MCxHPSgwfGFbRCsoRzw8MykrND4+Ml0pLWx0fDApKXtSPVZl''@;'; + put 'put ''LFN0PTE3MTtjb250aW51ZX1pZihSPTEmKGx0PTA9PSgwfEcpKSxwZT0wfGFbSGUrMTI+PjJdLGx0JiYwfGFbTSsocGU8PDIpPj4yXSl7Uj1WZSxTdD0xNzE7Y29udGludWV9aWYoYVtNKyhwZTw8Mik+PjJdPVIsZ2U9Z2UrKEc9RystMXwwKXwwLEc9RytiZXwwLHBlPTB8YVtsMD4+Ml0sKDB8''@;'; + put 'put ''KFI9MHxjOChsMCxnZSw0KSkpPDEpe2lmKCgwfFIpPDApe3A9MTticmVhayB0fVI9MX1rdD1nZStSfDAsbHQ9Un1lbHNle2lmKCEocGU9MHxhW2wwPj4yXSkpe1I9VmUsU3Q9MTcxO2NvbnRpbnVlfWlmKCgwfChSPTB8YzgobDAsZ2UsNCkpKTwxKXtpZigoMHxSKTwwKXtwPTE7YnJlYWsgdH1S''@;'; + put 'put ''PTF9Rz1iZSxrdD1nZStSfDAsbHQ9Un1pZihiZT1HK3B8MCwhKDB8YVtMZT4+Ml0pKXtwPWx0LFI9VmUsU3Q9MTcxO2NvbnRpbnVlfWZvcihxZT0wIT0oMHxiZSksbnQ9OTU9PSgwfHBlKSxXZT0wPT0oMHxiZSksU3Q9YW4mMTA9PSgwfHBlKSxvdD0oMHxiZSk8MSZidCxPZT0wLFI9VmU7Oyl7''@;'; + put 'put ''aTpkb3tpZigoMHxhW0hlPj4yXSk+Pj4wPD1wZT4+PjApe2lmKCgwfGFbSGUrND4+Ml0pPj4+MDxwZT4+PjApYnJlYWs7cD0wfGFbKGdlPUhlKzIwfDApPj4yXTtkb3tpZigwfHApe2lmKCEoMD09KDEmcHwwKXxvdHxTdCl8fDImcHwwJiYhKDA9PSgoVmU9MHxhW2wwPj4yXSl8SnJ8MCl8YW4m''@;'; + put 'put ''MTA9PSgwfFZlKSkpYnJlYWsgaTtkb3tpZigxNiZwfDApe2lmKG50fHwwfHdzKHBlKSlicmVhayBpO2lmKDk1PT0oMHwocD0wfGFbbDA+PjJdKSkpYnJlYWs7aWYoISgwfHdzKHApKSlicmVhayBpfX13aGlsZSgwKTtpZigzMiYocD0wfGFbZ2U+PjJdKSl7aWYobnQpe2lmKDk1PT0oMHwocD0w''@;'; + put 'put ''fGFbbDA+PjJdKSkpYnJlYWsgaX1lbHNlIGlmKChWZT0wPT0oMHx3cyhwZSkpKXw5NT09KDB8KHA9MHxhW2wwPj4yXSkpKWJyZWFrIGk7aWYoMHx3cyhwKSlicmVhayBpO3A9MHxhW2dlPj4yXX1HPTB8YVtsMD4+Ml07ZG97aWYoMCE9KDB8RykmcWUmMCE9KDY0JnB8MCkpe2lmKG50P3A9MToo''@;'; + put 'put ''cD0wIT0oMHx3cyhwZSkpLEc9MHxhW2wwPj4yXSksOTU9PSgwfEcpKXtpZihwKWJyZWFrIGk7YnJlYWt9aWYocF4wIT0oMHx3cyhHKSkpYnJlYWs7YnJlYWsgaX19d2hpbGUoMCk7ZG97aWYoMTI4JmFbZ2U+PjJdfDApe2lmKFdlfDA9PSgwfChwPTB8YVtsMD4+Ml0pKSlicmVhayBpO2lmKG50''@;'; + put 'put ''P0c9MTooRz0wIT0oMHx3cyhwZSkpLHA9MHxhW2wwPj4yXSksOTU9PSgwfHApKXtpZihHKWJyZWFrO2JyZWFrIGl9aWYoR14wIT0oMHx3cyhwKSkpYnJlYWsgaTticmVha319d2hpbGUoMCk7cD0wfGFbZ2U+PjJdO2Rve2lmKDQmcCl7aWYoMiZhW0xyPj4yXXwwKWJyZWFrO2lmKCEoMHx1OChw''@;'; + put 'put ''ZSwwfGFbSGUrMjQ+PjJdKSkpYnJlYWsgaTtwPTB8YVtnZT4+Ml19fXdoaWxlKDApO2Rve2lmKDQmcHwwKXtpZighKDImYVtMcj4+Ml0pfHwwfHU4KFZlPTB8QWcocGUpLDB8YVsocD1IZSsyNHwwKT4+Ml0pKWJyZWFrO2lmKCEoMHx1OChWZT0wfG85KHBlKSwwfGFbcD4+Ml0pKSlicmVhayBp''@;'; + put 'put ''fX13aGlsZSgwKTtpZighKDgmYVtnZT4+Ml0pKWJyZWFrO2lmKDB8ViQoMHxhW0hlKzI4Pj4yXSxwZSwyJmFbTHI+PjJdKSlicmVhayBpfX13aGlsZSgwKTtpZighT2Upe09lPTB8YVtMZT4+Ml0sUj0wfGFbSGUrMTY+PjJdO2JyZWFrfWlmKHA9MHxhWyhHPUsrMjh8MCk+PjJdKUs9cDtlbHNl''@;'; + put 'put ''e2lmKCEocD0wfFgxKFZpLDAsMCwwLDMyKSkpe1N0PTE0NTticmVhayBufWlmKGFbcCsyND4+Ml09SyxhW3ArMjg+PjJdPTAsVmU9MHxYMShWaSwwLDAsMCxhW0RyPj4yXTw8MiksYVtwKzIwPj4yXT1WZSwhVmUpe1N0PTE1MjticmVhayBufWFbRz4+Ml09cCxLPXB9aWYoYVtLPj4yXT1iZSxh''@;'; + put 'put ''W0srND4+Ml09a3QsYVtLKzg+PjJdPWFbTGU+PjJdLGFbSysxMj4+Ml09YVtIZSsxMj4+Ml0sYVtLKzE2Pj4yXT1hW2wwPj4yXSwoMHxhW0RyPj4yXSk+MCl7Rz0wfGFbSysyMD4+Ml0scD0wO2Rve2FbRysocDw8Mik+PjJdPWFbaysocDw8Mik+PjJdLHA9cCsxfDB9d2hpbGUoKDB8cCk8KDB8''@;'; + put 'put ''YVtEcj4+Ml0pKX1pZighKHA9MHxhW0hlKzE2Pj4yXSl8fCgwfChHPTB8YVtwPj4yXSkpPD0tMSlicmVhaztnZT0wfGFbSysyMD4+Ml07ZG97YVtnZSsoRzw8Mik+PjJdPWJlLEc9MHxhWyhwPXArNHwwKT4+Ml19d2hpbGUoKDB8Ryk+LTEpfX13aGlsZSgwKTtpZighKDB8YVsoTGU9SGUrNDB8''@;'; + put 'put ''MCk+PjJdKSlicmVhaztIZT1IZSszMnwwfWlmKCFPZSl7cD1sdCxTdD0xNzE7Y29udGludWV9aWYoUilpZigoMHwocD0wfGFbUj4+Ml0pKT4tMSl7ZG97Uj1SKzR8MCxhW2srKHA8PDIpPj4yXT1iZSxwPTB8YVtSPj4yXX13aGlsZSgoMHxwKT4tMSk7cGU9UmUsRz1rdCxwPWx0fWVsc2UgcGU9''@;'; + put 'put ''UmUsRz1rdCxwPWx0O2Vsc2UgcGU9UmUsRz1rdCxwPWx0LFI9MH1lbHNlIGlmKDE3MT09KDB8U3QpKXtpZihTdD0wLCEoZ2U9MHxhW0srMjQ+PjJdKSlicmVhaztpZigyNTYmYVsyMCsoT2U9MHxhW0srOD4+Ml0pPj4yXXwwJiYoYVtNKyhhW0srMTI+PjJdPDwyKT4+Ml09MCksYmU9MHxhW0s+''@;'; + put 'put ''PjJdLExlPTB8YVtLKzQ+PjJdLGFbbDA+PjJdPWFbSysxNj4+Ml0sKDB8KHBlPTB8YVtEcj4+Ml0pKT4wKXtLPTB8YVtLKzIwPj4yXSxHPTA7ZG97YVtrKyhHPDwyKT4+Ml09YVtLKyhHPDwyKT4+Ml0sRz1HKzF8MH13aGlsZSgoMHxHKTwoMHxwZSkpO0s9Z2UscGU9UmUsRz1MZX1lbHNlIEs9''@;'; + put 'put ''Z2UscGU9UmUsRz1MZX1nZT1HLFJlPXBlLEhlPU9lLFZlPVIsU3Q9Nzl9aWYoKFI9KDB8UmUpPi0xKXwwPT0oMHxhW2wwPj4yXSkpe1N0PTE4MDticmVha31hW2wwPj4yXT1jdCxiZT1FdCxnZT1adCxSPTB8YVtEcj4+Ml0sb3Q9Y3R9aWYoNTM9PSgwfFN0KSl7aWYod2coVmkpLDB8ayYmRnQo''@;'; + put 'put ''YiksMHxEJiZGdCh3KSwhTSl7cD0xMjticmVhayBlfUZ0KEEpLHA9MTI7YnJlYWsgZX1pZig2MD09KDB8U3QpKXtpZih3ZyhWaSksMHxrJiZGdChiKSwwfEQmJkZ0KHcpLCFNKXtwPTEyO2JyZWFrIGV9RnQoQSkscD0xMjticmVhayBlfWlmKDE0NT09KDB8U3QpKXtpZih3ZyhWaSksMHxrJiZG''@;'; + put 'put ''dChiKSwwfEQmJkZ0KHcpLCFNKXtwPTEyO2JyZWFrIGV9RnQoQSkscD0xMjticmVhayBlfWlmKDE1Mj09KDB8U3QpKXtpZih3ZyhWaSksMHxrJiZGdChiKSwwfEQmJkZ0KHcpLCFNKXtwPTEyO2JyZWFrIGV9RnQoQSkscD0xMjticmVhayBlfWlmKDE4MD09KDB8U3QpKXthW20+PjJdPVJlLHA9''@;'; + put 'put ''MSYoMV5SKTticmVha319fXdoaWxlKDApO3dnKFZpKSwwfGsmJkZ0KGIpLDB8RCYmRnQodyksTSYmRnQoQSl9ZWxzZSBwPTEyfXdoaWxlKDApO3JldHVybiBhZT1PaSwwfHB9KGIsYyxBLG0sTSk6MHxmdW5jdGlvbiBzZmUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFy''@;'; + put 'put ''IEhyLEVyLGZyLERyLExyLGwwLE9pLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MCxsdD0wLEV0PTAsWnQ9MCxjdD0wLGJ0PTAsYW49MCxTbj0wLEhu''@;'; + put 'put ''PTAsdXI9MCxKcj0wLFZpPTA7aWYoT2k9YWUsYWU9YWUrMTZ8MCxhWyhMcj1PaSk+PjJdPTAsTT0xJnAsZnI9MiZwLGs9NCZhWyhEcj1sKzU2fDApPj4yXSxsMD0wfEIwKHA9MTIrKEVyPShIcj1mPzB8YVtsKzQwPj4yXTowKTw8MikrKHc9KGI9MHxhW2wrNTI+PjJdKTw8MykrKChBPXcrOHww''@;'; + put 'put ''KSsoMHxBcihFcixiKSk8PDEpfDApKXtpZih1MigwfGwwLDAsMHxwKSxBPTMmKHA9KHVyPShwPShSPShwPShEPShwPWwwK0VyfDApKygwPT0oMHwoRD0zJnApKT8wOjQtRHwwKXwwKStBfDApKygwPT0oMHwoUj0zJnApKT8wOjQtUnwwKXwwKStBfDApKygwPT0oMHwodXI9MyZwKSk/MDo0LXVy''@;'; + put 'put ''fDApfDApK3d8MCksdz0oMHxiKT4wKXtmb3IocD1wKygwPT0oMHxBKT8wOjQtQXwwKXwwLEE9MDthW1IrKEE8PDMpKzQ+PjJdPXAsYVtEKyhBPDwzKSs0Pj4yXT1wPXArRXJ8MCwhKCgwfChBPUErMXwwKSk+PSgwfGIpKTspcD1wK0VyfDA7aWYodyl7cD0wO2Rve2FbdXIrKHA8PDMpPj4yXT0t''@;'; + put 'put ''MSxwPXArMXwwfXdoaWxlKCgwfHApPCgwfGIpKX19KDB8KHA9MHxjOChMcixjLDQpKSk8MT8oMHxwKTwwP3A9MTooYj0xLFZpPTExKTooYj1wLFZpPTExKTtlOmRve2lmKDExPT0oMHxWaSkpe2ZvcihIbj1sKzh8MCxTbj0wIT0oMHxrKSxsdD0wPT0oMHxNKSxFdD0oMHxIcik+MCxadD1sKzEy''@;'; + put 'put ''fDAsY3Q9KDB8SHIpPDEsYnQ9bCs0NHwwLGFuPWwrMzJ8MCxTdD1sKzM2fDAsa3Q9MD09KDB8SHIpLHc9MCxSZT1jK2J8MCxMZT0wLGs9MCxwPS0xLEE9RCxXZT1sMCxWZT1ELEhlPVI7Oyl7aWYoKDB8cCk8MCl7TT04KyhsPTB8YVtIbj4+Ml0pfDA7dDpkb3tpZigwfGFbTT4+Ml0pZm9yKEs9''@;'; + put 'put ''MCE9KDB8TGUpLHBlPTk1PT0oMHx3KSxnZT0wPT0oMHxMZSksT2U9U24mMTA9PSgwfHcpLGJlPSgwfExlKTwxJmx0Ozspe246Zm9yKDtHPWwrMTJ8MCwhKCgwfGFbdXIrKGFbRz4+Ml08PDMpPj4yXSk+PSgwfExlKSk7KXtpZighKGM9MHxhWyhSPWwrMjB8MCk+PjJdKSl7Vmk9NDY7YnJlYWt9''@;'; + put 'put ''cjpkb3tpZigwPT0oMSZjfDApfGJlfE9lKXtpZigyJmN8MCYmISgwPT0oKG90PTB8YVtMcj4+Ml0pfGZyfDApfFNuJjEwPT0oMHxvdCkpKWJyZWFrO2Rve2lmKDE2JmN8MCl7aWYocGV8fDB8d3ModykpYnJlYWsgcjtpZig5NT09KDB8KGM9MHxhW0xyPj4yXSkpKWJyZWFrO2lmKCEoMHx3cyhj''@;'; + put 'put ''KSkpYnJlYWsgcn19d2hpbGUoMCk7aWYoMzImKGM9MHxhW1I+PjJdKSl7aWYocGUpe2lmKDk1PT0oMHwoYz0wfGFbTHI+PjJdKSkpYnJlYWt9ZWxzZSBpZigob3Q9MD09KDB8d3ModykpKXw5NT09KDB8KGM9MHxhW0xyPj4yXSkpKWJyZWFrO2lmKDB8d3MoYykpYnJlYWs7Yz0wfGFbUj4+Ml19''@;'; + put 'put ''RD0wfGFbTHI+PjJdO2Rve2lmKDAhPSgwfEQpJksmMCE9KDY0JmN8MCkpe2lmKHBlP2M9MTooYz0wIT0oMHx3cyh3KSksRD0wfGFbTHI+PjJdKSw5NT09KDB8RCkpe2lmKGMpYnJlYWsgcjticmVha31pZihjXjAhPSgwfHdzKEQpKSlicmVhazticmVhayByfX13aGlsZSgwKTtpZighKDEyOCZh''@;'; + put 'put ''W1I+PjJdKSl7Vmk9NDY7YnJlYWsgbn1pZihnZXwwPT0oMHwoYz0wfGFbTHI+PjJdKSkpYnJlYWs7aWYocGU/RD0xOihEPTAhPSgwfHdzKHcpKSxjPTB8YVtMcj4+Ml0pLDk1PT0oMHxjKSl7aWYoRCl7Vmk9NDY7YnJlYWsgbn1icmVha31pZihEXjAhPSgwfHdzKGMpKSlicmVhaztWaT00Njti''@;'; + put 'put ''cmVhayBufX13aGlsZSgwKTtpZighKDB8YVsoTT1sKzQwfDApPj4yXSkpYnJlYWsgdDtsPWwrMzJ8MH1pZig0Nj09KDB8VmkpKXtpZihWaT0wLGFbQT4+Ml09YVtNPj4yXSxFdCYmdTIoMHxhW0ErND4+Ml0sLTEsMHxFciksMHwoTT0wfGFbbCsxNj4+Ml0pJiYoMHwoSnI9MHxhW00+PjJdKSk+''@;'; + put 'put ''LTEpe0Q9QSs0fDAsYz1Kcjtkb3soMHxjKTwoMHxIcikmJihhWygwfGFbRD4+Ml0pKyhjPDwyKT4+Ml09TGUpLGM9MHxhWyhNPU0rNHwwKT4+Ml19d2hpbGUoKDB8Yyk+LTEpfWlmKChNPSgwfGFbQT4+Ml0pIT0oMHxhW1p0Pj4yXSkpfGN0KWs9TT9rOjEscD1NP3A6TGUsTT1BKzR8MDtlbHNl''@;'; + put 'put ''e2s9MHxhWyhNPUErNHwwKT4+Ml0scD0wO2Rve2FbZisocDw8Mik+PjJdPWFbaysocDw8Mik+PjJdLHA9cCsxfDB9d2hpbGUoKDB8cCkhPSgwfEhyKSk7az0xLHA9TGV9YVt1cisoKG90PTB8YVtHPj4yXSk8PDMpPj4yXT1MZSxhW3VyKyhvdDw8MykrND4+Ml09TSxBPUErOHwwfWlmKCEoMHxh''@;'; + put 'put ''WyhNPWwrNDB8MCk+PjJdKSlicmVhaztsPWwrMzJ8MH19d2hpbGUoMCk7aWYoYVtBPj4yXT0wLCEoQT0wfGFbTHI+PjJdKSlicmVhazt3PUF9ZWxzZSBpZihrdHx8ISgoMHxBKSE9KDB8VmUpJjAhPSgwfCh3PTB8YVtMcj4+Ml0pKSkpYnJlYWs7aWYob3Q9TGUrYnwwLCgwfChBPTB8YzgoTHIs''@;'; + put 'put ''UmUsNCkpKTwxKXtpZigoMHxBKTwwKXtwPTE7YnJlYWsgZX1iPTF9ZWxzZSBiPUE7aWYobnQ9UmUrYnwwLDAhPSgwfGspJjAhPSgwfGFbYnQ+PjJdKSl7aWYoMHxhW1ZlPj4yXSl7cGU9KDB8KEs9MHxhWyhHPTB8YVtTdD4+Ml0pPj4yXSkpPi0xLFI9VmUsQT1IZTtkb3tEPVIrNHwwO3Q6ZG97''@;'; + put 'put ''aWYocGUpe009MCxjPUs7ZG97aWYobD0wfGFbRysoKDF8TSk8PDIpPj4yXSwoMHxjKT49KDB8SHIpfHwoMHxhWyhrPTB8YVtEPj4yXSkrKGw8PDIpPj4yXSk9PSgwfGFbZisobDw8Mik+PjJdKSYmKDB8YVtrKyhjPDwyKT4+Ml0pPCgwfGFbZisoYzw8Mik+PjJdKSlicmVhayB0O2M9MHxhW0cr''@;'; + put 'put ''KChNPU0rMnwwKTw8Mik+PjJdfXdoaWxlKCgwfGMpPi0xKTtNPUQsVmk9NzV9ZWxzZSBNPUQsaz0wfGFbRD4+Ml0sVmk9NzV9d2hpbGUoMCk7NzU9PSgwfFZpKSYmKFZpPTAsYVtBPj4yXT1hW1I+PjJdLHFlPTB8YVsoUmU9QSs0fDApPj4yXSxhW1JlPj4yXT1rLGFbTT4+Ml09cWUsQT1BKzh8''@;'; + put 'put ''MCksUj1SKzh8MH13aGlsZSgwIT0oMHxhW1I+PjJdKSl9ZWxzZSBBPUhlO2FbQT4+Ml09MCxxZT1WZSxrPTB9ZWxzZSBxZT1IZSxIZT1WZTtpZihNPTB8YVtIZT4+Ml0pZm9yKGdlPTAhPSgwfG90KSxiZT05NT09KDB8dyksT2U9MD09KDB8b3QpLFJlPVNuJjEwPT0oMHx3KSxMZT0oMHxvdCk8''@;'; + put 'put ''MSZsdCxwZT1IZSxsPVdlLEE9cWU7Oyl7aWYoMHxhWyhjPU0rOHwwKT4+Ml0pZm9yKEs9cGUrNHwwLEc9bCxSPWM7Oyl7dDpkb3tpZigoMHxhW00+PjJdKT4+PjA8PXc+Pj4wJiYoMHxhW00rND4+Ml0pPj4+MD49dz4+PjApe2w9MHxhWyhEPU0rMjB8MCk+PjJdO2Rve2lmKDB8bCl7aWYoISgw''@;'; + put 'put ''PT0oMSZsfDApfExlfFJlKSl7bD1HO2JyZWFrIHR9aWYoMiZsfDAmJiEoMD09KChXZT0wfGFbTHI+PjJdKXxmcnwwKXxTbiYxMD09KDB8V2UpKSl7bD1HO2JyZWFrIHR9ZG97aWYoMTYmbHwwKXtpZihiZSl7bD1HO2JyZWFrIHR9aWYoMHx3cyh3KSl7bD1HO2JyZWFrIHR9aWYoOTU9PSgwfChs''@;'; + put 'put ''PTB8YVtMcj4+Ml0pKSlicmVhaztpZighKDB8d3MobCkpKXtsPUc7YnJlYWsgdH19fXdoaWxlKDApO2lmKDMyJihsPTB8YVtEPj4yXSkpe2lmKGJlKXtpZig5NT09KDB8KGw9MHxhW0xyPj4yXSkpKXtsPUc7YnJlYWsgdH19ZWxzZSBpZigoV2U9MD09KDB8d3ModykpKXw5NT09KDB8KGw9MHxh''@;'; + put 'put ''W0xyPj4yXSkpKXtsPUc7YnJlYWsgdH1pZigwfHdzKGwpKXtsPUc7YnJlYWsgdH1sPTB8YVtEPj4yXX1jPTB8YVtMcj4+Ml07ZG97aWYoMCE9KDB8YykmZ2UmMCE9KDY0Jmx8MCkpe2lmKGJlP2w9MToobD0wIT0oMHx3cyh3KSksYz0wfGFbTHI+PjJdKSw5NT09KDB8Yykpe2lmKGwpe2w9Rzti''@;'; + put 'put ''cmVhayB0fWJyZWFrfWlmKGxeMCE9KDB8d3MoYykpKWJyZWFrO2w9RzticmVhayB0fX13aGlsZSgwKTtkb3tpZigxMjgmYVtEPj4yXXwwKXtpZihPZXwwPT0oMHwobD0wfGFbTHI+PjJdKSkpe2w9RzticmVhayB0fWlmKGJlP2M9MTooYz0wIT0oMHx3cyh3KSksbD0wfGFbTHI+PjJdKSw5NT09''@;'; + put 'put ''KDB8bCkpe2lmKGMpYnJlYWs7bD1HO2JyZWFrIHR9aWYoY14wIT0oMHx3cyhsKSkpe2w9RzticmVhayB0fWJyZWFrfX13aGlsZSgwKTtsPTB8YVtEPj4yXTtkb3tpZig0Jmwpe2lmKDImYVtEcj4+Ml18MClicmVhaztpZighKDB8dTgodywwfGFbTSsyND4+Ml0pKSl7bD1HO2JyZWFrIHR9bD0w''@;'; + put 'put ''fGFbRD4+Ml19fXdoaWxlKDApO2Rve2lmKDQmbHwwKXtpZighKDImYVtEcj4+Ml0pfHwwfHU4KFdlPTB8QWcodyksMHxhWyhsPU0rMjR8MCk+PjJdKSlicmVhaztpZighKDB8dTgoV2U9MHxvOSh3KSwwfGFbbD4+Ml0pKSl7bD1HO2JyZWFrIHR9fX13aGlsZSgwKTtpZighKDgmYVtEPj4yXSkp''@;'; + put 'put ''YnJlYWs7aWYoMHxWJCgwfGFbTSsyOD4+Ml0sdywyJmFbRHI+PjJdKSl7bD1HO2JyZWFrIHR9fX13aGlsZSgwKTtpZihFdCl7Yz0wfGFbSz4+Ml0sbD0wO2Rve2FbRysobDw8Mik+PjJdPWFbYysobDw8Mik+PjJdLGw9bCsxfDB9d2hpbGUoKDB8bCkhPSgwfEhyKSl9bD0wfGFbTSsxNj4+Ml07''@;'; + put 'put ''ZG97aWYoMHxsKXtpZigoMHwoYz0wfGFbbD4+Ml0pKTw9LTEpYnJlYWs7ZG97KDB8Yyk8KDB8SHIpJiYoYVtHKyhjPDwyKT4+Ml09b3QpLGM9MHxhWyhsPWwrNHwwKT4+Ml19d2hpbGUoKDB8Yyk+LTEpfX13aGlsZSgwKTtpZigoMHxhWyhjPXVyKygobD0wfGFbTSsxMj4+Ml0pPDwzKXwwKT4+''@;'; + put 'put ''Ml0pPj0oMHxvdCkpe2lmKCEoMHxqJChIciwwfGFbYW4+PjJdLEcsYz0wfGFbKGw9MHxhW3VyKyhsPDwzKSs0Pj4yXSk+PjJdKSkpe2w9RzticmVha31pZihhW2w+PjJdPUcsKDB8YVtSPj4yXSkhPSgwfGFbWnQ+PjJdKSl7bD1jO2JyZWFrfWlmKCFFdCl7az0xLGw9YyxwPW90O2JyZWFrfWZv''@;'; + put 'put ''cihwPTA7OylpZihhW2YrKHA8PDIpPj4yXT1hW0crKHA8PDIpPj4yXSwoMHwocD1wKzF8MCkpPT0oMHxIcikpe2s9MSxsPWMscD1vdDticmVhayB0fX1hW0E+PjJdPVdlPTB8YVtSPj4yXSxEPTB8YVsoVmU9QSs0fDApPj4yXSxhW1ZlPj4yXT1HLGFbYz4+Ml09b3QsYVt1cisobDw8MykrND4+''@;'; + put 'put ''Ml09VmU7ZG97aWYoKDB8YVtadD4+Ml0pPT0oMHxXZSkpe2lmKC0xPT0oMHxwKSl7aWYoIUV0KXtwPW90LGs9MTticmVha31wPTB9ZWxzZXtpZighRXR8fCgwfGFbRz4+Ml0pPigwfGFbZj4+Ml0pKWJyZWFrO3A9MH1kb3thW2YrKHA8PDIpPj4yXT1hW0crKHA8PDIpPj4yXSxwPXArMXwwfXdo''@;'; + put 'put ''aWxlKCgwfHApPCgwfEhyKSk7cD1vdCxrPTF9fXdoaWxlKDApO2w9RCxBPUErOHwwfWVsc2UgbD1HfXdoaWxlKDApO2lmKCEoMHxhWyhSPU0rNDB8MCk+PjJdKSlicmVhaztNPU0rMzJ8MCxHPWx9aWYoIShNPTB8YVsocGU9cGUrOHwwKT4+Ml0pKXtNPWw7YnJlYWt9fWVsc2UgTT1XZSxBPXFl''@;'; + put 'put ''O2FbQT4+Ml09MCxSZT1udCxMZT1vdCxXZT1NLFZlPXFlfWFbbT4+Ml09cCxwPj4+PTMxfX13aGlsZSgwKTtGdChsMCl9ZWxzZSBwPTEyO3JldHVybiBhZT1PaSwwfHB9KGIsYyxBLG0sTSksbHx8TiQodyxwLDB8YVtrPj4yXSxiLEEsMHxhW00+PjJdKSxBJiZGdChmKSksYWU9UiwwfGx9ZnVu''@;'; + put 'put ''Y3Rpb24gTiQobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxwfD0wLG18PTA7dmFyIHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTA7aWYoMD09KDgmKGZ8PTApfDApJigwfChBfD0wKSk+LTEmJihSPTB8YVtwKzE2Pj4yXSxEPTAhPSgwfGwpJjAhPSgwfChHPTB8YVtwKzI4Pj4yXSkpKSl7''@;'; + put 'put ''TT0wfGFbcCs0OD4+Ml0saz0wO2Rve2FbKHc9Yysoazw8Myl8MCk+PjJdPWI9KDB8KGY9MHxhW1IrKDEyKmt8MCk+PjJdKSk9PSgwfE0pP0E6MHxhW20rKGY8PDIpPj4yXSxhWyhwPWMrKGs8PDMpKzR8MCk+PjJdPWY9KDB8KGY9MHxhW1IrKDEyKmt8MCkrND4+Ml0pKT09KDB8TSk/QTowfGFb''@;'; + put 'put ''bSsoZjw8Mik+PjJdLC0xPT0oMHxmKXwtMT09KDB8YikmJihhW3A+PjJdPS0xLGFbdz4+Ml09LTEpLGs9aysxfDB9d2hpbGUoaz4+PjA8bD4+PjAmaz4+PjA8Rz4+PjApO2lmKEQpe2Y9MDtkb3tpZihiPWMrKGY8PDMpKzR8MCwwfChrPTB8YVtSKygxMipmfDApKzg+PjJdKSYmKDB8KEs9MHxh''@;'; + put 'put ''W2s+PjJdKSk+LTEpe3c9MCxtPUsscD0wfGFbKE09YysoZjw8Myl8MCk+PjJdO2RveygwfHApPj0oMHxhW2MrKG08PDMpPj4yXSkmJigwfGFbYj4+Ml0pPD0oMHxhW2MrKG08PDMpKzQ+PjJdKXx8KGFbYj4+Ml09LTEsYVtNPj4yXT0tMSxwPS0xKSxtPTB8YVtrKygodz13KzF8MCk8PDIpPj4y''@;'; + put 'put ''XX13aGlsZSgoMHxtKT4tMSl9Zj1mKzF8MH13aGlsZShmPj4+MDxsPj4+MCZmPj4+MDxHPj4+MCl9ZWxzZSBmPTB9ZWxzZSBmPTA7Zj4+PjA8bD4+PjAmJnUyKGMrKGY8PDMpfDAsLTEsbC1mPDwzfDApfWZ1bmN0aW9uIFYkKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MCxtPTA7cD0wfGFbKGx8''@;'; + put 'put ''PTApPj4yXTtlOmRve2lmKHApZm9yKG09MD09KDB8ZiksZj1wOzspe2lmKG0pe2lmKDB8dTgoYyxmKSl7Zj0xO2JyZWFrIGV9fWVsc2V7aWYoMHx1OChwPTB8bzkoYyksMHxhW2w+PjJdKSl7Zj0xO2JyZWFrIGV9aWYoMHx1OChwPTB8QWcoYyksMHxhW2w+PjJdKSl7Zj0xO2JyZWFrIGV9fWlm''@;'; + put 'put ''KCEoZj0wfGFbKGw9bCs0fDApPj4yXSkpe2Y9MDticmVha319ZWxzZSBmPTB9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBqJChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MDtlOmRve2lmKCgwfGwpPjApZm9yKG09MDs7KXtpZih3PTB8YVtmKyhtPDwy''@;'; + put 'put ''KT4+Ml0sQT0wfGFbcCsobTw8Mik+PjJdLDB8YVtjKyhtPDwyKT4+Ml0pe2lmKCgwfHcpPigwfEEpKXttPTE7YnJlYWsgZX1pZigoMHx3KTwoMHxBKSl7bT0wO2JyZWFrIGV9fWVsc2V7aWYoKDB8dyk8KDB8QSkpe209MTticmVhayBlfWlmKCgwfHcpPigwfEEpKXttPTA7YnJlYWsgZX19aWYo''@;'; + put 'put ''KDB8KG09bSsxfDApKT49KDB8bCkpe209MDticmVha319ZWxzZSBtPTB9d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiBaJChsLGMsZixwKXtsfD0wLHB8PTA7dmFyIGssRCxtPTAsQT0wLHc9MDtrPTB8QXIoZnw9MCxjfD0wKSxmPTA9PSgwfGMpPzA6ZixmZVsobT1wKzc0fDApPj4wXT0y''@;'; + put 'put ''NTUrKEE9MHxmZVttPj4wXSl8QSx3PShEPSgwfGFbcCs4Pj4yXSktKEE9MHxhWyhtPXArNHwwKT4+Ml0pfDApPj4+MDxrPj4+MD9EOmssKDB8RCk+MD8oZ28oMHxsLDB8QSwwfHcpLGFbbT4+Ml09QSt3LG09ay13fDAsbD1sK3d8MCk6bT1rO2U6ZG97aWYobSl7Zm9yKHc9cCszMnwwOyEoMHxm''@;'; + put 'put ''JChwKXx8KEE9MHxtaVs2MyZhW3c+PjJdXShwLGwsbSksKEErMXwwKT4+PjA8MikpOyl7aWYoIShtPW0tQXwwKSl7MTM7YnJlYWsgZX1sPWwrQXwwfWY9KChrLW18MCk+Pj4wKS8oYz4+PjApfDB9ZWxzZSAxM313aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIEckKGwpe3JldHVybiAwfGFb''@;'; + put 'put ''KGx8PTApKzYwPj4yXX1mdW5jdGlvbiBmZmUoKXt2YXIgYyxtLEEsdyxrLGw9MCxmPTAscD0wLGI9MDtrPWFlLGFlPWFlKzQ4fDAsdz1rKzI0fDAsQT1rKzE2fDAsbT1rLGY9MTUzNjg2LHA9MjArKGw9Yz1rKzI4fDApfDA7ZG97ZmVbbD4+MF09MHxmZVtmPj4wXSxsPWwrMXwwLGY9ZisxfDB9''@;'; + put 'put ''d2hpbGUoKDB8bCk8KDB8cCkpO2ZvcihmPWMrMTN8MCxsPTA7Oyl7aWYoX2NlKGYpLGFbbT4+Ml09YyxhW20rND4+Ml09MzI5NjIsYVttKzg+PjJdPTM4NCwoMHwocD0wfHVoKDB8QjgoNSwwfG0pKSkpPi0xKXtiPTQ7YnJlYWt9aWYoISgoMHxsKTw5OSkpe2w9MDticmVha31sPWwrMXwwfXJl''@;'; + put 'put ''dHVybiA0PT0oMHxiKSYmKGFbQT4+Ml09YyxwZigxMCwwfEEpLChsPTB8TSQocCwxNTM3MDYpKXx8KGFbdz4+Ml09cCxKdSg2LDB8dyksbD0wKSksYWU9aywwfGx9ZnVuY3Rpb24gUGoobCl7dmFyIGM9MCxmPTAscD0wO2x8PTAscD0zO2Rve2lmKDM9PSgwfHApKXtpZigoZj0wfGFbKGM9bCs0''@;'; + put 'put ''fDApPj4yXSk+Pj4wPCgwfGFbbCs4Pj4yXSk+Pj4wKXthW2M+PjJdPWYrMSxjPTB8SnRbZj4+MF07YnJlYWt9Yz0wfHVMKGwpO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIEZqKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLGs9MDtjfD0wLGs9Mztkb3tpZigzPT0o''@;'; + put 'put ''MHxrKSl7aWYocD0yNTUmbCwoMHwoZj0yNTUmbCkpIT0oMHxmZVtjKzc1Pj4wXSkmJihBPTB8YVsobT1jKzIwfDApPj4yXSk+Pj4wPCgwfGFbYysxNj4+Ml0pPj4+MCl7YVttPj4yXT1BKzEsZmVbQT4+MF09cDticmVha31mPTB8eGooYyxsKX19d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlv''@;'; + put 'put ''biBoZmUobCl7cmV0dXJuIDB8ZnVuY3Rpb24gdWZlKGwpe3JldHVybiAwfGZ1bmN0aW9uIHokKGwpe3ZhciBjPTA7cmV0dXJuIGM9MTI4JmFbKGx8PTApPj4yXSYmKDB8YVtsKzIwPj4yXSk+Pj4wPigwfGFbbCsyOD4+Ml0pPj4+MD8yOjEsKDB8KGM9MHxtaVs2MyZhW2wrNDA+PjJdXShsLDAs''@;'; + put 'put ''YykpKT49MCYmKGM9Yy0oMHxhW2wrOD4+Ml0pKygwfGFbbCs0Pj4yXSkrKDB8YVtsKzIwPj4yXSktKDB8YVtsKzI4Pj4yXSl8MCksMHxjfShsfD0wKX0obHw9MCl9ZnVuY3Rpb24gcncobCxjLGYscCl7dmFyIG0sQTtyZXR1cm4gY3w9MCxwfD0wLGY9MHxmdW5jdGlvbiBwZmUobCxjKXt2YXIg''@;'; + put 'put ''ZixwLEEsbT0wO3JldHVybiBsPSgoZj0wfEFyKG09NjU1MzUmKGN8PTApLEE9NjU1MzUmKGx8PTApKSk+Pj4xNikrKDB8QXIobSxwPWw+Pj4xNikpfDAsYz0wfEFyKG09Yz4+PjE2LEEpLERuPShsPj4+MTYpKygwfEFyKG0scCkpKygoKDY1NTM1JmwpK2N8MCk+Pj4xNil8MCxsK2M8PDE2fDY1''@;'; + put 'put ''NTM1JmZ8MH0obT1sfD0wLEE9Znw9MCksbD1EbixEbj0oMHxBcihjLEEpKSsoMHxBcihwLG0pKStsfDAmbCwwfGZ9ZnVuY3Rpb24gemwobCxjLGYscCl7cmV0dXJuIERuPShjfD0wKSsocHw9MCkrKChmPShsfD0wKSsoZnw9MCk+Pj4wKT4+PjA8bD4+PjB8MCk+Pj4wLDB8Zn1mdW5jdGlvbiBT''@;'; + put 'put ''cChsLGMsZixwKXtyZXR1cm4gRG49cD0oY3w9MCktKHB8PTApLSgoZnw9MCk+Pj4wPihsfD0wKT4+PjB8MCk+Pj4wLDB8bC1mPj4+MH1mdW5jdGlvbiBXJChsKXt2YXIgYz0wO3JldHVybigwfChjPTB8ZmVbbHMrKDI1NSYobHw9MCkpPj4wXSkpPDg/MHxjOigwfChjPTB8ZmVbbHMrKGw+Pjgm''@;'; + put 'put ''MjU1KT4+MF0pKTw4P2MrOHwwOigwfChjPTB8ZmVbbHMrKGw+PjE2JjI1NSk+PjBdKSk8OD9jKzE2fDA6MjQrKDB8ZmVbbHMrKGw+Pj4yNCk+PjBdKXwwfWZ1bmN0aW9uIFkkKGwsYyxmLHAsbSl7bXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MDtpZihE''@;'; + put 'put ''PWx8PTAsdz1mfD0wLGI9Rz1wfD0wLCEoTT1rPWN8PTApKXJldHVybiBBPTAhPSgwfG0pLGI/QT8oYVttPj4yXT0wfGwsYVttKzQ+PjJdPTAmYyxEbj1HPTAsMHwobT0wKSk6KERuPUc9MCwwfChtPTApKTooQSYmKGFbbT4+Ml09KEQ+Pj4wKSUodz4+PjApLGFbbSs0Pj4yXT0wKSxEbj1HPTAs''@;'; + put 'put ''MHwobT0oRD4+PjApLyh3Pj4+MCk+Pj4wKSk7QT0wPT0oMHxiKTtkb3tpZih3KXtpZighQSl7aWYoKEE9KDB8dmQoMHxiKSktKDB8dmQoMHxNKSl8MCk+Pj4wPD0zMSl7dz1SPUErMXwwLGw9RD4+PihSPj4+MCkmKGM9QS0zMT4+MzEpfE08PChiPTMxLUF8MCksYyY9TT4+PihSPj4+MCksQT0w''@;'; + put 'put ''LGI9RDw8YjticmVha31yZXR1cm4gbT8oYVttPj4yXT0wfGwsYVttKzQ+PjJdPWt8MCZjLERuPUc9MCwwfChtPTApKTooRG49Rz0wLDB8KG09MCkpfWlmKChBPXctMXwwKSZ3fDApe3c9Yj0zMysoMHx2ZCgwfHcpKS0oMHx2ZCgwfE0pKXwwLGw9KFI9MzItYnwwKS0xPj4zMSZNPj4+KChLPWIt''@;'; + put 'put ''MzJ8MCk+Pj4wKXwoTTw8UnxEPj4+KGI+Pj4wKSkmKGM9Sz4+MzEpLGMmPU0+Pj4oYj4+PjApLEE9RDw8KHBlPTY0LWJ8MCkmKGs9Uj4+MzEpLGI9KE08PHBlfEQ+Pj4oSz4+PjApKSZrfEQ8PFImYi0zMz4+MzE7YnJlYWt9cmV0dXJuIDB8bSYmKGFbbT4+Ml09QSZELGFbbSs0Pj4yXT0wKSwx''@;'; + put 'put ''PT0oMHx3KT8oRG49Sz1rfDAmYywwfChwZT0wfGwpKToocGU9MHxXJCgwfHcpLERuPUs9TT4+PihwZT4+PjApfDAsMHwocGU9TTw8MzItcGV8RD4+PihwZT4+PjApfDApKX1pZihBKXJldHVybiAwfG0mJihhW20+PjJdPShNPj4+MCklKHc+Pj4wKSxhW20rND4+Ml09MCksRG49Sz0wLDB8KE0+''@;'; + put 'put ''Pj4wKS8odz4+PjApPj4+MDtpZighRClyZXR1cm4gMHxtJiYoYVttPj4yXT0wLGFbbSs0Pj4yXT0oTT4+PjApJShiPj4+MCkpLERuPUs9MCwwfChNPj4+MCkvKGI+Pj4wKT4+PjA7aWYoISgoQT1iLTF8MCkmYikpcmV0dXJuIDB8bSYmKGFbbT4+Ml09MHxsLGFbbSs0Pj4yXT1BJk18MCZjKSxL''@;'; + put 'put ''PTAscGU9TT4+PigoMHxXJCgwfGIpKT4+PjApLERuPUssMHxwZTtpZigoQT0oMHx2ZCgwfGIpKS0oMHx2ZCgwfE0pKXwwKT4+PjA8PTMwKXt3PWM9QSsxfDAsbD1NPDwoYj0zMS1BfDApfEQ+Pj4oYz4+PjApLGM9TT4+PihjPj4+MCksQT0wLGI9RDw8YjticmVha31yZXR1cm4gbT8oYVttPj4y''@;'; + put 'put ''XT0wfGwsYVttKzQ+PjJdPWt8MCZjLERuPUs9MCwwfChwZT0wKSk6KERuPUs9MCwwfChwZT0wKSl9d2hpbGUoMCk7aWYodyl7TT0wfHpsKDB8KFI9MHxmKSwwfChEPUd8MCZwKSwtMSwtMSksZj1EbixrPWIsYj0wO2Rve3A9ayxrPUE+Pj4zMXxrPDwxLEE9YnxBPDwxLFNwKDB8TSwwfGYsMHwo''@;'; + put 'put ''cD1sPDwxfHA+Pj4zMXwwKSwwfChHPWw+Pj4zMXxjPDwxfDApKSxiPTEmKEs9KHBlPURuKT4+MzF8KCgwfHBlKTwwPy0xOjApPDwxKSxsPTB8U3AoMHxwLDB8RyxLJlJ8MCwoKCgwfHBlKTwwPy0xOjApPj4zMXwoKDB8cGUpPDA/LTE6MCk8PDEpJkR8MCksYz1Ebix3PXctMXwwfXdoaWxlKDAh''@;'; + put 'put ''PSgwfHcpKTtNPWssaz0wfWVsc2UgTT1iLGs9MCxiPTA7cmV0dXJuIHc9MCwwfG0mJihhW20+PjJdPWwsYVttKzQ+PjJdPWMpLERuPUs9KDB8QSk+Pj4zMXwoTXx3KTw8MXwwJih3PDwxfEE+Pj4zMSl8aywtMiYoQTw8MXwwKXxifDB9ZnVuY3Rpb24gaXcobCxjLGYscCl7cmV0dXJuIDB8WSQo''@;'; + put 'put ''bHw9MCxjfD0wLGZ8PTAscHw9MCwwKX1mdW5jdGlvbiBuUyhsLGMsZixwKXt2YXIgbSxBO3JldHVybiBBPWFlLGFlPWFlKzE2fDAsWSQobHw9MCxjfD0wLGZ8PTAscHw9MCxtPTB8QSksYWU9QSxEbj0wfGFbbSs0Pj4yXSwwfGFbbT4+Ml19ZnVuY3Rpb24gU0wobCxjLGYpe3JldHVybiBjfD0w''@;'; + put 'put ''LCgwfChmfD0wKSk8MzI/KERuPWM+PmYsKGx8PTApPj4+ZnwoYyYoMTw8ZiktMSk8PDMyLWYpOihEbj0oMHxjKTwwPy0xOjAsYz4+Zi0zMnwwKX1mdW5jdGlvbiB3bChsLGMsZil7cmV0dXJuIGN8PTAsKDB8KGZ8PTApKTwzMj8oRG49Yz4+PmYsKGx8PTApPj4+ZnwoYyYoMTw8ZiktMSk8PDMy''@;'; + put 'put ''LWYpOihEbj0wLGM+Pj5mLTMyfDApfWZ1bmN0aW9uIFpvKGwsYyxmKXtyZXR1cm4gbHw9MCwoMHwoZnw9MCkpPDMyPyhEbj0oY3w9MCk8PGZ8KGwmKDE8PGYpLTE8PDMyLWYpPj4+MzItZixsPDxmKTooRG49bDw8Zi0zMiwwKX1mdW5jdGlvbiBnZmUobCl7cmV0dXJuKDI1NSYobHw9MCkpPDw4''@;'; + put 'put ''fGw+PjgmMjU1fDB9ZnVuY3Rpb24gVHMobCl7cmV0dXJuKDI1NSYobHw9MCkpPDwyNHwobD4+OCYyNTUpPDwxNnwobD4+MTYmMjU1KTw8OHxsPj4+MjR8MH1mdW5jdGlvbiBQZihsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbT0wO2ZvcihhWyhsfD0wKT4+Ml09aTI9aTIrMXwwOygwfG0p''@;'; + put 'put ''PCgwfHApOyl7aWYoISgwfGFbZisobTw8Myk+PjJdKSlyZXR1cm4gYVtmKyhtPDwzKT4+Ml09aTIsYVtmKyg0KyhtPDwzKSk+PjJdPWMsYVtmKyg4KyhtPDwzKSk+PjJdPTAsRG49cCwwfGY7bT1tKzF8MH1yZXR1cm4gZj0wfFBmKDB8bCwwfGMsMHwoZj0wfFVhKDB8Ziw4KigxKyhwPTIqcHww''@;'; + put 'put ''KXwwKXwwKSksMHxwKSxEbj1wLDB8Zn1mdW5jdGlvbiBnaShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7Zm9yKHZhciBwPTAsbT0wOygwfG0pPCgwfGYpJiYocD0wfGFbYysobTw8Myk+PjJdKTspe2lmKCgwfHApPT0oMHxsKSlyZXR1cm4gMHxhW2MrKDQrKG08PDMpKT4+Ml07bT1tKzF8MH1yZXR1''@;'; + put 'put ''cm4gMH1mdW5jdGlvbiBnbyhsLGMsZil7bHw9MCxjfD0wO3ZhciBtLEEscD0wO2lmKCgwfChmfD0wKSk+PTgxOTIpcmV0dXJuIDB8bm0oMHxsLDB8YywwfGYpO2lmKEE9MHxsLG09bCtmfDAsKDMmbCk9PSgzJmMpKXtmb3IoOzMmbDspe2lmKCFmKXJldHVybiAwfEE7ZmVbbD4+MF09MHxmZVtj''@;'; + put 'put ''Pj4wXSxsPWwrMXwwLGM9YysxfDAsZj1mLTF8MH1mb3IocD0oZj0tNCZtfDApLTY0fDA7KDB8bCk8PSgwfHApOylhW2w+PjJdPWFbYz4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXSxhW2wrMTY+PjJdPWFbYysxNj4+Ml0s''@;'; + put 'put ''YVtsKzIwPj4yXT1hW2MrMjA+PjJdLGFbbCsyND4+Ml09YVtjKzI0Pj4yXSxhW2wrMjg+PjJdPWFbYysyOD4+Ml0sYVtsKzMyPj4yXT1hW2MrMzI+PjJdLGFbbCszNj4+Ml09YVtjKzM2Pj4yXSxhW2wrNDA+PjJdPWFbYys0MD4+Ml0sYVtsKzQ0Pj4yXT1hW2MrNDQ+PjJdLGFbbCs0OD4+Ml09''@;'; + put 'put ''YVtjKzQ4Pj4yXSxhW2wrNTI+PjJdPWFbYys1Mj4+Ml0sYVtsKzU2Pj4yXT1hW2MrNTY+PjJdLGFbbCs2MD4+Ml09YVtjKzYwPj4yXSxsPWwrNjR8MCxjPWMrNjR8MDtmb3IoOygwfGwpPCgwfGYpOylhW2w+PjJdPWFbYz4+Ml0sbD1sKzR8MCxjPWMrNHwwfWVsc2UgZm9yKGY9bS00fDA7KDB8''@;'; + put 'put ''bCk8KDB8Zik7KWZlW2w+PjBdPTB8ZmVbYz4+MF0sZmVbbCsxPj4wXT0wfGZlW2MrMT4+MF0sZmVbbCsyPj4wXT0wfGZlW2MrMj4+MF0sZmVbbCszPj4wXT0wfGZlW2MrMz4+MF0sbD1sKzR8MCxjPWMrNHwwO2Zvcig7KDB8bCk8KDB8bSk7KWZlW2w+PjBdPTB8ZmVbYz4+MF0sbD1sKzF8MCxj''@;'; + put 'put ''PWMrMXwwO3JldHVybiAwfEF9ZnVuY3Rpb24gbjEobCxjLGYpe3ZhciBwPTA7aWYoKDB8KGN8PTApKTwoMHwobHw9MCkpJigwfGwpPChjKyhmfD0wKXwwKSl7Zm9yKHA9bCxjPWMrZnwwLGw9bCtmfDA7KDB8Zik+MDspZj1mLTF8MCxmZVsobD1sLTF8MCk+PjBdPTB8ZmVbKGM9Yy0xfDApPj4w''@;'; + put 'put ''XTtsPXB9ZWxzZSBnbyhsLGMsZik7cmV0dXJuIDB8bH1mdW5jdGlvbiB1MihsLGMsZil7Y3w9MDt2YXIgQSxwPTAsbT0wLHc9MDtpZihBPShsfD0wKSsoZnw9MCl8MCxjJj0yNTUsKDB8Zik+PTY3KXtmb3IoOzMmbDspZmVbbD4+MF09YyxsPWwrMXwwO2ZvcihtPShwPS00JkF8MCktNjR8MCx3''@;'; + put 'put ''PWN8Yzw8OHxjPDwxNnxjPDwyNDsoMHxsKTw9KDB8bSk7KWFbbD4+Ml09dyxhW2wrND4+Ml09dyxhW2wrOD4+Ml09dyxhW2wrMTI+PjJdPXcsYVtsKzE2Pj4yXT13LGFbbCsyMD4+Ml09dyxhW2wrMjQ+PjJdPXcsYVtsKzI4Pj4yXT13LGFbbCszMj4+Ml09dyxhW2wrMzY+PjJdPXcsYVtsKzQw''@;'; + put 'put ''Pj4yXT13LGFbbCs0ND4+Ml09dyxhW2wrNDg+PjJdPXcsYVtsKzUyPj4yXT13LGFbbCs1Nj4+Ml09dyxhW2wrNjA+PjJdPXcsbD1sKzY0fDA7Zm9yKDsoMHxsKTwoMHxwKTspYVtsPj4yXT13LGw9bCs0fDB9Zm9yKDsoMHxsKTwoMHxBKTspZmVbbD4+MF09YyxsPWwrMXwwO3JldHVybiBBLWZ8''@;'; + put 'put ''MH1mdW5jdGlvbiB5MihsKXt2YXIgYyxmO3JldHVybigwfChmPTE1KyhsfD0wKSYtMTZ8MCkpPjAmKDB8KGw9KGM9MHxhW0FvPj4yXSkrZnwwKSk8KDB8Yyl8KDB8bCk8MD8oZmYoKSxxcCgxMiksLTEpOihhW0FvPj4yXT1sLCgwfGwpPigwfEtwKCkpJiYwPT0oMHxBZCgpKT8oYVtBbz4+Ml09''@;'; + put 'put ''YyxxcCgxMiksLTEpOjB8Yyl9ZnVuY3Rpb24gVmoobCxjLGYpe3JldHVybiBsPStsLGM9K2MsZj0rZix3MigxKSwwfWZ1bmN0aW9uIGMyKGwpe3JldHVybiB3Mig0KSwwfWZ1bmN0aW9uIEsxKGwsYyl7cmV0dXJuIHcyKDUpLDB9ZnVuY3Rpb24gRUwobCxjLGYscCl7cmV0dXJuIGY9K2YscD0r''@;'; + put 'put ''cCx3Mig2KSwwfWZ1bmN0aW9uIE0yKGwsYyxmKXtyZXR1cm4gdzIoNyksMH1mdW5jdGlvbiBwYShsLGMsZixwKXtyZXR1cm4gdzIoOCksMH1mdW5jdGlvbiBKbyhsLGMsZixwLG0pe3JldHVybiB3Mig5KSwwfWZ1bmN0aW9uIGpqKGwsYyxmLHAsbSxBLHcsYixrLE0pe3JldHVybiB3MigxMSks''@;'; + put 'put ''MH1mdW5jdGlvbiBmOSgpe3cyKDEyKX1mdW5jdGlvbiBmOChsKXt3MigxMyl9ZnVuY3Rpb24gSXMobCxjKXt3MigxNCl9ZnVuY3Rpb24gTTAobCxjLGYpe3cyKDE1KX1mdW5jdGlvbiBmYyhsLGMsZixwLG0sQSl7cD0rcCxtPSttLHcyKDE2KX1mdW5jdGlvbiBNcChsLGMsZixwLG0pe3cyKDE4''@;'; + put 'put ''KX1mdW5jdGlvbiBsdyhsLGMsZixwLG0sQSl7dzIoMTkpfXZhciBoOD1bZnVuY3Rpb24gJCQoKXtyZXR1cm4gdzIoMCksMH0sZnVuY3Rpb24gdEQoKXt2YXIgbCxjO3JldHVybiBjPWFlLGFlPWFlKzE2fDAsUm4oMHwobD1jKSksYWU9YywuMDE2NjY2NjY2NjY2NjY2NjY2KisoKDB8YVtsKzQ+''@;'; + put 'put ''PjJdKSsoMHxhW2w+PjJdKS0oMHxhWzQ3MzExXSktKDB8YVs0NzMxMl0pfDApfV0sc3c9W1ZqLGZ1bmN0aW9uIFFVKGwsYyxmKXtyZXR1cm4gbD0rbCxjPStjLC41KitmfSxmdW5jdGlvbiBVVShsLGMsZil7cmV0dXJuLjUqKGY9K2YpKigxLShsPStsKS8rYyl9LGZ1bmN0aW9uIEpVKGwsYyxm''@;'; + put 'put ''KXtyZXR1cm4uNSooZj0rZikqKChsPStsKS8rYyl9LGZ1bmN0aW9uIGtvZShsLGMsZil7cmV0dXJuKygoYz0obD0rbCkvKGM9K2MpKTw9LjU/YzoxLWMpKitmfSxWaixWaixWal0sdHE9W2Z1bmN0aW9uIHEkKGwpe3JldHVybiB3MigyKSwwfSxwTl0sJDE9W2Z1bmN0aW9uIGVxKCl7cmV0dXJu''@;'; + put 'put ''IHcyKDMpLDB9LGZ1bmN0aW9uIGgyZSgpe3ZhciBsPTA7cmV0dXJuKGw9MHxhWzQ2ODQ3XSk+Pj4wPCgwfGFbNDY4NDhdKT4+PjA/KGFbNDY4NDddPWwrNCxsPTB8YVtsPj4yXSk6bD0wLDB8bH0sZnVuY3Rpb24gWG9lKCl7dmFyIGIsayxNLGw9MCxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtm''@;'; + put 'put ''b3IobT0wfGFbNDcyNTVdLGs9MHxhWzQ3MjU2XSxNPTB8YVs0NzIxMV0sYz0wLGw9MCxBPWI9MHxhWzQ3MjYxXTs7KXtpZigoMHxBKT49KDB8bSkpe3c9ODticmVha31pZigoMHwoZj0wfGFbMTYwKygwfGFbMTYrKHA9MHxhW2srKEE8PDIpPj4yXSk+PjJdKT4+Ml0pKTwwJiYobD1sPygwfGFb''@;'; + put 'put ''MTYwKygwfGFbbCsxNj4+Ml0pPj4yXSk+KDB8Zik/cDpsOnAsKDB8KGM9YysxfDApKT49KDB8TSkpKWJyZWFrO2FbNDcyNjFdPXA9QSsxfDAsQT1wfWlmKDg9PSgwfHcpJiYoMHxiKT4wKXtmb3IobT0wOyEoKDB8bSk+PSgwfGIpfHwoZj0wfGFbaysobTw8Mik+PjJdLHA9MHxhWzE2MCsoMHxh''@;'; + put 'put ''W2YrMTY+PjJdKT4+Ml0sKDB8cCk8MCYmKGw9bD8oMHxhWzE2MCsoMHxhW2wrMTY+PjJdKT4+Ml0pPigwfHApP2Y6bDpmLGM9YysxfDAsKDB8Yyk+PSgwfE0pKSkpOyltPW0rMXwwO2FbNDcyNjFdPW19cmV0dXJuIDB8bH0seDddLF9vPVtjMixmdW5jdGlvbiB2MGUobCl7bHw9MDtmb3IodmFy''@;'; + put 'put ''IGYscCxjPTA7Yz0wfGFbMTE2KygwfGFbbCsxNj4+Ml0pPj4yXTspbD1jO3JldHVybiAwfCgoMHwocD0wfGFbMjMyKyhmPTB8YVsxNisoMHxhWygyPT0oMHwoYz0zJmFbbD4+Ml0pKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKTw9KDB8KGM9MHxhWzIzMisobD0wfGFbMTYrKDB8YVso''@;'; + put 'put ''Mz09KDB8Yyk/bDpsKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKT8oMHxwKTwoMHxjKT8xOigwfGFbZisyMzY+PjJdKTwoMHxhW2wrMjM2Pj4yXSkmMTowKX0sekMsZnVuY3Rpb24gQk4obCl7cmV0dXJuIDB9LGZ1bmN0aW9uIExKKGwpe3JldHVybiAwfSxmdW5jdGlvbiBYKGwpe3JldHVybiAw''@;'; + put 'put ''fEFMKGx8PTApfSxmdW5jdGlvbiBGZShsKXtyZXR1cm4gMH0sZnVuY3Rpb24gUk0obCl7cmV0dXJuIDB9LGZ1bmN0aW9uIGxSKGwpe3JldHVybiAwfSxmdW5jdGlvbiBLTShsKXtyZXR1cm4gMX0sZnVuY3Rpb24gdmYobCl7dmFyIGM7cmV0dXJuIGZlWzUzNisobHw9MCk+PjBdPTAsX1soYz1s''@;'; + put 'put ''KzMzNnwwKT4+M109K19bYz4+M10rMTAvK19bbCszNTI+PjNdLGZlW2wrNTM3Pj4wXT0xLDB9LGZ1bmN0aW9uICRNKGwpe3ZhciBjO3JldHVybiBmZVs1MzYrKGx8PTApPj4wXT0wLF9bKGM9bCszMzZ8MCk+PjNdPStfW2M+PjNdLTEwLytfW2wrMzUyPj4zXSxmZVtsKzUzNz4+MF09MSwwfSxm''@;'; + put 'put ''dW5jdGlvbiB3MyhsKXt2YXIgYztyZXR1cm4gZmVbNTM2KyhsfD0wKT4+MF09MCxfWyhjPWwrMzQ0fDApPj4zXT0rX1tjPj4zXS0xMC8rX1tsKzM1Mj4+M10sZmVbbCs1Mzc+PjBdPTEsMH0sZnVuY3Rpb24gcG0obCl7dmFyIGM7cmV0dXJuIGZlWzUzNisobHw9MCk+PjBdPTAsX1soYz1sKzM0''@;'; + put 'put ''NHwwKT4+M109K19bYz4+M10rMTAvK19bbCszNTI+PjNdLGZlW2wrNTM3Pj4wXT0xLDB9LGZ1bmN0aW9uIHFNKGwpe3ZhciBjO3JldHVybiBmZVs1MzYrKGx8PTApPj4wXT0wLF9bKGM9bCszNTJ8MCk+PjNdPTEuMSorX1tjPj4zXSxmZVtsKzUzNz4+MF09MSwwfSxmdW5jdGlvbiBlRShsKXt2''@;'; + put 'put ''YXIgYztyZXR1cm4gZmVbNTM2KyhsfD0wKT4+MF09MCxfWyhjPWwrMzUyfDApPj4zXT0uOTA5MDkwOTA5MDkwOTA5MSorX1tjPj4zXSxmZVtsKzUzNz4+MF09MSwwfSxmdW5jdGlvbiB0RShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtyZXR1cm4gZmVbKGY9NTM2KyhsfD0wKXwwKT4+MF09''@;'; + put 'put ''MSYoYz0wPT0oMHxmZVtmPj4wXSkpLGMmJihfW2wrMzUyPj4zXT0oKHA9KEE9KygoYz0wfGFbbCs0NDg+PjJdKT4+PjApKS8rKDB8Yyk8KG09KygoZj0wfGFbbCs0NTI+PjJdKT4+PjApKS8rKDB8ZikpP0E6bSkvKygwfChwP2M6ZikpLGFbKGY9bCszMzZ8MCk+PjJdPTAsYVtmKzQ+PjJdPTAs''@;'; + put 'put ''YVtmKzg+PjJdPTAsYVtmKzEyPj4yXT0wLGZlW2wrNTM3Pj4wXT0xKSwwfSxmdW5jdGlvbiBBQWUobCl7dmFyIGMsZjtyZXR1cm4gYz1hZSxhZT1hZSsxNnwwLGFbKGY9Yyk+PjJdPTB8cUsoMHxhWzYwKyhsfD0wKT4+Ml0pLGw9MHx1aCgwfEp1KDYsMHxmKSksYWU9YywwfGx9LGZ1bmN0aW9u''@;'; + put 'put ''IFpzKGwpe3JldHVybiBhWzQ2NjU0XT1sfD0wLDB9LFhQLExVLFJVLEhOLFFuLEdvLER0LEMxLGZ1bmN0aW9uIFVvZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtmb3IoYVs0NzI1NF09bHw9MCxhWzQ3MjYxXT0wLGFbNDcyNTJdPTAsYVs0NzI1MV09MCxsPTE5Miso''@;'; + put 'put ''MHxhWyhBPWwrMTZ8MCk+PjJdKXwwLG09MCxmPTA7bD0wfGFbbD4+Ml07KXtmb3IoZmVbMTU3KyhwPTB8YVtsKzE2Pj4yXSk+PjBdPTAsYVs0NzI1MV09bT1tKzF8MCxjPTB8YVtwKzE4MD4+Ml0sbD0wOzB8YVtjKyhsPDwyKT4+Ml07KWFbNDcyNTJdPWI9ZisxfDAsbD1sKzF8MCxmPWI7bD1w''@;'; + put 'put ''KzE2NHwwfWZvcihsPShsPTB8YVs0NzI2Ml0pPzB8VjAobCxtPDwyKTowfFFuKG08PDIpLGFbNDcyNjJdPWwsYVs0NzI2M109MCxsPShsPTB8YVs0NzI1Nl0pPzB8VjAobCxhWzQ3MjUxXTw8Mik6MHxRbihhWzQ3MjUxXTw8MiksYVs0NzI1Nl09bCxhWzQ3MjU1XT0wLGM9MSxsPTE5MisoMHxh''@;'; + put 'put ''W0E+PjJdKXwwO2w9MHxhW2w+PjJdOyl7Zm9yKGFbKHc9MjkyKyhBPTB8YVsoYj1sKzE2fDApPj4yXSl8MCk+PjJdPTAsQT0wfGFbQSsxNzI+PjJdLG09YyxwPTAsbD0wO2M9MHxhW0ErKHA8PDIpPj4yXTspYVt3Pj4yXT1mPWwrMXwwLGFbMTYwKyhsPTB8YVtjKzE2Pj4yXSk+PjJdPTAsYVts''@;'; + put 'put ''KzE2ND4+Ml09LTEsbT1sPW0/KCgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDB8KGs9MyZhW2M+PjJdKSk/YzpjKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfGspP2M6Yys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKXwwKTwoMHxocltsKzE3''@;'; + put 'put ''MD4+MV0pPzA6bTowLHA9cCsxfDAsbD1mO2w9MHx2cig0KyhwPDwyKXwwKSxhWzI2NCsoYz0wfGFbYj4+Ml0pPj4yXT1sLGFbYysyNjg+PjJdPTAsYz0wfGFbYysxODA+PjJdLGw9MDtkb3trPWwsbD1sKzF8MH13aGlsZSgwIT0oMHxhW2MrKGs8PDIpPj4yXSkpO2M9MHx2cihsPDwyKSxhWzI3''@;'; + put 'put ''MisobD0wfGFbYj4+Ml0pPj4yXT1jLGFbbCsyNzY+PjJdPTAsYz1tLGw9bCsxNjR8MH1yZXR1cm4gMHxjfSxQSCxWMyxmdW5jdGlvbiBkYShsKXt2YXIgYyxmLHAsbTtyZXR1cm4gMHx+figoZj0rX1syNCsocD0wfGFbMTYrKDB8YVsoMz09KDB8KG09MyZhWyhsfD0wKT4+Ml0pKT9sOmwrNDh8''@;'; + put 'put ''MCkrNDA+PjJdKT4+Ml0pPj4zXS0rX1syNCsobD0wfGFbMTYrKDB8YVsoMj09KDB8bSk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjNdKSpmKyhjPStfW3ArMTY+PjNdLStfW2wrMTY+PjNdKSpjKX0sdnIsZnVuY3Rpb24gV2MobCl7bHw9MDt2YXIgYixrLGM9MCxmPTAscD0wLG09MCxBPTAs''@;'; + put 'put ''dz0wO2ZvcihiPTB8aXMoMjU2OTIsMHxhWzQ1ODFdKSxrPWwrOHwwLHc9MDshKCgwfHcpPj0oMHxhW2w+PjJdKSk7KXtpZighKDQmYVsoYz0oMHxhW2s+PjJdKSsoNzIqd3wwKXwwKT4+Ml0pKXtmb3IoOyhmPTB8YVs4KygwfGFbYyszNj4+Ml0pPj4yXSkmJihmPTB8YVtmKzIwPj4yXSkmJiEo''@;'; + put 'put ''MSZhW2Y+PjJdKTspYz1mO2ZvcihBPTB8dnIoNDApLGFbQSszNj4+Ml09YyxfW0ErOD4+M109K19bYys0MD4+M10sbT1jLGY9MHxhW2M+PjJdO2FbbT4+Ml09NHxmLChmPTB8YVthW20rMzY+PjJdPj4yXSkmJihwPTB8YVtmKzI0Pj4yXSkmJiEoMSYoZj0wfGFbcD4+Ml0pfDApOyltPXA7X1tB''@;'; + put 'put ''KzE2Pj4zXT0rX1ttKzU2Pj4zXSxITShiLEEsK19bYys0OD4+M10pfXc9dysxfDB9cmV0dXJuIDB8Yn0sZnVuY3Rpb24gcm0obCl7bHw9MDt2YXIgYixrLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihiPTB8aXMoMjU2OTIsMHxhWzQ1ODFdKSxrPWwrOHwwLHc9MDshKCgwfHcpPj0oMHxh''@;'; + put 'put ''W2w+PjJdKSk7KXtpZighKDImYVsoYz0oMHxhW2s+PjJdKSsoNzIqd3wwKXwwKT4+Ml0pKXtmb3IoOyhmPTB8YVsxMisoMHxhW2MrMzY+PjJdKT4+Ml0pJiYoZj0wfGFbZisyMD4+Ml0pJiYhKDEmYVtmPj4yXSk7KWM9Zjtmb3IoQT0wfHZyKDQwKSxhW0ErMzY+PjJdPWMsX1tBKzg+PjNdPStf''@;'; + put 'put ''W2MrNDg+PjNdLG09YyxmPTB8YVtjPj4yXTthW20+PjJdPTJ8ZiwoZj0wfGFbNCsoMHxhW20rMzY+PjJdKT4+Ml0pJiYocD0wfGFbZisyND4+Ml0pJiYhKDEmKGY9MHxhW3A+PjJdKXwwKTspbT1wO19bQSsxNj4+M109K19bbSs2ND4+M10sSE0oYixBLCtfW2MrNDA+PjNdKX13PXcrMXwwfXJl''@;'; + put 'put ''dHVybiAwfGJ9LGZ1bmN0aW9uIEtFKGwpe2x8PTA7dmFyIG0sQSxjPTAsZj0wLHA9MDtmb3IobT0wfGFbNDc1MDldLEE9MHxhWzQ3NTA1XSxjPTB8YVs0NzUwN107Oyl7aWYoKDB8Yyk+PSgwfG0pKXtwPTQ7YnJlYWt9aWYoMT09KDB8SmYoMHxhW2FbQSsoKGY9YysxfDApPDwyKT4+Ml0+PjJd''@;'; + put 'put ''LDB8YVthW0ErKGM8PDIpPj4yXT4+Ml0sMHxhW2w+PjJdKSkpYnJlYWs7Yz1mfWU6ZG97aWYoND09KDB8cCkpZm9yKGM9MHxhWzQ3NTA4XTs7KXtpZigoMHxjKTw9KDB8bSkpe2M9bTticmVhayBlfWlmKDI9PSgwfEpmKDB8YVthW0ErKChmPWMrLTF8MCk8PDIpPj4yXT4+Ml0sMHxhW2FbQSso''@;'; + put 'put ''Yzw8Mik+PjJdPj4yXSwwfGFbbD4+Ml0pKSlicmVhaztjPWZ9fXdoaWxlKDApO3JldHVybiAwfGN9LEIwLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyLGMyXSxCaT1bSzEsZnVuY3Rpb24gajMo''@;'; + put 'put ''bCxjKXtyZXR1cm4gMHxsfSxmdW5jdGlvbiByZShsLGMpe3JldHVybiAwfF91KGN8PTAsbHw9MCl9LGZ1bmN0aW9uIFplKGwsYyl7cmV0dXJuIGx8PTAsdTIoMHwobD0wfEIwKGN8PTApKSwwLDB8YyksMHxsfSxySixuTixmdW5jdGlvbiBYYWUobCxjKXtjfD0wO3ZhciBrLE0sRCxtPTAsQT0w''@;'; + put 'put ''LHc9MCxiPTA7cmV0dXJuIGs9YWUsYWU9YWUrMzJ8MCxNPWsrMTZ8MCx3PWssbT0wfGFbNCsobHw9MCk+PjJdLEE9OTAqKDMmYVsxMTYrKDB8YVsxNisoMHxjcihsPTB8YVtsPj4yXSkpPj4yXSk+PjJdKXwwLGFbTT4+Ml09YVtjPj4yXSxhW00rND4+Ml09YVtjKzQ+PjJdLGFbTSs4Pj4yXT1h''@;'; + put 'put ''W2MrOD4+Ml0sYVtNKzEyPj4yXT1hW2MrMTI+PjJdLFU2KHcsTSxBKSxhW2M+PjJdPWFbdz4+Ml0sYVtjKzQ+PjJdPWFbdys0Pj4yXSxhW2MrOD4+Ml09YVt3Kzg+PjJdLGFbYysxMj4+Ml09YVt3KzEyPj4yXSxtPyhBPW0sbD1tKzh8MCx3PW0rMTZ8MCxtPW0rMjR8MCk6KEE9MTYrKG09MHxh''@;'; + put 'put ''WzEyKygwfGFbbCsxNj4+Ml0pPj4yXSl8MCxsPW0rMjR8MCx3PW0rMzJ8MCxtPW0rNDB8MCksbD0rX1tBPj4zXTw9KEQ9K19bYz4+M10pJiZEPD0rX1t3Pj4zXSYmK19bbD4+M108PShiPStfW2MrOD4+M10pP2I8PStfW20+PjNdJjE6MCxhZT1rLDB8bH0sZnVuY3Rpb24gcVEobCxjKXt2YXIg''@;'; + put 'put ''ZixwLG0sQSx3LGIsaztyZXR1cm4gY3w9MCxwPWFlLGFlPWFlKzMyfDAsaz1wKzE2fDAsdz1wLGI9OTAqKDMmYVsxMTYrKDB8YVsxNisoMHxjcihsPTB8YVsobHw9MCk+PjJdKSk+PjJdKT4+Ml0pfDAsYVtrPj4yXT1hW2M+PjJdLGFbays0Pj4yXT1hW2MrND4+Ml0sYVtrKzg+PjJdPWFbYys4''@;'; + put 'put ''Pj4yXSxhW2srMTI+PjJdPWFbYysxMj4+Ml0sVTYodyxrLGIpLGY9K19bdz4+M10sYWU9cCwwfCghKCEoKEE9K19bdys4Pj4zXSk+PS0obT0uNSorX1s4MCsobD0wfGFbbCsxNj4+Ml0pPj4zXSkpfCEoQTw9bSkpJiZmPj0tK19bbCs4OD4+M10/Zjw9K19bbCs5Nj4+M10mMTowKX0sSlEsZnVu''@;'; + put 'put ''Y3Rpb24gdkIobCxjKXtyZXR1cm4gYVszNisobHw9MCk+PjJdPTB8cmEoY3w9MCksMH0sZnVuY3Rpb24gS2IobCxjKXtyZXR1cm4gYVszMisobHw9MCk+PjJdPTB8cmEoY3w9MCksMH0sZnVuY3Rpb24gJGIobCxjKXtsfD0wO3ZhciBwLG0sdyxmPTAsQT0wO3N3aXRjaCh3PWFlLGFlPWFlKzE2''@;'; + put 'put ''fDAsbT13LDB8KHA9KDB8YTkoMHxmZVsoY3w9MCk+PjBdKSk8PDI0Pj4yNCkpe2Nhc2UgODI6MHx5MChmPWMrMXwwLDE0MDc2Myk/QT01OihhW2w+PjJdPTExNCxmPTApO2JyZWFrO2Nhc2UgNzY6QT02O2JyZWFrO2RlZmF1bHQ6Zj1jKzF8MCxBPTV9ZG97aWYoNT09KDB8QSkpaWYoMHx5MChm''@;'; + put 'put ''LDE0MDc2OCkpe2lmKDY3IT0oMHxwKSYmMD09KDB8eTAoZiwxNDA3NzIpKSl7YVttPj4yXT1jLCRyKDAsMTQwNzc4LG0pLGY9MTticmVha31hW2w+PjJdPTExMCxmPTB9ZWxzZSBBPTZ9d2hpbGUoMCk7cmV0dXJuIDY9PSgwfEEpJiYoYVtsPj4yXT0xMDgsZj0wKSxhZT13LDB8Zn0sZnVuY3Rp''@;'; + put 'put ''b24gQUIobCxjKXtyZXR1cm4gYVs0KyhsfD0wKT4+Ml09Y3w9MCwwfSxmdW5jdGlvbiBhRyhsLGMpe3JldHVybiBhWyhsfD0wKT4+Ml09Y3w9MCwwfSxmdW5jdGlvbiBsRyhsLGMpe3ZhciBmLHA7cmV0dXJuIGx8PTAscD1hZSxhZT1hZSsxNnwwLDB8VGQoY3w9MCwxNDA4NDUsMCwyNTUsZj1w''@;'; + put 'put ''KT9sPTE6KF9bbCsxNj4+M109KygwfGFbZj4+Ml0pLGw9MCksYWU9cCwwfGx9LGZ1bmN0aW9uIHlCKGwsYyl7bHw9MDt2YXIgZixtLHA9MDtzd2l0Y2gobT1hZSxhZT1hZSsxNnwwLGY9bSwoMHxhOSgwfGZlWyhjfD0wKT4+MF0pKTw8MjQ+PjI0fDApe2Nhc2UgNzY6MHx5MChjKzF8MCwxNDA3''@;'; + put 'put ''NjgpP3A9OToocnRbKGw9bCszNnwwKT4+MV09NHxydFtsPj4xXSxsPTApO2JyZWFrO2Nhc2UgODI6MHx5MChjKzF8MCwxNDA3NjMpP3A9OToocnRbKGw9bCszNnwwKT4+MV09MnxydFtsPj4xXSxsPTApO2JyZWFrO2Nhc2UgODQ6MHx5MChjKzF8MCwxNDE1NjMpP3A9OToocnRbKGw9bCszNnww''@;'; + put 'put ''KT4+MV09NnxydFtsPj4xXSxsPTApO2JyZWFrO2Nhc2UgNjc6MHx5MChjKzF8MCwxNDA3NzIpP3A9OTpsPTA7YnJlYWs7ZGVmYXVsdDpwPTl9cmV0dXJuIDk9PSgwfHApJiYoYVtmPj4yXT1jLCRyKDAsMTQxNTY3LGYpLGw9MSksYWU9bSwwfGx9LGZ1bmN0aW9uIFpFKGwsYyl7bHw9MDt2YXIg''@;'; + put 'put ''ZixtLHA9MDtzd2l0Y2gobT1hZSxhZT1hZSsxNnwwLGY9bSwoMHxhOSgwfGZlWyhjfD0wKT4+MF0pKTw8MjQ+PjI0fDApe2Nhc2UgNzY6MHx5MChjKzF8MCwxNDA3NjgpP3A9NzoocnRbKGw9bCszNnwwKT4+MV09NTEyfHJ0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA4MjowfHkwKGMrMXwwLDE0''@;'; + put 'put ''MDc2Myk/cD03OihydFsobD1sKzM2fDApPj4xXT0yNTZ8cnRbbD4+MV0sbD0wKTticmVhaztjYXNlIDY3OjB8eTAoYysxfDAsMTQwNzcyKT9wPTc6bD0wO2JyZWFrO2RlZmF1bHQ6cD03fXJldHVybiA3PT0oMHxwKSYmKGFbZj4+Ml09YywkcigwLDE0MTUxOCxmKSxsPTEpLGFlPW0sMHxsfSxm''@;'; + put 'put ''dW5jdGlvbiBzRyhsLGMpe3JldHVybiBhWzIwKyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiB3QihsLGMpe3ZhciBmLHA7cmV0dXJuIGx8PTAscD1hZSxhZT1hZSsxNnwwLDB8VGQoY3w9MCwxNDE1MTEsMCwyNTUsZj1wKT9sPTE6KGZlW2wrMzM+PjBdPWFbZj4+Ml0scnRbKGw9''@;'; + put 'put ''bCszNnwwKT4+MV09MzJ8cnRbbD4+MV0sbD0wKSxhZT1wLDB8bH0sZnVuY3Rpb24gcjUobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLHA9YWUsYWU9YWUrMTZ8MCwwfFRkKGN8PTAsMTQxNDk5LDAsMjU1LGY9cCk/bD0xOihmZVtsKzM0Pj4wXT1hW2Y+PjJdLHJ0WyhsPWwrMzZ8MCk+PjFdPTY0''@;'; + put 'put ''fHJ0W2w+PjFdLGw9MCksYWU9cCwwfGx9LGZ1bmN0aW9uIGJCKGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9MCxwPWFlLGFlPWFlKzE2fDAsMHxUZChjfD0wLDE0MTQ4NywtMTI4LDEyNyxmPXApP2w9MTooZmVbbCszMj4+MF09YVtmPj4yXSxydFsobD1sKzM2fDApPj4xXT0xMjh8cnRbbD4+MV0s''@;'; + put 'put ''bD0wKSxhZT1wLDB8bH0sZnVuY3Rpb24gekUobCxjKXtyZXR1cm4gYVsyNCsobHw9MCk+PjJdPTB8cmEoY3w9MCksMH0sZnVuY3Rpb24gUXYobCxjKXt2YXIgZixwLG07bHw9MCxjfD0wLG09YWUsYWU9YWUrMTZ8MCxwPW0sZj1tKzR8MDtkb3tpZighKDB8VGQoYywxNDE0NDIsMCw2NTUzNSxm''@;'; + put 'put ''KSkpe2lmKGM9MHxhW2Y+PjJdKXtydFtsKzgwPj4xXT1jLGM9MDticmVha30kcigwLDE0MTQ1MCxwKSxjPTE7YnJlYWt9Yz0xfXdoaWxlKDApO3JldHVybiBhZT1tLDB8Y30sZnVuY3Rpb24gX0IobCxjKXtsfD0wO3ZhciBmLG0scD0wO3N3aXRjaChtPWFlLGFlPWFlKzE2fDAsZj1tLCgwfGE5''@;'; + put 'put ''KDB8SnRbKGN8PTApPj4wXSkpPDwyND4+MjR8MCl7Y2FzZSA4NDowfHkwKGMrMXwwLDE0MTM5MSk/cD01OihydFsobD1sKzM2fDApPj4xXT0xfHJ0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA3MDowfHkwKGMrMXwwLDE0MTM5NSk/cD01Omw9MDticmVhaztkZWZhdWx0OnA9NX1yZXR1cm4gNT09''@;'; + put 'put ''KDB8cCkmJihhW2Y+PjJdPWMsJHIoMCwxNDE0MDAsZiksbD0xKSxhZT1tLDB8bH0sZnVuY3Rpb24gR0UobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLHA9YWUsYWU9YWUrMTZ8MCwwfFRkKGN8PTAsMTQxMzc3LDAsMzYwLGY9cCk/bD0xOihhW2wrMjg+PjJdPTY1NTM1JmFbZj4+Ml0sbD0wKSxh''@;'; + put 'put ''ZT1wLDB8bH0sZnVuY3Rpb24gQ0IobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLHA9YWUsYWU9YWUrMTZ8MCwwfFRkKGN8PTAsMTQxMzcwLDAsNjU1MzUsZj1wKT9sPTE6KHJ0W2wrNDA+PjFdPWFbZj4+Ml0sbD0wKSxhZT1wLDB8bH0sZnVuY3Rpb24ga0IobCxjKXtyZXR1cm4gYVsobHw9MCk+''@;'; + put 'put ''PjJdPTB8cmEoY3w9MCksMH0sZnVuY3Rpb24gU0IobCxjKXtyZXR1cm4gYVsxNisobHw9MCk+PjJdPTB8cmEoY3w9MCksMH0sZnVuY3Rpb24gTUIobCxjKXtyZXR1cm4gYVs0KyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiBFQihsLGMpe3ZhciBmLHAsbTtsfD0wLGN8PTAsbT1h''@;'; + put 'put ''ZSxhZT1hZSsxNnwwLHA9bSxmPW0rNHwwO2Rve2lmKCEoMHxUZChjLDE0MTMyNSwwLDY1NTM1LGYpKSl7aWYoYz0wfGFbZj4+Ml0pe3J0W2wrODI+PjFdPWMsYz0wO2JyZWFrfSRyKDAsMTQxMzMzLHApLGM9MTticmVha31jPTF9d2hpbGUoMCk7cmV0dXJuIGFlPW0sMHxjfSxmdW5jdGlvbiBX''@;'; + put 'put ''RShsLGMpe2x8PTAsY3w9MDt2YXIgQSxiLGY9MCxwPTAsbT0wLHc9MDtiPWFlLGFlPWFlKzE2fDAsQT1iLG09MDtlOmZvcig7Oyl7dDpmb3IoOzspe2lmKHA9YysxfDAsISgoYz0wfGZlW2M+PjBdKTw8MjQ+PjI0KSlicmVhayBlO3N3aXRjaCgoZj0oMHxDcChjPWM8PDI0Pj4yNCkpLTk4fDAp''@;'; + put 'put ''Pj4+MXxmPDwzMXwwKXtjYXNlIDU6dz01O2JyZWFrIHQ7Y2FzZSA5OmY9MjA0ODticmVhayB0O2Nhc2UgODp3PTY7YnJlYWsgdDtjYXNlIDA6dz03O2JyZWFrIHR9YVtBPj4yXT1jLGFbQSs0Pj4yXT1jLCRyKDAsMTQxMjcyLEEpLGM9cH01PT0oMHx3KT8odz0wLGY9MTAyNCk6Nj09KDB8dyk/''@;'; + put 'put ''KHc9MCxmPTQwOTYpOjc9PSgwfHcpJiYodz0wLGY9ODE5MiksYz1wLG18PWZ9cmV0dXJuIG08PDE2Pj4xNiE9MTUzNjAmJihydFsodz1sKzM2fDApPj4xXT1ydFt3Pj4xXXxtKSxhZT1iLDB9LGZ1bmN0aW9uIHhCKGwsYyl7dmFyIHAsbSxBLHcsYixmPTA7Zm9yKGI9YWUsYWU9YWUrMTZ8MCx3''@;'; + put 'put ''PWIrOHwwLEE9YixwPTQyKyhsfD0wKXwwLGY9MCxjPW09MHxyYShjfD0wKTtsPTB8bDkoYywxNDExODIpOylpZig4MiE9KDI1NSYoMHxhOSgwfGZlW2w+PjBdKSl8MCkpaWYoMHx5MChsLDE0MTIzNikpaWYoMHx5MChsLDE0MTI0MikmJjB8eTAobCwxNDEyNTIpKXtpZighKDB8eTAobCwxNDEy''@;'; + put 'put ''NTgpKSl7cnRbcD4+MV09MTI4fHJ0W3A+PjFdLGM9MCxmPWw9Zjtjb250aW51ZX1pZigwfHkwKGwsMTQxMjY1KSl7YVt3Pj4yXT1sLCRyKDAsMTQxMTk4LHcpLGY9MSxjPTA7Y29udGludWV9cnRbcD4+MV09MjU2fHJ0W3A+PjFdLGM9MCxmPWw9Zn1lbHNlIHJ0W3A+PjFdPTMyfHJ0W3A+PjFd''@;'; + put 'put ''LGM9MCxmPWw9ZjtlbHNlIHJ0W3A+PjFdPS0zODUmcnRbcD4+MV0sYz0wLGY9bD1mO2Vsc2V7aWYoISgwfHkwKGM9bCsxfDAsMTQxMTg1KSkpe3J0W3A+PjFdPTR8cnRbcD4+MV0sYz0wLGY9bD1mO2NvbnRpbnVlfWlmKDB8eTAoYywxNDExOTIpKXthW0E+PjJdPWwsJHIoMCwxNDExOTgsQSks''@;'; + put 'put ''Zj0xLGM9MDtjb250aW51ZX1ydFtwPj4xXT0yfHJ0W3A+PjFdLGM9MCxmPWw9Zn1yZXR1cm4gRnQobSksYWU9YiwwfGZ9LGZ1bmN0aW9uIG81KGwsYyl7cmV0dXJuIGFbOCsobHw9MCk+PjJdPTB8cmEoY3w9MCksMH0sZnVuY3Rpb24gSnYobCxjKXtyZXR1cm4gYVsxMisobHw9MCk+PjJdPTB8''@;'; + put 'put ''cmEoY3w9MCksMH0sZnVuY3Rpb24gcWIobCxjKXtsfD0wO3ZhciBmLG0scD0wO3N3aXRjaChtPWFlLGFlPWFlKzE2fDAsZj1tLCgwfGE5KDB8ZmVbKGN8PTApPj4wXSkpPDwyND4+MjR8MCl7Y2FzZSA2NjowfHkwKGMrMXwwLDE0MTEyOCk/cD03OihydFsobD1sKzM2fDApPj4xXT0xNnxydFts''@;'; + put 'put ''Pj4xXSxsPTApO2JyZWFrO2Nhc2UgODQ6MHx5MChjKzF8MCwxNDExMzQpP3A9NzoocnRbKGw9bCszNnwwKT4+MV09OHxydFtsPj4xXSxsPTApO2JyZWFrO2Nhc2UgNzc6MHx5MChjKzF8MCwxNDExMzcpP3A9NzpsPTA7YnJlYWs7ZGVmYXVsdDpwPTd9cmV0dXJuIDc9PSgwfHApJiYoYVtmPj4y''@;'; + put 'put ''XT1jLCRyKDAsMTQxMTQzLGYpLGw9MSksYWU9bSwwfGx9LGZ1bmN0aW9uIHVHKGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9MCxwPWFlLGFlPWFlKzE2fDAsMHxUZChjfD0wLDE0MTEyMiwwLDY1NTM1LGY9cCk/bD0xOihydFtsKzM4Pj4xXT1hW2Y+PjJdLGw9MCksYWU9cCwwfGx9LGZ1bmN0aW9u''@;'; + put 'put ''IGVfKGwsYyl7bHw9MDt2YXIgZixtLHA9MDtzd2l0Y2gobT1hZSxhZT1hZSsxNnwwLGY9bSwoMHxhOSgwfGZlWyhjfD0wKT4+MF0pKTw8MjQ+PjI0fDApe2Nhc2UgNzY6MHx5MChjKzF8MCwxNDA3NjgpP3A9NzoocnRbKGw9bCszNnwwKT4+MV09NHxydFtsPj4xXSxsPTApO2JyZWFrO2Nhc2Ug''@;'; + put 'put ''ODI6MHx5MChjKzF8MCwxNDA3NjMpP3A9NzoocnRbKGw9bCszNnwwKT4+MV09MnxydFtsPj4xXSxsPTApO2JyZWFrO2Nhc2UgNjc6MHx5MChjKzF8MCwxNDA3NzIpP3A9NzpsPTA7YnJlYWs7ZGVmYXVsdDpwPTd9cmV0dXJuIDc9PSgwfHApJiYoYVtmPj4yXT1jLCRyKDAsMTQwNzc4LGYpLGw9''@;'; + put 'put ''MSksYWU9bSwwfGx9LGZ1bmN0aW9uIFRCKGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9MCxwPWFlLGFlPWFlKzE2fDAsMHxUZChjfD0wLDE0MTcyMCwwLDEyNyxmPXApP2w9MTooZmVbbCs4OD4+MF09YVtmPj4yXSxsPTApLGFlPXAsMHxsfSxmdW5jdGlvbiBJQihsLGMpe3ZhciBmLHA7cmV0dXJu''@;'; + put 'put ''IGx8PTAscD1hZSxhZT1hZSsxNnwwLGY9cCw0Mj09KDB8ZmVbKGN8PTApPj4wXSk/KGZlWyhsPWwrMTEyfDApPj4wXT0xfGZlW2w+PjBdLGw9MCk6KGFbZj4+Ml09YywkcigwLDE0MTY4MCxmKSxsPTEpLGFlPXAsMHxsfSxmdW5jdGlvbiBYdChsLGMpe3ZhciBmLHA7cmV0dXJuIGx8PTAscD1h''@;'; + put 'put ''ZSxhZT1hZSsxNnwwLGY9cCw0Mj09KDB8ZmVbKGN8PTApPj4wXSk/KGZlWyhsPWwrMTEyfDApPj4wXT0yfGZlW2w+PjBdLGw9MCk6KGFbZj4+Ml09YywkcigwLDE0MTY0MyxmKSxsPTEpLGFlPXAsMHxsfSxmdW5jdGlvbiBESyhsLGMpe3ZhciBwLGY9MDtwPTcyKyhsfD0wKXwwLGw9Y3w9MDtl''@;'; + put 'put ''OmZvcig7Oyl7c3dpdGNoKDB8ZmVbcCsoMHxKdFtsPj4wXSk+PjBdKXtjYXNlIDU6Zj0yO2JyZWFrO2Nhc2UgNjpmPTM7YnJlYWs7Y2FzZSA3OmY9NDticmVhaztjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjM6Y2FzZSAyMjpjYXNlIDI5OmY9MTticmVhaztkZWZhdWx0''@;'; + put 'put ''OmJyZWFrIGV9bD1sK2Z8MH1yZXR1cm4gbC1jfDB9LGZ1bmN0aW9uIFV5KGwsYyl7Y3w9MCxsPTcyKyhsfD0wKXwwO2U6Zm9yKDs7KXtzd2l0Y2goMHxmZVtsKygwfEp0W2M+PjBdKT4+MF0pe2Nhc2UgMjE6Y2FzZSA5OmNhc2UgMTA6YnJlYWs7ZGVmYXVsdDpicmVhayBlfWM9YysxfDB9cmV0''@;'; + put 'put ''dXJuIDB8Y30sZnVuY3Rpb24gUWsobCxjKXtsfD0wO3ZhciBmPTAscD0wO2Y9MHxmZVsobD0yKyhjfD0wKXwwKT4+MF07ZTpkb3tpZihmPDwyND4+MjQ9PTEyMClmb3IoZj1jKzN8MCxsPTA7Oyl7dDpmb3IoOzspe2lmKGM9KHA9MHxmZVtmPj4wXSk8PDI0Pj4yNCxwPDwyND4+MjQ9PTU5KXtw''@;'; + put 'put ''PTE0O2JyZWFrIGV9c3dpdGNoKDB8Yyl7Y2FzZSA1NzpjYXNlIDU2OmNhc2UgNTU6Y2FzZSA1NDpjYXNlIDUzOmNhc2UgNTI6Y2FzZSA1MTpjYXNlIDUwOmNhc2UgNDk6Y2FzZSA0ODpwPTc7YnJlYWsgdDtjYXNlIDcwOmNhc2UgNjk6Y2FzZSA2ODpjYXNlIDY3OmNhc2UgNjY6Y2FzZSA2NTpw''@;'; + put 'put ''PTg7YnJlYWsgdDtjYXNlIDEwMjpjYXNlIDEwMTpjYXNlIDEwMDpjYXNlIDk5OmNhc2UgOTg6Y2FzZSA5NzpwPTk7YnJlYWsgdH1mPWYrMXwwfWlmKDc9PSgwfHApPyhwPTAsbD1jKy00OHxsPDw0KTo4PT0oMHxwKT8ocD0wLGw9KGw8PDQpLTU1K2N8MCk6OT09KDB8cCkmJihwPTAsbD0obDw8''@;'; + put 'put ''NCktODcrY3wwKSwhKCgwfGwpPDExMTQxMTIpKXtsPS0xO2JyZWFrfWY9ZisxfDB9ZWxzZSBmb3IoYz1sLGw9MDs7KXtpZihmPDwyND4+MjQ9PTU5KXtwPTE0O2JyZWFrIGV9aWYoKDB8KGw9KGY8PDI0Pj4yNCktNDgrKDEwKmx8MCl8MCkpPj0xMTE0MTEyKXtsPS0xO2JyZWFrIGV9Yz1mPWMr''@;'; + put 'put ''MXwwLGY9MHxmZVtmPj4wXX19d2hpbGUoMCk7cmV0dXJuIDE0PT0oMHxwKSYmKGw9MHxCZChsKSksMHxsfSxmdW5jdGlvbiBWdmUobCxjKXtyZXR1cm4gbHw9MCxsPTB8SnRbKGN8PTApPj4wXSwxPDwoMzEmKGM9MHxKdFtjKzE+PjBdKSkmYVs1Njk0MCsoKCgwfEp0WzE0NDA0NCsobD4+PjIm''@;'; + put 'put ''Nyk+PjBdKTw8M3xsPDwxJjZ8Yz4+PjUmMSk8PDIpPj4yXXwwfSxmdW5jdGlvbiB2MWUobCxjKXt2YXIgZjtyZXR1cm4gbHw9MCwxPDwoMzEmKGw9MHxKdFsyKyhjfD0wKT4+MF0pKSZhWzU2OTQwKygoKDB8SnRbMTQ0MDQ0KygoZj0wfEp0W2MrMT4+MF0pPj4+MiYxNXxmZVtjPj4wXTw8NCYy''@;'; + put 'put ''NTUpPj4wXSk8PDN8Zjw8MSY2fGw+Pj41JjEpPDwyKT4+Ml18MH0sZnVuY3Rpb24gQTFlKGwsYyl7cmV0dXJuIDB9LGZ1bmN0aW9uIHNqKGwsYyl7cmV0dXJuIGx8PTAsbD0wfEp0WyhjfD0wKT4+MF0sMTw8KDMxJihjPTB8SnRbYysxPj4wXSkpJmFbNTY5NDArKCgoMHxKdFsxNDM3ODgrKGw+''@;'; + put 'put ''Pj4yJjcpPj4wXSk8PDN8bDw8MSY2fGM+Pj41JjEpPDwyKT4+Ml18MH0sZnVuY3Rpb24ganZlKGwsYyl7dmFyIGY7cmV0dXJuIGx8PTAsMTw8KDMxJihsPTB8SnRbMisoY3w9MCk+PjBdKSkmYVs1Njk0MCsoKCgwfEp0WzE0Mzc4OCsoKGY9MHxKdFtjKzE+PjBdKT4+PjImMTV8ZmVbYz4+MF08''@;'; + put 'put ''PDQmMjU1KT4+MF0pPDwzfGY8PDEmNnxsPj4+NSYxKTw8Mik+PjJdfDB9LGZ1bmN0aW9uIFp2ZShsLGMpe3JldHVybigwfEp0WyhjfD0wKT4+MF0pPDE5ND8xOihjPTB8SnRbYysxPj4wXSk+Pj43XjF8MTkyPT0oMTkyJmN8MCl8MH0sZnVuY3Rpb24genZlKGwsYyl7bHw9MDt2YXIgZj0wO2w9''@;'; + put 'put ''MHxmZVsyKyhjfD0wKT4+MF07ZG97aWYobDw8MjQ+PjI0Pi0xKWw9MTtlbHNle2lmKChmPTB8ZmVbYz4+MF0pPDwyND4+MjQ9PS0xNyYmLTY1PT0oMHxmZVtjKzE+PjBdKSl7aWYoKDI1NSZsKT4xODkpe2w9MTticmVha31sPTE5MSxjPS02NX1lbHNle2lmKCgyNTUmbCk+MTkxKXtsPTE7YnJl''@;'; + put 'put ''YWt9aWYobD0yNTUmKGM9MHxmZVtjKzE+PjBdKSxmPDwyND4+MjQ9PS0zMil7bD0oMjU1JmMpPDE2MHwxOTI9PSgxOTImbHwwKTticmVha319bD0wPT0oMTI4Jmx8MCk/MTpmPDwyND4+MjQ9PS0xOT8oMjU1JmMpPjE1OToxOTI9PSgxOTImbHwwKX19d2hpbGUoMCk7cmV0dXJuIDEmbHwwfSxm''@;'; + put 'put ''dW5jdGlvbiBHdmUobCxjKXtsfD0wO3ZhciBmPTA7Zj0wfEp0WzMrKGN8PTApPj4wXTtkb3tpZighKDA9PSgxMjgmZnwwKXwxOTI9PSgxOTImZnwwKXx8KGY9MHxKdFtjKzI+PjBdLDA9PSgxMjgmZnwwKXwxOTI9PSgxOTImZnwwKSkpKXtpZihmPTB8ZmVbYz4+MF0sYz0yNTUmKGw9MHxmZVtj''@;'; + put 'put ''KzE+PjBdKSxmPDwyND4+MjQ9PS0xNil7bD0oMjU1JmwpPDE0NHwxOTI9PSgxOTImY3wwKTticmVha31sPTA9PSgxMjgmY3wwKT8xOmY8PDI0Pj4yND09LTEyPygyNTUmbCk+MTQzOjE5Mj09KDE5MiZjfDApO2JyZWFrfWw9MX13aGlsZSgwKTtyZXR1cm4gMSZsfDB9LGZ1bmN0aW9uIGhqKGws''@;'; + put 'put ''Yyl7dmFyIG0sZj0wLHA9MDttPTcyKyhsfD0wKXwwLHA9Y3w9MDtlOmZvcig7Oyl7c3dpdGNoKGY9MHxmZVtwKzE+PjBdLDB8KGw9KGw9MHxmZVtwPj4wXSk8PDI0Pj4yND8wfGYwKGwsZik6MHxKdFttKygyNTUmZik+PjBdKSl7Y2FzZSA1OmNhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2Ug''@;'; + put 'put ''MjQ6Y2FzZSAyMzpjYXNlIDIyOmNhc2UgMjk6bD0yO2JyZWFrO2Nhc2UgNjpsPTM7YnJlYWs7Y2FzZSA3Omw9NDticmVhaztkZWZhdWx0OmJyZWFrIGV9cD1wK2x8MH1yZXR1cm4gcC1jfDB9LGZ1bmN0aW9uIEt2ZShsLGMpe2N8PTA7dmFyIHAsZj0wO3A9NzIrKGx8PTApfDA7ZTpmb3IoOzsp''@;'; + put 'put ''e3N3aXRjaChmPTB8ZmVbYysxPj4wXSwwfChsPShsPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChsLGYpOjB8SnRbcCsoMjU1JmYpPj4wXSkpe2Nhc2UgMjE6Y2FzZSA5OmNhc2UgMTA6YnJlYWs7ZGVmYXVsdDpicmVhayBlfWM9YysyfDB9cmV0dXJuIDB8Y30sZnVuY3Rpb24gJHZlKGwsYyl7''@;'; + put 'put ''bHw9MDt2YXIgZj0wLHA9MDtsPTQrKGN8PTApfDA7ZTpkb3tpZigwfGZlW2w+PjBdKWY9bCxsPTAsYz0tMSxwPTE2O2Vsc2UgaWYoMTIwPT0oMHxmZVtjKzU+PjBdKSlmb3IoYz1jKzZ8MCxsPTA7Oyl7dDpmb3IoOzspe2lmKCEoMHxmZVtjPj4wXSkpe2lmKChmPTB8ZmVbYysxPj4wXSk8PDI0''@;'; + put 'put ''Pj4yND09NTkpe3A9MTg7YnJlYWsgZX1zd2l0Y2goMHwoZj1mPDwyND4+MjQpKXtjYXNlIDU3OmNhc2UgNTY6Y2FzZSA1NTpjYXNlIDU0OmNhc2UgNTM6Y2FzZSA1MjpjYXNlIDUxOmNhc2UgNTA6Y2FzZSA0OTpjYXNlIDQ4OnA9ODticmVhayB0O2Nhc2UgNzA6Y2FzZSA2OTpjYXNlIDY4OmNh''@;'; + put 'put ''c2UgNjc6Y2FzZSA2NjpjYXNlIDY1OnA9OTticmVhayB0O2Nhc2UgMTAyOmNhc2UgMTAxOmNhc2UgMTAwOmNhc2UgOTk6Y2FzZSA5ODpjYXNlIDk3OnA9MTA7YnJlYWsgdH19Yz1jKzJ8MH1pZig4PT0oMHxwKT9sPWYrLTQ4fGw8PDQ6OT09KDB8cCk/bD0obDw8NCktNTUrZnwwOjEwPT0oMHxw''@;'; + put 'put ''KSYmKGw9KGw8PDQpLTg3K2Z8MCksISgoMHxsKTwxMTE0MTEyKSl7bD0tMSxwPTE5O2JyZWFrfWM9YysyfDB9ZWxzZSBjPWwsbD0wLHA9MTN9d2hpbGUoMCk7Zm9yKDs7KWlmKDEzIT0oMHxwKSlpZigxNiE9KDB8cCkpaWYoMTghPSgwfHApKXtpZigxOT09KDB8cCkpcmV0dXJuIDB8bH1lbHNl''@;'; + put 'put ''IGw9MHxCZChsKSxwPTE5O2Vsc2V7aWYoKDB8KGw9KDEwKmx8MCktNDgrY3wwKSk+PTExMTQxMTIpe2w9LTEscD0xOTtjb250aW51ZX1jPWYrMnwwLHA9MTN9ZWxzZXtpZigwfGZlW2M+PjBdKXtmPWMsYz0tMSxwPTE2O2NvbnRpbnVlfWlmKDU5PT0oMHxmZVtjKzE+PjBdKSl7cD0xODtjb250''@;'; + put 'put ''aW51ZX1mPWMsYz0wfGZlW2MrMT4+MF0scD0xNn1yZXR1cm4gMH0sZnVuY3Rpb24gWXZlKGwsYyl7dmFyIG0sZj0wLHA9MDttPTcyKyhsfD0wKXwwLHA9Y3w9MDtlOmZvcig7Oyl7c3dpdGNoKGY9MHxmZVtwPj4wXSwwfChsPShsPTB8ZmVbcCsxPj4wXSk8PDI0Pj4yND8wfGYwKGwsZik6MHxK''@;'; + put 'put ''dFttKygyNTUmZik+PjBdKSl7Y2FzZSA1OmNhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMzpjYXNlIDIyOmNhc2UgMjk6bD0yO2JyZWFrO2Nhc2UgNjpsPTM7YnJlYWs7Y2FzZSA3Omw9NDticmVhaztkZWZhdWx0OmJyZWFrIGV9cD1wK2x8MH1yZXR1cm4gcC1jfDB9LGZ1''@;'; + put 'put ''bmN0aW9uIGIxZShsLGMpe2N8PTA7dmFyIHAsZj0wO3A9NzIrKGx8PTApfDA7ZTpmb3IoOzspe3N3aXRjaChmPTB8ZmVbYz4+MF0sMHwobD0obD0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChsLGYpOjB8SnRbcCsoMjU1JmYpPj4wXSkpe2Nhc2UgMjE6Y2FzZSA5OmNhc2UgMTA6YnJlYWs7''@;'; + put 'put ''ZGVmYXVsdDpicmVhayBlfWM9YysyfDB9cmV0dXJuIDB8Y30sZnVuY3Rpb24gQzFlKGwsYyl7bHw9MDt2YXIgZj0wLHA9MDtsPTQrKGN8PTApfDA7ZTpkb3tpZigwPT0oMHxmZVtjKzU+PjBdKSYmMTIwPT0oMHxmZVtsPj4wXSkpZm9yKGM9Yys2fDAsbD0wOzspe3Q6Zm9yKDs7KXtpZighKDB8''@;'; + put 'put ''ZmVbYysxPj4wXSkpe2lmKChmPTB8ZmVbYz4+MF0pPDwyND4+MjQ9PTU5KXtwPTE3O2JyZWFrIGV9c3dpdGNoKDB8KGY9Zjw8MjQ+PjI0KSl7Y2FzZSA1NzpjYXNlIDU2OmNhc2UgNTU6Y2FzZSA1NDpjYXNlIDUzOmNhc2UgNTI6Y2FzZSA1MTpjYXNlIDUwOmNhc2UgNDk6Y2FzZSA0ODpwPTg7''@;'; + put 'put ''YnJlYWsgdDtjYXNlIDcwOmNhc2UgNjk6Y2FzZSA2ODpjYXNlIDY3OmNhc2UgNjY6Y2FzZSA2NTpwPTk7YnJlYWsgdDtjYXNlIDEwMjpjYXNlIDEwMTpjYXNlIDEwMDpjYXNlIDk5OmNhc2UgOTg6Y2FzZSA5NzpwPTEwO2JyZWFrIHR9fWM9YysyfDB9aWYoOD09KDB8cCk/KHA9MCxsPWYrLTQ4''@;'; + put 'put ''fGw8PDQpOjk9PSgwfHApPyhwPTAsbD0obDw8NCktNTUrZnwwKToxMD09KDB8cCkmJihwPTAsbD0obDw8NCktODcrZnwwKSwhKCgwfGwpPDExMTQxMTIpKXtsPS0xO2JyZWFrfWM9YysyfDB9ZWxzZSBmPWwsbD0wLHA9MTN9d2hpbGUoMCk7ZTpkb3tpZigxMz09KDB8cCkpZm9yKDs7KXtpZihw''@;'; + put 'put ''PTAsMHxmZVtmKzE+PjBdKWM9LTE7ZWxzZXtpZigoYz0wfGZlW2Y+PjBdKTw8MjQ+PjI0PT01OSl7cD0xNzticmVhayBlfWM9Yzw8MjQ+PjI0fWlmKCgwfChsPSgxMCpsfDApLTQ4K2N8MCkpPj0xMTE0MTEyKXtsPS0xO2JyZWFrfWY9ZisyfDAscD0xM319d2hpbGUoMCk7cmV0dXJuIDE3PT0o''@;'; + put 'put ''MHxwKSYmKGw9MHxCZChsKSksMHxsfSxFbixmdW5jdGlvbiBhMGUobCxjKXtsfD0wLGN8PTA7dmFyIEcscGUsZ2UsYmUsT2UsTGUsUmUsSGUsVmUscWUsbnQsV2Usb3QsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEs9MDtvdD1hZSxhZT1hZSs2MjR8MCxWZT1vdCs1''@;'; + put 'put ''ODR8MCxIZT1vdCs1NDR8MCxmPW90KzE5MnwwLE9lPW90LGFbKGJlPTE2KyhnZT1vdCs5NnwwKXwwKT4+Ml09cGU9b3QrMzY4fDAsYVsoTGU9T2UrMTZ8MCk+PjJdPWYsbnQ9MHxhW2M+PjJdLHA9MTUmKGM9MHxhWzE2NCsoRz0wfGFbKFJlPTE2KyhXZT0wfGFbbD4+Ml0pfDApPj4yXSk+PjJd''@;'; + put 'put ''KSxtPTE1JmFbMTY0KyhsPTB8YVsocWU9bnQrMTZ8MCk+PjJdKT4+Ml07ZG97aWYoKDB8bSk9PSgwfHApKXtpZihSPTB8ejUoV2UpLEs9MHx6NShudCksKDB8KEE9KDB8KEE9KDB8YVsyMzIrKHA9MHxhWzE2KygwfGFbKDM9PSgwfChtPTMmKE09MHxhW1I+PjJdKSkpP1I6Uis0OHwwKSs0MD4+''@;'; + put 'put ''Ml0pPj4yXSk+PjJdKS0oMHxhWzIzMisobT0wfGFbMTYrKDB8YVsoMj09KDB8bSk/UjpSKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKXwwKSk+LTE/QTowLUF8MCkpIT0oMHwodz0oMHwodz0oMHxhWzIzMisoYj0wfGFbMTYrKDB8YVsoMz09KDB8KGs9MyYoRD0wfGFbSz4+Ml0pKSk/SzpLKzQ4''@;'; + put 'put ''fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKyhrPTB8YVsxNisoMHxhWygyPT0oMHxrKT9LOksrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pfDApKT4tMT93OjAtd3wwKSkpe2w9QS13fDA7YnJlYWt9aWYoKDB8KG09KDB8KG09fn4oK19bcCsxNj4+M10tK19bbSsxNj4+M10pKSk+LTE/''@;'; + put 'put ''bTowLW18MCkpIT0oMHwocD0oMHwocD1+figrX1tiKzE2Pj4zXS0rX1trKzE2Pj4zXSkpKT4tMT9wOjAtcHwwKSkpe2w9bS1wfDA7YnJlYWt9aWYoKDB8KG09TT4+PjQpKSE9KDB8KHA9RD4+PjQpKSl7bD1tLXB8MDticmVha31pZigwfGZlW0crNDQ+PjBdP209V2U6KG09Yz0wPT0oMHxmZVtH''@;'; + put 'put ''Kzg0Pj4wXSk/UjpXZSxjPTB8YVsxNjQrKDB8YVtjKzE2Pj4yXSk+PjJdKSxwPW0rMTZ8MCwzMiZjKXtnbygwfHBlLDB8YVtwPj4yXSwxNzYpLHc9bSxiPShBPWdlKSs0OHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8YikpO2FbYmU+PjJdPXBl''@;'; + put 'put ''LGFbKDM9PSgwfChBPTMmYVtnZT4+Ml0pKT9nZTpnZSs0OHwwKSs0MD4+Ml09YVsoMj09KDB8KHc9MyZhW20+PjJdKSk/bTptKy00OHwwKSs0MD4+Ml0sYVsoMj09KDB8QSk/Z2U6Z2UrLTQ4fDApKzQwPj4yXT1hWygzPT0oMHx3KT9tOm0rNDh8MCkrNDA+PjJdLHc9NTYrKDB8YVtwPj4yXSl8''@;'; + put 'put ''MCxiPTQwKyhBPXBlKzE2fDApfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxiKSk7dz0xNisoMHxhW3A+PjJdKXwwLGI9NDArKEE9cGUrNTZ8MCl8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIp''@;'; + put 'put ''KTtmZVtwZSsxMTI+PjBdPTEsYVtwZSsxMTY+PjJdPW0sbT1nZSxsPTB8YVtxZT4+Ml19aWYoMHxmZVtsKzQ0Pj4wXT9wPW50OihwPWw9MD09KDB8ZmVbbCs4ND4+MF0pP0s6bnQsbD0wfGFbbCsxNj4+Ml0pLGM9cCsxNnwwLDMyJmFbbCsxNjQ+PjJdKXtnbygwfGYsMHxhW2M+PjJdLDE3Niks''@;'; + put 'put ''dz1wLGI9KEE9T2UpKzQ4fDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxiKSk7YVtMZT4+Ml09ZixhWygzPT0oMHwoQT0zJmFbT2U+PjJdKSk/T2U6T2UrNDh8MCkrNDA+PjJdPWFbKDI9PSgwfCh3PTMmYVtwPj4yXSkpP3A6cCstNDh8MCkrNDA+''@;'; + put 'put ''PjJdLGFbKDI9PSgwfEEpP09lOk9lKy00OHwwKSs0MD4+Ml09YVsoMz09KDB8dyk/cDpwKzQ4fDApKzQwPj4yXSx3PTU2KygwfGFbYz4+Ml0pfDAsYj00MCsoQT1mKzE2fDApfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxiKSk7dz0xNisoMHxh''@;'; + put 'put ''W2M+PjJdKXwwLGI9NDArKEE9Zis1NnwwKXwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8YikpO2ZlW2YrMTEyPj4wXT0xLGFbZisxMTY+PjJdPXB9ZWxzZSBmPWw7bD1mKzE2fDAsdz0xNisoYz0wfGFbbSsxNj4+Ml0pfDAsYj0oQT1IZSkrNDB8''@;'; + put 'put ''MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKTt3PWwsYj0oQT1WZSkrNDB8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKTtpZighKGw9MHxKQShIZSxWZSkpKXtsPWYrNTZ8MCx3PWMrNTZ8''@;'; + put 'put ''MCxiPShBPUhlKSs0MHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8YikpO3c9bCxiPShBPVZlKSs0MHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8YikpO2lmKCEobD0wfEpBKEhlLFZlKSkpe2lm''@;'; + put 'put ''KCgwfChjPTE5MiZhWzE2NCsoMHxhW1JlPj4yXSk+PjJdKSk9PSgwfChsPTE5MiZhWzE2NCsoMHxhW3FlPj4yXSk+PjJdKSkpe2w9KCgwfGFbV2U+PjJdKT4+PjQpLSgoMHxhW250Pj4yXSk+Pj40KXwwO2JyZWFrfWw9Yy1sfDA7YnJlYWt9fX1lbHNlIGw9bS1wfDB9d2hpbGUoMCk7cmV0dXJu''@;'; + put 'put ''IGFlPW90LDB8bH0sZnVuY3Rpb24gcDcobCxjKXt2YXIgZixwPTAsbT0wLEE9MCx3PTA7cmV0dXJuIGY9MHxhWzk2KygwfGFbMTYrKDB8YVsobHw9MCk+PjJdKT4+Ml0pPj4yXSxjPTAhPSgwfChsPTB8YVs5NisoMHxhWzE2KygwfGFbKGN8PTApPj4yXSk+PjJdKT4+Ml0pKSwwfChmPyFjfHwo''@;'; + put 'put ''dz0rX1tmKzMyPj4zXSxBPStfW2wrMzI+PjNdLChtPStfW2YrMjQ+PjNdKT4ocD0rX1tsKzI0Pj4zXSkpPy0xOm08cD8xOnc+QT8tMTp3PEEmMToxJmMpfSxmdW5jdGlvbiBfMGUobCxjKXtyZXR1cm4oMHxhWyhsfD0wKT4+Ml0pLSgwfGFbKGN8PTApPj4yXSl8MH0sZnVuY3Rpb24geDBlKGws''@;'; + put 'put ''Yyl7cmV0dXJuKCgwfGFbYVsobHw9MCk+PjJdPj4yXSk+Pj40KS0oKDB8YVthWyhjfD0wKT4+Ml0+PjJdKT4+PjQpfDB9LGZ1bmN0aW9uIEJZKGwsYyl7cmV0dXJuKDB8YVsyMzYrKDB8YVsxNisoMHxhWyhsfD0wKT4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzNisoMHxhWzE2KygwfGFbKGN8PTAp''@;'; + put 'put ''Pj4yXSk+PjJdKT4+Ml0pfDB9LGZ1bmN0aW9uIGNvZShsLGMpe3ZhciBmLHAsbTtyZXR1cm4oKHA9K19bKG09MHxhWzQ2NzUwXSkrKDQwKigwfGFbKGN8PTApPj4yXSl8MCkrMjQ+PjNdKT4oZj0rX1ttKyg0MCooMHxhWyhsfD0wKT4+Ml0pfDApKzI0Pj4zXSkmMSktKHA8ZiYxKXwwfSxmdW5j''@;'; + put 'put ''dGlvbiB1b2UobCxjKXtyZXR1cm4gY3w9MCxsPTB8QVUoMHxhWyhsfD0wKT4+Ml0pLCgoMHwoYz0wfEFVKDB8YVtjPj4yXSkpKTwoMHxsKSYxKS0oKDB8Yyk+KDB8bCkmMSl8MH0sZnVuY3Rpb24gQW9lKGwsYyl7dmFyIHAsQSx3LGIsZj0wLG09MDtpZihiPWFlLGFlPWFlKzgwfDAsdz1iKzQw''@;'; + put 'put ''fDAsQT1iLHA9MHxhW2FbMTcyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdPj4yXSxsPTB8YVthWzE3MisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXT4+Ml0sKDB8TFUoYykpPDwyND4+MjQhPTAmJigwfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDpwKzQ4fDApKzQwPj4yXSk9PSgwfGFbKDM9PSgzJmFb''@;'; + put 'put ''bD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSkmJigwfEZVKHAsbCkpPDwyND4+MjQhPTApe2Y9MTYrKDB8YVtsKzE2Pj4yXSl8MCxsPTE2KygwfGFbcCsxNj4+Ml0pfDAsYz0obT1BKSs0MHwwO2Rve2FbbT4+Ml09YVtsPj4yXSxtPW0rNHwwLGw9bCs0fDB9d2hpbGUoKDB8bSk8KDB8YykpO2w9''@;'; + put 'put ''ZixjPShtPXcpKzQwfDA7ZG97YVttPj4yXT1hW2w+PjJdLG09bSs0fDAsbD1sKzR8MH13aGlsZSgoMHxtKTwoMHxjKSk7bD0wPT0oMHxKQShBLHcpKSYxfWVsc2UgbD0wO3JldHVybiBhZT1iLDB8bH0sZnVuY3Rpb24gd0gobCxjKXt2YXIgcCxBLHcsYixmPTAsbT0wO2lmKGI9YWUsYWU9YWUr''@;'; + put 'put ''ODB8MCx3PWIrNDB8MCxBPWIscD0wfGFbYVsxODArKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0+PjJdLGw9MHxhW2FbMTgwKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdPj4yXSwoMHxSVShjKSk8PDI0Pj4yNCE9MCYmKDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSk9PSgw''@;'; + put 'put ''fGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pJiYoMHxGVShwLGwpKTw8MjQ+PjI0IT0wKXtmPTU2KygwfGFbbCsxNj4+Ml0pfDAsbD01NisoMHxhW3ArMTY+PjJdKXwwLGM9KG09QSkrNDB8MDtkb3thW20+PjJdPWFbbD4+Ml0sbT1tKzR8MCxsPWwrNHwwfXdoaWxlKCgw''@;'; + put 'put ''fG0pPCgwfGMpKTtsPWYsYz0obT13KSs0MHwwO2Rve2FbbT4+Ml09YVtsPj4yXSxtPW0rNHwwLGw9bCs0fDB9d2hpbGUoKDB8bSk8KDB8YykpO2w9MD09KDB8SkEoQSx3KSkmMX1lbHNlIGw9MDtyZXR1cm4gYWU9YiwwfGx9LGZ1bmN0aW9uIEtoKGwsYyl7dmFyIGY9MCxwPTA7cmV0dXJuIDB8''@;'; + put 'put ''KGw9KGY9K19bOCsobHw9MCk+PjNdKT4ocD0rX1s4KyhjfD0wKT4+M10pPzE6ZjxwPy0xOihwPStfW2wrMTY+PjNdKT4oZj0rX1tjKzE2Pj4zXSk/MToocDxmKTw8MzE+PjMxKX0sZnVuY3Rpb24gYlgobCxjKXt2YXIgZixwO3JldHVybiAwfCgocD0rX1sobHw9MCk+PjNdKT4oZj0rX1soY3w9''@;'; + put 'put ''MCk+PjNdKT8xOihwPGYpPDwzMT4+MzEpfSxmdW5jdGlvbiBFWChsLGMpe3ZhciBmPTAscD0wO3JldHVybiAwfChsPShmPStfWzgrKGw9MHxhWyhsfD0wKT4+Ml0pPj4zXSk8KHA9K19bOCsoYz0wfGFbKGN8PTApPj4yXSk+PjNdKT8tMTpmPnA/MToocD0rX1tsPj4zXSk8KGY9K19bYz4+M10p''@;'; + put 'put ''Py0xOnA+ZiYxKX0sZnVuY3Rpb24gVEQobCxjKXtyZXR1cm4gMHwoKDB8YVszNisobHw9MCk+PjJdKT4oMHxhWzQ0KyhjfD0wKT4+Ml0pPzA6KDB8YVtjKzM2Pj4yXSk8PSgwfGFbbCs0ND4+Ml0pJjEpfSxmdW5jdGlvbiBCWChsLGMpe3JldHVybiAwfCgoMHxhWzMyKyhsfD0wKT4+Ml0pPigw''@;'; + put 'put ''fGFbNDArKGN8PTApPj4yXSk/MDooMHxhW2MrMzI+PjJdKTw9KDB8YVtsKzQwPj4yXSkmMSl9LGZ1bmN0aW9uIERmKGwsYyl7dmFyIGYscD0wLG09MCxBPTA7cmV0dXJuIGY9MzIrKGx8PTApfDAscD0zMisoY3w9MCl8MCwoMHxhW2wrMzY+PjJdKTw9KDB8YVtjKzQ0Pj4yXSkmJigwfGFbYysz''@;'; + put 'put ''Nj4+Ml0pPD0oMHxhW2wrNDQ+PjJdKT8oMHxhW2wrNDA+PjJdKTwoMHxhW3A+PjJdKT9sPTE6KEE9KEE9MHxQWChmLHApKS0oMHxhW2MrMTI+PjJdKSsoMHxhW2wrMTI+PjJdKXwwLG09KDB8KGM9MHxhW2MrMTY+PjJdKSk8KDB8KGw9MHxhW2wrMTY+PjJdKSksbD0oMHxBKTw9KChwPTB8SUQo''@;'; + put 'put ''ZixwKSktKG0/bDpjKSsobT9jOmwpfDApJjEpOmw9MCwwfGx9LGZ1bmN0aW9uIExmKGwsYyl7dmFyIGYscD0wLG09MCxBPTA7cmV0dXJuIHA9MzIrKGN8PTApfDAsKDB8YVsoZj0zMisobHw9MCl8MCk+PjJdKTw9KDB8YVtjKzQwPj4yXSkmJigwfGFbcD4+Ml0pPD0oMHxhW2wrNDA+PjJdKT8o''@;'; + put 'put ''MHxhW2wrNDQ+PjJdKTwoMHxhW2MrMzY+PjJdKT9sPTE6KEE9KEE9MHxJRChmLHApKS0oMHxhW2MrMTY+PjJdKSsoMHxhW2wrMTY+PjJdKXwwLG09KDB8KGM9MHxhW2MrMTI+PjJdKSk8KDB8KGw9MHxhW2wrMTI+PjJdKSksbD0oMHxBKTw9KChwPTB8UFgoZixwKSktKG0/bDpjKSsobT9jOmwp''@;'; + put 'put ''fDApJjEpOmw9MCwwfGx9LFBYLElELGZ1bmN0aW9uIG52ZShsLGMpe3ZhciBmPTAscD0wO3JldHVybiAwfChsPShmPStfWyhsfD0wKT4+M10pPChwPStfWyhjfD0wKT4+M10pPy0xOmY+cD8xOihwPStfW2wrOD4+M10pPChmPStfW2MrOD4+M10pPy0xOnA+ZiYxKX0sZnVuY3Rpb24gTTJlKGws''@;'; + put 'put ''Yyl7dmFyIGYscCxtO3JldHVybiAwfCgocD0ram5bKG09MHxhWzQ2ODczXSkrKGFbKGx8PTApPj4yXTw8Mik+PjJdKTwoZj0ram5bbSsoYVsoY3w9MCk+PjJdPDwyKT4+Ml0pPy0xOnA+ZiYxKX0sZnVuY3Rpb24gTFYobCxjKXtsfD0wO3ZhciBHLEsscGUsTGUsUmUsZj0wLHA9MCxtPTAsQT0w''@;'; + put 'put ''LHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLGdlPTAsYmU9MCxPZT0wO2ZvcihSZT1hZSxhZT1hZSsxNnwwLHBlPVJlLEc9UmUrOHwwLEs9UmUrNHwwLGFbOCsoY3w9MCk+PjJdPTAsTGU9MHxRbihhW2M+PjJdPDwyKSxtPTB8YVtjPj4yXSxwPTA7ISgoMHxwKT49KDB8bSkpOylhW0xlKyhwPDwy''@;'; + put 'put ''KT4+Ml09bCsoMjQqcHwwKSxwPXArMXwwO3gxKExlLG0sNCw3OSksRD0wLEE9MCxtPTAsdz0wO2U6Zm9yKDs7KXtpZigoMHxEKT49KDB8YVtjPj4yXSkpe2JlPTAsZj1BLE9lPXc7YnJlYWt9Zm9yKGFbRz4+Ml09cD0wfGFbKFI9TGUrKEQ8PDIpfDApPj4yXSxhW0s+PjJdPXA9KDB8YVsobD0w''@;'; + put 'put ''fGFbcCsxNj4+Ml0pPj4yXSk9PSgwfHApPzB8YVtsKzQ+PjJdOnArLTI0fDAsTT0wLGw9QSxrPXc7ISgoMHxNKT49Mik7KXtzd2l0Y2goMHx4MmUoRyxLKSl7Y2FzZS0xOmZvcihBPTAsdz1sOyEoKDB8QSk+PSgwfGspKTspe2lmKDB8KGI9MHxLWCgwfGFbdz4+Ml0scCkpKXtiZT1iLGY9bCxP''@;'; + put 'put ''ZT1rO2JyZWFrIGV9QT1BKzF8MCx3PTB8YVt3KzQ+PjJdfUE9MHxRbigxMiksaz9hW20rND4+Ml09QToobT0wLGw9QSksYVtBKzg+PjJdPW0sYVtBPj4yXT1wLGFbQSs0Pj4yXT0wLGFbcCsyMD4+Ml09QSx3PWsrMXwwO2JyZWFrO2Nhc2UgMTppZighKEE9MHxhWyhwPXArMjB8MCk+PjJdKSl7''@;'; + put 'put ''Z2U9MTk7YnJlYWsgZX1kb3tpZigxIT0oMHxrKSl7aWYoKDB8QSk9PSgwfGwpKXthWzgrKGw9MHxhW2wrND4+Ml0pPj4yXT0wO2JyZWFrfWlmKCgwfEEpPT0oMHxtKSl7YVs0KyhtPTB8YVttKzg+PjJdKT4+Ml09MDticmVha31hWzQrKHc9MHxhW0ErOD4+Ml0pPj4yXT1hWyhiPUErNHwwKT4+''@;'; + put 'put ''Ml0sYVs4KygwfGFbYj4+Ml0pPj4yXT13O2JyZWFrfWw9MCxtPTB9d2hpbGUoMCk7RnQoQSksYVtwPj4yXT0wLEE9bSx3PWsrLTF8MDticmVhaztkZWZhdWx0OkE9bSx3PWt9YVtLPj4yXT1tPSgwfChwPTB8YVtSPj4yXSkpPT0oMHxhWzQrKG09MHxhW3ArMTY+PjJdKT4+Ml0pPzB8YVttPj4y''@;'; + put 'put ''XTpwKzI0fDAsTT1NKzF8MCxtPUEsaz13fUQ9RCsxfDAsQT1sLHc9a31mb3IoMTk9PSgwfGdlKSYmKCRyKDEsOTM3MjcscGUpLHplKDE4NzQ5NiwxKSkscD0wOyEoKDB8cCk+PSgwfE9lKSk7KWdlPTB8YVtmKzQ+PjJdLEZ0KGYpLHA9cCsxfDAsZj1nZTtyZXR1cm4gRnQoTGUpLGFlPVJlLDB8''@;'; + put 'put ''YmV9LHgyZSxmdW5jdGlvbiBFdmUobCxjKXt2YXIgZjtyZXR1cm4gMHwoKGY9K19bYVsobHw9MCk+PjJdPj4zXS0rX1thWyhjfD0wKT4+Ml0+PjNdKTwwPzE6KGY+MCk8PDMxPj4zMSl9LGZ1bmN0aW9uIEZfKGwsYyl7dmFyIGYscDtyZXR1cm4gMHwoKHA9K19bOCsobHw9MCk+PjNdKT4oZj0r''@;'; + put 'put ''X1s4KyhjfD0wKT4+M10pPy0xOnA8ZiYxKX0sZnVuY3Rpb24gaXJlKGwsYyl7cmV0dXJuIDB8bH0sZnVuY3Rpb24gQm1lKGwsYyl7cmV0dXJuIGx8PTAsKDB8Y3IoY3w9MCkpIT0oMHxsKSYmKGM9MHxXbihsLGMsMCkpLDB8Y30sZnVuY3Rpb24gUm1lKGwsYyl7cmV0dXJuIGx8PTAsKDB8Y3Io''@;'; + put 'put ''Y3w9MCkpIT0oMHxsKSYmKGM9MHxWZChsLGMsMCkpLDB8Y30sZnVuY3Rpb24gU0MobCxjKXt2YXIgZjtyZXR1cm4gZj0wfGZlWyhsPTE1NysoMHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4wXSwoMHwoY3w9MCkpPj0wJiYoZmVbbD4+MF09YyksMHxmfSx6dCxWMCxmdW5jdGlvbiBUcmUobCxjKXt2''@;'; + put 'put ''YXIgZjtyZXR1cm4gZj0wfGZlWyhsPTgrKDB8YVsxNisobHw9MCk+PjJdKXwwKT4+MF0sKDB8KGN8PTApKT49MCYmKGZlW2w+PjBdPWMpLDB8Zn0sZnVuY3Rpb24gaVcobCxjKXtyZXR1cm4oMHxhW2FbKGN8PTApPj4yXT4+Ml0pLSgwfGFbYVsobHw9MCk+PjJdPj4yXSl8MH0sZnVuY3Rpb24g''@;'; + put 'put ''THJlKGwsYyl7dmFyIGY7cmV0dXJuIDB8KCgwfChsPTB8YVsoZj0wfGFbNDcwNTZdKSsoYVsxNisoMHxhWyhsfD0wKT4+Ml0pPj4yXTw8Mik+PjJdKSk+KDB8KGM9MHxhW2YrKGFbMTYrKDB8YVsoY3w9MCk+PjJdKT4+Ml08PDIpPj4yXSkpPzE6KCgwfGwpPCgwfGMpKTw8MzE+PjMxKX0sZnVu''@;'; + put 'put ''Y3Rpb24gcHMobCxjKXt2YXIgZixwO3JldHVybiAwfCgocD0rX1sobD0wfGFbKGx8PTApPj4yXSk+PjNdKyArX1tsKzg+PjNdKTwoZj0rX1soYz0wfGFbKGN8PTApPj4yXSk+PjNdKyArX1tjKzg+PjNdKT8xOihwPmYpPDwzMT4+MzEpfSxmdW5jdGlvbiBSdShsLGMpe3ZhciBmLHAsbTtyZXR1''@;'; + put 'put ''cm4ocD0rX1s4KyhjfD0wKT4+M10tK19bOCsobT0wfGFbKGx8PTApPj4yXSk+PjNdKSpwKyhmPStfW2M+PjNdLStfW20+PjNdKSpmPD0rX1thW2wrND4+Ml0+PjNdfDB9LF91LEZqLGZ1bmN0aW9uIHZsZShsLGMpe3JldHVybiAwfHkwKDB8YVsobHw9MCk+PjJdLDB8YVsoY3w9MCk+PjJdKX0s''@;'; + put 'put ''ZnVuY3Rpb24gT2xlKGwsYyl7cmV0dXJuIDB8amkoMHxhWyhsfD0wKT4+Ml0sMHxhWyhjfD0wKT4+Ml0pfSxMaSxmdW5jdGlvbiBlQihsLGMpe2x8PTAsY3w9MDt2YXIgQSx3LGIsayxNLGdlLGJlLE9lLExlLFJlLEhlLGY9MCxwPTAsbT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLFZlPTAscWU9''@;'; + put 'put ''MCxudD0wLFdlPTAsb3Q9MCxTdD0wLGt0PTA7Zm9yKEhlPWFlLGFlPWFlKzExMnwwLE9lPUhlKzY0fDAsYmU9SGUrOTZ8MCxNPUhlKzMyfDAsTGU9SGUsUmU9MHx2cigyOCksYz0wfEdvKGwpLGFbKGdlPVJlKzR8MCk+PjJdPWMsYz0wfHZyKDcyKmN8MCksYVsocGU9UmUrMTJ8MCk+PjJdPWMs''@;'; + put 'put ''X1socD1MZSs4fDApPj4zXT0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsX1tMZT4+M109MTc5NzY5MzEzNDg2MjMxNTdlMjkyLF9bKG09TGUrMjR8MCk+PjNdPS0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsX1soQT1MZSsxNnwwKT4+M109LTE3OTc2OTMxMzQ4NjIzMTU3ZTI5Mix3PU0rMTZ8MCxiPU0r''@;'; + put 'put ''OHwwLGs9TSsyNHwwLGY9MHxEdChsKSxEPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixSPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixHPS0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsSz0tMTc5NzY5MzEzNDg2MjMxNTdlMjkyO2Y7KVZlPShWZT0uNSorX1s4MCsoU3Q9MHxhWyhvdD1mKzE2fDApPj4yXSk+''@;'; + put 'put ''PjNdKTwxPzE6VmUsX1tNPj4zXT1XZT0oa3Q9K19bU3QrMTY+PjNdKS0ocWU9KHFlPS41KigrX1tTdCs5Nj4+M10rICtfW1N0Kzg4Pj4zXSkpPDE/MTpxZSksX1t3Pj4zXT1xZT1rdCtxZSxfW2I+PjNdPW50PShrdD0rX1tTdCsyND4+M10pLVZlLF9baz4+M109VmU9a3QrVmUsX1tMZT4+M109''@;'; + put 'put ''V2U9K19bKEQ8V2U/TGU6TSk+PjNdLF9bcD4+M109bnQ9K19bKFI8bnQ/TGU6TSkrOD4+M10sX1tBPj4zXT1xZT0rX1soRz5xZT9MZTpNKSsxNj4+M10sX1ttPj4zXT1WZT0rX1soSz5WZT9MZTpNKSsyND4+M10sYVsoU3Q9Yys0MHwwKT4+Ml09YVtNPj4yXSxhW1N0KzQ+PjJdPWFbTSs0Pj4y''@;'; + put 'put ''XSxhW1N0Kzg+PjJdPWFbTSs4Pj4yXSxhW1N0KzEyPj4yXT1hW00rMTI+PjJdLGFbU3QrMTY+PjJdPWFbTSsxNj4+Ml0sYVtTdCsyMD4+Ml09YVtNKzIwPj4yXSxhW1N0KzI0Pj4yXT1hW00rMjQ+PjJdLGFbU3QrMjg+PjJdPWFbTSsyOD4+Ml0sYVtjPj4yXT0xfGFbYz4+Ml0sYVsxMTIrKDB8''@;'; + put 'put ''YVtvdD4+Ml0pPj4yXT1jLGM9Yys3MnwwLGY9MHx6dChsLGYpLEQ9V2UsUj1udCxHPXFlLEs9VmU7Zm9yKF9bTGU+PjNdPUQrLTM2LF9bcD4+M109UistMzYsX1tBPj4zXT1HKzM2LF9bbT4+M109SyszNixTdD0wfGFbcGU+PjJdLG09MHxhW2dlPj4yXSxhW09lPj4yXT1hW0xlPj4yXSxhW09l''@;'; + put 'put ''KzQ+PjJdPWFbTGUrND4+Ml0sYVtPZSs4Pj4yXT1hW0xlKzg+PjJdLGFbT2UrMTI+PjJdPWFbTGUrMTI+PjJdLGFbT2UrMTY+PjJdPWFbTGUrMTY+PjJdLGFbT2UrMjA+PjJdPWFbTGUrMjA+PjJdLGFbT2UrMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbT2UrMjg+PjJdPWFbTGUrMjg+PjJdLG09MHxm''@;'; + put 'put ''dW5jdGlvbiBpQihsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgayxNLFIsRyxLLG09MCxBPTAsdz0wLGI9MCxEPTAscGU9MDtmb3IoSz1hZSxhZT1hZSszMnwwLHc9SyxtPTQrKGI9KGN8PTApPDwyKXwwLEc9MHxRbig1NiooYj1iKzV8MCl8MCksYj0wfHZyKGI8PDIpLGs9MHxRbig3Mioo''@;'; + put 'put ''QT01Km18MSl8MCksTT0wfHZyKEQ9QTw8NSksRD0wfHZyKEQpLGFbdz4+Ml09YVtwPj4yXSxhW3crND4+Ml09YVtwKzQ+PjJdLGFbdys4Pj4yXT1hW3ArOD4+Ml0sYVt3KzEyPj4yXT1hW3ArMTI+PjJdLGFbdysxNj4+Ml09YVtwKzE2Pj4yXSxhW3crMjA+PjJdPWFbcCsyMD4+Ml0sYVt3KzI0''@;'; + put 'put ''Pj4yXT1hW3ArMjQ+PjJdLGFbdysyOD4+Ml09YVtwKzI4Pj4yXSxxOChsLGMsdyxHLDApLElqKDE3MyksTnYobSxiKSxWdihtLEcsYixBLGspLFI9MHxmdShtLEcsaywwLE0pLGFbdz4+Ml09YVtwPj4yXSxhW3crND4+Ml09YVtwKzQ+PjJdLGFbdys4Pj4yXT1hW3ArOD4+Ml0sYVt3KzEyPj4y''@;'; + put 'put ''XT1hW3ArMTI+PjJdLGFbdysxNj4+Ml09YVtwKzE2Pj4yXSxhW3crMjA+PjJdPWFbcCsyMD4+Ml0sYVt3KzI0Pj4yXT1hW3ArMjQ+PjJdLGFbdysyOD4+Ml09YVtwKzI4Pj4yXSxxOChsLGMsdyxHLDEpLE52KG0sYiksVnYobSxHLGIsQSxrKSxtPTB8ZnUobSxHLGssMSxEKSxBPTB8dnIoMHxB''@;'; + put 'put ''cihSPDw1LG0pKSxjPTAsbD0wOyEoKDB8Yyk+PSgwfG0pKTspe2Zvcih3PUQrKGM8PDUpfDAscD0wOyEoKDB8cCk+PSgwfFIpKTspcGU9bCsoMCE9KDB8TWQoQSsobDw8NSl8MCx3LE0rKHA8PDUpfDApKSYxKXwwLHA9cCsxfDAsbD1wZTtjPWMrMXwwfXJldHVybiBwZT0wfFYwKEEsbDw8NSks''@;'; + put 'put ''RnQoRyksRnQoYiksRnQoayksRnQoTSksRnQoRCksYVtmPj4yXT1sLGFlPUssMHxwZX0oU3QsbSxiZSxPZSksMSZhWzQ3MzIzXXwwJiYocGU9MHxhW3BlPj4yXSxvdD0wfGFbZ2U+PjJdLFN0PTB8YVtiZT4+Ml0sYVtPZT4+Ml09YVtMZT4+Ml0sYVtPZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbT2Ur''@;'; + put 'put ''OD4+Ml09YVtMZSs4Pj4yXSxhW09lKzEyPj4yXT1hW0xlKzEyPj4yXSxhW09lKzE2Pj4yXT1hW0xlKzE2Pj4yXSxhW09lKzIwPj4yXT1hW0xlKzIwPj4yXSxhW09lKzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW09lKzI4Pj4yXT1hW0xlKzI4Pj4yXSxmdW5jdGlvbiB0QihsLGMsZixwLG0pe2x8PTAs''@;'; + put 'put ''Y3w9MCxwfD0wLG18PTA7dmFyIEEsdyxiLGssTSxELFIsRyxLLHBlLGdlLGJlPTAsT2U9MCxMZT0wO2ZvcihLPWFlLGFlPWFlKzEyOHwwLEc9Sys5NnwwLFI9Sys2NHwwLGI9SyszMnwwLHBlPUsrMTZ8MCxnZT1LLE09K19bMTYrKGZ8PTApPj4zXSxEPStfW2Y+PjNdLGs9K19bZisyND4+M10s''@;'; + put 'put ''QT0rX1tmKzg+PjNdLF91KDEzNzc3MCx3PTB8YVsxNTcxMl0pLGFbZ2U+PjJdPTEwLGFbZ2UrND4+Ml09MTAsYVtnZSs4Pj4yXT1+fihNKzEwLUQpLGFbZ2UrMTI+PjJdPX5+KGsrMTAtQSksVDAodywxMzgyMDAsZ2UpLF9bcGU+PjNdPTEwLUQsX1twZSs4Pj4zXT0xMC1BLFQwKHcsMTM4MjQ4''@;'; + put 'put ''LHBlKSxfdSgxMzgyNjUsdyksZj0wOyEoKDB8Zik+PSgwfGMpKTspTGU9K19bbCsoNzIqZnwwKSs0OD4+M10sT2U9K19bbCsoNzIqZnwwKSs1Nj4+M10sYmU9K19bbCsoNzIqZnwwKSs2ND4+M10sX1tiPj4zXT0rX1tsKyg3MipmfDApKzQwPj4zXSxfW2IrOD4+M109TGUsX1tiKzE2Pj4zXT1P''@;'; + put 'put ''ZSxfW2IrMjQ+PjNdPWJlLFQwKHcsMTM4Mjg0LGIpLGY9ZisxfDA7Zm9yKF91KDEzODMwMix3KSxmPTA7ISgoMHxmKT49KDB8bSkpOyliZT0rX1twKyhmPDw1KSs4Pj4zXSxPZT0rX1twKyhmPDw1KSsxNj4+M10sTGU9K19bcCsoZjw8NSkrMjQ+PjNdLF9bUj4+M109K19bcCsoZjw8NSk+PjNd''@;'; + put 'put ''LF9bUis4Pj4zXT1iZSxfW1IrMTY+PjNdPU9lLF9bUisyND4+M109TGUsVDAodywxMzgzMjEsUiksZj1mKzF8MDtfdSgxMzgzMzksdyksX1tHPj4zXT1ELF9bRys4Pj4zXT1BLF9bRysxNj4+M109TSxfW0crMjQ+PjNdPWssVDAodywxMzgzMjEsRyksX3UoMTM4MDg2LHcpLGFlPUt9KHBlLG90''@;'; + put 'put ''LE9lLG0sU3QpKSxhWyhwPVJlKzh8MCk+PjJdPTB8dnIoNzIqKDB8YVtiZT4+Ml0pfDApLGFbUmU+PjJdPWFbYmU+PjJdLGY9MHxhW2JlPj4yXSxjPTA7ISgoMHxjKT49KDB8ZikpOylhWyhTdD0oMHxhW3A+PjJdKSsoNzIqY3wwKSs0MHwwKT4+Ml09YVsob3Q9bSsoYzw8NSl8MCk+PjJdLGFb''@;'; + put 'put ''U3QrND4+Ml09YVtvdCs0Pj4yXSxhW1N0Kzg+PjJdPWFbb3QrOD4+Ml0sYVtTdCsxMj4+Ml09YVtvdCsxMj4+Ml0sYVtTdCsxNj4+Ml09YVtvdCsxNj4+Ml0sYVtTdCsyMD4+Ml09YVtvdCsyMD4+Ml0sYVtTdCsyND4+Ml09YVtvdCsyND4+Ml0sYVtTdCsyOD4+Ml09YVtvdCsyOD4+Ml0sYz1j''@;'; + put 'put ''KzF8MDtyZXR1cm4gRnQobSksYVtPZT4+Ml09YVtMZT4+Ml0sYVtPZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbT2UrOD4+Ml09YVtMZSs4Pj4yXSxhW09lKzEyPj4yXT1hW0xlKzEyPj4yXSxhW09lKzE2Pj4yXT1hW0xlKzE2Pj4yXSxhW09lKzIwPj4yXT1hW0xlKzIwPj4yXSxhW09lKzI0Pj4yXT1h''@;'; + put 'put ''W0xlKzI0Pj4yXSxhW09lKzI4Pj4yXT1hW0xlKzI4Pj4yXSxhW1JlKzE2Pj4yXT0wfGZ1bmN0aW9uIEliKGwsYyl7Y3w9MDt2YXIgcGUsYmUsTGUsSGUsVmUscWUsbnQsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAsZ2U9MCxPZT0wLFJlPTAsV2U9MCxv''@;'; + put 'put ''dD0wLFN0PTA7Zm9yKG50PWFlLGFlPWFlKzMyfDAsYmU9bnQrMTZ8MCxrPW50LFZlPTB8ZnVuY3Rpb24gWjgobCl7dmFyIGM7cmV0dXJuIGx8PTAsYz0wfHZyKDI0KSxhW2M+PjJdPTAsYVtjKzE2Pj4yXT0wfHZyKDQwKmx8MCksMHxjfSgoUmU9MHxhWyhsfD0wKT4+Ml0pPDwyfDIpLHFlPTB8''@;'; + put 'put ''aXMoNTU5NjAsMHxhWzQ1ODFdKSxMZT0wfGlzKDU1OTk2LDB8YVs0NTgxXSksUmU9MHx2cihSZTw8NyksbT0wfHZyKGFbbD4+Ml08PDQpLEhlPWwrOHwwLEE9YysxNnwwLHc9ays4fDAsYj1jKzI0fDAsTT1jKzh8MCxmPTA7ISgoMHxmKT49KDB8YVtsPj4yXSkpOylSPShEPTB8YVtIZT4+Ml0p''@;'; + put 'put ''Kyg3MipmfDApfDAsYVtEKyg3MipmfDApKzMyPj4yXT00LGFbKEc9RCsoNzIqZnwwKSszNnwwKT4+Ml09bSsoZjw8Mjw8MiksSz1EKyg3MipmfDApKzQwfDAsKHA9K19bRCsoNzIqZnwwKSs1Nj4+M10pPCtfW0E+PjNdJiYoX1trPj4zXT1wLF9bdz4+M109K19bRCsoNzIqZnwwKSs0OD4+M10s''@;'; + put 'put ''YVtiZT4+Ml09YVtrPj4yXSxhW2JlKzQ+PjJdPWFbays0Pj4yXSxhW2JlKzg+PjJdPWFbays4Pj4yXSxhW2JlKzEyPj4yXT1hW2srMTI+PjJdLGdlPTB8SGwoVmUscWUsYmUsUmUsMSksYVtnZSsyMD4+Ml09UixhW2FbRz4+Ml0+PjJdPWdlKSwocD0rX1tEKyg3MipmfDApKzY0Pj4zXSk8K19b''@;'; + put 'put ''Yj4+M10mJihfW2s+PjNdPStfW0s+PjNdLF9bdz4+M109cCxhW2JlPj4yXT1hW2s+PjJdLGFbYmUrND4+Ml09YVtrKzQ+PjJdLGFbYmUrOD4+Ml09YVtrKzg+PjJdLGFbYmUrMTI+PjJdPWFbaysxMj4+Ml0sZ2U9MHxIbChWZSxMZSxiZSxSZSwwKSxhW2dlKzIwPj4yXT1SLGFbNCsoMHxhW0c+''@;'; + put 'put ''PjJdKT4+Ml09Z2UpLCtfW0s+PjNdPitfW2M+PjNdJiYoYVtiZT4+Ml09YVtLPj4yXSxhW2JlKzQ+PjJdPWFbSys0Pj4yXSxhW2JlKzg+PjJdPWFbSys4Pj4yXSxhW2JlKzEyPj4yXT1hW0srMTI+PjJdLGdlPTB8SGwoVmUscWUsYmUsUmUsMSksYVtnZSsyND4+Ml09UixhWzgrKDB8YVtHPj4y''@;'; + put 'put ''XSk+PjJdPWdlKSwrX1tEKyg3MipmfDApKzQ4Pj4zXT4rX1tNPj4zXSYmKGFbYmU+PjJdPWFbSz4+Ml0sYVtiZSs0Pj4yXT1hW0srND4+Ml0sYVtiZSs4Pj4yXT1hW0srOD4+Ml0sYVtiZSsxMj4+Ml09YVtLKzEyPj4yXSxnZT0wfEhsKFZlLExlLGJlLFJlLDApLGFbZ2UrMjQ+PjJdPVIsYVsx''@;'; + put 'put ''MisoMHxhW0c+PjJdKT4+Ml09Z2UpLGY9ZisxfDA7Zm9yKFI9MHx2cihhW1ZlPj4yXTw8MikscGU9bCs0fDAsZ2U9bCsxMnwwLEc9YmUrOHwwLE09MCxLPTAsRD0wOzspe2lmKCgwfEQpPj0oMHwoZj0wfGFbcGU+PjJdKSkpe2M9MDticmVha31mb3Iodz0oQT0wfGFbZ2U+PjJdKSsoNzIqRHww''@;'; + put 'put ''KXwwLGFbKGI9QSsoNzIqRHwwKSszNnwwKT4+Ml09UisoTTw8MiksYVtiZT4+Ml09YVsoYz1BKyg3MipEfDApKzQwfDApPj4yXSxhW2JlKzQ+PjJdPWFbYys0Pj4yXSxhW2JlKzg+PjJdPWFbYys4Pj4yXSxhW2JlKzEyPj4yXT1hW2MrMTI+PjJdLGM9QSsoNzIqRHwwKSs1NnwwLGs9QSsoNzIq''@;'; + put 'put ''RHwwKSszMnwwLGY9MHxtaVs2MyZhW0xlPj4yXV0oTGUsYmUsNTEyKTtmJiYrX1tmKzg+PjNdPCtfW2M+PjNdOylvdD0wfGFbZj4+Ml0sV2U9MHxhW2I+PjJdLGFbaz4+Ml09MSsobT0wfGFbaz4+Ml0pLGFbV2UrKG08PDIpPj4yXT1vdCxhWzI0KygwfGFbZj4+Ml0pPj4yXT13LGY9MHxtaVs2''@;'; + put 'put ''MyZhW0xlPj4yXV0oTGUsZiw4KTtmb3IobT1BKyg3MipEfDApKzY0fDAsZj0wfG1pWzYzJmFbcWU+PjJdXShxZSxiZSw1MTIpOzspe2lmKCFmKXtPZT0yMDticmVha31pZighKCtfW2YrMTY+PjNdPChwPStfW20+PjNdKSkpYnJlYWs7Yz0wfGFbZj4+Ml0sV2U9MHxhW2I+PjJdLGFbaz4+Ml09''@;'; + put 'put ''MSsob3Q9MHxhW2s+PjJdKSxhW1dlKyhvdDw8Mik+PjJdPWMsYVsyNCsoMHxhW2Y+PjJdKT4+Ml09dyxmPTB8bWlbNjMmYVtxZT4+Ml1dKHFlLGYsOCl9Zm9yKDIwPT0oMHxPZSkmJihPZT0wLHA9K19bbT4+M10pLF9bRz4+M109cCxjPUErKDcyKkR8MCkrNTZ8MCxmPTB8bWlbNjMmYVtMZT4+''@;'; + put 'put ''Ml1dKExlLGJlLDUxMik7Oyl7aWYoIWYpe09lPTI1O2JyZWFrfWlmKCEoK19bZis4Pj4zXTwocD0rX1tjPj4zXSkpKWJyZWFrO1N0PTB8YVtmPj4yXSxXZT0wfGFbYj4+Ml0sYVtrPj4yXT0xKyhvdD0wfGFbaz4+Ml0pLGFbV2UrKG90PDwyKT4+Ml09U3QsYVsyMCsoMHxhW2Y+PjJdKT4+Ml09''@;'; + put 'put ''dyxmPTB8bWlbNjMmYVtMZT4+Ml1dKExlLGYsOCl9Zm9yKDI1PT0oMHxPZSkmJihPZT0wLHA9K19bYz4+M10pLF9bYmU+PjNdPXAsX1tHPj4zXT0rX1tBKyg3MipEfDApKzQ4Pj4zXSxmPTB8bWlbNjMmYVtxZT4+Ml1dKHFlLGJlLDUxMik7ZiYmK19bZisxNj4+M108K19bbT4+M107KVdlPTB8''@;'; + put 'put ''YVtmPj4yXSxvdD0wfGFbYj4+Ml0sYVtrPj4yXT0xKyhTdD0wfGFbaz4+Ml0pLGFbb3QrKFN0PDwyKT4+Ml09V2UsYVsyMCsoMHxhW2Y+PjJdKT4+Ml09dyxmPTB8bWlbNjMmYVtxZT4+Ml1dKHFlLGYsOCk7TT0oU3Q9MHxhW2s+PjJdKStNfDAsSz0oMHxTdCk+KDB8Syk/U3Q6SyxEPUQrMXww''@;'; + put 'put ''fWZvcig7ISgoMHxjKT49KDB8ZikpOyluQigoMHxhW2dlPj4yXSkrKDcyKmN8MCl8MCksYz1jKzF8MCxmPTB8YVtwZT4+Ml07Zm9yKGFbKFN0PTB8YVtWZSsxNj4+Ml0pKyg0MCooZj0wfGFbVmU+PjJdKXwwKSszMj4+Ml09ZixhW1N0Kyg0MCooZj1mKzF8MCl8MCkrMzI+PjJdPWYsZnVuY3Rp''@;'; + put 'put ''b24gdlIobCxjKXt2YXIgbSxmPTAscD0wO2ZvcihmPTB8dnIoKDYqKDB8YVsobHw9MCk+PjJdKXwwKSsoKGN8PTApPDwxKTw8MiksYVtsKzIwPj4yXT0wfHZyKDI0KigoMyooMHxhW2w+PjJdKXwwKStjfDApfDApLHA9MHxhW2w+PjJdLG09bCsxNnwwLGw9MDshKCgwfGwpPj0oMHxwKSk7KWFb''@;'; + put 'put ''KDB8YVttPj4yXSkrKDQwKmx8MCkrMjg+PjJdPWYsZj1mKzI0fDAsbD1sKzF8MDtmb3IocD1wKzJ8MDshKCgwfGwpPj0oMHxwKSk7KWFbKDB8YVttPj4yXSkrKDQwKmx8MCkrMjg+PjJdPWYsZj1mKyhjPDwyKXwwLGw9bCsxfDB9KFZlLEspLGY9MDshKCgwfGYpPj0oMHxhW2w+PjJdKSk7KSQ4''@;'; + put 'put ''KCgwfGFbSGU+PjJdKSsoNzIqZnwwKXwwLFZlKSxmPWYrMXwwO3JldHVybiBObChxZSksTmwoTGUpLEZ0KFJlKSxmdW5jdGlvbiB5ZihsKXt2YXIgbSxBLHcsYixrLGM9MCxmPTAscD0wO2ZvcihrPWFlLGFlPWFlKzE2fDAsYj1rKzh8MCx3PWssbT0xNisobHw9MCl8MCxBPTB8YVsxNTcxMl0s''@;'; + put 'put ''cD0wOzspe2lmKCgwfHApPj0oMHxhW2w+PjJdKSl7Yz0xMDticmVha31pZigwPT0oMHxhWyhmPShjPTB8YVttPj4yXSkrKDQwKnB8MCkrMjB8MCk+PjJdKSYmKGFbdz4+Ml09cCxUMChBLDEzODA5Nix3KSwwPT0oMHxhW2Y+PjJdKSkpe2M9NTticmVha31pZigwPT0oMHxhWyhjPWMrKDQwKnB8''@;'; + put 'put ''MCkrMjR8MCk+PjJdKSYmKGFbYj4+Ml09cCxUMChBLDEzODE0OCxiKSwwPT0oMHxhW2M+PjJdKSkpe2M9ODticmVha31wPXArMXwwfWlmKDU9PSgwfGMpKVByKDEzODExOCwxMzgxMzEsMzExLDEzODEzOCk7ZWxzZSBpZig4PT0oMHxjKSlQcigxMzgxNzAsMTM4MTMxLDMxMywxMzgxMzgpO2Vs''@;'; + put 'put ''c2UgaWYoMTA9PSgwfGMpKWFlPWt9KFZlKSxmdW5jdGlvbiBaTShsKXt2YXIgYyxmLHA9MDtmb3IoYVs4KyhsfD0wKT4+Ml09Zj0wfGFbbD4+Ml0sYVtsKzEyPj4yXT1hW2wrND4+Ml0sYz1sKzE2fDAsbD0wOyEoKDB8bCk+PSgwfGYpKTspcnRbKHA9MHxhW2M+PjJdKSsoNDAqbHwwKSsxOD4+''@;'; + put 'put ''MV09MHxydFtwKyg0MCpsfDApKzE2Pj4xXSxsPWwrMXwwfShWZSksYWU9bnQsMHxWZX0oUmUsT2UpLGFlPUhlLDB8UmV9LHcwLFMwLGZ1bmN0aW9uIHphKGwsYyl7cmV0dXJuKDB8YVsobHw9MCk+PjJdKS0oMHxhWyhjfD0wKT4+Ml0pfDB9LGppLGZ1bmN0aW9uIF9iKGwsYyl7cmV0dXJuIDB8''@;'; + put 'put ''eTAoMHxhWyhsfD0wKT4+Ml0sMHxhWyhjfD0wKT4+Ml0pfSxmdW5jdGlvbiBrcyhsLGMpe3JldHVybiAwfHkwKDB8YVsobHw9MCk+PjJdLDB8YVsoY3w9MCk+PjJdKX0sZnVuY3Rpb24gT0IobCxjKXtsfD0wLGN8PTA7dmFyIG0sZj0wLHA9MDtmb3IobT0wfGFbNDc1MTNdLGY9MCxwPTA7MyE9''@;'; + put 'put ''KDB8cCk7KWY9ZisoMiE9KDB8SmYoMHxhW2FbbSsoNTIqbHwwKSs0KyhwPDw0KT4+Ml0+PjJdLDB8YVthW20rKDUyKmx8MCkrNCsocDw8NCkrND4+Ml0+PjJdLGMpKSYxKXwwLHA9cCsxfDA7cmV0dXJuIDEmKDM9PSgwfGYpfDA9PSgwfGYpKXwwfSxmdW5jdGlvbiBSQihsLGMpe2N8PTA7dmFy''@;'; + put 'put ''IGY9MCxwPTAsbT0wO3A9KGY9MHxhWzQ3NTEzXSkrKDUyKihsfD0wKXwwKXwwO2U6ZG97aWYoMHxhW3A+PjJdKWY9MDtlbHNlIGlmKGFbcD4+Ml09MSwoMHxsKT09KDB8YykpZj0xO2Vsc2V7Zm9yKG09MDshKCgwfG0pPj0zKTspe2lmKHA9MHxhW2YrKDUyKmx8MCkrNCsobTw8NCkrMTI+PjJd''@;'; + put 'put ''KXtpZigwfFJCKChwLWZ8MCkvNTJ8MCxjKSl7Zj0xO2JyZWFrIGV9Zj0wfGFbNDc1MTNdfW09bSsxfDB9YVtmKyg1MipsfDApPj4yXT0wLGY9MH19d2hpbGUoMCk7cmV0dXJuIDB8Zn0sVWEsZnVuY3Rpb24gUUIobCxjKXtyZXR1cm4gMHwoKGw9MHxCaVsxMjcmYVszNjQrKGx8PTApPj4yXV0o''@;'; + put 'put ''MHxhW2wrMzY4Pj4yXSxjfD0wKSk+Pj4wPjY1NTM1PzA6YVs1Njk0MCsoKCgwfEp0WzE0NDA0NCsobD4+PjgpPj4wXSk8PDN8bD4+PjUmNyk8PDIpPj4yXSYxPDwoMzEmbCkpfSxmdW5jdGlvbiBKQihsLGMpe3JldHVybiAwfCgobD0wfEJpWzEyNyZhWzM2NCsobHw9MCk+PjJdXSgwfGFbbCsz''@;'; + put 'put ''Njg+PjJdLGN8PTApKT4+PjA+NjU1MzU/MDphWzU2OTQwKygoKDB8SnRbMTQzNzg4KyhsPj4+OCk+PjBdKTw8M3xsPj4+NSY3KTw8Mik+PjJdJjE8PCgzMSZsKSl9LGZ1bmN0aW9uIE9fKGwsYyl7cmV0dXJuIDB8KChsPTB8QmlbMTI3JmFbMzY0KyhsfD0wKT4+Ml1dKDB8YVtsKzM2OD4+Ml0s''@;'; + put 'put ''Y3w9MCkpPj4+MD42NTUzNT8xOigwfEJkKGwpKT4+PjMxKX0sZnVuY3Rpb24gaWZlKGwsYyl7cmV0dXJuKDB8YVthWyhsfD0wKT4+Ml0+PjJdKS0oMHxhW2FbKGN8PTApPj4yXT4+Ml0pfDB9LEsxLEsxLEsxLEsxLEsxLEsxLEsxLEsxLEsxLEsxLEsxLEsxLEsxLEsxLEsxLEsxXSxkOD1bRUws''@;'; + put 'put ''ZnVuY3Rpb24gZHZlKGwsYyxmLHApe2x8PTAsZj0rZixwPStwO3ZhciBrLEcsSyxtPTAsQT0wLHc9MCxiPTAsTT0wLEQ9MCxSPTAscGU9MCxnZT0wLGJlPTAsT2U9MDtLPWFlLGFlPWFlKzgwfDAsRD1LKzY0fDAsRz1LKzY4fDAsQT1LKzQ4fDAsdz1LKzMyfDAsYj1LKzE2fDAsaz1LLG09MHxh''@;'; + put 'put ''WyhNPTE2KyhjfD0wKXwwKT4+Ml07ZTpkb3tpZigwfGFbbSsyMTI+PjJdKWFbRz4+Ml09NCxiZT0uNSorX1ttKzMyPj4zXStmLE9lPS41KitfW20rNDA+PjNdK3AsYVtsKzQwPj4yXT0xLEE9MHxRbig2NCksX1tBPj4zXT1iZSxfW0ErOD4+M109T2UsZ2U9LWJlLF9bQSsxNj4+M109Z2UsX1tB''@;'; + put 'put ''KzI0Pj4zXT1PZSxfW0ErMzI+PjNdPWdlLE9lPS1PZSxfW0ErNDA+PjNdPU9lLF9bQSs0OD4+M109YmUsX1tBKzU2Pj4zXT1PZSxSPTIxO2Vsc2Ugc3dpdGNoKDB8JDUoYykpe2Nhc2UgMTpzd2l0Y2goYVtHPj4yXT1iPTB8YVs4Kyh3PTB8YVsxMisobT0wfGFbTT4+Ml0pPj4yXSk+PjJdLDB8''@;'; + put 'put ''ZmVbKG09MHxhW2FbbSs4Pj4yXT4+Ml0pPj4wXSl7Y2FzZSA5ODpSPTB8amkobSwxMDgyMzYpPzg6MTE7YnJlYWs7Y2FzZSAxMTI6Uj0wPT0oMHxqaShtLDEwNTcyMSkpJiYwIT0oMHxGMmUoMHxhW3crNDQ+PjJdLGIpKT8xMTo4O2JyZWFrO2RlZmF1bHQ6Uj04fWRve2lmKDg9PSgwfFIpKXtp''@;'; + put 'put ''ZigoMHxiKTwzKXthW2wrNDA+PjJdPTA9PSgwfGFbdz4+Ml0pPzA6MixSPTE3O2JyZWFrfWFbKG09bCs0MHwwKT4+Ml09MDticmVha30xMT09KDB8UikmJihhWyhtPWwrNDB8MCk+PjJdPTEsKDB8Yik8PTImJihSPTE3KSl9d2hpbGUoMCk7aWYoMTc9PSgwfFIpKXtBPTB8TlYoYyxHLGYscCks''@;'; + put 'put ''Uj0yMTticmVhayBlfWlmKEE9MHxRbihiPDw0KSx3PXcrNDR8MCwxPT0oMHxhW20+PjJdKSl7X1tBPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfWyhSPTB8YVt3Pj4yXSk+PjNdKyhwZT1mKSxfW0ErOD4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tSKzg+PjNdKyhmPXApLF9bQSsxNj4+''@;'; + put 'put ''M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tSKzE2Pj4zXS1wZSxfW0ErMjQ+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bUisyND4+M10rZixfW0ErMzI+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bUiszMj4+M10tcGUsX1tBKzQwPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW1Ir''@;'; + put 'put ''NDA+PjNdLWYsX1tBKzQ4Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW1IrNDg+PjNdK3BlLF9bQSs1Nj4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tSKzU2Pj4zXS1mLFI9MjE7YnJlYWsgZX1mb3IobT0wOzspe2lmKCgwfG0pPj0oMHxiKSl7Uj0yMTticmVhayBlfWdlPStEMCgrKChw''@;'; + put 'put ''ZT0rX1soUj0wfGFbdz4+Ml0pKyhtPDw0KSs4Pj4zXSkqcGUrKGJlPStfW1IrKG08PDQpPj4zXSkqYmUpKSxfW0ErKG08PDQpPj4zXT0oZi9nZSsxKSpiZSouMDEzODg4ODg4ODg4ODg4ODg4LF9bQSsobTw8NCkrOD4+M109KHAvZ2UrMSkqcGUqLjAxMzg4ODg4ODg4ODg4ODg4OCxtPW0rMXww''@;'; + put 'put ''fWNhc2UgMjphW0c+PjJdPTQsUj0wfFFuKDY0KSxPZT0rX1szMisoYz0wfGFbMTIrKDB8YVtNPj4yXSk+PjJdKT4+M10sZ2U9K19bYys0MD4+M10sVlYoQSxEPX5+K19bYysxNj4+M10sYz1+fitfW2MrMjQ+PjNdLGJlPS1mLHBlPS1wKSxhW1I+PjJdPWFbQT4+Ml0sYVtSKzQ+PjJdPWFbQSs0''@;'; + put 'put ''Pj4yXSxhW1IrOD4+Ml09YVtBKzg+PjJdLGFbUisxMj4+Ml09YVtBKzEyPj4yXSxBPVIrMTZ8MCxWVih3LE09fn5PZSxjLGYscGUpLGFbQT4+Ml09YVt3Pj4yXSxhW0ErND4+Ml09YVt3KzQ+PjJdLGFbQSs4Pj4yXT1hW3crOD4+Ml0sYVtBKzEyPj4yXT1hW3crMTI+PjJdLEE9UiszMnwwLFZW''@;'; + put 'put ''KGIsTSxjPX5+Z2UsZixwKSxhW0E+PjJdPWFbYj4+Ml0sYVtBKzQ+PjJdPWFbYis0Pj4yXSxhW0ErOD4+Ml09YVtiKzg+PjJdLGFbQSsxMj4+Ml09YVtiKzEyPj4yXSxBPVIrNDh8MCxWVihrLEQsYyxiZSxwKSxhW0E+PjJdPWFbaz4+Ml0sYVtBKzQ+PjJdPWFbays0Pj4yXSxhW0ErOD4+Ml09''@;'; + put 'put ''YVtrKzg+PjJdLGFbQSsxMj4+Ml09YVtrKzEyPj4yXSxhW2wrNDA+PjJdPTEsQT1SLFI9MjE7YnJlYWsgZTtjYXNlIDM6YVtsKzQwPj4yXT0yLEE9MHxOVihjLEcsZixwKSxSPTIxO2JyZWFrIGU7ZGVmYXVsdDphW0Q+PjJdPWFbYVs4KygwfGFbTT4+Ml0pPj4yXT4+Ml0sJHIoMSw5Mzg4MyxE''@;'; + put 'put ''KSxtPTE7YnJlYWsgZX19d2hpbGUoMCk7cmV0dXJuIDIxPT0oMHxSKSYmKGFbbCszNj4+Ml09QSxhW2wrMzI+PjJdPW09MHxhW0c+PjJdLEgyZShBLG0sbCxsKzE2fDApLCgwfG0pPigwfGFbNDY5MTRdKSYmKGFbNDY5MTRdPW0pLG09MCksYWU9SywwfG19LGZ1bmN0aW9uIHB2ZShsLGMsZixw''@;'; + put 'put ''KXtsfD0wLGY9K2YscD0rcDt2YXIgUixLLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxHPTAscGU9MCxnZT0wLGJlPTAsT2U9MDtLPWFlLGFlPWFlKzgwfDAsTT1LKzY0fDAsUj1LKzY4fDAsQT1LKzQ4fDAsdz1LKzMyfDAsYj1LKzE2fDAsaz1LLG09MHxhWyhEPTE2KyhjfD0wKXwwKT4+''@;'; + put 'put ''Ml07ZTpkb3tpZigwfGFbbSsyMTI+PjJdKWFbUj4+Ml09NCxiZT0uNSorX1ttKzMyPj4zXSxPZT0uNSorX1ttKzQwPj4zXSxhW2wrNDA+PjJdPTEsQT0wfFFuKDY0KSxfW0E+PjNdPWJlLF9bQSs4Pj4zXT1PZSxnZT0tYmUsX1tBKzE2Pj4zXT1nZSxfW0ErMjQ+PjNdPU9lLF9bQSszMj4+M109''@;'; + put 'put ''Z2UsT2U9LU9lLF9bQSs0MD4+M109T2UsX1tBKzQ4Pj4zXT1iZSxfW0ErNTY+PjNdPU9lLEc9MjA7ZWxzZSBzd2l0Y2goMHwkNShjKSl7Y2FzZSAxOmFbUj4+Ml09Yj0wfGFbKE09OCsoaz0wfGFbMTIrKDB8YVtEPj4yXSk+PjJdKXwwKT4+Ml07dDpkb3tpZigoMHxiKT4yKWZvcihBPTB8UW4o''@;'; + put 'put ''Yjw8NCksdz1rKzQ0fDAsbT0wOzspe2lmKCgwfG0pPj0oMHxiKSlicmVhayB0O19bQSsobTw8NCk+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bKGM9MHxhW3c+PjJdKSsobTw8NCk+PjNdLF9bQSsobTw8NCkrOD4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tjKyhtPDw0KSs4Pj4zXSxt''@;'; + put 'put ''PW0rMXwwfWVsc2UgQT0wfE5WKGMsUiwwLDApfXdoaWxlKDApO3N3aXRjaCgwfGZlWyhtPTB8YVthWzgrKDB8YVtEPj4yXSk+PjJdPj4yXSk+PjBdKXtjYXNlIDk4OjB8amkobSwxMDgyMzYpP0c9MTM6bT0xO2JyZWFrO2Nhc2UgMTEyOjA9PSgwfGppKG0sMTA1NzIxKSkmJjAhPSgwfEYyZShB''@;'; + put 'put ''LDB8YVtSPj4yXSkpP209MTpHPTEzO2JyZWFrO2RlZmF1bHQ6Rz0xM31kb3tpZigxMz09KDB8Rykpe2lmKCgwfGFbTT4+Ml0pPDMmJjB8YVtrPj4yXSl7bT0yO2JyZWFrfW09MH19d2hpbGUoMCk7YVtsKzQwPj4yXT1tLEc9MjA7YnJlYWsgZTtjYXNlIDI6YVtSPj4yXT00LEc9MHxRbig2NCks''@;'; + put 'put ''YmU9K19bMzIrKEQ9MHxhWzEyKygwfGFbRD4+Ml0pPj4yXSk+PjNdLHBlPStfW0QrNDA+PjNdLFlEKEEsZ2U9K19bRCsxNj4+M10sT2U9K19bRCsyND4+M10pLGFbRz4+Ml09YVtBPj4yXSxhW0crND4+Ml09YVtBKzQ+PjJdLGFbRys4Pj4yXT1hW0ErOD4+Ml0sYVtHKzEyPj4yXT1hW0ErMTI+''@;'; + put 'put ''PjJdLEE9RysxNnwwLFlEKHcsYmUsT2UpLGFbQT4+Ml09YVt3Pj4yXSxhW0ErND4+Ml09YVt3KzQ+PjJdLGFbQSs4Pj4yXT1hW3crOD4+Ml0sYVtBKzEyPj4yXT1hW3crMTI+PjJdLEE9RyszMnwwLFlEKGIsYmUscGUpLGFbQT4+Ml09YVtiPj4yXSxhW0ErND4+Ml09YVtiKzQ+PjJdLGFbQSs4''@;'; + put 'put ''Pj4yXT1hW2IrOD4+Ml0sYVtBKzEyPj4yXT1hW2IrMTI+PjJdLEE9Rys0OHwwLFlEKGssZ2UscGUpLGFbQT4+Ml09YVtrPj4yXSxhW0ErND4+Ml09YVtrKzQ+PjJdLGFbQSs4Pj4yXT1hW2srOD4+Ml0sYVtBKzEyPj4yXT1hW2srMTI+PjJdLGFbbCs0MD4+Ml09MSxBPUcsRz0yMDticmVhayBl''@;'; + put 'put ''O2Nhc2UgMzphW2wrNDA+PjJdPTIsQT0wfE5WKGMsUiwwLDApLEc9MjA7YnJlYWsgZTtkZWZhdWx0OmFbTT4+Ml09YVthWzgrKDB8YVtEPj4yXSk+PjJdPj4yXSwkcigxLDkzOTE5LE0pLG09MTticmVhayBlfX13aGlsZSgwKTtyZXR1cm4gMjA9PSgwfEcpJiYobT0wfGFbUj4+Ml0sMSE9Znwx''@;'; + put 'put ''IT1wJiZmdW5jdGlvbiBVRChsLGMsZixwKXtsfD0wLGN8PTAsZj0rZixwPStwO3ZhciBtPTAsQT0wO2ZvcihtPTA7ISgoMHxtKT49KDB8YykpOylfW2w+PjNdPStfW2w+PjNdKmYsX1soQT1sKzh8MCk+PjNdPStfW0E+PjNdKnAsbD1sKzE2fDAsbT1tKzF8MH0oQSxtLGYscCksYVtsKzM2Pj4y''@;'; + put 'put ''XT1BLGFbbCszMj4+Ml09bSxIMmUoQSxtLGwsbCsxNnwwKSwoMHxtKT4oMHxhWzQ2OTE0XSkmJihhWzQ2OTE0XT1tKSxtPTApLGFlPUssMHxtfSxFTF0sbWk9W00yLGZ1bmN0aW9uIGdEKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIG0scD0wO3A9OCsoY3w9MCl8MCxtPTQ4KyhmPTgrKGw9MHx2cig2''@;'; + put 'put ''NCkpfDApfDA7ZG97YVtmPj4yXT1hW3A+PjJdLGY9Zis0fDAscD1wKzR8MH13aGlsZSgoMHxmKTwoMHxtKSk7cmV0dXJuIGFbbCs1Nj4+Ml09Yz0wfGFbYys1Nj4+Ml0scnRbMTY4KygwfGFbYysxNj4+Ml0pPj4xXT0xLDB8bH0sZnVuY3Rpb24gWEQobCxjLGYpe3JldHVybiBjfD0wLGZ8PTAs''@;'; + put 'put ''Zj0wfGZ1bmN0aW9uIGJLKGwpe3ZhciBtLGM9MCxmPTAscD0wO3JldHVybigwfChjPTB8YVs0KyhsPTB8YVsobT04KyhsfD0wKXwwKT4+Ml0pPj4yXSkpPT0oMHxhW2wrOD4+Ml0pJiYoKHA9MHxhWyhmPWwrMTJ8MCk+PjJdKT9sPXA6KGw9MHxjMWUoKChjLSgwfGFbbD4+Ml0pfDApLzIwfDAp''@;'; + put 'put ''PDwxKSxhW2Y+PjJdPWwpLGFbbT4+Ml09bCxhW2wrND4+Ml09Yz0wfGFbbD4+Ml0pLGFbbCs0Pj4yXT1jKzIwLDB8Y30oMHxhWzQ2OTI0XSksYVtmPj4yXT1hW2M+PjJdLGFbZis0Pj4yXT1hW2MrND4+Ml0sYVtmKzg+PjJdPTAsMHxmfSxmdW5jdGlvbiBTQShsLGMsZil7cmV0dXJuIGN8PTAs''@;'; + put 'put ''Znw9MCxmPTB8UW4oMTYpLGFbZisxMj4+Ml09MCxhW2YrOD4+Ml09YVtjKzg+PjJdLDB8Zn0sZnVuY3Rpb24gZVQobCxjLGYpe3JldHVybiBjfD0wLGZ8PTAsZj0wfFFuKDEyKSxhW2YrOD4+Ml09YVtjKzg+PjJdLDB8Zn0sZnVuY3Rpb24gRVAobCxjLGYpe2N8PTAsZnw9MDt2YXIgUixHLEss''@;'; + put 'put ''cGUsZ2UsT2UsUmUscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxiZT0wLExlPTA7NDA5NiZhW2FbKE9lPTgrKGx8PTApfDApPj4yXT4+Ml18MCYmQ2MobCwwKSxSPTB8YVsoYmU9MHxhW2wrND4+Ml0pPj4yXSxHPTB8YVtiZSs0Pj4yXSxSZT0wfGFbKGdlPWJlKzh8MCk+PjJdLEs9''@;'; + put 'put ''MHxhW2JlKzIwPj4yXSxhWyhwZT1sKzIwfDApPj4yXT1tPS0zMjc2OSZhW3BlPj4yXTtlOmRve2lmKGMpe2lmKDIwNDkmZnwwKXtpZigodz0wPT0oMSZmfDApKXwwPT0oMHwocD0wfGFbKEE9YmUrMTJ8MCk+PjJdKSkpbT1jO2Vsc2V7aWYoIShwPTB8bWlbNjMmcF0obCxjLGJlKSkpe3A9MDti''@;'; + put 'put ''cmVha31tPXB9ZG97aWYoISgoMHxSZSk+LTEpKXtpZigwfChwPTB8cTBbMTI3JmFbbCsxMj4+Ml1dKGwsMCwxMixiZSkpKXthW3ArOD4+Ml09bSx3PXA7YnJlYWt9aWYoISgwfGFbQT4+Ml0pKXtwPTA7YnJlYWsgZX1pZih3fDA9PSgwfChwPTB8YVtiZSsxNj4+Ml0pKSl7cD0wO2JyZWFrIGV9''@;'; + put 'put ''ZGxbMTI3JnBdKGwsbSxiZSkscD0wO2JyZWFrIGV9dz1tK1JlfDB9d2hpbGUoMCk7cD0wfGFbKEE9MHxhW09lPj4yXSk+PjJdO2Rve2lmKCEoMTI4JnApKXtpZighKDE2JnApKXtpZigzMiZwKXtMZT00ODticmVha31MZT01MTticmVha31pZihwPTAhPSgwfChtPTB8YVtBKzQ+PjJdKSksODE5''@;'; + put 'put ''MiZmKXtpZighcCl7TGU9NTE7YnJlYWt9aWYoIShwPTB8YVttPj4yXSkpe0xlPTUxO2JyZWFrfWFbdz4+Ml09cCxhW3ArND4+Ml09dyxhW3crND4+Ml09bSxhW20+PjJdPXc7YnJlYWt9aWYoIXApe0xlPTQ4O2JyZWFrfWlmKCgwfG0pPT0oMHxhW0ErOD4+Ml0pKXtMZT00ODticmVha31hW3cr''@;'; + put 'put ''ND4+Ml09bD0wfGFbKGJlPW0rNHwwKT4+Ml0sYVtsPj4yXT13LGFbdz4+Ml09bSxhW2JlPj4yXT13O2JyZWFrfUxlPTgxOTImZj81MTo0OH13aGlsZSgwKTtpZig0OD09KDB8TGUpPyhhW3c+PjJdPXA9MHxhW0ErOD4+Ml0scD9hW3crND4+Ml09YVtwKzQ+PjJdOnA9dyxhW3ArND4+Ml09dyxh''@;'; + put 'put ''WzgrKDB8YVtPZT4+Ml0pPj4yXT13KTo1MT09KDB8TGUpJiYoKHA9MHxhWyhtPUErOHwwKT4+Ml0pPyhhW2FbKGJlPXArNHwwKT4+Ml0+PjJdPXcsYVt3KzQ+PjJdPWFbYmU+PjJdKTooYVttPj4yXT13LHA9dyksYVtwKzQ+PjJdPXcsYVt3Pj4yXT0wKSwoMHwoQT0wfGFbKG09MTYrKHA9MHxh''@;'; + put 'put ''W09lPj4yXSl8MCk+PjJdKSk+LTEmJihhW20+PjJdPUErMSksYVtwKzQ+PjJdPXcsKDB8UmUpPDApe3A9MHxhW3crOD4+Ml07YnJlYWt9cD13KygwLVJlKXwwO2JyZWFrfXc9MHxhW09lPj4yXTtkb3tpZig1MTImZilMZT02ODtlbHNle2lmKDB8KHA9MHxhW3crND4+Ml0pJiYoMHwoQT0oMHxS''@;'; + put 'put ''ZSk8MD8wfGFbcCs4Pj4yXTpwKygwLVJlKXwwKSk9PSgwfGMpKWJyZWFrO3A9YytSfDAsKDB8Ryk8MD8oYz0wfGFbcD4+Ml0sTGU9NjgpOihjPXAsTGU9NjgpfX13aGlsZSgwKTtpZig2OD09KDB8TGUpKXtBPSgwfFJlKTwwLGI9KDB8Ryk8MCxrPTA9PSgwfEspLE09KDB8Ryk8MSxEPTAtUmV8''@;'; + put 'put ''MCxwPXcrOHwwO2Rve2lmKCEocD0wfGFbcD4+Ml0pKXtwPTA7YnJlYWsgZX1tPShtPUE/MHxhW3ArOD4+Ml06cCtEfDApK1J8MCxiJiYobT0wfGFbbT4+Ml0pO2Rve2lmKGspe2lmKE0pe209MHxqaShjLG0pO2JyZWFrfW09MHx0MyhjLG0sRyk7YnJlYWt9bT0wfHEwWzEyNyZLXShsLGMsbSxi''@;'; + put 'put ''ZSl9d2hpbGUoMCl9d2hpbGUoMCE9KDB8bSkpO209MHxhW3BlPj4yXX1pZihhW3BlPj4yXT0zMjc2OHxtLCEoNDA5OCZmKSl7ZG97aWYoISg4JmYpKXtpZihtPTB8YVtPZT4+Ml0sISgxNiZmKSl7YVttKzQ+PjJdPXA7YnJlYWt9aWYoKDB8cCk9PSgwfGFbbSs4Pj4yXSkpe2FbbSs0Pj4yXT0w''@;'; + put 'put ''LHA9MDticmVhayBlfXA9cCs0fDAsTGU9MTA4O2JyZWFrfW09MHxhW09lPj4yXSxMZT0xMDh9d2hpbGUoMCk7aWYoMTA4PT0oMHxMZSkmJihhW20rND4+Ml09cD0wfGFbcD4+Ml0sIXApKXtwPTA7YnJlYWt9aWYoKDB8UmUpPDApe3A9MHxhW3ArOD4+Ml07YnJlYWt9cD1wKygwLVJlKXwwO2Jy''@;'; + put 'put ''ZWFrfXc9cCxMZT04NH1lbHNle2lmKDM4NCZmfDApe2lmKCEocD0wfGFbOCsobT0wfGFbT2U+PjJdKT4+Ml0pKXtwPTA7YnJlYWt9aWYoMjU2JmYpe2lmKGFbbSs0Pj4yXT1wPTB8YVtwKzQ+PjJdLCFwKXtwPTA7YnJlYWt9fWVsc2UgYVttKzQ+PjJdPXA7aWYoKDB8UmUpPDApe3A9MHxhW3Ar''@;'; + put 'put ''OD4+Ml07YnJlYWt9cD1wKygwLVJlKXwwO2JyZWFrfWlmKDQwOTgmZnwwKXtpZigxNDQmYVsocD0wfGFbT2U+PjJdKT4+Ml18MCl7cD0wO2JyZWFrfWlmKHA9MHxhW3ArOD4+Ml0pe3c9cCxMZT04NDticmVha31wPTA7YnJlYWt9aWYoNjQmZil7Yj1iZSsxNnwwO3Q6ZG97aWYoMCE9KDB8YVti''@;'; + put 'put ''Pj4yXSl8KDB8UmUpPDApZm9yKGs9bCsxMnwwLE09KDB8UmUpPDAsbT0wLVJlfDAscD0wfGFbOCsoMHxhW09lPj4yXSk+PjJdOzspe2lmKCFwKWJyZWFrIHQ7QT0wfGFbcD4+Ml0sMHwodz0wfGFbYj4+Ml0pJiZkbFsxMjcmd10obCxjPU0/MHxhW3ArOD4+Ml06cCttfDAsYmUpLCgwfGFbZ2U+''@;'; + put 'put ''PjJdKT49MHx8cTBbMTI3JmFbaz4+Ml1dKGwscCwwLGJlKSxwPUF9fXdoaWxlKDApO2FbNCsocD0wfGFbT2U+PjJdKT4+Ml09MCxhW3ArOD4+Ml09MCxhWzE2KygwfGFbT2U+PjJdKT4+Ml09MCxwPTB9ZWxzZSBwPTB9fXdoaWxlKDApO3JldHVybiA4ND09KDB8TGUpJiYoKHA9MHxhW3c+PjJd''@;'; + put 'put ''KSYmKGFbcCs0Pj4yXT1hW3crND4+Ml0scD0wfGFbdz4+Ml0pLCgwfHcpPT0oMHwoQT0wfGFbKG09OCsoMHxhW09lPj4yXSl8MCk+PjJdKSk/KGFbbT4+Ml09cCwwfChwPTB8YVs4KygwfGFbT2U+PjJdKT4+Ml0pJiYoYVtwKzQ+PjJdPWFbdys0Pj4yXSkpOihhW2FbKG09dys0fDApPj4yXT4+''@;'; + put 'put ''Ml09cCwoMHx3KT09KDB8YVsocD1BKzR8MCk+PjJdKSYmKGFbcD4+Ml09YVttPj4yXSkpLGFbKG09NCsocD0wfGFbT2U+PjJdKXwwKT4+Ml09QT0oMHx3KT09KDB8YVttPj4yXSk/MHxhW3c+PjJdOjAsYVsoTGU9cCsxNnwwKT4+Ml09KDB8YVtMZT4+Ml0pLTEscD0oMHxSZSk8MD8wfGFbdys4''@;'; + put 'put ''Pj4yXTp3KygwLVJlKXwwLDA9PSgyJmZ8MCl8MD09KDB8KG09MHxhW2JlKzE2Pj4yXSkpfHxkbFsxMjcmbV0obCxwLGJlKSwoMHxhW2dlPj4yXSk8MCYmcTBbMTI3JmFbbCsxMj4+Ml1dKGwsdywwLGJlKSksMHxwfSxmdW5jdGlvbiB4UChsLGMsZil7Y3w9MCxmfD0wO3ZhciBPZSxXZSxvdCxT''@;'; + put 'put ''dCxrdCxFdCxadCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxudD0wLGx0PTA7WnQ9YWUsYWU9YWUrMTI4fDAsbnQ9WnQrMTIwfDAsZ2U9WnQsNDA5NiZhWyhwPTB8YVsoRXQ9OCsobHw9''@;'; + put 'put ''MCl8MCk+PjJdKT4+Ml0mJihDYyhsLDApLHA9MHxhW0V0Pj4yXSksV2U9MHxhWyhsdD0wfGFbbCs0Pj4yXSk+PjJdLG90PTB8YVtsdCs0Pj4yXSxrdD0wfGFbKFZlPWx0Kzh8MCk+PjJdLFN0PTB8YVtsdCsyMD4+Ml0sYVsoT2U9bCsyMHwwKT4+Ml09LTMyNzY5JmFbT2U+PjJdLHc9MHxhW3Ar''@;'; + put 'put ''ND4+Ml07ZTpkb3tpZihjKXtxZT1sKzE2fDAsTGU9MD09KDQwOTgmZnwwKTt0OmRve2lmKExlfDghPSgwfGFbNCsoMHxhW3FlPj4yXSk+PjJdKSlSZT00NTtlbHNle2ZvcihwPWMrV2V8MCwoTT0oMHxvdCk8MCkmJihwPTB8YVtwPj4yXSksYj0wPT0oMHxTdCksaz0oMHxvdCk8MSxBPTB8bWlb''@;'; + put 'put ''NjMmYVtsPj4yXV0obCxjLDQpOzspe2lmKCFBKXtSZT00NTticmVhayB0fW09QStXZXwwLE0mJihtPTB8YVttPj4yXSk7ZG97aWYoYil7aWYoayl7bT0wfGppKHAsbSk7YnJlYWt9bT0wfHQzKHAsbSxvdCk7YnJlYWt9bT0wfHEwWzEyNyZTdF0obCxwLG0sbHQpfXdoaWxlKDApO2lmKDB8bSl7''@;'; + put 'put ''UmU9NDU7YnJlYWsgdH1pZigoMHxBKT09KDB8YykpYnJlYWs7QT0wfG1pWzYzJmFbbD4+Ml1dKGwsQSw4KX1hW250Pj4yXT1hWzQrKHc9MHxhWzQrKDB8YVtFdD4+Ml0pPj4yXSk+PjJdLGFbbnQrND4+Ml09YVt3Pj4yXSxwPW50LFJlPTE4MH19d2hpbGUoMCk7dDpkb3tpZig0NT09KDB8UmUp''@;'; + put 'put ''KXtkb3tpZigyNTY1JmYpNTEyJmY/bT1jOihwPWMrV2V8MCxtPSgwfG90KTwwPzB8YVtwPj4yXTpwKSx3PyhBPWMscD0wLGJlPW0saz0wLFJlPTY0KToocD0wLEE9YyxtPW50LHc9bnQsUmU9MTk4KTtlbHNle2lmKDMyJmZ8MCl7aWYocD0oQT0oMHxrdCk8MD8wfGFbYys4Pj4yXTpjKygwLWt0''@;'; + put 'put ''KXwwKStXZXwwLG09KDB8b3QpPDA/MHxhW3A+PjJdOnAsdyl7cD1jLGJlPW0saz1jLFJlPTY0O2JyZWFrfXA9YyxtPW50LHc9bnQsUmU9MTk4O2JyZWFrfXc/KDB8KHA9KDB8a3QpPDA/MHxhW3crOD4+Ml06dysoMC1rdCl8MCkpIT0oMHxjKT8obT1jK1dlfDAsKDB8b3QpPDA/KEE9YyxwPTAs''@;'; + put 'put ''YmU9MHxhW20+PjJdLGs9MCxSZT02NCk6KEE9YyxwPTAsYmU9bSxrPTAsUmU9NjQpKToocD0wLEE9YyxtPW50LE09bnQsaz0wLFJlPTE0MSk6KHA9MCxBPWMsbT1udCx3PW50LFJlPTE5OCl9fXdoaWxlKDApO246ZG97aWYoNjQ9PSgwfFJlKSl7cjpkb3tpZig0IT0oMHxhWzQrKDB8YVtxZT4+''@;'; + put 'put ''Ml0pPj4yXSl8fChwZT0wfGFbMjQrKDB8YVtFdD4+Ml0pPj4yXSwwPT0oNTE2JmZ8MCl8MD09KDB8cGUpKSltPW50LE09bnQ7ZWxzZXtmb3IoYz0oMHxrdCk8MCxEPSgwfG90KTwwLFI9MD09KDB8U3QpLEc9KDB8b3QpPDEsSz0wLWt0fDAsTT0wLG09dzs7KXtpZigoMHxNKT49KDB8cGUpKXtt''@;'; + put 'put ''PW50LE09bnQsRD0wO2JyZWFrfWI9KGI9Yz8wfGFbbSs4Pj4yXTptK0t8MCkrV2V8MCxEJiYoYj0wfGFbYj4+Ml0pO2Rve2lmKFIpe2lmKEcpe2I9MHxqaShiZSxiKTticmVha31iPTB8dDMoYmUsYixvdCk7YnJlYWt9Yj0wfHEwWzEyNyZTdF0obCxiZSxiLGx0KX13aGlsZSgwKTtpZighYil7''@;'; + put 'put ''UmU9ODA7YnJlYWt9aWYoYVtnZSsoTTw8Mik+PjJdPWIsIShtPTB8YVsoKDB8Yik8MD9tKzR8MDptKT4+Ml0pKXtwPTA7YnJlYWsgZX1NPU0rMXwwfWlmKDgwPT0oMHxSZSkpe2lmKGMpe3A9MHxhW20rOD4+Ml07YnJlYWsgZX1wPW0rS3wwO2JyZWFrIGV9Zm9yKDs7KXtpZigoMHxEKT49KDB8''@;'; + put 'put ''cGUpKWJyZWFrIHI7ZG97aWYoKDB8YVtnZSsoRDw8Mik+PjJdKTwwKXtpZihjPTB8YVsoYj13KzR8MCk+PjJdLCgwfGFbZ2UrKCgxfEQpPDwyKT4+Ml0pPDApe2FbYj4+Ml09YVtjPj4yXSxhW2M+PjJdPXcsYVttKzQ+PjJdPWMsbT1jLHc9TSxiPWMrNHwwO2JyZWFrfWFbTT4+Ml09YyxhW20r''@;'; + put 'put ''ND4+Ml09dyxtPXcsdz1jLGI9YzticmVha31pZihiPTB8YVt3Pj4yXSwoMHxhW2dlKygoMXxEKTw8Mik+PjJdKT4wKXthW3c+PjJdPWFbKEs9Yis0fDApPj4yXSxhW0s+PjJdPXcsYVtNPj4yXT1iLHc9YjticmVha31hW20rND4+Ml09YixhW00+PjJdPXcsbT1iLGI9Yis0fDA7YnJlYWt9d2hp''@;'; + put 'put ''bGUoMCk7TT13LEQ9RCsyfDAsdz0wfGFbYj4+Ml19fX13aGlsZSgwKTtSPSgwfGt0KTwwLEc9KDB8b3QpPDAsSz0wIT0oMHxTdCkscGU9KDB8b3QpPDEsZ2U9MC1rdHwwLGI9dztyOmZvcig7Oyl7Zm9yKHc9Yjs7KXtiPShiPVI/MHxhW3crOD4+Ml06dytnZXwwKStXZXwwLEcmJihiPTB8YVti''@;'; + put 'put ''Pj4yXSk7ZG97aWYoIUspe2lmKHBlKXtiPTB8amkoYmUsYik7YnJlYWt9Yj0wfHQzKGJlLGIsb3QpO2JyZWFrfWI9MHxxMFsxMjcmU3RdKGwsYmUsYixsdCl9d2hpbGUoMCk7aWYoIWIpe1JlPTE0MDticmVhayByfWlmKCgwfGIpPj0wKWJyZWFrO2lmKCEoRD0wfGFbKGM9dys0fDApPj4yXSkp''@;'; + put 'put ''e1JlPTEyMTticmVhayByfWI9KGI9Uj8wfGFbRCs4Pj4yXTpEK2dlfDApK1dlfDAsRyYmKGI9MHxhW2I+PjJdKTtkb3tpZighSyl7aWYocGUpe2I9MHxqaShiZSxiKTticmVha31iPTB8dDMoYmUsYixvdCk7YnJlYWt9Yj0wfHEwWzEyNyZTdF0obCxiZSxiLGx0KX13aGlsZSgwKTtpZigoMHxi''@;'; + put 'put ''KT49MCl7UmU9MTE4O2JyZWFrfWlmKGFbYz4+Ml09YVtEPj4yXSxhW0Q+PjJdPXcsYVttKzQ+PjJdPUQsISh3PTB8YVtEKzQ+PjJdKSl7bT1ELHc9TSxSZT0xOTg7YnJlYWsgbn1tPUR9aWYoMTE4PT0oMHxSZSkpe2lmKFJlPTAsIWIpe1JlPTExOTticmVha31pZihhW00+PjJdPUQsYVttKzQ+''@;'; + put 'put ''PjJdPXcsYj0wfGFbRD4+Ml0pe209dyxNPUQ7Y29udGludWV9bT13LHc9RCxSZT0xOTg7YnJlYWsgbn1pZighKGM9MHxhW3c+PjJdKSl7UmU9MTM5O2JyZWFrfWI9KGI9Uj8wfGFbYys4Pj4yXTpjK2dlfDApK1dlfDAsRyYmKGI9MHxhW2I+PjJdKTtkb3tpZighSyl7aWYocGUpe2I9MHxqaShi''@;'; + put 'put ''ZSxiKTticmVha31iPTB8dDMoYmUsYixvdCk7YnJlYWt9Yj0wfHEwWzEyNyZTdF0obCxiZSxiLGx0KX13aGlsZSgwKTtpZigoMHxiKT4wKXtpZihhW3c+PjJdPWFbKGI9Yys0fDApPj4yXSxhW2I+PjJdPXcsYVtNPj4yXT1jLGI9MHxhW2M+PjJdKXtNPWM7Y29udGludWV9dz1jLFJlPTE5ODti''@;'; + put 'put ''cmVhayBufWlmKCFiKXtSZT0xMzc7YnJlYWt9aWYoYVttKzQ+PjJdPWMsYVtNPj4yXT13LCEoYj0wfGFbYys0Pj4yXSkpe209YyxSZT0xOTg7YnJlYWsgbn1tPWMsTT13fWlmKDExOT09KDB8UmUpKXthW20rND4+Ml09dyxtPXcsdz1ELFJlPTE0MTticmVha31pZigxMjE9PSgwfFJlKSl7YVtt''@;'; + put 'put ''KzQ+PjJdPXcsbT13LHc9TSxSZT0xOTg7YnJlYWt9aWYoMTM3PT0oMHxSZSkpe2FbTT4+Ml09dyxNPXcsdz1jLFJlPTE0MTticmVha31pZigxMzk9PSgwfFJlKSl7YVtNPj4yXT13LFJlPTE5ODticmVha31pZigxNDA9PSgwfFJlKSl7aWYodyl7UmU9MTQxO2JyZWFrfXc9TSxSZT0xOTg7YnJl''@;'; + put 'put ''YWt9fX13aGlsZSgwKTtkb3tpZigxNDE9PSgwfFJlKSlpZihhW09lPj4yXT0zMjc2OHxhW09lPj4yXSxhW00+PjJdPWFbKGI9dys0fDApPj4yXSxhW20rND4+Ml09YVt3Pj4yXSw1MTYmZilwPXc7ZWxzZXtpZig4JmZ8MCl7YVtiPj4yXT1hW250Pj4yXSxhW3c+PjJdPTAsYVtudD4+Ml09dyxS''@;'; + put 'put ''ZT0xNjk7YnJlYWt9aWYoMTYmZnwwKXthW3c+PjJdPWFbKFJlPW50KzR8MCk+PjJdLGFbYj4+Ml09MCxhW1JlPj4yXT13LFJlPTE3NTticmVha31pZighTGUpe3A9bSxSZT0xODA7YnJlYWsgdH1pZigyMDQ5JmZ8MCl7aWYoNCZhWzQrKDB8YVtxZT4+Ml0pPj4yXXwwKXtwPXc7YnJlYWt9YVti''@;'; + put 'put ''Pj4yXT0wLGFbdz4+Ml09YVsocD1udCs0fDApPj4yXSxhW3A+PjJdPXcscD13LFJlPTIwNTticmVha31pZighKDMyJmYpKXtwPTA7YnJlYWsgZX1pZighKDQmYVs0KygwfGFbcWU+PjJdKT4+Ml0pKXthW3ArND4+Ml09MCxhW3A+PjJdPWFbKFZlPW50KzR8MCk+PjJdLGFbVmU+PjJdPWssYVso''@;'; + put 'put ''cD0xNisoMHxhW0V0Pj4yXSl8MCk+PjJdPTErKDB8YVtwPj4yXSkscD13O2JyZWFrfTB8KHA9MHxhW2x0KzE2Pj4yXSkmJmRsWzEyNyZwXShsLEEsbHQpLCgwfGFbVmU+PjJdKTwwJiZxMFsxMjcmYVtsKzEyPj4yXV0obCxrLDAsbHQpLHA9d31lbHNlIGlmKDE5OD09KDB8UmUpKWlmKGFbbSs0''@;'; + put 'put ''Pj4yXT0wLGFbdz4+Ml09MCw4JmYpUmU9MTY5O2Vsc2UgaWYoMTYmZilSZT0xNzU7ZWxzZXtpZig1MTYmZnwwKXtwPW07YnJlYWsgdH1pZigyMDQ5JmYpcD0wLFJlPTIwNTtlbHNle2lmKCEoMzImZikpe0E9MCxwPW07YnJlYWsgdH1hWyhWZT0xNisoMHxhW0V0Pj4yXSl8MCk+PjJdPTErKDB8''@;'; + put 'put ''YVtWZT4+Ml0pfX19d2hpbGUoMCk7aWYoMTY5PT0oMHxSZSkpe2lmKCEocD0wfGFbKHc9bnQrNHwwKT4+Ml0pKXtwPW07YnJlYWt9Zm9yKDtBPTB8YVsobT1wKzR8MCk+PjJdOylhW20+PjJdPWFbQT4+Ml0sYVtBPj4yXT1wLHA9QTthW3c+PjJdPWFbcD4+Ml19ZWxzZSBpZigxNzU9PSgwfFJl''@;'; + put 'put ''KSl7aWYoIShwPTB8YVtudD4+Ml0pKXtwPW07YnJlYWt9Zm9yKDttPTB8YVtwPj4yXTspYVtwPj4yXT1hWyhWZT1tKzR8MCk+PjJdLGFbVmU+PjJdPXAscD1tO2FbbnQ+PjJdPWFbcCs0Pj4yXX1lbHNlIGlmKDIwNT09KDB8UmUpKXsoaz0wPT0oMSZmfDApKXwwPT0oMHwodz0wfGFbKGI9bHQr''@;'; + put 'put ''MTJ8MCk+PjJdKSl8fChBPTB8bWlbNjMmd10obCxBLGx0KSk7ZG97aWYoQSl7aWYoKDB8a3QpPi0xKXtwPUEra3R8MCxSZT0yMTU7YnJlYWt9aWYoMHwocD0wfHEwWzEyNyZhW2wrMTI+PjJdXShsLDAsMTIsbHQpKSl7YVtwKzg+PjJdPUE7YnJlYWt9MCE9KDB8YVtiPj4yXSkmJiEoa3wwPT0o''@;'; + put 'put ''MHwoSGU9MHxhW2x0KzE2Pj4yXSkpKSYmZGxbMTI3JkhlXShsLEEsbHQpLFJlPTIxNX1lbHNlIFJlPTIxNX13aGlsZSgwKTtpZigyMTU9PSgwfFJlKSYmIXApe3A9bTticmVha30oMHwoQT0wfGFbKG09MTYrKDB8YVtFdD4+Ml0pfDApPj4yXSkpPi0xJiYoYVttPj4yXT1BKzEpfWFbcCs0Pj4y''@;'; + put 'put ''XT1hW250Pj4yXSxhW3A+PjJdPWFbbnQrND4+Ml07bjpkb3tpZigwIT0oNTE2JmZ8MCkmJjAhPSg4JmFbNCsoMHxhW3FlPj4yXSk+PjJdfDApKWZvcihEPSgwfGt0KTwwLG09RD8wfGFbcCs4Pj4yXTpwKygwLWt0KXwwLFI9KDB8b3QpPDAsbT1tK1dlfDAsUiYmKG09MHxhW20+PjJdKSxrPTA9''@;'; + put 'put ''PSgwfFN0KSxNPSgwfG90KTwxLGM9MC1rdHwwOzspe2lmKCEoQT0wfGFbKGI9cCs0fDApPj4yXSkpYnJlYWsgbjtmb3IoO3c9MHxhW0E+PjJdOylhW0E+PjJdPWFbKG50PXcrNHwwKT4+Ml0sYVtudD4+Ml09QSxBPXc7YVtiPj4yXT1BLHc9KHc9RD8wfGFbQSs4Pj4yXTpBK2N8MCkrV2V8MCxS''@;'; + put 'put ''JiYodz0wfGFbdz4+Ml0pO2Rve2lmKGspe2lmKE0pe3c9MHxqaShtLHcpO2JyZWFrfXc9MHx0MyhtLHcsb3QpO2JyZWFrfXc9MHxxMFsxMjcmU3RdKGwsbSx3LGx0KX13aGlsZSgwKTtpZigwfHcpYnJlYWsgbjthW2I+PjJdPWFbQT4+Ml0sYVtBPj4yXT1wLHA9QX19d2hpbGUoMCk7aWYoYVs0''@;'; + put 'put ''KygwfGFbRXQ+PjJdKT4+Ml09cCwoMHxrdCk8MCl7cD0wfGFbcCs4Pj4yXTticmVhayBlfXA9cCsoMC1rdCl8MDticmVhayBlfX13aGlsZSgwKTsxODA9PSgwfFJlKSYmKEE9KDB8a3QpPDA/MHxhW3crOD4+Ml06dysoMC1rdCl8MCwwPT0oMiZmfDApfDA9PSgwfChtPTB8YVtsdCsxNj4+Ml0p''@;'; + put 'put ''KXx8ZGxbMTI3Jm1dKGwsQSxsdCksKDB8YVtWZT4+Ml0pPDAmJnEwWzEyNyZhW2wrMTI+PjJdXShsLHcsMCxsdCksYVsobD0xNisoMHxhW0V0Pj4yXSl8MCk+PjJdPSgwfChsdD0wfGFbbD4+Ml0pKTwxPy0xOmx0Ky0xfDApO2Rve3A9MHxhWyhtPXArNHwwKT4+Ml19d2hpbGUoMCE9KDB8cCkp''@;'; + put 'put ''O2FbbT4+Ml09YVtudD4+Ml0sYVs0KygwfGFbRXQ+PjJdKT4+Ml09YVtudCs0Pj4yXSxwPTImZnwwP0E6MH1lbHNlIGlmKDA9PSg0NDgmZnwwKXwwPT0oMHx3KSlwPTA7ZWxzZXtpZighKDY0JmYpKXt0OmRve2lmKDI1NiZmKWZvcihwPXc7Oyl7aWYoIShtPTB8YVtwPj4yXSkpYnJlYWsgdDth''@;'; + put 'put ''W3A+PjJdPWFbKGw9bSs0fDApPj4yXSxhW2w+PjJdPXAscD1tfWVsc2UgZm9yKHA9dzs7KXtpZighKEE9MHxhWyhtPXArNHwwKT4+Ml0pKWJyZWFrIHQ7YVttPj4yXT1hW0E+PjJdLGFbQT4+Ml09cCxwPUF9fXdoaWxlKDApO2lmKGFbNCsoMHxhW0V0Pj4yXSk+PjJdPXAsKDB8a3QpPDApe3A9''@;'; + put 'put ''MHxhW3ArOD4+Ml07YnJlYWt9cD1wKygwLWt0KXwwO2JyZWFrfWlmKDAhPSgwfGFbKGM9bHQrMTZ8MCk+PjJdKXwoMHxrdCk8MCl7az1sKzEyfDAsTT0oMHxrdCk8MCxiPTAta3R8MCxwPXc7ZG97Zm9yKHc9cDttPTB8YVsocD13KzR8MCk+PjJdOylhW3A+PjJdPWFbbT4+Ml0sYVttPj4yXT13''@;'; + put 'put ''LHc9bTtwPTB8YVt3Pj4yXSwwfChtPTB8YVtjPj4yXSkmJmRsWzEyNyZtXShsLEE9TT8wfGFbdys4Pj4yXTp3K2J8MCxsdCksKDB8YVtWZT4+Ml0pPDAmJnEwWzEyNyZhW2s+PjJdXShsLHcsMCxsdCl9d2hpbGUoMCE9KDB8cCkpO3A9MHxhW0V0Pj4yXX1hW3ArMTY+PjJdPTAsYVtwKzQ+PjJd''@;'; + put 'put ''PTAscD0wfX13aGlsZSgwKTtyZXR1cm4gYWU9WnQsMHxwfSxmdW5jdGlvbiBIKGwsYyxmKXtyZXR1cm4gMHwoMHx5ZyhjfD0wLGZ8PTAsbHw9MCk/MHxVbyhjKTowKX0sZnVuY3Rpb24geGUobCxjLGYpe2x8PTAsY3w9MDt2YXIgcD0wLG09MCxBPTAsdz0wO2lmKDAhPSgwfChmfD0wKSkmJigw''@;'; + put 'put ''fChwPTB8YVsoQT1sKzh8MCk+PjJdKSk8KDB8YVtsKzQ+PjJdKSl7Zm9yKHc9KDB8YVtsPj4yXSkrcHwwLGw9MCxtPTB8ZmVbdz4+MF0scD1jLGM9dztjPWMrMXwwLGZlW3A+PjBdPW0sbTw8MjQ+PjI0IT0xMCYoMHwobD1sKzF8MCkpPCgwfGYpJiYobT0wfGZlW2M+PjBdKTw8MjQ+PjI0Oylw''@;'; + put 'put ''PXArMXwwO2FbQT4+Ml09KDB8YVtBPj4yXSkrbH1lbHNlIGw9MDtyZXR1cm4gMHxsfSxmdW5jdGlvbiBwYWUobCxjLGYpe3ZhciBwLG07cmV0dXJuIGx8PTAsY3w9MCwobD0wfGFbKGY9MzYrKGZ8PTApfDApPj4yXSk/YVtmPj4yXT1hW2w+PjJdOmw9MHxRbigyMCkscD0wfGFbNCsobT1jKzh8''@;'; + put 'put ''MCk+PjJdLGFbKGY9bCs4fDApPj4yXT1hW20+PjJdLGFbZis0Pj4yXT1wLGFbbCsxNj4+Ml09YVtjKzE2Pj4yXSwwfGx9LGZ1bmN0aW9uIEVsZShsLGMsZil7cmV0dXJuIGN8PTAsZnw9MCxmPTB8dnIoMjQpLGFbZis4Pj4yXT1hW2MrOD4+Ml0sYVtmKzEyPj4yXT1hW2MrMTI+PjJdLGFbZisx''@;'; + put 'put ''Nj4+Ml09YVtjKzE2Pj4yXSxhW2YrMjA+PjJdPWFbYysyMD4+Ml0sMHxmfSxmdW5jdGlvbiBLUihsLGMsZil7cmV0dXJuIGN8PTAsZnw9MCxmPTB8dnIoMTIpLGFbZj4+Ml09YVtjPj4yXSwwfGZ9LGZ1bmN0aW9uIG45KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wO2U6ZG97c3dpdGNo''@;'; + put 'put ''KGYtY3wwKXtjYXNlIDI6MTE2PT0oMHxmZVtjKzE+PjBdKT9sPShsPTB8ZmVbYz4+MF0pPDwyND4+MjQ9PTEwOD82MDpsPDwyND4+MjQ9PTEwMz82MjowOnA9MTQ7YnJlYWs7Y2FzZSAzOjk3PT0oMHxmZVtjPj4wXSkmJjEwOT09KDB8ZmVbYysxPj4wXSkmJjExMj09KDB8ZmVbYysyPj4wXSk/''@;'; + put 'put ''bD0zODpwPTE0O2JyZWFrO2Nhc2UgNDpzd2l0Y2goMHxmZVtjPj4wXSl7Y2FzZSAxMTM6aWYoMTE3IT0oMHxmZVtjKzE+PjBdKSl7cD0xNDticmVhayBlfWlmKDExMSE9KDB8ZmVbYysyPj4wXSkpe3A9MTQ7YnJlYWsgZX1pZigxMTY9PSgwfGZlW2MrMz4+MF0pKXtsPTM0O2JyZWFrIGV9cD0x''@;'; + put 'put ''NDticmVhayBlO2Nhc2UgOTc6aWYoMTEyIT0oMHxmZVtjKzE+PjBdKSl7cD0xNDticmVhayBlfWlmKDExMSE9KDB8ZmVbYysyPj4wXSkpe3A9MTQ7YnJlYWsgZX1pZigxMTU9PSgwfGZlW2MrMz4+MF0pKXtsPTM5O2JyZWFrIGV9cD0xNDticmVhayBlO2RlZmF1bHQ6cD0xNDticmVhayBlfWRl''@;'; + put 'put ''ZmF1bHQ6cD0xNH19d2hpbGUoMCk7cmV0dXJuIDE0PT0oMHxwKSYmKGw9MCksMHxsfSxmdW5jdGlvbiBVSyhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MDtlOmRve3N3aXRjaCgwfChmLWN8MCkvMil7Y2FzZSAyOjA9PSgwfGZlW2MrMj4+MF0pJiYxMTY9PSgwfGZlW2MrMz4+MF0pP2w9''@;'; + put 'put ''MTA4PT0oMHwobD0wfGZlW2M+PjBdPy0xOjB8ZmVbYysxPj4wXSkpPzYwOjEwMz09KDB8bCk/NjI6MDpwPTI3O2JyZWFrO2Nhc2UgMzowPT0oMHxmZVtjPj4wXSkmJjk3PT0oMHxmZVtjKzE+PjBdKSYmMD09KDB8ZmVbYysyPj4wXSkmJjEwOT09KDB8ZmVbYyszPj4wXSkmJjA9PSgwfGZlW2Mr''@;'; + put 'put ''ND4+MF0pJiYxMTI9PSgwfGZlW2MrNT4+MF0pP2w9Mzg6cD0yNzticmVhaztjYXNlIDQ6aWYoMHxmZVtjPj4wXSlwPTI3O2Vsc2Ugc3dpdGNoKDB8ZmVbYysxPj4wXSl7Y2FzZSAxMTM6aWYoMHxmZVtjKzI+PjBdKXtwPTI3O2JyZWFrIGV9aWYoMTE3IT0oMHxmZVtjKzM+PjBdKSl7cD0yNzti''@;'; + put 'put ''cmVhayBlfWlmKDB8ZmVbYys0Pj4wXSl7cD0yNzticmVhayBlfWlmKDExMSE9KDB8ZmVbYys1Pj4wXSkpe3A9Mjc7YnJlYWsgZX1pZigwfGZlW2MrNj4+MF0pe3A9Mjc7YnJlYWsgZX1pZigxMTY9PSgwfGZlW2MrNz4+MF0pKXtsPTM0O2JyZWFrIGV9cD0yNzticmVhayBlO2Nhc2UgOTc6aWYo''@;'; + put 'put ''MHxmZVtjKzI+PjBdKXtwPTI3O2JyZWFrIGV9aWYoMTEyIT0oMHxmZVtjKzM+PjBdKSl7cD0yNzticmVhayBlfWlmKDB8ZmVbYys0Pj4wXSl7cD0yNzticmVhayBlfWlmKDExMSE9KDB8ZmVbYys1Pj4wXSkpe3A9Mjc7YnJlYWsgZX1pZigwfGZlW2MrNj4+MF0pe3A9Mjc7YnJlYWsgZX1pZigx''@;'; + put 'put ''MTU9PSgwfGZlW2MrNz4+MF0pKXtsPTM5O2JyZWFrIGV9cD0yNzticmVhayBlO2RlZmF1bHQ6cD0yNzticmVhayBlfWJyZWFrO2RlZmF1bHQ6cD0yN319d2hpbGUoMCk7cmV0dXJuIDI3PT0oMHxwKSYmKGw9MCksMHxsfSxmdW5jdGlvbiBWSyhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9''@;'; + put 'put ''MDtlOmRve3N3aXRjaCgwfChmLWN8MCkvMil7Y2FzZSAyOjA9PSgwfGZlW2MrMz4+MF0pJiYxMTY9PSgwfGZlW2MrMj4+MF0pP2w9MTA4PT0oMHwobD0wfGZlW2MrMT4+MF0/LTE6MHxmZVtjPj4wXSkpPzYwOjEwMz09KDB8bCk/NjI6MDpwPTI3O2JyZWFrO2Nhc2UgMzowPT0oMHxmZVtjKzE+''@;'; + put 'put ''PjBdKSYmOTc9PSgwfGZlW2M+PjBdKSYmMD09KDB8ZmVbYyszPj4wXSkmJjEwOT09KDB8ZmVbYysyPj4wXSkmJjA9PSgwfGZlW2MrNT4+MF0pJiYxMTI9PSgwfGZlW2MrND4+MF0pP2w9Mzg6cD0yNzticmVhaztjYXNlIDQ6aWYoMHxmZVtjKzE+PjBdKXA9Mjc7ZWxzZSBzd2l0Y2goMHxmZVtj''@;'; + put 'put ''Pj4wXSl7Y2FzZSAxMTM6aWYoMHxmZVtjKzM+PjBdKXtwPTI3O2JyZWFrIGV9aWYoMTE3IT0oMHxmZVtjKzI+PjBdKSl7cD0yNzticmVhayBlfWlmKDB8ZmVbYys1Pj4wXSl7cD0yNzticmVhayBlfWlmKDExMSE9KDB8ZmVbYys0Pj4wXSkpe3A9Mjc7YnJlYWsgZX1pZigwfGZlW2MrNz4+MF0p''@;'; + put 'put ''e3A9Mjc7YnJlYWsgZX1pZigxMTY9PSgwfGZlW2MrNj4+MF0pKXtsPTM0O2JyZWFrIGV9cD0yNzticmVhayBlO2Nhc2UgOTc6aWYoMHxmZVtjKzM+PjBdKXtwPTI3O2JyZWFrIGV9aWYoMTEyIT0oMHxmZVtjKzI+PjBdKSl7cD0yNzticmVhayBlfWlmKDB8ZmVbYys1Pj4wXSl7cD0yNzticmVh''@;'; + put 'put ''ayBlfWlmKDExMSE9KDB8ZmVbYys0Pj4wXSkpe3A9Mjc7YnJlYWsgZX1pZigwfGZlW2MrNz4+MF0pe3A9Mjc7YnJlYWsgZX1pZigxMTU9PSgwfGZlW2MrNj4+MF0pKXtsPTM5O2JyZWFrIGV9cD0yNzticmVhayBlO2RlZmF1bHQ6cD0yNzticmVhayBlfWJyZWFrO2RlZmF1bHQ6cD0yN319d2hp''@;'; + put 'put ''bGUoMCk7cmV0dXJuIDI3PT0oMHxwKSYmKGw9MCksMHxsfSxmdW5jdGlvbiB5QWUobCxjLGYpe2x8PTAsZnw9MDt2YXIgYixrLE0scD0wLG09MCxBPTAsdz0wO3JldHVybiBrPWFlLGFlPWFlKzMyfDAscD1rLGFbKHc9aysxNnwwKT4+Ml09Y3w9MCxhWyhtPXcrNHwwKT4+Ml09Zi0oMCE9KDB8''@;'; + put 'put ''KE09MHxhWyhiPWwrNDh8MCk+PjJdKSkmMSksYVt3Kzg+PjJdPWFbKEE9bCs0NHwwKT4+Ml0sYVt3KzEyPj4yXT1NLGFbcD4+Ml09YVtsKzYwPj4yXSxhW3ArND4+Ml09dyxhW3ArOD4+Ml09MiwoMHwocD0wfHVoKDB8ZTYoMTQ1LDB8cCkpKSk+PTE/cD4+PjA+KHc9MHxhW20+PjJdKT4+PjAm''@;'; + put 'put ''JihtPTB8YVtBPj4yXSxhWyhBPWwrNHwwKT4+Ml09bSxhW2wrOD4+Ml09bSsocC13KSwwfGFbYj4+Ml0mJihhW0E+PjJdPW0rMSxmZVtjKyhmKy0xKT4+MF09MHxmZVttPj4wXSkscD1mKTphW2w+PjJdPWFbbD4+Ml18NDgmcF4xNixhZT1rLDB8cH0sZnVuY3Rpb24gd0FlKGwsYyxmKXt2YXIg''@;'; + put 'put ''cCxtLEE7cmV0dXJuIGN8PTAsZnw9MCxtPWFlLGFlPWFlKzMyfDAscD1tKzIwfDAsYVsoQT1tKT4+Ml09YVs2MCsobHw9MCk+PjJdLGFbQSs0Pj4yXT0wLGFbQSs4Pj4yXT1jLGFbQSsxMj4+Ml09cCxhW0ErMTY+PjJdPWYsKDB8dWgoMHxraCgxNDAsMHxBKSkpPDA/KGFbcD4+Ml09LTEsbD0t''@;'; + put 'put ''MSk6bD0wfGFbcD4+Ml0sYWU9bSwwfGx9LGZ1bmN0aW9uIEZ1ZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBtLHA9MDtyZXR1cm4gbT1hZSxhZT1hZSszMnwwLHA9bSxhWzM2KyhsfD0wKT4+Ml09MTgsMD09KDY0JmFbbD4+Ml18MCkmJihhW3A+PjJdPWFbbCs2MD4+Ml0sYVtwKzQ+PjJdPTIxNTIz''@;'; + put 'put ''LGFbcCs4Pj4yXT1tKzE2LDB8bjYoNTQsMHxwKSkmJihmZVtsKzc1Pj4wXT0tMSkscD0wfGUkKGwsYyxmKSxhZT1tLDB8cH0sZSQsZnVuY3Rpb24gaGNlKGwsYyxmKXt2YXIgcCxtO3JldHVybiBnbygwfChtPTB8YVsocD0yMCsobHw9MCl8MCk+PjJdKSwwfChjfD0wKSwwfChsPShsPSgwfGFb''@;'; + put 'put ''bCsxNj4+Ml0pLW18MCk+Pj4wPihmfD0wKT4+PjA/ZjpsKSksYVtwPj4yXT0oMHxhW3A+PjJdKStsLDB8Zn0sJHIsZnVuY3Rpb24gQkoobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBnZSxIZSxWZSxxZSxudCxvdCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0w''@;'; + put 'put ''LHBlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxXZT0wLFN0PTAsa3Q9MDtvdD1hZSxhZT1hZSsxMTJ8MCxWZT1vdCs4OHwwLEhlPW90KzcyfDAsSz1vdCs0MHwwLEQ9b3QrOHwwLE09b3QscGU9b3QrNjR8MCxxZT1vdCs0OHwwLG50PW90KzI0fDAscD0oMHxhWzQ3MTM0XSk+MSYxO2Rve2lmKCgw''@;'; + put 'put ''fGYpPjUpe2ZvcihHPTB8dnIoKDB8R28obCkpPDwyKSxiPTEmKGs9OD09KDB8ZikpLHc9MHxEdChsKSxSPTA7dzspbT0wfG1EKHcsYyxiKSxBPTI4OCsoMHxhW3crMTY+PjJdKXwwLG0/KGFbQT4+Ml09UixhW0crKFI8PDIpPj4yXT1tLG09UisxfDApOihhW0E+PjJdPS0xMTExLG09Uiksdz0w''@;'; + put 'put ''fHp0KGwsdyksUj1tO2lmKEcpe2lmKDB8KG09MHxYWChHLFIpKSl7aWYoayl7TGU9MCxSZT1HLE9lPUcsYmU9MTticmVha31MZT0wfHRfKEcsUiksUmU9RyxPZT1HLGJlPTE7YnJlYWt9aWYoayl7JHIoMCw4OTc1NSxNKSxtPTAsTGU9MCxSZT1HLE9lPUcsYmU9MTticmVha31TdD0ram5bYys0''@;'; + put 'put ''Pj4yXSxfW0Q+PjNdPStqbltjPj4yXSxfW0QrOD4+M109U3QsJHIoMCw4OTgzMyxEKSxtPTAsTGU9MCxSZT1HLE9lPUcsYmU9MTticmVha31tPTAsTGU9MCxSZT0wLE9lPTAsYmU9MH1lbHNlIG09MCxMZT0wLFJlPTAsUj0wLE9lPTAsYmU9MH13aGlsZSgwKTtnZT0wIT0oMHxMZSk7ZTpkb3tp''@;'; + put 'put ''ZihnZSlmb3IoQT0wfER0KGwpOzspe2lmKCFBKWJyZWFrIGU7Zm9yKG09MHx3MChsLEEpO207KUs9MTQ0KygwfGFbbSsxNj4+Ml0pfDAsT0oocGUsbSxMZSwxLDAsMCksRz0wfGFbKEQ9cGUpKzQ+PjJdLGFbSz4+Ml09YVtEPj4yXSxhW0srND4+Ml09RyxtPTB8UzAobCxtKTtBPTB8enQobCxB''@;'; + put 'put ''KX1lbHNlIDg9PSgwfGYpJjAhPSgwfG0pJiYoZWkobCwwKSxwPTEpfXdoaWxlKDApO2ZvcihNPTA9PSgwfHApLEQ9bCs2MHwwLEc9MTA9PSgwfGYpLHA9MCxrPTB8RHQobCksbT0wO2s7KXtmb3IoSz1rKzE2fDAsYz0wfHcwKGwsayk7Yzspe2I9MHxhWygyPT0oMyZhW2M+PjJdfDApP2M6Yyst''@;'; + put 'put ''NDh8MCkrNDA+PjJdLHc9MHxhWyhBPWMrMTZ8MCk+PjJdLE18fDA9PSgwfGFbdys4Pj4yXSk/V2U9MzU6KHBlPXcrMTZ8MCxhW0hlPj4yXT1hWyhrdD0xNisoMHxhW0s+PjJdKXwwKT4+Ml0sYVtIZSs0Pj4yXT1hW2t0KzQ+PjJdLGFbSGUrOD4+Ml09YVtrdCs4Pj4yXSxhW0hlKzEyPj4yXT1h''@;'; + put 'put ''W2t0KzEyPj4yXSxhW1ZlPj4yXT1hW3BlPj4yXSxhW1ZlKzQ+PjJdPWFbcGUrND4+Ml0sYVtWZSs4Pj4yXT1hW3BlKzg+PjJdLGFbVmUrMTI+PjJdPWFbcGUrMTI+PjJdLGJrKHFlLEhlLFZlKSxwZT01NisoMHxhW0E+PjJdKXwwLGFbSGU+PjJdPWFbKGI9MTYrKDB8YVtiKzE2Pj4yXSl8MCk+''@;'; + put 'put ''PjJdLGFbSGUrND4+Ml09YVtiKzQ+PjJdLGFbSGUrOD4+Ml09YVtiKzg+PjJdLGFbSGUrMTI+PjJdPWFbYisxMj4+Ml0sYVtWZT4+Ml09YVtwZT4+Ml0sYVtWZSs0Pj4yXT1hW3BlKzQ+PjJdLGFbVmUrOD4+Ml09YVtwZSs4Pj4yXSxhW1ZlKzEyPj4yXT1hW3BlKzEyPj4yXSxiayhudCxIZSxW''@;'; + put 'put ''ZSksYVtIZT4+Ml09YVtxZT4+Ml0sYVtIZSs0Pj4yXT1hW3FlKzQ+PjJdLGFbSGUrOD4+Ml09YVtxZSs4Pj4yXSxhW0hlKzEyPj4yXT1hW3FlKzEyPj4yXSxhW1ZlPj4yXT1hW250Pj4yXSxhW1ZlKzQ+PjJdPWFbbnQrND4+Ml0sYVtWZSs4Pj4yXT1hW250Kzg+PjJdLGFbVmUrMTI+PjJdPWFb''@;'; + put 'put ''bnQrMTI+PjJdLHRnKDAsYykpO2U6ZG97aWYoMzU9PSgwfFdlKSYmKFdlPTAsa3Q9MHxydFt3KzE2OD4+MV0sQT1rdDw8MTY+PjE2LGt0PDwxNj4+MTYpKXtpZigoMHxrKT09KDB8Yikpe3B8fChtPTB8dnIoOTYpLGFbbSs4ND4+Ml09MHx2cigxMTUyMCsoKDB8R28obCkpPDw1KXwwKSxwPW0p''@;'; + put 'put ''LFJOKHAsYywwfGFbMjQ4KygwfGFbMTYrKDB8YVtEPj4yXSk+PjJdKT4+Ml0pO2JyZWFrfWlmKCFnZSl7VGFlKGwsYyxmLDE3NzkyKTticmVha31mb3IoQT0wfGZlWzE5NDk1NF0/MTpBLHc9YyxiPTA7Oyl7aWYoKDB8Yik+PSgwfEEpKWJyZWFrIGU7Rz9QTigwLHcsUmUsUiwxKTpQSigwLHcp''@;'; + put 'put ''LHc9MHxhWzE3MisoMHxhW3crMTY+PjJdKT4+Ml0sYj1iKzF8MH19fXdoaWxlKDApO2M9MHxTMChsLGMpfWs9MHx6dChsLGspfWlmKGdlJiZmdW5jdGlvbiBuXyhsKXt2YXIgYyxmO0Z0KDB8YVs4KyhsfD0wKT4+Ml0pLEZ0KDB8YVtsKzEyPj4yXSksRnQoMHxhW2wrMTY+PjJdKSxGdCgwfGFb''@;'; + put 'put ''bCsyMD4+Ml0pLDB8KGM9MHxhWyhmPWwrMjR8MCk+PjJdKSYmKEZ0KDB8YVtjPj4yXSksRnQoMHxhW2Y+PjJdKSksRnQobCl9KExlKSwwfHAmJihGdCgwfGFbcCs4ND4+Ml0pLEZ0KG0pKSxiZSl7Zm9yKHA9MDshKCgwfHApPj0oMHxSKSk7KUZ0KDB8YVtSZSsocDw8Mik+PjJdKSxwPXArMXww''@;'; + put 'put ''O0Z0KE9lKX1yZXR1cm4gYWU9b3QsMH0sZnVuY3Rpb24gSXZlKGwsYyxmKXtmfD0wO3ZhciBnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxudCxXZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsb3Q9MCxTdD0wLGt0PTAsbHQ9MDtmb3IoV2U9YWUsYWU9''@;'; + put 'put ''YWUrOTZ8MCxudD1XZSs0OHwwLHFlPVdlKzI0fDAsVmU9V2UrMTZ8MCxIZT1XZSs4fDAsYmU9V2UsT2U9MTYrKGx8PTApfDAsTGU9NCsoY3w9MCl8MCxSZT00KyhnZT1XZSs4MHwwKXwwLEs9MHxEdChsKSxmPTAscD0wLG09MCxBPTA7Szspe2ZvcihwZT0wfHcwKGwsSyksUj1mLEc9QTtwZTsp''@;'; + put 'put ''e2Y9MD09KDB8cnRbMTY4KygwfGFbcGUrMTY+PjJdKT4+MV0pO2Rve2lmKCgwfEspPT0oMHxhWygyPT0oMyZhW3BlPj4yXXwwKT9wZTpwZSstNDh8MCkrNDA+PjJdKSlmPyhBPVIsZj1HKToocD9mPUc6KGY9MHx2cig5NiksYVtmKzg0Pj4yXT0wfHZyKDExNTIwKygoMHxHbyhsKSk8PDUpfDAp''@;'; + put 'put ''LHA9ZiksUk4ocCxwZSwwfGFbMjQ4KygwfGFbT2U+PjJdKT4+Ml0pLEE9Uik7ZWxzZSBpZihmKUE9UixmPUc7ZWxzZXtpZihtPTB8RHZlKHBlLGMpLDB8WFgoMHxhWyhBPW0rOHwwKT4+Ml0sMHxhW20+PjJdKSl7aWYoISh3PTB8dF8oMHxhW0E+PjJdLDB8YVttPj4yXSkpKXskcigwLDk0MzUy''@;'; + put 'put ''LEhlKSxBPTEsZj1HO2JyZWFrfWZvcihmPXBlO2Y7KVN0PTE0NCsoMHxhWyhvdD1mKzE2fDApPj4yXSl8MCxPSihiZSxmLHcsMCwwfGFbQT4+Ml0sMHxhW20+PjJdKSxrdD0wfGFbKGx0PWJlKSs0Pj4yXSxhW1N0Pj4yXT1hW2x0Pj4yXSxhW1N0KzQ+PjJdPWt0LFBOKDAsZiwwfGFbQT4+Ml0s''@;'; + put 'put ''MHxhW20+PjJdLDApLGY9MHxhWzE3MisoMHxhW290Pj4yXSk+PjJdO0x2ZShtKSxBPVIsZj1HO2JyZWFrfVI/KEE9UixmPUcpOihXNyhnZSxsKSxmPTB8eGMobCw4LDgpLCRyKDAsOTQ0MzYsVmUpLCEoKE09K2puW2M+PjJdKT49KGs9KygwfGYpKSkmISgoRD0ram5bTGU+PjJdKT49ayk/ISgo''@;'; + put 'put ''Yj0ram5bZ2U+PjJdKTw9TSkmISgoaz0ram5bUmU+PjJdKTw9RCl8fChfW250Pj4zXT1iLF9bbnQrOD4+M109ayxfW250KzE2Pj4zXT1NLF9bbnQrMjQ+PjNdPUQsJHIoMyw5NDU1MixudCkpOihhW3FlPj4yXT1mLF9bcWUrOD4+M109TSxfW3FlKzE2Pj4zXT1ELCRyKDMsOTQ1MDIscWUpKSxB''@;'; + put 'put ''PTEsZj1HKX19d2hpbGUoMCk7cGU9MHxTMChsLHBlKSxSPUEsRz1mfUs9MHx6dChsLEspLGY9UixBPUd9cmV0dXJuIGZ1bmN0aW9uIE92ZShsKXswfChsfD0wKSYmKEZ0KDB8YVtsKzg+PjJdKSxGdChsKSl9KG0pLDB8cCYmKEZ0KDB8YVtwKzg0Pj4yXSksRnQoQSkpLGFlPVdlLDB8Zn0sZnVu''@;'; + put 'put ''Y3Rpb24gUHNlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHAsbSx3LEE9MDtmb3IoQT0wfGFbKGN8PTApPj4yXSxwPTB8YVtjKzQ+PjJdLGM9bT0wfGFbYys4Pj4yXTtjOyl7Zm9yKGw9bTtsOykoMHxjKSE9KDB8bCkmJmNYKDB8YVtjPj4yXSwwfGFbbD4+Ml0pLGw9MHxhW2wrND4+Ml07Yz0wfGFb''@;'; + put 'put ''Yys0Pj4yXX1yZXR1cm4gVjcoZix3PUErLTF8MCxsPXArLTF8MCxtKSxWNyhmLHcscCxtKSxWNyhmLHcsYz1wKzF8MCxtKSxWNyhmLEEsbCxtKSxWNyhmLEEsYyxtKSxWNyhmLEE9QSsxfDAsbCxtKSxWNyhmLEEscCxtKSxWNyhmLEEsYyxtKSwwfSxmdW5jdGlvbiBFMmUobCxjLGYpe2x8PTAs''@;'; + put 'put ''Y3w9MCxmfD0wO3ZhciBELFIsT2UsU3QscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLG50PTAsV2U9MCxvdD0wLGt0PTA7U3Q9YWUsYWU9YWUrNDh8MCxSPVN0KzI0fDAsRD1TdCsxNnwwLE9lPVN0LHA9''@;'; + put 'put ''MDtlOmZvcig7Oyl7aWYoKDB8cCk+PSgwfGMpKXtwPTA7YnJlYWt9Zm9yKGFbT2U+PjJdPWFbKG50PTB8YVsocWU9MHxhW2wrKHA8PDIpPj4yXSk+PjJdKT4+Ml0sYVtPZSs0Pj4yXT1hW250KzQ+PjJdLGFbT2UrOD4+Ml09YVtudCs4Pj4yXSxhW09lKzEyPj4yXT1hW250KzEyPj4yXSxXZT1m''@;'; + put 'put ''Kyg0MCpwfDApKzh8MCxHPWYrKDQwKnB8MCkrMjR8MCxLPWYrKDQwKnB8MCkrMzJ8MCxBPWYrKDQwKnB8MCkrMTZ8MCxwPW50PXArMXwwOzspe2lmKCgwfHApPj0oMHxjKSl7cD1udDtjb250aW51ZSBlfWlmKHc9MHxhW2wrKHA8PDIpPj4yXSwhKCEoKE09ISgoYj0rX1tXZT4+M10pPD0oaz0r''@;'; + put 'put ''X1tmKyg0MCpwfDApKzI0Pj4zXSkpKXwhKGI+PShtPStfW2YrKDQwKnB8MCkrOD4+M10pKSkmJihwZT0rX1tBPj4zXSxnZT0rX1tmKyg0MCpwfDApKzMyPj4zXSxwZTw9Z2UpJiYoYmU9K19bZisoNDAqcHwwKSsxNj4+M10scGU+PWJlKSl8fCEoKGt0PStfW0c+PjNdKTw9ayl8IShrdD49bSl8''@;'; + put 'put ''fCEoKGt0PStfW0s+PjNdKTw9Z2UpfCEoa3Q+PWJlKSlvdD0xMTtlbHNlIGlmKGFbRD4+Ml09YVt3Pj4yXSxhW0QrND4+Ml09YVt3KzQ+PjJdLGFbUj4+Ml09YVtPZT4+Ml0sYVtSKzQ+PjJdPWFbT2UrND4+Ml0sYVtSKzg+PjJdPWFbT2UrOD4+Ml0sYVtSKzEyPj4yXT1hW09lKzEyPj4yXSww''@;'; + put 'put ''fF82KEQsUikpe3A9MTticmVhayBlfWlmKDExPT0oMHxvdCkmJihvdD0wLCEoIShtPD0oTGU9K19bRz4+M10pKXwhKG0+PWIpKSkmJihSZT0rX1tmKyg0MCpwfDApKzE2Pj4zXSk8PShIZT0rX1tLPj4zXSkmJiEoIShSZT49KFZlPStfW0E+PjNdKSl8IShrPD1MZSl8TSkmJiEoISgoa3Q9K19b''@;'; + put 'put ''ZisoNDAqcHwwKSszMj4+M10pPD1IZSl8IShrdD49VmUpKSYmKE09MHxhW3c+PjJdLGFbRD4+Ml09YVtxZT4+Ml0sYVtEKzQ+PjJdPWFbcWUrND4+Ml0sYVtSPj4yXT1hW00+PjJdLGFbUis0Pj4yXT1hW00rND4+Ml0sYVtSKzg+PjJdPWFbTSs4Pj4yXSxhW1IrMTI+PjJdPWFbTSsxMj4+Ml0s''@;'; + put 'put ''MHxfNihELFIpKSl7cD0xO2JyZWFrIGV9cD1wKzF8MH19cmV0dXJuIGFlPVN0LDB8cH0sZnVuY3Rpb24gclAobCxjLGYpe2x8PTAsY3w9MDt2YXIgdyxrLHA9MCxtPTAsQT0wLGI9MDtmb3Ioaz1hZSxhZT1hZSsxNnwwLGFbKEE9ayk+PjJdPWZ8PTAsdz0rX1soYj0wfGFbbD4+Ml0pPj4zXSxi''@;'; + put 'put ''PTB8YVsobD0wfGFbYis4Pj4yXSk+PjJdLEtmKGwsYyxBLDApLGw9MCxtPTA7ISgoMHxsKT49KDB8YikpOylwPStfW2MrKGw8PDMpPj4zXSttLGw9bCsxfDAsbT1wO2ZvcihwPSsoMHxiKSxmPTB8YVtBPj4yXSxsPTA7ISgoMHxsKT49KDB8YikpOylfWyhBPWYrKGw8PDMpfDApPj4zXT0oK19b''@;'; + put 'put ''YysobDw8Myk+PjNdKnAtbSkqdysgK19bQT4+M10sbD1sKzF8MDtyZXR1cm4gYWU9aywwfGZ9LGZ1bmN0aW9uIFR4KGwsYyxmKXt2YXIgcCxtO3JldHVybiBsfD0wLGN8PTAsbT1hZSxhZT1hZSsxNnwwLGFbKHA9bSk+PjJdPWZ8PTAsS2YoMHxhW2w+PjJdLGMscCwwKSxhZT1tLDB8YVtwPj4y''@;'; + put 'put ''XX0sZnVuY3Rpb24gb1AobCxjLGYpe2N8PTAsZnw9MDt2YXIgcCxtPTA7Zm9yKHA9fn4rX1sobT0wfGFbKGx8PTApPj4yXSk+PjNdLG09bSs4fDAsbD0wOyEoKDB8bCk+PSgwfHApKTspX1tmKyhsPDwzKT4+M109K19bbSsobDw8Myk+PjNdKitfW2MrKGw8PDMpPj4zXSxsPWwrMXwwO3JldHVy''@;'; + put 'put ''biAwfGZ9LGZ1bmN0aW9uIFFtKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wO2U6ZG97aWYoOTkmZilwPTB8bWlbNjMmYVthW2wrMTY+PjJdPj4yXV0obCxjLGYpO2Vsc2V7aWYoMCE9KDUxNiZmfDApfHww''@;'; + put 'put ''IT0oMzg0JmZ8MCkmMD09KDEyJihwPTB8YVs0KygwfGFbbCsxNj4+Ml0pPj4yXSl8MCkpbT1sO2Vsc2V7aWYoMTImcHwwKXtpZighKDQwOCZmKSl7cD0wO2JyZWFrfWZvcihLPTAhPSgxMzYmZnwwKSxwZT0wIT0oMjcyJmZ8MCksRD0wLG09MCxwPTAsRz1sO0c7KXtSPTB8bWlbNjMmYVthW0cr''@;'; + put 'put ''MTY+PjJdPj4yXV0oRyxjLGYpO2Rve2lmKFIpe2lmKGs9MHxhWzIwKyh3PTB8YVtHKzQ+PjJdKT4+Ml0sQT1SKygwfGFbdz4+Ml0pfDAsTT0oMHwoYj0wfGFbdys0Pj4yXSkpPDA/MHxhW0E+PjJdOkEsMHxwKXtkb3tpZighayl7aWYoKDB8Yik8MSl7QT0wfGppKE0sbSk7YnJlYWt9QT0wfHQz''@;'; + put 'put ''KE0sbSxiKTticmVha31BPTB8cTBbMTI3JmtdKEcsTSxtLHcpfXdoaWxlKDApO2lmKCEoSyYoMHxBKTwwfHBlJigwfEEpPjApKXtBPUQ7YnJlYWt9fUE9RyxtPU0scD1SfWVsc2UgQT1EfXdoaWxlKDApO0Q9QSxHPTB8YVtHKzI4Pj4yXX1hW2wrMzI+PjJdPUQ7YnJlYWt9aWYoISgyNCZmKSl7''@;'; + put 'put ''cD0wO2JyZWFrfShtPTB8YVsoaz1sKzMyfDApPj4yXSk/KEE9MHxhWzQrKDB8YVttKzg+PjJdKT4+Ml0sKDB8KHA9KDB8KHA9MHxhWzgrKDB8YVttKzQ+PjJdKT4+Ml0pKTwwPzB8YVtBKzg+PjJdOkErKDAtcCl8MCkpPT0oMHxjKT9wPWM6KG09bCx3PTMyKSk6KG09bCx3PTMyKTtkb3tpZigz''@;'; + put 'put ''Mj09KDB8dykpe2Zvcig7Oyl7aWYoIW0pe3c9MzM7YnJlYWt9aWYoMHwocD0wfG1pWzYzJmFbYVttKzE2Pj4yXT4+Ml1dKG0sYyw0KSkpe3c9MzY7YnJlYWt9bT0wfGFbbSsyOD4+Ml0sdz0zMn1pZigzMz09KDB8dykpe2Fbaz4+Ml09MCxwPTA7YnJlYWsgZX1pZigzNj09KDB8dykpe2Fbaz4+''@;'; + put 'put ''Ml09bTticmVha319fXdoaWxlKDApO2ZvcihiPTEyOCsoZjw8NCYxMjheMTI4KXwwLHA9MHxtaVs2MyZhW2FbbSsxNj4+Ml0+PjJdXShtLHAsZik7Oyl7Zm9yKHc9bSsxNnwwO3A7KXtmb3IoQT1sOzspe2lmKCgwfEEpPT0oMHxtKSlicmVhayBlO2lmKDB8bWlbNjMmYVthW0ErMTY+PjJdPj4y''@;'; + put 'put ''XV0oQSxwLDQpKWJyZWFrO0E9MHxhW0ErMjg+PjJdfXA9MHxtaVs2MyZhW2Fbdz4+Ml0+PjJdXShtLHAsZil9aWYoYVtrPj4yXT1tPTB8YVttKzI4Pj4yXSwhbSl7cD0wO2JyZWFrIGV9cD0wfG1pWzYzJmFbYVttKzE2Pj4yXT4+Ml1dKG0sMCxiKX19Zm9yKDs7KXtpZighbSl7bT0wLHA9MDti''@;'; + put 'put ''cmVha31pZigwfChwPTB8bWlbNjMmYVthW20rMTY+PjJdPj4yXV0obSxjLGYpKSlicmVhazttPTB8YVttKzI4Pj4yXX1hW2wrMzI+PjJdPW19fXdoaWxlKDApO3JldHVybiAwfHB9LGtyZSxvbyxkcyxUMCxmdW5jdGlvbiB5bGUobCxjLGYpe3JldHVybiBsfD0wLGN8PTAsZnw9MCxmPTB8c2go''@;'; + put 'put ''MSwzMiksMHwobD0wfGFbYz4+Ml0pJiYoYVtmPj4yXT0wfHJhKGwpKSwwfChsPTB8YVtjKzQ+PjJdKSYmKGFbZis0Pj4yXT0wfHJhKGwpKSxhW2YrMjQ+PjJdPTEyNyZhW2MrMjQ+PjJdLF9bZisxNj4+M109K19bYysxNj4+M10sYVtmKzg+PjJdPWFbYys4Pj4yXSwwfGZ9LE1RLGZ1bmN0aW9u''@;'; + put 'put ''IHlSKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7Zm9yKG09MHxhWyhsfD0wKT4+Ml0sQT1sKzE2fDAscD0wOyEoKDB8cCk+PSgwfG0pKTspYVsoMHxhW0E+PjJdKSsoNDAqcHwwKT4+Ml09LTIxNDc0ODM2NDgscD1wKzF8MDshZnVuY3Rpb24g''@;'; + put 'put ''eGIoKXthWzQ3Mzg3XT0wfSgpO2U6ZG97aWYoMHxIdihjKSlwPTE7ZWxzZXthW2MrOD4+Ml09MCxhW2M+PjJdPTAsYz1sKzIwfDA7dDpmb3IoOzspe2lmKCEobT0wfGJFKCkpKXtwPTA7YnJlYWsgZX1pZihhW20+PjJdPTAtKDB8YVttPj4yXSksKDB8bSk9PSgwfGYpKXtwPTA7YnJlYWsgZX1m''@;'; + put 'put ''b3IoQT1tKzE2fDAsdz1tKzI4fDAscD0wOzspe2lmKCgwfHApPj0oMHxydFtBPj4xXSkpY29udGludWUgdDtrPTB8V3oobCxiPSgwfGFbYz4+Ml0pKygyNCooMHxhWygwfGFbdz4+Ml0pKyhwPDwyKT4+Ml0pfDApfDAsbSksTT0wfGFbaz4+Ml07ZG97aWYoKDB8TSk8MCl7aWYoRD1+fi0oK19b''@;'; + put 'put ''Yj4+M10rICsoMHxhW20+PjJdKSksLTIxNDc0ODM2NDg9PSgwfE0pKXtpZihhW2s+PjJdPUQsMHxIdihrKSl7cD0xO2JyZWFrIGV9YVtrKzg+PjJdPW0sYVtrKzEyPj4yXT1iO2JyZWFrfWlmKCgwfE0pPj0oMHxEKSlicmVhaztxUihrLEQpLGFbays4Pj4yXT1tLGFbaysxMj4+Ml09YjticmVh''@;'; + put 'put ''a319d2hpbGUoMCk7cD1wKzF8MH19fX13aGlsZSgwKTtyZXR1cm4gMHxwfSxKZixXSyxmdW5jdGlvbiBYMWUobCxjLGYpe3JldHVybiBsfD0wLGN8PTAsLTE9PSgwfChmPTB8aUwoZnw9MCkpKT9mPTA6KGZlW2wrNjk+PjBdPWYsYVtsPj4yXT02OSxhW2wrND4+Ml09NzAsYVtsKzQ4Pj4yXT0z''@;'; + put 'put ''MSxhW2wrNzI+PjJdPWMsYVtjPj4yXT1sLGY9MSksMHxmfSxmdW5jdGlvbiBRMWUobCxjLGYpe3ZhciBwLG0sQSx3O2x8PTAsZnw9MCxBPWFlLGFlPWFlKzE0NHwwLHA9QSs4fDAsbT1BLGFbKHc9QSs0fDApPj4yXT1jfD0wLGFbbT4+Ml09cCxPMlsxMjcmYVtsKzU2Pj4yXV0obCx3LGYsbSxw''@;'; + put 'put ''KzEyN3wwKTtkb3tpZigoMHxhW3c+PjJdKT09KDB8Zikpe2lmKGZlW2FbbT4+Ml0+PjBdPTAsMHxwaihwLDE0NDMxNSkmJjI9PSgwfGFbbCs2ND4+Ml0pKWJyZWFrO2w9LTEhPSgwfChsPTB8aUwocCkpKT8wfGFbNTg5NDgrKGw8PDIpPj4yXTowfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiBh''@;'; + put 'put ''ZT1BLDB8bH0sZnVuY3Rpb24gZXVlKGwsYyxmKXt2YXIgcCxtLEEsdztsfD0wLGZ8PTAsQT1hZSxhZT1hZSsxNDR8MCxwPUErOHwwLG09QSxhWyh3PUErNHwwKT4+Ml09Y3w9MCxhW20+PjJdPXAsTzJbMTI3JmFbbCs1Nj4+Ml1dKGwsdyxmLG0scCsxMjd8MCk7ZG97aWYoKDB8YVt3Pj4yXSk9''@;'; + put 'put ''PSgwfGYpKXtpZihmZVthW20+PjJdPj4wXT0wLDB8cGoocCwxNDQzMTUpJiYyPT0oMHxhW2wrNjQ+PjJdKSlicmVhaztsPS0xIT0oMHwobD0wfGlMKHApKSk/MHxhWzYwNDU2KyhsPDwyKT4+Ml06MH1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gYWU9QSwwfGx9LGZ1bmN0aW9uIFJjZShsLGMs''@;'; + put 'put ''Zil7cmV0dXJuIDB8ZnVuY3Rpb24gVmNlKGwsYyxmKXtjfD0wO3ZhciBwLEEsdyxtPTA7cmV0dXJuIG09MHwkayhBPTB8YVsocD04NCsobHw9MCl8MCk+PjJdLDAsdz0yNTYrKGZ8PTApfDApLGdvKDB8YywwfEEsMHwoZj0obT0wPT0oMHxtKT93Om0tQXwwKT4+PjA8Zj4+PjA/bTpmKSksYVts''@;'; + put 'put ''KzQ+PjJdPUErZixhW2wrOD4+Ml09Yz1BK218MCxhW3A+PjJdPWMsMHxmfShsfD0wLGN8PTAsZnw9MCl9LE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yLE0yXSxxMD1bcGEsZnVuY3Rpb24gaXNlKGwsYyxmLHApe3JldHVybiBs''@;'; + put 'put ''fD0wLHB8PTAsKGw9MHxhWyhjfD0wKT4+Ml0pPj4+MDw9KHA9MHxhWyhmfD0wKT4+Ml0pPj4+MD9sPj4+MD49cD4+PjA/KHA9MHxhW2MrMjQ+PjJdKT4+PjA8PShsPTB8YVtmKzI0Pj4yXSk+Pj4wP3A+Pj4wPj1sPj4+MD8obD1+figrX1tjKzg+PjNdLStfW2YrOD4+M10pKXx8KGw9fn4oK19b''@;'; + put 'put ''YysxNj4+M10tK19bZisxNj4+M10pKXx8KGw9fn4oK19bYyszMj4+M10tK19bZiszMj4+M10pKXx8KGw9fn4oK19bYys0MD4+M10tK19bZis0MD4+M10pKTpsPS0xOmw9MTpsPS0xOmw9MSwwfGx9LGZ1bmN0aW9uIEREKGwsYyxmLHApe3JldHVybigwfGFbKGN8PTApPj4yXSktKDB8YVsoZnw9''@;'; + put 'put ''MCk+PjJdKXwwfSxmdW5jdGlvbiBmMWUobCxjLGYscCl7cmV0dXJuIGx8PTAsKGw9KDB8YVsoY3w9MCk+PjJdKS0oMHxhWyhmfD0wKT4+Ml0pfDApfHwobD0oMHxhW2MrND4+Ml0pLSgwfGFbZis0Pj4yXSl8MCksMHxsfSxmdW5jdGlvbiBLMihsLGMsZixwKXtyZXR1cm4gcHw9MCwwfCgoMHwo''@;'; + put 'put ''Yz0wfGFbKGN8PTApPj4yXSkpPCgwfChwPTB8YVsoZnw9MCk+PjJdKSk/LTE6KDB8Yyk+KDB8cCkmMSl9LGZ1bmN0aW9uIFVtKGwsYyxmLHApe3JldHVybiBwfD0wLDB8KChjPTB8YVsoY3w9MCk+PjJdKT4+PjA+KHA9MHxhWyhmfD0wKT4+Ml0pPj4+MD8xOihjPj4+MDxwPj4+MCk8PDMxPj4z''@;'; + put 'put ''MSl9LGZ1bmN0aW9uIEJQKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbSxBPTA7cmV0dXJuKDB8KGw9MHxhWzQwKyhjfD0wKT4+Ml0pKT09KDB8KG09MHxhWzQwKyhmfD0wKT4+Ml0pKT8ocD0oMHxhW2M+PjJdKT4+PjQpPj4+MD49KGw9KDB8YVtmPj4yXSk+Pj40KT4+PjA/cD4+PjA+bD4+PjA/''@;'; + put 'put ''bD0xOkE9NjpsPS0xOihwPSgwfGFbbD4+Ml0pPj4+NCk+Pj4wPj0obD0oMHxhW20+PjJdKT4+PjQpPj4+MD9wPj4+MD5sPj4+MD9sPTE6QT02Omw9LTEsNj09KDB8QSkmJihsPTApLDB8bH0sZnVuY3Rpb24gemQobCxjLGYscCl7bHw9MCxmfD0wLHB8PTAsbD0wfGFbNDY5ODRdLHA9MCE9KDB8''@;'; + put 'put ''KGN8PTApKTtkb3tpZihsKXtpZihwKXt4dChsLGMpLGw9MDticmVha31sPTB8TXQobCxmKTticmVha31pZihwKXtGdChjKSxsPTA7YnJlYWt9bD0wfEIwKGYpO2JyZWFrfXdoaWxlKDApO3JldHVybiAwfGx9LGZ1bmN0aW9uIElBKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgQSxtPTAsdz0wLGI9''@;'; + put 'put ''MDtBPTB8YVsobD04KygwfGFbNDArKGN8PTApPj4yXSl8MCk+PjJdLGw9MHxhW2wrND4+Ml0scD0wfGFbKG09OCsoMHxhWzQwKyhmfD0wKT4+Ml0pfDApPj4yXSxtPTB8YVttKzQ+PjJdO2Rve2lmKGw+Pj4wPG0+Pj4wfCgwfGwpPT0oMHxtKSZBPj4+MDxwPj4+MClsPS0xO2Vsc2UgaWYobD4+''@;'; + put 'put ''PjA+bT4+PjB8KDB8bCk9PSgwfG0pJkE+Pj4wPnA+Pj4wKWw9MTtlbHNle2lmKCEoMD09KDB8KGw9MHxhWyhwPWMrOHwwKT4+Ml0pKSYwPT0oMHwocD0wfGFbcCs0Pj4yXSkpfHwoYj1mKzh8MCx3PTB8YVtiPj4yXSxiPTB8YVtiKzQ+PjJdLDA9PSgwfHcpJjA9PSgwfGIpKSkpe2lmKHA+Pj4w''@;'; + put 'put ''PGI+Pj4wfCgwfHApPT0oMHxiKSZsPj4+MDx3Pj4+MCl7bD0tMTticmVha31pZihwPj4+MD5iPj4+MHwoMHxwKT09KDB8YikmbD4+PjA+dz4+PjApe2w9MTticmVha319bD0wfX13aGlsZSgwKTtyZXR1cm4gMHxsfSxmdW5jdGlvbiB1QyhsLGMsZixwKXtyZXR1cm4gcHw9MCwwfCgwPT0oMHwo''@;'; + put 'put ''cD0wfFNwKDB8YVsoYz04KyhjfD0wKXwwKT4+Ml0sMHxhW2MrND4+Ml0sMHxhWyhwPTgrKGZ8PTApfDApPj4yXSwwfGFbcCs0Pj4yXSkpKT8wOnA+PjMxfDEpfSxmdW5jdGlvbiBmQyhsLGMsZixwKXtyZXR1cm4gMH0sZnVuY3Rpb24gaEMobCxjLGYscCl7cmV0dXJuIDB8KDA9PSgxJihmfD0w''@;'; + put 'put ''KXwwKSYhMD9mOjApfSxmdW5jdGlvbiBiRyhsLGMsZixwKXtyZXR1cm4gcHw9MCwwfCgoYz0wfGFbMjQrKGN8PTApPj4yXSk+Pj4wPihwPTB8YVsyNCsoZnw9MCk+PjJdKT4+PjA/MTooYz4+PjA8cD4+PjApPDwzMT4+MzEpfSxmdW5jdGlvbiBjVChsLGMsZixwKXtyZXR1cm4gbHw9MCxwfD0w''@;'; + put 'put ''LGM9MHxhWyhsPTE2KyhjfD0wKXwwKT4+Ml0scD0wfGFbKGY9MTYrKGZ8PTApfDApPj4yXSwwfCgobD0wfGFbbCs0Pj4yXSk+Pj4wPihmPTB8YVtmKzQ+PjJdKT4+PjB8KDB8bCk9PSgwfGYpJmM+Pj4wPnA+Pj4wPzE6KGw+Pj4wPGY+Pj4wfCgwfGwpPT0oMHxmKSZjPj4+MDxwPj4+MCk8PDMx''@;'; + put 'put ''Pj4zMSl9LGZ1bmN0aW9uIGplKGwsYyxmLHApe3JldHVybiBsfD0wLGZ8PTAsbD0wfFVhKGN8PTAscHw9MCkscD4+PjA+Zj4+PjAmJnUyKGwrZnwwLDAscC1mfDApLDB8bH0sZnVuY3Rpb24gUnQobCxjLGYscCl7cmV0dXJuIGx8PTAscHw9MCxjPTB8YVsobD04KygwfGFbMTYrKGN8PTApPj4y''@;'; + put 'put ''XSl8MCk+PjJdLHA9MHxhWyhmPTgrKDB8YVsxNisoZnw9MCk+PjJdKXwwKT4+Ml0sMHwoKGw9MHxhW2wrND4+Ml0pPj4+MDwoZj0wfGFbZis0Pj4yXSk+Pj4wfCgwfGwpPT0oMHxmKSZjPj4+MDxwPj4+MD8tMToxJihsPj4+MD5mPj4+MHwoMHxsKT09KDB8ZikmYz4+PjA+cD4+PjApKX0sZnVu''@;'; + put 'put ''Y3Rpb24gbm4obCxjLGYscCl7cmV0dXJuIHB8PTAsMHwoKGM9KDB8YVthWzE2KyhjfD0wKT4+Ml0+PjJdKT4+PjQpPj4+MDwocD0oMHxhW2FbMTYrKGZ8PTApPj4yXT4+Ml0pPj4+NCk+Pj4wPy0xOmM+Pj4wPnA+Pj4wJjEpfSxmdW5jdGlvbiBmYWUobCxjLGYscCl7aWYobHw9MCxwfD0wLCgw''@;'; + put 'put ''fChsPTB8YVsoY3w9MCk+PjJdKSk8PSgwfChwPTB8YVsoZnw9MCk+PjJdKSkpe2lmKCEoKDB8bCk8KDB8cCkpKXJldHVybiAwfCgoMHwoYz0wfGFbYys0Pj4yXSkpPigwfChmPTB8YVtmKzQ+PjJdKSk/MTooKDB8Yyk8KDB8ZikpPDwzMT4+MzEpO2w9LTF9ZWxzZSBsPTE7cmV0dXJuIDB8bH0s''@;'; + put 'put ''ZnVuY3Rpb24gVGxlKGwsYyxmLHApe2lmKGx8PTAscHw9MCwobD0wfGFbKGN8PTApPj4yXSk+Pj4wPj0ocD0wfGFbKGZ8PTApPj4yXSk+Pj4wKXtpZighKGw+Pj4wPnA+Pj4wKSlyZXR1cm4gMHwoKGM9MHxhW2MrND4+Ml0pPj4+MDwoZj0wfGFbZis0Pj4yXSk+Pj4wPy0xOmM+Pj4wPmY+Pj4w''@;'; + put 'put ''JjEpO2w9MX1lbHNlIGw9LTE7cmV0dXJuIDB8bH0sZnVuY3Rpb24gZFIobCxjLGYscCl7dmFyIG0sQTtyZXR1cm4gMHwoKEE9K19bKGN8PTApPj4zXSk+KG09K19bKGZ8PTApPj4zXSk/MTooQTxtKTw8MzE+PjMxKX0sZnVuY3Rpb24gVjgobCxjLGYscCl7dmFyIG0sQTtyZXR1cm4gMHwoKG09''@;'; + put 'put ''K19bKGN8PTApPj4zXSk+KEE9K19bKGZ8PTApPj4zXSk/MSYhKCtfW2MrOD4+M108PStfW2YrOD4+M10pOm08QT8hKCtfW2MrOD4+M10+PStfW2YrOD4+M10pPDwzMT4+MzE6MCl9LGZ1bmN0aW9uIERSKGwsYyxmLHApe3JldHVybigwfGFbKGN8PTApPj4yXSktKDB8YVsoZnw9MCk+PjJdKXww''@;'; + put 'put ''fSxmdW5jdGlvbiBNYihsLGMsZixwKXtyZXR1cm4gcHw9MCwwfCgoMHwoYz0wfGFbKGN8PTApPj4yXSkpPigwfChwPTB8YVsoZnw9MCk+PjJdKSk/MTooKDB8Yyk8KDB8cCkpPDwzMT4+MzEpfSxmdW5jdGlvbiBrRShsLGMsZixwKXt2YXIgbT0wLEE9MDtyZXR1cm4gMHwoKG09K19bKGN8PTAp''@;'; + put 'put ''Pj4zXSk+KEE9K19bKGZ8PTApPj4zXSk/MTptPEE/LTE6KEE9K19bYys4Pj4zXSk+KG09K19bZis4Pj4zXSk/MTooQTxtKTw8MzE+PjMxKX0sZnVuY3Rpb24gRGIobCxjLGYscCl7dmFyIG09MCxBPTA7cmV0dXJuIDB8KChtPStfWzgrKGN8PTApPj4zXSk+KEE9K19bOCsoZnw9MCk+PjNdKT8x''@;'; + put 'put ''Om08QT8tMTooQT0rX1tjPj4zXSk+KG09K19bZj4+M10pPzE6KEE8bSk8PDMxPj4zMSl9LGZ1bmN0aW9uIE5tKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtlOmRve2lmKGM+Pj4wPGY+Pj4wKXtzd2l0Y2goMHxmZVsoRD1sKzcy''@;'; + put 'put ''fDApKygwfEp0W2M+PjBdKT4+MF0pe2Nhc2UgMTI6bT0wfHAxZSgxMixsLGMrMXwwLGYscCk7YnJlYWsgZTtjYXNlIDEzOm09MHxwMWUoMTMsbCxjKzF8MCxmLHApO2JyZWFrIGU7Y2FzZSAyOmlmKChmLShtPWMrMXwwKXwwKTw9MCl7bT0tMTticmVhayBlfXN3aXRjaCgwfGZlW0QrKDB8SnRb''@;'; + put 'put ''bT4+MF0pPj4wXSl7Y2FzZSAxNjptPTB8ZzFlKGwsYysyfDAsZixwKTticmVhayBlO2Nhc2UgMTU6bT0wfHRMKGwsYysyfDAsZixwKTticmVhayBlO2Nhc2UgNzpjYXNlIDY6Y2FzZSA1OmNhc2UgMjk6Y2FzZSAyNDpjYXNlIDIyOmFbcD4+Ml09YyxtPTI5O2JyZWFrIGU7ZGVmYXVsdDphW3A+''@;'; + put 'put ''PjJdPW0sbT0wO2JyZWFrIGV9Y2FzZSA5OmlmKChjKzF8MCk9PSgwfGYpKXthW3A+PjJdPWYsbT0tMTU7YnJlYWsgZX1iPTM7YnJlYWs7Y2FzZSAxMDpjYXNlIDIxOmI9MzticmVhaztjYXNlIDMwOm09MHxpaihsLGMrMXwwLGYscCk7YnJlYWsgZTtjYXNlIDM1OmFbcD4+Ml09YysxLG09Mzg7''@;'; + put 'put ''YnJlYWsgZTtjYXNlIDIwOmFbcD4+Ml09YysxLG09MjU7YnJlYWsgZTtjYXNlIDQ6aWYoKDB8KG09Zi0oQT1jKzF8MCl8MCkpPD0wKXttPS0yNjticmVhayBlfWlmKDkzPT0oMHxmZVtBPj4wXSkpe2lmKCgwfG0pPD0xKXttPS0xO2JyZWFrIGV9aWYoNjI9PSgwfGZlW2MrMj4+MF0pKXthW3A+''@;'; + put 'put ''PjJdPWMrMyxtPTM0O2JyZWFrIGV9fWFbcD4+Ml09QSxtPTI2O2JyZWFrIGU7Y2FzZSAzMTphW3A+PjJdPWMrMSxtPTIzO2JyZWFrIGU7Y2FzZSAzMjppZigoZi0obT1jKzF8MCl8MCk8PTApe209LTI0O2JyZWFrIGV9c3dpdGNoKDB8ZmVbRCsoMHxKdFttPj4wXSk+PjBdKXtjYXNlIDMzOmFb''@;'; + put 'put ''cD4+Ml09YysyLG09MzY7YnJlYWsgZTtjYXNlIDE1OmFbcD4+Ml09YysyLG09MzU7YnJlYWsgZTtjYXNlIDM0OmFbcD4+Ml09YysyLG09Mzc7YnJlYWsgZTtjYXNlIDMyOmNhc2UgMzY6Y2FzZSAzNTpjYXNlIDExOmNhc2UgMjE6Y2FzZSAxMDpjYXNlIDk6YVtwPj4yXT1tLG09MjQ7YnJlYWsg''@;'; + put 'put ''ZTtkZWZhdWx0OmFbcD4+Ml09bSxtPTA7YnJlYWsgZX1jYXNlIDM2OmFbcD4+Ml09YysxLG09MjE7YnJlYWsgZTtjYXNlIDExOmFbcD4+Ml09YysxLG09MTc7YnJlYWsgZTtjYXNlIDE5Om09MHxQSyhsLGMrMXwwLGYscCk7YnJlYWsgZTtjYXNlIDU6aWYoKGYtY3wwKTwyKXttPS0yO2JyZWFr''@;'; + put 'put ''IGV9aWYoMHxCaVsxMjcmYVtsKzM0MD4+Ml1dKGwsYykpbT0xOCxBPTI7ZWxzZXtpZighKDB8QmlbMTI3JmFbbCszMjg+PjJdXShsLGMpKSl7YVtwPj4yXT1jLG09MDticmVhayBlfW09MTksQT0yfWJyZWFrO2Nhc2UgNjppZigoZi1jfDApPDMpe209LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZh''@;'; + put 'put ''W2wrMzQ0Pj4yXV0obCxjKSltPTE4LEE9MztlbHNle2lmKCEoMHxCaVsxMjcmYVtsKzMzMj4+Ml1dKGwsYykpKXthW3A+PjJdPWMsbT0wO2JyZWFrIGV9bT0xOSxBPTN9YnJlYWs7Y2FzZSA3OmlmKChmLWN8MCk8NCl7bT0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbbCszNDg+PjJdXShsLGMp''@;'; + put 'put ''KW09MTgsQT00O2Vsc2V7aWYoISgwfEJpWzEyNyZhW2wrMzM2Pj4yXV0obCxjKSkpe2FbcD4+Ml09YyxtPTA7YnJlYWsgZX1tPTE5LEE9NH1icmVhaztjYXNlIDI0OmNhc2UgMjI6bT0xOCxBPTE7YnJlYWs7Y2FzZSAyMzpjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTptPTE5LEE9MTticmVhaztk''@;'; + put 'put ''ZWZhdWx0OmFbcD4+Ml09YyxtPTA7YnJlYWsgZX1pZigzPT0oMHxiKSl7dz1mLEE9Yzt0OmZvcig7Oyl7aWYobT1BLCh3LShBPUErMXwwKXwwKTw9MCl7Yj0xODticmVha31zd2l0Y2goMHxmZVtEKygwfEp0W0E+PjBdKT4+MF0pe2Nhc2UgMTA6Y2FzZSAyMTpjb250aW51ZSB0O2Nhc2UgOTpi''@;'; + put 'put ''cmVhaztkZWZhdWx0OmI9MTc7YnJlYWsgdH1pZigobSsyfDApPT0oMHxmKSl7Yj0xNzticmVha319aWYoMTc9PSgwfGIpKXthW3A+PjJdPUEsbT0xNTticmVha31pZigxOD09KDB8Yikpe2FbcD4+Ml09QSxtPTE1O2JyZWFrfX1iPWwrMzI4fDAsaz1sKzMzMnwwLE09bCszMzZ8MCx3PWMrQXww''@;'; + put 'put ''O3Q6Zm9yKDs7KXtpZigoMHwoQT1mLXd8MCkpPD0wKXtiPTk5O2JyZWFrfXN3aXRjaCgwfGZlW0QrKDB8SnRbdz4+MF0pPj4wXSl7Y2FzZSAyOTpiPTU2O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpjYXNlIDMwOmNhc2UgMjA6Y2FzZSAzNjpjYXNlIDM1OmNhc2UgMzI6Y2FzZSAx''@;'; + put 'put ''MTpiPTcwO2JyZWFrIHQ7Y2FzZSAzNDpiPTg5O2JyZWFrIHQ7Y2FzZSAzMzpiPTkyO2JyZWFrIHQ7Y2FzZSAxNTpiPTk1O2JyZWFrIHQ7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOnc9dysxfDAsbT1jPW07Y29udGludWUgdDtjYXNlIDU6aWYoKDB8QSk8Mil7bT0t''@;'; + put 'put ''MjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtiPj4yXV0obCx3KSkpe2I9NjA7YnJlYWsgdH13PXcrMnwwLG09Yz1tO2NvbnRpbnVlIHQ7Y2FzZSA2OmlmKCgwfEEpPDMpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbaz4+Ml1dKGwsdykpKXtiPTY0O2JyZWFrIHR9dz13KzN8MCxtPWM9''@;'; + put 'put ''bTtjb250aW51ZSB0O2Nhc2UgNzppZigoMHxBKTw0KXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW00+PjJdXShsLHcpKSl7Yj02ODticmVhayB0fXc9dys0fDAsbT1jPW07Y29udGludWUgdDtjYXNlIDIzOnN3aXRjaChBPXcrMXwwLDYzJm0pe2Nhc2UgMTg6YnJlYWs7Y2FzZSA0MTpt''@;'; + put 'put ''PTE5LHc9QTtjb250aW51ZSB0O2RlZmF1bHQ6dz1BLG09Yz1tO2NvbnRpbnVlIHR9aWYoKDB8KG09Zi1BfDApKTw9MCl7bT0tMTticmVhayBlfXN3aXRjaCgwfGZlW0QrKDB8SnRbQT4+MF0pPj4wXSl7Y2FzZSAyOTpiPTc0O2JyZWFrIHQ7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAy''@;'; + put 'put ''NDpjYXNlIDIyOm09NDEsdz13KzJ8MDtjb250aW51ZSB0O2Nhc2UgNTppZigoMHxtKTwyKXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2I+PjJdXShsLEEpKSl7Yj03ODticmVhayB0fW09NDEsdz13KzN8MDtjb250aW51ZSB0O2Nhc2UgNjppZigoMHxtKTwzKXttPS0yO2JyZWFrIGV9''@;'; + put 'put ''aWYoISgwfEJpWzEyNyZhW2s+PjJdXShsLEEpKSl7Yj04MjticmVhayB0fW09NDEsdz13KzR8MDtjb250aW51ZSB0O2Nhc2UgNzppZigoMHxtKTw0KXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW00+PjJdXShsLEEpKSl7Yj04NjticmVhayB0fW09NDEsdz13KzV8MDtjb250aW51ZSB0''@;'; + put 'put ''O2RlZmF1bHQ6bT0xOSx3PUE7Y29udGludWUgdH1kZWZhdWx0OmI9OTg7YnJlYWsgdH19c3dpdGNoKDB8Yil7Y2FzZSA1NjpjYXNlIDYwOmNhc2UgNjQ6Y2FzZSA2ODpjYXNlIDk4OmFbcD4+Ml09dyxtPTA7YnJlYWsgZTtjYXNlIDcwOmFbcD4+Ml09dzticmVhayBlO2Nhc2UgNzQ6Y2FzZSA3''@;'; + put 'put ''ODpjYXNlIDgyOmNhc2UgODY6YVtwPj4yXT1BLG09MDticmVhayBlO2Nhc2UgODk6aWYoMTk9PSgwfG0pKXthW3A+PjJdPXcsbT0wO2JyZWFrIGV9YVtwPj4yXT13KzEsbT0zMjticmVhayBlO2Nhc2UgOTI6aWYoMTk9PSgwfG0pKXthW3A+PjJdPXcsbT0wO2JyZWFrIGV9YVtwPj4yXT13KzEs''@;'; + put 'put ''bT0zMTticmVhayBlO2Nhc2UgOTU6aWYoMTk9PSgwfG0pKXthW3A+PjJdPXcsbT0wO2JyZWFrIGV9YVtwPj4yXT13KzEsbT0zMDticmVhayBlO2Nhc2UgOTk6bT0wLW18MDticmVhayBlfX1lbHNlIG09LTR9d2hpbGUoMCk7cmV0dXJuIDB8bX0sZnVuY3Rpb24gdGMobCxjLGYscCl7bHw9MCxj''@;'; + put 'put ''fD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7ZTpkb3tpZihjPj4+MDxmPj4+MCl7TT1sKzcyfDA7dDpkb3tzd2l0Y2goMHxmZVtNKygwfEp0W2M+PjBdKT4+MF0pe2Nhc2UgMjptPTB8UHZlKGwsYysxfDAsZixwKTticmVhayBlO2Nhc2UgMzptPTB8ZUwobCxjKzF8''@;'; + put 'put ''MCxmLHApO2JyZWFrIGU7Y2FzZSA5OmlmKChmLShtPWMrMXwwKXwwKTw9MCl7bT0tMzticmVhayBlfWFbcD4+Ml09MTA9PSgwfGZlW00rKDB8SnRbbT4+MF0pPj4wXSk/YysyfDA6bSxtPTc7YnJlYWsgZTtjYXNlIDEwOmFbcD4+Ml09YysxLG09NzticmVhayBlO2Nhc2UgNDppZigoZi0oQT1j''@;'; + put 'put ''KzF8MCl8MCk8PTApe209LTU7YnJlYWsgZX1pZig5Mz09KDB8ZmVbQT4+MF0pKXtpZigoZi0obT1jKzJ8MCl8MCk8PTApe209LTU7YnJlYWsgZX1pZig2Mj09KDB8ZmVbbT4+MF0pKXthW3A+PjJdPW0sbT0wO2JyZWFrIGV9bT1mfWVsc2UgbT1mO2JyZWFrO2Nhc2UgNTppZigoKG09ZiktY3ww''@;'; + put 'put ''KTwyKXttPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtsKzM1Mj4+Ml1dKGwsYykpe2FbcD4+Ml09YyxtPTA7YnJlYWsgZX1BPWMrMnwwO2JyZWFrIHQ7Y2FzZSA2OmlmKCgobT1mKS1jfDApPDMpe209LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW2wrMzU2Pj4yXV0obCxjKSl7YVtwPj4yXT1j''@;'; + put 'put ''LG09MDticmVhayBlfUE9YyszfDA7YnJlYWsgdDtjYXNlIDc6aWYoKChtPWYpLWN8MCk8NCl7bT0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbbCszNjA+PjJdXShsLGMpKXthW3A+PjJdPWMsbT0wO2JyZWFrIGV9QT1jKzR8MDticmVhayB0O2Nhc2UgODpjYXNlIDE6Y2FzZSAwOmFbcD4+Ml09''@;'; + put 'put ''YyxtPTA7YnJlYWsgZTtkZWZhdWx0OkE9YysxfDAsbT1mfX13aGlsZSgwKTt3PWwrMzUyfDAsYj1sKzM1NnwwLGs9bCszNjB8MDt0OmZvcig7Oyl7aWYoKDB8KGY9bS1BfDApKTw9MCl7Zj00OTticmVha31zd2l0Y2goMHxmZVtNKygwfEp0W0E+PjBdKT4+MF0pe2Nhc2UgMTA6Y2FzZSA5OmNh''@;'; + put 'put ''c2UgODpjYXNlIDE6Y2FzZSAwOmNhc2UgMjpjYXNlIDM6Zj00NzticmVhayB0O2Nhc2UgNTppZigoMHxmKTwyKXtmPTMyO2JyZWFrIHR9aWYoMHxCaVsxMjcmYVt3Pj4yXV0obCxBKSl7Zj0zMjticmVhayB0fUE9QSsyfDA7Y29udGludWUgdDtjYXNlIDY6aWYoKDB8Zik8Myl7Zj0zNjticmVh''@;'; + put 'put ''ayB0fWlmKDB8QmlbMTI3JmFbYj4+Ml1dKGwsQSkpe2Y9MzY7YnJlYWsgdH1BPUErM3wwO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfGYpPDQpe2Y9NDA7YnJlYWsgdH1pZigwfEJpWzEyNyZhW2s+PjJdXShsLEEpKXtmPTQwO2JyZWFrIHR9QT1BKzR8MDtjb250aW51ZSB0O2Nhc2UgNDppZigo''@;'; + put 'put ''MHxmKTw9MSl7Zj00NzticmVhayB0fWlmKDkzIT0oMHxmZVsoYz1BKzF8MCk+PjBdKSl7QT1jO2NvbnRpbnVlIHR9aWYoKDB8Zik8PTIpe2Y9NDc7YnJlYWsgdH1pZig2Mj09KDB8ZmVbKEE9QSsyfDApPj4wXSkpe2Y9NDY7YnJlYWsgdH1BPWM7Y29udGludWUgdDtkZWZhdWx0OkE9QSsxfDA7''@;'; + put 'put ''Y29udGludWUgdH19aWYoMzI9PSgwfGYpKXthW3A+PjJdPUEsbT02O2JyZWFrfWlmKDM2PT0oMHxmKSl7YVtwPj4yXT1BLG09NjticmVha31pZig0MD09KDB8Zikpe2FbcD4+Ml09QSxtPTY7YnJlYWt9aWYoNDY9PSgwfGYpKXthW3A+PjJdPUEsbT0wO2JyZWFrfWlmKDQ3PT0oMHxmKSl7YVtw''@;'; + put 'put ''Pj4yXT1BLG09NjticmVha31pZig0OT09KDB8Zikpe2FbcD4+Ml09QSxtPTY7YnJlYWt9fWVsc2UgbT0tNH13aGlsZSgwKTtyZXR1cm4gMHxtfSxmdW5jdGlvbiB4NihsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wO2U6ZG97aWYoYz4+PjA8Zj4+''@;'; + put 'put ''PjApe2s9bCs3MnwwO3Q6ZG97c3dpdGNoKDB8ZmVbaysoMHxKdFtjPj4wXSk+PjBdKXtjYXNlIDQ6aWYoKChtPWYpLShBPWMrMXwwKXwwKTw9MCl7bT0tMTticmVhayBlfWlmKDkzPT0oMHxmZVtBPj4wXSkpe2lmKChtLShmPWMrMnwwKXwwKTw9MCl7bT0tMTticmVhayBlfWlmKDYyPT0oMHxm''@;'; + put 'put ''ZVtmPj4wXSkpe2FbcD4+Ml09YyszLG09NDA7YnJlYWsgZX19YnJlYWs7Y2FzZSA5OmlmKChmLShtPWMrMXwwKXwwKTw9MCl7bT0tMTticmVhayBlfWFbcD4+Ml09MTA9PSgwfGZlW2srKDB8SnRbbT4+MF0pPj4wXSk/YysyfDA6bSxtPTc7YnJlYWsgZTtjYXNlIDEwOmFbcD4+Ml09YysxLG09''@;'; + put 'put ''NzticmVhayBlO2Nhc2UgNTppZigoKG09ZiktY3wwKTwyKXttPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtsKzM1Mj4+Ml1dKGwsYykpe2FbcD4+Ml09YyxtPTA7YnJlYWsgZX1BPWMrMnwwO2JyZWFrIHQ7Y2FzZSA2OmlmKCgobT1mKS1jfDApPDMpe209LTI7YnJlYWsgZX1pZigwfEJpWzEy''@;'; + put 'put ''NyZhW2wrMzU2Pj4yXV0obCxjKSl7YVtwPj4yXT1jLG09MDticmVhayBlfUE9YyszfDA7YnJlYWsgdDtjYXNlIDc6aWYoKChtPWYpLWN8MCk8NCl7bT0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbbCszNjA+PjJdXShsLGMpKXthW3A+PjJdPWMsbT0wO2JyZWFrIGV9QT1jKzR8MDticmVhayB0''@;'; + put 'put ''O2Nhc2UgODpjYXNlIDE6Y2FzZSAwOmFbcD4+Ml09YyxtPTA7YnJlYWsgZTtkZWZhdWx0OkE9YysxfDAsbT1mfX13aGlsZSgwKTtjPWwrMzUyfDAsdz1sKzM1NnwwLGI9bCszNjB8MDt0OmZvcig7Oyl7aWYoKDB8KGY9bS1BfDApKTw9MCl7Zj0zOTticmVha31zd2l0Y2goMHxmZVtrKygwfEp0''@;'; + put 'put ''W0E+PjBdKT4+MF0pe2Nhc2UgNDpjYXNlIDEwOmNhc2UgOTpjYXNlIDg6Y2FzZSAxOmNhc2UgMDpmPTM3O2JyZWFrIHQ7Y2FzZSA1OmlmKCgwfGYpPDIpe2Y9MzA7YnJlYWsgdH1pZigwfEJpWzEyNyZhW2M+PjJdXShsLEEpKXtmPTMwO2JyZWFrIHR9Zj0yO2JyZWFrO2Nhc2UgNjppZigoMHxm''@;'; + put 'put ''KTwzKXtmPTMzO2JyZWFrIHR9aWYoMHxCaVsxMjcmYVt3Pj4yXV0obCxBKSl7Zj0zMzticmVhayB0fWY9MzticmVhaztjYXNlIDc6aWYoKDB8Zik8NCl7Zj0zNjticmVhayB0fWlmKDB8QmlbMTI3JmFbYj4+Ml1dKGwsQSkpe2Y9MzY7YnJlYWsgdH1mPTQ7YnJlYWs7ZGVmYXVsdDpmPTF9QT1B''@;'; + put 'put ''K2Z8MH1pZigzMD09KDB8Zikpe2FbcD4+Ml09QSxtPTY7YnJlYWt9aWYoMzM9PSgwfGYpKXthW3A+PjJdPUEsbT02O2JyZWFrfWlmKDM2PT0oMHxmKSl7YVtwPj4yXT1BLG09NjticmVha31pZigzNz09KDB8Zikpe2FbcD4+Ml09QSxtPTY7YnJlYWt9aWYoMzk9PSgwfGYpKXthW3A+PjJdPUEs''@;'; + put 'put ''bT02O2JyZWFrfX1lbHNlIG09LTR9d2hpbGUoMCk7cmV0dXJuIDB8bX0sZnVuY3Rpb24gZDFlKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciB3LGIsayxNLG09MCxBPTAsRD0wLFI9MDt3PTcyKyhsfD0wKXwwLGI9bCszNTJ8MCxrPWwrMzU2fDAsTT1sKzM2MHwwLEE9MDtlOmZvcig7Oyl7''@;'; + put 'put ''aWYoKDB8KG09Zi1jfDApKTw9MCl7Zj0tMTticmVha31zd2l0Y2goMHxmZVt3KygwfEp0W2M+PjBdKT4+MF0pe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOkQ9MTY7YnJlYWsgZTtjYXNlIDU6aWYoKDB8bSk8Mil7Zj0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbYj4+Ml1dKGwsYykpe0Q9NjticmVh''@;'; + put 'put ''ayBlfWM9YysyfDAsQT1tPUE7Y29udGludWUgZTtjYXNlIDY6aWYoKDB8bSk8Myl7Zj0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbaz4+Ml1dKGwsYykpe0Q9MTA7YnJlYWsgZX1jPWMrM3wwLEE9bT1BO2NvbnRpbnVlIGU7Y2FzZSA3OmlmKCgwfG0pPDQpe2Y9LTI7YnJlYWsgZX1pZigwfEJp''@;'; + put 'put ''WzEyNyZhW00+PjJdXShsLGMpKXtEPTE0O2JyZWFrIGV9Yz1jKzR8MCxBPW09QTtjb250aW51ZSBlO2Nhc2UgMjppZigoZi0obT1jKzF8MCl8MCk8PTApe2Y9LTE7YnJlYWsgZX1pZigzMyE9KDB8ZmVbbT4+MF0pKXtjPW0sQT1SPUE7Y29udGludWUgZX1pZigoZi0obT1jKzJ8MCl8MCk8PTAp''@;'; + put 'put ''e2Y9LTE7YnJlYWsgZX1BPUErKDEmKFI9OTE9PSgwfGZlW20+PjBdKSkpfDAsYz1SP2MrM3wwOm07Y29udGludWUgZTtjYXNlIDQ6aWYoKGYtKG09YysxfDApfDApPD0wKXtmPS0xO2JyZWFrIGV9aWYoOTMhPSgwfGZlW20+PjBdKSl7Yz1tLEE9Uj1BO2NvbnRpbnVlIGV9aWYoKGYtKG09Yysy''@;'; + put 'put ''fDApfDApPD0wKXtmPS0xO2JyZWFrIGV9aWYoNjIhPSgwfGZlW20+PjBdKSl7Yz1tLEE9Uj1BO2NvbnRpbnVlIGV9aWYoYz1jKzN8MCwhQSl7RD0yNjticmVhayBlfUE9QSstMXwwO2NvbnRpbnVlIGU7ZGVmYXVsdDpjPWMrMXwwLEE9Uj1BO2NvbnRpbnVlIGV9fXJldHVybiA2PT0oMHxEKXx8''@;'; + put 'put ''MTA9PSgwfEQpfHwxND09KDB8RCl8fDE2PT0oMHxEKT8oYVtwPj4yXT1jLGY9MCk6MjY9PSgwfEQpJiYoYVtwPj4yXT1jLGY9NDIpLDB8Zn0sZnVuY3Rpb24gWXkobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDtkb3tpZihjPj4+MDxmPj4+MClp''@;'; + put 'put ''ZigoKGI9ZiktY3wwKT4wKXtrPWwrNzJ8MCxBPWM7ZTpmb3IoOzspe2lmKChiLUF8MCk8PTApe3c9MjQ7YnJlYWt9c3dpdGNoKDB8ZmVbaysoMHxKdFtBPj4wXSk+PjBdKXtjYXNlIDM6dz04O2JyZWFrIGU7Y2FzZSAyOnc9MTE7YnJlYWsgZTtjYXNlIDEwOnc9MTI7YnJlYWsgZTtjYXNlIDk6''@;'; + put 'put ''dz0xNTticmVhayBlO2Nhc2UgMjE6dz0xOTticmVhayBlO2Nhc2UgNTptPTI7YnJlYWs7Y2FzZSA2Om09MzticmVhaztjYXNlIDc6bT00O2JyZWFrO2RlZmF1bHQ6bT0xfUE9QSttfDB9aWYoOD09KDB8dykpe2lmKCgwfEEpPT0oMHxjKSl7bT0wfGVMKGwsYysxfDAsZixwKTticmVha31hW3A+''@;'; + put 'put ''PjJdPUEsbT02O2JyZWFrfWlmKDExPT0oMHx3KSl7YVtwPj4yXT1BLG09MDticmVha31pZigxMj09KDB8dykpe2lmKCgwfEEpPT0oMHxjKSl7YVtwPj4yXT1jKzEsbT03O2JyZWFrfWFbcD4+Ml09QSxtPTY7YnJlYWt9aWYoMTU9PSgwfHcpKXtpZigoMHxBKSE9KDB8Yykpe2FbcD4+Ml09QSxt''@;'; + put 'put ''PTY7YnJlYWt9aWYoKGItKG09YysxfDApfDApPD0wKXttPS0zO2JyZWFrfWFbcD4+Ml09MTA9PSgwfGZlW2srKDB8SnRbbT4+MF0pPj4wXSk/YysyfDA6bSxtPTc7YnJlYWt9aWYoMTk9PSgwfHcpKXtpZigoMHxBKT09KDB8Yykpe2FbcD4+Ml09YysxLG09Mzk7YnJlYWt9YVtwPj4yXT1BLG09''@;'; + put 'put ''NjticmVha31pZigyND09KDB8dykpe2FbcD4+Ml09QSxtPTY7YnJlYWt9fWVsc2UgbT0tMTtlbHNlIG09LTR9d2hpbGUoMCk7cmV0dXJuIDB8bX0sZnVuY3Rpb24gTnUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDtkb3tpZihjPj4+MDxmPj4+''@;'; + put 'put ''MClpZigoKGI9ZiktY3wwKT4wKXtrPWwrNzJ8MCxBPWM7ZTpmb3IoOzspe2lmKChiLUF8MCk8PTApe3c9MjM7YnJlYWt9c3dpdGNoKDB8ZmVbaysoMHxKdFtBPj4wXSk+PjBdKXtjYXNlIDM6dz04O2JyZWFrIGU7Y2FzZSAzMDp3PTExO2JyZWFrIGU7Y2FzZSAxMDp3PTE0O2JyZWFrIGU7Y2Fz''@;'; + put 'put ''ZSA5Onc9MTc7YnJlYWsgZTtjYXNlIDU6bT0yO2JyZWFrO2Nhc2UgNjptPTM7YnJlYWs7Y2FzZSA3Om09NDticmVhaztkZWZhdWx0Om09MX1BPUErbXwwfWlmKDg9PSgwfHcpKXtpZigoMHxBKT09KDB8Yykpe209MHxlTChsLGMrMXwwLGYscCk7YnJlYWt9YVtwPj4yXT1BLG09NjticmVha31p''@;'; + put 'put ''ZigxMT09KDB8dykpe2lmKCgwfEEpPT0oMHxjKSl7bT0yMj09KDB8KG09MHxpaihsLGMrMXwwLGYscCkpKT8wOm07YnJlYWt9YVtwPj4yXT1BLG09NjticmVha31pZigxND09KDB8dykpe2lmKCgwfEEpPT0oMHxjKSl7YVtwPj4yXT1jKzEsbT03O2JyZWFrfWFbcD4+Ml09QSxtPTY7YnJlYWt9''@;'; + put 'put ''aWYoMTc9PSgwfHcpKXtpZigoMHxBKSE9KDB8Yykpe2FbcD4+Ml09QSxtPTY7YnJlYWt9aWYoKGItKG09YysxfDApfDApPD0wKXttPS0zO2JyZWFrfWFbcD4+Ml09MTA9PSgwfGZlW2srKDB8SnRbbT4+MF0pPj4wXSk/YysyfDA6bSxtPTc7YnJlYWt9aWYoMjM9PSgwfHcpKXthW3A+PjJdPUEs''@;'; + put 'put ''bT02O2JyZWFrfX1lbHNlIG09LTE7ZWxzZSBtPS00fXdoaWxlKDApO3JldHVybiAwfG19LGZ1bmN0aW9uIElLKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbSxBPTA7Zm9yKG09Znw9MCxsPWN8PTA7Oyl7aWYoISgoYz0wfGZlW3A+PjBdKTw8MjQ+PjI0KSl7QT02O2JyZWFrfWlmKChtLWx8MCk8''@;'; + put 'put ''MSl7bD0wO2JyZWFrfWlmKCgwfGZlW2w+PjBdKSE9Yzw8MjQ+PjI0KXtsPTA7YnJlYWt9cD1wKzF8MCxsPWwrMXwwfXJldHVybiA2PT0oMHxBKSYmKGw9KDB8bCk9PSgwfGYpJjEpLDB8bH0sZnVuY3Rpb24gTEsobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGssbT0wLEE9MCx3PTAsYj0w''@;'; + put 'put ''LE09MDtrPTcyKyhsfD0wKXwwLHc9MCxiPTAsbD0xO2U6Zm9yKDs7KXN3aXRjaCgwfGZlW2srKDI1NSYoQT0wfGZlWyhtPWMrMXwwKT4+MF0pKT4+MF0pe2Nhc2UgNTpsfHwoKDB8Yik8KDB8ZikmJihhW3ArKGI8PDQpPj4yXT1tLGZlW3ArKGI8PDQpKzEyPj4wXT0xKSxsPTEpLGM9YysyfDAs''@;'; + put 'put ''Yj1tPWIsdz1BPXc7Y29udGludWUgZTtjYXNlIDY6bHx8KCgwfGIpPCgwfGYpJiYoYVtwKyhiPDw0KT4+Ml09bSxmZVtwKyhiPDw0KSsxMj4+MF09MSksbD0xKSxjPWMrM3wwLGI9bT1iLHc9QT13O2NvbnRpbnVlIGU7Y2FzZSA3Omx8fCgoMHxiKTwoMHxmKSYmKGFbcCsoYjw8NCk+PjJdPW0s''@;'; + put 'put ''ZmVbcCsoYjw8NCkrMTI+PjBdPTEpLGw9MSksYz1jKzR8MCxiPW09Yix3PUE9dztjb250aW51ZSBlO2Nhc2UgMjQ6Y2FzZSAyMjpjYXNlIDI5OmlmKDB8bCl7Yz1tLHc9QT13O2NvbnRpbnVlIGV9aWYoKDB8Yik+PSgwfGYpKXtsPTEsYz1tO2NvbnRpbnVlIGV9YVtwKyhiPDw0KT4+Ml09bSxm''@;'; + put 'put ''ZVtwKyhiPDw0KSsxMj4+MF09MSxsPTEsYz1tO2NvbnRpbnVlIGU7Y2FzZSAxMjppZigyIT0oMHxsKSl7aWYoKDB8Yik+PSgwfGYpKXt3PTEyLGw9MixjPW07Y29udGludWUgZX1hW3ArKGI8PDQpKzQ+PjJdPWMrMix3PTEyLGw9MixjPW07Y29udGludWUgZX1pZigxMiE9KDB8dykpe2w9Mixj''@;'; + put 'put ''PW07Y29udGludWUgZX0oMHxiKTwoMHxmKSYmKGFbcCsoYjw8NCkrOD4+Ml09bSksdz0xMixiPWIrMXwwLGw9MCxjPW07Y29udGludWUgZTtjYXNlIDEzOmlmKDIhPSgwfGwpKXtpZigoMHxiKT49KDB8Zikpe3c9MTMsbD0yLGM9bTtjb250aW51ZSBlfWFbcCsoYjw8NCkrND4+Ml09YysyLHc9''@;'; + put 'put ''MTMsbD0yLGM9bTtjb250aW51ZSBlfWlmKDEzIT0oMHx3KSl7bD0yLGM9bTtjb250aW51ZSBlfSgwfGIpPCgwfGYpJiYoYVtwKyhiPDw0KSs4Pj4yXT1tKSx3PTEzLGI9YisxfDAsbD0wLGM9bTtjb250aW51ZSBlO2Nhc2UgMzppZigoMHxiKT49KDB8Zikpe2M9bSxsPUE9bDtjb250aW51ZSBl''@;'; + put 'put ''fWZlW3ArKGI8PDQpKzEyPj4wXT0wLGM9bSxsPUE9bDtjb250aW51ZSBlO2Nhc2UgMjE6c3dpdGNoKDB8bCl7Y2FzZSAxOmw9MCxjPW07Y29udGludWUgZTtjYXNlIDI6YnJlYWs7ZGVmYXVsdDpjPW0sbD1BPWw7Y29udGludWUgZX1pZigoMHxiKT49KDB8Zikpe2w9MixjPW07Y29udGludWUg''@;'; + put 'put ''ZX1pZighKDB8ZmVbKGw9cCsoYjw8NCkrMTJ8MCk+PjBdKSl7bD0yLGM9bTtjb250aW51ZSBlfWlmKEE8PDI0Pj4yND09MzImJigwfG0pIT0oMHxhW3ArKGI8PDQpKzQ+PjJdKSYmKE09MHxmZVtjKzI+PjBdKTw8MjQ+PjI0IT0zMiYmKDB8dykhPSgwfEp0W2srKDI1NSZNKT4+MF0pKXtsPTIs''@;'; + put 'put ''Yz1tO2NvbnRpbnVlIGV9ZmVbbD4+MF09MCxsPTIsYz1tO2NvbnRpbnVlIGU7Y2FzZSAxMDpjYXNlIDk6c3dpdGNoKDB8bCl7Y2FzZSAxOmw9MCxjPW07Y29udGludWUgZTtjYXNlIDI6YnJlYWs7ZGVmYXVsdDpjPW0sbD1BPWw7Y29udGludWUgZX1pZigoMHxiKT49KDB8Zikpe2w9MixjPW07''@;'; + put 'put ''Y29udGludWUgZX1mZVtwKyhiPDw0KSsxMj4+MF09MCxsPTIsYz1tO2NvbnRpbnVlIGU7Y2FzZSAxNzpjYXNlIDExOmlmKDI9PSgwfGwpKXtsPTIsYz1tO2NvbnRpbnVlIGV9YnJlYWsgZTtkZWZhdWx0OmM9bSxsPUE9bDtjb250aW51ZSBlfXJldHVybiAwfGJ9LGZ1bmN0aW9uIFF5KGwsYyxm''@;'; + put 'put ''LHApe2N8PTAscHw9MDt2YXIgbSxBPTA7bT0oZnw9MCktMXwwLGw9NzIrKGx8PTApfDA7ZTpmb3IoOzspe2lmKChtLShjPWMrMXwwKXwwKTw9MCl7Yz0xO2JyZWFrfXN3aXRjaCgwfGZlW2wrKDI1NSYoZj0wfGZlW2M+PjBdKSk+PjBdKXtjYXNlIDIzOmNhc2UgMTk6Y2FzZSAzMDpjYXNlIDMz''@;'; + put 'put ''OmNhc2UgMTY6Y2FzZSAxODpjYXNlIDEwOmNhc2UgOTpjYXNlIDE1OmNhc2UgMTQ6Y2FzZSAxNzpjYXNlIDM1OmNhc2UgMzQ6Y2FzZSAzMjpjYXNlIDMxOmNhc2UgMTM6Y2FzZSAyNzpjYXNlIDI0OmNhc2UgMjU6Y29udGludWUgZTtjYXNlIDIxOmlmKGY8PDI0Pj4yND09OSl7QT03O2JyZWFr''@;'; + put 'put ''IGV9Y29udGludWUgZTtjYXNlIDIyOmNhc2UgMjY6aWYoZjw8MjQ+PjI0Pj0wKWNvbnRpbnVlIGV9c3dpdGNoKGY8PDI0Pj4yNHwwKXtjYXNlIDY0OmNhc2UgMzY6YnJlYWs7ZGVmYXVsdDpBPTc7YnJlYWsgZX19cmV0dXJuIDc9PSgwfEEpJiYoYVtwPj4yXT1jLGM9MCksMHxjfSxmdW5jdGlv''@;'; + put 'put ''biBRdmUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7ZTpkb3tpZihjPj4+MDxmPj4+MClpZihBPWMsTT1mLUF8MCxiPTA9PSgxJk18MCksTSY9LTIsaz0wPT0oMHxNKSxNPWJ8az9mOmMrTXwwLGJ8MV5rKXtzd2l0Y2goKGY9MHxmZVtj''@;'; + put 'put ''Pj4wXSk8PDI0Pj4yND8odz1tPTB8ZmVbYysxPj4wXSxtPTB8ZjAoZixtKSk6KHc9bT0wfGZlW2MrMT4+MF0sbT0wfEp0W2wrNzIrKDI1NSZtKT4+MF0pLDB8bSl7Y2FzZSAxMjpmPTB8cmQoMTIsbCxjKzJ8MCxNLHApO2JyZWFrIGU7Y2FzZSAxMzpmPTB8cmQoMTMsbCxjKzJ8MCxNLHApO2Jy''@;'; + put 'put ''ZWFrIGU7Y2FzZSAyOmlmKChNLShtPWMrMnwwKXwwKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaCgwfChmPShmPTB8ZmVbbT4+MF0pPDwyND4+MjQ/MHxmMChmLDB8ZmVbYyszPj4wXSk6MHxKdFtsKzcyKygwfEp0W2MrMz4+MF0pPj4wXSkpe2Nhc2UgMTY6Zj0wfG9MKGwsYys0fDAsTSxwKTti''@;'; + put 'put ''cmVhayBlO2Nhc2UgMTU6Zj0wfFFLKGwsYys0fDAsTSxwKTticmVhayBlO2Nhc2UgNzpjYXNlIDY6Y2FzZSA1OmNhc2UgMjk6Y2FzZSAyNDpjYXNlIDIyOmFbcD4+Ml09YyxmPTI5O2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPW0sZj0wO2JyZWFrIGV9Y2FzZSA5OmlmKChjKzJ8MCk9PSgwfE0p''@;'; + put 'put ''KXthW3A+PjJdPU0sZj0tMTU7YnJlYWsgZX1BPTc7YnJlYWs7Y2FzZSAxMDpjYXNlIDIxOkE9NzticmVhaztjYXNlIDMwOmY9MHxWMWUobCxjKzJ8MCxNLHApO2JyZWFrIGU7Y2FzZSAzNTphW3A+PjJdPWMrMixmPTM4O2JyZWFrIGU7Y2FzZSAyMDphW3A+PjJdPWMrMixmPTI1O2JyZWFrIGU7''@;'; + put 'put ''Y2FzZSA0OmlmKCgwfChmPU0tKG09YysyfDApfDApKTw9MSl7Zj0tMjY7YnJlYWsgZX1pZigwPT0oMHxmZVttPj4wXSkmJjkzPT0oMHxmZVtjKzM+PjBdKSl7aWYoKDB8Zik8PTMpe2Y9LTE7YnJlYWsgZX1pZigwPT0oMHxmZVtjKzQ+PjBdKSYmNjI9PSgwfGZlW2MrNT4+MF0pKXthW3A+PjJd''@;'; + put 'put ''PWMrNixmPTM0O2JyZWFrIGV9fWFbcD4+Ml09bSxmPTI2O2JyZWFrIGU7Y2FzZSAzMTphW3A+PjJdPWMrMixmPTIzO2JyZWFrIGU7Y2FzZSAzMjppZigoTS0obT1jKzJ8MCl8MCk8PTEpe2Y9LTI0O2JyZWFrIGV9c3dpdGNoKDB8KGY9KGY9MHxmZVttPj4wXSk8PDI0Pj4yND8wfGYwKGYsMHxm''@;'; + put 'put ''ZVtjKzM+PjBdKTowfEp0W2wrNzIrKDB8SnRbYyszPj4wXSk+PjBdKSl7Y2FzZSAzMzphW3A+PjJdPWMrNCxmPTM2O2JyZWFrIGU7Y2FzZSAxNTphW3A+PjJdPWMrNCxmPTM1O2JyZWFrIGU7Y2FzZSAzNDphW3A+PjJdPWMrNCxmPTM3O2JyZWFrIGU7Y2FzZSAzMjpjYXNlIDM2OmNhc2UgMzU6''@;'; + put 'put ''Y2FzZSAxMTpjYXNlIDIxOmNhc2UgMTA6Y2FzZSA5OmFbcD4+Ml09bSxmPTI0O2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPW0sZj0wO2JyZWFrIGV9Y2FzZSAzNjphW3A+PjJdPWMrMixmPTIxO2JyZWFrIGU7Y2FzZSAxMTphW3A+PjJdPWMrMixmPTE3O2JyZWFrIGU7Y2FzZSAxOTpmPTB8cjko''@;'; + put 'put ''bCxjKzJ8MCxNLHApO2JyZWFrIGU7Y2FzZSA1OmlmKChNLUF8MCk8Mil7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDY6aWYoKE0tQXwwKTwzKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgNzppZigoTS1BfDApPDQpe2Y9LTI7YnJlYWsg''@;'; + put 'put ''ZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOmY9MTgsQT02MTticmVhaztjYXNlIDIzOmNhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmY9MTksQT02MTticmVhaztjYXNlIDI5OkE9MjU1JmYsZj0obT0yNTUmdyk+Pj41LChtPTE8PCgzMSZtKSkmYVs1Njk0MCsoKGZ8SnRb''@;'; + put 'put ''MTQzNzg4K0E+PjBdPDwzKTw8Mik+PjJdPyhmPTE4LEE9NjEpOmFbNTY5NDArKChKdFsxNDQwNDQrQT4+MF08PDN8Zik8PDIpPj4yXSZtPyhmPTE5LEE9NjEpOkE9NjQ7YnJlYWs7ZGVmYXVsdDpBPTY0fWlmKDc9PSgwfEEpKXtiPU0sbD1sKzcyfDAsdz1jO3Q6Zm9yKDs7KXtpZihBPXcsKGIt''@;'; + put 'put ''KHc9dysyfDApfDApPD0xKXtBPTI4O2JyZWFrfXN3aXRjaChtPTB8ZmVbQSszPj4wXSwwfChmPShmPTB8ZmVbdz4+MF0pPDwyND4+MjQ/MHxmMChmLG0pOjB8SnRbbCsoMjU1Jm0pPj4wXSkpe2Nhc2UgMTA6Y2FzZSAyMTpjb250aW51ZSB0O2Nhc2UgOTpicmVhaztkZWZhdWx0OkE9Mjc7YnJl''@;'; + put 'put ''YWsgdH1pZigoQSs0fDApPT0oMHxNKSl7QT0yNzticmVha319aWYoMjc9PSgwfEEpKXthW3A+PjJdPXcsZj0xNTticmVha31pZigyOD09KDB8QSkpe2FbcD4+Ml09dyxmPTE1O2JyZWFrfX1lbHNlIGlmKDYxPT0oMHxBKSl7az1sKzcyfDAsbT1jKzJ8MDt0OmZvcig7Oyl7Yz0yNTUmZjtuOmZv''@;'; + put 'put ''cig7Oyl7aWYoKDB8KGI9TS1tfDApKTw9MSl7QT0xMDQ7YnJlYWsgdH1zd2l0Y2godz0wfGZlW20rMT4+MF0sMHwobD0oQT0wfGZlW20+PjBdKTw8MjQ+PjI0PzB8ZjAoQSx3KTowfEp0W2srKDI1NSZ3KT4+MF0pKXtjYXNlIDU6QT03MzticmVhayB0O2Nhc2UgNjpBPTc0O2JyZWFrIHQ7Y2Fz''@;'; + put 'put ''ZSA3OkE9NzY7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOmNhc2UgMzA6Y2FzZSAyMDpjYXNlIDM2OmNhc2UgMzU6Y2FzZSAzMjpjYXNlIDExOkE9Nzg7YnJlYWsgdDtjYXNlIDM0OkE9OTQ7YnJlYWsgdDtjYXNlIDMzOkE9OTc7YnJlYWsgdDtjYXNlIDE1OkE9MTAwO2JyZWFrIHQ7''@;'; + put 'put ''Y2FzZSAyOTppZighKDE8PCgzMSYoYj0yNTUmdykpJmFbNTY5NDArKChiPj4+NXxKdFsxNDQwNDQrKDI1NSZBKT4+MF08PDMpPDwyKT4+Ml0pKXtBPTcxO2JyZWFrIHR9YnJlYWs7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2Nhc2UgMjM6c3dpdGNoKGI9''@;'; + put 'put ''bSsyfDAsNjMmYyl7Y2FzZSA0MTpmPTE5LG09Yjtjb250aW51ZSB0O2Nhc2UgMTg6YnJlYWsgbjtkZWZhdWx0Om09Yjtjb250aW51ZSBufWRlZmF1bHQ6QT0xMDM7YnJlYWsgdH1tPW0rMnwwfWlmKCgwfChsPU0tYnwwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2goQT0wfGZlW20rMz4+MF0s''@;'; + put 'put ''MHwodz0oZj0wfGZlW2I+PjBdKTw8MjQ+PjI0PzB8ZjAoZixBKTowfEp0W2srKDI1NSZBKT4+MF0pKXtjYXNlIDU6QT04OTticmVhayB0O2Nhc2UgNjpBPTkwO2JyZWFrIHQ7Y2FzZSA3OkE9OTI7YnJlYWsgdDtjYXNlIDI5OmlmKCEoMTw8KDMxJihjPTI1NSZBKSkmYVs1Njk0MCsoKGM+Pj41''@;'; + put 'put ''fEp0WzE0NDA0NCsoMjU1JmYpPj4wXTw8Myk8PDIpPj4yXSkpe0E9ODc7YnJlYWsgdH1icmVhaztjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6YnJlYWs7ZGVmYXVsdDpmPTE5LG09Yjtjb250aW51ZSB0fWY9NDEsbT1tKzR8MH1zd2l0Y2goMHxBKXtjYXNlIDcxOmNh''@;'; + put 'put ''c2UgNzM6Y2FzZSAxMDM6YVtwPj4yXT1tLGY9MDticmVhayBlO2Nhc2UgNzQ6aWYoKDB8Yik8Myl7Zj0tMjticmVhayBlfWFbcD4+Ml09bSxmPTA7YnJlYWsgZTtjYXNlIDc2OmlmKCgwfGIpPDQpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPW0sZj0wO2JyZWFrIGU7Y2FzZSA3ODphW3A+PjJdPW07''@;'; + put 'put ''YnJlYWsgZTtjYXNlIDg3OmNhc2UgODk6YVtwPj4yXT1iLGY9MDticmVhayBlO2Nhc2UgOTA6aWYoKDB8bCk8Myl7Zj0tMjticmVhayBlfWFbcD4+Ml09YixmPTA7YnJlYWsgZTtjYXNlIDkyOmlmKCgwfGwpPDQpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWIsZj0wO2JyZWFrIGU7Y2FzZSA5NDpp''@;'; + put 'put ''ZigxOT09KDB8Zikpe2FbcD4+Ml09bSxmPTA7YnJlYWsgZX1hW3A+PjJdPW0rMixmPTMyO2JyZWFrIGU7Y2FzZSA5NzppZigxOT09KDB8Zikpe2FbcD4+Ml09bSxmPTA7YnJlYWsgZX1hW3A+PjJdPW0rMixmPTMxO2JyZWFrIGU7Y2FzZSAxMDA6aWYoMTk9PSgwfGYpKXthW3A+PjJdPW0sZj0w''@;'; + put 'put ''O2JyZWFrIGV9YVtwPj4yXT1tKzIsZj0zMDticmVhayBlO2Nhc2UgMTA0OmY9MC1mfDA7YnJlYWsgZX19ZWxzZSBpZig2ND09KDB8QSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9fWVsc2UgZj0tMTtlbHNlIGY9LTR9d2hpbGUoMCk7cmV0dXJuIDB8Zn0sZnVuY3Rpb24gSnZlKGwsYyxmLHApe2x8''@;'; + put 'put ''PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDtlOmRve2lmKGM+Pj4wPGY+Pj4wKWlmKG09YyxBPWYtbXwwLGI9MD09KDEmQXwwKSxBJj0tMix3PTA9PSgwfEEpLEE9Ynx3P2Y6YytBfDAsYnwxXncpe3N3aXRjaCgwfChmPShmPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChm''@;'; + put 'put ''LDB8ZmVbYysxPj4wXSk6MHxKdFtsKzcyKygwfEp0W2MrMT4+MF0pPj4wXSkpe2Nhc2UgMjpmPTB8dEFlKGwsYysyfDAsQSxwKTticmVhayBlO2Nhc2UgMzpmPTB8ZGoobCxjKzJ8MCxBLHApO2JyZWFrIGU7Y2FzZSA5OmlmKChBLShtPWMrMnwwKXwwKTw9MSl7Zj0tMzticmVhayBlfWY9KGY9''@;'; + put 'put ''MHxmZVttPj4wXSk8PDI0Pj4yND8wfGYwKGYsMHxmZVtjKzM+PjBdKTowfEp0W2wrNzIrKDB8SnRbYyszPj4wXSk+PjBdLGFbcD4+Ml09MTA9PSgwfGYpP2MrNHwwOm0sZj03O2JyZWFrIGU7Y2FzZSAxMDphW3A+PjJdPWMrMixmPTc7YnJlYWsgZTtjYXNlIDQ6aWYoKEEtKG09YysyfDApfDAp''@;'; + put 'put ''PD0xKXtmPS01O2JyZWFrIGV9aWYoMD09KDB8ZmVbbT4+MF0pJiY5Mz09KDB8ZmVbYyszPj4wXSkpe2lmKChBLShmPWMrNHwwKXwwKTw9MSl7Zj0tNTticmVhayBlfWlmKDA9PSgwfGZlW2Y+PjBdKSYmNjI9PSgwfGZlW2MrNT4+MF0pKXthW3A+PjJdPWYsZj0wO2JyZWFrIGV9Zj1BfWVsc2Ug''@;'; + put 'put ''Zj1BO2JyZWFrO2Nhc2UgNTppZigoKGY9QSktbXwwKTwyKXtmPS0yO2JyZWFrIGV9bT1jKzJ8MDticmVhaztjYXNlIDY6aWYoKChmPUEpLW18MCk8Myl7Zj0tMjticmVhayBlfW09YyszfDA7YnJlYWs7Y2FzZSA3OmlmKCgoZj1BKS1tfDApPDQpe2Y9LTI7YnJlYWsgZX1tPWMrNHwwO2JyZWFr''@;'; + put 'put ''O2Nhc2UgODpjYXNlIDE6Y2FzZSAwOmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtkZWZhdWx0Om09YysyfDAsZj1BfXc9bCs3MnwwLGw9bTt0OmZvcig7Oyl7aWYoKDB8KGM9Zi1sfDApKTw9MSl7bT01MjticmVha31zd2l0Y2goQT0wfGZlW2wrMT4+MF0sMHwobT0obT0wfGZlW2w+PjBdKTw8MjQ+''@;'; + put 'put ''PjI0PzB8ZjAobSxBKTowfEp0W3crKDI1NSZBKT4+MF0pKXtjYXNlIDEwOmNhc2UgOTpjYXNlIDg6Y2FzZSAxOmNhc2UgMDpjYXNlIDI6Y2FzZSAzOm09NTA7YnJlYWsgdDtjYXNlIDU6ZGVmYXVsdDpsPWwrMnwwO2NvbnRpbnVlIHQ7Y2FzZSA2OmlmKCgwfGMpPDMpe209Mzg7YnJlYWsgdH1s''@;'; + put 'put ''PWwrM3wwO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfGMpPDQpe209NDE7YnJlYWsgdH1sPWwrNHwwO2NvbnRpbnVlIHQ7Y2FzZSA0OmlmKCgwfGMpPD0zKXttPTUwO2JyZWFrIHR9aWYoMHxmZVsobT1sKzJ8MCk+PjBdKXtsPW07Y29udGludWUgdH1pZig5MyE9KDB8ZmVbbCszPj4wXSkpe2w9''@;'; + put 'put ''bTtjb250aW51ZSB0fWlmKCgwfGMpPD01KXttPTUwO2JyZWFrIHR9aWYoMHxmZVsoQT1sKzR8MCk+PjBdKXtsPW07Y29udGludWUgdH1pZig2Mj09KDB8ZmVbbCs1Pj4wXSkpe209NDk7YnJlYWsgdH1sPW07Y29udGludWUgdH19aWYoMzg9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfWlm''@;'; + put 'put ''KDQxPT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha31pZig0OT09KDB8bSkpe2FbcD4+Ml09QSxmPTA7YnJlYWt9aWYoNTA9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfWlmKDUyPT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha319ZWxzZSBmPS0xO2Vsc2UgZj0tNH13aGlsZSgwKTty''@;'; + put 'put ''ZXR1cm4gMHxmfSxmdW5jdGlvbiBSMWUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wO2U6ZG97aWYoYz4+PjA8Zj4+PjApaWYobT1jLEE9Zi1tfDAsYj0wPT0oMSZBfDApLEEmPS0yLHc9MD09KDB8QSksQT1ifHc/ZjpjK0F8MCxifDFedyl7c3dpdGNo''@;'; + put 'put ''KDB8KGY9KGY9MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKGYsMHxmZVtjKzE+PjBdKTowfEp0W2wrNzIrKDB8SnRbYysxPj4wXSk+PjBdKSl7Y2FzZSA0OmlmKChBLShtPWMrMnwwKXwwKTw9MSl7Zj0tMTticmVhayBlfWlmKDA9PSgwfGZlW20+PjBdKSYmOTM9PSgwfGZlW2MrMz4+MF0pKXtp''@;'; + put 'put ''ZigoQS0oZj1jKzR8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwPT0oMHxmZVtmPj4wXSkmJjYyPT0oMHxmZVtjKzU+PjBdKSl7YVtwPj4yXT1jKzYsZj00MDticmVhayBlfX1icmVhaztjYXNlIDk6aWYoKEEtKG09YysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9Zj0oZj0wfGZlW20+PjBd''@;'; + put 'put ''KTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW2MrMz4+MF0pOjB8SnRbbCs3MisoMHxKdFtjKzM+PjBdKT4+MF0sYVtwPj4yXT0xMD09KDB8Zik/Yys0fDA6bSxmPTc7YnJlYWsgZTtjYXNlIDEwOmFbcD4+Ml09YysyLGY9NzticmVhayBlO2Nhc2UgNTppZigoKGY9QSktbXwwKTwyKXtmPS0yO2JyZWFr''@;'; + put 'put ''IGV9bT1jKzJ8MCxBPWY7YnJlYWs7Y2FzZSA2OmlmKCgoZj1BKS1tfDApPDMpe2Y9LTI7YnJlYWsgZX1tPWMrM3wwLEE9ZjticmVhaztjYXNlIDc6aWYoKChmPUEpLW18MCk8NCl7Zj0tMjticmVhayBlfW09Yys0fDAsQT1mO2JyZWFrO2Nhc2UgODpjYXNlIDE6Y2FzZSAwOmFbcD4+Ml09Yyxm''@;'; + put 'put ''PTA7YnJlYWsgZTtkZWZhdWx0Om09YysyfDB9dz1sKzcyfDAsbD1tO3Q6Zm9yKDs7KXtpZigoMHwoYz1BLWx8MCkpPD0xKXttPTQwO2JyZWFrfXN3aXRjaChtPTB8ZmVbbCsxPj4wXSwwfChmPShmPTB8ZmVbbD4+MF0pPDwyND4+MjQ/MHxmMChmLG0pOjB8SnRbdysoMjU1Jm0pPj4wXSkpe2Nh''@;'; + put 'put ''c2UgMTA6Y2FzZSA5OmNhc2UgODpjYXNlIDE6Y2FzZSAwOmNhc2UgNDptPTM4O2JyZWFrIHQ7Y2FzZSA2OmlmKCgwfGMpPDMpe209MzU7YnJlYWsgdH1mPTM7YnJlYWs7Y2FzZSA3OmlmKCgwfGMpPDQpe209Mzc7YnJlYWsgdH1mPTQ7YnJlYWs7ZGVmYXVsdDpmPTJ9bD1sK2Z8MH1pZigzNT09''@;'; + put 'put ''KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoMzc9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfWlmKDM4PT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha31pZig0MD09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9fWVsc2UgZj0tMTtlbHNlIGY9LTR9d2hpbGUoMCk7cmV0dXJu''@;'; + put 'put ''IDB8Zn0sZnVuY3Rpb24gWHZlKGwsYyxmLHApe3B8PTA7dmFyIHcsbT0wLEE9MCxiPTAsaz0wO2I9MD09KDEmKGI9KGZ8PTApLShjfD0wKXwwKXwwKT9mOmMrKC0yJmIpfDAsdz03MisobHw9MCl8MCxBPTAsZj1jO2U6Zm9yKDs7KXtpZigoMHwobT1iLWZ8MCkpPD0xKXtmPS0xO2JyZWFrfXN3''@;'; + put 'put ''aXRjaChjPTB8ZmVbZisxPj4wXSwwfChsPShsPTB8ZmVbZj4+MF0pPDwyND4+MjQ/MHxmMChsLGMpOjB8SnRbdysoMjU1JmMpPj4wXSkpe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOms9MTI7YnJlYWsgZTtjYXNlIDU6ZGVmYXVsdDpmPWYrMnwwLEE9bT1BO2NvbnRpbnVlIGU7Y2FzZSA2OmlmKCgw''@;'; + put 'put ''fG0pPDMpe2Y9LTI7YnJlYWsgZX1mPWYrM3wwLEE9bT1BO2NvbnRpbnVlIGU7Y2FzZSA3OmlmKCgwfG0pPDQpe2Y9LTI7YnJlYWsgZX1mPWYrNHwwLEE9bT1BO2NvbnRpbnVlIGU7Y2FzZSAyOmlmKChiLShsPWYrMnwwKXwwKTw9MSl7Zj0tMTticmVhayBlfWlmKDB8ZmVbbD4+MF0pe2Y9bCxB''@;'; + put 'put ''PW09QTtjb250aW51ZSBlfWlmKDMzIT0oMHxmZVtmKzM+PjBdKSl7Zj1sLEE9bT1BO2NvbnRpbnVlIGV9aWYoKGItKGw9Zis0fDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMHxmZVtsPj4wXSl7Zj1sLEE9bT1BO2NvbnRpbnVlIGV9QT1BKygxJihtPTkxPT0oMHxmZVtmKzU+PjBdKSkpfDAs''@;'; + put 'put ''Zj1tP2YrNnwwOmw7Y29udGludWUgZTtjYXNlIDQ6aWYoKGItKGw9ZisyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMHxmZVtsPj4wXSl7Zj1sLEE9bT1BO2NvbnRpbnVlIGV9aWYoOTMhPSgwfGZlW2YrMz4+MF0pKXtmPWwsQT1tPUE7Y29udGludWUgZX1pZigoYi0obD1mKzR8MCl8MCk8''@;'; + put 'put ''PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW2w+PjBdKXtmPWwsQT1tPUE7Y29udGludWUgZX1pZig2MiE9KDB8ZmVbZis1Pj4wXSkpe2Y9bCxBPW09QTtjb250aW51ZSBlfWlmKGY9Zis2fDAsIUEpe2s9MjY7YnJlYWsgZX1BPUErLTF8MDtjb250aW51ZSBlfX1yZXR1cm4gMTI9PSgwfGspPyhh''@;'; + put 'put ''W3A+PjJdPWYsZj0wKToyNj09KDB8aykmJihhW3A+PjJdPWYsZj00MiksMHxmfSxmdW5jdGlvbiBmaihsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wO2Rve2lmKGM+Pj4wPGY+Pj4wKWlmKCgoYj1mKS1jfDApPjEpe2s9bCs3MnwwLHc9YztlOmZv''@;'; + put 'put ''cig7Oyl7aWYoKGItd3wwKTw9MSl7QT0zMDticmVha31zd2l0Y2goQT0wfGZlW3crMT4+MF0sMHwobT0obT0wfGZlW3c+PjBdKTw8MjQ+PjI0PzB8ZjAobSxBKTowfEp0W2srKDI1NSZBKT4+MF0pKXtjYXNlIDM6QT0xMTticmVhayBlO2Nhc2UgMjpBPTE0O2JyZWFrIGU7Y2FzZSAxMDpBPTE1''@;'; + put 'put ''O2JyZWFrIGU7Y2FzZSA5OkE9MTg7YnJlYWsgZTtjYXNlIDIxOkE9MjU7YnJlYWsgZTtjYXNlIDU6ZGVmYXVsdDptPTI7YnJlYWs7Y2FzZSA2Om09MzticmVhaztjYXNlIDc6bT00fXc9dyttfDB9aWYoMTE9PSgwfEEpKXtpZigoMHx3KT09KDB8Yykpe209MHxkaihsLGMrMnwwLGYscCk7YnJl''@;'; + put 'put ''YWt9YVtwPj4yXT13LG09NjticmVha31pZigxND09KDB8QSkpe2FbcD4+Ml09dyxtPTA7YnJlYWt9aWYoMTU9PSgwfEEpKXtpZigoMHx3KT09KDB8Yykpe2FbcD4+Ml09YysyLG09NzticmVha31hW3A+PjJdPXcsbT02O2JyZWFrfWlmKDE4PT0oMHxBKSl7aWYoKDB8dykhPSgwfGMpKXthW3A+''@;'; + put 'put ''PjJdPXcsbT02O2JyZWFrfWlmKChiLSh3PWMrMnwwKXwwKTw9MSl7bT0tMzticmVha31BPTB8ZmVbYyszPj4wXSxtPShtPTB8ZmVbdz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8SnRbaysoMjU1JkEpPj4wXSxhW3A+PjJdPTEwPT0oMHxtKT9jKzR8MDp3LG09NzticmVha31pZigyNT09KDB8''@;'; + put 'put ''QSkpe2lmKCgwfHcpPT0oMHxjKSl7YVtwPj4yXT1jKzIsbT0zOTticmVha31hW3A+PjJdPXcsbT02O2JyZWFrfWlmKDMwPT0oMHxBKSl7YVtwPj4yXT13LG09NjticmVha319ZWxzZSBtPS0xO2Vsc2UgbT0tNH13aGlsZSgwKTtyZXR1cm4gMHxtfSxmdW5jdGlvbiBCMWUobCxjLGYscCl7bHw9''@;'; + put 'put ''MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDtkb3tpZihjPj4+MDxmPj4+MClpZigoKGI9ZiktY3wwKT4xKXtrPWwrNzJ8MCx3PWM7ZTpmb3IoOzspe2lmKChiLXd8MCk8PTEpe0E9Mjk7YnJlYWt9c3dpdGNoKEE9MHxmZVt3KzE+PjBdLDB8KG09KG09MHxmZVt3Pj4w''@;'; + put 'put ''XSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxKdFtrKygyNTUmQSk+PjBdKSl7Y2FzZSAzOkE9MTE7YnJlYWsgZTtjYXNlIDMwOkE9MTQ7YnJlYWsgZTtjYXNlIDEwOkE9MTc7YnJlYWsgZTtjYXNlIDk6QT0yMDticmVhayBlO2Nhc2UgNTpkZWZhdWx0Om09MjticmVhaztjYXNlIDY6bT0zO2JyZWFr''@;'; + put 'put ''O2Nhc2UgNzptPTR9dz13K218MH1pZigxMT09KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7bT0wfGRqKGwsYysyfDAsZixwKTticmVha31hW3A+PjJdPXcsbT02O2JyZWFrfWlmKDE0PT0oMHxBKSl7aWYoKDB8dyk9PSgwfGMpKXttPTIyPT0oMHwobT0wfFYxZShsLGMrMnwwLGYscCkpKT8wOm07''@;'; + put 'put ''YnJlYWt9YVtwPj4yXT13LG09NjticmVha31pZigxNz09KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7YVtwPj4yXT1jKzIsbT03O2JyZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMjA9PSgwfEEpKXtpZigoMHx3KSE9KDB8Yykpe2FbcD4+Ml09dyxtPTY7YnJlYWt9aWYoKGItKHc9YysyfDAp''@;'; + put 'put ''fDApPD0xKXttPS0zO2JyZWFrfUE9MHxmZVtjKzM+PjBdLG09KG09MHxmZVt3Pj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxKdFtrKygyNTUmQSk+PjBdLGFbcD4+Ml09MTA9PSgwfG0pP2MrNHwwOncsbT03O2JyZWFrfWlmKDI5PT0oMHxBKSl7YVtwPj4yXT13LG09NjticmVha319ZWxzZSBt''@;'; + put 'put ''PS0xO2Vsc2UgbT0tNH13aGlsZSgwKTtyZXR1cm4gMHxtfSxmdW5jdGlvbiBQMWUobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtLEE9MDtmb3IobT1mfD0wLGw9Y3w9MDs7KXtpZighKChjPTB8ZmVbcD4+MF0pPDwyND4+MjQpKXtBPTc7YnJlYWt9aWYoKG0tbHwwKTwyKXtsPTA7YnJlYWt9aWYo''@;'; + put 'put ''MHxmZVtsPj4wXSl7bD0wO2JyZWFrfWlmKCgwfGZlW2wrMT4+MF0pIT1jPDwyND4+MjQpe2w9MDticmVha31wPXArMXwwLGw9bCsyfDB9cmV0dXJuIDc9PSgwfEEpJiYobD0oMHxsKT09KDB8ZikmMSksMHxsfSxmdW5jdGlvbiBGMWUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIFIsbT0w''@;'; + put 'put ''LEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO1I9NzIrKGx8PTApfDAsTT0wLEQ9MCxsPTE7ZTpmb3IoOzspc3dpdGNoKGI9MHxmZVsoQT1jKzN8MCk+PjBdLDB8KG09KHc9KG09MHxmZVsoaz1jKzJ8MCk+PjBdKTw8MjQ+PjI0PT0wKT8wfEp0W1IrKDI1NSZiKT4+MF06MHxmMChtLGIpKSl7Y2Fz''@;'; + put 'put ''ZSA1OmNhc2UgMjQ6Y2FzZSAyMjpjYXNlIDI5OmlmKDB8bCl7Yz1rLGw9QT1sLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9aWYoKDB8RCk+PSgwfGYpKXtsPTEsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9YVtwKyhEPDw0KT4+Ml09ayxmZVtwKyhEPDw0KSsxMj4+MF09MSxsPTEsYz1rLEQ9''@;'; + put 'put ''dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSA2OmlmKDB8bCl7Yz1BLGw9dz1sLEQ9Yj1ELE09az1NO2NvbnRpbnVlIGV9aWYoKDB8RCk+PSgwfGYpKXtsPTEsYz1BLEQ9Yj1ELE09az1NO2NvbnRpbnVlIGV9YVtwKyhEPDw0KT4+Ml09ayxmZVtwKyhEPDw0KSsxMj4+MF09MSxsPTEsYz1BLEQ9''@;'; + put 'put ''Yj1ELE09az1NO2NvbnRpbnVlIGU7Y2FzZSA3Omx8fCgoMHxEKTwoMHxmKSYmKGFbcCsoRDw8NCk+PjJdPWssZmVbcCsoRDw8NCkrMTI+PjBdPTEpLGw9MSksYz1jKzR8MCxEPWI9RCxNPWs9TTtjb250aW51ZSBlO2Nhc2UgMTI6aWYoMiE9KDB8bCkpe2lmKCgwfEQpPj0oMHxmKSl7TT0xMixs''@;'; + put 'put ''PTIsYz1rLEQ9Yj1EO2NvbnRpbnVlIGV9YVtwKyhEPDw0KSs0Pj4yXT1jKzQsTT0xMixsPTIsYz1rLEQ9Yj1EO2NvbnRpbnVlIGV9aWYoMTIhPSgwfE0pKXtsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9KDB8RCk8KDB8ZikmJihhW3ArKEQ8PDQpKzg+PjJdPWspLE09MTIsRD1EKzF8''@;'; + put 'put ''MCxsPTAsYz1rO2NvbnRpbnVlIGU7Y2FzZSAxMzppZigyIT0oMHxsKSl7aWYoKDB8RCk+PSgwfGYpKXtNPTEzLGw9MixjPWssRD1iPUQ7Y29udGludWUgZX1hW3ArKEQ8PDQpKzQ+PjJdPWMrNCxNPTEzLGw9MixjPWssRD1iPUQ7Y29udGludWUgZX1pZigxMyE9KDB8TSkpe2w9MixjPWssRD13''@;'; + put 'put ''PUQsTT1iPU07Y29udGludWUgZX0oMHxEKTwoMHxmKSYmKGFbcCsoRDw8NCkrOD4+Ml09ayksTT0xMyxEPUQrMXwwLGw9MCxjPWs7Y29udGludWUgZTtjYXNlIDM6aWYoKDB8RCk+PSgwfGYpKXtjPWssbD1BPWwsRD13PUQsTT1iPU07Y29udGludWUgZX1mZVtwKyhEPDw0KSsxMj4+MF09MCxj''@;'; + put 'put ''PWssbD1BPWwsRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDIxOnN3aXRjaCgwfGwpe2Nhc2UgMTpsPTAsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSAyOmJyZWFrO2RlZmF1bHQ6Yz1rLGw9QT1sLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9aWYoKDB8RCk+PSgwfGYpKXtsPTIs''@;'; + put 'put ''Yz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9aWYoISgwfGZlWyhBPXArKEQ8PDQpKzEyfDApPj4wXSkpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZX1kb3tpZih3JigwfGspIT0oMHxhW3ArKEQ8PDQpKzQ+PjJdKSZiPDwyND4+MjQ9PTMyKXtpZihsPTB8ZmVbYys1Pj4wXSwobT0w''@;'; + put 'put ''fGZlW2MrND4+MF0pPDwyND4+MjQpbD0wfGYwKG0sbCk7ZWxzZXtpZihsPDwyND4+MjQ9PTMyKWJyZWFrO2w9MHxKdFtSKygyNTUmbCk+PjBdfWlmKCgwfGwpIT0oMHxNKSl7bD0yLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlfX19d2hpbGUoMCk7ZmVbQT4+MF09MCxsPTIsYz1rLEQ9dz1E''@;'; + put 'put ''LE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSAxMDpjYXNlIDk6c3dpdGNoKDB8bCl7Y2FzZSAxOmw9MCxjPWssRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDI6YnJlYWs7ZGVmYXVsdDpjPWssbD1BPWwsRD13PUQsTT1iPU07Y29udGludWUgZX1pZigoMHxEKT49KDB8Zikpe2w9MixjPWssRD13''@;'; + put 'put ''PUQsTT1iPU07Y29udGludWUgZX1mZVtwKyhEPDw0KSsxMj4+MF09MCxsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSAxNzpjYXNlIDExOmlmKDI9PSgwfGwpKXtsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9YnJlYWsgZTtkZWZhdWx0OmM9ayxsPUE9bCxEPXc9RCxN''@;'; + put 'put ''PWI9TTtjb250aW51ZSBlfXJldHVybiAwfER9LGZ1bmN0aW9uIE4xZShsLGMsZixwKXtjfD0wLHB8PTA7dmFyIHcsYixtPTAsQT0wLGs9MDtiPShmfD0wKS0yfDAsdz03MisobHw9MCl8MDtlOmZvcig7Oyl7aWYoKGItKG09YysyfDApfDApPD0xKXtmPTE7YnJlYWt9c3dpdGNoKGw9MHxmZVtj''@;'; + put 'put ''KzM+PjBdLDB8KGY9KEE9KGY9MHxmZVttPj4wXSk8PDI0Pj4yND09MCk/MHxKdFt3KygyNTUmbCk+PjBdOjB8ZjAoZixsKSkpe2Nhc2UgMjM6Y2FzZSAxOTpjYXNlIDMwOmNhc2UgMzM6Y2FzZSAxNjpjYXNlIDE4OmNhc2UgMTA6Y2FzZSA5OmNhc2UgMTU6Y2FzZSAxNDpjYXNlIDE3OmNhc2Ug''@;'; + put 'put ''MzU6Y2FzZSAzNDpjYXNlIDMyOmNhc2UgMzE6Y2FzZSAxMzpjYXNlIDI3OmNhc2UgMjQ6Y2FzZSAyNTpjPW07Y29udGludWUgZTtjYXNlIDIxOmlmKEEmbDw8MjQ+PjI0PT05KXtrPTEyO2JyZWFrIGV9Yz1tO2NvbnRpbnVlIGU7Y2FzZSAyMjpjYXNlIDI2OmlmKCFBKXtrPTEyO2JyZWFrIGV9''@;'; + put 'put ''aWYobDw8MjQ+PjI0Pj0wKXtjPW07Y29udGludWUgZX1icmVhaztkZWZhdWx0OmlmKCFBKXtrPTEyO2JyZWFrIGV9fXN3aXRjaChsPDwyND4+MjR8MCl7Y2FzZSA2NDpjYXNlIDM2OmM9bTticmVhaztkZWZhdWx0Oms9MTI7YnJlYWsgZX19cmV0dXJuIDEyPT0oMHxrKSYmKGFbcD4+Ml09bSxm''@;'; + put 'put ''PTApLDB8Zn0sZnVuY3Rpb24geTFlKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2U6ZG97aWYoYz4+PjA8Zj4+PjApaWYoQT1jLE09Zi1BfDAsYj0wPT0oMSZNfDApLE0mPS0yLGs9MD09KDB8TSksTT1ifGs/ZjpjK018MCxifDFeayl7''@;'; + put 'put ''c3dpdGNoKChmPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8odz1tPTB8ZmVbYz4+MF0sbT0wfGYwKGYsbSkpOih3PW09MHxmZVtjPj4wXSxtPTB8SnRbbCs3MisoMjU1Jm0pPj4wXSksMHxtKXtjYXNlIDEyOmY9MHxHSygxMixsLGMrMnwwLE0scCk7YnJlYWsgZTtjYXNlIDEzOmY9MHxHSygxMyxs''@;'; + put 'put ''LGMrMnwwLE0scCk7YnJlYWsgZTtjYXNlIDI6aWYoKE0tKG09YysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKDB8KGY9KGY9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW20+PjBdKTowfEp0W2wrNzIrKDB8SnRbbT4+MF0pPj4wXSkpe2Nhc2UgMTY6Zj0wfEQxZShs''@;'; + put 'put ''LGMrNHwwLE0scCk7YnJlYWsgZTtjYXNlIDE1OmY9MHxaSyhsLGMrNHwwLE0scCk7YnJlYWsgZTtjYXNlIDc6Y2FzZSA2OmNhc2UgNTpjYXNlIDI5OmNhc2UgMjQ6Y2FzZSAyMjphW3A+PjJdPWMsZj0yOTticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1tLGY9MDticmVhayBlfWNhc2UgOTppZigo''@;'; + put 'put ''YysyfDApPT0oMHxNKSl7YVtwPj4yXT1NLGY9LTE1O2JyZWFrIGV9QT03O2JyZWFrO2Nhc2UgMTA6Y2FzZSAyMTpBPTc7YnJlYWs7Y2FzZSAzMDpmPTB8ckwobCxjKzJ8MCxNLHApO2JyZWFrIGU7Y2FzZSAzNTphW3A+PjJdPWMrMixmPTM4O2JyZWFrIGU7Y2FzZSAyMDphW3A+PjJdPWMrMixm''@;'; + put 'put ''PTI1O2JyZWFrIGU7Y2FzZSA0OmlmKCgwfChmPU0tKG09YysyfDApfDApKTw9MSl7Zj0tMjY7YnJlYWsgZX1pZigwPT0oMHxmZVtjKzM+PjBdKSYmOTM9PSgwfGZlW20+PjBdKSl7aWYoKDB8Zik8PTMpe2Y9LTE7YnJlYWsgZX1pZigwPT0oMHxmZVtjKzU+PjBdKSYmNjI9PSgwfGZlW2MrND4+''@;'; + put 'put ''MF0pKXthW3A+PjJdPWMrNixmPTM0O2JyZWFrIGV9fWFbcD4+Ml09bSxmPTI2O2JyZWFrIGU7Y2FzZSAzMTphW3A+PjJdPWMrMixmPTIzO2JyZWFrIGU7Y2FzZSAzMjppZigoTS0obT1jKzJ8MCl8MCk8PTEpe2Y9LTI0O2JyZWFrIGV9c3dpdGNoKDB8KGY9KGY9MHxmZVtjKzM+PjBdKTw8MjQ+''@;'; + put 'put ''PjI0PzB8ZjAoZiwwfGZlW20+PjBdKTowfEp0W2wrNzIrKDB8SnRbbT4+MF0pPj4wXSkpe2Nhc2UgMzM6YVtwPj4yXT1jKzQsZj0zNjticmVhayBlO2Nhc2UgMTU6YVtwPj4yXT1jKzQsZj0zNTticmVhayBlO2Nhc2UgMzQ6YVtwPj4yXT1jKzQsZj0zNzticmVhayBlO2Nhc2UgMzI6Y2FzZSAz''@;'; + put 'put ''NjpjYXNlIDM1OmNhc2UgMTE6Y2FzZSAyMTpjYXNlIDEwOmNhc2UgOTphW3A+PjJdPW0sZj0yNDticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1tLGY9MDticmVhayBlfWNhc2UgMzY6YVtwPj4yXT1jKzIsZj0yMTticmVhayBlO2Nhc2UgMTE6YVtwPj4yXT1jKzIsZj0xNzticmVhayBlO2Nhc2Ug''@;'; + put 'put ''MTk6Zj0wfEwxZShsLGMrMnwwLE0scCk7YnJlYWsgZTtjYXNlIDU6aWYoKE0tQXwwKTwyKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgNjppZigoTS1BfDApPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA3OmlmKChNLUF8MCk8NCl7''@;'; + put 'put ''Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6Zj0xOCxBPTYxO2JyZWFrO2Nhc2UgMjM6Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Zj0xOSxBPTYxO2JyZWFrO2Nhc2UgMjk6QT0yNTUmZixmPShtPTI1NSZ3KT4+PjUsKG09MTw8KDMxJm0pKSZhWzU2''@;'; + put 'put ''OTQwKygoZnxKdFsxNDM3ODgrQT4+MF08PDMpPDwyKT4+Ml0/KGY9MTgsQT02MSk6YVs1Njk0MCsoKEp0WzE0NDA0NCtBPj4wXTw8M3xmKTw8Mik+PjJdJm0/KGY9MTksQT02MSk6QT02NDticmVhaztkZWZhdWx0OkE9NjR9aWYoNz09KDB8QSkpe2I9TSxsPWwrNzJ8MCx3PWM7dDpmb3IoOzsp''@;'; + put 'put ''e2lmKEE9dywoYi0odz13KzJ8MCl8MCk8PTEpe0E9Mjg7YnJlYWt9c3dpdGNoKG09MHxmZVt3Pj4wXSwwfChmPShmPTB8ZmVbQSszPj4wXSk8PDI0Pj4yND8wfGYwKGYsbSk6MHxKdFtsKygyNTUmbSk+PjBdKSl7Y2FzZSAxMDpjYXNlIDIxOmNvbnRpbnVlIHQ7Y2FzZSA5OmJyZWFrO2RlZmF1''@;'; + put 'put ''bHQ6QT0yNzticmVhayB0fWlmKChBKzR8MCk9PSgwfE0pKXtBPTI3O2JyZWFrfX1pZigyNz09KDB8QSkpe2FbcD4+Ml09dyxmPTE1O2JyZWFrfWlmKDI4PT0oMHxBKSl7YVtwPj4yXT13LGY9MTU7YnJlYWt9fWVsc2UgaWYoNjE9PSgwfEEpKXtrPWwrNzJ8MCxtPWMrMnwwO3Q6Zm9yKDs7KXtj''@;'; + put 'put ''PTI1NSZmO246Zm9yKDs7KXtpZigoMHwoYj1NLW18MCkpPD0xKXtBPTEwNDticmVhayB0fXN3aXRjaCh3PTB8ZmVbbT4+MF0sMHwobD0oQT0wfGZlW20rMT4+MF0pPDwyND4+MjQ/MHxmMChBLHcpOjB8SnRbaysoMjU1JncpPj4wXSkpe2Nhc2UgNTpBPTczO2JyZWFrIHQ7Y2FzZSA2OkE9NzQ7''@;'; + put 'put ''YnJlYWsgdDtjYXNlIDc6QT03NjticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6Y2FzZSAzMDpjYXNlIDIwOmNhc2UgMzY6Y2FzZSAzNTpjYXNlIDMyOmNhc2UgMTE6QT03ODticmVhayB0O2Nhc2UgMzQ6QT05NDticmVhayB0O2Nhc2UgMzM6QT05NzticmVhayB0O2Nhc2UgMTU6QT0x''@;'; + put 'put ''MDA7YnJlYWsgdDtjYXNlIDI5OmlmKCEoMTw8KDMxJihiPTI1NSZ3KSkmYVs1Njk0MCsoKGI+Pj41fEp0WzE0NDA0NCsoMjU1JkEpPj4wXTw8Myk8PDIpPj4yXSkpe0E9NzE7YnJlYWsgdH1icmVhaztjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6YnJlYWs7Y2FzZSAy''@;'; + put 'put ''Mzpzd2l0Y2goYj1tKzJ8MCw2MyZjKXtjYXNlIDQxOmY9MTksbT1iO2NvbnRpbnVlIHQ7Y2FzZSAxODpicmVhayBuO2RlZmF1bHQ6bT1iO2NvbnRpbnVlIG59ZGVmYXVsdDpBPTEwMzticmVhayB0fW09bSsyfDB9aWYoKDB8KGw9TS1ifDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChBPTB8''@;'; + put 'put ''ZmVbYj4+MF0sMHwodz0oZj0wfGZlW20rMz4+MF0pPDwyND4+MjQ/MHxmMChmLEEpOjB8SnRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgNTpBPTg5O2JyZWFrIHQ7Y2FzZSA2OkE9OTA7YnJlYWsgdDtjYXNlIDc6QT05MjticmVhayB0O2Nhc2UgMjk6aWYoISgxPDwoMzEmKGM9MjU1JkEpKSZhWzU2''@;'; + put 'put ''OTQwKygoYz4+PjV8SnRbMTQ0MDQ0KygyNTUmZik+PjBdPDwzKTw8Mik+PjJdKSl7QT04NzticmVhayB0fWJyZWFrO2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpicmVhaztkZWZhdWx0OmY9MTksbT1iO2NvbnRpbnVlIHR9Zj00MSxtPW0rNHwwfXN3aXRjaCgwfEEp''@;'; + put 'put ''e2Nhc2UgNzE6Y2FzZSA3MzpjYXNlIDEwMzphW3A+PjJdPW0sZj0wO2JyZWFrIGU7Y2FzZSA3NDppZigoMHxiKTwzKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1tLGY9MDticmVhayBlO2Nhc2UgNzY6aWYoKDB8Yik8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09bSxmPTA7YnJlYWsgZTtjYXNlIDc4''@;'; + put 'put ''OmFbcD4+Ml09bTticmVhayBlO2Nhc2UgODc6Y2FzZSA4OTphW3A+PjJdPWIsZj0wO2JyZWFrIGU7Y2FzZSA5MDppZigoMHxsKTwzKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1iLGY9MDticmVhayBlO2Nhc2UgOTI6aWYoKDB8bCk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YixmPTA7YnJlYWsg''@;'; + put 'put ''ZTtjYXNlIDk0OmlmKDE5PT0oMHxmKSl7YVtwPj4yXT1tLGY9MDticmVhayBlfWFbcD4+Ml09bSsyLGY9MzI7YnJlYWsgZTtjYXNlIDk3OmlmKDE5PT0oMHxmKSl7YVtwPj4yXT1tLGY9MDticmVhayBlfWFbcD4+Ml09bSsyLGY9MzE7YnJlYWsgZTtjYXNlIDEwMDppZigxOT09KDB8Zikpe2Fb''@;'; + put 'put ''cD4+Ml09bSxmPTA7YnJlYWsgZX1hW3A+PjJdPW0rMixmPTMwO2JyZWFrIGU7Y2FzZSAxMDQ6Zj0wLWZ8MDticmVhayBlfX1lbHNlIGlmKDY0PT0oMHxBKSl7YVtwPj4yXT1jLGY9MDticmVha319ZWxzZSBmPS0xO2Vsc2UgZj0tNH13aGlsZSgwKTtyZXR1cm4gMHxmfSxmdW5jdGlvbiBGSyhs''@;'; + put 'put ''LGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7ZTpkb3tpZihjPj4+MDxmPj4+MClpZihtPWMsQT1mLW18MCxiPTA9PSgxJkF8MCksQSY9LTIsdz0wPT0oMHxBKSxBPWJ8dz9mOmMrQXwwLGJ8MV53KXtzd2l0Y2goMHwoZj0oZj0wfGZlW2MrMT4+MF0pPDwy''@;'; + put 'put ''ND4+MjQ/MHxmMChmLDB8ZmVbYz4+MF0pOjB8SnRbbCs3MisoMHxKdFtjPj4wXSk+PjBdKSl7Y2FzZSAyOmY9MHxpNChsLGMrMnwwLEEscCk7YnJlYWsgZTtjYXNlIDM6Zj0wfG5MKGwsYysyfDAsQSxwKTticmVhayBlO2Nhc2UgOTppZigoQS0obT1jKzJ8MCl8MCk8PTEpe2Y9LTM7YnJlYWsg''@;'; + put 'put ''ZX1mPShmPTB8ZmVbYyszPj4wXSk8PDI0Pj4yND8wfGYwKGYsMHxmZVttPj4wXSk6MHxKdFtsKzcyKygwfEp0W20+PjBdKT4+MF0sYVtwPj4yXT0xMD09KDB8Zik/Yys0fDA6bSxmPTc7YnJlYWsgZTtjYXNlIDEwOmFbcD4+Ml09YysyLGY9NzticmVhayBlO2Nhc2UgNDppZigoQS0obT1jKzJ8''@;'; + put 'put ''MCl8MCk8PTEpe2Y9LTU7YnJlYWsgZX1pZigwPT0oMHxmZVtjKzM+PjBdKSYmOTM9PSgwfGZlW20+PjBdKSl7aWYoKEEtKGY9Yys0fDApfDApPD0xKXtmPS01O2JyZWFrIGV9aWYoMD09KDB8ZmVbYys1Pj4wXSkmJjYyPT0oMHxmZVtmPj4wXSkpe2FbcD4+Ml09ZixmPTA7YnJlYWsgZX1mPUF9''@;'; + put 'put ''ZWxzZSBmPUE7YnJlYWs7Y2FzZSA1OmlmKCgoZj1BKS1tfDApPDIpe2Y9LTI7YnJlYWsgZX1tPWMrMnwwO2JyZWFrO2Nhc2UgNjppZigoKGY9QSktbXwwKTwzKXtmPS0yO2JyZWFrIGV9bT1jKzN8MDticmVhaztjYXNlIDc6aWYoKChmPUEpLW18MCk8NCl7Zj0tMjticmVhayBlfW09Yys0fDA7''@;'; + put 'put ''YnJlYWs7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6YVtwPj4yXT1jLGY9MDticmVhayBlO2RlZmF1bHQ6bT1jKzJ8MCxmPUF9dz1sKzcyfDAsbD1tO3Q6Zm9yKDs7KXtpZigoMHwoYz1mLWx8MCkpPD0xKXttPTUyO2JyZWFrfXN3aXRjaChBPTB8ZmVbbD4+MF0sMHwobT0obT0wfGZlW2wrMT4+MF0p''@;'; + put 'put ''PDwyND4+MjQ/MHxmMChtLEEpOjB8SnRbdysoMjU1JkEpPj4wXSkpe2Nhc2UgMTA6Y2FzZSA5OmNhc2UgODpjYXNlIDE6Y2FzZSAwOmNhc2UgMjpjYXNlIDM6bT01MDticmVhayB0O2Nhc2UgNTpkZWZhdWx0Omw9bCsyfDA7Y29udGludWUgdDtjYXNlIDY6aWYoKDB8Yyk8Myl7bT0zODticmVh''@;'; + put 'put ''ayB0fWw9bCszfDA7Y29udGludWUgdDtjYXNlIDc6aWYoKDB8Yyk8NCl7bT00MTticmVhayB0fWw9bCs0fDA7Y29udGludWUgdDtjYXNlIDQ6aWYoKDB8Yyk8PTMpe209NTA7YnJlYWsgdH1pZihtPWwrMnwwLDB8ZmVbbCszPj4wXSl7bD1tO2NvbnRpbnVlIHR9aWYoOTMhPSgwfGZlW20+PjBd''@;'; + put 'put ''KSl7bD1tO2NvbnRpbnVlIHR9aWYoKDB8Yyk8PTUpe209NTA7YnJlYWsgdH1pZihBPWwrNHwwLDB8ZmVbbCs1Pj4wXSl7bD1tO2NvbnRpbnVlIHR9aWYoNjI9PSgwfGZlW0E+PjBdKSl7bT00OTticmVhayB0fWw9bTtjb250aW51ZSB0fX1pZigzOD09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJl''@;'; + put 'put ''YWt9aWYoNDE9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfWlmKDQ5PT0oMHxtKSl7YVtwPj4yXT1BLGY9MDticmVha31pZig1MD09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoNTI9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfX1lbHNlIGY9LTE7ZWxzZSBmPS00fXdoaWxl''@;'; + put 'put ''KDApO3JldHVybiAwfGZ9LGZ1bmN0aW9uIEhLKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDtlOmRve2lmKGM+Pj4wPGY+Pj4wKWlmKG09YyxBPWYtbXwwLGI9MD09KDEmQXwwKSxBJj0tMix3PTA9PSgwfEEpLEE9Ynx3P2Y6YytBfDAsYnwxXncpe3N3''@;'; + put 'put ''aXRjaCgwfChmPShmPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGYsMHxmZVtjPj4wXSk6MHxKdFtsKzcyKygwfEp0W2M+PjBdKT4+MF0pKXtjYXNlIDQ6aWYoKEEtKG09YysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMD09KDB8ZmVbYyszPj4wXSkmJjkzPT0oMHxmZVttPj4wXSkp''@;'; + put 'put ''e2lmKChBLShmPWMrNHwwKXwwKTw9MSl7Zj0tMTticmVhayBlfWlmKDA9PSgwfGZlW2MrNT4+MF0pJiY2Mj09KDB8ZmVbZj4+MF0pKXthW3A+PjJdPWMrNixmPTQwO2JyZWFrIGV9fWJyZWFrO2Nhc2UgOTppZigoQS0obT1jKzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1mPShmPTB8ZmVbYysz''@;'; + put 'put ''Pj4wXSk8PDI0Pj4yND8wfGYwKGYsMHxmZVttPj4wXSk6MHxKdFtsKzcyKygwfEp0W20+PjBdKT4+MF0sYVtwPj4yXT0xMD09KDB8Zik/Yys0fDA6bSxmPTc7YnJlYWsgZTtjYXNlIDEwOmFbcD4+Ml09YysyLGY9NzticmVhayBlO2Nhc2UgNTppZigoKGY9QSktbXwwKTwyKXtmPS0yO2JyZWFr''@;'; + put 'put ''IGV9bT1jKzJ8MCxBPWY7YnJlYWs7Y2FzZSA2OmlmKCgoZj1BKS1tfDApPDMpe2Y9LTI7YnJlYWsgZX1tPWMrM3wwLEE9ZjticmVhaztjYXNlIDc6aWYoKChmPUEpLW18MCk8NCl7Zj0tMjticmVhayBlfW09Yys0fDAsQT1mO2JyZWFrO2Nhc2UgODpjYXNlIDE6Y2FzZSAwOmFbcD4+Ml09Yyxm''@;'; + put 'put ''PTA7YnJlYWsgZTtkZWZhdWx0Om09YysyfDB9dz1sKzcyfDAsbD1tO3Q6Zm9yKDs7KXtpZigoMHwoYz1BLWx8MCkpPD0xKXttPTQwO2JyZWFrfXN3aXRjaChtPTB8ZmVbbD4+MF0sMHwoZj0oZj0wfGZlW2wrMT4+MF0pPDwyND4+MjQ/MHxmMChmLG0pOjB8SnRbdysoMjU1Jm0pPj4wXSkpe2Nh''@;'; + put 'put ''c2UgMTA6Y2FzZSA5OmNhc2UgODpjYXNlIDE6Y2FzZSAwOmNhc2UgNDptPTM4O2JyZWFrIHQ7Y2FzZSA2OmlmKCgwfGMpPDMpe209MzU7YnJlYWsgdH1mPTM7YnJlYWs7Y2FzZSA3OmlmKCgwfGMpPDQpe209Mzc7YnJlYWsgdH1mPTQ7YnJlYWs7ZGVmYXVsdDpmPTJ9bD1sK2Z8MH1pZigzNT09''@;'; + put 'put ''KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoMzc9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfWlmKDM4PT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha31pZig0MD09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9fWVsc2UgZj0tMTtlbHNlIGY9LTR9d2hpbGUoMCk7cmV0dXJu''@;'; + put 'put ''IDB8Zn0sZnVuY3Rpb24gdzFlKGwsYyxmLHApe3B8PTA7dmFyIHcsbT0wLEE9MCxiPTAsaz0wO2I9MD09KDEmKGI9KGZ8PTApLShjfD0wKXwwKXwwKT9mOmMrKC0yJmIpfDAsdz03MisobHw9MCl8MCxBPTAsZj1jO2U6Zm9yKDs7KXtpZigoMHwobT1iLWZ8MCkpPD0xKXtmPS0xO2JyZWFrfXN3''@;'; + put 'put ''aXRjaChjPTB8ZmVbZj4+MF0sMHwobD0obD0wfGZlW2YrMT4+MF0pPDwyND4+MjQ/MHxmMChsLGMpOjB8SnRbdysoMjU1JmMpPj4wXSkpe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOms9MTI7YnJlYWsgZTtjYXNlIDU6ZGVmYXVsdDpmPWYrMnwwLEE9bT1BO2NvbnRpbnVlIGU7Y2FzZSA2OmlmKCgw''@;'; + put 'put ''fG0pPDMpe2Y9LTI7YnJlYWsgZX1mPWYrM3wwLEE9bT1BO2NvbnRpbnVlIGU7Y2FzZSA3OmlmKCgwfG0pPDQpe2Y9LTI7YnJlYWsgZX1mPWYrNHwwLEE9bT1BO2NvbnRpbnVlIGU7Y2FzZSAyOmlmKChiLShsPWYrMnwwKXwwKTw9MSl7Zj0tMTticmVhayBlfWlmKDB8ZmVbZiszPj4wXSl7Zj1s''@;'; + put 'put ''LEE9bT1BO2NvbnRpbnVlIGV9aWYoMzMhPSgwfGZlW2w+PjBdKSl7Zj1sLEE9bT1BO2NvbnRpbnVlIGV9aWYoKGItKGw9Zis0fDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMHxmZVtmKzU+PjBdKXtmPWwsQT1tPUE7Y29udGludWUgZX1BPUErKDEmKG09OTE9PSgwfGZlW2w+PjBdKSkpfDAs''@;'; + put 'put ''Zj1tP2YrNnwwOmw7Y29udGludWUgZTtjYXNlIDQ6aWYoKGItKGw9ZisyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMHxmZVtmKzM+PjBdKXtmPWwsQT1tPUE7Y29udGludWUgZX1pZig5MyE9KDB8ZmVbbD4+MF0pKXtmPWwsQT1tPUE7Y29udGludWUgZX1pZigoYi0obD1mKzR8MCl8MCk8''@;'; + put 'put ''PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW2YrNT4+MF0pe2Y9bCxBPW09QTtjb250aW51ZSBlfWlmKDYyIT0oMHxmZVtsPj4wXSkpe2Y9bCxBPW09QTtjb250aW51ZSBlfWlmKGY9Zis2fDAsIUEpe2s9MjY7YnJlYWsgZX1BPUErLTF8MDtjb250aW51ZSBlfX1yZXR1cm4gMTI9PSgwfGspPyhh''@;'; + put 'put ''W3A+PjJdPWYsZj0wKToyNj09KDB8aykmJihhW3A+PjJdPWYsZj00MiksMHxmfSxmdW5jdGlvbiBFMShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wO2Rve2lmKGM+Pj4wPGY+Pj4wKWlmKCgoYj1mKS1jfDApPjEpe2s9bCs3MnwwLHc9YztlOmZv''@;'; + put 'put ''cig7Oyl7aWYoKGItd3wwKTw9MSl7QT0zMDticmVha31zd2l0Y2goQT0wfGZlW3c+PjBdLDB8KG09KG09MHxmZVt3KzE+PjBdKTw8MjQ+PjI0PzB8ZjAobSxBKTowfEp0W2srKDI1NSZBKT4+MF0pKXtjYXNlIDM6QT0xMTticmVhayBlO2Nhc2UgMjpBPTE0O2JyZWFrIGU7Y2FzZSAxMDpBPTE1''@;'; + put 'put ''O2JyZWFrIGU7Y2FzZSA5OkE9MTg7YnJlYWsgZTtjYXNlIDIxOkE9MjU7YnJlYWsgZTtjYXNlIDU6ZGVmYXVsdDptPTI7YnJlYWs7Y2FzZSA2Om09MzticmVhaztjYXNlIDc6bT00fXc9dyttfDB9aWYoMTE9PSgwfEEpKXtpZigoMHx3KT09KDB8Yykpe209MHxuTChsLGMrMnwwLGYscCk7YnJl''@;'; + put 'put ''YWt9YVtwPj4yXT13LG09NjticmVha31pZigxND09KDB8QSkpe2FbcD4+Ml09dyxtPTA7YnJlYWt9aWYoMTU9PSgwfEEpKXtpZigoMHx3KT09KDB8Yykpe2FbcD4+Ml09YysyLG09NzticmVha31hW3A+PjJdPXcsbT02O2JyZWFrfWlmKDE4PT0oMHxBKSl7aWYoKDB8dykhPSgwfGMpKXthW3A+''@;'; + put 'put ''PjJdPXcsbT02O2JyZWFrfWlmKChiLSh3PWMrMnwwKXwwKTw9MSl7bT0tMzticmVha31BPTB8ZmVbdz4+MF0sbT0obT0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8SnRbaysoMjU1JkEpPj4wXSxhW3A+PjJdPTEwPT0oMHxtKT9jKzR8MDp3LG09NzticmVha31pZigyNT09KDB8''@;'; + put 'put ''QSkpe2lmKCgwfHcpPT0oMHxjKSl7YVtwPj4yXT1jKzIsbT0zOTticmVha31hW3A+PjJdPXcsbT02O2JyZWFrfWlmKDMwPT0oMHxBKSl7YVtwPj4yXT13LG09NjticmVha319ZWxzZSBtPS0xO2Vsc2UgbT0tNH13aGlsZSgwKTtyZXR1cm4gMHxtfSxmdW5jdGlvbiBOSyhsLGMsZixwKXtsfD0w''@;'; + put 'put ''LGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wO2Rve2lmKGM+Pj4wPGY+Pj4wKWlmKCgoYj1mKS1jfDApPjEpe2s9bCs3MnwwLHc9YztlOmZvcig7Oyl7aWYoKGItd3wwKTw9MSl7QT0yOTticmVha31zd2l0Y2goQT0wfGZlW3c+PjBdLDB8KG09KG09MHxmZVt3KzE+PjBd''@;'; + put 'put ''KTw8MjQ+PjI0PzB8ZjAobSxBKTowfEp0W2srKDI1NSZBKT4+MF0pKXtjYXNlIDM6QT0xMTticmVhayBlO2Nhc2UgMzA6QT0xNDticmVhayBlO2Nhc2UgMTA6QT0xNzticmVhayBlO2Nhc2UgOTpBPTIwO2JyZWFrIGU7Y2FzZSA1OmRlZmF1bHQ6bT0yO2JyZWFrO2Nhc2UgNjptPTM7YnJlYWs7''@;'; + put 'put ''Y2FzZSA3Om09NH13PXcrbXwwfWlmKDExPT0oMHxBKSl7aWYoKDB8dyk9PSgwfGMpKXttPTB8bkwobCxjKzJ8MCxmLHApO2JyZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMTQ9PSgwfEEpKXtpZigoMHx3KT09KDB8Yykpe209MjI9PSgwfChtPTB8ckwobCxjKzJ8MCxmLHApKSk/MDptO2Jy''@;'; + put 'put ''ZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMTc9PSgwfEEpKXtpZigoMHx3KT09KDB8Yykpe2FbcD4+Ml09YysyLG09NzticmVha31hW3A+PjJdPXcsbT02O2JyZWFrfWlmKDIwPT0oMHxBKSl7aWYoKDB8dykhPSgwfGMpKXthW3A+PjJdPXcsbT02O2JyZWFrfWlmKChiLSh3PWMrMnwwKXww''@;'; + put 'put ''KTw9MSl7bT0tMzticmVha31BPTB8ZmVbdz4+MF0sbT0obT0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8SnRbaysoMjU1JkEpPj4wXSxhW3A+PjJdPTEwPT0oMHxtKT9jKzR8MDp3LG09NzticmVha31pZigyOT09KDB8QSkpe2FbcD4+Ml09dyxtPTY7YnJlYWt9fWVsc2UgbT0t''@;'; + put 'put ''MTtlbHNlIG09LTR9d2hpbGUoMCk7cmV0dXJuIDB8bX0sZnVuY3Rpb24gV3ZlKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbSxBPTA7Zm9yKG09Znw9MCxsPWN8PTA7Oyl7aWYoISgoYz0wfGZlW3A+PjBdKTw8MjQ+PjI0KSl7QT03O2JyZWFrfWlmKChtLWx8MCk8Mil7bD0wO2JyZWFrfWlmKDB8''@;'; + put 'put ''ZmVbbCsxPj4wXSl7bD0wO2JyZWFrfWlmKCgwfGZlW2w+PjBdKSE9Yzw8MjQ+PjI0KXtsPTA7YnJlYWt9cD1wKzF8MCxsPWwrMnwwfXJldHVybiA3PT0oMHxBKSYmKGw9KDB8bCk9PSgwfGYpJjEpLDB8bH0sZnVuY3Rpb24gXzFlKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBSLG09MCxB''@;'; + put 'put ''PTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtSPTcyKyhsfD0wKXwwLE09MCxEPTAsbD0xO2U6Zm9yKDs7KXN3aXRjaChiPTB8ZmVbKGs9YysyfDApPj4wXSwwfChtPSh3PShtPTB8ZmVbKEE9YyszfDApPj4wXSk8PDI0Pj4yND09MCk/MHxKdFtSKygyNTUmYik+PjBdOjB8ZjAobSxiKSkpe2Nhc2Ug''@;'; + put 'put ''NTpjYXNlIDI0OmNhc2UgMjI6Y2FzZSAyOTppZigwfGwpe2M9ayxsPUE9bCxEPXc9RCxNPWI9TTtjb250aW51ZSBlfWlmKCgwfEQpPj0oMHxmKSl7bD0xLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlfWFbcCsoRDw8NCk+PjJdPWssZmVbcCsoRDw8NCkrMTI+PjBdPTEsbD0xLGM9ayxEPXc9''@;'; + put 'put ''RCxNPWI9TTtjb250aW51ZSBlO2Nhc2UgNjppZigwfGwpe2M9QSxsPXc9bCxEPWI9RCxNPWs9TTtjb250aW51ZSBlfWlmKCgwfEQpPj0oMHxmKSl7bD0xLGM9QSxEPWI9RCxNPWs9TTtjb250aW51ZSBlfWFbcCsoRDw8NCk+PjJdPWssZmVbcCsoRDw8NCkrMTI+PjBdPTEsbD0xLGM9QSxEPWI9''@;'; + put 'put ''RCxNPWs9TTtjb250aW51ZSBlO2Nhc2UgNzpsfHwoKDB8RCk8KDB8ZikmJihhW3ArKEQ8PDQpPj4yXT1rLGZlW3ArKEQ8PDQpKzEyPj4wXT0xKSxsPTEpLGM9Yys0fDAsRD1iPUQsTT1rPU07Y29udGludWUgZTtjYXNlIDEyOmlmKDIhPSgwfGwpKXtpZigoMHxEKT49KDB8Zikpe009MTIsbD0y''@;'; + put 'put ''LGM9ayxEPWI9RDtjb250aW51ZSBlfWFbcCsoRDw8NCkrND4+Ml09Yys0LE09MTIsbD0yLGM9ayxEPWI9RDtjb250aW51ZSBlfWlmKDEyIT0oMHxNKSl7bD0yLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlfSgwfEQpPCgwfGYpJiYoYVtwKyhEPDw0KSs4Pj4yXT1rKSxNPTEyLEQ9RCsxfDAs''@;'; + put 'put ''bD0wLGM9aztjb250aW51ZSBlO2Nhc2UgMTM6aWYoMiE9KDB8bCkpe2lmKCgwfEQpPj0oMHxmKSl7TT0xMyxsPTIsYz1rLEQ9Yj1EO2NvbnRpbnVlIGV9YVtwKyhEPDw0KSs0Pj4yXT1jKzQsTT0xMyxsPTIsYz1rLEQ9Yj1EO2NvbnRpbnVlIGV9aWYoMTMhPSgwfE0pKXtsPTIsYz1rLEQ9dz1E''@;'; + put 'put ''LE09Yj1NO2NvbnRpbnVlIGV9KDB8RCk8KDB8ZikmJihhW3ArKEQ8PDQpKzg+PjJdPWspLE09MTMsRD1EKzF8MCxsPTAsYz1rO2NvbnRpbnVlIGU7Y2FzZSAzOmlmKCgwfEQpPj0oMHxmKSl7Yz1rLGw9QT1sLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9ZmVbcCsoRDw8NCkrMTI+PjBdPTAsYz1r''@;'; + put 'put ''LGw9QT1sLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSAyMTpzd2l0Y2goMHxsKXtjYXNlIDE6bD0wLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlO2Nhc2UgMjpicmVhaztkZWZhdWx0OmM9ayxsPUE9bCxEPXc9RCxNPWI9TTtjb250aW51ZSBlfWlmKCgwfEQpPj0oMHxmKSl7bD0yLGM9''@;'; + put 'put ''ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlfWlmKCEoMHxmZVsoQT1wKyhEPDw0KSsxMnwwKT4+MF0pKXtsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9ZG97aWYodyYoMHxrKSE9KDB8YVtwKyhEPDw0KSs0Pj4yXSkmYjw8MjQ+PjI0PT0zMil7aWYobD0wfGZlW2MrND4+MF0sKG09MHxm''@;'; + put 'put ''ZVtjKzU+PjBdKTw8MjQ+PjI0KWw9MHxmMChtLGwpO2Vsc2V7aWYobDw8MjQ+PjI0PT0zMilicmVhaztsPTB8SnRbUisoMjU1JmwpPj4wXX1pZigoMHxsKSE9KDB8TSkpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZX19fXdoaWxlKDApO2ZlW0E+PjBdPTAsbD0yLGM9ayxEPXc9RCxN''@;'; + put 'put ''PWI9TTtjb250aW51ZSBlO2Nhc2UgMTA6Y2FzZSA5OnN3aXRjaCgwfGwpe2Nhc2UgMTpsPTAsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSAyOmJyZWFrO2RlZmF1bHQ6Yz1rLGw9QT1sLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9aWYoKDB8RCk+PSgwfGYpKXtsPTIsYz1rLEQ9dz1E''@;'; + put 'put ''LE09Yj1NO2NvbnRpbnVlIGV9ZmVbcCsoRDw8NCkrMTI+PjBdPTAsbD0yLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlO2Nhc2UgMTc6Y2FzZSAxMTppZigyPT0oMHxsKSl7bD0yLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlfWJyZWFrIGU7ZGVmYXVsdDpjPWssbD1BPWwsRD13PUQsTT1i''@;'; + put 'put ''PU07Y29udGludWUgZX1yZXR1cm4gMHxEfSxmdW5jdGlvbiBicChsLGMsZixwKXtwfD0wO3ZhciBBLHcsbT0wLGI9MDt3PShmfD0wKS0yfDAsQT03MisobHw9MCl8MCxmPWN8PTA7ZTpmb3IoOzspe2lmKCh3LShtPWYrMnwwKXwwKTw9MSl7Zj0xO2JyZWFrfXN3aXRjaChjPTB8ZmVbbT4+MF0s''@;'; + put 'put ''MHwoZj0obD0oZj0wfGZlW2YrMz4+MF0pPDwyND4+MjQ9PTApPzB8SnRbQSsoMjU1JmMpPj4wXTowfGYwKGYsYykpKXtjYXNlIDIzOmNhc2UgMTk6Y2FzZSAzMDpjYXNlIDMzOmNhc2UgMTY6Y2FzZSAxODpjYXNlIDEwOmNhc2UgOTpjYXNlIDE1OmNhc2UgMTQ6Y2FzZSAxNzpjYXNlIDM1OmNh''@;'; + put 'put ''c2UgMzQ6Y2FzZSAzMjpjYXNlIDMxOmNhc2UgMTM6Y2FzZSAyNzpjYXNlIDI0OmNhc2UgMjU6Zj1tO2NvbnRpbnVlIGU7Y2FzZSAyMTppZihsJmM8PDI0Pj4yND09OSl7Yj0xMjticmVhayBlfWY9bTtjb250aW51ZSBlO2Nhc2UgMjI6Y2FzZSAyNjppZighbCl7Yj0xMjticmVhayBlfWlmKGM8''@;'; + put 'put ''PDI0Pj4yND49MCl7Zj1tO2NvbnRpbnVlIGV9YnJlYWs7ZGVmYXVsdDppZighbCl7Yj0xMjticmVhayBlfX1zd2l0Y2goYzw8MjQ+PjI0fDApe2Nhc2UgNjQ6Y2FzZSAzNjpmPW07YnJlYWs7ZGVmYXVsdDpiPTEyO2JyZWFrIGV9fXJldHVybiAxMj09KDB8YikmJihhW3A+PjJdPW0sZj0wKSww''@;'; + put 'put ''fGZ9LGZ1bmN0aW9uIElQKGwsYyxmLHApe2x8PTAsY3w9MCxsPTA9PSgwfChmfD0wKSk7ZG97aWYoYyl7aWYobCl7RnQoYyksbD0wO2JyZWFrfWw9MHxVYShjLGYpO2JyZWFrfWw9bD8wOjB8QjAoZil9d2hpbGUoMCk7cmV0dXJuIDB8bH0saDAscUcsZnVuY3Rpb24gd2xlKGwsYyxmLHApe2x8''@;'; + put 'put ''PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wO3c9MD09KDB8KHA9MHxhWyhmfD0wKT4+Ml0pKSwobD0wfGFbKGN8PTApPj4yXSk/dz9sPTE6KGw9MHxqaShsLHApKXx8KGI9NSk6dz9iPTU6bD0tMTtkb3tpZig1PT0oMHxiKSl7aWYodz0wPT0oMHwocD0wfGFbZis0Pj4yXSkpLGw9MHxhW2Mr''@;'; + put 'put ''ND4+Ml0pe2lmKHcpe2w9MTticmVha31pZigwfChsPTB8amkobCxwKSkpYnJlYWt9ZWxzZSBpZighdyl7bD0tMTticmVha30obD0oMTI3JmFbYysyND4+Ml0pLSgxMjcmYVtmKzI0Pj4yXSl8MCl8fChsPShBPStfW2MrMTY+PjNdKTwobT0rX1tmKzE2Pj4zXSk/LTE6QT5tJjEpfX13aGlsZSgw''@;'; + put 'put ''KTtyZXR1cm4gMHxsfSxmdW5jdGlvbiBtRyhsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbT0wO3JldHVybiBtPTB8ZnVuY3Rpb24gdl8obCl7dmFyIGM7cmV0dXJuIDB8KGw9MHxtaVs2MyYoZmVbMjMyKyhsfD0wKT4+MF08PDI0Pj4yND8zODozNyldKGwrMTQ4fDAsbCsxNDR8MCwwfGFb''@;'; + put 'put ''KGM9bCsyMjh8MCk+PjJdKT8wOjB8SG0obCwwfGFbYz4+Ml0pKX0obHw9MCksbXx8KGFbbCsyNzY+PjJdPTU3LG09MHxsQShsLGMsZixwKSksMHxtfSxsQSxBXyxmdW5jdGlvbiBIQihsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgQSxtPTA7cmV0dXJuIEE9YWUsYWU9YWUrMTZ8MCxhWyht''@;'; + put 'put ''PUEpPj4yXT1jfD0wLDAhPSgwfChjPTB8ZkEobCwwfGFbbCsxNDQ+PjJdLG0sZixwLDA9PSgwfGZlW2wrNDgwPj4wXSkmMSkpKXwwPT0oMHwobT0wfGFbbT4+Ml0pKXx8KGFbbCsyNzY+PjJdPTU3LGM9MHxsQShsLG0sZixwKSksYWU9QSwwfGN9LGZ1bmN0aW9uIGtfKGwsYyxmLHApe2N8PTAs''@;'; + put 'put ''Znw9MCxwfD0wO3ZhciBrLE0sRyxLLG09MCxBPTAsdz0wLGI9MCxEPTAsUj0wLHBlPTAsZ2U9MDtLPWFlLGFlPWFlKzE2fDAsRz1LLE09MHxhWyhrPTI5NisobHw9MCl8MCk+PjJdO2Rve2lmKE0pe2lmKG09KGI9MHxhWyhBPTQrKEQ9MHxhW00rMTI+PjJdKXwwKT4+Ml0pKygwfGFbKHc9RCsx''@;'; + put 'put ''MnwwKT4+Ml0pfDAsYj1iKygwfGFbRCs4Pj4yXSl8MCxhW0c+PjJdPW0sMHxmZVsoUj1EKzMzfDApPj4wXT8ocGU9MHxxMFsxMjcmYVsocGU9MHxhWyhnZT1sKzIyNHwwKT4+Ml0pPj4yXV0ocGUsbSxiLEcpLG09MHxzQShsLDB8YVtnZT4+Ml0sbSxiLHBlLDB8YVtHPj4yXSxHLDApKTptPTB8''@;'; + put 'put ''Qm0obCwwfGFbTSsxNj4+Ml0sMHxhW2wrMjI0Pj4yXSxtLGIsRywwKSwhbSl7aWYoKDB8YikhPSgwfChtPTB8YVtHPj4yXSkpJiYzPT0oMHxhW2wrNDc2Pj4yXSkpe2Fbdz4+Ml09bS0oMHxhW0E+PjJdKSxtPTA7YnJlYWt9aWYoZmVbRCszMj4+MF09MCxhW2s+PjJdPWFbKGdlPU0rOHwwKT4+''@;'; + put 'put ''Ml0sYVtnZT4+Ml09YVsobT1sKzMwMHwwKT4+Ml0sYVttPj4yXT1NLG09bCsyNzZ8MCwwfGZlW1I+PjBdKXthW20+PjJdPTU3LG09MHxxMFsxMjcmYVsobT0wfGFbKGdlPWwrMTQ0fDApPj4yXSk+PjJdXShtLGMsZixHKSxtPTB8c0EobCwwfGFbZ2U+PjJdLGMsZixtLDB8YVtHPj4yXSxwLDA9''@;'; + put 'put ''PSgwfGZlW2wrNDgwPj4wXSkmMSk7YnJlYWt9YVttPj4yXT01OCxtPTB8Qm0obCwwIT0oMHxhW2wrNDcyPj4yXSkmMSwwfGFbbCsxNDQ+PjJdLGMsZixwLDA9PSgwfGZlW2wrNDgwPj4wXSkmMSk7YnJlYWt9fWVsc2UgbT0yM313aGlsZSgwKTtyZXR1cm4gYWU9SywwfG19LGZ1bmN0aW9uIHZH''@;'; + put 'put ''KGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBBLG09MDtBPWFlLGFlPWFlKzE2fDAsYVsobT1BKT4+Ml09Y3w9MCxjPTB8UG0obCwwfGFbbCsxNDQ+PjJdLG0sZixwLDA9PSgwfGZlW2wrNDgwPj4wXSkmMSksbT0wfGFbbT4+Ml07ZG97aWYoISgwIT0oMHxjKXwwPT0oMHxtKSkpe2lmKGM9''@;'; + put 'put ''bCsyNzZ8MCwwfGFbbCs0NzI+PjJdKXthW2M+PjJdPTYzLGM9MHxseChsLG0sZixwKTticmVha31hW2M+PjJdPTU4LGM9MHxBXyhsLG0sZixwKTticmVha319d2hpbGUoMCk7cmV0dXJuIGFlPUEsMHxjfSxheCxseCxVQixmdW5jdGlvbiBYSyhsLGMsZixwKXtyZXR1cm4gMHwobD0wfFVCKGx8''@;'; + put 'put ''PTAsY3w9MCxmfD0wLHB8PTApKSYmKGZlW2wrNzIrNTg+PjBdPTIzKSwwfGx9LGZ1bmN0aW9uIHlHKGwsYyxmLHApe3JldHVybiAwfGFbMjgwKyhsfD0wKT4+Ml19LGZ1bmN0aW9uIE8xZShsLGMsZixwKXtyZXR1cm4gMHxjaig1ODk0OCxsfD0wLDAsY3w9MCxmfD0wLHB8PTApfSxmdW5jdGlv''@;'; + put 'put ''biB1aihsLGMsZixwKXtyZXR1cm4gMHxjaig1ODk0OCxsfD0wLDEsY3w9MCxmfD0wLHB8PTApfSxmdW5jdGlvbiBLMWUobCxjLGYscCl7cmV0dXJuIDB8Y2ooNjA0NTYsbHw9MCwwLGN8PTAsZnw9MCxwfD0wKX0sZnVuY3Rpb24gJDFlKGwsYyxmLHApe3JldHVybiAwfGNqKDYwNDU2LGx8PTAs''@;'; + put 'put ''MSxjfD0wLGZ8PTAscHw9MCl9LHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBh''@;'; + put 'put ''LHBhLHBhLHBhLHBhLHBhLHBhLHBhLHBhXSxPMj1bSm8sZnVuY3Rpb24gY0MobCxjLGYscCxtKXtyZXR1cm4gbHw9MCxwfD0wLG18PTAsKGZ8PTApPyhsPW0/MHxyMChsLGYpOjB8WnIobCxmKSxhW3A+PjJdPWwsYVtwKzQ+PjJdPTApOihmPTB8YVsobT0xMzkyKT4+Ml0sbT0wfGFbbSs0Pj4y''@;'; + put 'put ''XSxhW3A+PjJdPWYsYVtwKzQ+PjJdPW0sbT0wfHpsKDB8ZiwwfG0sMiwwKSxhWyhwPTEzOTIpPj4yXT1tLGFbcCs0Pj4yXT1EbiksMX0sZnVuY3Rpb24gajIobCxjLGYscCxtKXtyZXR1cm4gMCwwfSxmdW5jdGlvbiBlSihsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIg''@;'; + put 'put ''RyxLLGJlLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxwZT0wLGdlPTAsT2U9MDtiZT1hZSxhZT1hZSs4MHwwLEs9YmUrNjR8MCxHPWJlKzMyfDAsZ2U9YmU7ZTpkb3tpZigwfGZlW2MrMjg+PjBdKXtmb3IoQT0rX1tjPj4zXSxiPTQ4KyhrPTB8YVsxMisoMHxhWyhSPWwrMTZ8MCk+PjJd''@;'; + put 'put ''KT4+Ml0pfDAsaz1rKzU2fDAsYz0wOzspe2lmKCgwfGMpPj0oMHxhW2I+PjJdKSlicmVhayBlO2lmKE09MD09KDEmYVsxMTYrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+Ml18MCksRD0wfGFbKDB8YVtrPj4yXSkrKGM8PDIpPj4yXSxBPj0odz0rKDB8fn4rX1soTT9EKzE2fDA6RCsyNHwwKT4+''@;'; + put 'put ''M10pKSYmQTw9KHBlPSsoMHx+fitfWyhNP0QrMzJ8MDpEKzQwfDApPj4zXSkpKWJyZWFrO2M9YysxfDB9MSZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXT8obD0xNisoMHxhW1I+PjJdKXwwLGFbRz4+Ml09YVsoRD0xNisoMHxhWygwfGFbaz4+Ml0pKyhjPDwyKT4+Ml0pfDApPj4y''@;'; + put 'put ''XSxhW0crND4+Ml09YVtEKzQ+PjJdLGFbRys4Pj4yXT1hW0QrOD4+Ml0sYVtHKzEyPj4yXT1hW0QrMTI+PjJdLGFbRysxNj4+Ml09YVtEKzE2Pj4yXSxhW0crMjA+PjJdPWFbRCsyMD4+Ml0sYVtHKzI0Pj4yXT1hW0QrMjQ+PjJdLGFbRysyOD4+Ml09YVtEKzI4Pj4yXSxhW0s+PjJdPWFbbD4+''@;'; + put 'put ''Ml0sYVtLKzQ+PjJdPWFbbCs0Pj4yXSxhW0srOD4+Ml09YVtsKzg+PjJdLGFbSysxMj4+Ml09YVtsKzEyPj4yXSx6b2UoZ2UsRyxLKSxhW3A+PjJdPWFbZ2U+PjJdLGFbcCs0Pj4yXT1hW2dlKzQ+PjJdLGFbcCs4Pj4yXT1hW2dlKzg+PjJdLGFbcCsxMj4+Ml09YVtnZSsxMj4+Ml0sYVtwKzE2''@;'; + put 'put ''Pj4yXT1hW2dlKzE2Pj4yXSxhW3ArMjA+PjJdPWFbZ2UrMjA+PjJdLGFbcCsyND4+Ml09YVtnZSsyND4+Ml0sYVtwKzI4Pj4yXT1hW2dlKzI4Pj4yXSxBPStfWzgwKyhnZT0wfGFbUj4+Ml0pPj4zXSx3PStfW2dlKzI0Pj4zXSk6KF9bcD4+M109KE9lPStfWzE2KyhnZT0wfGFbUj4+Ml0pPj4z''@;'; + put 'put ''XSkrdyxfW3ArOD4+M109KHc9K19bZ2UrMjQ+PjNdKS0uNSooQT0rX1tnZSs4MD4+M10pLF9bcCsxNj4+M109T2UrcGUpLF9bcCsyND4+M109LjUqQSt3LGFbbT4+Ml09MX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gYWU9YmUsMHxmfSxmdW5jdGlvbiBKayhsLGMsZixwLG0pe2x8PTAsY3w9''@;'; + put 'put ''MCxmfD0wLHB8PTA7dmFyIEEsdz0wLGI9MDtmb3IoQT1tfD0wOzspe2lmKCgwfCh3PTB8YVtjPj4yXSkpPT0oMHxmKSl7bD0wO2JyZWFrfWlmKGw9MHxhW3A+PjJdLDEyOCYoYj0wfEp0W3c+PjBdKSl7aWYoKEEtbHwwKTwyKXtsPTI7YnJlYWt9YVtwPj4yXT1sKzEsZmVbbD4+MF09Yj4+PjZ8''@;'; + put 'put ''MTkyLGFbcD4+Ml09MSsodz0wfGFbcD4+Ml0pLGZlW3c+PjBdPTYzJmJ8MTI4LGFbYz4+Ml09MSsoMHxhW2M+PjJdKX1lbHNle2lmKCgwfGwpPT0oMHxtKSl7bD0yO2JyZWFrfWFbYz4+Ml09dysxLHc9MHxmZVt3Pj4wXSxhW3A+PjJdPTErKGI9MHxhW3A+PjJdKSxmZVtiPj4wXT13fX1yZXR1''@;'; + put 'put ''cm4gMHxsfSxmdW5jdGlvbiBPSyhsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDtmb3IodmFyIEE9MCx3PTA7KEE9KGw9MHxhW2M+PjJdKT4+PjA8Zj4+PjApJih3PTB8YVtwPj4yXSk+Pj4wPG0+Pj4wOylhW2M+PjJdPWwrMSxBPTB8SnRbbD4+MF0sYVtwPj4yXT0yKyh3PTB8''@;'; + put 'put ''YVtwPj4yXSkscnRbdz4+MV09QTtyZXR1cm4gMHwoKDB8dykhPSgwfG0pfDFeQT8wOjIpfSxmdW5jdGlvbiBOdmUobCxjLGYscCxtKXtsfD0wLGN8PTAscHw9MCxtfD0wO3ZhciBiLEE9MCx3PTA7cmV0dXJuIGI9YWUsYWU9YWUrMTZ8MCxhWyhBPWIpPj4yXT1mfD0wLChmLSh3PTB8YVtjPj4y''@;'; + put 'put ''XSl8MCk+KDB8KGw9bS0oMHxhW3A+PjJdKXwwKSk/KGFbQT4+Ml09bD13K2x8MCxtPTEpOihtPTAsbD1mKSxmdW5jdGlvbiBZQihsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTA7Zj0wfGFbKGN8PTApPj4yXSxwPTA7ZTpmb3IoOyEoZj4+PjA8PWw+Pj4wKTspe209MHxKdFsoQT1m''@;'; + put 'put ''Ky0xfDApPj4wXTtkb3tpZigyNDAhPSgyNDgmbXwwKSl7aWYoMjI0PT0oMjQwJm18MCkpe2lmKChwKzF8MCk+Pj4wPjIpe3c9ODticmVhayBlfXA9MDticmVha31pZigxOTI9PSgyMjQmbXwwKSl7aWYoKHArMXwwKT4+PjA+MSl7dz0xMTticmVhayBlfXA9MDticmVha31pZigxMjgmbSlicmVh''@;'; + put 'put ''azticmVhayBlfWlmKChwKzF8MCk+Pj4wPjMpe3c9NTticmVhayBlfXA9MH13aGlsZSgwKTtmPUEscD1wKzF8MH01PT0oMHx3KT9mPWYrM3wwOjg9PSgwfHcpP2Y9ZisyfDA6MTE9PSgwfHcpJiYoZj1mKzF8MCksYVtjPj4yXT1mfSh3LEEpLGdvKDB8YVtwPj4yXSwwfChmPTB8YVtjPj4yXSks''@;'; + put 'put ''MHwoQT0odz0wfGFbQT4+Ml0pLWZ8MCkpLGFbYz4+Ml09KDB8YVtjPj4yXSkrQSxhW3A+PjJdPSgwfGFbcD4+Ml0pK0EsYWU9YiwwfChtPzI6dz4+PjA8bD4+PjAmMSl9LGZ1bmN0aW9uIG0xZShsLGMsZixwLG0pe3ZhciB3LGIsayxBPTAsTT0wLEQ9MCxSPTA7dz03MisobHw9MCl8MCxiPWZ8''@;'; + put 'put ''PTAsaz1tfD0wLE09MHxhWyhjfD0wKT4+Ml0sRD0wfGFbKHB8PTApPj4yXTtlOmZvcig7Oyl7aWYoIShEPj4+MDxtPj4+MCYobD1NPj4+MDxmPj4+MCkpKXtSPTEyO2JyZWFrfXN3aXRjaCgwfGZlW3crKEE9MjU1JihsPTB8ZmVbTT4+MF0pKT4+MF0pe2Nhc2UgNTppZigoYi1NfDApPDIpe2w9''@;'; + put 'put ''MTticmVhayBlfXJ0W0Q+PjFdPSgzMSZsKTw8Nnw2MyZmZVtNKzE+PjBdLE09TSsyfDAsRD1EKzJ8MDtjb250aW51ZSBlO2Nhc2UgNjppZigoYi1NfDApPDMpe2w9MTticmVhayBlfXJ0W0Q+PjFdPSg2MyZmZVtNKzE+PjBdKTw8NnxBPDwxMnw2MyZmZVtNKzI+PjBdLE09TSszfDAsRD1EKzJ8''@;'; + put 'put ''MDtjb250aW51ZSBlO2Nhc2UgNzppZigoay1EfDApPDQpe2w9MjticmVhayBlfWlmKChiLU18MCk8NCl7bD0xO2JyZWFrIGV9cnRbRD4+MV09KEE9KCg2MyZmZVtNKzE+PjBdKTw8MTJ8KDcmbCk8PDE4fCg2MyZmZVtNKzI+PjBdKTw8Nnw2MyZmZVtNKzM+PjBdKS02NTUzNnwwKT4+PjEwfDU1''@;'; + put 'put ''Mjk2LHJ0W0QrMj4+MV09MTAyMyZBfDU2MzIwLE09TSs0fDAsRD1EKzR8MDtjb250aW51ZSBlO2RlZmF1bHQ6cnRbRD4+MV09bDw8MjQ+PjI0LE09TSsxfDAsRD1EKzJ8MDtjb250aW51ZSBlfX1yZXR1cm4gMTI9PSgwfFIpJiYobD1sPzI6MCksYVtjPj4yXT1NLGFbcD4+Ml09RCwwfGx9LGZ1''@;'; + put 'put ''bmN0aW9uIFkxZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDtmb3IodmFyIEE9MCx3PTA7KEE9KGw9MHxhW2M+PjJdKT4+PjA8Zj4+PjApJih3PTB8YVtwPj4yXSk+Pj4wPG0+Pj4wOylhW2M+PjJdPWwrMSxBPTB8ZmVbbD4+MF0sYVtwPj4yXT0xKyh3PTB8YVtwPj4yXSks''@;'; + put 'put ''ZmVbdz4+MF09QTtyZXR1cm4gMHwoKDB8dykhPSgwfG0pfDFeQT8wOjIpfSxmdW5jdGlvbiBxdmUobCxjLGYscCxtKXtsfD0wLHB8PTA7dmFyIGIsayxNLEE9MCx3PTAsRD0wLFI9MDtrPWI9KHc9MHxhWyhjfD0wKT4+Ml0pKygoZnw9MCktdyYtMil8MCxNPW18PTA7ZTpmb3IoOzspe2lmKHc+''@;'; + put 'put ''Pj4wPj1iPj4+MCl7bD0wO2JyZWFrfXN3aXRjaChBPTB8ZmVbdysxPj4wXSxmPTI1NSYobD0wfGZlW3c+PjBdKSxsPDwyND4+MjQpe2Nhc2UgMDppZihBPDwyND4+MjQ+LTEpe2lmKCgwfChsPTB8YVtwPj4yXSkpPT0oMHxtKSl7bD0yO2JyZWFrIGV9YVtwPj4yXT1sKzEsZmVbbD4+MF09QSxs''@;'; + put 'put ''PXd9ZWxzZSBEPTc7YnJlYWs7Y2FzZSA3OmNhc2UgNjpjYXNlIDU6Y2FzZSA0OmNhc2UgMzpjYXNlIDI6Y2FzZSAxOkQ9NzticmVhaztjYXNlLTM3OmNhc2UtMzg6Y2FzZS0zOTpjYXNlLTQwOmlmKChNLShsPTB8YVtwPj4yXSl8MCk8NCl7bD0yO2JyZWFrIGV9aWYoKGstd3wwKTw0KXtsPTE7''@;'; + put 'put ''YnJlYWsgZX1BPTErKGY8PDImMTJ8KFI9MjU1JkEpPj4+Nil8MCxhW3A+PjJdPWwrMSxmZVtsPj4wXT1BPj4+MnwyNDAsYVtwPj4yXT0xKyhsPTB8YVtwPj4yXSksZmVbbD4+MF09Uj4+PjImMTV8QTw8NCY0OHwxMjgsZj0yNTUmKFI8PDQmNDh8KEE9MHxKdFt3KzM+PjBdKT4+PjZ8ZmVbKGw9''@;'; + put 'put ''dysyfDApPj4wXTw8MiYxMnwxMjgpLGFbcD4+Ml09MSsodz0wfGFbcD4+Ml0pLGZlW3c+PjBdPWYsYVtwPj4yXT0xKyh3PTB8YVtwPj4yXSksZmVbdz4+MF09NjMmQXwxMjg7YnJlYWs7ZGVmYXVsdDppZigoTS0obD0wfGFbcD4+Ml0pfDApPDMpe2w9MjticmVhayBlfWFbcD4+Ml09bCsxLGZl''@;'; + put 'put ''W2w+PjBdPWY+Pj40fDIyNCxSPTI1NSZBLGFbcD4+Ml09MSsobD0wfGFbcD4+Ml0pLGZlW2w+PjBdPVI+Pj42fGY8PDImNjB8MTI4LGFbcD4+Ml09MSsobD0wfGFbcD4+Ml0pLGZlW2w+PjBdPTYzJlJ8MTI4LGw9d31pZig3PT0oMHxEKSl7aWYoRD0wLChNLShsPTB8YVtwPj4yXSl8MCk8Mil7''@;'; + put 'put ''bD0yO2JyZWFrfVI9MjU1JkEsYVtwPj4yXT1sKzEsZmVbbD4+MF09Uj4+PjZ8Zjw8MnwxOTIsYVtwPj4yXT0xKyhsPTB8YVtwPj4yXSksZmVbbD4+MF09NjMmUnwxMjgsbD13fXc9bCsyfDB9cmV0dXJuIGFbYz4+Ml09dywwfGx9LGZ1bmN0aW9uIF9wKGwsYyxmLHAsbSl7bHw9MDt2YXIgQT0w''@;'; + put 'put ''LHc9MCxiPTA7Zm9yKGw9KEE9MHxhWyhjfD0wKT4+Ml0pKyhiPShmfD0wKS1BJi0yKXwwLCgwfGIpPigobXw9MCktKDB8YVsocHw9MCk+PjJdKXwwKT8oYj0xJihmPSgtOCZmZVsodz1sKy0yfDApPj4wXSk8PDI0Pj4yND09LTQwKSxsPWY/dzpsKTpiPTAsZj1BOyhBPWY+Pj4wPGw+Pj4wKSYo''@;'; + put 'put ''dz0wfGFbcD4+Ml0pPj4+MDxtPj4+MDspQT02NTUzNSYoKDB8SnRbZj4+MF0pPDw4fDB8SnRbZisxPj4wXSksYVtwPj4yXT13KzIscnRbdz4+MV09QSxhW2M+PjJdPXc9MisoMHxhW2M+PjJdKXwwLGY9dztyZXR1cm4gMHwoKDB8dykhPSgwfG0pfDFeQT9iOjIpfSxmdW5jdGlvbiBrMWUobCxj''@;'; + put 'put ''LGYscCxtKXtsfD0wLHB8PTA7dmFyIGIsayxNLEE9MCx3PTAsRD0wLFI9MDtrPWI9KHc9MHxhWyhjfD0wKT4+Ml0pKygoZnw9MCktdyYtMil8MCxNPW18PTA7ZTpmb3IoOzspe2lmKHc+Pj4wPj1iPj4+MCl7bD0wO2JyZWFrfXN3aXRjaChBPTB8ZmVbdz4+MF0sZj0yNTUmKGw9MHxmZVt3KzE+''@;'; + put 'put ''PjBdKSxsPDwyND4+MjQpe2Nhc2UgMDppZihBPDwyND4+MjQ+LTEpe2lmKCgwfChsPTB8YVtwPj4yXSkpPT0oMHxtKSl7bD0yO2JyZWFrIGV9YVtwPj4yXT1sKzEsZmVbbD4+MF09QSxsPXd9ZWxzZSBEPTc7YnJlYWs7Y2FzZSA3OmNhc2UgNjpjYXNlIDU6Y2FzZSA0OmNhc2UgMzpjYXNlIDI6''@;'; + put 'put ''Y2FzZSAxOkQ9NzticmVhaztjYXNlLTM3OmNhc2UtMzg6Y2FzZS0zOTpjYXNlLTQwOmlmKChNLShsPTB8YVtwPj4yXSl8MCk8NCl7bD0yO2JyZWFrIGV9aWYoKGstd3wwKTw0KXtsPTE7YnJlYWsgZX1BPTErKGY8PDImMTJ8KFI9MjU1JkEpPj4+Nil8MCxhW3A+PjJdPWwrMSxmZVtsPj4wXT1B''@;'; + put 'put ''Pj4+MnwyNDAsYVtwPj4yXT0xKyhsPTB8YVtwPj4yXSksZmVbbD4+MF09Uj4+PjImMTV8QTw8NCY0OHwxMjgsZj0yNTUmKFI8PDQmNDh8KEE9MHxKdFsobD13KzJ8MCk+PjBdKT4+PjZ8ZmVbdyszPj4wXTw8MiYxMnwxMjgpLGFbcD4+Ml09MSsodz0wfGFbcD4+Ml0pLGZlW3c+PjBdPWYsYVtw''@;'; + put 'put ''Pj4yXT0xKyh3PTB8YVtwPj4yXSksZmVbdz4+MF09NjMmQXwxMjg7YnJlYWs7ZGVmYXVsdDppZigoTS0obD0wfGFbcD4+Ml0pfDApPDMpe2w9MjticmVhayBlfWFbcD4+Ml09bCsxLGZlW2w+PjBdPWY+Pj40fDIyNCxSPTI1NSZBLGFbcD4+Ml09MSsobD0wfGFbcD4+Ml0pLGZlW2w+PjBdPVI+''@;'; + put 'put ''Pj42fGY8PDImNjB8MTI4LGFbcD4+Ml09MSsobD0wfGFbcD4+Ml0pLGZlW2w+PjBdPTYzJlJ8MTI4LGw9d31pZig3PT0oMHxEKSl7aWYoRD0wLChNLShsPTB8YVtwPj4yXSl8MCk8Mil7bD0yO2JyZWFrfVI9MjU1JkEsYVtwPj4yXT1sKzEsZmVbbD4+MF09Uj4+PjZ8Zjw8MnwxOTIsYVtwPj4y''@;'; + put 'put ''XT0xKyhsPTB8YVtwPj4yXSksZmVbbD4+MF09NjMmUnwxMjgsbD13fXc9bCsyfDB9cmV0dXJuIGFbYz4+Ml09dywwfGx9LGZ1bmN0aW9uIFMxZShsLGMsZixwLG0pe2x8PTA7dmFyIEE9MCx3PTAsYj0wO2ZvcihsPShBPTB8YVsoY3w9MCk+PjJdKSsoYj0oZnw9MCktQSYtMil8MCwoMHxiKT4o''@;'; + put 'put ''KG18PTApLSgwfGFbKHB8PTApPj4yXSl8MCk/KGI9MSYoZj0oLTgmZmVbMSsodz1sKy0yfDApPj4wXSk8PDI0Pj4yND09LTQwKSxsPWY/dzpsKTpiPTAsZj1BOyhBPWY+Pj4wPGw+Pj4wKSYodz0wfGFbcD4+Ml0pPj4+MDxtPj4+MDspQT02NTUzNSYoKDB8SnRbZisxPj4wXSk8PDh8MHxKdFtm''@;'; + put 'put ''Pj4wXSksYVtwPj4yXT13KzIscnRbdz4+MV09QSxhW2M+PjJdPXc9MisoMHxhW2M+PjJdKXwwLGY9dztyZXR1cm4gMHwoKDB8dykhPSgwfG0pfDFeQT9iOjIpfSxmdW5jdGlvbiBYQihsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGIsayxNLEQsUixHLEE9MCx3PTAsSz0wO2Zv''@;'; + put 'put ''cihHPWFlLGFlPWFlKzE2fDAsaz1HLE09MzY0KyhsfD0wKXwwLEQ9bCs4ODR8MCxSPWwrMzY4fDAsYj1sKzcyfDA7Oyl7aWYoKDB8KEE9MHxhW2M+PjJdKSk9PSgwfGYpKXttPTA7YnJlYWt9aWYodz1EKygoSz0wfEp0W0E+PjBdKTw8MikrMXwwLGw9KEs9MHxmZVtEKyhLPDwyKT4+MF0pPDwy''@;'; + put 'put ''ND4+MjQsSzw8MjQ+PjI0KXtpZigobS0oMHxhW3A+PjJdKXwwKTwoMHxsKSl7bT0yO2JyZWFrfUE9QSsxfDB9ZWxzZXtpZigoMHwobD0wfFc0KDB8QmlbMTI3JmFbTT4+Ml1dKDB8YVtSPj4yXSxBKSxrKSkpPihtLSgwfGFbcD4+Ml0pfDApKXttPTI7YnJlYWt9dz1rLEE9KEE9MHxhW2M+PjJd''@;'; + put 'put ''KSsoKDB8SnRbYisoMHxKdFtBPj4wXSk+PjBdKS0zKXwwfWFbYz4+Ml09QSxnbygwfGFbcD4+Ml0sMHx3LDB8bCksYVtwPj4yXT0oMHxhW3A+PjJdKStsfXJldHVybiBhZT1HLDB8bX0sZnVuY3Rpb24gTDMobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBrLE0sRCxSLEE9MCx3''@;'; + put 'put ''PTAsYj0wO2ZvcihNPTM3MisobHw9MCl8MCxEPWwrMzY0fDAsUj1sKzM2OHwwLGs9bCs3MnwwOyhsPShiPTB8YVtjPj4yXSk+Pj4wPGY+Pj4wKSYoQT0wfGFbcD4+Ml0pPj4+MDxtPj4+MDspKGw9MHxydFtNKygoMHxKdFtiPj4wXSk8PDEpPj4xXSk8PDE2Pj4xNj8odz0xLEE9Yik6KGw9NjU1''@;'; + put 'put ''MzUmKDB8QmlbMTI3JmFbRD4+Ml1dKDB8YVtSPj4yXSxiKSksdz0oMHxKdFtrKygwfEp0WyhBPTB8YVtjPj4yXSk+PjBdKT4+MF0pLTN8MCksYVtjPj4yXT1BK3csYVtwPj4yXT0yKyhiPTB8YVtwPj4yXSkscnRbYj4+MV09bDtyZXR1cm4gMHwoKDB8QSkhPSgwfG0pfDFebD8wOjIpfSxmdW5j''@;'; + put 'put ''dGlvbiB0dWUobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTA7c3dpdGNoKDB8KGN8PTApKXtjYXNlIDE1OmFbbD4+Ml09MTYsbD0wO2JyZWFrO2Nhc2UgMTI6YVtsPj4yXT0xNixsPTE7YnJlYWs7Y2FzZSAxMTphW2w+PjJdPTE2LGw9NTU7YnJlYWs7Y2FzZSAxMzphW2w+''@;'; + put 'put ''PjJdPTE2LGw9NTY7YnJlYWs7Y2FzZSAxNDpsPTA7YnJlYWs7Y2FzZSAxNjowfHEwWzEyNyZhW20rMjQ+PjJdXShtLGYrKGFbbSs2ND4+Ml08PDEpfDAscCwxNDQzNjgpPyhhW2w+PjJdPTE3LGw9Myk6QT05O2JyZWFrO2Nhc2UgMjk6YVtsPj4yXT0xOCxsPTI7YnJlYWs7ZGVmYXVsdDpBPTl9''@;'; + put 'put ''cmV0dXJuIDk9PSgwfEEpJiYobD0wfFZhKGwsYykpLDB8bH0sZnVuY3Rpb24gbnVlKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wO3N3aXRjaCgwfChjfD0wKSl7Y2FzZSAxNDpjYXNlIDE1Omw9MDticmVhaztjYXNlIDExOmw9NTU7YnJlYWs7Y2FzZSAxMzpsPTU2O2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgMTY6MHxxMFsxMjcmYVttKzI0Pj4yXV0obSxmKyhhW20rNjQ+PjJdPDwxKXwwLHAsMTQ0MzY4KT8oYVtsPj4yXT0xNyxsPTMpOkE9NzticmVhaztjYXNlIDI5OmFbbD4+Ml09MTgsbD0yO2JyZWFrO2RlZmF1bHQ6QT03fXJldHVybiA3PT0oMHxBKSYmKGw9MHxWYShsLGMpKSww''@;'; + put 'put ''fGx9LGZ1bmN0aW9uIHJ1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzticmVhaztjYXNlIDQxOmNhc2UgMTg6YVtsPj4yXT0xOSxsPTQ7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBpdWUobCxjLGYscCxtKXtyZXR1''@;'; + put 'put ''cm4gMH0sZnVuY3Rpb24gb3VlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wO2U6ZG97c3dpdGNoKDB8Yyl7Y2FzZSAxNTpsPTM7YnJlYWs7Y2FzZSAyNTphW2w+PjJdPTIwLGw9NzticmVhaztjYXNlIDE3OmFbbD4+Ml09MjEsbD04O2JyZWFrO2Nhc2Ug''@;'; + put 'put ''MTg6aWYoMHxxMFsxMjcmYVsoQT1tKzI0fDApPj4yXV0obSxmLHAsMTQ0Mzc2KSl7YVtsPj4yXT0yMixsPTM7YnJlYWsgZX0wfHEwWzEyNyZhW0E+PjJdXShtLGYscCwxNDQzODMpPyhhW2w+PjJdPTIzLGw9Myk6dz04O2JyZWFrO2RlZmF1bHQ6dz04fX13aGlsZSgwKTtyZXR1cm4gOD09KDB8''@;'; + put 'put ''dykmJihsPTB8VmEobCxjKSksMHxsfSwkSyxmdW5jdGlvbiBhdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCxtfD0wLChtPShjfD0wKS0xMXwwKT4+PjF8bTw8MzF8MCl7Y2FzZSAyOmw9MDticmVhaztjYXNlIDA6bD01NTticmVhaztjYXNlIDE6bD01NjticmVhaztjYXNlIDk6YVtsPj4yXT0x''@;'; + put 'put ''OCxsPTI7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBsdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTM7YnJlYWs7Y2FzZSAyNzphW2w+PjJdPTI5LGw9NTticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAw''@;'; + put 'put ''fGx9LGZ1bmN0aW9uIHN1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzticmVhaztjYXNlIDI3OmFbbD4+Ml09MjIsbD02O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gY3VlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAs''@;'; + put 'put ''MHwoY3w9MCkpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDIyOmFbbD4+Ml09MzAsbD0xMTticmVhaztjYXNlIDE4OmFbbD4+Ml09MzEsbD05O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gZnVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkp''@;'; + put 'put ''e2Nhc2UgMTU6bD0zMzticmVhaztjYXNlIDQxOmNhc2UgMTg6YVtsPj4yXT0zMixsPTM0O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gaHVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zOTticmVhaztjYXNlIDQxOmNh''@;'; + put 'put ''c2UgMTg6YVtsPj4yXT0zMyxsPTQwO2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gZHVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0xNzticmVhaztjYXNlIDE4OmFbbD4+Ml09MzQsbD0xODticmVhaztkZWZhdWx0Omw9''@;'; + put 'put ''MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIHB1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzticmVhaztjYXNlIDE3OmFbbD4+Ml09MjEsbD04O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gdXVlKGwsYyxm''@;'; + put 'put ''LHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zO2JyZWFrO2Nhc2UgMjU6YVtsPj4yXT0yMCxsPTc7YnJlYWs7Y2FzZSAxNzphW2w+PjJdPTIxLGw9ODticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIEx1ZShsLGMsZixwLG0pe3N3aXRj''@;'; + put 'put ''aChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MTE7YnJlYWs7Y2FzZSAxODphW2w+PjJdPTU3LGw9MTA7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBPdWUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTA7ZTpkb3tz''@;'; + put 'put ''d2l0Y2goMHxjKXtjYXNlIDE1Omw9MTE7YnJlYWs7Y2FzZSAxODppZigwfHEwWzEyNyZhWyhBPW0rMjR8MCk+PjJdXShtLGYscCwxNDQzNzYpKXthW2w+PjJdPTU4LGw9MTE7YnJlYWsgZX0wfHEwWzEyNyZhW0E+PjJdXShtLGYscCwxNDQzODMpPyhhW2w+PjJdPTU5LGw9MTEpOnc9NzticmVh''@;'; + put 'put ''aztjYXNlIDI3OmFbbD4+Ml09MzcsYVtsKzg+PjJdPTExLGw9MTI7YnJlYWs7ZGVmYXVsdDp3PTd9fXdoaWxlKDApO3JldHVybiA3PT0oMHx3KSYmKGw9MHxWYShsLGMpKSwwfGx9LGZ1bmN0aW9uIEN1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzM7YnJl''@;'; + put 'put ''YWs7Y2FzZSAxNzphW2w+PjJdPTB8YVtsKzE2Pj4yXT8yMDozOSxsPTMzO2JyZWFrO2Nhc2UgNDE6Y2FzZSAxODphW2w+PjJdPTQ5LGw9MjI7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBpQWUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18''@;'; + put 'put ''PTA7dmFyIEE9MCx3PTA7ZTpkb3tzd2l0Y2goMHxjKXtjYXNlIDE1Omw9Mzk7YnJlYWs7Y2FzZSAxODppZigwfHEwWzEyNyZhWyhBPW0rMjR8MCk+PjJdXShtLGYscCwxNDQ0MzcpKXthW2w+PjJdPTM3LGFbbCs4Pj4yXT0zOSxsPTQyO2JyZWFrIGV9MHxxMFsxMjcmYVtBPj4yXV0obSxmLHAs''@;'; + put 'put ''MTQ0NDQzKT8oYVtsPj4yXT0zNyxhW2wrOD4+Ml09MzksbD00MSk6dz03O2JyZWFrO2Nhc2UgMjM6YVtsPj4yXT00MyxhW2wrND4+Ml09MSxsPTQ0O2JyZWFrO2RlZmF1bHQ6dz03fX13aGlsZSgwKTtyZXR1cm4gNz09KDB8dykmJihsPTB8VmEobCxjKSksMHxsfSxmdW5jdGlvbiBndWUobCxj''@;'; + put 'put ''LGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTA7ZTpkb3tzd2l0Y2goMHxjKXtjYXNlIDE1Omw9MTc7YnJlYWs7Y2FzZSAxODppZigwfHEwWzEyNyZhWyhBPW0rMjR8MCk+PjJdXShtLGYscCwxNDQzNzYpKXthW2w+PjJdPTM1LGw9MTc7YnJlYWsgZX0wfHEwWzEy''@;'; + put 'put ''NyZhW0E+PjJdXShtLGYscCwxNDQzODMpPyhhW2w+PjJdPTM2LGw9MTcpOnc9NjticmVhaztkZWZhdWx0Onc9Nn19d2hpbGUoMCk7cmV0dXJuIDY9PSgwfHcpJiYobD0wfFZhKGwsYykpLDB8bH0sZnVuY3Rpb24gbXVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6''@;'; + put 'put ''bD0xNzticmVhaztjYXNlIDI3OmFbbD4+Ml09MzcsYVtsKzg+PjJdPTE3LGw9MTk7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiB2dWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTE3O2JyZWFrO2Nhc2UgMjc6YVtsPj4y''@;'; + put 'put ''XT0zOCxsPTIxO2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24geXVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0wfGFbbCs4Pj4yXTticmVhaztjYXNlIDE3OmFbbD4+Ml09MHxhW2wrMTY+PjJdPzIwOjM5LGw9MHxhW2wr''@;'; + put 'put ''OD4+Ml07YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBBdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTE3O2JyZWFrO2Nhc2UgMjc6YVtsPj4yXT0zNyxhW2wrOD4+Ml09MTcsbD0xOTticmVhaztjYXNlIDE3OmFbbD4+''@;'; + put 'put ''Ml09MHxhW2wrMTY+PjJdPzIwOjM5LGw9MjA7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiB3dWUobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTA7c3dpdGNoKDB8KGN8PTApKXtjYXNlIDMzOmFbbD4+Ml09NDAsZj0wO2JyZWFrO2Nh''@;'; + put 'put ''c2UgMzQ6KHA9MHxhWyhmPWwrMTJ8MCk+PjJdKT8oYVtmPj4yXT1wKy0xLGY9MCk6QT03O2JyZWFrO2Nhc2UgMTU6Zj0wO2JyZWFrO2Nhc2UgMjY6QT03O2JyZWFrO2Nhc2UtNDowfGFbbCsxMj4+Ml0/QT03OmY9MDticmVhaztkZWZhdWx0OmY9MHwkSyhsLGMsZixwLG0pfXJldHVybiA3PT0o''@;'; + put 'put ''MHxBKSYmKGY9MHxWYShsLGMpKSwwfGZ9LGZ1bmN0aW9uIGJ1ZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMTU6bD0wO2JyZWFrO2Nhc2UgMTg6aWYoMHxxMFsxMjcmYVsoQT1tKzI0fDApPj4yXV0obSxmLHAs''@;'; + put 'put ''MTQ0NDIyKSl7YVtsPj4yXT00MSxsPTA7YnJlYWsgZX0wfHEwWzEyNyZhW0E+PjJdXShtLGYscCwxNDQ0MzApPyhhW2w+PjJdPTQyLGw9MCk6dz02O2JyZWFrO2RlZmF1bHQ6dz02fX13aGlsZSgwKTtyZXR1cm4gNj09KDB8dykmJihsPTB8VmEobCxjKSksMHxsfSxmdW5jdGlvbiBuQWUobCxj''@;'; + put 'put ''LGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTA7YnJlYWs7Y2FzZSAyNTphW2w+PjJdPTM5LGFbKGw9bCsxMnwwKT4+Ml09MSsoMHxhW2w+PjJdKSxsPTA7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiByQWUobCxjLGYscCxtKXtz''@;'; + put 'put ''d2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTA7YnJlYWs7Y2FzZSAyNTphW2w+PjJdPTM5LGw9NTg7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBvQWUobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTA7c3dpdGNoKDB8KGN8''@;'; + put 'put ''PTApKXtjYXNlIDE1Omw9Mzk7YnJlYWs7Y2FzZSAyMDowfHEwWzEyNyZhW20rMjQ+PjJdXShtLGYrKDB8YVttKzY0Pj4yXSl8MCxwLDE0NDQ0Nyk/KGFbbD4+Ml09NDQsbD00Myk6QT05O2JyZWFrO2Nhc2UgMjM6YVtsKzQ+PjJdPTIsYVtsPj4yXT00NSxsPTQ0O2JyZWFrO2Nhc2UgNDE6Y2Fz''@;'; + put 'put ''ZSAxODphW2w+PjJdPTQ2LGw9NTE7YnJlYWs7Y2FzZSAzMDphW2w+PjJdPTQ2LGw9NTM7YnJlYWs7Y2FzZSAzMTphW2w+PjJdPTQ2LGw9NTI7YnJlYWs7Y2FzZSAzMjphW2w+PjJdPTQ2LGw9NTQ7YnJlYWs7ZGVmYXVsdDpBPTl9cmV0dXJuIDk9PSgwfEEpJiYobD0wfFZhKGwsYykpLDB8bH0s''@;'; + put 'put ''ZnVuY3Rpb24gYUFlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zOTticmVhaztjYXNlIDI0OmFbbD4+Ml09MzcsYVtsKzg+PjJdPTM5LGw9NDU7YnJlYWs7Y2FzZSAzNjphW2w+PjJdPTM3LGFbbCs4Pj4yXT0zOSxsPTQ2O2JyZWFrO2Nhc2UgMjE6YVtsPj4y''@;'; + put 'put ''XT00NyxsPTM5O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gbEFlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zOTticmVhaztjYXNlIDIzOmFbKGw9bCs0fDApPj4yXT0xKygwfGFbbD4+Ml0pLGw9NDQ7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSA0MTpjYXNlIDE4OmFbbD4+Ml09NDYsbD01MTticmVhaztjYXNlIDMwOmFbbD4+Ml09NDYsbD01MzticmVhaztjYXNlIDMxOmFbbD4+Ml09NDYsbD01MjticmVhaztjYXNlIDMyOmFbbD4+Ml09NDYsbD01NDticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9u''@;'; + put 'put ''IHNBZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLHB8PTAsbXw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTM5O2JyZWFrO2Nhc2UgMjQ6YVsocD1sKzR8MCk+PjJdPW09KDB8YVtwPj4yXSktMXwwLG18fChhW2w+PjJdPTM3LGFbbCs4Pj4yXT0zOSksbD00NTticmVhaztjYXNlIDM2OmFbKHA9bCs0''@;'; + put 'put ''fDApPj4yXT1tPSgwfGFbcD4+Ml0pLTF8MCxtfHwoYVtsPj4yXT0zNyxhW2wrOD4+Ml09MzkpLGw9NDY7YnJlYWs7Y2FzZSAzNTphWyhwPWwrNHwwKT4+Ml09bT0oMHxhW3A+PjJdKS0xfDAsbXx8KGFbbD4+Ml09MzcsYVtsKzg+PjJdPTM5KSxsPTQ3O2JyZWFrO2Nhc2UgMzc6YVsocD1sKzR8''@;'; + put 'put ''MCk+PjJdPW09KDB8YVtwPj4yXSktMXwwLG18fChhW2w+PjJdPTM3LGFbbCs4Pj4yXT0zOSksbD00ODticmVhaztjYXNlIDM4OmFbbD4+Ml09NDUsbD01MDticmVhaztjYXNlIDIxOmFbbD4+Ml09NDUsbD00OTticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9u''@;'; + put 'put ''IHVBZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9Mzk7YnJlYWs7Y2FzZSA0MTpjYXNlIDE4OmFbbD4+Ml09NDgsbD01MTticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIF91ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8''@;'; + put 'put ''KGN8PTApKXtjYXNlIDE1Omw9Mzk7YnJlYWs7Y2FzZSAzNjphW2w+PjJdPTM3LGFbbCs4Pj4yXT0zOSxsPTQ2O2JyZWFrO2Nhc2UgMjE6YVtsPj4yXT00NyxsPTM5O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24ga3VlKGwsYyxmLHAsbSl7bHw9MCxjfD0w''@;'; + put 'put ''LGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MCxrPTA7ZTpkb3tzd2l0Y2goMHxjKXtjYXNlIDE1OkE9MzM7YnJlYWs7Y2FzZSAxODpmb3Iodz1tKzI0fDAsQT0wO2I9MHxhW3c+PjJdLCEoKDB8QSk+PTgpOyl7aWYoMHxxMFsxMjcmYl0obSxmLHAsMHxhWzYyMzA0KyhBPDwyKT4+Ml0p''@;'; + put 'put ''KXtrPTY7YnJlYWt9QT1BKzF8MH1pZig2PT0oMHxrKSl7YVtsPj4yXT01MCxBPUErMjN8MDticmVhayBlfTB8cTBbMTI3JmJdKG0sZixwLDE0NDQxMyk/KGFbbD4+Ml09NTEsQT0zMyk6az0xMDticmVhaztjYXNlIDIzOmFbbD4+Ml09NTIsQT0zMzticmVhaztkZWZhdWx0Oms9MTB9fXdoaWxl''@;'; + put 'put ''KDApO3JldHVybiAxMD09KDB8aykmJihBPTB8VmEobCxjKSksMHxBfSxmdW5jdGlvbiBTdWUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wO2U6ZG97c3dpdGNoKDB8Yyl7Y2FzZSAxNTpsPTMzO2JyZWFrO2Nhc2UgMjA6aWYoMHxxMFsxMjcmYVso''@;'; + put 'put ''QT1tKzI0fDApPj4yXV0obSxmKygwfGFbKHc9bSs2NHwwKT4+Ml0pfDAscCwxNDQ0NTQpKXthW2w+PjJdPTMyLGw9MzU7YnJlYWsgZX1pZigwfHEwWzEyNyZhW0E+PjJdXShtLGYrKDB8YVt3Pj4yXSl8MCxwLDE0NDQ2Mikpe2FbbD4+Ml09MzIsbD0zNjticmVhayBlfTB8cTBbMTI3JmFbQT4+''@;'; + put 'put ''Ml1dKG0sZisoMHxhW3c+PjJdKXwwLHAsMTQ0NDcxKT8oYVtsPj4yXT01MyxsPTMzKTpiPTk7YnJlYWs7Y2FzZSAyNzphW2w+PjJdPTMyLGw9Mzc7YnJlYWs7ZGVmYXVsdDpiPTl9fXdoaWxlKDApO3JldHVybiA5PT0oMHxiKSYmKGw9MHxWYShsLGMpKSwwfGx9LGZ1bmN0aW9uIE11ZShsLGMs''@;'; + put 'put ''ZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzM7YnJlYWs7Y2FzZSAyMzphW2w+PjJdPTU0LGw9MzM7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBFdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTps''@;'; + put 'put ''PTMzO2JyZWFrO2Nhc2UgNDE6Y2FzZSAxODpjYXNlIDE5OmFbbD4+Ml09NTUsbD0zMTticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIER1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzM7YnJlYWs7Y2FzZSAyNzphW2w+''@;'; + put 'put ''PjJdPTMyLGw9Mzg7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBUdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTMzO2JyZWFrO2Nhc2UgMTg6YVtsPj4yXT01NixsPTMyO2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9''@;'; + put 'put ''cmV0dXJuIDB8bH0sZnVuY3Rpb24geHVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zMzticmVhaztjYXNlIDI0OmFbbD4+Ml09NTAsbD0zMzticmVhaztjYXNlIDIxOmFbbD4+Ml09NTIsbD0zMzticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAw''@;'; + put 'put ''fGx9LGZ1bmN0aW9uIEl1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzM7YnJlYWs7Y2FzZSAyNDphW2w+PjJdPTUwLGw9MzM7YnJlYWs7Y2FzZSAyMTphW2w+PjJdPTU0LGw9MzM7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5j''@;'; + put 'put ''dGlvbiBkQWUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTA7ZTpkb3tzd2l0Y2goMHxjKXtjYXNlIDE1Omw9MTE7YnJlYWs7Y2FzZSAxODppZigwfHEwWzEyNyZhWyhBPW0rMjR8MCk+PjJdXShtLGYscCwxNDQzNzYpKXthW2w+PjJdPTYyLGw9MTE7YnJl''@;'; + put 'put ''YWsgZX0wfHEwWzEyNyZhW0E+PjJdXShtLGYscCwxNDQzODMpPyhhW2w+PjJdPTYzLGw9MTEpOnc9NzticmVhaztjYXNlIDI3OmFbbD4+Ml09MzcsYVtsKzg+PjJdPTExLGw9MTI7YnJlYWs7ZGVmYXVsdDp3PTd9fXdoaWxlKDApO3JldHVybiA3PT0oMHx3KSYmKGw9MHxWYShsLGMpKSwwfGx9''@;'; + put 'put ''LGZ1bmN0aW9uIFJ1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MTE7YnJlYWs7Y2FzZSAyNzphW2w+PjJdPTYwLGw9MTM7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBjQWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCww''@;'; + put 'put ''fChjfD0wKSl7Y2FzZSAxNTpsPTExO2JyZWFrO2Nhc2UgMjc6YVtsPj4yXT01OCxsPTE0O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gZkFlKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wO3N3aXRjaCgwfChjfD0wKSl7Y2FzZSAx''@;'; + put 'put ''NTpsPTExO2JyZWFrO2Nhc2UgMTc6YVtsPj4yXT0wfGFbbCsxNj4+Ml0/MjA6MzksbD0xNTticmVhaztjYXNlIDE4OjB8cTBbMTI3JmFbbSsyND4+Ml1dKG0sZixwLDE0NDUyNSk/KGFbbD4+Ml09NjEsbD0xMSk6QT01O2JyZWFrO2RlZmF1bHQ6QT01fXJldHVybiA1PT0oMHxBKSYmKGw9MHxW''@;'; + put 'put ''YShsLGMpKSwwfGx9LGZ1bmN0aW9uIGhBZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MTE7YnJlYWs7Y2FzZSAxODphW2w+PjJdPTM3LGFbbCs4Pj4yXT0xMSxsPTE2O2JyZWFrO2RlZmF1bHQ6bD0wfFZhKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gcEFl''@;'; + put 'put ''KGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDI3OmFbbD4+Ml09NjQsbD0xMzticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIGdBZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNl''@;'; + put 'put ''IDE1Omw9MTE7YnJlYWs7Y2FzZSAyNzphW2w+PjJdPTYyLGw9MTQ7YnJlYWs7ZGVmYXVsdDpsPTB8VmEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBtQWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTExO2JyZWFrO2Nhc2UgMTc6YVtsPj4yXT0wfGFbbCsx''@;'; + put 'put ''Nj4+Ml0/MjA6MzksbD0xNTticmVhaztkZWZhdWx0Omw9MHxWYShsLGMpfXJldHVybiAwfGx9LEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpv''@;'; + put 'put ''LEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvLEpvXSxvMz1bZnVuY3Rpb24gYmZlKGwsYyxmLHAsbSxBKXtyZXR1cm4gdzIoMTApLDB9LGZ1bmN0aW9uIGw1KGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9''@;'; + put 'put ''MCxwfD0wLG18PTAsQXw9MDt2YXIgUmUsSGUsVmUscWUsbnQsV2Usb3QsU3Qsa3QsRXQsWnQsY3QsYnQsYW4sU24sSG4sSHIsRXIsRHIsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLEs9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsbHQ9MCx1cj0wLGZyPTAsSnI9MCxMcj0wLGwwPTAs''@;'; + put 'put ''Vmk9MCxPaT0wO0RyPWFlLGFlPWFlKzMzNnwwLGJ0PURyKzMyMHwwLGN0PURyKzMwNHwwLFJlPURyKzE0NHwwLEs9RHIrMTI4fDAsRXQ9RHIrMTEyfDAsWnQ9RHIrOTZ8MCxmcj1Ecis4MHwwLG50PURyKzY0fDAsb3Q9RHIrNDh8MCxhbj1EciszMnwwLFNuPURyKzE2fDAsSG49RHIsSGU9RHIr''@;'; + put 'put ''Mjg4fDAsVmU9RHIrMjcyfDAscWU9RHIrMjU2fDAsV2U9RHIrMjQwfDAsU3Q9RHIrMjI0fDAsa3Q9RHIrMjA4fDAsdXI9RHIrMTkyfDAsSHI9RHIrMTc2fDAsRXI9RHIrMTYwfDAsdz0wfGFbNDc0NjJdO2Rve2lmKCgwfGFbNDc0NjFdKTwoMHxwKSl7aWYodyl7aWYodz0wfFVhKHcsNDAqcHww''@;'; + put 'put ''KSxhWzQ3NDYyXT13LCF3KXt3PS0xO2JyZWFrfX1lbHNlIGlmKHc9MHxCMCg0MCpwfDApLGFbNDc0NjJdPXcsIXcpe3c9LTE7YnJlYWt9YVs0NzQ2MV09cCxrPTZ9ZWxzZSBrPTZ9d2hpbGUoMCk7aWYoNj09KDB8aykpe2ZvcihfW3c+PjNdPTAsaz0xLGI9MDshKCgwfGspPj0oMHxwKSk7KWx0''@;'; + put 'put ''PWYrKGsrLTE8PDQpfDAsYVtjdD4+Ml09YVsoRD1mKyhrPDw0KXwwKT4+Ml0sYVtjdCs0Pj4yXT1hW0QrND4+Ml0sYVtjdCs4Pj4yXT1hW0QrOD4+Ml0sYVtjdCsxMj4+Ml09YVtEKzEyPj4yXSxhW2J0Pj4yXT1hW2x0Pj4yXSxhW2J0KzQ+PjJdPWFbbHQrND4+Ml0sYVtidCs4Pj4yXT1hW2x0''@;'; + put 'put ''Kzg+PjJdLGFbYnQrMTI+PjJdPWFbbHQrMTI+PjJdLExlPStyXyhjdCxidCkrYixfW3crKDQwKmt8MCk+PjNdPUxlLGs9aysxfDAsYj1MZTtmb3IoRD13Kyg0MCoobHQ9cCstMXwwKXwwKXwwLGs9MTshKCgwfGspPj0oMHxwKSk7KV9bKEpyPXcrKDQwKmt8MCl8MCk+PjNdPStfW0pyPj4zXS8r''@;'; + put 'put ''X1tEPj4zXSxrPWsrMXwwO2ZvcihrPTA7ISgoMHxrKT49KDB8cCkpOylKcj13Kyg0MCprfDApKzh8MCxMZT0rRW0oK19bKEQ9dysoNDAqa3wwKXwwKT4+M10pLGFbYnQ+PjJdPWFbbT4+Ml0sYVtidCs0Pj4yXT1hW20rND4+Ml0sYVtidCs4Pj4yXT1hW20rOD4+Ml0sYVtidCsxMj4+Ml09YVtt''@;'; + put 'put ''KzEyPj4yXSxfZihIZSxidCxMZSksYVtKcj4+Ml09YVtIZT4+Ml0sYVtKcis0Pj4yXT1hW0hlKzQ+PjJdLGFbSnIrOD4+Ml09YVtIZSs4Pj4yXSxhW0pyKzEyPj4yXT1hW0hlKzEyPj4yXSxKcj13Kyg0MCprfDApKzI0fDAsTGU9K0RkKCtfW0Q+PjNdKSxhW2J0Pj4yXT1hW0E+PjJdLGFbYnQr''@;'; + put 'put ''ND4+Ml09YVtBKzQ+PjJdLGFbYnQrOD4+Ml09YVtBKzg+PjJdLGFbYnQrMTI+PjJdPWFbQSsxMj4+Ml0sX2YoVmUsYnQsTGUpLGFbSnI+PjJdPWFbVmU+PjJdLGFbSnIrND4+Ml09YVtWZSs0Pj4yXSxhW0pyKzg+PjJdPWFbVmUrOD4+Ml0sYVtKcisxMj4+Ml09YVtWZSsxMj4+Ml0saz1rKzF8''@;'; + put 'put ''MDtpZihhW2N0Pj4yXT1hW20+PjJdLGFbY3QrND4+Ml09YVttKzQ+PjJdLGFbY3QrOD4+Ml09YVttKzg+PjJdLGFbY3QrMTI+PjJdPWFbbSsxMj4+Ml0sYVtidD4+Ml09YVtBPj4yXSxhW2J0KzQ+PjJdPWFbQSs0Pj4yXSxhW2J0Kzg+PjJdPWFbQSs4Pj4yXSxhW2J0KzEyPj4yXT1hW0ErMTI+''@;'; + put 'put ''PjJdLGZ1bmN0aW9uIGo0KGwsYyxmLHAsbSxBLHcsYixrKXtmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTAsYnw9MCxrfD0wO3ZhciBwZSxnZSxiZSxPZSxMZSxXZSxvdCxTdCxrdCxFdCxNPTAsRD0wLFI9MCxHPTAsSz0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsbnQ9MCxsdD0wLFp0PTAsY3Q9MCxi''@;'; + put 'put ''dD0wLGFuPTAsU249MCxIbj0wO2ZvcihFdD1hZSxhZT1hZSsxMjh8MCxXZT1FdCsxMTJ8MCxMZT1FdCs4MHwwLE9lPUV0LHBlPUV0Kzk2fDAsZ2U9RXQrNjR8MCxiZT1FdCs0OHwwLG90PUV0KzMyfDAsU3Q9RXQrMTZ8MCxrdD0obHw9MCkrKChjfD0wKS0xPDw0KXwwLEs9MCxSZT0wLEhlPTAs''@;'; + put 'put ''VmU9MCxxZT0wLG50PTA7ISgoMHxLKT49KDB8YykpOylhW0xlPj4yXT1hWyhhbj1mKyg0MCpLfDApKzh8MCk+PjJdLGFbTGUrND4+Ml09YVthbis0Pj4yXSxhW0xlKzg+PjJdPWFbYW4rOD4+Ml0sYVtMZSsxMj4+Ml09YVthbisxMj4+Ml0sYVtXZT4+Ml09YVthbj4+Ml0sYVtXZSs0Pj4yXT1h''@;'; + put 'put ''W2FuKzQ+PjJdLGFbV2UrOD4+Ml09YVthbis4Pj4yXSxhW1dlKzEyPj4yXT1hW2FuKzEyPj4yXSxadD0rczUoTGUsV2UpK0hlLGJ0PWYrKDQwKkt8MCkrMjR8MCxhW0xlPj4yXT1hW2FuPj4yXSxhW0xlKzQ+PjJdPWFbYW4rND4+Ml0sYVtMZSs4Pj4yXT1hW2FuKzg+PjJdLGFbTGUrMTI+PjJd''@;'; + put 'put ''PWFbYW4rMTI+PjJdLGFbV2U+PjJdPWFbYnQ+PjJdLGFbV2UrND4+Ml09YVtidCs0Pj4yXSxhW1dlKzg+PjJdPWFbYnQrOD4+Ml0sYVtXZSsxMj4+Ml09YVtidCsxMj4+Ml0sRz0rczUoTGUsV2UpK250LGFbTGU+PjJdPWFbYnQ+PjJdLGFbTGUrND4+Ml09YVtidCs0Pj4yXSxhW0xlKzg+PjJd''@;'; + put 'put ''PWFbYnQrOD4+Ml0sYVtMZSsxMj4+Ml09YVtidCsxMj4+Ml0sYVtXZT4+Ml09YVtidD4+Ml0sYVtXZSs0Pj4yXT1hW2J0KzQ+PjJdLGFbV2UrOD4+Ml09YVtidCs4Pj4yXSxhW1dlKzEyPj4yXT1hW2J0KzEyPj4yXSxSPStzNShMZSxXZSkrVmUsU249bCsoSzw8NCl8MCxjdD0rWEUoK19bKEhu''@;'; + put 'put ''PWYrKDQwKkt8MCl8MCk+PjNdKSxhW1dlPj4yXT1hW2w+PjJdLGFbV2UrND4+Ml09YVtsKzQ+PjJdLGFbV2UrOD4+Ml09YVtsKzg+PjJdLGFbV2UrMTI+PjJdPWFbbCsxMj4+Ml0sX2YoZ2UsV2UsY3QpLGN0PStMQigrX1tIbj4+M10pLGFbV2U+PjJdPWFba3Q+PjJdLGFbV2UrND4+Ml09YVtr''@;'; + put 'put ''dCs0Pj4yXSxhW1dlKzg+PjJdPWFba3QrOD4+Ml0sYVtXZSsxMj4+Ml09YVtrdCsxMj4+Ml0sX2YoYmUsV2UsY3QpLGFbTGU+PjJdPWFbZ2U+PjJdLGFbTGUrND4+Ml09YVtnZSs0Pj4yXSxhW0xlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtMZSsxMj4+Ml09YVtnZSsxMj4+Ml0sYVtXZT4+Ml09YVti''@;'; + put 'put ''ZT4+Ml0sYVtXZSs0Pj4yXT1hW2JlKzQ+PjJdLGFbV2UrOD4+Ml09YVtiZSs4Pj4yXSxhW1dlKzEyPj4yXT1hW2JlKzEyPj4yXSxRRShwZSxMZSxXZSksYVtMZT4+Ml09YVtTbj4+Ml0sYVtMZSs0Pj4yXT1hW1NuKzQ+PjJdLGFbTGUrOD4+Ml09YVtTbis4Pj4yXSxhW0xlKzEyPj4yXT1hW1Nu''@;'; + put 'put ''KzEyPj4yXSxhW1dlPj4yXT1hW3BlPj4yXSxhW1dlKzQ+PjJdPWFbcGUrND4+Ml0sYVtXZSs4Pj4yXT1hW3BlKzg+PjJdLGFbV2UrMTI+PjJdPWFbcGUrMTI+PjJdLGVBKE9lLExlLFdlKSxhW0xlPj4yXT1hW2FuPj4yXSxhW0xlKzQ+PjJdPWFbYW4rND4+Ml0sYVtMZSs4Pj4yXT1hW2FuKzg+''@;'; + put 'put ''PjJdLGFbTGUrMTI+PjJdPWFbYW4rMTI+PjJdLGFbV2U+PjJdPWFbT2U+PjJdLGFbV2UrND4+Ml09YVtPZSs0Pj4yXSxhW1dlKzg+PjJdPWFbT2UrOD4+Ml0sYVtXZSsxMj4+Ml09YVtPZSsxMj4+Ml0sY3Q9K3M1KExlLFdlKStSZSxhW0xlPj4yXT1hW2J0Pj4yXSxhW0xlKzQ+PjJdPWFbYnQr''@;'; + put 'put ''ND4+Ml0sYVtMZSs4Pj4yXT1hW2J0Kzg+PjJdLGFbTGUrMTI+PjJdPWFbYnQrMTI+PjJdLGFbV2U+PjJdPWFbT2U+PjJdLGFbV2UrND4+Ml09YVtPZSs0Pj4yXSxhW1dlKzg+PjJdPWFbT2UrOD4+Ml0sYVtXZSsxMj4+Ml09YVtPZSsxMj4+Ml0sSz1LKzF8MCxSZT1jdCxIZT1adCxWZT1SLHFl''@;'; + put 'put ''PStzNShMZSxXZSkrcWUsbnQ9RzsoRz0oUj1WZSpIZS1udCpudCk+PTA/UjotUik+PTFlLTYmJiEoRzwxZS02fChNPShWZSpSZS1udCpxZSkvUik8PTB8KEQ9KEhlKnFlLW50KlJlKS9SKTw9MCl8fChsdD02KSw2PT0oMHxsdCkmJihhW0xlPj4yXT1hW2w+PjJdLGFbTGUrND4+Ml09YVtsKzQ+''@;'; + put 'put ''PjJdLGFbTGUrOD4+Ml09YVtsKzg+PjJdLGFbTGUrMTI+PjJdPWFbbCsxMj4+Ml0sYVtXZT4+Ml09YVtrdD4+Ml0sYVtXZSs0Pj4yXT1hW2t0KzQ+PjJdLGFbV2UrOD4+Ml09YVtrdCs4Pj4yXSxhW1dlKzEyPj4yXT1hW2t0KzEyPj4yXSxEPU09LjMzMzMzMzMzMzMzMzMzMzMqK3JfKExlLFdl''@;'; + put 'put ''KSksYVtBPj4yXT1hW2w+PjJdLGFbQSs0Pj4yXT1hW2wrND4+Ml0sYVtBKzg+PjJdPWFbbCs4Pj4yXSxhW0ErMTI+PjJdPWFbbCsxMj4+Ml0sYVtXZT4+Ml09YVtwPj4yXSxhW1dlKzQ+PjJdPWFbcCs0Pj4yXSxhW1dlKzg+PjJdPWFbcCs4Pj4yXSxhW1dlKzEyPj4yXT1hW3ArMTI+PjJdLF9m''@;'; + put 'put ''KG90LFdlLE0pLGFbdz4+Ml09YVtvdD4+Ml0sYVt3KzQ+PjJdPWFbb3QrND4+Ml0sYVt3Kzg+PjJdPWFbb3QrOD4+Ml0sYVt3KzEyPj4yXT1hW290KzEyPj4yXSxhW2I+PjJdPWFba3Q+PjJdLGFbYis0Pj4yXT1hW2t0KzQ+PjJdLGFbYis4Pj4yXT1hW2t0Kzg+PjJdLGFbYisxMj4+Ml09YVtr''@;'; + put 'put ''dCsxMj4+Ml0sYVtXZT4+Ml09YVttPj4yXSxhW1dlKzQ+PjJdPWFbbSs0Pj4yXSxhW1dlKzg+PjJdPWFbbSs4Pj4yXSxhW1dlKzEyPj4yXT1hW20rMTI+PjJdLF9mKFN0LFdlLEQpLGFbaz4+Ml09YVtTdD4+Ml0sYVtrKzQ+PjJdPWFbU3QrND4+Ml0sYVtrKzg+PjJdPWFbU3QrOD4+Ml0sYVtr''@;'; + put 'put ''KzEyPj4yXT1hW1N0KzEyPj4yXSxhZT1FdH0oZixwLHcsY3QsYnQsRXQsbnQsWnQsb3QpLGFbSz4+Ml09YVtFdD4+Ml0sYVtLKzQ+PjJdPWFbRXQrND4+Ml0sYVtLKzg+PjJdPWFbRXQrOD4+Ml0sYVtLKzEyPj4yXT1hW0V0KzEyPj4yXSxhW1JlPj4yXT1hW250Pj4yXSxhW1JlKzQ+PjJdPWFb''@;'; + put 'put ''bnQrND4+Ml0sYVtSZSs4Pj4yXT1hW250Kzg+PjJdLGFbUmUrMTI+PjJdPWFbbnQrMTI+PjJdLGFbY3Q+PjJdPWFbWnQ+PjJdLGFbY3QrND4+Ml09YVtadCs0Pj4yXSxhW2N0Kzg+PjJdPWFbWnQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtadCsxMj4+Ml0sYVtidD4+Ml09YVtvdD4+Ml0sYVtidCs0''@;'; + put 'put ''Pj4yXT1hW290KzQ+PjJdLGFbYnQrOD4+Ml09YVtvdCs4Pj4yXSxhW2J0KzEyPj4yXT1hW290KzEyPj4yXSwwfGZ1bmN0aW9uIGlfKGwsYyxmLHAsbSxBLHcsYil7bHw9MCxjfD0wLHd8PTA7dmFyIEQsUixHLEsscGUsZ2UsYmUsT2UsTGUsUmUsSGUsVmUscWUsV2Usb3Qsaz0wLE09MCxudD0w''@;'; + put 'put ''LFN0PTAsa3Q9MDtmb3Iob3Q9YWUsYWU9YWUrNjR8MCxxZT0yPT0oMHwoYnw9MCkpLFZlPStfWyhmfD0wKT4+M10sT2U9K19bZis4Pj4zXSxMZT0oV2U9b3QpKzh8MCxSZT0rX1socHw9MCk+PjNdLEhlPVdlKzE2fDAsRz0rX1twKzg+PjNdLEs9V2UrMjR8MCxwZT0rX1sobXw9MCk+PjNdLGdl''@;'; + put 'put ''PStfWyhBfD0wKT4+M10sYmU9V2UrMzJ8MCxSPStfW20rOD4+M10sRD0rX1tBKzg+PjNdLHA9V2UrNDB8MCxtPVdlKzQ4fDAsQT1XZSs1NnwwLGY9MSxrPTQsTT00Ozspe2lmKF9bV2U+PjNdPVZlLF9bTGU+PjNdPU9lLF9bSGU+PjNdPShTdD0uMzMzMzMzMzMzMzMzMzMzMypNKSpSZStWZSxf''@;'; + put 'put ''W0s+PjNdPVN0KkcrT2UsX1tiZT4+M109cGUtKFN0PS4zMzMzMzMzMzMzMzMzMzMzKmspKmdlLF9bcD4+M109Ui1TdCpELF9bbT4+M109cGUsX1tBPj4zXT1SLGYmJihTdD0rb18oV2UsNCkpPCtvXyh3LGIpLS4wMDEpe2Y9MDticmVha31pZigwfFcxKGwsYyxXZSkpe250PTU7YnJlYWt9aWYo''@;'; + put 'put ''MD09TSYwPT1rKXtudD05O2JyZWFrfWY9MCxrPShrdD1NPi4wMSk/LjUqazowLE09a3Q/LjUqTTowfWU6ZG97aWYoNT09KDB8bnQpKWZvcihVRSg0KygwfGFbNDc0NTldKXwwKSxwPTB8YVs0NzQ2MF0sZj0xOzspe2lmKDQ9PSgwfGYpKXtmPTE7YnJlYWsgZX1fW3ArKChrdD0wfGFbNDc0NTld''@;'; + put 'put ''KTw8NCk+PjNdPStfW1dlKyhmPDw0KT4+M10sU3Q9K19bV2UrKGY8PDQpKzg+PjNdLGFbNDc0NTldPWt0KzEsX1twKyhrdDw8NCkrOD4+M109U3QsZj1mKzF8MH1lbHNlIGlmKDk9PSgwfG50KSlpZihxZSlmb3IoVUUoNCsoMHxhWzQ3NDU5XSl8MCkscD0wfGFbNDc0NjBdLGY9MTs7KXtpZig0''@;'; + put 'put ''PT0oMHxmKSl7Zj0xO2JyZWFrIGV9X1twKygoa3Q9MHxhWzQ3NDU5XSk8PDQpPj4zXT0rX1tXZSsoZjw8NCk+PjNdLFN0PStfW1dlKyhmPDw0KSs4Pj4zXSxhWzQ3NDU5XT1rdCsxLF9bcCsoa3Q8PDQpKzg+PjNdPVN0LGY9ZisxfDB9ZWxzZSBmPTB9d2hpbGUoMCk7cmV0dXJuIGFlPW90LDB8''@;'; + put 'put ''Zn0obCxjLEssUmUsY3QsYnQsZixwKSl3PTA7ZWxzZXtmb3IoYVtidD4+Ml09YVtudD4+Ml0sYVtidCs0Pj4yXT1hW250KzQ+PjJdLGFbYnQrOD4+Ml09YVtudCs4Pj4yXSxhW2J0KzEyPj4yXT1hW250KzEyPj4yXSxfZihxZSxidCwuMzMzMzMzMzMzMzMzMzMzMyksYVtjdD4+Ml09YVtFdD4+''@;'; + put 'put ''Ml0sYVtjdCs0Pj4yXT1hW0V0KzQ+PjJdLGFbY3QrOD4+Ml09YVtFdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW0V0KzEyPj4yXSxhW2J0Pj4yXT1hW3FlPj4yXSxhW2J0KzQ+PjJdPWFbcWUrND4+Ml0sYVtidCs4Pj4yXT1hW3FlKzg+PjJdLGFbYnQrMTI+PjJdPWFbcWUrMTI+PjJdLFFFKFdlLGN0''@;'; + put 'put ''LGJ0KSxMZT0rX1tXZT4+M10sT2U9K19bV2UrOD4+M10sYVtidD4+Ml09YVtvdD4+Ml0sYVtidCs0Pj4yXT1hW290KzQ+PjJdLGFbYnQrOD4+Ml09YVtvdCs4Pj4yXSxhW2J0KzEyPj4yXT1hW290KzEyPj4yXSxfZihTdCxidCwuMzMzMzMzMzMzMzMzMzMzMyksYVtjdD4+Ml09YVtadD4+Ml0s''@;'; + put 'put ''YVtjdCs0Pj4yXT1hW1p0KzQ+PjJdLGFbY3QrOD4+Ml09YVtadCs4Pj4yXSxhW2N0KzEyPj4yXT1hW1p0KzEyPj4yXSxhW2J0Pj4yXT1hW1N0Pj4yXSxhW2J0KzQ+PjJdPWFbU3QrND4+Ml0sYVtidCs4Pj4yXT1hW1N0Kzg+PjJdLGFbYnQrMTI+PjJdPWFbU3QrMTI+PjJdLGVBKGt0LGN0LGJ0''@;'; + put 'put ''KSxiZT0rX1trdD4+M10sRz0rX1trdCs4Pj4zXSxLPTB8YVs0NzQ2Ml0scGU9K19bRXQ+PjNdLGdlPStfW1p0Pj4zXSxSPStfW0V0Kzg+PjNdLE09K19bWnQrOD4+M10sRD1mcis4fDAsdz0tMSxiPS0xLGs9MTshKCgwfGspPj0oMHxsdCkpOylsMD0rREIoTHI9K19bSysoNDAqa3wwKT4+M10p''@;'; + put 'put ''LFZpPStFbShMciksT2k9K0RkKExyKSxMcj0rSkUoTHIpLF9bZnI+PjNdPVZpKkxlK3BlKmwwK09pKmJlK2dlKkxyLF9bRD4+M109T2kqRytWaSpPZStSKmwwK00qTHIsSnI9Zisoazw8NCl8MCxhW2N0Pj4yXT1hW2ZyPj4yXSxhW2N0KzQ+PjJdPWFbZnIrND4+Ml0sYVtjdCs4Pj4yXT1hW2Zy''@;'; + put 'put ''Kzg+PjJdLGFbY3QrMTI+PjJdPWFbZnIrMTI+PjJdLGFbYnQ+PjJdPWFbSnI+PjJdLGFbYnQrND4+Ml09YVtKcis0Pj4yXSxhW2J0Kzg+PjJdPWFbSnIrOD4+Ml0sYVtidCsxMj4+Ml09YVtKcisxMj4+Ml0sdz0oSnI9KExyPStyXyhjdCxidCkpPmIpP2s6dyxiPUpyP0xyOmIsaz1rKzF8MDtm''@;'; + put 'put ''cj1mKyh3Ky0xPDw0KXwwLGFbY3Q+PjJdPWFbKEpyPWYrKHc8PDQpfDApPj4yXSxhW2N0KzQ+PjJdPWFbSnIrND4+Ml0sYVtjdCs4Pj4yXT1hW0pyKzg+PjJdLGFbY3QrMTI+PjJdPWFbSnIrMTI+PjJdLGFbYnQ+PjJdPWFbZnI+PjJdLGFbYnQrND4+Ml09YVtmcis0Pj4yXSxhW2J0Kzg+PjJd''@;'; + put 'put ''PWFbZnIrOD4+Ml0sYVtidCsxMj4+Ml09YVtmcisxMj4+Ml0sZUEodXIsY3QsYnQpLGFbYnQ+PjJdPWFbdXI+PjJdLGFbYnQrND4+Ml09YVt1cis0Pj4yXSxhW2J0Kzg+PjJdPWFbdXIrOD4+Ml0sYVtidCsxMj4+Ml09YVt1cisxMj4+Ml0sYTUoU24sYnQpLGFbY3Q+PjJdPWFbKHVyPWYrKChm''@;'; + put 'put ''cj13KzF8MCk8PDQpfDApPj4yXSxhW2N0KzQ+PjJdPWFbdXIrND4+Ml0sYVtjdCs4Pj4yXT1hW3VyKzg+PjJdLGFbY3QrMTI+PjJdPWFbdXIrMTI+PjJdLGFbYnQ+PjJdPWFbSnI+PjJdLGFbYnQrND4+Ml09YVtKcis0Pj4yXSxhW2J0Kzg+PjJdPWFbSnIrOD4+Ml0sYVtidCsxMj4+Ml09YVtK''@;'; + put 'put ''cisxMj4+Ml0sZUEoSHIsY3QsYnQpLGFbYnQ+PjJdPWFbSHI+PjJdLGFbYnQrND4+Ml09YVtIcis0Pj4yXSxhW2J0Kzg+PjJdPWFbSHIrOD4+Ml0sYVtidCsxMj4+Ml09YVtIcisxMj4+Ml0sYTUoSG4sYnQpLGFbY3Q+PjJdPWFbU24+PjJdLGFbY3QrND4+Ml09YVtTbis0Pj4yXSxhW2N0Kzg+''@;'; + put 'put ''PjJdPWFbU24rOD4+Ml0sYVtjdCsxMj4+Ml09YVtTbisxMj4+Ml0sYVtidD4+Ml09YVtIbj4+Ml0sYVtidCs0Pj4yXT1hW0huKzQ+PjJdLGFbYnQrOD4+Ml09YVtIbis4Pj4yXSxhW2J0KzEyPj4yXT1hW0huKzEyPj4yXSxRRShFcixjdCxidCksYVtidD4+Ml09YVtFcj4+Ml0sYVtidCs0Pj4y''@;'; + put 'put ''XT1hW0VyKzQ+PjJdLGFbYnQrOD4+Ml09YVtFcis4Pj4yXSxhW2J0KzEyPj4yXT1hW0VyKzEyPj4yXSxhNShhbixidCksYVtjdD4+Ml09YVttPj4yXSxhW2N0KzQ+PjJdPWFbbSs0Pj4yXSxhW2N0Kzg+PjJdPWFbbSs4Pj4yXSxhW2N0KzEyPj4yXT1hW20rMTI+PjJdLGFbYnQ+PjJdPWFbYW4+''@;'; + put 'put ''PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sbDUobCxjLGYsZnIsY3QsYnQpLGFbY3Q+PjJdPWFbYW4+PjJdLGFbY3QrND4+Ml09YVthbis0Pj4yXSxhW2N0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtjdCsxMj4+Ml09''@;'; + put 'put ''YVthbisxMj4+Ml0sYVtidD4+Ml09YVtBPj4yXSxhW2J0KzQ+PjJdPWFbQSs0Pj4yXSxhW2J0Kzg+PjJdPWFbQSs4Pj4yXSxhW2J0KzEyPj4yXT1hW0ErMTI+PjJdLGw1KGwsYyxKcixwLXd8MCxjdCxidCksdz0wfX1yZXR1cm4gYWU9RHIsMHx3fV0sWmo9W2pqLGZ1bmN0aW9uIFUxZShsLGMs''@;'; + put 'put ''ZixwLG0sQSx3LGIsayxNKXtyZXR1cm4gMHxtZygzOSxsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wLGJ8PTAsa3w9MCxNfD0wKX0sZnVuY3Rpb24gcTFlKGwsYyxmLHAsbSxBLHcsYixrLE0pe3JldHVybiAwfG1nKDQwLGx8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8''@;'; + put 'put ''PTAsYnw9MCxrfD0wLE18PTApfSxqal0sbnE9W2Y5LGZ1bmN0aW9uIGROKCl7Um4oMTg5MjQ0KX0sZnVuY3Rpb24gUW9lKCl7dmFyIE0sRCxSLGw9MCxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihSPWFlLGFlPWFlKzE2fDAsRD1SKzh8MCxrPVIsTT0wfG5EKDB8YVs0NzI1''@;'; + put 'put ''MV0pLGw9MTkyKygwfGFbMTYrKDB8YVs0NzI1NF0pPj4yXSl8MDs7KXtpZighKGM9MHxhW2w+PjJdKSl7Yj0wO2JyZWFrfTB8YVsyOTIrKGw9MHxhWyhmPWMrMTZ8MCk+PjJdKT4+Ml18fChENyhNLGMpLGw9MHxhW2Y+PjJdKSxsPWwrMTY0fDB9Zm9yKDtsPTB8ckQoTSk7KXtmb3IoYVsocD0y''@;'; + put 'put ''MzIrKGw9MHxhWyh3PWwrMTZ8MCk+PjJdKXwwKT4+Ml09MCxmPTB8YVtsKzE3Mj4+Ml0sYz0wLEE9MDs7KXtpZighKG09MHxhW2YrKGM8PDIpPj4yXSkpe3A9MDticmVha31hW3A+PjJdPW09KDB8QSk+KDB8KG09KDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMyZhW20+PjJdfDApP206bSs0''@;'; + put 'put ''OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSsoMHxoclsxNzArKDB8YVttKzE2Pj4yXSk+PjFdKXwwKSk/QTptLGM9YysxfDAsQT1tfWZvcig7Yz0wfGFbKDB8YVtsKzE4MD4+Ml0pKyhwPDwyKT4+Ml07KWY9YystNDh8MCxhWyhtPTI5MisoMHxhWzE2KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/Yzpm''@;'; + put 'put ''KSs0MD4+Ml0pPj4yXSl8MCk+PjJdPShBPTB8YVttPj4yXSktMSwoMHxBKTwyJiYoRDcoTSwwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpmKSs0MD4+Ml0pLGw9MHxhW3c+PjJdKSxwPXArMXwwO2I9YisxfDB9ZTpkb3tpZigoMHxiKSE9KDB8YVs0NzI1MV0pKWZvcigkcigxLDEwMjU1NixrKSxs''@;'; + put 'put ''PTE5MisoMHxhWzE2KygwfGFbNDcyNTRdKT4+Ml0pfDA7Oyl7aWYoIShjPTB8YVtsPj4yXSkpYnJlYWsgZTswfGFbMjkyKyhsPTB8YVsoZj1jKzE2fDApPj4yXSk+PjJdJiYoaz0wfHRpKGMpLGw9MHxhWzI5MisoMHxhW2Y+PjJdKT4+Ml0sYVtEPj4yXT1rLGFbRCs0Pj4yXT1sLCRyKDMsMTAy''@;'; + put 'put ''NTc4LEQpLGw9MHxhW2Y+PjJdKSxsPWwrMTY0fDB9fXdoaWxlKDApO2ZKKE0pLGFlPVJ9LGRRLGZ1bmN0aW9uIEpvZSgpe3ZhciBtLGw9MCxjPTAsZj0wLHA9MDtmb3IobD0xOTIrKDB8YVsxNisoMHxhWzQ3MjU0XSk+PjJdKXwwO2w9MHxhW2w+PjJdOylhWzI4MCsobD0wfGFbbCsxNj4+Ml0p''@;'; + put 'put ''Pj4yXT0wLGw9bCsxNjR8MDtmb3IobT0wfHZyKGFbNDcyNTFdPDwyKSxwPTAsbD0xOTIrKDB8YVsxNisoMHxhWzQ3MjU0XSk+PjJdKXwwO2M9MHxhW2w+PjJdOykwfGFbMjgwKyhsPTB8YVsoZj1jKzE2fDApPj4yXSk+PjJdP2M9cDooYVttKyhwPDwyKT4+Ml09MHxxb2UoYyksYz1wKzF8MCxs''@;'; + put 'put ''PTB8YVtmPj4yXSkscD1jLGw9bCsxNjR8MDtmb3IobD0wfGZ1bmN0aW9uIGVhZShsLGMpe2x8PTAsY3w9MDt2YXIgcCxmPTA7Zm9yKHA9MHx2cig4KSxhW3A+PjJdPWwsYVtwKzQ+PjJdPWMsZj0wOyEoKDB8Zik+PSgwfGMpKTspYVs4KygwfGFbbCsoZjw8Mik+PjJdKT4+Ml09ZixmPWYrMXww''@;'; + put 'put ''O2ZvcihmPSgwfGMpLzJ8MDshKCgwfGYpPD0tMSk7KU5IKHAsZiksZj1mKy0xfDA7cmV0dXJuIDB8cH0obSxwKTshKCgwfHRhZShsKSk8PTEpOylOSChsLDB8YVs4KygwfGlhZSgwfHJhZSgwfG5hZShsKSkpKT4+Ml0pO2ZvcihGdChsKSxsPTA7ISgoMHxsKT49KDB8cCkpOylGdCgwfGFbbSso''@;'; + put 'put ''bDw8Mik+PjJdKSxsPWwrMXwwO0Z0KG0pLCgwfGFbNDcyNTVdKSE9KCgwfGFbNDcyNTFdKS0xfDApP1ByKDEwMjMwMSwxMDIzMzEsNTIzLDEwMjMzNik6ZnVuY3Rpb24gb2FlKCl7ekkoMHxhWzE5MisoMHxhWzE2KygwfGFbNDcyNTRdKT4+Ml0pPj4yXSwwLDEpLFZIKDB8YVsxOTIrKDB8YVsx''@;'; + put 'put ''NisoMHxhWzQ3MjU0XSk+PjJdKT4+Ml0sMCl9KCl9LGZ1bmN0aW9uIEZIKCl7dmFyIE0sbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wLFI9MDtmb3IoZ1EoKSxNPTB8dnIoNCsoYVs0NzI1M108PDIpfDApLGM9MHxhWzQ3MjUzXSxsPTA7ISgoMHxsKT4oMHxjKSk7KWFb''@;'; + put 'put ''TSsobDw8Mik+PjJdPTAsbD1sKzF8MDtmb3IoYz1sPTE5MisoMHxhWzE2KygwfGFbNDcyNTRdKT4+Ml0pfDA7Yz0wfGFbYz4+Ml07KTB8ZmVbMTU2KyhjPTB8YVtjKzE2Pj4yXSk+PjBdfHwoYVsoaz1NKyhhW2MrMjMyPj4yXTw8Mil8MCk+PjJdPTErKDB8YVtrPj4yXSkpLGM9YysxNjR8MDtm''@;'; + put 'put ''b3IoO2w9MHxhW2w+PjJdOyl7aWYoISgwfGZlWzE1NisobD0wfGFbKGs9bCsxNnwwKT4+Ml0pPj4wXSkpe2ZvcihtPTB8YVs0NzI1M10sZj0wfGFbbCsxNzI+PjJdLGI9MCx3PTAsYz0wO3A9MHxhW2YrKGM8PDIpPj4yXTspYj0oMHxhWzE1NisoRD0wfGFbcCsxNj4+Ml0pPj4yXSkrYnwwLHc9''@;'; + put 'put ''KDB8dyk+KDB8KEE9KDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMyZhW3A+PjJdfDApP3A6cCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSsoMHxocltEKzE3MD4+MV0pfDApKT93OkEsYz1jKzF8MDtmb3IocD0wfGFbbCsxODA+PjJdLEE9MCxjPTA7Zj0wfGFbcCsoYzw8Mik+PjJdOylBPSgw''@;'; + put 'put ''fGFbMTU2KyhSPTB8YVtmKzE2Pj4yXSk+PjJdKStBfDAsbT0oMHxtKTwoMHwoRD0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpmKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxocltSKzE3MD4+MV0pfDApKT9tOkQsYz1jKzF8MDtpZihjPSgwfHcpPjA/dzow''@;'; + put 'put ''LCgwfGIpPT0oMHxBKSl7Zm9yKHA9YyxmPWM7Yz1mKzF8MCwhKCgwfGYpPj0oMHxtKSk7KXA9KDB8YVtNKyhjPDwyKT4+Ml0pPCgwfGFbTSsocDw8Mik+PjJdKT9jOnAsZj1jO2FbKEQ9TSsoYVsoUj1sKzIzMnwwKT4+Ml08PDIpfDApPj4yXT0oMHxhW0Q+PjJdKS0xLGFbKEQ9TSsocDw8Mil8''@;'; + put 'put ''MCk+PjJdPTErKDB8YVtEPj4yXSksYVtSPj4yXT1wfShjPTB8YVtsKzI2ND4+Ml0pJiYoRnQoYyksbD0wfGFbaz4+Ml0pLChjPTB8YVtsKzI3Mj4+Ml0pJiYoRnQoYyksbD0wfGFbaz4+Ml0pLGZlW2wrMTU3Pj4wXT0wfWw9bCsxNjR8MH1GdChNKX0sZnVuY3Rpb24gcFEoKXt2YXIgbD0wLGM9''@;'; + put 'put ''MCxmPTAscD0wLG09MCxBPTA7Zm9yKGM9MDshKCgwfGMpPj0oMHxhWzQ3MjU1XSkpOyl7bD0wfGFbKDB8YVs0NzI1Nl0pKyhjPDwyKT4+Ml07ZG97aWYoMD09KDB8YVsxNjArKDB8YVtsKzE2Pj4yXSk+PjJdKSYmMHwoZj0wfFBIKGwpKSYmKDB8KHA9KDB8YVsyMzIrKDB8YVsxNisoMHxhWygy''@;'; + put 'put ''PT0oMHwocD0zJmFbZj4+Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8cCk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGhyWzE3MCsoMHxhW2YrMTY+PjJdKT4+MV0pfDApKT49Mil7aWYoKDB8YVsyODgrKDB8YVsx''@;'; + put 'put ''NisobT0wfGFbKDM9PSgwfChBPTMmYVtsPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhWzI4OCsoMHxhWzE2KyhsPTB8YVsoMj09KDB8QSk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSl7WDUobSxwPj4+MSk7YnJlYWt9WDUobCwoMHxwKS8tMnwwKTticmVha319''@;'; + put 'put ''d2hpbGUoMCk7Yz1jKzF8MH1kUSgpfSxnUSxmdW5jdGlvbiBibSgpe0Z0KDB8YVs0NzM3NV0pLGFbNDczNzVdPTAsYVs0NzM4N109MH0sZjksZjksZjksZjksZjksZjksZjldLENvPVtmOCxmdW5jdGlvbiB0aWUobCl7dmFyIGMsZixwLG07c3dpdGNoKG09YWUsYWU9YWUrMTZ8MCxjPW0rNHww''@;'; + put 'put ''LGY9bSxwPTB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdLDB8YVsobD1sKzY0fDApPj4yXSl7Y2FzZSAwOkU3KHApO2JyZWFrO2Nhc2UgMToxJnJ0WzEzNisoMHxhW3ArMTY+PjJdKT4+MV0mJnlKKHApO2JyZWFrO2Nhc2UgNDpjYXNlIDU6Y2FzZSA2OmJRKHAsZixjKSxmdW5jdGlvbiBV''@;'; + put 'put ''ZChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciB3LG09MCxBPTA7QT0wfEIwKDgyNDApLGFbNDY2OTBdPUE7ZTpkb3tzd2l0Y2goMHxwKXtjYXNlIDY6cnRbQSs4MjMyPj4xXT0xNCxwPTY2NzY5O2JyZWFrO2Nhc2UgNTpydFtBKzgyMzI+PjFdPTEyLHA9NjY3NzM7YnJlYWs7ZGVm''@;'; + put 'put ''YXVsdDppZigwfChwPTB8TGkobCw2Njc1MykpJiYwfGZlW3A+PjBdJiYoNjU1MzUmKG09MHxpcChwKSkpPjEwKXtydFs4MjMyKyhBPTB8YVs0NjY5MF0pPj4xXT1tO2JyZWFrIGV9cD0wfGlwKDY2NzY1KSxydFs4MjMyKyhBPTB8YVs0NjY5MF0pPj4xXT1wLHA9NjY3NjV9fXdoaWxlKDApO2Zv''@;'; + put 'put ''cihhW0ErODIzNj4+Ml09cCwwfGFbMTgwKyhwPTB8YVsodz1sKzE2fDApPj4yXSk+PjJdPyhtPTB8WjIobCwwLDk5ODA4LDE5NTA1OSksQT0wfGFbNDY2OTBdLHA9MHxhW3c+PjJdKTptPTAsYVtBPj4yXT1tLHA9OCZmZVtwKzExMz4+MF0/MHxaMihsLDAsNjY3NzcsMTk1MDU5KTowLGFbNCso''@;'; + put 'put ''MHxhWzQ2NjkwXSk+PjJdPXAsQT0wfFoyKGwsMSw5OTgwOCwxOTUwNTkpLGFbOCsoMHxhWzQ2NjkwXSk+PjJdPUEsQT0wfFoyKGwsMSw2Njc3NywxOTUwNTkpLGFbMTIrKDB8YVs0NjY5MF0pPj4yXT1BLEE9MHxaMihsLDIsOTk4MDgsMTk1MDU5KSxhWzE2KyhwPTB8YVs0NjY5MF0pPj4yXT1B''@;'; + put 'put ''LGY/KG09MHxaMihsLDIsNjY3ODUsMTk1MDU5KSxwPTB8YVs0NjY5MF0pOm09MCxhW3ArMjA+PjJdPW0sYz8obT0wfFoyKGwsMiw2Njc5MywxOTUwNTkpLHA9MHxhWzQ2NjkwXSk6bT0wLGFbcCsyND4+Ml09bSwzMyYobT0wfGZlWzExMysoMHxhW3c+PjJdKT4+MF0pPyhBPTB8WjIobCwyLDY2''@;'; + put 'put ''Nzc3LDE5NTA1OSkscD0wfGFbNDY2OTBdLG09MHxmZVsxMTMrKDB8YVt3Pj4yXSk+PjBdKTpBPTAsYVtwKzI4Pj4yXT1BLDImbT8oQT0wfFoyKGwsMiw2NjgwMSwxOTUwNTkpLHA9MHxhWzQ2NjkwXSxtPTB8ZmVbMTEzKygwfGFbdz4+Ml0pPj4wXSk6QT0wLGFbcCszMj4+Ml09QSw0Jm0/KG09''@;'; + put 'put ''MHxaMihsLDIsNjY4MTAsMTk1MDU5KSxwPTB8YVs0NjY5MF0pOm09MCxhW3ArMzY+PjJdPW0scD0wOzghPSgwfHApOyl1cygxODY2MzIrKHA8PDQpfDAsMTAyNCw0MCsoMHxhWzQ2NjkwXSkrKHA8PDEwKXwwKSxwPXArMXwwfShwLDB8YVtmPj4yXSwwfGFbYz4+Ml0sMHxhW2w+PjJdKX1hZT1t''@;'; + put 'put ''fSxmdW5jdGlvbiBDVyhsKXt2YXIgYyxmLHAsbTtzd2l0Y2goZj0wfGFbOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSwwfGFbNDY2NTVdfHwoYVs0NjY1NV09YVs0Njc4XSxhWzQ2NjU2XT01NyxhWzQ2NjU3XT0xOSksYz0wfGFbKG09OCsoMHxhWyhwPWYrNjR8MCk+PjJdKXwwKT4+Ml0sYVtt''@;'; + put 'put ''Pj4yXT0xODY2MjAsMHxhW2wrNjQ+PjJdKXtjYXNlIDI6QVEobCxmLGwsMCk7YnJlYWs7Y2FzZSAzOkFRKGwsZixsLDEpO2JyZWFrO2Nhc2UgMTpjYXNlIDA6MTM0MjE3NzI4JmFbbCsxNTI+PjJdfHxKbmUoZixsKTticmVhaztjYXNlIDY6Y2FzZSA1OmNhc2UgNDooZnVuY3Rpb24gdkYobCl7''@;'; + put 'put ''bHw9MDt2YXIgYz0wLGY9MDtmb3IoKDB8KGM9MHxhWzQ2NjU5XSkpIT0oMHxhWzQ2NjU4XSkmJigoZj0wfGFbYVs0NjY5MF0+PjJdKXx8KGY9MHxaMihsLDAsOTk4MDgsMTk1MDU5KSxhW2FbNDY2OTBdPj4yXT1mLGM9MHxhWzQ2NjU5XSksYz4+PjA+PSgwfGFbNDY2NjBdKT4+PjAmJihRMCgx''@;'; + put 'put ''ODY2MzIsMSksYz0wfGFbNDY2NTldKSxmZVtjPj4wXT0wLGFbNDY2NTldPWM9MHxhWzQ2NjU4XSxWbChsLGYsYykpLDB8YVsxMisoMHxhW2wrMTY+PjJdKT4+Ml0mJihmPTB8YVs0KygwfGFbNDY2OTBdKT4+Ml0sKGM9MHxhWzQ2Njc1XSk+Pj4wPj0oMHxhWzQ2Njc2XSk+Pj4wJiYoUTAoMTg2''@;'; + put 'put ''Njk2LDEpLGM9MHxhWzQ2Njc1XSksZmVbYz4+MF09MCxhWzQ2Njc1XT1jPTB8YVs0NjY3NF0sVmwobCxmLGMpKSxJNShsLDY2NzUzLDB8YVs4MjM2KygwfGFbNDY2OTBdKT4+Ml0sMTk1MDU5KSxjPTA7OCE9KDB8Yyk7KUMyKDE4NjYzMisoYzw8NCl8MCksYz1jKzF8MDtGdCgwfGFbNDY2OTBd''@;'; + put 'put ''KSxfWzFdPTEsX1s1XT0xLGFbNDY2OTFdPTAsYVs0NjY5NV09MH0pKGYpLDEzNDIxNzcyOCZhW2wrMTUyPj4yXXx8Sm5lKGYsbCl9YVs4KygwfGFbcD4+Ml0pPj4yXT1jfSxmdW5jdGlvbiBuaWUobCl7dmFyIGYsYz0wO2Y9MHxhWzgrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0sYz0wfGFbYVs0''@;'; + put 'put ''NjY5MF0+PjJdLChsPTB8YVs0NjY2M10pPj4+MD49KDB8YVs0NjY2NF0pPj4+MCYmKFEwKDE4NjY0OCwxKSxsPTB8YVs0NjY2M10pLGZlW2w+PjBdPTAsYVs0NjY2M109bD0wfGFbNDY2NjJdLFZsKGYsYyxsKSwwfGFbMTIrKDB8YVtmKzE2Pj4yXSk+PjJdJiYoYz0wfGFbNCsoMHxhWzQ2Njkw''@;'; + put 'put ''XSk+PjJdLChsPTB8YVs0NjY3OV0pPj4+MD49KDB8YVs0NjY4MF0pPj4+MCYmKFEwKDE4NjcxMiwxKSxsPTB8YVs0NjY3OV0pLGZlW2w+PjBdPTAsYVs0NjY3OV09bD0wfGFbNDY2NzhdLFZsKGYsYyxsKSksX1syXT0xLF9bNl09MSxhWzQ2NjkyXT0wLGFbNDY2OTZdPTB9LGZ1bmN0aW9uIHFt''@;'; + put 'put ''ZShsKXt2YXIgZixjPTA7Zj0wfGFbOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSwoMHxhWzQ2NjYyXSkhPSgwfChsPTB8YVs0NjY2M10pKSYmKGM9MHxhWzgrKDB8YVs0NjY5MF0pPj4yXSxsPj4+MD49KDB8YVs0NjY2NF0pPj4+MCYmKFEwKDE4NjY0OCwxKSxsPTB8YVs0NjY2M10pLGZlW2w+''@;'; + put 'put ''PjBdPTAsYVs0NjY2M109bD0wfGFbNDY2NjJdLFZsKGYsYyxsKSksKDB8YVs0NjY3OF0pIT0oMHwobD0wfGFbNDY2NzldKSkmJihjPTB8YVsxMisoMHxhWzQ2NjkwXSk+PjJdLGw+Pj4wPj0oMHxhWzQ2NjgwXSk+Pj4wJiYoUTAoMTg2NzEyLDEpLGw9MHxhWzQ2Njc5XSksZmVbbD4+MF09MCxh''@;'; + put 'put ''WzQ2Njc5XT1sPTB8YVs0NjY3OF0sVmwoZixjLGwpKSxfWzldPTEsX1sxMV09MSxhWzQ2Njk5XT0wLGFbNDY3MDFdPTB9LGZ1bmN0aW9uIGtXKGwpe3ZhciBmLGM9MDtmPTB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdLCgwfGFbNDY2NjJdKSE9KDB8KGw9MHxhWzQ2NjYzXSkpJiYoYz0w''@;'; + put 'put ''fGFbMTYrKDB8YVs0NjY5MF0pPj4yXSxsPj4+MD49KDB8YVs0NjY2NF0pPj4+MCYmKFEwKDE4NjY0OCwxKSxsPTB8YVs0NjY2M10pLGZlW2w+PjBdPTAsYVs0NjY2M109bD0wfGFbNDY2NjJdLFZsKGYsYyxsKSksKDB8YVs0NjY2Nl0pIT0oMHwobD0wfGFbNDY2NjddKSkmJihjPTB8YVsyNCso''@;'; + put 'put ''MHxhWzQ2NjkwXSk+PjJdLGw+Pj4wPj0oMHxhWzQ2NjY4XSk+Pj4wJiYoUTAoMTg2NjY0LDEpLGw9MHxhWzQ2NjY3XSksZmVbbD4+MF09MCxhWzQ2NjY3XT1sPTB8YVs0NjY2Nl0sVmwoZixjLGwpKSwoMHxhWzQ2NjcwXSkhPSgwfChsPTB8YVs0NjY3MV0pKSYmKGM9MHxhWzIwKygwfGFbNDY2''@;'; + put 'put ''OTBdKT4+Ml0sbD4+PjA+PSgwfGFbNDY2NzJdKT4+PjAmJihRMCgxODY2ODAsMSksbD0wfGFbNDY2NzFdKSxmZVtsPj4wXT0wLGFbNDY2NzFdPWw9MHxhWzQ2NjcwXSxWbChmLGMsbCkpLCgwfGFbNDY2NzhdKSE9KDB8KGw9MHxhWzQ2Njc5XSkpJiYoYz0wfGFbMjgrKDB8YVs0NjY5MF0pPj4y''@;'; + put 'put ''XSxsPj4+MD49KDB8YVs0NjY4MF0pPj4+MCYmKFEwKDE4NjcxMiwxKSxsPTB8YVs0NjY3OV0pLGZlW2w+PjBdPTAsYVs0NjY3OV09bD0wfGFbNDY2NzhdLFZsKGYsYyxsKSksKDB8YVs0NjY4Ml0pIT0oMHwobD0wfGFbNDY2ODNdKSkmJihjPTB8YVszNisoMHxhWzQ2NjkwXSk+PjJdLGw+Pj4w''@;'; + put 'put ''Pj0oMHxhWzQ2Njg0XSk+Pj4wJiYoUTAoMTg2NzI4LDEpLGw9MHxhWzQ2NjgzXSksZmVbbD4+MF09MCxhWzQ2NjgzXT1sPTB8YVs0NjY4Ml0sVmwoZixjLGwpKSwoMHxhWzQ2Njg2XSkhPSgwfChsPTB8YVs0NjY4N10pKSYmKGM9MHxhWzMyKygwfGFbNDY2OTBdKT4+Ml0sbD4+PjA+PSgwfGFb''@;'; + put 'put ''NDY2ODhdKT4+PjAmJihRMCgxODY3NDQsMSksbD0wfGFbNDY2ODddKSxmZVtsPj4wXT0wLGFbNDY2ODddPWw9MHxhWzQ2Njg2XSxWbChmLGMsbCkpLF9bMTBdPTEsX1sxMl09MSxfWzNdPTEsX1s0XT0xLF9bN109MSxfWzhdPTEsYVs0NjcwMF09MCxhWzQ2NzAyXT0wLGFbNDY2OTNdPTAsYVs0''@;'; + put 'put ''NjY5NF09MCxhWzQ2Njk3XT0wLGFbNDY2OThdPTB9LGZ1bmN0aW9uIHhXKGwpe3ZhciBjPTA7c3dpdGNoKDB8YVs2NCsobHw9MCk+PjJdKXtjYXNlIDA6Yz0wfGZ1bmN0aW9uIF9UKGwpe3ZhciBjLGY9MCxwPTAsbT0wO3A9bHw9MCxtPTQwKyhmPWM9MHx2cigzOTIpKXwwO2Rve2FbZj4+Ml09''@;'; + put 'put ''YVtwPj4yXSxmPWYrNHwwLHA9cCs0fDB9d2hpbGUoKDB8Zik8KDB8bSkpO3JldHVybiBhWyhtPWMrNjB8MCk+PjJdPWFbKHA9bCs2MHwwKT4+Ml0sYVttKzQ+PjJdPWFbcCs0Pj4yXSxhW20rOD4+Ml09YVtwKzg+PjJdLGFbbSsxMj4+Ml09YVtwKzEyPj4yXSxhW20rMTY+PjJdPWFbcCsxNj4+''@;'; + put 'put ''Ml0sYVsobT1jKzgwfDApPj4yXT1hWyhwPWwrODB8MCk+PjJdLGFbbSs0Pj4yXT1hW3ArND4+Ml0sYVttKzg+PjJdPWFbcCs4Pj4yXSxhW20rMTI+PjJdPWFbcCsxMj4+Ml0sYVttKzE2Pj4yXT1hW3ArMTY+PjJdLDB8Y30oMHxhW2w+PjJdKSxmdW5jdGlvbiBYRyhsLGMsZixwKXtwfD0wO3Zh''@;'; + put 'put ''ciBtLEEsYix3PTA7Yj1hZSxhZT1hZSsxNnwwLEE9YixtPTB8YVs2MCsoY3w9MCk+PjJdLENUKGx8PTAsZnw9MCksYVs1NisoYz0wfGFbbCsxNjQ+PjJdKT4+Ml09MHxDdihjLDB8YVtjKzUyPj4yXSksMCE9KDB8aDAobSwxMzc0ODMsMCwxKSkmJjAhPSgwfGFbOCsoMHxhW20rMTY+PjJdKT4+''@;'; + put 'put ''Ml0pfHw2NzEwODg2NCZhW2MrMTUyPj4yXT93PTU6KFhtKDk4OTExLEEpLGM9LTEpLDU9PSgwfHcpJiYoYVtjKzM2Pj4yXT1wLHB8fChhWyh3PWMrMTUyfDApPj4yXT0xMzQyMTc3Mjh8YVt3Pj4yXSksdz0wfGcyKGwsbSksa3YoYykscVAobCksYz13KSxhZT1ifShjLDB8YVs4KygwfGFbbCsx''@;'; + put 'put ''Nj4+Ml0pPj4yXSw2Nzc5NywwKSxmdW5jdGlvbiBWRyhsKXtxUChsfD0wKSxGdChsKX0oYyk7YnJlYWs7Y2FzZSAxOkU3KDB8YVsxNjgrKDB8YVtsPj4yXSk+PjJdKX19LGZ1bmN0aW9uIG9pZShsKXt2YXIgYyxmLHAsbTtwPWFlLGFlPWFlKzE2fDAsYz1wLGY9MHxhWzgrKDB8YVsxNisobHw9''@;'; + put 'put ''MCk+PjJdKT4+Ml0sMHxhWzQ2NzAzXXx8KGFbNDY3MDNdPWFbNDY3OF0sYVs0NjcwNF09NTcsYVs0NjcwNV09MTkpLGFbOCsoMHxhW2YrNjQ+PjJdKT4+Ml09MTg2ODEyLE5UKGYsMSksYVtjPj4yXT0wLGZlW2MrND4+MF09MT09KDB8ZmVbMTE1KygwfGFbZisxNj4+Ml0pPj4wXSkmMSxmZVtj''@;'; + put 'put ''KzU+PjBdPTEmKDA9PSgwfChtPTB8YVtsKzY0Pj4yXSkpfDM9PSgwfG0pKSxmZVtjKzY+PjBdPTAsYkYoZixsLDEsYyksYWU9cH0sZnVuY3Rpb24gbzdlKGwpe3ZhciBjLGYscCxtLEEsdyxiLGs7Yz1hZSxhZT1hZSszMnwwLGY9YysyNHwwLHA9YysxNnwwLEE9YyxtPTB8YVsxNisobHw9MCk+''@;'; + put 'put ''PjJdLEVuKGwsNjg2MjMpLGI9MHxhWzQrKGs9MHxhW2FbbCsxMj4+Ml0+PjJdKT4+Ml0sdz0wfGFbays4Pj4yXSxhW0E+PjJdPWFbaz4+Ml0sYVtBKzQ+PjJdPWIsYVtBKzg+PjJdPXcsT3IobCw2ODYzMyxBKSxhW3A+PjJdPTB8dGkoMHxhW20rOD4+Ml0pLE9yKGwsNjg2NjgscCksYVtmPj4y''@;'; + put 'put ''XT0wfEFyKDB8YVtsKzE2OD4+Ml0sMHxhW2wrMTY0Pj4yXSksT3IobCw2ODY4MSxmKSxFbihsLDY4Njk0KSxFbihsLDY4NzA0KSxFbihsLDY4NzEyKSxFbihsLDY4NzIwKSxFbihsLDY4NzI4KSxFbihsLDY4NzM2KSxFbihsLDY4NzQ0KSxFbihsLDY4NzQ4KSxFbihsLDY4NzUzKSxhZT1jfSxm''@;'; + put 'put ''dW5jdGlvbiBCVyhsKXtFbihsfD0wLDY4NjA0KX0sZnVuY3Rpb24gZmllKGwpe2FbNDY3MTBdPTJ9LGZ1bmN0aW9uIENGKGwpe2FbNDY3MTBdPTF9LGZ1bmN0aW9uIFZDKGwpe2FbNDY3MTBdPTJ9LGZ1bmN0aW9uIGhpZShsKXthWzQ2NzEwXT0wfSxmdW5jdGlvbiBWVChsKXthWzQ2NzEwXT0y''@;'; + put 'put ''fSxmdW5jdGlvbiBIVyhsKXt2YXIgYz0wLGY9MCxwPTA7c3dpdGNoKGY9MHxhWzE2KyhsfD0wKT4+Ml0sMHxhW2wrNjQ+PjJdKXtjYXNlIDA6RW4obCw2ODIyMCksMHwoZj0wfGFbKGM9ZisyMDh8MCk+PjJdKSYmMHxmZVtmPj4wXSYmKEVuKGwsNjgyMzQpLEVuKGwsMHxNMSgwfGFbYz4+Ml0p''@;'; + put 'put ''KSxFbihsLDE1MzU5OSkpO2JyZWFrO2Nhc2UgMTowfChwPTB8YVsoYz1mKzIwOHwwKT4+Ml0pJiYwfGZlW3A+PjBdJiYoRW4obCw2ODIzNCksRW4obCwwfE0xKDB8YVtjPj4yXSkpLEVuKGwsMTAyNjA0KSxFbihsLDB8TTEoMHx0aSgwfGFbZis4Pj4yXSkpKSxFbihsLDE1MzU5OSkpO2JyZWFr''@;'; + put 'put ''O2Nhc2UgMzpwPTB8TTEoMHx0aSgwfGFbZis4Pj4yXSkpLEVuKGwsNjgyNDMpLEVuKGwscCksRW4obCw2ODI1MyksRW4obCxwKSxFbihsLDY4MjA4KX19LGZ1bmN0aW9uIFNGKGwpe3ZhciBjO3N3aXRjaChjPTB8YVsxNisobHw9MCk+PjJdLDB8YVtsKzY0Pj4yXSl7Y2FzZSAyOlpUKGwsMHxh''@;'; + put 'put ''W2MrMjY0Pj4yXSwwfGFbYysyNzI+PjJdLDB8YVtjKzI2OD4+Ml0sMHxhW2MrMjA4Pj4yXSwwfGFbYysyMjg+PjJdLDB8YVtjKzI0ND4+Ml0sMHxhW2MrMjEyPj4yXSk7YnJlYWs7Y2FzZSAzOlpUKGwsMHxhW2MrMjY0Pj4yXSwwfGFbYysyNzI+PjJdLDB8YVtjKzI2OD4+Ml0sMHxhW2MrMjA4''@;'; + put 'put ''Pj4yXSwwfGFbYysyMjg+PjJdLDB8YVtjKzI0ND4+Ml0sMHxhW2MrMjEyPj4yXSksRW4obCw2ODIxMil9fSxmdW5jdGlvbiBOVyhsKXt2YXIgYyxmLHAsbSxBLHcsYixrO2M9YWUsYWU9YWUrMzJ8MCxmPWMrMjR8MCxwPWMrMTZ8MCxBPWMsbT0wfGFbMTYrKGx8PTApPj4yXSxFbihsLDY4NjIz''@;'; + put 'put ''KSxiPTB8YVs0KyhrPTB8YVthW2wrMTI+PjJdPj4yXSk+PjJdLHc9MHxhW2srOD4+Ml0sYVtBPj4yXT1hW2s+PjJdLGFbQSs0Pj4yXT1iLGFbQSs4Pj4yXT13LE9yKGwsNjg2MzMsQSksYVtwPj4yXT0wfHRpKDB8YVttKzg+PjJdKSxPcihsLDY4NjY4LHApLGFbZj4+Ml09MHxBcigwfGFbbCsx''@;'; + put 'put ''Njg+PjJdLDB8YVtsKzE2ND4+Ml0pLE9yKGwsNjg2ODEsZiksRW4obCw2ODY5NCksRW4obCw2ODcwNCksRW4obCw2ODcxMiksRW4obCw2ODcyMCksRW4obCw2ODcyOCksRW4obCw2ODczNiksRW4obCw2ODc0NCksRW4obCw2ODc0OCksRW4obCw2ODc1MyksYWU9Y30sZnVuY3Rpb24gQWllKGwp''@;'; + put 'put ''e0VuKGx8PTAsNjg2MDQpfSxmdW5jdGlvbiB5aWUobCl7YVs0NjcxNl09Mn0sZnVuY3Rpb24gd2llKGwpe2FbNDY3MTZdPTF9LGZ1bmN0aW9uIGJpZShsKXthWzQ2NzE2XT0yfSxmdW5jdGlvbiB6VChsKXthWzQ2NzE2XT0wfSxmdW5jdGlvbiBWVyhsKXthWzQ2NzE2XT0yfSxmdW5jdGlvbiBT''@;'; + put 'put ''aWUobCl7dmFyIGMsZixwLG0sQTtmPWFlLGFlPWFlKzE2fDAsYz1mLEVuKGx8PTAsNzMzMzIpLEVuKGwsMj09KDB8YVtsKzY0Pj4yXSk/NzMzNDc6MTUzNTk5KSxtPTB8YVs0KyhBPTB8YVthW2wrMTI+PjJdPj4yXSk+PjJdLHA9MHxhW0ErOD4+Ml0sYVtjPj4yXT1hW0E+PjJdLGFbYys0Pj4y''@;'; + put 'put ''XT1tLGFbYys4Pj4yXT1wLE9yKGwsNzMzNTgsYyksYWU9Zn0sZnVuY3Rpb24gV1cobCl7dmFyIG0sQSxjPTAsZj0wLHA9MDtBPWFlLGFlPWFlKzMyfDAsbT1BKzh8MCxwPUEsRW4obHw9MCw3MzI4NiksYz1sKzEyfDAsMiE9KDB8YVsoZj1sKzY0fDApPj4yXSkmJihhW3A+PjJdPWFbMjgrKDB8''@;'; + put 'put ''YVtjPj4yXSk+PjJdLE9yKGwsNzMyOTcscCkpLDA9PSgwfGFbMjArKDB8YVtjPj4yXSk+PjJdKSYmMiE9KDB8YVtmPj4yXSkmJihjPTB8YVtsKzQ3Nj4+Ml0sZj0wfGFbbCs0ODA+PjJdLHA9MHxhW2wrNDg0Pj4yXSxhW20+PjJdPWFbbCs0NzI+PjJdLGFbbSs0Pj4yXT1jLGFbbSs4Pj4yXT1m''@;'; + put 'put ''LGFbbSsxMj4+Ml09cCxPcihsLDY5NjY2LG0pKSxFbihsLDczMzEyKSxFbihsLDczMzI1KSxhZT1BfSxmdW5jdGlvbiBNaWUobCl7dmFyIGYscCxtLEEsdyxiLGssYz0wLE09MCxEPTA7aWYoaz1hZSxhZT1hZSszMnwwLGI9aysyNHwwLHA9ays4fDAsdz1rLG09MHxhWzE2KyhsfD0wKT4+Ml0s''@;'; + put 'put ''ZmVbMTkzNzY4XT0wLEE9bSs4fDAsISgwfGFbMjgrKDB8YVsoZj1sKzEyfDApPj4yXSk+PjJdKSl7YVt3Pj4yXT0wfHRpKDB8YVtBPj4yXSksT3IobCw2OTU5Nyx3KSxFbihsLDI9PSgwfGFbKGM9bCs2NHwwKT4+Ml0pPzY5NjMwOjY5NjEyKTtkb3tpZighKDB8YVsyMCsoMHxhW2Y+PjJdKT4+''@;'; + put 'put ''Ml0pKXtpZigyPT0oMHxhW2M+PjJdKSl7RD0wfGFbbCs0NjA+PjJdLE09MHxhW2wrNDY0Pj4yXSxjPTB8YVtsKzQ2OD4+Ml0sYVtwPj4yXT1hW2wrNDU2Pj4yXSxhW3ArND4+Ml09RCxhW3ArOD4+Ml09TSxhW3ArMTI+PjJdPWMsT3IobCw2OTY2NixwKTticmVha31FbihsLDY5NjQyKTticmVh''@;'; + put 'put ''a319d2hpbGUoMCk7RW4obCw2OTY5NiksWUgobCwwfGFbMjQrKDB8YVtmPj4yXSk+PjJdLDEzZTMpLGZ1bmN0aW9uIE1hZShsKXtsfD0wO3ZhciBmLHAsYz0wLG09MDtwPWFlLGFlPWFlKzE2fDAsZj1wLGM9MHxhWzQ3MjY2XTtlOmRve2lmKDB8Yylmb3IoYz0wfG1pWzYzJmFbYz4+Ml1dKGMs''@;'; + put 'put ''MCwxMjgpOzspe2lmKCFjKWJyZWFrIGU7MHxmZVtjKzE2Pj4wXXx8KGFbZj4+Ml09YVtjKzEyPj4yXSxPcihsLDEwNDQ2MixmKSxFbihsLDEwNDQ4MCksRlEobCxjKSxFbihsLDEwNDQ5OCksRW4obCwxMDQ1MTMpKSxjPTB8bWlbNjMmYVsobT0wfGFbNDcyNjZdKT4+Ml1dKG0sYyw4KX19d2hp''@;'; + put 'put ''bGUoMCk7YWU9cH0obCksMHwoYz0wfGFbMjArKDB8YVtmPj4yXSk+PjJdKSYmKGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09MCxZSChsLDAsdykpfWFbNDY3MjBdPTE9PSgwfGZlWzExNSsoMHxhWzE2KygwfGFbQT4+Ml0pPj4yXSk+PjBdKT8xOi0xLDB8ZmVbMTkzNzY4XXx8KEVuKGwsNjk3''@;'; + put 'put ''MTYpLGZlWzE5Mzc2OF09MSksMHwoYz0wfGFbbSsyMDg+PjJdKSYmKGFbYj4+Ml09MHxVSChjLDB8YVs0NjcyMF0pLE9yKGwsNjk3MjksYikpLGFlPWt9LGZ1bmN0aW9uIHhpZShsKXt2YXIgcCxtLEEsdyxiLGssRCxSLEcsSyxwZSxnZSxPZSxMZSxSZSxjPTAsZj0wLE09MCxiZT0wO2dlPWFl''@;'; + put 'put ''LGFlPWFlKzE0NHwwLHBlPWdlKzEyOHwwLEs9Z2UrMTEyfDAsRz1nZSs3MnwwLFI9Z2UrNTZ8MCxEPWdlKzQwfDAsTT1nZSszMnwwLHA9Z2UrMjR8MCxjPWdlKzh8MCxtPTB8YVs0NTYrKGx8PTApPj4yXSxiPTB8YVtsKzQ2MD4+Ml0sQT0wfGFbbCs0NjQ+PjJdLHc9MHxhW2wrNDY4Pj4yXSxh''@;'; + put 'put ''WyhmPWdlKT4+Ml09YmU9MSsoMHxhWzI4KygwfGFbKGs9bCsxMnwwKT4+Ml0pPj4yXSl8MCxhW2YrND4+Ml09YmUsT3IobCw2OTIwOCxmKSwwfGFbMjArKDB8YVtrPj4yXSk+PjJdfHwoYVtjPj4yXT1tLGFbYys0Pj4yXT1iLGFbYys4Pj4yXT1BLGFbYysxMj4+Ml09dyxPcihsLDY5MjI1LGMp''@;'; + put 'put ''KSxhW3A+PjJdPTB8YVsoZj1sKzM2MHwwKT4+Ml0/NjkyNTk6NjkyNjksT3IobCw2OTI3OCxwKSwxPT0oMHxhWyhjPWwrNjR8MCk+PjJdKSYmKGFbTT4+Ml09QSxhW00rND4+Ml09dyxPcihsLDY5MzAzLE0pKSxNPTB8YVtsKzIwMD4+Ml0sYmU9MHxhW2wrMjA0Pj4yXSxhW0Q+PjJdPWFbbCsx''@;'; + put 'put ''OTY+PjJdLGFbRCs0Pj4yXT1NLGFbRCs4Pj4yXT1iZSxPcihsLDY5MzQyLEQpLDB8YVsyMCsoMHxhW2s+PjJdKT4+Ml18fChhW1I+PjJdPW0sYVtSKzQ+PjJdPWIsYVtSKzg+PjJdPUEtbSxhW1IrMTI+PjJdPXctYixPcihsLDY5MzYyLFIpKSxSZT0rX1tsKzQ5Nj4+M10sYmU9MHxhW2Y+PjJd''@;'; + put 'put ''LExlPStfW2wrNTA0Pj4zXSxPZT0rX1tsKzUxMj4+M10sX1tHPj4zXT0rX1tsKzQ4OD4+M10sX1tHKzg+PjNdPVJlLGFbRysxNj4+Ml09YmUsX1tHKzI0Pj4zXT1MZSxfW0crMzI+PjNdPU9lLE9yKGwsNjk0MDIsRyksMT09KDB8YVtjPj4yXSkmJigoMHxBKT4xNDM5OXwoMHx3KT4xNDM5OSYm''@;'; + put 'put ''KGJlPTB8YVsxNisoMHxhW2s+PjJdKT4+Ml0sYVtLPj4yXT1BLGFbSys0Pj4yXT13LGFbSys4Pj4yXT0xNDQwMCxHc1s2MyZiZV0oNjk0NDUsSykpLGFbcGU+PjJdPW0sYVtwZSs0Pj4yXT1iLGFbcGUrOD4+Ml09QSxhW3BlKzEyPj4yXT13LE9yKGwsNjk1NDAscGUpKSxhZT1nZX0sZnVuY3Rp''@;'; + put 'put ''b24geEYobCl7dmFyIGMsZixwO3A9YWUsYWU9YWUrMTZ8MCxmPXAsMHxhWzIwKygwfGFbKGM9MTIrKGx8PTApfDApPj4yXSk+PjJdJiYoRW4obCw2OTEzMiksWUgobCwwLDQrKDB8YVsyMCsoMHxhW2M+PjJdKT4+Ml0pfDApKSxFbihsLDY5MTQ5KSxFbihsLDY5MTc2KSxhW2Y+PjJdPWFbMjgr''@;'; + put 'put ''KDB8YVtjPj4yXSk+PjJdLE9yKGwsNjkxOTEsZiksYWU9cH0sZnVuY3Rpb24gbDdlKGwpe3ZhciBjLGY7Yz1hZSxhZT1hZSsxNnwwLGFbKGY9Yyk+PjJdPTB8dGkoMHxhWzgrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pLE9yKGwsNjkxMjUsZiksRW4obCw2OTExOCksYWU9Y30sZnVuY3Rpb24g''@;'; + put 'put ''czdlKGwpe0VuKGx8PTAsODQ1NTIpfSxmdW5jdGlvbiBUaWUobCl7RW4obHw9MCw2OTExOCl9LGZ1bmN0aW9uIElpZShsKXtFbihsfD0wLDg0NTUyKX0sZnVuY3Rpb24gRGllKGwpe0VuKGx8PTAsNjkxMTgpfSxmdW5jdGlvbiBZVyhsKXtFbihsfD0wLDg0NTUyKX0sZnVuY3Rpb24gUmllKGwp''@;'; + put 'put ''e3ZhciBjPTA7RW4obHw9MCw3NDgzOCksMHwoYz0wfExpKDB8YVsxNjgrKDB8YVtsPj4yXSk+PjJdLDc0ODk0KSkmJjB8ZmVbYz4+MF0mJihFbihsLDc0OTA1KSxFbihsLGMpLEVuKGwsNzQ5MjkpKSxFbihsLDc0OTUwKSxFbihsLDc0OTk4KSxFbihsLDc1MDUyKSxFbihsLDB8TTEoMHxhW2Fb''@;'; + put 'put ''YVsoYz1sKzEyfDApPj4yXT4+Ml0+PjJdKSksRW4obCw3ODE4MSksRW4obCwwfE0xKDB8YVs0KygwfGFbYVtjPj4yXT4+Ml0pPj4yXSkpLEVuKGwsNzgxOTEpLEVuKGwsMHxNMSgwfGFbOCsoMHxhW2FbYz4+Ml0+PjJdKT4+Ml0pKSxFbihsLDc1NDM0KSxFbihsLDc1NDU4KX0sZnVuY3Rpb24g''@;'; + put 'put ''QmllKGwpe3ZhciBwLG0sQSx3LGIsayxjPTAsZj0wO0E9YWUsYWU9YWUrNDh8MCxtPUErMTZ8MCxwPUErOHwwLGY9QSxjPTB8YVsxNisobHw9MCk+PjJdLEVuKGwsNzQ2NzMpLDB8ZmVbKDB8dGkoMHxhWyhjPWMrOHwwKT4+Ml0pKT4+MF0mJihFbihsLDc1Mzk3KSxFbihsLDB8TTEoMHx0aSgw''@;'; + put 'put ''fGFbYz4+Ml0pKSkpLGFbZj4+Ml09MHxBcigwfGFbbCsxNjg+PjJdLDB8YVtsKzE2ND4+Ml0pLE9yKGwsNzQ2NzgsZiksZj0wfGFbbCs0NTI+PjJdLGFbcD4+Ml09YVtsKzQ0OD4+Ml0sYVtwKzQ+PjJdPWYsT3IobCw3NDY5NCxwKSxrPStfW2wrMzkyPj4zXSxiPStfW2wrNDAwPj4zXSx3PStf''@;'; + put 'put ''W2wrNDA4Pj4zXSxfW20+PjNdPStfW2wrMzg0Pj4zXSxfW20rOD4+M109ayxfW20rMTY+PjNdPWIsX1ttKzI0Pj4zXT13LE9yKGwsNzQ3MjcsbSksRW4obCw3NDc1OCksRW4obCw3NDc5NCksRW4obCw3NjM4OCksYWU9QX0sZnVuY3Rpb24gZjdlKGwpe0VuKGx8PTAsNzQ2NjUpfSxmdW5jdGlv''@;'; + put 'put ''biBLVyhsKXtFbihsfD0wLDc0NTEzKX0sZnVuY3Rpb24gRjUobCl7dmFyIGMsZixwLG07Zj1hZSxhZT1hZSsxNnwwLHA9ZixjNyhsfD0wLDB8YVsyMTIrKG09MHxhW2wrMTY+PjJdKT4+Ml0sMCwxMTE0OTQsMHxhWyhjPW0rOHwwKT4+Ml0pLEVuKGwsNzQ2MTcpLGpzKGwsK19bbCs0ODg+PjNd''@;'; + put 'put ''KSxFbihsLDEwMjYwNCksanMobCwrX1tsKzQ5Nj4+M10pLGFbcD4+Ml09MC0oMHxhW2wrMzYwPj4yXSksT3IobCw3NDYzNixwKSxqcyhsLCtfW2wrNTA0Pj4zXSksRW4obCwxMDI2MDQpLGpzKGwsLStfW2wrNTEyPj4zXSksRW4obCw3NDY2MCksMHxmZVsoMHx0aSgwfGFbYz4+Ml0pKT4+MF0m''@;'; + put 'put ''JihFbihsLDc0NTY5KSxFbihsLDB8TTEoMHx0aSgwfGFbYz4+Ml0pKSksRW4obCw3NDU3NykpLGFlPWZ9LGZ1bmN0aW9uIFBpZShsKXtFbihsfD0wLDc0NTEzKX0sZnVuY3Rpb24gRmllKGwpe3ZhciBjLGY7YzcobHw9MCwwfGFbMjEyKyhmPTB8YVtsKzE2Pj4yXSk+PjJdLDAsMTA4MDA2LDB8''@;'; + put 'put ''YVsoYz1mKzh8MCk+PjJdKSxFbihsLDc2Mzg4KSxFbihsLDc0NTY5KSxFbihsLDB8TTEoMHx0aSgwfGFbYz4+Ml0pKSksRW4obCw3NDU3Nyl9LGZ1bmN0aW9uIFRGKGwpe0VuKGx8PTAsNzQ1MTMpfSxmdW5jdGlvbiAkVyhsKXt2YXIgZixwLGM9MDtjNyhsfD0wLDB8YVsyMTIrKGY9MHxhW2wr''@;'; + put 'put ''MTY+PjJdKT4+Ml0sYz0oMHwoYz0wfGFbbCsxNjA+PjJdKSk+MT8wfGFbKDB8YVszMDgrKDB8YVtsPj4yXSk+PjJdKSsoYzw8Mik+PjJdOjAsMTExNDgxLDB8YVsocD1mKzh8MCk+PjJdKSxFbihsLDc2Mzg4KSxFbihsLDc0NTY5KSxFbihsLDB8TTEoMHx0aSgwfGFbcD4+Ml0pKSksRW4obCw3''@;'; + put 'put ''NDU3Nyl9LGZ1bmN0aW9uIGQ3ZShsKXtFbihsfD0wLDc0NTEzKX0sZnVuY3Rpb24gcDdlKGwpe3ZhciBmLGM9MDtjNyhsfD0wLDB8YVsyMTIrKGY9MHxhW2wrMTY+PjJdKT4+Ml0sMCwxMTE0NTAsMHxhWyhjPWYrOHwwKT4+Ml0pLEVuKGwsNzYzODgpLEVuKGwsNzQ1NjkpLEVuKGwsMHxNMShj''@;'; + put 'put ''PTB8bTIoMTAyMDk1LDB8YVtjPj4yXSkpKSxGdChjKSxFbihsLDc0NTc3KX0sZnVuY3Rpb24gZzdlKGwpe0VuKGx8PTAsNzQ1MTMpfSxmdW5jdGlvbiBtN2UobCl7RW4obHw9MCw3NjM0MyksRW4obCw3NDUxMyl9LGZ1bmN0aW9uIFZpZShsKXt2YXIgYztFbihsfD0wLDc1NDE4KSxFbihsLDB8''@;'; + put 'put ''WVQoMHxhW2FbYVsoYz1sKzEyfDApPj4yXT4+Ml0+PjJdKSksRW4obCw3ODE4MSksRW4obCwwfFlUKDB8YVs0KygwfGFbYVtjPj4yXT4+Ml0pPj4yXSkpLEVuKGwsNzgxOTEpLEVuKGwsMHxZVCgwfGFbOCsoMHxhW2FbYz4+Ml0+PjJdKT4+Ml0pKSxFbihsLDc1NDM0KX0sZnVuY3Rpb24gdFko''@;'; + put 'put ''bCl7dmFyIGYscCxjPTA7cD1hZSxhZT1hZSsxNnwwLGY9cCxjPTB8YVsxNisobHw9MCk+PjJdLEVuKGwsNzUzOTUpLDB8ZmVbKDB8dGkoMHxhWyhjPWMrOHwwKT4+Ml0pKT4+MF0mJihFbihsLDc1Mzk3KSxFbihsLDB8WVQoMHx0aSgwfGFbYz4+Ml0pKSkpLGFbZj4+Ml09MHxBcigwfGFbbCsx''@;'; + put 'put ''Njg+PjJdLDB8YVtsKzE2ND4+Ml0pLE9yKGwsNzU0MDYsZiksYVs0NjcyM109MCxhZT1wfSxmdW5jdGlvbiBDN2UobCl7YVs0NjcyM109MX0sZnVuY3Rpb24gazdlKGwpe2FbNDY3MjNdPS0xfSxmdW5jdGlvbiBEN2UobCl7dmFyIGM7RW4obHw9MCw3ODE1MyksRW4obCw3ODE2MSksRW4obCww''@;'; + put 'put ''fG5pKDB8YVthW2FbKGM9bCsxMnwwKT4+Ml0+PjJdPj4yXSkpLEVuKGwsNzgxODEpLEVuKGwsMHxuaSgwfGFbNCsoMHxhW2FbYz4+Ml0+PjJdKT4+Ml0pKSxFbihsLDc4MTkxKSxFbihsLDB8bmkoMHxhWzgrKDB8YVthW2M+PjJdPj4yXSk+PjJdKSksRW4obCw3ODE5NCl9LGZ1bmN0aW9uIEw3''@;'; + put 'put ''ZShsKXt2YXIgQSx3LGM9MCxmPTAscD0wLG09MDt3PWFlLGFlPWFlKzMyfDAsQT13KzI0fDAsbT13KzE2fDAscD13Kzh8MCxmPXcsYz0wfGFbMTYrKGx8PTApPj4yXSxhWzQ2NzI3XT1+figrX1tsKzIzMj4+M10tK19bbCsyMTY+PjNdKSxhWzQ2NzI2XT1+figrX1tsKzIyND4+M10tK19bbCsy''@;'; + put 'put ''MDg+PjNdKSxFbihsLDc2ODQwKSxFbihsLDc2ODQ3KSxjPTB8dGkoMHxhW2MrOD4+Ml0pLDB8ZmVbYz4+MF0mJihFbihsLDc2OTE2KSxFbihsLDB8bmkoYykpLEVuKGwsNzY5MjQpKSxhW2Y+PjJdPTB8QXIoMHxhW2wrMTY4Pj4yXSwwfGFbbCsxNjQ+PjJdKSxPcihsLDc2OTMzLGYpLEVuKGws''@;'; + put 'put ''NzY5NTMpLEVuKGwsNzY5ODgpLEVuKGwsNzcwMTYpLEVuKGwsNzcwMjIpLEVuKGwsNzcwNjUpLEVuKGwsNzcxMDYpLEVuKGwsNzcxMjUpLEVuKGwsNzcxNDIpLEVuKGwsNzcxOTApLEVuKGwsNzcyNDMpLEVuKGwsNzczMTkpLEVuKGwsNzczOTUpLEVuKGwsNzc0MDQpLEVuKGwsNzc0MjcpLEVu''@;'; + put 'put ''KGwsNzc0NTQpLEVuKGwsNzc1MDcpLEVuKGwsNzc1MjkpLEVuKGwsNzc1NzQpLEVuKGwsNzc1ODYpLEVuKGwsNzc1OTYpLEVuKGwsNzc2MjIpLEVuKGwsNzc1MDcpLEVuKGwsNzc2NzQpLEVuKGwsNzc1NzQpLEVuKGwsNzc1ODYpLEVuKGwsNzc3MTgpLEVuKGwsNzc0MjcpLEVuKGwsNzc0NTQp''@;'; + put 'put ''LEVuKGwsNzc1MDcpLEVuKGwsNzc2NzQpLEVuKGwsNzc1NzQpLEVuKGwsNzc1ODYpLEVuKGwsNzc1OTYpLEVuKGwsNzc2MjIpLEVuKGwsNzc1MDcpLEVuKGwsNzc1MjkpLEVuKGwsNzc1NzQpLEVuKGwsNzc1ODYpLEVuKGwsNzc3MzEpLEVuKGwsNzc3MzkpLEVuKGwsNzc3NDUpLEVuKGwsNzc3''@;'; + put 'put ''NTkpLEVuKGwsNzc3NjcpLEVuKGwsNzc4MDApLGY9MTArKDB8YVs0NjcyN10pfDAsYVtwPj4yXT1hWzQ2NzI2XSxhW3ArND4+Ml09ZixPcihsLDc3ODc3LHApLEVuKGwsNzc5MDcpLEVuKGwsNzc5MTYpLEVuKGwsNzc5NzQpLEVuKGwsNzc5ODQpLEVuKGwsNzgwNDkpLHA9MHxhWzQ2NzI3XSxh''@;'; + put 'put ''W20+PjJdPWFbNDY3MjZdLGFbbSs0Pj4yXT1wLE9yKGwsNzgwODYsbSksbT0wfGFbNDY3MjddLGFbQT4+Ml09YVs0NjcyNl0sYVtBKzQ+PjJdPW0sT3IobCw3ODExNCxBKSxhZT13fSxmdW5jdGlvbiBPN2UobCl7RW4obHw9MCw3NjM5MSksRW4obCw3NjQwMyksRW4obCw3NjQxMSksRW4obCw3''@;'; + put 'put ''NjQ3NCksRW4obCw3NjQwMyksRW4obCw3NjUxOSksRW4obCw3NjU2OCksRW4obCw3NjYyMiksRW4obCw3NjQwMyksRW4obCw3NjcyMiksRW4obCw3Njc3MSksRW4obCw3NjQwMyksRW4obCw3NjgyMyl9LGZ1bmN0aW9uIEI3ZShsKXtFbihsfD0wLDc2MzQzKX0sZnVuY3Rpb24gTjdlKGwpe3Zh''@;'; + put 'put ''ciBjLGYscDtjPWFlLGFlPWFlKzE2fDAsZj1jKzh8MCxwPWMsRW4obHw9MCw4MDQ1MSksRW4obCw4MDQ2NiksRW4obCw4MDUwNSksRW4obCw4MDU1NCksYVtwPj4yXT0xMzczMTQsYVtwKzQ+PjJdPTgwNjQyLE9yKGwsODA2MjMscCksYVtmPj4yXT0xMzcxOTgsYVtmKzQ+PjJdPTgwNjQ4LE9y''@;'; + put 'put ''KGwsODA2MjMsZiksYWU9Y30sZnVuY3Rpb24gVjIobCl7dmFyIGMsZixwLG0sQSx3LGI7Yz1hZSxhZT1hZSs2NHwwLGY9Yys4fDAsYVsoYj1jKT4+Ml09MHx0aSgwfGFbOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSksT3IobCw3OTQwNCxiKSxBPS41KitfW2wrMzc2Pj4zXSorX1tsKzQ5Nj4+''@;'; + put 'put ''M10sbT0xODAqK1pmKC4wMDIwMDAwMDAwOTQ5OTQ5MDI2Kih3PS41KitfW2wrMzY4Pj4zXSorX1tsKzQ4OD4+M10pKSouNjM2NjE5NzcyMzY3NTgxNCxwPTE4MCorWmYoLjAwMjAwMDAwMDA5NDk5NDkwMjYqQSkqLjYzNjYxOTc3MjM2NzU4MTQsX1tmPj4zXT13LF9bZis4Pj4zXT1BLF9bZisx''@;'; + put 'put ''Nj4+M109LTUwMCxfW2YrMjQ+PjNdPXcsX1tmKzMyPj4zXT1BLF9bZis0MD4+M109MCxfW2YrNDg+PjNdPTEuMioobT5wP206cCksT3IobCw3OTQyNixmKSxFbihsLDc5NTczKSxFbihsLDgwNDAzKSxhZT1jfSxmdW5jdGlvbiBWN2UobCl7RW4obHw9MCw3OTM4Nyl9LGZ1bmN0aW9uIG5vKGwp''@;'; + put 'put ''e0VuKGx8PTAsNzkzNDApfSxmdW5jdGlvbiBaN2UobCl7RW4obHw9MCw3OTMyMil9LGZ1bmN0aW9uIGlZKGwpe0VuKGx8PTAsNzkzMDYpfSxmdW5jdGlvbiB6N2UobCl7RW4obHw9MCw3OTI4NSksam5bNDY3MjhdPStqbls0NjcyOF0tMn0sZnVuY3Rpb24gb1kobCl7RW4obHw9MCw3OTI2Nil9''@;'; + put 'put ''LGZ1bmN0aW9uIHppZShsKXt2YXIgYyxmO2M9YWUsYWU9YWUrMTZ8MCxhWyhmPWMpPj4yXT0wfHRpKDB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSxPcihsLDc5MjQ0LGYpLGFlPWN9LGZ1bmN0aW9uIEc3ZShsKXtFbihsfD0wLDc5MjI4KX0sZnVuY3Rpb24gVzdlKGwpe0VuKGx8PTAs''@;'; + put 'put ''NzkyMTApLGpuWzQ2NzI4XT0ram5bNDY3MjhdLTV9LGZ1bmN0aW9uIFk3ZShsKXtFbihsfD0wLDc5MTk0KSxqbls0NjcyOF09K2puWzQ2NzI4XSs1fSxmdW5jdGlvbiBLN2UobCl7dmFyIGMsZixwLEEsYixrLG09MCx3PTA7Yz1hZSxhZT1hZSszMnwwLGY9YysyNHwwLHA9YysxNnwwLG09MHxh''@;'; + put 'put ''WzE2KyhsfD0wKT4+Ml0saz0wfGFbKHc9MHxhW2FbbCsxMj4+Ml0+PjJdKT4+Ml0sYj0wfGFbdys0Pj4yXSx3PTB8YVt3Kzg+PjJdLGFbKEE9Yyk+PjJdPTgxMDk0LGFbQSs0Pj4yXT1rLGFbQSs4Pj4yXT1iLGFbQSsxMj4+Ml09dyxPcihsLDgzNzA0LEEpLG09MHx0aSgwfGFbbSs4Pj4yXSks''@;'; + put 'put ''YVtwPj4yXT04MTA5NCxhW3ArND4+Ml09bSxPcihsLDgzNzM2LHApLGFbZj4+Ml09ODEwOTQsT3IobCw4Mzc1MCxmKSxhZT1jfSxmdW5jdGlvbiAkN2UobCl7dmFyIGMsZjtsfD0wLGM9YWUsYWU9YWUrMTZ8MCxhWyhmPWMpPj4yXT04MTA5NCxPcihsLDgzNjUyLGYpLGFlPWN9LGZ1bmN0aW9u''@;'; + put 'put ''IHE3ZShsKXt2YXIgZixtLEEsdyxiLE0sRCxSLEcsSyxwZSxnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxudCxXZSxvdCxTdCxrdCxsdCxFdCxadCxjdCxidCxhbixTbixIbix1cixIcixFcixmcixEcixKcixMcixsMCxWaSxjPTAscD0wLGs9MDtWaT1hZSxhZT1hZSszMDR8MCxsMD1WaSsyOTZ8''@;'; + put 'put ''MCxMcj1WaSsyODh8MCxKcj1WaSsyNzJ8MCxmcj1WaSsyNjR8MCxFcj1WaSsyNTZ8MCxIcj1WaSsyNDh8MCx1cj1WaSsyNDB8MCxIbj1WaSsyMzJ8MCxTbj1WaSsyMjR8MCxhbj1WaSsyMTZ8MCxidD1WaSsyMDh8MCxjdD1WaSsyMDB8MCxadD1WaSsxOTJ8MCxFdD1WaSsxODR8MCxsdD1WaSsx''@;'; + put 'put ''NzZ8MCxrdD1WaSsxNjh8MCxTdD1WaSsxNjB8MCxvdD1WaSsxNTJ8MCxudD1WaSsxNDR8MCxxZT1WaSsxMzZ8MCxWZT1WaSsxMjh8MCxIZT1WaSsxMjB8MCxSZT1WaSsxMTJ8MCxMZT1WaSsxMDR8MCxPZT1WaSs5NnwwLGJlPVZpKzg4fDAsZ2U9VmkrODB8MCxwZT1WaSs3MnwwLEs9VmkrNjR8''@;'; + put 'put ''MCxHPVZpKzU2fDAsUj1WaSs0OHwwLERyPVZpKzQwfDAsV2U9VmkrMjR8MCxEPVZpKzE2fDAsTT1WaSxBPTB8YVs0NTYrKGx8PTApPj4yXSx3PTB8YVtsKzQ2MD4+Ml0sYj0wfGFbbCs0NjQ+PjJdLGs9MHxhW2wrNDY4Pj4yXSxtPWwrMzYwfDA7ZTpkb3tpZigwfGFbNDAyNV0pe3N3aXRjaCgw''@;'; + put 'put ''fGFbbT4+Ml0pe2Nhc2UgOTA6Y2FzZSAwOmJyZWFrIGV9WUEoKSxhWzQwMjVdPTB9fXdoaWxlKDApO3A9LjAxMzg4ODg4ODg4ODg4ODg4OCooKygwfGspLSsoMHx3KSksYz0uMDEzODg4ODg4ODg4ODg4ODg4KigrKDB8YiktKygwfEEpKSxmPShrPTkwPT0oMHxhW20+PjJdKSk/cDpjLHA9az9j''@;'; + put 'put ''OnAsX1tNPj4zXT1mLF9bTSs4Pj4zXT1wLE9yKGwsODEyODEsTSksYVtEPj4yXT04MTA5NCxPcihsLDgxMjk2LEQpLGY+MD8oYz0rZnVuY3Rpb24gVnVlKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtfW1NpPj4zXT1sPStsLGM9MHxhW1NpPj4yXSxwPSgwfChm''@;'; + put 'put ''PTB8YVtTaSs0Pj4yXSkpPDA7ZG97aWYocHxmPj4+MDwxMDQ4NTc2KXtpZigwPT0oMHxjKSYwPT0oMjE0NzQ4MzY0NyZmfDApKXtsPS0xLyhsKmwpO2JyZWFrfWlmKHApe2w9KGwtbCkvMDticmVha31fW1NpPj4zXT0weDQwMDAwMDAwMDAwMDAwKmwsZj0wfGFbU2krND4+Ml0scD0tMTA3Nyxj''@;'; + put 'put ''PTB8YVtTaT4+Ml0sbT05O2JyZWFrfWY+Pj4wPD0yMTQ2NDM1MDcxJiYoMD09KDB8YykmITAmMTA3MjY5MzI0OD09KDB8Zik/bD0wOihwPS0xMDIzLG09OSkpfXdoaWxlKDApO3JldHVybiA5PT0oMHxtKSYmKG09Zis2MTQyNDJ8MCxhW1NpPj4yXT1jLGFbU2krND4+Ml09MTA3MjA3OTAwNiso''@;'; + put 'put ''MTA0ODU3NSZtKSxBPShNPShrPShiPStfW1NpPj4zXS0xKS8oYisyKSkqaykqTSxfW1NpPj4zXT1iLSh3PWIqKC41KmIpKSxmPTB8YVtTaSs0Pj4yXSxhW1NpPj4yXT0wLGFbU2krND4+Ml09ZixBPWItKGw9K19bU2k+PjNdKS13K2sqKHcrKEEqKEEqKC4xNTMxMzgzNzY5OTIwOTM3MypBKy4y''@;'; + put 'put ''MjIyMjE5ODQzMjE0OTc4NCkrLjM5OTk5OTk5OTk5NDA5NDIpK00qKEEqKEEqKC4xNDc5ODE5ODYwNTExNjU4NipBKy4xODE4MzU3MjE2MTYxODA1KSsuMjg1NzE0Mjg3NDM2NjIzOSkrLjY2NjY2NjY2NjY2NjY3MzUpKSksbD0oYj0oaz0uMzAxMDI5OTk1NjYzNjExNzcqKHc9KyhwKyhtPj4+''@;'; + put 'put ''MjApfDApKSkrKE09LjQzNDI5NDQ4MTg3ODE2ODkqbCkpKyhNKyhrLWIpKyguNDM0Mjk0NDgxODc4MTY4OSpBKygzNjk0MjM5MDc3MTU4OTMxZS0yOCp3KzI1MDgyOTQ2NzExNjQ1Mjc1ZS0yNyooQStsKSkpKSksK2x9KGYpLF9bMTkyMTRdPWMsYz1jKzMtKygwfH5+YykpOmM9MyxjPStxbCgx''@;'; + put 'put ''MCwrYyksX1sxOTIxNF09YyxfW1dlPj4zXT1jLF9bV2UrOD4+M109YyxPcihsLDgxNDY1LFdlKSxhW0RyPj4yXT04MTA5NCxPcihsLDgxNTAwLERyKSxhW1I+PjJdPTgxMDk0LE9yKGwsODE1NTgsUiksYVtHPj4yXT04MTA5NCxPcihsLDgxNjE4LEcpLGFbSz4+Ml09ODEwOTQsT3IobCw4MTY2''@;'; + put 'put ''NyxLKSxhW3BlPj4yXT04MTA5NCxPcihsLDgxNzA2LHBlKSxhW2dlPj4yXT04MTA5NCxPcihsLDgxNzU3LGdlKSxhW2JlPj4yXT04MTA5NCxPcihsLDgxODE5LGJlKSxhW09lPj4yXT04MTA5NCxPcihsLDgxOTI5LE9lKSxhW0xlPj4yXT04MTA5NCxPcihsLDgyMDIwLExlKSxhW1JlPj4yXT04''@;'; + put 'put ''MTA5NCxPcihsLDgyMDc0LFJlKSxhW0hlPj4yXT04MTA5NCxPcihsLDgyMTQzLEhlKSxPcihsLDgyMTc5LFZlKSxhW3FlPj4yXT04MTA5NCxPcihsLDgyMzA0LHFlKSxhW250Pj4yXT04MTA5NCxPcihsLDgyMzMzLG50KSxPcihsLDgyMzczLG90KSxhW1N0Pj4yXT04MTA5NCxPcihsLDgyNDY2''@;'; + put 'put ''LFN0KSxhW2t0Pj4yXT04MTA5NCxPcihsLDgyNTI1LGt0KSxhW2x0Pj4yXT04MTA5NCxPcihsLDgyNjA2LGx0KSxPcihsLDgyNjc2LEV0KSxhW1p0Pj4yXT04MTA5NCxPcihsLDgyNzY1LFp0KSxhW2N0Pj4yXT04MTA5NCxPcihsLDgyODcwLGN0KSxhW2J0Pj4yXT04MTA5NCxPcihsLDgyOTQ2''@;'; + put 'put ''LGJ0KSxhW2FuPj4yXT04MTA5NCxPcihsLDgyOTg1LGFuKSxhW1NuPj4yXT04MTA5NCxPcihsLDgzMDg0LFNuKSxhW0huPj4yXT04MTA5NCxPcihsLDgzMTMwLEhuKSxPcihsLDgzMjE5LHVyKSxhW0hyPj4yXT04MTA5NCxPcihsLDgzMjYwLEhyKSxhW0VyPj4yXT04MTA5NCxPcihsLDgzMzQz''@;'; + put 'put ''LEVyKSxhW2ZyPj4yXT04MTA5NCxPcihsLDgzNDQ0LGZyKSxfW0pyPj4zXT1wLF9bSnIrOD4+M109ZixPcihsLDgzNTA4LEpyKSxPcihsLDgzNTM2LExyKSxPcihsLDgzNTQ0LGwwKSxhZT1WaX0sZnVuY3Rpb24gYWEobCl7dmFyIGM7Yz1hZSxhZT1hZSsxNnwwLE9yKGx8PTAsODEyNzQsYyks''@;'; + put 'put ''YWU9Y30sZnVuY3Rpb24gcWllKGwpezB8R28obHw9MCkmJmZ1bmN0aW9uIGUwZShsKXt2YXIgQSx3LGM9MCxmPTAscD0wLG09MDtpZih3PWFlLGFlPWFlKzQ4fDAsQT13KzMyfDAsbT13LGM9MHx4YyhsfD0wLC0xLDgpLGY9MHxTMShsLDAsbSksYTcobCwyLDgsbSksKHA9KDB8Yyk8MCkmKGY9''@;'; + put 'put ''MD09KDB8ZikpKWg3KGwpO2Vsc2V7Zj9hW20rMTY+PjJdPTM6Yz1wPzg6YyxhW20rOD4+Ml09YyxhW20rMjA+PjJdPTAscD0wfFptZShsLEEsMCksYz0wfGFbQT4+Ml07ZG97aWYoMT09KDB8YykpaDcobCksYz0wO2Vsc2V7aWYoMHxhWzg0KygwfGFbOCsoMHxhW2wrMTY+PjJdKT4+Ml0pPj4y''@;'; + put 'put ''XSl7aDcobCksYz0wO2JyZWFrfWZvcihhW20rMTI+PjJdPTEsZj0wOyEoKDB8Zik+PSgwfGMpKTspdDBlKGM9MHxhW3ArKGY8PDIpPj4yXSxsKSxoNyhjKSxmPWYrMXwwLGM9MHxhW0E+PjJdO24wZShsKSxFQygwfGFbQT4+Ml0scCxsLG0pLGhZKGwpLHIwZSgwfGFbQT4+Ml0scCxsKSxjPTB9''@;'; + put 'put ''fXdoaWxlKDApO2Zvcig7ISgoMHxjKT49KDB8YVtBPj4yXSkpOylGdCgwfGFbOCsoMHxhWzE2KygwfGFbKG09cCsoYzw8Mil8MCk+PjJdKT4+Ml0pPj4yXSksTjUoMHxhW20+PjJdKSxvaShsLDB8YVttPj4yXSksYz1jKzF8MDtGdChwKX1hZT13fShsKSxxZChsKX0sSDUsQTIsZnVuY3Rpb24g''@;'; + put 'put ''emxlKGwpe3ZhciBjPTAsZj0wO2ZvcihmPTB8RHQobHw9MCk7Zjspe2ZvcihjPTB8dzAobCxmKTtjOylhZyhjKSxjPTB8UzAobCxjKTtvZyhmKSxmPTB8enQobCxmKX0hZnVuY3Rpb24gR2xlKGwpe2x8PTAsMCE9KDB8YVs0NzEzNF0pfCgwfGFbNDY3OTVdKTwwJiZXTihsKSwoMHxkaShsKSkh''@;'; + put 'put ''PSgwfGwpJiZsMihsLDAsMTM3NDgzKX0obCl9LGZ1bmN0aW9uIENrKGwpe2x8PTA7dmFyIHAsbSxjPTAsZj0wLEE9MCx3PTAsYj0wO2Zvcih3PTQsQT0wfEIwKDQwKSxhW0E+PjJdPTAsbT0rX1syMzI5M10sTW49MCxwPStDaCgxLDB8bCksYz1NbixNbj0wLDAhPSgwfGMpJjAhPSgwfHhuKT8o''@;'; + put 'put ''KGY9MHxnaSgwfGFbYz4+Ml0sMHxBLDB8dykpfHx6ZSgwfGMsMHx4biksRG49eG4pOmY9LTEsMSE9KDB8Zik/KF9bMjMyOTNdPXAsTW49MCxzcygxMDIsMHxsKSxjPU1uLE1uPTAsMCE9KDB8YykmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtjPj4yXSwwfEEsMHx3KSl8fHplKDB8YywwfHhuKSxE''@;'; + put 'put ''bj14bik6Zj0tMSwxIT0oMHxmKT8oQT0wfFBmKDE4NzIxMiwxLDB8QSwwfHcpLHc9RG4sZj1Nbj0wLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygoYz0wfGdpKDB8YVtmPj4yXSwwfEEsMHx3KSl8fHplKDB8ZiwwfHhuKSxEbj14bik6Yz0tMSxjPTEhPSgwfGMpPzA6RG4pOmM9RG4pOmM9RG47''@;'; + put 'put ''ISgwfGMpOylpZihNbj0wLHNzKDEwMywwfGwpLGM9TW4sTW49MCwwIT0oMHxjKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW2M+PjJdLDB8QSwwfHcpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDEhPSgwfGYpKWlmKE1uPTAsYTAoMjIsMHxsKSxjPU1uLE1uPTAsMCE9KDB8YykmMCE9KDB8''@;'; + put 'put ''eG4pPygoZj0wfGdpKDB8YVtjPj4yXSwwfEEsMHx3KSl8fHplKDB8YywwfHhuKSxEbj14bik6Zj0tMSwxIT0oMHxmKSlpZigxNCZydFsxMzYrKDB8YVtsKzE2Pj4yXSk+PjFdJiYoTW49MCxzcygxMDQsMHxsKSxjPU1uLE1uPTAsMCE9KDB8YykmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtjPj4y''@;'; + put 'put ''XSwwfEEsMHx3KSl8fHplKDB8YywwfHhuKSxEbj14bik6Zj0tMSwxPT0oMHxmKSkpYz1EbjtlbHNle2lmKE1uPTAsWjEoMjIsMHxsLDApLGM9TW4sTW49MCwwIT0oMHxjKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW2M+PjJdLDB8QSwwfHcpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDEh''@;'; + put 'put ''PSgwfGYpKXtiPTEyO2JyZWFrfWM9RG59ZWxzZSBjPURuO2Vsc2UgYz1EbjsxMj09KDB8YikmJihfWzIzMjkzXT1tKSxGdCgwfEEpfSxmdW5jdGlvbiBNc2UobCl7dmFyIGM9MCxmPTA7Zm9yKGY9MHxEdChsfD0wKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KWFnKGMpLGM9MHxTMChsLGMpO29n''@;'; + put 'put ''KGYpLGY9MHx6dChsLGYpfSFmdW5jdGlvbiBFc2UobCl7YVgobHw9MCksRnQoMHxhWzE1MisoMHxhWyhsPWwrMTZ8MCk+PjJdKT4+Ml0pLEZ0KDB8YVsxNDArKDB8YVtsPj4yXSk+PjJdKX0obCl9LGZ1bmN0aW9uIG1YKGwpe3ZhciBiLGssTSxELEcsSyxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9''@;'; + put 'put ''MCxSPTA7aWYoSz1hZSxhZT1hZSsxMTJ8MCxiPUsrNDB8MCxrPUsrMTZ8MCxHPUsrMTAwfDAsTT1LLEE9Sys4OHwwLEQ9Sys1NnwwLGZ1bmN0aW9uIFdzZShsKXt2YXIgYyxmPTA7dDQobHw9MCwyKSxjPTB8ZXMobCwwfHNpKGwsMCw5MTM2OCwwKSwyLDIpLGY9NjU1MzUmKDB8ZXMobCwwfHNp''@;'; + put 'put ''KGwsMCw5MTM3NCwwKSxjLDIpKSxydFsxNzYrKDB8YVsxNisoMHxkaShsKSk+PjJdKT4+MV09ZixmPSgwfGhyWzE3NisoMHxhWzE2KygwfGRpKGwpKT4+Ml0pPj4xXSk8MTA/MHxydFsxNzYrKDB8YVsxNisoMHxkaShsKSk+PjJdKT4+MV06MTAscnRbMTc2KygwfGFbMTYrKDB8ZGkobCkpPj4y''@;'; + put 'put ''XSk+PjFdPWYsYVs0NzEzN109ZiY9NjU1MzUscnRbMTc4KygwfGFbMTYrKDB8ZGkobCkpPj4yXSk+PjFdPSgwfGMpPCgwfGYpP2M6ZixmdW5jdGlvbiBBWChsKXt2YXIgYz0wLGY9MDtmb3IoYz0wfER0KGx8PTApO2M7KUFrKGMpLGM9MHx6dChsLGMpO2ZvcihmPTB8RHQobCk7Zjspe2Zvcihj''@;'; + put 'put ''PTB8dzAobCxmKTtjOyl5WChjKSxjPTB8UzAobCxjKTtmPTB8enQobCxmKX19KGwpfShsfD0wKSxjPTEmKG09Mj09KDB8YVs0NzEzN10pKSwwfEdvKGwpKXtpZihmdW5jdGlvbiBZc2UobCxjKXtsfD0wO3ZhciBwLG0sQSxmPTA7QT1hZSxhZT1hZSsxNnwwLG09QSs4fDAsYVsoZj1BKzEyfDAp''@;'; + put 'put ''Pj4yXT1hWyhwPTEwOCsoY3w9MCl8MCk+PjJdLDIhPSgwfFROKGwsMixmKSkmJiRyKDAsOTExNjksQSksYVtwPj4yXT1hW2Y+PjJdLF9bYysyND4+M109K01sKGwsMHxzaShsLDAsOTEyMDIsMCksLTEsMCksX1tjPj4zXT0tK01sKGwsMHxzaShsLDAsOTEyMDQsMCksMS4wMDAxMjM0LDApLGFb''@;'; + put 'put ''Yys0MD4+Ml09MHxlcyhsLDB8c2kobCwwLDkxMjE5LDApLDIxNDc0ODM2NDcsMCksYVtjKzEyMD4+Ml09MHxmdW5jdGlvbiBRc2UobCxjKXtsfD0wLGN8PTA7ZG97aWYoYyl7aWYobD0wfEhvKGwsYyksKChjPTB8ZmVbbD4+MF0pLTQ4fDApPj4+MDwxMCl7bD0oMHwobD0wfHIzKGwpKSk8NT9s''@;'; + put 'put ''OjA7YnJlYWt9bD0wfGNMKGMpPzB8eTAobCw5MTMzMCk/MHx5MChsLDkxMzM5KT8wfHkwKGwsMTM1NzA5KT8wfHkwKGwsOTEzNTApPyhsPTA9PSgwfHkwKGwsOTEzNjEpKSk/NDowOjM6MDoxOjI6MH1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gMHxsfShsLDB8c2kobCwwLDkxMjI2LDApKSxh''@;'; + put 'put ''W2MrMTMyPj4yXT0wfGZ1bmN0aW9uIEpzZShsLGMpe2x8PTAsY3w9MDtkb3tpZihjKXtpZihsPTB8SG8obCxjKSwoKGM9MHxmZVtsPj4wXSktNDh8MCk+Pj4wPDEwKXtsPShsPTB8cjMobCkpPj4+MDwzP2w6MTticmVha31sPTB8Y0woYyk/MCE9KDB8eTAobCwxMzU3MDkpKSYmMCE9KDB8eTAo''@;'; + put 'put ''bCwxMzczMDgpKT8wIT0oMHx5MChsLDk5NzMwKSkmJjAhPSgwfHkwKGwsMTA3NjUyKSkmJjAhPSgwfHkwKGwsMTA3NjU3KSkmJihsPTA9PSgwfHkwKGwsOTEzMjUpKSk/MjoxOjA6MX1lbHNlIGw9MX13aGlsZSgwKTtyZXR1cm4gMHxsfShsLDB8c2kobCwwLDkxMjM2LDApKSxhW2MrMTM2Pj4y''@;'; + put 'put ''XT0wLGFbYysxMTI+PjJdPTI1NSYoMHxuZygwfExpKGwsOTEyNDUpLDApKSxhW2MrMTI4Pj4yXT0yNTUmKDB8bmcoMHxMaShsLDkxMjU0KSwxKSksX1tjKzE1Mj4+M109K01sKGwsMHxzaShsLDAsOTEyNjksMCksMCwtMTc5NzY5MzEzNDg2MjMxNTdlMjkyKSxmPTB8ZXMobCwwfHNpKGwsMCw5''@;'; + put 'put ''MTI3OCwwKSwwLDApLGFbKGw9YysxNjB8MCk+PjJdPWYsKDB8Zik+NCYmKGFbbT4+Ml09ZiwkcigwLDkxMjkxLG0pLGFbbD4+Ml09MCksYWU9QX0obCxSPTB8WHNlKCkpLHUyZShsLGssMCksbSYxOD09KDB8YVtrPj4yXSk/KGFbUisxMjQ+PjJdPWFbays4Pj4yXSxfW1IrMTQ0Pj4zXT0rX1tr''@;'; + put 'put ''KzE2Pj4zXSxXNyhBLGwpLDB8ZmVbQSs4Pj4wXT8ocD0uMDEzODg4ODg4ODg4ODg4ODg4KitqbltBKzQ+PjJdLGY9LjAxMzg4ODg4ODg4ODg4ODg4OCoram5bQT4+Ml0pOihwPS4wNTU1NTU1NTU1NTU1NTU1NSxmPS4wNTU1NTU1NTU1NTU1NTU1NSksX1tNPj4zXT1mLF9bTSs4Pj4zXT1wLGM9''@;'; + put 'put ''MCk6YVtSKzEyND4+Ml09LTEsdz0wfHRXKGwsRywwKSwxPT0oMHxhW0c+PjJdKSlhW2I+PjJdPWFbTT4+Ml0sYVtiKzQ+PjJdPWFbTSs0Pj4yXSxhW2IrOD4+Ml09YVtNKzg+PjJdLGFbYisxMj4+Ml09YVtNKzEyPj4yXSx2WChsLFIsYiksMHxjJiZ6NyhsLGspLEs2KGwpLGM9MDtlbHNle2Zv''@;'; + put 'put ''cihhNyhsLDIsOCxEKSxhW0QrMTI+PjJdPTEsQT0wPT0oMHxjKSxtPTA7ISgoMHxtKT49KDB8KGM9MHxhW0c+PjJdKSkpOylNQyhjPTB8YVt3KyhtPDwyKT4+Ml0pLGFbYj4+Ml09YVtNPj4yXSxhW2IrND4+Ml09YVtNKzQ+PjJdLGFbYis4Pj4yXT1hW00rOD4+Ml0sYVtiKzEyPj4yXT1hW00r''@;'; + put 'put ''MTI+PjJdLHZYKGMsUixiKSxBfHx6NyhjLGspLHQ0KGMsMiksSzYoYyksbT1tKzF8MDtFQyhjLHcsbCxEKSxjPTB9Zm9yKDshKCgwfGMpPj0oMHxhW0c+PjJdKSk7KW9pKGwsMHxhW3crKGM8PDIpPj4yXSksYz1jKzF8MDtGdCh3KSxvVihSKX1xZChsKSxhZT1LfSxmdW5jdGlvbiBlOChsKXt2''@;'; + put 'put ''YXIgYz0wLGY9MDtmb3IoZj0wfER0KGx8PTApO2Y7KXtmb3IoYz0wfHcwKGwsZik7YzspYWcoYyksYz0wfFMwKGwsYyk7b2coZiksZj0wfHp0KGwsZil9fSxmdW5jdGlvbiBnc2UobCl7dmFyIFIsZ2UsYmUsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLEc9MCxLPTAs''@;'; + put 'put ''cGU9MDtpZihiZT1hZSxhZT1hZSs4MHwwLGs9YmUrMzJ8MCxBPWJlKzI0fDAsbT1iZSsxNnwwLHc9YmUsZ2U9YmUrNzJ8MCxSPWJlKzQwfDAsMHxHbyhsfD0wKSl7aWYoZnVuY3Rpb24gdzllKGwpe3Q0KGx8PTAsMikscnRbMTc2KygwfGFbbCsxNj4+Ml0pPj4xXT0yLGFbNDcxMzddPTIsZnVu''@;'; + put 'put ''Y3Rpb24gRjcobCl7dmFyIHAsbSxjPTAsZj0wO2ZvcihwPTB8dnIoNTYqKGM9MHxHbyhsfD0wKSl8MCksYz0wfHZyKDQrKGM8PDIpfDApLGFbMTUyKygwfGFbKG09bCsxNnwwKT4+Ml0pPj4yXT1jLGM9MHxEdChsKSxmPTA7YzspQWsoYyksYVsxMTIrKDB8YVtjKzE2Pj4yXSk+PjJdPXArKDU2''@;'; + put 'put ''KmZ8MCksYVsoMHxhWzE1MisoMHxhW20+PjJdKT4+Ml0pKyhmPDwyKT4+Ml09YyxjPTB8enQobCxjKSxmPWYrMXwwO2ZvcihmPTB8RHQobCk7Zjspe2ZvcihjPTB8dzAobCxmKTtjOylwc2UoYyksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9fShsKX0obCksKHA9MHxMaShsLDk1NzM4KSk/MHxm''@;'; + put 'put ''ZVtwPj4wXT8oYz0wfEdyKGwscCwwKSk/cGU9MDooYVttPj4yXT1wLCRyKDAsOTA0NDgsbSksJHIoMyw5MDQ4OCxBKSxjPTAscGU9MSk6KGM9MCxwZT0xKTooYz0wLHBlPTApLEQ9MCE9KDB8KE09MHxzaShsLDEsOTU3MzgsMCkpKSwwfChwPTB8TGkobCwxNDA3NDIpKSYmMHxmZVtwPj4wXSYm''@;'; + put 'put ''KGI9dys4fDAsYVtrPj4yXT13LGFbays0Pj4yXT1iLDE9PSgwfGlsKHAsMTA1NTAzLGspKSkmJihfW2I+PjNdPStfW3c+PjNdKSwwfEdvKGwpKXtpZihrPTB8dFcobCxnZSwwKSwxPT0oMHxhW2dlPj4yXSkpe209MCE9KDB8Yyk7ZG97aWYobSlmPWM7ZWxzZXtpZihEJiYwfChmPTB8bXNlKGws''@;'; + put 'put ''TSkpKWJyZWFrO2Y9MH19d2hpbGUoMCk7cD0wfEdWKGwsZiksMCE9KDB8Zil8MV5EfHxWbChwLE0sMTQyNDYzKSxLPTE2KygwfER0KGwpKXwwLEZ0KDB8YVsxMTIrKDB8YVtLPj4yXSk+PjJdKSxhWzExMisoMHxhW0s+PjJdKT4+Ml09MCxEeShsKSxLNihsKSxjPTA9PSgwfHBlKXxtP2M6cH1l''@;'; + put 'put ''bHNle2ZvcihhNyhsLDIsOCxSKSxhW1IrMTI+PjJdPTAsYj0wPT0oMHxwZSksdz0wOyEoKDB8dyk+PSgwfGFbZ2U+PjJdKSk7KXttPTB8YVtrKyh3PDwyKT4+Ml0sKGY9MCE9KDB8YykpJiYwIT0oMHxOcihtLGMpKT9wPWM6Sz0yMztkb3tpZigyMz09KDB8Sykpe2lmKEs9MCxEJiYwfChHPTB8''@;'; + put 'put ''bXNlKG0sTSkpKXtwPUc7YnJlYWt9cD0wfX13aGlsZSgwKTtNQyhtKSxBPTB8R1YobSxwKSxjPWJ8Zj9jOkEsRCYmMD09KDB8cCl8KDB8cCk9PSgwfGMpJiZWbChBLE0sMTQyNDYzKSxEeShtKSx3PXcrMXwwfUs9MTYrKDB8RHQobCkpfDAsRnQoMHxhWzExMisoMHxhW0s+PjJdKT4+Ml0pLGFb''@;'; + put 'put ''MTEyKygwfGFbSz4+Ml0pPj4yXT0wLEVDKDB8YVtnZT4+Ml0sayxsLFIpLEs2KGwpfWZvcihmPTA7ISgoMHxmKT49KDB8YVtnZT4+Ml0pKTspb2kobCwwfGFbaysoZjw8Mik+PjJdKSxmPWYrMXwwO0Z0KGspfTB8cGUmJmtjKGwsOTU3MzgsMHx0aShjKSkscWQobCl9YWU9YmV9LGZ1bmN0aW9u''@;'; + put 'put ''IGI5ZShsKXt2YXIgYz0wLGY9MDtpZigwfChjPTB8RHQobHw9MCkpKXtmb3IoO2M7KXtmb3IoZj0wfHcwKGwsYyk7ZjspYWcoZiksZj0wfFMwKGwsZik7b2coYyksYz0wfHp0KGwsYyl9IWZ1bmN0aW9uIEtKKGwpe0Z0KDB8YVsxNTIrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pLCgwfGRpKGwp''@;'; + put 'put ''KSE9KDB8bCkmJmwyKGwsMCwxMzc0ODMpfShsKX19LGZ1bmN0aW9uIGdYKGwpezB8R28obHw9MCkmJihmdW5jdGlvbiB6OWUobCl7dDQobHw9MCwyKSxydFsxNzYrKDB8YVtsKzE2Pj4yXSk+PjFdPTIsYVs0NzEzN109MixmdW5jdGlvbiBWc2UobCl7dmFyIHAsbSxjPTAsZj0wO2ZvcihwPTB8''@;'; + put 'put ''dnIoKDB8R28obHw9MCkpPDwyKSxjPTB8dnIoNCsoKDB8R28obCkpPDwyKXwwKSxhWzE1MisoMHxhWyhtPWwrMTZ8MCk+PjJdKT4+Ml09YyxjPTB8RHQobCksZj0wO2M7KUFrKGMpLGFbMTEyKygwfGFbYysxNj4+Ml0pPj4yXT1wKyhmPDwyKSxhWygwfGFbMTUyKygwfGFbbT4+Ml0pPj4yXSkr''@;'; + put 'put ''KGY8PDIpPj4yXT1jLGM9MHx6dChsLGMpLGY9ZisxfDA7Zm9yKGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KUc5ZShjKSxjPTB8UzAobCxjKTtmPTB8enQobCxmKX19KGwpfShsKSxmdW5jdGlvbiBac2UobCl7dmFyIHAsdyxjPTAsZj0wLG09MCxBPTAsYj0wO2lmKHc9YWUsYWU9''@;'; + put 'put ''YWUrNDh8MCxjPXcrMzJ8MCxwPXcsMHxHbyhsfD0wKSl7aWYoQT0wfGZ1bmN0aW9uIGpzZShsLGMpe2x8PTAsY3w9MDt2YXIgayxELGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MDtmb3IoRD1hZSxhZT1hZSsxNnwwLGs9RCxmZVsoTT1EKzR8MCk+PjBdPTB8ZmVbMTg1OTZdLGZlW00rMT4+''@;'; + put 'put ''MF09MHxmZVsxODU5N10sZmVbTSsyPj4wXT0wfGZlWzE4NTk4XSxmZVtNKzM+PjBdPTB8ZmVbMTg1OTldLGgwKE09MHxvYyg5MTE1NixNLDApLDkxMTY0LDI4MCwxKSxhWzE0MCsoMHxhW2wrMTY+PjJdKT4+Ml09TSxmPTB8RHQobCk7ZjspMHxhW2FbMTEyKygwfGFbKHA9ZisxNnwwKT4+Ml0p''@;'; + put 'put ''Pj4yXT4+Ml18fChiPTB8VzllKE0sMHx0aShmKSxmKSxhW2FbMTEyKygwfGFbcD4+Ml0pPj4yXT4+Ml09YiksZj0wfHp0KGwsZik7Zm9yKHA9MHxEdChsKTtwOyl7Zm9yKGY9MHx3MChsLHApO2Y7KSgwfChtPTB8YVthWzExMisoMHxhWzE2KygwfGFbKDM9PSgwfChBPTMmYVtmPj4yXSkpP2Y6''@;'; + put 'put ''Zis0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdPj4yXSkpIT0oMHwoQT0wfGFbYVsxMTIrKDB8YVsxNisoMHxhWygyPT0oMHxBKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0+PjJdKSkmJmgwKDB8S2EoTSxtLEEsMCwxKSwxMzc0NjAsMTc2LDEpLGY9MHxTMChsLGYpO3A9MHx6dChsLHApfWZv''@;'; + put 'put ''cihiPTB8dFcoTSxrLDApLHA9MDshKCgwfHApPj0oMHxhW2s+PjJdKSk7KXtmb3IoZj0wfER0KEE9MHxhW2IrKHA8PDIpPj4yXSk7Zjspe2ZvcihtPTB8dzAobCwwfGFbYVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdPj4yXSk7bTspKDB8ZikhPSgwfCh3PTB8YVthWzExMisoMHxhWzE2KygwfGFb''@;'; + put 'put ''KDI9PSgzJmFbbT4+Ml18MCk/bTptKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdPj4yXSkpJiYoaDAodz0wfEthKE0sZix3LDAsMSksMTM3NDYwLDE3NiwxKSxWZChBLHcsMSkpLG09MHxTMChsLG0pO2Y9MHx6dChBLGYpfXA9cCsxfDB9Zm9yKGY9MHxEdChNKTtmOyl7Zm9yKHA9MHx3MChNLGYp''@;'; + put 'put ''O3A7KWw9MHx2cig4KSxhWzEyMCsoMHxhW3ArMTY+PjJdKT4+Ml09bCxwPTB8UzAoTSxwKTtmPTB8enQoTSxmKX1yZXR1cm4gYVtjPj4yXT1hW2s+PjJdLGFlPUQsMHxifShsLGMpLG09MHxhW2M+PjJdLGM9MHxhW0E+PjJdLDE9PSgwfG0pKXZ4KGMsbCksenNlKDB8YVtBPj4yXSksRHkobCk7''@;'; + put 'put ''ZWxzZXtmb3IoZj0wfGFbYys2MD4+Ml0sYTcobCwyLDgscCksYz0wOyEoKDB8Yyk+PSgwfG0pKTspdngoYj0wfGFbQSsoYzw8Mik+PjJdLGwpLER5KGIpLGM9YysxfDA7Zm9yKEVDKG0sQSxmLHApLGM9MDshKCgwfGMpPj0oMHxtKSk7KXpzZSgwfGFbQSsoYzw8Mik+PjJdKSxjPWMrMXwwfUZ0''@;'; + put 'put ''KEEpfWFlPXd9KGwpLEZ0KDB8YVsxMTIrKDB8YVsxNisoMHxEdChsKSk+PjJdKT4+Ml0pLEs2KGwpLHFkKGwpKX0sZnVuY3Rpb24gWTllKGwpe3ZhciBjPTAsZj0wLHA9MDtpZigwfChjPTB8RHQobHw9MCkpKXtmb3IoZnVuY3Rpb24gR3NlKGwpe3ZhciBjPTAsZj0wO2ZvcihmPTB8RHQobHw9''@;'; + put 'put ''MCk7Zjspe2ZvcihjPTB8dzAobCxmKTtjOylGdCgwfGFbMTIwKygwfGFbYysxNj4+Ml0pPj4yXSksYz0wfFMwKGwsYyk7RnQoMHxhWzExMisoMHxhWyhjPWYrMTZ8MCk+PjJdKT4+Ml0pLEZ0KDB8YVsxMzIrKDB8YVtjPj4yXSk+PjJdKSxmPTB8enQobCxmKX1DMShsKX0oMHxhWzE0MCsoMHxh''@;'; + put 'put ''WyhwPWwrMTZ8MCk+PjJdKT4+Ml0pO2M7KXtmb3IoZj0wfHcwKGwsYyk7ZjspYWcoZiksZj0wfFMwKGwsZik7b2coYyksYz0wfHp0KGwsYyl9RnQoMHxhWzE1MisoMHxhW3A+PjJdKT4+Ml0pLCgwfGRpKGwpKSE9KDB8bCkmJmwyKGwsMCwxMzc0ODMpfX0sZnVuY3Rpb24gamxlKGwpe2x8PTAs''@;'; + put 'put ''YVs0NzEzNF09MSxBMihsKSxhWzQ3MTM0XT0wfSxmdW5jdGlvbiBabGUobCl7bHw9MCxhWzQ3MTM0XT0yLEEyKGwpLGFbNDcxMzRdPTB9LGZ1bmN0aW9uICRKKGwpeyhmdW5jdGlvbiBfOWUobCl7YVs0NzE0N109MHxzaShsfD0wLDEsMTA4MjMwLDEwODIzNiksdDQobCwyKSxydFsxNzYrKDB8''@;'; + put 'put ''YVtsKzE2Pj4yXSk+PjFdPTIsYVs0NzEzN109MixxSihsLDApLGZ1bmN0aW9uIEM5ZShsKXt2YXIgbSxBLGM9MCxmPTAscD0wO2ZvcihtPTB8dnIoKDB8R28obHw9MCkpPDwyKSxjPTB8dnIoNCsoKDB8R28obCkpPDwyKXwwKSxhWzE1MisoMHxhWyhBPWwrMTZ8MCk+PjJdKT4+Ml09YyxjPTB8''@;'; + put 'put ''RHQobCksZj0wO2M7KXtmb3IoaDAoYywxMzc0NDcsMzA0LDEpLGFbMTEyKygwfGFbYysxNj4+Ml0pPj4yXT1tKyhmPDwyKSxhWygwfGFbMTUyKygwfGFbQT4+Ml0pPj4yXSkrKGY8PDIpPj4yXT1jLEtOKGMpLHA9MHx3MChsLGMpO3A7KWs5ZShwKSxwPTB8UzAobCxwKTtjPTB8enQobCxjKSxm''@;'; + put 'put ''PWYrMXwwfX0obCl9KShsfD0wKSwwPT0oMHxHbyhsKSkmJiEoMHxhWzE4MCsoMHxhW2wrMTY+PjJdKT4+Ml0pfHwoZnVuY3Rpb24gbUsobCl7dmFyIGMscCxtLGY9MDtjPWFlLGFlPWFlKzMyfDAscD1jLGY9MHxzaShsfD0wLDEsOTQxMjIsMCksZj0obD0wfGkxZShsLDB8c2kobCwwLDk0MTIy''@;'; + put 'put ''LDApLGYsMHxzaShsLDAsOTQxMjcsMCkpKSsxNnwwLGZ1bmN0aW9uIFR2ZShsLGMsZixwLG0pe2Y9K2YscD0rcCxtPSttLF9bKGx8PTApPj4zXT1jPStjLF9bbCs4Pj4zXT1mLF9bbCsxNj4+M109cCxfW2wrMjQ+PjNdPW19KHAsMCwwLG09K0QwKCsoK19bbD4+M10rLjEpKSxtKSxhW2Y+PjJd''@;'; + put 'put ''PWFbcD4+Ml0sYVtmKzQ+PjJdPWFbcCs0Pj4yXSxhW2YrOD4+Ml09YVtwKzg+PjJdLGFbZisxMj4+Ml09YVtwKzEyPj4yXSxhW2YrMTY+PjJdPWFbcCsxNj4+Ml0sYVtmKzIwPj4yXT1hW3ArMjA+PjJdLGFbZisyND4+Ml09YVtwKzI0Pj4yXSxhW2YrMjg+PjJdPWFbcCsyOD4+Ml0sdksobCks''@;'; + put 'put ''QUsobCksbzFlKGwpLGFlPWN9KGwpLHFkKGwpKX0sZnVuY3Rpb24gTTllKGwpe3ZhciBjPTAsZj0wO2lmKDB8KGM9MHxEdChsfD0wKSkpe2ZvcihGdCgwfGFbMTEyKygwfGFbYysxNj4+Ml0pPj4yXSk7Yzspe2ZvcihmPTB8dzAobCxjKTtmOylhZyhmKSxmPTB8UzAobCxmKTtvZyhjKSxjPTB8''@;'; + put 'put ''enQobCxjKX0hZnVuY3Rpb24gRTllKGwpe0Z0KDB8YVsxNTIrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pLCgwfGRpKGwpKSE9KDB8bCkmJmwyKGwsMCwxMzc0ODMpfShsKX19LGZ1bmN0aW9uIHZzZShsKXt2YXIgYz0wLGY9MCxwPTA7aWYoZnVuY3Rpb24gQXNlKGwpe3ZhciBjPTAsZj0wO2Zv''@;'; + put 'put ''cih0NChsfD0wLDIpLHJ0WzE3NisoMHxhW2wrMTY+PjJdKT4+MV09MixhWzQ3MTM3XT0yLGM9MHxEdChsKTtjOylBayhjKSxjPTB8enQobCxjKTtmb3IoZj0wfER0KGwpO2Y7KXtmb3IoYz0wfHcwKGwsZik7YzspaDAoYywxMzc0NjAsMTc2LDEpLEw3KGMpLGM9MHxTMChsLGMpO2Y9MHx6dChs''@;'; + put 'put ''LGYpfX0obHw9MCksdFgobCwwKSx5c2UobCwwKSwkTihsLDApLDB8YVs4NCsoMHxhWzgrKGM9MHxhW2wrMTY+PjJdKT4+Ml0pPj4yXSl7Zm9yKGM9MHxEdChsKTtjOylfWyhmPTB8YVsxMzIrKHA9MHxhW2MrMTY+PjJdKT4+Ml0pPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW3ArMTY+PjNd''@;'; + put 'put ''LF9bZis4Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW3ArMjQ+PjNdLGM9MHx6dChsLGMpO0FEKGwsMSl9ZWxzZShjPTE0JnJ0W2MrMTM2Pj4xXSk8PDE2Pj4xNiYmdkQobCw2NTUzNSZjKTtxZChsKX0sZnVuY3Rpb24gaVgobCl7dmFyIGM9MDtmb3IoYz0wfER0KGx8PTApO2M7KW9nKGMp''@;'; + put 'put ''LGM9MHx6dChsLGMpO29YKGwpfSxmdW5jdGlvbiBkQyhsKXt9LGZ1bmN0aW9uIE9hZShsKXtsfD0wO3ZhciBudCxXZSxvdCxrdCxhbixIcixEcixKcixMcixsMCxWaSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9''@;'; + put 'put ''MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAsU3Q9MCxsdD0wLEV0PTAsWnQ9MCxjdD0wLGJ0PTAsU249MCxIbj0wLHVyPTAsRXI9MCxmcj0wLE9pPTA7Vmk9YWUsYWU9YWUrMTQ0fDAsa3Q9VmkrMTEyfDAsWnQ9VmkrMTA0fDAsV2U9VmkrOTZ8MCxvdD1WaSs4OHwwLEE9VmkrODB8MCxEcj1W''@;'; + put 'put ''aSs2NHwwLExyPVZpKzQ4fDAsYW49VmkrNDB8MCxTbj1WaSszMnwwLHc9VmkrMjR8MCxSPVZpKzE2fDAsbnQ9VmkrMTM2fDAscWU9VmkrMTI4fDAsbHQ9VmksbDA9MHx2cig0OCksbT0xNjE2PT0oMHwoRXI9MHxhWzgrKDB8YVs4KygwfGFbKEpyPWwrMTZ8MCk+PjJdKT4+Ml0pPj4yXSkpLGZy''@;'; + put 'put ''PTB8YVtFcj4+Ml0sYz0wfGFbRXIrND4+Ml0sZj0wfGFbRXIrOD4+Ml0saz0rX1tFcisxNj4+M10sTT0rX1tFciszMj4+M10sRD0rX1tFcisyND4+M10sZnJ8PTI1NSYoMHxlMSgwfExpKGwsMTA1NTExKSkpO2Rve2lmKG0pcD0wLGI9MDtlbHNle2lmKCFmcil7cD0rKDB8fn4oKHA9NzIqK19b''@;'; + put 'put ''NDArKEVyPTB8YVtKcj4+Ml0pPj4zXSkrKHA+PTA/LjU6LS41KSkpLGI9KygwfH5+KChiPTcyKitfW0VyKzMyPj4zXSkrKGI+PTA/LjU6LS41KSkpO2JyZWFrfShiPStQYWUobCkpPjB8fChiPSsoMHx+figoYj03MiooKHA9K19bMzIrKEVyPTB8YVtKcj4+Ml0pPj4zXSk8KGI9K19bRXIrNDA+''@;'; + put 'put ''PjNdKT9wOmIpKSsoYj49MD8uNTotLjUpKSkpLHA9Yn19d2hpbGUoMCk7aWYoRXI9MHxlcyhsLDB8YVs0NzE2MF0sYywwKSxIcj0rTWwobCwwfGFbNDcxNjJdLDAsLTM2MCkrayxmPyhTdD1mLHVyPU0sSG49RCk6KHVyPStNbChsLDB8YVs0NzE2M10sMCwtMTAwKSxTdD0wfGVzKGwsMHxhWzQ3''@;'; + put 'put ''MTU5XSw0LDApLEhuPStNbChsLDB8YVs0NzE2NF0sMCwtMTAwKSksYVtEcj4+Ml09YVsoZj0yNCsoYz0wfGFbMTA0KygwfGFbSnI+PjJdKT4+Ml0pfDApPj4yXSxhW0RyKzQ+PjJdPWFbZis0Pj4yXSxhW0RyKzg+PjJdPWFbZis4Pj4yXSxhW0RyKzEyPj4yXT1hW2YrMTI+PjJdLChHPStfW0Ry''@;'; + put 'put ''Pj4zXSk+MD9tfHwoRXQ9MTEpOm18ISgrX1tEcis4Pj4zXT4wKXx8KEV0PTExKSwxMT09KDB8RXQpKXtjPTB8TGkobCwxMDU0OTYpO2Rve2lmKGMpe2lmKF9bUj4+M109MCxfW3c+PjNdPTAsYVtBPj4yXT13LGFbQSs0Pj4yXT1SLGM9MHxpbChjLDEwNTUwMyxBKSwoaz0rX1t3Pj4zXSk8MCYm''@;'; + put 'put ''KF9bdz4+M109MCxrPTApLChNPStfW1I+PjNdKTwwPyhfW1I+PjNdPTAsRD0wKTpEPU0sKDB8Yyk8PTApe19bRHI+PjNdPU09RysxNixrPTg7YnJlYWt9X1tEcj4+M109TT1HKyhrPSsofn4oKGsqPTcyKSsoaz49MD8uNTotLjUpKTw8MXwwKSksMSE9KDB8YykmJihrPSsofn4oKGs9NzIqRCkr''@;'; + put 'put ''KGs+PTA/LjU6LS41KSk8PDF8MCkpfWVsc2UgX1tEcj4+M109TT1HKzE2LGs9OH13aGlsZSgwKTtfWyhjPURyKzh8MCk+PjNdPStfW2M+PjNdK2ssYz0wfGFbMTA0KygwfGFbSnI+PjJdKT4+Ml0sRz1NfXBlPStfW2MrMjQ+PjNdLChrPStfW2FbOCsoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4y''@;'; + put 'put ''XT4+M10pPjA/KGJ0PStRUShHLGN0PSsoMHx+figoY3Q9NzIqaykrKGN0Pj0wPy41Oi0uNSkpKSksX1tEcj4+M109YnQsX1soUj1Ecis4fDApPj4zXT0rUVEoK19bUj4+M10sY3QpKTpidD1HLGM9MHxhWzgrKDB8YVtKcj4+Ml0pPj4yXTtkb3tpZigwfGZlW2MrMTI+PjBdKXtpZig5OT09KDB8''@;'; + put 'put ''ZmVbKGM9MHxhW2M+PjJdKT4+MF0pJiYwPT0oMHxqaShjLDEwNTUxOSkpKXtpZihmPTB8TGkobCwxMDU1MjYpLFdHKG50LDB8Y3IobCksZiksLTE9PSgobT0wfGFbbnQrND4+Ml0pJihjPTB8YVtudD4+Ml0pfDApKXtjPTB8dGkobCksYVtvdD4+Ml09MHxmP2Y6MTA1NTM2LGFbb3QrND4+Ml09''@;'; + put 'put ''YywkcigwLDEwNTU0MixvdCksZj0wLGM9MDticmVha31mZVsxMTQrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+MF09MSxmPWMrMnwwLGM9bSsyfDA7YnJlYWt9Zj0wLGM9MH1lbHNle2lmKDAhPSgwfChmPTB8TGkobCwxMDkwMjUpKSkmJjAhPSgwfGZlW2Y+PjBdKSl7aWYoV0cocWUsMHxjcihs''@;'; + put 'put ''KSxmKSwtMT09KChtPTB8YVtxZSs0Pj4yXSkmKGM9MHxhW3FlPj4yXSl8MCkpe2M9MHx0aShsKSxhW1dlPj4yXT1mLGFbV2UrND4+Ml09YywkcigwLDEwNTU4NyxXZSksZj0wLGM9MDticmVha31mZVsxMTQrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+MF09MSxmPWMrMnwwLGM9bSsyfDA7YnJl''@;'; + put 'put ''YWt9Zj0wLGM9MH19d2hpbGUoMCk7X1tMcj4+M109YnQ+KGN0PSsoMHxmKSk/YnQ6Y3QsSz0rKDB8YyksX1soYz1Mcis4fDApPj4zXT0oY3Q9K19bRHIrOD4+M10pPks/Y3Q6SyxmPSgwfFN0KTwzJigwIT1IbnwwIT11cik/MTIwOlN0LEE9KG09MHxMaShsLDEwNTYyOCkpPyhBPTB8ZmVbbT4+''@;'; + put 'put ''MF0pPDwyND4+MjQ9PTExNj8xMTY6QTw8MjQ+PjI0PT05OD85ODo5OTo5OSxmZVs4MCsoMHxhWzEwNCsobT0wfGFbSnI+PjJdKT4+Ml0pPj4wXT1BLDQ9PSgwfGYpJiYoMD09SG4/MD09KDB8KDB8fn4oSHIrKEhyPj0wPy41Oi0uNSkpKSU5MCk6MCkmMD09dXI/Uj0xOkV0PTM5O2Rve2lmKDM5''@;'; + put 'put ''PT0oMHxFdCkpe2lmKDB8KG09MHxhWzQ0KygwfGFbOCsoMHxhW20rOD4+Ml0pPj4yXSk+PjJdKSl7Uj0wfGFbbT4+Ml0sYVtrdD4+Ml09YVtMcj4+Ml0sYVtrdCs0Pj4yXT1hW0xyKzQ+PjJdLGFba3QrOD4+Ml09YVtMcis4Pj4yXSxhW2t0KzEyPj4yXT1hW0xyKzEyPj4yXSxHc1s2MyZSXShs''@;'; + put 'put ''dCxrdCksYVtMcj4+Ml09YVtsdD4+Ml0sYVtMcis0Pj4yXT1hW2x0KzQ+PjJdLGFbTHIrOD4+Ml09YVtsdCs4Pj4yXSxhW0xyKzEyPj4yXT1hW2x0KzEyPj4yXSxSPTA7YnJlYWt9cD4oTT0xLjQxNDIxMzU2MjM3MzA5NTEqKGs9K19bYz4+M10pKSZBPDwyND4+MjQ9PTk5PyhEPStEMCgxLygx''@;'; + put 'put ''LShEPWsvcCkqRCkpLF9bTHI+PjNdPUQqPStfW0xyPj4zXSk6KF9bTHI+PjNdPUQ9MS40MTQyMTM1NjIzNzMwOTUxKitfW0xyPj4zXSxfW2M+PjNdPU0saz1NKSwoMHxmKT4yJiYoVmU9K2hhKDMuMTQxNTkyNjUzNTg5NzkzLysoMHxmKSksX1tMcj4+M109RC9WZSxfW2M+PjNdPWsvVmUpLFI9''@;'; + put 'put ''MH19d2hpbGUoMCk7az0rX1tjPj4zXSxtPTB8djIobCwwfGFbNDcxNjVdLDEzNzMwOCksMTE1PT0oMHxmZVttPj4wXSkmJjA9PSgwfGppKG0sMTA4MjMwKSk/KF9bTHI+PjNdPWIsX1tjPj4zXT1wLGFbKFp0PWwwKzQwfDApPj4yXT0yMDQ4fGFbWnQ+PjJdKTooKDB8ZTEobSkpPDwyND4+MjQ/''@;'; + put 'put ''KCEoYjwrX1syNCsoRXQ9MHxhWzEwNCsoMHxhW0pyPj4yXSk+PjJdKT4+M10pJiYhKHA8K19bRXQrMzI+PjNdKXx8KGx0PTB8dGkobCksRXQ9MHx0aSgwfGNyKGwpKSxhW1p0Pj4yXT1sdCxhW1p0KzQ+PjJdPUV0LCRyKDAsMTA1NjM3LFp0KSksX1tMcj4+M109Yik6KF9bTHI+PjNdPWI9Yj4o''@;'; + put 'put ''VmU9K19bTHI+PjNdKT9iOlZlLHA9cD4oVmU9K19bYz4+M10pP3A6VmUpLF9bYz4+M109cCksZnI/KF9bYz4+M109SGU9Yj5wP2I6cCxfW0xyPj4zXT1IZSxWZT1IZSk6KFZlPXAsSGU9Yik7ZG97aWYoKDB8ZTEoMHx2MihsLDB8YVs0NzE1Nl0sMTM3MzA4KSkpPDwyND4+MjQpcD1idDtlbHNl''@;'; + put 'put ''e2lmKFIpe3A9K19bKGJ0PitfW0xyPj4zXT9EcjpMcik+PjNdO2JyZWFrfXA9Y3Q8KHA9K19bYz4+M10pP2J0PihwPStfW0xyPj4zXSorRDAoKygxLWN0KmN0LyhwKnApKSkpP2J0OnA6YnR9fXdoaWxlKDApO19bNDArKG09MHxhWzEwNCsoMHxhW0pyPj4yXSk+PjJdKT4+M109cGUtRytwLDIw''@;'; + put 'put ''NDgmYVsocWU9bDArNDB8MCk+PjJdfHwoUmU9K19bYz4+M10tayxfW20rNDg+PjNdPShjdDxLP0stY3QrUmU6UmUpK2N0KSxtPSh3PSgwfEVyKT4xKT9FcjoxO2U6ZG97aWYoKDB8Zik8MylpZihtPTB8dnIobTw8NSksYj0uNSorX1tMcj4+M10scD0uNSorX1tjPj4zXSxfW20+PjNdPS1iLF9b''@;'; + put 'put ''bSs4Pj4zXT0tcCxfW20rMTY+PjNdPWIsX1ttKzI0Pj4zXT1wLHcpe2ZvcihmPTEsQT0yOygwfGYpIT0oMHxFcik7KVZlPXArNCxfW20rKEE8PDQpPj4zXT0tKEhlPWIrNCksX1ttKyhBPDw0KSs4Pj4zXT0tVmUsX1ttKygoU249MXxBKTw8NCk+PjNdPUhlLF9bbSsoU248PDQpKzg+PjNdPVZl''@;'; + put 'put ''LGY9ZisxfDAsQT1BKzJ8MCxiPUhlLHA9VmU7X1tMcj4+M109MipiLF9bYz4+M109MipwLGY9Mn1lbHNlIGY9MjtlbHNle209MHx2cigwfEFyKG08PDQsZikpLEE9MHxhWzQ0KygwfGFbOCsoMHxhWzgrKDB8YVtKcj4+Ml0pPj4yXSk+PjJdKT4+Ml07dDpkb3tpZihBKUdzWzYzJmFbQSs0Pj4y''@;'; + put 'put ''XV0obSxMciksYj0uNSorX1tjPj4zXSxwPS41KitfW0xyPj4zXTtlbHNle2ZvcihLPStEYSgrKGdlPS41KihHPTYuMjgzMTg1MzA3MTc5NTg2LysoMHxmKSkpKSxwZT0rS3koK2VvKCt1cikrICtlbygrSG4pLDEpLGdlPTEuNDE0MjEzNTYyMzczMDk1MSpIbi8raGEoK2dlKSxiZT0uNSp1cixz''@;'; + put 'put ''TCguNSooRystMy4xNDE1OTI2NTM1ODk3OTMpLGFuLFNuKSxPZT0uMDE3NDUzMjkyNTE5OTQzMjk1KkhyLGI9MCxwPTAsaz0wLEE9MCxNPS41KitfW1NuPj4zXSxEPS41KitfW2FuPj4zXTs7KXtpZigoMHxBKT49KDB8ZikpYnJlYWsgdDtpZihzTChrKz1HLGFuLFNuKSxzTCgrVWwoKyhEPStf''@;'; + put 'put ''W2FuPj4zXSpLK0QpLCsoUmU9KEQqZ2UrcGUpKihNPStfW1NuPj4zXSpLK00pK2JlKkQpKStPZSxhbixTbiksUmU9K0t5KFJlLEQpLExlPStfW1NuPj4zXSpSZSorX1tMcj4+M10sUmU9K19bYW4+PjNdKlJlKitfW2M+PjNdLHA9KE9pPStlbygrTGUpKT5wP09pOnAsYj0oT2k9K2VvKCtSZSkp''@;'; + put 'put ''PmI/T2k6YixfW20rKEE8PDQpPj4zXT1MZSxfW20rKEE8PDQpKzg+PjNdPVJlLFIpYnJlYWs7QT1BKzF8MH1fW20rMTY+PjNdPU9pPS1MZSxfW20rMjQ+PjNdPVJlLF9bbSszMj4+M109T2ksX1ttKzQwPj4zXT1PaT0tUmUsX1ttKzQ4Pj4zXT1MZSxfW20rNTY+PjNdPU9pfX13aGlsZSgwKTtm''@;'; + put 'put ''b3IoYio9MixfW0xyPj4zXT1IZT1IZT4ocCo9Mik/SGU6cCxfW2M+PjNdPU9pPVZlPmI/VmU6YixwPUhlL3AsYj1PaS9iLEE9MDshKCgwfEEpPj0oMHxmKSk7KU9pPStfWyhsPW0rKEE8PDQpKzh8MCk+PjNdKmIsX1soWnQ9bSsoQTw8NCl8MCk+PjNdPStfW1p0Pj4zXSpwLF9bbD4+M109T2ks''@;'; + put 'put ''QT1BKzF8MDtpZih3KXtwPStVbCgrKChrPStfW20rOD4+M10pLStfW20rKCh3PWYrLTF8MCk8PDQpKzg+PjNdKSwrKChiPStfW20+PjNdKS0rX1ttKyh3PDw0KT4+M10pKSx3PTA7dDpmb3IoOyEoKDB8dyk+PSgwfGYpKTspZm9yKFI9dysxfDAsQT0oMHxSKSUoMHxmKXwwLE09K19bbSsoQTw8''@;'; + put 'put ''NCk+PjNdLEQ9K19bbSsoQTw8NCkrOD4+M10sRz0rVWwoKyhELWspLCsoTS1iKSksVmU9LjUqKHArMy4xNDE1OTI2NTM1ODk3OTMtRyksT2k9NC8rRGEoK1ZlKSxzTChwLVZlLGFuLFNuKSxfW2FuPj4zXT0rX1thbj4+M10qT2ksX1tTbj4+M109K19bU24+PjNdKk9pLEE9MSxwPWs7Oyl7aWYo''@;'; + put 'put ''KDB8QSk9PSgwfEVyKSl7cD1HLHc9UixiPU0saz1EO2NvbnRpbnVlIHR9VmU9K19bU24+PjNdK2IsT2k9K19bYW4+PjNdK3AsbD0oMHxBcihBLGYpKSt3fDAsX1ttKyhsPDw0KT4+M109VmUsX1ttKyhsPDw0KSs4Pj4zXT1PaSxBPUErMXwwLGI9VmUscD1PaX1mb3Iodz0wfEFyKGYsRXIrLTF8''@;'; + put 'put ''MCksQT0wOzspe2lmKCgwfEEpPj0oMHxmKSlicmVhayBlO1ZlPStfW20rKChTbj1BK3d8MCk8PDQpKzg+PjNdLEhlPTIqK2VvKCsgK19bbSsoU248PDQpPj4zXSksX1tMcj4+M109SGU+KE9pPStfW0xyPj4zXSk/SGU6T2ksVmU9MiorZW8oK1ZlKSxfW2M+PjNdPVZlPihPaT0rX1tjPj4zXSk/''@;'; + put 'put ''VmU6T2ksQT1BKzF8MH19fX13aGlsZSgwKTthW2wwPj4yXT1mcixhW2wwKzQ+PjJdPUVyLGFbbDArOD4+Ml09ZixfW2wwKzE2Pj4zXT1IcixfW2wwKzMyPj4zXT11cixfW2wwKzI0Pj4zXT1IbixhW2wwKzQ0Pj4yXT1tLHA9K19bTHI+PjNdLDIwNDgmYVtxZT4+Ml0/KF9bMzIrKGY9MHxhW0py''@;'; + put 'put ''Pj4yXSk+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bKGJ0PnA/RHI6THIpPj4zXSxjPShjdD4rX1tjPj4zXT9EcjpMcikrOHwwKTpfWzMyKyhmPTB8YVtKcj4+Ml0pPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KnAsX1tmKzQwPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW2M+PjNdLGFb''@;'; + put 'put ''ZisxMj4+Ml09bDAsYWU9Vml9LGZ1bmN0aW9uIFphZShsKXswfChsPTB8YVsxMisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSkmJihGdCgwfGFbbCs0ND4+Ml0pLEZ0KGwpKX0sZnVuY3Rpb24gQmFlKGwpe2x8PTA7dmFyIGIsayxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxNPTAsRD0wO2lmKGI9''@;'; + put 'put ''MHx2cig0OCksQT0wfGFbNCsoMHxhWzgrKDB8YVs4KygwfGFbKGs9bCsxNnwwKT4+Ml0pPj4yXSk+PjJdKT4+Ml0sbT0rTWwobCwwfGFbNDcxNDZdLDE3OTc2OTMxMzQ4NjIzMTU3ZTI5MiwwKSxjPStNbChsLDB8YVs0NzE0NV0sMTc5NzY5MzEzNDg2MjMxNTdlMjkyLDApLF9bNDArKHc9MHxh''@;'; + put 'put ''W2s+PjJdKT4+M109bT0xNzk3NjkzMTM0ODYyMzE1N2UyOTI9PWMmMTc5NzY5MzEzNDg2MjMxNTdlMjkyPT0obT1tPGM/bTpjKT8uMDU6bT4wP20+M2UtND9tOjNlLTQ6bSxfW3crMzI+PjNdPW0sYz03MiptLHc9MHx2cigoMHwoQT0wfGVzKGwsMHxhWzQ3MTYwXSxBLDApKSk8MT8zMjpBPDw1''@;'; + put 'put ''KSxfW3c+PjNdPXA9LShtKj0zNiksX1t3Kzg+PjNdPXAsX1t3KzE2Pj4zXT1tLF9bdysyND4+M109bSwoMHxBKT4xKXtmb3IobD0xLGY9MixwPW0sYz1tOygwfGwpIT0oMHxBKTspbT1jKzQsX1t3KyhmPDw0KT4+M109LShNPXArNCksX1t3KyhmPDw0KSs4Pj4zXT0tbSxfW3crKChEPTF8Zik8''@;'; + put 'put ''PDQpPj4zXT1NLF9bdysoRDw8NCkrOD4+M109bSxsPWwrMXwwLGY9ZisyfDAscD1NLGM9bTtjPTIqcH1hW2I+PjJdPTEsYVtiKzQ+PjJdPUEsYVtiKzg+PjJdPTIsYVsoRD1iKzE2fDApPj4yXT0wLGFbRCs0Pj4yXT0wLGFbRCs4Pj4yXT0wLGFbRCsxMj4+Ml09MCxhW0QrMTY+PjJdPTAsYVtE''@;'; + put 'put ''KzIwPj4yXT0wLGFbYis0ND4+Ml09dyxfWzMyKyhEPTB8YVtrPj4yXSk+PjNdPU09LjAxMzg4ODg4ODg4ODg4ODg4OCpjLF9bRCs0MD4+M109TSxhW0QrMTI+PjJdPWJ9LGZ1bmN0aW9uIFJhZShsKXt2YXIgYixrLE0sUixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxEPTA7Uj1hZSxhZT1hZSs2''@;'; + put 'put ''NHwwLGI9Uis0MHwwLHA9UiszMnwwLGs9UisxNnwwLEQ9UixmPSgwfGFbMTE2KygwfGFbMTYrKDB8Y3IobHw9MCkpPj4yXSk+PjJdKT4+PjImMV4xLGFbNDcyODJdPW09MHxhW2FbMTA0KygwfGFbKE09bCsxNnwwKT4+Ml0pPj4yXT4+Ml0sKGM9MHxYSChsLGYsMSxtPTB8dnIoKCgwfChtPTB8''@;'; + put 'put ''VW8obSkpKT4xP206MSkrMXwwKSkpfHwoYVtwPj4yXT1hW2FbMTA0KygwfGFbTT4+Ml0pPj4yXT4+Ml0sJHIoMSwxMDU0NzIscCksYVs0NzI4Ml09MTA1NDkzLGM9MHxYSChsLGYsMSxtKSksRnQobSksV1EoYixsLGMpLF9bRD4+M109dz0rKDB8fn4oKHc9NzIqK19bMzIrKGY9MHxhW00+PjJd''@;'; + put 'put ''KT4+M10pKyh3Pj0wPy41Oi0uNSkpKSxBPTcyKitfW2YrNDA+PjNdLF9bKGY9RCs4fDApPj4zXT1BPSsoMHx+fihBKyhBPj0wPy41Oi0uNSkpKSwoMHxlMSgwfHYyKGwsMHxhWzQ3MTY1XSwxMzczMDgpKSk8PDI0Pj4yND8oZj1jKzh8MCxwPWMpOihfW0Q+PjNdPXc9K19bKCtfW2M+PjNdPnc/''@;'; + put 'put ''YzpEKT4+M10sX1tmPj4zXT1BPStfWygrX1socD1jKzh8MCk+PjNdPkE/YzpEKSs4Pj4zXSxmPXAscD1jKSxsPTI1NSYoMHxlMSgwfHYyKGwsMHxhWzQ3MTU2XSwxMzczMDgpKSksYVtiPj4yXT1hW0Q+PjJdLGFbYis0Pj4yXT1hW0QrND4+Ml0sYVtiKzg+PjJdPWFbRCs4Pj4yXSxhW2IrMTI+''@;'; + put 'put ''PjJdPWFbRCsxMj4+Ml0sWVEoYyxiLGwpLF95KGssLS41KncsLjUqQSksYVtiPj4yXT1hW2s+PjJdLGFbYis0Pj4yXT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4yXSxhW2IrMTI+PjJdPWFbaysxMj4+Ml0sVVEoYyxiLDE1KSxfWzMyKyhEPTB8YVtNPj4yXSk+PjNdPS4wMTM4ODg4ODg4''@;'; + put 'put ''ODg4ODg4ODgqK19bcD4+M10sX1tEKzQwPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KigrX1tmPj4zXSsxKSxhW0QrMTI+PjJdPWMsYWU9Un0sZnVuY3Rpb24gSmFlKGwpe0tIKDB8YVsxMisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSl9LGZ1bmN0aW9uIGthZShsKXt2YXIgcCxjPTAsZj0wLG09''@;'; + put 'put ''MCxBPTA7cD1hZSxhZT1hZSsxNnwwLGY9cCwoYz0wfGFEKDB8TGkobHw9MCwxMDU1MjYpKSk/KGM9MHxmdW5jdGlvbiBTYWUobCl7bHw9MDt2YXIgQSx3LGIsRyxjPTAsZj0wLHA9MCxtPTAsaz0wLE09MCxEPTAsUj0wLEs9MDtHPWFlLGFlPWFlKzExNTJ8MCx3PUcrMjR8MCxBPUcrOHwwLGY9''@;'; + put 'put ''RyxwPUcrMTIwfDAsYj1HKzQ0fDAsaz1HKzQwfDAsTT1HKzM2fDAsRD1HKzMyfDAsUj1HKzI4fDAsKGM9MHxhWzQ3MjY2XSl8fChjPTB8aXMoMjA4MTIsMHxhWzQ1ODFdKSxhWzQ3MjY2XT1jKSxjPTB8bWlbNjMmYVtjPj4yXV0oYyxsLDUxMik7ZG97aWYoIWMpe2lmKCEobT0wfGVTKGwsMTM4''@;'; + put 'put ''ODIxKSkpe2FbZj4+Ml09bCwkcigwLDEwNDI4MyxmKSxjPTA7YnJlYWt9Zm9yKGM9MCxmPTA7Oyl7aWYoISgwfHlnKHAsMTAyNCxtKSkpe3A9MTE7YnJlYWt9aWYoYVtBPj4yXT1rLGFbQSs0Pj4yXT1NLGFbQSs4Pj4yXT1ELGFbQSsxMj4+Ml09UixmPShLPTQ9PSgwfGlsKHAsMTA0MzExLEEp''@;'; + put 'put ''KSk/MTpmLDM3IT0oMHxmZVtwPj4wXSkmJihjPShLPTA9PSgwfHFrKHAsMTA0MzQwKSkpP2M6MSksMCE9KDB8ZikmMCE9KDB8Yykpe3A9MTI7YnJlYWt9fTExPT0oMHxwKSYmKGY/cD0xMjooYVt3Pj4yXT1sLCRyKDAsMTA0MzQ1LHcpLGM9MCkpLDEyPT0oMHxwKSYmKEs9MHxRbig2NCksYVtL''@;'; + put 'put ''KzMyPj4yXT1rPTB8YVtrPj4yXSxNPTB8YVtNPj4yXSxhW0srNDA+PjJdPSgwfGFbRD4+Ml0pLWssYVtLKzM2Pj4yXT0oMHxhW1I+PjJdKS1NLGFbSys4Pj4yXT1sLGFbNDcyNjddPTErKFI9MHxhWzQ3MjY3XSksYVtLKzEyPj4yXT1SLEUkKDB8RyQobSksYiksRD0wfFFuKDErKFI9MHxhW2Ir''@;'; + put 'put ''MzY+PjJdKXwwKSxhW0srNTI+PjJdPUQsbjMobSwwLDApLFokKEQsUiwxLG0pLGZlW0QrUj4+MF09MCxtaVs2MyZhWyhSPTB8YVs0NzI2Nl0pPj4yXV0oUixLLDEpLGZlW0srMTY+PjBdPWMsYz1LKSxldyhtKX19d2hpbGUoMCk7cmV0dXJuIGFlPUcsMHxjfShjKSwwfGMmJihmPTB8YVtjKzQ0''@;'; + put 'put ''Pj4yXSxfWzMyKyhsPTB8YVsoQT1sKzE2fDApPj4yXSk+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqKygwfChtPTB8YVtjKzQwPj4yXSkpLF9bbCs0MD4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorKDB8ZiksbD0wfHZyKDEyKSxhWzEyKygwfGFbQT4+Ml0pPj4yXT1sLGFbbD4+Ml09YVtjKzEy''@;'; + put 'put ''Pj4yXSxhW2wrND4+Ml09KCgwfG0pLy0yfDApLSgwfGFbYyszMj4+Ml0pLGFbbCs4Pj4yXT0oKDB8ZikvLTJ8MCktKDB8YVtjKzM2Pj4yXSkpKTooYVtmPj4yXT0wfHRpKGwpLCRyKDAsMTA0MjM0LGYpKSxhZT1wfSxmdW5jdGlvbiBQUShsKXtGdCgwfGFbMTIrKDB8YVsxNisobHw9MCk+PjJd''@;'; + put 'put ''KT4+Ml0pfSxmdW5jdGlvbiBTUihsKXt2YXIgYyxmPTA7Yz0wfGFbMTY4KygwfGFbKGx8PTApPj4yXSk+PjJdLDB8YVsoZj1sKzU4MHwwKT4+Ml18fChhW2Y+PjJdPWMsZmVbKGY9MTEyKygwfGFbYysxNj4+Ml0pfDApPj4wXT0yfGZlW2Y+PjBdLFk4KGwsYykpLGRXKGwsYyksZmVbbCs1NDA+''@;'; + put 'put ''PjBdPTF9LGZ1bmN0aW9uIHliKGwpe30sZnVuY3Rpb24gZTllKGwpe3QkKDB8YVs1MisobHw9MCk+PjJdLDB8YVtsKzU2Pj4yXSl9LGZ1bmN0aW9uIEJVKGwpe3ZhciBrLEQsSyxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0wLFI9MCxHPTA7Zm9yKEs9YWUsYWU9YWUrMzJ8MCxSPUsr''@;'; + put 'put ''MTZ8MCxEPUssYz0wfHJ0WzIzNisoZj0wfGFbKGs9MTYrKGx8PTApfDApPj4yXSk+PjFdOyEoKDB8Yyk+KDB8cnRbZisyMzg+PjFdKSk7KWFbKDB8YVtmKzI2OD4+Ml0pKyhjPDwyKT4+Ml09MCxjPWMrMXwwLGY9MHxhW2s+PjJdO2ZvcihLWShsKSx3PTB8RHQobCk7dzspe2ZvcihQVShsLHcp''@;'; + put 'put ''LEE9MHx3MChsLHcpO0E7KXtmb3IoZj1BO2M9MHxhWzE3MisoMHxhW2YrMTY+PjJdKT4+Ml07KWY9Yztmb3IobT1BKy00OHwwO2M9ZistNDh8MCwhKCgwfGFbMjMyKygwfGFbMTYrKHA9MHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6YykrNDA+PjJdKT4+Ml0pPj4yXSk+PSgwfGFbMjMyKygwfGFb''@;'; + put 'put ''MTYrKDB8YVsoMj09KDMmYVtBPj4yXXwwKT9BOm0pKzQwPj4yXSk+PjJdKT4+Ml0pKTspUFUobCxwKSxmPTB8YVthWzE4MCsoMHxhWzE2KygwfGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpjKSs0MD4+Ml0pPj4yXSk+PjJdPj4yXTtBPTB8UzAobCxBKX13PTB8enQobCx3KX1mb3IoQT0wfHJ0WzIz''@;'; + put 'put ''NisoYz0wfGFbaz4+Ml0pPj4xXTs7KXtpZigoMHxBKT4oMHxydFtjKzIzOD4+MV0pKXtiPTEsTT1jO2JyZWFrfWlmKGM9MHxhWygwfGFbYysyNjg+PjJdKSsoQTw8Mik+PjJdLHc9MHxhWygwfGFbMTk2KygwfGFbMTYrKDB8QWEobCkpPj4yXSk+PjJdKSsoQTw8NikrND4+Ml0sKDB8YVt3Kyhh''@;'; + put 'put ''WzIzNisoMHxhWyhmPWMrMTZ8MCk+PjJdKT4+Ml08PDIpPj4yXSkhPSgwfGMpKXtHPTE3O2JyZWFrfW09MHxhWygwfGFbMTk2KygwfGFbMTYrKDB8QWEobCkpPj4yXSk+PjJdKSsoQTw8NikrND4+Ml0sYVsoZj0wfGFbMTk2KyhjPTB8YVtrPj4yXSk+PjJdKSsoQTw8NikrND4+Ml09bSsoYVsy''@;'; + put 'put ''MzYrKDB8YVsxNisoMHxhWygwfGFbYysyNjg+PjJdKSsoQTw8Mik+PjJdKT4+Ml0pPj4yXTw8MiksYz0tMSxtPTA7ZTpmb3IoOyEoKDB8bSk+PSgwfGFbZisoQTw8Nik+PjJdKSkmJihmPTB8YVsoMHxhW2YrKEE8PDYpKzQ+PjJdKSsobTw8Mik+PjJdLGYpOyl7cD0wfGFbZisxNj4+Ml07dDpk''@;'; + put 'put ''b3tpZigwfGZlW3ArMTU2Pj4wXSl7Zm9yKGY9MHxhW2FbcCsxNzI+PjJdPj4yXTs7KXtpZighZilicmVhayB0O2lmKCEocD0wfGFbMTE2KygwfGFbZisxNj4+Ml0pPj4yXSkpYnJlYWs7Zj1wfTB8TnIobCwwfGFbKDM9PSgzJmFbZj4+Ml18MCk/ZjpmKzQ4fDApKzQwPj4yXSkmJihjPSh3PTA9''@;'; + put 'put ''PSgwfE5yKGwsMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6ZistNDh8MCkrNDA+PjJdKSkpP2M6bSl9ZWxzZXtpZighKDB8TnIobCxmKSkpYnJlYWsgZTtjPW19fXdoaWxlKDApO209bSsxfDAsZj0wfGFbMTk2KygwfGFbaz4+Ml0pPj4yXX0tMT09KDB8YykmJihhW1I+PjJdPTB8dGkobCksYVtS''@;'; + put 'put ''KzQ+PjJdPUEsJHIoMCw4ODI3NyxSKSksYVsoMHxhWzE5Nisodz0wfGFbaz4+Ml0pPj4yXSkrKEE8PDYpPj4yXT1jKzEsQT1BKzF8MCxjPXd9Zm9yKDE3PT0oMHxHKSYmKFI9MHx0aShjKSxHPTB8YVsyMzYrKDB8YVtmPj4yXSk+PjJdLGFbRD4+Ml09UixhW0QrND4+Ml09RyxhW0QrOD4+Ml09''@;'; + put 'put ''QSwkcigxLDg4MjE5LEQpLHplKDE4NzAxNiwxKSk7ISgoMHxiKT4oMHxhW00rMTgwPj4yXSkpOylCVSgwfGFbKDB8YVtNKzE4ND4+Ml0pKyhiPDwyKT4+Ml0pLGI9YisxfDAsTT0wfGFbaz4+Ml07YWU9S30sZnVuY3Rpb24gVHNlKGwpe3ZhciBmLGM9MDt0NChsfD0wLDIpLGM9MHx2cig1Niks''@;'; + put 'put ''YVsxNDArKDB8YVsoZj1sKzE2fDApPj4yXSk+PjJdPWMsYz02NTUzNSYoMHxlcyhsLDB8c2kobCwwLDkxMzc0LDApLDIsMikpLHJ0WzE3NisoMHxhW2Y+PjJdKT4+MV09Yz0oNjU1MzUmYyk8MTA/YzoxMCxhWzQ3MTM3XT02NTUzNSZjLF9EKGwsMCxsKSxmdW5jdGlvbiBEc2UobCl7bHw9MDt2''@;'; + put 'put ''YXIgcCxjPTAsZj0wO3A9YWUsYWU9YWUrMTZ8MCxhWzQ2NDc0XT0xLGFbNDY0NzVdPTEsYVs0NjQ3N109LTEsYVs0NjQ3OV09NTAsX1syMzI0NV09MCxfWzIzMjQwXT0wLF9bMjMyNDFdPTEsYVs0NjQ3OF09MHxlcyhsLDB8c2kobCwwLDkxMDYxLDApLDYwMCwwKSxmPStNbChsLDB8c2kobCww''@;'; + put 'put ''LDkxMjAyLDApLC4zLDApLF9bMjMyNDJdPWYsX1sxMzcxXT1mLGM9K01sKGwsMHxzaShsLDAsOTEwNjksMCksLTEsMCksX1syMzI0M109YyxhWzQ2NDc2XT0xLGw9MHxUTihsLDIsMTg1OTA0KSxhWzQ2NDg4XT1sLGx8fCgkcigwLDkxMDcyLHApLGFbNDY0NzZdPTIpLGFbNDY1MDRdPSgwfEFy''@;'; + put 'put ''KDB8YVs0NjQ3OF0sMHxhWzQ2NDc5XSkpLzEwMHwwLF9bMjMyNDddPShmPStfWzIzMjQyXSkqZiwwfGFbNDY0NzRdJiYoKGM9K19bMjMyNDVdKTw9MCYmKF9bMjMyNDVdPWM9MypmKSxfWzIzMjQ2XT1jKmMpLGFlPXB9KGwpLGZ1bmN0aW9uIF9zZShsKXt2YXIgYz0wLGY9MCxwPTA7Zm9yKCRp''@;'; + put 'put ''KGx8PTAsMSwxMzc0NDcsMzA0LDEpLGZ1bmN0aW9uIGtsZShsKXt2YXIgcCxBLGIsYz0wLGY9MCxtPTAsdz0wO2ZvcihiPWFlLGFlPWFlKzE0NHwwLHA9YixBPTB8dkoobHw9MCksbT0wfGlzKDIzNTkyLDB8YVs0NTgxXSksaDAodz0wfGRzKGwsMTA4MDE0LDEpLDEzNzQ4MywyODAsMSksdXMo''@;'; + put 'put ''cCwxMjgsYisxNnwwKSxjPTB8RHQobCk7Yzspe2U6ZG97aWYoISgwfGZlWzExOCsoMHxhW2MrMTY+PjJdKT4+MF0pKWZvcihmPTB8dzAobCxjKTs7KXtpZighZilicmVhayBlO1NsZShmLHcscCxtLEEpLGY9MHxTMChsLGYpfX13aGlsZSgwKTtjPTB8enQobCxjKX1mb3IoQzIocCksTmwobSks''@;'; + put 'put ''Zj0wfEdvKHcpLGM9MHxEdCh3KTtjOyltPTB8enQodyxjKSxvaShsLGMpLGM9bTtDMSh3KSwwfGYmJihydFsodz0xMzYrKDB8YVtsKzE2Pj4yXSl8MCk+PjFdPTF8cnRbdz4+MV0pLE5sKEEpLGFlPWJ9KGwpLGM9MHx2cig0KygoMHxHbyhsKSk8PDIpfDApLGFbMTUyKygwfGFbKHA9bCsxNnww''@;'; + put 'put ''KT4+Ml0pPj4yXT1jLGM9MCxmPTB8RHQobCk7ZjspQ3NlKGYpLGFbKDB8YVsxNTIrKDB8YVtwPj4yXSk+PjJdKSsoYzw8Mik+PjJdPWYsYVsxMjArKDB8YVtmKzE2Pj4yXSk+PjJdPWMsYz1jKzF8MCxmPTB8enQobCxmKTtmb3IocD0wfHNpKGwsMiw5MjQ5MywwKSxmPTB8RHQobCk7Zjspe2Zv''@;'; + put 'put ''cihjPTB8dzAobCxmKTtjOylrc2UoYyxwKSxjPTB8UzAobCxjKTtmPTB8enQobCxmKX0hZnVuY3Rpb24gU3NlKGwpe3ZhciBrLE0sUixHLEssYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLEQ9MCxwZT0wO0s9YWUsYWU9YWUrMzJ8MCxHPUsrMTZ8MCxSPUssaz1LKzI0fDAsTT0wfHNpKGx8''@;'; + put 'put ''PTAsMSwxMDI2MjMsMCk7ZTpkb3tpZigwfE0pZm9yKEQ9MHxzaShsLDEsOTA2NjAsMCksQT1sKzE2fDAsdz0wPT0oMHxEKSxiPTB8YVsxNTcxMl0sbT0wOzspe2lmKCEoZj0wfGFbKDB8YVsxNTIrKDB8YVtBPj4yXSk+PjJdKSsobTw8Mik+PjJdKSlicmVhayBlO2w9MHxIbyhmLE0pO2Rve2lm''@;'; + put 'put ''KDB8ZmVbbD4+MF0pe2lmKGM9MHxhWzEzMisoMHxhWyhwPWYrMTZ8MCk+PjJdKT4+Ml0sZmVbaz4+MF09MCxhW1I+PjJdPWMsYVtSKzQ+PjJdPWMrOCxhW1IrOD4+Ml09aywoMHxpbChsLDEwMTc0OSxSKSk8PTEpe2FbRz4+Ml09MHx0aShmKSxhW0crND4+Ml09bCxUMChiLDkwNjY0LEcpO2Jy''@;'; + put 'put ''ZWFrfXQ6ZG97aWYoK19bMjMyOTNdPjApZm9yKGw9MDs7KXtpZigyPT0oMHxsKSlicmVhayB0O19bKHBlPWMrKGw8PDMpfDApPj4zXT0rX1twZT4+M10vK19bMjMyOTNdLGw9bCsxfDB9fXdoaWxlKDApO2lmKGZlWzExOSsobD0wfGFbcD4+Ml0pPj4wXT0xLDMzIT0oMHxmZVtrPj4wXSkpe2lm''@;'; + put 'put ''KHd8fCEoKDB8ZTEoMHxIbyhmLEQpKSk8PDI0Pj4yNCkpYnJlYWs7bD0wfGFbcD4+Ml19ZmVbbCsxMTk+PjBdPTN9fXdoaWxlKDApO209bSsxfDB9fXdoaWxlKDApO2FlPUt9KGwpfShsKX0sZnVuY3Rpb24gZVYobCl7dmFyIGMsZjtjPWFlLGFlPWFlKzY0fDAsZnVuY3Rpb24geHNlKGwsYyl7''@;'; + put 'put ''YVs0KyhjfD0wKT4+Ml09MHxzaShsfD0wLDAsOTA3MTYsMCksYVtjKzg+PjJdPTB8c2kobCwwLDE0MTExNiwwKSxhW2MrMTI+PjJdPTB8c2kobCwwLDE0MTA0OCwwKSxhW2M+PjJdPWwsYVtjKzE2Pj4yXT0wLGFbYyszNj4+Ml09MHxhNyhsLDIsNCxjKzIwfDApfShsfD0wLGY9YyksdFYobCxm''@;'; + put 'put ''KSxmdW5jdGlvbiBsWChsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2ZvcihjPTB8RHQobHw9MCk7YzspMHxmZVsxMTgrKGY9MHxhW2MrMTY+PjJdKT4+MF0mJihtPTM2Kih3PStfWzI0KyhiPTB8YVsxNDArKDB8YVsxNisoMHxhW2YrMjEyPj4yXSk+PjJdKT4+Ml0pPj4zXS0r''@;'; + put 'put ''X1tiKzg+PjNdKSxwPTM2KihBPStfW2IrMzI+PjNdLStfW2IrMTY+PjNdKSxfWyhiPTB8YVtmKzEzMj4+Ml0pPj4zXT0uNSp3LF9bYis4Pj4zXT0uNSpBLF9bZiszMj4+M109dyxfW2YrNDA+PjNdPUEsX1tmKzk2Pj4zXT1tLF9bZis4OD4+M109bSxfW2YrODA+PjNdPTcyKkEsX1soZj0wfGFb''@;'; + put 'put ''NDQrKDB8YVtmKzEyPj4yXSk+PjJdKT4+M109bSxfW2YrOD4+M109cCxfW2YrMTY+PjNdPUE9LW0sX1tmKzI0Pj4zXT1wLF9bZiszMj4+M109QSxfW2YrNDA+PjNdPXA9LXAsX1tmKzQ4Pj4zXT1tLF9bZis1Nj4+M109cCksYz0wfHp0KGwsYyl9KGwpLHNYKGwsbCksQ0QobCksYWU9Y30sZnVu''@;'; + put 'put ''Y3Rpb24gUjllKGwpe3ZhciBmLHAsbSx3LGM9MCxBPTA7aWYodz1hZSxhZT1hZSsxNnwwLG09dyxjPTY1NTM1JihwPTE0JnJ0WzEzNisoMHxhWyhmPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXSksKDY1NTM1JnApPjgpe3A8PDE2Pj4xNj09MTI/MHxSSihsLDIyLDEwKSYmKGFbNDcxMzRdPTIsQT01''@;'; + put 'put ''KTpBPTU7ZG97aWYoNT09KDB8QSkpe2lmKDEmcnRbMTM2KygwfGFbZj4+Ml0pPj4xXSl7JHIoMCw5MDk5OCxtKSxjPTI7YnJlYWt9dkQobCxjKTticmVha319d2hpbGUoMCk7YVs0NzEzNF09MH0oMHxhWzQ3MTM4XSk8MSYmdkQobCxjKSxhZT13fSxGdCxmdW5jdGlvbiBYVihsKXtGdCgwfGFb''@;'; + put 'put ''OCsobHw9MCk+PjJdKSxGdChsKX0sVDUsU3JlLGZ1bmN0aW9uIFpyZShsKXs3PT0oMHxhWyhsfD0wKT4+Ml0pJiZ2eSgwfGFbbCsxMTI+PjJdLDEpfSxmdW5jdGlvbiBxdShsKXtsfD0wO3ZhciBjPTA7MHxhWzQ3Mzc1XXx8KGM9MHx2cig0KyhsPDwyKXwwKSxhWzQ3Mzc1XT1jLGFbYz4+Ml09''@;'; + put 'put ''MTg5NTA0LGFbNDczODZdPWwpLGFbNDczODddPTB9LGZ1bmN0aW9uIG1SKGwpe3ZhciBmLGM9MCxwPTA7Zm9yKGFbKGx8PTApPj4yXT1jPTB8YVtsKzg+PjJdLGFbbCs0Pj4yXT1hW2wrMTI+PjJdLGY9bCsxNnwwLGw9MDshKCgwfGwpPj0oMHxjKSk7KXJ0WyhwPTB8YVtmPj4yXSkrKDQwKmx8''@;'; + put 'put ''MCkrMTY+PjFdPTB8cnRbcCsoNDAqbHwwKSsxOD4+MV0sbD1sKzF8MDtmb3IoYz1jKzJ8MDshKCgwfGwpPj0oMHxjKSk7KXJ0WygwfGFbZj4+Ml0pKyg0MCpsfDApKzE2Pj4xXT0wLGw9bCsxfDB9LGZ1bmN0aW9uIGFSKGwpe3ZhciBjLGY7c1IoMHxhWyhmPTIwKyhsfD0wKXwwKT4+Ml0pLHNS''@;'; + put 'put ''KDB8YVsoYz1sKzI0fDApPj4yXSksY2IoMHxhW2Y+PjJdKSxjYigwfGFbYz4+Ml0pLFljKDB8YVtmPj4yXSxsKSxZYygwfGFbYz4+Ml0sbCksaW0oMHxhW2Y+PjJdKSxpbSgwfGFbYz4+Ml0pfSxBeSxmdW5jdGlvbiByQihsKXt2YXIgYyxmO0Z0KDB8YVszNisoMHxhWyhmPTgrKGx8PTApfDAp''@;'; + put 'put ''Pj4yXSk+PjJdKSxGdCgwfGFbMzYrKDB8YVsoYz1sKzEyfDApPj4yXSk+PjJdKSxGdCgwfGFbZj4+Ml0pLEZ0KDB8YVtjPj4yXSksZnVuY3Rpb24gek0obCl7dmFyIGM7RnQoMHxhWzI4KygwfGFbKGM9MTYrKGx8PTApfDApPj4yXSk+PjJdKSxGdCgwfGFbYz4+Ml0pLEZ0KDB8YVtsKzIwPj4y''@;'; + put 'put ''XSksRnQobCl9KDB8YVtsKzE2Pj4yXSksTmwoMHxhW2wrMjA+PjJdKSxObCgwfGFbbCsyND4+Ml0pLEZ0KGwpfSxVRSxmdW5jdGlvbiBmRyhsKXt2YXIgZixwLHcsYz0wLG09MCxBPTA7dz1hZSxhZT1hZSs2NHwwLHA9dys0OHwwLEE9dyszMnwwLG09dysxNnwwLGY9dywoMHxhWzQ3NTE2XSk8''@;'; + put 'put ''KDB8KGx8PTApKSYmKChjPTB8YVs0NzUxMF0pPyhtPTB8VWEoYyxsPDwzKSxhWzQ3NTEwXT1tLG18fChtPTB8YVsxNTcxMl0sYVtBPj4yXT0xNDE4NTgsYVtBKzQ+PjJdPTUzMyxhW0ErOD4+Ml09MTQyMTQ3LFQwKG0sMTQxODM5LEEpLHplKDE4OTg1NiwxKSksQT0wfFVhKDB8YVs0NzUxMV0s''@;'; + put 'put ''bDw8MiksYVs0NzUxMV09QSxBfHwoQT0wfGFbMTU3MTJdLGFbcD4+Ml09MTQxODU4LGFbcCs0Pj4yXT01MzksYVtwKzg+PjJdPTE0MjE2NyxUMChBLDE0MTgzOSxwKSx6ZSgxODk4NTYsMSkpKTooQT0wfEIwKGw8PDMpLGFbNDc1MTBdPUEsQXx8KEE9MHxhWzE1NzEyXSxhW2Y+PjJdPTE0MTg1''@;'; + put 'put ''OCxhW2YrND4+Ml09NTIzLGFbZis4Pj4yXT0xNDIxMDgsVDAoQSwxNDE4MzksZiksemUoMTg5ODU2LDEpKSxBPTB8QjAobDw8MiksYVs0NzUxMV09QSxBfHwoQT0wfGFbMTU3MTJdLGFbbT4+Ml09MTQxODU4LGFbbSs0Pj4yXT01MjcsYVttKzg+PjJdPTE0MjEyNyxUMChBLDE0MTgzOSxtKSx6''@;'; + put 'put ''ZSgxODk4NTYsMSkpKSxhWzQ3NTE2XT1sKSxhZT13fSxmdW5jdGlvbiBuQShsKXt2YXIgbSxjPTAsZj0wLHA9MDttPWFlLGFlPWFlKzMyfDAscD1tKzE2fDAsZj1tLCgwfGFbNDc1MDZdKTwoMHwobHw9MCkpJiYoKGM9MHxhWzQ3NTA1XSk/KGY9MHxVYShjLGw8PDIpLGFbNDc1MDVdPWYsZnx8''@;'; + put 'put ''KGY9MHxhWzE1NzEyXSxhW3A+PjJdPTE0MTg1OCxhW3ArND4+Ml09NTgwLGFbcCs4Pj4yXT0xNDIwODUsVDAoZiwxNDE4MzkscCksemUoMTg5ODU2LDEpKSk6KHA9MHxCMChsPDwyKSxhWzQ3NTA1XT1wLHB8fChwPTB8YVsxNTcxMl0sYVtmPj4yXT0xNDE4NTgsYVtmKzQ+PjJdPTU3MyxhW2Yr''@;'; + put 'put ''OD4+Ml09MTQyMDYzLFQwKHAsMTQxODM5LGYpLHplKDE4OTg1NiwxKSkpLGFbNDc1MDZdPWwpLGFlPW19LGZ1bmN0aW9uIGRHKGwpe3ZhciBtLGM9MCxmPTAscD0wO209YWUsYWU9YWUrMzJ8MCxwPW0rMTZ8MCxmPW0sKDB8YVs0NzUxNF0pPCgwfChsfD0wKSkmJigoYz0wfGFbNDc1MTJdKT8o''@;'; + put 'put ''Zj0wfFVhKGMsbDw8NCksYVs0NzUxMl09ZixmfHwoZj0wfGFbMTU3MTJdLGFbcD4+Ml09MTQxODU4LGFbcCs0Pj4yXT01OTksYVtwKzg+PjJdPTE0MTk4NCxUMChmLDE0MTgzOSxwKSx6ZSgxODk4NTYsMSkpKToocD0wfEIwKGw8PDQpLGFbNDc1MTJdPXAscHx8KHA9MHxhWzE1NzEyXSxhW2Y+''@;'; + put 'put ''PjJdPTE0MTg1OCxhW2YrND4+Ml09NTkzLGFbZis4Pj4yXT0xNDE5NjYsVDAocCwxNDE4MzksZiksemUoMTg5ODU2LDEpKSksYVs0NzUxNF09bCksYWU9bX0sZjgsZjgsZjgsZjgsZjgsZjgsZjgsZjgsZjhdLEdzPVtJcyxmdW5jdGlvbiBQVyhsLGMpe2x8PTA7dmFyIHcsayxNLGY9MCxwPTAs''@;'; + put 'put ''bT0wLEE9MCxiPTAsRD0wO009YWUsYWU9YWUrMzJ8MCx3PU0sQT1NKzIwfDAsaz0zMisoY3w9MCl8MDtlOmRve3N3aXRjaCgwfGFbaz4+Ml0pe2Nhc2UgNTpmb3IoZj0wOzspe2lmKHA9MHxhWzEyNzI0KyhmPDwyKT4+Ml0sOD09KDB8ZikpYnJlYWsgZTtpZigoMHxmZVtwPj4wXSk9PSgwfGZl''@;'; + put 'put ''WyhtPTB8YVtjPj4yXSk+PjBdKSYmMD09KDB8amkocCxtKSkpe2I9MTA7YnJlYWsgZX1mPWYrMXwwfWNhc2UgMTpmPTMyKygwfEZXKEEsMHxKdFtjPj4wXSwwfEp0WyhwPWMrMXwwKT4+MF0sMHxKdFsobT1jKzJ8MCk+PjBdKSl8MCwwfGFbQT4+Ml0mJihEPTB8SnRbYz4+MF0sQT0wfEp0W3A+''@;'; + put 'put ''PjBdLGI9MHxKdFttPj4wXSxhW3c+PjJdPTAsYVt3KzQ+PjJdPWYsYVt3Kzg+PjJdPUQsYVt3KzEyPj4yXT1BLGFbdysxNj4+Ml09YixPcihsLDY4NDkyLHcpKSxiPTEwO2JyZWFrO2RlZmF1bHQ6UHIoMTM4Mzk0LDY3ODg5LDE2Myw2NzkyMCl9fXdoaWxlKDApOzEwPT0oMHxiKSYmKGFbYz4+''@;'; + put 'put ''Ml09ZiksYVtrPj4yXT02LGFlPU19LGZ1bmN0aW9uIGpUKGwsYyl7dmFyIGYscDtsfD0wLGY9YWUsYWU9YWUrMTZ8MCxhWyhwPWYpPj4yXT1jfD0wLE9yKGwsNjgzMjUscCksYWU9Zn0sZnVuY3Rpb24gR1QobCxjKXtsfD0wO3ZhciB3LGssTSxmPTAscD0wLG09MCxBPTAsYj0wLEQ9MDtNPWFl''@;'; + put 'put ''LGFlPWFlKzMyfDAsdz1NLEE9TSsyMHwwLGs9MzIrKGN8PTApfDA7ZTpkb3tzd2l0Y2goMHxhW2s+PjJdKXtjYXNlIDU6Zm9yKGY9MDs7KXtpZihwPTB8YVsxMjcyNCsoZjw8Mik+PjJdLDg9PSgwfGYpKWJyZWFrIGU7aWYoKDB8ZmVbcD4+MF0pPT0oMHxmZVsobT0wfGFbYz4+Ml0pPj4wXSkm''@;'; + put 'put ''JjA9PSgwfGppKHAsbSkpKXtiPTEwO2JyZWFrIGV9Zj1mKzF8MH1jYXNlIDE6Zj0zMisoMHxHVyhBLDB8SnRbYz4+MF0sMHxKdFsocD1jKzF8MCk+PjBdLDB8SnRbKG09YysyfDApPj4wXSkpfDAsMHxhW0E+PjJdJiYoRD0wfEp0W2M+PjBdLEE9MHxKdFtwPj4wXSxiPTB8SnRbbT4+MF0sYVt3''@;'; + put 'put ''Pj4yXT0wLGFbdys0Pj4yXT1mLGFbdys4Pj4yXT1ELGFbdysxMj4+Ml09QSxhW3crMTY+PjJdPWIsT3IobCw2ODQ5Mix3KSksYj0xMDticmVhaztjYXNlIDA6Zj0wLGI9MTA7YnJlYWs7ZGVmYXVsdDpQcigxMzgzOTQsNjg1MTMsMTY4LDY4NTMyKX19d2hpbGUoMCk7MTA9PSgwfGIpJiYoYVtj''@;'; + put 'put ''Pj4yXT1mKSxhW2s+PjJdPTYsYWU9TX0sZnVuY3Rpb24gQ2llKGwsYyl7dmFyIGYscDtsfD0wLGY9YWUsYWU9YWUrMTZ8MCxhWyhwPWYpPj4yXT1jfD0wLE9yKGwsNjgzMjUscCksYWU9Zn0sZnVuY3Rpb24gT2llKGwsYyl7Y3w9MCxFbihsfD0wLDY4ODQ5KSxFbihsLGMpLEVuKGwsMTUzNTk5''@;'; + put 'put ''KX0sZnVuY3Rpb24gYjdlKGwsYyl7Y3w9MCxFbihsfD0wLDczMzk4KSxFbihsLDB8TTEoYykpLEVuKGwsNzU0NTgpfSxmdW5jdGlvbiBJN2UobCxjKXtjfD0wLEVuKGx8PTAsNzUxMzgpLEVuKGwsMHxZVChjKSksRW4obCwxNTM1OTkpfSxmdW5jdGlvbiBIN2UobCxjKXtjfD0wLEVuKGx8PTAs''@;'; + put 'put ''NzU0NDYpLEVuKGwsMHxuaShjKSksRW4obCw3NTQ1OCl9LGZ1bmN0aW9uIEdpZShsLGMpe3ZhciBmLHA7bHw9MCxmPWFlLGFlPWFlKzE2fDAsYVsocD1mKT4+Ml09Y3w9MCxPcihsLDc4MjQyLHApLGFlPWZ9LGZ1bmN0aW9uICRUKGwsYyl7dmFyIGYscDtsfD0wLGN8PTAsZj1hZSxhZT1hZSsx''@;'; + put 'put ''NnwwLGFbKHA9Zik+PjJdPTgxMDk0LGFbcCs0Pj4yXT1jLE9yKGwsODEwODcscCksYWU9Zn0sZnVuY3Rpb24gWWUobCxjKXtGdChjfD0wKX0sZnVuY3Rpb24gR2FlKGwsYyl7Y3w9MDt2YXIgayxNLHBlLGdlLGJlLE9lLExlLFJlLFdlLG90LFN0LGt0LEV0LFp0LGN0LGJ0LGFuLGY9MCxwPTAs''@;'; + put 'put ''bT0wLEE9MCx3PTAsYj0wLEQ9MCxSPTAsRz0wLEs9MCxIZT0wLFZlPTAscWU9MCxudD0wLGx0PTAsU249MCxIbj0wO2FuPWFlLGFlPWFlKzQ4fDAsU3Q9YW4rMjR8MCxvdD1hbisxNnwwLFJlPWFuKzh8MCxMZT1hbixadD1hbiszMnwwLHc9YW4rMjh8MCwwPT0oMHwoZj0wfGFbKGJ0PTIwOCso''@;'; + put 'put ''Y3Q9MHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSkpJiYwPT0oMSZydFtjdCsyNjA+PjFdKT9sdD0wOm50PTQsND09KDB8bnQpJiYoNCZhW2wrMTUyPj4yXXx8RzEobCxmLDB8YVtjdCsyMjg+PjJdLDB8YVtjdCsyNDQ+PjJdLDB8YVtjdCsyMTI+PjJdKSxsdD0xKSxXZT0wfGFbNDQrKEQ9MHxh''@;'; + put 'put ''WzEyKyhmPTB8YVsoa3Q9YysxNnwwKT4+Ml0pPj4yXSk+PjJdLEV0PTB8YVtEKzg+PjJdLEQ9MHxhW0QrND4+Ml0sKDB8YVs0NzI4NV0pPCgwfEV0KSYmKGFbNDcyODVdPWY9RXQrNXwwLGY9KHA9MHxhWzQ3Mjg2XSk/MHxWMChwLGY8PDQpOjB8UW4oZjw8NCksYVs0NzI4Nl09ZixmPTB8YVtr''@;'; + put 'put ''dD4+Ml0pLGFbKHFlPTU2KygwfGFbZisxMDQ+PjJdKXwwKT4+Ml09YVsoZj1mKzE2fDApPj4yXSxhW3FlKzQ+PjJdPWFbZis0Pj4yXSxhW3FlKzg+PjJdPWFbZis4Pj4yXSxhW3FlKzEyPj4yXT1hW2YrMTI+PjJdLEhlPSgrX1s5NisocWU9MHxhW2t0Pj4yXSk+PjNdKyArX1txZSs4OD4+M10p''@;'; + put 'put ''LysoMHx+figoSGU9NzIqK19bcWUrMzI+PjNdKSsoSGU+PTA/LjU6LS41KSkpLFZlPStfW3FlKzgwPj4zXS8rKDB8fn4oKFZlPTcyKitfW3FlKzQwPj4zXSkrKFZlPj0wPy41Oi0uNSkpKSxxZT0wfFhRKGwsYyksYVtadD4+Ml09MCxmPTB8SnRbMTE3KygwfGFba3Q+PjJdKT4+MF07ZG97aWYo''@;'; + put 'put ''MSZmKW1hKGwsUj0wfEJhKGMsMCwxMDYyNDApKSxobChsLDB8QmEoYywwLDEwNjI0OCkpLHA9MCxmPTE7ZWxzZXtpZigyJmZ8MCl7bWEobCxSPTB8QmEoYywwLDEwNjI1NikpLGhsKGwsMHxCYShjLDAsMTA2MjY0KSkscD0wLGY9MTticmVha31pZig4JmZ8MCl7bWEobCxSPTB8QmEoYywwLDEw''@;'; + put 'put ''NjI3MikpLGhsKGwsMHxCYShjLDAsMTA2MjgwKSkscD0wLGY9MTticmVha31pZig0JmZ8MCl7bWEobCxSPTB8QmEoYywwLDEwNjI4OCkpLGhsKGwsMHxCYShjLDAsMTA2Mjk2KSkscD0wLGY9MTticmVha30xJnFlPygwfGxrKHA9MHxxSChjKSxadCx3KSk8PDI0Pj4yND8oaGwobCwwfGFbWnQ+''@;'; + put 'put ''PjJdKSxVZihsLChmPTB8YVtadCs0Pj4yXSl8fDEzNzMxNCxBPTB8ZXMoYywwfGFbNDcxNzNdLDAsMCksbT0ram5bdz4+Ml0pLGY9KDImcWUpPj4+MXwyKTooaGwobCxwKSxmPTEpOjU3NiZxZT8ocD0wfHFIKGMpLGY9MSk6KHA9MCxmPTApLFI9MHxreShsLGMpfX13aGlsZSgwKTtmb3IoMHxm''@;'; + put 'put ''ZVsxMisoQT0wfGFbOCsoMHxhW2t0Pj4yXSk+PjJdKT4+MF0/OTk9PSgwfGZlWyhBPTB8YVtBPj4yXSk+PjBdKT8oQT0wPT0oMHxqaShBLDEwNTUxOSkpLG50PTMzKTpLPTE6KEE9MSxudD0zMyksMzM9PSgwfG50KSYmKDAhPSgwfEQpfGY8PDI0Pj4yND09MHwoQV49MSk/Sz1BOihtYShsLDEz''@;'; + put 'put ''NzM3OSksRD0xLEs9MCkpLHBlPSgwfEV0KTwzLGdlPTAhPSg1MTImcWV8MCksT2U9MD09KDgmcWV8MCksYmU9MD09KDY0JnFlfDApLGs9MD09KDEwMjQmcWV8MCksTT0wPT0oMjEzMDcwNjQ0NCZxZXwwKSxHPTA7ISgoMHxHKT49KDB8RCkpOyl7Zm9yKHc9MHxBcihHLEV0KSxiPTB8YVs0NzI4''@;'; + put 'put ''Nl0sQT0wOyEoKDB8QSk+PSgwfEV0KSk7KW09K19bV2UrKChIbj1BK3d8MCk8PDQpKzg+PjNdLF9bYisoQTw8NCk+PjNdPStfWzE2KyhTbj0wfGFba3Q+PjJdKT4+M10rICtfW1dlKyhIbjw8NCk+PjNdKkhlLF9bYisoQTw8NCkrOD4+M109K19bU24rMjQ+PjNdK20qVmUsQT1BKzF8MDtkb3tp''@;'; + put 'put ''ZighcGUpe2lmKCFiZSl7MD09KDB8RykmJigwfGhGKGwsYixwLDEpKT4xJiYoYVtSZT4+Ml09MHx0aShjKSwkcigzLDEwNjMwNCxSZSkpLGthKGwsMHxhWzQ3Mjg2XSxFdCwwKTticmVha31pZighayl7bWEobCwxMzczNzkpLGthKGwsMHxhWzQ3Mjg2XSxFdCwyNTUmZiksbWEobCxSKSxXbyhs''@;'; + put 'put ''LDMyKygwfGFbNDcyODZdKXwwLDIpO2JyZWFrfWlmKGYmPTI1NSxNKXtrYShsLGIsRXQsZik7YnJlYWt9SzUobCxiLEV0LHFlLGYpO2JyZWFrfWdlJjA9PSgwfEcpJiYwIT0oMHwkcyhwLDU4KSkmJigoMHxoVyhsLGIscCkpPjEmJihhW0xlPj4yXT0wfHRpKGMpLCRyKDMsMTA2MzA0LExlKSks''@;'; + put 'put ''Zj0wKSwkdShsLDB8YVs0NzI4Nl0sRXQsMjU1JmYpLE9lfHxlTihsLGMpfXdoaWxlKDApO0c9RysxfDAsZj0wfWlmKDB8ZmVbMTIrKEE9MHxhWzgrKDB8YVtrdD4+Ml0pPj4yXSk+PjBdPzk5PT0oMHxmZVsoQT0wfGFbQT4+Ml0pPj4wXSkmJjA9PSgwfGppKEEsMTA1NTE5KSk/MHwoQT0wfExp''@;'; + put 'put ''KGMsMTA1NTI2KSkmJjB8ZmVbQT4+MF0mJihiPUEsbnQ9NjUpOihiPUEsbnQ9NjUpOjB8KEE9MHxMaShjLDEwOTAyNSkpJiYwfGZlW0E+PjBdJiYoYj1BLG50PTY1KSw2NT09KDB8bnQpKXtmb3Iodz0wfGFbNDcyODZdLEE9MDshKCgwfEEpPj0oMHxFdCkpOyltPStfW1dlKyhBPDw0KSs4Pj4z''@;'; + put 'put ''XSxfW3crKEE8PDQpPj4zXT0rX1sxNisoSG49MHxhW2t0Pj4yXSk+PjNdKyArX1tXZSsoQTw8NCk+PjNdKkhlLF9bdysoQTw8NCkrOD4+M109K19bSG4rMjQ+PjNdK20qVmUsQT1BKzF8MDtBPTI1NSZmO2Rve2lmKCEoS3xmPDwyND4+MjQ9PTApKXtpZihwZSl7aWYoZ2UmMD09KDB8RykmJjAh''@;'; + put 'put ''PSgwfCRzKHAsNTgpKSYmKCgwfGhXKGwsdyxwKSk+MSYmKGFbb3Q+PjJdPTB8dGkoYyksJHIoMywxMDYzMDQsb3QpKSxmPTApLCR1KGwsMHxhWzQ3Mjg2XSxFdCwyNTUmZiksT2UpYnJlYWs7ZU4obCxjKTticmVha31pZihiZSl7aWYoMTImcWUpe0s1KGwsdyxFdCxxZSxBKTticmVha31rYShs''@;'; + put 'put ''LHcsRXQsQSk7YnJlYWt9KDB8aEYobCx3LHAsMSkpPjEmJihhW1N0Pj4yXT0wfHRpKGMpLCRyKDMsMTA2MzA0LFN0KSksa2EobCwwfGFbNDcyODZdLEV0LDApO2JyZWFrfX13aGlsZSgwKTtRTShsLGIsSG49MHxhWzQ3Mjg2XSxFdCxmLDB8djIoYywwfGFbNDcxNjZdLDEzNzMwOCkpfUZ0KDB8''@;'; + put 'put ''YVtadD4+Ml0pLGI3KGwsMTAsMHxhWzEwNCsoMHxhW2t0Pj4yXSk+PjJdKSxsdCYmKDQmYVtsKzE1Mj4+Ml18MCYmRzEobCwwfGFbYnQ+PjJdLDB8YVtjdCsyMjg+PjJdLDB8YVtjdCsyNDQ+PjJdLDB8YVtjdCsyMTI+PjJdKSxFaChsKSksYWU9YW59LGZ1bmN0aW9uIHRsZShsLGMpe2N8PTA7''@;'; + put 'put ''dmFyIGIsayxNLFIsRyxLLGY9MCxwPTAsbT0wLEE9MCx3PTAsRD0wLHBlPTAsZ2U9MCxiZT0wO0s9YWUsYWU9YWUrMTZ8MCxtPUssMD09KDB8KGY9MHxhWyhHPTIwOCsoUj0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdKSkmJjA9PSgxJnJ0W1IrMjYwPj4xXSk/RD0wOig0JmFbbCsxNTI+PjJd''@;'; + put 'put ''fHxHMShsLGYsMHxhW1IrMjI4Pj4yXSwwfGFbUisyNDQ+PjJdLDB8YVtSKzIxMj4+Ml0pLEQ9MSksaz0wfGFbNDQrKEE9MHxhWzEyKygwfGFbKGI9YysxNnwwKT4+Ml0pPj4yXSk+PjJdLE09MHxhW0ErOD4+Ml0sQT0wfGFbQSs0Pj4yXSwoMHxhWzQ3Mjk4XSk8KDB8TSkmJihhWzQ3Mjk4XT1m''@;'; + put 'put ''PU0rMnwwLGY9KHA9MHxhWzQ3Mjk5XSk/MHxWMChwLGY8PDQpOjB8UW4oZjw8NCksYVs0NzI5OV09ZiksVUkoYyxtKSxkMihsLDMyJmFbbT4+Ml0/MjIwMTY6MjIwMjApLDB8KGY9MHxhWzQ3MTcyXSkmJnhoKGwsK01sKGMsZiwxLDApKSxmPTB8SnRbMTE3KygwfGFbYj4+Ml0pPj4wXTtkb3tp''@;'; + put 'put ''ZighKDEmZikpe2lmKDImZnwwKXttYShsLDB8QmEoYywwLDEwNjI1NikpLGhsKGwsZj0wfEJhKGMsMCwxMDYyNjQpKTticmVha31pZig4JmZ8MCl7bWEobCwwfEJhKGMsMCwxMDYyNzIpKSxobChsLGY9MHxCYShjLDAsMTA2MjgwKSk7YnJlYWt9aWYoNCZmKXttYShsLDB8QmEoYywwLDEwNjI4''@;'; + put 'put ''OCkpLGhsKGwsZj0wfEJhKGMsMCwxMDYyOTYpKTticmVha31obChsLGY9MHxLUShjLDEzNzMxNCkpLGt5KGwsYyk7YnJlYWt9bWEobCwwfEJhKGMsMCwxMDYyNDApKSxobChsLGY9MHxCYShjLDAsMTA2MjQ4KSl9d2hpbGUoMCk7Zm9yKEE/cD1BOigwfGZlW2Y+PjBdJiZtYShsLGYpLHA9MSks''@;'; + put 'put ''bT0xLGM9MDshKCgwfGMpPj0oMHxwKSk7KXtmb3IoQT0wfEFyKGMsTSksdz0wfGFbNDcyOTldLGY9MDshKCgwfGYpPj0oMHxNKSk7KXBlPStfW2srKChiZT1mK0F8MCk8PDQpKzg+PjNdLF9bdysoZjw8NCk+PjNdPStfWzE2KyhnZT0wfGFbYj4+Ml0pPj4zXSsgK19baysoYmU8PDQpPj4zXSxf''@;'; + put 'put ''W3crKGY8PDQpKzg+PjNdPStfW2dlKzI0Pj4zXStwZSxmPWYrMXwwOyR1KGwsdyxNLG0pLG09MCxjPWMrMXwwfUQmJig0JmFbbCsxNTI+PjJdfDAmJkcxKGwsMHxhW0c+PjJdLDB8YVtSKzIyOD4+Ml0sMHxhW1IrMjQ0Pj4yXSwwfGFbUisyMTI+PjJdKSxFaChsKSksYWU9S30sZnVuY3Rpb24g''@;'; + put 'put ''S2FlKGwsYyl7dmFyIGIsayxSLEcsSyxwZSxiZSxPZSxnZSxmPTAscD0wLG09MCxBPTAsdz0wLE09MCxEPTA7YmU9YWUsYWU9YWUrMTQ0fDAsYj1iZSs5NnwwLFI9YmUsRz1iZSsxMjh8MCxnZT0oZj0wfGFbKHBlPTIwOCsoSz0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdKT8xOjAhPSgxJnJ0''@;'; + put 'put ''W0srMjYwPj4xXSksYVsoTT1iZSs2NHwwKT4+Ml09YVsobT0xNisoaz0wfGFbMTIrKEQ9MHxhWyh3PTE2KyhjfD0wKXwwKT4+Ml0pPj4yXSl8MCk+PjJdLGFbTSs0Pj4yXT1hW20rND4+Ml0sYVtNKzg+PjJdPWFbbSs4Pj4yXSxhW00rMTI+PjJdPWFbbSsxMj4+Ml0sYVtNKzE2Pj4yXT1hW20r''@;'; + put 'put ''MTY+PjJdLGFbTSsyMD4+Ml09YVttKzIwPj4yXSxhW00rMjQ+PjJdPWFbbSsyND4+Ml0sYVtNKzI4Pj4yXT1hW20rMjg+PjJdLF9bTT4+M109K19bTT4+M10rKE9lPStfW0QrMTY+PjNdKSxBPStfW0QrMjQ+PjNdLF9bKEQ9TSs4fDApPj4zXT0rX1tEPj4zXStBLF9bKEQ9TSsxNnwwKT4+M109''@;'; + put 'put ''K19bRD4+M10rT2UsX1sobT1NKzI0fDApPj4zXT0rX1ttPj4zXStBLGdlJiYwPT0oNCZhW2wrMTUyPj4yXXwwKSYmRzEobCxmLDB8YVtLKzIyOD4+Ml0sMHxhW0srMjQ0Pj4yXSwwfGFbSysyMTI+PjJdKSxmPTB8WFEobCxjKSxreShsLGMpLGFbRz4+Ml09MCwxJmY/KDB8bGsocD0wfHFIKGMp''@;'; + put 'put ''LEcsYikpPDwyND4+MjQ/KGhsKGwsMHxhW0c+PjJdKSxVZihsLChwPTB8YVtHKzQ+PjJdKXx8MTM3MzE0LG09MHxlcyhjLDB8YVs0NzE3M10sMCwwKSxBPStqbltiPj4yXSkscD1mPj4+MSYxfDIpOihobChsLHApLHA9MSk6cD0wLDc3PT0oMHxmZVsobT0wfGFbYVs4KygwfGFbdz4+Ml0pPj4y''@;'; + put 'put ''XT4+Ml0pPj4wXSkmJihmPSh3PTA9PSgwfGppKG0sMTA2MjI3KSkpPzR8ZjpmKSwyMTMwNzA2NDQ0JmY/KGFbUj4+Ml09YVtNPj4yXSxhW1IrND4+Ml09YVtNKzQ+PjJdLGFbUis4Pj4yXT1hW00rOD4+Ml0sYVtSKzEyPj4yXT1hW00rMTI+PjJdLGFbKE09UiszMnwwKT4+Ml09YVtEPj4yXSxh''@;'; + put 'put ''W00rND4+Ml09YVtEKzQ+PjJdLGFbTSs4Pj4yXT1hW0QrOD4+Ml0sYVtNKzEyPj4yXT1hW0QrMTI+PjJdLF9bUisxNj4+M109K19bTT4+M10sX1tSKzI0Pj4zXT0rX1tSKzg+PjNdLF9bUis0OD4+M109K19bUj4+M10sX1tSKzU2Pj4zXT0rX1tSKzQwPj4zXSxLNShsLFIsNCxmLHApKTooYVti''@;'; + put 'put ''Pj4yXT1hW00+PjJdLGFbYis0Pj4yXT1hW00rND4+Ml0sYVtiKzg+PjJdPWFbTSs4Pj4yXSxhW2IrMTI+PjJdPWFbTSsxMj4+Ml0sYVtiKzE2Pj4yXT1hW00rMTY+PjJdLGFbYisyMD4+Ml09YVtNKzIwPj4yXSxhW2IrMjQ+PjJdPWFbTSsyND4+Ml0sYVtiKzI4Pj4yXT1hW00rMjg+PjJdLHkz''@;'; + put 'put ''KGwsYixwKSksdEoobCxjLGspLEZ0KDB8YVtHPj4yXSksZ2UmJig0JmFbbCsxNTI+PjJdfDAmJkcxKGwsMHxhW3BlPj4yXSwwfGFbSysyMjg+PjJdLDB8YVtLKzI0ND4+Ml0sMHxhW0srMjEyPj4yXSksRWgobCkpLGFlPWJlfSxmdW5jdGlvbiBRYWUobCxjKXt2YXIgZixwLEEsdyxNLGIsbT0w''@;'; + put 'put ''LGs9MCxEPTAsUj0wO009YWUsYWU9YWUrMzJ8MCxrPU0sYj0obT0wfGFbKHc9MjA4KyhBPTB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0pPzE6MCE9KDEmcnRbQSsyNjA+PjFdKSwwfChwPTB8YVsxMisoYz0wfGFbKGY9MTYrKGN8PTApfDApPj4yXSk+PjJdKSYmKGImJjA9PSg0JmFbbCsxNTI+''@;'; + put 'put ''PjJdfDApJiYoRzEobCxtLDB8YVtBKzIyOD4+Ml0sMHxhW0ErMjQ0Pj4yXSwwfGFbQSsyMTI+PjJdKSxjPTB8YVtmPj4yXSksbT0wfGFbbCszNj4+Ml0sUj0rX1tjKzI0Pj4zXSsgKygwfGFbcCs4Pj4yXSksRD0wfGFbcD4+Ml0sX1trPj4zXT0rX1tjKzE2Pj4zXSsgKygwfGFbcCs0Pj4yXSks''@;'; + put 'put ''X1trKzg+PjNdPVIsYVtrKzE2Pj4yXT1ELFQwKG0sMTA2NDUwLGspLGFbKGs9NTYrKDB8YVsxMDQrKG09MHxhW2Y+PjJdKT4+Ml0pfDApPj4yXT1hWyhtPW0rMTZ8MCk+PjJdLGFbays0Pj4yXT1hW20rND4+Ml0sYVtrKzg+PjJdPWFbbSs4Pj4yXSxhW2srMTI+PjJdPWFbbSsxMj4+Ml0sYjco''@;'; + put 'put ''bCwxMCwwfGFbMTA0KygwfGFbZj4+Ml0pPj4yXSksYiYmKDQmYVtsKzE1Mj4+Ml18MCYmRzEobCwwfGFbdz4+Ml0sMHxhW0ErMjI4Pj4yXSwwfGFbQSsyNDQ+PjJdLDB8YVtBKzIxMj4+Ml0pLEVoKGwpKSksYWU9TX0sZnVuY3Rpb24gVmFlKGwsYyl7dmFyIHAsZj0wO19bKGx8PTApPj4zXT00''@;'; + put 'put ''Ljk3OTc5NjU2OTc2NTU2KihmPShwPS41MjU3MzExMTIxMTkxMzM2KitfWyhjfD0wKT4+M10pPihmPS44OTQ0MjcxOTA5OTk5MTU5KitfW2MrOD4+M10pP3A6ZiksX1tsKzg+PjNdPTQuNzM2MDY3OTc3NDk5NzkqZn0sZnVuY3Rpb24gamFlKGwsYyl7bHw9MDt2YXIgdyxiLE0sZj0wLHA9MCxt''@;'; + put 'put ''PTAsQT0wLGs9MCxEPTAsUj0wO2ZvcigoZj0obT0rX1soTT04KyhjfD0wKXwwKT4+M10pLyhwPStfW2M+PjNdKSk+Ljk1MTA1NjUxNjI5NTE1MzY/az0xLjA1MTQ2MjIyNDIzODI2NzIqbTpmPC45NTEwNTY1MTYyOTUxNTM2PyhrPXAsbT0uOTUxMDU2NTE2Mjk1MTUzNipwKTprPXAscD0uNTI1''@;'; + put 'put ''NzMxMTEyMTE5MTMzNiprLHc9LjIwMDgxMTQxNTg4NjIyNzI1KmssYj0uMDUwMjAyODUzOTcxNTU2ODEqayxmPS4zMTQxNTkyNjUzNTg5NzkzLEE9MDshKCgwfEEpPj0xMCk7KV9bbCsoQTw8NCk+PjNdPStoYSgrZikqcCxfW2wrKEE8PDQpKzg+PjNdPStEYSgrZikqcC1iLF9bbCsoKEQ9MXxB''@;'; + put 'put ''KTw8NCk+PjNdPStoYSgrKFI9ZisuNjI4MzE4NTMwNzE3OTU4NikpKncsX1tsKyhEPDw0KSs4Pj4zXT0rRGEoK1IpKnctYixmKz0xLjI1NjYzNzA2MTQzNTkxNzIsQT1BKzJ8MDtfW2M+PjNdPWssX1tNPj4zXT1tfSxmdW5jdGlvbiBxYWUobCxjKXt2YXIgZjtsfD0wLF9bKGY9OCsoY3w9MCl8''@;'; + put 'put ''MCk+PjNdPTEuMzc1KitfW2Y+PjNdLGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdfSxmdW5jdGlvbiBlbGUobCxjKXt2YXIgcCxtLGIsTSxELGY9MCxBPTAsdz0wLGs9MDt3PS41KihEPStfWzgrKGN8''@;'; + put 'put ''PTApPj4zXSksX1sobHw9MCk+PjNdPW09LjUqKGs9K19bYz4+M10pLF9bbCs4Pj4zXT1wPS40MDkwOTA5MDkwOTA5MDkwNipELF9bbCsxNj4+M109bSxfW2wrMjQ+PjNdPUE9LjQ1OTI1MzA5MDkwOTA5MDkqRCxfW2wrMzI+PjNdPWI9LjI3NTg5MiprLF9bbCs0MD4+M109dyxfW2wrNDg+PjNd''@;'; + put 'put ''PTAsX1tsKzU2Pj4zXT13LF9bbCs2ND4+M109ayo9LS4yNzU4OTIsX1tsKzcyPj4zXT13LF9bbCs4MD4+M109TT0tbSxfW2wrODg+PjNdPUEsX1soZj1sKzk2fDApPj4zXT1NLF9bbCsxMDQ+PjNdPXAsYVsoYz1sKzExMnwwKT4+Ml09YVtmPj4yXSxhW2MrND4+Ml09YVtmKzQ+PjJdLGFbYys4''@;'; + put 'put ''Pj4yXT1hW2YrOD4+Ml0sYVtjKzEyPj4yXT1hW2YrMTI+PjJdLF9bKGM9bCsxMjh8MCk+PjNdPU0sX1tsKzEzNj4+M109LS40MDkwOTA5MDkwOTA5MDkwNipELGFbKGY9bCsxNDR8MCk+PjJdPWFbYz4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+''@;'; + put 'put ''Ml09YVtjKzEyPj4yXSxfW2wrMTYwPj4zXT1NLF9bbCsxNjg+PjNdPUE9LUEsX1tsKzE3Nj4+M109ayxfW2wrMTg0Pj4zXT13PS13LF9bbCsxOTI+PjNdPTAsX1tsKzIwMD4+M109dyxfW2wrMjA4Pj4zXT1iLF9bbCsyMTY+PjNdPXcsX1tsKzIyND4+M109bSxfW2wrMjMyPj4zXT1BLF9bKGY9''@;'; + put 'put ''bCsyNDB8MCk+PjNdPW0sX1tsKzI0OD4+M109LXAsYVsoYz1sKzI1NnwwKT4+Ml09YVtmPj4yXSxhW2MrND4+Ml09YVtmKzQ+PjJdLGFbYys4Pj4yXT1hW2YrOD4+Ml0sYVtjKzEyPj4yXT1hW2YrMTI+PjJdLGM9bCsyODh8MCxhWyhmPWwrMjcyfDApPj4yXT1hW2w+PjJdLGFbZis0Pj4yXT1h''@;'; + put 'put ''W2wrND4+Ml0sYVtmKzg+PjJdPWFbbCs4Pj4yXSxhW2YrMTI+PjJdPWFbbCsxMj4+Ml0sYVtjPj4yXT1hW2w+PjJdLGFbYys0Pj4yXT1hW2wrND4+Ml0sYVtjKzg+PjJdPWFbbCs4Pj4yXSxhW2MrMTI+PjJdPWFbbCsxMj4+Ml19LGZ1bmN0aW9uIHZiKGwsYyl7dmFyIG0sQSx3LGIsZj0wLHA9''@;'; + put 'put ''MDtpZihiPWFlLGFlPWFlKzE2fDAsZj1iLG09KCtfWzgrKGN8PTApPj4zXS0rX1s1NjgrKGx8PTApPj4zXSkvK19bbCs1Mjg+PjNdLCEoK2VvKCsodz0oK19bYz4+M10tK19bKEE9bCs1NjB8MCk+PjNdKS8rX1tsKzUyMD4+M10pKTwxZS00JitlbygrbSk8MWUtNCkpe3N3aXRjaCgwfGZlW2wr''@;'; + put 'put ''NTQxPj4wXSl7Y2FzZSAwOmFbZj4+Ml09YVtjPj4yXSxhW2YrND4+Ml09YVtjKzQ+PjJdLGFbZis4Pj4yXT1hW2MrOD4+Ml0sYVtmKzEyPj4yXT1hW2MrMTI+PjJdLE12KGwsZik7YnJlYWs7Y2FzZSAyOnA9K19bbCszNTI+PjNdLDB8YVtsKzM2MD4+Ml0/KF9bKGY9bCszMzZ8MCk+PjNdPStf''@;'; + put 'put ''W2Y+PjNdLW0vcCxfWyhmPWwrMzQ0fDApPj4zXT0rX1tmPj4zXSt3L3ApOihfWyhmPWwrMzM2fDApPj4zXT0rX1tmPj4zXS13L3AsX1soZj1sKzM0NHwwKT4+M109K19bZj4+M10tbS9wKSxmZVtsKzUzNz4+MF09MX1hW0E+PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+''@;'; + put 'put ''Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXX1hZT1ifSxmdW5jdGlvbiBLeihsLGMpe01UKGw9MHxhWyhsfD0wKT4+Ml0sMHxhW2wrMTY4Pj4yXSxjfD0wKX0sWDYsWG0sZnVuY3Rpb24gS0cobCxjKXtXbihjfD0wLGx8PTAsMSl9LGZ1bmN0aW9uIEtvZShsLGMpe2x8PTA7dmFy''@;'; + put 'put ''IGIsayxNLFIsZj0wLHA9MCxtPTAsQT0wLHc9MCxEPTA7Uj1hZSxhZT1hZSsxNnwwLEQ9UixNPShjfD0wKS00OHwwLGI9Yys0OHwwLG09KDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHwobT0zJmFbYz4+Ml0pKT9jOk0pKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8''@;'; + put 'put ''YVsoMz09KDB8bSk/YzpiKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxoclsxNzArKDB8YVsoaz1jKzE2fDApPj4yXSk+PjFdKXwwO2Rve2lmKCgwfG0pPjApe2lmKDE9PSgoMHxhWzI3Nisodz0wfGFbMTYrKEE9MHxhWygzPT0oMHwoZj0zJmFbbD4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0p''@;'; + put 'put ''Pj4yXSkrKDB8YVt3KzI2OD4+Ml0pfDApKXtYNShBLG0pO2JyZWFrfWlmKDE9PSgoMHxhWzI3NisocD0wfGFbMTYrKGY9MHxhWygyPT0oMHxmKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKygwfGFbcCsyNjg+PjJdKXwwKSl7WDUoZiwwLW18MCk7YnJlYWt9aWYoKDB8YVt3KzI4OD4+''@;'; + put 'put ''Ml0pPCgwfGFbcCsyODg+PjJdKSl7WDUoQSxtKTticmVha31YNShmLDAtbXwwKTticmVha319d2hpbGUoMCk7aWYobT0wfG1RKDB8YVsoMz09KDB8KG09MyZhW2M+PjJdKSk/YzpiKSs0MD4+Ml0sMHxhWygyPT0oMHxtKT9jOk0pKzQwPj4yXSxwPTB8YVsxNjArKDB8YVsoZj1sKzE2fDApPj4y''@;'; + put 'put ''XSk+PjJdLDEpLCgwfG1RKDB8YVsoMj09KDB8KHc9MyZhW2M+PjJdKSk/YzpNKSs0MD4+Ml0sMHxhWygzPT0oMHx3KT9jOmIpKzQwPj4yXSxwLDApKT09KDB8bSkpcmV0dXJuIGFbMTYwKygwfGFbaz4+Ml0pPj4yXT0wLXAsYVsxNjArKDB8YVtmPj4yXSk+PjJdPTAsZnVuY3Rpb24gJG9lKGws''@;'; + put 'put ''Yyl7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Zm9yKGFbMTY0KygwfGFbMTYrKGN8PTApPj4yXSk+PjJdPWFbKHA9MTY0KygwfGFbKGI9MTYrKGx8PTApfDApPj4yXSl8MCk+PjJdLGFbKDB8YVs0NzI1Nl0pKyhhW3A+PjJdPDwyKT4+Ml09YyxhWzE2NCsoMHxhW2I+PjJd''@;'; + put 'put ''KT4+Ml09LTEsYVsoQT0yNzYrKHA9MHxhWyhiPTE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSl8MCk+PjJdKXwwKT4+Ml09az0obT0wfGFbQT4+Ml0pLTF8MCxBPXArMjcyfDAsdz0wOzspe2lmKCgwfHcpPj0oMHxtKSl7TT0zO2JyZWFrfWlmKCgwfGFbKGY9MHxh''@;'; + put 'put ''W0E+PjJdKSsodzw8Mik+PjJdKT09KDB8bCkpYnJlYWs7dz13KzF8MH1mb3IoMz09KDB8TSkmJihmPTB8YVtwKzI3Mj4+Ml0pLGFbZisodzw8Mik+PjJdPWFbZisoazw8Mik+PjJdLGFbKDB8YVsyNzIrKDB8YVtiPj4yXSk+PjJdKSsoazw8Mik+PjJdPTAsYVsoQT0yNjgrKHA9MHxhWyhiPTE2''@;'; + put 'put ''KygwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pfDApPj4yXSl8MCk+PjJdPWs9KG09MHxhW0E+PjJdKS0xfDAsQT1wKzI2NHwwLHc9MDs7KXtpZigoMHx3KT49KDB8bSkpe009ODticmVha31pZigoMHxhWyhmPTB8YVtBPj4yXSkrKHc8PDIpPj4yXSk9PSgwfGwpKWJy''@;'; + put 'put ''ZWFrO3c9dysxfDB9OD09KDB8TSkmJihmPTB8YVtwKzI2ND4+Ml0pLGFbZisodzw8Mik+PjJdPWFbZisoazw8Mik+PjJdLGFbKDB8YVsyNjQrKDB8YVtiPj4yXSk+PjJdKSsoazw8Mik+PjJdPTAsaz0wfGFbMjcyKyhsPTB8YVsoTT0xNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHww''@;'; + put 'put ''KSs0MD4+Ml0pfDApPj4yXSk+PjJdLGFbKGw9bCsyNzZ8MCk+PjJdPTErKGI9MHxhW2w+PjJdKSxhW2srKGI8PDIpPj4yXT1jLGFbKDB8YVsyNzIrKE09MHxhW00+PjJdKT4+Ml0pKyhhW00rMjc2Pj4yXTw8Mik+PjJdPTAsaz0wfGFbMjY0KyhiPTB8YVsoTT0xNisoMHxhWygyPT0oMyZhW2M+''@;'; + put 'put ''PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKXwwKT4+Ml0pPj4yXSxhWyhiPWIrMjY4fDApPj4yXT0xKyhsPTB8YVtiPj4yXSksYVtrKyhsPDwyKT4+Ml09YyxhWygwfGFbMjY0KyhNPTB8YVtNPj4yXSk+PjJdKSsoYVtNKzI2OD4+Ml08PDIpPj4yXT0wfShsLGMpLHpJKG0sMHxhWzI4MCsoRD0w''@;'; + put 'put ''fGFbbSsxNj4+Ml0pPj4yXSwwfGFbRCsyODQ+PjJdKSx2b2lkKGFlPVIpOyRyKDEsMTAyMjYyLEQpLHplKDE4ODg0OCwxKX0sZnVuY3Rpb24gWWkobCxjKXtjfD0wO3ZhciB3LGIsayxNLEQsRyxLLGY9MCxwPTAsbT0wLEE9MCxSPTAscGU9MDtmb3IoSz1hZSxhZT1hZSs2NHwwLEc9SyszMnww''@;'; + put 'put ''LFI9SysxNnwwLGI9SyxrPUsrNDh8MCxfdSgxMTA5MzUsbHw9MCksX3UoMTEwOTQ2LGwpLE09YysxNnwwLEQ9Yis4fDAsdz1rKzR8MCxBPTA7ISgoMHxBKT49KDB8YVtjPj4yXSkpOykoMHwocD0wfGFbKGY9MHxhW00+PjJdKSsoNDAqQXwwKSsyMD4+Ml0pKT09KDB8KG09MHxhW2YrKDQwKkF8''@;'; + put 'put ''MCkrMjQ+PjJdKSk/KGgyKGIscCksZj1+fitfW2I+PjNdLHA9fn4rX1tEPj4zXSk6KGxtKGssMD09KDEmYVtwPj4yXXwwKT9wOm0sZisoNDAqQXwwKXwwKSxmPTB8YVtrPj4yXSxwPTB8YVt3Pj4yXSksYVtSPj4yXT1BLGFbUis0Pj4yXT1mLGFbUis4Pj4yXT1wLFQwKGwsMTEwOTY2LFIpLEE9''@;'; + put 'put ''QSsxfDA7Zm9yKG09Yys0fDAscD1jKzIwfDAsZj0wOyEoKDB8Zik+PSgwfGFbbT4+Ml0pKTspYz0wfGFbKFI9MHxhW3A+PjJdKSsoMjQqZnwwKSsxNj4+Ml0scGU9K19bUisoMjQqZnwwKT4+M10sYVtHPj4yXT1hW1IrKDI0KmZ8MCkrMTI+PjJdLGFbRys0Pj4yXT1jLF9bRys4Pj4zXT1wZSxU''@;'; + put 'put ''MChsLDExMDk4NixHKSxmPWYrMXwwO191KDExMTAwOCxsKSxhZT1LfSxmdW5jdGlvbiBnQihsLGMpe2N8PTA7ZG97aWYoMHx5MChjLDE0MDYwMykpe2lmKDB8eTAoYywxNDA2MDkpJiYwfHkwKGMsMTQwNjEyKSl7aWYoISgwfHkwKGMsMTQwNjE1KSkpe2FbNDc0MDldPTI2NSxmZVsxODk2NjJd''@;'; + put 'put ''PTA7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjE4KSkpe2FbNDc0MDldPTI2MzticmVha31pZighKDB8eTAoYywxNDA2MjMpKSl7YVs0NzQwOV09MjY2O2JyZWFrfWlmKCEoMHx5MChjLDE0MDYyOCkpKXthWzQ3NDA5XT0yNzA7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjMwKSkpe2FbNDc0MDldPTI3''@;'; + put 'put ''MTticmVha31pZighKDB8eTAoYywxNDA2MzIpKSl7YVs0NzQwOV09MjcyO2JyZWFrfWlmKCEoMHx5MChjLDE0MDYzNCkpKXthWzQ3NDA5XT0yNjk7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjM2KSkpe2FbNDc0MDldPTI3MzticmVha31pZighKDB8eTAoYywxNDA2NDApKSl7YVs0NzQwOV09Mjc0''@;'; + put 'put ''O2JyZWFrfWlmKCEoMHx5MChjLDE0MDY0NCkpKXthWzQ3NDA5XT0yNzU7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjQ2KSkpe2FbNDc0MDldPTI4Mz09KDB8YVs0NzQwOV0pPzI4MjoyNTg7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjQ5KSkpe2FbNDc0MDldPTI3Nz09KDB8YVs0NzQwOV0pPzI3Njoy''@;'; + put 'put ''Nzg7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjUyKSkpe2FbNDc0MDldPTI4MD09KDB8YVs0NzQwOV0pPzI3OToyODE7YnJlYWt9aWYoMHx5MChjLDE0MDY1NSkpe05FKGMpO2JyZWFrfWFbNDc0MDldPTI4NT09KDB8YVs0NzQwOV0pPzI4NDoyNTk7YnJlYWt9YVs0NzQwOV09MjYxfWVsc2UgYVs0''@;'; + put 'put ''NzQwOV09MjY0LGZlWzE4OTY2Ml09MX13aGlsZSgwKX0sYTUsZnVuY3Rpb24gaEcobCxjKXtsfD0wLGN8PTA7dmFyIHcsYixmPTAscD0wLG09MCxBPTA7Yj1hZSxhZT1hZSsxNnwwLHc9YjtlOmZvcig7Oyl7aWYoISgoMHxjKT4zKSl7Yz05O2JyZWFrfWZvcihwPTA7Oyl7aWYoKDB8cCk+PSgw''@;'; + put 'put ''fGMpKXtjPTg7YnJlYWsgZX1pZihmPSgwfChtPXArMXwwKSklKDB8Yyl8MCwwfHJBKHAsQT0ocCsyfDApJSgwfGMpfDAsbCxjKSlicmVhaztwPW19Zm9yKCRFKDB8YVtsKyhwPDwyKT4+Ml0sMHxhW2wrKGY8PDIpPj4yXSwwfGFbbCsoQTw8Mik+PjJdKSxjPWMrLTF8MDs7KXtpZigoMHxmKT49''@;'; + put 'put ''KDB8YykpY29udGludWUgZTthW2wrKGY8PDIpPj4yXT1hW2wrKChBPWYrMXwwKTw8Mik+PjJdLGY9QX19OD09KDB8Yyk/KGw9MHxhWzE1NzEyXSxhW3c+PjJdPTE0MTg1OCxhW3crND4+Ml09MzI0LGFbdys4Pj4yXT0xNDIwMDMsVDAobCwxNDE4MzksdykpOjk9PSgwfGMpJiYkRSgwfGFbbD4+''@;'; + put 'put ''Ml0sMHxhW2wrND4+Ml0sMHxhW2wrOD4+Ml0pLGFlPWJ9LGZ1bmN0aW9uIGFfKGwsYyl7dmFyIGIsayxNLGY9MCxwPTAsbT0wLEE9MCx3PTAsRD0wLFI9MCxHPTAsSz0wO2ZvcihrPShiPTB8YVs0NzUxM10pKyg1MioobHw9MCl8MCl8MCxNPWIrKDUyKihjfD0wKXwwKXwwLEE9MDszIT0oMHxB''@;'; + put 'put ''KTspe2ZvcihEPWIrKDUyKmx8MCkrNCsoQTw8NCl8MCxSPWIrKDUyKmx8MCkrNCsoQTw8NCkrNHwwLEc9YisoNTIqbHwwKSs0KyhBPDw0KSsxMnwwLG09MDszIT0oMHxtKTspKDB8KEs9MHxhW2FbRD4+Ml0+PjJdKSk9PSgwfCh3PTB8YVthW2IrKDUyKmN8MCkrNCsobTw8NCk+PjJdPj4yXSkp''@;'; + put 'put ''P3A9KDB8YVthW1I+PjJdPj4yXSk9PSgwfChmPTB8YVthW2IrKDUyKmN8MCkrNCsobTw8NCkrND4+Ml0+PjJdKSk/MTA6ODooZj0wfGFbYVtiKyg1MipjfDApKzQrKG08PDQpKzQ+PjJdPj4yXSxwPTgpLDg9PSgwfHApJiYocD0wLCgwfEspPT0oMHxmKSkmJigwfGFbYVtSPj4yXT4+Ml0pPT0o''@;'; + put 'put ''MHx3KSYmKHA9MTApLDEwPT0oMHxwKSYmKGFbRz4+Ml09TSxhW2IrKDUyKmN8MCkrNCsobTw8NCkrMTI+PjJdPWspLG09bSsxfDA7QT1BKzF8MH19LGZ1bmN0aW9uIHBHKGwsYyl7Y3w9MDt2YXIgcCxmPTAsbT0wO209KDB8KGY9MHxhWzQ3NTA4XSkpPj0oMHwocD0wfGFbNDc1MDddKSksMT09''@;'; + put 'put ''KDB8KGx8PTApKT9tPyhhW2MrND4+Ml09YVsoMHxhWzQ3NTA1XSkrKHA8PDIpPj4yXSxsPTE5MDAyOCxmPS0xKToobD0xOTAwMjgsZj0tMSk6bT8oYVtjKzQ+PjJdPWFbKDB8YVs0NzUwNV0pKyhmPDwyKT4+Ml0sbD0xOTAwMzIsZj0xKToobD0xOTAwMzIsZj0xKSxhW2w+PjJdPW09KDB8YVts''@;'; + put 'put ''Pj4yXSkrZnwwLGFbKDB8YVs0NzUwNV0pKyhtPDwyKT4+Ml09Y30sZnVuY3Rpb24gWjQobCxjKXthWygxPT0oMHwobHw9MCkpPzE5MDAzMjoxOTAwMjgpPj4yXT1jfD0wfSxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJ''@;'; + put 'put ''cyxJcyxJcyxJcyxJcyxJcyxJcyxJcyxJc10sZGw9W00wLGZ1bmN0aW9uIHJpZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBtLEEsdyxNLEQsSyxwZSxwPTAsYj0wLGs9MCxSPTAsRz0wO3BlPWFlLGFlPWFlKzEwNTZ8MCxBPXBlKzE2fDAsSz1wZSs4fDAsRz1wZSx3PXBlKzMyfDAsdW8oRD0wfGFb''@;'; + put 'put ''MTE0MTYrKChNPTB8YVsxMisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSk8PDIpPj4yXSw2NjkxNiksV2godywrX1sxNisoMHxhWyhwPWYrNHwwKT4+Ml0pPj4zXSksdW8oRCx3KSxQNShsLDE5NTA1OSwwfGFbYVtwPj4yXT4+Ml0pLEZDKGwpLFI9KFI9MHxmZVtmKzQ4Pj4wXSk8PDI0Pj4yND09''@;'; + put 'put ''MTA4Py0xOlI8PDI0Pj4yND09MTE0JjEscD0ocD0wfGFbcD4+Ml0pPzEyNyZhW3ArMjQ+PjJdOjAsKDY1NTM1JihtPTB8cnRbODIzMisoMHxhWzQ2NjkwXSk+PjFdKSk+MTQmJigwfGFbKGs9MTg2NzY0KyhNPDwyKXwwKT4+Ml0pIT0oMHwoYj1hWzExNDY0KygoNjU1MzUmbSktMTU8PDIpPj4y''@;'; + put 'put ''XSZwKSkmJihhW0c+PjJdPWIsb28odyw2NjkxOSxHKSx1byhELHcpLGFbaz4+Ml09YiksX1soRz1jKzh8MCk+PjNdPStfW0c+PjNdKyArX1tmKzI0Pj4zXSx1byhELDY2OTI1KSxhW0E+PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+''@;'; + put 'put ''Ml09YVtjKzEyPj4yXSxCNShELEEpLGFbSz4+Ml09Uixvbyh3LDEwMjIyMCxLKSx1byhELHcpLFdoKHcsK19bZiszMj4+M10pLHVvKEQsdyksUDUobCwxOTUwNTksMHxhW2Y+PjJdKSxhZT1wZX0sZnVuY3Rpb24gU1cobCxjLGYpe3ZhciBwLG0sQSx3O2N8PTAsZnw9MCx3PWFlLGFlPWFlKzEw''@;'; + put 'put ''NDB8MCxtPXcsQT13KzE2fDAscD0wfGFbMTIrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0sUFQobCksRkMobCksZj8oMz09KDF8Zik/d0YobCxmLGMsMik6RlQobCksdW8obD0wfGFbMTE0MTYrKHA8PDIpPj4yXSw2NjkxMCkpOnVvKGw9MHxhWzExNDE2KyhwPDwyKT4+Ml0sNjY5MTMpLGFbbT4+''@;'; + put 'put ''Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLEI1KGwsbSksV2goQSwrX1tjKzE2Pj4zXS0rX1tjPj4zXSksdW8obCxBKSxXaChBLCtfW2MrMjQ+PjNdLStfW2MrOD4+M10pLHVvKGwsQSksYWU9d30sZnVuY3Rp''@;'; + put 'put ''b24gSmQobCxjLGYpe2N8PTAsZnw9MCxQVChsfD0wKSxGQyhsKSxIQyhsLDc2LGMsZil9LGZ1bmN0aW9uIGNpZShsLGMsZil7RnQoMHxhWzgrKGN8PTApPj4yXSksRnQoYyl9LGZ1bmN0aW9uIGRpZShsLGMsZil7Y3w9MDt2YXIgbSxBLHcsYixrLE0sRCxSLEcsSyxwZSxwPTA7Uj1hZSxhZT1h''@;'; + put 'put ''ZSs4MHwwLEQ9UixrPTB8YVsxNisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSxNPTB8YVs0NjcxMF0sQT0wfGFbbCszNjA+PjJdPzEuNTcwNzk2MzI2Nzk0ODk2NjowLGI9LjMzMzMzMzMzMzMzMzMzMzMqKG09K19bbCszNTI+PjNdKitfWzE2KyhwPTB8YVs0KyhmfD0wKT4+Ml0pPj4zXSkqKygo''@;'; + put 'put ''MHxVbyh3PTB8YVtmPj4yXSkpPj4+MCkscD0ocD0wfGFbcCs4Pj4yXSk/MHxhW3ArMjA+PjJdOi0xLHBlPTB8ZmVbZis0OD4+MF0sSz0rX1tjPj4zXSxHPStfW2MrOD4+M10sZj0wfGZ1bmN0aW9uIGpDKGwpe2x8PTA7dmFyIEEsdyxjPTAsZj0wLHA9MCxtPTA7Zm9yKHc9YWUsYWU9YWUrMTZ8''@;'; + put 'put ''MCxBPXcsKGM9MHxhWzQ2NzEyXSl8fChhWzQ2NzEzXT02NCxjPTB8QjAoNjQpLGFbNDY3MTJdPWMpLGY9MDttPWwrMXwwLChwPTB8ZmVbbD4+MF0pPDwyND4+MjQ7KSgwfGYpPigobD0wfGFbNDY3MTNdKS04fDApJiYoYVs0NjcxM109Yz1sPDwxLGM9MHxVYSgwfGFbNDY3MTJdLGMpLGFbNDY3''@;'; + put 'put ''MTJdPWMsYz1jK2Z8MCkscDw8MjQ+PjI0PD0tMT8oZmVbYz4+MF09OTIsYVtBPj4yXT0yNTUmcCxvbyhjKzF8MCw4MTIyNCxBKSxsPW0sYz1jKzR8MCxmPWYrNHwwKToocDw8MjQ+PjI0PT05MiYmKGZlW2M+PjBdPTkyLGY9ZisxfDAsYz1jKzF8MCksZmVbYz4+MF09cCxsPW0sYz1jKzF8MCxm''@;'; + put 'put ''PWYrMXwwKTtyZXR1cm4gZmVbYz4+MF09MCxhZT13LDB8YVs0NjcxMl19KHcpLGFbRD4+Ml09NCxhW0QrND4+Ml09cGU8PDI0Pj4yND09MTA4PzA6cGU8PDI0Pj4yND09MTE0PzI6MSxhW0QrOD4+Ml09ayxhW0QrMTI+PjJdPU0sYVtEKzE2Pj4yXT0wLGFbRCsyMD4+Ml09cCxfW0QrMjQ+PjNd''@;'; + put 'put ''PW0sX1tEKzMyPj4zXT1BLGFbRCs0MD4+Ml09NixfW0QrNDg+PjNdPW0sX1tEKzU2Pj4zXT1iLGFbRCs2ND4+Ml09fn4oSysoSz49MD8uNTotLjUpKSxhW0QrNjg+PjJdPX5+KEcrKEcrLTcyPj0wPy03MS41Oi03Mi41KSksYVtEKzcyPj4yXT1mLE9yKGwsNjg1NDksRCksYWU9Un0sZnVuY3Rp''@;'; + put 'put ''b24gcGllKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbSxBLHcsYixSLEcsSyxwZSxnZSxiZSxPZSxrPTAsTT0wLEQ9MDtwPWFlLGFlPWFlKzExMnwwLG09cCs4fDAsZ2U9fn4rX1sxNTIrKGs9MHxhWzE2KyhsfD0wKT4+Ml0pPj4zXSxwZT0wfGFbaysxNj4+Ml0sSz0wfGFbays1Nj4+Ml0sRz0w''@;'; + put 'put ''fGFbNDY3MTBdLHU3KGssT2U9cCsxMDR8MCxiZT1wKSxrPX5+KChEPStfW2M+PjNdKSsoRD49MD8uNTotLjUpKSxiPX5+KChNPStfW2MrOD4+M10pKyhNPj0wPy41Oi0uNSkpLEQ9KHc9K19bYysxNj4+M10pLUQsTT0oQT0rX1tjKzI0Pj4zXSktTSxjPTB8YVtPZT4+Ml0sUj0rX1tiZT4+M10s''@;'; + put 'put ''YVttPj4yXT0xLGFbbSs0Pj4yXT0xLGFbbSs4Pj4yXT1jLGFbbSsxMj4+Ml09Z2UsYVttKzE2Pj4yXT1wZSxhW20rMjA+PjJdPUssYVttKzI0Pj4yXT1HLGFbbSsyOD4+Ml09MCxhW20rMzI+PjJdPTB8Zj8yMDotMSxfW20rNDA+PjNdPVIsYVttKzQ4Pj4yXT0wLF9bbSs1Nj4+M109MCxhW20r''@;'; + put 'put ''NjQ+PjJdPWssYVttKzY4Pj4yXT1iLGFbbSs3Mj4+Ml09fn4oRCsoRD49MD8uNTotLjUpKSxhW20rNzY+PjJdPX5+KE0rKE0+PTA/LjU6LS41KSksYVttKzgwPj4yXT1rLGFbbSs4ND4+Ml09YixhW20rODg+PjJdPX5+KHcrKHc+PTA/LjU6LS41KSksYVttKzkyPj4yXT1+fihBKyhBPj0wPy41''@;'; + put 'put ''Oi0uNSkpLE9yKGwsNjg0MjcsbSksYWU9cH0sZnVuY3Rpb24gdmllKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbSxBLHcsYixrLEQsUixNPTA7cD1hZSxhZT1hZSs5NnwwLG09cCs4fDAsaz1+fitfWzE1MisoUj0wfGFbMTYrKGx8PTApPj4yXSk+PjNdLGI9MHxhW1IrMTY+PjJdLHc9MHxhWzQ2''@;'; + put 'put ''NzEwXSx1NyhSLE09cCs4MHwwLEQ9cCksTT0wfGFbTT4+Ml0sQT0rX1tEPj4zXSxhW20+PjJdPTIsYVttKzQ+PjJdPTEsYVttKzg+PjJdPU0sYVttKzEyPj4yXT1rLGFbbSsxNj4+Ml09YixhW20rMjA+PjJdPTAsYVttKzI0Pj4yXT13LGFbbSsyOD4+Ml09MCxhW20rMzI+PjJdPTAsX1ttKzQw''@;'; + put 'put ''Pj4zXT1BLGFbbSs0OD4+Ml09MCxhW20rNTI+PjJdPTAsYVttKzU2Pj4yXT0wLGFbbSs2MD4+Ml09MCxhW20rNjQ+PjJdPTAsYVttKzY4Pj4yXT1mLE9yKGwsNjgzMzEsbSksa0YobCxjLGYsMCksYWU9cH0sZnVuY3Rpb24gYTdlKGwsYyxmKXt2YXIgbSxBLHcsYixrLE0sRCxSLEcscD0wO009''@;'; + put 'put ''YWUsYWU9YWUrODB8MCxrPU0sdz0wfGFbMTYrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0sYj0wfGFbNDY3MTZdLG09K19bbCszNTI+PjNdKitfWzE2KyhwPTB8YVs0KyhmfD0wKT4+Ml0pPj4zXSxBPTB8YVtsKzM2MD4+Ml0/MS41NzA3OTYzMjY3OTQ4OTY2OjAscD0ocD0wfGFbcCs4Pj4yXSk/''@;'; + put 'put ''MHxhW3ArMjA+PjJdOi0xLEc9MHxmZVtmKzQ4Pj4wXSxSPStfWyhjfD0wKT4+M10sRD0rX1tjKzg+PjNdLGY9MHxmdW5jdGlvbiBraWUobCl7bHw9MDt2YXIgQSx3LGM9MCxmPTAscD0wLG09MDtmb3Iodz1hZSxhZT1hZSsxNnwwLEE9dywoYz0wfGFbNDY3MThdKXx8KGFbNDY3MTldPTY0LGM9''@;'; + put 'put ''MHxCMCg2NCksYVs0NjcxOF09YyksZj0wO209bCsxfDAsKHA9MHxmZVtsPj4wXSk8PDI0Pj4yNDspKDB8Zik+KChsPTB8YVs0NjcxOV0pLTh8MCkmJihhWzQ2NzE5XT1jPWw8PDEsYz0wfFVhKDB8YVs0NjcxOF0sYyksYVs0NjcxOF09YyxjPWMrZnwwKSxwPDwyND4+MjQ8PS0xPyhmZVtjPj4w''@;'; + put 'put ''XT05MixhW0E+PjJdPTI1NSZwLG9vKGMrMXwwLDgxMjI0LEEpLGw9bSxjPWMrNHwwLGY9Zis0fDApOihwPDwyND4+MjQ9PTkyJiYoZmVbYz4+MF09OTIsZj1mKzF8MCxjPWMrMXwwKSxmZVtjPj4wXT1wLGw9bSxjPWMrMXwwLGY9ZisxfDApO3JldHVybiBmZVtjPj4wXT0wLGFlPXcsMHxhWzQ2''@;'; + put 'put ''NzE4XX0oMHxhW2Y+PjJdKSxhW2s+PjJdPTQsYVtrKzQ+PjJdPUc8PDI0Pj4yND09MTA4PzA6Rzw8MjQ+PjI0PT0xMTQ/MjoxLGFbays4Pj4yXT13LGFbaysxMj4+Ml09YixhW2srMTY+PjJdPTAsYVtrKzIwPj4yXT1wLF9baysyND4+M109bSxfW2srMzI+PjNdPUEsYVtrKzQwPj4yXT00LF9b''@;'; + put 'put ''ays0OD4+M109MCxfW2srNTY+PjNdPTAsYVtrKzY0Pj4yXT1+fihSKyhSPj0wPy41Oi0uNSkpLGFbays2OD4+Ml09fn4oRCsoRD49MD8uNTotLjUpKSxhW2srNzI+PjJdPWYsT3IobCw2ODU0OSxrKSxhZT1NfSxmdW5jdGlvbiBFRihsLGMsZil7Y3w9MCxmfD0wO3ZhciBwLG0sQSx3LGIsUixH''@;'; + put 'put ''LEsscGUsZ2UsYmUsT2Usaz0wLE09MCxEPTA7cD1hZSxhZT1hZSsxMTJ8MCxtPXArOHwwLGdlPX5+K19bMTUyKyhrPTB8YVsxNisobHw9MCk+PjJdKT4+M10scGU9MHxhW2srMTY+PjJdLEs9MHxhW2srNTY+PjJdLEc9MHxhWzQ2NzE2XSxXVChrLE9lPXArMTA0fDAsYmU9cCksaz1+figoRD0r''@;'; + put 'put ''X1tjPj4zXSkrKEQ+PTA/LjU6LS41KSksYj1+figoTT0rX1tjKzg+PjNdKSsoTT49MD8uNTotLjUpKSxEPSh3PStfW2MrMTY+PjNdKS1ELE09KEE9K19bYysyND4+M10pLU0sYz0wfGFbT2U+PjJdLFI9K19bYmU+PjNdLGFbbT4+Ml09MSxhW20rND4+Ml09MSxhW20rOD4+Ml09YyxhW20rMTI+''@;'; + put 'put ''PjJdPWdlLGFbbSsxNj4+Ml09cGUsYVttKzIwPj4yXT1LLGFbbSsyND4+Ml09RyxhW20rMjg+PjJdPTAsYVttKzMyPj4yXT0wfGY/MjA6LTEsX1ttKzQwPj4zXT1SLGFbbSs0OD4+Ml09MCxfW20rNTY+PjNdPTAsYVttKzY0Pj4yXT1rLGFbbSs2OD4+Ml09YixhW20rNzI+PjJdPX5+KEQrKEQ+''@;'; + put 'put ''PTA/LjU6LS41KSksYVttKzc2Pj4yXT1+fihNKyhNPj0wPy41Oi0uNSkpLGFbbSs4MD4+Ml09ayxhW20rODQ+PjJdPWIsYVttKzg4Pj4yXT1+fih3Kyh3Pj0wPy41Oi0uNSkpLGFbbSs5Mj4+Ml09fn4oQSsoQT49MD8uNTotLjUpKSxPcihsLDY4NDI3LG0pLGFlPXB9LGZ1bmN0aW9uIFpXKGws''@;'; + put 'put ''YyxmKXtjfD0wLGZ8PTA7dmFyIHAsbSxBLHcsYixrLEQsUixNPTA7cD1hZSxhZT1hZSs5NnwwLG09cCs4fDAsaz1+fitfWzE1MisoUj0wfGFbMTYrKGx8PTApPj4yXSk+PjNdLGI9MHxhW1IrMTY+PjJdLHc9MHxhWzQ2NzE2XSxXVChSLE09cCs4MHwwLEQ9cCksTT0wfGFbTT4+Ml0sQT0rX1tE''@;'; + put 'put ''Pj4zXSxhW20+PjJdPTIsYVttKzQ+PjJdPTEsYVttKzg+PjJdPU0sYVttKzEyPj4yXT1rLGFbbSsxNj4+Ml09YixhW20rMjA+PjJdPTAsYVttKzI0Pj4yXT13LGFbbSsyOD4+Ml09MCxhW20rMzI+PjJdPTAsX1ttKzQwPj4zXT1BLGFbbSs0OD4+Ml09MCxhW20rNTI+PjJdPTAsYVttKzU2Pj4y''@;'; + put 'put ''XT0wLGFbbSs2MD4+Ml09MCxhW20rNjQ+PjJdPTAsYVttKzY4Pj4yXT1mLE9yKGwsNjgzMzEsbSkselcobCxjLGYsMCksYWU9cH0sZnVuY3Rpb24gVVcobCxjLGYpe2N8PTAsZnw9MDt2YXIgdyxiLGsscD0wLG09MCxBPTAsTT0wO2lmKGs9YWUsYWU9YWUrMzJ8MCx3PWsrOHwwLGI9aywhKCtf''@;'; + put 'put ''WzQwKyhwPTB8YVsxNisobHw9MCk+PjJdKT4+M108LjUpKXtzd2l0Y2goYXAobCxwKzE2fDApLGpzKGwsK19bMTYrKDB8YVsoQT1mKzR8MCk+PjJdKT4+M10pLGFbdz4+Ml09YVthW0E+PjJdPj4yXSxPcihsLDY4OTczLHcpLEE9MHxVSCgwfGFbZj4+Ml0sMHxhWzQ2NzIwXSksMHxmZVtmKzQ4''@;'; + put 'put ''Pj4wXSl7Y2FzZSAxMTQ6cD1NPWYrMzJ8MCxtPStfW00+PjNdO2JyZWFrO2Nhc2UgMTA4OnA9ZiszMnwwLG09MDticmVhaztkZWZhdWx0OnA9TT1mKzMyfDAsbT0uNSorX1tNPj4zXX1fW2M+PjNdPStfW2M+PjNdLW0sX1soTT1jKzh8MCk+PjNdPStfW00+PjNdKyArX1tmKzI0Pj4zXSxhW3c+''@;'; + put 'put ''PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtjKzEyPj4yXSxuaChsLHcpLEVuKGwsNjg5ODgpLGpzKGwsK19bcD4+M10pLGFbYj4+Ml09QSxPcihsLDY4OTk3LGIpfWFlPWt9LGZ1bmN0aW9uIFFXKGwsYyxmKXtsfD0wLGZ8''@;'; + put 'put ''PTA7dmFyIG0sQSxwPTA7QT1hZSxhZT1hZSszMnwwLGFbKG09QSk+PjJdPWFbKGN8PTApPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLF9bbSsxNj4+M109K19bYysxNj4+M10tK19bYz4+M10sX1ttKzI0Pj4zXT0rX1tj''@;'; + put 'put ''KzI0Pj4zXS0rX1tjKzg+PjNdLGM9bCsxNnwwLDB8ZiYmK19bODArKHA9MHxhW2M+PjJdKT4+M10+LjUmJihhcChsLHArNTZ8MCksRzMobCxtLDIpLEVuKGwsNjg5MzEpKSwrX1s0MCsoMHxhW2M+PjJdKT4+M10+LjUmJih6QShsKSxhcChsLDE2KygwfGFbYz4+Ml0pfDApLEczKGwsbSwyKSxF''@;'; + put 'put ''bihsLDY4OTUxKSksYWU9QX0sZnVuY3Rpb24gdTdlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIG0sQSxwPTAsdz0wO2lmKEE9YWUsYWU9YWUrMTZ8MCxtPUEsK19bNDArKDB8YVsocD0xNisobHw9MCl8MCk+PjJdKT4+M10+LjUpe2Zvcih6QShsKSxhcChsLDE2KygwfGFbcD4+Ml0pfDApLEVuKGws''@;'; + put 'put ''Njg4NTIpLGFbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLG5oKGwsbSksRW4obCw2ODg2MSkscD0xOyEoKDB8cCk+PSgwfGYpKTspYVttPj4yXT1hWyh3PWMrKHA8PDQpfDApPj4yXSxhW20rND4+Ml09''@;'; + put 'put ''YVt3KzQ+PjJdLGFbbSs4Pj4yXT1hW3crOD4+Ml0sYVttKzEyPj4yXT1hW3crMTI+PjJdLG5oKGwsbSksRW4obCw2ODg3MCkscD1wKzF8MDtFbihsLDY4ODc5KX1hZT1BfSxmdW5jdGlvbiB2N2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgYixrLE0sRCxSLEcsSyxwZSxnZSxiZSxPZSxMZSxIZSxW''@;'; + put 'put ''ZSxxZSxudCxvdCxTdCxsdCxadCxjdCxidCxwPTAsbT0wLEE9MCx3PTAsUmU9MCxXZT0wLGt0PTAsRXQ9MDtzd2l0Y2goYnQ9YWUsYWU9YWUrMTc2fDAsY3Q9YnQrMTYwfDAsWnQ9YnQrMTUyfDAsb3Q9YnQrMTM2fDAsRXQ9YnQrMTI4fDAsV2U9YnQrMTIwfDAsbnQ9YnQrMTEyfDAscWU9YnQr''@;'; + put 'put ''MTA0fDAsVmU9YnQrOTZ8MCxIZT1idCs4OHwwLExlPWJ0KzgwfDAsYmU9YnQrNzJ8MCxnZT1idCs2NHwwLHBlPWJ0KzU2fDAsSz1idCs0OHwwLHA9YnQrNDB8MCxEPWJ0KzMyfDAsRz1idCsyNHwwLFI9YnQrMTZ8MCxNPWJ0Kzh8MCxrPWJ0LGx0PTB8YVsxNisobHw9MCk+PjJdLEVuKGwsNzQw''@;'; + put 'put ''NDQpLDB8ZmVbZis0OD4+MF0pe2Nhc2UgMTA4OkVuKGwsNzQwNTApO2JyZWFrO2Nhc2UgMTE0OkVuKGwsNzQwNzEpO2JyZWFrO2RlZmF1bHQ6RW4obCw3NDA5MCl9aWYoX1soa3Q9Yys4fDApPj4zXT1TdD0rX1trdD4+M10rICtfW2YrMjQ+PjNdLDUxMiZydFsoa3Q9bHQrMjYwfDApPj4xXXx8''@;'; + put 'put ''KEVuKGwsNzQxMTIpLGpzKGwsK19bYz4+M10pLEVuKGwsNzQxMTcpLGpzKGwsLVN0KSxFbihsLDk4NzQ0KSksYj0wfGFbOCsoYz0wfGFbKE9lPWYrNHwwKT4+Ml0pPj4yXSl7c3dpdGNoKDB8YVsyNDQrKDB8YVsxNisoMHxhWzE2OCsoMHxhW2w+PjJdKT4+Ml0pPj4yXSk+PjJdKXtjYXNlIDE6''@;'; + put 'put ''dz1iLGM9YisxNnwwLHA9Yis4fDA7YnJlYWs7Y2FzZSAyOnc9YisyNHwwLGM9YiszMnwwLHA9YisyOHwwO2JyZWFrO2RlZmF1bHQ6dz1iKzR8MCxjPWIrMTZ8MCxwPWIrOHwwfW09MHxhW2M+PjJdLGM9MHxhW3A+PjJdLEE9MHxhW2IrMTI+PjJdLGFbaz4+Ml09YVt3Pj4yXSxPcihsLDc0MTIz''@;'; + put 'put ''LGspLDB8KHA9MHxhW2IrMjQ+PjJdKSYmKGFbTT4+Ml09cCxPcihsLDc0MTQwLE0pKSxFbihsLDk4NzQ0KSwwfGMmJihhW1I+PjJdPWMsT3IobCw3NDE0NCxSKSksMHxBJiYoYVtHPj4yXT1BLE9yKGwsNzQxNjIsRykpLG0/KGFbRD4+Ml09bSxPcihsLDc0MTgxLEQpKTptPTB9ZWxzZSBhW3A+''@;'; + put 'put ''PjJdPWFbYz4+Ml0sT3IobCw3NDE5OCxwKSxtPTAsYz0wO3N3aXRjaCgwfChwPTB8YVtPZT4+Ml0pJiYxMjcmKFJlPTB8YVtwKzI0Pj4yXSl8MCYmKDAhPSgwfGMpfDA9PSgxJlJlfDApfHxPcihsLDc0MjE2LEspLDAhPSgwfG0pfDA9PSgyJlJlfDApfHxPcihsLDc0MjM2LHBlKSwxMDAmUmV8''@;'; + put 'put ''MCYmKE9yKGwsNzQyNTcsZ2UpLDQmUmU/KE9yKGwsMTA1OTg2LGJlKSxjPTEpOmM9MCw2NCZSZSYmKGFbTGU+PjJdPTB8Yz8xMDA5OTk6MTk1MDU5LE9yKGwsNzQyNzYsTGUpLGM9MSksMzImUmV8MCYmKGFbSGU+PjJdPTB8Yz8xMDA5OTk6MTk1MDU5LE9yKGwsNzQyODcsSGUpKSxPcihsLDk4''@;'; + put 'put ''NzQ0LFZlKSksOCZSZXwwJiZPcihsLDc0MzAyLHFlKSwxNiZSZXwwJiZPcihsLDc0MzI2LG50KSksX1tXZT4+M109K19bMTYrKDB8YVtPZT4+Ml0pPj4zXSxPcihsLDc0MzQ4LFdlKSxjPWx0KzE2fDAsMHxhW2x0KzQ4Pj4yXSl7Y2FzZSA1OjB8eTAoYz0wfGFbYz4+Ml0sMTM3MzE0KSYmKGFb''@;'; + put 'put ''RXQ+PjJdPWMsT3IobCw3NDM2NixFdCkpO2JyZWFrO2Nhc2UgMTpXZT0wfEp0W2MrMT4+MF0sRXQ9MHxKdFtjKzI+PjBdLGFbb3Q+PjJdPUp0W2M+PjBdLGFbb3QrND4+Ml09V2UsYVtvdCs4Pj4yXT1FdCxPcihsLDc0Mzc3LG90KTticmVhaztkZWZhdWx0OlByKDEzODM5NCw3MzU1OCw0ODYs''@;'; + put 'put ''NzQzOTkpfUVuKGwsNzQ0MTIpLDUxMiZydFtrdD4+MV0mJihhW1p0Pj4yXT0wfE0xKDB8YVtsdCsyMTI+PjJdKSxPcihsLDc0NDE0LFp0KSxFbihsLDc0NDYzKSxqcyhsLC1TdCksRW4obCw3NDQ4MSkpLEVuKGwsMHxSSCgwfGFbZj4+Ml0sMSkpLDUxMiZydFtrdD4+MV0mJk9yKGwsNzQ0ODQs''@;'; + put 'put ''Y3QpLEVuKGwsNzQ1MDQpLGFlPWJ0fSxmdW5jdGlvbiBBN2UobCxjLGYpe2x8PTAsY3w9MDt2YXIgcD0wO3N3aXRjaCgwfChmfD0wKSl7Y2FzZSAyOnA9MHxxVyhsLGMsMik7YnJlYWs7Y2FzZSAzOnA9MHxlWShsKTticmVhaztkZWZhdWx0OnA9MH1FbihsLDc0MDA4KSxJRihsLGYscCksRW4o''@;'; + put 'put ''bCw3NDAxNyksanMobCwrX1tjPj4zXSksRW4obCw3NDAyMyksanMobCwtK19bKGY9Yys4fDApPj4zXSksRW4obCw3NDAzMCksanMobCwrX1tjKzE2Pj4zXS0rX1tjPj4zXSksRW4obCw3NDAzNyksanMobCwrX1tjKzI0Pj4zXS0rX1tmPj4zXSksRW4obCw3MzQyNCl9LGZ1bmN0aW9uIE5pZShs''@;'; + put 'put ''LGMsZil7Y3w9MCxmfD0wO3ZhciBwPTA7Zm9yKEVuKGx8PTAsNzM0MDQpLElGKGwsMCwwKSxFbihsLDczNDE0KSxwPTA7ISgoMHxwKT49KDB8ZikpOylqcyhsLCtfW2MrKHA8PDQpPj4zXSksRW4obCwxMDA5OTkpLGpzKGwsLStfW2MrKHA8PDQpKzg+PjNdKSxFbihsLDEwMjYwNCkscD1wKzF8''@;'; + put 'put ''MDtFbihsLDczNDI0KX0sZnVuY3Rpb24gUzdlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIGssTSxwPTAsbT0wLEE9MCx3PTAsYj0wO2lmKE09YWUsYWU9YWUrNDh8MCxBPU0rOHwwLGs9TSwwfGFbMTQ0KyhwPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0mJjB8KHc9fn4oK19bbCszNTI+PjNdKitfWzE2''@;'; + put 'put ''KygwfGFbKGI9Zis0fDApPj4yXSk+PjNdKSkpe1VUKGwpLEVuKGwsNzUzMzQpLF9bKG09Yys4fDApPj4zXT0rX1ttPj4zXS0uNTUqKygwfHcpLGFbQT4+Ml09YVtjPj4yXSxhW0ErND4+Ml09YVtjKzQ+PjJdLGFbQSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2MrMTI+PjJdLG5oKGws''@;'; + put 'put ''QSksRW4obCw3NTM0OCksRW4obCwwfGFbZj4+Ml0pLEVuKGwsNzUzNTcpLEVuKGwsNzUxNTUpLGM9cCsxNnwwLHA9KG09QSkrNDB8MDtkb3thW20+PjJdPWFbYz4+Ml0sbT1tKzR8MCxjPWMrNHwwfXdoaWxlKCgwfG0pPCgwfHApKTtzd2l0Y2goR0EobCxBKSxFbihsLDc1MzU5KSxiPTB8YVso''@;'; + put 'put ''MD09KDB8KGI9MHxhWzgrKEE9MHxhW2I+PjJdKT4+Ml0pKT9BOmIrNHwwKT4+Ml0sRW4obCw5ODc0NCksRW4obCxiKSxFbihsLDk4NzQ0KSxhW2s+PjJdPXcsT3IobCw3NTM2OCxrKSwwfGZlW2YrNDg+PjBdKXtjYXNlIDEwODpFbihsLDc1MzczKTticmVhaztjYXNlIDExNDpFbihsLDc1Mzg0''@;'; + put 'put ''KX1RVChsKSxFbihsLDE1MzU5OSl9YWU9TX0sZnVuY3Rpb24gTTdlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIG0sQSx3LGIscD0wLGs9MCxNPTAsRD0wO2lmKGI9YWUsYWU9YWUrNDh8MCxtPWIsMHxhWyh3PTE0NCsoQT0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdKXtNPStfW2MrMjQ+PjNdLGs9''@;'; + put 'put ''K19bKHA9Yys4fDApPj4zXSxfW2M+PjNdPShEPStfW2M+PjNdKS0rX1tjKzE2Pj4zXStELF9bcD4+M109ay1NK2ssVVQobCksRW4obCw3NTMyMCksRzMobCxjLDIpLEVuKGwsNzUxNTUpO2Rve2lmKCFmKXtpZigwfGFbNDY3MjNdKXtFbihsLDEzNzE5OCk7YnJlYWt9RW4obCw5NzMwOSk7YnJl''@;'; + put 'put ''YWt9Zj1BKzU2fDAscD0oYz1tKSs0MHwwO2Rve2FbYz4+Ml09YVtmPj4yXSxjPWMrNHwwLGY9Zis0fDB9d2hpbGUoKDB8Yyk8KDB8cCkpO0dBKGwsbSl9d2hpbGUoMCk7MT09KDB8YVs0NjcyM10pJiYoYVs0NjcyM109MCksRW4obCw3NTI2NiksanMobCwrX1tBKzE1Mj4+M10pLEVuKGwsNzUz''@;'; + put 'put ''MDkpLGY9QSsxNnwwLHA9KGM9bSkrNDB8MDtkb3thW2M+PjJdPWFbZj4+Ml0sYz1jKzR8MCxmPWYrNHwwfXdoaWxlKCgwfGMpPCgwfHApKTtHQShsLG0pLDE9PSgwfChjPTB8YVt3Pj4yXSkpJiYoRW4obCw3NTE2MyksYz0wfGFbdz4+Ml0pLDI9PSgwfGMpJiZFbihsLDc1MTcyKSxRVChsKSxF''@;'; + put 'put ''bihsLDE1MzU5OSl9YWU9Yn0sZnVuY3Rpb24gVDdlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsQSx3LGIsbT0wO2lmKGI9YWUsYWU9YWUrNDh8MCxBPWIsMHxhWyh3PTE0NCsocD0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdKXtVVChsKSxFbihsLDc1MTQxKSxHMyhsLGMsZiksRW4obCw3NTE1''@;'; + put 'put ''NSksYz1wKzE2fDAsZj0obT1BKSs0MHwwO2Rve2FbbT4+Ml09YVtjPj4yXSxtPW0rNHwwLGM9Yys0fDB9d2hpbGUoKDB8bSk8KDB8ZikpO0dBKGwsQSksMT09KDB8KGM9MHxhW3c+PjJdKSkmJihFbihsLDc1MTYzKSxjPTB8YVt3Pj4yXSksMj09KDB8YykmJkVuKGwsNzUxNzIpLFFUKGwpLEVu''@;'; + put 'put ''KGwsMTUzNTk5KX1hZT1ifSxmdW5jdGlvbiBQN2UobCxjLGYpe2N8PTA7dmFyIGssTSxELFIsRyxLLHBlLGdlLGJlLE9lLFJlLFZlLHFlLHA9MCxtPTAsQT0wLHc9MCxiPTAsTGU9MCxIZT0wO3N3aXRjaChWZT1hZSxhZT1hZSsxMTJ8MCxSZT1WZSs5NnwwLEhlPVZlKzg4fDAsT2U9VmUrODB8''@;'; + put 'put ''MCxSPVZlKzcyfDAsYmU9VmUrNjR8MCxwZT1WZSs1NnwwLEs9VmUrNDh8MCxHPVZlKzQwfDAsRD1WZSsyNHwwLE09VmUrOHwwLGs9VmUsTGU9MHxhWzE2KyhsfD0wKT4+Ml0sMHxmZVs0OCsoZnw9MCk+PjBdKXtjYXNlIDEwODpBPStfW2M+PjNdLGI9K19bZiszMj4+M107YnJlYWs7Y2FzZSAx''@;'; + put 'put ''MTQ6QT0rX1tjPj4zXS0oYj0rX1tmKzMyPj4zXSk7YnJlYWs7ZGVmYXVsdDpBPStfW2M+PjNdLS41KihiPStfW2YrMzI+PjNdKX1zd2l0Y2goKG09K19bKHA9Zis0MHwwKT4+M10pPCh3PStfWzE2KygwfGFbKGdlPWYrNHwwKT4+Ml0pPj4zXSkmJihfW3A+PjNdPW09MS4xKncrMSkscWU9QSst''@;'; + put 'put ''OCx3PSsoKDB8YVs0NjcyN10pPj4+MCktK19bYys4Pj4zXS1tKy4yKncrKHc8MTI/MS40OjIpLE9yKGwsNzYwMDUsayksX1tNPj4zXT1xZSxfW00rOD4+M109dyxPcihsLDc1OTQyLE0pLF9bRD4+M109QSs4K2ItcWUsX1tEKzg+PjNdPW0sT3IobCw3NTk2NixEKSxFbihsLDc2MDQwKSxFbihs''@;'; + put 'put ''LDc2MDc0KSwoYz0wfGFbOCsocD0wfGFbZ2U+PjJdKT4+Ml0pPyhhW0c+PjJdPWFbYys0Pj4yXSxPcihsLDc2MTY0LEcpLDB8KHA9MHxhW2MrOD4+Ml0pJiYoYVtLPj4yXT1wLE9yKGwsNzYxODMsSykpLDB8KHA9MHxhW2MrMTI+PjJdKSYmKGFbcGU+PjJdPXAsT3IobCw3NjIwMCxwZSkpLDB8''@;'; + put 'put ''KHA9MHxhW2MrMTY+PjJdKSYmKGFbYmU+PjJdPXAsT3IobCw3NjIxOCxiZSkpKTooYVtSPj4yXT1hW3A+PjJdLE9yKGwsNzYxNjQsUikpLF9bT2U+PjNdPStfWzE2KygwfGFbZ2U+PjJdKT4+M10sT3IobCw3NjIzNCxPZSkscD1MZSsxNnwwLDB8YVtMZSs0OD4+Ml0pe2Nhc2UgNTowfHkwKHA9''@;'; + put 'put ''MHxhW3A+PjJdLDEzNzMxNCkmJihhW0hlPj4yXT1wLE9yKGwsNzYyNTQsSGUpKTticmVhaztjYXNlIDE6TGU9MHxKdFtwKzE+PjBdLEhlPTB8SnRbcCsyPj4wXSxhW1JlPj4yXT1KdFtwPj4wXSxhW1JlKzQ+PjJdPUxlLGFbUmUrOD4+Ml09SGUsT3IobCw3NjI2NCxSZSk7YnJlYWs7ZGVmYXVs''@;'; + put 'put ''dDpQcigxMzgzOTQsNzU3MjgsNDM4LDc2Mjg1KX1FbihsLDc2Mjk4KSxFbihsLDB8bmkoMHxhW2Y+PjJdKSksRW4obCw3NjMwOSksRW4obCw3NjMzMiksYWU9VmV9LGZ1bmN0aW9uIGppZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBwLG0sQSx3LGIsTSxrPTA7cD1hZSxhZT1hZSszMnwwLG09cCsx''@;'; + put 'put ''NnwwLGI9cCxFbihsfD0wLDc1OTA2KSxBPShrPStfW2MrMjQ+PjNdKS0rX1tjKzg+PjNdLGs9KygoMHxhWzQ2NzI3XSk+Pj4wKS1rLF9bYj4+M109KE09K19bYz4+M10pLSh3PStfW2MrMTY+PjNdLU0pLF9bYis4Pj4zXT1rLE9yKGwsNzU5NDIsYiksX1ttPj4zXT0yKncsX1ttKzg+PjNdPTIq''@;'; + put 'put ''QSxPcihsLDc1OTY2LG0pLG5ZKGwsZiksRW4obCw3NTc4OCksSlQobCksRW4obCw3NTk5NCksYWU9cH0sZnVuY3Rpb24gRjdlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHcsYixrLHA9MCxtPTAsQT0wLE09MDtmb3Ioaz1hZSxhZT1hZSs0OHwwLGI9aysyNHwwLHc9ays4fDAsbT1rLEVuKGx8PTAs''@;'; + put 'put ''NzU1MTEpLEE9MHxhWzQ2NzI3XSxhW20+PjJdPWFbNDY3MjZdLGFbbSs0Pj4yXT1BLE9yKGwsNzU1NDgsbSksRW4obCw3NTU4OCksbT1mKy0xfDAsQT1jKzh8MCxwPTA7ISgoMHxwKT49KDB8ZikpOylwPyhNPSsoKDB8YVs0NjcyN10pPj4+MCktK19bYysocDw8NCkrOD4+M10sX1tiPj4zXT0r''@;'; + put 'put ''X1tjKyhwPDw0KT4+M10sX1tiKzg+PjNdPU0sT3IobCw3NTYwNCxiKSk6KEVuKGwsNzU2MDApLE09KygoMHxhWzQ2NzI3XSk+Pj4wKS0rX1tBPj4zXSxfW3c+PjNdPStfW2M+PjNdLF9bdys4Pj4zXT1NLE9yKGwsNzU2MDQsdyksRW4obCw3NTYxNSkpLCgwfHApPT0oMHxtKSYmRW4obCw3NTYx''@;'; + put 'put ''OSkscD1wKzF8MDtFbihsLDc1NjIzKSxKVChsKSxFbihsLDc1NjI3KSxhZT1rfSxmdW5jdGlvbiBLVChsLGMsZil7bHw9MCxjfD0wO3ZhciBELEcsSyxwZSxnZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wO3N3aXRjaChHPWFlLGFlPWFlKzE0NHwwLE09RysxMDR8MCxSPUcrNTZ8''@;'; + put 'put ''MCxiPUcrMzJ8MCxBPUcrMjR8MCxwPStfWzE2KyhtPTB8YVsoRD00KyhmfD0wKXwwKT4+Ml0pPj4zXSxtPTB8YVttPj4yXSxhWyhrPUcpPj4yXT1hW2Y+PjJdLF9bays4Pj4zXT1wLGFbaysxNj4+Ml09bSxPcihsLDc5MDQwLGspLGpuWzQ2NzI5XT0ram5bNDY3MjhdLTksMHxmZVtmKzQ4Pj4w''@;'; + put 'put ''XSl7Y2FzZSAxMDg6cD0rX1tjPj4zXTticmVhaztjYXNlIDExNDptPWMscD0rX1tjPj4zXS0rX1tmKzMyPj4zXSx3PTU7YnJlYWs7ZGVmYXVsdDptPWMscD0rX1tjPj4zXS0uNSorX1tmKzMyPj4zXSx3PTV9NT09KDB8dykmJihfW20+PjNdPXApLHBlPSgrX1tsKzUwND4+M10rcCkqKGdlPStf''@;'; + put 'put ''W2wrNDg4Pj4zXSksSz0oK19bbCs1MTI+PjNdKyArX1tjKzg+PjNdKSorX1tsKzQ5Nj4+M10sX1tBPj4zXT0rX1sxNisoMHxhW0Q+PjJdKT4+M10qZ2Usaz0wfEVhKGwsNzkwOTIsQSkscD0rKDB8YVtsKzM2MD4+Ml0pLF9bYj4+M109MCxfW2IrOD4+M109MCxfW2IrMTY+PjNdPXAsbT0wfEVh''@;'; + put 'put ''KGwsNzgzMDksYikscD0ram5bNDY3MjldLF9bTT4+M109cGUsX1tNKzg+PjNdPUssX1tNKzE2Pj4zXT1wLGM9MHxFYShsLDc4MzQxLE0pLHc9MTYrKDB8YVtsKzE2Pj4yXSl8MCxiPShBPU0pKzQwfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxi''@;'; + put 'put ''KSk7TT0wfFdBKGwsTSwwKSxmPTB8YVtmPj4yXSxhW1I+PjJdPWFbYVtEPj4yXT4+Ml0sX1tSKzg+PjNdPS4yNSxfW1IrMTY+PjNdPTAsYVtSKzI0Pj4yXT1mLGFbUisyOD4+Ml09NzkxNzksYVtSKzMyPj4yXT1rLGFbUiszNj4+Ml09bSxhW1IrNDA+PjJdPWMsYVtSKzQ0Pj4yXT1NLEVuKGws''@;'; + put 'put ''Uj0wfEVhKGwsNzkxMDQsUikpLEZ0KFIpLEZ0KG0pLEZ0KE0pLEZ0KGMpLEZ0KGspLGFlPUd9LGZ1bmN0aW9uIFU3ZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBNLEQsUixHLEsscGUsZ2UsVmUscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLHFlPTA7VmU9''@;'; + put 'put ''YWUsYWU9YWUrMjQwfDAsUmU9VmUrMTkyfDAsSGU9VmUrMTUyfDAsZ2U9VmUrMTI4fDAsSz1WZSsxMDR8MCxEPVZlKzgwfDAsTT1WZSs0OHwwLHA9VmUrMjR8MCxrPVZlLEVuKGx8PTAsNzg5MTcpLGpuWzQ2NzI5XT0ram5bNDY3MjhdLTYsUj0oK19bbCs1MDQ+PjNdKyhBPStfW2M+PjNdKSkq''@;'; + put 'put ''KHc9K19bbCs0ODg+PjNdKSxHPSgrX1tsKzUxMj4+M10rKHFlPStfW2MrOD4+M10pKSooYj0rX1tsKzQ5Nj4+M10pLEE9K19bMTUyKygwfGFbKHBlPWwrMTZ8MCk+PjJdKT4+M10vKHFlPShiKj0rX1tjKzI0Pj4zXS1xZSkrKHcqPStfW2MrMTY+PjNdLUEpKSoyLjUsX1trPj4zXT13LF9bays4''@;'; + put 'put ''Pj4zXT0uMjUqcWUsX1trKzE2Pj4zXT1iLGM9MHxFYShsLDc4Mjc3LGspLHFlPSsoMHxhWyhrPWwrMzYwfDApPj4yXSksX1twPj4zXT05MCxfW3ArOD4+M109MCxfW3ArMTY+PjNdPXFlLHA9MHxFYShsLDc4MzA5LHApLHFlPStqbls0NjcyOV0sX1tSZT4+M109UixfW1JlKzg+PjNdPUcsX1tS''@;'; + put 'put ''ZSsxNj4+M109cWUsbT0wfEVhKGwsNzgzNDEsUmUpLE9lPTE2KygwfGFbcGU+PjJdKXwwLExlPShiZT1SZSkrNDB8MDtkb3thW2JlPj4yXT1hW09lPj4yXSxiZT1iZSs0fDAsT2U9T2UrNHwwfXdoaWxlKCgwfGJlKTwoMHxMZSkpO2lmKE9lPTB8V0EobCxSZSwwKSxfW00+PjNdPTEsX1tNKzg+''@;'; + put 'put ''PjNdPUEsYVtNKzE2Pj4yXT1jLGFbTSsyMD4+Ml09cCxhW00rMjQ+PjJdPW0sYVtNKzI4Pj4yXT1PZSxFbihsLExlPTB8RWEobCw3ODkzMixNKSksRnQoYyksRnQocCksRnQobSksRnQoT2UpLEZ0KExlKSwwfGYpe19bRD4+M109dyxfW0QrOD4+M109YixfW0QrMTY+PjNdPTEsbT0wfEVhKGws''@;'; + put 'put ''NzgyNzcsRCkscWU9KygwfGFbaz4+Ml0pLF9bSz4+M109MCxfW0srOD4+M109MCxfW0srMTY+PjNdPXFlLHA9MHxFYShsLDc4MzA5LEspLHFlPStqbls0NjcyOV0sX1tnZT4+M109UixfW2dlKzg+PjNdPUcsX1tnZSsxNj4+M109cWUsYz0wfEVhKGwsNzgzNDEsZ2UpLE9lPTU2KygwfGFbcGU+''@;'; + put 'put ''PjJdKXwwLExlPShiZT1SZSkrNDB8MDtkb3thW2JlPj4yXT1hW09lPj4yXSxiZT1iZSs0fDAsT2U9T2UrNHwwfXdoaWxlKCgwfGJlKTwoMHxMZSkpO1JlPTB8V0EobCxSZSwwKSxfW0hlPj4zXT0wLF9bSGUrOD4+M109MCxfW0hlKzE2Pj4zXT0wLGFbSGUrMjQ+PjJdPW0sYVtIZSsyOD4+Ml09''@;'; + put 'put ''cCxhW0hlKzMyPj4yXT1jLGFbSGUrMzY+PjJdPVJlLEVuKGwsSGU9MHxFYShsLDc4OTc4LEhlKSksRnQobSksRnQocCksRnQoYyksRnQoUmUpLEZ0KEhlKX1hZT1WZX0sZnVuY3Rpb24gWDdlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIGIsRCxSLEsscGUsYmUsT2UscD0wLG09MCxBPTAsdz0wLGs9''@;'; + put 'put ''MCxNPTAsRz0wLGdlPTAsTGU9MCxSZT0wLEhlPTA7T2U9YWUsYWU9YWUrMTYwfDAscD1PZSsxMjB8MCxiZT1PZSsxMTJ8MCxnZT1PZSs5NnwwLHBlPU9lKzg4fDAsSz1PZSs1NnwwLGs9T2UrNDh8MCxNPU9lKzI0fDAsRz1PZSxFbihsfD0wLDc4MjYxKSxqbls0NjcyOV09K2puWzQ2NzI4XS02''@;'; + put 'put ''LExlPStfW2wrNDk2Pj4zXSxfW0c+PjNdPStfW2wrNDg4Pj4zXSxfW0crOD4+M109TGUsX1tHKzE2Pj4zXT0xLEc9MHxFYShsLDc4Mjc3LEcpLExlPSsoMHxhW2wrMzYwPj4yXSksX1tNPj4zXT0wLF9bTSs4Pj4zXT0wLF9bTSsxNj4+M109TGUsTT0wfEVhKGwsNzgzMDksTSksTGU9K2puWzQ2''@;'; + put 'put ''NzI5XSxfW3A+PjNdPTAsX1twKzg+PjNdPTAsX1twKzE2Pj4zXT1MZSxEPTB8RWEobCw3ODM0MSxwKSxBPTE2KygwfGFbKFI9bCsxNnwwKT4+Ml0pfDAsdz0obT1wKSs0MHwwO2Rve2FbbT4+Ml09YVtBPj4yXSxtPW0rNHwwLEE9QSs0fDB9d2hpbGUoKDB8bSk8KDB8dykpO2ZvcihBPTB8V0Eo''@;'; + put 'put ''bCxwLDApLGFbaz4+Ml09Nzg0MDQsYVtrKzQ+PjJdPWYsdz1sKzUwNHwwLGI9bCs1MTJ8MCxtPTAscD0wfEVhKGwsNzgzNzMsayk7ISgoMHxtKT49KDB8ZikpOylIZT0rX1tiPj4zXSsgK19bYysobTw8NCkrOD4+M10sTGU9K19bMTUyKygwfGFbUj4+Ml0pPj4zXSxfW0s+PjNdPStfW3c+PjNd''@;'; + put 'put ''KyArX1tjKyhtPDw0KT4+M10sX1tLKzg+PjNdPUhlLF9bSysxNj4+M109MCxfW0srMjQ+PjNdPUxlLFJlPTB8RWEobCw3ODQxOCxLKSxhW3BlPj4yXT1wLGFbcGUrND4+Ml09UmUsaz0wfEVhKGwsNzg0NDcscGUpLEZ0KFJlKSxGdChwKSxtPW0rMXwwLHA9azthW2dlPj4yXT1HLGFbZ2UrND4+''@;'; + put 'put ''Ml09TSxhW2dlKzg+PjJdPUQsYVtnZSsxMj4+Ml09QSxnZT0wfEVhKGwsNzg0NTYsZ2UpLGFbYmU+PjJdPXAsYVtiZSs0Pj4yXT1nZSxSZT0wfEVhKGwsNzg1MDIsYmUpLEZ0KGdlKSxFbihsLFJlKSxGdChHKSxGdChNKSxGdChEKSxGdChBKSxGdChSZSksYWU9T2V9LGZ1bmN0aW9uIGNzKGws''@;'; + put 'put ''YyxmKXtsfD0wLGN8PTA7dmFyIGssTSxSLEcsSyxwPTAsbT0wLEE9MCx3PTAsYj0wLEQ9MDtzd2l0Y2goSz1hZSxhZT1hZSs0OHwwLEc9SysyNHwwLFI9Sys4fDAsRD1LLDB8ZmVbNDgrKGZ8PTApPj4wXSl7Y2FzZSAxMDg6Yj1jLEE9K19bZiszMj4+M10sdz0rX1tjPj4zXTticmVhaztjYXNl''@;'; + put 'put ''IDExNDptPUE9K19bZiszMj4+M10scD01O2JyZWFrO2RlZmF1bHQ6bT0uNSooQT0rX1tmKzMyPj4zXSkscD01fTU9PSgwfHApJiYoX1tjPj4zXT13PStfW2M+PjNdLW0sYj1jKSxfWyhjPWMrOHwwKT4+M109TT0rX1tjPj4zXSsuMDA0NjI5NjI5NjI5NjI5NjI5KihtPStfWzE2KyhwPTB8YVso''@;'; + put 'put ''az1mKzR8MCk+PjJdKT4+M10pLF9bYj4+M109QT13Ky4wMDY5NDQ0NDQ0NDQ0NDQ0NDQqQSxwPTB8YVtwPj4yXTtkb3tpZihwKXtpZigwfChjPTB8YVs0NjczMF0pJiYwPT0oMHxqaShjLHApKSlicmVhazthW0Q+PjJdPTB8UWllKHApLE9yKGwsODExNzMsRCksYVs0NjczMF09YVsoRD0wfGFb''@;'; + put 'put ''az4+Ml0pPj4yXSxtPStfW0QrMTY+PjNdfX13aGlsZSgwKTsoMHwocD0oMHwocD1+fm0pKT4xP3A6MSkpIT0oMHxhWzQ2NzMxXSkmJih3PStfWzE5MjE0XSxhW1I+PjJdPXAsX1tSKzg+PjNdPXcsT3IobCw4MTE4MSxSKSxhWzQ2NzMxXT1wKSxhW0c+PjJdPTB8ZnVuY3Rpb24gTEYobCl7bHw9''@;'; + put 'put ''MDt2YXIgQSx3LGM9MCxmPTAscD0wLG09MDtmb3Iodz1hZSxhZT1hZSsxNnwwLEE9dywoYz0wfGFbNDY3MzJdKXx8KGFbNDY3MzNdPTY0LGM9MHxCMCg2NCksYVs0NjczMl09YyksZj0wO209bCsxfDAsKHA9MHxmZVtsPj4wXSk8PDI0Pj4yNDspKDB8Zik+KChsPTB8YVs0NjczM10pLTh8MCkm''@;'; + put 'put ''JihhWzQ2NzMzXT1jPWw8PDEsYz0wfFVhKDB8YVs0NjczMl0sYyksYVs0NjczMl09YyxjPWMrZnwwKSxwPDwyND4+MjQ8PS0xPyhmZVtjPj4wXT05MixhW0E+PjJdPTI1NSZwLG9vKGMrMXwwLDgxMjI0LEEpLGw9bSxjPWMrNHwwLGY9Zis0fDApOihwPDwyND4+MjQ9PTkyJiYoZmVbYz4+MF09''@;'; + put 'put ''OTIsZj1mKzF8MCxjPWMrMXwwKSxmZVtjPj4wXT1wLGw9bSxjPWMrMXwwLGY9ZisxfDApO3JldHVybiBmZVtjPj4wXT0wLGFlPXcsMHxhWzQ2NzMyXX0oMHxhW2Y+PjJdKSxfW0crOD4+M109QSxfW0crMTY+PjNdPU0sT3IobCw4MTIwMixHKSxhZT1LfSxmdW5jdGlvbiBXaWUobCxjLGYpe3Zh''@;'; + put 'put ''ciBwLG0sQSx3LGIsaztsfD0wLGZ8PTAscD1hZSxhZT1hZSs0OHwwLGs9LjAyNzc3Nzc3Nzc3Nzc3Nzc3NiooK19bMTYrKGN8PTApPj4zXS0odz0rX1tjPj4zXSkpLGI9LjAyNzc3Nzc3Nzc3Nzc3Nzc3NiooK19bYysyND4+M10tKEE9K19bYys4Pj4zXSkpLGFbKG09cCk+PjJdPTEsYVttKzQ+''@;'; + put 'put ''PjJdPTB8Zj84MTExNToxOTUwNTksX1ttKzg+PjNdPWssX1ttKzE2Pj4zXT1iLF9bbSsyND4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCp3LF9bbSszMj4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCpBLE9yKGwsODExMjEsbSksYWU9cH0sZnVuY3Rpb24gYVkobCxjLGYpe3ZhciBwO2N8PTAsZnw9''@;'; + put 'put ''MCxwPWFlLGFlPWFlKzE2fDAsREYoMHxhWzE2KyhsfD0wKT4+Ml0scCs4fDAscCksbFkobCxjLGYsMCksYWU9cH0sZnVuY3Rpb24gaW9lKGwsYyxmKXtoMChjfD0wLDg3MjMwLDB8YVsoZnw9MCk+PjJdLDEpfSxmdW5jdGlvbiBjVShsLGMsZil7aDAoY3w9MCw4NzM5NywwfGFbNCsoZnw9MCk+''@;'; + put 'put ''PjJdLDEpfSxmdW5jdGlvbiBvb2UobCxjLGYpe2gwKGN8PTAsODczODIsMHxhWzgrKGZ8PTApPj4yXSwxKX0sZnVuY3Rpb24gREoobCxjLGYpe0Z0KGN8PTApfSxmdW5jdGlvbiBNQShsLGMsZil7RnQoY3w9MCl9LGZ1bmN0aW9uIHRUKGwsYyxmKXtGdChjfD0wKX0sZnVuY3Rpb24gTFAobCxj''@;'; + put 'put ''LGYpe2UwKDB8YVs0Njk0Ml0sMHxhWzgrKGN8PTApPj4yXSksZTAoMHxhWzQ2OTQyXSwwfGFbYysxMj4+Ml0pLHh0KDB8YVs0Njk0Ml0sYyl9LGZ1bmN0aW9uIE5QKGwsYyxmKXt9LGZ1bmN0aW9uIFl0KGwsYyxmKXtsfD0wLCgyOCsobD0wfGFbMTYrKGN8PTApPj4yXSl8MCkhPSgwfGMpJiZ4''@;'; + put 'put ''dCgwfGFbbCsyND4+Ml0sYyl9LGZ1bmN0aW9uIGpvKGwsYyxmKXsoZnVuY3Rpb24gd2EobCl7dmFyIGMsZj0wO2ZvcihjPTE2KyhsfD0wKXwwLGw9MHxhW2wrMjQ+PjJdO2w7KWY9MHxhW2wrND4+Ml0seHQoMHxhW2M+PjJdLGwpLGw9Zn0pKGN8PTApLHh0KDB8YVtjKzE2Pj4yXSxjKX0sZnVu''@;'; + put 'put ''Y3Rpb24gWW5lKGwsYyxmKXtsfD0wLGN8PTAsKGw9MHxhWzQ2OTg0XSk/eHQobCxjKTpGdChjKX0sZnVuY3Rpb24gYnJlKGwsYyxmKXtsfD0wO3ZhciBwPTA7MHwobD0wfGFbMjArKGN8PTApPj4yXSkmJmV3KGwpLDB8YVtjKzUyPj4yXSYmMHwocD0wfGFbYys2MD4+Ml0pJiZDb1sxMjcmcF0o''@;'; + put 'put ''YyksRnQoYyl9LGZ1bmN0aW9uIG5RKGwsYyxmKXtGdChjfD0wKX0sZnVuY3Rpb24gY2FlKGwsYyxmKXtGdChjfD0wKX0sZnVuY3Rpb24gZ2FlKGwsYyxmKXthWyhjfD0wKT4+Ml09YVsoZj0zNisoZnw9MCl8MCk+PjJdLGFbZj4+Ml09Y30sZnVuY3Rpb24gQlEobCxjLGYpe0Z0KDB8YVs1Miso''@;'; + put 'put ''Y3w9MCk+PjJdKX0sZnVuY3Rpb24geGxlKGwsYyxmKXtGdChjfD0wKX0sZnVuY3Rpb24gSWxlKGwsYyxmKXtGdChjfD0wKX0sZnVuY3Rpb24gajgobCxjLGYpe05sKDB8YVsxNisoY3w9MCk+PjJdKSxGdChjKX0sZnVuY3Rpb24gaGIobCxjLGYpeyhmdW5jdGlvbiBnUihsKXt2YXIgZixjPTAs''@;'; + put 'put ''cD0wO2ZvcihmPTQrKGx8PTApfDAsYz0wO3A9MHxhW2Y+PjJdLCEoKDB8Yyk+PSgwfGFbbD4+Ml0pKTspTmwoMHxhW3ArKDEyKmN8MCkrOD4+Ml0pLGM9YysxfDA7RnQocCksRnQobCl9KSgwfGFbMzIrKGN8PTApPj4yXSksRnQoMHxhW2MrMjg+PjJdKSxGdChjKX0sZnVuY3Rpb24gTVIobCxj''@;'; + put 'put ''LGYpe2x8PTAsZnw9MDt2YXIgYixwPTAsbT0wLEE9MCx3PTA7c3dpdGNoKGI9YWUsYWU9YWUrMTZ8MCxwPWIsMHwoY3w9MCkpe2Nhc2UgMTphW3A+PjJdPWFbZj4+Ml0sYVtwKzQ+PjJdPWFbZis0Pj4yXSxhW3ArOD4+Ml09YVtmKzg+PjJdLGFbcCsxMj4+Ml09YVtmKzEyPj4yXSxNdihsLHAp''@;'; + put 'put ''LGZ1bmN0aW9uIEV2KGwpe3ZhciBjPTAsZj0wLHA9MDtjPTB8YVsocD01ODArKGx8PTApfDApPj4yXTtlOmRve2lmKDB8Yylzd2l0Y2goMHxraShjKSl7Y2FzZSAwOmZlWyhmPTExMisoMHxhW2MrMTY+PjJdKXwwKT4+MF09LTcmZmVbZj4+MF18NDticmVhayBlO2Nhc2UgMTpmZVsoZj0xMTcr''@;'; + put 'put ''KDB8YVtjKzE2Pj4yXSl8MCk+PjBdPS03JmZlW2Y+PjBdfDQ7YnJlYWsgZTtjYXNlIDI6ZmVbKGY9MTE1KygwfGFbYysxNj4+Ml0pfDApPj4wXT0tNyZmZVtmPj4wXXw0O2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX13aGlsZSgwKTswfChmPTB8YVsoYz1sKzU4OHwwKT4+Ml0pJiYoRnQoZiks''@;'; + put 'put ''YVtjPj4yXT0wKSxhW3A+PjJdPWM9MHxhW2wrNTc2Pj4yXTtlOmRve2lmKDB8Yylzd2l0Y2goMHxraShjKSl7Y2FzZSAwOmZlWyhwPTExMisoMHxhW2MrMTY+PjJdKXwwKT4+MF09MnxmZVtwPj4wXSxZOChsLGMpO2JyZWFrIGU7Y2FzZSAxOmZlWyhwPTExNysoMHxhW2MrMTY+PjJdKXwwKT4+''@;'; + put 'put ''MF09MnxmZVtwPj4wXSxiMyhsLGMpO2JyZWFrIGU7Y2FzZSAyOmZlWyhwPTExNSsoMHxhW2MrMTY+PjJdKXwwKT4+MF09MnxmZVtwPj4wXSxhMihsLGMpO2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX13aGlsZSgwKX0obCksZmVbbCs1Mzg+PjBdPTEsZmVbbCs1NDE+PjBdPTEsdz0xMzticmVh''@;'; + put 'put ''aztjYXNlIDI6ZmVbbCs1Mzg+PjBdPTEsZmVbbCs1NDE+PjBdPTIsdz0xMzticmVhaztjYXNlIDM6YVtwPj4yXT1hW2Y+PjJdLGFbcCs0Pj4yXT1hW2YrND4+Ml0sYVtwKzg+PjJdPWFbZis4Pj4yXSxhW3ArMTI+PjJdPWFbZisxMj4+Ml0sTXYobCxwKSxmZVtsKzUzOD4+MF09MSxmZVtsKzU0''@;'; + put 'put ''MT4+MF09Myx3PTEzO2JyZWFrO2Nhc2UgNDpmZVtsKzUzNj4+MF09MCwwfGFbbCszNjA+PjJdPyhfWyhjPWwrMzM2fDApPj4zXT0rX1tjPj4zXS0uMTAwMDAwMDAwMDAwMDAwMDkqKCtfW2YrOD4+M10tLjUqKygoMHxhW2wrNDUyPj4yXSk+Pj4wKSkvKCtfW2wrNTI4Pj4zXSooQT0rX1socD1s''@;'; + put 'put ''KzM1MnwwKT4+M10pKSxtPStfW2Y+PjNdLS41KisoKDB8YVtsKzQ0OD4+Ml0pPj4+MCksYz1sKzUyMHwwKTooX1soYz1sKzMzNnwwKT4+M109LjEwMDAwMDAwMDAwMDAwMDA5KigrX1tmPj4zXS0uNSorKCgwfGFbbCs0NDg+PjJdKT4+PjApKS8oK19bbCs1MjA+PjNdKihBPStfWyhwPWwrMzUy''@;'; + put 'put ''fDApPj4zXSkpKyArX1tjPj4zXSxtPStfW2YrOD4+M10tLjUqKygoMHxhW2wrNDUyPj4yXSk+Pj4wKSxjPWwrNTI4fDApLF9bKHc9bCszNDR8MCk+PjNdPS4xMDAwMDAwMDAwMDAwMDAwOSptLygrX1tjPj4zXSpBKSsgK19bdz4+M10sX1twPj4zXT0xLjEqQSx3PTEzO2JyZWFrO2Nhc2UgNTpm''@;'; + put 'put ''ZVtsKzUzNj4+MF09MCxfWyh3PWwrMzUyfDApPj4zXT1BPS45MDkwOTA5MDkwOTA5MDkxKitfW3c+PjNdLDB8YVtsKzM2MD4+Ml0/KF9bKHA9bCszMzZ8MCk+PjNdPS4xMDAwMDAwMDAwMDAwMDAwOSooK19bZis4Pj4zXS0uNSorKCgwfGFbbCs0NTI+PjJdKT4+PjApKS8oK19bbCs1Mjg+PjNd''@;'; + put 'put ''KkEpKyArX1twPj4zXSxtPStfW2Y+PjNdLS41KisoKDB8YVtsKzQ0OD4+Ml0pPj4+MCkscD1sKzUyMHwwKTooX1socD1sKzMzNnwwKT4+M109K19bcD4+M10tLjEwMDAwMDAwMDAwMDAwMDA5KigrX1tmPj4zXS0uNSorKCgwfGFbbCs0NDg+PjJdKT4+PjApKS8oK19bbCs1MjA+PjNdKkEpLG09''@;'; + put 'put ''K19bZis4Pj4zXS0uNSorKCgwfGFbbCs0NTI+PjJdKT4+PjApLHA9bCs1Mjh8MCksX1sodz1sKzM0NHwwKT4+M109K19bdz4+M10tLjEwMDAwMDAwMDAwMDAwMDA5Km0vKCtfW3A+PjNdKkEpLHc9MTN9MTM9PSgwfHcpJiYoZmVbbCs1Mzc+PjBdPTEpLGFbKGw9bCs1NjB8MCk+PjJdPWFbZj4+''@;'; + put 'put ''Ml0sYVtsKzQ+PjJdPWFbZis0Pj4yXSxhW2wrOD4+Ml09YVtmKzg+PjJdLGFbbCsxMj4+Ml09YVtmKzEyPj4yXSxhZT1ifSxmdW5jdGlvbiBKeihsLGMsZil7ZmVbNTM4KyhsfD0wKT4+MF09MCxmZVtsKzU0MT4+MF09MH0sZnVuY3Rpb24gQWIobCxjLGYpe30sZnVuY3Rpb24gWHoobCxjLGYp''@;'; + put 'put ''e2Z8PTA7dmFyIGIscD0wLG09MCxBPTAsdz0wO2I9MHxhWyhsfD0wKT4+Ml0sKGN8PTApPzB8KGM9MHxlUyhjLDEzODgyMSkpJiYodz0wfFFQKGMsMCksZXcoYykscD01KToodz0wfFFQKDB8YVsxNTY0N10sMCkscD01KSw1PT0oMHxwKSYmMHx3JiYoMHwoYz0wfGFbKG09YisxNjh8MCk+PjJd''@;'; + put 'put ''KSYmKDAhPSgwfChwPTB8YVtiKzE3Mj4+Ml0pKSYmMCE9KDB8KEE9MHxhW3ArND4+Ml0pKSYmKENvWzEyNyZBXShjKSxjPTB8YVttPj4yXSksZnVuY3Rpb24gZHAobCl7dmFyIGM9MCxmPTAscD0wO2M9MHxhWzgrKGY9MHxhWyhwPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXTtkb3tpZihjKXtpZigo''@;'; + put 'put ''Zj0wfGFbYys4OD4+Ml0pJiYoUHJlKGYpLCEoYz0wfGFbOCsoZj0wfGFbcD4+Ml0pPj4yXSkpKXtjPWY7YnJlYWt9RnQoMHxhW2MrOTI+PjJdKSxjPTB8YVtwPj4yXX1lbHNlIGM9Zn13aGlsZSgwKTtGdCgwfGFbYys4Pj4yXSksYVs4KyhwPTB8YVtwPj4yXSk+PjJdPTAsSWMoMHxhW3ArMTI+''@;'; + put 'put ''PjJdKSxsMihsLDAsMTM3NDgzKX0oYyksQzEoMHxhW20+PjJdKSksJGkodywwLDEzNzQ4MywyODAsMSksJGkodywxLDEzNzQ0NywzMDQsMSksJGkodywyLDEzNzQ2MCwxNzYsMSksYVttPj4yXT13LGFbMTQ0KygwfGFbdysxNj4+Ml0pPj4yXT1iLC0xIT0oMHxNVChiLHcsZikpJiYoYVtsKzU4''@;'; + put 'put ''MD4+Ml09MCxhW2wrNTc2Pj4yXT0wLGZlW2wrNTM3Pj4wXT0xKSl9LGZ1bmN0aW9uIFN2KGwsYyxmKXtjfD0wLGZ8PTA7dmFyIEEscD0wLG09MCx3PTAsYj0wOzAhPSgwfChwPTB8YVsobT0xNjArKEE9MHxhWyhsfD0wKT4+Ml0pfDApPj4yXSkpJiYwPT0oMHxhW0ErMTY0Pj4yXSk/KHc9MHxh''@;'; + put 'put ''WyhiPUErMTkyfDApPj4yXSxhW20+PjJdPTAsYVtiPj4yXT0wLG09dyk6KG09MCxwPTApLGZ1bmN0aW9uIF9yZShsLGMsZixwKXtwfD0wO3ZhciBtLEEsYix3PTA7Yj1hZSxhZT1hZSsxNnwwLEE9YixtPTB8YVs2MCsoY3w9MCk+PjJdLENUKGx8PTAsZnw9MCksYVs1NisoYz0wfGFbbCsxNjQ+''@;'; + put 'put ''PjJdKT4+Ml09MHxDdihjLDB8YVtjKzUyPj4yXSksMCE9KDB8aDAobSwxMzc0ODMsMCwxKSkmJjAhPSgwfGFbOCsoMHxhW20rMTY+PjJdKT4+Ml0pfHw2NzEwODg2NCZhW2MrMTUyPj4yXT93PTU6KFhtKDk4OTExLEEpLGM9LTEpLDU9PSgwfHcpJiYoZnVuY3Rpb24gZnJlKGwsYyl7Y3w9MDt2''@;'; + put 'put ''YXIgZj0wLHA9MDsoZj0wfGFbKHA9MTYwKyhsfD0wKXwwKT4+Ml0pPyhwPTB8YVs0Njk5OV0pJiYoKGY9MHxhW3ArND4+Ml0pfHwoZj0wfHZyKDYzMiksYVs0KygwfGFbNDY5OTldKT4+Ml09ZikpOihmPTB8dnIoNjMyKSxhW3A+PjJdPWYsYVtsKzE2ND4+Ml09ZiksYVs0Njk5OV09ZixhW2Yr''@;'; + put 'put ''MzI+PjJdPWMsYVtmPj4yXT1sfShsLHApLHc9MHxnMihsLG0pLGt2KGMpLGNyZShjKSxxUChsKSxjPXcpLGFlPWJ9KEEsMHxhW0ErMTY4Pj4yXSxjLGYpLDB8cCYmKGFbMTYwKyhiPTB8YVtsPj4yXSk+PjJdPXAsYVtiKzE5Mj4+Ml09bSl9LGZ1bmN0aW9uIGJjKGwsYyxmKXtGdChjfD0wKX0s''@;'; + put 'put ''ZnVuY3Rpb24gdUIobCxjLGYpe05sKDB8YVs4KyhjfD0wKT4+Ml0pLEZ0KGMpfSxmdW5jdGlvbiBKYihsLGMsZil7RnQoY3w9MCl9LGxDLEttLGZ1bmN0aW9uIHpyKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MDtmb3IoYVs0Njk1Nl09Y3w9MCxmPTB8U3MobCxjKTtmOylwPTB8SHMobCxmLGMp''@;'; + put 'put ''LEttKGwsZiwwKSxmPXA7bWlbNjMmYVsocD0wfGFbbCs0MD4+Ml0pPj4yXV0ocCwxODc4MDgsMiksbWlbNjMmYVsocD0wfGFbbCszNj4+Ml0pPj4yXV0ocCwxODc4MDgsMil9LHhvLGZ1bmN0aW9uIE1jKGwsYyxmKXtIaShjfD0wLGZ8PTApfSxmdW5jdGlvbiBjayhsLGMsZil7Y3w9MCxmfD0w''@;'; + put 'put ''O3ZhciBwPTAsbT0wLEE9MCx3PTA7Zm9yKGw9MTkyKygwfGFbMTYrKGx8PTApPj4yXSl8MCxwPTAsdz0wO2w9MHxhW2w+PjJdOyl7Zm9yKG09MHxhWzE4MCsoQT0wfGFbbCsxNj4+Ml0pPj4yXSxsPTA7MHxhW20rKGw8PDIpPj4yXTspbD1sKzF8MCxwPXArMXwwO2w9QSsxNjR8MCx3PXcrMXww''@;'; + put 'put ''fWFbYz4+Ml09dyxhW2Y+PjJdPXB9LGZ1bmN0aW9uIGhOKGwsYyxmKXtGdCgwfGFbKGN8PTApPj4yXSksRnQoMHxhW2MrND4+Ml0pLEZ0KGMpfSwkZCxmdW5jdGlvbiBLdShsLGMsZil7bHw9MCxmfD0wO3ZhciB3LGIsayxNLHA9MCxtPTAsQT0wO2ZvcihNPWFlLGFlPWFlKzMyfDAsdz1NLGgy''@;'; + put 'put ''KE0rMTZ8MCxjfD0wKSxiPWMrMzJ8MCxrPWMrMzZ8MCxtPTA7ISgoMHxtKT49KDB8YVtiPj4yXSkpOykoMHwocD0wfGFbMjArKEE9MHxhWygwfGFbaz4+Ml0pKyhtPDwyKT4+Ml0pPj4yXSkpPT0oMHxjKSYmKHA9MHxhW0ErMjQ+PjJdKSxDaSh3LEEscCksdjMobCxmLEEsMCksbT1tKzF8MDth''@;'; + put 'put ''W2w+PjJdPTErKDB8YVtsPj4yXSksYVtmKzI0Pj4yXT1jLGFbZisyMD4+Ml09YyxhZT1NfSxmdW5jdGlvbiB6eihsLGMsZil7bHw9MCxjfD0wO3ZhciB3LGIscD0wLG09MCxBPTAsaz0wO2ZvcihiPTIwKyhmfD0wKXwwLHc9ZisyNHwwLGY9MDshKCgwfGYpPj0oMHxsKSk7KXtmb3IobT0wfGFb''@;'; + put 'put ''YysoZjw8Myk+PjJdLEE9MHxhW2MrKGY8PDMpKzQ+PjJdLHA9MDshKCgwfHApPj0oMHxtKSk7KUZNKDB8bDYoMHxhWygwPT0oMHxmZVsoaz1BKyg1NipwfDApfDApPj4wXSk/Yjp3KT4+Ml0sayksaykscD1wKzF8MDtmPWYrMXwwfX0sZnVuY3Rpb24gUkUobCxjLGYpeyhmdW5jdGlvbiBoQihs''@;'; + put 'put ''KXt2YXIgYztzd2l0Y2goYz04OCsobHw9MCl8MCwwfGZlW2wrOTI+PjBdKXtjYXNlIDE6QkUoMHxhW2M+PjJdKTticmVhaztjYXNlIDI6VlIoMHxhW2M+PjJdKX1LOChsKSxGdChsKX0pKDB8YVs4KyhjfD0wKT4+Ml0pLEZ0KGMpfSxmdW5jdGlvbiBjQihsLGMsZil7RnQoMHxhWzgrKGN8PTAp''@;'; + put 'put ''Pj4yXSksRnQoYyl9LGZ1bmN0aW9uIFBFKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIG0scD0wLEE9MDtpZigobD0wfHJ0WyhtPTEyKyhjfD0wKXwwKT4+MV0pPDwxNj4+MTYpe2ZvcihmPTAscD0wfGFbKEE9Yys4fDApPj4yXTshKCgwfGYpPj0obDw8MTY+PjE2fDApKTspRnQoMHxhW3A+PjJdKSxm''@;'; + put 'put ''PWYrMXwwLHA9cCs1NnwwLGw9MHxydFttPj4xXTtGdCgwfGFbQT4+Ml0pfUZ0KGMpfSxmdW5jdGlvbiBwQihsLGMsZil7bHw9MCxjfD0wLGZ8PTA7ZG97aWYoMHx5MChjLDE0MDYwMykpe2lmKDB8eTAoYywxNDA2MDkpJiYwfHkwKGMsMTQwNjEyKSl7aWYoISgwfHkwKGMsMTQwNjE1KSkpe2Zl''@;'; + put 'put ''WzE4OTY2Ml09MSxhWzQ3Mzk5XT0wfG1CKGYpLGFbNDc0MDldPTI4NzticmVha31pZighKDB8eTAoYywxNDA2MjMpKSl7YVs0NzM5OV09MHx4ZChsLGYsMCksYVs0NzQwOV09Mjg4O2JyZWFrfWlmKCEoMHx5MChjLDE0MDYyOCkpKXthWzQ3Mzk5XT0wfHhkKGwsMCwxKSxhWzQ3NDA5XT0yOTA7''@;'; + put 'put ''YnJlYWt9aWYoISgwfHkwKGMsMTQwNjQ0KSkpe2FbNDczOTldPTB8eGQobCwwLDMyKSxhWzQ3NDA5XT0yOTU7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjMwKSkpe2FbNDczOTldPTB8eGQobCwwLDQpLGFbNDc0MDldPTI5MTticmVha31pZighKDB8eTAoYywxNDA2MzIpKSl7YVs0NzM5OV09MHx4''@;'; + put 'put ''ZChsLDAsNjQpLGFbNDc0MDldPTI5MjticmVha31pZighKDB8eTAoYywxNDA2MzQpKSl7YVs0NzM5OV09MHx4ZChsLDAsMiksYVs0NzQwOV09Mjg5O2JyZWFrfWlmKCEoMHx5MChjLDE0MDYzNikpKXthWzQ3Mzk5XT0wfHhkKGwsMCw4KSxhWzQ3NDA5XT0yOTM7YnJlYWt9aWYoISgwfHkwKGMs''@;'; + put 'put ''MTQwNjQwKSkpe2FbNDczOTldPTB8eGQobCwwLDE2KSxhWzQ3NDA5XT0yOTQ7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjQ2KSkpe29HKGYpLGFbNDc0MDldPTI4MzticmVha31pZighKDB8eTAoYywxNDA2NDkpKSl7YVs0NzQwOV09Mjc3O2JyZWFrfWlmKCEoMHx5MChjLDE0MDY1MikpKXthWzQ3''@;'; + put 'put ''NDA5XT0yODA7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjU1KSkpe2FbNDczOTldPTB8akUoZiksYVs0NzQwOV09Mjg1O2JyZWFrfWlmKDB8eTAoYywxNDA2MTgpKXtORShjKTticmVha31hWzQ3NDA5XT0yNjI7YnJlYWt9ZmVbMTg5NjYyXT0wLGFbNDc0MDldPTI2MH1lbHNlIGFbNDczOTldPTB8''@;'; + put 'put ''VkUoZiksZmVbMTg5NjYyXT0wLGFbNDc0MDldPTI4Nn13aGlsZSgwKX0sZnVuY3Rpb24gSEUobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MDtpZigwfGZlWzE4OTY2Ml0pe2ZvcihsPTA7ZjspQT1jKzF8MCwoMjU1JihtPTB8ZmVbYz4+MF0pKT4zMSYmKChwPTB8YVs0Kyhj''@;'; + put 'put ''PTB8YVs0NzQxMF0pPj4yXSk+Pj4wPj0oMHxhW2MrOD4+Ml0pPj4+MCYmKFEwKGMsMSksYz1wPTB8YVs0NzQxMF0scD0wfGFbcCs0Pj4yXSksYVtjKzQ+PjJdPXArMSxmZVtwPj4wXT1tLGw9bCsxfDApLGM9QSxmPWYrLTF8MDswfGwmJihhWzQ3NDA5XT0yNjcpfX0sTTAsTTAsTTAsTTAsTTAs''@;'; + put 'put ''TTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTAsTTBdLHV3PVtmYyxmdW5j''@;'; + put 'put ''dGlvbiAkbWUobCxjLGYscCxtLEEpe2x8PTAscD0rcCxBfD0wO3ZhciBELFIsRyx3PTAsYj0wLGs9MCxNPTA7Rz1hZSxhZT1hZSs5NnwwLFI9RyxEPSh3PStfWzgrKGZ8PTApPj4zXSkqKGs9KG09K20pPjQ/LjA4NzUqbTouMzUpLGsqPWI9K19bZj4+M10sX1soTT1HKzgwfDApPj4zXT1iPShw''@;'; + put 'put ''PStfWyhjfD0wKT4+M10pK2IsX1tNKzg+PjNdPXcrPW09K19bYys4Pj4zXSxmPVIrNjR8MCwzMiZBPyhhW2Y+PjJdPWFbYz4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtjKzEyPj4yXSxhW1I+PjJdPWFbYz4+Ml0sYVtSKzQ+PjJdPWFb''@;'; + put 'put ''Yys0Pj4yXSxhW1IrOD4+Ml09YVtjKzg+PjJdLGFbUisxMj4+Ml09YVtjKzEyPj4yXSxhWyhjPVIrMzJ8MCk+PjJdPWFbTT4+Ml0sYVtjKzQ+PjJdPWFbTSs0Pj4yXSxhW2MrOD4+Ml09YVtNKzg+PjJdLGFbYysxMj4+Ml09YVtNKzEyPj4yXSk6KGFbZj4+Ml09YVtNPj4yXSxhW2YrND4+Ml09''@;'; + put 'put ''YVtNKzQ+PjJdLGFbZis4Pj4yXT1hW00rOD4+Ml0sYVtmKzEyPj4yXT1hW00rMTI+PjJdLGFbUj4+Ml09YVtNPj4yXSxhW1IrND4+Ml09YVtNKzQ+PjJdLGFbUis4Pj4yXT1hW00rOD4+Ml0sYVtSKzEyPj4yXT1hW00rMTI+PjJdLGFbKE09UiszMnwwKT4+Ml09YVtjPj4yXSxhW00rND4+Ml09''@;'; + put 'put ''YVtjKzQ+PjJdLGFbTSs4Pj4yXT1hW2MrOD4+Ml0sYVtNKzEyPj4yXT1hW2MrMTI+PjJdLG09dyxwPWIpLF9bUisxNj4+M109cCtELF9bUisyND4+M109bS1rLF9bUis0OD4+M109cC1ELF9bUis1Nj4+M109bStrO2Rve2lmKCEoNjQmQSkpe2lmKDEyOCZBKXtrYShsLFIrMzJ8MCwzLEE+Pj40''@;'; + put 'put ''JjFeMSk7YnJlYWt9a2EobCxSKzE2fDAsMyxBPj4+NCYxXjEpO2JyZWFrfWthKGwsUiwzLEE+Pj40JjFeMSl9d2hpbGUoMCk7YWU9R30sZnVuY3Rpb24gVzMobCxjLGYscCxtLEEpe2x8PTA7dmFyIEQsUixHLExlLFJlLEhlLHc9MCxiPTAsaz0wLE09MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9''@;'; + put 'put ''MCxWZT0wO0hlPWFlLGFlPWFlKzE2MHwwLFJlPUhlLExlPShLPSEoKEs9NCoocD0rcCkpPChtPSttKSl8KFZlPTA9PSgzMiYoQXw9MCl8MCkpPy40NTptL0sqLjQ1KSoocGU9LShPZT0rX1s4KyhmfD0wKT4+M10pKSxLKj1iZT0rX1tmPj4zXSxwZSo9Z2U9IShtPjEpfFZlPzA6LjA1KihtKy0x''@;'; + put 'put ''KS9wLGdlKj1iZSxfWyhEPUhlKzE0NHwwKT4+M109cD0oRz0rX1soY3w9MCk+PjNdKStiZSxfW0QrOD4+M109bT1PZSsoUj0rX1tjKzg+PjNdKSxiZT0uNSpiZStHLE9lPS41Kk9lK1IsZj1SZSsxMjh8MCxWZT8oYVtmPj4yXT1hW0Q+PjJdLGFbZis0Pj4yXT1hW0QrND4+Ml0sYVtmKzg+PjJd''@;'; + put 'put ''PWFbRCs4Pj4yXSxhW2YrMTI+PjJdPWFbRCsxMj4+Ml0sYVtSZT4+Ml09YVtEPj4yXSxhW1JlKzQ+PjJdPWFbRCs0Pj4yXSxhW1JlKzg+PjJdPWFbRCs4Pj4yXSxhW1JlKzEyPj4yXT1hW0QrMTI+PjJdLGFbKFZlPVJlKzY0fDApPj4yXT1hW2M+PjJdLGFbVmUrND4+Ml09YVtjKzQ+PjJdLGFb''@;'; + put 'put ''VmUrOD4+Ml09YVtjKzg+PjJdLGFbVmUrMTI+PjJdPWFbYysxMj4+Ml0sdz1SLGI9RyxrPVIsTT1HLG09UixwPUcpOihhW2Y+PjJdPWFbYz4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtjKzEyPj4yXSxhW1JlPj4yXT1hW2M+PjJdLGFb''@;'; + put 'put ''UmUrND4+Ml09YVtjKzQ+PjJdLGFbUmUrOD4+Ml09YVtjKzg+PjJdLGFbUmUrMTI+PjJdPWFbYysxMj4+Ml0sYVsoVmU9UmUrNjR8MCk+PjJdPWFbRD4+Ml0sYVtWZSs0Pj4yXT1hW0QrND4+Ml0sYVtWZSs4Pj4yXT1hW0QrOD4+Ml0sYVtWZSsxMj4+Ml09YVtEKzEyPj4yXSx3PW0rZ2UsYj1w''@;'; + put 'put ''K3BlLGs9bS1nZSxNPXAtcGUpLF9bUmUrMTY+PjNdPXAtTGUsX1tSZSsyND4+M109bS1LLF9bUmUrMzI+PjNdPWJlLXBlLF9bUmUrNDA+PjNdPU9lLWdlLF9bUmUrNDg+PjNdPU0sX1tSZSs1Nj4+M109ayxfW1JlKzgwPj4zXT1iLF9bUmUrODg+PjNdPXcsX1tSZSs5Nj4+M109YmUrcGUsX1tS''@;'; + put 'put ''ZSsxMDQ+PjNdPU9lK2dlLF9bUmUrMTEyPj4zXT1wK0xlLF9bUmUrMTIwPj4zXT1tK0s7ZG97aWYoISg2NCZBKSl7aWYoMTI4JkEpe2thKGwsUmUrNDh8MCw2LDEpO2JyZWFrfWthKGwsUmUsOSwxKTticmVha31rYShsLFJlLDYsMSl9d2hpbGUoMCk7YWU9SGV9LGZ1bmN0aW9uIHVGKGwsYyxm''@;'; + put 'put ''LHAsbSxBKXtsfD0wLHA9K3AsbT0rbSxBfD0wO3ZhciB3LGIsRCxSLEcsSyxnZSxiZSxrPTAsTT0wLHBlPTA7Sz1hZSxhZT1hZSs2NHwwLHA9KGs9K19bKGN8PTApPj4zXSkrKGdlPStfWyhmfD0wKT4+M10pLG09KE09K19bYys4Pj4zXSkrKGJlPStfW2YrOD4+M10pLHc9aysuMipnZSxiPU0r''@;'; + put 'put ''LjIqYmUsays9LjYqZ2UsTSs9LjYqYmUsX1soRz1LKT4+M109dy1iZSxfW0crOD4+M109YitnZSxfWyhEPUcrMTZ8MCk+PjNdPXcrYmUsX1soUj1HKzI0fDApPj4zXT1iLWdlLF9bRyszMj4+M109aytiZSxfW0crNDA+PjNdPU0tZ2UsX1tHKzQ4Pj4zXT1rLWJlLF9bRys1Nj4+M109TStnZSw2''@;'; + put 'put ''NCZBPyhmPTMsQT0wLHBlPTMpOjEyOCZBfDAmJihmPTIsQT0xLHBlPTMpLDM9PSgwfHBlKSYmKF9bRysoQTw8NCk+PjNdPXcsX1tHKyhBPDw0KSs4Pj4zXT1iLF9bRysoZjw8NCk+PjNdPWssX1tHKyhmPDw0KSs4Pj4zXT1NKSxrYShsLEcsNCwxKSxhW0c+PjJdPWFbYz4+Ml0sYVtHKzQ+PjJd''@;'; + put 'put ''PWFbYys0Pj4yXSxhW0crOD4+Ml09YVtjKzg+PjJdLGFbRysxMj4+Ml09YVtjKzEyPj4yXSxfW0Q+PjNdPXAsX1tSPj4zXT1tLFdvKGwsRywyKSxhZT1LfSxmdW5jdGlvbiBGcmUobCxjLGYscCxtLEEpe2x8PTAscD0rcCxtPSttLEF8PTA7dmFyIGssTSxELFIsSyxwZSxnZSxiZSx3PTAsYj0w''@;'; + put 'put ''LEc9MDtSPWFlLGFlPWFlKzY0fDAscGU9LS40KihiPStfWzgrKGZ8PTApPj4zXSksSz0uNCoodz0rX1tmPj4zXSkscD0oYmU9K19bKGN8PTApPj4zXSkrLjgqdyxtPShnZT0rX1tjKzg+PjNdKSsuOCpiLHc9YmUrdyxiPWdlK2IsX1soRD1SKT4+M109YmUrcGUsX1soaz1EKzh8MCk+PjNdPWdl''@;'; + put 'put ''K0ssX1soZj1EKzE2fDApPj4zXT1iZS1wZSxfWyhNPUQrMjR8MCk+PjNdPWdlLUssX1tEKzMyPj4zXT1wLXBlLF9bRCs0MD4+M109bS1LLF9bRCs0OD4+M109cCtwZSxfW0QrNTY+PjNdPW0rSyw2NCZBPyhhW0Q+PjJdPWFbYz4+Ml0sYVtEKzQ+PjJdPWFbYys0Pj4yXSxhW0QrOD4+Ml09YVtj''@;'; + put 'put ''Kzg+PjJdLGFbRCsxMj4+Ml09YVtjKzEyPj4yXSxmPTMsRz01KToxMjgmQXwwJiYoYVtmPj4yXT1hW2M+PjJdLGFbZis0Pj4yXT1hW2MrND4+Ml0sYVtmKzg+PjJdPWFbYys4Pj4yXSxhW2YrMTI+PjJdPWFbYysxMj4+Ml0sZj0yLEc9NSksNT09KDB8RykmJihfW0QrKGY8PDQpPj4zXT1wLF9b''@;'; + put 'put ''RCsoZjw8NCkrOD4+M109bSksa2EobCxELDQsQT4+PjQmMV4xKSxfW0Q+PjNdPXAsX1trPj4zXT1tLF9bRCsxNj4+M109dyxfW00+PjNdPWIsV28obCxELDIpLGFlPVJ9LGZ1bmN0aW9uIEhyZShsLGMsZixwLG0sQSl7dmFyIHcsYixrLE0sRCxSLEcsSztsfD0wLHA9K3AsbT0rbSxBfD0wLGI9''@;'; + put 'put ''YWUsYWU9YWUrODB8MCxrPS0uMzMzMzMzMzMzMzMzMzMzMyooRD0rX1s4KyhmfD0wKT4+M10pLG09LjMzMzMzMzMzMzMzMzMzMzMqKEc9K19bZj4+M10pLE09KEs9K19bKGN8PTApPj4zXSkrLjUqRyxwPShSPStfW2MrOD4+M10pKy41KkQsZj0odz1iKSs2NHwwLF9bdys2ND4+M109SytHLF9b''@;'; + put 'put ''dys3Mj4+M109UitELGFbdz4+Ml09YVtmPj4yXSxhW3crND4+Ml09YVtmKzQ+PjJdLGFbdys4Pj4yXT1hW2YrOD4+Ml0sYVt3KzEyPj4yXT1hW2YrMTI+PjJdLF9bdysxNj4+M109TStrLF9bdysyND4+M109cCttLGFbKGY9dyszMnwwKT4+Ml09YVtjPj4yXSxhW2YrND4+Ml09YVtjKzQ+PjJd''@;'; + put 'put ''LGFbZis4Pj4yXT1hW2MrOD4+Ml0sYVtmKzEyPj4yXT1hW2MrMTI+PjJdLF9bdys0OD4+M109TS1rLF9bdys1Nj4+M109cC1tO2Rve2lmKCEoNjQmQSkpe2lmKGY9QT4+PjQmMV4xLDEyOCZBKXtrYShsLHcsMyxmKTticmVha31rYShsLHcsNCxmKTticmVha31rYShsLGYsMyxBPj4+NCYxXjEp''@;'; + put 'put ''fXdoaWxlKDApO2FlPWJ9LGZ1bmN0aW9uIE5yZShsLGMsZixwLG0sQSl7bHw9MCxjfD0wLHA9K3AsbT0rbSxBfD0wO3ZhciB3LGIsayxELE09MDt3PWFlLGFlPWFlKzMyfDAsYj13LHA9LjUqK0QwKCsoKG09K19bOCsoZnw9MCk+PjNdKSptKyhNPStfW2Y+PjNdKSpNKSksX1tiPj4zXT0oRD0r''@;'; + put 'put ''X1tjPj4zXSkrKE0qPS41KS1wLF9bYis4Pj4zXT0oaz0rX1tjKzg+PjNdKS1wKyhtKj0uNSksX1tiKzE2Pj4zXT1EK3ArTSxfW2IrMjQ+PjNdPWsrcCttLCR1KGwsYiwyLEE+Pj40JjFeMSksYWU9d30sZnVuY3Rpb24gVnJlKGwsYyxmLHAsbSxBKXtsfD0wLHA9K3AsQXw9MDt2YXIgayxHLEss''@;'; + put 'put ''cGUsZ2UsYmUsdz0wLGI9MCxNPTAsRD0wLFI9MDtiZT1hZSxhZT1hZSsxMTJ8MCxLPWJlKzQ4fDAsZ2U9YmUsRz0rX1soY3w9MCk+PjNdLHc9K19bYys4Pj4zXSxwPShNPStfWzgrKGZ8PTApPj4zXSkqKEQ9KG09K20pPjQ/LjEyNSptOi41KSxtPShSPStfW2Y+PjNdKSpELGFbKHBlPWJlKzE2''@;'; + put 'put ''fDApPj4yXT1hW2M+PjJdLGFbcGUrND4+Ml09YVtjKzQ+PjJdLGFbcGUrOD4+Ml09YVtjKzg+PjJdLGFbcGUrMTI+PjJdPWFbYysxMj4+Ml0sX1twZSsxNj4+M109UitHLF9bcGUrMjQ+PjNdPU0rdyxfW0s+PjNdPUQqKFItTSkrRyxfW0srOD4+M109az0oYj1EKihNK1IpKSt3LF9bSys0OD4+''@;'; + put 'put ''M109YitHLF9bSys1Nj4+M109dz1EKihNLVIpK3csTT0oUj0tLjk1KnApK20rRyxEPTEuMzMzMzMzMzMzMzMzMzMzMyptLDMyJkE/KGI9Mi4zMzMzMzMzMzMzMzMzMzMqbSx3Kz1wKj0xLjMzMzMzMzMzMzMzMzMzMzMsbT1rK3AscD1NK0QpOihiPS0uMzMzMzMzMzMzMzMzMzMzMjYqbSx3LT1w''@;'; + put 'put ''Kj0xLjMzMzMzMzMzMzMzMzMzMzMsbT1rLXAscD1NLUQpLF9bSysxNj4+M109cCxfW0srMjQ+PjNdPW0sX1tLKzMyPj4zXT1iLVIrRyxfW0srNDA+PjNdPXcsV28obCxwZSwyKSw2NCZBP3d1KGdlLEssMywuNSwwLEspOjEyOCZBfDAmJnd1KGdlLEssMywuNSxLLDApLFFmKGwsSyw0LDAsMCww''@;'; + put 'put ''KSxhZT1iZX0sZnVuY3Rpb24gSUMobCxjLGYscCxtLEEpe3ZhciB3O2x8PTAscD0rcCxtPSttLEF8PTAsQT1hZSxhZT1hZSszMnwwLHA9K19bKGZ8PTApPj4zXSsgK19bKGN8PTApPj4zXSxtPStfW2YrOD4+M10rICtfW2MrOD4+M10sYVsodz1BKT4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtj''@;'; + put 'put ''KzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLF9bdysxNj4+M109cCxfW3crMjQ+PjNdPW0sV28obCx3LDIpLGFlPUF9LGZjLGZjLGZjLGZjLGZjLGZjLGZjXSxSYz1bZnVuY3Rpb24gaVMobCxjLGYscCl7dzIoMTcpfSxmdW5jdGlvbiBRZChsLGMsZixw''@;'; + put 'put ''KXtjfD0wLGZ8PTAscHw9MCxQVChsfD0wKSxGQyhsKSxwPygzPT0oMXxwKT93RihsLHAsYyxmKTpGVChsKSxIQyhsLDgwLGMsZikpOkhDKGwsMTEyLGMsZil9LGZ1bmN0aW9uIGdpZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbSxBLHcsYixrLE0sRCxHLEssUj0wO209YWUsYWU9YWUr''@;'; + put 'put ''OTZ8MCxBPW0rOHwwLEQ9fn4rX1sxNTIrKEs9MHxhWzE2KyhsfD0wKT4+Ml0pPj4zXSxNPTB8YVtLKzE2Pj4yXSxrPTB8YVtLKzU2Pj4yXSxiPTB8YVs0NjcxMF0sdTcoSyxSPW0rODB8MCxHPW0pLFI9MHxhW1I+PjJdLHc9K19bRz4+M10sYVtBPj4yXT0yLGFbQSs0Pj4yXT0zLGFbQSs4Pj4y''@;'; + put 'put ''XT1SLGFbQSsxMj4+Ml09RCxhW0ErMTY+PjJdPU0sYVtBKzIwPj4yXT1rLGFbQSsyND4+Ml09YixhW0ErMjg+PjJdPTAsYVtBKzMyPj4yXT0wfHA/MjA6LTEsX1tBKzQwPj4zXT13LGFbQSs0OD4+Ml09MCxhW0ErNTI+PjJdPTAsYVtBKzU2Pj4yXT0wLGFbQSs2MD4+Ml09MCxhW0ErNjQ+PjJd''@;'; + put 'put ''PTAsYVtBKzY4Pj4yXT1mKzEsT3IobCw2ODMzMSxBKSxrRihsLGMsZiwxKSxhZT1tfSxmdW5jdGlvbiBfaWUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG0sQSx3LGIsayxNLEQsRyxLLFI9MDttPWFlLGFlPWFlKzk2fDAsQT1tKzh8MCxEPX5+K19bMTUyKyhLPTB8YVsxNisobHw9MCk+''@;'; + put 'put ''PjJdKT4+M10sTT0wfGFbSysxNj4+Ml0saz0wfGFbSys1Nj4+Ml0sYj0wfGFbNDY3MTZdLFdUKEssUj1tKzgwfDAsRz1tKSxSPTB8YVtSPj4yXSx3PStfW0c+PjNdLGFbQT4+Ml09MixhW0ErND4+Ml09MyxhW0ErOD4+Ml09UixhW0ErMTI+PjJdPUQsYVtBKzE2Pj4yXT1NLGFbQSsyMD4+Ml09''@;'; + put 'put ''ayxhW0ErMjQ+PjJdPWIsYVtBKzI4Pj4yXT0wLGFbQSszMj4+Ml09MHxwPzIwOi0xLF9bQSs0MD4+M109dyxhW0ErNDg+PjJdPTAsYVtBKzUyPj4yXT0wLGFbQSs1Nj4+Ml09MCxhW0ErNjA+PjJdPTAsYVtBKzY0Pj4yXT0wLGFbQSs2OD4+Ml09ZisxLE9yKGwsNjgzMzEsQSkselcobCxjLGYs''@;'; + put 'put ''MSksYWU9bX0sZnVuY3Rpb24gRWllKGwsYyxmLHApe3ZhciBtO2x8PTAsY3w9MCxwfD0wLGM9YWUsYWU9YWUrMTZ8MCxhWyhtPWMpPj4yXT1mfD0wLGFbbSs0Pj4yXT1wLE9yKGwsNjk1ODEsbSksYWU9Y30sZnVuY3Rpb24gSlcobCxjLGYscCl7Y3w9MCxmfD0wO3ZhciB3LGIsbT0wLEE9MDtp''@;'; + put 'put ''ZihiPWFlLGFlPWFlKzE2fDAsdz1iLEE9MTYrKGx8PTApfDAsMHwocHw9MCkmJitfWzgwKyhtPTB8YVtBPj4yXSk+PjNdPi41KXtmb3IoYXAobCxtKzU2fDApLEVuKGwsNjg4NTIpLGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEy''@;'; + put 'put ''Pj4yXT1hW2MrMTI+PjJdLG5oKGwsdyksRW4obCw2ODg2MSkscD0xOyEoKDB8cCk+PSgwfGYpKTspYVt3Pj4yXT1hWyhtPWMrKHA8PDQpfDApPj4yXSxhW3crND4+Ml09YVttKzQ+PjJdLGFbdys4Pj4yXT1hW20rOD4+Ml0sYVt3KzEyPj4yXT1hW20rMTI+PjJdLG5oKGwsdyksRW4obCw2ODg3''@;'; + put 'put ''MCkscD1wKzF8MDtFbihsLDY4ODk3KX1pZigrX1s0MCsoMHxhW0E+PjJdKT4+M10+LjUpe2Zvcih6QShsKSxhcChsLDE2KygwfGFbQT4+Ml0pfDApLEVuKGwsNjg4NTIpLGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1h''@;'; + put 'put ''W2MrMTI+PjJdLG5oKGwsdyksRW4obCw2ODg2MSkscD0xOyEoKDB8cCk+PSgwfGYpKTspYVt3Pj4yXT1hWyhBPWMrKHA8PDQpfDApPj4yXSxhW3crND4+Ml09YVtBKzQ+PjJdLGFbdys4Pj4yXT1hW0ErOD4+Ml0sYVt3KzEyPj4yXT1hW0ErMTI+PjJdLG5oKGwsdyksRW4obCw2ODg3MCkscD1w''@;'; + put 'put ''KzF8MDtFbihsLDY4OTEzKX1hZT1ifSxmdW5jdGlvbiBoN2UobCxjLGYscCl7YzcobHw9MCxjfD0wLDAsMTAxNTEwLDB8YVs4KygwfGFbbCsxNj4+Ml0pPj4yXSksRW4obCw3NjM4OCl9LGZ1bmN0aW9uIHk3ZShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MDt2YXIgbT0wO3N3aXRjaCgwfChwfD0w''@;'; + put 'put ''KSl7Y2FzZSAyOm09MHxxVyhsLGMsZik7YnJlYWs7Y2FzZSAzOm09MHxlWShsKTticmVhaztkZWZhdWx0Om09MH1mb3IoRW4obCw3Mzk5OSksSUYobCxwLG0pLEVuKGwsNzM0MTQpLG09MDshKCgwfG0pPj0oMHxmKSk7KWpzKGwsK19bYysobTw8NCk+PjNdKSxFbihsLDEwMDk5OSksanMobCwt''@;'; + put 'put ''K19bYysobTw8NCkrOD4+M10pLEVuKGwsMTAyNjA0KSxtPW0rMXwwO2pzKGwsK19bYz4+M10pLEVuKGwsMTAwOTk5KSxqcyhsLC0rX1tjKzg+PjNdKSxFbihsLDczNDI0KX0sZnVuY3Rpb24gRTdlKGwsYyxmLHApe3ZhciBtLEEsdyxiO2lmKGN8PTAsZnw9MCxwfD0wLGI9YWUsYWU9YWUrNDh8''@;'; + put 'put ''MCxtPWIsMHxhWyh3PTE0NCsoQT0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdKXtVVChsKSxFbihsLDc1MjkyKSxHMyhsLGMsZiksRW4obCw3NTE1NSk7ZG97aWYoIXApe2lmKDB8YVs0NjcyM10pe0VuKGwsMTM3MTk4KTticmVha31FbihsLDk3MzA5KTticmVha31mPUErNTZ8MCxwPShjPW0p''@;'; + put 'put ''KzQwfDA7ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSk7R0EobCxtKX13aGlsZSgwKTsxPT0oMHxhWzQ2NzIzXSkmJihhWzQ2NzIzXT0wKSxFbihsLDc1MjY2KSxqcyhsLCtfW0ErMTUyPj4zXSksRW4obCw3NTMwOSksZj1BKzE2fDAscD0oYz1t''@;'; + put 'put ''KSs0MHwwO2Rve2FbYz4+Ml09YVtmPj4yXSxjPWMrNHwwLGY9Zis0fDB9d2hpbGUoKDB8Yyk8KDB8cCkpO0dBKGwsbSksMT09KDB8KGM9MHxhW3c+PjJdKSkmJihFbihsLDc1MTYzKSxjPTB8YVt3Pj4yXSksMj09KDB8YykmJkVuKGwsNzUxNzIpLFFUKGwpLEVuKGwsMTUzNTk5KX1hZT1ifSxm''@;'; + put 'put ''dW5jdGlvbiBaaWUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGIsayxNLEQsbT0wLEE9MCx3PTA7Zm9yKE09YWUsYWU9YWUrNDh8MCxrPU0rMjR8MCxiPU0rOHwwLEE9TSxFbihsfD0wLDc1NTExKSxEPTB8YVs0NjcyN10sYVtBPj4yXT1hWzQ2NzI2XSxhW0ErND4+Ml09RCxPcihsLDc1''@;'; + put 'put ''NzY0LEEpLG5ZKGwscCksRW4obCw3NTc4OCksSlQobCksRW4obCw3NTc5MSksQT1mKy0xfDAscD0wOyEoKDB8cCk+PSgwfGYpKTspdz0rX1tjKyhwPDw0KT4+M10sbT0rKCgwfGFbNDY3MjddKT4+PjApLStfW2MrKHA8PDQpKzg+PjNdLHA/KF9baz4+M109dyxfW2srOD4+M109bSxPcihsLDc1''@;'; + put 'put ''ODg0LGspKTooRW4obCw3NTgxOCksX1tiPj4zXT13LF9bYis4Pj4zXT1tLE9yKGwsNzU4ODQsYiksRW4obCw3NTg5NSkpLCgwfHApPT0oMHxBKSYmRW4obCw3NTg5OCkscD1wKzF8MDtFbihsLDc1NjI3KSxhZT1NfSxmdW5jdGlvbiBqN2UobCxjLGYscCl7dmFyIG0sQTtsfD0wLGZ8PTAscHw9''@;'; + put 'put ''MCxtPWFlLGFlPWFlKzE2fDAsYVsoQT1tKT4+Ml09Y3w9MCxhW0ErND4+Ml09ZixhW0ErOD4+Ml09cCxPcihsLDc5MzU3LEEpLGpuWzQ2NzI4XT0rKDB8QXIoZiwtMTApKSxhZT1tfSxmdW5jdGlvbiBRN2UobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIEQsUixHLEsscGUsZ2UsYmUsT2Us''@;'; + put 'put ''TGUsSGUsVmUscWUsbnQsV2UsU3Qsa3QsbHQsRXQsY3QsYnQsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUmU9MCxvdD0wLFp0PTAsYW49MCxTbj0wLEhuPTA7YnQ9YWUsYWU9YWUrMzM2fDAsbnQ9YnQrMjk2fDAsY3Q9YnQrMjg4fDAsWnQ9YnQrMjcyfDAsRXQ9YnQrMjY0fDAsbHQ9YnQrMjQw''@;'; + put 'put ''fDAsb3Q9YnQrMjMyfDAscWU9YnQrMjA4fDAsVmU9YnQrMTg0fDAsTGU9YnQrMTYwfDAsT2U9YnQrMTUyfDAsYmU9YnQrMTM2fDAsZ2U9YnQrMTI4fDAscGU9YnQrOTZ8MCxLPWJ0Kzg4fDAsRz1idCs1NnwwLG09YnQrNDh8MCxrPWJ0KzI0fDAsYj1idCxFbihsfD0wLDc4NzgyKSxqbls0Njcy''@;'; + put 'put ''OV09K2puWzQ2NzI4XS0yLGFuPStfWyhSPWwrNDk2fDApPj4zXSxfW2I+PjNdPStfWyhEPWwrNDg4fDApPj4zXSxfW2IrOD4+M109YW4sX1tiKzE2Pj4zXT0xLGI9MHxFYShsLDc4Mjc3LGIpLGFuPSsoMHxhWyhIZT1sKzM2MHwwKT4+Ml0pLF9baz4+M109MCxfW2srOD4+M109MCxfW2srMTY+''@;'; + put 'put ''PjNdPWFuLGs9MHxFYShsLDc4MzA5LGspLGFuPStqbls0NjcyOV0tMixfW250Pj4zXT0wLF9bbnQrOD4+M109MCxfW250KzE2Pj4zXT1hbixNPTB8RWEobCw3ODM0MSxudCksdz0xNisoMHxhWyhXZT1sKzE2fDApPj4yXSl8MCxSZT0oQT1udCkrNDB8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1B''@;'; + put 'put ''KzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfFJlKSk7Zm9yKHc9MHxXQShsLG50LDApLGFbbT4+Ml09Nzg0MDQsYVttKzQ+PjJdPWYrMSxTdD1sKzUwNHwwLGt0PWwrNTEyfDAsQT0wLG09MHxFYShsLDc4MzczLG0pOyEoKDB8QSk+PSgwfGYpKTspSG49K19ba3Q+PjNdKyArX1tjKyhBPDw0''@;'; + put 'put ''KSs4Pj4zXSxhbj0rX1sxNTIrKDB8YVtXZT4+Ml0pPj4zXSxfW0c+PjNdPStfW1N0Pj4zXSsgK19bYysoQTw8NCk+PjNdLF9bRys4Pj4zXT1IbixfW0crMTY+PjNdPTAsX1tHKzI0Pj4zXT1hbixTbj0wfEVhKGwsNzg0MTgsRyksYVtLPj4yXT1tLGFbSys0Pj4yXT1TbixSZT0wfEVhKGwsNzg0''@;'; + put 'put ''NDcsSyksRnQoU24pLEZ0KG0pLEE9QSsxfDAsbT1SZTtpZihhbj0rX1trdD4+M10rICtfW2MrOD4+M10sSG49K19bMTUyKygwfGFbV2U+PjJdKT4+M10sX1twZT4+M109K19bU3Q+PjNdKyArX1tjPj4zXSxfW3BlKzg+PjNdPWFuLF9bcGUrMTY+PjNdPTAsX1twZSsyND4+M109SG4sUmU9MHxF''@;'; + put 'put ''YShsLDc4NDE4LHBlKSxhW2dlPj4yXT1tLGFbZ2UrND4+Ml09UmUsU249MHxFYShsLDc4NDQ3LGdlKSxGdChSZSksRnQobSksYVtiZT4+Ml09YixhW2JlKzQ+PjJdPWssYVtiZSs4Pj4yXT1NLGFbYmUrMTI+PjJdPXcsUmU9MHxFYShsLDc4Nzk3LGJlKSxhW09lPj4yXT1TbixhW09lKzQ+PjJd''@;'; + put 'put ''PVJlLFNuPTB8RWEobCw3ODUwMixPZSksRnQoUmUpLEVuKGwsU24pLEZ0KGIpLEZ0KGspLEZ0KE0pLEZ0KHcpLEZ0KFNuKSwwfHApe0huPStfW1I+PjNdLF9bTGU+PjNdPStfW0Q+PjNdLF9bTGUrOD4+M109SG4sX1tMZSsxNj4+M109MSxNPTB8RWEobCw3ODI3NyxMZSksSG49KygwfGFbSGU+''@;'; + put 'put ''PjJdKSxfW1ZlPj4zXT0wLF9bVmUrOD4+M109MCxfW1ZlKzE2Pj4zXT1IbixrPTB8RWEobCw3ODMwOSxWZSksSG49K2puWzQ2NzI5XS0yLF9bcWU+PjNdPTAsX1txZSs4Pj4zXT0wLF9bcWUrMTY+PjNdPUhuLGI9MHxFYShsLDc4MzQxLHFlKSx3PTU2KygwfGFbV2U+PjJdKXwwLFJlPShBPW50''@;'; + put 'put ''KSs0MHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8UmUpKTtmb3Iodz0wfFdBKGwsbnQsLjI1KSxhW290Pj4yXT1mLEE9MCxtPTB8RWEobCw3ODg0MixvdCk7ISgoMHxBKT49KDB8ZikpOylIbj0rX1trdD4+M10rICtfW2MrKEE8PDQpKzg+PjNd''@;'; + put 'put ''LF9bbHQ+PjNdPStfW1N0Pj4zXSsgK19bYysoQTw8NCk+PjNdLF9bbHQrOD4+M109SG4sX1tsdCsxNj4+M109MCxvdD0wfEVhKGwsNzg4NTcsbHQpLGFbRXQ+PjJdPW0sYVtFdCs0Pj4yXT1vdCxTbj0wfEVhKGwsNzg4NzksRXQpLEZ0KG90KSxGdChtKSxBPUErMXwwLG09U247YVtadD4+Ml09''@;'; + put 'put ''TSxhW1p0KzQ+PjJdPWssYVtadCs4Pj4yXT1iLGFbWnQrMTI+PjJdPXcsWnQ9MHxFYShsLDc4ODg5LFp0KSxhW2N0Pj4yXT1tLGFbY3QrND4+Ml09WnQsU249MHxFYShsLDc4NTAyLGN0KSxGdChadCksRW4obCxTbiksRnQoTSksRnQoayksRnQoYiksRnQodyksRnQoU24pfWFlPWJ0fSxmdW5j''@;'; + put 'put ''dGlvbiBZaWUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTAscD1hZSxhZT1hZSsxNnwwLERGKDB8YVsxNisobHw9MCk+PjJdLHArOHwwLHApLGxZKGwsYyxmLDEpLGFlPXB9LGZ1bmN0aW9uIEtpZShsLGMsZixwKXtjfD0wLHB8PTA7dmFyIEEsdyxiLGssTSxELFIsbT0wO1I9YWUsYWU9YWUrOTZ8''@;'; + put 'put ''MCxEPVIrNTZ8MCxNPVIrMzJ8MCxrPVIsYj0rX1sxNisoZnw9MCk+PjNdLSh3PStfW2Y+PjNdKSxBPShtPStfW2YrMjQ+PjNdKS0rX1tmKzg+PjNdLChsfD0wKXx8UHIoMTExMjgyLDg0NDA3LDUzLDg0ODYwKSxjfHxQcigxMTEzMTIsODQ0MDcsNTQsODQ4NjApLDB8YVsocD1jKzh8MCk+PjJd''@;'; + put 'put ''fHxQcigxMTEzMTUsODQ0MDcsNTUsODQ4NjApLEVuKGwsODQ4NzkpLEVuKGwsMHxhW3A+PjJdKSxtPS1tLDB8YVsocD1sKzM2MHwwKT4+Ml0/KF9baz4+M109QSxfW2srOD4+M109YixfW2srMTY+PjNdPXcsX1trKzI0Pj4zXT1tLE9yKGwsODQ4OTksayksYVtNPj4yXT1hW3A+PjJdLF9bTSs4''@;'; + put 'put ''Pj4zXT13LF9bTSsxNj4+M109bSxPcihsLDg0OTc4LE0pKTooX1tEPj4zXT1iLF9bRCs4Pj4zXT1BLF9bRCsxNj4+M109dyxfW0QrMjQ+PjNdPW0sT3IobCw4NTAwOCxEKSksRW4obCw4NTA4NyksYWU9Un0sZnVuY3Rpb24gWWgobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG0sQSx3LGI9''@;'; + put 'put ''MCxrPTAsTT0wO2lmKHc9YWUsYWU9YWUrMTI4fDAsQT13KzgwfDAsbT13LChsfD0wKXx8UHIoMTExMjgyLDg0NDA3LDk3LDg0NzUxKSxjfHxQcigxMTEzMTIsODQ0MDcsOTgsODQ3NTEpLHA9MHxhW2MrOD4+Ml0pcmV0dXJuIGI9fn4oKE09K19bZj4+M10pKyhNPj0wPy41Oi0uNSkpLGM9fn4o''@;'; + put 'put ''KE09K19bZis4Pj4zXSkrKE0+PTA/LjU6LS41KSksaz1+figoTT0rX1tmKzE2Pj4zXSkrKE0+PTA/LjU6LS41KSksZj1+figoTT0rX1tmKzI0Pj4zXSkrKE0+PTA/LjU6LS41KSksYVttPj4yXT0yLGFbbSs0Pj4yXT01LGFbbSs4Pj4yXT0wLGFbbSsxMj4+Ml09MCxhW20rMTY+PjJdPTAsYVtt''@;'; + put 'put ''KzIwPj4yXT0tMSxhW20rMjQ+PjJdPTEsYVttKzI4Pj4yXT0tMSxhW20rMzI+PjJdPTAsX1ttKzQwPj4zXT0wLGFbbSs0OD4+Ml09MCxhW20rNTI+PjJdPTAsYVttKzU2Pj4yXT0wLGFbbSs2MD4+Ml09MCxhW20rNjQ+PjJdPTAsYVttKzY4Pj4yXT01LGFbbSs3Mj4+Ml09MCxhW20rNzY+PjJd''@;'; + put 'put ''PXAsT3IobCw4NDc3MCxtKSxhW0E+PjJdPWIsYVtBKzQ+PjJdPWMsYVtBKzg+PjJdPWIsYVtBKzEyPj4yXT1mLGFbQSsxNj4+Ml09ayxhW0ErMjA+PjJdPWYsYVtBKzI0Pj4yXT1rLGFbQSsyOD4+Ml09YyxhW0ErMzI+PjJdPWIsYVtBKzM2Pj4yXT1jLE9yKGwsODQ4MjgsQSksdm9pZChhZT13''@;'; + put 'put ''KTtQcigxMTEzMTUsODQ0MDcsOTksODQ3NTEpfSxmdW5jdGlvbiBRQShsLGMsZixwKXt2YXIgbSxBO2lmKGN8PTAsZnw9MCxwfD0wLEE9YWUsYWU9YWUrODB8MCxtPUErNDh8MCwobHw9MCl8fFByKDExMTI4Miw4NDQwNywxMjEsODQ1NjIpLChwPTB8YVtsKzE2Pj4yXSl8fFByKDk5OTAyLDg0''@;'; + put 'put ''NDA3LDEyMyw4NDU2MiksY3x8UHIoMTExMzEyLDg0NDA3LDEyNCw4NDU2MiksMHxhWyhmPWMrOHwwKT4+Ml18fFByKDExMTMxNSw4NDQwNywxMjUsODQ1NjIpLDB8YVtwKzg+PjJdKXJldHVybiBPcihsLDg0NTgyLEEpLE9yKGwsODQ1OTEsQSs4fDApLE9yKGwsODQ2MTgsQSsxNnwwKSxPcihs''@;'; + put 'put ''LDg0NjQzLEErMjR8MCksT3IobCw4NDY3MixBKzMyfDApLE9yKGwsODQ3MDAsQSs0MHwwKSxhW20+PjJdPWFbZj4+Ml0sT3IobCw4NDcwNyxtKSxPcihsLDg0NzQ2LEErNTZ8MCksT3IobCwxMTEwMDgsQSs2NHwwKSx2b2lkKGFlPUEpO1ByKDEzODg3OSw4NDQwNywxMjgsODQ1NjIpfSxmdW5j''@;'; + put 'put ''dGlvbiBYaWUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIHcsYixrLE0sRCxtPTAsQT0wLFI9MDtEPWFlLGFlPWFlKzExMnwwLE09RCsyNHwwLGs9RCsxNnwwLGI9RCxBPUQrMjh8MCwobHw9MCl8fFByKDExMTI4Miw4NDQwNywxNTMsODQ0ODgpLGN8fFByKDExMTMxMiw4NDQwNywxNTQs''@;'; + put 'put ''ODQ0ODgpLDB8YVtjKzg+PjJdfHxQcigxMTEzMTUsODQ0MDcsMTU1LDg0NDg4KSwwfGFbKHc9Yys1MnwwKT4+Ml0/MTAwPT0oMHwobT0wfGFbKHA9Yys2MHwwKT4+Ml0pKT9tPTE4OihDb1sxMjcmbV0oYyksYVt3Pj4yXT0wLGFbcD4+Ml09MCxhW2MrNTY+PjJdPTAsbT0xMCk6bT0xMDtkb3tp''@;'; + put 'put ''ZigxMD09KDB8bSkpe2lmKCEoKDB8cHJlKGMpKTw8MjQ+PjI0KSlicmVhaztwPTB8RyQoMHxhW2MrMjA+PjJdKSw2PT0oLTImYVtjKzI0Pj4yXXwwKT8oRSQocCxBKSxhW2MrNTY+PjJdPUE9MHxhW0ErMzY+PjJdLHA9MHxIdWUoMCxBLDEsMSxwLDApLGFbdz4+Ml09cCxmZVtjKzE2Pj4wXT0x''@;'; + put 'put ''KTpwPTB8YVt3Pj4yXSwwfHAmJihhW2MrNjA+PjJdPTEwMCksR0coYyksMHxhW3c+PjJdJiYobT0xOCl9fXdoaWxlKDApOzE4PT0oMHxtKSYmKFI9K19bZis4Pj4zXS0rKDB8YVtjKzM2Pj4yXSksX1tiPj4zXT0rX1tmPj4zXS0rKDB8YVtjKzMyPj4yXSksX1tiKzg+PjNdPVIsT3IobCw4NDUw''@;'; + put 'put ''NixiKSwwfGZlW2MrMTY+PjBdP0ZRKGwsYyk6KGFbaz4+Ml09YVtjKzEyPj4yXSxPcihsLDg0NTM3LGspKSxPcihsLDg0NTUyLE0pKSxhZT1EfSxmdW5jdGlvbiBVQShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgdyxiLGssRCxSLEcsSyxnZSxiZSxtPTAsQT0wLE09MCxwZT0wLE9lPTA7''@;'; + put 'put ''aWYoYmU9YWUsYWU9YWUrMTYwfDAsZ2U9YmUrMTUyfDAscGU9YmUrMTM2fDAsSz1iZSsxMjB8MCxrPWJlKzExMnwwLEQ9YmUrMTA0fDAsTT1iZSs4OHwwLGI9YmUrNzJ8MCx3PWJlKzY0fDAsUj1iZSwobHw9MCl8fFByKDExMTI4Miw4NDQwNywyMTIsODQ0MjYpLGN8fFByKDExMTMxMiw4NDQw''@;'; + put 'put ''NywyMTMsODQ0MjYpLDB8YVsoRz1jKzh8MCk+PjJdfHxQcigxMTEzMTUsODQ0MDcsMjE0LDg0NDI2KSwwfGFbYys1Mj4+Ml0pe2lmKGFbUj4+Ml09YVtmPj4yXSxhW1IrND4+Ml09YVtmKzQ+PjJdLGFbUis4Pj4yXT1hW2YrOD4+Ml0sYVtSKzEyPj4yXT1hW2YrMTI+PjJdLGFbKGM9UiszMnww''@;'; + put 'put ''KT4+Ml09YVsoZj1mKzE2fDApPj4yXSxhW2MrND4+Ml09YVtmKzQ+PjJdLGFbYys4Pj4yXT1hW2YrOD4+Ml0sYVtjKzEyPj4yXT1hW2YrMTI+PjJdLF9bUisxNj4+M109bT0rX1tSPj4zXSxfW1IrMjQ+PjNdPStfW1IrNDA+PjNdLF9bUis0OD4+M109K19bYz4+M10sX1tSKzU2Pj4zXT1BPStf''@;'; + put 'put ''W1IrOD4+M10scDw8MjQ+PjI0KXtmb3IoT3IobCw4NDQ0Nyx3KSxjPTA7NCE9KDB8Yyk7KU9lPStfW1IrKGM8PDQpKzg+PjNdLF9bYj4+M109K19bUisoYzw8NCk+PjNdLF9bYis4Pj4zXT1PZSxPcihsLDg0NDUwLGIpLGM9YysxfDA7X1tNPj4zXT1tLF9bTSs4Pj4zXT1BLE9yKGwsODQ0NTAs''@;'; + put 'put ''TSksTT0wfGFbRz4+Ml0sYVtEPj4yXT00LGFbRCs0Pj4yXT1NLE9yKGwsODQ0NTcsRCl9Zm9yKE9yKGwsODQ0NDcsayksYz0wOzQhPSgwfGMpOylPZT0rX1tSKyhjPDw0KSs4Pj4zXSxfW0s+PjNdPStfW1IrKGM8PDQpPj4zXSxfW0srOD4+M109T2UsT3IobCw4NDQ1MCxLKSxjPWMrMXwwO19b''@;'; + put 'put ''cGU+PjNdPW0sX1twZSs4Pj4zXT1BLE9yKGwsODQ0NTAscGUpLHBlPTB8YVtHPj4yXSxhW2dlPj4yXT00LGFbZ2UrND4+Ml09cGUsT3IobCw4NDQ3MixnZSl9YWU9YmV9LGZ1bmN0aW9uIHNZKGwsYyxmLHApe30sZnVuY3Rpb24gaWllKGwsYyxmLHApe3ZhciBtLEEsdztjfD0wLGZ8PTAscHw9''@;'; + put 'put ''MCxwPWFlLGFlPWFlKzEwNDB8MCx3PXAsbT1wKzE2fDAsdW8oQT0wfGFbMTE0MTYrKGFbMTIrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml08PDIpPj4yXSw2NzAxMyksYVt3Pj4yXT1hW2Y+PjJdLGFbdys0Pj4yXT1hW2YrND4+Ml0sYVt3Kzg+PjJdPWFbZis4Pj4yXSxhW3crMTI+PjJdPWFbZisx''@;'; + put 'put ''Mj4+Ml0sQjUoQSx3KSxXaChtLCtfW2YrMTY+PjNdLStfW2Y+PjNdKSx1byhBLG0pLFdoKG0sK19bZisyND4+M10tK19bZis4Pj4zXSksdW8oQSxtKSxQNShsLDE5NTA1OSwwfGFbYys4Pj4yXSksYWU9cH0sZnVuY3Rpb24gSmllKGwsYyxmLHApe3B8PTA7dmFyIG0sdyxiLGssQT0wO3A9YWUs''@;'; + put 'put ''YWU9YWUrNDh8MCxrPStfWzE2KyhmfD0wKT4+M10tKHc9K19bZj4+M10pLGI9KEE9K19bZisyND4+M10pLStfW2YrOD4+M10sQT0rKH5+KCtfWzIzMisobHw9MCk+PjNdLStfW2wrMjE2Pj4zXSk+Pj4wKS1BLGFbKG09cCk+PjJdPWFbOCsoY3w9MCk+PjJdLF9bbSs4Pj4zXT1rLF9bbSsxNj4+''@;'; + put 'put ''M109YixfW20rMjQ+PjNdPXcsX1ttKzMyPj4zXT1BLE9yKGwsODQzMTAsbSksRW4obCw4NDQwMiksYWU9cH0sZnVuY3Rpb24gcVQobCxjLGYscCl7dmFyIG0sQSx3LGIsaztsfD0wLGZ8PTAscHw9MCxwPWFlLGFlPWFlKzMyfDAsbT1wKzh8MCxhWyhiPXApPj4yXT1rPTB8YVsoYz04KyhjfD0w''@;'; + put 'put ''KXwwKT4+Ml0sYVtiKzQ+PjJdPWssT3IobCw4NDIyMyxiKSx3PS41KigrX1tmPj4zXSsgK19bZisxNj4+M10pLEE9LjUqKCtfW2YrOD4+M10rICtfW2YrMjQ+PjNdKSxhW20+PjJdPWFbYz4+Ml0sX1ttKzg+PjNdPXcsX1ttKzE2Pj4zXT1BLE9yKGwsODQyNjUsbSksYWU9cH0sZnVuY3Rpb24g''@;'; + put 'put ''bjcobCxjLGYscCl7MD09KDEmKGZ8PTApfDApJiEwJiZlMChsfD0wLGYpfSxmdW5jdGlvbiB6YWUobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIGssRCxSLG09MCxBPTAsdz0wLGI9MCxNPTA7aWYoUj1hZSxhZT1hZSs4MHwwLGs9Uis0MHwwLG09UixEPVIrNjR8MCxBPVIrNTZ8MCwwfGZl''@;'; + put 'put ''WyhmfD0wKT4+MF0pe3c9MD09KDB8cCk/MTA2MzU2OnAsYVtEPj4yXT0xNSxwPTB8YVsoYj1jKzE2fDApPj4yXTtkb3tpZigwfGZlWzgyKygwfGFbcCsxMDQ+PjJdKT4+MF0pe2lmKCEocD0wfHRHKGMsZixEKSkpe3A9MHxhW2I+PjJdLE09ODticmVha30wfHBrKGMscCxtLHcsMHxhW0Q+PjJd''@;'; + put 'put ''LDApJiYoYVtrPj4yXT0wfHRpKGMpLGFbays0Pj4yXT1mLGFbays4Pj4yXT13LCRyKDAsMTA2MzU4LGspKX1lbHNlIE09OH13aGlsZSgwKTs4PT0oMHxNKSYmKDE2NjQ9PSgwfGFbOCsoMHxhW3ArOD4+Ml0pPj4yXSk/QT0wOihhW0E+PjJdPWMsYVtBKzQ+PjJdPTApLDB8cGsoYywwLG0sZiww''@;'; + put 'put ''fGFbRD4+Ml0sQSkmJiRRKGMsZikpLGFbbSszNj4+Ml09MCxBPWwrNDB8MDtkb3thW2w+PjJdPWFbbT4+Ml0sbD1sKzR8MCxtPW0rNHwwfXdoaWxlKCgwfGwpPCgwfEEpKX1lbHNle209NDIwOCxBPWwrNDB8MDtkb3thW2w+PjJdPWFbbT4+Ml0sbD1sKzR8MCxtPW0rNHwwfXdoaWxlKCgwfGwp''@;'; + put 'put ''PCgwfEEpKX1hZT1SfSxmdW5jdGlvbiB0TihsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgYixrLG09MCxBPTAsdz0wO2lmKGs9YWUsYWU9YWUrNjR8MCxiPWsrNDB8MCxtPWssMHxmZVsoZnw9MCk+PjBdKXtwPTA9PSgwfHApPzEwNjM1NjpwLCh3PTB8bkooQT0wfGFbMTIrKDB8YVtjKzE2''@;'; + put 'put ''Pj4yXSk+PjJdLGYpKT8wfHBrKGMsdysxNnwwLG0scCwwfEp0W3crNjU+PjBdLDApJiYoYVtiPj4yXT0wfHRpKGMpLGFbYis0Pj4yXT1mLGFbYis4Pj4yXT1wLCRyKDAsMTA2MzU4LGIpKTowfHBrKGMsQSsxNnwwLG0sZiwxNSwwKSYmJFEoYyxmKSxwPWwrNDB8MDtkb3thW2w+PjJdPWFbbT4+''@;'; + put 'put ''Ml0sbD1sKzR8MCxtPW0rNHwwfXdoaWxlKCgwfGwpPCgwfHApKX1lbHNle209NDIwOCxwPWwrNDB8MDtkb3thW2w+PjJdPWFbbT4+Ml0sbD1sKzR8MCxtPW0rNHwwfXdoaWxlKCgwfGwpPCgwfHApKX1hZT1rfSxyaixmdW5jdGlvbiBIMWUobCxjLGYscCl7Y3w9MCxmfD0wO3ZhciB3LGIsbT0w''@;'; + put 'put ''LEE9MDtmb3Iodz03MisobHw9MCl8MCxiPTQrKHB8PTApfDA7ISgoZi1jfDApPD0xKTspe3N3aXRjaChtPTB8ZmVbYysxPj4wXSwwfChsPShsPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChsLG0pOjB8SnRbdysoMjU1Jm0pPj4wXSkpe2Nhc2UgNTpkZWZhdWx0OmM9YysyfDA7YnJlYWs7Y2Fz''@;'; + put 'put ''ZSA2OmM9YyszfDA7YnJlYWs7Y2FzZSA3OmM9Yys0fDA7YnJlYWs7Y2FzZSAxMDphW2I+PjJdPS0xLGFbcD4+Ml09MSsoMHxhW3A+PjJdKSxjPWMrMnwwO2JyZWFrO2Nhc2UgOTphW3A+PjJdPTErKDB8YVtwPj4yXSksKGYtKEE9YysyfDApfDApPjE/KG09MHxmZVtjKzM+PjBdLGM9MTA9PSgw''@;'; + put 'put ''fChsPShsPTB8ZmVbQT4+MF0pPDwyND4+MjQ/MHxmMChsLG0pOjB8SnRbdysoMjU1Jm0pPj4wXSkpP2MrNHwwOkEpOmM9QSxhW2I+PjJdPS0xfWFbYj4+Ml09MSsoMHxhW2I+PjJdKX19LGZ1bmN0aW9uIFV2ZShsLGMsZixwKXtjfD0wLGZ8PTA7dmFyIHcsYixtPTAsQT0wO2Zvcih3PTcyKyhs''@;'; + put 'put ''fD0wKXwwLGI9NCsocHw9MCl8MDshKChmLWN8MCk8PTEpOyl7c3dpdGNoKG09MHxmZVtjPj4wXSwwfChsPShsPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGwsbSk6MHxKdFt3KygyNTUmbSk+PjBdKSl7Y2FzZSA1OmRlZmF1bHQ6Yz1jKzJ8MDticmVhaztjYXNlIDY6Yz1jKzN8MDticmVh''@;'; + put 'put ''aztjYXNlIDc6Yz1jKzR8MDticmVhaztjYXNlIDEwOmFbYj4+Ml09LTEsYVtwPj4yXT0xKygwfGFbcD4+Ml0pLGM9YysyfDA7YnJlYWs7Y2FzZSA5OmFbcD4+Ml09MSsoMHxhW3A+PjJdKSwoZi0oQT1jKzJ8MCl8MCk+MT8obT0wfGZlW0E+PjBdLGM9MTA9PSgwfChsPShsPTB8ZmVbYyszPj4w''@;'; + put 'put ''XSk8PDI0Pj4yND8wfGYwKGwsbSk6MHxKdFt3KygyNTUmbSk+PjBdKSk/Yys0fDA6QSk6Yz1BLGFbYj4+Ml09LTF9YVtiPj4yXT0xKygwfGFbYj4+Ml0pfX0seDEsZnVuY3Rpb24gQnMobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIGIsayxNLEQsbT0wLEE9MCx3PTA7Zm9yKEQ9YWUsYWU9''@;'; + put 'put ''YWUrMzJ8MCxiPUQsaDIoRCsxNnwwLGN8PTApLGs9YyszMnwwLE09YyszNnwwLG09MDshKCgwfG0pPj0oMHxhW2s+PjJdKSk7KXtBPTB8YVsoMHxhW00+PjJdKSsobTw8Mik+PjJdO2Rve2lmKCEoMHxmZVtBKzM2Pj4wXSkpe2lmKCgwfCh3PTB8YVtBKzIwPj4yXSkpPT0oMHxjKSl7Q2koYixB''@;'; + put 'put ''LDB8YVtBKzI0Pj4yXSksdjMobCxwLEEsMCk7YnJlYWt9Q2koYixBLHcpLHYzKGwsZixBLDApO2JyZWFrfX13aGlsZSgwKTttPW0rMXwwfWFbbD4+Ml09MisoMHxhW2w+PjJdKSxhZT1EfSxmdW5jdGlvbiBQcyhsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgcWUsbnQsV2Usb3QsU3Qsa3Qs''@;'; + put 'put ''RXQsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsSz0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxsdD0wO2ZvcihFdD1hZSxhZT1hZSsxMjh8MCxXZT1FdCs2NHwwLE09RXQrNDh8MCxvdD1FdCszMnwwLFN0PUV0KzE2fDAsa3Q9RXQsbT0wLEE9''@;'; + put 'put ''Znw9MDtBOyltPW0rMXwwLEE9MHxhW0ErOD4+Ml07Zm9yKG50PTB8dnIoKDU2Km18MCktMTEyfDApLGFbV2UrNTI+PjJdPTAsYVtXZSs0OD4+Ml09MCxBPTB8YVs4KyhmPTB8YVsocWU9Zis4fDApPj4yXSk+PjJdLDEmYVsobT0wfGFbZisyMD4+Ml0pPj4yXSYmKG09MHxhW2YrMjQ+PjJdKSxD''@;'; + put 'put ''aShNLGYsbSksdz1mLEc9ZixSPTAsRD0rX1tNPj4zXSxWZT0wLGs9MCxSZT0rX1tNKzg+PjNdOzB8YVsoSGU9QSs4fDApPj4yXTspe2lmKF9FKGMsT2U9MHxkYih3LEEpLDB8YVtHKzEyPj4yXSksKDB8ZmVbKGdlPUcrMzZ8MCk+PjBdKT09KDB8ZmVbKGJlPUErMzZ8MCk+PjBdKT8oMHxhW0hl''@;'; + put 'put ''Pj4yXSk9PSgwfHApPyhDaShTdCxBLE9lKSxmPVN0LGx0PTEyKToodz1HLGY9VmUsYj1SZSk6KGgyKG90LE9lKSxmPW90LGx0PTEyKSwxMj09KDB8bHQpKXtsdD0wLExlPStfW2Y+PjNdLGI9K19bZis4Pj4zXSxLPSgwfEcpPT0oMHxhW3FlPj4yXSksKHBlPShmPTB8ZmVbZ2U+PjBdKTw8MjQ+''@;'; + put 'put ''PjI0PT0wKT8oZj0wfGZlW2JlPj4wXT8oMHxhW0ErMjA+PjJdKT09KDB8T2UpPzQ6MjowLE09T2UrNDh8MCxHPW0rNDh8MCx3PW0rNDB8MCxtPUs/MDpSPkQ/NDoyKTooZj1mPDwyND4+MjQ9PSgwfGZlW2JlPj4wXSk/MDooMHxhW0ErMjA+PjJdKT09KDB8T2UpPzE6MyxNPU9lKzQwfDAsRz1t''@;'; + put 'put ''KzQwfDAsdz1tKzQ4fDAsbT1LPzA6az5SZT8xOjMpLHd2KFdlLDEmcGUsK19bdz4+M10sK19bRz4+M10sK19bTT4+M10sbSxmKSxHPVZlKzF8MCxmPVdlLHc9NTYrKG09bnQrKDU2KlZlfDApfDApfDA7ZG97YVttPj4yXT1hW2Y+PjJdLG09bSs0fDAsZj1mKzR8MH13aGlsZSgoMHxtKTwoMHx3''@;'; + put 'put ''KSk7aWYoKDB8ZmVbZ2U+PjBdKSE9KDB8ZmVbYmU+PjBdKSYmKDB8YVtIZT4+Ml0pPT0oMHxwKSl7Q2koa3QsQSxPZSksZj1PZSs0MHwwLG09T2UrNDh8MCx3dihXZSwxJihNPTA9PSgwfGZlW2JlPj4wXSkpLCtfWyhNP2Y6bSk+PjNdLFI9K19bKE0/bTpmKT4+M10sUixNP0Q+TGU/NDoyOlJl''@;'; + put 'put ''PmI/MTozLDApLE09VmUrMnwwLGY9V2Usdz01NisobT1udCsoNTYqR3wwKXwwKXwwO2Rve2FbbT4+Ml09YVtmPj4yXSxtPW0rNHwwLGY9Zis0fDB9d2hpbGUoKDB8bSk8KDB8dykpO209T2Usdz1BLFI9RCxEPUxlLGY9TSxrPVJlfWVsc2UgbT1PZSx3PUEsUj1ELEQ9TGUsZj1HLGs9UmV9T2U9''@;'; + put 'put ''QSxBPTB8YVtIZT4+Ml0sRz13LFZlPWYsUmU9Yix3PU9lfWZvcihBPTB8VWEobnQsNTYqVmV8MCksZj1WZSstMXwwLG09MDshKCgwfG0pPj0oMHxWZSkpOykoMHxtKT4wJiYoYVtBKyg1NiptfDApKzQ4Pj4yXT1BKyg1NioobSstMXwwKXwwKSksKDB8bSk8KDB8Zik/KGFbQSsoNTYqbXwwKSs1''@;'; + put 'put ''Mj4+Ml09QSsoNTYqKGx0PW0rMXwwKXwwKSxtPWx0KTptPW0rMXwwO2FbbD4+Ml09VmUsYVtsKzQ+PjJdPUEsYWU9RXR9LGZ1bmN0aW9uIFlLKGwsYyxmLHApe3JqKDU4NTg0LGN8PTAsZnw9MCxwfD0wKX1dLHA4PVtNcCxmdW5jdGlvbiBNRihsLGMsZixwLG0pe3ZhciBBO1pUKGx8PTAsMHxh''@;'; + put 'put ''WzI2NCsoQT0wfGFbbCsxNj4+Ml0pPj4yXSwwfGFbQSsyNzI+PjJdLDB8YVtBKzI2OD4+Ml0sY3w9MCxmfD0wLHB8PTAsbXw9MCl9LGZ1bmN0aW9uIExpZShsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wO3ZhciBBPTA7cD1hZSxhZT1hZSsxNnwwLGY9cCwwfChjfD0wKSYmMHxhWyhBPTI3Miso''@;'; + put 'put ''MHxhW2wrMTY+PjJdKXwwKT4+Ml0mJihFbihsLDY5MDE0KSxHMyhsLDB8YVtBPj4yXSwyKSxFbihsLDY5MDI1KSxhW2Y+PjJdPTB8VUgoYywwfGFbNDY3MjBdKSxPcihsLDY5MDI5LGYpKSxhZT1wfSxmdW5jdGlvbiBjN2UobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MDt2YXIgQSx3LGssTSxE''@;'; + put 'put ''LGI9MDtEPWFlLGFlPWFlKzMyfDAsQT1EKzE2fDAsTT1EKzh8MCxrPUQsdz0xNisobHw9MCl8MCwwfChtfD0wKSYmK19bODArKGI9MHxhW3c+PjJdKT4+M10+LjUmJihhcChsLGIrNTZ8MCksRW4obCw4NDQ0NyksRzMobCxmLHApLEVuKGwsMTAyNjA0KSxhW0E+PjJdPWFbZj4+Ml0sYVtBKzQ+''@;'; + put 'put ''PjJdPWFbZis0Pj4yXSxhW0ErOD4+Ml09YVtmKzg+PjJdLGFbQSsxMj4+Ml09YVtmKzEyPj4yXSxuaChsLEEpLGFbaz4+Ml09cCxhW2srND4+Ml09YyxPcihsLDY4NzY2LGspKSwrX1s0MCsoMHxhW3c+PjJdKT4+M10+LjUmJih6QShsKSxhcChsLDE2KygwfGFbdz4+Ml0pfDApLEVuKGwsODQ0''@;'; + put 'put ''NDcpLEczKGwsZixwKSxFbihsLDEwMjYwNCksYVtBPj4yXT1hW2Y+PjJdLGFbQSs0Pj4yXT1hW2YrND4+Ml0sYVtBKzg+PjJdPWFbZis4Pj4yXSxhW0ErMTI+PjJdPWFbZisxMj4+Ml0sbmgobCxBKSxhW00+PjJdPXAsYVtNKzQ+PjJdPWMsT3IobCw2ODc4MixNKSksYWU9RH0sZnVuY3Rpb24g''@;'; + put 'put ''SGllKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MCxFbihsfD0wLDc0NTE5KSwwfG0mJihFbihsLDc0NTIyKSxFbihsLDB8TTEobSkpLEVuKGwsOTg3NDQpKSxFbihsLDc0NDEyKSxFbihsLDc2MzQ5KSwwfGMmJjB8ZmVbYz4+MF0mJihFbihsLDc0NTMwKSxFbihsLGMpLEVuKGwsOTg3''@;'; + put 'put ''NDQpKSwwfGYmJjB8ZmVbZj4+MF0mJihFbihsLDc0NTQ0KSxFbihsLDB8UkgoZiwxKSksRW4obCw5ODc0NCkpLDB8cCYmMHxmZVtwPj4wXSYmKEVuKGwsNzQ1NTkpLEVuKGwsMHxNMShwKSksRW4obCw5ODc0NCkpLEVuKGwsNzYzODgpfSxmdW5jdGlvbiBSN2UobCxjLGYscCxtKXt2YXIgQSx3''@;'; + put 'put ''LGI7Y3w9MCxmfD0wLHB8PTAsbXw9MCxiPWFlLGFlPWFlKzMyfDAsdz1iKzE2fDAsQT1iKzh8MCxtPWIsRW4obHw9MCw3NjM0OSksMHxjJiYwfGZlW2M+PjBdJiYoYVttPj4yXT0wfG5pKGMpLE9yKGwsNzYzNTIsbSkpLDB8ZiYmMHxmZVtmPj4wXSYmKGFbQT4+Ml09MHxuaShmKSxPcihsLDc2''@;'; + put 'put ''MzYzLEEpKSwwfHAmJjB8ZmVbcD4+MF0mJihhW3c+PjJdPTB8bmkocCksT3IobCw3NjM3NSx3KSksRW4obCw3NjM4OCksYWU9Yn0sZnVuY3Rpb24gT1UobCxjLGYscCxtKXtwfD0wO3ZhciBSLEcscGUsZ2UsTGUsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsSz0wLGJlPTAsT2U9MDtmb3IoUj0x''@;'; + put 'put ''PT0oMHwobXw9MCkpLEc9MTYrKGdlPTB8YVsoMHxhWygwfGFbMTk2KygwfGFbKExlPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkrKChjfD0wKTw8NikrND4+Ml0pKygoZnw9MCk8PDIpPj4yXSl8MCxEPXBlPWYrMXwwOzspe2lmKCgwfEQpPigwfHApKXtBPXAsT2U9cGU7YnJlYWt9TT0xNisoSz0w''@;'; + put 'put ''fGFbKDB8YVsoMHxhWzE5NisoMHxhW0xlPj4yXSk+PjJdKSsoYzw8NikrND4+Ml0pKyhEPDwyKT4+Ml0pfDA7ZTpkb3tpZihSKWZvcig7Oyl7aWYoIShrPTB8YVthWzE4MCsoZj0wfGFbTT4+Ml0pPj4yXT4+Ml0pKWJyZWFrIGU7Zm9yKHc9MHxhWzE4MCsoMHxhW0c+PjJdKT4+Ml0sYj1rKy00''@;'; + put 'put ''OHwwLG09MDs7KXtpZighKGY9MHxhW3crKG08PDIpPj4yXSkpe2JlPTg7YnJlYWt9aWYoKDB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOmYrLTQ4fDApKzQwPj4yXSk9PSgwfGFbKDI9PSgzJmFbaz4+Ml18MCk/azpiKSs0MD4+Ml0pKWJyZWFrO209bSsxfDB9Zm9yKDg9PSgwfGJlKSYmKGJlPTAs''@;'; + put 'put ''Zj0wfEpjKGdlLDB8YVsoMj09KDMmYVtrPj4yXXwwKT9rOmIpKzQwPj4yXSxrKSk7bT0wfGFbYVsxNzIrKDB8YVtNPj4yXSk+PjJdPj4yXTspejYobSxmKSxVMyhtKTtVMyhrKX1lbHNlIGZvcig7Oyl7aWYoIShrPTB8YVthWzE3MisoZj0wfGFbTT4+Ml0pPj4yXT4+Ml0pKWJyZWFrIGU7Zm9y''@;'; + put 'put ''KHc9MHxhWzE3MisoMHxhW0c+PjJdKT4+Ml0sYj1rKzQ4fDAsbT0wOzspe2lmKCEoZj0wfGFbdysobTw8Mik+PjJdKSl7YmU9MTc7YnJlYWt9aWYoKDB8YVsoMz09KDMmYVtmPj4yXXwwKT9mOmYrNDh8MCkrNDA+PjJdKT09KDB8YVsoMz09KDMmYVtrPj4yXXwwKT9rOmIpKzQwPj4yXSkpYnJl''@;'; + put 'put ''YWs7bT1tKzF8MH1mb3IoMTc9PSgwfGJlKSYmKGJlPTAsZj0wfEpjKDB8YVsoMz09KDMmYVtrPj4yXXwwKT9rOmIpKzQwPj4yXSxnZSxrKSk7bT0wfGFbYVsxODArKDB8YVtNPj4yXSk+PjJdPj4yXTspejYobSxmKSxVMyhtKTtVMyhrKX19d2hpbGUoMCk7aWYoKDB8YVtmKzE3Nj4+Ml0pIT0o''@;'; + put 'put ''MC0oMHxhW2YrMTg0Pj4yXSl8MCkpe2JlPTIzO2JyZWFrfWlJKGwsSyksRD1EKzF8MH1mb3IoMjM9PSgwfGJlKSYmUHIoODgzMTMsODgzNTcsMTE1LDg4MzY0KTshKCgwfChBPUErMXwwKSk+PSgwfGFbKG09KGY9MHxhWzE5NisoMHxhW0xlPj4yXSk+PjJdKSsoYzw8Nil8MCk+PjJdKSk7KWFb''@;'; + put 'put ''KHA9MHxhW2YrKGM8PDYpKzQ+PjJdKSsoT2U8PDIpPj4yXT1iZT0wfGFbcCsoQTw8Mik+PjJdLGFbMjM2KygwfGFbYmUrMTY+PjJdKT4+Ml09T2UsT2U9T2UrMXwwO2FbbT4+Ml09T2UsYVsoMHxhW2YrKGM8PDYpKzQ+PjJdKSsoT2U8PDIpPj4yXT0wfSwkRyxmdW5jdGlvbiBnZihsLGMsZixw''@;'; + put 'put ''LG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixNLEQsUixHLEsscGUsZ2UsYmUsT2UsUmUsSGUscWUsQT0wLHc9MCxrPTAsTGU9MCxWZT0wLG50PTAsV2U9MCxvdD0wLFN0PTAsa3Q9MDtmb3IocWU9YWUsYWU9YWUrMjI0fDAsRD1xZSsxNzZ8MCxNPXFlKzIwOHwwLEhlPXFlKzE2''@;'; + put 'put ''MHwwLFZlPXFlKzEyOHwwLGs9cWUrOTZ8MCxiZT1xZSs2NHwwLFI9cWUrMzJ8MCxfWyhMZT0oT2U9cWUpKzh8MCk+PjNdPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixfW09lPj4zXT0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsX1soUmU9T2UrMjR8MCk+PjNdPS0xNzk3NjkzMTM0ODYyMzE1N2UyOTIs''@;'; + put 'put ''X1soRz1PZSsxNnwwKT4+M109LTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixfdSgxMTAxODMsbCksYVtEPj4yXT0xMCxhW0QrND4+Ml09MTAsVDAobCwxMTA1ODksRCksX3UoMTM4MjY1LGwpLHc9Yys0fDAsYj1jKzEyfDAsSz1iZSs4fDAscGU9YmUrMTZ8MCxnZT1iZSsyNHwwLEE9MDshKCgwfEEp''@;'; + put 'put ''Pj0oMHxhW3c+PjJdKSk7KWFbYmU+PjJdPWFbKFN0PSgwfGFbYj4+Ml0pKyg3MipBfDApKzQwfDApPj4yXSxhW2JlKzQ+PjJdPWFbU3QrND4+Ml0sYVtiZSs4Pj4yXT1hW1N0Kzg+PjJdLGFbYmUrMTI+PjJdPWFbU3QrMTI+PjJdLGFbYmUrMTY+PjJdPWFbU3QrMTY+PjJdLGFbYmUrMjA+PjJd''@;'; + put 'put ''PWFbU3QrMjA+PjJdLGFbYmUrMjQ+PjJdPWFbU3QrMjQ+PjJdLGFbYmUrMjg+PjJdPWFbU3QrMjg+PjJdLG90PStfW0s+PjNdLFdlPStfW3BlPj4zXSxudD0rX1tnZT4+M10sX1trPj4zXT0rX1tiZT4+M10sX1trKzg+PjNdPW90LF9baysxNj4+M109V2UsX1trKzI0Pj4zXT1udCxUMChsLDEz''@;'; + put 'put ''ODI4NCxrKSxBPUErMXwwO2ZvcihBPTA7ISgoMHxBKT49KDB8ZikpOylTdD0wfGFbbSsoQTw8MykrND4+Ml0sYVtNPj4yXT1hWyhrPXArKEE8PDMpfDApPj4yXSxhW00rND4+Ml09YVtrKzQ+PjJdLGFbRD4+Ml09YVtPZT4+Ml0sYVtEKzQ+PjJdPWFbT2UrND4+Ml0sYVtEKzg+PjJdPWFbT2Ur''@;'; + put 'put ''OD4+Ml0sYVtEKzEyPj4yXT1hW09lKzEyPj4yXSxhW0QrMTY+PjJdPWFbT2UrMTY+PjJdLGFbRCsyMD4+Ml09YVtPZSsyMD4+Ml0sYVtEKzI0Pj4yXT1hW09lKzI0Pj4yXSxhW0QrMjg+PjJdPWFbT2UrMjg+PjJdLEd6KFIsbCxTdCxNLGMsRCksYVtPZT4+Ml09YVtSPj4yXSxhW09lKzQ+PjJd''@;'; + put 'put ''PWFbUis0Pj4yXSxhW09lKzg+PjJdPWFbUis4Pj4yXSxhW09lKzEyPj4yXT1hW1IrMTI+PjJdLGFbT2UrMTY+PjJdPWFbUisxNj4+Ml0sYVtPZSsyMD4+Ml09YVtSKzIwPj4yXSxhW09lKzI0Pj4yXT1hW1IrMjQ+PjJdLGFbT2UrMjg+PjJdPWFbUisyOD4+Ml0sQT1BKzF8MDtmb3IoX3UoMTEw''@;'; + put 'put ''NjA2LGwpLHc9Yys4fDAsQT0wOyEoKDB8QSk+PSgwfGFbYz4+Ml0pKTspYVtiZT4+Ml09YVsoU3Q9KDB8YVt3Pj4yXSkrKDcyKkF8MCkrNDB8MCk+PjJdLGFbYmUrND4+Ml09YVtTdCs0Pj4yXSxhW2JlKzg+PjJdPWFbU3QrOD4+Ml0sYVtiZSsxMj4+Ml09YVtTdCsxMj4+Ml0sYVtiZSsxNj4+''@;'; + put 'put ''Ml09YVtTdCsxNj4+Ml0sYVtiZSsyMD4+Ml09YVtTdCsyMD4+Ml0sYVtiZSsyND4+Ml09YVtTdCsyND4+Ml0sYVtiZSsyOD4+Ml09YVtTdCsyOD4+Ml0sbnQ9K19bSz4+M10sV2U9K19bcGU+PjNdLG90PStfW2dlPj4zXSxfW1ZlPj4zXT1rdD0rX1tiZT4+M10sX1tWZSs4Pj4zXT1udCxfW1Zl''@;'; + put 'put ''KzE2Pj4zXT1XZSxfW1ZlKzI0Pj4zXT1vdCxUMChsLDEzODMyMSxWZSksX1tPZT4+M109K19bKCtfW09lPj4zXTxrdD9PZTpiZSk+PjNdLF9bTGU+PjNdPStfWygrX1tMZT4+M108bnQ/T2U6YmUpKzg+PjNdLF9bRz4+M109K19bKCtfW0c+PjNdPldlP09lOmJlKSsxNj4+M10sX1tSZT4+M109''@;'; + put 'put ''K19bKCtfW1JlPj4zXT5vdD9PZTpiZSkrMjQ+PjNdLEE9QSsxfDA7TGU9fn4oK19bTGU+PjNdKzEwKSxWZT1+figrX1tHPj4zXSsxMCksU3Q9fn4oK19bUmU+PjNdKzEwKSxhW0hlPj4yXT1+figrX1tPZT4+M10rMTApLGFbSGUrND4+Ml09TGUsYVtIZSs4Pj4yXT1WZSxhW0hlKzEyPj4yXT1T''@;'; + put 'put ''dCxUMChsLDExMDYzMSxIZSksYWU9cWV9LE1wLE1wLE1wLE1wLE1wLE1wLE1wXSxoOT1bbHcsZnVuY3Rpb24gZTdlKGwsYyxmLHAsbSxBKXtjfD0wLGZ8PTAsQXw9MCxQVChsfD0wKSxGQyhsKSxBPygzPT0oMXxBKT93RihsLEEsYyxmKTpGVChsKSxIQyhsLDk4LGMsZikpOkhDKGwsNjYsYyxm''@;'; + put 'put ''KX0sZnVuY3Rpb24gbWllKGwsYyxmLHAsbSxBKXtjfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBNLEQsSyxwZSxnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxudCxXZSxvdCx3PTAsYj0wLGs9MCxSPTAsRz0wLFN0PTAsa3Q9MCxsdD0wO2ZvcihvdD1hZSxhZT1hZSsxOTJ8MCxXZT1vdCsxNzZ8MCxx''@;'; + put 'put ''ZT1vdCsxNjh8MCxudD1vdCsxMDR8MCxWZT1vdCs5NnwwLHc9b3QrODh8MCxPZT1vdCsxODB8MCxMZT1vdCs4MHwwLFJlPW90KzE2fDAsSGU9b3QsSz1+fitfWzE1MisocD0wfGFbKG09MTYrKGx8PTApfDApPj4yXSk+PjNdLHBlPTB8YVtwKzE2Pj4yXSxnZT0wfGFbNDY3MTBdLCgwfChmfD0w''@;'; + put 'put ''KSk8PTMmJlByKDY3ODgyLDY3ODg5LDM2MCw2NzkwOSksYmU9MHxCMCgxNDArKDE0MCpmfDApfDApLHU3KHAsT2UsTGUpLEE/KFI9NSxiPTB8YVs1NisoMHxhW20+PjJdKT4+Ml0saz0yMCk6KFI9NCxiPTAsaz0tMSksX1soRD1SZSs0OHwwKT4+M109a3Q9K19bYz4+M10sX1tSZSs1Nj4+M109''@;'; + put 'put ''U3Q9K19bYys4Pj4zXSxhW3c+PjJdPX5+KGt0KyhrdD49MD8uNTotLjUpKSxhW3crND4+Ml09fn4oU3QrKFN0Pj0wPy41Oi0uNSkpLE09SGUrOHwwLHA9YmUrKDB8b28oYmUsODEwOTksdykpfDAsRz0xLEE9MDshKCgwfCh3PUErM3wwKSk+PSgwfGYpKTspe2ZvcihhW1JlPj4yXT1hW0Q+PjJd''@;'; + put 'put ''LGFbUmUrND4+Ml09YVtEKzQ+PjJdLGFbUmUrOD4+Ml09YVtEKzg+PjJdLGFbUmUrMTI+PjJdPWFbRCsxMj4+Ml0sbT0xOzspe2lmKDQ9PSgwfG0pKXttPTE7YnJlYWt9X1tSZSsobTw8NCk+PjNdPStfW2MrKChsdD1tK0F8MCk8PDQpPj4zXSxfW1JlKyhtPDw0KSs4Pj4zXT0rX1tjKyhsdDw8''@;'; + put 'put ''NCkrOD4+M10sbT1tKzF8MH1mb3IoOzchPSgwfG0pOyl3dShIZSxSZSwzLC4xNjY2NjY2NjY2NjY2NjY2NiorKDB8bSksMCwwKSxrdD0rX1tNPj4zXSxhW1ZlPj4yXT1+figoU3Q9K19bSGU+PjNdKSsoU3Q+PTA/LjU6LS41KSksYVtWZSs0Pj4yXT1+fihrdCsoa3Q+PTA/LjU6LS41KSksbT1t''@;'; + put 'put ''KzF8MCxwPXArKDB8b28ocCw4MTA5OSxWZSkpfDA7Rz1HKzZ8MCxBPXd9Zm9yKG09MHxhW09lPj4yXSxrdD0rX1tMZT4+M10sYVtudD4+Ml09MyxhW250KzQ+PjJdPVIsYVtudCs4Pj4yXT1tLGFbbnQrMTI+PjJdPUssYVtudCsxNj4+Ml09cGUsYVtudCsyMD4+Ml09YixhW250KzI0Pj4yXT1n''@;'; + put 'put ''ZSxhW250KzI4Pj4yXT0wLGFbbnQrMzI+PjJdPWssX1tudCs0MD4+M109a3QsYVtudCs0OD4+Ml09MCxhW250KzUyPj4yXT0wLGFbbnQrNTY+PjJdPTAsYVtudCs2MD4+Ml09RyxPcihsLDY4MzgyLG50KSxhW3FlPj4yXT1iZSxPcihsLDgxMTA2LHFlKSxGdChiZSksbT1HKy0xfDAscD0wOyEo''@;'; + put 'put ''KDB8cCk+PSgwfEcpKTspYVtXZT4+Ml09MCE9KDB8KDB8cCklKDB8bSkpJjEsT3IobCw4MTExMSxXZSkscD1wKzF8MDtFbihsLDE1MzU5OSksYWU9b3R9LGZ1bmN0aW9uIGpXKGwsYyxmLHAsbSxBKXtjfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBNLEQsSyxwZSxnZSxiZSxPZSxMZSxSZSxIZSxW''@;'; + put 'put ''ZSxxZSxudCxXZSxvdCx3PTAsYj0wLGs9MCxSPTAsRz0wLFN0PTAsa3Q9MCxsdD0wO2ZvcihvdD1hZSxhZT1hZSsxOTJ8MCxXZT1vdCsxNzZ8MCxxZT1vdCsxNjh8MCxudD1vdCsxMDR8MCxWZT1vdCs5NnwwLG09b3QrODh8MCxPZT1vdCsxODB8MCxMZT1vdCs4MHwwLFJlPW90KzE2fDAsSGU9''@;'; + put 'put ''b3QsSz1+fitfWzE1MisoRz0wfGFbKHA9MTYrKGx8PTApfDApPj4yXSk+PjNdLHBlPTB8YVtHKzE2Pj4yXSxnZT0wfGFbNDY3MTZdLGJlPTB8QjAoMTQwKygxNDAqKGZ8PTApfDApfDApLFdUKEcsT2UsTGUpLEE/KFI9NSxiPTB8YVs1NisoMHxhW3A+PjJdKT4+Ml0saz0yMCk6KFI9NCxiPTAs''@;'; + put 'put ''az0tMSksX1soRD1SZSs0OHwwKT4+M109a3Q9K19bYz4+M10sX1tSZSs1Nj4+M109U3Q9K19bYys4Pj4zXSxhW20+PjJdPX5+KGt0KyhrdD49MD8uNTotLjUpKSxhW20rND4+Ml09fn4oU3QrKFN0Pj0wPy41Oi0uNSkpLE09SGUrOHwwLHA9YmUrKDB8b28oYmUsODEwOTksbSkpfDAsRz0xLEE9''@;'; + put 'put ''MDshKCgwfCh3PUErM3wwKSk+PSgwfGYpKTspe2ZvcihhW1JlPj4yXT1hW0Q+PjJdLGFbUmUrND4+Ml09YVtEKzQ+PjJdLGFbUmUrOD4+Ml09YVtEKzg+PjJdLGFbUmUrMTI+PjJdPWFbRCsxMj4+Ml0sbT0xOzspe2lmKDQ9PSgwfG0pKXttPTE7YnJlYWt9X1tSZSsobTw8NCk+PjNdPStfW2Mr''@;'; + put 'put ''KChsdD1tK0F8MCk8PDQpPj4zXSxfW1JlKyhtPDw0KSs4Pj4zXT0rX1tjKyhsdDw8NCkrOD4+M10sbT1tKzF8MH1mb3IoOzchPSgwfG0pOyl3dShIZSxSZSwzLC4xNjY2NjY2NjY2NjY2NjY2NiorKDB8bSksMCwwKSxrdD0rX1tNPj4zXSxhW1ZlPj4yXT1+figoU3Q9K19bSGU+PjNdKSsoU3Q+''@;'; + put 'put ''PTA/LjU6LS41KSksYVtWZSs0Pj4yXT1+fihrdCsoa3Q+PTA/LjU6LS41KSksbT1tKzF8MCxwPXArKDB8b28ocCw4MTA5OSxWZSkpfDA7Rz1HKzZ8MCxBPXd9Zm9yKG09MHxhW09lPj4yXSxrdD0rX1tMZT4+M10sYVtudD4+Ml09MyxhW250KzQ+PjJdPVIsYVtudCs4Pj4yXT1tLGFbbnQrMTI+''@;'; + put 'put ''PjJdPUssYVtudCsxNj4+Ml09cGUsYVtudCsyMD4+Ml09YixhW250KzI0Pj4yXT1nZSxhW250KzI4Pj4yXT0wLGFbbnQrMzI+PjJdPWssX1tudCs0MD4+M109a3QsYVtudCs0OD4+Ml09MCxhW250KzUyPj4yXT0wLGFbbnQrNTY+PjJdPTAsYVtudCs2MD4+Ml09RyxPcihsLDY4MzgyLG50KSxh''@;'; + put 'put ''W3FlPj4yXT1iZSxPcihsLDgxMTA2LHFlKSxGdChiZSksbT1HKy0xfDAscD0wOyEoKDB8cCk+PSgwfEcpKTspYVtXZT4+Ml09MCE9KDB8KDB8cCklKDB8bSkpJjEsT3IobCw4MTExMSxXZSkscD1wKzF8MDtFbihsLDE1MzU5OSksYWU9b3R9LGZ1bmN0aW9uIFhXKGwsYyxmLHAsbSxBKXtjfD0w''@;'; + put 'put ''LGZ8PTAscHw9MCxtfD0wO3ZhciB3LGssYj0wO2lmKGs9YWUsYWU9YWUrMTZ8MCxtPWssdz0xNisobHw9MCl8MCwwfChBfD0wKSYmK19bODArKGI9MHxhW3c+PjJdKT4+M10+LjUpe2ZvcihhcChsLGIrNTZ8MCksRW4obCw2ODg1MiksYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+''@;'; + put 'put ''Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sbmgobCxtKSxFbihsLDY4ODYxKSxwPTE7ISgoMHxwKT49KDB8ZikpOylHMyhsLGMrKHA8PDQpfDAsMyksRW4obCw2ODg4NykscD1wKzN8MDtFbihsLDY4ODk3KX1pZigrX1s0MCsoMHxhW3c+PjJdKT4+M10+LjUp''@;'; + put 'put ''e2Zvcih6QShsKSxhcChsLDE2KygwfGFbdz4+Ml0pfDApLEVuKGwsNjg4NTIpLGFbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLG5oKGwsbSksRW4obCw2ODg2MSkscD0xOyEoKDB8cCk+PSgwfGYpKTsp''@;'; + put 'put ''RzMobCxjKyhwPDw0KXwwLDMpLEVuKGwsNjg4ODcpLHA9cCszfDA7RW4obCw2ODg3OSl9YWU9a30sZnVuY3Rpb24gdzdlKGwsYyxmLHAsbSxBKXtzd2l0Y2goY3w9MCxmfD0wLHB8PTAsbXw9MCxtPTB8YVsxNisobHw9MCk+PjJdLDB8KEF8PTApKXtjYXNlIDI6cD0wfHFXKGwsYyxmKTticmVh''@;'; + put 'put ''aztjYXNlIDM6cD0wfGVZKGwpO2JyZWFrO2RlZmF1bHQ6cD0wfUVuKGwsNzM1OTQpLDUxMiZydFttKzI2MD4+MV0mJihFbihsLDczNjAwKSxFbihsLDB8TTEoMHxhW20rMjEyPj4yXSkpLEVuKGwsNzM2MDYpKSxJRihsLEEscCksRW4obCw3MzYxMSksZnVuY3Rpb24gXzdlKGwsYyxmKXtsfD0w''@;'; + put 'put ''LGN8PTAsZnw9MDt2YXIgQSx3LHA9MCxtPTA7Zm9yKHc9YWUsYWU9YWUrMTZ8MCxBPXcscD03NyxtPTA7ISgoMHxtKT49KDB8ZikpOylhW0E+PjJdPXAsT3IobCw3MzYxNixBKSxqcyhsLCtfW2MrKG08PDQpPj4zXSksRW4obCwxMDA5OTkpLGpzKGwsLStfW2MrKG08PDQpKzg+PjNdKSxwPTA9''@;'; + put 'put ''PSgwfG0pPzY3OjMyLG09bSsxfDA7YWU9d30obCxjLGYpLEVuKGwsNzM0MjQpfSxmdW5jdGlvbiB4N2UobCxjLGYscCxtLEEpe3ZhciB3LGIsayxNO2lmKGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCxNPWFlLGFlPWFlKzQ4fDAsdz1NLDB8YVsoaz0xNDQrKGI9MHxhWzE2KyhsfD0wKT4+Ml0p''@;'; + put 'put ''fDApPj4yXSl7VVQobCksRW4obCw3NTE0MSksRzMobCxjLGYpLEVuKGwsNzUxNTUpLG09YisxNnwwLEE9KHA9dykrNDB8MDtkb3thW3A+PjJdPWFbbT4+Ml0scD1wKzR8MCxtPW0rNHwwfXdoaWxlKCgwfHApPCgwfEEpKTtHQShsLHcpLEVuKGwsNzUyNjYpLGpzKGwsK19bYisxNTI+PjNdKSwx''@;'; + put 'put ''PT0oMHwocD0wfGFbaz4+Ml0pKSYmKEVuKGwsNzUxNjMpLHA9MHxhW2s+PjJdKSwyPT0oMHxwKSYmRW4obCw3NTE3MiksRW4obCw3NTI3NSksUVQobCksRW4obCwxNTM1OTkpfWFlPU19LGZ1bmN0aW9uIGY3KGwsYyxmLHAsbSxBKXt2YXIgdztjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsbT1h''@;'; + put 'put ''ZSxhZT1hZSsxNnwwLHA9bSxFbihsfD0wLDc1NTExKSx3PTB8YVs0NjcyN10sYVtwPj4yXT1hWzQ2NzI2XSxhW3ArND4+Ml09dyxPcihsLDc1NzY0LHApLG5ZKGwsQSksRW4obCw3NTc4OCksSlQobCksRW4obCw3NTc5MSksZnVuY3Rpb24gclkobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBB''@;'; + put 'put ''LHcscD0wLG09MCxiPTAsaz0wO2Zvcih3PWFlLGFlPWFlKzMyfDAsQT13LHA9NzU4MTgsbT0wOyEoKDB8bSk+PSgwfGYpKTspaz0rX1tjKyhtPDw0KT4+M10sYj0rKCgwfGFbNDY3MjddKT4+PjApLStfW2MrKG08PDQpKzg+PjNdLGFbQT4+Ml09cCxfW0ErOD4+M109ayxfW0ErMTY+PjNdPWIs''@;'; + put 'put ''T3IobCw3NTgyMSxBKSxwPTA9PSgwfG0pPzc1ODM0OjE5NTA1OSxtPW0rMXwwO0VuKGwsOTg3NDQpLGFlPXd9KGwsYyxmKSxFbihsLDc1ODA0KSxhZT1tfSxmdW5jdGlvbiBKN2UobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgTSxELFIsRyxnZSxiZSxPZSxMZSxS''@;'; + put 'put ''ZSxIZSxWZSxxZSxudCx3PTAsYj0wLGs9MCxLPTAscGU9MCxXZT0wLG90PTA7bnQ9YWUsYWU9YWUrMjA4fDAscD1udCsxNjB8MCxxZT1udCsxNTJ8MCxWZT1udCsxMzZ8MCxIZT1udCsxMjh8MCxSZT1udCs5NnwwLExlPW50Kzg4fDAsT2U9bnQrNTZ8MCxiPW50KzQ4fDAscGU9bnQrMjR8MCxL''@;'; + put 'put ''PW50LEVuKGx8PTAsNzg3MDkpLGpuWzQ2NzI5XT0ram5bNDY3MjhdLTQsV2U9K19bbCs0OTY+PjNdLF9bSz4+M109K19bbCs0ODg+PjNdLF9bSys4Pj4zXT1XZSxfW0srMTY+PjNdPTEsSz0wfEVhKGwsNzgyNzcsSyksV2U9KygwfGFbbCszNjA+PjJdKSxfW3BlPj4zXT0wLF9bcGUrOD4+M109''@;'; + put 'put ''MCxfW3BlKzE2Pj4zXT1XZSxwZT0wfEVhKGwsNzgzMDkscGUpLFdlPStqbls0NjcyOV0tMixfW3A+PjNdPTAsX1twKzg+PjNdPTAsX1twKzE2Pj4zXT1XZSxnZT0wfEVhKGwsNzgzNDEscCksQT01NisoMHxhWyhiZT1sKzE2fDApPj4yXSl8MCx3PShtPXApKzQwfDA7ZG97YVttPj4yXT1hW0E+''@;'; + put 'put ''PjJdLG09bSs0fDAsQT1BKzR8MH13aGlsZSgoMHxtKTwoMHx3KSk7Zm9yKE09MHxXQShsLHAsMCksYVtiPj4yXT03ODcyMyxhW2IrND4+Ml09ZisyLEQ9bCs1MDR8MCxSPWwrNTEyfDAsRz1mKy0xfDAsaz0wLHA9MHxFYShsLDc4MzczLGIpOyEoKDB8ayk+PSgwfGYpKTspb3Q9K19bUj4+M10r''@;'; + put 'put ''ICtfWyhBPWMrKGs8PDQpKzh8MCk+PjNdLFdlPStfWzE1MisoMHxhW2JlPj4yXSk+PjNdLF9bT2U+PjNdPStfW0Q+PjNdKyArX1sobT1jKyhrPDw0KXwwKT4+M10sX1tPZSs4Pj4zXT1vdCxfW09lKzE2Pj4zXT0wLF9bT2UrMjQ+PjNdPVdlLGI9MHxFYShsLDc4NDE4LE9lKSxhW0xlPj4yXT1w''@;'; + put 'put ''LGFbTGUrND4+Ml09Yix3PTB8RWEobCw3ODQ0NyxMZSksRnQoYiksRnQocCksMD09KDB8ayl8KDB8ayk9PSgwfEcpPyhXZT0rX1tSPj4zXSsgK19bQT4+M10sb3Q9K19bMTUyKygwfGFbYmU+PjJdKT4+M10sX1tSZT4+M109K19bRD4+M10rICtfW20+PjNdLF9bUmUrOD4+M109V2UsX1tSZSsx''@;'; + put 'put ''Nj4+M109MCxfW1JlKzI0Pj4zXT1vdCxiPTB8RWEobCw3ODQxOCxSZSksYVtIZT4+Ml09dyxhW0hlKzQ+PjJdPWIscD0wfEVhKGwsNzg0NDcsSGUpLEZ0KGIpLEZ0KHcpKTpwPXcsaz1rKzF8MDthW1ZlPj4yXT1LLGFbVmUrND4+Ml09cGUsYVtWZSs4Pj4yXT1nZSxhW1ZlKzEyPj4yXT1NLGM9''@;'; + put 'put ''MHxFYShsLDc4NzMyLFZlKSxhW3FlPj4yXT1wLGFbcWUrND4+Ml09YyxmPTB8RWEobCw3ODUwMixxZSksRnQoYyksRW4obCxmKSxGdChLKSxGdChwZSksRnQoZ2UpLEZ0KE0pLEZ0KGYpLGFlPW50fSxmdW5jdGlvbiBVaWUobCxjLGYscCxtLEEpe2N8PTAscHw9MCxtfD0wLEF8PTA7dmFyIHcs''@;'; + put 'put ''YixELFIsRyxLLGdlLGJlLGs9MCxNPTAscGU9MCxPZT0wLExlPTAsUmU9MDtmb3IoYmU9YWUsYWU9YWUrMTI4fDAsZ2U9YmUrMTEyfDAsSz1iZSsxMDR8MCxHPWJlKzk2fDAscD1iZSs4OHwwLEQ9YmUrMTZ8MCxSPWJlLGs9MHxhWzE2KyhsfD0wKT4+Ml0sYj0wfEIwKDE0MCsoMTQwKihmfD0w''@;'; + put 'put ''KXwwKXwwKSxERihrLGJlKzExNnwwLGJlKzgwfDApLF9bKGs9RCs0OHwwKT4+M109TGU9K19bYz4+M10sX1tEKzU2Pj4zXT1PZT0rX1tjKzg+PjNdLGFbcD4+Ml09fn4oTGUrKExlPj0wPy41Oi0uNSkpLGFbcCs0Pj4yXT1+fihPZSsoT2U+PTA/LjU6LS41KSksdz1SKzh8MCxwPWIrKDB8b28o''@;'; + put 'put ''Yiw4MTA5OSxwKSl8MCxwZT0xLEE9MDshKCgwfChNPUErM3wwKSk+PSgwfGYpKTspe2ZvcihhW0Q+PjJdPWFbaz4+Ml0sYVtEKzQ+PjJdPWFbays0Pj4yXSxhW0QrOD4+Ml09YVtrKzg+PjJdLGFbRCsxMj4+Ml09YVtrKzEyPj4yXSxtPTE7Oyl7aWYoND09KDB8bSkpe209MTticmVha31fW0Qr''@;'; + put 'put ''KG08PDQpPj4zXT0rX1tjKygoUmU9bStBfDApPDw0KT4+M10sX1tEKyhtPDw0KSs4Pj4zXT0rX1tjKyhSZTw8NCkrOD4+M10sbT1tKzF8MH1mb3IoOzchPSgwfG0pOyl3dShSLEQsMywuMTY2NjY2NjY2NjY2NjY2NjYqKygwfG0pLDAsMCksTGU9K19bdz4+M10sYVtHPj4yXT1+figoT2U9K19b''@;'; + put 'put ''Uj4+M10pKyhPZT49MD8uNTotLjUpKSxhW0crND4+Ml09fn4oTGUrKExlPj0wPy41Oi0uNSkpLG09bSsxfDAscD1wKygwfG9vKHAsODEwOTksRykpfDA7cGU9cGUrNnwwLEE9TX1mb3IoYVtLPj4yXT1iLE9yKGwsODExMDYsSyksRnQoYiksbT1wZSstMXwwLHA9MDshKCgwfHApPj0oMHxwZSkp''@;'; + put 'put ''OylhW2dlPj4yXT0wIT0oMHwoMHxwKSUoMHxtKSkmMSxPcihsLDgxMTExLGdlKSxwPXArMXwwO0VuKGwsMTUzNTk5KSxhZT1iZX0sZnVuY3Rpb24gYmQobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIExlLFJlLEhlLFN0LGt0LFp0LGN0LGJ0LGFuLEhuLHc9MCxiPTAsaz0w''@;'; + put 'put ''LE09MCxEPTAsUj0wLEc9MCxLPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxWZT0wLHFlPTAsbnQ9MCxXZT0wLG90PTAsRXQ9MCx1cj0wLEhyPTAsRXI9MDtmb3IoSG49YWUsYWU9YWUrMTEyfDAsa3Q9SG4rODh8MCxTdD1Ibis3MnwwLGJ0PUhuKzU2fDAsYW49SG4rNDB8MCxMZT0wPT0oMHwoQXw9''@;'; + put 'put ''MCkpLFJlPShjdD1IbikrOHwwLEhlPTgrKFp0PUhuKzE2fDApfDAsT2U9MCxrPTAsTT0wLEQ9MCxSPTAsQT0wOyEoKDB8T2UpPj0oMHxmKSk7KXtmb3IocWU9NDgrKFZlPTB8YVttKyhPZTw8MykrND4+Ml0pfDAsV2U9MTYrKDB8YVsobnQ9VmUrMTZ8MCk+PjJdKXwwLGFbU3Q+PjJdPWFbKGJl''@;'; + put 'put ''PTE2KygwfGFbMTYrKDB8YVsoMz09KDMmYVtWZT4+Ml18MCk/VmU6cWUpKzQwPj4yXSk+PjJdKXwwKT4+Ml0sYVtTdCs0Pj4yXT1hW2JlKzQ+PjJdLGFbU3QrOD4+Ml09YVtiZSs4Pj4yXSxhW1N0KzEyPj4yXT1hW2JlKzEyPj4yXSxhW2t0Pj4yXT1hW1dlPj4yXSxhW2t0KzQ+PjJdPWFbV2Ur''@;'; + put 'put ''ND4+Ml0sYVtrdCs4Pj4yXT1hW1dlKzg+PjJdLGFba3QrMTI+PjJdPWFbV2UrMTI+PjJdLHViKGJ0LFN0LGt0KSxhW1p0Pj4yXT1hW2J0Pj4yXSxhW1p0KzQ+PjJdPWFbYnQrND4+Ml0sYVtadCs4Pj4yXT1hW2J0Kzg+PjJdLGFbWnQrMTI+PjJdPWFbYnQrMTI+PjJdLFdlPVZlKy00OHwwLGdl''@;'; + put 'put ''PTU2KygwfGFbbnQ+PjJdKXwwLGFbU3Q+PjJdPWFbKGJlPTE2KygwfGFbMTYrKDB8YVsoMj09KDMmYVtWZT4+Ml18MCk/VmU6V2UpKzQwPj4yXSk+PjJdKXwwKT4+Ml0sYVtTdCs0Pj4yXT1hW2JlKzQ+PjJdLGFbU3QrOD4+Ml09YVtiZSs4Pj4yXSxhW1N0KzEyPj4yXT1hW2JlKzEyPj4yXSxh''@;'; + put 'put ''W2t0Pj4yXT1hW2dlPj4yXSxhW2t0KzQ+PjJdPWFbZ2UrND4+Ml0sYVtrdCs4Pj4yXT1hW2dlKzg+PjJdLGFba3QrMTI+PjJdPWFbZ2UrMTI+PjJdLHViKGFuLFN0LGt0KSxhW2N0Pj4yXT1hW2FuPj4yXSxhW2N0KzQ+PjJdPWFbYW4rND4+Ml0sYVtjdCs4Pj4yXT1hW2FuKzg+PjJdLGFbY3Qr''@;'; + put 'put ''MTI+PjJdPWFbYW4rMTI+PjJdLGJlPTB8YVtwKyhPZTw8MykrND4+Ml0sb3Q9MSsocGU9MyooZ2U9MHxhW3ArKE9lPDwzKT4+Ml0pfDApfDAsKDB8cGUpPj0oMHxNKSYmKDB8ayYmRnQoQSksaz1SPTB8UW4ob3Q8PDQpLE09b3QsRD1SLEE9UiksMHxmZVtiZT4+MF0/KHc9K19kKGJlLGMpLGI9''@;'; + put 'put ''K19bSGU+PjNdKTooYj0rKDB8bTMoYmUsYykpLHc9K19bWnQ+PjNdKSxLPWsrMTZ8MCxfW2srMTY+PjNdPXcsX1trKzI0Pj4zXT1iLGFbUj4+Ml09YVtLPj4yXSxhW1IrND4+Ml09YVtLKzQ+PjJdLGFbUis4Pj4yXT1hW0srOD4+Ml0sYVtSKzEyPj4yXT1hW0srMTI+PjJdLEs9MSxHPWJlLHBl''@;'; + put 'put ''PTI7ISgoMHxLKT49KDB8Z2UpKTspMHxmZVsoRz1iZSsoNTYqS3wwKXwwKT4+MF0/dz0rX2QoRyxjKTpiPSsoMHxtMyhHLGMpKSx1cj1rKyhwZSsyPDw0KXwwLEVyPWsrKHBlKzE8PDQpfDAsX1soSHI9aysocGU8PDQpfDApPj4zXT13LF9baysocGU8PDQpKzg+PjNdPWIsYVtFcj4+Ml09YVtI''@;'; + put 'put ''cj4+Ml0sYVtFcis0Pj4yXT1hW0hyKzQ+PjJdLGFbRXIrOD4+Ml09YVtIcis4Pj4yXSxhW0VyKzEyPj4yXT1hW0hyKzEyPj4yXSxhW3VyPj4yXT1hW0hyPj4yXSxhW3VyKzQ+PjJdPWFbSHIrND4+Ml0sYVt1cis4Pj4yXT1hW0hyKzg+PjJdLGFbdXIrMTI+PjJdPWFbSHIrMTI+PjJdLEs9Sysx''@;'; + put 'put ''fDAscGU9cGUrM3wwOzB8ZmVbRz4+MF0/KHc9K19kKEcsYyksYj0rX1tSZT4+M10pOihiPSsoMHxtMyhHLGMpKSx3PStfW2N0Pj4zXSksRXI9aysocGU8PDQpfDAsX1soSHI9aysoKHVyPXBlKzF8MCk8PDQpfDApPj4zXT13LF9baysodXI8PDQpKzg+PjNdPWIsYVtFcj4+Ml09YVtIcj4+Ml0s''@;'; + put 'put ''YVtFcis0Pj4yXT1hW0hyKzQ+PjJdLGFbRXIrOD4+Ml09YVtIcis4Pj4yXSxhW0VyKzEyPj4yXT1hW0hyKzEyPj4yXSxBdShWZSwwfGFbKDI9PSgzJmFbVmU+PjJdfDApP1ZlOldlKSs0MD4+Ml0sayxvdCwyNTY4MCksIUxlJiYwfChFdD0wfGFbOTYrKDB8YVtudD4+Ml0pPj4yXSkmJjA9PSgw''@;'; + put 'put ''fGZlW0V0KzgxPj4wXSkmJihhW1N0Pj4yXT1hW1p0Pj4yXSxhW1N0KzQ+PjJdPWFbWnQrND4+Ml0sYVtTdCs4Pj4yXT1hW1p0Kzg+PjJdLGFbU3QrMTI+PjJdPWFbWnQrMTI+PjJdLGFba3Q+PjJdPWFbY3Q+PjJdLGFba3QrND4+Ml09YVtjdCs0Pj4yXSxhW2t0Kzg+PjJdPWFbY3QrOD4+Ml0s''@;'; + put 'put ''YVtrdCsxMj4+Ml09YVtjdCsxMj4+Ml0sdGcoMCxWZSkpLE9lPU9lKzF8MH1GdChEKSxhZT1Ibn0sbHcsbHcsbHcsbHcsbHddLG9TPVtmdW5jdGlvbiB6cyhsLGMsZixwLG0sQSx3LGIsayl7dzIoMjApfV07cmV0dXJue19fX2Vycm5vX2xvY2F0aW9uOmZ1bmN0aW9uIHRzKCl7cmV0dXJuIDE5''@;'; + put 'put ''MDU3Mn0sX19fbXVsZGkzOnJ3LF9fX3VkaXZkaTM6aXcsX19fdXJlbWRpMzpuUyxfYml0c2hpZnQ2NEFzaHI6U0wsX2JpdHNoaWZ0NjRMc2hyOndsLF9iaXRzaGlmdDY0U2hsOlpvLF9kdGV4dHJhY3Q6RjMsX2ZyZWU6RnQsX2h0b25zOmZ1bmN0aW9uIHBjZShsKXtyZXR1cm4gMHxmdW5jdGlv''@;'; + put 'put ''biBnY2UobCl7cmV0dXJuIDB8Z2ZlKDB8KGx8PTApKX0obHw9MCl9LF9pNjRBZGQ6emwsX2k2NFN1YnRyYWN0OlNwLF9sbHZtX2Jzd2FwX2kxNjpnZmUsX2xsdm1fYnN3YXBfaTMyOlRzLF9tYWxsb2M6QjAsX21lbWFsaWduOmZ1bmN0aW9uIFB1ZShsLGMpe3JldHVybiBjfD0wLChsfD0wKT4+''@;'; + put 'put ''PjA8OT8wfChjPTB8QjAoYykpOihjPTB8ZnVuY3Rpb24gdkFlKGwsYyl7Y3w9MDt2YXIgQSxmPTAscD0wLG09MCx3PTAsYj0wO2lmKChsPShsfD0wKT4+PjA+MTY/bDoxNikrLTEmbClmb3IoZj0xNjs7KXtpZighKGY+Pj4wPGw+Pj4wKSl7bD1mO2JyZWFrfWY8PD0xfWlmKCgtNjQtbHwwKT4+''@;'; + put 'put ''PjA8PWM+Pj4wKXJldHVybiBhWzQ3NjQzXT0xMiwwO2lmKCEoZj0wfEIwKDEyKyhBPWM+Pj4wPDExPzE2OmMrMTEmLTgpK2x8MCkpKXJldHVybiAwO209ZistOHwwO2Rve2lmKGwrLTEmZil7aWYocD0oKHA9KGYrbCstMSYwLWwpLTh8MCktKGM9bSl8MCk+Pj4wPjE1P3A6cCtsfDAsZj0oLTgm''@;'; + put 'put ''KGI9MHxhWyhsPWYrLTR8MCk+PjJdKSktKGM9cC1jfDApfDAsMyZiKXthWyhiPXArNHwwKT4+Ml09ZnwxJmFbYj4+Ml18MixhWyhmPXArZis0fDApPj4yXT0xfGFbZj4+Ml0sYVtsPj4yXT1jfDEmYVtsPj4yXXwyLGFbYj4+Ml09MXxhW2I+PjJdLGFMKG0sYyksbD1wLGM9cDticmVha31hW3A+''@;'; + put 'put ''PjJdPSgwfGFbbT4+Ml0pK2MsYVtwKzQ+PjJdPWYsbD1wLGM9cDticmVha31sPW0sYz1tfXdoaWxlKDApO3JldHVybiAzJihmPTB8YVsobD1sKzR8MCk+PjJdKXwwJiYodz0tOCZmKT4+PjA+KEErMTZ8MCk+Pj4wJiYoYj13LUF8MCxtPWMrQXwwLGFbbD4+Ml09QXwxJmZ8MixhW20rND4+Ml09''@;'; + put 'put ''M3xiLGFbKHc9Yyt3KzR8MCk+PjJdPTF8YVt3Pj4yXSxhTChtLGIpKSwwfGMrOH0obCxjKSwwfGMpfSxfbWVtY3B5OmdvLF9tZW1tb3ZlOm4xLF9tZW1zZXQ6dTIsX3JlYWxsb2M6VWEsX3NhdmVTZXRqbXA6UGYsX3Nicms6eTIsX3Rlc3RTZXRqbXA6Z2ksX3ZpekNyZWF0ZUZpbGU6ZnVuY3Rp''@;'; + put 'put ''b24gZWllKGwsYyl7STQoMCwwfChsfD0wKSwwfChjfD0wKSl9LF92aXpMYXN0RXJyb3JNZXNzYWdlOmZ1bmN0aW9uIF9XKCl7cmV0dXJuIDB8YVs0NjY1NF19LF92aXpSZW5kZXJGcm9tU3RyaW5nOmZ1bmN0aW9uIFZvKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgbSxBLHcsYixwPTA7Zm9y''@;'; + put 'put ''KGI9YWUsYWU9YWUrMTZ8MCxBPWIsYVsobT1iKzR8MCk+PjJdPTAsRVQodz0wfEpHKCksMTA5NzYpLEVUKHcsMTcyMjApLEVUKHcsMTc0NDApLGZ1bmN0aW9uIG9UKGwpe3ZhciBjO2M9MHxhWzQ2OTM2XSxhWzQ2OTM2XT1sfD0wfSgxKSxmdW5jdGlvbiBpVChsKXt2YXIgYztjPTB8YVs0Njkz''@;'; + put 'put ''NV0sYVs0NjkzNV09bHw9MH0oMTgpO2w9MHx3ZShsKSxwPTB8YVttPj4yXSxsOykwfHB8fChNVCh3LGwsZiksQ3JlKHcsbCxjLG0sQSkpLGw9MTk1MDU5O3JldHVybiBhZT1iLDB8cH0sZHluQ2FsbF9kOmZ1bmN0aW9uIG1mZShsKXtyZXR1cm4raDhbMSYobHw9MCldKCl9LGR5bkNhbGxfZGRk''@;'; + put 'put ''ZDpmdW5jdGlvbiBPYyhsLGMsZixwKXtyZXR1cm4rc3dbNyYobHw9MCldKCsoYz0rYyksKyhmPStmKSwrKHA9K3ApKX0sZHluQ2FsbF9kaTpmdW5jdGlvbiBVJChsLGMpe3JldHVybit0cVsxJihsfD0wKV0oMHwoY3w9MCkpfSxkeW5DYWxsX2k6ZnVuY3Rpb24gYTQobCl7cmV0dXJuIDB8JDFb''@;'; + put 'put ''MyYobHw9MCldKCl9LGR5bkNhbGxfaWk6ZnVuY3Rpb24gbDQobCxjKXtyZXR1cm4gMHxfb1s2MyYobHw9MCldKDB8KGN8PTApKX0sZHluQ2FsbF9paWk6ZnVuY3Rpb24gdmZlKGwsYyxmKXtyZXR1cm4gMHxCaVsxMjcmKGx8PTApXSgwfChjfD0wKSwwfChmfD0wKSl9LGR5bkNhbGxfaWlpZGQ6''@;'; + put 'put ''ZnVuY3Rpb24gQWZlKGwsYyxmLHAsbSl7cmV0dXJuIDB8ZDhbMyYobHw9MCldKDB8KGN8PTApLDB8KGZ8PTApLCsocD0rcCksKyhtPSttKSl9LGR5bkNhbGxfaWlpaTpmdW5jdGlvbiBIaihsLGMsZixwKXtyZXR1cm4gMHxtaVs2MyYobHw9MCldKDB8KGN8PTApLDB8KGZ8PTApLDB8KHB8PTAp''@;'; + put 'put ''KX0sZHluQ2FsbF9paWlpaTpmdW5jdGlvbiBucyhsLGMsZixwLG0pe3JldHVybiAwfHEwWzEyNyYobHw9MCldKDB8KGN8PTApLDB8KGZ8PTApLDB8KHB8PTApLDB8KG18PTApKX0sZHluQ2FsbF9paWlpaWk6ZnVuY3Rpb24gYzkobCxjLGYscCxtLEEpe3JldHVybiAwfE8yWzEyNyYobHw9MCld''@;'; + put 'put ''KDB8KGN8PTApLDB8KGZ8PTApLDB8KHB8PTApLDB8KG18PTApLDB8KEF8PTApKX0sZHluQ2FsbF9paWlpaWlpOmZ1bmN0aW9uIHlmZShsLGMsZixwLG0sQSx3KXtyZXR1cm4gMHxvM1sxJihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksMHwocHw9MCksMHwobXw9MCksMHwoQXw9MCksMHwod3w9''@;'; + put 'put ''MCkpfSxkeW5DYWxsX2lpaWlpaWlpaWlpOmZ1bmN0aW9uIHdmZShsLGMsZixwLG0sQSx3LGIsayxNLEQpe3JldHVybiAwfFpqWzMmKGx8PTApXSgwfChjfD0wKSwwfChmfD0wKSwwfChwfD0wKSwwfChtfD0wKSwwfChBfD0wKSwwfCh3fD0wKSwwfChifD0wKSwwfChrfD0wKSwwfChNfD0wKSww''@;'; + put 'put ''fChEfD0wKSl9LGR5bkNhbGxfdjpmdW5jdGlvbiBRJChsKXtucVsxNSYobHw9MCldKCl9LGR5bkNhbGxfdmk6ZnVuY3Rpb24gclMobCxjKXtDb1sxMjcmKGx8PTApXSgwfChjfD0wKSl9LGR5bkNhbGxfdmlpOmZ1bmN0aW9uIE1MKGwsYyxmKXtHc1s2MyYobHw9MCldKDB8KGN8PTApLDB8KGZ8''@;'; + put 'put ''PTApKX0sZHluQ2FsbF92aWlpOmZ1bmN0aW9uIEokKGwsYyxmLHApe2RsWzEyNyYobHw9MCldKDB8KGN8PTApLDB8KGZ8PTApLDB8KHB8PTApKX0sZHluQ2FsbF92aWlpZGRpOmZ1bmN0aW9uIFgkKGwsYyxmLHAsbSxBLHcpe3V3WzE1JihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksMHwocHw9''@;'; + put 'put ''MCksKyhtPSttKSwrKEE9K0EpLDB8KHd8PTApKX0sZHluQ2FsbF92aWlpaTpmdW5jdGlvbiBLJChsLGMsZixwLG0pe1JjWzMxJihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksMHwocHw9MCksMHwobXw9MCkpfSxkeW5DYWxsX3ZpaWlpaTpmdW5jdGlvbiBvdyhsLGMsZixwLG0sQSl7cDhbMTUm''@;'; + put 'put ''KGx8PTApXSgwfChjfD0wKSwwfChmfD0wKSwwfChwfD0wKSwwfChtfD0wKSwwfChBfD0wKSl9LGR5bkNhbGxfdmlpaWlpaTpmdW5jdGlvbiBhdyhsLGMsZixwLG0sQSx3KXtoOVsxNSYobHw9MCldKDB8KGN8PTApLDB8KGZ8PTApLDB8KHB8PTApLDB8KG18PTApLDB8KEF8PTApLDB8KHd8PTAp''@;'; + put 'put ''KX0sZHluQ2FsbF92aWlpaWlpaWlpOmZ1bmN0aW9uIE5qKGwsYyxmLHAsbSxBLHcsYixrLE0pe29TWzAmKGx8PTApXSgwfChjfD0wKSwwfChmfD0wKSwwfChwfD0wKSwwfChtfD0wKSwwfChBfD0wKSwwfCh3fD0wKSwwfChifD0wKSwwfChrfD0wKSwwfChNfD0wKSl9LGVzdGFibGlzaFN0YWNr''@;'; + put 'put ''U3BhY2U6ZnVuY3Rpb24gJHJlKGwsYyl7YWU9bHw9MCwwfSxnZXRUZW1wUmV0MDpmdW5jdGlvbiBxcmUoKXtyZXR1cm4gMHxEbn0scnVuUG9zdFNldHM6ZnVuY3Rpb24gZGZlKCl7fSxzZXRUZW1wUmV0MDpmdW5jdGlvbiBiVyhsKXtEbj1sfD0wfSxzZXRUaHJldzpmdW5jdGlvbiB3VyhsLGMp''@;'; + put 'put ''e01ufHwoTW49bHw9MCx4bj1jfD0wKX0sc3RhY2tBbGxvYzpmdW5jdGlvbiBLcmUobCl7dmFyIGM7cmV0dXJuIGM9YWUsYWU9MTUrKGFlPWFlKyhsfD0wKXwwKSYtMTYsMHxjfSxzdGFja1Jlc3RvcmU6ZnVuY3Rpb24gbGMobCl7YWU9bHw9MH0sc3RhY2tTYXZlOmZ1bmN0aW9uIHlXKCl7cmV0''@;'; + put 'put ''dXJuIDB8YWV9fX0oWi5hc21HbG9iYWxBcmcsWi5hc21MaWJyYXJ5QXJnLG9uKSwkdz0oWi5fX19lcnJub19sb2NhdGlvbj1Lby5fX19lcnJub19sb2NhdGlvbixaLl9fX211bGRpMz1Lby5fX19tdWxkaTMsWi5fX191ZGl2ZGkzPUtvLl9fX3VkaXZkaTMsWi5fX191cmVtZGkzPUtvLl9fX3Vy''@;'; + put 'put ''ZW1kaTMsWi5fYml0c2hpZnQ2NEFzaHI9S28uX2JpdHNoaWZ0NjRBc2hyLFouX2JpdHNoaWZ0NjRMc2hyPUtvLl9iaXRzaGlmdDY0THNocixaLl9iaXRzaGlmdDY0U2hsPUtvLl9iaXRzaGlmdDY0U2hsLFouX2R0ZXh0cmFjdD1Lby5fZHRleHRyYWN0LFouX2ZyZWU9S28uX2ZyZWUpLHpwPSha''@;'; + put 'put ''Ll9odG9ucz1Lby5faHRvbnMsWi5faTY0QWRkPUtvLl9pNjRBZGQsWi5faTY0U3VidHJhY3Q9S28uX2k2NFN1YnRyYWN0LFouX2xsdm1fYnN3YXBfaTE2PUtvLl9sbHZtX2Jzd2FwX2kxNixaLl9sbHZtX2Jzd2FwX2kzMj1Lby5fbGx2bV9ic3dhcF9pMzIsWi5fbWFsbG9jPUtvLl9tYWxsb2Mp''@;'; + put 'put ''LFdnPVouX21lbWFsaWduPUtvLl9tZW1hbGlnbixZZz0oWi5fbWVtY3B5PUtvLl9tZW1jcHksWi5fbWVtbW92ZT1Lby5fbWVtbW92ZSxaLl9tZW1zZXQ9S28uX21lbXNldCksUWc9KFouX3JlYWxsb2M9S28uX3JlYWxsb2MsWi5fc2F2ZVNldGptcD1Lby5fc2F2ZVNldGptcCxaLl9zYnJrPUtv''@;'; + put 'put ''Ll9zYnJrLFouX3Rlc3RTZXRqbXA9S28uX3Rlc3RTZXRqbXAsWi5fdml6Q3JlYXRlRmlsZT1Lby5fdml6Q3JlYXRlRmlsZSxaLl92aXpMYXN0RXJyb3JNZXNzYWdlPUtvLl92aXpMYXN0RXJyb3JNZXNzYWdlLFouX3ZpelJlbmRlckZyb21TdHJpbmc9S28uX3ZpelJlbmRlckZyb21TdHJpbmcs''@;'; + put 'put ''Wi5lc3RhYmxpc2hTdGFja1NwYWNlPUtvLmVzdGFibGlzaFN0YWNrU3BhY2UsWi5nZXRUZW1wUmV0MD1Lby5nZXRUZW1wUmV0MCxaLnJ1blBvc3RTZXRzPUtvLnJ1blBvc3RTZXRzLFouc2V0VGVtcFJldDA9S28uc2V0VGVtcFJldDAsWi5zZXRUaHJldz1Lby5zZXRUaHJldyxaLnN0YWNrQWxs''@;'; + put 'put ''b2M9S28uc3RhY2tBbGxvYyksV3A9Wi5zdGFja1Jlc3RvcmU9S28uc3RhY2tSZXN0b3JlLFFzPVouc3RhY2tTYXZlPUtvLnN0YWNrU2F2ZTtpZihaLmR5bkNhbGxfZD1Lby5keW5DYWxsX2QsWi5keW5DYWxsX2RkZGQ9S28uZHluQ2FsbF9kZGRkLFouZHluQ2FsbF9kaT1Lby5keW5DYWxsX2Rp''@;'; + put 'put ''LFouZHluQ2FsbF9pPUtvLmR5bkNhbGxfaSxaLmR5bkNhbGxfaWk9S28uZHluQ2FsbF9paSxaLmR5bkNhbGxfaWlpPUtvLmR5bkNhbGxfaWlpLFouZHluQ2FsbF9paWlkZD1Lby5keW5DYWxsX2lpaWRkLFouZHluQ2FsbF9paWlpPUtvLmR5bkNhbGxfaWlpaSxaLmR5bkNhbGxfaWlpaWk9S28u''@;'; + put 'put ''ZHluQ2FsbF9paWlpaSxaLmR5bkNhbGxfaWlpaWlpPUtvLmR5bkNhbGxfaWlpaWlpLFouZHluQ2FsbF9paWlpaWlpPUtvLmR5bkNhbGxfaWlpaWlpaSxaLmR5bkNhbGxfaWlpaWlpaWlpaWk9S28uZHluQ2FsbF9paWlpaWlpaWlpaSxaLmR5bkNhbGxfdj1Lby5keW5DYWxsX3YsWi5keW5DYWxs''@;'; + put 'put ''X3ZpPUtvLmR5bkNhbGxfdmksWi5keW5DYWxsX3ZpaT1Lby5keW5DYWxsX3ZpaSxaLmR5bkNhbGxfdmlpaT1Lby5keW5DYWxsX3ZpaWksWi5keW5DYWxsX3ZpaWlkZGk9S28uZHluQ2FsbF92aWlpZGRpLFouZHluQ2FsbF92aWlpaT1Lby5keW5DYWxsX3ZpaWlpLFouZHluQ2FsbF92aWlpaWk9''@;'; + put 'put ''S28uZHluQ2FsbF92aWlpaWksWi5keW5DYWxsX3ZpaWlpaWk9S28uZHluQ2FsbF92aWlpaWlpLFouZHluQ2FsbF92aWlpaWlpaWlpPUtvLmR5bkNhbGxfdmlpaWlpaWlpaSxaLmFzbT1LbyxaLmNjYWxsPXgsWi5Qb2ludGVyX3N0cmluZ2lmeT1GLFouVVRGOFRvU3RyaW5nPURlLEVvKWlmKGNh''@;'; + put 'put ''KEVvKXx8KCJmdW5jdGlvbiI9PXR5cGVvZiBaLmxvY2F0ZUZpbGU/RW89Wi5sb2NhdGVGaWxlKEVvKTpaLm1lbW9yeUluaXRpYWxpemVyUHJlZml4VVJMJiYoRW89Wi5tZW1vcnlJbml0aWFsaXplclByZWZpeFVSTCtFbykpLE58fGVlKXt2YXIgTjE9Wi5yZWFkQmluYXJ5KEVvKTt0dC5zZXQo''@;'; + put 'put ''TjEsVGUpfWVsc2V7bGV0IHB0PWZ1bmN0aW9uKCl7Wi5yZWFkQXN5bmMoRW8sX2gsZnVuY3Rpb24oKXt0aHJvdyJjb3VsZCBub3QgbG9hZCBtZW1vcnkgaW5pdGlhbGl6ZXIgIitFb30pfTtEaSgpO3ZhciBfaD1mdW5jdGlvbihJdCl7SXQuYnl0ZUxlbmd0aCYmKEl0PW5ldyBVaW50OEFycmF5''@;'; + put 'put ''KEl0KSksdHQuc2V0KEl0LFRlKSxaLm1lbW9yeUluaXRpYWxpemVyUmVxdWVzdCYmZGVsZXRlIFoubWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0LnJlc3BvbnNlLFcwKCl9LG1kPVV1KEVvKTtpZihtZClfaChtZC5idWZmZXIpO2Vsc2UgaWYoWi5tZW1vcnlJbml0aWFsaXplclJlcXVlc3Qpe2xl''@;'; + put 'put ''dCBJdD1mdW5jdGlvbigpe3ZhciBQdD1aLm1lbW9yeUluaXRpYWxpemVyUmVxdWVzdCxmZT1QdC5yZXNwb25zZTtpZigyMDAhPT1QdC5zdGF0dXMmJjAhPT1QdC5zdGF0dXMpe3ZhciBydD1VdShaLm1lbW9yeUluaXRpYWxpemVyUmVxdWVzdFVSTCk7aWYoIXJ0KXJldHVybiBjb25zb2xlLndh''@;'; + put 'put ''cm4oImEgcHJvYmxlbSBzZWVtcyB0byBoYXZlIGhhcHBlbmVkIHdpdGggTW9kdWxlLm1lbW9yeUluaXRpYWxpemVyUmVxdWVzdCwgc3RhdHVzOiAiK1B0LnN0YXR1cysiLCByZXRyeWluZyAiK0VvKSx2b2lkIHB0KCk7ZmU9cnQuYnVmZmVyfV9oKGZlKX07Wi5tZW1vcnlJbml0aWFsaXplclJl''@;'; + put 'put ''cXVlc3QucmVzcG9uc2U/c2V0VGltZW91dChJdCwwKTpaLm1lbW9yeUluaXRpYWxpemVyUmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixJdCl9ZWxzZSBwdCgpfWZ1bmN0aW9uIENhKHB0KXt0aGlzLm5hbWU9IkV4aXRTdGF0dXMiLHRoaXMubWVzc2FnZT0iUHJvZ3JhbSB0ZXJtaW5h''@;'; + put 'put ''dGVkIHdpdGggZXhpdCgiK3B0KyIpIix0aGlzLnN0YXR1cz1wdH1mdW5jdGlvbiBxZyhwdCl7ZnVuY3Rpb24gSXQoKXtaLmNhbGxlZFJ1bnx8KFouY2FsbGVkUnVuPSEwLCFFZSYmKEtuKCksTnQoKSxaLm9uUnVudGltZUluaXRpYWxpemVkJiZaLm9uUnVudGltZUluaXRpYWxpemVkKCksVW4o''@;'; + put 'put ''KSkpfXB0PXB0fHxaLmFyZ3VtZW50cyxuMD4wfHwocG4oKSxuMD4wKXx8Wi5jYWxsZWRSdW58fChaLnNldFN0YXR1cz8oWi5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe1ouc2V0U3RhdHVzKCIiKX0sMSksSXQoKX0s''@;'; + put 'put ''MSkpOkl0KCkpfWZ1bmN0aW9uIG5iKHB0LEl0KXtJdCYmWi5ub0V4aXRSdW50aW1lJiYwPT09cHR8fChaLm5vRXhpdFJ1bnRpbWV8fChFZT0hMCxnbj0kZyxzbigpLFoub25FeGl0JiZaLm9uRXhpdChwdCkpLE4mJnByb2Nlc3MuZXhpdChwdCksWi5xdWl0KHB0LG5ldyBDYShwdCkpKX1mdW5j''@;'; + put 'put ''dGlvbiBmMihwdCl7dGhyb3cgWi5vbkFib3J0JiZaLm9uQWJvcnQocHQpLHZvaWQgMCE9PXB0PyhaLnByaW50KHB0KSxaLnByaW50RXJyKHB0KSxwdD1KU09OLnN0cmluZ2lmeShwdCkpOnB0PSIiLEVlPSEwLCJhYm9ydCgiK3B0KyIpLiBCdWlsZCB3aXRoIC1zIEFTU0VSVElPTlM9MSBmb3Ig''@;'; + put 'put ''bW9yZSBpbmZvLiJ9aWYoKENhLnByb3RvdHlwZT1uZXcgRXJyb3IpLmNvbnN0cnVjdG9yPUNhLG0wPWZ1bmN0aW9uIHB0KCl7Wi5jYWxsZWRSdW58fHFnKCksWi5jYWxsZWRSdW58fChtMD1wdCl9LFoucnVuPXFnLFouZXhpdD1uYixaLmFib3J0PWYyLFoucHJlSW5pdClmb3IoImZ1bmN0aW9u''@;'; + put 'put ''Ij09dHlwZW9mIFoucHJlSW5pdCYmKFoucHJlSW5pdD1bWi5wcmVJbml0XSk7Wi5wcmVJbml0Lmxlbmd0aD4wOylaLnByZUluaXQucG9wKCkoKTtyZXR1cm4gWi5ub0V4aXRSdW50aW1lPSEwLHFnKCksWn07ZnVuY3Rpb24gRShRKXt2YXIgcSxaPWFyZ3VtZW50cy5sZW5ndGg8PTF8fHZvaWQg''@;'; + put 'put ''MD09PWFyZ3VtZW50c1sxXT97fTphcmd1bWVudHNbMV0saWU9dm9pZCAwPT09Wi5mb3JtYXQ/InN2ZyI6Wi5mb3JtYXQsbGU9dm9pZCAwPT09Wi5lbmdpbmU/ImRvdCI6Wi5lbmdpbmUsWT1aLnNjYWxlLFc9Wi50b3RhbE1lbW9yeSxOPXZvaWQgMD09PVouZmlsZXM/W106Wi5maWxlcyxlZT12''@;'; + put 'put ''b2lkIDA9PT1aLmltYWdlcz9bXTpaLmltYWdlcztmb3IocT0wO3E8ZWUubGVuZ3RoO3ErKylOLnB1c2goe3BhdGg6ZWVbcV0ucGF0aCxkYXRhOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz5cbjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9X''@;'; + put 'put ''M0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+XG48c3ZnIHdpZHRoPSInK2VlW3FdLndpZHRoKyciIGhlaWdodD0iJytlZVtxXS5oZWlnaHQrJyI+PC9zdmc+J30pO3JldHVybiJwbmctaW1hZ2UtZWxlbWVudCI9''@;'; + put 'put ''PWllP0Uuc3ZnWG1sVG9QbmdJbWFnZUVsZW1lbnQoTWUoUSwic3ZnIixsZSxXLE4pLFkpOk1lKFEsaWUsbGUsVyxOKX1mdW5jdGlvbiBNZShRLFosaWUsbGUsWSl7dmFyIE4sVz1CKHtUT1RBTF9NRU1PUlk6bGV9KTtmb3IoTj0wO048WS5sZW5ndGg7TisrKVcuY2NhbGwoInZpekNyZWF0ZUZp''@;'; + put 'put ''bGUiLCJudW1iZXIiLFsic3RyaW5nIiwic3RyaW5nIl0sW1lbTl0ucGF0aCxZW05dLmRhdGFdKTt2YXIgZWU9Vy5jY2FsbCgidml6UmVuZGVyRnJvbVN0cmluZyIsIm51bWJlciIsWyJzdHJpbmciLCJzdHJpbmciLCJzdHJpbmciXSxbUSxaLGllXSkscT1XLlBvaW50ZXJfc3RyaW5naWZ5KGVl''@;'; + put 'put ''KSxKPVcuY2NhbGwoInZpekxhc3RFcnJvck1lc3NhZ2UiLCJudW1iZXIiLFtdLFtdKSxzZT1XLlBvaW50ZXJfc3RyaW5naWZ5KEopO2lmKCIiIT1zZSl0aHJvdyBuZXcgRXJyb3Ioc2UpO3JldHVybiBxfUUuc3ZnWG1sVG9QbmdJbWFnZUVsZW1lbnQ9ZnVuY3Rpb24oUSxaLGllKXt2b2lkIDA9''@;'; + put 'put ''PT1aJiYoWj0iZGV2aWNlUGl4ZWxSYXRpbyJpbiB3aW5kb3cmJndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvPjE/d2luZG93LmRldmljZVBpeGVsUmF0aW86MSk7dmFyIGxlPW5ldyBJbWFnZTt0cnl7aWYoIm9iamVjdCI9PXR5cGVvZiBmYWJyaWMmJmZhYnJpYy5sb2FkU1ZHRnJvbVN0cmluZylm''@;'; + put 'put ''YWJyaWMubG9hZFNWR0Zyb21TdHJpbmcoUSxmdW5jdGlvbihXLE4pe2lmKDA9PVcubGVuZ3RoKXtpZih2b2lkIDAhPT1pZSlyZXR1cm4gdm9pZCBpZShuZXcgRXJyb3IoIkVycm9yIGxvYWRpbmcgU1ZHIHdpdGggRmFicmljIikpO3Rocm93IG5ldyBFcnJvcigiRXJyb3IgbG9hZGluZyBTVkcg''@;'; + put 'put ''d2l0aCBGYWJyaWMiKX12YXIgZWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7ZWUud2lkdGg9Ti53aWR0aCxlZS5oZWlnaHQ9Ti5oZWlnaHQ7dmFyIHE9bmV3IGZhYnJpYy5DYW52YXMoZWUse2VuYWJsZVJldGluYVNjYWxpbmc6ITF9KSxKPWZhYnJpYy51dGlsLmdyb3VwU1ZH''@;'; + put 'put ''RWxlbWVudHMoVyxOKTtxLmFkZChKKS5yZW5kZXJBbGwoKSxsZS5zcmM9cS50b0RhdGFVUkwoe211bHRpcGxpZXI6Wn0pLGxlLndpZHRoPU4ud2lkdGgsbGUuaGVpZ2h0PU4uaGVpZ2h0LHZvaWQgMCE9PWllJiZpZShudWxsLGxlKX0pO2Vsc2V7dmFyIFk9bmV3IEltYWdlO1kub25sb2FkPWZ1''@;'; + put 'put ''bmN0aW9uKCl7dmFyIFc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Vy53aWR0aD1ZLndpZHRoKlosVy5oZWlnaHQ9WS5oZWlnaHQqWixXLmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKFksMCwwLFcud2lkdGgsVy5oZWlnaHQpLGxlLnNyYz1XLnRvRGF0YVVSTCgiaW1hZ2Uv''@;'; + put 'put ''cG5nIiksbGUud2lkdGg9WS53aWR0aCxsZS5oZWlnaHQ9WS5oZWlnaHQsdm9pZCAwIT09aWUmJmllKG51bGwsbGUpfSxZLm9uZXJyb3I9ZnVuY3Rpb24oVyl7dmFyIE47aWYoTj0iZXJyb3IiaW4gVz9XLmVycm9yOm5ldyBFcnJvcigiRXJyb3IgbG9hZGluZyBTVkciKSx2b2lkIDA9PT1pZSl0''@;'; + put 'put ''aHJvdyBOO2llKE4pfSxZLnNyYz0iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCwiK2Z1bmN0aW9uIFUoUSl7cmV0dXJuIGJ0b2EoZW5jb2RlVVJJQ29tcG9uZW50KFEpLnJlcGxhY2UoLyUoWzAtOUEtRl17Mn0pL2csZnVuY3Rpb24oWixpZSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUo''@;'; + put 'put ''IjB4IitpZSl9KSl9KFEpfX1jYXRjaChXKXtpZih2b2lkIDA9PT1pZSl0aHJvdyBXO2llKFcpfWlmKHZvaWQgMD09PWllKXJldHVybiBsZX0sRS5zdmdYbWxUb1BuZ0Jhc2U2ND1mdW5jdGlvbihRLFosaWUpe0Uuc3ZnWG1sVG9QbmdJbWFnZUVsZW1lbnQoUSxaLGZ1bmN0aW9uKGxlLFkpe2xl''@;'; + put 'put ''P2llKGxlKTppZShudWxsLFkuc3JjLnNsaWNlKDIyKSl9KX0sWGUuZXhwb3J0cz1FfSgpfSw4ODU4MzooKT0+eyJ1c2Ugc3RyaWN0IjshZnVuY3Rpb24oQ3Qpe2NvbnN0IGZ0PUN0LnBlcmZvcm1hbmNlO2Z1bmN0aW9uIEh0KG1uKXtmdCYmZnQubWFyayYmZnQubWFyayhtbil9ZnVuY3Rpb24g''@;'; + put 'put ''R2UobW4sdW4pe2Z0JiZmdC5tZWFzdXJlJiZmdC5tZWFzdXJlKG1uLHVuKX1IdCgiWm9uZSIpO2NvbnN0IFVlPUN0Ll9fWm9uZV9zeW1ib2xfcHJlZml4fHwiX196b25lX3N5bWJvbF9fIjtmdW5jdGlvbiB5dChtbil7cmV0dXJuIFVlK21ufWNvbnN0IGp0PSEwPT09Q3RbeXQoImZvcmNlRHVw''@;'; + put 'put ''bGljYXRlWm9uZUNoZWNrIildO2lmKEN0LlpvbmUpe2lmKGp0fHwiZnVuY3Rpb24iIT10eXBlb2YgQ3QuWm9uZS5fX3N5bWJvbF9fKXRocm93IG5ldyBFcnJvcigiWm9uZSBhbHJlYWR5IGxvYWRlZC4iKTtyZXR1cm4gQ3QuWm9uZX1sZXQgUXQ9KCgpPT57Y2xhc3MgbW57Y29uc3RydWN0b3Io''@;'; + put 'put ''Y24sX24pe3RoaXMuX3BhcmVudD1jbix0aGlzLl9uYW1lPV9uP19uLm5hbWV8fCJ1bm5hbWVkIjoiPHJvb3Q+Iix0aGlzLl9wcm9wZXJ0aWVzPV9uJiZfbi5wcm9wZXJ0aWVzfHx7fSx0aGlzLl96b25lRGVsZWdhdGU9bmV3IGRuKHRoaXMsdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3pv''@;'; + put 'put ''bmVEZWxlZ2F0ZSxfbil9c3RhdGljIGFzc2VydFpvbmVQYXRjaGVkKCl7aWYoQ3QuUHJvbWlzZSE9PXduLlpvbmVBd2FyZVByb21pc2UpdGhyb3cgbmV3IEVycm9yKCJab25lLmpzIGhhcyBkZXRlY3RlZCB0aGF0IFpvbmVBd2FyZVByb21pc2UgYCh3aW5kb3d8Z2xvYmFsKS5Qcm9taXNlYCBo''@;'; + put 'put ''YXMgYmVlbiBvdmVyd3JpdHRlbi5cbk1vc3QgbGlrZWx5IGNhdXNlIGlzIHRoYXQgYSBQcm9taXNlIHBvbHlmaWxsIGhhcyBiZWVuIGxvYWRlZCBhZnRlciBab25lLmpzIChQb2x5ZmlsbGluZyBQcm9taXNlIGFwaSBpcyBub3QgbmVjZXNzYXJ5IHdoZW4gem9uZS5qcyBpcyBsb2FkZWQuIElm''@;'; + put 'put ''IHlvdSBtdXN0IGxvYWQgb25lLCBkbyBzbyBiZWZvcmUgbG9hZGluZyB6b25lLmpzLikiKX1zdGF0aWMgZ2V0IHJvb3QoKXtsZXQgY249bW4uY3VycmVudDtmb3IoO2NuLnBhcmVudDspY249Y24ucGFyZW50O3JldHVybiBjbn1zdGF0aWMgZ2V0IGN1cnJlbnQoKXtyZXR1cm4gem4uem9uZX1z''@;'; + put 'put ''dGF0aWMgZ2V0IGN1cnJlbnRUYXNrKCl7cmV0dXJuIFRyfXN0YXRpYyBfX2xvYWRfcGF0Y2goY24sX24sR3Q9ITEpe2lmKHduLmhhc093blByb3BlcnR5KGNuKSl7aWYoIUd0JiZqdCl0aHJvdyBFcnJvcigiQWxyZWFkeSBsb2FkZWQgcGF0Y2g6ICIrY24pfWVsc2UgaWYoIUN0WyJfX1pvbmVf''@;'; + put 'put ''ZGlzYWJsZV8iK2NuXSl7Y29uc3Qga249IlpvbmU6IitjbjtIdChrbiksd25bY25dPV9uKEN0LG1uLHRuKSxHZShrbixrbil9fWdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5fcGFyZW50fWdldCBuYW1lKCl7cmV0dXJuIHRoaXMuX25hbWV9Z2V0KGNuKXtjb25zdCBfbj10aGlzLmdldFpvbmVX''@;'; + put 'put ''aXRoKGNuKTtpZihfbilyZXR1cm4gX24uX3Byb3BlcnRpZXNbY25dfWdldFpvbmVXaXRoKGNuKXtsZXQgX249dGhpcztmb3IoO19uOyl7aWYoX24uX3Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoY24pKXJldHVybiBfbjtfbj1fbi5fcGFyZW50fXJldHVybiBudWxsfWZvcmsoY24pe2lmKCFj''@;'; + put 'put ''bil0aHJvdyBuZXcgRXJyb3IoIlpvbmVTcGVjIHJlcXVpcmVkISIpO3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuZm9yayh0aGlzLGNuKX13cmFwKGNuLF9uKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgY24pdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RpbmcgZnVuY3Rpb24gZ290OiAiK2NuKTtj''@;'; + put 'put ''b25zdCBHdD10aGlzLl96b25lRGVsZWdhdGUuaW50ZXJjZXB0KHRoaXMsY24sX24pLGtuPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGtuLnJ1bkd1YXJkZWQoR3QsdGhpcyxhcmd1bWVudHMsX24pfX1ydW4oY24sX24sR3Qsa24pe3puPXtwYXJlbnQ6em4sem9uZTp0aGlzfTt0cnl7''@;'; + put 'put ''cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2UodGhpcyxjbixfbixHdCxrbil9ZmluYWxseXt6bj16bi5wYXJlbnR9fXJ1bkd1YXJkZWQoY24sX249bnVsbCxHdCxrbil7em49e3BhcmVudDp6bix6b25lOnRoaXN9O3RyeXt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZv''@;'; + put 'put ''a2UodGhpcyxjbixfbixHdCxrbil9Y2F0Y2goVm4pe2lmKHRoaXMuX3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLFZuKSl0aHJvdyBWbn19ZmluYWxseXt6bj16bi5wYXJlbnR9fXJ1blRhc2soY24sX24sR3Qpe2lmKGNuLnpvbmUhPXRoaXMpdGhyb3cgbmV3IEVycm9yKCJBIHRhc2sg''@;'; + put 'put ''Y2FuIG9ubHkgYmUgcnVuIGluIHRoZSB6b25lIG9mIGNyZWF0aW9uISAoQ3JlYXRpb246ICIrKGNuLnpvbmV8fHByKS5uYW1lKyI7IEV4ZWN1dGlvbjogIit0aGlzLm5hbWUrIikiKTtpZihjbi5zdGF0ZT09PW5yJiYoY24udHlwZT09PVVufHxjbi50eXBlPT09c24pKXJldHVybjtjb25zdCBr''@;'; + put 'put ''bj1jbi5zdGF0ZSE9V3Q7a24mJmNuLl90cmFuc2l0aW9uVG8oV3QscW4pLGNuLnJ1bkNvdW50Kys7Y29uc3QgVm49VHI7VHI9Y24sem49e3BhcmVudDp6bix6b25lOnRoaXN9O3RyeXtjbi50eXBlPT1zbiYmY24uZGF0YSYmIWNuLmRhdGEuaXNQZXJpb2RpYyYmKGNuLmNhbmNlbEZuPXZvaWQg''@;'; + put 'put ''MCk7dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlVGFzayh0aGlzLGNuLF9uLEd0KX1jYXRjaChlbil7aWYodGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsZW4pKXRocm93IGVufX1maW5hbGx5e2NuLnN0YXRlIT09bnImJmNuLnN0YXRlIT09S24mJihjbi50''@;'; + put 'put ''eXBlPT1Vbnx8Y24uZGF0YSYmY24uZGF0YS5pc1BlcmlvZGljP2tuJiZjbi5fdHJhbnNpdGlvblRvKHFuLFd0KTooY24ucnVuQ291bnQ9MCx0aGlzLl91cGRhdGVUYXNrQ291bnQoY24sLTEpLGtuJiZjbi5fdHJhbnNpdGlvblRvKG5yLFd0LG5yKSkpLHpuPXpuLnBhcmVudCxUcj1Wbn19c2No''@;'; + put 'put ''ZWR1bGVUYXNrKGNuKXtpZihjbi56b25lJiZjbi56b25lIT09dGhpcyl7bGV0IEd0PXRoaXM7Zm9yKDtHdDspe2lmKEd0PT09Y24uem9uZSl0aHJvdyBFcnJvcihgY2FuIG5vdCByZXNjaGVkdWxlIHRhc2sgdG8gJHt0aGlzLm5hbWV9IHdoaWNoIGlzIGRlc2NlbmRhbnRzIG9mIHRoZSBvcmln''@;'; + put 'put ''aW5hbCB6b25lICR7Y24uem9uZS5uYW1lfWApO0d0PUd0LnBhcmVudH19Y24uX3RyYW5zaXRpb25UbyhBbixucik7Y29uc3QgX249W107Y24uX3pvbmVEZWxlZ2F0ZXM9X24sY24uX3pvbmU9dGhpczt0cnl7Y249dGhpcy5fem9uZURlbGVnYXRlLnNjaGVkdWxlVGFzayh0aGlzLGNuKX1jYXRj''@;'; + put 'put ''aChHdCl7dGhyb3cgY24uX3RyYW5zaXRpb25UbyhLbixBbixuciksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsR3QpLEd0fXJldHVybiBjbi5fem9uZURlbGVnYXRlcz09PV9uJiZ0aGlzLl91cGRhdGVUYXNrQ291bnQoY24sMSksY24uc3RhdGU9PUFuJiZjbi5fdHJhbnNp''@;'; + put 'put ''dGlvblRvKHFuLEFuKSxjbn1zY2hlZHVsZU1pY3JvVGFzayhjbixfbixHdCxrbil7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyB5bihOdCxjbixfbixHdCxrbix2b2lkIDApKX1zY2hlZHVsZU1hY3JvVGFzayhjbixfbixHdCxrbixWbil7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5l''@;'; + put 'put ''dyB5bihzbixjbixfbixHdCxrbixWbikpfXNjaGVkdWxlRXZlbnRUYXNrKGNuLF9uLEd0LGtuLFZuKXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IHluKFVuLGNuLF9uLEd0LGtuLFZuKSl9Y2FuY2VsVGFzayhjbil7aWYoY24uem9uZSE9dGhpcyl0aHJvdyBuZXcgRXJyb3IoIkEgdGFz''@;'; + put 'put ''ayBjYW4gb25seSBiZSBjYW5jZWxsZWQgaW4gdGhlIHpvbmUgb2YgY3JlYXRpb24hIChDcmVhdGlvbjogIisoY24uem9uZXx8cHIpLm5hbWUrIjsgRXhlY3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO2NuLl90cmFuc2l0aW9uVG8ocG4scW4sV3QpO3RyeXt0aGlzLl96b25lRGVsZWdhdGUuY2Fu''@;'; + put 'put ''Y2VsVGFzayh0aGlzLGNuKX1jYXRjaChfbil7dGhyb3cgY24uX3RyYW5zaXRpb25UbyhLbixwbiksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsX24pLF9ufXJldHVybiB0aGlzLl91cGRhdGVUYXNrQ291bnQoY24sLTEpLGNuLl90cmFuc2l0aW9uVG8obnIscG4pLGNuLnJ1''@;'; + put 'put ''bkNvdW50PTAsY259X3VwZGF0ZVRhc2tDb3VudChjbixfbil7Y29uc3QgR3Q9Y24uX3pvbmVEZWxlZ2F0ZXM7LTE9PV9uJiYoY24uX3pvbmVEZWxlZ2F0ZXM9bnVsbCk7Zm9yKGxldCBrbj0wO2tuPEd0Lmxlbmd0aDtrbisrKUd0W2tuXS5fdXBkYXRlVGFza0NvdW50KGNuLnR5cGUsX24pfX1y''@;'; + put 'put ''ZXR1cm4gbW4uX19zeW1ib2xfXz15dCxtbn0pKCk7Y29uc3QgZ249e25hbWU6IiIsb25IYXNUYXNrOihtbix1bixjbixfbik9Pm1uLmhhc1Rhc2soY24sX24pLG9uU2NoZWR1bGVUYXNrOihtbix1bixjbixfbik9Pm1uLnNjaGVkdWxlVGFzayhjbixfbiksb25JbnZva2VUYXNrOihtbix1bixj''@;'; + put 'put ''bixfbixHdCxrbik9Pm1uLmludm9rZVRhc2soY24sX24sR3Qsa24pLG9uQ2FuY2VsVGFzazoobW4sdW4sY24sX24pPT5tbi5jYW5jZWxUYXNrKGNuLF9uKX07Y2xhc3MgZG57Y29uc3RydWN0b3IodW4sY24sX24pe3RoaXMuX3Rhc2tDb3VudHM9e21pY3JvVGFzazowLG1hY3JvVGFzazowLGV2''@;'; + put 'put ''ZW50VGFzazowfSx0aGlzLnpvbmU9dW4sdGhpcy5fcGFyZW50RGVsZWdhdGU9Y24sdGhpcy5fZm9ya1pTPV9uJiYoX24mJl9uLm9uRm9yaz9fbjpjbi5fZm9ya1pTKSx0aGlzLl9mb3JrRGxndD1fbiYmKF9uLm9uRm9yaz9jbjpjbi5fZm9ya0RsZ3QpLHRoaXMuX2ZvcmtDdXJyWm9uZT1fbiYm''@;'; + put 'put ''KF9uLm9uRm9yaz90aGlzLnpvbmU6Y24uX2ZvcmtDdXJyWm9uZSksdGhpcy5faW50ZXJjZXB0WlM9X24mJihfbi5vbkludGVyY2VwdD9fbjpjbi5faW50ZXJjZXB0WlMpLHRoaXMuX2ludGVyY2VwdERsZ3Q9X24mJihfbi5vbkludGVyY2VwdD9jbjpjbi5faW50ZXJjZXB0RGxndCksdGhpcy5f''@;'; + put 'put ''aW50ZXJjZXB0Q3VyclpvbmU9X24mJihfbi5vbkludGVyY2VwdD90aGlzLnpvbmU6Y24uX2ludGVyY2VwdEN1cnJab25lKSx0aGlzLl9pbnZva2VaUz1fbiYmKF9uLm9uSW52b2tlP19uOmNuLl9pbnZva2VaUyksdGhpcy5faW52b2tlRGxndD1fbiYmKF9uLm9uSW52b2tlP2NuOmNuLl9pbnZv''@;'; + put 'put ''a2VEbGd0KSx0aGlzLl9pbnZva2VDdXJyWm9uZT1fbiYmKF9uLm9uSW52b2tlP3RoaXMuem9uZTpjbi5faW52b2tlQ3VyclpvbmUpLHRoaXMuX2hhbmRsZUVycm9yWlM9X24mJihfbi5vbkhhbmRsZUVycm9yP19uOmNuLl9oYW5kbGVFcnJvclpTKSx0aGlzLl9oYW5kbGVFcnJvckRsZ3Q9X24m''@;'; + put 'put ''Jihfbi5vbkhhbmRsZUVycm9yP2NuOmNuLl9oYW5kbGVFcnJvckRsZ3QpLHRoaXMuX2hhbmRsZUVycm9yQ3VyclpvbmU9X24mJihfbi5vbkhhbmRsZUVycm9yP3RoaXMuem9uZTpjbi5faGFuZGxlRXJyb3JDdXJyWm9uZSksdGhpcy5fc2NoZWR1bGVUYXNrWlM9X24mJihfbi5vblNjaGVkdWxl''@;'; + put 'put ''VGFzaz9fbjpjbi5fc2NoZWR1bGVUYXNrWlMpLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9X24mJihfbi5vblNjaGVkdWxlVGFzaz9jbjpjbi5fc2NoZWR1bGVUYXNrRGxndCksdGhpcy5fc2NoZWR1bGVUYXNrQ3VyclpvbmU9X24mJihfbi5vblNjaGVkdWxlVGFzaz90aGlzLnpvbmU6Y24uX3Nj''@;'; + put 'put ''aGVkdWxlVGFza0N1cnJab25lKSx0aGlzLl9pbnZva2VUYXNrWlM9X24mJihfbi5vbkludm9rZVRhc2s/X246Y24uX2ludm9rZVRhc2taUyksdGhpcy5faW52b2tlVGFza0RsZ3Q9X24mJihfbi5vbkludm9rZVRhc2s/Y246Y24uX2ludm9rZVRhc2tEbGd0KSx0aGlzLl9pbnZva2VUYXNrQ3Vy''@;'; + put 'put ''clpvbmU9X24mJihfbi5vbkludm9rZVRhc2s/dGhpcy56b25lOmNuLl9pbnZva2VUYXNrQ3VyclpvbmUpLHRoaXMuX2NhbmNlbFRhc2taUz1fbiYmKF9uLm9uQ2FuY2VsVGFzaz9fbjpjbi5fY2FuY2VsVGFza1pTKSx0aGlzLl9jYW5jZWxUYXNrRGxndD1fbiYmKF9uLm9uQ2FuY2VsVGFzaz9j''@;'; + put 'put ''bjpjbi5fY2FuY2VsVGFza0RsZ3QpLHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZT1fbiYmKF9uLm9uQ2FuY2VsVGFzaz90aGlzLnpvbmU6Y24uX2NhbmNlbFRhc2tDdXJyWm9uZSksdGhpcy5faGFzVGFza1pTPW51bGwsdGhpcy5faGFzVGFza0RsZ3Q9bnVsbCx0aGlzLl9oYXNUYXNrRGxndE93''@;'; + put 'put ''bmVyPW51bGwsdGhpcy5faGFzVGFza0N1cnJab25lPW51bGw7Y29uc3QgR3Q9X24mJl9uLm9uSGFzVGFzazsoR3R8fGNuJiZjbi5faGFzVGFza1pTKSYmKHRoaXMuX2hhc1Rhc2taUz1HdD9fbjpnbix0aGlzLl9oYXNUYXNrRGxndD1jbix0aGlzLl9oYXNUYXNrRGxndE93bmVyPXRoaXMsdGhp''@;'; + put 'put ''cy5faGFzVGFza0N1cnJab25lPXVuLF9uLm9uU2NoZWR1bGVUYXNrfHwodGhpcy5fc2NoZWR1bGVUYXNrWlM9Z24sdGhpcy5fc2NoZWR1bGVUYXNrRGxndD1jbix0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT10aGlzLnpvbmUpLF9uLm9uSW52b2tlVGFza3x8KHRoaXMuX2ludm9rZVRhc2ta''@;'; + put 'put ''Uz1nbix0aGlzLl9pbnZva2VUYXNrRGxndD1jbix0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmU9dGhpcy56b25lKSxfbi5vbkNhbmNlbFRhc2t8fCh0aGlzLl9jYW5jZWxUYXNrWlM9Z24sdGhpcy5fY2FuY2VsVGFza0RsZ3Q9Y24sdGhpcy5fY2FuY2VsVGFza0N1cnJab25lPXRoaXMuem9uZSkp''@;'; + put 'put ''fWZvcmsodW4sY24pe3JldHVybiB0aGlzLl9mb3JrWlM/dGhpcy5fZm9ya1pTLm9uRm9yayh0aGlzLl9mb3JrRGxndCx0aGlzLnpvbmUsdW4sY24pOm5ldyBRdCh1bixjbil9aW50ZXJjZXB0KHVuLGNuLF9uKXtyZXR1cm4gdGhpcy5faW50ZXJjZXB0WlM/dGhpcy5faW50ZXJjZXB0WlMub25J''@;'; + put 'put ''bnRlcmNlcHQodGhpcy5faW50ZXJjZXB0RGxndCx0aGlzLl9pbnRlcmNlcHRDdXJyWm9uZSx1bixjbixfbik6Y259aW52b2tlKHVuLGNuLF9uLEd0LGtuKXtyZXR1cm4gdGhpcy5faW52b2tlWlM/dGhpcy5faW52b2tlWlMub25JbnZva2UodGhpcy5faW52b2tlRGxndCx0aGlzLl9pbnZva2VD''@;'; + put 'put ''dXJyWm9uZSx1bixjbixfbixHdCxrbik6Y24uYXBwbHkoX24sR3QpfWhhbmRsZUVycm9yKHVuLGNuKXtyZXR1cm4hdGhpcy5faGFuZGxlRXJyb3JaU3x8dGhpcy5faGFuZGxlRXJyb3JaUy5vbkhhbmRsZUVycm9yKHRoaXMuX2hhbmRsZUVycm9yRGxndCx0aGlzLl9oYW5kbGVFcnJvckN1cnJa''@;'; + put 'put ''b25lLHVuLGNuKX1zY2hlZHVsZVRhc2sodW4sY24pe2xldCBfbj1jbjtpZih0aGlzLl9zY2hlZHVsZVRhc2taUyl0aGlzLl9oYXNUYXNrWlMmJl9uLl96b25lRGVsZWdhdGVzLnB1c2godGhpcy5faGFzVGFza0RsZ3RPd25lciksX249dGhpcy5fc2NoZWR1bGVUYXNrWlMub25TY2hlZHVsZVRh''@;'; + put 'put ''c2sodGhpcy5fc2NoZWR1bGVUYXNrRGxndCx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZSx1bixjbiksX258fChfbj1jbik7ZWxzZSBpZihjbi5zY2hlZHVsZUZuKWNuLnNjaGVkdWxlRm4oY24pO2Vsc2V7aWYoY24udHlwZSE9TnQpdGhyb3cgbmV3IEVycm9yKCJUYXNrIGlzIG1pc3Npbmcg''@;'; + put 'put ''c2NoZWR1bGVGbi4iKTt4cihjbil9cmV0dXJuIF9ufWludm9rZVRhc2sodW4sY24sX24sR3Qpe3JldHVybiB0aGlzLl9pbnZva2VUYXNrWlM/dGhpcy5faW52b2tlVGFza1pTLm9uSW52b2tlVGFzayh0aGlzLl9pbnZva2VUYXNrRGxndCx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmUsdW4sY24s''@;'; + put 'put ''X24sR3QpOmNuLmNhbGxiYWNrLmFwcGx5KF9uLEd0KX1jYW5jZWxUYXNrKHVuLGNuKXtsZXQgX247aWYodGhpcy5fY2FuY2VsVGFza1pTKV9uPXRoaXMuX2NhbmNlbFRhc2taUy5vbkNhbmNlbFRhc2sodGhpcy5fY2FuY2VsVGFza0RsZ3QsdGhpcy5fY2FuY2VsVGFza0N1cnJab25lLHVuLGNu''@;'; + put 'put ''KTtlbHNle2lmKCFjbi5jYW5jZWxGbil0aHJvdyBFcnJvcigiVGFzayBpcyBub3QgY2FuY2VsYWJsZSIpO19uPWNuLmNhbmNlbEZuKGNuKX1yZXR1cm4gX259aGFzVGFzayh1bixjbil7dHJ5e3RoaXMuX2hhc1Rhc2taUyYmdGhpcy5faGFzVGFza1pTLm9uSGFzVGFzayh0aGlzLl9oYXNUYXNr''@;'; + put 'put ''RGxndCx0aGlzLl9oYXNUYXNrQ3VyclpvbmUsdW4sY24pfWNhdGNoKF9uKXt0aGlzLmhhbmRsZUVycm9yKHVuLF9uKX19X3VwZGF0ZVRhc2tDb3VudCh1bixjbil7Y29uc3QgX249dGhpcy5fdGFza0NvdW50cyxHdD1fblt1bl0sa249X25bdW5dPUd0K2NuO2lmKGtuPDApdGhyb3cgbmV3IEVy''@;'; + put 'put ''cm9yKCJNb3JlIHRhc2tzIGV4ZWN1dGVkIHRoZW4gd2VyZSBzY2hlZHVsZWQuIik7MCE9R3QmJjAhPWtufHx0aGlzLmhhc1Rhc2sodGhpcy56b25lLHttaWNyb1Rhc2s6X24ubWljcm9UYXNrPjAsbWFjcm9UYXNrOl9uLm1hY3JvVGFzaz4wLGV2ZW50VGFzazpfbi5ldmVudFRhc2s+MCxjaGFu''@;'; + put 'put ''Z2U6dW59KX19Y2xhc3MgeW57Y29uc3RydWN0b3IodW4sY24sX24sR3Qsa24sVm4pe2lmKHRoaXMuX3pvbmU9bnVsbCx0aGlzLnJ1bkNvdW50PTAsdGhpcy5fem9uZURlbGVnYXRlcz1udWxsLHRoaXMuX3N0YXRlPSJub3RTY2hlZHVsZWQiLHRoaXMudHlwZT11bix0aGlzLnNvdXJjZT1jbix0''@;'; + put 'put ''aGlzLmRhdGE9R3QsdGhpcy5zY2hlZHVsZUZuPWtuLHRoaXMuY2FuY2VsRm49Vm4sIV9uKXRocm93IG5ldyBFcnJvcigiY2FsbGJhY2sgaXMgbm90IGRlZmluZWQiKTt0aGlzLmNhbGxiYWNrPV9uO2NvbnN0IGVuPXRoaXM7dGhpcy5pbnZva2U9dW49PT1VbiYmR3QmJkd0LnVzZUc/eW4uaW52''@;'; + put 'put ''b2tlVGFzazpmdW5jdGlvbigpe3JldHVybiB5bi5pbnZva2VUYXNrLmNhbGwoQ3QsZW4sdGhpcyxhcmd1bWVudHMpfX1zdGF0aWMgaW52b2tlVGFzayh1bixjbixfbil7dW58fCh1bj10aGlzKSxCbisrO3RyeXtyZXR1cm4gdW4ucnVuQ291bnQrKyx1bi56b25lLnJ1blRhc2sodW4sY24sX24p''@;'; + put 'put ''fWZpbmFsbHl7MT09Qm4mJnF0KCksQm4tLX19Z2V0IHpvbmUoKXtyZXR1cm4gdGhpcy5fem9uZX1nZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy5fc3RhdGV9Y2FuY2VsU2NoZWR1bGVSZXF1ZXN0KCl7dGhpcy5fdHJhbnNpdGlvblRvKG5yLEFuKX1fdHJhbnNpdGlvblRvKHVuLGNuLF9uKXtpZih0''@;'; + put 'put ''aGlzLl9zdGF0ZSE9PWNuJiZ0aGlzLl9zdGF0ZSE9PV9uKXRocm93IG5ldyBFcnJvcihgJHt0aGlzLnR5cGV9ICcke3RoaXMuc291cmNlfSc6IGNhbiBub3QgdHJhbnNpdGlvbiB0byAnJHt1bn0nLCBleHBlY3Rpbmcgc3RhdGUgJyR7Y259JyR7X24/IiBvciAnIitfbisiJyI6IiJ9LCB3YXMg''@;'; + put 'put ''JyR7dGhpcy5fc3RhdGV9Jy5gKTt0aGlzLl9zdGF0ZT11bix1bj09bnImJih0aGlzLl96b25lRGVsZWdhdGVzPW51bGwpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuZGF0YSYmdm9pZCAwIT09dGhpcy5kYXRhLmhhbmRsZUlkP3RoaXMuZGF0YS5oYW5kbGVJZC50b1N0cmluZygpOk9iamVjdC5w''@;'; + put 'put ''cm90b3R5cGUudG9TdHJpbmcuY2FsbCh0aGlzKX10b0pTT04oKXtyZXR1cm57dHlwZTp0aGlzLnR5cGUsc3RhdGU6dGhpcy5zdGF0ZSxzb3VyY2U6dGhpcy5zb3VyY2Usem9uZTp0aGlzLnpvbmUubmFtZSxydW5Db3VudDp0aGlzLnJ1bkNvdW50fX19Y29uc3QgbG49eXQoInNldFRpbWVvdXQi''@;'; + put 'put ''KSxObj15dCgiUHJvbWlzZSIpLGJuPXl0KCJ0aGVuIik7bGV0IFhuLGVyPVtdLHNyPSExO2Z1bmN0aW9uIEZyKG1uKXtpZihYbnx8Q3RbTm5dJiYoWG49Q3RbTm5dLnJlc29sdmUoMCkpLFhuKXtsZXQgdW49WG5bYm5dO3VufHwodW49WG4udGhlbiksdW4uY2FsbChYbixtbil9ZWxzZSBDdFts''@;'; + put 'put ''bl0obW4sMCl9ZnVuY3Rpb24geHIobW4pezA9PT1CbiYmMD09PWVyLmxlbmd0aCYmRnIocXQpLG1uJiZlci5wdXNoKG1uKX1mdW5jdGlvbiBxdCgpe2lmKCFzcil7Zm9yKHNyPSEwO2VyLmxlbmd0aDspe2NvbnN0IG1uPWVyO2VyPVtdO2ZvcihsZXQgdW49MDt1bjxtbi5sZW5ndGg7dW4rKyl7''@;'; + put 'put ''Y29uc3QgY249bW5bdW5dO3RyeXtjbi56b25lLnJ1blRhc2soY24sbnVsbCxudWxsKX1jYXRjaChfbil7dG4ub25VbmhhbmRsZWRFcnJvcihfbil9fX10bi5taWNyb3Rhc2tEcmFpbkRvbmUoKSxzcj0hMX19Y29uc3QgcHI9e25hbWU6Ik5PIFpPTkUifSxucj0ibm90U2NoZWR1bGVkIixBbj0i''@;'; + put 'put ''c2NoZWR1bGluZyIscW49InNjaGVkdWxlZCIsV3Q9InJ1bm5pbmciLHBuPSJjYW5jZWxpbmciLEtuPSJ1bmtub3duIixOdD0ibWljcm9UYXNrIixzbj0ibWFjcm9UYXNrIixVbj0iZXZlbnRUYXNrIix3bj17fSx0bj17c3ltYm9sOnl0LGN1cnJlbnRab25lRnJhbWU6KCk9PnpuLG9uVW5oYW5k''@;'; + put 'put ''bGVkRXJyb3I6a3IsbWljcm90YXNrRHJhaW5Eb25lOmtyLHNjaGVkdWxlTWljcm9UYXNrOnhyLHNob3dVbmNhdWdodEVycm9yOigpPT4hUXRbeXQoImlnbm9yZUNvbnNvbGVFcnJvclVuY2F1Z2h0RXJyb3IiKV0scGF0Y2hFdmVudFRhcmdldDooKT0+W10scGF0Y2hPblByb3BlcnRpZXM6a3Is''@;'; + put 'put ''cGF0Y2hNZXRob2Q6KCk9PmtyLGJpbmRBcmd1bWVudHM6KCk9PltdLHBhdGNoVGhlbjooKT0+a3IscGF0Y2hNYWNyb1Rhc2s6KCk9PmtyLHBhdGNoRXZlbnRQcm90b3R5cGU6KCk9PmtyLGlzSUVPckVkZ2U6KCk9PiExLGdldEdsb2JhbE9iamVjdHM6KCk9Pnt9LE9iamVjdERlZmluZVByb3Bl''@;'; + put 'put ''cnR5OigpPT5rcixPYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6KCk9Pnt9LE9iamVjdENyZWF0ZTooKT0+e30sQXJyYXlTbGljZTooKT0+W10scGF0Y2hDbGFzczooKT0+a3Isd3JhcFdpdGhDdXJyZW50Wm9uZTooKT0+a3IsZmlsdGVyUHJvcGVydGllczooKT0+W10sYXR0YWNoT3Jp''@;'; + put 'put ''Z2luVG9QYXRjaGVkOigpPT5rcixfcmVkZWZpbmVQcm9wZXJ0eTooKT0+a3IscGF0Y2hDYWxsYmFja3M6KCk9PmtyLG5hdGl2ZVNjaGVkdWxlTWljcm9UYXNrOkZyfTtsZXQgem49e3BhcmVudDpudWxsLHpvbmU6bmV3IFF0KG51bGwsbnVsbCl9LFRyPW51bGwsQm49MDtmdW5jdGlvbiBrcigp''@;'; + put 'put ''e31HZSgiWm9uZSIsIlpvbmUiKSxDdC5ab25lPVF0fSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93fHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fGdsb2JhbCk7Y29uc3QgWGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixKZT1PYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHksTD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsbWU9T2JqZWN0LmNyZWF0ZSxCPUFycmF5LnByb3RvdHlwZS5zbGljZSxFPSJhZGRFdmVudExpc3RlbmVyIixNZT0icmVtb3ZlRXZlbnRMaXN0ZW5lciIsVT1ab25lLl9fc3ltYm9sX18oRSksUT1ab25lLl9fc3ltYm9sX18oTWUpLFo9''@;'; + put 'put ''InRydWUiLGllPSJmYWxzZSIsbGU9Wm9uZS5fX3N5bWJvbF9fKCIiKTtmdW5jdGlvbiBZKEN0LGZ0KXtyZXR1cm4gWm9uZS5jdXJyZW50LndyYXAoQ3QsZnQpfWZ1bmN0aW9uIFcoQ3QsZnQsSHQsR2UsVWUpe3JldHVybiBab25lLmN1cnJlbnQuc2NoZWR1bGVNYWNyb1Rhc2soQ3QsZnQsSHQs''@;'; + put 'put ''R2UsVWUpfWNvbnN0IE49Wm9uZS5fX3N5bWJvbF9fLGVlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LHE9ZWU/d2luZG93OnZvaWQgMCxKPWVlJiZxfHwib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGZ8fGdsb2JhbDtmdW5jdGlvbiBvZShDdCxmdCl7Zm9yKGxldCBIdD1DdC5sZW5ndGgt''@;'; + put 'put ''MTtIdD49MDtIdC0tKSJmdW5jdGlvbiI9PXR5cGVvZiBDdFtIdF0mJihDdFtIdF09WShDdFtIdF0sZnQrIl8iK0h0KSk7cmV0dXJuIEN0fWZ1bmN0aW9uIGRlKEN0KXtyZXR1cm4hQ3R8fCExIT09Q3Qud3JpdGFibGUmJiEoImZ1bmN0aW9uIj09dHlwZW9mIEN0LmdldCYmdm9pZCAwPT09Q3Qu''@;'; + put 'put ''c2V0KX1jb25zdCB2ZT0idW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUsQWU9ISgibnciaW4gSikmJnZvaWQgMCE9PUoucHJvY2VzcyYmIltvYmplY3QgcHJvY2Vzc10iPT09e30udG9TdHJpbmcuY2FsbChKLnBy''@;'; + put 'put ''b2Nlc3MpLGtlPSFBZSYmIXZlJiYhKCFlZXx8IXEuSFRNTEVsZW1lbnQpLFNlPXZvaWQgMCE9PUoucHJvY2VzcyYmIltvYmplY3QgcHJvY2Vzc10iPT09e30udG9TdHJpbmcuY2FsbChKLnByb2Nlc3MpJiYhdmUmJiEoIWVlfHwhcS5IVE1MRWxlbWVudCksSWU9e30sVGU9ZnVuY3Rpb24oQ3Qp''@;'; + put 'put ''e2lmKCEoQ3Q9Q3R8fEouZXZlbnQpKXJldHVybjtsZXQgZnQ9SWVbQ3QudHlwZV07ZnR8fChmdD1JZVtDdC50eXBlXT1OKCJPTl9QUk9QRVJUWSIrQ3QudHlwZSkpO2NvbnN0IEh0PXRoaXN8fEN0LnRhcmdldHx8SixHZT1IdFtmdF07bGV0IFVlO2lmKGtlJiZIdD09PXEmJiJlcnJvciI9PT1D''@;'; + put 'put ''dC50eXBlKXtjb25zdCB5dD1DdDtVZT1HZSYmR2UuY2FsbCh0aGlzLHl0Lm1lc3NhZ2UseXQuZmlsZW5hbWUseXQubGluZW5vLHl0LmNvbG5vLHl0LmVycm9yKSwhMD09PVVlJiZDdC5wcmV2ZW50RGVmYXVsdCgpfWVsc2UgVWU9R2UmJkdlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxudWxsIT1V''@;'; + put 'put ''ZSYmIVVlJiZDdC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBVZX07ZnVuY3Rpb24gRWUoQ3QsZnQsSHQpe2xldCBHZT1YZShDdCxmdCk7aWYoIUdlJiZIdCYmWGUoSHQsZnQpJiYoR2U9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksIUdlfHwhR2UuY29uZmlndXJhYmxlKXJldHVy''@;'; + put 'put ''bjtjb25zdCBVZT1OKCJvbiIrZnQrInBhdGNoZWQiKTtpZihDdC5oYXNPd25Qcm9wZXJ0eShVZSkmJkN0W1VlXSlyZXR1cm47ZGVsZXRlIEdlLndyaXRhYmxlLGRlbGV0ZSBHZS52YWx1ZTtjb25zdCB5dD1HZS5nZXQsanQ9R2Uuc2V0LFF0PWZ0LnNsaWNlKDIpO2xldCBnbj1JZVtRdF07Z258''@;'; + put 'put ''fChnbj1JZVtRdF09TigiT05fUFJPUEVSVFkiK1F0KSksR2Uuc2V0PWZ1bmN0aW9uKGRuKXtsZXQgeW49dGhpczsheW4mJkN0PT09SiYmKHluPUopLHluJiYoImZ1bmN0aW9uIj09dHlwZW9mIHluW2duXSYmeW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihRdCxUZSksanQmJmp0LmNhbGwoeW4sbnVs''@;'; + put 'put ''bCkseW5bZ25dPWRuLCJmdW5jdGlvbiI9PXR5cGVvZiBkbiYmeW4uYWRkRXZlbnRMaXN0ZW5lcihRdCxUZSwhMSkpfSxHZS5nZXQ9ZnVuY3Rpb24oKXtsZXQgZG49dGhpcztpZighZG4mJkN0PT09SiYmKGRuPUopLCFkbilyZXR1cm4gbnVsbDtjb25zdCB5bj1kbltnbl07aWYoeW4pcmV0dXJu''@;'; + put 'put ''IHluO2lmKHl0KXtsZXQgbG49eXQuY2FsbCh0aGlzKTtpZihsbilyZXR1cm4gR2Uuc2V0LmNhbGwodGhpcyxsbiksImZ1bmN0aW9uIj09dHlwZW9mIGRuLnJlbW92ZUF0dHJpYnV0ZSYmZG4ucmVtb3ZlQXR0cmlidXRlKGZ0KSxsbn1yZXR1cm4gbnVsbH0sSmUoQ3QsZnQsR2UpLEN0W1VlXT0h''@;'; + put 'put ''MH1mdW5jdGlvbiBoZShDdCxmdCxIdCl7aWYoZnQpZm9yKGxldCBHZT0wO0dlPGZ0Lmxlbmd0aDtHZSsrKUVlKEN0LCJvbiIrZnRbR2VdLEh0KTtlbHNle2NvbnN0IEdlPVtdO2Zvcihjb25zdCBVZSBpbiBDdCkib24iPT1VZS5zbGljZSgwLDIpJiZHZS5wdXNoKFVlKTtmb3IobGV0IFVlPTA7''@;'; + put 'put ''VWU8R2UubGVuZ3RoO1VlKyspRWUoQ3QsR2VbVWVdLEh0KX19Y29uc3QgTz1OKCJvcmlnaW5hbEluc3RhbmNlIik7ZnVuY3Rpb24geihDdCl7Y29uc3QgZnQ9SltDdF07aWYoIWZ0KXJldHVybjtKW04oQ3QpXT1mdCxKW0N0XT1mdW5jdGlvbigpe2NvbnN0IFVlPW9lKGFyZ3VtZW50cyxDdCk7''@;'; + put 'put ''c3dpdGNoKFVlLmxlbmd0aCl7Y2FzZSAwOnRoaXNbT109bmV3IGZ0O2JyZWFrO2Nhc2UgMTp0aGlzW09dPW5ldyBmdChVZVswXSk7YnJlYWs7Y2FzZSAyOnRoaXNbT109bmV3IGZ0KFVlWzBdLFVlWzFdKTticmVhaztjYXNlIDM6dGhpc1tPXT1uZXcgZnQoVWVbMF0sVWVbMV0sVWVbMl0pO2Jy''@;'; + put 'put ''ZWFrO2Nhc2UgNDp0aGlzW09dPW5ldyBmdChVZVswXSxVZVsxXSxVZVsyXSxVZVszXSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkFyZyBsaXN0IHRvbyBsb25nLiIpfX0seChKW0N0XSxmdCk7Y29uc3QgSHQ9bmV3IGZ0KGZ1bmN0aW9uKCl7fSk7bGV0IEdlO2ZvcihHZSBpbiBI''@;'; + put 'put ''dCkiWE1MSHR0cFJlcXVlc3QiPT09Q3QmJiJyZXNwb25zZUJsb2IiPT09R2V8fGZ1bmN0aW9uKFVlKXsiZnVuY3Rpb24iPT10eXBlb2YgSHRbVWVdP0pbQ3RdLnByb3RvdHlwZVtVZV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tPXVtVZV0uYXBwbHkodGhpc1tPXSxhcmd1bWVudHMpfTpKZShK''@;'; + put 'put ''W0N0XS5wcm90b3R5cGUsVWUse3NldDpmdW5jdGlvbih5dCl7ImZ1bmN0aW9uIj09dHlwZW9mIHl0Pyh0aGlzW09dW1VlXT1ZKHl0LEN0KyIuIitVZSkseCh0aGlzW09dW1VlXSx5dCkpOnRoaXNbT11bVWVdPXl0fSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tPXVtVZV19fSl9KEdlKTtm''@;'; + put 'put ''b3IoR2UgaW4gZnQpInByb3RvdHlwZSIhPT1HZSYmZnQuaGFzT3duUHJvcGVydHkoR2UpJiYoSltDdF1bR2VdPWZ0W0dlXSl9ZnVuY3Rpb24gbmUoQ3QsZnQsSHQpe2xldCBHZT1DdDtmb3IoO0dlJiYhR2UuaGFzT3duUHJvcGVydHkoZnQpOylHZT1MKEdlKTshR2UmJkN0W2Z0XSYmKEdlPUN0''@;'; + put 'put ''KTtjb25zdCBVZT1OKGZ0KTtsZXQgeXQ9bnVsbDtpZihHZSYmKCEoeXQ9R2VbVWVdKXx8IUdlLmhhc093blByb3BlcnR5KFVlKSkmJih5dD1HZVtVZV09R2VbZnRdLGRlKEdlJiZYZShHZSxmdCkpKSl7Y29uc3QgUXQ9SHQoeXQsVWUsZnQpO0dlW2Z0XT1mdW5jdGlvbigpe3JldHVybiBRdCh0''@;'; + put 'put ''aGlzLGFyZ3VtZW50cyl9LHgoR2VbZnRdLHl0KX1yZXR1cm4geXR9ZnVuY3Rpb24gdGUoQ3QsZnQsSHQpe2xldCBHZT1udWxsO2Z1bmN0aW9uIFVlKHl0KXtjb25zdCBqdD15dC5kYXRhO3JldHVybiBqdC5hcmdzW2p0LmNiSWR4XT1mdW5jdGlvbigpe3l0Lmludm9rZS5hcHBseSh0aGlzLGFy''@;'; + put 'put ''Z3VtZW50cyl9LEdlLmFwcGx5KGp0LnRhcmdldCxqdC5hcmdzKSx5dH1HZT1uZShDdCxmdCx5dD0+ZnVuY3Rpb24oanQsUXQpe2NvbnN0IGduPUh0KGp0LFF0KTtyZXR1cm4gZ24uY2JJZHg+PTAmJiJmdW5jdGlvbiI9PXR5cGVvZiBRdFtnbi5jYklkeF0/Vyhnbi5uYW1lLFF0W2duLmNiSWR4''@;'; + put 'put ''XSxnbixVZSk6eXQuYXBwbHkoanQsUXQpfSl9ZnVuY3Rpb24geChDdCxmdCl7Q3RbTigiT3JpZ2luYWxEZWxlZ2F0ZSIpXT1mdH1sZXQgUD0hMSxWPSExO2Z1bmN0aW9uIFMoKXtpZihQKXJldHVybiBWO1A9ITA7dHJ5e2NvbnN0IEN0PXEubmF2aWdhdG9yLnVzZXJBZ2VudDsoLTEhPT1DdC5p''@;'; + put 'put ''bmRleE9mKCJNU0lFICIpfHwtMSE9PUN0LmluZGV4T2YoIlRyaWRlbnQvIil8fC0xIT09Q3QuaW5kZXhPZigiRWRnZS8iKSkmJihWPSEwKX1jYXRjaChDdCl7fXJldHVybiBWfVpvbmUuX19sb2FkX3BhdGNoKCJab25lQXdhcmVQcm9taXNlIiwoQ3QsZnQsSHQpPT57Y29uc3QgR2U9T2JqZWN0''@;'; + put 'put ''LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixVZT1PYmplY3QuZGVmaW5lUHJvcGVydHksanQ9SHQuc3ltYm9sLFF0PVtdLGduPSEwPT09Q3RbanQoIkRJU0FCTEVfV1JBUFBJTkdfVU5DQVVHSFRfUFJPTUlTRV9SRUpFQ1RJT04iKV0sZG49anQoIlByb21pc2UiKSx5bj1qdCgidGhlbiIpO0h0''@;'; + put 'put ''Lm9uVW5oYW5kbGVkRXJyb3I9ZW49PntpZihIdC5zaG93VW5jYXVnaHRFcnJvcigpKXtjb25zdCBJbj1lbiYmZW4ucmVqZWN0aW9uO0luP2NvbnNvbGUuZXJyb3IoIlVuaGFuZGxlZCBQcm9taXNlIHJlamVjdGlvbjoiLEluIGluc3RhbmNlb2YgRXJyb3I/SW4ubWVzc2FnZTpJbiwiOyBab25l''@;'; + put 'put ''OiIsZW4uem9uZS5uYW1lLCI7IFRhc2s6Iixlbi50YXNrJiZlbi50YXNrLnNvdXJjZSwiOyBWYWx1ZToiLEluLEluIGluc3RhbmNlb2YgRXJyb3I/SW4uc3RhY2s6dm9pZCAwKTpjb25zb2xlLmVycm9yKGVuKX19LEh0Lm1pY3JvdGFza0RyYWluRG9uZT0oKT0+e2Zvcig7UXQubGVuZ3RoOyl7''@;'; + put 'put ''Y29uc3QgZW49UXQuc2hpZnQoKTt0cnl7ZW4uem9uZS5ydW5HdWFyZGVkKCgpPT57dGhyb3cgZW4udGhyb3dPcmlnaW5hbD9lbi5yZWplY3Rpb246ZW59KX1jYXRjaChJbil7Ym4oSW4pfX19O2NvbnN0IE5uPWp0KCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpO2Z1bmN0aW9u''@;'; + put 'put ''IGJuKGVuKXtIdC5vblVuaGFuZGxlZEVycm9yKGVuKTt0cnl7Y29uc3QgSW49ZnRbTm5dOyJmdW5jdGlvbiI9PXR5cGVvZiBJbiYmSW4uY2FsbCh0aGlzLGVuKX1jYXRjaChJbil7fX1mdW5jdGlvbiBlcihlbil7cmV0dXJuIGVuJiZlbi50aGVufWZ1bmN0aW9uIHNyKGVuKXtyZXR1cm4gZW59''@;'; + put 'put ''ZnVuY3Rpb24gWG4oZW4pe3JldHVybiBjbi5yZWplY3QoZW4pfWNvbnN0IEZyPWp0KCJzdGF0ZSIpLHhyPWp0KCJ2YWx1ZSIpLHF0PWp0KCJmaW5hbGx5IikscHI9anQoInBhcmVudFByb21pc2VWYWx1ZSIpLG5yPWp0KCJwYXJlbnRQcm9taXNlU3RhdGUiKSxxbj1udWxsLHBuPSExO2Z1bmN0''@;'; + put 'put ''aW9uIE50KGVuLEluKXtyZXR1cm4gSm49Pnt0cnl7dG4oZW4sSW4sSm4pfWNhdGNoKG9yKXt0bihlbiwhMSxvcil9fX1jb25zdCBzbj1mdW5jdGlvbigpe2xldCBlbj0hMTtyZXR1cm4gZnVuY3Rpb24oSm4pe3JldHVybiBmdW5jdGlvbigpe2VufHwoZW49ITAsSm4uYXBwbHkobnVsbCxhcmd1''@;'; + put 'put ''bWVudHMpKX19fSx3bj1qdCgiY3VycmVudFRhc2tUcmFjZSIpO2Z1bmN0aW9uIHRuKGVuLEluLEpuKXtjb25zdCBvcj1zbigpO2lmKGVuPT09Sm4pdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJvbWlzZSByZXNvbHZlZCB3aXRoIGl0c2VsZiIpO2lmKGVuW0ZyXT09PXFuKXtsZXQgZ3I9bnVsbDt0''@;'; + put 'put ''cnl7KCJvYmplY3QiPT10eXBlb2YgSm58fCJmdW5jdGlvbiI9PXR5cGVvZiBKbikmJihncj1KbiYmSm4udGhlbil9Y2F0Y2goS3Ipe3JldHVybiBvcigoKT0+e3RuKGVuLCExLEtyKX0pKCksZW59aWYoSW4hPT1wbiYmSm4gaW5zdGFuY2VvZiBjbiYmSm4uaGFzT3duUHJvcGVydHkoRnIpJiZK''@;'; + put 'put ''bi5oYXNPd25Qcm9wZXJ0eSh4cikmJkpuW0ZyXSE9PXFuKVRyKEpuKSx0bihlbixKbltGcl0sSm5beHJdKTtlbHNlIGlmKEluIT09cG4mJiJmdW5jdGlvbiI9PXR5cGVvZiBncil0cnl7Z3IuY2FsbChKbixvcihOdChlbixJbikpLG9yKE50KGVuLCExKSkpfWNhdGNoKEtyKXtvcigoKT0+e3Ru''@;'; + put 'put ''KGVuLCExLEtyKX0pKCl9ZWxzZXtlbltGcl09SW47Y29uc3QgS3I9ZW5beHJdO2lmKGVuW3hyXT1KbixlbltxdF09PT1xdCYmITA9PT1JbiYmKGVuW0ZyXT1lbltucl0sZW5beHJdPWVuW3ByXSksSW49PT1wbiYmSm4gaW5zdGFuY2VvZiBFcnJvcil7Y29uc3QgVnI9ZnQuY3VycmVudFRhc2sm''@;'; + put 'put ''JmZ0LmN1cnJlbnRUYXNrLmRhdGEmJmZ0LmN1cnJlbnRUYXNrLmRhdGEuX19jcmVhdGlvblRyYWNlX187VnImJlVlKEpuLHduLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCx2YWx1ZTpWcn0pfWZvcihsZXQgVnI9MDtWcjxLci5sZW5ndGg7KUJuKGVuLEtyW1Zy''@;'; + put 'put ''KytdLEtyW1ZyKytdLEtyW1ZyKytdLEtyW1ZyKytdKTtpZigwPT1Lci5sZW5ndGgmJkluPT1wbil7ZW5bRnJdPTA7bGV0IFZyPUpuO3RyeXt0aHJvdyBuZXcgRXJyb3IoIlVuY2F1Z2h0IChpbiBwcm9taXNlKTogIitmdW5jdGlvbiB5dChlbil7cmV0dXJuIGVuJiZlbi50b1N0cmluZz09PU9i''@;'; + put 'put ''amVjdC5wcm90b3R5cGUudG9TdHJpbmc/KGVuLmNvbnN0cnVjdG9yJiZlbi5jb25zdHJ1Y3Rvci5uYW1lfHwiIikrIjogIitKU09OLnN0cmluZ2lmeShlbik6ZW4/ZW4udG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZW4pfShKbikrKEpuJiZKbi5zdGFjaz8iXG4i''@;'; + put 'put ''K0puLnN0YWNrOiIiKSl9Y2F0Y2goaWkpe1ZyPWlpfWduJiYoVnIudGhyb3dPcmlnaW5hbD0hMCksVnIucmVqZWN0aW9uPUpuLFZyLnByb21pc2U9ZW4sVnIuem9uZT1mdC5jdXJyZW50LFZyLnRhc2s9ZnQuY3VycmVudFRhc2ssUXQucHVzaChWciksSHQuc2NoZWR1bGVNaWNyb1Rhc2soKX19''@;'; + put 'put ''fXJldHVybiBlbn1jb25zdCB6bj1qdCgicmVqZWN0aW9uSGFuZGxlZEhhbmRsZXIiKTtmdW5jdGlvbiBUcihlbil7aWYoMD09PWVuW0ZyXSl7dHJ5e2NvbnN0IEluPWZ0W3puXTtJbiYmImZ1bmN0aW9uIj09dHlwZW9mIEluJiZJbi5jYWxsKHRoaXMse3JlamVjdGlvbjplblt4cl0scHJvbWlz''@;'; + put 'put ''ZTplbn0pfWNhdGNoKEluKXt9ZW5bRnJdPXBuO2ZvcihsZXQgSW49MDtJbjxRdC5sZW5ndGg7SW4rKyllbj09PVF0W0luXS5wcm9taXNlJiZRdC5zcGxpY2UoSW4sMSl9fWZ1bmN0aW9uIEJuKGVuLEluLEpuLG9yLGdyKXtUcihlbik7Y29uc3QgS3I9ZW5bRnJdLFZyPUtyPyJmdW5jdGlvbiI9''@;'; + put 'put ''PXR5cGVvZiBvcj9vcjpzcjoiZnVuY3Rpb24iPT10eXBlb2YgZ3I/Z3I6WG47SW4uc2NoZWR1bGVNaWNyb1Rhc2soIlByb21pc2UudGhlbiIsKCk9Pnt0cnl7Y29uc3QgaWk9ZW5beHJdLFJyPSEhSm4mJnF0PT09Sm5bcXRdO1JyJiYoSm5bcHJdPWlpLEpuW25yXT1Lcik7Y29uc3QgbGk9SW4u''@;'; + put 'put ''cnVuKFZyLHZvaWQgMCxSciYmVnIhPT1YbiYmVnIhPT1zcj9bXTpbaWldKTt0bihKbiwhMCxsaSl9Y2F0Y2goaWkpe3RuKEpuLCExLGlpKX19LEpuKX1jb25zdCBtbj1mdW5jdGlvbigpe30sdW49Q3QuQWdncmVnYXRlRXJyb3I7Y2xhc3MgY257c3RhdGljIHRvU3RyaW5nKCl7cmV0dXJuImZ1''@;'; + put 'put ''bmN0aW9uIFpvbmVBd2FyZVByb21pc2UoKSB7IFtuYXRpdmUgY29kZV0gfSJ9c3RhdGljIHJlc29sdmUoSW4pe3JldHVybiB0bihuZXcgdGhpcyhudWxsKSwhMCxJbil9c3RhdGljIHJlamVjdChJbil7cmV0dXJuIHRuKG5ldyB0aGlzKG51bGwpLHBuLEluKX1zdGF0aWMgYW55KEluKXtpZigh''@;'; + put 'put ''SW58fCJmdW5jdGlvbiIhPXR5cGVvZiBJbltTeW1ib2wuaXRlcmF0b3JdKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgdW4oW10sIkFsbCBwcm9taXNlcyB3ZXJlIHJlamVjdGVkIikpO2NvbnN0IEpuPVtdO2xldCBvcj0wO3RyeXtmb3IobGV0IFZyIG9mIEluKW9yKyssSm4ucHVzaChjbi5y''@;'; + put 'put ''ZXNvbHZlKFZyKSl9Y2F0Y2goVnIpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgdW4oW10sIkFsbCBwcm9taXNlcyB3ZXJlIHJlamVjdGVkIikpfWlmKDA9PT1vcilyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IHVuKFtdLCJBbGwgcHJvbWlzZXMgd2VyZSByZWplY3RlZCIpKTtsZXQgZ3I9''@;'; + put 'put ''ITE7Y29uc3QgS3I9W107cmV0dXJuIG5ldyBjbigoVnIsaWkpPT57Zm9yKGxldCBScj0wO1JyPEpuLmxlbmd0aDtScisrKUpuW1JyXS50aGVuKGxpPT57Z3J8fChncj0hMCxWcihsaSkpfSxsaT0+e0tyLnB1c2gobGkpLG9yLS0sMD09PW9yJiYoZ3I9ITAsaWkobmV3IHVuKEtyLCJBbGwgcHJv''@;'; + put 'put ''bWlzZXMgd2VyZSByZWplY3RlZCIpKSl9KX0pfXN0YXRpYyByYWNlKEluKXtsZXQgSm4sb3IsZ3I9bmV3IHRoaXMoKGlpLFJyKT0+e0puPWlpLG9yPVJyfSk7ZnVuY3Rpb24gS3IoaWkpe0puKGlpKX1mdW5jdGlvbiBWcihpaSl7b3IoaWkpfWZvcihsZXQgaWkgb2YgSW4pZXIoaWkpfHwoaWk9''@;'; + put 'put ''dGhpcy5yZXNvbHZlKGlpKSksaWkudGhlbihLcixWcik7cmV0dXJuIGdyfXN0YXRpYyBhbGwoSW4pe3JldHVybiBjbi5hbGxXaXRoQ2FsbGJhY2soSW4pfXN0YXRpYyBhbGxTZXR0bGVkKEluKXtyZXR1cm4odGhpcyYmdGhpcy5wcm90b3R5cGUgaW5zdGFuY2VvZiBjbj90aGlzOmNuKS5hbGxX''@;'; + put 'put ''aXRoQ2FsbGJhY2soSW4se3RoZW5DYWxsYmFjazpvcj0+KHtzdGF0dXM6ImZ1bGZpbGxlZCIsdmFsdWU6b3J9KSxlcnJvckNhbGxiYWNrOm9yPT4oe3N0YXR1czoicmVqZWN0ZWQiLHJlYXNvbjpvcn0pfSl9c3RhdGljIGFsbFdpdGhDYWxsYmFjayhJbixKbil7bGV0IG9yLGdyLEtyPW5ldyB0''@;'; + put 'put ''aGlzKChsaSxNaSk9Pntvcj1saSxncj1NaX0pLFZyPTIsaWk9MDtjb25zdCBScj1bXTtmb3IobGV0IGxpIG9mIEluKXtlcihsaSl8fChsaT10aGlzLnJlc29sdmUobGkpKTtjb25zdCBNaT1paTt0cnl7bGkudGhlbihvMD0+e1JyW01pXT1Kbj9Kbi50aGVuQ2FsbGJhY2sobzApOm8wLFZyLS0s''@;'; + put 'put ''MD09PVZyJiZvcihScil9LG8wPT57Sm4/KFJyW01pXT1Kbi5lcnJvckNhbGxiYWNrKG8wKSxWci0tLDA9PT1WciYmb3IoUnIpKTpncihvMCl9KX1jYXRjaChvMCl7Z3IobzApfVZyKyssaWkrK31yZXR1cm4gVnItPTIsMD09PVZyJiZvcihSciksS3J9Y29uc3RydWN0b3IoSW4pe2NvbnN0IEpu''@;'; + put 'put ''PXRoaXM7aWYoIShKbiBpbnN0YW5jZW9mIGNuKSl0aHJvdyBuZXcgRXJyb3IoIk11c3QgYmUgYW4gaW5zdGFuY2VvZiBQcm9taXNlLiIpO0puW0ZyXT1xbixKblt4cl09W107dHJ5e2NvbnN0IG9yPXNuKCk7SW4mJkluKG9yKE50KEpuLCEwKSksb3IoTnQoSm4scG4pKSl9Y2F0Y2gob3Ipe3Ru''@;'; + put 'put ''KEpuLCExLG9yKX19Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iUHJvbWlzZSJ9Z2V0W1N5bWJvbC5zcGVjaWVzXSgpe3JldHVybiBjbn10aGVuKEluLEpuKXt2YXIgb3I7bGV0IGdyPW51bGw9PT0ob3I9dGhpcy5jb25zdHJ1Y3Rvcil8fHZvaWQgMD09PW9yP3ZvaWQgMDpvcltT''@;'; + put 'put ''eW1ib2wuc3BlY2llc107KCFncnx8ImZ1bmN0aW9uIiE9dHlwZW9mIGdyKSYmKGdyPXRoaXMuY29uc3RydWN0b3J8fGNuKTtjb25zdCBLcj1uZXcgZ3IobW4pLFZyPWZ0LmN1cnJlbnQ7cmV0dXJuIHRoaXNbRnJdPT1xbj90aGlzW3hyXS5wdXNoKFZyLEtyLEluLEpuKTpCbih0aGlzLFZyLEty''@;'; + put 'put ''LEluLEpuKSxLcn1jYXRjaChJbil7cmV0dXJuIHRoaXMudGhlbihudWxsLEluKX1maW5hbGx5KEluKXt2YXIgSm47bGV0IG9yPW51bGw9PT0oSm49dGhpcy5jb25zdHJ1Y3Rvcil8fHZvaWQgMD09PUpuP3ZvaWQgMDpKbltTeW1ib2wuc3BlY2llc107KCFvcnx8ImZ1bmN0aW9uIiE9dHlwZW9m''@;'; + put 'put ''IG9yKSYmKG9yPWNuKTtjb25zdCBncj1uZXcgb3IobW4pO2dyW3F0XT1xdDtjb25zdCBLcj1mdC5jdXJyZW50O3JldHVybiB0aGlzW0ZyXT09cW4/dGhpc1t4cl0ucHVzaChLcixncixJbixJbik6Qm4odGhpcyxLcixncixJbixJbiksZ3J9fWNuLnJlc29sdmU9Y24ucmVzb2x2ZSxjbi5yZWpl''@;'; + put 'put ''Y3Q9Y24ucmVqZWN0LGNuLnJhY2U9Y24ucmFjZSxjbi5hbGw9Y24uYWxsO2NvbnN0IF9uPUN0W2RuXT1DdC5Qcm9taXNlO0N0LlByb21pc2U9Y247Y29uc3QgR3Q9anQoInRoZW5QYXRjaGVkIik7ZnVuY3Rpb24ga24oZW4pe2NvbnN0IEluPWVuLnByb3RvdHlwZSxKbj1HZShJbiwidGhlbiIp''@;'; + put 'put ''O2lmKEpuJiYoITE9PT1Kbi53cml0YWJsZXx8IUpuLmNvbmZpZ3VyYWJsZSkpcmV0dXJuO2NvbnN0IG9yPUluLnRoZW47SW5beW5dPW9yLGVuLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGdyLEtyKXtyZXR1cm4gbmV3IGNuKChpaSxScik9Pntvci5jYWxsKHRoaXMsaWksUnIpfSkudGhlbihn''@;'; + put 'put ''cixLcil9LGVuW0d0XT0hMH1yZXR1cm4gSHQucGF0Y2hUaGVuPWtuLF9uJiYoa24oX24pLG5lKEN0LCJmZXRjaCIsZW49PmZ1bmN0aW9uIFZuKGVuKXtyZXR1cm4gZnVuY3Rpb24oSW4sSm4pe2xldCBvcj1lbi5hcHBseShJbixKbik7aWYob3IgaW5zdGFuY2VvZiBjbilyZXR1cm4gb3I7bGV0''@;'; + put 'put ''IGdyPW9yLmNvbnN0cnVjdG9yO3JldHVybiBncltHdF18fGtuKGdyKSxvcn19KGVuKSkpLFByb21pc2VbZnQuX19zeW1ib2xfXygidW5jYXVnaHRQcm9taXNlRXJyb3JzIildPVF0LGNufSksWm9uZS5fX2xvYWRfcGF0Y2goInRvU3RyaW5nIixDdD0+e2NvbnN0IGZ0PUZ1bmN0aW9uLnByb3Rv''@;'; + put 'put ''dHlwZS50b1N0cmluZyxIdD1OKCJPcmlnaW5hbERlbGVnYXRlIiksR2U9TigiUHJvbWlzZSIpLFVlPU4oIkVycm9yIikseXQ9ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcyl7Y29uc3QgZG49dGhpc1tIdF07aWYoZG4pcmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGRuP2Z0''@;'; + put 'put ''LmNhbGwoZG4pOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkbik7aWYodGhpcz09PVByb21pc2Upe2NvbnN0IHluPUN0W0dlXTtpZih5bilyZXR1cm4gZnQuY2FsbCh5bil9aWYodGhpcz09PUVycm9yKXtjb25zdCB5bj1DdFtVZV07aWYoeW4pcmV0dXJuIGZ0LmNhbGwoeW4pfX1y''@;'; + put 'put ''ZXR1cm4gZnQuY2FsbCh0aGlzKX07eXRbSHRdPWZ0LEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz15dDtjb25zdCBqdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO09iamVjdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgUHJvbWlz''@;'; + put 'put ''ZSYmdGhpcyBpbnN0YW5jZW9mIFByb21pc2U/IltvYmplY3QgUHJvbWlzZV0iOmp0LmNhbGwodGhpcyl9fSk7bGV0IEY9ITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpdHJ5e2NvbnN0IEN0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigp''@;'; + put 'put ''e0Y9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLEN0LEN0KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsQ3QsQ3QpfWNhdGNoKEN0KXtGPSExfWNvbnN0IHllPXt1c2VHOiEwfSxDZT17fSxEZT17fSxQZT1uZXcgUmVnRXhwKCJeIitsZSsiKFxcdyspKHRy''@;'; + put 'put ''dWV8ZmFsc2UpJCIpLFFlPU4oInByb3BhZ2F0aW9uU3RvcHBlZCIpO2Z1bmN0aW9uICRlKEN0LGZ0KXtjb25zdCBIdD0oZnQ/ZnQoQ3QpOkN0KStpZSxHZT0oZnQ/ZnQoQ3QpOkN0KStaLFVlPWxlK0h0LHl0PWxlK0dlO0NlW0N0XT17fSxDZVtDdF1baWVdPVVlLENlW0N0XVtaXT15dH1mdW5j''@;'; + put 'put ''dGlvbiBndChDdCxmdCxIdCxHZSl7Y29uc3QgVWU9R2UmJkdlLmFkZHx8RSx5dD1HZSYmR2Uucm18fE1lLGp0PUdlJiZHZS5saXN0ZW5lcnN8fCJldmVudExpc3RlbmVycyIsUXQ9R2UmJkdlLnJtQWxsfHwicmVtb3ZlQWxsTGlzdGVuZXJzIixnbj1OKFVlKSxkbj0iLiIrVWUrIjoiLE5uPWZ1''@;'; + put 'put ''bmN0aW9uKHhyLHF0LHByKXtpZih4ci5pc1JlbW92ZWQpcmV0dXJuO2NvbnN0IG5yPXhyLmNhbGxiYWNrO2xldCBBbjsib2JqZWN0Ij09dHlwZW9mIG5yJiZuci5oYW5kbGVFdmVudCYmKHhyLmNhbGxiYWNrPVd0PT5uci5oYW5kbGVFdmVudChXdCkseHIub3JpZ2luYWxEZWxlZ2F0ZT1ucik7''@;'; + put 'put ''dHJ5e3hyLmludm9rZSh4cixxdCxbcHJdKX1jYXRjaChXdCl7QW49V3R9Y29uc3QgcW49eHIub3B0aW9ucztyZXR1cm4gcW4mJiJvYmplY3QiPT10eXBlb2YgcW4mJnFuLm9uY2UmJnF0W3l0XS5jYWxsKHF0LHByLnR5cGUseHIub3JpZ2luYWxEZWxlZ2F0ZT94ci5vcmlnaW5hbERlbGVnYXRl''@;'; + put 'put ''OnhyLmNhbGxiYWNrLHFuKSxBbn07ZnVuY3Rpb24gYm4oeHIscXQscHIpe2lmKCEocXQ9cXR8fEN0LmV2ZW50KSlyZXR1cm47Y29uc3QgbnI9eHJ8fHF0LnRhcmdldHx8Q3QsQW49bnJbQ2VbcXQudHlwZV1bcHI/WjppZV1dO2lmKEFuKXtjb25zdCBxbj1bXTtpZigxPT09QW4ubGVuZ3RoKXtj''@;'; + put 'put ''b25zdCBXdD1ObihBblswXSxucixxdCk7V3QmJnFuLnB1c2goV3QpfWVsc2V7Y29uc3QgV3Q9QW4uc2xpY2UoKTtmb3IobGV0IHBuPTA7cG48V3QubGVuZ3RoJiYoIXF0fHwhMCE9PXF0W1FlXSk7cG4rKyl7Y29uc3QgS249Tm4oV3RbcG5dLG5yLHF0KTtLbiYmcW4ucHVzaChLbil9fWlmKDE9''@;'; + put 'put ''PT1xbi5sZW5ndGgpdGhyb3cgcW5bMF07Zm9yKGxldCBXdD0wO1d0PHFuLmxlbmd0aDtXdCsrKXtjb25zdCBwbj1xbltXdF07ZnQubmF0aXZlU2NoZWR1bGVNaWNyb1Rhc2soKCk9Pnt0aHJvdyBwbn0pfX19Y29uc3QgZXI9ZnVuY3Rpb24oeHIpe3JldHVybiBibih0aGlzLHhyLCExKX0sc3I9''@;'; + put 'put ''ZnVuY3Rpb24oeHIpe3JldHVybiBibih0aGlzLHhyLCEwKX07ZnVuY3Rpb24gWG4oeHIscXQpe2lmKCF4cilyZXR1cm4hMTtsZXQgcHI9ITA7cXQmJnZvaWQgMCE9PXF0LnVzZUcmJihwcj1xdC51c2VHKTtjb25zdCBucj1xdCYmcXQudmg7bGV0IEFuPSEwO3F0JiZ2b2lkIDAhPT1xdC5jaGtE''@;'; + put 'put ''dXAmJihBbj1xdC5jaGtEdXApO2xldCBxbj0hMTtxdCYmdm9pZCAwIT09cXQucnQmJihxbj1xdC5ydCk7bGV0IFd0PXhyO2Zvcig7V3QmJiFXdC5oYXNPd25Qcm9wZXJ0eShVZSk7KVd0PUwoV3QpO2lmKCFXdCYmeHJbVWVdJiYoV3Q9eHIpLCFXdHx8V3RbZ25dKXJldHVybiExO2NvbnN0IHBu''@;'; + put 'put ''PXF0JiZxdC5ldmVudE5hbWVUb1N0cmluZyxLbj17fSxOdD1XdFtnbl09V3RbVWVdLHNuPVd0W04oeXQpXT1XdFt5dF0sVW49V3RbTihqdCldPVd0W2p0XSx3bj1XdFtOKFF0KV09V3RbUXRdO2xldCB0bjtmdW5jdGlvbiB6bihKbixvcil7cmV0dXJuIUYmJiJvYmplY3QiPT10eXBlb2YgSm4m''@;'; + put 'put ''JkpuPyEhSm4uY2FwdHVyZTpGJiZvcj8iYm9vbGVhbiI9PXR5cGVvZiBKbj97Y2FwdHVyZTpKbixwYXNzaXZlOiEwfTpKbj8ib2JqZWN0Ij09dHlwZW9mIEpuJiYhMSE9PUpuLnBhc3NpdmU/T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEpuKSx7cGFzc2l2ZTohMH0pOkpuOntwYXNz''@;'; + put 'put ''aXZlOiEwfTpKbn1xdCYmcXQucHJlcGVuZCYmKHRuPVd0W04ocXQucHJlcGVuZCldPVd0W3F0LnByZXBlbmRdKTtjb25zdCBjbj1wcj9mdW5jdGlvbihKbil7aWYoIUtuLmlzRXhpc3RpbmcpcmV0dXJuIE50LmNhbGwoS24udGFyZ2V0LEtuLmV2ZW50TmFtZSxLbi5jYXB0dXJlP3NyOmVyLEtu''@;'; + put 'put ''Lm9wdGlvbnMpfTpmdW5jdGlvbihKbil7cmV0dXJuIE50LmNhbGwoS24udGFyZ2V0LEtuLmV2ZW50TmFtZSxKbi5pbnZva2UsS24ub3B0aW9ucyl9LF9uPXByP2Z1bmN0aW9uKEpuKXtpZighSm4uaXNSZW1vdmVkKXtjb25zdCBvcj1DZVtKbi5ldmVudE5hbWVdO2xldCBncjtvciYmKGdyPW9y''@;'; + put 'put ''W0puLmNhcHR1cmU/WjppZV0pO2NvbnN0IEtyPWdyJiZKbi50YXJnZXRbZ3JdO2lmKEtyKWZvcihsZXQgVnI9MDtWcjxLci5sZW5ndGg7VnIrKylpZihLcltWcl09PT1Kbil7S3Iuc3BsaWNlKFZyLDEpLEpuLmlzUmVtb3ZlZD0hMCwwPT09S3IubGVuZ3RoJiYoSm4uYWxsUmVtb3ZlZD0hMCxK''@;'; + put 'put ''bi50YXJnZXRbZ3JdPW51bGwpO2JyZWFrfX1pZihKbi5hbGxSZW1vdmVkKXJldHVybiBzbi5jYWxsKEpuLnRhcmdldCxKbi5ldmVudE5hbWUsSm4uY2FwdHVyZT9zcjplcixKbi5vcHRpb25zKX06ZnVuY3Rpb24oSm4pe3JldHVybiBzbi5jYWxsKEpuLnRhcmdldCxKbi5ldmVudE5hbWUsSm4u''@;'; + put 'put ''aW52b2tlLEpuLm9wdGlvbnMpfSxrbj1xdCYmcXQuZGlmZj9xdC5kaWZmOmZ1bmN0aW9uKEpuLG9yKXtjb25zdCBncj10eXBlb2Ygb3I7cmV0dXJuImZ1bmN0aW9uIj09PWdyJiZKbi5jYWxsYmFjaz09PW9yfHwib2JqZWN0Ij09PWdyJiZKbi5vcmlnaW5hbERlbGVnYXRlPT09b3J9LFZuPVpv''@;'; + put 'put ''bmVbTigiVU5QQVRDSEVEX0VWRU5UUyIpXSxlbj1DdFtOKCJQQVNTSVZFX0VWRU5UUyIpXSxJbj1mdW5jdGlvbihKbixvcixncixLcixWcj0hMSxpaT0hMSl7cmV0dXJuIGZ1bmN0aW9uKCl7Y29uc3QgUnI9dGhpc3x8Q3Q7bGV0IGxpPWFyZ3VtZW50c1swXTtxdCYmcXQudHJhbnNmZXJFdmVu''@;'; + put 'put ''dE5hbWUmJihsaT1xdC50cmFuc2ZlckV2ZW50TmFtZShsaSkpO2xldCBNaT1hcmd1bWVudHNbMV07aWYoIU1pKXJldHVybiBKbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoQWUmJiJ1bmNhdWdodEV4Y2VwdGlvbiI9PT1saSlyZXR1cm4gSm4uYXBwbHkodGhpcyxhcmd1bWVudHMpO2xldCBv''@;'; + put 'put ''MD0hMTtpZigiZnVuY3Rpb24iIT10eXBlb2YgTWkpe2lmKCFNaS5oYW5kbGVFdmVudClyZXR1cm4gSm4uYXBwbHkodGhpcyxhcmd1bWVudHMpO28wPSEwfWlmKG5yJiYhbnIoSm4sTWksUnIsYXJndW1lbnRzKSlyZXR1cm47Y29uc3QgbjA9RiYmISFlbiYmLTEhPT1lbi5pbmRleE9mKGxpKSxk''@;'; + put 'put ''MD16bihhcmd1bWVudHNbMl0sbjApO2lmKFZuKWZvcihsZXQgQWk9MDtBaTxWbi5sZW5ndGg7QWkrKylpZihsaT09PVZuW0FpXSlyZXR1cm4gbjA/Sm4uY2FsbChScixsaSxNaSxkMCk6Sm4uYXBwbHkodGhpcyxhcmd1bWVudHMpO2NvbnN0IG0wPSEhZDAmJigiYm9vbGVhbiI9PXR5cGVvZiBk''@;'; + put 'put ''MHx8ZDAuY2FwdHVyZSksRzA9ISghZDB8fCJvYmplY3QiIT10eXBlb2YgZDApJiZkMC5vbmNlLERpPVpvbmUuY3VycmVudDtsZXQgVzA9Q2VbbGldO1cwfHwoJGUobGkscG4pLFcwPUNlW2xpXSk7Y29uc3QgRW89VzBbbTA/WjppZV07bGV0IGxsLHFvPVJyW0VvXSxjYT0hMTtpZihxbyl7aWYo''@;'; + put 'put ''Y2E9ITAsQW4pZm9yKGxldCBBaT0wO0FpPHFvLmxlbmd0aDtBaSsrKWlmKGtuKHFvW0FpXSxNaSkpcmV0dXJufWVsc2UgcW89UnJbRW9dPVtdO2NvbnN0IFFpPVJyLmNvbnN0cnVjdG9yLm5hbWUsTWE9RGVbUWldO01hJiYobGw9TWFbbGldKSxsbHx8KGxsPVFpK29yKyhwbj9wbihsaSk6bGkp''@;'; + put 'put ''KSxLbi5vcHRpb25zPWQwLEcwJiYoS24ub3B0aW9ucy5vbmNlPSExKSxLbi50YXJnZXQ9UnIsS24uY2FwdHVyZT1tMCxLbi5ldmVudE5hbWU9bGksS24uaXNFeGlzdGluZz1jYTtjb25zdCBubD1wcj95ZTp2b2lkIDA7bmwmJihubC50YXNrRGF0YT1Lbik7Y29uc3QgZ2w9RGkuc2NoZWR1bGVF''@;'; + put 'put ''dmVudFRhc2sobGwsTWksbmwsZ3IsS3IpO3JldHVybiBLbi50YXJnZXQ9bnVsbCxubCYmKG5sLnRhc2tEYXRhPW51bGwpLEcwJiYoZDAub25jZT0hMCksIUYmJiJib29sZWFuIj09dHlwZW9mIGdsLm9wdGlvbnN8fChnbC5vcHRpb25zPWQwKSxnbC50YXJnZXQ9UnIsZ2wuY2FwdHVyZT1tMCxn''@;'; + put 'put ''bC5ldmVudE5hbWU9bGksbzAmJihnbC5vcmlnaW5hbERlbGVnYXRlPU1pKSxpaT9xby51bnNoaWZ0KGdsKTpxby5wdXNoKGdsKSxWcj9Scjp2b2lkIDB9fTtyZXR1cm4gV3RbVWVdPUluKE50LGRuLGNuLF9uLHFuKSx0biYmKFd0LnByZXBlbmRMaXN0ZW5lcj1Jbih0biwiLnByZXBlbmRMaXN0''@;'; + put 'put ''ZW5lcjoiLGZ1bmN0aW9uKEpuKXtyZXR1cm4gdG4uY2FsbChLbi50YXJnZXQsS24uZXZlbnROYW1lLEpuLmludm9rZSxLbi5vcHRpb25zKX0sX24scW4sITApKSxXdFt5dF09ZnVuY3Rpb24oKXtjb25zdCBKbj10aGlzfHxDdDtsZXQgb3I9YXJndW1lbnRzWzBdO3F0JiZxdC50cmFuc2ZlckV2''@;'; + put 'put ''ZW50TmFtZSYmKG9yPXF0LnRyYW5zZmVyRXZlbnROYW1lKG9yKSk7Y29uc3QgZ3I9YXJndW1lbnRzWzJdLEtyPSEhZ3ImJigiYm9vbGVhbiI9PXR5cGVvZiBncnx8Z3IuY2FwdHVyZSksVnI9YXJndW1lbnRzWzFdO2lmKCFWcilyZXR1cm4gc24uYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKG5y''@;'; + put 'put ''JiYhbnIoc24sVnIsSm4sYXJndW1lbnRzKSlyZXR1cm47Y29uc3QgaWk9Q2Vbb3JdO2xldCBScjtpaSYmKFJyPWlpW0tyP1o6aWVdKTtjb25zdCBsaT1SciYmSm5bUnJdO2lmKGxpKWZvcihsZXQgTWk9MDtNaTxsaS5sZW5ndGg7TWkrKyl7Y29uc3QgbzA9bGlbTWldO2lmKGtuKG8wLFZyKSly''@;'; + put 'put ''ZXR1cm4gbGkuc3BsaWNlKE1pLDEpLG8wLmlzUmVtb3ZlZD0hMCwwPT09bGkubGVuZ3RoJiYobzAuYWxsUmVtb3ZlZD0hMCxKbltScl09bnVsbCwic3RyaW5nIj09dHlwZW9mIG9yKSYmKEpuW2xlKyJPTl9QUk9QRVJUWSIrb3JdPW51bGwpLG8wLnpvbmUuY2FuY2VsVGFzayhvMCkscW4/Sm46''@;'; + put 'put ''dm9pZCAwfXJldHVybiBzbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFd0W2p0XT1mdW5jdGlvbigpe2NvbnN0IEpuPXRoaXN8fEN0O2xldCBvcj1hcmd1bWVudHNbMF07cXQmJnF0LnRyYW5zZmVyRXZlbnROYW1lJiYob3I9cXQudHJhbnNmZXJFdmVudE5hbWUob3IpKTtjb25zdCBncj1bXSxL''@;'; + put 'put ''cj13dChKbixwbj9wbihvcik6b3IpO2ZvcihsZXQgVnI9MDtWcjxLci5sZW5ndGg7VnIrKyl7Y29uc3QgaWk9S3JbVnJdO2dyLnB1c2goaWkub3JpZ2luYWxEZWxlZ2F0ZT9paS5vcmlnaW5hbERlbGVnYXRlOmlpLmNhbGxiYWNrKX1yZXR1cm4gZ3J9LFd0W1F0XT1mdW5jdGlvbigpe2NvbnN0''@;'; + put 'put ''IEpuPXRoaXN8fEN0O2xldCBvcj1hcmd1bWVudHNbMF07aWYob3Ipe3F0JiZxdC50cmFuc2ZlckV2ZW50TmFtZSYmKG9yPXF0LnRyYW5zZmVyRXZlbnROYW1lKG9yKSk7Y29uc3QgZ3I9Q2Vbb3JdO2lmKGdyKXtjb25zdCBpaT1KbltncltpZV1dLFJyPUpuW2dyW1pdXTtpZihpaSl7Y29uc3Qg''@;'; + put 'put ''bGk9aWkuc2xpY2UoKTtmb3IobGV0IE1pPTA7TWk8bGkubGVuZ3RoO01pKyspe2NvbnN0IG8wPWxpW01pXTt0aGlzW3l0XS5jYWxsKHRoaXMsb3IsbzAub3JpZ2luYWxEZWxlZ2F0ZT9vMC5vcmlnaW5hbERlbGVnYXRlOm8wLmNhbGxiYWNrLG8wLm9wdGlvbnMpfX1pZihScil7Y29uc3QgbGk9''@;'; + put 'put ''UnIuc2xpY2UoKTtmb3IobGV0IE1pPTA7TWk8bGkubGVuZ3RoO01pKyspe2NvbnN0IG8wPWxpW01pXTt0aGlzW3l0XS5jYWxsKHRoaXMsb3IsbzAub3JpZ2luYWxEZWxlZ2F0ZT9vMC5vcmlnaW5hbERlbGVnYXRlOm8wLmNhbGxiYWNrLG8wLm9wdGlvbnMpfX19fWVsc2V7Y29uc3QgZ3I9T2Jq''@;'; + put 'put ''ZWN0LmtleXMoSm4pO2ZvcihsZXQgS3I9MDtLcjxnci5sZW5ndGg7S3IrKyl7Y29uc3QgaWk9UGUuZXhlYyhncltLcl0pO2xldCBScj1paSYmaWlbMV07UnImJiJyZW1vdmVMaXN0ZW5lciIhPT1SciYmdGhpc1tRdF0uY2FsbCh0aGlzLFJyKX10aGlzW1F0XS5jYWxsKHRoaXMsInJlbW92ZUxp''@;'; + put 'put ''c3RlbmVyIil9aWYocW4pcmV0dXJuIHRoaXN9LHgoV3RbVWVdLE50KSx4KFd0W3l0XSxzbiksd24mJngoV3RbUXRdLHduKSxVbiYmeChXdFtqdF0sVW4pLCEwfWxldCBGcj1bXTtmb3IobGV0IHhyPTA7eHI8SHQubGVuZ3RoO3hyKyspRnJbeHJdPVhuKEh0W3hyXSxHZSk7cmV0dXJuIEZyfWZ1''@;'; + put 'put ''bmN0aW9uIHd0KEN0LGZ0KXtpZighZnQpe2NvbnN0IHl0PVtdO2ZvcihsZXQganQgaW4gQ3Qpe2NvbnN0IFF0PVBlLmV4ZWMoanQpO2xldCBnbj1RdCYmUXRbMV07aWYoZ24mJighZnR8fGduPT09ZnQpKXtjb25zdCBkbj1DdFtqdF07aWYoZG4pZm9yKGxldCB5bj0wO3luPGRuLmxlbmd0aDt5''@;'; + put 'put ''bisrKXl0LnB1c2goZG5beW5dKX19cmV0dXJuIHl0fWxldCBIdD1DZVtmdF07SHR8fCgkZShmdCksSHQ9Q2VbZnRdKTtjb25zdCBHZT1DdFtIdFtpZV1dLFVlPUN0W0h0W1pdXTtyZXR1cm4gR2U/VWU/R2UuY29uY2F0KFVlKTpHZS5zbGljZSgpOlVlP1VlLnNsaWNlKCk6W119ZnVuY3Rpb24g''@;'; + put 'put ''dnQoQ3QsZnQpe2NvbnN0IEh0PUN0LkV2ZW50O0h0JiZIdC5wcm90b3R5cGUmJmZ0LnBhdGNoTWV0aG9kKEh0LnByb3RvdHlwZSwic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIixHZT0+ZnVuY3Rpb24oVWUseXQpe1VlW1FlXT0hMCxHZSYmR2UuYXBwbHkoVWUseXQpfSl9ZnVuY3Rpb24gQXQo''@;'; + put 'put ''Q3QsZnQsSHQsR2UsVWUpe2NvbnN0IHl0PVpvbmUuX19zeW1ib2xfXyhHZSk7aWYoZnRbeXRdKXJldHVybjtjb25zdCBqdD1mdFt5dF09ZnRbR2VdO2Z0W0dlXT1mdW5jdGlvbihRdCxnbixkbil7cmV0dXJuIGduJiZnbi5wcm90b3R5cGUmJlVlLmZvckVhY2goZnVuY3Rpb24oeW4pe2NvbnN0''@;'; + put 'put ''IGxuPWAke0h0fS4ke0dlfTo6YCt5bixObj1nbi5wcm90b3R5cGU7dHJ5e2lmKE5uLmhhc093blByb3BlcnR5KHluKSl7Y29uc3QgYm49Q3QuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5uLHluKTtibiYmYm4udmFsdWU/KGJuLnZhbHVlPUN0LndyYXBXaXRoQ3VycmVudFpvbmUo''@;'; + put 'put ''Ym4udmFsdWUsbG4pLEN0Ll9yZWRlZmluZVByb3BlcnR5KGduLnByb3RvdHlwZSx5bixibikpOk5uW3luXSYmKE5uW3luXT1DdC53cmFwV2l0aEN1cnJlbnRab25lKE5uW3luXSxsbikpfWVsc2UgTm5beW5dJiYoTm5beW5dPUN0LndyYXBXaXRoQ3VycmVudFpvbmUoTm5beW5dLGxuKSl9Y2F0''@;'; + put 'put ''Y2goYm4pe319KSxqdC5jYWxsKGZ0LFF0LGduLGRuKX0sQ3QuYXR0YWNoT3JpZ2luVG9QYXRjaGVkKGZ0W0dlXSxqdCl9ZnVuY3Rpb24gbXQoQ3QsZnQsSHQpe2lmKCFIdHx8MD09PUh0Lmxlbmd0aClyZXR1cm4gZnQ7Y29uc3QgR2U9SHQuZmlsdGVyKHl0PT55dC50YXJnZXQ9PT1DdCk7aWYo''@;'; + put 'put ''IUdlfHwwPT09R2UubGVuZ3RoKXJldHVybiBmdDtjb25zdCBVZT1HZVswXS5pZ25vcmVQcm9wZXJ0aWVzO3JldHVybiBmdC5maWx0ZXIoeXQ9Pi0xPT09VWUuaW5kZXhPZih5dCkpfWZ1bmN0aW9uIGh0KEN0LGZ0LEh0LEdlKXtDdCYmaGUoQ3QsbXQoQ3QsZnQsSHQpLEdlKX1mdW5jdGlvbiBC''@;'; + put 'put ''dChDdCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEN0KS5maWx0ZXIoZnQ9PmZ0LnN0YXJ0c1dpdGgoIm9uIikmJmZ0Lmxlbmd0aD4yKS5tYXAoZnQ9PmZ0LnN1YnN0cmluZygyKSl9Wm9uZS5fX2xvYWRfcGF0Y2goInV0aWwiLChDdCxmdCxIdCk9Pntjb25zdCBHZT1CdChD''@;'; + put 'put ''dCk7SHQucGF0Y2hPblByb3BlcnRpZXM9aGUsSHQucGF0Y2hNZXRob2Q9bmUsSHQuYmluZEFyZ3VtZW50cz1vZSxIdC5wYXRjaE1hY3JvVGFzaz10ZTtjb25zdCBVZT1mdC5fX3N5bWJvbF9fKCJCTEFDS19MSVNURURfRVZFTlRTIikseXQ9ZnQuX19zeW1ib2xfXygiVU5QQVRDSEVEX0VWRU5U''@;'; + put 'put ''UyIpO0N0W3l0XSYmKEN0W1VlXT1DdFt5dF0pLEN0W1VlXSYmKGZ0W1VlXT1mdFt5dF09Q3RbVWVdKSxIdC5wYXRjaEV2ZW50UHJvdG90eXBlPXZ0LEh0LnBhdGNoRXZlbnRUYXJnZXQ9Z3QsSHQuaXNJRU9yRWRnZT1TLEh0Lk9iamVjdERlZmluZVByb3BlcnR5PUplLEh0Lk9iamVjdEdldE93''@;'; + put 'put ''blByb3BlcnR5RGVzY3JpcHRvcj1YZSxIdC5PYmplY3RDcmVhdGU9bWUsSHQuQXJyYXlTbGljZT1CLEh0LnBhdGNoQ2xhc3M9eixIdC53cmFwV2l0aEN1cnJlbnRab25lPVksSHQuZmlsdGVyUHJvcGVydGllcz1tdCxIdC5hdHRhY2hPcmlnaW5Ub1BhdGNoZWQ9eCxIdC5fcmVkZWZpbmVQcm9w''@;'; + put 'put ''ZXJ0eT1PYmplY3QuZGVmaW5lUHJvcGVydHksSHQucGF0Y2hDYWxsYmFja3M9QXQsSHQuZ2V0R2xvYmFsT2JqZWN0cz0oKT0+KHtnbG9iYWxTb3VyY2VzOkRlLHpvbmVTeW1ib2xFdmVudE5hbWVzOkNlLGV2ZW50TmFtZXM6R2UsaXNCcm93c2VyOmtlLGlzTWl4OlNlLGlzTm9kZTpBZSxUUlVF''@;'; + put 'put ''X1NUUjpaLEZBTFNFX1NUUjppZSxaT05FX1NZTUJPTF9QUkVGSVg6bGUsQUREX0VWRU5UX0xJU1RFTkVSX1NUUjpFLFJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFI6TWV9KX0pO2NvbnN0IF90PU4oInpvbmVUYXNrIik7ZnVuY3Rpb24gdHQoQ3QsZnQsSHQsR2Upe2xldCBVZT1udWxsLHl0PW51''@;'; + put 'put ''bGw7SHQrPUdlO2NvbnN0IGp0PXt9O2Z1bmN0aW9uIFF0KGRuKXtjb25zdCB5bj1kbi5kYXRhO3JldHVybiB5bi5hcmdzWzBdPWZ1bmN0aW9uKCl7cmV0dXJuIGRuLmludm9rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHluLmhhbmRsZUlkPVVlLmFwcGx5KEN0LHluLmFyZ3MpLGRufWZ1bmN0''@;'; + put 'put ''aW9uIGduKGRuKXtyZXR1cm4geXQuY2FsbChDdCxkbi5kYXRhLmhhbmRsZUlkKX1VZT1uZShDdCxmdCs9R2UsZG49PmZ1bmN0aW9uKHluLGxuKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgbG5bMF0pe2NvbnN0IE5uPXtpc1BlcmlvZGljOiJJbnRlcnZhbCI9PT1HZSxkZWxheToiVGltZW91dCI9''@;'; + put 'put ''PT1HZXx8IkludGVydmFsIj09PUdlP2xuWzFdfHwwOnZvaWQgMCxhcmdzOmxufSxibj1sblswXTtsblswXT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gYm4uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7Tm4uaXNQZXJpb2RpY3x8KCJudW1iZXIiPT10eXBlb2YgTm4uaGFuZGxlSWQ/ZGVs''@;'; + put 'put ''ZXRlIGp0W05uLmhhbmRsZUlkXTpObi5oYW5kbGVJZCYmKE5uLmhhbmRsZUlkW190XT1udWxsKSl9fTtjb25zdCBlcj1XKGZ0LGxuWzBdLE5uLFF0LGduKTtpZighZXIpcmV0dXJuIGVyO2NvbnN0IHNyPWVyLmRhdGEuaGFuZGxlSWQ7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBzcj9qdFtzcl09''@;'; + put 'put ''ZXI6c3ImJihzcltfdF09ZXIpLHNyJiZzci5yZWYmJnNyLnVucmVmJiYiZnVuY3Rpb24iPT10eXBlb2Ygc3IucmVmJiYiZnVuY3Rpb24iPT10eXBlb2Ygc3IudW5yZWYmJihlci5yZWY9c3IucmVmLmJpbmQoc3IpLGVyLnVucmVmPXNyLnVucmVmLmJpbmQoc3IpKSwibnVtYmVyIj09dHlwZW9m''@;'; + put 'put ''IHNyfHxzcj9zcjplcn1yZXR1cm4gZG4uYXBwbHkoQ3QsbG4pfSkseXQ9bmUoQ3QsSHQsZG49PmZ1bmN0aW9uKHluLGxuKXtjb25zdCBObj1sblswXTtsZXQgYm47Im51bWJlciI9PXR5cGVvZiBObj9ibj1qdFtObl06KGJuPU5uJiZObltfdF0sYm58fChibj1ObikpLGJuJiYic3RyaW5nIj09''@;'; + put 'put ''dHlwZW9mIGJuLnR5cGU/Im5vdFNjaGVkdWxlZCIhPT1ibi5zdGF0ZSYmKGJuLmNhbmNlbEZuJiZibi5kYXRhLmlzUGVyaW9kaWN8fDA9PT1ibi5ydW5Db3VudCkmJigibnVtYmVyIj09dHlwZW9mIE5uP2RlbGV0ZSBqdFtObl06Tm4mJihObltfdF09bnVsbCksYm4uem9uZS5jYW5jZWxUYXNr''@;'; + put 'put ''KGJuKSk6ZG4uYXBwbHkoQ3QsbG4pfSl9Wm9uZS5fX2xvYWRfcGF0Y2goImxlZ2FjeSIsQ3Q9Pntjb25zdCBmdD1DdFtab25lLl9fc3ltYm9sX18oImxlZ2FjeVBhdGNoIildO2Z0JiZmdCgpfSksWm9uZS5fX2xvYWRfcGF0Y2goInF1ZXVlTWljcm90YXNrIiwoQ3QsZnQsSHQpPT57SHQucGF0''@;'; + put 'put ''Y2hNZXRob2QoQ3QsInF1ZXVlTWljcm90YXNrIixHZT0+ZnVuY3Rpb24oVWUseXQpe2Z0LmN1cnJlbnQuc2NoZWR1bGVNaWNyb1Rhc2soInF1ZXVlTWljcm90YXNrIix5dFswXSl9KX0pLFpvbmUuX19sb2FkX3BhdGNoKCJ0aW1lcnMiLEN0PT57Y29uc3QgSHQ9ImNsZWFyIjt0dChDdCwic2V0''@;'; + put 'put ''IixIdCwiVGltZW91dCIpLHR0KEN0LCJzZXQiLEh0LCJJbnRlcnZhbCIpLHR0KEN0LCJzZXQiLEh0LCJJbW1lZGlhdGUiKX0pLFpvbmUuX19sb2FkX3BhdGNoKCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLEN0PT57dHQoQ3QsInJlcXVlc3QiLCJjYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpLHR0''@;'; + put 'put ''KEN0LCJtb3pSZXF1ZXN0IiwibW96Q2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKSx0dChDdCwid2Via2l0UmVxdWVzdCIsIndlYmtpdENhbmNlbCIsIkFuaW1hdGlvbkZyYW1lIil9KSxab25lLl9fbG9hZF9wYXRjaCgiYmxvY2tpbmciLChDdCxmdCk9Pntjb25zdCBIdD1bImFsZXJ0IiwicHJv''@;'; + put 'put ''bXB0IiwiY29uZmlybSJdO2ZvcihsZXQgR2U9MDtHZTxIdC5sZW5ndGg7R2UrKyluZShDdCxIdFtHZV0sKHl0LGp0LFF0KT0+ZnVuY3Rpb24oZ24sZG4pe3JldHVybiBmdC5jdXJyZW50LnJ1bih5dCxDdCxkbixRdCl9KX0pLFpvbmUuX19sb2FkX3BhdGNoKCJFdmVudFRhcmdldCIsKEN0LGZ0''@;'; + put 'put ''LEh0KT0+eyhmdW5jdGlvbiBMdChDdCxmdCl7ZnQucGF0Y2hFdmVudFByb3RvdHlwZShDdCxmdCl9KShDdCxIdCksZnVuY3Rpb24gYXQoQ3QsZnQpe2lmKFpvbmVbZnQuc3ltYm9sKCJwYXRjaEV2ZW50VGFyZ2V0IildKXJldHVybjtjb25zdHtldmVudE5hbWVzOkh0LHpvbmVTeW1ib2xFdmVu''@;'; + put 'put ''dE5hbWVzOkdlLFRSVUVfU1RSOlVlLEZBTFNFX1NUUjp5dCxaT05FX1NZTUJPTF9QUkVGSVg6anR9PWZ0LmdldEdsb2JhbE9iamVjdHMoKTtmb3IobGV0IGduPTA7Z248SHQubGVuZ3RoO2duKyspe2NvbnN0IGRuPUh0W2duXSxObj1qdCsoZG4reXQpLGJuPWp0KyhkbitVZSk7R2VbZG5dPXt9''@;'; + put 'put ''LEdlW2RuXVt5dF09Tm4sR2VbZG5dW1VlXT1ibn1jb25zdCBRdD1DdC5FdmVudFRhcmdldDtRdCYmUXQucHJvdG90eXBlJiZmdC5wYXRjaEV2ZW50VGFyZ2V0KEN0LGZ0LFtRdCYmUXQucHJvdG90eXBlXSl9KEN0LEh0KTtjb25zdCBHZT1DdC5YTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0O0dl''@;'; + put 'put ''JiZHZS5wcm90b3R5cGUmJkh0LnBhdGNoRXZlbnRUYXJnZXQoQ3QsSHQsW0dlLnByb3RvdHlwZV0pfSksWm9uZS5fX2xvYWRfcGF0Y2goIk11dGF0aW9uT2JzZXJ2ZXIiLChDdCxmdCxIdCk9Pnt6KCJNdXRhdGlvbk9ic2VydmVyIikseigiV2ViS2l0TXV0YXRpb25PYnNlcnZlciIpfSksWm9u''@;'; + put 'put ''ZS5fX2xvYWRfcGF0Y2goIkludGVyc2VjdGlvbk9ic2VydmVyIiwoQ3QsZnQsSHQpPT57eigiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiKX0pLFpvbmUuX19sb2FkX3BhdGNoKCJGaWxlUmVhZGVyIiwoQ3QsZnQsSHQpPT57eigiRmlsZVJlYWRlciIpfSksWm9uZS5fX2xvYWRfcGF0Y2goIm9uX3By''@;'; + put 'put ''b3BlcnR5IiwoQ3QsZnQsSHQpPT57IWZ1bmN0aW9uIG9uKEN0LGZ0KXtpZihBZSYmIVNlfHxab25lW0N0LnN5bWJvbCgicGF0Y2hFdmVudHMiKV0pcmV0dXJuO2NvbnN0IEh0PWZ0Ll9fWm9uZV9pZ25vcmVfb25fcHJvcGVydGllcztsZXQgR2U9W107aWYoa2Upe2NvbnN0IFVlPXdpbmRvdztH''@;'; + put 'put ''ZT1HZS5jb25jYXQoWyJEb2N1bWVudCIsIlNWR0VsZW1lbnQiLCJFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJIVE1MQm9keUVsZW1lbnQiLCJIVE1MTWVkaWFFbGVtZW50IiwiSFRNTEZyYW1lU2V0RWxlbWVudCIsIkhUTUxGcmFtZUVsZW1lbnQiLCJIVE1MSUZyYW1lRWxlbWVudCIsIkhUTUxN''@;'; + put 'put ''YXJxdWVlRWxlbWVudCIsIldvcmtlciJdKTtjb25zdCB5dD1mdW5jdGlvbiBUKCl7dHJ5e2NvbnN0IEN0PXEubmF2aWdhdG9yLnVzZXJBZ2VudDtpZigtMSE9PUN0LmluZGV4T2YoIk1TSUUgIil8fC0xIT09Q3QuaW5kZXhPZigiVHJpZGVudC8iKSlyZXR1cm4hMH1jYXRjaChDdCl7fXJldHVy''@;'; + put 'put ''biExfSgpP1t7dGFyZ2V0OlVlLGlnbm9yZVByb3BlcnRpZXM6WyJlcnJvciJdfV06W107aHQoVWUsQnQoVWUpLEh0JiZIdC5jb25jYXQoeXQpLEwoVWUpKX1HZT1HZS5jb25jYXQoWyJYTUxIdHRwUmVxdWVzdCIsIlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQiLCJJREJJbmRleCIsIklEQlJl''@;'; + put 'put ''cXVlc3QiLCJJREJPcGVuREJSZXF1ZXN0IiwiSURCRGF0YWJhc2UiLCJJREJUcmFuc2FjdGlvbiIsIklEQkN1cnNvciIsIldlYlNvY2tldCJdKTtmb3IobGV0IFVlPTA7VWU8R2UubGVuZ3RoO1VlKyspe2NvbnN0IHl0PWZ0W0dlW1VlXV07eXQmJnl0LnByb3RvdHlwZSYmaHQoeXQucHJvdG90''@;'; + put 'put ''eXBlLEJ0KHl0LnByb3RvdHlwZSksSHQpfX0oSHQsQ3QpfSksWm9uZS5fX2xvYWRfcGF0Y2goImN1c3RvbUVsZW1lbnRzIiwoQ3QsZnQsSHQpPT57IWZ1bmN0aW9uIGV0KEN0LGZ0KXtjb25zdHtpc0Jyb3dzZXI6SHQsaXNNaXg6R2V9PWZ0LmdldEdsb2JhbE9iamVjdHMoKTsoSHR8fEdlKSYm''@;'; + put 'put ''Q3QuY3VzdG9tRWxlbWVudHMmJiJjdXN0b21FbGVtZW50cyJpbiBDdCYmZnQucGF0Y2hDYWxsYmFja3MoZnQsQ3QuY3VzdG9tRWxlbWVudHMsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIixbImNvbm5lY3RlZENhbGxiYWNrIiwiZGlzY29ubmVjdGVkQ2FsbGJhY2siLCJhZG9wdGVkQ2FsbGJh''@;'; + put 'put ''Y2siLCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siXSl9KEN0LEh0KX0pLFpvbmUuX19sb2FkX3BhdGNoKCJYSFIiLChDdCxmdCk9PnshZnVuY3Rpb24gZ24oZG4pe2NvbnN0IHluPWRuLlhNTEh0dHBSZXF1ZXN0O2lmKCF5bilyZXR1cm47Y29uc3QgbG49eW4ucHJvdG90eXBlO2xldCBibj1s''@;'; + put 'put ''bltVXSxlcj1sbltRXTtpZighYm4pe2NvbnN0IEtuPWRuLlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7aWYoS24pe2NvbnN0IE50PUtuLnByb3RvdHlwZTtibj1OdFtVXSxlcj1OdFtRXX19Y29uc3Qgc3I9InJlYWR5c3RhdGVjaGFuZ2UiLFhuPSJzY2hlZHVsZWQiO2Z1bmN0aW9uIEZyKEtu''@;'; + put 'put ''KXtjb25zdCBOdD1Lbi5kYXRhLHNuPU50LnRhcmdldDtzblt5dF09ITEsc25bUXRdPSExO2NvbnN0IFVuPXNuW1VlXTtibnx8KGJuPXNuW1VdLGVyPXNuW1FdKSxVbiYmZXIuY2FsbChzbixzcixVbik7Y29uc3Qgd249c25bVWVdPSgpPT57aWYoc24ucmVhZHlTdGF0ZT09PXNuLkRPTkUpaWYo''@;'; + put 'put ''IU50LmFib3J0ZWQmJnNuW3l0XSYmS24uc3RhdGU9PT1Ybil7Y29uc3Qgem49c25bZnQuX19zeW1ib2xfXygibG9hZGZhbHNlIildO2lmKDAhPT1zbi5zdGF0dXMmJnpuJiZ6bi5sZW5ndGg+MCl7Y29uc3QgVHI9S24uaW52b2tlO0tuLmludm9rZT1mdW5jdGlvbigpe2NvbnN0IEJuPXNuW2Z0''@;'; + put 'put ''Ll9fc3ltYm9sX18oImxvYWRmYWxzZSIpXTtmb3IobGV0IGtyPTA7a3I8Qm4ubGVuZ3RoO2tyKyspQm5ba3JdPT09S24mJkJuLnNwbGljZShrciwxKTshTnQuYWJvcnRlZCYmS24uc3RhdGU9PT1YbiYmVHIuY2FsbChLbil9LHpuLnB1c2goS24pfWVsc2UgS24uaW52b2tlKCl9ZWxzZSFOdC5h''@;'; + put 'put ''Ym9ydGVkJiYhMT09PXNuW3l0XSYmKHNuW1F0XT0hMCl9O3JldHVybiBibi5jYWxsKHNuLHNyLHduKSxzbltIdF18fChzbltIdF09S24pLFd0LmFwcGx5KHNuLE50LmFyZ3MpLHNuW3l0XT0hMCxLbn1mdW5jdGlvbiB4cigpe31mdW5jdGlvbiBxdChLbil7Y29uc3QgTnQ9S24uZGF0YTtyZXR1''@;'; + put 'put ''cm4gTnQuYWJvcnRlZD0hMCxwbi5hcHBseShOdC50YXJnZXQsTnQuYXJncyl9Y29uc3QgcHI9bmUobG4sIm9wZW4iLCgpPT5mdW5jdGlvbihLbixOdCl7cmV0dXJuIEtuW0dlXT0wPT1OdFsyXSxLbltqdF09TnRbMV0scHIuYXBwbHkoS24sTnQpfSksQW49TigiZmV0Y2hUYXNrQWJvcnRpbmci''@;'; + put 'put ''KSxxbj1OKCJmZXRjaFRhc2tTY2hlZHVsaW5nIiksV3Q9bmUobG4sInNlbmQiLCgpPT5mdW5jdGlvbihLbixOdCl7aWYoITA9PT1mdC5jdXJyZW50W3FuXXx8S25bR2VdKXJldHVybiBXdC5hcHBseShLbixOdCk7e2NvbnN0IHNuPXt0YXJnZXQ6S24sdXJsOktuW2p0XSxpc1BlcmlvZGljOiEx''@;'; + put 'put ''LGFyZ3M6TnQsYWJvcnRlZDohMX0sVW49VygiWE1MSHR0cFJlcXVlc3Quc2VuZCIseHIsc24sRnIscXQpO0tuJiYhMD09PUtuW1F0XSYmIXNuLmFib3J0ZWQmJlVuLnN0YXRlPT09WG4mJlVuLmludm9rZSgpfX0pLHBuPW5lKGxuLCJhYm9ydCIsKCk9PmZ1bmN0aW9uKEtuLE50KXtjb25zdCBz''@;'; + put 'put ''bj1mdW5jdGlvbiBObihLbil7cmV0dXJuIEtuW0h0XX0oS24pO2lmKHNuJiYic3RyaW5nIj09dHlwZW9mIHNuLnR5cGUpe2lmKG51bGw9PXNuLmNhbmNlbEZufHxzbi5kYXRhJiZzbi5kYXRhLmFib3J0ZWQpcmV0dXJuO3NuLnpvbmUuY2FuY2VsVGFzayhzbil9ZWxzZSBpZighMD09PWZ0LmN1''@;'; + put 'put ''cnJlbnRbQW5dKXJldHVybiBwbi5hcHBseShLbixOdCl9KX0oQ3QpO2NvbnN0IEh0PU4oInhoclRhc2siKSxHZT1OKCJ4aHJTeW5jIiksVWU9TigieGhyTGlzdGVuZXIiKSx5dD1OKCJ4aHJTY2hlZHVsZWQiKSxqdD1OKCJ4aHJVUkwiKSxRdD1OKCJ4aHJFcnJvckJlZm9yZVNjaGVkdWxlZCIp''@;'; + put 'put ''fSksWm9uZS5fX2xvYWRfcGF0Y2goImdlb2xvY2F0aW9uIixDdD0+e0N0Lm5hdmlnYXRvciYmQ3QubmF2aWdhdG9yLmdlb2xvY2F0aW9uJiZmdW5jdGlvbiBjZShDdCxmdCl7Y29uc3QgSHQ9Q3QuY29uc3RydWN0b3IubmFtZTtmb3IobGV0IEdlPTA7R2U8ZnQubGVuZ3RoO0dlKyspe2NvbnN0''@;'; + put 'put ''IFVlPWZ0W0dlXSx5dD1DdFtVZV07aWYoeXQpe2lmKCFkZShYZShDdCxVZSkpKWNvbnRpbnVlO0N0W1VlXT0oUXQ9Pntjb25zdCBnbj1mdW5jdGlvbigpe3JldHVybiBRdC5hcHBseSh0aGlzLG9lKGFyZ3VtZW50cyxIdCsiLiIrVWUpKX07cmV0dXJuIHgoZ24sUXQpLGdufSkoeXQpfX19KEN0''@;'; + put 'put ''Lm5hdmlnYXRvci5nZW9sb2NhdGlvbixbImdldEN1cnJlbnRQb3NpdGlvbiIsIndhdGNoUG9zaXRpb24iXSl9KSxab25lLl9fbG9hZF9wYXRjaCgiUHJvbWlzZVJlamVjdGlvbkV2ZW50IiwoQ3QsZnQpPT57ZnVuY3Rpb24gSHQoR2Upe3JldHVybiBmdW5jdGlvbihVZSl7d3QoQ3QsR2UpLmZv''@;'; + put 'put ''ckVhY2goanQ9Pntjb25zdCBRdD1DdC5Qcm9taXNlUmVqZWN0aW9uRXZlbnQ7aWYoUXQpe2NvbnN0IGduPW5ldyBRdChHZSx7cHJvbWlzZTpVZS5wcm9taXNlLHJlYXNvbjpVZS5yZWplY3Rpb259KTtqdC5pbnZva2UoZ24pfX0pfX1DdC5Qcm9taXNlUmVqZWN0aW9uRXZlbnQmJihmdFtOKCJ1''@;'; + put 'put ''bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpXT1IdCgidW5oYW5kbGVkcmVqZWN0aW9uIiksZnRbTigicmVqZWN0aW9uSGFuZGxlZEhhbmRsZXIiKV09SHQoInJlamVjdGlvbmhhbmRsZWQiKSl9KX0sNTQyNjE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUwoMTIw''@;'; + put 'put ''MzApO0ludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlLmZvcm1hdFRvUGFydHM9ZnVuY3Rpb24oZGUpe2xldCB2ZT10aGlzLnJlc29sdmVkT3B0aW9ucygpLEFlPWZ1bmN0aW9uIGNlKGRlKXt2YXIgVGUsRWUsaGUsTyx6LHZlPWRlLmF2YWlsYWJsZUZvcm1hdHMsQWU9ZGUudGltZUZvcm1h''@;'; + put 'put ''dHMsa2U9ZGUuZGF0ZUZvcm1hdHMsU2U9ZGUubWVkaXVtLEllPVtdLG5lPVtdLHRlPVtdO2Z1bmN0aW9uIHgoUCxWKXt2YXIgVD1uZXcgQXJyYXkoKFAubWF0Y2goL00vZyl8fFtdKS5sZW5ndGgrMSksUz1uZXcgQXJyYXkoKFAubWF0Y2goL0UvZyl8fFtdKS5sZW5ndGgrMSk7cmV0dXJuIFQu''@;'; + put 'put ''bGVuZ3RoPjImJihWPVYucmVwbGFjZSgvKE18TCkrLyxULmpvaW4oIiQxIikpKSxTLmxlbmd0aD4yJiYoVj1WLnJlcGxhY2UoLyhbRWVjXSkrLyxTLmpvaW4oIiQxIikpKSxWfWZvcihUZSBpbiB2ZSl2ZS5oYXNPd25Qcm9wZXJ0eShUZSkmJigoaGU9b2UoRWU9eChUZSx2ZVtUZV0pKSkmJihJ''@;'; + put 'put ''ZS5wdXNoKGhlKSxKKGhlKT90ZS5wdXNoKEVlKTpzZShoZSkmJm5lLnB1c2goRWUpKSk7Zm9yKE89MDtPPG5lLmxlbmd0aDtPKz0xKWZvcih6PTA7ejx0ZS5sZW5ndGg7eis9MSkoaGU9b2UoRWU9U2UucmVwbGFjZSgiezB9IixuZVtPXSkucmVwbGFjZSgiezF9Iix0ZVt6XSkucmVwbGFjZSgv''@;'; + put 'put ''XlssXHNdK3xbLFxzXSskL2dpLCIiKSkpJiZJZS5wdXNoKGhlKTtmb3IoVGUgaW4gQWUpQWUuaGFzT3duUHJvcGVydHkoVGUpJiYoKGhlPW9lKEVlPXgoVGUsQWVbVGVdKSkpJiZJZS5wdXNoKGhlKSk7Zm9yKFRlIGluIGtlKWtlLmhhc093blByb3BlcnR5KFRlKSYmKChoZT1vZShFZT14KFRl''@;'; + put 'put ''LGtlW1RlXSkpKSYmSWUucHVzaChoZSkpO3JldHVybiBJZX0obWUuZGF0ZS5mb3JtYXRzKSxrZT17fTtmb3IodmFyIFNlIGluIFEpRS5jYWxsKFEsU2UpJiYoa2VbIltbIitTZSsiXV0iXT12ZVtTZV0pO2xldCBUZT1mdW5jdGlvbiBaKGRlLHZlLEFlKXtmb3IodmFyIG5lLHo9LTEvMCx0ZT0w''@;'; + put 'put ''LHg9dmUubGVuZ3RoO3RlPHg7KXt2YXIgUD12ZVt0ZV0sVj0wO2Zvcih2YXIgVCBpbiBRKWlmKEUuY2FsbChRLFQpKXt2YXIgUz1kZVsiW1siK1QrIl1dIl0sRj1FLmNhbGwoUCxUKT9QW1RdOnZvaWQgMDtpZih2b2lkIDA9PT1TJiZ2b2lkIDAhPT1GKVYtPTIwO2Vsc2UgaWYodm9pZCAwIT09''@;'; + put 'put ''UyYmdm9pZCAwPT09RilWLT0xMjA7ZWxzZXt2YXIgeWU9WyIyLWRpZ2l0IiwibnVtZXJpYyIsIm5hcnJvdyIsInNob3J0IiwibG9uZyJdLENlPU1lLmNhbGwoeWUsUyksRGU9TWUuY2FsbCh5ZSxGKSxQZT1NYXRoLm1heChNYXRoLm1pbihEZS1DZSwyKSwtMik7QWUmJigoIm51bWVyaWMiPT09''@;'; + put 'put ''U3x8IjItZGlnaXQiPT09UykmJiJudW1lcmljIiE9PUYmJiIyLWRpZ2l0IiE9PUZ8fCJudW1lcmljIiE9PVMmJiIyLWRpZ2l0IiE9PVMmJigiMi1kaWdpdCI9PT1GfHwibnVtZXJpYyI9PT1GKSkmJihWLT04KSwyPT09UGU/Vi09NjoxPT09UGU/Vi09MzotMT09PVBlP1YtPTY6LTI9PT1QZSYm''@;'; + put 'put ''KFYtPTgpfX1WPnomJih6PVYsbmU9UCksdGUrK31yZXR1cm4gbmV9KGtlLEFlKTtyZXR1cm4gZnVuY3Rpb24gQihkZSx2ZSl7aWYoIWlzRmluaXRlKHZlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB2YWxpZCBkYXRlIHBhc3NlZCB0byBmb3JtYXRUb1BhcnRzIik7Zm9yKHZhciBu''@;'; + put 'put ''ZSxBZT0iZW4tVVMiLGtlPWRlLnBhdHRlcm4sVGU9KG5ldyBJbnRsLk51bWJlckZvcm1hdChbQWVdLHt1c2VHcm91cGluZzohMX0pLG5ldyBJbnRsLk51bWJlckZvcm1hdChbQWVdLHttaW5pbXVtSW50ZWdlckRpZ2l0czoyLHVzZUdyb3VwaW5nOiExfSksZnVuY3Rpb24gaWUoZGUsdmUsQWUp''@;'; + put 'put ''e3ZhciBrZT1uZXcgRGF0ZShkZSksU2U9ImdldCIrKEFlfHwiIik7cmV0dXJueyJbW3dlZWtkYXldXSI6a2VbU2UrIkRheSJdKCksIltbZXJhXV0iOisoa2VbU2UrIkZ1bGxZZWFyIl0oKT49MCksIltbeWVhcl1dIjprZVtTZSsiRnVsbFllYXIiXSgpLCJbW21vbnRoXV0iOmtlW1NlKyJNb250''@;'; + put 'put ''aCJdKCksIltbZGF5XV0iOmtlW1NlKyJEYXRlIl0oKSwiW1tob3VyXV0iOmtlW1NlKyJIb3VycyJdKCksIltbbWludXRlXV0iOmtlW1NlKyJNaW51dGVzIl0oKSwiW1tzZWNvbmRdXSI6a2VbU2UrIlNlY29uZHMiXSgpLCJbW2luRFNUXV0iOiExfX0odmUpKSxFZT0iZ3JlZ29yeSIsaGU9bWUu''@;'; + put 'put ''ZGF0ZS5jYWxlbmRhcnMsTz1bXSx6PS97KFtefV0rKX0vZyx0ZT0wO251bGwhPT0obmU9ei5leGVjKGtlKSk7KXt0ZTxuZS5pbmRleCYmTy5wdXNoKHt0eXBlOiJzZXBhcmF0b3IiLHZhbHVlOmtlLnN1YnN0cih0ZSxuZS5pbmRleC10ZSl9KTt2YXIgeD1uZVsxXSxQPW51bGw7aWYoRS5jYWxs''@;'; + put 'put ''KGRlLHgpKXt2YXIgVixUPWRlW3hdLFM9VGVbIltbIit4KyJdXSJdO2lmKCJ5ZWFyIj09PXgmJlM8PTA/Uz0xLVM6Im1vbnRoIj09PXg/UysrOiJob3VyIj09PXgmJiEwPT09ZGVbIltbaG91cjEyXV0iXSYmKFY9KFMlPTEyKSE9PVRlWyJbWyIreCsiXV0iXSwwPT09UyYmITA9PT1kZVsiW1to''@;'; + put 'put ''b3VyTm8wXV0iXSYmKFM9MTIpKSwibnVtZXJpYyI9PT1UKVA9UztlbHNlIGlmKCIyLWRpZ2l0Ij09PVQpKFA9UykubGVuZ3RoPjImJihQPVAuc2xpY2UoLTIpKTtlbHNlIGlmKFQgaW4gVSlzd2l0Y2goeCl7Y2FzZSJtb250aCI6UD1sZShoZSxFZSwibW9udGhzIixULFRlWyJbWyIreCsiXV0i''@;'; + put 'put ''XSk7YnJlYWs7Y2FzZSJ3ZWVrZGF5Ijp0cnl7UD1sZShoZSxFZSwiZGF5cyIsVCxUZVsiW1siK3grIl1dIl0pfWNhdGNoKEYpe3Rocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgd2Vla2RheSBkYXRhIGZvciBsb2NhbGUgIitBZSl9YnJlYWs7Y2FzZSJ0aW1lWm9uZU5hbWUiOlA9IiI7''@;'; + put 'put ''YnJlYWs7ZGVmYXVsdDpQPVRlWyJbWyIreCsiXV0iXX19ZWxzZSJhbXBtIj09PXgmJihQPWxlKGhlLEVlLCJkYXlQZXJpb2RzIixWPyJwbSI6ImFtIikpO251bGwhPT1QJiYoTy5wdXNoKHt0eXBlOm5lWzFdLHZhbHVlOlB9KSx0ZT1uZS5pbmRleCtuZVswXS5sZW5ndGgpfXJldHVybiB0ZTxr''@;'; + put 'put ''ZS5sZW5ndGgmJk8ucHVzaCh7dHlwZToic2VwYXJhdG9yIix2YWx1ZTprZS5zdWJzdHIodGUpfSksT30oVGUsZGUpfTt2YXIgRT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LE1lPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLFU9T2JqZWN0LmNyZWF0ZShudWxsLHtuYXJyb3c6e30s''@;'; + put 'put ''c2hvcnQ6e30sbG9uZzp7fX0pLFE9e3dlZWtkYXk6WyJuYXJyb3ciLCJzaG9ydCIsImxvbmciXSxlcmE6WyJuYXJyb3ciLCJzaG9ydCIsImxvbmciXSx5ZWFyOlsiMi1kaWdpdCIsIm51bWVyaWMiXSxtb250aDpbIjItZGlnaXQiLCJudW1lcmljIiwibmFycm93Iiwic2hvcnQiLCJsb25nIl0s''@;'; + put 'put ''ZGF5OlsiMi1kaWdpdCIsIm51bWVyaWMiXSxob3VyOlsiMi1kaWdpdCIsIm51bWVyaWMiXSxtaW51dGU6WyIyLWRpZ2l0IiwibnVtZXJpYyJdLHNlY29uZDpbIjItZGlnaXQiLCJudW1lcmljIl0sdGltZVpvbmVOYW1lOlsic2hvcnQiLCJsb25nIl19O2Z1bmN0aW9uIGxlKGRlLHZlLEFlLGtl''@;'; + put 'put ''LFNlKXt2YXIgSWU9ZGVbdmVdJiZkZVt2ZV1bQWVdP2RlW3ZlXVtBZV06ZGUuZ3JlZ29yeVtBZV0sVGU9e25hcnJvdzpbInNob3J0IiwibG9uZyJdLHNob3J0OlsibG9uZyIsIm5hcnJvdyJdLGxvbmc6WyJzaG9ydCIsIm5hcnJvdyJdfSxFZT1FLmNhbGwoSWUsa2UpP0llW2tlXTpFLmNhbGwo''@;'; + put 'put ''SWUsVGVba2VdWzBdKT9JZVtUZVtrZV1bMF1dOkllW1RlW2tlXVsxXV07cmV0dXJuIG51bGwhPVNlP0VlW1NlXTpFZX12YXIgWT0vKD86W0VlY117MSw2fXxHezEsNX18KD86W3lZdV0rfFV7MSw1fSl8W01MXXsxLDV9fGR7MSwyfXxhfFtoa0hLXXsxLDJ9fG17MSwyfXxzezEsMn18ensxLDR9''@;'; + put 'put ''KSg/PShbXiddKidbXiddKicpKlteJ10qJCkvZyxXPS9bUXhYVk92WkFTamdGRHdXSVFxSF0vLE49e21vbnRoOlsibnVtZXJpYyIsIjItZGlnaXQiLCJzaG9ydCIsImxvbmciLCJuYXJyb3ciXSx3ZWVrZGF5Olsic2hvcnQiLCJzaG9ydCIsInNob3J0IiwibG9uZyIsIm5hcnJvdyJdLGVyYTpb''@;'; + put 'put ''InNob3J0Iiwic2hvcnQiLCJzaG9ydCIsImxvbmciLCJuYXJyb3ciXX0sZWU9WyJ3ZWVrZGF5IiwiZXJhIiwieWVhciIsIm1vbnRoIiwiZGF5Il0scT1bImhvdXIiLCJtaW51dGUiLCJzZWNvbmQiLCJ0aW1lWm9uZU5hbWUiXTtmdW5jdGlvbiBKKGRlKXtmb3IodmFyIHZlPTA7dmU8cS5sZW5n''@;'; + put 'put ''dGg7dmUrPTEpaWYoZGUuaGFzT3duUHJvcGVydHkocVt2ZV0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHNlKGRlKXtmb3IodmFyIHZlPTA7dmU8ZWUubGVuZ3RoO3ZlKz0xKWlmKGRlLmhhc093blByb3BlcnR5KGVlW3ZlXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gb2UoZGUp''@;'; + put 'put ''e2lmKCFXLnRlc3QoZGUpKXt2YXIgdmU9e307cmV0dXJuIHZlLnBhdHRlcm49ZGUucmVwbGFjZShZLGZ1bmN0aW9uKEFlKXtzd2l0Y2goQWUuY2hhckF0KDApKXtjYXNlIkUiOmNhc2UiZSI6Y2FzZSJjIjpyZXR1cm4gdmUud2Vla2RheT1OLndlZWtkYXlbQWUubGVuZ3RoLTFdLCJ7d2Vla2Rh''@;'; + put 'put ''eX0iO2Nhc2UiRyI6cmV0dXJuIHZlLmVyYT1OLmVyYVtBZS5sZW5ndGgtMV0sIntlcmF9IjtjYXNlInkiOmNhc2UiWSI6Y2FzZSJ1IjpjYXNlIlUiOnJldHVybiB2ZS55ZWFyPTI9PT1BZS5sZW5ndGg/IjItZGlnaXQiOiJudW1lcmljIiwie3llYXJ9IjtjYXNlIk0iOmNhc2UiTCI6cmV0dXJu''@;'; + put 'put ''IHZlLm1vbnRoPU4ubW9udGhbQWUubGVuZ3RoLTFdLCJ7bW9udGh9IjtjYXNlImQiOnJldHVybiB2ZS5kYXk9Mj09PUFlLmxlbmd0aD8iMi1kaWdpdCI6Im51bWVyaWMiLCJ7ZGF5fSI7Y2FzZSJhIjpyZXR1cm4ie2FtcG19IjtjYXNlImgiOmNhc2UiSCI6Y2FzZSJrIjpjYXNlIksiOnJldHVy''@;'; + put 'put ''biB2ZS5ob3VyPTI9PT1BZS5sZW5ndGg/IjItZGlnaXQiOiJudW1lcmljIiwie2hvdXJ9IjtjYXNlIm0iOnJldHVybiB2ZS5taW51dGU9Mj09PUFlLmxlbmd0aD8iMi1kaWdpdCI6Im51bWVyaWMiLCJ7bWludXRlfSI7Y2FzZSJzIjpyZXR1cm4gdmUuc2Vjb25kPTI9PT1BZS5sZW5ndGg/IjIt''@;'; + put 'put ''ZGlnaXQiOiJudW1lcmljIiwie3NlY29uZH0iO2Nhc2UieiI6cmV0dXJuIHZlLnRpbWVab25lTmFtZT1BZS5sZW5ndGg8ND8ic2hvcnQiOiJsb25nIiwie3RpbWVab25lTmFtZX0ifX0pLHZlLnBhdHRlcm49dmUucGF0dGVybi5yZXBsYWNlKC8nKFteJ10qKScvZyxmdW5jdGlvbihBZSxrZSl7''@;'; + put 'put ''cmV0dXJuIGtlfHwiJyJ9KSx2ZS5wYXR0ZXJuLmluZGV4T2YoInthbXBtfSIpPi0xJiYodmUuaG91cjEyPSEwLHZlLnBhdHRlcm4xMj12ZS5wYXR0ZXJuLHZlLnBhdHRlcm49dmUucGF0dGVybi5yZXBsYWNlKCJ7YW1wbX0iLCIiKS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVG''@;'; + put 'put ''Rlx4QTBdKyQvZywiIikpLHZlfX19LDgyNjkxOihYZSxKZSxMKT0+e0woMzkxMTUpLEwoMjA3NzQpLEwoMzA1MjIpLEwoNTgyOTUpLEwoODc4NDIpLEwoNTAxMTApLEwoMjAwNzUpLEwoMjQzMzYpLEwoMTkzNzEpLEwoOTg4MzcpLEwoMjY3NzMpLEwoMTU3NDUpLEwoMzMwNTcpLEwoMzc1MCks''@;'; + put 'put ''TCgyMzM2OSksTCg5OTU2NCksTCgzMmUzKSxMKDQ4OTc3KSxMKDUyMzEwKSxMKDk0ODk5KSxMKDMxODQyKSxMKDU2OTk3KSxMKDI1NjQ1KX0sNzY3NzooWGUsSmUsTCk9PntMKDgxODIyKSxMKDE5OTc3KSxMKDkxMDMxKSxMKDQ2MzMxKSxMKDQxNTYwKSxYZS5leHBvcnRzPURhdGV9LDg4ODEz''@;'; + put 'put ''OihYZSxKZSxMKT0+e0woMzk3MzApLEwoNjA1OSksTCg0ODM3NyksTCgyNTY0NSl9LDE3ODc4OihYZSxKZSxMKT0+e0woOTYyNTMpLEwoMzkxMTUpLEwoOTExODEpLEwoODg0MTYpLEwoMjU2NDUpfSwxNjM0MzooWGUsSmUsTCk9PntMKDc2NTAzKSxMKDY2Nzg2KSxMKDUwOTMyKSxMKDU3NTI2''@;'; + put 'put ''KSxMKDIxNTkxKSxMKDkwNzMpLEwoODAzNDcpLEwoMzA1NzkpLEwoNDY2OSksTCg2NzcxMCksTCg0NTc4OSksTCgzMzUxNCksTCg5OTk3OCksTCg1ODQ3MiksTCg4Njk0NiksTCgzNTA2OCksTCg0MTMpLEwoMjU2NDUpfSw2MjMxNDooWGUsSmUsTCk9PntMKDExMjQ2KSxMKDMwNzI2KSxMKDE5''@;'; + put 'put ''MDEpLEwoNzU5NzIpLEwoNTM0MDMpLEwoOTI1MTYpLEwoNDkzNzEpLEwoODY0NzkpLEwoOTE3MzYpLEwoNTE4ODkpLEwoNjUxNzcpLEwoODEyNDYpLEwoMjU2NDUpfSw3NzY1NzooWGUsSmUsTCk9PntMKDk1NzY3KSxMKDY4MTMyKSxMKDQ4Mzg4KSxMKDM3NDcwKSxMKDk0ODgyKSxMKDQxNTIw''@;'; + put 'put ''KSxMKDI3NDc2KSxMKDc5NjIyKSxMKDg5Mzc1KSxMKDQzNTMzKSxMKDg0NjcyKSxMKDY0MTU3KSxMKDM1MDk1KSxMKDQ5ODkyKSxMKDc1MTE1KSxMKDk5MTc2KSxMKDY4ODM4KSxMKDk2MjUzKSxMKDI1NjQ1KX0sNTE3NzE6KFhlLEplLEwpPT57TCg2NDI5OSksTCgyNTY0NSl9LDUzMTA6KFhl''@;'; + put 'put ''LEplLEwpPT57TCg3MTA4NCksTCgyNTY0NSl9LDQzNDk5OihYZSxKZSxMKT0+e0woMjE1NzIpLEwoODIxMzkpLEwoMTA2ODUpLEwoODU1MzUpLEwoMTczNDcpLEwoODMwNDkpLEwoOTY2MzMpLEwoNjg5ODkpLEwoNzgyNzApLEwoNjQ1MTApLEwoNzM5ODQpLEwoNzU3NjkpLEwoNTAwNTUpLEwo''@;'; + put 'put ''OTYwMTQpLEwoMjU2NDUpfSwyOTEzMjooWGUsSmUsTCk9PntMKDgzOTQ2KSxMKDE4MjY5KSxMKDY2MTA4KSxMKDc2Nzc0KSxMKDIxNDY2KSxMKDU5MzU3KSxMKDc2MTQyKSxMKDUxODc2KSxMKDI1NjQ1KX0sNTIyOTg6KFhlLEplLEwpPT57TCg5NjI1MyksTCgzOTExNSksTCg5MTE4MSksTCg5''@;'; + put 'put ''ODE4NCksTCgyNTY0NSl9LDY4MTQ4OihYZSxKZSxMKT0+e0woNTAxOTEpLEwoOTgzMDYpLEwoNjQ1NjQpLEwoMzkxMTUpLEwoMjk1MzkpLEwoOTY2MjApLEwoNjI4NTApLEwoMTA4MjMpLEwoMTc3MzIpLEwoNDA4NTYpLEwoODA3MDMpLEwoOTE1MzkpLEwoNTI5MiksTCg0NTE3NyksTCg3MzY5''@;'; + put 'put ''NCksTCgzNzY0OCksTCgyNzc5NSksTCg0NTMxKSxMKDIzNjA1KSxMKDY3ODApLEwoNjk5MzcpLEwoMTA1MTEpLEwoMjE0NjYpLEwoNTkzNTcpLEwoNzYxNDIpLEwoNTE4NzYpLEwoMjU2NDUpfSw0MjQ0OihYZSxKZSxMKT0+e0woOTU3NjcpLEwoOTYyNTMpLEwoMjU2NDUpfSw2Nzc5NTooWGUs''@;'; + put 'put ''SmUsTCk9PntMKDUzMzY0KSxMKDUxNDMyKSxMKDI2NTYyKSxMKDg0NDE2KSxMKDk4NjgxKSxMKDMyMjEzKSxMKDYzNDcxKSxMKDQzMjkpLEwoMjUxNTkpLEwoMjU2NDUpfSwyNDk2MzpYZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oSmUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBKZSl0aHJvdyBU''@;'; + put 'put ''eXBlRXJyb3IoSmUrIiBpcyBub3QgYSBmdW5jdGlvbiEiKTtyZXR1cm4gSmV9fSw4MzM2NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5MjAzMik7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUpe2lmKCJudW1iZXIiIT10eXBlb2YgQiYmIk51bWJlciIhPW1lKEIpKXRocm93IFR5cGVFcnJvcihFKTty''@;'; + put 'put ''ZXR1cm4rQn19LDE3NzIyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg2MzE0KSgidW5zY29wYWJsZXMiKSxCPUFycmF5LnByb3RvdHlwZTtudWxsPT1CW21lXSYmTCg4NzcyOCkoQixtZSx7fSksWGUuZXhwb3J0cz1mdW5jdGlvbihFKXtCW21lXVtFXT0hMH19LDc2NzkzOihYZSxKZSxMKT0+eyJ1''@;'; + put 'put ''c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyNDQ5NikoITApO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQixFLE1lKXtyZXR1cm4gRSsoTWU/bWUoQixFKS5sZW5ndGg6MSl9fSw4MzMyODpYZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oSmUsTCxtZSxCKXtpZighKEplIGluc3RhbmNlb2YgTCl8fHZvaWQgMCE9''@;'; + put 'put ''PUImJkIgaW4gSmUpdGhyb3cgVHlwZUVycm9yKG1lKyI6IGluY29ycmVjdCBpbnZvY2F0aW9uISIpO3JldHVybiBKZX19LDI3MDA3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIpe2lmKCFtZShCKSl0aHJvdyBUeXBlRXJyb3IoQisiIGlzIG5vdCBh''@;'; + put 'put ''biBvYmplY3QhIik7cmV0dXJuIEJ9fSw1MjE2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyMDUwOCksQj1MKDkyMzM3KSxFPUwoMTA4NzUpO1hlLmV4cG9ydHM9W10uY29weVdpdGhpbnx8ZnVuY3Rpb24oVSxRKXt2YXIgWj1tZSh0aGlzKSxpZT1FKFoubGVuZ3RoKSxsZT1C''@;'; + put 'put ''KFUsaWUpLFk9QihRLGllKSxXPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLE49TWF0aC5taW4oKHZvaWQgMD09PVc/aWU6QihXLGllKSktWSxpZS1sZSksZWU9MTtmb3IoWTxsZSYmbGU8WStOJiYoZWU9LTEsWSs9Ti0xLGxlKz1OLTEpO04tLSA+MDspWSBpbiBaP1pb''@;'; + put 'put ''bGVdPVpbWV06ZGVsZXRlIFpbbGVdLGxlKz1lZSxZKz1lZTtyZXR1cm4gWn19LDQ2ODUyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyMDUwOCksQj1MKDkyMzM3KSxFPUwoMTA4NzUpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oVSl7Zm9yKHZhciBRPW1lKHRoaXMpLFo9RShRLmxl''@;'; + put 'put ''bmd0aCksaWU9YXJndW1lbnRzLmxlbmd0aCxsZT1CKGllPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxaKSxZPWllPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxXPXZvaWQgMD09PVk/WjpCKFksWik7Vz5sZTspUVtsZSsrXT1VO3JldHVybiBRfX0sOTQ5MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzNTMx''@;'; + put 'put ''KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7dmFyIE1lPVtdO3JldHVybiBtZShCLCExLE1lLnB1c2gsTWUsRSksTWV9fSw3OTMxNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMjExMCksQj1MKDEwODc1KSxFPUwoOTIzMzcpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUpe3JldHVybiBmdW5jdGlv''@;'; + put 'put ''bihVLFEsWil7dmFyIFcsaWU9bWUoVSksbGU9QihpZS5sZW5ndGgpLFk9RShaLGxlKTtpZihNZSYmUSE9USl7Zm9yKDtsZT5ZOylpZigoVz1pZVtZKytdKSE9VylyZXR1cm4hMH1lbHNlIGZvcig7bGU+WTtZKyspaWYoKE1lfHxZIGluIGllKSYmaWVbWV09PT1RKXJldHVybiBNZXx8WXx8MDty''@;'; + put 'put ''ZXR1cm4hTWUmJi0xfX19LDEwMDUwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDc0MSksQj1MKDQ5Nzk3KSxFPUwoMjA1MDgpLE1lPUwoMTA4NzUpLFU9TCgxNjg4Nik7WGUuZXhwb3J0cz1mdW5jdGlvbihRLFope3ZhciBpZT0xPT1RLGxlPTI9PVEsWT0zPT1RLFc9ND09USxOPTY9PVEsZWU9NT09''@;'; + put 'put ''UXx8TixxPVp8fFU7cmV0dXJuIGZ1bmN0aW9uKEosc2Usb2Upe2Zvcih2YXIgSWUsVGUsY2U9RShKKSxkZT1CKGNlKSx2ZT1tZShzZSxvZSwzKSxBZT1NZShkZS5sZW5ndGgpLGtlPTAsU2U9aWU/cShKLEFlKTpsZT9xKEosMCk6dm9pZCAwO0FlPmtlO2tlKyspaWYoKGVlfHxrZSBpbiBkZSkm''@;'; + put 'put ''JihUZT12ZShJZT1kZVtrZV0sa2UsY2UpLFEpKWlmKGllKVNlW2tlXT1UZTtlbHNlIGlmKFRlKXN3aXRjaChRKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiBJZTtjYXNlIDY6cmV0dXJuIGtlO2Nhc2UgMjpTZS5wdXNoKEllKX1lbHNlIGlmKFcpcmV0dXJuITE7cmV0dXJuIE4/LTE6''@;'; + put 'put ''WXx8Vz9XOlNlfX19LDM3NjI4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDI0OTYzKSxCPUwoMjA1MDgpLEU9TCg0OTc5NyksTWU9TCgxMDg3NSk7WGUuZXhwb3J0cz1mdW5jdGlvbihVLFEsWixpZSxsZSl7bWUoUSk7dmFyIFk9QihVKSxXPUUoWSksTj1NZShZLmxlbmd0aCksZWU9bGU/Ti0xOjAs''@;'; + put 'put ''cT1sZT8tMToxO2lmKFo8Milmb3IoOzspe2lmKGVlIGluIFcpe2llPVdbZWVdLGVlKz1xO2JyZWFrfWlmKGVlKz1xLGxlP2VlPDA6Tjw9ZWUpdGhyb3cgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIil9Zm9yKDtsZT9lZT49MDpOPmVlO2Vl''@;'; + put 'put ''Kz1xKWVlIGluIFcmJihpZT1RKGllLFdbZWVdLGVlLFkpKTtyZXR1cm4gaWV9fSw0MjczNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4NiksQj1MKDQzMDIpLEU9TCg4NjMxNCkoInNwZWNpZXMiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lKXt2YXIgVTtyZXR1cm4gQihNZSkmJigiZnVuY3Rp''@;'; + put 'put ''b24iPT10eXBlb2YoVT1NZS5jb25zdHJ1Y3RvcikmJihVPT09QXJyYXl8fEIoVS5wcm90b3R5cGUpKSYmKFU9dm9pZCAwKSxtZShVKSYmbnVsbD09PShVPVVbRV0pJiYoVT12b2lkIDApKSx2b2lkIDA9PT1VP0FycmF5OlV9fSwxNjg4NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0MjczNik7WGUu''@;'; + put 'put ''ZXhwb3J0cz1mdW5jdGlvbihCLEUpe3JldHVybiBuZXcobWUoQikpKEUpfX0sMzQzOTg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI0OTYzKSxCPUwoNTUyODYpLEU9TCg5NzI0MiksTWU9W10uc2xpY2UsVT17fSxRPWZ1bmN0aW9uKFosaWUsbGUpe2lmKCEoaWUgaW4gVSkp''@;'; + put 'put ''e2Zvcih2YXIgWT1bXSxXPTA7VzxpZTtXKyspWVtXXT0iYVsiK1crIl0iO1VbaWVdPUZ1bmN0aW9uKCJGLGEiLCJyZXR1cm4gbmV3IEYoIitZLmpvaW4oIiwiKSsiKSIpfXJldHVybiBVW2llXShaLGxlKX07WGUuZXhwb3J0cz1GdW5jdGlvbi5iaW5kfHxmdW5jdGlvbihpZSl7dmFyIGxlPW1l''@;'; + put 'put ''KHRoaXMpLFk9TWUuY2FsbChhcmd1bWVudHMsMSksVz1mdW5jdGlvbigpe3ZhciBOPVkuY29uY2F0KE1lLmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBXP1EobGUsTi5sZW5ndGgsTik6RShsZSxOLGllKX07cmV0dXJuIEIobGUucHJvdG90eXBlKSYmKFcucHJvdG90''@;'; + put 'put ''eXBlPWxlLnByb3RvdHlwZSksV319LDQxNDg4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkyMDMyKSxCPUwoODYzMTQpKCJ0b1N0cmluZ1RhZyIpLEU9IkFyZ3VtZW50cyI9PW1lKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk7WGUuZXhwb3J0cz1mdW5jdGlvbihVKXt2YXIgUSxaLGll''@;'; + put 'put ''O3JldHVybiB2b2lkIDA9PT1VPyJVbmRlZmluZWQiOm51bGw9PT1VPyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKFo9ZnVuY3Rpb24oVSxRKXt0cnl7cmV0dXJuIFVbUV19Y2F0Y2goWil7fX0oUT1PYmplY3QoVSksQikpP1o6RT9tZShRKToiT2JqZWN0Ij09KGllPW1lKFEpKSYmImZ1bmN0aW9u''@;'; + put 'put ''Ij09dHlwZW9mIFEuY2FsbGVlPyJBcmd1bWVudHMiOmllfX0sOTIwMzI6WGU9Pnt2YXIgSmU9e30udG9TdHJpbmc7WGUuZXhwb3J0cz1mdW5jdGlvbihMKXtyZXR1cm4gSmUuY2FsbChMKS5zbGljZSg4LC0xKX19LDk4MjQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDk5Mjc1''@;'; + put 'put ''KS5mLEI9TCg0MjUwMyksRT1MKDI0NDA4KSxNZT1MKDc0MSksVT1MKDgzMzI4KSxRPUwoMzUzMSksWj1MKDQyOTIzKSxpZT1MKDE1NDM2KSxsZT1MKDI5NzQpLFk9TCg2NzA1NyksVz1MKDg0NzI4KS5mYXN0S2V5LE49TCgxNjE2KSxlZT1ZPyJfcyI6InNpemUiLHE9ZnVuY3Rpb24oSixzZSl7''@;'; + put 'put ''dmFyIGNlLG9lPVcoc2UpO2lmKCJGIiE9PW9lKXJldHVybiBKLl9pW29lXTtmb3IoY2U9Si5fZjtjZTtjZT1jZS5uKWlmKGNlLms9PXNlKXJldHVybiBjZX07WGUuZXhwb3J0cz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24oSixzZSxvZSxjZSl7dmFyIGRlPUooZnVuY3Rpb24odmUsQWUpe1Uo''@;'; + put 'put ''dmUsZGUsc2UsIl9pIiksdmUuX3Q9c2UsdmUuX2k9QihudWxsKSx2ZS5fZj12b2lkIDAsdmUuX2w9dm9pZCAwLHZlW2VlXT0wLG51bGwhPUFlJiZRKEFlLG9lLHZlW2NlXSx2ZSl9KTtyZXR1cm4gRShkZS5wcm90b3R5cGUse2NsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciBBZT1OKHRoaXMsc2Up''@;'; + put 'put ''LGtlPUFlLl9pLFNlPUFlLl9mO1NlO1NlPVNlLm4pU2Uucj0hMCxTZS5wJiYoU2UucD1TZS5wLm49dm9pZCAwKSxkZWxldGUga2VbU2UuaV07QWUuX2Y9QWUuX2w9dm9pZCAwLEFlW2VlXT0wfSxkZWxldGU6ZnVuY3Rpb24odmUpe3ZhciBBZT1OKHRoaXMsc2UpLGtlPXEoQWUsdmUpO2lmKGtl''@;'; + put 'put ''KXt2YXIgU2U9a2UubixJZT1rZS5wO2RlbGV0ZSBBZS5faVtrZS5pXSxrZS5yPSEwLEllJiYoSWUubj1TZSksU2UmJihTZS5wPUllKSxBZS5fZj09a2UmJihBZS5fZj1TZSksQWUuX2w9PWtlJiYoQWUuX2w9SWUpLEFlW2VlXS0tfXJldHVybiEha2V9LGZvckVhY2g6ZnVuY3Rpb24oQWUpe04o''@;'; + put 'put ''dGhpcyxzZSk7Zm9yKHZhciBTZSxrZT1NZShBZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtTZT1TZT9TZS5uOnRoaXMuX2Y7KWZvcihrZShTZS52LFNlLmssdGhpcyk7U2UmJlNlLnI7KVNlPVNlLnB9LGhhczpmdW5jdGlvbihBZSl7cmV0dXJuISFxKE4odGhp''@;'; + put 'put ''cyxzZSksQWUpfX0pLFkmJm1lKGRlLnByb3RvdHlwZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsc2UpW2VlXX19KSxkZX0sZGVmOmZ1bmN0aW9uKEosc2Usb2Upe3ZhciBkZSx2ZSxjZT1xKEosc2UpO3JldHVybiBjZT9jZS52PW9lOihKLl9sPWNlPXtpOnZlPVcoc2Us''@;'; + put 'put ''ITApLGs6c2UsdjpvZSxwOmRlPUouX2wsbjp2b2lkIDAscjohMX0sSi5fZnx8KEouX2Y9Y2UpLGRlJiYoZGUubj1jZSksSltlZV0rKywiRiIhPT12ZSYmKEouX2lbdmVdPWNlKSksSn0sZ2V0RW50cnk6cSxzZXRTdHJvbmc6ZnVuY3Rpb24oSixzZSxvZSl7WihKLHNlLGZ1bmN0aW9uKGNlLGRl''@;'; + put 'put ''KXt0aGlzLl90PU4oY2Usc2UpLHRoaXMuX2s9ZGUsdGhpcy5fbD12b2lkIDB9LGZ1bmN0aW9uKCl7Zm9yKHZhciBjZT10aGlzLGRlPWNlLl9rLHZlPWNlLl9sO3ZlJiZ2ZS5yOyl2ZT12ZS5wO3JldHVybiBjZS5fdCYmKGNlLl9sPXZlPXZlP3ZlLm46Y2UuX3QuX2YpP2llKDAsImtleXMiPT1k''@;'; + put 'put ''ZT92ZS5rOiJ2YWx1ZXMiPT1kZT92ZS52Olt2ZS5rLHZlLnZdKTooY2UuX3Q9dm9pZCAwLGllKDEpKX0sb2U/ImVudHJpZXMiOiJ2YWx1ZXMiLCFvZSwhMCksbGUoc2UpfX19LDIzNjU3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyNDQwOCksQj1MKDg0NzI4KS5nZXRXZWFr''@;'; + put 'put ''LEU9TCgyNzAwNyksTWU9TCg1NTI4NiksVT1MKDgzMzI4KSxRPUwoMzUzMSksWj1MKDEwMDUwKSxpZT1MKDc5MTgxKSxsZT1MKDE2MTYpLFk9Wig1KSxXPVooNiksTj0wLGVlPWZ1bmN0aW9uKHNlKXtyZXR1cm4gc2UuX2x8fChzZS5fbD1uZXcgcSl9LHE9ZnVuY3Rpb24oKXt0aGlzLmE9W119''@;'; + put 'put ''LEo9ZnVuY3Rpb24oc2Usb2Upe3JldHVybiBZKHNlLmEsZnVuY3Rpb24oY2Upe3JldHVybiBjZVswXT09PW9lfSl9O3EucHJvdG90eXBlPXtnZXQ6ZnVuY3Rpb24oc2Upe3ZhciBvZT1KKHRoaXMsc2UpO2lmKG9lKXJldHVybiBvZVsxXX0saGFzOmZ1bmN0aW9uKHNlKXtyZXR1cm4hIUoodGhp''@;'; + put 'put ''cyxzZSl9LHNldDpmdW5jdGlvbihzZSxvZSl7dmFyIGNlPUoodGhpcyxzZSk7Y2U/Y2VbMV09b2U6dGhpcy5hLnB1c2goW3NlLG9lXSl9LGRlbGV0ZTpmdW5jdGlvbihzZSl7dmFyIG9lPVcodGhpcy5hLGZ1bmN0aW9uKGNlKXtyZXR1cm4gY2VbMF09PT1zZX0pO3JldHVybn5vZSYmdGhpcy5h''@;'; + put 'put ''LnNwbGljZShvZSwxKSwhIX5vZX19LFhlLmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKHNlLG9lLGNlLGRlKXt2YXIgdmU9c2UoZnVuY3Rpb24oQWUsa2Upe1UoQWUsdmUsb2UsIl9pIiksQWUuX3Q9b2UsQWUuX2k9TisrLEFlLl9sPXZvaWQgMCxudWxsIT1rZSYmUShrZSxjZSxB''@;'; + put 'put ''ZVtkZV0sQWUpfSk7cmV0dXJuIG1lKHZlLnByb3RvdHlwZSx7ZGVsZXRlOmZ1bmN0aW9uKEFlKXtpZighTWUoQWUpKXJldHVybiExO3ZhciBrZT1CKEFlKTtyZXR1cm4hMD09PWtlP2VlKGxlKHRoaXMsb2UpKS5kZWxldGUoQWUpOmtlJiZpZShrZSx0aGlzLl9pKSYmZGVsZXRlIGtlW3RoaXMu''@;'; + put 'put ''X2ldfSxoYXM6ZnVuY3Rpb24oa2Upe2lmKCFNZShrZSkpcmV0dXJuITE7dmFyIFNlPUIoa2UpO3JldHVybiEwPT09U2U/ZWUobGUodGhpcyxvZSkpLmhhcyhrZSk6U2UmJmllKFNlLHRoaXMuX2kpfX0pLHZlfSxkZWY6ZnVuY3Rpb24oc2Usb2UsY2Upe3ZhciBkZT1CKEUob2UpLCEwKTtyZXR1''@;'; + put 'put ''cm4hMD09PWRlP2VlKHNlKS5zZXQob2UsY2UpOmRlW3NlLl9pXT1jZSxzZX0sdWZzdG9yZTplZX19LDQ1Nzk1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgzODE2KSxCPUwoNDI5ODUpLEU9TCg3NzIzNCksTWU9TCgyNDQwOCksVT1MKDg0NzI4KSxRPUwoMzUzMSksWj1MKDgz''@;'; + put 'put ''MzI4KSxpZT1MKDU1Mjg2KSxsZT1MKDc0MjUzKSxZPUwoNzQ2MiksVz1MKDIyOTQzKSxOPUwoNDAyNjYpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oZWUscSxKLHNlLG9lLGNlKXt2YXIgZGU9bWVbZWVdLHZlPWRlLEFlPW9lPyJzZXQiOiJhZGQiLGtlPXZlJiZ2ZS5wcm90b3R5cGUsU2U9e30sSWU9''@;'; + put 'put ''ZnVuY3Rpb24obmUpe3ZhciB0ZT1rZVtuZV07RShrZSxuZSwiZGVsZXRlIj09bmU/ZnVuY3Rpb24oeCl7cmV0dXJuIShjZSYmIWllKHgpKSYmdGUuY2FsbCh0aGlzLDA9PT14PzA6eCl9OiJoYXMiPT1uZT9mdW5jdGlvbihQKXtyZXR1cm4hKGNlJiYhaWUoUCkpJiZ0ZS5jYWxsKHRoaXMsMD09''@;'; + put 'put ''PVA/MDpQKX06ImdldCI9PW5lP2Z1bmN0aW9uKFApe3JldHVybiBjZSYmIWllKFApP3ZvaWQgMDp0ZS5jYWxsKHRoaXMsMD09PVA/MDpQKX06ImFkZCI9PW5lP2Z1bmN0aW9uKFApe3JldHVybiB0ZS5jYWxsKHRoaXMsMD09PVA/MDpQKSx0aGlzfTpmdW5jdGlvbihQLFYpe3JldHVybiB0ZS5j''@;'; + put 'put ''YWxsKHRoaXMsMD09PVA/MDpQLFYpLHRoaXN9KX07aWYoImZ1bmN0aW9uIj09dHlwZW9mIHZlJiYoY2V8fGtlLmZvckVhY2gmJiFsZShmdW5jdGlvbigpeyhuZXcgdmUpLmVudHJpZXMoKS5uZXh0KCl9KSkpe3ZhciBUZT1uZXcgdmUsRWU9VGVbQWVdKGNlP3t9Oi0wLDEpIT1UZSxoZT1sZShm''@;'; + put 'put ''dW5jdGlvbigpe1RlLmhhcygxKX0pLE89WShmdW5jdGlvbihuZSl7bmV3IHZlKG5lKX0pLHo9IWNlJiZsZShmdW5jdGlvbigpe2Zvcih2YXIgbmU9bmV3IHZlLHRlPTU7dGUtLTspbmVbQWVdKHRlLHRlKTtyZXR1cm4hbmUuaGFzKC0wKX0pO098fCgodmU9cShmdW5jdGlvbihuZSx0ZSl7Wihu''@;'; + put 'put ''ZSx2ZSxlZSk7dmFyIHg9TihuZXcgZGUsbmUsdmUpO3JldHVybiBudWxsIT10ZSYmUSh0ZSxvZSx4W0FlXSx4KSx4fSkpLnByb3RvdHlwZT1rZSxrZS5jb25zdHJ1Y3Rvcj12ZSksKGhlfHx6KSYmKEllKCJkZWxldGUiKSxJZSgiaGFzIiksb2UmJkllKCJnZXQiKSksKHp8fEVlKSYmSWUoQWUp''@;'; + put 'put ''LGNlJiZrZS5jbGVhciYmZGVsZXRlIGtlLmNsZWFyfWVsc2UgdmU9c2UuZ2V0Q29uc3RydWN0b3IocSxlZSxvZSxBZSksTWUodmUucHJvdG90eXBlLEopLFUuTkVFRD0hMDtyZXR1cm4gVyh2ZSxlZSksU2VbZWVdPXZlLEIoQi5HK0IuVytCLkYqKHZlIT1kZSksU2UpLGNlfHxzZS5zZXRTdHJv''@;'; + put 'put ''bmcodmUsZWUsb2UpLHZlfX0sMjU2NDU6WGU9Pnt2YXIgSmU9WGUuZXhwb3J0cz17dmVyc2lvbjoiMi42LjEyIn07Im51bWJlciI9PXR5cGVvZiBfX2UmJihfX2U9SmUpfSw5MjgxMTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoOTkyNzUpLEI9TCg5MDY4MSk7WGUuZXhwb3J0''@;'; + put 'put ''cz1mdW5jdGlvbihFLE1lLFUpe01lIGluIEU/bWUuZihFLE1lLEIoMCxVKSk6RVtNZV09VX19LDc0MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNDk2Myk7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUsTWUpe2lmKG1lKEIpLHZvaWQgMD09PUUpcmV0dXJuIEI7c3dpdGNoKE1lKXtjYXNlIDE6cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uKFUpe3JldHVybiBCLmNhbGwoRSxVKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihVLFEpe3JldHVybiBCLmNhbGwoRSxVLFEpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKFUsUSxaKXtyZXR1cm4gQi5jYWxsKEUsVSxRLFopfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4g''@;'; + put 'put ''Qi5hcHBseShFLGFyZ3VtZW50cyl9fX0sNTM1Mzc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDc0MjUzKSxCPURhdGUucHJvdG90eXBlLmdldFRpbWUsRT1EYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZyxNZT1mdW5jdGlvbihVKXtyZXR1cm4gVT45P1U6IjAiK1V9O1hlLmV4''@;'; + put 'put ''cG9ydHM9bWUoZnVuY3Rpb24oKXtyZXR1cm4iMDM4NS0wNy0yNVQwNzowNjozOS45OTlaIiE9RS5jYWxsKG5ldyBEYXRlKC01MDAwMDAwMDAwMDAwMSkpfSl8fCFtZShmdW5jdGlvbigpe0UuY2FsbChuZXcgRGF0ZShOYU4pKX0pP2Z1bmN0aW9uKCl7aWYoIWlzRmluaXRlKEIuY2FsbCh0aGlz''@;'; + put 'put ''KSkpdGhyb3cgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7dmFyIFE9dGhpcyxaPVEuZ2V0VVRDRnVsbFllYXIoKSxpZT1RLmdldFVUQ01pbGxpc2Vjb25kcygpLGxlPVo8MD8iLSI6Wj45OTk5PyIrIjoiIjtyZXR1cm4gbGUrKCIwMDAwMCIrTWF0aC5hYnMoWikpLnNsaWNlKGxl''@;'; + put 'put ''Py02Oi00KSsiLSIrTWUoUS5nZXRVVENNb250aCgpKzEpKyItIitNZShRLmdldFVUQ0RhdGUoKSkrIlQiK01lKFEuZ2V0VVRDSG91cnMoKSkrIjoiK01lKFEuZ2V0VVRDTWludXRlcygpKSsiOiIrTWUoUS5nZXRVVENTZWNvbmRzKCkpKyIuIisoaWU+OTk/aWU6IjAiK01lKGllKSkrIloifTpF''@;'; + put 'put ''fSw4NzA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI3MDA3KSxCPUwoMjE2ODkpLEU9Im51bWJlciI7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSl7aWYoInN0cmluZyIhPT1NZSYmTWUhPT1FJiYiZGVmYXVsdCIhPT1NZSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCBoaW50''@;'; + put 'put ''Iik7cmV0dXJuIEIobWUodGhpcyksTWUhPUUpfX0sOTEzNTU6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uKEplKXtpZihudWxsPT1KZSl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNhbGwgbWV0aG9kIG9uICAiK0plKTtyZXR1cm4gSmV9fSw2NzA1NzooWGUsSmUsTCk9PntYZS5leHBvcnRzPSFM''@;'; + put 'put ''KDc0MjUzKShmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LDYyNDU3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2KSxCPUwoMzgxNikuZG9jdW1lbnQsRT1tZShCKSYmbWUoQi5jcmVhdGVF''@;'; + put 'put ''bGVtZW50KTtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lKXtyZXR1cm4gRT9CLmNyZWF0ZUVsZW1lbnQoTWUpOnt9fX0sNzQ0MzA6WGU9PntYZS5leHBvcnRzPSJjb25zdHJ1Y3RvcixoYXNPd25Qcm9wZXJ0eSxpc1Byb3RvdHlwZU9mLHByb3BlcnR5SXNFbnVtZXJhYmxlLHRvTG9jYWxlU3RyaW5n''@;'; + put 'put ''LHRvU3RyaW5nLHZhbHVlT2YiLnNwbGl0KCIsIil9LDU1NDE6KFhlLEplLEwpPT57dmFyIG1lPUwoNDcxODQpLEI9TCg2NDU0OCksRT1MKDE0NjgyKTtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lKXt2YXIgVT1tZShNZSksUT1CLmY7aWYoUSlmb3IodmFyIFksWj1RKE1lKSxpZT1FLmYsbGU9MDta''@;'; + put 'put ''Lmxlbmd0aD5sZTspaWUuY2FsbChNZSxZPVpbbGUrK10pJiZVLnB1c2goWSk7cmV0dXJuIFV9fSw0Mjk4NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzODE2KSxCPUwoMjU2NDUpLEU9TCg4NzcyOCksTWU9TCg3NzIzNCksVT1MKDc0MSksUT0icHJvdG90eXBlIixaPWZ1bmN0aW9uKGllLGxlLFkp''@;'; + put 'put ''e3ZhciBkZSx2ZSxBZSxrZSxXPWllJlouRixOPWllJlouRyxxPWllJlouUCxKPWllJlouQixzZT1OP21lOmllJlouUz9tZVtsZV18fChtZVtsZV09e30pOihtZVtsZV18fHt9KVtRXSxvZT1OP0I6QltsZV18fChCW2xlXT17fSksY2U9b2VbUV18fChvZVtRXT17fSk7Zm9yKGRlIGluIE4mJihZ''@;'; + put 'put ''PWxlKSxZKUFlPSgodmU9IVcmJnNlJiZ2b2lkIDAhPT1zZVtkZV0pP3NlOlkpW2RlXSxrZT1KJiZ2ZT9VKEFlLG1lKTpxJiYiZnVuY3Rpb24iPT10eXBlb2YgQWU/VShGdW5jdGlvbi5jYWxsLEFlKTpBZSxzZSYmTWUoc2UsZGUsQWUsaWUmWi5VKSxvZVtkZV0hPUFlJiZFKG9lLGRlLGtlKSxx''@;'; + put 'put ''JiZjZVtkZV0hPUFlJiYoY2VbZGVdPUFlKX07bWUuY29yZT1CLFouRj0xLFouRz0yLFouUz00LFouUD04LFouQj0xNixaLlc9MzIsWi5VPTY0LFouUj0xMjgsWGUuZXhwb3J0cz1afSw4ODUyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg2MzE0KSgibWF0Y2giKTtYZS5leHBvcnRzPWZ1bmN0aW9u''@;'; + put 'put ''KEIpe3ZhciBFPS8uLzt0cnl7Ii8uLyJbQl0oRSl9Y2F0Y2goTWUpe3RyeXtyZXR1cm4gRVttZV09ITEsISIvLi8iW0JdKEUpfWNhdGNoKFUpe319cmV0dXJuITB9fSw3NDI1MzpYZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oSmUpe3RyeXtyZXR1cm4hIUplKCl9Y2F0Y2goTCl7cmV0dXJuITB9''@;'; + put 'put ''fX0sMjgwODI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMTgyNjkpO3ZhciBtZT1MKDc3MjM0KSxCPUwoODc3MjgpLEU9TCg3NDI1MyksTWU9TCg5MTM1NSksVT1MKDg2MzE0KSxRPUwoMjExNjUpLFo9VSgic3BlY2llcyIpLGllPSFFKGZ1bmN0aW9uKCl7dmFyIFk9Ly4vO3JldHVybiBZ''@;'; + put 'put ''LmV4ZWM9ZnVuY3Rpb24oKXt2YXIgVz1bXTtyZXR1cm4gVy5ncm91cHM9e2E6IjcifSxXfSwiNyIhPT0iIi5yZXBsYWNlKFksIiQ8YT4iKX0pLGxlPWZ1bmN0aW9uKCl7dmFyIFk9Lyg/OikvLFc9WS5leGVjO1kuZXhlYz1mdW5jdGlvbigpe3JldHVybiBXLmFwcGx5KHRoaXMsYXJndW1lbnRz''@;'; + put 'put ''KX07dmFyIE49ImFiIi5zcGxpdChZKTtyZXR1cm4gMj09PU4ubGVuZ3RoJiYiYSI9PT1OWzBdJiYiYiI9PT1OWzFdfSgpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oWSxXLE4pe3ZhciBlZT1VKFkpLHE9IUUoZnVuY3Rpb24oKXt2YXIgdmU9e307cmV0dXJuIHZlW2VlXT1mdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biA3fSw3IT0iIltZXSh2ZSl9KSxKPXE/IUUoZnVuY3Rpb24oKXt2YXIgdmU9ITEsQWU9L2EvO3JldHVybiBBZS5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIHZlPSEwLG51bGx9LCJzcGxpdCI9PT1ZJiYoQWUuY29uc3RydWN0b3I9e30sQWUuY29uc3RydWN0b3JbWl09ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gQWV9KSxBZVtlZV0oIiIpLCF2ZX0pOnZvaWQgMDtpZighcXx8IUp8fCJyZXBsYWNlIj09PVkmJiFpZXx8InNwbGl0Ij09PVkmJiFsZSl7dmFyIHNlPS8uL1tlZV0sb2U9TihNZSxlZSwiIltZXSxmdW5jdGlvbihBZSxrZSxTZSxJZSxUZSl7cmV0dXJuIGtlLmV4ZWM9PT1RP3EmJiFUZT97''@;'; + put 'put ''ZG9uZTohMCx2YWx1ZTpzZS5jYWxsKGtlLFNlLEllKX06e2RvbmU6ITAsdmFsdWU6QWUuY2FsbChTZSxrZSxJZSl9Ontkb25lOiExfX0pLGRlPW9lWzFdO21lKFN0cmluZy5wcm90b3R5cGUsWSxvZVswXSksQihSZWdFeHAucHJvdG90eXBlLGVlLDI9PVc/ZnVuY3Rpb24odmUsQWUpe3JldHVy''@;'; + put 'put ''biBkZS5jYWxsKHZlLHRoaXMsQWUpfTpmdW5jdGlvbih2ZSl7cmV0dXJuIGRlLmNhbGwodmUsdGhpcyl9KX19fSw1MzIxODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjcwMDcpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgQj1tZSh0aGlzKSxFPSIiO3JldHVybiBCLmds''@;'; + put 'put ''b2JhbCYmKEUrPSJnIiksQi5pZ25vcmVDYXNlJiYoRSs9ImkiKSxCLm11bHRpbGluZSYmKEUrPSJtIiksQi51bmljb2RlJiYoRSs9InUiKSxCLnN0aWNreSYmKEUrPSJ5IiksRX19LDM1MzE6KFhlLEplLEwpPT57dmFyIG1lPUwoNzQxKSxCPUwoMjg4NTEpLEU9TCg4NjU1NSksTWU9TCgyNzAw''@;'; + put 'put ''NyksVT1MKDEwODc1KSxRPUwoNjkwMDIpLFo9e30saWU9e30sbGU9WGUuZXhwb3J0cz1mdW5jdGlvbihZLFcsTixlZSxxKXt2YXIgY2UsZGUsdmUsQWUsSj1xP2Z1bmN0aW9uKCl7cmV0dXJuIFl9OlEoWSksc2U9bWUoTixlZSxXPzI6MSksb2U9MDtpZigiZnVuY3Rpb24iIT10eXBlb2YgSil0''@;'; + put 'put ''aHJvdyBUeXBlRXJyb3IoWSsiIGlzIG5vdCBpdGVyYWJsZSEiKTtpZihFKEopKXtmb3IoY2U9VShZLmxlbmd0aCk7Y2U+b2U7b2UrKylpZigoQWU9Vz9zZShNZShkZT1ZW29lXSlbMF0sZGVbMV0pOnNlKFlbb2VdKSk9PT1afHxBZT09PWllKXJldHVybiBBZX1lbHNlIGZvcih2ZT1KLmNhbGwo''@;'; + put 'put ''WSk7IShkZT12ZS5uZXh0KCkpLmRvbmU7KWlmKChBZT1CKHZlLHNlLGRlLnZhbHVlLFcpKT09PVp8fEFlPT09aWUpcmV0dXJuIEFlfTtsZS5CUkVBSz1aLGxlLlJFVFVSTj1pZX0sNDAwMTg6KFhlLEplLEwpPT57WGUuZXhwb3J0cz1MKDM4MjUpKCJuYXRpdmUtZnVuY3Rpb24tdG8tc3RyaW5n''@;'; + put 'put ''IixGdW5jdGlvbi50b1N0cmluZyl9LDM4MTY6WGU9Pnt2YXIgSmU9WGUuZXhwb3J0cz0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lk1hdGg9PU1hdGg/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5NYXRoPT1NYXRoP3NlbGY6RnVuY3Rpb24oInJldHVy''@;'; + put 'put ''biB0aGlzIikoKTsibnVtYmVyIj09dHlwZW9mIF9fZyYmKF9fZz1KZSl9LDc5MTgxOlhlPT57dmFyIEplPXt9Lmhhc093blByb3BlcnR5O1hlLmV4cG9ydHM9ZnVuY3Rpb24oTCxtZSl7cmV0dXJuIEplLmNhbGwoTCxtZSl9fSw4NzcyODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5OTI3NSksQj1M''@;'; + put 'put ''KDkwNjgxKTtYZS5leHBvcnRzPUwoNjcwNTcpP2Z1bmN0aW9uKEUsTWUsVSl7cmV0dXJuIG1lLmYoRSxNZSxCKDEsVSkpfTpmdW5jdGlvbihFLE1lLFUpe3JldHVybiBFW01lXT1VLEV9fSw0MDYzOTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzODE2KS5kb2N1bWVudDtYZS5leHBvcnRzPW1lJiZt''@;'; + put 'put ''ZS5kb2N1bWVudEVsZW1lbnR9LDE3MzQ6KFhlLEplLEwpPT57WGUuZXhwb3J0cz0hTCg2NzA1NykmJiFMKDc0MjUzKShmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoTCg2MjQ1NykoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pfSw0''@;'; + put 'put ''MDI2NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4NiksQj1MKDI3Mzc1KS5zZXQ7WGUuZXhwb3J0cz1mdW5jdGlvbihFLE1lLFUpe3ZhciBaLFE9TWUuY29uc3RydWN0b3I7cmV0dXJuIFEhPT1VJiYiZnVuY3Rpb24iPT10eXBlb2YgUSYmKFo9US5wcm90b3R5cGUpIT09VS5wcm90b3R5cGUm''@;'; + put 'put ''Jm1lKFopJiZCJiZCKEUsWiksRX19LDk3MjQyOlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihKZSxMLG1lKXt2YXIgQj12b2lkIDA9PT1tZTtzd2l0Y2goTC5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gQj9KZSgpOkplLmNhbGwobWUpO2Nhc2UgMTpyZXR1cm4gQj9KZShMWzBdKTpKZS5jYWxsKG1l''@;'; + put 'put ''LExbMF0pO2Nhc2UgMjpyZXR1cm4gQj9KZShMWzBdLExbMV0pOkplLmNhbGwobWUsTFswXSxMWzFdKTtjYXNlIDM6cmV0dXJuIEI/SmUoTFswXSxMWzFdLExbMl0pOkplLmNhbGwobWUsTFswXSxMWzFdLExbMl0pO2Nhc2UgNDpyZXR1cm4gQj9KZShMWzBdLExbMV0sTFsyXSxMWzNdKTpKZS5j''@;'; + put 'put ''YWxsKG1lLExbMF0sTFsxXSxMWzJdLExbM10pfXJldHVybiBKZS5hcHBseShtZSxMKX19LDQ5Nzk3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkyMDMyKTtYZS5leHBvcnRzPU9iamVjdCgieiIpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApP09iamVjdDpmdW5jdGlvbihCKXtyZXR1cm4iU3RyaW5n''@;'; + put 'put ''Ij09bWUoQik/Qi5zcGxpdCgiIik6T2JqZWN0KEIpfX0sODY1NTU6KFhlLEplLEwpPT57dmFyIG1lPUwoODcyMzQpLEI9TCg4NjMxNCkoIml0ZXJhdG9yIiksRT1BcnJheS5wcm90b3R5cGU7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSl7cmV0dXJuIHZvaWQgMCE9PU1lJiYobWUuQXJyYXk9PT1N''@;'; + put 'put ''ZXx8RVtCXT09PU1lKX19LDQzMDI6KFhlLEplLEwpPT57dmFyIG1lPUwoOTIwMzIpO1hlLmV4cG9ydHM9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oRSl7cmV0dXJuIkFycmF5Ij09bWUoRSl9fSwxODM2NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4NiksQj1NYXRoLmZsb29yO1hlLmV4cG9y''@;'; + put 'put ''dHM9ZnVuY3Rpb24oTWUpe3JldHVybiFtZShNZSkmJmlzRmluaXRlKE1lKSYmQihNZSk9PT1NZX19LDU1Mjg2OlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihKZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBKZT9udWxsIT09SmU6ImZ1bmN0aW9uIj09dHlwZW9mIEplfX0sNTUzNjQ6KFhlLEpl''@;'; + put 'put ''LEwpPT57dmFyIG1lPUwoNTUyODYpLEI9TCg5MjAzMiksRT1MKDg2MzE0KSgibWF0Y2giKTtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lKXt2YXIgVTtyZXR1cm4gbWUoTWUpJiYodm9pZCAwIT09KFU9TWVbRV0pPyEhVToiUmVnRXhwIj09QihNZSkpfX0sMjg4NTE6KFhlLEplLEwpPT57dmFyIG1l''@;'; + put 'put ''PUwoMjcwMDcpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQixFLE1lLFUpe3RyeXtyZXR1cm4gVT9FKG1lKE1lKVswXSxNZVsxXSk6RShNZSl9Y2F0Y2goWil7dmFyIFE9Qi5yZXR1cm47dGhyb3cgdm9pZCAwIT09USYmbWUoUS5jYWxsKEIpKSxafX19LDQ5OTg4OihYZSxKZSxMKT0+eyJ1c2Ugc3Ry''@;'; + put 'put ''aWN0Ijt2YXIgbWU9TCg0MjUwMyksQj1MKDkwNjgxKSxFPUwoMjI5NDMpLE1lPXt9O0woODc3MjgpKE1lLEwoODYzMTQpKCJpdGVyYXRvciIpLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxYZS5leHBvcnRzPWZ1bmN0aW9uKFUsUSxaKXtVLnByb3RvdHlwZT1tZShNZSx7bmV4dDpCKDEsWil9''@;'; + put 'put ''KSxFKFUsUSsiIEl0ZXJhdG9yIil9fSw0MjkyMzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDQ2MSksQj1MKDQyOTg1KSxFPUwoNzcyMzQpLE1lPUwoODc3MjgpLFU9TCg4NzIzNCksUT1MKDQ5OTg4KSxaPUwoMjI5NDMpLGllPUwoNDY4KSxsZT1MKDg2MzE0KSgiaXRlcmF0''@;'; + put 'put ''b3IiKSxZPSEoW10ua2V5cyYmIm5leHQiaW5bXS5rZXlzKCkpLE49ImtleXMiLGVlPSJ2YWx1ZXMiLHE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307WGUuZXhwb3J0cz1mdW5jdGlvbihKLHNlLG9lLGNlLGRlLHZlLEFlKXtRKG9lLHNlLGNlKTt2YXIgdGUseCxQLGtlPWZ1bmN0aW9uKFYpe2lm''@;'; + put 'put ''KCFZJiZWIGluIEVlKXJldHVybiBFZVtWXTtzd2l0Y2goVil7Y2FzZSBOOmNhc2UgZWU6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBvZSh0aGlzLFYpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG9lKHRoaXMsVil9fSxTZT1zZSsiIEl0ZXJhdG9yIixJZT1kZT09ZWUsVGU9''@;'; + put 'put ''ITEsRWU9Si5wcm90b3R5cGUsaGU9RWVbbGVdfHxFZVsiQEBpdGVyYXRvciJdfHxkZSYmRWVbZGVdLE89aGV8fGtlKGRlKSx6PWRlP0llP2tlKCJlbnRyaWVzIik6Tzp2b2lkIDAsbmU9IkFycmF5Ij09c2UmJkVlLmVudHJpZXN8fGhlO2lmKG5lJiYoUD1pZShuZS5jYWxsKG5ldyBKKSkpIT09''@;'; + put 'put ''T2JqZWN0LnByb3RvdHlwZSYmUC5uZXh0JiYoWihQLFNlLCEwKSwhbWUmJiJmdW5jdGlvbiIhPXR5cGVvZiBQW2xlXSYmTWUoUCxsZSxxKSksSWUmJmhlJiZoZS5uYW1lIT09ZWUmJihUZT0hMCxPPWZ1bmN0aW9uKCl7cmV0dXJuIGhlLmNhbGwodGhpcyl9KSwoIW1lfHxBZSkmJihZfHxUZXx8''@;'; + put 'put ''IUVlW2xlXSkmJk1lKEVlLGxlLE8pLFVbc2VdPU8sVVtTZV09cSxkZSlpZih0ZT17dmFsdWVzOkllP086a2UoZWUpLGtleXM6dmU/TzprZShOKSxlbnRyaWVzOnp9LEFlKWZvcih4IGluIHRlKXggaW4gRWV8fEUoRWUseCx0ZVt4XSk7ZWxzZSBCKEIuUCtCLkYqKFl8fFRlKSxzZSx0ZSk7cmV0''@;'; + put 'put ''dXJuIHRlfX0sNzQ2MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NjMxNCkoIml0ZXJhdG9yIiksQj0hMTt0cnl7dmFyIEU9WzddW21lXSgpO0UucmV0dXJuPWZ1bmN0aW9uKCl7Qj0hMH0sQXJyYXkuZnJvbShFLGZ1bmN0aW9uKCl7dGhyb3cgMn0pfWNhdGNoKE1lKXt9WGUuZXhwb3J0cz1mdW5j''@;'; + put 'put ''dGlvbihNZSxVKXtpZighVSYmIUIpcmV0dXJuITE7dmFyIFE9ITE7dHJ5e3ZhciBaPVs3XSxpZT1aW21lXSgpO2llLm5leHQ9ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTpRPSEwfX0sWlttZV09ZnVuY3Rpb24oKXtyZXR1cm4gaWV9LE1lKFopfWNhdGNoKGxlKXt9cmV0dXJuIFF9fSwxNTQzNjpY''@;'; + put 'put ''ZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oSmUsTCl7cmV0dXJue3ZhbHVlOkwsZG9uZTohIUplfX19LDg3MjM0OlhlPT57WGUuZXhwb3J0cz17fX0sNDQ2MTpYZT0+e1hlLmV4cG9ydHM9ITF9LDEzMDg2OlhlPT57dmFyIEplPU1hdGguZXhwbTE7WGUuZXhwb3J0cz0hSmV8fEplKDEwKT4yMjAy''@;'; + put 'put ''NS40NjU3OTQ4MDY3MTh8fEplKDEwKTwyMjAyNS40NjU3OTQ4MDY3MTh8fC0yZS0xNyE9SmUoLTJlLTE3KT9mdW5jdGlvbihtZSl7cmV0dXJuIDA9PShtZT0rbWUpP21lOm1lPi0xZS02JiZtZTwxZS02P21lK21lKm1lLzI6TWF0aC5leHAobWUpLTF9OkplfSwzNDkzNDooWGUsSmUsTCk9Pnt2''@;'; + put 'put ''YXIgbWU9TCg2MTgwMSksQj1NYXRoLnBvdyxFPUIoMiwtNTIpLE1lPUIoMiwtMjMpLFU9QigyLDEyNykqKDItTWUpLFE9QigyLC0xMjYpO1hlLmV4cG9ydHM9TWF0aC5mcm91bmR8fGZ1bmN0aW9uKGxlKXt2YXIgTixlZSxZPU1hdGguYWJzKGxlKSxXPW1lKGxlKTtyZXR1cm4gWTxRP1cqKFkv''@;'; + put 'put ''US9NZSsxL0UtMS9FKSpRKk1lOihlZT0oTj0oMStNZS9FKSpZKS0oTi1ZKSk+VXx8ZWUhPWVlP1cqKDEvMCk6VyplZX19LDQ2MjA2OlhlPT57WGUuZXhwb3J0cz1NYXRoLmxvZzFwfHxmdW5jdGlvbihMKXtyZXR1cm4oTD0rTCk+LTFlLTgmJkw8MWUtOD9MLUwqTC8yOk1hdGgubG9nKDErTCl9''@;'; + put 'put ''fSw2MTgwMTpYZT0+e1hlLmV4cG9ydHM9TWF0aC5zaWdufHxmdW5jdGlvbihMKXtyZXR1cm4gMD09KEw9K0wpfHxMIT1MP0w6TDwwPy0xOjF9fSw4NDcyODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5Mzk1MykoIm1ldGEiKSxCPUwoNTUyODYpLEU9TCg3OTE4MSksTWU9TCg5OTI3NSkuZixVPTAs''@;'; + put 'put ''UT1PYmplY3QuaXNFeHRlbnNpYmxlfHxmdW5jdGlvbigpe3JldHVybiEwfSxaPSFMKDc0MjUzKShmdW5jdGlvbigpe3JldHVybiBRKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpfSksaWU9ZnVuY3Rpb24oZWUpe01lKGVlLG1lLHt2YWx1ZTp7aToiTyIrICsrVSx3Ont9fX0pfSxOPVhl''@;'; + put 'put ''LmV4cG9ydHM9e0tFWTptZSxORUVEOiExLGZhc3RLZXk6ZnVuY3Rpb24oZWUscSl7aWYoIUIoZWUpKXJldHVybiJzeW1ib2wiPT10eXBlb2YgZWU/ZWU6KCJzdHJpbmciPT10eXBlb2YgZWU/IlMiOiJQIikrZWU7aWYoIUUoZWUsbWUpKXtpZighUShlZSkpcmV0dXJuIkYiO2lmKCFxKXJldHVy''@;'; + put 'put ''biJFIjtpZShlZSl9cmV0dXJuIGVlW21lXS5pfSxnZXRXZWFrOmZ1bmN0aW9uKGVlLHEpe2lmKCFFKGVlLG1lKSl7aWYoIVEoZWUpKXJldHVybiEwO2lmKCFxKXJldHVybiExO2llKGVlKX1yZXR1cm4gZWVbbWVdLnd9LG9uRnJlZXplOmZ1bmN0aW9uKGVlKXtyZXR1cm4gWiYmTi5ORUVEJiZR''@;'; + put 'put ''KGVlKSYmIUUoZWUsbWUpJiZpZShlZSksZWV9fX0sNTAxMzM6KFhlLEplLEwpPT57dmFyIG1lPUwoODg0MTYpLEI9TCg0Mjk4NSksRT1MKDM4MjUpKCJtZXRhZGF0YSIpLE1lPUUuc3RvcmV8fChFLnN0b3JlPW5ldyhMKDMwMTQ3KSkpLFU9ZnVuY3Rpb24oTixlZSxxKXt2YXIgSj1NZS5nZXQo''@;'; + put 'put ''Tik7aWYoIUope2lmKCFxKXJldHVybjtNZS5zZXQoTixKPW5ldyBtZSl9dmFyIHNlPUouZ2V0KGVlKTtpZighc2Upe2lmKCFxKXJldHVybjtKLnNldChlZSxzZT1uZXcgbWUpfXJldHVybiBzZX07WGUuZXhwb3J0cz17c3RvcmU6TWUsbWFwOlUsaGFzOmZ1bmN0aW9uKE4sZWUscSl7dmFyIEo9''@;'; + put 'put ''VShlZSxxLCExKTtyZXR1cm4gdm9pZCAwIT09SiYmSi5oYXMoTil9LGdldDpmdW5jdGlvbihOLGVlLHEpe3ZhciBKPVUoZWUscSwhMSk7cmV0dXJuIHZvaWQgMD09PUo/dm9pZCAwOkouZ2V0KE4pfSxzZXQ6ZnVuY3Rpb24oTixlZSxxLEope1UocSxKLCEwKS5zZXQoTixlZSl9LGtleXM6ZnVu''@;'; + put 'put ''Y3Rpb24oTixlZSl7dmFyIHE9VShOLGVlLCExKSxKPVtdO3JldHVybiBxJiZxLmZvckVhY2goZnVuY3Rpb24oc2Usb2Upe0oucHVzaChvZSl9KSxKfSxrZXk6ZnVuY3Rpb24oTil7cmV0dXJuIHZvaWQgMD09PU58fCJzeW1ib2wiPT10eXBlb2YgTj9OOlN0cmluZyhOKX0sZXhwOmZ1bmN0aW9u''@;'; + put 'put ''KE4pe0IoQi5TLCJSZWZsZWN0IixOKX19fSwzNTM0NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNjcwNTcpLEI9TCg0NzE4NCksRT1MKDY0NTQ4KSxNZT1MKDE0NjgyKSxVPUwoMjA1MDgpLFE9TCg0OTc5NyksWj1PYmplY3QuYXNzaWduO1hlLmV4cG9ydHM9IVp8fEwoNzQy''@;'; + put 'put ''NTMpKGZ1bmN0aW9uKCl7dmFyIGllPXt9LGxlPXt9LFk9U3ltYm9sKCksVz0iYWJjZGVmZ2hpamtsbW5vcHFyc3QiO3JldHVybiBpZVtZXT03LFcuc3BsaXQoIiIpLmZvckVhY2goZnVuY3Rpb24oTil7bGVbTl09Tn0pLDchPVooe30saWUpW1ldfHxPYmplY3Qua2V5cyhaKHt9LGxlKSkuam9p''@;'; + put 'put ''bigiIikhPVd9KT9mdW5jdGlvbihsZSxZKXtmb3IodmFyIFc9VShsZSksTj1hcmd1bWVudHMubGVuZ3RoLGVlPTEscT1FLmYsSj1NZS5mO04+ZWU7KWZvcih2YXIgdmUsc2U9UShhcmd1bWVudHNbZWUrK10pLG9lPXE/QihzZSkuY29uY2F0KHEoc2UpKTpCKHNlKSxjZT1vZS5sZW5ndGgsZGU9''@;'; + put 'put ''MDtjZT5kZTspdmU9b2VbZGUrK10sKCFtZXx8Si5jYWxsKHNlLHZlKSkmJihXW3ZlXT1zZVt2ZV0pO3JldHVybiBXfTpafSw0MjUwMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNzAwNyksQj1MKDM1NTg4KSxFPUwoNzQ0MzApLE1lPUwoNjkzMzUpKCJJRV9QUk9UTyIpLFU9ZnVuY3Rpb24oKXt9''@;'; + put 'put ''LFE9InByb3RvdHlwZSIsWj1mdW5jdGlvbigpe3ZhciBOLGllPUwoNjI0NTcpKCJpZnJhbWUiKSxsZT1FLmxlbmd0aDtmb3IoaWUuc3R5bGUuZGlzcGxheT0ibm9uZSIsTCg0MDYzOSkuYXBwZW5kQ2hpbGQoaWUpLGllLnNyYz0iamF2YXNjcmlwdDoiLChOPWllLmNvbnRlbnRXaW5kb3cuZG9j''@;'; + put 'put ''dW1lbnQpLm9wZW4oKSxOLndyaXRlKCI8c2NyaXB0PmRvY3VtZW50LkY9T2JqZWN0PFwvc2NyaXB0PiIpLE4uY2xvc2UoKSxaPU4uRjtsZS0tOylkZWxldGUgWltRXVtFW2xlXV07cmV0dXJuIFooKX07WGUuZXhwb3J0cz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihsZSxZKXt2YXIgVztyZXR1''@;'; + put 'put ''cm4gbnVsbCE9PWxlPyhVW1FdPW1lKGxlKSxXPW5ldyBVLFVbUV09bnVsbCxXW01lXT1sZSk6Vz1aKCksdm9pZCAwPT09WT9XOkIoVyxZKX19LDk5Mjc1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDI3MDA3KSxCPUwoMTczNCksRT1MKDIxNjg5KSxNZT1PYmplY3QuZGVmaW5lUHJvcGVydHk7SmUu''@;'; + put 'put ''Zj1MKDY3MDU3KT9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oUSxaLGllKXtpZihtZShRKSxaPUUoWiwhMCksbWUoaWUpLEIpdHJ5e3JldHVybiBNZShRLFosaWUpfWNhdGNoKGxlKXt9aWYoImdldCJpbiBpZXx8InNldCJpbiBpZSl0aHJvdyBUeXBlRXJyb3IoIkFjY2Vzc29ycyBu''@;'; + put 'put ''b3Qgc3VwcG9ydGVkISIpO3JldHVybiJ2YWx1ZSJpbiBpZSYmKFFbWl09aWUudmFsdWUpLFF9fSwzNTU4ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5OTI3NSksQj1MKDI3MDA3KSxFPUwoNDcxODQpO1hlLmV4cG9ydHM9TCg2NzA1Nyk/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24o''@;'; + put 'put ''VSxRKXtCKFUpO2Zvcih2YXIgWSxaPUUoUSksaWU9Wi5sZW5ndGgsbGU9MDtpZT5sZTspbWUuZihVLFk9WltsZSsrXSxRW1ldKTtyZXR1cm4gVX19LDE4NjkzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDE0NjgyKSxCPUwoOTA2ODEpLEU9TCgyMjExMCksTWU9TCgyMTY4OSksVT1MKDc5MTgxKSxR''@;'; + put 'put ''PUwoMTczNCksWj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO0plLmY9TCg2NzA1Nyk/WjpmdW5jdGlvbihsZSxZKXtpZihsZT1FKGxlKSxZPU1lKFksITApLFEpdHJ5e3JldHVybiBaKGxlLFkpfWNhdGNoKFcpe31pZihVKGxlLFkpKXJldHVybiBCKCFtZS5mLmNhbGwobGUsWSks''@;'; + put 'put ''bGVbWV0pfX0sMzkzMjc6KFhlLEplLEwpPT57dmFyIG1lPUwoMjIxMTApLEI9TCgyMDYxNikuZixFPXt9LnRvU3RyaW5nLE1lPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRv''@;'; + put 'put ''dyk6W107WGUuZXhwb3J0cy5mPWZ1bmN0aW9uKFope3JldHVybiBNZSYmIltvYmplY3QgV2luZG93XSI9PUUuY2FsbChaKT9mdW5jdGlvbihRKXt0cnl7cmV0dXJuIEIoUSl9Y2F0Y2goWil7cmV0dXJuIE1lLnNsaWNlKCl9fShaKTpCKG1lKFopKX19LDIwNjE2OihYZSxKZSxMKT0+e3ZhciBt''@;'; + put 'put ''ZT1MKDYwMTg5KSxCPUwoNzQ0MzApLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7SmUuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24oTWUpe3JldHVybiBtZShNZSxCKX19LDY0NTQ4OihYZSxKZSk9PntKZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9''@;'; + put 'put ''LDQ2ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3OTE4MSksQj1MKDIwNTA4KSxFPUwoNjkzMzUpKCJJRV9QUk9UTyIpLE1lPU9iamVjdC5wcm90b3R5cGU7WGUuZXhwb3J0cz1PYmplY3QuZ2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKFUpe3JldHVybiBVPUIoVSksbWUoVSxFKT9VW0VdOiJmdW5j''@;'; + put 'put ''dGlvbiI9PXR5cGVvZiBVLmNvbnN0cnVjdG9yJiZVIGluc3RhbmNlb2YgVS5jb25zdHJ1Y3Rvcj9VLmNvbnN0cnVjdG9yLnByb3RvdHlwZTpVIGluc3RhbmNlb2YgT2JqZWN0P01lOm51bGx9fSw2MDE4OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3OTE4MSksQj1MKDIyMTEwKSxFPUwoNzkzMTUp''@;'; + put 'put ''KCExKSxNZT1MKDY5MzM1KSgiSUVfUFJPVE8iKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUsUSl7dmFyIFksWj1CKFUpLGllPTAsbGU9W107Zm9yKFkgaW4gWilZIT1NZSYmbWUoWixZKSYmbGUucHVzaChZKTtmb3IoO1EubGVuZ3RoPmllOyltZShaLFk9UVtpZSsrXSkmJih+RShsZSxZKXx8bGUu''@;'; + put 'put ''cHVzaChZKSk7cmV0dXJuIGxlfX0sNDcxODQ6KFhlLEplLEwpPT57dmFyIG1lPUwoNjAxODkpLEI9TCg3NDQzMCk7WGUuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oTWUpe3JldHVybiBtZShNZSxCKX19LDE0NjgyOihYZSxKZSk9PntKZS5mPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxl''@;'; + put 'put ''fSwzMzE2MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDI1NjQ1KSxFPUwoNzQyNTMpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUsVSl7dmFyIFE9KEIuT2JqZWN0fHx7fSlbTWVdfHxPYmplY3RbTWVdLFo9e307WltNZV09VShRKSxtZShtZS5TK21lLkYqRShmdW5jdGlvbigpe1Eo''@;'; + put 'put ''MSl9KSwiT2JqZWN0IixaKX19LDU3NjQzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDIwNjE2KSxCPUwoNjQ1NDgpLEU9TCgyNzAwNyksTWU9TCgzODE2KS5SZWZsZWN0O1hlLmV4cG9ydHM9TWUmJk1lLm93bktleXN8fGZ1bmN0aW9uKFEpe3ZhciBaPW1lLmYoRShRKSksaWU9Qi5mO3JldHVybiBp''@;'; + put 'put ''ZT9aLmNvbmNhdChpZShRKSk6Wn19LDQ3NzQzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MTYpLnBhcnNlRmxvYXQsQj1MKDI5NTk5KS50cmltO1hlLmV4cG9ydHM9MS9tZShMKDg0NjQ0KSsiLTAiKSE9LTEvMD9mdW5jdGlvbihNZSl7dmFyIFU9QihTdHJpbmcoTWUpLDMpLFE9bWUoVSk7cmV0''@;'; + put 'put ''dXJuIDA9PT1RJiYiLSI9PVUuY2hhckF0KDApPy0wOlF9Om1lfSw1NTk2MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzODE2KS5wYXJzZUludCxCPUwoMjk1OTkpLnRyaW0sRT1MKDg0NjQ0KSxNZT0vXlstK10/MFt4WF0vO1hlLmV4cG9ydHM9OCE9PW1lKEUrIjA4Iil8fDIyIT09bWUoRSsiMHgx''@;'; + put 'put ''NiIpP2Z1bmN0aW9uKFEsWil7dmFyIGllPUIoU3RyaW5nKFEpLDMpO3JldHVybiBtZShpZSxaPj4+MHx8KE1lLnRlc3QoaWUpPzE2OjEwKSl9Om1lfSw5MDY4MTpYZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oSmUsTCl7cmV0dXJue2VudW1lcmFibGU6ISgxJkplKSxjb25maWd1cmFibGU6ISgy''@;'; + put 'put ''JkplKSx3cml0YWJsZTohKDQmSmUpLHZhbHVlOkx9fX0sMjQ0MDg6KFhlLEplLEwpPT57dmFyIG1lPUwoNzcyMzQpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQixFLE1lKXtmb3IodmFyIFUgaW4gRSltZShCLFUsRVtVXSxNZSk7cmV0dXJuIEJ9fSw3NzIzNDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgz''@;'; + put 'put ''ODE2KSxCPUwoODc3MjgpLEU9TCg3OTE4MSksTWU9TCg5Mzk1MykoInNyYyIpLFU9TCg0MDAxOCksUT0idG9TdHJpbmciLFo9KCIiK1UpLnNwbGl0KFEpO0woMjU2NDUpLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24oaWUpe3JldHVybiBVLmNhbGwoaWUpfSwoWGUuZXhwb3J0cz1mdW5jdGlvbihp''@;'; + put 'put ''ZSxsZSxZLFcpe3ZhciBOPSJmdW5jdGlvbiI9PXR5cGVvZiBZO04mJihFKFksIm5hbWUiKXx8QihZLCJuYW1lIixsZSkpLGllW2xlXSE9PVkmJihOJiYoRShZLE1lKXx8QihZLE1lLGllW2xlXT8iIitpZVtsZV06Wi5qb2luKFN0cmluZyhsZSkpKSksaWU9PT1tZT9pZVtsZV09WTpXP2llW2xl''@;'; + put 'put ''XT9pZVtsZV09WTpCKGllLGxlLFkpOihkZWxldGUgaWVbbGVdLEIoaWUsbGUsWSkpKX0pKEZ1bmN0aW9uLnByb3RvdHlwZSxRLGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJnRoaXNbTWVdfHxVLmNhbGwodGhpcyl9KX0sMjc3ODc6KFhlLEplLEwpPT57InVzZSBz''@;'; + put 'put ''dHJpY3QiO3ZhciBtZT1MKDQxNDg4KSxCPVJlZ0V4cC5wcm90b3R5cGUuZXhlYztYZS5leHBvcnRzPWZ1bmN0aW9uKEUsTWUpe3ZhciBVPUUuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2YgVSl7dmFyIFE9VS5jYWxsKEUsTWUpO2lmKCJvYmplY3QiIT10eXBlb2YgUSl0aHJvdyBuZXcgVHlw''@;'; + put 'put ''ZUVycm9yKCJSZWdFeHAgZXhlYyBtZXRob2QgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gT2JqZWN0IG9yIG51bGwiKTtyZXR1cm4gUX1pZigiUmVnRXhwIiE9PW1lKEUpKXRocm93IG5ldyBUeXBlRXJyb3IoIlJlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVj''@;'; + put 'put ''ZWl2ZXIiKTtyZXR1cm4gQi5jYWxsKEUsTWUpfX0sMjExNjU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBsZSxZLG1lPUwoNTMyMTgpLEI9UmVnRXhwLnByb3RvdHlwZS5leGVjLEU9U3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlLE1lPUIsVT0ibGFzdEluZGV4IixRPShZPS9iKi9nLEIu''@;'; + put 'put ''Y2FsbChsZT0vYS8sImEiKSxCLmNhbGwoWSwiYSIpLDAhPT1sZVtVXXx8MCE9PVlbVV0pLFo9dm9pZCAwIT09LygpPz8vLmV4ZWMoIiIpWzFdOyhRfHxaKSYmKE1lPWZ1bmN0aW9uKFkpe3ZhciBOLGVlLHEsSixXPXRoaXM7cmV0dXJuIFomJihlZT1uZXcgUmVnRXhwKCJeIitXLnNvdXJjZSsi''@;'; + put 'put ''JCg/IVxccykiLG1lLmNhbGwoVykpKSxRJiYoTj1XW1VdKSxxPUIuY2FsbChXLFkpLFEmJnEmJihXW1VdPVcuZ2xvYmFsP3EuaW5kZXgrcVswXS5sZW5ndGg6TiksWiYmcSYmcS5sZW5ndGg+MSYmRS5jYWxsKHFbMF0sZWUsZnVuY3Rpb24oKXtmb3IoSj0xO0o8YXJndW1lbnRzLmxlbmd0aC0y''@;'; + put 'put ''O0orKyl2b2lkIDA9PT1hcmd1bWVudHNbSl0mJihxW0pdPXZvaWQgMCl9KSxxfSksWGUuZXhwb3J0cz1NZX0sMjcxOTU6WGU9PntYZS5leHBvcnRzPU9iamVjdC5pc3x8ZnVuY3Rpb24oTCxtZSl7cmV0dXJuIEw9PT1tZT8wIT09THx8MS9MPT0xL21lOkwhPUwmJm1lIT1tZX19LDI3Mzc1OihY''@;'; + put 'put ''ZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2KSxCPUwoMjcwMDcpLEU9ZnVuY3Rpb24oTWUsVSl7aWYoQihNZSksIW1lKFUpJiZudWxsIT09VSl0aHJvdyBUeXBlRXJyb3IoVSsiOiBjYW4ndCBzZXQgYXMgcHJvdG90eXBlISIpfTtYZS5leHBvcnRzPXtzZXQ6T2JqZWN0LnNldFByb3RvdHlwZU9m''@;'; + put 'put ''fHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKE1lLFUsUSl7dHJ5eyhRPUwoNzQxKShGdW5jdGlvbi5jYWxsLEwoMTg2OTMpLmYoT2JqZWN0LnByb3RvdHlwZSwiX19wcm90b19fIikuc2V0LDIpKShNZSxbXSksVT0hKE1lIGluc3RhbmNlb2YgQXJyYXkpfWNhdGNoKFope1U9ITB9cmV0dXJu''@;'; + put 'put ''IGZ1bmN0aW9uKGllLGxlKXtyZXR1cm4gRShpZSxsZSksVT9pZS5fX3Byb3RvX189bGU6UShpZSxsZSksaWV9fSh7fSwhMSk6dm9pZCAwKSxjaGVjazpFfX0sMjk3NDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMzgxNiksQj1MKDk5Mjc1KSxFPUwoNjcwNTcpLE1lPUwoODYz''@;'; + put 'put ''MTQpKCJzcGVjaWVzIik7WGUuZXhwb3J0cz1mdW5jdGlvbihVKXt2YXIgUT1tZVtVXTtFJiZRJiYhUVtNZV0mJkIuZihRLE1lLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSl9fSwyMjk0MzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5OTI3NSkuZixCPUwoNzkx''@;'; + put 'put ''ODEpLEU9TCg4NjMxNCkoInRvU3RyaW5nVGFnIik7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSxVLFEpe01lJiYhQihNZT1RP01lOk1lLnByb3RvdHlwZSxFKSYmbWUoTWUsRSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOlV9KX19LDY5MzM1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MjUpKCJrZXlz''@;'; + put 'put ''IiksQj1MKDkzOTUzKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEUpe3JldHVybiBtZVtFXXx8KG1lW0VdPUIoRSkpfX0sMzgyNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNTY0NSksQj1MKDM4MTYpLEU9Il9fY29yZS1qc19zaGFyZWRfXyIsTWU9QltFXXx8KEJbRV09e30pOyhYZS5leHBvcnRzPWZ1''@;'; + put 'put ''bmN0aW9uKFUsUSl7cmV0dXJuIE1lW1VdfHwoTWVbVV09dm9pZCAwIT09UT9ROnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246bWUudmVyc2lvbixtb2RlOkwoNDQ2MSk/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiXHhhOSAyMDIwIERlbmlzIFB1c2hrYXJldiAoemxvaXJv''@;'; + put 'put ''Y2sucnUpIn0pfSw1ODM2NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNzAwNyksQj1MKDI0OTYzKSxFPUwoODYzMTQpKCJzcGVjaWVzIik7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSxVKXt2YXIgWixRPW1lKE1lKS5jb25zdHJ1Y3RvcjtyZXR1cm4gdm9pZCAwPT09UXx8bnVsbD09KFo9bWUoUSlb''@;'; + put 'put ''RV0pP1U6QihaKX19LDc3NzE3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg3NDI1Myk7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUpe3JldHVybiEhQiYmbWUoZnVuY3Rpb24oKXtFP0IuY2FsbChudWxsLGZ1bmN0aW9uKCl7fSwxKTpCLmNhbGwobnVsbCl9KX19LDI0NDk2OihY''@;'; + put 'put ''ZSxKZSxMKT0+e3ZhciBtZT1MKDgxNDY3KSxCPUwoOTEzNTUpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSl7cmV0dXJuIGZ1bmN0aW9uKE1lLFUpe3ZhciBsZSxZLFE9U3RyaW5nKEIoTWUpKSxaPW1lKFUpLGllPVEubGVuZ3RoO3JldHVybiBaPDB8fFo+PWllP0U/IiI6dm9pZCAwOihsZT1RLmNo''@;'; + put 'put ''YXJDb2RlQXQoWikpPDU1Mjk2fHxsZT41NjMxOXx8WisxPT09aWV8fChZPVEuY2hhckNvZGVBdChaKzEpKTw1NjMyMHx8WT41NzM0Mz9FP1EuY2hhckF0KFopOmxlOkU/US5zbGljZShaLForMik6WS01NjMyMCsobGUtNTUyOTY8PDEwKSs2NTUzNn19fSw0MjA5NDooWGUsSmUsTCk9Pnt2YXIg''@;'; + put 'put ''bWU9TCg1NTM2NCksQj1MKDkxMzU1KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEUsTWUsVSl7aWYobWUoTWUpKXRocm93IFR5cGVFcnJvcigiU3RyaW5nIyIrVSsiIGRvZXNuJ3QgYWNjZXB0IHJlZ2V4ISIpO3JldHVybiBTdHJpbmcoQihFKSl9fSwyOTM5NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0''@;'; + put 'put ''Mjk4NSksQj1MKDc0MjUzKSxFPUwoOTEzNTUpLE1lPS8iL2csVT1mdW5jdGlvbihRLFosaWUsbGUpe3ZhciBZPVN0cmluZyhFKFEpKSxXPSI8IitaO3JldHVybiIiIT09aWUmJihXKz0iICIraWUrJz0iJytTdHJpbmcobGUpLnJlcGxhY2UoTWUsIiZxdW90OyIpKyciJyksVysiPiIrWSsiPC8i''@;'; + put 'put ''K1orIj4ifTtYZS5leHBvcnRzPWZ1bmN0aW9uKFEsWil7dmFyIGllPXt9O2llW1FdPVooVSksbWUobWUuUCttZS5GKkIoZnVuY3Rpb24oKXt2YXIgbGU9IiJbUV0oJyInKTtyZXR1cm4gbGUhPT1sZS50b0xvd2VyQ2FzZSgpfHxsZS5zcGxpdCgnIicpLmxlbmd0aD4zfSksIlN0cmluZyIsaWUp''@;'; + put 'put ''fX0sNjg1OTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDgxNDY3KSxCPUwoOTEzNTUpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUpe3ZhciBVPVN0cmluZyhCKHRoaXMpKSxRPSIiLFo9bWUoTWUpO2lmKFo8MHx8Wj09MS8wKXRocm93IFJhbmdlRXJyb3IoIkNvdW50IGNhbid0''@;'; + put 'put ''IGJlIG5lZ2F0aXZlIik7Zm9yKDtaPjA7KFo+Pj49MSkmJihVKz1VKSkxJlomJihRKz1VKTtyZXR1cm4gUX19LDI5NTk5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoOTEzNTUpLEU9TCg3NDI1MyksTWU9TCg4NDY0NCksVT0iWyIrTWUrIl0iLFo9UmVnRXhwKCJeIitVK1UrIioi''@;'; + put 'put ''KSxpZT1SZWdFeHAoVStVKyIqJCIpLGxlPWZ1bmN0aW9uKFcsTixlZSl7dmFyIHE9e30sSj1FKGZ1bmN0aW9uKCl7cmV0dXJuISFNZVtXXSgpfHwiXHUyMDBiXHg4NSIhPSJcdTIwMGJceDg1IltXXSgpfSksc2U9cVtXXT1KP04oWSk6TWVbV107ZWUmJihxW2VlXT1zZSksbWUobWUuUCttZS5G''@;'; + put 'put ''KkosIlN0cmluZyIscSl9LFk9bGUudHJpbT1mdW5jdGlvbihXLE4pe3JldHVybiBXPVN0cmluZyhCKFcpKSwxJk4mJihXPVcucmVwbGFjZShaLCIiKSksMiZOJiYoVz1XLnJlcGxhY2UoaWUsIiIpKSxXfTtYZS5leHBvcnRzPWxlfSw4NDY0NDpYZT0+e1hlLmV4cG9ydHM9Ilx0XG5cdlxmXHIg''@;'; + put 'put ''XHhhMFx1MTY4MFx1MTgwZVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMFx1MjAyOFx1MjAyOVx1ZmVmZiJ9LDkyMzM3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDgxNDY3KSxCPU1hdGgubWF4''@;'; + put 'put ''LEU9TWF0aC5taW47WGUuZXhwb3J0cz1mdW5jdGlvbihNZSxVKXtyZXR1cm4oTWU9bWUoTWUpKTwwP0IoTWUrVSwwKTpFKE1lLFUpfX0sODE0Njc6WGU9Pnt2YXIgSmU9TWF0aC5jZWlsLEw9TWF0aC5mbG9vcjtYZS5leHBvcnRzPWZ1bmN0aW9uKG1lKXtyZXR1cm4gaXNOYU4obWU9K21lKT8w''@;'; + put 'put ''OihtZT4wP0w6SmUpKG1lKX19LDIyMTEwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQ5Nzk3KSxCPUwoOTEzNTUpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSl7cmV0dXJuIG1lKEIoRSkpfX0sMTA4NzU6KFhlLEplLEwpPT57dmFyIG1lPUwoODE0NjcpLEI9TWF0aC5taW47WGUuZXhwb3J0cz1mdW5j''@;'; + put 'put ''dGlvbihFKXtyZXR1cm4gRT4wP0IobWUoRSksOTAwNzE5OTI1NDc0MDk5MSk6MH19LDIwNTA4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkxMzU1KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIpe3JldHVybiBPYmplY3QobWUoQikpfX0sMjE2ODk6KFhlLEplLEwpPT57dmFyIG1lPUwoNTUyODYpO1hl''@;'; + put 'put ''LmV4cG9ydHM9ZnVuY3Rpb24oQixFKXtpZighbWUoQikpcmV0dXJuIEI7dmFyIE1lLFU7aWYoRSYmImZ1bmN0aW9uIj09dHlwZW9mKE1lPUIudG9TdHJpbmcpJiYhbWUoVT1NZS5jYWxsKEIpKXx8ImZ1bmN0aW9uIj09dHlwZW9mKE1lPUIudmFsdWVPZikmJiFtZShVPU1lLmNhbGwoQikpfHwh''@;'; + put 'put ''RSYmImZ1bmN0aW9uIj09dHlwZW9mKE1lPUIudG9TdHJpbmcpJiYhbWUoVT1NZS5jYWxsKEIpKSlyZXR1cm4gVTt0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sOTM5NTM6WGU9Pnt2YXIgSmU9MCxMPU1hdGgucmFuZG9tKCk7WGUu''@;'; + put 'put ''ZXhwb3J0cz1mdW5jdGlvbihtZSl7cmV0dXJuIlN5bWJvbCgiLmNvbmNhdCh2b2lkIDA9PT1tZT8iIjptZSwiKV8iLCgrK0plK0wpLnRvU3RyaW5nKDM2KSl9fSwxNjE2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7aWYoIW1lKEIpfHxCLl90''@;'; + put 'put ''IT09RSl0aHJvdyBUeXBlRXJyb3IoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitFKyIgcmVxdWlyZWQhIik7cmV0dXJuIEJ9fSwzNjA3NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzODE2KSxCPUwoMjU2NDUpLEU9TCg0NDYxKSxNZT1MKDI4Nzg3KSxVPUwoOTkyNzUpLmY7WGUuZXhwb3J0cz1m''@;'; + put 'put ''dW5jdGlvbihRKXt2YXIgWj1CLlN5bWJvbHx8KEIuU3ltYm9sPUU/e306bWUuU3ltYm9sfHx7fSk7Il8iIT1RLmNoYXJBdCgwKSYmIShRIGluIFopJiZVKFosUSx7dmFsdWU6TWUuZihRKX0pfX0sMjg3ODc6KFhlLEplLEwpPT57SmUuZj1MKDg2MzE0KX0sODYzMTQ6KFhlLEplLEwpPT57dmFy''@;'; + put 'put ''IG1lPUwoMzgyNSkoIndrcyIpLEI9TCg5Mzk1MyksRT1MKDM4MTYpLlN5bWJvbCxNZT0iZnVuY3Rpb24iPT10eXBlb2YgRTsoWGUuZXhwb3J0cz1mdW5jdGlvbihRKXtyZXR1cm4gbWVbUV18fChtZVtRXT1NZSYmRVtRXXx8KE1lP0U6QikoIlN5bWJvbC4iK1EpKX0pLnN0b3JlPW1lfSw2OTAw''@;'; + put 'put ''MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0MTQ4OCksQj1MKDg2MzE0KSgiaXRlcmF0b3IiKSxFPUwoODcyMzQpO1hlLmV4cG9ydHM9TCgyNTY0NSkuZ2V0SXRlcmF0b3JNZXRob2Q9ZnVuY3Rpb24oTWUpe2lmKG51bGwhPU1lKXJldHVybiBNZVtCXXx8TWVbIkBAaXRlcmF0b3IiXXx8RVttZShN''@;'; + put 'put ''ZSldfX0sMzJlMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUCwiQXJyYXkiLHtjb3B5V2l0aGluOkwoNTIxNil9KSxMKDE3NzIyKSgiY29weVdpdGhpbiIpfSwxNTc0NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCgxMDA1MCkoNCk7bWUo''@;'; + put 'put ''bWUuUCttZS5GKiFMKDc3NzE3KShbXS5ldmVyeSwhMCksIkFycmF5Iix7ZXZlcnk6ZnVuY3Rpb24oTWUpe3JldHVybiBCKHRoaXMsTWUsYXJndW1lbnRzWzFdKX19KX0sNDg5Nzc6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlAsIkFycmF5Iix7ZmlsbDpMKDQ2ODUyKX0pLEwo''@;'; + put 'put ''MTc3MjIpKCJmaWxsIil9LDk4ODM3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDEwMDUwKSgyKTttZShtZS5QK21lLkYqIUwoNzc3MTcpKFtdLmZpbHRlciwhMCksIkFycmF5Iix7ZmlsdGVyOmZ1bmN0aW9uKE1lKXtyZXR1cm4gQih0aGlzLE1lLGFyZ3Vt''@;'; + put 'put ''ZW50c1sxXSl9fSl9LDk0ODk5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDEwMDUwKSg2KSxFPSJmaW5kSW5kZXgiLE1lPSEwO0UgaW5bXSYmQXJyYXkoMSlbRV0oZnVuY3Rpb24oKXtNZT0hMX0pLG1lKG1lLlArbWUuRipNZSwiQXJyYXkiLHtmaW5kSW5k''@;'; + put 'put ''ZXg6ZnVuY3Rpb24oUSl7cmV0dXJuIEIodGhpcyxRLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxMKDE3NzIyKShFKX0sNTIzMTA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMTAwNTApKDUpLEU9ImZpbmQiLE1lPSEwO0Ug''@;'; + put 'put ''aW5bXSYmQXJyYXkoMSlbRV0oZnVuY3Rpb24oKXtNZT0hMX0pLG1lKG1lLlArbWUuRipNZSwiQXJyYXkiLHtmaW5kOmZ1bmN0aW9uKFEpe3JldHVybiBCKHRoaXMsUSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksTCgxNzcyMikoRSl9LDI0MzM2OihYZSxKZSxM''@;'; + put 'put ''KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDEwMDUwKSgwKSxFPUwoNzc3MTcpKFtdLmZvckVhY2gsITApO21lKG1lLlArbWUuRiohRSwiQXJyYXkiLHtmb3JFYWNoOmZ1bmN0aW9uKFUpe3JldHVybiBCKHRoaXMsVSxhcmd1bWVudHNbMV0pfX0pfSwzMDUyMjooWGUsSmUs''@;'; + put 'put ''TCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNzQxKSxCPUwoNDI5ODUpLEU9TCgyMDUwOCksTWU9TCgyODg1MSksVT1MKDg2NTU1KSxRPUwoMTA4NzUpLFo9TCg5MjgxMSksaWU9TCg2OTAwMik7QihCLlMrQi5GKiFMKDc0NjIpKGZ1bmN0aW9uKGxlKXtBcnJheS5mcm9tKGxlKX0pLCJBcnJh''@;'; + put 'put ''eSIse2Zyb206ZnVuY3Rpb24oWSl7dmFyIGNlLGRlLHZlLEFlLFc9RShZKSxOPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6QXJyYXksZWU9YXJndW1lbnRzLmxlbmd0aCxxPWVlPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxKPXZvaWQgMCE9PXEsc2U9MCxvZT1pZShXKTtpZihKJiYocT1t''@;'; + put 'put ''ZShxLGVlPjI/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSksbnVsbD09b2V8fE49PUFycmF5JiZVKG9lKSlmb3IoZGU9bmV3IE4oY2U9UShXLmxlbmd0aCkpO2NlPnNlO3NlKyspWihkZSxzZSxKP3EoV1tzZV0sc2UpOldbc2VdKTtlbHNlIGZvcihBZT1vZS5jYWxsKFcpLGRlPW5ldyBOOyEodmU9''@;'; + put 'put ''QWUubmV4dCgpKS5kb25lO3NlKyspWihkZSxzZSxKP01lKEFlLHEsW3ZlLnZhbHVlLHNlXSwhMCk6dmUudmFsdWUpO3JldHVybiBkZS5sZW5ndGg9c2UsZGV9fSl9LDIzMzY5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDc5MzE1KSghMSksRT1bXS5pbmRl''@;'; + put 'put ''eE9mLE1lPSEhRSYmMS9bMV0uaW5kZXhPZigxLC0wKTwwO21lKG1lLlArbWUuRiooTWV8fCFMKDc3NzE3KShFKSksIkFycmF5Iix7aW5kZXhPZjpmdW5jdGlvbihRKXtyZXR1cm4gTWU/RS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA6Qih0aGlzLFEsYXJndW1lbnRzWzFdKX19KX0sMjA3NzQ6''@;'; + put 'put ''KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIkFycmF5Iix7aXNBcnJheTpMKDQzMDIpfSl9LDU2OTk3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgxNzcyMiksQj1MKDE1NDM2KSxFPUwoODcyMzQpLE1lPUwoMjIxMTApO1hlLmV4cG9ydHM9TCg0MjkyMyko''@;'; + put 'put ''QXJyYXksIkFycmF5IixmdW5jdGlvbihVLFEpe3RoaXMuX3Q9TWUoVSksdGhpcy5faT0wLHRoaXMuX2s9UX0sZnVuY3Rpb24oKXt2YXIgVT10aGlzLl90LFE9dGhpcy5fayxaPXRoaXMuX2krKztyZXR1cm4hVXx8Wj49VS5sZW5ndGg/KHRoaXMuX3Q9dm9pZCAwLEIoMSkpOkIoMCwia2V5cyI9''@;'; + put 'put ''PVE/WjoidmFsdWVzIj09UT9VW1pdOltaLFVbWl1dKX0sInZhbHVlcyIpLEUuQXJndW1lbnRzPUUuQXJyYXksbWUoImtleXMiKSxtZSgidmFsdWVzIiksbWUoImVudHJpZXMiKX0sODc4NDI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMjIxMTApLEU9W10u''@;'; + put 'put ''am9pbjttZShtZS5QK21lLkYqKEwoNDk3OTcpIT1PYmplY3R8fCFMKDc3NzE3KShFKSksIkFycmF5Iix7am9pbjpmdW5jdGlvbihVKXtyZXR1cm4gRS5jYWxsKEIodGhpcyksdm9pZCAwPT09VT8iLCI6VSl9fSl9LDk5NTY0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4''@;'; + put 'put ''NSksQj1MKDIyMTEwKSxFPUwoODE0NjcpLE1lPUwoMTA4NzUpLFU9W10ubGFzdEluZGV4T2YsUT0hIVUmJjEvWzFdLmxhc3RJbmRleE9mKDEsLTApPDA7bWUobWUuUCttZS5GKihRfHwhTCg3NzcxNykoVSkpLCJBcnJheSIse2xhc3RJbmRleE9mOmZ1bmN0aW9uKGllKXtpZihRKXJldHVybiBV''@;'; + put 'put ''LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8MDt2YXIgbGU9Qih0aGlzKSxZPU1lKGxlLmxlbmd0aCksVz1ZLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKFc9TWF0aC5taW4oVyxFKGFyZ3VtZW50c1sxXSkpKSxXPDAmJihXPVkrVyk7Vz49MDtXLS0paWYoVyBpbiBsZSYmbGVbV109PT1pZSly''@;'; + put 'put ''ZXR1cm4gV3x8MDtyZXR1cm4tMX19KX0sMTkzNzE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMTAwNTApKDEpO21lKG1lLlArbWUuRiohTCg3NzcxNykoW10ubWFwLCEwKSwiQXJyYXkiLHttYXA6ZnVuY3Rpb24oTWUpe3JldHVybiBCKHRoaXMsTWUsYXJn''@;'; + put 'put ''dW1lbnRzWzFdKX19KX0sNTgyOTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoOTI4MTEpO21lKG1lLlMrbWUuRipMKDc0MjUzKShmdW5jdGlvbigpe2Z1bmN0aW9uIEUoKXt9cmV0dXJuIShBcnJheS5vZi5jYWxsKEUpaW5zdGFuY2VvZiBFKX0pLCJBcnJh''@;'; + put 'put ''eSIse29mOmZ1bmN0aW9uKCl7Zm9yKHZhciBNZT0wLFU9YXJndW1lbnRzLmxlbmd0aCxRPW5ldygiZnVuY3Rpb24iPT10eXBlb2YgdGhpcz90aGlzOkFycmF5KShVKTtVPk1lOylCKFEsTWUsYXJndW1lbnRzW01lKytdKTtyZXR1cm4gUS5sZW5ndGg9VSxRfX0pfSwzNzUwOihYZSxKZSxMKT0+''@;'; + put 'put ''eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDM3NjI4KTttZShtZS5QK21lLkYqIUwoNzc3MTcpKFtdLnJlZHVjZVJpZ2h0LCEwKSwiQXJyYXkiLHtyZWR1Y2VSaWdodDpmdW5jdGlvbihNZSl7cmV0dXJuIEIodGhpcyxNZSxhcmd1bWVudHMubGVuZ3RoLGFyZ3VtZW50c1sxXSwh''@;'; + put 'put ''MCl9fSl9LDMzMDU3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDM3NjI4KTttZShtZS5QK21lLkYqIUwoNzc3MTcpKFtdLnJlZHVjZSwhMCksIkFycmF5Iix7cmVkdWNlOmZ1bmN0aW9uKE1lKXtyZXR1cm4gQih0aGlzLE1lLGFyZ3VtZW50cy5sZW5ndGgs''@;'; + put 'put ''YXJndW1lbnRzWzFdLCExKX19KX0sNTAxMTA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoNDA2MzkpLEU9TCg5MjAzMiksTWU9TCg5MjMzNyksVT1MKDEwODc1KSxRPVtdLnNsaWNlO21lKG1lLlArbWUuRipMKDc0MjUzKShmdW5jdGlvbigpe0ImJlEuY2Fs''@;'; + put 'put ''bChCKX0pLCJBcnJheSIse3NsaWNlOmZ1bmN0aW9uKGllLGxlKXt2YXIgWT1VKHRoaXMubGVuZ3RoKSxXPUUodGhpcyk7aWYobGU9dm9pZCAwPT09bGU/WTpsZSwiQXJyYXkiPT1XKXJldHVybiBRLmNhbGwodGhpcyxpZSxsZSk7Zm9yKHZhciBOPU1lKGllLFkpLGVlPU1lKGxlLFkpLHE9VShl''@;'; + put 'put ''ZS1OKSxKPW5ldyBBcnJheShxKSxzZT0wO3NlPHE7c2UrKylKW3NlXT0iU3RyaW5nIj09Vz90aGlzLmNoYXJBdChOK3NlKTp0aGlzW04rc2VdO3JldHVybiBKfX0pfSwyNjc3MzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCgxMDA1MCkoMyk7bWUobWUuUCtt''@;'; + put 'put ''ZS5GKiFMKDc3NzE3KShbXS5zb21lLCEwKSwiQXJyYXkiLHtzb21lOmZ1bmN0aW9uKE1lKXtyZXR1cm4gQih0aGlzLE1lLGFyZ3VtZW50c1sxXSl9fSl9LDIwMDc1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDI0OTYzKSxFPUwoMjA1MDgpLE1lPUwoNzQy''@;'; + put 'put ''NTMpLFU9W10uc29ydCxRPVsxLDIsM107bWUobWUuUCttZS5GKihNZShmdW5jdGlvbigpe1Euc29ydCh2b2lkIDApfSl8fCFNZShmdW5jdGlvbigpe1Euc29ydChudWxsKX0pfHwhTCg3NzcxNykoVSkpLCJBcnJheSIse3NvcnQ6ZnVuY3Rpb24oaWUpe3JldHVybiB2b2lkIDA9PT1pZT9VLmNh''@;'; + put 'put ''bGwoRSh0aGlzKSk6VS5jYWxsKEUodGhpcyksQihpZSkpfX0pfSwzMTg0MjooWGUsSmUsTCk9PntMKDI5NzQpKCJBcnJheSIpfSw4MTgyMjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiRGF0ZSIse25vdzpmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgp''@;'; + put 'put ''fX0pfSw5MTAzMTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDUzNTM3KTttZShtZS5QK21lLkYqKERhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nIT09QiksIkRhdGUiLHt0b0lTT1N0cmluZzpCfSl9LDE5OTc3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4''@;'; + put 'put ''NSksQj1MKDIwNTA4KSxFPUwoMjE2ODkpO21lKG1lLlArbWUuRipMKDc0MjUzKShmdW5jdGlvbigpe3JldHVybiBudWxsIT09bmV3IERhdGUoTmFOKS50b0pTT04oKXx8MSE9PURhdGUucHJvdG90eXBlLnRvSlNPTi5jYWxsKHt0b0lTT1N0cmluZzpmdW5jdGlvbigpe3JldHVybiAxfX0pfSks''@;'; + put 'put ''IkRhdGUiLHt0b0pTT046ZnVuY3Rpb24oVSl7dmFyIFE9Qih0aGlzKSxaPUUoUSk7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBafHxpc0Zpbml0ZShaKT9RLnRvSVNPU3RyaW5nKCk6bnVsbH19KX0sNDE1NjA6KFhlLEplLEwpPT57dmFyIG1lPUwoODYzMTQpKCJ0b1ByaW1pdGl2ZSIpLEI9RGF0''@;'; + put 'put ''ZS5wcm90b3R5cGU7bWUgaW4gQnx8TCg4NzcyOCkoQixtZSxMKDg3MCkpfSw0NjMzMTooWGUsSmUsTCk9Pnt2YXIgbWU9RGF0ZS5wcm90b3R5cGUsQj0iSW52YWxpZCBEYXRlIixFPSJ0b1N0cmluZyIsTWU9bWVbRV0sVT1tZS5nZXRUaW1lO25ldyBEYXRlKE5hTikrIiIhPUImJkwoNzcyMzQp''@;'; + put 'put ''KG1lLEUsZnVuY3Rpb24oKXt2YXIgWj1VLmNhbGwodGhpcyk7cmV0dXJuIFo9PVo/TWUuY2FsbCh0aGlzKTpCfSl9LDM5NzMwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5QLCJGdW5jdGlvbiIse2JpbmQ6TCgzNDM5OCl9KX0sNDgzNzc6KFhlLEplLEwpPT57InVzZSBzdHJp''@;'; + put 'put ''Y3QiO3ZhciBtZT1MKDU1Mjg2KSxCPUwoNDY4KSxFPUwoODYzMTQpKCJoYXNJbnN0YW5jZSIpLE1lPUZ1bmN0aW9uLnByb3RvdHlwZTtFIGluIE1lfHxMKDk5Mjc1KS5mKE1lLEUse3ZhbHVlOmZ1bmN0aW9uKFUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzfHwhbWUoVSkpcmV0dXJuITE7''@;'; + put 'put ''aWYoIW1lKHRoaXMucHJvdG90eXBlKSlyZXR1cm4gVSBpbnN0YW5jZW9mIHRoaXM7Zm9yKDtVPUIoVSk7KWlmKHRoaXMucHJvdG90eXBlPT09VSlyZXR1cm4hMDtyZXR1cm4hMX19KX0sNjA1OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5OTI3NSkuZixCPUZ1bmN0aW9uLnByb3RvdHlwZSxFPS9e''@;'; + put 'put ''XHMqZnVuY3Rpb24gKFteIChdKikvOyJuYW1lImluIEJ8fEwoNjcwNTcpJiZtZShCLCJuYW1lIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3RyeXtyZXR1cm4oIiIrdGhpcykubWF0Y2goRSlbMV19Y2F0Y2goVSl7cmV0dXJuIiJ9fX0pfSw4ODQxNjooWGUsSmUsTCk9PnsidXNl''@;'; + put 'put ''IHN0cmljdCI7dmFyIG1lPUwoOTgyNCksQj1MKDE2MTYpLEU9Ik1hcCI7WGUuZXhwb3J0cz1MKDQ1Nzk1KShFLGZ1bmN0aW9uKE1lKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gTWUodGhpcyxhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSx7Z2V0OmZ1bmN0aW9u''@;'; + put 'put ''KFUpe3ZhciBRPW1lLmdldEVudHJ5KEIodGhpcyxFKSxVKTtyZXR1cm4gUSYmUS52fSxzZXQ6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gbWUuZGVmKEIodGhpcyxFKSwwPT09VT8wOlUsUSl9fSxtZSwhMCl9LDc2NTAzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNDYyMDYpLEU9TWF0''@;'; + put 'put ''aC5zcXJ0LE1lPU1hdGguYWNvc2g7bWUobWUuUyttZS5GKiEoTWUmJjcxMD09TWF0aC5mbG9vcihNZShOdW1iZXIuTUFYX1ZBTFVFKSkmJk1lKDEvMCk9PTEvMCksIk1hdGgiLHthY29zaDpmdW5jdGlvbihRKXtyZXR1cm4oUT0rUSk8MT9OYU46UT45NDkwNjI2NS42MjQyNTE1Nj9NYXRoLmxv''@;'; + put 'put ''ZyhRKStNYXRoLkxOMjpCKFEtMStFKFEtMSkqRShRKzEpKX19KX0sNjY3ODY6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TWF0aC5hc2luaDttZShtZS5TK21lLkYqIShCJiYxL0IoMCk+MCksIk1hdGgiLHthc2luaDpmdW5jdGlvbiBFKE1lKXtyZXR1cm4gaXNGaW5pdGUoTWU9K01l''@;'; + put 'put ''KSYmMCE9TWU/TWU8MD8tRSgtTWUpOk1hdGgubG9nKE1lK01hdGguc3FydChNZSpNZSsxKSk6TWV9fSl9LDUwOTMyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPU1hdGguYXRhbmg7bWUobWUuUyttZS5GKiEoQiYmMS9CKC0wKTwwKSwiTWF0aCIse2F0YW5oOmZ1bmN0aW9uKE1lKXty''@;'; + put 'put ''ZXR1cm4gMD09KE1lPStNZSk/TWU6TWF0aC5sb2coKDErTWUpLygxLU1lKSkvMn19KX0sNTc1MjY6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCg2MTgwMSk7bWUobWUuUywiTWF0aCIse2NicnQ6ZnVuY3Rpb24oTWUpe3JldHVybiBCKE1lPStNZSkqTWF0aC5wb3coTWF0aC5hYnMo''@;'; + put 'put ''TWUpLDEvMyl9fSl9LDIxNTkxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJNYXRoIix7Y2x6MzI6ZnVuY3Rpb24oRSl7cmV0dXJuKEU+Pj49MCk/MzEtTWF0aC5mbG9vcihNYXRoLmxvZyhFKy41KSpNYXRoLkxPRzJFKTozMn19KX0sOTA3MzooWGUsSmUsTCk9Pnt2YXIg''@;'; + put 'put ''bWU9TCg0Mjk4NSksQj1NYXRoLmV4cDttZShtZS5TLCJNYXRoIix7Y29zaDpmdW5jdGlvbihNZSl7cmV0dXJuKEIoTWU9K01lKStCKC1NZSkpLzJ9fSl9LDgwMzQ3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoMTMwODYpO21lKG1lLlMrbWUuRiooQiE9TWF0aC5leHBtMSksIk1h''@;'; + put 'put ''dGgiLHtleHBtMTpCfSl9LDMwNTc5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJNYXRoIix7ZnJvdW5kOkwoMzQ5MzQpfSl9LDQ2Njk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TWF0aC5hYnM7bWUobWUuUywiTWF0aCIse2h5cG90OmZ1bmN0aW9uKE1lLFUp''@;'; + put 'put ''e2Zvcih2YXIgWSxXLFE9MCxaPTAsaWU9YXJndW1lbnRzLmxlbmd0aCxsZT0wO1o8aWU7KWxlPChZPUIoYXJndW1lbnRzW1orK10pKT8oUT1RKihXPWxlL1kpKlcrMSxsZT1ZKTpRKz1ZPjA/KFc9WS9sZSkqVzpZO3JldHVybiBsZT09PTEvMD8xLzA6bGUqTWF0aC5zcXJ0KFEpfX0pfSw2Nzcx''@;'; + put 'put ''MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1NYXRoLmltdWw7bWUobWUuUyttZS5GKkwoNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuLTUhPUIoNDI5NDk2NzI5NSw1KXx8MiE9Qi5sZW5ndGh9KSwiTWF0aCIse2ltdWw6ZnVuY3Rpb24oTWUsVSl7dmFyIFE9NjU1MzUsWj0rTWUsaWU9''@;'; + put 'put ''K1UsbGU9USZaLFk9USZpZTtyZXR1cm4gMHxsZSpZKygoUSZaPj4+MTYpKlkrbGUqKFEmaWU+Pj4xNik8PDE2Pj4+MCl9fSl9LDQ1Nzg5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJNYXRoIix7bG9nMTA6ZnVuY3Rpb24oRSl7cmV0dXJuIE1hdGgubG9nKEUpKk1hdGgu''@;'; + put 'put ''TE9HMTBFfX0pfSwzMzUxNDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiTWF0aCIse2xvZzFwOkwoNDYyMDYpfSl9LDk5OTc4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJNYXRoIix7bG9nMjpmdW5jdGlvbihFKXtyZXR1cm4gTWF0aC5sb2coRSkv''@;'; + put 'put ''TWF0aC5MTjJ9fSl9LDU4NDcyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJNYXRoIix7c2lnbjpMKDYxODAxKX0pfSw4Njk0NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDEzMDg2KSxFPU1hdGguZXhwO21lKG1lLlMrbWUuRipMKDc0MjUzKShmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybi0yZS0xNyE9IU1hdGguc2luaCgtMmUtMTcpfSksIk1hdGgiLHtzaW5oOmZ1bmN0aW9uKFUpe3JldHVybiBNYXRoLmFicyhVPStVKTwxPyhCKFUpLUIoLVUpKS8yOihFKFUtMSktRSgtVS0xKSkqKE1hdGguRS8yKX19KX0sMzUwNjg6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5''@;'; + put 'put ''ODUpLEI9TCgxMzA4NiksRT1NYXRoLmV4cDttZShtZS5TLCJNYXRoIix7dGFuaDpmdW5jdGlvbihVKXt2YXIgUT1CKFU9K1UpLFo9QigtVSk7cmV0dXJuIFE9PTEvMD8xOlo9PTEvMD8tMTooUS1aKS8oRShVKStFKC1VKSl9fSl9LDQxMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUo''@;'; + put 'put ''bWUuUywiTWF0aCIse3RydW5jOmZ1bmN0aW9uKEUpe3JldHVybihFPjA/TWF0aC5mbG9vcjpNYXRoLmNlaWwpKEUpfX0pfSwxMTI0NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMzgxNiksQj1MKDc5MTgxKSxFPUwoOTIwMzIpLE1lPUwoNDAyNjYpLFU9TCgyMTY4OSksUT1M''@;'; + put 'put ''KDc0MjUzKSxaPUwoMjA2MTYpLmYsaWU9TCgxODY5MykuZixsZT1MKDk5Mjc1KS5mLFk9TCgyOTU5OSkudHJpbSxXPSJOdW1iZXIiLE49bWVbV10sZWU9TixxPU4ucHJvdG90eXBlLEo9RShMKDQyNTAzKShxKSk9PVcsc2U9InRyaW0iaW4gU3RyaW5nLnByb3RvdHlwZSxvZT1mdW5jdGlvbihB''@;'; + put 'put ''ZSl7dmFyIGtlPVUoQWUsITEpO2lmKCJzdHJpbmciPT10eXBlb2Yga2UmJmtlLmxlbmd0aD4yKXt2YXIgSWUsVGUsRWUsU2U9KGtlPXNlP2tlLnRyaW0oKTpZKGtlLDMpKS5jaGFyQ29kZUF0KDApO2lmKDQzPT09U2V8fDQ1PT09U2Upe2lmKDg4PT09KEllPWtlLmNoYXJDb2RlQXQoMikpfHwx''@;'; + put 'put ''MjA9PT1JZSlyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT1TZSl7c3dpdGNoKGtlLmNoYXJDb2RlQXQoMSkpe2Nhc2UgNjY6Y2FzZSA5ODpUZT0yLEVlPTQ5O2JyZWFrO2Nhc2UgNzk6Y2FzZSAxMTE6VGU9OCxFZT01NTticmVhaztkZWZhdWx0OnJldHVybitrZX1mb3IodmFyIG5lLGhlPWtlLnNs''@;'; + put 'put ''aWNlKDIpLE89MCx6PWhlLmxlbmd0aDtPPHo7TysrKWlmKChuZT1oZS5jaGFyQ29kZUF0KE8pKTw0OHx8bmU+RWUpcmV0dXJuIE5hTjtyZXR1cm4gcGFyc2VJbnQoaGUsVGUpfX1yZXR1cm4ra2V9O2lmKCFOKCIgMG8xIil8fCFOKCIwYjEiKXx8TigiKzB4MSIpKXtOPWZ1bmN0aW9uKGtlKXt2''@;'; + put 'put ''YXIgU2U9YXJndW1lbnRzLmxlbmd0aDwxPzA6a2UsSWU9dGhpcztyZXR1cm4gSWUgaW5zdGFuY2VvZiBOJiYoSj9RKGZ1bmN0aW9uKCl7cS52YWx1ZU9mLmNhbGwoSWUpfSk6RShJZSkhPVcpP01lKG5ldyBlZShvZShTZSkpLEllLE4pOm9lKFNlKX07Zm9yKHZhciB2ZSxjZT1MKDY3MDU3KT9a''@;'; + put 'put ''KGVlKToiTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksRVBTSUxPTixpc0Zpbml0ZSxpc0ludGVnZXIsaXNOYU4saXNTYWZlSW50ZWdlcixNQVhfU0FGRV9JTlRFR0VSLE1JTl9TQUZFX0lOVEVHRVIscGFyc2VGbG9hdCxwYXJzZUlu''@;'; + put 'put ''dCxpc0ludGVnZXIiLnNwbGl0KCIsIiksZGU9MDtjZS5sZW5ndGg+ZGU7ZGUrKylCKGVlLHZlPWNlW2RlXSkmJiFCKE4sdmUpJiZsZShOLHZlLGllKGVlLHZlKSk7Ti5wcm90b3R5cGU9cSxxLmNvbnN0cnVjdG9yPU4sTCg3NzIzNCkobWUsVyxOKX19LDc1OTcyOihYZSxKZSxMKT0+e3ZhciBt''@;'; + put 'put ''ZT1MKDQyOTg1KTttZShtZS5TLCJOdW1iZXIiLHtFUFNJTE9OOk1hdGgucG93KDIsLTUyKX0pfSw1MzQwMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDM4MTYpLmlzRmluaXRlO21lKG1lLlMsIk51bWJlciIse2lzRmluaXRlOmZ1bmN0aW9uKE1lKXtyZXR1cm4ibnVtYmVyIj09''@;'; + put 'put ''dHlwZW9mIE1lJiZCKE1lKX19KX0sOTI1MTY6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk51bWJlciIse2lzSW50ZWdlcjpMKDE4MzY3KX0pfSw0OTM3MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiTnVtYmVyIix7aXNOYU46ZnVuY3Rpb24oRSl7''@;'; + put 'put ''cmV0dXJuIEUhPUV9fSl9LDg2NDc5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoMTgzNjcpLEU9TWF0aC5hYnM7bWUobWUuUywiTnVtYmVyIix7aXNTYWZlSW50ZWdlcjpmdW5jdGlvbihVKXtyZXR1cm4gQihVKSYmRShVKTw9OTAwNzE5OTI1NDc0MDk5MX19KX0sOTE3MzY6KFhl''@;'; + put 'put ''LEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk51bWJlciIse01BWF9TQUZFX0lOVEVHRVI6OTAwNzE5OTI1NDc0MDk5MX0pfSw1MTg4OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiTnVtYmVyIix7TUlOX1NBRkVfSU5URUdFUjotOTAwNzE5OTI1NDc0MDk5''@;'; + put 'put ''MX0pfSw2NTE3NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDQ3NzQzKTttZShtZS5TK21lLkYqKE51bWJlci5wYXJzZUZsb2F0IT1CKSwiTnVtYmVyIix7cGFyc2VGbG9hdDpCfSl9LDgxMjQ2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNTU5NjApO21lKG1lLlMr''@;'; + put 'put ''bWUuRiooTnVtYmVyLnBhcnNlSW50IT1CKSwiTnVtYmVyIix7cGFyc2VJbnQ6Qn0pfSwzMDcyNjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCg4MTQ2NyksRT1MKDgzMzY1KSxNZT1MKDY4NTk1KSxVPTEuLnRvRml4ZWQsUT1NYXRoLmZsb29yLFo9WzAsMCww''@;'; + put 'put ''LDAsMCwwXSxpZT0iTnVtYmVyLnRvRml4ZWQ6IGluY29ycmVjdCBpbnZvY2F0aW9uISIsWT1mdW5jdGlvbihKLHNlKXtmb3IodmFyIG9lPS0xLGNlPXNlOysrb2U8NjspWltvZV09KGNlKz1KKlpbb2VdKSUxZTcsY2U9UShjZS8xZTcpfSxXPWZ1bmN0aW9uKEope2Zvcih2YXIgc2U9NixvZT0w''@;'; + put 'put ''Oy0tc2U+PTA7KVpbc2VdPVEoKG9lKz1aW3NlXSkvSiksb2U9b2UlSioxZTd9LE49ZnVuY3Rpb24oKXtmb3IodmFyIEo9NixzZT0iIjstLUo+PTA7KWlmKCIiIT09c2V8fDA9PT1KfHwwIT09WltKXSl7dmFyIG9lPVN0cmluZyhaW0pdKTtzZT0iIj09PXNlP29lOnNlK01lLmNhbGwoIjAiLDct''@;'; + put 'put ''b2UubGVuZ3RoKStvZX1yZXR1cm4gc2V9LGVlPWZ1bmN0aW9uKEosc2Usb2Upe3JldHVybiAwPT09c2U/b2U6c2UlMj09MT9lZShKLHNlLTEsb2UqSik6ZWUoSipKLHNlLzIsb2UpfTttZShtZS5QK21lLkYqKCEhVSYmKCIwLjAwMCIhPT04ZS01LnRvRml4ZWQoMyl8fCIxIiE9PS45LnRvRml4''@;'; + put 'put ''ZWQoMCl8fCIxLjI1IiE9PTEuMjU1LnRvRml4ZWQoMil8fCIxMDAwMDAwMDAwMDAwMDAwMTI4IiE9PSgweGRlMGI2YjNhNzY0MDA4MCkudG9GaXhlZCgwKSl8fCFMKDc0MjUzKShmdW5jdGlvbigpe1UuY2FsbCh7fSl9KSksIk51bWJlciIse3RvRml4ZWQ6ZnVuY3Rpb24oc2Upe3ZhciBBZSxr''@;'; + put 'put ''ZSxTZSxJZSxvZT1FKHRoaXMsaWUpLGNlPUIoc2UpLGRlPSIiLHZlPSIwIjtpZihjZTwwfHxjZT4yMCl0aHJvdyBSYW5nZUVycm9yKGllKTtpZihvZSE9b2UpcmV0dXJuIk5hTiI7aWYob2U8PS0xZTIxfHxvZT49MWUyMSlyZXR1cm4gU3RyaW5nKG9lKTtpZihvZTwwJiYoZGU9Ii0iLG9lPS1v''@;'; + put 'put ''ZSksb2U+MWUtMjEpaWYoQWU9ZnVuY3Rpb24oSil7Zm9yKHZhciBzZT0wLG9lPUo7b2U+PTQwOTY7KXNlKz0xMixvZS89NDA5Njtmb3IoO29lPj0yOylzZSs9MSxvZS89MjtyZXR1cm4gc2V9KG9lKmVlKDIsNjksMSkpLTY5LGtlPUFlPDA/b2UqZWUoMiwtQWUsMSk6b2UvZWUoMixBZSwxKSxr''@;'; + put 'put ''ZSo9NDUwMzU5OTYyNzM3MDQ5NiwoQWU9NTItQWUpPjApe2ZvcihZKDAsa2UpLFNlPWNlO1NlPj03OylZKDFlNywwKSxTZS09Nztmb3IoWShlZSgxMCxTZSwxKSwwKSxTZT1BZS0xO1NlPj0yMzspVygxPDwyMyksU2UtPTIzO1coMTw8U2UpLFkoMSwxKSxXKDIpLHZlPU4oKX1lbHNlIFkoMCxr''@;'; + put 'put ''ZSksWSgxPDwtQWUsMCksdmU9TigpK01lLmNhbGwoIjAiLGNlKTtyZXR1cm4gdmU9Y2U+MD9kZSsoKEllPXZlLmxlbmd0aCk8PWNlPyIwLiIrTWUuY2FsbCgiMCIsY2UtSWUpK3ZlOnZlLnNsaWNlKDAsSWUtY2UpKyIuIit2ZS5zbGljZShJZS1jZSkpOmRlK3ZlfX0pfSwxOTAxOihYZSxKZSxM''@;'; + put 'put ''KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDc0MjUzKSxFPUwoODMzNjUpLE1lPTEuLnRvUHJlY2lzaW9uO21lKG1lLlArbWUuRiooQihmdW5jdGlvbigpe3JldHVybiIxIiE9PU1lLmNhbGwoMSx2b2lkIDApfSl8fCFCKGZ1bmN0aW9uKCl7TWUuY2FsbCh7fSl9KSksIk51''@;'; + put 'put ''bWJlciIse3RvUHJlY2lzaW9uOmZ1bmN0aW9uKFEpe3ZhciBaPUUodGhpcywiTnVtYmVyI3RvUHJlY2lzaW9uOiBpbmNvcnJlY3QgaW52b2NhdGlvbiEiKTtyZXR1cm4gdm9pZCAwPT09UT9NZS5jYWxsKFopOk1lLmNhbGwoWixRKX19KX0sNzUxMTU6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5''@;'; + put 'put ''ODUpO21lKG1lLlMrbWUuRiwiT2JqZWN0Iix7YXNzaWduOkwoMzUzNDUpfSl9LDY4MTMyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJPYmplY3QiLHtjcmVhdGU6TCg0MjUwMyl9KX0sMzc0NzA6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMrbWUuRioh''@;'; + put 'put ''TCg2NzA1NyksIk9iamVjdCIse2RlZmluZVByb3BlcnRpZXM6TCgzNTU4OCl9KX0sNDgzODg6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMrbWUuRiohTCg2NzA1NyksIk9iamVjdCIse2RlZmluZVByb3BlcnR5OkwoOTkyNzUpLmZ9KX0sODkzNzU6KFhlLEplLEwpPT57dmFy''@;'; + put 'put ''IG1lPUwoNTUyODYpLEI9TCg4NDcyOCkub25GcmVlemU7TCgzMzE2MCkoImZyZWV6ZSIsZnVuY3Rpb24oRSl7cmV0dXJuIGZ1bmN0aW9uKFUpe3JldHVybiBFJiZtZShVKT9FKEIoVSkpOlV9fSl9LDk0ODgyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDIyMTEwKSxCPUwoMTg2OTMpLmY7TCgzMzE2''@;'; + put 'put ''MCkoImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oTWUsVSl7cmV0dXJuIEIobWUoTWUpLFUpfX0pfSw3OTYyMjooWGUsSmUsTCk9PntMKDMzMTYwKSgiZ2V0T3duUHJvcGVydHlOYW1lcyIsZnVuY3Rpb24oKXtyZXR1cm4gTCgzOTMyNykuZn0p''@;'; + put 'put ''fSw0MTUyMDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMDUwOCksQj1MKDQ2OCk7TCgzMzE2MCkoImdldFByb3RvdHlwZU9mIixmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihNZSl7cmV0dXJuIEIobWUoTWUpKX19KX0sNDk4OTI6KFhlLEplLEwpPT57dmFyIG1lPUwoNTUyODYpO0woMzMxNjAp''@;'; + put 'put ''KCJpc0V4dGVuc2libGUiLGZ1bmN0aW9uKEIpe3JldHVybiBmdW5jdGlvbihNZSl7cmV0dXJuISFtZShNZSkmJighQnx8QihNZSkpfX0pfSw2NDE1NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4Nik7TCgzMzE2MCkoImlzRnJvemVuIixmdW5jdGlvbihCKXtyZXR1cm4gZnVuY3Rpb24oTWUp''@;'; + put 'put ''e3JldHVybiFtZShNZSl8fCEhQiYmQihNZSl9fSl9LDM1MDk1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2KTtMKDMzMTYwKSgiaXNTZWFsZWQiLGZ1bmN0aW9uKEIpe3JldHVybiBmdW5jdGlvbihNZSl7cmV0dXJuIW1lKE1lKXx8ISFCJiZCKE1lKX19KX0sOTkxNzY6KFhlLEplLEwpPT57''@;'; + put 'put ''dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk9iamVjdCIse2lzOkwoMjcxOTUpfSl9LDI3NDc2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDIwNTA4KSxCPUwoNDcxODQpO0woMzMxNjApKCJrZXlzIixmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihNZSl7cmV0dXJuIEIobWUoTWUpKX19KX0sODQ2''@;'; + put 'put ''NzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNTUyODYpLEI9TCg4NDcyOCkub25GcmVlemU7TCgzMzE2MCkoInByZXZlbnRFeHRlbnNpb25zIixmdW5jdGlvbihFKXtyZXR1cm4gZnVuY3Rpb24oVSl7cmV0dXJuIEUmJm1lKFUpP0UoQihVKSk6VX19KX0sNDM1MzM6KFhlLEplLEwpPT57dmFyIG1l''@;'; + put 'put ''PUwoNTUyODYpLEI9TCg4NDcyOCkub25GcmVlemU7TCgzMzE2MCkoInNlYWwiLGZ1bmN0aW9uKEUpe3JldHVybiBmdW5jdGlvbihVKXtyZXR1cm4gRSYmbWUoVSk/RShCKFUpKTpVfX0pfSw2ODgzODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiT2JqZWN0Iix7c2V0UHJv''@;'; + put 'put ''dG90eXBlT2Y6TCgyNzM3NSkuc2V0fSl9LDk2MjUzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0MTQ4OCksQj17fTtCW0woODYzMTQpKCJ0b1N0cmluZ1RhZyIpXT0ieiIsQisiIiE9IltvYmplY3Qgel0iJiZMKDc3MjM0KShPYmplY3QucHJvdG90eXBlLCJ0b1N0cmluZyIs''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK21lKHRoaXMpKyJdIn0sITApfSw2NDI5OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDQ3NzQzKTttZShtZS5HK21lLkYqKHBhcnNlRmxvYXQhPUIpLHtwYXJzZUZsb2F0OkJ9KX0sNzEwODQ6KFhlLEplLEwpPT57dmFyIG1lPUwo''@;'; + put 'put ''NDI5ODUpLEI9TCg1NTk2MCk7bWUobWUuRyttZS5GKihwYXJzZUludCE9Qikse3BhcnNlSW50OkJ9KX0sMjE1NzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCgyNDk2MyksRT1MKDI3MDA3KSxNZT0oTCgzODE2KS5SZWZsZWN0fHx7fSkuYXBwbHksVT1GdW5jdGlvbi5hcHBseTtt''@;'; + put 'put ''ZShtZS5TK21lLkYqIUwoNzQyNTMpKGZ1bmN0aW9uKCl7TWUoZnVuY3Rpb24oKXt9KX0pLCJSZWZsZWN0Iix7YXBwbHk6ZnVuY3Rpb24oWixpZSxsZSl7dmFyIFk9QihaKSxXPUUobGUpO3JldHVybiBNZT9NZShZLGllLFcpOlUuY2FsbChZLGllLFcpfX0pfSw4MjEzOTooWGUsSmUsTCk9Pnt2''@;'; + put 'put ''YXIgbWU9TCg0Mjk4NSksQj1MKDQyNTAzKSxFPUwoMjQ5NjMpLE1lPUwoMjcwMDcpLFU9TCg1NTI4NiksUT1MKDc0MjUzKSxaPUwoMzQzOTgpLGllPShMKDM4MTYpLlJlZmxlY3R8fHt9KS5jb25zdHJ1Y3QsbGU9UShmdW5jdGlvbigpe2Z1bmN0aW9uIFcoKXt9cmV0dXJuIShpZShmdW5jdGlv''@;'; + put 'put ''bigpe30sW10sVylpbnN0YW5jZW9mIFcpfSksWT0hUShmdW5jdGlvbigpe2llKGZ1bmN0aW9uKCl7fSl9KTttZShtZS5TK21lLkYqKGxlfHxZKSwiUmVmbGVjdCIse2NvbnN0cnVjdDpmdW5jdGlvbihOLGVlKXtFKE4pLE1lKGVlKTt2YXIgcT1hcmd1bWVudHMubGVuZ3RoPDM/TjpFKGFyZ3Vt''@;'; + put 'put ''ZW50c1syXSk7aWYoWSYmIWxlKXJldHVybiBpZShOLGVlLHEpO2lmKE49PXEpe3N3aXRjaChlZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IE47Y2FzZSAxOnJldHVybiBuZXcgTihlZVswXSk7Y2FzZSAyOnJldHVybiBuZXcgTihlZVswXSxlZVsxXSk7Y2FzZSAzOnJldHVybiBuZXcgTihl''@;'; + put 'put ''ZVswXSxlZVsxXSxlZVsyXSk7Y2FzZSA0OnJldHVybiBuZXcgTihlZVswXSxlZVsxXSxlZVsyXSxlZVszXSl9dmFyIEo9W251bGxdO3JldHVybiBKLnB1c2guYXBwbHkoSixlZSksbmV3KFouYXBwbHkoTixKKSl9dmFyIHNlPXEucHJvdG90eXBlLG9lPUIoVShzZSk/c2U6T2JqZWN0LnByb3Rv''@;'; + put 'put ''dHlwZSksY2U9RnVuY3Rpb24uYXBwbHkuY2FsbChOLG9lLGVlKTtyZXR1cm4gVShjZSk/Y2U6b2V9fSl9LDEwNjg1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk5Mjc1KSxCPUwoNDI5ODUpLEU9TCgyNzAwNyksTWU9TCgyMTY4OSk7QihCLlMrQi5GKkwoNzQyNTMpKGZ1bmN0aW9uKCl7UmVmbGVj''@;'; + put 'put ''dC5kZWZpbmVQcm9wZXJ0eShtZS5mKHt9LDEse3ZhbHVlOjF9KSwxLHt2YWx1ZToyfSl9KSwiUmVmbGVjdCIse2RlZmluZVByb3BlcnR5OmZ1bmN0aW9uKFEsWixpZSl7RShRKSxaPU1lKFosITApLEUoaWUpO3RyeXtyZXR1cm4gbWUuZihRLFosaWUpLCEwfWNhdGNoKGxlKXtyZXR1cm4hMX19''@;'; + put 'put ''fSl9LDg1NTM1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoMTg2OTMpLmYsRT1MKDI3MDA3KTttZShtZS5TLCJSZWZsZWN0Iix7ZGVsZXRlUHJvcGVydHk6ZnVuY3Rpb24oVSxRKXt2YXIgWj1CKEUoVSksUSk7cmV0dXJuIShaJiYhWi5jb25maWd1cmFibGUpJiZkZWxldGUgVVtR''@;'; + put 'put ''XX19KX0sMTczNDc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMjcwMDcpLEU9ZnVuY3Rpb24oTWUpe3RoaXMuX3Q9QihNZSksdGhpcy5faT0wO3ZhciBRLFU9dGhpcy5faz1bXTtmb3IoUSBpbiBNZSlVLnB1c2goUSl9O0woNDk5ODgpKEUsIk9iamVjdCIs''@;'; + put 'put ''ZnVuY3Rpb24oKXt2YXIgUSxVPXRoaXMuX2s7ZG97aWYodGhpcy5faT49VS5sZW5ndGgpcmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX13aGlsZSghKChRPVVbdGhpcy5faSsrXSlpbiB0aGlzLl90KSk7cmV0dXJue3ZhbHVlOlEsZG9uZTohMX19KSxtZShtZS5TLCJSZWZsZWN0Iix7ZW51''@;'; + put 'put ''bWVyYXRlOmZ1bmN0aW9uKFUpe3JldHVybiBuZXcgRShVKX19KX0sOTY2MzM6KFhlLEplLEwpPT57dmFyIG1lPUwoMTg2OTMpLEI9TCg0Mjk4NSksRT1MKDI3MDA3KTtCKEIuUywiUmVmbGVjdCIse2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbihVLFEpe3JldHVybiBtZS5mKEUo''@;'; + put 'put ''VSksUSl9fSl9LDY4OTg5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNDY4KSxFPUwoMjcwMDcpO21lKG1lLlMsIlJlZmxlY3QiLHtnZXRQcm90b3R5cGVPZjpmdW5jdGlvbihVKXtyZXR1cm4gQihFKFUpKX19KX0sODMwNDk6KFhlLEplLEwpPT57dmFyIG1lPUwoMTg2OTMpLEI9''@;'; + put 'put ''TCg0NjgpLEU9TCg3OTE4MSksTWU9TCg0Mjk4NSksVT1MKDU1Mjg2KSxRPUwoMjcwMDcpO01lKE1lLlMsIlJlZmxlY3QiLHtnZXQ6ZnVuY3Rpb24gWihpZSxsZSl7dmFyIFcsTixZPWFyZ3VtZW50cy5sZW5ndGg8Mz9pZTphcmd1bWVudHNbMl07cmV0dXJuIFEoaWUpPT09WT9pZVtsZV06KFc9''@;'; + put 'put ''bWUuZihpZSxsZSkpP0UoVywidmFsdWUiKT9XLnZhbHVlOnZvaWQgMCE9PVcuZ2V0P1cuZ2V0LmNhbGwoWSk6dm9pZCAwOlUoTj1CKGllKSk/WihOLGxlLFkpOnZvaWQgMH19KX0sNzgyNzA6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIlJlZmxlY3QiLHtoYXM6ZnVuY3Rp''@;'; + put 'put ''b24oRSxNZSl7cmV0dXJuIE1lIGluIEV9fSl9LDY0NTEwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoMjcwMDcpLEU9T2JqZWN0LmlzRXh0ZW5zaWJsZTttZShtZS5TLCJSZWZsZWN0Iix7aXNFeHRlbnNpYmxlOmZ1bmN0aW9uKFUpe3JldHVybiBCKFUpLCFFfHxFKFUpfX0pfSw3''@;'; + put 'put ''Mzk4NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiUmVmbGVjdCIse293bktleXM6TCg1NzY0Myl9KX0sNzU3Njk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCgyNzAwNyksRT1PYmplY3QucHJldmVudEV4dGVuc2lvbnM7bWUobWUuUywiUmVmbGVjdCIse3By''@;'; + put 'put ''ZXZlbnRFeHRlbnNpb25zOmZ1bmN0aW9uKFUpe0IoVSk7dHJ5e3JldHVybiBFJiZFKFUpLCEwfWNhdGNoKFEpe3JldHVybiExfX19KX0sOTYwMTQ6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCgyNzM3NSk7QiYmbWUobWUuUywiUmVmbGVjdCIse3NldFByb3RvdHlwZU9mOmZ1bmN0''@;'; + put 'put ''aW9uKE1lLFUpe0IuY2hlY2soTWUsVSk7dHJ5e3JldHVybiBCLnNldChNZSxVKSwhMH1jYXRjaChRKXtyZXR1cm4hMX19fSl9LDUwMDU1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk5Mjc1KSxCPUwoMTg2OTMpLEU9TCg0NjgpLE1lPUwoNzkxODEpLFU9TCg0Mjk4NSksUT1MKDkwNjgxKSxaPUwo''@;'; + put 'put ''MjcwMDcpLGllPUwoNTUyODYpO1UoVS5TLCJSZWZsZWN0Iix7c2V0OmZ1bmN0aW9uIGxlKFksVyxOKXt2YXIgSixzZSxlZT1hcmd1bWVudHMubGVuZ3RoPDQ/WTphcmd1bWVudHNbM10scT1CLmYoWihZKSxXKTtpZighcSl7aWYoaWUoc2U9RShZKSkpcmV0dXJuIGxlKHNlLFcsTixlZSk7cT1R''@;'; + put 'put ''KDApfWlmKE1lKHEsInZhbHVlIikpe2lmKCExPT09cS53cml0YWJsZXx8IWllKGVlKSlyZXR1cm4hMTtpZihKPUIuZihlZSxXKSl7aWYoSi5nZXR8fEouc2V0fHwhMT09PUoud3JpdGFibGUpcmV0dXJuITE7Si52YWx1ZT1OLG1lLmYoZWUsVyxKKX1lbHNlIG1lLmYoZWUsVyxRKDAsTikpO3Jl''@;'; + put 'put ''dHVybiEwfXJldHVybiB2b2lkIDAhPT1xLnNldCYmKHEuc2V0LmNhbGwoZWUsTiksITApfX0pfSw4Mzk0NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzODE2KSxCPUwoNDAyNjYpLEU9TCg5OTI3NSkuZixNZT1MKDIwNjE2KS5mLFU9TCg1NTM2NCksUT1MKDUzMjE4KSxaPW1lLlJlZ0V4cCxpZT1a''@;'; + put 'put ''LGxlPVoucHJvdG90eXBlLFk9L2EvZyxXPS9hL2csTj1uZXcgWihZKSE9PVk7aWYoTCg2NzA1NykmJighTnx8TCg3NDI1MykoZnVuY3Rpb24oKXtyZXR1cm4gV1tMKDg2MzE0KSgibWF0Y2giKV09ITEsWihZKSE9WXx8WihXKT09V3x8Ii9hL2kiIT1aKFksImkiKX0pKSl7Wj1mdW5jdGlvbihv''@;'; + put 'put ''ZSxjZSl7dmFyIGRlPXRoaXMgaW5zdGFuY2VvZiBaLHZlPVUob2UpLEFlPXZvaWQgMD09PWNlO3JldHVybiFkZSYmdmUmJm9lLmNvbnN0cnVjdG9yPT09WiYmQWU/b2U6QihOP25ldyBpZSh2ZSYmIUFlP29lLnNvdXJjZTpvZSxjZSk6aWUoKHZlPW9lIGluc3RhbmNlb2YgWik/b2Uuc291cmNl''@;'; + put 'put ''Om9lLHZlJiZBZT9RLmNhbGwob2UpOmNlKSxkZT90aGlzOmxlLFopfTtmb3IodmFyIGVlPWZ1bmN0aW9uKHNlKXtzZSBpbiBafHxFKFosc2Use2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaWVbc2VdfSxzZXQ6ZnVuY3Rpb24ob2Upe2llW3NlXT1vZX19KX0scT1NZShp''@;'; + put 'put ''ZSksSj0wO3EubGVuZ3RoPko7KWVlKHFbSisrXSk7bGUuY29uc3RydWN0b3I9WixaLnByb3RvdHlwZT1sZSxMKDc3MjM0KShtZSwiUmVnRXhwIixaKX1MKDI5NzQpKCJSZWdFeHAiKX0sMTgyNjk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDIxMTY1KTtMKDQyOTg1KSh7dGFy''@;'; + put 'put ''Z2V0OiJSZWdFeHAiLHByb3RvOiEwLGZvcmNlZDptZSE9PS8uLy5leGVjfSx7ZXhlYzptZX0pfSw3Njc3NDooWGUsSmUsTCk9PntMKDY3MDU3KSYmImciIT0vLi9nLmZsYWdzJiZMKDk5Mjc1KS5mKFJlZ0V4cC5wcm90b3R5cGUsImZsYWdzIix7Y29uZmlndXJhYmxlOiEwLGdldDpMKDUzMjE4''@;'; + put 'put ''KX0pfSwyMTQ2NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjcwMDcpLEI9TCgxMDg3NSksRT1MKDc2NzkzKSxNZT1MKDI3Nzg3KTtMKDI4MDgyKSgibWF0Y2giLDEsZnVuY3Rpb24oVSxRLFosaWUpe3JldHVybltmdW5jdGlvbihZKXt2YXIgVz1VKHRoaXMpLE49bnVsbD09''@;'; + put 'put ''WT92b2lkIDA6WVtRXTtyZXR1cm4gdm9pZCAwIT09Tj9OLmNhbGwoWSxXKTpuZXcgUmVnRXhwKFkpW1FdKFN0cmluZyhXKSl9LGZ1bmN0aW9uKGxlKXt2YXIgWT1pZShaLGxlLHRoaXMpO2lmKFkuZG9uZSlyZXR1cm4gWS52YWx1ZTt2YXIgVz1tZShsZSksTj1TdHJpbmcodGhpcyk7aWYoIVcu''@;'; + put 'put ''Z2xvYmFsKXJldHVybiBNZShXLE4pO3ZhciBlZT1XLnVuaWNvZGU7Vy5sYXN0SW5kZXg9MDtmb3IodmFyIHNlLHE9W10sSj0wO251bGwhPT0oc2U9TWUoVyxOKSk7KXt2YXIgb2U9U3RyaW5nKHNlWzBdKTtxW0pdPW9lLCIiPT09b2UmJihXLmxhc3RJbmRleD1FKE4sQihXLmxhc3RJbmRleCks''@;'; + put 'put ''ZWUpKSxKKyt9cmV0dXJuIDA9PT1KP251bGw6cX1dfSl9LDU5MzU3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyNzAwNyksQj1MKDIwNTA4KSxFPUwoMTA4NzUpLE1lPUwoODE0NjcpLFU9TCg3Njc5MyksUT1MKDI3Nzg3KSxaPU1hdGgubWF4LGllPU1hdGgubWluLGxlPU1h''@;'; + put 'put ''dGguZmxvb3IsWT0vXCQoWyQmYCddfFxkXGQ/fDxbXj5dKj4pL2csVz0vXCQoWyQmYCddfFxkXGQ/KS9nLE49ZnVuY3Rpb24oZWUpe3JldHVybiB2b2lkIDA9PT1lZT9lZTpTdHJpbmcoZWUpfTtMKDI4MDgyKSgicmVwbGFjZSIsMixmdW5jdGlvbihlZSxxLEosc2Upe3JldHVybltmdW5jdGlv''@;'; + put 'put ''bihkZSx2ZSl7dmFyIEFlPWVlKHRoaXMpLGtlPW51bGw9PWRlP3ZvaWQgMDpkZVtxXTtyZXR1cm4gdm9pZCAwIT09a2U/a2UuY2FsbChkZSxBZSx2ZSk6Si5jYWxsKFN0cmluZyhBZSksZGUsdmUpfSxmdW5jdGlvbihjZSxkZSl7dmFyIHZlPXNlKEosY2UsdGhpcyxkZSk7aWYodmUuZG9uZSly''@;'; + put 'put ''ZXR1cm4gdmUudmFsdWU7dmFyIEFlPW1lKGNlKSxrZT1TdHJpbmcodGhpcyksU2U9ImZ1bmN0aW9uIj09dHlwZW9mIGRlO1NlfHwoZGU9U3RyaW5nKGRlKSk7dmFyIEllPUFlLmdsb2JhbDtpZihJZSl7dmFyIFRlPUFlLnVuaWNvZGU7QWUubGFzdEluZGV4PTB9Zm9yKHZhciBFZT1bXTs7KXt2''@;'; + put 'put ''YXIgaGU9UShBZSxrZSk7aWYobnVsbD09PWhlfHwoRWUucHVzaChoZSksIUllKSlicmVhazsiIj09PVN0cmluZyhoZVswXSkmJihBZS5sYXN0SW5kZXg9VShrZSxFKEFlLmxhc3RJbmRleCksVGUpKX1mb3IodmFyIHo9IiIsbmU9MCx0ZT0wO3RlPEVlLmxlbmd0aDt0ZSsrKXtoZT1FZVt0ZV07''@;'; + put 'put ''Zm9yKHZhciB4PVN0cmluZyhoZVswXSksUD1aKGllKE1lKGhlLmluZGV4KSxrZS5sZW5ndGgpLDApLFY9W10sVD0xO1Q8aGUubGVuZ3RoO1QrKylWLnB1c2goTihoZVtUXSkpO3ZhciBTPWhlLmdyb3VwcztpZihTZSl7dmFyIEY9W3hdLmNvbmNhdChWLFAsa2UpO3ZvaWQgMCE9PVMmJkYucHVz''@;'; + put 'put ''aChTKTt2YXIgeWU9U3RyaW5nKGRlLmFwcGx5KHZvaWQgMCxGKSl9ZWxzZSB5ZT1vZSh4LGtlLFAsVixTLGRlKTtQPj1uZSYmKHorPWtlLnNsaWNlKG5lLFApK3llLG5lPVAreC5sZW5ndGgpfXJldHVybiB6K2tlLnNsaWNlKG5lKX1dO2Z1bmN0aW9uIG9lKGNlLGRlLHZlLEFlLGtlLFNlKXt2''@;'; + put 'put ''YXIgSWU9dmUrY2UubGVuZ3RoLFRlPUFlLmxlbmd0aCxFZT1XO3JldHVybiB2b2lkIDAhPT1rZSYmKGtlPUIoa2UpLEVlPVkpLEouY2FsbChTZSxFZSxmdW5jdGlvbihoZSxPKXt2YXIgejtzd2l0Y2goTy5jaGFyQXQoMCkpe2Nhc2UiJCI6cmV0dXJuIiQiO2Nhc2UiJiI6cmV0dXJuIGNlO2Nh''@;'; + put 'put ''c2UiYCI6cmV0dXJuIGRlLnNsaWNlKDAsdmUpO2Nhc2UiJyI6cmV0dXJuIGRlLnNsaWNlKEllKTtjYXNlIjwiOno9a2VbTy5zbGljZSgxLC0xKV07YnJlYWs7ZGVmYXVsdDp2YXIgbmU9K087aWYoMD09PW5lKXJldHVybiBoZTtpZihuZT5UZSl7dmFyIHRlPWxlKG5lLzEwKTtyZXR1cm4gMD09''@;'; + put 'put ''PXRlP2hlOnRlPD1UZT92b2lkIDA9PT1BZVt0ZS0xXT9PLmNoYXJBdCgxKTpBZVt0ZS0xXStPLmNoYXJBdCgxKTpoZX16PUFlW25lLTFdfXJldHVybiB2b2lkIDA9PT16PyIiOnp9KX19KX0sNzYxNDI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI3MDA3KSxCPUwoMjcxOTUp''@;'; + put 'put ''LEU9TCgyNzc4Nyk7TCgyODA4MikoInNlYXJjaCIsMSxmdW5jdGlvbihNZSxVLFEsWil7cmV0dXJuW2Z1bmN0aW9uKGxlKXt2YXIgWT1NZSh0aGlzKSxXPW51bGw9PWxlP3ZvaWQgMDpsZVtVXTtyZXR1cm4gdm9pZCAwIT09Vz9XLmNhbGwobGUsWSk6bmV3IFJlZ0V4cChsZSlbVV0oU3RyaW5n''@;'; + put 'put ''KFkpKX0sZnVuY3Rpb24oaWUpe3ZhciBsZT1aKFEsaWUsdGhpcyk7aWYobGUuZG9uZSlyZXR1cm4gbGUudmFsdWU7dmFyIFk9bWUoaWUpLFc9U3RyaW5nKHRoaXMpLE49WS5sYXN0SW5kZXg7QihOLDApfHwoWS5sYXN0SW5kZXg9MCk7dmFyIGVlPUUoWSxXKTtyZXR1cm4gQihZLmxhc3RJbmRl''@;'; + put 'put ''eCxOKXx8KFkubGFzdEluZGV4PU4pLG51bGw9PT1lZT8tMTplZS5pbmRleH1dfSl9LDUxODc2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg1NTM2NCksQj1MKDI3MDA3KSxFPUwoNTgzNjQpLE1lPUwoNzY3OTMpLFU9TCgxMDg3NSksUT1MKDI3Nzg3KSxaPUwoMjExNjUpLGll''@;'; + put 'put ''PUwoNzQyNTMpLGxlPU1hdGgubWluLFk9W10ucHVzaCxXPSJzcGxpdCIsTj0ibGVuZ3RoIixlZT0ibGFzdEluZGV4IixxPTQyOTQ5NjcyOTUsSj0haWUoZnVuY3Rpb24oKXtSZWdFeHAocSwieSIpfSk7TCgyODA4MikoInNwbGl0IiwyLGZ1bmN0aW9uKHNlLG9lLGNlLGRlKXt2YXIgdmU7cmV0''@;'; + put 'put ''dXJuIHZlPSJjIj09ImFiYmMiW1ddKC8oYikqLylbMV18fDQhPSJ0ZXN0IltXXSgvKD86KS8sLTEpW05dfHwyIT0iYWIiW1ddKC8oPzphYikqLylbTl18fDQhPSIuIltXXSgvKC4/KSguPykvKVtOXXx8Ii4iW1ddKC8oKSgpLylbTl0+MXx8IiJbV10oLy4/LylbTl0/ZnVuY3Rpb24oQWUsa2Up''@;'; + put 'put ''e3ZhciBTZT1TdHJpbmcodGhpcyk7aWYodm9pZCAwPT09QWUmJjA9PT1rZSlyZXR1cm5bXTtpZighbWUoQWUpKXJldHVybiBjZS5jYWxsKFNlLEFlLGtlKTtmb3IodmFyIHosbmUsdGUsSWU9W10sRWU9MCxoZT12b2lkIDA9PT1rZT9xOmtlPj4+MCxPPW5ldyBSZWdFeHAoQWUuc291cmNlLChB''@;'; + put 'put ''ZS5pZ25vcmVDYXNlPyJpIjoiIikrKEFlLm11bHRpbGluZT8ibSI6IiIpKyhBZS51bmljb2RlPyJ1IjoiIikrKEFlLnN0aWNreT8ieSI6IiIpKyJnIik7KHo9Wi5jYWxsKE8sU2UpKSYmISgobmU9T1tlZV0pPkVlJiYoSWUucHVzaChTZS5zbGljZShFZSx6LmluZGV4KSkseltOXT4xJiZ6Lmlu''@;'; + put 'put ''ZGV4PFNlW05dJiZZLmFwcGx5KEllLHouc2xpY2UoMSkpLHRlPXpbMF1bTl0sRWU9bmUsSWVbTl0+PWhlKSk7KU9bZWVdPT09ei5pbmRleCYmT1tlZV0rKztyZXR1cm4gRWU9PT1TZVtOXT8odGV8fCFPLnRlc3QoIiIpKSYmSWUucHVzaCgiIik6SWUucHVzaChTZS5zbGljZShFZSkpLEllW05d''@;'; + put 'put ''PmhlP0llLnNsaWNlKDAsaGUpOkllfToiMCJbV10odm9pZCAwLDApW05dP2Z1bmN0aW9uKEFlLGtlKXtyZXR1cm4gdm9pZCAwPT09QWUmJjA9PT1rZT9bXTpjZS5jYWxsKHRoaXMsQWUsa2UpfTpjZSxbZnVuY3Rpb24oa2UsU2Upe3ZhciBJZT1zZSh0aGlzKSxUZT1udWxsPT1rZT92b2lkIDA6''@;'; + put 'put ''a2Vbb2VdO3JldHVybiB2b2lkIDAhPT1UZT9UZS5jYWxsKGtlLEllLFNlKTp2ZS5jYWxsKFN0cmluZyhJZSksa2UsU2UpfSxmdW5jdGlvbihBZSxrZSl7dmFyIFNlPWRlKHZlLEFlLHRoaXMsa2UsdmUhPT1jZSk7aWYoU2UuZG9uZSlyZXR1cm4gU2UudmFsdWU7dmFyIEllPUIoQWUpLFRlPVN0''@;'; + put 'put ''cmluZyh0aGlzKSxFZT1FKEllLFJlZ0V4cCksaGU9SWUudW5pY29kZSx6PW5ldyBFZShKP0llOiJeKD86IitJZS5zb3VyY2UrIikiLChJZS5pZ25vcmVDYXNlPyJpIjoiIikrKEllLm11bHRpbGluZT8ibSI6IiIpKyhJZS51bmljb2RlPyJ1IjoiIikrKEo/InkiOiJnIikpLG5lPXZvaWQgMD09''@;'; + put 'put ''PWtlP3E6a2U+Pj4wO2lmKDA9PT1uZSlyZXR1cm5bXTtpZigwPT09VGUubGVuZ3RoKXJldHVybiBudWxsPT09USh6LFRlKT9bVGVdOltdO2Zvcih2YXIgdGU9MCx4PTAsUD1bXTt4PFRlLmxlbmd0aDspe3oubGFzdEluZGV4PUo/eDowO3ZhciBULFY9USh6LEo/VGU6VGUuc2xpY2UoeCkpO2lm''@;'; + put 'put ''KG51bGw9PT1WfHwoVD1sZShVKHoubGFzdEluZGV4KyhKPzA6eCkpLFRlLmxlbmd0aCkpPT09dGUpeD1NZShUZSx4LGhlKTtlbHNle2lmKFAucHVzaChUZS5zbGljZSh0ZSx4KSksUC5sZW5ndGg9PT1uZSlyZXR1cm4gUDtmb3IodmFyIFM9MTtTPD1WLmxlbmd0aC0xO1MrKylpZihQLnB1c2go''@;'; + put 'put ''VltTXSksUC5sZW5ndGg9PT1uZSlyZXR1cm4gUDt4PXRlPVR9fXJldHVybiBQLnB1c2goVGUuc2xpY2UodGUpKSxQfV19KX0sNjYxMDg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woNzY3NzQpO3ZhciBtZT1MKDI3MDA3KSxCPUwoNTMyMTgpLEU9TCg2NzA1NyksTWU9InRvU3RyaW5nIixV''@;'; + put 'put ''PS8uL1tNZV0sUT1mdW5jdGlvbihaKXtMKDc3MjM0KShSZWdFeHAucHJvdG90eXBlLE1lLFosITApfTtMKDc0MjUzKShmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9VS5jYWxsKHtzb3VyY2U6ImEiLGZsYWdzOiJiIn0pfSk/UShmdW5jdGlvbigpe3ZhciBpZT1tZSh0aGlzKTtyZXR1cm4iLyIu''@;'; + put 'put ''Y29uY2F0KGllLnNvdXJjZSwiLyIsImZsYWdzImluIGllP2llLmZsYWdzOiFFJiZpZSBpbnN0YW5jZW9mIFJlZ0V4cD9CLmNhbGwoaWUpOnZvaWQgMCl9KTpVLm5hbWUhPU1lJiZRKGZ1bmN0aW9uKCl7cmV0dXJuIFUuY2FsbCh0aGlzKX0pfSw5ODE4NDooWGUsSmUsTCk9PnsidXNlIHN0cmlj''@;'; + put 'put ''dCI7dmFyIG1lPUwoOTgyNCksQj1MKDE2MTYpO1hlLmV4cG9ydHM9TCg0NTc5NSkoIlNldCIsZnVuY3Rpb24oTWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBNZSh0aGlzLGFyZ3VtZW50cy5sZW5ndGg+MD9hcmd1bWVudHNbMF06dm9pZCAwKX19LHthZGQ6ZnVuY3Rpb24oVSl7cmV0dXJu''@;'; + put 'put ''IG1lLmRlZihCKHRoaXMsIlNldCIpLFU9MD09PVU/MDpVLFUpfX0sbWUpfSw0MDg1NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgyOTM5NSkoImFuY2hvciIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbihFKXtyZXR1cm4gbWUodGhpcywiYSIsIm5hbWUiLEUpfX0pfSw4MDcwMzoo''@;'; + put 'put ''WGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgyOTM5NSkoImJpZyIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBtZSh0aGlzLCJiaWciLCIiLCIiKX19KX0sOTE1Mzk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJibGluayIsZnVuY3Rpb24obWUpe3Jl''@;'; + put 'put ''dHVybiBmdW5jdGlvbigpe3JldHVybiBtZSh0aGlzLCJibGluayIsIiIsIiIpfX0pfSw1MjkyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5Mzk1KSgiYm9sZCIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBtZSh0aGlzLCJiIiwiIiwiIil9fSl9LDI5NTM5OihY''@;'; + put 'put ''ZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDI0NDk2KSghMSk7bWUobWUuUCwiU3RyaW5nIix7Y29kZVBvaW50QXQ6ZnVuY3Rpb24oTWUpe3JldHVybiBCKHRoaXMsTWUpfX0pfSw5NjYyMDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUp''@;'; + put 'put ''LEI9TCgxMDg3NSksRT1MKDQyMDk0KSxNZT0iZW5kc1dpdGgiLFU9IiJbTWVdO21lKG1lLlArbWUuRipMKDg4NTIpKE1lKSwiU3RyaW5nIix7ZW5kc1dpdGg6ZnVuY3Rpb24oWil7dmFyIGllPUUodGhpcyxaLE1lKSxsZT1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxZ''@;'; + put 'put ''PUIoaWUubGVuZ3RoKSxXPXZvaWQgMD09PWxlP1k6TWF0aC5taW4oQihsZSksWSksTj1TdHJpbmcoWik7cmV0dXJuIFU/VS5jYWxsKGllLE4sVyk6aWUuc2xpY2UoVy1OLmxlbmd0aCxXKT09PU59fSl9LDQ1MTc3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5Mzk1KSgiZml4ZWQiLGZ1''@;'; + put 'put ''bmN0aW9uKG1lKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbWUodGhpcywidHQiLCIiLCIiKX19KX0sNzM2OTQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJmb250Y29sb3IiLGZ1bmN0aW9uKG1lKXtyZXR1cm4gZnVuY3Rpb24oRSl7cmV0dXJuIG1lKHRoaXMsImZvbnQi''@;'; + put 'put ''LCJjb2xvciIsRSl9fSl9LDM3NjQ4OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5Mzk1KSgiZm9udHNpemUiLGZ1bmN0aW9uKG1lKXtyZXR1cm4gZnVuY3Rpb24oRSl7cmV0dXJuIG1lKHRoaXMsImZvbnQiLCJzaXplIixFKX19KX0sNTAxOTE6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5''@;'; + put 'put ''ODUpLEI9TCg5MjMzNyksRT1TdHJpbmcuZnJvbUNoYXJDb2RlLE1lPVN0cmluZy5mcm9tQ29kZVBvaW50O21lKG1lLlMrbWUuRiooISFNZSYmMSE9TWUubGVuZ3RoKSwiU3RyaW5nIix7ZnJvbUNvZGVQb2ludDpmdW5jdGlvbihRKXtmb3IodmFyIFksWj1bXSxpZT1hcmd1bWVudHMubGVuZ3Ro''@;'; + put 'put ''LGxlPTA7aWU+bGU7KXtpZihZPSthcmd1bWVudHNbbGUrK10sQihZLDExMTQxMTEpIT09WSl0aHJvdyBSYW5nZUVycm9yKFkrIiBpcyBub3QgYSB2YWxpZCBjb2RlIHBvaW50Iik7Wi5wdXNoKFk8NjU1MzY/RShZKTpFKDU1Mjk2KygoWS09NjU1MzYpPj4xMCksWSUxMDI0KzU2MzIwKSl9cmV0''@;'; + put 'put ''dXJuIFouam9pbigiIil9fSl9LDYyODUwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDQyMDk0KSxFPSJpbmNsdWRlcyI7bWUobWUuUCttZS5GKkwoODg1MikoRSksIlN0cmluZyIse2luY2x1ZGVzOmZ1bmN0aW9uKFUpe3JldHVybiEhfkIodGhpcyxVLEUp''@;'; + put 'put ''LmluZGV4T2YoVSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LDI3Nzk1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5Mzk1KSgiaXRhbGljcyIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBtZSh0aGlzLCJpIiwiIiwiIil9fSl9''@;'; + put 'put ''LDM5MTE1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyNDQ5NikoITApO0woNDI5MjMpKFN0cmluZywiU3RyaW5nIixmdW5jdGlvbihCKXt0aGlzLl90PVN0cmluZyhCKSx0aGlzLl9pPTB9LGZ1bmN0aW9uKCl7dmFyIE1lLEI9dGhpcy5fdCxFPXRoaXMuX2k7cmV0dXJuIEU+''@;'; + put 'put ''PUIubGVuZ3RoP3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06KE1lPW1lKEIsRSksdGhpcy5faSs9TWUubGVuZ3RoLHt2YWx1ZTpNZSxkb25lOiExfSl9KX0sNDUzMTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgyOTM5NSkoImxpbmsiLGZ1bmN0aW9uKG1lKXtyZXR1cm4gZnVuY3Rpb24oRSl7''@;'; + put 'put ''cmV0dXJuIG1lKHRoaXMsImEiLCJocmVmIixFKX19KX0sOTgzMDY6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCgyMjExMCksRT1MKDEwODc1KTttZShtZS5TLCJTdHJpbmciLHtyYXc6ZnVuY3Rpb24oVSl7Zm9yKHZhciBRPUIoVS5yYXcpLFo9RShRLmxlbmd0aCksaWU9YXJndW1l''@;'; + put 'put ''bnRzLmxlbmd0aCxsZT1bXSxZPTA7Wj5ZOylsZS5wdXNoKFN0cmluZyhRW1krK10pKSxZPGllJiZsZS5wdXNoKFN0cmluZyhhcmd1bWVudHNbWV0pKTtyZXR1cm4gbGUuam9pbigiIil9fSl9LDEwODIzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5QLCJTdHJpbmciLHtyZXBl''@;'; + put 'put ''YXQ6TCg2ODU5NSl9KX0sMjM2MDU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJzbWFsbCIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBtZSh0aGlzLCJzbWFsbCIsIiIsIiIpfX0pfSwxNzczMjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1l''@;'; + put 'put ''PUwoNDI5ODUpLEI9TCgxMDg3NSksRT1MKDQyMDk0KSxNZT0ic3RhcnRzV2l0aCIsVT0iIltNZV07bWUobWUuUCttZS5GKkwoODg1MikoTWUpLCJTdHJpbmciLHtzdGFydHNXaXRoOmZ1bmN0aW9uKFope3ZhciBpZT1FKHRoaXMsWixNZSksbGU9QihNYXRoLm1pbihhcmd1bWVudHMubGVuZ3Ro''@;'; + put 'put ''PjE/YXJndW1lbnRzWzFdOnZvaWQgMCxpZS5sZW5ndGgpKSxZPVN0cmluZyhaKTtyZXR1cm4gVT9VLmNhbGwoaWUsWSxsZSk6aWUuc2xpY2UobGUsbGUrWS5sZW5ndGgpPT09WX19KX0sNjc4MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgyOTM5NSkoInN0cmlrZSIsZnVuY3Rpb24obWUp''@;'; + put 'put ''e3JldHVybiBmdW5jdGlvbigpe3JldHVybiBtZSh0aGlzLCJzdHJpa2UiLCIiLCIiKX19KX0sNjk5Mzc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJzdWIiLGZ1bmN0aW9uKG1lKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbWUodGhpcywic3ViIiwiIiwiIil9fSl9LDEw''@;'; + put 'put ''NTExOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5Mzk1KSgic3VwIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG1lKHRoaXMsInN1cCIsIiIsIiIpfX0pfSw2NDU2NDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgyOTU5OSkoInRyaW0iLGZ1bmN0aW9uKG1l''@;'; + put 'put ''KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbWUodGhpcywzKX19KX0sOTU3Njc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDM4MTYpLEI9TCg3OTE4MSksRT1MKDY3MDU3KSxNZT1MKDQyOTg1KSxVPUwoNzcyMzQpLFE9TCg4NDcyOCkuS0VZLFo9TCg3NDI1MyksaWU9TCgz''@;'; + put 'put ''ODI1KSxsZT1MKDIyOTQzKSxZPUwoOTM5NTMpLFc9TCg4NjMxNCksTj1MKDI4Nzg3KSxlZT1MKDM2MDc0KSxxPUwoNTU0MSksSj1MKDQzMDIpLHNlPUwoMjcwMDcpLG9lPUwoNTUyODYpLGNlPUwoMjA1MDgpLGRlPUwoMjIxMTApLHZlPUwoMjE2ODkpLEFlPUwoOTA2ODEpLGtlPUwoNDI1MDMp''@;'; + put 'put ''LFNlPUwoMzkzMjcpLEllPUwoMTg2OTMpLFRlPUwoNjQ1NDgpLEVlPUwoOTkyNzUpLGhlPUwoNDcxODQpLE89SWUuZix6PUVlLmYsbmU9U2UuZix0ZT1tZS5TeW1ib2wseD1tZS5KU09OLFA9eCYmeC5zdHJpbmdpZnksVj0icHJvdG90eXBlIixUPVcoIl9oaWRkZW4iKSxTPVcoInRvUHJpbWl0''@;'; + put 'put ''aXZlIiksRj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSx5ZT1pZSgic3ltYm9sLXJlZ2lzdHJ5IiksQ2U9aWUoInN5bWJvbHMiKSxEZT1pZSgib3Atc3ltYm9scyIpLFBlPU9iamVjdFtWXSxRZT0iZnVuY3Rpb24iPT10eXBlb2YgdGUmJiEhVGUuZiwkZT1tZS5RT2JqZWN0LGd0PSEkZXx8ISRl''@;'; + put 'put ''W1ZdfHwhJGVbVl0uZmluZENoaWxkLHd0PUUmJlooZnVuY3Rpb24oKXtyZXR1cm4gNyE9a2Uoeih7fSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiB6KHRoaXMsImEiLHt2YWx1ZTo3fSkuYX19KSkuYX0pP2Z1bmN0aW9uKEdlLFVlLHl0KXt2YXIganQ9TyhQZSxVZSk7anQmJmRlbGV0ZSBQ''@;'; + put 'put ''ZVtVZV0seihHZSxVZSx5dCksanQmJkdlIT09UGUmJnooUGUsVWUsanQpfTp6LHZ0PWZ1bmN0aW9uKEdlKXt2YXIgVWU9Q2VbR2VdPWtlKHRlW1ZdKTtyZXR1cm4gVWUuX2s9R2UsVWV9LEF0PVFlJiYic3ltYm9sIj09dHlwZW9mIHRlLml0ZXJhdG9yP2Z1bmN0aW9uKEdlKXtyZXR1cm4ic3lt''@;'; + put 'put ''Ym9sIj09dHlwZW9mIEdlfTpmdW5jdGlvbihHZSl7cmV0dXJuIEdlIGluc3RhbmNlb2YgdGV9LG10PWZ1bmN0aW9uKFVlLHl0LGp0KXtyZXR1cm4gVWU9PT1QZSYmbXQoRGUseXQsanQpLHNlKFVlKSx5dD12ZSh5dCwhMCksc2UoanQpLEIoQ2UseXQpPyhqdC5lbnVtZXJhYmxlPyhCKFVlLFQp''@;'; + put 'put ''JiZVZVtUXVt5dF0mJihVZVtUXVt5dF09ITEpLGp0PWtlKGp0LHtlbnVtZXJhYmxlOkFlKDAsITEpfSkpOihCKFVlLFQpfHx6KFVlLFQsQWUoMSx7fSkpLFVlW1RdW3l0XT0hMCksd3QoVWUseXQsanQpKTp6KFVlLHl0LGp0KX0saHQ9ZnVuY3Rpb24oVWUseXQpe3NlKFVlKTtmb3IodmFyIGRu''@;'; + put 'put ''LGp0PXEoeXQ9ZGUoeXQpKSxRdD0wLGduPWp0Lmxlbmd0aDtnbj5RdDspbXQoVWUsZG49anRbUXQrK10seXRbZG5dKTtyZXR1cm4gVWV9LG9uPWZ1bmN0aW9uKFVlKXt2YXIgeXQ9Ri5jYWxsKHRoaXMsVWU9dmUoVWUsITApKTtyZXR1cm4hKHRoaXM9PT1QZSYmQihDZSxVZSkmJiFCKERlLFVl''@;'; + put 'put ''KSkmJighKHl0fHwhQih0aGlzLFVlKXx8IUIoQ2UsVWUpfHxCKHRoaXMsVCkmJnRoaXNbVF1bVWVdKXx8eXQpfSxfdD1mdW5jdGlvbihVZSx5dCl7aWYoVWU9ZGUoVWUpLHl0PXZlKHl0LCEwKSxVZSE9PVBlfHwhQihDZSx5dCl8fEIoRGUseXQpKXt2YXIganQ9TyhVZSx5dCk7cmV0dXJuIGp0''@;'; + put 'put ''JiZCKENlLHl0KSYmIShCKFVlLFQpJiZVZVtUXVt5dF0pJiYoanQuZW51bWVyYWJsZT0hMCksanR9fSx0dD1mdW5jdGlvbihVZSl7Zm9yKHZhciBnbix5dD1uZShkZShVZSkpLGp0PVtdLFF0PTA7eXQubGVuZ3RoPlF0OykhQihDZSxnbj15dFtRdCsrXSkmJmduIT1UJiZnbiE9USYmanQucHVz''@;'; + put 'put ''aChnbik7cmV0dXJuIGp0fSxldD1mdW5jdGlvbihVZSl7Zm9yKHZhciBkbix5dD1VZT09PVBlLGp0PW5lKHl0P0RlOmRlKFVlKSksUXQ9W10sZ249MDtqdC5sZW5ndGg+Z247KUIoQ2UsZG49anRbZ24rK10pJiYoIXl0fHxCKFBlLGRuKSkmJlF0LnB1c2goQ2VbZG5dKTtyZXR1cm4gUXR9O1Fl''@;'; + put 'put ''fHwoVSgodGU9ZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2YgdGUpdGhyb3cgVHlwZUVycm9yKCJTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3IhIik7dmFyIFVlPVkoYXJndW1lbnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDApLHl0PWZ1bmN0aW9uKGp0KXt0aGlzPT09UGUm''@;'; + put 'put ''Jnl0LmNhbGwoRGUsanQpLEIodGhpcyxUKSYmQih0aGlzW1RdLFVlKSYmKHRoaXNbVF1bVWVdPSExKSx3dCh0aGlzLFVlLEFlKDEsanQpKX07cmV0dXJuIEUmJmd0JiZ3dChQZSxVZSx7Y29uZmlndXJhYmxlOiEwLHNldDp5dH0pLHZ0KFVlKX0pW1ZdLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXty''@;'; + put 'put ''ZXR1cm4gdGhpcy5fa30pLEllLmY9X3QsRWUuZj1tdCxMKDIwNjE2KS5mPVNlLmY9dHQsTCgxNDY4MikuZj1vbixUZS5mPWV0LEUmJiFMKDQ0NjEpJiZVKFBlLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsb24sITApLE4uZj1mdW5jdGlvbihHZSl7cmV0dXJuIHZ0KFcoR2UpKX0pLE1lKE1lLkcr''@;'; + put 'put ''TWUuVytNZS5GKiFRZSx7U3ltYm9sOnRlfSk7Zm9yKHZhciBhdD0iaGFzSW5zdGFuY2UsaXNDb25jYXRTcHJlYWRhYmxlLGl0ZXJhdG9yLG1hdGNoLHJlcGxhY2Usc2VhcmNoLHNwZWNpZXMsc3BsaXQsdG9QcmltaXRpdmUsdG9TdHJpbmdUYWcsdW5zY29wYWJsZXMiLnNwbGl0KCIsIiksTHQ9''@;'; + put 'put ''MDthdC5sZW5ndGg+THQ7KVcoYXRbTHQrK10pO2Zvcih2YXIgQ3Q9aGUoVy5zdG9yZSksZnQ9MDtDdC5sZW5ndGg+ZnQ7KWVlKEN0W2Z0KytdKTtNZShNZS5TK01lLkYqIVFlLCJTeW1ib2wiLHtmb3I6ZnVuY3Rpb24oR2Upe3JldHVybiBCKHllLEdlKz0iIik/eWVbR2VdOnllW0dlXT10ZShH''@;'; + put 'put ''ZSl9LGtleUZvcjpmdW5jdGlvbihVZSl7aWYoIUF0KFVlKSl0aHJvdyBUeXBlRXJyb3IoVWUrIiBpcyBub3QgYSBzeW1ib2whIik7Zm9yKHZhciB5dCBpbiB5ZSlpZih5ZVt5dF09PT1VZSlyZXR1cm4geXR9LHVzZVNldHRlcjpmdW5jdGlvbigpe2d0PSEwfSx1c2VTaW1wbGU6ZnVuY3Rpb24o''@;'; + put 'put ''KXtndD0hMX19KSxNZShNZS5TK01lLkYqIVFlLCJPYmplY3QiLHtjcmVhdGU6ZnVuY3Rpb24oVWUseXQpe3JldHVybiB2b2lkIDA9PT15dD9rZShVZSk6aHQoa2UoVWUpLHl0KX0sZGVmaW5lUHJvcGVydHk6bXQsZGVmaW5lUHJvcGVydGllczpodCxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6''@;'; + put 'put ''X3QsZ2V0T3duUHJvcGVydHlOYW1lczp0dCxnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6ZXR9KTt2YXIgSHQ9WihmdW5jdGlvbigpe1RlLmYoMSl9KTtNZShNZS5TK01lLkYqSHQsIk9iamVjdCIse2dldE93blByb3BlcnR5U3ltYm9sczpmdW5jdGlvbihVZSl7cmV0dXJuIFRlLmYoY2UoVWUpKX19''@;'; + put 'put ''KSx4JiZNZShNZS5TK01lLkYqKCFRZXx8WihmdW5jdGlvbigpe3ZhciBHZT10ZSgpO3JldHVybiJbbnVsbF0iIT1QKFtHZV0pfHwie30iIT1QKHthOkdlfSl8fCJ7fSIhPVAoT2JqZWN0KEdlKSl9KSksIkpTT04iLHtzdHJpbmdpZnk6ZnVuY3Rpb24oVWUpe2Zvcih2YXIgUXQsZ24seXQ9W1Vl''@;'; + put 'put ''XSxqdD0xO2FyZ3VtZW50cy5sZW5ndGg+anQ7KXl0LnB1c2goYXJndW1lbnRzW2p0KytdKTtpZihnbj1RdD15dFsxXSwob2UoUXQpfHx2b2lkIDAhPT1VZSkmJiFBdChVZSkpcmV0dXJuIEooUXQpfHwoUXQ9ZnVuY3Rpb24oZG4seW4pe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBnbiYmKHluPWdu''@;'; + put 'put ''LmNhbGwodGhpcyxkbix5bikpLCFBdCh5bikpcmV0dXJuIHlufSkseXRbMV09UXQsUC5hcHBseSh4LHl0KX19KSx0ZVtWXVtTXXx8TCg4NzcyOCkodGVbVl0sUyx0ZVtWXS52YWx1ZU9mKSxsZSh0ZSwiU3ltYm9sIiksbGUoTWF0aCwiTWF0aCIsITApLGxlKG1lLkpTT04sIkpTT04iLCEwKX0s''@;'; + put 'put ''MzAxNDc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBKLG1lPUwoMzgxNiksQj1MKDEwMDUwKSgwKSxFPUwoNzcyMzQpLE1lPUwoODQ3MjgpLFU9TCgzNTM0NSksUT1MKDIzNjU3KSxaPUwoNTUyODYpLGllPUwoMTYxNiksbGU9TCgxNjE2KSxZPSFtZS5BY3RpdmVYT2JqZWN0JiYiQWN0''@;'; + put 'put ''aXZlWE9iamVjdCJpbiBtZSxXPSJXZWFrTWFwIixOPU1lLmdldFdlYWssZWU9T2JqZWN0LmlzRXh0ZW5zaWJsZSxxPVEudWZzdG9yZSxzZT1mdW5jdGlvbihkZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGRlKHRoaXMsYXJndW1lbnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDAp''@;'; + put 'put ''fX0sb2U9e2dldDpmdW5jdGlvbih2ZSl7aWYoWih2ZSkpe3ZhciBBZT1OKHZlKTtyZXR1cm4hMD09PUFlP3EoaWUodGhpcyxXKSkuZ2V0KHZlKTpBZT9BZVt0aGlzLl9pXTp2b2lkIDB9fSxzZXQ6ZnVuY3Rpb24odmUsQWUpe3JldHVybiBRLmRlZihpZSh0aGlzLFcpLHZlLEFlKX19LGNlPVhl''@;'; + put 'put ''LmV4cG9ydHM9TCg0NTc5NSkoVyxzZSxvZSxRLCEwLCEwKTtsZSYmWSYmKFUoKEo9US5nZXRDb25zdHJ1Y3RvcihzZSxXKSkucHJvdG90eXBlLG9lKSxNZS5ORUVEPSEwLEIoWyJkZWxldGUiLCJoYXMiLCJnZXQiLCJzZXQiXSxmdW5jdGlvbihkZSl7dmFyIHZlPWNlLnByb3RvdHlwZSxBZT12''@;'; + put 'put ''ZVtkZV07RSh2ZSxkZSxmdW5jdGlvbihrZSxTZSl7aWYoWihrZSkmJiFlZShrZSkpe3RoaXMuX2Z8fCh0aGlzLl9mPW5ldyBKKTt2YXIgSWU9dGhpcy5fZltkZV0oa2UsU2UpO3JldHVybiJzZXQiPT1kZT90aGlzOkllfXJldHVybiBBZS5jYWxsKHRoaXMsa2UsU2UpfSl9KSl9LDUzMzY0OihY''@;'; + put 'put ''ZSxKZSxMKT0+e3ZhciBtZT1MKDUwMTMzKSxCPUwoMjcwMDcpLEU9bWUua2V5LE1lPW1lLnNldDttZS5leHAoe2RlZmluZU1ldGFkYXRhOmZ1bmN0aW9uKFEsWixpZSxsZSl7TWUoUSxaLEIoaWUpLEUobGUpKX19KX0sNTE0MzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNTAxMzMpLEI9TCgyNzAw''@;'; + put 'put ''NyksRT1tZS5rZXksTWU9bWUubWFwLFU9bWUuc3RvcmU7bWUuZXhwKHtkZWxldGVNZXRhZGF0YTpmdW5jdGlvbihaLGllKXt2YXIgbGU9YXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDpFKGFyZ3VtZW50c1syXSksWT1NZShCKGllKSxsZSwhMSk7aWYodm9pZCAwPT09WXx8IVkuZGVsZXRlKFop''@;'; + put 'put ''KXJldHVybiExO2lmKFkuc2l6ZSlyZXR1cm4hMDt2YXIgVz1VLmdldChpZSk7cmV0dXJuIFcuZGVsZXRlKGxlKSwhIVcuc2l6ZXx8VS5kZWxldGUoaWUpfX0pfSw4NDQxNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5ODE4NCksQj1MKDk0OTApLEU9TCg1MDEzMyksTWU9TCgyNzAwNyksVT1MKDQ2''@;'; + put 'put ''OCksUT1FLmtleXMsWj1FLmtleSxpZT1mdW5jdGlvbihsZSxZKXt2YXIgVz1RKGxlLFkpLE49VShsZSk7aWYobnVsbD09PU4pcmV0dXJuIFc7dmFyIGVlPWllKE4sWSk7cmV0dXJuIGVlLmxlbmd0aD9XLmxlbmd0aD9CKG5ldyBtZShXLmNvbmNhdChlZSkpKTplZTpXfTtFLmV4cCh7Z2V0TWV0''@;'; + put 'put ''YWRhdGFLZXlzOmZ1bmN0aW9uKFkpe3JldHVybiBpZShNZShZKSxhcmd1bWVudHMubGVuZ3RoPDI/dm9pZCAwOlooYXJndW1lbnRzWzFdKSl9fSl9LDI2NTYyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDUwMTMzKSxCPUwoMjcwMDcpLEU9TCg0NjgpLE1lPW1lLmhhcyxVPW1lLmdldCxRPW1lLmtl''@;'; + put 'put ''eSxaPWZ1bmN0aW9uKGllLGxlLFkpe2lmKE1lKGllLGxlLFkpKXJldHVybiBVKGllLGxlLFkpO3ZhciBOPUUobGUpO3JldHVybiBudWxsIT09Tj9aKGllLE4sWSk6dm9pZCAwfTttZS5leHAoe2dldE1ldGFkYXRhOmZ1bmN0aW9uKGxlLFkpe3JldHVybiBaKGxlLEIoWSksYXJndW1lbnRzLmxl''@;'; + put 'put ''bmd0aDwzP3ZvaWQgMDpRKGFyZ3VtZW50c1syXSkpfX0pfSwzMjIxMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MDEzMyksQj1MKDI3MDA3KSxFPW1lLmtleXMsTWU9bWUua2V5O21lLmV4cCh7Z2V0T3duTWV0YWRhdGFLZXlzOmZ1bmN0aW9uKFEpe3JldHVybiBFKEIoUSksYXJndW1lbnRzLmxl''@;'; + put 'put ''bmd0aDwyP3ZvaWQgMDpNZShhcmd1bWVudHNbMV0pKX19KX0sOTg2ODE6KFhlLEplLEwpPT57dmFyIG1lPUwoNTAxMzMpLEI9TCgyNzAwNyksRT1tZS5nZXQsTWU9bWUua2V5O21lLmV4cCh7Z2V0T3duTWV0YWRhdGE6ZnVuY3Rpb24oUSxaKXtyZXR1cm4gRShRLEIoWiksYXJndW1lbnRzLmxl''@;'; + put 'put ''bmd0aDwzP3ZvaWQgMDpNZShhcmd1bWVudHNbMl0pKX19KX0sNjM0NzE6KFhlLEplLEwpPT57dmFyIG1lPUwoNTAxMzMpLEI9TCgyNzAwNyksRT1MKDQ2OCksTWU9bWUuaGFzLFU9bWUua2V5LFE9ZnVuY3Rpb24oWixpZSxsZSl7aWYoTWUoWixpZSxsZSkpcmV0dXJuITA7dmFyIFc9RShpZSk7''@;'; + put 'put ''cmV0dXJuIG51bGwhPT1XJiZRKFosVyxsZSl9O21lLmV4cCh7aGFzTWV0YWRhdGE6ZnVuY3Rpb24oaWUsbGUpe3JldHVybiBRKGllLEIobGUpLGFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6VShhcmd1bWVudHNbMl0pKX19KX0sNDMyOTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MDEzMyksQj1M''@;'; + put 'put ''KDI3MDA3KSxFPW1lLmhhcyxNZT1tZS5rZXk7bWUuZXhwKHtoYXNPd25NZXRhZGF0YTpmdW5jdGlvbihRLFope3JldHVybiBFKFEsQihaKSxhcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOk1lKGFyZ3VtZW50c1syXSkpfX0pfSwyNTE1OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MDEzMyksQj1M''@;'; + put 'put ''KDI3MDA3KSxFPUwoMjQ5NjMpLE1lPW1lLmtleSxVPW1lLnNldDttZS5leHAoe21ldGFkYXRhOmZ1bmN0aW9uKFosaWUpe3JldHVybiBmdW5jdGlvbihZLFcpe1UoWixpZSwodm9pZCAwIT09Vz9COkUpKFkpLE1lKFcpKX19fSl9LDkxMTgxOihYZSxKZSxMKT0+e2Zvcih2YXIgbWU9TCg1Njk5''@;'; + put 'put ''NyksQj1MKDQ3MTg0KSxFPUwoNzcyMzQpLE1lPUwoMzgxNiksVT1MKDg3NzI4KSxRPUwoODcyMzQpLFo9TCg4NjMxNCksaWU9WigiaXRlcmF0b3IiKSxsZT1aKCJ0b1N0cmluZ1RhZyIpLFk9US5BcnJheSxXPXtDU1NSdWxlTGlzdDohMCxDU1NTdHlsZURlY2xhcmF0aW9uOiExLENTU1ZhbHVl''@;'; + put 'put ''TGlzdDohMSxDbGllbnRSZWN0TGlzdDohMSxET01SZWN0TGlzdDohMSxET01TdHJpbmdMaXN0OiExLERPTVRva2VuTGlzdDohMCxEYXRhVHJhbnNmZXJJdGVtTGlzdDohMSxGaWxlTGlzdDohMSxIVE1MQWxsQ29sbGVjdGlvbjohMSxIVE1MQ29sbGVjdGlvbjohMSxIVE1MRm9ybUVsZW1lbnQ6''@;'; + put 'put ''ITEsSFRNTFNlbGVjdEVsZW1lbnQ6ITEsTWVkaWFMaXN0OiEwLE1pbWVUeXBlQXJyYXk6ITEsTmFtZWROb2RlTWFwOiExLE5vZGVMaXN0OiEwLFBhaW50UmVxdWVzdExpc3Q6ITEsUGx1Z2luOiExLFBsdWdpbkFycmF5OiExLFNWR0xlbmd0aExpc3Q6ITEsU1ZHTnVtYmVyTGlzdDohMSxTVkdQ''@;'; + put 'put ''YXRoU2VnTGlzdDohMSxTVkdQb2ludExpc3Q6ITEsU1ZHU3RyaW5nTGlzdDohMSxTVkdUcmFuc2Zvcm1MaXN0OiExLFNvdXJjZUJ1ZmZlckxpc3Q6ITEsU3R5bGVTaGVldExpc3Q6ITAsVGV4dFRyYWNrQ3VlTGlzdDohMSxUZXh0VHJhY2tMaXN0OiExLFRvdWNoTGlzdDohMX0sTj1CKFcpLGVl''@;'; + put 'put ''PTA7ZWU8Ti5sZW5ndGg7ZWUrKyl7dmFyIGNlLHE9TltlZV0sSj1XW3FdLHNlPU1lW3FdLG9lPXNlJiZzZS5wcm90b3R5cGU7aWYob2UmJihvZVtpZV18fFUob2UsaWUsWSksb2VbbGVdfHxVKG9lLGxlLHEpLFFbcV09WSxKKSlmb3IoY2UgaW4gbWUpb2VbY2VdfHxFKG9lLGNlLG1lW2NlXSwh''@;'; + put 'put ''MCl9fSw4MTQ1MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxMjAxNCksQj1MKDk0Njc2KSxFPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lKXtpZihtZShNZSkpcmV0dXJuIE1lO3Rocm93IEUoQihNZSkrIiBpcyBub3QgYSBmdW5jdGlvbiIpfX0sNTY1ODE6KFhlLEplLEwpPT57dmFy''@;'; + put 'put ''IG1lPUwoNDk0NTMpLEI9TCg5NDY3NiksRT1UeXBlRXJyb3I7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSl7aWYobWUoTWUpKXJldHVybiBNZTt0aHJvdyBFKEIoTWUpKyIgaXMgbm90IGEgY29uc3RydWN0b3IiKX19LDcwMDg6KFhlLEplLEwpPT57dmFyIG1lPUwoMTIwMTQpLEI9U3RyaW5nLEU9''@;'; + put 'put ''VHlwZUVycm9yO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUpe2lmKCJvYmplY3QiPT10eXBlb2YgTWV8fG1lKE1lKSlyZXR1cm4gTWU7dGhyb3cgRSgiQ2FuJ3Qgc2V0ICIrQihNZSkrIiBhcyBhIHByb3RvdHlwZSIpfX0sNzQ5NjU6KFhlLEplLEwpPT57dmFyIG1lPUwoMjU0NiksQj1MKDc0NDEw''@;'; + put 'put ''KSxFPUwoNTExODMpLmYsTWU9bWUoInVuc2NvcGFibGVzIiksVT1BcnJheS5wcm90b3R5cGU7bnVsbD09VVtNZV0mJkUoVSxNZSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOkIobnVsbCl9KSxYZS5leHBvcnRzPWZ1bmN0aW9uKFEpe1VbTWVdW1FdPSEwfX0sNjE2NzY6KFhlLEplLEwpPT57InVz''@;'; + put 'put ''ZSBzdHJpY3QiO3ZhciBtZT1MKDc1MDU4KS5jaGFyQXQ7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUsTWUpe3JldHVybiBFKyhNZT9tZShCLEUpLmxlbmd0aDoxKX19LDk1MjA0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM3NDc0KSxCPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKEUsTWUp''@;'; + put 'put ''e2lmKG1lKE1lLEUpKXJldHVybiBFO3Rocm93IEIoIkluY29ycmVjdCBpbnZvY2F0aW9uIil9fSw1ODY0NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MTQ5NiksQj1TdHJpbmcsRT1UeXBlRXJyb3I7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSl7aWYobWUoTWUpKXJldHVybiBNZTt0aHJvdyBFKEIo''@;'; + put 'put ''TWUpKyIgaXMgbm90IGFuIG9iamVjdCIpfX0sNjI3ODk6KFhlLEplLEwpPT57dmFyIG1lPUwoMjM1MjMpO1hlLmV4cG9ydHM9bWUoZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgQXJyYXlCdWZmZXIpe3ZhciBCPW5ldyBBcnJheUJ1ZmZlcig4KTtPYmplY3QuaXNFeHRlbnNpYmxl''@;'; + put 'put ''KEIpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoQiwiYSIse3ZhbHVlOjh9KX19KX0sNTcxNzk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDY4MDcxKSxCPUwoNzYxNjMpLEU9TCg1NDQ1MCk7WGUuZXhwb3J0cz1mdW5jdGlvbihVKXtmb3IodmFyIFE9bWUodGhpcyksWj1FKFEp''@;'; + put 'put ''LGllPWFyZ3VtZW50cy5sZW5ndGgsbGU9QihpZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsWiksWT1pZT4yP2FyZ3VtZW50c1syXTp2b2lkIDAsVz12b2lkIDA9PT1ZP1o6QihZLFopO1c+bGU7KVFbbGUrK109VTtyZXR1cm4gUX19LDM3MzE5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIg''@;'; + put 'put ''bWU9TCg5NTY2OSkuZm9yRWFjaCxFPUwoNjMxMjQpKCJmb3JFYWNoIik7WGUuZXhwb3J0cz1FP1tdLmZvckVhY2g6ZnVuY3Rpb24oVSl7cmV0dXJuIG1lKHRoaXMsVSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSw2NjY2NjooWGUsSmUsTCk9PnsidXNlIHN0cmlj''@;'; + put 'put ''dCI7dmFyIG1lPUwoODU0OSksQj1MKDM1NjIpLEU9TCg2ODA3MSksTWU9TCgxODc2KSxVPUwoOTcxMDYpLFE9TCg0OTQ1MyksWj1MKDU0NDUwKSxpZT1MKDk1MDA0KSxsZT1MKDEyOTg5KSxZPUwoNjYyODgpLFc9QXJyYXk7WGUuZXhwb3J0cz1mdW5jdGlvbihlZSl7dmFyIHE9RShlZSksSj1R''@;'; + put 'put ''KHRoaXMpLHNlPWFyZ3VtZW50cy5sZW5ndGgsb2U9c2U+MT9hcmd1bWVudHNbMV06dm9pZCAwLGNlPXZvaWQgMCE9PW9lO2NlJiYob2U9bWUob2Usc2U+Mj9hcmd1bWVudHNbMl06dm9pZCAwKSk7dmFyIEFlLGtlLFNlLEllLFRlLEVlLGRlPVkocSksdmU9MDtpZighZGV8fHRoaXM9PT1XJiZV''@;'; + put 'put ''KGRlKSlmb3IoQWU9WihxKSxrZT1KP25ldyB0aGlzKEFlKTpXKEFlKTtBZT52ZTt2ZSsrKUVlPWNlP29lKHFbdmVdLHZlKTpxW3ZlXSxpZShrZSx2ZSxFZSk7ZWxzZSBmb3IoVGU9KEllPWxlKHEsZGUpKS5uZXh0LGtlPUo/bmV3IHRoaXM6W107IShTZT1CKFRlLEllKSkuZG9uZTt2ZSsrKUVl''@;'; + put 'put ''PWNlP01lKEllLG9lLFtTZS52YWx1ZSx2ZV0sITApOlNlLnZhbHVlLGllKGtlLHZlLEVlKTtyZXR1cm4ga2UubGVuZ3RoPXZlLGtlfX0sMzYzMDU6KFhlLEplLEwpPT57dmFyIG1lPUwoNTAzMjcpLEI9TCg3NjE2MyksRT1MKDU0NDUwKSxNZT1mdW5jdGlvbihVKXtyZXR1cm4gZnVuY3Rpb24o''@;'; + put 'put ''USxaLGllKXt2YXIgTixsZT1tZShRKSxZPUUobGUpLFc9QihpZSxZKTtpZihVJiZaIT1aKXtmb3IoO1k+VzspaWYoKE49bGVbVysrXSkhPU4pcmV0dXJuITB9ZWxzZSBmb3IoO1k+VztXKyspaWYoKFV8fFcgaW4gbGUpJiZsZVtXXT09PVopcmV0dXJuIFV8fFd8fDA7cmV0dXJuIVUmJi0xfX07''@;'; + put 'put ''WGUuZXhwb3J0cz17aW5jbHVkZXM6TWUoITApLGluZGV4T2Y6TWUoITEpfX0sOTU2Njk6KFhlLEplLEwpPT57dmFyIG1lPUwoODU0OSksQj1MKDY2MTMpLEU9TCg1NjYwNyksTWU9TCg2ODA3MSksVT1MKDU0NDUwKSxRPUwoMzE4NTcpLFo9QihbXS5wdXNoKSxpZT1mdW5jdGlvbihsZSl7dmFy''@;'; + put 'put ''IFk9MT09bGUsVz0yPT1sZSxOPTM9PWxlLGVlPTQ9PWxlLHE9Nj09bGUsSj03PT1sZSxzZT01PT1sZXx8cTtyZXR1cm4gZnVuY3Rpb24ob2UsY2UsZGUsdmUpe2Zvcih2YXIgTyx6LEFlPU1lKG9lKSxrZT1FKEFlKSxTZT1tZShjZSxkZSksSWU9VShrZSksVGU9MCxFZT12ZXx8USxoZT1ZP0Vl''@;'; + put 'put ''KG9lLEllKTpXfHxKP0VlKG9lLDApOnZvaWQgMDtJZT5UZTtUZSsrKWlmKChzZXx8VGUgaW4ga2UpJiYoej1TZShPPWtlW1RlXSxUZSxBZSksbGUpKWlmKFkpaGVbVGVdPXo7ZWxzZSBpZih6KXN3aXRjaChsZSl7Y2FzZSAzOnJldHVybiEwO2Nhc2UgNTpyZXR1cm4gTztjYXNlIDY6cmV0dXJu''@;'; + put 'put ''IFRlO2Nhc2UgMjpaKGhlLE8pfWVsc2Ugc3dpdGNoKGxlKXtjYXNlIDQ6cmV0dXJuITE7Y2FzZSA3OlooaGUsTyl9cmV0dXJuIHE/LTE6Tnx8ZWU/ZWU6aGV9fTtYZS5leHBvcnRzPXtmb3JFYWNoOmllKDApLG1hcDppZSgxKSxmaWx0ZXI6aWUoMiksc29tZTppZSgzKSxldmVyeTppZSg0KSxm''@;'; + put 'put ''aW5kOmllKDUpLGZpbmRJbmRleDppZSg2KSxmaWx0ZXJSZWplY3Q6aWUoNyl9fSw5NjIyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgxMTMwNiksQj1MKDUwMzI3KSxFPUwoNDA3MDIpLE1lPUwoNTQ0NTApLFU9TCg2MzEyNCksUT1NYXRoLm1pbixaPVtdLmxhc3RJbmRleE9m''@;'; + put 'put ''LGllPSEhWiYmMS9bMV0ubGFzdEluZGV4T2YoMSwtMCk8MCxsZT1VKCJsYXN0SW5kZXhPZiIpO1hlLmV4cG9ydHM9aWV8fCFsZT9mdW5jdGlvbihOKXtpZihpZSlyZXR1cm4gbWUoWix0aGlzLGFyZ3VtZW50cyl8fDA7dmFyIGVlPUIodGhpcykscT1NZShlZSksSj1xLTE7Zm9yKGFyZ3VtZW50''@;'; + put 'put ''cy5sZW5ndGg+MSYmKEo9UShKLEUoYXJndW1lbnRzWzFdKSkpLEo8MCYmKEo9cStKKTtKPj0wO0otLSlpZihKIGluIGVlJiZlZVtKXT09PU4pcmV0dXJuIEp8fDA7cmV0dXJuLTF9Olp9LDUxMjk4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDIzNTIzKSxCPUwoMjU0NiksRT1MKDI5Mzg1KSxNZT1C''@;'; + put 'put ''KCJzcGVjaWVzIik7WGUuZXhwb3J0cz1mdW5jdGlvbihVKXtyZXR1cm4gRT49NTF8fCFtZShmdW5jdGlvbigpe3ZhciBRPVtdO3JldHVybihRLmNvbnN0cnVjdG9yPXt9KVtNZV09ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09UVtVXShCb29sZWFuKS5mb299KX19LDYzMTI0OihYZSxK''@;'; + put 'put ''ZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyMzUyMyk7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUpe3ZhciBNZT1bXVtCXTtyZXR1cm4hIU1lJiZtZShmdW5jdGlvbigpe01lLmNhbGwobnVsbCxFfHxmdW5jdGlvbigpe3JldHVybiAxfSwxKX0pfX0sNzM3NjA6KFhlLEplLEwpPT57dmFy''@;'; + put 'put ''IG1lPUwoODE0NTApLEI9TCg2ODA3MSksRT1MKDU2NjA3KSxNZT1MKDU0NDUwKSxVPVR5cGVFcnJvcixRPWZ1bmN0aW9uKFope3JldHVybiBmdW5jdGlvbihpZSxsZSxZLFcpe21lKGxlKTt2YXIgTj1CKGllKSxlZT1FKE4pLHE9TWUoTiksSj1aP3EtMTowLHNlPVo/LTE6MTtpZihZPDIpZm9y''@;'; + put 'put ''KDs7KXtpZihKIGluIGVlKXtXPWVlW0pdLEorPXNlO2JyZWFrfWlmKEorPXNlLFo/SjwwOnE8PUopdGhyb3cgVSgiUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpfWZvcig7Wj9KPj0wOnE+SjtKKz1zZSlKIGluIGVlJiYoVz1sZShXLGVlW0pdLEosTikpO3Jl''@;'; + put 'put ''dHVybiBXfX07WGUuZXhwb3J0cz17bGVmdDpRKCExKSxyaWdodDpRKCEwKX19LDEwODcyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDc2MTYzKSxCPUwoNTQ0NTApLEU9TCg5NTAwNCksTWU9QXJyYXksVT1NYXRoLm1heDtYZS5leHBvcnRzPWZ1bmN0aW9uKFEsWixpZSl7Zm9yKHZhciBsZT1CKFEp''@;'; + put 'put ''LFk9bWUoWixsZSksVz1tZSh2b2lkIDA9PT1pZT9sZTppZSxsZSksTj1NZShVKFctWSwwKSksZWU9MDtZPFc7WSsrLGVlKyspRShOLGVlLFFbWV0pO3JldHVybiBOLmxlbmd0aD1lZSxOfX0sNDA5MzA6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyk7WGUuZXhwb3J0cz1tZShbXS5zbGljZSl9''@;'; + put 'put ''LDMyNTk0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDEwODcyKSxCPU1hdGguZmxvb3IsRT1mdW5jdGlvbihRLFope3ZhciBpZT1RLmxlbmd0aCxsZT1CKGllLzIpO3JldHVybiBpZTw4P01lKFEsWik6VShRLEUobWUoUSwwLGxlKSxaKSxFKG1lKFEsbGUpLFopLFopfSxNZT1mdW5jdGlvbihRLFop''@;'; + put 'put ''e2Zvcih2YXIgWSxXLGllPVEubGVuZ3RoLGxlPTE7bGU8aWU7KXtmb3IoVz1sZSxZPVFbbGVdO1cmJlooUVtXLTFdLFkpPjA7KVFbV109UVstLVddO1chPT1sZSsrJiYoUVtXXT1ZKX1yZXR1cm4gUX0sVT1mdW5jdGlvbihRLFosaWUsbGUpe2Zvcih2YXIgWT1aLmxlbmd0aCxXPWllLmxlbmd0''@;'; + put 'put ''aCxOPTAsZWU9MDtOPFl8fGVlPFc7KVFbTitlZV09TjxZJiZlZTxXP2xlKFpbTl0saWVbZWVdKTw9MD9aW04rK106aWVbZWUrK106TjxZP1pbTisrXTppZVtlZSsrXTtyZXR1cm4gUX07WGUuZXhwb3J0cz1FfSw1NzgzNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyOTEwNiksQj1MKDQ5NDUzKSxF''@;'; + put 'put ''PUwoNzE0OTYpLFU9TCgyNTQ2KSgic3BlY2llcyIpLFE9QXJyYXk7WGUuZXhwb3J0cz1mdW5jdGlvbihaKXt2YXIgaWU7cmV0dXJuIG1lKFopJiYoQihpZT1aLmNvbnN0cnVjdG9yKSYmKGllPT09UXx8bWUoaWUucHJvdG90eXBlKSl8fEUoaWUpJiZudWxsPT09KGllPWllW1VdKSkmJihpZT12''@;'; + put 'put ''b2lkIDApLHZvaWQgMD09PWllP1E6aWV9fSwzMTg1NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NzgzNSk7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUpe3JldHVybiBuZXcobWUoQikpKDA9PT1FPzA6RSl9fSwxODc2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU4NjQ3KSxCPUwoODAzMDcpO1hlLmV4''@;'; + put 'put ''cG9ydHM9ZnVuY3Rpb24oRSxNZSxVLFEpe3RyeXtyZXR1cm4gUT9NZShtZShVKVswXSxVWzFdKTpNZShVKX1jYXRjaChaKXtCKEUsInRocm93IixaKX19fSwyNzc5MjooWGUsSmUsTCk9Pnt2YXIgQj1MKDI1NDYpKCJpdGVyYXRvciIpLEU9ITE7dHJ5e3ZhciBNZT0wLFU9e25leHQ6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm57ZG9uZTohIU1lKyt9fSxyZXR1cm46ZnVuY3Rpb24oKXtFPSEwfX07VVtCXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxBcnJheS5mcm9tKFUsZnVuY3Rpb24oKXt0aHJvdyAyfSl9Y2F0Y2goUSl7fVhlLmV4cG9ydHM9ZnVuY3Rpb24oUSxaKXtpZighWiYmIUUpcmV0dXJu''@;'; + put 'put ''ITE7dmFyIGllPSExO3RyeXt2YXIgbGU9e307bGVbQl09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOmllPSEwfX19fSxRKGxlKX1jYXRjaChZKXt9cmV0dXJuIGllfX0sOTQ3MjM6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1tZSh7fS50b1N0cmlu''@;'; + put 'put ''ZyksRT1tZSgiIi5zbGljZSk7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSl7cmV0dXJuIEUoQihNZSksOCwtMSl9fSw3OTUyMDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNzQ5MCksQj1MKDEyMDE0KSxFPUwoOTQ3MjMpLFU9TCgyNTQ2KSgidG9TdHJpbmdUYWciKSxRPU9iamVjdCxaPSJBcmd1bWVu''@;'; + put 'put ''dHMiPT1FKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk7WGUuZXhwb3J0cz1tZT9FOmZ1bmN0aW9uKGxlKXt2YXIgWSxXLE47cmV0dXJuIHZvaWQgMD09PWxlPyJVbmRlZmluZWQiOm51bGw9PT1sZT8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihXPWZ1bmN0aW9uKGxlLFkpe3RyeXty''@;'; + put 'put ''ZXR1cm4gbGVbWV19Y2F0Y2goVyl7fX0oWT1RKGxlKSxVKSk/VzpaP0UoWSk6Ik9iamVjdCI9PShOPUUoWSkpJiZCKFkuY2FsbGVlKT8iQXJndW1lbnRzIjpOfX0sNDUxNDA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDUxMTgzKS5mLEI9TCg3NDQxMCksRT1MKDc0MDY5KSxN''@;'; + put 'put ''ZT1MKDg1NDkpLFU9TCg5NTIwNCksUT1MKDI2NTQzKSxaPUwoMzg0OTcpLGllPUwoNjgzMTUpLGxlPUwoODU2MjQpLFk9TCg3MTgzMikuZmFzdEtleSxXPUwoNzI3KSxOPVcuc2V0LGVlPVcuZ2V0dGVyRm9yO1hlLmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKHEsSixzZSxvZSl7''@;'; + put 'put ''dmFyIGNlPXEoZnVuY3Rpb24oU2UsSWUpe1UoU2UsZGUpLE4oU2Use3R5cGU6SixpbmRleDpCKG51bGwpLGZpcnN0OnZvaWQgMCxsYXN0OnZvaWQgMCxzaXplOjB9KSxsZXx8KFNlLnNpemU9MCksbnVsbCE9SWUmJlEoSWUsU2Vbb2VdLHt0aGF0OlNlLEFTX0VOVFJJRVM6c2V9KX0pLGRlPWNl''@;'; + put 'put ''LnByb3RvdHlwZSx2ZT1lZShKKSxBZT1mdW5jdGlvbihTZSxJZSxUZSl7dmFyIE8seixFZT12ZShTZSksaGU9a2UoU2UsSWUpO3JldHVybiBoZT9oZS52YWx1ZT1UZTooRWUubGFzdD1oZT17aW5kZXg6ej1ZKEllLCEwKSxrZXk6SWUsdmFsdWU6VGUscHJldmlvdXM6Tz1FZS5sYXN0LG5leHQ6''@;'; + put 'put ''dm9pZCAwLHJlbW92ZWQ6ITF9LEVlLmZpcnN0fHwoRWUuZmlyc3Q9aGUpLE8mJihPLm5leHQ9aGUpLGxlP0VlLnNpemUrKzpTZS5zaXplKyssIkYiIT09eiYmKEVlLmluZGV4W3pdPWhlKSksU2V9LGtlPWZ1bmN0aW9uKFNlLEllKXt2YXIgaGUsVGU9dmUoU2UpLEVlPVkoSWUpO2lmKCJGIiE9''@;'; + put 'put ''PUVlKXJldHVybiBUZS5pbmRleFtFZV07Zm9yKGhlPVRlLmZpcnN0O2hlO2hlPWhlLm5leHQpaWYoaGUua2V5PT1JZSlyZXR1cm4gaGV9O3JldHVybiBFKGRlLHtjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgVGU9dmUodGhpcyksRWU9VGUuaW5kZXgsaGU9VGUuZmlyc3Q7aGU7KWhlLnJlbW92''@;'; + put 'put ''ZWQ9ITAsaGUucHJldmlvdXMmJihoZS5wcmV2aW91cz1oZS5wcmV2aW91cy5uZXh0PXZvaWQgMCksZGVsZXRlIEVlW2hlLmluZGV4XSxoZT1oZS5uZXh0O1RlLmZpcnN0PVRlLmxhc3Q9dm9pZCAwLGxlP1RlLnNpemU9MDp0aGlzLnNpemU9MH0sZGVsZXRlOmZ1bmN0aW9uKFNlKXt2YXIgVGU9''@;'; + put 'put ''dmUodGhpcyksRWU9a2UodGhpcyxTZSk7aWYoRWUpe3ZhciBoZT1FZS5uZXh0LE89RWUucHJldmlvdXM7ZGVsZXRlIFRlLmluZGV4W0VlLmluZGV4XSxFZS5yZW1vdmVkPSEwLE8mJihPLm5leHQ9aGUpLGhlJiYoaGUucHJldmlvdXM9TyksVGUuZmlyc3Q9PUVlJiYoVGUuZmlyc3Q9aGUpLFRl''@;'; + put 'put ''Lmxhc3Q9PUVlJiYoVGUubGFzdD1PKSxsZT9UZS5zaXplLS06dGhpcy5zaXplLS19cmV0dXJuISFFZX0sZm9yRWFjaDpmdW5jdGlvbihJZSl7Zm9yKHZhciBoZSxUZT12ZSh0aGlzKSxFZT1NZShJZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7aGU9aGU/aGUubmV4''@;'; + put 'put ''dDpUZS5maXJzdDspZm9yKEVlKGhlLnZhbHVlLGhlLmtleSx0aGlzKTtoZSYmaGUucmVtb3ZlZDspaGU9aGUucHJldmlvdXN9LGhhczpmdW5jdGlvbihJZSl7cmV0dXJuISFrZSh0aGlzLEllKX19KSxFKGRlLHNlP3tnZXQ6ZnVuY3Rpb24oSWUpe3ZhciBUZT1rZSh0aGlzLEllKTtyZXR1cm4g''@;'; + put 'put ''VGUmJlRlLnZhbHVlfSxzZXQ6ZnVuY3Rpb24oSWUsVGUpe3JldHVybiBBZSh0aGlzLDA9PT1JZT8wOkllLFRlKX19OnthZGQ6ZnVuY3Rpb24oSWUpe3JldHVybiBBZSh0aGlzLEllPTA9PT1JZT8wOkllLEllKX19KSxsZSYmbWUoZGUsInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdmUo''@;'; + put 'put ''dGhpcykuc2l6ZX19KSxjZX0sc2V0U3Ryb25nOmZ1bmN0aW9uKHEsSixzZSl7dmFyIG9lPUorIiBJdGVyYXRvciIsY2U9ZWUoSiksZGU9ZWUob2UpO1oocSxKLGZ1bmN0aW9uKHZlLEFlKXtOKHRoaXMse3R5cGU6b2UsdGFyZ2V0OnZlLHN0YXRlOmNlKHZlKSxraW5kOkFlLGxhc3Q6dm9pZCAw''@;'; + put 'put ''fSl9LGZ1bmN0aW9uKCl7Zm9yKHZhciB2ZT1kZSh0aGlzKSxBZT12ZS5raW5kLGtlPXZlLmxhc3Q7a2UmJmtlLnJlbW92ZWQ7KWtlPWtlLnByZXZpb3VzO3JldHVybiB2ZS50YXJnZXQmJih2ZS5sYXN0PWtlPWtlP2tlLm5leHQ6dmUuc3RhdGUuZmlyc3QpPyJrZXlzIj09QWU/e3ZhbHVlOmtl''@;'; + put 'put ''LmtleSxkb25lOiExfToidmFsdWVzIj09QWU/e3ZhbHVlOmtlLnZhbHVlLGRvbmU6ITF9Ont2YWx1ZTpba2Uua2V5LGtlLnZhbHVlXSxkb25lOiExfToodmUudGFyZ2V0PXZvaWQgMCx7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KX0sc2U/ImVudHJpZXMiOiJ2YWx1ZXMiLCFzZSwhMCksaWUoSil9''@;'; + put 'put ''fX0sNDI5Njk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDY2MTMpLEI9TCg3NDA2OSksRT1MKDcxODMyKS5nZXRXZWFrRGF0YSxNZT1MKDU4NjQ3KSxVPUwoNzE0OTYpLFE9TCg5NTIwNCksWj1MKDI2NTQzKSxpZT1MKDk1NjY5KSxsZT1MKDQ4ODExKSxZPUwoNzI3KSxXPVku''@;'; + put 'put ''c2V0LE49WS5nZXR0ZXJGb3IsZWU9aWUuZmluZCxxPWllLmZpbmRJbmRleCxKPW1lKFtdLnNwbGljZSksc2U9MCxvZT1mdW5jdGlvbih2ZSl7cmV0dXJuIHZlLmZyb3plbnx8KHZlLmZyb3plbj1uZXcgY2UpfSxjZT1mdW5jdGlvbigpe3RoaXMuZW50cmllcz1bXX0sZGU9ZnVuY3Rpb24odmUs''@;'; + put 'put ''QWUpe3JldHVybiBlZSh2ZS5lbnRyaWVzLGZ1bmN0aW9uKGtlKXtyZXR1cm4ga2VbMF09PT1BZX0pfTtjZS5wcm90b3R5cGU9e2dldDpmdW5jdGlvbih2ZSl7dmFyIEFlPWRlKHRoaXMsdmUpO2lmKEFlKXJldHVybiBBZVsxXX0saGFzOmZ1bmN0aW9uKHZlKXtyZXR1cm4hIWRlKHRoaXMsdmUp''@;'; + put 'put ''fSxzZXQ6ZnVuY3Rpb24odmUsQWUpe3ZhciBrZT1kZSh0aGlzLHZlKTtrZT9rZVsxXT1BZTp0aGlzLmVudHJpZXMucHVzaChbdmUsQWVdKX0sZGVsZXRlOmZ1bmN0aW9uKHZlKXt2YXIgQWU9cSh0aGlzLmVudHJpZXMsZnVuY3Rpb24oa2Upe3JldHVybiBrZVswXT09PXZlfSk7cmV0dXJufkFl''@;'; + put 'put ''JiZKKHRoaXMuZW50cmllcyxBZSwxKSwhIX5BZX19LFhlLmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKHZlLEFlLGtlLFNlKXt2YXIgSWU9dmUoZnVuY3Rpb24oTyx6KXtRKE8sVGUpLFcoTyx7dHlwZTpBZSxpZDpzZSsrLGZyb3plbjp2b2lkIDB9KSxudWxsIT16JiZaKHosT1tT''@;'; + put 'put ''ZV0se3RoYXQ6TyxBU19FTlRSSUVTOmtlfSl9KSxUZT1JZS5wcm90b3R5cGUsRWU9TihBZSksaGU9ZnVuY3Rpb24oTyx6LG5lKXt2YXIgdGU9RWUoTykseD1FKE1lKHopLCEwKTtyZXR1cm4hMD09PXg/b2UodGUpLnNldCh6LG5lKTp4W3RlLmlkXT1uZSxPfTtyZXR1cm4gQihUZSx7ZGVsZXRl''@;'; + put 'put ''OmZ1bmN0aW9uKE8pe3ZhciB6PUVlKHRoaXMpO2lmKCFVKE8pKXJldHVybiExO3ZhciBuZT1FKE8pO3JldHVybiEwPT09bmU/b2UoeikuZGVsZXRlKE8pOm5lJiZsZShuZSx6LmlkKSYmZGVsZXRlIG5lW3ouaWRdfSxoYXM6ZnVuY3Rpb24oeil7dmFyIG5lPUVlKHRoaXMpO2lmKCFVKHopKXJl''@;'; + put 'put ''dHVybiExO3ZhciB0ZT1FKHopO3JldHVybiEwPT09dGU/b2UobmUpLmhhcyh6KTp0ZSYmbGUodGUsbmUuaWQpfX0pLEIoVGUsa2U/e2dldDpmdW5jdGlvbih6KXt2YXIgbmU9RWUodGhpcyk7aWYoVSh6KSl7dmFyIHRlPUUoeik7cmV0dXJuITA9PT10ZT9vZShuZSkuZ2V0KHopOnRlP3RlW25l''@;'; + put 'put ''LmlkXTp2b2lkIDB9fSxzZXQ6ZnVuY3Rpb24oeixuZSl7cmV0dXJuIGhlKHRoaXMseixuZSl9fTp7YWRkOmZ1bmN0aW9uKHope3JldHVybiBoZSh0aGlzLHosITApfX0pLEllfX19LDQ2ODU3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDcwNzA1KSxFPUwo''@;'; + put 'put ''NjYxMyksTWU9TCg2NzUwNyksVT1MKDI1NjY2KSxRPUwoNzE4MzIpLFo9TCgyNjU0MyksaWU9TCg5NTIwNCksbGU9TCgxMjAxNCksWT1MKDcxNDk2KSxXPUwoMjM1MjMpLE49TCgyNzc5MiksZWU9TCg1NTk2OCkscT1MKDUxODQ5KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEosc2Usb2Upe3ZhciBj''@;'; + put 'put ''ZT0tMSE9PUouaW5kZXhPZigiTWFwIiksZGU9LTEhPT1KLmluZGV4T2YoIldlYWsiKSx2ZT1jZT8ic2V0IjoiYWRkIixBZT1CW0pdLGtlPUFlJiZBZS5wcm90b3R5cGUsU2U9QWUsSWU9e30sVGU9ZnVuY3Rpb24oeCl7dmFyIFA9RShrZVt4XSk7VShrZSx4LCJhZGQiPT14P2Z1bmN0aW9uKFQp''@;'; + put 'put ''e3JldHVybiBQKHRoaXMsMD09PVQ/MDpUKSx0aGlzfToiZGVsZXRlIj09eD9mdW5jdGlvbihWKXtyZXR1cm4hKGRlJiYhWShWKSkmJlAodGhpcywwPT09Vj8wOlYpfToiZ2V0Ij09eD9mdW5jdGlvbihUKXtyZXR1cm4gZGUmJiFZKFQpP3ZvaWQgMDpQKHRoaXMsMD09PVQ/MDpUKX06ImhhcyI9''@;'; + put 'put ''PXg/ZnVuY3Rpb24oVCl7cmV0dXJuIShkZSYmIVkoVCkpJiZQKHRoaXMsMD09PVQ/MDpUKX06ZnVuY3Rpb24oVCxTKXtyZXR1cm4gUCh0aGlzLDA9PT1UPzA6VCxTKSx0aGlzfSl9O2lmKE1lKEosIWxlKEFlKXx8IShkZXx8a2UuZm9yRWFjaCYmIVcoZnVuY3Rpb24oKXsobmV3IEFlKS5lbnRy''@;'; + put 'put ''aWVzKCkubmV4dCgpfSkpKSlTZT1vZS5nZXRDb25zdHJ1Y3RvcihzZSxKLGNlLHZlKSxRLmVuYWJsZSgpO2Vsc2UgaWYoTWUoSiwhMCkpe3ZhciBoZT1uZXcgU2UsTz1oZVt2ZV0oZGU/e306LTAsMSkhPWhlLHo9VyhmdW5jdGlvbigpe2hlLmhhcygxKX0pLG5lPU4oZnVuY3Rpb24oeCl7bmV3''@;'; + put 'put ''IEFlKHgpfSksdGU9IWRlJiZXKGZ1bmN0aW9uKCl7Zm9yKHZhciB4PW5ldyBBZSxQPTU7UC0tOyl4W3ZlXShQLFApO3JldHVybiF4LmhhcygtMCl9KTtuZXx8KChTZT1zZShmdW5jdGlvbih4LFApe2llKHgsa2UpO3ZhciBWPXEobmV3IEFlLHgsU2UpO3JldHVybiBudWxsIT1QJiZaKFAsVlt2''@;'; + put 'put ''ZV0se3RoYXQ6VixBU19FTlRSSUVTOmNlfSksVn0pKS5wcm90b3R5cGU9a2Usa2UuY29uc3RydWN0b3I9U2UpLCh6fHx0ZSkmJihUZSgiZGVsZXRlIiksVGUoImhhcyIpLGNlJiZUZSgiZ2V0IikpLCh0ZXx8TykmJlRlKHZlKSxkZSYma2UuY2xlYXImJmRlbGV0ZSBrZS5jbGVhcn1yZXR1cm4g''@;'; + put 'put ''SWVbSl09U2UsbWUoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6U2UhPUFlfSxJZSksZWUoU2UsSiksZGV8fG9lLnNldFN0cm9uZyhTZSxKLGNlKSxTZX19LDc3NTQ4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQ4ODExKSxCPUwoMjExOTkpLEU9TCg0Nzk4NyksTWU9TCg1MTE4Myk7''@;'; + put 'put ''WGUuZXhwb3J0cz1mdW5jdGlvbihVLFEsWil7Zm9yKHZhciBpZT1CKFEpLGxlPU1lLmYsWT1FLmYsVz0wO1c8aWUubGVuZ3RoO1crKyl7dmFyIE49aWVbV107IW1lKFUsTikmJighWnx8IW1lKFosTikpJiZsZShVLE4sWShRLE4pKX19fSw3NjU3MTooWGUsSmUsTCk9Pnt2YXIgQj1MKDI1NDYp''@;'; + put 'put ''KCJtYXRjaCIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSl7dmFyIE1lPS8uLzt0cnl7Ii8uLyJbRV0oTWUpfWNhdGNoKFUpe3RyeXtyZXR1cm4gTWVbQl09ITEsIi8uLyJbRV0oTWUpfWNhdGNoKFEpe319cmV0dXJuITF9fSw0NjA4NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyk7WGUuZXhw''@;'; + put 'put ''b3J0cz0hbWUoZnVuY3Rpb24oKXtmdW5jdGlvbiBCKCl7fXJldHVybiBCLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1udWxsLE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgQikhPT1CLnByb3RvdHlwZX0pfSw5NTExMDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2NjEzKSxCPUwoMjQ1NzIpLEU9TCg5''@;'; + put 'put ''MjEpLE1lPS8iL2csVT1tZSgiIi5yZXBsYWNlKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFEsWixpZSxsZSl7dmFyIFk9RShCKFEpKSxXPSI8IitaO3JldHVybiIiIT09aWUmJihXKz0iICIraWUrJz0iJytVKEUobGUpLE1lLCImcXVvdDsiKSsnIicpLFcrIj4iK1krIjwvIitaKyI+In19LDk3ODk1''@;'; + put 'put ''OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgxODU0NikuSXRlcmF0b3JQcm90b3R5cGUsQj1MKDc0NDEwKSxFPUwoNzM5MjApLE1lPUwoNTU5NjgpLFU9TCg5NTI1NyksUT1mdW5jdGlvbigpe3JldHVybiB0aGlzfTtYZS5leHBvcnRzPWZ1bmN0aW9uKFosaWUsbGUsWSl7dmFy''@;'; + put 'put ''IFc9aWUrIiBJdGVyYXRvciI7cmV0dXJuIFoucHJvdG90eXBlPUIobWUse25leHQ6RSgrIVksbGUpfSksTWUoWixXLCExLCEwKSxVW1ddPVEsWn19LDE2MDE3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjI0KSxCPUwoNTExODMpLEU9TCg3MzkyMCk7WGUuZXhwb3J0cz1tZT9mdW5jdGlvbihN''@;'; + put 'put ''ZSxVLFEpe3JldHVybiBCLmYoTWUsVSxFKDEsUSkpfTpmdW5jdGlvbihNZSxVLFEpe3JldHVybiBNZVtVXT1RLE1lfX0sNzM5MjA6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uKEplLEwpe3JldHVybntlbnVtZXJhYmxlOiEoMSZKZSksY29uZmlndXJhYmxlOiEoMiZKZSksd3JpdGFibGU6ISg0''@;'; + put 'put ''JkplKSx2YWx1ZTpMfX19LDk1MDA0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NDA5NCksQj1MKDUxMTgzKSxFPUwoNzM5MjApO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTWUsVSxRKXt2YXIgWj1tZShVKTtaIGluIE1lP0IuZihNZSxaLEUoMCxRKSk6TWVbWl09UX19LDI1NjY2''@;'; + put 'put ''OihYZSxKZSxMKT0+e3ZhciBtZT1MKDEyMDE0KSxCPUwoNTExODMpLEU9TCgzNDQ2OCksTWU9TCg3MzQ3MCk7WGUuZXhwb3J0cz1mdW5jdGlvbihVLFEsWixpZSl7aWV8fChpZT17fSk7dmFyIGxlPWllLmVudW1lcmFibGUsWT12b2lkIDAhPT1pZS5uYW1lP2llLm5hbWU6UTtpZihtZShaKSYm''@;'; + put 'put ''RShaLFksaWUpLGllLmdsb2JhbClsZT9VW1FdPVo6TWUoUSxaKTtlbHNle3RyeXtpZS51bnNhZmU/VVtRXSYmKGxlPSEwKTpkZWxldGUgVVtRXX1jYXRjaChXKXt9bGU/VVtRXT1aOkIuZihVLFEse3ZhbHVlOlosZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6IWllLm5vbkNvbmZpZ3VyYWJs''@;'; + put 'put ''ZSx3cml0YWJsZTohaWUubm9uV3JpdGFibGV9KX1yZXR1cm4gVX19LDc0MDY5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDI1NjY2KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSxNZSl7Zm9yKHZhciBVIGluIEUpbWUoQixVLEVbVV0sTWUpO3JldHVybiBCfX0sNzM0NzA6KFhlLEplLEwpPT57dmFy''@;'; + put 'put ''IG1lPUwoNzA3MDUpLEI9T2JqZWN0LmRlZmluZVByb3BlcnR5O1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSxNZSl7dHJ5e0IobWUsRSx7dmFsdWU6TWUsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSl9Y2F0Y2goVSl7bWVbRV09TWV9cmV0dXJuIE1lfX0sMzg0OTc6KFhlLEplLEwpPT57InVz''@;'; + put 'put ''ZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoMzU2MiksRT1MKDEwMDE3KSxNZT1MKDEzODY5KSxVPUwoMTIwMTQpLFE9TCg5Nzg5NSksWj1MKDgyNzMzKSxpZT1MKDE5NTg3KSxsZT1MKDU1OTY4KSxZPUwoMTYwMTcpLFc9TCgyNTY2NiksTj1MKDI1NDYpLGVlPUwoOTUyNTcpLHE9TCgx''@;'; + put 'put ''ODU0NiksSj1NZS5QUk9QRVIsc2U9TWUuQ09ORklHVVJBQkxFLG9lPXEuSXRlcmF0b3JQcm90b3R5cGUsY2U9cS5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLGRlPU4oIml0ZXJhdG9yIiksQWU9InZhbHVlcyIsa2U9ImVudHJpZXMiLFNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O1hlLmV4cG9y''@;'; + put 'put ''dHM9ZnVuY3Rpb24oSWUsVGUsRWUsaGUsTyx6LG5lKXtRKEVlLFRlLGhlKTt2YXIgeWUsQ2UsRGUsdGU9ZnVuY3Rpb24oUGUpe2lmKFBlPT09TyYmUylyZXR1cm4gUztpZighY2UmJlBlIGluIFYpcmV0dXJuIFZbUGVdO3N3aXRjaChQZSl7Y2FzZSJrZXlzIjpjYXNlIEFlOmNhc2Uga2U6cmV0''@;'; + put 'put ''dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBFZSh0aGlzLFBlKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBFZSh0aGlzKX19LHg9VGUrIiBJdGVyYXRvciIsUD0hMSxWPUllLnByb3RvdHlwZSxUPVZbZGVdfHxWWyJAQGl0ZXJhdG9yIl18fE8mJlZbT10sUz0hY2UmJlR8fHRlKE8p''@;'; + put 'put ''LEY9IkFycmF5Ij09VGUmJlYuZW50cmllc3x8VDtpZihGJiYoeWU9WihGLmNhbGwobmV3IEllKSkpIT09T2JqZWN0LnByb3RvdHlwZSYmeWUubmV4dCYmKCFFJiZaKHllKSE9PW9lJiYoaWU/aWUoeWUsb2UpOlUoeWVbZGVdKXx8Vyh5ZSxkZSxTZSkpLGxlKHllLHgsITAsITApLEUmJihlZVt4''@;'; + put 'put ''XT1TZSkpLEomJk89PUFlJiZUJiZULm5hbWUhPT1BZSYmKCFFJiZzZT9ZKFYsIm5hbWUiLEFlKTooUD0hMCxTPWZ1bmN0aW9uKCl7cmV0dXJuIEIoVCx0aGlzKX0pKSxPKWlmKENlPXt2YWx1ZXM6dGUoQWUpLGtleXM6ej9TOnRlKCJrZXlzIiksZW50cmllczp0ZShrZSl9LG5lKWZvcihEZSBp''@;'; + put 'put ''biBDZSkoY2V8fFB8fCEoRGUgaW4gVikpJiZXKFYsRGUsQ2VbRGVdKTtlbHNlIG1lKHt0YXJnZXQ6VGUscHJvdG86ITAsZm9yY2VkOmNlfHxQfSxDZSk7cmV0dXJuKCFFfHxuZSkmJlZbZGVdIT09UyYmVyhWLGRlLFMse25hbWU6T30pLGVlW1RlXT1TLENlfX0sMzkyMzU6KFhlLEplLEwpPT57''@;'; + put 'put ''dmFyIG1lPUwoOTI3MzMpLEI9TCg0ODgxMSksRT1MKDI4MTEpLE1lPUwoNTExODMpLmY7WGUuZXhwb3J0cz1mdW5jdGlvbihVKXt2YXIgUT1tZS5TeW1ib2x8fChtZS5TeW1ib2w9e30pO0IoUSxVKXx8TWUoUSxVLHt2YWx1ZTpFLmYoVSl9KX19LDQ2Mjg6KFhlLEplLEwpPT57InVzZSBzdHJp''@;'; + put 'put ''Y3QiO3ZhciBtZT1MKDk0Njc2KSxCPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKEUsTWUpe2lmKCFkZWxldGUgRVtNZV0pdGhyb3cgQigiQ2Fubm90IGRlbGV0ZSBwcm9wZXJ0eSAiK21lKE1lKSsiIG9mICIrbWUoRSkpfX0sODU2MjQ6KFhlLEplLEwpPT57dmFyIG1lPUwoMjM1MjMp''@;'; + put 'put ''O1hlLmV4cG9ydHM9IW1lKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KVsxXX0pfSw0NjMxMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MDcwNSksQj1MKDcxNDk2KSxFPW1lLmRvY3VtZW50LE1lPUIoRSkm''@;'; + put 'put ''JkIoRS5jcmVhdGVFbGVtZW50KTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUpe3JldHVybiBNZT9FLmNyZWF0ZUVsZW1lbnQoVSk6e319fSwyMzEyNDpYZT0+e3ZhciBKZT1UeXBlRXJyb3I7WGUuZXhwb3J0cz1mdW5jdGlvbihtZSl7aWYobWU+OTAwNzE5OTI1NDc0MDk5MSl0aHJvdyBKZSgiTWF4''@;'; + put 'put ''aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIik7cmV0dXJuIG1lfX0sMTkyMzE6WGU9PntYZS5leHBvcnRzPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERP''@;'; + put 'put ''TVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAs''@;'; + put 'put ''Tm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJM''@;'; + put 'put ''aXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfX0sMjk5MTA6KFhlLEplLEwpPT57dmFyIEI9TCg0NjMxMykoInNwYW4iKS5jbGFzc0xpc3QsRT1CJiZCLmNvbnN0cnVjdG9yJiZCLmNvbnN0cnVjdG9yLnByb3RvdHlw''@;'; + put 'put ''ZTtYZS5leHBvcnRzPUU9PT1PYmplY3QucHJvdG90eXBlP3ZvaWQgMDpFfSw3NTcwNjooWGUsSmUsTCk9Pnt2YXIgQj1MKDc3ODM5KS5tYXRjaCgvZmlyZWZveFwvKFxkKykvaSk7WGUuZXhwb3J0cz0hIUImJitCWzFdfSw5ODg2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDc3ODM5KTtYZS5leHBv''@;'; + put 'put ''cnRzPS9NU0lFfFRyaWRlbnQvLnRlc3QobWUpfSw3ODUyMDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3NzgzOSk7WGUuZXhwb3J0cz0vKD86aXBhZHxpcGhvbmV8aXBvZCkuKmFwcGxld2Via2l0L2kudGVzdChtZSl9LDg3MjQ0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk0NzIzKSxCPUwoNzA3MDUp''@;'; + put 'put ''O1hlLmV4cG9ydHM9InByb2Nlc3MiPT1tZShCLnByb2Nlc3MpfSw3NzgzOTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0NjY5Myk7WGUuZXhwb3J0cz1tZSgibmF2aWdhdG9yIiwidXNlckFnZW50Iil8fCIifSwyOTM4NTooWGUsSmUsTCk9Pnt2YXIgWixpZSxtZT1MKDcwNzA1KSxCPUwoNzc4Mzkp''@;'; + put 'put ''LEU9bWUucHJvY2VzcyxNZT1tZS5EZW5vLFU9RSYmRS52ZXJzaW9uc3x8TWUmJk1lLnZlcnNpb24sUT1VJiZVLnY4O1EmJihpZT0oWj1RLnNwbGl0KCIuIikpWzBdPjAmJlpbMF08ND8xOisoWlswXStaWzFdKSksIWllJiZCJiYoIShaPUIubWF0Y2goL0VkZ2VcLyhcZCspLykpfHxaWzFdPj03''@;'; + put 'put ''NCkmJihaPUIubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihpZT0rWlsxXSksWGUuZXhwb3J0cz1pZX0sOTYzNDooWGUsSmUsTCk9Pnt2YXIgQj1MKDc3ODM5KS5tYXRjaCgvQXBwbGVXZWJLaXRcLyhcZCspXC4vKTtYZS5leHBvcnRzPSEhQiYmK0JbMV19LDQ3ODMzOlhlPT57WGUuZXhwb3J0''@;'; + put 'put ''cz1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdfSw4NTY0ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MDcwNSksQj1MKDQ3OTg3KS5mLEU9TCgx''@;'; + put 'put ''NjAxNyksTWU9TCgyNTY2NiksVT1MKDczNDcwKSxRPUwoNzc1NDgpLFo9TCg2NzUwNyk7WGUuZXhwb3J0cz1mdW5jdGlvbihpZSxsZSl7dmFyIHEsSixzZSxvZSxjZSxZPWllLnRhcmdldCxXPWllLmdsb2JhbCxOPWllLnN0YXQ7aWYocT1XP21lOk4/bWVbWV18fFUoWSx7fSk6KG1lW1ldfHx7''@;'; + put 'put ''fSkucHJvdG90eXBlKWZvcihKIGluIGxlKXtpZihvZT1sZVtKXSxzZT1pZS5kb250Q2FsbEdldFNldD8oY2U9QihxLEopKSYmY2UudmFsdWU6cVtKXSwhWihXP0o6WSsoTj8iLiI6IiMiKStKLGllLmZvcmNlZCkmJnZvaWQgMCE9PXNlKXtpZih0eXBlb2Ygb2U9PXR5cGVvZiBzZSljb250aW51''@;'; + put 'put ''ZTtRKG9lLHNlKX0oaWUuc2hhbXx8c2UmJnNlLnNoYW0pJiZFKG9lLCJzaGFtIiwhMCksTWUocSxKLG9lLGllKX19fSwyMzUyMzpYZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oSmUpe3RyeXtyZXR1cm4hIUplKCl9Y2F0Y2goTCl7cmV0dXJuITB9fX0sMjI4MTQ6KFhlLEplLEwpPT57InVzZSBz''@;'; + put 'put ''dHJpY3QiO0woNDI3NjApO3ZhciBtZT1MKDY2MTMpLEI9TCgyNTY2NiksRT1MKDIyMjM0KSxNZT1MKDIzNTIzKSxVPUwoMjU0NiksUT1MKDE2MDE3KSxaPVUoInNwZWNpZXMiKSxpZT1SZWdFeHAucHJvdG90eXBlO1hlLmV4cG9ydHM9ZnVuY3Rpb24obGUsWSxXLE4pe3ZhciBlZT1VKGxlKSxx''@;'; + put 'put ''PSFNZShmdW5jdGlvbigpe3ZhciBjZT17fTtyZXR1cm4gY2VbZWVdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW2xlXShjZSl9KSxKPXEmJiFNZShmdW5jdGlvbigpe3ZhciBjZT0hMSxkZT0vYS87cmV0dXJuInNwbGl0Ij09PWxlJiYoKGRlPXt9KS5jb25zdHJ1Y3Rvcj17fSxkZS5jb25z''@;'; + put 'put ''dHJ1Y3RvcltaXT1mdW5jdGlvbigpe3JldHVybiBkZX0sZGUuZmxhZ3M9IiIsZGVbZWVdPS8uL1tlZV0pLGRlLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gY2U9ITAsbnVsbH0sZGVbZWVdKCIiKSwhY2V9KTtpZighcXx8IUp8fFcpe3ZhciBzZT1tZSgvLi9bZWVdKSxvZT1ZKGVlLCIiW2xlXSxm''@;'; + put 'put ''dW5jdGlvbihjZSxkZSx2ZSxBZSxrZSl7dmFyIFNlPW1lKGNlKSxJZT1kZS5leGVjO3JldHVybiBJZT09PUV8fEllPT09aWUuZXhlYz9xJiYha2U/e2RvbmU6ITAsdmFsdWU6c2UoZGUsdmUsQWUpfTp7ZG9uZTohMCx2YWx1ZTpTZSh2ZSxkZSxBZSl9Ontkb25lOiExfX0pO0IoU3RyaW5nLnBy''@;'; + put 'put ''b3RvdHlwZSxsZSxvZVswXSksQihpZSxlZSxvZVsxXSl9TiYmUShpZVtlZV0sInNoYW0iLCEwKX19LDEyNTY2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDIzNTIzKTtYZS5leHBvcnRzPSFtZShmdW5jdGlvbigpe3JldHVybiBPYmplY3QuaXNFeHRlbnNpYmxlKE9iamVjdC5wcmV2ZW50RXh0ZW5z''@;'; + put 'put ''aW9ucyh7fSkpfSl9LDExMzA2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM2NTYxKSxCPUZ1bmN0aW9uLnByb3RvdHlwZSxFPUIuYXBwbHksTWU9Qi5jYWxsO1hlLmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmFwcGx5fHwobWU/TWUuYmluZChFKTpmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiBNZS5hcHBseShFLGFyZ3VtZW50cyl9KX0sODU0OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2NjEzKSxCPUwoODE0NTApLEU9TCgzNjU2MSksTWU9bWUobWUuYmluZCk7WGUuZXhwb3J0cz1mdW5jdGlvbihVLFEpe3JldHVybiBCKFUpLHZvaWQgMD09PVE/VTpFP01lKFUsUSk6ZnVu''@;'; + put 'put ''Y3Rpb24oKXtyZXR1cm4gVS5hcHBseShRLGFyZ3VtZW50cyl9fX0sMzY1NjE6KFhlLEplLEwpPT57dmFyIG1lPUwoMjM1MjMpO1hlLmV4cG9ydHM9IW1lKGZ1bmN0aW9uKCl7dmFyIEI9ZnVuY3Rpb24oKXt9LmJpbmQoKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgQnx8Qi5oYXNPd25Qcm9w''@;'; + put 'put ''ZXJ0eSgicHJvdG90eXBlIil9KX0sNjk4OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNjYxMyksQj1MKDgxNDUwKSxFPUwoNzE0OTYpLE1lPUwoNDg4MTEpLFU9TCg0MDkzMCksUT1MKDM2NTYxKSxaPUZ1bmN0aW9uLGllPW1lKFtdLmNvbmNhdCksbGU9bWUoW10uam9pbiks''@;'; + put 'put ''WT17fSxXPWZ1bmN0aW9uKE4sZWUscSl7aWYoIU1lKFksZWUpKXtmb3IodmFyIEo9W10sc2U9MDtzZTxlZTtzZSsrKUpbc2VdPSJhWyIrc2UrIl0iO1lbZWVdPVooIkMsYSIsInJldHVybiBuZXcgQygiK2xlKEosIiwiKSsiKSIpfXJldHVybiBZW2VlXShOLHEpfTtYZS5leHBvcnRzPVE/Wi5i''@;'; + put 'put ''aW5kOmZ1bmN0aW9uKGVlKXt2YXIgcT1CKHRoaXMpLEo9cS5wcm90b3R5cGUsc2U9VShhcmd1bWVudHMsMSksb2U9ZnVuY3Rpb24oKXt2YXIgZGU9aWUoc2UsVShhcmd1bWVudHMpKTtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIG9lP1cocSxkZS5sZW5ndGgsZGUpOnEuYXBwbHkoZWUsZGUpfTty''@;'; + put 'put ''ZXR1cm4gRShKKSYmKG9lLnByb3RvdHlwZT1KKSxvZX19LDM1NjI6KFhlLEplLEwpPT57dmFyIG1lPUwoMzY1NjEpLEI9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7WGUuZXhwb3J0cz1tZT9CLmJpbmQoQik6ZnVuY3Rpb24oKXtyZXR1cm4gQi5hcHBseShCLGFyZ3VtZW50cyl9fSwxMzg2OToo''@;'; + put 'put ''WGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTYyNCksQj1MKDQ4ODExKSxFPUZ1bmN0aW9uLnByb3RvdHlwZSxNZT1tZSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixVPUIoRSwibmFtZSIpLFE9VSYmInNvbWV0aGluZyI9PT1mdW5jdGlvbigpe30ubmFtZSxaPVUmJighbWV8fG1lJiZN''@;'; + put 'put ''ZShFLCJuYW1lIikuY29uZmlndXJhYmxlKTtYZS5leHBvcnRzPXtFWElTVFM6VSxQUk9QRVI6USxDT05GSUdVUkFCTEU6Wn19LDY2MTM6KFhlLEplLEwpPT57dmFyIG1lPUwoMzY1NjEpLEI9RnVuY3Rpb24ucHJvdG90eXBlLE1lPUIuY2FsbCxVPW1lJiZCLmJpbmQuYmluZChNZSxNZSk7WGUu''@;'; + put 'put ''ZXhwb3J0cz1tZT9mdW5jdGlvbihRKXtyZXR1cm4gUSYmVShRKX06ZnVuY3Rpb24oUSl7cmV0dXJuIFEmJmZ1bmN0aW9uKCl7cmV0dXJuIE1lLmFwcGx5KFEsYXJndW1lbnRzKX19fSw0NjY5MzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MDcwNSksQj1MKDEyMDE0KSxFPWZ1bmN0aW9uKE1lKXty''@;'; + put 'put ''ZXR1cm4gQihNZSk/TWU6dm9pZCAwfTtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lLFUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/RShtZVtNZV0pOm1lW01lXSYmbWVbTWVdW1VdfX0sNjYyODg6KFhlLEplLEwpPT57dmFyIG1lPUwoNzk1MjApLEI9TCgyMDk0OCksRT1MKDk1MjU3KSxVPUwo''@;'; + put 'put ''MjU0NikoIml0ZXJhdG9yIik7WGUuZXhwb3J0cz1mdW5jdGlvbihRKXtpZihudWxsIT1RKXJldHVybiBCKFEsVSl8fEIoUSwiQEBpdGVyYXRvciIpfHxFW21lKFEpXX19LDEyOTg5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM1NjIpLEI9TCg4MTQ1MCksRT1MKDU4NjQ3KSxNZT1MKDk0Njc2KSxV''@;'; + put 'put ''PUwoNjYyODgpLFE9VHlwZUVycm9yO1hlLmV4cG9ydHM9ZnVuY3Rpb24oWixpZSl7dmFyIGxlPWFyZ3VtZW50cy5sZW5ndGg8Mj9VKFopOmllO2lmKEIobGUpKXJldHVybiBFKG1lKGxlLFopKTt0aHJvdyBRKE1lKFopKyIgaXMgbm90IGl0ZXJhYmxlIil9fSwyMDk0ODooWGUsSmUsTCk9Pnt2''@;'; + put 'put ''YXIgbWU9TCg4MTQ1MCk7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUpe3ZhciBNZT1CW0VdO3JldHVybiBudWxsPT1NZT92b2lkIDA6bWUoTWUpfX0sNjMzODI6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDY4MDcxKSxFPU1hdGguZmxvb3IsTWU9bWUoIiIuY2hhckF0KSxVPW1lKCIi''@;'; + put 'put ''LnJlcGxhY2UpLFE9bWUoIiIuc2xpY2UpLFo9L1wkKFskJidgXXxcZHsxLDJ9fDxbXj5dKj4pL2csaWU9L1wkKFskJidgXXxcZHsxLDJ9KS9nO1hlLmV4cG9ydHM9ZnVuY3Rpb24obGUsWSxXLE4sZWUscSl7dmFyIEo9VytsZS5sZW5ndGgsc2U9Ti5sZW5ndGgsb2U9aWU7cmV0dXJuIHZvaWQg''@;'; + put 'put ''MCE9PWVlJiYoZWU9QihlZSksb2U9WiksVShxLG9lLGZ1bmN0aW9uKGNlLGRlKXt2YXIgdmU7c3dpdGNoKE1lKGRlLDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiBsZTtjYXNlImAiOnJldHVybiBRKFksMCxXKTtjYXNlIiciOnJldHVybiBRKFksSik7Y2FzZSI8Ijp2ZT1l''@;'; + put 'put ''ZVtRKGRlLDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBBZT0rZGU7aWYoMD09PUFlKXJldHVybiBjZTtpZihBZT5zZSl7dmFyIGtlPUUoQWUvMTApO3JldHVybiAwPT09a2U/Y2U6a2U8PXNlP3ZvaWQgMD09PU5ba2UtMV0/TWUoZGUsMSk6TltrZS0xXStNZShkZSwxKTpjZX12ZT1OW0FlLTFd''@;'; + put 'put ''fXJldHVybiB2b2lkIDA9PT12ZT8iIjp2ZX0pfX0sNzA3MDU6WGU9Pnt2YXIgSmU9ZnVuY3Rpb24oTCl7cmV0dXJuIEwmJkwuTWF0aD09TWF0aCYmTH07WGUuZXhwb3J0cz1KZSgib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxKZSgib2JqZWN0Ij09dHlwZW9mIHdp''@;'; + put 'put ''bmRvdyYmd2luZG93KXx8SmUoIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8SmUoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbCl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9LDQ4ODExOihYZSxKZSxMKT0+e3ZhciBtZT1M''@;'; + put 'put ''KDY2MTMpLEI9TCg2ODA3MSksRT1tZSh7fS5oYXNPd25Qcm9wZXJ0eSk7WGUuZXhwb3J0cz1PYmplY3QuaGFzT3dufHxmdW5jdGlvbihVLFEpe3JldHVybiBFKEIoVSksUSl9fSwxOTkwOTpYZT0+e1hlLmV4cG9ydHM9e319LDU5NDA2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQ2NjkzKTtYZS5l''@;'; + put 'put ''eHBvcnRzPW1lKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpfSw5NDY3NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTYyNCksQj1MKDIzNTIzKSxFPUwoNDYzMTMpO1hlLmV4cG9ydHM9IW1lJiYhQihmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoRSgiZGl2''@;'; + put 'put ''IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LDU2NjA3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2MTMpLEI9TCgyMzUyMyksRT1MKDk0NzIzKSxNZT1PYmplY3QsVT1tZSgiIi5zcGxpdCk7WGUuZXhwb3J0cz1CKGZ1bmN0aW9uKCl7cmV0dXJuIU1lKCJ6IikucHJvcGVy''@;'; + put 'put ''dHlJc0VudW1lcmFibGUoMCl9KT9mdW5jdGlvbihRKXtyZXR1cm4iU3RyaW5nIj09RShRKT9VKFEsIiIpOk1lKFEpfTpNZX0sNTE4NDk6KFhlLEplLEwpPT57dmFyIG1lPUwoMTIwMTQpLEI9TCg3MTQ5NiksRT1MKDE5NTg3KTtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lLFUsUSl7dmFyIFosaWU7''@;'; + put 'put ''cmV0dXJuIEUmJm1lKFo9VS5jb25zdHJ1Y3RvcikmJlohPT1RJiZCKGllPVoucHJvdG90eXBlKSYmaWUhPT1RLnByb3RvdHlwZSYmRShNZSxpZSksTWV9fSw1NzM3MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2NjEzKSxCPUwoMTIwMTQpLEU9TCg4MTA2OSksTWU9bWUoRnVuY3Rpb24udG9TdHJp''@;'; + put 'put ''bmcpO0IoRS5pbnNwZWN0U291cmNlKXx8KEUuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihVKXtyZXR1cm4gTWUoVSl9KSxYZS5leHBvcnRzPUUuaW5zcGVjdFNvdXJjZX0sNzE4MzI6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg2NjEzKSxFPUwoMTk5MDkpLE1lPUwoNzE0OTYpLFU9''@;'; + put 'put ''TCg0ODgxMSksUT1MKDUxMTgzKS5mLFo9TCg3NTQzMSksaWU9TCgzNTgwOCksbGU9TCg1NTIxOCksWT1MKDUyODEwKSxXPUwoMTI1NjYpLE49ITEsZWU9WSgibWV0YSIpLHE9MCxKPWZ1bmN0aW9uKEFlKXtRKEFlLGVlLHt2YWx1ZTp7b2JqZWN0SUQ6Ik8iK3ErKyx3ZWFrRGF0YTp7fX19KX0s''@;'; + put 'put ''dmU9WGUuZXhwb3J0cz17ZW5hYmxlOmZ1bmN0aW9uKCl7dmUuZW5hYmxlPWZ1bmN0aW9uKCl7fSxOPSEwO3ZhciBBZT1aLmYsa2U9QihbXS5zcGxpY2UpLFNlPXt9O1NlW2VlXT0xLEFlKFNlKS5sZW5ndGgmJihaLmY9ZnVuY3Rpb24oSWUpe2Zvcih2YXIgVGU9QWUoSWUpLEVlPTAsaGU9VGUu''@;'; + put 'put ''bGVuZ3RoO0VlPGhlO0VlKyspaWYoVGVbRWVdPT09ZWUpe2tlKFRlLEVlLDEpO2JyZWFrfXJldHVybiBUZX0sbWUoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohMH0se2dldE93blByb3BlcnR5TmFtZXM6aWUuZn0pKX0sZmFzdEtleTpmdW5jdGlvbihBZSxrZSl7aWYoIU1lKEFl''@;'; + put 'put ''KSlyZXR1cm4ic3ltYm9sIj09dHlwZW9mIEFlP0FlOigic3RyaW5nIj09dHlwZW9mIEFlPyJTIjoiUCIpK0FlO2lmKCFVKEFlLGVlKSl7aWYoIWxlKEFlKSlyZXR1cm4iRiI7aWYoIWtlKXJldHVybiJFIjtKKEFlKX1yZXR1cm4gQWVbZWVdLm9iamVjdElEfSxnZXRXZWFrRGF0YTpmdW5jdGlv''@;'; + put 'put ''bihBZSxrZSl7aWYoIVUoQWUsZWUpKXtpZighbGUoQWUpKXJldHVybiEwO2lmKCFrZSlyZXR1cm4hMTtKKEFlKX1yZXR1cm4gQWVbZWVdLndlYWtEYXRhfSxvbkZyZWV6ZTpmdW5jdGlvbihBZSl7cmV0dXJuIFcmJk4mJmxlKEFlKSYmIVUoQWUsZWUpJiZKKEFlKSxBZX19O0VbZWVdPSEwfSw3''@;'; + put 'put ''Mjc6KFhlLEplLEwpPT57dmFyIGVlLHEsSixtZT1MKDgwODA2KSxCPUwoNzA3MDUpLEU9TCg2NjEzKSxNZT1MKDcxNDk2KSxVPUwoMTYwMTcpLFE9TCg0ODgxMSksWj1MKDgxMDY5KSxpZT1MKDI3MjMwKSxsZT1MKDE5OTA5KSxZPSJPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCIsVz1CLlR5''@;'; + put 'put ''cGVFcnJvcjtpZihtZXx8Wi5zdGF0ZSl7dmFyIGNlPVouc3RhdGV8fChaLnN0YXRlPW5ldygwLEIuV2Vha01hcCkpLGRlPUUoY2UuZ2V0KSx2ZT1FKGNlLmhhcyksQWU9RShjZS5zZXQpO2VlPWZ1bmN0aW9uKFNlLEllKXtpZih2ZShjZSxTZSkpdGhyb3cgbmV3IFcoWSk7cmV0dXJuIEllLmZh''@;'; + put 'put ''Y2FkZT1TZSxBZShjZSxTZSxJZSksSWV9LHE9ZnVuY3Rpb24oU2Upe3JldHVybiBkZShjZSxTZSl8fHt9fSxKPWZ1bmN0aW9uKFNlKXtyZXR1cm4gdmUoY2UsU2UpfX1lbHNle3ZhciBrZT1pZSgic3RhdGUiKTtsZVtrZV09ITAsZWU9ZnVuY3Rpb24oU2UsSWUpe2lmKFEoU2Usa2UpKXRocm93''@;'; + put 'put ''IG5ldyBXKFkpO3JldHVybiBJZS5mYWNhZGU9U2UsVShTZSxrZSxJZSksSWV9LHE9ZnVuY3Rpb24oU2Upe3JldHVybiBRKFNlLGtlKT9TZVtrZV06e319LEo9ZnVuY3Rpb24oU2Upe3JldHVybiBRKFNlLGtlKX19WGUuZXhwb3J0cz17c2V0OmVlLGdldDpxLGhhczpKLGVuZm9yY2U6ZnVuY3Rp''@;'; + put 'put ''b24oU2Upe3JldHVybiBKKFNlKT9xKFNlKTplZShTZSx7fSl9LGdldHRlckZvcjpmdW5jdGlvbihTZSl7cmV0dXJuIGZ1bmN0aW9uKEllKXt2YXIgVGU7aWYoIU1lKEllKXx8KFRlPXEoSWUpKS50eXBlIT09U2UpdGhyb3cgVygiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK1NlKyIgcmVxdWly''@;'; + put 'put ''ZWQiKTtyZXR1cm4gVGV9fX19LDk3MTA2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDI1NDYpLEI9TCg5NTI1NyksRT1tZSgiaXRlcmF0b3IiKSxNZT1BcnJheS5wcm90b3R5cGU7WGUuZXhwb3J0cz1mdW5jdGlvbihVKXtyZXR1cm4gdm9pZCAwIT09VSYmKEIuQXJyYXk9PT1VfHxNZVtFXT09PVUp''@;'; + put 'put ''fX0sMjkxMDY6KFhlLEplLEwpPT57dmFyIG1lPUwoOTQ3MjMpO1hlLmV4cG9ydHM9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oRSl7cmV0dXJuIkFycmF5Ij09bWUoRSl9fSwxMjAxNDpYZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oSmUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBKZX19LDQ5''@;'; + put 'put ''NDUzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2MTMpLEI9TCgyMzUyMyksRT1MKDEyMDE0KSxNZT1MKDc5NTIwKSxVPUwoNDY2OTMpLFE9TCg1NzM3MSksWj1mdW5jdGlvbigpe30saWU9W10sbGU9VSgiUmVmbGVjdCIsImNvbnN0cnVjdCIpLFk9L15ccyooPzpjbGFzc3xmdW5jdGlvbilcYi8s''@;'; + put 'put ''Vz1tZShZLmV4ZWMpLE49IVkuZXhlYyhaKSxlZT1mdW5jdGlvbihzZSl7aWYoIUUoc2UpKXJldHVybiExO3RyeXtyZXR1cm4gbGUoWixpZSxzZSksITB9Y2F0Y2gob2Upe3JldHVybiExfX0scT1mdW5jdGlvbihzZSl7aWYoIUUoc2UpKXJldHVybiExO3N3aXRjaChNZShzZSkpe2Nhc2UiQXN5''@;'; + put 'put ''bmNGdW5jdGlvbiI6Y2FzZSJHZW5lcmF0b3JGdW5jdGlvbiI6Y2FzZSJBc3luY0dlbmVyYXRvckZ1bmN0aW9uIjpyZXR1cm4hMX10cnl7cmV0dXJuIE58fCEhVyhZLFEoc2UpKX1jYXRjaChvZSl7cmV0dXJuITB9fTtxLnNoYW09ITAsWGUuZXhwb3J0cz0hbGV8fEIoZnVuY3Rpb24oKXt2YXIg''@;'; + put 'put ''SjtyZXR1cm4gZWUoZWUuY2FsbCl8fCFlZShPYmplY3QpfHwhZWUoZnVuY3Rpb24oKXtKPSEwfSl8fEp9KT9xOmVlfSwxNDEyNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0ODgxMSk7WGUuZXhwb3J0cz1mdW5jdGlvbihCKXtyZXR1cm4gdm9pZCAwIT09QiYmKG1lKEIsInZhbHVlIil8fG1lKEIs''@;'; + put 'put ''IndyaXRhYmxlIikpfX0sNjc1MDc6KFhlLEplLEwpPT57dmFyIG1lPUwoMjM1MjMpLEI9TCgxMjAxNCksRT0vI3xcLnByb3RvdHlwZVwuLyxNZT1mdW5jdGlvbihsZSxZKXt2YXIgVz1RW1UobGUpXTtyZXR1cm4gVz09aWV8fFchPVomJihCKFkpP21lKFkpOiEhWSl9LFU9TWUubm9ybWFsaXpl''@;'; + put 'put ''PWZ1bmN0aW9uKGxlKXtyZXR1cm4gU3RyaW5nKGxlKS5yZXBsYWNlKEUsIi4iKS50b0xvd2VyQ2FzZSgpfSxRPU1lLmRhdGE9e30sWj1NZS5OQVRJVkU9Ik4iLGllPU1lLlBPTFlGSUxMPSJQIjtYZS5leHBvcnRzPU1lfSwzMDQyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDcxNDk2KSxCPU1hdGgu''@;'; + put 'put ''Zmxvb3I7WGUuZXhwb3J0cz1OdW1iZXIuaXNJbnRlZ2VyfHxmdW5jdGlvbihNZSl7cmV0dXJuIW1lKE1lKSYmaXNGaW5pdGUoTWUpJiZCKE1lKT09PU1lfX0sNzE0OTY6KFhlLEplLEwpPT57dmFyIG1lPUwoMTIwMTQpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQil7cmV0dXJuIm9iamVjdCI9PXR5''@;'; + put 'put ''cGVvZiBCP251bGwhPT1COm1lKEIpfX0sMTAwMTc6WGU9PntYZS5leHBvcnRzPSExfSw0MTgwNDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MTQ5NiksQj1MKDk0NzIzKSxNZT1MKDI1NDYpKCJtYXRjaCIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oVSl7dmFyIFE7cmV0dXJuIG1lKFUpJiYodm9pZCAw''@;'; + put 'put ''IT09KFE9VVtNZV0pPyEhUToiUmVnRXhwIj09QihVKSl9fSw2OTc1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQ2NjkzKSxCPUwoMTIwMTQpLEU9TCgzNzQ3NCksTWU9TCgyMzk2MSksVT1PYmplY3Q7WGUuZXhwb3J0cz1NZT9mdW5jdGlvbihRKXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIFF9OmZ1''@;'; + put 'put ''bmN0aW9uKFEpe3ZhciBaPW1lKCJTeW1ib2wiKTtyZXR1cm4gQihaKSYmRShaLnByb3RvdHlwZSxVKFEpKX19LDI2NTQzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NDkpLEI9TCgzNTYyKSxFPUwoNTg2NDcpLE1lPUwoOTQ2NzYpLFU9TCg5NzEwNiksUT1MKDU0NDUwKSxaPUwoMzc0NzQpLGll''@;'; + put 'put ''PUwoMTI5ODkpLGxlPUwoNjYyODgpLFk9TCg4MDMwNyksVz1UeXBlRXJyb3IsTj1mdW5jdGlvbihxLEope3RoaXMuc3RvcHBlZD1xLHRoaXMucmVzdWx0PUp9LGVlPU4ucHJvdG90eXBlO1hlLmV4cG9ydHM9ZnVuY3Rpb24ocSxKLHNlKXt2YXIgU2UsSWUsVGUsRWUsaGUsTyx6LGNlPSEoIXNl''@;'; + put 'put ''fHwhc2UuQVNfRU5UUklFUyksZGU9ISghc2V8fCFzZS5JU19SRUNPUkQpLHZlPSEoIXNlfHwhc2UuSVNfSVRFUkFUT1IpLEFlPSEoIXNlfHwhc2UuSU5URVJSVVBURUQpLGtlPW1lKEosc2UmJnNlLnRoYXQpLG5lPWZ1bmN0aW9uKHgpe3JldHVybiBTZSYmWShTZSwibm9ybWFsIix4KSxuZXcg''@;'; + put 'put ''TighMCx4KX0sdGU9ZnVuY3Rpb24oeCl7cmV0dXJuIGNlPyhFKHgpLEFlP2tlKHhbMF0seFsxXSxuZSk6a2UoeFswXSx4WzFdKSk6QWU/a2UoeCxuZSk6a2UoeCl9O2lmKGRlKVNlPXEuaXRlcmF0b3I7ZWxzZSBpZih2ZSlTZT1xO2Vsc2V7aWYoIShJZT1sZShxKSkpdGhyb3cgVyhNZShxKSsi''@;'; + put 'put ''IGlzIG5vdCBpdGVyYWJsZSIpO2lmKFUoSWUpKXtmb3IoVGU9MCxFZT1RKHEpO0VlPlRlO1RlKyspaWYoKGhlPXRlKHFbVGVdKSkmJlooZWUsaGUpKXJldHVybiBoZTtyZXR1cm4gbmV3IE4oITEpfVNlPWllKHEsSWUpfWZvcihPPWRlP3EubmV4dDpTZS5uZXh0OyEoej1CKE8sU2UpKS5kb25l''@;'; + put 'put ''Oyl7dHJ5e2hlPXRlKHoudmFsdWUpfWNhdGNoKHgpe1koU2UsInRocm93Iix4KX1pZigib2JqZWN0Ij09dHlwZW9mIGhlJiZoZSYmWihlZSxoZSkpcmV0dXJuIGhlfXJldHVybiBuZXcgTighMSl9fSw4MDMwNzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzNTYyKSxCPUwoNTg2NDcpLEU9TCgyMDk0''@;'; + put 'put ''OCk7WGUuZXhwb3J0cz1mdW5jdGlvbihNZSxVLFEpe3ZhciBaLGllO0IoTWUpO3RyeXtpZighKFo9RShNZSwicmV0dXJuIikpKXtpZigidGhyb3ciPT09VSl0aHJvdyBRO3JldHVybiBRfVo9bWUoWixNZSl9Y2F0Y2gobGUpe2llPSEwLFo9bGV9aWYoInRocm93Ij09PVUpdGhyb3cgUTtpZihp''@;'; + put 'put ''ZSl0aHJvdyBaO3JldHVybiBCKFopLFF9fSwxODU0NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIFksVyxOLG1lPUwoMjM1MjMpLEI9TCgxMjAxNCksRT1MKDc0NDEwKSxNZT1MKDgyNzMzKSxVPUwoMjU2NjYpLFE9TCgyNTQ2KSxaPUwoMTAwMTcpLGllPVEoIml0ZXJhdG9yIiksbGU9''@;'; + put 'put ''ITE7W10ua2V5cyYmKCJuZXh0ImluKE49W10ua2V5cygpKT8oVz1NZShNZShOKSkpIT09T2JqZWN0LnByb3RvdHlwZSYmKFk9Vyk6bGU9ITApLG51bGw9PVl8fG1lKGZ1bmN0aW9uKCl7dmFyIHE9e307cmV0dXJuIFlbaWVdLmNhbGwocSkhPT1xfSk/WT17fTpaJiYoWT1FKFkpKSxCKFlbaWVd''@;'; + put 'put ''KXx8VShZLGllLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxYZS5leHBvcnRzPXtJdGVyYXRvclByb3RvdHlwZTpZLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6bGV9fSw5NTI1NzpYZT0+e1hlLmV4cG9ydHM9e319LDU0NDUwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDY1MzE2KTtYZS5leHBvcnRz''@;'; + put 'put ''PWZ1bmN0aW9uKEIpe3JldHVybiBtZShCLmxlbmd0aCl9fSwzNDQ2ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyksQj1MKDEyMDE0KSxFPUwoNDg4MTEpLE1lPUwoODU2MjQpLFU9TCgxMzg2OSkuQ09ORklHVVJBQkxFLFE9TCg1NzM3MSksWj1MKDcyNyksaWU9Wi5lbmZvcmNlLGxlPVou''@;'; + put 'put ''Z2V0LFk9T2JqZWN0LmRlZmluZVByb3BlcnR5LFc9TWUmJiFtZShmdW5jdGlvbigpe3JldHVybiA4IT09WShmdW5jdGlvbigpe30sImxlbmd0aCIse3ZhbHVlOjh9KS5sZW5ndGh9KSxOPVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKSxlZT1YZS5leHBvcnRzPWZ1bmN0aW9uKHEsSixz''@;'; + put 'put ''ZSl7IlN5bWJvbCgiPT09U3RyaW5nKEopLnNsaWNlKDAsNykmJihKPSJbIitTdHJpbmcoSikucmVwbGFjZSgvXlN5bWJvbFwoKFteKV0qKVwpLywiJDEiKSsiXSIpLHNlJiZzZS5nZXR0ZXImJihKPSJnZXQgIitKKSxzZSYmc2Uuc2V0dGVyJiYoSj0ic2V0ICIrSiksKCFFKHEsIm5hbWUiKXx8''@;'; + put 'put ''VSYmcS5uYW1lIT09SikmJihNZT9ZKHEsIm5hbWUiLHt2YWx1ZTpKLGNvbmZpZ3VyYWJsZTohMH0pOnEubmFtZT1KKSxXJiZzZSYmRShzZSwiYXJpdHkiKSYmcS5sZW5ndGghPT1zZS5hcml0eSYmWShxLCJsZW5ndGgiLHt2YWx1ZTpzZS5hcml0eX0pO3RyeXtzZSYmRShzZSwiY29uc3RydWN0''@;'; + put 'put ''b3IiKSYmc2UuY29uc3RydWN0b3I/TWUmJlkocSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KTpxLnByb3RvdHlwZSYmKHEucHJvdG90eXBlPXZvaWQgMCl9Y2F0Y2goY2Upe312YXIgb2U9aWUocSk7cmV0dXJuIEUob2UsInNvdXJjZSIpfHwob2Uuc291cmNlPU4uam9pbigic3RyaW5nIj09''@;'; + put 'put ''dHlwZW9mIEo/SjoiIikpLHF9O0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz1lZShmdW5jdGlvbigpe3JldHVybiBCKHRoaXMpJiZsZSh0aGlzKS5zb3VyY2V8fFEodGhpcyl9LCJ0b1N0cmluZyIpfSw4NDc0NDpYZT0+e3ZhciBKZT1NYXRoLmNlaWwsTD1NYXRoLmZsb29yO1hlLmV4cG9y''@;'; + put 'put ''dHM9TWF0aC50cnVuY3x8ZnVuY3Rpb24oQil7dmFyIEU9K0I7cmV0dXJuKEU+MD9MOkplKShFKX19LDM5NDY2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDgyNzcwKTtYZS5leHBvcnRzPW1lJiYhIVN5bWJvbC5mb3ImJiEhU3ltYm9sLmtleUZvcn0sODI3NzA6KFhlLEplLEwpPT57dmFyIG1lPUwo''@;'; + put 'put ''MjkzODUpLEI9TCgyMzUyMyk7WGUuZXhwb3J0cz0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiFCKGZ1bmN0aW9uKCl7dmFyIEU9U3ltYm9sKCk7cmV0dXJuIVN0cmluZyhFKXx8IShPYmplY3QoRSlpbnN0YW5jZW9mIFN5bWJvbCl8fCFTeW1ib2wuc2hhbSYmbWUmJm1lPDQxfSl9''@;'; + put 'put ''LDgwODA2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDcwNzA1KSxCPUwoMTIwMTQpLEU9TCg1NzM3MSksTWU9bWUuV2Vha01hcDtYZS5leHBvcnRzPUIoTWUpJiYvbmF0aXZlIGNvZGUvLnRlc3QoRShNZSkpfSw0MTk2MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0MTgwNCksQj1UeXBlRXJyb3I7WGUu''@;'; + put 'put ''ZXhwb3J0cz1mdW5jdGlvbihFKXtpZihtZShFKSl0aHJvdyBCKCJUaGUgbWV0aG9kIGRvZXNuJ3QgYWNjZXB0IHJlZ3VsYXIgZXhwcmVzc2lvbnMiKTtyZXR1cm4gRX19LDQ3OTU5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTYyNCksQj1MKDY2MTMpLEU9TCgzNTYyKSxN''@;'; + put 'put ''ZT1MKDIzNTIzKSxVPUwoMTQ1NDUpLFE9TCg1NTM0KSxaPUwoNDY5MDEpLGllPUwoNjgwNzEpLGxlPUwoNTY2MDcpLFk9T2JqZWN0LmFzc2lnbixXPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxOPUIoW10uY29uY2F0KTtYZS5leHBvcnRzPSFZfHxNZShmdW5jdGlvbigpe2lmKG1lJiYxIT09WSh7''@;'; + put 'put ''YjoxfSxZKFcoe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe1codGhpcywiYiIse3ZhbHVlOjMsZW51bWVyYWJsZTohMX0pfX0pLHtiOjJ9KSkuYilyZXR1cm4hMDt2YXIgZWU9e30scT17fSxKPVN5bWJvbCgpLHNlPSJhYmNkZWZnaGlqa2xtbm9wcXJzdCI7cmV0dXJuIGVl''@;'; + put 'put ''W0pdPTcsc2Uuc3BsaXQoIiIpLmZvckVhY2goZnVuY3Rpb24ob2Upe3Fbb2VdPW9lfSksNyE9WSh7fSxlZSlbSl18fFUoWSh7fSxxKSkuam9pbigiIikhPXNlfSk/ZnVuY3Rpb24ocSxKKXtmb3IodmFyIHNlPWllKHEpLG9lPWFyZ3VtZW50cy5sZW5ndGgsY2U9MSxkZT1RLmYsdmU9Wi5mO29l''@;'; + put 'put ''PmNlOylmb3IodmFyIFRlLEFlPWxlKGFyZ3VtZW50c1tjZSsrXSksa2U9ZGU/TihVKEFlKSxkZShBZSkpOlUoQWUpLFNlPWtlLmxlbmd0aCxJZT0wO1NlPkllOylUZT1rZVtJZSsrXSwoIW1lfHxFKHZlLEFlLFRlKSkmJihzZVtUZV09QWVbVGVdKTtyZXR1cm4gc2V9Oll9LDc0NDEwOihYZSxK''@;'; + put 'put ''ZSxMKT0+e3ZhciBvZSxtZT1MKDU4NjQ3KSxCPUwoNzczMjgpLEU9TCg0NzgzMyksTWU9TCgxOTkwOSksVT1MKDU5NDA2KSxRPUwoNDYzMTMpLFo9TCgyNzIzMCksWT0icHJvdG90eXBlIixXPSJzY3JpcHQiLE49WigiSUVfUFJPVE8iKSxlZT1mdW5jdGlvbigpe30scT1mdW5jdGlvbihkZSl7''@;'; + put 'put ''cmV0dXJuIjwiK1crIj4iK2RlKyI8LyIrVysiPiJ9LEo9ZnVuY3Rpb24oZGUpe2RlLndyaXRlKHEoIiIpKSxkZS5jbG9zZSgpO3ZhciB2ZT1kZS5wYXJlbnRXaW5kb3cuT2JqZWN0O3JldHVybiBkZT1udWxsLHZlfSxjZT1mdW5jdGlvbigpe3RyeXtvZT1uZXcgQWN0aXZlWE9iamVjdCgiaHRt''@;'; + put 'put ''bGZpbGUiKX1jYXRjaCh2ZSl7fWNlPSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQuZG9tYWluJiZvZT9KKG9lKTpmdW5jdGlvbigpe3ZhciBBZSxkZT1RKCJpZnJhbWUiKTtyZXR1cm4gZGUuc3R5bGUuZGlzcGxheT0ibm9uZSIsVS5hcHBlbmRDaGlsZChkZSksZGUuc3Jj''@;'; + put 'put ''PVN0cmluZygiamF2YXNjcmlwdDoiKSwoQWU9ZGUuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLEFlLndyaXRlKHEoImRvY3VtZW50LkY9T2JqZWN0IikpLEFlLmNsb3NlKCksQWUuRn0oKTpKKG9lKTtmb3IodmFyIGRlPUUubGVuZ3RoO2RlLS07KWRlbGV0ZSBjZVtZXVtFW2RlXV07''@;'; + put 'put ''cmV0dXJuIGNlKCl9O01lW05dPSEwLFhlLmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24odmUsQWUpe3ZhciBrZTtyZXR1cm4gbnVsbCE9PXZlPyhlZVtZXT1tZSh2ZSksa2U9bmV3IGVlLGVlW1ldPW51bGwsa2VbTl09dmUpOmtlPWNlKCksdm9pZCAwPT09QWU/a2U6Qi5mKGtlLEFl''@;'; + put 'put ''KX19LDc3MzI4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjI0KSxCPUwoMjAxMTgpLEU9TCg1MTE4MyksTWU9TCg1ODY0NyksVT1MKDUwMzI3KSxRPUwoMTQ1NDUpO0plLmY9bWUmJiFCP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKGllLGxlKXtNZShpZSk7Zm9yKHZhciBxLFk9''@;'; + put 'put ''VShsZSksVz1RKGxlKSxOPVcubGVuZ3RoLGVlPTA7Tj5lZTspRS5mKGllLHE9V1tlZSsrXSxZW3FdKTtyZXR1cm4gaWV9fSw1MTE4MzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTYyNCksQj1MKDk0Njc1KSxFPUwoMjAxMTgpLE1lPUwoNTg2NDcpLFU9TCg4NDA5NCksUT1UeXBlRXJyb3IsWj1P''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHksaWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixsZT0iZW51bWVyYWJsZSIsWT0iY29uZmlndXJhYmxlIixXPSJ3cml0YWJsZSI7SmUuZj1tZT9FP2Z1bmN0aW9uKGVlLHEsSil7aWYoTWUoZWUpLHE9VShxKSxNZShKKSwiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgZWUmJiJwcm90b3R5cGUiPT09cSYmInZhbHVlImluIEomJlcgaW4gSiYmIUpbV10pe3ZhciBzZT1pZShlZSxxKTtzZSYmc2VbV10mJihlZVtxXT1KLnZhbHVlLEo9e2NvbmZpZ3VyYWJsZTpZIGluIEo/SltZXTpzZVtZXSxlbnVtZXJhYmxlOmxlIGluIEo/SltsZV06c2VbbGVdLHdy''@;'; + put 'put ''aXRhYmxlOiExfSl9cmV0dXJuIFooZWUscSxKKX06WjpmdW5jdGlvbihlZSxxLEope2lmKE1lKGVlKSxxPVUocSksTWUoSiksQil0cnl7cmV0dXJuIFooZWUscSxKKX1jYXRjaChzZSl7fWlmKCJnZXQiaW4gSnx8InNldCJpbiBKKXRocm93IFEoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7''@;'; + put 'put ''cmV0dXJuInZhbHVlImluIEomJihlZVtxXT1KLnZhbHVlKSxlZX19LDQ3OTg3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjI0KSxCPUwoMzU2MiksRT1MKDQ2OTAxKSxNZT1MKDczOTIwKSxVPUwoNTAzMjcpLFE9TCg4NDA5NCksWj1MKDQ4ODExKSxpZT1MKDk0Njc1KSxsZT1PYmplY3QuZ2V0''@;'; + put 'put ''T3duUHJvcGVydHlEZXNjcmlwdG9yO0plLmY9bWU/bGU6ZnVuY3Rpb24oVyxOKXtpZihXPVUoVyksTj1RKE4pLGllKXRyeXtyZXR1cm4gbGUoVyxOKX1jYXRjaChlZSl7fWlmKFooVyxOKSlyZXR1cm4gTWUoIUIoRS5mLFcsTiksV1tOXSl9fSwzNTgwODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5''@;'; + put 'put ''NDcyMyksQj1MKDUwMzI3KSxFPUwoNzU0MzEpLmYsTWU9TCgxMDg3MiksVT0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93JiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcz9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cpOltdO1hlLmV4cG9ydHMuZj1mdW5jdGlvbihp''@;'; + put 'put ''ZSl7cmV0dXJuIFUmJiJXaW5kb3ciPT1tZShpZSk/ZnVuY3Rpb24oWil7dHJ5e3JldHVybiBFKFopfWNhdGNoKGllKXtyZXR1cm4gTWUoVSl9fShpZSk6RShCKGllKSl9fSw3NTQzMTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNDk2NyksRT1MKDQ3ODMzKS5jb25jYXQoImxlbmd0aCIsInByb3Rv''@;'; + put 'put ''dHlwZSIpO0plLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKFUpe3JldHVybiBtZShVLEUpfX0sNTUzNDooWGUsSmUpPT57SmUuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSw4MjczMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0ODgxMSksQj1MKDEyMDE0KSxF''@;'; + put 'put ''PUwoNjgwNzEpLE1lPUwoMjcyMzApLFU9TCg0NjA4NiksUT1NZSgiSUVfUFJPVE8iKSxaPU9iamVjdCxpZT1aLnByb3RvdHlwZTtYZS5leHBvcnRzPVU/Wi5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihsZSl7dmFyIFk9RShsZSk7aWYobWUoWSxRKSlyZXR1cm4gWVtRXTt2YXIgVz1ZLmNvbnN0''@;'; + put 'put ''cnVjdG9yO3JldHVybiBCKFcpJiZZIGluc3RhbmNlb2YgVz9XLnByb3RvdHlwZTpZIGluc3RhbmNlb2YgWj9pZTpudWxsfX0sNTUyMTg6KFhlLEplLEwpPT57dmFyIG1lPUwoMjM1MjMpLEI9TCg3MTQ5NiksRT1MKDk0NzIzKSxNZT1MKDYyNzg5KSxVPU9iamVjdC5pc0V4dGVuc2libGUsUT1t''@;'; + put 'put ''ZShmdW5jdGlvbigpe1UoMSl9KTtYZS5leHBvcnRzPVF8fE1lP2Z1bmN0aW9uKGllKXtyZXR1cm4hKCFCKGllKXx8TWUmJiJBcnJheUJ1ZmZlciI9PUUoaWUpKSYmKCFVfHxVKGllKSl9OlV9LDM3NDc0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2MTMpO1hlLmV4cG9ydHM9bWUoe30uaXNQcm90''@;'; + put 'put ''b3R5cGVPZil9LDI0OTY3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2MTMpLEI9TCg0ODgxMSksRT1MKDUwMzI3KSxNZT1MKDM2MzA1KS5pbmRleE9mLFU9TCgxOTkwOSksUT1tZShbXS5wdXNoKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFosaWUpe3ZhciBOLGxlPUUoWiksWT0wLFc9W107Zm9yKE4g''@;'; + put 'put ''aW4gbGUpIUIoVSxOKSYmQihsZSxOKSYmUShXLE4pO2Zvcig7aWUubGVuZ3RoPlk7KUIobGUsTj1pZVtZKytdKSYmKH5NZShXLE4pfHxRKFcsTikpO3JldHVybiBXfX0sMTQ1NDU6KFhlLEplLEwpPT57dmFyIG1lPUwoMjQ5NjcpLEI9TCg0NzgzMyk7WGUuZXhwb3J0cz1PYmplY3Qua2V5c3x8''@;'; + put 'put ''ZnVuY3Rpb24oTWUpe3JldHVybiBtZShNZSxCKX19LDQ2OTAxOihYZSxKZSk9PnsidXNlIHN0cmljdCI7dmFyIEw9e30ucHJvcGVydHlJc0VudW1lcmFibGUsbWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixCPW1lJiYhTC5jYWxsKHsxOjJ9LDEpO0plLmY9Qj9mdW5jdGlvbihN''@;'; + put 'put ''ZSl7dmFyIFU9bWUodGhpcyxNZSk7cmV0dXJuISFVJiZVLmVudW1lcmFibGV9Okx9LDE5NTg3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2MTMpLEI9TCg1ODY0NyksRT1MKDcwMDgpO1hlLmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7''@;'; + put 'put ''dmFyIFEsTWU9ITEsVT17fTt0cnl7KFE9bWUoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQpKShVLFtdKSxNZT1VIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goWil7fXJldHVybiBmdW5jdGlvbihpZSxsZSl7cmV0dXJuIEIo''@;'; + put 'put ''aWUpLEUobGUpLE1lP1EoaWUsbGUpOmllLl9fcHJvdG9fXz1sZSxpZX19KCk6dm9pZCAwKX0sNDQ1ODI6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2MjQpLEI9TCg2NjEzKSxFPUwoMTQ1NDUpLE1lPUwoNTAzMjcpLFE9QihMKDQ2OTAxKS5mKSxaPUIoW10ucHVzaCksaWU9ZnVuY3Rpb24obGUp''@;'; + put 'put ''e3JldHVybiBmdW5jdGlvbihZKXtmb3IodmFyIHNlLFc9TWUoWSksTj1FKFcpLGVlPU4ubGVuZ3RoLHE9MCxKPVtdO2VlPnE7KXNlPU5bcSsrXSwoIW1lfHxRKFcsc2UpKSYmWihKLGxlP1tzZSxXW3NlXV06V1tzZV0pO3JldHVybiBKfX07WGUuZXhwb3J0cz17ZW50cmllczppZSghMCksdmFs''@;'; + put 'put ''dWVzOmllKCExKX19LDc3MDU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI3NDkwKSxCPUwoNzk1MjApO1hlLmV4cG9ydHM9bWU/e30udG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK0IodGhpcykrIl0ifX0sNjM0MTU6KFhlLEplLEwpPT57dmFyIG1lPUwo''@;'; + put 'put ''MzU2MiksQj1MKDEyMDE0KSxFPUwoNzE0OTYpLE1lPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKFUsUSl7dmFyIFosaWU7aWYoInN0cmluZyI9PT1RJiZCKFo9VS50b1N0cmluZykmJiFFKGllPW1lKFosVSkpfHxCKFo9VS52YWx1ZU9mKSYmIUUoaWU9bWUoWixVKSl8fCJzdHJpbmci''@;'; + put 'put ''IT09USYmQihaPVUudG9TdHJpbmcpJiYhRShpZT1tZShaLFUpKSlyZXR1cm4gaWU7dGhyb3cgTWUoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sMjExOTk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDY2OTMpLEI9TCg2NjEzKSxFPUwoNzU0MzEpLE1lPUwoNTUz''@;'; + put 'put ''NCksVT1MKDU4NjQ3KSxRPUIoW10uY29uY2F0KTtYZS5leHBvcnRzPW1lKCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbihpZSl7dmFyIGxlPUUuZihVKGllKSksWT1NZS5mO3JldHVybiBZP1EobGUsWShpZSkpOmxlfX0sOTI3MzM6KFhlLEplLEwpPT57dmFyIG1lPUwoNzA3MDUpO1hl''@;'; + put 'put ''LmV4cG9ydHM9bWV9LDc4ODA6KFhlLEplLEwpPT57dmFyIG1lPUwoNTExODMpLmY7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUsTWUpe01lIGluIEJ8fG1lKEIsTWUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRVtNZV19LHNldDpmdW5jdGlvbihVKXtFW01lXT1VfX0p''@;'; + put 'put ''fX0sNTgxMjY6KFhlLEplLEwpPT57dmFyIG1lPUwoMzU2MiksQj1MKDU4NjQ3KSxFPUwoMTIwMTQpLE1lPUwoOTQ3MjMpLFU9TCgyMjIzNCksUT1UeXBlRXJyb3I7WGUuZXhwb3J0cz1mdW5jdGlvbihaLGllKXt2YXIgbGU9Wi5leGVjO2lmKEUobGUpKXt2YXIgWT1tZShsZSxaLGllKTtyZXR1''@;'; + put 'put ''cm4gbnVsbCE9PVkmJkIoWSksWX1pZigiUmVnRXhwIj09PU1lKFopKXJldHVybiBtZShVLFosaWUpO3Rocm93IFEoIlJlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXIiKX19LDIyMjM0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIga2UsU2UsbWU9TCgzNTYy''@;'; + put 'put ''KSxCPUwoNjYxMyksRT1MKDkyMSksTWU9TCg0ODcyNSksVT1MKDk3MTg5KSxRPUwoNjg4MzUpLFo9TCg3NDQxMCksaWU9TCg3MjcpLmdldCxsZT1MKDQzMTg2KSxZPUwoNTE5NDkpLFc9USgibmF0aXZlLXN0cmluZy1yZXBsYWNlIixTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpLE49UmVnRXhw''@;'; + put 'put ''LnByb3RvdHlwZS5leGVjLGVlPU4scT1CKCIiLmNoYXJBdCksSj1CKCIiLmluZGV4T2YpLHNlPUIoIiIucmVwbGFjZSksb2U9QigiIi5zbGljZSksY2U9KFNlPS9iKi9nLG1lKE4sa2U9L2EvLCJhIiksbWUoTixTZSwiYSIpLDAhPT1rZS5sYXN0SW5kZXh8fDAhPT1TZS5sYXN0SW5kZXgpLGRl''@;'; + put 'put ''PVUuQlJPS0VOX0NBUkVULHZlPXZvaWQgMCE9PS8oKT8/Ly5leGVjKCIiKVsxXTsoY2V8fHZlfHxkZXx8bGV8fFkpJiYoZWU9ZnVuY3Rpb24oU2Upe3ZhciBPLHosbmUsdGUseCxQLFYsSWU9dGhpcyxUZT1pZShJZSksRWU9RShTZSksaGU9VGUucmF3O2lmKGhlKXJldHVybiBoZS5sYXN0SW5k''@;'; + put 'put ''ZXg9SWUubGFzdEluZGV4LE89bWUoZWUsaGUsRWUpLEllLmxhc3RJbmRleD1oZS5sYXN0SW5kZXgsTzt2YXIgVD1UZS5ncm91cHMsUz1kZSYmSWUuc3RpY2t5LEY9bWUoTWUsSWUpLHllPUllLnNvdXJjZSxDZT0wLERlPUVlO2lmKFMmJihGPXNlKEYsInkiLCIiKSwtMT09PUooRiwiZyIpJiYo''@;'; + put 'put ''Ris9ImciKSxEZT1vZShFZSxJZS5sYXN0SW5kZXgpLEllLmxhc3RJbmRleD4wJiYoIUllLm11bHRpbGluZXx8SWUubXVsdGlsaW5lJiYiXG4iIT09cShFZSxJZS5sYXN0SW5kZXgtMSkpJiYoeWU9Iig/OiAiK3llKyIpIixEZT0iICIrRGUsQ2UrKyksej1uZXcgUmVnRXhwKCJeKD86Iit5ZSsi''@;'; + put 'put ''KSIsRikpLHZlJiYoej1uZXcgUmVnRXhwKCJeIit5ZSsiJCg/IVxccykiLEYpKSxjZSYmKG5lPUllLmxhc3RJbmRleCksdGU9bWUoTixTP3o6SWUsRGUpLFM/dGU/KHRlLmlucHV0PW9lKHRlLmlucHV0LENlKSx0ZVswXT1vZSh0ZVswXSxDZSksdGUuaW5kZXg9SWUubGFzdEluZGV4LEllLmxh''@;'; + put 'put ''c3RJbmRleCs9dGVbMF0ubGVuZ3RoKTpJZS5sYXN0SW5kZXg9MDpjZSYmdGUmJihJZS5sYXN0SW5kZXg9SWUuZ2xvYmFsP3RlLmluZGV4K3RlWzBdLmxlbmd0aDpuZSksdmUmJnRlJiZ0ZS5sZW5ndGg+MSYmbWUoVyx0ZVswXSx6LGZ1bmN0aW9uKCl7Zm9yKHg9MTt4PGFyZ3VtZW50cy5sZW5n''@;'; + put 'put ''dGgtMjt4Kyspdm9pZCAwPT09YXJndW1lbnRzW3hdJiYodGVbeF09dm9pZCAwKX0pLHRlJiZUKWZvcih0ZS5ncm91cHM9UD1aKG51bGwpLHg9MDt4PFQubGVuZ3RoO3grKylQWyhWPVRbeF0pWzBdXT10ZVtWWzFdXTtyZXR1cm4gdGV9KSxYZS5leHBvcnRzPWVlfSw0ODcyNTooWGUsSmUsTCk9''@;'; + put 'put ''PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNTg2NDcpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgQj1tZSh0aGlzKSxFPSIiO3JldHVybiBCLmhhc0luZGljZXMmJihFKz0iZCIpLEIuZ2xvYmFsJiYoRSs9ImciKSxCLmlnbm9yZUNhc2UmJihFKz0iaSIpLEIubXVsdGlsaW5lJiYoRSs9Im0i''@;'; + put 'put ''KSxCLmRvdEFsbCYmKEUrPSJzIiksQi51bmljb2RlJiYoRSs9InUiKSxCLnVuaWNvZGVTZXRzJiYoRSs9InYiKSxCLnN0aWNreSYmKEUrPSJ5IiksRX19LDgxNjIwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDM1NjIpLEI9TCg0ODgxMSksRT1MKDM3NDc0KSxNZT1MKDQ4NzI1KSxVPVJlZ0V4cC5w''@;'; + put 'put ''cm90b3R5cGU7WGUuZXhwb3J0cz1mdW5jdGlvbihRKXt2YXIgWj1RLmZsYWdzO3JldHVybiB2b2lkIDAhPT1afHwiZmxhZ3MiaW4gVXx8QihRLCJmbGFncyIpfHwhRShVLFEpP1o6bWUoTWUsUSl9fSw5NzE4OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyksRT1MKDcwNzA1KS5SZWdFeHAs''@;'; + put 'put ''TWU9bWUoZnVuY3Rpb24oKXt2YXIgWj1FKCJhIiwieSIpO3JldHVybiBaLmxhc3RJbmRleD0yLG51bGwhPVouZXhlYygiYWJjZCIpfSksVT1NZXx8bWUoZnVuY3Rpb24oKXtyZXR1cm4hRSgiYSIsInkiKS5zdGlja3l9KSxRPU1lfHxtZShmdW5jdGlvbigpe3ZhciBaPUUoIl5yIiwiZ3kiKTty''@;'; + put 'put ''ZXR1cm4gWi5sYXN0SW5kZXg9MixudWxsIT1aLmV4ZWMoInN0ciIpfSk7WGUuZXhwb3J0cz17QlJPS0VOX0NBUkVUOlEsTUlTU0VEX1NUSUNLWTpVLFVOU1VQUE9SVEVEX1k6TWV9fSw0MzE4NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyksRT1MKDcwNzA1KS5SZWdFeHA7WGUuZXhwb3J0''@;'; + put 'put ''cz1tZShmdW5jdGlvbigpe3ZhciBNZT1FKCIuIiwicyIpO3JldHVybiEoTWUuZG90QWxsJiZNZS5leGVjKCJcbiIpJiYicyI9PT1NZS5mbGFncyl9KX0sNTE5NDk6KFhlLEplLEwpPT57dmFyIG1lPUwoMjM1MjMpLEU9TCg3MDcwNSkuUmVnRXhwO1hlLmV4cG9ydHM9bWUoZnVuY3Rpb24oKXt2''@;'; + put 'put ''YXIgTWU9RSgiKD88YT5iKSIsImciKTtyZXR1cm4iYiIhPT1NZS5leGVjKCJiIikuZ3JvdXBzLmF8fCJiYyIhPT0iYiIucmVwbGFjZShNZSwiJDxhPmMiKX0pfSwyNDU3MjpYZT0+e3ZhciBKZT1UeXBlRXJyb3I7WGUuZXhwb3J0cz1mdW5jdGlvbihMKXtpZihudWxsPT1MKXRocm93IEplKCJD''@;'; + put 'put ''YW4ndCBjYWxsIG1ldGhvZCBvbiAiK0wpO3JldHVybiBMfX0sNTU4ODE6WGU9PntYZS5leHBvcnRzPU9iamVjdC5pc3x8ZnVuY3Rpb24oTCxtZSl7cmV0dXJuIEw9PT1tZT8wIT09THx8MS9MPT0xL21lOkwhPUwmJm1lIT1tZX19LDk1ODk1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDcwNzA1KSxC''@;'; + put 'put ''PUwoMTEzMDYpLEU9TCgxMjAxNCksTWU9TCg3NzgzOSksVT1MKDQwOTMwKSxRPUwoNzk1NDUpLFo9L01TSUUgLlwuLy50ZXN0KE1lKSxpZT1tZS5GdW5jdGlvbixsZT1mdW5jdGlvbihZKXtyZXR1cm4gWj9mdW5jdGlvbihXLE4pe3ZhciBlZT1RKGFyZ3VtZW50cy5sZW5ndGgsMSk+MixxPUUo''@;'; + put 'put ''Vyk/VzppZShXKSxKPWVlP1UoYXJndW1lbnRzLDIpOnZvaWQgMDtyZXR1cm4gWShlZT9mdW5jdGlvbigpe0IocSx0aGlzLEopfTpxLE4pfTpZfTtYZS5leHBvcnRzPXtzZXRUaW1lb3V0OmxlKG1lLnNldFRpbWVvdXQpLHNldEludGVydmFsOmxlKG1lLnNldEludGVydmFsKX19LDY4MzE1OihY''@;'; + put 'put ''ZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0NjY5MyksQj1MKDUxMTgzKSxFPUwoMjU0NiksTWU9TCg4NTYyNCksVT1FKCJzcGVjaWVzIik7WGUuZXhwb3J0cz1mdW5jdGlvbihRKXt2YXIgWj1tZShRKTtNZSYmWiYmIVpbVV0mJigwLEIuZikoWixVLHtjb25maWd1cmFibGU6ITAs''@;'; + put 'put ''Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSl9fSw1NTk2ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MTE4MykuZixCPUwoNDg4MTEpLE1lPUwoMjU0NikoInRvU3RyaW5nVGFnIik7WGUuZXhwb3J0cz1mdW5jdGlvbihVLFEsWil7VSYmIVomJihVPVUucHJvdG90eXBlKSxVJiYhQihVLE1l''@;'; + put 'put ''KSYmbWUoVSxNZSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOlF9KX19LDI3MjMwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDY4ODM1KSxCPUwoNTI4MTApLEU9bWUoImtleXMiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lKXtyZXR1cm4gRVtNZV18fChFW01lXT1CKE1lKSl9fSw4MTA2OTooWGUsSmUs''@;'; + put 'put ''TCk9Pnt2YXIgbWU9TCg3MDcwNSksQj1MKDczNDcwKSxFPSJfX2NvcmUtanNfc2hhcmVkX18iLE1lPW1lW0VdfHxCKEUse30pO1hlLmV4cG9ydHM9TWV9LDY4ODM1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDEwMDE3KSxCPUwoODEwNjkpOyhYZS5leHBvcnRzPWZ1bmN0aW9uKEUsTWUpe3JldHVy''@;'; + put 'put ''biBCW0VdfHwoQltFXT12b2lkIDAhPT1NZT9NZTp7fSl9KSgidmVyc2lvbnMiLFtdKS5wdXNoKHt2ZXJzaW9uOiIzLjI0LjEiLG1vZGU6bWU/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiXHhhOSAyMDE0LTIwMjIgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkiLGxpY2Vuc2U6Imh0''@;'; + put 'put ''dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvdjMuMjQuMS9MSUNFTlNFIixzb3VyY2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzIn0pfSw5MTM6KFhlLEplLEwpPT57dmFyIG1lPUwoNTg2NDcpLEI9TCg1NjU4MSksTWU9TCgyNTQ2KSgic3BlY2ll''@;'; + put 'put ''cyIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oVSxRKXt2YXIgaWUsWj1tZShVKS5jb25zdHJ1Y3RvcjtyZXR1cm4gdm9pZCAwPT09Wnx8bnVsbD09KGllPW1lKFopW01lXSk/UTpCKGllKX19LDk3ODE4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDIzNTIzKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIpe3Jl''@;'; + put 'put ''dHVybiBtZShmdW5jdGlvbigpe3ZhciBFPSIiW0JdKCciJyk7cmV0dXJuIEUhPT1FLnRvTG93ZXJDYXNlKCl8fEUuc3BsaXQoJyInKS5sZW5ndGg+M30pfX0sNzUwNTg6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDQwNzAyKSxFPUwoOTIxKSxNZT1MKDI0NTcyKSxVPW1lKCIiLmNo''@;'; + put 'put ''YXJBdCksUT1tZSgiIi5jaGFyQ29kZUF0KSxaPW1lKCIiLnNsaWNlKSxpZT1mdW5jdGlvbihsZSl7cmV0dXJuIGZ1bmN0aW9uKFksVyl7dmFyIEosc2UsTj1FKE1lKFkpKSxlZT1CKFcpLHE9Ti5sZW5ndGg7cmV0dXJuIGVlPDB8fGVlPj1xP2xlPyIiOnZvaWQgMDooSj1RKE4sZWUpKTw1NTI5''@;'; + put 'put ''Nnx8Sj41NjMxOXx8ZWUrMT09PXF8fChzZT1RKE4sZWUrMSkpPDU2MzIwfHxzZT41NzM0Mz9sZT9VKE4sZWUpOko6bGU/WihOLGVlLGVlKzIpOnNlLTU2MzIwKyhKLTU1Mjk2PDwxMCkrNjU1MzZ9fTtYZS5leHBvcnRzPXtjb2RlQXQ6aWUoITEpLGNoYXJBdDppZSghMCl9fSw3MjIxMDooWGUs''@;'; + put 'put ''SmUsTCk9Pnt2YXIgbWU9TCg3NzgzOSk7WGUuZXhwb3J0cz0vVmVyc2lvblwvMTAoPzpcLlxkKyl7MSwyfSg/OiBbXHcuL10rKT8oPzogTW9iaWxlXC9cdyspPyBTYWZhcmlcLy8udGVzdChtZSl9LDIxMjg1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2MTMpLEI9TCg2NTMxNiksRT1MKDkyMSks''@;'; + put 'put ''TWU9TCg0NTk2MCksVT1MKDI0NTcyKSxRPW1lKE1lKSxaPW1lKCIiLnNsaWNlKSxpZT1NYXRoLmNlaWwsbGU9ZnVuY3Rpb24oWSl7cmV0dXJuIGZ1bmN0aW9uKFcsTixlZSl7dmFyIGNlLGRlLHE9RShVKFcpKSxKPUIoTiksc2U9cS5sZW5ndGgsb2U9dm9pZCAwPT09ZWU/IiAiOkUoZWUpO3Jl''@;'; + put 'put ''dHVybiBKPD1zZXx8IiI9PW9lP3E6KChkZT1RKG9lLGllKChjZT1KLXNlKS9vZS5sZW5ndGgpKSkubGVuZ3RoPmNlJiYoZGU9WihkZSwwLGNlKSksWT9xK2RlOmRlK3EpfX07WGUuZXhwb3J0cz17c3RhcnQ6bGUoITEpLGVuZDpsZSghMCl9fSw0NTk2MDooWGUsSmUsTCk9PnsidXNlIHN0cmlj''@;'; + put 'put ''dCI7dmFyIG1lPUwoNDA3MDIpLEI9TCg5MjEpLEU9TCgyNDU3MiksTWU9UmFuZ2VFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKFEpe3ZhciBaPUIoRSh0aGlzKSksaWU9IiIsbGU9bWUoUSk7aWYobGU8MHx8bGU9PTEvMCl0aHJvdyBNZSgiV3JvbmcgbnVtYmVyIG9mIHJlcGV0aXRpb25zIik7''@;'; + put 'put ''Zm9yKDtsZT4wOyhsZT4+Pj0xKSYmKForPVopKTEmbGUmJihpZSs9Wik7cmV0dXJuIGllfX0sNDU3MTI6KFhlLEplLEwpPT57dmFyIG1lPUwoMTM4NjkpLlBST1BFUixCPUwoMjM1MjMpLEU9TCg3Nzg2Myk7WGUuZXhwb3J0cz1mdW5jdGlvbihVKXtyZXR1cm4gQihmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biEhRVtVXSgpfHwiXHUyMDBiXHg4NVx1MTgwZSIhPT0iXHUyMDBiXHg4NVx1MTgwZSJbVV0oKXx8bWUmJkVbVV0ubmFtZSE9PVV9KX19LDkzMTY2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2MTMpLEI9TCgyNDU3MiksRT1MKDkyMSksTWU9TCg3Nzg2MyksVT1tZSgiIi5yZXBsYWNlKSxRPSJb''@;'; + put 'put ''IitNZSsiXSIsWj1SZWdFeHAoIl4iK1ErUSsiKiIpLGllPVJlZ0V4cChRK1ErIiokIiksbGU9ZnVuY3Rpb24oWSl7cmV0dXJuIGZ1bmN0aW9uKFcpe3ZhciBOPUUoQihXKSk7cmV0dXJuIDEmWSYmKE49VShOLFosIiIpKSwyJlkmJihOPVUoTixpZSwiIikpLE59fTtYZS5leHBvcnRzPXtzdGFy''@;'; + put 'put ''dDpsZSgxKSxlbmQ6bGUoMiksdHJpbTpsZSgzKX19LDE0NDk4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM1NjIpLEI9TCg0NjY5MyksRT1MKDI1NDYpLE1lPUwoMjU2NjYpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgVT1CKCJTeW1ib2wiKSxRPVUmJlUucHJvdG90eXBlLFo9USYmUS52YWx1''@;'; + put 'put ''ZU9mLGllPUUoInRvUHJpbWl0aXZlIik7USYmIVFbaWVdJiZNZShRLGllLGZ1bmN0aW9uKGxlKXtyZXR1cm4gbWUoWix0aGlzKX0se2FyaXR5OjF9KX19LDU1MjYxOihYZSxKZSxMKT0+e3ZhciBTZSxJZSxUZSxFZSxtZT1MKDcwNzA1KSxCPUwoMTEzMDYpLEU9TCg4NTQ5KSxNZT1MKDEyMDE0''@;'; + put 'put ''KSxVPUwoNDg4MTEpLFE9TCgyMzUyMyksWj1MKDU5NDA2KSxpZT1MKDQwOTMwKSxsZT1MKDQ2MzEzKSxZPUwoNzk1NDUpLFc9TCg3ODUyMCksTj1MKDg3MjQ0KSxlZT1tZS5zZXRJbW1lZGlhdGUscT1tZS5jbGVhckltbWVkaWF0ZSxKPW1lLnByb2Nlc3Msc2U9bWUuRGlzcGF0Y2gsb2U9bWUu''@;'; + put 'put ''RnVuY3Rpb24sY2U9bWUuTWVzc2FnZUNoYW5uZWwsZGU9bWUuU3RyaW5nLHZlPTAsQWU9e30sa2U9Im9ucmVhZHlzdGF0ZWNoYW5nZSI7dHJ5e1NlPW1lLmxvY2F0aW9ufWNhdGNoKHRlKXt9dmFyIGhlPWZ1bmN0aW9uKHRlKXtpZihVKEFlLHRlKSl7dmFyIHg9QWVbdGVdO2RlbGV0ZSBBZVt0''@;'; + put 'put ''ZV0seCgpfX0sTz1mdW5jdGlvbih0ZSl7cmV0dXJuIGZ1bmN0aW9uKCl7aGUodGUpfX0sej1mdW5jdGlvbih0ZSl7aGUodGUuZGF0YSl9LG5lPWZ1bmN0aW9uKHRlKXttZS5wb3N0TWVzc2FnZShkZSh0ZSksU2UucHJvdG9jb2wrIi8vIitTZS5ob3N0KX07KCFlZXx8IXEpJiYoZWU9ZnVuY3Rp''@;'; + put 'put ''b24oeCl7WShhcmd1bWVudHMubGVuZ3RoLDEpO3ZhciBQPU1lKHgpP3g6b2UoeCksVj1pZShhcmd1bWVudHMsMSk7cmV0dXJuIEFlWysrdmVdPWZ1bmN0aW9uKCl7QihQLHZvaWQgMCxWKX0sSWUodmUpLHZlfSxxPWZ1bmN0aW9uKHgpe2RlbGV0ZSBBZVt4XX0sTj9JZT1mdW5jdGlvbih0ZSl7''@;'; + put 'put ''Si5uZXh0VGljayhPKHRlKSl9OnNlJiZzZS5ub3c/SWU9ZnVuY3Rpb24odGUpe3NlLm5vdyhPKHRlKSl9OmNlJiYhVz8oRWU9KFRlPW5ldyBjZSkucG9ydDIsVGUucG9ydDEub25tZXNzYWdlPXosSWU9RShFZS5wb3N0TWVzc2FnZSxFZSkpOm1lLmFkZEV2ZW50TGlzdGVuZXImJk1lKG1lLnBv''@;'; + put 'put ''c3RNZXNzYWdlKSYmIW1lLmltcG9ydFNjcmlwdHMmJlNlJiYiZmlsZToiIT09U2UucHJvdG9jb2wmJiFRKG5lKT8oSWU9bmUsbWUuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIseiwhMSkpOkllPWtlIGluIGxlKCJzY3JpcHQiKT9mdW5jdGlvbih0ZSl7Wi5hcHBlbmRDaGlsZChsZSgic2Ny''@;'; + put 'put ''aXB0IikpW2tlXT1mdW5jdGlvbigpe1oucmVtb3ZlQ2hpbGQodGhpcyksaGUodGUpfX06ZnVuY3Rpb24odGUpe3NldFRpbWVvdXQoTyh0ZSksMCl9KSxYZS5leHBvcnRzPXtzZXQ6ZWUsY2xlYXI6cX19LDE0MjY6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyk7WGUuZXhwb3J0cz1tZSgxLi52''@;'; + put 'put ''YWx1ZU9mKX0sNzYxNjM6KFhlLEplLEwpPT57dmFyIG1lPUwoNDA3MDIpLEI9TWF0aC5tYXgsRT1NYXRoLm1pbjtYZS5leHBvcnRzPWZ1bmN0aW9uKE1lLFUpe3ZhciBRPW1lKE1lKTtyZXR1cm4gUTwwP0IoUStVLDApOkUoUSxVKX19LDUwMzI3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU2NjA3''@;'; + put 'put ''KSxCPUwoMjQ1NzIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSl7cmV0dXJuIG1lKEIoRSkpfX0sNDA3MDI6KFhlLEplLEwpPT57dmFyIG1lPUwoODQ3NDQpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQil7dmFyIEU9K0I7cmV0dXJuIEUhPUV8fDA9PT1FPzA6bWUoRSl9fSw2NTMxNjooWGUsSmUsTCk9''@;'; + put 'put ''Pnt2YXIgbWU9TCg0MDcwMiksQj1NYXRoLm1pbjtYZS5leHBvcnRzPWZ1bmN0aW9uKEUpe3JldHVybiBFPjA/QihtZShFKSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sNjgwNzE6KFhlLEplLEwpPT57dmFyIG1lPUwoMjQ1NzIpLEI9T2JqZWN0O1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSl7cmV0dXJu''@;'; + put 'put ''IEIobWUoRSkpfX0sNzU1Mzc6KFhlLEplLEwpPT57dmFyIG1lPUwoMzU2MiksQj1MKDcxNDk2KSxFPUwoNjk3NSksTWU9TCgyMDk0OCksVT1MKDYzNDE1KSxRPUwoMjU0NiksWj1UeXBlRXJyb3IsaWU9USgidG9QcmltaXRpdmUiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKGxlLFkpe2lmKCFCKGxl''@;'; + put 'put ''KXx8RShsZSkpcmV0dXJuIGxlO3ZhciBOLFc9TWUobGUsaWUpO2lmKFcpe2lmKHZvaWQgMD09PVkmJihZPSJkZWZhdWx0IiksTj1tZShXLGxlLFkpLCFCKE4pfHxFKE4pKXJldHVybiBOO3Rocm93IFooIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXJldHVybiB2''@;'; + put 'put ''b2lkIDA9PT1ZJiYoWT0ibnVtYmVyIiksVShsZSxZKX19LDg0MDk0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDc1NTM3KSxCPUwoNjk3NSk7WGUuZXhwb3J0cz1mdW5jdGlvbihFKXt2YXIgTWU9bWUoRSwic3RyaW5nIik7cmV0dXJuIEIoTWUpP01lOk1lKyIifX0sMjc0OTA6KFhlLEplLEwpPT57''@;'; + put 'put ''dmFyIEU9e307RVtMKDI1NDYpKCJ0b1N0cmluZ1RhZyIpXT0ieiIsWGUuZXhwb3J0cz0iW29iamVjdCB6XSI9PT1TdHJpbmcoRSl9LDkyMTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3OTUyMCksQj1TdHJpbmc7WGUuZXhwb3J0cz1mdW5jdGlvbihFKXtpZigiU3ltYm9sIj09PW1lKEUpKXRocm93''@;'; + put 'put ''IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgYSBTeW1ib2wgdmFsdWUgdG8gYSBzdHJpbmciKTtyZXR1cm4gQihFKX19LDk0Njc2OlhlPT57dmFyIEplPVN0cmluZztYZS5leHBvcnRzPWZ1bmN0aW9uKEwpe3RyeXtyZXR1cm4gSmUoTCl9Y2F0Y2gobWUpe3JldHVybiJPYmplY3QifX19LDUy''@;'; + put 'put ''ODEwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2MTMpLEI9MCxFPU1hdGgucmFuZG9tKCksTWU9bWUoMS4udG9TdHJpbmcpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oVSl7cmV0dXJuIlN5bWJvbCgiKyh2b2lkIDA9PT1VPyIiOlUpKyIpXyIrTWUoKytCK0UsMzYpfX0sMjM5NjE6KFhlLEplLEwpPT57''@;'; + put 'put ''dmFyIG1lPUwoODI3NzApO1hlLmV4cG9ydHM9bWUmJiFTeW1ib2wuc2hhbSYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3J9LDIwMTE4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjI0KSxCPUwoMjM1MjMpO1hlLmV4cG9ydHM9bWUmJkIoZnVuY3Rpb24oKXtyZXR1cm4gNDIhPU9i''@;'; + put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlvbigpe30sInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSl9LDc5NTQ1OlhlPT57dmFyIEplPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKEwsbWUpe2lmKEw8bWUpdGhyb3cgSmUoIk5vdCBlbm91Z2gg''@;'; + put 'put ''YXJndW1lbnRzIik7cmV0dXJuIEx9fSwyODExOihYZSxKZSxMKT0+e3ZhciBtZT1MKDI1NDYpO0plLmY9bWV9LDI1NDY6KFhlLEplLEwpPT57dmFyIG1lPUwoNzA3MDUpLEI9TCg2ODgzNSksRT1MKDQ4ODExKSxNZT1MKDUyODEwKSxVPUwoODI3NzApLFE9TCgyMzk2MSksWj1CKCJ3a3MiKSxp''@;'; + put 'put ''ZT1tZS5TeW1ib2wsbGU9aWUmJmllLmZvcixZPVE/aWU6aWUmJmllLndpdGhvdXRTZXR0ZXJ8fE1lO1hlLmV4cG9ydHM9ZnVuY3Rpb24oVyl7aWYoIUUoWixXKXx8IVUmJiJzdHJpbmciIT10eXBlb2YgWltXXSl7dmFyIE49IlN5bWJvbC4iK1c7WltXXT1VJiZFKGllLFcpP2llW1ddOlEmJmxl''@;'; + put 'put ''P2xlKE4pOlkoTil9cmV0dXJuIFpbV119fSw3Nzg2MzpYZT0+e1hlLmV4cG9ydHM9Ilx0XG5cdlxmXHIgXHhhMFx1MTY4MFx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMFx1MjAyOFx1MjAy''@;'; + put 'put ''OVx1ZmVmZiJ9LDMxMTIzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDIzNTIzKSxFPUwoMjkxMDYpLE1lPUwoNzE0OTYpLFU9TCg2ODA3MSksUT1MKDU0NDUwKSxaPUwoMjMxMjQpLGllPUwoOTUwMDQpLGxlPUwoMzE4NTcpLFk9TCg1MTI5OCksVz1MKDI1''@;'; + put 'put ''NDYpLE49TCgyOTM4NSksZWU9VygiaXNDb25jYXRTcHJlYWRhYmxlIikscT1OPj01MXx8IUIoZnVuY3Rpb24oKXt2YXIgY2U9W107cmV0dXJuIGNlW2VlXT0hMSxjZS5jb25jYXQoKVswXSE9PWNlfSksSj1ZKCJjb25jYXQiKSxzZT1mdW5jdGlvbihjZSl7aWYoIU1lKGNlKSlyZXR1cm4hMTt2''@;'; + put 'put ''YXIgZGU9Y2VbZWVdO3JldHVybiB2b2lkIDAhPT1kZT8hIWRlOkUoY2UpfTttZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsYXJpdHk6MSxmb3JjZWQ6IXF8fCFKfSx7Y29uY2F0OmZ1bmN0aW9uKGRlKXt2YXIgU2UsSWUsVGUsRWUsaGUsdmU9VSh0aGlzKSxBZT1sZSh2ZSwwKSxrZT0wO2Zv''@;'; + put 'put ''cihTZT0tMSxUZT1hcmd1bWVudHMubGVuZ3RoO1NlPFRlO1NlKyspaWYoc2UoaGU9LTE9PT1TZT92ZTphcmd1bWVudHNbU2VdKSlmb3IoRWU9UShoZSksWihrZStFZSksSWU9MDtJZTxFZTtJZSsrLGtlKyspSWUgaW4gaGUmJmllKEFlLGtlLGhlW0llXSk7ZWxzZSBaKGtlKzEpLGllKEFlLGtl''@;'; + put 'put ''KyssaGUpO3JldHVybiBBZS5sZW5ndGg9a2UsQWV9fSl9LDI0ODA6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg1NzE3OSksRT1MKDc0OTY1KTttZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITB9LHtmaWxsOkJ9KSxFKCJmaWxsIil9LDM0NzcwOihYZSxKZSxMKT0+eyJ1c2Ugc3Ry''@;'; + put 'put ''aWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDk1NjY5KS5maWx0ZXI7bWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohTCg1MTI5OCkoImZpbHRlciIpfSx7ZmlsdGVyOmZ1bmN0aW9uKFEpe3JldHVybiBCKHRoaXMsUSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZv''@;'; + put 'put ''aWQgMCl9fSl9LDM1ODEwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDk1NjY5KS5maW5kSW5kZXgsRT1MKDc0OTY1KSxNZT0iZmluZEluZGV4IixVPSEwO01lIGluW10mJkFycmF5KDEpW01lXShmdW5jdGlvbigpe1U9ITF9KSxtZSh7dGFyZ2V0OiJBcnJh''@;'; + put 'put ''eSIscHJvdG86ITAsZm9yY2VkOlV9LHtmaW5kSW5kZXg6ZnVuY3Rpb24oWil7cmV0dXJuIEIodGhpcyxaLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxFKE1lKX0sNTQ2Nzk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoOTU2''@;'; + put 'put ''NjkpLmZpbmQsRT1MKDc0OTY1KSxNZT0iZmluZCIsVT0hMDtNZSBpbltdJiZBcnJheSgxKVtNZV0oZnVuY3Rpb24oKXtVPSExfSksbWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpVfSx7ZmluZDpmdW5jdGlvbihaKXtyZXR1cm4gQih0aGlzLFosYXJndW1lbnRzLmxlbmd0aD4x''@;'; + put 'put ''P2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLEUoTWUpfSw2OTEwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoNjY2NjYpO21lKHt0YXJnZXQ6IkFycmF5IixzdGF0OiEwLGZvcmNlZDohTCgyNzc5MikoZnVuY3Rpb24oVSl7QXJyYXkuZnJvbShVKX0pfSx7ZnJvbTpCfSl9LDEzNDAw''@;'; + put 'put ''OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDM2MzA1KS5pbmNsdWRlcyxFPUwoMjM1MjMpLE1lPUwoNzQ5NjUpO21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6RShmdW5jdGlvbigpe3JldHVybiFBcnJheSgxKS5pbmNsdWRlcygpfSl9LHtp''@;'; + put 'put ''bmNsdWRlczpmdW5jdGlvbihaKXtyZXR1cm4gQih0aGlzLFosYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLE1lKCJpbmNsdWRlcyIpfSw2Mzk2NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg2NjEzKSxFPUwoMzYzMDUpLmlu''@;'; + put 'put ''ZGV4T2YsTWU9TCg2MzEyNCksVT1CKFtdLmluZGV4T2YpLFE9ISFVJiYxL1UoWzFdLDEsLTApPDAsWj1NZSgiaW5kZXhPZiIpO21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6UXx8IVp9LHtpbmRleE9mOmZ1bmN0aW9uKGxlKXt2YXIgWT1hcmd1bWVudHMubGVuZ3RoPjE/YXJn''@;'; + put 'put ''dW1lbnRzWzFdOnZvaWQgMDtyZXR1cm4gUT9VKHRoaXMsbGUsWSl8fDA6RSh0aGlzLGxlLFkpfX0pfSw1Nzk0MzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNTAzMjcpLEI9TCg3NDk2NSksRT1MKDk1MjU3KSxNZT1MKDcyNyksVT1MKDUxMTgzKS5mLFE9TCgzODQ5NyksWj1M''@;'; + put 'put ''KDEwMDE3KSxpZT1MKDg1NjI0KSxsZT0iQXJyYXkgSXRlcmF0b3IiLFk9TWUuc2V0LFc9TWUuZ2V0dGVyRm9yKGxlKTtYZS5leHBvcnRzPVEoQXJyYXksIkFycmF5IixmdW5jdGlvbihlZSxxKXtZKHRoaXMse3R5cGU6bGUsdGFyZ2V0Om1lKGVlKSxpbmRleDowLGtpbmQ6cX0pfSxmdW5jdGlv''@;'; + put 'put ''bigpe3ZhciBlZT1XKHRoaXMpLHE9ZWUudGFyZ2V0LEo9ZWUua2luZCxzZT1lZS5pbmRleCsrO3JldHVybiFxfHxzZT49cS5sZW5ndGg/KGVlLnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk6ImtleXMiPT1KP3t2YWx1ZTpzZSxkb25lOiExfToidmFsdWVzIj09Sj97dmFs''@;'; + put 'put ''dWU6cVtzZV0sZG9uZTohMX06e3ZhbHVlOltzZSxxW3NlXV0sZG9uZTohMX19LCJ2YWx1ZXMiKTt2YXIgTj1FLkFyZ3VtZW50cz1FLkFycmF5O2lmKEIoImtleXMiKSxCKCJ2YWx1ZXMiKSxCKCJlbnRyaWVzIiksIVomJmllJiYidmFsdWVzIiE9PU4ubmFtZSl0cnl7VShOLCJuYW1lIix7dmFs''@;'; + put 'put ''dWU6InZhbHVlcyJ9KX1jYXRjaChlZSl7fX0sNzY3NDk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoNjYxMyksRT1MKDU2NjA3KSxNZT1MKDUwMzI3KSxVPUwoNjMxMjQpLFE9QihbXS5qb2luKSxaPUUhPU9iamVjdCxpZT1VKCJqb2luIiwiLCIpO21lKHt0''@;'; + put 'put ''YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6Wnx8IWllfSx7am9pbjpmdW5jdGlvbihZKXtyZXR1cm4gUShNZSh0aGlzKSx2b2lkIDA9PT1ZPyIsIjpZKX19KX0sNTgwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoOTYyMik7bWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEw''@;'; + put 'put ''LGZvcmNlZDpCIT09W10ubGFzdEluZGV4T2Z9LHtsYXN0SW5kZXhPZjpCfSl9LDgzMDI4OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDk1NjY5KS5tYXA7bWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohTCg1MTI5OCkoIm1hcCIpfSx7bWFw''@;'; + put 'put ''OmZ1bmN0aW9uKFEpe3JldHVybiBCKHRoaXMsUSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LDcxNzcyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDczNzYwKS5sZWZ0LEU9TCg2MzEyNCksTWU9TCgyOTM4NSksVT1MKDg3''@;'; + put 'put ''MjQ0KTttZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFFKCJyZWR1Y2UiKXx8IVUmJk1lPjc5JiZNZTw4M30se3JlZHVjZTpmdW5jdGlvbihsZSl7dmFyIFk9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gQih0aGlzLGxlLFksWT4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSw4''@;'; + put 'put ''MzU5MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg2NjEzKSxFPUwoMjkxMDYpLE1lPUIoW10ucmV2ZXJzZSksVT1bMSwyXTttZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOlN0cmluZyhVKT09PVN0cmluZyhVLnJldmVyc2UoKSl9LHtyZXZl''@;'; + put 'put ''cnNlOmZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcykmJih0aGlzLmxlbmd0aD10aGlzLmxlbmd0aCksTWUodGhpcyl9fSl9LDk3MDg3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDI5MTA2KSxFPUwoNDk0NTMpLE1lPUwoNzE0OTYpLFU9TCg3NjE2MyksUT1M''@;'; + put 'put ''KDU0NDUwKSxaPUwoNTAzMjcpLGllPUwoOTUwMDQpLGxlPUwoMjU0NiksWT1MKDUxMjk4KSxXPUwoNDA5MzApLE49WSgic2xpY2UiKSxlZT1sZSgic3BlY2llcyIpLHE9QXJyYXksSj1NYXRoLm1heDttZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFOfSx7c2xpY2U6ZnVuY3Rp''@;'; + put 'put ''b24ob2UsY2Upe3ZhciBTZSxJZSxUZSxkZT1aKHRoaXMpLHZlPVEoZGUpLEFlPVUob2UsdmUpLGtlPVUodm9pZCAwPT09Y2U/dmU6Y2UsdmUpO2lmKEIoZGUpJiYoKEUoU2U9ZGUuY29uc3RydWN0b3IpJiYoU2U9PT1xfHxCKFNlLnByb3RvdHlwZSkpfHxNZShTZSkmJm51bGw9PT0oU2U9U2Vb''@;'; + put 'put ''ZWVdKSkmJihTZT12b2lkIDApLFNlPT09cXx8dm9pZCAwPT09U2UpKXJldHVybiBXKGRlLEFlLGtlKTtmb3IoSWU9bmV3KHZvaWQgMD09PVNlP3E6U2UpKEooa2UtQWUsMCkpLFRlPTA7QWU8a2U7QWUrKyxUZSsrKUFlIGluIGRlJiZpZShJZSxUZSxkZVtBZV0pO3JldHVybiBJZS5sZW5ndGg9''@;'; + put 'put ''VGUsSWV9fSl9LDEzMjc4OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDY2MTMpLEU9TCg4MTQ1MCksTWU9TCg2ODA3MSksVT1MKDU0NDUwKSxRPUwoNDYyOCksWj1MKDkyMSksaWU9TCgyMzUyMyksbGU9TCgzMjU5NCksWT1MKDYzMTI0KSxXPUwoNzU3MDYp''@;'; + put 'put ''LE49TCg5ODg2KSxlZT1MKDI5Mzg1KSxxPUwoOTYzNCksSj1bXSxzZT1CKEouc29ydCksb2U9QihKLnB1c2gpLGNlPWllKGZ1bmN0aW9uKCl7Si5zb3J0KHZvaWQgMCl9KSxkZT1pZShmdW5jdGlvbigpe0ouc29ydChudWxsKX0pLHZlPVkoInNvcnQiKSxBZT0haWUoZnVuY3Rpb24oKXtpZihl''@;'; + put 'put ''ZSlyZXR1cm4gZWU8NzA7aWYoIShXJiZXPjMpKXtpZihOKXJldHVybiEwO2lmKHEpcmV0dXJuIHE8NjAzO3ZhciBUZSxFZSxoZSxPLEllPSIiO2ZvcihUZT02NTtUZTw3NjtUZSsrKXtzd2l0Y2goRWU9U3RyaW5nLmZyb21DaGFyQ29kZShUZSksVGUpe2Nhc2UgNjY6Y2FzZSA2OTpjYXNlIDcw''@;'; + put 'put ''OmNhc2UgNzI6aGU9MzticmVhaztjYXNlIDY4OmNhc2UgNzE6aGU9NDticmVhaztkZWZhdWx0OmhlPTJ9Zm9yKE89MDtPPDQ3O08rKylKLnB1c2goe2s6RWUrTyx2OmhlfSl9Zm9yKEouc29ydChmdW5jdGlvbih6LG5lKXtyZXR1cm4gbmUudi16LnZ9KSxPPTA7TzxKLmxlbmd0aDtPKyspRWU9''@;'; + put 'put ''SltPXS5rLmNoYXJBdCgwKSxJZS5jaGFyQXQoSWUubGVuZ3RoLTEpIT09RWUmJihJZSs9RWUpO3JldHVybiJER0JFRkhBQ0lKSyIhPT1JZX19KTttZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOmNlfHwhZGV8fCF2ZXx8IUFlfSx7c29ydDpmdW5jdGlvbihUZSl7dm9pZCAwIT09''@;'; + put 'put ''VGUmJkUoVGUpO3ZhciBFZT1NZSh0aGlzKTtpZihBZSlyZXR1cm4gdm9pZCAwPT09VGU/c2UoRWUpOnNlKEVlLFRlKTt2YXIgeixuZSxoZT1bXSxPPVUoRWUpO2ZvcihuZT0wO25lPE87bmUrKyluZSBpbiBFZSYmb2UoaGUsRWVbbmVdKTtmb3IobGUoaGUsZnVuY3Rpb24oSWUpe3JldHVybiBm''@;'; + put 'put ''dW5jdGlvbihUZSxFZSl7cmV0dXJuIHZvaWQgMD09PUVlPy0xOnZvaWQgMD09PVRlPzE6dm9pZCAwIT09SWU/K0llKFRlLEVlKXx8MDpaKFRlKT5aKEVlKT8xOi0xfX0oVGUpKSx6PWhlLmxlbmd0aCxuZT0wO25lPHo7KUVlW25lXT1oZVtuZSsrXTtmb3IoO25lPE87KVEoRWUsbmUrKyk7cmV0''@;'; + put 'put ''dXJuIEVlfX0pfSw1MjMxMzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg2ODA3MSksRT1MKDc2MTYzKSxNZT1MKDQwNzAyKSxVPUwoNTQ0NTApLFE9TCgyMzEyNCksWj1MKDMxODU3KSxpZT1MKDk1MDA0KSxsZT1MKDQ2MjgpLFc9TCg1MTI5OCkoInNwbGlj''@;'; + put 'put ''ZSIpLE49TWF0aC5tYXgsZWU9TWF0aC5taW47bWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohV30se3NwbGljZTpmdW5jdGlvbihKLHNlKXt2YXIgQWUsa2UsU2UsSWUsVGUsRWUsb2U9Qih0aGlzKSxjZT1VKG9lKSxkZT1FKEosY2UpLHZlPWFyZ3VtZW50cy5sZW5ndGg7Zm9y''@;'; + put 'put ''KDA9PT12ZT9BZT1rZT0wOjE9PT12ZT8oQWU9MCxrZT1jZS1kZSk6KEFlPXZlLTIsa2U9ZWUoTihNZShzZSksMCksY2UtZGUpKSxRKGNlK0FlLWtlKSxTZT1aKG9lLGtlKSxJZT0wO0llPGtlO0llKyspKFRlPWRlK0llKWluIG9lJiZpZShTZSxJZSxvZVtUZV0pO2lmKFNlLmxlbmd0aD1rZSxB''@;'; + put 'put ''ZTxrZSl7Zm9yKEllPWRlO0llPGNlLWtlO0llKyspRWU9SWUrQWUsKFRlPUllK2tlKWluIG9lP29lW0VlXT1vZVtUZV06bGUob2UsRWUpO2ZvcihJZT1jZTtJZT5jZS1rZStBZTtJZS0tKWxlKG9lLEllLTEpfWVsc2UgaWYoQWU+a2UpZm9yKEllPWNlLWtlO0llPmRlO0llLS0pRWU9SWUrQWUt''@;'; + put 'put ''MSwoVGU9SWUra2UtMSlpbiBvZT9vZVtFZV09b2VbVGVdOmxlKG9lLEVlKTtmb3IoSWU9MDtJZTxBZTtJZSsrKW9lW0llK2RlXT1hcmd1bWVudHNbSWUrMl07cmV0dXJuIG9lLmxlbmd0aD1jZS1rZStBZSxTZX19KX0sMTgxNTg6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2MjQpLEI9TCgxMzg2''@;'; + put 'put ''OSkuRVhJU1RTLEU9TCg2NjEzKSxNZT1MKDUxMTgzKS5mLFU9RnVuY3Rpb24ucHJvdG90eXBlLFE9RShVLnRvU3RyaW5nKSxaPS9mdW5jdGlvblxiKD86XHN8XC9cKltcU1xzXSo/XCpcL3xcL1wvW15cblxyXSpbXG5ccl0rKSooW15ccygvXSopLyxpZT1FKFouZXhlYyk7bWUmJiFCJiZNZShV''@;'; + put 'put ''LCJuYW1lIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3RyeXtyZXR1cm4gaWUoWixRKHRoaXMpKVsxXX1jYXRjaChZKXtyZXR1cm4iIn19fSl9LDEzMDA2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoNDY2OTMpLEU9TCgxMTMwNiksTWU9TCgzNTYyKSxVPUwoNjYx''@;'; + put 'put ''MyksUT1MKDIzNTIzKSxaPUwoMjkxMDYpLGllPUwoMTIwMTQpLGxlPUwoNzE0OTYpLFk9TCg2OTc1KSxXPUwoNDA5MzApLE49TCg4Mjc3MCksZWU9QigiSlNPTiIsInN0cmluZ2lmeSIpLHE9VSgvLi8uZXhlYyksSj1VKCIiLmNoYXJBdCksc2U9VSgiIi5jaGFyQ29kZUF0KSxvZT1VKCIiLnJl''@;'; + put 'put ''cGxhY2UpLGNlPVUoMS4udG9TdHJpbmcpLGRlPS9bXHVEODAwLVx1REZGRl0vZyx2ZT0vXltcdUQ4MDAtXHVEQkZGXSQvLEFlPS9eW1x1REMwMC1cdURGRkZdJC8sa2U9IU58fFEoZnVuY3Rpb24oKXt2YXIgRWU9QigiU3ltYm9sIikoKTtyZXR1cm4iW251bGxdIiE9ZWUoW0VlXSl8fCJ7fSIh''@;'; + put 'put ''PWVlKHthOkVlfSl8fCJ7fSIhPWVlKE9iamVjdChFZSkpfSksU2U9UShmdW5jdGlvbigpe3JldHVybiciXFx1ZGYwNlxcdWQ4MzQiJyE9PWVlKCJcdWRmMDZcdWQ4MzQiKXx8JyJcXHVkZWFkIichPT1lZSgiXHVkZWFkIil9KSxJZT1mdW5jdGlvbihFZSxoZSl7dmFyIE89Vyhhcmd1bWVudHMp''@;'; + put 'put ''LHo9aGU7aWYoKGxlKGhlKXx8dm9pZCAwIT09RWUpJiYhWShFZSkpcmV0dXJuIFooaGUpfHwoaGU9ZnVuY3Rpb24obmUsdGUpe2lmKGllKHopJiYodGU9TWUoeix0aGlzLG5lLHRlKSksIVkodGUpKXJldHVybiB0ZX0pLE9bMV09aGUsRShlZSxudWxsLE8pfSxUZT1mdW5jdGlvbihFZSxoZSxP''@;'; + put 'put ''KXt2YXIgej1KKE8saGUtMSksbmU9SihPLGhlKzEpO3JldHVybiBxKHZlLEVlKSYmIXEoQWUsbmUpfHxxKEFlLEVlKSYmIXEodmUseik/IlxcdSIrY2Uoc2UoRWUsMCksMTYpOkVlfTtlZSYmbWUoe3RhcmdldDoiSlNPTiIsc3RhdDohMCxhcml0eTozLGZvcmNlZDprZXx8U2V9LHtzdHJpbmdp''@;'; + put 'put ''Znk6ZnVuY3Rpb24oaGUsTyx6KXt2YXIgbmU9Vyhhcmd1bWVudHMpLHRlPUUoa2U/SWU6ZWUsbnVsbCxuZSk7cmV0dXJuIFNlJiYic3RyaW5nIj09dHlwZW9mIHRlP29lKHRlLGRlLFRlKTp0ZX19KX0sODg3NjI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woNDY4NTcpKCJNYXAiLGZ1bmN0''@;'; + put 'put ''aW9uKEUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBFKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19LEwoNDUxNDApKX0sOTY2NDooWGUsSmUsTCk9PntMKDg4NzYyKX0sNjQ5NTI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjI0KSxC''@;'; + put 'put ''PUwoNzA3MDUpLEU9TCg2NjEzKSxNZT1MKDY3NTA3KSxVPUwoMjU2NjYpLFE9TCg0ODgxMSksWj1MKDUxODQ5KSxpZT1MKDM3NDc0KSxsZT1MKDY5NzUpLFk9TCg3NTUzNyksVz1MKDIzNTIzKSxOPUwoNzU0MzEpLmYsZWU9TCg0Nzk4NykuZixxPUwoNTExODMpLmYsSj1MKDE0MjYpLHNlPUwo''@;'; + put 'put ''OTMxNjYpLnRyaW0sb2U9Ik51bWJlciIsY2U9QltvZV0sZGU9Y2UucHJvdG90eXBlLHZlPUIuVHlwZUVycm9yLEFlPUUoIiIuc2xpY2UpLGtlPUUoIiIuY2hhckNvZGVBdCksU2U9ZnVuY3Rpb24oeil7dmFyIG5lPVkoeiwibnVtYmVyIik7cmV0dXJuImJpZ2ludCI9PXR5cGVvZiBuZT9uZTpJ''@;'; + put 'put ''ZShuZSl9LEllPWZ1bmN0aW9uKHope3ZhciB0ZSx4LFAsVixULFMsRix5ZSxuZT1ZKHosIm51bWJlciIpO2lmKGxlKG5lKSl0aHJvdyB2ZSgiQ2Fubm90IGNvbnZlcnQgYSBTeW1ib2wgdmFsdWUgdG8gYSBudW1iZXIiKTtpZigic3RyaW5nIj09dHlwZW9mIG5lJiZuZS5sZW5ndGg+MilpZihu''@;'; + put 'put ''ZT1zZShuZSksNDM9PT0odGU9a2UobmUsMCkpfHw0NT09PXRlKXtpZig4OD09PSh4PWtlKG5lLDIpKXx8MTIwPT09eClyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT10ZSl7c3dpdGNoKGtlKG5lLDEpKXtjYXNlIDY2OmNhc2UgOTg6UD0yLFY9NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpQPTgs''@;'; + put 'put ''Vj01NTticmVhaztkZWZhdWx0OnJldHVybituZX1mb3IoUz0oVD1BZShuZSwyKSkubGVuZ3RoLEY9MDtGPFM7RisrKWlmKCh5ZT1rZShULEYpKTw0OHx8eWU+VilyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludChULFApfXJldHVybituZX07aWYoTWUob2UsIWNlKCIgMG8xIil8fCFjZSgiMGIx''@;'; + put 'put ''Iil8fGNlKCIrMHgxIikpKXtmb3IodmFyIE8sVGU9ZnVuY3Rpb24obmUpe3ZhciB0ZT1hcmd1bWVudHMubGVuZ3RoPDE/MDpjZShTZShuZSkpLHg9dGhpcztyZXR1cm4gaWUoZGUseCkmJlcoZnVuY3Rpb24oKXtKKHgpfSk/WihPYmplY3QodGUpLHgsVGUpOnRlfSxFZT1tZT9OKGNlKToiTUFY''@;'; + put 'put ''X1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksRVBTSUxPTixNQVhfU0FGRV9JTlRFR0VSLE1JTl9TQUZFX0lOVEVHRVIsaXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIscGFyc2VGbG9hdCxwYXJzZUludCxmcm9tU3Ry''@;'; + put 'put ''aW5nLHJhbmdlIi5zcGxpdCgiLCIpLGhlPTA7RWUubGVuZ3RoPmhlO2hlKyspUShjZSxPPUVlW2hlXSkmJiFRKFRlLE8pJiZxKFRlLE8sZWUoY2UsTykpO1RlLnByb3RvdHlwZT1kZSxkZS5jb25zdHJ1Y3Rvcj1UZSxVKEIsb2UsVGUse2NvbnN0cnVjdG9yOiEwfSl9fSw3MDg2NDooWGUsSmUs''@;'; + put 'put ''TCk9PntMKDg1NjQ4KSh7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtpc0ludGVnZXI6TCgzMDQyKX0pfSw0MjE0MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg2NjEzKSxFPUwoNDA3MDIpLE1lPUwoMTQyNiksVT1MKDQ1OTYwKSxRPUwoMjM1MjMpLFo9''@;'; + put 'put ''UmFuZ2VFcnJvcixpZT1TdHJpbmcsbGU9TWF0aC5mbG9vcixZPUIoVSksVz1CKCIiLnNsaWNlKSxOPUIoMS4udG9GaXhlZCksZWU9ZnVuY3Rpb24oZGUsdmUsQWUpe3JldHVybiAwPT09dmU/QWU6dmUlMj09MT9lZShkZSx2ZS0xLEFlKmRlKTplZShkZSpkZSx2ZS8yLEFlKX0sSj1mdW5jdGlv''@;'; + put 'put ''bihkZSx2ZSxBZSl7Zm9yKHZhciBrZT0tMSxTZT1BZTsrK2tlPDY7KWRlW2tlXT0oU2UrPXZlKmRlW2tlXSklMWU3LFNlPWxlKFNlLzFlNyl9LHNlPWZ1bmN0aW9uKGRlLHZlKXtmb3IodmFyIEFlPTYsa2U9MDstLUFlPj0wOylkZVtBZV09bGUoKGtlKz1kZVtBZV0pL3ZlKSxrZT1rZSV2ZSox''@;'; + put 'put ''ZTd9LG9lPWZ1bmN0aW9uKGRlKXtmb3IodmFyIHZlPTYsQWU9IiI7LS12ZT49MDspaWYoIiIhPT1BZXx8MD09PXZlfHwwIT09ZGVbdmVdKXt2YXIga2U9aWUoZGVbdmVdKTtBZT0iIj09PUFlP2tlOkFlK1koIjAiLDcta2UubGVuZ3RoKStrZX1yZXR1cm4gQWV9O21lKHt0YXJnZXQ6Ik51bWJl''@;'; + put 'put ''ciIscHJvdG86ITAsZm9yY2VkOlEoZnVuY3Rpb24oKXtyZXR1cm4iMC4wMDAiIT09Tig4ZS01LDMpfHwiMSIhPT1OKC45LDApfHwiMS4yNSIhPT1OKDEuMjU1LDIpfHwiMTAwMDAwMDAwMDAwMDAwMDEyOCIhPT1OKDB4ZGUwYjZiM2E3NjQwMDgwLDApfSl8fCFRKGZ1bmN0aW9uKCl7Tih7fSl9''@;'; + put 'put ''KX0se3RvRml4ZWQ6ZnVuY3Rpb24odmUpe3ZhciBFZSxoZSxPLHosQWU9TWUodGhpcyksa2U9RSh2ZSksU2U9WzAsMCwwLDAsMCwwXSxJZT0iIixUZT0iMCI7aWYoa2U8MHx8a2U+MjApdGhyb3cgWigiSW5jb3JyZWN0IGZyYWN0aW9uIGRpZ2l0cyIpO2lmKEFlIT1BZSlyZXR1cm4iTmFOIjtp''@;'; + put 'put ''ZihBZTw9LTFlMjF8fEFlPj0xZTIxKXJldHVybiBpZShBZSk7aWYoQWU8MCYmKEllPSItIixBZT0tQWUpLEFlPjFlLTIxKWlmKEVlPWZ1bmN0aW9uKGRlKXtmb3IodmFyIHZlPTAsQWU9ZGU7QWU+PTQwOTY7KXZlKz0xMixBZS89NDA5Njtmb3IoO0FlPj0yOyl2ZSs9MSxBZS89MjtyZXR1cm4g''@;'; + put 'put ''dmV9KEFlKmVlKDIsNjksMSkpLTY5LGhlPUVlPDA/QWUqZWUoMiwtRWUsMSk6QWUvZWUoMixFZSwxKSxoZSo9NDUwMzU5OTYyNzM3MDQ5NiwoRWU9NTItRWUpPjApe2ZvcihKKFNlLDAsaGUpLE89a2U7Tz49NzspSihTZSwxZTcsMCksTy09Nztmb3IoSihTZSxlZSgxMCxPLDEpLDApLE89RWUt''@;'; + put 'put ''MTtPPj0yMzspc2UoU2UsMTw8MjMpLE8tPTIzO3NlKFNlLDE8PE8pLEooU2UsMSwxKSxzZShTZSwyKSxUZT1vZShTZSl9ZWxzZSBKKFNlLDAsaGUpLEooU2UsMTw8LUVlLDApLFRlPW9lKFNlKStZKCIwIixrZSk7cmV0dXJuIFRlPWtlPjA/SWUrKCh6PVRlLmxlbmd0aCk8PWtlPyIwLiIrWSgi''@;'; + put 'put ''MCIsa2UteikrVGU6VyhUZSwwLHota2UpKyIuIitXKFRlLHota2UpKTpJZStUZX19KX0sMzM0NzA6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg0Nzk1OSk7bWUoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGFyaXR5OjIsZm9yY2VkOk9iamVjdC5hc3NpZ24hPT1CfSx7YXNzaWdu''@;'; + put 'put ''OkJ9KX0sODI3NTY6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCgxMjU2NiksRT1MKDIzNTIzKSxNZT1MKDcxNDk2KSxVPUwoNzE4MzIpLm9uRnJlZXplLFE9T2JqZWN0LmZyZWV6ZTttZSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOkUoZnVuY3Rpb24oKXtRKDEpfSks''@;'; + put 'put ''c2hhbTohQn0se2ZyZWV6ZTpmdW5jdGlvbihsZSl7cmV0dXJuIFEmJk1lKGxlKT9RKFUobGUpKTpsZX19KX0sNTQ3NDA6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCgyMzUyMyksRT1MKDUwMzI3KSxNZT1MKDQ3OTg3KS5mLFU9TCg4NTYyNCksUT1CKGZ1bmN0aW9uKCl7TWUoMSl9''@;'; + put 'put ''KTttZSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiFVfHxRLHNoYW06IVV9LHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnVuY3Rpb24obGUsWSl7cmV0dXJuIE1lKEUobGUpLFkpfX0pfSw1NTYxNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDg1NjI0KSxFPUwo''@;'; + put 'put ''MjExOTkpLE1lPUwoNTAzMjcpLFU9TCg0Nzk4NyksUT1MKDk1MDA0KTttZSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsc2hhbTohQn0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcnM6ZnVuY3Rpb24oaWUpe2Zvcih2YXIgcSxKLGxlPU1lKGllKSxZPVUuZixXPUUobGUpLE49e30sZWU9MDtX''@;'; + put 'put ''Lmxlbmd0aD5lZTspdm9pZCAwIT09KEo9WShsZSxxPVdbZWUrK10pKSYmUShOLHEsSik7cmV0dXJuIE59fSl9LDQzOTk6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCgyMzUyMyksRT1MKDM1ODA4KS5mO21lKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6QihmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiFPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcygxKX0pfSx7Z2V0T3duUHJvcGVydHlOYW1lczpFfSl9LDYzMTk4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoODI3NzApLEU9TCgyMzUyMyksTWU9TCg1NTM0KSxVPUwoNjgwNzEpO21lKHt0YXJnZXQ6Ik9iamVj''@;'; + put 'put ''dCIsc3RhdDohMCxmb3JjZWQ6IUJ8fEUoZnVuY3Rpb24oKXtNZS5mKDEpfSl9LHtnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6ZnVuY3Rpb24oaWUpe3ZhciBsZT1NZS5mO3JldHVybiBsZT9sZShVKGllKSk6W119fSl9LDI4NzY0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoMjM1MjMp''@;'; + put 'put ''LEU9TCg2ODA3MSksTWU9TCg4MjczMyksVT1MKDQ2MDg2KTttZSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOkIoZnVuY3Rpb24oKXtNZSgxKX0pLHNoYW06IVV9LHtnZXRQcm90b3R5cGVPZjpmdW5jdGlvbihpZSl7cmV0dXJuIE1lKEUoaWUpKX19KX0sOTYyNTE6KFhlLEplLEwp''@;'; + put 'put ''PT57dmFyIG1lPUwoODU2NDgpLEI9TCg2ODA3MSksRT1MKDE0NTQ1KTttZSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOkwoMjM1MjMpKGZ1bmN0aW9uKCl7RSgxKX0pfSx7a2V5czpmdW5jdGlvbihaKXtyZXR1cm4gRShCKFopKX19KX0sMTYxNjE6KFhlLEplLEwpPT57TCg4NTY0''@;'; + put 'put ''OCkoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwfSx7c2V0UHJvdG90eXBlT2Y6TCgxOTU4Nyl9KX0sMjA2NDc6KFhlLEplLEwpPT57dmFyIG1lPUwoMjc0OTApLEI9TCgyNTY2NiksRT1MKDc3MDUpO21lfHxCKE9iamVjdC5wcm90b3R5cGUsInRvU3RyaW5nIixFLHt1bnNhZmU6ITB9KX0sODM4''@;'; + put 'put ''NTc6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg0NDU4MikudmFsdWVzO21lKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se3ZhbHVlczpmdW5jdGlvbihNZSl7cmV0dXJuIEIoTWUpfX0pfSw5MTY4MzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDQ2NjkzKSxFPUwo''@;'; + put 'put ''MTEzMDYpLE1lPUwoNjk4OSksVT1MKDU2NTgxKSxRPUwoNTg2NDcpLFo9TCg3MTQ5NiksaWU9TCg3NDQxMCksbGU9TCgyMzUyMyksWT1CKCJSZWZsZWN0IiwiY29uc3RydWN0IiksVz1PYmplY3QucHJvdG90eXBlLE49W10ucHVzaCxlZT1sZShmdW5jdGlvbigpe2Z1bmN0aW9uIHNlKCl7fXJl''@;'; + put 'put ''dHVybiEoWShmdW5jdGlvbigpe30sW10sc2UpaW5zdGFuY2VvZiBzZSl9KSxxPSFsZShmdW5jdGlvbigpe1koZnVuY3Rpb24oKXt9KX0pLEo9ZWV8fHE7bWUoe3RhcmdldDoiUmVmbGVjdCIsc3RhdDohMCxmb3JjZWQ6SixzaGFtOkp9LHtjb25zdHJ1Y3Q6ZnVuY3Rpb24ob2UsY2Upe1Uob2Up''@;'; + put 'put ''LFEoY2UpO3ZhciBkZT1hcmd1bWVudHMubGVuZ3RoPDM/b2U6VShhcmd1bWVudHNbMl0pO2lmKHEmJiFlZSlyZXR1cm4gWShvZSxjZSxkZSk7aWYob2U9PWRlKXtzd2l0Y2goY2UubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBvZTtjYXNlIDE6cmV0dXJuIG5ldyBvZShjZVswXSk7Y2FzZSAy''@;'; + put 'put ''OnJldHVybiBuZXcgb2UoY2VbMF0sY2VbMV0pO2Nhc2UgMzpyZXR1cm4gbmV3IG9lKGNlWzBdLGNlWzFdLGNlWzJdKTtjYXNlIDQ6cmV0dXJuIG5ldyBvZShjZVswXSxjZVsxXSxjZVsyXSxjZVszXSl9dmFyIHZlPVtudWxsXTtyZXR1cm4gRShOLHZlLGNlKSxuZXcoRShNZSxvZSx2ZSkpfXZh''@;'; + put 'put ''ciBBZT1kZS5wcm90b3R5cGUsa2U9aWUoWihBZSk/QWU6VyksU2U9RShvZSxrZSxjZSk7cmV0dXJuIFooU2UpP1NlOmtlfX0pfSwyMDI3MzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDM1NjIpLEU9TCg3MTQ5NiksTWU9TCg1ODY0NyksVT1MKDE0MTI1KSxRPUwoNDc5ODcpLFo9''@;'; + put 'put ''TCg4MjczMyk7bWUoe3RhcmdldDoiUmVmbGVjdCIsc3RhdDohMH0se2dldDpmdW5jdGlvbiBpZShsZSxZKXt2YXIgTixlZSxXPWFyZ3VtZW50cy5sZW5ndGg8Mz9sZTphcmd1bWVudHNbMl07cmV0dXJuIE1lKGxlKT09PVc/bGVbWV06KE49US5mKGxlLFkpKT9VKE4pP04udmFsdWU6dm9pZCAw''@;'; + put 'put ''PT09Ti5nZXQ/dm9pZCAwOkIoTi5nZXQsVyk6RShlZT1aKGxlKSk/aWUoZWUsWSxXKTp2b2lkIDB9fSl9LDE2ODI1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjI0KSxCPUwoNzA3MDUpLEU9TCg2NjEzKSxNZT1MKDY3NTA3KSxVPUwoNTE4NDkpLFE9TCgxNjAxNyksWj1MKDc1NDMxKS5mLGll''@;'; + put 'put ''PUwoMzc0NzQpLGxlPUwoNDE4MDQpLFk9TCg5MjEpLFc9TCg4MTYyMCksTj1MKDk3MTg5KSxlZT1MKDc4ODApLHE9TCgyNTY2NiksSj1MKDIzNTIzKSxzZT1MKDQ4ODExKSxvZT1MKDcyNykuZW5mb3JjZSxjZT1MKDY4MzE1KSxkZT1MKDI1NDYpLHZlPUwoNDMxODYpLEFlPUwoNTE5NDkpLGtl''@;'; + put 'put ''PWRlKCJtYXRjaCIpLFNlPUIuUmVnRXhwLEllPVNlLnByb3RvdHlwZSxUZT1CLlN5bnRheEVycm9yLEVlPUUoSWUuZXhlYyksaGU9RSgiIi5jaGFyQXQpLE89RSgiIi5yZXBsYWNlKSx6PUUoIiIuaW5kZXhPZiksbmU9RSgiIi5zbGljZSksdGU9L15cPzxbXlxzXGQhIyUmKis8PT5AXl1bXlxz''@;'; + put 'put ''ISMlJiorPD0+QF5dKj4vLHg9L2EvZyxQPS9hL2csVj1uZXcgU2UoeCkhPT14LFQ9Ti5NSVNTRURfU1RJQ0tZLFM9Ti5VTlNVUFBPUlRFRF9ZO2lmKE1lKCJSZWdFeHAiLG1lJiYoIVZ8fFR8fHZlfHxBZXx8SihmdW5jdGlvbigpe3JldHVybiBQW2tlXT0hMSxTZSh4KSE9eHx8U2UoUCk9PVB8''@;'; + put 'put ''fCIvYS9pIiE9U2UoeCwiaSIpfSkpKSl7Zm9yKHZhciBEZT1mdW5jdGlvbihndCx3dCl7dmFyIG9uLF90LHR0LGV0LGF0LEx0LHZ0PWllKEllLHRoaXMpLEF0PWxlKGd0KSxtdD12b2lkIDA9PT13dCxodD1bXSxCdD1ndDtpZighdnQmJkF0JiZtdCYmZ3QuY29uc3RydWN0b3I9PT1EZSlyZXR1''@;'; + put 'put ''cm4gZ3Q7aWYoKEF0fHxpZShJZSxndCkpJiYoZ3Q9Z3Quc291cmNlLG10JiYod3Q9VyhCdCkpKSxndD12b2lkIDA9PT1ndD8iIjpZKGd0KSx3dD12b2lkIDA9PT13dD8iIjpZKHd0KSxCdD1ndCx2ZSYmImRvdEFsbCJpbiB4JiYoX3Q9ISF3dCYmeih3dCwicyIpPi0xKSYmKHd0PU8od3QsL3Mv''@;'; + put 'put ''ZywiIikpLG9uPXd0LFQmJiJzdGlja3kiaW4geCYmKHR0PSEhd3QmJnood3QsInkiKT4tMSkmJlMmJih3dD1PKHd0LC95L2csIiIpKSxBZSYmKGV0PWZ1bmN0aW9uKCRlKXtmb3IodmFyIHR0LGd0PSRlLmxlbmd0aCx3dD0wLHZ0PSIiLEF0PVtdLG10PXt9LGh0PSExLEJ0PSExLG9uPTAsX3Q9''@;'; + put 'put ''IiI7d3Q8PWd0O3d0Kyspe2lmKCJcXCI9PT0odHQ9aGUoJGUsd3QpKSl0dCs9aGUoJGUsKyt3dCk7ZWxzZSBpZigiXSI9PT10dClodD0hMTtlbHNlIGlmKCFodClzd2l0Y2goITApe2Nhc2UiWyI9PT10dDpodD0hMDticmVhaztjYXNlIigiPT09dHQ6RWUodGUsbmUoJGUsd3QrMSkpJiYod3Qr''@;'; + put 'put ''PTIsQnQ9ITApLHZ0Kz10dCxvbisrO2NvbnRpbnVlO2Nhc2UiPiI9PT10dCYmQnQ6aWYoIiI9PT1fdHx8c2UobXQsX3QpKXRocm93IG5ldyBUZSgiSW52YWxpZCBjYXB0dXJlIGdyb3VwIG5hbWUiKTttdFtfdF09ITAsQXRbQXQubGVuZ3RoXT1bX3Qsb25dLEJ0PSExLF90PSIiO2NvbnRpbnVl''@;'; + put 'put ''fUJ0P190Kz10dDp2dCs9dHR9cmV0dXJuW3Z0LEF0XX0oZ3QpLGd0PWV0WzBdLGh0PWV0WzFdKSxhdD1VKFNlKGd0LHd0KSx2dD90aGlzOkllLERlKSwoX3R8fHR0fHxodC5sZW5ndGgpJiYoTHQ9b2UoYXQpLF90JiYoTHQuZG90QWxsPSEwLEx0LnJhdz1EZShmdW5jdGlvbigkZSl7Zm9yKHZh''@;'; + put 'put ''ciBtdCxndD0kZS5sZW5ndGgsd3Q9MCx2dD0iIixBdD0hMTt3dDw9Z3Q7d3QrKykiXFwiIT09KG10PWhlKCRlLHd0KSk/QXR8fCIuIiE9PW10PygiWyI9PT1tdD9BdD0hMDoiXSI9PT1tdCYmKEF0PSExKSx2dCs9bXQpOnZ0Kz0iW1xcc1xcU10iOnZ0Kz1tdCtoZSgkZSwrK3d0KTtyZXR1cm4g''@;'; + put 'put ''dnR9KGd0KSxvbikpLHR0JiYoTHQuc3RpY2t5PSEwKSxodC5sZW5ndGgmJihMdC5ncm91cHM9aHQpKSxndCE9PUJ0KXRyeXtRKGF0LCJzb3VyY2UiLCIiPT09QnQ/Iig/OikiOkJ0KX1jYXRjaChDdCl7fXJldHVybiBhdH0sUGU9WihTZSksUWU9MDtQZS5sZW5ndGg+UWU7KWVlKERlLFNlLFBl''@;'; + put 'put ''W1FlKytdKTtJZS5jb25zdHJ1Y3Rvcj1EZSxEZS5wcm90b3R5cGU9SWUscShCLCJSZWdFeHAiLERlLHtjb25zdHJ1Y3RvcjohMH0pfWNlKCJSZWdFeHAiKX0sNDI3NjA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoMjIyMzQpO21lKHt0YXJnZXQ6IlJlZ0V4''@;'; + put 'put ''cCIscHJvdG86ITAsZm9yY2VkOi8uLy5leGVjIT09Qn0se2V4ZWM6Qn0pfSwzMDU3MTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMTM4NjkpLlBST1BFUixCPUwoMjU2NjYpLEU9TCg1ODY0NyksTWU9TCg5MjEpLFU9TCgyMzUyMyksUT1MKDgxNjIwKSxaPSJ0b1N0cmluZyIs''@;'; + put 'put ''bGU9UmVnRXhwLnByb3RvdHlwZVtaXTsoVShmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9bGUuY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9KX0pfHxtZSYmbGUubmFtZSE9WikmJkIoUmVnRXhwLnByb3RvdHlwZSxaLGZ1bmN0aW9uKCl7dmFyIGVlPUUodGhpcyk7cmV0dXJuIi8iK01lKGVl''@;'; + put 'put ''LnNvdXJjZSkrIi8iK01lKFEoZWUpKX0se3Vuc2FmZTohMH0pfSw4MDA2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDQ2ODU3KSgiU2V0IixmdW5jdGlvbihFKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9''@;'; + put 'put ''fSxMKDQ1MTQwKSl9LDE4MzIzOihYZSxKZSxMKT0+e0woODAwNil9LDE2NjYxOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDc1MDU4KS5jb2RlQXQ7bWUoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMH0se2NvZGVQb2ludEF0OmZ1bmN0aW9uKE1lKXtyZXR1''@;'; + put 'put ''cm4gQih0aGlzLE1lKX19KX0sMzc0OTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBKLG1lPUwoODU2NDgpLEI9TCg2NjEzKSxFPUwoNDc5ODcpLmYsTWU9TCg2NTMxNiksVT1MKDkyMSksUT1MKDQxOTYxKSxaPUwoMjQ1NzIpLGllPUwoNzY1NzEpLGxlPUwoMTAwMTcpLFk9QigiIi5l''@;'; + put 'put ''bmRzV2l0aCksVz1CKCIiLnNsaWNlKSxOPU1hdGgubWluLGVlPWllKCJlbmRzV2l0aCIpO21lKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiEoIWxlJiYhZWUmJihKPUUoU3RyaW5nLnByb3RvdHlwZSwiZW5kc1dpdGgiKSxKJiYhSi53cml0YWJsZSl8fGVlKX0se2VuZHNXaXRo''@;'; + put 'put ''OmZ1bmN0aW9uKHNlKXt2YXIgb2U9VShaKHRoaXMpKTtRKHNlKTt2YXIgY2U9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsZGU9b2UubGVuZ3RoLHZlPXZvaWQgMD09PWNlP2RlOk4oTWUoY2UpLGRlKSxBZT1VKHNlKTtyZXR1cm4gWT9ZKG9lLEFlLHZlKTpXKG9lLHZl''@;'; + put 'put ''LUFlLmxlbmd0aCx2ZSk9PT1BZX19KX0sNDUxMzU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoNjYxMyksRT1MKDQxOTYxKSxNZT1MKDI0NTcyKSxVPUwoOTIxKSxRPUwoNzY1NzEpLFo9QigiIi5pbmRleE9mKTttZSh7dGFyZ2V0OiJTdHJpbmciLHByb3Rv''@;'; + put 'put ''OiEwLGZvcmNlZDohUSgiaW5jbHVkZXMiKX0se2luY2x1ZGVzOmZ1bmN0aW9uKGxlKXtyZXR1cm4hIX5aKFUoTWUodGhpcykpLFUoRShsZSkpLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sNTM5NTA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1M''@;'; + put 'put ''KDc1MDU4KS5jaGFyQXQsQj1MKDkyMSksRT1MKDcyNyksTWU9TCgzODQ5NyksVT0iU3RyaW5nIEl0ZXJhdG9yIixRPUUuc2V0LFo9RS5nZXR0ZXJGb3IoVSk7TWUoU3RyaW5nLCJTdHJpbmciLGZ1bmN0aW9uKGllKXtRKHRoaXMse3R5cGU6VSxzdHJpbmc6QihpZSksaW5kZXg6MH0pfSxmdW5j''@;'; + put 'put ''dGlvbigpe3ZhciBOLGxlPVoodGhpcyksWT1sZS5zdHJpbmcsVz1sZS5pbmRleDtyZXR1cm4gVz49WS5sZW5ndGg/e3ZhbHVlOnZvaWQgMCxkb25lOiEwfTooTj1tZShZLFcpLGxlLmluZGV4Kz1OLmxlbmd0aCx7dmFsdWU6Tixkb25lOiExfSl9KX0sNDkyOTU6KFhlLEplLEwpPT57InVzZSBz''@;'; + put 'put ''dHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoOTUxMTApO21lKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOkwoOTc4MTgpKCJsaW5rIil9LHtsaW5rOmZ1bmN0aW9uKFUpe3JldHVybiBCKHRoaXMsImEiLCJocmVmIixVKX19KX0sMjc2MjooWGUsSmUsTCk9PnsidXNlIHN0cmlj''@;'; + put 'put ''dCI7dmFyIG1lPUwoMzU2MiksQj1MKDIyODE0KSxFPUwoNTg2NDcpLE1lPUwoNjUzMTYpLFU9TCg5MjEpLFE9TCgyNDU3MiksWj1MKDIwOTQ4KSxpZT1MKDYxNjc2KSxsZT1MKDU4MTI2KTtCKCJtYXRjaCIsZnVuY3Rpb24oWSxXLE4pe3JldHVybltmdW5jdGlvbihxKXt2YXIgSj1RKHRoaXMp''@;'; + put 'put ''LHNlPW51bGw9PXE/dm9pZCAwOloocSxZKTtyZXR1cm4gc2U/bWUoc2UscSxKKTpuZXcgUmVnRXhwKHEpW1ldKFUoSikpfSxmdW5jdGlvbihlZSl7dmFyIHE9RSh0aGlzKSxKPVUoZWUpLHNlPU4oVyxxLEopO2lmKHNlLmRvbmUpcmV0dXJuIHNlLnZhbHVlO2lmKCFxLmdsb2JhbClyZXR1cm4g''@;'; + put 'put ''bGUocSxKKTt2YXIgb2U9cS51bmljb2RlO3EubGFzdEluZGV4PTA7Zm9yKHZhciB2ZSxjZT1bXSxkZT0wO251bGwhPT0odmU9bGUocSxKKSk7KXt2YXIgQWU9VSh2ZVswXSk7Y2VbZGVdPUFlLCIiPT09QWUmJihxLmxhc3RJbmRleD1pZShKLE1lKHEubGFzdEluZGV4KSxvZSkpLGRlKyt9cmV0''@;'; + put 'put ''dXJuIDA9PT1kZT9udWxsOmNlfV19KX0sNzgyNDY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoMjEyODUpLnN0YXJ0O21lKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOkwoNzIyMTApfSx7cGFkU3RhcnQ6ZnVuY3Rpb24oVSl7cmV0dXJuIEIo''@;'; + put 'put ''dGhpcyxVLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sMTA0MTQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDExMzA2KSxCPUwoMzU2MiksRT1MKDY2MTMpLE1lPUwoMjI4MTQpLFU9TCgyMzUyMyksUT1MKDU4NjQ3KSxaPUwoMTIwMTQpLGll''@;'; + put 'put ''PUwoNDA3MDIpLGxlPUwoNjUzMTYpLFk9TCg5MjEpLFc9TCgyNDU3MiksTj1MKDYxNjc2KSxlZT1MKDIwOTQ4KSxxPUwoNjMzODIpLEo9TCg1ODEyNiksb2U9TCgyNTQ2KSgicmVwbGFjZSIpLGNlPU1hdGgubWF4LGRlPU1hdGgubWluLHZlPUUoW10uY29uY2F0KSxBZT1FKFtdLnB1c2gpLGtl''@;'; + put 'put ''PUUoIiIuaW5kZXhPZiksU2U9RSgiIi5zbGljZSksSWU9ZnVuY3Rpb24oTyl7cmV0dXJuIHZvaWQgMD09PU8/TzpTdHJpbmcoTyl9LFRlPSIkMCI9PT0iYSIucmVwbGFjZSgvLi8sIiQwIiksRWU9ISEvLi9bb2VdJiYiIj09PS8uL1tvZV0oImEiLCIkMCIpO01lKCJyZXBsYWNlIixmdW5jdGlv''@;'; + put 'put ''bihPLHosbmUpe3ZhciB0ZT1FZT8iJCI6IiQwIjtyZXR1cm5bZnVuY3Rpb24oUCxWKXt2YXIgVD1XKHRoaXMpLFM9bnVsbD09UD92b2lkIDA6ZWUoUCxvZSk7cmV0dXJuIFM/QihTLFAsVCxWKTpCKHosWShUKSxQLFYpfSxmdW5jdGlvbih4LFApe3ZhciBWPVEodGhpcyksVD1ZKHgpO2lmKCJz''@;'; + put 'put ''dHJpbmciPT10eXBlb2YgUCYmLTE9PT1rZShQLHRlKSYmLTE9PT1rZShQLCIkPCIpKXt2YXIgUz1uZSh6LFYsVCxQKTtpZihTLmRvbmUpcmV0dXJuIFMudmFsdWV9dmFyIEY9WihQKTtGfHwoUD1ZKFApKTt2YXIgeWU9Vi5nbG9iYWw7aWYoeWUpe3ZhciBDZT1WLnVuaWNvZGU7Vi5sYXN0SW5k''@;'; + put 'put ''ZXg9MH1mb3IodmFyIERlPVtdOzspe3ZhciBQZT1KKFYsVCk7aWYobnVsbD09PVBlfHwoQWUoRGUsUGUpLCF5ZSkpYnJlYWs7IiI9PT1ZKFBlWzBdKSYmKFYubGFzdEluZGV4PU4oVCxsZShWLmxhc3RJbmRleCksQ2UpKX1mb3IodmFyICRlPSIiLGd0PTAsd3Q9MDt3dDxEZS5sZW5ndGg7d3Qr''@;'; + put 'put ''Kyl7Zm9yKHZhciB2dD1ZKChQZT1EZVt3dF0pWzBdKSxBdD1jZShkZShpZShQZS5pbmRleCksVC5sZW5ndGgpLDApLG10PVtdLGh0PTE7aHQ8UGUubGVuZ3RoO2h0KyspQWUobXQsSWUoUGVbaHRdKSk7dmFyIEJ0PVBlLmdyb3VwcztpZihGKXt2YXIgb249dmUoW3Z0XSxtdCxBdCxUKTt2b2lk''@;'; + put 'put ''IDAhPT1CdCYmQWUob24sQnQpO3ZhciBfdD1ZKG1lKFAsdm9pZCAwLG9uKSl9ZWxzZSBfdD1xKHZ0LFQsQXQsbXQsQnQsUCk7QXQ+PWd0JiYoJGUrPVNlKFQsZ3QsQXQpK190LGd0PUF0K3Z0Lmxlbmd0aCl9cmV0dXJuICRlK1NlKFQsZ3QpfV19LCEhVShmdW5jdGlvbigpe3ZhciBPPS8uLzty''@;'; + put 'put ''ZXR1cm4gTy5leGVjPWZ1bmN0aW9uKCl7dmFyIHo9W107cmV0dXJuIHouZ3JvdXBzPXthOiI3In0sen0sIjciIT09IiIucmVwbGFjZShPLCIkPGE+Iil9KXx8IVRlfHxFZSl9LDc3OTQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDM1NjIpLEI9TCgyMjgxNCksRT1MKDU4NjQ3''@;'; + put 'put ''KSxNZT1MKDI0NTcyKSxVPUwoNTU4ODEpLFE9TCg5MjEpLFo9TCgyMDk0OCksaWU9TCg1ODEyNik7Qigic2VhcmNoIixmdW5jdGlvbihsZSxZLFcpe3JldHVybltmdW5jdGlvbihlZSl7dmFyIHE9TWUodGhpcyksSj1udWxsPT1lZT92b2lkIDA6WihlZSxsZSk7cmV0dXJuIEo/bWUoSixlZSxx''@;'; + put 'put ''KTpuZXcgUmVnRXhwKGVlKVtsZV0oUShxKSl9LGZ1bmN0aW9uKE4pe3ZhciBlZT1FKHRoaXMpLHE9UShOKSxKPVcoWSxlZSxxKTtpZihKLmRvbmUpcmV0dXJuIEoudmFsdWU7dmFyIHNlPWVlLmxhc3RJbmRleDtVKHNlLDApfHwoZWUubGFzdEluZGV4PTApO3ZhciBvZT1pZShlZSxxKTtyZXR1''@;'; + put 'put ''cm4gVShlZS5sYXN0SW5kZXgsc2UpfHwoZWUubGFzdEluZGV4PXNlKSxudWxsPT09b2U/LTE6b2UuaW5kZXh9XX0pfSw2NDQxODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMTEzMDYpLEI9TCgzNTYyKSxFPUwoNjYxMyksTWU9TCgyMjgxNCksVT1MKDQxODA0KSxRPUwoNTg2''@;'; + put 'put ''NDcpLFo9TCgyNDU3MiksaWU9TCg5MTMpLGxlPUwoNjE2NzYpLFk9TCg2NTMxNiksVz1MKDkyMSksTj1MKDIwOTQ4KSxlZT1MKDEwODcyKSxxPUwoNTgxMjYpLEo9TCgyMjIzNCksc2U9TCg5NzE4OSksb2U9TCgyMzUyMyksY2U9c2UuVU5TVVBQT1JURURfWSxkZT00Mjk0OTY3Mjk1LHZlPU1h''@;'; + put 'put ''dGgubWluLEFlPVtdLnB1c2gsa2U9RSgvLi8uZXhlYyksU2U9RShBZSksSWU9RSgiIi5zbGljZSk7TWUoInNwbGl0IixmdW5jdGlvbihFZSxoZSxPKXt2YXIgejtyZXR1cm4gej0iYyI9PSJhYmJjIi5zcGxpdCgvKGIpKi8pWzFdfHw0IT0idGVzdCIuc3BsaXQoLyg/OikvLC0xKS5sZW5ndGh8''@;'; + put 'put ''fDIhPSJhYiIuc3BsaXQoLyg/OmFiKSovKS5sZW5ndGh8fDQhPSIuIi5zcGxpdCgvKC4/KSguPykvKS5sZW5ndGh8fCIuIi5zcGxpdCgvKCkoKS8pLmxlbmd0aD4xfHwiIi5zcGxpdCgvLj8vKS5sZW5ndGg/ZnVuY3Rpb24obmUsdGUpe3ZhciB4PVcoWih0aGlzKSksUD12b2lkIDA9PT10ZT9k''@;'; + put 'put ''ZTp0ZT4+PjA7aWYoMD09PVApcmV0dXJuW107aWYodm9pZCAwPT09bmUpcmV0dXJuW3hdO2lmKCFVKG5lKSlyZXR1cm4gQihoZSx4LG5lLFApO2Zvcih2YXIgeWUsQ2UsRGUsVj1bXSxTPTAsRj1uZXcgUmVnRXhwKG5lLnNvdXJjZSwobmUuaWdub3JlQ2FzZT8iaSI6IiIpKyhuZS5tdWx0aWxp''@;'; + put 'put ''bmU/Im0iOiIiKSsobmUudW5pY29kZT8idSI6IiIpKyhuZS5zdGlja3k/InkiOiIiKSsiZyIpOyh5ZT1CKEosRix4KSkmJiEoKENlPUYubGFzdEluZGV4KT5TJiYoU2UoVixJZSh4LFMseWUuaW5kZXgpKSx5ZS5sZW5ndGg+MSYmeWUuaW5kZXg8eC5sZW5ndGgmJm1lKEFlLFYsZWUoeWUsMSkp''@;'; + put 'put ''LERlPXllWzBdLmxlbmd0aCxTPUNlLFYubGVuZ3RoPj1QKSk7KUYubGFzdEluZGV4PT09eWUuaW5kZXgmJkYubGFzdEluZGV4Kys7cmV0dXJuIFM9PT14Lmxlbmd0aD8oRGV8fCFrZShGLCIiKSkmJlNlKFYsIiIpOlNlKFYsSWUoeCxTKSksVi5sZW5ndGg+UD9lZShWLDAsUCk6Vn06IjAiLnNw''@;'; + put 'put ''bGl0KHZvaWQgMCwwKS5sZW5ndGg/ZnVuY3Rpb24obmUsdGUpe3JldHVybiB2b2lkIDA9PT1uZSYmMD09PXRlP1tdOkIoaGUsdGhpcyxuZSx0ZSl9OmhlLFtmdW5jdGlvbih0ZSx4KXt2YXIgUD1aKHRoaXMpLFY9bnVsbD09dGU/dm9pZCAwOk4odGUsRWUpO3JldHVybiBWP0IoVix0ZSxQLHgp''@;'; + put 'put ''OkIoeixXKFApLHRlLHgpfSxmdW5jdGlvbihuZSx0ZSl7dmFyIHg9USh0aGlzKSxQPVcobmUpLFY9Tyh6LHgsUCx0ZSx6IT09aGUpO2lmKFYuZG9uZSlyZXR1cm4gVi52YWx1ZTt2YXIgVD1pZSh4LFJlZ0V4cCksUz14LnVuaWNvZGUseWU9bmV3IFQoY2U/Il4oPzoiK3guc291cmNlKyIpIjp4''@;'; + put 'put ''LCh4Lmlnbm9yZUNhc2U/ImkiOiIiKSsoeC5tdWx0aWxpbmU/Im0iOiIiKSsoeC51bmljb2RlPyJ1IjoiIikrKGNlPyJnIjoieSIpKSxDZT12b2lkIDA9PT10ZT9kZTp0ZT4+PjA7aWYoMD09PUNlKXJldHVybltdO2lmKDA9PT1QLmxlbmd0aClyZXR1cm4gbnVsbD09PXEoeWUsUCk/W1BdOltd''@;'; + put 'put ''O2Zvcih2YXIgRGU9MCxQZT0wLFFlPVtdO1BlPFAubGVuZ3RoOyl7eWUubGFzdEluZGV4PWNlPzA6UGU7dmFyIGd0LCRlPXEoeWUsY2U/SWUoUCxQZSk6UCk7aWYobnVsbD09PSRlfHwoZ3Q9dmUoWSh5ZS5sYXN0SW5kZXgrKGNlP1BlOjApKSxQLmxlbmd0aCkpPT09RGUpUGU9bGUoUCxQZSxT''@;'; + put 'put ''KTtlbHNle2lmKFNlKFFlLEllKFAsRGUsUGUpKSxRZS5sZW5ndGg9PT1DZSlyZXR1cm4gUWU7Zm9yKHZhciB3dD0xO3d0PD0kZS5sZW5ndGgtMTt3dCsrKWlmKFNlKFFlLCRlW3d0XSksUWUubGVuZ3RoPT09Q2UpcmV0dXJuIFFlO1BlPURlPWd0fX1yZXR1cm4gU2UoUWUsSWUoUCxEZSkpLFFl''@;'; + put 'put ''fV19LCEhb2UoZnVuY3Rpb24oKXt2YXIgRWU9Lyg/OikvLGhlPUVlLmV4ZWM7RWUuZXhlYz1mdW5jdGlvbigpe3JldHVybiBoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBPPSJhYiIuc3BsaXQoRWUpO3JldHVybiAyIT09Ty5sZW5ndGh8fCJhIiE9PU9bMF18fCJiIiE9PU9bMV19KSxj''@;'; + put 'put ''ZSl9LDg1NzM1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgSixtZT1MKDg1NjQ4KSxCPUwoNjYxMyksRT1MKDQ3OTg3KS5mLE1lPUwoNjUzMTYpLFU9TCg5MjEpLFE9TCg0MTk2MSksWj1MKDI0NTcyKSxpZT1MKDc2NTcxKSxsZT1MKDEwMDE3KSxZPUIoIiIuc3RhcnRzV2l0aCksVz1C''@;'; + put 'put ''KCIiLnNsaWNlKSxOPU1hdGgubWluLGVlPWllKCJzdGFydHNXaXRoIik7bWUoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6ISghbGUmJiFlZSYmKEo9RShTdHJpbmcucHJvdG90eXBlLCJzdGFydHNXaXRoIiksSiYmIUoud3JpdGFibGUpfHxlZSl9LHtzdGFydHNXaXRoOmZ1bmN0''@;'; + put 'put ''aW9uKHNlKXt2YXIgb2U9VShaKHRoaXMpKTtRKHNlKTt2YXIgY2U9TWUoTihhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxvZS5sZW5ndGgpKSxkZT1VKHNlKTtyZXR1cm4gWT9ZKG9lLGRlLGNlKTpXKG9lLGNlLGNlK2RlLmxlbmd0aCk9PT1kZX19KX0sODM2MjA6KFhl''@;'; + put 'put ''LEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoOTMxNjYpLnRyaW07bWUoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6TCg0NTcxMikoInRyaW0iKX0se3RyaW06ZnVuY3Rpb24oKXtyZXR1cm4gQih0aGlzKX19KX0sNDQ2NDY6KFhlLEplLEwpPT57InVz''@;'; + put 'put ''ZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoNzA3MDUpLEU9TCgzNTYyKSxNZT1MKDY2MTMpLFU9TCgxMDAxNyksUT1MKDg1NjI0KSxaPUwoODI3NzApLGllPUwoMjM1MjMpLGxlPUwoNDg4MTEpLFk9TCgzNzQ3NCksVz1MKDU4NjQ3KSxOPUwoNTAzMjcpLGVlPUwoODQwOTQpLHE9TCg5''@;'; + put 'put ''MjEpLEo9TCg3MzkyMCksc2U9TCg3NDQxMCksb2U9TCgxNDU0NSksY2U9TCg3NTQzMSksZGU9TCgzNTgwOCksdmU9TCg1NTM0KSxBZT1MKDQ3OTg3KSxrZT1MKDUxMTgzKSxTZT1MKDc3MzI4KSxJZT1MKDQ2OTAxKSxUZT1MKDI1NjY2KSxFZT1MKDY4ODM1KSxoZT1MKDI3MjMwKSxPPUwoMTk5''@;'; + put 'put ''MDkpLHo9TCg1MjgxMCksbmU9TCgyNTQ2KSx0ZT1MKDI4MTEpLHg9TCgzOTIzNSksUD1MKDE0NDk4KSxWPUwoNTU5NjgpLFQ9TCg3MjcpLFM9TCg5NTY2OSkuZm9yRWFjaCxGPWhlKCJoaWRkZW4iKSx5ZT0iU3ltYm9sIixDZT0icHJvdG90eXBlIixEZT1ULnNldCxQZT1ULmdldHRlckZvcih5''@;'; + put 'put ''ZSksUWU9T2JqZWN0W0NlXSwkZT1CLlN5bWJvbCxndD0kZSYmJGVbQ2VdLHd0PUIuVHlwZUVycm9yLHZ0PUIuUU9iamVjdCxBdD1BZS5mLG10PWtlLmYsaHQ9ZGUuZixCdD1JZS5mLG9uPU1lKFtdLnB1c2gpLF90PUVlKCJzeW1ib2xzIiksdHQ9RWUoIm9wLXN5bWJvbHMiKSxldD1FZSgid2tz''@;'; + put 'put ''IiksYXQ9IXZ0fHwhdnRbQ2VdfHwhdnRbQ2VdLmZpbmRDaGlsZCxMdD1RJiZpZShmdW5jdGlvbigpe3JldHVybiA3IT1zZShtdCh7fSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiBtdCh0aGlzLCJhIix7dmFsdWU6N30pLmF9fSkpLmF9KT9mdW5jdGlvbihnbixkbix5bil7dmFyIGxuPUF0''@;'; + put 'put ''KFFlLGRuKTtsbiYmZGVsZXRlIFFlW2RuXSxtdChnbixkbix5biksbG4mJmduIT09UWUmJm10KFFlLGRuLGxuKX06bXQsQ3Q9ZnVuY3Rpb24oZ24sZG4pe3ZhciB5bj1fdFtnbl09c2UoZ3QpO3JldHVybiBEZSh5bix7dHlwZTp5ZSx0YWc6Z24sZGVzY3JpcHRpb246ZG59KSxRfHwoeW4uZGVz''@;'; + put 'put ''Y3JpcHRpb249ZG4pLHlufSxmdD1mdW5jdGlvbihkbix5bixsbil7ZG49PT1RZSYmZnQodHQseW4sbG4pLFcoZG4pO3ZhciBObj1lZSh5bik7cmV0dXJuIFcobG4pLGxlKF90LE5uKT8obG4uZW51bWVyYWJsZT8obGUoZG4sRikmJmRuW0ZdW05uXSYmKGRuW0ZdW05uXT0hMSksbG49c2UobG4s''@;'; + put 'put ''e2VudW1lcmFibGU6SigwLCExKX0pKToobGUoZG4sRil8fG10KGRuLEYsSigxLHt9KSksZG5bRl1bTm5dPSEwKSxMdChkbixObixsbikpOm10KGRuLE5uLGxuKX0sSHQ9ZnVuY3Rpb24oZG4seW4pe1coZG4pO3ZhciBsbj1OKHluKSxObj1vZShsbikuY29uY2F0KFF0KGxuKSk7cmV0dXJuIFMo''@;'; + put 'put ''Tm4sZnVuY3Rpb24oYm4peyghUXx8RShVZSxsbixibikpJiZmdChkbixibixsbltibl0pfSksZG59LFVlPWZ1bmN0aW9uKGRuKXt2YXIgeW49ZWUoZG4pLGxuPUUoQnQsdGhpcyx5bik7cmV0dXJuISh0aGlzPT09UWUmJmxlKF90LHluKSYmIWxlKHR0LHluKSkmJighKGxufHwhbGUodGhpcyx5''@;'; + put 'put ''bil8fCFsZShfdCx5bil8fGxlKHRoaXMsRikmJnRoaXNbRl1beW5dKXx8bG4pfSx5dD1mdW5jdGlvbihkbix5bil7dmFyIGxuPU4oZG4pLE5uPWVlKHluKTtpZihsbiE9PVFlfHwhbGUoX3QsTm4pfHxsZSh0dCxObikpe3ZhciBibj1BdChsbixObik7cmV0dXJuIGJuJiZsZShfdCxObikmJiEo''@;'; + put 'put ''bGUobG4sRikmJmxuW0ZdW05uXSkmJihibi5lbnVtZXJhYmxlPSEwKSxibn19LGp0PWZ1bmN0aW9uKGRuKXt2YXIgeW49aHQoTihkbikpLGxuPVtdO3JldHVybiBTKHluLGZ1bmN0aW9uKE5uKXshbGUoX3QsTm4pJiYhbGUoTyxObikmJm9uKGxuLE5uKX0pLGxufSxRdD1mdW5jdGlvbihnbil7''@;'; + put 'put ''dmFyIGRuPWduPT09UWUseW49aHQoZG4/dHQ6TihnbikpLGxuPVtdO3JldHVybiBTKHluLGZ1bmN0aW9uKE5uKXtsZShfdCxObikmJighZG58fGxlKFFlLE5uKSkmJm9uKGxuLF90W05uXSl9KSxsbn07Wnx8KFRlKGd0PSgkZT1mdW5jdGlvbigpe2lmKFkoZ3QsdGhpcykpdGhyb3cgd3QoIlN5''@;'; + put 'put ''bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3ZhciBkbj1hcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/cShhcmd1bWVudHNbMF0pOnZvaWQgMCx5bj16KGRuKSxsbj1mdW5jdGlvbihObil7dGhpcz09PVFlJiZFKGxuLHR0LE5uKSxsZSh0aGlzLEYpJiZsZSh0aGlz''@;'; + put 'put ''W0ZdLHluKSYmKHRoaXNbRl1beW5dPSExKSxMdCh0aGlzLHluLEooMSxObikpfTtyZXR1cm4gUSYmYXQmJkx0KFFlLHluLHtjb25maWd1cmFibGU6ITAsc2V0OmxufSksQ3QoeW4sZG4pfSlbQ2VdLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4gUGUodGhpcykudGFnfSksVGUoJGUsIndp''@;'; + put 'put ''dGhvdXRTZXR0ZXIiLGZ1bmN0aW9uKGduKXtyZXR1cm4gQ3QoeihnbiksZ24pfSksSWUuZj1VZSxrZS5mPWZ0LFNlLmY9SHQsQWUuZj15dCxjZS5mPWRlLmY9anQsdmUuZj1RdCx0ZS5mPWZ1bmN0aW9uKGduKXtyZXR1cm4gQ3QobmUoZ24pLGduKX0sUSYmKG10KGd0LCJkZXNjcmlwdGlvbiIs''@;'; + put 'put ''e2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUGUodGhpcykuZGVzY3JpcHRpb259fSksVXx8VGUoUWUsInByb3BlcnR5SXNFbnVtZXJhYmxlIixVZSx7dW5zYWZlOiEwfSkpKSxtZSh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLHdyYXA6ITAsZm9yY2VkOiFaLHNoYW06''@;'; + put 'put ''IVp9LHtTeW1ib2w6JGV9KSxTKG9lKGV0KSxmdW5jdGlvbihnbil7eChnbil9KSxtZSh7dGFyZ2V0OnllLHN0YXQ6ITAsZm9yY2VkOiFafSx7dXNlU2V0dGVyOmZ1bmN0aW9uKCl7YXQ9ITB9LHVzZVNpbXBsZTpmdW5jdGlvbigpe2F0PSExfX0pLG1lKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDoh''@;'; + put 'put ''MCxmb3JjZWQ6IVosc2hhbTohUX0se2NyZWF0ZTpmdW5jdGlvbihkbix5bil7cmV0dXJuIHZvaWQgMD09PXluP3NlKGRuKTpIdChzZShkbikseW4pfSxkZWZpbmVQcm9wZXJ0eTpmdCxkZWZpbmVQcm9wZXJ0aWVzOkh0LGdldE93blByb3BlcnR5RGVzY3JpcHRvcjp5dH0pLG1lKHt0YXJnZXQ6''@;'; + put 'put ''Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6IVp9LHtnZXRPd25Qcm9wZXJ0eU5hbWVzOmp0fSksUCgpLFYoJGUseWUpLE9bRl09ITB9LDg2NDI3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDg1NjI0KSxFPUwoNzA3MDUpLE1lPUwoNjYxMyksVT1MKDQ4ODEx''@;'; + put 'put ''KSxRPUwoMTIwMTQpLFo9TCgzNzQ3NCksaWU9TCg5MjEpLGxlPUwoNTExODMpLmYsWT1MKDc3NTQ4KSxXPUUuU3ltYm9sLE49VyYmVy5wcm90b3R5cGU7aWYoQiYmUShXKSYmKCEoImRlc2NyaXB0aW9uImluIE4pfHx2b2lkIDAhPT1XKCkuZGVzY3JpcHRpb24pKXt2YXIgZWU9e30scT1mdW5j''@;'; + put 'put ''dGlvbigpe3ZhciBrZT1hcmd1bWVudHMubGVuZ3RoPDF8fHZvaWQgMD09PWFyZ3VtZW50c1swXT92b2lkIDA6aWUoYXJndW1lbnRzWzBdKSxTZT1aKE4sdGhpcyk/bmV3IFcoa2UpOnZvaWQgMD09PWtlP1coKTpXKGtlKTtyZXR1cm4iIj09PWtlJiYoZWVbU2VdPSEwKSxTZX07WShxLFcpLHEu''@;'; + put 'put ''cHJvdG90eXBlPU4sTi5jb25zdHJ1Y3Rvcj1xO3ZhciBKPSJTeW1ib2wodGVzdCkiPT1TdHJpbmcoVygidGVzdCIpKSxzZT1NZShOLnRvU3RyaW5nKSxvZT1NZShOLnZhbHVlT2YpLGNlPS9eU3ltYm9sXCgoLiopXClbXildKyQvLGRlPU1lKCIiLnJlcGxhY2UpLHZlPU1lKCIiLnNsaWNlKTts''@;'; + put 'put ''ZShOLCJkZXNjcmlwdGlvbiIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIga2U9b2UodGhpcyksU2U9c2Uoa2UpO2lmKFUoZWUsa2UpKXJldHVybiIiO3ZhciBJZT1KP3ZlKFNlLDcsLTEpOmRlKFNlLGNlLCIkMSIpO3JldHVybiIiPT09SWU/dm9pZCAwOkllfX0pLG1lKHtn''@;'; + put 'put ''bG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOiEwfSx7U3ltYm9sOnF9KX19LDc4NzkwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoNDY2OTMpLEU9TCg0ODgxMSksTWU9TCg5MjEpLFU9TCg2ODgzNSksUT1MKDM5NDY2KSxaPVUoInN0cmluZy10by1zeW1ib2wtcmVnaXN0''@;'; + put 'put ''cnkiKSxpZT1VKCJzeW1ib2wtdG8tc3RyaW5nLXJlZ2lzdHJ5Iik7bWUoe3RhcmdldDoiU3ltYm9sIixzdGF0OiEwLGZvcmNlZDohUX0se2ZvcjpmdW5jdGlvbihsZSl7dmFyIFk9TWUobGUpO2lmKEUoWixZKSlyZXR1cm4gWltZXTt2YXIgVz1CKCJTeW1ib2wiKShZKTtyZXR1cm4gWltZXT1X''@;'; + put 'put ''LGllW1ddPVksV319KX0sMzM1ODM6KFhlLEplLEwpPT57TCgzOTIzNSkoIml0ZXJhdG9yIil9LDI2NTc6KFhlLEplLEwpPT57TCg0NDY0NiksTCg3ODc5MCksTCgyODU0MCksTCgxMzAwNiksTCg2MzE5OCl9LDI4NTQwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoNDg4MTEpLEU9''@;'; + put 'put ''TCg2OTc1KSxNZT1MKDk0Njc2KSxVPUwoNjg4MzUpLFE9TCgzOTQ2NiksWj1VKCJzeW1ib2wtdG8tc3RyaW5nLXJlZ2lzdHJ5Iik7bWUoe3RhcmdldDoiU3ltYm9sIixzdGF0OiEwLGZvcmNlZDohUX0se2tleUZvcjpmdW5jdGlvbihsZSl7aWYoIUUobGUpKXRocm93IFR5cGVFcnJvcihNZShs''@;'; + put 'put ''ZSkrIiBpcyBub3QgYSBzeW1ib2wiKTtpZihCKFosbGUpKXJldHVybiBaW2xlXX19KX0sMTkzMDg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBOLG1lPUwoNzA3MDUpLEI9TCg2NjEzKSxFPUwoNzQwNjkpLE1lPUwoNzE4MzIpLFU9TCg0Njg1NyksUT1MKDQyOTY5KSxaPUwoNzE0OTYp''@;'; + put 'put ''LGllPUwoNTUyMTgpLGxlPUwoNzI3KS5lbmZvcmNlLFk9TCg4MDgwNiksVz0hbWUuQWN0aXZlWE9iamVjdCYmIkFjdGl2ZVhPYmplY3QiaW4gbWUsZWU9ZnVuY3Rpb24odmUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB2ZSh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZv''@;'; + put 'put ''aWQgMCl9fSxxPVUoIldlYWtNYXAiLGVlLFEpO2lmKFkmJlcpe049US5nZXRDb25zdHJ1Y3RvcihlZSwiV2Vha01hcCIsITApLE1lLmVuYWJsZSgpO3ZhciBKPXEucHJvdG90eXBlLHNlPUIoSi5kZWxldGUpLG9lPUIoSi5oYXMpLGNlPUIoSi5nZXQpLGRlPUIoSi5zZXQpO0UoSix7ZGVsZXRl''@;'; + put 'put ''OmZ1bmN0aW9uKHZlKXtpZihaKHZlKSYmIWllKHZlKSl7dmFyIEFlPWxlKHRoaXMpO3JldHVybiBBZS5mcm96ZW58fChBZS5mcm96ZW49bmV3IE4pLHNlKHRoaXMsdmUpfHxBZS5mcm96ZW4uZGVsZXRlKHZlKX1yZXR1cm4gc2UodGhpcyx2ZSl9LGhhczpmdW5jdGlvbihBZSl7aWYoWihBZSkm''@;'; + put 'put ''JiFpZShBZSkpe3ZhciBrZT1sZSh0aGlzKTtyZXR1cm4ga2UuZnJvemVufHwoa2UuZnJvemVuPW5ldyBOKSxvZSh0aGlzLEFlKXx8a2UuZnJvemVuLmhhcyhBZSl9cmV0dXJuIG9lKHRoaXMsQWUpfSxnZXQ6ZnVuY3Rpb24oQWUpe2lmKFooQWUpJiYhaWUoQWUpKXt2YXIga2U9bGUodGhpcyk7''@;'; + put 'put ''cmV0dXJuIGtlLmZyb3plbnx8KGtlLmZyb3plbj1uZXcgTiksb2UodGhpcyxBZSk/Y2UodGhpcyxBZSk6a2UuZnJvemVuLmdldChBZSl9cmV0dXJuIGNlKHRoaXMsQWUpfSxzZXQ6ZnVuY3Rpb24oQWUsa2Upe2lmKFooQWUpJiYhaWUoQWUpKXt2YXIgU2U9bGUodGhpcyk7U2UuZnJvemVufHwo''@;'; + put 'put ''U2UuZnJvemVuPW5ldyBOKSxvZSh0aGlzLEFlKT9kZSh0aGlzLEFlLGtlKTpTZS5mcm96ZW4uc2V0KEFlLGtlKX1lbHNlIGRlKHRoaXMsQWUsa2UpO3JldHVybiB0aGlzfX0pfX0sNjUxMjU6KFhlLEplLEwpPT57TCgxOTMwOCl9LDk4MzczOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDQ2''@;'; + put 'put ''ODU3KSgiV2Vha1NldCIsZnVuY3Rpb24oRSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sTCg0Mjk2OSkpfSwzODE4MzooWGUsSmUsTCk9PntMKDk4MzczKX0sMjI0OTY6KFhlLEplLEwpPT57dmFyIG1lPUwo''@;'; + put 'put ''ODU2NDgpLEI9TCg3MDcwNSksRT1MKDU1MjYxKS5jbGVhcjttZSh7Z2xvYmFsOiEwLGJpbmQ6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6Qi5jbGVhckltbWVkaWF0ZSE9PUV9LHtjbGVhckltbWVkaWF0ZTpFfSl9LDU4NTk0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDcwNzA1KSxCPUwoMTkyMzEp''@;'; + put 'put ''LEU9TCgyOTkxMCksTWU9TCgzNzMxOSksVT1MKDE2MDE3KSxRPWZ1bmN0aW9uKGllKXtpZihpZSYmaWUuZm9yRWFjaCE9PU1lKXRyeXtVKGllLCJmb3JFYWNoIixNZSl9Y2F0Y2gobGUpe2llLmZvckVhY2g9TWV9fTtmb3IodmFyIFogaW4gQilCW1pdJiZRKG1lW1pdJiZtZVtaXS5wcm90b3R5''@;'; + put 'put ''cGUpO1EoRSl9LDU4MjcyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDcwNzA1KSxCPUwoMTkyMzEpLEU9TCgyOTkxMCksTWU9TCg1Nzk0MyksVT1MKDE2MDE3KSxRPUwoMjU0NiksWj1RKCJpdGVyYXRvciIpLGllPVEoInRvU3RyaW5nVGFnIiksbGU9TWUudmFsdWVzLFk9ZnVuY3Rpb24oTixlZSl7''@;'; + put 'put ''aWYoTil7aWYoTltaXSE9PWxlKXRyeXtVKE4sWixsZSl9Y2F0Y2goSil7TltaXT1sZX1pZihOW2llXXx8VShOLGllLGVlKSxCW2VlXSlmb3IodmFyIHEgaW4gTWUpaWYoTltxXSE9PU1lW3FdKXRyeXtVKE4scSxNZVtxXSl9Y2F0Y2goSil7TltxXT1NZVtxXX19fTtmb3IodmFyIFcgaW4gQilZ''@;'; + put 'put ''KG1lW1ddJiZtZVtXXS5wcm90b3R5cGUsVyk7WShFLCJET01Ub2tlbkxpc3QiKX0sOTE5NDU6KFhlLEplLEwpPT57TCgyMjQ5NiksTCgzNDQ0Myl9LDM0NDQzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoNzA3MDUpLEU9TCg1NTI2MSkuc2V0O21lKHtnbG9iYWw6ITAsYmluZDoh''@;'; + put 'put ''MCxlbnVtZXJhYmxlOiEwLGZvcmNlZDpCLnNldEltbWVkaWF0ZSE9PUV9LHtzZXRJbW1lZGlhdGU6RX0pfSw1NjY3MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDcwNzA1KSxFPUwoOTU4OTUpLnNldEludGVydmFsO21lKHtnbG9iYWw6ITAsYmluZDohMCxmb3JjZWQ6Qi5zZXRJ''@;'; + put 'put ''bnRlcnZhbCE9PUV9LHtzZXRJbnRlcnZhbDpFfSl9LDU5MTcyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoNzA3MDUpLEU9TCg5NTg5NSkuc2V0VGltZW91dDttZSh7Z2xvYmFsOiEwLGJpbmQ6ITAsZm9yY2VkOkIuc2V0VGltZW91dCE9PUV9LHtzZXRUaW1lb3V0OkV9KX0sNTgz''@;'; + put 'put ''MjQ6KFhlLEplLEwpPT57TCg1NjY3MCksTCg1OTE3Mil9LDQ2NzAwOihYZSxKZSxMKT0+e3ZhciBtZT17Ii4vYWYiOjI3MDg4LCIuL2FmLmpzIjoyNzA4OCwiLi9hciI6MTcwMzgsIi4vYXItZHoiOjUyNTAyLCIuL2FyLWR6LmpzIjo1MjUwMiwiLi9hci1rdyI6MzAxMjgsIi4vYXIta3cuanMi''@;'; + put 'put ''OjMwMTI4LCIuL2FyLWx5Ijo4NDUxOSwiLi9hci1seS5qcyI6ODQ1MTksIi4vYXItbWEiOjY1NDQzLCIuL2FyLW1hLmpzIjo2NTQ0MywiLi9hci1zYSI6MTc2NDIsIi4vYXItc2EuanMiOjE3NjQyLCIuL2FyLXRuIjo2ODU5MiwiLi9hci10bi5qcyI6Njg1OTIsIi4vYXIuanMiOjE3MDM4LCIu''@;'; + put 'put ''L2F6Ijo1MTIxMywiLi9hei5qcyI6NTEyMTMsIi4vYmUiOjY5MTkxLCIuL2JlLmpzIjo2OTE5MSwiLi9iZyI6OTAzMjIsIi4vYmcuanMiOjkwMzIyLCIuL2JtIjoyODA0MiwiLi9ibS5qcyI6MjgwNDIsIi4vYm4iOjU5NjIwLCIuL2JuLWJkIjo2NTkwMywiLi9ibi1iZC5qcyI6NjU5MDMsIi4v''@;'; + put 'put ''Ym4uanMiOjU5NjIwLCIuL2JvIjo2OTY0NSwiLi9iby5qcyI6Njk2NDUsIi4vYnIiOjQ1MDIwLCIuL2JyLmpzIjo0NTAyMCwiLi9icyI6NjQ3OTIsIi4vYnMuanMiOjY0NzkyLCIuL2NhIjo0Nzk4MCwiLi9jYS5qcyI6NDc5ODAsIi4vY3MiOjQ3MzIyLCIuL2NzLmpzIjo0NzMyMiwiLi9jdiI6''@;'; + put 'put ''OTAzNjUsIi4vY3YuanMiOjkwMzY1LCIuL2N5IjozMjA5MiwiLi9jeS5qcyI6MzIwOTIsIi4vZGEiOjc3Mzg3LCIuL2RhLmpzIjo3NzM4NywiLi9kZSI6NTQzMDcsIi4vZGUtYXQiOjI5NDU5LCIuL2RlLWF0LmpzIjoyOTQ1OSwiLi9kZS1jaCI6NjcyNDMsIi4vZGUtY2guanMiOjY3MjQzLCIu''@;'; + put 'put ''L2RlLmpzIjo1NDMwNywiLi9kdiI6Mzk2NTksIi4vZHYuanMiOjM5NjU5LCIuL2VsIjozNDYwLCIuL2VsLmpzIjozNDYwLCIuL2VuLWF1Ijo5NDM2OSwiLi9lbi1hdS5qcyI6OTQzNjksIi4vZW4tY2EiOjYwNTMwLCIuL2VuLWNhLmpzIjo2MDUzMCwiLi9lbi1nYiI6OTk5OCwiLi9lbi1nYi5q''@;'; + put 'put ''cyI6OTk5OCwiLi9lbi1pZSI6MTMzOTEsIi4vZW4taWUuanMiOjEzMzkxLCIuL2VuLWlsIjo3NTQxNCwiLi9lbi1pbC5qcyI6NzU0MTQsIi4vZW4taW4iOjE5NjE1LCIuL2VuLWluLmpzIjoxOTYxNSwiLi9lbi1ueiI6MjEyNDgsIi4vZW4tbnouanMiOjIxMjQ4LCIuL2VuLXNnIjoxMzc2Nywi''@;'; + put 'put ''Li9lbi1zZy5qcyI6MTM3NjcsIi4vZW8iOjg0NTMwLCIuL2VvLmpzIjo4NDUzMCwiLi9lcyI6ODY4NjYsIi4vZXMtZG8iOjE4OTQ0LCIuL2VzLWRvLmpzIjoxODk0NCwiLi9lcy1teCI6MjkxMTYsIi4vZXMtbXguanMiOjI5MTE2LCIuL2VzLXVzIjo4MzYwOSwiLi9lcy11cy5qcyI6ODM2MDks''@;'; + put 'put ''Ii4vZXMuanMiOjg2ODY2LCIuL2V0Ijo5NjcyNSwiLi9ldC5qcyI6OTY3MjUsIi4vZXUiOjY3OTMxLCIuL2V1LmpzIjo2NzkzMSwiLi9mYSI6NTY0MTcsIi4vZmEuanMiOjU2NDE3LCIuL2ZpIjoyMDk0NCwiLi9maS5qcyI6MjA5NDQsIi4vZmlsIjo2MTc2NiwiLi9maWwuanMiOjYxNzY2LCIu''@;'; + put 'put ''L2ZvIjo5NTg2NywiLi9mby5qcyI6OTU4NjcsIi4vZnIiOjE2MzYsIi4vZnItY2EiOjE2ODQ4LCIuL2ZyLWNhLmpzIjoxNjg0OCwiLi9mci1jaCI6Nzc3NzMsIi4vZnItY2guanMiOjc3NzczLCIuL2ZyLmpzIjoxNjM2LCIuL2Z5IjoxNDk0MCwiLi9meS5qcyI6MTQ5NDAsIi4vZ2EiOjkxNDAy''@;'; + put 'put ''LCIuL2dhLmpzIjo5MTQwMiwiLi9nZCI6NDY5MjQsIi4vZ2QuanMiOjQ2OTI0LCIuL2dsIjoxNjM5OCwiLi9nbC5qcyI6MTYzOTgsIi4vZ29tLWRldmEiOjcyNDU3LCIuL2dvbS1kZXZhLmpzIjo3MjQ1NywiLi9nb20tbGF0biI6NTI1NDUsIi4vZ29tLWxhdG4uanMiOjUyNTQ1LCIuL2d1Ijo0''@;'; + put 'put ''MjY0MSwiLi9ndS5qcyI6NDI2NDEsIi4vaGUiOjc1MzYsIi4vaGUuanMiOjc1MzYsIi4vaGkiOjk2MzM1LCIuL2hpLmpzIjo5NjMzNSwiLi9ociI6NzQ1OCwiLi9oci5qcyI6NzQ1OCwiLi9odSI6NTY1NDAsIi4vaHUuanMiOjU2NTQwLCIuL2h5LWFtIjo2NTI4MywiLi9oeS1hbS5qcyI6NjUy''@;'; + put 'put ''ODMsIi4vaWQiOjk4NzgwLCIuL2lkLmpzIjo5ODc4MCwiLi9pcyI6MTQyMDUsIi4vaXMuanMiOjE0MjA1LCIuL2l0IjozNDIxMSwiLi9pdC1jaCI6Mjk5ODUsIi4vaXQtY2guanMiOjI5OTg1LCIuL2l0LmpzIjozNDIxMSwiLi9qYSI6MzEwMDMsIi4vamEuanMiOjMxMDAzLCIuL2p2Ijo2MDQy''@;'; + put 'put ''MCwiLi9qdi5qcyI6NjA0MjAsIi4va2EiOjQwODUxLCIuL2thLmpzIjo0MDg1MSwiLi9rayI6MTYwNzQsIi4va2suanMiOjE2MDc0LCIuL2ttIjo1MzM0MywiLi9rbS5qcyI6NTMzNDMsIi4va24iOjQ0Nzk5LCIuL2tuLmpzIjo0NDc5OSwiLi9rbyI6MTM1NDksIi4va28uanMiOjEzNTQ5LCIu''@;'; + put 'put ''L2t1Ijo5MTAzNywiLi9rdS5qcyI6OTEwMzcsIi4va3kiOjkzMTI1LCIuL2t5LmpzIjo5MzEyNSwiLi9sYiI6Njk1ODYsIi4vbGIuanMiOjY5NTg2LCIuL2xvIjozMjM0OSwiLi9sby5qcyI6MzIzNDksIi4vbHQiOjkyNDAwLCIuL2x0LmpzIjo5MjQwMCwiLi9sdiI6Mzk5OTEsIi4vbHYuanMi''@;'; + put 'put ''OjM5OTkxLCIuL21lIjoyODQ3NywiLi9tZS5qcyI6Mjg0NzcsIi4vbWkiOjU1MTE4LCIuL21pLmpzIjo1NTExOCwiLi9tayI6MTU5NDMsIi4vbWsuanMiOjE1OTQzLCIuL21sIjoxMzg0OSwiLi9tbC5qcyI6MTM4NDksIi4vbW4iOjMxOTc3LCIuL21uLmpzIjozMTk3NywiLi9tciI6NjYxODQs''@;'; + put 'put ''Ii4vbXIuanMiOjY2MTg0LCIuL21zIjo3MDQ4NSwiLi9tcy1teSI6NjQ1MjQsIi4vbXMtbXkuanMiOjY0NTI0LCIuL21zLmpzIjo3MDQ4NSwiLi9tdCI6MzY2ODEsIi4vbXQuanMiOjM2NjgxLCIuL215Ijo1MjAyNCwiLi9teS5qcyI6NTIwMjQsIi4vbmIiOjQyNjg4LCIuL25iLmpzIjo0MjY4''@;'; + put 'put ''OCwiLi9uZSI6Njg5MTQsIi4vbmUuanMiOjY4OTE0LCIuL25sIjoxMTc1OCwiLi9ubC1iZSI6NTIyNzIsIi4vbmwtYmUuanMiOjUyMjcyLCIuL25sLmpzIjoxMTc1OCwiLi9ubiI6NDE1MTAsIi4vbm4uanMiOjQxNTEwLCIuL29jLWxuYyI6NTI3OTcsIi4vb2MtbG5jLmpzIjo1Mjc5NywiLi9w''@;'; + put 'put ''YS1pbiI6Mzc5NDQsIi4vcGEtaW4uanMiOjM3OTQ0LCIuL3BsIjoxNjA1LCIuL3BsLmpzIjoxNjA1LCIuL3B0Ijo1NDIyNSwiLi9wdC1iciI6NzM4NDAsIi4vcHQtYnIuanMiOjczODQwLCIuL3B0LmpzIjo1NDIyNSwiLi9ybyI6NDUxMjgsIi4vcm8uanMiOjQ1MTI4LCIuL3J1IjozNTEyNywi''@;'; + put 'put ''Li9ydS5qcyI6MzUxMjcsIi4vc2QiOjMyNTI1LCIuL3NkLmpzIjozMjUyNSwiLi9zZSI6NTk4OTMsIi4vc2UuanMiOjU5ODkzLCIuL3NpIjozMzEyMywiLi9zaS5qcyI6MzMxMjMsIi4vc2siOjU5NjM1LCIuL3NrLmpzIjo1OTYzNSwiLi9zbCI6NzgxMDYsIi4vc2wuanMiOjc4MTA2LCIuL3Nx''@;'; + put 'put ''Ijo4ODc5OSwiLi9zcS5qcyI6ODg3OTksIi4vc3IiOjk3OTQ5LCIuL3NyLWN5cmwiOjUyODcyLCIuL3NyLWN5cmwuanMiOjUyODcyLCIuL3NyLmpzIjo5Nzk0OSwiLi9zcyI6ODYxNjcsIi4vc3MuanMiOjg2MTY3LCIuL3N2IjozOTcxMywiLi9zdi5qcyI6Mzk3MTMsIi4vc3ciOjQxOTgyLCIu''@;'; + put 'put ''L3N3LmpzIjo0MTk4MiwiLi90YSI6MjI3MzIsIi4vdGEuanMiOjIyNzMyLCIuL3RlIjo0MzYzNiwiLi90ZS5qcyI6NDM2MzYsIi4vdGV0IjoyMTE1LCIuL3RldC5qcyI6MjExNSwiLi90ZyI6Njk4MDEsIi4vdGcuanMiOjY5ODAxLCIuL3RoIjoyODY4LCIuL3RoLmpzIjoyODY4LCIuL3RrIjoz''@;'; + put 'put ''MTMxMCwiLi90ay5qcyI6MzEzMTAsIi4vdGwtcGgiOjIyMzYwLCIuL3RsLXBoLmpzIjoyMjM2MCwiLi90bGgiOjY2NjQ1LCIuL3RsaC5qcyI6NjY2NDUsIi4vdHIiOjk4Mzc0LCIuL3RyLmpzIjo5ODM3NCwiLi90emwiOjI1NiwiLi90emwuanMiOjI1NiwiLi90em0iOjYxNTk1LCIuL3R6bS1s''@;'; + put 'put ''YXRuIjo2MTYzMSwiLi90em0tbGF0bi5qcyI6NjE2MzEsIi4vdHptLmpzIjo2MTU5NSwiLi91Zy1jbiI6NjA1MCwiLi91Zy1jbi5qcyI6NjA1MCwiLi91ayI6NjU2MTAsIi4vdWsuanMiOjY1NjEwLCIuL3VyIjo4NjA3NywiLi91ci5qcyI6ODYwNzcsIi4vdXoiOjIyODYyLCIuL3V6LWxhdG4i''@;'; + put 'put ''OjEyMjA3LCIuL3V6LWxhdG4uanMiOjEyMjA3LCIuL3V6LmpzIjoyMjg2MiwiLi92aSI6NDgwOTMsIi4vdmkuanMiOjQ4MDkzLCIuL3gtcHNldWRvIjoyNTU5MCwiLi94LXBzZXVkby5qcyI6MjU1OTAsIi4veW8iOjkwNTgsIi4veW8uanMiOjkwNTgsIi4vemgtY24iOjc3OTA4LCIuL3poLWNu''@;'; + put 'put ''LmpzIjo3NzkwOCwiLi96aC1oayI6ODg2NywiLi96aC1oay5qcyI6ODg2NywiLi96aC1tbyI6MzExMzMsIi4vemgtbW8uanMiOjMxMTMzLCIuL3poLXR3Ijo4MzI5MSwiLi96aC10dy5qcyI6ODMyOTF9O2Z1bmN0aW9uIEIoTWUpe3ZhciBVPUUoTWUpO3JldHVybiBMKFUpfWZ1bmN0aW9uIEUo''@;'; + put 'put ''TWUpe2lmKCFMLm8obWUsTWUpKXt2YXIgVT1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitNZSsiJyIpO3Rocm93IFUuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsVX1yZXR1cm4gbWVbTWVdfUIua2V5cz1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhtZSl9LEIucmVzb2x2''@;'; + put 'put ''ZT1FLFhlLmV4cG9ydHM9QixCLmlkPTQ2NzAwfSw3ODc3MzooKT0+e30sODA5NTA6KCk9Pnt9LDQ2NjAxOigpPT57fSw4NjIzOigpPT57fSw3NzQ4OigpPT57fSw4NTU2ODooKT0+e30sMTk1Mjc6KCk9Pnt9LDY5MzMxOigpPT57fSw1NjYxOTooKT0+e30sNzcxMDg6KCk9Pnt9LDUyMzYxOigp''@;'; + put 'put ''PT57fSw5NDYxNjooKT0+e30sMzUxNTk6KCk9Pnt9LDc1NzAxOigpPT57fSwxNzE1NjpYZT0+e2Z1bmN0aW9uIEplKG1lLEIsRSxNZSxVLFEsWil7dHJ5e3ZhciBpZT1tZVtRXShaKSxsZT1pZS52YWx1ZX1jYXRjaChZKXtyZXR1cm4gdm9pZCBFKFkpfWllLmRvbmU/QihsZSk6UHJvbWlzZS5y''@;'; + put 'put ''ZXNvbHZlKGxlKS50aGVuKE1lLFUpfVhlLmV4cG9ydHM9ZnVuY3Rpb24gTChtZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEI9dGhpcyxFPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oTWUsVSl7dmFyIFE9bWUuYXBwbHkoQixFKTtmdW5jdGlvbiBaKGxlKXtKZShRLE1l''@;'; + put 'put ''LFUsWixpZSwibmV4dCIsbGUpfWZ1bmN0aW9uIGllKGxlKXtKZShRLE1lLFUsWixpZSwidGhyb3ciLGxlKX1aKHZvaWQgMCl9KX19LFhlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxYZS5leHBvcnRzLmRlZmF1bHQ9WGUuZXhwb3J0c30sNDQ5NDY6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0''@;'; + put 'put ''cz1KU09OLnBhcnNlKCd7ImFlcy0xMjgtZWNiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MCwibW9kZSI6IkVDQiIsInR5cGUiOiJibG9jayJ9LCJhZXMtMTkyLWVjYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjAsIm1vZGUiOiJFQ0IiLCJ0eXBlIjoiYmxvY2si''@;'; + put 'put ''fSwiYWVzLTI1Ni1lY2IiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjowLCJtb2RlIjoiRUNCIiwidHlwZSI6ImJsb2NrIn0sImFlcy0xMjgtY2JjIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTE5Mi1j''@;'; + put 'put ''YmMiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNCQyIsInR5cGUiOiJibG9jayJ9LCJhZXMtMjU2LWNiYyI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczEyOCI6eyJjaXBoZXIiOiJB''@;'; + put 'put ''RVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczE5MiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczI1NiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2''@;'; + put 'put ''LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlcy0xMjgtY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJD''@;'; + put 'put ''RkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY2ZiOCI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0ZCOCIsInR5''@;'; + put 'put ''cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmI4Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkI4IiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjgiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQjgiLCJ0eXBlIjoi''@;'; + put 'put ''c3RyZWFtIn0sImFlcy0xMjgtY2ZiMSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0ZCMSIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmIxIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkIxIiwidHlwZSI6InN0cmVh''@;'; + put 'put ''bSJ9LCJhZXMtMjU2LWNmYjEiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQjEiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtb2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFl''@;'; + put 'put ''cy0xOTItb2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtb2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY3Ry''@;'; + put 'put ''Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItY3RyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY3RyIjp7ImNpcGhl''@;'; + put 'put ''ciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtZ2NtIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTIsIm1vZGUiOiJHQ00iLCJ0eXBlIjoiYXV0aCJ9LCJhZXMtMTkyLWdjbSI6eyJjaXBoZXIiOiJBRVMiLCJr''@;'; + put 'put ''ZXkiOjE5MiwiaXYiOjEyLCJtb2RlIjoiR0NNIiwidHlwZSI6ImF1dGgifSwiYWVzLTI1Ni1nY20iOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxMiwibW9kZSI6IkdDTSIsInR5cGUiOiJhdXRoIn19Jyl9LDc1MjA3OlhlPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9SlNPTi5w''@;'; + put 'put ''YXJzZSgneyJzaGEyMjRXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSwiUlNBLVNIQTIyNCI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoi''@;'; + put 'put ''MzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSwic2hhMjU2V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IjMwMzEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwNDIwIn0sIlJTQS1TSEEyNTYiOnsic2lnbiI6''@;'; + put 'put ''ImVjZHNhL3JzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IjMwMzEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwNDIwIn0sInNoYTM4NFdpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIzMDQxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAy''@;'; + put 'put ''MDIwNTAwMDQzMCJ9LCJSU0EtU0hBMzg0Ijp7InNpZ24iOiJlY2RzYS9yc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIzMDQxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDIwNTAwMDQzMCJ9LCJzaGE1MTJXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTUxMiIs''@;'; + put 'put ''ImlkIjoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTUxMiI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTEiOnsic2lnbiI6InJz''@;'; + put 'put ''YSIsImhhc2giOiJzaGExIiwiaWQiOiIzMDIxMzAwOTA2MDUyYjBlMDMwMjFhMDUwMDA0MTQifSwiZWNkc2Etd2l0aC1TSEExIjp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwic2hhMjU2Ijp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IiJ9LCJz''@;'; + put 'put ''aGEyMjQiOnsic2lnbiI6ImVjZHNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiIn0sInNoYTM4NCI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIifSwic2hhNTEyIjp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IiJ9LCJEU0EtU0hBIjp7InNpZ24i''@;'; + put 'put ''OiJkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiIn0sIkRTQS1TSEExIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiIn0sIkRTQSI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEEyMjQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEy''@;'; + put 'put ''MjQiLCJpZCI6IiJ9LCJEU0EtU0hBMjI0Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIifSwiRFNBLVdJVEgtU0hBMjU2Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIifSwiRFNBLVNIQTI1NiI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTI1NiIs''@;'; + put 'put ''ImlkIjoiIn0sIkRTQS1XSVRILVNIQTM4NCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiIn0sIkRTQS1TSEEzODQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEE1MTIiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGE1MTIi''@;'; + put 'put ''LCJpZCI6IiJ9LCJEU0EtU0hBNTEyIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIifSwiRFNBLVJJUEVNRDE2MCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InJtZDE2MCIsImlkIjoiIn0sInJpcGVtZDE2MFdpdGhSU0EiOnsic2lnbiI6InJzYSIsImhhc2giOiJybWQxNjAi''@;'; + put 'put ''LCJpZCI6IjMwMjEzMDA5MDYwNTJiMjQwMzAyMDEwNTAwMDQxNCJ9LCJSU0EtUklQRU1EMTYwIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoicm1kMTYwIiwiaWQiOiIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTQifSwibWQ1V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhh''@;'; + put 'put ''c2giOiJtZDUiLCJpZCI6IjMwMjAzMDBjMDYwODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMCJ9LCJSU0EtTUQ1Ijp7InNpZ24iOiJyc2EiLCJoYXNoIjoibWQ1IiwiaWQiOiIzMDIwMzAwYzA2MDgyYTg2NDg4NmY3MGQwMjA1MDUwMDA0MTAifX0nKX0sMTMwODpYZT0+eyJ1c2Ugc3RyaWN0IjtY''@;'; + put 'put ''ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siMS4zLjEzMi4wLjEwIjoic2VjcDI1NmsxIiwiMS4zLjEzMi4wLjMzIjoicDIyNCIsIjEuMi44NDAuMTAwNDUuMy4xLjEiOiJwMTkyIiwiMS4yLjg0MC4xMDA0NS4zLjEuNyI6InAyNTYiLCIxLjMuMTMyLjAuMzQiOiJwMzg0IiwiMS4zLjEzMi4wLjM1''@;'; + put 'put ''IjoicDUyMSJ9Jyl9LDI5Nzk5OlhlPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJtb2RwMSI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2Ix''@;'; + put 'put ''MzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzYTM2MjBmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAyIjp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZm''@;'; + put 'put ''YzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1''@;'; + put 'put ''Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNjUzODFmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHA1Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhh''@;'; + put 'put ''NjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZl''@;'; + put 'put ''NjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTIzNzMyN2ZmZmZmZmZmZmZmZmZmZmYifSwi''@;'; + put 'put ''bW9kcDE0Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZk''@;'; + put 'put ''NmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNh''@;'; + put 'put ''ZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1''@;'; + put 'put ''ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWNhYTY4ZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTUiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4''@;'; + put 'put ''Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2''@;'; + put 'put ''M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhm''@;'; + put 'put ''YjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVh''@;'; + put 'put ''ZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5''@;'; + put 'put ''M2FkMmNhZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTYiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQz''@;'; + put 'put ''MWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkx''@;'; + put 'put ''NjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2''@;'; + put 'put ''OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2''@;'; + put 'put ''MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4''@;'; + put 'put ''NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3''@;'; + put 'put ''NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDA2MzE5OWZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE3Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBk''@;'; + put 'put ''YzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1''@;'; + put 'put ''YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1''@;'; + put 'put ''ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4''@;'; + put 'put ''ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZl''@;'; + put 'put ''MjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdj''@;'; + put 'put ''NTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3MDI2YzFkNGRjYjI2''@;'; + put 'put ''MDI2NDZkZWM5NzUxZTc2M2RiYTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0MTMwMDFhZWIwNmE1M2VkOTAyN2Q4MzExNzk3MjdiMDg2NWE4OTE4ZGEzZWRiZWJjZjliMTRlZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZmYjhmNDAxMzc4Y2Qy''@;'; + put 'put ''YmY1OTgzY2EwMWM2NGI5MmVjZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZlZjZkNTVlNzAyZjQ2OTgwYzgyYjVhODQwMzE5MDBiMWM5ZTU5ZTdjOTdmYmVjN2U4ZjMyM2E5N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFjNTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3ZWJmNDhlMWQ4MTRj''@;'; + put 'put ''YzVlZDIwZjgwMzdlMGE3OTcxNWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1MGFhM2Q4YTFmYmZmMGViMTljY2IxYTMxM2Q1NWNkYTU2YzllYzJlZjI5NjMyMzg3ZmU4ZDc2ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJmMmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGNjNDAyNGZmZmZmZmZm''@;'; + put 'put ''ZmZmZmZmZmYifSwibW9kcDE4Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVm''@;'; + put 'put ''MTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4''@;'; + put 'put ''MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5''@;'; + put 'put ''N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFk''@;'; + put 'put ''MmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2''@;'; + put 'put ''OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5''@;'; + put 'put ''MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3MDI2YzFkNGRjYjI2MDI2NDZkZWM5NzUxZTc2M2RiYTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0MTMwMDFhZWIwNmE1M2VkOTAyN2Q4MzExNzk3MjdiMDg2''@;'; + put 'put ''NWE4OTE4ZGEzZWRiZWJjZjliMTRlZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZmYjhmNDAxMzc4Y2QyYmY1OTgzY2EwMWM2NGI5MmVjZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZlZjZkNTVlNzAyZjQ2OTgwYzgyYjVhODQwMzE5MDBiMWM5''@;'; + put 'put ''ZTU5ZTdjOTdmYmVjN2U4ZjMyM2E5N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFjNTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3ZWJmNDhlMWQ4MTRjYzVlZDIwZjgwMzdlMGE3OTcxNWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1MGFhM2Q4YTFmYmZmMGViMTljY2IxYTMxM2Q1NWNkYTU2''@;'; + put 'put ''YzllYzJlZjI5NjMyMzg3ZmU4ZDc2ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJmMmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGJlMTE1OTc0YTM5MjZmMTJmZWU1ZTQzODc3N2NiNmE5MzJkZjhjZDhiZWM0ZDA3M2I5MzFiYTNiYzgzMmI2OGQ5ZGQzMDA3NDFmYTdiZjhhZmM0N2VkMjU3NmY2OTM2''@;'; + put 'put ''YmE0MjQ2NjNhYWI2MzljNWFlNGY1NjgzNDIzYjQ3NDJiZjFjOTc4MjM4ZjE2Y2JlMzlkNjUyZGUzZmRiOGJlZmM4NDhhZDkyMjIyMmUwNGE0MDM3YzA3MTNlYjU3YTgxYTIzZjBjNzM0NzNmYzY0NmNlYTMwNmI0YmNiYzg4NjJmODM4NWRkZmE5ZDRiN2ZhMmMwODdlODc5NjgzMzAzZWQ1YmRk''@;'; + put 'put ''M2EwNjJiM2NmNWIzYTI3OGE2NmQyYTEzZjgzZjQ0ZjgyZGRmMzEwZWUwNzRhYjZhMzY0NTk3ZTg5OWEwMjU1ZGMxNjRmMzFjYzUwODQ2ODUxZGY5YWI0ODE5NWRlZDdlYTFiMWQ1MTBiZDdlZTc0ZDczZmFmMzZiYzMxZWNmYTI2ODM1OTA0NmY0ZWI4NzlmOTI0MDA5NDM4YjQ4MWM2Y2Q3ODg5''@;'; + put 'put ''YTAwMmVkNWVlMzgyYmM5MTkwZGE2ZmMwMjZlNDc5NTU4ZTQ0NzU2NzdlOWFhOWUzMDUwZTI3NjU2OTRkZmM4MWY1NmU4ODBiOTZlNzE2MGM5ODBkZDk4ZWRkM2RmZmZmZmZmZmZmZmZmZmZmZiJ9fScpfSwxODU5NzpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPXtpODoiNi41LjQifX0s''@;'; + put 'put ''NjM0ODA6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCdbWyI4NzQwIiwiXHU0M2YwXHU0YzMyXHU0NjAzXHU0NWE2XHU0NTc4XHV7MjcyNjd9XHU0ZDc3XHU0NWIzXHV7MjdjYjF9XHU0Y2UyXHV7MjdjYzV9XHUzYjk1XHU0NzM2XHU0NzQ0XHU0YzQ3XHU0YzQwXHV7''@;'; + put 'put ''MjQyYmZ9XHV7MjM2MTd9XHV7MjczNTJ9XHV7MjZlOGJ9XHV7MjcwZDJ9XHU0YzU3XHV7MmEzNTF9XHU0NzRmXHU0NWRhXHU0Yzg1XHV7MjdjNmN9XHU0ZDA3XHU0YWE0XHU0NmExXHV7MjZiMjN9XHU3MjI1XHV7MjVhNTR9XHV7MjFhNjN9XHV7MjNlMDZ9XHV7MjNmNjF9XHU2NjRkXHU1NmZi''@;'; + put 'put ''Il0sWyI4NzY3IiwiXHU3ZDk1XHU1OTFkXHV7MjhiYjl9XHUzZGY0XHU5NzM0XHV7MjdiZWZ9XHU1YmRiXHV7MjFkNWV9XHU1YWE0XHUzNjI1XHV7MjllYjB9XHU1YWQxXHU1YmI3XHU1Y2ZjXHU2NzZlXHU4NTkzXHV7Mjk5NDV9XHU3NDYxXHU3NDlkXHUzODc1XHV7MjFkNTN9XHV7MjM2OWV9''@;'; + put 'put ''XHV7MjYwMjF9XHUzZWVjIl0sWyI4N2ExIiwiXHV7MjU4ZGV9XHUzYWY1XHU3YWZjXHU5Zjk3XHV7MjQxNjF9XHV7Mjg5MGR9XHV7MjMxZWF9XHV7MjBhOGF9XHV7MjMyNWV9XHU0MzBhXHU4NDg0XHU5Zjk2XHU5NDJmXHU0OTMwXHU4NjEzXHU1ODk2XHU5NzRhXHU5MjE4XHU3OWQwXHU3YTMy''@;'; + put 'put ''XHU2NjYwXHU2YTI5XHU4ODlkXHU3NDRjXHU3YmM1XHU2NzgyXHU3YTJjXHU1MjRmXHU5MDQ2XHUzNGU2XHU3M2M0XHV7MjVkYjl9XHU3NGM2XHU5ZmM3XHU1N2IzXHU0OTJmXHU1NDRjXHU0MTMxXHV7MjM2OGV9XHU1ODE4XHU3YTcyXHV7MjdiNjV9XHU4YjhmXHU0NmFlXHV7MjZlODh9XHU0''@;'; + put 'put ''MTgxXHV7MjVkOTl9XHU3YmFlXHV7MjI0YmN9XHU5ZmM4XHV7MjI0YzF9XHV7MjI0Yzl9XHV7MjI0Y2N9XHU5ZmM5XHU4NTA0XHV7MjM1YmJ9XHU0MGI0XHU5ZmNhXHU0NGUxXHV7MmFkZmZ9XHU2MmMxXHU3MDZlXHU5ZmNiIl0sWyI4ODQwIiwiXHUzMWMwIiw0LCJcdXsyMDEwY31cdTMxYzVc''@;'; + put 'put ''dXsyMDBkMX1cdXsyMDBjZH1cdTMxYzZcdTMxYzdcdXsyMDBjYn1cdXsyMWZlOH1cdTMxYzhcdXsyMDBjYX1cdTMxYzlcdTMxY2FcdTMxY2JcdTMxY2NcdXsyMDEwZX1cdTMxY2RcdTMxY2VcdTAxMDBceGMxXHUwMWNkXHhjMFx1MDExMlx4YzlcdTAxMWFceGM4XHUwMTRjXHhkM1x1MDFkMVx4''@;'; + put 'put ''ZDJcdTBmZmZceGNhXHUwMzA0XHUxZWJlXHUwZmZmXHhjYVx1MDMwY1x1MWVjMFx4Y2FcdTAxMDFceGUxXHUwMWNlXHhlMFx1MDI1MVx1MDExM1x4ZTlcdTAxMWJceGU4XHUwMTJiXHhlZFx1MDFkMFx4ZWNcdTAxNGRceGYzXHUwMWQyXHhmMlx1MDE2Ylx4ZmFcdTAxZDRceGY5XHUwMWQ2XHUw''@;'; + put 'put ''MWQ4XHUwMWRhIl0sWyI4OGExIiwiXHUwMWRjXHhmY1x1MGZmZlx4ZWFcdTAzMDRcdTFlYmZcdTBmZmZceGVhXHUwMzBjXHUxZWMxXHhlYVx1MDI2MVx1MjNkYVx1MjNkYiJdLFsiODk0MCIsIlx1ezJhM2E5fVx1ezIxMTQ1fSJdLFsiODk0MyIsIlx1NjUwYSJdLFsiODk0NiIsIlx1NGUzZFx1''@;'; + put 'put ''NmVkZFx1OWQ0ZVx1OTFkZiJdLFsiODk0YyIsIlx1ezI3NzM1fVx1NjQ5MVx1NGYxYVx1NGYyOFx1NGZhOFx1NTE1Nlx1NTE3NFx1NTE5Y1x1NTFlNFx1NTJhMVx1NTJhOFx1NTMzYlx1NTM0ZVx1NTNkMVx1NTNkOFx1NTZlMlx1NThmMFx1NTkwNFx1NTkwN1x1NTkzMlx1NTkzNFx1NWI2Nlx1''@;'; + put 'put ''NWI5ZVx1NWI5Zlx1NWM5YVx1NWU4Nlx1NjAzYlx1NjU4OVx1NjdmZVx1NjgwNFx1Njg2NVx1NmQ0ZVx1NzBiY1x1NzUzNVx1N2VhNFx1N2VhY1x1N2ViYVx1N2VjN1x1N2VjZlx1N2VkZlx1N2YwNlx1N2YzN1x1ODI3YVx1ODJjZlx1ODM2Zlx1ODljNlx1OGJiZVx1OGJlMlx1OGY2Nlx1OGY2''@;'; + put 'put ''N1x1OGY2ZSJdLFsiODlhMSIsIlx1NzQxMVx1N2NmY1x1N2RjZFx1Njk0Nlx1N2FjOVx1NTIyNyJdLFsiODlhYiIsIlx1OTE4Y1x1NzhiOFx1OTE1ZVx1ODBiYyJdLFsiODliMCIsIlx1OGQwYlx1ODBmNlx1ezIwOWU3fSJdLFsiODliNSIsIlx1ODA5Zlx1OWVjN1x1NGNjZFx1OWRjOVx1OWUw''@;'; + put 'put ''Y1x1NGMzZVx1ezI5ZGY2fVx1ezI3MDBlfVx1OWUwYVx1ezJhMTMzfVx1MzVjMSJdLFsiODljMSIsIlx1NmU5YVx1ODIzZVx1NzUxOSJdLFsiODljNSIsIlx1NDkxMVx1OWE2Y1x1OWE4Zlx1OWY5OVx1Nzk4N1x1ezI4NDZjfVx1ezIxZGNhfVx1ezIwNWQwfVx1ezIyYWU2fVx1NGUyNFx1NGU4''@;'; + put 'put ''MVx1NGU4MFx1NGU4N1x1NGViZlx1NGVlYlx1NGYzN1x1MzQ0Y1x1NGZiZFx1M2U0OFx1NTAwM1x1NTA4OFx1MzQ3ZFx1MzQ5M1x1MzRhNVx1NTE4Nlx1NTkwNVx1NTFkYlx1NTFmY1x1NTIwNVx1NGU4OVx1NTI3OVx1NTI5MFx1NTMyN1x1MzVjN1x1NTNhOVx1MzU1MVx1NTNiMFx1MzU1M1x1''@;'; + put 'put ''NTNjMlx1NTQyM1x1MzU2ZFx1MzU3Mlx1MzY4MVx1NTQ5M1x1NTRhM1x1NTRiNFx1NTRiOVx1NTRkMFx1NTRlZlx1NTUxOFx1NTUyM1x1NTUyOFx1MzU5OFx1NTUzZlx1MzVhNVx1MzViZlx1NTVkN1x1MzVjNSJdLFsiOGE0MCIsIlx1ezI3ZDg0fVx1NTUyNSJdLFsiOGE0MyIsIlx1ezIwYzQy''@;'; + put 'put ''fVx1ezIwZDE1fVx1ezI1MTJifVx1NTU5MFx1ezIyY2M2fVx1MzllY1x1ezIwMzQxfVx1OGU0Nlx1ezI0ZGI4fVx1ezI5NGU1fVx1NDA1M1x1ezI4MGJlfVx1Nzc3YVx1ezIyYzM4fVx1M2EzNFx1NDdkNVx1ezI4MTVkfVx1ezI2OWYyfVx1ezI0ZGVhfVx1NjRkZFx1ezIwZDdjfVx1ezIwZmI0''@;'; + put 'put ''fVx1ezIwY2Q1fVx1ezIxMGY0fVx1NjQ4ZFx1OGU3ZVx1ezIwZTk2fVx1ezIwYzBifVx1ezIwZjY0fVx1ezIyY2E5fVx1ezI4MjU2fVx1ezI0NGQzfSJdLFsiOGE2NCIsIlx1ezIwZDQ2fVx1ezI5YTRkfVx1ezI4MGU5fVx1NDdmNFx1ezI0ZWE3fVx1ezIyY2MyfVx1OWFiMlx1M2E2N1x1ezI5''@;'; + put 'put ''NWY0fVx1M2ZlZFx1MzUwNlx1ezI1MmM3fVx1ezI5N2Q0fVx1ezI3OGM4fVx1ezIyZDQ0fVx1OWQ2ZVx1OTgxNSJdLFsiOGE3NiIsIlx1NDNkOVx1ezI2MGE1fVx1NjRiNFx1NTRlM1x1ezIyZDRjfVx1ezIyYmNhfVx1ezIxMDc3fVx1MzlmYlx1ezIxMDZmfSJdLFsiOGFhMSIsIlx1ezI2NmRh''@;'; + put 'put ''fVx1ezI2NzE2fVx1ezI3OWEwfVx1NjRlYVx1ezI1MDUyfVx1ezIwYzQzfVx1OGU2OFx1ezIyMWExfVx1ezI4YjRjfVx1ezIwNzMxfSJdLFsiOGFhYyIsIlx1NDgwYlx1ezIwMWE5fVx1M2ZmYVx1NTg3M1x1ezIyZDhkfSJdLFsiOGFiMiIsIlx1ezI0NWM4fVx1ezIwNGZjfVx1ezI2MDk3fVx1''@;'; + put 'put ''ezIwZjRjfVx1ezIwZDk2fVx1NTU3OVx1NDBiYlx1NDNiYSJdLFsiOGFiYiIsIlx1NGFiNFx1ezIyYTY2fVx1ezIxMDlkfVx1ODFhYVx1OThmNVx1ezIwZDljfVx1NjM3OVx1MzlmZVx1ezIyNzc1fVx1OGRjMFx1NTZhMVx1NjQ3Y1x1M2U0MyJdLFsiOGFjOSIsIlx1ezJhNjAxfVx1ezIwZTA5''@;'; + put 'put ''fVx1ezIyYWNmfVx1ezIyY2M5fSJdLFsiOGFjZSIsIlx1ezIxMGM4fVx1ezIzOWMyfVx1Mzk5Mlx1M2EwNlx1ezI4MjlifVx1MzU3OFx1ezI1ZTQ5fVx1ezIyMGM3fVx1NTY1Mlx1ezIwZjMxfVx1ezIyY2IyfVx1ezI5NzIwfVx1MzRiY1x1NmMzZFx1ezI0ZTNifSJdLFsiOGFkZiIsIlx1ezI3''@;'; + put 'put ''NTc0fVx1ezIyZThifVx1ezIyMjA4fVx1ezJhNjVifVx1ezI4Y2NkfVx1ezIwZTdhfVx1ezIwYzM0fVx1ezI2ODFjfVx1N2Y5M1x1ezIxMGNmfVx1ezIyODAzfVx1ezIyOTM5fVx1MzVmYlx1ezI1MWUzfVx1ezIwZThjfVx1ezIwZjhkfVx1ezIwZWFhfVx1M2Y5M1x1ezIwZjMwfVx1ezIwZDQ3''@;'; + put 'put ''fVx1ezIxMTRmfVx1ezIwZTRjfSJdLFsiOGFmNiIsIlx1ezIwZWFifVx1ezIwYmE5fVx1ezIwZDQ4fVx1ezIxMGMwfVx1ezIxMTNkfVx1M2ZmOVx1ezIyNjk2fVx1NjQzMlx1ezIwZmFkfSJdLFsiOGI0MCIsIlx1ezIzM2Y0fVx1ezI3NjM5fVx1ezIyYmNlfVx1ezIwZDdlfVx1ezIwZDdmfVx1''@;'; + put 'put ''ezIyYzUxfVx1ezIyYzU1fVx1M2ExOFx1ezIwZTk4fVx1ezIxMGM3fVx1ezIwZjJlfVx1ezJhNjMyfVx1ezI2YjUwfVx1ezI4Y2QyfVx1ezI4ZDk5fVx1ezI4Y2NhfVx1OTVhYVx1NTRjY1x1ODJjNFx1NTViOSJdLFsiOGI1NSIsIlx1ezI5ZWMzfVx1OWMyNlx1OWFiNlx1ezI3NzVlfVx1ezIy''@;'; + put 'put ''ZGVlfVx1NzE0MFx1ODE2ZFx1ODBlY1x1NWMxY1x1ezI2NTcyfVx1ODEzNFx1Mzc5N1x1NTM1Zlx1ezI4MGJkfVx1OTFiNlx1ezIwZWZhfVx1ezIwZTBmfVx1ezIwZTc3fVx1ezIwZWZifVx1MzVkZFx1ezI0ZGVifVx1MzYwOVx1ezIwY2Q2fVx1NTZhZlx1ezIyN2I1fVx1ezIxMGM5fVx1ezIw''@;'; + put 'put ''ZTEwfVx1ezIwZTc4fVx1ezIxMDc4fVx1ezIxMTQ4fVx1ezI4MjA3fVx1ezIxNDU1fVx1ezIwZTc5fVx1ezI0ZTUwfVx1ezIyZGE0fVx1NWE1NFx1ezIxMDFkfVx1ezIxMDFlfVx1ezIxMGY1fVx1ezIxMGY2fVx1NTc5Y1x1ezIwZTExfSJdLFsiOGJhMSIsIlx1ezI3Njk0fVx1ezI4MmNkfVx1''@;'; + put 'put ''ezIwZmI1fVx1ezIwZTdifVx1ezI1MTdlfVx1MzcwM1x1ezIwZmI2fVx1ezIxMTgwfVx1ezI1MmQ4fVx1ezJhMmJkfVx1ezI0OWRhfVx1ezIxODNhfVx1ezI0MTc3fVx1ezI4MjdjfVx1NTg5OVx1NTI2OFx1MzYxYVx1ezI1NzNkfVx1N2JiMlx1NWI2OFx1NDgwMFx1NGIyY1x1OWYyN1x1NDll''@;'; + put 'put ''N1x1OWMxZlx1OWI4ZFx1ezI1Yjc0fVx1ezIzMTNkfVx1NTVmYlx1MzVmMlx1NTY4OVx1NGUyOFx1NTkwMlx1ezIxYmMxfVx1ezJmODc4fVx1OTc1MVx1ezIwMDg2fVx1NGU1Ylx1NGViYlx1MzUzZVx1NWMyM1x1NWY1MVx1NWZjNFx1MzhmYVx1NjI0Y1x1NjUzNVx1NmI3YVx1NmMzNVx1NmMz''@;'; + put 'put ''YVx1NzA2Y1x1NzIyYlx1NGUyY1x1NzJhZFx1ezI0OGU5fVx1N2Y1Mlx1NzkzYlx1N2NmOVx1N2Y1M1x1ezI2MjZhfVx1MzRjMSJdLFsiOGJkZSIsIlx1ezI2MzRifVx1ODAwMlx1ODA4MFx1ezI2NjEyfVx1ezI2OTUxfVx1NTM1ZFx1ODg2NFx1ODljMVx1ezI3OGIyfVx1OGJhMFx1OGQxZFx1''@;'; + put 'put ''OTQ4NVx1OTU3OFx1OTU3Zlx1OTVlOFx1ezI4ZTBmfVx1OTdlNlx1OTg3NVx1OThjZVx1OThkZVx1OTk2M1x1ezI5ODEwfVx1OWM3Y1x1OWUxZlx1OWVjNFx1NmI2Zlx1ZjkwN1x1NGUzN1x1ezIwMDg3fVx1OTYxZFx1NjIzN1x1OTRhMiJdLFsiOGM0MCIsIlx1NTAzYlx1NmRmZVx1ezI5Yzcz''@;'; + put 'put ''fVx1OWZhNlx1M2RjOVx1ODg4Zlx1ezI0MTRlfVx1NzA3N1x1NWNmNVx1NGIyMFx1ezI1MWNkfVx1MzU1OVx1ezI1ZDMwfVx1NjEyMlx1ezI4YTMyfVx1OGZhN1x1OTFmNlx1NzE5MVx1NjcxOVx1NzNiYVx1ezIzMjgxfVx1ezJhMTA3fVx1M2M4Ylx1ezIxOTgwfVx1NGIxMFx1NzhlNFx1NzQw''@;'; + put 'put ''Mlx1NTFhZVx1ezI4NzBmfVx1NDAwOVx1NmE2M1x1ezJhMmJhfVx1NDIyM1x1ODYwZlx1ezIwYTZmfVx1N2EyYVx1ezI5OTQ3fVx1ezI4YWVhfVx1OTc1NVx1NzA0ZFx1NTMyNFx1ezIyMDdlfVx1OTNmNFx1NzZkOVx1ezI4OWUzfVx1OWZhN1x1NzdkZFx1NGVhM1x1NGZmMFx1NTBiY1x1NGUy''@;'; + put 'put ''Zlx1NGYxN1x1OWZhOFx1NTQzNFx1N2Q4Ylx1NTg5Mlx1NThkMFx1ezIxZGI2fVx1NWU5Mlx1NWU5OVx1NWZjMlx1ezIyNzEyfVx1NjU4YiJdLFsiOGNhMSIsIlx1ezIzM2Y5fVx1NjkxOVx1NmE0M1x1ezIzYzYzfVx1NmNmZiJdLFsiOGNhNyIsIlx1NzIwMFx1ezI0NTA1fVx1NzM4Y1x1M2Vk''@;'; + put 'put ''Ylx1ezI0YTEzfVx1NWIxNVx1NzRiOVx1OGI4M1x1ezI1Y2E0fVx1ezI1Njk1fVx1N2E5M1x1N2JlY1x1N2NjM1x1N2U2Y1x1ODJmOFx1ODU5N1x1OWZhOVx1ODg5MFx1OWZhYVx1OGViOVx1OWZhYlx1OGZjZlx1ODU1Zlx1OTllMFx1OTIyMVx1OWZhY1x1ezI4ZGI5fVx1ezIxNDNmfVx1NDA3''@;'; + put 'put ''MVx1NDJhMlx1NWExYSJdLFsiOGNjOSIsIlx1OTg2OFx1Njc2Ylx1NDI3Nlx1NTczZCJdLFsiOGNjZSIsIlx1ODVkNlx1ezI0OTdifVx1ODJiZlx1ezI3MTBkfVx1NGM4MVx1ezI2ZDc0fVx1NWQ3Ylx1ezI2YjE1fVx1ezI2ZmJlfVx1OWZhZFx1OWZhZVx1NWI5Nlx1OWZhZlx1NjZlN1x1N2U1''@;'; + put 'put ''Ylx1NmU1N1x1NzljYVx1M2Q4OFx1NDRjM1x1ezIzMjU2fVx1ezIyNzk2fVx1NDM5YVx1NDUzNiJdLFsiOGNlNiIsIlx1NWNkNVx1ezIzYjFhfVx1OGFmOVx1NWM3OFx1M2QxMlx1ezIzNTUxfVx1NWQ3OFx1OWZiMlx1NzE1N1x1NDU1OFx1ezI0MGVjfVx1ezIxZTIzfVx1NGM3N1x1Mzk3OFx1''@;'; + put 'put ''MzQ0YVx1ezIwMWE0fVx1ezI2YzQxfVx1OGFjY1x1NGZiNFx1ezIwMjM5fVx1NTliZlx1ODE2Y1x1OTg1Nlx1ezI5OGZhfVx1NWYzYiJdLFsiOGQ0MCIsIlx1ezIwYjlmfSJdLFsiOGQ0MiIsIlx1ezIyMWMxfVx1ezI4OTZkfVx1NDEwMlx1NDZiYlx1ezI5MDc5fVx1M2YwN1x1OWZiM1x1ezJh''@;'; + put 'put ''MWI1fVx1NDBmOFx1MzdkNlx1NDZmN1x1ezI2YzQ2fVx1NDE3Y1x1ezI4NmIyfVx1ezI3M2ZmfVx1NDU2ZFx1MzhkNFx1ezI1NDlhfVx1NDU2MVx1NDUxYlx1NGQ4OVx1NGM3Ylx1NGQ3Nlx1NDVlYVx1M2ZjOFx1ezI0YjBmfVx1MzY2MVx1NDRkZVx1NDRiZFx1NDFlZFx1NWQzZVx1NWQ0OFx1''@;'; + put 'put ''NWQ1Nlx1M2RmY1x1MzgwZlx1NWRhNFx1NWRiOVx1MzgyMFx1MzgzOFx1NWU0Mlx1NWViZFx1NWYyNVx1NWY4M1x1MzkwOFx1MzkxNFx1MzkzZlx1Mzk0ZFx1NjBkN1x1NjEzZFx1NWNlNVx1Mzk4OVx1NjFiN1x1NjFiOVx1NjFjZlx1MzliOFx1NjIyY1x1NjI5MFx1NjJlNVx1NjMxOFx1Mzlm''@;'; + put 'put ''OFx1NTZiMSJdLFsiOGRhMSIsIlx1M2EwM1x1NjNlMlx1NjNmYlx1NjQwN1x1NjQ1YVx1M2E0Ylx1NjRjMFx1NWQxNVx1NTYyMVx1OWY5Zlx1M2E5N1x1NjU4Nlx1M2FiZFx1NjVmZlx1NjY1M1x1M2FmMlx1NjY5Mlx1M2IyMlx1NjcxNlx1M2I0Mlx1NjdhNFx1NjgwMFx1M2I1OFx1Njg0YVx1''@;'; + put 'put ''Njg4NFx1M2I3Mlx1M2I3MVx1M2I3Ylx1NjkwOVx1Njk0M1x1NzI1Y1x1Njk2NFx1Njk5Zlx1Njk4NVx1M2JiY1x1NjlkNlx1M2JkZFx1NmE2NVx1NmE3NFx1NmE3MVx1NmE4Mlx1M2JlY1x1NmE5OVx1M2JmMlx1NmFhYlx1NmFiNVx1NmFkNFx1NmFmNlx1NmI4MVx1NmJjMVx1NmJlYVx1NmM3''@;'; + put 'put ''NVx1NmNhYVx1M2NjYlx1NmQwMlx1NmQwNlx1NmQyNlx1NmQ4MVx1M2NlZlx1NmRhNFx1NmRiMVx1NmUxNVx1NmUxOFx1NmUyOVx1NmU4Nlx1ezI4OWMwfVx1NmViYlx1NmVlMlx1NmVkYVx1OWY3Zlx1NmVlOFx1NmVlOVx1NmYyNFx1NmYzNFx1M2Q0Nlx1ezIzZjQxfVx1NmY4MVx1NmZiZVx1''@;'; + put 'put ''M2Q2YVx1M2Q3NVx1NzFiN1x1NWM5OVx1M2Q4YVx1NzAyY1x1M2Q5MVx1NzA1MFx1NzA1NFx1NzA2Zlx1NzA3Zlx1NzA4OVx1ezIwMzI1fVx1NDNjMVx1MzVmMVx1ezIwZWQ4fSJdLFsiOGU0MCIsIlx1ezIzZWQ3fVx1NTdiZVx1ezI2ZWQzfVx1NzEzZVx1ezI1N2UwfVx1MzY0ZVx1NjlhMlx1''@;'; + put 'put ''ezI4YmU5fVx1NWI3NFx1N2E0OVx1ezI1OGUxfVx1ezI5NGQ5fVx1N2E2NVx1N2E3ZFx1ezI1OWFjfVx1N2FiYlx1N2FiMFx1N2FjMlx1N2FjM1x1NzFkMVx1ezI2NDhkfVx1NDFjYVx1N2FkYVx1N2FkZFx1N2FlYVx1NDFlZlx1NTRiMlx1ezI1YzAxfVx1N2IwYlx1N2I1NVx1N2IyOVx1ezI1''@;'; + put 'put ''MzBlfVx1ezI1Y2ZlfVx1N2JhMlx1N2I2Zlx1ODM5Y1x1ezI1YmI0fVx1ezI2YzdmfVx1N2JkMFx1ODQyMVx1N2I5Mlx1N2JiOFx1ezI1ZDIwfVx1M2RhZFx1ezI1YzY1fVx1ODQ5Mlx1N2JmYVx1N2MwNlx1N2MzNVx1ezI1Y2MxfVx1N2M0NFx1N2M4M1x1ezI0ODgyfVx1N2NhNlx1NjY3ZFx1''@;'; + put 'put ''ezI0NTc4fVx1N2NjOVx1N2NjN1x1N2NlNlx1N2M3NFx1N2NmM1x1N2NmNVx1N2NjZSJdLFsiOGVhMSIsIlx1N2U2N1x1NDUxZFx1ezI2ZTQ0fVx1N2Q1ZFx1ezI2ZWQ2fVx1NzQ4ZFx1N2Q4OVx1N2RhYlx1NzEzNVx1N2RiM1x1N2RkMlx1ezI0MDU3fVx1ezI2MDI5fVx1N2RlNFx1M2QxM1x1''@;'; + put 'put ''N2RmNVx1ezIxN2Y5fVx1N2RlNVx1ezI4MzZkfVx1N2UxZFx1ezI2MTIxfVx1ezI2MTVhfVx1N2U2ZVx1N2U5Mlx1NDMyYlx1OTQ2Y1x1N2UyN1x1N2Y0MFx1N2Y0MVx1N2Y0N1x1NzkzNlx1ezI2MmQwfVx1OTllMVx1N2Y5N1x1ezI2MzUxfVx1N2ZhM1x1ezIxNjYxfVx1ezIwMDY4fVx1NDU1''@;'; + put 'put ''Y1x1ezIzNzY2fVx1NDUwM1x1ezI4MzNhfVx1N2ZmYVx1ezI2NDg5fVx1ODAwNVx1ODAwOFx1ODAxZFx1ODAyOFx1ODAyZlx1ezJhMDg3fVx1ezI2Y2MzfVx1ODAzYlx1ODAzY1x1ODA2MVx1ezIyNzE0fVx1NDk4OVx1ezI2NjI2fVx1ezIzZGUzfVx1ezI2NmU4fVx1NjcyNVx1ODBhN1x1ezI4''@;'; + put 'put ''YTQ4fVx1ODEwN1x1ODExYVx1NThiMFx1ezIyNmY2fVx1NmM3Zlx1ezI2NDk4fVx1ezI0ZmI4fVx1NjRlN1x1ezIxNDhhfVx1ODIxOFx1ezIxODVlfVx1NmE1M1x1ezI0YTY1fVx1ezI0YTk1fVx1NDQ3YVx1ODIyOVx1ezIwYjBkfVx1ezI2YTUyfVx1ezIzZDdlfVx1NGZmOVx1ezIxNGZkfVx1''@;'; + put 'put ''ODRlMlx1ODM2Mlx1ezI2YjBhfVx1ezI0OWE3fVx1ezIzNTMwfVx1ezIxNzczfVx1ezIzZGY4fVx1ODJhYVx1NjkxYlx1ezJmOTk0fVx1NDFkYiJdLFsiOGY0MCIsIlx1ODU0Ylx1ODJkMFx1ODMxYVx1ezIwZTE2fVx1ezIxN2I0fVx1MzZjMVx1ezIzMTdkfVx1ezIzNTVhfVx1ODI3Ylx1ODJl''@;'; + put 'put ''Mlx1ODMxOFx1ezIzZThifVx1ezI2ZGEzfVx1ezI2YjA1fVx1ezI2Yjk3fVx1ezIzNWNlfVx1M2RiZlx1ODMxZFx1NTVlY1x1ODM4NVx1NDUwYlx1ezI2ZGE1fVx1ODNhY1x1ODNjMVx1ODNkM1x1MzQ3ZVx1ezI2ZWQ0fVx1NmE1N1x1ODU1YVx1MzQ5Nlx1ezI2ZTQyfVx1ezIyZWVmfVx1ODQ1''@;'; + put 'put ''OFx1ezI1YmU0fVx1ODQ3MVx1M2RkM1x1NDRlNFx1NmFhN1x1ODQ0YVx1ezIzY2I1fVx1Nzk1OFx1ODRhOFx1ezI2Yjk2fVx1ezI2ZTc3fVx1ezI2ZTQzfVx1ODRkZVx1ODQwZlx1ODM5MVx1NDRhMFx1ODQ5M1x1ODRlNFx1ezI1YzkxfVx1NDI0MFx1ezI1Y2MwfVx1NDU0M1x1ODUzNFx1NWFm''@;'; + put 'put ''Mlx1ezI2ZTk5fVx1NDUyN1x1ODU3M1x1NDUxNlx1NjdiZlx1ODYxNiJdLFsiOGZhMSIsIlx1ezI4NjI1fVx1ezI4NjNifVx1ODVjMVx1ezI3MDg4fVx1ODYwMlx1ezIxNTgyfVx1ezI3MGNkfVx1ezJmOWIyfVx1NDU2YVx1ODYyOFx1MzY0OFx1ezIxOGEyfVx1NTNmN1x1ezI3MzlhfVx1ODY3''@;'; + put 'put ''ZVx1ODc3MVx1ezJhMGY4fVx1ODdlZVx1ezIyYzI3fVx1ODdiMVx1ODdkYVx1ODgwZlx1NTY2MVx1ODY2Y1x1Njg1Nlx1NDYwZlx1ODg0NVx1ODg0Nlx1ezI3NWUwfVx1ezIzZGI5fVx1ezI3NWU0fVx1ODg1ZVx1ODg5Y1x1NDY1Ylx1ODhiNFx1ODhiNVx1NjNjMVx1ODhjNVx1Nzc3N1x1ezI3''@;'; + put 'put ''NzBmfVx1ODk4N1x1ODk4YVx1ODlhNlx1ODlhOVx1ODlhN1x1ODliY1x1ezI4YTI1fVx1ODllN1x1ezI3OTI0fVx1ezI3YWJkfVx1OGE5Y1x1Nzc5M1x1OTFmZVx1OGE5MFx1ezI3YTU5fVx1N2FlOVx1ezI3YjNhfVx1ezIzZjhmfVx1NDcxM1x1ezI3YjM4fVx1NzE3Y1x1OGIwY1x1OGIxZlx1''@;'; + put 'put ''ezI1NDMwfVx1ezI1NTY1fVx1OGIzZlx1OGI0Y1x1OGI0ZFx1OGFhOVx1ezI0YTdhfVx1OGI5MFx1OGI5Ylx1OGFhZlx1ezIxNmRmfVx1NDYxNVx1ODg0Zlx1OGM5Ylx1ezI3ZDU0fVx1ezI3ZDhmfVx1ezJmOWQ0fVx1MzcyNVx1ezI3ZDUzfVx1OGNkNlx1ezI3ZDk4fVx1ezI3ZGJkfVx1OGQx''@;'; + put 'put ''Mlx1OGQwM1x1ezIxOTEwfVx1OGNkYlx1NzA1Y1x1OGQxMVx1ezI0Y2M5fVx1M2VkMFx1OGQ3NyJdLFsiOTA0MCIsIlx1OGRhOVx1ezI4MDAyfVx1ezIxMDE0fVx1ezI0OThhfVx1M2I3Y1x1ezI4MWJjfVx1ezI3MTBjfVx1N2FlN1x1OGVhZFx1OGViNlx1OGVjM1x1OTJkNFx1OGYxOVx1OGYy''@;'; + put 'put ''ZFx1ezI4MzY1fVx1ezI4NDEyfVx1OGZhNVx1OTMwM1x1ezJhMjlmfVx1ezIwYTUwfVx1OGZiM1x1NDkyYVx1ezI4OWRlfVx1ezI4NTNkfVx1ezIzZGJifVx1NWVmOFx1ezIzMjYyfVx1OGZmOVx1ezJhMDE0fVx1ezI4NmJjfVx1ezI4NTAxfVx1ezIyMzI1fVx1Mzk4MFx1ezI2ZWQ3fVx1OTAz''@;'; + put 'put ''N1x1ezI4NTNjfVx1ezI3YWJlfVx1OTA2MVx1ezI4NTZjfVx1ezI4NjBifVx1OTBhOFx1ezI4NzEzfVx1OTBjNFx1ezI4NmU2fVx1OTBhZVx1OTBmZFx1OTE2N1x1M2FmMFx1OTFhOVx1OTFjNFx1N2NhY1x1ezI4OTMzfVx1ezIxZTg5fVx1OTIwZVx1NmM5Zlx1OTI0MVx1OTI2Mlx1ezI1NWI5''@;'; + put 'put ''fVx1OTJiOVx1ezI4YWM2fVx1ezIzYzlifVx1ezI4YjBjfVx1ezI1NWRifSJdLFsiOTBhMSIsIlx1ezIwZDMxfVx1OTMyY1x1OTM2Ylx1ezI4YWUxfVx1ezI4YmVifVx1NzA4Zlx1NWFjM1x1ezI4YWUyfVx1ezI4YWU1fVx1NDk2NVx1OTI0NFx1ezI4YmVjfVx1ezI4YzM5fVx1ezI4YmZmfVx1''@;'; + put 'put ''OTM3M1x1OTQ1Ylx1OGViY1x1OTU4NVx1OTVhNlx1OTQyNlx1OTVhMFx1NmZmNlx1NDJiOVx1ezIyNjdhfVx1ezI4NmQ4fVx1ezIxMjdjfVx1ezIzZTJlfVx1NDlkZlx1NmMxY1x1OTY3Ylx1OTY5Nlx1NDE2Y1x1OTZhM1x1ezI2ZWQ1fVx1NjFkYVx1OTZiNlx1NzhmNVx1ezI4YWUwfVx1OTZi''@;'; + put 'put ''ZFx1NTNjY1x1NDlhMVx1ezI2Y2I4fVx1ezIwMjc0fVx1ezI2NDEwfVx1ezI5MGFmfVx1ezI5MGU1fVx1ezI0YWQxfVx1ezIxOTE1fVx1ezIzMzBhfVx1OTczMVx1ODY0Mlx1OTczNlx1NGEwZlx1NDUzZFx1NDU4NVx1ezI0YWU5fVx1NzA3NVx1NWI0MVx1OTcxYlx1OTc1Y1x1ezI5MWQ1fVx1''@;'; + put 'put ''OTc1N1x1NWI0YVx1ezI5MWVifVx1OTc1Zlx1OTQyNVx1NTBkMFx1ezIzMGI3fVx1ezIzMGJjfVx1OTc4OVx1OTc5Zlx1OTdiMVx1OTdiZVx1OTdjMFx1OTdkMlx1OTdlMFx1ezI1NDZjfVx1OTdlZVx1NzQxY1x1ezI5NDMzfVx1OTdmZlx1OTdmNVx1ezI5NDFkfVx1ezI3OTdhfVx1NGFkMVx1''@;'; + put 'put ''OTgzNFx1OTgzM1x1OTg0Ylx1OTg2Nlx1M2IwZVx1ezI3MTc1fVx1M2Q1MVx1ezIwNjMwfVx1ezI0MTVjfSJdLFsiOTE0MCIsIlx1ezI1NzA2fVx1OThjYVx1OThiN1x1OThjOFx1OThjN1x1NGFmZlx1ezI2ZDI3fVx1ezIxNmQzfVx1NTViMFx1OThlMVx1OThlNlx1OThlY1x1OTM3OFx1OTkz''@;'; + put 'put ''OVx1ezI0YTI5fVx1NGI3Mlx1ezI5ODU3fVx1ezI5OTA1fVx1OTlmNVx1OWEwY1x1OWEzYlx1OWExMFx1OWE1OFx1ezI1NzI1fVx1MzZjNFx1ezI5MGIxfVx1ezI5YmQ1fVx1OWFlMFx1OWFlMlx1ezI5YjA1fVx1OWFmNFx1NGMwZVx1OWIxNFx1OWIyZFx1ezI4NjAwfVx1NTAzNFx1OWIzNFx1''@;'; + put 'put ''ezI2OWE4fVx1MzhjM1x1ezIzMDdkfVx1OWI1MFx1OWI0MFx1ezI5ZDNlfVx1NWE0NVx1ezIxODYzfVx1OWI4ZVx1ezI0MjRifVx1OWMwMlx1OWJmZlx1OWMwY1x1ezI5ZTY4fVx1OWRkNFx1ezI5ZmI3fVx1ezJhMTkyfVx1ezJhMWFifVx1ezJhMGUxfVx1ezJhMTIzfVx1ezJhMWRmfVx1OWQ3''@;'; + put 'put ''ZVx1OWQ4M1x1ezJhMTM0fVx1OWUwZVx1Njg4OCJdLFsiOTFhMSIsIlx1OWRjNFx1ezIyMTVifVx1ezJhMTkzfVx1ezJhMjIwfVx1ezIxOTNifVx1ezJhMjMzfVx1OWQzOVx1ezJhMGI5fVx1ezJhMmI0fVx1OWU5MFx1OWU5NVx1OWU5ZVx1OWVhMlx1NGQzNFx1OWVhYVx1OWVhZlx1ezI0MzY0''@;'; + put 'put ''fVx1OWVjMVx1M2I2MFx1MzllNVx1M2QxZFx1NGYzMlx1MzdiZVx1ezI4YzJifVx1OWYwMlx1OWYwOFx1NGI5Nlx1OTQyNFx1ezI2ZGEyfVx1OWYxN1x1OWYxNlx1OWYzOVx1NTY5Zlx1NTY4YVx1OWY0NVx1OTliOFx1ezI5MDhifVx1OTdmMlx1ODQ3Zlx1OWY2Mlx1OWY2OVx1N2FkY1x1OWY4''@;'; + put 'put ''ZVx1NzIxNlx1NGJiZVx1ezI0OTc1fVx1ezI0OWJifVx1NzE3N1x1ezI0OWY4fVx1ezI0MzQ4fVx1ezI0YTUxfVx1NzM5ZVx1ezI4YmRhfVx1ezIxOGZhfVx1Nzk5Zlx1ezI4OTdlfVx1ezI4ZTM2fVx1OTM2OVx1OTNmM1x1ezI4YTQ0fVx1OTJlY1x1OTM4MVx1OTNjYlx1ezI4OTZjfVx1ezI0''@;'; + put 'put ''NGI5fVx1NzIxN1x1M2VlYlx1Nzc3Mlx1N2E0M1x1NzBkMFx1ezI0NDczfVx1ezI0M2Y4fVx1NzE3ZVx1ezIxN2VmfVx1NzBhM1x1ezIxOGJlfVx1ezIzNTk5fVx1M2VjN1x1ezIxODg1fVx1ezI1NDJmfVx1ezIxN2Y4fVx1MzcyMlx1ezIxNmZifVx1ezIxODM5fVx1MzZlMVx1ezIxNzc0fVx1''@;'; + put 'put ''ezIxOGQxfVx1ezI1ZjRifVx1MzcyM1x1ezIxNmMwfVx1NTc1Ylx1ezI0YTI1fVx1ezIxM2ZlfVx1ezIxMmE4fSJdLFsiOTI0MCIsIlx1ezIxM2M2fVx1ezIxNGI2fVx1ODUwM1x1ezIzNmE2fVx1ODUwM1x1ODQ1NVx1ezI0OTk0fVx1ezI3MTY1fVx1ezIzZTMxfVx1ezI1NTVjfVx1ezIzZWZi''@;'; + put 'put ''fVx1ezI3MDUyfVx1NDRmNFx1ezIzNmVlfVx1ezI5OTlkfVx1ezI2ZjI2fVx1NjdmOVx1MzczM1x1M2MxNVx1M2RlN1x1NTg2Y1x1ezIxOTIyfVx1NjgxMFx1NDA1N1x1ezIzNzNmfVx1ezI0MGUxfVx1ezI0MDhifVx1ezI0MTBmfVx1ezI2YzIxfVx1NTRjYlx1NTY5ZVx1ezI2NmIxfVx1NTY5''@;'; + put 'put ''Mlx1ezIwZmRmfVx1ezIwYmE4fVx1ezIwZTBkfVx1OTNjNlx1ezI4YjEzfVx1OTM5Y1x1NGVmOFx1NTEyYlx1MzgxOVx1ezI0NDM2fVx1NGViY1x1ezIwNDY1fVx1ezIwMzdmfVx1NGY0Ylx1NGY4YVx1ezI1NjUxfVx1NWE2OFx1ezIwMWFifVx1ezIwM2NifVx1Mzk5OVx1ezIwMzBhfVx1ezIw''@;'; + put 'put ''NDE0fVx1MzQzNVx1NGYyOVx1ezIwMmMwfVx1ezI4ZWIzfVx1ezIwMjc1fVx1OGFkYVx1ezIwMjBjfVx1NGU5OCJdLFsiOTJhMSIsIlx1NTBjZFx1NTEwZFx1NGZhMlx1NGYwM1x1ezI0YTBlfVx1ezIzZThhfVx1NGY0Mlx1NTAyZVx1NTA2Y1x1NTA4MVx1NGZjY1x1NGZlNVx1NTA1OFx1NTBm''@;'; + put 'put ''Y1x1NTE1OVx1NTE1Ylx1NTE1ZFx1NTE1ZVx1NmU3Nlx1ezIzNTk1fVx1ezIzZTM5fVx1ezIzZWJmfVx1NmQ3Mlx1ezIxODg0fVx1ezIzZTg5fVx1NTFhOFx1NTFjM1x1ezIwNWUwfVx1NDRkZFx1ezIwNGEzfVx1ezIwNDkyfVx1ezIwNDkxfVx1OGQ3YVx1ezI4YTljfVx1ezIwNzBlfVx1NTI1''@;'; + put 'put ''OVx1NTJhNFx1ezIwODczfVx1NTJlMVx1OTM2ZVx1NDY3YVx1NzE4Y1x1ezI0MzhjfVx1ezIwYzIwfVx1ezI0OWFjfVx1ezIxMGU0fVx1NjlkMVx1ezIwZTFkfVx1NzQ3OVx1M2VkZVx1NzQ5OVx1NzQxNFx1NzQ1Nlx1NzM5OFx1NGI4ZVx1ezI0YWJjfVx1ezI0MDhkfVx1NTNkMFx1MzU4NFx1''@;'; + put 'put ''NzIwZlx1ezI0MGM5fVx1NTViNFx1ezIwMzQ1fVx1NTRjZFx1ezIwYmM2fVx1NTcxZFx1OTI1ZFx1OTZmNFx1OTM2Nlx1NTdkZFx1NTc4ZFx1NTc3Zlx1MzYzZVx1NThjYlx1NWE5OVx1ezI4YTQ2fVx1ezIxNmZhfVx1ezIxNzZmfVx1ezIxNzEwfVx1NWEyY1x1NTliOFx1OTI4Zlx1NWE3ZVx1''@;'; + put 'put ''NWFjZlx1NWExMlx1ezI1OTQ2fVx1ezIxOWYzfVx1ezIxODYxfVx1ezI0Mjk1fVx1MzZmNVx1NmQwNVx1NzQ0M1x1NWEyMVx1ezI1ZTgzfSJdLFsiOTM0MCIsIlx1NWE4MVx1ezI4YmQ3fVx1ezIwNDEzfVx1OTNlMFx1NzQ4Y1x1ezIxMzAzfVx1NzEwNVx1NDk3Mlx1OTQwOFx1ezI4OWZifVx1''@;'; + put 'put ''OTNiZFx1MzdhMFx1NWMxZVx1NWM5ZVx1NWU1ZVx1NWU0OFx1ezIxOTk2fVx1ezIxOTdjfVx1ezIzYWVlfVx1NWVjZFx1NWI0Zlx1ezIxOTAzfVx1ezIxOTA0fVx1MzcwMVx1ezIxOGEwfVx1MzZkZFx1ezIxNmZlfVx1MzZkM1x1ODEyYVx1ezI4YTQ3fVx1ezIxZGJhfVx1ezIzNDcyfVx1ezI4''@;'; + put 'put ''OWE4fVx1NWYwY1x1NWYwZVx1ezIxOTI3fVx1ezIxN2FifVx1NWE2Ylx1ezIxNzNifVx1NWI0NFx1ODYxNFx1ezI3NWZkfVx1ODg2MFx1NjA3ZVx1ezIyODYwfVx1ezIyNjJifVx1NWZkYlx1M2ViOFx1ezIyNWFmfVx1ezIyNWJlfVx1ezI5MDg4fVx1ezI2ZjczfVx1NjFjMFx1ezIwMDNlfVx1''@;'; + put 'put ''ezIwMDQ2fVx1ezIyNjFifVx1NjE5OVx1NjE5OFx1NjA3NVx1ezIyYzlifVx1ezIyZDA3fVx1ezI0NmQ0fVx1ezI5MTRkfSJdLFsiOTNhMSIsIlx1NjQ3MVx1ezI0NjY1fVx1ezIyYjZhfVx1M2EyOVx1ezIyYjIyfVx1ezIzNDUwfVx1ezI5OGVhfVx1ezIyZTc4fVx1NjMzN1x1ezJhNDVifVx1''@;'; + put 'put ''NjRiNlx1NjMzMVx1NjNkMVx1ezI0OWUzfVx1ezIyZDY3fVx1NjJhNFx1ezIyY2ExfVx1NjQzYlx1NjU2Ylx1Njk3Mlx1M2JmNFx1ezIzMDhlfVx1ezIzMmFkfVx1ezI0OTg5fVx1ezIzMmFifVx1NTUwZFx1ezIzMmUwfVx1ezIxOGQ5fVx1ezI5NDNmfVx1NjZjZVx1ezIzMjg5fVx1ezIzMWIz''@;'; + put 'put ''fVx1M2FlMFx1NDE5MFx1ezI1NTg0fVx1ezI4YjIyfVx1ezI1NThmfVx1ezIxNmZjfVx1ezI1NTVifVx1ezI1NDI1fVx1NzhlZVx1ezIzMTAzfVx1ezIxODJhfVx1ezIzMjM0fVx1MzQ2NFx1ezIzMjBmfVx1ezIzMTgyfVx1ezI0MmM5fVx1NjY4ZVx1ezI2ZDI0fVx1NjY2Ylx1NGI5M1x1NjYz''@;'; + put 'put ''MFx1ezI3ODcwfVx1ezIxZGVifVx1NjY2M1x1ezIzMmQyfVx1ezIzMmUxfVx1NjYxZVx1ezI1ODcyfVx1MzhkMVx1ezIzODNhfVx1ezIzN2JjfVx1M2I5OVx1ezIzN2EyfVx1ezIzM2ZlfVx1NzRkMFx1M2I5Nlx1Njc4Zlx1ezI0NjJhfVx1NjhiNlx1NjgxZVx1M2JjNFx1NmFiZVx1Mzg2M1x1''@;'; + put 'put ''ezIzN2Q1fVx1ezI0NDg3fVx1NmEzM1x1NmE1Mlx1NmFjOVx1NmIwNVx1ezIxOTEyfVx1NjUxMVx1Njg5OFx1NmE0Y1x1M2JkN1x1NmE3YVx1NmI1N1x1ezIzZmMwfVx1ezIzYzlhfVx1OTNhMFx1OTJmMlx1ezI4YmVhfVx1ezI4YWNifSJdLFsiOTQ0MCIsIlx1OTI4OVx1ezI4MDFlfVx1ezI4''@;'; + put 'put ''OWRjfVx1OTQ2N1x1NmRhNVx1NmYwYlx1ezI0OWVjfVx1NmQ2N1x1ezIzZjdmfVx1M2Q4Zlx1NmUwNFx1ezI0MDNjfVx1NWEzZFx1NmUwYVx1NTg0N1x1NmQyNFx1Nzg0Mlx1NzEzYlx1ezI0MzFhfVx1ezI0Mjc2fVx1NzBmMVx1NzI1MFx1NzI4N1x1NzI5NFx1ezI0NzhmfVx1ezI0NzI1fVx1''@;'; + put 'put ''NTE3OVx1ezI0YWE0fVx1ezIwNWVifVx1NzQ3YVx1ezIzZWY4fVx1ezIzNjVmfVx1ezI0YTRhfVx1ezI0OTE3fVx1ezI1ZmUxfVx1M2YwNlx1M2ViMVx1ezI0YWRmfVx1ezI4YzIzfVx1ezIzZjM1fVx1NjBhN1x1M2VmM1x1NzRjY1x1NzQzY1x1OTM4N1x1NzQzN1x1NDQ5Zlx1ezI2ZGVhfVx1''@;'; + put 'put ''NDU1MVx1NzU4M1x1M2Y2M1x1ezI0Y2Q5fVx1ezI0ZDA2fVx1M2Y1OFx1NzU1NVx1NzY3M1x1ezJhNWM2fVx1M2IxOVx1NzQ2OFx1ezI4YWNjfVx1ezI0OWFifVx1ezI0OThlfVx1M2FmYiJdLFsiOTRhMSIsIlx1M2RjZFx1ezI0YTRlfVx1M2VmZlx1ezI0OWM1fVx1ezI0OGYzfVx1OTFmYVx1''@;'; + put 'put ''NTczMlx1OTM0Mlx1ezI4YWUzfVx1ezIxODY0fVx1NTBkZlx1ezI1MjIxfVx1ezI1MWU3fVx1Nzc3OFx1ezIzMjMyfVx1NzcwZVx1NzcwZlx1Nzc3Ylx1ezI0Njk3fVx1ezIzNzgxfVx1M2E1ZVx1ezI0OGYwfVx1NzQzOFx1NzQ5Ylx1M2ViZlx1ezI0YWJhfVx1ezI0YWM3fVx1NDBjOFx1ezI0''@;'; + put 'put ''YTk2fVx1ezI2MWFlfVx1OTMwN1x1ezI1NTgxfVx1NzgxZVx1Nzg4ZFx1Nzg4OFx1NzhkMlx1NzNkMFx1Nzk1OVx1ezI3NzQxfVx1ezI1NmUzfVx1NDEwZVx1Nzk5Ylx1ODQ5Nlx1NzlhNVx1NmEyZFx1ezIzZWZhfVx1N2EzYVx1NzlmNFx1NDE2ZVx1ezIxNmU2fVx1NDEzMlx1OTIzNVx1Nzlm''@;'; + put 'put ''MVx1ezIwZDRjfVx1ezI0OThjfVx1ezIwMjk5fVx1ezIzZGJhfVx1ezIxNzZlfVx1MzU5N1x1NTU2Ylx1MzU3MFx1MzZhYVx1ezIwMWQ0fVx1ezIwYzBkfVx1N2FlMlx1NWE1OVx1ezIyNmY1fVx1ezI1YWFmfVx1ezI1YTljfVx1NWEwZFx1ezIwMjVifVx1NzhmMFx1NWEyYVx1ezI1YmM2fVx1''@;'; + put 'put ''N2FmZVx1NDFmOVx1N2M1ZFx1N2M2ZFx1NDIxMVx1ezI1YmIzfVx1ezI1ZWJjfVx1ezI1ZWE2fVx1N2NjZFx1ezI0OWY5fVx1ezIxN2IwfVx1N2M4ZVx1N2M3Y1x1N2NhZVx1NmFiMlx1N2RkY1x1N2UwN1x1N2RkM1x1N2Y0ZVx1ezI2MjYxfSJdLFsiOTU0MCIsIlx1ezI2MTVjfVx1ezI3YjQ4''@;'; + put 'put ''fVx1N2Q5N1x1ezI1ZTgyfVx1NDI2YVx1ezI2Yjc1fVx1ezIwOTE2fVx1NjdkNlx1ezIwMDRlfVx1ezIzNWNmfVx1NTdjNFx1ezI2NDEyfVx1ezI2M2Y4fVx1ezI0OTYyfVx1N2ZkZFx1N2IyN1x1ezIwODJjfVx1ezI1YWU5fVx1ezI1ZDQzfVx1N2IwY1x1ezI1ZTBlfVx1OTllNlx1ODY0NVx1''@;'; + put 'put ''OWE2M1x1NmExY1x1ezIzNDNmfVx1MzllMlx1ezI0OWY3fVx1ezI2NWFkfVx1OWExZlx1ezI2NWEwfVx1ODQ4MFx1ezI3MTI3fVx1ezI2Y2QxfVx1NDRlYVx1ODEzN1x1NDQwMlx1ODBjNlx1ODEwOVx1ODE0Mlx1ezI2N2I0fVx1OThjM1x1ezI2YTQyfVx1ODI2Mlx1ODI2NVx1ezI2YTUxfVx1''@;'; + put 'put ''ODQ1M1x1ezI2ZGE3fVx1ODYxMFx1ezI3MjFifVx1NWE4Nlx1NDE3Zlx1ezIxODQwfVx1NWIyYlx1ezIxOGExfVx1NWFlNFx1ezIxOGQ4fVx1ODZhMFx1ezJmOWJjfVx1ezIzZDhmfVx1ODgyZFx1ezI3NDIyfVx1NWEwMiJdLFsiOTVhMSIsIlx1ODg2ZVx1NGY0NVx1ODg4N1x1ODhiZlx1ODhl''@;'; + put 'put ''Nlx1ODk2NVx1ODk0ZFx1ezI1NjgzfVx1ODk1NFx1ezI3Nzg1fVx1ezI3Nzg0fVx1ezI4YmY1fVx1ezI4YmQ5fVx1ezI4YjljfVx1ezI4OWY5fVx1M2VhZFx1ODRhM1x1NDZmNVx1NDZjZlx1MzdmMlx1OGEzZFx1OGExY1x1ezI5NDQ4fVx1NWY0ZFx1OTIyYlx1ezI0Mjg0fVx1NjVkNFx1NzEy''@;'; + put 'put ''OVx1NzBjNFx1ezIxODQ1fVx1OWQ2ZFx1OGM5Zlx1OGNlOVx1ezI3ZGRjfVx1NTk5YVx1NzdjM1x1NTlmMFx1NDM2ZVx1MzZkNFx1OGUyYVx1OGVhN1x1ezI0YzA5fVx1OGYzMFx1OGY0YVx1NDJmNFx1NmM1OFx1NmZiYlx1ezIyMzIxfVx1NDg5Ylx1NmY3OVx1NmU4Ylx1ezIxN2RhfVx1OWJl''@;'; + put 'put ''OVx1MzZiNVx1ezI0OTJmfVx1OTBiYlx1OTA5N1x1NTU3MVx1NDkwNlx1OTFiYlx1OTQwNFx1ezI4YTRifVx1NDA2Mlx1ezI4YWZjfVx1OTQyN1x1ezI4YzFkfVx1ezI4YzNifVx1ODRlNVx1OGEyYlx1OTU5OVx1OTVhN1x1OTU5N1x1OTU5Nlx1ezI4ZDM0fVx1NzQ0NVx1M2VjMlx1ezI0OGZm''@;'; + put 'put ''fVx1ezI0YTQyfVx1ezI0M2VhfVx1M2VlN1x1ezIzMjI1fVx1OTY4Zlx1ezI4ZWU3fVx1ezI4ZTY2fVx1ezI4ZTY1fVx1M2VjY1x1ezI0OWVkfVx1ezI0YTc4fVx1ezIzZmVlfVx1NzQxMlx1NzQ2Ylx1M2VmY1x1OTc0MVx1ezI5MGIwfSJdLFsiOTY0MCIsIlx1Njg0N1x1NGExZFx1ezI5MDkz''@;'; + put 'put ''fVx1ezI1N2RmfVx1OTc1ZFx1OTM2OFx1ezI4OTg5fVx1ezI4YzI2fVx1ezI4YjJmfVx1ezI2M2JlfVx1OTJiYVx1NWIxMVx1OGI2OVx1NDkzY1x1NzNmOVx1ezI0MjFifVx1OTc5Ylx1OTc3MVx1OTkzOFx1ezIwZjI2fVx1NWRjMVx1ezI4YmM1fVx1ezI0YWIyfVx1OTgxZlx1ezI5NGRhfVx1''@;'; + put 'put ''OTJmNlx1ezI5NWQ3fVx1OTFlNVx1NDRjMFx1ezI4YjUwfVx1ezI0YTY3fVx1ezI4YjY0fVx1OThkY1x1ezI4YTQ1fVx1M2YwMFx1OTIyYVx1NDkyNVx1ODQxNFx1OTkzYlx1OTk0ZFx1ezI3YjA2fVx1M2RmZFx1OTk5Ylx1NGI2Zlx1OTlhYVx1OWE1Y1x1ezI4YjY1fVx1ezI1OGM4fVx1NmE4''@;'; + put 'put ''Zlx1OWEyMVx1NWFmZVx1OWEyZlx1ezI5OGYxfVx1NGI5MFx1ezI5OTQ4fVx1OTliY1x1NGJiZFx1NGI5N1x1OTM3ZFx1NTg3Mlx1ezIxMzAyfVx1NTgyMlx1ezI0OWI4fSJdLFsiOTZhMSIsIlx1ezIxNGU4fVx1Nzg0NFx1ezIyNzFmfVx1ezIzZGI4fVx1NjhjNVx1M2Q3ZFx1OTQ1OFx1Mzky''@;'; + put 'put ''N1x1NjE1MFx1ezIyNzgxfVx1ezIyOTZifVx1NjEwN1x1OWM0Zlx1OWM1M1x1OWM3Ylx1OWMzNVx1OWMxMFx1OWI3Zlx1OWJjZlx1ezI5ZTJkfVx1OWI5Zlx1ezJhMWY1fVx1ezJhMGZlfVx1OWQyMVx1NGNhZVx1ezI0MTA0fVx1OWUxOFx1NGNiMFx1OWQwY1x1ezJhMWI0fVx1ezJhMGVkfVx1''@;'; + put 'put ''ezJhMGYzfVx1ezI5OTJmfVx1OWRhNVx1ODRiZFx1ezI2ZTEyfVx1ezI2ZmRmfVx1ezI2YjgyfVx1ODVmY1x1NDUzM1x1ezI2ZGE0fVx1ezI2ZTg0fVx1ezI2ZGYwfVx1ODQyMFx1ODVlZVx1ezI2ZTAwfVx1ezIzN2Q3fVx1ezI2MDY0fVx1NzllMlx1ezIzNTljfVx1ezIzNjQwfVx1NDkyZFx1''@;'; + put 'put ''ezI0OWRlfVx1M2Q2Mlx1OTNkYlx1OTJiZVx1OTM0OFx1ezIwMmJmfVx1NzhiOVx1OTI3N1x1OTQ0ZFx1NGZlNFx1MzQ0MFx1OTA2NFx1ezI1NTVkfVx1NzgzZFx1Nzg1NFx1NzhiNlx1Nzg0Ylx1ezIxNzU3fVx1ezIzMWM5fVx1ezI0OTQxfVx1MzY5YVx1NGY3Mlx1NmZkYVx1NmZkOVx1NzAx''@;'; + put 'put ''ZVx1NzAxZVx1NTQxNFx1ezI0MWI1fVx1NTdiYlx1NThmM1x1NTc4YVx1OWQxNlx1NTdkN1x1NzEzNFx1MzRhZlx1ezI0MWFjfVx1NzFlYlx1ezI2YzQwfVx1ezI0Zjk3fVx1NWIyOFx1ezIxN2I1fVx1ezI4YTQ5fSJdLFsiOTc0MCIsIlx1NjEwY1x1NWFjZVx1NWEwYlx1NDJiY1x1ezI0NDg4''@;'; + put 'put ''fVx1MzcyY1x1NGI3Ylx1ezI4OWZjfVx1OTNiYlx1OTNiOFx1ezIxOGQ2fVx1ezIwZjFkfVx1ODQ3Mlx1ezI2Y2MwfVx1ezIxNDEzfVx1ezI0MmZhfVx1ezIyYzI2fVx1ezI0M2MxfVx1NTk5NFx1ezIzZGI3fVx1ezI2NzQxfVx1N2RhOFx1ezI2MTVifVx1ezI2MGE0fVx1ezI0OWI5fVx1ezI0''@;'; + put 'put ''OThifVx1ezI4OWZhfVx1OTJlNVx1NzNlMlx1M2VlOVx1NzRiNFx1ezI4YjYzfVx1ezIxODlmfVx1M2VlMVx1ezI0YWIzfVx1NmFkOFx1NzNmM1x1NzNmYlx1M2VkNlx1ezI0YTNlfVx1ezI0YTk0fVx1ezIxN2Q5fVx1ezI0YTY2fVx1ezIwM2E3fVx1ezIxNDI0fVx1ezI0OWU1fVx1NzQ0OFx1''@;'; + put 'put ''ezI0OTE2fVx1NzBhNVx1ezI0OTc2fVx1OTI4NFx1NzNlNlx1OTM1Zlx1ezIwNGZlfVx1OTMzMVx1ezI4YWNlfVx1ezI4YTE2fVx1OTM4Nlx1ezI4YmU3fVx1ezI1NWQ1fVx1NDkzNVx1ezI4YTgyfVx1NzE2YiJdLFsiOTdhMSIsIlx1ezI0OTQzfVx1ezIwY2ZmfVx1NTZhNFx1ezIwNjFhfVx1''@;'; + put 'put ''ezIwYmVifVx1ezIwY2I4fVx1NTUwMlx1NzljNFx1ezIxN2ZhfVx1N2RmZVx1ezIxNmMyfVx1ezI0YTUwfVx1ezIxODUyfVx1NDUyZVx1OTQwMVx1MzcwYVx1ezI4YWMwfVx1ezI0OWFkfVx1NTliMFx1ezIxOGJmfVx1ezIxODgzfVx1ezI3NDg0fVx1NWFhMVx1MzZlMlx1ezIzZDVifVx1MzZi''@;'; + put 'put ''MFx1OTI1Zlx1NWE3OVx1ezI4YTgxfVx1ezIxODYyfVx1OTM3NFx1M2NjZFx1ezIwYWI0fVx1NGE5Nlx1Mzk4YVx1NTBmNFx1M2Q2OVx1M2Q0Y1x1ezIxMzljfVx1NzE3NVx1NDJmYlx1ezI4MjE4fVx1NmUwZlx1ezI5MGU0fVx1NDRlYlx1NmQ1N1x1ezI3ZTRmfVx1NzA2N1x1NmNhZlx1M2Nk''@;'; + put 'put ''Nlx1ezIzZmVkfVx1ezIzZTJkfVx1NmUwMlx1NmYwY1x1M2Q2Zlx1ezIwM2Y1fVx1NzU1MVx1MzZiY1x1MzRjOFx1NDY4MFx1M2VkYVx1NDg3MVx1NTljNFx1OTI2ZVx1NDkzZVx1OGY0MVx1ezI4YzFjfVx1ezI2YmMwfVx1NTgxMlx1NTdjOFx1MzZkNlx1ezIxNDUyfVx1NzBmZVx1ezI0MzYy''@;'; + put 'put ''fVx1ezI0YTcxfVx1ezIyZmUzfVx1ezIxMmIwfVx1ezIyM2JkfVx1NjhiOVx1Njk2N1x1ezIxMzk4fVx1ezIzNGU1fVx1ezI3YmY0fVx1ezIzNmRmfVx1ezI4YTgzfVx1ezIzN2Q2fVx1ezIzM2ZhfVx1ezI0YzlmfVx1NmExYVx1ezIzNmFkfVx1ezI2Y2I3fVx1ODQzZVx1NDRkZlx1NDRjZSJd''@;'; + put 'put ''LFsiOTg0MCIsIlx1ezI2ZDI2fVx1ezI2ZDUxfVx1ezI2YzgyfVx1ezI2ZmRlfVx1NmYxN1x1ezI3MTA5fVx1ODMzZFx1ezIxNzNhfVx1ODNlZFx1ezI2YzgwfVx1ezI3MDUzfVx1ezIxN2RifVx1NTk4OVx1NWE4Mlx1ezIxN2IzfVx1NWE2MVx1NWE3MVx1ezIxOTA1fVx1ezI0MWZjfVx1Mzcy''@;'; + put 'put ''ZFx1NTllZlx1ezIxNzNjfVx1MzZjN1x1NzE4ZVx1OTM5MFx1NjY5YVx1ezI0MmE1fVx1NWE2ZVx1NWEyYlx1ezI0MjkzfVx1NmEyYlx1ezIzZWY5fVx1ezI3NzM2fVx1ezI0NDVifVx1ezI0MmNhfVx1NzExZFx1ezI0MjU5fVx1ezI4OWUxfVx1NGZiMFx1ezI2ZDI4fVx1NWNjMlx1ezI0NGNl''@;'; + put 'put ''fVx1ezI3ZTRkfVx1ezI0M2JkfVx1NmEwY1x1ezI0MjU2fVx1ezIxMzA0fVx1NzBhNlx1NzEzM1x1ezI0M2U5fVx1M2RhNVx1NmNkZlx1ezJmODI1fVx1ezI0YTRmfVx1N2U2NVx1NTllYlx1NWQyZlx1M2RmM1x1NWY1Y1x1ezI0YTVkfVx1ezIxN2RmfVx1N2RhNFx1ODQyNiJdLFsiOThhMSIs''@;'; + put 'put ''Ilx1NTQ4NVx1ezIzYWZhfVx1ezIzMzAwfVx1ezIwMjE0fVx1NTc3ZVx1ezIwOGQ1fVx1ezIwNjE5fVx1M2ZlNVx1ezIxZjllfVx1ezJhMmI2fVx1NzAwM1x1ezI5MTVifVx1NWQ3MFx1NzM4Zlx1N2NkM1x1ezI4YTU5fVx1ezI5NDIwfVx1NGZjOFx1N2ZlN1x1NzJjZFx1NzMxMFx1ezI3YWY0''@;'; + put 'put ''fVx1NzMzOFx1NzMzOVx1ezI1NmY2fVx1NzM0MVx1NzM0OFx1M2VhOVx1ezI3YjE4fVx1OTA2Y1x1NzFmNVx1ezI0OGYyfVx1NzNlMVx1ODFmNlx1M2VjYVx1NzcwY1x1M2VkMVx1NmNhMlx1NTZmZFx1NzQxOVx1NzQxZVx1NzQxZlx1M2VlMlx1M2VmMFx1M2VmNFx1M2VmYVx1NzRkM1x1M2Yw''@;'; + put 'put ''ZVx1M2Y1M1x1NzU0Mlx1NzU2ZFx1NzU3Mlx1NzU4ZFx1M2Y3Y1x1NzVjOFx1NzVkY1x1M2ZjMFx1NzY0ZFx1M2ZkN1x1NzY3NFx1M2ZkY1x1NzY3YVx1ezI0ZjVjfVx1NzE4OFx1NTYyM1x1ODk4MFx1NTg2OVx1NDAxZFx1Nzc0M1x1NDAzOVx1Njc2MVx1NDA0NVx1MzVkYlx1Nzc5OFx1NDA2''@;'; + put 'put ''YVx1NDA2Zlx1NWM1ZVx1NzdiZVx1NzdjYlx1NThmMlx1NzgxOFx1NzBiOVx1NzgxY1x1NDBhOFx1NzgzOVx1Nzg0N1x1Nzg1MVx1Nzg2Nlx1ODQ0OFx1ezI1NTM1fVx1NzkzM1x1NjgwM1x1NzkzMlx1NDEwMyJdLFsiOTk0MCIsIlx1NDEwOVx1Nzk5MVx1Nzk5OVx1OGZiYlx1N2EwNlx1OGZi''@;'; + put 'put ''Y1x1NDE2N1x1N2E5MVx1NDFiMlx1N2FiY1x1ODI3OVx1NDFjNFx1N2FjZlx1N2FkYlx1NDFjZlx1NGUyMVx1N2I2Mlx1N2I2Y1x1N2I3Ylx1N2MxMlx1N2MxYlx1NDI2MFx1NDI3YVx1N2M3Ylx1N2M5Y1x1NDI4Y1x1N2NiOFx1NDI5NFx1N2NlZFx1OGY5M1x1NzBjMFx1ezIwY2NmfVx1N2Rj''@;'; + put 'put ''Zlx1N2RkNFx1N2RkMFx1N2RmZFx1N2ZhZVx1N2ZiNFx1NzI5Zlx1NDM5N1x1ODAyMFx1ODAyNVx1N2IzOVx1ODAyZVx1ODAzMVx1ODA1NFx1M2RjY1x1NTdiNFx1NzBhMFx1ODBiN1x1ODBlOVx1NDNlZFx1ODEwY1x1NzMyYVx1ODEwZVx1ODExMlx1NzU2MFx1ODExNFx1NDQwMVx1M2IzOVx1''@;'; + put 'put ''ODE1Nlx1ODE1OVx1ODE1YSJdLFsiOTlhMSIsIlx1NDQxM1x1NTgzYVx1ODE3Y1x1ODE4NFx1NDQyNVx1ODE5M1x1NDQyZFx1ODFhNVx1NTdlZlx1ODFjMVx1ODFlNFx1ODI1NFx1NDQ4Zlx1ODJhNlx1ODI3Nlx1ODJjYVx1ODJkOFx1ODJmZlx1NDRiMFx1ODM1N1x1OTY2OVx1Njk4YVx1ODQw''@;'; + put 'put ''NVx1NzBmNVx1ODQ2NFx1NjBlM1x1ODQ4OFx1NDUwNFx1ODRiZVx1ODRlMVx1ODRmOFx1ODUxMFx1ODUzOFx1ODU1Mlx1NDUzYlx1ODU2Zlx1ODU3MFx1ODVlMFx1NDU3N1x1ODY3Mlx1ODY5Mlx1ODZiMlx1ODZlZlx1OTY0NVx1ODc4Ylx1NDYwNlx1NDYxN1x1ODhhZVx1ODhmZlx1ODkyNFx1''@;'; + put 'put ''ODk0N1x1ODk5MVx1ezI3OTY3fVx1OGEyOVx1OGEzOFx1OGE5NFx1OGFiNFx1OGM1MVx1OGNkNFx1OGNmMlx1OGQxY1x1NDc5OFx1NTg1Zlx1OGRjM1x1NDdlZFx1NGVlZVx1OGUzYVx1NTVkOFx1NTc1NFx1OGU3MVx1NTVmNVx1OGViMFx1NDgzN1x1OGVjZVx1OGVlMlx1OGVlNFx1OGVlZFx1''@;'; + put 'put ''OGVmMlx1OGZiN1x1OGZjMVx1OGZjYVx1OGZjY1x1OTAzM1x1OTljNFx1NDhhZFx1OThlMFx1OTIxM1x1NDkxZVx1OTIyOFx1OTI1OFx1OTI2Ylx1OTJiMVx1OTJhZVx1OTJiZiJdLFsiOWE0MCIsIlx1OTJlM1x1OTJlYlx1OTJmM1x1OTJmNFx1OTJmZFx1OTM0M1x1OTM4NFx1OTNhZFx1NDk0''@;'; + put 'put ''NVx1NDk1MVx1OWViZlx1OTQxN1x1NTMwMVx1OTQxZFx1OTQyZFx1OTQzZVx1NDk2YVx1OTQ1NFx1OTQ3OVx1OTUyZFx1OTVhMlx1NDlhN1x1OTVmNFx1OTYzM1x1NDllNVx1NjdhMFx1NGEyNFx1OTc0MFx1NGEzNVx1OTdiMlx1OTdjMlx1NTY1NFx1NGFlNFx1NjBlOFx1OThiOVx1NGIxOVx1''@;'; + put 'put ''OThmMVx1NTg0NFx1OTkwZVx1OTkxOVx1NTFiNFx1OTkxY1x1OTkzN1x1OTk0Mlx1OTk1ZFx1OTk2Mlx1NGI3MFx1OTljNVx1NGI5ZFx1OWEzY1x1OWIwZlx1N2E4M1x1OWI2OVx1OWI4MVx1OWJkZFx1OWJmMVx1OWJmNFx1NGM2ZFx1OWMyMFx1Mzc2Zlx1ezIxYmMyfVx1OWQ0OVx1OWMzYSJd''@;'; + put 'put ''LFsiOWFhMSIsIlx1OWVmZVx1NTY1MFx1OWQ5M1x1OWRiZFx1OWRjMFx1OWRmY1x1OTRmNlx1OGZiNlx1OWU3Ylx1OWVhY1x1OWViMVx1OWViZFx1OWVjNlx1OTRkY1x1OWVlMlx1OWVmMVx1OWVmOFx1N2FjOFx1OWY0NFx1ezIwMDk0fVx1ezIwMmI3fVx1ezIwM2EwfVx1NjkxYVx1OTRjM1x1''@;'; + put 'put ''NTlhY1x1ezIwNGQ3fVx1NTg0MFx1OTRjMVx1MzdiOVx1ezIwNWQ1fVx1ezIwNjE1fVx1ezIwNjc2fVx1ezIxNmJhfVx1NTc1N1x1NzE3M1x1ezIwYWMyfVx1ezIwYWNkfVx1ezIwYmJmfVx1NTQ2YVx1ezJmODNifVx1ezIwYmNifVx1NTQ5ZVx1ezIwYmZifVx1ezIwYzNifVx1ezIwYzUzfVx1''@;'; + put 'put ''ezIwYzY1fVx1ezIwYzdjfVx1NjBlN1x1ezIwYzhkfVx1NTY3YVx1ezIwY2I1fVx1ezIwY2RkfVx1ezIwY2VkfVx1ezIwZDZmfVx1ezIwZGIyfVx1ezIwZGM4fVx1Njk1NVx1OWMyZlx1ODdhNVx1ezIwZTA0fVx1ezIwZTBlfVx1ezIwZWQ3fVx1ezIwZjkwfVx1ezIwZjJkfVx1ezIwZTczfVx1''@;'; + put 'put ''NWMyMFx1ezIwZmJjfVx1NWUwYlx1ezIxMDVjfVx1ezIxMDRmfVx1ezIxMDc2fVx1NjcxZVx1ezIxMDdifVx1ezIxMDg4fVx1ezIxMDk2fVx1MzY0N1x1ezIxMGJmfVx1ezIxMGQzfVx1ezIxMTJmfVx1ezIxMTNifVx1NTM2NFx1ODRhZFx1ezIxMmUzfVx1ezIxMzc1fVx1ezIxMzM2fVx1OGI4''@;'; + put 'put ''MVx1ezIxNTc3fVx1ezIxNjE5fVx1ezIxN2MzfVx1ezIxN2M3fVx1NGU3OFx1NzBiYlx1ezIxODJkfVx1ezIxOTZhfSJdLFsiOWI0MCIsIlx1ezIxYTJkfVx1ezIxYTQ1fVx1ezIxYzJhfVx1ezIxYzcwfVx1ezIxY2FjfVx1ezIxZWM4fVx1NjJjM1x1ezIxZWQ1fVx1ezIxZjE1fVx1NzE5OFx1''@;'; + put 'put ''Njg1NVx1ezIyMDQ1fVx1NjllOVx1MzZjOFx1ezIyMjdjfVx1ezIyM2Q3fVx1ezIyM2ZhfVx1ezIyNzJhfVx1ezIyODcxfVx1ezIyOTRmfVx1ODJmZFx1ezIyOTY3fVx1ezIyOTkzfVx1ezIyYWQ1fVx1ODlhNVx1ezIyYWU4fVx1OGZhMFx1ezIyYjBlfVx1OTdiOFx1ezIyYjNmfVx1OTg0N1x1''@;'; + put 'put ''OWFiZFx1ezIyYzRjfSJdLFsiOWI2MiIsIlx1ezIyYzg4fVx1ezIyY2I3fVx1ezI1YmU4fVx1ezIyZDA4fVx1ezIyZDEyfVx1ezIyZGI3fVx1ezIyZDk1fVx1ezIyZTQyfVx1ezIyZjc0fVx1ezIyZmNjfVx1ezIzMDMzfVx1ezIzMDY2fVx1ezIzMzFmfVx1ezIzM2RlfVx1NWZiMVx1NjY0OFx1''@;'; + put 'put ''NjZiZlx1ezI3YTc5fVx1ezIzNTY3fVx1ezIzNWYzfVx1NzIwMVx1ezI0OWJhfVx1NzdkN1x1ezIzNjFhfVx1ezIzNzE2fVx1N2U4N1x1ezIwMzQ2fVx1NThiNVx1NjcwZSJdLFsiOWJhMSIsIlx1NjkxOFx1ezIzYWE3fVx1ezI3NjU3fVx1ezI1ZmUyfVx1ezIzZTExfVx1ezIzZWI5fVx1ezI3''@;'; + put 'put ''NWZlfVx1ezIyMDlhfVx1NDhkMFx1NGFiOFx1ezI0MTE5fVx1ezI4YTlhfVx1ezI0MmVlfVx1ezI0MzBkfVx1ezI0MDNifVx1ezI0MzM0fVx1ezI0Mzk2fVx1ezI0YTQ1fVx1ezIwNWNhfVx1NTFkMlx1ezIwNjExfVx1NTk5Zlx1ezIxZWE4fVx1M2JiZVx1ezIzY2ZmfVx1ezI0NDA0fVx1ezI0''@;'; + put 'put ''NGQ2fVx1NTc4OFx1ezI0Njc0fVx1Mzk5Ylx1ezI0NzJmfVx1ezI4NWU4fVx1ezI5OWM5fVx1Mzc2Mlx1ezIyMWMzfVx1OGI1ZVx1ezI4YjRlfVx1OTlkNlx1ezI0ODEyfVx1ezI0OGZifVx1ezI0YTE1fVx1NzIwOVx1ezI0YWMwfVx1ezIwYzc4fVx1NTk2NVx1ezI0ZWE1fVx1ezI0Zjg2fVx1''@;'; + put 'put ''ezIwNzc5fVx1OGVkYVx1ezI1MDJjfVx1NTI4Zlx1NTczZlx1NzE3MVx1ezI1Mjk5fVx1ezI1NDE5fVx1ezIzZjRhfVx1ezI0YWE3fVx1NTViY1x1ezI1NDQ2fVx1ezI1NDZlfVx1ezI2YjUyfVx1OTFkNFx1MzQ3M1x1ezI1NTNmfVx1ezI3NjMyfVx1ezI1NTVlfVx1NDcxOFx1ezI1NTYyfVx1''@;'; + put 'put ''ezI1NTY2fVx1ezI1N2M3fVx1ezI0OTNmfVx1ezI1ODVkfVx1NTA2Nlx1MzRmYlx1ezIzM2NjfVx1NjBkZVx1ezI1OTAzfVx1NDc3Y1x1ezI4OTQ4fVx1ezI1YWFlfVx1ezI1Yjg5fVx1ezI1YzA2fVx1ezIxZDkwfVx1NTdhMVx1NzE1MVx1NmZiNlx1ezI2MTAyfVx1ezI3YzEyfVx1OTA1Nlx1''@;'; + put 'put ''ezI2MWIyfVx1ezI0ZjlhfVx1OGI2Mlx1ezI2NDAyfVx1ezI2NDRhfSJdLFsiOWM0MCIsIlx1NWQ1Ylx1ezI2YmY3fVx1OGYzNlx1ezI2NDg0fVx1ezIxOTFjfVx1OGFlYVx1ezI0OWY2fVx1ezI2NDg4fVx1ezIzZmVmfVx1ezI2NTEyfVx1NGJjMFx1ezI2NWJmfVx1ezI2NmI1fVx1ezIyNzFi''@;'; + put 'put ''fVx1OTQ2NVx1ezI1N2UxfVx1NjE5NVx1NWEyN1x1ezJmOGNkfVx1NGZiYlx1NTZiOVx1ezI0NTIxfVx1ezI2NmZjfVx1NGU2YVx1ezI0OTM0fVx1OTY1Nlx1NmQ4Zlx1ezI2Y2JkfVx1MzYxOFx1ODk3N1x1ezI2Nzk5fVx1ezI2ODZlfVx1ezI2NDExfVx1ezI2ODVlfVx1NzFkZlx1ezI2OGM3''@;'; + put 'put ''fVx1N2I0Mlx1ezI5MGMwfVx1ezIwYTExfVx1ezI2OTI2fVx1OTEwNFx1ezI2OTM5fVx1N2E0NVx1OWRmMFx1ezI2OWZhfVx1OWEyNlx1ezI2YTJkfVx1MzY1Zlx1ezI2NDY5fVx1ezIwMDIxfVx1Nzk4M1x1ezI2YTM0fVx1ezI2YjVifVx1NWQyY1x1ezIzNTE5fVx1ODNjZlx1ezI2YjlkfVx1''@;'; + put 'put ''NDZkMFx1ezI2Y2E0fVx1NzUzYlx1ODg2NVx1ezI2ZGFlfVx1NThiNiJdLFsiOWNhMSIsIlx1MzcxY1x1ezIyNThkfVx1ezI3MDRifVx1ezI3MWNkfVx1M2M1NFx1ezI3MjgwfVx1ezI3Mjg1fVx1OTI4MVx1ezIyMTdhfVx1ezI3MjhifVx1OTMzMFx1ezI3MmU2fVx1ezI0OWQwfVx1NmMzOVx1''@;'; + put 'put ''OTQ5Zlx1ezI3NDUwfVx1ezIwZWY4fVx1ODgyN1x1ODhmNVx1ezIyOTI2fVx1ezI4NDczfVx1ezIxN2IxfVx1NmViOFx1ezI0YTJhfVx1ezIxODIwfVx1MzlhNFx1MzZiOVx1NWMxMFx1NzllM1x1NDUzZlx1NjZiNlx1ezI5Y2FkfVx1ezI5OGE0fVx1ODk0M1x1ezI3N2NjfVx1ezI3ODU4fVx1''@;'; + put 'put ''NTZkNlx1NDBkZlx1ezIxNjBhfVx1MzlhMVx1ezIzNzJmfVx1ezI4MGU4fVx1ezIxM2M1fVx1NzFhZFx1ODM2Nlx1ezI3OWRkfVx1ezI5MWE4fVx1NWE2N1x1NGNiN1x1ezI3MGFmfVx1ezI4OWFifVx1ezI3OWZkfVx1ezI3YTBhfVx1ezI3YjBifVx1ezI3ZDY2fVx1ezI0MTdhfVx1N2I0M1x1''@;'; + put 'put ''Nzk3ZVx1ezI4MDA5fVx1NmZiNVx1ezJhMmRmfVx1NmEwM1x1ezI4MzE4fVx1NTNhMlx1ezI2ZTA3fVx1OTNiZlx1NjgzNlx1OTc1ZFx1ezI4MTZmfVx1ezI4MDIzfVx1ezI2OWI1fVx1ezIxM2VkfVx1ezIzMjJmfVx1ezI4MDQ4fVx1NWQ4NVx1ezI4YzMwfVx1ezI4MDgzfVx1NTcxNVx1OTgy''@;'; + put 'put ''M1x1ezI4OTQ5fVx1NWRhYlx1ezI0OTg4fVx1NjViZVx1NjlkNVx1NTNkMlx1ezI0YWE1fVx1ezIzZjgxfVx1M2MxMVx1NjczNlx1ezI4MDkwfVx1ezI4MGY0fVx1ezI4MTJlfVx1ezIxZmExfVx1ezI4MTRmfSJdLFsiOWQ0MCIsIlx1ezI4MTg5fVx1ezI4MWFmfVx1ezI4MjFhfVx1ezI4MzA2''@;'; + put 'put ''fVx1ezI4MzJmfVx1ezI4MzhhfVx1MzVjYVx1ezI4NDY4fVx1ezI4NmFhfVx1NDhmYVx1NjNlNlx1ezI4OTU2fVx1NzgwOFx1OTI1NVx1ezI4OWI4fVx1NDNmMlx1ezI4OWU3fVx1NDNkZlx1ezI4OWU4fVx1ezI4YjQ2fVx1ezI4YmQ0fVx1NTlmOFx1ezI4YzA5fVx1OGYwYlx1ezI4ZmM1fVx1''@;'; + put 'put ''ezI5MGVjfVx1N2I1MVx1ezI5MTEwfVx1ezI5MTNjfVx1M2RmN1x1ezI5MTVlfVx1ezI0YWNhfVx1OGZkMFx1NzI4Zlx1NTY4Ylx1ezI5NGU3fVx1ezI5NWU5fVx1ezI5NWIwfVx1ezI5NWI4fVx1ezI5NzMyfVx1ezI5OGQxfVx1ezI5OTQ5fVx1ezI5OTZhfVx1ezI5OWMzfVx1ezI5YTI4fVx1''@;'; + put 'put ''ezI5YjBlfVx1ezI5ZDVhfVx1ezI5ZDlifVx1N2U5Zlx1ezI5ZWY4fVx1ezI5ZjIzfVx1NGNhNFx1OTU0N1x1ezJhMjkzfVx1NzFhMlx1ezJhMmZmfVx1NGQ5MVx1OTAxMlx1ezJhNWNifVx1NGQ5Y1x1ezIwYzljfVx1OGZiZVx1NTVjMSJdLFsiOWRhMSIsIlx1OGZiYVx1ezIyNGIwfVx1OGZi''@;'; + put 'put ''OVx1ezI0YTkzfVx1NDUwOVx1N2U3Zlx1NmY1Nlx1NmFiMVx1NGVlYVx1MzRlNFx1ezI4YjJjfVx1ezI3ODlkfVx1MzczYVx1OGU4MFx1ezIxN2Y1fVx1ezI4MDI0fVx1ezI4YjZjfVx1ezI4Yjk5fVx1ezI3YTNlfVx1ezI2NmFmfVx1M2RlYlx1ezI3NjU1fVx1ezIzY2I3fVx1ezI1NjM1fVx1''@;'; + put 'put ''ezI1OTU2fVx1NGU5YVx1ezI1ZTgxfVx1ezI2MjU4fVx1NTZiZlx1ezIwZTZkfVx1OGUwZVx1NWI2ZFx1ezIzZTg4fVx1ezI0YzllfVx1NjNkZVx1NjJkMFx1ezIxN2Y2fVx1ezIxODdifVx1NjUzMFx1NTYyZFx1ezI1YzRhfVx1NTQxYVx1ezI1MzExfVx1M2RjNlx1ezI5ZDk4fVx1NGM3ZFx1''@;'; + put 'put ''NTYyMlx1NTYxZVx1N2Y0OVx1ezI1ZWQ4fVx1NTk3NVx1ezIzZDQwfVx1ODc3MFx1NGUxY1x1ezIwZmVhfVx1ezIwZDQ5fVx1ezIzNmJhfVx1ODExN1x1OWQ1ZVx1OGQxOFx1NzYzYlx1OWM0NVx1NzY0ZVx1NzdiOVx1OTM0NVx1NTQzMlx1ODE0OFx1ODJmN1x1NTYyNVx1ODEzMlx1ODQxOFx1''@;'; + put 'put ''ODBiZFx1NTVlYVx1Nzk2Mlx1NTY0M1x1NTQxNlx1ezIwZTlkfVx1MzVjZVx1NTYwNVx1NTVmMVx1NjZmMVx1ezI4MmUyfVx1MzYyZFx1NzUzNFx1NTVmMFx1NTViYVx1NTQ5N1x1NTU3Mlx1ezIwYzQxfVx1ezIwYzk2fVx1NWVkMFx1ezI1MTQ4fVx1ezIwZTc2fVx1ezIyYzYyfSJdLFsiOWU0''@;'; + put 'put ''MCIsIlx1ezIwZWEyfVx1OWVhYlx1N2Q1YVx1NTVkZVx1ezIxMDc1fVx1NjI5ZFx1OTc2ZFx1NTQ5NFx1OGNjZFx1NzFmNlx1OTE3Nlx1NjNmY1x1NjNiOVx1NjNmZVx1NTU2OVx1ezIyYjQzfVx1OWM3Mlx1ezIyZWIzfVx1NTE5YVx1MzRkZlx1ezIwZGE3fVx1NTFhN1x1NTQ0ZFx1NTUxZVx1''@;'; + put 'put ''NTUxM1x1NzY2Nlx1OGUyZFx1ezI2ODhhfVx1NzViMVx1ODBiNlx1ODgwNFx1ODc4Nlx1ODhjN1x1ODFiNlx1ODQxY1x1ezIxMGMxfVx1NDRlY1x1NzMwNFx1ezI0NzA2fVx1NWI5MFx1ODMwYlx1ezI2ODkzfVx1NTY3Ylx1ezIyNmY0fVx1ezI3ZDJmfVx1ezI0MWEzfVx1ezI3ZDczfVx1ezI2''@;'; + put 'put ''ZWQwfVx1ezI3MmI2fVx1OTE3MFx1ezIxMWQ5fVx1OTIwOFx1ezIzY2ZjfVx1ezJhNmE5fVx1ezIwZWFjfVx1ezIwZWY5fVx1NzI2Nlx1ezIxY2EyfVx1NDc0ZVx1ezI0ZmMyfVx1ezI3ZmY5fVx1ezIwZmVifVx1NDBmYSJdLFsiOWVhMSIsIlx1OWM1ZFx1NjUxZlx1ezIyZGEwfVx1NDhmM1x1''@;'; + put 'put ''ezI0N2UwfVx1ezI5ZDdjfVx1ezIwZmVjfVx1ezIwZTBhfVx1NjA2Mlx1ezI3NWEzfVx1ezIwZmVkfSJdLFsiOWVhZCIsIlx1ezI2MDQ4fVx1ezIxMTg3fVx1NzFhM1x1N2U4ZVx1OWQ1MFx1NGUxYVx1NGUwNFx1MzU3N1x1NWIwZFx1NmNiMlx1NTM2N1x1MzZhY1x1MzlkY1x1NTM3ZFx1MzZh''@;'; + put 'put ''NVx1ezI0NjE4fVx1NTg5YVx1ezI0YjZlfVx1ODIyZFx1NTQ0Ylx1NTdhYVx1ezI1YTk1fVx1ezIwOTc5fSJdLFsiOWVjNSIsIlx1M2E1Mlx1ezIyNDY1fVx1NzM3NFx1ezI5ZWFjfVx1NGQwOVx1OWJlZFx1ezIzY2ZlfVx1ezI5ZjMwfVx1NGM1Ylx1ezI0ZmE5fVx1ezI5NTllfVx1ezI5ZmRl''@;'; + put 'put ''fVx1ODQ1Y1x1ezIzZGI2fVx1ezI3MmIyfVx1ezI2N2IzfVx1ezIzNzIwfVx1NjMyZVx1N2QyNVx1ezIzZWY3fVx1ezIzZTJjfVx1M2EyYVx1OTAwOFx1NTJjY1x1M2U3NFx1MzY3YVx1NDVlOVx1ezIwNDhlfVx1NzY0MFx1NWFmMFx1ezIwZWI2fVx1Nzg3YVx1ezI3ZjJlfVx1NThhN1x1NDBi''@;'; + put 'put ''Zlx1NTY3Y1x1OWI4Ylx1NWQ3NFx1NzY1NFx1ezJhNDM0fVx1OWU4NVx1NGNlMVx1NzVmOVx1MzdmYlx1NjExOVx1ezIzMGRhfVx1ezI0M2YyfSJdLFsiOWVmNSIsIlx1NTY1ZFx1ezIxMmE5fVx1NTdhN1x1ezI0OTYzfVx1ezI5ZTA2fVx1NTIzNFx1ezI3MGFlfVx1MzVhZFx1NmM0YVx1OWQ3''@;'; + put 'put ''YyJdLFsiOWY0MCIsIlx1N2M1Nlx1OWIzOVx1NTdkZVx1ezIxNzZjfVx1NWM1M1x1NjRkM1x1ezI5NGQwfVx1ezI2MzM1fVx1ezI3MTY0fVx1ODZhZFx1ezIwZDI4fVx1ezI2ZDIyfVx1ezI0YWUyfVx1ezIwZDcxfSJdLFsiOWY0ZiIsIlx1NTFmZVx1ezIxZjBmfVx1NWQ4ZVx1OTcwM1x1ezIx''@;'; + put 'put ''ZGQxfVx1OWU4MVx1OTA0Y1x1N2IxZlx1OWIwMlx1NWNkMVx1N2JhM1x1NjI2OFx1NjMzNVx1OWFmZlx1N2JjZlx1OWIyYVx1N2M3ZVx1OWIyZVx1N2M0Mlx1N2M4Nlx1OWMxNVx1N2JmY1x1OWIwOVx1OWYxN1x1OWMxYlx1ezI0OTNlfVx1OWY1YVx1NTU3M1x1NWJjM1x1NGZmZFx1OWU5OFx1''@;'; + put 'put ''NGZmMlx1NTI2MFx1M2UwNlx1NTJkMVx1NTc2N1x1NTA1Nlx1NTliN1x1NWUxMlx1OTdjOFx1OWRhYlx1OGY1Y1x1NTQ2OVx1OTdiNFx1OTk0MFx1OTdiYVx1NTMyY1x1NjEzMCJdLFsiOWZhMSIsIlx1NjkyY1x1NTNkYVx1OWMwYVx1OWQwMlx1NGMzYlx1OTY0MVx1Njk4MFx1NTBhNlx1NzU0''@;'; + put 'put ''Nlx1ezIxNzZkfVx1OTlkYVx1NTI3MyJdLFsiOWZhZSIsIlx1OTE1OVx1OTY4MVx1OTE1YyJdLFsiOWZiMiIsIlx1OTE1MVx1ezI4ZTk3fVx1NjM3Zlx1ezI2ZDIzfVx1NmFjYVx1NTYxMVx1OTE4ZVx1NzU3YVx1NjI4NVx1ezIwM2ZjfVx1NzM0Zlx1N2M3MFx1ezI1YzIxfVx1ezIzY2ZkfSJd''@;'; + put 'put ''LFsiOWZjMSIsIlx1ezI0OTE5fVx1NzZkNlx1OWI5ZFx1NGUyYVx1ezIwY2Q0fVx1ODNiZVx1ODg0MiJdLFsiOWZjOSIsIlx1NWM0YVx1NjljMFx1NTBlZFx1NTc3YVx1NTIxZlx1NWRmNVx1NGVjZVx1NmMzMVx1ezIwMWYyfVx1NGYzOVx1NTQ5Y1x1NTRkYVx1NTI5YVx1OGQ4Mlx1MzVmZVx1''@;'; + put 'put ''NWYwY1x1MzVmMyJdLFsiOWZkYiIsIlx1NmI1Mlx1OTE3Y1x1OWZhNVx1OWI5N1x1OTgyZVx1OThiNFx1OWFiYVx1OWVhOFx1OWU4NFx1NzE3YVx1N2IxNCJdLFsiOWZlNyIsIlx1NmJmYVx1ODgxOFx1N2Y3OCJdLFsiOWZlYiIsIlx1NTYyMFx1ezJhNjRhfVx1OGU3N1x1OWY1MyJdLFsiOWZm''@;'; + put 'put ''MCIsIlx1OGRkNFx1OGU0Zlx1OWUxY1x1OGUwMVx1NjI4Mlx1ezI4MzdkfVx1OGUyOFx1OGU3NVx1N2FkM1x1ezI0YTc3fVx1N2EzZVx1NzhkOFx1NmNlYVx1OGE2N1x1NzYwNyJdLFsiYTA0MCIsIlx1ezI4YTVhfVx1OWYyNlx1NmNjZVx1ODdkNlx1NzVjM1x1ezJhMmIyfVx1Nzg1M1x1ezJm''@;'; + put 'put ''ODQwfVx1OGQwY1x1NzJlMlx1NzM3MVx1OGIyZFx1NzMwMlx1NzRmMVx1OGNlYlx1ezI0YWJifVx1ODYyZlx1NWZiYVx1ODhhMFx1NDRiNyJdLFsiYTA1NSIsIlx1ezIxODNifVx1ezI2ZTA1fSJdLFsiYTA1OCIsIlx1OGE3ZVx1ezIyNTFifSJdLFsiYTA1YiIsIlx1NjBmZFx1NzY2N1x1OWFk''@;'; + put 'put ''N1x1OWQ0NFx1OTM2ZVx1OWI4Zlx1ODdmNSJdLFsiYTA2MyIsIlx1ODgwZlx1OGNmN1x1NzMyY1x1OTcyMVx1OWJiMFx1MzVkNlx1NzJiMlx1NGMwN1x1N2M1MVx1OTk0YVx1ezI2MTU5fVx1NjE1OVx1NGMwNFx1OWU5Nlx1NjE3ZCJdLFsiYTA3MyIsIlx1NTc1Zlx1NjE2Zlx1NjJhNlx1NjIz''@;'; + put 'put ''OVx1NjJjZVx1M2E1Y1x1NjFlMlx1NTNhYVx1ezIzM2Y1fVx1NjM2NFx1NjgwMlx1MzVkMiJdLFsiYTBhMSIsIlx1NWQ1N1x1ezI4YmMyfVx1OGZkYVx1ezI4ZTM5fSJdLFsiYTBhNiIsIlx1NTBkOVx1ezIxZDQ2fVx1NzkwNlx1NTMzMlx1OTYzOFx1ezIwZjNifVx1NDA2NSJdLFsiYTBhZSIs''@;'; + put 'put ''Ilx1NzdmZSJdLFsiYTBiMCIsIlx1N2NjMlx1ezI1ZjFhfVx1N2NkYVx1N2EyZFx1ODA2Nlx1ODA2M1x1N2Q0ZFx1NzUwNVx1NzRmMlx1ODk5NFx1ODIxYVx1NjcwY1x1ODA2Mlx1ezI3NDg2fVx1ODA1Ylx1NzRmMFx1ODEwM1x1NzcyNFx1ODk4OVx1ezI2N2NjfVx1NzU1M1x1ezI2ZWQxfVx1''@;'; + put 'put ''ODdhOVx1ODdjZVx1ODFjOFx1ODc4Y1x1OGE0OVx1OGNhZFx1OGI0M1x1NzcyYlx1NzRmOFx1ODRkYVx1MzYzNVx1NjliMlx1OGRhNiJdLFsiYTBkNCIsIlx1ODlhOVx1NzQ2OFx1NmRiOVx1ODdjMVx1ezI0MDExfVx1NzRlN1x1M2RkYlx1NzE3Nlx1NjBhNFx1NjE5Y1x1M2NkMVx1NzE2Mlx1''@;'; + put 'put ''NjA3NyJdLFsiYTBlMiIsIlx1N2Y3MVx1ezI4YjJkfVx1NzI1MFx1NjBlOVx1NGI3ZVx1NTIyMFx1M2MxOFx1ezIzY2M3fVx1ezI1ZWQ3fVx1ezI3NjU2fVx1ezI1NTMxfVx1ezIxOTQ0fVx1ezIxMmZlfVx1ezI5OTAzfVx1ezI2ZGRjfVx1ezI3MGFkfVx1NWNjMVx1ezI2MWFkfVx1ezI4YTBm''@;'; + put 'put ''fVx1ezIzNjc3fVx1ezIwMGVlfVx1ezI2ODQ2fVx1ezI0ZjBlfVx1NDU2Mlx1NWIxZlx1ezI2MzRjfVx1OWY1MFx1OWVhNlx1ezI2MjZifSJdLFsiYTNjMCIsIlx1MjQwMCIsMzEsIlx1MjQyMSJdLFsiYzZhMSIsIlx1MjQ2MCIsOSwiXHUyNDc0Iiw5LCJcdTIxNzAiLDksIlx1NGUzNlx1NGUz''@;'; + put 'put ''Zlx1NGU4NVx1NGVhMFx1NTE4Mlx1NTE5Nlx1NTFhYlx1NTJmOVx1NTMzOFx1NTM2OVx1NTNiNlx1NTkwYVx1NWI4MFx1NWRkYlx1MmYzM1x1NWU3Zlx1NWVmNFx1NWY1MFx1NWY2MVx1NjUzNFx1NjVlMFx1NzU5Mlx1NzY3Nlx1OGZiNVx1OTZiNlx4YThcdTAyYzZcdTMwZmRcdTMwZmVcdTMw''@;'; + put 'put ''OWRcdTMwOWVcdTMwMDNcdTRlZGRcdTMwMDVcdTMwMDZcdTMwMDdcdTMwZmNcdWZmM2JcdWZmM2RcdTI3M2RcdTMwNDEiLDIzXSxbImM3NDAiLCJcdTMwNTkiLDU4LCJcdTMwYTFcdTMwYTJcdTMwYTNcdTMwYTQiXSxbImM3YTEiLCJcdTMwYTUiLDgxLCJcdTA0MTAiLDUsIlx1MDQwMVx1MDQx''@;'; + put 'put ''NiIsNF0sWyJjODQwIiwiXHUwNDFiIiwyNiwiXHUwNDUxXHUwNDM2IiwyNSwiXHUyMWU3XHUyMWI4XHUyMWI5XHUzMWNmXHV7MjAwY2N9XHU0ZTVhXHV7MjAwOGF9XHU1MjAyXHU0NDkxIl0sWyJjOGExIiwiXHU5ZmIwXHU1MTg4XHU5ZmIxXHV7Mjc2MDd9Il0sWyJjOGNkIiwiXHVmZmUyXHVm''@;'; + put 'put ''ZmU0XHVmZjA3XHVmZjAyXHUzMjMxXHUyMTE2XHUyMTIxXHUzMDliXHUzMDljXHUyZTgwXHUyZTg0XHUyZTg2XHUyZTg3XHUyZTg4XHUyZThhXHUyZThjXHUyZThkXHUyZTk1XHUyZTljXHUyZTlkXHUyZWE1XHUyZWE3XHUyZWFhXHUyZWFjXHUyZWFlXHUyZWI2XHUyZWJjXHUyZWJlXHUyZWM2''@;'; + put 'put ''XHUyZWNhXHUyZWNjXHUyZWNkXHUyZWNmXHUyZWQ2XHUyZWQ3XHUyZWRlXHUyZWUzIl0sWyJjOGY1IiwiXHUwMjgzXHUwMjUwXHUwMjViXHUwMjU0XHUwMjc1XHUwMTUzXHhmOFx1MDE0Ylx1MDI4YVx1MDI2YSJdLFsiZjlmZSIsIlx1ZmZlZCJdLFsiZmE0MCIsIlx1ezIwNTQ3fVx1OTJkYlx1''@;'; + put 'put ''ezIwNWRmfVx1ezIzZmM1fVx1ODU0Y1x1NDJiNVx1NzNlZlx1NTFiNVx1MzY0OVx1ezI0OTQyfVx1ezI4OWU0fVx1OTM0NFx1ezIxOWRifVx1ODJlZVx1ezIzY2M4fVx1NzgzY1x1Njc0NFx1NjJkZlx1ezI0OTMzfVx1ezI4OWFhfVx1ezIwMmEwfVx1ezI2YmIzfVx1ezIxMzA1fVx1NGZhYlx1''@;'; + put 'put ''ezIyNGVkfVx1NTAwOFx1ezI2ZDI5fVx1ezI3YTg0fVx1ezIzNjAwfVx1ezI0YWIxfVx1ezIyNTEzfVx1NTAyOVx1ezIwMzdlfVx1NWZhNFx1ezIwMzgwfVx1ezIwMzQ3fVx1NmVkYlx1ezIwNDFmfVx1NTA3ZFx1NTEwMVx1MzQ3YVx1NTEwZVx1OTg2Y1x1Mzc0M1x1ODQxNlx1ezI0OWE0fVx1''@;'; + put 'put ''ezIwNDg3fVx1NTE2MFx1ezIzM2I0fVx1NTE2YVx1ezIwYmZmfVx1ezIyMGZjfVx1ezIwMmU1fVx1ezIyNTMwfVx1ezIwNThlfVx1ezIzMjMzfVx1ezIxOTgzfVx1NWI4Mlx1ODc3ZFx1ezIwNWIzfVx1ezIzYzk5fVx1NTFiMlx1NTFiOCJdLFsiZmFhMSIsIlx1OWQzNFx1NTFjOVx1NTFjZlx1''@;'; + put 'put ''NTFkMVx1M2NkY1x1NTFkM1x1ezI0YWE2fVx1NTFiM1x1NTFlMlx1NTM0Mlx1NTFlZFx1ODNjZFx1NjkzZVx1ezIzNzJkfVx1NWY3Ylx1NTIwYlx1NTIyNlx1NTIzY1x1NTJiNVx1NTI1N1x1NTI5NFx1NTJiOVx1NTJjNVx1N2MxNVx1ODU0Mlx1NTJlMFx1ODYwZFx1ezI2YjEzfVx1NTMwNVx1''@;'; + put 'put ''ezI4YWRlfVx1NTU0OVx1NmVkOVx1ezIzZjgwfVx1ezIwOTU0fVx1ezIzZmVjfVx1NTMzM1x1NTM0NFx1ezIwYmUyfVx1NmNjYlx1ezIxNzI2fVx1NjgxYlx1NzNkNVx1NjA0YVx1M2VhYVx1MzhjY1x1ezIxNmU4fVx1NzFkZFx1NDRhMlx1NTM2ZFx1NTM3NFx1ezI4NmFifVx1NTM3ZVx1NTM3''@;'; + put 'put ''Zlx1ezIxNTk2fVx1ezIxNjEzfVx1NzdlNlx1NTM5M1x1ezI4YTlifVx1NTNhMFx1NTNhYlx1NTNhZVx1NzNhN1x1ezI1NzcyfVx1M2Y1OVx1NzM5Y1x1NTNjMVx1NTNjNVx1NmM0OVx1NGU0OVx1NTdmZVx1NTNkOVx1M2FhYlx1ezIwYjhmfVx1NTNlMFx1ezIzZmVifVx1ezIyZGEzfVx1NTNm''@;'; + put 'put ''Nlx1ezIwYzc3fVx1NTQxM1x1NzA3OVx1NTUyYlx1NjY1N1x1NmQ1Ylx1NTQ2ZFx1ezI2YjUzfVx1ezIwZDc0fVx1NTU1ZFx1NTQ4Zlx1NTRhNFx1NDdhNlx1ezIxNzBkfVx1ezIwZWRkfVx1M2RiNFx1ezIwZDRkfSJdLFsiZmI0MCIsIlx1ezI4OWJjfVx1ezIyNjk4fVx1NTU0N1x1NGNlZFx1''@;'; + put 'put ''NTQyZlx1NzQxN1x1NTU4Nlx1NTVhOVx1NTYwNVx1ezIxOGQ3fVx1ezI0MDNhfVx1NDU1Mlx1ezI0NDM1fVx1NjZiM1x1ezIxMGI0fVx1NTYzN1x1NjZjZFx1ezIzMjhhfVx1NjZhNFx1NjZhZFx1NTY0ZFx1NTY0Zlx1NzhmMVx1NTZmMVx1OTc4N1x1NTNmZVx1NTcwMFx1NTZlZlx1NTZlZFx1''@;'; + put 'put ''ezI4YjY2fVx1MzYyM1x1ezIxMjRmfVx1NTc0Nlx1ezI0MWE1fVx1NmM2ZVx1NzA4Ylx1NTc0Mlx1MzZiMVx1ezI2YzdlfVx1NTdlNlx1ezIxNDE2fVx1NTgwM1x1ezIxNDU0fVx1ezI0MzYzfVx1NTgyNlx1ezI0YmY1fVx1NTg1Y1x1NThhYVx1MzU2MVx1NThlMFx1NThkY1x1ezIxMjNjfVx1''@;'; + put 'put ''NThmYlx1NWJmZlx1NTc0M1x1ezJhMTUwfVx1ezI0Mjc4fVx1OTNkM1x1MzVhMVx1NTkxZlx1NjhhNlx1MzZjM1x1NmU1OSJdLFsiZmJhMSIsIlx1ezIxNjNlfVx1NWEyNFx1NTU1M1x1ezIxNjkyfVx1ODUwNVx1NTljOVx1ezIwZDRlfVx1ezI2YzgxfVx1ezI2ZDJhfVx1ezIxN2RjfVx1NTlk''@;'; + put 'put ''OVx1ezIxN2ZifVx1ezIxN2IyfVx1ezI2ZGE2fVx1NmQ3MVx1ezIxODI4fVx1ezIxNmQ1fVx1NTlmOVx1ezI2ZTQ1fVx1NWFhYlx1NWE2M1x1MzZlNlx1ezI0OWE5fVx1NWE3N1x1MzcwOFx1NWE5Nlx1NzQ2NVx1NWFkM1x1ezI2ZmExfVx1ezIyNTU0fVx1M2Q4NVx1ezIxOTExfVx1MzczMlx1''@;'; + put 'put ''ezIxNmI4fVx1NWU4M1x1NTJkMFx1NWI3Nlx1NjU4OFx1NWI3Y1x1ezI3YTBlfVx1NDAwNFx1NDg1ZFx1ezIwMjA0fVx1NWJkNVx1NjE2MFx1ezIxYTM0fVx1ezI1OWNjfVx1ezIwNWE1fVx1NWJmM1x1NWI5ZFx1NGQxMFx1NWMwNVx1ezIxYjQ0fVx1NWMxM1x1NzNjZVx1NWMxNFx1ezIxY2E1''@;'; + put 'put ''fVx1ezI2YjI4fVx1NWM0OVx1NDhkZFx1NWM4NVx1NWNlOVx1NWNlZlx1NWQ4Ylx1ezIxZGY5fVx1ezIxZTM3fVx1NWQxMFx1NWQxOFx1NWQ0Nlx1ezIxZWE0fVx1NWNiYVx1NWRkN1x1ODJmY1x1MzgyZFx1ezI0OTAxfVx1ezIyMDQ5fVx1ezIyMTczfVx1ODI4N1x1MzgzNlx1M2JjMlx1NWUy''@;'; + put 'put ''ZVx1NmE4YVx1NWU3NVx1NWU3YVx1ezI0NGJjfVx1ezIwY2QzfVx1NTNhNlx1NGViN1x1NWVkMFx1NTNhOFx1ezIxNzcxfVx1NWUwOVx1NWVmNFx1ezI4NDgyfSJdLFsiZmM0MCIsIlx1NWVmOVx1NWVmYlx1MzhhMFx1NWVmY1x1NjgzZVx1OTQxYlx1NWYwZFx1ezIwMWMxfVx1ezJmODk0fVx1''@;'; + put 'put ''M2FkZVx1NDhhZVx1ezIxMzNhfVx1NWYzYVx1ezI2ODg4fVx1ezIyM2QwfVx1NWY1OFx1ezIyNDcxfVx1NWY2M1x1OTdiZFx1ezI2ZTZlfVx1NWY3Mlx1OTM0MFx1ezI4YTM2fVx1NWZhN1x1NWRiNlx1M2Q1Zlx1ezI1MjUwfVx1ezIxZjZhfVx1ezI3MGY4fVx1ezIyNjY4fVx1OTFkNlx1ezIw''@;'; + put 'put ''MjllfVx1ezI4YTI5fVx1NjAzMVx1NjY4NVx1ezIxODc3fVx1Mzk2M1x1M2RjN1x1MzYzOVx1NTc5MFx1ezIyN2I0fVx1Nzk3MVx1M2U0MFx1NjA5ZVx1NjBhNFx1NjBiM1x1ezI0OTgyfVx1ezI0OThmfVx1ezI3YTUzfVx1NzRhNFx1NTBlMVx1NWFhMFx1NjE2NFx1ODQyNFx1NjE0Mlx1ezJm''@;'; + put 'put ''OGE2fVx1ezI2ZWQyfVx1NjE4MVx1NTFmNFx1ezIwNjU2fVx1NjE4N1x1NWJhYVx1ezIzZmI3fSJdLFsiZmNhMSIsIlx1ezIyODVmfVx1NjFkM1x1ezI4YjlkfVx1ezI5OTVkfVx1NjFkMFx1MzkzMlx1ezIyOTgwfVx1ezIyOGMxfVx1NjAyM1x1NjE1Y1x1NjUxZVx1NjM4Ylx1ezIwMTE4fVx1''@;'; + put 'put ''NjJjNVx1ezIxNzcwfVx1NjJkNVx1ezIyZTBkfVx1NjM2Y1x1ezI0OWRmfVx1M2ExN1x1NjQzOFx1NjNmOFx1ezIxMzhlfVx1ezIxN2ZjfVx1NjQ5MFx1NmY4YVx1ezIyZTM2fVx1OTgxNFx1ezI0MDhjfVx1ezI1NzFkfVx1NjRlMVx1NjRlNVx1OTQ3Ylx1M2E2Nlx1NjQzYVx1M2E1N1x1NjU0''@;'; + put 'put ''ZFx1NmYxNlx1ezI0YTI4fVx1ezI0YTIzfVx1NjU4NVx1NjU2ZFx1NjU1Zlx1ezIzMDdlfVx1NjViNVx1ezI0OTQwfVx1NGIzN1x1NjVkMVx1NDBkOFx1ezIxODI5fVx1NjVlMFx1NjVlM1x1NWZkZlx1ezIzNDAwfVx1NjYxOFx1ezIzMWY3fVx1ezIzMWY4fVx1NjY0NFx1ezIzMWE0fVx1ezIz''@;'; + put 'put ''MWE1fVx1NjY0Ylx1ezIwZTc1fVx1NjY2N1x1ezI1MWU2fVx1NjY3M1x1NjY3NFx1ezIxZTNkfVx1ezIzMjMxfVx1ezI4NWY0fVx1ezIzMWM4fVx1ezI1MzEzfVx1NzdjNVx1ezIyOGY3fVx1OTlhNFx1NjcwMlx1ezI0MzljfVx1ezI0YTIxfVx1M2IyYlx1NjlmYVx1ezIzN2MyfVx1Njc1ZVx1''@;'; + put 'put ''Njc2N1x1Njc2Mlx1ezI0MWNkfVx1ezI5MGVkfVx1NjdkN1x1NDRlOVx1NjgyMlx1NmU1MFx1OTIzY1x1NjgwMVx1ezIzM2U2fVx1ezI2ZGEwfVx1Njg1ZCJdLFsiZmQ0MCIsIlx1ezIzNDZmfVx1NjllMVx1NmEwYlx1ezI4YWRmfVx1Njk3M1x1NjhjM1x1ezIzNWNkfVx1NjkwMVx1NjkwMFx1''@;'; + put 'put ''M2QzMlx1M2EwMVx1ezIzNjNjfVx1M2I4MFx1NjdhY1x1Njk2MVx1ezI4YTRhfVx1NDJmY1x1NjkzNlx1Njk5OFx1M2JhMVx1ezIwM2M5fVx1ODM2M1x1NTA5MFx1NjlmOVx1ezIzNjU5fVx1ezIyMTJhfVx1NmE0NVx1ezIzNzAzfVx1NmE5ZFx1M2JmM1x1NjdiMVx1NmFjOFx1ezI5MTljfVx1''@;'; + put 'put ''M2MwZFx1NmIxZFx1ezIwOTIzfVx1NjBkZVx1NmIzNVx1NmI3NFx1ezIyN2NkfVx1NmViNVx1ezIzYWRifVx1ezIwM2I1fVx1ezIxOTU4fVx1Mzc0MFx1NTQyMVx1ezIzYjVhfVx1NmJlMVx1ezIzZWZjfVx1NmJkY1x1NmMzN1x1ezIyNDhifVx1ezI0OGYxfVx1ezI2YjUxfVx1NmM1YVx1ODIy''@;'; + put 'put ''Nlx1NmM3OVx1ezIzZGJjfVx1NDRjNVx1ezIzZGJkfVx1ezI0MWE0fVx1ezI0OTBjfVx1ezI0OTAwfSJdLFsiZmRhMSIsIlx1ezIzY2M5fVx1MzZlNVx1M2NlYlx1ezIwZDMyfVx1OWI4M1x1ezIzMWY5fVx1ezIyNDkxfVx1N2Y4Zlx1NjgzN1x1ezI2ZDI1fVx1ezI2ZGExfVx1ezI2ZGVifVx1''@;'; + put 'put ''NmQ5Nlx1NmQ1Y1x1NmU3Y1x1NmYwNFx1ezI0OTdmfVx1ezI0MDg1fVx1ezI2ZTcyfVx1ODUzM1x1ezI2Zjc0fVx1NTFjN1x1NmM5Y1x1NmUxZFx1ODQyZVx1ezI4YjIxfVx1NmUyZlx1ezIzZTJmfVx1NzQ1M1x1ezIzZjgyfVx1NzljY1x1NmU0Zlx1NWE5MVx1ezIzMDRifVx1NmZmOFx1Mzcw''@;'; + put 'put ''ZFx1NmY5ZFx1ezIzZTMwfVx1NmVmYVx1ezIxNDk3fVx1ezI0MDNkfVx1NDU1NVx1OTNmMFx1NmY0NFx1NmY1Y1x1M2Q0ZVx1NmY3NFx1ezI5MTcwfVx1M2QzYlx1NmY5Zlx1ezI0MTQ0fVx1NmZkM1x1ezI0MDkxfVx1ezI0MTU1fVx1ezI0MDM5fVx1ezIzZmYwfVx1ezIzZmI0fVx1ezI0MTNm''@;'; + put 'put ''fVx1NTFkZlx1ezI0MTU2fVx1ezI0MTU3fVx1ezI0MTQwfVx1ezI2MWRkfVx1NzA0Ylx1NzA3ZVx1NzBhN1x1NzA4MVx1NzBjY1x1NzBkNVx1NzBkNlx1NzBkZlx1NDEwNFx1M2RlOFx1NzFiNFx1NzE5Nlx1ezI0Mjc3fVx1NzEyYlx1NzE0NVx1NWE4OFx1NzE0YVx1NzE2ZVx1NWM5Y1x1ezI0''@;'; + put 'put ''MzY1fVx1NzE0Zlx1OTM2Mlx1ezI0MmMxfVx1NzEyY1x1ezI0NDVhfVx1ezI0YTI3fVx1ezI0YTIyfVx1NzFiYVx1ezI4YmU4fVx1NzBiZFx1NzIwZSJdLFsiZmU0MCIsIlx1OTQ0Mlx1NzIxNVx1NTkxMVx1OTQ0M1x1NzIyNFx1OTM0MVx1ezI1NjA1fVx1NzIyZVx1NzI0MFx1ezI0OTc0fVx1''@;'; + put 'put ''NjhiZFx1NzI1NVx1NzI1N1x1M2U1NVx1ezIzMDQ0fVx1NjgwZFx1NmYzZFx1NzI4Mlx1NzMyYVx1NzMyYlx1ezI0ODIzfVx1ezI4ODJifVx1NDhlZFx1ezI4ODA0fVx1NzMyOFx1NzMyZVx1NzNjZlx1NzNhYVx1ezIwYzNhfVx1ezI2YTJlfVx1NzNjOVx1NzQ0OVx1ezI0MWUyfVx1ezIxNmU3''@;'; + put 'put ''fVx1ezI0YTI0fVx1NjYyM1x1MzZjNVx1ezI0OWI3fVx1ezI0OThkfVx1ezI0OWZifVx1NzNmN1x1NzQxNVx1NjkwM1x1ezI0YTI2fVx1NzQzOVx1ezIwNWMzfVx1M2VkN1x1NzQ1Y1x1ezIyOGFkfVx1NzQ2MFx1ezI4ZWIyfVx1NzQ0N1x1NzNlNFx1NzQ3Nlx1ODNiOVx1NzQ2Y1x1MzczMFx1''@;'; + put 'put ''NzQ3NFx1OTNmMVx1NmEyY1x1NzQ4Mlx1NDk1M1x1ezI0YThjfSJdLFsiZmVhMSIsIlx1ezI0MTVmfVx1ezI0YTc5fVx1ezI4YjhmfVx1NWI0Nlx1ezI4YzAzfVx1ezIxODllfVx1NzRjOFx1ezIxOTg4fVx1NzUwZVx1NzRlOVx1NzUxZVx1ezI4ZWQ5fVx1ezIxYTRifVx1NWJkN1x1ezI4ZWFj''@;'; + put 'put ''fVx1OTM4NVx1NzU0ZFx1NzU0YVx1NzU2N1x1NzU2ZVx1ezI0ZjgyfVx1M2YwNFx1ezI0ZDEzfVx1NzU4ZVx1NzQ1ZFx1NzU5ZVx1NzViNFx1NzYwMlx1NzYyY1x1NzY1MVx1NzY0Zlx1NzY2Zlx1NzY3Nlx1ezI2M2Y1fVx1NzY5MFx1ODFlZlx1MzdmOFx1ezI2OTExfVx1ezI2OTBlfVx1NzZh''@;'; + put 'put ''MVx1NzZhNVx1NzZiN1x1NzZjY1x1ezI2ZjlmfVx1ODQ2Mlx1ezI1MDlkfVx1ezI1MTdkfVx1ezIxZTFjfVx1NzcxZVx1NzcyNlx1Nzc0MFx1NjRhZlx1ezI1MjIwfVx1Nzc1OFx1ezIzMmFjfVx1NzdhZlx1ezI4OTY0fVx1ezI4OTY4fVx1ezIxNmMxfVx1NzdmNFx1NzgwOVx1ezIxMzc2fVx1''@;'; + put 'put ''ezI0YTEyfVx1NjhjYVx1NzhhZlx1NzhjN1x1NzhkM1x1OTZhNVx1NzkyZVx1ezI1NWUwfVx1NzhkN1x1NzkzNFx1NzhiMVx1ezI3NjBjfVx1OGZiOFx1ODg4NFx1ezI4YjJifVx1ezI2MDgzfVx1ezIyNjFjfVx1Nzk4Nlx1ODkwMFx1NjkwMlx1Nzk4MFx1ezI1ODU3fVx1Nzk5ZFx1ezI3YjM5''@;'; + put 'put ''fVx1NzkzY1x1NzlhOVx1NmUyYVx1ezI3MTI2fVx1M2VhOFx1NzljNlx1ezI5MTBkfVx1NzlkNCJdXScpfSwxMzMzNjpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPUpTT04ucGFyc2UoJ1tbIjAiLCJcXHUwMDAwIiwxMjcsIlx1MjBhYyJdLFsiODE0MCIsIlx1NGUwMlx1NGUwNFx1NGUw''@;'; + put 'put ''NVx1NGUwNlx1NGUwZlx1NGUxMlx1NGUxN1x1NGUxZlx1NGUyMFx1NGUyMVx1NGUyM1x1NGUyNlx1NGUyOVx1NGUyZVx1NGUyZlx1NGUzMVx1NGUzM1x1NGUzNVx1NGUzN1x1NGUzY1x1NGU0MFx1NGU0MVx1NGU0Mlx1NGU0NFx1NGU0Nlx1NGU0YVx1NGU1MVx1NGU1NVx1NGU1N1x1NGU1YVx1''@;'; + put 'put ''NGU1Ylx1NGU2Mlx1NGU2M1x1NGU2NFx1NGU2NVx1NGU2N1x1NGU2OFx1NGU2YSIsNSwiXHU0ZTcyXHU0ZTc0Iiw5LCJcdTRlN2YiLDYsIlx1NGU4N1x1NGU4YSJdLFsiODE4MCIsIlx1NGU5MFx1NGU5Nlx1NGU5N1x1NGU5OVx1NGU5Y1x1NGU5ZFx1NGU5ZVx1NGVhM1x1NGVhYVx1NGVhZlx1''@;'; + put 'put ''NGViMFx1NGViMVx1NGViNFx1NGViNlx1NGViN1x1NGViOFx1NGViOVx1NGViY1x1NGViZFx1NGViZVx1NGVjOFx1NGVjY1x1NGVjZlx1NGVkMFx1NGVkMlx1NGVkYVx1NGVkYlx1NGVkY1x1NGVlMFx1NGVlMlx1NGVlNlx1NGVlN1x1NGVlOVx1NGVlZFx1NGVlZVx1NGVlZlx1NGVmMVx1NGVm''@;'; + put 'put ''NFx1NGVmOFx1NGVmOVx1NGVmYVx1NGVmY1x1NGVmZVx1NGYwMFx1NGYwMiIsNiwiXHU0ZjBiXHU0ZjBjXHU0ZjEyIiw0LCJcdTRmMWNcdTRmMWRcdTRmMjFcdTRmMjNcdTRmMjhcdTRmMjlcdTRmMmNcdTRmMmRcdTRmMmVcdTRmMzFcdTRmMzNcdTRmMzVcdTRmMzdcdTRmMzlcdTRmM2JcdTRm''@;'; + put 'put ''M2UiLDQsIlx1NGY0NFx1NGY0NVx1NGY0NyIsNSwiXHU0ZjUyXHU0ZjU0XHU0ZjU2XHU0ZjYxXHU0ZjYyXHU0ZjY2XHU0ZjY4XHU0ZjZhXHU0ZjZiXHU0ZjZkXHU0ZjZlXHU0ZjcxXHU0ZjcyXHU0Zjc1XHU0Zjc3XHU0Zjc4XHU0Zjc5XHU0ZjdhXHU0ZjdkXHU0ZjgwXHU0ZjgxXHU0ZjgyXHU0''@;'; + put 'put ''Zjg1XHU0Zjg2XHU0Zjg3XHU0ZjhhXHU0ZjhjXHU0ZjhlXHU0ZjkwXHU0ZjkyXHU0ZjkzXHU0Zjk1XHU0Zjk2XHU0Zjk4XHU0Zjk5XHU0ZjlhXHU0ZjljXHU0ZjllXHU0ZjlmXHU0ZmExXHU0ZmEyIl0sWyI4MjQwIiwiXHU0ZmE0XHU0ZmFiXHU0ZmFkXHU0ZmIwIiw0LCJcdTRmYjYiLDgsIlx1''@;'; + put 'put ''NGZjMFx1NGZjMVx1NGZjMlx1NGZjNlx1NGZjN1x1NGZjOFx1NGZjOVx1NGZjYlx1NGZjY1x1NGZjZFx1NGZkMiIsNCwiXHU0ZmQ5XHU0ZmRiXHU0ZmUwXHU0ZmUyXHU0ZmU0XHU0ZmU1XHU0ZmU3XHU0ZmViXHU0ZmVjXHU0ZmYwXHU0ZmYyXHU0ZmY0XHU0ZmY1XHU0ZmY2XHU0ZmY3XHU0ZmY5''@;'; + put 'put ''XHU0ZmZiXHU0ZmZjXHU0ZmZkXHU0ZmZmIiwxMV0sWyI4MjgwIiwiXHU1MDBiXHU1MDBlXHU1MDEwXHU1MDExXHU1MDEzXHU1MDE1XHU1MDE2XHU1MDE3XHU1MDFiXHU1MDFkXHU1MDFlXHU1MDIwXHU1MDIyXHU1MDIzXHU1MDI0XHU1MDI3XHU1MDJiXHU1MDJmIiwxMCwiXHU1MDNiXHU1MDNk''@;'; + put 'put ''XHU1MDNmXHU1MDQwXHU1MDQxXHU1MDQyXHU1MDQ0XHU1MDQ1XHU1MDQ2XHU1MDQ5XHU1MDRhXHU1MDRiXHU1MDRkXHU1MDUwIiw0LCJcdTUwNTZcdTUwNTdcdTUwNThcdTUwNTlcdTUwNWJcdTUwNWQiLDcsIlx1NTA2NiIsNSwiXHU1MDZkIiw4LCJcdTUwNzhcdTUwNzlcdTUwN2FcdTUwN2Nc''@;'; + put 'put ''dTUwN2RcdTUwODFcdTUwODJcdTUwODNcdTUwODRcdTUwODZcdTUwODdcdTUwODlcdTUwOGFcdTUwOGJcdTUwOGNcdTUwOGUiLDIwLCJcdTUwYTRcdTUwYTZcdTUwYWFcdTUwYWJcdTUwYWQiLDQsIlx1NTBiMyIsNiwiXHU1MGJjIl0sWyI4MzQwIiwiXHU1MGJkIiwxNywiXHU1MGQwIiw1LCJc''@;'; + put 'put ''dTUwZDdcdTUwZDhcdTUwZDlcdTUwZGIiLDEwLCJcdTUwZThcdTUwZTlcdTUwZWFcdTUwZWJcdTUwZWZcdTUwZjBcdTUwZjFcdTUwZjJcdTUwZjRcdTUwZjYiLDQsIlx1NTBmYyIsOSwiXHU1MTA4Il0sWyI4MzgwIiwiXHU1MTA5XHU1MTBhXHU1MTBjIiw1LCJcdTUxMTMiLDEzLCJcdTUxMjIi''@;'; + put 'put ''LDI4LCJcdTUxNDJcdTUxNDdcdTUxNGFcdTUxNGNcdTUxNGVcdTUxNGZcdTUxNTBcdTUxNTJcdTUxNTNcdTUxNTdcdTUxNThcdTUxNTlcdTUxNWJcdTUxNWQiLDQsIlx1NTE2M1x1NTE2NFx1NTE2Nlx1NTE2N1x1NTE2OVx1NTE2YVx1NTE2Zlx1NTE3Mlx1NTE3YVx1NTE3ZVx1NTE3Zlx1NTE4''@;'; + put 'put ''M1x1NTE4NFx1NTE4Nlx1NTE4N1x1NTE4YVx1NTE4Ylx1NTE4ZVx1NTE4Zlx1NTE5MFx1NTE5MVx1NTE5M1x1NTE5NFx1NTE5OFx1NTE5YVx1NTE5ZFx1NTE5ZVx1NTE5Zlx1NTFhMVx1NTFhM1x1NTFhNiIsNCwiXHU1MWFkXHU1MWFlXHU1MWI0XHU1MWI4XHU1MWI5XHU1MWJhXHU1MWJlXHU1''@;'; + put 'put ''MWJmXHU1MWMxXHU1MWMyXHU1MWMzXHU1MWM1XHU1MWM4XHU1MWNhXHU1MWNkXHU1MWNlXHU1MWQwXHU1MWQyIiw1XSxbIjg0NDAiLCJcdTUxZDhcdTUxZDlcdTUxZGFcdTUxZGNcdTUxZGVcdTUxZGZcdTUxZTJcdTUxZTNcdTUxZTUiLDUsIlx1NTFlY1x1NTFlZVx1NTFmMVx1NTFmMlx1NTFm''@;'; + put 'put ''NFx1NTFmN1x1NTFmZVx1NTIwNFx1NTIwNVx1NTIwOVx1NTIwYlx1NTIwY1x1NTIwZlx1NTIxMFx1NTIxM1x1NTIxNFx1NTIxNVx1NTIxY1x1NTIxZVx1NTIxZlx1NTIyMVx1NTIyMlx1NTIyM1x1NTIyNVx1NTIyNlx1NTIyN1x1NTIyYVx1NTIyY1x1NTIyZlx1NTIzMVx1NTIzMlx1NTIzNFx1''@;'; + put 'put ''NTIzNVx1NTIzY1x1NTIzZVx1NTI0NCIsNSwiXHU1MjRiXHU1MjRlXHU1MjRmXHU1MjUyXHU1MjUzXHU1MjU1XHU1MjU3XHU1MjU4Il0sWyI4NDgwIiwiXHU1MjU5XHU1MjVhXHU1MjViXHU1MjVkXHU1MjVmXHU1MjYwXHU1MjYyXHU1MjYzXHU1MjY0XHU1MjY2XHU1MjY4XHU1MjZiXHU1MjZj''@;'; + put 'put ''XHU1MjZkXHU1MjZlXHU1MjcwXHU1MjcxXHU1MjczIiw5LCJcdTUyN2VcdTUyODBcdTUyODMiLDQsIlx1NTI4OSIsNiwiXHU1MjkxXHU1MjkyXHU1Mjk0Iiw2LCJcdTUyOWNcdTUyYTRcdTUyYTVcdTUyYTZcdTUyYTdcdTUyYWVcdTUyYWZcdTUyYjBcdTUyYjQiLDksIlx1NTJjMFx1NTJjMVx1''@;'; + put 'put ''NTJjMlx1NTJjNFx1NTJjNVx1NTJjNlx1NTJjOFx1NTJjYVx1NTJjY1x1NTJjZFx1NTJjZVx1NTJjZlx1NTJkMVx1NTJkM1x1NTJkNFx1NTJkNVx1NTJkN1x1NTJkOSIsNSwiXHU1MmUwXHU1MmUxXHU1MmUyXHU1MmUzXHU1MmU1IiwxMCwiXHU1MmYxIiw3LCJcdTUyZmJcdTUyZmNcdTUyZmRc''@;'; + put 'put ''dTUzMDFcdTUzMDJcdTUzMDNcdTUzMDRcdTUzMDdcdTUzMDlcdTUzMGFcdTUzMGJcdTUzMGNcdTUzMGUiXSxbIjg1NDAiLCJcdTUzMTFcdTUzMTJcdTUzMTNcdTUzMTRcdTUzMThcdTUzMWJcdTUzMWNcdTUzMWVcdTUzMWZcdTUzMjJcdTUzMjRcdTUzMjVcdTUzMjdcdTUzMjhcdTUzMjlcdTUz''@;'; + put 'put ''MmJcdTUzMmNcdTUzMmRcdTUzMmYiLDksIlx1NTMzY1x1NTMzZFx1NTM0MFx1NTM0Mlx1NTM0NFx1NTM0Nlx1NTM0Ylx1NTM0Y1x1NTM0ZFx1NTM1MFx1NTM1NFx1NTM1OFx1NTM1OVx1NTM1Ylx1NTM1ZFx1NTM2NVx1NTM2OFx1NTM2YVx1NTM2Y1x1NTM2ZFx1NTM3Mlx1NTM3Nlx1NTM3OVx1''@;'; + put 'put ''NTM3Ylx1NTM3Y1x1NTM3ZFx1NTM3ZVx1NTM4MFx1NTM4MVx1NTM4M1x1NTM4N1x1NTM4OFx1NTM4YVx1NTM4ZVx1NTM4ZiJdLFsiODU4MCIsIlx1NTM5MCIsNCwiXHU1Mzk2XHU1Mzk3XHU1Mzk5XHU1MzliXHU1MzljXHU1MzllXHU1M2EwXHU1M2ExXHU1M2E0XHU1M2E3XHU1M2FhXHU1M2Fi''@;'; + put 'put ''XHU1M2FjXHU1M2FkXHU1M2FmIiw2LCJcdTUzYjdcdTUzYjhcdTUzYjlcdTUzYmFcdTUzYmNcdTUzYmRcdTUzYmVcdTUzYzBcdTUzYzMiLDQsIlx1NTNjZVx1NTNjZlx1NTNkMFx1NTNkMlx1NTNkM1x1NTNkNVx1NTNkYVx1NTNkY1x1NTNkZFx1NTNkZVx1NTNlMVx1NTNlMlx1NTNlN1x1NTNm''@;'; + put 'put ''NFx1NTNmYVx1NTNmZVx1NTNmZlx1NTQwMFx1NTQwMlx1NTQwNVx1NTQwN1x1NTQwYlx1NTQxNFx1NTQxOFx1NTQxOVx1NTQxYVx1NTQxY1x1NTQyMlx1NTQyNFx1NTQyNVx1NTQyYVx1NTQzMFx1NTQzM1x1NTQzNlx1NTQzN1x1NTQzYVx1NTQzZFx1NTQzZlx1NTQ0MVx1NTQ0Mlx1NTQ0NFx1''@;'; + put 'put ''NTQ0NVx1NTQ0N1x1NTQ0OVx1NTQ0Y1x1NTQ0ZFx1NTQ0ZVx1NTQ0Zlx1NTQ1MVx1NTQ1YVx1NTQ1ZCIsNCwiXHU1NDYzXHU1NDY1XHU1NDY3XHU1NDY5Iiw3LCJcdTU0NzRcdTU0NzlcdTU0N2FcdTU0N2VcdTU0N2ZcdTU0ODFcdTU0ODNcdTU0ODVcdTU0ODdcdTU0ODhcdTU0ODlcdTU0OGFc''@;'; + put 'put ''dTU0OGRcdTU0OTFcdTU0OTNcdTU0OTdcdTU0OThcdTU0OWNcdTU0OWVcdTU0OWZcdTU0YTBcdTU0YTEiXSxbIjg2NDAiLCJcdTU0YTJcdTU0YTVcdTU0YWVcdTU0YjBcdTU0YjJcdTU0YjVcdTU0YjZcdTU0YjdcdTU0YjlcdTU0YmFcdTU0YmNcdTU0YmVcdTU0YzNcdTU0YzVcdTU0Y2FcdTU0''@;'; + put 'put ''Y2JcdTU0ZDZcdTU0ZDhcdTU0ZGJcdTU0ZTAiLDQsIlx1NTRlYlx1NTRlY1x1NTRlZlx1NTRmMFx1NTRmMVx1NTRmNCIsNSwiXHU1NGZiXHU1NGZlXHU1NTAwXHU1NTAyXHU1NTAzXHU1NTA0XHU1NTA1XHU1NTA4XHU1NTBhIiw0LCJcdTU1MTJcdTU1MTNcdTU1MTUiLDUsIlx1NTUxY1x1NTUx''@;'; + put 'put ''ZFx1NTUxZVx1NTUxZlx1NTUyMVx1NTUyNVx1NTUyNiJdLFsiODY4MCIsIlx1NTUyOFx1NTUyOVx1NTUyYlx1NTUyZFx1NTUzMlx1NTUzNFx1NTUzNVx1NTUzNlx1NTUzOFx1NTUzOVx1NTUzYVx1NTUzYlx1NTUzZFx1NTU0MFx1NTU0Mlx1NTU0NVx1NTU0N1x1NTU0OFx1NTU0YiIsNCwiXHU1''@;'; + put 'put ''NTUxXHU1NTUyXHU1NTUzXHU1NTU0XHU1NTU3Iiw0LCJcdTU1NWRcdTU1NWVcdTU1NWZcdTU1NjBcdTU1NjJcdTU1NjNcdTU1NjhcdTU1NjlcdTU1NmJcdTU1NmYiLDUsIlx1NTU3OVx1NTU3YVx1NTU3ZFx1NTU3Zlx1NTU4NVx1NTU4Nlx1NTU4Y1x1NTU4ZFx1NTU4ZVx1NTU5MFx1NTU5Mlx1''@;'; + put 'put ''NTU5M1x1NTU5NVx1NTU5Nlx1NTU5N1x1NTU5YVx1NTU5Ylx1NTU5ZVx1NTVhMCIsNiwiXHU1NWE4Iiw4LCJcdTU1YjJcdTU1YjRcdTU1YjZcdTU1YjhcdTU1YmFcdTU1YmNcdTU1YmYiLDQsIlx1NTVjNlx1NTVjN1x1NTVjOFx1NTVjYVx1NTVjYlx1NTVjZVx1NTVjZlx1NTVkMFx1NTVkNVx1''@;'; + put 'put ''NTVkNyIsNCwiXHU1NWRlXHU1NWUwXHU1NWUyXHU1NWU3XHU1NWU5XHU1NWVkXHU1NWVlXHU1NWYwXHU1NWYxXHU1NWY0XHU1NWY2XHU1NWY4Iiw0LCJcdTU1ZmZcdTU2MDJcdTU2MDNcdTU2MDRcdTU2MDUiXSxbIjg3NDAiLCJcdTU2MDZcdTU2MDdcdTU2MGFcdTU2MGJcdTU2MGRcdTU2MTAi''@;'; + put 'put ''LDcsIlx1NTYxOVx1NTYxYVx1NTYxY1x1NTYxZFx1NTYyMFx1NTYyMVx1NTYyMlx1NTYyNVx1NTYyNlx1NTYyOFx1NTYyOVx1NTYyYVx1NTYyYlx1NTYyZVx1NTYyZlx1NTYzMFx1NTYzM1x1NTYzNVx1NTYzN1x1NTYzOFx1NTYzYVx1NTYzY1x1NTYzZFx1NTYzZVx1NTY0MCIsMTEsIlx1NTY0''@;'; + put 'put ''ZiIsNCwiXHU1NjU1XHU1NjU2XHU1NjVhXHU1NjViXHU1NjVkIiw0XSxbIjg3ODAiLCJcdTU2NjNcdTU2NjVcdTU2NjZcdTU2NjdcdTU2NmRcdTU2NmVcdTU2NmZcdTU2NzBcdTU2NzJcdTU2NzNcdTU2NzRcdTU2NzVcdTU2NzdcdTU2NzhcdTU2NzlcdTU2N2FcdTU2N2QiLDcsIlx1NTY4NyIs''@;'; + put 'put ''NiwiXHU1NjkwXHU1NjkxXHU1NjkyXHU1Njk0IiwxNCwiXHU1NmE0IiwxMCwiXHU1NmIwIiw2LCJcdTU2YjhcdTU2YjlcdTU2YmFcdTU2YmJcdTU2YmQiLDEyLCJcdTU2Y2IiLDgsIlx1NTZkNVx1NTZkNlx1NTZkOFx1NTZkOVx1NTZkY1x1NTZlM1x1NTZlNSIsNSwiXHU1NmVjXHU1NmVlXHU1''@;'; + put 'put ''NmVmXHU1NmYyXHU1NmYzXHU1NmY2XHU1NmY3XHU1NmY4XHU1NmZiXHU1NmZjXHU1NzAwXHU1NzAxXHU1NzAyXHU1NzA1XHU1NzA3XHU1NzBiIiw2XSxbIjg4NDAiLCJcdTU3MTIiLDksIlx1NTcxZFx1NTcxZVx1NTcyMFx1NTcyMVx1NTcyMlx1NTcyNFx1NTcyNVx1NTcyNlx1NTcyN1x1NTcy''@;'; + put 'put ''Ylx1NTczMVx1NTczMlx1NTczNCIsNCwiXHU1NzNjXHU1NzNkXHU1NzNmXHU1NzQxXHU1NzQzXHU1NzQ0XHU1NzQ1XHU1NzQ2XHU1NzQ4XHU1NzQ5XHU1NzRiXHU1NzUyIiw0LCJcdTU3NThcdTU3NTlcdTU3NjJcdTU3NjNcdTU3NjVcdTU3NjdcdTU3NmNcdTU3NmVcdTU3NzBcdTU3NzFcdTU3''@;'; + put 'put ''NzJcdTU3NzRcdTU3NzVcdTU3NzhcdTU3NzlcdTU3N2FcdTU3N2RcdTU3N2VcdTU3N2ZcdTU3ODAiXSxbIjg4ODAiLCJcdTU3ODFcdTU3ODdcdTU3ODhcdTU3ODlcdTU3OGFcdTU3OGQiLDQsIlx1NTc5NCIsNiwiXHU1NzljXHU1NzlkXHU1NzllXHU1NzlmXHU1N2E1XHU1N2E4XHU1N2FhXHU1''@;'; + put 'put ''N2FjXHU1N2FmXHU1N2IwXHU1N2IxXHU1N2IzXHU1N2I1XHU1N2I2XHU1N2I3XHU1N2I5Iiw4LCJcdTU3YzQiLDYsIlx1NTdjY1x1NTdjZFx1NTdkMFx1NTdkMVx1NTdkM1x1NTdkNlx1NTdkN1x1NTdkYlx1NTdkY1x1NTdkZVx1NTdlMVx1NTdlMlx1NTdlM1x1NTdlNSIsNywiXHU1N2VlXHU1''@;'; + put 'put ''N2YwXHU1N2YxXHU1N2YyXHU1N2YzXHU1N2Y1XHU1N2Y2XHU1N2Y3XHU1N2ZiXHU1N2ZjXHU1N2ZlXHU1N2ZmXHU1ODAxXHU1ODAzXHU1ODA0XHU1ODA1XHU1ODA4XHU1ODA5XHU1ODBhXHU1ODBjXHU1ODBlXHU1ODBmXHU1ODEwXHU1ODEyXHU1ODEzXHU1ODE0XHU1ODE2XHU1ODE3XHU1ODE4''@;'; + put 'put ''XHU1ODFhXHU1ODFiXHU1ODFjXHU1ODFkXHU1ODFmXHU1ODIyXHU1ODIzXHU1ODI1Iiw0LCJcdTU4MmIiLDQsIlx1NTgzMVx1NTgzMlx1NTgzM1x1NTgzNFx1NTgzNiIsN10sWyI4OTQwIiwiXHU1ODNlIiw1LCJcdTU4NDUiLDYsIlx1NTg0ZVx1NTg0Zlx1NTg1MFx1NTg1Mlx1NTg1M1x1NTg1''@;'; + put 'put ''NVx1NTg1Nlx1NTg1N1x1NTg1OSIsNCwiXHU1ODVmIiw1LCJcdTU4NjYiLDQsIlx1NTg2ZCIsMTYsIlx1NTg3Zlx1NTg4Mlx1NTg4NFx1NTg4Nlx1NTg4N1x1NTg4OFx1NTg4YVx1NTg4Ylx1NTg4YyJdLFsiODk4MCIsIlx1NTg4ZCIsNCwiXHU1ODk0Iiw0LCJcdTU4OWJcdTU4OWNcdTU4OWRc''@;'; + put 'put ''dTU4YTAiLDcsIlx1NThhYSIsMTcsIlx1NThiZFx1NThiZVx1NThiZlx1NThjMFx1NThjMlx1NThjM1x1NThjNFx1NThjNiIsMTAsIlx1NThkMlx1NThkM1x1NThkNFx1NThkNiIsMTMsIlx1NThlNSIsNSwiXHU1OGVkXHU1OGVmXHU1OGYxXHU1OGYyXHU1OGY0XHU1OGY1XHU1OGY3XHU1OGY4''@;'; + put 'put ''XHU1OGZhIiw3LCJcdTU5MDNcdTU5MDVcdTU5MDZcdTU5MDgiLDQsIlx1NTkwZVx1NTkxMFx1NTkxMVx1NTkxMlx1NTkxM1x1NTkxN1x1NTkxOFx1NTkxYlx1NTkxZFx1NTkxZVx1NTkyMFx1NTkyMVx1NTkyMlx1NTkyM1x1NTkyNlx1NTkyOFx1NTkyY1x1NTkzMFx1NTkzMlx1NTkzM1x1NTkz''@;'; + put 'put ''NVx1NTkzNlx1NTkzYiJdLFsiOGE0MCIsIlx1NTkzZFx1NTkzZVx1NTkzZlx1NTk0MFx1NTk0M1x1NTk0NVx1NTk0Nlx1NTk0YVx1NTk0Y1x1NTk0ZFx1NTk1MFx1NTk1Mlx1NTk1M1x1NTk1OVx1NTk1YiIsNCwiXHU1OTYxXHU1OTYzXHU1OTY0XHU1OTY2IiwxMiwiXHU1OTc1XHU1OTc3XHU1''@;'; + put 'put ''OTdhXHU1OTdiXHU1OTdjXHU1OTdlXHU1OTdmXHU1OTgwXHU1OTg1XHU1OTg5XHU1OThiXHU1OThjXHU1OThlXHU1OThmXHU1OTkwXHU1OTkxXHU1OTk0XHU1OTk1XHU1OTk4XHU1OTlhXHU1OTliXHU1OTljXHU1OTlkXHU1OTlmXHU1OWEwXHU1OWExXHU1OWEyXHU1OWE2Il0sWyI4YTgwIiwi''@;'; + put 'put ''XHU1OWE3XHU1OWFjXHU1OWFkXHU1OWIwXHU1OWIxXHU1OWIzIiw1LCJcdTU5YmFcdTU5YmNcdTU5YmRcdTU5YmYiLDYsIlx1NTljN1x1NTljOFx1NTljOVx1NTljY1x1NTljZFx1NTljZVx1NTljZlx1NTlkNVx1NTlkNlx1NTlkOVx1NTlkYlx1NTlkZSIsNCwiXHU1OWU0XHU1OWU2XHU1OWU3''@;'; + put 'put ''XHU1OWU5XHU1OWVhXHU1OWViXHU1OWVkIiwxMSwiXHU1OWZhXHU1OWZjXHU1OWZkXHU1OWZlXHU1YTAwXHU1YTAyXHU1YTBhXHU1YTBiXHU1YTBkXHU1YTBlXHU1YTBmXHU1YTEwXHU1YTEyXHU1YTE0XHU1YTE1XHU1YTE2XHU1YTE3XHU1YTE5XHU1YTFhXHU1YTFiXHU1YTFkXHU1YTFlXHU1''@;'; + put 'put ''YTIxXHU1YTIyXHU1YTI0XHU1YTI2XHU1YTI3XHU1YTI4XHU1YTJhIiw2LCJcdTVhMzNcdTVhMzVcdTVhMzciLDQsIlx1NWEzZFx1NWEzZVx1NWEzZlx1NWE0MSIsNCwiXHU1YTQ3XHU1YTQ4XHU1YTRiIiw5LCJcdTVhNTZcdTVhNTdcdTVhNThcdTVhNTlcdTVhNWIiLDVdLFsiOGI0MCIsIlx1''@;'; + put 'put ''NWE2MVx1NWE2M1x1NWE2NFx1NWE2NVx1NWE2Nlx1NWE2OFx1NWE2OVx1NWE2YiIsOCwiXHU1YTc4XHU1YTc5XHU1YTdiXHU1YTdjXHU1YTdkXHU1YTdlXHU1YTgwIiwxNywiXHU1YTkzIiw2LCJcdTVhOWMiLDEzLCJcdTVhYWJcdTVhYWMiXSxbIjhiODAiLCJcdTVhYWQiLDQsIlx1NWFiNFx1''@;'; + put 'put ''NWFiNlx1NWFiN1x1NWFiOSIsNCwiXHU1YWJmXHU1YWMwXHU1YWMzIiw1LCJcdTVhY2FcdTVhY2JcdTVhY2QiLDQsIlx1NWFkM1x1NWFkNVx1NWFkN1x1NWFkOVx1NWFkYVx1NWFkYlx1NWFkZFx1NWFkZVx1NWFkZlx1NWFlMlx1NWFlNFx1NWFlNVx1NWFlN1x1NWFlOFx1NWFlYVx1NWFlYyIs''@;'; + put 'put ''NCwiXHU1YWYyIiwyMiwiXHU1YjBhIiwxMSwiXHU1YjE4IiwyNSwiXHU1YjMzXHU1YjM1XHU1YjM2XHU1YjM4Iiw3LCJcdTViNDEiLDZdLFsiOGM0MCIsIlx1NWI0OCIsNywiXHU1YjUyXHU1YjU2XHU1YjVlXHU1YjYwXHU1YjYxXHU1YjY3XHU1YjY4XHU1YjZiXHU1YjZkXHU1YjZlXHU1YjZm''@;'; + put 'put ''XHU1YjcyXHU1Yjc0XHU1Yjc2XHU1Yjc3XHU1Yjc4XHU1Yjc5XHU1YjdiXHU1YjdjXHU1YjdlXHU1YjdmXHU1YjgyXHU1Yjg2XHU1YjhhXHU1YjhkXHU1YjhlXHU1YjkwXHU1YjkxXHU1YjkyXHU1Yjk0XHU1Yjk2XHU1YjlmXHU1YmE3XHU1YmE4XHU1YmE5XHU1YmFjXHU1YmFkXHU1YmFlXHU1''@;'; + put 'put ''YmFmXHU1YmIxXHU1YmIyXHU1YmI3XHU1YmJhXHU1YmJiXHU1YmJjXHU1YmMwXHU1YmMxXHU1YmMzXHU1YmM4XHU1YmM5XHU1YmNhXHU1YmNiXHU1YmNkXHU1YmNlXHU1YmNmIl0sWyI4YzgwIiwiXHU1YmQxXHU1YmQ0Iiw4LCJcdTViZTBcdTViZTJcdTViZTNcdTViZTZcdTViZTdcdTViZTki''@;'; + put 'put ''LDQsIlx1NWJlZlx1NWJmMSIsNiwiXHU1YmZkXHU1YmZlXHU1YzAwXHU1YzAyXHU1YzAzXHU1YzA1XHU1YzA3XHU1YzA4XHU1YzBiXHU1YzBjXHU1YzBkXHU1YzBlXHU1YzEwXHU1YzEyXHU1YzEzXHU1YzE3XHU1YzE5XHU1YzFiXHU1YzFlXHU1YzFmXHU1YzIwXHU1YzIxXHU1YzIzXHU1YzI2''@;'; + put 'put ''XHU1YzI4XHU1YzI5XHU1YzJhXHU1YzJiXHU1YzJkXHU1YzJlXHU1YzJmXHU1YzMwXHU1YzMyXHU1YzMzXHU1YzM1XHU1YzM2XHU1YzM3XHU1YzQzXHU1YzQ0XHU1YzQ2XHU1YzQ3XHU1YzRjXHU1YzRkXHU1YzUyXHU1YzUzXHU1YzU0XHU1YzU2XHU1YzU3XHU1YzU4XHU1YzVhXHU1YzViXHU1''@;'; + put 'put ''YzVjXHU1YzVkXHU1YzVmXHU1YzYyXHU1YzY0XHU1YzY3Iiw2LCJcdTVjNzBcdTVjNzIiLDYsIlx1NWM3Ylx1NWM3Y1x1NWM3ZFx1NWM3ZVx1NWM4MFx1NWM4MyIsNCwiXHU1Yzg5XHU1YzhhXHU1YzhiXHU1YzhlXHU1YzhmXHU1YzkyXHU1YzkzXHU1Yzk1XHU1YzlkIiw0LCJcdTVjYTQiLDRd''@;'; + put 'put ''LFsiOGQ0MCIsIlx1NWNhYVx1NWNhZVx1NWNhZlx1NWNiMFx1NWNiMlx1NWNiNFx1NWNiNlx1NWNiOVx1NWNiYVx1NWNiYlx1NWNiY1x1NWNiZVx1NWNjMFx1NWNjMlx1NWNjM1x1NWNjNSIsNSwiXHU1Y2NjIiw1LCJcdTVjZDMiLDUsIlx1NWNkYSIsNiwiXHU1Y2UyXHU1Y2UzXHU1Y2U3XHU1''@;'; + put 'put ''Y2U5XHU1Y2ViXHU1Y2VjXHU1Y2VlXHU1Y2VmXHU1Y2YxIiw5LCJcdTVjZmMiLDRdLFsiOGQ4MCIsIlx1NWQwMVx1NWQwNFx1NWQwNVx1NWQwOCIsNSwiXHU1ZDBmIiw0LCJcdTVkMTVcdTVkMTdcdTVkMThcdTVkMTlcdTVkMWFcdTVkMWNcdTVkMWRcdTVkMWYiLDQsIlx1NWQyNVx1NWQyOFx1''@;'; + put 'put ''NWQyYVx1NWQyYlx1NWQyY1x1NWQyZiIsNCwiXHU1ZDM1Iiw3LCJcdTVkM2YiLDcsIlx1NWQ0OFx1NWQ0OVx1NWQ0ZCIsMTAsIlx1NWQ1OVx1NWQ1YVx1NWQ1Y1x1NWQ1ZSIsMTAsIlx1NWQ2YVx1NWQ2ZFx1NWQ2ZVx1NWQ3MFx1NWQ3MVx1NWQ3Mlx1NWQ3M1x1NWQ3NSIsMTIsIlx1NWQ4MyIs''@;'; + put 'put ''MjEsIlx1NWQ5YVx1NWQ5Ylx1NWQ5Y1x1NWQ5ZVx1NWQ5Zlx1NWRhMCJdLFsiOGU0MCIsIlx1NWRhMSIsMjEsIlx1NWRiOCIsMTIsIlx1NWRjNiIsNiwiXHU1ZGNlIiwxMiwiXHU1ZGRjXHU1ZGRmXHU1ZGUwXHU1ZGUzXHU1ZGU0XHU1ZGVhXHU1ZGVjXHU1ZGVkIl0sWyI4ZTgwIiwiXHU1ZGYw''@;'; + put 'put ''XHU1ZGY1XHU1ZGY2XHU1ZGY4Iiw0LCJcdTVkZmZcdTVlMDBcdTVlMDRcdTVlMDdcdTVlMDlcdTVlMGFcdTVlMGJcdTVlMGRcdTVlMGVcdTVlMTJcdTVlMTNcdTVlMTdcdTVlMWUiLDcsIlx1NWUyOCIsNCwiXHU1ZTJmXHU1ZTMwXHU1ZTMyIiw0LCJcdTVlMzlcdTVlM2FcdTVlM2VcdTVlM2Zc''@;'; + put 'put ''dTVlNDBcdTVlNDFcdTVlNDNcdTVlNDYiLDUsIlx1NWU0ZCIsNiwiXHU1ZTU2Iiw0LCJcdTVlNWNcdTVlNWRcdTVlNWZcdTVlNjBcdTVlNjMiLDE0LCJcdTVlNzVcdTVlNzdcdTVlNzlcdTVlN2VcdTVlODFcdTVlODJcdTVlODNcdTVlODVcdTVlODhcdTVlODlcdTVlOGNcdTVlOGRcdTVlOGVc''@;'; + put 'put ''dTVlOTJcdTVlOThcdTVlOWJcdTVlOWRcdTVlYTFcdTVlYTJcdTVlYTNcdTVlYTRcdTVlYTgiLDQsIlx1NWVhZSIsNCwiXHU1ZWI0XHU1ZWJhXHU1ZWJiXHU1ZWJjXHU1ZWJkXHU1ZWJmIiw2XSxbIjhmNDAiLCJcdTVlYzZcdTVlYzdcdTVlYzhcdTVlY2IiLDUsIlx1NWVkNFx1NWVkNVx1NWVk''@;'; + put 'put ''N1x1NWVkOFx1NWVkOVx1NWVkYVx1NWVkYyIsMTEsIlx1NWVlOVx1NWVlYiIsOCwiXHU1ZWY1XHU1ZWY4XHU1ZWY5XHU1ZWZiXHU1ZWZjXHU1ZWZkXHU1ZjA1XHU1ZjA2XHU1ZjA3XHU1ZjA5XHU1ZjBjXHU1ZjBkXHU1ZjBlXHU1ZjEwXHU1ZjEyXHU1ZjE0XHU1ZjE2XHU1ZjE5XHU1ZjFhXHU1''@;'; + put 'put ''ZjFjXHU1ZjFkXHU1ZjFlXHU1ZjIxXHU1ZjIyXHU1ZjIzXHU1ZjI0Il0sWyI4ZjgwIiwiXHU1ZjI4XHU1ZjJiXHU1ZjJjXHU1ZjJlXHU1ZjMwXHU1ZjMyIiw2LCJcdTVmM2JcdTVmM2RcdTVmM2VcdTVmM2ZcdTVmNDEiLDE0LCJcdTVmNTFcdTVmNTRcdTVmNTlcdTVmNWFcdTVmNWJcdTVmNWNc''@;'; + put 'put ''dTVmNWVcdTVmNWZcdTVmNjBcdTVmNjNcdTVmNjVcdTVmNjdcdTVmNjhcdTVmNmJcdTVmNmVcdTVmNmZcdTVmNzJcdTVmNzRcdTVmNzVcdTVmNzZcdTVmNzhcdTVmN2FcdTVmN2RcdTVmN2VcdTVmN2ZcdTVmODNcdTVmODZcdTVmOGRcdTVmOGVcdTVmOGZcdTVmOTFcdTVmOTNcdTVmOTRcdTVm''@;'; + put 'put ''OTZcdTVmOWFcdTVmOWJcdTVmOWRcdTVmOWVcdTVmOWZcdTVmYTBcdTVmYTIiLDUsIlx1NWZhOVx1NWZhYlx1NWZhY1x1NWZhZiIsNSwiXHU1ZmI2XHU1ZmI4XHU1ZmI5XHU1ZmJhXHU1ZmJiXHU1ZmJlIiw0LCJcdTVmYzdcdTVmYzhcdTVmY2FcdTVmY2JcdTVmY2VcdTVmZDNcdTVmZDRcdTVm''@;'; + put 'put ''ZDVcdTVmZGFcdTVmZGJcdTVmZGNcdTVmZGVcdTVmZGZcdTVmZTJcdTVmZTNcdTVmZTVcdTVmZTZcdTVmZThcdTVmZTlcdTVmZWNcdTVmZWZcdTVmZjBcdTVmZjJcdTVmZjNcdTVmZjRcdTVmZjZcdTVmZjdcdTVmZjlcdTVmZmFcdTVmZmNcdTYwMDciXSxbIjkwNDAiLCJcdTYwMDhcdTYwMDlc''@;'; + put 'put ''dTYwMGJcdTYwMGNcdTYwMTBcdTYwMTFcdTYwMTNcdTYwMTdcdTYwMThcdTYwMWFcdTYwMWVcdTYwMWZcdTYwMjJcdTYwMjNcdTYwMjRcdTYwMmNcdTYwMmRcdTYwMmVcdTYwMzAiLDQsIlx1NjAzNiIsNCwiXHU2MDNkXHU2MDNlXHU2MDQwXHU2MDQ0Iiw2LCJcdTYwNGNcdTYwNGVcdTYwNGZc''@;'; + put 'put ''dTYwNTFcdTYwNTNcdTYwNTRcdTYwNTZcdTYwNTdcdTYwNThcdTYwNWJcdTYwNWNcdTYwNWVcdTYwNWZcdTYwNjBcdTYwNjFcdTYwNjVcdTYwNjZcdTYwNmVcdTYwNzFcdTYwNzJcdTYwNzRcdTYwNzVcdTYwNzdcdTYwN2VcdTYwODAiXSxbIjkwODAiLCJcdTYwODFcdTYwODJcdTYwODVcdTYw''@;'; + put 'put ''ODZcdTYwODdcdTYwODhcdTYwOGFcdTYwOGJcdTYwOGVcdTYwOGZcdTYwOTBcdTYwOTFcdTYwOTNcdTYwOTVcdTYwOTdcdTYwOThcdTYwOTlcdTYwOWNcdTYwOWVcdTYwYTFcdTYwYTJcdTYwYTRcdTYwYTVcdTYwYTdcdTYwYTlcdTYwYWFcdTYwYWVcdTYwYjBcdTYwYjNcdTYwYjVcdTYwYjZc''@;'; + put 'put ''dTYwYjdcdTYwYjlcdTYwYmFcdTYwYmQiLDcsIlx1NjBjN1x1NjBjOFx1NjBjOVx1NjBjYyIsNCwiXHU2MGQyXHU2MGQzXHU2MGQ0XHU2MGQ2XHU2MGQ3XHU2MGQ5XHU2MGRiXHU2MGRlXHU2MGUxIiw0LCJcdTYwZWFcdTYwZjFcdTYwZjJcdTYwZjVcdTYwZjdcdTYwZjhcdTYwZmIiLDQsIlx1''@;'; + put 'put ''NjEwMlx1NjEwM1x1NjEwNFx1NjEwNVx1NjEwN1x1NjEwYVx1NjEwYlx1NjEwY1x1NjExMCIsNCwiXHU2MTE2XHU2MTE3XHU2MTE4XHU2MTE5XHU2MTFiXHU2MTFjXHU2MTFkXHU2MTFlXHU2MTIxXHU2MTIyXHU2MTI1XHU2MTI4XHU2MTI5XHU2MTJhXHU2MTJjIiwxOCwiXHU2MTQwIiw2XSxb''@;'; + put 'put ''IjkxNDAiLCJcdTYxNDdcdTYxNDlcdTYxNGJcdTYxNGRcdTYxNGZcdTYxNTBcdTYxNTJcdTYxNTNcdTYxNTRcdTYxNTYiLDYsIlx1NjE1ZVx1NjE1Zlx1NjE2MFx1NjE2MVx1NjE2M1x1NjE2NFx1NjE2NVx1NjE2Nlx1NjE2OSIsNiwiXHU2MTcxXHU2MTcyXHU2MTczXHU2MTc0XHU2MTc2XHU2''@;'; + put 'put ''MTc4IiwxOCwiXHU2MThjXHU2MThkXHU2MThmIiw0LCJcdTYxOTUiXSxbIjkxODAiLCJcdTYxOTYiLDYsIlx1NjE5ZSIsOCwiXHU2MWFhXHU2MWFiXHU2MWFkIiw5LCJcdTYxYjgiLDUsIlx1NjFiZlx1NjFjMFx1NjFjMVx1NjFjMyIsNCwiXHU2MWM5XHU2MWNjIiw0LCJcdTYxZDNcdTYxZDUi''@;'; + put 'put ''LDE2LCJcdTYxZTciLDEzLCJcdTYxZjYiLDgsIlx1NjIwMCIsNSwiXHU2MjA3XHU2MjA5XHU2MjEzXHU2MjE0XHU2MjE5XHU2MjFjXHU2MjFkXHU2MjFlXHU2MjIwXHU2MjIzXHU2MjI2XHU2MjI3XHU2MjI4XHU2MjI5XHU2MjJiXHU2MjJkXHU2MjJmXHU2MjMwXHU2MjMxXHU2MjMyXHU2MjM1''@;'; + put 'put ''XHU2MjM2XHU2MjM4Iiw0LCJcdTYyNDJcdTYyNDRcdTYyNDVcdTYyNDZcdTYyNGEiXSxbIjkyNDAiLCJcdTYyNGZcdTYyNTBcdTYyNTVcdTYyNTZcdTYyNTdcdTYyNTlcdTYyNWFcdTYyNWMiLDYsIlx1NjI2NFx1NjI2NVx1NjI2OFx1NjI3MVx1NjI3Mlx1NjI3NFx1NjI3NVx1NjI3N1x1NjI3''@;'; + put 'put ''OFx1NjI3YVx1NjI3Ylx1NjI3ZFx1NjI4MVx1NjI4Mlx1NjI4M1x1NjI4NVx1NjI4Nlx1NjI4N1x1NjI4OFx1NjI4YiIsNSwiXHU2Mjk0XHU2Mjk5XHU2MjljXHU2MjlkXHU2MjllXHU2MmEzXHU2MmE2XHU2MmE3XHU2MmE5XHU2MmFhXHU2MmFkXHU2MmFlXHU2MmFmXHU2MmIwXHU2MmIyXHU2''@;'; + put 'put ''MmIzXHU2MmI0XHU2MmI2XHU2MmI3XHU2MmI4XHU2MmJhXHU2MmJlXHU2MmMwXHU2MmMxIl0sWyI5MjgwIiwiXHU2MmMzXHU2MmNiXHU2MmNmXHU2MmQxXHU2MmQ1XHU2MmRkXHU2MmRlXHU2MmUwXHU2MmUxXHU2MmU0XHU2MmVhXHU2MmViXHU2MmYwXHU2MmYyXHU2MmY1XHU2MmY4XHU2MmY5''@;'; + put 'put ''XHU2MmZhXHU2MmZiXHU2MzAwXHU2MzAzXHU2MzA0XHU2MzA1XHU2MzA2XHU2MzBhXHU2MzBiXHU2MzBjXHU2MzBkXHU2MzBmXHU2MzEwXHU2MzEyXHU2MzEzXHU2MzE0XHU2MzE1XHU2MzE3XHU2MzE4XHU2MzE5XHU2MzFjXHU2MzI2XHU2MzI3XHU2MzI5XHU2MzJjXHU2MzJkXHU2MzJlXHU2''@;'; + put 'put ''MzMwXHU2MzMxXHU2MzMzIiw1LCJcdTYzM2JcdTYzM2NcdTYzM2VcdTYzM2ZcdTYzNDBcdTYzNDFcdTYzNDRcdTYzNDdcdTYzNDhcdTYzNGFcdTYzNTFcdTYzNTJcdTYzNTNcdTYzNTRcdTYzNTYiLDcsIlx1NjM2MFx1NjM2NFx1NjM2NVx1NjM2Nlx1NjM2OFx1NjM2YVx1NjM2Ylx1NjM2Y1x1''@;'; + put 'put ''NjM2Zlx1NjM3MFx1NjM3Mlx1NjM3M1x1NjM3NFx1NjM3NVx1NjM3OFx1NjM3OVx1NjM3Y1x1NjM3ZFx1NjM3ZVx1NjM3Zlx1NjM4MVx1NjM4M1x1NjM4NFx1NjM4NVx1NjM4Nlx1NjM4Ylx1NjM4ZFx1NjM5MVx1NjM5M1x1NjM5NFx1NjM5NVx1NjM5N1x1NjM5OSIsNiwiXHU2M2ExXHU2M2E0''@;'; + put 'put ''XHU2M2E2XHU2M2FiXHU2M2FmXHU2M2IxXHU2M2IyXHU2M2I1XHU2M2I2XHU2M2I5XHU2M2JiXHU2M2JkXHU2M2JmXHU2M2MwIl0sWyI5MzQwIiwiXHU2M2MxXHU2M2MyXHU2M2MzXHU2M2M1XHU2M2M3XHU2M2M4XHU2M2NhXHU2M2NiXHU2M2NjXHU2M2QxXHU2M2QzXHU2M2Q0XHU2M2Q1XHU2''@;'; + put 'put ''M2Q3Iiw2LCJcdTYzZGZcdTYzZTJcdTYzZTQiLDQsIlx1NjNlYlx1NjNlY1x1NjNlZVx1NjNlZlx1NjNmMFx1NjNmMVx1NjNmM1x1NjNmNVx1NjNmN1x1NjNmOVx1NjNmYVx1NjNmYlx1NjNmY1x1NjNmZVx1NjQwM1x1NjQwNFx1NjQwNiIsNCwiXHU2NDBkXHU2NDBlXHU2NDExXHU2NDEyXHU2''@;'; + put 'put ''NDE1Iiw1LCJcdTY0MWRcdTY0MWZcdTY0MjJcdTY0MjNcdTY0MjQiXSxbIjkzODAiLCJcdTY0MjVcdTY0MjdcdTY0MjhcdTY0MjlcdTY0MmJcdTY0MmUiLDUsIlx1NjQzNSIsNCwiXHU2NDNiXHU2NDNjXHU2NDNlXHU2NDQwXHU2NDQyXHU2NDQzXHU2NDQ5XHU2NDRiIiw2LCJcdTY0NTNcdTY0''@;'; + put 'put ''NTVcdTY0NTZcdTY0NTdcdTY0NTkiLDQsIlx1NjQ1ZiIsNywiXHU2NDY4XHU2NDZhXHU2NDZiXHU2NDZjXHU2NDZlIiw5LCJcdTY0N2IiLDYsIlx1NjQ4M1x1NjQ4Nlx1NjQ4OCIsOCwiXHU2NDkzXHU2NDk0XHU2NDk3XHU2NDk4XHU2NDlhXHU2NDliXHU2NDljXHU2NDlkXHU2NDlmIiw0LCJc''@;'; + put 'put ''dTY0YTVcdTY0YTZcdTY0YTdcdTY0YThcdTY0YWFcdTY0YWJcdTY0YWZcdTY0YjFcdTY0YjJcdTY0YjNcdTY0YjRcdTY0YjZcdTY0YjlcdTY0YmJcdTY0YmRcdTY0YmVcdTY0YmZcdTY0YzFcdTY0YzNcdTY0YzRcdTY0YzYiLDYsIlx1NjRjZlx1NjRkMVx1NjRkM1x1NjRkNFx1NjRkNVx1NjRk''@;'; + put 'put ''Nlx1NjRkOVx1NjRkYSJdLFsiOTQ0MCIsIlx1NjRkYlx1NjRkY1x1NjRkZFx1NjRkZlx1NjRlMFx1NjRlMVx1NjRlM1x1NjRlNVx1NjRlNyIsMjQsIlx1NjUwMSIsNywiXHU2NTBhIiw3LCJcdTY1MTMiLDQsIlx1NjUxOSIsOF0sWyI5NDgwIiwiXHU2NTIyXHU2NTIzXHU2NTI0XHU2NTI2Iiw0''@;'; + put 'put ''LCJcdTY1MmNcdTY1MmRcdTY1MzBcdTY1MzFcdTY1MzJcdTY1MzNcdTY1MzdcdTY1M2FcdTY1M2NcdTY1M2RcdTY1NDAiLDQsIlx1NjU0Nlx1NjU0N1x1NjU0YVx1NjU0Ylx1NjU0ZFx1NjU0ZVx1NjU1MFx1NjU1Mlx1NjU1M1x1NjU1NFx1NjU1N1x1NjU1OFx1NjU1YVx1NjU1Y1x1NjU1Zlx1''@;'; + put 'put ''NjU2MFx1NjU2MVx1NjU2NFx1NjU2NVx1NjU2N1x1NjU2OFx1NjU2OVx1NjU2YVx1NjU2ZFx1NjU2ZVx1NjU2Zlx1NjU3MVx1NjU3M1x1NjU3NVx1NjU3Nlx1NjU3OCIsMTQsIlx1NjU4OFx1NjU4OVx1NjU4YVx1NjU4ZFx1NjU4ZVx1NjU4Zlx1NjU5Mlx1NjU5NFx1NjU5NVx1NjU5Nlx1NjU5''@;'; + put 'put ''OFx1NjU5YVx1NjU5ZFx1NjU5ZVx1NjVhMFx1NjVhMlx1NjVhM1x1NjVhNlx1NjVhOFx1NjVhYVx1NjVhY1x1NjVhZVx1NjViMSIsNywiXHU2NWJhXHU2NWJiXHU2NWJlXHU2NWJmXHU2NWMwXHU2NWMyXHU2NWM3XHU2NWM4XHU2NWM5XHU2NWNhXHU2NWNkXHU2NWQwXHU2NWQxXHU2NWQzXHU2''@;'; + put 'put ''NWQ0XHU2NWQ1XHU2NWQ4Iiw3LCJcdTY1ZTFcdTY1ZTNcdTY1ZTRcdTY1ZWFcdTY1ZWIiXSxbIjk1NDAiLCJcdTY1ZjJcdTY1ZjNcdTY1ZjRcdTY1ZjVcdTY1ZjhcdTY1ZjlcdTY1ZmIiLDQsIlx1NjYwMVx1NjYwNFx1NjYwNVx1NjYwN1x1NjYwOFx1NjYwOVx1NjYwYlx1NjYwZFx1NjYxMFx1''@;'; + put 'put ''NjYxMVx1NjYxMlx1NjYxNlx1NjYxN1x1NjYxOFx1NjYxYVx1NjYxYlx1NjYxY1x1NjYxZVx1NjYyMVx1NjYyMlx1NjYyM1x1NjYyNFx1NjYyNlx1NjYyOVx1NjYyYVx1NjYyYlx1NjYyY1x1NjYyZVx1NjYzMFx1NjYzMlx1NjYzM1x1NjYzNyIsNCwiXHU2NjNkXHU2NjNmXHU2NjQwXHU2NjQy''@;'; + put 'put ''XHU2NjQ0Iiw2LCJcdTY2NGRcdTY2NGVcdTY2NTBcdTY2NTFcdTY2NTgiXSxbIjk1ODAiLCJcdTY2NTlcdTY2NWJcdTY2NWNcdTY2NWRcdTY2NWVcdTY2NjBcdTY2NjJcdTY2NjNcdTY2NjVcdTY2NjdcdTY2NjkiLDQsIlx1NjY3MVx1NjY3Mlx1NjY3M1x1NjY3NVx1NjY3OFx1NjY3OVx1NjY3''@;'; + put 'put ''Ylx1NjY3Y1x1NjY3ZFx1NjY3Zlx1NjY4MFx1NjY4MVx1NjY4M1x1NjY4NVx1NjY4Nlx1NjY4OFx1NjY4OVx1NjY4YVx1NjY4Ylx1NjY4ZFx1NjY4ZVx1NjY4Zlx1NjY5MFx1NjY5Mlx1NjY5M1x1NjY5NFx1NjY5NVx1NjY5OCIsNCwiXHU2NjllIiw4LCJcdTY2YTkiLDQsIlx1NjZhZiIsNCwi''@;'; + put 'put ''XHU2NmI1XHU2NmI2XHU2NmI3XHU2NmI4XHU2NmJhXHU2NmJiXHU2NmJjXHU2NmJkXHU2NmJmIiwyNSwiXHU2NmRhXHU2NmRlIiw3LCJcdTY2ZTdcdTY2ZThcdTY2ZWEiLDUsIlx1NjZmMVx1NjZmNVx1NjZmNlx1NjZmOFx1NjZmYVx1NjZmYlx1NjZmZFx1NjcwMVx1NjcwMlx1NjcwMyJdLFsi''@;'; + put 'put ''OTY0MCIsIlx1NjcwNFx1NjcwNVx1NjcwNlx1NjcwN1x1NjcwY1x1NjcwZVx1NjcwZlx1NjcxMVx1NjcxMlx1NjcxM1x1NjcxNlx1NjcxOFx1NjcxOVx1NjcxYVx1NjcxY1x1NjcxZVx1NjcyMCIsNSwiXHU2NzI3XHU2NzI5XHU2NzJlXHU2NzMwXHU2NzMyXHU2NzMzXHU2NzM2XHU2NzM3XHU2''@;'; + put 'put ''NzM4XHU2NzM5XHU2NzNiXHU2NzNjXHU2NzNlXHU2NzNmXHU2NzQxXHU2NzQ0XHU2NzQ1XHU2NzQ3XHU2NzRhXHU2NzRiXHU2NzRkXHU2NzUyXHU2NzU0XHU2NzU1XHU2NzU3Iiw0LCJcdTY3NWRcdTY3NjJcdTY3NjNcdTY3NjRcdTY3NjZcdTY3NjdcdTY3NmJcdTY3NmNcdTY3NmVcdTY3NzFc''@;'; + put 'put ''dTY3NzRcdTY3NzYiXSxbIjk2ODAiLCJcdTY3NzhcdTY3NzlcdTY3N2FcdTY3N2JcdTY3N2RcdTY3ODBcdTY3ODJcdTY3ODNcdTY3ODVcdTY3ODZcdTY3ODhcdTY3OGFcdTY3OGNcdTY3OGRcdTY3OGVcdTY3OGZcdTY3OTFcdTY3OTJcdTY3OTNcdTY3OTRcdTY3OTZcdTY3OTlcdTY3OWJcdTY3''@;'; + put 'put ''OWZcdTY3YTBcdTY3YTFcdTY3YTRcdTY3YTZcdTY3YTlcdTY3YWNcdTY3YWVcdTY3YjFcdTY3YjJcdTY3YjRcdTY3YjkiLDcsIlx1NjdjMlx1NjdjNSIsOSwiXHU2N2Q1XHU2N2Q2XHU2N2Q3XHU2N2RiXHU2N2RmXHU2N2UxXHU2N2UzXHU2N2U0XHU2N2U2XHU2N2U3XHU2N2U4XHU2N2VhXHU2''@;'; + put 'put ''N2ViXHU2N2VkXHU2N2VlXHU2N2YyXHU2N2Y1Iiw3LCJcdTY3ZmVcdTY4MDFcdTY4MDJcdTY4MDNcdTY4MDRcdTY4MDZcdTY4MGRcdTY4MTBcdTY4MTJcdTY4MTRcdTY4MTVcdTY4MTgiLDQsIlx1NjgxZVx1NjgxZlx1NjgyMFx1NjgyMiIsNiwiXHU2ODJiIiw2LCJcdTY4MzRcdTY4MzVcdTY4''@;'; + put 'put ''MzZcdTY4M2FcdTY4M2JcdTY4M2ZcdTY4NDdcdTY4NGJcdTY4NGRcdTY4NGZcdTY4NTJcdTY4NTYiLDVdLFsiOTc0MCIsIlx1Njg1Y1x1Njg1ZFx1Njg1ZVx1Njg1Zlx1Njg2YVx1Njg2YyIsNywiXHU2ODc1XHU2ODc4Iiw4LCJcdTY4ODJcdTY4ODRcdTY4ODciLDcsIlx1Njg5MFx1Njg5MVx1''@;'; + put 'put ''Njg5Mlx1Njg5NFx1Njg5NVx1Njg5Nlx1Njg5OCIsOSwiXHU2OGEzXHU2OGE0XHU2OGE1XHU2OGE5XHU2OGFhXHU2OGFiXHU2OGFjXHU2OGFlXHU2OGIxXHU2OGIyXHU2OGI0XHU2OGI2XHU2OGI3XHU2OGI4Il0sWyI5NzgwIiwiXHU2OGI5Iiw2LCJcdTY4YzFcdTY4YzMiLDUsIlx1NjhjYVx1''@;'; + put 'put ''NjhjY1x1NjhjZVx1NjhjZlx1NjhkMFx1NjhkMVx1NjhkM1x1NjhkNFx1NjhkNlx1NjhkN1x1NjhkOVx1NjhkYiIsNCwiXHU2OGUxXHU2OGUyXHU2OGU0Iiw5LCJcdTY4ZWZcdTY4ZjJcdTY4ZjNcdTY4ZjRcdTY4ZjZcdTY4ZjdcdTY4ZjhcdTY4ZmJcdTY4ZmRcdTY4ZmVcdTY4ZmZcdTY5MDBc''@;'; + put 'put ''dTY5MDJcdTY5MDNcdTY5MDRcdTY5MDYiLDQsIlx1NjkwY1x1NjkwZlx1NjkxMVx1NjkxMyIsMTEsIlx1NjkyMVx1NjkyMlx1NjkyM1x1NjkyNSIsNywiXHU2OTJlXHU2OTJmXHU2OTMxXHU2OTMyXHU2OTMzXHU2OTM1XHU2OTM2XHU2OTM3XHU2OTM4XHU2OTNhXHU2OTNiXHU2OTNjXHU2OTNl''@;'; + put 'put ''XHU2OTQwXHU2OTQxXHU2OTQzIiwxNiwiXHU2OTU1XHU2OTU2XHU2OTU4XHU2OTU5XHU2OTViXHU2OTVjXHU2OTVmIl0sWyI5ODQwIiwiXHU2OTYxXHU2OTYyXHU2OTY0XHU2OTY1XHU2OTY3XHU2OTY4XHU2OTY5XHU2OTZhXHU2OTZjXHU2OTZkXHU2OTZmXHU2OTcwXHU2OTcyIiw0LCJcdTY5''@;'; + put 'put ''N2FcdTY5N2JcdTY5N2RcdTY5N2VcdTY5N2ZcdTY5ODFcdTY5ODNcdTY5ODVcdTY5OGFcdTY5OGJcdTY5OGNcdTY5OGUiLDUsIlx1Njk5Nlx1Njk5N1x1Njk5OVx1Njk5YVx1Njk5ZCIsOSwiXHU2OWE5XHU2OWFhXHU2OWFjXHU2OWFlXHU2OWFmXHU2OWIwXHU2OWIyXHU2OWIzXHU2OWI1XHU2''@;'; + put 'put ''OWI2XHU2OWI4XHU2OWI5XHU2OWJhXHU2OWJjXHU2OWJkIl0sWyI5ODgwIiwiXHU2OWJlXHU2OWJmXHU2OWMwXHU2OWMyIiw3LCJcdTY5Y2JcdTY5Y2RcdTY5Y2ZcdTY5ZDFcdTY5ZDJcdTY5ZDNcdTY5ZDUiLDUsIlx1NjlkY1x1NjlkZFx1NjlkZVx1NjllMSIsMTEsIlx1NjllZVx1NjllZlx1''@;'; + put 'put ''NjlmMFx1NjlmMVx1NjlmMyIsOSwiXHU2OWZlXHU2YTAwIiw5LCJcdTZhMGIiLDExLCJcdTZhMTkiLDUsIlx1NmEyMFx1NmEyMiIsNSwiXHU2YTI5XHU2YTJiXHU2YTJjXHU2YTJkXHU2YTJlXHU2YTMwXHU2YTMyXHU2YTMzXHU2YTM0XHU2YTM2Iiw2LCJcdTZhM2YiLDQsIlx1NmE0NVx1NmE0''@;'; + put 'put ''Nlx1NmE0OCIsNywiXHU2YTUxIiw2LCJcdTZhNWEiXSxbIjk5NDAiLCJcdTZhNWMiLDQsIlx1NmE2Mlx1NmE2M1x1NmE2NFx1NmE2NiIsMTAsIlx1NmE3MiIsNiwiXHU2YTdhXHU2YTdiXHU2YTdkXHU2YTdlXHU2YTdmXHU2YTgxXHU2YTgyXHU2YTgzXHU2YTg1Iiw4LCJcdTZhOGZcdTZhOTIi''@;'; + put 'put ''LDQsIlx1NmE5OCIsNywiXHU2YWExIiw1XSxbIjk5ODAiLCJcdTZhYTdcdTZhYThcdTZhYWFcdTZhYWQiLDExNCwiXHU2YjI1XHU2YjI2XHU2YjI4Iiw2XSxbIjlhNDAiLCJcdTZiMmZcdTZiMzBcdTZiMzFcdTZiMzNcdTZiMzRcdTZiMzVcdTZiMzZcdTZiMzhcdTZiM2JcdTZiM2NcdTZiM2Rc''@;'; + put 'put ''dTZiM2ZcdTZiNDBcdTZiNDFcdTZiNDJcdTZiNDRcdTZiNDVcdTZiNDhcdTZiNGFcdTZiNGJcdTZiNGQiLDExLCJcdTZiNWEiLDcsIlx1NmI2OFx1NmI2OVx1NmI2YiIsMTMsIlx1NmI3YVx1NmI3ZFx1NmI3ZVx1NmI3Zlx1NmI4MFx1NmI4NVx1NmI4OCJdLFsiOWE4MCIsIlx1NmI4Y1x1NmI4''@;'; + put 'put ''ZVx1NmI4Zlx1NmI5MFx1NmI5MVx1NmI5NFx1NmI5NVx1NmI5N1x1NmI5OFx1NmI5OVx1NmI5YyIsNCwiXHU2YmEyIiw3LCJcdTZiYWIiLDcsIlx1NmJiNlx1NmJiOCIsNiwiXHU2YmMwXHU2YmMzXHU2YmM0XHU2YmM2Iiw0LCJcdTZiY2NcdTZiY2VcdTZiZDBcdTZiZDFcdTZiZDhcdTZiZGFc''@;'; + put 'put ''dTZiZGMiLDQsIlx1NmJlMiIsNywiXHU2YmVjXHU2YmVkXHU2YmVlXHU2YmYwXHU2YmYxXHU2YmYyXHU2YmY0XHU2YmY2XHU2YmY3XHU2YmY4XHU2YmZhXHU2YmZiXHU2YmZjXHU2YmZlIiw2LCJcdTZjMDgiLDQsIlx1NmMwZVx1NmMxMlx1NmMxN1x1NmMxY1x1NmMxZFx1NmMxZVx1NmMyMFx1''@;'; + put 'put ''NmMyM1x1NmMyNVx1NmMyYlx1NmMyY1x1NmMyZFx1NmMzMVx1NmMzM1x1NmMzNlx1NmMzN1x1NmMzOVx1NmMzYVx1NmMzYlx1NmMzY1x1NmMzZVx1NmMzZlx1NmM0M1x1NmM0NFx1NmM0NVx1NmM0OFx1NmM0YiIsNCwiXHU2YzUxXHU2YzUyXHU2YzUzXHU2YzU2XHU2YzU4Il0sWyI5YjQwIiwi''@;'; + put 'put ''XHU2YzU5XHU2YzVhXHU2YzYyXHU2YzYzXHU2YzY1XHU2YzY2XHU2YzY3XHU2YzZiIiw0LCJcdTZjNzFcdTZjNzNcdTZjNzVcdTZjNzdcdTZjNzhcdTZjN2FcdTZjN2JcdTZjN2NcdTZjN2ZcdTZjODBcdTZjODRcdTZjODdcdTZjOGFcdTZjOGJcdTZjOGRcdTZjOGVcdTZjOTFcdTZjOTJcdTZj''@;'; + put 'put ''OTVcdTZjOTZcdTZjOTdcdTZjOThcdTZjOWFcdTZjOWNcdTZjOWRcdTZjOWVcdTZjYTBcdTZjYTJcdTZjYThcdTZjYWNcdTZjYWZcdTZjYjBcdTZjYjRcdTZjYjVcdTZjYjZcdTZjYjdcdTZjYmFcdTZjYzBcdTZjYzFcdTZjYzJcdTZjYzNcdTZjYzZcdTZjYzdcdTZjYzhcdTZjY2JcdTZjY2Rc''@;'; + put 'put ''dTZjY2VcdTZjY2ZcdTZjZDFcdTZjZDJcdTZjZDgiXSxbIjliODAiLCJcdTZjZDlcdTZjZGFcdTZjZGNcdTZjZGRcdTZjZGZcdTZjZTRcdTZjZTZcdTZjZTdcdTZjZTlcdTZjZWNcdTZjZWRcdTZjZjJcdTZjZjRcdTZjZjlcdTZjZmZcdTZkMDBcdTZkMDJcdTZkMDNcdTZkMDVcdTZkMDZcdTZk''@;'; + put 'put ''MDhcdTZkMDlcdTZkMGFcdTZkMGRcdTZkMGZcdTZkMTBcdTZkMTFcdTZkMTNcdTZkMTRcdTZkMTVcdTZkMTZcdTZkMThcdTZkMWNcdTZkMWRcdTZkMWYiLDUsIlx1NmQyNlx1NmQyOFx1NmQyOVx1NmQyY1x1NmQyZFx1NmQyZlx1NmQzMFx1NmQzNFx1NmQzNlx1NmQzN1x1NmQzOFx1NmQzYVx1''@;'; + put 'put ''NmQzZlx1NmQ0MFx1NmQ0Mlx1NmQ0NFx1NmQ0OVx1NmQ0Y1x1NmQ1MFx1NmQ1NVx1NmQ1Nlx1NmQ1N1x1NmQ1OFx1NmQ1Ylx1NmQ1ZFx1NmQ1Zlx1NmQ2MVx1NmQ2Mlx1NmQ2NFx1NmQ2NVx1NmQ2N1x1NmQ2OFx1NmQ2Ylx1NmQ2Y1x1NmQ2ZFx1NmQ3MFx1NmQ3MVx1NmQ3Mlx1NmQ3M1x1NmQ3''@;'; + put 'put ''NVx1NmQ3Nlx1NmQ3OVx1NmQ3YVx1NmQ3Ylx1NmQ3ZCIsNCwiXHU2ZDgzXHU2ZDg0XHU2ZDg2XHU2ZDg3XHU2ZDhhXHU2ZDhiXHU2ZDhkXHU2ZDhmXHU2ZDkwXHU2ZDkyXHU2ZDk2Iiw0LCJcdTZkOWNcdTZkYTJcdTZkYTVcdTZkYWNcdTZkYWRcdTZkYjBcdTZkYjFcdTZkYjNcdTZkYjRcdTZk''@;'; + put 'put ''YjZcdTZkYjdcdTZkYjkiLDUsIlx1NmRjMVx1NmRjMlx1NmRjM1x1NmRjOFx1NmRjOVx1NmRjYSJdLFsiOWM0MCIsIlx1NmRjZFx1NmRjZVx1NmRjZlx1NmRkMFx1NmRkMlx1NmRkM1x1NmRkNFx1NmRkNVx1NmRkN1x1NmRkYVx1NmRkYlx1NmRkY1x1NmRkZlx1NmRlMlx1NmRlM1x1NmRlNVx1''@;'; + put 'put ''NmRlN1x1NmRlOFx1NmRlOVx1NmRlYVx1NmRlZFx1NmRlZlx1NmRmMFx1NmRmMlx1NmRmNFx1NmRmNVx1NmRmNlx1NmRmOFx1NmRmYVx1NmRmZCIsNywiXHU2ZTA2XHU2ZTA3XHU2ZTA4XHU2ZTA5XHU2ZTBiXHU2ZTBmXHU2ZTEyXHU2ZTEzXHU2ZTE1XHU2ZTE4XHU2ZTE5XHU2ZTFiXHU2ZTFj''@;'; + put 'put ''XHU2ZTFlXHU2ZTFmXHU2ZTIyXHU2ZTI2XHU2ZTI3XHU2ZTI4XHU2ZTJhXHU2ZTJjXHU2ZTJlXHU2ZTMwXHU2ZTMxXHU2ZTMzXHU2ZTM1Il0sWyI5YzgwIiwiXHU2ZTM2XHU2ZTM3XHU2ZTM5XHU2ZTNiIiw3LCJcdTZlNDUiLDcsIlx1NmU0Zlx1NmU1MFx1NmU1MVx1NmU1Mlx1NmU1NVx1NmU1''@;'; + put 'put ''N1x1NmU1OVx1NmU1YVx1NmU1Y1x1NmU1ZFx1NmU1ZVx1NmU2MCIsMTAsIlx1NmU2Y1x1NmU2ZFx1NmU2ZiIsMTQsIlx1NmU4MFx1NmU4MVx1NmU4Mlx1NmU4NFx1NmU4N1x1NmU4OFx1NmU4YSIsNCwiXHU2ZTkxIiw2LCJcdTZlOTlcdTZlOWFcdTZlOWJcdTZlOWRcdTZlOWVcdTZlYTBcdTZl''@;'; + put 'put ''YTFcdTZlYTNcdTZlYTRcdTZlYTZcdTZlYThcdTZlYTlcdTZlYWJcdTZlYWNcdTZlYWRcdTZlYWVcdTZlYjBcdTZlYjNcdTZlYjVcdTZlYjhcdTZlYjlcdTZlYmNcdTZlYmVcdTZlYmZcdTZlYzBcdTZlYzNcdTZlYzRcdTZlYzVcdTZlYzZcdTZlYzhcdTZlYzlcdTZlY2FcdTZlY2NcdTZlY2Rc''@;'; + put 'put ''dTZlY2VcdTZlZDBcdTZlZDJcdTZlZDZcdTZlZDhcdTZlZDlcdTZlZGJcdTZlZGNcdTZlZGRcdTZlZTNcdTZlZTdcdTZlZWEiLDVdLFsiOWQ0MCIsIlx1NmVmMFx1NmVmMVx1NmVmMlx1NmVmM1x1NmVmNVx1NmVmNlx1NmVmN1x1NmVmOFx1NmVmYSIsNywiXHU2ZjAzXHU2ZjA0XHU2ZjA1XHU2''@;'; + put 'put ''ZjA3XHU2ZjA4XHU2ZjBhIiw0LCJcdTZmMTBcdTZmMTFcdTZmMTJcdTZmMTYiLDksIlx1NmYyMVx1NmYyMlx1NmYyM1x1NmYyNVx1NmYyNlx1NmYyN1x1NmYyOFx1NmYyY1x1NmYyZVx1NmYzMFx1NmYzMlx1NmYzNFx1NmYzNVx1NmYzNyIsNiwiXHU2ZjNmXHU2ZjQwXHU2ZjQxXHU2ZjQyIl0s''@;'; + put 'put ''WyI5ZDgwIiwiXHU2ZjQzXHU2ZjQ0XHU2ZjQ1XHU2ZjQ4XHU2ZjQ5XHU2ZjRhXHU2ZjRjXHU2ZjRlIiw5LCJcdTZmNTlcdTZmNWFcdTZmNWJcdTZmNWRcdTZmNWZcdTZmNjBcdTZmNjFcdTZmNjNcdTZmNjRcdTZmNjVcdTZmNjciLDUsIlx1NmY2Zlx1NmY3MFx1NmY3MVx1NmY3M1x1NmY3NVx1''@;'; + put 'put ''NmY3Nlx1NmY3N1x1NmY3OVx1NmY3Ylx1NmY3ZCIsNiwiXHU2Zjg1XHU2Zjg2XHU2Zjg3XHU2ZjhhXHU2ZjhiXHU2ZjhmIiwxMiwiXHU2ZjlkXHU2ZjllXHU2ZjlmXHU2ZmEwXHU2ZmEyIiw0LCJcdTZmYTgiLDEwLCJcdTZmYjRcdTZmYjVcdTZmYjdcdTZmYjhcdTZmYmEiLDUsIlx1NmZjMVx1''@;'; + put 'put ''NmZjMyIsNSwiXHU2ZmNhIiw2LCJcdTZmZDMiLDEwLCJcdTZmZGZcdTZmZTJcdTZmZTNcdTZmZTRcdTZmZTUiXSxbIjllNDAiLCJcdTZmZTYiLDcsIlx1NmZmMCIsMzIsIlx1NzAxMiIsNywiXHU3MDFjIiw2LCJcdTcwMjQiLDZdLFsiOWU4MCIsIlx1NzAyYiIsOSwiXHU3MDM2XHU3MDM3XHU3''@;'; + put 'put ''MDM4XHU3MDNhIiwxNywiXHU3MDRkXHU3MDRlXHU3MDUwIiwxMywiXHU3MDVmIiwxMSwiXHU3MDZlXHU3MDcxXHU3MDcyXHU3MDczXHU3MDc0XHU3MDc3XHU3MDc5XHU3MDdhXHU3MDdiXHU3MDdkXHU3MDgxXHU3MDgyXHU3MDgzXHU3MDg0XHU3MDg2XHU3MDg3XHU3MDg4XHU3MDhiXHU3MDhj''@;'; + put 'put ''XHU3MDhkXHU3MDhmXHU3MDkwXHU3MDkxXHU3MDkzXHU3MDk3XHU3MDk4XHU3MDlhXHU3MDliXHU3MDllIiwxMiwiXHU3MGIwXHU3MGIyXHU3MGI0XHU3MGI1XHU3MGI2XHU3MGJhXHU3MGJlXHU3MGJmXHU3MGM0XHU3MGM1XHU3MGM2XHU3MGM3XHU3MGM5XHU3MGNiIiwxMiwiXHU3MGRhIl0s''@;'; + put 'put ''WyI5ZjQwIiwiXHU3MGRjXHU3MGRkXHU3MGRlXHU3MGUwXHU3MGUxXHU3MGUyXHU3MGUzXHU3MGU1XHU3MGVhXHU3MGVlXHU3MGYwIiw2LCJcdTcwZjhcdTcwZmFcdTcwZmJcdTcwZmNcdTcwZmUiLDEwLCJcdTcxMGIiLDQsIlx1NzExMVx1NzExMlx1NzExNFx1NzExN1x1NzExYiIsMTAsIlx1''@;'; + put 'put ''NzEyNyIsNywiXHU3MTMyXHU3MTMzXHU3MTM0Il0sWyI5ZjgwIiwiXHU3MTM1XHU3MTM3IiwxMywiXHU3MTQ2XHU3MTQ3XHU3MTQ4XHU3MTQ5XHU3MTRiXHU3MTRkXHU3MTRmIiwxMiwiXHU3MTVkXHU3MTVmIiw0LCJcdTcxNjVcdTcxNjkiLDQsIlx1NzE2Zlx1NzE3MFx1NzE3MVx1NzE3NFx1''@;'; + put 'put ''NzE3NVx1NzE3Nlx1NzE3N1x1NzE3OVx1NzE3Ylx1NzE3Y1x1NzE3ZSIsNSwiXHU3MTg1Iiw0LCJcdTcxOGJcdTcxOGNcdTcxOGRcdTcxOGVcdTcxOTBcdTcxOTFcdTcxOTJcdTcxOTNcdTcxOTVcdTcxOTZcdTcxOTdcdTcxOWEiLDQsIlx1NzFhMSIsNiwiXHU3MWE5XHU3MWFhXHU3MWFiXHU3''@;'; + put 'put ''MWFkIiw1LCJcdTcxYjRcdTcxYjZcdTcxYjdcdTcxYjhcdTcxYmEiLDgsIlx1NzFjNCIsOSwiXHU3MWNmIiw0XSxbImEwNDAiLCJcdTcxZDYiLDksIlx1NzFlMVx1NzFlMlx1NzFlM1x1NzFlNFx1NzFlNlx1NzFlOCIsNSwiXHU3MWVmIiw5LCJcdTcxZmEiLDExLCJcdTcyMDciLDE5XSxbImEw''@;'; + put 'put ''ODAiLCJcdTcyMWJcdTcyMWNcdTcyMWUiLDksIlx1NzIyOVx1NzIyYlx1NzIyZFx1NzIyZVx1NzIyZlx1NzIzMlx1NzIzM1x1NzIzNFx1NzIzYVx1NzIzY1x1NzIzZVx1NzI0MCIsNiwiXHU3MjQ5XHU3MjRhXHU3MjRiXHU3MjRlXHU3MjRmXHU3MjUwXHU3MjUxXHU3MjUzXHU3MjU0XHU3MjU1''@;'; + put 'put ''XHU3MjU3XHU3MjU4XHU3MjVhXHU3MjVjXHU3MjVlXHU3MjYwXHU3MjYzXHU3MjY0XHU3MjY1XHU3MjY4XHU3MjZhXHU3MjZiXHU3MjZjXHU3MjZkXHU3MjcwXHU3MjcxXHU3MjczXHU3Mjc0XHU3Mjc2XHU3Mjc3XHU3Mjc4XHU3MjdiXHU3MjdjXHU3MjdkXHU3MjgyXHU3MjgzXHU3Mjg1Iiw0''@;'; + put 'put ''LCJcdTcyOGNcdTcyOGVcdTcyOTBcdTcyOTFcdTcyOTMiLDExLCJcdTcyYTAiLDExLCJcdTcyYWVcdTcyYjFcdTcyYjJcdTcyYjNcdTcyYjVcdTcyYmEiLDYsIlx1NzJjNVx1NzJjNlx1NzJjN1x1NzJjOVx1NzJjYVx1NzJjYlx1NzJjY1x1NzJjZlx1NzJkMVx1NzJkM1x1NzJkNFx1NzJkNVx1''@;'; + put 'put ''NzJkNlx1NzJkOFx1NzJkYVx1NzJkYiJdLFsiYTFhMSIsIlx1MzAwMFx1MzAwMVx1MzAwMlx4YjdcdTAyYzlcdTAyYzdceGE4XHUzMDAzXHUzMDA1XHUyMDE0XHVmZjVlXHUyMDE2XHUyMDI2XHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDE0XHUzMDE1XHUzMDA4Iiw3LCJcdTMwMTZcdTMw''@;'; + put 'put ''MTdcdTMwMTBcdTMwMTFceGIxXHhkN1x4ZjdcdTIyMzZcdTIyMjdcdTIyMjhcdTIyMTFcdTIyMGZcdTIyMmFcdTIyMjlcdTIyMDhcdTIyMzdcdTIyMWFcdTIyYTVcdTIyMjVcdTIyMjBcdTIzMTJcdTIyOTlcdTIyMmJcdTIyMmVcdTIyNjFcdTIyNGNcdTIyNDhcdTIyM2RcdTIyMWRcdTIyNjBc''@;'; + put 'put ''dTIyNmVcdTIyNmZcdTIyNjRcdTIyNjVcdTIyMWVcdTIyMzVcdTIyMzRcdTI2NDJcdTI2NDBceGIwXHUyMDMyXHUyMDMzXHUyMTAzXHVmZjA0XHhhNFx1ZmZlMFx1ZmZlMVx1MjAzMFx4YTdcdTIxMTZcdTI2MDZcdTI2MDVcdTI1Y2JcdTI1Y2ZcdTI1Y2VcdTI1YzdcdTI1YzZcdTI1YTFcdTI1''@;'; + put 'put ''YTBcdTI1YjNcdTI1YjJcdTIwM2JcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTMwMTMiXSxbImEyYTEiLCJcdTIxNzAiLDldLFsiYTJiMSIsIlx1MjQ4OCIsMTksIlx1MjQ3NCIsMTksIlx1MjQ2MCIsOV0sWyJhMmU1IiwiXHUzMjIwIiw5XSxbImEyZjEiLCJcdTIxNjAiLDExXSxbImEzYTEi''@;'; + put 'put ''LCJcdWZmMDFcdWZmMDJcdWZmMDNcdWZmZTVcdWZmMDUiLDg4LCJcdWZmZTMiXSxbImE0YTEiLCJcdTMwNDEiLDgyXSxbImE1YTEiLCJcdTMwYTEiLDg1XSxbImE2YTEiLCJcdTAzOTEiLDE2LCJcdTAzYTMiLDZdLFsiYTZjMSIsIlx1MDNiMSIsMTYsIlx1MDNjMyIsNl0sWyJhNmUwIiwiXHVm''@;'; + put 'put ''ZTM1XHVmZTM2XHVmZTM5XHVmZTNhXHVmZTNmXHVmZTQwXHVmZTNkXHVmZTNlXHVmZTQxXHVmZTQyXHVmZTQzXHVmZTQ0Il0sWyJhNmVlIiwiXHVmZTNiXHVmZTNjXHVmZTM3XHVmZTM4XHVmZTMxIl0sWyJhNmY0IiwiXHVmZTMzXHVmZTM0Il0sWyJhN2ExIiwiXHUwNDEwIiw1LCJcdTA0MDFc''@;'; + put 'put ''dTA0MTYiLDI1XSxbImE3ZDEiLCJcdTA0MzAiLDUsIlx1MDQ1MVx1MDQzNiIsMjVdLFsiYTg0MCIsIlx1MDJjYVx1MDJjYlx1MDJkOVx1MjAxM1x1MjAxNVx1MjAyNVx1MjAzNVx1MjEwNVx1MjEwOVx1MjE5Nlx1MjE5N1x1MjE5OFx1MjE5OVx1MjIxNVx1MjIxZlx1MjIyM1x1MjI1Mlx1MjI2''@;'; + put 'put ''Nlx1MjI2N1x1MjJiZlx1MjU1MCIsMzUsIlx1MjU4MSIsNl0sWyJhODgwIiwiXHUyNTg4Iiw3LCJcdTI1OTNcdTI1OTRcdTI1OTVcdTI1YmNcdTI1YmRcdTI1ZTJcdTI1ZTNcdTI1ZTRcdTI1ZTVcdTI2MDlcdTIyOTVcdTMwMTJcdTMwMWRcdTMwMWUiXSxbImE4YTEiLCJcdTAxMDFceGUxXHUw''@;'; + put 'put ''MWNlXHhlMFx1MDExM1x4ZTlcdTAxMWJceGU4XHUwMTJiXHhlZFx1MDFkMFx4ZWNcdTAxNGRceGYzXHUwMWQyXHhmMlx1MDE2Ylx4ZmFcdTAxZDRceGY5XHUwMWQ2XHUwMWQ4XHUwMWRhXHUwMWRjXHhmY1x4ZWFcdTAyNTEiXSxbImE4YmQiLCJcdTAxNDRcdTAxNDgiXSxbImE4YzAiLCJcdTAy''@;'; + put 'put ''NjEiXSxbImE4YzUiLCJcdTMxMDUiLDM2XSxbImE5NDAiLCJcdTMwMjEiLDgsIlx1MzJhM1x1MzM4ZVx1MzM4Zlx1MzM5Y1x1MzM5ZFx1MzM5ZVx1MzNhMVx1MzNjNFx1MzNjZVx1MzNkMVx1MzNkMlx1MzNkNVx1ZmUzMFx1ZmZlMlx1ZmZlNCJdLFsiYTk1OSIsIlx1MjEyMVx1MzIzMSJdLFsi''@;'; + put 'put ''YTk1YyIsIlx1MjAxMCJdLFsiYTk2MCIsIlx1MzBmY1x1MzA5Ylx1MzA5Y1x1MzBmZFx1MzBmZVx1MzAwNlx1MzA5ZFx1MzA5ZVx1ZmU0OSIsOSwiXHVmZTU0XHVmZTU1XHVmZTU2XHVmZTU3XHVmZTU5Iiw4XSxbImE5ODAiLCJcdWZlNjIiLDQsIlx1ZmU2OFx1ZmU2OVx1ZmU2YVx1ZmU2YiJd''@;'; + put 'put ''LFsiYTk5NiIsIlx1MzAwNyJdLFsiYTlhNCIsIlx1MjUwMCIsNzVdLFsiYWE0MCIsIlx1NzJkY1x1NzJkZFx1NzJkZlx1NzJlMiIsNSwiXHU3MmVhXHU3MmViXHU3MmY1XHU3MmY2XHU3MmY5XHU3MmZkXHU3MmZlXHU3MmZmXHU3MzAwXHU3MzAyXHU3MzA0Iiw1LCJcdTczMGJcdTczMGNcdTcz''@;'; + put 'put ''MGRcdTczMGZcdTczMTBcdTczMTFcdTczMTJcdTczMTRcdTczMThcdTczMTlcdTczMWFcdTczMWZcdTczMjBcdTczMjNcdTczMjRcdTczMjZcdTczMjdcdTczMjhcdTczMmRcdTczMmZcdTczMzBcdTczMzJcdTczMzNcdTczMzVcdTczMzZcdTczM2FcdTczM2JcdTczM2NcdTczM2RcdTczNDAi''@;'; + put 'put ''LDhdLFsiYWE4MCIsIlx1NzM0OVx1NzM0YVx1NzM0Ylx1NzM0Y1x1NzM0ZVx1NzM0Zlx1NzM1MVx1NzM1M1x1NzM1NFx1NzM1NVx1NzM1Nlx1NzM1OCIsNywiXHU3MzYxIiwxMCwiXHU3MzZlXHU3MzcwXHU3MzcxIl0sWyJhYjQwIiwiXHU3MzcyIiwxMSwiXHU3MzdmIiw0LCJcdTczODVcdTcz''@;'; + put 'put ''ODZcdTczODhcdTczOGFcdTczOGNcdTczOGRcdTczOGZcdTczOTBcdTczOTJcdTczOTNcdTczOTRcdTczOTVcdTczOTdcdTczOThcdTczOTlcdTczOWFcdTczOWNcdTczOWRcdTczOWVcdTczYTBcdTczYTFcdTczYTMiLDUsIlx1NzNhYVx1NzNhY1x1NzNhZFx1NzNiMVx1NzNiNFx1NzNiNVx1''@;'; + put 'put ''NzNiNlx1NzNiOFx1NzNiOVx1NzNiY1x1NzNiZFx1NzNiZVx1NzNiZlx1NzNjMVx1NzNjMyIsNF0sWyJhYjgwIiwiXHU3M2NiXHU3M2NjXHU3M2NlXHU3M2QyIiw2LCJcdTczZGFcdTczZGJcdTczZGNcdTczZGRcdTczZGZcdTczZTFcdTczZTJcdTczZTNcdTczZTRcdTczZTZcdTczZThcdTcz''@;'; + put 'put ''ZWFcdTczZWJcdTczZWNcdTczZWVcdTczZWZcdTczZjBcdTczZjFcdTczZjMiLDRdLFsiYWM0MCIsIlx1NzNmOCIsMTAsIlx1NzQwNFx1NzQwN1x1NzQwOFx1NzQwYlx1NzQwY1x1NzQwZFx1NzQwZVx1NzQxMSIsOCwiXHU3NDFjIiw1LCJcdTc0MjNcdTc0MjRcdTc0MjdcdTc0MjlcdTc0MmJc''@;'; + put 'put ''dTc0MmRcdTc0MmZcdTc0MzFcdTc0MzJcdTc0MzciLDQsIlx1NzQzZFx1NzQzZVx1NzQzZlx1NzQ0MFx1NzQ0MiIsMTFdLFsiYWM4MCIsIlx1NzQ0ZSIsNiwiXHU3NDU2XHU3NDU4XHU3NDVkXHU3NDYwIiwxMiwiXHU3NDZlXHU3NDZmXHU3NDcxIiw0LCJcdTc0NzhcdTc0NzlcdTc0N2EiXSxb''@;'; + put 'put ''ImFkNDAiLCJcdTc0N2JcdTc0N2NcdTc0N2RcdTc0N2ZcdTc0ODJcdTc0ODRcdTc0ODVcdTc0ODZcdTc0ODhcdTc0ODlcdTc0OGFcdTc0OGNcdTc0OGRcdTc0OGZcdTc0OTEiLDEwLCJcdTc0OWRcdTc0OWYiLDcsIlx1NzRhYSIsMTUsIlx1NzRiYiIsMTJdLFsiYWQ4MCIsIlx1NzRjOCIsOSwi''@;'; + put 'put ''XHU3NGQzIiw4LCJcdTc0ZGRcdTc0ZGZcdTc0ZTFcdTc0ZTVcdTc0ZTciLDYsIlx1NzRmMFx1NzRmMVx1NzRmMiJdLFsiYWU0MCIsIlx1NzRmM1x1NzRmNVx1NzRmOCIsNiwiXHU3NTAwXHU3NTAxXHU3NTAyXHU3NTAzXHU3NTA1Iiw3LCJcdTc1MGVcdTc1MTBcdTc1MTJcdTc1MTRcdTc1MTVc''@;'; + put 'put ''dTc1MTZcdTc1MTdcdTc1MWJcdTc1MWRcdTc1MWVcdTc1MjAiLDQsIlx1NzUyNlx1NzUyN1x1NzUyYVx1NzUyZVx1NzUzNFx1NzUzNlx1NzUzOVx1NzUzY1x1NzUzZFx1NzUzZlx1NzU0MVx1NzU0Mlx1NzU0M1x1NzU0NFx1NzU0Nlx1NzU0N1x1NzU0OVx1NzU0YVx1NzU0ZFx1NzU1MFx1NzU1''@;'; + put 'put ''MVx1NzU1Mlx1NzU1M1x1NzU1NVx1NzU1Nlx1NzU1N1x1NzU1OCJdLFsiYWU4MCIsIlx1NzU1ZCIsNywiXHU3NTY3XHU3NTY4XHU3NTY5XHU3NTZiIiw2LCJcdTc1NzNcdTc1NzVcdTc1NzZcdTc1NzdcdTc1N2EiLDQsIlx1NzU4MFx1NzU4MVx1NzU4Mlx1NzU4NFx1NzU4NVx1NzU4NyJdLFsi''@;'; + put 'put ''YWY0MCIsIlx1NzU4OFx1NzU4OVx1NzU4YVx1NzU4Y1x1NzU4ZFx1NzU4ZVx1NzU5MFx1NzU5M1x1NzU5NVx1NzU5OFx1NzU5Ylx1NzU5Y1x1NzU5ZVx1NzVhMlx1NzVhNiIsNCwiXHU3NWFkXHU3NWI2XHU3NWI3XHU3NWJhXHU3NWJiXHU3NWJmXHU3NWMwXHU3NWMxXHU3NWM2XHU3NWNiXHU3''@;'; + put 'put ''NWNjXHU3NWNlXHU3NWNmXHU3NWQwXHU3NWQxXHU3NWQzXHU3NWQ3XHU3NWQ5XHU3NWRhXHU3NWRjXHU3NWRkXHU3NWRmXHU3NWUwXHU3NWUxXHU3NWU1XHU3NWU5XHU3NWVjXHU3NWVkXHU3NWVlXHU3NWVmXHU3NWYyXHU3NWYzXHU3NWY1XHU3NWY2XHU3NWY3XHU3NWY4XHU3NWZhXHU3NWZi''@;'; + put 'put ''XHU3NWZkXHU3NWZlXHU3NjAyXHU3NjA0XHU3NjA2XHU3NjA3Il0sWyJhZjgwIiwiXHU3NjA4XHU3NjA5XHU3NjBiXHU3NjBkXHU3NjBlXHU3NjBmXHU3NjExXHU3NjEyXHU3NjEzXHU3NjE0XHU3NjE2XHU3NjFhXHU3NjFjXHU3NjFkXHU3NjFlXHU3NjIxXHU3NjIzXHU3NjI3XHU3NjI4XHU3''@;'; + put 'put ''NjJjXHU3NjJlXHU3NjJmXHU3NjMxXHU3NjMyXHU3NjM2XHU3NjM3XHU3NjM5XHU3NjNhXHU3NjNiXHU3NjNkXHU3NjQxXHU3NjQyXHU3NjQ0Il0sWyJiMDQwIiwiXHU3NjQ1Iiw2LCJcdTc2NGUiLDUsIlx1NzY1NVx1NzY1NyIsNCwiXHU3NjVkXHU3NjVmXHU3NjYwXHU3NjYxXHU3NjYyXHU3''@;'; + put 'put ''NjY0Iiw2LCJcdTc2NmNcdTc2NmRcdTc2NmVcdTc2NzAiLDcsIlx1NzY3OVx1NzY3YVx1NzY3Y1x1NzY3Zlx1NzY4MFx1NzY4MVx1NzY4M1x1NzY4NVx1NzY4OVx1NzY4YVx1NzY4Y1x1NzY4ZFx1NzY4Zlx1NzY5MFx1NzY5Mlx1NzY5NFx1NzY5NVx1NzY5N1x1NzY5OFx1NzY5YVx1NzY5YiJd''@;'; + put 'put ''LFsiYjA4MCIsIlx1NzY5YyIsNywiXHU3NmE1Iiw4LCJcdTc2YWZcdTc2YjBcdTc2YjNcdTc2YjUiLDksIlx1NzZjMFx1NzZjMVx1NzZjM1x1NTU0YVx1OTYzZlx1NTdjM1x1NjMyOFx1NTRjZVx1NTUwOVx1NTRjMFx1NzY5MVx1NzY0Y1x1ODUzY1x1NzdlZVx1ODI3ZVx1Nzg4ZFx1NzIzMVx1''@;'; + put 'put ''OTY5OFx1OTc4ZFx1NmMyOFx1NWI4OVx1NGZmYVx1NjMwOVx1NjY5N1x1NWNiOFx1ODBmYVx1Njg0OFx1ODBhZVx1NjYwMlx1NzZjZVx1NTFmOVx1NjU1Nlx1NzFhY1x1N2ZmMVx1ODg4NFx1NTBiMlx1NTk2NVx1NjFjYVx1NmZiM1x1ODJhZFx1NjM0Y1x1NjI1Mlx1NTNlZFx1NTQyN1x1N2Iw''@;'; + put 'put ''Nlx1NTE2Ylx1NzVhNFx1NWRmNFx1NjJkNFx1OGRjYlx1OTc3Nlx1NjI4YVx1ODAxOVx1NTc1ZFx1OTczOFx1N2Y2Mlx1NzIzOFx1NzY3ZFx1NjdjZlx1NzY3ZVx1NjQ0Nlx1NGY3MFx1OGQyNVx1NjJkY1x1N2ExN1x1NjU5MVx1NzNlZFx1NjQyY1x1NjI3M1x1ODIyY1x1OTg4MVx1Njc3Zlx1''@;'; + put 'put ''NzI0OFx1NjI2ZVx1NjJjY1x1NGYzNFx1NzRlM1x1NTM0YVx1NTI5ZVx1N2VjYVx1OTBhNlx1NWUyZVx1Njg4Nlx1Njk5Y1x1ODE4MFx1N2VkMVx1NjhkMlx1NzhjNVx1ODY4Y1x1OTU1MVx1NTA4ZFx1OGMyNFx1ODJkZVx1ODBkZVx1NTMwNVx1ODkxMlx1NTI2NSJdLFsiYjE0MCIsIlx1NzZj''@;'; + put 'put ''NFx1NzZjN1x1NzZjOVx1NzZjYlx1NzZjY1x1NzZkM1x1NzZkNVx1NzZkOVx1NzZkYVx1NzZkY1x1NzZkZFx1NzZkZVx1NzZlMCIsNCwiXHU3NmU2Iiw3LCJcdTc2ZjBcdTc2ZjNcdTc2ZjVcdTc2ZjZcdTc2ZjdcdTc2ZmFcdTc2ZmJcdTc2ZmRcdTc2ZmZcdTc3MDBcdTc3MDJcdTc3MDNcdTc3''@;'; + put 'put ''MDVcdTc3MDZcdTc3MGFcdTc3MGNcdTc3MGUiLDEwLCJcdTc3MWJcdTc3MWNcdTc3MWRcdTc3MWVcdTc3MjFcdTc3MjNcdTc3MjRcdTc3MjVcdTc3MjdcdTc3MmFcdTc3MmIiXSxbImIxODAiLCJcdTc3MmNcdTc3MmVcdTc3MzAiLDQsIlx1NzczOVx1NzczYlx1NzczZFx1NzczZVx1NzczZlx1''@;'; + put 'put ''Nzc0Mlx1Nzc0NFx1Nzc0NVx1Nzc0Nlx1Nzc0OCIsNywiXHU3NzUyIiw3LCJcdTc3NWNcdTg1ODRcdTk2ZjlcdTRmZGRcdTU4MjFcdTk5NzFcdTViOWRcdTYyYjFcdTYyYTVcdTY2YjRcdThjNzlcdTljOGRcdTcyMDZcdTY3NmZcdTc4OTFcdTYwYjJcdTUzNTFcdTUzMTdcdThmODhcdTgwY2Nc''@;'; + put 'put ''dThkMWRcdTk0YTFcdTUwMGRcdTcyYzhcdTU5MDdcdTYwZWJcdTcxMTlcdTg4YWJcdTU5NTRcdTgyZWZcdTY3MmNcdTdiMjhcdTVkMjlcdTdlZjdcdTc1MmRcdTZjZjVcdThlNjZcdThmZjhcdTkwM2NcdTlmM2JcdTZiZDRcdTkxMTlcdTdiMTRcdTVmN2NcdTc4YTdcdTg0ZDZcdTg1M2RcdTZi''@;'; + put 'put ''ZDVcdTZiZDlcdTZiZDZcdTVlMDFcdTVlODdcdTc1ZjlcdTk1ZWRcdTY1NWRcdTVmMGFcdTVmYzVcdThmOWZcdTU4YzFcdTgxYzJcdTkwN2ZcdTk2NWJcdTk3YWRcdThmYjlcdTdmMTZcdThkMmNcdTYyNDFcdTRmYmZcdTUzZDhcdTUzNWVcdThmYThcdThmYTlcdThmYWJcdTkwNGRcdTY4MDdc''@;'; + put 'put ''dTVmNmFcdTgxOThcdTg4NjhcdTljZDZcdTYxOGJcdTUyMmJcdTc2MmFcdTVmNmNcdTY1OGNcdTZmZDJcdTZlZThcdTViYmVcdTY0NDhcdTUxNzVcdTUxYjBcdTY3YzRcdTRlMTlcdTc5YzlcdTk5N2NcdTcwYjMiXSxbImIyNDAiLCJcdTc3NWRcdTc3NWVcdTc3NWZcdTc3NjBcdTc3NjRcdTc3''@;'; + put 'put ''NjdcdTc3NjlcdTc3NmFcdTc3NmQiLDExLCJcdTc3N2FcdTc3N2JcdTc3N2NcdTc3ODFcdTc3ODJcdTc3ODNcdTc3ODYiLDUsIlx1Nzc4Zlx1Nzc5MFx1Nzc5MyIsMTEsIlx1NzdhMVx1NzdhM1x1NzdhNFx1NzdhNlx1NzdhOFx1NzdhYlx1NzdhZFx1NzdhZVx1NzdhZlx1NzdiMVx1NzdiMlx1''@;'; + put 'put ''NzdiNFx1NzdiNiIsNF0sWyJiMjgwIiwiXHU3N2JjXHU3N2JlXHU3N2MwIiwxMiwiXHU3N2NlIiw4LCJcdTc3ZDhcdTc3ZDlcdTc3ZGFcdTc3ZGQiLDQsIlx1NzdlNFx1NzVjNVx1NWU3Nlx1NzNiYlx1ODNlMFx1NjRhZFx1NjJlOFx1OTRiNVx1NmNlMlx1NTM1YVx1NTJjM1x1NjQwZlx1OTRj''@;'; + put 'put ''Mlx1N2I5NFx1NGYyZlx1NWUxYlx1ODIzNlx1ODExNlx1ODE4YVx1NmUyNFx1NmNjYVx1OWE3M1x1NjM1NVx1NTM1Y1x1NTRmYVx1ODg2NVx1NTdlMFx1NGUwZFx1NWUwM1x1NmI2NVx1N2MzZlx1OTBlOFx1NjAxNlx1NjRlNlx1NzMxY1x1ODhjMVx1Njc1MFx1NjI0ZFx1OGQyMlx1Nzc2Y1x1''@;'; + put 'put ''OGUyOVx1OTFjN1x1NWY2OVx1ODNkY1x1ODUyMVx1OTkxMFx1NTNjMlx1ODY5NVx1NmI4Ylx1NjBlZFx1NjBlOFx1NzA3Zlx1ODJjZFx1ODIzMVx1NGVkM1x1NmNhN1x1ODVjZlx1NjRjZFx1N2NkOVx1NjlmZFx1NjZmOVx1ODM0OVx1NTM5NVx1N2I1Nlx1NGZhN1x1NTE4Y1x1NmQ0Ylx1NWM0''@;'; + put 'put ''Mlx1OGU2ZFx1NjNkMlx1NTNjOVx1ODMyY1x1ODMzNlx1NjdlNVx1NzhiNFx1NjQzZFx1NWJkZlx1NWM5NFx1NWRlZVx1OGJlN1x1NjJjNlx1NjdmNFx1OGM3YVx1NjQwMFx1NjNiYVx1ODc0OVx1OTk4Ylx1OGMxN1x1N2YyMFx1OTRmMlx1NGVhN1x1OTYxMFx1OThhNFx1NjYwY1x1NzMxNiJd''@;'; + put 'put ''LFsiYjM0MCIsIlx1NzdlNlx1NzdlOFx1NzdlYVx1NzdlZlx1NzdmMFx1NzdmMVx1NzdmMlx1NzdmNFx1NzdmNVx1NzdmN1x1NzdmOVx1NzdmYVx1NzdmYlx1NzdmY1x1NzgwMyIsNSwiXHU3ODBhXHU3ODBiXHU3ODBlXHU3ODBmXHU3ODEwXHU3ODEzXHU3ODE1XHU3ODE5XHU3ODFiXHU3ODFl''@;'; + put 'put ''XHU3ODIwXHU3ODIxXHU3ODIyXHU3ODI0XHU3ODI4XHU3ODJhXHU3ODJiXHU3ODJlXHU3ODJmXHU3ODMxXHU3ODMyXHU3ODMzXHU3ODM1XHU3ODM2XHU3ODNkXHU3ODNmXHU3ODQxXHU3ODQyXHU3ODQzXHU3ODQ0XHU3ODQ2XHU3ODQ4XHU3ODQ5XHU3ODRhXHU3ODRiXHU3ODRkXHU3ODRmXHU3''@;'; + put 'put ''ODUxXHU3ODUzXHU3ODU0XHU3ODU4XHU3ODU5XHU3ODVhIl0sWyJiMzgwIiwiXHU3ODViXHU3ODVjXHU3ODVlIiwxMSwiXHU3ODZmIiw3LCJcdTc4NzhcdTc4NzlcdTc4N2FcdTc4N2JcdTc4N2QiLDYsIlx1NTczYVx1NWMxZFx1NWUzOFx1OTU3Zlx1NTA3Zlx1ODBhMFx1NTM4Mlx1NjU1ZVx1''@;'; + put 'put ''NzU0NVx1NTUzMVx1NTAyMVx1OGQ4NVx1NjI4NFx1OTQ5ZVx1NjcxZFx1NTYzMlx1NmY2ZVx1NWRlMlx1NTQzNVx1NzA5Mlx1OGY2Nlx1NjI2Zlx1NjRhNFx1NjNhM1x1NWY3Ylx1NmY4OFx1OTBmNFx1ODFlM1x1OGZiMFx1NWMxOFx1NjY2OFx1NWZmMVx1NmM4OVx1OTY0OFx1OGQ4MVx1ODg2''@;'; + put 'put ''Y1x1NjQ5MVx1NzlmMFx1NTdjZVx1NmE1OVx1NjIxMFx1NTQ0OFx1NGU1OFx1N2EwYlx1NjBlOVx1NmY4NFx1OGJkYVx1NjI3Zlx1OTAxZVx1OWE4Ylx1NzllNFx1NTQwM1x1NzVmNFx1NjMwMVx1NTMxOVx1NmM2MFx1OGZkZlx1NWYxYlx1OWE3MFx1ODAzYlx1OWY3Zlx1NGY4OFx1NWMzYVx1''@;'; + put 'put ''OGQ2NFx1N2ZjNVx1NjVhNVx1NzBiZFx1NTE0NVx1NTFiMlx1ODY2Ylx1NWQwN1x1NWJhMFx1NjJiZFx1OTE2Y1x1NzU3NFx1OGUwY1x1N2EyMFx1NjEwMVx1N2I3OVx1NGVjN1x1N2VmOFx1Nzc4NVx1NGUxMVx1ODFlZFx1NTIxZFx1NTFmYVx1NmE3MVx1NTNhOFx1OGU4N1x1OTUwNFx1OTZj''@;'; + put 'put ''Zlx1NmVjMVx1OTY2NFx1Njk1YSJdLFsiYjQ0MCIsIlx1Nzg4NFx1Nzg4NVx1Nzg4Nlx1Nzg4OFx1Nzg4YVx1Nzg4Ylx1Nzg4Zlx1Nzg5MFx1Nzg5Mlx1Nzg5NFx1Nzg5NVx1Nzg5Nlx1Nzg5OVx1Nzg5ZFx1Nzg5ZVx1NzhhMFx1NzhhMlx1NzhhNFx1NzhhNlx1NzhhOCIsNywiXHU3OGI1XHU3''@;'; + put 'put ''OGI2XHU3OGI3XHU3OGI4XHU3OGJhXHU3OGJiXHU3OGJjXHU3OGJkXHU3OGJmXHU3OGMwXHU3OGMyXHU3OGMzXHU3OGM0XHU3OGM2XHU3OGM3XHU3OGM4XHU3OGNjXHU3OGNkXHU3OGNlXHU3OGNmXHU3OGQxXHU3OGQyXHU3OGQzXHU3OGQ2XHU3OGQ3XHU3OGQ4XHU3OGRhIiw5XSxbImI0ODAi''@;'; + put 'put ''LCJcdTc4ZTRcdTc4ZTVcdTc4ZTZcdTc4ZTdcdTc4ZTlcdTc4ZWFcdTc4ZWJcdTc4ZWQiLDQsIlx1NzhmM1x1NzhmNVx1NzhmNlx1NzhmOFx1NzhmOVx1NzhmYiIsNSwiXHU3OTAyXHU3OTAzXHU3OTA0XHU3OTA2Iiw2LCJcdTc4NDBcdTUwYThcdTc3ZDdcdTY0MTBcdTg5ZTZcdTU5MDRcdTYz''@;'; + put 'put ''ZTNcdTVkZGRcdTdhN2ZcdTY5M2RcdTRmMjBcdTgyMzlcdTU1OThcdTRlMzJcdTc1YWVcdTdhOTdcdTVlNjJcdTVlOGFcdTk1ZWZcdTUyMWJcdTU0MzlcdTcwOGFcdTYzNzZcdTk1MjRcdTU3ODJcdTY2MjVcdTY5M2ZcdTkxODdcdTU1MDdcdTZkZjNcdTdlYWZcdTg4MjJcdTYyMzNcdTdlZjBc''@;'; + put 'put ''dTc1YjVcdTgzMjhcdTc4YzFcdTk2Y2NcdThmOWVcdTYxNDhcdTc0ZjdcdThiY2RcdTZiNjRcdTUyM2FcdThkNTBcdTZiMjFcdTgwNmFcdTg0NzFcdTU2ZjFcdTUzMDZcdTRlY2VcdTRlMWJcdTUxZDFcdTdjOTdcdTkxOGJcdTdjMDdcdTRmYzNcdThlN2ZcdTdiZTFcdTdhOWNcdTY0NjdcdTVk''@;'; + put 'put ''MTRcdTUwYWNcdTgxMDZcdTc2MDFcdTdjYjlcdTZkZWNcdTdmZTBcdTY3NTFcdTViNThcdTViZjhcdTc4Y2JcdTY0YWVcdTY0MTNcdTYzYWFcdTYzMmJcdTk1MTlcdTY0MmRcdThmYmVcdTdiNTRcdTc2MjlcdTYyNTNcdTU5MjdcdTU0NDZcdTZiNzlcdTUwYTNcdTYyMzRcdTVlMjZcdTZiODZc''@;'; + put 'put ''dTRlZTNcdThkMzdcdTg4OGJcdTVmODVcdTkwMmUiXSxbImI1NDAiLCJcdTc5MGQiLDUsIlx1NzkxNCIsOSwiXHU3OTFmIiw0LCJcdTc5MjUiLDE0LCJcdTc5MzUiLDQsIlx1NzkzZFx1NzkzZlx1Nzk0Mlx1Nzk0M1x1Nzk0NFx1Nzk0NVx1Nzk0N1x1Nzk0YSIsOCwiXHU3OTU0XHU3OTU1XHU3''@;'; + put 'put ''OTU4XHU3OTU5XHU3OTYxXHU3OTYzIl0sWyJiNTgwIiwiXHU3OTY0XHU3OTY2XHU3OTY5XHU3OTZhXHU3OTZiXHU3OTZjXHU3OTZlXHU3OTcwIiw2LCJcdTc5NzlcdTc5N2IiLDQsIlx1Nzk4Mlx1Nzk4M1x1Nzk4Nlx1Nzk4N1x1Nzk4OFx1Nzk4OVx1Nzk4Ylx1Nzk4Y1x1Nzk4ZFx1Nzk4ZVx1''@;'; + put 'put ''Nzk5MFx1Nzk5MVx1Nzk5Mlx1NjAyMFx1ODAzZFx1NjJjNVx1NGUzOVx1NTM1NVx1OTBmOFx1NjNiOFx1ODBjNlx1NjVlNlx1NmMyZVx1NGY0Nlx1NjBlZVx1NmRlMVx1OGJkZVx1NWYzOVx1ODZjYlx1NWY1M1x1NjMyMVx1NTE1YVx1ODM2MVx1Njg2M1x1NTIwMFx1NjM2M1x1OGU0OFx1NTAx''@;'; + put 'put ''Mlx1NWM5Ylx1Nzk3N1x1NWJmY1x1NTIzMFx1N2EzYlx1NjBiY1x1OTA1M1x1NzZkN1x1NWZiN1x1NWY5N1x1NzY4NFx1OGU2Y1x1NzA2Zlx1NzY3Ylx1N2I0OVx1NzdhYVx1NTFmM1x1OTA5M1x1NTgyNFx1NGY0ZVx1NmVmNFx1OGZlYVx1NjU0Y1x1N2IxYlx1NzJjNFx1NmRhNFx1N2ZkZlx1''@;'; + put 'put ''NWFlMVx1NjJiNVx1NWU5NVx1NTczMFx1ODQ4Mlx1N2IyY1x1NWUxZFx1NWYxZlx1OTAxMlx1N2YxNFx1OThhMFx1NjM4Mlx1NmVjN1x1Nzg5OFx1NzBiOVx1NTE3OFx1OTc1Ylx1NTdhYlx1NzUzNVx1NGY0M1x1NzUzOFx1NWU5N1x1NjBlNlx1NTk2MFx1NmRjMFx1NmJiZlx1Nzg4OVx1NTNm''@;'; + put 'put ''Y1x1OTZkNVx1NTFjYlx1NTIwMVx1NjM4OVx1NTQwYVx1OTQ5M1x1OGMwM1x1OGRjY1x1NzIzOVx1Nzg5Zlx1ODc3Nlx1OGZlZFx1OGMwZFx1NTNlMCJdLFsiYjY0MCIsIlx1Nzk5MyIsNiwiXHU3OTliIiwxMSwiXHU3OWE4IiwxMCwiXHU3OWI0Iiw0LCJcdTc5YmNcdTc5YmZcdTc5YzJcdTc5''@;'; + put 'put ''YzRcdTc5YzVcdTc5YzdcdTc5YzhcdTc5Y2FcdTc5Y2NcdTc5Y2VcdTc5Y2ZcdTc5ZDBcdTc5ZDNcdTc5ZDRcdTc5ZDZcdTc5ZDdcdTc5ZDkiLDUsIlx1NzllMFx1NzllMVx1NzllMlx1NzllNVx1NzllOFx1NzllYSJdLFsiYjY4MCIsIlx1NzllY1x1NzllZVx1NzlmMSIsNiwiXHU3OWY5XHU3''@;'; + put 'put ''OWZhXHU3OWZjXHU3OWZlXHU3OWZmXHU3YTAxXHU3YTA0XHU3YTA1XHU3YTA3XHU3YTA4XHU3YTA5XHU3YTBhXHU3YTBjXHU3YTBmIiw0LCJcdTdhMTVcdTdhMTZcdTdhMThcdTdhMTlcdTdhMWJcdTdhMWNcdTRlMDFcdTc2ZWZcdTUzZWVcdTk0ODlcdTk4NzZcdTlmMGVcdTk1MmRcdTViOWFc''@;'; + put 'put ''dThiYTJcdTRlMjJcdTRlMWNcdTUxYWNcdTg0NjNcdTYxYzJcdTUyYThcdTY4MGJcdTRmOTdcdTYwNmJcdTUxYmJcdTZkMWVcdTUxNWNcdTYyOTZcdTY1OTdcdTk2NjFcdThjNDZcdTkwMTdcdTc1ZDhcdTkwZmRcdTc3NjNcdTZiZDJcdTcyOGFcdTcyZWNcdThiZmJcdTU4MzVcdTc3NzlcdThk''@;'; + put 'put ''NGNcdTY3NWNcdTk1NDBcdTgwOWFcdTVlYTZcdTZlMjFcdTU5OTJcdTdhZWZcdTc3ZWRcdTk1M2JcdTZiYjVcdTY1YWRcdTdmMGVcdTU4MDZcdTUxNTFcdTk2MWZcdTViZjlcdTU4YTlcdTU0MjhcdThlNzJcdTY1NjZcdTk4N2ZcdTU2ZTRcdTk0OWRcdTc2ZmVcdTkwNDFcdTYzODdcdTU0YzZc''@;'; + put 'put ''dTU5MWFcdTU5M2FcdTU3OWJcdThlYjJcdTY3MzVcdThkZmFcdTgyMzVcdTUyNDFcdTYwZjBcdTU4MTVcdTg2ZmVcdTVjZThcdTllNDVcdTRmYzRcdTk4OWRcdThiYjlcdTVhMjVcdTYwNzZcdTUzODRcdTYyN2NcdTkwNGZcdTkxMDJcdTk5N2ZcdTYwNjlcdTgwMGNcdTUxM2ZcdTgwMzNcdTVj''@;'; + put 'put ''MTRcdTk5NzVcdTZkMzFcdTRlOGMiXSxbImI3NDAiLCJcdTdhMWRcdTdhMWZcdTdhMjFcdTdhMjJcdTdhMjQiLDE0LCJcdTdhMzRcdTdhMzVcdTdhMzZcdTdhMzhcdTdhM2FcdTdhM2VcdTdhNDAiLDUsIlx1N2E0NyIsOSwiXHU3YTUyIiw0LCJcdTdhNTgiLDE2XSxbImI3ODAiLCJcdTdhNjki''@;'; + put 'put ''LDYsIlx1N2E3MVx1N2E3Mlx1N2E3M1x1N2E3NVx1N2E3Ylx1N2E3Y1x1N2E3ZFx1N2E3ZVx1N2E4Mlx1N2E4NVx1N2E4N1x1N2E4OVx1N2E4YVx1N2E4Ylx1N2E4Y1x1N2E4ZVx1N2E4Zlx1N2E5MFx1N2E5M1x1N2E5NFx1N2E5OVx1N2E5YVx1N2E5Ylx1N2E5ZVx1N2FhMVx1N2FhMlx1OGQz''@;'; + put 'put ''MFx1NTNkMVx1N2Y1YVx1N2I0Zlx1NGYxMFx1NGU0Zlx1OTYwMFx1NmNkNVx1NzNkMFx1ODVlOVx1NWUwNlx1NzU2YVx1N2ZmYlx1NmEwYVx1NzdmZVx1OTQ5Mlx1N2U0MVx1NTFlMVx1NzBlNlx1NTNjZFx1OGZkNFx1ODMwM1x1OGQyOVx1NzJhZlx1OTk2ZFx1NmNkYlx1NTc0YVx1ODJiM1x1''@;'; + put 'put ''NjViOVx1ODBhYVx1NjIzZlx1OTYzMlx1NTlhOFx1NGVmZlx1OGJiZlx1N2ViYVx1NjUzZVx1ODNmMlx1OTc1ZVx1NTU2MVx1OThkZVx1ODBhNVx1NTMyYVx1OGJmZFx1NTQyMFx1ODBiYVx1NWU5Zlx1NmNiOFx1OGQzOVx1ODJhY1x1OTE1YVx1NTQyOVx1NmMxYlx1NTIwNlx1N2ViN1x1NTc1''@;'; + put 'put ''Zlx1NzExYVx1NmM3ZVx1N2M4OVx1NTk0Ylx1NGVmZFx1NWZmZlx1NjEyNFx1N2NhYVx1NGUzMFx1NWMwMVx1NjdhYlx1ODcwMlx1NWNmMFx1OTUwYlx1OThjZVx1NzVhZlx1NzBmZFx1OTAyMlx1NTFhZlx1N2YxZFx1OGJiZFx1NTk0OVx1NTFlNFx1NGY1Ylx1NTQyNlx1NTkyYlx1NjU3N1x1''@;'; + put 'put ''ODBhNFx1NWI3NVx1NjI3Nlx1NjJjMlx1OGY5MFx1NWU0NVx1NmMxZlx1N2IyNlx1NGYwZlx1NGZkOFx1NjcwZCJdLFsiYjg0MCIsIlx1N2FhM1x1N2FhNFx1N2FhN1x1N2FhOVx1N2FhYVx1N2FhYlx1N2FhZSIsNCwiXHU3YWI0IiwxMCwiXHU3YWMwIiwxMCwiXHU3YWNjIiw5LCJcdTdhZDdc''@;'; + put 'put ''dTdhZDhcdTdhZGFcdTdhZGJcdTdhZGNcdTdhZGRcdTdhZTFcdTdhZTJcdTdhZTRcdTdhZTciLDUsIlx1N2FlZVx1N2FmMFx1N2FmMVx1N2FmMlx1N2FmMyJdLFsiYjg4MCIsIlx1N2FmNCIsNCwiXHU3YWZiXHU3YWZjXHU3YWZlXHU3YjAwXHU3YjAxXHU3YjAyXHU3YjA1XHU3YjA3XHU3YjA5''@;'; + put 'put ''XHU3YjBjXHU3YjBkXHU3YjBlXHU3YjEwXHU3YjEyXHU3YjEzXHU3YjE2XHU3YjE3XHU3YjE4XHU3YjFhXHU3YjFjXHU3YjFkXHU3YjFmXHU3YjIxXHU3YjIyXHU3YjIzXHU3YjI3XHU3YjI5XHU3YjJkXHU2ZDZlXHU2ZGFhXHU3OThmXHU4OGIxXHU1ZjE3XHU3NTJiXHU2MjlhXHU4Zjg1XHU0''@;'; + put 'put ''ZmVmXHU5MWRjXHU2NWE3XHU4MTJmXHU4MTUxXHU1ZTljXHU4MTUwXHU4ZDc0XHU1MjZmXHU4OTg2XHU4ZDRiXHU1OTBkXHU1MDg1XHU0ZWQ4XHU5NjFjXHU3MjM2XHU4MTc5XHU4ZDFmXHU1YmNjXHU4YmEzXHU5NjQ0XHU1OTg3XHU3ZjFhXHU1NDkwXHU1Njc2XHU1NjBlXHU4YmU1XHU2NTM5''@;'; + put 'put ''XHU2OTgyXHU5NDk5XHU3NmQ2XHU2ZTg5XHU1ZTcyXHU3NTE4XHU2NzQ2XHU2N2QxXHU3YWZmXHU4MDlkXHU4ZDc2XHU2MTFmXHU3OWM2XHU2NTYyXHU4ZDYzXHU1MTg4XHU1MjFhXHU5NGEyXHU3ZjM4XHU4MDliXHU3ZWIyXHU1Yzk3XHU2ZTJmXHU2NzYwXHU3YmQ5XHU3NjhiXHU5YWQ4XHU4''@;'; + put 'put ''MThmXHU3Zjk0XHU3Y2Q1XHU2NDFlXHU5NTUwXHU3YTNmXHU1NDRhXHU1NGU1XHU2YjRjXHU2NDAxXHU2MjA4XHU5ZTNkXHU4MGYzXHU3NTk5XHU1MjcyXHU5NzY5XHU4NDViXHU2ODNjXHU4NmU0XHU5NjAxXHU5Njk0XHU5NGVjXHU0ZTJhXHU1NDA0XHU3ZWQ5XHU2ODM5XHU4ZGRmXHU4MDE1''@;'; + put 'put ''XHU2NmY0XHU1ZTlhXHU3ZmI5Il0sWyJiOTQwIiwiXHU3YjJmXHU3YjMwXHU3YjMyXHU3YjM0XHU3YjM1XHU3YjM2XHU3YjM3XHU3YjM5XHU3YjNiXHU3YjNkXHU3YjNmIiw1LCJcdTdiNDZcdTdiNDhcdTdiNGFcdTdiNGRcdTdiNGVcdTdiNTNcdTdiNTVcdTdiNTdcdTdiNTlcdTdiNWNcdTdi''@;'; + put 'put ''NWVcdTdiNWZcdTdiNjFcdTdiNjMiLDEwLCJcdTdiNmZcdTdiNzBcdTdiNzNcdTdiNzRcdTdiNzZcdTdiNzhcdTdiN2FcdTdiN2NcdTdiN2RcdTdiN2ZcdTdiODFcdTdiODJcdTdiODNcdTdiODRcdTdiODYiLDYsIlx1N2I4ZVx1N2I4ZiJdLFsiYjk4MCIsIlx1N2I5MVx1N2I5Mlx1N2I5M1x1''@;'; + put 'put ''N2I5Nlx1N2I5OFx1N2I5OVx1N2I5YVx1N2I5Ylx1N2I5ZVx1N2I5Zlx1N2JhMFx1N2JhM1x1N2JhNFx1N2JhNVx1N2JhZVx1N2JhZlx1N2JiMFx1N2JiMlx1N2JiM1x1N2JiNVx1N2JiNlx1N2JiN1x1N2JiOSIsNywiXHU3YmMyXHU3YmMzXHU3YmM0XHU1N2MyXHU4MDNmXHU2ODk3XHU1ZGU1''@;'; + put 'put ''XHU2NTNiXHU1MjlmXHU2MDZkXHU5ZjlhXHU0ZjliXHU4ZWFjXHU1MTZjXHU1YmFiXHU1ZjEzXHU1ZGU5XHU2YzVlXHU2MmYxXHU4ZDIxXHU1MTcxXHU5NGE5XHU1MmZlXHU2YzlmXHU4MmRmXHU3MmQ3XHU1N2EyXHU2Nzg0XHU4ZDJkXHU1OTFmXHU4ZjljXHU4M2M3XHU1NDk1XHU3YjhkXHU0''@;'; + put 'put ''ZjMwXHU2Y2JkXHU1YjY0XHU1OWQxXHU5ZjEzXHU1M2U0XHU4NmNhXHU5YWE4XHU4YzM3XHU4MGExXHU2NTQ1XHU5ODdlXHU1NmZhXHU5NmM3XHU1MjJlXHU3NGRjXHU1MjUwXHU1YmUxXHU2MzAyXHU4OTAyXHU0ZTU2XHU2MmQwXHU2MDJhXHU2OGZhXHU1MTczXHU1Yjk4XHU1MWEwXHU4OWMy''@;'; + put 'put ''XHU3YmExXHU5OTg2XHU3ZjUwXHU2MGVmXHU3MDRjXHU4ZDJmXHU1MTQ5XHU1ZTdmXHU5MDFiXHU3NDcwXHU4OWM0XHU1NzJkXHU3ODQ1XHU1ZjUyXHU5ZjlmXHU5NWZhXHU4ZjY4XHU5YjNjXHU4YmUxXHU3Njc4XHU2ODQyXHU2N2RjXHU4ZGVhXHU4ZDM1XHU1MjNkXHU4ZjhhXHU2ZWRhXHU2''@;'; + put 'put ''OGNkXHU5NTA1XHU5MGVkXHU1NmZkXHU2NzljXHU4OGY5XHU4ZmM3XHU1NGM4Il0sWyJiYTQwIiwiXHU3YmM1XHU3YmM4XHU3YmM5XHU3YmNhXHU3YmNiXHU3YmNkXHU3YmNlXHU3YmNmXHU3YmQwXHU3YmQyXHU3YmQ0Iiw0LCJcdTdiZGJcdTdiZGNcdTdiZGVcdTdiZGZcdTdiZTBcdTdiZTJc''@;'; + put 'put ''dTdiZTNcdTdiZTRcdTdiZTdcdTdiZThcdTdiZTlcdTdiZWJcdTdiZWNcdTdiZWRcdTdiZWZcdTdiZjBcdTdiZjIiLDQsIlx1N2JmOFx1N2JmOVx1N2JmYVx1N2JmYlx1N2JmZFx1N2JmZiIsNywiXHU3YzA4XHU3YzA5XHU3YzBhXHU3YzBkXHU3YzBlXHU3YzEwIiw1LCJcdTdjMTdcdTdjMThc''@;'; + put 'put ''dTdjMTkiXSxbImJhODAiLCJcdTdjMWEiLDQsIlx1N2MyMCIsNSwiXHU3YzI4XHU3YzI5XHU3YzJiIiwxMiwiXHU3YzM5Iiw1LCJcdTdjNDJcdTlhYjhcdTViNjlcdTZkNzdcdTZjMjZcdTRlYTVcdTViYjNcdTlhODdcdTkxNjNcdTYxYThcdTkwYWZcdTk3ZTlcdTU0MmJcdTZkYjVcdTViZDJc''@;'; + put 'put ''dTUxZmRcdTU1OGFcdTdmNTVcdTdmZjBcdTY0YmNcdTYzNGRcdTY1ZjFcdTYxYmVcdTYwOGRcdTcxMGFcdTZjNTdcdTZjNDlcdTU5MmZcdTY3NmRcdTgyMmFcdTU4ZDVcdTU2OGVcdThjNmFcdTZiZWJcdTkwZGRcdTU5N2RcdTgwMTdcdTUzZjdcdTZkNjlcdTU0NzVcdTU1OWRcdTgzNzdcdTgz''@;'; + put 'put ''Y2ZcdTY4MzhcdTc5YmVcdTU0OGNcdTRmNTVcdTU0MDhcdTc2ZDJcdThjODlcdTk2MDJcdTZjYjNcdTZkYjhcdThkNmJcdTg5MTBcdTllNjRcdThkM2FcdTU2M2ZcdTllZDFcdTc1ZDVcdTVmODhcdTcyZTBcdTYwNjhcdTU0ZmNcdTRlYThcdTZhMmFcdTg4NjFcdTYwNTJcdThmNzBcdTU0YzRc''@;'; + put 'put ''dTcwZDhcdTg2NzlcdTllM2ZcdTZkMmFcdTViOGZcdTVmMThcdTdlYTJcdTU1ODlcdTRmYWZcdTczMzRcdTU0M2NcdTUzOWFcdTUwMTlcdTU0MGVcdTU0N2NcdTRlNGVcdTVmZmRcdTc0NWFcdTU4ZjZcdTg0NmJcdTgwZTFcdTg3NzRcdTcyZDBcdTdjY2FcdTZlNTYiXSxbImJiNDAiLCJcdTdj''@;'; + put 'put ''NDMiLDksIlx1N2M0ZSIsMzYsIlx1N2M3NSIsNSwiXHU3YzdlIiw5XSxbImJiODAiLCJcdTdjODhcdTdjOGEiLDYsIlx1N2M5M1x1N2M5NFx1N2M5Nlx1N2M5OVx1N2M5YVx1N2M5Ylx1N2NhMFx1N2NhMVx1N2NhM1x1N2NhNlx1N2NhN1x1N2NhOFx1N2NhOVx1N2NhYlx1N2NhY1x1N2NhZFx1''@;'; + put 'put ''N2NhZlx1N2NiMFx1N2NiNCIsNCwiXHU3Y2JhXHU3Y2JiXHU1ZjI3XHU4NjRlXHU1NTJjXHU2MmE0XHU0ZTkyXHU2Y2FhXHU2MjM3XHU4MmIxXHU1NGQ3XHU1MzRlXHU3MzNlXHU2ZWQxXHU3NTNiXHU1MjEyXHU1MzE2XHU4YmRkXHU2OWQwXHU1ZjhhXHU2MDAwXHU2ZGVlXHU1NzRmXHU2YjIy''@;'; + put 'put ''XHU3M2FmXHU2ODUzXHU4ZmQ4XHU3ZjEzXHU2MzYyXHU2MGEzXHU1NTI0XHU3NWVhXHU4YzYyXHU3MTE1XHU2ZGEzXHU1YmE2XHU1ZTdiXHU4MzUyXHU2MTRjXHU5ZWM0XHU3OGZhXHU4NzU3XHU3YzI3XHU3Njg3XHU1MWYwXHU2MGY2XHU3MTRjXHU2NjQzXHU1ZTRjXHU2MDRkXHU4YzBlXHU3''@;'; + put 'put ''MDcwXHU2MzI1XHU4Zjg5XHU1ZmJkXHU2MDYyXHU4NmQ0XHU1NmRlXHU2YmMxXHU2MDk0XHU2MTY3XHU1MzQ5XHU2MGUwXHU2NjY2XHU4ZDNmXHU3OWZkXHU0ZjFhXHU3MGU5XHU2YzQ3XHU4YmIzXHU4YmYyXHU3ZWQ4XHU4MzY0XHU2NjBmXHU1YTVhXHU5YjQyXHU2ZDUxXHU2ZGY3XHU4YzQx''@;'; + put 'put ''XHU2ZDNiXHU0ZjE5XHU3MDZiXHU4M2I3XHU2MjE2XHU2MGQxXHU5NzBkXHU4ZDI3XHU3OTc4XHU1MWZiXHU1NzNlXHU1N2ZhXHU2NzNhXHU3NTc4XHU3YTNkXHU3OWVmXHU3Yjk1Il0sWyJiYzQwIiwiXHU3Y2JmXHU3Y2MwXHU3Y2MyXHU3Y2MzXHU3Y2M0XHU3Y2M2XHU3Y2M5XHU3Y2NiXHU3''@;'; + put 'put ''Y2NlIiw2LCJcdTdjZDhcdTdjZGFcdTdjZGJcdTdjZGRcdTdjZGVcdTdjZTEiLDYsIlx1N2NlOSIsNSwiXHU3Y2YwIiw3LCJcdTdjZjlcdTdjZmFcdTdjZmMiLDEzLCJcdTdkMGIiLDVdLFsiYmM4MCIsIlx1N2QxMSIsMTQsIlx1N2QyMVx1N2QyM1x1N2QyNFx1N2QyNVx1N2QyNlx1N2QyOFx1''@;'; + put 'put ''N2QyOVx1N2QyYVx1N2QyY1x1N2QyZFx1N2QyZVx1N2QzMCIsNiwiXHU4MDhjXHU5OTY1XHU4ZmY5XHU2ZmMwXHU4YmE1XHU5ZTIxXHU1OWVjXHU3ZWU5XHU3ZjA5XHU1NDA5XHU2NzgxXHU2OGQ4XHU4ZjkxXHU3YzRkXHU5NmM2XHU1M2NhXHU2MDI1XHU3NWJlXHU2YzcyXHU1MzczXHU1YWM5''@;'; + put 'put ''XHU3ZWE3XHU2MzI0XHU1MWUwXHU4MTBhXHU1ZGYxXHU4NGRmXHU2MjgwXHU1MTgwXHU1YjYzXHU0ZjBlXHU3OTZkXHU1MjQyXHU2MGI4XHU2ZDRlXHU1YmM0XHU1YmMyXHU4YmExXHU4YmIwXHU2NWUyXHU1ZmNjXHU5NjQ1XHU1OTkzXHU3ZWU3XHU3ZWFhXHU1NjA5XHU2N2I3XHU1OTM5XHU0''@;'; + put 'put ''ZjczXHU1YmI2XHU1MmEwXHU4MzVhXHU5ODhhXHU4ZDNlXHU3NTMyXHU5NGJlXHU1MDQ3XHU3YTNjXHU0ZWY3XHU2N2I2XHU5YTdlXHU1YWMxXHU2YjdjXHU3NmQxXHU1NzVhXHU1YzE2XHU3YjNhXHU5NWY0XHU3MTRlXHU1MTdjXHU4MGE5XHU4MjcwXHU1OTc4XHU3ZjA0XHU4MzI3XHU2OGMw''@;'; + put 'put ''XHU2N2VjXHU3OGIxXHU3ODc3XHU2MmUzXHU2MzYxXHU3YjgwXHU0ZmVkXHU1MjZhXHU1MWNmXHU4MzUwXHU2OWRiXHU5Mjc0XHU4ZGY1XHU4ZDMxXHU4OWMxXHU5NTJlXHU3YmFkXHU0ZWY2Il0sWyJiZDQwIiwiXHU3ZDM3Iiw1NCwiXHU3ZDZmIiw3XSxbImJkODAiLCJcdTdkNzgiLDMyLCJc''@;'; + put 'put ''dTUwNjVcdTgyMzBcdTUyNTFcdTk5NmZcdTZlMTBcdTZlODVcdTZkYTdcdTVlZmFcdTUwZjVcdTU5ZGNcdTVjMDZcdTZkNDZcdTZjNWZcdTc1ODZcdTg0OGJcdTY4NjhcdTU5NTZcdThiYjJcdTUzMjBcdTkxNzFcdTk2NGRcdTg1NDlcdTY5MTJcdTc5MDFcdTcxMjZcdTgwZjZcdTRlYTRcdTkw''@;'; + put 'put ''Y2FcdTZkNDdcdTlhODRcdTVhMDdcdTU2YmNcdTY0MDVcdTk0ZjBcdTc3ZWJcdTRmYTVcdTgxMWFcdTcyZTFcdTg5ZDJcdTk5N2FcdTdmMzRcdTdlZGVcdTUyN2ZcdTY1NTlcdTkxNzVcdThmN2ZcdThmODNcdTUzZWJcdTdhOTZcdTYzZWRcdTYzYTVcdTc2ODZcdTc5ZjhcdTg4NTdcdTk2MzZc''@;'; + put 'put ''dTYyMmFcdTUyYWJcdTgyODJcdTY4NTRcdTY3NzBcdTYzNzdcdTc3NmJcdTdhZWRcdTZkMDFcdTdlZDNcdTg5ZTNcdTU5ZDBcdTYyMTJcdTg1YzlcdTgyYTVcdTc1NGNcdTUwMWZcdTRlY2JcdTc1YTVcdThiZWJcdTVjNGFcdTVkZmVcdTdiNGJcdTY1YTRcdTkxZDFcdTRlY2FcdTZkMjVcdTg5''@;'; + put 'put ''NWZcdTdkMjdcdTk1MjZcdTRlYzVcdThjMjhcdThmZGJcdTk3NzNcdTY2NGJcdTc5ODFcdThmZDFcdTcwZWNcdTZkNzgiXSxbImJlNDAiLCJcdTdkOTkiLDEyLCJcdTdkYTciLDYsIlx1N2RhZiIsNDJdLFsiYmU4MCIsIlx1N2RkYSIsMzIsIlx1NWMzZFx1NTJiMlx1ODM0Nlx1NTE2Mlx1ODMw''@;'; + put 'put ''ZVx1Nzc1Ylx1NjY3Nlx1OWNiOFx1NGVhY1x1NjBjYVx1N2NiZVx1N2NiM1x1N2VjZlx1NGU5NVx1OGI2Nlx1NjY2Zlx1OTg4OFx1OTc1OVx1NTg4M1x1NjU2Y1x1OTU1Y1x1NWY4NFx1NzVjOVx1OTc1Nlx1N2FkZlx1N2FkZVx1NTFjMFx1NzBhZlx1N2E5OFx1NjNlYVx1N2E3Nlx1N2VhMFx1''@;'; + put 'put ''NzM5Nlx1OTdlZFx1NGU0NVx1NzA3OFx1NGU1ZFx1OTE1Mlx1NTNhOVx1NjU1MVx1NjVlN1x1ODFmY1x1ODIwNVx1NTQ4ZVx1NWMzMVx1NzU5YVx1OTdhMFx1NjJkOFx1NzJkOVx1NzViZFx1NWM0NVx1OWE3OVx1ODNjYVx1NWM0MFx1NTQ4MFx1NzdlOVx1NGUzZVx1NmNhZVx1ODA1YVx1NjJk''@;'; + put 'put ''Mlx1NjM2ZVx1NWRlOFx1NTE3N1x1OGRkZFx1OGUxZVx1OTUyZlx1NGZmMVx1NTNlNVx1NjBlN1x1NzBhY1x1NTI2N1x1NjM1MFx1OWU0M1x1NWExZlx1NTAyNlx1NzczN1x1NTM3N1x1N2VlMlx1NjQ4NVx1NjUyYlx1NjI4OVx1NjM5OFx1NTAxNFx1NzIzNVx1ODljOVx1NTFiM1x1OGJjMFx1''@;'; + put 'put ''N2VkZFx1NTc0N1x1ODNjY1x1OTRhN1x1NTE5Ylx1NTQxYlx1NWNmYiJdLFsiYmY0MCIsIlx1N2RmYiIsNjJdLFsiYmY4MCIsIlx1N2UzYVx1N2UzYyIsNCwiXHU3ZTQyIiw0LCJcdTdlNDgiLDIxLCJcdTRmY2FcdTdhZTNcdTZkNWFcdTkwZTFcdTlhOGZcdTU1ODBcdTU0OTZcdTUzNjFcdTU0''@;'; + put 'put ''YWZcdTVmMDBcdTYzZTlcdTY5NzdcdTUxZWZcdTYxNjhcdTUyMGFcdTU4MmFcdTUyZDhcdTU3NGVcdTc4MGRcdTc3MGJcdTVlYjdcdTYxNzdcdTdjZTBcdTYyNWJcdTYyOTdcdTRlYTJcdTcwOTVcdTgwMDNcdTYyZjdcdTcwZTRcdTk3NjBcdTU3NzdcdTgyZGJcdTY3ZWZcdTY4ZjVcdTc4ZDVc''@;'; + put 'put ''dTk4OTdcdTc5ZDFcdTU4ZjNcdTU0YjNcdTUzZWZcdTZlMzRcdTUxNGJcdTUyM2JcdTViYTJcdThiZmVcdTgwYWZcdTU1NDNcdTU3YTZcdTYwNzNcdTU3NTFcdTU0MmRcdTdhN2FcdTYwNTBcdTViNTRcdTYzYTdcdTYyYTBcdTUzZTNcdTYyNjNcdTViYzdcdTY3YWZcdTU0ZWRcdTdhOWZcdTgy''@;'; + put 'put ''ZTZcdTkxNzdcdTVlOTNcdTg4ZTRcdTU5MzhcdTU3YWVcdTYzMGVcdThkZThcdTgwZWZcdTU3NTdcdTdiNzdcdTRmYTlcdTVmZWJcdTViYmRcdTZiM2VcdTUzMjFcdTdiNTBcdTcyYzJcdTY4NDZcdTc3ZmZcdTc3MzZcdTY1ZjdcdTUxYjVcdTRlOGZcdTc2ZDRcdTVjYmZcdTdhYTVcdTg0NzVc''@;'; + put 'put ''dTU5NGVcdTliNDFcdTUwODAiXSxbImMwNDAiLCJcdTdlNWUiLDM1LCJcdTdlODMiLDIzLCJcdTdlOWNcdTdlOWRcdTdlOWUiXSxbImMwODAiLCJcdTdlYWVcdTdlYjRcdTdlYmJcdTdlYmNcdTdlZDZcdTdlZTRcdTdlZWNcdTdlZjlcdTdmMGFcdTdmMTBcdTdmMWVcdTdmMzdcdTdmMzlcdTdm''@;'; + put 'put ''M2IiLDYsIlx1N2Y0M1x1N2Y0NiIsOSwiXHU3ZjUyXHU3ZjUzXHU5OTg4XHU2MTI3XHU2ZTgzXHU1NzY0XHU2NjA2XHU2MzQ2XHU1NmYwXHU2MmVjXHU2MjY5XHU1ZWQzXHU5NjE0XHU1NzgzXHU2MmM5XHU1NTg3XHU4NzIxXHU4MTRhXHU4ZmEzXHU1NTY2XHU4M2IxXHU2NzY1XHU4ZDU2XHU4''@;'; + put 'put ''NGRkXHU1YTZhXHU2ODBmXHU2MmU2XHU3YmVlXHU5NjExXHU1MTcwXHU2ZjljXHU4YzMwXHU2M2ZkXHU4OWM4XHU2MWQyXHU3ZjA2XHU3MGMyXHU2ZWU1XHU3NDA1XHU2OTk0XHU3MmZjXHU1ZWNhXHU5MGNlXHU2NzE3XHU2ZDZhXHU2MzVlXHU1MmIzXHU3MjYyXHU4MDAxXHU0ZjZjXHU1OWU1''@;'; + put 'put ''XHU5MTZhXHU3MGQ5XHU2ZDlkXHU1MmQyXHU0ZTUwXHU5NmY3XHU5NTZkXHU4NTdlXHU3OGNhXHU3ZDJmXHU1MTIxXHU1NzkyXHU2NGMyXHU4MDhiXHU3YzdiXHU2Y2VhXHU2OGYxXHU2OTVlXHU1MWI3XHU1Mzk4XHU2OGE4XHU3MjgxXHU5ZWNlXHU3YmYxXHU3MmY4XHU3OWJiXHU2ZjEzXHU3''@;'; + put 'put ''NDA2XHU2NzRlXHU5MWNjXHU5Y2E0XHU3OTNjXHU4Mzg5XHU4MzU0XHU1NDBmXHU2ODE3XHU0ZTNkXHU1Mzg5XHU1MmIxXHU3ODNlXHU1Mzg2XHU1MjI5XHU1MDg4XHU0ZjhiXHU0ZmQwIl0sWyJjMTQwIiwiXHU3ZjU2XHU3ZjU5XHU3ZjViXHU3ZjVjXHU3ZjVkXHU3ZjVlXHU3ZjYwXHU3ZjYz''@;'; + put 'put ''Iiw0LCJcdTdmNmJcdTdmNmNcdTdmNmRcdTdmNmZcdTdmNzBcdTdmNzNcdTdmNzVcdTdmNzZcdTdmNzdcdTdmNzhcdTdmN2FcdTdmN2JcdTdmN2NcdTdmN2RcdTdmN2ZcdTdmODBcdTdmODIiLDcsIlx1N2Y4Ylx1N2Y4ZFx1N2Y4ZiIsNCwiXHU3Zjk1Iiw0LCJcdTdmOWJcdTdmOWNcdTdmYTBc''@;'; + put 'put ''dTdmYTJcdTdmYTNcdTdmYTVcdTdmYTZcdTdmYTgiLDYsIlx1N2ZiMSJdLFsiYzE4MCIsIlx1N2ZiMyIsNCwiXHU3ZmJhXHU3ZmJiXHU3ZmJlXHU3ZmMwXHU3ZmMyXHU3ZmMzXHU3ZmM0XHU3ZmM2XHU3ZmM3XHU3ZmM4XHU3ZmM5XHU3ZmNiXHU3ZmNkXHU3ZmNmIiw0LCJcdTdmZDZcdTdmZDdc''@;'; + put 'put ''dTdmZDkiLDUsIlx1N2ZlMlx1N2ZlM1x1NzVlMlx1N2FjYlx1N2M5Mlx1NmNhNVx1OTZiNlx1NTI5Ylx1NzQ4M1x1NTRlOVx1NGZlOVx1ODA1NFx1ODNiMlx1OGZkZVx1OTU3MFx1NWVjOVx1NjAxY1x1NmQ5Zlx1NWUxOFx1NjU1Ylx1ODEzOFx1OTRmZVx1NjA0Ylx1NzBiY1x1N2VjM1x1N2Nh''@;'; + put 'put ''ZVx1NTFjOVx1Njg4MVx1N2NiMVx1ODI2Zlx1NGUyNFx1OGY4Nlx1OTFjZlx1NjY3ZVx1NGVhZVx1OGMwNVx1NjRhOVx1ODA0YVx1NTBkYVx1NzU5N1x1NzFjZVx1NWJlNVx1OGZiZFx1NmY2Nlx1NGU4Nlx1NjQ4Mlx1OTU2M1x1NWVkNlx1NjU5OVx1NTIxN1x1ODhjMlx1NzBjOFx1NTJhM1x1''@;'; + put 'put ''NzMwZVx1NzQzM1x1Njc5N1x1NzhmN1x1OTcxNlx1NGUzNFx1OTBiYlx1OWNkZVx1NmRjYlx1NTFkYlx1OGQ0MVx1NTQxZFx1NjJjZVx1NzNiMlx1ODNmMVx1OTZmNlx1OWY4NFx1OTRjM1x1NGYzNlx1N2Y5YVx1NTFjY1x1NzA3NVx1OTY3NVx1NWNhZFx1OTg4Nlx1NTNlNlx1NGVlNFx1NmU5''@;'; + put 'put ''Y1x1NzQwOVx1NjliNFx1Nzg2Ylx1OTk4Zlx1NzU1OVx1NTIxOFx1NzYyNFx1NmQ0MVx1NjdmM1x1NTE2ZFx1OWY5OVx1ODA0Ylx1NTQ5OVx1N2IzY1x1N2FiZiJdLFsiYzI0MCIsIlx1N2ZlNFx1N2ZlN1x1N2ZlOFx1N2ZlYVx1N2ZlYlx1N2ZlY1x1N2ZlZFx1N2ZlZlx1N2ZmMlx1N2ZmNCIs''@;'; + put 'put ''NiwiXHU3ZmZkXHU3ZmZlXHU3ZmZmXHU4MDAyXHU4MDA3XHU4MDA4XHU4MDA5XHU4MDBhXHU4MDBlXHU4MDBmXHU4MDExXHU4MDEzXHU4MDFhXHU4MDFiXHU4MDFkXHU4MDFlXHU4MDFmXHU4MDIxXHU4MDIzXHU4MDI0XHU4MDJiIiw1LCJcdTgwMzJcdTgwMzRcdTgwMzlcdTgwM2FcdTgwM2Nc''@;'; + put 'put ''dTgwM2VcdTgwNDBcdTgwNDFcdTgwNDRcdTgwNDVcdTgwNDdcdTgwNDhcdTgwNDlcdTgwNGVcdTgwNGZcdTgwNTBcdTgwNTFcdTgwNTNcdTgwNTVcdTgwNTZcdTgwNTciXSxbImMyODAiLCJcdTgwNTlcdTgwNWIiLDEzLCJcdTgwNmIiLDUsIlx1ODA3MiIsMTEsIlx1OTY4Nlx1NTc4NFx1NjJl''@;'; + put 'put ''Mlx1OTY0N1x1Njk3Y1x1NWEwNFx1NjQwMlx1N2JkM1x1NmYwZlx1OTY0Ylx1ODJhNlx1NTM2Mlx1OTg4NVx1NWU5MFx1NzA4OVx1NjNiM1x1NTM2NFx1ODY0Zlx1OWM4MVx1OWU5M1x1Nzg4Y1x1OTczMlx1OGRlZlx1OGQ0Mlx1OWU3Zlx1NmY1ZVx1Nzk4NFx1NWY1NVx1OTY0Nlx1NjIyZVx1''@;'; + put 'put ''OWE3NFx1NTQxNVx1OTRkZFx1NGZhM1x1NjVjNVx1NWM2NVx1NWM2MVx1N2YxNVx1ODY1MVx1NmMyZlx1NWY4Ylx1NzM4N1x1NmVlNFx1N2VmZlx1NWNlNlx1NjMxYlx1NWI2YVx1NmVlNlx1NTM3NVx1NGU3MVx1NjNhMFx1NzU2NVx1NjJhMVx1OGY2ZVx1NGYyNlx1NGVkMVx1NmNhNlx1N2Vi''@;'; + put 'put ''Nlx1OGJiYVx1ODQxZFx1ODdiYVx1N2Y1N1x1OTAzYlx1OTUyM1x1N2JhOVx1OWFhMVx1ODhmOFx1ODQzZFx1NmQxYlx1OWE4Nlx1N2VkY1x1NTk4OFx1OWViYlx1NzM5Ylx1NzgwMVx1ODY4Mlx1OWE2Y1x1OWE4Mlx1NTYxYlx1NTQxN1x1NTdjYlx1NGU3MFx1OWVhNlx1NTM1Nlx1OGZjOFx1''@;'; + put 'put ''ODEwOVx1Nzc5Mlx1OTk5Mlx1ODZlZVx1NmVlMVx1ODUxM1x1NjZmY1x1NjE2Mlx1NmYyYiJdLFsiYzM0MCIsIlx1ODA3ZVx1ODA4MVx1ODA4Mlx1ODA4NVx1ODA4OFx1ODA4YVx1ODA4ZCIsNSwiXHU4MDk0XHU4MDk1XHU4MDk3XHU4MDk5XHU4MDllXHU4MGEzXHU4MGE2XHU4MGE3XHU4MGE4''@;'; + put 'put ''XHU4MGFjXHU4MGIwXHU4MGIzXHU4MGI1XHU4MGI2XHU4MGI4XHU4MGI5XHU4MGJiXHU4MGM1XHU4MGM3Iiw0LCJcdTgwY2YiLDYsIlx1ODBkOFx1ODBkZlx1ODBlMFx1ODBlMlx1ODBlM1x1ODBlNlx1ODBlZVx1ODBmNVx1ODBmN1x1ODBmOVx1ODBmYlx1ODBmZVx1ODBmZlx1ODEwMFx1ODEw''@;'; + put 'put ''MVx1ODEwM1x1ODEwNFx1ODEwNVx1ODEwN1x1ODEwOFx1ODEwYiJdLFsiYzM4MCIsIlx1ODEwY1x1ODExNVx1ODExN1x1ODExOVx1ODExYlx1ODExY1x1ODExZFx1ODExZiIsMTIsIlx1ODEyZFx1ODEyZVx1ODEzMFx1ODEzM1x1ODEzNFx1ODEzNVx1ODEzN1x1ODEzOSIsNCwiXHU4MTNmXHU4''@;'; + put 'put ''YzI5XHU4MjkyXHU4MzJiXHU3NmYyXHU2YzEzXHU1ZmQ5XHU4M2JkXHU3MzJiXHU4MzA1XHU5NTFhXHU2YmRiXHU3N2RiXHU5NGM2XHU1MzZmXHU4MzAyXHU1MTkyXHU1ZTNkXHU4YzhjXHU4ZDM4XHU0ZTQ4XHU3M2FiXHU2NzlhXHU2ODg1XHU5MTc2XHU5NzA5XHU3MTY0XHU2Y2ExXHU3NzA5''@;'; + put 'put ''XHU1YTkyXHU5NTQxXHU2YmNmXHU3ZjhlXHU2NjI3XHU1YmQwXHU1OWI5XHU1YTlhXHU5NWU4XHU5NWY3XHU0ZWVjXHU4NDBjXHU4NDk5XHU2YWFjXHU3NmRmXHU5NTMwXHU3MzFiXHU2OGE2XHU1YjVmXHU3NzJmXHU5MTlhXHU5NzYxXHU3Y2RjXHU4ZmY3XHU4YzFjXHU1ZjI1XHU3YzczXHU3''@;'; + put 'put ''OWQ4XHU4OWM1XHU2Y2NjXHU4NzFjXHU1YmM2XHU1ZTQyXHU2OGM5XHU3NzIwXHU3ZWY1XHU1MTk1XHU1MTRkXHU1MmM5XHU1YTI5XHU3ZjA1XHU5NzYyXHU4MmQ3XHU2M2NmXHU3Nzg0XHU4NWQwXHU3OWQyXHU2ZTNhXHU1ZTk5XHU1OTk5XHU4NTExXHU3MDZkXHU2YzExXHU2MmJmXHU3NmJm''@;'; + put 'put ''XHU2NTRmXHU2MGFmXHU5NWZkXHU2NjBlXHU4NzlmXHU5ZTIzXHU5NGVkXHU1NDBkXHU1NDdkXHU4YzJjXHU2NDc4Il0sWyJjNDQwIiwiXHU4MTQwIiw1LCJcdTgxNDdcdTgxNDlcdTgxNGRcdTgxNGVcdTgxNGZcdTgxNTJcdTgxNTZcdTgxNTdcdTgxNThcdTgxNWIiLDQsIlx1ODE2MVx1ODE2''@;'; + put 'put ''Mlx1ODE2M1x1ODE2NFx1ODE2Nlx1ODE2OFx1ODE2YVx1ODE2Ylx1ODE2Y1x1ODE2Zlx1ODE3Mlx1ODE3M1x1ODE3NVx1ODE3Nlx1ODE3N1x1ODE3OFx1ODE4MVx1ODE4MyIsNCwiXHU4MTg5XHU4MThiXHU4MThjXHU4MThkXHU4MThlXHU4MTkwXHU4MTkyIiw1LCJcdTgxOTlcdTgxOWFcdTgx''@;'; + put 'put ''OWUiLDQsIlx1ODFhNFx1ODFhNSJdLFsiYzQ4MCIsIlx1ODFhN1x1ODFhOVx1ODFhYiIsNywiXHU4MWI0Iiw1LCJcdTgxYmNcdTgxYmRcdTgxYmVcdTgxYmZcdTgxYzRcdTgxYzVcdTgxYzdcdTgxYzhcdTgxYzlcdTgxY2JcdTgxY2QiLDYsIlx1NjQ3OVx1ODYxMVx1NmEyMVx1ODE5Y1x1Nzhl''@;'; + put 'put ''OFx1NjQ2OVx1OWI1NFx1NjJiOVx1NjcyYlx1ODNhYlx1NThhOFx1OWVkOFx1NmNhYlx1NmYyMFx1NWJkZVx1OTY0Y1x1OGMwYlx1NzI1Zlx1NjdkMFx1NjJjN1x1NzI2MVx1NGVhOVx1NTljNlx1NmJjZFx1NTg5M1x1NjZhZVx1NWU1NVx1NTJkZlx1NjE1NVx1NjcyOFx1NzZlZVx1Nzc2Nlx1''@;'; + put 'put ''NzI2N1x1N2E0Nlx1NjJmZlx1NTRlYVx1NTQ1MFx1OTRhMFx1OTBhM1x1NWExY1x1N2ViM1x1NmMxNlx1NGU0M1x1NTk3Nlx1ODAxMFx1NTk0OFx1NTM1N1x1NzUzN1x1OTZiZVx1NTZjYVx1NjMyMFx1ODExMVx1NjA3Y1x1OTVmOVx1NmRkNlx1NTQ2Mlx1OTk4MVx1NTE4NVx1NWFlOVx1ODBm''@;'; + put 'put ''ZFx1NTlhZVx1OTcxM1x1NTAyYVx1NmNlNVx1NWMzY1x1NjJkZlx1NGY2MFx1NTMzZlx1ODE3Ylx1OTAwNlx1NmViYVx1ODUyYlx1NjJjOFx1NWU3NFx1NzhiZVx1NjRiNVx1NjM3Ylx1NWZmNVx1NWExOFx1OTE3Zlx1OWUxZlx1NWMzZlx1NjM0Zlx1ODA0Mlx1NWI3ZFx1NTU2ZVx1OTU0YVx1''@;'; + put 'put ''OTU0ZFx1NmQ4NVx1NjBhOFx1NjdlMFx1NzJkZVx1NTFkZFx1NWI4MSJdLFsiYzU0MCIsIlx1ODFkNCIsMTQsIlx1ODFlNFx1ODFlNVx1ODFlNlx1ODFlOFx1ODFlOVx1ODFlYlx1ODFlZSIsNCwiXHU4MWY1Iiw1LCJcdTgxZmRcdTgxZmZcdTgyMDNcdTgyMDciLDQsIlx1ODIwZVx1ODIwZlx1''@;'; + put 'put ''ODIxMVx1ODIxM1x1ODIxNSIsNSwiXHU4MjFkXHU4MjIwXHU4MjI0XHU4MjI1XHU4MjI2XHU4MjI3XHU4MjI5XHU4MjJlXHU4MjMyXHU4MjNhXHU4MjNjXHU4MjNkXHU4MjNmIl0sWyJjNTgwIiwiXHU4MjQwXHU4MjQxXHU4MjQyXHU4MjQzXHU4MjQ1XHU4MjQ2XHU4MjQ4XHU4MjRhXHU4MjRj''@;'; + put 'put ''XHU4MjRkXHU4MjRlXHU4MjUwIiw3LCJcdTgyNTlcdTgyNWJcdTgyNWNcdTgyNWRcdTgyNWVcdTgyNjAiLDcsIlx1ODI2OVx1NjJlN1x1NmNkZVx1NzI1Ylx1NjI2ZFx1OTRhZVx1N2ViZFx1ODExM1x1NmQ1M1x1NTE5Y1x1NWYwNFx1NTk3NFx1NTJhYVx1NjAxMlx1NTk3M1x1NjY5Nlx1ODY1''@;'; + put 'put ''MFx1NzU5Zlx1NjMyYVx1NjFlNlx1N2NlZlx1OGJmYVx1NTRlNlx1NmIyN1x1OWUyNVx1NmJiNFx1ODVkNVx1NTQ1NVx1NTA3Nlx1NmNhNFx1NTU2YVx1OGRiNFx1NzIyY1x1NWUxNVx1NjAxNVx1NzQzNlx1NjJjZFx1NjM5Mlx1NzI0Y1x1NWY5OFx1NmU0M1x1NmQzZVx1NjUwMFx1NmY1OFx1''@;'; + put 'put ''NzZkOFx1NzhkMFx1NzZmY1x1NzU1NFx1NTIyNFx1NTNkYlx1NGU1M1x1NWU5ZVx1NjVjMVx1ODAyYVx1ODBkNlx1NjI5Ylx1NTQ4Nlx1NTIyOFx1NzBhZVx1ODg4ZFx1OGRkMVx1NmNlMVx1NTQ3OFx1ODBkYVx1NTdmOVx1ODhmNFx1OGQ1NFx1OTY2YVx1OTE0ZFx1NGY2OVx1NmM5Ylx1NTVi''@;'; + put 'put ''N1x1NzZjNlx1NzgzMFx1NjJhOFx1NzBmOVx1NmY4ZVx1NWY2ZFx1ODRlY1x1NjhkYVx1Nzg3Y1x1N2JmN1x1ODFhOFx1NjcwYlx1OWU0Zlx1NjM2N1x1NzhiMFx1NTc2Zlx1NzgxMlx1OTczOVx1NjI3OVx1NjJhYlx1NTI4OFx1NzQzNVx1NmJkNyJdLFsiYzY0MCIsIlx1ODI2YVx1ODI2Ylx1''@;'; + put 'put ''ODI2Y1x1ODI2ZFx1ODI3MVx1ODI3NVx1ODI3Nlx1ODI3N1x1ODI3OFx1ODI3Ylx1ODI3Y1x1ODI4MFx1ODI4MVx1ODI4M1x1ODI4NVx1ODI4Nlx1ODI4N1x1ODI4OVx1ODI4Y1x1ODI5MFx1ODI5M1x1ODI5NFx1ODI5NVx1ODI5Nlx1ODI5YVx1ODI5Ylx1ODI5ZVx1ODJhMFx1ODJhMlx1ODJh''@;'; + put 'put ''M1x1ODJhN1x1ODJiMlx1ODJiNVx1ODJiNlx1ODJiYVx1ODJiYlx1ODJiY1x1ODJiZlx1ODJjMFx1ODJjMlx1ODJjM1x1ODJjNVx1ODJjNlx1ODJjOVx1ODJkMFx1ODJkNlx1ODJkOVx1ODJkYVx1ODJkZFx1ODJlMlx1ODJlN1x1ODJlOFx1ODJlOVx1ODJlYVx1ODJlY1x1ODJlZFx1ODJlZVx1''@;'; + put 'put ''ODJmMFx1ODJmMlx1ODJmM1x1ODJmNVx1ODJmNlx1ODJmOCJdLFsiYzY4MCIsIlx1ODJmYVx1ODJmYyIsNCwiXHU4MzBhXHU4MzBiXHU4MzBkXHU4MzEwXHU4MzEyXHU4MzEzXHU4MzE2XHU4MzE4XHU4MzE5XHU4MzFkIiw5LCJcdTgzMjlcdTgzMmFcdTgzMmVcdTgzMzBcdTgzMzJcdTgzMzdc''@;'; + put 'put ''dTgzM2JcdTgzM2RcdTU1NjRcdTgxM2VcdTc1YjJcdTc2YWVcdTUzMzlcdTc1ZGVcdTUwZmJcdTVjNDFcdThiNmNcdTdiYzdcdTUwNGZcdTcyNDdcdTlhOTdcdTk4ZDhcdTZmMDJcdTc0ZTJcdTc5NjhcdTY0ODdcdTc3YTVcdTYyZmNcdTk4OTFcdThkMmJcdTU0YzFcdTgwNThcdTRlNTJcdTU3''@;'; + put 'put ''NmFcdTgyZjlcdTg0MGRcdTVlNzNcdTUxZWRcdTc0ZjZcdThiYzRcdTVjNGZcdTU3NjFcdTZjZmNcdTk4ODdcdTVhNDZcdTc4MzRcdTliNDRcdThmZWJcdTdjOTVcdTUyNTZcdTYyNTFcdTk0ZmFcdTRlYzZcdTgzODZcdTg0NjFcdTgzZTlcdTg0YjJcdTU3ZDRcdTY3MzRcdTU3MDNcdTY2NmVc''@;'; + put 'put ''dTZkNjZcdThjMzFcdTY2ZGRcdTcwMTFcdTY3MWZcdTZiM2FcdTY4MTZcdTYyMWFcdTU5YmJcdTRlMDNcdTUxYzRcdTZmMDZcdTY3ZDJcdTZjOGZcdTUxNzZcdTY4Y2JcdTU5NDdcdTZiNjdcdTc1NjZcdTVkMGVcdTgxMTBcdTlmNTBcdTY1ZDdcdTc5NDhcdTc5NDFcdTlhOTFcdThkNzdcdTVj''@;'; + put 'put ''ODJcdTRlNWVcdTRmMDFcdTU0MmZcdTU5NTFcdTc4MGNcdTU2NjhcdTZjMTRcdThmYzRcdTVmMDNcdTZjN2RcdTZjZTNcdThiYWJcdTYzOTAiXSxbImM3NDAiLCJcdTgzM2VcdTgzM2ZcdTgzNDFcdTgzNDJcdTgzNDRcdTgzNDVcdTgzNDhcdTgzNGEiLDQsIlx1ODM1M1x1ODM1NSIsNCwiXHU4''@;'; + put 'put ''MzVkXHU4MzYyXHU4MzcwIiw2LCJcdTgzNzlcdTgzN2FcdTgzN2UiLDYsIlx1ODM4N1x1ODM4OFx1ODM4YVx1ODM4Ylx1ODM4Y1x1ODM4ZFx1ODM4Zlx1ODM5MFx1ODM5MVx1ODM5NFx1ODM5NVx1ODM5Nlx1ODM5N1x1ODM5OVx1ODM5YVx1ODM5ZFx1ODM5Zlx1ODNhMSIsNiwiXHU4M2FjXHU4''@;'; + put 'put ''M2FkXHU4M2FlIl0sWyJjNzgwIiwiXHU4M2FmXHU4M2I1XHU4M2JiXHU4M2JlXHU4M2JmXHU4M2MyXHU4M2MzXHU4M2M0XHU4M2M2XHU4M2M4XHU4M2M5XHU4M2NiXHU4M2NkXHU4M2NlXHU4M2QwXHU4M2QxXHU4M2QyXHU4M2QzXHU4M2Q1XHU4M2Q3XHU4M2Q5XHU4M2RhXHU4M2RiXHU4M2Rl''@;'; + put 'put ''XHU4M2UyXHU4M2UzXHU4M2U0XHU4M2U2XHU4M2U3XHU4M2U4XHU4M2ViXHU4M2VjXHU4M2VkXHU2MDcwXHU2ZDNkXHU3Mjc1XHU2MjY2XHU5NDhlXHU5NGM1XHU1MzQzXHU4ZmMxXHU3YjdlXHU0ZWRmXHU4YzI2XHU0ZTdlXHU5ZWQ0XHU5NGIxXHU5NGIzXHU1MjRkXHU2ZjVjXHU5MDYzXHU2''@;'; + put 'put ''ZDQ1XHU4YzM0XHU1ODExXHU1ZDRjXHU2YjIwXHU2YjQ5XHU2N2FhXHU1NDViXHU4MTU0XHU3ZjhjXHU1ODk5XHU4NTM3XHU1ZjNhXHU2MmEyXHU2YTQ3XHU5NTM5XHU2NTcyXHU2MDg0XHU2ODY1XHU3N2E3XHU0ZTU0XHU0ZmE4XHU1ZGU3XHU5Nzk4XHU2NGFjXHU3ZmQ4XHU1Y2VkXHU0ZmNm''@;'; + put 'put ''XHU3YThkXHU1MjA3XHU4MzA0XHU0ZTE0XHU2MDJmXHU3YTgzXHU5NGE2XHU0ZmI1XHU0ZWIyXHU3OWU2XHU3NDM0XHU1MmU0XHU4MmI5XHU2NGQyXHU3OWJkXHU1YmRkXHU2YzgxXHU5NzUyXHU4ZjdiXHU2YzIyXHU1MDNlXHU1MzdmXHU2ZTA1XHU2NGNlXHU2Njc0XHU2YzMwXHU2MGM1XHU5''@;'; + put 'put ''ODc3XHU4YmY3XHU1ZTg2XHU3NDNjXHU3YTc3XHU3OWNiXHU0ZTE4XHU5MGIxXHU3NDAzXHU2YzQyXHU1NmRhXHU5MTRiXHU2Y2M1XHU4ZDhiXHU1MzNhXHU4NmM2XHU2NmYyXHU4ZWFmXHU1YzQ4XHU5YTcxXHU2ZTIwIl0sWyJjODQwIiwiXHU4M2VlXHU4M2VmXHU4M2YzIiw0LCJcdTgzZmFc''@;'; + put 'put ''dTgzZmJcdTgzZmNcdTgzZmVcdTgzZmZcdTg0MDBcdTg0MDJcdTg0MDVcdTg0MDdcdTg0MDhcdTg0MDlcdTg0MGFcdTg0MTBcdTg0MTIiLDUsIlx1ODQxOVx1ODQxYVx1ODQxYlx1ODQxZSIsNSwiXHU4NDI5Iiw3LCJcdTg0MzIiLDUsIlx1ODQzOVx1ODQzYVx1ODQzYlx1ODQzZSIsNywiXHU4''@;'; + put 'put ''NDQ3XHU4NDQ4XHU4NDQ5Il0sWyJjODgwIiwiXHU4NDRhIiw2LCJcdTg0NTIiLDQsIlx1ODQ1OFx1ODQ1ZFx1ODQ1ZVx1ODQ1Zlx1ODQ2MFx1ODQ2Mlx1ODQ2NCIsNCwiXHU4NDZhXHU4NDZlXHU4NDZmXHU4NDcwXHU4NDcyXHU4NDc0XHU4NDc3XHU4NDc5XHU4NDdiXHU4NDdjXHU1M2Q2XHU1''@;'; + put 'put ''YTM2XHU5ZjhiXHU4ZGEzXHU1M2JiXHU1NzA4XHU5OGE3XHU2NzQzXHU5MTliXHU2Y2M5XHU1MTY4XHU3NWNhXHU2MmYzXHU3MmFjXHU1MjM4XHU1MjlkXHU3ZjNhXHU3MDk0XHU3NjM4XHU1Mzc0XHU5ZTRhXHU2OWI3XHU3ODZlXHU5NmMwXHU4OGQ5XHU3ZmE0XHU3MTM2XHU3MWMzXHU1MTg5''@;'; + put 'put ''XHU2N2QzXHU3NGU0XHU1OGU0XHU2NTE4XHU1NmI3XHU4YmE5XHU5OTc2XHU2MjcwXHU3ZWQ1XHU2MGY5XHU3MGVkXHU1OGVjXHU0ZWMxXHU0ZWJhXHU1ZmNkXHU5N2U3XHU0ZWZiXHU4YmE0XHU1MjAzXHU1OThhXHU3ZWFiXHU2MjU0XHU0ZWNkXHU2NWU1XHU2MjBlXHU4MzM4XHU4NGM5XHU4''@;'; + put 'put ''MzYzXHU4NzhkXHU3MTk0XHU2ZWI2XHU1YmI5XHU3ZWQyXHU1MTk3XHU2M2M5XHU2N2Q0XHU4MDg5XHU4MzM5XHU4ODE1XHU1MTEyXHU1YjdhXHU1OTgyXHU4ZmIxXHU0ZTczXHU2YzVkXHU1MTY1XHU4OTI1XHU4ZjZmXHU5NjJlXHU4NTRhXHU3NDVlXHU5NTEwXHU5NWYwXHU2ZGE2XHU4MmU1''@;'; + put 'put ''XHU1ZjMxXHU2NDkyXHU2ZDEyXHU4NDI4XHU4MTZlXHU5Y2MzXHU1ODVlXHU4ZDViXHU0ZTA5XHU1M2MxIl0sWyJjOTQwIiwiXHU4NDdkIiw0LCJcdTg0ODNcdTg0ODRcdTg0ODVcdTg0ODZcdTg0OGFcdTg0OGRcdTg0OGYiLDcsIlx1ODQ5OFx1ODQ5YVx1ODQ5Ylx1ODQ5ZFx1ODQ5ZVx1ODQ5''@;'; + put 'put ''Zlx1ODRhMFx1ODRhMiIsMTIsIlx1ODRiMFx1ODRiMVx1ODRiM1x1ODRiNVx1ODRiNlx1ODRiN1x1ODRiYlx1ODRiY1x1ODRiZVx1ODRjMFx1ODRjMlx1ODRjM1x1ODRjNVx1ODRjNlx1ODRjN1x1ODRjOFx1ODRjYlx1ODRjY1x1ODRjZVx1ODRjZlx1ODRkMlx1ODRkNFx1ODRkNVx1ODRkNyJd''@;'; + put 'put ''LFsiYzk4MCIsIlx1ODRkOCIsNCwiXHU4NGRlXHU4NGUxXHU4NGUyXHU4NGU0XHU4NGU3Iiw0LCJcdTg0ZWRcdTg0ZWVcdTg0ZWZcdTg0ZjEiLDEwLCJcdTg0ZmRcdTg0ZmVcdTg1MDBcdTg1MDFcdTg1MDJcdTRmMWVcdTY1NjNcdTY4NTFcdTU1ZDNcdTRlMjdcdTY0MTRcdTlhOWFcdTYyNmJc''@;'; + put 'put ''dTVhYzJcdTc0NWZcdTgyNzJcdTZkYTlcdTY4ZWVcdTUwZTdcdTgzOGVcdTc4MDJcdTY3NDBcdTUyMzlcdTZjOTlcdTdlYjFcdTUwYmJcdTU1NjVcdTcxNWVcdTdiNWJcdTY2NTJcdTczY2FcdTgyZWJcdTY3NDlcdTVjNzFcdTUyMjBcdTcxN2RcdTg4NmJcdTk1ZWFcdTk2NTVcdTY0YzVcdThk''@;'; + put 'put ''NjFcdTgxYjNcdTU1ODRcdTZjNTVcdTYyNDdcdTdmMmVcdTU4OTJcdTRmMjRcdTU1NDZcdThkNGZcdTY2NGNcdTRlMGFcdTVjMWFcdTg4ZjNcdTY4YTJcdTYzNGVcdTdhMGRcdTcwZTdcdTgyOGRcdTUyZmFcdTk3ZjZcdTVjMTFcdTU0ZThcdTkwYjVcdTdlY2RcdTU5NjJcdThkNGFcdTg2Yzdc''@;'; + put 'put ''dTgyMGNcdTgyMGRcdThkNjZcdTY0NDRcdTVjMDRcdTYxNTFcdTZkODlcdTc5M2VcdThiYmVcdTc4MzdcdTc1MzNcdTU0N2JcdTRmMzhcdThlYWJcdTZkZjFcdTVhMjBcdTdlYzVcdTc5NWVcdTZjODhcdTViYTFcdTVhNzZcdTc1MWFcdTgwYmVcdTYxNGVcdTZlMTdcdTU4ZjBcdTc1MWZcdTc1''@;'; + put 'put ''MjVcdTcyNzJcdTUzNDdcdTdlZjMiXSxbImNhNDAiLCJcdTg1MDMiLDgsIlx1ODUwZFx1ODUwZVx1ODUwZlx1ODUxMFx1ODUxMlx1ODUxNFx1ODUxNVx1ODUxNlx1ODUxOFx1ODUxOVx1ODUxYlx1ODUxY1x1ODUxZFx1ODUxZVx1ODUyMFx1ODUyMiIsOCwiXHU4NTJkIiw5LCJcdTg1M2UiLDQs''@;'; + put 'put ''Ilx1ODU0NFx1ODU0NVx1ODU0Nlx1ODU0N1x1ODU0YiIsMTBdLFsiY2E4MCIsIlx1ODU1N1x1ODU1OFx1ODU1YVx1ODU1Ylx1ODU1Y1x1ODU1ZFx1ODU1ZiIsNCwiXHU4NTY1XHU4NTY2XHU4NTY3XHU4NTY5Iiw4LCJcdTg1NzNcdTg1NzVcdTg1NzZcdTg1NzdcdTg1NzhcdTg1N2NcdTg1N2Rc''@;'; + put 'put ''dTg1N2ZcdTg1ODBcdTg1ODFcdTc3MDFcdTc2ZGJcdTUyNjlcdTgwZGNcdTU3MjNcdTVlMDhcdTU5MzFcdTcyZWVcdTY1YmRcdTZlN2ZcdThiZDdcdTVjMzhcdTg2NzFcdTUzNDFcdTc3ZjNcdTYyZmVcdTY1ZjZcdTRlYzBcdTk4ZGZcdTg2ODBcdTViOWVcdThiYzZcdTUzZjJcdTc3ZTJcdTRm''@;'; + put 'put ''N2ZcdTVjNGVcdTlhNzZcdTU5Y2JcdTVmMGZcdTc5M2FcdTU4ZWJcdTRlMTZcdTY3ZmZcdTRlOGJcdTYyZWRcdThhOTNcdTkwMWRcdTUyYmZcdTY2MmZcdTU1ZGNcdTU2NmNcdTkwMDJcdTRlZDVcdTRmOGRcdTkxY2FcdTk5NzBcdTZjMGZcdTVlMDJcdTYwNDNcdTViYTRcdTg5YzZcdThiZDVc''@;'; + put 'put ''dTY1MzZcdTYyNGJcdTk5OTZcdTViODhcdTViZmZcdTYzODhcdTU1MmVcdTUzZDdcdTc2MjZcdTUxN2RcdTg1MmNcdTY3YTJcdTY4YjNcdTZiOGFcdTYyOTJcdThmOTNcdTUzZDRcdTgyMTJcdTZkZDFcdTc1OGZcdTRlNjZcdThkNGVcdTViNzBcdTcxOWZcdTg1YWZcdTY2OTFcdTY2ZDlcdTdm''@;'; + put 'put ''NzJcdTg3MDBcdTllY2RcdTlmMjBcdTVjNWVcdTY3MmZcdThmZjBcdTY4MTFcdTY3NWZcdTYyMGRcdTdhZDZcdTU4ODVcdTVlYjZcdTY1NzBcdTZmMzEiXSxbImNiNDAiLCJcdTg1ODJcdTg1ODNcdTg1ODZcdTg1ODgiLDYsIlx1ODU5MCIsMTAsIlx1ODU5ZCIsNiwiXHU4NWE1XHU4NWE2XHU4''@;'; + put 'put ''NWE3XHU4NWE5XHU4NWFiXHU4NWFjXHU4NWFkXHU4NWIxIiw1LCJcdTg1YjhcdTg1YmEiLDYsIlx1ODVjMiIsNiwiXHU4NWNhIiw0LCJcdTg1ZDFcdTg1ZDIiXSxbImNiODAiLCJcdTg1ZDRcdTg1ZDYiLDUsIlx1ODVkZCIsNiwiXHU4NWU1XHU4NWU2XHU4NWU3XHU4NWU4XHU4NWVhIiwxNCwi''@;'; + put 'put ''XHU2MDU1XHU1MjM3XHU4MDBkXHU2NDU0XHU4ODcwXHU3NTI5XHU1ZTA1XHU2ODEzXHU2MmY0XHU5NzFjXHU1M2NjXHU3MjNkXHU4YzAxXHU2YzM0XHU3NzYxXHU3YTBlXHU1NDJlXHU3N2FjXHU5ODdhXHU4MjFjXHU4YmY0XHU3ODU1XHU2NzE0XHU3MGMxXHU2NWFmXHU2NDk1XHU1NjM2XHU2''@;'; + put 'put ''MDFkXHU3OWMxXHU1M2Y4XHU0ZTFkXHU2YjdiXHU4MDg2XHU1YmZhXHU1NWUzXHU1NmRiXHU0ZjNhXHU0ZjNjXHU5OTcyXHU1ZGYzXHU2NzdlXHU4MDM4XHU2MDAyXHU5ODgyXHU5MDAxXHU1YjhiXHU4YmJjXHU4YmY1XHU2NDFjXHU4MjU4XHU2NGRlXHU1NWZkXHU4MmNmXHU5MTY1XHU0ZmQ3''@;'; + put 'put ''XHU3ZDIwXHU5MDFmXHU3YzlmXHU1MGYzXHU1ODUxXHU2ZWFmXHU1YmJmXHU4YmM5XHU4MDgzXHU5MTc4XHU4NDljXHU3Yjk3XHU4NjdkXHU5NjhiXHU5NjhmXHU3ZWU1XHU5YWQzXHU3ODhlXHU1YzgxXHU3YTU3XHU5MDQyXHU5NmE3XHU3OTVmXHU1YjU5XHU2MzVmXHU3YjBiXHU4NGQxXHU2''@;'; + put 'put ''OGFkXHU1NTA2XHU3ZjI5XHU3NDEwXHU3ZDIyXHU5NTAxXHU2MjQwXHU1ODRjXHU0ZWQ2XHU1YjgzXHU1OTc5XHU1ODU0Il0sWyJjYzQwIiwiXHU4NWY5XHU4NWZhXHU4NWZjXHU4NWZkXHU4NWZlXHU4NjAwIiw0LCJcdTg2MDYiLDEwLCJcdTg2MTJcdTg2MTNcdTg2MTRcdTg2MTVcdTg2MTci''@;'; + put 'put ''LDE1LCJcdTg2MjhcdTg2MmEiLDEzLCJcdTg2MzlcdTg2M2FcdTg2M2JcdTg2M2RcdTg2M2VcdTg2M2ZcdTg2NDAiXSxbImNjODAiLCJcdTg2NDEiLDExLCJcdTg2NTJcdTg2NTNcdTg2NTUiLDQsIlx1ODY1Ylx1ODY1Y1x1ODY1ZFx1ODY1Zlx1ODY2MFx1ODY2MVx1ODY2MyIsNywiXHU3MzZk''@;'; + put 'put ''XHU2MzFlXHU4ZTRiXHU4ZTBmXHU4MGNlXHU4MmQ0XHU2MmFjXHU1M2YwXHU2Y2YwXHU5MTVlXHU1OTJhXHU2MDAxXHU2YzcwXHU1NzRkXHU2NDRhXHU4ZDJhXHU3NjJiXHU2ZWU5XHU1NzViXHU2YTgwXHU3NWYwXHU2ZjZkXHU4YzJkXHU4YzA4XHU1NzY2XHU2YmVmXHU4ODkyXHU3OGIzXHU2''@;'; + put 'put ''M2EyXHU1M2Y5XHU3MGFkXHU2YzY0XHU1ODU4XHU2NDJhXHU1ODAyXHU2OGUwXHU4MTliXHU1NTEwXHU3Y2Q2XHU1MDE4XHU4ZWJhXHU2ZGNjXHU4ZDlmXHU3MGViXHU2MzhmXHU2ZDliXHU2ZWQ0XHU3ZWU2XHU4NDA0XHU2ODQzXHU5MDAzXHU2ZGQ4XHU5Njc2XHU4YmE4XHU1OTU3XHU3Mjc5''@;'; + put 'put ''XHU4NWU0XHU4MTdlXHU3NWJjXHU4YThhXHU2OGFmXHU1MjU0XHU4ZTIyXHU5NTExXHU2M2QwXHU5ODk4XHU4ZTQ0XHU1NTdjXHU0ZjUzXHU2NmZmXHU1NjhmXHU2MGQ1XHU2ZDk1XHU1MjQzXHU1YzQ5XHU1OTI5XHU2ZGZiXHU1ODZiXHU3NTMwXHU3NTFjXHU2MDZjXHU4MjE0XHU4MTQ2XHU2''@;'; + put 'put ''MzExXHU2NzYxXHU4ZmUyXHU3NzNhXHU4ZGYzXHU4ZDM0XHU5NGMxXHU1ZTE2XHU1Mzg1XHU1NDJjXHU3MGMzIl0sWyJjZDQwIiwiXHU4NjZkXHU4NjZmXHU4NjcwXHU4NjcyIiw2LCJcdTg2ODMiLDYsIlx1ODY4ZSIsNCwiXHU4Njk0XHU4Njk2Iiw1LCJcdTg2OWUiLDQsIlx1ODZhNVx1ODZh''@;'; + put 'put ''Nlx1ODZhYlx1ODZhZFx1ODZhZVx1ODZiMlx1ODZiM1x1ODZiN1x1ODZiOFx1ODZiOVx1ODZiYiIsNCwiXHU4NmMxXHU4NmMyXHU4NmMzXHU4NmM1XHU4NmM4XHU4NmNjXHU4NmNkXHU4NmQyXHU4NmQzXHU4NmQ1XHU4NmQ2XHU4NmQ3XHU4NmRhXHU4NmRjIl0sWyJjZDgwIiwiXHU4NmRkXHU4''@;'; + put 'put ''NmUwXHU4NmUxXHU4NmUyXHU4NmUzXHU4NmU1XHU4NmU2XHU4NmU3XHU4NmU4XHU4NmVhXHU4NmViXHU4NmVjXHU4NmVmXHU4NmY1XHU4NmY2XHU4NmY3XHU4NmZhXHU4NmZiXHU4NmZjXHU4NmZkXHU4NmZmXHU4NzAxXHU4NzA0XHU4NzA1XHU4NzA2XHU4NzBiXHU4NzBjXHU4NzBlXHU4NzBm''@;'; + put 'put ''XHU4NzEwXHU4NzExXHU4NzE0XHU4NzE2XHU2YzQwXHU1ZWY3XHU1MDVjXHU0ZWFkXHU1ZWFkXHU2MzNhXHU4MjQ3XHU5MDFhXHU2ODUwXHU5MTZlXHU3N2IzXHU1NDBjXHU5NGRjXHU1ZjY0XHU3YWU1XHU2ODc2XHU2MzQ1XHU3YjUyXHU3ZWRmXHU3NWRiXHU1MDc3XHU2Mjk1XHU1OTM0XHU5''@;'; + put 'put ''MDBmXHU1MWY4XHU3OWMzXHU3YTgxXHU1NmZlXHU1ZjkyXHU5MDE0XHU2ZDgyXHU1YzYwXHU1NzFmXHU1NDEwXHU1MTU0XHU2ZTRkXHU1NmUyXHU2M2E4XHU5ODkzXHU4MTdmXHU4NzE1XHU4OTJhXHU5MDAwXHU1NDFlXHU1YzZmXHU4MWMwXHU2MmQ2XHU2MjU4XHU4MTMxXHU5ZTM1XHU5NjQw''@;'; + put 'put ''XHU5YTZlXHU5YTdjXHU2OTJkXHU1OWE1XHU2MmQzXHU1NTNlXHU2MzE2XHU1NGM3XHU4NmQ5XHU2ZDNjXHU1YTAzXHU3NGU2XHU4ODljXHU2YjZhXHU1OTE2XHU4YzRjXHU1ZjJmXHU2ZTdlXHU3M2E5XHU5ODdkXHU0ZTM4XHU3MGY3XHU1YjhjXHU3ODk3XHU2MzNkXHU2NjVhXHU3Njk2XHU2''@;'; + put 'put ''MGNiXHU1YjliXHU1YTQ5XHU0ZTA3XHU4MTU1XHU2YzZhXHU3MzhiXHU0ZWExXHU2Nzg5XHU3ZjUxXHU1ZjgwXHU2NWZhXHU2NzFiXHU1ZmQ4XHU1OTg0XHU1YTAxIl0sWyJjZTQwIiwiXHU4NzE5XHU4NzFiXHU4NzFkXHU4NzFmXHU4NzIwXHU4NzI0XHU4NzI2XHU4NzI3XHU4NzI4XHU4NzJh''@;'; + put 'put ''XHU4NzJiXHU4NzJjXHU4NzJkXHU4NzJmXHU4NzMwXHU4NzMyXHU4NzMzXHU4NzM1XHU4NzM2XHU4NzM4XHU4NzM5XHU4NzNhXHU4NzNjXHU4NzNkXHU4NzQwIiw2LCJcdTg3NGFcdTg3NGJcdTg3NGRcdTg3NGZcdTg3NTBcdTg3NTFcdTg3NTJcdTg3NTRcdTg3NTVcdTg3NTZcdTg3NThcdTg3''@;'; + put 'put ''NWEiLDUsIlx1ODc2MVx1ODc2Mlx1ODc2NiIsNywiXHU4NzZmXHU4NzcxXHU4NzcyXHU4NzczXHU4Nzc1Il0sWyJjZTgwIiwiXHU4Nzc3XHU4Nzc4XHU4Nzc5XHU4NzdhXHU4NzdmXHU4NzgwXHU4NzgxXHU4Nzg0XHU4Nzg2XHU4Nzg3XHU4Nzg5XHU4NzhhXHU4NzhjXHU4NzhlIiw0LCJcdTg3''@;'; + put 'put ''OTRcdTg3OTVcdTg3OTZcdTg3OTgiLDYsIlx1ODdhMCIsNCwiXHU1ZGNkXHU1ZmFlXHU1MzcxXHU5N2U2XHU4ZmRkXHU2ODQ1XHU1NmY0XHU1NTJmXHU2MGRmXHU0ZTNhXHU2ZjRkXHU3ZWY0XHU4MmM3XHU4NDBlXHU1OWQ0XHU0ZjFmXHU0ZjJhXHU1YzNlXHU3ZWFjXHU2NzJhXHU4NTFhXHU1''@;'; + put 'put ''NDczXHU3NTRmXHU4MGMzXHU1NTgyXHU5YjRmXHU0ZjRkXHU2ZTJkXHU4YzEzXHU1YzA5XHU2MTcwXHU1MzZiXHU3NjFmXHU2ZTI5XHU4NjhhXHU2NTg3XHU5NWZiXHU3ZWI5XHU1NDNiXHU3YTMzXHU3ZDBhXHU5NWVlXHU1NWUxXHU3ZmMxXHU3NGVlXHU2MzFkXHU4NzE3XHU2ZGExXHU3YTlk''@;'; + put 'put ''XHU2MjExXHU2NWExXHU1MzY3XHU2M2UxXHU2YzgzXHU1ZGViXHU1NDVjXHU5NGE4XHU0ZTRjXHU2YzYxXHU4YmVjXHU1YzRiXHU2NWUwXHU4MjljXHU2OGE3XHU1NDNlXHU1NDM0XHU2YmNiXHU2YjY2XHU0ZTk0XHU2MzQyXHU1MzQ4XHU4MjFlXHU0ZjBkXHU0ZmFlXHU1NzVlXHU2MjBhXHU5''@;'; + put 'put ''NmZlXHU2NjY0XHU3MjY5XHU1MmZmXHU1MmExXHU2MDlmXHU4YmVmXHU2NjE0XHU3MTk5XHU2NzkwXHU4OTdmXHU3ODUyXHU3N2ZkXHU2NjcwXHU1NjNiXHU1NDM4XHU5NTIxXHU3MjdhIl0sWyJjZjQwIiwiXHU4N2E1XHU4N2E2XHU4N2E3XHU4N2E5XHU4N2FhXHU4N2FlXHU4N2IwXHU4N2Ix''@;'; + put 'put ''XHU4N2IyXHU4N2I0XHU4N2I2XHU4N2I3XHU4N2I4XHU4N2I5XHU4N2JiXHU4N2JjXHU4N2JlXHU4N2JmXHU4N2MxIiw0LCJcdTg3YzdcdTg3YzhcdTg3YzlcdTg3Y2MiLDQsIlx1ODdkNCIsNiwiXHU4N2RjXHU4N2RkXHU4N2RlXHU4N2RmXHU4N2UxXHU4N2UyXHU4N2UzXHU4N2U0XHU4N2U2''@;'; + put 'put ''XHU4N2U3XHU4N2U4XHU4N2U5XHU4N2ViXHU4N2VjXHU4N2VkXHU4N2VmIiw5XSxbImNmODAiLCJcdTg3ZmFcdTg3ZmJcdTg3ZmNcdTg3ZmRcdTg3ZmZcdTg4MDBcdTg4MDFcdTg4MDJcdTg4MDQiLDUsIlx1ODgwYiIsNywiXHU4ODE0XHU4ODE3XHU4ODE4XHU4ODE5XHU4ODFhXHU4ODFjIiw0''@;'; + put 'put ''LCJcdTg4MjNcdTdhMDBcdTYwNmZcdTVlMGNcdTYwODlcdTgxOWRcdTU5MTVcdTYwZGNcdTcxODRcdTcwZWZcdTZlYWFcdTZjNTBcdTcyODBcdTZhODRcdTg4YWRcdTVlMmRcdTRlNjBcdTVhYjNcdTU1OWNcdTk0ZTNcdTZkMTdcdTdjZmJcdTk2OTlcdTYyMGZcdTdlYzZcdTc3OGVcdTg2N2Vc''@;'; + put 'put ''dTUzMjNcdTk3MWVcdThmOTZcdTY2ODdcdTVjZTFcdTRmYTBcdTcyZWRcdTRlMGJcdTUzYTZcdTU5MGZcdTU0MTNcdTYzODBcdTk1MjhcdTUxNDhcdTRlZDlcdTljOWNcdTdlYTRcdTU0YjhcdThkMjRcdTg4NTRcdTgyMzdcdTk1ZjJcdTZkOGVcdTVmMjZcdTVhY2NcdTY2M2VcdTk2NjlcdTcz''@;'; + put 'put ''YjBcdTczMmVcdTUzYmZcdTgxN2FcdTk5ODVcdTdmYTFcdTViYWFcdTk2NzdcdTk2NTBcdTdlYmZcdTc2ZjhcdTUzYTJcdTk1NzZcdTk5OTlcdTdiYjFcdTg5NDRcdTZlNThcdTRlNjFcdTdmZDRcdTc5NjVcdThiZTZcdTYwZjNcdTU0Y2RcdTRlYWJcdTk4NzlcdTVkZjdcdTZhNjFcdTUwY2Zc''@;'; + put 'put ''dTU0MTFcdThjNjFcdTg0MjdcdTc4NWRcdTk3MDRcdTUyNGFcdTU0ZWVcdTU2YTNcdTk1MDBcdTZkODhcdTViYjVcdTZkYzZcdTY2NTMiXSxbImQwNDAiLCJcdTg4MjQiLDEzLCJcdTg4MzMiLDUsIlx1ODgzYVx1ODgzYlx1ODgzZFx1ODgzZVx1ODgzZlx1ODg0MVx1ODg0Mlx1ODg0M1x1ODg0''@;'; + put 'put ''NiIsNSwiXHU4ODRlIiw1LCJcdTg4NTVcdTg4NTZcdTg4NThcdTg4NWEiLDYsIlx1ODg2Nlx1ODg2N1x1ODg2YVx1ODg2ZFx1ODg2Zlx1ODg3MVx1ODg3M1x1ODg3NFx1ODg3NVx1ODg3Nlx1ODg3OFx1ODg3OVx1ODg3YSJdLFsiZDA4MCIsIlx1ODg3Ylx1ODg3Y1x1ODg4MFx1ODg4M1x1ODg4''@;'; + put 'put ''Nlx1ODg4N1x1ODg4OVx1ODg4YVx1ODg4Y1x1ODg4ZVx1ODg4Zlx1ODg5MFx1ODg5MVx1ODg5M1x1ODg5NFx1ODg5NVx1ODg5NyIsNCwiXHU4ODlkIiw0LCJcdTg4YTNcdTg4YTUiLDUsIlx1NWMwZlx1NWI1ZFx1NjgyMVx1ODA5Nlx1NTU3OFx1N2IxMVx1NjU0OFx1Njk1NFx1NGU5Ylx1NmI0''@;'; + put 'put ''N1x1ODc0ZVx1OTc4Ylx1NTM0Zlx1NjMxZlx1NjQzYVx1OTBhYVx1NjU5Y1x1ODBjMVx1OGMxMFx1NTE5OVx1NjhiMFx1NTM3OFx1ODdmOVx1NjFjOFx1NmNjNFx1NmNmYlx1OGMyMlx1NWM1MVx1ODVhYVx1ODJhZlx1OTUwY1x1NmIyM1x1OGY5Ylx1NjViMFx1NWZmYlx1NWZjM1x1NGZlMVx1''@;'; + put 'put ''ODg0NVx1NjYxZlx1ODE2NVx1NzMyOVx1NjBmYVx1NTE3NFx1NTIxMVx1NTc4Ylx1NWY2Mlx1OTBhMlx1ODg0Y1x1OTE5Mlx1NWU3OFx1Njc0Zlx1NjAyN1x1NTlkM1x1NTE0NFx1NTFmNlx1ODBmOFx1NTMwOFx1NmM3OVx1OTZjNFx1NzE4YVx1NGYxMVx1NGZlZVx1N2Y5ZVx1NjczZFx1NTVj''@;'; + put 'put ''NVx1OTUwOFx1NzljMFx1ODg5Nlx1N2VlM1x1NTg5Zlx1NjIwY1x1OTcwMFx1ODY1YVx1NTYxOFx1OTg3Ylx1NWY5MFx1OGJiOFx1ODRjNFx1OTE1N1x1NTNkOVx1NjVlZFx1NWU4Zlx1NzU1Y1x1NjA2NFx1N2Q2ZVx1NWE3Zlx1N2VlYVx1N2VlZFx1OGY2OVx1NTVhN1x1NWJhM1x1NjBhY1x1''@;'; + put 'put ''NjVjYlx1NzM4NCJdLFsiZDE0MCIsIlx1ODhhY1x1ODhhZVx1ODhhZlx1ODhiMFx1ODhiMiIsNCwiXHU4OGI4XHU4OGI5XHU4OGJhXHU4OGJiXHU4OGJkXHU4OGJlXHU4OGJmXHU4OGMwXHU4OGMzXHU4OGM0XHU4OGM3XHU4OGM4XHU4OGNhXHU4OGNiXHU4OGNjXHU4OGNkXHU4OGNmXHU4OGQw''@;'; + put 'put ''XHU4OGQxXHU4OGQzXHU4OGQ2XHU4OGQ3XHU4OGRhIiw0LCJcdTg4ZTBcdTg4ZTFcdTg4ZTZcdTg4ZTdcdTg4ZTkiLDYsIlx1ODhmMlx1ODhmNVx1ODhmNlx1ODhmN1x1ODhmYVx1ODhmYlx1ODhmZFx1ODhmZlx1ODkwMFx1ODkwMVx1ODkwMyIsNV0sWyJkMTgwIiwiXHU4OTA5XHU4OTBiIiw0''@;'; + put 'put ''LCJcdTg5MTFcdTg5MTQiLDQsIlx1ODkxYyIsNCwiXHU4OTIyXHU4OTIzXHU4OTI0XHU4OTI2XHU4OTI3XHU4OTI4XHU4OTI5XHU4OTJjXHU4OTJkXHU4OTJlXHU4OTJmXHU4OTMxXHU4OTMyXHU4OTMzXHU4OTM1XHU4OTM3XHU5MDA5XHU3NjYzXHU3NzI5XHU3ZWRhXHU5Nzc0XHU4NTliXHU1''@;'; + put 'put ''YjY2XHU3YTc0XHU5NmVhXHU4ODQwXHU1MmNiXHU3MThmXHU1ZmFhXHU2NWVjXHU4YmUyXHU1YmZiXHU5YTZmXHU1ZGUxXHU2Yjg5XHU2YzViXHU4YmFkXHU4YmFmXHU5MDBhXHU4ZmM1XHU1MzhiXHU2MmJjXHU5ZTI2XHU5ZTJkXHU1NDQwXHU0ZTJiXHU4MmJkXHU3MjU5XHU4NjljXHU1ZDE2''@;'; + put 'put ''XHU4ODU5XHU2ZGFmXHU5NmM1XHU1NGQxXHU0ZTlhXHU4YmI2XHU3MTA5XHU1NGJkXHU5NjA5XHU3MGRmXHU2ZGY5XHU3NmQwXHU0ZTI1XHU3ODE0XHU4NzEyXHU1Y2E5XHU1ZWY2XHU4YTAwXHU5ODljXHU5NjBlXHU3MDhlXHU2Y2JmXHU1OTQ0XHU2M2E5XHU3NzNjXHU4ODRkXHU2ZjE0XHU4''@;'; + put 'put ''MjczXHU1ODMwXHU3MWQ1XHU1MzhjXHU3ODFhXHU5NmMxXHU1NTAxXHU1ZjY2XHU3MTMwXHU1YmI0XHU4YzFhXHU5YThjXHU2YjgzXHU1OTJlXHU5ZTJmXHU3OWU3XHU2NzY4XHU2MjZjXHU0ZjZmXHU3NWExXHU3ZjhhXHU2ZDBiXHU5NjMzXHU2YzI3XHU0ZWYwXHU3NWQyXHU1MTdiXHU2ODM3''@;'; + put 'put ''XHU2ZjNlXHU5MDgwXHU4MTcwXHU1OTk2XHU3NDc2Il0sWyJkMjQwIiwiXHU4OTM4Iiw4LCJcdTg5NDJcdTg5NDNcdTg5NDUiLDI0LCJcdTg5NjAiLDUsIlx1ODk2NyIsMTksIlx1ODk3YyJdLFsiZDI4MCIsIlx1ODk3ZFx1ODk3ZVx1ODk4MFx1ODk4Mlx1ODk4NFx1ODk4NVx1ODk4NyIsMjYs''@;'; + put 'put ''Ilx1NjQ0N1x1NWMyN1x1OTA2NVx1N2E5MVx1OGMyM1x1NTlkYVx1NTRhY1x1ODIwMFx1ODM2Zlx1ODk4MVx1ODAwMFx1NjkzMFx1NTY0ZVx1ODAzNlx1NzIzN1x1OTFjZVx1NTFiNlx1NGU1Zlx1OTg3NVx1NjM5Nlx1NGUxYVx1NTNmNlx1NjZmM1x1ODE0Ylx1NTkxY1x1NmRiMlx1NGUwMFx1''@;'; + put 'put ''NThmOVx1NTMzYlx1NjNkNlx1OTRmMVx1NGY5ZFx1NGYwYVx1ODg2M1x1OTg5MFx1NTkzN1x1OTA1N1x1NzlmYlx1NGVlYVx1ODBmMFx1NzU5MVx1NmM4Mlx1NWI5Y1x1NTllOFx1NWY1ZFx1NjkwNVx1ODY4MVx1NTAxYVx1NWRmMlx1NGU1OVx1NzdlM1x1NGVlNVx1ODI3YVx1NjI5MVx1NjYx''@;'; + put 'put ''M1x1OTA5MVx1NWM3OVx1NGViZlx1NWY3OVx1ODFjNlx1OTAzOFx1ODA4NFx1NzVhYlx1NGVhNlx1ODhkNFx1NjEwZlx1NmJjNVx1NWZjNlx1NGU0OVx1NzZjYVx1NmVhMlx1OGJlM1x1OGJhZVx1OGMwYVx1OGJkMVx1NWYwMlx1N2ZmY1x1N2ZjY1x1N2VjZVx1ODMzNVx1ODM2Ylx1NTZlMFx1''@;'; + put 'put ''NmJiN1x1OTdmM1x1OTYzNFx1NTlmYlx1NTQxZlx1OTRmNlx1NmRlYlx1NWJjNVx1OTk2ZVx1NWMzOVx1NWYxNVx1OTY5MCJdLFsiZDM0MCIsIlx1ODlhMiIsMzAsIlx1ODljM1x1ODljZFx1ODlkM1x1ODlkNFx1ODlkNVx1ODlkN1x1ODlkOFx1ODlkOVx1ODlkYlx1ODlkZFx1ODlkZlx1ODll''@;'; + put 'put ''MFx1ODllMVx1ODllMlx1ODllNFx1ODllN1x1ODllOFx1ODllOVx1ODllYVx1ODllY1x1ODllZFx1ODllZVx1ODlmMFx1ODlmMVx1ODlmMlx1ODlmNCIsNl0sWyJkMzgwIiwiXHU4OWZiIiw0LCJcdThhMDEiLDUsIlx1OGEwOCIsMjEsIlx1NTM3MFx1ODJmMVx1NmEzMVx1NWE3NFx1OWU3MFx1''@;'; + put 'put ''NWU5NFx1N2YyOFx1ODNiOVx1ODQyNFx1ODQyNVx1ODM2N1x1ODc0N1x1OGZjZVx1OGQ2Mlx1NzZjOFx1NWY3MVx1OTg5Nlx1Nzg2Y1x1NjYyMFx1NTRkZlx1NjJlNVx1NGY2M1x1ODFjM1x1NzVjOFx1NWViOFx1OTZjZFx1OGUwYVx1ODZmOVx1NTQ4Zlx1NmNmM1x1NmQ4Y1x1NmMzOFx1NjA3''@;'; + put 'put ''Zlx1NTJjN1x1NzUyOFx1NWU3ZFx1NGYxOFx1NjBhMFx1NWZlN1x1NWMyNFx1NzUzMVx1OTBhZVx1OTRjMFx1NzJiOVx1NmNiOVx1NmUzOFx1OTE0OVx1NjcwOVx1NTNjYlx1NTNmM1x1NGY1MVx1OTFjOVx1OGJmMVx1NTNjOFx1NWU3Y1x1OGZjMlx1NmRlNFx1NGU4ZVx1NzZjMlx1Njk4Nlx1''@;'; + put 'put ''ODY1ZVx1NjExYVx1ODIwNlx1NGY1OVx1NGZkZVx1OTAzZVx1OWM3Y1x1NjEwOVx1NmUxZFx1NmUxNFx1OTY4NVx1NGU4OFx1NWEzMVx1OTZlOFx1NGUwZVx1NWM3Zlx1NzliOVx1NWI4N1x1OGJlZFx1N2ZiZFx1NzM4OVx1NTdkZlx1ODI4Ylx1OTBjMVx1NTQwMVx1OTA0N1x1NTViYlx1NWNl''@;'; + put 'put ''YVx1NWZhMVx1NjEwOFx1NmIzMlx1NzJmMVx1ODBiMlx1OGE4OSJdLFsiZDQ0MCIsIlx1OGExZSIsMzEsIlx1OGEzZiIsOCwiXHU4YTQ5IiwyMV0sWyJkNDgwIiwiXHU4YTVmIiwyNSwiXHU4YTdhIiw2LCJcdTZkNzRcdTViZDNcdTg4ZDVcdTk4ODRcdThjNmJcdTlhNmRcdTllMzNcdTZlMGFc''@;'; + put 'put ''dTUxYTRcdTUxNDNcdTU3YTNcdTg4ODFcdTUzOWZcdTYzZjRcdThmOTVcdTU2ZWRcdTU0NThcdTU3MDZcdTczM2ZcdTZlOTBcdTdmMThcdThmZGNcdTgyZDFcdTYxM2ZcdTYwMjhcdTk2NjJcdTY2ZjBcdTdlYTZcdThkOGFcdThkYzNcdTk0YTVcdTVjYjNcdTdjYTRcdTY3MDhcdTYwYTZcdTk2''@;'; + put 'put ''MDVcdTgwMThcdTRlOTFcdTkwZTdcdTUzMDBcdTk2NjhcdTUxNDFcdThmZDBcdTg1NzRcdTkxNWRcdTY2NTVcdTk3ZjVcdTViNTVcdTUzMWRcdTc4MzhcdTY3NDJcdTY4M2RcdTU0YzlcdTcwN2VcdTViYjBcdThmN2RcdTUxOGRcdTU3MjhcdTU0YjFcdTY1MTJcdTY2ODJcdThkNWVcdThkNDNc''@;'; + put 'put ''dTgxMGZcdTg0NmNcdTkwNmRcdTdjZGZcdTUxZmZcdTg1ZmJcdTY3YTNcdTY1ZTlcdTZmYTFcdTg2YTRcdThlODFcdTU2NmFcdTkwMjBcdTc2ODJcdTcwNzZcdTcxZTVcdThkMjNcdTYyZTlcdTUyMTlcdTZjZmRcdThkM2NcdTYwMGVcdTU4OWVcdTYxOGVcdTY2ZmVcdThkNjBcdTYyNGVcdTU1''@;'; + put 'put ''YjNcdTZlMjNcdTY3MmRcdThmNjciXSxbImQ1NDAiLCJcdThhODEiLDcsIlx1OGE4YiIsNywiXHU4YTk0Iiw0Nl0sWyJkNTgwIiwiXHU4YWMzIiwzMiwiXHU5NGUxXHU5NWY4XHU3NzI4XHU2ODA1XHU2OWE4XHU1NDhiXHU0ZTRkXHU3MGI4XHU4YmM4XHU2NDU4XHU2NThiXHU1Yjg1XHU3YTg0''@;'; + put 'put ''XHU1MDNhXHU1YmU4XHU3N2JiXHU2YmUxXHU4YTc5XHU3Yzk4XHU2Y2JlXHU3NmNmXHU2NWE5XHU4Zjk3XHU1ZDJkXHU1YzU1XHU4NjM4XHU2ODA4XHU1MzYwXHU2MjE4XHU3YWQ5XHU2ZTViXHU3ZWZkXHU2YTFmXHU3YWUwXHU1ZjcwXHU2ZjMzXHU1ZjIwXHU2MzhjXHU2ZGE4XHU2NzU2XHU0''@;'; + put 'put ''ZTA4XHU1ZTEwXHU4ZDI2XHU0ZWQ3XHU4MGMwXHU3NjM0XHU5NjljXHU2MmRiXHU2NjJkXHU2MjdlXHU2Y2JjXHU4ZDc1XHU3MTY3XHU3ZjY5XHU1MTQ2XHU4MDg3XHU1M2VjXHU5MDZlXHU2Mjk4XHU1NGYyXHU4NmYwXHU4Zjk5XHU4MDA1XHU5NTE3XHU4NTE3XHU4ZmQ5XHU2ZDU5XHU3M2Nk''@;'; + put 'put ''XHU2NTlmXHU3NzFmXHU3NTA0XHU3ODI3XHU4MWZiXHU4ZDFlXHU5NDg4XHU0ZmE2XHU2Nzk1XHU3NWI5XHU4YmNhXHU5NzA3XHU2MzJmXHU5NTQ3XHU5NjM1XHU4NGI4XHU2MzIzXHU3NzQxXHU1ZjgxXHU3MmYwXHU0ZTg5XHU2MDE0XHU2NTc0XHU2MmVmXHU2YjYzXHU2NTNmIl0sWyJkNjQw''@;'; + put 'put ''IiwiXHU4YWU0IiwzNCwiXHU4YjA4IiwyN10sWyJkNjgwIiwiXHU4YjI0XHU4YjI1XHU4YjI3IiwzMCwiXHU1ZTI3XHU3NWM3XHU5MGQxXHU4YmMxXHU4MjlkXHU2NzlkXHU2NTJmXHU1NDMxXHU4NzE4XHU3N2U1XHU4MGEyXHU4MTAyXHU2YzQxXHU0ZTRiXHU3ZWM3XHU4MDRjXHU3NmY0XHU2''@;'; + put 'put ''OTBkXHU2Yjk2XHU2MjY3XHU1MDNjXHU0Zjg0XHU1NzQwXHU2MzA3XHU2YjYyXHU4ZGJlXHU1M2VhXHU2NWU4XHU3ZWI4XHU1ZmQ3XHU2MzFhXHU2M2I3XHU4MWYzXHU4MWY0XHU3ZjZlXHU1ZTFjXHU1Y2Q5XHU1MjM2XHU2NjdhXHU3OWU5XHU3YTFhXHU4ZDI4XHU3MDk5XHU3NWQ0XHU2ZWRl''@;'; + put 'put ''XHU2Y2JiXHU3YTkyXHU0ZTJkXHU3NmM1XHU1ZmUwXHU5NDlmXHU4ODc3XHU3ZWM4XHU3OWNkXHU4MGJmXHU5MWNkXHU0ZWYyXHU0ZjE3XHU4MjFmXHU1NDY4XHU1ZGRlXHU2ZDMyXHU4YmNjXHU3Y2E1XHU4Zjc0XHU4MDk4XHU1ZTFhXHU1NDkyXHU3NmIxXHU1Yjk5XHU2NjNjXHU5YWE0XHU3''@;'; + put 'put ''M2UwXHU2ODJhXHU4NmRiXHU2NzMxXHU3MzJhXHU4YmY4XHU4YmRiXHU5MDEwXHU3YWY5XHU3MGRiXHU3MTZlXHU2MmM0XHU3N2E5XHU1NjMxXHU0ZTNiXHU4NDU3XHU2N2YxXHU1MmE5XHU4NmMwXHU4ZDJlXHU5NGY4XHU3YjUxIl0sWyJkNzQwIiwiXHU4YjQ2IiwzMSwiXHU4YjY3Iiw0LCJc''@;'; + put 'put ''dThiNmQiLDI1XSxbImQ3ODAiLCJcdThiODciLDI0LCJcdThiYWNcdThiYjFcdThiYmJcdThiYzdcdThiZDBcdThiZWFcdThjMDlcdThjMWVcdTRmNGZcdTZjZThcdTc5NWRcdTlhN2JcdTYyOTNcdTcyMmFcdTYyZmRcdTRlMTNcdTc4MTZcdThmNmNcdTY0YjBcdThkNWFcdTdiYzZcdTY4Njlc''@;'; + put 'put ''dTVlODRcdTg4YzVcdTU5ODZcdTY0OWVcdTU4ZWVcdTcyYjZcdTY5MGVcdTk1MjVcdThmZmRcdThkNThcdTU3NjBcdTdmMDBcdThjMDZcdTUxYzZcdTYzNDlcdTYyZDlcdTUzNTNcdTY4NGNcdTc0MjJcdTgzMDFcdTkxNGNcdTU1NDRcdTc3NDBcdTcwN2NcdTZkNGFcdTUxNzlcdTU0YThcdThk''@;'; + put 'put ''NDRcdTU5ZmZcdTZlY2JcdTZkYzRcdTViNWNcdTdkMmJcdTRlZDRcdTdjN2RcdTZlZDNcdTViNTBcdTgxZWFcdTZlMGRcdTViNTdcdTliMDNcdTY4ZDVcdThlMmFcdTViOTdcdTdlZmNcdTYwM2JcdTdlYjVcdTkwYjlcdThkNzBcdTU5NGZcdTYzY2RcdTc5ZGZcdThkYjNcdTUzNTJcdTY1Y2Zc''@;'; + put 'put ''dTc5NTZcdThiYzVcdTk2M2JcdTdlYzRcdTk0YmJcdTdlODJcdTU2MzRcdTkxODlcdTY3MDBcdTdmNmFcdTVjMGFcdTkwNzVcdTY2MjhcdTVkZTZcdTRmNTBcdTY3ZGVcdTUwNWFcdTRmNWNcdTU3NTBcdTVlYTciXSxbImQ4NDAiLCJcdThjMzgiLDgsIlx1OGM0Mlx1OGM0M1x1OGM0NFx1OGM0''@;'; + put 'put ''NVx1OGM0OFx1OGM0YVx1OGM0Ylx1OGM0ZCIsNywiXHU4YzU2XHU4YzU3XHU4YzU4XHU4YzU5XHU4YzViIiw1LCJcdThjNjMiLDYsIlx1OGM2YyIsNiwiXHU4Yzc0XHU4Yzc1XHU4Yzc2XHU4Yzc3XHU4YzdiIiw2LCJcdThjODNcdThjODRcdThjODZcdThjODciXSxbImQ4ODAiLCJcdThjODhc''@;'; + put 'put ''dThjOGJcdThjOGQiLDYsIlx1OGM5NVx1OGM5Nlx1OGM5N1x1OGM5OSIsMjAsIlx1NGU4ZFx1NGUwY1x1NTE0MFx1NGUxMFx1NWVmZlx1NTM0NVx1NGUxNVx1NGU5OFx1NGUxZVx1OWIzMlx1NWI2Y1x1NTY2OVx1NGUyOFx1NzliYVx1NGUzZlx1NTMxNVx1NGU0N1x1NTkyZFx1NzIzYlx1NTM2''@;'; + put 'put ''ZVx1NmMxMFx1NTZkZlx1ODBlNFx1OTk5N1x1NmJkM1x1Nzc3ZVx1OWYxN1x1NGUzNlx1NGU5Zlx1OWYxMFx1NGU1Y1x1NGU2OVx1NGU5M1x1ODI4OFx1NWI1Ylx1NTU2Y1x1NTYwZlx1NGVjNFx1NTM4ZFx1NTM5ZFx1NTNhM1x1NTNhNVx1NTNhZVx1OTc2NVx1OGQ1ZFx1NTMxYVx1NTNmNVx1''@;'; + put 'put ''NTMyNlx1NTMyZVx1NTMzZVx1OGQ1Y1x1NTM2Nlx1NTM2M1x1NTIwMlx1NTIwOFx1NTIwZVx1NTIyZFx1NTIzM1x1NTIzZlx1NTI0MFx1NTI0Y1x1NTI1ZVx1NTI2MVx1NTI1Y1x1ODRhZlx1NTI3ZFx1NTI4Mlx1NTI4MVx1NTI5MFx1NTI5M1x1NTE4Mlx1N2Y1NFx1NGViYlx1NGVjM1x1NGVj''@;'; + put 'put ''OVx1NGVjMlx1NGVlOFx1NGVlMVx1NGVlYlx1NGVkZVx1NGYxYlx1NGVmM1x1NGYyMlx1NGY2NFx1NGVmNVx1NGYyNVx1NGYyN1x1NGYwOVx1NGYyYlx1NGY1ZVx1NGY2N1x1NjUzOFx1NGY1YVx1NGY1ZCJdLFsiZDk0MCIsIlx1OGNhZSIsNjJdLFsiZDk4MCIsIlx1OGNlZCIsMzIsIlx1NGY1''@;'; + put 'put ''Zlx1NGY1N1x1NGYzMlx1NGYzZFx1NGY3Nlx1NGY3NFx1NGY5MVx1NGY4OVx1NGY4M1x1NGY4Zlx1NGY3ZVx1NGY3Ylx1NGZhYVx1NGY3Y1x1NGZhY1x1NGY5NFx1NGZlNlx1NGZlOFx1NGZlYVx1NGZjNVx1NGZkYVx1NGZlM1x1NGZkY1x1NGZkMVx1NGZkZlx1NGZmOFx1NTAyOVx1NTA0Y1x1''@;'; + put 'put ''NGZmM1x1NTAyY1x1NTAwZlx1NTAyZVx1NTAyZFx1NGZmZVx1NTAxY1x1NTAwY1x1NTAyNVx1NTAyOFx1NTA3ZVx1NTA0M1x1NTA1NVx1NTA0OFx1NTA0ZVx1NTA2Y1x1NTA3Ylx1NTBhNVx1NTBhN1x1NTBhOVx1NTBiYVx1NTBkNlx1NTEwNlx1NTBlZFx1NTBlY1x1NTBlNlx1NTBlZVx1NTEw''@;'; + put 'put ''N1x1NTEwYlx1NGVkZFx1NmMzZFx1NGY1OFx1NGY2NVx1NGZjZVx1OWZhMFx1NmM0Nlx1N2M3NFx1NTE2ZVx1NWRmZFx1OWVjOVx1OTk5OFx1NTE4MVx1NTkxNFx1NTJmOVx1NTMwZFx1OGEwN1x1NTMxMFx1NTFlYlx1NTkxOVx1NTE1NVx1NGVhMFx1NTE1Nlx1NGViM1x1ODg2ZVx1ODhhNFx1''@;'; + put 'put ''NGViNVx1ODExNFx1ODhkMlx1Nzk4MFx1NWIzNFx1ODgwM1x1N2ZiOFx1NTFhYlx1NTFiMVx1NTFiZFx1NTFiYyJdLFsiZGE0MCIsIlx1OGQwZSIsMTQsIlx1OGQyMFx1OGQ1MVx1OGQ1Mlx1OGQ1N1x1OGQ1Zlx1OGQ2NVx1OGQ2OFx1OGQ2OVx1OGQ2YVx1OGQ2Y1x1OGQ2ZVx1OGQ2Zlx1OGQ3''@;'; + put 'put ''MVx1OGQ3Mlx1OGQ3OCIsOCwiXHU4ZDgyXHU4ZDgzXHU4ZDg2XHU4ZDg3XHU4ZDg4XHU4ZDg5XHU4ZDhjIiw0LCJcdThkOTJcdThkOTNcdThkOTUiLDksIlx1OGRhMFx1OGRhMSJdLFsiZGE4MCIsIlx1OGRhMlx1OGRhNCIsMTIsIlx1OGRiMlx1OGRiNlx1OGRiN1x1OGRiOVx1OGRiYlx1OGRi''@;'; + put 'put ''ZFx1OGRjMFx1OGRjMVx1OGRjMlx1OGRjNVx1OGRjN1x1OGRjOFx1OGRjOVx1OGRjYVx1OGRjZFx1OGRkMFx1OGRkMlx1OGRkM1x1OGRkNFx1NTFjN1x1NTE5Nlx1NTFhMlx1NTFhNVx1OGJhMFx1OGJhNlx1OGJhN1x1OGJhYVx1OGJiNFx1OGJiNVx1OGJiN1x1OGJjMlx1OGJjM1x1OGJjYlx1''@;'; + put 'put ''OGJjZlx1OGJjZVx1OGJkMlx1OGJkM1x1OGJkNFx1OGJkNlx1OGJkOFx1OGJkOVx1OGJkY1x1OGJkZlx1OGJlMFx1OGJlNFx1OGJlOFx1OGJlOVx1OGJlZVx1OGJmMFx1OGJmM1x1OGJmNlx1OGJmOVx1OGJmY1x1OGJmZlx1OGMwMFx1OGMwMlx1OGMwNFx1OGMwN1x1OGMwY1x1OGMwZlx1OGMx''@;'; + put 'put ''MVx1OGMxMlx1OGMxNFx1OGMxNVx1OGMxNlx1OGMxOVx1OGMxYlx1OGMxOFx1OGMxZFx1OGMxZlx1OGMyMFx1OGMyMVx1OGMyNVx1OGMyN1x1OGMyYVx1OGMyYlx1OGMyZVx1OGMyZlx1OGMzMlx1OGMzM1x1OGMzNVx1OGMzNlx1NTM2OVx1NTM3YVx1OTYxZFx1OTYyMlx1OTYyMVx1OTYzMVx1''@;'; + put 'put ''OTYyYVx1OTYzZFx1OTYzY1x1OTY0Mlx1OTY0OVx1OTY1NFx1OTY1Zlx1OTY2N1x1OTY2Y1x1OTY3Mlx1OTY3NFx1OTY4OFx1OTY4ZFx1OTY5N1x1OTZiMFx1OTA5N1x1OTA5Ylx1OTA5ZFx1OTA5OVx1OTBhY1x1OTBhMVx1OTBiNFx1OTBiM1x1OTBiNlx1OTBiYSJdLFsiZGI0MCIsIlx1OGRk''@;'; + put 'put ''NVx1OGRkOFx1OGRkOVx1OGRkY1x1OGRlMFx1OGRlMVx1OGRlMlx1OGRlNVx1OGRlNlx1OGRlN1x1OGRlOVx1OGRlZFx1OGRlZVx1OGRmMFx1OGRmMVx1OGRmMlx1OGRmNFx1OGRmNlx1OGRmY1x1OGRmZSIsNiwiXHU4ZTA2XHU4ZTA3XHU4ZTA4XHU4ZTBiXHU4ZTBkXHU4ZTBlXHU4ZTEwXHU4''@;'; + put 'put ''ZTExXHU4ZTEyXHU4ZTEzXHU4ZTE1Iiw3LCJcdThlMjBcdThlMjFcdThlMjQiLDQsIlx1OGUyYlx1OGUyZFx1OGUzMFx1OGUzMlx1OGUzM1x1OGUzNFx1OGUzNlx1OGUzN1x1OGUzOFx1OGUzYlx1OGUzY1x1OGUzZSJdLFsiZGI4MCIsIlx1OGUzZlx1OGU0M1x1OGU0NVx1OGU0Nlx1OGU0YyIs''@;'; + put 'put ''NCwiXHU4ZTUzIiw1LCJcdThlNWEiLDExLCJcdThlNjdcdThlNjhcdThlNmFcdThlNmJcdThlNmVcdThlNzFcdTkwYjhcdTkwYjBcdTkwY2ZcdTkwYzVcdTkwYmVcdTkwZDBcdTkwYzRcdTkwYzdcdTkwZDNcdTkwZTZcdTkwZTJcdTkwZGNcdTkwZDdcdTkwZGJcdTkwZWJcdTkwZWZcdTkwZmVc''@;'; + put 'put ''dTkxMDRcdTkxMjJcdTkxMWVcdTkxMjNcdTkxMzFcdTkxMmZcdTkxMzlcdTkxNDNcdTkxNDZcdTUyMGRcdTU5NDJcdTUyYTJcdTUyYWNcdTUyYWRcdTUyYmVcdTU0ZmZcdTUyZDBcdTUyZDZcdTUyZjBcdTUzZGZcdTcxZWVcdTc3Y2RcdTVlZjRcdTUxZjVcdTUxZmNcdTliMmZcdTUzYjZcdTVm''@;'; + put 'put ''MDFcdTc1NWFcdTVkZWZcdTU3NGNcdTU3YTlcdTU3YTFcdTU4N2VcdTU4YmNcdTU4YzVcdTU4ZDFcdTU3MjlcdTU3MmNcdTU3MmFcdTU3MzNcdTU3MzlcdTU3MmVcdTU3MmZcdTU3NWNcdTU3M2JcdTU3NDJcdTU3NjlcdTU3ODVcdTU3NmJcdTU3ODZcdTU3N2NcdTU3N2JcdTU3NjhcdTU3NmRc''@;'; + put 'put ''dTU3NzZcdTU3NzNcdTU3YWRcdTU3YTRcdTU3OGNcdTU3YjJcdTU3Y2ZcdTU3YTdcdTU3YjRcdTU3OTNcdTU3YTBcdTU3ZDVcdTU3ZDhcdTU3ZGFcdTU3ZDlcdTU3ZDJcdTU3YjhcdTU3ZjRcdTU3ZWZcdTU3ZjhcdTU3ZTRcdTU3ZGQiXSxbImRjNDAiLCJcdThlNzNcdThlNzVcdThlNzciLDQs''@;'; + put 'put ''Ilx1OGU3ZFx1OGU3ZVx1OGU4MFx1OGU4Mlx1OGU4M1x1OGU4NFx1OGU4Nlx1OGU4OCIsNiwiXHU4ZTkxXHU4ZTkyXHU4ZTkzXHU4ZTk1Iiw2LCJcdThlOWRcdThlOWYiLDExLCJcdThlYWRcdThlYWVcdThlYjBcdThlYjFcdThlYjMiLDYsIlx1OGViYiIsN10sWyJkYzgwIiwiXHU4ZWMzIiwx''@;'; + put 'put ''MCwiXHU4ZWNmIiwyMSwiXHU1ODBiXHU1ODBkXHU1N2ZkXHU1N2VkXHU1ODAwXHU1ODFlXHU1ODE5XHU1ODQ0XHU1ODIwXHU1ODY1XHU1ODZjXHU1ODgxXHU1ODg5XHU1ODlhXHU1ODgwXHU5OWE4XHU5ZjE5XHU2MWZmXHU4Mjc5XHU4MjdkXHU4MjdmXHU4MjhmXHU4MjhhXHU4MmE4XHU4Mjg0''@;'; + put 'put ''XHU4MjhlXHU4MjkxXHU4Mjk3XHU4Mjk5XHU4MmFiXHU4MmI4XHU4MmJlXHU4MmIwXHU4MmM4XHU4MmNhXHU4MmUzXHU4Mjk4XHU4MmI3XHU4MmFlXHU4MmNiXHU4MmNjXHU4MmMxXHU4MmE5XHU4MmI0XHU4MmExXHU4MmFhXHU4MjlmXHU4MmM0XHU4MmNlXHU4MmE0XHU4MmUxXHU4MzA5XHU4''@;'; + put 'put ''MmY3XHU4MmU0XHU4MzBmXHU4MzA3XHU4MmRjXHU4MmY0XHU4MmQyXHU4MmQ4XHU4MzBjXHU4MmZiXHU4MmQzXHU4MzExXHU4MzFhXHU4MzA2XHU4MzE0XHU4MzE1XHU4MmUwXHU4MmQ1XHU4MzFjXHU4MzUxXHU4MzViXHU4MzVjXHU4MzA4XHU4MzkyXHU4MzNjXHU4MzM0XHU4MzMxXHU4Mzli''@;'; + put 'put ''XHU4MzVlXHU4MzJmXHU4MzRmXHU4MzQ3XHU4MzQzXHU4MzVmXHU4MzQwXHU4MzE3XHU4MzYwXHU4MzJkXHU4MzNhXHU4MzMzXHU4MzY2XHU4MzY1Il0sWyJkZDQwIiwiXHU4ZWU1Iiw2Ml0sWyJkZDgwIiwiXHU4ZjI0IiwzMiwiXHU4MzY4XHU4MzFiXHU4MzY5XHU4MzZjXHU4MzZhXHU4MzZk''@;'; + put 'put ''XHU4MzZlXHU4M2IwXHU4Mzc4XHU4M2IzXHU4M2I0XHU4M2EwXHU4M2FhXHU4MzkzXHU4MzljXHU4Mzg1XHU4MzdjXHU4M2I2XHU4M2E5XHU4MzdkXHU4M2I4XHU4MzdiXHU4Mzk4XHU4MzllXHU4M2E4XHU4M2JhXHU4M2JjXHU4M2MxXHU4NDAxXHU4M2U1XHU4M2Q4XHU1ODA3XHU4NDE4XHU4''@;'; + put 'put ''NDBiXHU4M2RkXHU4M2ZkXHU4M2Q2XHU4NDFjXHU4NDM4XHU4NDExXHU4NDA2XHU4M2Q0XHU4M2RmXHU4NDBmXHU4NDAzXHU4M2Y4XHU4M2Y5XHU4M2VhXHU4M2M1XHU4M2MwXHU4NDI2XHU4M2YwXHU4M2UxXHU4NDVjXHU4NDUxXHU4NDVhXHU4NDU5XHU4NDczXHU4NDg3XHU4NDg4XHU4NDdh''@;'; + put 'put ''XHU4NDg5XHU4NDc4XHU4NDNjXHU4NDQ2XHU4NDY5XHU4NDc2XHU4NDhjXHU4NDhlXHU4NDMxXHU4NDZkXHU4NGMxXHU4NGNkXHU4NGQwXHU4NGU2XHU4NGJkXHU4NGQzXHU4NGNhXHU4NGJmXHU4NGJhXHU4NGUwXHU4NGExXHU4NGI5XHU4NGI0XHU4NDk3XHU4NGU1XHU4NGUzXHU4NTBjXHU3''@;'; + put 'put ''NTBkXHU4NTM4XHU4NGYwXHU4NTM5XHU4NTFmXHU4NTNhIl0sWyJkZTQwIiwiXHU4ZjQ1IiwzMiwiXHU4ZjZhXHU4ZjgwXHU4ZjhjXHU4ZjkyXHU4ZjlkXHU4ZmEwXHU4ZmExXHU4ZmEyXHU4ZmE0XHU4ZmE1XHU4ZmE2XHU4ZmE3XHU4ZmFhXHU4ZmFjXHU4ZmFkXHU4ZmFlXHU4ZmFmXHU4ZmIy''@;'; + put 'put ''XHU4ZmIzXHU4ZmI0XHU4ZmI1XHU4ZmI3XHU4ZmI4XHU4ZmJhXHU4ZmJiXHU4ZmJjXHU4ZmJmXHU4ZmMwXHU4ZmMzXHU4ZmM2Il0sWyJkZTgwIiwiXHU4ZmM5Iiw0LCJcdThmY2ZcdThmZDJcdThmZDZcdThmZDdcdThmZGFcdThmZTBcdThmZTFcdThmZTNcdThmZTdcdThmZWNcdThmZWZcdThm''@;'; + put 'put ''ZjFcdThmZjJcdThmZjRcdThmZjVcdThmZjZcdThmZmFcdThmZmJcdThmZmNcdThmZmVcdThmZmZcdTkwMDdcdTkwMDhcdTkwMGNcdTkwMGVcdTkwMTNcdTkwMTVcdTkwMThcdTg1NTZcdTg1M2JcdTg0ZmZcdTg0ZmNcdTg1NTlcdTg1NDhcdTg1NjhcdTg1NjRcdTg1NWVcdTg1N2FcdTc3YTJc''@;'; + put 'put ''dTg1NDNcdTg1NzJcdTg1N2JcdTg1YTRcdTg1YThcdTg1ODdcdTg1OGZcdTg1NzlcdTg1YWVcdTg1OWNcdTg1ODVcdTg1YjlcdTg1YjdcdTg1YjBcdTg1ZDNcdTg1YzFcdTg1ZGNcdTg1ZmZcdTg2MjdcdTg2MDVcdTg2MjlcdTg2MTZcdTg2M2NcdTVlZmVcdTVmMDhcdTU5M2NcdTU5NDFcdTgw''@;'; + put 'put ''MzdcdTU5NTVcdTU5NWFcdTU5NThcdTUzMGZcdTVjMjJcdTVjMjVcdTVjMmNcdTVjMzRcdTYyNGNcdTYyNmFcdTYyOWZcdTYyYmJcdTYyY2FcdTYyZGFcdTYyZDdcdTYyZWVcdTYzMjJcdTYyZjZcdTYzMzlcdTYzNGJcdTYzNDNcdTYzYWRcdTYzZjZcdTYzNzFcdTYzN2FcdTYzOGVcdTYzYjRc''@;'; + put 'put ''dTYzNmRcdTYzYWNcdTYzOGFcdTYzNjlcdTYzYWVcdTYzYmNcdTYzZjJcdTYzZjhcdTYzZTBcdTYzZmZcdTYzYzRcdTYzZGVcdTYzY2VcdTY0NTJcdTYzYzZcdTYzYmVcdTY0NDVcdTY0NDFcdTY0MGJcdTY0MWJcdTY0MjBcdTY0MGNcdTY0MjZcdTY0MjFcdTY0NWVcdTY0ODRcdTY0NmRcdTY0''@;'; + put 'put ''OTYiXSxbImRmNDAiLCJcdTkwMTlcdTkwMWNcdTkwMjNcdTkwMjRcdTkwMjVcdTkwMjciLDUsIlx1OTAzMCIsNCwiXHU5MDM3XHU5MDM5XHU5MDNhXHU5MDNkXHU5MDNmXHU5MDQwXHU5MDQzXHU5MDQ1XHU5MDQ2XHU5MDQ4Iiw0LCJcdTkwNGVcdTkwNTRcdTkwNTVcdTkwNTZcdTkwNTlcdTkw''@;'; + put 'put ''NWFcdTkwNWMiLDUsIlx1OTA2NFx1OTA2Nlx1OTA2N1x1OTA2OVx1OTA2YVx1OTA2Ylx1OTA2Y1x1OTA2ZiIsNCwiXHU5MDc2Iiw2LCJcdTkwN2VcdTkwODEiXSxbImRmODAiLCJcdTkwODRcdTkwODVcdTkwODZcdTkwODdcdTkwODlcdTkwOGFcdTkwOGMiLDQsIlx1OTA5Mlx1OTA5NFx1OTA5''@;'; + put 'put ''Nlx1OTA5OFx1OTA5YVx1OTA5Y1x1OTA5ZVx1OTA5Zlx1OTBhMFx1OTBhNFx1OTBhNVx1OTBhN1x1OTBhOFx1OTBhOVx1OTBhYlx1OTBhZFx1OTBiMlx1OTBiN1x1OTBiY1x1OTBiZFx1OTBiZlx1OTBjMFx1NjQ3YVx1NjRiN1x1NjRiOFx1NjQ5OVx1NjRiYVx1NjRjMFx1NjRkMFx1NjRkN1x1''@;'; + put 'put ''NjRlNFx1NjRlMlx1NjUwOVx1NjUyNVx1NjUyZVx1NWYwYlx1NWZkMlx1NzUxOVx1NWYxMVx1NTM1Zlx1NTNmMVx1NTNmZFx1NTNlOVx1NTNlOFx1NTNmYlx1NTQxMlx1NTQxNlx1NTQwNlx1NTQ0Ylx1NTQ1Mlx1NTQ1M1x1NTQ1NFx1NTQ1Nlx1NTQ0M1x1NTQyMVx1NTQ1N1x1NTQ1OVx1NTQy''@;'; + put 'put ''M1x1NTQzMlx1NTQ4Mlx1NTQ5NFx1NTQ3N1x1NTQ3MVx1NTQ2NFx1NTQ5YVx1NTQ5Ylx1NTQ4NFx1NTQ3Nlx1NTQ2Nlx1NTQ5ZFx1NTRkMFx1NTRhZFx1NTRjMlx1NTRiNFx1NTRkMlx1NTRhN1x1NTRhNlx1NTRkM1x1NTRkNFx1NTQ3Mlx1NTRhM1x1NTRkNVx1NTRiYlx1NTRiZlx1NTRjY1x1''@;'; + put 'put ''NTRkOVx1NTRkYVx1NTRkY1x1NTRhOVx1NTRhYVx1NTRhNFx1NTRkZFx1NTRjZlx1NTRkZVx1NTUxYlx1NTRlN1x1NTUyMFx1NTRmZFx1NTUxNFx1NTRmM1x1NTUyMlx1NTUyM1x1NTUwZlx1NTUxMVx1NTUyN1x1NTUyYVx1NTU2N1x1NTU4Zlx1NTViNVx1NTU0OVx1NTU2ZFx1NTU0MVx1NTU1''@;'; + put 'put ''NVx1NTUzZlx1NTU1MFx1NTUzYyJdLFsiZTA0MCIsIlx1OTBjMlx1OTBjM1x1OTBjNlx1OTBjOFx1OTBjOVx1OTBjYlx1OTBjY1x1OTBjZFx1OTBkMlx1OTBkNFx1OTBkNVx1OTBkNlx1OTBkOFx1OTBkOVx1OTBkYVx1OTBkZVx1OTBkZlx1OTBlMFx1OTBlM1x1OTBlNFx1OTBlNVx1OTBlOVx1''@;'; + put 'put ''OTBlYVx1OTBlY1x1OTBlZVx1OTBmMFx1OTBmMVx1OTBmMlx1OTBmM1x1OTBmNVx1OTBmNlx1OTBmN1x1OTBmOVx1OTBmYVx1OTBmYlx1OTBmY1x1OTBmZlx1OTEwMFx1OTEwMVx1OTEwM1x1OTEwNSIsMTksIlx1OTExYVx1OTExYlx1OTExYyJdLFsiZTA4MCIsIlx1OTExZFx1OTExZlx1OTEy''@;'; + put 'put ''MFx1OTEyMVx1OTEyNCIsMTAsIlx1OTEzMFx1OTEzMiIsNiwiXHU5MTNhIiw4LCJcdTkxNDRcdTU1MzdcdTU1NTZcdTU1NzVcdTU1NzZcdTU1NzdcdTU1MzNcdTU1MzBcdTU1NWNcdTU1OGJcdTU1ZDJcdTU1ODNcdTU1YjFcdTU1YjlcdTU1ODhcdTU1ODFcdTU1OWZcdTU1N2VcdTU1ZDZcdTU1''@;'; + put 'put ''OTFcdTU1N2JcdTU1ZGZcdTU1YmRcdTU1YmVcdTU1OTRcdTU1OTlcdTU1ZWFcdTU1ZjdcdTU1YzlcdTU2MWZcdTU1ZDFcdTU1ZWJcdTU1ZWNcdTU1ZDRcdTU1ZTZcdTU1ZGRcdTU1YzRcdTU1ZWZcdTU1ZTVcdTU1ZjJcdTU1ZjNcdTU1Y2NcdTU1Y2RcdTU1ZThcdTU1ZjVcdTU1ZTRcdThmOTRc''@;'; + put 'put ''dTU2MWVcdTU2MDhcdTU2MGNcdTU2MDFcdTU2MjRcdTU2MjNcdTU1ZmVcdTU2MDBcdTU2MjdcdTU2MmRcdTU2NThcdTU2MzlcdTU2NTdcdTU2MmNcdTU2NGRcdTU2NjJcdTU2NTlcdTU2NWNcdTU2NGNcdTU2NTRcdTU2ODZcdTU2NjRcdTU2NzFcdTU2NmJcdTU2N2JcdTU2N2NcdTU2ODVcdTU2''@;'; + put 'put ''OTNcdTU2YWZcdTU2ZDRcdTU2ZDdcdTU2ZGRcdTU2ZTFcdTU2ZjVcdTU2ZWJcdTU2ZjlcdTU2ZmZcdTU3MDRcdTU3MGFcdTU3MDlcdTU3MWNcdTVlMGZcdTVlMTlcdTVlMTRcdTVlMTFcdTVlMzFcdTVlM2JcdTVlM2MiXSxbImUxNDAiLCJcdTkxNDVcdTkxNDdcdTkxNDhcdTkxNTFcdTkxNTNc''@;'; + put 'put ''dTkxNTRcdTkxNTVcdTkxNTZcdTkxNThcdTkxNTlcdTkxNWJcdTkxNWNcdTkxNWZcdTkxNjBcdTkxNjZcdTkxNjdcdTkxNjhcdTkxNmJcdTkxNmRcdTkxNzNcdTkxN2FcdTkxN2JcdTkxN2NcdTkxODAiLDQsIlx1OTE4Nlx1OTE4OFx1OTE4YVx1OTE4ZVx1OTE4Zlx1OTE5MyIsNiwiXHU5MTlj''@;'; + put 'put ''Iiw1LCJcdTkxYTQiLDUsIlx1OTFhYlx1OTFhY1x1OTFiMFx1OTFiMVx1OTFiMlx1OTFiM1x1OTFiNlx1OTFiN1x1OTFiOFx1OTFiOVx1OTFiYiJdLFsiZTE4MCIsIlx1OTFiYyIsMTAsIlx1OTFjOFx1OTFjYlx1OTFkMFx1OTFkMiIsOSwiXHU5MWRkIiw4LCJcdTVlMzdcdTVlNDRcdTVlNTRc''@;'; + put 'put ''dTVlNWJcdTVlNWVcdTVlNjFcdTVjOGNcdTVjN2FcdTVjOGRcdTVjOTBcdTVjOTZcdTVjODhcdTVjOThcdTVjOTlcdTVjOTFcdTVjOWFcdTVjOWNcdTVjYjVcdTVjYTJcdTVjYmRcdTVjYWNcdTVjYWJcdTVjYjFcdTVjYTNcdTVjYzFcdTVjYjdcdTVjYzRcdTVjZDJcdTVjZTRcdTVjY2JcdTVj''@;'; + put 'put ''ZTVcdTVkMDJcdTVkMDNcdTVkMjdcdTVkMjZcdTVkMmVcdTVkMjRcdTVkMWVcdTVkMDZcdTVkMWJcdTVkNThcdTVkM2VcdTVkMzRcdTVkM2RcdTVkNmNcdTVkNWJcdTVkNmZcdTVkNWRcdTVkNmJcdTVkNGJcdTVkNGFcdTVkNjlcdTVkNzRcdTVkODJcdTVkOTlcdTVkOWRcdThjNzNcdTVkYjdc''@;'; + put 'put ''dTVkYzVcdTVmNzNcdTVmNzdcdTVmODJcdTVmODdcdTVmODlcdTVmOGNcdTVmOTVcdTVmOTlcdTVmOWNcdTVmYThcdTVmYWRcdTVmYjVcdTVmYmNcdTg4NjJcdTVmNjFcdTcyYWRcdTcyYjBcdTcyYjRcdTcyYjdcdTcyYjhcdTcyYzNcdTcyYzFcdTcyY2VcdTcyY2RcdTcyZDJcdTcyZThcdTcy''@;'; + put 'put ''ZWZcdTcyZTlcdTcyZjJcdTcyZjRcdTcyZjdcdTczMDFcdTcyZjNcdTczMDNcdTcyZmEiXSxbImUyNDAiLCJcdTkxZTYiLDYyXSxbImUyODAiLCJcdTkyMjUiLDMyLCJcdTcyZmJcdTczMTdcdTczMTNcdTczMjFcdTczMGFcdTczMWVcdTczMWRcdTczMTVcdTczMjJcdTczMzlcdTczMjVcdTcz''@;'; + put 'put ''MmNcdTczMzhcdTczMzFcdTczNTBcdTczNGRcdTczNTdcdTczNjBcdTczNmNcdTczNmZcdTczN2VcdTgyMWJcdTU5MjVcdTk4ZTdcdTU5MjRcdTU5MDJcdTk5NjNcdTk5NjciLDUsIlx1OTk3NFx1OTk3N1x1OTk3ZFx1OTk4MFx1OTk4NFx1OTk4N1x1OTk4YVx1OTk4ZFx1OTk5MFx1OTk5MVx1''@;'; + put 'put ''OTk5M1x1OTk5NFx1OTk5NVx1NWU4MFx1NWU5MVx1NWU4Ylx1NWU5Nlx1NWVhNVx1NWVhMFx1NWViOVx1NWViNVx1NWViZVx1NWViM1x1OGQ1M1x1NWVkMlx1NWVkMVx1NWVkYlx1NWVlOFx1NWVlYVx1ODFiYVx1NWZjNFx1NWZjOVx1NWZkNlx1NWZjZlx1NjAwM1x1NWZlZVx1NjAwNFx1NWZl''@;'; + put 'put ''MVx1NWZlNFx1NWZmZVx1NjAwNVx1NjAwNlx1NWZlYVx1NWZlZFx1NWZmOFx1NjAxOVx1NjAzNVx1NjAyNlx1NjAxYlx1NjAwZlx1NjAwZFx1NjAyOVx1NjAyYlx1NjAwYVx1NjAzZlx1NjAyMVx1NjA3OFx1NjA3OVx1NjA3Ylx1NjA3YVx1NjA0MiJdLFsiZTM0MCIsIlx1OTI0NiIsNDUsIlx1''@;'; + put 'put ''OTI3NSIsMTZdLFsiZTM4MCIsIlx1OTI4NiIsNywiXHU5MjhmIiwyNCwiXHU2MDZhXHU2MDdkXHU2MDk2XHU2MDlhXHU2MGFkXHU2MDlkXHU2MDgzXHU2MDkyXHU2MDhjXHU2MDliXHU2MGVjXHU2MGJiXHU2MGIxXHU2MGRkXHU2MGQ4XHU2MGM2XHU2MGRhXHU2MGI0XHU2MTIwXHU2MTI2XHU2''@;'; + put 'put ''MTE1XHU2MTIzXHU2MGY0XHU2MTAwXHU2MTBlXHU2MTJiXHU2MTRhXHU2MTc1XHU2MWFjXHU2MTk0XHU2MWE3XHU2MWI3XHU2MWQ0XHU2MWY1XHU1ZmRkXHU5NmIzXHU5NWU5XHU5NWViXHU5NWYxXHU5NWYzXHU5NWY1XHU5NWY2XHU5NWZjXHU5NWZlXHU5NjAzXHU5NjA0XHU5NjA2XHU5NjA4''@;'; + put 'put ''XHU5NjBhXHU5NjBiXHU5NjBjXHU5NjBkXHU5NjBmXHU5NjEyXHU5NjE1XHU5NjE2XHU5NjE3XHU5NjE5XHU5NjFhXHU0ZTJjXHU3MjNmXHU2MjE1XHU2YzM1XHU2YzU0XHU2YzVjXHU2YzRhXHU2Y2EzXHU2Yzg1XHU2YzkwXHU2Yzk0XHU2YzhjXHU2YzY4XHU2YzY5XHU2Yzc0XHU2Yzc2XHU2''@;'; + put 'put ''Yzg2XHU2Y2E5XHU2Y2QwXHU2Y2Q0XHU2Y2FkXHU2Y2Y3XHU2Y2Y4XHU2Y2YxXHU2Y2Q3XHU2Y2IyXHU2Y2UwXHU2Y2Q2XHU2Y2ZhXHU2Y2ViXHU2Y2VlXHU2Y2IxXHU2Y2QzXHU2Y2VmXHU2Y2ZlIl0sWyJlNDQwIiwiXHU5MmE4Iiw1LCJcdTkyYWYiLDI0LCJcdTkyYzkiLDMxXSxbImU0ODAi''@;'; + put 'put ''LCJcdTkyZTkiLDMyLCJcdTZkMzlcdTZkMjdcdTZkMGNcdTZkNDNcdTZkNDhcdTZkMDdcdTZkMDRcdTZkMTlcdTZkMGVcdTZkMmJcdTZkNGRcdTZkMmVcdTZkMzVcdTZkMWFcdTZkNGZcdTZkNTJcdTZkNTRcdTZkMzNcdTZkOTFcdTZkNmZcdTZkOWVcdTZkYTBcdTZkNWVcdTZkOTNcdTZkOTRc''@;'; + put 'put ''dTZkNWNcdTZkNjBcdTZkN2NcdTZkNjNcdTZlMWFcdTZkYzdcdTZkYzVcdTZkZGVcdTZlMGVcdTZkYmZcdTZkZTBcdTZlMTFcdTZkZTZcdTZkZGRcdTZkZDlcdTZlMTZcdTZkYWJcdTZlMGNcdTZkYWVcdTZlMmJcdTZlNmVcdTZlNGVcdTZlNmJcdTZlYjJcdTZlNWZcdTZlODZcdTZlNTNcdTZl''@;'; + put 'put ''NTRcdTZlMzJcdTZlMjVcdTZlNDRcdTZlZGZcdTZlYjFcdTZlOThcdTZlZTBcdTZmMmRcdTZlZTJcdTZlYTVcdTZlYTdcdTZlYmRcdTZlYmJcdTZlYjdcdTZlZDdcdTZlYjRcdTZlY2ZcdTZlOGZcdTZlYzJcdTZlOWZcdTZmNjJcdTZmNDZcdTZmNDdcdTZmMjRcdTZmMTVcdTZlZjlcdTZmMmZc''@;'; + put 'put ''dTZmMzZcdTZmNGJcdTZmNzRcdTZmMmFcdTZmMDlcdTZmMjlcdTZmODlcdTZmOGRcdTZmOGNcdTZmNzhcdTZmNzJcdTZmN2NcdTZmN2FcdTZmZDEiXSxbImU1NDAiLCJcdTkzMGEiLDUxLCJcdTkzM2YiLDEwXSxbImU1ODAiLCJcdTkzNGEiLDMxLCJcdTkzNmJcdTZmYzlcdTZmYTdcdTZmYjlc''@;'; + put 'put ''dTZmYjZcdTZmYzJcdTZmZTFcdTZmZWVcdTZmZGVcdTZmZTBcdTZmZWZcdTcwMWFcdTcwMjNcdTcwMWJcdTcwMzlcdTcwMzVcdTcwNGZcdTcwNWVcdTViODBcdTViODRcdTViOTVcdTViOTNcdTViYTVcdTViYjhcdTc1MmZcdTlhOWVcdTY0MzRcdTViZTRcdTViZWVcdTg5MzBcdTViZjBcdThl''@;'; + put 'put ''NDdcdThiMDdcdThmYjZcdThmZDNcdThmZDVcdThmZTVcdThmZWVcdThmZTRcdThmZTlcdThmZTZcdThmZjNcdThmZThcdTkwMDVcdTkwMDRcdTkwMGJcdTkwMjZcdTkwMTFcdTkwMGRcdTkwMTZcdTkwMjFcdTkwMzVcdTkwMzZcdTkwMmRcdTkwMmZcdTkwNDRcdTkwNTFcdTkwNTJcdTkwNTBc''@;'; + put 'put ''dTkwNjhcdTkwNThcdTkwNjJcdTkwNWJcdTY2YjlcdTkwNzRcdTkwN2RcdTkwODJcdTkwODhcdTkwODNcdTkwOGJcdTVmNTBcdTVmNTdcdTVmNTZcdTVmNThcdTVjM2JcdTU0YWJcdTVjNTBcdTVjNTlcdTViNzFcdTVjNjNcdTVjNjZcdTdmYmNcdTVmMmFcdTVmMjlcdTVmMmRcdTgyNzRcdTVm''@;'; + put 'put ''M2NcdTliM2JcdTVjNmVcdTU5ODFcdTU5ODNcdTU5OGRcdTU5YTlcdTU5YWFcdTU5YTMiXSxbImU2NDAiLCJcdTkzNmMiLDM0LCJcdTkzOTAiLDI3XSxbImU2ODAiLCJcdTkzYWMiLDI5LCJcdTkzY2JcdTkzY2NcdTkzY2RcdTU5OTdcdTU5Y2FcdTU5YWJcdTU5OWVcdTU5YTRcdTU5ZDJcdTU5''@;'; + put 'put ''YjJcdTU5YWZcdTU5ZDdcdTU5YmVcdTVhMDVcdTVhMDZcdTU5ZGRcdTVhMDhcdTU5ZTNcdTU5ZDhcdTU5ZjlcdTVhMGNcdTVhMDlcdTVhMzJcdTVhMzRcdTVhMTFcdTVhMjNcdTVhMTNcdTVhNDBcdTVhNjdcdTVhNGFcdTVhNTVcdTVhM2NcdTVhNjJcdTVhNzVcdTgwZWNcdTVhYWFcdTVhOWJc''@;'; + put 'put ''dTVhNzdcdTVhN2FcdTVhYmVcdTVhZWJcdTVhYjJcdTVhZDJcdTVhZDRcdTVhYjhcdTVhZTBcdTVhZTNcdTVhZjFcdTVhZDZcdTVhZTZcdTVhZDhcdTVhZGNcdTViMDlcdTViMTdcdTViMTZcdTViMzJcdTViMzdcdTViNDBcdTVjMTVcdTVjMWNcdTViNWFcdTViNjVcdTViNzNcdTViNTFcdTVi''@;'; + put 'put ''NTNcdTViNjJcdTlhNzVcdTlhNzdcdTlhNzhcdTlhN2FcdTlhN2ZcdTlhN2RcdTlhODBcdTlhODFcdTlhODVcdTlhODhcdTlhOGFcdTlhOTBcdTlhOTJcdTlhOTNcdTlhOTZcdTlhOThcdTlhOWJcdTlhOWNcdTlhOWRcdTlhOWZcdTlhYTBcdTlhYTJcdTlhYTNcdTlhYTVcdTlhYTdcdTdlOWZc''@;'; + put 'put ''dTdlYTFcdTdlYTNcdTdlYTVcdTdlYThcdTdlYTkiXSxbImU3NDAiLCJcdTkzY2UiLDcsIlx1OTNkNyIsNTRdLFsiZTc4MCIsIlx1OTQwZSIsMzIsIlx1N2VhZFx1N2ViMFx1N2ViZVx1N2VjMFx1N2VjMVx1N2VjMlx1N2VjOVx1N2VjYlx1N2VjY1x1N2VkMFx1N2VkNFx1N2VkN1x1N2VkYlx1''@;'; + put 'put ''N2VlMFx1N2VlMVx1N2VlOFx1N2VlYlx1N2VlZVx1N2VlZlx1N2VmMVx1N2VmMlx1N2YwZFx1N2VmNlx1N2VmYVx1N2VmYlx1N2VmZVx1N2YwMVx1N2YwMlx1N2YwM1x1N2YwN1x1N2YwOFx1N2YwYlx1N2YwY1x1N2YwZlx1N2YxMVx1N2YxMlx1N2YxN1x1N2YxOVx1N2YxY1x1N2YxYlx1N2Yx''@;'; + put 'put ''Zlx1N2YyMSIsNiwiXHU3ZjJhXHU3ZjJiXHU3ZjJjXHU3ZjJkXHU3ZjJmIiw0LCJcdTdmMzVcdTVlN2FcdTc1N2ZcdTVkZGJcdTc1M2VcdTkwOTVcdTczOGVcdTczOTFcdTczYWVcdTczYTJcdTczOWZcdTczY2ZcdTczYzJcdTczZDFcdTczYjdcdTczYjNcdTczYzBcdTczYzlcdTczYzhcdTcz''@;'; + put 'put ''ZTVcdTczZDlcdTk4N2NcdTc0MGFcdTczZTlcdTczZTdcdTczZGVcdTczYmFcdTczZjJcdTc0MGZcdTc0MmFcdTc0NWJcdTc0MjZcdTc0MjVcdTc0MjhcdTc0MzBcdTc0MmVcdTc0MmMiXSxbImU4NDAiLCJcdTk0MmYiLDE0LCJcdTk0M2YiLDQzLCJcdTk0NmNcdTk0NmRcdTk0NmVcdTk0NmYi''@;'; + put 'put ''XSxbImU4ODAiLCJcdTk0NzAiLDIwLCJcdTk0OTFcdTk0OTZcdTk0OThcdTk0YzdcdTk0Y2ZcdTk0ZDNcdTk0ZDRcdTk0ZGFcdTk0ZTZcdTk0ZmJcdTk1MWNcdTk1MjBcdTc0MWJcdTc0MWFcdTc0NDFcdTc0NWNcdTc0NTdcdTc0NTVcdTc0NTlcdTc0NzdcdTc0NmRcdTc0N2VcdTc0OWNcdTc0''@;'; + put 'put ''OGVcdTc0ODBcdTc0ODFcdTc0ODdcdTc0OGJcdTc0OWVcdTc0YThcdTc0YTlcdTc0OTBcdTc0YTdcdTc0ZDJcdTc0YmFcdTk3ZWFcdTk3ZWJcdTk3ZWNcdTY3NGNcdTY3NTNcdTY3NWVcdTY3NDhcdTY3NjlcdTY3YTVcdTY3ODdcdTY3NmFcdTY3NzNcdTY3OThcdTY3YTdcdTY3NzVcdTY3YThc''@;'; + put 'put ''dTY3OWVcdTY3YWRcdTY3OGJcdTY3NzdcdTY3N2NcdTY3ZjBcdTY4MDlcdTY3ZDhcdTY4MGFcdTY3ZTlcdTY3YjBcdTY4MGNcdTY3ZDlcdTY3YjVcdTY3ZGFcdTY3YjNcdTY3ZGRcdTY4MDBcdTY3YzNcdTY3YjhcdTY3ZTJcdTY4MGVcdTY3YzFcdTY3ZmRcdTY4MzJcdTY4MzNcdTY4NjBcdTY4''@;'; + put 'put ''NjFcdTY4NGVcdTY4NjJcdTY4NDRcdTY4NjRcdTY4ODNcdTY4MWRcdTY4NTVcdTY4NjZcdTY4NDFcdTY4NjdcdTY4NDBcdTY4M2VcdTY4NGFcdTY4NDlcdTY4MjlcdTY4YjVcdTY4OGZcdTY4NzRcdTY4NzdcdTY4OTNcdTY4NmJcdTY4YzJcdTY5NmVcdTY4ZmNcdTY5MWZcdTY5MjBcdTY4Zjki''@;'; + put 'put ''XSxbImU5NDAiLCJcdTk1MjdcdTk1MzNcdTk1M2RcdTk1NDNcdTk1NDhcdTk1NGJcdTk1NTVcdTk1NWFcdTk1NjBcdTk1NmVcdTk1NzRcdTk1NzVcdTk1NzciLDcsIlx1OTU4MCIsNDJdLFsiZTk4MCIsIlx1OTVhYiIsMzIsIlx1NjkyNFx1NjhmMFx1NjkwYlx1NjkwMVx1Njk1N1x1NjhlM1x1''@;'; + put 'put ''NjkxMFx1Njk3MVx1NjkzOVx1Njk2MFx1Njk0Mlx1Njk1ZFx1Njk4NFx1Njk2Ylx1Njk4MFx1Njk5OFx1Njk3OFx1NjkzNFx1NjljY1x1Njk4N1x1Njk4OFx1NjljZVx1Njk4OVx1Njk2Nlx1Njk2M1x1Njk3OVx1Njk5Ylx1NjlhN1x1NjliYlx1NjlhYlx1NjlhZFx1NjlkNFx1NjliMVx1Njlj''@;'; + put 'put ''MVx1NjljYVx1NjlkZlx1Njk5NVx1NjllMFx1Njk4ZFx1NjlmZlx1NmEyZlx1NjllZFx1NmExN1x1NmExOFx1NmE2NVx1NjlmMlx1NmE0NFx1NmEzZVx1NmFhMFx1NmE1MFx1NmE1Ylx1NmEzNVx1NmE4ZVx1NmE3OVx1NmEzZFx1NmEyOFx1NmE1OFx1NmE3Y1x1NmE5MVx1NmE5MFx1NmFhOVx1''@;'; + put 'put ''NmE5N1x1NmFhYlx1NzMzN1x1NzM1Mlx1NmI4MVx1NmI4Mlx1NmI4N1x1NmI4NFx1NmI5Mlx1NmI5M1x1NmI4ZFx1NmI5YVx1NmI5Ylx1NmJhMVx1NmJhYVx1OGY2Ylx1OGY2ZFx1OGY3MVx1OGY3Mlx1OGY3M1x1OGY3NVx1OGY3Nlx1OGY3OFx1OGY3N1x1OGY3OVx1OGY3YVx1OGY3Y1x1OGY3''@;'; + put 'put ''ZVx1OGY4MVx1OGY4Mlx1OGY4NFx1OGY4N1x1OGY4YiJdLFsiZWE0MCIsIlx1OTVjYyIsMjcsIlx1OTVlY1x1OTVmZlx1OTYwN1x1OTYxM1x1OTYxOFx1OTYxYlx1OTYxZVx1OTYyMFx1OTYyMyIsNiwiXHU5NjJiXHU5NjJjXHU5NjJkXHU5NjJmXHU5NjMwXHU5NjM3XHU5NjM4XHU5NjM5XHU5''@;'; + put 'put ''NjNhXHU5NjNlXHU5NjQxXHU5NjQzXHU5NjRhXHU5NjRlXHU5NjRmXHU5NjUxXHU5NjUyXHU5NjUzXHU5NjU2XHU5NjU3Il0sWyJlYTgwIiwiXHU5NjU4XHU5NjU5XHU5NjVhXHU5NjVjXHU5NjVkXHU5NjVlXHU5NjYwXHU5NjYzXHU5NjY1XHU5NjY2XHU5NjZiXHU5NjZkIiw0LCJcdTk2NzNc''@;'; + put 'put ''dTk2NzgiLDEyLCJcdTk2ODdcdTk2ODlcdTk2OGFcdThmOGRcdThmOGVcdThmOGZcdThmOThcdThmOWFcdThlY2VcdTYyMGJcdTYyMTdcdTYyMWJcdTYyMWZcdTYyMjJcdTYyMjFcdTYyMjVcdTYyMjRcdTYyMmNcdTgxZTdcdTc0ZWZcdTc0ZjRcdTc0ZmZcdTc1MGZcdTc1MTFcdTc1MTNcdTY1''@;'; + put 'put ''MzRcdTY1ZWVcdTY1ZWZcdTY1ZjBcdTY2MGFcdTY2MTlcdTY3NzJcdTY2MDNcdTY2MTVcdTY2MDBcdTcwODVcdTY2ZjdcdTY2MWRcdTY2MzRcdTY2MzFcdTY2MzZcdTY2MzVcdTgwMDZcdTY2NWZcdTY2NTRcdTY2NDFcdTY2NGZcdTY2NTZcdTY2NjFcdTY2NTdcdTY2NzdcdTY2ODRcdTY2OGNc''@;'; + put 'put ''dTY2YTdcdTY2OWRcdTY2YmVcdTY2ZGJcdTY2ZGNcdTY2ZTZcdTY2ZTlcdThkMzJcdThkMzNcdThkMzZcdThkM2JcdThkM2RcdThkNDBcdThkNDVcdThkNDZcdThkNDhcdThkNDlcdThkNDdcdThkNGRcdThkNTVcdThkNTlcdTg5YzdcdTg5Y2FcdTg5Y2JcdTg5Y2NcdTg5Y2VcdTg5Y2ZcdTg5''@;'; + put 'put ''ZDBcdTg5ZDFcdTcyNmVcdTcyOWZcdTcyNWRcdTcyNjZcdTcyNmZcdTcyN2VcdTcyN2ZcdTcyODRcdTcyOGJcdTcyOGRcdTcyOGZcdTcyOTJcdTYzMDhcdTYzMzJcdTYzYjAiXSxbImViNDAiLCJcdTk2OGNcdTk2OGVcdTk2OTFcdTk2OTJcdTk2OTNcdTk2OTVcdTk2OTZcdTk2OWFcdTk2OWJc''@;'; + put 'put ''dTk2OWQiLDksIlx1OTZhOCIsNywiXHU5NmIxXHU5NmIyXHU5NmI0XHU5NmI1XHU5NmI3XHU5NmI4XHU5NmJhXHU5NmJiXHU5NmJmXHU5NmMyXHU5NmMzXHU5NmM4XHU5NmNhXHU5NmNiXHU5NmQwXHU5NmQxXHU5NmQzXHU5NmQ0XHU5NmQ2Iiw5LCJcdTk2ZTEiLDYsIlx1OTZlYiJdLFsiZWI4''@;'; + put 'put ''MCIsIlx1OTZlY1x1OTZlZFx1OTZlZVx1OTZmMFx1OTZmMVx1OTZmMlx1OTZmNFx1OTZmNVx1OTZmOFx1OTZmYVx1OTZmYlx1OTZmY1x1OTZmZFx1OTZmZlx1OTcwMlx1OTcwM1x1OTcwNVx1OTcwYVx1OTcwYlx1OTcwY1x1OTcxMFx1OTcxMVx1OTcxMlx1OTcxNFx1OTcxNVx1OTcxNyIsNCwi''@;'; + put 'put ''XHU5NzFkXHU5NzFmXHU5NzIwXHU2NDNmXHU2NGQ4XHU4MDA0XHU2YmVhXHU2YmYzXHU2YmZkXHU2YmY1XHU2YmY5XHU2YzA1XHU2YzA3XHU2YzA2XHU2YzBkXHU2YzE1XHU2YzE4XHU2YzE5XHU2YzFhXHU2YzIxXHU2YzI5XHU2YzI0XHU2YzJhXHU2YzMyXHU2NTM1XHU2NTU1XHU2NTZiXHU3''@;'; + put 'put ''MjRkXHU3MjUyXHU3MjU2XHU3MjMwXHU4NjYyXHU1MjE2XHU4MDlmXHU4MDljXHU4MDkzXHU4MGJjXHU2NzBhXHU4MGJkXHU4MGIxXHU4MGFiXHU4MGFkXHU4MGI0XHU4MGI3XHU4MGU3XHU4MGU4XHU4MGU5XHU4MGVhXHU4MGRiXHU4MGMyXHU4MGM0XHU4MGQ5XHU4MGNkXHU4MGQ3XHU2NzEw''@;'; + put 'put ''XHU4MGRkXHU4MGViXHU4MGYxXHU4MGY0XHU4MGVkXHU4MTBkXHU4MTBlXHU4MGYyXHU4MGZjXHU2NzE1XHU4MTEyXHU4YzVhXHU4MTM2XHU4MTFlXHU4MTJjXHU4MTE4XHU4MTMyXHU4MTQ4XHU4MTRjXHU4MTUzXHU4MTc0XHU4MTU5XHU4MTVhXHU4MTcxXHU4MTYwXHU4MTY5XHU4MTdjXHU4''@;'; + put 'put ''MTdkXHU4MTZkXHU4MTY3XHU1ODRkXHU1YWI1XHU4MTg4XHU4MTgyXHU4MTkxXHU2ZWQ1XHU4MWEzXHU4MWFhXHU4MWNjXHU2NzI2XHU4MWNhXHU4MWJiIl0sWyJlYzQwIiwiXHU5NzIxIiw4LCJcdTk3MmJcdTk3MmNcdTk3MmVcdTk3MmZcdTk3MzFcdTk3MzMiLDQsIlx1OTczYVx1OTczYlx1''@;'; + put 'put ''OTczY1x1OTczZFx1OTczZiIsMTgsIlx1OTc1NFx1OTc1NVx1OTc1N1x1OTc1OFx1OTc1YVx1OTc1Y1x1OTc1ZFx1OTc1Zlx1OTc2M1x1OTc2NFx1OTc2Nlx1OTc2N1x1OTc2OFx1OTc2YSIsN10sWyJlYzgwIiwiXHU5NzcyXHU5Nzc1XHU5Nzc3Iiw0LCJcdTk3N2QiLDcsIlx1OTc4NiIsNCwi''@;'; + put 'put ''XHU5NzhjXHU5NzhlXHU5NzhmXHU5NzkwXHU5NzkzXHU5Nzk1XHU5Nzk2XHU5Nzk3XHU5Nzk5Iiw0LCJcdTgxYzFcdTgxYTZcdTZiMjRcdTZiMzdcdTZiMzlcdTZiNDNcdTZiNDZcdTZiNTlcdTk4ZDFcdTk4ZDJcdTk4ZDNcdTk4ZDVcdTk4ZDlcdTk4ZGFcdTZiYjNcdTVmNDBcdTZiYzJcdTg5''@;'; + put 'put ''ZjNcdTY1OTBcdTlmNTFcdTY1OTNcdTY1YmNcdTY1YzZcdTY1YzRcdTY1YzNcdTY1Y2NcdTY1Y2VcdTY1ZDJcdTY1ZDZcdTcwODBcdTcwOWNcdTcwOTZcdTcwOWRcdTcwYmJcdTcwYzBcdTcwYjdcdTcwYWJcdTcwYjFcdTcwZThcdTcwY2FcdTcxMTBcdTcxMTNcdTcxMTZcdTcxMmZcdTcxMzFc''@;'; + put 'put ''dTcxNzNcdTcxNWNcdTcxNjhcdTcxNDVcdTcxNzJcdTcxNGFcdTcxNzhcdTcxN2FcdTcxOThcdTcxYjNcdTcxYjVcdTcxYThcdTcxYTBcdTcxZTBcdTcxZDRcdTcxZTdcdTcxZjlcdTcyMWRcdTcyMjhcdTcwNmNcdTcxMThcdTcxNjZcdTcxYjlcdTYyM2VcdTYyM2RcdTYyNDNcdTYyNDhcdTYy''@;'; + put 'put ''NDlcdTc5M2JcdTc5NDBcdTc5NDZcdTc5NDlcdTc5NWJcdTc5NWNcdTc5NTNcdTc5NWFcdTc5NjJcdTc5NTdcdTc5NjBcdTc5NmZcdTc5NjdcdTc5N2FcdTc5ODVcdTc5OGFcdTc5OWFcdTc5YTdcdTc5YjNcdTVmZDFcdTVmZDAiXSxbImVkNDAiLCJcdTk3OWVcdTk3OWZcdTk3YTFcdTk3YTJc''@;'; + put 'put ''dTk3YTQiLDYsIlx1OTdhY1x1OTdhZVx1OTdiMFx1OTdiMVx1OTdiM1x1OTdiNSIsNDZdLFsiZWQ4MCIsIlx1OTdlNFx1OTdlNVx1OTdlOFx1OTdlZSIsNCwiXHU5N2Y0XHU5N2Y3IiwyMywiXHU2MDNjXHU2MDVkXHU2MDVhXHU2MDY3XHU2MDQxXHU2MDU5XHU2MDYzXHU2MGFiXHU2MTA2XHU2''@;'; + put 'put ''MTBkXHU2MTVkXHU2MWE5XHU2MTlkXHU2MWNiXHU2MWQxXHU2MjA2XHU4MDgwXHU4MDdmXHU2YzkzXHU2Y2Y2XHU2ZGZjXHU3N2Y2XHU3N2Y4XHU3ODAwXHU3ODA5XHU3ODE3XHU3ODE4XHU3ODExXHU2NWFiXHU3ODJkXHU3ODFjXHU3ODFkXHU3ODM5XHU3ODNhXHU3ODNiXHU3ODFmXHU3ODNj''@;'; + put 'put ''XHU3ODI1XHU3ODJjXHU3ODIzXHU3ODI5XHU3ODRlXHU3ODZkXHU3ODU2XHU3ODU3XHU3ODI2XHU3ODUwXHU3ODQ3XHU3ODRjXHU3ODZhXHU3ODliXHU3ODkzXHU3ODlhXHU3ODg3XHU3ODljXHU3OGExXHU3OGEzXHU3OGIyXHU3OGI5XHU3OGE1XHU3OGQ0XHU3OGQ5XHU3OGM5XHU3OGVjXHU3''@;'; + put 'put ''OGYyXHU3OTA1XHU3OGY0XHU3OTEzXHU3OTI0XHU3OTFlXHU3OTM0XHU5ZjliXHU5ZWY5XHU5ZWZiXHU5ZWZjXHU3NmYxXHU3NzA0XHU3NzBkXHU3NmY5XHU3NzA3XHU3NzA4XHU3NzFhXHU3NzIyXHU3NzE5XHU3NzJkXHU3NzI2XHU3NzM1XHU3NzM4XHU3NzUwXHU3NzUxXHU3NzQ3XHU3NzQz''@;'; + put 'put ''XHU3NzVhXHU3NzY4Il0sWyJlZTQwIiwiXHU5ODBmIiw2Ml0sWyJlZTgwIiwiXHU5ODRlIiwzMiwiXHU3NzYyXHU3NzY1XHU3NzdmXHU3NzhkXHU3NzdkXHU3NzgwXHU3NzhjXHU3NzkxXHU3NzlmXHU3N2EwXHU3N2IwXHU3N2I1XHU3N2JkXHU3NTNhXHU3NTQwXHU3NTRlXHU3NTRiXHU3NTQ4''@;'; + put 'put ''XHU3NTViXHU3NTcyXHU3NTc5XHU3NTgzXHU3ZjU4XHU3ZjYxXHU3ZjVmXHU4YTQ4XHU3ZjY4XHU3Zjc0XHU3ZjcxXHU3Zjc5XHU3ZjgxXHU3ZjdlXHU3NmNkXHU3NmU1XHU4ODMyXHU5NDg1XHU5NDg2XHU5NDg3XHU5NDhiXHU5NDhhXHU5NDhjXHU5NDhkXHU5NDhmXHU5NDkwXHU5NDk0XHU5''@;'; + put 'put ''NDk3XHU5NDk1XHU5NDlhXHU5NDliXHU5NDljXHU5NGEzXHU5NGE0XHU5NGFiXHU5NGFhXHU5NGFkXHU5NGFjXHU5NGFmXHU5NGIwXHU5NGIyXHU5NGI0XHU5NGI2Iiw0LCJcdTk0YmNcdTk0YmRcdTk0YmZcdTk0YzRcdTk0YzgiLDYsIlx1OTRkMFx1OTRkMVx1OTRkMlx1OTRkNVx1OTRkNlx1''@;'; + put 'put ''OTRkN1x1OTRkOVx1OTRkOFx1OTRkYlx1OTRkZVx1OTRkZlx1OTRlMFx1OTRlMlx1OTRlNFx1OTRlNVx1OTRlN1x1OTRlOFx1OTRlYSJdLFsiZWY0MCIsIlx1OTg2ZiIsNSwiXHU5ODhiXHU5ODhlXHU5ODkyXHU5ODk1XHU5ODk5XHU5OGEzXHU5OGE4IiwzNywiXHU5OGNmXHU5OGQwXHU5OGQ0''@;'; + put 'put ''XHU5OGQ2XHU5OGQ3XHU5OGRiXHU5OGRjXHU5OGRkXHU5OGUwIiw0XSxbImVmODAiLCJcdTk4ZTVcdTk4ZTZcdTk4ZTkiLDMwLCJcdTk0ZTlcdTk0ZWJcdTk0ZWVcdTk0ZWZcdTk0ZjNcdTk0ZjRcdTk0ZjVcdTk0ZjdcdTk0ZjlcdTk0ZmNcdTk0ZmRcdTk0ZmZcdTk1MDNcdTk1MDJcdTk1MDZc''@;'; + put 'put ''dTk1MDdcdTk1MDlcdTk1MGFcdTk1MGRcdTk1MGVcdTk1MGZcdTk1MTIiLDQsIlx1OTUxOFx1OTUxYlx1OTUxZFx1OTUxZVx1OTUxZlx1OTUyMlx1OTUyYVx1OTUyYlx1OTUyOVx1OTUyY1x1OTUzMVx1OTUzMlx1OTUzNFx1OTUzNlx1OTUzN1x1OTUzOFx1OTUzY1x1OTUzZVx1OTUzZlx1OTU0''@;'; + put 'put ''Mlx1OTUzNVx1OTU0NFx1OTU0NVx1OTU0Nlx1OTU0OVx1OTU0Y1x1OTU0ZVx1OTU0Zlx1OTU1Mlx1OTU1M1x1OTU1NFx1OTU1Nlx1OTU1N1x1OTU1OFx1OTU1OVx1OTU1Ylx1OTU1ZVx1OTU1Zlx1OTU1ZFx1OTU2MVx1OTU2Mlx1OTU2NCIsOCwiXHU5NTZmXHU5NTcxXHU5NTcyXHU5NTczXHU5''@;'; + put 'put ''NTNhXHU3N2U3XHU3N2VjXHU5NmM5XHU3OWQ1XHU3OWVkXHU3OWUzXHU3OWViXHU3YTA2XHU1ZDQ3XHU3YTAzXHU3YTAyXHU3YTFlXHU3YTE0Il0sWyJmMDQwIiwiXHU5OTA4Iiw0LCJcdTk5MGVcdTk5MGZcdTk5MTEiLDI4LCJcdTk5MmYiLDI2XSxbImYwODAiLCJcdTk5NGEiLDksIlx1OTk1''@;'; + put 'put ''NiIsMTIsIlx1OTk2NFx1OTk2Nlx1OTk3M1x1OTk3OFx1OTk3OVx1OTk3Ylx1OTk3ZVx1OTk4Mlx1OTk4M1x1OTk4OVx1N2EzOVx1N2EzN1x1N2E1MVx1OWVjZlx1OTlhNVx1N2E3MFx1NzY4OFx1NzY4ZVx1NzY5M1x1NzY5OVx1NzZhNFx1NzRkZVx1NzRlMFx1NzUyY1x1OWUyMFx1OWUyMlx1''@;'; + put 'put ''OWUyOCIsNCwiXHU5ZTMyXHU5ZTMxXHU5ZTM2XHU5ZTM4XHU5ZTM3XHU5ZTM5XHU5ZTNhXHU5ZTNlXHU5ZTQxXHU5ZTQyXHU5ZTQ0XHU5ZTQ2XHU5ZTQ3XHU5ZTQ4XHU5ZTQ5XHU5ZTRiXHU5ZTRjXHU5ZTRlXHU5ZTUxXHU5ZTU1XHU5ZTU3XHU5ZTVhXHU5ZTViXHU5ZTVjXHU5ZTVlXHU5ZTYz''@;'; + put 'put ''XHU5ZTY2Iiw2LCJcdTllNzFcdTllNmRcdTllNzNcdTc1OTJcdTc1OTRcdTc1OTZcdTc1YTBcdTc1OWRcdTc1YWNcdTc1YTNcdTc1YjNcdTc1YjRcdTc1YjhcdTc1YzRcdTc1YjFcdTc1YjBcdTc1YzNcdTc1YzJcdTc1ZDZcdTc1Y2RcdTc1ZTNcdTc1ZThcdTc1ZTZcdTc1ZTRcdTc1ZWJcdTc1''@;'; + put 'put ''ZTdcdTc2MDNcdTc1ZjFcdTc1ZmNcdTc1ZmZcdTc2MTBcdTc2MDBcdTc2MDVcdTc2MGNcdTc2MTdcdTc2MGFcdTc2MjVcdTc2MThcdTc2MTVcdTc2MTkiXSxbImYxNDAiLCJcdTk5OGNcdTk5OGVcdTk5OWEiLDEwLCJcdTk5YTZcdTk5YTdcdTk5YTkiLDQ3XSxbImYxODAiLCJcdTk5ZDkiLDMy''@;'; + put 'put ''LCJcdTc2MWJcdTc2M2NcdTc2MjJcdTc2MjBcdTc2NDBcdTc2MmRcdTc2MzBcdTc2M2ZcdTc2MzVcdTc2NDNcdTc2M2VcdTc2MzNcdTc2NGRcdTc2NWVcdTc2NTRcdTc2NWNcdTc2NTZcdTc2NmJcdTc2NmZcdTdmY2FcdTdhZTZcdTdhNzhcdTdhNzlcdTdhODBcdTdhODZcdTdhODhcdTdhOTVc''@;'; + put 'put ''dTdhYTZcdTdhYTBcdTdhYWNcdTdhYThcdTdhYWRcdTdhYjNcdTg4NjRcdTg4NjlcdTg4NzJcdTg4N2RcdTg4N2ZcdTg4ODJcdTg4YTJcdTg4YzZcdTg4YjdcdTg4YmNcdTg4YzlcdTg4ZTJcdTg4Y2VcdTg4ZTNcdTg4ZTVcdTg4ZjFcdTg5MWFcdTg4ZmNcdTg4ZThcdTg4ZmVcdTg4ZjBcdTg5''@;'; + put 'put ''MjFcdTg5MTlcdTg5MTNcdTg5MWJcdTg5MGFcdTg5MzRcdTg5MmJcdTg5MzZcdTg5NDFcdTg5NjZcdTg5N2JcdTc1OGJcdTgwZTVcdTc2YjJcdTc2YjRcdTc3ZGNcdTgwMTJcdTgwMTRcdTgwMTZcdTgwMWNcdTgwMjBcdTgwMjJcdTgwMjVcdTgwMjZcdTgwMjdcdTgwMjlcdTgwMjhcdTgwMzFc''@;'; + put 'put ''dTgwMGJcdTgwMzVcdTgwNDNcdTgwNDZcdTgwNGRcdTgwNTJcdTgwNjlcdTgwNzFcdTg5ODNcdTk4NzhcdTk4ODBcdTk4ODMiXSxbImYyNDAiLCJcdTk5ZmEiLDYyXSxbImYyODAiLCJcdTlhMzkiLDMyLCJcdTk4ODlcdTk4OGNcdTk4OGRcdTk4OGZcdTk4OTRcdTk4OWFcdTk4OWJcdTk4OWVc''@;'; + put 'put ''dTk4OWZcdTk4YTFcdTk4YTJcdTk4YTVcdTk4YTZcdTg2NGRcdTg2NTRcdTg2NmNcdTg2NmVcdTg2N2ZcdTg2N2FcdTg2N2NcdTg2N2JcdTg2YThcdTg2OGRcdTg2OGJcdTg2YWNcdTg2OWRcdTg2YTdcdTg2YTNcdTg2YWFcdTg2OTNcdTg2YTlcdTg2YjZcdTg2YzRcdTg2YjVcdTg2Y2VcdTg2''@;'; + put 'put ''YjBcdTg2YmFcdTg2YjFcdTg2YWZcdTg2YzlcdTg2Y2ZcdTg2YjRcdTg2ZTlcdTg2ZjFcdTg2ZjJcdTg2ZWRcdTg2ZjNcdTg2ZDBcdTg3MTNcdTg2ZGVcdTg2ZjRcdTg2ZGZcdTg2ZDhcdTg2ZDFcdTg3MDNcdTg3MDdcdTg2ZjhcdTg3MDhcdTg3MGFcdTg3MGRcdTg3MDlcdTg3MjNcdTg3M2Jc''@;'; + put 'put ''dTg3MWVcdTg3MjVcdTg3MmVcdTg3MWFcdTg3M2VcdTg3NDhcdTg3MzRcdTg3MzFcdTg3MjlcdTg3MzdcdTg3M2ZcdTg3ODJcdTg3MjJcdTg3N2RcdTg3N2VcdTg3N2JcdTg3NjBcdTg3NzBcdTg3NGNcdTg3NmVcdTg3OGJcdTg3NTNcdTg3NjNcdTg3N2NcdTg3NjRcdTg3NTlcdTg3NjVcdTg3''@;'; + put 'put ''OTNcdTg3YWZcdTg3YThcdTg3ZDIiXSxbImYzNDAiLCJcdTlhNWEiLDE3LCJcdTlhNzJcdTlhODNcdTlhODlcdTlhOGRcdTlhOGVcdTlhOTRcdTlhOTVcdTlhOTlcdTlhYTZcdTlhYTkiLDYsIlx1OWFiMlx1OWFiM1x1OWFiNFx1OWFiNVx1OWFiOVx1OWFiYlx1OWFiZFx1OWFiZVx1OWFiZlx1''@;'; + put 'put ''OWFjM1x1OWFjNFx1OWFjNiIsNCwiXHU5YWNkXHU5YWNlXHU5YWNmXHU5YWQwXHU5YWQyXHU5YWQ0XHU5YWQ1XHU5YWQ2XHU5YWQ3XHU5YWQ5XHU5YWRhXHU5YWRiXHU5YWRjIl0sWyJmMzgwIiwiXHU5YWRkXHU5YWRlXHU5YWUwXHU5YWUyXHU5YWUzXHU5YWU0XHU5YWU1XHU5YWU3XHU5YWU4''@;'; + put 'put ''XHU5YWU5XHU5YWVhXHU5YWVjXHU5YWVlXHU5YWYwIiw4LCJcdTlhZmFcdTlhZmMiLDYsIlx1OWIwNFx1OWIwNVx1OWIwNlx1ODdjNlx1ODc4OFx1ODc4NVx1ODdhZFx1ODc5N1x1ODc4M1x1ODdhYlx1ODdlNVx1ODdhY1x1ODdiNVx1ODdiM1x1ODdjYlx1ODdkM1x1ODdiZFx1ODdkMVx1ODdj''@;'; + put 'put ''MFx1ODdjYVx1ODdkYlx1ODdlYVx1ODdlMFx1ODdlZVx1ODgxNlx1ODgxM1x1ODdmZVx1ODgwYVx1ODgxYlx1ODgyMVx1ODgzOVx1ODgzY1x1N2YzNlx1N2Y0Mlx1N2Y0NFx1N2Y0NVx1ODIxMFx1N2FmYVx1N2FmZFx1N2IwOFx1N2IwM1x1N2IwNFx1N2IxNVx1N2IwYVx1N2IyYlx1N2IwZlx1''@;'; + put 'put ''N2I0N1x1N2IzOFx1N2IyYVx1N2IxOVx1N2IyZVx1N2IzMVx1N2IyMFx1N2IyNVx1N2IyNFx1N2IzM1x1N2IzZVx1N2IxZVx1N2I1OFx1N2I1YVx1N2I0NVx1N2I3NVx1N2I0Y1x1N2I1ZFx1N2I2MFx1N2I2ZVx1N2I3Ylx1N2I2Mlx1N2I3Mlx1N2I3MVx1N2I5MFx1N2JhNlx1N2JhN1x1N2Ji''@;'; + put 'put ''OFx1N2JhY1x1N2I5ZFx1N2JhOFx1N2I4NVx1N2JhYVx1N2I5Y1x1N2JhMlx1N2JhYlx1N2JiNFx1N2JkMVx1N2JjMVx1N2JjY1x1N2JkZFx1N2JkYVx1N2JlNVx1N2JlNlx1N2JlYVx1N2MwY1x1N2JmZVx1N2JmY1x1N2MwZlx1N2MxNlx1N2MwYiJdLFsiZjQ0MCIsIlx1OWIwN1x1OWIwOSIs''@;'; + put 'put ''NSwiXHU5YjEwXHU5YjExXHU5YjEyXHU5YjE0IiwxMCwiXHU5YjIwXHU5YjIxXHU5YjIyXHU5YjI0IiwxMCwiXHU5YjMwXHU5YjMxXHU5YjMzIiw3LCJcdTliM2RcdTliM2VcdTliM2ZcdTliNDBcdTliNDZcdTliNGFcdTliNGJcdTliNGNcdTliNGVcdTliNTBcdTliNTJcdTliNTNcdTliNTUi''@;'; + put 'put ''LDVdLFsiZjQ4MCIsIlx1OWI1YiIsMzIsIlx1N2MxZlx1N2MyYVx1N2MyNlx1N2MzOFx1N2M0MVx1N2M0MFx1ODFmZVx1ODIwMVx1ODIwMlx1ODIwNFx1ODFlY1x1ODg0NFx1ODIyMVx1ODIyMlx1ODIyM1x1ODIyZFx1ODIyZlx1ODIyOFx1ODIyYlx1ODIzOFx1ODIzYlx1ODIzM1x1ODIzNFx1''@;'; + put 'put ''ODIzZVx1ODI0NFx1ODI0OVx1ODI0Ylx1ODI0Zlx1ODI1YVx1ODI1Zlx1ODI2OFx1ODg3ZVx1ODg4NVx1ODg4OFx1ODhkOFx1ODhkZlx1ODk1ZVx1N2Y5ZFx1N2Y5Zlx1N2ZhN1x1N2ZhZlx1N2ZiMFx1N2ZiMlx1N2M3Y1x1NjU0OVx1N2M5MVx1N2M5ZFx1N2M5Y1x1N2M5ZVx1N2NhMlx1N2Ni''@;'; + put 'put ''Mlx1N2NiY1x1N2NiZFx1N2NjMVx1N2NjN1x1N2NjY1x1N2NjZFx1N2NjOFx1N2NjNVx1N2NkN1x1N2NlOFx1ODI2ZVx1NjZhOFx1N2ZiZlx1N2ZjZVx1N2ZkNVx1N2ZlNVx1N2ZlMVx1N2ZlNlx1N2ZlOVx1N2ZlZVx1N2ZmM1x1N2NmOFx1N2Q3N1x1N2RhNlx1N2RhZVx1N2U0N1x1N2U5Ylx1''@;'; + put 'put ''OWViOFx1OWViNFx1OGQ3M1x1OGQ4NFx1OGQ5NFx1OGQ5MVx1OGRiMVx1OGQ2N1x1OGQ2ZFx1OGM0N1x1OGM0OVx1OTE0YVx1OTE1MFx1OTE0ZVx1OTE0Zlx1OTE2NCJdLFsiZjU0MCIsIlx1OWI3YyIsNjJdLFsiZjU4MCIsIlx1OWJiYiIsMzIsIlx1OTE2Mlx1OTE2MVx1OTE3MFx1OTE2OVx1''@;'; + put 'put ''OTE2Zlx1OTE3ZFx1OTE3ZVx1OTE3Mlx1OTE3NFx1OTE3OVx1OTE4Y1x1OTE4NVx1OTE5MFx1OTE4ZFx1OTE5MVx1OTFhMlx1OTFhM1x1OTFhYVx1OTFhZFx1OTFhZVx1OTFhZlx1OTFiNVx1OTFiNFx1OTFiYVx1OGM1NVx1OWU3ZVx1OGRiOFx1OGRlYlx1OGUwNVx1OGU1OVx1OGU2OVx1OGRi''@;'; + put 'put ''NVx1OGRiZlx1OGRiY1x1OGRiYVx1OGRjNFx1OGRkNlx1OGRkN1x1OGRkYVx1OGRkZVx1OGRjZVx1OGRjZlx1OGRkYlx1OGRjNlx1OGRlY1x1OGRmN1x1OGRmOFx1OGRlM1x1OGRmOVx1OGRmYlx1OGRlNFx1OGUwOVx1OGRmZFx1OGUxNFx1OGUxZFx1OGUxZlx1OGUyY1x1OGUyZVx1OGUyM1x1''@;'; + put 'put ''OGUyZlx1OGUzYVx1OGU0MFx1OGUzOVx1OGUzNVx1OGUzZFx1OGUzMVx1OGU0OVx1OGU0MVx1OGU0Mlx1OGU1MVx1OGU1Mlx1OGU0YVx1OGU3MFx1OGU3Nlx1OGU3Y1x1OGU2Zlx1OGU3NFx1OGU4NVx1OGU4Zlx1OGU5NFx1OGU5MFx1OGU5Y1x1OGU5ZVx1OGM3OFx1OGM4Mlx1OGM4YVx1OGM4''@;'; + put 'put ''NVx1OGM5OFx1OGM5NFx1NjU5Ylx1ODlkNlx1ODlkZVx1ODlkYVx1ODlkYyJdLFsiZjY0MCIsIlx1OWJkYyIsNjJdLFsiZjY4MCIsIlx1OWMxYiIsMzIsIlx1ODllNVx1ODllYlx1ODllZlx1OGEzZVx1OGIyNlx1OTc1M1x1OTZlOVx1OTZmM1x1OTZlZlx1OTcwNlx1OTcwMVx1OTcwOFx1OTcw''@;'; + put 'put ''Zlx1OTcwZVx1OTcyYVx1OTcyZFx1OTczMFx1OTczZVx1OWY4MFx1OWY4M1x1OWY4NSIsNSwiXHU5ZjhjXHU5ZWZlXHU5ZjBiXHU5ZjBkXHU5NmI5XHU5NmJjXHU5NmJkXHU5NmNlXHU5NmQyXHU3N2JmXHU5NmUwXHU5MjhlXHU5MmFlXHU5MmM4XHU5MzNlXHU5MzZhXHU5M2NhXHU5MzhmXHU5''@;'; + put 'put ''NDNlXHU5NDZiXHU5YzdmXHU5YzgyXHU5Yzg1XHU5Yzg2XHU5Yzg3XHU5Yzg4XHU3YTIzXHU5YzhiXHU5YzhlXHU5YzkwXHU5YzkxXHU5YzkyXHU5Yzk0XHU5Yzk1XHU5YzlhXHU5YzliXHU5YzllIiw1LCJcdTljYTUiLDQsIlx1OWNhYlx1OWNhZFx1OWNhZVx1OWNiMCIsNywiXHU5Y2JhXHU5''@;'; + put 'put ''Y2JiXHU5Y2JjXHU5Y2JkXHU5Y2M0XHU5Y2M1XHU5Y2M2XHU5Y2M3XHU5Y2NhXHU5Y2NiIl0sWyJmNzQwIiwiXHU5YzNjIiw2Ml0sWyJmNzgwIiwiXHU5YzdiXHU5YzdkXHU5YzdlXHU5YzgwXHU5YzgzXHU5Yzg0XHU5Yzg5XHU5YzhhXHU5YzhjXHU5YzhmXHU5YzkzXHU5Yzk2XHU5Yzk3XHU5''@;'; + put 'put ''Yzk4XHU5Yzk5XHU5YzlkXHU5Y2FhXHU5Y2FjXHU5Y2FmXHU5Y2I5XHU5Y2JlIiw0LCJcdTljYzhcdTljYzlcdTljZDFcdTljZDJcdTljZGFcdTljZGJcdTljZTBcdTljZTFcdTljY2MiLDQsIlx1OWNkM1x1OWNkNFx1OWNkNVx1OWNkN1x1OWNkOFx1OWNkOVx1OWNkY1x1OWNkZFx1OWNkZlx1''@;'; + put 'put ''OWNlMlx1OTc3Y1x1OTc4NVx1OTc5MVx1OTc5Mlx1OTc5NFx1OTdhZlx1OTdhYlx1OTdhM1x1OTdiMlx1OTdiNFx1OWFiMVx1OWFiMFx1OWFiN1x1OWU1OFx1OWFiNlx1OWFiYVx1OWFiY1x1OWFjMVx1OWFjMFx1OWFjNVx1OWFjMlx1OWFjYlx1OWFjY1x1OWFkMVx1OWI0NVx1OWI0M1x1OWI0''@;'; + put 'put ''N1x1OWI0OVx1OWI0OFx1OWI0ZFx1OWI1MVx1OThlOFx1OTkwZFx1OTkyZVx1OTk1NVx1OTk1NFx1OWFkZlx1OWFlMVx1OWFlNlx1OWFlZlx1OWFlYlx1OWFmYlx1OWFlZFx1OWFmOVx1OWIwOFx1OWIwZlx1OWIxM1x1OWIxZlx1OWIyM1x1OWViZFx1OWViZVx1N2UzYlx1OWU4Mlx1OWU4N1x1''@;'; + put 'put ''OWU4OFx1OWU4Ylx1OWU5Mlx1OTNkNlx1OWU5ZFx1OWU5Zlx1OWVkYlx1OWVkY1x1OWVkZFx1OWVlMFx1OWVkZlx1OWVlMlx1OWVlOVx1OWVlN1x1OWVlNVx1OWVlYVx1OWVlZlx1OWYyMlx1OWYyY1x1OWYyZlx1OWYzOVx1OWYzN1x1OWYzZFx1OWYzZVx1OWY0NCJdLFsiZjg0MCIsIlx1OWNl''@;'; + put 'put ''MyIsNjJdLFsiZjg4MCIsIlx1OWQyMiIsMzJdLFsiZjk0MCIsIlx1OWQ0MyIsNjJdLFsiZjk4MCIsIlx1OWQ4MiIsMzJdLFsiZmE0MCIsIlx1OWRhMyIsNjJdLFsiZmE4MCIsIlx1OWRlMiIsMzJdLFsiZmI0MCIsIlx1OWUwMyIsMjcsIlx1OWUyNFx1OWUyN1x1OWUyZVx1OWUzMFx1OWUzNFx1''@;'; + put 'put ''OWUzYlx1OWUzY1x1OWU0MFx1OWU0ZFx1OWU1MFx1OWU1Mlx1OWU1M1x1OWU1NFx1OWU1Nlx1OWU1OVx1OWU1ZFx1OWU1Zlx1OWU2MFx1OWU2MVx1OWU2Mlx1OWU2NVx1OWU2ZVx1OWU2Zlx1OWU3Mlx1OWU3NCIsOSwiXHU5ZTgwIl0sWyJmYjgwIiwiXHU5ZTgxXHU5ZTgzXHU5ZTg0XHU5ZTg1''@;'; + put 'put ''XHU5ZTg2XHU5ZTg5XHU5ZThhXHU5ZThjIiw1LCJcdTllOTQiLDgsIlx1OWU5ZVx1OWVhMCIsNSwiXHU5ZWE3XHU5ZWE4XHU5ZWE5XHU5ZWFhIl0sWyJmYzQwIiwiXHU5ZWFiIiw4LCJcdTllYjVcdTllYjZcdTllYjdcdTllYjlcdTllYmFcdTllYmNcdTllYmYiLDQsIlx1OWVjNVx1OWVjNlx1''@;'; + put 'put ''OWVjN1x1OWVjOFx1OWVjYVx1OWVjYlx1OWVjY1x1OWVkMFx1OWVkMlx1OWVkM1x1OWVkNVx1OWVkNlx1OWVkN1x1OWVkOVx1OWVkYVx1OWVkZVx1OWVlMVx1OWVlM1x1OWVlNFx1OWVlNlx1OWVlOFx1OWVlYlx1OWVlY1x1OWVlZFx1OWVlZVx1OWVmMCIsOCwiXHU5ZWZhXHU5ZWZkXHU5ZWZm''@;'; + put 'put ''Iiw2XSxbImZjODAiLCJcdTlmMDYiLDQsIlx1OWYwY1x1OWYwZlx1OWYxMVx1OWYxMlx1OWYxNFx1OWYxNVx1OWYxNlx1OWYxOFx1OWYxYSIsNSwiXHU5ZjIxXHU5ZjIzIiw4LCJcdTlmMmRcdTlmMmVcdTlmMzBcdTlmMzEiXSxbImZkNDAiLCJcdTlmMzIiLDQsIlx1OWYzOFx1OWYzYVx1OWYz''@;'; + put 'put ''Y1x1OWYzZiIsNCwiXHU5ZjQ1IiwxMCwiXHU5ZjUyIiwzOF0sWyJmZDgwIiwiXHU5Zjc5Iiw1LCJcdTlmODFcdTlmODJcdTlmOGQiLDExLCJcdTlmOWNcdTlmOWRcdTlmOWVcdTlmYTEiLDQsIlx1ZjkyY1x1Zjk3OVx1Zjk5NVx1ZjllN1x1ZjlmMSJdLFsiZmU0MCIsIlx1ZmEwY1x1ZmEwZFx1''@;'; + put 'put ''ZmEwZVx1ZmEwZlx1ZmExMVx1ZmExM1x1ZmExNFx1ZmExOFx1ZmExZlx1ZmEyMFx1ZmEyMVx1ZmEyM1x1ZmEyNFx1ZmEyN1x1ZmEyOFx1ZmEyOSJdXScpfSw3NzM0ODpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPUpTT04ucGFyc2UoJ1tbIjAiLCJcXHUwMDAwIiwxMjddLFsiODE0MSIs''@;'; + put 'put ''Ilx1YWMwMlx1YWMwM1x1YWMwNVx1YWMwNlx1YWMwYiIsNCwiXHVhYzE4XHVhYzFlXHVhYzFmXHVhYzIxXHVhYzIyXHVhYzIzXHVhYzI1Iiw2LCJcdWFjMmVcdWFjMzJcdWFjMzNcdWFjMzQiXSxbIjgxNjEiLCJcdWFjMzVcdWFjMzZcdWFjMzdcdWFjM2FcdWFjM2JcdWFjM2RcdWFjM2VcdWFj''@;'; + put 'put ''M2ZcdWFjNDEiLDksIlx1YWM0Y1x1YWM0ZSIsNSwiXHVhYzU1Il0sWyI4MTgxIiwiXHVhYzU2XHVhYzU3XHVhYzU5XHVhYzVhXHVhYzViXHVhYzVkIiwxOCwiXHVhYzcyXHVhYzczXHVhYzc1XHVhYzc2XHVhYzc5XHVhYzdiIiw0LCJcdWFjODJcdWFjODdcdWFjODhcdWFjOGRcdWFjOGVcdWFj''@;'; + put 'put ''OGZcdWFjOTFcdWFjOTJcdWFjOTNcdWFjOTUiLDYsIlx1YWM5ZVx1YWNhMiIsNSwiXHVhY2FiXHVhY2FkXHVhY2FlXHVhY2IxIiw2LCJcdWFjYmFcdWFjYmVcdWFjYmZcdWFjYzBcdWFjYzJcdWFjYzNcdWFjYzVcdWFjYzZcdWFjYzdcdWFjYzlcdWFjY2FcdWFjY2JcdWFjY2QiLDcsIlx1YWNk''@;'; + put 'put ''Nlx1YWNkOCIsNywiXHVhY2UyXHVhY2UzXHVhY2U1XHVhY2U2XHVhY2U5XHVhY2ViXHVhY2VkXHVhY2VlXHVhY2YyXHVhY2Y0XHVhY2Y3Iiw0LCJcdWFjZmVcdWFjZmZcdWFkMDFcdWFkMDJcdWFkMDNcdWFkMDVcdWFkMDciLDQsIlx1YWQwZVx1YWQxMFx1YWQxMlx1YWQxMyJdLFsiODI0MSIs''@;'; + put 'put ''Ilx1YWQxNFx1YWQxNVx1YWQxNlx1YWQxN1x1YWQxOVx1YWQxYVx1YWQxYlx1YWQxZFx1YWQxZVx1YWQxZlx1YWQyMSIsNywiXHVhZDJhXHVhZDJiXHVhZDJlIiw1XSxbIjgyNjEiLCJcdWFkMzZcdWFkMzdcdWFkMzlcdWFkM2FcdWFkM2JcdWFkM2QiLDYsIlx1YWQ0Nlx1YWQ0OFx1YWQ0YSIs''@;'; + put 'put ''NSwiXHVhZDUxXHVhZDUyXHVhZDUzXHVhZDU1XHVhZDU2XHVhZDU3Il0sWyI4MjgxIiwiXHVhZDU5Iiw3LCJcdWFkNjJcdWFkNjQiLDcsIlx1YWQ2ZVx1YWQ2Zlx1YWQ3MVx1YWQ3Mlx1YWQ3N1x1YWQ3OFx1YWQ3OVx1YWQ3YVx1YWQ3ZVx1YWQ4MFx1YWQ4MyIsNCwiXHVhZDhhXHVhZDhiXHVh''@;'; + put 'put ''ZDhkXHVhZDhlXHVhZDhmXHVhZDkxIiwxMCwiXHVhZDllIiw1LCJcdWFkYTUiLDE3LCJcdWFkYjgiLDcsIlx1YWRjMlx1YWRjM1x1YWRjNVx1YWRjNlx1YWRjN1x1YWRjOSIsNiwiXHVhZGQyXHVhZGQ0Iiw3LCJcdWFkZGRcdWFkZGVcdWFkZGZcdWFkZTFcdWFkZTJcdWFkZTNcdWFkZTUiLDE4''@;'; + put 'put ''XSxbIjgzNDEiLCJcdWFkZmFcdWFkZmJcdWFkZmRcdWFkZmVcdWFlMDIiLDUsIlx1YWUwYVx1YWUwY1x1YWUwZSIsNSwiXHVhZTE1Iiw3XSxbIjgzNjEiLCJcdWFlMWQiLDE4LCJcdWFlMzJcdWFlMzNcdWFlMzVcdWFlMzZcdWFlMzlcdWFlM2JcdWFlM2MiXSxbIjgzODEiLCJcdWFlM2RcdWFl''@;'; + put 'put ''M2VcdWFlM2ZcdWFlNDJcdWFlNDRcdWFlNDdcdWFlNDhcdWFlNDlcdWFlNGJcdWFlNGZcdWFlNTFcdWFlNTJcdWFlNTNcdWFlNTVcdWFlNTciLDQsIlx1YWU1ZVx1YWU2Mlx1YWU2M1x1YWU2NFx1YWU2Nlx1YWU2N1x1YWU2YVx1YWU2Ylx1YWU2ZFx1YWU2ZVx1YWU2Zlx1YWU3MSIsNiwiXHVh''@;'; + put 'put ''ZTdhXHVhZTdlIiw1LCJcdWFlODYiLDUsIlx1YWU4ZCIsNDYsIlx1YWViZlx1YWVjMVx1YWVjMlx1YWVjM1x1YWVjNSIsNiwiXHVhZWNlXHVhZWQyIiw1LCJcdWFlZGFcdWFlZGJcdWFlZGQiLDhdLFsiODQ0MSIsIlx1YWVlNlx1YWVlN1x1YWVlOVx1YWVlYVx1YWVlY1x1YWVlZSIsNSwiXHVh''@;'; + put 'put ''ZWY1XHVhZWY2XHVhZWY3XHVhZWY5XHVhZWZhXHVhZWZiXHVhZWZkIiw4XSxbIjg0NjEiLCJcdWFmMDZcdWFmMDlcdWFmMGFcdWFmMGJcdWFmMGNcdWFmMGVcdWFmMGZcdWFmMTEiLDE4XSxbIjg0ODEiLCJcdWFmMjQiLDcsIlx1YWYyZVx1YWYyZlx1YWYzMVx1YWYzM1x1YWYzNSIsNiwiXHVh''@;'; + put 'put ''ZjNlXHVhZjQwXHVhZjQ0XHVhZjQ1XHVhZjQ2XHVhZjQ3XHVhZjRhIiw1LCJcdWFmNTEiLDEwLCJcdWFmNWUiLDUsIlx1YWY2NiIsMTgsIlx1YWY3YSIsNSwiXHVhZjgxXHVhZjgyXHVhZjgzXHVhZjg1XHVhZjg2XHVhZjg3XHVhZjg5Iiw2LCJcdWFmOTJcdWFmOTNcdWFmOTRcdWFmOTYiLDUs''@;'; + put 'put ''Ilx1YWY5ZCIsMjYsIlx1YWZiYVx1YWZiYlx1YWZiZFx1YWZiZSJdLFsiODU0MSIsIlx1YWZiZlx1YWZjMSIsNSwiXHVhZmNhXHVhZmNjXHVhZmNmIiw0LCJcdWFmZDUiLDYsIlx1YWZkZCIsNF0sWyI4NTYxIiwiXHVhZmUyIiw1LCJcdWFmZWEiLDUsIlx1YWZmMlx1YWZmM1x1YWZmNVx1YWZm''@;'; + put 'put ''Nlx1YWZmN1x1YWZmOSIsNiwiXHViMDAyXHViMDAzIl0sWyI4NTgxIiwiXHViMDA1Iiw2LCJcdWIwMGRcdWIwMGVcdWIwMGZcdWIwMTFcdWIwMTJcdWIwMTNcdWIwMTUiLDYsIlx1YjAxZSIsOSwiXHViMDI5IiwyNiwiXHViMDQ2XHViMDQ3XHViMDQ5XHViMDRiXHViMDRkXHViMDRmXHViMDUw''@;'; + put 'put ''XHViMDUxXHViMDUyXHViMDU2XHViMDU4XHViMDVhXHViMDViXHViMDVjXHViMDVlIiwyOSwiXHViMDdlXHViMDdmXHViMDgxXHViMDgyXHViMDgzXHViMDg1Iiw2LCJcdWIwOGVcdWIwOTBcdWIwOTIiLDUsIlx1YjA5Ylx1YjA5ZFx1YjA5ZVx1YjBhM1x1YjBhNCJdLFsiODY0MSIsIlx1YjBh''@;'; + put 'put ''NVx1YjBhNlx1YjBhN1x1YjBhYVx1YjBiMFx1YjBiMlx1YjBiNlx1YjBiN1x1YjBiOVx1YjBiYVx1YjBiYlx1YjBiZCIsNiwiXHViMGM2XHViMGNhIiw1LCJcdWIwZDIiXSxbIjg2NjEiLCJcdWIwZDNcdWIwZDVcdWIwZDZcdWIwZDdcdWIwZDkiLDYsIlx1YjBlMVx1YjBlMlx1YjBlM1x1YjBl''@;'; + put 'put ''NFx1YjBlNiIsMTBdLFsiODY4MSIsIlx1YjBmMSIsMjIsIlx1YjEwYVx1YjEwZFx1YjEwZVx1YjEwZlx1YjExMVx1YjExNFx1YjExNVx1YjExNlx1YjExN1x1YjExYVx1YjExZSIsNCwiXHViMTI2XHViMTI3XHViMTI5XHViMTJhXHViMTJiXHViMTJkIiw2LCJcdWIxMzZcdWIxM2EiLDUsIlx1''@;'; + put 'put ''YjE0Mlx1YjE0M1x1YjE0NVx1YjE0Nlx1YjE0N1x1YjE0OSIsNiwiXHViMTUyXHViMTUzXHViMTU2XHViMTU3XHViMTU5XHViMTVhXHViMTViXHViMTVkXHViMTVlXHViMTVmXHViMTYxIiwyMiwiXHViMTdhXHViMTdiXHViMTdkXHViMTdlXHViMTdmXHViMTgxXHViMTgzIiw0LCJcdWIxOGFc''@;'; + put 'put ''dWIxOGNcdWIxOGVcdWIxOGZcdWIxOTBcdWIxOTFcdWIxOTVcdWIxOTZcdWIxOTdcdWIxOTlcdWIxOWFcdWIxOWJcdWIxOWQiXSxbIjg3NDEiLCJcdWIxOWUiLDksIlx1YjFhOSIsMTVdLFsiODc2MSIsIlx1YjFiOSIsMTgsIlx1YjFjZFx1YjFjZVx1YjFjZlx1YjFkMVx1YjFkMlx1YjFkM1x1''@;'; + put 'put ''YjFkNSJdLFsiODc4MSIsIlx1YjFkNiIsNSwiXHViMWRlXHViMWUwIiw3LCJcdWIxZWFcdWIxZWJcdWIxZWRcdWIxZWVcdWIxZWZcdWIxZjEiLDcsIlx1YjFmYVx1YjFmY1x1YjFmZSIsNSwiXHViMjA2XHViMjA3XHViMjA5XHViMjBhXHViMjBkIiw2LCJcdWIyMTZcdWIyMThcdWIyMWEiLDUs''@;'; + put 'put ''Ilx1YjIyMSIsMTgsIlx1YjIzNSIsNiwiXHViMjNkIiwyNiwiXHViMjU5XHViMjVhXHViMjViXHViMjVkXHViMjVlXHViMjVmXHViMjYxIiw2LCJcdWIyNmEiLDRdLFsiODg0MSIsIlx1YjI2ZiIsNCwiXHViMjc2Iiw1LCJcdWIyN2QiLDYsIlx1YjI4Nlx1YjI4N1x1YjI4OFx1YjI4YSIsNF0s''@;'; + put 'put ''WyI4ODYxIiwiXHViMjhmXHViMjkyXHViMjkzXHViMjk1XHViMjk2XHViMjk3XHViMjliIiw0LCJcdWIyYTJcdWIyYTRcdWIyYTdcdWIyYThcdWIyYTlcdWIyYWJcdWIyYWRcdWIyYWVcdWIyYWZcdWIyYjFcdWIyYjJcdWIyYjNcdWIyYjVcdWIyYjZcdWIyYjciXSxbIjg4ODEiLCJcdWIyYjgi''@;'; + put 'put ''LDE1LCJcdWIyY2FcdWIyY2JcdWIyY2RcdWIyY2VcdWIyY2ZcdWIyZDFcdWIyZDMiLDQsIlx1YjJkYVx1YjJkY1x1YjJkZVx1YjJkZlx1YjJlMFx1YjJlMVx1YjJlM1x1YjJlN1x1YjJlOVx1YjJlYVx1YjJmMFx1YjJmMVx1YjJmMlx1YjJmNlx1YjJmY1x1YjJmZFx1YjJmZVx1YjMwMlx1YjMw''@;'; + put 'put ''M1x1YjMwNVx1YjMwNlx1YjMwN1x1YjMwOSIsNiwiXHViMzEyXHViMzE2Iiw1LCJcdWIzMWQiLDU0LCJcdWIzNTdcdWIzNTlcdWIzNWFcdWIzNWRcdWIzNjBcdWIzNjFcdWIzNjJcdWIzNjMiXSxbIjg5NDEiLCJcdWIzNjZcdWIzNjhcdWIzNmFcdWIzNmNcdWIzNmRcdWIzNmZcdWIzNzJcdWIz''@;'; + put 'put ''NzNcdWIzNzVcdWIzNzZcdWIzNzdcdWIzNzkiLDYsIlx1YjM4Mlx1YjM4NiIsNSwiXHViMzhkIl0sWyI4OTYxIiwiXHViMzhlXHViMzhmXHViMzkxXHViMzkyXHViMzkzXHViMzk1IiwxMCwiXHViM2EyIiw1LCJcdWIzYTlcdWIzYWFcdWIzYWJcdWIzYWQiXSxbIjg5ODEiLCJcdWIzYWUiLDIx''@;'; + put 'put ''LCJcdWIzYzZcdWIzYzdcdWIzYzlcdWIzY2FcdWIzY2RcdWIzY2ZcdWIzZDFcdWIzZDJcdWIzZDNcdWIzZDZcdWIzZDhcdWIzZGFcdWIzZGNcdWIzZGVcdWIzZGZcdWIzZTFcdWIzZTJcdWIzZTNcdWIzZTVcdWIzZTZcdWIzZTdcdWIzZTkiLDE4LCJcdWIzZmQiLDE4LCJcdWI0MTEiLDYsIlx1''@;'; + put 'put ''YjQxOVx1YjQxYVx1YjQxYlx1YjQxZFx1YjQxZVx1YjQxZlx1YjQyMSIsNiwiXHViNDJhXHViNDJjIiw3LCJcdWI0MzUiLDE1XSxbIjhhNDEiLCJcdWI0NDUiLDEwLCJcdWI0NTJcdWI0NTNcdWI0NTVcdWI0NTZcdWI0NTdcdWI0NTkiLDYsIlx1YjQ2Mlx1YjQ2NFx1YjQ2NiJdLFsiOGE2MSIs''@;'; + put 'put ''Ilx1YjQ2NyIsNCwiXHViNDZkIiwxOCwiXHViNDgxXHViNDgyIl0sWyI4YTgxIiwiXHViNDgzIiw0LCJcdWI0ODkiLDE5LCJcdWI0OWUiLDUsIlx1YjRhNVx1YjRhNlx1YjRhN1x1YjRhOVx1YjRhYVx1YjRhYlx1YjRhZCIsNywiXHViNGI2XHViNGI4XHViNGJhIiw1LCJcdWI0YzFcdWI0YzJc''@;'; + put 'put ''dWI0YzNcdWI0YzVcdWI0YzZcdWI0YzdcdWI0YzkiLDYsIlx1YjRkMVx1YjRkMlx1YjRkM1x1YjRkNFx1YjRkNiIsNSwiXHViNGRlXHViNGRmXHViNGUxXHViNGUyXHViNGU1XHViNGU3Iiw0LCJcdWI0ZWVcdWI0ZjBcdWI0ZjIiLDUsIlx1YjRmOSIsMjYsIlx1YjUxNlx1YjUxN1x1YjUxOVx1''@;'; + put 'put ''YjUxYVx1YjUxZCJdLFsiOGI0MSIsIlx1YjUxZSIsNSwiXHViNTI2XHViNTJiIiw0LCJcdWI1MzJcdWI1MzNcdWI1MzVcdWI1MzZcdWI1MzdcdWI1MzkiLDYsIlx1YjU0Mlx1YjU0NiJdLFsiOGI2MSIsIlx1YjU0N1x1YjU0OFx1YjU0OVx1YjU0YVx1YjU0ZVx1YjU0Zlx1YjU1MVx1YjU1Mlx1''@;'; + put 'put ''YjU1M1x1YjU1NSIsNiwiXHViNTVlXHViNTYyIiw4XSxbIjhiODEiLCJcdWI1NmIiLDUyLCJcdWI1YTJcdWI1YTNcdWI1YTVcdWI1YTZcdWI1YTdcdWI1YTlcdWI1YWNcdWI1YWRcdWI1YWVcdWI1YWZcdWI1YjJcdWI1YjYiLDQsIlx1YjViZVx1YjViZlx1YjVjMVx1YjVjMlx1YjVjM1x1YjVj''@;'; + put 'put ''NSIsNiwiXHViNWNlXHViNWQyIiw1LCJcdWI1ZDkiLDE4LCJcdWI1ZWQiLDE4XSxbIjhjNDEiLCJcdWI2MDAiLDE1LCJcdWI2MTJcdWI2MTNcdWI2MTVcdWI2MTZcdWI2MTdcdWI2MTkiLDRdLFsiOGM2MSIsIlx1YjYxZSIsNiwiXHViNjI2Iiw1LCJcdWI2MmQiLDYsIlx1YjYzNSIsNV0sWyI4''@;'; + put 'put ''YzgxIiwiXHViNjNiIiwxMiwiXHViNjQ5IiwyNiwiXHViNjY1XHViNjY2XHViNjY3XHViNjY5Iiw1MCwiXHViNjllXHViNjlmXHViNmExXHViNmEyXHViNmEzXHViNmE1Iiw1LCJcdWI2YWRcdWI2YWVcdWI2YWZcdWI2YjBcdWI2YjIiLDE2XSxbIjhkNDEiLCJcdWI2YzMiLDE2LCJcdWI2ZDUi''@;'; + put 'put ''LDhdLFsiOGQ2MSIsIlx1YjZkZSIsMTcsIlx1YjZmMVx1YjZmMlx1YjZmM1x1YjZmNVx1YjZmNlx1YjZmN1x1YjZmOVx1YjZmYSJdLFsiOGQ4MSIsIlx1YjZmYiIsNCwiXHViNzAyXHViNzAzXHViNzA0XHViNzA2IiwzMywiXHViNzJhXHViNzJiXHViNzJkXHViNzJlXHViNzMxIiw2LCJcdWI3''@;'; + put 'put ''M2FcdWI3M2MiLDcsIlx1Yjc0NVx1Yjc0Nlx1Yjc0N1x1Yjc0OVx1Yjc0YVx1Yjc0Ylx1Yjc0ZCIsNiwiXHViNzU2Iiw5LCJcdWI3NjFcdWI3NjJcdWI3NjNcdWI3NjVcdWI3NjZcdWI3NjdcdWI3NjkiLDYsIlx1Yjc3Mlx1Yjc3NFx1Yjc3NiIsNSwiXHViNzdlXHViNzdmXHViNzgxXHViNzgy''@;'; + put 'put ''XHViNzgzXHViNzg1Iiw2LCJcdWI3OGVcdWI3OTNcdWI3OTRcdWI3OTVcdWI3OWFcdWI3OWJcdWI3OWRcdWI3OWUiXSxbIjhlNDEiLCJcdWI3OWZcdWI3YTEiLDYsIlx1YjdhYVx1YjdhZSIsNSwiXHViN2I2XHViN2I3XHViN2I5Iiw4XSxbIjhlNjEiLCJcdWI3YzIiLDQsIlx1YjdjOFx1Yjdj''@;'; + put 'put ''YSIsMTldLFsiOGU4MSIsIlx1YjdkZSIsMTMsIlx1YjdlZVx1YjdlZlx1YjdmMVx1YjdmMlx1YjdmM1x1YjdmNSIsNiwiXHViN2ZlXHViODAyIiw0LCJcdWI4MGFcdWI4MGJcdWI4MGRcdWI4MGVcdWI4MGZcdWI4MTEiLDYsIlx1YjgxYVx1YjgxY1x1YjgxZSIsNSwiXHViODI2XHViODI3XHVi''@;'; + put 'put ''ODI5XHViODJhXHViODJiXHViODJkIiw2LCJcdWI4MzZcdWI4M2EiLDUsIlx1Yjg0MVx1Yjg0Mlx1Yjg0M1x1Yjg0NSIsMTEsIlx1Yjg1Mlx1Yjg1NCIsNywiXHViODVlXHViODVmXHViODYxXHViODYyXHViODYzXHViODY1Iiw2LCJcdWI4NmVcdWI4NzBcdWI4NzIiLDUsIlx1Yjg3OVx1Yjg3''@;'; + put 'put ''YVx1Yjg3Ylx1Yjg3ZCIsN10sWyI4ZjQxIiwiXHViODg1Iiw3LCJcdWI4OGUiLDE3XSxbIjhmNjEiLCJcdWI4YTAiLDcsIlx1YjhhOSIsNiwiXHViOGIxXHViOGIyXHViOGIzXHViOGI1XHViOGI2XHViOGI3XHViOGI5Iiw0XSxbIjhmODEiLCJcdWI4YmVcdWI4YmZcdWI4YzJcdWI4YzRcdWI4''@;'; + put 'put ''YzYiLDUsIlx1YjhjZFx1YjhjZVx1YjhjZlx1YjhkMVx1YjhkMlx1YjhkM1x1YjhkNSIsNywiXHViOGRlXHViOGUwXHViOGUyIiw1LCJcdWI4ZWFcdWI4ZWJcdWI4ZWRcdWI4ZWVcdWI4ZWZcdWI4ZjEiLDYsIlx1YjhmYVx1YjhmY1x1YjhmZSIsNSwiXHViOTA1IiwxOCwiXHViOTE5Iiw2LCJc''@;'; + put 'put ''dWI5MjEiLDI2LCJcdWI5M2VcdWI5M2ZcdWI5NDFcdWI5NDJcdWI5NDNcdWI5NDUiLDYsIlx1Yjk0ZFx1Yjk0ZVx1Yjk1MFx1Yjk1MiIsNV0sWyI5MDQxIiwiXHViOTVhXHViOTViXHViOTVkXHViOTVlXHViOTVmXHViOTYxIiw2LCJcdWI5NmFcdWI5NmNcdWI5NmUiLDUsIlx1Yjk3Nlx1Yjk3''@;'; + put 'put ''N1x1Yjk3OVx1Yjk3YVx1Yjk3Ylx1Yjk3ZCJdLFsiOTA2MSIsIlx1Yjk3ZSIsNSwiXHViOTg2XHViOTg4XHViOThiXHViOThjXHViOThmIiwxNV0sWyI5MDgxIiwiXHViOTlmIiwxMiwiXHViOWFlXHViOWFmXHViOWIxXHViOWIyXHViOWIzXHViOWI1Iiw2LCJcdWI5YmVcdWI5YzBcdWI5YzIi''@;'; + put 'put ''LDUsIlx1YjljYVx1YjljYlx1YjljZFx1YjlkMyIsNCwiXHViOWRhXHViOWRjXHViOWRmXHViOWUwXHViOWUyXHViOWU2XHViOWU3XHViOWU5XHViOWVhXHViOWViXHViOWVkIiw2LCJcdWI5ZjZcdWI5ZmIiLDQsIlx1YmEwMiIsNSwiXHViYTA5IiwxMSwiXHViYTE2IiwzMywiXHViYTNhXHVi''@;'; + put 'put ''YTNiXHViYTNkXHViYTNlXHViYTNmXHViYTQxXHViYTQzXHViYTQ0XHViYTQ1XHViYTQ2Il0sWyI5MTQxIiwiXHViYTQ3XHViYTRhXHViYTRjXHViYTRmXHViYTUwXHViYTUxXHViYTUyXHViYTU2XHViYTU3XHViYTU5XHViYTVhXHViYTViXHViYTVkIiw2LCJcdWJhNjZcdWJhNmEiLDVdLFsi''@;'; + put 'put ''OTE2MSIsIlx1YmE3Mlx1YmE3M1x1YmE3NVx1YmE3Nlx1YmE3N1x1YmE3OSIsOSwiXHViYTg2XHViYTg4XHViYTg5XHViYThhXHViYThiXHViYThkIiw1XSxbIjkxODEiLCJcdWJhOTMiLDIwLCJcdWJhYWFcdWJhYWRcdWJhYWVcdWJhYWZcdWJhYjFcdWJhYjMiLDQsIlx1YmFiYVx1YmFiY1x1''@;'; + put 'put ''YmFiZSIsNSwiXHViYWM1XHViYWM2XHViYWM3XHViYWM5IiwxNCwiXHViYWRhIiwzMywiXHViYWZkXHViYWZlXHViYWZmXHViYjAxXHViYjAyXHViYjAzXHViYjA1Iiw3LCJcdWJiMGVcdWJiMTBcdWJiMTIiLDUsIlx1YmIxOVx1YmIxYVx1YmIxYlx1YmIxZFx1YmIxZVx1YmIxZlx1YmIyMSIs''@;'; + put 'put ''Nl0sWyI5MjQxIiwiXHViYjI4XHViYjJhXHViYjJjIiw3LCJcdWJiMzdcdWJiMzlcdWJiM2FcdWJiM2YiLDQsIlx1YmI0Nlx1YmI0OFx1YmI0YVx1YmI0Ylx1YmI0Y1x1YmI0ZVx1YmI1MVx1YmI1MiJdLFsiOTI2MSIsIlx1YmI1M1x1YmI1NVx1YmI1Nlx1YmI1N1x1YmI1OSIsNywiXHViYjYy''@;'; + put 'put ''XHViYjY0Iiw3LCJcdWJiNmQiLDRdLFsiOTI4MSIsIlx1YmI3MiIsMjEsIlx1YmI4OVx1YmI4YVx1YmI4Ylx1YmI4ZFx1YmI4ZVx1YmI4Zlx1YmI5MSIsMTgsIlx1YmJhNVx1YmJhNlx1YmJhN1x1YmJhOVx1YmJhYVx1YmJhYlx1YmJhZCIsNiwiXHViYmI1XHViYmI2XHViYmI4Iiw3LCJcdWJi''@;'; + put 'put ''YzFcdWJiYzJcdWJiYzNcdWJiYzVcdWJiYzZcdWJiYzdcdWJiYzkiLDYsIlx1YmJkMVx1YmJkMlx1YmJkNCIsMzUsIlx1YmJmYVx1YmJmYlx1YmJmZFx1YmJmZVx1YmMwMSJdLFsiOTM0MSIsIlx1YmMwMyIsNCwiXHViYzBhXHViYzBlXHViYzEwXHViYzEyXHViYzEzXHViYzE5XHViYzFhXHVi''@;'; + put 'put ''YzIwXHViYzIxXHViYzIyXHViYzIzXHViYzI2XHViYzI4XHViYzJhXHViYzJiXHViYzJjXHViYzJlXHViYzJmXHViYzMyXHViYzMzXHViYzM1Il0sWyI5MzYxIiwiXHViYzM2XHViYzM3XHViYzM5Iiw2LCJcdWJjNDJcdWJjNDZcdWJjNDdcdWJjNDhcdWJjNGFcdWJjNGJcdWJjNGVcdWJjNGZc''@;'; + put 'put ''dWJjNTEiLDhdLFsiOTM4MSIsIlx1YmM1YVx1YmM1Ylx1YmM1Y1x1YmM1ZSIsMzcsIlx1YmM4Nlx1YmM4N1x1YmM4OVx1YmM4YVx1YmM4ZFx1YmM4ZiIsNCwiXHViYzk2XHViYzk4XHViYzliIiw0LCJcdWJjYTJcdWJjYTNcdWJjYTVcdWJjYTZcdWJjYTkiLDYsIlx1YmNiMlx1YmNiNiIsNSwi''@;'; + put 'put ''XHViY2JlXHViY2JmXHViY2MxXHViY2MyXHViY2MzXHViY2M1Iiw3LCJcdWJjY2VcdWJjZDJcdWJjZDNcdWJjZDRcdWJjZDZcdWJjZDdcdWJjZDlcdWJjZGFcdWJjZGJcdWJjZGQiLDIyLCJcdWJjZjdcdWJjZjlcdWJjZmFcdWJjZmJcdWJjZmQiXSxbIjk0NDEiLCJcdWJjZmUiLDUsIlx1YmQw''@;'; + put 'put ''Nlx1YmQwOFx1YmQwYSIsNSwiXHViZDExXHViZDEyXHViZDEzXHViZDE1Iiw4XSxbIjk0NjEiLCJcdWJkMWUiLDUsIlx1YmQyNSIsNiwiXHViZDJkIiwxMl0sWyI5NDgxIiwiXHViZDNhIiw1LCJcdWJkNDEiLDYsIlx1YmQ0YVx1YmQ0Ylx1YmQ0ZFx1YmQ0ZVx1YmQ0Zlx1YmQ1MSIsNiwiXHVi''@;'; + put 'put ''ZDVhIiw5LCJcdWJkNjVcdWJkNjZcdWJkNjdcdWJkNjkiLDIyLCJcdWJkODJcdWJkODNcdWJkODVcdWJkODZcdWJkOGIiLDQsIlx1YmQ5Mlx1YmQ5NFx1YmQ5Nlx1YmQ5N1x1YmQ5OFx1YmQ5Ylx1YmQ5ZCIsNiwiXHViZGE1IiwxMCwiXHViZGIxIiw2LCJcdWJkYjkiLDI0XSxbIjk1NDEiLCJc''@;'; + put 'put ''dWJkZDJcdWJkZDNcdWJkZDZcdWJkZDdcdWJkZDlcdWJkZGFcdWJkZGJcdWJkZGQiLDExLCJcdWJkZWEiLDUsIlx1YmRmMSJdLFsiOTU2MSIsIlx1YmRmMlx1YmRmM1x1YmRmNVx1YmRmNlx1YmRmN1x1YmRmOSIsNiwiXHViZTAxXHViZTAyXHViZTA0XHViZTA2Iiw1LCJcdWJlMGVcdWJlMGZc''@;'; + put 'put ''dWJlMTFcdWJlMTJcdWJlMTMiXSxbIjk1ODEiLCJcdWJlMTUiLDYsIlx1YmUxZVx1YmUyMCIsMzUsIlx1YmU0Nlx1YmU0N1x1YmU0OVx1YmU0YVx1YmU0Ylx1YmU0ZFx1YmU0ZiIsNCwiXHViZTU2XHViZTU4XHViZTVjXHViZTVkXHViZTVlXHViZTVmXHViZTYyXHViZTYzXHViZTY1XHViZTY2''@;'; + put 'put ''XHViZTY3XHViZTY5XHViZTZiIiw0LCJcdWJlNzJcdWJlNzYiLDQsIlx1YmU3ZVx1YmU3Zlx1YmU4MVx1YmU4Mlx1YmU4M1x1YmU4NSIsNiwiXHViZThlXHViZTkyIiw1LCJcdWJlOWEiLDEzLCJcdWJlYTkiLDE0XSxbIjk2NDEiLCJcdWJlYjgiLDIzLCJcdWJlZDJcdWJlZDMiXSxbIjk2NjEi''@;'; + put 'put ''LCJcdWJlZDVcdWJlZDZcdWJlZDkiLDYsIlx1YmVlMVx1YmVlMlx1YmVlNiIsNSwiXHViZWVkIiw4XSxbIjk2ODEiLCJcdWJlZjYiLDEwLCJcdWJmMDIiLDUsIlx1YmYwYSIsMTMsIlx1YmYxYVx1YmYxZSIsMzMsIlx1YmY0Mlx1YmY0M1x1YmY0NVx1YmY0Nlx1YmY0N1x1YmY0OSIsNiwiXHVi''@;'; + put 'put ''ZjUyXHViZjUzXHViZjU0XHViZjU2Iiw0NF0sWyI5NzQxIiwiXHViZjgzIiwxNiwiXHViZjk1Iiw4XSxbIjk3NjEiLCJcdWJmOWUiLDE3LCJcdWJmYjEiLDddLFsiOTc4MSIsIlx1YmZiOSIsMTEsIlx1YmZjNiIsNSwiXHViZmNlXHViZmNmXHViZmQxXHViZmQyXHViZmQzXHViZmQ1Iiw2LCJc''@;'; + put 'put ''dWJmZGRcdWJmZGVcdWJmZTBcdWJmZTIiLDg5LCJcdWMwM2RcdWMwM2VcdWMwM2YiXSxbIjk4NDEiLCJcdWMwNDAiLDE2LCJcdWMwNTIiLDUsIlx1YzA1OVx1YzA1YVx1YzA1YiJdLFsiOTg2MSIsIlx1YzA1ZFx1YzA1ZVx1YzA1Zlx1YzA2MSIsNiwiXHVjMDZhIiwxNV0sWyI5ODgxIiwiXHVj''@;'; + put 'put ''MDdhIiwyMSwiXHVjMDkyXHVjMDkzXHVjMDk1XHVjMDk2XHVjMDk3XHVjMDk5Iiw2LCJcdWMwYTJcdWMwYTRcdWMwYTYiLDUsIlx1YzBhZVx1YzBiMVx1YzBiMlx1YzBiNyIsNCwiXHVjMGJlXHVjMGMyXHVjMGMzXHVjMGM0XHVjMGM2XHVjMGM3XHVjMGNhXHVjMGNiXHVjMGNkXHVjMGNlXHVj''@;'; + put 'put ''MGNmXHVjMGQxIiw2LCJcdWMwZGFcdWMwZGUiLDUsIlx1YzBlNlx1YzBlN1x1YzBlOVx1YzBlYVx1YzBlYlx1YzBlZCIsNiwiXHVjMGY2XHVjMGY4XHVjMGZhIiw1LCJcdWMxMDFcdWMxMDJcdWMxMDNcdWMxMDVcdWMxMDZcdWMxMDdcdWMxMDkiLDYsIlx1YzExMVx1YzExMlx1YzExM1x1YzEx''@;'; + put 'put ''NFx1YzExNiIsNSwiXHVjMTIxXHVjMTIyXHVjMTI1XHVjMTI4XHVjMTI5XHVjMTJhXHVjMTJiXHVjMTJlIl0sWyI5OTQxIiwiXHVjMTMyXHVjMTMzXHVjMTM0XHVjMTM1XHVjMTM3XHVjMTNhXHVjMTNiXHVjMTNkXHVjMTNlXHVjMTNmXHVjMTQxIiw2LCJcdWMxNGFcdWMxNGUiLDUsIlx1YzE1''@;'; + put 'put ''Nlx1YzE1NyJdLFsiOTk2MSIsIlx1YzE1OVx1YzE1YVx1YzE1Ylx1YzE1ZCIsNiwiXHVjMTY2XHVjMTZhIiw1LCJcdWMxNzFcdWMxNzJcdWMxNzNcdWMxNzVcdWMxNzZcdWMxNzdcdWMxNzlcdWMxN2FcdWMxN2IiXSxbIjk5ODEiLCJcdWMxN2MiLDgsIlx1YzE4NiIsNSwiXHVjMThmXHVjMTkx''@;'; + put 'put ''XHVjMTkyXHVjMTkzXHVjMTk1XHVjMTk3Iiw0LCJcdWMxOWVcdWMxYTBcdWMxYTJcdWMxYTNcdWMxYTRcdWMxYTZcdWMxYTdcdWMxYWFcdWMxYWJcdWMxYWRcdWMxYWVcdWMxYWZcdWMxYjEiLDExLCJcdWMxYmUiLDUsIlx1YzFjNVx1YzFjNlx1YzFjN1x1YzFjOVx1YzFjYVx1YzFjYlx1YzFj''@;'; + put 'put ''ZCIsNiwiXHVjMWQ1XHVjMWQ2XHVjMWQ5Iiw2LCJcdWMxZTFcdWMxZTJcdWMxZTNcdWMxZTVcdWMxZTZcdWMxZTdcdWMxZTkiLDYsIlx1YzFmMlx1YzFmNCIsNywiXHVjMWZlXHVjMWZmXHVjMjAxXHVjMjAyXHVjMjAzXHVjMjA1Iiw2LCJcdWMyMGVcdWMyMTBcdWMyMTIiLDUsIlx1YzIxYVx1''@;'; + put 'put ''YzIxYlx1YzIxZFx1YzIxZVx1YzIyMVx1YzIyMlx1YzIyMyJdLFsiOWE0MSIsIlx1YzIyNFx1YzIyNVx1YzIyNlx1YzIyN1x1YzIyYVx1YzIyY1x1YzIyZVx1YzIzMFx1YzIzM1x1YzIzNSIsMTZdLFsiOWE2MSIsIlx1YzI0Nlx1YzI0N1x1YzI0OSIsNiwiXHVjMjUyXHVjMjUzXHVjMjU1XHVj''@;'; + put 'put ''MjU2XHVjMjU3XHVjMjU5Iiw2LCJcdWMyNjFcdWMyNjJcdWMyNjNcdWMyNjRcdWMyNjYiXSxbIjlhODEiLCJcdWMyNjciLDQsIlx1YzI2ZVx1YzI2Zlx1YzI3MVx1YzI3Mlx1YzI3M1x1YzI3NSIsNiwiXHVjMjdlXHVjMjgwXHVjMjgyIiw1LCJcdWMyOGEiLDUsIlx1YzI5MSIsNiwiXHVjMjk5''@;'; + put 'put ''XHVjMjlhXHVjMjljXHVjMjllIiw1LCJcdWMyYTZcdWMyYTdcdWMyYTlcdWMyYWFcdWMyYWJcdWMyYWUiLDUsIlx1YzJiNlx1YzJiOFx1YzJiYSIsMzMsIlx1YzJkZVx1YzJkZlx1YzJlMVx1YzJlMlx1YzJlNSIsNSwiXHVjMmVlXHVjMmYwXHVjMmYyXHVjMmYzXHVjMmY0XHVjMmY1XHVjMmY3''@;'; + put 'put ''XHVjMmZhXHVjMmZkXHVjMmZlXHVjMmZmXHVjMzAxIiw2LCJcdWMzMGFcdWMzMGJcdWMzMGVcdWMzMGYiXSxbIjliNDEiLCJcdWMzMTBcdWMzMTFcdWMzMTJcdWMzMTZcdWMzMTdcdWMzMTlcdWMzMWFcdWMzMWJcdWMzMWQiLDYsIlx1YzMyNlx1YzMyN1x1YzMyYSIsOF0sWyI5YjYxIiwiXHVj''@;'; + put 'put ''MzMzIiwxNywiXHVjMzQ2Iiw3XSxbIjliODEiLCJcdWMzNGUiLDI1LCJcdWMzNmFcdWMzNmJcdWMzNmRcdWMzNmVcdWMzNmZcdWMzNzFcdWMzNzMiLDQsIlx1YzM3YVx1YzM3Ylx1YzM3ZSIsNSwiXHVjMzg1XHVjMzg2XHVjMzg3XHVjMzg5XHVjMzhhXHVjMzhiXHVjMzhkIiw1MCwiXHVjM2Mx''@;'; + put 'put ''IiwyMiwiXHVjM2RhIl0sWyI5YzQxIiwiXHVjM2RiXHVjM2RkXHVjM2RlXHVjM2UxXHVjM2UzIiw0LCJcdWMzZWFcdWMzZWJcdWMzZWNcdWMzZWUiLDUsIlx1YzNmNlx1YzNmN1x1YzNmOSIsNV0sWyI5YzYxIiwiXHVjM2ZmIiw4LCJcdWM0MDkiLDYsIlx1YzQxMSIsOV0sWyI5YzgxIiwiXHVj''@;'; + put 'put ''NDFiIiw4LCJcdWM0MjUiLDYsIlx1YzQyZFx1YzQyZVx1YzQyZlx1YzQzMVx1YzQzMlx1YzQzM1x1YzQzNSIsNiwiXHVjNDNlIiw5LCJcdWM0NDkiLDI2LCJcdWM0NjZcdWM0NjdcdWM0NjlcdWM0NmFcdWM0NmJcdWM0NmQiLDYsIlx1YzQ3Nlx1YzQ3N1x1YzQ3OFx1YzQ3YSIsNSwiXHVjNDgx''@;'; + put 'put ''IiwxOCwiXHVjNDk1Iiw2LCJcdWM0OWQiLDEyXSxbIjlkNDEiLCJcdWM0YWEiLDEzLCJcdWM0YjlcdWM0YmFcdWM0YmJcdWM0YmQiLDhdLFsiOWQ2MSIsIlx1YzRjNiIsMjVdLFsiOWQ4MSIsIlx1YzRlMCIsOCwiXHVjNGVhIiw1LCJcdWM0ZjJcdWM0ZjNcdWM0ZjVcdWM0ZjZcdWM0ZjdcdWM0''@;'; + put 'put ''ZjlcdWM0ZmJcdWM0ZmNcdWM0ZmRcdWM0ZmVcdWM1MDIiLDksIlx1YzUwZFx1YzUwZVx1YzUwZlx1YzUxMVx1YzUxMlx1YzUxM1x1YzUxNSIsNiwiXHVjNTFkIiwxMCwiXHVjNTJhXHVjNTJiXHVjNTJkXHVjNTJlXHVjNTJmXHVjNTMxIiw2LCJcdWM1M2FcdWM1M2NcdWM1M2UiLDUsIlx1YzU0''@;'; + put 'put ''Nlx1YzU0N1x1YzU0Ylx1YzU0Zlx1YzU1MFx1YzU1MVx1YzU1Mlx1YzU1Nlx1YzU1YVx1YzU1Ylx1YzU1Y1x1YzU1Zlx1YzU2Mlx1YzU2M1x1YzU2NVx1YzU2Nlx1YzU2N1x1YzU2OSIsNiwiXHVjNTcyXHVjNTc2Iiw1LCJcdWM1N2VcdWM1N2ZcdWM1ODFcdWM1ODJcdWM1ODNcdWM1ODVcdWM1''@;'; + put 'put ''ODZcdWM1ODhcdWM1ODlcdWM1OGFcdWM1OGJcdWM1OGVcdWM1OTBcdWM1OTJcdWM1OTNcdWM1OTQiXSxbIjllNDEiLCJcdWM1OTZcdWM1OTlcdWM1OWFcdWM1OWJcdWM1OWRcdWM1OWVcdWM1OWZcdWM1YTEiLDcsIlx1YzVhYSIsOSwiXHVjNWI2Il0sWyI5ZTYxIiwiXHVjNWI3XHVjNWJhXHVj''@;'; + put 'put ''NWJmIiw0LCJcdWM1Y2JcdWM1Y2RcdWM1Y2ZcdWM1ZDJcdWM1ZDNcdWM1ZDVcdWM1ZDZcdWM1ZDdcdWM1ZDkiLDYsIlx1YzVlMlx1YzVlNFx1YzVlNlx1YzVlNyJdLFsiOWU4MSIsIlx1YzVlOFx1YzVlOVx1YzVlYVx1YzVlYlx1YzVlZlx1YzVmMVx1YzVmMlx1YzVmM1x1YzVmNVx1YzVmOFx1''@;'; + put 'put ''YzVmOVx1YzVmYVx1YzVmYlx1YzYwMlx1YzYwM1x1YzYwNFx1YzYwOVx1YzYwYVx1YzYwYlx1YzYwZFx1YzYwZVx1YzYwZlx1YzYxMSIsNiwiXHVjNjFhXHVjNjFkIiw2LCJcdWM2MjZcdWM2MjdcdWM2MjlcdWM2MmFcdWM2MmJcdWM2MmZcdWM2MzFcdWM2MzJcdWM2MzZcdWM2MzhcdWM2M2Fc''@;'; + put 'put ''dWM2M2NcdWM2M2RcdWM2M2VcdWM2M2ZcdWM2NDJcdWM2NDNcdWM2NDVcdWM2NDZcdWM2NDdcdWM2NDkiLDYsIlx1YzY1Mlx1YzY1NiIsNSwiXHVjNjVlXHVjNjVmXHVjNjYxIiwxMCwiXHVjNjZkXHVjNjZlXHVjNjcwXHVjNjcyIiw1LCJcdWM2N2FcdWM2N2JcdWM2N2RcdWM2N2VcdWM2N2Zc''@;'; + put 'put ''dWM2ODEiLDYsIlx1YzY4YVx1YzY4Y1x1YzY4ZSIsNSwiXHVjNjk2XHVjNjk3XHVjNjk5XHVjNjlhXHVjNjliXHVjNjlkIiw2LCJcdWM2YTYiXSxbIjlmNDEiLCJcdWM2YThcdWM2YWEiLDUsIlx1YzZiMlx1YzZiM1x1YzZiNVx1YzZiNlx1YzZiN1x1YzZiYiIsNCwiXHVjNmMyXHVjNmM0XHVj''@;'; + put 'put ''NmM2Iiw1LCJcdWM2Y2UiXSxbIjlmNjEiLCJcdWM2Y2ZcdWM2ZDFcdWM2ZDJcdWM2ZDNcdWM2ZDUiLDYsIlx1YzZkZVx1YzZkZlx1YzZlMiIsNSwiXHVjNmVhXHVjNmViXHVjNmVkXHVjNmVlXHVjNmVmXHVjNmYxXHVjNmYyIl0sWyI5ZjgxIiwiXHVjNmYzIiw0LCJcdWM2ZmFcdWM2ZmJcdWM2''@;'; + put 'put ''ZmNcdWM2ZmUiLDUsIlx1YzcwNlx1YzcwN1x1YzcwOVx1YzcwYVx1YzcwYlx1YzcwZCIsNiwiXHVjNzE2XHVjNzE4XHVjNzFhIiw1LCJcdWM3MjJcdWM3MjNcdWM3MjVcdWM3MjZcdWM3MjdcdWM3MjkiLDYsIlx1YzczMlx1YzczNFx1YzczNlx1YzczOFx1YzczOVx1YzczYVx1YzczYlx1Yzcz''@;'; + put 'put ''ZVx1YzczZlx1Yzc0MVx1Yzc0Mlx1Yzc0M1x1Yzc0NSIsNCwiXHVjNzRiXHVjNzRlXHVjNzUwXHVjNzU5XHVjNzVhXHVjNzViXHVjNzVkXHVjNzVlXHVjNzVmXHVjNzYxIiw2LCJcdWM3NjlcdWM3NmFcdWM3NmMiLDcsIlx1Yzc3Nlx1Yzc3N1x1Yzc3OVx1Yzc3YVx1Yzc3Ylx1Yzc3Zlx1Yzc4''@;'; + put 'put ''MFx1Yzc4MVx1Yzc4Mlx1Yzc4Nlx1Yzc4Ylx1Yzc4Y1x1Yzc4ZFx1Yzc4Zlx1Yzc5Mlx1Yzc5M1x1Yzc5NVx1Yzc5OVx1Yzc5YiIsNCwiXHVjN2EyXHVjN2E3Iiw0LCJcdWM3YWVcdWM3YWZcdWM3YjFcdWM3YjJcdWM3YjNcdWM3YjVcdWM3YjZcdWM3YjciXSxbImEwNDEiLCJcdWM3YjhcdWM3''@;'; + put 'put ''YjlcdWM3YmFcdWM3YmJcdWM3YmVcdWM3YzIiLDUsIlx1YzdjYVx1YzdjYlx1YzdjZFx1YzdjZlx1YzdkMSIsNiwiXHVjN2Q5XHVjN2RhXHVjN2RiXHVjN2RjIl0sWyJhMDYxIiwiXHVjN2RlIiw1LCJcdWM3ZTVcdWM3ZTZcdWM3ZTdcdWM3ZTlcdWM3ZWFcdWM3ZWJcdWM3ZWQiLDEzXSxbImEw''@;'; + put 'put ''ODEiLCJcdWM3ZmIiLDQsIlx1YzgwMlx1YzgwM1x1YzgwNVx1YzgwNlx1YzgwN1x1YzgwOVx1YzgwYiIsNCwiXHVjODEyXHVjODE0XHVjODE3Iiw0LCJcdWM4MWVcdWM4MWZcdWM4MjFcdWM4MjJcdWM4MjNcdWM4MjUiLDYsIlx1YzgyZVx1YzgzMFx1YzgzMiIsNSwiXHVjODM5XHVjODNhXHVj''@;'; + put 'put ''ODNiXHVjODNkXHVjODNlXHVjODNmXHVjODQxIiw2LCJcdWM4NGFcdWM4NGJcdWM4NGUiLDUsIlx1Yzg1NSIsMjYsIlx1Yzg3Mlx1Yzg3M1x1Yzg3NVx1Yzg3Nlx1Yzg3N1x1Yzg3OVx1Yzg3YiIsNCwiXHVjODgyXHVjODg0XHVjODg4XHVjODg5XHVjODhhXHVjODhlIiw1LCJcdWM4OTUiLDcs''@;'; + put 'put ''Ilx1Yzg5ZVx1YzhhMFx1YzhhMlx1YzhhM1x1YzhhNCJdLFsiYTE0MSIsIlx1YzhhNVx1YzhhNlx1YzhhN1x1YzhhOSIsMTgsIlx1YzhiZVx1YzhiZlx1YzhjMFx1YzhjMSJdLFsiYTE2MSIsIlx1YzhjMlx1YzhjM1x1YzhjNVx1YzhjNlx1YzhjN1x1YzhjOVx1YzhjYVx1YzhjYlx1YzhjZCIs''@;'; + put 'put ''NiwiXHVjOGQ2XHVjOGQ4XHVjOGRhIiw1LCJcdWM4ZTJcdWM4ZTNcdWM4ZTUiXSxbImExODEiLCJcdWM4ZTYiLDE0LCJcdWM4ZjYiLDUsIlx1YzhmZVx1YzhmZlx1YzkwMVx1YzkwMlx1YzkwM1x1YzkwNyIsNCwiXHVjOTBlXHUzMDAwXHUzMDAxXHUzMDAyXHhiN1x1MjAyNVx1MjAyNlx4YThc''@;'; + put 'put ''dTMwMDNceGFkXHUyMDE1XHUyMjI1XHVmZjNjXHUyMjNjXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDE0XHUzMDE1XHUzMDA4Iiw5LCJceGIxXHhkN1x4ZjdcdTIyNjBcdTIyNjRcdTIyNjVcdTIyMWVcdTIyMzRceGIwXHUyMDMyXHUyMDMzXHUyMTAzXHUyMTJiXHVmZmUwXHVmZmUxXHVm''@;'; + put 'put ''ZmU1XHUyNjQyXHUyNjQwXHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHhhN1x1MjAzYlx1MjYwNlx1MjYwNVx1MjVjYlx1MjVjZlx1MjVjZVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViM1x1MjViMlx1MjViZFx1MjViY1x1MjE5Mlx1MjE5MFx1MjE5MVx1''@;'; + put 'put ''MjE5M1x1MjE5NFx1MzAxM1x1MjI2YVx1MjI2Ylx1MjIxYVx1MjIzZFx1MjIxZFx1MjIzNVx1MjIyYlx1MjIyY1x1MjIwOFx1MjIwYlx1MjI4Nlx1MjI4N1x1MjI4Mlx1MjI4M1x1MjIyYVx1MjIyOVx1MjIyN1x1MjIyOFx1ZmZlMiJdLFsiYTI0MSIsIlx1YzkxMFx1YzkxMiIsNSwiXHVjOTE5''@;'; + put 'put ''IiwxOF0sWyJhMjYxIiwiXHVjOTJkIiw2LCJcdWM5MzUiLDE4XSxbImEyODEiLCJcdWM5NDgiLDcsIlx1Yzk1Mlx1Yzk1M1x1Yzk1NVx1Yzk1Nlx1Yzk1N1x1Yzk1OSIsNiwiXHVjOTYyXHVjOTY0Iiw3LCJcdWM5NmRcdWM5NmVcdWM5NmZcdTIxZDJcdTIxZDRcdTIyMDBcdTIyMDNceGI0XHVm''@;'; + put 'put ''ZjVlXHUwMmM3XHUwMmQ4XHUwMmRkXHUwMmRhXHUwMmQ5XHhiOFx1MDJkYlx4YTFceGJmXHUwMmQwXHUyMjJlXHUyMjExXHUyMjBmXHhhNFx1MjEwOVx1MjAzMFx1MjVjMVx1MjVjMFx1MjViN1x1MjViNlx1MjY2NFx1MjY2MFx1MjY2MVx1MjY2NVx1MjY2N1x1MjY2M1x1MjI5OVx1MjVjOFx1''@;'; + put 'put ''MjVhM1x1MjVkMFx1MjVkMVx1MjU5Mlx1MjVhNFx1MjVhNVx1MjVhOFx1MjVhN1x1MjVhNlx1MjVhOVx1MjY2OFx1MjYwZlx1MjYwZVx1MjYxY1x1MjYxZVx4YjZcdTIwMjBcdTIwMjFcdTIxOTVcdTIxOTdcdTIxOTlcdTIxOTZcdTIxOThcdTI2NmRcdTI2NjlcdTI2NmFcdTI2NmNcdTMyN2Zc''@;'; + put 'put ''dTMyMWNcdTIxMTZcdTMzYzdcdTIxMjJcdTMzYzJcdTMzZDhcdTIxMjFcdTIwYWNceGFlIl0sWyJhMzQxIiwiXHVjOTcxXHVjOTcyXHVjOTczXHVjOTc1Iiw2LCJcdWM5N2QiLDEwLCJcdWM5OGFcdWM5OGJcdWM5OGRcdWM5OGVcdWM5OGYiXSxbImEzNjEiLCJcdWM5OTEiLDYsIlx1Yzk5YVx1''@;'; + put 'put ''Yzk5Y1x1Yzk5ZSIsMTZdLFsiYTM4MSIsIlx1YzlhZiIsMTYsIlx1YzljMlx1YzljM1x1YzljNVx1YzljNlx1YzljOVx1YzljYiIsNCwiXHVjOWQyXHVjOWQ0XHVjOWQ3XHVjOWQ4XHVjOWRiXHVmZjAxIiw1OCwiXHVmZmU2XHVmZjNkIiwzMiwiXHVmZmUzIl0sWyJhNDQxIiwiXHVjOWRlXHVj''@;'; + put 'put ''OWRmXHVjOWUxXHVjOWUzXHVjOWU1XHVjOWU2XHVjOWU4XHVjOWU5XHVjOWVhXHVjOWViXHVjOWVlXHVjOWYyIiw1LCJcdWM5ZmFcdWM5ZmJcdWM5ZmRcdWM5ZmVcdWM5ZmZcdWNhMDFcdWNhMDJcdWNhMDNcdWNhMDQiXSxbImE0NjEiLCJcdWNhMDVcdWNhMDZcdWNhMDdcdWNhMGFcdWNhMGUi''@;'; + put 'put ''LDUsIlx1Y2ExNVx1Y2ExNlx1Y2ExN1x1Y2ExOSIsMTJdLFsiYTQ4MSIsIlx1Y2EyNlx1Y2EyN1x1Y2EyOFx1Y2EyYSIsMjgsIlx1MzEzMSIsOTNdLFsiYTU0MSIsIlx1Y2E0NyIsNCwiXHVjYTRlXHVjYTRmXHVjYTUxXHVjYTUyXHVjYTUzXHVjYTU1Iiw2LCJcdWNhNWVcdWNhNjIiLDUsIlx1''@;'; + put 'put ''Y2E2OVx1Y2E2YSJdLFsiYTU2MSIsIlx1Y2E2YiIsMTcsIlx1Y2E3ZSIsNSwiXHVjYTg1XHVjYTg2Il0sWyJhNTgxIiwiXHVjYTg3IiwxNiwiXHVjYTk5IiwxNCwiXHUyMTcwIiw5XSxbImE1YjAiLCJcdTIxNjAiLDldLFsiYTVjMSIsIlx1MDM5MSIsMTYsIlx1MDNhMyIsNl0sWyJhNWUxIiwi''@;'; + put 'put ''XHUwM2IxIiwxNiwiXHUwM2MzIiw2XSxbImE2NDEiLCJcdWNhYTgiLDE5LCJcdWNhYmVcdWNhYmZcdWNhYzFcdWNhYzJcdWNhYzNcdWNhYzUiXSxbImE2NjEiLCJcdWNhYzYiLDUsIlx1Y2FjZVx1Y2FkMFx1Y2FkMlx1Y2FkNFx1Y2FkNVx1Y2FkNlx1Y2FkN1x1Y2FkYSIsNSwiXHVjYWUxIiw2''@;'; + put 'put ''XSxbImE2ODEiLCJcdWNhZThcdWNhZTlcdWNhZWFcdWNhZWJcdWNhZWQiLDYsIlx1Y2FmNSIsMTgsIlx1Y2IwOVx1Y2IwYVx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUx''@;'; + put 'put ''Ylx1MjUxN1x1MjUyM1x1MjUzM1x1MjUyYlx1MjUzYlx1MjU0Ylx1MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0Mlx1MjUxMlx1MjUxMVx1MjUxYVx1MjUxOVx1MjUxNlx1MjUxNVx1MjUwZVx1MjUwZFx1MjUxZVx1MjUxZlx1MjUyMVx1''@;'; + put 'put ''MjUyMlx1MjUyNlx1MjUyN1x1MjUyOVx1MjUyYVx1MjUyZFx1MjUyZVx1MjUzMVx1MjUzMlx1MjUzNVx1MjUzNlx1MjUzOVx1MjUzYVx1MjUzZFx1MjUzZVx1MjU0MFx1MjU0MVx1MjU0MyIsN10sWyJhNzQxIiwiXHVjYjBiIiw0LCJcdWNiMTFcdWNiMTJcdWNiMTNcdWNiMTVcdWNiMTZcdWNi''@;'; + put 'put ''MTdcdWNiMTkiLDYsIlx1Y2IyMiIsN10sWyJhNzYxIiwiXHVjYjJhIiwyMiwiXHVjYjQyXHVjYjQzXHVjYjQ0Il0sWyJhNzgxIiwiXHVjYjQ1XHVjYjQ2XHVjYjQ3XHVjYjRhXHVjYjRiXHVjYjRkXHVjYjRlXHVjYjRmXHVjYjUxIiw2LCJcdWNiNWFcdWNiNWJcdWNiNWNcdWNiNWUiLDUsIlx1''@;'; + put 'put ''Y2I2NSIsNywiXHUzMzk1XHUzMzk2XHUzMzk3XHUyMTEzXHUzMzk4XHUzM2M0XHUzM2EzXHUzM2E0XHUzM2E1XHUzM2E2XHUzMzk5Iiw5LCJcdTMzY2FcdTMzOGRcdTMzOGVcdTMzOGZcdTMzY2ZcdTMzODhcdTMzODlcdTMzYzhcdTMzYTdcdTMzYThcdTMzYjAiLDksIlx1MzM4MCIsNCwiXHUz''@;'; + put 'put ''M2JhIiw1LCJcdTMzOTAiLDQsIlx1MjEyNlx1MzNjMFx1MzNjMVx1MzM4YVx1MzM4Ylx1MzM4Y1x1MzNkNlx1MzNjNVx1MzNhZFx1MzNhZVx1MzNhZlx1MzNkYlx1MzNhOVx1MzNhYVx1MzNhYlx1MzNhY1x1MzNkZFx1MzNkMFx1MzNkM1x1MzNjM1x1MzNjOVx1MzNkY1x1MzNjNiJdLFsiYTg0''@;'; + put 'put ''MSIsIlx1Y2I2ZCIsMTAsIlx1Y2I3YSIsMTRdLFsiYTg2MSIsIlx1Y2I4OSIsMTgsIlx1Y2I5ZCIsNl0sWyJhODgxIiwiXHVjYmE0IiwxOSwiXHVjYmI5IiwxMSwiXHhjNlx4ZDBceGFhXHUwMTI2Il0sWyJhOGE2IiwiXHUwMTMyIl0sWyJhOGE4IiwiXHUwMTNmXHUwMTQxXHhkOFx1MDE1Mlx4''@;'; + put 'put ''YmFceGRlXHUwMTY2XHUwMTRhIl0sWyJhOGIxIiwiXHUzMjYwIiwyNywiXHUyNGQwIiwyNSwiXHUyNDYwIiwxNCwiXHhiZFx1MjE1M1x1MjE1NFx4YmNceGJlXHUyMTViXHUyMTVjXHUyMTVkXHUyMTVlIl0sWyJhOTQxIiwiXHVjYmM1IiwxNCwiXHVjYmQ1IiwxMF0sWyJhOTYxIiwiXHVjYmUw''@;'; + put 'put ''XHVjYmUxXHVjYmUyXHVjYmUzXHVjYmU1XHVjYmU2XHVjYmU4XHVjYmVhIiwxOF0sWyJhOTgxIiwiXHVjYmZkIiwxNCwiXHVjYzBlXHVjYzBmXHVjYzExXHVjYzEyXHVjYzEzXHVjYzE1Iiw2LCJcdWNjMWVcdWNjMWZcdWNjMjBcdWNjMjNcdWNjMjRceGU2XHUwMTExXHhmMFx1MDEyN1x1MDEz''@;'; + put 'put ''MVx1MDEzM1x1MDEzOFx1MDE0MFx1MDE0Mlx4ZjhcdTAxNTNceGRmXHhmZVx1MDE2N1x1MDE0Ylx1MDE0OVx1MzIwMCIsMjcsIlx1MjQ5YyIsMjUsIlx1MjQ3NCIsMTQsIlx4YjlceGIyXHhiM1x1MjA3NFx1MjA3Zlx1MjA4MVx1MjA4Mlx1MjA4M1x1MjA4NCJdLFsiYWE0MSIsIlx1Y2MyNVx1''@;'; + put 'put ''Y2MyNlx1Y2MyYVx1Y2MyYlx1Y2MyZFx1Y2MyZlx1Y2MzMSIsNiwiXHVjYzNhXHVjYzNmIiw0LCJcdWNjNDZcdWNjNDdcdWNjNDlcdWNjNGFcdWNjNGJcdWNjNGRcdWNjNGUiXSxbImFhNjEiLCJcdWNjNGYiLDQsIlx1Y2M1Nlx1Y2M1YSIsNSwiXHVjYzYxXHVjYzYyXHVjYzYzXHVjYzY1XHVj''@;'; + put 'put ''YzY3XHVjYzY5Iiw2LCJcdWNjNzFcdWNjNzIiXSxbImFhODEiLCJcdWNjNzNcdWNjNzRcdWNjNzYiLDI5LCJcdTMwNDEiLDgyXSxbImFiNDEiLCJcdWNjOTRcdWNjOTVcdWNjOTZcdWNjOTdcdWNjOWFcdWNjOWJcdWNjOWRcdWNjOWVcdWNjOWZcdWNjYTEiLDYsIlx1Y2NhYVx1Y2NhZSIsNSwi''@;'; + put 'put ''XHVjY2I2XHVjY2I3XHVjY2I5Il0sWyJhYjYxIiwiXHVjY2JhXHVjY2JiXHVjY2JkIiw2LCJcdWNjYzZcdWNjYzhcdWNjY2EiLDUsIlx1Y2NkMVx1Y2NkMlx1Y2NkM1x1Y2NkNSIsNV0sWyJhYjgxIiwiXHVjY2RiIiw4LCJcdWNjZTUiLDYsIlx1Y2NlZFx1Y2NlZVx1Y2NlZlx1Y2NmMSIsMTIs''@;'; + put 'put ''Ilx1MzBhMSIsODVdLFsiYWM0MSIsIlx1Y2NmZVx1Y2NmZlx1Y2QwMFx1Y2QwMiIsNSwiXHVjZDBhXHVjZDBiXHVjZDBkXHVjZDBlXHVjZDBmXHVjZDExIiw2LCJcdWNkMWFcdWNkMWNcdWNkMWVcdWNkMWZcdWNkMjAiXSxbImFjNjEiLCJcdWNkMjFcdWNkMjJcdWNkMjNcdWNkMjVcdWNkMjZc''@;'; + put 'put ''dWNkMjdcdWNkMjlcdWNkMmFcdWNkMmJcdWNkMmQiLDExLCJcdWNkM2EiLDRdLFsiYWM4MSIsIlx1Y2QzZiIsMjgsIlx1Y2Q1ZFx1Y2Q1ZVx1Y2Q1Zlx1MDQxMCIsNSwiXHUwNDAxXHUwNDE2IiwyNV0sWyJhY2QxIiwiXHUwNDMwIiw1LCJcdTA0NTFcdTA0MzYiLDI1XSxbImFkNDEiLCJcdWNk''@;'; + put 'put ''NjFcdWNkNjJcdWNkNjNcdWNkNjUiLDYsIlx1Y2Q2ZVx1Y2Q3MFx1Y2Q3MiIsNSwiXHVjZDc5Iiw3XSxbImFkNjEiLCJcdWNkODEiLDYsIlx1Y2Q4OSIsMTAsIlx1Y2Q5Nlx1Y2Q5N1x1Y2Q5OVx1Y2Q5YVx1Y2Q5Ylx1Y2Q5ZFx1Y2Q5ZVx1Y2Q5ZiJdLFsiYWQ4MSIsIlx1Y2RhMFx1Y2RhMVx1''@;'; + put 'put ''Y2RhMlx1Y2RhM1x1Y2RhNlx1Y2RhOFx1Y2RhYSIsNSwiXHVjZGIxIiwxOCwiXHVjZGM1Il0sWyJhZTQxIiwiXHVjZGM2Iiw1LCJcdWNkY2RcdWNkY2VcdWNkY2ZcdWNkZDEiLDE2XSxbImFlNjEiLCJcdWNkZTIiLDUsIlx1Y2RlOVx1Y2RlYVx1Y2RlYlx1Y2RlZFx1Y2RlZVx1Y2RlZlx1Y2Rm''@;'; + put 'put ''MSIsNiwiXHVjZGZhXHVjZGZjXHVjZGZlIiw0XSxbImFlODEiLCJcdWNlMDNcdWNlMDVcdWNlMDZcdWNlMDdcdWNlMDlcdWNlMGFcdWNlMGJcdWNlMGQiLDYsIlx1Y2UxNVx1Y2UxNlx1Y2UxN1x1Y2UxOFx1Y2UxYSIsNSwiXHVjZTIyXHVjZTIzXHVjZTI1XHVjZTI2XHVjZTI3XHVjZTI5XHVj''@;'; + put 'put ''ZTJhXHVjZTJiIl0sWyJhZjQxIiwiXHVjZTJjXHVjZTJkXHVjZTJlXHVjZTJmXHVjZTMyXHVjZTM0XHVjZTM2IiwxOV0sWyJhZjYxIiwiXHVjZTRhIiwxMywiXHVjZTVhXHVjZTViXHVjZTVkXHVjZTVlXHVjZTYyIiw1LCJcdWNlNmFcdWNlNmMiXSxbImFmODEiLCJcdWNlNmUiLDUsIlx1Y2U3''@;'; + put 'put ''Nlx1Y2U3N1x1Y2U3OVx1Y2U3YVx1Y2U3Ylx1Y2U3ZCIsNiwiXHVjZTg2XHVjZTg4XHVjZThhIiw1LCJcdWNlOTJcdWNlOTNcdWNlOTVcdWNlOTZcdWNlOTdcdWNlOTkiXSxbImIwNDEiLCJcdWNlOWEiLDUsIlx1Y2VhMlx1Y2VhNiIsNSwiXHVjZWFlIiwxMl0sWyJiMDYxIiwiXHVjZWJiIiw1''@;'; + put 'put ''LCJcdWNlYzIiLDE5XSxbImIwODEiLCJcdWNlZDYiLDEzLCJcdWNlZTZcdWNlZTdcdWNlZTlcdWNlZWFcdWNlZWQiLDYsIlx1Y2VmNlx1Y2VmYSIsNSwiXHVhYzAwXHVhYzAxXHVhYzA0XHVhYzA3XHVhYzA4XHVhYzA5XHVhYzBhXHVhYzEwIiw3LCJcdWFjMTkiLDQsIlx1YWMyMFx1YWMyNFx1''@;'; + put 'put ''YWMyY1x1YWMyZFx1YWMyZlx1YWMzMFx1YWMzMVx1YWMzOFx1YWMzOVx1YWMzY1x1YWM0MFx1YWM0Ylx1YWM0ZFx1YWM1NFx1YWM1OFx1YWM1Y1x1YWM3MFx1YWM3MVx1YWM3NFx1YWM3N1x1YWM3OFx1YWM3YVx1YWM4MFx1YWM4MVx1YWM4M1x1YWM4NFx1YWM4NVx1YWM4Nlx1YWM4OVx1YWM4''@;'; + put 'put ''YVx1YWM4Ylx1YWM4Y1x1YWM5MFx1YWM5NFx1YWM5Y1x1YWM5ZFx1YWM5Zlx1YWNhMFx1YWNhMVx1YWNhOFx1YWNhOVx1YWNhYVx1YWNhY1x1YWNhZlx1YWNiMFx1YWNiOFx1YWNiOVx1YWNiYlx1YWNiY1x1YWNiZFx1YWNjMVx1YWNjNFx1YWNjOFx1YWNjY1x1YWNkNVx1YWNkN1x1YWNlMFx1''@;'; + put 'put ''YWNlMVx1YWNlNFx1YWNlN1x1YWNlOFx1YWNlYVx1YWNlY1x1YWNlZlx1YWNmMFx1YWNmMVx1YWNmM1x1YWNmNVx1YWNmNlx1YWNmY1x1YWNmZFx1YWQwMFx1YWQwNFx1YWQwNiJdLFsiYjE0MSIsIlx1Y2YwMlx1Y2YwM1x1Y2YwNVx1Y2YwNlx1Y2YwN1x1Y2YwOSIsNiwiXHVjZjEyXHVjZjE0''@;'; + put 'put ''XHVjZjE2Iiw1LCJcdWNmMWRcdWNmMWVcdWNmMWZcdWNmMjFcdWNmMjJcdWNmMjMiXSxbImIxNjEiLCJcdWNmMjUiLDYsIlx1Y2YyZVx1Y2YzMiIsNSwiXHVjZjM5IiwxMV0sWyJiMTgxIiwiXHVjZjQ1IiwxNCwiXHVjZjU2XHVjZjU3XHVjZjU5XHVjZjVhXHVjZjViXHVjZjVkIiw2LCJcdWNm''@;'; + put 'put ''NjZcdWNmNjhcdWNmNmFcdWNmNmJcdWNmNmNcdWFkMGNcdWFkMGRcdWFkMGZcdWFkMTFcdWFkMThcdWFkMWNcdWFkMjBcdWFkMjlcdWFkMmNcdWFkMmRcdWFkMzRcdWFkMzVcdWFkMzhcdWFkM2NcdWFkNDRcdWFkNDVcdWFkNDdcdWFkNDlcdWFkNTBcdWFkNTRcdWFkNThcdWFkNjFcdWFkNjNc''@;'; + put 'put ''dWFkNmNcdWFkNmRcdWFkNzBcdWFkNzNcdWFkNzRcdWFkNzVcdWFkNzZcdWFkN2JcdWFkN2NcdWFkN2RcdWFkN2ZcdWFkODFcdWFkODJcdWFkODhcdWFkODlcdWFkOGNcdWFkOTBcdWFkOWNcdWFkOWRcdWFkYTRcdWFkYjdcdWFkYzBcdWFkYzFcdWFkYzRcdWFkYzhcdWFkZDBcdWFkZDFcdWFk''@;'; + put 'put ''ZDNcdWFkZGNcdWFkZTBcdWFkZTRcdWFkZjhcdWFkZjlcdWFkZmNcdWFkZmZcdWFlMDBcdWFlMDFcdWFlMDhcdWFlMDlcdWFlMGJcdWFlMGRcdWFlMTRcdWFlMzBcdWFlMzFcdWFlMzRcdWFlMzdcdWFlMzhcdWFlM2FcdWFlNDBcdWFlNDFcdWFlNDNcdWFlNDVcdWFlNDZcdWFlNGFcdWFlNGNc''@;'; + put 'put ''dWFlNGRcdWFlNGVcdWFlNTBcdWFlNTRcdWFlNTZcdWFlNWNcdWFlNWRcdWFlNWZcdWFlNjBcdWFlNjFcdWFlNjVcdWFlNjhcdWFlNjlcdWFlNmNcdWFlNzBcdWFlNzgiXSxbImIyNDEiLCJcdWNmNmRcdWNmNmVcdWNmNmZcdWNmNzJcdWNmNzNcdWNmNzVcdWNmNzZcdWNmNzdcdWNmNzkiLDYs''@;'; + put 'put ''Ilx1Y2Y4MVx1Y2Y4Mlx1Y2Y4M1x1Y2Y4NFx1Y2Y4NiIsNSwiXHVjZjhkIl0sWyJiMjYxIiwiXHVjZjhlIiwxOCwiXHVjZmEyIiw1LCJcdWNmYTkiXSxbImIyODEiLCJcdWNmYWEiLDUsIlx1Y2ZiMSIsMTgsIlx1Y2ZjNSIsNiwiXHVhZTc5XHVhZTdiXHVhZTdjXHVhZTdkXHVhZTg0XHVhZTg1''@;'; + put 'put ''XHVhZThjXHVhZWJjXHVhZWJkXHVhZWJlXHVhZWMwXHVhZWM0XHVhZWNjXHVhZWNkXHVhZWNmXHVhZWQwXHVhZWQxXHVhZWQ4XHVhZWQ5XHVhZWRjXHVhZWU4XHVhZWViXHVhZWVkXHVhZWY0XHVhZWY4XHVhZWZjXHVhZjA3XHVhZjA4XHVhZjBkXHVhZjEwXHVhZjJjXHVhZjJkXHVhZjMwXHVh''@;'; + put 'put ''ZjMyXHVhZjM0XHVhZjNjXHVhZjNkXHVhZjNmXHVhZjQxXHVhZjQyXHVhZjQzXHVhZjQ4XHVhZjQ5XHVhZjUwXHVhZjVjXHVhZjVkXHVhZjY0XHVhZjY1XHVhZjc5XHVhZjgwXHVhZjg0XHVhZjg4XHVhZjkwXHVhZjkxXHVhZjk1XHVhZjljXHVhZmI4XHVhZmI5XHVhZmJjXHVhZmMwXHVhZmM3''@;'; + put 'put ''XHVhZmM4XHVhZmM5XHVhZmNiXHVhZmNkXHVhZmNlXHVhZmQ0XHVhZmRjXHVhZmU4XHVhZmU5XHVhZmYwXHVhZmYxXHVhZmY0XHVhZmY4XHViMDAwXHViMDAxXHViMDA0XHViMDBjXHViMDEwXHViMDE0XHViMDFjXHViMDFkXHViMDI4XHViMDQ0XHViMDQ1XHViMDQ4XHViMDRhXHViMDRjXHVi''@;'; + put 'put ''MDRlXHViMDUzXHViMDU0XHViMDU1XHViMDU3XHViMDU5Il0sWyJiMzQxIiwiXHVjZmNjIiwxOSwiXHVjZmUyXHVjZmUzXHVjZmU1XHVjZmU2XHVjZmU3XHVjZmU5Il0sWyJiMzYxIiwiXHVjZmVhIiw1LCJcdWNmZjJcdWNmZjRcdWNmZjYiLDUsIlx1Y2ZmZFx1Y2ZmZVx1Y2ZmZlx1ZDAwMVx1''@;'; + put 'put ''ZDAwMlx1ZDAwM1x1ZDAwNSIsNV0sWyJiMzgxIiwiXHVkMDBiIiw1LCJcdWQwMTIiLDUsIlx1ZDAxOSIsMTksIlx1YjA1ZFx1YjA3Y1x1YjA3ZFx1YjA4MFx1YjA4NFx1YjA4Y1x1YjA4ZFx1YjA4Zlx1YjA5MVx1YjA5OFx1YjA5OVx1YjA5YVx1YjA5Y1x1YjA5Zlx1YjBhMFx1YjBhMVx1YjBh''@;'; + put 'put ''Mlx1YjBhOFx1YjBhOVx1YjBhYiIsNCwiXHViMGIxXHViMGIzXHViMGI0XHViMGI1XHViMGI4XHViMGJjXHViMGM0XHViMGM1XHViMGM3XHViMGM4XHViMGM5XHViMGQwXHViMGQxXHViMGQ0XHViMGQ4XHViMGUwXHViMGU1XHViMTA4XHViMTA5XHViMTBiXHViMTBjXHViMTEwXHViMTEyXHVi''@;'; + put 'put ''MTEzXHViMTE4XHViMTE5XHViMTFiXHViMTFjXHViMTFkXHViMTIzXHViMTI0XHViMTI1XHViMTI4XHViMTJjXHViMTM0XHViMTM1XHViMTM3XHViMTM4XHViMTM5XHViMTQwXHViMTQxXHViMTQ0XHViMTQ4XHViMTUwXHViMTUxXHViMTU0XHViMTU1XHViMTU4XHViMTVjXHViMTYwXHViMTc4''@;'; + put 'put ''XHViMTc5XHViMTdjXHViMTgwXHViMTgyXHViMTg4XHViMTg5XHViMThiXHViMThkXHViMTkyXHViMTkzXHViMTk0XHViMTk4XHViMTljXHViMWE4XHViMWNjXHViMWQwXHViMWQ0XHViMWRjXHViMWRkIl0sWyJiNDQxIiwiXHVkMDJlIiw1LCJcdWQwMzZcdWQwMzdcdWQwMzlcdWQwM2FcdWQw''@;'; + put 'put ''M2JcdWQwM2QiLDYsIlx1ZDA0Nlx1ZDA0OFx1ZDA0YSIsNV0sWyJiNDYxIiwiXHVkMDUxXHVkMDUyXHVkMDUzXHVkMDU1XHVkMDU2XHVkMDU3XHVkMDU5Iiw2LCJcdWQwNjEiLDEwLCJcdWQwNmVcdWQwNmYiXSxbImI0ODEiLCJcdWQwNzFcdWQwNzJcdWQwNzNcdWQwNzUiLDYsIlx1ZDA3ZVx1''@;'; + put 'put ''ZDA3Zlx1ZDA4MFx1ZDA4MiIsMTgsIlx1YjFkZlx1YjFlOFx1YjFlOVx1YjFlY1x1YjFmMFx1YjFmOVx1YjFmYlx1YjFmZFx1YjIwNFx1YjIwNVx1YjIwOFx1YjIwYlx1YjIwY1x1YjIxNFx1YjIxNVx1YjIxN1x1YjIxOVx1YjIyMFx1YjIzNFx1YjIzY1x1YjI1OFx1YjI1Y1x1YjI2MFx1YjI2''@;'; + put 'put ''OFx1YjI2OVx1YjI3NFx1YjI3NVx1YjI3Y1x1YjI4NFx1YjI4NVx1YjI4OVx1YjI5MFx1YjI5MVx1YjI5NFx1YjI5OFx1YjI5OVx1YjI5YVx1YjJhMFx1YjJhMVx1YjJhM1x1YjJhNVx1YjJhNlx1YjJhYVx1YjJhY1x1YjJiMFx1YjJiNFx1YjJjOFx1YjJjOVx1YjJjY1x1YjJkMFx1YjJkMlx1''@;'; + put 'put ''YjJkOFx1YjJkOVx1YjJkYlx1YjJkZFx1YjJlMlx1YjJlNFx1YjJlNVx1YjJlNlx1YjJlOFx1YjJlYiIsNCwiXHViMmYzXHViMmY0XHViMmY1XHViMmY3Iiw0LCJcdWIyZmZcdWIzMDBcdWIzMDFcdWIzMDRcdWIzMDhcdWIzMTBcdWIzMTFcdWIzMTNcdWIzMTRcdWIzMTVcdWIzMWNcdWIzNTRc''@;'; + put 'put ''dWIzNTVcdWIzNTZcdWIzNThcdWIzNWJcdWIzNWNcdWIzNWVcdWIzNWZcdWIzNjRcdWIzNjUiXSxbImI1NDEiLCJcdWQwOTUiLDE0LCJcdWQwYTZcdWQwYTdcdWQwYTlcdWQwYWFcdWQwYWJcdWQwYWQiLDVdLFsiYjU2MSIsIlx1ZDBiM1x1ZDBiNlx1ZDBiOFx1ZDBiYSIsNSwiXHVkMGMyXHVk''@;'; + put 'put ''MGMzXHVkMGM1XHVkMGM2XHVkMGM3XHVkMGNhIiw1LCJcdWQwZDJcdWQwZDYiLDRdLFsiYjU4MSIsIlx1ZDBkYlx1ZDBkZVx1ZDBkZlx1ZDBlMVx1ZDBlMlx1ZDBlM1x1ZDBlNSIsNiwiXHVkMGVlXHVkMGYyIiw1LCJcdWQwZjkiLDExLCJcdWIzNjdcdWIzNjlcdWIzNmJcdWIzNmVcdWIzNzBc''@;'; + put 'put ''dWIzNzFcdWIzNzRcdWIzNzhcdWIzODBcdWIzODFcdWIzODNcdWIzODRcdWIzODVcdWIzOGNcdWIzOTBcdWIzOTRcdWIzYTBcdWIzYTFcdWIzYThcdWIzYWNcdWIzYzRcdWIzYzVcdWIzYzhcdWIzY2JcdWIzY2NcdWIzY2VcdWIzZDBcdWIzZDRcdWIzZDVcdWIzZDdcdWIzZDlcdWIzZGJcdWIz''@;'; + put 'put ''ZGRcdWIzZTBcdWIzZTRcdWIzZThcdWIzZmNcdWI0MTBcdWI0MThcdWI0MWNcdWI0MjBcdWI0MjhcdWI0MjlcdWI0MmJcdWI0MzRcdWI0NTBcdWI0NTFcdWI0NTRcdWI0NThcdWI0NjBcdWI0NjFcdWI0NjNcdWI0NjVcdWI0NmNcdWI0ODBcdWI0ODhcdWI0OWRcdWI0YTRcdWI0YThcdWI0YWNc''@;'; + put 'put ''dWI0YjVcdWI0YjdcdWI0YjlcdWI0YzBcdWI0YzRcdWI0YzhcdWI0ZDBcdWI0ZDVcdWI0ZGNcdWI0ZGRcdWI0ZTBcdWI0ZTNcdWI0ZTRcdWI0ZTZcdWI0ZWNcdWI0ZWRcdWI0ZWZcdWI0ZjFcdWI0ZjhcdWI1MTRcdWI1MTVcdWI1MThcdWI1MWJcdWI1MWNcdWI1MjRcdWI1MjVcdWI1MjdcdWI1''@;'; + put 'put ''MjhcdWI1MjlcdWI1MmFcdWI1MzBcdWI1MzFcdWI1MzRcdWI1MzgiXSxbImI2NDEiLCJcdWQxMDUiLDcsIlx1ZDEwZSIsMTddLFsiYjY2MSIsIlx1ZDEyMCIsMTUsIlx1ZDEzMlx1ZDEzM1x1ZDEzNVx1ZDEzNlx1ZDEzN1x1ZDEzOVx1ZDEzYlx1ZDEzY1x1ZDEzZFx1ZDEzZSJdLFsiYjY4MSIs''@;'; + put 'put ''Ilx1ZDEzZlx1ZDE0Mlx1ZDE0NiIsNSwiXHVkMTRlXHVkMTRmXHVkMTUxXHVkMTUyXHVkMTUzXHVkMTU1Iiw2LCJcdWQxNWVcdWQxNjBcdWQxNjIiLDUsIlx1ZDE2OVx1ZDE2YVx1ZDE2Ylx1ZDE2ZFx1YjU0MFx1YjU0MVx1YjU0M1x1YjU0NFx1YjU0NVx1YjU0Ylx1YjU0Y1x1YjU0ZFx1YjU1''@;'; + put 'put ''MFx1YjU1NFx1YjU1Y1x1YjU1ZFx1YjU1Zlx1YjU2MFx1YjU2MVx1YjVhMFx1YjVhMVx1YjVhNFx1YjVhOFx1YjVhYVx1YjVhYlx1YjViMFx1YjViMVx1YjViM1x1YjViNFx1YjViNVx1YjViYlx1YjViY1x1YjViZFx1YjVjMFx1YjVjNFx1YjVjY1x1YjVjZFx1YjVjZlx1YjVkMFx1YjVkMVx1''@;'; + put 'put ''YjVkOFx1YjVlY1x1YjYxMFx1YjYxMVx1YjYxNFx1YjYxOFx1YjYyNVx1YjYyY1x1YjYzNFx1YjY0OFx1YjY2NFx1YjY2OFx1YjY5Y1x1YjY5ZFx1YjZhMFx1YjZhNFx1YjZhYlx1YjZhY1x1YjZiMVx1YjZkNFx1YjZmMFx1YjZmNFx1YjZmOFx1YjcwMFx1YjcwMVx1YjcwNVx1YjcyOFx1Yjcy''@;'; + put 'put ''OVx1YjcyY1x1YjcyZlx1YjczMFx1YjczOFx1YjczOVx1YjczYlx1Yjc0NFx1Yjc0OFx1Yjc0Y1x1Yjc1NFx1Yjc1NVx1Yjc2MFx1Yjc2NFx1Yjc2OFx1Yjc3MFx1Yjc3MVx1Yjc3M1x1Yjc3NVx1Yjc3Y1x1Yjc3ZFx1Yjc4MFx1Yjc4NFx1Yjc4Y1x1Yjc4ZFx1Yjc4Zlx1Yjc5MFx1Yjc5MVx1''@;'; + put 'put ''Yjc5Mlx1Yjc5Nlx1Yjc5NyJdLFsiYjc0MSIsIlx1ZDE2ZSIsMTMsIlx1ZDE3ZCIsNiwiXHVkMTg1XHVkMTg2XHVkMTg3XHVkMTg5XHVkMThhIl0sWyJiNzYxIiwiXHVkMThiIiwyMCwiXHVkMWEyXHVkMWEzXHVkMWE1XHVkMWE2XHVkMWE3Il0sWyJiNzgxIiwiXHVkMWE5Iiw2LCJcdWQxYjJc''@;'; + put 'put ''dWQxYjRcdWQxYjZcdWQxYjdcdWQxYjhcdWQxYjlcdWQxYmJcdWQxYmRcdWQxYmVcdWQxYmZcdWQxYzEiLDE0LCJcdWI3OThcdWI3OTlcdWI3OWNcdWI3YTBcdWI3YThcdWI3YTlcdWI3YWJcdWI3YWNcdWI3YWRcdWI3YjRcdWI3YjVcdWI3YjhcdWI3YzdcdWI3YzlcdWI3ZWNcdWI3ZWRcdWI3''@;'; + put 'put ''ZjBcdWI3ZjRcdWI3ZmNcdWI3ZmRcdWI3ZmZcdWI4MDBcdWI4MDFcdWI4MDdcdWI4MDhcdWI4MDlcdWI4MGNcdWI4MTBcdWI4MThcdWI4MTlcdWI4MWJcdWI4MWRcdWI4MjRcdWI4MjVcdWI4MjhcdWI4MmNcdWI4MzRcdWI4MzVcdWI4MzdcdWI4MzhcdWI4MzlcdWI4NDBcdWI4NDRcdWI4NTFc''@;'; + put 'put ''dWI4NTNcdWI4NWNcdWI4NWRcdWI4NjBcdWI4NjRcdWI4NmNcdWI4NmRcdWI4NmZcdWI4NzFcdWI4NzhcdWI4N2NcdWI4OGRcdWI4YThcdWI4YjBcdWI4YjRcdWI4YjhcdWI4YzBcdWI4YzFcdWI4YzNcdWI4YzVcdWI4Y2NcdWI4ZDBcdWI4ZDRcdWI4ZGRcdWI4ZGZcdWI4ZTFcdWI4ZThcdWI4''@;'; + put 'put ''ZTlcdWI4ZWNcdWI4ZjBcdWI4ZjhcdWI4ZjlcdWI4ZmJcdWI4ZmRcdWI5MDRcdWI5MThcdWI5MjBcdWI5M2NcdWI5M2RcdWI5NDBcdWI5NDRcdWI5NGNcdWI5NGZcdWI5NTFcdWI5NThcdWI5NTlcdWI5NWNcdWI5NjBcdWI5NjhcdWI5NjkiXSxbImI4NDEiLCJcdWQxZDAiLDcsIlx1ZDFkOSIs''@;'; + put 'put ''MTddLFsiYjg2MSIsIlx1ZDFlYiIsOCwiXHVkMWY1XHVkMWY2XHVkMWY3XHVkMWY5IiwxM10sWyJiODgxIiwiXHVkMjA4XHVkMjBhIiw1LCJcdWQyMTEiLDI0LCJcdWI5NmJcdWI5NmRcdWI5NzRcdWI5NzVcdWI5NzhcdWI5N2NcdWI5ODRcdWI5ODVcdWI5ODdcdWI5ODlcdWI5OGFcdWI5OGRc''@;'; + put 'put ''dWI5OGVcdWI5YWNcdWI5YWRcdWI5YjBcdWI5YjRcdWI5YmNcdWI5YmRcdWI5YmZcdWI5YzFcdWI5YzhcdWI5YzlcdWI5Y2NcdWI5Y2UiLDQsIlx1YjlkOFx1YjlkOVx1YjlkYlx1YjlkZFx1YjlkZVx1YjllMVx1YjllM1x1YjllNFx1YjllNVx1YjllOFx1YjllY1x1YjlmNFx1YjlmNVx1Yjlm''@;'; + put 'put ''N1x1YjlmOFx1YjlmOVx1YjlmYVx1YmEwMFx1YmEwMVx1YmEwOFx1YmExNVx1YmEzOFx1YmEzOVx1YmEzY1x1YmE0MFx1YmE0Mlx1YmE0OFx1YmE0OVx1YmE0Ylx1YmE0ZFx1YmE0ZVx1YmE1M1x1YmE1NFx1YmE1NVx1YmE1OFx1YmE1Y1x1YmE2NFx1YmE2NVx1YmE2N1x1YmE2OFx1YmE2OVx1''@;'; + put 'put ''YmE3MFx1YmE3MVx1YmE3NFx1YmE3OFx1YmE4M1x1YmE4NFx1YmE4NVx1YmE4N1x1YmE4Y1x1YmFhOFx1YmFhOVx1YmFhYlx1YmFhY1x1YmFiMFx1YmFiMlx1YmFiOFx1YmFiOVx1YmFiYlx1YmFiZFx1YmFjNFx1YmFjOFx1YmFkOFx1YmFkOVx1YmFmYyJdLFsiYjk0MSIsIlx1ZDIyYVx1ZDIy''@;'; + put 'put ''Ylx1ZDIyZVx1ZDIyZlx1ZDIzMVx1ZDIzMlx1ZDIzM1x1ZDIzNSIsNiwiXHVkMjNlXHVkMjQwXHVkMjQyIiw1LCJcdWQyNDlcdWQyNGFcdWQyNGJcdWQyNGMiXSxbImI5NjEiLCJcdWQyNGQiLDE0LCJcdWQyNWQiLDYsIlx1ZDI2NVx1ZDI2Nlx1ZDI2N1x1ZDI2OCJdLFsiYjk4MSIsIlx1ZDI2''@;'; + put 'put ''OSIsMjIsIlx1ZDI4Mlx1ZDI4M1x1ZDI4NVx1ZDI4Nlx1ZDI4N1x1ZDI4OVx1ZDI4YVx1ZDI4Ylx1ZDI4Y1x1YmIwMFx1YmIwNFx1YmIwZFx1YmIwZlx1YmIxMVx1YmIxOFx1YmIxY1x1YmIyMFx1YmIyOVx1YmIyYlx1YmIzNFx1YmIzNVx1YmIzNlx1YmIzOFx1YmIzYlx1YmIzY1x1YmIzZFx1''@;'; + put 'put ''YmIzZVx1YmI0NFx1YmI0NVx1YmI0N1x1YmI0OVx1YmI0ZFx1YmI0Zlx1YmI1MFx1YmI1NFx1YmI1OFx1YmI2MVx1YmI2M1x1YmI2Y1x1YmI4OFx1YmI4Y1x1YmI5MFx1YmJhNFx1YmJhOFx1YmJhY1x1YmJiNFx1YmJiN1x1YmJjMFx1YmJjNFx1YmJjOFx1YmJkMFx1YmJkM1x1YmJmOFx1YmJm''@;'; + put 'put ''OVx1YmJmY1x1YmJmZlx1YmMwMFx1YmMwMlx1YmMwOFx1YmMwOVx1YmMwYlx1YmMwY1x1YmMwZFx1YmMwZlx1YmMxMVx1YmMxNCIsNCwiXHViYzFiIiw0LCJcdWJjMjRcdWJjMjVcdWJjMjdcdWJjMjlcdWJjMmRcdWJjMzBcdWJjMzFcdWJjMzRcdWJjMzhcdWJjNDBcdWJjNDFcdWJjNDNcdWJj''@;'; + put 'put ''NDRcdWJjNDVcdWJjNDlcdWJjNGNcdWJjNGRcdWJjNTBcdWJjNWRcdWJjODRcdWJjODVcdWJjODhcdWJjOGJcdWJjOGNcdWJjOGVcdWJjOTRcdWJjOTVcdWJjOTciXSxbImJhNDEiLCJcdWQyOGRcdWQyOGVcdWQyOGZcdWQyOTJcdWQyOTNcdWQyOTRcdWQyOTYiLDUsIlx1ZDI5ZFx1ZDI5ZVx1''@;'; + put 'put ''ZDI5Zlx1ZDJhMVx1ZDJhMlx1ZDJhM1x1ZDJhNSIsNiwiXHVkMmFkIl0sWyJiYTYxIiwiXHVkMmFlXHVkMmFmXHVkMmIwXHVkMmIyIiw1LCJcdWQyYmFcdWQyYmJcdWQyYmRcdWQyYmVcdWQyYzFcdWQyYzMiLDQsIlx1ZDJjYVx1ZDJjYyIsNV0sWyJiYTgxIiwiXHVkMmQyXHVkMmQzXHVkMmQ1''@;'; + put 'put ''XHVkMmQ2XHVkMmQ3XHVkMmQ5XHVkMmRhXHVkMmRiXHVkMmRkIiw2LCJcdWQyZTYiLDksIlx1ZDJmMlx1ZDJmM1x1ZDJmNVx1ZDJmNlx1ZDJmN1x1ZDJmOVx1ZDJmYVx1YmM5OVx1YmM5YVx1YmNhMFx1YmNhMVx1YmNhNFx1YmNhN1x1YmNhOFx1YmNiMFx1YmNiMVx1YmNiM1x1YmNiNFx1YmNi''@;'; + put 'put ''NVx1YmNiY1x1YmNiZFx1YmNjMFx1YmNjNFx1YmNjZFx1YmNjZlx1YmNkMFx1YmNkMVx1YmNkNVx1YmNkOFx1YmNkY1x1YmNmNFx1YmNmNVx1YmNmNlx1YmNmOFx1YmNmY1x1YmQwNFx1YmQwNVx1YmQwN1x1YmQwOVx1YmQxMFx1YmQxNFx1YmQyNFx1YmQyY1x1YmQ0MFx1YmQ0OFx1YmQ0OVx1''@;'; + put 'put ''YmQ0Y1x1YmQ1MFx1YmQ1OFx1YmQ1OVx1YmQ2NFx1YmQ2OFx1YmQ4MFx1YmQ4MVx1YmQ4NFx1YmQ4N1x1YmQ4OFx1YmQ4OVx1YmQ4YVx1YmQ5MFx1YmQ5MVx1YmQ5M1x1YmQ5NVx1YmQ5OVx1YmQ5YVx1YmQ5Y1x1YmRhNFx1YmRiMFx1YmRiOFx1YmRkNFx1YmRkNVx1YmRkOFx1YmRkY1x1YmRl''@;'; + put 'put ''OVx1YmRmMFx1YmRmNFx1YmRmOFx1YmUwMFx1YmUwM1x1YmUwNVx1YmUwY1x1YmUwZFx1YmUxMFx1YmUxNFx1YmUxY1x1YmUxZFx1YmUxZlx1YmU0NFx1YmU0NVx1YmU0OFx1YmU0Y1x1YmU0ZVx1YmU1NFx1YmU1NVx1YmU1N1x1YmU1OVx1YmU1YVx1YmU1Ylx1YmU2MFx1YmU2MVx1YmU2NCJd''@;'; + put 'put ''LFsiYmI0MSIsIlx1ZDJmYiIsNCwiXHVkMzAyXHVkMzA0XHVkMzA2Iiw1LCJcdWQzMGZcdWQzMTFcdWQzMTJcdWQzMTNcdWQzMTVcdWQzMTciLDQsIlx1ZDMxZVx1ZDMyMlx1ZDMyMyJdLFsiYmI2MSIsIlx1ZDMyNFx1ZDMyNlx1ZDMyN1x1ZDMyYVx1ZDMyYlx1ZDMyZFx1ZDMyZVx1ZDMyZlx1''@;'; + put 'put ''ZDMzMSIsNiwiXHVkMzNhXHVkMzNlIiw1LCJcdWQzNDZcdWQzNDdcdWQzNDhcdWQzNDkiXSxbImJiODEiLCJcdWQzNGEiLDMxLCJcdWJlNjhcdWJlNmFcdWJlNzBcdWJlNzFcdWJlNzNcdWJlNzRcdWJlNzVcdWJlN2JcdWJlN2NcdWJlN2RcdWJlODBcdWJlODRcdWJlOGNcdWJlOGRcdWJlOGZc''@;'; + put 'put ''dWJlOTBcdWJlOTFcdWJlOThcdWJlOTlcdWJlYThcdWJlZDBcdWJlZDFcdWJlZDRcdWJlZDdcdWJlZDhcdWJlZTBcdWJlZTNcdWJlZTRcdWJlZTVcdWJlZWNcdWJmMDFcdWJmMDhcdWJmMDlcdWJmMThcdWJmMTlcdWJmMWJcdWJmMWNcdWJmMWRcdWJmNDBcdWJmNDFcdWJmNDRcdWJmNDhcdWJm''@;'; + put 'put ''NTBcdWJmNTFcdWJmNTVcdWJmOTRcdWJmYjBcdWJmYzVcdWJmY2NcdWJmY2RcdWJmZDBcdWJmZDRcdWJmZGNcdWJmZGZcdWJmZTFcdWMwM2NcdWMwNTFcdWMwNThcdWMwNWNcdWMwNjBcdWMwNjhcdWMwNjlcdWMwOTBcdWMwOTFcdWMwOTRcdWMwOThcdWMwYTBcdWMwYTFcdWMwYTNcdWMwYTVc''@;'; + put 'put ''dWMwYWNcdWMwYWRcdWMwYWZcdWMwYjBcdWMwYjNcdWMwYjRcdWMwYjVcdWMwYjZcdWMwYmNcdWMwYmRcdWMwYmZcdWMwYzBcdWMwYzFcdWMwYzVcdWMwYzhcdWMwYzlcdWMwY2NcdWMwZDBcdWMwZDhcdWMwZDlcdWMwZGJcdWMwZGNcdWMwZGRcdWMwZTQiXSxbImJjNDEiLCJcdWQzNmEiLDE3''@;'; + put 'put ''LCJcdWQzN2VcdWQzN2ZcdWQzODFcdWQzODJcdWQzODNcdWQzODVcdWQzODZcdWQzODciXSxbImJjNjEiLCJcdWQzODhcdWQzODlcdWQzOGFcdWQzOGJcdWQzOGVcdWQzOTIiLDUsIlx1ZDM5YVx1ZDM5Ylx1ZDM5ZFx1ZDM5ZVx1ZDM5Zlx1ZDNhMSIsNiwiXHVkM2FhXHVkM2FjXHVkM2FlIl0s''@;'; + put 'put ''WyJiYzgxIiwiXHVkM2FmIiw0LCJcdWQzYjVcdWQzYjZcdWQzYjdcdWQzYjlcdWQzYmFcdWQzYmJcdWQzYmQiLDYsIlx1ZDNjNlx1ZDNjN1x1ZDNjYSIsNSwiXHVkM2QxIiw1LCJcdWMwZTVcdWMwZThcdWMwZWNcdWMwZjRcdWMwZjVcdWMwZjdcdWMwZjlcdWMxMDBcdWMxMDRcdWMxMDhcdWMx''@;'; + put 'put ''MTBcdWMxMTVcdWMxMWMiLDQsIlx1YzEyM1x1YzEyNFx1YzEyNlx1YzEyN1x1YzEyY1x1YzEyZFx1YzEyZlx1YzEzMFx1YzEzMVx1YzEzNlx1YzEzOFx1YzEzOVx1YzEzY1x1YzE0MFx1YzE0OFx1YzE0OVx1YzE0Ylx1YzE0Y1x1YzE0ZFx1YzE1NFx1YzE1NVx1YzE1OFx1YzE1Y1x1YzE2NFx1''@;'; + put 'put ''YzE2NVx1YzE2N1x1YzE2OFx1YzE2OVx1YzE3MFx1YzE3NFx1YzE3OFx1YzE4NVx1YzE4Y1x1YzE4ZFx1YzE4ZVx1YzE5MFx1YzE5NFx1YzE5Nlx1YzE5Y1x1YzE5ZFx1YzE5Zlx1YzFhMVx1YzFhNVx1YzFhOFx1YzFhOVx1YzFhY1x1YzFiMFx1YzFiZFx1YzFjNFx1YzFjOFx1YzFjY1x1YzFk''@;'; + put 'put ''NFx1YzFkN1x1YzFkOFx1YzFlMFx1YzFlNFx1YzFlOFx1YzFmMFx1YzFmMVx1YzFmM1x1YzFmY1x1YzFmZFx1YzIwMFx1YzIwNFx1YzIwY1x1YzIwZFx1YzIwZlx1YzIxMVx1YzIxOFx1YzIxOVx1YzIxY1x1YzIxZlx1YzIyMFx1YzIyOFx1YzIyOVx1YzIyYlx1YzIyZCJdLFsiYmQ0MSIsIlx1''@;'; + put 'put ''ZDNkN1x1ZDNkOSIsNywiXHVkM2UyXHVkM2U0Iiw3LCJcdWQzZWVcdWQzZWZcdWQzZjFcdWQzZjJcdWQzZjNcdWQzZjVcdWQzZjZcdWQzZjciXSxbImJkNjEiLCJcdWQzZjhcdWQzZjlcdWQzZmFcdWQzZmJcdWQzZmVcdWQ0MDBcdWQ0MDIiLDUsIlx1ZDQwOSIsMTNdLFsiYmQ4MSIsIlx1ZDQx''@;'; + put 'put ''NyIsNSwiXHVkNDFlIiwyNSwiXHVjMjJmXHVjMjMxXHVjMjMyXHVjMjM0XHVjMjQ4XHVjMjUwXHVjMjUxXHVjMjU0XHVjMjU4XHVjMjYwXHVjMjY1XHVjMjZjXHVjMjZkXHVjMjcwXHVjMjc0XHVjMjdjXHVjMjdkXHVjMjdmXHVjMjgxXHVjMjg4XHVjMjg5XHVjMjkwXHVjMjk4XHVjMjliXHVj''@;'; + put 'put ''MjlkXHVjMmE0XHVjMmE1XHVjMmE4XHVjMmFjXHVjMmFkXHVjMmI0XHVjMmI1XHVjMmI3XHVjMmI5XHVjMmRjXHVjMmRkXHVjMmUwXHVjMmUzXHVjMmU0XHVjMmViXHVjMmVjXHVjMmVkXHVjMmVmXHVjMmYxXHVjMmY2XHVjMmY4XHVjMmY5XHVjMmZiXHVjMmZjXHVjMzAwXHVjMzA4XHVjMzA5''@;'; + put 'put ''XHVjMzBjXHVjMzBkXHVjMzEzXHVjMzE0XHVjMzE1XHVjMzE4XHVjMzFjXHVjMzI0XHVjMzI1XHVjMzI4XHVjMzI5XHVjMzQ1XHVjMzY4XHVjMzY5XHVjMzZjXHVjMzcwXHVjMzcyXHVjMzc4XHVjMzc5XHVjMzdjXHVjMzdkXHVjMzg0XHVjMzg4XHVjMzhjXHVjM2MwXHVjM2Q4XHVjM2Q5XHVj''@;'; + put 'put ''M2RjXHVjM2RmXHVjM2UwXHVjM2UyXHVjM2U4XHVjM2U5XHVjM2VkXHVjM2Y0XHVjM2Y1XHVjM2Y4XHVjNDA4XHVjNDEwXHVjNDI0XHVjNDJjXHVjNDMwIl0sWyJiZTQxIiwiXHVkNDM4Iiw3LCJcdWQ0NDFcdWQ0NDJcdWQ0NDNcdWQ0NDUiLDE0XSxbImJlNjEiLCJcdWQ0NTQiLDcsIlx1ZDQ1''@;'; + put 'put ''ZFx1ZDQ1ZVx1ZDQ1Zlx1ZDQ2MVx1ZDQ2Mlx1ZDQ2M1x1ZDQ2NSIsNywiXHVkNDZlXHVkNDcwXHVkNDcxXHVkNDcyIl0sWyJiZTgxIiwiXHVkNDczIiw0LCJcdWQ0N2FcdWQ0N2JcdWQ0N2RcdWQ0N2VcdWQ0ODFcdWQ0ODMiLDQsIlx1ZDQ4YVx1ZDQ4Y1x1ZDQ4ZSIsNSwiXHVkNDk1Iiw4LCJc''@;'; + put 'put ''dWM0MzRcdWM0M2NcdWM0M2RcdWM0NDhcdWM0NjRcdWM0NjVcdWM0NjhcdWM0NmNcdWM0NzRcdWM0NzVcdWM0NzlcdWM0ODBcdWM0OTRcdWM0OWNcdWM0YjhcdWM0YmNcdWM0ZTlcdWM0ZjBcdWM0ZjFcdWM0ZjRcdWM0ZjhcdWM0ZmFcdWM0ZmZcdWM1MDBcdWM1MDFcdWM1MGNcdWM1MTBcdWM1''@;'; + put 'put ''MTRcdWM1MWNcdWM1MjhcdWM1MjlcdWM1MmNcdWM1MzBcdWM1MzhcdWM1MzlcdWM1M2JcdWM1M2RcdWM1NDRcdWM1NDVcdWM1NDhcdWM1NDlcdWM1NGFcdWM1NGNcdWM1NGRcdWM1NGVcdWM1NTNcdWM1NTRcdWM1NTVcdWM1NTdcdWM1NThcdWM1NTlcdWM1NWRcdWM1NWVcdWM1NjBcdWM1NjFc''@;'; + put 'put ''dWM1NjRcdWM1NjhcdWM1NzBcdWM1NzFcdWM1NzNcdWM1NzRcdWM1NzVcdWM1N2NcdWM1N2RcdWM1ODBcdWM1ODRcdWM1ODdcdWM1OGNcdWM1OGRcdWM1OGZcdWM1OTFcdWM1OTVcdWM1OTdcdWM1OThcdWM1OWNcdWM1YTBcdWM1YTlcdWM1YjRcdWM1YjVcdWM1YjhcdWM1YjlcdWM1YmJcdWM1''@;'; + put 'put ''YmNcdWM1YmRcdWM1YmVcdWM1YzQiLDYsIlx1YzVjY1x1YzVjZSJdLFsiYmY0MSIsIlx1ZDQ5ZSIsMTAsIlx1ZDRhYSIsMTRdLFsiYmY2MSIsIlx1ZDRiOSIsMTgsIlx1ZDRjZFx1ZDRjZVx1ZDRjZlx1ZDRkMVx1ZDRkMlx1ZDRkM1x1ZDRkNSJdLFsiYmY4MSIsIlx1ZDRkNiIsNSwiXHVkNGRk''@;'; + put 'put ''XHVkNGRlXHVkNGUwIiw3LCJcdWQ0ZTlcdWQ0ZWFcdWQ0ZWJcdWQ0ZWRcdWQ0ZWVcdWQ0ZWZcdWQ0ZjEiLDYsIlx1ZDRmOVx1ZDRmYVx1ZDRmY1x1YzVkMFx1YzVkMVx1YzVkNFx1YzVkOFx1YzVlMFx1YzVlMVx1YzVlM1x1YzVlNVx1YzVlY1x1YzVlZFx1YzVlZVx1YzVmMFx1YzVmNFx1YzVm''@;'; + put 'put ''Nlx1YzVmN1x1YzVmYyIsNSwiXHVjNjA1XHVjNjA2XHVjNjA3XHVjNjA4XHVjNjBjXHVjNjEwXHVjNjE4XHVjNjE5XHVjNjFiXHVjNjFjXHVjNjI0XHVjNjI1XHVjNjI4XHVjNjJjXHVjNjJkXHVjNjJlXHVjNjMwXHVjNjMzXHVjNjM0XHVjNjM1XHVjNjM3XHVjNjM5XHVjNjNiXHVjNjQwXHVj''@;'; + put 'put ''NjQxXHVjNjQ0XHVjNjQ4XHVjNjUwXHVjNjUxXHVjNjUzXHVjNjU0XHVjNjU1XHVjNjVjXHVjNjVkXHVjNjYwXHVjNjZjXHVjNjZmXHVjNjcxXHVjNjc4XHVjNjc5XHVjNjdjXHVjNjgwXHVjNjg4XHVjNjg5XHVjNjhiXHVjNjhkXHVjNjk0XHVjNjk1XHVjNjk4XHVjNjljXHVjNmE0XHVjNmE1''@;'; + put 'put ''XHVjNmE3XHVjNmE5XHVjNmIwXHVjNmIxXHVjNmI0XHVjNmI4XHVjNmI5XHVjNmJhXHVjNmMwXHVjNmMxXHVjNmMzXHVjNmM1XHVjNmNjXHVjNmNkXHVjNmQwXHVjNmQ0XHVjNmRjXHVjNmRkXHVjNmUwXHVjNmUxXHVjNmU4Il0sWyJjMDQxIiwiXHVkNGZlIiw1LCJcdWQ1MDVcdWQ1MDZcdWQ1''@;'; + put 'put ''MDdcdWQ1MDlcdWQ1MGFcdWQ1MGJcdWQ1MGQiLDYsIlx1ZDUxNlx1ZDUxOCIsNV0sWyJjMDYxIiwiXHVkNTFlIiwyNV0sWyJjMDgxIiwiXHVkNTM4XHVkNTM5XHVkNTNhXHVkNTNiXHVkNTNlXHVkNTNmXHVkNTQxXHVkNTQyXHVkNTQzXHVkNTQ1Iiw2LCJcdWQ1NGVcdWQ1NTBcdWQ1NTIiLDUs''@;'; + put 'put ''Ilx1ZDU1YVx1ZDU1Ylx1ZDU1ZFx1ZDU1ZVx1ZDU1Zlx1ZDU2MVx1ZDU2Mlx1ZDU2M1x1YzZlOVx1YzZlY1x1YzZmMFx1YzZmOFx1YzZmOVx1YzZmZFx1YzcwNFx1YzcwNVx1YzcwOFx1YzcwY1x1YzcxNFx1YzcxNVx1YzcxN1x1YzcxOVx1YzcyMFx1YzcyMVx1YzcyNFx1YzcyOFx1YzczMFx1''@;'; + put 'put ''YzczMVx1YzczM1x1YzczNVx1YzczN1x1YzczY1x1YzczZFx1Yzc0MFx1Yzc0NFx1Yzc0YVx1Yzc0Y1x1Yzc0ZFx1Yzc0Zlx1Yzc1MSIsNywiXHVjNzVjXHVjNzYwXHVjNzY4XHVjNzZiXHVjNzc0XHVjNzc1XHVjNzc4XHVjNzdjXHVjNzdkXHVjNzdlXHVjNzgzXHVjNzg0XHVjNzg1XHVjNzg3''@;'; + put 'put ''XHVjNzg4XHVjNzg5XHVjNzhhXHVjNzhlXHVjNzkwXHVjNzkxXHVjNzk0XHVjNzk2XHVjNzk3XHVjNzk4XHVjNzlhXHVjN2EwXHVjN2ExXHVjN2EzXHVjN2E0XHVjN2E1XHVjN2E2XHVjN2FjXHVjN2FkXHVjN2IwXHVjN2I0XHVjN2JjXHVjN2JkXHVjN2JmXHVjN2MwXHVjN2MxXHVjN2M4XHVj''@;'; + put 'put ''N2M5XHVjN2NjXHVjN2NlXHVjN2QwXHVjN2Q4XHVjN2RkXHVjN2U0XHVjN2U4XHVjN2VjXHVjODAwXHVjODAxXHVjODA0XHVjODA4XHVjODBhIl0sWyJjMTQxIiwiXHVkNTY0XHVkNTY2XHVkNTY3XHVkNTZhXHVkNTZjXHVkNTZlIiw1LCJcdWQ1NzZcdWQ1NzdcdWQ1NzlcdWQ1N2FcdWQ1N2Jc''@;'; + put 'put ''dWQ1N2QiLDYsIlx1ZDU4Nlx1ZDU4YVx1ZDU4YiJdLFsiYzE2MSIsIlx1ZDU4Y1x1ZDU4ZFx1ZDU4ZVx1ZDU4Zlx1ZDU5MSIsMTksIlx1ZDVhNlx1ZDVhNyJdLFsiYzE4MSIsIlx1ZDVhOCIsMzEsIlx1YzgxMFx1YzgxMVx1YzgxM1x1YzgxNVx1YzgxNlx1YzgxY1x1YzgxZFx1YzgyMFx1Yzgy''@;'; + put 'put ''NFx1YzgyY1x1YzgyZFx1YzgyZlx1YzgzMVx1YzgzOFx1YzgzY1x1Yzg0MFx1Yzg0OFx1Yzg0OVx1Yzg0Y1x1Yzg0ZFx1Yzg1NFx1Yzg3MFx1Yzg3MVx1Yzg3NFx1Yzg3OFx1Yzg3YVx1Yzg4MFx1Yzg4MVx1Yzg4M1x1Yzg4NVx1Yzg4Nlx1Yzg4N1x1Yzg4Ylx1Yzg4Y1x1Yzg4ZFx1Yzg5NFx1''@;'; + put 'put ''Yzg5ZFx1Yzg5Zlx1YzhhMVx1YzhhOFx1YzhiY1x1YzhiZFx1YzhjNFx1YzhjOFx1YzhjY1x1YzhkNFx1YzhkNVx1YzhkN1x1YzhkOVx1YzhlMFx1YzhlMVx1YzhlNFx1YzhmNVx1YzhmY1x1YzhmZFx1YzkwMFx1YzkwNFx1YzkwNVx1YzkwNlx1YzkwY1x1YzkwZFx1YzkwZlx1YzkxMVx1Yzkx''@;'; + put 'put ''OFx1YzkyY1x1YzkzNFx1Yzk1MFx1Yzk1MVx1Yzk1NFx1Yzk1OFx1Yzk2MFx1Yzk2MVx1Yzk2M1x1Yzk2Y1x1Yzk3MFx1Yzk3NFx1Yzk3Y1x1Yzk4OFx1Yzk4OVx1Yzk4Y1x1Yzk5MFx1Yzk5OFx1Yzk5OVx1Yzk5Ylx1Yzk5ZFx1YzljMFx1YzljMVx1YzljNFx1YzljN1x1YzljOFx1YzljYVx1''@;'; + put 'put ''YzlkMFx1YzlkMVx1YzlkMyJdLFsiYzI0MSIsIlx1ZDVjYVx1ZDVjYlx1ZDVjZFx1ZDVjZVx1ZDVjZlx1ZDVkMVx1ZDVkMyIsNCwiXHVkNWRhXHVkNWRjXHVkNWRlIiw1LCJcdWQ1ZTZcdWQ1ZTdcdWQ1ZTlcdWQ1ZWFcdWQ1ZWJcdWQ1ZWRcdWQ1ZWUiXSxbImMyNjEiLCJcdWQ1ZWYiLDQsIlx1''@;'; + put 'put ''ZDVmNlx1ZDVmOFx1ZDVmYSIsNSwiXHVkNjAyXHVkNjAzXHVkNjA1XHVkNjA2XHVkNjA3XHVkNjA5Iiw2LCJcdWQ2MTIiXSxbImMyODEiLCJcdWQ2MTYiLDUsIlx1ZDYxZFx1ZDYxZVx1ZDYxZlx1ZDYyMVx1ZDYyMlx1ZDYyM1x1ZDYyNSIsNywiXHVkNjJlIiw5LCJcdWQ2M2FcdWQ2M2JcdWM5''@;'; + put 'put ''ZDVcdWM5ZDZcdWM5ZDlcdWM5ZGFcdWM5ZGNcdWM5ZGRcdWM5ZTBcdWM5ZTJcdWM5ZTRcdWM5ZTdcdWM5ZWNcdWM5ZWRcdWM5ZWZcdWM5ZjBcdWM5ZjFcdWM5ZjhcdWM5ZjlcdWM5ZmNcdWNhMDBcdWNhMDhcdWNhMDlcdWNhMGJcdWNhMGNcdWNhMGRcdWNhMTRcdWNhMThcdWNhMjlcdWNhNGNc''@;'; + put 'put ''dWNhNGRcdWNhNTBcdWNhNTRcdWNhNWNcdWNhNWRcdWNhNWZcdWNhNjBcdWNhNjFcdWNhNjhcdWNhN2RcdWNhODRcdWNhOThcdWNhYmNcdWNhYmRcdWNhYzBcdWNhYzRcdWNhY2NcdWNhY2RcdWNhY2ZcdWNhZDFcdWNhZDNcdWNhZDhcdWNhZDlcdWNhZTBcdWNhZWNcdWNhZjRcdWNiMDhcdWNi''@;'; + put 'put ''MTBcdWNiMTRcdWNiMThcdWNiMjBcdWNiMjFcdWNiNDFcdWNiNDhcdWNiNDlcdWNiNGNcdWNiNTBcdWNiNThcdWNiNTlcdWNiNWRcdWNiNjRcdWNiNzhcdWNiNzlcdWNiOWNcdWNiYjhcdWNiZDRcdWNiZTRcdWNiZTdcdWNiZTlcdWNjMGNcdWNjMGRcdWNjMTBcdWNjMTRcdWNjMWNcdWNjMWRc''@;'; + put 'put ''dWNjMjFcdWNjMjJcdWNjMjdcdWNjMjhcdWNjMjlcdWNjMmNcdWNjMmVcdWNjMzBcdWNjMzhcdWNjMzlcdWNjM2IiXSxbImMzNDEiLCJcdWQ2M2RcdWQ2M2VcdWQ2M2ZcdWQ2NDFcdWQ2NDJcdWQ2NDNcdWQ2NDRcdWQ2NDZcdWQ2NDdcdWQ2NGFcdWQ2NGNcdWQ2NGVcdWQ2NGZcdWQ2NTBcdWQ2''@;'; + put 'put ''NTJcdWQ2NTNcdWQ2NTZcdWQ2NTdcdWQ2NTlcdWQ2NWFcdWQ2NWJcdWQ2NWQiLDRdLFsiYzM2MSIsIlx1ZDY2MiIsNCwiXHVkNjY4XHVkNjZhIiw1LCJcdWQ2NzJcdWQ2NzNcdWQ2NzUiLDExXSxbImMzODEiLCJcdWQ2ODFcdWQ2ODJcdWQ2ODRcdWQ2ODYiLDUsIlx1ZDY4ZVx1ZDY4Zlx1ZDY5''@;'; + put 'put ''MVx1ZDY5Mlx1ZDY5M1x1ZDY5NSIsNywiXHVkNjllXHVkNmEwXHVkNmEyIiw1LCJcdWQ2YTlcdWQ2YWFcdWNjM2NcdWNjM2RcdWNjM2VcdWNjNDRcdWNjNDVcdWNjNDhcdWNjNGNcdWNjNTRcdWNjNTVcdWNjNTdcdWNjNThcdWNjNTlcdWNjNjBcdWNjNjRcdWNjNjZcdWNjNjhcdWNjNzBcdWNj''@;'; + put 'put ''NzVcdWNjOThcdWNjOTlcdWNjOWNcdWNjYTBcdWNjYThcdWNjYTlcdWNjYWJcdWNjYWNcdWNjYWRcdWNjYjRcdWNjYjVcdWNjYjhcdWNjYmNcdWNjYzRcdWNjYzVcdWNjYzdcdWNjYzlcdWNjZDBcdWNjZDRcdWNjZTRcdWNjZWNcdWNjZjBcdWNkMDFcdWNkMDhcdWNkMDlcdWNkMGNcdWNkMTBc''@;'; + put 'put ''dWNkMThcdWNkMTlcdWNkMWJcdWNkMWRcdWNkMjRcdWNkMjhcdWNkMmNcdWNkMzlcdWNkNWNcdWNkNjBcdWNkNjRcdWNkNmNcdWNkNmRcdWNkNmZcdWNkNzFcdWNkNzhcdWNkODhcdWNkOTRcdWNkOTVcdWNkOThcdWNkOWNcdWNkYTRcdWNkYTVcdWNkYTdcdWNkYTlcdWNkYjBcdWNkYzRcdWNk''@;'; + put 'put ''Y2NcdWNkZDBcdWNkZThcdWNkZWNcdWNkZjBcdWNkZjhcdWNkZjlcdWNkZmJcdWNkZmRcdWNlMDRcdWNlMDhcdWNlMGNcdWNlMTRcdWNlMTlcdWNlMjBcdWNlMjFcdWNlMjRcdWNlMjhcdWNlMzBcdWNlMzFcdWNlMzNcdWNlMzUiXSxbImM0NDEiLCJcdWQ2YWJcdWQ2YWRcdWQ2YWVcdWQ2YWZc''@;'; + put 'put ''dWQ2YjEiLDcsIlx1ZDZiYVx1ZDZiYyIsNywiXHVkNmM2XHVkNmM3XHVkNmM5XHVkNmNhXHVkNmNiIl0sWyJjNDYxIiwiXHVkNmNkXHVkNmNlXHVkNmNmXHVkNmQwXHVkNmQyXHVkNmQzXHVkNmQ1XHVkNmQ2XHVkNmQ4XHVkNmRhIiw1LCJcdWQ2ZTFcdWQ2ZTJcdWQ2ZTNcdWQ2ZTVcdWQ2ZTZc''@;'; + put 'put ''dWQ2ZTdcdWQ2ZTkiLDRdLFsiYzQ4MSIsIlx1ZDZlZVx1ZDZlZlx1ZDZmMVx1ZDZmMlx1ZDZmM1x1ZDZmNFx1ZDZmNiIsNSwiXHVkNmZlXHVkNmZmXHVkNzAxXHVkNzAyXHVkNzAzXHVkNzA1IiwxMSwiXHVkNzEyXHVkNzEzXHVkNzE0XHVjZTU4XHVjZTU5XHVjZTVjXHVjZTVmXHVjZTYwXHVj''@;'; + put 'put ''ZTYxXHVjZTY4XHVjZTY5XHVjZTZiXHVjZTZkXHVjZTc0XHVjZTc1XHVjZTc4XHVjZTdjXHVjZTg0XHVjZTg1XHVjZTg3XHVjZTg5XHVjZTkwXHVjZTkxXHVjZTk0XHVjZTk4XHVjZWEwXHVjZWExXHVjZWEzXHVjZWE0XHVjZWE1XHVjZWFjXHVjZWFkXHVjZWMxXHVjZWU0XHVjZWU1XHVjZWU4''@;'; + put 'put ''XHVjZWViXHVjZWVjXHVjZWY0XHVjZWY1XHVjZWY3XHVjZWY4XHVjZWY5XHVjZjAwXHVjZjAxXHVjZjA0XHVjZjA4XHVjZjEwXHVjZjExXHVjZjEzXHVjZjE1XHVjZjFjXHVjZjIwXHVjZjI0XHVjZjJjXHVjZjJkXHVjZjJmXHVjZjMwXHVjZjMxXHVjZjM4XHVjZjU0XHVjZjU1XHVjZjU4XHVj''@;'; + put 'put ''ZjVjXHVjZjY0XHVjZjY1XHVjZjY3XHVjZjY5XHVjZjcwXHVjZjcxXHVjZjc0XHVjZjc4XHVjZjgwXHVjZjg1XHVjZjhjXHVjZmExXHVjZmE4XHVjZmIwXHVjZmM0XHVjZmUwXHVjZmUxXHVjZmU0XHVjZmU4XHVjZmYwXHVjZmYxXHVjZmYzXHVjZmY1XHVjZmZjXHVkMDAwXHVkMDA0XHVkMDEx''@;'; + put 'put ''XHVkMDE4XHVkMDJkXHVkMDM0XHVkMDM1XHVkMDM4XHVkMDNjIl0sWyJjNTQxIiwiXHVkNzE1XHVkNzE2XHVkNzE3XHVkNzFhXHVkNzFiXHVkNzFkXHVkNzFlXHVkNzFmXHVkNzIxIiw2LCJcdWQ3MmFcdWQ3MmNcdWQ3MmUiLDUsIlx1ZDczNlx1ZDczN1x1ZDczOSJdLFsiYzU2MSIsIlx1ZDcz''@;'; + put 'put ''YVx1ZDczYlx1ZDczZCIsNiwiXHVkNzQ1XHVkNzQ2XHVkNzQ4XHVkNzRhIiw1LCJcdWQ3NTJcdWQ3NTNcdWQ3NTVcdWQ3NWEiLDRdLFsiYzU4MSIsIlx1ZDc1Zlx1ZDc2Mlx1ZDc2NFx1ZDc2Nlx1ZDc2N1x1ZDc2OFx1ZDc2YVx1ZDc2Ylx1ZDc2ZFx1ZDc2ZVx1ZDc2Zlx1ZDc3MVx1ZDc3Mlx1''@;'; + put 'put ''ZDc3M1x1ZDc3NSIsNiwiXHVkNzdlXHVkNzdmXHVkNzgwXHVkNzgyIiw1LCJcdWQ3OGFcdWQ3OGJcdWQwNDRcdWQwNDVcdWQwNDdcdWQwNDlcdWQwNTBcdWQwNTRcdWQwNThcdWQwNjBcdWQwNmNcdWQwNmRcdWQwNzBcdWQwNzRcdWQwN2NcdWQwN2RcdWQwODFcdWQwYTRcdWQwYTVcdWQwYThc''@;'; + put 'put ''dWQwYWNcdWQwYjRcdWQwYjVcdWQwYjdcdWQwYjlcdWQwYzBcdWQwYzFcdWQwYzRcdWQwYzhcdWQwYzlcdWQwZDBcdWQwZDFcdWQwZDNcdWQwZDRcdWQwZDVcdWQwZGNcdWQwZGRcdWQwZTBcdWQwZTRcdWQwZWNcdWQwZWRcdWQwZWZcdWQwZjBcdWQwZjFcdWQwZjhcdWQxMGRcdWQxMzBcdWQx''@;'; + put 'put ''MzFcdWQxMzRcdWQxMzhcdWQxM2FcdWQxNDBcdWQxNDFcdWQxNDNcdWQxNDRcdWQxNDVcdWQxNGNcdWQxNGRcdWQxNTBcdWQxNTRcdWQxNWNcdWQxNWRcdWQxNWZcdWQxNjFcdWQxNjhcdWQxNmNcdWQxN2NcdWQxODRcdWQxODhcdWQxYTBcdWQxYTFcdWQxYTRcdWQxYThcdWQxYjBcdWQxYjFc''@;'; + put 'put ''dWQxYjNcdWQxYjVcdWQxYmFcdWQxYmNcdWQxYzBcdWQxZDhcdWQxZjRcdWQxZjhcdWQyMDdcdWQyMDlcdWQyMTBcdWQyMmNcdWQyMmRcdWQyMzBcdWQyMzRcdWQyM2NcdWQyM2RcdWQyM2ZcdWQyNDFcdWQyNDhcdWQyNWMiXSxbImM2NDEiLCJcdWQ3OGRcdWQ3OGVcdWQ3OGZcdWQ3OTEiLDYs''@;'; + put 'put ''Ilx1ZDc5YVx1ZDc5Y1x1ZDc5ZSIsNV0sWyJjNmExIiwiXHVkMjY0XHVkMjgwXHVkMjgxXHVkMjg0XHVkMjg4XHVkMjkwXHVkMjkxXHVkMjk1XHVkMjljXHVkMmEwXHVkMmE0XHVkMmFjXHVkMmIxXHVkMmI4XHVkMmI5XHVkMmJjXHVkMmJmXHVkMmMwXHVkMmMyXHVkMmM4XHVkMmM5XHVkMmNi''@;'; + put 'put ''XHVkMmQ0XHVkMmQ4XHVkMmRjXHVkMmU0XHVkMmU1XHVkMmYwXHVkMmYxXHVkMmY0XHVkMmY4XHVkMzAwXHVkMzAxXHVkMzAzXHVkMzA1XHVkMzBjXHVkMzBkXHVkMzBlXHVkMzEwXHVkMzE0XHVkMzE2XHVkMzFjXHVkMzFkXHVkMzFmXHVkMzIwXHVkMzIxXHVkMzI1XHVkMzI4XHVkMzI5XHVk''@;'; + put 'put ''MzJjXHVkMzMwXHVkMzM4XHVkMzM5XHVkMzNiXHVkMzNjXHVkMzNkXHVkMzQ0XHVkMzQ1XHVkMzdjXHVkMzdkXHVkMzgwXHVkMzg0XHVkMzhjXHVkMzhkXHVkMzhmXHVkMzkwXHVkMzkxXHVkMzk4XHVkMzk5XHVkMzljXHVkM2EwXHVkM2E4XHVkM2E5XHVkM2FiXHVkM2FkXHVkM2I0XHVkM2I4''@;'; + put 'put ''XHVkM2JjXHVkM2M0XHVkM2M1XHVkM2M4XHVkM2M5XHVkM2QwXHVkM2Q4XHVkM2UxXHVkM2UzXHVkM2VjXHVkM2VkXHVkM2YwXHVkM2Y0XHVkM2ZjXHVkM2ZkXHVkM2ZmXHVkNDAxIl0sWyJjN2ExIiwiXHVkNDA4XHVkNDFkXHVkNDQwXHVkNDQ0XHVkNDVjXHVkNDYwXHVkNDY0XHVkNDZkXHVk''@;'; + put 'put ''NDZmXHVkNDc4XHVkNDc5XHVkNDdjXHVkNDdmXHVkNDgwXHVkNDgyXHVkNDg4XHVkNDg5XHVkNDhiXHVkNDhkXHVkNDk0XHVkNGE5XHVkNGNjXHVkNGQwXHVkNGQ0XHVkNGRjXHVkNGRmXHVkNGU4XHVkNGVjXHVkNGYwXHVkNGY4XHVkNGZiXHVkNGZkXHVkNTA0XHVkNTA4XHVkNTBjXHVkNTE0''@;'; + put 'put ''XHVkNTE1XHVkNTE3XHVkNTNjXHVkNTNkXHVkNTQwXHVkNTQ0XHVkNTRjXHVkNTRkXHVkNTRmXHVkNTUxXHVkNTU4XHVkNTU5XHVkNTVjXHVkNTYwXHVkNTY1XHVkNTY4XHVkNTY5XHVkNTZiXHVkNTZkXHVkNTc0XHVkNTc1XHVkNTc4XHVkNTdjXHVkNTg0XHVkNTg1XHVkNTg3XHVkNTg4XHVk''@;'; + put 'put ''NTg5XHVkNTkwXHVkNWE1XHVkNWM4XHVkNWM5XHVkNWNjXHVkNWQwXHVkNWQyXHVkNWQ4XHVkNWQ5XHVkNWRiXHVkNWRkXHVkNWU0XHVkNWU1XHVkNWU4XHVkNWVjXHVkNWY0XHVkNWY1XHVkNWY3XHVkNWY5XHVkNjAwXHVkNjAxXHVkNjA0XHVkNjA4XHVkNjEwXHVkNjExXHVkNjEzXHVkNjE0''@;'; + put 'put ''XHVkNjE1XHVkNjFjXHVkNjIwIl0sWyJjOGExIiwiXHVkNjI0XHVkNjJkXHVkNjM4XHVkNjM5XHVkNjNjXHVkNjQwXHVkNjQ1XHVkNjQ4XHVkNjQ5XHVkNjRiXHVkNjRkXHVkNjUxXHVkNjU0XHVkNjU1XHVkNjU4XHVkNjVjXHVkNjY3XHVkNjY5XHVkNjcwXHVkNjcxXHVkNjc0XHVkNjgzXHVk''@;'; + put 'put ''Njg1XHVkNjhjXHVkNjhkXHVkNjkwXHVkNjk0XHVkNjlkXHVkNjlmXHVkNmExXHVkNmE4XHVkNmFjXHVkNmIwXHVkNmI5XHVkNmJiXHVkNmM0XHVkNmM1XHVkNmM4XHVkNmNjXHVkNmQxXHVkNmQ0XHVkNmQ3XHVkNmQ5XHVkNmUwXHVkNmU0XHVkNmU4XHVkNmYwXHVkNmY1XHVkNmZjXHVkNmZk''@;'; + put 'put ''XHVkNzAwXHVkNzA0XHVkNzExXHVkNzE4XHVkNzE5XHVkNzFjXHVkNzIwXHVkNzI4XHVkNzI5XHVkNzJiXHVkNzJkXHVkNzM0XHVkNzM1XHVkNzM4XHVkNzNjXHVkNzQ0XHVkNzQ3XHVkNzQ5XHVkNzUwXHVkNzUxXHVkNzU0XHVkNzU2XHVkNzU3XHVkNzU4XHVkNzU5XHVkNzYwXHVkNzYxXHVk''@;'; + put 'put ''NzYzXHVkNzY1XHVkNzY5XHVkNzZjXHVkNzcwXHVkNzc0XHVkNzdjXHVkNzdkXHVkNzgxXHVkNzg4XHVkNzg5XHVkNzhjXHVkNzkwXHVkNzk4XHVkNzk5XHVkNzliXHVkNzlkIl0sWyJjYWExIiwiXHU0ZjNkXHU0ZjczXHU1MDQ3XHU1MGY5XHU1MmEwXHU1M2VmXHU1NDc1XHU1NGU1XHU1NjA5''@;'; + put 'put ''XHU1YWMxXHU1YmI2XHU2Njg3XHU2N2I2XHU2N2I3XHU2N2VmXHU2YjRjXHU3M2MyXHU3NWMyXHU3YTNjXHU4MmRiXHU4MzA0XHU4ODU3XHU4ODg4XHU4YTM2XHU4Y2M4XHU4ZGNmXHU4ZWZiXHU4ZmU2XHU5OWQ1XHU1MjNiXHU1Mzc0XHU1NDA0XHU2MDZhXHU2MTY0XHU2YmJjXHU3M2NmXHU4''@;'; + put 'put ''MTFhXHU4OWJhXHU4OWQyXHU5NWEzXHU0ZjgzXHU1MjBhXHU1OGJlXHU1OTc4XHU1OWU2XHU1ZTcyXHU1ZTc5XHU2MWM3XHU2M2MwXHU2NzQ2XHU2N2VjXHU2ODdmXHU2Zjk3XHU3NjRlXHU3NzBiXHU3OGY1XHU3YTA4XHU3YWZmXHU3YzIxXHU4MDlkXHU4MjZlXHU4MjcxXHU4YWViXHU5NTkz''@;'; + put 'put ''XHU0ZTZiXHU1NTlkXHU2NmY3XHU2ZTM0XHU3OGEzXHU3YWVkXHU4NDViXHU4OTEwXHU4NzRlXHU5N2E4XHU1MmQ4XHU1NzRlXHU1ODJhXHU1ZDRjXHU2MTFmXHU2MWJlXHU2MjIxXHU2NTYyXHU2N2QxXHU2YTQ0XHU2ZTFiXHU3NTE4XHU3NWIzXHU3NmUzXHU3N2IwXHU3ZDNhXHU5MGFmXHU5''@;'; + put 'put ''NDUxXHU5NDUyXHU5Zjk1Il0sWyJjYmExIiwiXHU1MzIzXHU1Y2FjXHU3NTMyXHU4MGRiXHU5MjQwXHU5NTk4XHU1MjViXHU1ODA4XHU1OWRjXHU1Y2ExXHU1ZDE3XHU1ZWI3XHU1ZjNhXHU1ZjRhXHU2MTc3XHU2YzVmXHU3NTdhXHU3NTg2XHU3Y2UwXHU3ZDczXHU3ZGIxXHU3ZjhjXHU4MTU0''@;'; + put 'put ''XHU4MjIxXHU4NTkxXHU4OTQxXHU4YjFiXHU5MmZjXHU5NjRkXHU5YzQ3XHU0ZWNiXHU0ZWY3XHU1MDBiXHU1MWYxXHU1ODRmXHU2MTM3XHU2MTNlXHU2MTY4XHU2NTM5XHU2OWVhXHU2ZjExXHU3NWE1XHU3Njg2XHU3NmQ2XHU3Yjg3XHU4MmE1XHU4NGNiXHVmOTAwXHU5M2E3XHU5NThiXHU1''@;'; + put 'put ''NTgwXHU1YmEyXHU1NzUxXHVmOTAxXHU3Y2IzXHU3ZmI5XHU5MWI1XHU1MDI4XHU1M2JiXHU1YzQ1XHU1ZGU4XHU2MmQyXHU2MzZlXHU2NGRhXHU2NGU3XHU2ZTIwXHU3MGFjXHU3OTViXHU4ZGRkXHU4ZTFlXHVmOTAyXHU5MDdkXHU5MjQ1XHU5MmY4XHU0ZTdlXHU0ZWY2XHU1MDY1XHU1ZGZl''@;'; + put 'put ''XHU1ZWZhXHU2MTA2XHU2OTU3XHU4MTcxXHU4NjU0XHU4ZTQ3XHU5Mzc1XHU5YTJiXHU0ZTVlXHU1MDkxXHU2NzcwXHU2ODQwXHU1MTA5XHU1MjhkXHU1MjkyXHU2YWEyIl0sWyJjY2ExIiwiXHU3N2JjXHU5MjEwXHU5ZWQ0XHU1MmFiXHU2MDJmXHU4ZmYyXHU1MDQ4XHU2MWE5XHU2M2VkXHU2''@;'; + put 'put ''NGNhXHU2ODNjXHU2YTg0XHU2ZmMwXHU4MTg4XHU4OWExXHU5Njk0XHU1ODA1XHU3MjdkXHU3MmFjXHU3NTA0XHU3ZDc5XHU3ZTZkXHU4MGE5XHU4OThiXHU4Yjc0XHU5MDYzXHU5ZDUxXHU2Mjg5XHU2YzdhXHU2ZjU0XHU3ZDUwXHU3ZjNhXHU4YTIzXHU1MTdjXHU2MTRhXHU3YjlkXHU4YjE5''@;'; + put 'put ''XHU5MjU3XHU5MzhjXHU0ZWFjXHU0ZmQzXHU1MDFlXHU1MGJlXHU1MTA2XHU1MmMxXHU1MmNkXHU1MzdmXHU1NzcwXHU1ODgzXHU1ZTlhXHU1ZjkxXHU2MTc2XHU2MWFjXHU2NGNlXHU2NTZjXHU2NjZmXHU2NmJiXHU2NmY0XHU2ODk3XHU2ZDg3XHU3MDg1XHU3MGYxXHU3NDlmXHU3NGE1XHU3''@;'; + put 'put ''NGNhXHU3NWQ5XHU3ODZjXHU3OGVjXHU3YWRmXHU3YWY2XHU3ZDQ1XHU3ZDkzXHU4MDE1XHU4MDNmXHU4MTFiXHU4Mzk2XHU4YjY2XHU4ZjE1XHU5MDE1XHU5M2UxXHU5ODAzXHU5ODM4XHU5YTVhXHU5YmU4XHU0ZmMyXHU1NTUzXHU1ODNhXHU1OTUxXHU1YjYzXHU1YzQ2XHU2MGI4XHU2MjEy''@;'; + put 'put ''XHU2ODQyXHU2OGIwIl0sWyJjZGExIiwiXHU2OGU4XHU2ZWFhXHU3NTRjXHU3Njc4XHU3OGNlXHU3YTNkXHU3Y2ZiXHU3ZTZiXHU3ZTdjXHU4YTA4XHU4YWExXHU4YzNmXHU5NjhlXHU5ZGM0XHU1M2U0XHU1M2U5XHU1NDRhXHU1NDcxXHU1NmZhXHU1OWQxXHU1YjY0XHU1YzNiXHU1ZWFiXHU2''@;'; + put 'put ''MmY3XHU2NTM3XHU2NTQ1XHU2NTcyXHU2NmEwXHU2N2FmXHU2OWMxXHU2Y2JkXHU3NWZjXHU3NjkwXHU3NzdlXHU3YTNmXHU3Zjk0XHU4MDAzXHU4MGExXHU4MThmXHU4MmU2XHU4MmZkXHU4M2YwXHU4NWMxXHU4ODMxXHU4OGI0XHU4YWE1XHVmOTAzXHU4ZjljXHU5MzJlXHU5NmM3XHU5ODY3''@;'; + put 'put ''XHU5YWQ4XHU5ZjEzXHU1NGVkXHU2NTliXHU2NmYyXHU2ODhmXHU3YTQwXHU4YzM3XHU5ZDYwXHU1NmYwXHU1NzY0XHU1ZDExXHU2NjA2XHU2OGIxXHU2OGNkXHU2ZWZlXHU3NDI4XHU4ODllXHU5YmU0XHU2YzY4XHVmOTA0XHU5YWE4XHU0ZjliXHU1MTZjXHU1MTcxXHU1MjlmXHU1YjU0XHU1''@;'; + put 'put ''ZGU1XHU2MDUwXHU2MDZkXHU2MmYxXHU2M2E3XHU2NTNiXHU3M2Q5XHU3YTdhXHU4NmEzXHU4Y2EyXHU5NzhmXHU0ZTMyXHU1YmUxXHU2MjA4XHU2NzljXHU3NGRjIl0sWyJjZWExIiwiXHU3OWQxXHU4M2QzXHU4YTg3XHU4YWIyXHU4ZGU4XHU5MDRlXHU5MzRiXHU5ODQ2XHU1ZWQzXHU2OWU4''@;'; + put 'put ''XHU4NWZmXHU5MGVkXHVmOTA1XHU1MWEwXHU1Yjk4XHU1YmVjXHU2MTYzXHU2OGZhXHU2YjNlXHU3MDRjXHU3NDJmXHU3NGQ4XHU3YmExXHU3ZjUwXHU4M2M1XHU4OWMwXHU4Y2FiXHU5NWRjXHU5OTI4XHU1MjJlXHU2MDVkXHU2MmVjXHU5MDAyXHU0ZjhhXHU1MTQ5XHU1MzIxXHU1OGQ5XHU1''@;'; + put 'put ''ZWUzXHU2NmUwXHU2ZDM4XHU3MDlhXHU3MmMyXHU3M2Q2XHU3YjUwXHU4MGYxXHU5NDViXHU1MzY2XHU2MzliXHU3ZjZiXHU0ZTU2XHU1MDgwXHU1ODRhXHU1OGRlXHU2MDJhXHU2MTI3XHU2MmQwXHU2OWQwXHU5YjQxXHU1YjhmXHU3ZDE4XHU4MGIxXHU4ZjVmXHU0ZWE0XHU1MGQxXHU1NGFj''@;'; + put 'put ''XHU1NWFjXHU1YjBjXHU1ZGEwXHU1ZGU3XHU2NTJhXHU2NTRlXHU2ODIxXHU2YTRiXHU3MmUxXHU3NjhlXHU3N2VmXHU3ZDVlXHU3ZmY5XHU4MWEwXHU4NTRlXHU4NmRmXHU4ZjAzXHU4ZjRlXHU5MGNhXHU5OTAzXHU5YTU1XHU5YmFiXHU0ZTE4XHU0ZTQ1XHU0ZTVkXHU0ZWM3XHU0ZmYxXHU1''@;'; + put 'put ''MTc3XHU1MmZlIl0sWyJjZmExIiwiXHU1MzQwXHU1M2UzXHU1M2U1XHU1NDhlXHU1NjE0XHU1Nzc1XHU1N2EyXHU1YmM3XHU1ZDg3XHU1ZWQwXHU2MWZjXHU2MmQ4XHU2NTUxXHU2N2I4XHU2N2U5XHU2OWNiXHU2YjUwXHU2YmM2XHU2YmVjXHU2YzQyXHU2ZTlkXHU3MDc4XHU3MmQ3XHU3Mzk2''@;'; + put 'put ''XHU3NDAzXHU3N2JmXHU3N2U5XHU3YTc2XHU3ZDdmXHU4MDA5XHU4MWZjXHU4MjA1XHU4MjBhXHU4MmRmXHU4ODYyXHU4YjMzXHU4Y2ZjXHU4ZWMwXHU5MDExXHU5MGIxXHU5MjY0XHU5MmI2XHU5OWQyXHU5YTQ1XHU5Y2U5XHU5ZGQ3XHU5ZjljXHU1NzBiXHU1YzQwXHU4M2NhXHU5N2EwXHU5''@;'; + put 'put ''N2FiXHU5ZWI0XHU1NDFiXHU3YTk4XHU3ZmE0XHU4OGQ5XHU4ZWNkXHU5MGUxXHU1ODAwXHU1YzQ4XHU2Mzk4XHU3YTlmXHU1YmFlXHU1ZjEzXHU3YTc5XHU3YWFlXHU4MjhlXHU4ZWFjXHU1MDI2XHU1MjM4XHU1MmY4XHU1Mzc3XHU1NzA4XHU2MmYzXHU2MzcyXHU2YjBhXHU2ZGMzXHU3NzM3''@;'; + put 'put ''XHU1M2E1XHU3MzU3XHU4NTY4XHU4ZTc2XHU5NWQ1XHU2NzNhXHU2YWMzXHU2ZjcwXHU4YTZkXHU4ZWNjXHU5OTRiXHVmOTA2XHU2Njc3XHU2Yjc4XHU4Y2I0Il0sWyJkMGExIiwiXHU5YjNjXHVmOTA3XHU1M2ViXHU1NzJkXHU1OTRlXHU2M2M2XHU2OWZiXHU3M2VhXHU3ODQ1XHU3YWJhXHU3''@;'; + put 'put ''YWM1XHU3Y2ZlXHU4NDc1XHU4OThmXHU4ZDczXHU5MDM1XHU5NWE4XHU1MmZiXHU1NzQ3XHU3NTQ3XHU3YjYwXHU4M2NjXHU5MjFlXHVmOTA4XHU2YTU4XHU1MTRiXHU1MjRiXHU1Mjg3XHU2MjFmXHU2OGQ4XHU2OTc1XHU5Njk5XHU1MGM1XHU1MmE0XHU1MmU0XHU2MWMzXHU2NWE0XHU2ODM5''@;'; + put 'put ''XHU2OWZmXHU3NDdlXHU3YjRiXHU4MmI5XHU4M2ViXHU4OWIyXHU4YjM5XHU4ZmQxXHU5OTQ5XHVmOTA5XHU0ZWNhXHU1OTk3XHU2NGQyXHU2NjExXHU2YThlXHU3NDM0XHU3OTgxXHU3OWJkXHU4MmE5XHU4ODdlXHU4ODdmXHU4OTVmXHVmOTBhXHU5MzI2XHU0ZjBiXHU1M2NhXHU2MDI1XHU2''@;'; + put 'put ''MjcxXHU2YzcyXHU3ZDFhXHU3ZDY2XHU0ZTk4XHU1MTYyXHU3N2RjXHU4MGFmXHU0ZjAxXHU0ZjBlXHU1MTc2XHU1MTgwXHU1NWRjXHU1NjY4XHU1NzNiXHU1N2ZhXHU1N2ZjXHU1OTE0XHU1OTQ3XHU1OTkzXHU1YmM0XHU1YzkwXHU1ZDBlXHU1ZGYxXHU1ZTdlXHU1ZmNjXHU2MjgwXHU2NWQ3''@;'; + put 'put ''XHU2NWUzIl0sWyJkMWExIiwiXHU2NzFlXHU2NzFmXHU2NzVlXHU2OGNiXHU2OGM0XHU2YTVmXHU2YjNhXHU2YzIzXHU2YzdkXHU2YzgyXHU2ZGM3XHU3Mzk4XHU3NDI2XHU3NDJhXHU3NDgyXHU3NGEzXHU3NTc4XHU3NTdmXHU3ODgxXHU3OGVmXHU3OTQxXHU3OTQ3XHU3OTQ4XHU3OTdhXHU3''@;'; + put 'put ''Yjk1XHU3ZDAwXHU3ZGJhXHU3Zjg4XHU4MDA2XHU4MDJkXHU4MDhjXHU4YTE4XHU4YjRmXHU4YzQ4XHU4ZDc3XHU5MzIxXHU5MzI0XHU5OGUyXHU5OTUxXHU5YTBlXHU5YTBmXHU5YTY1XHU5ZTkyXHU3ZGNhXHU0Zjc2XHU1NDA5XHU2MmVlXHU2ODU0XHU5MWQxXHU1NWFiXHU1MTNhXHVmOTBi''@;'; + put 'put ''XHVmOTBjXHU1YTFjXHU2MWU2XHVmOTBkXHU2MmNmXHU2MmZmXHVmOTBlIiw1LCJcdTkwYTNcdWY5MTQiLDQsIlx1OGFmZVx1ZjkxOVx1ZjkxYVx1ZjkxYlx1ZjkxY1x1NjY5Nlx1ZjkxZFx1NzE1Nlx1ZjkxZVx1ZjkxZlx1OTZlM1x1ZjkyMFx1NjM0Zlx1NjM3YVx1NTM1N1x1ZjkyMVx1Njc4''@;'; + put 'put ''Zlx1Njk2MFx1NmU3M1x1ZjkyMlx1NzUzN1x1ZjkyM1x1ZjkyNFx1ZjkyNSJdLFsiZDJhMSIsIlx1N2QwZFx1ZjkyNlx1ZjkyN1x1ODg3Mlx1NTZjYVx1NWExOFx1ZjkyOCIsNCwiXHU0ZTQzXHVmOTJkXHU1MTY3XHU1OTQ4XHU2N2YwXHU4MDEwXHVmOTJlXHU1OTczXHU1ZTc0XHU2NDlhXHU3''@;'; + put 'put ''OWNhXHU1ZmY1XHU2MDZjXHU2MmM4XHU2MzdiXHU1YmU3XHU1YmQ3XHU1MmFhXHVmOTJmXHU1OTc0XHU1ZjI5XHU2MDEyXHVmOTMwXHVmOTMxXHVmOTMyXHU3NDU5XHVmOTMzIiw1LCJcdTk5ZDFcdWY5MzkiLDEwLCJcdTZmYzNcdWY5NDRcdWY5NDVcdTgxYmZcdThmYjJcdTYwZjFcdWY5NDZc''@;'; + put 'put ''dWY5NDdcdTgxNjZcdWY5NDhcdWY5NDlcdTVjM2ZcdWY5NGEiLDcsIlx1NWFlOVx1OGEyNVx1Njc3Ylx1N2QxMFx1Zjk1MiIsNSwiXHU4MGZkXHVmOTU4XHVmOTU5XHU1YzNjXHU2Y2U1XHU1MzNmXHU2ZWJhXHU1OTFhXHU4MzM2Il0sWyJkM2ExIiwiXHU0ZTM5XHU0ZWI2XHU0ZjQ2XHU1NWFl''@;'; + put 'put ''XHU1NzE4XHU1OGM3XHU1ZjU2XHU2NWI3XHU2NWU2XHU2YTgwXHU2YmI1XHU2ZTRkXHU3N2VkXHU3YWVmXHU3YzFlXHU3ZGRlXHU4NmNiXHU4ODkyXHU5MTMyXHU5MzViXHU2NGJiXHU2ZmJlXHU3MzdhXHU3NWI4XHU5MDU0XHU1NTU2XHU1NzRkXHU2MWJhXHU2NGQ0XHU2NmM3XHU2ZGUxXHU2''@;'; + put 'put ''ZTViXHU2ZjZkXHU2ZmI5XHU3NWYwXHU4MDQzXHU4MWJkXHU4NTQxXHU4OTgzXHU4YWM3XHU4YjVhXHU5MzFmXHU2YzkzXHU3NTUzXHU3YjU0XHU4ZTBmXHU5MDVkXHU1NTEwXHU1ODAyXHU1ODU4XHU1ZTYyXHU2MjA3XHU2NDllXHU2OGUwXHU3NTc2XHU3Y2Q2XHU4N2IzXHU5ZWU4XHU0ZWUz''@;'; + put 'put ''XHU1Nzg4XHU1NzZlXHU1OTI3XHU1YzBkXHU1Y2IxXHU1ZTM2XHU1Zjg1XHU2MjM0XHU2NGUxXHU3M2IzXHU4MWZhXHU4ODhiXHU4Y2I4XHU5NjhhXHU5ZWRiXHU1Yjg1XHU1ZmI3XHU2MGIzXHU1MDEyXHU1MjAwXHU1MjMwXHU1NzE2XHU1ODM1XHU1ODU3XHU1YzBlXHU1YzYwXHU1Y2Y2XHU1''@;'; + put 'put ''ZDhiXHU1ZWE2XHU1ZjkyXHU2MGJjXHU2MzExXHU2Mzg5XHU2NDE3XHU2ODQzIl0sWyJkNGExIiwiXHU2OGY5XHU2YWMyXHU2ZGQ4XHU2ZTIxXHU2ZWQ0XHU2ZmU0XHU3MWZlXHU3NmRjXHU3Nzc5XHU3OWIxXHU3YTNiXHU4NDA0XHU4OWE5XHU4Y2VkXHU4ZGYzXHU4ZTQ4XHU5MDAzXHU5MDE0''@;'; + put 'put ''XHU5MDUzXHU5MGZkXHU5MzRkXHU5Njc2XHU5N2RjXHU2YmQyXHU3MDA2XHU3MjU4XHU3MmEyXHU3MzY4XHU3NzYzXHU3OWJmXHU3YmU0XHU3ZTliXHU4YjgwXHU1OGE5XHU2MGM3XHU2NTY2XHU2NWZkXHU2NmJlXHU2YzhjXHU3MTFlXHU3MWM5XHU4YzVhXHU5ODEzXHU0ZTZkXHU3YTgxXHU0''@;'; + put 'put ''ZWRkXHU1MWFjXHU1MWNkXHU1MmQ1XHU1NDBjXHU2MWE3XHU2NzcxXHU2ODUwXHU2OGRmXHU2ZDFlXHU2ZjdjXHU3NWJjXHU3N2IzXHU3YWU1XHU4MGY0XHU4NDYzXHU5Mjg1XHU1MTVjXHU2NTk3XHU2NzVjXHU2NzkzXHU3NWQ4XHU3YWM3XHU4MzczXHVmOTVhXHU4YzQ2XHU5MDE3XHU5ODJk''@;'; + put 'put ''XHU1YzZmXHU4MWMwXHU4MjlhXHU5MDQxXHU5MDZmXHU5MjBkXHU1Zjk3XHU1ZDlkXHU2YTU5XHU3MWM4XHU3NjdiXHU3YjQ5XHU4NWU0XHU4YjA0XHU5MTI3XHU5YTMwXHU1NTg3XHU2MWY2XHVmOTViXHU3NjY5XHU3Zjg1Il0sWyJkNWExIiwiXHU4NjNmXHU4N2JhXHU4OGY4XHU5MDhmXHVm''@;'; + put 'put ''OTVjXHU2ZDFiXHU3MGQ5XHU3M2RlXHU3ZDYxXHU4NDNkXHVmOTVkXHU5MTZhXHU5OWYxXHVmOTVlXHU0ZTgyXHU1Mzc1XHU2YjA0XHU2YjEyXHU3MDNlXHU3MjFiXHU4NjJkXHU5ZTFlXHU1MjRjXHU4ZmEzXHU1ZDUwXHU2NGU1XHU2NTJjXHU2YjE2XHU2ZmViXHU3YzQzXHU3ZTljXHU4NWNk''@;'; + put 'put ''XHU4OTY0XHU4OWJkXHU2MmM5XHU4MWQ4XHU4ODFmXHU1ZWNhXHU2NzE3XHU2ZDZhXHU3MmZjXHU3NDA1XHU3NDZmXHU4NzgyXHU5MGRlXHU0Zjg2XHU1ZDBkXHU1ZmEwXHU4NDBhXHU1MWI3XHU2M2EwXHU3NTY1XHU0ZWFlXHU1MDA2XHU1MTY5XHU1MWM5XHU2ODgxXHU2YTExXHU3Y2FlXHU3''@;'; + put 'put ''Y2IxXHU3Y2U3XHU4MjZmXHU4YWQyXHU4ZjFiXHU5MWNmXHU0ZmI2XHU1MTM3XHU1MmY1XHU1NDQyXHU1ZWVjXHU2MTZlXHU2MjNlXHU2NWM1XHU2YWRhXHU2ZmZlXHU3OTJhXHU4NWRjXHU4ODIzXHU5NWFkXHU5YTYyXHU5YTZhXHU5ZTk3XHU5ZWNlXHU1MjliXHU2NmM2XHU2Yjc3XHU3MDFk''@;'; + put 'put ''XHU3OTJiXHU4ZjYyXHU5NzQyXHU2MTkwXHU2MjAwXHU2NTIzXHU2ZjIzIl0sWyJkNmExIiwiXHU3MTQ5XHU3NDg5XHU3ZGY0XHU4MDZmXHU4NGVlXHU4ZjI2XHU5MDIzXHU5MzRhXHU1MWJkXHU1MjE3XHU1MmEzXHU2ZDBjXHU3MGM4XHU4OGMyXHU1ZWM5XHU2NTgyXHU2YmFlXHU2ZmMyXHU3''@;'; + put 'put ''YzNlXHU3Mzc1XHU0ZWU0XHU0ZjM2XHU1NmY5XHVmOTVmXHU1Y2JhXHU1ZGJhXHU2MDFjXHU3M2IyXHU3YjJkXHU3ZjlhXHU3ZmNlXHU4MDQ2XHU5MDFlXHU5MjM0XHU5NmY2XHU5NzQ4XHU5ODE4XHU5ZjYxXHU0ZjhiXHU2ZmE3XHU3OWFlXHU5MWI0XHU5NmI3XHU1MmRlXHVmOTYwXHU2NDg4''@;'; + put 'put ''XHU2NGM0XHU2YWQzXHU2ZjVlXHU3MDE4XHU3MjEwXHU3NmU3XHU4MDAxXHU4NjA2XHU4NjVjXHU4ZGVmXHU4ZjA1XHU5NzMyXHU5YjZmXHU5ZGZhXHU5ZTc1XHU3ODhjXHU3OTdmXHU3ZGEwXHU4M2M5XHU5MzA0XHU5ZTdmXHU5ZTkzXHU4YWQ2XHU1OGRmXHU1ZjA0XHU2NzI3XHU3MDI3XHU3''@;'; + put 'put ''NGNmXHU3YzYwXHU4MDdlXHU1MTIxXHU3MDI4XHU3MjYyXHU3OGNhXHU4Y2MyXHU4Y2RhXHU4Y2Y0XHU5NmY3XHU0ZTg2XHU1MGRhXHU1YmVlXHU1ZWQ2XHU2NTk5XHU3MWNlXHU3NjQyXHU3N2FkXHU4MDRhXHU4NGZjIl0sWyJkN2ExIiwiXHU5MDdjXHU5YjI3XHU5ZjhkXHU1OGQ4XHU1YTQx''@;'; + put 'put ''XHU1YzYyXHU2YTEzXHU2ZGRhXHU2ZjBmXHU3NjNiXHU3ZDJmXHU3ZTM3XHU4NTFlXHU4OTM4XHU5M2U0XHU5NjRiXHU1Mjg5XHU2NWQyXHU2N2YzXHU2OWI0XHU2ZDQxXHU2ZTljXHU3MDBmXHU3NDA5XHU3NDYwXHU3NTU5XHU3NjI0XHU3ODZiXHU4YjJjXHU5ODVlXHU1MTZkXHU2MjJlXHU5''@;'; + put 'put ''Njc4XHU0Zjk2XHU1MDJiXHU1ZDE5XHU2ZGVhXHU3ZGI4XHU4ZjJhXHU1ZjhiXHU2MTQ0XHU2ODE3XHVmOTYxXHU5Njg2XHU1MmQyXHU4MDhiXHU1MWRjXHU1MWNjXHU2OTVlXHU3YTFjXHU3ZGJlXHU4M2YxXHU5Njc1XHU0ZmRhXHU1MjI5XHU1Mzk4XHU1NDBmXHU1NTBlXHU1YzY1XHU2MGE3''@;'; + put 'put ''XHU2NzRlXHU2OGE4XHU2ZDZjXHU3MjgxXHU3MmY4XHU3NDA2XHU3NDgzXHVmOTYyXHU3NWUyXHU3YzZjXHU3Zjc5XHU3ZmI4XHU4Mzg5XHU4OGNmXHU4OGUxXHU5MWNjXHU5MWQwXHU5NmUyXHU5YmM5XHU1NDFkXHU2ZjdlXHU3MWQwXHU3NDk4XHU4NWZhXHU4ZWFhXHU5NmEzXHU5YzU3XHU5''@;'; + put 'put ''ZTlmXHU2Nzk3XHU2ZGNiXHU3NDMzXHU4MWU4XHU5NzE2XHU3ODJjIl0sWyJkOGExIiwiXHU3YWNiXHU3YjIwXHU3YzkyXHU2NDY5XHU3NDZhXHU3NWYyXHU3OGJjXHU3OGU4XHU5OWFjXHU5YjU0XHU5ZWJiXHU1YmRlXHU1ZTU1XHU2ZjIwXHU4MTljXHU4M2FiXHU5MDg4XHU0ZTA3XHU1MzRk''@;'; + put 'put ''XHU1YTI5XHU1ZGQyXHU1ZjRlXHU2MTYyXHU2MzNkXHU2NjY5XHU2NmZjXHU2ZWZmXHU2ZjJiXHU3MDYzXHU3NzllXHU4NDJjXHU4NTEzXHU4ODNiXHU4ZjEzXHU5OTQ1XHU5YzNiXHU1NTFjXHU2MmI5XHU2NzJiXHU2Y2FiXHU4MzA5XHU4OTZhXHU5NzdhXHU0ZWExXHU1OTg0XHU1ZmQ4XHU1''@;'; + put 'put ''ZmQ5XHU2NzFiXHU3ZGIyXHU3ZjU0XHU4MjkyXHU4MzJiXHU4M2JkXHU4ZjFlXHU5MDk5XHU1N2NiXHU1OWI5XHU1YTkyXHU1YmQwXHU2NjI3XHU2NzlhXHU2ODg1XHU2YmNmXHU3MTY0XHU3Zjc1XHU4Y2I3XHU4Y2UzXHU5MDgxXHU5YjQ1XHU4MTA4XHU4YzhhXHU5NjRjXHU5YTQwXHU5ZWE1''@;'; + put 'put ''XHU1YjVmXHU2YzEzXHU3MzFiXHU3NmYyXHU3NmRmXHU4NDBjXHU1MWFhXHU4OTkzXHU1MTRkXHU1MTk1XHU1MmM5XHU2OGM5XHU2Yzk0XHU3NzA0XHU3NzIwXHU3ZGJmXHU3ZGVjXHU5NzYyXHU5ZWI1XHU2ZWM1Il0sWyJkOWExIiwiXHU4NTExXHU1MWE1XHU1NDBkXHU1NDdkXHU2NjBlXHU2''@;'; + put 'put ''NjlkXHU2OTI3XHU2ZTlmXHU3NmJmXHU3NzkxXHU4MzE3XHU4NGMyXHU4NzlmXHU5MTY5XHU5Mjk4XHU5Y2Y0XHU4ODgyXHU0ZmFlXHU1MTkyXHU1MmRmXHU1OWM2XHU1ZTNkXHU2MTU1XHU2NDc4XHU2NDc5XHU2NmFlXHU2N2QwXHU2YTIxXHU2YmNkXHU2YmRiXHU3MjVmXHU3MjYxXHU3NDQx''@;'; + put 'put ''XHU3NzM4XHU3N2RiXHU4MDE3XHU4MmJjXHU4MzA1XHU4YjAwXHU4YjI4XHU4YzhjXHU2NzI4XHU2YzkwXHU3MjY3XHU3NmVlXHU3NzY2XHU3YTQ2XHU5ZGE5XHU2YjdmXHU2YzkyXHU1OTIyXHU2NzI2XHU4NDk5XHU1MzZmXHU1ODkzXHU1OTk5XHU1ZWRmXHU2M2NmXHU2NjM0XHU2NzczXHU2''@;'; + put 'put ''ZTNhXHU3MzJiXHU3YWQ3XHU4MmQ3XHU5MzI4XHU1MmQ5XHU1ZGViXHU2MWFlXHU2MWNiXHU2MjBhXHU2MmM3XHU2NGFiXHU2NWUwXHU2OTU5XHU2YjY2XHU2YmNiXHU3MTIxXHU3M2Y3XHU3NTVkXHU3ZTQ2XHU4MjFlXHU4MzAyXHU4NTZhXHU4YWEzXHU4Y2JmXHU5NzI3XHU5ZDYxXHU1OGE4''@;'; + put 'put ''XHU5ZWQ4XHU1MDExXHU1MjBlXHU1NDNiXHU1NTRmXHU2NTg3Il0sWyJkYWExIiwiXHU2Yzc2XHU3ZDBhXHU3ZDBiXHU4MDVlXHU4NjhhXHU5NTgwXHU5NmVmXHU1MmZmXHU2Yzk1XHU3MjY5XHU1NDczXHU1YTlhXHU1YzNlXHU1ZDRiXHU1ZjRjXHU1ZmFlXHU2NzJhXHU2OGI2XHU2OTYzXHU2''@;'; + put 'put ''ZTNjXHU2ZTQ0XHU3NzA5XHU3YzczXHU3ZjhlXHU4NTg3XHU4YjBlXHU4ZmY3XHU5NzYxXHU5ZWY0XHU1Y2I3XHU2MGI2XHU2MTBkXHU2MWFiXHU2NTRmXHU2NWZiXHU2NWZjXHU2YzExXHU2Y2VmXHU3MzlmXHU3M2M5XHU3ZGUxXHU5NTk0XHU1YmM2XHU4NzFjXHU4YjEwXHU1MjVkXHU1MzVh''@;'; + put 'put ''XHU2MmNkXHU2NDBmXHU2NGIyXHU2NzM0XHU2YTM4XHU2Y2NhXHU3M2MwXHU3NDllXHU3Yjk0XHU3Yzk1XHU3ZTFiXHU4MThhXHU4MjM2XHU4NTg0XHU4ZmViXHU5NmY5XHU5OWMxXHU0ZjM0XHU1MzRhXHU1M2NkXHU1M2RiXHU2MmNjXHU2NDJjXHU2NTAwXHU2NTkxXHU2OWMzXHU2Y2VlXHU2''@;'; + put 'put ''ZjU4XHU3M2VkXHU3NTU0XHU3NjIyXHU3NmU0XHU3NmZjXHU3OGQwXHU3OGZiXHU3OTJjXHU3ZDQ2XHU4MjJjXHU4N2UwXHU4ZmQ0XHU5ODEyXHU5OGVmXHU1MmMzXHU2MmQ0XHU2NGE1XHU2ZTI0XHU2ZjUxIl0sWyJkYmExIiwiXHU3NjdjXHU4ZGNiXHU5MWIxXHU5MjYyXHU5YWVlXHU5YjQz''@;'; + put 'put ''XHU1MDIzXHU1MDhkXHU1NzRhXHU1OWE4XHU1YzI4XHU1ZTQ3XHU1Zjc3XHU2MjNmXHU2NTNlXHU2NWI5XHU2NWMxXHU2NjA5XHU2NzhiXHU2OTljXHU2ZWMyXHU3OGM1XHU3ZDIxXHU4MGFhXHU4MTgwXHU4MjJiXHU4MmIzXHU4NGExXHU4NjhjXHU4YTJhXHU4YjE3XHU5MGE2XHU5NjMyXHU5''@;'; + put 'put ''ZjkwXHU1MDBkXHU0ZmYzXHVmOTYzXHU1N2Y5XHU1Zjk4XHU2MmRjXHU2MzkyXHU2NzZmXHU2ZTQzXHU3MTE5XHU3NmMzXHU4MGNjXHU4MGRhXHU4OGY0XHU4OGY1XHU4OTE5XHU4Y2UwXHU4ZjI5XHU5MTRkXHU5NjZhXHU0ZjJmXHU0ZjcwXHU1ZTFiXHU2N2NmXHU2ODIyXHU3NjdkXHU3Njdl''@;'; + put 'put ''XHU5YjQ0XHU1ZTYxXHU2YTBhXHU3MTY5XHU3MWQ0XHU3NTZhXHVmOTY0XHU3ZTQxXHU4NTQzXHU4NWU5XHU5OGRjXHU0ZjEwXHU3YjRmXHU3ZjcwXHU5NWE1XHU1MWUxXHU1ZTA2XHU2OGI1XHU2YzNlXHU2YzRlXHU2Y2RiXHU3MmFmXHU3YmM0XHU4MzAzXHU2Y2Q1XHU3NDNhXHU1MGZiXHU1''@;'; + put 'put ''Mjg4XHU1OGMxXHU2NGQ4XHU2YTk3XHU3NGE3XHU3NjU2Il0sWyJkY2ExIiwiXHU3OGE3XHU4NjE3XHU5NWUyXHU5NzM5XHVmOTY1XHU1MzVlXHU1ZjAxXHU4YjhhXHU4ZmE4XHU4ZmFmXHU5MDhhXHU1MjI1XHU3N2E1XHU5YzQ5XHU5ZjA4XHU0ZTE5XHU1MDAyXHU1MTc1XHU1YzViXHU1ZTc3''@;'; + put 'put ''XHU2NjFlXHU2NjNhXHU2N2M0XHU2OGM1XHU3MGIzXHU3NTAxXHU3NWM1XHU3OWM5XHU3YWRkXHU4ZjI3XHU5OTIwXHU5YTA4XHU0ZmRkXHU1ODIxXHU1ODMxXHU1YmY2XHU2NjZlXHU2YjY1XHU2ZDExXHU2ZTdhXHU2ZjdkXHU3M2U0XHU3NTJiXHU4M2U5XHU4OGRjXHU4OTEzXHU4YjVjXHU4''@;'; + put 'put ''ZjE0XHU0ZjBmXHU1MGQ1XHU1MzEwXHU1MzVjXHU1YjkzXHU1ZmE5XHU2NzBkXHU3OThmXHU4MTc5XHU4MzJmXHU4NTE0XHU4OTA3XHU4OTg2XHU4ZjM5XHU4ZjNiXHU5OWE1XHU5YzEyXHU2NzJjXHU0ZTc2XHU0ZmY4XHU1OTQ5XHU1YzAxXHU1Y2VmXHU1Y2YwXHU2MzY3XHU2OGQyXHU3MGZk''@;'; + put 'put ''XHU3MWEyXHU3NDJiXHU3ZTJiXHU4NGVjXHU4NzAyXHU5MDIyXHU5MmQyXHU5Y2YzXHU0ZTBkXHU0ZWQ4XHU0ZmVmXHU1MDg1XHU1MjU2XHU1MjZmXHU1NDI2XHU1NDkwXHU1N2UwXHU1OTJiXHU1YTY2Il0sWyJkZGExIiwiXHU1YjVhXHU1Yjc1XHU1YmNjXHU1ZTljXHVmOTY2XHU2Mjc2XHU2''@;'; + put 'put ''NTc3XHU2NWE3XHU2ZDZlXHU2ZWE1XHU3MjM2XHU3YjI2XHU3YzNmXHU3ZjM2XHU4MTUwXHU4MTUxXHU4MTlhXHU4MjQwXHU4Mjk5XHU4M2E5XHU4YTAzXHU4Y2EwXHU4Y2U2XHU4Y2ZiXHU4ZDc0XHU4ZGJhXHU5MGU4XHU5MWRjXHU5NjFjXHU5NjQ0XHU5OWQ5XHU5Y2U3XHU1MzE3XHU1MjA2''@;'; + put 'put ''XHU1NDI5XHU1Njc0XHU1OGIzXHU1OTU0XHU1OTZlXHU1ZmZmXHU2MWE0XHU2MjZlXHU2NjEwXHU2YzdlXHU3MTFhXHU3NmM2XHU3Yzg5XHU3Y2RlXHU3ZDFiXHU4MmFjXHU4Y2MxXHU5NmYwXHVmOTY3XHU0ZjViXHU1ZjE3XHU1ZjdmXHU2MmMyXHU1ZDI5XHU2NzBiXHU2OGRhXHU3ODdjXHU3''@;'; + put 'put ''ZTQzXHU5ZDZjXHU0ZTE1XHU1MDk5XHU1MzE1XHU1MzJhXHU1MzUxXHU1OTgzXHU1YTYyXHU1ZTg3XHU2MGIyXHU2MThhXHU2MjQ5XHU2Mjc5XHU2NTkwXHU2Nzg3XHU2OWE3XHU2YmQ0XHU2YmQ2XHU2YmQ3XHU2YmQ4XHU2Y2I4XHVmOTY4XHU3NDM1XHU3NWZhXHU3ODEyXHU3ODkxXHU3OWQ1''@;'; + put 'put ''XHU3OWQ4XHU3YzgzXHU3ZGNiXHU3ZmUxXHU4MGE1Il0sWyJkZWExIiwiXHU4MTNlXHU4MWMyXHU4M2YyXHU4NzFhXHU4OGU4XHU4YWI5XHU4YjZjXHU4Y2JiXHU5MTE5XHU5NzVlXHU5OGRiXHU5ZjNiXHU1NmFjXHU1YjJhXHU1ZjZjXHU2NThjXHU2YWIzXHU2YmFmXHU2ZDVjXHU2ZmYxXHU3''@;'; + put 'put ''MDE1XHU3MjVkXHU3M2FkXHU4Y2E3XHU4Y2QzXHU5ODNiXHU2MTkxXHU2YzM3XHU4MDU4XHU5YTAxXHU0ZTRkXHU0ZThiXHU0ZTliXHU0ZWQ1XHU0ZjNhXHU0ZjNjXHU0ZjdmXHU0ZmRmXHU1MGZmXHU1M2YyXHU1M2Y4XHU1NTA2XHU1NWUzXHU1NmRiXHU1OGViXHU1OTYyXHU1YTExXHU1YmVi''@;'; + put 'put ''XHU1YmZhXHU1YzA0XHU1ZGYzXHU1ZTJiXHU1Zjk5XHU2MDFkXHU2MzY4XHU2NTljXHU2NWFmXHU2N2Y2XHU2N2ZiXHU2OGFkXHU2YjdiXHU2Yzk5XHU2Y2Q3XHU2ZTIzXHU3MDA5XHU3MzQ1XHU3ODAyXHU3OTNlXHU3OTQwXHU3OTYwXHU3OWMxXHU3YmU5XHU3ZDE3XHU3ZDcyXHU4MDg2XHU4''@;'; + put 'put ''MjBkXHU4MzhlXHU4NGQxXHU4NmM3XHU4OGRmXHU4YTUwXHU4YTVlXHU4YjFkXHU4Y2RjXHU4ZDY2XHU4ZmFkXHU5MGFhXHU5OGZjXHU5OWRmXHU5ZTlkXHU1MjRhXHVmOTY5XHU2NzE0XHVmOTZhIl0sWyJkZmExIiwiXHU1MDk4XHU1MjJhXHU1YzcxXHU2NTYzXHU2YzU1XHU3M2NhXHU3NTIz''@;'; + put 'put ''XHU3NTlkXHU3Yjk3XHU4NDljXHU5MTc4XHU5NzMwXHU0ZTc3XHU2NDkyXHU2YmJhXHU3MTVlXHU4NWE5XHU0ZTA5XHVmOTZiXHU2NzQ5XHU2OGVlXHU2ZTE3XHU4MjlmXHU4NTE4XHU4ODZiXHU2M2Y3XHU2ZjgxXHU5MjEyXHU5OGFmXHU0ZTBhXHU1MGI3XHU1MGNmXHU1MTFmXHU1NTQ2XHU1''@;'; + put 'put ''NWFhXHU1NjE3XHU1YjQwXHU1YzE5XHU1Y2UwXHU1ZTM4XHU1ZThhXHU1ZWEwXHU1ZWMyXHU2MGYzXHU2ODUxXHU2YTYxXHU2ZTU4XHU3MjNkXHU3MjQwXHU3MmMwXHU3NmY4XHU3OTY1XHU3YmIxXHU3ZmQ0XHU4OGYzXHU4OWY0XHU4YTczXHU4YzYxXHU4Y2RlXHU5NzFjXHU1ODVlXHU3NGJk''@;'; + put 'put ''XHU4Y2ZkXHU1NWM3XHVmOTZjXHU3YTYxXHU3ZDIyXHU4MjcyXHU3MjcyXHU3NTFmXHU3NTI1XHVmOTZkXHU3YjE5XHU1ODg1XHU1OGZiXHU1ZGJjXHU1ZThmXHU1ZWI2XHU1ZjkwXHU2MDU1XHU2MjkyXHU2MzdmXHU2NTRkXHU2NjkxXHU2NmQ5XHU2NmY4XHU2ODE2XHU2OGYyXHU3MjgwXHU3''@;'; + put 'put ''NDVlXHU3YjZlXHU3ZDZlXHU3ZGQ2XHU3ZjcyIl0sWyJlMGExIiwiXHU4MGU1XHU4MjEyXHU4NWFmXHU4OTdmXHU4YTkzXHU5MDFkXHU5MmU0XHU5ZWNkXHU5ZjIwXHU1OTE1XHU1OTZkXHU1ZTJkXHU2MGRjXHU2NjE0XHU2NjczXHU2NzkwXHU2YzUwXHU2ZGM1XHU2ZjVmXHU3N2YzXHU3OGE5''@;'; + put 'put ''XHU4NGM2XHU5MWNiXHU5MzJiXHU0ZWQ5XHU1MGNhXHU1MTQ4XHU1NTg0XHU1YjBiXHU1YmEzXHU2MjQ3XHU2NTdlXHU2NWNiXHU2ZTMyXHU3MTdkXHU3NDAxXHU3NDQ0XHU3NDg3XHU3NGJmXHU3NjZjXHU3OWFhXHU3ZGRhXHU3ZTU1XHU3ZmE4XHU4MTdhXHU4MWIzXHU4MjM5XHU4NjFhXHU4''@;'; + put 'put ''N2VjXHU4YTc1XHU4ZGUzXHU5MDc4XHU5MjkxXHU5NDI1XHU5OTRkXHU5YmFlXHU1MzY4XHU1YzUxXHU2OTU0XHU2Y2M0XHU2ZDI5XHU2ZTJiXHU4MjBjXHU4NTliXHU4OTNiXHU4YTJkXHU4YWFhXHU5NmVhXHU5ZjY3XHU1MjYxXHU2NmI5XHU2YmIyXHU3ZTk2XHU4N2ZlXHU4ZDBkXHU5NTgz''@;'; + put 'put ''XHU5NjVkXHU2NTFkXHU2ZDg5XHU3MWVlXHVmOTZlXHU1N2NlXHU1OWQzXHU1YmFjXHU2MDI3XHU2MGZhXHU2MjEwXHU2NjFmXHU2NjVmXHU3MzI5XHU3M2Y5XHU3NmRiXHU3NzAxXHU3YjZjIl0sWyJlMWExIiwiXHU4MDU2XHU4MDcyXHU4MTY1XHU4YWEwXHU5MTkyXHU0ZTE2XHU1MmUyXHU2''@;'; + put 'put ''YjcyXHU2ZDE3XHU3YTA1XHU3YjM5XHU3ZDMwXHVmOTZmXHU4Y2IwXHU1M2VjXHU1NjJmXHU1ODUxXHU1YmI1XHU1YzBmXHU1YzExXHU1ZGUyXHU2MjQwXHU2MzgzXHU2NDE0XHU2NjJkXHU2OGIzXHU2Y2JjXHU2ZDg4XHU2ZWFmXHU3MDFmXHU3MGE0XHU3MWQyXHU3NTI2XHU3NThmXHU3NThl''@;'; + put 'put ''XHU3NjE5XHU3YjExXHU3YmUwXHU3YzJiXHU3ZDIwXHU3ZDM5XHU4NTJjXHU4NTZkXHU4NjA3XHU4YTM0XHU5MDBkXHU5MDYxXHU5MGI1XHU5MmI3XHU5N2Y2XHU5YTM3XHU0ZmQ3XHU1YzZjXHU2NzVmXHU2ZDkxXHU3YzlmXHU3ZThjXHU4YjE2XHU4ZDE2XHU5MDFmXHU1YjZiXHU1ZGZkXHU2''@;'; + put 'put ''NDBkXHU4NGMwXHU5MDVjXHU5OGUxXHU3Mzg3XHU1YjhiXHU2MDlhXHU2NzdlXHU2ZGRlXHU4YTFmXHU4YWE2XHU5MDAxXHU5ODBjXHU1MjM3XHVmOTcwXHU3MDUxXHU3ODhlXHU5Mzk2XHU4ODcwXHU5MWQ3XHU0ZmVlXHU1M2Q3XHU1NWZkXHU1NmRhXHU1NzgyXHU1OGZkXHU1YWMyXHU1Yjg4''@;'; + put 'put ''XHU1Y2FiXHU1Y2MwXHU1ZTI1XHU2MTAxIl0sWyJlMmExIiwiXHU2MjBkXHU2MjRiXHU2Mzg4XHU2NDFjXHU2NTM2XHU2NTc4XHU2YTM5XHU2YjhhXHU2YzM0XHU2ZDE5XHU2ZjMxXHU3MWU3XHU3MmU5XHU3Mzc4XHU3NDA3XHU3NGIyXHU3NjI2XHU3NzYxXHU3OWMwXHU3YTU3XHU3YWVhXHU3''@;'; + put 'put ''Y2I5XHU3ZDhmXHU3ZGFjXHU3ZTYxXHU3ZjllXHU4MTI5XHU4MzMxXHU4NDkwXHU4NGRhXHU4NWVhXHU4ODk2XHU4YWIwXHU4YjkwXHU4ZjM4XHU5MDQyXHU5MDgzXHU5MTZjXHU5Mjk2XHU5MmI5XHU5NjhiXHU5NmE3XHU5NmE4XHU5NmQ2XHU5NzAwXHU5ODA4XHU5OTk2XHU5YWQzXHU5YjFh''@;'; + put 'put ''XHU1M2Q0XHU1ODdlXHU1OTE5XHU1YjcwXHU1YmJmXHU2ZGQxXHU2ZjVhXHU3MTlmXHU3NDIxXHU3NGI5XHU4MDg1XHU4M2ZkXHU1ZGUxXHU1Zjg3XHU1ZmFhXHU2MDQyXHU2NWVjXHU2ODEyXHU2OTZmXHU2YTUzXHU2Yjg5XHU2ZDM1XHU2ZGYzXHU3M2UzXHU3NmZlXHU3N2FjXHU3YjRkXHU3''@;'; + put 'put ''ZDE0XHU4MTIzXHU4MjFjXHU4MzQwXHU4NGY0XHU4NTYzXHU4YTYyXHU4YWM0XHU5MTg3XHU5MzFlXHU5ODA2XHU5OWI0XHU2MjBjXHU4ODUzXHU4ZmYwXHU5MjY1XHU1ZDA3XHU1ZDI3Il0sWyJlM2ExIiwiXHU1ZDY5XHU3NDVmXHU4MTlkXHU4NzY4XHU2ZmQ1XHU2MmZlXHU3ZmQyXHU4OTM2''@;'; + put 'put ''XHU4OTcyXHU0ZTFlXHU0ZTU4XHU1MGU3XHU1MmRkXHU1MzQ3XHU2MjdmXHU2NjA3XHU3ZTY5XHU4ODA1XHU5NjVlXHU0ZjhkXHU1MzE5XHU1NjM2XHU1OWNiXHU1YWE0XHU1YzM4XHU1YzRlXHU1YzRkXHU1ZTAyXHU1ZjExXHU2MDQzXHU2NWJkXHU2NjJmXHU2NjQyXHU2N2JlXHU2N2Y0XHU3''@;'; + put 'put ''MzFjXHU3N2UyXHU3OTNhXHU3ZmM1XHU4NDk0XHU4NGNkXHU4OTk2XHU4YTY2XHU4YTY5XHU4YWUxXHU4YzU1XHU4YzdhXHU1N2Y0XHU1YmQ0XHU1ZjBmXHU2MDZmXHU2MmVkXHU2OTBkXHU2Yjk2XHU2ZTVjXHU3MTg0XHU3YmQyXHU4NzU1XHU4YjU4XHU4ZWZlXHU5OGRmXHU5OGZlXHU0ZjM4''@;'; + put 'put ''XHU0ZjgxXHU0ZmUxXHU1NDdiXHU1YTIwXHU1YmI4XHU2MTNjXHU2NWIwXHU2NjY4XHU3MWZjXHU3NTMzXHU3OTVlXHU3ZDMzXHU4MTRlXHU4MWUzXHU4Mzk4XHU4NWFhXHU4NWNlXHU4NzAzXHU4YTBhXHU4ZWFiXHU4ZjliXHVmOTcxXHU4ZmM1XHU1OTMxXHU1YmE0XHU1YmU2XHU2MDg5XHU1''@;'; + put 'put ''YmU5XHU1YzBiXHU1ZmMzXHU2YzgxIl0sWyJlNGExIiwiXHVmOTcyXHU2ZGYxXHU3MDBiXHU3NTFhXHU4MmFmXHU4YWY2XHU0ZWMwXHU1MzQxXHVmOTczXHU5NmQ5XHU2YzBmXHU0ZTllXHU0ZmM0XHU1MTUyXHU1NTVlXHU1YTI1XHU1Y2U4XHU2MjExXHU3MjU5XHU4MmJkXHU4M2FhXHU4NmZl''@;'; + put 'put ''XHU4ODU5XHU4YTFkXHU5NjNmXHU5NmM1XHU5OTEzXHU5ZDA5XHU5ZDVkXHU1ODBhXHU1Y2IzXHU1ZGJkXHU1ZTQ0XHU2MGUxXHU2MTE1XHU2M2UxXHU2YTAyXHU2ZTI1XHU5MTAyXHU5MzU0XHU5ODRlXHU5YzEwXHU5Zjc3XHU1Yjg5XHU1Y2I4XHU2MzA5XHU2NjRmXHU2ODQ4XHU3NzNjXHU5''@;'; + put 'put ''NmMxXHU5NzhkXHU5ODU0XHU5YjlmXHU2NWExXHU4YjAxXHU4ZWNiXHU5NWJjXHU1NTM1XHU1Y2E5XHU1ZGQ2XHU1ZWI1XHU2Njk3XHU3NjRjXHU4M2Y0XHU5NWM3XHU1OGQzXHU2MmJjXHU3MmNlXHU5ZDI4XHU0ZWYwXHU1OTJlXHU2MDBmXHU2NjNiXHU2YjgzXHU3OWU3XHU5ZDI2XHU1Mzkz''@;'; + put 'put ''XHU1NGMwXHU1N2MzXHU1ZDE2XHU2MTFiXHU2NmQ2XHU2ZGFmXHU3ODhkXHU4MjdlXHU5Njk4XHU5NzQ0XHU1Mzg0XHU2MjdjXHU2Mzk2XHU2ZGIyXHU3ZTBhXHU4MTRiXHU5ODRkIl0sWyJlNWExIiwiXHU2YWZiXHU3ZjRjXHU5ZGFmXHU5ZTFhXHU0ZTVmXHU1MDNiXHU1MWI2XHU1OTFjXHU2''@;'; + put 'put ''MGY5XHU2M2Y2XHU2OTMwXHU3MjNhXHU4MDM2XHVmOTc0XHU5MWNlXHU1ZjMxXHVmOTc1XHVmOTc2XHU3ZDA0XHU4MmU1XHU4NDZmXHU4NGJiXHU4NWU1XHU4ZThkXHVmOTc3XHU0ZjZmXHVmOTc4XHVmOTc5XHU1OGU0XHU1YjQzXHU2MDU5XHU2M2RhXHU2NTE4XHU2NTZkXHU2Njk4XHVmOTdh''@;'; + put 'put ''XHU2OTRhXHU2YTIzXHU2ZDBiXHU3MDAxXHU3MTZjXHU3NWQyXHU3NjBkXHU3OWIzXHU3YTcwXHVmOTdiXHU3ZjhhXHVmOTdjXHU4OTQ0XHVmOTdkXHU4YjkzXHU5MWMwXHU5NjdkXHVmOTdlXHU5OTBhXHU1NzA0XHU1ZmExXHU2NWJjXHU2ZjAxXHU3NjAwXHU3OWE2XHU4YTllXHU5OWFkXHU5''@;'; + put 'put ''YjVhXHU5ZjZjXHU1MTA0XHU2MWI2XHU2MjkxXHU2YThkXHU4MWM2XHU1MDQzXHU1ODMwXHU1ZjY2XHU3MTA5XHU4YTAwXHU4YWZhXHU1YjdjXHU4NjE2XHU0ZmZhXHU1MTNjXHU1NmI0XHU1OTQ0XHU2M2E5XHU2ZGY5XHU1ZGFhXHU2OTZkXHU1MTg2XHU0ZTg4XHU0ZjU5XHVmOTdmXHVmOTgw''@;'; + put 'put ''XHVmOTgxXHU1OTgyXHVmOTgyIl0sWyJlNmExIiwiXHVmOTgzXHU2YjVmXHU2YzVkXHVmOTg0XHU3NGI1XHU3OTE2XHVmOTg1XHU4MjA3XHU4MjQ1XHU4MzM5XHU4ZjNmXHU4ZjVkXHVmOTg2XHU5OTE4XHVmOTg3XHVmOTg4XHVmOTg5XHU0ZWE2XHVmOThhXHU1N2RmXHU1Zjc5XHU2NjEzXHVm''@;'; + put 'put ''OThiXHVmOThjXHU3NWFiXHU3ZTc5XHU4YjZmXHVmOThkXHU5MDA2XHU5YTViXHU1NmE1XHU1ODI3XHU1OWY4XHU1YTFmXHU1YmI0XHVmOThlXHU1ZWY2XHVmOThmXHVmOTkwXHU2MzUwXHU2MzNiXHVmOTkxXHU2OTNkXHU2Yzg3XHU2Y2JmXHU2ZDhlXHU2ZDkzXHU2ZGY1XHU2ZjE0XHVmOTky''@;'; + put 'put ''XHU3MGRmXHU3MTM2XHU3MTU5XHVmOTkzXHU3MWMzXHU3MWQ1XHVmOTk0XHU3ODRmXHU3ODZmXHVmOTk1XHU3Yjc1XHU3ZGUzXHVmOTk2XHU3ZTJmXHVmOTk3XHU4ODRkXHU4ZWRmXHVmOTk4XHVmOTk5XHVmOTlhXHU5MjViXHVmOTliXHU5Y2Y2XHVmOTljXHVmOTlkXHVmOTllXHU2MDg1XHU2''@;'; + put 'put ''ZDg1XHVmOTlmXHU3MWIxXHVmOWEwXHVmOWExXHU5NWIxXHU1M2FkXHVmOWEyXHVmOWEzXHVmOWE0XHU2N2QzXHVmOWE1XHU3MDhlXHU3MTMwXHU3NDMwXHU4Mjc2XHU4MmQyIl0sWyJlN2ExIiwiXHVmOWE2XHU5NWJiXHU5YWU1XHU5ZTdkXHU2NmM0XHVmOWE3XHU3MWMxXHU4NDQ5XHVmOWE4''@;'; + put 'put ''XHVmOWE5XHU1ODRiXHVmOWFhXHVmOWFiXHU1ZGI4XHU1ZjcxXHVmOWFjXHU2NjIwXHU2NjhlXHU2OTc5XHU2OWFlXHU2YzM4XHU2Y2YzXHU2ZTM2XHU2ZjQxXHU2ZmRhXHU3MDFiXHU3MDJmXHU3MTUwXHU3MWRmXHU3MzcwXHVmOWFkXHU3NDViXHVmOWFlXHU3NGQ0XHU3NmM4XHU3YTRlXHU3''@;'; + put 'put ''ZTkzXHVmOWFmXHVmOWIwXHU4MmYxXHU4YTYwXHU4ZmNlXHVmOWIxXHU5MzQ4XHVmOWIyXHU5NzE5XHVmOWIzXHVmOWI0XHU0ZTQyXHU1MDJhXHVmOWI1XHU1MjA4XHU1M2UxXHU2NmYzXHU2YzZkXHU2ZmNhXHU3MzBhXHU3NzdmXHU3YTYyXHU4MmFlXHU4NWRkXHU4NjAyXHVmOWI2XHU4OGQ0''@;'; + put 'put ''XHU4YTYzXHU4YjdkXHU4YzZiXHVmOWI3XHU5MmIzXHVmOWI4XHU5NzEzXHU5ODEwXHU0ZTk0XHU0ZjBkXHU0ZmM5XHU1MGIyXHU1MzQ4XHU1NDNlXHU1NDMzXHU1NWRhXHU1ODYyXHU1OGJhXHU1OTY3XHU1YTFiXHU1YmU0XHU2MDlmXHVmOWI5XHU2MWNhXHU2NTU2XHU2NWZmXHU2NjY0XHU2''@;'; + put 'put ''OGE3XHU2YzVhXHU2ZmIzIl0sWyJlOGExIiwiXHU3MGNmXHU3MWFjXHU3MzUyXHU3YjdkXHU4NzA4XHU4YWE0XHU5YzMyXHU5ZjA3XHU1YzRiXHU2YzgzXHU3MzQ0XHU3Mzg5XHU5MjNhXHU2ZWFiXHU3NDY1XHU3NjFmXHU3YTY5XHU3ZTE1XHU4NjBhXHU1MTQwXHU1OGM1XHU2NGMxXHU3NGVl''@;'; + put 'put ''XHU3NTE1XHU3NjcwXHU3ZmMxXHU5MDk1XHU5NmNkXHU5OTU0XHU2ZTI2XHU3NGU2XHU3YWE5XHU3YWFhXHU4MWU1XHU4NmQ5XHU4Nzc4XHU4YTFiXHU1YTQ5XHU1YjhjXHU1YjliXHU2OGExXHU2OTAwXHU2ZDYzXHU3M2E5XHU3NDEzXHU3NDJjXHU3ODk3XHU3ZGU5XHU3ZmViXHU4MTE4XHU4''@;'; + put 'put ''MTU1XHU4MzllXHU4YzRjXHU5NjJlXHU5ODExXHU2NmYwXHU1ZjgwXHU2NWZhXHU2Nzg5XHU2YzZhXHU3MzhiXHU1MDJkXHU1YTAzXHU2YjZhXHU3N2VlXHU1OTE2XHU1ZDZjXHU1ZGNkXHU3MzI1XHU3NTRmXHVmOWJhXHVmOWJiXHU1MGU1XHU1MWY5XHU1ODJmXHU1OTJkXHU1OTk2XHU1OWRh''@;'; + put 'put ''XHU1YmU1XHVmOWJjXHVmOWJkXHU1ZGEyXHU2MmQ3XHU2NDE2XHU2NDkzXHU2NGZlXHVmOWJlXHU2NmRjXHVmOWJmXHU2YTQ4XHVmOWMwXHU3MWZmXHU3NDY0XHVmOWMxIl0sWyJlOWExIiwiXHU3YTg4XHU3YWFmXHU3ZTQ3XHU3ZTVlXHU4MDAwXHU4MTcwXHVmOWMyXHU4N2VmXHU4OTgxXHU4''@;'; + put 'put ''YjIwXHU5MDU5XHVmOWMzXHU5MDgwXHU5OTUyXHU2MTdlXHU2YjMyXHU2ZDc0XHU3ZTFmXHU4OTI1XHU4ZmIxXHU0ZmQxXHU1MGFkXHU1MTk3XHU1MmM3XHU1N2M3XHU1ODg5XHU1YmI5XHU1ZWI4XHU2MTQyXHU2OTk1XHU2ZDhjXHU2ZTY3XHU2ZWI2XHU3MTk0XHU3NDYyXHU3NTI4XHU3NTJj''@;'; + put 'put ''XHU4MDczXHU4MzM4XHU4NGM5XHU4ZTBhXHU5Mzk0XHU5M2RlXHVmOWM0XHU0ZThlXHU0ZjUxXHU1MDc2XHU1MTJhXHU1M2M4XHU1M2NiXHU1M2YzXHU1Yjg3XHU1YmQzXHU1YzI0XHU2MTFhXHU2MTgyXHU2NWY0XHU3MjViXHU3Mzk3XHU3NDQwXHU3NmMyXHU3OTUwXHU3OTkxXHU3OWI5XHU3''@;'; + put 'put ''ZDA2XHU3ZmJkXHU4MjhiXHU4NWQ1XHU4NjVlXHU4ZmMyXHU5MDQ3XHU5MGY1XHU5MWVhXHU5Njg1XHU5NmU4XHU5NmU5XHU1MmQ2XHU1ZjY3XHU2NWVkXHU2NjMxXHU2ODJmXHU3MTVjXHU3YTM2XHU5MGMxXHU5ODBhXHU0ZTkxXHVmOWM1XHU2YTUyXHU2YjllXHU2ZjkwXHU3MTg5XHU4MDE4''@;'; + put 'put ''XHU4MmI4XHU4NTUzIl0sWyJlYWExIiwiXHU5MDRiXHU5Njk1XHU5NmYyXHU5N2ZiXHU4NTFhXHU5YjMxXHU0ZTkwXHU3MThhXHU5NmM0XHU1MTQzXHU1MzlmXHU1NGUxXHU1NzEzXHU1NzEyXHU1N2EzXHU1YTliXHU1YWM0XHU1YmMzXHU2MDI4XHU2MTNmXHU2M2Y0XHU2Yzg1XHU2ZDM5XHU2''@;'; + put 'put ''ZTcyXHU2ZTkwXHU3MjMwXHU3MzNmXHU3NDU3XHU4MmQxXHU4ODgxXHU4ZjQ1XHU5MDYwXHVmOWM2XHU5NjYyXHU5ODU4XHU5ZDFiXHU2NzA4XHU4ZDhhXHU5MjVlXHU0ZjRkXHU1MDQ5XHU1MGRlXHU1MzcxXHU1NzBkXHU1OWQ0XHU1YTAxXHU1YzA5XHU2MTcwXHU2NjkwXHU2ZTJkXHU3MjMy''@;'; + put 'put ''XHU3NDRiXHU3ZGVmXHU4MGMzXHU4NDBlXHU4NDY2XHU4NTNmXHU4NzVmXHU4ODViXHU4OTE4XHU4YjAyXHU5MDU1XHU5N2NiXHU5YjRmXHU0ZTczXHU0ZjkxXHU1MTEyXHU1MTZhXHVmOWM3XHU1NTJmXHU1NWE5XHU1YjdhXHU1YmE1XHU1ZTdjXHU1ZTdkXHU1ZWJlXHU2MGEwXHU2MGRmXHU2''@;'; + put 'put ''MTA4XHU2MTA5XHU2M2M0XHU2NTM4XHU2NzA5XHVmOWM4XHU2N2Q0XHU2N2RhXHVmOWM5XHU2OTYxXHU2OTYyXHU2Y2I5XHU2ZDI3XHVmOWNhXHU2ZTM4XHVmOWNiIl0sWyJlYmExIiwiXHU2ZmUxXHU3MzM2XHU3MzM3XHVmOWNjXHU3NDVjXHU3NTMxXHVmOWNkXHU3NjUyXHVmOWNlXHVmOWNm''@;'; + put 'put ''XHU3ZGFkXHU4MWZlXHU4NDM4XHU4OGQ1XHU4YTk4XHU4YWRiXHU4YWVkXHU4ZTMwXHU4ZTQyXHU5MDRhXHU5MDNlXHU5MDdhXHU5MTQ5XHU5MWM5XHU5MzZlXHVmOWQwXHVmOWQxXHU1ODA5XHVmOWQyXHU2YmQzXHU4MDg5XHU4MGIyXHVmOWQzXHVmOWQ0XHU1MTQxXHU1OTZiXHU1YzM5XHVm''@;'; + put 'put ''OWQ1XHVmOWQ2XHU2ZjY0XHU3M2E3XHU4MGU0XHU4ZDA3XHVmOWQ3XHU5MjE3XHU5NThmXHVmOWQ4XHVmOWQ5XHVmOWRhXHVmOWRiXHU4MDdmXHU2MjBlXHU3MDFjXHU3ZDY4XHU4NzhkXHVmOWRjXHU1N2EwXHU2MDY5XHU2MTQ3XHU2YmI3XHU4YWJlXHU5MjgwXHU5NmIxXHU0ZTU5XHU1NDFm''@;'; + put 'put ''XHU2ZGViXHU4NTJkXHU5NjcwXHU5N2YzXHU5OGVlXHU2M2Q2XHU2Y2UzXHU5MDkxXHU1MWRkXHU2MWM5XHU4MWJhXHU5ZGY5XHU0ZjlkXHU1MDFhXHU1MTAwXHU1YjljXHU2MTBmXHU2MWZmXHU2NGVjXHU2OTA1XHU2YmM1XHU3NTkxXHU3N2UzXHU3ZmE5XHU4MjY0XHU4NThmXHU4N2ZiXHU4''@;'; + put 'put ''ODYzXHU4YWJjIl0sWyJlY2ExIiwiXHU4YjcwXHU5MWFiXHU0ZThjXHU0ZWU1XHU0ZjBhXHVmOWRkXHVmOWRlXHU1OTM3XHU1OWU4XHVmOWRmXHU1ZGYyXHU1ZjFiXHU1ZjViXHU2MDIxXHVmOWUwXHVmOWUxXHVmOWUyXHVmOWUzXHU3MjNlXHU3M2U1XHVmOWU0XHU3NTcwXHU3NWNkXHVmOWU1''@;'; + put 'put ''XHU3OWZiXHVmOWU2XHU4MDBjXHU4MDMzXHU4MDg0XHU4MmUxXHU4MzUxXHVmOWU3XHVmOWU4XHU4Y2JkXHU4Y2IzXHU5MDg3XHVmOWU5XHVmOWVhXHU5OGY0XHU5OTBjXHVmOWViXHVmOWVjXHU3MDM3XHU3NmNhXHU3ZmNhXHU3ZmNjXHU3ZmZjXHU4YjFhXHU0ZWJhXHU0ZWMxXHU1MjAzXHU1''@;'; + put 'put ''MzcwXHVmOWVkXHU1NGJkXHU1NmUwXHU1OWZiXHU1YmM1XHU1ZjE1XHU1ZmNkXHU2ZTZlXHVmOWVlXHVmOWVmXHU3ZDZhXHU4MzM1XHVmOWYwXHU4NjkzXHU4YThkXHVmOWYxXHU5NzZkXHU5Nzc3XHVmOWYyXHVmOWYzXHU0ZTAwXHU0ZjVhXHU0ZjdlXHU1OGY5XHU2NWU1XHU2ZWEyXHU5MDM4''@;'; + put 'put ''XHU5M2IwXHU5OWI5XHU0ZWZiXHU1OGVjXHU1OThhXHU1OWQ5XHU2MDQxXHVmOWY0XHVmOWY1XHU3YTE0XHVmOWY2XHU4MzRmXHU4Y2MzXHU1MTY1XHU1MzQ0Il0sWyJlZGExIiwiXHVmOWY3XHVmOWY4XHVmOWY5XHU0ZWNkXHU1MjY5XHU1YjU1XHU4MmJmXHU0ZWQ0XHU1MjNhXHU1NGE4XHU1''@;'; + put 'put ''OWM5XHU1OWZmXHU1YjUwXHU1YjU3XHU1YjVjXHU2MDYzXHU2MTQ4XHU2ZWNiXHU3MDk5XHU3MTZlXHU3Mzg2XHU3NGY3XHU3NWI1XHU3OGMxXHU3ZDJiXHU4MDA1XHU4MWVhXHU4MzI4XHU4NTE3XHU4NWM5XHU4YWVlXHU4Y2M3XHU5NmNjXHU0ZjVjXHU1MmZhXHU1NmJjXHU2NWFiXHU2NjI4''@;'; + put 'put ''XHU3MDdjXHU3MGI4XHU3MjM1XHU3ZGJkXHU4MjhkXHU5MTRjXHU5NmMwXHU5ZDcyXHU1YjcxXHU2OGU3XHU2Yjk4XHU2ZjdhXHU3NmRlXHU1YzkxXHU2NmFiXHU2ZjViXHU3YmI0XHU3YzJhXHU4ODM2XHU5NmRjXHU0ZTA4XHU0ZWQ3XHU1MzIwXHU1ODM0XHU1OGJiXHU1OGVmXHU1OTZjXHU1''@;'; + put 'put ''YzA3XHU1ZTMzXHU1ZTg0XHU1ZjM1XHU2MzhjXHU2NmIyXHU2NzU2XHU2YTFmXHU2YWEzXHU2YjBjXHU2ZjNmXHU3MjQ2XHVmOWZhXHU3MzUwXHU3NDhiXHU3YWUwXHU3Y2E3XHU4MTc4XHU4MWRmXHU4MWU3XHU4MzhhXHU4NDZjXHU4NTIzXHU4NTk0XHU4NWNmXHU4OGRkXHU4ZDEzXHU5MWFj''@;'; + put 'put ''XHU5NTc3Il0sWyJlZWExIiwiXHU5NjljXHU1MThkXHU1NGM5XHU1NzI4XHU1YmIwXHU2MjRkXHU2NzUwXHU2ODNkXHU2ODkzXHU2ZTNkXHU2ZWQzXHU3MDdkXHU3ZTIxXHU4OGMxXHU4Y2ExXHU4ZjA5XHU5ZjRiXHU5ZjRlXHU3MjJkXHU3YjhmXHU4YWNkXHU5MzFhXHU0ZjQ3XHU0ZjRlXHU1''@;'; + put 'put ''MTMyXHU1NDgwXHU1OWQwXHU1ZTk1XHU2MmI1XHU2Nzc1XHU2OTZlXHU2YTE3XHU2Y2FlXHU2ZTFhXHU3MmQ5XHU3MzJhXHU3NWJkXHU3YmI4XHU3ZDM1XHU4MmU3XHU4M2Y5XHU4NDU3XHU4NWY3XHU4YTViXHU4Y2FmXHU4ZTg3XHU5MDE5XHU5MGI4XHU5NmNlXHU5ZjVmXHU1MmUzXHU1NDBh''@;'; + put 'put ''XHU1YWUxXHU1YmMyXHU2NDU4XHU2NTc1XHU2ZWY0XHU3MmM0XHVmOWZiXHU3Njg0XHU3YTRkXHU3YjFiXHU3YzRkXHU3ZTNlXHU3ZmRmXHU4MzdiXHU4YjJiXHU4Y2NhXHU4ZDY0XHU4ZGUxXHU4ZTVmXHU4ZmVhXHU4ZmY5XHU5MDY5XHU5M2QxXHU0ZjQzXHU0ZjdhXHU1MGIzXHU1MTY4XHU1''@;'; + put 'put ''MTc4XHU1MjRkXHU1MjZhXHU1ODYxXHU1ODdjXHU1OTYwXHU1YzA4XHU1YzU1XHU1ZWRiXHU2MDliXHU2MjMwXHU2ODEzXHU2YmJmXHU2YzA4XHU2ZmIxIl0sWyJlZmExIiwiXHU3MTRlXHU3NDIwXHU3NTMwXHU3NTM4XHU3NTUxXHU3NjcyXHU3YjRjXHU3YjhiXHU3YmFkXHU3YmM2XHU3ZThm''@;'; + put 'put ''XHU4YTZlXHU4ZjNlXHU4ZjQ5XHU5MjNmXHU5MjkzXHU5MzIyXHU5NDJiXHU5NmZiXHU5ODVhXHU5ODZiXHU5OTFlXHU1MjA3XHU2MjJhXHU2Mjk4XHU2ZDU5XHU3NjY0XHU3YWNhXHU3YmMwXHU3ZDc2XHU1MzYwXHU1Y2JlXHU1ZTk3XHU2ZjM4XHU3MGI5XHU3Yzk4XHU5NzExXHU5YjhlXHU5''@;'; + put 'put ''ZWRlXHU2M2E1XHU2NDdhXHU4Nzc2XHU0ZTAxXHU0ZTk1XHU0ZWFkXHU1MDVjXHU1MDc1XHU1NDQ4XHU1OWMzXHU1YjlhXHU1ZTQwXHU1ZWFkXHU1ZWY3XHU1ZjgxXHU2MGM1XHU2MzNhXHU2NTNmXHU2NTc0XHU2NWNjXHU2Njc2XHU2Njc4XHU2N2ZlXHU2OTY4XHU2YTg5XHU2YjYzXHU2YzQw''@;'; + put 'put ''XHU2ZGMwXHU2ZGU4XHU2ZTFmXHU2ZTVlXHU3MDFlXHU3MGExXHU3MzhlXHU3M2ZkXHU3NTNhXHU3NzViXHU3ODg3XHU3OThlXHU3YTBiXHU3YTdkXHU3Y2JlXHU3ZDhlXHU4MjQ3XHU4YTAyXHU4YWVhXHU4YzllXHU5MTJkXHU5MTRhXHU5MWQ4XHU5MjY2XHU5MmNjXHU5MzIwXHU5NzA2XHU5''@;'; + put 'put ''NzU2Il0sWyJmMGExIiwiXHU5NzVjXHU5ODAyXHU5ZjBlXHU1MjM2XHU1MjkxXHU1NTdjXHU1ODI0XHU1ZTFkXHU1ZjFmXHU2MDhjXHU2M2QwXHU2OGFmXHU2ZmRmXHU3OTZkXHU3YjJjXHU4MWNkXHU4NWJhXHU4OGZkXHU4YWY4XHU4ZTQ0XHU5MThkXHU5NjY0XHU5NjliXHU5NzNkXHU5ODRj''@;'; + put 'put ''XHU5ZjRhXHU0ZmNlXHU1MTQ2XHU1MWNiXHU1MmE5XHU1NjMyXHU1ZjE0XHU1ZjZiXHU2M2FhXHU2NGNkXHU2NWU5XHU2NjQxXHU2NmZhXHU2NmY5XHU2NzFkXHU2ODlkXHU2OGQ3XHU2OWZkXHU2ZjE1XHU2ZjZlXHU3MTY3XHU3MWU1XHU3MjJhXHU3NGFhXHU3NzNhXHU3OTU2XHU3OTVhXHU3''@;'; + put 'put ''OWRmXHU3YTIwXHU3YTk1XHU3Yzk3XHU3Y2RmXHU3ZDQ0XHU3ZTcwXHU4MDg3XHU4NWZiXHU4NmE0XHU4YTU0XHU4YWJmXHU4ZDk5XHU4ZTgxXHU5MDIwXHU5MDZkXHU5MWUzXHU5NjNiXHU5NmQ1XHU5Y2U1XHU2NWNmXHU3YzA3XHU4ZGIzXHU5M2MzXHU1YjU4XHU1YzBhXHU1MzUyXHU2MmQ5''@;'; + put 'put ''XHU3MzFkXHU1MDI3XHU1Yjk3XHU1ZjllXHU2MGIwXHU2MTZiXHU2OGQ1XHU2ZGQ5XHU3NDJlXHU3YTJlXHU3ZDQyXHU3ZDljXHU3ZTMxXHU4MTZiIl0sWyJmMWExIiwiXHU4ZTJhXHU4ZTM1XHU5MzdlXHU5NDE4XHU0ZjUwXHU1NzUwXHU1ZGU2XHU1ZWE3XHU2MzJiXHU3ZjZhXHU0ZTNiXHU0''@;'; + put 'put ''ZjRmXHU0ZjhmXHU1MDVhXHU1OWRkXHU4MGM0XHU1NDZhXHU1NDY4XHU1NWZlXHU1OTRmXHU1Yjk5XHU1ZGRlXHU1ZWRhXHU2NjVkXHU2NzMxXHU2N2YxXHU2ODJhXHU2Y2U4XHU2ZDMyXHU2ZTRhXHU2ZjhkXHU3MGI3XHU3M2UwXHU3NTg3XHU3YzRjXHU3ZDAyXHU3ZDJjXHU3ZGEyXHU4MjFm''@;'; + put 'put ''XHU4NmRiXHU4YTNiXHU4YTg1XHU4ZDcwXHU4ZThhXHU4ZjMzXHU5MDMxXHU5MTRlXHU5MTUyXHU5NDQ0XHU5OWQwXHU3YWY5XHU3Y2E1XHU0ZmNhXHU1MTAxXHU1MWM2XHU1N2M4XHU1YmVmXHU1Y2ZiXHU2NjU5XHU2YTNkXHU2ZDVhXHU2ZTk2XHU2ZmVjXHU3MTBjXHU3NTZmXHU3YWUzXHU4''@;'; + put 'put ''ODIyXHU5MDIxXHU5MDc1XHU5NmNiXHU5OWZmXHU4MzAxXHU0ZTJkXHU0ZWYyXHU4ODQ2XHU5MWNkXHU1MzdkXHU2YWRiXHU2OTZiXHU2YzQxXHU4NDdhXHU1ODllXHU2MThlXHU2NmZlXHU2MmVmXHU3MGRkXHU3NTExXHU3NWM3XHU3ZTUyXHU4NGI4XHU4YjQ5XHU4ZDA4XHU0ZTRiXHU1M2Vh''@;'; + put 'put ''Il0sWyJmMmExIiwiXHU1NGFiXHU1NzMwXHU1NzQwXHU1ZmQ3XHU2MzAxXHU2MzA3XHU2NDZmXHU2NTJmXHU2NWU4XHU2NjdhXHU2NzlkXHU2N2IzXHU2YjYyXHU2YzYwXHU2YzlhXHU2ZjJjXHU3N2U1XHU3ODI1XHU3OTQ5XHU3OTU3XHU3ZDE5XHU4MGEyXHU4MTAyXHU4MWYzXHU4MjlkXHU4''@;'; + put 'put ''MmI3XHU4NzE4XHU4YThjXHVmOWZjXHU4ZDA0XHU4ZGJlXHU5MDcyXHU3NmY0XHU3YTE5XHU3YTM3XHU3ZTU0XHU4MDc3XHU1NTA3XHU1NWQ0XHU1ODc1XHU2MzJmXHU2NDIyXHU2NjQ5XHU2NjRiXHU2ODZkXHU2OTliXHU2Yjg0XHU2ZDI1XHU2ZWIxXHU3M2NkXHU3NDY4XHU3NGExXHU3NTVi''@;'; + put 'put ''XHU3NWI5XHU3NmUxXHU3NzFlXHU3NzhiXHU3OWU2XHU3ZTA5XHU3ZTFkXHU4MWZiXHU4NTJmXHU4ODk3XHU4YTNhXHU4Y2QxXHU4ZWViXHU4ZmIwXHU5MDMyXHU5M2FkXHU5NjYzXHU5NjczXHU5NzA3XHU0Zjg0XHU1M2YxXHU1OWVhXHU1YWM5XHU1ZTE5XHU2ODRlXHU3NGM2XHU3NWJlXHU3''@;'; + put 'put ''OWU5XHU3YTkyXHU4MWEzXHU4NmVkXHU4Y2VhXHU4ZGNjXHU4ZmVkXHU2NTlmXHU2NzE1XHVmOWZkXHU1N2Y3XHU2ZjU3XHU3ZGRkXHU4ZjJmIl0sWyJmM2ExIiwiXHU5M2Y2XHU5NmM2XHU1ZmI1XHU2MWYyXHU2Zjg0XHU0ZTE0XHU0Zjk4XHU1MDFmXHU1M2M5XHU1NWRmXHU1ZDZmXHU1ZGVl''@;'; + put 'put ''XHU2YjIxXHU2YjY0XHU3OGNiXHU3YjlhXHVmOWZlXHU4ZTQ5XHU4ZWNhXHU5MDZlXHU2MzQ5XHU2NDNlXHU3NzQwXHU3YTg0XHU5MzJmXHU5NDdmXHU5ZjZhXHU2NGIwXHU2ZmFmXHU3MWU2XHU3NGE4XHU3NGRhXHU3YWM0XHU3YzEyXHU3ZTgyXHU3Y2IyXHU3ZTk4XHU4YjlhXHU4ZDBhXHU5''@;'; + put 'put ''NDdkXHU5OTEwXHU5OTRjXHU1MjM5XHU1YmRmXHU2NGU2XHU2NzJkXHU3ZDJlXHU1MGVkXHU1M2MzXHU1ODc5XHU2MTU4XHU2MTU5XHU2MWZhXHU2NWFjXHU3YWQ5XHU4YjkyXHU4Yjk2XHU1MDA5XHU1MDIxXHU1Mjc1XHU1NTMxXHU1YTNjXHU1ZWUwXHU1ZjcwXHU2MTM0XHU2NTVlXHU2NjBj''@;'; + put 'put ''XHU2NjM2XHU2NmEyXHU2OWNkXHU2ZWM0XHU2ZjMyXHU3MzE2XHU3NjIxXHU3YTkzXHU4MTM5XHU4MjU5XHU4M2Q2XHU4NGJjXHU1MGI1XHU1N2YwXHU1YmMwXHU1YmU4XHU1ZjY5XHU2M2ExXHU3ODI2XHU3ZGI1XHU4M2RjXHU4NTIxXHU5MWM3XHU5MWY1XHU1MThhXHU2N2Y1XHU3YjU2Il0s''@;'; + put 'put ''WyJmNGExIiwiXHU4Y2FjXHU1MWM0XHU1OWJiXHU2MGJkXHU4NjU1XHU1MDFjXHVmOWZmXHU1MjU0XHU1YzNhXHU2MTdkXHU2MjFhXHU2MmQzXHU2NGYyXHU2NWE1XHU2ZWNjXHU3NjIwXHU4MTBhXHU4ZTYwXHU5NjVmXHU5NmJiXHU0ZWRmXHU1MzQzXHU1NTk4XHU1OTI5XHU1ZGRkXHU2NGM1''@;'; + put 'put ''XHU2Y2M5XHU2ZGZhXHU3Mzk0XHU3YTdmXHU4MjFiXHU4NWE2XHU4Y2U0XHU4ZTEwXHU5MDc3XHU5MWU3XHU5NWUxXHU5NjIxXHU5N2M2XHU1MWY4XHU1NGYyXHU1NTg2XHU1ZmI5XHU2NGE0XHU2Zjg4XHU3ZGI0XHU4ZjFmXHU4ZjRkXHU5NDM1XHU1MGM5XHU1YzE2XHU2Y2JlXHU2ZGZiXHU3''@;'; + put 'put ''NTFiXHU3N2JiXHU3YzNkXHU3YzY0XHU4YTc5XHU4YWMyXHU1ODFlXHU1OWJlXHU1ZTE2XHU2Mzc3XHU3MjUyXHU3NThhXHU3NzZiXHU4YWRjXHU4Y2JjXHU4ZjEyXHU1ZWYzXHU2Njc0XHU2ZGY4XHU4MDdkXHU4M2MxXHU4YWNiXHU5NzUxXHU5YmQ2XHVmYTAwXHU1MjQzXHU2NmZmXHU2ZDk1''@;'; + put 'put ''XHU2ZWVmXHU3ZGUwXHU4YWU2XHU5MDJlXHU5MDVlXHU5YWQ0XHU1MjFkXHU1MjdmXHU1NGU4XHU2MTk0XHU2Mjg0XHU2MmRiXHU2OGEyIl0sWyJmNWExIiwiXHU2OTEyXHU2OTVhXHU2YTM1XHU3MDkyXHU3MTI2XHU3ODVkXHU3OTAxXHU3OTBlXHU3OWQyXHU3YTBkXHU4MDk2XHU4Mjc4XHU4''@;'; + put 'put ''MmQ1XHU4MzQ5XHU4NTQ5XHU4YzgyXHU4ZDg1XHU5MTYyXHU5MThiXHU5MWFlXHU0ZmMzXHU1NmQxXHU3MWVkXHU3N2Q3XHU4NzAwXHU4OWY4XHU1YmY4XHU1ZmQ2XHU2NzUxXHU5MGE4XHU1M2UyXHU1ODVhXHU1YmY1XHU2MGE0XHU2MTgxXHU2NDYwXHU3ZTNkXHU4MDcwXHU4NTI1XHU5Mjgz''@;'; + put 'put ''XHU2NGFlXHU1MGFjXHU1ZDE0XHU2NzAwXHU1ODljXHU2MmJkXHU2M2E4XHU2OTBlXHU2OTc4XHU2YTFlXHU2ZTZiXHU3NmJhXHU3OWNiXHU4MmJiXHU4NDI5XHU4YWNmXHU4ZGE4XHU4ZmZkXHU5MTEyXHU5MTRiXHU5MTljXHU5MzEwXHU5MzE4XHU5MzlhXHU5NmRiXHU5YTM2XHU5YzBkXHU0''@;'; + put 'put ''ZTExXHU3NTVjXHU3OTVkXHU3YWZhXHU3YjUxXHU3YmM5XHU3ZTJlXHU4NGM0XHU4ZTU5XHU4ZTc0XHU4ZWY4XHU5MDEwXHU2NjI1XHU2OTNmXHU3NDQzXHU1MWZhXHU2NzJlXHU5ZWRjXHU1MTQ1XHU1ZmUwXHU2Yzk2XHU4N2YyXHU4ODVkXHU4ODc3XHU2MGI0XHU4MWI1XHU4NDAzIl0sWyJm''@;'; + put 'put ''NmExIiwiXHU4ZDA1XHU1M2Q2XHU1NDM5XHU1NjM0XHU1YTM2XHU1YzMxXHU3MDhhXHU3ZmUwXHU4MDVhXHU4MTA2XHU4MWVkXHU4ZGEzXHU5MTg5XHU5YTVmXHU5ZGYyXHU1MDc0XHU0ZWM0XHU1M2EwXHU2MGZiXHU2ZTJjXHU1YzY0XHU0Zjg4XHU1MDI0XHU1NWU0XHU1Y2Q5XHU1ZTVmXHU2''@;'; + put 'put ''MDY1XHU2ODk0XHU2Y2JiXHU2ZGM0XHU3MWJlXHU3NWQ0XHU3NWY0XHU3NjYxXHU3YTFhXHU3YTQ5XHU3ZGM3XHU3ZGZiXHU3ZjZlXHU4MWY0XHU4NmE5XHU4ZjFjXHU5NmM5XHU5OWIzXHU5ZjUyXHU1MjQ3XHU1MmM1XHU5OGVkXHU4OWFhXHU0ZTAzXHU2N2QyXHU2ZjA2XHU0ZmI1XHU1YmUy''@;'; + put 'put ''XHU2Nzk1XHU2Yzg4XHU2ZDc4XHU3NDFiXHU3ODI3XHU5MWRkXHU5MzdjXHU4N2M0XHU3OWU0XHU3YTMxXHU1ZmViXHU0ZWQ2XHU1NGE0XHU1NTNlXHU1OGFlXHU1OWE1XHU2MGYwXHU2MjUzXHU2MmQ2XHU2NzM2XHU2OTU1XHU4MjM1XHU5NjQwXHU5OWIxXHU5OWRkXHU1MDJjXHU1MzUzXHU1''@;'; + put 'put ''NTQ0XHU1NzdjXHVmYTAxXHU2MjU4XHVmYTAyXHU2NGUyXHU2NjZiXHU2N2RkXHU2ZmMxXHU2ZmVmXHU3NDIyXHU3NDM4XHU4YTE3Il0sWyJmN2ExIiwiXHU5NDM4XHU1NDUxXHU1NjA2XHU1NzY2XHU1ZjQ4XHU2MTlhXHU2YjRlXHU3MDU4XHU3MGFkXHU3ZGJiXHU4YTk1XHU1OTZhXHU4MTJi''@;'; + put 'put ''XHU2M2EyXHU3NzA4XHU4MDNkXHU4Y2FhXHU1ODU0XHU2NDJkXHU2OWJiXHU1Yjk1XHU1ZTExXHU2ZTZmXHVmYTAzXHU4NTY5XHU1MTRjXHU1M2YwXHU1OTJhXHU2MDIwXHU2MTRiXHU2Yjg2XHU2YzcwXHU2Y2YwXHU3YjFlXHU4MGNlXHU4MmQ0XHU4ZGM2XHU5MGIwXHU5OGIxXHVmYTA0XHU2''@;'; + put 'put ''NGM3XHU2ZmE0XHU2NDkxXHU2NTA0XHU1MTRlXHU1NDEwXHU1NzFmXHU4YTBlXHU2MTVmXHU2ODc2XHVmYTA1XHU3NWRiXHU3YjUyXHU3ZDcxXHU5MDFhXHU1ODA2XHU2OWNjXHU4MTdmXHU4OTJhXHU5MDAwXHU5ODM5XHU1MDc4XHU1OTU3XHU1OWFjXHU2Mjk1XHU5MDBmXHU5YjJhXHU2MTVk''@;'; + put 'put ''XHU3Mjc5XHU5NWQ2XHU1NzYxXHU1YTQ2XHU1ZGY0XHU2MjhhXHU2NGFkXHU2NGZhXHU2Nzc3XHU2Y2UyXHU2ZDNlXHU3MjJjXHU3NDM2XHU3ODM0XHU3Zjc3XHU4MmFkXHU4ZGRiXHU5ODE3XHU1MjI0XHU1NzQyXHU2NzdmXHU3MjQ4XHU3NGUzXHU4Y2E5XHU4ZmE2XHU5MjExIl0sWyJmOGEx''@;'; + put 'put ''IiwiXHU5NjJhXHU1MTZiXHU1M2VkXHU2MzRjXHU0ZjY5XHU1NTA0XHU2MDk2XHU2NTU3XHU2YzliXHU2ZDdmXHU3MjRjXHU3MmZkXHU3YTE3XHU4OTg3XHU4YzlkXHU1ZjZkXHU2ZjhlXHU3MGY5XHU4MWE4XHU2MTBlXHU0ZmJmXHU1MDRmXHU2MjQxXHU3MjQ3XHU3YmM3XHU3ZGU4XHU3ZmU5''@;'; + put 'put ''XHU5MDRkXHU5N2FkXHU5YTE5XHU4Y2I2XHU1NzZhXHU1ZTczXHU2N2IwXHU4NDBkXHU4YTU1XHU1NDIwXHU1YjE2XHU1ZTYzXHU1ZWUyXHU1ZjBhXHU2NTgzXHU4MGJhXHU4NTNkXHU5NTg5XHU5NjViXHU0ZjQ4XHU1MzA1XHU1MzBkXHU1MzBmXHU1NDg2XHU1NGZhXHU1NzAzXHU1ZTAzXHU2''@;'; + put 'put ''MDE2XHU2MjliXHU2MmIxXHU2MzU1XHVmYTA2XHU2Y2UxXHU2ZDY2XHU3NWIxXHU3ODMyXHU4MGRlXHU4MTJmXHU4MmRlXHU4NDYxXHU4NGIyXHU4ODhkXHU4OTEyXHU5MDBiXHU5MmVhXHU5OGZkXHU5YjkxXHU1ZTQ1XHU2NmI0XHU2NmRkXHU3MDExXHU3MjA2XHVmYTA3XHU0ZmY1XHU1Mjdk''@;'; + put 'put ''XHU1ZjZhXHU2MTUzXHU2NzUzXHU2YTE5XHU2ZjAyXHU3NGUyXHU3OTY4XHU4ODY4XHU4Yzc5XHU5OGM3XHU5OGM0XHU5YTQzIl0sWyJmOWExIiwiXHU1NGMxXHU3YTFmXHU2OTUzXHU4YWY3XHU4YzRhXHU5OGE4XHU5OWFlXHU1ZjdjXHU2MmFiXHU3NWIyXHU3NmFlXHU4OGFiXHU5MDdmXHU5''@;'; + put 'put ''NjQyXHU1MzM5XHU1ZjNjXHU1ZmM1XHU2Y2NjXHU3M2NjXHU3NTYyXHU3NThiXHU3YjQ2XHU4MmZlXHU5OTlkXHU0ZTRmXHU5MDNjXHU0ZTBiXHU0ZjU1XHU1M2E2XHU1OTBmXHU1ZWM4XHU2NjMwXHU2Y2IzXHU3NDU1XHU4Mzc3XHU4NzY2XHU4Y2MwXHU5MDUwXHU5NzFlXHU5YzE1XHU1OGQx''@;'; + put 'put ''XHU1Yjc4XHU4NjUwXHU4YjE0XHU5ZGI0XHU1YmQyXHU2MDY4XHU2MDhkXHU2NWYxXHU2YzU3XHU2ZjIyXHU2ZmEzXHU3MDFhXHU3ZjU1XHU3ZmYwXHU5NTkxXHU5NTkyXHU5NjUwXHU5N2QzXHU1MjcyXHU4ZjQ0XHU1MWZkXHU1NDJiXHU1NGI4XHU1NTYzXHU1NThhXHU2YWJiXHU2ZGI1XHU3''@;'; + put 'put ''ZGQ4XHU4MjY2XHU5MjljXHU5Njc3XHU5ZTc5XHU1NDA4XHU1NGM4XHU3NmQyXHU4NmU0XHU5NWE0XHU5NWQ0XHU5NjVjXHU0ZWEyXHU0ZjA5XHU1OWVlXHU1YWU2XHU1ZGY3XHU2MDUyXHU2Mjk3XHU2NzZkXHU2ODQxXHU2Yzg2XHU2ZTJmXHU3ZjM4XHU4MDliXHU4MjJhIl0sWyJmYWExIiwi''@;'; + put 'put ''XHVmYTA4XHVmYTA5XHU5ODA1XHU0ZWE1XHU1MDU1XHU1NGIzXHU1NzkzXHU1OTVhXHU1YjY5XHU1YmIzXHU2MWM4XHU2OTc3XHU2ZDc3XHU3MDIzXHU4N2Y5XHU4OWUzXHU4YTcyXHU4YWU3XHU5MDgyXHU5OWVkXHU5YWI4XHU1MmJlXHU2ODM4XHU1MDE2XHU1ZTc4XHU2NzRmXHU4MzQ3XHU4''@;'; + put 'put ''ODRjXHU0ZWFiXHU1NDExXHU1NmFlXHU3M2U2XHU5MTE1XHU5N2ZmXHU5OTA5XHU5OTU3XHU5OTk5XHU1NjUzXHU1ODlmXHU4NjViXHU4YTMxXHU2MWIyXHU2YWY2XHU3MzdiXHU4ZWQyXHU2YjQ3XHU5NmFhXHU5YTU3XHU1OTU1XHU3MjAwXHU4ZDZiXHU5NzY5XHU0ZmQ0XHU1Y2Y0XHU1ZjI2''@;'; + put 'put ''XHU2MWY4XHU2NjViXHU2Y2ViXHU3MGFiXHU3Mzg0XHU3M2I5XHU3M2ZlXHU3NzI5XHU3NzRkXHU3ZDQzXHU3ZDYyXHU3ZTIzXHU4MjM3XHU4ODUyXHVmYTBhXHU4Y2UyXHU5MjQ5XHU5ODZmXHU1YjUxXHU3YTc0XHU4ODQwXHU5ODAxXHU1YWNjXHU0ZmUwXHU1MzU0XHU1OTNlXHU1Y2ZkXHU2''@;'; + put 'put ''MzNlXHU2ZDc5XHU3MmY5XHU4MTA1XHU4MTA3XHU4M2EyXHU5MmNmXHU5ODMwXHU0ZWE4XHU1MTQ0XHU1MjExXHU1NzhiIl0sWyJmYmExIiwiXHU1ZjYyXHU2Y2MyXHU2ZWNlXHU3MDA1XHU3MDUwXHU3MGFmXHU3MTkyXHU3M2U5XHU3NDY5XHU4MzRhXHU4N2EyXHU4ODYxXHU5MDA4XHU5MGEy''@;'; + put 'put ''XHU5M2EzXHU5OWE4XHU1MTZlXHU1ZjU3XHU2MGUwXHU2MTY3XHU2NmIzXHU4NTU5XHU4ZTRhXHU5MWFmXHU5NzhiXHU0ZTRlXHU0ZTkyXHU1NDdjXHU1OGQ1XHU1OGZhXHU1OTdkXHU1Y2I1XHU1ZjI3XHU2MjM2XHU2MjQ4XHU2NjBhXHU2NjY3XHU2YmViXHU2ZDY5XHU2ZGNmXHU2ZTU2XHU2''@;'; + put 'put ''ZWY4XHU2Zjk0XHU2ZmUwXHU2ZmU5XHU3MDVkXHU3MmQwXHU3NDI1XHU3NDVhXHU3NGUwXHU3NjkzXHU3OTVjXHU3Y2NhXHU3ZTFlXHU4MGUxXHU4MmE2XHU4NDZiXHU4NGJmXHU4NjRlXHU4NjVmXHU4Nzc0XHU4Yjc3XHU4YzZhXHU5M2FjXHU5ODAwXHU5ODY1XHU2MGQxXHU2MjE2XHU5MTc3''@;'; + put 'put ''XHU1YTVhXHU2NjBmXHU2ZGY3XHU2ZTNlXHU3NDNmXHU5YjQyXHU1ZmZkXHU2MGRhXHU3YjBmXHU1NGM0XHU1ZjE4XHU2YzVlXHU2Y2QzXHU2ZDJhXHU3MGQ4XHU3ZDA1XHU4Njc5XHU4YTBjXHU5ZDNiXHU1MzE2XHU1NDhjXHU1YjA1XHU2YTNhXHU3MDZiXHU3NTc1Il0sWyJmY2ExIiwiXHU3''@;'; + put 'put ''OThkXHU3OWJlXHU4MmIxXHU4M2VmXHU4YTcxXHU4YjQxXHU4Y2E4XHU5Nzc0XHVmYTBiXHU2NGY0XHU2NTJiXHU3OGJhXHU3OGJiXHU3YTZiXHU0ZTM4XHU1NTlhXHU1OTUwXHU1YmE2XHU1ZTdiXHU2MGEzXHU2M2RiXHU2YjYxXHU2NjY1XHU2ODUzXHU2ZTE5XHU3MTY1XHU3NGIwXHU3ZDA4''@;'; + put 'put ''XHU5MDg0XHU5YTY5XHU5YzI1XHU2ZDNiXHU2ZWQxXHU3MzNlXHU4YzQxXHU5NWNhXHU1MWYwXHU1ZTRjXHU1ZmE4XHU2MDRkXHU2MGY2XHU2MTMwXHU2MTRjXHU2NjQzXHU2NjQ0XHU2OWE1XHU2Y2MxXHU2ZTVmXHU2ZWM5XHU2ZjYyXHU3MTRjXHU3NDljXHU3Njg3XHU3YmMxXHU3YzI3XHU4''@;'; + put 'put ''MzUyXHU4NzU3XHU5MDUxXHU5NjhkXHU5ZWMzXHU1MzJmXHU1NmRlXHU1ZWZiXHU1ZjhhXHU2MDYyXHU2MDk0XHU2MWY3XHU2NjY2XHU2NzAzXHU2YTljXHU2ZGVlXHU2ZmFlXHU3MDcwXHU3MzZhXHU3ZTZhXHU4MWJlXHU4MzM0XHU4NmQ0XHU4YWE4XHU4Y2M0XHU1MjgzXHU3MzcyXHU1Yjk2''@;'; + put 'put ''XHU2YTZiXHU5NDA0XHU1NGVlXHU1Njg2XHU1YjVkXHU2NTQ4XHU2NTg1XHU2NmM5XHU2ODlmXHU2ZDhkXHU2ZGM2Il0sWyJmZGExIiwiXHU3MjNiXHU4MGI0XHU5MTc1XHU5YTRkXHU0ZmFmXHU1MDE5XHU1MzlhXHU1NDBlXHU1NDNjXHU1NTg5XHU1NWM1XHU1ZTNmXHU1ZjhjXHU2NzNkXHU3''@;'; + put 'put ''MTY2XHU3M2RkXHU5MDA1XHU1MmRiXHU1MmYzXHU1ODY0XHU1OGNlXHU3MTA0XHU3MThmXHU3MWZiXHU4NWIwXHU4YTEzXHU2Njg4XHU4NWE4XHU1NWE3XHU2Njg0XHU3MTRhXHU4NDMxXHU1MzQ5XHU1NTk5XHU2YmMxXHU1ZjU5XHU1ZmJkXHU2M2VlXHU2Njg5XHU3MTQ3XHU4YWYxXHU4ZjFk''@;'; + put 'put ''XHU5ZWJlXHU0ZjExXHU2NDNhXHU3MGNiXHU3NTY2XHU4NjY3XHU2MDY0XHU4YjRlXHU5ZGY4XHU1MTQ3XHU1MWY2XHU1MzA4XHU2ZDM2XHU4MGY4XHU5ZWQxXHU2NjE1XHU2YjIzXHU3MDk4XHU3NWQ1XHU1NDAzXHU1Yzc5XHU3ZDA3XHU4YTE2XHU2YjIwXHU2YjNkXHU2YjQ2XHU1NDM4XHU2''@;'; + put 'put ''MDcwXHU2ZDNkXHU3ZmQ1XHU4MjA4XHU1MGQ2XHU1MWRlXHU1NTljXHU1NjZiXHU1NmNkXHU1OWVjXHU1YjA5XHU1ZTBjXHU2MTk5XHU2MTk4XHU2MjMxXHU2NjVlXHU2NmU2XHU3MTk5XHU3MWI5XHU3MWJhXHU3MmE3XHU3OWE3XHU3YTAwXHU3ZmIyXHU4YTcwIl1dJyl9LDc0Mjg0OlhlPT57''@;'; + put 'put ''InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9SlNPTi5wYXJzZSgnW1siMCIsIlxcdTAwMDAiLDEyN10sWyJhMTQwIiwiXHUzMDAwXHVmZjBjXHUzMDAxXHUzMDAyXHVmZjBlXHUyMDI3XHVmZjFiXHVmZjFhXHVmZjFmXHVmZjAxXHVmZTMwXHUyMDI2XHUyMDI1XHVmZTUwXHVmZTUxXHVmZTUyXHhi''@;'; + put 'put ''N1x1ZmU1NFx1ZmU1NVx1ZmU1Nlx1ZmU1N1x1ZmY1Y1x1MjAxM1x1ZmUzMVx1MjAxNFx1ZmUzM1x1MjU3NFx1ZmUzNFx1ZmU0Zlx1ZmYwOFx1ZmYwOVx1ZmUzNVx1ZmUzNlx1ZmY1Ylx1ZmY1ZFx1ZmUzN1x1ZmUzOFx1MzAxNFx1MzAxNVx1ZmUzOVx1ZmUzYVx1MzAxMFx1MzAxMVx1ZmUzYlx1''@;'; + put 'put ''ZmUzY1x1MzAwYVx1MzAwYlx1ZmUzZFx1ZmUzZVx1MzAwOFx1MzAwOVx1ZmUzZlx1ZmU0MFx1MzAwY1x1MzAwZFx1ZmU0MVx1ZmU0Mlx1MzAwZVx1MzAwZlx1ZmU0M1x1ZmU0NFx1ZmU1OVx1ZmU1YSJdLFsiYTFhMSIsIlx1ZmU1Ylx1ZmU1Y1x1ZmU1ZFx1ZmU1ZVx1MjAxOFx1MjAxOVx1MjAx''@;'; + put 'put ''Y1x1MjAxZFx1MzAxZFx1MzAxZVx1MjAzNVx1MjAzMlx1ZmYwM1x1ZmYwNlx1ZmYwYVx1MjAzYlx4YTdcdTMwMDNcdTI1Y2JcdTI1Y2ZcdTI1YjNcdTI1YjJcdTI1Y2VcdTI2MDZcdTI2MDVcdTI1YzdcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YmRcdTI1YmNcdTMyYTNcdTIxMDVceGFmXHVmZmUz''@;'; + put 'put ''XHVmZjNmXHUwMmNkXHVmZTQ5XHVmZTRhXHVmZTRkXHVmZTRlXHVmZTRiXHVmZTRjXHVmZTVmXHVmZTYwXHVmZTYxXHVmZjBiXHVmZjBkXHhkN1x4ZjdceGIxXHUyMjFhXHVmZjFjXHVmZjFlXHVmZjFkXHUyMjY2XHUyMjY3XHUyMjYwXHUyMjFlXHUyMjUyXHUyMjYxXHVmZTYyIiw0LCJcdWZm''@;'; + put 'put ''NWVcdTIyMjlcdTIyMmFcdTIyYTVcdTIyMjBcdTIyMWZcdTIyYmZcdTMzZDJcdTMzZDFcdTIyMmJcdTIyMmVcdTIyMzVcdTIyMzRcdTI2NDBcdTI2NDJcdTIyOTVcdTIyOTlcdTIxOTFcdTIxOTNcdTIxOTBcdTIxOTJcdTIxOTZcdTIxOTdcdTIxOTlcdTIxOThcdTIyMjVcdTIyMjNcdWZmMGYi''@;'; + put 'put ''XSxbImEyNDAiLCJcdWZmM2NcdTIyMTVcdWZlNjhcdWZmMDRcdWZmZTVcdTMwMTJcdWZmZTBcdWZmZTFcdWZmMDVcdWZmMjBcdTIxMDNcdTIxMDlcdWZlNjlcdWZlNmFcdWZlNmJcdTMzZDVcdTMzOWNcdTMzOWRcdTMzOWVcdTMzY2VcdTMzYTFcdTMzOGVcdTMzOGZcdTMzYzRceGIwXHU1MTU5''@;'; + put 'put ''XHU1MTViXHU1MTVlXHU1MTVkXHU1MTYxXHU1MTYzXHU1NWU3XHU3NGU5XHU3Y2NlXHUyNTgxIiw3LCJcdTI1OGZcdTI1OGVcdTI1OGRcdTI1OGNcdTI1OGJcdTI1OGFcdTI1ODlcdTI1M2NcdTI1MzRcdTI1MmNcdTI1MjRcdTI1MWNcdTI1OTRcdTI1MDBcdTI1MDJcdTI1OTVcdTI1MGNcdTI1''@;'; + put 'put ''MTBcdTI1MTRcdTI1MThcdTI1NmQiXSxbImEyYTEiLCJcdTI1NmVcdTI1NzBcdTI1NmZcdTI1NTBcdTI1NWVcdTI1NmFcdTI1NjFcdTI1ZTJcdTI1ZTNcdTI1ZTVcdTI1ZTRcdTI1NzFcdTI1NzJcdTI1NzNcdWZmMTAiLDksIlx1MjE2MCIsOSwiXHUzMDIxIiw4LCJcdTUzNDFcdTUzNDRcdTUz''@;'; + put 'put ''NDVcdWZmMjEiLDI1LCJcdWZmNDEiLDIxXSxbImEzNDAiLCJcdWZmNTdcdWZmNThcdWZmNTlcdWZmNWFcdTAzOTEiLDE2LCJcdTAzYTMiLDYsIlx1MDNiMSIsMTYsIlx1MDNjMyIsNiwiXHUzMTA1IiwxMF0sWyJhM2ExIiwiXHUzMTEwIiwyNSwiXHUwMmQ5XHUwMmM5XHUwMmNhXHUwMmM3XHUw''@;'; + put 'put ''MmNiIl0sWyJhM2UxIiwiXHUyMGFjIl0sWyJhNDQwIiwiXHU0ZTAwXHU0ZTU5XHU0ZTAxXHU0ZTAzXHU0ZTQzXHU0ZTVkXHU0ZTg2XHU0ZThjXHU0ZWJhXHU1MTNmXHU1MTY1XHU1MTZiXHU1MWUwXHU1MjAwXHU1MjAxXHU1MjliXHU1MzE1XHU1MzQxXHU1MzVjXHU1M2M4XHU0ZTA5XHU0ZTBi''@;'; + put 'put ''XHU0ZTA4XHU0ZTBhXHU0ZTJiXHU0ZTM4XHU1MWUxXHU0ZTQ1XHU0ZTQ4XHU0ZTVmXHU0ZTVlXHU0ZThlXHU0ZWExXHU1MTQwXHU1MjAzXHU1MmZhXHU1MzQzXHU1M2M5XHU1M2UzXHU1NzFmXHU1OGViXHU1OTE1XHU1OTI3XHU1OTczXHU1YjUwXHU1YjUxXHU1YjUzXHU1YmY4XHU1YzBmXHU1''@;'; + put 'put ''YzIyXHU1YzM4XHU1YzcxXHU1ZGRkXHU1ZGU1XHU1ZGYxXHU1ZGYyXHU1ZGYzXHU1ZGZlXHU1ZTcyXHU1ZWZlXHU1ZjBiXHU1ZjEzXHU2MjRkIl0sWyJhNGExIiwiXHU0ZTExXHU0ZTEwXHU0ZTBkXHU0ZTJkXHU0ZTMwXHU0ZTM5XHU0ZTRiXHU1YzM5XHU0ZTg4XHU0ZTkxXHU0ZTk1XHU0ZTky''@;'; + put 'put ''XHU0ZTk0XHU0ZWEyXHU0ZWMxXHU0ZWMwXHU0ZWMzXHU0ZWM2XHU0ZWM3XHU0ZWNkXHU0ZWNhXHU0ZWNiXHU0ZWM0XHU1MTQzXHU1MTQxXHU1MTY3XHU1MTZkXHU1MTZlXHU1MTZjXHU1MTk3XHU1MWY2XHU1MjA2XHU1MjA3XHU1MjA4XHU1MmZiXHU1MmZlXHU1MmZmXHU1MzE2XHU1MzM5XHU1''@;'; + put 'put ''MzQ4XHU1MzQ3XHU1MzQ1XHU1MzVlXHU1Mzg0XHU1M2NiXHU1M2NhXHU1M2NkXHU1OGVjXHU1OTI5XHU1OTJiXHU1OTJhXHU1OTJkXHU1YjU0XHU1YzExXHU1YzI0XHU1YzNhXHU1YzZmXHU1ZGY0XHU1ZTdiXHU1ZWZmXHU1ZjE0XHU1ZjE1XHU1ZmMzXHU2MjA4XHU2MjM2XHU2MjRiXHU2MjRl''@;'; + put 'put ''XHU2NTJmXHU2NTg3XHU2NTk3XHU2NWE0XHU2NWI5XHU2NWU1XHU2NmYwXHU2NzA4XHU2NzI4XHU2YjIwXHU2YjYyXHU2Yjc5XHU2YmNiXHU2YmQ0XHU2YmRiXHU2YzBmXHU2YzM0XHU3MDZiXHU3MjJhXHU3MjM2XHU3MjNiXHU3MjQ3XHU3MjU5XHU3MjViXHU3MmFjXHU3MzhiXHU0ZTE5Il0s''@;'; + put 'put ''WyJhNTQwIiwiXHU0ZTE2XHU0ZTE1XHU0ZTE0XHU0ZTE4XHU0ZTNiXHU0ZTRkXHU0ZTRmXHU0ZTRlXHU0ZWU1XHU0ZWQ4XHU0ZWQ0XHU0ZWQ1XHU0ZWQ2XHU0ZWQ3XHU0ZWUzXHU0ZWU0XHU0ZWQ5XHU0ZWRlXHU1MTQ1XHU1MTQ0XHU1MTg5XHU1MThhXHU1MWFjXHU1MWY5XHU1MWZhXHU1MWY4''@;'; + put 'put ''XHU1MjBhXHU1MmEwXHU1MjlmXHU1MzA1XHU1MzA2XHU1MzE3XHU1MzFkXHU0ZWRmXHU1MzRhXHU1MzQ5XHU1MzYxXHU1MzYwXHU1MzZmXHU1MzZlXHU1M2JiXHU1M2VmXHU1M2U0XHU1M2YzXHU1M2VjXHU1M2VlXHU1M2U5XHU1M2U4XHU1M2ZjXHU1M2Y4XHU1M2Y1XHU1M2ViXHU1M2U2XHU1''@;'; + put 'put ''M2VhXHU1M2YyXHU1M2YxXHU1M2YwXHU1M2U1XHU1M2VkXHU1M2ZiXHU1NmRiXHU1NmRhXHU1OTE2Il0sWyJhNWExIiwiXHU1OTJlXHU1OTMxXHU1OTc0XHU1OTc2XHU1YjU1XHU1YjgzXHU1YzNjXHU1ZGU4XHU1ZGU3XHU1ZGU2XHU1ZTAyXHU1ZTAzXHU1ZTczXHU1ZTdjXHU1ZjAxXHU1ZjE4''@;'; + put 'put ''XHU1ZjE3XHU1ZmM1XHU2MjBhXHU2MjUzXHU2MjU0XHU2MjUyXHU2MjUxXHU2NWE1XHU2NWU2XHU2NzJlXHU2NzJjXHU2NzJhXHU2NzJiXHU2NzJkXHU2YjYzXHU2YmNkXHU2YzExXHU2YzEwXHU2YzM4XHU2YzQxXHU2YzQwXHU2YzNlXHU3MmFmXHU3Mzg0XHU3Mzg5XHU3NGRjXHU3NGU2XHU3''@;'; + put 'put ''NTE4XHU3NTFmXHU3NTI4XHU3NTI5XHU3NTMwXHU3NTMxXHU3NTMyXHU3NTMzXHU3NThiXHU3NjdkXHU3NmFlXHU3NmJmXHU3NmVlXHU3N2RiXHU3N2UyXHU3N2YzXHU3OTNhXHU3OWJlXHU3YTc0XHU3YWNiXHU0ZTFlXHU0ZTFmXHU0ZTUyXHU0ZTUzXHU0ZTY5XHU0ZTk5XHU0ZWE0XHU0ZWE2''@;'; + put 'put ''XHU0ZWE1XHU0ZWZmXHU0ZjA5XHU0ZjE5XHU0ZjBhXHU0ZjE1XHU0ZjBkXHU0ZjEwXHU0ZjExXHU0ZjBmXHU0ZWYyXHU0ZWY2XHU0ZWZiXHU0ZWYwXHU0ZWYzXHU0ZWZkXHU0ZjAxXHU0ZjBiXHU1MTQ5XHU1MTQ3XHU1MTQ2XHU1MTQ4XHU1MTY4Il0sWyJhNjQwIiwiXHU1MTcxXHU1MThkXHU1''@;'; + put 'put ''MWIwXHU1MjE3XHU1MjExXHU1MjEyXHU1MjBlXHU1MjE2XHU1MmEzXHU1MzA4XHU1MzIxXHU1MzIwXHU1MzcwXHU1MzcxXHU1NDA5XHU1NDBmXHU1NDBjXHU1NDBhXHU1NDEwXHU1NDAxXHU1NDBiXHU1NDA0XHU1NDExXHU1NDBkXHU1NDA4XHU1NDAzXHU1NDBlXHU1NDA2XHU1NDEyXHU1NmUw''@;'; + put 'put ''XHU1NmRlXHU1NmRkXHU1NzMzXHU1NzMwXHU1NzI4XHU1NzJkXHU1NzJjXHU1NzJmXHU1NzI5XHU1OTE5XHU1OTFhXHU1OTM3XHU1OTM4XHU1OTg0XHU1OTc4XHU1OTgzXHU1OTdkXHU1OTc5XHU1OTgyXHU1OTgxXHU1YjU3XHU1YjU4XHU1Yjg3XHU1Yjg4XHU1Yjg1XHU1Yjg5XHU1YmZhXHU1''@;'; + put 'put ''YzE2XHU1Yzc5XHU1ZGRlXHU1ZTA2XHU1ZTc2XHU1ZTc0Il0sWyJhNmExIiwiXHU1ZjBmXHU1ZjFiXHU1ZmQ5XHU1ZmQ2XHU2MjBlXHU2MjBjXHU2MjBkXHU2MjEwXHU2MjYzXHU2MjViXHU2MjU4XHU2NTM2XHU2NWU5XHU2NWU4XHU2NWVjXHU2NWVkXHU2NmYyXHU2NmYzXHU2NzA5XHU2NzNk''@;'; + put 'put ''XHU2NzM0XHU2NzMxXHU2NzM1XHU2YjIxXHU2YjY0XHU2YjdiXHU2YzE2XHU2YzVkXHU2YzU3XHU2YzU5XHU2YzVmXHU2YzYwXHU2YzUwXHU2YzU1XHU2YzYxXHU2YzViXHU2YzRkXHU2YzRlXHU3MDcwXHU3MjVmXHU3MjVkXHU3NjdlXHU3YWY5XHU3YzczXHU3Y2Y4XHU3ZjM2XHU3ZjhhXHU3''@;'; + put 'put ''ZmJkXHU4MDAxXHU4MDAzXHU4MDBjXHU4MDEyXHU4MDMzXHU4MDdmXHU4MDg5XHU4MDhiXHU4MDhjXHU4MWUzXHU4MWVhXHU4MWYzXHU4MWZjXHU4MjBjXHU4MjFiXHU4MjFmXHU4MjZlXHU4MjcyXHU4MjdlXHU4NjZiXHU4ODQwXHU4ODRjXHU4ODYzXHU4OTdmXHU5NjIxXHU0ZTMyXHU0ZWE4''@;'; + put 'put ''XHU0ZjRkXHU0ZjRmXHU0ZjQ3XHU0ZjU3XHU0ZjVlXHU0ZjM0XHU0ZjViXHU0ZjU1XHU0ZjMwXHU0ZjUwXHU0ZjUxXHU0ZjNkXHU0ZjNhXHU0ZjM4XHU0ZjQzXHU0ZjU0XHU0ZjNjXHU0ZjQ2XHU0ZjYzIl0sWyJhNzQwIiwiXHU0ZjVjXHU0ZjYwXHU0ZjJmXHU0ZjRlXHU0ZjM2XHU0ZjU5XHU0''@;'; + put 'put ''ZjVkXHU0ZjQ4XHU0ZjVhXHU1MTRjXHU1MTRiXHU1MTRkXHU1MTc1XHU1MWI2XHU1MWI3XHU1MjI1XHU1MjI0XHU1MjI5XHU1MjJhXHU1MjI4XHU1MmFiXHU1MmE5XHU1MmFhXHU1MmFjXHU1MzIzXHU1MzczXHU1Mzc1XHU1NDFkXHU1NDJkXHU1NDFlXHU1NDNlXHU1NDI2XHU1NDRlXHU1NDI3''@;'; + put 'put ''XHU1NDQ2XHU1NDQzXHU1NDMzXHU1NDQ4XHU1NDQyXHU1NDFiXHU1NDI5XHU1NDRhXHU1NDM5XHU1NDNiXHU1NDM4XHU1NDJlXHU1NDM1XHU1NDM2XHU1NDIwXHU1NDNjXHU1NDQwXHU1NDMxXHU1NDJiXHU1NDFmXHU1NDJjXHU1NmVhXHU1NmYwXHU1NmU0XHU1NmViXHU1NzRhXHU1NzUxXHU1''@;'; + put 'put ''NzQwXHU1NzRkIl0sWyJhN2ExIiwiXHU1NzQ3XHU1NzRlXHU1NzNlXHU1NzUwXHU1NzRmXHU1NzNiXHU1OGVmXHU1OTNlXHU1OTlkXHU1OTkyXHU1OWE4XHU1OTllXHU1OWEzXHU1OTk5XHU1OTk2XHU1OThkXHU1OWE0XHU1OTkzXHU1OThhXHU1OWE1XHU1YjVkXHU1YjVjXHU1YjVhXHU1YjVi''@;'; + put 'put ''XHU1YjhjXHU1YjhiXHU1YjhmXHU1YzJjXHU1YzQwXHU1YzQxXHU1YzNmXHU1YzNlXHU1YzkwXHU1YzkxXHU1Yzk0XHU1YzhjXHU1ZGViXHU1ZTBjXHU1ZThmXHU1ZTg3XHU1ZThhXHU1ZWY3XHU1ZjA0XHU1ZjFmXHU1ZjY0XHU1ZjYyXHU1Zjc3XHU1Zjc5XHU1ZmQ4XHU1ZmNjXHU1ZmQ3XHU1''@;'; + put 'put ''ZmNkXHU1ZmYxXHU1ZmViXHU1ZmY4XHU1ZmVhXHU2MjEyXHU2MjExXHU2Mjg0XHU2Mjk3XHU2Mjk2XHU2MjgwXHU2Mjc2XHU2Mjg5XHU2MjZkXHU2MjhhXHU2MjdjXHU2MjdlXHU2Mjc5XHU2MjczXHU2MjkyXHU2MjZmXHU2Mjk4XHU2MjZlXHU2Mjk1XHU2MjkzXHU2MjkxXHU2Mjg2XHU2NTM5''@;'; + put 'put ''XHU2NTNiXHU2NTM4XHU2NWYxXHU2NmY0XHU2NzVmXHU2NzRlXHU2NzRmXHU2NzUwXHU2NzUxXHU2NzVjXHU2NzU2XHU2NzVlXHU2NzQ5XHU2NzQ2XHU2NzYwIl0sWyJhODQwIiwiXHU2NzUzXHU2NzU3XHU2YjY1XHU2YmNmXHU2YzQyXHU2YzVlXHU2Yzk5XHU2YzgxXHU2Yzg4XHU2Yzg5XHU2''@;'; + put 'put ''Yzg1XHU2YzliXHU2YzZhXHU2YzdhXHU2YzkwXHU2YzcwXHU2YzhjXHU2YzY4XHU2Yzk2XHU2YzkyXHU2YzdkXHU2YzgzXHU2YzcyXHU2YzdlXHU2Yzc0XHU2Yzg2XHU2Yzc2XHU2YzhkXHU2Yzk0XHU2Yzk4XHU2YzgyXHU3MDc2XHU3MDdjXHU3MDdkXHU3MDc4XHU3MjYyXHU3MjYxXHU3MjYw''@;'; + put 'put ''XHU3MmM0XHU3MmMyXHU3Mzk2XHU3NTJjXHU3NTJiXHU3NTM3XHU3NTM4XHU3NjgyXHU3NmVmXHU3N2UzXHU3OWMxXHU3OWMwXHU3OWJmXHU3YTc2XHU3Y2ZiXHU3ZjU1XHU4MDk2XHU4MDkzXHU4MDlkXHU4MDk4XHU4MDliXHU4MDlhXHU4MGIyXHU4MjZmXHU4MjkyIl0sWyJhOGExIiwiXHU4''@;'; + put 'put ''MjhiXHU4MjhkXHU4OThiXHU4OWQyXHU4YTAwXHU4YzM3XHU4YzQ2XHU4YzU1XHU4YzlkXHU4ZDY0XHU4ZDcwXHU4ZGIzXHU4ZWFiXHU4ZWNhXHU4ZjliXHU4ZmIwXHU4ZmMyXHU4ZmM2XHU4ZmM1XHU4ZmM0XHU1ZGUxXHU5MDkxXHU5MGEyXHU5MGFhXHU5MGE2XHU5MGEzXHU5MTQ5XHU5MWM2''@;'; + put 'put ''XHU5MWNjXHU5NjMyXHU5NjJlXHU5NjMxXHU5NjJhXHU5NjJjXHU0ZTI2XHU0ZTU2XHU0ZTczXHU0ZThiXHU0ZTliXHU0ZTllXHU0ZWFiXHU0ZWFjXHU0ZjZmXHU0ZjlkXHU0ZjhkXHU0ZjczXHU0ZjdmXHU0ZjZjXHU0ZjliXHU0ZjhiXHU0Zjg2XHU0ZjgzXHU0ZjcwXHU0Zjc1XHU0Zjg4XHU0''@;'; + put 'put ''ZjY5XHU0ZjdiXHU0Zjk2XHU0ZjdlXHU0ZjhmXHU0ZjkxXHU0ZjdhXHU1MTU0XHU1MTUyXHU1MTU1XHU1MTY5XHU1MTc3XHU1MTc2XHU1MTc4XHU1MWJkXHU1MWZkXHU1MjNiXHU1MjM4XHU1MjM3XHU1MjNhXHU1MjMwXHU1MjJlXHU1MjM2XHU1MjQxXHU1MmJlXHU1MmJiXHU1MzUyXHU1MzU0''@;'; + put 'put ''XHU1MzUzXHU1MzUxXHU1MzY2XHU1Mzc3XHU1Mzc4XHU1Mzc5XHU1M2Q2XHU1M2Q0XHU1M2Q3XHU1NDczXHU1NDc1Il0sWyJhOTQwIiwiXHU1NDk2XHU1NDc4XHU1NDk1XHU1NDgwXHU1NDdiXHU1NDc3XHU1NDg0XHU1NDkyXHU1NDg2XHU1NDdjXHU1NDkwXHU1NDcxXHU1NDc2XHU1NDhjXHU1''@;'; + put 'put ''NDlhXHU1NDYyXHU1NDY4XHU1NDhiXHU1NDdkXHU1NDhlXHU1NmZhXHU1NzgzXHU1Nzc3XHU1NzZhXHU1NzY5XHU1NzYxXHU1NzY2XHU1NzY0XHU1NzdjXHU1OTFjXHU1OTQ5XHU1OTQ3XHU1OTQ4XHU1OTQ0XHU1OTU0XHU1OWJlXHU1OWJiXHU1OWQ0XHU1OWI5XHU1OWFlXHU1OWQxXHU1OWM2''@;'; + put 'put ''XHU1OWQwXHU1OWNkXHU1OWNiXHU1OWQzXHU1OWNhXHU1OWFmXHU1OWIzXHU1OWQyXHU1OWM1XHU1YjVmXHU1YjY0XHU1YjYzXHU1Yjk3XHU1YjlhXHU1Yjk4XHU1YjljXHU1Yjk5XHU1YjliXHU1YzFhXHU1YzQ4XHU1YzQ1Il0sWyJhOWExIiwiXHU1YzQ2XHU1Y2I3XHU1Y2ExXHU1Y2I4XHU1''@;'; + put 'put ''Y2E5XHU1Y2FiXHU1Y2IxXHU1Y2IzXHU1ZTE4XHU1ZTFhXHU1ZTE2XHU1ZTE1XHU1ZTFiXHU1ZTExXHU1ZTc4XHU1ZTlhXHU1ZTk3XHU1ZTljXHU1ZTk1XHU1ZTk2XHU1ZWY2XHU1ZjI2XHU1ZjI3XHU1ZjI5XHU1ZjgwXHU1ZjgxXHU1ZjdmXHU1ZjdjXHU1ZmRkXHU1ZmUwXHU1ZmZkXHU1ZmY1''@;'; + put 'put ''XHU1ZmZmXHU2MDBmXHU2MDE0XHU2MDJmXHU2MDM1XHU2MDE2XHU2MDJhXHU2MDE1XHU2MDIxXHU2MDI3XHU2MDI5XHU2MDJiXHU2MDFiXHU2MjE2XHU2MjE1XHU2MjNmXHU2MjNlXHU2MjQwXHU2MjdmXHU2MmM5XHU2MmNjXHU2MmM0XHU2MmJmXHU2MmMyXHU2MmI5XHU2MmQyXHU2MmRiXHU2''@;'; + put 'put ''MmFiXHU2MmQzXHU2MmQ0XHU2MmNiXHU2MmM4XHU2MmE4XHU2MmJkXHU2MmJjXHU2MmQwXHU2MmQ5XHU2MmM3XHU2MmNkXHU2MmI1XHU2MmRhXHU2MmIxXHU2MmQ4XHU2MmQ2XHU2MmQ3XHU2MmM2XHU2MmFjXHU2MmNlXHU2NTNlXHU2NWE3XHU2NWJjXHU2NWZhXHU2NjE0XHU2NjEzXHU2NjBj''@;'; + put 'put ''XHU2NjA2XHU2NjAyXHU2NjBlXHU2NjAwXHU2NjBmXHU2NjE1XHU2NjBhIl0sWyJhYTQwIiwiXHU2NjA3XHU2NzBkXHU2NzBiXHU2NzZkXHU2NzhiXHU2Nzk1XHU2NzcxXHU2NzljXHU2NzczXHU2Nzc3XHU2Nzg3XHU2NzlkXHU2Nzk3XHU2NzZmXHU2NzcwXHU2NzdmXHU2Nzg5XHU2NzdlXHU2''@;'; + put 'put ''NzkwXHU2Nzc1XHU2NzlhXHU2NzkzXHU2NzdjXHU2NzZhXHU2NzcyXHU2YjIzXHU2YjY2XHU2YjY3XHU2YjdmXHU2YzEzXHU2YzFiXHU2Y2UzXHU2Y2U4XHU2Y2YzXHU2Y2IxXHU2Y2NjXHU2Y2U1XHU2Y2IzXHU2Y2JkXHU2Y2JlXHU2Y2JjXHU2Y2UyXHU2Y2FiXHU2Y2Q1XHU2Y2QzXHU2Y2I4''@;'; + put 'put ''XHU2Y2M0XHU2Y2I5XHU2Y2MxXHU2Y2FlXHU2Y2Q3XHU2Y2M1XHU2Y2YxXHU2Y2JmXHU2Y2JiXHU2Y2UxXHU2Y2RiXHU2Y2NhXHU2Y2FjXHU2Y2VmXHU2Y2RjXHU2Y2Q2XHU2Y2UwIl0sWyJhYWExIiwiXHU3MDk1XHU3MDhlXHU3MDkyXHU3MDhhXHU3MDk5XHU3MjJjXHU3MjJkXHU3MjM4XHU3''@;'; + put 'put ''MjQ4XHU3MjY3XHU3MjY5XHU3MmMwXHU3MmNlXHU3MmQ5XHU3MmQ3XHU3MmQwXHU3M2E5XHU3M2E4XHU3MzlmXHU3M2FiXHU3M2E1XHU3NTNkXHU3NTlkXHU3NTk5XHU3NTlhXHU3Njg0XHU3NmMyXHU3NmYyXHU3NmY0XHU3N2U1XHU3N2ZkXHU3OTNlXHU3OTQwXHU3OTQxXHU3OWM5XHU3OWM4''@;'; + put 'put ''XHU3YTdhXHU3YTc5XHU3YWZhXHU3Y2ZlXHU3ZjU0XHU3ZjhjXHU3ZjhiXHU4MDA1XHU4MGJhXHU4MGE1XHU4MGEyXHU4MGIxXHU4MGExXHU4MGFiXHU4MGE5XHU4MGI0XHU4MGFhXHU4MGFmXHU4MWU1XHU4MWZlXHU4MjBkXHU4MmIzXHU4MjlkXHU4Mjk5XHU4MmFkXHU4MmJkXHU4MjlmXHU4''@;'; + put 'put ''MmI5XHU4MmIxXHU4MmFjXHU4MmE1XHU4MmFmXHU4MmI4XHU4MmEzXHU4MmIwXHU4MmJlXHU4MmI3XHU4NjRlXHU4NjcxXHU1MjFkXHU4ODY4XHU4ZWNiXHU4ZmNlXHU4ZmQ0XHU4ZmQxXHU5MGI1XHU5MGI4XHU5MGIxXHU5MGI2XHU5MWM3XHU5MWQxXHU5NTc3XHU5NTgwXHU5NjFjXHU5NjQw''@;'; + put 'put ''XHU5NjNmXHU5NjNiXHU5NjQ0Il0sWyJhYjQwIiwiXHU5NjQyXHU5NmI5XHU5NmU4XHU5NzUyXHU5NzVlXHU0ZTlmXHU0ZWFkXHU0ZWFlXHU0ZmUxXHU0ZmI1XHU0ZmFmXHU0ZmJmXHU0ZmUwXHU0ZmQxXHU0ZmNmXHU0ZmRkXHU0ZmMzXHU0ZmI2XHU0ZmQ4XHU0ZmRmXHU0ZmNhXHU0ZmQ3XHU0''@;'; + put 'put ''ZmFlXHU0ZmQwXHU0ZmM0XHU0ZmMyXHU0ZmRhXHU0ZmNlXHU0ZmRlXHU0ZmI3XHU1MTU3XHU1MTkyXHU1MTkxXHU1MWEwXHU1MjRlXHU1MjQzXHU1MjRhXHU1MjRkXHU1MjRjXHU1MjRiXHU1MjQ3XHU1MmM3XHU1MmM5XHU1MmMzXHU1MmMxXHU1MzBkXHU1MzU3XHU1MzdiXHU1MzlhXHU1M2Ri''@;'; + put 'put ''XHU1NGFjXHU1NGMwXHU1NGE4XHU1NGNlXHU1NGM5XHU1NGI4XHU1NGE2XHU1NGIzXHU1NGM3XHU1NGMyXHU1NGJkXHU1NGFhXHU1NGMxIl0sWyJhYmExIiwiXHU1NGM0XHU1NGM4XHU1NGFmXHU1NGFiXHU1NGIxXHU1NGJiXHU1NGE5XHU1NGE3XHU1NGJmXHU1NmZmXHU1NzgyXHU1NzhiXHU1''@;'; + put 'put ''N2EwXHU1N2EzXHU1N2EyXHU1N2NlXHU1N2FlXHU1NzkzXHU1OTU1XHU1OTUxXHU1OTRmXHU1OTRlXHU1OTUwXHU1OWRjXHU1OWQ4XHU1OWZmXHU1OWUzXHU1OWU4XHU1YTAzXHU1OWU1XHU1OWVhXHU1OWRhXHU1OWU2XHU1YTAxXHU1OWZiXHU1YjY5XHU1YmEzXHU1YmE2XHU1YmE0XHU1YmEy''@;'; + put 'put ''XHU1YmE1XHU1YzAxXHU1YzRlXHU1YzRmXHU1YzRkXHU1YzRiXHU1Y2Q5XHU1Y2QyXHU1ZGY3XHU1ZTFkXHU1ZTI1XHU1ZTFmXHU1ZTdkXHU1ZWEwXHU1ZWE2XHU1ZWZhXHU1ZjA4XHU1ZjJkXHU1ZjY1XHU1Zjg4XHU1Zjg1XHU1ZjhhXHU1ZjhiXHU1Zjg3XHU1ZjhjXHU1Zjg5XHU2MDEyXHU2''@;'; + put 'put ''MDFkXHU2MDIwXHU2MDI1XHU2MDBlXHU2MDI4XHU2MDRkXHU2MDcwXHU2MDY4XHU2MDYyXHU2MDQ2XHU2MDQzXHU2MDZjXHU2MDZiXHU2MDZhXHU2MDY0XHU2MjQxXHU2MmRjXHU2MzE2XHU2MzA5XHU2MmZjXHU2MmVkXHU2MzAxXHU2MmVlXHU2MmZkXHU2MzA3XHU2MmYxXHU2MmY3Il0sWyJh''@;'; + put 'put ''YzQwIiwiXHU2MmVmXHU2MmVjXHU2MmZlXHU2MmY0XHU2MzExXHU2MzAyXHU2NTNmXHU2NTQ1XHU2NWFiXHU2NWJkXHU2NWUyXHU2NjI1XHU2NjJkXHU2NjIwXHU2NjI3XHU2NjJmXHU2NjFmXHU2NjI4XHU2NjMxXHU2NjI0XHU2NmY3XHU2N2ZmXHU2N2QzXHU2N2YxXHU2N2Q0XHU2N2QwXHU2''@;'; + put 'put ''N2VjXHU2N2I2XHU2N2FmXHU2N2Y1XHU2N2U5XHU2N2VmXHU2N2M0XHU2N2QxXHU2N2I0XHU2N2RhXHU2N2U1XHU2N2I4XHU2N2NmXHU2N2RlXHU2N2YzXHU2N2IwXHU2N2Q5XHU2N2UyXHU2N2RkXHU2N2QyXHU2YjZhXHU2YjgzXHU2Yjg2XHU2YmI1XHU2YmQyXHU2YmQ3XHU2YzFmXHU2Y2M5''@;'; + put 'put ''XHU2ZDBiXHU2ZDMyXHU2ZDJhXHU2ZDQxXHU2ZDI1XHU2ZDBjXHU2ZDMxXHU2ZDFlXHU2ZDE3Il0sWyJhY2ExIiwiXHU2ZDNiXHU2ZDNkXHU2ZDNlXHU2ZDM2XHU2ZDFiXHU2Y2Y1XHU2ZDM5XHU2ZDI3XHU2ZDM4XHU2ZDI5XHU2ZDJlXHU2ZDM1XHU2ZDBlXHU2ZDJiXHU3MGFiXHU3MGJhXHU3''@;'; + put 'put ''MGIzXHU3MGFjXHU3MGFmXHU3MGFkXHU3MGI4XHU3MGFlXHU3MGE0XHU3MjMwXHU3MjcyXHU3MjZmXHU3Mjc0XHU3MmU5XHU3MmUwXHU3MmUxXHU3M2I3XHU3M2NhXHU3M2JiXHU3M2IyXHU3M2NkXHU3M2MwXHU3M2IzXHU3NTFhXHU3NTJkXHU3NTRmXHU3NTRjXHU3NTRlXHU3NTRiXHU3NWFi''@;'; + put 'put ''XHU3NWE0XHU3NWE1XHU3NWEyXHU3NWEzXHU3Njc4XHU3Njg2XHU3Njg3XHU3Njg4XHU3NmM4XHU3NmM2XHU3NmMzXHU3NmM1XHU3NzAxXHU3NmY5XHU3NmY4XHU3NzA5XHU3NzBiXHU3NmZlXHU3NmZjXHU3NzA3XHU3N2RjXHU3ODAyXHU3ODE0XHU3ODBjXHU3ODBkXHU3OTQ2XHU3OTQ5XHU3''@;'; + put 'put ''OTQ4XHU3OTQ3XHU3OWI5XHU3OWJhXHU3OWQxXHU3OWQyXHU3OWNiXHU3YTdmXHU3YTgxXHU3YWZmXHU3YWZkXHU3YzdkXHU3ZDAyXHU3ZDA1XHU3ZDAwXHU3ZDA5XHU3ZDA3XHU3ZDA0XHU3ZDA2XHU3ZjM4XHU3ZjhlXHU3ZmJmXHU4MDA0Il0sWyJhZDQwIiwiXHU4MDEwXHU4MDBkXHU4MDEx''@;'; + put 'put ''XHU4MDM2XHU4MGQ2XHU4MGU1XHU4MGRhXHU4MGMzXHU4MGM0XHU4MGNjXHU4MGUxXHU4MGRiXHU4MGNlXHU4MGRlXHU4MGU0XHU4MGRkXHU4MWY0XHU4MjIyXHU4MmU3XHU4MzAzXHU4MzA1XHU4MmUzXHU4MmRiXHU4MmU2XHU4MzA0XHU4MmU1XHU4MzAyXHU4MzA5XHU4MmQyXHU4MmQ3XHU4''@;'; + put 'put ''MmYxXHU4MzAxXHU4MmRjXHU4MmQ0XHU4MmQxXHU4MmRlXHU4MmQzXHU4MmRmXHU4MmVmXHU4MzA2XHU4NjUwXHU4Njc5XHU4NjdiXHU4NjdhXHU4ODRkXHU4ODZiXHU4OTgxXHU4OWQ0XHU4YTA4XHU4YTAyXHU4YTAzXHU4YzllXHU4Y2EwXHU4ZDc0XHU4ZDczXHU4ZGI0XHU4ZWNkXHU4ZWNj''@;'; + put 'put ''XHU4ZmYwXHU4ZmU2XHU4ZmUyXHU4ZmVhXHU4ZmU1Il0sWyJhZGExIiwiXHU4ZmVkXHU4ZmViXHU4ZmU0XHU4ZmU4XHU5MGNhXHU5MGNlXHU5MGMxXHU5MGMzXHU5MTRiXHU5MTRhXHU5MWNkXHU5NTgyXHU5NjUwXHU5NjRiXHU5NjRjXHU5NjRkXHU5NzYyXHU5NzY5XHU5N2NiXHU5N2VkXHU5''@;'; + put 'put ''N2YzXHU5ODAxXHU5OGE4XHU5OGRiXHU5OGRmXHU5OTk2XHU5OTk5XHU0ZTU4XHU0ZWIzXHU1MDBjXHU1MDBkXHU1MDIzXHU0ZmVmXHU1MDI2XHU1MDI1XHU0ZmY4XHU1MDI5XHU1MDE2XHU1MDA2XHU1MDNjXHU1MDFmXHU1MDFhXHU1MDEyXHU1MDExXHU0ZmZhXHU1MDAwXHU1MDE0XHU1MDI4''@;'; + put 'put ''XHU0ZmYxXHU1MDIxXHU1MDBiXHU1MDE5XHU1MDE4XHU0ZmYzXHU0ZmVlXHU1MDJkXHU1MDJhXHU0ZmZlXHU1MDJiXHU1MDA5XHU1MTdjXHU1MWE0XHU1MWE1XHU1MWEyXHU1MWNkXHU1MWNjXHU1MWM2XHU1MWNiXHU1MjU2XHU1MjVjXHU1MjU0XHU1MjViXHU1MjVkXHU1MzJhXHU1MzdmXHU1''@;'; + put 'put ''MzlmXHU1MzlkXHU1M2RmXHU1NGU4XHU1NTEwXHU1NTAxXHU1NTM3XHU1NGZjXHU1NGU1XHU1NGYyXHU1NTA2XHU1NGZhXHU1NTE0XHU1NGU5XHU1NGVkXHU1NGUxXHU1NTA5XHU1NGVlXHU1NGVhIl0sWyJhZTQwIiwiXHU1NGU2XHU1NTI3XHU1NTA3XHU1NGZkXHU1NTBmXHU1NzAzXHU1NzA0''@;'; + put 'put ''XHU1N2MyXHU1N2Q0XHU1N2NiXHU1N2MzXHU1ODA5XHU1OTBmXHU1OTU3XHU1OTU4XHU1OTVhXHU1YTExXHU1YTE4XHU1YTFjXHU1YTFmXHU1YTFiXHU1YTEzXHU1OWVjXHU1YTIwXHU1YTIzXHU1YTI5XHU1YTI1XHU1YTBjXHU1YTA5XHU1YjZiXHU1YzU4XHU1YmIwXHU1YmIzXHU1YmI2XHU1''@;'; + put 'put ''YmI0XHU1YmFlXHU1YmI1XHU1YmI5XHU1YmI4XHU1YzA0XHU1YzUxXHU1YzU1XHU1YzUwXHU1Y2VkXHU1Y2ZkXHU1Y2ZiXHU1Y2VhXHU1Y2U4XHU1Y2YwXHU1Y2Y2XHU1ZDAxXHU1Y2Y0XHU1ZGVlXHU1ZTJkXHU1ZTJiXHU1ZWFiXHU1ZWFkXHU1ZWE3XHU1ZjMxXHU1ZjkyXHU1ZjkxXHU1Zjkw''@;'; + put 'put ''XHU2MDU5Il0sWyJhZWExIiwiXHU2MDYzXHU2MDY1XHU2MDUwXHU2MDU1XHU2MDZkXHU2MDY5XHU2MDZmXHU2MDg0XHU2MDlmXHU2MDlhXHU2MDhkXHU2MDk0XHU2MDhjXHU2MDg1XHU2MDk2XHU2MjQ3XHU2MmYzXHU2MzA4XHU2MmZmXHU2MzRlXHU2MzNlXHU2MzJmXHU2MzU1XHU2MzQyXHU2''@;'; + put 'put ''MzQ2XHU2MzRmXHU2MzQ5XHU2MzNhXHU2MzUwXHU2MzNkXHU2MzJhXHU2MzJiXHU2MzI4XHU2MzRkXHU2MzRjXHU2NTQ4XHU2NTQ5XHU2NTk5XHU2NWMxXHU2NWM1XHU2NjQyXHU2NjQ5XHU2NjRmXHU2NjQzXHU2NjUyXHU2NjRjXHU2NjQ1XHU2NjQxXHU2NmY4XHU2NzE0XHU2NzE1XHU2NzE3''@;'; + put 'put ''XHU2ODIxXHU2ODM4XHU2ODQ4XHU2ODQ2XHU2ODUzXHU2ODM5XHU2ODQyXHU2ODU0XHU2ODI5XHU2OGIzXHU2ODE3XHU2ODRjXHU2ODUxXHU2ODNkXHU2N2Y0XHU2ODUwXHU2ODQwXHU2ODNjXHU2ODQzXHU2ODJhXHU2ODQ1XHU2ODEzXHU2ODE4XHU2ODQxXHU2YjhhXHU2Yjg5XHU2YmI3XHU2''@;'; + put 'put ''YzIzXHU2YzI3XHU2YzI4XHU2YzI2XHU2YzI0XHU2Y2YwXHU2ZDZhXHU2ZDk1XHU2ZDg4XHU2ZDg3XHU2ZDY2XHU2ZDc4XHU2ZDc3XHU2ZDU5XHU2ZDkzIl0sWyJhZjQwIiwiXHU2ZDZjXHU2ZDg5XHU2ZDZlXHU2ZDVhXHU2ZDc0XHU2ZDY5XHU2ZDhjXHU2ZDhhXHU2ZDc5XHU2ZDg1XHU2ZDY1''@;'; + put 'put ''XHU2ZDk0XHU3MGNhXHU3MGQ4XHU3MGU0XHU3MGQ5XHU3MGM4XHU3MGNmXHU3MjM5XHU3Mjc5XHU3MmZjXHU3MmY5XHU3MmZkXHU3MmY4XHU3MmY3XHU3Mzg2XHU3M2VkXHU3NDA5XHU3M2VlXHU3M2UwXHU3M2VhXHU3M2RlXHU3NTU0XHU3NTVkXHU3NTVjXHU3NTVhXHU3NTU5XHU3NWJlXHU3''@;'; + put 'put ''NWM1XHU3NWM3XHU3NWIyXHU3NWIzXHU3NWJkXHU3NWJjXHU3NWI5XHU3NWMyXHU3NWI4XHU3NjhiXHU3NmIwXHU3NmNhXHU3NmNkXHU3NmNlXHU3NzI5XHU3NzFmXHU3NzIwXHU3NzI4XHU3N2U5XHU3ODMwXHU3ODI3XHU3ODM4XHU3ODFkXHU3ODM0XHU3ODM3Il0sWyJhZmExIiwiXHU3ODI1''@;'; + put 'put ''XHU3ODJkXHU3ODIwXHU3ODFmXHU3ODMyXHU3OTU1XHU3OTUwXHU3OTYwXHU3OTVmXHU3OTU2XHU3OTVlXHU3OTVkXHU3OTU3XHU3OTVhXHU3OWU0XHU3OWUzXHU3OWU3XHU3OWRmXHU3OWU2XHU3OWU5XHU3OWQ4XHU3YTg0XHU3YTg4XHU3YWQ5XHU3YjA2XHU3YjExXHU3Yzg5XHU3ZDIxXHU3''@;'; + put 'put ''ZDE3XHU3ZDBiXHU3ZDBhXHU3ZDIwXHU3ZDIyXHU3ZDE0XHU3ZDEwXHU3ZDE1XHU3ZDFhXHU3ZDFjXHU3ZDBkXHU3ZDE5XHU3ZDFiXHU3ZjNhXHU3ZjVmXHU3Zjk0XHU3ZmM1XHU3ZmMxXHU4MDA2XHU4MDE4XHU4MDE1XHU4MDE5XHU4MDE3XHU4MDNkXHU4MDNmXHU4MGYxXHU4MTAyXHU4MGYw''@;'; + put 'put ''XHU4MTA1XHU4MGVkXHU4MGY0XHU4MTA2XHU4MGY4XHU4MGYzXHU4MTA4XHU4MGZkXHU4MTBhXHU4MGZjXHU4MGVmXHU4MWVkXHU4MWVjXHU4MjAwXHU4MjEwXHU4MjJhXHU4MjJiXHU4MjI4XHU4MjJjXHU4MmJiXHU4MzJiXHU4MzUyXHU4MzU0XHU4MzRhXHU4MzM4XHU4MzUwXHU4MzQ5XHU4''@;'; + put 'put ''MzM1XHU4MzM0XHU4MzRmXHU4MzMyXHU4MzM5XHU4MzM2XHU4MzE3XHU4MzQwXHU4MzMxXHU4MzI4XHU4MzQzIl0sWyJiMDQwIiwiXHU4NjU0XHU4NjhhXHU4NmFhXHU4NjkzXHU4NmE0XHU4NmE5XHU4NjhjXHU4NmEzXHU4NjljXHU4ODcwXHU4ODc3XHU4ODgxXHU4ODgyXHU4ODdkXHU4ODc5''@;'; + put 'put ''XHU4YTE4XHU4YTEwXHU4YTBlXHU4YTBjXHU4YTE1XHU4YTBhXHU4YTE3XHU4YTEzXHU4YTE2XHU4YTBmXHU4YTExXHU4YzQ4XHU4YzdhXHU4Yzc5XHU4Y2ExXHU4Y2EyXHU4ZDc3XHU4ZWFjXHU4ZWQyXHU4ZWQ0XHU4ZWNmXHU4ZmIxXHU5MDAxXHU5MDA2XHU4ZmY3XHU5MDAwXHU4ZmZhXHU4''@;'; + put 'put ''ZmY0XHU5MDAzXHU4ZmZkXHU5MDA1XHU4ZmY4XHU5MDk1XHU5MGUxXHU5MGRkXHU5MGUyXHU5MTUyXHU5MTRkXHU5MTRjXHU5MWQ4XHU5MWRkXHU5MWQ3XHU5MWRjXHU5MWQ5XHU5NTgzXHU5NjYyXHU5NjYzXHU5NjYxIl0sWyJiMGExIiwiXHU5NjViXHU5NjVkXHU5NjY0XHU5NjU4XHU5NjVl''@;'; + put 'put ''XHU5NmJiXHU5OGUyXHU5OWFjXHU5YWE4XHU5YWQ4XHU5YjI1XHU5YjMyXHU5YjNjXHU0ZTdlXHU1MDdhXHU1MDdkXHU1MDVjXHU1MDQ3XHU1MDQzXHU1MDRjXHU1MDVhXHU1MDQ5XHU1MDY1XHU1MDc2XHU1MDRlXHU1MDU1XHU1MDc1XHU1MDc0XHU1MDc3XHU1MDRmXHU1MDBmXHU1MDZmXHU1''@;'; + put 'put ''MDZkXHU1MTVjXHU1MTk1XHU1MWYwXHU1MjZhXHU1MjZmXHU1MmQyXHU1MmQ5XHU1MmQ4XHU1MmQ1XHU1MzEwXHU1MzBmXHU1MzE5XHU1MzNmXHU1MzQwXHU1MzNlXHU1M2MzXHU2NmZjXHU1NTQ2XHU1NTZhXHU1NTY2XHU1NTQ0XHU1NTVlXHU1NTYxXHU1NTQzXHU1NTRhXHU1NTMxXHU1NTU2''@;'; + put 'put ''XHU1NTRmXHU1NTU1XHU1NTJmXHU1NTY0XHU1NTM4XHU1NTJlXHU1NTVjXHU1NTJjXHU1NTYzXHU1NTMzXHU1NTQxXHU1NTU3XHU1NzA4XHU1NzBiXHU1NzA5XHU1N2RmXHU1ODA1XHU1ODBhXHU1ODA2XHU1N2UwXHU1N2U0XHU1N2ZhXHU1ODAyXHU1ODM1XHU1N2Y3XHU1N2Y5XHU1OTIwXHU1''@;'; + put 'put ''OTYyXHU1YTM2XHU1YTQxXHU1YTQ5XHU1YTY2XHU1YTZhXHU1YTQwIl0sWyJiMTQwIiwiXHU1YTNjXHU1YTYyXHU1YTVhXHU1YTQ2XHU1YTRhXHU1YjcwXHU1YmM3XHU1YmM1XHU1YmM0XHU1YmMyXHU1YmJmXHU1YmM2XHU1YzA5XHU1YzA4XHU1YzA3XHU1YzYwXHU1YzVjXHU1YzVkXHU1ZDA3''@;'; + put 'put ''XHU1ZDA2XHU1ZDBlXHU1ZDFiXHU1ZDE2XHU1ZDIyXHU1ZDExXHU1ZDI5XHU1ZDE0XHU1ZDE5XHU1ZDI0XHU1ZDI3XHU1ZDE3XHU1ZGUyXHU1ZTM4XHU1ZTM2XHU1ZTMzXHU1ZTM3XHU1ZWI3XHU1ZWI4XHU1ZWI2XHU1ZWI1XHU1ZWJlXHU1ZjM1XHU1ZjM3XHU1ZjU3XHU1ZjZjXHU1ZjY5XHU1''@;'; + put 'put ''ZjZiXHU1Zjk3XHU1Zjk5XHU1ZjllXHU1Zjk4XHU1ZmExXHU1ZmEwXHU1ZjljXHU2MDdmXHU2MGEzXHU2MDg5XHU2MGEwXHU2MGE4XHU2MGNiXHU2MGI0XHU2MGU2XHU2MGJkIl0sWyJiMWExIiwiXHU2MGM1XHU2MGJiXHU2MGI1XHU2MGRjXHU2MGJjXHU2MGQ4XHU2MGQ1XHU2MGM2XHU2MGRm''@;'; + put 'put ''XHU2MGI4XHU2MGRhXHU2MGM3XHU2MjFhXHU2MjFiXHU2MjQ4XHU2M2EwXHU2M2E3XHU2MzcyXHU2Mzk2XHU2M2EyXHU2M2E1XHU2Mzc3XHU2MzY3XHU2Mzk4XHU2M2FhXHU2MzcxXHU2M2E5XHU2Mzg5XHU2MzgzXHU2MzliXHU2MzZiXHU2M2E4XHU2Mzg0XHU2Mzg4XHU2Mzk5XHU2M2ExXHU2''@;'; + put 'put ''M2FjXHU2MzkyXHU2MzhmXHU2MzgwXHU2MzdiXHU2MzY5XHU2MzY4XHU2MzdhXHU2NTVkXHU2NTU2XHU2NTUxXHU2NTU5XHU2NTU3XHU1NTVmXHU2NTRmXHU2NTU4XHU2NTU1XHU2NTU0XHU2NTljXHU2NTliXHU2NWFjXHU2NWNmXHU2NWNiXHU2NWNjXHU2NWNlXHU2NjVkXHU2NjVhXHU2NjY0''@;'; + put 'put ''XHU2NjY4XHU2NjY2XHU2NjVlXHU2NmY5XHU1MmQ3XHU2NzFiXHU2ODgxXHU2OGFmXHU2OGEyXHU2ODkzXHU2OGI1XHU2ODdmXHU2ODc2XHU2OGIxXHU2OGE3XHU2ODk3XHU2OGIwXHU2ODgzXHU2OGM0XHU2OGFkXHU2ODg2XHU2ODg1XHU2ODk0XHU2ODlkXHU2OGE4XHU2ODlmXHU2OGExXHU2''@;'; + put 'put ''ODgyXHU2YjMyXHU2YmJhIl0sWyJiMjQwIiwiXHU2YmViXHU2YmVjXHU2YzJiXHU2ZDhlXHU2ZGJjXHU2ZGYzXHU2ZGQ5XHU2ZGIyXHU2ZGUxXHU2ZGNjXHU2ZGU0XHU2ZGZiXHU2ZGZhXHU2ZTA1XHU2ZGM3XHU2ZGNiXHU2ZGFmXHU2ZGQxXHU2ZGFlXHU2ZGRlXHU2ZGY5XHU2ZGI4XHU2ZGY3''@;'; + put 'put ''XHU2ZGY1XHU2ZGM1XHU2ZGQyXHU2ZTFhXHU2ZGI1XHU2ZGRhXHU2ZGViXHU2ZGQ4XHU2ZGVhXHU2ZGYxXHU2ZGVlXHU2ZGU4XHU2ZGM2XHU2ZGM0XHU2ZGFhXHU2ZGVjXHU2ZGJmXHU2ZGU2XHU3MGY5XHU3MTA5XHU3MTBhXHU3MGZkXHU3MGVmXHU3MjNkXHU3MjdkXHU3MjgxXHU3MzFjXHU3''@;'; + put 'put ''MzFiXHU3MzE2XHU3MzEzXHU3MzE5XHU3Mzg3XHU3NDA1XHU3NDBhXHU3NDAzXHU3NDA2XHU3M2ZlXHU3NDBkXHU3NGUwXHU3NGY2Il0sWyJiMmExIiwiXHU3NGY3XHU3NTFjXHU3NTIyXHU3NTY1XHU3NTY2XHU3NTYyXHU3NTcwXHU3NThmXHU3NWQ0XHU3NWQ1XHU3NWI1XHU3NWNhXHU3NWNk''@;'; + put 'put ''XHU3NjhlXHU3NmQ0XHU3NmQyXHU3NmRiXHU3NzM3XHU3NzNlXHU3NzNjXHU3NzM2XHU3NzM4XHU3NzNhXHU3ODZiXHU3ODQzXHU3ODRlXHU3OTY1XHU3OTY4XHU3OTZkXHU3OWZiXHU3YTkyXHU3YTk1XHU3YjIwXHU3YjI4XHU3YjFiXHU3YjJjXHU3YjI2XHU3YjE5XHU3YjFlXHU3YjJlXHU3''@;'; + put 'put ''YzkyXHU3Yzk3XHU3Yzk1XHU3ZDQ2XHU3ZDQzXHU3ZDcxXHU3ZDJlXHU3ZDM5XHU3ZDNjXHU3ZDQwXHU3ZDMwXHU3ZDMzXHU3ZDQ0XHU3ZDJmXHU3ZDQyXHU3ZDMyXHU3ZDMxXHU3ZjNkXHU3ZjllXHU3ZjlhXHU3ZmNjXHU3ZmNlXHU3ZmQyXHU4MDFjXHU4MDRhXHU4MDQ2XHU4MTJmXHU4MTE2''@;'; + put 'put ''XHU4MTIzXHU4MTJiXHU4MTI5XHU4MTMwXHU4MTI0XHU4MjAyXHU4MjM1XHU4MjM3XHU4MjM2XHU4MjM5XHU4MzhlXHU4MzllXHU4Mzk4XHU4Mzc4XHU4M2EyXHU4Mzk2XHU4M2JkXHU4M2FiXHU4MzkyXHU4MzhhXHU4MzkzXHU4Mzg5XHU4M2EwXHU4Mzc3XHU4MzdiXHU4MzdjIl0sWyJiMzQw''@;'; + put 'put ''IiwiXHU4Mzg2XHU4M2E3XHU4NjU1XHU1ZjZhXHU4NmM3XHU4NmMwXHU4NmI2XHU4NmM0XHU4NmI1XHU4NmM2XHU4NmNiXHU4NmIxXHU4NmFmXHU4NmM5XHU4ODUzXHU4ODllXHU4ODg4XHU4OGFiXHU4ODkyXHU4ODk2XHU4ODhkXHU4ODhiXHU4OTkzXHU4OThmXHU4YTJhXHU4YTFkXHU4YTIz''@;'; + put 'put ''XHU4YTI1XHU4YTMxXHU4YTJkXHU4YTFmXHU4YTFiXHU4YTIyXHU4YzQ5XHU4YzVhXHU4Y2E5XHU4Y2FjXHU4Y2FiXHU4Y2E4XHU4Y2FhXHU4Y2E3XHU4ZDY3XHU4ZDY2XHU4ZGJlXHU4ZGJhXHU4ZWRiXHU4ZWRmXHU5MDE5XHU5MDBkXHU5MDFhXHU5MDE3XHU5MDIzXHU5MDFmXHU5MDFkXHU5''@;'; + put 'put ''MDEwXHU5MDE1XHU5MDFlXHU5MDIwXHU5MDBmXHU5MDIyXHU5MDE2XHU5MDFiXHU5MDE0Il0sWyJiM2ExIiwiXHU5MGU4XHU5MGVkXHU5MGZkXHU5MTU3XHU5MWNlXHU5MWY1XHU5MWU2XHU5MWUzXHU5MWU3XHU5MWVkXHU5MWU5XHU5NTg5XHU5NjZhXHU5Njc1XHU5NjczXHU5Njc4XHU5Njcw''@;'; + put 'put ''XHU5Njc0XHU5Njc2XHU5Njc3XHU5NjZjXHU5NmMwXHU5NmVhXHU5NmU5XHU3YWUwXHU3YWRmXHU5ODAyXHU5ODAzXHU5YjVhXHU5Y2U1XHU5ZTc1XHU5ZTdmXHU5ZWE1XHU5ZWJiXHU1MGEyXHU1MDhkXHU1MDg1XHU1MDk5XHU1MDkxXHU1MDgwXHU1MDk2XHU1MDk4XHU1MDlhXHU2NzAwXHU1''@;'; + put 'put ''MWYxXHU1MjcyXHU1Mjc0XHU1Mjc1XHU1MjY5XHU1MmRlXHU1MmRkXHU1MmRiXHU1MzVhXHU1M2E1XHU1NTdiXHU1NTgwXHU1NWE3XHU1NTdjXHU1NThhXHU1NTlkXHU1NTk4XHU1NTgyXHU1NTljXHU1NWFhXHU1NTk0XHU1NTg3XHU1NThiXHU1NTgzXHU1NWIzXHU1NWFlXHU1NTlmXHU1NTNl''@;'; + put 'put ''XHU1NWIyXHU1NTlhXHU1NWJiXHU1NWFjXHU1NWIxXHU1NTdlXHU1NTg5XHU1NWFiXHU1NTk5XHU1NzBkXHU1ODJmXHU1ODJhXHU1ODM0XHU1ODI0XHU1ODMwXHU1ODMxXHU1ODIxXHU1ODFkXHU1ODIwXHU1OGY5XHU1OGZhXHU1OTYwIl0sWyJiNDQwIiwiXHU1YTc3XHU1YTlhXHU1YTdmXHU1''@;'; + put 'put ''YTkyXHU1YTliXHU1YWE3XHU1YjczXHU1YjcxXHU1YmQyXHU1YmNjXHU1YmQzXHU1YmQwXHU1YzBhXHU1YzBiXHU1YzMxXHU1ZDRjXHU1ZDUwXHU1ZDM0XHU1ZDQ3XHU1ZGZkXHU1ZTQ1XHU1ZTNkXHU1ZTQwXHU1ZTQzXHU1ZTdlXHU1ZWNhXHU1ZWMxXHU1ZWMyXHU1ZWM0XHU1ZjNjXHU1ZjZk''@;'; + put 'put ''XHU1ZmE5XHU1ZmFhXHU1ZmE4XHU2MGQxXHU2MGUxXHU2MGIyXHU2MGI2XHU2MGUwXHU2MTFjXHU2MTIzXHU2MGZhXHU2MTE1XHU2MGYwXHU2MGZiXHU2MGY0XHU2MTY4XHU2MGYxXHU2MTBlXHU2MGY2XHU2MTA5XHU2MTAwXHU2MTEyXHU2MjFmXHU2MjQ5XHU2M2EzXHU2MzhjXHU2M2NmXHU2''@;'; + put 'put ''M2MwXHU2M2U5XHU2M2M5XHU2M2M2XHU2M2NkIl0sWyJiNGExIiwiXHU2M2QyXHU2M2UzXHU2M2QwXHU2M2UxXHU2M2Q2XHU2M2VkXHU2M2VlXHU2Mzc2XHU2M2Y0XHU2M2VhXHU2M2RiXHU2NDUyXHU2M2RhXHU2M2Y5XHU2NTVlXHU2NTY2XHU2NTYyXHU2NTYzXHU2NTkxXHU2NTkwXHU2NWFm''@;'; + put 'put ''XHU2NjZlXHU2NjcwXHU2Njc0XHU2Njc2XHU2NjZmXHU2NjkxXHU2NjdhXHU2NjdlXHU2Njc3XHU2NmZlXHU2NmZmXHU2NzFmXHU2NzFkXHU2OGZhXHU2OGQ1XHU2OGUwXHU2OGQ4XHU2OGQ3XHU2OTA1XHU2OGRmXHU2OGY1XHU2OGVlXHU2OGU3XHU2OGY5XHU2OGQyXHU2OGYyXHU2OGUzXHU2''@;'; + put 'put ''OGNiXHU2OGNkXHU2OTBkXHU2OTEyXHU2OTBlXHU2OGM5XHU2OGRhXHU2OTZlXHU2OGZiXHU2YjNlXHU2YjNhXHU2YjNkXHU2Yjk4XHU2Yjk2XHU2YmJjXHU2YmVmXHU2YzJlXHU2YzJmXHU2YzJjXHU2ZTJmXHU2ZTM4XHU2ZTU0XHU2ZTIxXHU2ZTMyXHU2ZTY3XHU2ZTRhXHU2ZTIwXHU2ZTI1''@;'; + put 'put ''XHU2ZTIzXHU2ZTFiXHU2ZTViXHU2ZTU4XHU2ZTI0XHU2ZTU2XHU2ZTZlXHU2ZTJkXHU2ZTI2XHU2ZTZmXHU2ZTM0XHU2ZTRkXHU2ZTNhXHU2ZTJjXHU2ZTQzXHU2ZTFkXHU2ZTNlXHU2ZWNiIl0sWyJiNTQwIiwiXHU2ZTg5XHU2ZTE5XHU2ZTRlXHU2ZTYzXHU2ZTQ0XHU2ZTcyXHU2ZTY5XHU2''@;'; + put 'put ''ZTVmXHU3MTE5XHU3MTFhXHU3MTI2XHU3MTMwXHU3MTIxXHU3MTM2XHU3MTZlXHU3MTFjXHU3MjRjXHU3Mjg0XHU3MjgwXHU3MzM2XHU3MzI1XHU3MzM0XHU3MzI5XHU3NDNhXHU3NDJhXHU3NDMzXHU3NDIyXHU3NDI1XHU3NDM1XHU3NDM2XHU3NDM0XHU3NDJmXHU3NDFiXHU3NDI2XHU3NDI4''@;'; + put 'put ''XHU3NTI1XHU3NTI2XHU3NTZiXHU3NTZhXHU3NWUyXHU3NWRiXHU3NWUzXHU3NWQ5XHU3NWQ4XHU3NWRlXHU3NWUwXHU3NjdiXHU3NjdjXHU3Njk2XHU3NjkzXHU3NmI0XHU3NmRjXHU3NzRmXHU3N2VkXHU3ODVkXHU3ODZjXHU3ODZmXHU3YTBkXHU3YTA4XHU3YTBiXHU3YTA1XHU3YTAwXHU3''@;'; + put 'put ''YTk4Il0sWyJiNWExIiwiXHU3YTk3XHU3YTk2XHU3YWU1XHU3YWUzXHU3YjQ5XHU3YjU2XHU3YjQ2XHU3YjUwXHU3YjUyXHU3YjU0XHU3YjRkXHU3YjRiXHU3YjRmXHU3YjUxXHU3YzlmXHU3Y2E1XHU3ZDVlXHU3ZDUwXHU3ZDY4XHU3ZDU1XHU3ZDJiXHU3ZDZlXHU3ZDcyXHU3ZDYxXHU3ZDY2''@;'; + put 'put ''XHU3ZDYyXHU3ZDcwXHU3ZDczXHU1NTg0XHU3ZmQ0XHU3ZmQ1XHU4MDBiXHU4MDUyXHU4MDg1XHU4MTU1XHU4MTU0XHU4MTRiXHU4MTUxXHU4MTRlXHU4MTM5XHU4MTQ2XHU4MTNlXHU4MTRjXHU4MTUzXHU4MTc0XHU4MjEyXHU4MjFjXHU4M2U5XHU4NDAzXHU4M2Y4XHU4NDBkXHU4M2UwXHU4''@;'; + put 'put ''M2M1XHU4NDBiXHU4M2MxXHU4M2VmXHU4M2YxXHU4M2Y0XHU4NDU3XHU4NDBhXHU4M2YwXHU4NDBjXHU4M2NjXHU4M2ZkXHU4M2YyXHU4M2NhXHU4NDM4XHU4NDBlXHU4NDA0XHU4M2RjXHU4NDA3XHU4M2Q0XHU4M2RmXHU4NjViXHU4NmRmXHU4NmQ5XHU4NmVkXHU4NmQ0XHU4NmRiXHU4NmU0''@;'; + put 'put ''XHU4NmQwXHU4NmRlXHU4ODU3XHU4OGMxXHU4OGMyXHU4OGIxXHU4OTgzXHU4OTk2XHU4YTNiXHU4YTYwXHU4YTU1XHU4YTVlXHU4YTNjXHU4YTQxIl0sWyJiNjQwIiwiXHU4YTU0XHU4YTViXHU4YTUwXHU4YTQ2XHU4YTM0XHU4YTNhXHU4YTM2XHU4YTU2XHU4YzYxXHU4YzgyXHU4Y2FmXHU4''@;'; + put 'put ''Y2JjXHU4Y2IzXHU4Y2JkXHU4Y2MxXHU4Y2JiXHU4Y2MwXHU4Y2I0XHU4Y2I3XHU4Y2I2XHU4Y2JmXHU4Y2I4XHU4ZDhhXHU4ZDg1XHU4ZDgxXHU4ZGNlXHU4ZGRkXHU4ZGNiXHU4ZGRhXHU4ZGQxXHU4ZGNjXHU4ZGRiXHU4ZGM2XHU4ZWZiXHU4ZWY4XHU4ZWZjXHU4ZjljXHU5MDJlXHU5MDM1''@;'; + put 'put ''XHU5MDMxXHU5MDM4XHU5MDMyXHU5MDM2XHU5MTAyXHU5MGY1XHU5MTA5XHU5MGZlXHU5MTYzXHU5MTY1XHU5MWNmXHU5MjE0XHU5MjE1XHU5MjIzXHU5MjA5XHU5MjFlXHU5MjBkXHU5MjEwXHU5MjA3XHU5MjExXHU5NTk0XHU5NThmXHU5NThiXHU5NTkxIl0sWyJiNmExIiwiXHU5NTkzXHU5''@;'; + put 'put ''NTkyXHU5NThlXHU5NjhhXHU5NjhlXHU5NjhiXHU5NjdkXHU5Njg1XHU5Njg2XHU5NjhkXHU5NjcyXHU5Njg0XHU5NmMxXHU5NmM1XHU5NmM0XHU5NmM2XHU5NmM3XHU5NmVmXHU5NmYyXHU5N2NjXHU5ODA1XHU5ODA2XHU5ODA4XHU5OGU3XHU5OGVhXHU5OGVmXHU5OGU5XHU5OGYyXHU5OGVk''@;'; + put 'put ''XHU5OWFlXHU5OWFkXHU5ZWMzXHU5ZWNkXHU5ZWQxXHU0ZTgyXHU1MGFkXHU1MGI1XHU1MGIyXHU1MGIzXHU1MGM1XHU1MGJlXHU1MGFjXHU1MGI3XHU1MGJiXHU1MGFmXHU1MGM3XHU1MjdmXHU1Mjc3XHU1MjdkXHU1MmRmXHU1MmU2XHU1MmU0XHU1MmUyXHU1MmUzXHU1MzJmXHU1NWRmXHU1''@;'; + put 'put ''NWU4XHU1NWQzXHU1NWU2XHU1NWNlXHU1NWRjXHU1NWM3XHU1NWQxXHU1NWUzXHU1NWU0XHU1NWVmXHU1NWRhXHU1NWUxXHU1NWM1XHU1NWM2XHU1NWU1XHU1NWM5XHU1NzEyXHU1NzEzXHU1ODVlXHU1ODUxXHU1ODU4XHU1ODU3XHU1ODVhXHU1ODU0XHU1ODZiXHU1ODRjXHU1ODZkXHU1ODRh''@;'; + put 'put ''XHU1ODYyXHU1ODUyXHU1ODRiXHU1OTY3XHU1YWMxXHU1YWM5XHU1YWNjXHU1YWJlXHU1YWJkXHU1YWJjIl0sWyJiNzQwIiwiXHU1YWIzXHU1YWMyXHU1YWIyXHU1ZDY5XHU1ZDZmXHU1ZTRjXHU1ZTc5XHU1ZWM5XHU1ZWM4XHU1ZjEyXHU1ZjU5XHU1ZmFjXHU1ZmFlXHU2MTFhXHU2MTBmXHU2''@;'; + put 'put ''MTQ4XHU2MTFmXHU2MGYzXHU2MTFiXHU2MGY5XHU2MTAxXHU2MTA4XHU2MTRlXHU2MTRjXHU2MTQ0XHU2MTRkXHU2MTNlXHU2MTM0XHU2MTI3XHU2MTBkXHU2MTA2XHU2MTM3XHU2MjIxXHU2MjIyXHU2NDEzXHU2NDNlXHU2NDFlXHU2NDJhXHU2NDJkXHU2NDNkXHU2NDJjXHU2NDBmXHU2NDFj''@;'; + put 'put ''XHU2NDE0XHU2NDBkXHU2NDM2XHU2NDE2XHU2NDE3XHU2NDA2XHU2NTZjXHU2NTlmXHU2NWIwXHU2Njk3XHU2Njg5XHU2Njg3XHU2Njg4XHU2Njk2XHU2Njg0XHU2Njk4XHU2NjhkXHU2NzAzXHU2OTk0XHU2OTZkIl0sWyJiN2ExIiwiXHU2OTVhXHU2OTc3XHU2OTYwXHU2OTU0XHU2OTc1XHU2''@;'; + put 'put ''OTMwXHU2OTgyXHU2OTRhXHU2OTY4XHU2OTZiXHU2OTVlXHU2OTUzXHU2OTc5XHU2OTg2XHU2OTVkXHU2OTYzXHU2OTViXHU2YjQ3XHU2YjcyXHU2YmMwXHU2YmJmXHU2YmQzXHU2YmZkXHU2ZWEyXHU2ZWFmXHU2ZWQzXHU2ZWI2XHU2ZWMyXHU2ZTkwXHU2ZTlkXHU2ZWM3XHU2ZWM1XHU2ZWE1''@;'; + put 'put ''XHU2ZTk4XHU2ZWJjXHU2ZWJhXHU2ZWFiXHU2ZWQxXHU2ZTk2XHU2ZTljXHU2ZWM0XHU2ZWQ0XHU2ZWFhXHU2ZWE3XHU2ZWI0XHU3MTRlXHU3MTU5XHU3MTY5XHU3MTY0XHU3MTQ5XHU3MTY3XHU3MTVjXHU3MTZjXHU3MTY2XHU3MTRjXHU3MTY1XHU3MTVlXHU3MTQ2XHU3MTY4XHU3MTU2XHU3''@;'; + put 'put ''MjNhXHU3MjUyXHU3MzM3XHU3MzQ1XHU3MzNmXHU3MzNlXHU3NDZmXHU3NDVhXHU3NDU1XHU3NDVmXHU3NDVlXHU3NDQxXHU3NDNmXHU3NDU5XHU3NDViXHU3NDVjXHU3NTc2XHU3NTc4XHU3NjAwXHU3NWYwXHU3NjAxXHU3NWYyXHU3NWYxXHU3NWZhXHU3NWZmXHU3NWY0XHU3NWYzXHU3NmRl''@;'; + put 'put ''XHU3NmRmXHU3NzViXHU3NzZiXHU3NzY2XHU3NzVlXHU3NzYzIl0sWyJiODQwIiwiXHU3Nzc5XHU3NzZhXHU3NzZjXHU3NzVjXHU3NzY1XHU3NzY4XHU3NzYyXHU3N2VlXHU3ODhlXHU3OGIwXHU3ODk3XHU3ODk4XHU3ODhjXHU3ODg5XHU3ODdjXHU3ODkxXHU3ODkzXHU3ODdmXHU3OTdhXHU3''@;'; + put 'put ''OTdmXHU3OTgxXHU4NDJjXHU3OWJkXHU3YTFjXHU3YTFhXHU3YTIwXHU3YTE0XHU3YTFmXHU3YTFlXHU3YTlmXHU3YWEwXHU3Yjc3XHU3YmMwXHU3YjYwXHU3YjZlXHU3YjY3XHU3Y2IxXHU3Y2IzXHU3Y2I1XHU3ZDkzXHU3ZDc5XHU3ZDkxXHU3ZDgxXHU3ZDhmXHU3ZDViXHU3ZjZlXHU3ZjY5''@;'; + put 'put ''XHU3ZjZhXHU3ZjcyXHU3ZmE5XHU3ZmE4XHU3ZmE0XHU4MDU2XHU4MDU4XHU4MDg2XHU4MDg0XHU4MTcxXHU4MTcwXHU4MTc4XHU4MTY1XHU4MTZlXHU4MTczXHU4MTZiIl0sWyJiOGExIiwiXHU4MTc5XHU4MTdhXHU4MTY2XHU4MjA1XHU4MjQ3XHU4NDgyXHU4NDc3XHU4NDNkXHU4NDMxXHU4''@;'; + put 'put ''NDc1XHU4NDY2XHU4NDZiXHU4NDQ5XHU4NDZjXHU4NDViXHU4NDNjXHU4NDM1XHU4NDYxXHU4NDYzXHU4NDY5XHU4NDZkXHU4NDQ2XHU4NjVlXHU4NjVjXHU4NjVmXHU4NmY5XHU4NzEzXHU4NzA4XHU4NzA3XHU4NzAwXHU4NmZlXHU4NmZiXHU4NzAyXHU4NzAzXHU4NzA2XHU4NzBhXHU4ODU5''@;'; + put 'put ''XHU4OGRmXHU4OGQ0XHU4OGQ5XHU4OGRjXHU4OGQ4XHU4OGRkXHU4OGUxXHU4OGNhXHU4OGQ1XHU4OGQyXHU4OTljXHU4OWUzXHU4YTZiXHU4YTcyXHU4YTczXHU4YTY2XHU4YTY5XHU4YTcwXHU4YTg3XHU4YTdjXHU4YTYzXHU4YWEwXHU4YTcxXHU4YTg1XHU4YTZkXHU4YTYyXHU4YTZlXHU4''@;'; + put 'put ''YTZjXHU4YTc5XHU4YTdiXHU4YTNlXHU4YTY4XHU4YzYyXHU4YzhhXHU4Yzg5XHU4Y2NhXHU4Y2M3XHU4Y2M4XHU4Y2M0XHU4Y2IyXHU4Y2MzXHU4Y2MyXHU4Y2M1XHU4ZGUxXHU4ZGRmXHU4ZGU4XHU4ZGVmXHU4ZGYzXHU4ZGZhXHU4ZGVhXHU4ZGU0XHU4ZGU2XHU4ZWIyXHU4ZjAzXHU4ZjA5''@;'; + put 'put ''XHU4ZWZlXHU4ZjBhIl0sWyJiOTQwIiwiXHU4ZjlmXHU4ZmIyXHU5MDRiXHU5MDRhXHU5MDUzXHU5MDQyXHU5MDU0XHU5MDNjXHU5MDU1XHU5MDUwXHU5MDQ3XHU5MDRmXHU5MDRlXHU5MDRkXHU5MDUxXHU5MDNlXHU5MDQxXHU5MTEyXHU5MTE3XHU5MTZjXHU5MTZhXHU5MTY5XHU5MWM5XHU5''@;'; + put 'put ''MjM3XHU5MjU3XHU5MjM4XHU5MjNkXHU5MjQwXHU5MjNlXHU5MjViXHU5MjRiXHU5MjY0XHU5MjUxXHU5MjM0XHU5MjQ5XHU5MjRkXHU5MjQ1XHU5MjM5XHU5MjNmXHU5MjVhXHU5NTk4XHU5Njk4XHU5Njk0XHU5Njk1XHU5NmNkXHU5NmNiXHU5NmM5XHU5NmNhXHU5NmY3XHU5NmZiXHU5NmY5''@;'; + put 'put ''XHU5NmY2XHU5NzU2XHU5Nzc0XHU5Nzc2XHU5ODEwXHU5ODExXHU5ODEzXHU5ODBhXHU5ODEyXHU5ODBjXHU5OGZjXHU5OGY0Il0sWyJiOWExIiwiXHU5OGZkXHU5OGZlXHU5OWIzXHU5OWIxXHU5OWI0XHU5YWUxXHU5Y2U5XHU5ZTgyXHU5ZjBlXHU5ZjEzXHU5ZjIwXHU1MGU3XHU1MGVlXHU1''@;'; + put 'put ''MGU1XHU1MGQ2XHU1MGVkXHU1MGRhXHU1MGQ1XHU1MGNmXHU1MGQxXHU1MGYxXHU1MGNlXHU1MGU5XHU1MTYyXHU1MWYzXHU1MjgzXHU1MjgyXHU1MzMxXHU1M2FkXHU1NWZlXHU1NjAwXHU1NjFiXHU1NjE3XHU1NWZkXHU1NjE0XHU1NjA2XHU1NjA5XHU1NjBkXHU1NjBlXHU1NWY3XHU1NjE2''@;'; + put 'put ''XHU1NjFmXHU1NjA4XHU1NjEwXHU1NWY2XHU1NzE4XHU1NzE2XHU1ODc1XHU1ODdlXHU1ODgzXHU1ODkzXHU1ODhhXHU1ODc5XHU1ODg1XHU1ODdkXHU1OGZkXHU1OTI1XHU1OTIyXHU1OTI0XHU1OTZhXHU1OTY5XHU1YWUxXHU1YWU2XHU1YWU5XHU1YWQ3XHU1YWQ2XHU1YWQ4XHU1YWUzXHU1''@;'; + put 'put ''Yjc1XHU1YmRlXHU1YmU3XHU1YmUxXHU1YmU1XHU1YmU2XHU1YmU4XHU1YmUyXHU1YmU0XHU1YmRmXHU1YzBkXHU1YzYyXHU1ZDg0XHU1ZDg3XHU1ZTViXHU1ZTYzXHU1ZTU1XHU1ZTU3XHU1ZTU0XHU1ZWQzXHU1ZWQ2XHU1ZjBhXHU1ZjQ2XHU1ZjcwXHU1ZmI5XHU2MTQ3Il0sWyJiYTQwIiwi''@;'; + put 'put ''XHU2MTNmXHU2MTRiXHU2MTc3XHU2MTYyXHU2MTYzXHU2MTVmXHU2MTVhXHU2MTU4XHU2MTc1XHU2MjJhXHU2NDg3XHU2NDU4XHU2NDU0XHU2NGE0XHU2NDc4XHU2NDVmXHU2NDdhXHU2NDUxXHU2NDY3XHU2NDM0XHU2NDZkXHU2NDdiXHU2NTcyXHU2NWExXHU2NWQ3XHU2NWQ2XHU2NmEyXHU2''@;'; + put 'put ''NmE4XHU2NjlkXHU2OTljXHU2OWE4XHU2OTk1XHU2OWMxXHU2OWFlXHU2OWQzXHU2OWNiXHU2OTliXHU2OWI3XHU2OWJiXHU2OWFiXHU2OWI0XHU2OWQwXHU2OWNkXHU2OWFkXHU2OWNjXHU2OWE2XHU2OWMzXHU2OWEzXHU2YjQ5XHU2YjRjXHU2YzMzXHU2ZjMzXHU2ZjE0XHU2ZWZlXHU2ZjEz''@;'; + put 'put ''XHU2ZWY0XHU2ZjI5XHU2ZjNlXHU2ZjIwXHU2ZjJjXHU2ZjBmXHU2ZjAyXHU2ZjIyIl0sWyJiYWExIiwiXHU2ZWZmXHU2ZWVmXHU2ZjA2XHU2ZjMxXHU2ZjM4XHU2ZjMyXHU2ZjIzXHU2ZjE1XHU2ZjJiXHU2ZjJmXHU2Zjg4XHU2ZjJhXHU2ZWVjXHU2ZjAxXHU2ZWYyXHU2ZWNjXHU2ZWY3XHU3''@;'; + put 'put ''MTk0XHU3MTk5XHU3MTdkXHU3MThhXHU3MTg0XHU3MTkyXHU3MjNlXHU3MjkyXHU3Mjk2XHU3MzQ0XHU3MzUwXHU3NDY0XHU3NDYzXHU3NDZhXHU3NDcwXHU3NDZkXHU3NTA0XHU3NTkxXHU3NjI3XHU3NjBkXHU3NjBiXHU3NjA5XHU3NjEzXHU3NmUxXHU3NmUzXHU3Nzg0XHU3NzdkXHU3Nzdm''@;'; + put 'put ''XHU3NzYxXHU3OGMxXHU3ODlmXHU3OGE3XHU3OGIzXHU3OGE5XHU3OGEzXHU3OThlXHU3OThmXHU3OThkXHU3YTJlXHU3YTMxXHU3YWFhXHU3YWE5XHU3YWVkXHU3YWVmXHU3YmExXHU3Yjk1XHU3YjhiXHU3Yjc1XHU3Yjk3XHU3YjlkXHU3Yjk0XHU3YjhmXHU3YmI4XHU3Yjg3XHU3Yjg0XHU3''@;'; + put 'put ''Y2I5XHU3Y2JkXHU3Y2JlXHU3ZGJiXHU3ZGIwXHU3ZDljXHU3ZGJkXHU3ZGJlXHU3ZGEwXHU3ZGNhXHU3ZGI0XHU3ZGIyXHU3ZGIxXHU3ZGJhXHU3ZGEyXHU3ZGJmXHU3ZGI1XHU3ZGI4XHU3ZGFkXHU3ZGQyXHU3ZGM3XHU3ZGFjIl0sWyJiYjQwIiwiXHU3ZjcwXHU3ZmUwXHU3ZmUxXHU3ZmRm''@;'; + put 'put ''XHU4MDVlXHU4MDVhXHU4MDg3XHU4MTUwXHU4MTgwXHU4MThmXHU4MTg4XHU4MThhXHU4MTdmXHU4MTgyXHU4MWU3XHU4MWZhXHU4MjA3XHU4MjE0XHU4MjFlXHU4MjRiXHU4NGM5XHU4NGJmXHU4NGM2XHU4NGM0XHU4NDk5XHU4NDllXHU4NGIyXHU4NDljXHU4NGNiXHU4NGI4XHU4NGMwXHU4''@;'; + put 'put ''NGQzXHU4NDkwXHU4NGJjXHU4NGQxXHU4NGNhXHU4NzNmXHU4NzFjXHU4NzNiXHU4NzIyXHU4NzI1XHU4NzM0XHU4NzE4XHU4NzU1XHU4NzM3XHU4NzI5XHU4OGYzXHU4OTAyXHU4OGY0XHU4OGY5XHU4OGY4XHU4OGZkXHU4OGU4XHU4OTFhXHU4OGVmXHU4YWE2XHU4YThjXHU4YTllXHU4YWEz''@;'; + put 'put ''XHU4YThkXHU4YWExXHU4YTkzXHU4YWE0Il0sWyJiYmExIiwiXHU4YWFhXHU4YWE1XHU4YWE4XHU4YTk4XHU4YTkxXHU4YTlhXHU4YWE3XHU4YzZhXHU4YzhkXHU4YzhjXHU4Y2QzXHU4Y2QxXHU4Y2QyXHU4ZDZiXHU4ZDk5XHU4ZDk1XHU4ZGZjXHU4ZjE0XHU4ZjEyXHU4ZjE1XHU4ZjEzXHU4''@;'; + put 'put ''ZmEzXHU5MDYwXHU5MDU4XHU5MDVjXHU5MDYzXHU5MDU5XHU5MDVlXHU5MDYyXHU5MDVkXHU5MDViXHU5MTE5XHU5MTE4XHU5MTFlXHU5MTc1XHU5MTc4XHU5MTc3XHU5MTc0XHU5Mjc4XHU5MjgwXHU5Mjg1XHU5Mjk4XHU5Mjk2XHU5MjdiXHU5MjkzXHU5MjljXHU5MmE4XHU5MjdjXHU5Mjkx''@;'; + put 'put ''XHU5NWExXHU5NWE4XHU5NWE5XHU5NWEzXHU5NWE1XHU5NWE0XHU5Njk5XHU5NjljXHU5NjliXHU5NmNjXHU5NmQyXHU5NzAwXHU5NzdjXHU5Nzg1XHU5N2Y2XHU5ODE3XHU5ODE4XHU5OGFmXHU5OGIxXHU5OTAzXHU5OTA1XHU5OTBjXHU5OTA5XHU5OWMxXHU5YWFmXHU5YWIwXHU5YWU2XHU5''@;'; + put 'put ''YjQxXHU5YjQyXHU5Y2Y0XHU5Y2Y2XHU5Y2YzXHU5ZWJjXHU5ZjNiXHU5ZjRhXHU1MTA0XHU1MTAwXHU1MGZiXHU1MGY1XHU1MGY5XHU1MTAyXHU1MTA4XHU1MTA5XHU1MTA1XHU1MWRjIl0sWyJiYzQwIiwiXHU1Mjg3XHU1Mjg4XHU1Mjg5XHU1MjhkXHU1MjhhXHU1MmYwXHU1M2IyXHU1NjJl''@;'; + put 'put ''XHU1NjNiXHU1NjM5XHU1NjMyXHU1NjNmXHU1NjM0XHU1NjI5XHU1NjUzXHU1NjRlXHU1NjU3XHU1Njc0XHU1NjM2XHU1NjJmXHU1NjMwXHU1ODgwXHU1ODlmXHU1ODllXHU1OGIzXHU1ODljXHU1OGFlXHU1OGE5XHU1OGE2XHU1OTZkXHU1YjA5XHU1YWZiXHU1YjBiXHU1YWY1XHU1YjBjXHU1''@;'; + put 'put ''YjA4XHU1YmVlXHU1YmVjXHU1YmU5XHU1YmViXHU1YzY0XHU1YzY1XHU1ZDlkXHU1ZDk0XHU1ZTYyXHU1ZTVmXHU1ZTYxXHU1ZWUyXHU1ZWRhXHU1ZWRmXHU1ZWRkXHU1ZWUzXHU1ZWUwXHU1ZjQ4XHU1ZjcxXHU1ZmI3XHU1ZmI1XHU2MTc2XHU2MTY3XHU2MTZlXHU2MTVkXHU2MTU1XHU2MTgy''@;'; + put 'put ''Il0sWyJiY2ExIiwiXHU2MTdjXHU2MTcwXHU2MTZiXHU2MTdlXHU2MWE3XHU2MTkwXHU2MWFiXHU2MThlXHU2MWFjXHU2MTlhXHU2MWE0XHU2MTk0XHU2MWFlXHU2MjJlXHU2NDY5XHU2NDZmXHU2NDc5XHU2NDllXHU2NGIyXHU2NDg4XHU2NDkwXHU2NGIwXHU2NGE1XHU2NDkzXHU2NDk1XHU2''@;'; + put 'put ''NGE5XHU2NDkyXHU2NGFlXHU2NGFkXHU2NGFiXHU2NDlhXHU2NGFjXHU2NDk5XHU2NGEyXHU2NGIzXHU2NTc1XHU2NTc3XHU2NTc4XHU2NmFlXHU2NmFiXHU2NmI0XHU2NmIxXHU2YTIzXHU2YTFmXHU2OWU4XHU2YTAxXHU2YTFlXHU2YTE5XHU2OWZkXHU2YTIxXHU2YTEzXHU2YTBhXHU2OWYz''@;'; + put 'put ''XHU2YTAyXHU2YTA1XHU2OWVkXHU2YTExXHU2YjUwXHU2YjRlXHU2YmE0XHU2YmM1XHU2YmM2XHU2ZjNmXHU2ZjdjXHU2Zjg0XHU2ZjUxXHU2ZjY2XHU2ZjU0XHU2Zjg2XHU2ZjZkXHU2ZjViXHU2Zjc4XHU2ZjZlXHU2ZjhlXHU2ZjdhXHU2ZjcwXHU2ZjY0XHU2Zjk3XHU2ZjU4XHU2ZWQ1XHU2''@;'; + put 'put ''ZjZmXHU2ZjYwXHU2ZjVmXHU3MTlmXHU3MWFjXHU3MWIxXHU3MWE4XHU3MjU2XHU3MjliXHU3MzRlXHU3MzU3XHU3NDY5XHU3NDhiXHU3NDgzIl0sWyJiZDQwIiwiXHU3NDdlXHU3NDgwXHU3NTdmXHU3NjIwXHU3NjI5XHU3NjFmXHU3NjI0XHU3NjI2XHU3NjIxXHU3NjIyXHU3NjlhXHU3NmJh''@;'; + put 'put ''XHU3NmU0XHU3NzhlXHU3Nzg3XHU3NzhjXHU3NzkxXHU3NzhiXHU3OGNiXHU3OGM1XHU3OGJhXHU3OGNhXHU3OGJlXHU3OGQ1XHU3OGJjXHU3OGQwXHU3YTNmXHU3YTNjXHU3YTQwXHU3YTNkXHU3YTM3XHU3YTNiXHU3YWFmXHU3YWFlXHU3YmFkXHU3YmIxXHU3YmM0XHU3YmI0XHU3YmM2XHU3''@;'; + put 'put ''YmM3XHU3YmMxXHU3YmEwXHU3YmNjXHU3Y2NhXHU3ZGUwXHU3ZGY0XHU3ZGVmXHU3ZGZiXHU3ZGQ4XHU3ZGVjXHU3ZGRkXHU3ZGU4XHU3ZGUzXHU3ZGRhXHU3ZGRlXHU3ZGU5XHU3ZDllXHU3ZGQ5XHU3ZGYyXHU3ZGY5XHU3Zjc1XHU3Zjc3XHU3ZmFmIl0sWyJiZGExIiwiXHU3ZmU5XHU4MDI2''@;'; + put 'put ''XHU4MTliXHU4MTljXHU4MTlkXHU4MWEwXHU4MTlhXHU4MTk4XHU4NTE3XHU4NTNkXHU4NTFhXHU4NGVlXHU4NTJjXHU4NTJkXHU4NTEzXHU4NTExXHU4NTIzXHU4NTIxXHU4NTE0XHU4NGVjXHU4NTI1XHU4NGZmXHU4NTA2XHU4NzgyXHU4Nzc0XHU4Nzc2XHU4NzYwXHU4NzY2XHU4Nzc4XHU4''@;'; + put 'put ''NzY4XHU4NzU5XHU4NzU3XHU4NzRjXHU4NzUzXHU4ODViXHU4ODVkXHU4OTEwXHU4OTA3XHU4OTEyXHU4OTEzXHU4OTE1XHU4OTBhXHU4YWJjXHU4YWQyXHU4YWM3XHU4YWM0XHU4YTk1XHU4YWNiXHU4YWY4XHU4YWIyXHU4YWM5XHU4YWMyXHU4YWJmXHU4YWIwXHU4YWQ2XHU4YWNkXHU4YWI2''@;'; + put 'put ''XHU4YWI5XHU4YWRiXHU4YzRjXHU4YzRlXHU4YzZjXHU4Y2UwXHU4Y2RlXHU4Y2U2XHU4Y2U0XHU4Y2VjXHU4Y2VkXHU4Y2UyXHU4Y2UzXHU4Y2RjXHU4Y2VhXHU4Y2UxXHU4ZDZkXHU4ZDlmXHU4ZGEzXHU4ZTJiXHU4ZTEwXHU4ZTFkXHU4ZTIyXHU4ZTBmXHU4ZTI5XHU4ZTFmXHU4ZTIxXHU4''@;'; + put 'put ''ZTFlXHU4ZWJhXHU4ZjFkXHU4ZjFiXHU4ZjFmXHU4ZjI5XHU4ZjI2XHU4ZjJhXHU4ZjFjXHU4ZjFlIl0sWyJiZTQwIiwiXHU4ZjI1XHU5MDY5XHU5MDZlXHU5MDY4XHU5MDZkXHU5MDc3XHU5MTMwXHU5MTJkXHU5MTI3XHU5MTMxXHU5MTg3XHU5MTg5XHU5MThiXHU5MTgzXHU5MmM1XHU5MmJi''@;'; + put 'put ''XHU5MmI3XHU5MmVhXHU5MmFjXHU5MmU0XHU5MmMxXHU5MmIzXHU5MmJjXHU5MmQyXHU5MmM3XHU5MmYwXHU5MmIyXHU5NWFkXHU5NWIxXHU5NzA0XHU5NzA2XHU5NzA3XHU5NzA5XHU5NzYwXHU5NzhkXHU5NzhiXHU5NzhmXHU5ODIxXHU5ODJiXHU5ODFjXHU5OGIzXHU5OTBhXHU5OTEzXHU5''@;'; + put 'put ''OTEyXHU5OTE4XHU5OWRkXHU5OWQwXHU5OWRmXHU5OWRiXHU5OWQxXHU5OWQ1XHU5OWQyXHU5OWQ5XHU5YWI3XHU5YWVlXHU5YWVmXHU5YjI3XHU5YjQ1XHU5YjQ0XHU5Yjc3XHU5YjZmXHU5ZDA2XHU5ZDA5Il0sWyJiZWExIiwiXHU5ZDAzXHU5ZWE5XHU5ZWJlXHU5ZWNlXHU1OGE4XHU5ZjUy''@;'; + put 'put ''XHU1MTEyXHU1MTE4XHU1MTE0XHU1MTEwXHU1MTE1XHU1MTgwXHU1MWFhXHU1MWRkXHU1MjkxXHU1MjkzXHU1MmYzXHU1NjU5XHU1NjZiXHU1Njc5XHU1NjY5XHU1NjY0XHU1Njc4XHU1NjZhXHU1NjY4XHU1NjY1XHU1NjcxXHU1NjZmXHU1NjZjXHU1NjYyXHU1Njc2XHU1OGMxXHU1OGJlXHU1''@;'; + put 'put ''OGM3XHU1OGM1XHU1OTZlXHU1YjFkXHU1YjM0XHU1Yjc4XHU1YmYwXHU1YzBlXHU1ZjRhXHU2MWIyXHU2MTkxXHU2MWE5XHU2MThhXHU2MWNkXHU2MWI2XHU2MWJlXHU2MWNhXHU2MWM4XHU2MjMwXHU2NGM1XHU2NGMxXHU2NGNiXHU2NGJiXHU2NGJjXHU2NGRhXHU2NGM0XHU2NGM3XHU2NGMy''@;'; + put 'put ''XHU2NGNkXHU2NGJmXHU2NGQyXHU2NGQ0XHU2NGJlXHU2NTc0XHU2NmM2XHU2NmM5XHU2NmI5XHU2NmM0XHU2NmM3XHU2NmI4XHU2YTNkXHU2YTM4XHU2YTNhXHU2YTU5XHU2YTZiXHU2YTU4XHU2YTM5XHU2YTQ0XHU2YTYyXHU2YTYxXHU2YTRiXHU2YTQ3XHU2YTM1XHU2YTVmXHU2YTQ4XHU2''@;'; + put 'put ''YjU5XHU2Yjc3XHU2YzA1XHU2ZmMyXHU2ZmIxXHU2ZmExIl0sWyJiZjQwIiwiXHU2ZmMzXHU2ZmE0XHU2ZmMxXHU2ZmE3XHU2ZmIzXHU2ZmMwXHU2ZmI5XHU2ZmI2XHU2ZmE2XHU2ZmEwXHU2ZmI0XHU3MWJlXHU3MWM5XHU3MWQwXHU3MWQyXHU3MWM4XHU3MWQ1XHU3MWI5XHU3MWNlXHU3MWQ5''@;'; + put 'put ''XHU3MWRjXHU3MWMzXHU3MWM0XHU3MzY4XHU3NDljXHU3NGEzXHU3NDk4XHU3NDlmXHU3NDllXHU3NGUyXHU3NTBjXHU3NTBkXHU3NjM0XHU3NjM4XHU3NjNhXHU3NmU3XHU3NmU1XHU3N2EwXHU3NzllXHU3NzlmXHU3N2E1XHU3OGU4XHU3OGRhXHU3OGVjXHU3OGU3XHU3OWE2XHU3YTRkXHU3''@;'; + put 'put ''YTRlXHU3YTQ2XHU3YTRjXHU3YTRiXHU3YWJhXHU3YmQ5XHU3YzExXHU3YmM5XHU3YmU0XHU3YmRiXHU3YmUxXHU3YmU5XHU3YmU2XHU3Y2Q1XHU3Y2Q2XHU3ZTBhIl0sWyJiZmExIiwiXHU3ZTExXHU3ZTA4XHU3ZTFiXHU3ZTIzXHU3ZTFlXHU3ZTFkXHU3ZTA5XHU3ZTEwXHU3Zjc5XHU3ZmIy''@;'; + put 'put ''XHU3ZmYwXHU3ZmYxXHU3ZmVlXHU4MDI4XHU4MWIzXHU4MWE5XHU4MWE4XHU4MWZiXHU4MjA4XHU4MjU4XHU4MjU5XHU4NTRhXHU4NTU5XHU4NTQ4XHU4NTY4XHU4NTY5XHU4NTQzXHU4NTQ5XHU4NTZkXHU4NTZhXHU4NTVlXHU4NzgzXHU4NzlmXHU4NzllXHU4N2EyXHU4NzhkXHU4ODYxXHU4''@;'; + put 'put ''OTJhXHU4OTMyXHU4OTI1XHU4OTJiXHU4OTIxXHU4OWFhXHU4OWE2XHU4YWU2XHU4YWZhXHU4YWViXHU4YWYxXHU4YjAwXHU4YWRjXHU4YWU3XHU4YWVlXHU4YWZlXHU4YjAxXHU4YjAyXHU4YWY3XHU4YWVkXHU4YWYzXHU4YWY2XHU4YWZjXHU4YzZiXHU4YzZkXHU4YzkzXHU4Y2Y0XHU4ZTQ0''@;'; + put 'put ''XHU4ZTMxXHU4ZTM0XHU4ZTQyXHU4ZTM5XHU4ZTM1XHU4ZjNiXHU4ZjJmXHU4ZjM4XHU4ZjMzXHU4ZmE4XHU4ZmE2XHU5MDc1XHU5MDc0XHU5MDc4XHU5MDcyXHU5MDdjXHU5MDdhXHU5MTM0XHU5MTkyXHU5MzIwXHU5MzM2XHU5MmY4XHU5MzMzXHU5MzJmXHU5MzIyXHU5MmZjXHU5MzJiXHU5''@;'; + put 'put ''MzA0XHU5MzFhIl0sWyJjMDQwIiwiXHU5MzEwXHU5MzI2XHU5MzIxXHU5MzE1XHU5MzJlXHU5MzE5XHU5NWJiXHU5NmE3XHU5NmE4XHU5NmFhXHU5NmQ1XHU5NzBlXHU5NzExXHU5NzE2XHU5NzBkXHU5NzEzXHU5NzBmXHU5NzViXHU5NzVjXHU5NzY2XHU5Nzk4XHU5ODMwXHU5ODM4XHU5ODNi''@;'; + put 'put ''XHU5ODM3XHU5ODJkXHU5ODM5XHU5ODI0XHU5OTEwXHU5OTI4XHU5OTFlXHU5OTFiXHU5OTIxXHU5OTFhXHU5OWVkXHU5OWUyXHU5OWYxXHU5YWI4XHU5YWJjXHU5YWZiXHU5YWVkXHU5YjI4XHU5YjkxXHU5ZDE1XHU5ZDIzXHU5ZDI2XHU5ZDI4XHU5ZDEyXHU5ZDFiXHU5ZWQ4XHU5ZWQ0XHU5''@;'; + put 'put ''ZjhkXHU5ZjljXHU1MTJhXHU1MTFmXHU1MTIxXHU1MTMyXHU1MmY1XHU1NjhlXHU1NjgwXHU1NjkwXHU1Njg1XHU1Njg3Il0sWyJjMGExIiwiXHU1NjhmXHU1OGQ1XHU1OGQzXHU1OGQxXHU1OGNlXHU1YjMwXHU1YjJhXHU1YjI0XHU1YjdhXHU1YzM3XHU1YzY4XHU1ZGJjXHU1ZGJhXHU1ZGJk''@;'; + put 'put ''XHU1ZGI4XHU1ZTZiXHU1ZjRjXHU1ZmJkXHU2MWM5XHU2MWMyXHU2MWM3XHU2MWU2XHU2MWNiXHU2MjMyXHU2MjM0XHU2NGNlXHU2NGNhXHU2NGQ4XHU2NGUwXHU2NGYwXHU2NGU2XHU2NGVjXHU2NGYxXHU2NGUyXHU2NGVkXHU2NTgyXHU2NTgzXHU2NmQ5XHU2NmQ2XHU2YTgwXHU2YTk0XHU2''@;'; + put 'put ''YTg0XHU2YWEyXHU2YTljXHU2YWRiXHU2YWEzXHU2YTdlXHU2YTk3XHU2YTkwXHU2YWEwXHU2YjVjXHU2YmFlXHU2YmRhXHU2YzA4XHU2ZmQ4XHU2ZmYxXHU2ZmRmXHU2ZmUwXHU2ZmRiXHU2ZmU0XHU2ZmViXHU2ZmVmXHU2ZjgwXHU2ZmVjXHU2ZmUxXHU2ZmU5XHU2ZmQ1XHU2ZmVlXHU2ZmYw''@;'; + put 'put ''XHU3MWU3XHU3MWRmXHU3MWVlXHU3MWU2XHU3MWU1XHU3MWVkXHU3MWVjXHU3MWY0XHU3MWUwXHU3MjM1XHU3MjQ2XHU3MzcwXHU3MzcyXHU3NGE5XHU3NGIwXHU3NGE2XHU3NGE4XHU3NjQ2XHU3NjQyXHU3NjRjXHU3NmVhXHU3N2IzXHU3N2FhXHU3N2IwXHU3N2FjIl0sWyJjMTQwIiwiXHU3''@;'; + put 'put ''N2E3XHU3N2FkXHU3N2VmXHU3OGY3XHU3OGZhXHU3OGY0XHU3OGVmXHU3OTAxXHU3OWE3XHU3OWFhXHU3YTU3XHU3YWJmXHU3YzA3XHU3YzBkXHU3YmZlXHU3YmY3XHU3YzBjXHU3YmUwXHU3Y2UwXHU3Y2RjXHU3Y2RlXHU3Y2UyXHU3Y2RmXHU3Y2Q5XHU3Y2RkXHU3ZTJlXHU3ZTNlXHU3ZTQ2''@;'; + put 'put ''XHU3ZTM3XHU3ZTMyXHU3ZTQzXHU3ZTJiXHU3ZTNkXHU3ZTMxXHU3ZTQ1XHU3ZTQxXHU3ZTM0XHU3ZTM5XHU3ZTQ4XHU3ZTM1XHU3ZTNmXHU3ZTJmXHU3ZjQ0XHU3ZmYzXHU3ZmZjXHU4MDcxXHU4MDcyXHU4MDcwXHU4MDZmXHU4MDczXHU4MWM2XHU4MWMzXHU4MWJhXHU4MWMyXHU4MWMwXHU4''@;'; + put 'put ''MWJmXHU4MWJkXHU4MWM5XHU4MWJlXHU4MWU4XHU4MjA5XHU4MjcxXHU4NWFhIl0sWyJjMWExIiwiXHU4NTg0XHU4NTdlXHU4NTljXHU4NTkxXHU4NTk0XHU4NWFmXHU4NTliXHU4NTg3XHU4NWE4XHU4NThhXHU4NjY3XHU4N2MwXHU4N2QxXHU4N2IzXHU4N2QyXHU4N2M2XHU4N2FiXHU4N2Ji''@;'; + put 'put ''XHU4N2JhXHU4N2M4XHU4N2NiXHU4OTNiXHU4OTM2XHU4OTQ0XHU4OTM4XHU4OTNkXHU4OWFjXHU4YjBlXHU4YjE3XHU4YjE5XHU4YjFiXHU4YjBhXHU4YjIwXHU4YjFkXHU4YjA0XHU4YjEwXHU4YzQxXHU4YzNmXHU4YzczXHU4Y2ZhXHU4Y2ZkXHU4Y2ZjXHU4Y2Y4XHU4Y2ZiXHU4ZGE4XHU4''@;'; + put 'put ''ZTQ5XHU4ZTRiXHU4ZTQ4XHU4ZTRhXHU4ZjQ0XHU4ZjNlXHU4ZjQyXHU4ZjQ1XHU4ZjNmXHU5MDdmXHU5MDdkXHU5MDg0XHU5MDgxXHU5MDgyXHU5MDgwXHU5MTM5XHU5MWEzXHU5MTllXHU5MTljXHU5MzRkXHU5MzgyXHU5MzI4XHU5Mzc1XHU5MzRhXHU5MzY1XHU5MzRiXHU5MzE4XHU5Mzdl''@;'; + put 'put ''XHU5MzZjXHU5MzViXHU5MzcwXHU5MzVhXHU5MzU0XHU5NWNhXHU5NWNiXHU5NWNjXHU5NWM4XHU5NWM2XHU5NmIxXHU5NmI4XHU5NmQ2XHU5NzFjXHU5NzFlXHU5N2EwXHU5N2QzXHU5ODQ2XHU5OGI2XHU5OTM1XHU5YTAxIl0sWyJjMjQwIiwiXHU5OWZmXHU5YmFlXHU5YmFiXHU5YmFhXHU5''@;'; + put 'put ''YmFkXHU5ZDNiXHU5ZDNmXHU5ZThiXHU5ZWNmXHU5ZWRlXHU5ZWRjXHU5ZWRkXHU5ZWRiXHU5ZjNlXHU5ZjRiXHU1M2UyXHU1Njk1XHU1NmFlXHU1OGQ5XHU1OGQ4XHU1YjM4XHU1ZjVkXHU2MWUzXHU2MjMzXHU2NGY0XHU2NGYyXHU2NGZlXHU2NTA2XHU2NGZhXHU2NGZiXHU2NGY3XHU2NWI3''@;'; + put 'put ''XHU2NmRjXHU2NzI2XHU2YWIzXHU2YWFjXHU2YWMzXHU2YWJiXHU2YWI4XHU2YWMyXHU2YWFlXHU2YWFmXHU2YjVmXHU2Yjc4XHU2YmFmXHU3MDA5XHU3MDBiXHU2ZmZlXHU3MDA2XHU2ZmZhXHU3MDExXHU3MDBmXHU3MWZiXHU3MWZjXHU3MWZlXHU3MWY4XHU3Mzc3XHU3Mzc1XHU3NGE3XHU3''@;'; + put 'put ''NGJmXHU3NTE1XHU3NjU2XHU3NjU4Il0sWyJjMmExIiwiXHU3NjUyXHU3N2JkXHU3N2JmXHU3N2JiXHU3N2JjXHU3OTBlXHU3OWFlXHU3YTYxXHU3YTYyXHU3YTYwXHU3YWM0XHU3YWM1XHU3YzJiXHU3YzI3XHU3YzJhXHU3YzFlXHU3YzIzXHU3YzIxXHU3Y2U3XHU3ZTU0XHU3ZTU1XHU3ZTVl''@;'; + put 'put ''XHU3ZTVhXHU3ZTYxXHU3ZTUyXHU3ZTU5XHU3ZjQ4XHU3ZmY5XHU3ZmZiXHU4MDc3XHU4MDc2XHU4MWNkXHU4MWNmXHU4MjBhXHU4NWNmXHU4NWE5XHU4NWNkXHU4NWQwXHU4NWM5XHU4NWIwXHU4NWJhXHU4NWI5XHU4NWE2XHU4N2VmXHU4N2VjXHU4N2YyXHU4N2UwXHU4OTg2XHU4OWIyXHU4''@;'; + put 'put ''OWY0XHU4YjI4XHU4YjM5XHU4YjJjXHU4YjJiXHU4YzUwXHU4ZDA1XHU4ZTU5XHU4ZTYzXHU4ZTY2XHU4ZTY0XHU4ZTVmXHU4ZTU1XHU4ZWMwXHU4ZjQ5XHU4ZjRkXHU5MDg3XHU5MDgzXHU5MDg4XHU5MWFiXHU5MWFjXHU5MWQwXHU5Mzk0XHU5MzhhXHU5Mzk2XHU5M2EyXHU5M2IzXHU5M2Fl''@;'; + put 'put ''XHU5M2FjXHU5M2IwXHU5Mzk4XHU5MzlhXHU5Mzk3XHU5NWQ0XHU5NWQ2XHU5NWQwXHU5NWQ1XHU5NmUyXHU5NmRjXHU5NmQ5XHU5NmRiXHU5NmRlXHU5NzI0XHU5N2EzXHU5N2E2Il0sWyJjMzQwIiwiXHU5N2FkXHU5N2Y5XHU5ODRkXHU5ODRmXHU5ODRjXHU5ODRlXHU5ODUzXHU5OGJhXHU5''@;'; + put 'put ''OTNlXHU5OTNmXHU5OTNkXHU5OTJlXHU5OWE1XHU5YTBlXHU5YWMxXHU5YjAzXHU5YjA2XHU5YjRmXHU5YjRlXHU5YjRkXHU5YmNhXHU5YmM5XHU5YmZkXHU5YmM4XHU5YmMwXHU5ZDUxXHU5ZDVkXHU5ZDYwXHU5ZWUwXHU5ZjE1XHU5ZjJjXHU1MTMzXHU1NmE1XHU1OGRlXHU1OGRmXHU1OGUy''@;'; + put 'put ''XHU1YmY1XHU5ZjkwXHU1ZWVjXHU2MWYyXHU2MWY3XHU2MWY2XHU2MWY1XHU2NTAwXHU2NTBmXHU2NmUwXHU2NmRkXHU2YWU1XHU2YWRkXHU2YWRhXHU2YWQzXHU3MDFiXHU3MDFmXHU3MDI4XHU3MDFhXHU3MDFkXHU3MDE1XHU3MDE4XHU3MjA2XHU3MjBkXHU3MjU4XHU3MmEyXHU3Mzc4Il0s''@;'; + put 'put ''WyJjM2ExIiwiXHU3MzdhXHU3NGJkXHU3NGNhXHU3NGUzXHU3NTg3XHU3NTg2XHU3NjVmXHU3NjYxXHU3N2M3XHU3OTE5XHU3OWIxXHU3YTZiXHU3YTY5XHU3YzNlXHU3YzNmXHU3YzM4XHU3YzNkXHU3YzM3XHU3YzQwXHU3ZTZiXHU3ZTZkXHU3ZTc5XHU3ZTY5XHU3ZTZhXHU3Zjg1XHU3ZTcz''@;'; + put 'put ''XHU3ZmI2XHU3ZmI5XHU3ZmI4XHU4MWQ4XHU4NWU5XHU4NWRkXHU4NWVhXHU4NWQ1XHU4NWU0XHU4NWU1XHU4NWY3XHU4N2ZiXHU4ODA1XHU4ODBkXHU4N2Y5XHU4N2ZlXHU4OTYwXHU4OTVmXHU4OTU2XHU4OTVlXHU4YjQxXHU4YjVjXHU4YjU4XHU4YjQ5XHU4YjVhXHU4YjRlXHU4YjRmXHU4''@;'; + put 'put ''YjQ2XHU4YjU5XHU4ZDA4XHU4ZDBhXHU4ZTdjXHU4ZTcyXHU4ZTg3XHU4ZTc2XHU4ZTZjXHU4ZTdhXHU4ZTc0XHU4ZjU0XHU4ZjRlXHU4ZmFkXHU5MDhhXHU5MDhiXHU5MWIxXHU5MWFlXHU5M2UxXHU5M2QxXHU5M2RmXHU5M2MzXHU5M2M4XHU5M2RjXHU5M2RkXHU5M2Q2XHU5M2UyXHU5M2Nk''@;'; + put 'put ''XHU5M2Q4XHU5M2U0XHU5M2Q3XHU5M2U4XHU5NWRjXHU5NmI0XHU5NmUzXHU5NzJhXHU5NzI3XHU5NzYxXHU5N2RjXHU5N2ZiXHU5ODVlIl0sWyJjNDQwIiwiXHU5ODU4XHU5ODViXHU5OGJjXHU5OTQ1XHU5OTQ5XHU5YTE2XHU5YTE5XHU5YjBkXHU5YmU4XHU5YmU3XHU5YmQ2XHU5YmRiXHU5''@;'; + put 'put ''ZDg5XHU5ZDYxXHU5ZDcyXHU5ZDZhXHU5ZDZjXHU5ZTkyXHU5ZTk3XHU5ZTkzXHU5ZWI0XHU1MmY4XHU1NmE4XHU1NmI3XHU1NmI2XHU1NmI0XHU1NmJjXHU1OGU0XHU1YjQwXHU1YjQzXHU1YjdkXHU1YmY2XHU1ZGM5XHU2MWY4XHU2MWZhXHU2NTE4XHU2NTE0XHU2NTE5XHU2NmU2XHU2NzI3''@;'; + put 'put ''XHU2YWVjXHU3MDNlXHU3MDMwXHU3MDMyXHU3MjEwXHU3MzdiXHU3NGNmXHU3NjYyXHU3NjY1XHU3OTI2XHU3OTJhXHU3OTJjXHU3OTJiXHU3YWM3XHU3YWY2XHU3YzRjXHU3YzQzXHU3YzRkXHU3Y2VmXHU3Y2YwXHU4ZmFlXHU3ZTdkXHU3ZTdjIl0sWyJjNGExIiwiXHU3ZTgyXHU3ZjRjXHU4''@;'; + put 'put ''MDAwXHU4MWRhXHU4MjY2XHU4NWZiXHU4NWY5XHU4NjExXHU4NWZhXHU4NjA2XHU4NjBiXHU4NjA3XHU4NjBhXHU4ODE0XHU4ODE1XHU4OTY0XHU4OWJhXHU4OWY4XHU4YjcwXHU4YjZjXHU4YjY2XHU4YjZmXHU4YjVmXHU4YjZiXHU4ZDBmXHU4ZDBkXHU4ZTg5XHU4ZTgxXHU4ZTg1XHU4ZTgy''@;'; + put 'put ''XHU5MWI0XHU5MWNiXHU5NDE4XHU5NDAzXHU5M2ZkXHU5NWUxXHU5NzMwXHU5OGM0XHU5OTUyXHU5OTUxXHU5OWE4XHU5YTJiXHU5YTMwXHU5YTM3XHU5YTM1XHU5YzEzXHU5YzBkXHU5ZTc5XHU5ZWI1XHU5ZWU4XHU5ZjJmXHU5ZjVmXHU5ZjYzXHU5ZjYxXHU1MTM3XHU1MTM4XHU1NmMxXHU1''@;'; + put 'put ''NmMwXHU1NmMyXHU1OTE0XHU1YzZjXHU1ZGNkXHU2MWZjXHU2MWZlXHU2NTFkXHU2NTFjXHU2NTk1XHU2NmU5XHU2YWZiXHU2YjA0XHU2YWZhXHU2YmIyXHU3MDRjXHU3MjFiXHU3MmE3XHU3NGQ2XHU3NGQ0XHU3NjY5XHU3N2QzXHU3YzUwXHU3ZThmXHU3ZThjXHU3ZmJjXHU4NjE3XHU4NjJk''@;'; + put 'put ''XHU4NjFhXHU4ODIzXHU4ODIyXHU4ODIxXHU4ODFmXHU4OTZhXHU4OTZjXHU4OWJkXHU4Yjc0Il0sWyJjNTQwIiwiXHU4Yjc3XHU4YjdkXHU4ZDEzXHU4ZThhXHU4ZThkXHU4ZThiXHU4ZjVmXHU4ZmFmXHU5MWJhXHU5NDJlXHU5NDMzXHU5NDM1XHU5NDNhXHU5NDM4XHU5NDMyXHU5NDJiXHU5''@;'; + put 'put ''NWUyXHU5NzM4XHU5NzM5XHU5NzMyXHU5N2ZmXHU5ODY3XHU5ODY1XHU5OTU3XHU5YTQ1XHU5YTQzXHU5YTQwXHU5YTNlXHU5YWNmXHU5YjU0XHU5YjUxXHU5YzJkXHU5YzI1XHU5ZGFmXHU5ZGI0XHU5ZGMyXHU5ZGI4XHU5ZTlkXHU5ZWVmXHU5ZjE5XHU5ZjVjXHU5ZjY2XHU5ZjY3XHU1MTNj''@;'; + put 'put ''XHU1MTNiXHU1NmM4XHU1NmNhXHU1NmM5XHU1YjdmXHU1ZGQ0XHU1ZGQyXHU1ZjRlXHU2MWZmXHU2NTI0XHU2YjBhXHU2YjYxXHU3MDUxXHU3MDU4XHU3MzgwXHU3NGU0XHU3NThhXHU3NjZlXHU3NjZjIl0sWyJjNWExIiwiXHU3OWIzXHU3YzYwXHU3YzVmXHU4MDdlXHU4MDdkXHU4MWRmXHU4''@;'; + put 'put ''OTcyXHU4OTZmXHU4OWZjXHU4YjgwXHU4ZDE2XHU4ZDE3XHU4ZTkxXHU4ZTkzXHU4ZjYxXHU5MTQ4XHU5NDQ0XHU5NDUxXHU5NDUyXHU5NzNkXHU5NzNlXHU5N2MzXHU5N2MxXHU5ODZiXHU5OTU1XHU5YTU1XHU5YTRkXHU5YWQyXHU5YjFhXHU5YzQ5XHU5YzMxXHU5YzNlXHU5YzNiXHU5ZGQz''@;'; + put 'put ''XHU5ZGQ3XHU5ZjM0XHU5ZjZjXHU5ZjZhXHU5Zjk0XHU1NmNjXHU1ZGQ2XHU2MjAwXHU2NTIzXHU2NTJiXHU2NTJhXHU2NmVjXHU2YjEwXHU3NGRhXHU3YWNhXHU3YzY0XHU3YzYzXHU3YzY1XHU3ZTkzXHU3ZTk2XHU3ZTk0XHU4MWUyXHU4NjM4XHU4NjNmXHU4ODMxXHU4YjhhXHU5MDkwXHU5''@;'; + put 'put ''MDhmXHU5NDYzXHU5NDYwXHU5NDY0XHU5NzY4XHU5ODZmXHU5OTVjXHU5YTVhXHU5YTViXHU5YTU3XHU5YWQzXHU5YWQ0XHU5YWQxXHU5YzU0XHU5YzU3XHU5YzU2XHU5ZGU1XHU5ZTlmXHU5ZWY0XHU1NmQxXHU1OGU5XHU2NTJjXHU3MDVlXHU3NjcxXHU3NjcyXHU3N2Q3XHU3ZjUwXHU3Zjg4''@;'; + put 'put ''XHU4ODM2XHU4ODM5XHU4ODYyXHU4YjkzXHU4YjkyIl0sWyJjNjQwIiwiXHU4Yjk2XHU4Mjc3XHU4ZDFiXHU5MWMwXHU5NDZhXHU5NzQyXHU5NzQ4XHU5NzQ0XHU5N2M2XHU5ODcwXHU5YTVmXHU5YjIyXHU5YjU4XHU5YzVmXHU5ZGY5XHU5ZGZhXHU5ZTdjXHU5ZTdkXHU5ZjA3XHU5Zjc3XHU5''@;'; + put 'put ''ZjcyXHU1ZWYzXHU2YjE2XHU3MDYzXHU3YzZjXHU3YzZlXHU4ODNiXHU4OWMwXHU4ZWExXHU5MWMxXHU5NDcyXHU5NDcwXHU5ODcxXHU5OTVlXHU5YWQ2XHU5YjIzXHU5ZWNjXHU3MDY0XHU3N2RhXHU4YjlhXHU5NDc3XHU5N2M5XHU5YTYyXHU5YTY1XHU3ZTljXHU4YjljXHU4ZWFhXHU5MWM1''@;'; + put 'put ''XHU5NDdkXHU5NDdlXHU5NDdjXHU5Yzc3XHU5Yzc4XHU5ZWY3XHU4YzU0XHU5NDdmXHU5ZTFhXHU3MjI4XHU5YTZhXHU5YjMxXHU5ZTFiXHU5ZTFlXHU3YzcyIl0sWyJjOTQwIiwiXHU0ZTQyXHU0ZTVjXHU1MWY1XHU1MzFhXHU1MzgyXHU0ZTA3XHU0ZTBjXHU0ZTQ3XHU0ZThkXHU1NmQ3XHVm''@;'; + put 'put ''YTBjXHU1YzZlXHU1ZjczXHU0ZTBmXHU1MTg3XHU0ZTBlXHU0ZTJlXHU0ZTkzXHU0ZWMyXHU0ZWM5XHU0ZWM4XHU1MTk4XHU1MmZjXHU1MzZjXHU1M2I5XHU1NzIwXHU1OTAzXHU1OTJjXHU1YzEwXHU1ZGZmXHU2NWUxXHU2YmIzXHU2YmNjXHU2YzE0XHU3MjNmXHU0ZTMxXHU0ZTNjXHU0ZWU4''@;'; + put 'put ''XHU0ZWRjXHU0ZWU5XHU0ZWUxXHU0ZWRkXHU0ZWRhXHU1MjBjXHU1MzFjXHU1MzRjXHU1NzIyXHU1NzIzXHU1OTE3XHU1OTJmXHU1YjgxXHU1Yjg0XHU1YzEyXHU1YzNiXHU1Yzc0XHU1YzczXHU1ZTA0XHU1ZTgwXHU1ZTgyXHU1ZmM5XHU2MjA5XHU2MjUwXHU2YzE1Il0sWyJjOWExIiwiXHU2''@;'; + put 'put ''YzM2XHU2YzQzXHU2YzNmXHU2YzNiXHU3MmFlXHU3MmIwXHU3MzhhXHU3OWI4XHU4MDhhXHU5NjFlXHU0ZjBlXHU0ZjE4XHU0ZjJjXHU0ZWY1XHU0ZjE0XHU0ZWYxXHU0ZjAwXHU0ZWY3XHU0ZjA4XHU0ZjFkXHU0ZjAyXHU0ZjA1XHU0ZjIyXHU0ZjEzXHU0ZjA0XHU0ZWY0XHU0ZjEyXHU1MWIx''@;'; + put 'put ''XHU1MjEzXHU1MjA5XHU1MjEwXHU1MmE2XHU1MzIyXHU1MzFmXHU1MzRkXHU1MzhhXHU1NDA3XHU1NmUxXHU1NmRmXHU1NzJlXHU1NzJhXHU1NzM0XHU1OTNjXHU1OTgwXHU1OTdjXHU1OTg1XHU1OTdiXHU1OTdlXHU1OTc3XHU1OTdmXHU1YjU2XHU1YzE1XHU1YzI1XHU1YzdjXHU1YzdhXHU1''@;'; + put 'put ''YzdiXHU1YzdlXHU1ZGRmXHU1ZTc1XHU1ZTg0XHU1ZjAyXHU1ZjFhXHU1Zjc0XHU1ZmQ1XHU1ZmQ0XHU1ZmNmXHU2MjVjXHU2MjVlXHU2MjY0XHU2MjYxXHU2MjY2XHU2MjYyXHU2MjU5XHU2MjYwXHU2MjVhXHU2MjY1XHU2NWVmXHU2NWVlXHU2NzNlXHU2NzM5XHU2NzM4XHU2NzNiXHU2NzNh''@;'; + put 'put ''XHU2NzNmXHU2NzNjXHU2NzMzXHU2YzE4XHU2YzQ2XHU2YzUyXHU2YzVjXHU2YzRmXHU2YzRhXHU2YzU0XHU2YzRiIl0sWyJjYTQwIiwiXHU2YzRjXHU3MDcxXHU3MjVlXHU3MmI0XHU3MmI1XHU3MzhlXHU3NTJhXHU3NjdmXHU3YTc1XHU3ZjUxXHU4Mjc4XHU4MjdjXHU4MjgwXHU4MjdkXHU4''@;'; + put 'put ''MjdmXHU4NjRkXHU4OTdlXHU5MDk5XHU5MDk3XHU5MDk4XHU5MDliXHU5MDk0XHU5NjIyXHU5NjI0XHU5NjIwXHU5NjIzXHU0ZjU2XHU0ZjNiXHU0ZjYyXHU0ZjQ5XHU0ZjUzXHU0ZjY0XHU0ZjNlXHU0ZjY3XHU0ZjUyXHU0ZjVmXHU0ZjQxXHU0ZjU4XHU0ZjJkXHU0ZjMzXHU0ZjNmXHU0ZjYx''@;'; + put 'put ''XHU1MThmXHU1MWI5XHU1MjFjXHU1MjFlXHU1MjIxXHU1MmFkXHU1MmFlXHU1MzA5XHU1MzYzXHU1MzcyXHU1MzhlXHU1MzhmXHU1NDMwXHU1NDM3XHU1NDJhXHU1NDU0XHU1NDQ1XHU1NDE5XHU1NDFjXHU1NDI1XHU1NDE4Il0sWyJjYWExIiwiXHU1NDNkXHU1NDRmXHU1NDQxXHU1NDI4XHU1''@;'; + put 'put ''NDI0XHU1NDQ3XHU1NmVlXHU1NmU3XHU1NmU1XHU1NzQxXHU1NzQ1XHU1NzRjXHU1NzQ5XHU1NzRiXHU1NzUyXHU1OTA2XHU1OTQwXHU1OWE2XHU1OTk4XHU1OWEwXHU1OTk3XHU1OThlXHU1OWEyXHU1OTkwXHU1OThmXHU1OWE3XHU1OWExXHU1YjhlXHU1YjkyXHU1YzI4XHU1YzJhXHU1Yzhk''@;'; + put 'put ''XHU1YzhmXHU1Yzg4XHU1YzhiXHU1Yzg5XHU1YzkyXHU1YzhhXHU1Yzg2XHU1YzkzXHU1Yzk1XHU1ZGUwXHU1ZTBhXHU1ZTBlXHU1ZThiXHU1ZTg5XHU1ZThjXHU1ZTg4XHU1ZThkXHU1ZjA1XHU1ZjFkXHU1Zjc4XHU1Zjc2XHU1ZmQyXHU1ZmQxXHU1ZmQwXHU1ZmVkXHU1ZmU4XHU1ZmVlXHU1''@;'; + put 'put ''ZmYzXHU1ZmUxXHU1ZmU0XHU1ZmUzXHU1ZmZhXHU1ZmVmXHU1ZmY3XHU1ZmZiXHU2MDAwXHU1ZmY0XHU2MjNhXHU2MjgzXHU2MjhjXHU2MjhlXHU2MjhmXHU2Mjk0XHU2Mjg3XHU2MjcxXHU2MjdiXHU2MjdhXHU2MjcwXHU2MjgxXHU2Mjg4XHU2Mjc3XHU2MjdkXHU2MjcyXHU2Mjc0XHU2NTM3''@;'; + put 'put ''XHU2NWYwXHU2NWY0XHU2NWYzXHU2NWYyXHU2NWY1XHU2NzQ1XHU2NzQ3Il0sWyJjYjQwIiwiXHU2NzU5XHU2NzU1XHU2NzRjXHU2NzQ4XHU2NzVkXHU2NzRkXHU2NzVhXHU2NzRiXHU2YmQwXHU2YzE5XHU2YzFhXHU2Yzc4XHU2YzY3XHU2YzZiXHU2Yzg0XHU2YzhiXHU2YzhmXHU2YzcxXHU2''@;'; + put 'put ''YzZmXHU2YzY5XHU2YzlhXHU2YzZkXHU2Yzg3XHU2Yzk1XHU2YzljXHU2YzY2XHU2YzczXHU2YzY1XHU2YzdiXHU2YzhlXHU3MDc0XHU3MDdhXHU3MjYzXHU3MmJmXHU3MmJkXHU3MmMzXHU3MmM2XHU3MmMxXHU3MmJhXHU3MmM1XHU3Mzk1XHU3Mzk3XHU3MzkzXHU3Mzk0XHU3MzkyXHU3NTNh''@;'; + put 'put ''XHU3NTM5XHU3NTk0XHU3NTk1XHU3NjgxXHU3OTNkXHU4MDM0XHU4MDk1XHU4MDk5XHU4MDkwXHU4MDkyXHU4MDljXHU4MjkwXHU4MjhmXHU4Mjg1XHU4MjhlXHU4MjkxXHU4MjkzIl0sWyJjYmExIiwiXHU4MjhhXHU4MjgzXHU4Mjg0XHU4Yzc4XHU4ZmM5XHU4ZmJmXHU5MDlmXHU5MGExXHU5''@;'; + put 'put ''MGE1XHU5MDllXHU5MGE3XHU5MGEwXHU5NjMwXHU5NjI4XHU5NjJmXHU5NjJkXHU0ZTMzXHU0Zjk4XHU0ZjdjXHU0Zjg1XHU0ZjdkXHU0ZjgwXHU0Zjg3XHU0Zjc2XHU0Zjc0XHU0Zjg5XHU0Zjg0XHU0Zjc3XHU0ZjRjXHU0Zjk3XHU0ZjZhXHU0ZjlhXHU0Zjc5XHU0ZjgxXHU0Zjc4XHU0Zjkw''@;'; + put 'put ''XHU0ZjljXHU0Zjk0XHU0ZjllXHU0ZjkyXHU0ZjgyXHU0Zjk1XHU0ZjZiXHU0ZjZlXHU1MTllXHU1MWJjXHU1MWJlXHU1MjM1XHU1MjMyXHU1MjMzXHU1MjQ2XHU1MjMxXHU1MmJjXHU1MzBhXHU1MzBiXHU1MzNjXHU1MzkyXHU1Mzk0XHU1NDg3XHU1NDdmXHU1NDgxXHU1NDkxXHU1NDgyXHU1''@;'; + put 'put ''NDg4XHU1NDZiXHU1NDdhXHU1NDdlXHU1NDY1XHU1NDZjXHU1NDc0XHU1NDY2XHU1NDhkXHU1NDZmXHU1NDYxXHU1NDYwXHU1NDk4XHU1NDYzXHU1NDY3XHU1NDY0XHU1NmY3XHU1NmY5XHU1NzZmXHU1NzcyXHU1NzZkXHU1NzZiXHU1NzcxXHU1NzcwXHU1Nzc2XHU1NzgwXHU1Nzc1XHU1Nzdi''@;'; + put 'put ''XHU1NzczXHU1Nzc0XHU1NzYyIl0sWyJjYzQwIiwiXHU1NzY4XHU1NzdkXHU1OTBjXHU1OTQ1XHU1OWI1XHU1OWJhXHU1OWNmXHU1OWNlXHU1OWIyXHU1OWNjXHU1OWMxXHU1OWI2XHU1OWJjXHU1OWMzXHU1OWQ2XHU1OWIxXHU1OWJkXHU1OWMwXHU1OWM4XHU1OWI0XHU1OWM3XHU1YjYyXHU1''@;'; + put 'put ''YjY1XHU1YjkzXHU1Yjk1XHU1YzQ0XHU1YzQ3XHU1Y2FlXHU1Y2E0XHU1Y2EwXHU1Y2I1XHU1Y2FmXHU1Y2E4XHU1Y2FjXHU1YzlmXHU1Y2EzXHU1Y2FkXHU1Y2EyXHU1Y2FhXHU1Y2E3XHU1YzlkXHU1Y2E1XHU1Y2I2XHU1Y2IwXHU1Y2E2XHU1ZTE3XHU1ZTE0XHU1ZTE5XHU1ZjI4XHU1ZjIy''@;'; + put 'put ''XHU1ZjIzXHU1ZjI0XHU1ZjU0XHU1ZjgyXHU1ZjdlXHU1ZjdkXHU1ZmRlXHU1ZmU1XHU2MDJkXHU2MDI2XHU2MDE5XHU2MDMyXHU2MDBiIl0sWyJjY2ExIiwiXHU2MDM0XHU2MDBhXHU2MDE3XHU2MDMzXHU2MDFhXHU2MDFlXHU2MDJjXHU2MDIyXHU2MDBkXHU2MDEwXHU2MDJlXHU2MDEzXHU2''@;'; + put 'put ''MDExXHU2MDBjXHU2MDA5XHU2MDFjXHU2MjE0XHU2MjNkXHU2MmFkXHU2MmI0XHU2MmQxXHU2MmJlXHU2MmFhXHU2MmI2XHU2MmNhXHU2MmFlXHU2MmIzXHU2MmFmXHU2MmJiXHU2MmE5XHU2MmIwXHU2MmI4XHU2NTNkXHU2NWE4XHU2NWJiXHU2NjA5XHU2NWZjXHU2NjA0XHU2NjEyXHU2NjA4''@;'; + put 'put ''XHU2NWZiXHU2NjAzXHU2NjBiXHU2NjBkXHU2NjA1XHU2NWZkXHU2NjExXHU2NjEwXHU2NmY2XHU2NzBhXHU2Nzg1XHU2NzZjXHU2NzhlXHU2NzkyXHU2Nzc2XHU2NzdiXHU2Nzk4XHU2Nzg2XHU2Nzg0XHU2Nzc0XHU2NzhkXHU2NzhjXHU2NzdhXHU2NzlmXHU2NzkxXHU2Nzk5XHU2NzgzXHU2''@;'; + put 'put ''NzdkXHU2NzgxXHU2Nzc4XHU2Nzc5XHU2Nzk0XHU2YjI1XHU2YjgwXHU2YjdlXHU2YmRlXHU2YzFkXHU2YzkzXHU2Y2VjXHU2Y2ViXHU2Y2VlXHU2Y2Q5XHU2Y2I2XHU2Y2Q0XHU2Y2FkXHU2Y2U3XHU2Y2I3XHU2Y2QwXHU2Y2MyXHU2Y2JhXHU2Y2MzXHU2Y2M2XHU2Y2VkXHU2Y2YyIl0sWyJj''@;'; + put 'put ''ZDQwIiwiXHU2Y2QyXHU2Y2RkXHU2Y2I0XHU2YzhhXHU2YzlkXHU2YzgwXHU2Y2RlXHU2Y2MwXHU2ZDMwXHU2Y2NkXHU2Y2M3XHU2Y2IwXHU2Y2Y5XHU2Y2NmXHU2Y2U5XHU2Y2QxXHU3MDk0XHU3MDk4XHU3MDg1XHU3MDkzXHU3MDg2XHU3MDg0XHU3MDkxXHU3MDk2XHU3MDgyXHU3MDlhXHU3''@;'; + put 'put ''MDgzXHU3MjZhXHU3MmQ2XHU3MmNiXHU3MmQ4XHU3MmM5XHU3MmRjXHU3MmQyXHU3MmQ0XHU3MmRhXHU3MmNjXHU3MmQxXHU3M2E0XHU3M2ExXHU3M2FkXHU3M2E2XHU3M2EyXHU3M2EwXHU3M2FjXHU3MzlkXHU3NGRkXHU3NGU4XHU3NTNmXHU3NTQwXHU3NTNlXHU3NThjXHU3NTk4XHU3NmFm''@;'; + put 'put ''XHU3NmYzXHU3NmYxXHU3NmYwXHU3NmY1XHU3N2Y4XHU3N2ZjXHU3N2Y5XHU3N2ZiXHU3N2ZhIl0sWyJjZGExIiwiXHU3N2Y3XHU3OTQyXHU3OTNmXHU3OWM1XHU3YTc4XHU3YTdiXHU3YWZiXHU3Yzc1XHU3Y2ZkXHU4MDM1XHU4MDhmXHU4MGFlXHU4MGEzXHU4MGI4XHU4MGI1XHU4MGFkXHU4''@;'; + put 'put ''MjIwXHU4MmEwXHU4MmMwXHU4MmFiXHU4MjlhXHU4Mjk4XHU4MjliXHU4MmI1XHU4MmE3XHU4MmFlXHU4MmJjXHU4MjllXHU4MmJhXHU4MmI0XHU4MmE4XHU4MmExXHU4MmE5XHU4MmMyXHU4MmE0XHU4MmMzXHU4MmI2XHU4MmEyXHU4NjcwXHU4NjZmXHU4NjZkXHU4NjZlXHU4YzU2XHU4ZmQy''@;'; + put 'put ''XHU4ZmNiXHU4ZmQzXHU4ZmNkXHU4ZmQ2XHU4ZmQ1XHU4ZmQ3XHU5MGIyXHU5MGI0XHU5MGFmXHU5MGIzXHU5MGIwXHU5NjM5XHU5NjNkXHU5NjNjXHU5NjNhXHU5NjQzXHU0ZmNkXHU0ZmM1XHU0ZmQzXHU0ZmIyXHU0ZmM5XHU0ZmNiXHU0ZmMxXHU0ZmQ0XHU0ZmRjXHU0ZmQ5XHU0ZmJiXHU0''@;'; + put 'put ''ZmIzXHU0ZmRiXHU0ZmM3XHU0ZmQ2XHU0ZmJhXHU0ZmMwXHU0ZmI5XHU0ZmVjXHU1MjQ0XHU1MjQ5XHU1MmMwXHU1MmMyXHU1MzNkXHU1MzdjXHU1Mzk3XHU1Mzk2XHU1Mzk5XHU1Mzk4XHU1NGJhXHU1NGExXHU1NGFkXHU1NGE1XHU1NGNmIl0sWyJjZTQwIiwiXHU1NGMzXHU4MzBkXHU1NGI3''@;'; + put 'put ''XHU1NGFlXHU1NGQ2XHU1NGI2XHU1NGM1XHU1NGM2XHU1NGEwXHU1NDcwXHU1NGJjXHU1NGEyXHU1NGJlXHU1NDcyXHU1NGRlXHU1NGIwXHU1N2I1XHU1NzllXHU1NzlmXHU1N2E0XHU1NzhjXHU1Nzk3XHU1NzlkXHU1NzliXHU1Nzk0XHU1Nzk4XHU1NzhmXHU1Nzk5XHU1N2E1XHU1NzlhXHU1''@;'; + put 'put ''Nzk1XHU1OGY0XHU1OTBkXHU1OTUzXHU1OWUxXHU1OWRlXHU1OWVlXHU1YTAwXHU1OWYxXHU1OWRkXHU1OWZhXHU1OWZkXHU1OWZjXHU1OWY2XHU1OWU0XHU1OWYyXHU1OWY3XHU1OWRiXHU1OWU5XHU1OWYzXHU1OWY1XHU1OWUwXHU1OWZlXHU1OWY0XHU1OWVkXHU1YmE4XHU1YzRjXHU1Y2Qw''@;'; + put 'put ''XHU1Y2Q4XHU1Y2NjXHU1Y2Q3XHU1Y2NiXHU1Y2RiIl0sWyJjZWExIiwiXHU1Y2RlXHU1Y2RhXHU1Y2M5XHU1Y2M3XHU1Y2NhXHU1Y2Q2XHU1Y2QzXHU1Y2Q0XHU1Y2NmXHU1Y2M4XHU1Y2M2XHU1Y2NlXHU1Y2RmXHU1Y2Y4XHU1ZGY5XHU1ZTIxXHU1ZTIyXHU1ZTIzXHU1ZTIwXHU1ZTI0XHU1''@;'; + put 'put ''ZWIwXHU1ZWE0XHU1ZWEyXHU1ZTliXHU1ZWEzXHU1ZWE1XHU1ZjA3XHU1ZjJlXHU1ZjU2XHU1Zjg2XHU2MDM3XHU2MDM5XHU2MDU0XHU2MDcyXHU2MDVlXHU2MDQ1XHU2MDUzXHU2MDQ3XHU2MDQ5XHU2MDViXHU2MDRjXHU2MDQwXHU2MDQyXHU2MDVmXHU2MDI0XHU2MDQ0XHU2MDU4XHU2MDY2''@;'; + put 'put ''XHU2MDZlXHU2MjQyXHU2MjQzXHU2MmNmXHU2MzBkXHU2MzBiXHU2MmY1XHU2MzBlXHU2MzAzXHU2MmViXHU2MmY5XHU2MzBmXHU2MzBjXHU2MmY4XHU2MmY2XHU2MzAwXHU2MzEzXHU2MzE0XHU2MmZhXHU2MzE1XHU2MmZiXHU2MmYwXHU2NTQxXHU2NTQzXHU2NWFhXHU2NWJmXHU2NjM2XHU2''@;'; + put 'put ''NjIxXHU2NjMyXHU2NjM1XHU2NjFjXHU2NjI2XHU2NjIyXHU2NjMzXHU2NjJiXHU2NjNhXHU2NjFkXHU2NjM0XHU2NjM5XHU2NjJlXHU2NzBmXHU2NzEwXHU2N2MxXHU2N2YyXHU2N2M4XHU2N2JhIl0sWyJjZjQwIiwiXHU2N2RjXHU2N2JiXHU2N2Y4XHU2N2Q4XHU2N2MwXHU2N2I3XHU2N2M1''@;'; + put 'put ''XHU2N2ViXHU2N2U0XHU2N2RmXHU2N2I1XHU2N2NkXHU2N2IzXHU2N2Y3XHU2N2Y2XHU2N2VlXHU2N2UzXHU2N2MyXHU2N2I5XHU2N2NlXHU2N2U3XHU2N2YwXHU2N2IyXHU2N2ZjXHU2N2M2XHU2N2VkXHU2N2NjXHU2N2FlXHU2N2U2XHU2N2RiXHU2N2ZhXHU2N2M5XHU2N2NhXHU2N2MzXHU2''@;'; + put 'put ''N2VhXHU2N2NiXHU2YjI4XHU2YjgyXHU2Yjg0XHU2YmI2XHU2YmQ2XHU2YmQ4XHU2YmUwXHU2YzIwXHU2YzIxXHU2ZDI4XHU2ZDM0XHU2ZDJkXHU2ZDFmXHU2ZDNjXHU2ZDNmXHU2ZDEyXHU2ZDBhXHU2Y2RhXHU2ZDMzXHU2ZDA0XHU2ZDE5XHU2ZDNhXHU2ZDFhXHU2ZDExXHU2ZDAwXHU2ZDFk''@;'; + put 'put ''XHU2ZDQyIl0sWyJjZmExIiwiXHU2ZDAxXHU2ZDE4XHU2ZDM3XHU2ZDAzXHU2ZDBmXHU2ZDQwXHU2ZDA3XHU2ZDIwXHU2ZDJjXHU2ZDA4XHU2ZDIyXHU2ZDA5XHU2ZDEwXHU3MGI3XHU3MDlmXHU3MGJlXHU3MGIxXHU3MGIwXHU3MGExXHU3MGI0XHU3MGI1XHU3MGE5XHU3MjQxXHU3MjQ5XHU3''@;'; + put 'put ''MjRhXHU3MjZjXHU3MjcwXHU3MjczXHU3MjZlXHU3MmNhXHU3MmU0XHU3MmU4XHU3MmViXHU3MmRmXHU3MmVhXHU3MmU2XHU3MmUzXHU3Mzg1XHU3M2NjXHU3M2MyXHU3M2M4XHU3M2M1XHU3M2I5XHU3M2I2XHU3M2I1XHU3M2I0XHU3M2ViXHU3M2JmXHU3M2M3XHU3M2JlXHU3M2MzXHU3M2M2''@;'; + put 'put ''XHU3M2I4XHU3M2NiXHU3NGVjXHU3NGVlXHU3NTJlXHU3NTQ3XHU3NTQ4XHU3NWE3XHU3NWFhXHU3Njc5XHU3NmM0XHU3NzA4XHU3NzAzXHU3NzA0XHU3NzA1XHU3NzBhXHU3NmY3XHU3NmZiXHU3NmZhXHU3N2U3XHU3N2U4XHU3ODA2XHU3ODExXHU3ODEyXHU3ODA1XHU3ODEwXHU3ODBmXHU3''@;'; + put 'put ''ODBlXHU3ODA5XHU3ODAzXHU3ODEzXHU3OTRhXHU3OTRjXHU3OTRiXHU3OTQ1XHU3OTQ0XHU3OWQ1XHU3OWNkXHU3OWNmXHU3OWQ2XHU3OWNlXHU3YTgwIl0sWyJkMDQwIiwiXHU3YTdlXHU3YWQxXHU3YjAwXHU3YjAxXHU3YzdhXHU3Yzc4XHU3Yzc5XHU3YzdmXHU3YzgwXHU3YzgxXHU3ZDAz''@;'; + put 'put ''XHU3ZDA4XHU3ZDAxXHU3ZjU4XHU3ZjkxXHU3ZjhkXHU3ZmJlXHU4MDA3XHU4MDBlXHU4MDBmXHU4MDE0XHU4MDM3XHU4MGQ4XHU4MGM3XHU4MGUwXHU4MGQxXHU4MGM4XHU4MGMyXHU4MGQwXHU4MGM1XHU4MGUzXHU4MGQ5XHU4MGRjXHU4MGNhXHU4MGQ1XHU4MGM5XHU4MGNmXHU4MGQ3XHU4''@;'; + put 'put ''MGU2XHU4MGNkXHU4MWZmXHU4MjIxXHU4Mjk0XHU4MmQ5XHU4MmZlXHU4MmY5XHU4MzA3XHU4MmU4XHU4MzAwXHU4MmQ1XHU4MzNhXHU4MmViXHU4MmQ2XHU4MmY0XHU4MmVjXHU4MmUxXHU4MmYyXHU4MmY1XHU4MzBjXHU4MmZiXHU4MmY2XHU4MmYwXHU4MmVhIl0sWyJkMGExIiwiXHU4MmU0''@;'; + put 'put ''XHU4MmUwXHU4MmZhXHU4MmYzXHU4MmVkXHU4Njc3XHU4Njc0XHU4NjdjXHU4NjczXHU4ODQxXHU4ODRlXHU4ODY3XHU4ODZhXHU4ODY5XHU4OWQzXHU4YTA0XHU4YTA3XHU4ZDcyXHU4ZmUzXHU4ZmUxXHU4ZmVlXHU4ZmUwXHU5MGYxXHU5MGJkXHU5MGJmXHU5MGQ1XHU5MGM1XHU5MGJlXHU5''@;'; + put 'put ''MGM3XHU5MGNiXHU5MGM4XHU5MWQ0XHU5MWQzXHU5NjU0XHU5NjRmXHU5NjUxXHU5NjUzXHU5NjRhXHU5NjRlXHU1MDFlXHU1MDA1XHU1MDA3XHU1MDEzXHU1MDIyXHU1MDMwXHU1MDFiXHU0ZmY1XHU0ZmY0XHU1MDMzXHU1MDM3XHU1MDJjXHU0ZmY2XHU0ZmY3XHU1MDE3XHU1MDFjXHU1MDIw''@;'; + put 'put ''XHU1MDI3XHU1MDM1XHU1MDJmXHU1MDMxXHU1MDBlXHU1MTVhXHU1MTk0XHU1MTkzXHU1MWNhXHU1MWM0XHU1MWM1XHU1MWM4XHU1MWNlXHU1MjYxXHU1MjVhXHU1MjUyXHU1MjVlXHU1MjVmXHU1MjU1XHU1MjYyXHU1MmNkXHU1MzBlXHU1MzllXHU1NTI2XHU1NGUyXHU1NTE3XHU1NTEyXHU1''@;'; + put 'put ''NGU3XHU1NGYzXHU1NGU0XHU1NTFhXHU1NGZmXHU1NTA0XHU1NTA4XHU1NGViXHU1NTExXHU1NTA1XHU1NGYxIl0sWyJkMTQwIiwiXHU1NTBhXHU1NGZiXHU1NGY3XHU1NGY4XHU1NGUwXHU1NTBlXHU1NTAzXHU1NTBiXHU1NzAxXHU1NzAyXHU1N2NjXHU1ODMyXHU1N2Q1XHU1N2QyXHU1N2Jh''@;'; + put 'put ''XHU1N2M2XHU1N2JkXHU1N2JjXHU1N2I4XHU1N2I2XHU1N2JmXHU1N2M3XHU1N2QwXHU1N2I5XHU1N2MxXHU1OTBlXHU1OTRhXHU1YTE5XHU1YTE2XHU1YTJkXHU1YTJlXHU1YTE1XHU1YTBmXHU1YTE3XHU1YTBhXHU1YTFlXHU1YTMzXHU1YjZjXHU1YmE3XHU1YmFkXHU1YmFjXHU1YzAzXHU1''@;'; + put 'put ''YzU2XHU1YzU0XHU1Y2VjXHU1Y2ZmXHU1Y2VlXHU1Y2YxXHU1Y2Y3XHU1ZDAwXHU1Y2Y5XHU1ZTI5XHU1ZTI4XHU1ZWE4XHU1ZWFlXHU1ZWFhXHU1ZWFjXHU1ZjMzXHU1ZjMwXHU1ZjY3XHU2MDVkXHU2MDVhXHU2MDY3Il0sWyJkMWExIiwiXHU2MDQxXHU2MGEyXHU2MDg4XHU2MDgwXHU2MDky''@;'; + put 'put ''XHU2MDgxXHU2MDlkXHU2MDgzXHU2MDk1XHU2MDliXHU2MDk3XHU2MDg3XHU2MDljXHU2MDhlXHU2MjE5XHU2MjQ2XHU2MmYyXHU2MzEwXHU2MzU2XHU2MzJjXHU2MzQ0XHU2MzQ1XHU2MzM2XHU2MzQzXHU2M2U0XHU2MzM5XHU2MzRiXHU2MzRhXHU2MzNjXHU2MzI5XHU2MzQxXHU2MzM0XHU2''@;'; + put 'put ''MzU4XHU2MzU0XHU2MzU5XHU2MzJkXHU2MzQ3XHU2MzMzXHU2MzVhXHU2MzUxXHU2MzM4XHU2MzU3XHU2MzQwXHU2MzQ4XHU2NTRhXHU2NTQ2XHU2NWM2XHU2NWMzXHU2NWM0XHU2NWMyXHU2NjRhXHU2NjVmXHU2NjQ3XHU2NjUxXHU2NzEyXHU2NzEzXHU2ODFmXHU2ODFhXHU2ODQ5XHU2ODMy''@;'; + put 'put ''XHU2ODMzXHU2ODNiXHU2ODRiXHU2ODRmXHU2ODE2XHU2ODMxXHU2ODFjXHU2ODM1XHU2ODJiXHU2ODJkXHU2ODJmXHU2ODRlXHU2ODQ0XHU2ODM0XHU2ODFkXHU2ODEyXHU2ODE0XHU2ODI2XHU2ODI4XHU2ODJlXHU2ODRkXHU2ODNhXHU2ODI1XHU2ODIwXHU2YjJjXHU2YjJmXHU2YjJkXHU2''@;'; + put 'put ''YjMxXHU2YjM0XHU2YjZkXHU4MDgyXHU2Yjg4XHU2YmU2XHU2YmU0Il0sWyJkMjQwIiwiXHU2YmU4XHU2YmUzXHU2YmUyXHU2YmU3XHU2YzI1XHU2ZDdhXHU2ZDYzXHU2ZDY0XHU2ZDc2XHU2ZDBkXHU2ZDYxXHU2ZDkyXHU2ZDU4XHU2ZDYyXHU2ZDZkXHU2ZDZmXHU2ZDkxXHU2ZDhkXHU2ZGVm''@;'; + put 'put ''XHU2ZDdmXHU2ZDg2XHU2ZDVlXHU2ZDY3XHU2ZDYwXHU2ZDk3XHU2ZDcwXHU2ZDdjXHU2ZDVmXHU2ZDgyXHU2ZDk4XHU2ZDJmXHU2ZDY4XHU2ZDhiXHU2ZDdlXHU2ZDgwXHU2ZDg0XHU2ZDE2XHU2ZDgzXHU2ZDdiXHU2ZDdkXHU2ZDc1XHU2ZDkwXHU3MGRjXHU3MGQzXHU3MGQxXHU3MGRkXHU3''@;'; + put 'put ''MGNiXHU3ZjM5XHU3MGUyXHU3MGQ3XHU3MGQyXHU3MGRlXHU3MGUwXHU3MGQ0XHU3MGNkXHU3MGM1XHU3MGM2XHU3MGM3XHU3MGRhXHU3MGNlXHU3MGUxXHU3MjQyXHU3Mjc4Il0sWyJkMmExIiwiXHU3Mjc3XHU3Mjc2XHU3MzAwXHU3MmZhXHU3MmY0XHU3MmZlXHU3MmY2XHU3MmYzXHU3MmZi''@;'; + put 'put ''XHU3MzAxXHU3M2QzXHU3M2Q5XHU3M2U1XHU3M2Q2XHU3M2JjXHU3M2U3XHU3M2UzXHU3M2U5XHU3M2RjXHU3M2QyXHU3M2RiXHU3M2Q0XHU3M2RkXHU3M2RhXHU3M2Q3XHU3M2Q4XHU3M2U4XHU3NGRlXHU3NGRmXHU3NGY0XHU3NGY1XHU3NTIxXHU3NTViXHU3NTVmXHU3NWIwXHU3NWMxXHU3''@;'; + put 'put ''NWJiXHU3NWM0XHU3NWMwXHU3NWJmXHU3NWI2XHU3NWJhXHU3NjhhXHU3NmM5XHU3NzFkXHU3NzFiXHU3NzEwXHU3NzEzXHU3NzEyXHU3NzIzXHU3NzExXHU3NzE1XHU3NzE5XHU3NzFhXHU3NzIyXHU3NzI3XHU3ODIzXHU3ODJjXHU3ODIyXHU3ODM1XHU3ODJmXHU3ODI4XHU3ODJlXHU3ODJi''@;'; + put 'put ''XHU3ODIxXHU3ODI5XHU3ODMzXHU3ODJhXHU3ODMxXHU3OTU0XHU3OTViXHU3OTRmXHU3OTVjXHU3OTUzXHU3OTUyXHU3OTUxXHU3OWViXHU3OWVjXHU3OWUwXHU3OWVlXHU3OWVkXHU3OWVhXHU3OWRjXHU3OWRlXHU3OWRkXHU3YTg2XHU3YTg5XHU3YTg1XHU3YThiXHU3YThjXHU3YThhXHU3''@;'; + put 'put ''YTg3XHU3YWQ4XHU3YjEwIl0sWyJkMzQwIiwiXHU3YjA0XHU3YjEzXHU3YjA1XHU3YjBmXHU3YjA4XHU3YjBhXHU3YjBlXHU3YjA5XHU3YjEyXHU3Yzg0XHU3YzkxXHU3YzhhXHU3YzhjXHU3Yzg4XHU3YzhkXHU3Yzg1XHU3ZDFlXHU3ZDFkXHU3ZDExXHU3ZDBlXHU3ZDE4XHU3ZDE2XHU3ZDEz''@;'; + put 'put ''XHU3ZDFmXHU3ZDEyXHU3ZDBmXHU3ZDBjXHU3ZjVjXHU3ZjYxXHU3ZjVlXHU3ZjYwXHU3ZjVkXHU3ZjViXHU3Zjk2XHU3ZjkyXHU3ZmMzXHU3ZmMyXHU3ZmMwXHU4MDE2XHU4MDNlXHU4MDM5XHU4MGZhXHU4MGYyXHU4MGY5XHU4MGY1XHU4MTAxXHU4MGZiXHU4MTAwXHU4MjAxXHU4MjJmXHU4''@;'; + put 'put ''MjI1XHU4MzMzXHU4MzJkXHU4MzQ0XHU4MzE5XHU4MzUxXHU4MzI1XHU4MzU2XHU4MzNmXHU4MzQxXHU4MzI2XHU4MzFjXHU4MzIyIl0sWyJkM2ExIiwiXHU4MzQyXHU4MzRlXHU4MzFiXHU4MzJhXHU4MzA4XHU4MzNjXHU4MzRkXHU4MzE2XHU4MzI0XHU4MzIwXHU4MzM3XHU4MzJmXHU4MzI5''@;'; + put 'put ''XHU4MzQ3XHU4MzQ1XHU4MzRjXHU4MzUzXHU4MzFlXHU4MzJjXHU4MzRiXHU4MzI3XHU4MzQ4XHU4NjUzXHU4NjUyXHU4NmEyXHU4NmE4XHU4Njk2XHU4NjhkXHU4NjkxXHU4NjllXHU4Njg3XHU4Njk3XHU4Njg2XHU4NjhiXHU4NjlhXHU4Njg1XHU4NmE1XHU4Njk5XHU4NmExXHU4NmE3XHU4''@;'; + put 'put ''Njk1XHU4Njk4XHU4NjhlXHU4NjlkXHU4NjkwXHU4Njk0XHU4ODQzXHU4ODQ0XHU4ODZkXHU4ODc1XHU4ODc2XHU4ODcyXHU4ODgwXHU4ODcxXHU4ODdmXHU4ODZmXHU4ODgzXHU4ODdlXHU4ODc0XHU4ODdjXHU4YTEyXHU4YzQ3XHU4YzU3XHU4YzdiXHU4Y2E0XHU4Y2EzXHU4ZDc2XHU4ZDc4''@;'; + put 'put ''XHU4ZGI1XHU4ZGI3XHU4ZGI2XHU4ZWQxXHU4ZWQzXHU4ZmZlXHU4ZmY1XHU5MDAyXHU4ZmZmXHU4ZmZiXHU5MDA0XHU4ZmZjXHU4ZmY2XHU5MGQ2XHU5MGUwXHU5MGQ5XHU5MGRhXHU5MGUzXHU5MGRmXHU5MGU1XHU5MGQ4XHU5MGRiXHU5MGQ3XHU5MGRjXHU5MGU0XHU5MTUwIl0sWyJkNDQw''@;'; + put 'put ''IiwiXHU5MTRlXHU5MTRmXHU5MWQ1XHU5MWUyXHU5MWRhXHU5NjVjXHU5NjVmXHU5NmJjXHU5OGUzXHU5YWRmXHU5YjJmXHU0ZTdmXHU1MDcwXHU1MDZhXHU1MDYxXHU1MDVlXHU1MDYwXHU1MDUzXHU1MDRiXHU1MDVkXHU1MDcyXHU1MDQ4XHU1MDRkXHU1MDQxXHU1MDViXHU1MDRhXHU1MDYy''@;'; + put 'put ''XHU1MDE1XHU1MDQ1XHU1MDVmXHU1MDY5XHU1MDZiXHU1MDYzXHU1MDY0XHU1MDQ2XHU1MDQwXHU1MDZlXHU1MDczXHU1MDU3XHU1MDUxXHU1MWQwXHU1MjZiXHU1MjZkXHU1MjZjXHU1MjZlXHU1MmQ2XHU1MmQzXHU1MzJkXHU1MzljXHU1NTc1XHU1NTc2XHU1NTNjXHU1NTRkXHU1NTUwXHU1''@;'; + put 'put ''NTM0XHU1NTJhXHU1NTUxXHU1NTYyXHU1NTM2XHU1NTM1XHU1NTMwXHU1NTUyXHU1NTQ1Il0sWyJkNGExIiwiXHU1NTBjXHU1NTMyXHU1NTY1XHU1NTRlXHU1NTM5XHU1NTQ4XHU1NTJkXHU1NTNiXHU1NTQwXHU1NTRiXHU1NzBhXHU1NzA3XHU1N2ZiXHU1ODE0XHU1N2UyXHU1N2Y2XHU1N2Rj''@;'; + put 'put ''XHU1N2Y0XHU1ODAwXHU1N2VkXHU1N2ZkXHU1ODA4XHU1N2Y4XHU1ODBiXHU1N2YzXHU1N2NmXHU1ODA3XHU1N2VlXHU1N2UzXHU1N2YyXHU1N2U1XHU1N2VjXHU1N2UxXHU1ODBlXHU1N2ZjXHU1ODEwXHU1N2U3XHU1ODAxXHU1ODBjXHU1N2YxXHU1N2U5XHU1N2YwXHU1ODBkXHU1ODA0XHU1''@;'; + put 'put ''OTVjXHU1YTYwXHU1YTU4XHU1YTU1XHU1YTY3XHU1YTVlXHU1YTM4XHU1YTM1XHU1YTZkXHU1YTUwXHU1YTVmXHU1YTY1XHU1YTZjXHU1YTUzXHU1YTY0XHU1YTU3XHU1YTQzXHU1YTVkXHU1YTUyXHU1YTQ0XHU1YTViXHU1YTQ4XHU1YThlXHU1YTNlXHU1YTRkXHU1YTM5XHU1YTRjXHU1YTcw''@;'; + put 'put ''XHU1YTY5XHU1YTQ3XHU1YTUxXHU1YTU2XHU1YTQyXHU1YTVjXHU1YjcyXHU1YjZlXHU1YmMxXHU1YmMwXHU1YzU5XHU1ZDFlXHU1ZDBiXHU1ZDFkXHU1ZDFhXHU1ZDIwXHU1ZDBjXHU1ZDI4XHU1ZDBkXHU1ZDI2XHU1ZDI1XHU1ZDBmIl0sWyJkNTQwIiwiXHU1ZDMwXHU1ZDEyXHU1ZDIzXHU1''@;'; + put 'put ''ZDFmXHU1ZDJlXHU1ZTNlXHU1ZTM0XHU1ZWIxXHU1ZWI0XHU1ZWI5XHU1ZWIyXHU1ZWIzXHU1ZjM2XHU1ZjM4XHU1ZjliXHU1Zjk2XHU1ZjlmXHU2MDhhXHU2MDkwXHU2MDg2XHU2MGJlXHU2MGIwXHU2MGJhXHU2MGQzXHU2MGQ0XHU2MGNmXHU2MGU0XHU2MGQ5XHU2MGRkXHU2MGM4XHU2MGIx''@;'; + put 'put ''XHU2MGRiXHU2MGI3XHU2MGNhXHU2MGJmXHU2MGMzXHU2MGNkXHU2MGMwXHU2MzMyXHU2MzY1XHU2MzhhXHU2MzgyXHU2MzdkXHU2M2JkXHU2MzllXHU2M2FkXHU2MzlkXHU2Mzk3XHU2M2FiXHU2MzhlXHU2MzZmXHU2Mzg3XHU2MzkwXHU2MzZlXHU2M2FmXHU2Mzc1XHU2MzljXHU2MzZkXHU2''@;'; + put 'put ''M2FlXHU2MzdjXHU2M2E0XHU2MzNiXHU2MzlmIl0sWyJkNWExIiwiXHU2Mzc4XHU2Mzg1XHU2MzgxXHU2MzkxXHU2MzhkXHU2MzcwXHU2NTUzXHU2NWNkXHU2NjY1XHU2NjYxXHU2NjViXHU2NjU5XHU2NjVjXHU2NjYyXHU2NzE4XHU2ODc5XHU2ODg3XHU2ODkwXHU2ODljXHU2ODZkXHU2ODZl''@;'; + put 'put ''XHU2OGFlXHU2OGFiXHU2OTU2XHU2ODZmXHU2OGEzXHU2OGFjXHU2OGE5XHU2ODc1XHU2ODc0XHU2OGIyXHU2ODhmXHU2ODc3XHU2ODkyXHU2ODdjXHU2ODZiXHU2ODcyXHU2OGFhXHU2ODgwXHU2ODcxXHU2ODdlXHU2ODliXHU2ODk2XHU2ODhiXHU2OGEwXHU2ODg5XHU2OGE0XHU2ODc4XHU2''@;'; + put 'put ''ODdiXHU2ODkxXHU2ODhjXHU2ODhhXHU2ODdkXHU2YjM2XHU2YjMzXHU2YjM3XHU2YjM4XHU2YjkxXHU2YjhmXHU2YjhkXHU2YjhlXHU2YjhjXHU2YzJhXHU2ZGMwXHU2ZGFiXHU2ZGI0XHU2ZGIzXHU2ZTc0XHU2ZGFjXHU2ZGU5XHU2ZGUyXHU2ZGI3XHU2ZGY2XHU2ZGQ0XHU2ZTAwXHU2ZGM4''@;'; + put 'put ''XHU2ZGUwXHU2ZGRmXHU2ZGQ2XHU2ZGJlXHU2ZGU1XHU2ZGRjXHU2ZGRkXHU2ZGRiXHU2ZGY0XHU2ZGNhXHU2ZGJkXHU2ZGVkXHU2ZGYwXHU2ZGJhXHU2ZGQ1XHU2ZGMyXHU2ZGNmXHU2ZGM5Il0sWyJkNjQwIiwiXHU2ZGQwXHU2ZGYyXHU2ZGQzXHU2ZGZkXHU2ZGQ3XHU2ZGNkXHU2ZGUzXHU2''@;'; + put 'put ''ZGJiXHU3MGZhXHU3MTBkXHU3MGY3XHU3MTE3XHU3MGY0XHU3MTBjXHU3MGYwXHU3MTA0XHU3MGYzXHU3MTEwXHU3MGZjXHU3MGZmXHU3MTA2XHU3MTEzXHU3MTAwXHU3MGY4XHU3MGY2XHU3MTBiXHU3MTAyXHU3MTBlXHU3MjdlXHU3MjdiXHU3MjdjXHU3MjdmXHU3MzFkXHU3MzE3XHU3MzA3''@;'; + put 'put ''XHU3MzExXHU3MzE4XHU3MzBhXHU3MzA4XHU3MmZmXHU3MzBmXHU3MzFlXHU3Mzg4XHU3M2Y2XHU3M2Y4XHU3M2Y1XHU3NDA0XHU3NDAxXHU3M2ZkXHU3NDA3XHU3NDAwXHU3M2ZhXHU3M2ZjXHU3M2ZmXHU3NDBjXHU3NDBiXHU3M2Y0XHU3NDA4XHU3NTY0XHU3NTYzXHU3NWNlXHU3NWQyXHU3''@;'; + put 'put ''NWNmIl0sWyJkNmExIiwiXHU3NWNiXHU3NWNjXHU3NWQxXHU3NWQwXHU3NjhmXHU3Njg5XHU3NmQzXHU3NzM5XHU3NzJmXHU3NzJkXHU3NzMxXHU3NzMyXHU3NzM0XHU3NzMzXHU3NzNkXHU3NzI1XHU3NzNiXHU3NzM1XHU3ODQ4XHU3ODUyXHU3ODQ5XHU3ODRkXHU3ODRhXHU3ODRjXHU3ODI2''@;'; + put 'put ''XHU3ODQ1XHU3ODUwXHU3OTY0XHU3OTY3XHU3OTY5XHU3OTZhXHU3OTYzXHU3OTZiXHU3OTYxXHU3OWJiXHU3OWZhXHU3OWY4XHU3OWY2XHU3OWY3XHU3YThmXHU3YTk0XHU3YTkwXHU3YjM1XHU3YjQ3XHU3YjM0XHU3YjI1XHU3YjMwXHU3YjIyXHU3YjI0XHU3YjMzXHU3YjE4XHU3YjJhXHU3''@;'; + put 'put ''YjFkXHU3YjMxXHU3YjJiXHU3YjJkXHU3YjJmXHU3YjMyXHU3YjM4XHU3YjFhXHU3YjIzXHU3Yzk0XHU3Yzk4XHU3Yzk2XHU3Y2EzXHU3ZDM1XHU3ZDNkXHU3ZDM4XHU3ZDM2XHU3ZDNhXHU3ZDQ1XHU3ZDJjXHU3ZDI5XHU3ZDQxXHU3ZDQ3XHU3ZDNlXHU3ZDNmXHU3ZDRhXHU3ZDNiXHU3ZDI4''@;'; + put 'put ''XHU3ZjYzXHU3Zjk1XHU3ZjljXHU3ZjlkXHU3ZjliXHU3ZmNhXHU3ZmNiXHU3ZmNkXHU3ZmQwXHU3ZmQxXHU3ZmM3XHU3ZmNmXHU3ZmM5XHU4MDFmIl0sWyJkNzQwIiwiXHU4MDFlXHU4MDFiXHU4MDQ3XHU4MDQzXHU4MDQ4XHU4MTE4XHU4MTI1XHU4MTE5XHU4MTFiXHU4MTJkXHU4MTFmXHU4''@;'; + put 'put ''MTJjXHU4MTFlXHU4MTIxXHU4MTE1XHU4MTI3XHU4MTFkXHU4MTIyXHU4MjExXHU4MjM4XHU4MjMzXHU4MjNhXHU4MjM0XHU4MjMyXHU4Mjc0XHU4MzkwXHU4M2EzXHU4M2E4XHU4MzhkXHU4MzdhXHU4MzczXHU4M2E0XHU4Mzc0XHU4MzhmXHU4MzgxXHU4Mzk1XHU4Mzk5XHU4Mzc1XHU4Mzk0''@;'; + put 'put ''XHU4M2E5XHU4MzdkXHU4MzgzXHU4MzhjXHU4MzlkXHU4MzliXHU4M2FhXHU4MzhiXHU4MzdlXHU4M2E1XHU4M2FmXHU4Mzg4XHU4Mzk3XHU4M2IwXHU4MzdmXHU4M2E2XHU4Mzg3XHU4M2FlXHU4Mzc2XHU4MzlhXHU4NjU5XHU4NjU2XHU4NmJmXHU4NmI3Il0sWyJkN2ExIiwiXHU4NmMyXHU4''@;'; + put 'put ''NmMxXHU4NmM1XHU4NmJhXHU4NmIwXHU4NmM4XHU4NmI5XHU4NmIzXHU4NmI4XHU4NmNjXHU4NmI0XHU4NmJiXHU4NmJjXHU4NmMzXHU4NmJkXHU4NmJlXHU4ODUyXHU4ODg5XHU4ODk1XHU4OGE4XHU4OGEyXHU4OGFhXHU4ODlhXHU4ODkxXHU4OGExXHU4ODlmXHU4ODk4XHU4OGE3XHU4ODk5''@;'; + put 'put ''XHU4ODliXHU4ODk3XHU4OGE0XHU4OGFjXHU4ODhjXHU4ODkzXHU4ODhlXHU4OTgyXHU4OWQ2XHU4OWQ5XHU4OWQ1XHU4YTMwXHU4YTI3XHU4YTJjXHU4YTFlXHU4YzM5XHU4YzNiXHU4YzVjXHU4YzVkXHU4YzdkXHU4Y2E1XHU4ZDdkXHU4ZDdiXHU4ZDc5XHU4ZGJjXHU4ZGMyXHU4ZGI5XHU4''@;'; + put 'put ''ZGJmXHU4ZGMxXHU4ZWQ4XHU4ZWRlXHU4ZWRkXHU4ZWRjXHU4ZWQ3XHU4ZWUwXHU4ZWUxXHU5MDI0XHU5MDBiXHU5MDExXHU5MDFjXHU5MDBjXHU5MDIxXHU5MGVmXHU5MGVhXHU5MGYwXHU5MGY0XHU5MGYyXHU5MGYzXHU5MGQ0XHU5MGViXHU5MGVjXHU5MGU5XHU5MTU2XHU5MTU4XHU5MTVh''@;'; + put 'put ''XHU5MTUzXHU5MTU1XHU5MWVjXHU5MWY0XHU5MWYxXHU5MWYzXHU5MWY4XHU5MWU0XHU5MWY5XHU5MWVhIl0sWyJkODQwIiwiXHU5MWViXHU5MWY3XHU5MWU4XHU5MWVlXHU5NTdhXHU5NTg2XHU5NTg4XHU5NjdjXHU5NjZkXHU5NjZiXHU5NjcxXHU5NjZmXHU5NmJmXHU5NzZhXHU5ODA0XHU5''@;'; + put 'put ''OGU1XHU5OTk3XHU1MDliXHU1MDk1XHU1MDk0XHU1MDllXHU1MDhiXHU1MGEzXHU1MDgzXHU1MDhjXHU1MDhlXHU1MDlkXHU1MDY4XHU1MDljXHU1MDkyXHU1MDgyXHU1MDg3XHU1MTVmXHU1MWQ0XHU1MzEyXHU1MzExXHU1M2E0XHU1M2E3XHU1NTkxXHU1NWE4XHU1NWE1XHU1NWFkXHU1NTc3''@;'; + put 'put ''XHU1NjQ1XHU1NWEyXHU1NTkzXHU1NTg4XHU1NThmXHU1NWI1XHU1NTgxXHU1NWEzXHU1NTkyXHU1NWE0XHU1NTdkXHU1NThjXHU1NWE2XHU1NTdmXHU1NTk1XHU1NWExXHU1NThlXHU1NzBjXHU1ODI5XHU1ODM3Il0sWyJkOGExIiwiXHU1ODE5XHU1ODFlXHU1ODI3XHU1ODIzXHU1ODI4XHU1''@;'; + put 'put ''N2Y1XHU1ODQ4XHU1ODI1XHU1ODFjXHU1ODFiXHU1ODMzXHU1ODNmXHU1ODM2XHU1ODJlXHU1ODM5XHU1ODM4XHU1ODJkXHU1ODJjXHU1ODNiXHU1OTYxXHU1YWFmXHU1YTk0XHU1YTlmXHU1YTdhXHU1YWEyXHU1YTllXHU1YTc4XHU1YWE2XHU1YTdjXHU1YWE1XHU1YWFjXHU1YTk1XHU1YWFl''@;'; + put 'put ''XHU1YTM3XHU1YTg0XHU1YThhXHU1YTk3XHU1YTgzXHU1YThiXHU1YWE5XHU1YTdiXHU1YTdkXHU1YThjXHU1YTljXHU1YThmXHU1YTkzXHU1YTlkXHU1YmVhXHU1YmNkXHU1YmNiXHU1YmQ0XHU1YmQxXHU1YmNhXHU1YmNlXHU1YzBjXHU1YzMwXHU1ZDM3XHU1ZDQzXHU1ZDZiXHU1ZDQxXHU1''@;'; + put 'put ''ZDRiXHU1ZDNmXHU1ZDM1XHU1ZDUxXHU1ZDRlXHU1ZDU1XHU1ZDMzXHU1ZDNhXHU1ZDUyXHU1ZDNkXHU1ZDMxXHU1ZDU5XHU1ZDQyXHU1ZDM5XHU1ZDQ5XHU1ZDM4XHU1ZDNjXHU1ZDMyXHU1ZDM2XHU1ZDQwXHU1ZDQ1XHU1ZTQ0XHU1ZTQxXHU1ZjU4XHU1ZmE2XHU1ZmE1XHU1ZmFiXHU2MGM5''@;'; + put 'put ''XHU2MGI5XHU2MGNjXHU2MGUyXHU2MGNlXHU2MGM0XHU2MTE0Il0sWyJkOTQwIiwiXHU2MGYyXHU2MTBhXHU2MTE2XHU2MTA1XHU2MGY1XHU2MTEzXHU2MGY4XHU2MGZjXHU2MGZlXHU2MGMxXHU2MTAzXHU2MTE4XHU2MTFkXHU2MTEwXHU2MGZmXHU2MTA0XHU2MTBiXHU2MjRhXHU2Mzk0XHU2''@;'; + put 'put ''M2IxXHU2M2IwXHU2M2NlXHU2M2U1XHU2M2U4XHU2M2VmXHU2M2MzXHU2NDlkXHU2M2YzXHU2M2NhXHU2M2UwXHU2M2Y2XHU2M2Q1XHU2M2YyXHU2M2Y1XHU2NDYxXHU2M2RmXHU2M2JlXHU2M2RkXHU2M2RjXHU2M2M0XHU2M2Q4XHU2M2QzXHU2M2MyXHU2M2M3XHU2M2NjXHU2M2NiXHU2M2M4''@;'; + put 'put ''XHU2M2YwXHU2M2Q3XHU2M2Q5XHU2NTMyXHU2NTY3XHU2NTZhXHU2NTY0XHU2NTVjXHU2NTY4XHU2NTY1XHU2NThjXHU2NTlkXHU2NTllXHU2NWFlXHU2NWQwXHU2NWQyIl0sWyJkOWExIiwiXHU2NjdjXHU2NjZjXHU2NjdiXHU2NjgwXHU2NjcxXHU2Njc5XHU2NjZhXHU2NjcyXHU2NzAxXHU2''@;'; + put 'put ''OTBjXHU2OGQzXHU2OTA0XHU2OGRjXHU2OTJhXHU2OGVjXHU2OGVhXHU2OGYxXHU2OTBmXHU2OGQ2XHU2OGY3XHU2OGViXHU2OGU0XHU2OGY2XHU2OTEzXHU2OTEwXHU2OGYzXHU2OGUxXHU2OTA3XHU2OGNjXHU2OTA4XHU2OTcwXHU2OGI0XHU2OTExXHU2OGVmXHU2OGM2XHU2OTE0XHU2OGY4''@;'; + put 'put ''XHU2OGQwXHU2OGZkXHU2OGZjXHU2OGU4XHU2OTBiXHU2OTBhXHU2OTE3XHU2OGNlXHU2OGM4XHU2OGRkXHU2OGRlXHU2OGU2XHU2OGY0XHU2OGQxXHU2OTA2XHU2OGQ0XHU2OGU5XHU2OTE1XHU2OTI1XHU2OGM3XHU2YjM5XHU2YjNiXHU2YjNmXHU2YjNjXHU2Yjk0XHU2Yjk3XHU2Yjk5XHU2''@;'; + put 'put ''Yjk1XHU2YmJkXHU2YmYwXHU2YmYyXHU2YmYzXHU2YzMwXHU2ZGZjXHU2ZTQ2XHU2ZTQ3XHU2ZTFmXHU2ZTQ5XHU2ZTg4XHU2ZTNjXHU2ZTNkXHU2ZTQ1XHU2ZTYyXHU2ZTJiXHU2ZTNmXHU2ZTQxXHU2ZTVkXHU2ZTczXHU2ZTFjXHU2ZTMzXHU2ZTRiXHU2ZTQwXHU2ZTUxXHU2ZTNiXHU2ZTAz''@;'; + put 'put ''XHU2ZTJlXHU2ZTVlIl0sWyJkYTQwIiwiXHU2ZTY4XHU2ZTVjXHU2ZTYxXHU2ZTMxXHU2ZTI4XHU2ZTYwXHU2ZTcxXHU2ZTZiXHU2ZTM5XHU2ZTIyXHU2ZTMwXHU2ZTUzXHU2ZTY1XHU2ZTI3XHU2ZTc4XHU2ZTY0XHU2ZTc3XHU2ZTU1XHU2ZTc5XHU2ZTUyXHU2ZTY2XHU2ZTM1XHU2ZTM2XHU2''@;'; + put 'put ''ZTVhXHU3MTIwXHU3MTFlXHU3MTJmXHU3MGZiXHU3MTJlXHU3MTMxXHU3MTIzXHU3MTI1XHU3MTIyXHU3MTMyXHU3MTFmXHU3MTI4XHU3MTNhXHU3MTFiXHU3MjRiXHU3MjVhXHU3Mjg4XHU3Mjg5XHU3Mjg2XHU3Mjg1XHU3MjhiXHU3MzEyXHU3MzBiXHU3MzMwXHU3MzIyXHU3MzMxXHU3MzMz''@;'; + put 'put ''XHU3MzI3XHU3MzMyXHU3MzJkXHU3MzI2XHU3MzIzXHU3MzM1XHU3MzBjXHU3NDJlXHU3NDJjXHU3NDMwXHU3NDJiXHU3NDE2Il0sWyJkYWExIiwiXHU3NDFhXHU3NDIxXHU3NDJkXHU3NDMxXHU3NDI0XHU3NDIzXHU3NDFkXHU3NDI5XHU3NDIwXHU3NDMyXHU3NGZiXHU3NTJmXHU3NTZmXHU3''@;'; + put 'put ''NTZjXHU3NWU3XHU3NWRhXHU3NWUxXHU3NWU2XHU3NWRkXHU3NWRmXHU3NWU0XHU3NWQ3XHU3Njk1XHU3NjkyXHU3NmRhXHU3NzQ2XHU3NzQ3XHU3NzQ0XHU3NzRkXHU3NzQ1XHU3NzRhXHU3NzRlXHU3NzRiXHU3NzRjXHU3N2RlXHU3N2VjXHU3ODYwXHU3ODY0XHU3ODY1XHU3ODVjXHU3ODZk''@;'; + put 'put ''XHU3ODcxXHU3ODZhXHU3ODZlXHU3ODcwXHU3ODY5XHU3ODY4XHU3ODVlXHU3ODYyXHU3OTc0XHU3OTczXHU3OTcyXHU3OTcwXHU3YTAyXHU3YTBhXHU3YTAzXHU3YTBjXHU3YTA0XHU3YTk5XHU3YWU2XHU3YWU0XHU3YjRhXHU3YjNiXHU3YjQ0XHU3YjQ4XHU3YjRjXHU3YjRlXHU3YjQwXHU3''@;'; + put 'put ''YjU4XHU3YjQ1XHU3Y2EyXHU3YzllXHU3Y2E4XHU3Y2ExXHU3ZDU4XHU3ZDZmXHU3ZDYzXHU3ZDUzXHU3ZDU2XHU3ZDY3XHU3ZDZhXHU3ZDRmXHU3ZDZkXHU3ZDVjXHU3ZDZiXHU3ZDUyXHU3ZDU0XHU3ZDY5XHU3ZDUxXHU3ZDVmXHU3ZDRlXHU3ZjNlXHU3ZjNmXHU3ZjY1Il0sWyJkYjQwIiwi''@;'; + put 'put ''XHU3ZjY2XHU3ZmEyXHU3ZmEwXHU3ZmExXHU3ZmQ3XHU4MDUxXHU4MDRmXHU4MDUwXHU4MGZlXHU4MGQ0XHU4MTQzXHU4MTRhXHU4MTUyXHU4MTRmXHU4MTQ3XHU4MTNkXHU4MTRkXHU4MTNhXHU4MWU2XHU4MWVlXHU4MWY3XHU4MWY4XHU4MWY5XHU4MjA0XHU4MjNjXHU4MjNkXHU4MjNmXHU4''@;'; + put 'put ''Mjc1XHU4MzNiXHU4M2NmXHU4M2Y5XHU4NDIzXHU4M2MwXHU4M2U4XHU4NDEyXHU4M2U3XHU4M2U0XHU4M2ZjXHU4M2Y2XHU4NDEwXHU4M2M2XHU4M2M4XHU4M2ViXHU4M2UzXHU4M2JmXHU4NDAxXHU4M2RkXHU4M2U1XHU4M2Q4XHU4M2ZmXHU4M2UxXHU4M2NiXHU4M2NlXHU4M2Q2XHU4M2Y1''@;'; + put 'put ''XHU4M2M5XHU4NDA5XHU4NDBmXHU4M2RlXHU4NDExXHU4NDA2XHU4M2MyXHU4M2YzIl0sWyJkYmExIiwiXHU4M2Q1XHU4M2ZhXHU4M2M3XHU4M2QxXHU4M2VhXHU4NDEzXHU4M2MzXHU4M2VjXHU4M2VlXHU4M2M0XHU4M2ZiXHU4M2Q3XHU4M2UyXHU4NDFiXHU4M2RiXHU4M2ZlXHU4NmQ4XHU4''@;'; + put 'put ''NmUyXHU4NmU2XHU4NmQzXHU4NmUzXHU4NmRhXHU4NmVhXHU4NmRkXHU4NmViXHU4NmRjXHU4NmVjXHU4NmU5XHU4NmQ3XHU4NmU4XHU4NmQxXHU4ODQ4XHU4ODU2XHU4ODU1XHU4OGJhXHU4OGQ3XHU4OGI5XHU4OGI4XHU4OGMwXHU4OGJlXHU4OGI2XHU4OGJjXHU4OGI3XHU4OGJkXHU4OGIy''@;'; + put 'put ''XHU4OTAxXHU4OGM5XHU4OTk1XHU4OTk4XHU4OTk3XHU4OWRkXHU4OWRhXHU4OWRiXHU4YTRlXHU4YTRkXHU4YTM5XHU4YTU5XHU4YTQwXHU4YTU3XHU4YTU4XHU4YTQ0XHU4YTQ1XHU4YTUyXHU4YTQ4XHU4YTUxXHU4YTRhXHU4YTRjXHU4YTRmXHU4YzVmXHU4YzgxXHU4YzgwXHU4Y2JhXHU4''@;'; + put 'put ''Y2JlXHU4Y2IwXHU4Y2I5XHU4Y2I1XHU4ZDg0XHU4ZDgwXHU4ZDg5XHU4ZGQ4XHU4ZGQzXHU4ZGNkXHU4ZGM3XHU4ZGQ2XHU4ZGRjXHU4ZGNmXHU4ZGQ1XHU4ZGQ5XHU4ZGM4XHU4ZGQ3XHU4ZGM1XHU4ZWVmXHU4ZWY3XHU4ZWZhIl0sWyJkYzQwIiwiXHU4ZWY5XHU4ZWU2XHU4ZWVlXHU4ZWU1''@;'; + put 'put ''XHU4ZWY1XHU4ZWU3XHU4ZWU4XHU4ZWY2XHU4ZWViXHU4ZWYxXHU4ZWVjXHU4ZWY0XHU4ZWU5XHU5MDJkXHU5MDM0XHU5MDJmXHU5MTA2XHU5MTJjXHU5MTA0XHU5MGZmXHU5MGZjXHU5MTA4XHU5MGY5XHU5MGZiXHU5MTAxXHU5MTAwXHU5MTA3XHU5MTA1XHU5MTAzXHU5MTYxXHU5MTY0XHU5''@;'; + put 'put ''MTVmXHU5MTYyXHU5MTYwXHU5MjAxXHU5MjBhXHU5MjI1XHU5MjAzXHU5MjFhXHU5MjI2XHU5MjBmXHU5MjBjXHU5MjAwXHU5MjEyXHU5MWZmXHU5MWZkXHU5MjA2XHU5MjA0XHU5MjI3XHU5MjAyXHU5MjFjXHU5MjI0XHU5MjE5XHU5MjE3XHU5MjA1XHU5MjE2XHU5NTdiXHU5NThkXHU5NThj''@;'; + put 'put ''XHU5NTkwXHU5Njg3XHU5NjdlXHU5Njg4Il0sWyJkY2ExIiwiXHU5Njg5XHU5NjgzXHU5NjgwXHU5NmMyXHU5NmM4XHU5NmMzXHU5NmYxXHU5NmYwXHU5NzZjXHU5NzcwXHU5NzZlXHU5ODA3XHU5OGE5XHU5OGViXHU5Y2U2XHU5ZWY5XHU0ZTgzXHU0ZTg0XHU0ZWI2XHU1MGJkXHU1MGJmXHU1''@;'; + put 'put ''MGM2XHU1MGFlXHU1MGM0XHU1MGNhXHU1MGI0XHU1MGM4XHU1MGMyXHU1MGIwXHU1MGMxXHU1MGJhXHU1MGIxXHU1MGNiXHU1MGM5XHU1MGI2XHU1MGI4XHU1MWQ3XHU1MjdhXHU1Mjc4XHU1MjdiXHU1MjdjXHU1NWMzXHU1NWRiXHU1NWNjXHU1NWQwXHU1NWNiXHU1NWNhXHU1NWRkXHU1NWMw''@;'; + put 'put ''XHU1NWQ0XHU1NWM0XHU1NWU5XHU1NWJmXHU1NWQyXHU1NThkXHU1NWNmXHU1NWQ1XHU1NWUyXHU1NWQ2XHU1NWM4XHU1NWYyXHU1NWNkXHU1NWQ5XHU1NWMyXHU1NzE0XHU1ODUzXHU1ODY4XHU1ODY0XHU1ODRmXHU1ODRkXHU1ODQ5XHU1ODZmXHU1ODU1XHU1ODRlXHU1ODVkXHU1ODU5XHU1''@;'; + put 'put ''ODY1XHU1ODViXHU1ODNkXHU1ODYzXHU1ODcxXHU1OGZjXHU1YWM3XHU1YWM0XHU1YWNiXHU1YWJhXHU1YWI4XHU1YWIxXHU1YWI1XHU1YWIwXHU1YWJmXHU1YWM4XHU1YWJiXHU1YWM2Il0sWyJkZDQwIiwiXHU1YWI3XHU1YWMwXHU1YWNhXHU1YWI0XHU1YWI2XHU1YWNkXHU1YWI5XHU1YTkw''@;'; + put 'put ''XHU1YmQ2XHU1YmQ4XHU1YmQ5XHU1YzFmXHU1YzMzXHU1ZDcxXHU1ZDYzXHU1ZDRhXHU1ZDY1XHU1ZDcyXHU1ZDZjXHU1ZDVlXHU1ZDY4XHU1ZDY3XHU1ZDYyXHU1ZGYwXHU1ZTRmXHU1ZTRlXHU1ZTRhXHU1ZTRkXHU1ZTRiXHU1ZWM1XHU1ZWNjXHU1ZWM2XHU1ZWNiXHU1ZWM3XHU1ZjQwXHU1''@;'; + put 'put ''ZmFmXHU1ZmFkXHU2MGY3XHU2MTQ5XHU2MTRhXHU2MTJiXHU2MTQ1XHU2MTM2XHU2MTMyXHU2MTJlXHU2MTQ2XHU2MTJmXHU2MTRmXHU2MTI5XHU2MTQwXHU2MjIwXHU5MTY4XHU2MjIzXHU2MjI1XHU2MjI0XHU2M2M1XHU2M2YxXHU2M2ViXHU2NDEwXHU2NDEyXHU2NDA5XHU2NDIwXHU2NDI0''@;'; + put 'put ''Il0sWyJkZGExIiwiXHU2NDMzXHU2NDQzXHU2NDFmXHU2NDE1XHU2NDE4XHU2NDM5XHU2NDM3XHU2NDIyXHU2NDIzXHU2NDBjXHU2NDI2XHU2NDMwXHU2NDI4XHU2NDQxXHU2NDM1XHU2NDJmXHU2NDBhXHU2NDFhXHU2NDQwXHU2NDI1XHU2NDI3XHU2NDBiXHU2M2U3XHU2NDFiXHU2NDJlXHU2''@;'; + put 'put ''NDIxXHU2NDBlXHU2NTZmXHU2NTkyXHU2NWQzXHU2Njg2XHU2NjhjXHU2Njk1XHU2NjkwXHU2NjhiXHU2NjhhXHU2Njk5XHU2Njk0XHU2Njc4XHU2NzIwXHU2OTY2XHU2OTVmXHU2OTM4XHU2OTRlXHU2OTYyXHU2OTcxXHU2OTNmXHU2OTQ1XHU2OTZhXHU2OTM5XHU2OTQyXHU2OTU3XHU2OTU5''@;'; + put 'put ''XHU2OTdhXHU2OTQ4XHU2OTQ5XHU2OTM1XHU2OTZjXHU2OTMzXHU2OTNkXHU2OTY1XHU2OGYwXHU2OTc4XHU2OTM0XHU2OTY5XHU2OTQwXHU2OTZmXHU2OTQ0XHU2OTc2XHU2OTU4XHU2OTQxXHU2OTc0XHU2OTRjXHU2OTNiXHU2OTRiXHU2OTM3XHU2OTVjXHU2OTRmXHU2OTUxXHU2OTMyXHU2''@;'; + put 'put ''OTUyXHU2OTJmXHU2OTdiXHU2OTNjXHU2YjQ2XHU2YjQ1XHU2YjQzXHU2YjQyXHU2YjQ4XHU2YjQxXHU2YjliXHVmYTBkXHU2YmZiXHU2YmZjIl0sWyJkZTQwIiwiXHU2YmY5XHU2YmY3XHU2YmY4XHU2ZTliXHU2ZWQ2XHU2ZWM4XHU2ZThmXHU2ZWMwXHU2ZTlmXHU2ZTkzXHU2ZTk0XHU2ZWEw''@;'; + put 'put ''XHU2ZWIxXHU2ZWI5XHU2ZWM2XHU2ZWQyXHU2ZWJkXHU2ZWMxXHU2ZTllXHU2ZWM5XHU2ZWI3XHU2ZWIwXHU2ZWNkXHU2ZWE2XHU2ZWNmXHU2ZWIyXHU2ZWJlXHU2ZWMzXHU2ZWRjXHU2ZWQ4XHU2ZTk5XHU2ZTkyXHU2ZThlXHU2ZThkXHU2ZWE0XHU2ZWExXHU2ZWJmXHU2ZWIzXHU2ZWQwXHU2''@;'; + put 'put ''ZWNhXHU2ZTk3XHU2ZWFlXHU2ZWEzXHU3MTQ3XHU3MTU0XHU3MTUyXHU3MTYzXHU3MTYwXHU3MTQxXHU3MTVkXHU3MTYyXHU3MTcyXHU3MTc4XHU3MTZhXHU3MTYxXHU3MTQyXHU3MTU4XHU3MTQzXHU3MTRiXHU3MTcwXHU3MTVmXHU3MTUwXHU3MTUzIl0sWyJkZWExIiwiXHU3MTQ0XHU3MTRk''@;'; + put 'put ''XHU3MTVhXHU3MjRmXHU3MjhkXHU3MjhjXHU3MjkxXHU3MjkwXHU3MjhlXHU3MzNjXHU3MzQyXHU3MzNiXHU3MzNhXHU3MzQwXHU3MzRhXHU3MzQ5XHU3NDQ0XHU3NDRhXHU3NDRiXHU3NDUyXHU3NDUxXHU3NDU3XHU3NDQwXHU3NDRmXHU3NDUwXHU3NDRlXHU3NDQyXHU3NDQ2XHU3NDRkXHU3''@;'; + put 'put ''NDU0XHU3NGUxXHU3NGZmXHU3NGZlXHU3NGZkXHU3NTFkXHU3NTc5XHU3NTc3XHU2OTgzXHU3NWVmXHU3NjBmXHU3NjAzXHU3NWY3XHU3NWZlXHU3NWZjXHU3NWY5XHU3NWY4XHU3NjEwXHU3NWZiXHU3NWY2XHU3NWVkXHU3NWY1XHU3NWZkXHU3Njk5XHU3NmI1XHU3NmRkXHU3NzU1XHU3NzVm''@;'; + put 'put ''XHU3NzYwXHU3NzUyXHU3NzU2XHU3NzVhXHU3NzY5XHU3NzY3XHU3NzU0XHU3NzU5XHU3NzZkXHU3N2UwXHU3ODg3XHU3ODlhXHU3ODk0XHU3ODhmXHU3ODg0XHU3ODk1XHU3ODg1XHU3ODg2XHU3OGExXHU3ODgzXHU3ODc5XHU3ODk5XHU3ODgwXHU3ODk2XHU3ODdiXHU3OTdjXHU3OTgyXHU3''@;'; + put 'put ''OTdkXHU3OTc5XHU3YTExXHU3YTE4XHU3YTE5XHU3YTEyXHU3YTE3XHU3YTE1XHU3YTIyXHU3YTEzIl0sWyJkZjQwIiwiXHU3YTFiXHU3YTEwXHU3YWEzXHU3YWEyXHU3YTllXHU3YWViXHU3YjY2XHU3YjY0XHU3YjZkXHU3Yjc0XHU3YjY5XHU3YjcyXHU3YjY1XHU3YjczXHU3YjcxXHU3Yjcw''@;'; + put 'put ''XHU3YjYxXHU3Yjc4XHU3Yjc2XHU3YjYzXHU3Y2IyXHU3Y2I0XHU3Y2FmXHU3ZDg4XHU3ZDg2XHU3ZDgwXHU3ZDhkXHU3ZDdmXHU3ZDg1XHU3ZDdhXHU3ZDhlXHU3ZDdiXHU3ZDgzXHU3ZDdjXHU3ZDhjXHU3ZDk0XHU3ZDg0XHU3ZDdkXHU3ZDkyXHU3ZjZkXHU3ZjZiXHU3ZjY3XHU3ZjY4XHU3''@;'; + put 'put ''ZjZjXHU3ZmE2XHU3ZmE1XHU3ZmE3XHU3ZmRiXHU3ZmRjXHU4MDIxXHU4MTY0XHU4MTYwXHU4MTc3XHU4MTVjXHU4MTY5XHU4MTViXHU4MTYyXHU4MTcyXHU2NzIxXHU4MTVlXHU4MTc2XHU4MTY3XHU4MTZmIl0sWyJkZmExIiwiXHU4MTQ0XHU4MTYxXHU4MjFkXHU4MjQ5XHU4MjQ0XHU4MjQw''@;'; + put 'put ''XHU4MjQyXHU4MjQ1XHU4NGYxXHU4NDNmXHU4NDU2XHU4NDc2XHU4NDc5XHU4NDhmXHU4NDhkXHU4NDY1XHU4NDUxXHU4NDQwXHU4NDg2XHU4NDY3XHU4NDMwXHU4NDRkXHU4NDdkXHU4NDVhXHU4NDU5XHU4NDc0XHU4NDczXHU4NDVkXHU4NTA3XHU4NDVlXHU4NDM3XHU4NDNhXHU4NDM0XHU4''@;'; + put 'put ''NDdhXHU4NDQzXHU4NDc4XHU4NDMyXHU4NDQ1XHU4NDI5XHU4M2Q5XHU4NDRiXHU4NDJmXHU4NDQyXHU4NDJkXHU4NDVmXHU4NDcwXHU4NDM5XHU4NDRlXHU4NDRjXHU4NDUyXHU4NDZmXHU4NGM1XHU4NDhlXHU4NDNiXHU4NDQ3XHU4NDM2XHU4NDMzXHU4NDY4XHU4NDdlXHU4NDQ0XHU4NDJi''@;'; + put 'put ''XHU4NDYwXHU4NDU0XHU4NDZlXHU4NDUwXHU4NzBiXHU4NzA0XHU4NmY3XHU4NzBjXHU4NmZhXHU4NmQ2XHU4NmY1XHU4NzRkXHU4NmY4XHU4NzBlXHU4NzA5XHU4NzAxXHU4NmY2XHU4NzBkXHU4NzA1XHU4OGQ2XHU4OGNiXHU4OGNkXHU4OGNlXHU4OGRlXHU4OGRiXHU4OGRhXHU4OGNjXHU4''@;'; + put 'put ''OGQwXHU4OTg1XHU4OTliXHU4OWRmXHU4OWU1XHU4OWU0Il0sWyJlMDQwIiwiXHU4OWUxXHU4OWUwXHU4OWUyXHU4OWRjXHU4OWU2XHU4YTc2XHU4YTg2XHU4YTdmXHU4YTYxXHU4YTNmXHU4YTc3XHU4YTgyXHU4YTg0XHU4YTc1XHU4YTgzXHU4YTgxXHU4YTc0XHU4YTdhXHU4YzNjXHU4YzRi''@;'; + put 'put ''XHU4YzRhXHU4YzY1XHU4YzY0XHU4YzY2XHU4Yzg2XHU4Yzg0XHU4Yzg1XHU4Y2NjXHU4ZDY4XHU4ZDY5XHU4ZDkxXHU4ZDhjXHU4ZDhlXHU4ZDhmXHU4ZDhkXHU4ZDkzXHU4ZDk0XHU4ZDkwXHU4ZDkyXHU4ZGYwXHU4ZGUwXHU4ZGVjXHU4ZGYxXHU4ZGVlXHU4ZGQwXHU4ZGU5XHU4ZGUzXHU4''@;'; + put 'put ''ZGUyXHU4ZGU3XHU4ZGYyXHU4ZGViXHU4ZGY0XHU4ZjA2XHU4ZWZmXHU4ZjAxXHU4ZjAwXHU4ZjA1XHU4ZjA3XHU4ZjA4XHU4ZjAyXHU4ZjBiXHU5MDUyXHU5MDNmIl0sWyJlMGExIiwiXHU5MDQ0XHU5MDQ5XHU5MDNkXHU5MTEwXHU5MTBkXHU5MTBmXHU5MTExXHU5MTE2XHU5MTE0XHU5MTBi''@;'; + put 'put ''XHU5MTBlXHU5MTZlXHU5MTZmXHU5MjQ4XHU5MjUyXHU5MjMwXHU5MjNhXHU5MjY2XHU5MjMzXHU5MjY1XHU5MjVlXHU5MjgzXHU5MjJlXHU5MjRhXHU5MjQ2XHU5MjZkXHU5MjZjXHU5MjRmXHU5MjYwXHU5MjY3XHU5MjZmXHU5MjM2XHU5MjYxXHU5MjcwXHU5MjMxXHU5MjU0XHU5MjYzXHU5''@;'; + put 'put ''MjUwXHU5MjcyXHU5MjRlXHU5MjUzXHU5MjRjXHU5MjU2XHU5MjMyXHU5NTlmXHU5NTljXHU5NTllXHU5NTliXHU5NjkyXHU5NjkzXHU5NjkxXHU5Njk3XHU5NmNlXHU5NmZhXHU5NmZkXHU5NmY4XHU5NmY1XHU5NzczXHU5Nzc3XHU5Nzc4XHU5NzcyXHU5ODBmXHU5ODBkXHU5ODBlXHU5OGFj''@;'; + put 'put ''XHU5OGY2XHU5OGY5XHU5OWFmXHU5OWIyXHU5OWIwXHU5OWI1XHU5YWFkXHU5YWFiXHU5YjViXHU5Y2VhXHU5Y2VkXHU5Y2U3XHU5ZTgwXHU5ZWZkXHU1MGU2XHU1MGQ0XHU1MGQ3XHU1MGU4XHU1MGYzXHU1MGRiXHU1MGVhXHU1MGRkXHU1MGU0XHU1MGQzXHU1MGVjXHU1MGYwXHU1MGVmXHU1''@;'; + put 'put ''MGUzXHU1MGUwIl0sWyJlMTQwIiwiXHU1MWQ4XHU1MjgwXHU1MjgxXHU1MmU5XHU1MmViXHU1MzMwXHU1M2FjXHU1NjI3XHU1NjE1XHU1NjBjXHU1NjEyXHU1NWZjXHU1NjBmXHU1NjFjXHU1NjAxXHU1NjEzXHU1NjAyXHU1NWZhXHU1NjFkXHU1NjA0XHU1NWZmXHU1NWY5XHU1ODg5XHU1ODdj''@;'; + put 'put ''XHU1ODkwXHU1ODk4XHU1ODg2XHU1ODgxXHU1ODdmXHU1ODc0XHU1ODhiXHU1ODdhXHU1ODg3XHU1ODkxXHU1ODhlXHU1ODc2XHU1ODgyXHU1ODg4XHU1ODdiXHU1ODk0XHU1ODhmXHU1OGZlXHU1OTZiXHU1YWRjXHU1YWVlXHU1YWU1XHU1YWQ1XHU1YWVhXHU1YWRhXHU1YWVkXHU1YWViXHU1''@;'; + put 'put ''YWYzXHU1YWUyXHU1YWUwXHU1YWRiXHU1YWVjXHU1YWRlXHU1YWRkXHU1YWQ5XHU1YWU4XHU1YWRmXHU1Yjc3XHU1YmUwIl0sWyJlMWExIiwiXHU1YmUzXHU1YzYzXHU1ZDgyXHU1ZDgwXHU1ZDdkXHU1ZDg2XHU1ZDdhXHU1ZDgxXHU1ZDc3XHU1ZDhhXHU1ZDg5XHU1ZDg4XHU1ZDdlXHU1ZDdj''@;'; + put 'put ''XHU1ZDhkXHU1ZDc5XHU1ZDdmXHU1ZTU4XHU1ZTU5XHU1ZTUzXHU1ZWQ4XHU1ZWQxXHU1ZWQ3XHU1ZWNlXHU1ZWRjXHU1ZWQ1XHU1ZWQ5XHU1ZWQyXHU1ZWQ0XHU1ZjQ0XHU1ZjQzXHU1ZjZmXHU1ZmI2XHU2MTJjXHU2MTI4XHU2MTQxXHU2MTVlXHU2MTcxXHU2MTczXHU2MTUyXHU2MTUzXHU2''@;'; + put 'put ''MTcyXHU2MTZjXHU2MTgwXHU2MTc0XHU2MTU0XHU2MTdhXHU2MTViXHU2MTY1XHU2MTNiXHU2MTZhXHU2MTYxXHU2MTU2XHU2MjI5XHU2MjI3XHU2MjJiXHU2NDJiXHU2NDRkXHU2NDViXHU2NDVkXHU2NDc0XHU2NDc2XHU2NDcyXHU2NDczXHU2NDdkXHU2NDc1XHU2NDY2XHU2NGE2XHU2NDRl''@;'; + put 'put ''XHU2NDgyXHU2NDVlXHU2NDVjXHU2NDRiXHU2NDUzXHU2NDYwXHU2NDUwXHU2NDdmXHU2NDNmXHU2NDZjXHU2NDZiXHU2NDU5XHU2NDY1XHU2NDc3XHU2NTczXHU2NWEwXHU2NmExXHU2NmEwXHU2NjlmXHU2NzA1XHU2NzA0XHU2NzIyXHU2OWIxXHU2OWI2XHU2OWM5Il0sWyJlMjQwIiwiXHU2''@;'; + put 'put ''OWEwXHU2OWNlXHU2OTk2XHU2OWIwXHU2OWFjXHU2OWJjXHU2OTkxXHU2OTk5XHU2OThlXHU2OWE3XHU2OThkXHU2OWE5XHU2OWJlXHU2OWFmXHU2OWJmXHU2OWM0XHU2OWJkXHU2OWE0XHU2OWQ0XHU2OWI5XHU2OWNhXHU2OTlhXHU2OWNmXHU2OWIzXHU2OTkzXHU2OWFhXHU2OWExXHU2OTll''@;'; + put 'put ''XHU2OWQ5XHU2OTk3XHU2OTkwXHU2OWMyXHU2OWI1XHU2OWE1XHU2OWM2XHU2YjRhXHU2YjRkXHU2YjRiXHU2YjllXHU2YjlmXHU2YmEwXHU2YmMzXHU2YmM0XHU2YmZlXHU2ZWNlXHU2ZWY1XHU2ZWYxXHU2ZjAzXHU2ZjI1XHU2ZWY4XHU2ZjM3XHU2ZWZiXHU2ZjJlXHU2ZjA5XHU2ZjRlXHU2''@;'; + put 'put ''ZjE5XHU2ZjFhXHU2ZjI3XHU2ZjE4XHU2ZjNiXHU2ZjEyXHU2ZWVkXHU2ZjBhIl0sWyJlMmExIiwiXHU2ZjM2XHU2ZjczXHU2ZWY5XHU2ZWVlXHU2ZjJkXHU2ZjQwXHU2ZjMwXHU2ZjNjXHU2ZjM1XHU2ZWViXHU2ZjA3XHU2ZjBlXHU2ZjQzXHU2ZjA1XHU2ZWZkXHU2ZWY2XHU2ZjM5XHU2ZjFj''@;'; + put 'put ''XHU2ZWZjXHU2ZjNhXHU2ZjFmXHU2ZjBkXHU2ZjFlXHU2ZjA4XHU2ZjIxXHU3MTg3XHU3MTkwXHU3MTg5XHU3MTgwXHU3MTg1XHU3MTgyXHU3MThmXHU3MTdiXHU3MTg2XHU3MTgxXHU3MTk3XHU3MjQ0XHU3MjUzXHU3Mjk3XHU3Mjk1XHU3MjkzXHU3MzQzXHU3MzRkXHU3MzUxXHU3MzRjXHU3''@;'; + put 'put ''NDYyXHU3NDczXHU3NDcxXHU3NDc1XHU3NDcyXHU3NDY3XHU3NDZlXHU3NTAwXHU3NTAyXHU3NTAzXHU3NTdkXHU3NTkwXHU3NjE2XHU3NjA4XHU3NjBjXHU3NjE1XHU3NjExXHU3NjBhXHU3NjE0XHU3NmI4XHU3NzgxXHU3NzdjXHU3Nzg1XHU3NzgyXHU3NzZlXHU3NzgwXHU3NzZmXHU3Nzdl''@;'; + put 'put ''XHU3NzgzXHU3OGIyXHU3OGFhXHU3OGI0XHU3OGFkXHU3OGE4XHU3ODdlXHU3OGFiXHU3ODllXHU3OGE1XHU3OGEwXHU3OGFjXHU3OGEyXHU3OGE0XHU3OTk4XHU3OThhXHU3OThiXHU3OTk2XHU3OTk1XHU3OTk0XHU3OTkzIl0sWyJlMzQwIiwiXHU3OTk3XHU3OTg4XHU3OTkyXHU3OTkwXHU3''@;'; + put 'put ''YTJiXHU3YTRhXHU3YTMwXHU3YTJmXHU3YTI4XHU3YTI2XHU3YWE4XHU3YWFiXHU3YWFjXHU3YWVlXHU3Yjg4XHU3YjljXHU3YjhhXHU3YjkxXHU3YjkwXHU3Yjk2XHU3YjhkXHU3YjhjXHU3YjliXHU3YjhlXHU3Yjg1XHU3Yjk4XHU1Mjg0XHU3Yjk5XHU3YmE0XHU3YjgyXHU3Y2JiXHU3Y2Jm''@;'; + put 'put ''XHU3Y2JjXHU3Y2JhXHU3ZGE3XHU3ZGI3XHU3ZGMyXHU3ZGEzXHU3ZGFhXHU3ZGMxXHU3ZGMwXHU3ZGM1XHU3ZDlkXHU3ZGNlXHU3ZGM0XHU3ZGM2XHU3ZGNiXHU3ZGNjXHU3ZGFmXHU3ZGI5XHU3ZDk2XHU3ZGJjXHU3ZDlmXHU3ZGE2XHU3ZGFlXHU3ZGE5XHU3ZGExXHU3ZGM5XHU3ZjczXHU3''@;'; + put 'put ''ZmUyXHU3ZmUzXHU3ZmU1XHU3ZmRlIl0sWyJlM2ExIiwiXHU4MDI0XHU4MDVkXHU4MDVjXHU4MTg5XHU4MTg2XHU4MTgzXHU4MTg3XHU4MThkXHU4MThjXHU4MThiXHU4MjE1XHU4NDk3XHU4NGE0XHU4NGExXHU4NDlmXHU4NGJhXHU4NGNlXHU4NGMyXHU4NGFjXHU4NGFlXHU4NGFiXHU4NGI5''@;'; + put 'put ''XHU4NGI0XHU4NGMxXHU4NGNkXHU4NGFhXHU4NDlhXHU4NGIxXHU4NGQwXHU4NDlkXHU4NGE3XHU4NGJiXHU4NGEyXHU4NDk0XHU4NGM3XHU4NGNjXHU4NDliXHU4NGE5XHU4NGFmXHU4NGE4XHU4NGQ2XHU4NDk4XHU4NGI2XHU4NGNmXHU4NGEwXHU4NGQ3XHU4NGQ0XHU4NGQyXHU4NGRiXHU4''@;'; + put 'put ''NGIwXHU4NDkxXHU4NjYxXHU4NzMzXHU4NzIzXHU4NzI4XHU4NzZiXHU4NzQwXHU4NzJlXHU4NzFlXHU4NzIxXHU4NzE5XHU4NzFiXHU4NzQzXHU4NzJjXHU4NzQxXHU4NzNlXHU4NzQ2XHU4NzIwXHU4NzMyXHU4NzJhXHU4NzJkXHU4NzNjXHU4NzEyXHU4NzNhXHU4NzMxXHU4NzM1XHU4NzQy''@;'; + put 'put ''XHU4NzI2XHU4NzI3XHU4NzM4XHU4NzI0XHU4NzFhXHU4NzMwXHU4NzExXHU4OGY3XHU4OGU3XHU4OGYxXHU4OGYyXHU4OGZhXHU4OGZlXHU4OGVlXHU4OGZjXHU4OGY2XHU4OGZiIl0sWyJlNDQwIiwiXHU4OGYwXHU4OGVjXHU4OGViXHU4OTlkXHU4OWExXHU4OTlmXHU4OTllXHU4OWU5XHU4''@;'; + put 'put ''OWViXHU4OWU4XHU4YWFiXHU4YTk5XHU4YThiXHU4YTkyXHU4YThmXHU4YTk2XHU4YzNkXHU4YzY4XHU4YzY5XHU4Y2Q1XHU4Y2NmXHU4Y2Q3XHU4ZDk2XHU4ZTA5XHU4ZTAyXHU4ZGZmXHU4ZTBkXHU4ZGZkXHU4ZTBhXHU4ZTAzXHU4ZTA3XHU4ZTA2XHU4ZTA1XHU4ZGZlXHU4ZTAwXHU4ZTA0''@;'; + put 'put ''XHU4ZjEwXHU4ZjExXHU4ZjBlXHU4ZjBkXHU5MTIzXHU5MTFjXHU5MTIwXHU5MTIyXHU5MTFmXHU5MTFkXHU5MTFhXHU5MTI0XHU5MTIxXHU5MTFiXHU5MTdhXHU5MTcyXHU5MTc5XHU5MTczXHU5MmE1XHU5MmE0XHU5Mjc2XHU5MjliXHU5MjdhXHU5MmEwXHU5Mjk0XHU5MmFhXHU5MjhkIl0s''@;'; + put 'put ''WyJlNGExIiwiXHU5MmE2XHU5MjlhXHU5MmFiXHU5Mjc5XHU5Mjk3XHU5MjdmXHU5MmEzXHU5MmVlXHU5MjhlXHU5MjgyXHU5Mjk1XHU5MmEyXHU5MjdkXHU5Mjg4XHU5MmExXHU5MjhhXHU5Mjg2XHU5MjhjXHU5Mjk5XHU5MmE3XHU5MjdlXHU5Mjg3XHU5MmE5XHU5MjlkXHU5MjhiXHU5MjJk''@;'; + put 'put ''XHU5NjllXHU5NmExXHU5NmZmXHU5NzU4XHU5NzdkXHU5NzdhXHU5NzdlXHU5NzgzXHU5NzgwXHU5NzgyXHU5NzdiXHU5Nzg0XHU5NzgxXHU5NzdmXHU5N2NlXHU5N2NkXHU5ODE2XHU5OGFkXHU5OGFlXHU5OTAyXHU5OTAwXHU5OTA3XHU5OTlkXHU5OTljXHU5OWMzXHU5OWI5XHU5OWJiXHU5''@;'; + put 'put ''OWJhXHU5OWMyXHU5OWJkXHU5OWM3XHU5YWIxXHU5YWUzXHU5YWU3XHU5YjNlXHU5YjNmXHU5YjYwXHU5YjYxXHU5YjVmXHU5Y2YxXHU5Y2YyXHU5Y2Y1XHU5ZWE3XHU1MGZmXHU1MTAzXHU1MTMwXHU1MGY4XHU1MTA2XHU1MTA3XHU1MGY2XHU1MGZlXHU1MTBiXHU1MTBjXHU1MGZkXHU1MTBh''@;'; + put 'put ''XHU1MjhiXHU1MjhjXHU1MmYxXHU1MmVmXHU1NjQ4XHU1NjQyXHU1NjRjXHU1NjM1XHU1NjQxXHU1NjRhXHU1NjQ5XHU1NjQ2XHU1NjU4Il0sWyJlNTQwIiwiXHU1NjVhXHU1NjQwXHU1NjMzXHU1NjNkXHU1NjJjXHU1NjNlXHU1NjM4XHU1NjJhXHU1NjNhXHU1NzFhXHU1OGFiXHU1ODlkXHU1''@;'; + put 'put ''OGIxXHU1OGEwXHU1OGEzXHU1OGFmXHU1OGFjXHU1OGE1XHU1OGExXHU1OGZmXHU1YWZmXHU1YWY0XHU1YWZkXHU1YWY3XHU1YWY2XHU1YjAzXHU1YWY4XHU1YjAyXHU1YWY5XHU1YjAxXHU1YjA3XHU1YjA1XHU1YjBmXHU1YzY3XHU1ZDk5XHU1ZDk3XHU1ZDlmXHU1ZDkyXHU1ZGEyXHU1ZDkz''@;'; + put 'put ''XHU1ZDk1XHU1ZGEwXHU1ZDljXHU1ZGExXHU1ZDlhXHU1ZDllXHU1ZTY5XHU1ZTVkXHU1ZTYwXHU1ZTVjXHU3ZGYzXHU1ZWRiXHU1ZWRlXHU1ZWUxXHU1ZjQ5XHU1ZmIyXHU2MThiXHU2MTgzXHU2MTc5XHU2MWIxXHU2MWIwXHU2MWEyXHU2MTg5Il0sWyJlNWExIiwiXHU2MTliXHU2MTkzXHU2''@;'; + put 'put ''MWFmXHU2MWFkXHU2MTlmXHU2MTkyXHU2MWFhXHU2MWExXHU2MThkXHU2MTY2XHU2MWIzXHU2MjJkXHU2NDZlXHU2NDcwXHU2NDk2XHU2NGEwXHU2NDg1XHU2NDk3XHU2NDljXHU2NDhmXHU2NDhiXHU2NDhhXHU2NDhjXHU2NGEzXHU2NDlmXHU2NDY4XHU2NGIxXHU2NDk4XHU2NTc2XHU2NTdh''@;'; + put 'put ''XHU2NTc5XHU2NTdiXHU2NWIyXHU2NWIzXHU2NmI1XHU2NmIwXHU2NmE5XHU2NmIyXHU2NmI3XHU2NmFhXHU2NmFmXHU2YTAwXHU2YTA2XHU2YTE3XHU2OWU1XHU2OWY4XHU2YTE1XHU2OWYxXHU2OWU0XHU2YTIwXHU2OWZmXHU2OWVjXHU2OWUyXHU2YTFiXHU2YTFkXHU2OWZlXHU2YTI3XHU2''@;'; + put 'put ''OWYyXHU2OWVlXHU2YTE0XHU2OWY3XHU2OWU3XHU2YTQwXHU2YTA4XHU2OWU2XHU2OWZiXHU2YTBkXHU2OWZjXHU2OWViXHU2YTA5XHU2YTA0XHU2YTE4XHU2YTI1XHU2YTBmXHU2OWY2XHU2YTI2XHU2YTA3XHU2OWY0XHU2YTE2XHU2YjUxXHU2YmE1XHU2YmEzXHU2YmEyXHU2YmE2XHU2YzAx''@;'; + put 'put ''XHU2YzAwXHU2YmZmXHU2YzAyXHU2ZjQxXHU2ZjI2XHU2ZjdlXHU2Zjg3XHU2ZmM2XHU2ZjkyIl0sWyJlNjQwIiwiXHU2ZjhkXHU2Zjg5XHU2ZjhjXHU2ZjYyXHU2ZjRmXHU2Zjg1XHU2ZjVhXHU2Zjk2XHU2Zjc2XHU2ZjZjXHU2ZjgyXHU2ZjU1XHU2ZjcyXHU2ZjUyXHU2ZjUwXHU2ZjU3XHU2''@;'; + put 'put ''Zjk0XHU2ZjkzXHU2ZjVkXHU2ZjAwXHU2ZjYxXHU2ZjZiXHU2ZjdkXHU2ZjY3XHU2ZjkwXHU2ZjUzXHU2ZjhiXHU2ZjY5XHU2ZjdmXHU2Zjk1XHU2ZjYzXHU2Zjc3XHU2ZjZhXHU2ZjdiXHU3MWIyXHU3MWFmXHU3MTliXHU3MWIwXHU3MWEwXHU3MTlhXHU3MWE5XHU3MWI1XHU3MTlkXHU3MWE1''@;'; + put 'put ''XHU3MTllXHU3MWE0XHU3MWExXHU3MWFhXHU3MTljXHU3MWE3XHU3MWIzXHU3Mjk4XHU3MjlhXHU3MzU4XHU3MzUyXHU3MzVlXHU3MzVmXHU3MzYwXHU3MzVkXHU3MzViXHU3MzYxXHU3MzVhXHU3MzU5Il0sWyJlNmExIiwiXHU3MzYyXHU3NDg3XHU3NDg5XHU3NDhhXHU3NDg2XHU3NDgxXHU3''@;'; + put 'put ''NDdkXHU3NDg1XHU3NDg4XHU3NDdjXHU3NDc5XHU3NTA4XHU3NTA3XHU3NTdlXHU3NjI1XHU3NjFlXHU3NjE5XHU3NjFkXHU3NjFjXHU3NjIzXHU3NjFhXHU3NjI4XHU3NjFiXHU3NjljXHU3NjlkXHU3NjllXHU3NjliXHU3NzhkXHU3NzhmXHU3Nzg5XHU3Nzg4XHU3OGNkXHU3OGJiXHU3OGNm''@;'; + put 'put ''XHU3OGNjXHU3OGQxXHU3OGNlXHU3OGQ0XHU3OGM4XHU3OGMzXHU3OGM0XHU3OGM5XHU3OTlhXHU3OWExXHU3OWEwXHU3OTljXHU3OWEyXHU3OTliXHU2Yjc2XHU3YTM5XHU3YWIyXHU3YWI0XHU3YWIzXHU3YmI3XHU3YmNiXHU3YmJlXHU3YmFjXHU3YmNlXHU3YmFmXHU3YmI5XHU3YmNhXHU3''@;'; + put 'put ''YmI1XHU3Y2M1XHU3Y2M4XHU3Y2NjXHU3Y2NiXHU3ZGY3XHU3ZGRiXHU3ZGVhXHU3ZGU3XHU3ZGQ3XHU3ZGUxXHU3ZTAzXHU3ZGZhXHU3ZGU2XHU3ZGY2XHU3ZGYxXHU3ZGYwXHU3ZGVlXHU3ZGRmXHU3Zjc2XHU3ZmFjXHU3ZmIwXHU3ZmFkXHU3ZmVkXHU3ZmViXHU3ZmVhXHU3ZmVjXHU3ZmU2''@;'; + put 'put ''XHU3ZmU4XHU4MDY0XHU4MDY3XHU4MWEzXHU4MTlmIl0sWyJlNzQwIiwiXHU4MTllXHU4MTk1XHU4MWEyXHU4MTk5XHU4MTk3XHU4MjE2XHU4MjRmXHU4MjUzXHU4MjUyXHU4MjUwXHU4MjRlXHU4MjUxXHU4NTI0XHU4NTNiXHU4NTBmXHU4NTAwXHU4NTI5XHU4NTBlXHU4NTA5XHU4NTBkXHU4''@;'; + put 'put ''NTFmXHU4NTBhXHU4NTI3XHU4NTFjXHU4NGZiXHU4NTJiXHU4NGZhXHU4NTA4XHU4NTBjXHU4NGY0XHU4NTJhXHU4NGYyXHU4NTE1XHU4NGY3XHU4NGViXHU4NGYzXHU4NGZjXHU4NTEyXHU4NGVhXHU4NGU5XHU4NTE2XHU4NGZlXHU4NTI4XHU4NTFkXHU4NTJlXHU4NTAyXHU4NGZkXHU4NTFl''@;'; + put 'put ''XHU4NGY2XHU4NTMxXHU4NTI2XHU4NGU3XHU4NGU4XHU4NGYwXHU4NGVmXHU4NGY5XHU4NTE4XHU4NTIwXHU4NTMwXHU4NTBiXHU4NTE5XHU4NTJmXHU4NjYyIl0sWyJlN2ExIiwiXHU4NzU2XHU4NzYzXHU4NzY0XHU4Nzc3XHU4N2UxXHU4NzczXHU4NzU4XHU4NzU0XHU4NzViXHU4NzUyXHU4''@;'; + put 'put ''NzYxXHU4NzVhXHU4NzUxXHU4NzVlXHU4NzZkXHU4NzZhXHU4NzUwXHU4NzRlXHU4NzVmXHU4NzVkXHU4NzZmXHU4NzZjXHU4NzdhXHU4NzZlXHU4NzVjXHU4NzY1XHU4NzRmXHU4NzdiXHU4Nzc1XHU4NzYyXHU4NzY3XHU4NzY5XHU4ODVhXHU4OTA1XHU4OTBjXHU4OTE0XHU4OTBiXHU4OTE3''@;'; + put 'put ''XHU4OTE4XHU4OTE5XHU4OTA2XHU4OTE2XHU4OTExXHU4OTBlXHU4OTA5XHU4OWEyXHU4OWE0XHU4OWEzXHU4OWVkXHU4OWYwXHU4OWVjXHU4YWNmXHU4YWM2XHU4YWI4XHU4YWQzXHU4YWQxXHU4YWQ0XHU4YWQ1XHU4YWJiXHU4YWQ3XHU4YWJlXHU4YWMwXHU4YWM1XHU4YWQ4XHU4YWMzXHU4''@;'; + put 'put ''YWJhXHU4YWJkXHU4YWQ5XHU4YzNlXHU4YzRkXHU4YzhmXHU4Y2U1XHU4Y2RmXHU4Y2Q5XHU4Y2U4XHU4Y2RhXHU4Y2RkXHU4Y2U3XHU4ZGEwXHU4ZDljXHU4ZGExXHU4ZDliXHU4ZTIwXHU4ZTIzXHU4ZTI1XHU4ZTI0XHU4ZTJlXHU4ZTE1XHU4ZTFiXHU4ZTE2XHU4ZTExXHU4ZTE5XHU4ZTI2''@;'; + put 'put ''XHU4ZTI3Il0sWyJlODQwIiwiXHU4ZTE0XHU4ZTEyXHU4ZTE4XHU4ZTEzXHU4ZTFjXHU4ZTE3XHU4ZTFhXHU4ZjJjXHU4ZjI0XHU4ZjE4XHU4ZjFhXHU4ZjIwXHU4ZjIzXHU4ZjE2XHU4ZjE3XHU5MDczXHU5MDcwXHU5MDZmXHU5MDY3XHU5MDZiXHU5MTJmXHU5MTJiXHU5MTI5XHU5MTJhXHU5''@;'; + put 'put ''MTMyXHU5MTI2XHU5MTJlXHU5MTg1XHU5MTg2XHU5MThhXHU5MTgxXHU5MTgyXHU5MTg0XHU5MTgwXHU5MmQwXHU5MmMzXHU5MmM0XHU5MmMwXHU5MmQ5XHU5MmI2XHU5MmNmXHU5MmYxXHU5MmRmXHU5MmQ4XHU5MmU5XHU5MmQ3XHU5MmRkXHU5MmNjXHU5MmVmXHU5MmMyXHU5MmU4XHU5MmNh''@;'; + put 'put ''XHU5MmM4XHU5MmNlXHU5MmU2XHU5MmNkXHU5MmQ1XHU5MmM5XHU5MmUwXHU5MmRlXHU5MmU3XHU5MmQxXHU5MmQzIl0sWyJlOGExIiwiXHU5MmI1XHU5MmUxXHU5MmM2XHU5MmI0XHU5NTdjXHU5NWFjXHU5NWFiXHU5NWFlXHU5NWIwXHU5NmE0XHU5NmEyXHU5NmQzXHU5NzA1XHU5NzA4XHU5''@;'; + put 'put ''NzAyXHU5NzVhXHU5NzhhXHU5NzhlXHU5Nzg4XHU5N2QwXHU5N2NmXHU5ODFlXHU5ODFkXHU5ODI2XHU5ODI5XHU5ODI4XHU5ODIwXHU5ODFiXHU5ODI3XHU5OGIyXHU5OTA4XHU5OGZhXHU5OTExXHU5OTE0XHU5OTE2XHU5OTE3XHU5OTE1XHU5OWRjXHU5OWNkXHU5OWNmXHU5OWQzXHU5OWQ0''@;'; + put 'put ''XHU5OWNlXHU5OWM5XHU5OWQ2XHU5OWQ4XHU5OWNiXHU5OWQ3XHU5OWNjXHU5YWIzXHU5YWVjXHU5YWViXHU5YWYzXHU5YWYyXHU5YWYxXHU5YjQ2XHU5YjQzXHU5YjY3XHU5Yjc0XHU5YjcxXHU5YjY2XHU5Yjc2XHU5Yjc1XHU5YjcwXHU5YjY4XHU5YjY0XHU5YjZjXHU5Y2ZjXHU5Y2ZhXHU5''@;'; + put 'put ''Y2ZkXHU5Y2ZmXHU5Y2Y3XHU5ZDA3XHU5ZDAwXHU5Y2Y5XHU5Y2ZiXHU5ZDA4XHU5ZDA1XHU5ZDA0XHU5ZTgzXHU5ZWQzXHU5ZjBmXHU5ZjEwXHU1MTFjXHU1MTEzXHU1MTE3XHU1MTFhXHU1MTExXHU1MWRlXHU1MzM0XHU1M2UxXHU1NjcwXHU1NjYwXHU1NjZlIl0sWyJlOTQwIiwiXHU1Njcz''@;'; + put 'put ''XHU1NjY2XHU1NjYzXHU1NjZkXHU1NjcyXHU1NjVlXHU1Njc3XHU1NzFjXHU1NzFiXHU1OGM4XHU1OGJkXHU1OGM5XHU1OGJmXHU1OGJhXHU1OGMyXHU1OGJjXHU1OGM2XHU1YjE3XHU1YjE5XHU1YjFiXHU1YjIxXHU1YjE0XHU1YjEzXHU1YjEwXHU1YjE2XHU1YjI4XHU1YjFhXHU1YjIwXHU1''@;'; + put 'put ''YjFlXHU1YmVmXHU1ZGFjXHU1ZGIxXHU1ZGE5XHU1ZGE3XHU1ZGI1XHU1ZGIwXHU1ZGFlXHU1ZGFhXHU1ZGE4XHU1ZGIyXHU1ZGFkXHU1ZGFmXHU1ZGI0XHU1ZTY3XHU1ZTY4XHU1ZTY2XHU1ZTZmXHU1ZWU5XHU1ZWU3XHU1ZWU2XHU1ZWU4XHU1ZWU1XHU1ZjRiXHU1ZmJjXHU2MTlkXHU2MWE4''@;'; + put 'put ''XHU2MTk2XHU2MWM1XHU2MWI0XHU2MWM2XHU2MWMxXHU2MWNjXHU2MWJhIl0sWyJlOWExIiwiXHU2MWJmXHU2MWI4XHU2MThjXHU2NGQ3XHU2NGQ2XHU2NGQwXHU2NGNmXHU2NGM5XHU2NGJkXHU2NDg5XHU2NGMzXHU2NGRiXHU2NGYzXHU2NGQ5XHU2NTMzXHU2NTdmXHU2NTdjXHU2NWEyXHU2''@;'; + put 'put ''NmM4XHU2NmJlXHU2NmMwXHU2NmNhXHU2NmNiXHU2NmNmXHU2NmJkXHU2NmJiXHU2NmJhXHU2NmNjXHU2NzIzXHU2YTM0XHU2YTY2XHU2YTQ5XHU2YTY3XHU2YTMyXHU2YTY4XHU2YTNlXHU2YTVkXHU2YTZkXHU2YTc2XHU2YTViXHU2YTUxXHU2YTI4XHU2YTVhXHU2YTNiXHU2YTNmXHU2YTQx''@;'; + put 'put ''XHU2YTZhXHU2YTY0XHU2YTUwXHU2YTRmXHU2YTU0XHU2YTZmXHU2YTY5XHU2YTYwXHU2YTNjXHU2YTVlXHU2YTU2XHU2YTU1XHU2YTRkXHU2YTRlXHU2YTQ2XHU2YjU1XHU2YjU0XHU2YjU2XHU2YmE3XHU2YmFhXHU2YmFiXHU2YmM4XHU2YmM3XHU2YzA0XHU2YzAzXHU2YzA2XHU2ZmFkXHU2''@;'; + put 'put ''ZmNiXHU2ZmEzXHU2ZmM3XHU2ZmJjXHU2ZmNlXHU2ZmM4XHU2ZjVlXHU2ZmM0XHU2ZmJkXHU2ZjllXHU2ZmNhXHU2ZmE4XHU3MDA0XHU2ZmE1XHU2ZmFlXHU2ZmJhXHU2ZmFjXHU2ZmFhXHU2ZmNmXHU2ZmJmXHU2ZmI4Il0sWyJlYTQwIiwiXHU2ZmEyXHU2ZmM5XHU2ZmFiXHU2ZmNkXHU2ZmFm''@;'; + put 'put ''XHU2ZmIyXHU2ZmIwXHU3MWM1XHU3MWMyXHU3MWJmXHU3MWI4XHU3MWQ2XHU3MWMwXHU3MWMxXHU3MWNiXHU3MWQ0XHU3MWNhXHU3MWM3XHU3MWNmXHU3MWJkXHU3MWQ4XHU3MWJjXHU3MWM2XHU3MWRhXHU3MWRiXHU3MjlkXHU3MjllXHU3MzY5XHU3MzY2XHU3MzY3XHU3MzZjXHU3MzY1XHU3''@;'; + put 'put ''MzZiXHU3MzZhXHU3NDdmXHU3NDlhXHU3NGEwXHU3NDk0XHU3NDkyXHU3NDk1XHU3NGExXHU3NTBiXHU3NTgwXHU3NjJmXHU3NjJkXHU3NjMxXHU3NjNkXHU3NjMzXHU3NjNjXHU3NjM1XHU3NjMyXHU3NjMwXHU3NmJiXHU3NmU2XHU3NzlhXHU3NzlkXHU3N2ExXHU3NzljXHU3NzliXHU3N2Ey''@;'; + put 'put ''XHU3N2EzXHU3Nzk1XHU3Nzk5Il0sWyJlYWExIiwiXHU3Nzk3XHU3OGRkXHU3OGU5XHU3OGU1XHU3OGVhXHU3OGRlXHU3OGUzXHU3OGRiXHU3OGUxXHU3OGUyXHU3OGVkXHU3OGRmXHU3OGUwXHU3OWE0XHU3YTQ0XHU3YTQ4XHU3YTQ3XHU3YWI2XHU3YWI4XHU3YWI1XHU3YWIxXHU3YWI3XHU3''@;'; + put 'put ''YmRlXHU3YmUzXHU3YmU3XHU3YmRkXHU3YmQ1XHU3YmU1XHU3YmRhXHU3YmU4XHU3YmY5XHU3YmQ0XHU3YmVhXHU3YmUyXHU3YmRjXHU3YmViXHU3YmQ4XHU3YmRmXHU3Y2QyXHU3Y2Q0XHU3Y2Q3XHU3Y2QwXHU3Y2QxXHU3ZTEyXHU3ZTIxXHU3ZTE3XHU3ZTBjXHU3ZTFmXHU3ZTIwXHU3ZTEz''@;'; + put 'put ''XHU3ZTBlXHU3ZTFjXHU3ZTE1XHU3ZTFhXHU3ZTIyXHU3ZTBiXHU3ZTBmXHU3ZTE2XHU3ZTBkXHU3ZTE0XHU3ZTI1XHU3ZTI0XHU3ZjQzXHU3ZjdiXHU3ZjdjXHU3ZjdhXHU3ZmIxXHU3ZmVmXHU4MDJhXHU4MDI5XHU4MDZjXHU4MWIxXHU4MWE2XHU4MWFlXHU4MWI5XHU4MWI1XHU4MWFiXHU4''@;'; + put 'put ''MWIwXHU4MWFjXHU4MWI0XHU4MWIyXHU4MWI3XHU4MWE3XHU4MWYyXHU4MjU1XHU4MjU2XHU4MjU3XHU4NTU2XHU4NTQ1XHU4NTZiXHU4NTRkXHU4NTUzXHU4NTYxXHU4NTU4Il0sWyJlYjQwIiwiXHU4NTQwXHU4NTQ2XHU4NTY0XHU4NTQxXHU4NTYyXHU4NTQ0XHU4NTUxXHU4NTQ3XHU4NTYz''@;'; + put 'put ''XHU4NTNlXHU4NTViXHU4NTcxXHU4NTRlXHU4NTZlXHU4NTc1XHU4NTU1XHU4NTY3XHU4NTYwXHU4NThjXHU4NTY2XHU4NTVkXHU4NTU0XHU4NTY1XHU4NTZjXHU4NjYzXHU4NjY1XHU4NjY0XHU4NzliXHU4NzhmXHU4Nzk3XHU4NzkzXHU4NzkyXHU4Nzg4XHU4NzgxXHU4Nzk2XHU4Nzk4XHU4''@;'; + put 'put ''Nzc5XHU4Nzg3XHU4N2EzXHU4Nzg1XHU4NzkwXHU4NzkxXHU4NzlkXHU4Nzg0XHU4Nzk0XHU4NzljXHU4NzlhXHU4Nzg5XHU4OTFlXHU4OTI2XHU4OTMwXHU4OTJkXHU4OTJlXHU4OTI3XHU4OTMxXHU4OTIyXHU4OTI5XHU4OTIzXHU4OTJmXHU4OTJjXHU4OTFmXHU4OWYxXHU4YWUwIl0sWyJl''@;'; + put 'put ''YmExIiwiXHU4YWUyXHU4YWYyXHU4YWY0XHU4YWY1XHU4YWRkXHU4YjE0XHU4YWU0XHU4YWRmXHU4YWYwXHU4YWM4XHU4YWRlXHU4YWUxXHU4YWU4XHU4YWZmXHU4YWVmXHU4YWZiXHU4YzkxXHU4YzkyXHU4YzkwXHU4Y2Y1XHU4Y2VlXHU4Y2YxXHU4Y2YwXHU4Y2YzXHU4ZDZjXHU4ZDZlXHU4''@;'; + put 'put ''ZGE1XHU4ZGE3XHU4ZTMzXHU4ZTNlXHU4ZTM4XHU4ZTQwXHU4ZTQ1XHU4ZTM2XHU4ZTNjXHU4ZTNkXHU4ZTQxXHU4ZTMwXHU4ZTNmXHU4ZWJkXHU4ZjM2XHU4ZjJlXHU4ZjM1XHU4ZjMyXHU4ZjM5XHU4ZjM3XHU4ZjM0XHU5MDc2XHU5MDc5XHU5MDdiXHU5MDg2XHU5MGZhXHU5MTMzXHU5MTM1''@;'; + put 'put ''XHU5MTM2XHU5MTkzXHU5MTkwXHU5MTkxXHU5MThkXHU5MThmXHU5MzI3XHU5MzFlXHU5MzA4XHU5MzFmXHU5MzA2XHU5MzBmXHU5MzdhXHU5MzM4XHU5MzNjXHU5MzFiXHU5MzIzXHU5MzEyXHU5MzAxXHU5MzQ2XHU5MzJkXHU5MzBlXHU5MzBkXHU5MmNiXHU5MzFkXHU5MmZhXHU5MzI1XHU5''@;'; + put 'put ''MzEzXHU5MmY5XHU5MmY3XHU5MzM0XHU5MzAyXHU5MzI0XHU5MmZmXHU5MzI5XHU5MzM5XHU5MzM1XHU5MzJhXHU5MzE0XHU5MzBjIl0sWyJlYzQwIiwiXHU5MzBiXHU5MmZlXHU5MzA5XHU5MzAwXHU5MmZiXHU5MzE2XHU5NWJjXHU5NWNkXHU5NWJlXHU5NWI5XHU5NWJhXHU5NWI2XHU5NWJm''@;'; + put 'put ''XHU5NWI1XHU5NWJkXHU5NmE5XHU5NmQ0XHU5NzBiXHU5NzEyXHU5NzEwXHU5Nzk5XHU5Nzk3XHU5Nzk0XHU5N2YwXHU5N2Y4XHU5ODM1XHU5ODJmXHU5ODMyXHU5OTI0XHU5OTFmXHU5OTI3XHU5OTI5XHU5OTllXHU5OWVlXHU5OWVjXHU5OWU1XHU5OWU0XHU5OWYwXHU5OWUzXHU5OWVhXHU5''@;'; + put 'put ''OWU5XHU5OWU3XHU5YWI5XHU5YWJmXHU5YWI0XHU5YWJiXHU5YWY2XHU5YWZhXHU5YWY5XHU5YWY3XHU5YjMzXHU5YjgwXHU5Yjg1XHU5Yjg3XHU5YjdjXHU5YjdlXHU5YjdiXHU5YjgyXHU5YjkzXHU5YjkyXHU5YjkwXHU5YjdhXHU5Yjk1Il0sWyJlY2ExIiwiXHU5YjdkXHU5Yjg4XHU5ZDI1''@;'; + put 'put ''XHU5ZDE3XHU5ZDIwXHU5ZDFlXHU5ZDE0XHU5ZDI5XHU5ZDFkXHU5ZDE4XHU5ZDIyXHU5ZDEwXHU5ZDE5XHU5ZDFmXHU5ZTg4XHU5ZTg2XHU5ZTg3XHU5ZWFlXHU5ZWFkXHU5ZWQ1XHU5ZWQ2XHU5ZWZhXHU5ZjEyXHU5ZjNkXHU1MTI2XHU1MTI1XHU1MTIyXHU1MTI0XHU1MTIwXHU1MTI5XHU1''@;'; + put 'put ''MmY0XHU1NjkzXHU1NjhjXHU1NjhkXHU1Njg2XHU1Njg0XHU1NjgzXHU1NjdlXHU1NjgyXHU1NjdmXHU1NjgxXHU1OGQ2XHU1OGQ0XHU1OGNmXHU1OGQyXHU1YjJkXHU1YjI1XHU1YjMyXHU1YjIzXHU1YjJjXHU1YjI3XHU1YjI2XHU1YjJmXHU1YjJlXHU1YjdiXHU1YmYxXHU1YmYyXHU1ZGI3''@;'; + put 'put ''XHU1ZTZjXHU1ZTZhXHU1ZmJlXHU1ZmJiXHU2MWMzXHU2MWI1XHU2MWJjXHU2MWU3XHU2MWUwXHU2MWU1XHU2MWU0XHU2MWU4XHU2MWRlXHU2NGVmXHU2NGU5XHU2NGUzXHU2NGViXHU2NGU0XHU2NGU4XHU2NTgxXHU2NTgwXHU2NWI2XHU2NWRhXHU2NmQyXHU2YThkXHU2YTk2XHU2YTgxXHU2''@;'; + put 'put ''YWE1XHU2YTg5XHU2YTlmXHU2YTliXHU2YWExXHU2YTllXHU2YTg3XHU2YTkzXHU2YThlIl0sWyJlZDQwIiwiXHU2YTk1XHU2YTgzXHU2YWE4XHU2YWE0XHU2YTkxXHU2YTdmXHU2YWE2XHU2YTlhXHU2YTg1XHU2YThjXHU2YTkyXHU2YjViXHU2YmFkXHU2YzA5XHU2ZmNjXHU2ZmE5XHU2ZmY0''@;'; + put 'put ''XHU2ZmQ0XHU2ZmUzXHU2ZmRjXHU2ZmVkXHU2ZmU3XHU2ZmU2XHU2ZmRlXHU2ZmYyXHU2ZmRkXHU2ZmUyXHU2ZmU4XHU3MWUxXHU3MWYxXHU3MWU4XHU3MWYyXHU3MWU0XHU3MWYwXHU3MWUyXHU3MzczXHU3MzZlXHU3MzZmXHU3NDk3XHU3NGIyXHU3NGFiXHU3NDkwXHU3NGFhXHU3NGFkXHU3''@;'; + put 'put ''NGIxXHU3NGE1XHU3NGFmXHU3NTEwXHU3NTExXHU3NTEyXHU3NTBmXHU3NTg0XHU3NjQzXHU3NjQ4XHU3NjQ5XHU3NjQ3XHU3NmE0XHU3NmU5XHU3N2I1XHU3N2FiXHU3N2IyXHU3N2I3XHU3N2I2Il0sWyJlZGExIiwiXHU3N2I0XHU3N2IxXHU3N2E4XHU3N2YwXHU3OGYzXHU3OGZkXHU3OTAy''@;'; + put 'put ''XHU3OGZiXHU3OGZjXHU3OGYyXHU3OTA1XHU3OGY5XHU3OGZlXHU3OTA0XHU3OWFiXHU3OWE4XHU3YTVjXHU3YTViXHU3YTU2XHU3YTU4XHU3YTU0XHU3YTVhXHU3YWJlXHU3YWMwXHU3YWMxXHU3YzA1XHU3YzBmXHU3YmYyXHU3YzAwXHU3YmZmXHU3YmZiXHU3YzBlXHU3YmY0XHU3YzBiXHU3''@;'; + put 'put ''YmYzXHU3YzAyXHU3YzA5XHU3YzAzXHU3YzAxXHU3YmY4XHU3YmZkXHU3YzA2XHU3YmYwXHU3YmYxXHU3YzEwXHU3YzBhXHU3Y2U4XHU3ZTJkXHU3ZTNjXHU3ZTQyXHU3ZTMzXHU5ODQ4XHU3ZTM4XHU3ZTJhXHU3ZTQ5XHU3ZTQwXHU3ZTQ3XHU3ZTI5XHU3ZTRjXHU3ZTMwXHU3ZTNiXHU3ZTM2''@;'; + put 'put ''XHU3ZTQ0XHU3ZTNhXHU3ZjQ1XHU3ZjdmXHU3ZjdlXHU3ZjdkXHU3ZmY0XHU3ZmYyXHU4MDJjXHU4MWJiXHU4MWM0XHU4MWNjXHU4MWNhXHU4MWM1XHU4MWM3XHU4MWJjXHU4MWU5XHU4MjViXHU4MjVhXHU4MjVjXHU4NTgzXHU4NTgwXHU4NThmXHU4NWE3XHU4NTk1XHU4NWEwXHU4NThiXHU4''@;'; + put 'put ''NWEzXHU4NTdiXHU4NWE0XHU4NTlhXHU4NTllIl0sWyJlZTQwIiwiXHU4NTc3XHU4NTdjXHU4NTg5XHU4NWExXHU4NTdhXHU4NTc4XHU4NTU3XHU4NThlXHU4NTk2XHU4NTg2XHU4NThkXHU4NTk5XHU4NTlkXHU4NTgxXHU4NWEyXHU4NTgyXHU4NTg4XHU4NTg1XHU4NTc5XHU4NTc2XHU4NTk4''@;'; + put 'put ''XHU4NTkwXHU4NTlmXHU4NjY4XHU4N2JlXHU4N2FhXHU4N2FkXHU4N2M1XHU4N2IwXHU4N2FjXHU4N2I5XHU4N2I1XHU4N2JjXHU4N2FlXHU4N2M5XHU4N2MzXHU4N2MyXHU4N2NjXHU4N2I3XHU4N2FmXHU4N2M0XHU4N2NhXHU4N2I0XHU4N2I2XHU4N2JmXHU4N2I4XHU4N2JkXHU4N2RlXHU4''@;'; + put 'put ''N2IyXHU4OTM1XHU4OTMzXHU4OTNjXHU4OTNlXHU4OTQxXHU4OTUyXHU4OTM3XHU4OTQyXHU4OWFkXHU4OWFmXHU4OWFlXHU4OWYyXHU4OWYzXHU4YjFlIl0sWyJlZWExIiwiXHU4YjE4XHU4YjE2XHU4YjExXHU4YjA1XHU4YjBiXHU4YjIyXHU4YjBmXHU4YjEyXHU4YjE1XHU4YjA3XHU4YjBk''@;'; + put 'put ''XHU4YjA4XHU4YjA2XHU4YjFjXHU4YjEzXHU4YjFhXHU4YzRmXHU4YzcwXHU4YzcyXHU4YzcxXHU4YzZmXHU4Yzk1XHU4Yzk0XHU4Y2Y5XHU4ZDZmXHU4ZTRlXHU4ZTRkXHU4ZTUzXHU4ZTUwXHU4ZTRjXHU4ZTQ3XHU4ZjQzXHU4ZjQwXHU5MDg1XHU5MDdlXHU5MTM4XHU5MTlhXHU5MWEyXHU5''@;'; + put 'put ''MTliXHU5MTk5XHU5MTlmXHU5MWExXHU5MTlkXHU5MWEwXHU5M2ExXHU5MzgzXHU5M2FmXHU5MzY0XHU5MzU2XHU5MzQ3XHU5MzdjXHU5MzU4XHU5MzVjXHU5Mzc2XHU5MzQ5XHU5MzUwXHU5MzUxXHU5MzYwXHU5MzZkXHU5MzhmXHU5MzRjXHU5MzZhXHU5Mzc5XHU5MzU3XHU5MzU1XHU5MzUy''@;'; + put 'put ''XHU5MzRmXHU5MzcxXHU5Mzc3XHU5MzdiXHU5MzYxXHU5MzVlXHU5MzYzXHU5MzY3XHU5MzgwXHU5MzRlXHU5MzU5XHU5NWM3XHU5NWMwXHU5NWM5XHU5NWMzXHU5NWM1XHU5NWI3XHU5NmFlXHU5NmIwXHU5NmFjXHU5NzIwXHU5NzFmXHU5NzE4XHU5NzFkXHU5NzE5XHU5NzlhXHU5N2ExXHU5''@;'; + put 'put ''NzljIl0sWyJlZjQwIiwiXHU5NzllXHU5NzlkXHU5N2Q1XHU5N2Q0XHU5N2YxXHU5ODQxXHU5ODQ0XHU5ODRhXHU5ODQ5XHU5ODQ1XHU5ODQzXHU5OTI1XHU5OTJiXHU5OTJjXHU5OTJhXHU5OTMzXHU5OTMyXHU5OTJmXHU5OTJkXHU5OTMxXHU5OTMwXHU5OTk4XHU5OWEzXHU5OWExXHU5YTAy''@;'; + put 'put ''XHU5OWZhXHU5OWY0XHU5OWY3XHU5OWY5XHU5OWY4XHU5OWY2XHU5OWZiXHU5OWZkXHU5OWZlXHU5OWZjXHU5YTAzXHU5YWJlXHU5YWZlXHU5YWZkXHU5YjAxXHU5YWZjXHU5YjQ4XHU5YjlhXHU5YmE4XHU5YjllXHU5YjliXHU5YmE2XHU5YmExXHU5YmE1XHU5YmE0XHU5Yjg2XHU5YmEyXHU5''@;'; + put 'put ''YmEwXHU5YmFmXHU5ZDMzXHU5ZDQxXHU5ZDY3XHU5ZDM2XHU5ZDJlXHU5ZDJmXHU5ZDMxXHU5ZDM4XHU5ZDMwIl0sWyJlZmExIiwiXHU5ZDQ1XHU5ZDQyXHU5ZDQzXHU5ZDNlXHU5ZDM3XHU5ZDQwXHU5ZDNkXHU3ZmY1XHU5ZDJkXHU5ZThhXHU5ZTg5XHU5ZThkXHU5ZWIwXHU5ZWM4XHU5ZWRh''@;'; + put 'put ''XHU5ZWZiXHU5ZWZmXHU5ZjI0XHU5ZjIzXHU5ZjIyXHU5ZjU0XHU5ZmEwXHU1MTMxXHU1MTJkXHU1MTJlXHU1Njk4XHU1NjljXHU1Njk3XHU1NjlhXHU1NjlkXHU1Njk5XHU1OTcwXHU1YjNjXHU1YzY5XHU1YzZhXHU1ZGMwXHU1ZTZkXHU1ZTZlXHU2MWQ4XHU2MWRmXHU2MWVkXHU2MWVlXHU2''@;'; + put 'put ''MWYxXHU2MWVhXHU2MWYwXHU2MWViXHU2MWQ2XHU2MWU5XHU2NGZmXHU2NTA0XHU2NGZkXHU2NGY4XHU2NTAxXHU2NTAzXHU2NGZjXHU2NTk0XHU2NWRiXHU2NmRhXHU2NmRiXHU2NmQ4XHU2YWM1XHU2YWI5XHU2YWJkXHU2YWUxXHU2YWM2XHU2YWJhXHU2YWI2XHU2YWI3XHU2YWM3XHU2YWI0''@;'; + put 'put ''XHU2YWFkXHU2YjVlXHU2YmM5XHU2YzBiXHU3MDA3XHU3MDBjXHU3MDBkXHU3MDAxXHU3MDA1XHU3MDE0XHU3MDBlXHU2ZmZmXHU3MDAwXHU2ZmZiXHU3MDI2XHU2ZmZjXHU2ZmY3XHU3MDBhXHU3MjAxXHU3MWZmXHU3MWY5XHU3MjAzXHU3MWZkXHU3Mzc2Il0sWyJmMDQwIiwiXHU3NGI4XHU3''@;'; + put 'put ''NGMwXHU3NGI1XHU3NGMxXHU3NGJlXHU3NGI2XHU3NGJiXHU3NGMyXHU3NTE0XHU3NTEzXHU3NjVjXHU3NjY0XHU3NjU5XHU3NjUwXHU3NjUzXHU3NjU3XHU3NjVhXHU3NmE2XHU3NmJkXHU3NmVjXHU3N2MyXHU3N2JhXHU3OGZmXHU3OTBjXHU3OTEzXHU3OTE0XHU3OTA5XHU3OTEwXHU3OTEy''@;'; + put 'put ''XHU3OTExXHU3OWFkXHU3OWFjXHU3YTVmXHU3YzFjXHU3YzI5XHU3YzE5XHU3YzIwXHU3YzFmXHU3YzJkXHU3YzFkXHU3YzI2XHU3YzI4XHU3YzIyXHU3YzI1XHU3YzMwXHU3ZTVjXHU3ZTUwXHU3ZTU2XHU3ZTYzXHU3ZTU4XHU3ZTYyXHU3ZTVmXHU3ZTUxXHU3ZTYwXHU3ZTU3XHU3ZTUzXHU3''@;'; + put 'put ''ZmI1XHU3ZmIzXHU3ZmY3XHU3ZmY4XHU4MDc1XHU4MWQxXHU4MWQyIl0sWyJmMGExIiwiXHU4MWQwXHU4MjVmXHU4MjVlXHU4NWI0XHU4NWM2XHU4NWMwXHU4NWMzXHU4NWMyXHU4NWIzXHU4NWI1XHU4NWJkXHU4NWM3XHU4NWM0XHU4NWJmXHU4NWNiXHU4NWNlXHU4NWM4XHU4NWM1XHU4NWIx''@;'; + put 'put ''XHU4NWI2XHU4NWQyXHU4NjI0XHU4NWI4XHU4NWI3XHU4NWJlXHU4NjY5XHU4N2U3XHU4N2U2XHU4N2UyXHU4N2RiXHU4N2ViXHU4N2VhXHU4N2U1XHU4N2RmXHU4N2YzXHU4N2U0XHU4N2Q0XHU4N2RjXHU4N2QzXHU4N2VkXHU4N2Q4XHU4N2UzXHU4N2E0XHU4N2Q3XHU4N2Q5XHU4ODAxXHU4''@;'; + put 'put ''N2Y0XHU4N2U4XHU4N2RkXHU4OTUzXHU4OTRiXHU4OTRmXHU4OTRjXHU4OTQ2XHU4OTUwXHU4OTUxXHU4OTQ5XHU4YjJhXHU4YjI3XHU4YjIzXHU4YjMzXHU4YjMwXHU4YjM1XHU4YjQ3XHU4YjJmXHU4YjNjXHU4YjNlXHU4YjMxXHU4YjI1XHU4YjM3XHU4YjI2XHU4YjM2XHU4YjJlXHU4YjI0''@;'; + put 'put ''XHU4YjNiXHU4YjNkXHU4YjNhXHU4YzQyXHU4Yzc1XHU4Yzk5XHU4Yzk4XHU4Yzk3XHU4Y2ZlXHU4ZDA0XHU4ZDAyXHU4ZDAwXHU4ZTVjXHU4ZTYyXHU4ZTYwXHU4ZTU3XHU4ZTU2XHU4ZTVlXHU4ZTY1XHU4ZTY3Il0sWyJmMTQwIiwiXHU4ZTViXHU4ZTVhXHU4ZTYxXHU4ZTVkXHU4ZTY5XHU4''@;'; + put 'put ''ZTU0XHU4ZjQ2XHU4ZjQ3XHU4ZjQ4XHU4ZjRiXHU5MTI4XHU5MTNhXHU5MTNiXHU5MTNlXHU5MWE4XHU5MWE1XHU5MWE3XHU5MWFmXHU5MWFhXHU5M2I1XHU5MzhjXHU5MzkyXHU5M2I3XHU5MzliXHU5MzlkXHU5Mzg5XHU5M2E3XHU5MzhlXHU5M2FhXHU5MzllXHU5M2E2XHU5Mzk1XHU5Mzg4''@;'; + put 'put ''XHU5Mzk5XHU5MzlmXHU5MzhkXHU5M2IxXHU5MzkxXHU5M2IyXHU5M2E0XHU5M2E4XHU5M2I0XHU5M2EzXHU5M2E1XHU5NWQyXHU5NWQzXHU5NWQxXHU5NmIzXHU5NmQ3XHU5NmRhXHU1ZGMyXHU5NmRmXHU5NmQ4XHU5NmRkXHU5NzIzXHU5NzIyXHU5NzI1XHU5N2FjXHU5N2FlXHU5N2E4XHU5''@;'; + put 'put ''N2FiXHU5N2E0XHU5N2FhIl0sWyJmMWExIiwiXHU5N2EyXHU5N2E1XHU5N2Q3XHU5N2Q5XHU5N2Q2XHU5N2Q4XHU5N2ZhXHU5ODUwXHU5ODUxXHU5ODUyXHU5OGI4XHU5OTQxXHU5OTNjXHU5OTNhXHU5YTBmXHU5YTBiXHU5YTA5XHU5YTBkXHU5YTA0XHU5YTExXHU5YTBhXHU5YTA1XHU5YTA3''@;'; + put 'put ''XHU5YTA2XHU5YWMwXHU5YWRjXHU5YjA4XHU5YjA0XHU5YjA1XHU5YjI5XHU5YjM1XHU5YjRhXHU5YjRjXHU5YjRiXHU5YmM3XHU5YmM2XHU5YmMzXHU5YmJmXHU5YmMxXHU5YmI1XHU5YmI4XHU5YmQzXHU5YmI2XHU5YmM0XHU5YmI5XHU5YmJkXHU5ZDVjXHU5ZDUzXHU5ZDRmXHU5ZDRhXHU5''@;'; + put 'put ''ZDViXHU5ZDRiXHU5ZDU5XHU5ZDU2XHU5ZDRjXHU5ZDU3XHU5ZDUyXHU5ZDU0XHU5ZDVmXHU5ZDU4XHU5ZDVhXHU5ZThlXHU5ZThjXHU5ZWRmXHU5ZjAxXHU5ZjAwXHU5ZjE2XHU5ZjI1XHU5ZjJiXHU5ZjJhXHU5ZjI5XHU5ZjI4XHU5ZjRjXHU5ZjU1XHU1MTM0XHU1MTM1XHU1Mjk2XHU1MmY3''@;'; + put 'put ''XHU1M2I0XHU1NmFiXHU1NmFkXHU1NmE2XHU1NmE3XHU1NmFhXHU1NmFjXHU1OGRhXHU1OGRkXHU1OGRiXHU1OTEyXHU1YjNkXHU1YjNlXHU1YjNmXHU1ZGMzXHU1ZTcwIl0sWyJmMjQwIiwiXHU1ZmJmXHU2MWZiXHU2NTA3XHU2NTEwXHU2NTBkXHU2NTA5XHU2NTBjXHU2NTBlXHU2NTg0XHU2''@;'; + put 'put ''NWRlXHU2NWRkXHU2NmRlXHU2YWU3XHU2YWUwXHU2YWNjXHU2YWQxXHU2YWQ5XHU2YWNiXHU2YWRmXHU2YWRjXHU2YWQwXHU2YWViXHU2YWNmXHU2YWNkXHU2YWRlXHU2YjYwXHU2YmIwXHU2YzBjXHU3MDE5XHU3MDI3XHU3MDIwXHU3MDE2XHU3MDJiXHU3MDIxXHU3MDIyXHU3MDIzXHU3MDI5''@;'; + put 'put ''XHU3MDE3XHU3MDI0XHU3MDFjXHU3MDJhXHU3MjBjXHU3MjBhXHU3MjA3XHU3MjAyXHU3MjA1XHU3MmE1XHU3MmE2XHU3MmE0XHU3MmEzXHU3MmExXHU3NGNiXHU3NGM1XHU3NGI3XHU3NGMzXHU3NTE2XHU3NjYwXHU3N2M5XHU3N2NhXHU3N2M0XHU3N2YxXHU3OTFkXHU3OTFiIl0sWyJmMmEx''@;'; + put 'put ''IiwiXHU3OTIxXHU3OTFjXHU3OTE3XHU3OTFlXHU3OWIwXHU3YTY3XHU3YTY4XHU3YzMzXHU3YzNjXHU3YzM5XHU3YzJjXHU3YzNiXHU3Y2VjXHU3Y2VhXHU3ZTc2XHU3ZTc1XHU3ZTc4XHU3ZTcwXHU3ZTc3XHU3ZTZmXHU3ZTdhXHU3ZTcyXHU3ZTc0XHU3ZTY4XHU3ZjRiXHU3ZjRhXHU3Zjgz''@;'; + put 'put ''XHU3Zjg2XHU3ZmI3XHU3ZmZkXHU3ZmZlXHU4MDc4XHU4MWQ3XHU4MWQ1XHU4MjY0XHU4MjYxXHU4MjYzXHU4NWViXHU4NWYxXHU4NWVkXHU4NWQ5XHU4NWUxXHU4NWU4XHU4NWRhXHU4NWQ3XHU4NWVjXHU4NWYyXHU4NWY4XHU4NWQ4XHU4NWRmXHU4NWUzXHU4NWRjXHU4NWQxXHU4NWYwXHU4''@;'; + put 'put ''NWU2XHU4NWVmXHU4NWRlXHU4NWUyXHU4ODAwXHU4N2ZhXHU4ODAzXHU4N2Y2XHU4N2Y3XHU4ODA5XHU4ODBjXHU4ODBiXHU4ODA2XHU4N2ZjXHU4ODA4XHU4N2ZmXHU4ODBhXHU4ODAyXHU4OTYyXHU4OTVhXHU4OTViXHU4OTU3XHU4OTYxXHU4OTVjXHU4OTU4XHU4OTVkXHU4OTU5XHU4OTg4''@;'; + put 'put ''XHU4OWI3XHU4OWI2XHU4OWY2XHU4YjUwXHU4YjQ4XHU4YjRhXHU4YjQwXHU4YjUzXHU4YjU2XHU4YjU0XHU4YjRiXHU4YjU1Il0sWyJmMzQwIiwiXHU4YjUxXHU4YjQyXHU4YjUyXHU4YjU3XHU4YzQzXHU4Yzc3XHU4Yzc2XHU4YzlhXHU4ZDA2XHU4ZDA3XHU4ZDA5XHU4ZGFjXHU4ZGFhXHU4''@;'; + put 'put ''ZGFkXHU4ZGFiXHU4ZTZkXHU4ZTc4XHU4ZTczXHU4ZTZhXHU4ZTZmXHU4ZTdiXHU4ZWMyXHU4ZjUyXHU4ZjUxXHU4ZjRmXHU4ZjUwXHU4ZjUzXHU4ZmI0XHU5MTQwXHU5MTNmXHU5MWIwXHU5MWFkXHU5M2RlXHU5M2M3XHU5M2NmXHU5M2MyXHU5M2RhXHU5M2QwXHU5M2Y5XHU5M2VjXHU5M2Nj''@;'; + put 'put ''XHU5M2Q5XHU5M2E5XHU5M2U2XHU5M2NhXHU5M2Q0XHU5M2VlXHU5M2UzXHU5M2Q1XHU5M2M0XHU5M2NlXHU5M2MwXHU5M2QyXHU5M2U3XHU5NTdkXHU5NWRhXHU5NWRiXHU5NmUxXHU5NzI5XHU5NzJiXHU5NzJjXHU5NzI4XHU5NzI2Il0sWyJmM2ExIiwiXHU5N2IzXHU5N2I3XHU5N2I2XHU5''@;'; + put 'put ''N2RkXHU5N2RlXHU5N2RmXHU5ODVjXHU5ODU5XHU5ODVkXHU5ODU3XHU5OGJmXHU5OGJkXHU5OGJiXHU5OGJlXHU5OTQ4XHU5OTQ3XHU5OTQzXHU5OWE2XHU5OWE3XHU5YTFhXHU5YTE1XHU5YTI1XHU5YTFkXHU5YTI0XHU5YTFiXHU5YTIyXHU5YTIwXHU5YTI3XHU5YTIzXHU5YTFlXHU5YTFj''@;'; + put 'put ''XHU5YTE0XHU5YWMyXHU5YjBiXHU5YjBhXHU5YjBlXHU5YjBjXHU5YjM3XHU5YmVhXHU5YmViXHU5YmUwXHU5YmRlXHU5YmU0XHU5YmU2XHU5YmUyXHU5YmYwXHU5YmQ0XHU5YmQ3XHU5YmVjXHU5YmRjXHU5YmQ5XHU5YmU1XHU5YmQ1XHU5YmUxXHU5YmRhXHU5ZDc3XHU5ZDgxXHU5ZDhhXHU5''@;'; + put 'put ''ZDg0XHU5ZDg4XHU5ZDcxXHU5ZDgwXHU5ZDc4XHU5ZDg2XHU5ZDhiXHU5ZDhjXHU5ZDdkXHU5ZDZiXHU5ZDc0XHU5ZDc1XHU5ZDcwXHU5ZDY5XHU5ZDg1XHU5ZDczXHU5ZDdiXHU5ZDgyXHU5ZDZmXHU5ZDc5XHU5ZDdmXHU5ZDg3XHU5ZDY4XHU5ZTk0XHU5ZTkxXHU5ZWMwXHU5ZWZjXHU5ZjJk''@;'; + put 'put ''XHU5ZjQwXHU5ZjQxXHU5ZjRkXHU5ZjU2XHU5ZjU3XHU5ZjU4XHU1MzM3XHU1NmIyIl0sWyJmNDQwIiwiXHU1NmI1XHU1NmIzXHU1OGUzXHU1YjQ1XHU1ZGM2XHU1ZGM3XHU1ZWVlXHU1ZWVmXHU1ZmMwXHU1ZmMxXHU2MWY5XHU2NTE3XHU2NTE2XHU2NTE1XHU2NTEzXHU2NWRmXHU2NmU4XHU2''@;'; + put 'put ''NmUzXHU2NmU0XHU2YWYzXHU2YWYwXHU2YWVhXHU2YWU4XHU2YWY5XHU2YWYxXHU2YWVlXHU2YWVmXHU3MDNjXHU3MDM1XHU3MDJmXHU3MDM3XHU3MDM0XHU3MDMxXHU3MDQyXHU3MDM4XHU3MDNmXHU3MDNhXHU3MDM5XHU3MDQwXHU3MDNiXHU3MDMzXHU3MDQxXHU3MjEzXHU3MjE0XHU3MmE4''@;'; + put 'put ''XHU3MzdkXHU3MzdjXHU3NGJhXHU3NmFiXHU3NmFhXHU3NmJlXHU3NmVkXHU3N2NjXHU3N2NlXHU3N2NmXHU3N2NkXHU3N2YyXHU3OTI1XHU3OTIzXHU3OTI3XHU3OTI4XHU3OTI0XHU3OTI5Il0sWyJmNGExIiwiXHU3OWIyXHU3YTZlXHU3YTZjXHU3YTZkXHU3YWY3XHU3YzQ5XHU3YzQ4XHU3''@;'; + put 'put ''YzRhXHU3YzQ3XHU3YzQ1XHU3Y2VlXHU3ZTdiXHU3ZTdlXHU3ZTgxXHU3ZTgwXHU3ZmJhXHU3ZmZmXHU4MDc5XHU4MWRiXHU4MWQ5XHU4MjBiXHU4MjY4XHU4MjY5XHU4NjIyXHU4NWZmXHU4NjAxXHU4NWZlXHU4NjFiXHU4NjAwXHU4NWY2XHU4NjA0XHU4NjA5XHU4NjA1XHU4NjBjXHU4NWZk''@;'; + put 'put ''XHU4ODE5XHU4ODEwXHU4ODExXHU4ODE3XHU4ODEzXHU4ODE2XHU4OTYzXHU4OTY2XHU4OWI5XHU4OWY3XHU4YjYwXHU4YjZhXHU4YjVkXHU4YjY4XHU4YjYzXHU4YjY1XHU4YjY3XHU4YjZkXHU4ZGFlXHU4ZTg2XHU4ZTg4XHU4ZTg0XHU4ZjU5XHU4ZjU2XHU4ZjU3XHU4ZjU1XHU4ZjU4XHU4''@;'; + put 'put ''ZjVhXHU5MDhkXHU5MTQzXHU5MTQxXHU5MWI3XHU5MWI1XHU5MWIyXHU5MWIzXHU5NDBiXHU5NDEzXHU5M2ZiXHU5NDIwXHU5NDBmXHU5NDE0XHU5M2ZlXHU5NDE1XHU5NDEwXHU5NDI4XHU5NDE5XHU5NDBkXHU5M2Y1XHU5NDAwXHU5M2Y3XHU5NDA3XHU5NDBlXHU5NDE2XHU5NDEyXHU5M2Zh''@;'; + put 'put ''XHU5NDA5XHU5M2Y4XHU5NDBhXHU5M2ZmIl0sWyJmNTQwIiwiXHU5M2ZjXHU5NDBjXHU5M2Y2XHU5NDExXHU5NDA2XHU5NWRlXHU5NWUwXHU5NWRmXHU5NzJlXHU5NzJmXHU5N2I5XHU5N2JiXHU5N2ZkXHU5N2ZlXHU5ODYwXHU5ODYyXHU5ODYzXHU5ODVmXHU5OGMxXHU5OGMyXHU5OTUwXHU5''@;'; + put 'put ''OTRlXHU5OTU5XHU5OTRjXHU5OTRiXHU5OTUzXHU5YTMyXHU5YTM0XHU5YTMxXHU5YTJjXHU5YTJhXHU5YTM2XHU5YTI5XHU5YTJlXHU5YTM4XHU5YTJkXHU5YWM3XHU5YWNhXHU5YWM2XHU5YjEwXHU5YjEyXHU5YjExXHU5YzBiXHU5YzA4XHU5YmY3XHU5YzA1XHU5YzEyXHU5YmY4XHU5YzQw''@;'; + put 'put ''XHU5YzA3XHU5YzBlXHU5YzA2XHU5YzE3XHU5YzE0XHU5YzA5XHU5ZDlmXHU5ZDk5XHU5ZGE0XHU5ZDlkXHU5ZDkyXHU5ZDk4XHU5ZDkwXHU5ZDliIl0sWyJmNWExIiwiXHU5ZGEwXHU5ZDk0XHU5ZDljXHU5ZGFhXHU5ZDk3XHU5ZGExXHU5ZDlhXHU5ZGEyXHU5ZGE4XHU5ZDllXHU5ZGEzXHU5''@;'; + put 'put ''ZGJmXHU5ZGE5XHU5ZDk2XHU5ZGE2XHU5ZGE3XHU5ZTk5XHU5ZTliXHU5ZTlhXHU5ZWU1XHU5ZWU0XHU5ZWU3XHU5ZWU2XHU5ZjMwXHU5ZjJlXHU5ZjViXHU5ZjYwXHU5ZjVlXHU5ZjVkXHU5ZjU5XHU5ZjkxXHU1MTNhXHU1MTM5XHU1Mjk4XHU1Mjk3XHU1NmMzXHU1NmJkXHU1NmJlXHU1YjQ4''@;'; + put 'put ''XHU1YjQ3XHU1ZGNiXHU1ZGNmXHU1ZWYxXHU2MWZkXHU2NTFiXHU2YjAyXHU2YWZjXHU2YjAzXHU2YWY4XHU2YjAwXHU3MDQzXHU3MDQ0XHU3MDRhXHU3MDQ4XHU3MDQ5XHU3MDQ1XHU3MDQ2XHU3MjFkXHU3MjFhXHU3MjE5XHU3MzdlXHU3NTE3XHU3NjZhXHU3N2QwXHU3OTJkXHU3OTMxXHU3''@;'; + put 'put ''OTJmXHU3YzU0XHU3YzUzXHU3Y2YyXHU3ZThhXHU3ZTg3XHU3ZTg4XHU3ZThiXHU3ZTg2XHU3ZThkXHU3ZjRkXHU3ZmJiXHU4MDMwXHU4MWRkXHU4NjE4XHU4NjJhXHU4NjI2XHU4NjFmXHU4NjIzXHU4NjFjXHU4NjE5XHU4NjI3XHU4NjJlXHU4NjIxXHU4NjIwXHU4NjI5XHU4NjFlXHU4NjI1''@;'; + put 'put ''Il0sWyJmNjQwIiwiXHU4ODI5XHU4ODFkXHU4ODFiXHU4ODIwXHU4ODI0XHU4ODFjXHU4ODJiXHU4ODRhXHU4OTZkXHU4OTY5XHU4OTZlXHU4OTZiXHU4OWZhXHU4Yjc5XHU4Yjc4XHU4YjQ1XHU4YjdhXHU4YjdiXHU4ZDEwXHU4ZDE0XHU4ZGFmXHU4ZThlXHU4ZThjXHU4ZjVlXHU4ZjViXHU4''@;'; + put 'put ''ZjVkXHU5MTQ2XHU5MTQ0XHU5MTQ1XHU5MWI5XHU5NDNmXHU5NDNiXHU5NDM2XHU5NDI5XHU5NDNkXHU5NDNjXHU5NDMwXHU5NDM5XHU5NDJhXHU5NDM3XHU5NDJjXHU5NDQwXHU5NDMxXHU5NWU1XHU5NWU0XHU5NWUzXHU5NzM1XHU5NzNhXHU5N2JmXHU5N2UxXHU5ODY0XHU5OGM5XHU5OGM2''@;'; + put 'put ''XHU5OGMwXHU5OTU4XHU5OTU2XHU5YTM5XHU5YTNkXHU5YTQ2XHU5YTQ0XHU5YTQyXHU5YTQxXHU5YTNhIl0sWyJmNmExIiwiXHU5YTNmXHU5YWNkXHU5YjE1XHU5YjE3XHU5YjE4XHU5YjE2XHU5YjNhXHU5YjUyXHU5YzJiXHU5YzFkXHU5YzFjXHU5YzJjXHU5YzIzXHU5YzI4XHU5YzI5XHU5''@;'; + put 'put ''YzI0XHU5YzIxXHU5ZGI3XHU5ZGI2XHU5ZGJjXHU5ZGMxXHU5ZGM3XHU5ZGNhXHU5ZGNmXHU5ZGJlXHU5ZGM1XHU5ZGMzXHU5ZGJiXHU5ZGI1XHU5ZGNlXHU5ZGI5XHU5ZGJhXHU5ZGFjXHU5ZGM4XHU5ZGIxXHU5ZGFkXHU5ZGNjXHU5ZGIzXHU5ZGNkXHU5ZGIyXHU5ZTdhXHU5ZTljXHU5ZWVi''@;'; + put 'put ''XHU5ZWVlXHU5ZWVkXHU5ZjFiXHU5ZjE4XHU5ZjFhXHU5ZjMxXHU5ZjRlXHU5ZjY1XHU5ZjY0XHU5ZjkyXHU0ZWI5XHU1NmM2XHU1NmM1XHU1NmNiXHU1OTcxXHU1YjRiXHU1YjRjXHU1ZGQ1XHU1ZGQxXHU1ZWYyXHU2NTIxXHU2NTIwXHU2NTI2XHU2NTIyXHU2YjBiXHU2YjA4XHU2YjA5XHU2''@;'; + put 'put ''YzBkXHU3MDU1XHU3MDU2XHU3MDU3XHU3MDUyXHU3MjFlXHU3MjFmXHU3MmE5XHU3MzdmXHU3NGQ4XHU3NGQ1XHU3NGQ5XHU3NGQ3XHU3NjZkXHU3NmFkXHU3OTM1XHU3OWI0XHU3YTcwXHU3YTcxXHU3YzU3XHU3YzVjXHU3YzU5XHU3YzViXHU3YzVhIl0sWyJmNzQwIiwiXHU3Y2Y0XHU3Y2Yx''@;'; + put 'put ''XHU3ZTkxXHU3ZjRmXHU3Zjg3XHU4MWRlXHU4MjZiXHU4NjM0XHU4NjM1XHU4NjMzXHU4NjJjXHU4NjMyXHU4NjM2XHU4ODJjXHU4ODI4XHU4ODI2XHU4ODJhXHU4ODI1XHU4OTcxXHU4OWJmXHU4OWJlXHU4OWZiXHU4YjdlXHU4Yjg0XHU4YjgyXHU4Yjg2XHU4Yjg1XHU4YjdmXHU4ZDE1XHU4''@;'; + put 'put ''ZTk1XHU4ZTk0XHU4ZTlhXHU4ZTkyXHU4ZTkwXHU4ZTk2XHU4ZTk3XHU4ZjYwXHU4ZjYyXHU5MTQ3XHU5NDRjXHU5NDUwXHU5NDRhXHU5NDRiXHU5NDRmXHU5NDQ3XHU5NDQ1XHU5NDQ4XHU5NDQ5XHU5NDQ2XHU5NzNmXHU5N2UzXHU5ODZhXHU5ODY5XHU5OGNiXHU5OTU0XHU5OTViXHU5YTRl''@;'; + put 'put ''XHU5YTUzXHU5YTU0XHU5YTRjXHU5YTRmXHU5YTQ4XHU5YTRhIl0sWyJmN2ExIiwiXHU5YTQ5XHU5YTUyXHU5YTUwXHU5YWQwXHU5YjE5XHU5YjJiXHU5YjNiXHU5YjU2XHU5YjU1XHU5YzQ2XHU5YzQ4XHU5YzNmXHU5YzQ0XHU5YzM5XHU5YzMzXHU5YzQxXHU5YzNjXHU5YzM3XHU5YzM0XHU5''@;'; + put 'put ''YzMyXHU5YzNkXHU5YzM2XHU5ZGRiXHU5ZGQyXHU5ZGRlXHU5ZGRhXHU5ZGNiXHU5ZGQwXHU5ZGRjXHU5ZGQxXHU5ZGRmXHU5ZGU5XHU5ZGQ5XHU5ZGQ4XHU5ZGQ2XHU5ZGY1XHU5ZGQ1XHU5ZGRkXHU5ZWI2XHU5ZWYwXHU5ZjM1XHU5ZjMzXHU5ZjMyXHU5ZjQyXHU5ZjZiXHU5Zjk1XHU5ZmEy''@;'; + put 'put ''XHU1MTNkXHU1Mjk5XHU1OGU4XHU1OGU3XHU1OTcyXHU1YjRkXHU1ZGQ4XHU4ODJmXHU1ZjRmXHU2MjAxXHU2MjAzXHU2MjA0XHU2NTI5XHU2NTI1XHU2NTk2XHU2NmViXHU2YjExXHU2YjEyXHU2YjBmXHU2YmNhXHU3MDViXHU3MDVhXHU3MjIyXHU3MzgyXHU3MzgxXHU3MzgzXHU3NjcwXHU3''@;'; + put 'put ''N2Q0XHU3YzY3XHU3YzY2XHU3ZTk1XHU4MjZjXHU4NjNhXHU4NjQwXHU4NjM5XHU4NjNjXHU4NjMxXHU4NjNiXHU4NjNlXHU4ODMwXHU4ODMyXHU4ODJlXHU4ODMzXHU4OTc2XHU4OTc0XHU4OTczXHU4OWZlIl0sWyJmODQwIiwiXHU4YjhjXHU4YjhlXHU4YjhiXHU4Yjg4XHU4YzQ1XHU4ZDE5''@;'; + put 'put ''XHU4ZTk4XHU4ZjY0XHU4ZjYzXHU5MWJjXHU5NDYyXHU5NDU1XHU5NDVkXHU5NDU3XHU5NDVlXHU5N2M0XHU5N2M1XHU5ODAwXHU5YTU2XHU5YTU5XHU5YjFlXHU5YjFmXHU5YjIwXHU5YzUyXHU5YzU4XHU5YzUwXHU5YzRhXHU5YzRkXHU5YzRiXHU5YzU1XHU5YzU5XHU5YzRjXHU5YzRlXHU5''@;'; + put 'put ''ZGZiXHU5ZGY3XHU5ZGVmXHU5ZGUzXHU5ZGViXHU5ZGY4XHU5ZGU0XHU5ZGY2XHU5ZGUxXHU5ZGVlXHU5ZGU2XHU5ZGYyXHU5ZGYwXHU5ZGUyXHU5ZGVjXHU5ZGY0XHU5ZGYzXHU5ZGU4XHU5ZGVkXHU5ZWMyXHU5ZWQwXHU5ZWYyXHU5ZWYzXHU5ZjA2XHU5ZjFjXHU5ZjM4XHU5ZjM3XHU5ZjM2''@;'; + put 'put ''XHU5ZjQzXHU5ZjRmIl0sWyJmOGExIiwiXHU5ZjcxXHU5ZjcwXHU5ZjZlXHU5ZjZmXHU1NmQzXHU1NmNkXHU1YjRlXHU1YzZkXHU2NTJkXHU2NmVkXHU2NmVlXHU2YjEzXHU3MDVmXHU3MDYxXHU3MDVkXHU3MDYwXHU3MjIzXHU3NGRiXHU3NGU1XHU3N2Q1XHU3OTM4XHU3OWI3XHU3OWI2XHU3''@;'; + put 'put ''YzZhXHU3ZTk3XHU3Zjg5XHU4MjZkXHU4NjQzXHU4ODM4XHU4ODM3XHU4ODM1XHU4ODRiXHU4Yjk0XHU4Yjk1XHU4ZTllXHU4ZTlmXHU4ZWEwXHU4ZTlkXHU5MWJlXHU5MWJkXHU5MWMyXHU5NDZiXHU5NDY4XHU5NDY5XHU5NmU1XHU5NzQ2XHU5NzQzXHU5NzQ3XHU5N2M3XHU5N2U1XHU5YTVl''@;'; + put 'put ''XHU5YWQ1XHU5YjU5XHU5YzYzXHU5YzY3XHU5YzY2XHU5YzYyXHU5YzVlXHU5YzYwXHU5ZTAyXHU5ZGZlXHU5ZTA3XHU5ZTAzXHU5ZTA2XHU5ZTA1XHU5ZTAwXHU5ZTAxXHU5ZTA5XHU5ZGZmXHU5ZGZkXHU5ZTA0XHU5ZWEwXHU5ZjFlXHU5ZjQ2XHU5Zjc0XHU5Zjc1XHU5Zjc2XHU1NmQ0XHU2''@;'; + put 'put ''NTJlXHU2NWI4XHU2YjE4XHU2YjE5XHU2YjE3XHU2YjFhXHU3MDYyXHU3MjI2XHU3MmFhXHU3N2Q4XHU3N2Q5XHU3OTM5XHU3YzY5XHU3YzZiXHU3Y2Y2XHU3ZTlhIl0sWyJmOTQwIiwiXHU3ZTk4XHU3ZTliXHU3ZTk5XHU4MWUwXHU4MWUxXHU4NjQ2XHU4NjQ3XHU4NjQ4XHU4OTc5XHU4OTdh''@;'; + put 'put ''XHU4OTdjXHU4OTdiXHU4OWZmXHU4Yjk4XHU4Yjk5XHU4ZWE1XHU4ZWE0XHU4ZWEzXHU5NDZlXHU5NDZkXHU5NDZmXHU5NDcxXHU5NDczXHU5NzQ5XHU5ODcyXHU5OTVmXHU5YzY4XHU5YzZlXHU5YzZkXHU5ZTBiXHU5ZTBkXHU5ZTEwXHU5ZTBmXHU5ZTEyXHU5ZTExXHU5ZWExXHU5ZWY1XHU5''@;'; + put 'put ''ZjA5XHU5ZjQ3XHU5Zjc4XHU5ZjdiXHU5ZjdhXHU5Zjc5XHU1NzFlXHU3MDY2XHU3YzZmXHU4ODNjXHU4ZGIyXHU4ZWE2XHU5MWMzXHU5NDc0XHU5NDc4XHU5NDc2XHU5NDc1XHU5YTYwXHU5Yzc0XHU5YzczXHU5YzcxXHU5Yzc1XHU5ZTE0XHU5ZTEzXHU5ZWY2XHU5ZjBhIl0sWyJmOWExIiwi''@;'; + put 'put ''XHU5ZmE0XHU3MDY4XHU3MDY1XHU3Y2Y3XHU4NjZhXHU4ODNlXHU4ODNkXHU4ODNmXHU4YjllXHU4YzljXHU4ZWE5XHU4ZWM5XHU5NzRiXHU5ODczXHU5ODc0XHU5OGNjXHU5OTYxXHU5OWFiXHU5YTY0XHU5YTY2XHU5YTY3XHU5YjI0XHU5ZTE1XHU5ZTE3XHU5ZjQ4XHU2MjA3XHU2YjFlXHU3''@;'; + put 'put ''MjI3XHU4NjRjXHU4ZWE4XHU5NDgyXHU5NDgwXHU5NDgxXHU5YTY5XHU5YTY4XHU5YjJlXHU5ZTE5XHU3MjI5XHU4NjRiXHU4YjlmXHU5NDgzXHU5Yzc5XHU5ZWI3XHU3Njc1XHU5YTZiXHU5YzdhXHU5ZTFkXHU3MDY5XHU3MDZhXHU5ZWE0XHU5ZjdlXHU5ZjQ5XHU5Zjk4XHU3ODgxXHU5MmI5''@;'; + put 'put ''XHU4OGNmXHU1OGJiXHU2MDUyXHU3Y2E3XHU1YWZhXHUyNTU0XHUyNTY2XHUyNTU3XHUyNTYwXHUyNTZjXHUyNTYzXHUyNTVhXHUyNTY5XHUyNTVkXHUyNTUyXHUyNTY0XHUyNTU1XHUyNTVlXHUyNTZhXHUyNTYxXHUyNTU4XHUyNTY3XHUyNTViXHUyNTUzXHUyNTY1XHUyNTU2XHUyNTVmXHUy''@;'; + put 'put ''NTZiXHUyNTYyXHUyNTU5XHUyNTY4XHUyNTVjXHUyNTUxXHUyNTUwXHUyNTZkXHUyNTZlXHUyNTcwXHUyNTZmXHUyNTkzIl1dJyl9LDMxNTMyOlhlPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9SlNPTi5wYXJzZSgnW1siMCIsIlxcdTAwMDAiLDEyN10sWyI4ZWExIiwiXHVmZjYxIiw2Ml0s''@;'; + put 'put ''WyJhMWExIiwiXHUzMDAwXHUzMDAxXHUzMDAyXHVmZjBjXHVmZjBlXHUzMGZiXHVmZjFhXHVmZjFiXHVmZjFmXHVmZjAxXHUzMDliXHUzMDljXHhiNFx1ZmY0MFx4YThcdWZmM2VcdWZmZTNcdWZmM2ZcdTMwZmRcdTMwZmVcdTMwOWRcdTMwOWVcdTMwMDNcdTRlZGRcdTMwMDVcdTMwMDZcdTMw''@;'; + put 'put ''MDdcdTMwZmNcdTIwMTVcdTIwMTBcdWZmMGZcdWZmM2NcdWZmNWVcdTIyMjVcdWZmNWNcdTIwMjZcdTIwMjVcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdWZmMDhcdWZmMDlcdTMwMTRcdTMwMTVcdWZmM2JcdWZmM2RcdWZmNWJcdWZmNWRcdTMwMDgiLDksIlx1ZmYwYlx1ZmYwZFx4YjFceGQ3''@;'; + put 'put ''XHhmN1x1ZmYxZFx1MjI2MFx1ZmYxY1x1ZmYxZVx1MjI2Nlx1MjI2N1x1MjIxZVx1MjIzNFx1MjY0Mlx1MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdWZmZTVcdWZmMDRcdWZmZTBcdWZmZTFcdWZmMDVcdWZmMDNcdWZmMDZcdWZmMGFcdWZmMjBceGE3XHUyNjA2XHUyNjA1XHUyNWNiXHUy''@;'; + put 'put ''NWNmXHUyNWNlXHUyNWM3Il0sWyJhMmExIiwiXHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyNWJkXHUyNWJjXHUyMDNiXHUzMDEyXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUzMDEzIl0sWyJhMmJhIiwiXHUyMjA4XHUyMjBiXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgzXHUyMjJh''@;'; + put 'put ''XHUyMjI5Il0sWyJhMmNhIiwiXHUyMjI3XHUyMjI4XHVmZmUyXHUyMWQyXHUyMWQ0XHUyMjAwXHUyMjAzIl0sWyJhMmRjIiwiXHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHUyMjZhXHUyMjZiXHUyMjFhXHUyMjNkXHUyMjFkXHUyMjM1XHUyMjJiXHUyMjJjIl0s''@;'; + put 'put ''WyJhMmYyIiwiXHUyMTJiXHUyMDMwXHUyNjZmXHUyNjZkXHUyNjZhXHUyMDIwXHUyMDIxXHhiNiJdLFsiYTJmZSIsIlx1MjVlZiJdLFsiYTNiMCIsIlx1ZmYxMCIsOV0sWyJhM2MxIiwiXHVmZjIxIiwyNV0sWyJhM2UxIiwiXHVmZjQxIiwyNV0sWyJhNGExIiwiXHUzMDQxIiw4Ml0sWyJhNWEx''@;'; + put 'put ''IiwiXHUzMGExIiw4NV0sWyJhNmExIiwiXHUwMzkxIiwxNiwiXHUwM2EzIiw2XSxbImE2YzEiLCJcdTAzYjEiLDE2LCJcdTAzYzMiLDZdLFsiYTdhMSIsIlx1MDQxMCIsNSwiXHUwNDAxXHUwNDE2IiwyNV0sWyJhN2QxIiwiXHUwNDMwIiw1LCJcdTA0NTFcdTA0MzYiLDI1XSxbImE4YTEiLCJc''@;'; + put 'put ''dTI1MDBcdTI1MDJcdTI1MGNcdTI1MTBcdTI1MThcdTI1MTRcdTI1MWNcdTI1MmNcdTI1MjRcdTI1MzRcdTI1M2NcdTI1MDFcdTI1MDNcdTI1MGZcdTI1MTNcdTI1MWJcdTI1MTdcdTI1MjNcdTI1MzNcdTI1MmJcdTI1M2JcdTI1NGJcdTI1MjBcdTI1MmZcdTI1MjhcdTI1MzdcdTI1M2ZcdTI1''@;'; + put 'put ''MWRcdTI1MzBcdTI1MjVcdTI1MzhcdTI1NDIiXSxbImFkYTEiLCJcdTI0NjAiLDE5LCJcdTIxNjAiLDldLFsiYWRjMCIsIlx1MzM0OVx1MzMxNFx1MzMyMlx1MzM0ZFx1MzMxOFx1MzMyN1x1MzMwM1x1MzMzNlx1MzM1MVx1MzM1N1x1MzMwZFx1MzMyNlx1MzMyM1x1MzMyYlx1MzM0YVx1MzMz''@;'; + put 'put ''Ylx1MzM5Y1x1MzM5ZFx1MzM5ZVx1MzM4ZVx1MzM4Zlx1MzNjNFx1MzNhMSJdLFsiYWRkZiIsIlx1MzM3Ylx1MzAxZFx1MzAxZlx1MjExNlx1MzNjZFx1MjEyMVx1MzJhNCIsNCwiXHUzMjMxXHUzMjMyXHUzMjM5XHUzMzdlXHUzMzdkXHUzMzdjXHUyMjUyXHUyMjYxXHUyMjJiXHUyMjJlXHUy''@;'; + put 'put ''MjExXHUyMjFhXHUyMmE1XHUyMjIwXHUyMjFmXHUyMmJmXHUyMjM1XHUyMjI5XHUyMjJhIl0sWyJiMGExIiwiXHU0ZTljXHU1NTE2XHU1YTAzXHU5NjNmXHU1NGMwXHU2MTFiXHU2MzI4XHU1OWY2XHU5MDIyXHU4NDc1XHU4MzFjXHU3YTUwXHU2MGFhXHU2M2UxXHU2ZTI1XHU2NWVkXHU4NDY2''@;'; + put 'put ''XHU4MmE2XHU5YmY1XHU2ODkzXHU1NzI3XHU2NWExXHU2MjcxXHU1YjliXHU1OWQwXHU4NjdiXHU5OGY0XHU3ZDYyXHU3ZGJlXHU5YjhlXHU2MjE2XHU3YzlmXHU4OGI3XHU1Yjg5XHU1ZWI1XHU2MzA5XHU2Njk3XHU2ODQ4XHU5NWM3XHU5NzhkXHU2NzRmXHU0ZWU1XHU0ZjBhXHU0ZjRkXHU0''@;'; + put 'put ''ZjlkXHU1MDQ5XHU1NmYyXHU1OTM3XHU1OWQ0XHU1YTAxXHU1YzA5XHU2MGRmXHU2MTBmXHU2MTcwXHU2NjEzXHU2OTA1XHU3MGJhXHU3NTRmXHU3NTcwXHU3OWZiXHU3ZGFkXHU3ZGVmXHU4MGMzXHU4NDBlXHU4ODYzXHU4YjAyXHU5MDU1XHU5MDdhXHU1MzNiXHU0ZTk1XHU0ZWE1XHU1N2Rm''@;'; + put 'put ''XHU4MGIyXHU5MGMxXHU3OGVmXHU0ZTAwXHU1OGYxXHU2ZWEyXHU5MDM4XHU3YTMyXHU4MzI4XHU4MjhiXHU5YzJmXHU1MTQxXHU1MzcwXHU1NGJkXHU1NGUxXHU1NmUwXHU1OWZiXHU1ZjE1XHU5OGYyXHU2ZGViXHU4MGU0XHU4NTJkIl0sWyJiMWExIiwiXHU5NjYyXHU5NjcwXHU5NmEwXHU5''@;'; + put 'put ''N2ZiXHU1NDBiXHU1M2YzXHU1Yjg3XHU3MGNmXHU3ZmJkXHU4ZmMyXHU5NmU4XHU1MzZmXHU5ZDVjXHU3YWJhXHU0ZTExXHU3ODkzXHU4MWZjXHU2ZTI2XHU1NjE4XHU1NTA0XHU2YjFkXHU4NTFhXHU5YzNiXHU1OWU1XHU1M2E5XHU2ZDY2XHU3NGRjXHU5NThmXHU1NjQyXHU0ZTkxXHU5MDRi''@;'; + put 'put ''XHU5NmYyXHU4MzRmXHU5OTBjXHU1M2UxXHU1NWI2XHU1YjMwXHU1ZjcxXHU2NjIwXHU2NmYzXHU2ODA0XHU2YzM4XHU2Y2YzXHU2ZDI5XHU3NDViXHU3NmM4XHU3YTRlXHU5ODM0XHU4MmYxXHU4ODViXHU4YTYwXHU5MmVkXHU2ZGIyXHU3NWFiXHU3NmNhXHU5OWM1XHU2MGE2XHU4YjAxXHU4''@;'; + put 'put ''ZDhhXHU5NWIyXHU2OThlXHU1M2FkXHU1MTg2XHU1NzEyXHU1ODMwXHU1OTQ0XHU1YmI0XHU1ZWY2XHU2MDI4XHU2M2E5XHU2M2Y0XHU2Y2JmXHU2ZjE0XHU3MDhlXHU3MTE0XHU3MTU5XHU3MWQ1XHU3MzNmXHU3ZTAxXHU4Mjc2XHU4MmQxXHU4NTk3XHU5MDYwXHU5MjViXHU5ZDFiXHU1ODY5''@;'; + put 'put ''XHU2NWJjXHU2YzVhXHU3NTI1XHU1MWY5XHU1OTJlXHU1OTY1XHU1ZjgwXHU1ZmRjIl0sWyJiMmExIiwiXHU2MmJjXHU2NWZhXHU2YTJhXHU2YjI3XHU2YmI0XHU3MzhiXHU3ZmMxXHU4OTU2XHU5ZDJjXHU5ZDBlXHU5ZWM0XHU1Y2ExXHU2Yzk2XHU4MzdiXHU1MTA0XHU1YzRiXHU2MWI2XHU4''@;'; + put 'put ''MWM2XHU2ODc2XHU3MjYxXHU0ZTU5XHU0ZmZhXHU1Mzc4XHU2MDY5XHU2ZTI5XHU3YTRmXHU5N2YzXHU0ZTBiXHU1MzE2XHU0ZWVlXHU0ZjU1XHU0ZjNkXHU0ZmExXHU0ZjczXHU1MmEwXHU1M2VmXHU1NjA5XHU1OTBmXHU1YWMxXHU1YmI2XHU1YmUxXHU3OWQxXHU2Njg3XHU2NzljXHU2N2I2''@;'; + put 'put ''XHU2YjRjXHU2Y2IzXHU3MDZiXHU3M2MyXHU3OThkXHU3OWJlXHU3YTNjXHU3Yjg3XHU4MmIxXHU4MmRiXHU4MzA0XHU4Mzc3XHU4M2VmXHU4M2QzXHU4NzY2XHU4YWIyXHU1NjI5XHU4Y2E4XHU4ZmU2XHU5MDRlXHU5NzFlXHU4NjhhXHU0ZmM0XHU1Y2U4XHU2MjExXHU3MjU5XHU3NTNiXHU4''@;'; + put 'put ''MWU1XHU4MmJkXHU4NmZlXHU4Y2MwXHU5NmM1XHU5OTEzXHU5OWQ1XHU0ZWNiXHU0ZjFhXHU4OWUzXHU1NmRlXHU1ODRhXHU1OGNhXHU1ZWZiXHU1ZmViXHU2MDJhXHU2MDk0XHU2MDYyXHU2MWQwXHU2MjEyXHU2MmQwXHU2NTM5Il0sWyJiM2ExIiwiXHU5YjQxXHU2NjY2XHU2OGIwXHU2ZDc3''@;'; + put 'put ''XHU3MDcwXHU3NTRjXHU3Njg2XHU3ZDc1XHU4MmE1XHU4N2Y5XHU5NThiXHU5NjhlXHU4YzlkXHU1MWYxXHU1MmJlXHU1OTE2XHU1NGIzXHU1YmIzXHU1ZDE2XHU2MTY4XHU2OTgyXHU2ZGFmXHU3ODhkXHU4NGNiXHU4ODU3XHU4YTcyXHU5M2E3XHU5YWI4XHU2ZDZjXHU5OWE4XHU4NmQ5XHU1''@;'; + put 'put ''N2EzXHU2N2ZmXHU4NmNlXHU5MjBlXHU1MjgzXHU1Njg3XHU1NDA0XHU1ZWQzXHU2MmUxXHU2NGI5XHU2ODNjXHU2ODM4XHU2YmJiXHU3MzcyXHU3OGJhXHU3YTZiXHU4OTlhXHU4OWQyXHU4ZDZiXHU4ZjAzXHU5MGVkXHU5NWEzXHU5Njk0XHU5NzY5XHU1YjY2XHU1Y2IzXHU2OTdkXHU5ODRk''@;'; + put 'put ''XHU5ODRlXHU2MzliXHU3YjIwXHU2YTJiXHU2YTdmXHU2OGI2XHU5YzBkXHU2ZjVmXHU1MjcyXHU1NTlkXHU2MDcwXHU2MmVjXHU2ZDNiXHU2ZTA3XHU2ZWQxXHU4NDViXHU4OTEwXHU4ZjQ0XHU0ZTE0XHU5YzM5XHU1M2Y2XHU2OTFiXHU2YTNhXHU5Nzg0XHU2ODJhXHU1MTVjXHU3YWMzXHU4''@;'; + put 'put ''NGIyXHU5MWRjXHU5MzhjXHU1NjViXHU5ZDI4XHU2ODIyXHU4MzA1XHU4NDMxIl0sWyJiNGExIiwiXHU3Y2E1XHU1MjA4XHU4MmM1XHU3NGU2XHU0ZTdlXHU0ZjgzXHU1MWEwXHU1YmQyXHU1MjBhXHU1MmQ4XHU1MmU3XHU1ZGZiXHU1NTlhXHU1ODJhXHU1OWU2XHU1YjhjXHU1Yjk4XHU1YmRi''@;'; + put 'put ''XHU1ZTcyXHU1ZTc5XHU2MGEzXHU2MTFmXHU2MTYzXHU2MWJlXHU2M2RiXHU2NTYyXHU2N2QxXHU2ODUzXHU2OGZhXHU2YjNlXHU2YjUzXHU2YzU3XHU2ZjIyXHU2Zjk3XHU2ZjQ1XHU3NGIwXHU3NTE4XHU3NmUzXHU3NzBiXHU3YWZmXHU3YmExXHU3YzIxXHU3ZGU5XHU3ZjM2XHU3ZmYwXHU4''@;'; + put 'put ''MDlkXHU4MjY2XHU4MzllXHU4OWIzXHU4YWNjXHU4Y2FiXHU5MDg0XHU5NDUxXHU5NTkzXHU5NTkxXHU5NWEyXHU5NjY1XHU5N2QzXHU5OTI4XHU4MjE4XHU0ZTM4XHU1NDJiXHU1Y2I4XHU1ZGNjXHU3M2E5XHU3NjRjXHU3NzNjXHU1Y2E5XHU3ZmViXHU4ZDBiXHU5NmMxXHU5ODExXHU5ODU0''@;'; + put 'put ''XHU5ODU4XHU0ZjAxXHU0ZjBlXHU1MzcxXHU1NTljXHU1NjY4XHU1N2ZhXHU1OTQ3XHU1YjA5XHU1YmM0XHU1YzkwXHU1ZTBjXHU1ZTdlXHU1ZmNjXHU2M2VlXHU2NzNhXHU2NWQ3XHU2NWUyXHU2NzFmXHU2OGNiXHU2OGM0Il0sWyJiNWExIiwiXHU2YTVmXHU1ZTMwXHU2YmM1XHU2YzE3XHU2''@;'; + put 'put ''YzdkXHU3NTdmXHU3OTQ4XHU1YjYzXHU3YTAwXHU3ZDAwXHU1ZmJkXHU4OThmXHU4YTE4XHU4Y2I0XHU4ZDc3XHU4ZWNjXHU4ZjFkXHU5OGUyXHU5YTBlXHU5YjNjXHU0ZTgwXHU1MDdkXHU1MTAwXHU1OTkzXHU1YjljXHU2MjJmXHU2MjgwXHU2NGVjXHU2YjNhXHU3MmEwXHU3NTkxXHU3OTQ3''@;'; + put 'put ''XHU3ZmE5XHU4N2ZiXHU4YWJjXHU4YjcwXHU2M2FjXHU4M2NhXHU5N2EwXHU1NDA5XHU1NDAzXHU1NWFiXHU2ODU0XHU2YTU4XHU4YTcwXHU3ODI3XHU2Nzc1XHU5ZWNkXHU1Mzc0XHU1YmEyXHU4MTFhXHU4NjUwXHU5MDA2XHU0ZTE4XHU0ZTQ1XHU0ZWM3XHU0ZjExXHU1M2NhXHU1NDM4XHU1''@;'; + put 'put ''YmFlXHU1ZjEzXHU2MDI1XHU2NTUxXHU2NzNkXHU2YzQyXHU2YzcyXHU2Y2UzXHU3MDc4XHU3NDAzXHU3YTc2XHU3YWFlXHU3YjA4XHU3ZDFhXHU3Y2ZlXHU3ZDY2XHU2NWU3XHU3MjViXHU1M2JiXHU1YzQ1XHU1ZGU4XHU2MmQyXHU2MmUwXHU2MzE5XHU2ZTIwXHU4NjVhXHU4YTMxXHU4ZGRk''@;'; + put 'put ''XHU5MmY4XHU2ZjAxXHU3OWE2XHU5YjVhXHU0ZWE4XHU0ZWFiXHU0ZWFjIl0sWyJiNmExIiwiXHU0ZjliXHU0ZmEwXHU1MGQxXHU1MTQ3XHU3YWY2XHU1MTcxXHU1MWY2XHU1MzU0XHU1MzIxXHU1MzdmXHU1M2ViXHU1NWFjXHU1ODgzXHU1Y2UxXHU1ZjM3XHU1ZjRhXHU2MDJmXHU2MDUwXHU2''@;'; + put 'put ''MDZkXHU2MzFmXHU2NTU5XHU2YTRiXHU2Y2MxXHU3MmMyXHU3MmVkXHU3N2VmXHU4MGY4XHU4MTA1XHU4MjA4XHU4NTRlXHU5MGY3XHU5M2UxXHU5N2ZmXHU5OTU3XHU5YTVhXHU0ZWYwXHU1MWRkXHU1YzJkXHU2NjgxXHU2OTZkXHU1YzQwXHU2NmYyXHU2OTc1XHU3Mzg5XHU2ODUwXHU3Yzgx''@;'; + put 'put ''XHU1MGM1XHU1MmU0XHU1NzQ3XHU1ZGZlXHU5MzI2XHU2NWE0XHU2YjIzXHU2YjNkXHU3NDM0XHU3OTgxXHU3OWJkXHU3YjRiXHU3ZGNhXHU4MmI5XHU4M2NjXHU4ODdmXHU4OTVmXHU4YjM5XHU4ZmQxXHU5MWQxXHU1NDFmXHU5MjgwXHU0ZTVkXHU1MDM2XHU1M2U1XHU1MzNhXHU3MmQ3XHU3''@;'; + put 'put ''Mzk2XHU3N2U5XHU4MmU2XHU4ZWFmXHU5OWM2XHU5OWM4XHU5OWQyXHU1MTc3XHU2MTFhXHU4NjVlXHU1NWIwXHU3YTdhXHU1MDc2XHU1YmQzXHU5MDQ3XHU5Njg1XHU0ZTMyXHU2YWRiXHU5MWU3XHU1YzUxXHU1YzQ4Il0sWyJiN2ExIiwiXHU2Mzk4XHU3YTlmXHU2YzkzXHU5Nzc0XHU4ZjYx''@;'; + put 'put ''XHU3YWFhXHU3MThhXHU5Njg4XHU3YzgyXHU2ODE3XHU3ZTcwXHU2ODUxXHU5MzZjXHU1MmYyXHU1NDFiXHU4NWFiXHU4YTEzXHU3ZmE0XHU4ZWNkXHU5MGUxXHU1MzY2XHU4ODg4XHU3OTQxXHU0ZmMyXHU1MGJlXHU1MjExXHU1MTQ0XHU1NTUzXHU1NzJkXHU3M2VhXHU1NzhiXHU1OTUxXHU1''@;'; + put 'put ''ZjYyXHU1Zjg0XHU2MDc1XHU2MTc2XHU2MTY3XHU2MWE5XHU2M2IyXHU2NDNhXHU2NTZjXHU2NjZmXHU2ODQyXHU2ZTEzXHU3NTY2XHU3YTNkXHU3Y2ZiXHU3ZDRjXHU3ZDk5XHU3ZTRiXHU3ZjZiXHU4MzBlXHU4MzRhXHU4NmNkXHU4YTA4XHU4YTYzXHU4YjY2XHU4ZWZkXHU5ODFhXHU5ZDhm''@;'; + put 'put ''XHU4MmI4XHU4ZmNlXHU5YmU4XHU1Mjg3XHU2MjFmXHU2NDgzXHU2ZmMwXHU5Njk5XHU2ODQxXHU1MDkxXHU2YjIwXHU2YzdhXHU2ZjU0XHU3YTc0XHU3ZDUwXHU4ODQwXHU4YTIzXHU2NzA4XHU0ZWY2XHU1MDM5XHU1MDI2XHU1MDY1XHU1MTdjXHU1MjM4XHU1MjYzXHU1NWE3XHU1NzBmXHU1''@;'; + put 'put ''ODA1XHU1YWNjXHU1ZWZhXHU2MWIyXHU2MWY4XHU2MmYzXHU2MzcyIl0sWyJiOGExIiwiXHU2OTFjXHU2YTI5XHU3MjdkXHU3MmFjXHU3MzJlXHU3ODE0XHU3ODZmXHU3ZDc5XHU3NzBjXHU4MGE5XHU4OThiXHU4YjE5XHU4Y2UyXHU4ZWQyXHU5MDYzXHU5Mzc1XHU5NjdhXHU5ODU1XHU5YTEz''@;'; + put 'put ''XHU5ZTc4XHU1MTQzXHU1MzlmXHU1M2IzXHU1ZTdiXHU1ZjI2XHU2ZTFiXHU2ZTkwXHU3Mzg0XHU3M2ZlXHU3ZDQzXHU4MjM3XHU4YTAwXHU4YWZhXHU5NjUwXHU0ZTRlXHU1MDBiXHU1M2U0XHU1NDdjXHU1NmZhXHU1OWQxXHU1YjY0XHU1ZGYxXHU1ZWFiXHU1ZjI3XHU2MjM4XHU2NTQ1XHU2''@;'; + put 'put ''N2FmXHU2ZTU2XHU3MmQwXHU3Y2NhXHU4OGI0XHU4MGExXHU4MGUxXHU4M2YwXHU4NjRlXHU4YTg3XHU4ZGU4XHU5MjM3XHU5NmM3XHU5ODY3XHU5ZjEzXHU0ZTk0XHU0ZTkyXHU0ZjBkXHU1MzQ4XHU1NDQ5XHU1NDNlXHU1YTJmXHU1ZjhjXHU1ZmExXHU2MDlmXHU2OGE3XHU2YThlXHU3NDVh''@;'; + put 'put ''XHU3ODgxXHU4YTllXHU4YWE0XHU4Yjc3XHU5MTkwXHU0ZTVlXHU5YmM5XHU0ZWE0XHU0ZjdjXHU0ZmFmXHU1MDE5XHU1MDE2XHU1MTQ5XHU1MTZjXHU1MjlmXHU1MmI5XHU1MmZlXHU1MzlhXHU1M2UzXHU1NDExIl0sWyJiOWExIiwiXHU1NDBlXHU1NTg5XHU1NzUxXHU1N2EyXHU1OTdkXHU1''@;'; + put 'put ''YjU0XHU1YjVkXHU1YjhmXHU1ZGU1XHU1ZGU3XHU1ZGY3XHU1ZTc4XHU1ZTgzXHU1ZTlhXHU1ZWI3XHU1ZjE4XHU2MDUyXHU2MTRjXHU2Mjk3XHU2MmQ4XHU2M2E3XHU2NTNiXHU2NjAyXHU2NjQzXHU2NmY0XHU2NzZkXHU2ODIxXHU2ODk3XHU2OWNiXHU2YzVmXHU2ZDJhXHU2ZDY5XHU2ZTJm''@;'; + put 'put ''XHU2ZTlkXHU3NTMyXHU3Njg3XHU3ODZjXHU3YTNmXHU3Y2UwXHU3ZDA1XHU3ZDE4XHU3ZDVlXHU3ZGIxXHU4MDE1XHU4MDAzXHU4MGFmXHU4MGIxXHU4MTU0XHU4MThmXHU4MjJhXHU4MzUyXHU4ODRjXHU4ODYxXHU4YjFiXHU4Y2EyXHU4Y2ZjXHU5MGNhXHU5MTc1XHU5MjcxXHU3ODNmXHU5''@;'; + put 'put ''MmZjXHU5NWE0XHU5NjRkXHU5ODA1XHU5OTk5XHU5YWQ4XHU5ZDNiXHU1MjViXHU1MmFiXHU1M2Y3XHU1NDA4XHU1OGQ1XHU2MmY3XHU2ZmUwXHU4YzZhXHU4ZjVmXHU5ZWI5XHU1MTRiXHU1MjNiXHU1NDRhXHU1NmZkXHU3YTQwXHU5MTc3XHU5ZDYwXHU5ZWQyXHU3MzQ0XHU2ZjA5XHU4MTcw''@;'; + put 'put ''XHU3NTExXHU1ZmZkXHU2MGRhXHU5YWE4XHU3MmRiXHU4ZmJjIl0sWyJiYWExIiwiXHU2YjY0XHU5ODAzXHU0ZWNhXHU1NmYwXHU1NzY0XHU1OGJlXHU1YTVhXHU2MDY4XHU2MWM3XHU2NjBmXHU2NjA2XHU2ODM5XHU2OGIxXHU2ZGY3XHU3NWQ1XHU3ZDNhXHU4MjZlXHU5YjQyXHU0ZTliXHU0''@;'; + put 'put ''ZjUwXHU1M2M5XHU1NTA2XHU1ZDZmXHU1ZGU2XHU1ZGVlXHU2N2ZiXHU2Yzk5XHU3NDczXHU3ODAyXHU4YTUwXHU5Mzk2XHU4OGRmXHU1NzUwXHU1ZWE3XHU2MzJiXHU1MGI1XHU1MGFjXHU1MThkXHU2NzAwXHU1NGM5XHU1ODVlXHU1OWJiXHU1YmIwXHU1ZjY5XHU2MjRkXHU2M2ExXHU2ODNk''@;'; + put 'put ''XHU2YjczXHU2ZTA4XHU3MDdkXHU5MWM3XHU3MjgwXHU3ODE1XHU3ODI2XHU3OTZkXHU2NThlXHU3ZDMwXHU4M2RjXHU4OGMxXHU4ZjA5XHU5NjliXHU1MjY0XHU1NzI4XHU2NzUwXHU3ZjZhXHU4Y2ExXHU1MWI0XHU1NzQyXHU5NjJhXHU1ODNhXHU2OThhXHU4MGI0XHU1NGIyXHU1ZDBlXHU1''@;'; + put 'put ''N2ZjXHU3ODk1XHU5ZGZhXHU0ZjVjXHU1MjRhXHU1NDhiXHU2NDNlXHU2NjI4XHU2NzE0XHU2N2Y1XHU3YTg0XHU3YjU2XHU3ZDIyXHU5MzJmXHU2ODVjXHU5YmFkXHU3YjM5XHU1MzE5XHU1MThhXHU1MjM3Il0sWyJiYmExIiwiXHU1YmRmXHU2MmY2XHU2NGFlXHU2NGU2XHU2NzJkXHU2YmJh''@;'; + put 'put ''XHU4NWE5XHU5NmQxXHU3NjkwXHU5YmQ2XHU2MzRjXHU5MzA2XHU5YmFiXHU3NmJmXHU2NjUyXHU0ZTA5XHU1MDk4XHU1M2MyXHU1YzcxXHU2MGU4XHU2NDkyXHU2NTYzXHU2ODVmXHU3MWU2XHU3M2NhXHU3NTIzXHU3Yjk3XHU3ZTgyXHU4Njk1XHU4YjgzXHU4Y2RiXHU5MTc4XHU5OTEwXHU2''@;'; + put 'put ''NWFjXHU2NmFiXHU2YjhiXHU0ZWQ1XHU0ZWQ0XHU0ZjNhXHU0ZjdmXHU1MjNhXHU1M2Y4XHU1M2YyXHU1NWUzXHU1NmRiXHU1OGViXHU1OWNiXHU1OWM5XHU1OWZmXHU1YjUwXHU1YzRkXHU1ZTAyXHU1ZTJiXHU1ZmQ3XHU2MDFkXHU2MzA3XHU2NTJmXHU1YjVjXHU2NWFmXHU2NWJkXHU2NWU4''@;'; + put 'put ''XHU2NzlkXHU2YjYyXHU2YjdiXHU2YzBmXHU3MzQ1XHU3OTQ5XHU3OWMxXHU3Y2Y4XHU3ZDE5XHU3ZDJiXHU4MGEyXHU4MTAyXHU4MWYzXHU4OTk2XHU4YTVlXHU4YTY5XHU4YTY2XHU4YThjXHU4YWVlXHU4Y2M3XHU4Y2RjXHU5NmNjXHU5OGZjXHU2YjZmXHU0ZThiXHU0ZjNjXHU0ZjhkXHU1''@;'; + put 'put ''MTUwXHU1YjU3XHU1YmZhXHU2MTQ4XHU2MzAxXHU2NjQyIl0sWyJiY2ExIiwiXHU2YjIxXHU2ZWNiXHU2Y2JiXHU3MjNlXHU3NGJkXHU3NWQ0XHU3OGMxXHU3OTNhXHU4MDBjXHU4MDMzXHU4MWVhXHU4NDk0XHU4ZjllXHU2YzUwXHU5ZTdmXHU1ZjBmXHU4YjU4XHU5ZDJiXHU3YWZhXHU4ZWY4''@;'; + put 'put ''XHU1YjhkXHU5NmViXHU0ZTAzXHU1M2YxXHU1N2Y3XHU1OTMxXHU1YWM5XHU1YmE0XHU2MDg5XHU2ZTdmXHU2ZjA2XHU3NWJlXHU4Y2VhXHU1YjlmXHU4NTAwXHU3YmUwXHU1MDcyXHU2N2Y0XHU4MjlkXHU1YzYxXHU4NTRhXHU3ZTFlXHU4MjBlXHU1MTk5XHU1YzA0XHU2MzY4XHU4ZDY2XHU2''@;'; + put 'put ''NTljXHU3MTZlXHU3OTNlXHU3ZDE3XHU4MDA1XHU4YjFkXHU4ZWNhXHU5MDZlXHU4NmM3XHU5MGFhXHU1MDFmXHU1MmZhXHU1YzNhXHU2NzUzXHU3MDdjXHU3MjM1XHU5MTRjXHU5MWM4XHU5MzJiXHU4MmU1XHU1YmMyXHU1ZjMxXHU2MGY5XHU0ZTNiXHU1M2Q2XHU1Yjg4XHU2MjRiXHU2NzMx''@;'; + put 'put ''XHU2YjhhXHU3MmU5XHU3M2UwXHU3YTJlXHU4MTZiXHU4ZGEzXHU5MTUyXHU5OTk2XHU1MTEyXHU1M2Q3XHU1NDZhXHU1YmZmXHU2Mzg4XHU2YTM5XHU3ZGFjXHU5NzAwXHU1NmRhXHU1M2NlXHU1NDY4Il0sWyJiZGExIiwiXHU1Yjk3XHU1YzMxXHU1ZGRlXHU0ZmVlXHU2MTAxXHU2MmZlXHU2''@;'; + put 'put ''ZDMyXHU3OWMwXHU3OWNiXHU3ZDQyXHU3ZTRkXHU3ZmQyXHU4MWVkXHU4MjFmXHU4NDkwXHU4ODQ2XHU4OTcyXHU4YjkwXHU4ZTc0XHU4ZjJmXHU5MDMxXHU5MTRiXHU5MTZjXHU5NmM2XHU5MTljXHU0ZWMwXHU0ZjRmXHU1MTQ1XHU1MzQxXHU1ZjkzXHU2MjBlXHU2N2Q0XHU2YzQxXHU2ZTBi''@;'; + put 'put ''XHU3MzYzXHU3ZTI2XHU5MWNkXHU5MjgzXHU1M2Q0XHU1OTE5XHU1YmJmXHU2ZGQxXHU3OTVkXHU3ZTJlXHU3YzliXHU1ODdlXHU3MTlmXHU1MWZhXHU4ODUzXHU4ZmYwXHU0ZmNhXHU1Y2ZiXHU2NjI1XHU3N2FjXHU3YWUzXHU4MjFjXHU5OWZmXHU1MWM2XHU1ZmFhXHU2NWVjXHU2OTZmXHU2''@;'; + put 'put ''Yjg5XHU2ZGYzXHU2ZTk2XHU2ZjY0XHU3NmZlXHU3ZDE0XHU1ZGUxXHU5MDc1XHU5MTg3XHU5ODA2XHU1MWU2XHU1MjFkXHU2MjQwXHU2NjkxXHU2NmQ5XHU2ZTFhXHU1ZWI2XHU3ZGQyXHU3ZjcyXHU2NmY4XHU4NWFmXHU4NWY3XHU4YWY4XHU1MmE5XHU1M2Q5XHU1OTczXHU1ZThmXHU1Zjkw''@;'; + put 'put ''XHU2MDU1XHU5MmU0XHU5NjY0XHU1MGI3XHU1MTFmIl0sWyJiZWExIiwiXHU1MmRkXHU1MzIwXHU1MzQ3XHU1M2VjXHU1NGU4XHU1NTQ2XHU1NTMxXHU1NjE3XHU1OTY4XHU1OWJlXHU1YTNjXHU1YmI1XHU1YzA2XHU1YzBmXHU1YzExXHU1YzFhXHU1ZTg0XHU1ZThhXHU1ZWUwXHU1ZjcwXHU2''@;'; + put 'put ''MjdmXHU2Mjg0XHU2MmRiXHU2MzhjXHU2Mzc3XHU2NjA3XHU2NjBjXHU2NjJkXHU2Njc2XHU2NzdlXHU2OGEyXHU2YTFmXHU2YTM1XHU2Y2JjXHU2ZDg4XHU2ZTA5XHU2ZTU4XHU3MTNjXHU3MTI2XHU3MTY3XHU3NWM3XHU3NzAxXHU3ODVkXHU3OTAxXHU3OTY1XHU3OWYwXHU3YWUwXHU3YjEx''@;'; + put 'put ''XHU3Y2E3XHU3ZDM5XHU4MDk2XHU4M2Q2XHU4NDhiXHU4NTQ5XHU4ODVkXHU4OGYzXHU4YTFmXHU4YTNjXHU4YTU0XHU4YTczXHU4YzYxXHU4Y2RlXHU5MWE0XHU5MjY2XHU5MzdlXHU5NDE4XHU5NjljXHU5Nzk4XHU0ZTBhXHU0ZTA4XHU0ZTFlXHU0ZTU3XHU1MTk3XHU1MjcwXHU1N2NlXHU1''@;'; + put 'put ''ODM0XHU1OGNjXHU1YjIyXHU1ZTM4XHU2MGM1XHU2NGZlXHU2NzYxXHU2NzU2XHU2ZDQ0XHU3MmI2XHU3NTczXHU3YTYzXHU4NGI4XHU4YjcyXHU5MWI4XHU5MzIwXHU1NjMxXHU1N2Y0XHU5OGZlIl0sWyJiZmExIiwiXHU2MmVkXHU2OTBkXHU2Yjk2XHU3MWVkXHU3ZTU0XHU4MDc3XHU4Mjcy''@;'; + put 'put ''XHU4OWU2XHU5OGRmXHU4NzU1XHU4ZmIxXHU1YzNiXHU0ZjM4XHU0ZmUxXHU0ZmI1XHU1NTA3XHU1YTIwXHU1YmRkXHU1YmU5XHU1ZmMzXHU2MTRlXHU2MzJmXHU2NWIwXHU2NjRiXHU2OGVlXHU2OTliXHU2ZDc4XHU2ZGYxXHU3NTMzXHU3NWI5XHU3NzFmXHU3OTVlXHU3OWU2XHU3ZDMzXHU4''@;'; + put 'put ''MWUzXHU4MmFmXHU4NWFhXHU4OWFhXHU4YTNhXHU4ZWFiXHU4ZjliXHU5MDMyXHU5MWRkXHU5NzA3XHU0ZWJhXHU0ZWMxXHU1MjAzXHU1ODc1XHU1OGVjXHU1YzBiXHU3NTFhXHU1YzNkXHU4MTRlXHU4YTBhXHU4ZmM1XHU5NjYzXHU5NzZkXHU3YjI1XHU4YWNmXHU5ODA4XHU5MTYyXHU1NmYz''@;'; + put 'put ''XHU1M2E4XHU5MDE3XHU1NDM5XHU1NzgyXHU1ZTI1XHU2M2E4XHU2YzM0XHU3MDhhXHU3NzYxXHU3YzhiXHU3ZmUwXHU4ODcwXHU5MDQyXHU5MTU0XHU5MzEwXHU5MzE4XHU5NjhmXHU3NDVlXHU5YWM0XHU1ZDA3XHU1ZDY5XHU2NTcwXHU2N2EyXHU4ZGE4XHU5NmRiXHU2MzZlXHU2NzQ5XHU2''@;'; + put 'put ''OTE5XHU4M2M1XHU5ODE3XHU5NmMwXHU4OGZlIl0sWyJjMGExIiwiXHU2Zjg0XHU2NDdhXHU1YmY4XHU0ZTE2XHU3MDJjXHU3NTVkXHU2NjJmXHU1MWM0XHU1MjM2XHU1MmUyXHU1OWQzXHU1ZjgxXHU2MDI3XHU2MjEwXHU2NTNmXHU2NTc0XHU2NjFmXHU2Njc0XHU2OGYyXHU2ODE2XHU2YjYz''@;'; + put 'put ''XHU2ZTA1XHU3MjcyXHU3NTFmXHU3NmRiXHU3Y2JlXHU4MDU2XHU1OGYwXHU4OGZkXHU4OTdmXHU4YWEwXHU4YTkzXHU4YWNiXHU5MDFkXHU5MTkyXHU5NzUyXHU5NzU5XHU2NTg5XHU3YTBlXHU4MTA2XHU5NmJiXHU1ZTJkXHU2MGRjXHU2MjFhXHU2NWE1XHU2NjE0XHU2NzkwXHU3N2YzXHU3''@;'; + put 'put ''YTRkXHU3YzRkXHU3ZTNlXHU4MTBhXHU4Y2FjXHU4ZDY0XHU4ZGUxXHU4ZTVmXHU3OGE5XHU1MjA3XHU2MmQ5XHU2M2E1XHU2NDQyXHU2Mjk4XHU4YTJkXHU3YTgzXHU3YmMwXHU4YWFjXHU5NmVhXHU3ZDc2XHU4MjBjXHU4NzQ5XHU0ZWQ5XHU1MTQ4XHU1MzQzXHU1MzYwXHU1YmEzXHU1YzAy''@;'; + put 'put ''XHU1YzE2XHU1ZGRkXHU2MjI2XHU2MjQ3XHU2NGIwXHU2ODEzXHU2ODM0XHU2Y2M5XHU2ZDQ1XHU2ZDE3XHU2N2QzXHU2ZjVjXHU3MTRlXHU3MTdkXHU2NWNiXHU3YTdmXHU3YmFkXHU3ZGRhIl0sWyJjMWExIiwiXHU3ZTRhXHU3ZmE4XHU4MTdhXHU4MjFiXHU4MjM5XHU4NWE2XHU4YTZlXHU4''@;'; + put 'put ''Y2NlXHU4ZGY1XHU5MDc4XHU5MDc3XHU5MmFkXHU5MjkxXHU5NTgzXHU5YmFlXHU1MjRkXHU1NTg0XHU2ZjM4XHU3MTM2XHU1MTY4XHU3OTg1XHU3ZTU1XHU4MWIzXHU3Y2NlXHU1NjRjXHU1ODUxXHU1Y2E4XHU2M2FhXHU2NmZlXHU2NmZkXHU2OTVhXHU3MmQ5XHU3NThmXHU3NThlXHU3OTBl''@;'; + put 'put ''XHU3OTU2XHU3OWRmXHU3Yzk3XHU3ZDIwXHU3ZDQ0XHU4NjA3XHU4YTM0XHU5NjNiXHU5MDYxXHU5ZjIwXHU1MGU3XHU1Mjc1XHU1M2NjXHU1M2UyXHU1MDA5XHU1NWFhXHU1OGVlXHU1OTRmXHU3MjNkXHU1YjhiXHU1YzY0XHU1MzFkXHU2MGUzXHU2MGYzXHU2MzVjXHU2MzgzXHU2MzNmXHU2''@;'; + put 'put ''M2JiXHU2NGNkXHU2NWU5XHU2NmY5XHU1ZGUzXHU2OWNkXHU2OWZkXHU2ZjE1XHU3MWU1XHU0ZTg5XHU3NWU5XHU3NmY4XHU3YTkzXHU3Y2RmXHU3ZGNmXHU3ZDljXHU4MDYxXHU4MzQ5XHU4MzU4XHU4NDZjXHU4NGJjXHU4NWZiXHU4OGM1XHU4ZDcwXHU5MDAxXHU5MDZkXHU5Mzk3XHU5NzFj''@;'; + put 'put ''XHU5YTEyXHU1MGNmXHU1ODk3XHU2MThlIl0sWyJjMmExIiwiXHU4MWQzXHU4NTM1XHU4ZDA4XHU5MDIwXHU0ZmMzXHU1MDc0XHU1MjQ3XHU1MzczXHU2MDZmXHU2MzQ5XHU2NzVmXHU2ZTJjXHU4ZGIzXHU5MDFmXHU0ZmQ3XHU1YzVlXHU4Y2NhXHU2NWNmXHU3ZDlhXHU1MzUyXHU4ODk2XHU1''@;'; + put 'put ''MTc2XHU2M2MzXHU1YjU4XHU1YjZiXHU1YzBhXHU2NDBkXHU2NzUxXHU5MDVjXHU0ZWQ2XHU1OTFhXHU1OTJhXHU2YzcwXHU4YTUxXHU1NTNlXHU1ODE1XHU1OWE1XHU2MGYwXHU2MjUzXHU2N2MxXHU4MjM1XHU2OTU1XHU5NjQwXHU5OWM0XHU5YTI4XHU0ZjUzXHU1ODA2XHU1YmZlXHU4MDEw''@;'; + put 'put ''XHU1Y2IxXHU1ZTJmXHU1Zjg1XHU2MDIwXHU2MTRiXHU2MjM0XHU2NmZmXHU2Y2YwXHU2ZWRlXHU4MGNlXHU4MTdmXHU4MmQ0XHU4ODhiXHU4Y2I4XHU5MDAwXHU5MDJlXHU5NjhhXHU5ZWRiXHU5YmRiXHU0ZWUzXHU1M2YwXHU1OTI3XHU3YjJjXHU5MThkXHU5ODRjXHU5ZGY5XHU2ZWRkXHU3''@;'; + put 'put ''MDI3XHU1MzUzXHU1NTQ0XHU1Yjg1XHU2MjU4XHU2MjllXHU2MmQzXHU2Y2EyXHU2ZmVmXHU3NDIyXHU4YTE3XHU5NDM4XHU2ZmMxXHU4YWZlXHU4MzM4XHU1MWU3XHU4NmY4XHU1M2VhIl0sWyJjM2ExIiwiXHU1M2U5XHU0ZjQ2XHU5MDU0XHU4ZmIwXHU1OTZhXHU4MTMxXHU1ZGZkXHU3YWVh''@;'; + put 'put ''XHU4ZmJmXHU2OGRhXHU4YzM3XHU3MmY4XHU5YzQ4XHU2YTNkXHU4YWIwXHU0ZTM5XHU1MzU4XHU1NjA2XHU1NzY2XHU2MmM1XHU2M2EyXHU2NWU2XHU2YjRlXHU2ZGUxXHU2ZTViXHU3MGFkXHU3N2VkXHU3YWVmXHU3YmFhXHU3ZGJiXHU4MDNkXHU4MGM2XHU4NmNiXHU4YTk1XHU5MzViXHU1''@;'; + put 'put ''NmUzXHU1OGM3XHU1ZjNlXHU2NWFkXHU2Njk2XHU2YTgwXHU2YmI1XHU3NTM3XHU4YWM3XHU1MDI0XHU3N2U1XHU1NzMwXHU1ZjFiXHU2MDY1XHU2NjdhXHU2YzYwXHU3NWY0XHU3YTFhXHU3ZjZlXHU4MWY0XHU4NzE4XHU5MDQ1XHU5OWIzXHU3YmM5XHU3NTVjXHU3YWY5XHU3YjUxXHU4NGM0''@;'; + put 'put ''XHU5MDEwXHU3OWU5XHU3YTkyXHU4MzM2XHU1YWUxXHU3NzQwXHU0ZTJkXHU0ZWYyXHU1Yjk5XHU1ZmUwXHU2MmJkXHU2NjNjXHU2N2YxXHU2Y2U4XHU4NjZiXHU4ODc3XHU4YTNiXHU5MTRlXHU5MmYzXHU5OWQwXHU2YTE3XHU3MDI2XHU3MzJhXHU4MmU3XHU4NDU3XHU4Y2FmXHU0ZTAxXHU1''@;'; + put 'put ''MTQ2XHU1MWNiXHU1NThiXHU1YmY1Il0sWyJjNGExIiwiXHU1ZTE2XHU1ZTMzXHU1ZTgxXHU1ZjE0XHU1ZjM1XHU1ZjZiXHU1ZmI0XHU2MWYyXHU2MzExXHU2NmEyXHU2NzFkXHU2ZjZlXHU3MjUyXHU3NTNhXHU3NzNhXHU4MDc0XHU4MTM5XHU4MTc4XHU4Nzc2XHU4YWJmXHU4YWRjXHU4ZDg1''@;'; + put 'put ''XHU4ZGYzXHU5MjlhXHU5NTc3XHU5ODAyXHU5Y2U1XHU1MmM1XHU2MzU3XHU3NmY0XHU2NzE1XHU2Yzg4XHU3M2NkXHU4Y2MzXHU5M2FlXHU5NjczXHU2ZDI1XHU1ODljXHU2OTBlXHU2OWNjXHU4ZmZkXHU5MzlhXHU3NWRiXHU5MDFhXHU1ODVhXHU2ODAyXHU2M2I0XHU2OWZiXHU0ZjQzXHU2''@;'; + put 'put ''ZjJjXHU2N2Q4XHU4ZmJiXHU4NTI2XHU3ZGI0XHU5MzU0XHU2OTNmXHU2ZjcwXHU1NzZhXHU1OGY3XHU1YjJjXHU3ZDJjXHU3MjJhXHU1NDBhXHU5MWUzXHU5ZGI0XHU0ZWFkXHU0ZjRlXHU1MDVjXHU1MDc1XHU1MjQzXHU4YzllXHU1NDQ4XHU1ODI0XHU1YjlhXHU1ZTFkXHU1ZTk1XHU1ZWFk''@;'; + put 'put ''XHU1ZWY3XHU1ZjFmXHU2MDhjXHU2MmI1XHU2MzNhXHU2M2QwXHU2OGFmXHU2YzQwXHU3ODg3XHU3OThlXHU3YTBiXHU3ZGUwXHU4MjQ3XHU4YTAyXHU4YWU2XHU4ZTQ0XHU5MDEzIl0sWyJjNWExIiwiXHU5MGI4XHU5MTJkXHU5MWQ4XHU5ZjBlXHU2Y2U1XHU2NDU4XHU2NGUyXHU2NTc1XHU2''@;'; + put 'put ''ZWY0XHU3Njg0XHU3YjFiXHU5MDY5XHU5M2QxXHU2ZWJhXHU1NGYyXHU1ZmI5XHU2NGE0XHU4ZjRkXHU4ZmVkXHU5MjQ0XHU1MTc4XHU1ODZiXHU1OTI5XHU1YzU1XHU1ZTk3XHU2ZGZiXHU3ZThmXHU3NTFjXHU4Y2JjXHU4ZWUyXHU5ODViXHU3MGI5XHU0ZjFkXHU2YmJmXHU2ZmIxXHU3NTMw''@;'; + put 'put ''XHU5NmZiXHU1MTRlXHU1NDEwXHU1ODM1XHU1ODU3XHU1OWFjXHU1YzYwXHU1ZjkyXHU2NTk3XHU2NzVjXHU2ZTIxXHU3NjdiXHU4M2RmXHU4Y2VkXHU5MDE0XHU5MGZkXHU5MzRkXHU3ODI1XHU3ODNhXHU1MmFhXHU1ZWE2XHU1NzFmXHU1OTc0XHU2MDEyXHU1MDEyXHU1MTVhXHU1MWFjXHU1''@;'; + put 'put ''MWNkXHU1MjAwXHU1NTEwXHU1ODU0XHU1ODU4XHU1OTU3XHU1Yjk1XHU1Y2Y2XHU1ZDhiXHU2MGJjXHU2Mjk1XHU2NDJkXHU2NzcxXHU2ODQzXHU2OGJjXHU2OGRmXHU3NmQ3XHU2ZGQ4XHU2ZTZmXHU2ZDliXHU3MDZmXHU3MWM4XHU1ZjUzXHU3NWQ4XHU3OTc3XHU3YjQ5XHU3YjU0XHU3YjUy''@;'; + put 'put ''XHU3Y2Q2XHU3ZDcxXHU1MjMwIl0sWyJjNmExIiwiXHU4NDYzXHU4NTY5XHU4NWU0XHU4YTBlXHU4YjA0XHU4YzQ2XHU4ZTBmXHU5MDAzXHU5MDBmXHU5NDE5XHU5Njc2XHU5ODJkXHU5YTMwXHU5NWQ4XHU1MGNkXHU1MmQ1XHU1NDBjXHU1ODAyXHU1YzBlXHU2MWE3XHU2NDllXHU2ZDFlXHU3''@;'; + put 'put ''N2IzXHU3YWU1XHU4MGY0XHU4NDA0XHU5MDUzXHU5Mjg1XHU1Y2UwXHU5ZDA3XHU1MzNmXHU1Zjk3XHU1ZmIzXHU2ZDljXHU3Mjc5XHU3NzYzXHU3OWJmXHU3YmU0XHU2YmQyXHU3MmVjXHU4YWFkXHU2ODAzXHU2YTYxXHU1MWY4XHU3YTgxXHU2OTM0XHU1YzRhXHU5Y2Y2XHU4MmViXHU1YmM1''@;'; + put 'put ''XHU5MTQ5XHU3MDFlXHU1Njc4XHU1YzZmXHU2MGM3XHU2NTY2XHU2YzhjXHU4YzVhXHU5MDQxXHU5ODEzXHU1NDUxXHU2NmM3XHU5MjBkXHU1OTQ4XHU5MGEzXHU1MTg1XHU0ZTRkXHU1MWVhXHU4NTk5XHU4YjBlXHU3MDU4XHU2MzdhXHU5MzRiXHU2OTYyXHU5OWI0XHU3ZTA0XHU3NTc3XHU1''@;'; + put 'put ''MzU3XHU2OTYwXHU4ZWRmXHU5NmUzXHU2YzVkXHU0ZThjXHU1YzNjXHU1ZjEwXHU4ZmU5XHU1MzAyXHU4Y2QxXHU4MDg5XHU4Njc5XHU1ZWZmXHU2NWU1XHU0ZTczXHU1MTY1Il0sWyJjN2ExIiwiXHU1OTgyXHU1YzNmXHU5N2VlXHU0ZWZiXHU1OThhXHU1ZmNkXHU4YThkXHU2ZmUxXHU3OWIw''@;'; + put 'put ''XHU3OTYyXHU1YmU3XHU4NDcxXHU3MzJiXHU3MWIxXHU1ZTc0XHU1ZmY1XHU2MzdiXHU2NDlhXHU3MWMzXHU3Yzk4XHU0ZTQzXHU1ZWZjXHU0ZTRiXHU1N2RjXHU1NmEyXHU2MGE5XHU2ZmMzXHU3ZDBkXHU4MGZkXHU4MTMzXHU4MWJmXHU4ZmIyXHU4OTk3XHU4NmE0XHU1ZGY0XHU2MjhhXHU2''@;'; + put 'put ''NGFkXHU4OTg3XHU2Nzc3XHU2Y2UyXHU2ZDNlXHU3NDM2XHU3ODM0XHU1YTQ2XHU3Zjc1XHU4MmFkXHU5OWFjXHU0ZmYzXHU1ZWMzXHU2MmRkXHU2MzkyXHU2NTU3XHU2NzZmXHU3NmMzXHU3MjRjXHU4MGNjXHU4MGJhXHU4ZjI5XHU5MTRkXHU1MDBkXHU1N2Y5XHU1YTkyXHU2ODg1XHU2OTcz''@;'; + put 'put ''XHU3MTY0XHU3MmZkXHU4Y2I3XHU1OGYyXHU4Y2UwXHU5NjZhXHU5MDE5XHU4NzdmXHU3OWU0XHU3N2U3XHU4NDI5XHU0ZjJmXHU1MjY1XHU1MzVhXHU2MmNkXHU2N2NmXHU2Y2NhXHU3NjdkXHU3Yjk0XHU3Yzk1XHU4MjM2XHU4NTg0XHU4ZmViXHU2NmRkXHU2ZjIwXHU3MjA2XHU3ZTFiXHU4''@;'; + put 'put ''M2FiXHU5OWMxXHU5ZWE2Il0sWyJjOGExIiwiXHU1MWZkXHU3YmIxXHU3ODcyXHU3YmI4XHU4MDg3XHU3YjQ4XHU2YWU4XHU1ZTYxXHU4MDhjXHU3NTUxXHU3NTYwXHU1MTZiXHU5MjYyXHU2ZThjXHU3NjdhXHU5MTk3XHU5YWVhXHU0ZjEwXHU3ZjcwXHU2MjljXHU3YjRmXHU5NWE1XHU5Y2U5''@;'; + put 'put ''XHU1NjdhXHU1ODU5XHU4NmU0XHU5NmJjXHU0ZjM0XHU1MjI0XHU1MzRhXHU1M2NkXHU1M2RiXHU1ZTA2XHU2NDJjXHU2NTkxXHU2NzdmXHU2YzNlXHU2YzRlXHU3MjQ4XHU3MmFmXHU3M2VkXHU3NTU0XHU3ZTQxXHU4MjJjXHU4NWU5XHU4Y2E5XHU3YmM0XHU5MWM2XHU3MTY5XHU5ODEyXHU5''@;'; + put 'put ''OGVmXHU2MzNkXHU2NjY5XHU3NTZhXHU3NmU0XHU3OGQwXHU4NTQzXHU4NmVlXHU1MzJhXHU1MzUxXHU1NDI2XHU1OTgzXHU1ZTg3XHU1ZjdjXHU2MGIyXHU2MjQ5XHU2Mjc5XHU2MmFiXHU2NTkwXHU2YmQ0XHU2Y2NjXHU3NWIyXHU3NmFlXHU3ODkxXHU3OWQ4XHU3ZGNiXHU3Zjc3XHU4MGE1''@;'; + put 'put ''XHU4OGFiXHU4YWI5XHU4Y2JiXHU5MDdmXHU5NzVlXHU5OGRiXHU2YTBiXHU3YzM4XHU1MDk5XHU1YzNlXHU1ZmFlXHU2Nzg3XHU2YmQ4XHU3NDM1XHU3NzA5XHU3ZjhlIl0sWyJjOWExIiwiXHU5ZjNiXHU2N2NhXHU3YTE3XHU1MzM5XHU3NThiXHU5YWVkXHU1ZjY2XHU4MTlkXHU4M2YxXHU4''@;'; + put 'put ''MDk4XHU1ZjNjXHU1ZmM1XHU3NTYyXHU3YjQ2XHU5MDNjXHU2ODY3XHU1OWViXHU1YTliXHU3ZDEwXHU3NjdlXHU4YjJjXHU0ZmY1XHU1ZjZhXHU2YTE5XHU2YzM3XHU2ZjAyXHU3NGUyXHU3OTY4XHU4ODY4XHU4YTU1XHU4Yzc5XHU1ZWRmXHU2M2NmXHU3NWM1XHU3OWQyXHU4MmQ3XHU5MzI4''@;'; + put 'put ''XHU5MmYyXHU4NDljXHU4NmVkXHU5YzJkXHU1NGMxXHU1ZjZjXHU2NThjXHU2ZDVjXHU3MDE1XHU4Y2E3XHU4Y2QzXHU5ODNiXHU2NTRmXHU3NGY2XHU0ZTBkXHU0ZWQ4XHU1N2UwXHU1OTJiXHU1YTY2XHU1YmNjXHU1MWE4XHU1ZTAzXHU1ZTljXHU2MDE2XHU2Mjc2XHU2NTc3XHU2NWE3XHU2''@;'; + put 'put ''NjZlXHU2ZDZlXHU3MjM2XHU3YjI2XHU4MTUwXHU4MTlhXHU4Mjk5XHU4YjVjXHU4Y2EwXHU4Y2U2XHU4ZDc0XHU5NjFjXHU5NjQ0XHU0ZmFlXHU2NGFiXHU2YjY2XHU4MjFlXHU4NDYxXHU4NTZhXHU5MGU4XHU1YzAxXHU2OTUzXHU5OGE4XHU4NDdhXHU4NTU3XHU0ZjBmXHU1MjZmXHU1ZmE5''@;'; + put 'put ''XHU1ZTQ1XHU2NzBkIl0sWyJjYWExIiwiXHU3OThmXHU4MTc5XHU4OTA3XHU4OTg2XHU2ZGY1XHU1ZjE3XHU2MjU1XHU2Y2I4XHU0ZWNmXHU3MjY5XHU5YjkyXHU1MjA2XHU1NDNiXHU1Njc0XHU1OGIzXHU2MWE0XHU2MjZlXHU3MTFhXHU1OTZlXHU3Yzg5XHU3Y2RlXHU3ZDFiXHU5NmYwXHU2''@;'; + put 'put ''NTg3XHU4MDVlXHU0ZTE5XHU0Zjc1XHU1MTc1XHU1ODQwXHU1ZTYzXHU1ZTczXHU1ZjBhXHU2N2M0XHU0ZTI2XHU4NTNkXHU5NTg5XHU5NjViXHU3YzczXHU5ODAxXHU1MGZiXHU1OGMxXHU3NjU2XHU3OGE3XHU1MjI1XHU3N2E1XHU4NTExXHU3Yjg2XHU1MDRmXHU1OTA5XHU3MjQ3XHU3YmM3''@;'; + put 'put ''XHU3ZGU4XHU4ZmJhXHU4ZmQ0XHU5MDRkXHU0ZmJmXHU1MmM5XHU1YTI5XHU1ZjAxXHU5N2FkXHU0ZmRkXHU4MjE3XHU5MmVhXHU1NzAzXHU2MzU1XHU2YjY5XHU3NTJiXHU4OGRjXHU4ZjE0XHU3YTQyXHU1MmRmXHU1ODkzXHU2MTU1XHU2MjBhXHU2NmFlXHU2YmNkXHU3YzNmXHU4M2U5XHU1''@;'; + put 'put ''MDIzXHU0ZmY4XHU1MzA1XHU1NDQ2XHU1ODMxXHU1OTQ5XHU1YjlkXHU1Y2YwXHU1Y2VmXHU1ZDI5XHU1ZTk2XHU2MmIxXHU2MzY3XHU2NTNlXHU2NWI5XHU2NzBiIl0sWyJjYmExIiwiXHU2Y2Q1XHU2Y2UxXHU3MGY5XHU3ODMyXHU3ZTJiXHU4MGRlXHU4MmIzXHU4NDBjXHU4NGVjXHU4NzAy''@;'; + put 'put ''XHU4OTEyXHU4YTJhXHU4YzRhXHU5MGE2XHU5MmQyXHU5OGZkXHU5Y2YzXHU5ZDZjXHU0ZTRmXHU0ZWExXHU1MDhkXHU1MjU2XHU1NzRhXHU1OWE4XHU1ZTNkXHU1ZmQ4XHU1ZmQ5XHU2MjNmXHU2NmI0XHU2NzFiXHU2N2QwXHU2OGQyXHU1MTkyXHU3ZDIxXHU4MGFhXHU4MWE4XHU4YjAwXHU4''@;'; + put 'put ''YzhjXHU4Y2JmXHU5MjdlXHU5NjMyXHU1NDIwXHU5ODJjXHU1MzE3XHU1MGQ1XHU1MzVjXHU1OGE4XHU2NGIyXHU2NzM0XHU3MjY3XHU3NzY2XHU3YTQ2XHU5MWU2XHU1MmMzXHU2Y2ExXHU2Yjg2XHU1ODAwXHU1ZTRjXHU1OTU0XHU2NzJjXHU3ZmZiXHU1MWUxXHU3NmM2XHU2NDY5XHU3OGU4''@;'; + put 'put ''XHU5YjU0XHU5ZWJiXHU1N2NiXHU1OWI5XHU2NjI3XHU2NzlhXHU2YmNlXHU1NGU5XHU2OWQ5XHU1ZTU1XHU4MTljXHU2Nzk1XHU5YmFhXHU2N2ZlXHU5YzUyXHU2ODVkXHU0ZWE2XHU0ZmUzXHU1M2M4XHU2MmI5XHU2NzJiXHU2Y2FiXHU4ZmM0XHU0ZmFkXHU3ZTZkXHU5ZWJmXHU0ZTA3XHU2''@;'; + put 'put ''MTYyXHU2ZTgwIl0sWyJjY2ExIiwiXHU2ZjJiXHU4NTEzXHU1NDczXHU2NzJhXHU5YjQ1XHU1ZGYzXHU3Yjk1XHU1Y2FjXHU1YmM2XHU4NzFjXHU2ZTRhXHU4NGQxXHU3YTE0XHU4MTA4XHU1OTk5XHU3YzhkXHU2YzExXHU3NzIwXHU1MmQ5XHU1OTIyXHU3MTIxXHU3MjVmXHU3N2RiXHU5NzI3''@;'; + put 'put ''XHU5ZDYxXHU2OTBiXHU1YTdmXHU1YTE4XHU1MWE1XHU1NDBkXHU1NDdkXHU2NjBlXHU3NmRmXHU4ZmY3XHU5Mjk4XHU5Y2Y0XHU1OWVhXHU3MjVkXHU2ZWM1XHU1MTRkXHU2OGM5XHU3ZGJmXHU3ZGVjXHU5NzYyXHU5ZWJhXHU2NDc4XHU2YTIxXHU4MzAyXHU1OTg0XHU1YjVmXHU2YmRiXHU3''@;'; + put 'put ''MzFiXHU3NmYyXHU3ZGIyXHU4MDE3XHU4NDk5XHU1MTMyXHU2NzI4XHU5ZWQ5XHU3NmVlXHU2NzYyXHU1MmZmXHU5OTA1XHU1YzI0XHU2MjNiXHU3YzdlXHU4Y2IwXHU1NTRmXHU2MGI2XHU3ZDBiXHU5NTgwXHU1MzAxXHU0ZTVmXHU1MWI2XHU1OTFjXHU3MjNhXHU4MDM2XHU5MWNlXHU1ZjI1''@;'; + put 'put ''XHU3N2UyXHU1Mzg0XHU1Zjc5XHU3ZDA0XHU4NWFjXHU4YTMzXHU4ZThkXHU5NzU2XHU2N2YzXHU4NWFlXHU5NDUzXHU2MTA5XHU2MTA4XHU2Y2I5XHU3NjUyIl0sWyJjZGExIiwiXHU4YWVkXHU4ZjM4XHU1NTJmXHU0ZjUxXHU1MTJhXHU1MmM3XHU1M2NiXHU1YmE1XHU1ZTdkXHU2MGEwXHU2''@;'; + put 'put ''MTgyXHU2M2Q2XHU2NzA5XHU2N2RhXHU2ZTY3XHU2ZDhjXHU3MzM2XHU3MzM3XHU3NTMxXHU3OTUwXHU4OGQ1XHU4YTk4XHU5MDRhXHU5MDkxXHU5MGY1XHU5NmM0XHU4NzhkXHU1OTE1XHU0ZTg4XHU0ZjU5XHU0ZTBlXHU4YTg5XHU4ZjNmXHU5ODEwXHU1MGFkXHU1ZTdjXHU1OTk2XHU1YmI5''@;'; + put 'put ''XHU1ZWI4XHU2M2RhXHU2M2ZhXHU2NGMxXHU2NmRjXHU2OTRhXHU2OWQ4XHU2ZDBiXHU2ZWI2XHU3MTk0XHU3NTI4XHU3YWFmXHU3ZjhhXHU4MDAwXHU4NDQ5XHU4NGM5XHU4OTgxXHU4YjIxXHU4ZTBhXHU5MDY1XHU5NjdkXHU5OTBhXHU2MTdlXHU2MjkxXHU2YjMyXHU2YzgzXHU2ZDc0XHU3''@;'; + put 'put ''ZmNjXHU3ZmZjXHU2ZGMwXHU3Zjg1XHU4N2JhXHU4OGY4XHU2NzY1XHU4M2IxXHU5ODNjXHU5NmY3XHU2ZDFiXHU3ZDYxXHU4NDNkXHU5MTZhXHU0ZTcxXHU1Mzc1XHU1ZDUwXHU2YjA0XHU2ZmViXHU4NWNkXHU4NjJkXHU4OWE3XHU1MjI5XHU1NDBmXHU1YzY1XHU2NzRlXHU2OGE4XHU3NDA2''@;'; + put 'put ''XHU3NDgzIl0sWyJjZWExIiwiXHU3NWUyXHU4OGNmXHU4OGUxXHU5MWNjXHU5NmUyXHU5Njc4XHU1ZjhiXHU3Mzg3XHU3YWNiXHU4NDRlXHU2M2EwXHU3NTY1XHU1Mjg5XHU2ZDQxXHU2ZTljXHU3NDA5XHU3NTU5XHU3ODZiXHU3YzkyXHU5Njg2XHU3YWRjXHU5ZjhkXHU0ZmI2XHU2MTZlXHU2''@;'; + put 'put ''NWM1XHU4NjVjXHU0ZTg2XHU0ZWFlXHU1MGRhXHU0ZTIxXHU1MWNjXHU1YmVlXHU2NTk5XHU2ODgxXHU2ZGJjXHU3MzFmXHU3NjQyXHU3N2FkXHU3YTFjXHU3Y2U3XHU4MjZmXHU4YWQyXHU5MDdjXHU5MWNmXHU5Njc1XHU5ODE4XHU1MjliXHU3ZGQxXHU1MDJiXHU1Mzk4XHU2Nzk3XHU2ZGNi''@;'; + put 'put ''XHU3MWQwXHU3NDMzXHU4MWU4XHU4ZjJhXHU5NmEzXHU5YzU3XHU5ZTlmXHU3NDYwXHU1ODQxXHU2ZDk5XHU3ZDJmXHU5ODVlXHU0ZWU0XHU0ZjM2XHU0ZjhiXHU1MWI3XHU1MmIxXHU1ZGJhXHU2MDFjXHU3M2IyXHU3OTNjXHU4MmQzXHU5MjM0XHU5NmI3XHU5NmY2XHU5NzBhXHU5ZTk3XHU5''@;'; + put 'put ''ZjYyXHU2NmE2XHU2Yjc0XHU1MjE3XHU1MmEzXHU3MGM4XHU4OGMyXHU1ZWM5XHU2MDRiXHU2MTkwXHU2ZjIzXHU3MTQ5XHU3YzNlXHU3ZGY0XHU4MDZmIl0sWyJjZmExIiwiXHU4NGVlXHU5MDIzXHU5MzJjXHU1NDQyXHU5YjZmXHU2YWQzXHU3MDg5XHU4Y2MyXHU4ZGVmXHU5NzMyXHU1MmI0''@;'; + put 'put ''XHU1YTQxXHU1ZWNhXHU1ZjA0XHU2NzE3XHU2OTdjXHU2OTk0XHU2ZDZhXHU2ZjBmXHU3MjYyXHU3MmZjXHU3YmVkXHU4MDAxXHU4MDdlXHU4NzRiXHU5MGNlXHU1MTZkXHU5ZTkzXHU3OTg0XHU4MDhiXHU5MzMyXHU4YWQ2XHU1MDJkXHU1NDhjXHU4YTcxXHU2YjZhXHU4Y2M0XHU4MTA3XHU2''@;'; + put 'put ''MGQxXHU2N2EwXHU5ZGYyXHU0ZTk5XHU0ZTk4XHU5YzEwXHU4YTZiXHU4NWMxXHU4NTY4XHU2OTAwXHU2ZTdlXHU3ODk3XHU4MTU1Il0sWyJkMGExIiwiXHU1ZjBjXHU0ZTEwXHU0ZTE1XHU0ZTJhXHU0ZTMxXHU0ZTM2XHU0ZTNjXHU0ZTNmXHU0ZTQyXHU0ZTU2XHU0ZTU4XHU0ZTgyXHU0ZTg1''@;'; + put 'put ''XHU4YzZiXHU0ZThhXHU4MjEyXHU1ZjBkXHU0ZThlXHU0ZTllXHU0ZTlmXHU0ZWEwXHU0ZWEyXHU0ZWIwXHU0ZWIzXHU0ZWI2XHU0ZWNlXHU0ZWNkXHU0ZWM0XHU0ZWM2XHU0ZWMyXHU0ZWQ3XHU0ZWRlXHU0ZWVkXHU0ZWRmXHU0ZWY3XHU0ZjA5XHU0ZjVhXHU0ZjMwXHU0ZjViXHU0ZjVkXHU0''@;'; + put 'put ''ZjU3XHU0ZjQ3XHU0Zjc2XHU0Zjg4XHU0ZjhmXHU0Zjk4XHU0ZjdiXHU0ZjY5XHU0ZjcwXHU0ZjkxXHU0ZjZmXHU0Zjg2XHU0Zjk2XHU1MTE4XHU0ZmQ0XHU0ZmRmXHU0ZmNlXHU0ZmQ4XHU0ZmRiXHU0ZmQxXHU0ZmRhXHU0ZmQwXHU0ZmU0XHU0ZmU1XHU1MDFhXHU1MDI4XHU1MDE0XHU1MDJh''@;'; + put 'put ''XHU1MDI1XHU1MDA1XHU0ZjFjXHU0ZmY2XHU1MDIxXHU1MDI5XHU1MDJjXHU0ZmZlXHU0ZmVmXHU1MDExXHU1MDA2XHU1MDQzXHU1MDQ3XHU2NzAzXHU1MDU1XHU1MDUwXHU1MDQ4XHU1MDVhXHU1MDU2XHU1MDZjXHU1MDc4XHU1MDgwXHU1MDlhXHU1MDg1XHU1MGI0XHU1MGIyIl0sWyJkMWEx''@;'; + put 'put ''IiwiXHU1MGM5XHU1MGNhXHU1MGIzXHU1MGMyXHU1MGQ2XHU1MGRlXHU1MGU1XHU1MGVkXHU1MGUzXHU1MGVlXHU1MGY5XHU1MGY1XHU1MTA5XHU1MTAxXHU1MTAyXHU1MTE2XHU1MTE1XHU1MTE0XHU1MTFhXHU1MTIxXHU1MTNhXHU1MTM3XHU1MTNjXHU1MTNiXHU1MTNmXHU1MTQwXHU1MTUy''@;'; + put 'put ''XHU1MTRjXHU1MTU0XHU1MTYyXHU3YWY4XHU1MTY5XHU1MTZhXHU1MTZlXHU1MTgwXHU1MTgyXHU1NmQ4XHU1MThjXHU1MTg5XHU1MThmXHU1MTkxXHU1MTkzXHU1MTk1XHU1MTk2XHU1MWE0XHU1MWE2XHU1MWEyXHU1MWE5XHU1MWFhXHU1MWFiXHU1MWIzXHU1MWIxXHU1MWIyXHU1MWIwXHU1''@;'; + put 'put ''MWI1XHU1MWJkXHU1MWM1XHU1MWM5XHU1MWRiXHU1MWUwXHU4NjU1XHU1MWU5XHU1MWVkXHU1MWYwXHU1MWY1XHU1MWZlXHU1MjA0XHU1MjBiXHU1MjE0XHU1MjBlXHU1MjI3XHU1MjJhXHU1MjJlXHU1MjMzXHU1MjM5XHU1MjRmXHU1MjQ0XHU1MjRiXHU1MjRjXHU1MjVlXHU1MjU0XHU1MjZh''@;'; + put 'put ''XHU1Mjc0XHU1MjY5XHU1MjczXHU1MjdmXHU1MjdkXHU1MjhkXHU1Mjk0XHU1MjkyXHU1MjcxXHU1Mjg4XHU1MjkxXHU4ZmE4Il0sWyJkMmExIiwiXHU4ZmE3XHU1MmFjXHU1MmFkXHU1MmJjXHU1MmI1XHU1MmMxXHU1MmNkXHU1MmQ3XHU1MmRlXHU1MmUzXHU1MmU2XHU5OGVkXHU1MmUwXHU1''@;'; + put 'put ''MmYzXHU1MmY1XHU1MmY4XHU1MmY5XHU1MzA2XHU1MzA4XHU3NTM4XHU1MzBkXHU1MzEwXHU1MzBmXHU1MzE1XHU1MzFhXHU1MzIzXHU1MzJmXHU1MzMxXHU1MzMzXHU1MzM4XHU1MzQwXHU1MzQ2XHU1MzQ1XHU0ZTE3XHU1MzQ5XHU1MzRkXHU1MWQ2XHU1MzVlXHU1MzY5XHU1MzZlXHU1OTE4''@;'; + put 'put ''XHU1MzdiXHU1Mzc3XHU1MzgyXHU1Mzk2XHU1M2EwXHU1M2E2XHU1M2E1XHU1M2FlXHU1M2IwXHU1M2I2XHU1M2MzXHU3YzEyXHU5NmQ5XHU1M2RmXHU2NmZjXHU3MWVlXHU1M2VlXHU1M2U4XHU1M2VkXHU1M2ZhXHU1NDAxXHU1NDNkXHU1NDQwXHU1NDJjXHU1NDJkXHU1NDNjXHU1NDJlXHU1''@;'; + put 'put ''NDM2XHU1NDI5XHU1NDFkXHU1NDRlXHU1NDhmXHU1NDc1XHU1NDhlXHU1NDVmXHU1NDcxXHU1NDc3XHU1NDcwXHU1NDkyXHU1NDdiXHU1NDgwXHU1NDc2XHU1NDg0XHU1NDkwXHU1NDg2XHU1NGM3XHU1NGEyXHU1NGI4XHU1NGE1XHU1NGFjXHU1NGM0XHU1NGM4XHU1NGE4Il0sWyJkM2ExIiwi''@;'; + put 'put ''XHU1NGFiXHU1NGMyXHU1NGE0XHU1NGJlXHU1NGJjXHU1NGQ4XHU1NGU1XHU1NGU2XHU1NTBmXHU1NTE0XHU1NGZkXHU1NGVlXHU1NGVkXHU1NGZhXHU1NGUyXHU1NTM5XHU1NTQwXHU1NTYzXHU1NTRjXHU1NTJlXHU1NTVjXHU1NTQ1XHU1NTU2XHU1NTU3XHU1NTM4XHU1NTMzXHU1NTVkXHU1''@;'; + put 'put ''NTk5XHU1NTgwXHU1NGFmXHU1NThhXHU1NTlmXHU1NTdiXHU1NTdlXHU1NTk4XHU1NTllXHU1NWFlXHU1NTdjXHU1NTgzXHU1NWE5XHU1NTg3XHU1NWE4XHU1NWRhXHU1NWM1XHU1NWRmXHU1NWM0XHU1NWRjXHU1NWU0XHU1NWQ0XHU1NjE0XHU1NWY3XHU1NjE2XHU1NWZlXHU1NWZkXHU1NjFi''@;'; + put 'put ''XHU1NWY5XHU1NjRlXHU1NjUwXHU3MWRmXHU1NjM0XHU1NjM2XHU1NjMyXHU1NjM4XHU1NjZiXHU1NjY0XHU1NjJmXHU1NjZjXHU1NjZhXHU1Njg2XHU1NjgwXHU1NjhhXHU1NmEwXHU1Njk0XHU1NjhmXHU1NmE1XHU1NmFlXHU1NmI2XHU1NmI0XHU1NmMyXHU1NmJjXHU1NmMxXHU1NmMzXHU1''@;'; + put 'put ''NmMwXHU1NmM4XHU1NmNlXHU1NmQxXHU1NmQzXHU1NmQ3XHU1NmVlXHU1NmY5XHU1NzAwXHU1NmZmXHU1NzA0XHU1NzA5Il0sWyJkNGExIiwiXHU1NzA4XHU1NzBiXHU1NzBkXHU1NzEzXHU1NzE4XHU1NzE2XHU1NWM3XHU1NzFjXHU1NzI2XHU1NzM3XHU1NzM4XHU1NzRlXHU1NzNiXHU1NzQw''@;'; + put 'put ''XHU1NzRmXHU1NzY5XHU1N2MwXHU1Nzg4XHU1NzYxXHU1NzdmXHU1Nzg5XHU1NzkzXHU1N2EwXHU1N2IzXHU1N2E0XHU1N2FhXHU1N2IwXHU1N2MzXHU1N2M2XHU1N2Q0XHU1N2QyXHU1N2QzXHU1ODBhXHU1N2Q2XHU1N2UzXHU1ODBiXHU1ODE5XHU1ODFkXHU1ODcyXHU1ODIxXHU1ODYyXHU1''@;'; + put 'put ''ODRiXHU1ODcwXHU2YmMwXHU1ODUyXHU1ODNkXHU1ODc5XHU1ODg1XHU1OGI5XHU1ODlmXHU1OGFiXHU1OGJhXHU1OGRlXHU1OGJiXHU1OGI4XHU1OGFlXHU1OGM1XHU1OGQzXHU1OGQxXHU1OGQ3XHU1OGQ5XHU1OGQ4XHU1OGU1XHU1OGRjXHU1OGU0XHU1OGRmXHU1OGVmXHU1OGZhXHU1OGY5''@;'; + put 'put ''XHU1OGZiXHU1OGZjXHU1OGZkXHU1OTAyXHU1OTBhXHU1OTEwXHU1OTFiXHU2OGE2XHU1OTI1XHU1OTJjXHU1OTJkXHU1OTMyXHU1OTM4XHU1OTNlXHU3YWQyXHU1OTU1XHU1OTUwXHU1OTRlXHU1OTVhXHU1OTU4XHU1OTYyXHU1OTYwXHU1OTY3XHU1OTZjXHU1OTY5Il0sWyJkNWExIiwiXHU1''@;'; + put 'put ''OTc4XHU1OTgxXHU1OTlkXHU0ZjVlXHU0ZmFiXHU1OWEzXHU1OWIyXHU1OWM2XHU1OWU4XHU1OWRjXHU1OThkXHU1OWQ5XHU1OWRhXHU1YTI1XHU1YTFmXHU1YTExXHU1YTFjXHU1YTA5XHU1YTFhXHU1YTQwXHU1YTZjXHU1YTQ5XHU1YTM1XHU1YTM2XHU1YTYyXHU1YTZhXHU1YTlhXHU1YWJj''@;'; + put 'put ''XHU1YWJlXHU1YWNiXHU1YWMyXHU1YWJkXHU1YWUzXHU1YWQ3XHU1YWU2XHU1YWU5XHU1YWQ2XHU1YWZhXHU1YWZiXHU1YjBjXHU1YjBiXHU1YjE2XHU1YjMyXHU1YWQwXHU1YjJhXHU1YjM2XHU1YjNlXHU1YjQzXHU1YjQ1XHU1YjQwXHU1YjUxXHU1YjU1XHU1YjVhXHU1YjViXHU1YjY1XHU1''@;'; + put 'put ''YjY5XHU1YjcwXHU1YjczXHU1Yjc1XHU1Yjc4XHU2NTg4XHU1YjdhXHU1YjgwXHU1YjgzXHU1YmE2XHU1YmI4XHU1YmMzXHU1YmM3XHU1YmM5XHU1YmQ0XHU1YmQwXHU1YmU0XHU1YmU2XHU1YmUyXHU1YmRlXHU1YmU1XHU1YmViXHU1YmYwXHU1YmY2XHU1YmYzXHU1YzA1XHU1YzA3XHU1YzA4''@;'; + put 'put ''XHU1YzBkXHU1YzEzXHU1YzIwXHU1YzIyXHU1YzI4XHU1YzM4XHU1YzM5XHU1YzQxXHU1YzQ2XHU1YzRlXHU1YzUzIl0sWyJkNmExIiwiXHU1YzUwXHU1YzRmXHU1YjcxXHU1YzZjXHU1YzZlXHU0ZTYyXHU1Yzc2XHU1Yzc5XHU1YzhjXHU1YzkxXHU1Yzk0XHU1OTliXHU1Y2FiXHU1Y2JiXHU1''@;'; + put 'put ''Y2I2XHU1Y2JjXHU1Y2I3XHU1Y2M1XHU1Y2JlXHU1Y2M3XHU1Y2Q5XHU1Y2U5XHU1Y2ZkXHU1Y2ZhXHU1Y2VkXHU1ZDhjXHU1Y2VhXHU1ZDBiXHU1ZDE1XHU1ZDE3XHU1ZDVjXHU1ZDFmXHU1ZDFiXHU1ZDExXHU1ZDE0XHU1ZDIyXHU1ZDFhXHU1ZDE5XHU1ZDE4XHU1ZDRjXHU1ZDUyXHU1ZDRl''@;'; + put 'put ''XHU1ZDRiXHU1ZDZjXHU1ZDczXHU1ZDc2XHU1ZDg3XHU1ZDg0XHU1ZDgyXHU1ZGEyXHU1ZDlkXHU1ZGFjXHU1ZGFlXHU1ZGJkXHU1ZDkwXHU1ZGI3XHU1ZGJjXHU1ZGM5XHU1ZGNkXHU1ZGQzXHU1ZGQyXHU1ZGQ2XHU1ZGRiXHU1ZGViXHU1ZGYyXHU1ZGY1XHU1ZTBiXHU1ZTFhXHU1ZTE5XHU1''@;'; + put 'put ''ZTExXHU1ZTFiXHU1ZTM2XHU1ZTM3XHU1ZTQ0XHU1ZTQzXHU1ZTQwXHU1ZTRlXHU1ZTU3XHU1ZTU0XHU1ZTVmXHU1ZTYyXHU1ZTY0XHU1ZTQ3XHU1ZTc1XHU1ZTc2XHU1ZTdhXHU5ZWJjXHU1ZTdmXHU1ZWEwXHU1ZWMxXHU1ZWMyXHU1ZWM4XHU1ZWQwXHU1ZWNmIl0sWyJkN2ExIiwiXHU1ZWQ2''@;'; + put 'put ''XHU1ZWUzXHU1ZWRkXHU1ZWRhXHU1ZWRiXHU1ZWUyXHU1ZWUxXHU1ZWU4XHU1ZWU5XHU1ZWVjXHU1ZWYxXHU1ZWYzXHU1ZWYwXHU1ZWY0XHU1ZWY4XHU1ZWZlXHU1ZjAzXHU1ZjA5XHU1ZjVkXHU1ZjVjXHU1ZjBiXHU1ZjExXHU1ZjE2XHU1ZjI5XHU1ZjJkXHU1ZjM4XHU1ZjQxXHU1ZjQ4XHU1''@;'; + put 'put ''ZjRjXHU1ZjRlXHU1ZjJmXHU1ZjUxXHU1ZjU2XHU1ZjU3XHU1ZjU5XHU1ZjYxXHU1ZjZkXHU1ZjczXHU1Zjc3XHU1ZjgzXHU1ZjgyXHU1ZjdmXHU1ZjhhXHU1Zjg4XHU1ZjkxXHU1Zjg3XHU1ZjllXHU1Zjk5XHU1Zjk4XHU1ZmEwXHU1ZmE4XHU1ZmFkXHU1ZmJjXHU1ZmQ2XHU1ZmZiXHU1ZmU0''@;'; + put 'put ''XHU1ZmY4XHU1ZmYxXHU1ZmRkXHU2MGIzXHU1ZmZmXHU2MDIxXHU2MDYwXHU2MDE5XHU2MDEwXHU2MDI5XHU2MDBlXHU2MDMxXHU2MDFiXHU2MDE1XHU2MDJiXHU2MDI2XHU2MDBmXHU2MDNhXHU2MDVhXHU2MDQxXHU2MDZhXHU2MDc3XHU2MDVmXHU2MDRhXHU2MDQ2XHU2MDRkXHU2MDYzXHU2''@;'; + put 'put ''MDQzXHU2MDY0XHU2MDQyXHU2MDZjXHU2MDZiXHU2MDU5XHU2MDgxXHU2MDhkXHU2MGU3XHU2MDgzXHU2MDlhIl0sWyJkOGExIiwiXHU2MDg0XHU2MDliXHU2MDk2XHU2MDk3XHU2MDkyXHU2MGE3XHU2MDhiXHU2MGUxXHU2MGI4XHU2MGUwXHU2MGQzXHU2MGI0XHU1ZmYwXHU2MGJkXHU2MGM2''@;'; + put 'put ''XHU2MGI1XHU2MGQ4XHU2MTRkXHU2MTE1XHU2MTA2XHU2MGY2XHU2MGY3XHU2MTAwXHU2MGY0XHU2MGZhXHU2MTAzXHU2MTIxXHU2MGZiXHU2MGYxXHU2MTBkXHU2MTBlXHU2MTQ3XHU2MTNlXHU2MTI4XHU2MTI3XHU2MTRhXHU2MTNmXHU2MTNjXHU2MTJjXHU2MTM0XHU2MTNkXHU2MTQyXHU2''@;'; + put 'put ''MTQ0XHU2MTczXHU2MTc3XHU2MTU4XHU2MTU5XHU2MTVhXHU2MTZiXHU2MTc0XHU2MTZmXHU2MTY1XHU2MTcxXHU2MTVmXHU2MTVkXHU2MTUzXHU2MTc1XHU2MTk5XHU2MTk2XHU2MTg3XHU2MWFjXHU2MTk0XHU2MTlhXHU2MThhXHU2MTkxXHU2MWFiXHU2MWFlXHU2MWNjXHU2MWNhXHU2MWM5''@;'; + put 'put ''XHU2MWY3XHU2MWM4XHU2MWMzXHU2MWM2XHU2MWJhXHU2MWNiXHU3Zjc5XHU2MWNkXHU2MWU2XHU2MWUzXHU2MWY2XHU2MWZhXHU2MWY0XHU2MWZmXHU2MWZkXHU2MWZjXHU2MWZlXHU2MjAwXHU2MjA4XHU2MjA5XHU2MjBkXHU2MjBjXHU2MjE0XHU2MjFiIl0sWyJkOWExIiwiXHU2MjFlXHU2''@;'; + put 'put ''MjIxXHU2MjJhXHU2MjJlXHU2MjMwXHU2MjMyXHU2MjMzXHU2MjQxXHU2MjRlXHU2MjVlXHU2MjYzXHU2MjViXHU2MjYwXHU2MjY4XHU2MjdjXHU2MjgyXHU2Mjg5XHU2MjdlXHU2MjkyXHU2MjkzXHU2Mjk2XHU2MmQ0XHU2MjgzXHU2Mjk0XHU2MmQ3XHU2MmQxXHU2MmJiXHU2MmNmXHU2MmZm''@;'; + put 'put ''XHU2MmM2XHU2NGQ0XHU2MmM4XHU2MmRjXHU2MmNjXHU2MmNhXHU2MmMyXHU2MmM3XHU2MjliXHU2MmM5XHU2MzBjXHU2MmVlXHU2MmYxXHU2MzI3XHU2MzAyXHU2MzA4XHU2MmVmXHU2MmY1XHU2MzUwXHU2MzNlXHU2MzRkXHU2NDFjXHU2MzRmXHU2Mzk2XHU2MzhlXHU2MzgwXHU2M2FiXHU2''@;'; + put 'put ''Mzc2XHU2M2EzXHU2MzhmXHU2Mzg5XHU2MzlmXHU2M2I1XHU2MzZiXHU2MzY5XHU2M2JlXHU2M2U5XHU2M2MwXHU2M2M2XHU2M2UzXHU2M2M5XHU2M2QyXHU2M2Y2XHU2M2M0XHU2NDE2XHU2NDM0XHU2NDA2XHU2NDEzXHU2NDI2XHU2NDM2XHU2NTFkXHU2NDE3XHU2NDI4XHU2NDBmXHU2NDY3''@;'; + put 'put ''XHU2NDZmXHU2NDc2XHU2NDRlXHU2NTJhXHU2NDk1XHU2NDkzXHU2NGE1XHU2NGE5XHU2NDg4XHU2NGJjIl0sWyJkYWExIiwiXHU2NGRhXHU2NGQyXHU2NGM1XHU2NGM3XHU2NGJiXHU2NGQ4XHU2NGMyXHU2NGYxXHU2NGU3XHU4MjA5XHU2NGUwXHU2NGUxXHU2MmFjXHU2NGUzXHU2NGVmXHU2''@;'; + put 'put ''NTJjXHU2NGY2XHU2NGY0XHU2NGYyXHU2NGZhXHU2NTAwXHU2NGZkXHU2NTE4XHU2NTFjXHU2NTA1XHU2NTI0XHU2NTIzXHU2NTJiXHU2NTM0XHU2NTM1XHU2NTM3XHU2NTM2XHU2NTM4XHU3NTRiXHU2NTQ4XHU2NTU2XHU2NTU1XHU2NTRkXHU2NTU4XHU2NTVlXHU2NTVkXHU2NTcyXHU2NTc4''@;'; + put 'put ''XHU2NTgyXHU2NTgzXHU4YjhhXHU2NTliXHU2NTlmXHU2NWFiXHU2NWI3XHU2NWMzXHU2NWM2XHU2NWMxXHU2NWM0XHU2NWNjXHU2NWQyXHU2NWRiXHU2NWQ5XHU2NWUwXHU2NWUxXHU2NWYxXHU2NzcyXHU2NjBhXHU2NjAzXHU2NWZiXHU2NzczXHU2NjM1XHU2NjM2XHU2NjM0XHU2NjFjXHU2''@;'; + put 'put ''NjRmXHU2NjQ0XHU2NjQ5XHU2NjQxXHU2NjVlXHU2NjVkXHU2NjY0XHU2NjY3XHU2NjY4XHU2NjVmXHU2NjYyXHU2NjcwXHU2NjgzXHU2Njg4XHU2NjhlXHU2Njg5XHU2Njg0XHU2Njk4XHU2NjlkXHU2NmMxXHU2NmI5XHU2NmM5XHU2NmJlXHU2NmJjIl0sWyJkYmExIiwiXHU2NmM0XHU2NmI4''@;'; + put 'put ''XHU2NmQ2XHU2NmRhXHU2NmUwXHU2NjNmXHU2NmU2XHU2NmU5XHU2NmYwXHU2NmY1XHU2NmY3XHU2NzBmXHU2NzE2XHU2NzFlXHU2NzI2XHU2NzI3XHU5NzM4XHU2NzJlXHU2NzNmXHU2NzM2XHU2NzQxXHU2NzM4XHU2NzM3XHU2NzQ2XHU2NzVlXHU2NzYwXHU2NzU5XHU2NzYzXHU2NzY0XHU2''@;'; + put 'put ''Nzg5XHU2NzcwXHU2N2E5XHU2NzdjXHU2NzZhXHU2NzhjXHU2NzhiXHU2N2E2XHU2N2ExXHU2Nzg1XHU2N2I3XHU2N2VmXHU2N2I0XHU2N2VjXHU2N2IzXHU2N2U5XHU2N2I4XHU2N2U0XHU2N2RlXHU2N2RkXHU2N2UyXHU2N2VlXHU2N2I5XHU2N2NlXHU2N2M2XHU2N2U3XHU2YTljXHU2ODFl''@;'; + put 'put ''XHU2ODQ2XHU2ODI5XHU2ODQwXHU2ODRkXHU2ODMyXHU2ODRlXHU2OGIzXHU2ODJiXHU2ODU5XHU2ODYzXHU2ODc3XHU2ODdmXHU2ODlmXHU2ODhmXHU2OGFkXHU2ODk0XHU2ODlkXHU2ODliXHU2ODgzXHU2YWFlXHU2OGI5XHU2ODc0XHU2OGI1XHU2OGEwXHU2OGJhXHU2OTBmXHU2ODhkXHU2''@;'; + put 'put ''ODdlXHU2OTAxXHU2OGNhXHU2OTA4XHU2OGQ4XHU2OTIyXHU2OTI2XHU2OGUxXHU2OTBjXHU2OGNkIl0sWyJkY2ExIiwiXHU2OGQ0XHU2OGU3XHU2OGQ1XHU2OTM2XHU2OTEyXHU2OTA0XHU2OGQ3XHU2OGUzXHU2OTI1XHU2OGY5XHU2OGUwXHU2OGVmXHU2OTI4XHU2OTJhXHU2OTFhXHU2OTIz''@;'; + put 'put ''XHU2OTIxXHU2OGM2XHU2OTc5XHU2OTc3XHU2OTVjXHU2OTc4XHU2OTZiXHU2OTU0XHU2OTdlXHU2OTZlXHU2OTM5XHU2OTc0XHU2OTNkXHU2OTU5XHU2OTMwXHU2OTYxXHU2OTVlXHU2OTVkXHU2OTgxXHU2OTZhXHU2OWIyXHU2OWFlXHU2OWQwXHU2OWJmXHU2OWMxXHU2OWQzXHU2OWJlXHU2''@;'; + put 'put ''OWNlXHU1YmU4XHU2OWNhXHU2OWRkXHU2OWJiXHU2OWMzXHU2OWE3XHU2YTJlXHU2OTkxXHU2OWEwXHU2OTljXHU2OTk1XHU2OWI0XHU2OWRlXHU2OWU4XHU2YTAyXHU2YTFiXHU2OWZmXHU2YjBhXHU2OWY5XHU2OWYyXHU2OWU3XHU2YTA1XHU2OWIxXHU2YTFlXHU2OWVkXHU2YTE0XHU2OWVi''@;'; + put 'put ''XHU2YTBhXHU2YTEyXHU2YWMxXHU2YTIzXHU2YTEzXHU2YTQ0XHU2YTBjXHU2YTcyXHU2YTM2XHU2YTc4XHU2YTQ3XHU2YTYyXHU2YTU5XHU2YTY2XHU2YTQ4XHU2YTM4XHU2YTIyXHU2YTkwXHU2YThkXHU2YWEwXHU2YTg0XHU2YWEyXHU2YWEzIl0sWyJkZGExIiwiXHU2YTk3XHU4NjE3XHU2''@;'; + put 'put ''YWJiXHU2YWMzXHU2YWMyXHU2YWI4XHU2YWIzXHU2YWFjXHU2YWRlXHU2YWQxXHU2YWRmXHU2YWFhXHU2YWRhXHU2YWVhXHU2YWZiXHU2YjA1XHU4NjE2XHU2YWZhXHU2YjEyXHU2YjE2XHU5YjMxXHU2YjFmXHU2YjM4XHU2YjM3XHU3NmRjXHU2YjM5XHU5OGVlXHU2YjQ3XHU2YjQzXHU2YjQ5''@;'; + put 'put ''XHU2YjUwXHU2YjU5XHU2YjU0XHU2YjViXHU2YjVmXHU2YjYxXHU2Yjc4XHU2Yjc5XHU2YjdmXHU2YjgwXHU2Yjg0XHU2YjgzXHU2YjhkXHU2Yjk4XHU2Yjk1XHU2YjllXHU2YmE0XHU2YmFhXHU2YmFiXHU2YmFmXHU2YmIyXHU2YmIxXHU2YmIzXHU2YmI3XHU2YmJjXHU2YmM2XHU2YmNiXHU2''@;'; + put 'put ''YmQzXHU2YmRmXHU2YmVjXHU2YmViXHU2YmYzXHU2YmVmXHU5ZWJlXHU2YzA4XHU2YzEzXHU2YzE0XHU2YzFiXHU2YzI0XHU2YzIzXHU2YzVlXHU2YzU1XHU2YzYyXHU2YzZhXHU2YzgyXHU2YzhkXHU2YzlhXHU2YzgxXHU2YzliXHU2YzdlXHU2YzY4XHU2YzczXHU2YzkyXHU2YzkwXHU2Y2M0''@;'; + put 'put ''XHU2Y2YxXHU2Y2QzXHU2Y2JkXHU2Y2Q3XHU2Y2M1XHU2Y2RkXHU2Y2FlXHU2Y2IxXHU2Y2JlIl0sWyJkZWExIiwiXHU2Y2JhXHU2Y2RiXHU2Y2VmXHU2Y2Q5XHU2Y2VhXHU2ZDFmXHU4ODRkXHU2ZDM2XHU2ZDJiXHU2ZDNkXHU2ZDM4XHU2ZDE5XHU2ZDM1XHU2ZDMzXHU2ZDEyXHU2ZDBjXHU2''@;'; + put 'put ''ZDYzXHU2ZDkzXHU2ZDY0XHU2ZDVhXHU2ZDc5XHU2ZDU5XHU2ZDhlXHU2ZDk1XHU2ZmU0XHU2ZDg1XHU2ZGY5XHU2ZTE1XHU2ZTBhXHU2ZGI1XHU2ZGM3XHU2ZGU2XHU2ZGI4XHU2ZGM2XHU2ZGVjXHU2ZGRlXHU2ZGNjXHU2ZGU4XHU2ZGQyXHU2ZGM1XHU2ZGZhXHU2ZGQ5XHU2ZGU0XHU2ZGQ1''@;'; + put 'put ''XHU2ZGVhXHU2ZGVlXHU2ZTJkXHU2ZTZlXHU2ZTJlXHU2ZTE5XHU2ZTcyXHU2ZTVmXHU2ZTNlXHU2ZTIzXHU2ZTZiXHU2ZTJiXHU2ZTc2XHU2ZTRkXHU2ZTFmXHU2ZTQzXHU2ZTNhXHU2ZTRlXHU2ZTI0XHU2ZWZmXHU2ZTFkXHU2ZTM4XHU2ZTgyXHU2ZWFhXHU2ZTk4XHU2ZWM5XHU2ZWI3XHU2''@;'; + put 'put ''ZWQzXHU2ZWJkXHU2ZWFmXHU2ZWM0XHU2ZWIyXHU2ZWQ0XHU2ZWQ1XHU2ZThmXHU2ZWE1XHU2ZWMyXHU2ZTlmXHU2ZjQxXHU2ZjExXHU3MDRjXHU2ZWVjXHU2ZWY4XHU2ZWZlXHU2ZjNmXHU2ZWYyXHU2ZjMxXHU2ZWVmXHU2ZjMyXHU2ZWNjIl0sWyJkZmExIiwiXHU2ZjNlXHU2ZjEzXHU2ZWY3''@;'; + put 'put ''XHU2Zjg2XHU2ZjdhXHU2Zjc4XHU2ZjgxXHU2ZjgwXHU2ZjZmXHU2ZjViXHU2ZmYzXHU2ZjZkXHU2ZjgyXHU2ZjdjXHU2ZjU4XHU2ZjhlXHU2ZjkxXHU2ZmMyXHU2ZjY2XHU2ZmIzXHU2ZmEzXHU2ZmExXHU2ZmE0XHU2ZmI5XHU2ZmM2XHU2ZmFhXHU2ZmRmXHU2ZmQ1XHU2ZmVjXHU2ZmQ0XHU2''@;'; + put 'put ''ZmQ4XHU2ZmYxXHU2ZmVlXHU2ZmRiXHU3MDA5XHU3MDBiXHU2ZmZhXHU3MDExXHU3MDAxXHU3MDBmXHU2ZmZlXHU3MDFiXHU3MDFhXHU2Zjc0XHU3MDFkXHU3MDE4XHU3MDFmXHU3MDMwXHU3MDNlXHU3MDMyXHU3MDUxXHU3MDYzXHU3MDk5XHU3MDkyXHU3MGFmXHU3MGYxXHU3MGFjXHU3MGI4''@;'; + put 'put ''XHU3MGIzXHU3MGFlXHU3MGRmXHU3MGNiXHU3MGRkXHU3MGQ5XHU3MTA5XHU3MGZkXHU3MTFjXHU3MTE5XHU3MTY1XHU3MTU1XHU3MTg4XHU3MTY2XHU3MTYyXHU3MTRjXHU3MTU2XHU3MTZjXHU3MThmXHU3MWZiXHU3MTg0XHU3MTk1XHU3MWE4XHU3MWFjXHU3MWQ3XHU3MWI5XHU3MWJlXHU3''@;'; + put 'put ''MWQyXHU3MWM5XHU3MWQ0XHU3MWNlXHU3MWUwXHU3MWVjXHU3MWU3XHU3MWY1XHU3MWZjIl0sWyJlMGExIiwiXHU3MWY5XHU3MWZmXHU3MjBkXHU3MjEwXHU3MjFiXHU3MjI4XHU3MjJkXHU3MjJjXHU3MjMwXHU3MjMyXHU3MjNiXHU3MjNjXHU3MjNmXHU3MjQwXHU3MjQ2XHU3MjRiXHU3MjU4''@;'; + put 'put ''XHU3Mjc0XHU3MjdlXHU3MjgyXHU3MjgxXHU3Mjg3XHU3MjkyXHU3Mjk2XHU3MmEyXHU3MmE3XHU3MmI5XHU3MmIyXHU3MmMzXHU3MmM2XHU3MmM0XHU3MmNlXHU3MmQyXHU3MmUyXHU3MmUwXHU3MmUxXHU3MmY5XHU3MmY3XHU1MDBmXHU3MzE3XHU3MzBhXHU3MzFjXHU3MzE2XHU3MzFkXHU3''@;'; + put 'put ''MzM0XHU3MzJmXHU3MzI5XHU3MzI1XHU3MzNlXHU3MzRlXHU3MzRmXHU5ZWQ4XHU3MzU3XHU3MzZhXHU3MzY4XHU3MzcwXHU3Mzc4XHU3Mzc1XHU3MzdiXHU3MzdhXHU3M2M4XHU3M2IzXHU3M2NlXHU3M2JiXHU3M2MwXHU3M2U1XHU3M2VlXHU3M2RlXHU3NGEyXHU3NDA1XHU3NDZmXHU3NDI1''@;'; + put 'put ''XHU3M2Y4XHU3NDMyXHU3NDNhXHU3NDU1XHU3NDNmXHU3NDVmXHU3NDU5XHU3NDQxXHU3NDVjXHU3NDY5XHU3NDcwXHU3NDYzXHU3NDZhXHU3NDc2XHU3NDdlXHU3NDhiXHU3NDllXHU3NGE3XHU3NGNhXHU3NGNmXHU3NGQ0XHU3M2YxIl0sWyJlMWExIiwiXHU3NGUwXHU3NGUzXHU3NGU3XHU3''@;'; + put 'put ''NGU5XHU3NGVlXHU3NGYyXHU3NGYwXHU3NGYxXHU3NGY4XHU3NGY3XHU3NTA0XHU3NTAzXHU3NTA1XHU3NTBjXHU3NTBlXHU3NTBkXHU3NTE1XHU3NTEzXHU3NTFlXHU3NTI2XHU3NTJjXHU3NTNjXHU3NTQ0XHU3NTRkXHU3NTRhXHU3NTQ5XHU3NTViXHU3NTQ2XHU3NTVhXHU3NTY5XHU3NTY0''@;'; + put 'put ''XHU3NTY3XHU3NTZiXHU3NTZkXHU3NTc4XHU3NTc2XHU3NTg2XHU3NTg3XHU3NTc0XHU3NThhXHU3NTg5XHU3NTgyXHU3NTk0XHU3NTlhXHU3NTlkXHU3NWE1XHU3NWEzXHU3NWMyXHU3NWIzXHU3NWMzXHU3NWI1XHU3NWJkXHU3NWI4XHU3NWJjXHU3NWIxXHU3NWNkXHU3NWNhXHU3NWQyXHU3''@;'; + put 'put ''NWQ5XHU3NWUzXHU3NWRlXHU3NWZlXHU3NWZmXHU3NWZjXHU3NjAxXHU3NWYwXHU3NWZhXHU3NWYyXHU3NWYzXHU3NjBiXHU3NjBkXHU3NjA5XHU3NjFmXHU3NjI3XHU3NjIwXHU3NjIxXHU3NjIyXHU3NjI0XHU3NjM0XHU3NjMwXHU3NjNiXHU3NjQ3XHU3NjQ4XHU3NjQ2XHU3NjVjXHU3NjU4''@;'; + put 'put ''XHU3NjYxXHU3NjYyXHU3NjY4XHU3NjY5XHU3NjZhXHU3NjY3XHU3NjZjXHU3NjcwIl0sWyJlMmExIiwiXHU3NjcyXHU3Njc2XHU3Njc4XHU3NjdjXHU3NjgwXHU3NjgzXHU3Njg4XHU3NjhiXHU3NjhlXHU3Njk2XHU3NjkzXHU3Njk5XHU3NjlhXHU3NmIwXHU3NmI0XHU3NmI4XHU3NmI5XHU3''@;'; + put 'put ''NmJhXHU3NmMyXHU3NmNkXHU3NmQ2XHU3NmQyXHU3NmRlXHU3NmUxXHU3NmU1XHU3NmU3XHU3NmVhXHU4NjJmXHU3NmZiXHU3NzA4XHU3NzA3XHU3NzA0XHU3NzI5XHU3NzI0XHU3NzFlXHU3NzI1XHU3NzI2XHU3NzFiXHU3NzM3XHU3NzM4XHU3NzQ3XHU3NzVhXHU3NzY4XHU3NzZiXHU3NzVi''@;'; + put 'put ''XHU3NzY1XHU3NzdmXHU3NzdlXHU3Nzc5XHU3NzhlXHU3NzhiXHU3NzkxXHU3N2EwXHU3NzllXHU3N2IwXHU3N2I2XHU3N2I5XHU3N2JmXHU3N2JjXHU3N2JkXHU3N2JiXHU3N2M3XHU3N2NkXHU3N2Q3XHU3N2RhXHU3N2RjXHU3N2UzXHU3N2VlXHU3N2ZjXHU3ODBjXHU3ODEyXHU3OTI2XHU3''@;'; + put 'put ''ODIwXHU3OTJhXHU3ODQ1XHU3ODhlXHU3ODc0XHU3ODg2XHU3ODdjXHU3ODlhXHU3ODhjXHU3OGEzXHU3OGI1XHU3OGFhXHU3OGFmXHU3OGQxXHU3OGM2XHU3OGNiXHU3OGQ0XHU3OGJlXHU3OGJjXHU3OGM1XHU3OGNhXHU3OGVjIl0sWyJlM2ExIiwiXHU3OGU3XHU3OGRhXHU3OGZkXHU3OGY0''@;'; + put 'put ''XHU3OTA3XHU3OTEyXHU3OTExXHU3OTE5XHU3OTJjXHU3OTJiXHU3OTQwXHU3OTYwXHU3OTU3XHU3OTVmXHU3OTVhXHU3OTU1XHU3OTUzXHU3OTdhXHU3OTdmXHU3OThhXHU3OTlkXHU3OWE3XHU5ZjRiXHU3OWFhXHU3OWFlXHU3OWIzXHU3OWI5XHU3OWJhXHU3OWM5XHU3OWQ1XHU3OWU3XHU3''@;'; + put 'put ''OWVjXHU3OWUxXHU3OWUzXHU3YTA4XHU3YTBkXHU3YTE4XHU3YTE5XHU3YTIwXHU3YTFmXHU3OTgwXHU3YTMxXHU3YTNiXHU3YTNlXHU3YTM3XHU3YTQzXHU3YTU3XHU3YTQ5XHU3YTYxXHU3YTYyXHU3YTY5XHU5ZjlkXHU3YTcwXHU3YTc5XHU3YTdkXHU3YTg4XHU3YTk3XHU3YTk1XHU3YTk4''@;'; + put 'put ''XHU3YTk2XHU3YWE5XHU3YWM4XHU3YWIwXHU3YWI2XHU3YWM1XHU3YWM0XHU3YWJmXHU5MDgzXHU3YWM3XHU3YWNhXHU3YWNkXHU3YWNmXHU3YWQ1XHU3YWQzXHU3YWQ5XHU3YWRhXHU3YWRkXHU3YWUxXHU3YWUyXHU3YWU2XHU3YWVkXHU3YWYwXHU3YjAyXHU3YjBmXHU3YjBhXHU3YjA2XHU3''@;'; + put 'put ''YjMzXHU3YjE4XHU3YjE5XHU3YjFlXHU3YjM1XHU3YjI4XHU3YjM2XHU3YjUwIl0sWyJlNGExIiwiXHU3YjdhXHU3YjA0XHU3YjRkXHU3YjBiXHU3YjRjXHU3YjQ1XHU3Yjc1XHU3YjY1XHU3Yjc0XHU3YjY3XHU3YjcwXHU3YjcxXHU3YjZjXHU3YjZlXHU3YjlkXHU3Yjk4XHU3YjlmXHU3Yjhk''@;'; + put 'put ''XHU3YjljXHU3YjlhXHU3YjhiXHU3YjkyXHU3YjhmXHU3YjVkXHU3Yjk5XHU3YmNiXHU3YmMxXHU3YmNjXHU3YmNmXHU3YmI0XHU3YmM2XHU3YmRkXHU3YmU5XHU3YzExXHU3YzE0XHU3YmU2XHU3YmU1XHU3YzYwXHU3YzAwXHU3YzA3XHU3YzEzXHU3YmYzXHU3YmY3XHU3YzE3XHU3YzBkXHU3''@;'; + put 'put ''YmY2XHU3YzIzXHU3YzI3XHU3YzJhXHU3YzFmXHU3YzM3XHU3YzJiXHU3YzNkXHU3YzRjXHU3YzQzXHU3YzU0XHU3YzRmXHU3YzQwXHU3YzUwXHU3YzU4XHU3YzVmXHU3YzY0XHU3YzU2XHU3YzY1XHU3YzZjXHU3Yzc1XHU3YzgzXHU3YzkwXHU3Y2E0XHU3Y2FkXHU3Y2EyXHU3Y2FiXHU3Y2Ex''@;'; + put 'put ''XHU3Y2E4XHU3Y2IzXHU3Y2IyXHU3Y2IxXHU3Y2FlXHU3Y2I5XHU3Y2JkXHU3Y2MwXHU3Y2M1XHU3Y2MyXHU3Y2Q4XHU3Y2QyXHU3Y2RjXHU3Y2UyXHU5YjNiXHU3Y2VmXHU3Y2YyXHU3Y2Y0XHU3Y2Y2XHU3Y2ZhXHU3ZDA2Il0sWyJlNWExIiwiXHU3ZDAyXHU3ZDFjXHU3ZDE1XHU3ZDBhXHU3''@;'; + put 'put ''ZDQ1XHU3ZDRiXHU3ZDJlXHU3ZDMyXHU3ZDNmXHU3ZDM1XHU3ZDQ2XHU3ZDczXHU3ZDU2XHU3ZDRlXHU3ZDcyXHU3ZDY4XHU3ZDZlXHU3ZDRmXHU3ZDYzXHU3ZDkzXHU3ZDg5XHU3ZDViXHU3ZDhmXHU3ZDdkXHU3ZDliXHU3ZGJhXHU3ZGFlXHU3ZGEzXHU3ZGI1XHU3ZGM3XHU3ZGJkXHU3ZGFi''@;'; + put 'put ''XHU3ZTNkXHU3ZGEyXHU3ZGFmXHU3ZGRjXHU3ZGI4XHU3ZDlmXHU3ZGIwXHU3ZGQ4XHU3ZGRkXHU3ZGU0XHU3ZGRlXHU3ZGZiXHU3ZGYyXHU3ZGUxXHU3ZTA1XHU3ZTBhXHU3ZTIzXHU3ZTIxXHU3ZTEyXHU3ZTMxXHU3ZTFmXHU3ZTA5XHU3ZTBiXHU3ZTIyXHU3ZTQ2XHU3ZTY2XHU3ZTNiXHU3''@;'; + put 'put ''ZTM1XHU3ZTM5XHU3ZTQzXHU3ZTM3XHU3ZTMyXHU3ZTNhXHU3ZTY3XHU3ZTVkXHU3ZTU2XHU3ZTVlXHU3ZTU5XHU3ZTVhXHU3ZTc5XHU3ZTZhXHU3ZTY5XHU3ZTdjXHU3ZTdiXHU3ZTgzXHU3ZGQ1XHU3ZTdkXHU4ZmFlXHU3ZTdmXHU3ZTg4XHU3ZTg5XHU3ZThjXHU3ZTkyXHU3ZTkwXHU3ZTkz''@;'; + put 'put ''XHU3ZTk0XHU3ZTk2XHU3ZThlXHU3ZTliXHU3ZTljXHU3ZjM4XHU3ZjNhIl0sWyJlNmExIiwiXHU3ZjQ1XHU3ZjRjXHU3ZjRkXHU3ZjRlXHU3ZjUwXHU3ZjUxXHU3ZjU1XHU3ZjU0XHU3ZjU4XHU3ZjVmXHU3ZjYwXHU3ZjY4XHU3ZjY5XHU3ZjY3XHU3Zjc4XHU3ZjgyXHU3Zjg2XHU3ZjgzXHU3''@;'; + put 'put ''Zjg4XHU3Zjg3XHU3ZjhjXHU3Zjk0XHU3ZjllXHU3ZjlkXHU3ZjlhXHU3ZmEzXHU3ZmFmXHU3ZmIyXHU3ZmI5XHU3ZmFlXHU3ZmI2XHU3ZmI4XHU4YjcxXHU3ZmM1XHU3ZmM2XHU3ZmNhXHU3ZmQ1XHU3ZmQ0XHU3ZmUxXHU3ZmU2XHU3ZmU5XHU3ZmYzXHU3ZmY5XHU5OGRjXHU4MDA2XHU4MDA0''@;'; + put 'put ''XHU4MDBiXHU4MDEyXHU4MDE4XHU4MDE5XHU4MDFjXHU4MDIxXHU4MDI4XHU4MDNmXHU4MDNiXHU4MDRhXHU4MDQ2XHU4MDUyXHU4MDU4XHU4MDVhXHU4MDVmXHU4MDYyXHU4MDY4XHU4MDczXHU4MDcyXHU4MDcwXHU4MDc2XHU4MDc5XHU4MDdkXHU4MDdmXHU4MDg0XHU4MDg2XHU4MDg1XHU4''@;'; + put 'put ''MDliXHU4MDkzXHU4MDlhXHU4MGFkXHU1MTkwXHU4MGFjXHU4MGRiXHU4MGU1XHU4MGQ5XHU4MGRkXHU4MGM0XHU4MGRhXHU4MGQ2XHU4MTA5XHU4MGVmXHU4MGYxXHU4MTFiXHU4MTI5XHU4MTIzXHU4MTJmXHU4MTRiIl0sWyJlN2ExIiwiXHU5NjhiXHU4MTQ2XHU4MTNlXHU4MTUzXHU4MTUx''@;'; + put 'put ''XHU4MGZjXHU4MTcxXHU4MTZlXHU4MTY1XHU4MTY2XHU4MTc0XHU4MTgzXHU4MTg4XHU4MThhXHU4MTgwXHU4MTgyXHU4MWEwXHU4MTk1XHU4MWE0XHU4MWEzXHU4MTVmXHU4MTkzXHU4MWE5XHU4MWIwXHU4MWI1XHU4MWJlXHU4MWI4XHU4MWJkXHU4MWMwXHU4MWMyXHU4MWJhXHU4MWM5XHU4''@;'; + put 'put ''MWNkXHU4MWQxXHU4MWQ5XHU4MWQ4XHU4MWM4XHU4MWRhXHU4MWRmXHU4MWUwXHU4MWU3XHU4MWZhXHU4MWZiXHU4MWZlXHU4MjAxXHU4MjAyXHU4MjA1XHU4MjA3XHU4MjBhXHU4MjBkXHU4MjEwXHU4MjE2XHU4MjI5XHU4MjJiXHU4MjM4XHU4MjMzXHU4MjQwXHU4MjU5XHU4MjU4XHU4MjVk''@;'; + put 'put ''XHU4MjVhXHU4MjVmXHU4MjY0XHU4MjYyXHU4MjY4XHU4MjZhXHU4MjZiXHU4MjJlXHU4MjcxXHU4Mjc3XHU4Mjc4XHU4MjdlXHU4MjhkXHU4MjkyXHU4MmFiXHU4MjlmXHU4MmJiXHU4MmFjXHU4MmUxXHU4MmUzXHU4MmRmXHU4MmQyXHU4MmY0XHU4MmYzXHU4MmZhXHU4MzkzXHU4MzAzXHU4''@;'; + put 'put ''MmZiXHU4MmY5XHU4MmRlXHU4MzA2XHU4MmRjXHU4MzA5XHU4MmQ5Il0sWyJlOGExIiwiXHU4MzM1XHU4MzM0XHU4MzE2XHU4MzMyXHU4MzMxXHU4MzQwXHU4MzM5XHU4MzUwXHU4MzQ1XHU4MzJmXHU4MzJiXHU4MzE3XHU4MzE4XHU4Mzg1XHU4MzlhXHU4M2FhXHU4MzlmXHU4M2EyXHU4Mzk2''@;'; + put 'put ''XHU4MzIzXHU4MzhlXHU4Mzg3XHU4MzhhXHU4MzdjXHU4M2I1XHU4MzczXHU4Mzc1XHU4M2EwXHU4Mzg5XHU4M2E4XHU4M2Y0XHU4NDEzXHU4M2ViXHU4M2NlXHU4M2ZkXHU4NDAzXHU4M2Q4XHU4NDBiXHU4M2MxXHU4M2Y3XHU4NDA3XHU4M2UwXHU4M2YyXHU4NDBkXHU4NDIyXHU4NDIwXHU4''@;'; + put 'put ''M2JkXHU4NDM4XHU4NTA2XHU4M2ZiXHU4NDZkXHU4NDJhXHU4NDNjXHU4NTVhXHU4NDg0XHU4NDc3XHU4NDZiXHU4NGFkXHU4NDZlXHU4NDgyXHU4NDY5XHU4NDQ2XHU4NDJjXHU4NDZmXHU4NDc5XHU4NDM1XHU4NGNhXHU4NDYyXHU4NGI5XHU4NGJmXHU4NDlmXHU4NGQ5XHU4NGNkXHU4NGJi''@;'; + put 'put ''XHU4NGRhXHU4NGQwXHU4NGMxXHU4NGM2XHU4NGQ2XHU4NGExXHU4NTIxXHU4NGZmXHU4NGY0XHU4NTE3XHU4NTE4XHU4NTJjXHU4NTFmXHU4NTE1XHU4NTE0XHU4NGZjXHU4NTQwXHU4NTYzXHU4NTU4XHU4NTQ4Il0sWyJlOWExIiwiXHU4NTQxXHU4NjAyXHU4NTRiXHU4NTU1XHU4NTgwXHU4''@;'; + put 'put ''NWE0XHU4NTg4XHU4NTkxXHU4NThhXHU4NWE4XHU4NTZkXHU4NTk0XHU4NTliXHU4NWVhXHU4NTg3XHU4NTljXHU4NTc3XHU4NTdlXHU4NTkwXHU4NWM5XHU4NWJhXHU4NWNmXHU4NWI5XHU4NWQwXHU4NWQ1XHU4NWRkXHU4NWU1XHU4NWRjXHU4NWY5XHU4NjBhXHU4NjEzXHU4NjBiXHU4NWZl''@;'; + put 'put ''XHU4NWZhXHU4NjA2XHU4NjIyXHU4NjFhXHU4NjMwXHU4NjNmXHU4NjRkXHU0ZTU1XHU4NjU0XHU4NjVmXHU4NjY3XHU4NjcxXHU4NjkzXHU4NmEzXHU4NmE5XHU4NmFhXHU4NjhiXHU4NjhjXHU4NmI2XHU4NmFmXHU4NmM0XHU4NmM2XHU4NmIwXHU4NmM5XHU4ODIzXHU4NmFiXHU4NmQ0XHU4''@;'; + put 'put ''NmRlXHU4NmU5XHU4NmVjXHU4NmRmXHU4NmRiXHU4NmVmXHU4NzEyXHU4NzA2XHU4NzA4XHU4NzAwXHU4NzAzXHU4NmZiXHU4NzExXHU4NzA5XHU4NzBkXHU4NmY5XHU4NzBhXHU4NzM0XHU4NzNmXHU4NzM3XHU4NzNiXHU4NzI1XHU4NzI5XHU4NzFhXHU4NzYwXHU4NzVmXHU4Nzc4XHU4NzRj''@;'; + put 'put ''XHU4NzRlXHU4Nzc0XHU4NzU3XHU4NzY4XHU4NzZlXHU4NzU5Il0sWyJlYWExIiwiXHU4NzUzXHU4NzYzXHU4NzZhXHU4ODA1XHU4N2EyXHU4NzlmXHU4NzgyXHU4N2FmXHU4N2NiXHU4N2JkXHU4N2MwXHU4N2QwXHU5NmQ2XHU4N2FiXHU4N2M0XHU4N2IzXHU4N2M3XHU4N2M2XHU4N2JiXHU4''@;'; + put 'put ''N2VmXHU4N2YyXHU4N2UwXHU4ODBmXHU4ODBkXHU4N2ZlXHU4N2Y2XHU4N2Y3XHU4ODBlXHU4N2QyXHU4ODExXHU4ODE2XHU4ODE1XHU4ODIyXHU4ODIxXHU4ODMxXHU4ODM2XHU4ODM5XHU4ODI3XHU4ODNiXHU4ODQ0XHU4ODQyXHU4ODUyXHU4ODU5XHU4ODVlXHU4ODYyXHU4ODZiXHU4ODgx''@;'; + put 'put ''XHU4ODdlXHU4ODllXHU4ODc1XHU4ODdkXHU4OGI1XHU4ODcyXHU4ODgyXHU4ODk3XHU4ODkyXHU4OGFlXHU4ODk5XHU4OGEyXHU4ODhkXHU4OGE0XHU4OGIwXHU4OGJmXHU4OGIxXHU4OGMzXHU4OGM0XHU4OGQ0XHU4OGQ4XHU4OGQ5XHU4OGRkXHU4OGY5XHU4OTAyXHU4OGZjXHU4OGY0XHU4''@;'; + put 'put ''OGU4XHU4OGYyXHU4OTA0XHU4OTBjXHU4OTBhXHU4OTEzXHU4OTQzXHU4OTFlXHU4OTI1XHU4OTJhXHU4OTJiXHU4OTQxXHU4OTQ0XHU4OTNiXHU4OTM2XHU4OTM4XHU4OTRjXHU4OTFkXHU4OTYwXHU4OTVlIl0sWyJlYmExIiwiXHU4OTY2XHU4OTY0XHU4OTZkXHU4OTZhXHU4OTZmXHU4OTc0''@;'; + put 'put ''XHU4OTc3XHU4OTdlXHU4OTgzXHU4OTg4XHU4OThhXHU4OTkzXHU4OTk4XHU4OWExXHU4OWE5XHU4OWE2XHU4OWFjXHU4OWFmXHU4OWIyXHU4OWJhXHU4OWJkXHU4OWJmXHU4OWMwXHU4OWRhXHU4OWRjXHU4OWRkXHU4OWU3XHU4OWY0XHU4OWY4XHU4YTAzXHU4YTE2XHU4YTEwXHU4YTBjXHU4''@;'; + put 'put ''YTFiXHU4YTFkXHU4YTI1XHU4YTM2XHU4YTQxXHU4YTViXHU4YTUyXHU4YTQ2XHU4YTQ4XHU4YTdjXHU4YTZkXHU4YTZjXHU4YTYyXHU4YTg1XHU4YTgyXHU4YTg0XHU4YWE4XHU4YWExXHU4YTkxXHU4YWE1XHU4YWE2XHU4YTlhXHU4YWEzXHU4YWM0XHU4YWNkXHU4YWMyXHU4YWRhXHU4YWVi''@;'; + put 'put ''XHU4YWYzXHU4YWU3XHU4YWU0XHU4YWYxXHU4YjE0XHU4YWUwXHU4YWUyXHU4YWY3XHU4YWRlXHU4YWRiXHU4YjBjXHU4YjA3XHU4YjFhXHU4YWUxXHU4YjE2XHU4YjEwXHU4YjE3XHU4YjIwXHU4YjMzXHU5N2FiXHU4YjI2XHU4YjJiXHU4YjNlXHU4YjI4XHU4YjQxXHU4YjRjXHU4YjRmXHU4''@;'; + put 'put ''YjRlXHU4YjQ5XHU4YjU2XHU4YjViXHU4YjVhXHU4YjZiIl0sWyJlY2ExIiwiXHU4YjVmXHU4YjZjXHU4YjZmXHU4Yjc0XHU4YjdkXHU4YjgwXHU4YjhjXHU4YjhlXHU4YjkyXHU4YjkzXHU4Yjk2XHU4Yjk5XHU4YjlhXHU4YzNhXHU4YzQxXHU4YzNmXHU4YzQ4XHU4YzRjXHU4YzRlXHU4YzUw''@;'; + put 'put ''XHU4YzU1XHU4YzYyXHU4YzZjXHU4Yzc4XHU4YzdhXHU4YzgyXHU4Yzg5XHU4Yzg1XHU4YzhhXHU4YzhkXHU4YzhlXHU4Yzk0XHU4YzdjXHU4Yzk4XHU2MjFkXHU4Y2FkXHU4Y2FhXHU4Y2JkXHU4Y2IyXHU4Y2IzXHU4Y2FlXHU4Y2I2XHU4Y2M4XHU4Y2MxXHU4Y2U0XHU4Y2UzXHU4Y2RhXHU4''@;'; + put 'put ''Y2ZkXHU4Y2ZhXHU4Y2ZiXHU4ZDA0XHU4ZDA1XHU4ZDBhXHU4ZDA3XHU4ZDBmXHU4ZDBkXHU4ZDEwXHU5ZjRlXHU4ZDEzXHU4Y2NkXHU4ZDE0XHU4ZDE2XHU4ZDY3XHU4ZDZkXHU4ZDcxXHU4ZDczXHU4ZDgxXHU4ZDk5XHU4ZGMyXHU4ZGJlXHU4ZGJhXHU4ZGNmXHU4ZGRhXHU4ZGQ2XHU4ZGNj''@;'; + put 'put ''XHU4ZGRiXHU4ZGNiXHU4ZGVhXHU4ZGViXHU4ZGRmXHU4ZGUzXHU4ZGZjXHU4ZTA4XHU4ZTA5XHU4ZGZmXHU4ZTFkXHU4ZTFlXHU4ZTEwXHU4ZTFmXHU4ZTQyXHU4ZTM1XHU4ZTMwXHU4ZTM0XHU4ZTRhIl0sWyJlZGExIiwiXHU4ZTQ3XHU4ZTQ5XHU4ZTRjXHU4ZTUwXHU4ZTQ4XHU4ZTU5XHU4''@;'; + put 'put ''ZTY0XHU4ZTYwXHU4ZTJhXHU4ZTYzXHU4ZTU1XHU4ZTc2XHU4ZTcyXHU4ZTdjXHU4ZTgxXHU4ZTg3XHU4ZTg1XHU4ZTg0XHU4ZThiXHU4ZThhXHU4ZTkzXHU4ZTkxXHU4ZTk0XHU4ZTk5XHU4ZWFhXHU4ZWExXHU4ZWFjXHU4ZWIwXHU4ZWM2XHU4ZWIxXHU4ZWJlXHU4ZWM1XHU4ZWM4XHU4ZWNi''@;'; + put 'put ''XHU4ZWRiXHU4ZWUzXHU4ZWZjXHU4ZWZiXHU4ZWViXHU4ZWZlXHU4ZjBhXHU4ZjA1XHU4ZjE1XHU4ZjEyXHU4ZjE5XHU4ZjEzXHU4ZjFjXHU4ZjFmXHU4ZjFiXHU4ZjBjXHU4ZjI2XHU4ZjMzXHU4ZjNiXHU4ZjM5XHU4ZjQ1XHU4ZjQyXHU4ZjNlXHU4ZjRjXHU4ZjQ5XHU4ZjQ2XHU4ZjRlXHU4''@;'; + put 'put ''ZjU3XHU4ZjVjXHU4ZjYyXHU4ZjYzXHU4ZjY0XHU4ZjljXHU4ZjlmXHU4ZmEzXHU4ZmFkXHU4ZmFmXHU4ZmI3XHU4ZmRhXHU4ZmU1XHU4ZmUyXHU4ZmVhXHU4ZmVmXHU5MDg3XHU4ZmY0XHU5MDA1XHU4ZmY5XHU4ZmZhXHU5MDExXHU5MDE1XHU5MDIxXHU5MDBkXHU5MDFlXHU5MDE2XHU5MDBi''@;'; + put 'put ''XHU5MDI3XHU5MDM2XHU5MDM1XHU5MDM5XHU4ZmY4Il0sWyJlZWExIiwiXHU5MDRmXHU5MDUwXHU5MDUxXHU5MDUyXHU5MDBlXHU5MDQ5XHU5MDNlXHU5MDU2XHU5MDU4XHU5MDVlXHU5MDY4XHU5MDZmXHU5MDc2XHU5NmE4XHU5MDcyXHU5MDgyXHU5MDdkXHU5MDgxXHU5MDgwXHU5MDhhXHU5''@;'; + put 'put ''MDg5XHU5MDhmXHU5MGE4XHU5MGFmXHU5MGIxXHU5MGI1XHU5MGUyXHU5MGU0XHU2MjQ4XHU5MGRiXHU5MTAyXHU5MTEyXHU5MTE5XHU5MTMyXHU5MTMwXHU5MTRhXHU5MTU2XHU5MTU4XHU5MTYzXHU5MTY1XHU5MTY5XHU5MTczXHU5MTcyXHU5MThiXHU5MTg5XHU5MTgyXHU5MWEyXHU5MWFi''@;'; + put 'put ''XHU5MWFmXHU5MWFhXHU5MWI1XHU5MWI0XHU5MWJhXHU5MWMwXHU5MWMxXHU5MWM5XHU5MWNiXHU5MWQwXHU5MWQ2XHU5MWRmXHU5MWUxXHU5MWRiXHU5MWZjXHU5MWY1XHU5MWY2XHU5MjFlXHU5MWZmXHU5MjE0XHU5MjJjXHU5MjE1XHU5MjExXHU5MjVlXHU5MjU3XHU5MjQ1XHU5MjQ5XHU5''@;'; + put 'put ''MjY0XHU5MjQ4XHU5Mjk1XHU5MjNmXHU5MjRiXHU5MjUwXHU5MjljXHU5Mjk2XHU5MjkzXHU5MjliXHU5MjVhXHU5MmNmXHU5MmI5XHU5MmI3XHU5MmU5XHU5MzBmXHU5MmZhXHU5MzQ0XHU5MzJlIl0sWyJlZmExIiwiXHU5MzE5XHU5MzIyXHU5MzFhXHU5MzIzXHU5MzNhXHU5MzM1XHU5MzNi''@;'; + put 'put ''XHU5MzVjXHU5MzYwXHU5MzdjXHU5MzZlXHU5MzU2XHU5M2IwXHU5M2FjXHU5M2FkXHU5Mzk0XHU5M2I5XHU5M2Q2XHU5M2Q3XHU5M2U4XHU5M2U1XHU5M2Q4XHU5M2MzXHU5M2RkXHU5M2QwXHU5M2M4XHU5M2U0XHU5NDFhXHU5NDE0XHU5NDEzXHU5NDAzXHU5NDA3XHU5NDEwXHU5NDM2XHU5''@;'; + put 'put ''NDJiXHU5NDM1XHU5NDIxXHU5NDNhXHU5NDQxXHU5NDUyXHU5NDQ0XHU5NDViXHU5NDYwXHU5NDYyXHU5NDVlXHU5NDZhXHU5MjI5XHU5NDcwXHU5NDc1XHU5NDc3XHU5NDdkXHU5NDVhXHU5NDdjXHU5NDdlXHU5NDgxXHU5NDdmXHU5NTgyXHU5NTg3XHU5NThhXHU5NTk0XHU5NTk2XHU5NTk4''@;'; + put 'put ''XHU5NTk5XHU5NWEwXHU5NWE4XHU5NWE3XHU5NWFkXHU5NWJjXHU5NWJiXHU5NWI5XHU5NWJlXHU5NWNhXHU2ZmY2XHU5NWMzXHU5NWNkXHU5NWNjXHU5NWQ1XHU5NWQ0XHU5NWQ2XHU5NWRjXHU5NWUxXHU5NWU1XHU5NWUyXHU5NjIxXHU5NjI4XHU5NjJlXHU5NjJmXHU5NjQyXHU5NjRjXHU5''@;'; + put 'put ''NjRmXHU5NjRiXHU5Njc3XHU5NjVjXHU5NjVlIl0sWyJmMGExIiwiXHU5NjVkXHU5NjVmXHU5NjY2XHU5NjcyXHU5NjZjXHU5NjhkXHU5Njk4XHU5Njk1XHU5Njk3XHU5NmFhXHU5NmE3XHU5NmIxXHU5NmIyXHU5NmIwXHU5NmI0XHU5NmI2XHU5NmI4XHU5NmI5XHU5NmNlXHU5NmNiXHU5NmM5''@;'; + put 'put ''XHU5NmNkXHU4OTRkXHU5NmRjXHU5NzBkXHU5NmQ1XHU5NmY5XHU5NzA0XHU5NzA2XHU5NzA4XHU5NzEzXHU5NzBlXHU5NzExXHU5NzBmXHU5NzE2XHU5NzE5XHU5NzI0XHU5NzJhXHU5NzMwXHU5NzM5XHU5NzNkXHU5NzNlXHU5NzQ0XHU5NzQ2XHU5NzQ4XHU5NzQyXHU5NzQ5XHU5NzVjXHU5''@;'; + put 'put ''NzYwXHU5NzY0XHU5NzY2XHU5NzY4XHU1MmQyXHU5NzZiXHU5NzcxXHU5Nzc5XHU5Nzg1XHU5NzdjXHU5NzgxXHU5NzdhXHU5Nzg2XHU5NzhiXHU5NzhmXHU5NzkwXHU5NzljXHU5N2E4XHU5N2E2XHU5N2EzXHU5N2IzXHU5N2I0XHU5N2MzXHU5N2M2XHU5N2M4XHU5N2NiXHU5N2RjXHU5N2Vk''@;'; + put 'put ''XHU5ZjRmXHU5N2YyXHU3YWRmXHU5N2Y2XHU5N2Y1XHU5ODBmXHU5ODBjXHU5ODM4XHU5ODI0XHU5ODIxXHU5ODM3XHU5ODNkXHU5ODQ2XHU5ODRmXHU5ODRiXHU5ODZiXHU5ODZmXHU5ODcwIl0sWyJmMWExIiwiXHU5ODcxXHU5ODc0XHU5ODczXHU5OGFhXHU5OGFmXHU5OGIxXHU5OGI2XHU5''@;'; + put 'put ''OGM0XHU5OGMzXHU5OGM2XHU5OGU5XHU5OGViXHU5OTAzXHU5OTA5XHU5OTEyXHU5OTE0XHU5OTE4XHU5OTIxXHU5OTFkXHU5OTFlXHU5OTI0XHU5OTIwXHU5OTJjXHU5OTJlXHU5OTNkXHU5OTNlXHU5OTQyXHU5OTQ5XHU5OTQ1XHU5OTUwXHU5OTRiXHU5OTUxXHU5OTUyXHU5OTRjXHU5OTU1''@;'; + put 'put ''XHU5OTk3XHU5OTk4XHU5OWE1XHU5OWFkXHU5OWFlXHU5OWJjXHU5OWRmXHU5OWRiXHU5OWRkXHU5OWQ4XHU5OWQxXHU5OWVkXHU5OWVlXHU5OWYxXHU5OWYyXHU5OWZiXHU5OWY4XHU5YTAxXHU5YTBmXHU5YTA1XHU5OWUyXHU5YTE5XHU5YTJiXHU5YTM3XHU5YTQ1XHU5YTQyXHU5YTQwXHU5''@;'; + put 'put ''YTQzXHU5YTNlXHU5YTU1XHU5YTRkXHU5YTViXHU5YTU3XHU5YTVmXHU5YTYyXHU5YTY1XHU5YTY0XHU5YTY5XHU5YTZiXHU5YTZhXHU5YWFkXHU5YWIwXHU5YWJjXHU5YWMwXHU5YWNmXHU5YWQxXHU5YWQzXHU5YWQ0XHU5YWRlXHU5YWRmXHU5YWUyXHU5YWUzXHU5YWU2XHU5YWVmXHU5YWVi''@;'; + put 'put ''XHU5YWVlXHU5YWY0XHU5YWYxXHU5YWY3Il0sWyJmMmExIiwiXHU5YWZiXHU5YjA2XHU5YjE4XHU5YjFhXHU5YjFmXHU5YjIyXHU5YjIzXHU5YjI1XHU5YjI3XHU5YjI4XHU5YjI5XHU5YjJhXHU5YjJlXHU5YjJmXHU5YjMyXHU5YjQ0XHU5YjQzXHU5YjRmXHU5YjRkXHU5YjRlXHU5YjUxXHU5''@;'; + put 'put ''YjU4XHU5Yjc0XHU5YjkzXHU5YjgzXHU5YjkxXHU5Yjk2XHU5Yjk3XHU5YjlmXHU5YmEwXHU5YmE4XHU5YmI0XHU5YmMwXHU5YmNhXHU5YmI5XHU5YmM2XHU5YmNmXHU5YmQxXHU5YmQyXHU5YmUzXHU5YmUyXHU5YmU0XHU5YmQ0XHU5YmUxXHU5YzNhXHU5YmYyXHU5YmYxXHU5YmYwXHU5YzE1''@;'; + put 'put ''XHU5YzE0XHU5YzA5XHU5YzEzXHU5YzBjXHU5YzA2XHU5YzA4XHU5YzEyXHU5YzBhXHU5YzA0XHU5YzJlXHU5YzFiXHU5YzI1XHU5YzI0XHU5YzIxXHU5YzMwXHU5YzQ3XHU5YzMyXHU5YzQ2XHU5YzNlXHU5YzVhXHU5YzYwXHU5YzY3XHU5Yzc2XHU5Yzc4XHU5Y2U3XHU5Y2VjXHU5Y2YwXHU5''@;'; + put 'put ''ZDA5XHU5ZDA4XHU5Y2ViXHU5ZDAzXHU5ZDA2XHU5ZDJhXHU5ZDI2XHU5ZGFmXHU5ZDIzXHU5ZDFmXHU5ZDQ0XHU5ZDE1XHU5ZDEyXHU5ZDQxXHU5ZDNmXHU5ZDNlXHU5ZDQ2XHU5ZDQ4Il0sWyJmM2ExIiwiXHU5ZDVkXHU5ZDVlXHU5ZDY0XHU5ZDUxXHU5ZDUwXHU5ZDU5XHU5ZDcyXHU5ZDg5''@;'; + put 'put ''XHU5ZDg3XHU5ZGFiXHU5ZDZmXHU5ZDdhXHU5ZDlhXHU5ZGE0XHU5ZGE5XHU5ZGIyXHU5ZGM0XHU5ZGMxXHU5ZGJiXHU5ZGI4XHU5ZGJhXHU5ZGM2XHU5ZGNmXHU5ZGMyXHU5ZGQ5XHU5ZGQzXHU5ZGY4XHU5ZGU2XHU5ZGVkXHU5ZGVmXHU5ZGZkXHU5ZTFhXHU5ZTFiXHU5ZTFlXHU5ZTc1XHU5''@;'; + put 'put ''ZTc5XHU5ZTdkXHU5ZTgxXHU5ZTg4XHU5ZThiXHU5ZThjXHU5ZTkyXHU5ZTk1XHU5ZTkxXHU5ZTlkXHU5ZWE1XHU5ZWE5XHU5ZWI4XHU5ZWFhXHU5ZWFkXHU5NzYxXHU5ZWNjXHU5ZWNlXHU5ZWNmXHU5ZWQwXHU5ZWQ0XHU5ZWRjXHU5ZWRlXHU5ZWRkXHU5ZWUwXHU5ZWU1XHU5ZWU4XHU5ZWVm''@;'; + put 'put ''XHU5ZWY0XHU5ZWY2XHU5ZWY3XHU5ZWY5XHU5ZWZiXHU5ZWZjXHU5ZWZkXHU5ZjA3XHU5ZjA4XHU3NmI3XHU5ZjE1XHU5ZjIxXHU5ZjJjXHU5ZjNlXHU5ZjRhXHU5ZjUyXHU5ZjU0XHU5ZjYzXHU5ZjVmXHU5ZjYwXHU5ZjYxXHU5ZjY2XHU5ZjY3XHU5ZjZjXHU5ZjZhXHU5Zjc3XHU5ZjcyXHU5''@;'; + put 'put ''Zjc2XHU5Zjk1XHU5ZjljXHU5ZmEwIl0sWyJmNGExIiwiXHU1ODJmXHU2OWM3XHU5MDU5XHU3NDY0XHU1MWRjXHU3MTk5Il0sWyJmOWExIiwiXHU3ZThhXHU4OTFjXHU5MzQ4XHU5Mjg4XHU4NGRjXHU0ZmM5XHU3MGJiXHU2NjMxXHU2OGM4XHU5MmY5XHU2NmZiXHU1ZjQ1XHU0ZTI4XHU0ZWUx''@;'; + put 'put ''XHU0ZWZjXHU0ZjAwXHU0ZjAzXHU0ZjM5XHU0ZjU2XHU0ZjkyXHU0ZjhhXHU0ZjlhXHU0Zjk0XHU0ZmNkXHU1MDQwXHU1MDIyXHU0ZmZmXHU1MDFlXHU1MDQ2XHU1MDcwXHU1MDQyXHU1MDk0XHU1MGY0XHU1MGQ4XHU1MTRhXHU1MTY0XHU1MTlkXHU1MWJlXHU1MWVjXHU1MjE1XHU1MjljXHU1''@;'; + put 'put ''MmE2XHU1MmMwXHU1MmRiXHU1MzAwXHU1MzA3XHU1MzI0XHU1MzcyXHU1MzkzXHU1M2IyXHU1M2RkXHVmYTBlXHU1NDljXHU1NDhhXHU1NGE5XHU1NGZmXHU1NTg2XHU1NzU5XHU1NzY1XHU1N2FjXHU1N2M4XHU1N2M3XHVmYTBmXHVmYTEwXHU1ODllXHU1OGIyXHU1OTBiXHU1OTUzXHU1OTVi''@;'; + put 'put ''XHU1OTVkXHU1OTYzXHU1OWE0XHU1OWJhXHU1YjU2XHU1YmMwXHU3NTJmXHU1YmQ4XHU1YmVjXHU1YzFlXHU1Y2E2XHU1Y2JhXHU1Y2Y1XHU1ZDI3XHU1ZDUzXHVmYTExXHU1ZDQyXHU1ZDZkXHU1ZGI4XHU1ZGI5XHU1ZGQwXHU1ZjIxXHU1ZjM0XHU1ZjY3XHU1ZmI3Il0sWyJmYWExIiwiXHU1''@;'; + put 'put ''ZmRlXHU2MDVkXHU2MDg1XHU2MDhhXHU2MGRlXHU2MGQ1XHU2MTIwXHU2MGYyXHU2MTExXHU2MTM3XHU2MTMwXHU2MTk4XHU2MjEzXHU2MmE2XHU2M2Y1XHU2NDYwXHU2NDlkXHU2NGNlXHU2NTRlXHU2NjAwXHU2NjE1XHU2NjNiXHU2NjA5XHU2NjJlXHU2NjFlXHU2NjI0XHU2NjY1XHU2NjU3''@;'; + put 'put ''XHU2NjU5XHVmYTEyXHU2NjczXHU2Njk5XHU2NmEwXHU2NmIyXHU2NmJmXHU2NmZhXHU2NzBlXHVmOTI5XHU2NzY2XHU2N2JiXHU2ODUyXHU2N2MwXHU2ODAxXHU2ODQ0XHU2OGNmXHVmYTEzXHU2OTY4XHVmYTE0XHU2OTk4XHU2OWUyXHU2YTMwXHU2YTZiXHU2YTQ2XHU2YTczXHU2YTdlXHU2''@;'; + put 'put ''YWUyXHU2YWU0XHU2YmQ2XHU2YzNmXHU2YzVjXHU2Yzg2XHU2YzZmXHU2Y2RhXHU2ZDA0XHU2ZDg3XHU2ZDZmXHU2ZDk2XHU2ZGFjXHU2ZGNmXHU2ZGY4XHU2ZGYyXHU2ZGZjXHU2ZTM5XHU2ZTVjXHU2ZTI3XHU2ZTNjXHU2ZWJmXHU2Zjg4XHU2ZmI1XHU2ZmY1XHU3MDA1XHU3MDA3XHU3MDI4''@;'; + put 'put ''XHU3MDg1XHU3MGFiXHU3MTBmXHU3MTA0XHU3MTVjXHU3MTQ2XHU3MTQ3XHVmYTE1XHU3MWMxXHU3MWZlXHU3MmIxIl0sWyJmYmExIiwiXHU3MmJlXHU3MzI0XHVmYTE2XHU3Mzc3XHU3M2JkXHU3M2M5XHU3M2Q2XHU3M2UzXHU3M2QyXHU3NDA3XHU3M2Y1XHU3NDI2XHU3NDJhXHU3NDI5XHU3''@;'; + put 'put ''NDJlXHU3NDYyXHU3NDg5XHU3NDlmXHU3NTAxXHU3NTZmXHU3NjgyXHU3NjljXHU3NjllXHU3NjliXHU3NmE2XHVmYTE3XHU3NzQ2XHU1MmFmXHU3ODIxXHU3ODRlXHU3ODY0XHU3ODdhXHU3OTMwXHVmYTE4XHVmYTE5XHVmYTFhXHU3OTk0XHVmYTFiXHU3OTliXHU3YWQxXHU3YWU3XHVmYTFj''@;'; + put 'put ''XHU3YWViXHU3YjllXHVmYTFkXHU3ZDQ4XHU3ZDVjXHU3ZGI3XHU3ZGEwXHU3ZGQ2XHU3ZTUyXHU3ZjQ3XHU3ZmExXHVmYTFlXHU4MzAxXHU4MzYyXHU4MzdmXHU4M2M3XHU4M2Y2XHU4NDQ4XHU4NGI0XHU4NTUzXHU4NTU5XHU4NTZiXHVmYTFmXHU4NWIwXHVmYTIwXHVmYTIxXHU4ODA3XHU4''@;'; + put 'put ''OGY1XHU4YTEyXHU4YTM3XHU4YTc5XHU4YWE3XHU4YWJlXHU4YWRmXHVmYTIyXHU4YWY2XHU4YjUzXHU4YjdmXHU4Y2YwXHU4Y2Y0XHU4ZDEyXHU4ZDc2XHVmYTIzXHU4ZWNmXHVmYTI0XHVmYTI1XHU5MDY3XHU5MGRlXHVmYTI2XHU5MTE1XHU5MTI3XHU5MWRhIl0sWyJmY2ExIiwiXHU5MWQ3''@;'; + put 'put ''XHU5MWRlXHU5MWVkXHU5MWVlXHU5MWU0XHU5MWU1XHU5MjA2XHU5MjEwXHU5MjBhXHU5MjNhXHU5MjQwXHU5MjNjXHU5MjRlXHU5MjU5XHU5MjUxXHU5MjM5XHU5MjY3XHU5MmE3XHU5Mjc3XHU5Mjc4XHU5MmU3XHU5MmQ3XHU5MmQ5XHU5MmQwXHVmYTI3XHU5MmQ1XHU5MmUwXHU5MmQzXHU5''@;'; + put 'put ''MzI1XHU5MzIxXHU5MmZiXHVmYTI4XHU5MzFlXHU5MmZmXHU5MzFkXHU5MzAyXHU5MzcwXHU5MzU3XHU5M2E0XHU5M2M2XHU5M2RlXHU5M2Y4XHU5NDMxXHU5NDQ1XHU5NDQ4XHU5NTkyXHVmOWRjXHVmYTI5XHU5NjlkXHU5NmFmXHU5NzMzXHU5NzNiXHU5NzQzXHU5NzRkXHU5NzRmXHU5NzUx''@;'; + put 'put ''XHU5NzU1XHU5ODU3XHU5ODY1XHVmYTJhXHVmYTJiXHU5OTI3XHVmYTJjXHU5OTllXHU5YTRlXHU5YWQ5XHU5YWRjXHU5Yjc1XHU5YjcyXHU5YjhmXHU5YmIxXHU5YmJiXHU5YzAwXHU5ZDcwXHU5ZDZiXHVmYTJkXHU5ZTE5XHU5ZWQxIl0sWyJmY2YxIiwiXHUyMTcwIiw5LCJcdWZmZTJcdWZm''@;'; + put 'put ''ZTRcdWZmMDdcdWZmMDIiXSxbIjhmYTJhZiIsIlx1MDJkOFx1MDJjN1x4YjhcdTAyZDlcdTAyZGRceGFmXHUwMmRiXHUwMmRhXHVmZjVlXHUwMzg0XHUwMzg1Il0sWyI4ZmEyYzIiLCJceGExXHhhNlx4YmYiXSxbIjhmYTJlYiIsIlx4YmFceGFhXHhhOVx4YWVcdTIxMjJceGE0XHUyMTE2Il0s''@;'; + put 'put ''WyI4ZmE2ZTEiLCJcdTAzODZcdTAzODhcdTAzODlcdTAzOGFcdTAzYWEiXSxbIjhmYTZlNyIsIlx1MDM4YyJdLFsiOGZhNmU5IiwiXHUwMzhlXHUwM2FiIl0sWyI4ZmE2ZWMiLCJcdTAzOGYiXSxbIjhmYTZmMSIsIlx1MDNhY1x1MDNhZFx1MDNhZVx1MDNhZlx1MDNjYVx1MDM5MFx1MDNjY1x1''@;'; + put 'put ''MDNjMlx1MDNjZFx1MDNjYlx1MDNiMFx1MDNjZSJdLFsiOGZhN2MyIiwiXHUwNDAyIiwxMCwiXHUwNDBlXHUwNDBmIl0sWyI4ZmE3ZjIiLCJcdTA0NTIiLDEwLCJcdTA0NWVcdTA0NWYiXSxbIjhmYTlhMSIsIlx4YzZcdTAxMTAiXSxbIjhmYTlhNCIsIlx1MDEyNiJdLFsiOGZhOWE2IiwiXHUw''@;'; + put 'put ''MTMyIl0sWyI4ZmE5YTgiLCJcdTAxNDFcdTAxM2YiXSxbIjhmYTlhYiIsIlx1MDE0YVx4ZDhcdTAxNTIiXSxbIjhmYTlhZiIsIlx1MDE2Nlx4ZGUiXSxbIjhmYTljMSIsIlx4ZTZcdTAxMTFceGYwXHUwMTI3XHUwMTMxXHUwMTMzXHUwMTM4XHUwMTQyXHUwMTQwXHUwMTQ5XHUwMTRiXHhmOFx1''@;'; + put 'put ''MDE1M1x4ZGZcdTAxNjdceGZlIl0sWyI4ZmFhYTEiLCJceGMxXHhjMFx4YzRceGMyXHUwMTAyXHUwMWNkXHUwMTAwXHUwMTA0XHhjNVx4YzNcdTAxMDZcdTAxMDhcdTAxMGNceGM3XHUwMTBhXHUwMTBlXHhjOVx4YzhceGNiXHhjYVx1MDExYVx1MDExNlx1MDExMlx1MDExOCJdLFsiOGZhYWJh''@;'; + put 'put ''IiwiXHUwMTFjXHUwMTFlXHUwMTIyXHUwMTIwXHUwMTI0XHhjZFx4Y2NceGNmXHhjZVx1MDFjZlx1MDEzMFx1MDEyYVx1MDEyZVx1MDEyOFx1MDEzNFx1MDEzNlx1MDEzOVx1MDEzZFx1MDEzYlx1MDE0M1x1MDE0N1x1MDE0NVx4ZDFceGQzXHhkMlx4ZDZceGQ0XHUwMWQxXHUwMTUwXHUwMTRj''@;'; + put 'put ''XHhkNVx1MDE1NFx1MDE1OFx1MDE1Nlx1MDE1YVx1MDE1Y1x1MDE2MFx1MDE1ZVx1MDE2NFx1MDE2Mlx4ZGFceGQ5XHhkY1x4ZGJcdTAxNmNcdTAxZDNcdTAxNzBcdTAxNmFcdTAxNzJcdTAxNmVcdTAxNjhcdTAxZDdcdTAxZGJcdTAxZDlcdTAxZDVcdTAxNzRceGRkXHUwMTc4XHUwMTc2XHUw''@;'; + put 'put ''MTc5XHUwMTdkXHUwMTdiIl0sWyI4ZmFiYTEiLCJceGUxXHhlMFx4ZTRceGUyXHUwMTAzXHUwMWNlXHUwMTAxXHUwMTA1XHhlNVx4ZTNcdTAxMDdcdTAxMDlcdTAxMGRceGU3XHUwMTBiXHUwMTBmXHhlOVx4ZThceGViXHhlYVx1MDExYlx1MDExN1x1MDExM1x1MDExOVx1MDFmNVx1MDExZFx1''@;'; + put 'put ''MDExZiJdLFsiOGZhYmJkIiwiXHUwMTIxXHUwMTI1XHhlZFx4ZWNceGVmXHhlZVx1MDFkMCJdLFsiOGZhYmM1IiwiXHUwMTJiXHUwMTJmXHUwMTI5XHUwMTM1XHUwMTM3XHUwMTNhXHUwMTNlXHUwMTNjXHUwMTQ0XHUwMTQ4XHUwMTQ2XHhmMVx4ZjNceGYyXHhmNlx4ZjRcdTAxZDJcdTAxNTFc''@;'; + put 'put ''dTAxNGRceGY1XHUwMTU1XHUwMTU5XHUwMTU3XHUwMTViXHUwMTVkXHUwMTYxXHUwMTVmXHUwMTY1XHUwMTYzXHhmYVx4ZjlceGZjXHhmYlx1MDE2ZFx1MDFkNFx1MDE3MVx1MDE2Ylx1MDE3M1x1MDE2Zlx1MDE2OVx1MDFkOFx1MDFkY1x1MDFkYVx1MDFkNlx1MDE3NVx4ZmRceGZmXHUwMTc3''@;'; + put 'put ''XHUwMTdhXHUwMTdlXHUwMTdjIl0sWyI4ZmIwYTEiLCJcdTRlMDJcdTRlMDRcdTRlMDVcdTRlMGNcdTRlMTJcdTRlMWZcdTRlMjNcdTRlMjRcdTRlMjhcdTRlMmJcdTRlMmVcdTRlMmZcdTRlMzBcdTRlMzVcdTRlNDBcdTRlNDFcdTRlNDRcdTRlNDdcdTRlNTFcdTRlNWFcdTRlNWNcdTRlNjNc''@;'; + put 'put ''dTRlNjhcdTRlNjlcdTRlNzRcdTRlNzVcdTRlNzlcdTRlN2ZcdTRlOGRcdTRlOTZcdTRlOTdcdTRlOWRcdTRlYWZcdTRlYjlcdTRlYzNcdTRlZDBcdTRlZGFcdTRlZGJcdTRlZTBcdTRlZTFcdTRlZTJcdTRlZThcdTRlZWZcdTRlZjFcdTRlZjNcdTRlZjVcdTRlZmRcdTRlZmVcdTRlZmZcdTRm''@;'; + put 'put ''MDBcdTRmMDJcdTRmMDNcdTRmMDhcdTRmMGJcdTRmMGNcdTRmMTJcdTRmMTVcdTRmMTZcdTRmMTdcdTRmMTlcdTRmMmVcdTRmMzFcdTRmNjBcdTRmMzNcdTRmMzVcdTRmMzdcdTRmMzlcdTRmM2JcdTRmM2VcdTRmNDBcdTRmNDJcdTRmNDhcdTRmNDlcdTRmNGJcdTRmNGNcdTRmNTJcdTRmNTRc''@;'; + put 'put ''dTRmNTZcdTRmNThcdTRmNWZcdTRmNjNcdTRmNmFcdTRmNmNcdTRmNmVcdTRmNzFcdTRmNzdcdTRmNzhcdTRmNzlcdTRmN2FcdTRmN2RcdTRmN2VcdTRmODFcdTRmODJcdTRmODQiXSxbIjhmYjFhMSIsIlx1NGY4NVx1NGY4OVx1NGY4YVx1NGY4Y1x1NGY4ZVx1NGY5MFx1NGY5Mlx1NGY5M1x1''@;'; + put 'put ''NGY5NFx1NGY5N1x1NGY5OVx1NGY5YVx1NGY5ZVx1NGY5Zlx1NGZiMlx1NGZiN1x1NGZiOVx1NGZiYlx1NGZiY1x1NGZiZFx1NGZiZVx1NGZjMFx1NGZjMVx1NGZjNVx1NGZjNlx1NGZjOFx1NGZjOVx1NGZjYlx1NGZjY1x1NGZjZFx1NGZjZlx1NGZkMlx1NGZkY1x1NGZlMFx1NGZlMlx1NGZm''@;'; + put 'put ''MFx1NGZmMlx1NGZmY1x1NGZmZFx1NGZmZlx1NTAwMFx1NTAwMVx1NTAwNFx1NTAwN1x1NTAwYVx1NTAwY1x1NTAwZVx1NTAxMFx1NTAxM1x1NTAxN1x1NTAxOFx1NTAxYlx1NTAxY1x1NTAxZFx1NTAxZVx1NTAyMlx1NTAyN1x1NTAyZVx1NTAzMFx1NTAzMlx1NTAzM1x1NTAzNVx1NTA0MFx1''@;'; + put 'put ''NTA0MVx1NTA0Mlx1NTA0NVx1NTA0Nlx1NTA0YVx1NTA0Y1x1NTA0ZVx1NTA1MVx1NTA1Mlx1NTA1M1x1NTA1N1x1NTA1OVx1NTA1Zlx1NTA2MFx1NTA2Mlx1NTA2M1x1NTA2Nlx1NTA2N1x1NTA2YVx1NTA2ZFx1NTA3MFx1NTA3MVx1NTAzYlx1NTA4MVx1NTA4M1x1NTA4NFx1NTA4Nlx1NTA4''@;'; + put 'put ''YVx1NTA4ZVx1NTA4Zlx1NTA5MCJdLFsiOGZiMmExIiwiXHU1MDkyXHU1MDkzXHU1MDk0XHU1MDk2XHU1MDliXHU1MDljXHU1MDllIiw0LCJcdTUwYWFcdTUwYWZcdTUwYjBcdTUwYjlcdTUwYmFcdTUwYmRcdTUwYzBcdTUwYzNcdTUwYzRcdTUwYzdcdTUwY2NcdTUwY2VcdTUwZDBcdTUwZDNc''@;'; + put 'put ''dTUwZDRcdTUwZDhcdTUwZGNcdTUwZGRcdTUwZGZcdTUwZTJcdTUwZTRcdTUwZTZcdTUwZThcdTUwZTlcdTUwZWZcdTUwZjFcdTUwZjZcdTUwZmFcdTUwZmVcdTUxMDNcdTUxMDZcdTUxMDdcdTUxMDhcdTUxMGJcdTUxMGNcdTUxMGRcdTUxMGVcdTUwZjJcdTUxMTBcdTUxMTdcdTUxMTlcdTUx''@;'; + put 'put ''MWJcdTUxMWNcdTUxMWRcdTUxMWVcdTUxMjNcdTUxMjdcdTUxMjhcdTUxMmNcdTUxMmRcdTUxMmZcdTUxMzFcdTUxMzNcdTUxMzRcdTUxMzVcdTUxMzhcdTUxMzlcdTUxNDJcdTUxNGFcdTUxNGZcdTUxNTNcdTUxNTVcdTUxNTdcdTUxNThcdTUxNWZcdTUxNjRcdTUxNjZcdTUxN2VcdTUxODNc''@;'; + put 'put ''dTUxODRcdTUxOGJcdTUxOGVcdTUxOThcdTUxOWRcdTUxYTFcdTUxYTNcdTUxYWRcdTUxYjhcdTUxYmFcdTUxYmNcdTUxYmVcdTUxYmZcdTUxYzIiXSxbIjhmYjNhMSIsIlx1NTFjOFx1NTFjZlx1NTFkMVx1NTFkMlx1NTFkM1x1NTFkNVx1NTFkOFx1NTFkZVx1NTFlMlx1NTFlNVx1NTFlZVx1''@;'; + put 'put ''NTFmMlx1NTFmM1x1NTFmNFx1NTFmN1x1NTIwMVx1NTIwMlx1NTIwNVx1NTIxMlx1NTIxM1x1NTIxNVx1NTIxNlx1NTIxOFx1NTIyMlx1NTIyOFx1NTIzMVx1NTIzMlx1NTIzNVx1NTIzY1x1NTI0NVx1NTI0OVx1NTI1NVx1NTI1N1x1NTI1OFx1NTI1YVx1NTI1Y1x1NTI1Zlx1NTI2MFx1NTI2''@;'; + put 'put ''MVx1NTI2Nlx1NTI2ZVx1NTI3N1x1NTI3OFx1NTI3OVx1NTI4MFx1NTI4Mlx1NTI4NVx1NTI4YVx1NTI4Y1x1NTI5M1x1NTI5NVx1NTI5Nlx1NTI5N1x1NTI5OFx1NTI5YVx1NTI5Y1x1NTJhNFx1NTJhNVx1NTJhNlx1NTJhN1x1NTJhZlx1NTJiMFx1NTJiNlx1NTJiN1x1NTJiOFx1NTJiYVx1''@;'; + put 'put ''NTJiYlx1NTJiZFx1NTJjMFx1NTJjNFx1NTJjNlx1NTJjOFx1NTJjY1x1NTJjZlx1NTJkMVx1NTJkNFx1NTJkNlx1NTJkYlx1NTJkY1x1NTJlMVx1NTJlNVx1NTJlOFx1NTJlOVx1NTJlYVx1NTJlY1x1NTJmMFx1NTJmMVx1NTJmNFx1NTJmNlx1NTJmN1x1NTMwMFx1NTMwM1x1NTMwYVx1NTMw''@;'; + put 'put ''YiJdLFsiOGZiNGExIiwiXHU1MzBjXHU1MzExXHU1MzEzXHU1MzE4XHU1MzFiXHU1MzFjXHU1MzFlXHU1MzFmXHU1MzI1XHU1MzI3XHU1MzI4XHU1MzI5XHU1MzJiXHU1MzJjXHU1MzJkXHU1MzMwXHU1MzMyXHU1MzM1XHU1MzNjXHU1MzNkXHU1MzNlXHU1MzQyXHU1MzRjXHU1MzRiXHU1MzU5''@;'; + put 'put ''XHU1MzViXHU1MzYxXHU1MzYzXHU1MzY1XHU1MzZjXHU1MzZkXHU1MzcyXHU1Mzc5XHU1MzdlXHU1MzgzXHU1Mzg3XHU1Mzg4XHU1MzhlXHU1MzkzXHU1Mzk0XHU1Mzk5XHU1MzlkXHU1M2ExXHU1M2E0XHU1M2FhXHU1M2FiXHU1M2FmXHU1M2IyXHU1M2I0XHU1M2I1XHU1M2I3XHU1M2I4XHU1''@;'; + put 'put ''M2JhXHU1M2JkXHU1M2MwXHU1M2M1XHU1M2NmXHU1M2QyXHU1M2QzXHU1M2Q1XHU1M2RhXHU1M2RkXHU1M2RlXHU1M2UwXHU1M2U2XHU1M2U3XHU1M2Y1XHU1NDAyXHU1NDEzXHU1NDFhXHU1NDIxXHU1NDI3XHU1NDI4XHU1NDJhXHU1NDJmXHU1NDMxXHU1NDM0XHU1NDM1XHU1NDQzXHU1NDQ0''@;'; + put 'put ''XHU1NDQ3XHU1NDRkXHU1NDRmXHU1NDVlXHU1NDYyXHU1NDY0XHU1NDY2XHU1NDY3XHU1NDY5XHU1NDZiXHU1NDZkXHU1NDZlXHU1NDc0XHU1NDdmIl0sWyI4ZmI1YTEiLCJcdTU0ODFcdTU0ODNcdTU0ODVcdTU0ODhcdTU0ODlcdTU0OGRcdTU0OTFcdTU0OTVcdTU0OTZcdTU0OWNcdTU0OWZc''@;'; + put 'put ''dTU0YTFcdTU0YTZcdTU0YTdcdTU0YTlcdTU0YWFcdTU0YWRcdTU0YWVcdTU0YjFcdTU0YjdcdTU0YjlcdTU0YmFcdTU0YmJcdTU0YmZcdTU0YzZcdTU0Y2FcdTU0Y2RcdTU0Y2VcdTU0ZTBcdTU0ZWFcdTU0ZWNcdTU0ZWZcdTU0ZjZcdTU0ZmNcdTU0ZmVcdTU0ZmZcdTU1MDBcdTU1MDFcdTU1''@;'; + put 'put ''MDVcdTU1MDhcdTU1MDlcdTU1MGNcdTU1MGRcdTU1MGVcdTU1MTVcdTU1MmFcdTU1MmJcdTU1MzJcdTU1MzVcdTU1MzZcdTU1M2JcdTU1M2NcdTU1M2RcdTU1NDFcdTU1NDdcdTU1NDlcdTU1NGFcdTU1NGRcdTU1NTBcdTU1NTFcdTU1NThcdTU1NWFcdTU1NWJcdTU1NWVcdTU1NjBcdTU1NjFc''@;'; + put 'put ''dTU1NjRcdTU1NjZcdTU1N2ZcdTU1ODFcdTU1ODJcdTU1ODZcdTU1ODhcdTU1OGVcdTU1OGZcdTU1OTFcdTU1OTJcdTU1OTNcdTU1OTRcdTU1OTdcdTU1YTNcdTU1YTRcdTU1YWRcdTU1YjJcdTU1YmZcdTU1YzFcdTU1YzNcdTU1YzZcdTU1YzlcdTU1Y2JcdTU1Y2NcdTU1Y2VcdTU1ZDFcdTU1''@;'; + put 'put ''ZDIiXSxbIjhmYjZhMSIsIlx1NTVkM1x1NTVkN1x1NTVkOFx1NTVkYlx1NTVkZVx1NTVlMlx1NTVlOVx1NTVmNlx1NTVmZlx1NTYwNVx1NTYwOFx1NTYwYVx1NTYwZCIsNSwiXHU1NjE5XHU1NjJjXHU1NjMwXHU1NjMzXHU1NjM1XHU1NjM3XHU1NjM5XHU1NjNiXHU1NjNjXHU1NjNkXHU1NjNm''@;'; + put 'put ''XHU1NjQwXHU1NjQxXHU1NjQzXHU1NjQ0XHU1NjQ2XHU1NjQ5XHU1NjRiXHU1NjRkXHU1NjRmXHU1NjU0XHU1NjVlXHU1NjYwXHU1NjYxXHU1NjYyXHU1NjYzXHU1NjY2XHU1NjY5XHU1NjZkXHU1NjZmXHU1NjcxXHU1NjcyXHU1Njc1XHU1Njg0XHU1Njg1XHU1Njg4XHU1NjhiXHU1NjhjXHU1''@;'; + put 'put ''Njk1XHU1Njk5XHU1NjlhXHU1NjlkXHU1NjllXHU1NjlmXHU1NmE2XHU1NmE3XHU1NmE4XHU1NmE5XHU1NmFiXHU1NmFjXHU1NmFkXHU1NmIxXHU1NmIzXHU1NmI3XHU1NmJlXHU1NmM1XHU1NmM5XHU1NmNhXHU1NmNiXHU1NmNmXHU1NmQwXHU1NmNjXHU1NmNkXHU1NmQ5XHU1NmRjXHU1NmRk''@;'; + put 'put ''XHU1NmRmXHU1NmUxXHU1NmU0Iiw0LCJcdTU2ZjFcdTU2ZWJcdTU2ZWQiXSxbIjhmYjdhMSIsIlx1NTZmNlx1NTZmN1x1NTcwMVx1NTcwMlx1NTcwN1x1NTcwYVx1NTcwY1x1NTcxMVx1NTcxNVx1NTcxYVx1NTcxYlx1NTcxZFx1NTcyMFx1NTcyMlx1NTcyM1x1NTcyNFx1NTcyNVx1NTcyOVx1''@;'; + put 'put ''NTcyYVx1NTcyY1x1NTcyZVx1NTcyZlx1NTczM1x1NTczNFx1NTczZFx1NTczZVx1NTczZlx1NTc0NVx1NTc0Nlx1NTc0Y1x1NTc0ZFx1NTc1Mlx1NTc2Mlx1NTc2NVx1NTc2N1x1NTc2OFx1NTc2Ylx1NTc2ZCIsNCwiXHU1NzczXHU1Nzc0XHU1Nzc1XHU1Nzc3XHU1Nzc5XHU1NzdhXHU1Nzdi''@;'; + put 'put ''XHU1NzdjXHU1NzdlXHU1NzgxXHU1NzgzXHU1NzhjXHU1Nzk0XHU1Nzk3XHU1Nzk5XHU1NzlhXHU1NzljXHU1NzlkXHU1NzllXHU1NzlmXHU1N2ExXHU1Nzk1XHU1N2E3XHU1N2E4XHU1N2E5XHU1N2FjXHU1N2I4XHU1N2JkXHU1N2M3XHU1N2M4XHU1N2NjXHU1N2NmXHU1N2Q1XHU1N2RkXHU1''@;'; + put 'put ''N2RlXHU1N2U0XHU1N2U2XHU1N2U3XHU1N2U5XHU1N2VkXHU1N2YwXHU1N2Y1XHU1N2Y2XHU1N2Y4XHU1N2ZkXHU1N2ZlXHU1N2ZmXHU1ODAzXHU1ODA0XHU1ODA4XHU1ODA5XHU1N2UxIl0sWyI4ZmI4YTEiLCJcdTU4MGNcdTU4MGRcdTU4MWJcdTU4MWVcdTU4MWZcdTU4MjBcdTU4MjZcdTU4''@;'; + put 'put ''MjdcdTU4MmRcdTU4MzJcdTU4MzlcdTU4M2ZcdTU4NDlcdTU4NGNcdTU4NGRcdTU4NGZcdTU4NTBcdTU4NTVcdTU4NWZcdTU4NjFcdTU4NjRcdTU4NjdcdTU4NjhcdTU4NzhcdTU4N2NcdTU4N2ZcdTU4ODBcdTU4ODFcdTU4ODdcdTU4ODhcdTU4ODlcdTU4OGFcdTU4OGNcdTU4OGRcdTU4OGZc''@;'; + put 'put ''dTU4OTBcdTU4OTRcdTU4OTZcdTU4OWRcdTU4YTBcdTU4YTFcdTU4YTJcdTU4YTZcdTU4YTlcdTU4YjFcdTU4YjJcdTU4YzRcdTU4YmNcdTU4YzJcdTU4YzhcdTU4Y2RcdTU4Y2VcdTU4ZDBcdTU4ZDJcdTU4ZDRcdTU4ZDZcdTU4ZGFcdTU4ZGRcdTU4ZTFcdTU4ZTJcdTU4ZTlcdTU4ZjNcdTU5''@;'; + put 'put ''MDVcdTU5MDZcdTU5MGJcdTU5MGNcdTU5MTJcdTU5MTNcdTU5MTRcdTg2NDFcdTU5MWRcdTU5MjFcdTU5MjNcdTU5MjRcdTU5MjhcdTU5MmZcdTU5MzBcdTU5MzNcdTU5MzVcdTU5MzZcdTU5M2ZcdTU5NDNcdTU5NDZcdTU5NTJcdTU5NTNcdTU5NTlcdTU5NWJcdTU5NWRcdTU5NWVcdTU5NWZc''@;'; + put 'put ''dTU5NjFcdTU5NjNcdTU5NmJcdTU5NmQiXSxbIjhmYjlhMSIsIlx1NTk2Zlx1NTk3Mlx1NTk3NVx1NTk3Nlx1NTk3OVx1NTk3Ylx1NTk3Y1x1NTk4Ylx1NTk4Y1x1NTk4ZVx1NTk5Mlx1NTk5NVx1NTk5N1x1NTk5Zlx1NTlhNFx1NTlhN1x1NTlhZFx1NTlhZVx1NTlhZlx1NTliMFx1NTliM1x1''@;'; + put 'put ''NTliN1x1NTliYVx1NTliY1x1NTljMVx1NTljM1x1NTljNFx1NTljOFx1NTljYVx1NTljZFx1NTlkMlx1NTlkZFx1NTlkZVx1NTlkZlx1NTllM1x1NTllNFx1NTllN1x1NTllZVx1NTllZlx1NTlmMVx1NTlmMlx1NTlmNFx1NTlmN1x1NWEwMFx1NWEwNFx1NWEwY1x1NWEwZFx1NWEwZVx1NWEx''@;'; + put 'put ''Mlx1NWExM1x1NWExZVx1NWEyM1x1NWEyNFx1NWEyN1x1NWEyOFx1NWEyYVx1NWEyZFx1NWEzMFx1NWE0NFx1NWE0NVx1NWE0N1x1NWE0OFx1NWE0Y1x1NWE1MFx1NWE1NVx1NWE1ZVx1NWE2M1x1NWE2NVx1NWE2N1x1NWE2ZFx1NWE3N1x1NWE3YVx1NWE3Ylx1NWE3ZVx1NWE4Ylx1NWE5MFx1''@;'; + put 'put ''NWE5M1x1NWE5Nlx1NWE5OVx1NWE5Y1x1NWE5ZVx1NWE5Zlx1NWFhMFx1NWFhMlx1NWFhN1x1NWFhY1x1NWFiMVx1NWFiMlx1NWFiM1x1NWFiNVx1NWFiOFx1NWFiYVx1NWFiYlx1NWFiZiJdLFsiOGZiYWExIiwiXHU1YWM0XHU1YWM2XHU1YWM4XHU1YWNmXHU1YWRhXHU1YWRjXHU1YWUwXHU1''@;'; + put 'put ''YWU1XHU1YWVhXHU1YWVlXHU1YWY1XHU1YWY2XHU1YWZkXHU1YjAwXHU1YjAxXHU1YjA4XHU1YjE3XHU1YjM0XHU1YjE5XHU1YjFiXHU1YjFkXHU1YjIxXHU1YjI1XHU1YjJkXHU1YjM4XHU1YjQxXHU1YjRiXHU1YjRjXHU1YjUyXHU1YjU2XHU1YjVlXHU1YjY4XHU1YjZlXHU1YjZmXHU1Yjdj''@;'; + put 'put ''XHU1YjdkXHU1YjdlXHU1YjdmXHU1YjgxXHU1Yjg0XHU1Yjg2XHU1YjhhXHU1YjhlXHU1YjkwXHU1YjkxXHU1YjkzXHU1Yjk0XHU1Yjk2XHU1YmE4XHU1YmE5XHU1YmFjXHU1YmFkXHU1YmFmXHU1YmIxXHU1YmIyXHU1YmI3XHU1YmJhXHU1YmJjXHU1YmMwXHU1YmMxXHU1YmNkXHU1YmNmXHU1''@;'; + put 'put ''YmQ2Iiw0LCJcdTViZTBcdTViZWZcdTViZjFcdTViZjRcdTViZmRcdTVjMGNcdTVjMTdcdTVjMWVcdTVjMWZcdTVjMjNcdTVjMjZcdTVjMjlcdTVjMmJcdTVjMmNcdTVjMmVcdTVjMzBcdTVjMzJcdTVjMzVcdTVjMzZcdTVjNTlcdTVjNWFcdTVjNWNcdTVjNjJcdTVjNjNcdTVjNjdcdTVjNjhc''@;'; + put 'put ''dTVjNjkiXSxbIjhmYmJhMSIsIlx1NWM2ZFx1NWM3MFx1NWM3NFx1NWM3NVx1NWM3YVx1NWM3Ylx1NWM3Y1x1NWM3ZFx1NWM4N1x1NWM4OFx1NWM4YVx1NWM4Zlx1NWM5Mlx1NWM5ZFx1NWM5Zlx1NWNhMFx1NWNhMlx1NWNhM1x1NWNhNlx1NWNhYVx1NWNiMlx1NWNiNFx1NWNiNVx1NWNiYVx1''@;'; + put 'put ''NWNjOVx1NWNjYlx1NWNkMlx1NWNkZFx1NWNkN1x1NWNlZVx1NWNmMVx1NWNmMlx1NWNmNFx1NWQwMVx1NWQwNlx1NWQwZFx1NWQxMlx1NWQyYlx1NWQyM1x1NWQyNFx1NWQyNlx1NWQyN1x1NWQzMVx1NWQzNFx1NWQzOVx1NWQzZFx1NWQzZlx1NWQ0Mlx1NWQ0M1x1NWQ0Nlx1NWQ0OFx1NWQ1''@;'; + put 'put ''NVx1NWQ1MVx1NWQ1OVx1NWQ0YVx1NWQ1Zlx1NWQ2MFx1NWQ2MVx1NWQ2Mlx1NWQ2NFx1NWQ2YVx1NWQ2ZFx1NWQ3MFx1NWQ3OVx1NWQ3YVx1NWQ3ZVx1NWQ3Zlx1NWQ4MVx1NWQ4M1x1NWQ4OFx1NWQ4YVx1NWQ5Mlx1NWQ5M1x1NWQ5NFx1NWQ5NVx1NWQ5OVx1NWQ5Ylx1NWQ5Zlx1NWRhMFx1''@;'; + put 'put ''NWRhN1x1NWRhYlx1NWRiMFx1NWRiNFx1NWRiOFx1NWRiOVx1NWRjM1x1NWRjN1x1NWRjYlx1NWRkMFx1NWRjZVx1NWRkOFx1NWRkOVx1NWRlMFx1NWRlNCJdLFsiOGZiY2ExIiwiXHU1ZGU5XHU1ZGY4XHU1ZGY5XHU1ZTAwXHU1ZTA3XHU1ZTBkXHU1ZTEyXHU1ZTE0XHU1ZTE1XHU1ZTE4XHU1''@;'; + put 'put ''ZTFmXHU1ZTIwXHU1ZTJlXHU1ZTI4XHU1ZTMyXHU1ZTM1XHU1ZTNlXHU1ZTRiXHU1ZTUwXHU1ZTQ5XHU1ZTUxXHU1ZTU2XHU1ZTU4XHU1ZTViXHU1ZTVjXHU1ZTVlXHU1ZTY4XHU1ZTZhIiw0LCJcdTVlNzBcdTVlODBcdTVlOGJcdTVlOGVcdTVlYTJcdTVlYTRcdTVlYTVcdTVlYThcdTVlYWFc''@;'; + put 'put ''dTVlYWNcdTVlYjFcdTVlYjNcdTVlYmRcdTVlYmVcdTVlYmZcdTVlYzZcdTVlY2NcdTVlY2JcdTVlY2VcdTVlZDFcdTVlZDJcdTVlZDRcdTVlZDVcdTVlZGNcdTVlZGVcdTVlZTVcdTVlZWJcdTVmMDJcdTVmMDZcdTVmMDdcdTVmMDhcdTVmMGVcdTVmMTlcdTVmMWNcdTVmMWRcdTVmMjFcdTVm''@;'; + put 'put ''MjJcdTVmMjNcdTVmMjRcdTVmMjhcdTVmMmJcdTVmMmNcdTVmMmVcdTVmMzBcdTVmMzRcdTVmMzZcdTVmM2JcdTVmM2RcdTVmM2ZcdTVmNDBcdTVmNDRcdTVmNDVcdTVmNDdcdTVmNGRcdTVmNTBcdTVmNTRcdTVmNThcdTVmNWJcdTVmNjBcdTVmNjNcdTVmNjRcdTVmNjciXSxbIjhmYmRhMSIs''@;'; + put 'put ''Ilx1NWY2Zlx1NWY3Mlx1NWY3NFx1NWY3NVx1NWY3OFx1NWY3YVx1NWY3ZFx1NWY3ZVx1NWY4OVx1NWY4ZFx1NWY4Zlx1NWY5Nlx1NWY5Y1x1NWY5ZFx1NWZhMlx1NWZhN1x1NWZhYlx1NWZhNFx1NWZhY1x1NWZhZlx1NWZiMFx1NWZiMVx1NWZiOFx1NWZjNFx1NWZjN1x1NWZjOFx1NWZjOVx1''@;'; + put 'put ''NWZjYlx1NWZkMCIsNCwiXHU1ZmRlXHU1ZmUxXHU1ZmUyXHU1ZmU4XHU1ZmU5XHU1ZmVhXHU1ZmVjXHU1ZmVkXHU1ZmVlXHU1ZmVmXHU1ZmYyXHU1ZmYzXHU1ZmY2XHU1ZmZhXHU1ZmZjXHU2MDA3XHU2MDBhXHU2MDBkXHU2MDEzXHU2MDE0XHU2MDE3XHU2MDE4XHU2MDFhXHU2MDFmXHU2MDI0''@;'; + put 'put ''XHU2MDJkXHU2MDMzXHU2MDM1XHU2MDQwXHU2MDQ3XHU2MDQ4XHU2MDQ5XHU2MDRjXHU2MDUxXHU2MDU0XHU2MDU2XHU2MDU3XHU2MDVkXHU2MDYxXHU2MDY3XHU2MDcxXHU2MDdlXHU2MDdmXHU2MDgyXHU2MDg2XHU2MDg4XHU2MDhhXHU2MDhlXHU2MDkxXHU2MDkzXHU2MDk1XHU2MDk4XHU2''@;'; + put 'put ''MDlkXHU2MDllXHU2MGEyXHU2MGE0XHU2MGE1XHU2MGE4XHU2MGIwXHU2MGIxXHU2MGI3Il0sWyI4ZmJlYTEiLCJcdTYwYmJcdTYwYmVcdTYwYzJcdTYwYzRcdTYwYzhcdTYwYzlcdTYwY2FcdTYwY2JcdTYwY2VcdTYwY2ZcdTYwZDRcdTYwZDVcdTYwZDlcdTYwZGJcdTYwZGRcdTYwZGVcdTYw''@;'; + put 'put ''ZTJcdTYwZTVcdTYwZjJcdTYwZjVcdTYwZjhcdTYwZmNcdTYwZmRcdTYxMDJcdTYxMDdcdTYxMGFcdTYxMGNcdTYxMTAiLDQsIlx1NjExNlx1NjExN1x1NjExOVx1NjExY1x1NjExZVx1NjEyMlx1NjEyYVx1NjEyYlx1NjEzMFx1NjEzMVx1NjEzNVx1NjEzNlx1NjEzN1x1NjEzOVx1NjE0MVx1''@;'; + put 'put ''NjE0NVx1NjE0Nlx1NjE0OVx1NjE1ZVx1NjE2MFx1NjE2Y1x1NjE3Mlx1NjE3OFx1NjE3Ylx1NjE3Y1x1NjE3Zlx1NjE4MFx1NjE4MVx1NjE4M1x1NjE4NFx1NjE4Ylx1NjE4ZFx1NjE5Mlx1NjE5M1x1NjE5N1x1NjE5OFx1NjE5Y1x1NjE5ZFx1NjE5Zlx1NjFhMFx1NjFhNVx1NjFhOFx1NjFh''@;'; + put 'put ''YVx1NjFhZFx1NjFiOFx1NjFiOVx1NjFiY1x1NjFjMFx1NjFjMVx1NjFjMlx1NjFjZVx1NjFjZlx1NjFkNVx1NjFkY1x1NjFkZFx1NjFkZVx1NjFkZlx1NjFlMVx1NjFlMlx1NjFlN1x1NjFlOVx1NjFlNSJdLFsiOGZiZmExIiwiXHU2MWVjXHU2MWVkXHU2MWVmXHU2MjAxXHU2MjAzXHU2MjA0''@;'; + put 'put ''XHU2MjA3XHU2MjEzXHU2MjE1XHU2MjFjXHU2MjIwXHU2MjIyXHU2MjIzXHU2MjI3XHU2MjI5XHU2MjJiXHU2MjM5XHU2MjNkXHU2MjQyXHU2MjQzXHU2MjQ0XHU2MjQ2XHU2MjRjXHU2MjUwXHU2MjUxXHU2MjUyXHU2MjU0XHU2MjU2XHU2MjVhXHU2MjVjXHU2MjY0XHU2MjZkXHU2MjZmXHU2''@;'; + put 'put ''MjczXHU2MjdhXHU2MjdkXHU2MjhkXHU2MjhlXHU2MjhmXHU2MjkwXHU2MmE2XHU2MmE4XHU2MmIzXHU2MmI2XHU2MmI3XHU2MmJhXHU2MmJlXHU2MmJmXHU2MmM0XHU2MmNlXHU2MmQ1XHU2MmQ2XHU2MmRhXHU2MmVhXHU2MmYyXHU2MmY0XHU2MmZjXHU2MmZkXHU2MzAzXHU2MzA0XHU2MzBh''@;'; + put 'put ''XHU2MzBiXHU2MzBkXHU2MzEwXHU2MzEzXHU2MzE2XHU2MzE4XHU2MzI5XHU2MzJhXHU2MzJkXHU2MzM1XHU2MzM2XHU2MzM5XHU2MzNjXHU2MzQxXHU2MzQyXHU2MzQzXHU2MzQ0XHU2MzQ2XHU2MzRhXHU2MzRiXHU2MzRlXHU2MzUyXHU2MzUzXHU2MzU0XHU2MzU4XHU2MzViXHU2MzY1XHU2''@;'; + put 'put ''MzY2XHU2MzZjXHU2MzZkXHU2MzcxXHU2Mzc0XHU2Mzc1Il0sWyI4ZmMwYTEiLCJcdTYzNzhcdTYzN2NcdTYzN2RcdTYzN2ZcdTYzODJcdTYzODRcdTYzODdcdTYzOGFcdTYzOTBcdTYzOTRcdTYzOTVcdTYzOTlcdTYzOWFcdTYzOWVcdTYzYTRcdTYzYTZcdTYzYWRcdTYzYWVcdTYzYWZcdTYz''@;'; + put 'put ''YmRcdTYzYzFcdTYzYzVcdTYzYzhcdTYzY2VcdTYzZDFcdTYzZDNcdTYzZDRcdTYzZDVcdTYzZGNcdTYzZTBcdTYzZTVcdTYzZWFcdTYzZWNcdTYzZjJcdTYzZjNcdTYzZjVcdTYzZjhcdTYzZjlcdTY0MDlcdTY0MGFcdTY0MTBcdTY0MTJcdTY0MTRcdTY0MThcdTY0MWVcdTY0MjBcdTY0MjJc''@;'; + put 'put ''dTY0MjRcdTY0MjVcdTY0MjlcdTY0MmFcdTY0MmZcdTY0MzBcdTY0MzVcdTY0M2RcdTY0M2ZcdTY0NGJcdTY0NGZcdTY0NTFcdTY0NTJcdTY0NTNcdTY0NTRcdTY0NWFcdTY0NWJcdTY0NWNcdTY0NWRcdTY0NWZcdTY0NjBcdTY0NjFcdTY0NjNcdTY0NmRcdTY0NzNcdTY0NzRcdTY0N2JcdTY0''@;'; + put 'put ''N2RcdTY0ODVcdTY0ODdcdTY0OGZcdTY0OTBcdTY0OTFcdTY0OThcdTY0OTlcdTY0OWJcdTY0OWRcdTY0OWZcdTY0YTFcdTY0YTNcdTY0YTZcdTY0YThcdTY0YWNcdTY0YjNcdTY0YmRcdTY0YmVcdTY0YmYiXSxbIjhmYzFhMSIsIlx1NjRjNFx1NjRjOVx1NjRjYVx1NjRjYlx1NjRjY1x1NjRj''@;'; + put 'put ''ZVx1NjRkMFx1NjRkMVx1NjRkNVx1NjRkN1x1NjRlNFx1NjRlNVx1NjRlOVx1NjRlYVx1NjRlZFx1NjRmMFx1NjRmNVx1NjRmN1x1NjRmYlx1NjRmZlx1NjUwMVx1NjUwNFx1NjUwOFx1NjUwOVx1NjUwYVx1NjUwZlx1NjUxM1x1NjUxNFx1NjUxNlx1NjUxOVx1NjUxYlx1NjUxZVx1NjUxZlx1''@;'; + put 'put ''NjUyMlx1NjUyNlx1NjUyOVx1NjUyZVx1NjUzMVx1NjUzYVx1NjUzY1x1NjUzZFx1NjU0M1x1NjU0N1x1NjU0OVx1NjU1MFx1NjU1Mlx1NjU1NFx1NjU1Zlx1NjU2MFx1NjU2N1x1NjU2Ylx1NjU3YVx1NjU3ZFx1NjU4MVx1NjU4NVx1NjU4YVx1NjU5Mlx1NjU5NVx1NjU5OFx1NjU5ZFx1NjVh''@;'; + put 'put ''MFx1NjVhM1x1NjVhNlx1NjVhZVx1NjViMlx1NjViM1x1NjViNFx1NjViZlx1NjVjMlx1NjVjOFx1NjVjOVx1NjVjZVx1NjVkMFx1NjVkNFx1NjVkNlx1NjVkOFx1NjVkZlx1NjVmMFx1NjVmMlx1NjVmNFx1NjVmNVx1NjVmOVx1NjVmZVx1NjVmZlx1NjYwMFx1NjYwNFx1NjYwOFx1NjYwOVx1''@;'; + put 'put ''NjYwZFx1NjYxMVx1NjYxMlx1NjYxNVx1NjYxNlx1NjYxZCJdLFsiOGZjMmExIiwiXHU2NjFlXHU2NjIxXHU2NjIyXHU2NjIzXHU2NjI0XHU2NjI2XHU2NjI5XHU2NjJhXHU2NjJiXHU2NjJjXHU2NjJlXHU2NjMwXHU2NjMxXHU2NjMzXHU2NjM5XHU2NjM3XHU2NjQwXHU2NjQ1XHU2NjQ2XHU2''@;'; + put 'put ''NjRhXHU2NjRjXHU2NjUxXHU2NjRlXHU2NjU3XHU2NjU4XHU2NjU5XHU2NjViXHU2NjVjXHU2NjYwXHU2NjYxXHU2NmZiXHU2NjZhXHU2NjZiXHU2NjZjXHU2NjdlXHU2NjczXHU2Njc1XHU2NjdmXHU2Njc3XHU2Njc4XHU2Njc5XHU2NjdiXHU2NjgwXHU2NjdjXHU2NjhiXHU2NjhjXHU2Njhk''@;'; + put 'put ''XHU2NjkwXHU2NjkyXHU2Njk5XHU2NjlhXHU2NjliXHU2NjljXHU2NjlmXHU2NmEwXHU2NmE0XHU2NmFkXHU2NmIxXHU2NmIyXHU2NmI1XHU2NmJiXHU2NmJmXHU2NmMwXHU2NmMyXHU2NmMzXHU2NmM4XHU2NmNjXHU2NmNlXHU2NmNmXHU2NmQ0XHU2NmRiXHU2NmRmXHU2NmU4XHU2NmViXHU2''@;'; + put 'put ''NmVjXHU2NmVlXHU2NmZhXHU2NzA1XHU2NzA3XHU2NzBlXHU2NzEzXHU2NzE5XHU2NzFjXHU2NzIwXHU2NzIyXHU2NzMzXHU2NzNlXHU2NzQ1XHU2NzQ3XHU2NzQ4XHU2NzRjXHU2NzU0XHU2NzU1XHU2NzVkIl0sWyI4ZmMzYTEiLCJcdTY3NjZcdTY3NmNcdTY3NmVcdTY3NzRcdTY3NzZcdTY3''@;'; + put 'put ''N2JcdTY3ODFcdTY3ODRcdTY3OGVcdTY3OGZcdTY3OTFcdTY3OTNcdTY3OTZcdTY3OThcdTY3OTlcdTY3OWJcdTY3YjBcdTY3YjFcdTY3YjJcdTY3YjVcdTY3YmJcdTY3YmNcdTY3YmRcdTY3ZjlcdTY3YzBcdTY3YzJcdTY3YzNcdTY3YzVcdTY3YzhcdTY3YzlcdTY3ZDJcdTY3ZDdcdTY3ZDlc''@;'; + put 'put ''dTY3ZGNcdTY3ZTFcdTY3ZTZcdTY3ZjBcdTY3ZjJcdTY3ZjZcdTY3ZjdcdTY4NTJcdTY4MTRcdTY4MTlcdTY4MWRcdTY4MWZcdTY4MjhcdTY4MjdcdTY4MmNcdTY4MmRcdTY4MmZcdTY4MzBcdTY4MzFcdTY4MzNcdTY4M2JcdTY4M2ZcdTY4NDRcdTY4NDVcdTY4NGFcdTY4NGNcdTY4NTVcdTY4''@;'; + put 'put ''NTdcdTY4NThcdTY4NWJcdTY4NmJcdTY4NmUiLDQsIlx1Njg3NVx1Njg3OVx1Njg3YVx1Njg3Ylx1Njg3Y1x1Njg4Mlx1Njg4NFx1Njg4Nlx1Njg4OFx1Njg5Nlx1Njg5OFx1Njg5YVx1Njg5Y1x1NjhhMVx1NjhhM1x1NjhhNVx1NjhhOVx1NjhhYVx1NjhhZVx1NjhiMlx1NjhiYlx1NjhjNVx1''@;'; + put 'put ''NjhjOFx1NjhjY1x1NjhjZiJdLFsiOGZjNGExIiwiXHU2OGQwXHU2OGQxXHU2OGQzXHU2OGQ2XHU2OGQ5XHU2OGRjXHU2OGRkXHU2OGU1XHU2OGU4XHU2OGVhXHU2OGViXHU2OGVjXHU2OGVkXHU2OGYwXHU2OGYxXHU2OGY1XHU2OGY2XHU2OGZiXHU2OGZjXHU2OGZkXHU2OTA2XHU2OTA5XHU2''@;'; + put 'put ''OTBhXHU2OTEwXHU2OTExXHU2OTEzXHU2OTE2XHU2OTE3XHU2OTMxXHU2OTMzXHU2OTM1XHU2OTM4XHU2OTNiXHU2OTQyXHU2OTQ1XHU2OTQ5XHU2OTRlXHU2OTU3XHU2OTViXHU2OTYzXHU2OTY0XHU2OTY1XHU2OTY2XHU2OTY4XHU2OTY5XHU2OTZjXHU2OTcwXHU2OTcxXHU2OTcyXHU2OTdh''@;'; + put 'put ''XHU2OTdiXHU2OTdmXHU2OTgwXHU2OThkXHU2OTkyXHU2OTk2XHU2OTk4XHU2OWExXHU2OWE1XHU2OWE2XHU2OWE4XHU2OWFiXHU2OWFkXHU2OWFmXHU2OWI3XHU2OWI4XHU2OWJhXHU2OWJjXHU2OWM1XHU2OWM4XHU2OWQxXHU2OWQ2XHU2OWQ3XHU2OWUyXHU2OWU1XHU2OWVlXHU2OWVmXHU2''@;'; + put 'put ''OWYxXHU2OWYzXHU2OWY1XHU2OWZlXHU2YTAwXHU2YTAxXHU2YTAzXHU2YTBmXHU2YTExXHU2YTE1XHU2YTFhXHU2YTFkXHU2YTIwXHU2YTI0XHU2YTI4XHU2YTMwXHU2YTMyIl0sWyI4ZmM1YTEiLCJcdTZhMzRcdTZhMzdcdTZhM2JcdTZhM2VcdTZhM2ZcdTZhNDVcdTZhNDZcdTZhNDlcdTZh''@;'; + put 'put ''NGFcdTZhNGVcdTZhNTBcdTZhNTFcdTZhNTJcdTZhNTVcdTZhNTZcdTZhNWJcdTZhNjRcdTZhNjdcdTZhNmFcdTZhNzFcdTZhNzNcdTZhN2VcdTZhODFcdTZhODNcdTZhODZcdTZhODdcdTZhODlcdTZhOGJcdTZhOTFcdTZhOWJcdTZhOWRcdTZhOWVcdTZhOWZcdTZhYTVcdTZhYWJcdTZhYWZc''@;'; + put 'put ''dTZhYjBcdTZhYjFcdTZhYjRcdTZhYmRcdTZhYmVcdTZhYmZcdTZhYzZcdTZhYzlcdTZhYzhcdTZhY2NcdTZhZDBcdTZhZDRcdTZhZDVcdTZhZDZcdTZhZGNcdTZhZGRcdTZhZTRcdTZhZTdcdTZhZWNcdTZhZjBcdTZhZjFcdTZhZjJcdTZhZmNcdTZhZmRcdTZiMDJcdTZiMDNcdTZiMDZcdTZi''@;'; + put 'put ''MDdcdTZiMDlcdTZiMGZcdTZiMTBcdTZiMTFcdTZiMTdcdTZiMWJcdTZiMWVcdTZiMjRcdTZiMjhcdTZiMmJcdTZiMmNcdTZiMmZcdTZiMzVcdTZiMzZcdTZiM2JcdTZiM2ZcdTZiNDZcdTZiNGFcdTZiNGRcdTZiNTJcdTZiNTZcdTZiNThcdTZiNWRcdTZiNjBcdTZiNjdcdTZiNmJcdTZiNmVc''@;'; + put 'put ''dTZiNzBcdTZiNzVcdTZiN2QiXSxbIjhmYzZhMSIsIlx1NmI3ZVx1NmI4Mlx1NmI4NVx1NmI5N1x1NmI5Ylx1NmI5Zlx1NmJhMFx1NmJhMlx1NmJhM1x1NmJhOFx1NmJhOVx1NmJhY1x1NmJhZFx1NmJhZVx1NmJiMFx1NmJiOFx1NmJiOVx1NmJiZFx1NmJiZVx1NmJjM1x1NmJjNFx1NmJjOVx1''@;'; + put 'put ''NmJjY1x1NmJkNlx1NmJkYVx1NmJlMVx1NmJlM1x1NmJlNlx1NmJlN1x1NmJlZVx1NmJmMVx1NmJmN1x1NmJmOVx1NmJmZlx1NmMwMlx1NmMwNFx1NmMwNVx1NmMwOVx1NmMwZFx1NmMwZVx1NmMxMFx1NmMxMlx1NmMxOVx1NmMxZlx1NmMyNlx1NmMyN1x1NmMyOFx1NmMyY1x1NmMyZVx1NmMz''@;'; + put 'put ''M1x1NmMzNVx1NmMzNlx1NmMzYVx1NmMzYlx1NmMzZlx1NmM0YVx1NmM0Ylx1NmM0ZFx1NmM0Zlx1NmM1Mlx1NmM1NFx1NmM1OVx1NmM1Ylx1NmM1Y1x1NmM2Ylx1NmM2ZFx1NmM2Zlx1NmM3NFx1NmM3Nlx1NmM3OFx1NmM3OVx1NmM3Ylx1NmM4NVx1NmM4Nlx1NmM4N1x1NmM4OVx1NmM5NFx1''@;'; + put 'put ''NmM5NVx1NmM5N1x1NmM5OFx1NmM5Y1x1NmM5Zlx1NmNiMFx1NmNiMlx1NmNiNFx1NmNjMlx1NmNjNlx1NmNjZFx1NmNjZlx1NmNkMFx1NmNkMVx1NmNkMlx1NmNkNFx1NmNkNiJdLFsiOGZjN2ExIiwiXHU2Y2RhXHU2Y2RjXHU2Y2UwXHU2Y2U3XHU2Y2U5XHU2Y2ViXHU2Y2VjXHU2Y2VlXHU2''@;'; + put 'put ''Y2YyXHU2Y2Y0XHU2ZDA0XHU2ZDA3XHU2ZDBhXHU2ZDBlXHU2ZDBmXHU2ZDExXHU2ZDEzXHU2ZDFhXHU2ZDI2XHU2ZDI3XHU2ZDI4XHU2YzY3XHU2ZDJlXHU2ZDJmXHU2ZDMxXHU2ZDM5XHU2ZDNjXHU2ZDNmXHU2ZDU3XHU2ZDVlXHU2ZDVmXHU2ZDYxXHU2ZDY1XHU2ZDY3XHU2ZDZmXHU2ZDcw''@;'; + put 'put ''XHU2ZDdjXHU2ZDgyXHU2ZDg3XHU2ZDkxXHU2ZDkyXHU2ZDk0XHU2ZDk2XHU2ZDk3XHU2ZDk4XHU2ZGFhXHU2ZGFjXHU2ZGI0XHU2ZGI3XHU2ZGI5XHU2ZGJkXHU2ZGJmXHU2ZGM0XHU2ZGM4XHU2ZGNhXHU2ZGNlXHU2ZGNmXHU2ZGQ2XHU2ZGRiXHU2ZGRkXHU2ZGRmXHU2ZGUwXHU2ZGUyXHU2''@;'; + put 'put ''ZGU1XHU2ZGU5XHU2ZGVmXHU2ZGYwXHU2ZGY0XHU2ZGY2XHU2ZGZjXHU2ZTAwXHU2ZTA0XHU2ZTFlXHU2ZTIyXHU2ZTI3XHU2ZTMyXHU2ZTM2XHU2ZTM5XHU2ZTNiXHU2ZTNjXHU2ZTQ0XHU2ZTQ1XHU2ZTQ4XHU2ZTQ5XHU2ZTRiXHU2ZTRmXHU2ZTUxXHU2ZTUyXHU2ZTUzXHU2ZTU0XHU2ZTU3''@;'; + put 'put ''XHU2ZTVjXHU2ZTVkXHU2ZTVlIl0sWyI4ZmM4YTEiLCJcdTZlNjJcdTZlNjNcdTZlNjhcdTZlNzNcdTZlN2JcdTZlN2RcdTZlOGRcdTZlOTNcdTZlOTlcdTZlYTBcdTZlYTdcdTZlYWRcdTZlYWVcdTZlYjFcdTZlYjNcdTZlYmJcdTZlYmZcdTZlYzBcdTZlYzFcdTZlYzNcdTZlYzdcdTZlYzhc''@;'; + put 'put ''dTZlY2FcdTZlY2RcdTZlY2VcdTZlY2ZcdTZlZWJcdTZlZWRcdTZlZWVcdTZlZjlcdTZlZmJcdTZlZmRcdTZmMDRcdTZmMDhcdTZmMGFcdTZmMGNcdTZmMGRcdTZmMTZcdTZmMThcdTZmMWFcdTZmMWJcdTZmMjZcdTZmMjlcdTZmMmFcdTZmMmZcdTZmMzBcdTZmMzNcdTZmMzZcdTZmM2JcdTZm''@;'; + put 'put ''M2NcdTZmMmRcdTZmNGZcdTZmNTFcdTZmNTJcdTZmNTNcdTZmNTdcdTZmNTlcdTZmNWFcdTZmNWRcdTZmNWVcdTZmNjFcdTZmNjJcdTZmNjhcdTZmNmNcdTZmN2RcdTZmN2VcdTZmODNcdTZmODdcdTZmODhcdTZmOGJcdTZmOGNcdTZmOGRcdTZmOTBcdTZmOTJcdTZmOTNcdTZmOTRcdTZmOTZc''@;'; + put 'put ''dTZmOWFcdTZmOWZcdTZmYTBcdTZmYTVcdTZmYTZcdTZmYTdcdTZmYThcdTZmYWVcdTZmYWZcdTZmYjBcdTZmYjVcdTZmYjZcdTZmYmNcdTZmYzVcdTZmYzdcdTZmYzhcdTZmY2EiXSxbIjhmYzlhMSIsIlx1NmZkYVx1NmZkZVx1NmZlOFx1NmZlOVx1NmZmMFx1NmZmNVx1NmZmOVx1NmZmY1x1''@;'; + put 'put ''NmZmZFx1NzAwMFx1NzAwNVx1NzAwNlx1NzAwN1x1NzAwZFx1NzAxN1x1NzAyMFx1NzAyM1x1NzAyZlx1NzAzNFx1NzAzN1x1NzAzOVx1NzAzY1x1NzA0M1x1NzA0NFx1NzA0OFx1NzA0OVx1NzA0YVx1NzA0Ylx1NzA1NFx1NzA1NVx1NzA1ZFx1NzA1ZVx1NzA0ZVx1NzA2NFx1NzA2NVx1NzA2''@;'; + put 'put ''Y1x1NzA2ZVx1NzA3NVx1NzA3Nlx1NzA3ZVx1NzA4MVx1NzA4NVx1NzA4Nlx1NzA5NCIsNCwiXHU3MDliXHU3MGE0XHU3MGFiXHU3MGIwXHU3MGIxXHU3MGI0XHU3MGI3XHU3MGNhXHU3MGQxXHU3MGQzXHU3MGQ0XHU3MGQ1XHU3MGQ2XHU3MGQ4XHU3MGRjXHU3MGU0XHU3MGZhXHU3MTAzIiw0''@;'; + put 'put ''LCJcdTcxMGJcdTcxMGNcdTcxMGZcdTcxMWVcdTcxMjBcdTcxMmJcdTcxMmRcdTcxMmZcdTcxMzBcdTcxMzFcdTcxMzhcdTcxNDFcdTcxNDVcdTcxNDZcdTcxNDdcdTcxNGFcdTcxNGJcdTcxNTBcdTcxNTJcdTcxNTdcdTcxNWFcdTcxNWNcdTcxNWVcdTcxNjAiXSxbIjhmY2FhMSIsIlx1NzE2''@;'; + put 'put ''OFx1NzE3OVx1NzE4MFx1NzE4NVx1NzE4N1x1NzE4Y1x1NzE5Mlx1NzE5YVx1NzE5Ylx1NzFhMFx1NzFhMlx1NzFhZlx1NzFiMFx1NzFiMlx1NzFiM1x1NzFiYVx1NzFiZlx1NzFjMFx1NzFjMVx1NzFjNFx1NzFjYlx1NzFjY1x1NzFkM1x1NzFkNlx1NzFkOVx1NzFkYVx1NzFkY1x1NzFmOFx1''@;'; + put 'put ''NzFmZVx1NzIwMFx1NzIwN1x1NzIwOFx1NzIwOVx1NzIxM1x1NzIxN1x1NzIxYVx1NzIxZFx1NzIxZlx1NzIyNFx1NzIyYlx1NzIyZlx1NzIzNFx1NzIzOFx1NzIzOVx1NzI0MVx1NzI0Mlx1NzI0M1x1NzI0NVx1NzI0ZVx1NzI0Zlx1NzI1MFx1NzI1M1x1NzI1NVx1NzI1Nlx1NzI1YVx1NzI1''@;'; + put 'put ''Y1x1NzI1ZVx1NzI2MFx1NzI2M1x1NzI2OFx1NzI2Ylx1NzI2ZVx1NzI2Zlx1NzI3MVx1NzI3N1x1NzI3OFx1NzI3Ylx1NzI3Y1x1NzI3Zlx1NzI4NFx1NzI4OVx1NzI4ZFx1NzI4ZVx1NzI5M1x1NzI5Ylx1NzJhOFx1NzJhZFx1NzJhZVx1NzJiMVx1NzJiNFx1NzJiZVx1NzJjMVx1NzJjN1x1''@;'; + put 'put ''NzJjOVx1NzJjY1x1NzJkNVx1NzJkNlx1NzJkOFx1NzJkZlx1NzJlNVx1NzJmM1x1NzJmNFx1NzJmYVx1NzJmYiJdLFsiOGZjYmExIiwiXHU3MmZlXHU3MzAyXHU3MzA0XHU3MzA1XHU3MzA3XHU3MzBiXHU3MzBkXHU3MzEyXHU3MzEzXHU3MzE4XHU3MzE5XHU3MzFlXHU3MzIyXHU3MzI0XHU3''@;'; + put 'put ''MzI3XHU3MzI4XHU3MzJjXHU3MzMxXHU3MzMyXHU3MzM1XHU3MzNhXHU3MzNiXHU3MzNkXHU3MzQzXHU3MzRkXHU3MzUwXHU3MzUyXHU3MzU2XHU3MzU4XHU3MzVkXHU3MzVlXHU3MzVmXHU3MzYwXHU3MzY2XHU3MzY3XHU3MzY5XHU3MzZiXHU3MzZjXHU3MzZlXHU3MzZmXHU3MzcxXHU3Mzc3''@;'; + put 'put ''XHU3Mzc5XHU3MzdjXHU3MzgwXHU3MzgxXHU3MzgzXHU3Mzg1XHU3Mzg2XHU3MzhlXHU3MzkwXHU3MzkzXHU3Mzk1XHU3Mzk3XHU3Mzk4XHU3MzljXHU3MzllXHU3MzlmXHU3M2EwXHU3M2EyXHU3M2E1XHU3M2E2XHU3M2FhXHU3M2FiXHU3M2FkXHU3M2I1XHU3M2I3XHU3M2I5XHU3M2JjXHU3''@;'; + put 'put ''M2JkXHU3M2JmXHU3M2M1XHU3M2M2XHU3M2M5XHU3M2NiXHU3M2NjXHU3M2NmXHU3M2QyXHU3M2QzXHU3M2Q2XHU3M2Q5XHU3M2RkXHU3M2UxXHU3M2UzXHU3M2U2XHU3M2U3XHU3M2U5XHU3M2Y0XHU3M2Y1XHU3M2Y3XHU3M2Y5XHU3M2ZhXHU3M2ZiXHU3M2ZkIl0sWyI4ZmNjYTEiLCJcdTcz''@;'; + put 'put ''ZmZcdTc0MDBcdTc0MDFcdTc0MDRcdTc0MDdcdTc0MGFcdTc0MTFcdTc0MWFcdTc0MWJcdTc0MjRcdTc0MjZcdTc0MjgiLDksIlx1NzQzOVx1NzQ0MFx1NzQ0M1x1NzQ0NFx1NzQ0Nlx1NzQ0N1x1NzQ0Ylx1NzQ0ZFx1NzQ1MVx1NzQ1Mlx1NzQ1N1x1NzQ1ZFx1NzQ2Mlx1NzQ2Nlx1NzQ2N1x1''@;'; + put 'put ''NzQ2OFx1NzQ2Ylx1NzQ2ZFx1NzQ2ZVx1NzQ3MVx1NzQ3Mlx1NzQ4MFx1NzQ4MVx1NzQ4NVx1NzQ4Nlx1NzQ4N1x1NzQ4OVx1NzQ4Zlx1NzQ5MFx1NzQ5MVx1NzQ5Mlx1NzQ5OFx1NzQ5OVx1NzQ5YVx1NzQ5Y1x1NzQ5Zlx1NzRhMFx1NzRhMVx1NzRhM1x1NzRhNlx1NzRhOFx1NzRhOVx1NzRh''@;'; + put 'put ''YVx1NzRhYlx1NzRhZVx1NzRhZlx1NzRiMVx1NzRiMlx1NzRiNVx1NzRiOVx1NzRiYlx1NzRiZlx1NzRjOFx1NzRjOVx1NzRjY1x1NzRkMFx1NzRkM1x1NzRkOFx1NzRkYVx1NzRkYlx1NzRkZVx1NzRkZlx1NzRlNFx1NzRlOFx1NzRlYVx1NzRlYlx1NzRlZlx1NzRmNFx1NzRmYVx1NzRmYlx1''@;'; + put 'put ''NzRmY1x1NzRmZlx1NzUwNiJdLFsiOGZjZGExIiwiXHU3NTEyXHU3NTE2XHU3NTE3XHU3NTIwXHU3NTIxXHU3NTI0XHU3NTI3XHU3NTI5XHU3NTJhXHU3NTJmXHU3NTM2XHU3NTM5XHU3NTNkXHU3NTNlXHU3NTNmXHU3NTQwXHU3NTQzXHU3NTQ3XHU3NTQ4XHU3NTRlXHU3NTUwXHU3NTUyXHU3''@;'; + put 'put ''NTU3XHU3NTVlXHU3NTVmXHU3NTYxXHU3NTZmXHU3NTcxXHU3NTc5Iiw1LCJcdTc1ODFcdTc1ODVcdTc1OTBcdTc1OTJcdTc1OTNcdTc1OTVcdTc1OTlcdTc1OWNcdTc1YTJcdTc1YTRcdTc1YjRcdTc1YmFcdTc1YmZcdTc1YzBcdTc1YzFcdTc1YzRcdTc1YzZcdTc1Y2NcdTc1Y2VcdTc1Y2Zc''@;'; + put 'put ''dTc1ZDdcdTc1ZGNcdTc1ZGZcdTc1ZTBcdTc1ZTFcdTc1ZTRcdTc1ZTdcdTc1ZWNcdTc1ZWVcdTc1ZWZcdTc1ZjFcdTc1ZjlcdTc2MDBcdTc2MDJcdTc2MDNcdTc2MDRcdTc2MDdcdTc2MDhcdTc2MGFcdTc2MGNcdTc2MGZcdTc2MTJcdTc2MTNcdTc2MTVcdTc2MTZcdTc2MTlcdTc2MWJcdTc2''@;'; + put 'put ''MWNcdTc2MWRcdTc2MWVcdTc2MjNcdTc2MjVcdTc2MjZcdTc2MjlcdTc2MmRcdTc2MzJcdTc2MzNcdTc2MzVcdTc2MzhcdTc2MzkiXSxbIjhmY2VhMSIsIlx1NzYzYVx1NzYzY1x1NzY0YVx1NzY0MFx1NzY0MVx1NzY0M1x1NzY0NFx1NzY0NVx1NzY0OVx1NzY0Ylx1NzY1NVx1NzY1OVx1NzY1''@;'; + put 'put ''Zlx1NzY2NFx1NzY2NVx1NzY2ZFx1NzY2ZVx1NzY2Zlx1NzY3MVx1NzY3NFx1NzY4MVx1NzY4NVx1NzY4Y1x1NzY4ZFx1NzY5NVx1NzY5Ylx1NzY5Y1x1NzY5ZFx1NzY5Zlx1NzZhMFx1NzZhMiIsNiwiXHU3NmFhXHU3NmFkXHU3NmJkXHU3NmMxXHU3NmM1XHU3NmM5XHU3NmNiXHU3NmNjXHU3''@;'; + put 'put ''NmNlXHU3NmQ0XHU3NmQ5XHU3NmUwXHU3NmU2XHU3NmU4XHU3NmVjXHU3NmYwXHU3NmYxXHU3NmY2XHU3NmY5XHU3NmZjXHU3NzAwXHU3NzA2XHU3NzBhXHU3NzBlXHU3NzEyXHU3NzE0XHU3NzE1XHU3NzE3XHU3NzE5XHU3NzFhXHU3NzFjXHU3NzIyXHU3NzI4XHU3NzJkXHU3NzJlXHU3NzJm''@;'; + put 'put ''XHU3NzM0XHU3NzM1XHU3NzM2XHU3NzM5XHU3NzNkXHU3NzNlXHU3NzQyXHU3NzQ1XHU3NzQ2XHU3NzRhXHU3NzRkXHU3NzRlXHU3NzRmXHU3NzUyXHU3NzU2XHU3NzU3XHU3NzVjXHU3NzVlXHU3NzVmXHU3NzYwXHU3NzYyIl0sWyI4ZmNmYTEiLCJcdTc3NjRcdTc3NjdcdTc3NmFcdTc3NmNc''@;'; + put 'put ''dTc3NzBcdTc3NzJcdTc3NzNcdTc3NzRcdTc3N2FcdTc3N2RcdTc3ODBcdTc3ODRcdTc3OGNcdTc3OGRcdTc3OTRcdTc3OTVcdTc3OTZcdTc3OWFcdTc3OWZcdTc3YTJcdTc3YTdcdTc3YWFcdTc3YWVcdTc3YWZcdTc3YjFcdTc3YjVcdTc3YmVcdTc3YzNcdTc3YzlcdTc3ZDFcdTc3ZDJcdTc3''@;'; + put 'put ''ZDVcdTc3ZDlcdTc3ZGVcdTc3ZGZcdTc3ZTBcdTc3ZTRcdTc3ZTZcdTc3ZWFcdTc3ZWNcdTc3ZjBcdTc3ZjFcdTc3ZjRcdTc3ZjhcdTc3ZmJcdTc4MDVcdTc4MDZcdTc4MDlcdTc4MGRcdTc4MGVcdTc4MTFcdTc4MWRcdTc4MjFcdTc4MjJcdTc4MjNcdTc4MmRcdTc4MmVcdTc4MzBcdTc4MzVc''@;'; + put 'put ''dTc4MzdcdTc4NDNcdTc4NDRcdTc4NDdcdTc4NDhcdTc4NGNcdTc4NGVcdTc4NTJcdTc4NWNcdTc4NWVcdTc4NjBcdTc4NjFcdTc4NjNcdTc4NjRcdTc4NjhcdTc4NmFcdTc4NmVcdTc4N2FcdTc4N2VcdTc4OGFcdTc4OGZcdTc4OTRcdTc4OThcdTc4YTFcdTc4OWRcdTc4OWVcdTc4OWZcdTc4''@;'; + put 'put ''YTRcdTc4YThcdTc4YWNcdTc4YWRcdTc4YjBcdTc4YjFcdTc4YjJcdTc4YjMiXSxbIjhmZDBhMSIsIlx1NzhiYlx1NzhiZFx1NzhiZlx1NzhjN1x1NzhjOFx1NzhjOVx1NzhjY1x1NzhjZVx1NzhkMlx1NzhkM1x1NzhkNVx1NzhkNlx1NzhlNFx1NzhkYlx1NzhkZlx1NzhlMFx1NzhlMVx1Nzhl''@;'; + put 'put ''Nlx1NzhlYVx1NzhmMlx1NzhmM1x1NzkwMFx1NzhmNlx1NzhmN1x1NzhmYVx1NzhmYlx1NzhmZlx1NzkwNlx1NzkwY1x1NzkxMFx1NzkxYVx1NzkxY1x1NzkxZVx1NzkxZlx1NzkyMFx1NzkyNVx1NzkyN1x1NzkyOVx1NzkyZFx1NzkzMVx1NzkzNFx1NzkzNVx1NzkzYlx1NzkzZFx1NzkzZlx1''@;'; + put 'put ''Nzk0NFx1Nzk0NVx1Nzk0Nlx1Nzk0YVx1Nzk0Ylx1Nzk0Zlx1Nzk1MVx1Nzk1NFx1Nzk1OFx1Nzk1Ylx1Nzk1Y1x1Nzk2N1x1Nzk2OVx1Nzk2Ylx1Nzk3Mlx1Nzk3OVx1Nzk3Ylx1Nzk3Y1x1Nzk3ZVx1Nzk4Ylx1Nzk4Y1x1Nzk5MVx1Nzk5M1x1Nzk5NFx1Nzk5NVx1Nzk5Nlx1Nzk5OFx1Nzk5''@;'; + put 'put ''Ylx1Nzk5Y1x1NzlhMVx1NzlhOFx1NzlhOVx1NzlhYlx1NzlhZlx1NzliMVx1NzliNFx1NzliOFx1NzliYlx1NzljMlx1NzljNFx1NzljN1x1NzljOFx1NzljYVx1NzljZlx1NzlkNFx1NzlkNlx1NzlkYVx1NzlkZFx1NzlkZSJdLFsiOGZkMWExIiwiXHU3OWUwXHU3OWUyXHU3OWU1XHU3OWVh''@;'; + put 'put ''XHU3OWViXHU3OWVkXHU3OWYxXHU3OWY4XHU3OWZjXHU3YTAyXHU3YTAzXHU3YTA3XHU3YTA5XHU3YTBhXHU3YTBjXHU3YTExXHU3YTE1XHU3YTFiXHU3YTFlXHU3YTIxXHU3YTI3XHU3YTJiXHU3YTJkXHU3YTJmXHU3YTMwXHU3YTM0XHU3YTM1XHU3YTM4XHU3YTM5XHU3YTNhXHU3YTQ0XHU3''@;'; + put 'put ''YTQ1XHU3YTQ3XHU3YTQ4XHU3YTRjXHU3YTU1XHU3YTU2XHU3YTU5XHU3YTVjXHU3YTVkXHU3YTVmXHU3YTYwXHU3YTY1XHU3YTY3XHU3YTZhXHU3YTZkXHU3YTc1XHU3YTc4XHU3YTdlXHU3YTgwXHU3YTgyXHU3YTg1XHU3YTg2XHU3YThhXHU3YThiXHU3YTkwXHU3YTkxXHU3YTk0XHU3YTll''@;'; + put 'put ''XHU3YWEwXHU3YWEzXHU3YWFjXHU3YWIzXHU3YWI1XHU3YWI5XHU3YWJiXHU3YWJjXHU3YWM2XHU3YWM5XHU3YWNjXHU3YWNlXHU3YWQxXHU3YWRiXHU3YWU4XHU3YWU5XHU3YWViXHU3YWVjXHU3YWYxXHU3YWY0XHU3YWZiXHU3YWZkXHU3YWZlXHU3YjA3XHU3YjE0XHU3YjFmXHU3YjIzXHU3''@;'; + put 'put ''YjI3XHU3YjI5XHU3YjJhXHU3YjJiXHU3YjJkXHU3YjJlXHU3YjJmXHU3YjMwIl0sWyI4ZmQyYTEiLCJcdTdiMzFcdTdiMzRcdTdiM2RcdTdiM2ZcdTdiNDBcdTdiNDFcdTdiNDdcdTdiNGVcdTdiNTVcdTdiNjBcdTdiNjRcdTdiNjZcdTdiNjlcdTdiNmFcdTdiNmRcdTdiNmZcdTdiNzJcdTdi''@;'; + put 'put ''NzNcdTdiNzdcdTdiODRcdTdiODlcdTdiOGVcdTdiOTBcdTdiOTFcdTdiOTZcdTdiOWJcdTdiOWVcdTdiYTBcdTdiYTVcdTdiYWNcdTdiYWZcdTdiYjBcdTdiYjJcdTdiYjVcdTdiYjZcdTdiYmFcdTdiYmJcdTdiYmNcdTdiYmRcdTdiYzJcdTdiYzVcdTdiYzhcdTdiY2FcdTdiZDRcdTdiZDZc''@;'; + put 'put ''dTdiZDdcdTdiZDlcdTdiZGFcdTdiZGJcdTdiZThcdTdiZWFcdTdiZjJcdTdiZjRcdTdiZjVcdTdiZjhcdTdiZjlcdTdiZmFcdTdiZmNcdTdiZmVcdTdjMDFcdTdjMDJcdTdjMDNcdTdjMDRcdTdjMDZcdTdjMDlcdTdjMGJcdTdjMGNcdTdjMGVcdTdjMGZcdTdjMTlcdTdjMWJcdTdjMjBcdTdj''@;'; + put 'put ''MjVcdTdjMjZcdTdjMjhcdTdjMmNcdTdjMzFcdTdjMzNcdTdjMzRcdTdjMzZcdTdjMzlcdTdjM2FcdTdjNDZcdTdjNGFcdTdjNTVcdTdjNTFcdTdjNTJcdTdjNTNcdTdjNTkiLDVdLFsiOGZkM2ExIiwiXHU3YzYxXHU3YzYzXHU3YzY3XHU3YzY5XHU3YzZkXHU3YzZlXHU3YzcwXHU3YzcyXHU3''@;'; + put 'put ''Yzc5XHU3YzdjXHU3YzdkXHU3Yzg2XHU3Yzg3XHU3YzhmXHU3Yzk0XHU3YzllXHU3Y2EwXHU3Y2E2XHU3Y2IwXHU3Y2I2XHU3Y2I3XHU3Y2JhXHU3Y2JiXHU3Y2JjXHU3Y2JmXHU3Y2M0XHU3Y2M3XHU3Y2M4XHU3Y2M5XHU3Y2NkXHU3Y2NmXHU3Y2QzXHU3Y2Q0XHU3Y2Q1XHU3Y2Q3XHU3Y2Q5''@;'; + put 'put ''XHU3Y2RhXHU3Y2RkXHU3Y2U2XHU3Y2U5XHU3Y2ViXHU3Y2Y1XHU3ZDAzXHU3ZDA3XHU3ZDA4XHU3ZDA5XHU3ZDBmXHU3ZDExXHU3ZDEyXHU3ZDEzXHU3ZDE2XHU3ZDFkXHU3ZDFlXHU3ZDIzXHU3ZDI2XHU3ZDJhXHU3ZDJkXHU3ZDMxXHU3ZDNjXHU3ZDNkXHU3ZDNlXHU3ZDQwXHU3ZDQxXHU3''@;'; + put 'put ''ZDQ3XHU3ZDQ4XHU3ZDRkXHU3ZDUxXHU3ZDUzXHU3ZDU3XHU3ZDU5XHU3ZDVhXHU3ZDVjXHU3ZDVkXHU3ZDY1XHU3ZDY3XHU3ZDZhXHU3ZDcwXHU3ZDc4XHU3ZDdhXHU3ZDdiXHU3ZDdmXHU3ZDgxXHU3ZDgyXHU3ZDgzXHU3ZDg1XHU3ZDg2XHU3ZDg4XHU3ZDhiXHU3ZDhjXHU3ZDhkXHU3ZDkx''@;'; + put 'put ''XHU3ZDk2XHU3ZDk3XHU3ZDlkIl0sWyI4ZmQ0YTEiLCJcdTdkOWVcdTdkYTZcdTdkYTdcdTdkYWFcdTdkYjNcdTdkYjZcdTdkYjdcdTdkYjlcdTdkYzIiLDQsIlx1N2RjY1x1N2RjZFx1N2RjZVx1N2RkN1x1N2RkOVx1N2UwMFx1N2RlMlx1N2RlNVx1N2RlNlx1N2RlYVx1N2RlYlx1N2RlZFx1''@;'; + put 'put ''N2RmMVx1N2RmNVx1N2RmNlx1N2RmOVx1N2RmYVx1N2UwOFx1N2UxMFx1N2UxMVx1N2UxNVx1N2UxN1x1N2UxY1x1N2UxZFx1N2UyMFx1N2UyN1x1N2UyOFx1N2UyY1x1N2UyZFx1N2UyZlx1N2UzM1x1N2UzNlx1N2UzZlx1N2U0NFx1N2U0NVx1N2U0N1x1N2U0ZVx1N2U1MFx1N2U1Mlx1N2U1''@;'; + put 'put ''OFx1N2U1Zlx1N2U2MVx1N2U2Mlx1N2U2NVx1N2U2Ylx1N2U2ZVx1N2U2Zlx1N2U3M1x1N2U3OFx1N2U3ZVx1N2U4MVx1N2U4Nlx1N2U4N1x1N2U4YVx1N2U4ZFx1N2U5MVx1N2U5NVx1N2U5OFx1N2U5YVx1N2U5ZFx1N2U5ZVx1N2YzY1x1N2YzYlx1N2YzZFx1N2YzZVx1N2YzZlx1N2Y0M1x1''@;'; + put 'put ''N2Y0NFx1N2Y0N1x1N2Y0Zlx1N2Y1Mlx1N2Y1M1x1N2Y1Ylx1N2Y1Y1x1N2Y1ZFx1N2Y2MVx1N2Y2M1x1N2Y2NFx1N2Y2NVx1N2Y2Nlx1N2Y2ZCJdLFsiOGZkNWExIiwiXHU3ZjcxXHU3ZjdkXHU3ZjdlXHU3ZjdmXHU3ZjgwXHU3ZjhiXHU3ZjhkXHU3ZjhmXHU3ZjkwXHU3ZjkxXHU3Zjk2XHU3''@;'; + put 'put ''Zjk3XHU3ZjljXHU3ZmExXHU3ZmEyXHU3ZmE2XHU3ZmFhXHU3ZmFkXHU3ZmI0XHU3ZmJjXHU3ZmJmXHU3ZmMwXHU3ZmMzXHU3ZmM4XHU3ZmNlXHU3ZmNmXHU3ZmRiXHU3ZmRmXHU3ZmUzXHU3ZmU1XHU3ZmU4XHU3ZmVjXHU3ZmVlXHU3ZmVmXHU3ZmYyXHU3ZmZhXHU3ZmZkXHU3ZmZlXHU3ZmZm''@;'; + put 'put ''XHU4MDA3XHU4MDA4XHU4MDBhXHU4MDBkXHU4MDBlXHU4MDBmXHU4MDExXHU4MDEzXHU4MDE0XHU4MDE2XHU4MDFkXHU4MDFlXHU4MDFmXHU4MDIwXHU4MDI0XHU4MDI2XHU4MDJjXHU4MDJlXHU4MDMwXHU4MDM0XHU4MDM1XHU4MDM3XHU4MDM5XHU4MDNhXHU4MDNjXHU4MDNlXHU4MDQwXHU4''@;'; + put 'put ''MDQ0XHU4MDYwXHU4MDY0XHU4MDY2XHU4MDZkXHU4MDcxXHU4MDc1XHU4MDgxXHU4MDg4XHU4MDhlXHU4MDljXHU4MDllXHU4MGE2XHU4MGE3XHU4MGFiXHU4MGI4XHU4MGI5XHU4MGM4XHU4MGNkXHU4MGNmXHU4MGQyXHU4MGQ0XHU4MGQ1XHU4MGQ3XHU4MGQ4XHU4MGUwXHU4MGVkXHU4MGVl''@;'; + put 'put ''Il0sWyI4ZmQ2YTEiLCJcdTgwZjBcdTgwZjJcdTgwZjNcdTgwZjZcdTgwZjlcdTgwZmFcdTgwZmVcdTgxMDNcdTgxMGJcdTgxMTZcdTgxMTdcdTgxMThcdTgxMWNcdTgxMWVcdTgxMjBcdTgxMjRcdTgxMjdcdTgxMmNcdTgxMzBcdTgxMzVcdTgxM2FcdTgxM2NcdTgxNDVcdTgxNDdcdTgxNGFc''@;'; + put 'put ''dTgxNGNcdTgxNTJcdTgxNTdcdTgxNjBcdTgxNjFcdTgxNjdcdTgxNjhcdTgxNjlcdTgxNmRcdTgxNmZcdTgxNzdcdTgxODFcdTgxOTBcdTgxODRcdTgxODVcdTgxODZcdTgxOGJcdTgxOGVcdTgxOTZcdTgxOThcdTgxOWJcdTgxOWVcdTgxYTJcdTgxYWVcdTgxYjJcdTgxYjRcdTgxYmJcdTgx''@;'; + put 'put ''Y2JcdTgxYzNcdTgxYzVcdTgxY2FcdTgxY2VcdTgxY2ZcdTgxZDVcdTgxZDdcdTgxZGJcdTgxZGRcdTgxZGVcdTgxZTFcdTgxZTRcdTgxZWJcdTgxZWNcdTgxZjBcdTgxZjFcdTgxZjJcdTgxZjVcdTgxZjZcdTgxZjhcdTgxZjlcdTgxZmRcdTgxZmZcdTgyMDBcdTgyMDNcdTgyMGZcdTgyMTNc''@;'; + put 'put ''dTgyMTRcdTgyMTlcdTgyMWFcdTgyMWRcdTgyMjFcdTgyMjJcdTgyMjhcdTgyMzJcdTgyMzRcdTgyM2FcdTgyNDNcdTgyNDRcdTgyNDVcdTgyNDYiXSxbIjhmZDdhMSIsIlx1ODI0Ylx1ODI0ZVx1ODI0Zlx1ODI1MVx1ODI1Nlx1ODI1Y1x1ODI2MFx1ODI2M1x1ODI2N1x1ODI2ZFx1ODI3NFx1''@;'; + put 'put ''ODI3Ylx1ODI3ZFx1ODI3Zlx1ODI4MFx1ODI4MVx1ODI4M1x1ODI4NFx1ODI4N1x1ODI4OVx1ODI4YVx1ODI4ZVx1ODI5MVx1ODI5NFx1ODI5Nlx1ODI5OFx1ODI5YVx1ODI5Ylx1ODJhMFx1ODJhMVx1ODJhM1x1ODJhNFx1ODJhN1x1ODJhOFx1ODJhOVx1ODJhYVx1ODJhZVx1ODJiMFx1ODJi''@;'; + put 'put ''Mlx1ODJiNFx1ODJiN1x1ODJiYVx1ODJiY1x1ODJiZVx1ODJiZlx1ODJjNlx1ODJkMFx1ODJkNVx1ODJkYVx1ODJlMFx1ODJlMlx1ODJlNFx1ODJlOFx1ODJlYVx1ODJlZFx1ODJlZlx1ODJmNlx1ODJmN1x1ODJmZFx1ODJmZVx1ODMwMFx1ODMwMVx1ODMwN1x1ODMwOFx1ODMwYVx1ODMwYlx1''@;'; + put 'put ''ODM1NFx1ODMxYlx1ODMxZFx1ODMxZVx1ODMxZlx1ODMyMVx1ODMyMlx1ODMyY1x1ODMyZFx1ODMyZVx1ODMzMFx1ODMzM1x1ODMzN1x1ODMzYVx1ODMzY1x1ODMzZFx1ODM0Mlx1ODM0M1x1ODM0NFx1ODM0N1x1ODM0ZFx1ODM0ZVx1ODM1MVx1ODM1NVx1ODM1Nlx1ODM1N1x1ODM3MFx1ODM3''@;'; + put 'put ''OCJdLFsiOGZkOGExIiwiXHU4MzdkXHU4MzdmXHU4MzgwXHU4MzgyXHU4Mzg0XHU4Mzg2XHU4MzhkXHU4MzkyXHU4Mzk0XHU4Mzk1XHU4Mzk4XHU4Mzk5XHU4MzliXHU4MzljXHU4MzlkXHU4M2E2XHU4M2E3XHU4M2E5XHU4M2FjXHU4M2JlXHU4M2JmXHU4M2MwXHU4M2M3XHU4M2M5XHU4M2Nm''@;'; + put 'put ''XHU4M2QwXHU4M2QxXHU4M2Q0XHU4M2RkXHU4MzUzXHU4M2U4XHU4M2VhXHU4M2Y2XHU4M2Y4XHU4M2Y5XHU4M2ZjXHU4NDAxXHU4NDA2XHU4NDBhXHU4NDBmXHU4NDExXHU4NDE1XHU4NDE5XHU4M2FkXHU4NDJmXHU4NDM5XHU4NDQ1XHU4NDQ3XHU4NDQ4XHU4NDRhXHU4NDRkXHU4NDRmXHU4''@;'; + put 'put ''NDUxXHU4NDUyXHU4NDU2XHU4NDU4XHU4NDU5XHU4NDVhXHU4NDVjXHU4NDYwXHU4NDY0XHU4NDY1XHU4NDY3XHU4NDZhXHU4NDcwXHU4NDczXHU4NDc0XHU4NDc2XHU4NDc4XHU4NDdjXHU4NDdkXHU4NDgxXHU4NDg1XHU4NDkyXHU4NDkzXHU4NDk1XHU4NDllXHU4NGE2XHU4NGE4XHU4NGE5''@;'; + put 'put ''XHU4NGFhXHU4NGFmXHU4NGIxXHU4NGI0XHU4NGJhXHU4NGJkXHU4NGJlXHU4NGMwXHU4NGMyXHU4NGM3XHU4NGM4XHU4NGNjXHU4NGNmXHU4NGQzIl0sWyI4ZmQ5YTEiLCJcdTg0ZGNcdTg0ZTdcdTg0ZWFcdTg0ZWZcdTg0ZjBcdTg0ZjFcdTg0ZjJcdTg0ZjdcdTg1MzJcdTg0ZmFcdTg0ZmJc''@;'; + put 'put ''dTg0ZmRcdTg1MDJcdTg1MDNcdTg1MDdcdTg1MGNcdTg1MGVcdTg1MTBcdTg1MWNcdTg1MWVcdTg1MjJcdTg1MjNcdTg1MjRcdTg1MjVcdTg1MjdcdTg1MmFcdTg1MmJcdTg1MmZcdTg1MzNcdTg1MzRcdTg1MzZcdTg1M2ZcdTg1NDZcdTg1NGYiLDQsIlx1ODU1Nlx1ODU1OVx1ODU1YyIsNiwi''@;'; + put 'put ''XHU4NTY0XHU4NTZiXHU4NTZmXHU4NTc5XHU4NTdhXHU4NTdiXHU4NTdkXHU4NTdmXHU4NTgxXHU4NTg1XHU4NTg2XHU4NTg5XHU4NThiXHU4NThjXHU4NThmXHU4NTkzXHU4NTk4XHU4NTlkXHU4NTlmXHU4NWEwXHU4NWEyXHU4NWE1XHU4NWE3XHU4NWI0XHU4NWI2XHU4NWI3XHU4NWI4XHU4''@;'; + put 'put ''NWJjXHU4NWJkXHU4NWJlXHU4NWJmXHU4NWMyXHU4NWM3XHU4NWNhXHU4NWNiXHU4NWNlXHU4NWFkXHU4NWQ4XHU4NWRhXHU4NWRmXHU4NWUwXHU4NWU2XHU4NWU4XHU4NWVkXHU4NWYzXHU4NWY2XHU4NWZjIl0sWyI4ZmRhYTEiLCJcdTg1ZmZcdTg2MDBcdTg2MDRcdTg2MDVcdTg2MGRcdTg2''@;'; + put 'put ''MGVcdTg2MTBcdTg2MTFcdTg2MTJcdTg2MThcdTg2MTlcdTg2MWJcdTg2MWVcdTg2MjFcdTg2MjdcdTg2MjlcdTg2MzZcdTg2MzhcdTg2M2FcdTg2M2NcdTg2M2RcdTg2NDBcdTg2NDJcdTg2NDZcdTg2NTJcdTg2NTNcdTg2NTZcdTg2NTdcdTg2NThcdTg2NTlcdTg2NWRcdTg2NjAiLDQsIlx1''@;'; + put 'put ''ODY2OVx1ODY2Y1x1ODY2Zlx1ODY3NVx1ODY3Nlx1ODY3N1x1ODY3YVx1ODY4ZFx1ODY5MVx1ODY5Nlx1ODY5OFx1ODY5YVx1ODY5Y1x1ODZhMVx1ODZhNlx1ODZhN1x1ODZhOFx1ODZhZFx1ODZiMVx1ODZiM1x1ODZiNFx1ODZiNVx1ODZiN1x1ODZiOFx1ODZiOVx1ODZiZlx1ODZjMFx1ODZj''@;'; + put 'put ''MVx1ODZjM1x1ODZjNVx1ODZkMVx1ODZkMlx1ODZkNVx1ODZkN1x1ODZkYVx1ODZkY1x1ODZlMFx1ODZlM1x1ODZlNVx1ODZlN1x1ODY4OFx1ODZmYVx1ODZmY1x1ODZmZFx1ODcwNFx1ODcwNVx1ODcwN1x1ODcwYlx1ODcwZVx1ODcwZlx1ODcxMFx1ODcxM1x1ODcxNFx1ODcxOVx1ODcxZVx1''@;'; + put 'put ''ODcxZlx1ODcyMVx1ODcyMyJdLFsiOGZkYmExIiwiXHU4NzI4XHU4NzJlXHU4NzJmXHU4NzMxXHU4NzMyXHU4NzM5XHU4NzNhXHU4NzNjXHU4NzNkXHU4NzNlXHU4NzQwXHU4NzQzXHU4NzQ1XHU4NzRkXHU4NzU4XHU4NzVkXHU4NzYxXHU4NzY0XHU4NzY1XHU4NzZmXHU4NzcxXHU4NzcyXHU4''@;'; + put 'put ''NzdiXHU4NzgzIiw2LCJcdTg3OGJcdTg3OGNcdTg3OTBcdTg3OTNcdTg3OTVcdTg3OTdcdTg3OThcdTg3OTlcdTg3OWVcdTg3YTBcdTg3YTNcdTg3YTdcdTg3YWNcdTg3YWRcdTg3YWVcdTg3YjFcdTg3YjVcdTg3YmVcdTg3YmZcdTg3YzFcdTg3YzhcdTg3YzlcdTg3Y2FcdTg3Y2VcdTg3ZDVc''@;'; + put 'put ''dTg3ZDZcdTg3ZDlcdTg3ZGFcdTg3ZGNcdTg3ZGZcdTg3ZTJcdTg3ZTNcdTg3ZTRcdTg3ZWFcdTg3ZWJcdTg3ZWRcdTg3ZjFcdTg3ZjNcdTg3ZjhcdTg3ZmFcdTg3ZmZcdTg4MDFcdTg4MDNcdTg4MDZcdTg4MDlcdTg4MGFcdTg4MGJcdTg4MTBcdTg4MTlcdTg4MTJcdTg4MTNcdTg4MTRcdTg4''@;'; + put 'put ''MThcdTg4MWFcdTg4MWJcdTg4MWNcdTg4MWVcdTg4MWZcdTg4MjhcdTg4MmRcdTg4MmVcdTg4MzBcdTg4MzJcdTg4MzUiXSxbIjhmZGNhMSIsIlx1ODgzYVx1ODgzY1x1ODg0MVx1ODg0M1x1ODg0NVx1ODg0OFx1ODg0OVx1ODg0YVx1ODg0Ylx1ODg0ZVx1ODg1MVx1ODg1NVx1ODg1Nlx1ODg1''@;'; + put 'put ''OFx1ODg1YVx1ODg1Y1x1ODg1Zlx1ODg2MFx1ODg2NFx1ODg2OVx1ODg3MVx1ODg3OVx1ODg3Ylx1ODg4MFx1ODg5OFx1ODg5YVx1ODg5Ylx1ODg5Y1x1ODg5Zlx1ODhhMFx1ODhhOFx1ODhhYVx1ODhiYVx1ODhiZFx1ODhiZVx1ODhjMFx1ODhjYSIsNCwiXHU4OGQxXHU4OGQyXHU4OGQzXHU4''@;'; + put 'put ''OGRiXHU4OGRlXHU4OGU3XHU4OGVmXHU4OGYwXHU4OGYxXHU4OGY1XHU4OGY3XHU4OTAxXHU4OTA2XHU4OTBkXHU4OTBlXHU4OTBmXHU4OTE1XHU4OTE2XHU4OTE4XHU4OTE5XHU4OTFhXHU4OTFjXHU4OTIwXHU4OTI2XHU4OTI3XHU4OTI4XHU4OTMwXHU4OTMxXHU4OTMyXHU4OTM1XHU4OTM5''@;'; + put 'put ''XHU4OTNhXHU4OTNlXHU4OTQwXHU4OTQyXHU4OTQ1XHU4OTQ2XHU4OTQ5XHU4OTRmXHU4OTUyXHU4OTU3XHU4OTVhXHU4OTViXHU4OTVjXHU4OTYxXHU4OTYyXHU4OTYzXHU4OTZiXHU4OTZlXHU4OTcwXHU4OTczXHU4OTc1XHU4OTdhIl0sWyI4ZmRkYTEiLCJcdTg5N2JcdTg5N2NcdTg5N2Rc''@;'; + put 'put ''dTg5ODlcdTg5OGRcdTg5OTBcdTg5OTRcdTg5OTVcdTg5OWJcdTg5OWNcdTg5OWZcdTg5YTBcdTg5YTVcdTg5YjBcdTg5YjRcdTg5YjVcdTg5YjZcdTg5YjdcdTg5YmNcdTg5ZDQiLDQsIlx1ODllNVx1ODllOVx1ODllYlx1ODllZFx1ODlmMVx1ODlmM1x1ODlmNlx1ODlmOVx1ODlmZFx1ODlm''@;'; + put 'put ''Zlx1OGEwNFx1OGEwNVx1OGEwN1x1OGEwZlx1OGExMVx1OGExMlx1OGExNFx1OGExNVx1OGExZVx1OGEyMFx1OGEyMlx1OGEyNFx1OGEyNlx1OGEyYlx1OGEyY1x1OGEyZlx1OGEzNVx1OGEzN1x1OGEzZFx1OGEzZVx1OGE0MFx1OGE0M1x1OGE0NVx1OGE0N1x1OGE0OVx1OGE0ZFx1OGE0ZVx1''@;'; + put 'put ''OGE1M1x1OGE1Nlx1OGE1N1x1OGE1OFx1OGE1Y1x1OGE1ZFx1OGE2MVx1OGE2NVx1OGE2N1x1OGE3NVx1OGE3Nlx1OGE3N1x1OGE3OVx1OGE3YVx1OGE3Ylx1OGE3ZVx1OGE3Zlx1OGE4MFx1OGE4M1x1OGE4Nlx1OGE4Ylx1OGE4Zlx1OGE5MFx1OGE5Mlx1OGE5Nlx1OGE5N1x1OGE5OVx1OGE5''@;'; + put 'put ''Zlx1OGFhN1x1OGFhOVx1OGFhZVx1OGFhZlx1OGFiMyJdLFsiOGZkZWExIiwiXHU4YWI2XHU4YWI3XHU4YWJiXHU4YWJlXHU4YWMzXHU4YWM2XHU4YWM4XHU4YWM5XHU4YWNhXHU4YWQxXHU4YWQzXHU4YWQ0XHU4YWQ1XHU4YWQ3XHU4YWRkXHU4YWRmXHU4YWVjXHU4YWYwXHU4YWY0XHU4YWY1''@;'; + put 'put ''XHU4YWY2XHU4YWZjXHU4YWZmXHU4YjA1XHU4YjA2XHU4YjBiXHU4YjExXHU4YjFjXHU4YjFlXHU4YjFmXHU4YjBhXHU4YjJkXHU4YjMwXHU4YjM3XHU4YjNjXHU4YjQyIiw0LCJcdThiNDhcdThiNTJcdThiNTNcdThiNTRcdThiNTlcdThiNGRcdThiNWVcdThiNjNcdThiNmRcdThiNzZcdThi''@;'; + put 'put ''NzhcdThiNzlcdThiN2NcdThiN2VcdThiODFcdThiODRcdThiODVcdThiOGJcdThiOGRcdThiOGZcdThiOTRcdThiOTVcdThiOWNcdThiOWVcdThiOWZcdThjMzhcdThjMzlcdThjM2RcdThjM2VcdThjNDVcdThjNDdcdThjNDlcdThjNGJcdThjNGZcdThjNTFcdThjNTNcdThjNTRcdThjNTdc''@;'; + put 'put ''dThjNThcdThjNWJcdThjNWRcdThjNTlcdThjNjNcdThjNjRcdThjNjZcdThjNjhcdThjNjlcdThjNmRcdThjNzNcdThjNzVcdThjNzZcdThjN2JcdThjN2VcdThjODYiXSxbIjhmZGZhMSIsIlx1OGM4N1x1OGM4Ylx1OGM5MFx1OGM5Mlx1OGM5M1x1OGM5OVx1OGM5Ylx1OGM5Y1x1OGNhNFx1''@;'; + put 'put ''OGNiOVx1OGNiYVx1OGNjNVx1OGNjNlx1OGNjOVx1OGNjYlx1OGNjZlx1OGNkNlx1OGNkNVx1OGNkOVx1OGNkZFx1OGNlMVx1OGNlOFx1OGNlY1x1OGNlZlx1OGNmMFx1OGNmMlx1OGNmNVx1OGNmN1x1OGNmOFx1OGNmZVx1OGNmZlx1OGQwMVx1OGQwM1x1OGQwOVx1OGQxMlx1OGQxN1x1OGQx''@;'; + put 'put ''Ylx1OGQ2NVx1OGQ2OVx1OGQ2Y1x1OGQ2ZVx1OGQ3Zlx1OGQ4Mlx1OGQ4NFx1OGQ4OFx1OGQ4ZFx1OGQ5MFx1OGQ5MVx1OGQ5NVx1OGQ5ZVx1OGQ5Zlx1OGRhMFx1OGRhNlx1OGRhYlx1OGRhY1x1OGRhZlx1OGRiMlx1OGRiNVx1OGRiN1x1OGRiOVx1OGRiYlx1OGRjMFx1OGRjNVx1OGRjNlx1''@;'; + put 'put ''OGRjN1x1OGRjOFx1OGRjYVx1OGRjZVx1OGRkMVx1OGRkNFx1OGRkNVx1OGRkN1x1OGRkOVx1OGRlNFx1OGRlNVx1OGRlN1x1OGRlY1x1OGRmMFx1OGRiY1x1OGRmMVx1OGRmMlx1OGRmNFx1OGRmZFx1OGUwMVx1OGUwNFx1OGUwNVx1OGUwNlx1OGUwYlx1OGUxMVx1OGUxNFx1OGUxNlx1OGUy''@;'; + put 'put ''MFx1OGUyMVx1OGUyMiJdLFsiOGZlMGExIiwiXHU4ZTIzXHU4ZTI2XHU4ZTI3XHU4ZTMxXHU4ZTMzXHU4ZTM2XHU4ZTM3XHU4ZTM4XHU4ZTM5XHU4ZTNkXHU4ZTQwXHU4ZTQxXHU4ZTRiXHU4ZTRkXHU4ZTRlXHU4ZTRmXHU4ZTU0XHU4ZTViXHU4ZTVjXHU4ZTVkXHU4ZTVlXHU4ZTYxXHU4ZTYy''@;'; + put 'put ''XHU4ZTY5XHU4ZTZjXHU4ZTZkXHU4ZTZmXHU4ZTcwXHU4ZTcxXHU4ZTc5XHU4ZTdhXHU4ZTdiXHU4ZTgyXHU4ZTgzXHU4ZTg5XHU4ZTkwXHU4ZTkyXHU4ZTk1XHU4ZTlhXHU4ZTliXHU4ZTlkXHU4ZTllXHU4ZWEyXHU4ZWE3XHU4ZWE5XHU4ZWFkXHU4ZWFlXHU4ZWIzXHU4ZWI1XHU4ZWJhXHU4''@;'; + put 'put ''ZWJiXHU4ZWMwXHU4ZWMxXHU4ZWMzXHU4ZWM0XHU4ZWM3XHU4ZWNmXHU4ZWQxXHU4ZWQ0XHU4ZWRjXHU4ZWU4XHU4ZWVlXHU4ZWYwXHU4ZWYxXHU4ZWY3XHU4ZWY5XHU4ZWZhXHU4ZWVkXHU4ZjAwXHU4ZjAyXHU4ZjA3XHU4ZjA4XHU4ZjBmXHU4ZjEwXHU4ZjE2XHU4ZjE3XHU4ZjE4XHU4ZjFl''@;'; + put 'put ''XHU4ZjIwXHU4ZjIxXHU4ZjIzXHU4ZjI1XHU4ZjI3XHU4ZjI4XHU4ZjJjXHU4ZjJkXHU4ZjJlXHU4ZjM0XHU4ZjM1XHU4ZjM2XHU4ZjM3XHU4ZjNhXHU4ZjQwXHU4ZjQxIl0sWyI4ZmUxYTEiLCJcdThmNDNcdThmNDdcdThmNGZcdThmNTEiLDQsIlx1OGY1OFx1OGY1ZFx1OGY1ZVx1OGY2NVx1''@;'; + put 'put ''OGY5ZFx1OGZhMFx1OGZhMVx1OGZhNFx1OGZhNVx1OGZhNlx1OGZiNVx1OGZiNlx1OGZiOFx1OGZiZVx1OGZjMFx1OGZjMVx1OGZjNlx1OGZjYVx1OGZjYlx1OGZjZFx1OGZkMFx1OGZkMlx1OGZkM1x1OGZkNVx1OGZlMFx1OGZlM1x1OGZlNFx1OGZlOFx1OGZlZVx1OGZmMVx1OGZmNVx1OGZm''@;'; + put 'put ''Nlx1OGZmYlx1OGZmZVx1OTAwMlx1OTAwNFx1OTAwOFx1OTAwY1x1OTAxOFx1OTAxYlx1OTAyOFx1OTAyOVx1OTAyZlx1OTAyYVx1OTAyY1x1OTAyZFx1OTAzM1x1OTAzNFx1OTAzN1x1OTAzZlx1OTA0M1x1OTA0NFx1OTA0Y1x1OTA1Ylx1OTA1ZFx1OTA2Mlx1OTA2Nlx1OTA2N1x1OTA2Y1x1''@;'; + put 'put ''OTA3MFx1OTA3NFx1OTA3OVx1OTA4NVx1OTA4OFx1OTA4Ylx1OTA4Y1x1OTA4ZVx1OTA5MFx1OTA5NVx1OTA5N1x1OTA5OFx1OTA5OVx1OTA5Ylx1OTBhMFx1OTBhMVx1OTBhMlx1OTBhNVx1OTBiMFx1OTBiMlx1OTBiM1x1OTBiNFx1OTBiNlx1OTBiZFx1OTBjY1x1OTBiZVx1OTBjMyJdLFsi''@;'; + put 'put ''OGZlMmExIiwiXHU5MGM0XHU5MGM1XHU5MGM3XHU5MGM4XHU5MGQ1XHU5MGQ3XHU5MGQ4XHU5MGQ5XHU5MGRjXHU5MGRkXHU5MGRmXHU5MGU1XHU5MGQyXHU5MGY2XHU5MGViXHU5MGVmXHU5MGYwXHU5MGY0XHU5MGZlXHU5MGZmXHU5MTAwXHU5MTA0XHU5MTA1XHU5MTA2XHU5MTA4XHU5MTBk''@;'; + put 'put ''XHU5MTEwXHU5MTE0XHU5MTE2XHU5MTE3XHU5MTE4XHU5MTFhXHU5MTFjXHU5MTFlXHU5MTIwXHU5MTI1XHU5MTIyXHU5MTIzXHU5MTI3XHU5MTI5XHU5MTJlXHU5MTJmXHU5MTMxXHU5MTM0XHU5MTM2XHU5MTM3XHU5MTM5XHU5MTNhXHU5MTNjXHU5MTNkXHU5MTQzXHU5MTQ3XHU5MTQ4XHU5''@;'; + put 'put ''MTRmXHU5MTUzXHU5MTU3XHU5MTU5XHU5MTVhXHU5MTViXHU5MTYxXHU5MTY0XHU5MTY3XHU5MTZkXHU5MTc0XHU5MTc5XHU5MTdhXHU5MTdiXHU5MTgxXHU5MTgzXHU5MTg1XHU5MTg2XHU5MThhXHU5MThlXHU5MTkxXHU5MTkzXHU5MTk0XHU5MTk1XHU5MTk4XHU5MTllXHU5MWExXHU5MWE2''@;'; + put 'put ''XHU5MWE4XHU5MWFjXHU5MWFkXHU5MWFlXHU5MWIwXHU5MWIxXHU5MWIyXHU5MWIzXHU5MWI2XHU5MWJiXHU5MWJjXHU5MWJkXHU5MWJmIl0sWyI4ZmUzYTEiLCJcdTkxYzJcdTkxYzNcdTkxYzVcdTkxZDNcdTkxZDRcdTkxZDdcdTkxZDlcdTkxZGFcdTkxZGVcdTkxZTRcdTkxZTVcdTkxZTlc''@;'; + put 'put ''dTkxZWFcdTkxZWMiLDUsIlx1OTFmN1x1OTFmOVx1OTFmYlx1OTFmZFx1OTIwMFx1OTIwMVx1OTIwNFx1OTIwNVx1OTIwNlx1OTIwN1x1OTIwOVx1OTIwYVx1OTIwY1x1OTIxMFx1OTIxMlx1OTIxM1x1OTIxNlx1OTIxOFx1OTIxY1x1OTIxZFx1OTIyM1x1OTIyNFx1OTIyNVx1OTIyNlx1OTIy''@;'; + put 'put ''OFx1OTIyZVx1OTIyZlx1OTIzMFx1OTIzM1x1OTIzNVx1OTIzNlx1OTIzOFx1OTIzOVx1OTIzYVx1OTIzY1x1OTIzZVx1OTI0MFx1OTI0Mlx1OTI0M1x1OTI0Nlx1OTI0N1x1OTI0YVx1OTI0ZFx1OTI0ZVx1OTI0Zlx1OTI1MVx1OTI1OFx1OTI1OVx1OTI1Y1x1OTI1ZFx1OTI2MFx1OTI2MVx1''@;'; + put 'put ''OTI2NVx1OTI2N1x1OTI2OFx1OTI2OVx1OTI2ZVx1OTI2Zlx1OTI3MFx1OTI3NSIsNCwiXHU5MjdiXHU5MjdjXHU5MjdkXHU5MjdmXHU5Mjg4XHU5Mjg5XHU5MjhhXHU5MjhkXHU5MjhlXHU5MjkyXHU5Mjk3Il0sWyI4ZmU0YTEiLCJcdTkyOTlcdTkyOWZcdTkyYTBcdTkyYTRcdTkyYTVcdTky''@;'; + put 'put ''YTdcdTkyYThcdTkyYWJcdTkyYWZcdTkyYjJcdTkyYjZcdTkyYjhcdTkyYmFcdTkyYmJcdTkyYmNcdTkyYmRcdTkyYmYiLDQsIlx1OTJjNVx1OTJjNlx1OTJjN1x1OTJjOFx1OTJjYlx1OTJjY1x1OTJjZFx1OTJjZVx1OTJkMFx1OTJkM1x1OTJkNVx1OTJkN1x1OTJkOFx1OTJkOVx1OTJkY1x1''@;'; + put 'put ''OTJkZFx1OTJkZlx1OTJlMFx1OTJlMVx1OTJlM1x1OTJlNVx1OTJlN1x1OTJlOFx1OTJlY1x1OTJlZVx1OTJmMFx1OTJmOVx1OTJmYlx1OTJmZlx1OTMwMFx1OTMwMlx1OTMwOFx1OTMwZFx1OTMxMVx1OTMxNFx1OTMxNVx1OTMxY1x1OTMxZFx1OTMxZVx1OTMxZlx1OTMyMVx1OTMyNFx1OTMy''@;'; + put 'put ''NVx1OTMyN1x1OTMyOVx1OTMyYVx1OTMzM1x1OTMzNFx1OTMzNlx1OTMzN1x1OTM0N1x1OTM0OFx1OTM0OVx1OTM1MFx1OTM1MVx1OTM1Mlx1OTM1NVx1OTM1N1x1OTM1OFx1OTM1YVx1OTM1ZVx1OTM2NFx1OTM2NVx1OTM2N1x1OTM2OVx1OTM2YVx1OTM2ZFx1OTM2Zlx1OTM3MFx1OTM3MVx1''@;'; + put 'put ''OTM3M1x1OTM3NFx1OTM3NiJdLFsiOGZlNWExIiwiXHU5MzdhXHU5MzdkXHU5MzdmXHU5MzgwXHU5MzgxXHU5MzgyXHU5Mzg4XHU5MzhhXHU5MzhiXHU5MzhkXHU5MzhmXHU5MzkyXHU5Mzk1XHU5Mzk4XHU5MzliXHU5MzllXHU5M2ExXHU5M2EzXHU5M2E0XHU5M2E2XHU5M2E4XHU5M2FiXHU5''@;'; + put 'put ''M2I0XHU5M2I1XHU5M2I2XHU5M2JhXHU5M2E5XHU5M2MxXHU5M2M0XHU5M2M1XHU5M2M2XHU5M2M3XHU5M2M5Iiw0LCJcdTkzZDNcdTkzZDlcdTkzZGNcdTkzZGVcdTkzZGZcdTkzZTJcdTkzZTZcdTkzZTdcdTkzZjlcdTkzZjdcdTkzZjhcdTkzZmFcdTkzZmJcdTkzZmRcdTk0MDFcdTk0MDJc''@;'; + put 'put ''dTk0MDRcdTk0MDhcdTk0MDlcdTk0MGRcdTk0MGVcdTk0MGZcdTk0MTVcdTk0MTZcdTk0MTdcdTk0MWZcdTk0MmVcdTk0MmZcdTk0MzFcdTk0MzJcdTk0MzNcdTk0MzRcdTk0M2JcdTk0M2ZcdTk0M2RcdTk0NDNcdTk0NDVcdTk0NDhcdTk0NGFcdTk0NGNcdTk0NTVcdTk0NTlcdTk0NWNcdTk0''@;'; + put 'put ''NWZcdTk0NjFcdTk0NjNcdTk0NjhcdTk0NmJcdTk0NmRcdTk0NmVcdTk0NmZcdTk0NzFcdTk0NzJcdTk0ODRcdTk0ODNcdTk1NzhcdTk1NzkiXSxbIjhmZTZhMSIsIlx1OTU3ZVx1OTU4NFx1OTU4OFx1OTU4Y1x1OTU4ZFx1OTU4ZVx1OTU5ZFx1OTU5ZVx1OTU5Zlx1OTVhMVx1OTVhNlx1OTVh''@;'; + put 'put ''OVx1OTVhYlx1OTVhY1x1OTViNFx1OTViNlx1OTViYVx1OTViZFx1OTViZlx1OTVjNlx1OTVjOFx1OTVjOVx1OTVjYlx1OTVkMFx1OTVkMVx1OTVkMlx1OTVkM1x1OTVkOVx1OTVkYVx1OTVkZFx1OTVkZVx1OTVkZlx1OTVlMFx1OTVlNFx1OTVlNlx1OTYxZFx1OTYxZVx1OTYyMlx1OTYyNFx1''@;'; + put 'put ''OTYyNVx1OTYyNlx1OTYyY1x1OTYzMVx1OTYzM1x1OTYzN1x1OTYzOFx1OTYzOVx1OTYzYVx1OTYzY1x1OTYzZFx1OTY0MVx1OTY1Mlx1OTY1NFx1OTY1Nlx1OTY1N1x1OTY1OFx1OTY2MVx1OTY2ZVx1OTY3NFx1OTY3Ylx1OTY3Y1x1OTY3ZVx1OTY3Zlx1OTY4MVx1OTY4Mlx1OTY4M1x1OTY4''@;'; + put 'put ''NFx1OTY4OVx1OTY5MVx1OTY5Nlx1OTY5YVx1OTY5ZFx1OTY5Zlx1OTZhNFx1OTZhNVx1OTZhNlx1OTZhOVx1OTZhZVx1OTZhZlx1OTZiM1x1OTZiYVx1OTZjYVx1OTZkMlx1NWRiMlx1OTZkOFx1OTZkYVx1OTZkZFx1OTZkZVx1OTZkZlx1OTZlOVx1OTZlZlx1OTZmMVx1OTZmYVx1OTcwMiJd''@;'; + put 'put ''LFsiOGZlN2ExIiwiXHU5NzAzXHU5NzA1XHU5NzA5XHU5NzFhXHU5NzFiXHU5NzFkXHU5NzIxXHU5NzIyXHU5NzIzXHU5NzI4XHU5NzMxXHU5NzMzXHU5NzQxXHU5NzQzXHU5NzRhXHU5NzRlXHU5NzRmXHU5NzU1XHU5NzU3XHU5NzU4XHU5NzVhXHU5NzViXHU5NzYzXHU5NzY3XHU5NzZhXHU5''@;'; + put 'put ''NzZlXHU5NzczXHU5Nzc2XHU5Nzc3XHU5Nzc4XHU5NzdiXHU5NzdkXHU5NzdmXHU5NzgwXHU5Nzg5XHU5Nzk1XHU5Nzk2XHU5Nzk3XHU5Nzk5XHU5NzlhXHU5NzllXHU5NzlmXHU5N2EyXHU5N2FjXHU5N2FlXHU5N2IxXHU5N2IyXHU5N2I1XHU5N2I2XHU5N2I4XHU5N2I5XHU5N2JhXHU5N2Jj''@;'; + put 'put ''XHU5N2JlXHU5N2JmXHU5N2MxXHU5N2M0XHU5N2M1XHU5N2M3XHU5N2M5XHU5N2NhXHU5N2NjXHU5N2NkXHU5N2NlXHU5N2QwXHU5N2QxXHU5N2Q0XHU5N2Q3XHU5N2Q4XHU5N2Q5XHU5N2RkXHU5N2RlXHU5N2UwXHU5N2RiXHU5N2UxXHU5N2U0XHU5N2VmXHU5N2YxXHU5N2Y0XHU5N2Y3XHU5''@;'; + put 'put ''N2Y4XHU5N2ZhXHU5ODA3XHU5ODBhXHU5ODE5XHU5ODBkXHU5ODBlXHU5ODE0XHU5ODE2XHU5ODFjXHU5ODFlXHU5ODIwXHU5ODIzXHU5ODI2Il0sWyI4ZmU4YTEiLCJcdTk4MmJcdTk4MmVcdTk4MmZcdTk4MzBcdTk4MzJcdTk4MzNcdTk4MzVcdTk4MjVcdTk4M2VcdTk4NDRcdTk4NDdcdTk4''@;'; + put 'put ''NGFcdTk4NTFcdTk4NTJcdTk4NTNcdTk4NTZcdTk4NTdcdTk4NTlcdTk4NWFcdTk4NjJcdTk4NjNcdTk4NjVcdTk4NjZcdTk4NmFcdTk4NmNcdTk4YWJcdTk4YWRcdTk4YWVcdTk4YjBcdTk4YjRcdTk4YjdcdTk4YjhcdTk4YmFcdTk4YmJcdTk4YmZcdTk4YzJcdTk4YzVcdTk4YzhcdTk4Y2Nc''@;'; + put 'put ''dTk4ZTFcdTk4ZTNcdTk4ZTVcdTk4ZTZcdTk4ZTdcdTk4ZWFcdTk4ZjNcdTk4ZjZcdTk5MDJcdTk5MDdcdTk5MDhcdTk5MTFcdTk5MTVcdTk5MTZcdTk5MTdcdTk5MWFcdTk5MWJcdTk5MWNcdTk5MWZcdTk5MjJcdTk5MjZcdTk5MjdcdTk5MmJcdTk5MzEiLDQsIlx1OTkzOVx1OTkzYVx1OTkz''@;'; + put 'put ''Ylx1OTkzY1x1OTk0MFx1OTk0MVx1OTk0Nlx1OTk0N1x1OTk0OFx1OTk0ZFx1OTk0ZVx1OTk1NFx1OTk1OFx1OTk1OVx1OTk1Ylx1OTk1Y1x1OTk1ZVx1OTk1Zlx1OTk2MFx1OTk5Ylx1OTk5ZFx1OTk5Zlx1OTlhNlx1OTliMFx1OTliMVx1OTliMlx1OTliNSJdLFsiOGZlOWExIiwiXHU5OWI5''@;'; + put 'put ''XHU5OWJhXHU5OWJkXHU5OWJmXHU5OWMzXHU5OWM5XHU5OWQzXHU5OWQ0XHU5OWQ5XHU5OWRhXHU5OWRjXHU5OWRlXHU5OWU3XHU5OWVhXHU5OWViXHU5OWVjXHU5OWYwXHU5OWY0XHU5OWY1XHU5OWY5XHU5OWZkXHU5OWZlXHU5YTAyXHU5YTAzXHU5YTA0XHU5YTBiXHU5YTBjXHU5YTEwXHU5''@;'; + put 'put ''YTExXHU5YTE2XHU5YTFlXHU5YTIwXHU5YTIyXHU5YTIzXHU5YTI0XHU5YTI3XHU5YTJkXHU5YTJlXHU5YTMzXHU5YTM1XHU5YTM2XHU5YTM4XHU5YTQ3XHU5YTQxXHU5YTQ0XHU5YTRhXHU5YTRiXHU5YTRjXHU5YTRlXHU5YTUxXHU5YTU0XHU5YTU2XHU5YTVkXHU5YWFhXHU5YWFjXHU5YWFl''@;'; + put 'put ''XHU5YWFmXHU5YWIyXHU5YWI0XHU5YWI1XHU5YWI2XHU5YWI5XHU5YWJiXHU5YWJlXHU5YWJmXHU5YWMxXHU5YWMzXHU5YWM2XHU5YWM4XHU5YWNlXHU5YWQwXHU5YWQyXHU5YWQ1XHU5YWQ2XHU5YWQ3XHU5YWRiXHU5YWRjXHU5YWUwXHU5YWU0XHU5YWU1XHU5YWU3XHU5YWU5XHU5YWVjXHU5''@;'; + put 'put ''YWYyXHU5YWYzXHU5YWY1XHU5YWY5XHU5YWZhXHU5YWZkXHU5YWZmIiw0XSxbIjhmZWFhMSIsIlx1OWIwNFx1OWIwNVx1OWIwOFx1OWIwOVx1OWIwYlx1OWIwY1x1OWIwZFx1OWIwZVx1OWIxMFx1OWIxMlx1OWIxNlx1OWIxOVx1OWIxYlx1OWIxY1x1OWIyMFx1OWIyNlx1OWIyYlx1OWIyZFx1''@;'; + put 'put ''OWIzM1x1OWIzNFx1OWIzNVx1OWIzN1x1OWIzOVx1OWIzYVx1OWIzZFx1OWI0OFx1OWI0Ylx1OWI0Y1x1OWI1NVx1OWI1Nlx1OWI1N1x1OWI1Ylx1OWI1ZVx1OWI2MVx1OWI2M1x1OWI2NVx1OWI2Nlx1OWI2OFx1OWI2YSIsNCwiXHU5YjczXHU5Yjc1XHU5Yjc3XHU5Yjc4XHU5Yjc5XHU5Yjdm''@;'; + put 'put ''XHU5YjgwXHU5Yjg0XHU5Yjg1XHU5Yjg2XHU5Yjg3XHU5Yjg5XHU5YjhhXHU5YjhiXHU5YjhkXHU5YjhmXHU5YjkwXHU5Yjk0XHU5YjlhXHU5YjlkXHU5YjllXHU5YmE2XHU5YmE3XHU5YmE5XHU5YmFjXHU5YmIwXHU5YmIxXHU5YmIyXHU5YmI3XHU5YmI4XHU5YmJiXHU5YmJjXHU5YmJlXHU5''@;'; + put 'put ''YmJmXHU5YmMxXHU5YmM3XHU5YmM4XHU5YmNlXHU5YmQwXHU5YmQ3XHU5YmQ4XHU5YmRkXHU5YmRmXHU5YmU1XHU5YmU3XHU5YmVhXHU5YmViXHU5YmVmXHU5YmYzXHU5YmY3XHU5YmY4Il0sWyI4ZmViYTEiLCJcdTliZjlcdTliZmFcdTliZmRcdTliZmZcdTljMDBcdTljMDJcdTljMGJcdTlj''@;'; + put 'put ''MGZcdTljMTFcdTljMTZcdTljMThcdTljMTlcdTljMWFcdTljMWNcdTljMWVcdTljMjJcdTljMjNcdTljMjYiLDQsIlx1OWMzMVx1OWMzNVx1OWMzNlx1OWMzN1x1OWMzZFx1OWM0MVx1OWM0M1x1OWM0NFx1OWM0NVx1OWM0OVx1OWM0YVx1OWM0ZVx1OWM0Zlx1OWM1MFx1OWM1M1x1OWM1NFx1''@;'; + put 'put ''OWM1Nlx1OWM1OFx1OWM1Ylx1OWM1ZFx1OWM1ZVx1OWM1Zlx1OWM2M1x1OWM2OVx1OWM2YVx1OWM1Y1x1OWM2Ylx1OWM2OFx1OWM2ZVx1OWM3MFx1OWM3Mlx1OWM3NVx1OWM3N1x1OWM3Ylx1OWNlNlx1OWNmMlx1OWNmN1x1OWNmOVx1OWQwYlx1OWQwMlx1OWQxMVx1OWQxN1x1OWQxOFx1OWQx''@;'; + put 'put ''Y1x1OWQxZFx1OWQxZVx1OWQyZlx1OWQzMFx1OWQzMlx1OWQzM1x1OWQzNFx1OWQzYVx1OWQzY1x1OWQ0NVx1OWQzZFx1OWQ0Mlx1OWQ0M1x1OWQ0N1x1OWQ0YVx1OWQ1M1x1OWQ1NFx1OWQ1Zlx1OWQ2M1x1OWQ2Mlx1OWQ2NVx1OWQ2OVx1OWQ2YVx1OWQ2Ylx1OWQ3MFx1OWQ3Nlx1OWQ3N1x1''@;'; + put 'put ''OWQ3YiJdLFsiOGZlY2ExIiwiXHU5ZDdjXHU5ZDdlXHU5ZDgzXHU5ZDg0XHU5ZDg2XHU5ZDhhXHU5ZDhkXHU5ZDhlXHU5ZDkyXHU5ZDkzXHU5ZDk1XHU5ZDk2XHU5ZDk3XHU5ZDk4XHU5ZGExXHU5ZGFhXHU5ZGFjXHU5ZGFlXHU5ZGIxXHU5ZGI1XHU5ZGI5XHU5ZGJjXHU5ZGJmXHU5ZGMzXHU5''@;'; + put 'put ''ZGM3XHU5ZGM5XHU5ZGNhXHU5ZGQ0XHU5ZGQ1XHU5ZGQ2XHU5ZGQ3XHU5ZGRhXHU5ZGRlXHU5ZGRmXHU5ZGUwXHU5ZGU1XHU5ZGU3XHU5ZGU5XHU5ZGViXHU5ZGVlXHU5ZGYwXHU5ZGYzXHU5ZGY0XHU5ZGZlXHU5ZTBhXHU5ZTAyXHU5ZTA3XHU5ZTBlXHU5ZTEwXHU5ZTExXHU5ZTEyXHU5ZTE1''@;'; + put 'put ''XHU5ZTE2XHU5ZTE5XHU5ZTFjXHU5ZTFkXHU5ZTdhXHU5ZTdiXHU5ZTdjXHU5ZTgwXHU5ZTgyXHU5ZTgzXHU5ZTg0XHU5ZTg1XHU5ZTg3XHU5ZThlXHU5ZThmXHU5ZTk2XHU5ZTk4XHU5ZTliXHU5ZTllXHU5ZWE0XHU5ZWE4XHU5ZWFjXHU5ZWFlXHU5ZWFmXHU5ZWIwXHU5ZWIzXHU5ZWI0XHU5''@;'; + put 'put ''ZWI1XHU5ZWM2XHU5ZWM4XHU5ZWNiXHU5ZWQ1XHU5ZWRmXHU5ZWU0XHU5ZWU3XHU5ZWVjXHU5ZWVkXHU5ZWVlXHU5ZWYwXHU5ZWYxXHU5ZWYyXHU5ZWY1Il0sWyI4ZmVkYTEiLCJcdTllZjhcdTllZmZcdTlmMDJcdTlmMDNcdTlmMDlcdTlmMGZcdTlmMTBcdTlmMTFcdTlmMTJcdTlmMTRcdTlm''@;'; + put 'put ''MTZcdTlmMTdcdTlmMTlcdTlmMWFcdTlmMWJcdTlmMWZcdTlmMjJcdTlmMjZcdTlmMmFcdTlmMmJcdTlmMmZcdTlmMzFcdTlmMzJcdTlmMzRcdTlmMzdcdTlmMzlcdTlmM2FcdTlmM2NcdTlmM2RcdTlmM2ZcdTlmNDFcdTlmNDMiLDQsIlx1OWY1M1x1OWY1NVx1OWY1Nlx1OWY1N1x1OWY1OFx1''@;'; + put 'put ''OWY1YVx1OWY1ZFx1OWY1ZVx1OWY2OFx1OWY2OVx1OWY2ZCIsNCwiXHU5ZjczXHU5Zjc1XHU5ZjdhXHU5ZjdkXHU5ZjhmXHU5ZjkwXHU5ZjkxXHU5ZjkyXHU5Zjk0XHU5Zjk2XHU5Zjk3XHU5ZjllXHU5ZmExXHU5ZmEyXHU5ZmEzXHU5ZmE1Il1dJyl9LDM2MjU4OlhlPT57InVzZSBzdHJpY3Qi''@;'; + put 'put ''O1hlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJ1Q2hhcnMiOlsxMjgsMTY1LDE2OSwxNzgsMTg0LDIxNiwyMjYsMjM1LDIzOCwyNDQsMjQ4LDI1MSwyNTMsMjU4LDI3NiwyODQsMzAwLDMyNSwzMjksMzM0LDM2NCw0NjMsNDY1LDQ2Nyw0NjksNDcxLDQ3Myw0NzUsNDc3LDUwNiw1OTQsNjEwLDcx''@;'; + put 'put ''Miw3MTYsNzMwLDkzMCw5MzgsOTYyLDk3MCwxMDI2LDExMDQsMTEwNiw4MjA5LDgyMTUsODIxOCw4MjIyLDgyMzEsODI0MSw4MjQ0LDgyNDYsODI1Miw4MzY1LDg0NTIsODQ1NCw4NDU4LDg0NzEsODQ4Miw4NTU2LDg1NzAsODU5Niw4NjAyLDg3MTMsODcyMCw4NzIyLDg3MjYsODczMSw4NzM3''@;'; + put 'put ''LDg3NDAsODc0Miw4NzQ4LDg3NTEsODc2MCw4NzY2LDg3NzcsODc4MSw4Nzg3LDg4MDIsODgwOCw4ODE2LDg4NTQsODg1OCw4ODcwLDg4OTYsODk3OSw5MzIyLDkzNzIsOTU0OCw5NTg4LDk2MTYsOTYyMiw5NjM0LDk2NTIsOTY2Miw5NjcyLDk2NzYsOTY4MCw5NzAyLDk3MzUsOTczOCw5Nzkz''@;'; + put 'put ''LDk3OTUsMTE5MDYsMTE5MDksMTE5MTMsMTE5MTcsMTE5MjgsMTE5NDQsMTE5NDcsMTE5NTEsMTE5NTYsMTE5NjAsMTE5NjQsMTE5NzksMTIyODQsMTIyOTIsMTIzMTIsMTIzMTksMTIzMzAsMTIzNTEsMTI0MzYsMTI0NDcsMTI1MzUsMTI1NDMsMTI1ODYsMTI4NDIsMTI4NTAsMTI5NjQsMTMy''@;'; + put 'put ''MDAsMTMyMTUsMTMyMTgsMTMyNTMsMTMyNjMsMTMyNjcsMTMyNzAsMTMzODQsMTM0MjgsMTM3MjcsMTM4MzksMTM4NTEsMTQ2MTcsMTQ3MDMsMTQ4MDEsMTQ4MTYsMTQ5NjQsMTUxODMsMTU0NzEsMTU1ODUsMTY0NzEsMTY3MzYsMTcyMDgsMTczMjUsMTczMzAsMTczNzQsMTc2MjMsMTc5OTcs''@;'; + put 'put ''MTgwMTgsMTgyMTIsMTgyMTgsMTgzMDEsMTgzMTgsMTg3NjAsMTg4MTEsMTg4MTQsMTg4MjAsMTg4MjMsMTg4NDQsMTg4NDgsMTg4NzIsMTk1NzYsMTk2MjAsMTk3MzgsMTk4ODcsNDA4NzAsNTkyNDQsNTkzMzYsNTkzNjcsNTk0MTMsNTk0MTcsNTk0MjMsNTk0MzEsNTk0MzcsNTk0NDMsNTk0''@;'; + put 'put ''NTIsNTk0NjAsNTk0NzgsNTk0OTMsNjM3ODksNjM4NjYsNjM4OTQsNjM5NzYsNjM5ODYsNjQwMTYsNjQwMTgsNjQwMjEsNjQwMjUsNjQwMzQsNjQwMzcsNjQwNDIsNjUwNzQsNjUwOTMsNjUxMDcsNjUxMTIsNjUxMjcsNjUxMzIsNjUzNzUsNjU1MTAsNjU1MzZdLCJnYkNoYXJzIjpbMCwzNiwz''@;'; + put 'put ''OCw0NSw1MCw4MSw4OSw5NSw5NiwxMDAsMTAzLDEwNCwxMDUsMTA5LDEyNiwxMzMsMTQ4LDE3MiwxNzUsMTc5LDIwOCwzMDYsMzA3LDMwOCwzMDksMzEwLDMxMSwzMTIsMzEzLDM0MSw0MjgsNDQzLDU0NCw1NDUsNTU4LDc0MSw3NDIsNzQ5LDc1MCw4MDUsODE5LDgyMCw3OTIyLDc5MjQsNzky''@;'; + put 'put ''NSw3OTI3LDc5MzQsNzk0Myw3OTQ0LDc5NDUsNzk1MCw4MDYyLDgxNDgsODE0OSw4MTUyLDgxNjQsODE3NCw4MjM2LDgyNDAsODI2Miw4MjY0LDgzNzQsODM4MCw4MzgxLDgzODQsODM4OCw4MzkwLDgzOTIsODM5Myw4Mzk0LDgzOTYsODQwMSw4NDA2LDg0MTYsODQxOSw4NDI0LDg0MzcsODQz''@;'; + put 'put ''OSw4NDQ1LDg0ODIsODQ4NSw4NDk2LDg1MjEsODYwMyw4OTM2LDg5NDYsOTA0Niw5MDUwLDkwNjMsOTA2Niw5MDc2LDkwOTIsOTEwMCw5MTA4LDkxMTEsOTExMyw5MTMxLDkxNjIsOTE2NCw5MjE4LDkyMTksMTEzMjksMTEzMzEsMTEzMzQsMTEzMzYsMTEzNDYsMTEzNjEsMTEzNjMsMTEzNjYs''@;'; + put 'put ''MTEzNzAsMTEzNzIsMTEzNzUsMTEzODksMTE2ODIsMTE2ODYsMTE2ODcsMTE2OTIsMTE2OTQsMTE3MTQsMTE3MTYsMTE3MjMsMTE3MjUsMTE3MzAsMTE3MzYsMTE5ODIsMTE5ODksMTIxMDIsMTIzMzYsMTIzNDgsMTIzNTAsMTIzODQsMTIzOTMsMTIzOTUsMTIzOTcsMTI1MTAsMTI1NTMsMTI4''@;'; + put 'put ''NTEsMTI5NjIsMTI5NzMsMTM3MzgsMTM4MjMsMTM5MTksMTM5MzMsMTQwODAsMTQyOTgsMTQ1ODUsMTQ2OTgsMTU1ODMsMTU4NDcsMTYzMTgsMTY0MzQsMTY0MzgsMTY0ODEsMTY3MjksMTcxMDIsMTcxMjIsMTczMTUsMTczMjAsMTc0MDIsMTc0MTgsMTc4NTksMTc5MDksMTc5MTEsMTc5MTUs''@;'; + put 'put ''MTc5MTYsMTc5MzYsMTc5MzksMTc5NjEsMTg2NjQsMTg3MDMsMTg4MTQsMTg5NjIsMTkwNDMsMzM0NjksMzM0NzAsMzM0NzEsMzM0ODQsMzM0ODUsMzM0OTAsMzM0OTcsMzM1MDEsMzM1MDUsMzM1MTMsMzM1MjAsMzM1MzYsMzM1NTAsMzc4NDUsMzc5MjEsMzc5NDgsMzgwMjksMzgwMzgsMzgw''@;'; + put 'put ''NjQsMzgwNjUsMzgwNjYsMzgwNjksMzgwNzUsMzgwNzYsMzgwNzgsMzkxMDgsMzkxMDksMzkxMTMsMzkxMTQsMzkxMTUsMzkxMTYsMzkyNjUsMzkzOTQsMTg5MDAwXX0nKX0sNDQzNDY6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCdbWyJhMTQwIiwiXHVlNGM2Iiw2''@;'; + put 'put ''Ml0sWyJhMTgwIiwiXHVlNTA1IiwzMl0sWyJhMjQwIiwiXHVlNTI2Iiw2Ml0sWyJhMjgwIiwiXHVlNTY1IiwzMl0sWyJhMmFiIiwiXHVlNzY2Iiw1XSxbImEyZTMiLCJcdTIwYWNcdWU3NmQiXSxbImEyZWYiLCJcdWU3NmVcdWU3NmYiXSxbImEyZmQiLCJcdWU3NzBcdWU3NzEiXSxbImEzNDAi''@;'; + put 'put ''LCJcdWU1ODYiLDYyXSxbImEzODAiLCJcdWU1YzUiLDMxLCJcdTMwMDAiXSxbImE0NDAiLCJcdWU1ZTYiLDYyXSxbImE0ODAiLCJcdWU2MjUiLDMyXSxbImE0ZjQiLCJcdWU3NzIiLDEwXSxbImE1NDAiLCJcdWU2NDYiLDYyXSxbImE1ODAiLCJcdWU2ODUiLDMyXSxbImE1ZjciLCJcdWU3N2Qi''@;'; + put 'put ''LDddLFsiYTY0MCIsIlx1ZTZhNiIsNjJdLFsiYTY4MCIsIlx1ZTZlNSIsMzJdLFsiYTZiOSIsIlx1ZTc4NSIsN10sWyJhNmQ5IiwiXHVlNzhkIiw2XSxbImE2ZWMiLCJcdWU3OTRcdWU3OTUiXSxbImE2ZjMiLCJcdWU3OTYiXSxbImE2ZjYiLCJcdWU3OTciLDhdLFsiYTc0MCIsIlx1ZTcwNiIs''@;'; + put 'put ''NjJdLFsiYTc4MCIsIlx1ZTc0NSIsMzJdLFsiYTdjMiIsIlx1ZTdhMCIsMTRdLFsiYTdmMiIsIlx1ZTdhZiIsMTJdLFsiYTg5NiIsIlx1ZTdiYyIsMTBdLFsiYThiYyIsIlx1ZTdjNyJdLFsiYThiZiIsIlx1MDFmOSJdLFsiYThjMSIsIlx1ZTdjOVx1ZTdjYVx1ZTdjYlx1ZTdjYyJdLFsiYThl''@;'; + put 'put ''YSIsIlx1ZTdjZCIsMjBdLFsiYTk1OCIsIlx1ZTdlMiJdLFsiYTk1YiIsIlx1ZTdlMyJdLFsiYTk1ZCIsIlx1ZTdlNFx1ZTdlNVx1ZTdlNiJdLFsiYTk4OSIsIlx1MzAzZVx1MmZmMCIsMTFdLFsiYTk5NyIsIlx1ZTdmNCIsMTJdLFsiYTlmMCIsIlx1ZTgwMSIsMTRdLFsiYWFhMSIsIlx1ZTAw''@;'; + put 'put ''MCIsOTNdLFsiYWJhMSIsIlx1ZTA1ZSIsOTNdLFsiYWNhMSIsIlx1ZTBiYyIsOTNdLFsiYWRhMSIsIlx1ZTExYSIsOTNdLFsiYWVhMSIsIlx1ZTE3OCIsOTNdLFsiYWZhMSIsIlx1ZTFkNiIsOTNdLFsiZDdmYSIsIlx1ZTgxMCIsNF0sWyJmOGExIiwiXHVlMjM0Iiw5M10sWyJmOWExIiwiXHVl''@;'; + put 'put ''MjkyIiw5M10sWyJmYWExIiwiXHVlMmYwIiw5M10sWyJmYmExIiwiXHVlMzRlIiw5M10sWyJmY2ExIiwiXHVlM2FjIiw5M10sWyJmZGExIiwiXHVlNDBhIiw5M10sWyJmZTUwIiwiXHUyZTgxXHVlODE2XHVlODE3XHVlODE4XHUyZTg0XHUzNDczXHUzNDQ3XHUyZTg4XHUyZThiXHVlODFlXHUz''@;'; + put 'put ''NTllXHUzNjFhXHUzNjBlXHUyZThjXHUyZTk3XHUzOTZlXHUzOTE4XHVlODI2XHUzOWNmXHUzOWRmXHUzYTczXHUzOWQwXHVlODJiXHVlODJjXHUzYjRlXHUzYzZlXHUzY2UwXHUyZWE3XHVlODMxXHVlODMyXHUyZWFhXHU0MDU2XHU0MTVmXHUyZWFlXHU0MzM3XHUyZWIzXHUyZWI2XHUyZWI3''@;'; + put 'put ''XHVlODNiXHU0M2IxXHU0M2FjXHUyZWJiXHU0M2RkXHU0NGQ2XHU0NjYxXHU0NjRjXHVlODQzIl0sWyJmZTgwIiwiXHU0NzIzXHU0NzI5XHU0NzdjXHU0NzhkXHUyZWNhXHU0OTQ3XHU0OTdhXHU0OTdkXHU0OTgyXHU0OTgzXHU0OTg1XHU0OTg2XHU0OTlmXHU0OTliXHU0OWI3XHU0OWI2XHVl''@;'; + put 'put ''ODU0XHVlODU1XHU0Y2EzXHU0YzlmXHU0Y2EwXHU0Y2ExXHU0Yzc3XHU0Y2EyXHU0ZDEzIiw2LCJcdTRkYWVcdWU4NjRcdWU0NjgiLDkzXV0nKX0sMjcwMTQ6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCdbWyIwIiwiXFx1MDAwMCIsMTI4XSxbImExIiwiXHVmZjYx''@;'; + put 'put ''Iiw2Ml0sWyI4MTQwIiwiXHUzMDAwXHUzMDAxXHUzMDAyXHVmZjBjXHVmZjBlXHUzMGZiXHVmZjFhXHVmZjFiXHVmZjFmXHVmZjAxXHUzMDliXHUzMDljXHhiNFx1ZmY0MFx4YThcdWZmM2VcdWZmZTNcdWZmM2ZcdTMwZmRcdTMwZmVcdTMwOWRcdTMwOWVcdTMwMDNcdTRlZGRcdTMwMDVcdTMw''@;'; + put 'put ''MDZcdTMwMDdcdTMwZmNcdTIwMTVcdTIwMTBcdWZmMGZcdWZmM2NcdWZmNWVcdTIyMjVcdWZmNWNcdTIwMjZcdTIwMjVcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdWZmMDhcdWZmMDlcdTMwMTRcdTMwMTVcdWZmM2JcdWZmM2RcdWZmNWJcdWZmNWRcdTMwMDgiLDksIlx1ZmYwYlx1ZmYwZFx4''@;'; + put 'put ''YjFceGQ3Il0sWyI4MTgwIiwiXHhmN1x1ZmYxZFx1MjI2MFx1ZmYxY1x1ZmYxZVx1MjI2Nlx1MjI2N1x1MjIxZVx1MjIzNFx1MjY0Mlx1MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdWZmZTVcdWZmMDRcdWZmZTBcdWZmZTFcdWZmMDVcdWZmMDNcdWZmMDZcdWZmMGFcdWZmMjBceGE3XHUy''@;'; + put 'put ''NjA2XHUyNjA1XHUyNWNiXHUyNWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyNWJkXHUyNWJjXHUyMDNiXHUzMDEyXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUzMDEzIl0sWyI4MWI4IiwiXHUyMjA4XHUyMjBiXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgz''@;'; + put 'put ''XHUyMjJhXHUyMjI5Il0sWyI4MWM4IiwiXHUyMjI3XHUyMjI4XHVmZmUyXHUyMWQyXHUyMWQ0XHUyMjAwXHUyMjAzIl0sWyI4MWRhIiwiXHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHUyMjZhXHUyMjZiXHUyMjFhXHUyMjNkXHUyMjFkXHUyMjM1XHUyMjJiXHUy''@;'; + put 'put ''MjJjIl0sWyI4MWYwIiwiXHUyMTJiXHUyMDMwXHUyNjZmXHUyNjZkXHUyNjZhXHUyMDIwXHUyMDIxXHhiNiJdLFsiODFmYyIsIlx1MjVlZiJdLFsiODI0ZiIsIlx1ZmYxMCIsOV0sWyI4MjYwIiwiXHVmZjIxIiwyNV0sWyI4MjgxIiwiXHVmZjQxIiwyNV0sWyI4MjlmIiwiXHUzMDQxIiw4Ml0s''@;'; + put 'put ''WyI4MzQwIiwiXHUzMGExIiw2Ml0sWyI4MzgwIiwiXHUzMGUwIiwyMl0sWyI4MzlmIiwiXHUwMzkxIiwxNiwiXHUwM2EzIiw2XSxbIjgzYmYiLCJcdTAzYjEiLDE2LCJcdTAzYzMiLDZdLFsiODQ0MCIsIlx1MDQxMCIsNSwiXHUwNDAxXHUwNDE2IiwyNV0sWyI4NDcwIiwiXHUwNDMwIiw1LCJc''@;'; + put 'put ''dTA0NTFcdTA0MzYiLDddLFsiODQ4MCIsIlx1MDQzZSIsMTddLFsiODQ5ZiIsIlx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUyM1x1MjUzM1x1MjUy''@;'; + put 'put ''Ylx1MjUzYlx1MjU0Ylx1MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0MiJdLFsiODc0MCIsIlx1MjQ2MCIsMTksIlx1MjE2MCIsOV0sWyI4NzVmIiwiXHUzMzQ5XHUzMzE0XHUzMzIyXHUzMzRkXHUzMzE4XHUzMzI3XHUzMzAzXHUzMzM2''@;'; + put 'put ''XHUzMzUxXHUzMzU3XHUzMzBkXHUzMzI2XHUzMzIzXHUzMzJiXHUzMzRhXHUzMzNiXHUzMzljXHUzMzlkXHUzMzllXHUzMzhlXHUzMzhmXHUzM2M0XHUzM2ExIl0sWyI4NzdlIiwiXHUzMzdiIl0sWyI4NzgwIiwiXHUzMDFkXHUzMDFmXHUyMTE2XHUzM2NkXHUyMTIxXHUzMmE0Iiw0LCJcdTMy''@;'; + put 'put ''MzFcdTMyMzJcdTMyMzlcdTMzN2VcdTMzN2RcdTMzN2NcdTIyNTJcdTIyNjFcdTIyMmJcdTIyMmVcdTIyMTFcdTIyMWFcdTIyYTVcdTIyMjBcdTIyMWZcdTIyYmZcdTIyMzVcdTIyMjlcdTIyMmEiXSxbIjg4OWYiLCJcdTRlOWNcdTU1MTZcdTVhMDNcdTk2M2ZcdTU0YzBcdTYxMWJcdTYzMjhc''@;'; + put 'put ''dTU5ZjZcdTkwMjJcdTg0NzVcdTgzMWNcdTdhNTBcdTYwYWFcdTYzZTFcdTZlMjVcdTY1ZWRcdTg0NjZcdTgyYTZcdTliZjVcdTY4OTNcdTU3MjdcdTY1YTFcdTYyNzFcdTViOWJcdTU5ZDBcdTg2N2JcdTk4ZjRcdTdkNjJcdTdkYmVcdTliOGVcdTYyMTZcdTdjOWZcdTg4YjdcdTViODlcdTVl''@;'; + put 'put ''YjVcdTYzMDlcdTY2OTdcdTY4NDhcdTk1YzdcdTk3OGRcdTY3NGZcdTRlZTVcdTRmMGFcdTRmNGRcdTRmOWRcdTUwNDlcdTU2ZjJcdTU5MzdcdTU5ZDRcdTVhMDFcdTVjMDlcdTYwZGZcdTYxMGZcdTYxNzBcdTY2MTNcdTY5MDVcdTcwYmFcdTc1NGZcdTc1NzBcdTc5ZmJcdTdkYWRcdTdkZWZc''@;'; + put 'put ''dTgwYzNcdTg0MGVcdTg4NjNcdThiMDJcdTkwNTVcdTkwN2FcdTUzM2JcdTRlOTVcdTRlYTVcdTU3ZGZcdTgwYjJcdTkwYzFcdTc4ZWZcdTRlMDBcdTU4ZjFcdTZlYTJcdTkwMzhcdTdhMzJcdTgzMjhcdTgyOGJcdTljMmZcdTUxNDFcdTUzNzBcdTU0YmRcdTU0ZTFcdTU2ZTBcdTU5ZmJcdTVm''@;'; + put 'put ''MTVcdTk4ZjJcdTZkZWJcdTgwZTRcdTg1MmQiXSxbIjg5NDAiLCJcdTk2NjJcdTk2NzBcdTk2YTBcdTk3ZmJcdTU0MGJcdTUzZjNcdTViODdcdTcwY2ZcdTdmYmRcdThmYzJcdTk2ZThcdTUzNmZcdTlkNWNcdTdhYmFcdTRlMTFcdTc4OTNcdTgxZmNcdTZlMjZcdTU2MThcdTU1MDRcdTZiMWRc''@;'; + put 'put ''dTg1MWFcdTljM2JcdTU5ZTVcdTUzYTlcdTZkNjZcdTc0ZGNcdTk1OGZcdTU2NDJcdTRlOTFcdTkwNGJcdTk2ZjJcdTgzNGZcdTk5MGNcdTUzZTFcdTU1YjZcdTViMzBcdTVmNzFcdTY2MjBcdTY2ZjNcdTY4MDRcdTZjMzhcdTZjZjNcdTZkMjlcdTc0NWJcdTc2YzhcdTdhNGVcdTk4MzRcdTgy''@;'; + put 'put ''ZjFcdTg4NWJcdThhNjBcdTkyZWRcdTZkYjJcdTc1YWJcdTc2Y2FcdTk5YzVcdTYwYTZcdThiMDFcdThkOGFcdTk1YjJcdTY5OGVcdTUzYWRcdTUxODYiXSxbIjg5ODAiLCJcdTU3MTJcdTU4MzBcdTU5NDRcdTViYjRcdTVlZjZcdTYwMjhcdTYzYTlcdTYzZjRcdTZjYmZcdTZmMTRcdTcwOGVc''@;'; + put 'put ''dTcxMTRcdTcxNTlcdTcxZDVcdTczM2ZcdTdlMDFcdTgyNzZcdTgyZDFcdTg1OTdcdTkwNjBcdTkyNWJcdTlkMWJcdTU4NjlcdTY1YmNcdTZjNWFcdTc1MjVcdTUxZjlcdTU5MmVcdTU5NjVcdTVmODBcdTVmZGNcdTYyYmNcdTY1ZmFcdTZhMmFcdTZiMjdcdTZiYjRcdTczOGJcdTdmYzFcdTg5''@;'; + put 'put ''NTZcdTlkMmNcdTlkMGVcdTllYzRcdTVjYTFcdTZjOTZcdTgzN2JcdTUxMDRcdTVjNGJcdTYxYjZcdTgxYzZcdTY4NzZcdTcyNjFcdTRlNTlcdTRmZmFcdTUzNzhcdTYwNjlcdTZlMjlcdTdhNGZcdTk3ZjNcdTRlMGJcdTUzMTZcdTRlZWVcdTRmNTVcdTRmM2RcdTRmYTFcdTRmNzNcdTUyYTBc''@;'; + put 'put ''dTUzZWZcdTU2MDlcdTU5MGZcdTVhYzFcdTViYjZcdTViZTFcdTc5ZDFcdTY2ODdcdTY3OWNcdTY3YjZcdTZiNGNcdTZjYjNcdTcwNmJcdTczYzJcdTc5OGRcdTc5YmVcdTdhM2NcdTdiODdcdTgyYjFcdTgyZGJcdTgzMDRcdTgzNzdcdTgzZWZcdTgzZDNcdTg3NjZcdThhYjJcdTU2MjlcdThj''@;'; + put 'put ''YThcdThmZTZcdTkwNGVcdTk3MWVcdTg2OGFcdTRmYzRcdTVjZThcdTYyMTFcdTcyNTlcdTc1M2JcdTgxZTVcdTgyYmRcdTg2ZmVcdThjYzBcdTk2YzVcdTk5MTNcdTk5ZDVcdTRlY2JcdTRmMWFcdTg5ZTNcdTU2ZGVcdTU4NGFcdTU4Y2FcdTVlZmJcdTVmZWJcdTYwMmFcdTYwOTRcdTYwNjJc''@;'; + put 'put ''dTYxZDBcdTYyMTJcdTYyZDBcdTY1MzkiXSxbIjhhNDAiLCJcdTliNDFcdTY2NjZcdTY4YjBcdTZkNzdcdTcwNzBcdTc1NGNcdTc2ODZcdTdkNzVcdTgyYTVcdTg3ZjlcdTk1OGJcdTk2OGVcdThjOWRcdTUxZjFcdTUyYmVcdTU5MTZcdTU0YjNcdTViYjNcdTVkMTZcdTYxNjhcdTY5ODJcdTZk''@;'; + put 'put ''YWZcdTc4OGRcdTg0Y2JcdTg4NTdcdThhNzJcdTkzYTdcdTlhYjhcdTZkNmNcdTk5YThcdTg2ZDlcdTU3YTNcdTY3ZmZcdTg2Y2VcdTkyMGVcdTUyODNcdTU2ODdcdTU0MDRcdTVlZDNcdTYyZTFcdTY0YjlcdTY4M2NcdTY4MzhcdTZiYmJcdTczNzJcdTc4YmFcdTdhNmJcdTg5OWFcdTg5ZDJc''@;'; + put 'put ''dThkNmJcdThmMDNcdTkwZWRcdTk1YTNcdTk2OTRcdTk3NjlcdTViNjZcdTVjYjNcdTY5N2RcdTk4NGRcdTk4NGVcdTYzOWJcdTdiMjBcdTZhMmIiXSxbIjhhODAiLCJcdTZhN2ZcdTY4YjZcdTljMGRcdTZmNWZcdTUyNzJcdTU1OWRcdTYwNzBcdTYyZWNcdTZkM2JcdTZlMDdcdTZlZDFcdTg0''@;'; + put 'put ''NWJcdTg5MTBcdThmNDRcdTRlMTRcdTljMzlcdTUzZjZcdTY5MWJcdTZhM2FcdTk3ODRcdTY4MmFcdTUxNWNcdTdhYzNcdTg0YjJcdTkxZGNcdTkzOGNcdTU2NWJcdTlkMjhcdTY4MjJcdTgzMDVcdTg0MzFcdTdjYTVcdTUyMDhcdTgyYzVcdTc0ZTZcdTRlN2VcdTRmODNcdTUxYTBcdTViZDJc''@;'; + put 'put ''dTUyMGFcdTUyZDhcdTUyZTdcdTVkZmJcdTU1OWFcdTU4MmFcdTU5ZTZcdTViOGNcdTViOThcdTViZGJcdTVlNzJcdTVlNzlcdTYwYTNcdTYxMWZcdTYxNjNcdTYxYmVcdTYzZGJcdTY1NjJcdTY3ZDFcdTY4NTNcdTY4ZmFcdTZiM2VcdTZiNTNcdTZjNTdcdTZmMjJcdTZmOTdcdTZmNDVcdTc0''@;'; + put 'put ''YjBcdTc1MThcdTc2ZTNcdTc3MGJcdTdhZmZcdTdiYTFcdTdjMjFcdTdkZTlcdTdmMzZcdTdmZjBcdTgwOWRcdTgyNjZcdTgzOWVcdTg5YjNcdThhY2NcdThjYWJcdTkwODRcdTk0NTFcdTk1OTNcdTk1OTFcdTk1YTJcdTk2NjVcdTk3ZDNcdTk5MjhcdTgyMThcdTRlMzhcdTU0MmJcdTVjYjhc''@;'; + put 'put ''dTVkY2NcdTczYTlcdTc2NGNcdTc3M2NcdTVjYTlcdTdmZWJcdThkMGJcdTk2YzFcdTk4MTFcdTk4NTRcdTk4NThcdTRmMDFcdTRmMGVcdTUzNzFcdTU1OWNcdTU2NjhcdTU3ZmFcdTU5NDdcdTViMDlcdTViYzRcdTVjOTBcdTVlMGNcdTVlN2VcdTVmY2NcdTYzZWVcdTY3M2FcdTY1ZDdcdTY1''@;'; + put 'put ''ZTJcdTY3MWZcdTY4Y2JcdTY4YzQiXSxbIjhiNDAiLCJcdTZhNWZcdTVlMzBcdTZiYzVcdTZjMTdcdTZjN2RcdTc1N2ZcdTc5NDhcdTViNjNcdTdhMDBcdTdkMDBcdTVmYmRcdTg5OGZcdThhMThcdThjYjRcdThkNzdcdThlY2NcdThmMWRcdTk4ZTJcdTlhMGVcdTliM2NcdTRlODBcdTUwN2Rc''@;'; + put 'put ''dTUxMDBcdTU5OTNcdTViOWNcdTYyMmZcdTYyODBcdTY0ZWNcdTZiM2FcdTcyYTBcdTc1OTFcdTc5NDdcdTdmYTlcdTg3ZmJcdThhYmNcdThiNzBcdTYzYWNcdTgzY2FcdTk3YTBcdTU0MDlcdTU0MDNcdTU1YWJcdTY4NTRcdTZhNThcdThhNzBcdTc4MjdcdTY3NzVcdTllY2RcdTUzNzRcdTVi''@;'; + put 'put ''YTJcdTgxMWFcdTg2NTBcdTkwMDZcdTRlMThcdTRlNDVcdTRlYzdcdTRmMTFcdTUzY2FcdTU0MzhcdTViYWVcdTVmMTNcdTYwMjVcdTY1NTEiXSxbIjhiODAiLCJcdTY3M2RcdTZjNDJcdTZjNzJcdTZjZTNcdTcwNzhcdTc0MDNcdTdhNzZcdTdhYWVcdTdiMDhcdTdkMWFcdTdjZmVcdTdkNjZc''@;'; + put 'put ''dTY1ZTdcdTcyNWJcdTUzYmJcdTVjNDVcdTVkZThcdTYyZDJcdTYyZTBcdTYzMTlcdTZlMjBcdTg2NWFcdThhMzFcdThkZGRcdTkyZjhcdTZmMDFcdTc5YTZcdTliNWFcdTRlYThcdTRlYWJcdTRlYWNcdTRmOWJcdTRmYTBcdTUwZDFcdTUxNDdcdTdhZjZcdTUxNzFcdTUxZjZcdTUzNTRcdTUz''@;'; + put 'put ''MjFcdTUzN2ZcdTUzZWJcdTU1YWNcdTU4ODNcdTVjZTFcdTVmMzdcdTVmNGFcdTYwMmZcdTYwNTBcdTYwNmRcdTYzMWZcdTY1NTlcdTZhNGJcdTZjYzFcdTcyYzJcdTcyZWRcdTc3ZWZcdTgwZjhcdTgxMDVcdTgyMDhcdTg1NGVcdTkwZjdcdTkzZTFcdTk3ZmZcdTk5NTdcdTlhNWFcdTRlZjBc''@;'; + put 'put ''dTUxZGRcdTVjMmRcdTY2ODFcdTY5NmRcdTVjNDBcdTY2ZjJcdTY5NzVcdTczODlcdTY4NTBcdTdjODFcdTUwYzVcdTUyZTRcdTU3NDdcdTVkZmVcdTkzMjZcdTY1YTRcdTZiMjNcdTZiM2RcdTc0MzRcdTc5ODFcdTc5YmRcdTdiNGJcdTdkY2FcdTgyYjlcdTgzY2NcdTg4N2ZcdTg5NWZcdThi''@;'; + put 'put ''MzlcdThmZDFcdTkxZDFcdTU0MWZcdTkyODBcdTRlNWRcdTUwMzZcdTUzZTVcdTUzM2FcdTcyZDdcdTczOTZcdTc3ZTlcdTgyZTZcdThlYWZcdTk5YzZcdTk5YzhcdTk5ZDJcdTUxNzdcdTYxMWFcdTg2NWVcdTU1YjBcdTdhN2FcdTUwNzZcdTViZDNcdTkwNDdcdTk2ODVcdTRlMzJcdTZhZGJc''@;'; + put 'put ''dTkxZTdcdTVjNTFcdTVjNDgiXSxbIjhjNDAiLCJcdTYzOThcdTdhOWZcdTZjOTNcdTk3NzRcdThmNjFcdTdhYWFcdTcxOGFcdTk2ODhcdTdjODJcdTY4MTdcdTdlNzBcdTY4NTFcdTkzNmNcdTUyZjJcdTU0MWJcdTg1YWJcdThhMTNcdTdmYTRcdThlY2RcdTkwZTFcdTUzNjZcdTg4ODhcdTc5''@;'; + put 'put ''NDFcdTRmYzJcdTUwYmVcdTUyMTFcdTUxNDRcdTU1NTNcdTU3MmRcdTczZWFcdTU3OGJcdTU5NTFcdTVmNjJcdTVmODRcdTYwNzVcdTYxNzZcdTYxNjdcdTYxYTlcdTYzYjJcdTY0M2FcdTY1NmNcdTY2NmZcdTY4NDJcdTZlMTNcdTc1NjZcdTdhM2RcdTdjZmJcdTdkNGNcdTdkOTlcdTdlNGJc''@;'; + put 'put ''dTdmNmJcdTgzMGVcdTgzNGFcdTg2Y2RcdThhMDhcdThhNjNcdThiNjZcdThlZmRcdTk4MWFcdTlkOGZcdTgyYjhcdThmY2VcdTliZTgiXSxbIjhjODAiLCJcdTUyODdcdTYyMWZcdTY0ODNcdTZmYzBcdTk2OTlcdTY4NDFcdTUwOTFcdTZiMjBcdTZjN2FcdTZmNTRcdTdhNzRcdTdkNTBcdTg4''@;'; + put 'put ''NDBcdThhMjNcdTY3MDhcdTRlZjZcdTUwMzlcdTUwMjZcdTUwNjVcdTUxN2NcdTUyMzhcdTUyNjNcdTU1YTdcdTU3MGZcdTU4MDVcdTVhY2NcdTVlZmFcdTYxYjJcdTYxZjhcdTYyZjNcdTYzNzJcdTY5MWNcdTZhMjlcdTcyN2RcdTcyYWNcdTczMmVcdTc4MTRcdTc4NmZcdTdkNzlcdTc3MGNc''@;'; + put 'put ''dTgwYTlcdTg5OGJcdThiMTlcdThjZTJcdThlZDJcdTkwNjNcdTkzNzVcdTk2N2FcdTk4NTVcdTlhMTNcdTllNzhcdTUxNDNcdTUzOWZcdTUzYjNcdTVlN2JcdTVmMjZcdTZlMWJcdTZlOTBcdTczODRcdTczZmVcdTdkNDNcdTgyMzdcdThhMDBcdThhZmFcdTk2NTBcdTRlNGVcdTUwMGJcdTUz''@;'; + put 'put ''ZTRcdTU0N2NcdTU2ZmFcdTU5ZDFcdTViNjRcdTVkZjFcdTVlYWJcdTVmMjdcdTYyMzhcdTY1NDVcdTY3YWZcdTZlNTZcdTcyZDBcdTdjY2FcdTg4YjRcdTgwYTFcdTgwZTFcdTgzZjBcdTg2NGVcdThhODdcdThkZThcdTkyMzdcdTk2YzdcdTk4NjdcdTlmMTNcdTRlOTRcdTRlOTJcdTRmMGRc''@;'; + put 'put ''dTUzNDhcdTU0NDlcdTU0M2VcdTVhMmZcdTVmOGNcdTVmYTFcdTYwOWZcdTY4YTdcdTZhOGVcdTc0NWFcdTc4ODFcdThhOWVcdThhYTRcdThiNzdcdTkxOTBcdTRlNWVcdTliYzlcdTRlYTRcdTRmN2NcdTRmYWZcdTUwMTlcdTUwMTZcdTUxNDlcdTUxNmNcdTUyOWZcdTUyYjlcdTUyZmVcdTUz''@;'; + put 'put ''OWFcdTUzZTNcdTU0MTEiXSxbIjhkNDAiLCJcdTU0MGVcdTU1ODlcdTU3NTFcdTU3YTJcdTU5N2RcdTViNTRcdTViNWRcdTViOGZcdTVkZTVcdTVkZTdcdTVkZjdcdTVlNzhcdTVlODNcdTVlOWFcdTVlYjdcdTVmMThcdTYwNTJcdTYxNGNcdTYyOTdcdTYyZDhcdTYzYTdcdTY1M2JcdTY2MDJc''@;'; + put 'put ''dTY2NDNcdTY2ZjRcdTY3NmRcdTY4MjFcdTY4OTdcdTY5Y2JcdTZjNWZcdTZkMmFcdTZkNjlcdTZlMmZcdTZlOWRcdTc1MzJcdTc2ODdcdTc4NmNcdTdhM2ZcdTdjZTBcdTdkMDVcdTdkMThcdTdkNWVcdTdkYjFcdTgwMTVcdTgwMDNcdTgwYWZcdTgwYjFcdTgxNTRcdTgxOGZcdTgyMmFcdTgz''@;'; + put 'put ''NTJcdTg4NGNcdTg4NjFcdThiMWJcdThjYTJcdThjZmNcdTkwY2FcdTkxNzVcdTkyNzFcdTc4M2ZcdTkyZmNcdTk1YTRcdTk2NGQiXSxbIjhkODAiLCJcdTk4MDVcdTk5OTlcdTlhZDhcdTlkM2JcdTUyNWJcdTUyYWJcdTUzZjdcdTU0MDhcdTU4ZDVcdTYyZjdcdTZmZTBcdThjNmFcdThmNWZc''@;'; + put 'put ''dTllYjlcdTUxNGJcdTUyM2JcdTU0NGFcdTU2ZmRcdTdhNDBcdTkxNzdcdTlkNjBcdTllZDJcdTczNDRcdTZmMDlcdTgxNzBcdTc1MTFcdTVmZmRcdTYwZGFcdTlhYThcdTcyZGJcdThmYmNcdTZiNjRcdTk4MDNcdTRlY2FcdTU2ZjBcdTU3NjRcdTU4YmVcdTVhNWFcdTYwNjhcdTYxYzdcdTY2''@;'; + put 'put ''MGZcdTY2MDZcdTY4MzlcdTY4YjFcdTZkZjdcdTc1ZDVcdTdkM2FcdTgyNmVcdTliNDJcdTRlOWJcdTRmNTBcdTUzYzlcdTU1MDZcdTVkNmZcdTVkZTZcdTVkZWVcdTY3ZmJcdTZjOTlcdTc0NzNcdTc4MDJcdThhNTBcdTkzOTZcdTg4ZGZcdTU3NTBcdTVlYTdcdTYzMmJcdTUwYjVcdTUwYWNc''@;'; + put 'put ''dTUxOGRcdTY3MDBcdTU0YzlcdTU4NWVcdTU5YmJcdTViYjBcdTVmNjlcdTYyNGRcdTYzYTFcdTY4M2RcdTZiNzNcdTZlMDhcdTcwN2RcdTkxYzdcdTcyODBcdTc4MTVcdTc4MjZcdTc5NmRcdTY1OGVcdTdkMzBcdTgzZGNcdTg4YzFcdThmMDlcdTk2OWJcdTUyNjRcdTU3MjhcdTY3NTBcdTdm''@;'; + put 'put ''NmFcdThjYTFcdTUxYjRcdTU3NDJcdTk2MmFcdTU4M2FcdTY5OGFcdTgwYjRcdTU0YjJcdTVkMGVcdTU3ZmNcdTc4OTVcdTlkZmFcdTRmNWNcdTUyNGFcdTU0OGJcdTY0M2VcdTY2MjhcdTY3MTRcdTY3ZjVcdTdhODRcdTdiNTZcdTdkMjJcdTkzMmZcdTY4NWNcdTliYWRcdTdiMzlcdTUzMTlc''@;'; + put 'put ''dTUxOGFcdTUyMzciXSxbIjhlNDAiLCJcdTViZGZcdTYyZjZcdTY0YWVcdTY0ZTZcdTY3MmRcdTZiYmFcdTg1YTlcdTk2ZDFcdTc2OTBcdTliZDZcdTYzNGNcdTkzMDZcdTliYWJcdTc2YmZcdTY2NTJcdTRlMDlcdTUwOThcdTUzYzJcdTVjNzFcdTYwZThcdTY0OTJcdTY1NjNcdTY4NWZcdTcx''@;'; + put 'put ''ZTZcdTczY2FcdTc1MjNcdTdiOTdcdTdlODJcdTg2OTVcdThiODNcdThjZGJcdTkxNzhcdTk5MTBcdTY1YWNcdTY2YWJcdTZiOGJcdTRlZDVcdTRlZDRcdTRmM2FcdTRmN2ZcdTUyM2FcdTUzZjhcdTUzZjJcdTU1ZTNcdTU2ZGJcdTU4ZWJcdTU5Y2JcdTU5YzlcdTU5ZmZcdTViNTBcdTVjNGRc''@;'; + put 'put ''dTVlMDJcdTVlMmJcdTVmZDdcdTYwMWRcdTYzMDdcdTY1MmZcdTViNWNcdTY1YWZcdTY1YmRcdTY1ZThcdTY3OWRcdTZiNjIiXSxbIjhlODAiLCJcdTZiN2JcdTZjMGZcdTczNDVcdTc5NDlcdTc5YzFcdTdjZjhcdTdkMTlcdTdkMmJcdTgwYTJcdTgxMDJcdTgxZjNcdTg5OTZcdThhNWVcdThh''@;'; + put 'put ''NjlcdThhNjZcdThhOGNcdThhZWVcdThjYzdcdThjZGNcdTk2Y2NcdTk4ZmNcdTZiNmZcdTRlOGJcdTRmM2NcdTRmOGRcdTUxNTBcdTViNTdcdTViZmFcdTYxNDhcdTYzMDFcdTY2NDJcdTZiMjFcdTZlY2JcdTZjYmJcdTcyM2VcdTc0YmRcdTc1ZDRcdTc4YzFcdTc5M2FcdTgwMGNcdTgwMzNc''@;'; + put 'put ''dTgxZWFcdTg0OTRcdThmOWVcdTZjNTBcdTllN2ZcdTVmMGZcdThiNThcdTlkMmJcdTdhZmFcdThlZjhcdTViOGRcdTk2ZWJcdTRlMDNcdTUzZjFcdTU3ZjdcdTU5MzFcdTVhYzlcdTViYTRcdTYwODlcdTZlN2ZcdTZmMDZcdTc1YmVcdThjZWFcdTViOWZcdTg1MDBcdTdiZTBcdTUwNzJcdTY3''@;'; + put 'put ''ZjRcdTgyOWRcdTVjNjFcdTg1NGFcdTdlMWVcdTgyMGVcdTUxOTlcdTVjMDRcdTYzNjhcdThkNjZcdTY1OWNcdTcxNmVcdTc5M2VcdTdkMTdcdTgwMDVcdThiMWRcdThlY2FcdTkwNmVcdTg2YzdcdTkwYWFcdTUwMWZcdTUyZmFcdTVjM2FcdTY3NTNcdTcwN2NcdTcyMzVcdTkxNGNcdTkxYzhc''@;'; + put 'put ''dTkzMmJcdTgyZTVcdTViYzJcdTVmMzFcdTYwZjlcdTRlM2JcdTUzZDZcdTViODhcdTYyNGJcdTY3MzFcdTZiOGFcdTcyZTlcdTczZTBcdTdhMmVcdTgxNmJcdThkYTNcdTkxNTJcdTk5OTZcdTUxMTJcdTUzZDdcdTU0NmFcdTViZmZcdTYzODhcdTZhMzlcdTdkYWNcdTk3MDBcdTU2ZGFcdTUz''@;'; + put 'put ''Y2VcdTU0NjgiXSxbIjhmNDAiLCJcdTViOTdcdTVjMzFcdTVkZGVcdTRmZWVcdTYxMDFcdTYyZmVcdTZkMzJcdTc5YzBcdTc5Y2JcdTdkNDJcdTdlNGRcdTdmZDJcdTgxZWRcdTgyMWZcdTg0OTBcdTg4NDZcdTg5NzJcdThiOTBcdThlNzRcdThmMmZcdTkwMzFcdTkxNGJcdTkxNmNcdTk2YzZc''@;'; + put 'put ''dTkxOWNcdTRlYzBcdTRmNGZcdTUxNDVcdTUzNDFcdTVmOTNcdTYyMGVcdTY3ZDRcdTZjNDFcdTZlMGJcdTczNjNcdTdlMjZcdTkxY2RcdTkyODNcdTUzZDRcdTU5MTlcdTViYmZcdTZkZDFcdTc5NWRcdTdlMmVcdTdjOWJcdTU4N2VcdTcxOWZcdTUxZmFcdTg4NTNcdThmZjBcdTRmY2FcdTVj''@;'; + put 'put ''ZmJcdTY2MjVcdTc3YWNcdTdhZTNcdTgyMWNcdTk5ZmZcdTUxYzZcdTVmYWFcdTY1ZWNcdTY5NmZcdTZiODlcdTZkZjMiXSxbIjhmODAiLCJcdTZlOTZcdTZmNjRcdTc2ZmVcdTdkMTRcdTVkZTFcdTkwNzVcdTkxODdcdTk4MDZcdTUxZTZcdTUyMWRcdTYyNDBcdTY2OTFcdTY2ZDlcdTZlMWFc''@;'; + put 'put ''dTVlYjZcdTdkZDJcdTdmNzJcdTY2ZjhcdTg1YWZcdTg1ZjdcdThhZjhcdTUyYTlcdTUzZDlcdTU5NzNcdTVlOGZcdTVmOTBcdTYwNTVcdTkyZTRcdTk2NjRcdTUwYjdcdTUxMWZcdTUyZGRcdTUzMjBcdTUzNDdcdTUzZWNcdTU0ZThcdTU1NDZcdTU1MzFcdTU2MTdcdTU5NjhcdTU5YmVcdTVh''@;'; + put 'put ''M2NcdTViYjVcdTVjMDZcdTVjMGZcdTVjMTFcdTVjMWFcdTVlODRcdTVlOGFcdTVlZTBcdTVmNzBcdTYyN2ZcdTYyODRcdTYyZGJcdTYzOGNcdTYzNzdcdTY2MDdcdTY2MGNcdTY2MmRcdTY2NzZcdTY3N2VcdTY4YTJcdTZhMWZcdTZhMzVcdTZjYmNcdTZkODhcdTZlMDlcdTZlNThcdTcxM2Nc''@;'; + put 'put ''dTcxMjZcdTcxNjdcdTc1YzdcdTc3MDFcdTc4NWRcdTc5MDFcdTc5NjVcdTc5ZjBcdTdhZTBcdTdiMTFcdTdjYTdcdTdkMzlcdTgwOTZcdTgzZDZcdTg0OGJcdTg1NDlcdTg4NWRcdTg4ZjNcdThhMWZcdThhM2NcdThhNTRcdThhNzNcdThjNjFcdThjZGVcdTkxYTRcdTkyNjZcdTkzN2VcdTk0''@;'; + put 'put ''MThcdTk2OWNcdTk3OThcdTRlMGFcdTRlMDhcdTRlMWVcdTRlNTdcdTUxOTdcdTUyNzBcdTU3Y2VcdTU4MzRcdTU4Y2NcdTViMjJcdTVlMzhcdTYwYzVcdTY0ZmVcdTY3NjFcdTY3NTZcdTZkNDRcdTcyYjZcdTc1NzNcdTdhNjNcdTg0YjhcdThiNzJcdTkxYjhcdTkzMjBcdTU2MzFcdTU3ZjRc''@;'; + put 'put ''dTk4ZmUiXSxbIjkwNDAiLCJcdTYyZWRcdTY5MGRcdTZiOTZcdTcxZWRcdTdlNTRcdTgwNzdcdTgyNzJcdTg5ZTZcdTk4ZGZcdTg3NTVcdThmYjFcdTVjM2JcdTRmMzhcdTRmZTFcdTRmYjVcdTU1MDdcdTVhMjBcdTViZGRcdTViZTlcdTVmYzNcdTYxNGVcdTYzMmZcdTY1YjBcdTY2NGJcdTY4''@;'; + put 'put ''ZWVcdTY5OWJcdTZkNzhcdTZkZjFcdTc1MzNcdTc1YjlcdTc3MWZcdTc5NWVcdTc5ZTZcdTdkMzNcdTgxZTNcdTgyYWZcdTg1YWFcdTg5YWFcdThhM2FcdThlYWJcdThmOWJcdTkwMzJcdTkxZGRcdTk3MDdcdTRlYmFcdTRlYzFcdTUyMDNcdTU4NzVcdTU4ZWNcdTVjMGJcdTc1MWFcdTVjM2Rc''@;'; + put 'put ''dTgxNGVcdThhMGFcdThmYzVcdTk2NjNcdTk3NmRcdTdiMjVcdThhY2ZcdTk4MDhcdTkxNjJcdTU2ZjNcdTUzYTgiXSxbIjkwODAiLCJcdTkwMTdcdTU0MzlcdTU3ODJcdTVlMjVcdTYzYThcdTZjMzRcdTcwOGFcdTc3NjFcdTdjOGJcdTdmZTBcdTg4NzBcdTkwNDJcdTkxNTRcdTkzMTBcdTkz''@;'; + put 'put ''MThcdTk2OGZcdTc0NWVcdTlhYzRcdTVkMDdcdTVkNjlcdTY1NzBcdTY3YTJcdThkYThcdTk2ZGJcdTYzNmVcdTY3NDlcdTY5MTlcdTgzYzVcdTk4MTdcdTk2YzBcdTg4ZmVcdTZmODRcdTY0N2FcdTViZjhcdTRlMTZcdTcwMmNcdTc1NWRcdTY2MmZcdTUxYzRcdTUyMzZcdTUyZTJcdTU5ZDNc''@;'; + put 'put ''dTVmODFcdTYwMjdcdTYyMTBcdTY1M2ZcdTY1NzRcdTY2MWZcdTY2NzRcdTY4ZjJcdTY4MTZcdTZiNjNcdTZlMDVcdTcyNzJcdTc1MWZcdTc2ZGJcdTdjYmVcdTgwNTZcdTU4ZjBcdTg4ZmRcdTg5N2ZcdThhYTBcdThhOTNcdThhY2JcdTkwMWRcdTkxOTJcdTk3NTJcdTk3NTlcdTY1ODlcdTdh''@;'; + put 'put ''MGVcdTgxMDZcdTk2YmJcdTVlMmRcdTYwZGNcdTYyMWFcdTY1YTVcdTY2MTRcdTY3OTBcdTc3ZjNcdTdhNGRcdTdjNGRcdTdlM2VcdTgxMGFcdThjYWNcdThkNjRcdThkZTFcdThlNWZcdTc4YTlcdTUyMDdcdTYyZDlcdTYzYTVcdTY0NDJcdTYyOThcdThhMmRcdTdhODNcdTdiYzBcdThhYWNc''@;'; + put 'put ''dTk2ZWFcdTdkNzZcdTgyMGNcdTg3NDlcdTRlZDlcdTUxNDhcdTUzNDNcdTUzNjBcdTViYTNcdTVjMDJcdTVjMTZcdTVkZGRcdTYyMjZcdTYyNDdcdTY0YjBcdTY4MTNcdTY4MzRcdTZjYzlcdTZkNDVcdTZkMTdcdTY3ZDNcdTZmNWNcdTcxNGVcdTcxN2RcdTY1Y2JcdTdhN2ZcdTdiYWRcdTdk''@;'; + put 'put ''ZGEiXSxbIjkxNDAiLCJcdTdlNGFcdTdmYThcdTgxN2FcdTgyMWJcdTgyMzlcdTg1YTZcdThhNmVcdThjY2VcdThkZjVcdTkwNzhcdTkwNzdcdTkyYWRcdTkyOTFcdTk1ODNcdTliYWVcdTUyNGRcdTU1ODRcdTZmMzhcdTcxMzZcdTUxNjhcdTc5ODVcdTdlNTVcdTgxYjNcdTdjY2VcdTU2NGNc''@;'; + put 'put ''dTU4NTFcdTVjYThcdTYzYWFcdTY2ZmVcdTY2ZmRcdTY5NWFcdTcyZDlcdTc1OGZcdTc1OGVcdTc5MGVcdTc5NTZcdTc5ZGZcdTdjOTdcdTdkMjBcdTdkNDRcdTg2MDdcdThhMzRcdTk2M2JcdTkwNjFcdTlmMjBcdTUwZTdcdTUyNzVcdTUzY2NcdTUzZTJcdTUwMDlcdTU1YWFcdTU4ZWVcdTU5''@;'; + put 'put ''NGZcdTcyM2RcdTViOGJcdTVjNjRcdTUzMWRcdTYwZTNcdTYwZjNcdTYzNWNcdTYzODNcdTYzM2ZcdTYzYmIiXSxbIjkxODAiLCJcdTY0Y2RcdTY1ZTlcdTY2ZjlcdTVkZTNcdTY5Y2RcdTY5ZmRcdTZmMTVcdTcxZTVcdTRlODlcdTc1ZTlcdTc2ZjhcdTdhOTNcdTdjZGZcdTdkY2ZcdTdkOWNc''@;'; + put 'put ''dTgwNjFcdTgzNDlcdTgzNThcdTg0NmNcdTg0YmNcdTg1ZmJcdTg4YzVcdThkNzBcdTkwMDFcdTkwNmRcdTkzOTdcdTk3MWNcdTlhMTJcdTUwY2ZcdTU4OTdcdTYxOGVcdTgxZDNcdTg1MzVcdThkMDhcdTkwMjBcdTRmYzNcdTUwNzRcdTUyNDdcdTUzNzNcdTYwNmZcdTYzNDlcdTY3NWZcdTZl''@;'; + put 'put ''MmNcdThkYjNcdTkwMWZcdTRmZDdcdTVjNWVcdThjY2FcdTY1Y2ZcdTdkOWFcdTUzNTJcdTg4OTZcdTUxNzZcdTYzYzNcdTViNThcdTViNmJcdTVjMGFcdTY0MGRcdTY3NTFcdTkwNWNcdTRlZDZcdTU5MWFcdTU5MmFcdTZjNzBcdThhNTFcdTU1M2VcdTU4MTVcdTU5YTVcdTYwZjBcdTYyNTNc''@;'; + put 'put ''dTY3YzFcdTgyMzVcdTY5NTVcdTk2NDBcdTk5YzRcdTlhMjhcdTRmNTNcdTU4MDZcdTViZmVcdTgwMTBcdTVjYjFcdTVlMmZcdTVmODVcdTYwMjBcdTYxNGJcdTYyMzRcdTY2ZmZcdTZjZjBcdTZlZGVcdTgwY2VcdTgxN2ZcdTgyZDRcdTg4OGJcdThjYjhcdTkwMDBcdTkwMmVcdTk2OGFcdTll''@;'; + put 'put ''ZGJcdTliZGJcdTRlZTNcdTUzZjBcdTU5MjdcdTdiMmNcdTkxOGRcdTk4NGNcdTlkZjlcdTZlZGRcdTcwMjdcdTUzNTNcdTU1NDRcdTViODVcdTYyNThcdTYyOWVcdTYyZDNcdTZjYTJcdTZmZWZcdTc0MjJcdThhMTdcdTk0MzhcdTZmYzFcdThhZmVcdTgzMzhcdTUxZTdcdTg2ZjhcdTUzZWEi''@;'; + put 'put ''XSxbIjkyNDAiLCJcdTUzZTlcdTRmNDZcdTkwNTRcdThmYjBcdTU5NmFcdTgxMzFcdTVkZmRcdTdhZWFcdThmYmZcdTY4ZGFcdThjMzdcdTcyZjhcdTljNDhcdTZhM2RcdThhYjBcdTRlMzlcdTUzNThcdTU2MDZcdTU3NjZcdTYyYzVcdTYzYTJcdTY1ZTZcdTZiNGVcdTZkZTFcdTZlNWJcdTcw''@;'; + put 'put ''YWRcdTc3ZWRcdTdhZWZcdTdiYWFcdTdkYmJcdTgwM2RcdTgwYzZcdTg2Y2JcdThhOTVcdTkzNWJcdTU2ZTNcdTU4YzdcdTVmM2VcdTY1YWRcdTY2OTZcdTZhODBcdTZiYjVcdTc1MzdcdThhYzdcdTUwMjRcdTc3ZTVcdTU3MzBcdTVmMWJcdTYwNjVcdTY2N2FcdTZjNjBcdTc1ZjRcdTdhMWFc''@;'; + put 'put ''dTdmNmVcdTgxZjRcdTg3MThcdTkwNDVcdTk5YjNcdTdiYzlcdTc1NWNcdTdhZjlcdTdiNTFcdTg0YzQiXSxbIjkyODAiLCJcdTkwMTBcdTc5ZTlcdTdhOTJcdTgzMzZcdTVhZTFcdTc3NDBcdTRlMmRcdTRlZjJcdTViOTlcdTVmZTBcdTYyYmRcdTY2M2NcdTY3ZjFcdTZjZThcdTg2NmJcdTg4''@;'; + put 'put ''NzdcdThhM2JcdTkxNGVcdTkyZjNcdTk5ZDBcdTZhMTdcdTcwMjZcdTczMmFcdTgyZTdcdTg0NTdcdThjYWZcdTRlMDFcdTUxNDZcdTUxY2JcdTU1OGJcdTViZjVcdTVlMTZcdTVlMzNcdTVlODFcdTVmMTRcdTVmMzVcdTVmNmJcdTVmYjRcdTYxZjJcdTYzMTFcdTY2YTJcdTY3MWRcdTZmNmVc''@;'; + put 'put ''dTcyNTJcdTc1M2FcdTc3M2FcdTgwNzRcdTgxMzlcdTgxNzhcdTg3NzZcdThhYmZcdThhZGNcdThkODVcdThkZjNcdTkyOWFcdTk1NzdcdTk4MDJcdTljZTVcdTUyYzVcdTYzNTdcdTc2ZjRcdTY3MTVcdTZjODhcdTczY2RcdThjYzNcdTkzYWVcdTk2NzNcdTZkMjVcdTU4OWNcdTY5MGVcdTY5''@;'; + put 'put ''Y2NcdThmZmRcdTkzOWFcdTc1ZGJcdTkwMWFcdTU4NWFcdTY4MDJcdTYzYjRcdTY5ZmJcdTRmNDNcdTZmMmNcdTY3ZDhcdThmYmJcdTg1MjZcdTdkYjRcdTkzNTRcdTY5M2ZcdTZmNzBcdTU3NmFcdTU4ZjdcdTViMmNcdTdkMmNcdTcyMmFcdTU0MGFcdTkxZTNcdTlkYjRcdTRlYWRcdTRmNGVc''@;'; + put 'put ''dTUwNWNcdTUwNzVcdTUyNDNcdThjOWVcdTU0NDhcdTU4MjRcdTViOWFcdTVlMWRcdTVlOTVcdTVlYWRcdTVlZjdcdTVmMWZcdTYwOGNcdTYyYjVcdTYzM2FcdTYzZDBcdTY4YWZcdTZjNDBcdTc4ODdcdTc5OGVcdTdhMGJcdTdkZTBcdTgyNDdcdThhMDJcdThhZTZcdThlNDRcdTkwMTMiXSxb''@;'; + put 'put ''IjkzNDAiLCJcdTkwYjhcdTkxMmRcdTkxZDhcdTlmMGVcdTZjZTVcdTY0NThcdTY0ZTJcdTY1NzVcdTZlZjRcdTc2ODRcdTdiMWJcdTkwNjlcdTkzZDFcdTZlYmFcdTU0ZjJcdTVmYjlcdTY0YTRcdThmNGRcdThmZWRcdTkyNDRcdTUxNzhcdTU4NmJcdTU5MjlcdTVjNTVcdTVlOTdcdTZkZmJc''@;'; + put 'put ''dTdlOGZcdTc1MWNcdThjYmNcdThlZTJcdTk4NWJcdTcwYjlcdTRmMWRcdTZiYmZcdTZmYjFcdTc1MzBcdTk2ZmJcdTUxNGVcdTU0MTBcdTU4MzVcdTU4NTdcdTU5YWNcdTVjNjBcdTVmOTJcdTY1OTdcdTY3NWNcdTZlMjFcdTc2N2JcdTgzZGZcdThjZWRcdTkwMTRcdTkwZmRcdTkzNGRcdTc4''@;'; + put 'put ''MjVcdTc4M2FcdTUyYWFcdTVlYTZcdTU3MWZcdTU5NzRcdTYwMTJcdTUwMTJcdTUxNWFcdTUxYWMiXSxbIjkzODAiLCJcdTUxY2RcdTUyMDBcdTU1MTBcdTU4NTRcdTU4NThcdTU5NTdcdTViOTVcdTVjZjZcdTVkOGJcdTYwYmNcdTYyOTVcdTY0MmRcdTY3NzFcdTY4NDNcdTY4YmNcdTY4ZGZc''@;'; + put 'put ''dTc2ZDdcdTZkZDhcdTZlNmZcdTZkOWJcdTcwNmZcdTcxYzhcdTVmNTNcdTc1ZDhcdTc5NzdcdTdiNDlcdTdiNTRcdTdiNTJcdTdjZDZcdTdkNzFcdTUyMzBcdTg0NjNcdTg1NjlcdTg1ZTRcdThhMGVcdThiMDRcdThjNDZcdThlMGZcdTkwMDNcdTkwMGZcdTk0MTlcdTk2NzZcdTk4MmRcdTlh''@;'; + put 'put ''MzBcdTk1ZDhcdTUwY2RcdTUyZDVcdTU0MGNcdTU4MDJcdTVjMGVcdTYxYTdcdTY0OWVcdTZkMWVcdTc3YjNcdTdhZTVcdTgwZjRcdTg0MDRcdTkwNTNcdTkyODVcdTVjZTBcdTlkMDdcdTUzM2ZcdTVmOTdcdTVmYjNcdTZkOWNcdTcyNzlcdTc3NjNcdTc5YmZcdTdiZTRcdTZiZDJcdTcyZWNc''@;'; + put 'put ''dThhYWRcdTY4MDNcdTZhNjFcdTUxZjhcdTdhODFcdTY5MzRcdTVjNGFcdTljZjZcdTgyZWJcdTViYzVcdTkxNDlcdTcwMWVcdTU2NzhcdTVjNmZcdTYwYzdcdTY1NjZcdTZjOGNcdThjNWFcdTkwNDFcdTk4MTNcdTU0NTFcdTY2YzdcdTkyMGRcdTU5NDhcdTkwYTNcdTUxODVcdTRlNGRcdTUx''@;'; + put 'put ''ZWFcdTg1OTlcdThiMGVcdTcwNThcdTYzN2FcdTkzNGJcdTY5NjJcdTk5YjRcdTdlMDRcdTc1NzdcdTUzNTdcdTY5NjBcdThlZGZcdTk2ZTNcdTZjNWRcdTRlOGNcdTVjM2NcdTVmMTBcdThmZTlcdTUzMDJcdThjZDFcdTgwODlcdTg2NzlcdTVlZmZcdTY1ZTVcdTRlNzNcdTUxNjUiXSxbIjk0''@;'; + put 'put ''NDAiLCJcdTU5ODJcdTVjM2ZcdTk3ZWVcdTRlZmJcdTU5OGFcdTVmY2RcdThhOGRcdTZmZTFcdTc5YjBcdTc5NjJcdTViZTdcdTg0NzFcdTczMmJcdTcxYjFcdTVlNzRcdTVmZjVcdTYzN2JcdTY0OWFcdTcxYzNcdTdjOThcdTRlNDNcdTVlZmNcdTRlNGJcdTU3ZGNcdTU2YTJcdTYwYTlcdTZm''@;'; + put 'put ''YzNcdTdkMGRcdTgwZmRcdTgxMzNcdTgxYmZcdThmYjJcdTg5OTdcdTg2YTRcdTVkZjRcdTYyOGFcdTY0YWRcdTg5ODdcdTY3NzdcdTZjZTJcdTZkM2VcdTc0MzZcdTc4MzRcdTVhNDZcdTdmNzVcdTgyYWRcdTk5YWNcdTRmZjNcdTVlYzNcdTYyZGRcdTYzOTJcdTY1NTdcdTY3NmZcdTc2YzNc''@;'; + put 'put ''dTcyNGNcdTgwY2NcdTgwYmFcdThmMjlcdTkxNGRcdTUwMGRcdTU3ZjlcdTVhOTJcdTY4ODUiXSxbIjk0ODAiLCJcdTY5NzNcdTcxNjRcdTcyZmRcdThjYjdcdTU4ZjJcdThjZTBcdTk2NmFcdTkwMTlcdTg3N2ZcdTc5ZTRcdTc3ZTdcdTg0MjlcdTRmMmZcdTUyNjVcdTUzNWFcdTYyY2RcdTY3''@;'; + put 'put ''Y2ZcdTZjY2FcdTc2N2RcdTdiOTRcdTdjOTVcdTgyMzZcdTg1ODRcdThmZWJcdTY2ZGRcdTZmMjBcdTcyMDZcdTdlMWJcdTgzYWJcdTk5YzFcdTllYTZcdTUxZmRcdTdiYjFcdTc4NzJcdTdiYjhcdTgwODdcdTdiNDhcdTZhZThcdTVlNjFcdTgwOGNcdTc1NTFcdTc1NjBcdTUxNmJcdTkyNjJc''@;'; + put 'put ''dTZlOGNcdTc2N2FcdTkxOTdcdTlhZWFcdTRmMTBcdTdmNzBcdTYyOWNcdTdiNGZcdTk1YTVcdTljZTlcdTU2N2FcdTU4NTlcdTg2ZTRcdTk2YmNcdTRmMzRcdTUyMjRcdTUzNGFcdTUzY2RcdTUzZGJcdTVlMDZcdTY0MmNcdTY1OTFcdTY3N2ZcdTZjM2VcdTZjNGVcdTcyNDhcdTcyYWZcdTcz''@;'; + put 'put ''ZWRcdTc1NTRcdTdlNDFcdTgyMmNcdTg1ZTlcdThjYTlcdTdiYzRcdTkxYzZcdTcxNjlcdTk4MTJcdTk4ZWZcdTYzM2RcdTY2NjlcdTc1NmFcdTc2ZTRcdTc4ZDBcdTg1NDNcdTg2ZWVcdTUzMmFcdTUzNTFcdTU0MjZcdTU5ODNcdTVlODdcdTVmN2NcdTYwYjJcdTYyNDlcdTYyNzlcdTYyYWJc''@;'; + put 'put ''dTY1OTBcdTZiZDRcdTZjY2NcdTc1YjJcdTc2YWVcdTc4OTFcdTc5ZDhcdTdkY2JcdTdmNzdcdTgwYTVcdTg4YWJcdThhYjlcdThjYmJcdTkwN2ZcdTk3NWVcdTk4ZGJcdTZhMGJcdTdjMzhcdTUwOTlcdTVjM2VcdTVmYWVcdTY3ODdcdTZiZDhcdTc0MzVcdTc3MDlcdTdmOGUiXSxbIjk1NDAi''@;'; + put 'put ''LCJcdTlmM2JcdTY3Y2FcdTdhMTdcdTUzMzlcdTc1OGJcdTlhZWRcdTVmNjZcdTgxOWRcdTgzZjFcdTgwOThcdTVmM2NcdTVmYzVcdTc1NjJcdTdiNDZcdTkwM2NcdTY4NjdcdTU5ZWJcdTVhOWJcdTdkMTBcdTc2N2VcdThiMmNcdTRmZjVcdTVmNmFcdTZhMTlcdTZjMzdcdTZmMDJcdTc0ZTJc''@;'; + put 'put ''dTc5NjhcdTg4NjhcdThhNTVcdThjNzlcdTVlZGZcdTYzY2ZcdTc1YzVcdTc5ZDJcdTgyZDdcdTkzMjhcdTkyZjJcdTg0OWNcdTg2ZWRcdTljMmRcdTU0YzFcdTVmNmNcdTY1OGNcdTZkNWNcdTcwMTVcdThjYTdcdThjZDNcdTk4M2JcdTY1NGZcdTc0ZjZcdTRlMGRcdTRlZDhcdTU3ZTBcdTU5''@;'; + put 'put ''MmJcdTVhNjZcdTViY2NcdTUxYThcdTVlMDNcdTVlOWNcdTYwMTZcdTYyNzZcdTY1NzciXSxbIjk1ODAiLCJcdTY1YTdcdTY2NmVcdTZkNmVcdTcyMzZcdTdiMjZcdTgxNTBcdTgxOWFcdTgyOTlcdThiNWNcdThjYTBcdThjZTZcdThkNzRcdTk2MWNcdTk2NDRcdTRmYWVcdTY0YWJcdTZiNjZc''@;'; + put 'put ''dTgyMWVcdTg0NjFcdTg1NmFcdTkwZThcdTVjMDFcdTY5NTNcdTk4YThcdTg0N2FcdTg1NTdcdTRmMGZcdTUyNmZcdTVmYTlcdTVlNDVcdTY3MGRcdTc5OGZcdTgxNzlcdTg5MDdcdTg5ODZcdTZkZjVcdTVmMTdcdTYyNTVcdTZjYjhcdTRlY2ZcdTcyNjlcdTliOTJcdTUyMDZcdTU0M2JcdTU2''@;'; + put 'put ''NzRcdTU4YjNcdTYxYTRcdTYyNmVcdTcxMWFcdTU5NmVcdTdjODlcdTdjZGVcdTdkMWJcdTk2ZjBcdTY1ODdcdTgwNWVcdTRlMTlcdTRmNzVcdTUxNzVcdTU4NDBcdTVlNjNcdTVlNzNcdTVmMGFcdTY3YzRcdTRlMjZcdTg1M2RcdTk1ODlcdTk2NWJcdTdjNzNcdTk4MDFcdTUwZmJcdTU4YzFc''@;'; + put 'put ''dTc2NTZcdTc4YTdcdTUyMjVcdTc3YTVcdTg1MTFcdTdiODZcdTUwNGZcdTU5MDlcdTcyNDdcdTdiYzdcdTdkZThcdThmYmFcdThmZDRcdTkwNGRcdTRmYmZcdTUyYzlcdTVhMjlcdTVmMDFcdTk3YWRcdTRmZGRcdTgyMTdcdTkyZWFcdTU3MDNcdTYzNTVcdTZiNjlcdTc1MmJcdTg4ZGNcdThm''@;'; + put 'put ''MTRcdTdhNDJcdTUyZGZcdTU4OTNcdTYxNTVcdTYyMGFcdTY2YWVcdTZiY2RcdTdjM2ZcdTgzZTlcdTUwMjNcdTRmZjhcdTUzMDVcdTU0NDZcdTU4MzFcdTU5NDlcdTViOWRcdTVjZjBcdTVjZWZcdTVkMjlcdTVlOTZcdTYyYjFcdTYzNjdcdTY1M2VcdTY1YjlcdTY3MGIiXSxbIjk2NDAiLCJc''@;'; + put 'put ''dTZjZDVcdTZjZTFcdTcwZjlcdTc4MzJcdTdlMmJcdTgwZGVcdTgyYjNcdTg0MGNcdTg0ZWNcdTg3MDJcdTg5MTJcdThhMmFcdThjNGFcdTkwYTZcdTkyZDJcdTk4ZmRcdTljZjNcdTlkNmNcdTRlNGZcdTRlYTFcdTUwOGRcdTUyNTZcdTU3NGFcdTU5YThcdTVlM2RcdTVmZDhcdTVmZDlcdTYy''@;'; + put 'put ''M2ZcdTY2YjRcdTY3MWJcdTY3ZDBcdTY4ZDJcdTUxOTJcdTdkMjFcdTgwYWFcdTgxYThcdThiMDBcdThjOGNcdThjYmZcdTkyN2VcdTk2MzJcdTU0MjBcdTk4MmNcdTUzMTdcdTUwZDVcdTUzNWNcdTU4YThcdTY0YjJcdTY3MzRcdTcyNjdcdTc3NjZcdTdhNDZcdTkxZTZcdTUyYzNcdTZjYTFc''@;'; + put 'put ''dTZiODZcdTU4MDBcdTVlNGNcdTU5NTRcdTY3MmNcdTdmZmJcdTUxZTFcdTc2YzYiXSxbIjk2ODAiLCJcdTY0NjlcdTc4ZThcdTliNTRcdTllYmJcdTU3Y2JcdTU5YjlcdTY2MjdcdTY3OWFcdTZiY2VcdTU0ZTlcdTY5ZDlcdTVlNTVcdTgxOWNcdTY3OTVcdTliYWFcdTY3ZmVcdTljNTJcdTY4''@;'; + put 'put ''NWRcdTRlYTZcdTRmZTNcdTUzYzhcdTYyYjlcdTY3MmJcdTZjYWJcdThmYzRcdTRmYWRcdTdlNmRcdTllYmZcdTRlMDdcdTYxNjJcdTZlODBcdTZmMmJcdTg1MTNcdTU0NzNcdTY3MmFcdTliNDVcdTVkZjNcdTdiOTVcdTVjYWNcdTViYzZcdTg3MWNcdTZlNGFcdTg0ZDFcdTdhMTRcdTgxMDhc''@;'; + put 'put ''dTU5OTlcdTdjOGRcdTZjMTFcdTc3MjBcdTUyZDlcdTU5MjJcdTcxMjFcdTcyNWZcdTc3ZGJcdTk3MjdcdTlkNjFcdTY5MGJcdTVhN2ZcdTVhMThcdTUxYTVcdTU0MGRcdTU0N2RcdTY2MGVcdTc2ZGZcdThmZjdcdTkyOThcdTljZjRcdTU5ZWFcdTcyNWRcdTZlYzVcdTUxNGRcdTY4YzlcdTdk''@;'; + put 'put ''YmZcdTdkZWNcdTk3NjJcdTllYmFcdTY0NzhcdTZhMjFcdTgzMDJcdTU5ODRcdTViNWZcdTZiZGJcdTczMWJcdTc2ZjJcdTdkYjJcdTgwMTdcdTg0OTlcdTUxMzJcdTY3MjhcdTllZDlcdTc2ZWVcdTY3NjJcdTUyZmZcdTk5MDVcdTVjMjRcdTYyM2JcdTdjN2VcdThjYjBcdTU1NGZcdTYwYjZc''@;'; + put 'put ''dTdkMGJcdTk1ODBcdTUzMDFcdTRlNWZcdTUxYjZcdTU5MWNcdTcyM2FcdTgwMzZcdTkxY2VcdTVmMjVcdTc3ZTJcdTUzODRcdTVmNzlcdTdkMDRcdTg1YWNcdThhMzNcdThlOGRcdTk3NTZcdTY3ZjNcdTg1YWVcdTk0NTNcdTYxMDlcdTYxMDhcdTZjYjlcdTc2NTIiXSxbIjk3NDAiLCJcdThh''@;'; + put 'put ''ZWRcdThmMzhcdTU1MmZcdTRmNTFcdTUxMmFcdTUyYzdcdTUzY2JcdTViYTVcdTVlN2RcdTYwYTBcdTYxODJcdTYzZDZcdTY3MDlcdTY3ZGFcdTZlNjdcdTZkOGNcdTczMzZcdTczMzdcdTc1MzFcdTc5NTBcdTg4ZDVcdThhOThcdTkwNGFcdTkwOTFcdTkwZjVcdTk2YzRcdTg3OGRcdTU5MTVc''@;'; + put 'put ''dTRlODhcdTRmNTlcdTRlMGVcdThhODlcdThmM2ZcdTk4MTBcdTUwYWRcdTVlN2NcdTU5OTZcdTViYjlcdTVlYjhcdTYzZGFcdTYzZmFcdTY0YzFcdTY2ZGNcdTY5NGFcdTY5ZDhcdTZkMGJcdTZlYjZcdTcxOTRcdTc1MjhcdTdhYWZcdTdmOGFcdTgwMDBcdTg0NDlcdTg0YzlcdTg5ODFcdThi''@;'; + put 'put ''MjFcdThlMGFcdTkwNjVcdTk2N2RcdTk5MGFcdTYxN2VcdTYyOTFcdTZiMzIiXSxbIjk3ODAiLCJcdTZjODNcdTZkNzRcdTdmY2NcdTdmZmNcdTZkYzBcdTdmODVcdTg3YmFcdTg4ZjhcdTY3NjVcdTgzYjFcdTk4M2NcdTk2ZjdcdTZkMWJcdTdkNjFcdTg0M2RcdTkxNmFcdTRlNzFcdTUzNzVc''@;'; + put 'put ''dTVkNTBcdTZiMDRcdTZmZWJcdTg1Y2RcdTg2MmRcdTg5YTdcdTUyMjlcdTU0MGZcdTVjNjVcdTY3NGVcdTY4YThcdTc0MDZcdTc0ODNcdTc1ZTJcdTg4Y2ZcdTg4ZTFcdTkxY2NcdTk2ZTJcdTk2NzhcdTVmOGJcdTczODdcdTdhY2JcdTg0NGVcdTYzYTBcdTc1NjVcdTUyODlcdTZkNDFcdTZl''@;'; + put 'put ''OWNcdTc0MDlcdTc1NTlcdTc4NmJcdTdjOTJcdTk2ODZcdTdhZGNcdTlmOGRcdTRmYjZcdTYxNmVcdTY1YzVcdTg2NWNcdTRlODZcdTRlYWVcdTUwZGFcdTRlMjFcdTUxY2NcdTViZWVcdTY1OTlcdTY4ODFcdTZkYmNcdTczMWZcdTc2NDJcdTc3YWRcdTdhMWNcdTdjZTdcdTgyNmZcdThhZDJc''@;'; + put 'put ''dTkwN2NcdTkxY2ZcdTk2NzVcdTk4MThcdTUyOWJcdTdkZDFcdTUwMmJcdTUzOThcdTY3OTdcdTZkY2JcdTcxZDBcdTc0MzNcdTgxZThcdThmMmFcdTk2YTNcdTljNTdcdTllOWZcdTc0NjBcdTU4NDFcdTZkOTlcdTdkMmZcdTk4NWVcdTRlZTRcdTRmMzZcdTRmOGJcdTUxYjdcdTUyYjFcdTVk''@;'; + put 'put ''YmFcdTYwMWNcdTczYjJcdTc5M2NcdTgyZDNcdTkyMzRcdTk2YjdcdTk2ZjZcdTk3MGFcdTllOTdcdTlmNjJcdTY2YTZcdTZiNzRcdTUyMTdcdTUyYTNcdTcwYzhcdTg4YzJcdTVlYzlcdTYwNGJcdTYxOTBcdTZmMjNcdTcxNDlcdTdjM2VcdTdkZjRcdTgwNmYiXSxbIjk4NDAiLCJcdTg0ZWVc''@;'; + put 'put ''dTkwMjNcdTkzMmNcdTU0NDJcdTliNmZcdTZhZDNcdTcwODlcdThjYzJcdThkZWZcdTk3MzJcdTUyYjRcdTVhNDFcdTVlY2FcdTVmMDRcdTY3MTdcdTY5N2NcdTY5OTRcdTZkNmFcdTZmMGZcdTcyNjJcdTcyZmNcdTdiZWRcdTgwMDFcdTgwN2VcdTg3NGJcdTkwY2VcdTUxNmRcdTllOTNcdTc5''@;'; + put 'put ''ODRcdTgwOGJcdTkzMzJcdThhZDZcdTUwMmRcdTU0OGNcdThhNzFcdTZiNmFcdThjYzRcdTgxMDdcdTYwZDFcdTY3YTBcdTlkZjJcdTRlOTlcdTRlOThcdTljMTBcdThhNmJcdTg1YzFcdTg1NjhcdTY5MDBcdTZlN2VcdTc4OTdcdTgxNTUiXSxbIjk4OWYiLCJcdTVmMGNcdTRlMTBcdTRlMTVc''@;'; + put 'put ''dTRlMmFcdTRlMzFcdTRlMzZcdTRlM2NcdTRlM2ZcdTRlNDJcdTRlNTZcdTRlNThcdTRlODJcdTRlODVcdThjNmJcdTRlOGFcdTgyMTJcdTVmMGRcdTRlOGVcdTRlOWVcdTRlOWZcdTRlYTBcdTRlYTJcdTRlYjBcdTRlYjNcdTRlYjZcdTRlY2VcdTRlY2RcdTRlYzRcdTRlYzZcdTRlYzJcdTRl''@;'; + put 'put ''ZDdcdTRlZGVcdTRlZWRcdTRlZGZcdTRlZjdcdTRmMDlcdTRmNWFcdTRmMzBcdTRmNWJcdTRmNWRcdTRmNTdcdTRmNDdcdTRmNzZcdTRmODhcdTRmOGZcdTRmOThcdTRmN2JcdTRmNjlcdTRmNzBcdTRmOTFcdTRmNmZcdTRmODZcdTRmOTZcdTUxMThcdTRmZDRcdTRmZGZcdTRmY2VcdTRmZDhc''@;'; + put 'put ''dTRmZGJcdTRmZDFcdTRmZGFcdTRmZDBcdTRmZTRcdTRmZTVcdTUwMWFcdTUwMjhcdTUwMTRcdTUwMmFcdTUwMjVcdTUwMDVcdTRmMWNcdTRmZjZcdTUwMjFcdTUwMjlcdTUwMmNcdTRmZmVcdTRmZWZcdTUwMTFcdTUwMDZcdTUwNDNcdTUwNDdcdTY3MDNcdTUwNTVcdTUwNTBcdTUwNDhcdTUw''@;'; + put 'put ''NWFcdTUwNTZcdTUwNmNcdTUwNzhcdTUwODBcdTUwOWFcdTUwODVcdTUwYjRcdTUwYjIiXSxbIjk5NDAiLCJcdTUwYzlcdTUwY2FcdTUwYjNcdTUwYzJcdTUwZDZcdTUwZGVcdTUwZTVcdTUwZWRcdTUwZTNcdTUwZWVcdTUwZjlcdTUwZjVcdTUxMDlcdTUxMDFcdTUxMDJcdTUxMTZcdTUxMTVc''@;'; + put 'put ''dTUxMTRcdTUxMWFcdTUxMjFcdTUxM2FcdTUxMzdcdTUxM2NcdTUxM2JcdTUxM2ZcdTUxNDBcdTUxNTJcdTUxNGNcdTUxNTRcdTUxNjJcdTdhZjhcdTUxNjlcdTUxNmFcdTUxNmVcdTUxODBcdTUxODJcdTU2ZDhcdTUxOGNcdTUxODlcdTUxOGZcdTUxOTFcdTUxOTNcdTUxOTVcdTUxOTZcdTUx''@;'; + put 'put ''YTRcdTUxYTZcdTUxYTJcdTUxYTlcdTUxYWFcdTUxYWJcdTUxYjNcdTUxYjFcdTUxYjJcdTUxYjBcdTUxYjVcdTUxYmRcdTUxYzVcdTUxYzlcdTUxZGJcdTUxZTBcdTg2NTVcdTUxZTlcdTUxZWQiXSxbIjk5ODAiLCJcdTUxZjBcdTUxZjVcdTUxZmVcdTUyMDRcdTUyMGJcdTUyMTRcdTUyMGVc''@;'; + put 'put ''dTUyMjdcdTUyMmFcdTUyMmVcdTUyMzNcdTUyMzlcdTUyNGZcdTUyNDRcdTUyNGJcdTUyNGNcdTUyNWVcdTUyNTRcdTUyNmFcdTUyNzRcdTUyNjlcdTUyNzNcdTUyN2ZcdTUyN2RcdTUyOGRcdTUyOTRcdTUyOTJcdTUyNzFcdTUyODhcdTUyOTFcdThmYThcdThmYTdcdTUyYWNcdTUyYWRcdTUy''@;'; + put 'put ''YmNcdTUyYjVcdTUyYzFcdTUyY2RcdTUyZDdcdTUyZGVcdTUyZTNcdTUyZTZcdTk4ZWRcdTUyZTBcdTUyZjNcdTUyZjVcdTUyZjhcdTUyZjlcdTUzMDZcdTUzMDhcdTc1MzhcdTUzMGRcdTUzMTBcdTUzMGZcdTUzMTVcdTUzMWFcdTUzMjNcdTUzMmZcdTUzMzFcdTUzMzNcdTUzMzhcdTUzNDBc''@;'; + put 'put ''dTUzNDZcdTUzNDVcdTRlMTdcdTUzNDlcdTUzNGRcdTUxZDZcdTUzNWVcdTUzNjlcdTUzNmVcdTU5MThcdTUzN2JcdTUzNzdcdTUzODJcdTUzOTZcdTUzYTBcdTUzYTZcdTUzYTVcdTUzYWVcdTUzYjBcdTUzYjZcdTUzYzNcdTdjMTJcdTk2ZDlcdTUzZGZcdTY2ZmNcdTcxZWVcdTUzZWVcdTUz''@;'; + put 'put ''ZThcdTUzZWRcdTUzZmFcdTU0MDFcdTU0M2RcdTU0NDBcdTU0MmNcdTU0MmRcdTU0M2NcdTU0MmVcdTU0MzZcdTU0MjlcdTU0MWRcdTU0NGVcdTU0OGZcdTU0NzVcdTU0OGVcdTU0NWZcdTU0NzFcdTU0NzdcdTU0NzBcdTU0OTJcdTU0N2JcdTU0ODBcdTU0NzZcdTU0ODRcdTU0OTBcdTU0ODZc''@;'; + put 'put ''dTU0YzdcdTU0YTJcdTU0YjhcdTU0YTVcdTU0YWNcdTU0YzRcdTU0YzhcdTU0YTgiXSxbIjlhNDAiLCJcdTU0YWJcdTU0YzJcdTU0YTRcdTU0YmVcdTU0YmNcdTU0ZDhcdTU0ZTVcdTU0ZTZcdTU1MGZcdTU1MTRcdTU0ZmRcdTU0ZWVcdTU0ZWRcdTU0ZmFcdTU0ZTJcdTU1MzlcdTU1NDBcdTU1''@;'; + put 'put ''NjNcdTU1NGNcdTU1MmVcdTU1NWNcdTU1NDVcdTU1NTZcdTU1NTdcdTU1MzhcdTU1MzNcdTU1NWRcdTU1OTlcdTU1ODBcdTU0YWZcdTU1OGFcdTU1OWZcdTU1N2JcdTU1N2VcdTU1OThcdTU1OWVcdTU1YWVcdTU1N2NcdTU1ODNcdTU1YTlcdTU1ODdcdTU1YThcdTU1ZGFcdTU1YzVcdTU1ZGZc''@;'; + put 'put ''dTU1YzRcdTU1ZGNcdTU1ZTRcdTU1ZDRcdTU2MTRcdTU1ZjdcdTU2MTZcdTU1ZmVcdTU1ZmRcdTU2MWJcdTU1ZjlcdTU2NGVcdTU2NTBcdTcxZGZcdTU2MzRcdTU2MzZcdTU2MzJcdTU2MzgiXSxbIjlhODAiLCJcdTU2NmJcdTU2NjRcdTU2MmZcdTU2NmNcdTU2NmFcdTU2ODZcdTU2ODBcdTU2''@;'; + put 'put ''OGFcdTU2YTBcdTU2OTRcdTU2OGZcdTU2YTVcdTU2YWVcdTU2YjZcdTU2YjRcdTU2YzJcdTU2YmNcdTU2YzFcdTU2YzNcdTU2YzBcdTU2YzhcdTU2Y2VcdTU2ZDFcdTU2ZDNcdTU2ZDdcdTU2ZWVcdTU2ZjlcdTU3MDBcdTU2ZmZcdTU3MDRcdTU3MDlcdTU3MDhcdTU3MGJcdTU3MGRcdTU3MTNc''@;'; + put 'put ''dTU3MThcdTU3MTZcdTU1YzdcdTU3MWNcdTU3MjZcdTU3MzdcdTU3MzhcdTU3NGVcdTU3M2JcdTU3NDBcdTU3NGZcdTU3NjlcdTU3YzBcdTU3ODhcdTU3NjFcdTU3N2ZcdTU3ODlcdTU3OTNcdTU3YTBcdTU3YjNcdTU3YTRcdTU3YWFcdTU3YjBcdTU3YzNcdTU3YzZcdTU3ZDRcdTU3ZDJcdTU3''@;'; + put 'put ''ZDNcdTU4MGFcdTU3ZDZcdTU3ZTNcdTU4MGJcdTU4MTlcdTU4MWRcdTU4NzJcdTU4MjFcdTU4NjJcdTU4NGJcdTU4NzBcdTZiYzBcdTU4NTJcdTU4M2RcdTU4NzlcdTU4ODVcdTU4YjlcdTU4OWZcdTU4YWJcdTU4YmFcdTU4ZGVcdTU4YmJcdTU4YjhcdTU4YWVcdTU4YzVcdTU4ZDNcdTU4ZDFc''@;'; + put 'put ''dTU4ZDdcdTU4ZDlcdTU4ZDhcdTU4ZTVcdTU4ZGNcdTU4ZTRcdTU4ZGZcdTU4ZWZcdTU4ZmFcdTU4ZjlcdTU4ZmJcdTU4ZmNcdTU4ZmRcdTU5MDJcdTU5MGFcdTU5MTBcdTU5MWJcdTY4YTZcdTU5MjVcdTU5MmNcdTU5MmRcdTU5MzJcdTU5MzhcdTU5M2VcdTdhZDJcdTU5NTVcdTU5NTBcdTU5''@;'; + put 'put ''NGVcdTU5NWFcdTU5NThcdTU5NjJcdTU5NjBcdTU5NjdcdTU5NmNcdTU5NjkiXSxbIjliNDAiLCJcdTU5NzhcdTU5ODFcdTU5OWRcdTRmNWVcdTRmYWJcdTU5YTNcdTU5YjJcdTU5YzZcdTU5ZThcdTU5ZGNcdTU5OGRcdTU5ZDlcdTU5ZGFcdTVhMjVcdTVhMWZcdTVhMTFcdTVhMWNcdTVhMDlc''@;'; + put 'put ''dTVhMWFcdTVhNDBcdTVhNmNcdTVhNDlcdTVhMzVcdTVhMzZcdTVhNjJcdTVhNmFcdTVhOWFcdTVhYmNcdTVhYmVcdTVhY2JcdTVhYzJcdTVhYmRcdTVhZTNcdTVhZDdcdTVhZTZcdTVhZTlcdTVhZDZcdTVhZmFcdTVhZmJcdTViMGNcdTViMGJcdTViMTZcdTViMzJcdTVhZDBcdTViMmFcdTVi''@;'; + put 'put ''MzZcdTViM2VcdTViNDNcdTViNDVcdTViNDBcdTViNTFcdTViNTVcdTViNWFcdTViNWJcdTViNjVcdTViNjlcdTViNzBcdTViNzNcdTViNzVcdTViNzhcdTY1ODhcdTViN2FcdTViODAiXSxbIjliODAiLCJcdTViODNcdTViYTZcdTViYjhcdTViYzNcdTViYzdcdTViYzlcdTViZDRcdTViZDBc''@;'; + put 'put ''dTViZTRcdTViZTZcdTViZTJcdTViZGVcdTViZTVcdTViZWJcdTViZjBcdTViZjZcdTViZjNcdTVjMDVcdTVjMDdcdTVjMDhcdTVjMGRcdTVjMTNcdTVjMjBcdTVjMjJcdTVjMjhcdTVjMzhcdTVjMzlcdTVjNDFcdTVjNDZcdTVjNGVcdTVjNTNcdTVjNTBcdTVjNGZcdTViNzFcdTVjNmNcdTVj''@;'; + put 'put ''NmVcdTRlNjJcdTVjNzZcdTVjNzlcdTVjOGNcdTVjOTFcdTVjOTRcdTU5OWJcdTVjYWJcdTVjYmJcdTVjYjZcdTVjYmNcdTVjYjdcdTVjYzVcdTVjYmVcdTVjYzdcdTVjZDlcdTVjZTlcdTVjZmRcdTVjZmFcdTVjZWRcdTVkOGNcdTVjZWFcdTVkMGJcdTVkMTVcdTVkMTdcdTVkNWNcdTVkMWZc''@;'; + put 'put ''dTVkMWJcdTVkMTFcdTVkMTRcdTVkMjJcdTVkMWFcdTVkMTlcdTVkMThcdTVkNGNcdTVkNTJcdTVkNGVcdTVkNGJcdTVkNmNcdTVkNzNcdTVkNzZcdTVkODdcdTVkODRcdTVkODJcdTVkYTJcdTVkOWRcdTVkYWNcdTVkYWVcdTVkYmRcdTVkOTBcdTVkYjdcdTVkYmNcdTVkYzlcdTVkY2RcdTVk''@;'; + put 'put ''ZDNcdTVkZDJcdTVkZDZcdTVkZGJcdTVkZWJcdTVkZjJcdTVkZjVcdTVlMGJcdTVlMWFcdTVlMTlcdTVlMTFcdTVlMWJcdTVlMzZcdTVlMzdcdTVlNDRcdTVlNDNcdTVlNDBcdTVlNGVcdTVlNTdcdTVlNTRcdTVlNWZcdTVlNjJcdTVlNjRcdTVlNDdcdTVlNzVcdTVlNzZcdTVlN2FcdTllYmNc''@;'; + put 'put ''dTVlN2ZcdTVlYTBcdTVlYzFcdTVlYzJcdTVlYzhcdTVlZDBcdTVlY2YiXSxbIjljNDAiLCJcdTVlZDZcdTVlZTNcdTVlZGRcdTVlZGFcdTVlZGJcdTVlZTJcdTVlZTFcdTVlZThcdTVlZTlcdTVlZWNcdTVlZjFcdTVlZjNcdTVlZjBcdTVlZjRcdTVlZjhcdTVlZmVcdTVmMDNcdTVmMDlcdTVm''@;'; + put 'put ''NWRcdTVmNWNcdTVmMGJcdTVmMTFcdTVmMTZcdTVmMjlcdTVmMmRcdTVmMzhcdTVmNDFcdTVmNDhcdTVmNGNcdTVmNGVcdTVmMmZcdTVmNTFcdTVmNTZcdTVmNTdcdTVmNTlcdTVmNjFcdTVmNmRcdTVmNzNcdTVmNzdcdTVmODNcdTVmODJcdTVmN2ZcdTVmOGFcdTVmODhcdTVmOTFcdTVmODdc''@;'; + put 'put ''dTVmOWVcdTVmOTlcdTVmOThcdTVmYTBcdTVmYThcdTVmYWRcdTVmYmNcdTVmZDZcdTVmZmJcdTVmZTRcdTVmZjhcdTVmZjFcdTVmZGRcdTYwYjNcdTVmZmZcdTYwMjFcdTYwNjAiXSxbIjljODAiLCJcdTYwMTlcdTYwMTBcdTYwMjlcdTYwMGVcdTYwMzFcdTYwMWJcdTYwMTVcdTYwMmJcdTYw''@;'; + put 'put ''MjZcdTYwMGZcdTYwM2FcdTYwNWFcdTYwNDFcdTYwNmFcdTYwNzdcdTYwNWZcdTYwNGFcdTYwNDZcdTYwNGRcdTYwNjNcdTYwNDNcdTYwNjRcdTYwNDJcdTYwNmNcdTYwNmJcdTYwNTlcdTYwODFcdTYwOGRcdTYwZTdcdTYwODNcdTYwOWFcdTYwODRcdTYwOWJcdTYwOTZcdTYwOTdcdTYwOTJc''@;'; + put 'put ''dTYwYTdcdTYwOGJcdTYwZTFcdTYwYjhcdTYwZTBcdTYwZDNcdTYwYjRcdTVmZjBcdTYwYmRcdTYwYzZcdTYwYjVcdTYwZDhcdTYxNGRcdTYxMTVcdTYxMDZcdTYwZjZcdTYwZjdcdTYxMDBcdTYwZjRcdTYwZmFcdTYxMDNcdTYxMjFcdTYwZmJcdTYwZjFcdTYxMGRcdTYxMGVcdTYxNDdcdTYx''@;'; + put 'put ''M2VcdTYxMjhcdTYxMjdcdTYxNGFcdTYxM2ZcdTYxM2NcdTYxMmNcdTYxMzRcdTYxM2RcdTYxNDJcdTYxNDRcdTYxNzNcdTYxNzdcdTYxNThcdTYxNTlcdTYxNWFcdTYxNmJcdTYxNzRcdTYxNmZcdTYxNjVcdTYxNzFcdTYxNWZcdTYxNWRcdTYxNTNcdTYxNzVcdTYxOTlcdTYxOTZcdTYxODdc''@;'; + put 'put ''dTYxYWNcdTYxOTRcdTYxOWFcdTYxOGFcdTYxOTFcdTYxYWJcdTYxYWVcdTYxY2NcdTYxY2FcdTYxYzlcdTYxZjdcdTYxYzhcdTYxYzNcdTYxYzZcdTYxYmFcdTYxY2JcdTdmNzlcdTYxY2RcdTYxZTZcdTYxZTNcdTYxZjZcdTYxZmFcdTYxZjRcdTYxZmZcdTYxZmRcdTYxZmNcdTYxZmVcdTYy''@;'; + put 'put ''MDBcdTYyMDhcdTYyMDlcdTYyMGRcdTYyMGNcdTYyMTRcdTYyMWIiXSxbIjlkNDAiLCJcdTYyMWVcdTYyMjFcdTYyMmFcdTYyMmVcdTYyMzBcdTYyMzJcdTYyMzNcdTYyNDFcdTYyNGVcdTYyNWVcdTYyNjNcdTYyNWJcdTYyNjBcdTYyNjhcdTYyN2NcdTYyODJcdTYyODlcdTYyN2VcdTYyOTJc''@;'; + put 'put ''dTYyOTNcdTYyOTZcdTYyZDRcdTYyODNcdTYyOTRcdTYyZDdcdTYyZDFcdTYyYmJcdTYyY2ZcdTYyZmZcdTYyYzZcdTY0ZDRcdTYyYzhcdTYyZGNcdTYyY2NcdTYyY2FcdTYyYzJcdTYyYzdcdTYyOWJcdTYyYzlcdTYzMGNcdTYyZWVcdTYyZjFcdTYzMjdcdTYzMDJcdTYzMDhcdTYyZWZcdTYy''@;'; + put 'put ''ZjVcdTYzNTBcdTYzM2VcdTYzNGRcdTY0MWNcdTYzNGZcdTYzOTZcdTYzOGVcdTYzODBcdTYzYWJcdTYzNzZcdTYzYTNcdTYzOGZcdTYzODlcdTYzOWZcdTYzYjVcdTYzNmIiXSxbIjlkODAiLCJcdTYzNjlcdTYzYmVcdTYzZTlcdTYzYzBcdTYzYzZcdTYzZTNcdTYzYzlcdTYzZDJcdTYzZjZc''@;'; + put 'put ''dTYzYzRcdTY0MTZcdTY0MzRcdTY0MDZcdTY0MTNcdTY0MjZcdTY0MzZcdTY1MWRcdTY0MTdcdTY0MjhcdTY0MGZcdTY0NjdcdTY0NmZcdTY0NzZcdTY0NGVcdTY1MmFcdTY0OTVcdTY0OTNcdTY0YTVcdTY0YTlcdTY0ODhcdTY0YmNcdTY0ZGFcdTY0ZDJcdTY0YzVcdTY0YzdcdTY0YmJcdTY0''@;'; + put 'put ''ZDhcdTY0YzJcdTY0ZjFcdTY0ZTdcdTgyMDlcdTY0ZTBcdTY0ZTFcdTYyYWNcdTY0ZTNcdTY0ZWZcdTY1MmNcdTY0ZjZcdTY0ZjRcdTY0ZjJcdTY0ZmFcdTY1MDBcdTY0ZmRcdTY1MThcdTY1MWNcdTY1MDVcdTY1MjRcdTY1MjNcdTY1MmJcdTY1MzRcdTY1MzVcdTY1MzdcdTY1MzZcdTY1Mzhc''@;'; + put 'put ''dTc1NGJcdTY1NDhcdTY1NTZcdTY1NTVcdTY1NGRcdTY1NThcdTY1NWVcdTY1NWRcdTY1NzJcdTY1NzhcdTY1ODJcdTY1ODNcdThiOGFcdTY1OWJcdTY1OWZcdTY1YWJcdTY1YjdcdTY1YzNcdTY1YzZcdTY1YzFcdTY1YzRcdTY1Y2NcdTY1ZDJcdTY1ZGJcdTY1ZDlcdTY1ZTBcdTY1ZTFcdTY1''@;'; + put 'put ''ZjFcdTY3NzJcdTY2MGFcdTY2MDNcdTY1ZmJcdTY3NzNcdTY2MzVcdTY2MzZcdTY2MzRcdTY2MWNcdTY2NGZcdTY2NDRcdTY2NDlcdTY2NDFcdTY2NWVcdTY2NWRcdTY2NjRcdTY2NjdcdTY2NjhcdTY2NWZcdTY2NjJcdTY2NzBcdTY2ODNcdTY2ODhcdTY2OGVcdTY2ODlcdTY2ODRcdTY2OThc''@;'; + put 'put ''dTY2OWRcdTY2YzFcdTY2YjlcdTY2YzlcdTY2YmVcdTY2YmMiXSxbIjllNDAiLCJcdTY2YzRcdTY2YjhcdTY2ZDZcdTY2ZGFcdTY2ZTBcdTY2M2ZcdTY2ZTZcdTY2ZTlcdTY2ZjBcdTY2ZjVcdTY2ZjdcdTY3MGZcdTY3MTZcdTY3MWVcdTY3MjZcdTY3MjdcdTk3MzhcdTY3MmVcdTY3M2ZcdTY3''@;'; + put 'put ''MzZcdTY3NDFcdTY3MzhcdTY3MzdcdTY3NDZcdTY3NWVcdTY3NjBcdTY3NTlcdTY3NjNcdTY3NjRcdTY3ODlcdTY3NzBcdTY3YTlcdTY3N2NcdTY3NmFcdTY3OGNcdTY3OGJcdTY3YTZcdTY3YTFcdTY3ODVcdTY3YjdcdTY3ZWZcdTY3YjRcdTY3ZWNcdTY3YjNcdTY3ZTlcdTY3YjhcdTY3ZTRc''@;'; + put 'put ''dTY3ZGVcdTY3ZGRcdTY3ZTJcdTY3ZWVcdTY3YjlcdTY3Y2VcdTY3YzZcdTY3ZTdcdTZhOWNcdTY4MWVcdTY4NDZcdTY4MjlcdTY4NDBcdTY4NGRcdTY4MzJcdTY4NGUiXSxbIjllODAiLCJcdTY4YjNcdTY4MmJcdTY4NTlcdTY4NjNcdTY4NzdcdTY4N2ZcdTY4OWZcdTY4OGZcdTY4YWRcdTY4''@;'; + put 'put ''OTRcdTY4OWRcdTY4OWJcdTY4ODNcdTZhYWVcdTY4YjlcdTY4NzRcdTY4YjVcdTY4YTBcdTY4YmFcdTY5MGZcdTY4OGRcdTY4N2VcdTY5MDFcdTY4Y2FcdTY5MDhcdTY4ZDhcdTY5MjJcdTY5MjZcdTY4ZTFcdTY5MGNcdTY4Y2RcdTY4ZDRcdTY4ZTdcdTY4ZDVcdTY5MzZcdTY5MTJcdTY5MDRc''@;'; + put 'put ''dTY4ZDdcdTY4ZTNcdTY5MjVcdTY4ZjlcdTY4ZTBcdTY4ZWZcdTY5MjhcdTY5MmFcdTY5MWFcdTY5MjNcdTY5MjFcdTY4YzZcdTY5NzlcdTY5NzdcdTY5NWNcdTY5NzhcdTY5NmJcdTY5NTRcdTY5N2VcdTY5NmVcdTY5MzlcdTY5NzRcdTY5M2RcdTY5NTlcdTY5MzBcdTY5NjFcdTY5NWVcdTY5''@;'; + put 'put ''NWRcdTY5ODFcdTY5NmFcdTY5YjJcdTY5YWVcdTY5ZDBcdTY5YmZcdTY5YzFcdTY5ZDNcdTY5YmVcdTY5Y2VcdTViZThcdTY5Y2FcdTY5ZGRcdTY5YmJcdTY5YzNcdTY5YTdcdTZhMmVcdTY5OTFcdTY5YTBcdTY5OWNcdTY5OTVcdTY5YjRcdTY5ZGVcdTY5ZThcdTZhMDJcdTZhMWJcdTY5ZmZc''@;'; + put 'put ''dTZiMGFcdTY5ZjlcdTY5ZjJcdTY5ZTdcdTZhMDVcdTY5YjFcdTZhMWVcdTY5ZWRcdTZhMTRcdTY5ZWJcdTZhMGFcdTZhMTJcdTZhYzFcdTZhMjNcdTZhMTNcdTZhNDRcdTZhMGNcdTZhNzJcdTZhMzZcdTZhNzhcdTZhNDdcdTZhNjJcdTZhNTlcdTZhNjZcdTZhNDhcdTZhMzhcdTZhMjJcdTZh''@;'; + put 'put ''OTBcdTZhOGRcdTZhYTBcdTZhODRcdTZhYTJcdTZhYTMiXSxbIjlmNDAiLCJcdTZhOTdcdTg2MTdcdTZhYmJcdTZhYzNcdTZhYzJcdTZhYjhcdTZhYjNcdTZhYWNcdTZhZGVcdTZhZDFcdTZhZGZcdTZhYWFcdTZhZGFcdTZhZWFcdTZhZmJcdTZiMDVcdTg2MTZcdTZhZmFcdTZiMTJcdTZiMTZc''@;'; + put 'put ''dTliMzFcdTZiMWZcdTZiMzhcdTZiMzdcdTc2ZGNcdTZiMzlcdTk4ZWVcdTZiNDdcdTZiNDNcdTZiNDlcdTZiNTBcdTZiNTlcdTZiNTRcdTZiNWJcdTZiNWZcdTZiNjFcdTZiNzhcdTZiNzlcdTZiN2ZcdTZiODBcdTZiODRcdTZiODNcdTZiOGRcdTZiOThcdTZiOTVcdTZiOWVcdTZiYTRcdTZi''@;'; + put 'put ''YWFcdTZiYWJcdTZiYWZcdTZiYjJcdTZiYjFcdTZiYjNcdTZiYjdcdTZiYmNcdTZiYzZcdTZiY2JcdTZiZDNcdTZiZGZcdTZiZWNcdTZiZWJcdTZiZjNcdTZiZWYiXSxbIjlmODAiLCJcdTllYmVcdTZjMDhcdTZjMTNcdTZjMTRcdTZjMWJcdTZjMjRcdTZjMjNcdTZjNWVcdTZjNTVcdTZjNjJc''@;'; + put 'put ''dTZjNmFcdTZjODJcdTZjOGRcdTZjOWFcdTZjODFcdTZjOWJcdTZjN2VcdTZjNjhcdTZjNzNcdTZjOTJcdTZjOTBcdTZjYzRcdTZjZjFcdTZjZDNcdTZjYmRcdTZjZDdcdTZjYzVcdTZjZGRcdTZjYWVcdTZjYjFcdTZjYmVcdTZjYmFcdTZjZGJcdTZjZWZcdTZjZDlcdTZjZWFcdTZkMWZcdTg4''@;'; + put 'put ''NGRcdTZkMzZcdTZkMmJcdTZkM2RcdTZkMzhcdTZkMTlcdTZkMzVcdTZkMzNcdTZkMTJcdTZkMGNcdTZkNjNcdTZkOTNcdTZkNjRcdTZkNWFcdTZkNzlcdTZkNTlcdTZkOGVcdTZkOTVcdTZmZTRcdTZkODVcdTZkZjlcdTZlMTVcdTZlMGFcdTZkYjVcdTZkYzdcdTZkZTZcdTZkYjhcdTZkYzZc''@;'; + put 'put ''dTZkZWNcdTZkZGVcdTZkY2NcdTZkZThcdTZkZDJcdTZkYzVcdTZkZmFcdTZkZDlcdTZkZTRcdTZkZDVcdTZkZWFcdTZkZWVcdTZlMmRcdTZlNmVcdTZlMmVcdTZlMTlcdTZlNzJcdTZlNWZcdTZlM2VcdTZlMjNcdTZlNmJcdTZlMmJcdTZlNzZcdTZlNGRcdTZlMWZcdTZlNDNcdTZlM2FcdTZl''@;'; + put 'put ''NGVcdTZlMjRcdTZlZmZcdTZlMWRcdTZlMzhcdTZlODJcdTZlYWFcdTZlOThcdTZlYzlcdTZlYjdcdTZlZDNcdTZlYmRcdTZlYWZcdTZlYzRcdTZlYjJcdTZlZDRcdTZlZDVcdTZlOGZcdTZlYTVcdTZlYzJcdTZlOWZcdTZmNDFcdTZmMTFcdTcwNGNcdTZlZWNcdTZlZjhcdTZlZmVcdTZmM2Zc''@;'; + put 'put ''dTZlZjJcdTZmMzFcdTZlZWZcdTZmMzJcdTZlY2MiXSxbImUwNDAiLCJcdTZmM2VcdTZmMTNcdTZlZjdcdTZmODZcdTZmN2FcdTZmNzhcdTZmODFcdTZmODBcdTZmNmZcdTZmNWJcdTZmZjNcdTZmNmRcdTZmODJcdTZmN2NcdTZmNThcdTZmOGVcdTZmOTFcdTZmYzJcdTZmNjZcdTZmYjNcdTZm''@;'; + put 'put ''YTNcdTZmYTFcdTZmYTRcdTZmYjlcdTZmYzZcdTZmYWFcdTZmZGZcdTZmZDVcdTZmZWNcdTZmZDRcdTZmZDhcdTZmZjFcdTZmZWVcdTZmZGJcdTcwMDlcdTcwMGJcdTZmZmFcdTcwMTFcdTcwMDFcdTcwMGZcdTZmZmVcdTcwMWJcdTcwMWFcdTZmNzRcdTcwMWRcdTcwMThcdTcwMWZcdTcwMzBc''@;'; + put 'put ''dTcwM2VcdTcwMzJcdTcwNTFcdTcwNjNcdTcwOTlcdTcwOTJcdTcwYWZcdTcwZjFcdTcwYWNcdTcwYjhcdTcwYjNcdTcwYWVcdTcwZGZcdTcwY2JcdTcwZGQiXSxbImUwODAiLCJcdTcwZDlcdTcxMDlcdTcwZmRcdTcxMWNcdTcxMTlcdTcxNjVcdTcxNTVcdTcxODhcdTcxNjZcdTcxNjJcdTcx''@;'; + put 'put ''NGNcdTcxNTZcdTcxNmNcdTcxOGZcdTcxZmJcdTcxODRcdTcxOTVcdTcxYThcdTcxYWNcdTcxZDdcdTcxYjlcdTcxYmVcdTcxZDJcdTcxYzlcdTcxZDRcdTcxY2VcdTcxZTBcdTcxZWNcdTcxZTdcdTcxZjVcdTcxZmNcdTcxZjlcdTcxZmZcdTcyMGRcdTcyMTBcdTcyMWJcdTcyMjhcdTcyMmRc''@;'; + put 'put ''dTcyMmNcdTcyMzBcdTcyMzJcdTcyM2JcdTcyM2NcdTcyM2ZcdTcyNDBcdTcyNDZcdTcyNGJcdTcyNThcdTcyNzRcdTcyN2VcdTcyODJcdTcyODFcdTcyODdcdTcyOTJcdTcyOTZcdTcyYTJcdTcyYTdcdTcyYjlcdTcyYjJcdTcyYzNcdTcyYzZcdTcyYzRcdTcyY2VcdTcyZDJcdTcyZTJcdTcy''@;'; + put 'put ''ZTBcdTcyZTFcdTcyZjlcdTcyZjdcdTUwMGZcdTczMTdcdTczMGFcdTczMWNcdTczMTZcdTczMWRcdTczMzRcdTczMmZcdTczMjlcdTczMjVcdTczM2VcdTczNGVcdTczNGZcdTllZDhcdTczNTdcdTczNmFcdTczNjhcdTczNzBcdTczNzhcdTczNzVcdTczN2JcdTczN2FcdTczYzhcdTczYjNc''@;'; + put 'put ''dTczY2VcdTczYmJcdTczYzBcdTczZTVcdTczZWVcdTczZGVcdTc0YTJcdTc0MDVcdTc0NmZcdTc0MjVcdTczZjhcdTc0MzJcdTc0M2FcdTc0NTVcdTc0M2ZcdTc0NWZcdTc0NTlcdTc0NDFcdTc0NWNcdTc0NjlcdTc0NzBcdTc0NjNcdTc0NmFcdTc0NzZcdTc0N2VcdTc0OGJcdTc0OWVcdTc0''@;'; + put 'put ''YTdcdTc0Y2FcdTc0Y2ZcdTc0ZDRcdTczZjEiXSxbImUxNDAiLCJcdTc0ZTBcdTc0ZTNcdTc0ZTdcdTc0ZTlcdTc0ZWVcdTc0ZjJcdTc0ZjBcdTc0ZjFcdTc0ZjhcdTc0ZjdcdTc1MDRcdTc1MDNcdTc1MDVcdTc1MGNcdTc1MGVcdTc1MGRcdTc1MTVcdTc1MTNcdTc1MWVcdTc1MjZcdTc1MmNc''@;'; + put 'put ''dTc1M2NcdTc1NDRcdTc1NGRcdTc1NGFcdTc1NDlcdTc1NWJcdTc1NDZcdTc1NWFcdTc1NjlcdTc1NjRcdTc1NjdcdTc1NmJcdTc1NmRcdTc1NzhcdTc1NzZcdTc1ODZcdTc1ODdcdTc1NzRcdTc1OGFcdTc1ODlcdTc1ODJcdTc1OTRcdTc1OWFcdTc1OWRcdTc1YTVcdTc1YTNcdTc1YzJcdTc1''@;'; + put 'put ''YjNcdTc1YzNcdTc1YjVcdTc1YmRcdTc1YjhcdTc1YmNcdTc1YjFcdTc1Y2RcdTc1Y2FcdTc1ZDJcdTc1ZDlcdTc1ZTNcdTc1ZGVcdTc1ZmVcdTc1ZmYiXSxbImUxODAiLCJcdTc1ZmNcdTc2MDFcdTc1ZjBcdTc1ZmFcdTc1ZjJcdTc1ZjNcdTc2MGJcdTc2MGRcdTc2MDlcdTc2MWZcdTc2Mjdc''@;'; + put 'put ''dTc2MjBcdTc2MjFcdTc2MjJcdTc2MjRcdTc2MzRcdTc2MzBcdTc2M2JcdTc2NDdcdTc2NDhcdTc2NDZcdTc2NWNcdTc2NThcdTc2NjFcdTc2NjJcdTc2NjhcdTc2NjlcdTc2NmFcdTc2NjdcdTc2NmNcdTc2NzBcdTc2NzJcdTc2NzZcdTc2NzhcdTc2N2NcdTc2ODBcdTc2ODNcdTc2ODhcdTc2''@;'; + put 'put ''OGJcdTc2OGVcdTc2OTZcdTc2OTNcdTc2OTlcdTc2OWFcdTc2YjBcdTc2YjRcdTc2YjhcdTc2YjlcdTc2YmFcdTc2YzJcdTc2Y2RcdTc2ZDZcdTc2ZDJcdTc2ZGVcdTc2ZTFcdTc2ZTVcdTc2ZTdcdTc2ZWFcdTg2MmZcdTc2ZmJcdTc3MDhcdTc3MDdcdTc3MDRcdTc3MjlcdTc3MjRcdTc3MWVc''@;'; + put 'put ''dTc3MjVcdTc3MjZcdTc3MWJcdTc3MzdcdTc3MzhcdTc3NDdcdTc3NWFcdTc3NjhcdTc3NmJcdTc3NWJcdTc3NjVcdTc3N2ZcdTc3N2VcdTc3NzlcdTc3OGVcdTc3OGJcdTc3OTFcdTc3YTBcdTc3OWVcdTc3YjBcdTc3YjZcdTc3YjlcdTc3YmZcdTc3YmNcdTc3YmRcdTc3YmJcdTc3YzdcdTc3''@;'; + put 'put ''Y2RcdTc3ZDdcdTc3ZGFcdTc3ZGNcdTc3ZTNcdTc3ZWVcdTc3ZmNcdTc4MGNcdTc4MTJcdTc5MjZcdTc4MjBcdTc5MmFcdTc4NDVcdTc4OGVcdTc4NzRcdTc4ODZcdTc4N2NcdTc4OWFcdTc4OGNcdTc4YTNcdTc4YjVcdTc4YWFcdTc4YWZcdTc4ZDFcdTc4YzZcdTc4Y2JcdTc4ZDRcdTc4YmVc''@;'; + put 'put ''dTc4YmNcdTc4YzVcdTc4Y2FcdTc4ZWMiXSxbImUyNDAiLCJcdTc4ZTdcdTc4ZGFcdTc4ZmRcdTc4ZjRcdTc5MDdcdTc5MTJcdTc5MTFcdTc5MTlcdTc5MmNcdTc5MmJcdTc5NDBcdTc5NjBcdTc5NTdcdTc5NWZcdTc5NWFcdTc5NTVcdTc5NTNcdTc5N2FcdTc5N2ZcdTc5OGFcdTc5OWRcdTc5''@;'; + put 'put ''YTdcdTlmNGJcdTc5YWFcdTc5YWVcdTc5YjNcdTc5YjlcdTc5YmFcdTc5YzlcdTc5ZDVcdTc5ZTdcdTc5ZWNcdTc5ZTFcdTc5ZTNcdTdhMDhcdTdhMGRcdTdhMThcdTdhMTlcdTdhMjBcdTdhMWZcdTc5ODBcdTdhMzFcdTdhM2JcdTdhM2VcdTdhMzdcdTdhNDNcdTdhNTdcdTdhNDlcdTdhNjFc''@;'; + put 'put ''dTdhNjJcdTdhNjlcdTlmOWRcdTdhNzBcdTdhNzlcdTdhN2RcdTdhODhcdTdhOTdcdTdhOTVcdTdhOThcdTdhOTZcdTdhYTlcdTdhYzhcdTdhYjAiXSxbImUyODAiLCJcdTdhYjZcdTdhYzVcdTdhYzRcdTdhYmZcdTkwODNcdTdhYzdcdTdhY2FcdTdhY2RcdTdhY2ZcdTdhZDVcdTdhZDNcdTdh''@;'; + put 'put ''ZDlcdTdhZGFcdTdhZGRcdTdhZTFcdTdhZTJcdTdhZTZcdTdhZWRcdTdhZjBcdTdiMDJcdTdiMGZcdTdiMGFcdTdiMDZcdTdiMzNcdTdiMThcdTdiMTlcdTdiMWVcdTdiMzVcdTdiMjhcdTdiMzZcdTdiNTBcdTdiN2FcdTdiMDRcdTdiNGRcdTdiMGJcdTdiNGNcdTdiNDVcdTdiNzVcdTdiNjVc''@;'; + put 'put ''dTdiNzRcdTdiNjdcdTdiNzBcdTdiNzFcdTdiNmNcdTdiNmVcdTdiOWRcdTdiOThcdTdiOWZcdTdiOGRcdTdiOWNcdTdiOWFcdTdiOGJcdTdiOTJcdTdiOGZcdTdiNWRcdTdiOTlcdTdiY2JcdTdiYzFcdTdiY2NcdTdiY2ZcdTdiYjRcdTdiYzZcdTdiZGRcdTdiZTlcdTdjMTFcdTdjMTRcdTdi''@;'; + put 'put ''ZTZcdTdiZTVcdTdjNjBcdTdjMDBcdTdjMDdcdTdjMTNcdTdiZjNcdTdiZjdcdTdjMTdcdTdjMGRcdTdiZjZcdTdjMjNcdTdjMjdcdTdjMmFcdTdjMWZcdTdjMzdcdTdjMmJcdTdjM2RcdTdjNGNcdTdjNDNcdTdjNTRcdTdjNGZcdTdjNDBcdTdjNTBcdTdjNThcdTdjNWZcdTdjNjRcdTdjNTZc''@;'; + put 'put ''dTdjNjVcdTdjNmNcdTdjNzVcdTdjODNcdTdjOTBcdTdjYTRcdTdjYWRcdTdjYTJcdTdjYWJcdTdjYTFcdTdjYThcdTdjYjNcdTdjYjJcdTdjYjFcdTdjYWVcdTdjYjlcdTdjYmRcdTdjYzBcdTdjYzVcdTdjYzJcdTdjZDhcdTdjZDJcdTdjZGNcdTdjZTJcdTliM2JcdTdjZWZcdTdjZjJcdTdj''@;'; + put 'put ''ZjRcdTdjZjZcdTdjZmFcdTdkMDYiXSxbImUzNDAiLCJcdTdkMDJcdTdkMWNcdTdkMTVcdTdkMGFcdTdkNDVcdTdkNGJcdTdkMmVcdTdkMzJcdTdkM2ZcdTdkMzVcdTdkNDZcdTdkNzNcdTdkNTZcdTdkNGVcdTdkNzJcdTdkNjhcdTdkNmVcdTdkNGZcdTdkNjNcdTdkOTNcdTdkODlcdTdkNWJc''@;'; + put 'put ''dTdkOGZcdTdkN2RcdTdkOWJcdTdkYmFcdTdkYWVcdTdkYTNcdTdkYjVcdTdkYzdcdTdkYmRcdTdkYWJcdTdlM2RcdTdkYTJcdTdkYWZcdTdkZGNcdTdkYjhcdTdkOWZcdTdkYjBcdTdkZDhcdTdkZGRcdTdkZTRcdTdkZGVcdTdkZmJcdTdkZjJcdTdkZTFcdTdlMDVcdTdlMGFcdTdlMjNcdTdl''@;'; + put 'put ''MjFcdTdlMTJcdTdlMzFcdTdlMWZcdTdlMDlcdTdlMGJcdTdlMjJcdTdlNDZcdTdlNjZcdTdlM2JcdTdlMzVcdTdlMzlcdTdlNDNcdTdlMzciXSxbImUzODAiLCJcdTdlMzJcdTdlM2FcdTdlNjdcdTdlNWRcdTdlNTZcdTdlNWVcdTdlNTlcdTdlNWFcdTdlNzlcdTdlNmFcdTdlNjlcdTdlN2Nc''@;'; + put 'put ''dTdlN2JcdTdlODNcdTdkZDVcdTdlN2RcdThmYWVcdTdlN2ZcdTdlODhcdTdlODlcdTdlOGNcdTdlOTJcdTdlOTBcdTdlOTNcdTdlOTRcdTdlOTZcdTdlOGVcdTdlOWJcdTdlOWNcdTdmMzhcdTdmM2FcdTdmNDVcdTdmNGNcdTdmNGRcdTdmNGVcdTdmNTBcdTdmNTFcdTdmNTVcdTdmNTRcdTdm''@;'; + put 'put ''NThcdTdmNWZcdTdmNjBcdTdmNjhcdTdmNjlcdTdmNjdcdTdmNzhcdTdmODJcdTdmODZcdTdmODNcdTdmODhcdTdmODdcdTdmOGNcdTdmOTRcdTdmOWVcdTdmOWRcdTdmOWFcdTdmYTNcdTdmYWZcdTdmYjJcdTdmYjlcdTdmYWVcdTdmYjZcdTdmYjhcdThiNzFcdTdmYzVcdTdmYzZcdTdmY2Fc''@;'; + put 'put ''dTdmZDVcdTdmZDRcdTdmZTFcdTdmZTZcdTdmZTlcdTdmZjNcdTdmZjlcdTk4ZGNcdTgwMDZcdTgwMDRcdTgwMGJcdTgwMTJcdTgwMThcdTgwMTlcdTgwMWNcdTgwMjFcdTgwMjhcdTgwM2ZcdTgwM2JcdTgwNGFcdTgwNDZcdTgwNTJcdTgwNThcdTgwNWFcdTgwNWZcdTgwNjJcdTgwNjhcdTgw''@;'; + put 'put ''NzNcdTgwNzJcdTgwNzBcdTgwNzZcdTgwNzlcdTgwN2RcdTgwN2ZcdTgwODRcdTgwODZcdTgwODVcdTgwOWJcdTgwOTNcdTgwOWFcdTgwYWRcdTUxOTBcdTgwYWNcdTgwZGJcdTgwZTVcdTgwZDlcdTgwZGRcdTgwYzRcdTgwZGFcdTgwZDZcdTgxMDlcdTgwZWZcdTgwZjFcdTgxMWJcdTgxMjlc''@;'; + put 'put ''dTgxMjNcdTgxMmZcdTgxNGIiXSxbImU0NDAiLCJcdTk2OGJcdTgxNDZcdTgxM2VcdTgxNTNcdTgxNTFcdTgwZmNcdTgxNzFcdTgxNmVcdTgxNjVcdTgxNjZcdTgxNzRcdTgxODNcdTgxODhcdTgxOGFcdTgxODBcdTgxODJcdTgxYTBcdTgxOTVcdTgxYTRcdTgxYTNcdTgxNWZcdTgxOTNcdTgx''@;'; + put 'put ''YTlcdTgxYjBcdTgxYjVcdTgxYmVcdTgxYjhcdTgxYmRcdTgxYzBcdTgxYzJcdTgxYmFcdTgxYzlcdTgxY2RcdTgxZDFcdTgxZDlcdTgxZDhcdTgxYzhcdTgxZGFcdTgxZGZcdTgxZTBcdTgxZTdcdTgxZmFcdTgxZmJcdTgxZmVcdTgyMDFcdTgyMDJcdTgyMDVcdTgyMDdcdTgyMGFcdTgyMGRc''@;'; + put 'put ''dTgyMTBcdTgyMTZcdTgyMjlcdTgyMmJcdTgyMzhcdTgyMzNcdTgyNDBcdTgyNTlcdTgyNThcdTgyNWRcdTgyNWFcdTgyNWZcdTgyNjQiXSxbImU0ODAiLCJcdTgyNjJcdTgyNjhcdTgyNmFcdTgyNmJcdTgyMmVcdTgyNzFcdTgyNzdcdTgyNzhcdTgyN2VcdTgyOGRcdTgyOTJcdTgyYWJcdTgy''@;'; + put 'put ''OWZcdTgyYmJcdTgyYWNcdTgyZTFcdTgyZTNcdTgyZGZcdTgyZDJcdTgyZjRcdTgyZjNcdTgyZmFcdTgzOTNcdTgzMDNcdTgyZmJcdTgyZjlcdTgyZGVcdTgzMDZcdTgyZGNcdTgzMDlcdTgyZDlcdTgzMzVcdTgzMzRcdTgzMTZcdTgzMzJcdTgzMzFcdTgzNDBcdTgzMzlcdTgzNTBcdTgzNDVc''@;'; + put 'put ''dTgzMmZcdTgzMmJcdTgzMTdcdTgzMThcdTgzODVcdTgzOWFcdTgzYWFcdTgzOWZcdTgzYTJcdTgzOTZcdTgzMjNcdTgzOGVcdTgzODdcdTgzOGFcdTgzN2NcdTgzYjVcdTgzNzNcdTgzNzVcdTgzYTBcdTgzODlcdTgzYThcdTgzZjRcdTg0MTNcdTgzZWJcdTgzY2VcdTgzZmRcdTg0MDNcdTgz''@;'; + put 'put ''ZDhcdTg0MGJcdTgzYzFcdTgzZjdcdTg0MDdcdTgzZTBcdTgzZjJcdTg0MGRcdTg0MjJcdTg0MjBcdTgzYmRcdTg0MzhcdTg1MDZcdTgzZmJcdTg0NmRcdTg0MmFcdTg0M2NcdTg1NWFcdTg0ODRcdTg0NzdcdTg0NmJcdTg0YWRcdTg0NmVcdTg0ODJcdTg0NjlcdTg0NDZcdTg0MmNcdTg0NmZc''@;'; + put 'put ''dTg0NzlcdTg0MzVcdTg0Y2FcdTg0NjJcdTg0YjlcdTg0YmZcdTg0OWZcdTg0ZDlcdTg0Y2RcdTg0YmJcdTg0ZGFcdTg0ZDBcdTg0YzFcdTg0YzZcdTg0ZDZcdTg0YTFcdTg1MjFcdTg0ZmZcdTg0ZjRcdTg1MTdcdTg1MThcdTg1MmNcdTg1MWZcdTg1MTVcdTg1MTRcdTg0ZmNcdTg1NDBcdTg1''@;'; + put 'put ''NjNcdTg1NThcdTg1NDgiXSxbImU1NDAiLCJcdTg1NDFcdTg2MDJcdTg1NGJcdTg1NTVcdTg1ODBcdTg1YTRcdTg1ODhcdTg1OTFcdTg1OGFcdTg1YThcdTg1NmRcdTg1OTRcdTg1OWJcdTg1ZWFcdTg1ODdcdTg1OWNcdTg1NzdcdTg1N2VcdTg1OTBcdTg1YzlcdTg1YmFcdTg1Y2ZcdTg1Yjlc''@;'; + put 'put ''dTg1ZDBcdTg1ZDVcdTg1ZGRcdTg1ZTVcdTg1ZGNcdTg1ZjlcdTg2MGFcdTg2MTNcdTg2MGJcdTg1ZmVcdTg1ZmFcdTg2MDZcdTg2MjJcdTg2MWFcdTg2MzBcdTg2M2ZcdTg2NGRcdTRlNTVcdTg2NTRcdTg2NWZcdTg2NjdcdTg2NzFcdTg2OTNcdTg2YTNcdTg2YTlcdTg2YWFcdTg2OGJcdTg2''@;'; + put 'put ''OGNcdTg2YjZcdTg2YWZcdTg2YzRcdTg2YzZcdTg2YjBcdTg2YzlcdTg4MjNcdTg2YWJcdTg2ZDRcdTg2ZGVcdTg2ZTlcdTg2ZWMiXSxbImU1ODAiLCJcdTg2ZGZcdTg2ZGJcdTg2ZWZcdTg3MTJcdTg3MDZcdTg3MDhcdTg3MDBcdTg3MDNcdTg2ZmJcdTg3MTFcdTg3MDlcdTg3MGRcdTg2Zjlc''@;'; + put 'put ''dTg3MGFcdTg3MzRcdTg3M2ZcdTg3MzdcdTg3M2JcdTg3MjVcdTg3MjlcdTg3MWFcdTg3NjBcdTg3NWZcdTg3NzhcdTg3NGNcdTg3NGVcdTg3NzRcdTg3NTdcdTg3NjhcdTg3NmVcdTg3NTlcdTg3NTNcdTg3NjNcdTg3NmFcdTg4MDVcdTg3YTJcdTg3OWZcdTg3ODJcdTg3YWZcdTg3Y2JcdTg3''@;'; + put 'put ''YmRcdTg3YzBcdTg3ZDBcdTk2ZDZcdTg3YWJcdTg3YzRcdTg3YjNcdTg3YzdcdTg3YzZcdTg3YmJcdTg3ZWZcdTg3ZjJcdTg3ZTBcdTg4MGZcdTg4MGRcdTg3ZmVcdTg3ZjZcdTg3ZjdcdTg4MGVcdTg3ZDJcdTg4MTFcdTg4MTZcdTg4MTVcdTg4MjJcdTg4MjFcdTg4MzFcdTg4MzZcdTg4Mzlc''@;'; + put 'put ''dTg4MjdcdTg4M2JcdTg4NDRcdTg4NDJcdTg4NTJcdTg4NTlcdTg4NWVcdTg4NjJcdTg4NmJcdTg4ODFcdTg4N2VcdTg4OWVcdTg4NzVcdTg4N2RcdTg4YjVcdTg4NzJcdTg4ODJcdTg4OTdcdTg4OTJcdTg4YWVcdTg4OTlcdTg4YTJcdTg4OGRcdTg4YTRcdTg4YjBcdTg4YmZcdTg4YjFcdTg4''@;'; + put 'put ''YzNcdTg4YzRcdTg4ZDRcdTg4ZDhcdTg4ZDlcdTg4ZGRcdTg4ZjlcdTg5MDJcdTg4ZmNcdTg4ZjRcdTg4ZThcdTg4ZjJcdTg5MDRcdTg5MGNcdTg5MGFcdTg5MTNcdTg5NDNcdTg5MWVcdTg5MjVcdTg5MmFcdTg5MmJcdTg5NDFcdTg5NDRcdTg5M2JcdTg5MzZcdTg5MzhcdTg5NGNcdTg5MWRc''@;'; + put 'put ''dTg5NjBcdTg5NWUiXSxbImU2NDAiLCJcdTg5NjZcdTg5NjRcdTg5NmRcdTg5NmFcdTg5NmZcdTg5NzRcdTg5NzdcdTg5N2VcdTg5ODNcdTg5ODhcdTg5OGFcdTg5OTNcdTg5OThcdTg5YTFcdTg5YTlcdTg5YTZcdTg5YWNcdTg5YWZcdTg5YjJcdTg5YmFcdTg5YmRcdTg5YmZcdTg5YzBcdTg5''@;'; + put 'put ''ZGFcdTg5ZGNcdTg5ZGRcdTg5ZTdcdTg5ZjRcdTg5ZjhcdThhMDNcdThhMTZcdThhMTBcdThhMGNcdThhMWJcdThhMWRcdThhMjVcdThhMzZcdThhNDFcdThhNWJcdThhNTJcdThhNDZcdThhNDhcdThhN2NcdThhNmRcdThhNmNcdThhNjJcdThhODVcdThhODJcdThhODRcdThhYThcdThhYTFc''@;'; + put 'put ''dThhOTFcdThhYTVcdThhYTZcdThhOWFcdThhYTNcdThhYzRcdThhY2RcdThhYzJcdThhZGFcdThhZWJcdThhZjNcdThhZTciXSxbImU2ODAiLCJcdThhZTRcdThhZjFcdThiMTRcdThhZTBcdThhZTJcdThhZjdcdThhZGVcdThhZGJcdThiMGNcdThiMDdcdThiMWFcdThhZTFcdThiMTZcdThi''@;'; + put 'put ''MTBcdThiMTdcdThiMjBcdThiMzNcdTk3YWJcdThiMjZcdThiMmJcdThiM2VcdThiMjhcdThiNDFcdThiNGNcdThiNGZcdThiNGVcdThiNDlcdThiNTZcdThiNWJcdThiNWFcdThiNmJcdThiNWZcdThiNmNcdThiNmZcdThiNzRcdThiN2RcdThiODBcdThiOGNcdThiOGVcdThiOTJcdThiOTNc''@;'; + put 'put ''dThiOTZcdThiOTlcdThiOWFcdThjM2FcdThjNDFcdThjM2ZcdThjNDhcdThjNGNcdThjNGVcdThjNTBcdThjNTVcdThjNjJcdThjNmNcdThjNzhcdThjN2FcdThjODJcdThjODlcdThjODVcdThjOGFcdThjOGRcdThjOGVcdThjOTRcdThjN2NcdThjOThcdTYyMWRcdThjYWRcdThjYWFcdThj''@;'; + put 'put ''YmRcdThjYjJcdThjYjNcdThjYWVcdThjYjZcdThjYzhcdThjYzFcdThjZTRcdThjZTNcdThjZGFcdThjZmRcdThjZmFcdThjZmJcdThkMDRcdThkMDVcdThkMGFcdThkMDdcdThkMGZcdThkMGRcdThkMTBcdTlmNGVcdThkMTNcdThjY2RcdThkMTRcdThkMTZcdThkNjdcdThkNmRcdThkNzFc''@;'; + put 'put ''dThkNzNcdThkODFcdThkOTlcdThkYzJcdThkYmVcdThkYmFcdThkY2ZcdThkZGFcdThkZDZcdThkY2NcdThkZGJcdThkY2JcdThkZWFcdThkZWJcdThkZGZcdThkZTNcdThkZmNcdThlMDhcdThlMDlcdThkZmZcdThlMWRcdThlMWVcdThlMTBcdThlMWZcdThlNDJcdThlMzVcdThlMzBcdThl''@;'; + put 'put ''MzRcdThlNGEiXSxbImU3NDAiLCJcdThlNDdcdThlNDlcdThlNGNcdThlNTBcdThlNDhcdThlNTlcdThlNjRcdThlNjBcdThlMmFcdThlNjNcdThlNTVcdThlNzZcdThlNzJcdThlN2NcdThlODFcdThlODdcdThlODVcdThlODRcdThlOGJcdThlOGFcdThlOTNcdThlOTFcdThlOTRcdThlOTlc''@;'; + put 'put ''dThlYWFcdThlYTFcdThlYWNcdThlYjBcdThlYzZcdThlYjFcdThlYmVcdThlYzVcdThlYzhcdThlY2JcdThlZGJcdThlZTNcdThlZmNcdThlZmJcdThlZWJcdThlZmVcdThmMGFcdThmMDVcdThmMTVcdThmMTJcdThmMTlcdThmMTNcdThmMWNcdThmMWZcdThmMWJcdThmMGNcdThmMjZcdThm''@;'; + put 'put ''MzNcdThmM2JcdThmMzlcdThmNDVcdThmNDJcdThmM2VcdThmNGNcdThmNDlcdThmNDZcdThmNGVcdThmNTdcdThmNWMiXSxbImU3ODAiLCJcdThmNjJcdThmNjNcdThmNjRcdThmOWNcdThmOWZcdThmYTNcdThmYWRcdThmYWZcdThmYjdcdThmZGFcdThmZTVcdThmZTJcdThmZWFcdThmZWZc''@;'; + put 'put ''dTkwODdcdThmZjRcdTkwMDVcdThmZjlcdThmZmFcdTkwMTFcdTkwMTVcdTkwMjFcdTkwMGRcdTkwMWVcdTkwMTZcdTkwMGJcdTkwMjdcdTkwMzZcdTkwMzVcdTkwMzlcdThmZjhcdTkwNGZcdTkwNTBcdTkwNTFcdTkwNTJcdTkwMGVcdTkwNDlcdTkwM2VcdTkwNTZcdTkwNThcdTkwNWVcdTkw''@;'; + put 'put ''NjhcdTkwNmZcdTkwNzZcdTk2YThcdTkwNzJcdTkwODJcdTkwN2RcdTkwODFcdTkwODBcdTkwOGFcdTkwODlcdTkwOGZcdTkwYThcdTkwYWZcdTkwYjFcdTkwYjVcdTkwZTJcdTkwZTRcdTYyNDhcdTkwZGJcdTkxMDJcdTkxMTJcdTkxMTlcdTkxMzJcdTkxMzBcdTkxNGFcdTkxNTZcdTkxNThc''@;'; + put 'put ''dTkxNjNcdTkxNjVcdTkxNjlcdTkxNzNcdTkxNzJcdTkxOGJcdTkxODlcdTkxODJcdTkxYTJcdTkxYWJcdTkxYWZcdTkxYWFcdTkxYjVcdTkxYjRcdTkxYmFcdTkxYzBcdTkxYzFcdTkxYzlcdTkxY2JcdTkxZDBcdTkxZDZcdTkxZGZcdTkxZTFcdTkxZGJcdTkxZmNcdTkxZjVcdTkxZjZcdTky''@;'; + put 'put ''MWVcdTkxZmZcdTkyMTRcdTkyMmNcdTkyMTVcdTkyMTFcdTkyNWVcdTkyNTdcdTkyNDVcdTkyNDlcdTkyNjRcdTkyNDhcdTkyOTVcdTkyM2ZcdTkyNGJcdTkyNTBcdTkyOWNcdTkyOTZcdTkyOTNcdTkyOWJcdTkyNWFcdTkyY2ZcdTkyYjlcdTkyYjdcdTkyZTlcdTkzMGZcdTkyZmFcdTkzNDRc''@;'; + put 'put ''dTkzMmUiXSxbImU4NDAiLCJcdTkzMTlcdTkzMjJcdTkzMWFcdTkzMjNcdTkzM2FcdTkzMzVcdTkzM2JcdTkzNWNcdTkzNjBcdTkzN2NcdTkzNmVcdTkzNTZcdTkzYjBcdTkzYWNcdTkzYWRcdTkzOTRcdTkzYjlcdTkzZDZcdTkzZDdcdTkzZThcdTkzZTVcdTkzZDhcdTkzYzNcdTkzZGRcdTkz''@;'; + put 'put ''ZDBcdTkzYzhcdTkzZTRcdTk0MWFcdTk0MTRcdTk0MTNcdTk0MDNcdTk0MDdcdTk0MTBcdTk0MzZcdTk0MmJcdTk0MzVcdTk0MjFcdTk0M2FcdTk0NDFcdTk0NTJcdTk0NDRcdTk0NWJcdTk0NjBcdTk0NjJcdTk0NWVcdTk0NmFcdTkyMjlcdTk0NzBcdTk0NzVcdTk0NzdcdTk0N2RcdTk0NWFc''@;'; + put 'put ''dTk0N2NcdTk0N2VcdTk0ODFcdTk0N2ZcdTk1ODJcdTk1ODdcdTk1OGFcdTk1OTRcdTk1OTZcdTk1OThcdTk1OTkiXSxbImU4ODAiLCJcdTk1YTBcdTk1YThcdTk1YTdcdTk1YWRcdTk1YmNcdTk1YmJcdTk1YjlcdTk1YmVcdTk1Y2FcdTZmZjZcdTk1YzNcdTk1Y2RcdTk1Y2NcdTk1ZDVcdTk1''@;'; + put 'put ''ZDRcdTk1ZDZcdTk1ZGNcdTk1ZTFcdTk1ZTVcdTk1ZTJcdTk2MjFcdTk2MjhcdTk2MmVcdTk2MmZcdTk2NDJcdTk2NGNcdTk2NGZcdTk2NGJcdTk2NzdcdTk2NWNcdTk2NWVcdTk2NWRcdTk2NWZcdTk2NjZcdTk2NzJcdTk2NmNcdTk2OGRcdTk2OThcdTk2OTVcdTk2OTdcdTk2YWFcdTk2YTdc''@;'; + put 'put ''dTk2YjFcdTk2YjJcdTk2YjBcdTk2YjRcdTk2YjZcdTk2YjhcdTk2YjlcdTk2Y2VcdTk2Y2JcdTk2YzlcdTk2Y2RcdTg5NGRcdTk2ZGNcdTk3MGRcdTk2ZDVcdTk2ZjlcdTk3MDRcdTk3MDZcdTk3MDhcdTk3MTNcdTk3MGVcdTk3MTFcdTk3MGZcdTk3MTZcdTk3MTlcdTk3MjRcdTk3MmFcdTk3''@;'; + put 'put ''MzBcdTk3MzlcdTk3M2RcdTk3M2VcdTk3NDRcdTk3NDZcdTk3NDhcdTk3NDJcdTk3NDlcdTk3NWNcdTk3NjBcdTk3NjRcdTk3NjZcdTk3NjhcdTUyZDJcdTk3NmJcdTk3NzFcdTk3NzlcdTk3ODVcdTk3N2NcdTk3ODFcdTk3N2FcdTk3ODZcdTk3OGJcdTk3OGZcdTk3OTBcdTk3OWNcdTk3YThc''@;'; + put 'put ''dTk3YTZcdTk3YTNcdTk3YjNcdTk3YjRcdTk3YzNcdTk3YzZcdTk3YzhcdTk3Y2JcdTk3ZGNcdTk3ZWRcdTlmNGZcdTk3ZjJcdTdhZGZcdTk3ZjZcdTk3ZjVcdTk4MGZcdTk4MGNcdTk4MzhcdTk4MjRcdTk4MjFcdTk4MzdcdTk4M2RcdTk4NDZcdTk4NGZcdTk4NGJcdTk4NmJcdTk4NmZcdTk4''@;'; + put 'put ''NzAiXSxbImU5NDAiLCJcdTk4NzFcdTk4NzRcdTk4NzNcdTk4YWFcdTk4YWZcdTk4YjFcdTk4YjZcdTk4YzRcdTk4YzNcdTk4YzZcdTk4ZTlcdTk4ZWJcdTk5MDNcdTk5MDlcdTk5MTJcdTk5MTRcdTk5MThcdTk5MjFcdTk5MWRcdTk5MWVcdTk5MjRcdTk5MjBcdTk5MmNcdTk5MmVcdTk5M2Rc''@;'; + put 'put ''dTk5M2VcdTk5NDJcdTk5NDlcdTk5NDVcdTk5NTBcdTk5NGJcdTk5NTFcdTk5NTJcdTk5NGNcdTk5NTVcdTk5OTdcdTk5OThcdTk5YTVcdTk5YWRcdTk5YWVcdTk5YmNcdTk5ZGZcdTk5ZGJcdTk5ZGRcdTk5ZDhcdTk5ZDFcdTk5ZWRcdTk5ZWVcdTk5ZjFcdTk5ZjJcdTk5ZmJcdTk5ZjhcdTlh''@;'; + put 'put ''MDFcdTlhMGZcdTlhMDVcdTk5ZTJcdTlhMTlcdTlhMmJcdTlhMzdcdTlhNDVcdTlhNDJcdTlhNDBcdTlhNDMiXSxbImU5ODAiLCJcdTlhM2VcdTlhNTVcdTlhNGRcdTlhNWJcdTlhNTdcdTlhNWZcdTlhNjJcdTlhNjVcdTlhNjRcdTlhNjlcdTlhNmJcdTlhNmFcdTlhYWRcdTlhYjBcdTlhYmNc''@;'; + put 'put ''dTlhYzBcdTlhY2ZcdTlhZDFcdTlhZDNcdTlhZDRcdTlhZGVcdTlhZGZcdTlhZTJcdTlhZTNcdTlhZTZcdTlhZWZcdTlhZWJcdTlhZWVcdTlhZjRcdTlhZjFcdTlhZjdcdTlhZmJcdTliMDZcdTliMThcdTliMWFcdTliMWZcdTliMjJcdTliMjNcdTliMjVcdTliMjdcdTliMjhcdTliMjlcdTli''@;'; + put 'put ''MmFcdTliMmVcdTliMmZcdTliMzJcdTliNDRcdTliNDNcdTliNGZcdTliNGRcdTliNGVcdTliNTFcdTliNThcdTliNzRcdTliOTNcdTliODNcdTliOTFcdTliOTZcdTliOTdcdTliOWZcdTliYTBcdTliYThcdTliYjRcdTliYzBcdTliY2FcdTliYjlcdTliYzZcdTliY2ZcdTliZDFcdTliZDJc''@;'; + put 'put ''dTliZTNcdTliZTJcdTliZTRcdTliZDRcdTliZTFcdTljM2FcdTliZjJcdTliZjFcdTliZjBcdTljMTVcdTljMTRcdTljMDlcdTljMTNcdTljMGNcdTljMDZcdTljMDhcdTljMTJcdTljMGFcdTljMDRcdTljMmVcdTljMWJcdTljMjVcdTljMjRcdTljMjFcdTljMzBcdTljNDdcdTljMzJcdTlj''@;'; + put 'put ''NDZcdTljM2VcdTljNWFcdTljNjBcdTljNjdcdTljNzZcdTljNzhcdTljZTdcdTljZWNcdTljZjBcdTlkMDlcdTlkMDhcdTljZWJcdTlkMDNcdTlkMDZcdTlkMmFcdTlkMjZcdTlkYWZcdTlkMjNcdTlkMWZcdTlkNDRcdTlkMTVcdTlkMTJcdTlkNDFcdTlkM2ZcdTlkM2VcdTlkNDZcdTlkNDgi''@;'; + put 'put ''XSxbImVhNDAiLCJcdTlkNWRcdTlkNWVcdTlkNjRcdTlkNTFcdTlkNTBcdTlkNTlcdTlkNzJcdTlkODlcdTlkODdcdTlkYWJcdTlkNmZcdTlkN2FcdTlkOWFcdTlkYTRcdTlkYTlcdTlkYjJcdTlkYzRcdTlkYzFcdTlkYmJcdTlkYjhcdTlkYmFcdTlkYzZcdTlkY2ZcdTlkYzJcdTlkZDlcdTlk''@;'; + put 'put ''ZDNcdTlkZjhcdTlkZTZcdTlkZWRcdTlkZWZcdTlkZmRcdTllMWFcdTllMWJcdTllMWVcdTllNzVcdTllNzlcdTllN2RcdTllODFcdTllODhcdTllOGJcdTllOGNcdTllOTJcdTllOTVcdTllOTFcdTllOWRcdTllYTVcdTllYTlcdTllYjhcdTllYWFcdTllYWRcdTk3NjFcdTllY2NcdTllY2Vc''@;'; + put 'put ''dTllY2ZcdTllZDBcdTllZDRcdTllZGNcdTllZGVcdTllZGRcdTllZTBcdTllZTVcdTllZThcdTllZWYiXSxbImVhODAiLCJcdTllZjRcdTllZjZcdTllZjdcdTllZjlcdTllZmJcdTllZmNcdTllZmRcdTlmMDdcdTlmMDhcdTc2YjdcdTlmMTVcdTlmMjFcdTlmMmNcdTlmM2VcdTlmNGFcdTlm''@;'; + put 'put ''NTJcdTlmNTRcdTlmNjNcdTlmNWZcdTlmNjBcdTlmNjFcdTlmNjZcdTlmNjdcdTlmNmNcdTlmNmFcdTlmNzdcdTlmNzJcdTlmNzZcdTlmOTVcdTlmOWNcdTlmYTBcdTU4MmZcdTY5YzdcdTkwNTlcdTc0NjRcdTUxZGNcdTcxOTkiXSxbImVkNDAiLCJcdTdlOGFcdTg5MWNcdTkzNDhcdTkyODhc''@;'; + put 'put ''dTg0ZGNcdTRmYzlcdTcwYmJcdTY2MzFcdTY4YzhcdTkyZjlcdTY2ZmJcdTVmNDVcdTRlMjhcdTRlZTFcdTRlZmNcdTRmMDBcdTRmMDNcdTRmMzlcdTRmNTZcdTRmOTJcdTRmOGFcdTRmOWFcdTRmOTRcdTRmY2RcdTUwNDBcdTUwMjJcdTRmZmZcdTUwMWVcdTUwNDZcdTUwNzBcdTUwNDJcdTUw''@;'; + put 'put ''OTRcdTUwZjRcdTUwZDhcdTUxNGFcdTUxNjRcdTUxOWRcdTUxYmVcdTUxZWNcdTUyMTVcdTUyOWNcdTUyYTZcdTUyYzBcdTUyZGJcdTUzMDBcdTUzMDdcdTUzMjRcdTUzNzJcdTUzOTNcdTUzYjJcdTUzZGRcdWZhMGVcdTU0OWNcdTU0OGFcdTU0YTlcdTU0ZmZcdTU1ODZcdTU3NTlcdTU3NjVc''@;'; + put 'put ''dTU3YWNcdTU3YzhcdTU3YzdcdWZhMGYiXSxbImVkODAiLCJcdWZhMTBcdTU4OWVcdTU4YjJcdTU5MGJcdTU5NTNcdTU5NWJcdTU5NWRcdTU5NjNcdTU5YTRcdTU5YmFcdTViNTZcdTViYzBcdTc1MmZcdTViZDhcdTViZWNcdTVjMWVcdTVjYTZcdTVjYmFcdTVjZjVcdTVkMjdcdTVkNTNcdWZh''@;'; + put 'put ''MTFcdTVkNDJcdTVkNmRcdTVkYjhcdTVkYjlcdTVkZDBcdTVmMjFcdTVmMzRcdTVmNjdcdTVmYjdcdTVmZGVcdTYwNWRcdTYwODVcdTYwOGFcdTYwZGVcdTYwZDVcdTYxMjBcdTYwZjJcdTYxMTFcdTYxMzdcdTYxMzBcdTYxOThcdTYyMTNcdTYyYTZcdTYzZjVcdTY0NjBcdTY0OWRcdTY0Y2Vc''@;'; + put 'put ''dTY1NGVcdTY2MDBcdTY2MTVcdTY2M2JcdTY2MDlcdTY2MmVcdTY2MWVcdTY2MjRcdTY2NjVcdTY2NTdcdTY2NTlcdWZhMTJcdTY2NzNcdTY2OTlcdTY2YTBcdTY2YjJcdTY2YmZcdTY2ZmFcdTY3MGVcdWY5MjlcdTY3NjZcdTY3YmJcdTY4NTJcdTY3YzBcdTY4MDFcdTY4NDRcdTY4Y2ZcdWZh''@;'; + put 'put ''MTNcdTY5NjhcdWZhMTRcdTY5OThcdTY5ZTJcdTZhMzBcdTZhNmJcdTZhNDZcdTZhNzNcdTZhN2VcdTZhZTJcdTZhZTRcdTZiZDZcdTZjM2ZcdTZjNWNcdTZjODZcdTZjNmZcdTZjZGFcdTZkMDRcdTZkODdcdTZkNmZcdTZkOTZcdTZkYWNcdTZkY2ZcdTZkZjhcdTZkZjJcdTZkZmNcdTZlMzlc''@;'; + put 'put ''dTZlNWNcdTZlMjdcdTZlM2NcdTZlYmZcdTZmODhcdTZmYjVcdTZmZjVcdTcwMDVcdTcwMDdcdTcwMjhcdTcwODVcdTcwYWJcdTcxMGZcdTcxMDRcdTcxNWNcdTcxNDZcdTcxNDdcdWZhMTVcdTcxYzFcdTcxZmVcdTcyYjEiXSxbImVlNDAiLCJcdTcyYmVcdTczMjRcdWZhMTZcdTczNzdcdTcz''@;'; + put 'put ''YmRcdTczYzlcdTczZDZcdTczZTNcdTczZDJcdTc0MDdcdTczZjVcdTc0MjZcdTc0MmFcdTc0MjlcdTc0MmVcdTc0NjJcdTc0ODlcdTc0OWZcdTc1MDFcdTc1NmZcdTc2ODJcdTc2OWNcdTc2OWVcdTc2OWJcdTc2YTZcdWZhMTdcdTc3NDZcdTUyYWZcdTc4MjFcdTc4NGVcdTc4NjRcdTc4N2Fc''@;'; + put 'put ''dTc5MzBcdWZhMThcdWZhMTlcdWZhMWFcdTc5OTRcdWZhMWJcdTc5OWJcdTdhZDFcdTdhZTdcdWZhMWNcdTdhZWJcdTdiOWVcdWZhMWRcdTdkNDhcdTdkNWNcdTdkYjdcdTdkYTBcdTdkZDZcdTdlNTJcdTdmNDdcdTdmYTFcdWZhMWVcdTgzMDFcdTgzNjJcdTgzN2ZcdTgzYzdcdTgzZjZcdTg0''@;'; + put 'put ''NDhcdTg0YjRcdTg1NTNcdTg1NTkiXSxbImVlODAiLCJcdTg1NmJcdWZhMWZcdTg1YjBcdWZhMjBcdWZhMjFcdTg4MDdcdTg4ZjVcdThhMTJcdThhMzdcdThhNzlcdThhYTdcdThhYmVcdThhZGZcdWZhMjJcdThhZjZcdThiNTNcdThiN2ZcdThjZjBcdThjZjRcdThkMTJcdThkNzZcdWZhMjNc''@;'; + put 'put ''dThlY2ZcdWZhMjRcdWZhMjVcdTkwNjdcdTkwZGVcdWZhMjZcdTkxMTVcdTkxMjdcdTkxZGFcdTkxZDdcdTkxZGVcdTkxZWRcdTkxZWVcdTkxZTRcdTkxZTVcdTkyMDZcdTkyMTBcdTkyMGFcdTkyM2FcdTkyNDBcdTkyM2NcdTkyNGVcdTkyNTlcdTkyNTFcdTkyMzlcdTkyNjdcdTkyYTdcdTky''@;'; + put 'put ''NzdcdTkyNzhcdTkyZTdcdTkyZDdcdTkyZDlcdTkyZDBcdWZhMjdcdTkyZDVcdTkyZTBcdTkyZDNcdTkzMjVcdTkzMjFcdTkyZmJcdWZhMjhcdTkzMWVcdTkyZmZcdTkzMWRcdTkzMDJcdTkzNzBcdTkzNTdcdTkzYTRcdTkzYzZcdTkzZGVcdTkzZjhcdTk0MzFcdTk0NDVcdTk0NDhcdTk1OTJc''@;'; + put 'put ''dWY5ZGNcdWZhMjlcdTk2OWRcdTk2YWZcdTk3MzNcdTk3M2JcdTk3NDNcdTk3NGRcdTk3NGZcdTk3NTFcdTk3NTVcdTk4NTdcdTk4NjVcdWZhMmFcdWZhMmJcdTk5MjdcdWZhMmNcdTk5OWVcdTlhNGVcdTlhZDlcdTlhZGNcdTliNzVcdTliNzJcdTliOGZcdTliYjFcdTliYmJcdTljMDBcdTlk''@;'; + put 'put ''NzBcdTlkNmJcdWZhMmRcdTllMTlcdTllZDEiXSxbImVlZWYiLCJcdTIxNzAiLDksIlx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMiJdLFsiZjA0MCIsIlx1ZTAwMCIsNjJdLFsiZjA4MCIsIlx1ZTAzZiIsMTI0XSxbImYxNDAiLCJcdWUwYmMiLDYyXSxbImYxODAiLCJcdWUwZmIiLDEyNF0sWyJm''@;'; + put 'put ''MjQwIiwiXHVlMTc4Iiw2Ml0sWyJmMjgwIiwiXHVlMWI3IiwxMjRdLFsiZjM0MCIsIlx1ZTIzNCIsNjJdLFsiZjM4MCIsIlx1ZTI3MyIsMTI0XSxbImY0NDAiLCJcdWUyZjAiLDYyXSxbImY0ODAiLCJcdWUzMmYiLDEyNF0sWyJmNTQwIiwiXHVlM2FjIiw2Ml0sWyJmNTgwIiwiXHVlM2ViIiwx''@;'; + put 'put ''MjRdLFsiZjY0MCIsIlx1ZTQ2OCIsNjJdLFsiZjY4MCIsIlx1ZTRhNyIsMTI0XSxbImY3NDAiLCJcdWU1MjQiLDYyXSxbImY3ODAiLCJcdWU1NjMiLDEyNF0sWyJmODQwIiwiXHVlNWUwIiw2Ml0sWyJmODgwIiwiXHVlNjFmIiwxMjRdLFsiZjk0MCIsIlx1ZTY5YyJdLFsiZmE0MCIsIlx1MjE3''@;'; + put 'put ''MCIsOSwiXHUyMTYwIiw5LCJcdWZmZTJcdWZmZTRcdWZmMDdcdWZmMDJcdTMyMzFcdTIxMTZcdTIxMjFcdTIyMzVcdTdlOGFcdTg5MWNcdTkzNDhcdTkyODhcdTg0ZGNcdTRmYzlcdTcwYmJcdTY2MzFcdTY4YzhcdTkyZjlcdTY2ZmJcdTVmNDVcdTRlMjhcdTRlZTFcdTRlZmNcdTRmMDBcdTRm''@;'; + put 'put ''MDNcdTRmMzlcdTRmNTZcdTRmOTJcdTRmOGFcdTRmOWFcdTRmOTRcdTRmY2RcdTUwNDBcdTUwMjJcdTRmZmZcdTUwMWVcdTUwNDZcdTUwNzBcdTUwNDJcdTUwOTRcdTUwZjRcdTUwZDhcdTUxNGEiXSxbImZhODAiLCJcdTUxNjRcdTUxOWRcdTUxYmVcdTUxZWNcdTUyMTVcdTUyOWNcdTUyYTZc''@;'; + put 'put ''dTUyYzBcdTUyZGJcdTUzMDBcdTUzMDdcdTUzMjRcdTUzNzJcdTUzOTNcdTUzYjJcdTUzZGRcdWZhMGVcdTU0OWNcdTU0OGFcdTU0YTlcdTU0ZmZcdTU1ODZcdTU3NTlcdTU3NjVcdTU3YWNcdTU3YzhcdTU3YzdcdWZhMGZcdWZhMTBcdTU4OWVcdTU4YjJcdTU5MGJcdTU5NTNcdTU5NWJcdTU5''@;'; + put 'put ''NWRcdTU5NjNcdTU5YTRcdTU5YmFcdTViNTZcdTViYzBcdTc1MmZcdTViZDhcdTViZWNcdTVjMWVcdTVjYTZcdTVjYmFcdTVjZjVcdTVkMjdcdTVkNTNcdWZhMTFcdTVkNDJcdTVkNmRcdTVkYjhcdTVkYjlcdTVkZDBcdTVmMjFcdTVmMzRcdTVmNjdcdTVmYjdcdTVmZGVcdTYwNWRcdTYwODVc''@;'; + put 'put ''dTYwOGFcdTYwZGVcdTYwZDVcdTYxMjBcdTYwZjJcdTYxMTFcdTYxMzdcdTYxMzBcdTYxOThcdTYyMTNcdTYyYTZcdTYzZjVcdTY0NjBcdTY0OWRcdTY0Y2VcdTY1NGVcdTY2MDBcdTY2MTVcdTY2M2JcdTY2MDlcdTY2MmVcdTY2MWVcdTY2MjRcdTY2NjVcdTY2NTdcdTY2NTlcdWZhMTJcdTY2''@;'; + put 'put ''NzNcdTY2OTlcdTY2YTBcdTY2YjJcdTY2YmZcdTY2ZmFcdTY3MGVcdWY5MjlcdTY3NjZcdTY3YmJcdTY4NTJcdTY3YzBcdTY4MDFcdTY4NDRcdTY4Y2ZcdWZhMTNcdTY5NjhcdWZhMTRcdTY5OThcdTY5ZTJcdTZhMzBcdTZhNmJcdTZhNDZcdTZhNzNcdTZhN2VcdTZhZTJcdTZhZTRcdTZiZDZc''@;'; + put 'put ''dTZjM2ZcdTZjNWNcdTZjODZcdTZjNmZcdTZjZGFcdTZkMDRcdTZkODdcdTZkNmYiXSxbImZiNDAiLCJcdTZkOTZcdTZkYWNcdTZkY2ZcdTZkZjhcdTZkZjJcdTZkZmNcdTZlMzlcdTZlNWNcdTZlMjdcdTZlM2NcdTZlYmZcdTZmODhcdTZmYjVcdTZmZjVcdTcwMDVcdTcwMDdcdTcwMjhcdTcw''@;'; + put 'put ''ODVcdTcwYWJcdTcxMGZcdTcxMDRcdTcxNWNcdTcxNDZcdTcxNDdcdWZhMTVcdTcxYzFcdTcxZmVcdTcyYjFcdTcyYmVcdTczMjRcdWZhMTZcdTczNzdcdTczYmRcdTczYzlcdTczZDZcdTczZTNcdTczZDJcdTc0MDdcdTczZjVcdTc0MjZcdTc0MmFcdTc0MjlcdTc0MmVcdTc0NjJcdTc0ODlc''@;'; + put 'put ''dTc0OWZcdTc1MDFcdTc1NmZcdTc2ODJcdTc2OWNcdTc2OWVcdTc2OWJcdTc2YTZcdWZhMTdcdTc3NDZcdTUyYWZcdTc4MjFcdTc4NGVcdTc4NjRcdTc4N2FcdTc5MzBcdWZhMThcdWZhMTkiXSxbImZiODAiLCJcdWZhMWFcdTc5OTRcdWZhMWJcdTc5OWJcdTdhZDFcdTdhZTdcdWZhMWNcdTdh''@;'; + put 'put ''ZWJcdTdiOWVcdWZhMWRcdTdkNDhcdTdkNWNcdTdkYjdcdTdkYTBcdTdkZDZcdTdlNTJcdTdmNDdcdTdmYTFcdWZhMWVcdTgzMDFcdTgzNjJcdTgzN2ZcdTgzYzdcdTgzZjZcdTg0NDhcdTg0YjRcdTg1NTNcdTg1NTlcdTg1NmJcdWZhMWZcdTg1YjBcdWZhMjBcdWZhMjFcdTg4MDdcdTg4ZjVc''@;'; + put 'put ''dThhMTJcdThhMzdcdThhNzlcdThhYTdcdThhYmVcdThhZGZcdWZhMjJcdThhZjZcdThiNTNcdThiN2ZcdThjZjBcdThjZjRcdThkMTJcdThkNzZcdWZhMjNcdThlY2ZcdWZhMjRcdWZhMjVcdTkwNjdcdTkwZGVcdWZhMjZcdTkxMTVcdTkxMjdcdTkxZGFcdTkxZDdcdTkxZGVcdTkxZWRcdTkx''@;'; + put 'put ''ZWVcdTkxZTRcdTkxZTVcdTkyMDZcdTkyMTBcdTkyMGFcdTkyM2FcdTkyNDBcdTkyM2NcdTkyNGVcdTkyNTlcdTkyNTFcdTkyMzlcdTkyNjdcdTkyYTdcdTkyNzdcdTkyNzhcdTkyZTdcdTkyZDdcdTkyZDlcdTkyZDBcdWZhMjdcdTkyZDVcdTkyZTBcdTkyZDNcdTkzMjVcdTkzMjFcdTkyZmJc''@;'; + put 'put ''dWZhMjhcdTkzMWVcdTkyZmZcdTkzMWRcdTkzMDJcdTkzNzBcdTkzNTdcdTkzYTRcdTkzYzZcdTkzZGVcdTkzZjhcdTk0MzFcdTk0NDVcdTk0NDhcdTk1OTJcdWY5ZGNcdWZhMjlcdTk2OWRcdTk2YWZcdTk3MzNcdTk3M2JcdTk3NDNcdTk3NGRcdTk3NGZcdTk3NTFcdTk3NTVcdTk4NTdcdTk4''@;'; + put 'put ''NjVcdWZhMmFcdWZhMmJcdTk5MjdcdWZhMmNcdTk5OWVcdTlhNGVcdTlhZDkiXSxbImZjNDAiLCJcdTlhZGNcdTliNzVcdTliNzJcdTliOGZcdTliYjFcdTliYmJcdTljMDBcdTlkNzBcdTlkNmJcdWZhMmRcdTllMTlcdTllZDEiXV0nKX0sMjI1NjI6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhw''@;'; + put 'put ''b3J0cz1KU09OLnBhcnNlKCd7IjIuMTYuODQwLjEuMTAxLjMuNC4xLjEiOiJhZXMtMTI4LWVjYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIiOiJhZXMtMTI4LWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjMiOiJhZXMtMTI4LW9mYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQiOiJhZXMt''@;'; + put 'put ''MTI4LWNmYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIxIjoiYWVzLTE5Mi1lY2IiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMiI6ImFlcy0xOTItY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjMiOiJhZXMtMTkyLW9mYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjI0IjoiYWVzLTE5Mi1j''@;'; + put 'put ''ZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MSI6ImFlcy0yNTYtZWNiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDIiOiJhZXMtMjU2LWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQzIjoiYWVzLTI1Ni1vZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40NCI6ImFlcy0yNTYtY2ZiIn0n''@;'; + put 'put ''KX0sMTIwMzA6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImxvY2FsZSI6ImVuIiwiZGF0ZSI6eyJjYSI6WyJncmVnb3J5IiwiYnVkZGhpc3QiLCJjaGluZXNlIiwiY29wdGljIiwiZGFuZ2kiLCJldGhpb2FhIiwiZXRoaW9waWMiLCJnZW5lcmljIiwiaGVicmV3''@;'; + put 'put ''IiwiaW5kaWFuIiwiaXNsYW1pYyIsImlzbGFtaWNjIiwiamFwYW5lc2UiLCJwZXJzaWFuIiwicm9jIl0sImhvdXJObzAiOnRydWUsImhvdXIxMiI6dHJ1ZSwiZm9ybWF0cyI6eyJzaG9ydCI6InsxfSwgezB9IiwibWVkaXVtIjoiezF9LCB7MH0iLCJmdWxsIjoiezF9IFwnYXRcJyB7MH0iLCJs''@;'; + put 'put ''b25nIjoiezF9IFwnYXRcJyB7MH0iLCJhdmFpbGFibGVGb3JtYXRzIjp7ImQiOiJkIiwiRSI6ImNjYyIsIkVkIjoiZCBFIiwiRWhtIjoiRSBoOm1tIGEiLCJFSG0iOiJFIEhIOm1tIiwiRWhtcyI6IkUgaDptbTpzcyBhIiwiRUhtcyI6IkUgSEg6bW06c3MiLCJHeSI6InkgRyIsIkd5TU1NIjoi''@;'; + put 'put ''TU1NIHkgRyIsIkd5TU1NZCI6Ik1NTSBkLCB5IEciLCJHeU1NTUVkIjoiRSwgTU1NIGQsIHkgRyIsImgiOiJoIGEiLCJIIjoiSEgiLCJobSI6Img6bW0gYSIsIkhtIjoiSEg6bW0iLCJobXMiOiJoOm1tOnNzIGEiLCJIbXMiOiJISDptbTpzcyIsImhtc3YiOiJoOm1tOnNzIGEgdiIsIkhtc3Yi''@;'; + put 'put ''OiJISDptbTpzcyB2IiwiaG12IjoiaDptbSBhIHYiLCJIbXYiOiJISDptbSB2IiwiTSI6IkwiLCJNZCI6Ik0vZCIsIk1FZCI6IkUsIE0vZCIsIk1NTSI6IkxMTCIsIk1NTWQiOiJNTU0gZCIsIk1NTUVkIjoiRSwgTU1NIGQiLCJNTU1NZCI6Ik1NTU0gZCIsIm1zIjoibW06c3MiLCJ5IjoieSIs''@;'; + put 'put ''InlNIjoiTS95IiwieU1kIjoiTS9kL3kiLCJ5TUVkIjoiRSwgTS9kL3kiLCJ5TU1NIjoiTU1NIHkiLCJ5TU1NZCI6Ik1NTSBkLCB5IiwieU1NTUVkIjoiRSwgTU1NIGQsIHkiLCJ5TU1NTSI6Ik1NTU0geSIsInlRUVEiOiJRUVEgeSIsInlRUVFRIjoiUVFRUSB5In0sImRhdGVGb3JtYXRzIjp7''@;'; + put 'put ''InlNTU1NRUVFRWQiOiJFRUVFLCBNTU1NIGQsIHkiLCJ5TU1NTWQiOiJNTU1NIGQsIHkiLCJ5TU1NZCI6Ik1NTSBkLCB5IiwieU1kIjoiTS9kL3l5In0sInRpbWVGb3JtYXRzIjp7ImhtbXNzenp6eiI6Img6bW06c3MgYSB6enp6IiwiaG1zeiI6Img6bW06c3MgYSB6IiwiaG1zIjoiaDptbTpz''@;'; + put 'put ''cyBhIiwiaG0iOiJoOm1tIGEifX0sImNhbGVuZGFycyI6eyJidWRkaGlzdCI6eyJtb250aHMiOnsibmFycm93IjpbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdLCJzaG9ydCI6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwi''@;'; + put 'put ''LCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSwibG9uZyI6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSwiZGF5cyI6eyJuYXJy''@;'; + put 'put ''b3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJd''@;'; + put 'put ''fSwiZXJhcyI6eyJuYXJyb3ciOlsiQkUiXSwic2hvcnQiOlsiQkUiXSwibG9uZyI6WyJCRSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiY2hpbmVzZSI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwi''@;'; + put 'put ''MTEiLCIxMiJdLCJzaG9ydCI6WyJNbzEiLCJNbzIiLCJNbzMiLCJNbzQiLCJNbzUiLCJNbzYiLCJNbzciLCJNbzgiLCJNbzkiLCJNbzEwIiwiTW8xMSIsIk1vMTIiXSwibG9uZyI6WyJNb250aDEiLCJNb250aDIiLCJNb250aDMiLCJNb250aDQiLCJNb250aDUiLCJNb250aDYiLCJNb250aDci''@;'; + put 'put ''LCJNb250aDgiLCJNb250aDkiLCJNb250aDEwIiwiTW9udGgxMSIsIk1vbnRoMTIiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5''@;'; + put 'put ''IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImNvcHRpYyI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4Iiwi''@;'; + put 'put ''OSIsIjEwIiwiMTEiLCIxMiIsIjEzIl0sInNob3J0IjpbIlRvdXQiLCJCYWJhIiwiSGF0b3IiLCJLaWFoayIsIlRvYmEiLCJBbXNoaXIiLCJCYXJhbWhhdCIsIkJhcmFtb3VkYSIsIkJhc2hhbnMiLCJQYW9uYSIsIkVwZXAiLCJNZXNyYSIsIk5hc2llIl0sImxvbmciOlsiVG91dCIsIkJhYmEi''@;'; + put 'put ''LCJIYXRvciIsIktpYWhrIiwiVG9iYSIsIkFtc2hpciIsIkJhcmFtaGF0IiwiQmFyYW1vdWRhIiwiQmFzaGFucyIsIlBhb25hIiwiRXBlcCIsIk1lc3JhIiwiTmFzaWUiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9u''@;'; + put 'put ''IiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkVSQTAiLCJFUkExIl0sInNob3J0IjpbIkVSQTAiLCJF''@;'; + put 'put ''UkExIl0sImxvbmciOlsiRVJBMCIsIkVSQTEiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImRhbmdpIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk1vMSIsIk1v''@;'; + put 'put ''MiIsIk1vMyIsIk1vNCIsIk1vNSIsIk1vNiIsIk1vNyIsIk1vOCIsIk1vOSIsIk1vMTAiLCJNbzExIiwiTW8xMiJdLCJsb25nIjpbIk1vbnRoMSIsIk1vbnRoMiIsIk1vbnRoMyIsIk1vbnRoNCIsIk1vbnRoNSIsIk1vbnRoNiIsIk1vbnRoNyIsIk1vbnRoOCIsIk1vbnRoOSIsIk1vbnRoMTAi''@;'; + put 'put ''LCJNb250aDExIiwiTW9udGgxMiJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVz''@;'; + put 'put ''ZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiZXRoaW9waWMiOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiLCIxMyJdLCJz''@;'; + put 'put ''aG9ydCI6WyJNZXNrZXJlbSIsIlRla2VtdCIsIkhlZGFyIiwiVGFoc2FzIiwiVGVyIiwiWWVrYXRpdCIsIk1lZ2FiaXQiLCJNaWF6aWEiLCJHZW5ib3QiLCJTZW5lIiwiSGFtbGUiLCJOZWhhc3NlIiwiUGFndW1lbiJdLCJsb25nIjpbIk1lc2tlcmVtIiwiVGVrZW10IiwiSGVkYXIiLCJUYWhz''@;'; + put 'put ''YXMiLCJUZXIiLCJZZWthdGl0IiwiTWVnYWJpdCIsIk1pYXppYSIsIkdlbmJvdCIsIlNlbmUiLCJIYW1sZSIsIk5laGFzc2UiLCJQYWd1bWVuIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIs''@;'; + put 'put ''IlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJFUkEwIiwiRVJBMSJdLCJzaG9ydCI6WyJFUkEwIiwiRVJBMSJdLCJsb25nIjpb''@;'; + put 'put ''IkVSQTAiLCJFUkExIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJldGhpb2FhIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIiwiMTMiXSwic2hvcnQiOlsiTWVza2VyZW0iLCJUZWtl''@;'; + put 'put ''bXQiLCJIZWRhciIsIlRhaHNhcyIsIlRlciIsIllla2F0aXQiLCJNZWdhYml0IiwiTWlhemlhIiwiR2VuYm90IiwiU2VuZSIsIkhhbWxlIiwiTmVoYXNzZSIsIlBhZ3VtZW4iXSwibG9uZyI6WyJNZXNrZXJlbSIsIlRla2VtdCIsIkhlZGFyIiwiVGFoc2FzIiwiVGVyIiwiWWVrYXRpdCIsIk1l''@;'; + put 'put ''Z2FiaXQiLCJNaWF6aWEiLCJHZW5ib3QiLCJTZW5lIiwiSGFtbGUiLCJOZWhhc3NlIiwiUGFndW1lbiJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9u''@;'; + put 'put ''ZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJhcyI6eyJuYXJyb3ciOlsiRVJBMCJdLCJzaG9ydCI6WyJFUkEwIl0sImxvbmciOlsiRVJBMCJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0i''@;'; + put 'put ''OiJQTSJ9fSwiZ2VuZXJpYyI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiJdLCJzaG9ydCI6WyJNMDEiLCJNMDIiLCJNMDMiLCJNMDQiLCJNMDUiLCJNMDYiLCJNMDciLCJNMDgiLCJNMDkiLCJNMTAiLCJNMTEi''@;'; + put 'put ''LCJNMTIiXSwibG9uZyI6WyJNMDEiLCJNMDIiLCJNMDMiLCJNMDQiLCJNMDUiLCJNMDYiLCJNMDciLCJNMDgiLCJNMDkiLCJNMTAiLCJNMTEiLCJNMTIiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwi''@;'; + put 'put ''V2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkVSQTAiLCJFUkExIl0sInNob3J0IjpbIkVSQTAiLCJFUkExIl0sImxv''@;'; + put 'put ''bmciOlsiRVJBMCIsIkVSQTEiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImdyZWdvcnkiOnsibW9udGhzIjp7Im5hcnJvdyI6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSwic2hvcnQiOlsiSmFuIiwiRmViIiwiTWFyIiwi''@;'; + put 'put ''QXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sImxvbmciOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVj''@;'; + put 'put ''ZW1iZXIiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5''@;'; + put 'put ''IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkIiLCJBIiwiQkNFIiwiQ0UiXSwic2hvcnQiOlsiQkMiLCJBRCIsIkJDRSIsIkNFIl0sImxvbmciOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIiwiQmVmb3JlIENvbW1vbiBFcmEiLCJDb21tb24gRXJhIl19''@;'; + put 'put ''LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJoZWJyZXciOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiLCIxMyIsIjciXSwic2hvcnQiOlsiVGlzaHJpIiwiSGVzaHZhbiIsIktpc2xldiIs''@;'; + put 'put ''IlRldmV0IiwiU2hldmF0IiwiQWRhciBJIiwiQWRhciIsIk5pc2FuIiwiSXlhciIsIlNpdmFuIiwiVGFtdXoiLCJBdiIsIkVsdWwiLCJBZGFyIElJIl0sImxvbmciOlsiVGlzaHJpIiwiSGVzaHZhbiIsIktpc2xldiIsIlRldmV0IiwiU2hldmF0IiwiQWRhciBJIiwiQWRhciIsIk5pc2FuIiwi''@;'; + put 'put ''SXlhciIsIlNpdmFuIiwiVGFtdXoiLCJBdiIsIkVsdWwiLCJBZGFyIElJIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1v''@;'; + put 'put ''bmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJBTSJdLCJzaG9ydCI6WyJBTSJdLCJsb25nIjpbIkFNIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJpbmRpYW4iOnsibW9u''@;'; + put 'put ''dGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiXSwic2hvcnQiOlsiQ2hhaXRyYSIsIlZhaXNha2hhIiwiSnlhaXN0aGEiLCJBc2FkaGEiLCJTcmF2YW5hIiwiQmhhZHJhIiwiQXN2aW5hIiwiS2FydGlrYSIsIkFncmFoYXlh''@;'; + put 'put ''bmEiLCJQYXVzYSIsIk1hZ2hhIiwiUGhhbGd1bmEiXSwibG9uZyI6WyJDaGFpdHJhIiwiVmFpc2FraGEiLCJKeWFpc3RoYSIsIkFzYWRoYSIsIlNyYXZhbmEiLCJCaGFkcmEiLCJBc3ZpbmEiLCJLYXJ0aWthIiwiQWdyYWhheWFuYSIsIlBhdXNhIiwiTWFnaGEiLCJQaGFsZ3VuYSJdfSwiZGF5''@;'; + put 'put ''cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJT''@;'; + put 'put ''YXR1cmRheSJdfSwiZXJhcyI6eyJuYXJyb3ciOlsiU2FrYSJdLCJzaG9ydCI6WyJTYWthIl0sImxvbmciOlsiU2FrYSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiaXNsYW1pYyI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjci''@;'; + put 'put ''LCI4IiwiOSIsIjEwIiwiMTEiLCIxMiJdLCJzaG9ydCI6WyJNdWguIiwiU2FmLiIsIlJhYi4gSSIsIlJhYi4gSUkiLCJKdW0uIEkiLCJKdW0uIElJIiwiUmFqLiIsIlNoYS4iLCJSYW0uIiwiU2hhdy4iLCJEaHVcdTAyYmJsLVEuIiwiRGh1XHUwMmJibC1ILiJdLCJsb25nIjpbIk11aGFycmFt''@;'; + put 'put ''IiwiU2FmYXIiLCJSYWJpXHUwMmJiIEkiLCJSYWJpXHUwMmJiIElJIiwiSnVtYWRhIEkiLCJKdW1hZGEgSUkiLCJSYWphYiIsIlNoYVx1MDJiYmJhbiIsIlJhbWFkYW4iLCJTaGF3d2FsIiwiRGh1XHUwMmJibC1RaVx1MDJiYmRhaCIsIkRodVx1MDJiYmwtSGlqamFoIl19LCJkYXlzIjp7Im5h''@;'; + put 'put ''cnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5''@;'; + put 'put ''Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJBSCJdLCJzaG9ydCI6WyJBSCJdLCJsb25nIjpbIkFIIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJpc2xhbWljYyI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEw''@;'; + put 'put ''IiwiMTEiLCIxMiJdLCJzaG9ydCI6WyJNdWguIiwiU2FmLiIsIlJhYi4gSSIsIlJhYi4gSUkiLCJKdW0uIEkiLCJKdW0uIElJIiwiUmFqLiIsIlNoYS4iLCJSYW0uIiwiU2hhdy4iLCJEaHVcdTAyYmJsLVEuIiwiRGh1XHUwMmJibC1ILiJdLCJsb25nIjpbIk11aGFycmFtIiwiU2FmYXIiLCJS''@;'; + put 'put ''YWJpXHUwMmJiIEkiLCJSYWJpXHUwMmJiIElJIiwiSnVtYWRhIEkiLCJKdW1hZGEgSUkiLCJSYWphYiIsIlNoYVx1MDJiYmJhbiIsIlJhbWFkYW4iLCJTaGF3d2FsIiwiRGh1XHUwMmJibC1RaVx1MDJiYmRhaCIsIkRodVx1MDJiYmwtSGlqamFoIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwi''@;'; + put 'put ''TSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7''@;'; + put 'put ''Im5hcnJvdyI6WyJBSCJdLCJzaG9ydCI6WyJBSCJdLCJsb25nIjpbIkFIIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJqYXBhbmVzZSI6eyJtb250aHMiOnsibmFycm93IjpbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdLCJz''@;'; + put 'put ''aG9ydCI6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSwibG9uZyI6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIi''@;'; + put 'put ''LCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVz''@;'; + put 'put ''ZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJhcyI6eyJuYXJyb3ciOlsiVGFpa2EgKDY0NVx1MjAxMzY1MCkiLCJIYWt1Y2hpICg2NTBcdTIwMTM2NzEpIiwiSGFrdWhcdTAxNGQgKDY3Mlx1MjAxMzY4NikiLCJTaHVjaFx1MDE0ZCAoNjg2XHUy''@;'; + put 'put ''MDEzNzAxKSIsIlRhaWhcdTAxNGQgKDcwMVx1MjAxMzcwNCkiLCJLZWl1biAoNzA0XHUyMDEzNzA4KSIsIldhZFx1MDE0ZCAoNzA4XHUyMDEzNzE1KSIsIlJlaWtpICg3MTVcdTIwMTM3MTcpIiwiWVx1MDE0ZHJcdTAxNGQgKDcxN1x1MjAxMzcyNCkiLCJKaW5raSAoNzI0XHUyMDEzNzI5KSIs''@;'; + put 'put ''IlRlbnB5XHUwMTRkICg3MjlcdTIwMTM3NDkpIiwiVGVucHlcdTAxNGQta2FtcFx1MDE0ZCAoNzQ5LTc0OSkiLCJUZW5weVx1MDE0ZC1zaFx1MDE0ZGhcdTAxNGQgKDc0OS03NTcpIiwiVGVucHlcdTAxNGQtaFx1MDE0ZGppICg3NTctNzY1KSIsIlRlbnB5XHUwMTRkLWppbmdvICg3NjUtNzY3''@;'; + put 'put ''KSIsIkppbmdvLWtlaXVuICg3NjctNzcwKSIsIkhcdTAxNGRraSAoNzcwXHUyMDEzNzgwKSIsIlRlbi1cdTAxNGQgKDc4MS03ODIpIiwiRW5yeWFrdSAoNzgyXHUyMDEzODA2KSIsIkRhaWRcdTAxNGQgKDgwNlx1MjAxMzgxMCkiLCJLXHUwMTRkbmluICg4MTBcdTIwMTM4MjQpIiwiVGVuY2hc''@;'; + put 'put ''dTAxNGQgKDgyNFx1MjAxMzgzNCkiLCJKXHUwMTRkd2EgKDgzNFx1MjAxMzg0OCkiLCJLYWpcdTAxNGQgKDg0OFx1MjAxMzg1MSkiLCJOaW5qdSAoODUxXHUyMDEzODU0KSIsIlNhaWtcdTAxNGQgKDg1NFx1MjAxMzg1NykiLCJUZW4tYW4gKDg1Ny04NTkpIiwiSlx1MDE0ZGdhbiAoODU5XHUy''@;'; + put 'put ''MDEzODc3KSIsIkdhbmd5XHUwMTRkICg4NzdcdTIwMTM4ODUpIiwiTmlubmEgKDg4NVx1MjAxMzg4OSkiLCJLYW5weVx1MDE0ZCAoODg5XHUyMDEzODk4KSIsIlNoXHUwMTRkdGFpICg4OThcdTIwMTM5MDEpIiwiRW5naSAoOTAxXHUyMDEzOTIzKSIsIkVuY2hcdTAxNGQgKDkyM1x1MjAxMzkz''@;'; + put 'put ''MSkiLCJKXHUwMTRkaGVpICg5MzFcdTIwMTM5MzgpIiwiVGVuZ3lcdTAxNGQgKDkzOFx1MjAxMzk0NykiLCJUZW5yeWFrdSAoOTQ3XHUyMDEzOTU3KSIsIlRlbnRva3UgKDk1N1x1MjAxMzk2MSkiLCJcdTAxNGN3YSAoOTYxXHUyMDEzOTY0KSIsIktcdTAxNGRoXHUwMTRkICg5NjRcdTIwMTM5''@;'; + put 'put ''NjgpIiwiQW5uYSAoOTY4XHUyMDEzOTcwKSIsIlRlbnJva3UgKDk3MFx1MjAxMzk3MykiLCJUZW5cdTIwMTllbiAoOTczXHUyMDEzOTc2KSIsIkpcdTAxNGRnZW4gKDk3Nlx1MjAxMzk3OCkiLCJUZW5nZW4gKDk3OFx1MjAxMzk4MykiLCJFaWthbiAoOTgzXHUyMDEzOTg1KSIsIkthbm5hICg5''@;'; + put 'put ''ODVcdTIwMTM5ODcpIiwiRWllbiAoOTg3XHUyMDEzOTg5KSIsIkVpc28gKDk4OVx1MjAxMzk5MCkiLCJTaFx1MDE0ZHJ5YWt1ICg5OTBcdTIwMTM5OTUpIiwiQ2hcdTAxNGR0b2t1ICg5OTVcdTIwMTM5OTkpIiwiQ2hcdTAxNGRoXHUwMTRkICg5OTlcdTIwMTMxMDA0KSIsIkthbmtcdTAxNGQg''@;'; + put 'put ''KDEwMDRcdTIwMTMxMDEyKSIsIkNoXHUwMTRkd2EgKDEwMTJcdTIwMTMxMDE3KSIsIkthbm5pbiAoMTAxN1x1MjAxMzEwMjEpIiwiSmlhbiAoMTAyMVx1MjAxMzEwMjQpIiwiTWFuanUgKDEwMjRcdTIwMTMxMDI4KSIsIkNoXHUwMTRkZ2VuICgxMDI4XHUyMDEzMTAzNykiLCJDaFx1MDE0ZHJ5''@;'; + put 'put ''YWt1ICgxMDM3XHUyMDEzMTA0MCkiLCJDaFx1MDE0ZGt5XHUwMTZiICgxMDQwXHUyMDEzMTA0NCkiLCJLYW50b2t1ICgxMDQ0XHUyMDEzMTA0NikiLCJFaXNoXHUwMTRkICgxMDQ2XHUyMDEzMTA1MykiLCJUZW5naSAoMTA1M1x1MjAxMzEwNTgpIiwiS1x1MDE0ZGhlaSAoMTA1OFx1MjAxMzEw''@;'; + put 'put ''NjUpIiwiSmlyeWFrdSAoMTA2NVx1MjAxMzEwNjkpIiwiRW5reVx1MDE2YiAoMTA2OVx1MjAxMzEwNzQpIiwiU2hcdTAxNGRobyAoMTA3NFx1MjAxMzEwNzcpIiwiU2hcdTAxNGRyeWFrdSAoMTA3N1x1MjAxMzEwODEpIiwiRWloXHUwMTRkICgxMDgxXHUyMDEzMTA4NCkiLCJcdTAxNGN0b2t1''@;'; + put 'put ''ICgxMDg0XHUyMDEzMTA4NykiLCJLYW5qaSAoMTA4N1x1MjAxMzEwOTQpIiwiS2FoXHUwMTRkICgxMDk0XHUyMDEzMTA5NikiLCJFaWNoXHUwMTRkICgxMDk2XHUyMDEzMTA5NykiLCJKXHUwMTRkdG9rdSAoMTA5N1x1MjAxMzEwOTkpIiwiS1x1MDE0ZHdhICgxMDk5XHUyMDEzMTEwNCkiLCJD''@;'; + put 'put ''aFx1MDE0ZGppICgxMTA0XHUyMDEzMTEwNikiLCJLYXNoXHUwMTRkICgxMTA2XHUyMDEzMTEwOCkiLCJUZW5uaW4gKDExMDhcdTIwMTMxMTEwKSIsIlRlbi1laSAoMTExMC0xMTEzKSIsIkVpa3lcdTAxNmIgKDExMTNcdTIwMTMxMTE4KSIsIkdlblx1MjAxOWVpICgxMTE4XHUyMDEzMTEyMCki''@;'; + put 'put ''LCJIXHUwMTRkYW4gKDExMjBcdTIwMTMxMTI0KSIsIlRlbmppICgxMTI0XHUyMDEzMTEyNikiLCJEYWlqaSAoMTEyNlx1MjAxMzExMzEpIiwiVGVuc2hcdTAxNGQgKDExMzFcdTIwMTMxMTMyKSIsIkNoXHUwMTRkc2hcdTAxNGQgKDExMzJcdTIwMTMxMTM1KSIsIkhcdTAxNGRlbiAoMTEzNVx1''@;'; + put 'put ''MjAxMzExNDEpIiwiRWlqaSAoMTE0MVx1MjAxMzExNDIpIiwiS1x1MDE0ZGppICgxMTQyXHUyMDEzMTE0NCkiLCJUZW5cdTIwMTl5XHUwMTRkICgxMTQ0XHUyMDEzMTE0NSkiLCJLeVx1MDE2YmFuICgxMTQ1XHUyMDEzMTE1MSkiLCJOaW5wZWkgKDExNTFcdTIwMTMxMTU0KSIsIkt5XHUwMTZi''@;'; + put 'put ''anUgKDExNTRcdTIwMTMxMTU2KSIsIkhcdTAxNGRnZW4gKDExNTZcdTIwMTMxMTU5KSIsIkhlaWppICgxMTU5XHUyMDEzMTE2MCkiLCJFaXJ5YWt1ICgxMTYwXHUyMDEzMTE2MSkiLCJcdTAxNGNobyAoMTE2MVx1MjAxMzExNjMpIiwiQ2hcdTAxNGRrYW4gKDExNjNcdTIwMTMxMTY1KSIsIkVp''@;'; + put 'put ''bWFuICgxMTY1XHUyMDEzMTE2NikiLCJOaW5cdTIwMTlhbiAoMTE2Nlx1MjAxMzExNjkpIiwiS2FcdTAxNGQgKDExNjlcdTIwMTMxMTcxKSIsIlNoXHUwMTRkYW4gKDExNzFcdTIwMTMxMTc1KSIsIkFuZ2VuICgxMTc1XHUyMDEzMTE3NykiLCJKaXNoXHUwMTRkICgxMTc3XHUyMDEzMTE4MSki''@;'; + put 'put ''LCJZXHUwMTRkd2EgKDExODFcdTIwMTMxMTgyKSIsIkp1ZWkgKDExODJcdTIwMTMxMTg0KSIsIkdlbnJ5YWt1ICgxMTg0XHUyMDEzMTE4NSkiLCJCdW5qaSAoMTE4NVx1MjAxMzExOTApIiwiS2Vua3lcdTAxNmIgKDExOTBcdTIwMTMxMTk5KSIsIlNoXHUwMTRkamkgKDExOTlcdTIwMTMxMjAx''@;'; + put 'put ''KSIsIktlbm5pbiAoMTIwMVx1MjAxMzEyMDQpIiwiR2Vua3lcdTAxNmIgKDEyMDRcdTIwMTMxMjA2KSIsIktlblx1MjAxOWVpICgxMjA2XHUyMDEzMTIwNykiLCJKXHUwMTRkZ2VuICgxMjA3XHUyMDEzMTIxMSkiLCJLZW5yeWFrdSAoMTIxMVx1MjAxMzEyMTMpIiwiS2VucFx1MDE0ZCAoMTIx''@;'; + put 'put ''M1x1MjAxMzEyMTkpIiwiSlx1MDE0ZGt5XHUwMTZiICgxMjE5XHUyMDEzMTIyMikiLCJKXHUwMTRkXHUwMTRkICgxMjIyXHUyMDEzMTIyNCkiLCJHZW5uaW4gKDEyMjRcdTIwMTMxMjI1KSIsIkthcm9rdSAoMTIyNVx1MjAxMzEyMjcpIiwiQW50ZWkgKDEyMjdcdTIwMTMxMjI5KSIsIkthbmtp''@;'; + put 'put ''ICgxMjI5XHUyMDEzMTIzMikiLCJKXHUwMTRkZWkgKDEyMzJcdTIwMTMxMjMzKSIsIlRlbnB1a3UgKDEyMzNcdTIwMTMxMjM0KSIsIkJ1bnJ5YWt1ICgxMjM0XHUyMDEzMTIzNSkiLCJLYXRlaSAoMTIzNVx1MjAxMzEyMzgpIiwiUnlha3VuaW4gKDEyMzhcdTIwMTMxMjM5KSIsIkVuXHUyMDE5''@;'; + put 'put ''XHUwMTRkICgxMjM5XHUyMDEzMTI0MCkiLCJOaW5qaSAoMTI0MFx1MjAxMzEyNDMpIiwiS2FuZ2VuICgxMjQzXHUyMDEzMTI0NykiLCJIXHUwMTRkamkgKDEyNDdcdTIwMTMxMjQ5KSIsIktlbmNoXHUwMTRkICgxMjQ5XHUyMDEzMTI1NikiLCJLXHUwMTRkZ2VuICgxMjU2XHUyMDEzMTI1Nyki''@;'; + put 'put ''LCJTaFx1MDE0ZGthICgxMjU3XHUyMDEzMTI1OSkiLCJTaFx1MDE0ZGdlbiAoMTI1OVx1MjAxMzEyNjApIiwiQnVuXHUyMDE5XHUwMTRkICgxMjYwXHUyMDEzMTI2MSkiLCJLXHUwMTRkY2hcdTAxNGQgKDEyNjFcdTIwMTMxMjY0KSIsIkJ1blx1MjAxOWVpICgxMjY0XHUyMDEzMTI3NSkiLCJL''@;'; + put 'put ''ZW5qaSAoMTI3NVx1MjAxMzEyNzgpIiwiS1x1MDE0ZGFuICgxMjc4XHUyMDEzMTI4OCkiLCJTaFx1MDE0ZFx1MDE0ZCAoMTI4OFx1MjAxMzEyOTMpIiwiRWluaW4gKDEyOTNcdTIwMTMxMjk5KSIsIlNoXHUwMTRkYW4gKDEyOTlcdTIwMTMxMzAyKSIsIktlbmdlbiAoMTMwMlx1MjAxMzEzMDMp''@;'; + put 'put ''IiwiS2FnZW4gKDEzMDNcdTIwMTMxMzA2KSIsIlRva3VqaSAoMTMwNlx1MjAxMzEzMDgpIiwiRW5reVx1MDE0ZCAoMTMwOFx1MjAxMzEzMTEpIiwiXHUwMTRjY2hcdTAxNGQgKDEzMTFcdTIwMTMxMzEyKSIsIlNoXHUwMTRkd2EgKDEzMTJcdTIwMTMxMzE3KSIsIkJ1bnBcdTAxNGQgKDEzMTdc''@;'; + put 'put ''dTIwMTMxMzE5KSIsIkdlblx1MDE0ZCAoMTMxOVx1MjAxMzEzMjEpIiwiR2Vua1x1MDE0ZCAoMTMyMVx1MjAxMzEzMjQpIiwiU2hcdTAxNGRjaFx1MDE2YiAoMTMyNFx1MjAxMzEzMjYpIiwiS2FyeWFrdSAoMTMyNlx1MjAxMzEzMjkpIiwiR2VudG9rdSAoMTMyOVx1MjAxMzEzMzEpIiwiR2Vu''@;'; + put 'put ''a1x1MDE0ZCAoMTMzMVx1MjAxMzEzMzQpIiwiS2VubXUgKDEzMzRcdTIwMTMxMzM2KSIsIkVuZ2VuICgxMzM2XHUyMDEzMTM0MCkiLCJLXHUwMTRka29rdSAoMTM0MFx1MjAxMzEzNDYpIiwiU2hcdTAxNGRoZWkgKDEzNDZcdTIwMTMxMzcwKSIsIktlbnRva3UgKDEzNzBcdTIwMTMxMzcyKSIs''@;'; + put 'put ''IkJ1bmNoXHUwMTZiICgxMzcyXHUyMDEzMTM3NSkiLCJUZW5qdSAoMTM3NVx1MjAxMzEzNzkpIiwiS1x1MDE0ZHJ5YWt1ICgxMzc5XHUyMDEzMTM4MSkiLCJLXHUwMTRkd2EgKDEzODFcdTIwMTMxMzg0KSIsIkdlbmNoXHUwMTZiICgxMzg0XHUyMDEzMTM5MikiLCJNZWl0b2t1ICgxMzg0XHUy''@;'; + put 'put ''MDEzMTM4NykiLCJLYWtlaSAoMTM4N1x1MjAxMzEzODkpIiwiS1x1MDE0ZFx1MDE0ZCAoMTM4OVx1MjAxMzEzOTApIiwiTWVpdG9rdSAoMTM5MFx1MjAxMzEzOTQpIiwiXHUwMTRjZWkgKDEzOTRcdTIwMTMxNDI4KSIsIlNoXHUwMTRkY2hcdTAxNGQgKDE0MjhcdTIwMTMxNDI5KSIsIkVpa3lc''@;'; + put 'put ''dTAxNGQgKDE0MjlcdTIwMTMxNDQxKSIsIktha2l0c3UgKDE0NDFcdTIwMTMxNDQ0KSIsIkJ1blx1MjAxOWFuICgxNDQ0XHUyMDEzMTQ0OSkiLCJIXHUwMTRkdG9rdSAoMTQ0OVx1MjAxMzE0NTIpIiwiS3lcdTAxNGR0b2t1ICgxNDUyXHUyMDEzMTQ1NSkiLCJLXHUwMTRkc2hcdTAxNGQgKDE0''@;'; + put 'put ''NTVcdTIwMTMxNDU3KSIsIkNoXHUwMTRkcm9rdSAoMTQ1N1x1MjAxMzE0NjApIiwiS2Fuc2hcdTAxNGQgKDE0NjBcdTIwMTMxNDY2KSIsIkJ1bnNoXHUwMTRkICgxNDY2XHUyMDEzMTQ2NykiLCJcdTAxNGNuaW4gKDE0NjdcdTIwMTMxNDY5KSIsIkJ1bm1laSAoMTQ2OVx1MjAxMzE0ODcpIiwi''@;'; + put 'put ''Q2hcdTAxNGRreVx1MDE0ZCAoMTQ4N1x1MjAxMzE0ODkpIiwiRW50b2t1ICgxNDg5XHUyMDEzMTQ5MikiLCJNZWlcdTAxNGQgKDE0OTJcdTIwMTMxNTAxKSIsIkJ1bmtpICgxNTAxXHUyMDEzMTUwNCkiLCJFaXNoXHUwMTRkICgxNTA0XHUyMDEzMTUyMSkiLCJUYWllaSAoMTUyMVx1MjAxMzE1''@;'; + put 'put ''MjgpIiwiS3lcdTAxNGRyb2t1ICgxNTI4XHUyMDEzMTUzMikiLCJUZW5idW4gKDE1MzJcdTIwMTMxNTU1KSIsIktcdTAxNGRqaSAoMTU1NVx1MjAxMzE1NTgpIiwiRWlyb2t1ICgxNTU4XHUyMDEzMTU3MCkiLCJHZW5raSAoMTU3MFx1MjAxMzE1NzMpIiwiVGVuc2hcdTAxNGQgKDE1NzNcdTIw''@;'; + put 'put ''MTMxNTkyKSIsIkJ1bnJva3UgKDE1OTJcdTIwMTMxNTk2KSIsIktlaWNoXHUwMTRkICgxNTk2XHUyMDEzMTYxNSkiLCJHZW5uYSAoMTYxNVx1MjAxMzE2MjQpIiwiS2FuXHUyMDE5ZWkgKDE2MjRcdTIwMTMxNjQ0KSIsIlNoXHUwMTRkaG8gKDE2NDRcdTIwMTMxNjQ4KSIsIktlaWFuICgxNjQ4''@;'; + put 'put ''XHUyMDEzMTY1MikiLCJKXHUwMTRkXHUwMTRkICgxNjUyXHUyMDEzMTY1NSkiLCJNZWlyZWtpICgxNjU1XHUyMDEzMTY1OCkiLCJNYW5qaSAoMTY1OFx1MjAxMzE2NjEpIiwiS2FuYnVuICgxNjYxXHUyMDEzMTY3MykiLCJFbnBcdTAxNGQgKDE2NzNcdTIwMTMxNjgxKSIsIlRlbm5hICgxNjgx''@;'; + put 'put ''XHUyMDEzMTY4NCkiLCJKXHUwMTRka3lcdTAxNGQgKDE2ODRcdTIwMTMxNjg4KSIsIkdlbnJva3UgKDE2ODhcdTIwMTMxNzA0KSIsIkhcdTAxNGRlaSAoMTcwNFx1MjAxMzE3MTEpIiwiU2hcdTAxNGR0b2t1ICgxNzExXHUyMDEzMTcxNikiLCJLeVx1MDE0ZGhcdTAxNGQgKDE3MTZcdTIwMTMx''@;'; + put 'put ''NzM2KSIsIkdlbmJ1biAoMTczNlx1MjAxMzE3NDEpIiwiS2FucFx1MDE0ZCAoMTc0MVx1MjAxMzE3NDQpIiwiRW5reVx1MDE0ZCAoMTc0NFx1MjAxMzE3NDgpIiwiS2FuXHUyMDE5ZW4gKDE3NDhcdTIwMTMxNzUxKSIsIkhcdTAxNGRyZWtpICgxNzUxXHUyMDEzMTc2NCkiLCJNZWl3YSAoMTc2''@;'; + put 'put ''NFx1MjAxMzE3NzIpIiwiQW5cdTIwMTllaSAoMTc3Mlx1MjAxMzE3ODEpIiwiVGVubWVpICgxNzgxXHUyMDEzMTc4OSkiLCJLYW5zZWkgKDE3ODlcdTIwMTMxODAxKSIsIkt5XHUwMTRkd2EgKDE4MDFcdTIwMTMxODA0KSIsIkJ1bmthICgxODA0XHUyMDEzMTgxOCkiLCJCdW5zZWkgKDE4MThc''@;'; + put 'put ''dTIwMTMxODMwKSIsIlRlbnBcdTAxNGQgKDE4MzBcdTIwMTMxODQ0KSIsIktcdTAxNGRrYSAoMTg0NFx1MjAxMzE4NDgpIiwiS2FlaSAoMTg0OFx1MjAxMzE4NTQpIiwiQW5zZWkgKDE4NTRcdTIwMTMxODYwKSIsIk1hblx1MjAxOWVuICgxODYwXHUyMDEzMTg2MSkiLCJCdW5reVx1MDE2YiAo''@;'; + put 'put ''MTg2MVx1MjAxMzE4NjQpIiwiR2VuamkgKDE4NjRcdTIwMTMxODY1KSIsIktlaVx1MDE0ZCAoMTg2NVx1MjAxMzE4NjgpIiwiTSIsIlQiLCJTIiwiSCJdLCJzaG9ydCI6WyJUYWlrYSAoNjQ1XHUyMDEzNjUwKSIsIkhha3VjaGkgKDY1MFx1MjAxMzY3MSkiLCJIYWt1aFx1MDE0ZCAoNjcyXHUy''@;'; + put 'put ''MDEzNjg2KSIsIlNodWNoXHUwMTRkICg2ODZcdTIwMTM3MDEpIiwiVGFpaFx1MDE0ZCAoNzAxXHUyMDEzNzA0KSIsIktlaXVuICg3MDRcdTIwMTM3MDgpIiwiV2FkXHUwMTRkICg3MDhcdTIwMTM3MTUpIiwiUmVpa2kgKDcxNVx1MjAxMzcxNykiLCJZXHUwMTRkclx1MDE0ZCAoNzE3XHUyMDEz''@;'; + put 'put ''NzI0KSIsIkppbmtpICg3MjRcdTIwMTM3MjkpIiwiVGVucHlcdTAxNGQgKDcyOVx1MjAxMzc0OSkiLCJUZW5weVx1MDE0ZC1rYW1wXHUwMTRkICg3NDktNzQ5KSIsIlRlbnB5XHUwMTRkLXNoXHUwMTRkaFx1MDE0ZCAoNzQ5LTc1NykiLCJUZW5weVx1MDE0ZC1oXHUwMTRkamkgKDc1Ny03NjUp''@;'; + put 'put ''IiwiVGVucHlcdTAxNGQtamluZ28gKDc2NS03NjcpIiwiSmluZ28ta2VpdW4gKDc2Ny03NzApIiwiSFx1MDE0ZGtpICg3NzBcdTIwMTM3ODApIiwiVGVuLVx1MDE0ZCAoNzgxLTc4MikiLCJFbnJ5YWt1ICg3ODJcdTIwMTM4MDYpIiwiRGFpZFx1MDE0ZCAoODA2XHUyMDEzODEwKSIsIktcdTAx''@;'; + put 'put ''NGRuaW4gKDgxMFx1MjAxMzgyNCkiLCJUZW5jaFx1MDE0ZCAoODI0XHUyMDEzODM0KSIsIkpcdTAxNGR3YSAoODM0XHUyMDEzODQ4KSIsIkthalx1MDE0ZCAoODQ4XHUyMDEzODUxKSIsIk5pbmp1ICg4NTFcdTIwMTM4NTQpIiwiU2Fpa1x1MDE0ZCAoODU0XHUyMDEzODU3KSIsIlRlbi1hbiAo''@;'; + put 'put ''ODU3LTg1OSkiLCJKXHUwMTRkZ2FuICg4NTlcdTIwMTM4NzcpIiwiR2FuZ3lcdTAxNGQgKDg3N1x1MjAxMzg4NSkiLCJOaW5uYSAoODg1XHUyMDEzODg5KSIsIkthbnB5XHUwMTRkICg4ODlcdTIwMTM4OTgpIiwiU2hcdTAxNGR0YWkgKDg5OFx1MjAxMzkwMSkiLCJFbmdpICg5MDFcdTIwMTM5''@;'; + put 'put ''MjMpIiwiRW5jaFx1MDE0ZCAoOTIzXHUyMDEzOTMxKSIsIkpcdTAxNGRoZWkgKDkzMVx1MjAxMzkzOCkiLCJUZW5neVx1MDE0ZCAoOTM4XHUyMDEzOTQ3KSIsIlRlbnJ5YWt1ICg5NDdcdTIwMTM5NTcpIiwiVGVudG9rdSAoOTU3XHUyMDEzOTYxKSIsIlx1MDE0Y3dhICg5NjFcdTIwMTM5NjQp''@;'; + put 'put ''IiwiS1x1MDE0ZGhcdTAxNGQgKDk2NFx1MjAxMzk2OCkiLCJBbm5hICg5NjhcdTIwMTM5NzApIiwiVGVucm9rdSAoOTcwXHUyMDEzOTczKSIsIlRlblx1MjAxOWVuICg5NzNcdTIwMTM5NzYpIiwiSlx1MDE0ZGdlbiAoOTc2XHUyMDEzOTc4KSIsIlRlbmdlbiAoOTc4XHUyMDEzOTgzKSIsIkVp''@;'; + put 'put ''a2FuICg5ODNcdTIwMTM5ODUpIiwiS2FubmEgKDk4NVx1MjAxMzk4NykiLCJFaWVuICg5ODdcdTIwMTM5ODkpIiwiRWlzbyAoOTg5XHUyMDEzOTkwKSIsIlNoXHUwMTRkcnlha3UgKDk5MFx1MjAxMzk5NSkiLCJDaFx1MDE0ZHRva3UgKDk5NVx1MjAxMzk5OSkiLCJDaFx1MDE0ZGhcdTAxNGQg''@;'; + put 'put ''KDk5OVx1MjAxMzEwMDQpIiwiS2Fua1x1MDE0ZCAoMTAwNFx1MjAxMzEwMTIpIiwiQ2hcdTAxNGR3YSAoMTAxMlx1MjAxMzEwMTcpIiwiS2FubmluICgxMDE3XHUyMDEzMTAyMSkiLCJKaWFuICgxMDIxXHUyMDEzMTAyNCkiLCJNYW5qdSAoMTAyNFx1MjAxMzEwMjgpIiwiQ2hcdTAxNGRnZW4g''@;'; + put 'put ''KDEwMjhcdTIwMTMxMDM3KSIsIkNoXHUwMTRkcnlha3UgKDEwMzdcdTIwMTMxMDQwKSIsIkNoXHUwMTRka3lcdTAxNmIgKDEwNDBcdTIwMTMxMDQ0KSIsIkthbnRva3UgKDEwNDRcdTIwMTMxMDQ2KSIsIkVpc2hcdTAxNGQgKDEwNDZcdTIwMTMxMDUzKSIsIlRlbmdpICgxMDUzXHUyMDEzMTA1''@;'; + put 'put ''OCkiLCJLXHUwMTRkaGVpICgxMDU4XHUyMDEzMTA2NSkiLCJKaXJ5YWt1ICgxMDY1XHUyMDEzMTA2OSkiLCJFbmt5XHUwMTZiICgxMDY5XHUyMDEzMTA3NCkiLCJTaFx1MDE0ZGhvICgxMDc0XHUyMDEzMTA3NykiLCJTaFx1MDE0ZHJ5YWt1ICgxMDc3XHUyMDEzMTA4MSkiLCJFaWhcdTAxNGQg''@;'; + put 'put ''KDEwODFcdTIwMTMxMDg0KSIsIlx1MDE0Y3Rva3UgKDEwODRcdTIwMTMxMDg3KSIsIkthbmppICgxMDg3XHUyMDEzMTA5NCkiLCJLYWhcdTAxNGQgKDEwOTRcdTIwMTMxMDk2KSIsIkVpY2hcdTAxNGQgKDEwOTZcdTIwMTMxMDk3KSIsIkpcdTAxNGR0b2t1ICgxMDk3XHUyMDEzMTA5OSkiLCJL''@;'; + put 'put ''XHUwMTRkd2EgKDEwOTlcdTIwMTMxMTA0KSIsIkNoXHUwMTRkamkgKDExMDRcdTIwMTMxMTA2KSIsIkthc2hcdTAxNGQgKDExMDZcdTIwMTMxMTA4KSIsIlRlbm5pbiAoMTEwOFx1MjAxMzExMTApIiwiVGVuLWVpICgxMTEwLTExMTMpIiwiRWlreVx1MDE2YiAoMTExM1x1MjAxMzExMTgpIiwi''@;'; + put 'put ''R2VuXHUyMDE5ZWkgKDExMThcdTIwMTMxMTIwKSIsIkhcdTAxNGRhbiAoMTEyMFx1MjAxMzExMjQpIiwiVGVuamkgKDExMjRcdTIwMTMxMTI2KSIsIkRhaWppICgxMTI2XHUyMDEzMTEzMSkiLCJUZW5zaFx1MDE0ZCAoMTEzMVx1MjAxMzExMzIpIiwiQ2hcdTAxNGRzaFx1MDE0ZCAoMTEzMlx1''@;'; + put 'put ''MjAxMzExMzUpIiwiSFx1MDE0ZGVuICgxMTM1XHUyMDEzMTE0MSkiLCJFaWppICgxMTQxXHUyMDEzMTE0MikiLCJLXHUwMTRkamkgKDExNDJcdTIwMTMxMTQ0KSIsIlRlblx1MjAxOXlcdTAxNGQgKDExNDRcdTIwMTMxMTQ1KSIsIkt5XHUwMTZiYW4gKDExNDVcdTIwMTMxMTUxKSIsIk5pbnBl''@;'; + put 'put ''aSAoMTE1MVx1MjAxMzExNTQpIiwiS3lcdTAxNmJqdSAoMTE1NFx1MjAxMzExNTYpIiwiSFx1MDE0ZGdlbiAoMTE1Nlx1MjAxMzExNTkpIiwiSGVpamkgKDExNTlcdTIwMTMxMTYwKSIsIkVpcnlha3UgKDExNjBcdTIwMTMxMTYxKSIsIlx1MDE0Y2hvICgxMTYxXHUyMDEzMTE2MykiLCJDaFx1''@;'; + put 'put ''MDE0ZGthbiAoMTE2M1x1MjAxMzExNjUpIiwiRWltYW4gKDExNjVcdTIwMTMxMTY2KSIsIk5pblx1MjAxOWFuICgxMTY2XHUyMDEzMTE2OSkiLCJLYVx1MDE0ZCAoMTE2OVx1MjAxMzExNzEpIiwiU2hcdTAxNGRhbiAoMTE3MVx1MjAxMzExNzUpIiwiQW5nZW4gKDExNzVcdTIwMTMxMTc3KSIs''@;'; + put 'put ''Ikppc2hcdTAxNGQgKDExNzdcdTIwMTMxMTgxKSIsIllcdTAxNGR3YSAoMTE4MVx1MjAxMzExODIpIiwiSnVlaSAoMTE4Mlx1MjAxMzExODQpIiwiR2Vucnlha3UgKDExODRcdTIwMTMxMTg1KSIsIkJ1bmppICgxMTg1XHUyMDEzMTE5MCkiLCJLZW5reVx1MDE2YiAoMTE5MFx1MjAxMzExOTkp''@;'; + put 'put ''IiwiU2hcdTAxNGRqaSAoMTE5OVx1MjAxMzEyMDEpIiwiS2VubmluICgxMjAxXHUyMDEzMTIwNCkiLCJHZW5reVx1MDE2YiAoMTIwNFx1MjAxMzEyMDYpIiwiS2VuXHUyMDE5ZWkgKDEyMDZcdTIwMTMxMjA3KSIsIkpcdTAxNGRnZW4gKDEyMDdcdTIwMTMxMjExKSIsIktlbnJ5YWt1ICgxMjEx''@;'; + put 'put ''XHUyMDEzMTIxMykiLCJLZW5wXHUwMTRkICgxMjEzXHUyMDEzMTIxOSkiLCJKXHUwMTRka3lcdTAxNmIgKDEyMTlcdTIwMTMxMjIyKSIsIkpcdTAxNGRcdTAxNGQgKDEyMjJcdTIwMTMxMjI0KSIsIkdlbm5pbiAoMTIyNFx1MjAxMzEyMjUpIiwiS2Fyb2t1ICgxMjI1XHUyMDEzMTIyNykiLCJB''@;'; + put 'put ''bnRlaSAoMTIyN1x1MjAxMzEyMjkpIiwiS2Fua2kgKDEyMjlcdTIwMTMxMjMyKSIsIkpcdTAxNGRlaSAoMTIzMlx1MjAxMzEyMzMpIiwiVGVucHVrdSAoMTIzM1x1MjAxMzEyMzQpIiwiQnVucnlha3UgKDEyMzRcdTIwMTMxMjM1KSIsIkthdGVpICgxMjM1XHUyMDEzMTIzOCkiLCJSeWFrdW5p''@;'; + put 'put ''biAoMTIzOFx1MjAxMzEyMzkpIiwiRW5cdTIwMTlcdTAxNGQgKDEyMzlcdTIwMTMxMjQwKSIsIk5pbmppICgxMjQwXHUyMDEzMTI0MykiLCJLYW5nZW4gKDEyNDNcdTIwMTMxMjQ3KSIsIkhcdTAxNGRqaSAoMTI0N1x1MjAxMzEyNDkpIiwiS2VuY2hcdTAxNGQgKDEyNDlcdTIwMTMxMjU2KSIs''@;'; + put 'put ''IktcdTAxNGRnZW4gKDEyNTZcdTIwMTMxMjU3KSIsIlNoXHUwMTRka2EgKDEyNTdcdTIwMTMxMjU5KSIsIlNoXHUwMTRkZ2VuICgxMjU5XHUyMDEzMTI2MCkiLCJCdW5cdTIwMTlcdTAxNGQgKDEyNjBcdTIwMTMxMjYxKSIsIktcdTAxNGRjaFx1MDE0ZCAoMTI2MVx1MjAxMzEyNjQpIiwiQnVu''@;'; + put 'put ''XHUyMDE5ZWkgKDEyNjRcdTIwMTMxMjc1KSIsIktlbmppICgxMjc1XHUyMDEzMTI3OCkiLCJLXHUwMTRkYW4gKDEyNzhcdTIwMTMxMjg4KSIsIlNoXHUwMTRkXHUwMTRkICgxMjg4XHUyMDEzMTI5MykiLCJFaW5pbiAoMTI5M1x1MjAxMzEyOTkpIiwiU2hcdTAxNGRhbiAoMTI5OVx1MjAxMzEz''@;'; + put 'put ''MDIpIiwiS2VuZ2VuICgxMzAyXHUyMDEzMTMwMykiLCJLYWdlbiAoMTMwM1x1MjAxMzEzMDYpIiwiVG9rdWppICgxMzA2XHUyMDEzMTMwOCkiLCJFbmt5XHUwMTRkICgxMzA4XHUyMDEzMTMxMSkiLCJcdTAxNGNjaFx1MDE0ZCAoMTMxMVx1MjAxMzEzMTIpIiwiU2hcdTAxNGR3YSAoMTMxMlx1''@;'; + put 'put ''MjAxMzEzMTcpIiwiQnVucFx1MDE0ZCAoMTMxN1x1MjAxMzEzMTkpIiwiR2VuXHUwMTRkICgxMzE5XHUyMDEzMTMyMSkiLCJHZW5rXHUwMTRkICgxMzIxXHUyMDEzMTMyNCkiLCJTaFx1MDE0ZGNoXHUwMTZiICgxMzI0XHUyMDEzMTMyNikiLCJLYXJ5YWt1ICgxMzI2XHUyMDEzMTMyOSkiLCJH''@;'; + put 'put ''ZW50b2t1ICgxMzI5XHUyMDEzMTMzMSkiLCJHZW5rXHUwMTRkICgxMzMxXHUyMDEzMTMzNCkiLCJLZW5tdSAoMTMzNFx1MjAxMzEzMzYpIiwiRW5nZW4gKDEzMzZcdTIwMTMxMzQwKSIsIktcdTAxNGRrb2t1ICgxMzQwXHUyMDEzMTM0NikiLCJTaFx1MDE0ZGhlaSAoMTM0Nlx1MjAxMzEzNzAp''@;'; + put 'put ''IiwiS2VudG9rdSAoMTM3MFx1MjAxMzEzNzIpIiwiQnVuY2hcdTAxNmIgKDEzNzJcdTIwMTMxMzc1KSIsIlRlbmp1ICgxMzc1XHUyMDEzMTM3OSkiLCJLXHUwMTRkcnlha3UgKDEzNzlcdTIwMTMxMzgxKSIsIktcdTAxNGR3YSAoMTM4MVx1MjAxMzEzODQpIiwiR2VuY2hcdTAxNmIgKDEzODRc''@;'; + put 'put ''dTIwMTMxMzkyKSIsIk1laXRva3UgKDEzODRcdTIwMTMxMzg3KSIsIktha2VpICgxMzg3XHUyMDEzMTM4OSkiLCJLXHUwMTRkXHUwMTRkICgxMzg5XHUyMDEzMTM5MCkiLCJNZWl0b2t1ICgxMzkwXHUyMDEzMTM5NCkiLCJcdTAxNGNlaSAoMTM5NFx1MjAxMzE0MjgpIiwiU2hcdTAxNGRjaFx1''@;'; + put 'put ''MDE0ZCAoMTQyOFx1MjAxMzE0MjkpIiwiRWlreVx1MDE0ZCAoMTQyOVx1MjAxMzE0NDEpIiwiS2FraXRzdSAoMTQ0MVx1MjAxMzE0NDQpIiwiQnVuXHUyMDE5YW4gKDE0NDRcdTIwMTMxNDQ5KSIsIkhcdTAxNGR0b2t1ICgxNDQ5XHUyMDEzMTQ1MikiLCJLeVx1MDE0ZHRva3UgKDE0NTJcdTIw''@;'; + put 'put ''MTMxNDU1KSIsIktcdTAxNGRzaFx1MDE0ZCAoMTQ1NVx1MjAxMzE0NTcpIiwiQ2hcdTAxNGRyb2t1ICgxNDU3XHUyMDEzMTQ2MCkiLCJLYW5zaFx1MDE0ZCAoMTQ2MFx1MjAxMzE0NjYpIiwiQnVuc2hcdTAxNGQgKDE0NjZcdTIwMTMxNDY3KSIsIlx1MDE0Y25pbiAoMTQ2N1x1MjAxMzE0Njkp''@;'; + put 'put ''IiwiQnVubWVpICgxNDY5XHUyMDEzMTQ4NykiLCJDaFx1MDE0ZGt5XHUwMTRkICgxNDg3XHUyMDEzMTQ4OSkiLCJFbnRva3UgKDE0ODlcdTIwMTMxNDkyKSIsIk1laVx1MDE0ZCAoMTQ5Mlx1MjAxMzE1MDEpIiwiQnVua2kgKDE1MDFcdTIwMTMxNTA0KSIsIkVpc2hcdTAxNGQgKDE1MDRcdTIw''@;'; + put 'put ''MTMxNTIxKSIsIlRhaWVpICgxNTIxXHUyMDEzMTUyOCkiLCJLeVx1MDE0ZHJva3UgKDE1MjhcdTIwMTMxNTMyKSIsIlRlbmJ1biAoMTUzMlx1MjAxMzE1NTUpIiwiS1x1MDE0ZGppICgxNTU1XHUyMDEzMTU1OCkiLCJFaXJva3UgKDE1NThcdTIwMTMxNTcwKSIsIkdlbmtpICgxNTcwXHUyMDEz''@;'; + put 'put ''MTU3MykiLCJUZW5zaFx1MDE0ZCAoMTU3M1x1MjAxMzE1OTIpIiwiQnVucm9rdSAoMTU5Mlx1MjAxMzE1OTYpIiwiS2VpY2hcdTAxNGQgKDE1OTZcdTIwMTMxNjE1KSIsIkdlbm5hICgxNjE1XHUyMDEzMTYyNCkiLCJLYW5cdTIwMTllaSAoMTYyNFx1MjAxMzE2NDQpIiwiU2hcdTAxNGRobyAo''@;'; + put 'put ''MTY0NFx1MjAxMzE2NDgpIiwiS2VpYW4gKDE2NDhcdTIwMTMxNjUyKSIsIkpcdTAxNGRcdTAxNGQgKDE2NTJcdTIwMTMxNjU1KSIsIk1laXJla2kgKDE2NTVcdTIwMTMxNjU4KSIsIk1hbmppICgxNjU4XHUyMDEzMTY2MSkiLCJLYW5idW4gKDE2NjFcdTIwMTMxNjczKSIsIkVucFx1MDE0ZCAo''@;'; + put 'put ''MTY3M1x1MjAxMzE2ODEpIiwiVGVubmEgKDE2ODFcdTIwMTMxNjg0KSIsIkpcdTAxNGRreVx1MDE0ZCAoMTY4NFx1MjAxMzE2ODgpIiwiR2Vucm9rdSAoMTY4OFx1MjAxMzE3MDQpIiwiSFx1MDE0ZGVpICgxNzA0XHUyMDEzMTcxMSkiLCJTaFx1MDE0ZHRva3UgKDE3MTFcdTIwMTMxNzE2KSIs''@;'; + put 'put ''Ikt5XHUwMTRkaFx1MDE0ZCAoMTcxNlx1MjAxMzE3MzYpIiwiR2VuYnVuICgxNzM2XHUyMDEzMTc0MSkiLCJLYW5wXHUwMTRkICgxNzQxXHUyMDEzMTc0NCkiLCJFbmt5XHUwMTRkICgxNzQ0XHUyMDEzMTc0OCkiLCJLYW5cdTIwMTllbiAoMTc0OFx1MjAxMzE3NTEpIiwiSFx1MDE0ZHJla2kg''@;'; + put 'put ''KDE3NTFcdTIwMTMxNzY0KSIsIk1laXdhICgxNzY0XHUyMDEzMTc3MikiLCJBblx1MjAxOWVpICgxNzcyXHUyMDEzMTc4MSkiLCJUZW5tZWkgKDE3ODFcdTIwMTMxNzg5KSIsIkthbnNlaSAoMTc4OVx1MjAxMzE4MDEpIiwiS3lcdTAxNGR3YSAoMTgwMVx1MjAxMzE4MDQpIiwiQnVua2EgKDE4''@;'; + put 'put ''MDRcdTIwMTMxODE4KSIsIkJ1bnNlaSAoMTgxOFx1MjAxMzE4MzApIiwiVGVucFx1MDE0ZCAoMTgzMFx1MjAxMzE4NDQpIiwiS1x1MDE0ZGthICgxODQ0XHUyMDEzMTg0OCkiLCJLYWVpICgxODQ4XHUyMDEzMTg1NCkiLCJBbnNlaSAoMTg1NFx1MjAxMzE4NjApIiwiTWFuXHUyMDE5ZW4gKDE4''@;'; + put 'put ''NjBcdTIwMTMxODYxKSIsIkJ1bmt5XHUwMTZiICgxODYxXHUyMDEzMTg2NCkiLCJHZW5qaSAoMTg2NFx1MjAxMzE4NjUpIiwiS2VpXHUwMTRkICgxODY1XHUyMDEzMTg2OCkiLCJNZWlqaSIsIlRhaXNoXHUwMTRkIiwiU2hcdTAxNGR3YSIsIkhlaXNlaSJdLCJsb25nIjpbIlRhaWthICg2NDVc''@;'; + put 'put ''dTIwMTM2NTApIiwiSGFrdWNoaSAoNjUwXHUyMDEzNjcxKSIsIkhha3VoXHUwMTRkICg2NzJcdTIwMTM2ODYpIiwiU2h1Y2hcdTAxNGQgKDY4Nlx1MjAxMzcwMSkiLCJUYWloXHUwMTRkICg3MDFcdTIwMTM3MDQpIiwiS2VpdW4gKDcwNFx1MjAxMzcwOCkiLCJXYWRcdTAxNGQgKDcwOFx1MjAx''@;'; + put 'put ''MzcxNSkiLCJSZWlraSAoNzE1XHUyMDEzNzE3KSIsIllcdTAxNGRyXHUwMTRkICg3MTdcdTIwMTM3MjQpIiwiSmlua2kgKDcyNFx1MjAxMzcyOSkiLCJUZW5weVx1MDE0ZCAoNzI5XHUyMDEzNzQ5KSIsIlRlbnB5XHUwMTRkLWthbXBcdTAxNGQgKDc0OS03NDkpIiwiVGVucHlcdTAxNGQtc2hc''@;'; + put 'put ''dTAxNGRoXHUwMTRkICg3NDktNzU3KSIsIlRlbnB5XHUwMTRkLWhcdTAxNGRqaSAoNzU3LTc2NSkiLCJUZW5weVx1MDE0ZC1qaW5nbyAoNzY1LTc2NykiLCJKaW5nby1rZWl1biAoNzY3LTc3MCkiLCJIXHUwMTRka2kgKDc3MFx1MjAxMzc4MCkiLCJUZW4tXHUwMTRkICg3ODEtNzgyKSIsIkVu''@;'; + put 'put ''cnlha3UgKDc4Mlx1MjAxMzgwNikiLCJEYWlkXHUwMTRkICg4MDZcdTIwMTM4MTApIiwiS1x1MDE0ZG5pbiAoODEwXHUyMDEzODI0KSIsIlRlbmNoXHUwMTRkICg4MjRcdTIwMTM4MzQpIiwiSlx1MDE0ZHdhICg4MzRcdTIwMTM4NDgpIiwiS2FqXHUwMTRkICg4NDhcdTIwMTM4NTEpIiwiTmlu''@;'; + put 'put ''anUgKDg1MVx1MjAxMzg1NCkiLCJTYWlrXHUwMTRkICg4NTRcdTIwMTM4NTcpIiwiVGVuLWFuICg4NTctODU5KSIsIkpcdTAxNGRnYW4gKDg1OVx1MjAxMzg3NykiLCJHYW5neVx1MDE0ZCAoODc3XHUyMDEzODg1KSIsIk5pbm5hICg4ODVcdTIwMTM4ODkpIiwiS2FucHlcdTAxNGQgKDg4OVx1''@;'; + put 'put ''MjAxMzg5OCkiLCJTaFx1MDE0ZHRhaSAoODk4XHUyMDEzOTAxKSIsIkVuZ2kgKDkwMVx1MjAxMzkyMykiLCJFbmNoXHUwMTRkICg5MjNcdTIwMTM5MzEpIiwiSlx1MDE0ZGhlaSAoOTMxXHUyMDEzOTM4KSIsIlRlbmd5XHUwMTRkICg5MzhcdTIwMTM5NDcpIiwiVGVucnlha3UgKDk0N1x1MjAx''@;'; + put 'put ''Mzk1NykiLCJUZW50b2t1ICg5NTdcdTIwMTM5NjEpIiwiXHUwMTRjd2EgKDk2MVx1MjAxMzk2NCkiLCJLXHUwMTRkaFx1MDE0ZCAoOTY0XHUyMDEzOTY4KSIsIkFubmEgKDk2OFx1MjAxMzk3MCkiLCJUZW5yb2t1ICg5NzBcdTIwMTM5NzMpIiwiVGVuXHUyMDE5ZW4gKDk3M1x1MjAxMzk3Niki''@;'; + put 'put ''LCJKXHUwMTRkZ2VuICg5NzZcdTIwMTM5NzgpIiwiVGVuZ2VuICg5NzhcdTIwMTM5ODMpIiwiRWlrYW4gKDk4M1x1MjAxMzk4NSkiLCJLYW5uYSAoOTg1XHUyMDEzOTg3KSIsIkVpZW4gKDk4N1x1MjAxMzk4OSkiLCJFaXNvICg5ODlcdTIwMTM5OTApIiwiU2hcdTAxNGRyeWFrdSAoOTkwXHUy''@;'; + put 'put ''MDEzOTk1KSIsIkNoXHUwMTRkdG9rdSAoOTk1XHUyMDEzOTk5KSIsIkNoXHUwMTRkaFx1MDE0ZCAoOTk5XHUyMDEzMTAwNCkiLCJLYW5rXHUwMTRkICgxMDA0XHUyMDEzMTAxMikiLCJDaFx1MDE0ZHdhICgxMDEyXHUyMDEzMTAxNykiLCJLYW5uaW4gKDEwMTdcdTIwMTMxMDIxKSIsIkppYW4g''@;'; + put 'put ''KDEwMjFcdTIwMTMxMDI0KSIsIk1hbmp1ICgxMDI0XHUyMDEzMTAyOCkiLCJDaFx1MDE0ZGdlbiAoMTAyOFx1MjAxMzEwMzcpIiwiQ2hcdTAxNGRyeWFrdSAoMTAzN1x1MjAxMzEwNDApIiwiQ2hcdTAxNGRreVx1MDE2YiAoMTA0MFx1MjAxMzEwNDQpIiwiS2FudG9rdSAoMTA0NFx1MjAxMzEw''@;'; + put 'put ''NDYpIiwiRWlzaFx1MDE0ZCAoMTA0Nlx1MjAxMzEwNTMpIiwiVGVuZ2kgKDEwNTNcdTIwMTMxMDU4KSIsIktcdTAxNGRoZWkgKDEwNThcdTIwMTMxMDY1KSIsIkppcnlha3UgKDEwNjVcdTIwMTMxMDY5KSIsIkVua3lcdTAxNmIgKDEwNjlcdTIwMTMxMDc0KSIsIlNoXHUwMTRkaG8gKDEwNzRc''@;'; + put 'put ''dTIwMTMxMDc3KSIsIlNoXHUwMTRkcnlha3UgKDEwNzdcdTIwMTMxMDgxKSIsIkVpaFx1MDE0ZCAoMTA4MVx1MjAxMzEwODQpIiwiXHUwMTRjdG9rdSAoMTA4NFx1MjAxMzEwODcpIiwiS2FuamkgKDEwODdcdTIwMTMxMDk0KSIsIkthaFx1MDE0ZCAoMTA5NFx1MjAxMzEwOTYpIiwiRWljaFx1''@;'; + put 'put ''MDE0ZCAoMTA5Nlx1MjAxMzEwOTcpIiwiSlx1MDE0ZHRva3UgKDEwOTdcdTIwMTMxMDk5KSIsIktcdTAxNGR3YSAoMTA5OVx1MjAxMzExMDQpIiwiQ2hcdTAxNGRqaSAoMTEwNFx1MjAxMzExMDYpIiwiS2FzaFx1MDE0ZCAoMTEwNlx1MjAxMzExMDgpIiwiVGVubmluICgxMTA4XHUyMDEzMTEx''@;'; + put 'put ''MCkiLCJUZW4tZWkgKDExMTAtMTExMykiLCJFaWt5XHUwMTZiICgxMTEzXHUyMDEzMTExOCkiLCJHZW5cdTIwMTllaSAoMTExOFx1MjAxMzExMjApIiwiSFx1MDE0ZGFuICgxMTIwXHUyMDEzMTEyNCkiLCJUZW5qaSAoMTEyNFx1MjAxMzExMjYpIiwiRGFpamkgKDExMjZcdTIwMTMxMTMxKSIs''@;'; + put 'put ''IlRlbnNoXHUwMTRkICgxMTMxXHUyMDEzMTEzMikiLCJDaFx1MDE0ZHNoXHUwMTRkICgxMTMyXHUyMDEzMTEzNSkiLCJIXHUwMTRkZW4gKDExMzVcdTIwMTMxMTQxKSIsIkVpamkgKDExNDFcdTIwMTMxMTQyKSIsIktcdTAxNGRqaSAoMTE0Mlx1MjAxMzExNDQpIiwiVGVuXHUyMDE5eVx1MDE0''@;'; + put 'put ''ZCAoMTE0NFx1MjAxMzExNDUpIiwiS3lcdTAxNmJhbiAoMTE0NVx1MjAxMzExNTEpIiwiTmlucGVpICgxMTUxXHUyMDEzMTE1NCkiLCJLeVx1MDE2Ymp1ICgxMTU0XHUyMDEzMTE1NikiLCJIXHUwMTRkZ2VuICgxMTU2XHUyMDEzMTE1OSkiLCJIZWlqaSAoMTE1OVx1MjAxMzExNjApIiwiRWly''@;'; + put 'put ''eWFrdSAoMTE2MFx1MjAxMzExNjEpIiwiXHUwMTRjaG8gKDExNjFcdTIwMTMxMTYzKSIsIkNoXHUwMTRka2FuICgxMTYzXHUyMDEzMTE2NSkiLCJFaW1hbiAoMTE2NVx1MjAxMzExNjYpIiwiTmluXHUyMDE5YW4gKDExNjZcdTIwMTMxMTY5KSIsIkthXHUwMTRkICgxMTY5XHUyMDEzMTE3MSki''@;'; + put 'put ''LCJTaFx1MDE0ZGFuICgxMTcxXHUyMDEzMTE3NSkiLCJBbmdlbiAoMTE3NVx1MjAxMzExNzcpIiwiSmlzaFx1MDE0ZCAoMTE3N1x1MjAxMzExODEpIiwiWVx1MDE0ZHdhICgxMTgxXHUyMDEzMTE4MikiLCJKdWVpICgxMTgyXHUyMDEzMTE4NCkiLCJHZW5yeWFrdSAoMTE4NFx1MjAxMzExODUp''@;'; + put 'put ''IiwiQnVuamkgKDExODVcdTIwMTMxMTkwKSIsIktlbmt5XHUwMTZiICgxMTkwXHUyMDEzMTE5OSkiLCJTaFx1MDE0ZGppICgxMTk5XHUyMDEzMTIwMSkiLCJLZW5uaW4gKDEyMDFcdTIwMTMxMjA0KSIsIkdlbmt5XHUwMTZiICgxMjA0XHUyMDEzMTIwNikiLCJLZW5cdTIwMTllaSAoMTIwNlx1''@;'; + put 'put ''MjAxMzEyMDcpIiwiSlx1MDE0ZGdlbiAoMTIwN1x1MjAxMzEyMTEpIiwiS2Vucnlha3UgKDEyMTFcdTIwMTMxMjEzKSIsIktlbnBcdTAxNGQgKDEyMTNcdTIwMTMxMjE5KSIsIkpcdTAxNGRreVx1MDE2YiAoMTIxOVx1MjAxMzEyMjIpIiwiSlx1MDE0ZFx1MDE0ZCAoMTIyMlx1MjAxMzEyMjQp''@;'; + put 'put ''IiwiR2VubmluICgxMjI0XHUyMDEzMTIyNSkiLCJLYXJva3UgKDEyMjVcdTIwMTMxMjI3KSIsIkFudGVpICgxMjI3XHUyMDEzMTIyOSkiLCJLYW5raSAoMTIyOVx1MjAxMzEyMzIpIiwiSlx1MDE0ZGVpICgxMjMyXHUyMDEzMTIzMykiLCJUZW5wdWt1ICgxMjMzXHUyMDEzMTIzNCkiLCJCdW5y''@;'; + put 'put ''eWFrdSAoMTIzNFx1MjAxMzEyMzUpIiwiS2F0ZWkgKDEyMzVcdTIwMTMxMjM4KSIsIlJ5YWt1bmluICgxMjM4XHUyMDEzMTIzOSkiLCJFblx1MjAxOVx1MDE0ZCAoMTIzOVx1MjAxMzEyNDApIiwiTmluamkgKDEyNDBcdTIwMTMxMjQzKSIsIkthbmdlbiAoMTI0M1x1MjAxMzEyNDcpIiwiSFx1''@;'; + put 'put ''MDE0ZGppICgxMjQ3XHUyMDEzMTI0OSkiLCJLZW5jaFx1MDE0ZCAoMTI0OVx1MjAxMzEyNTYpIiwiS1x1MDE0ZGdlbiAoMTI1Nlx1MjAxMzEyNTcpIiwiU2hcdTAxNGRrYSAoMTI1N1x1MjAxMzEyNTkpIiwiU2hcdTAxNGRnZW4gKDEyNTlcdTIwMTMxMjYwKSIsIkJ1blx1MjAxOVx1MDE0ZCAo''@;'; + put 'put ''MTI2MFx1MjAxMzEyNjEpIiwiS1x1MDE0ZGNoXHUwMTRkICgxMjYxXHUyMDEzMTI2NCkiLCJCdW5cdTIwMTllaSAoMTI2NFx1MjAxMzEyNzUpIiwiS2VuamkgKDEyNzVcdTIwMTMxMjc4KSIsIktcdTAxNGRhbiAoMTI3OFx1MjAxMzEyODgpIiwiU2hcdTAxNGRcdTAxNGQgKDEyODhcdTIwMTMx''@;'; + put 'put ''MjkzKSIsIkVpbmluICgxMjkzXHUyMDEzMTI5OSkiLCJTaFx1MDE0ZGFuICgxMjk5XHUyMDEzMTMwMikiLCJLZW5nZW4gKDEzMDJcdTIwMTMxMzAzKSIsIkthZ2VuICgxMzAzXHUyMDEzMTMwNikiLCJUb2t1amkgKDEzMDZcdTIwMTMxMzA4KSIsIkVua3lcdTAxNGQgKDEzMDhcdTIwMTMxMzEx''@;'; + put 'put ''KSIsIlx1MDE0Y2NoXHUwMTRkICgxMzExXHUyMDEzMTMxMikiLCJTaFx1MDE0ZHdhICgxMzEyXHUyMDEzMTMxNykiLCJCdW5wXHUwMTRkICgxMzE3XHUyMDEzMTMxOSkiLCJHZW5cdTAxNGQgKDEzMTlcdTIwMTMxMzIxKSIsIkdlbmtcdTAxNGQgKDEzMjFcdTIwMTMxMzI0KSIsIlNoXHUwMTRk''@;'; + put 'put ''Y2hcdTAxNmIgKDEzMjRcdTIwMTMxMzI2KSIsIkthcnlha3UgKDEzMjZcdTIwMTMxMzI5KSIsIkdlbnRva3UgKDEzMjlcdTIwMTMxMzMxKSIsIkdlbmtcdTAxNGQgKDEzMzFcdTIwMTMxMzM0KSIsIktlbm11ICgxMzM0XHUyMDEzMTMzNikiLCJFbmdlbiAoMTMzNlx1MjAxMzEzNDApIiwiS1x1''@;'; + put 'put ''MDE0ZGtva3UgKDEzNDBcdTIwMTMxMzQ2KSIsIlNoXHUwMTRkaGVpICgxMzQ2XHUyMDEzMTM3MCkiLCJLZW50b2t1ICgxMzcwXHUyMDEzMTM3MikiLCJCdW5jaFx1MDE2YiAoMTM3Mlx1MjAxMzEzNzUpIiwiVGVuanUgKDEzNzVcdTIwMTMxMzc5KSIsIktcdTAxNGRyeWFrdSAoMTM3OVx1MjAx''@;'; + put 'put ''MzEzODEpIiwiS1x1MDE0ZHdhICgxMzgxXHUyMDEzMTM4NCkiLCJHZW5jaFx1MDE2YiAoMTM4NFx1MjAxMzEzOTIpIiwiTWVpdG9rdSAoMTM4NFx1MjAxMzEzODcpIiwiS2FrZWkgKDEzODdcdTIwMTMxMzg5KSIsIktcdTAxNGRcdTAxNGQgKDEzODlcdTIwMTMxMzkwKSIsIk1laXRva3UgKDEz''@;'; + put 'put ''OTBcdTIwMTMxMzk0KSIsIlx1MDE0Y2VpICgxMzk0XHUyMDEzMTQyOCkiLCJTaFx1MDE0ZGNoXHUwMTRkICgxNDI4XHUyMDEzMTQyOSkiLCJFaWt5XHUwMTRkICgxNDI5XHUyMDEzMTQ0MSkiLCJLYWtpdHN1ICgxNDQxXHUyMDEzMTQ0NCkiLCJCdW5cdTIwMTlhbiAoMTQ0NFx1MjAxMzE0NDkp''@;'; + put 'put ''IiwiSFx1MDE0ZHRva3UgKDE0NDlcdTIwMTMxNDUyKSIsIkt5XHUwMTRkdG9rdSAoMTQ1Mlx1MjAxMzE0NTUpIiwiS1x1MDE0ZHNoXHUwMTRkICgxNDU1XHUyMDEzMTQ1NykiLCJDaFx1MDE0ZHJva3UgKDE0NTdcdTIwMTMxNDYwKSIsIkthbnNoXHUwMTRkICgxNDYwXHUyMDEzMTQ2NikiLCJC''@;'; + put 'put ''dW5zaFx1MDE0ZCAoMTQ2Nlx1MjAxMzE0NjcpIiwiXHUwMTRjbmluICgxNDY3XHUyMDEzMTQ2OSkiLCJCdW5tZWkgKDE0NjlcdTIwMTMxNDg3KSIsIkNoXHUwMTRka3lcdTAxNGQgKDE0ODdcdTIwMTMxNDg5KSIsIkVudG9rdSAoMTQ4OVx1MjAxMzE0OTIpIiwiTWVpXHUwMTRkICgxNDkyXHUy''@;'; + put 'put ''MDEzMTUwMSkiLCJCdW5raSAoMTUwMVx1MjAxMzE1MDQpIiwiRWlzaFx1MDE0ZCAoMTUwNFx1MjAxMzE1MjEpIiwiVGFpZWkgKDE1MjFcdTIwMTMxNTI4KSIsIkt5XHUwMTRkcm9rdSAoMTUyOFx1MjAxMzE1MzIpIiwiVGVuYnVuICgxNTMyXHUyMDEzMTU1NSkiLCJLXHUwMTRkamkgKDE1NTVc''@;'; + put 'put ''dTIwMTMxNTU4KSIsIkVpcm9rdSAoMTU1OFx1MjAxMzE1NzApIiwiR2Vua2kgKDE1NzBcdTIwMTMxNTczKSIsIlRlbnNoXHUwMTRkICgxNTczXHUyMDEzMTU5MikiLCJCdW5yb2t1ICgxNTkyXHUyMDEzMTU5NikiLCJLZWljaFx1MDE0ZCAoMTU5Nlx1MjAxMzE2MTUpIiwiR2VubmEgKDE2MTVc''@;'; + put 'put ''dTIwMTMxNjI0KSIsIkthblx1MjAxOWVpICgxNjI0XHUyMDEzMTY0NCkiLCJTaFx1MDE0ZGhvICgxNjQ0XHUyMDEzMTY0OCkiLCJLZWlhbiAoMTY0OFx1MjAxMzE2NTIpIiwiSlx1MDE0ZFx1MDE0ZCAoMTY1Mlx1MjAxMzE2NTUpIiwiTWVpcmVraSAoMTY1NVx1MjAxMzE2NTgpIiwiTWFuamkg''@;'; + put 'put ''KDE2NThcdTIwMTMxNjYxKSIsIkthbmJ1biAoMTY2MVx1MjAxMzE2NzMpIiwiRW5wXHUwMTRkICgxNjczXHUyMDEzMTY4MSkiLCJUZW5uYSAoMTY4MVx1MjAxMzE2ODQpIiwiSlx1MDE0ZGt5XHUwMTRkICgxNjg0XHUyMDEzMTY4OCkiLCJHZW5yb2t1ICgxNjg4XHUyMDEzMTcwNCkiLCJIXHUw''@;'; + put 'put ''MTRkZWkgKDE3MDRcdTIwMTMxNzExKSIsIlNoXHUwMTRkdG9rdSAoMTcxMVx1MjAxMzE3MTYpIiwiS3lcdTAxNGRoXHUwMTRkICgxNzE2XHUyMDEzMTczNikiLCJHZW5idW4gKDE3MzZcdTIwMTMxNzQxKSIsIkthbnBcdTAxNGQgKDE3NDFcdTIwMTMxNzQ0KSIsIkVua3lcdTAxNGQgKDE3NDRc''@;'; + put 'put ''dTIwMTMxNzQ4KSIsIkthblx1MjAxOWVuICgxNzQ4XHUyMDEzMTc1MSkiLCJIXHUwMTRkcmVraSAoMTc1MVx1MjAxMzE3NjQpIiwiTWVpd2EgKDE3NjRcdTIwMTMxNzcyKSIsIkFuXHUyMDE5ZWkgKDE3NzJcdTIwMTMxNzgxKSIsIlRlbm1laSAoMTc4MVx1MjAxMzE3ODkpIiwiS2Fuc2VpICgx''@;'; + put 'put ''Nzg5XHUyMDEzMTgwMSkiLCJLeVx1MDE0ZHdhICgxODAxXHUyMDEzMTgwNCkiLCJCdW5rYSAoMTgwNFx1MjAxMzE4MTgpIiwiQnVuc2VpICgxODE4XHUyMDEzMTgzMCkiLCJUZW5wXHUwMTRkICgxODMwXHUyMDEzMTg0NCkiLCJLXHUwMTRka2EgKDE4NDRcdTIwMTMxODQ4KSIsIkthZWkgKDE4''@;'; + put 'put ''NDhcdTIwMTMxODU0KSIsIkFuc2VpICgxODU0XHUyMDEzMTg2MCkiLCJNYW5cdTIwMTllbiAoMTg2MFx1MjAxMzE4NjEpIiwiQnVua3lcdTAxNmIgKDE4NjFcdTIwMTMxODY0KSIsIkdlbmppICgxODY0XHUyMDEzMTg2NSkiLCJLZWlcdTAxNGQgKDE4NjVcdTIwMTMxODY4KSIsIk1laWppIiwi''@;'; + put 'put ''VGFpc2hcdTAxNGQiLCJTaFx1MDE0ZHdhIiwiSGVpc2VpIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJwZXJzaWFuIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0Ijpb''@;'; + put 'put ''IkZhcnZhcmRpbiIsIk9yZGliZWhlc2h0IiwiS2hvcmRhZCIsIlRpciIsIk1vcmRhZCIsIlNoYWhyaXZhciIsIk1laHIiLCJBYmFuIiwiQXphciIsIkRleSIsIkJhaG1hbiIsIkVzZmFuZCJdLCJsb25nIjpbIkZhcnZhcmRpbiIsIk9yZGliZWhlc2h0IiwiS2hvcmRhZCIsIlRpciIsIk1vcmRh''@;'; + put 'put ''ZCIsIlNoYWhyaXZhciIsIk1laHIiLCJBYmFuIiwiQXphciIsIkRleSIsIkJhaG1hbiIsIkVzZmFuZCJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9u''@;'; + put 'put ''ZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJhcyI6eyJuYXJyb3ciOlsiQVAiXSwic2hvcnQiOlsiQVAiXSwibG9uZyI6WyJBUCJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9''@;'; + put 'put ''fSwicm9jIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sInNob3J0IjpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLCJsb25n''@;'; + put 'put ''IjpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNo''@;'; + put 'put ''b3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJCZWZvcmUgUi5PLkMuIiwi''@;'; + put 'put ''TWluZ3VvIl0sInNob3J0IjpbIkJlZm9yZSBSLk8uQy4iLCJNaW5ndW8iXSwibG9uZyI6WyJCZWZvcmUgUi5PLkMuIiwiTWluZ3VvIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19fX0sIm51bWJlciI6eyJudSI6WyJsYXRuIl0sInBhdHRlcm5zIjp7ImRlY2ltYWwiOnsi''@;'; + put 'put ''cG9zaXRpdmVQYXR0ZXJuIjoie251bWJlcn0iLCJuZWdhdGl2ZVBhdHRlcm4iOiJ7bWludXNTaWdufXtudW1iZXJ9In0sImN1cnJlbmN5Ijp7InBvc2l0aXZlUGF0dGVybiI6IntjdXJyZW5jeX17bnVtYmVyfSIsIm5lZ2F0aXZlUGF0dGVybiI6InttaW51c1NpZ259e2N1cnJlbmN5fXtudW1i''@;'; + put 'put ''ZXJ9In0sInBlcmNlbnQiOnsicG9zaXRpdmVQYXR0ZXJuIjoie251bWJlcn17cGVyY2VudFNpZ259IiwibmVnYXRpdmVQYXR0ZXJuIjoie21pbnVzU2lnbn17bnVtYmVyfXtwZXJjZW50U2lnbn0ifX0sInN5bWJvbHMiOnsibGF0biI6eyJkZWNpbWFsIjoiLiIsImdyb3VwIjoiLCIsIm5hbiI6''@;'; + put 'put ''Ik5hTiIsInBsdXNTaWduIjoiKyIsIm1pbnVzU2lnbiI6Ii0iLCJwZXJjZW50U2lnbiI6IiUiLCJpbmZpbml0eSI6Ilx1MjIxZSJ9fSwiY3VycmVuY2llcyI6eyJBVUQiOiJBJCIsIkJSTCI6IlIkIiwiQ0FEIjoiQ0EkIiwiQ05ZIjoiQ05ceGE1IiwiRVVSIjoiXHUyMGFjIiwiR0JQIjoiXHhh''@;'; + put 'put ''MyIsIkhLRCI6IkhLJCIsIklMUyI6Ilx1MjBhYSIsIklOUiI6Ilx1MjBiOSIsIkpQWSI6Ilx4YTUiLCJLUlciOiJcdTIwYTkiLCJNWE4iOiJNWCQiLCJOWkQiOiJOWiQiLCJUV0QiOiJOVCQiLCJVU0QiOiIkIiwiVk5EIjoiXHUyMGFiIiwiWEFGIjoiRkNGQSIsIlhDRCI6IkVDJCIsIlhPRiI6''@;'; + put 'put ''IkNGQSIsIlhQRiI6IkNGUEYifX19Jyl9fSxYZT0+e1hlKFhlLnM9MjU3MjQpfV0pOw=='';'; + put 'run;'; + put '%sasjsout(JS64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=runtime.61e771b472ecb588-js; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''KCgpPT57InVzZSBzdHJpY3QiO3ZhciBlLHM9e30sdj17fTtmdW5jdGlvbiBhKGUpe3ZhciBuPXZbZV07aWYodm9pZCAwIT09bilyZXR1cm4gbi5leHBvcnRzO3ZhciByPXZbZV09e2lkOmUsbG9hZGVkOiExLGV4cG9ydHM6e319O3JldHVybiBzW2VdLmNhbGwoci5leHBvcnRzLHIsci5leHBv''@;'; + put 'put ''cnRzLGEpLHIubG9hZGVkPSEwLHIuZXhwb3J0c31hLm09cyxlPVtdLGEuTz0obixyLG8sbCk9PntpZighcil7dmFyIHU9MS8wO2Zvcih0PTA7dDxlLmxlbmd0aDt0Kyspe2Zvcih2YXJbcixvLGxdPWVbdF0sZD0hMCxmPTA7ZjxyLmxlbmd0aDtmKyspKCExJmx8fHU+PWwpJiZPYmplY3Qua2V5''@;'; + put 'put ''cyhhLk8pLmV2ZXJ5KHA9PmEuT1twXShyW2ZdKSk/ci5zcGxpY2UoZi0tLDEpOihkPSExLGw8dSYmKHU9bCkpO2lmKGQpe2Uuc3BsaWNlKHQtLSwxKTt2YXIgYz1vKCk7dm9pZCAwIT09YyYmKG49Yyl9fXJldHVybiBufWw9bHx8MDtmb3IodmFyIHQ9ZS5sZW5ndGg7dD4wJiZlW3QtMV1bMl0+''@;'; + put 'put ''bDt0LS0pZVt0XT1lW3QtMV07ZVt0XT1bcixvLGxdfSxhLm49ZT0+e3ZhciBuPWUmJmUuX19lc01vZHVsZT8oKT0+ZS5kZWZhdWx0OigpPT5lO3JldHVybiBhLmQobix7YTpufSksbn0sYS5kPShlLG4pPT57Zm9yKHZhciByIGluIG4pYS5vKG4scikmJiFhLm8oZSxyKSYmT2JqZWN0LmRlZmlu''@;'; + put 'put ''ZVByb3BlcnR5KGUscix7ZW51bWVyYWJsZTohMCxnZXQ6bltyXX0pfSxhLm89KGUsbik9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pLGEucj1lPT57InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sYS5ubWQ9ZT0+KGUucGF0aHM9W10sZS5jaGlsZHJlbnx8KGUuY2hpbGRyZW49W10pLGUpLCgoKT0+e3ZhciBlPXs2NjY6''@;'; + put 'put ''MH07YS5PLmo9bz0+MD09PWVbb107dmFyIG49KG8sbCk9Pnt2YXIgZixjLFt0LHUsZF09bCxpPTA7aWYodC5zb21lKF89PjAhPT1lW19dKSl7Zm9yKGYgaW4gdSlhLm8odSxmKSYmKGEubVtmXT11W2ZdKTtpZihkKXZhciBiPWQoYSl9Zm9yKG8mJm8obCk7aTx0Lmxlbmd0aDtpKyspYS5vKGUs''@;'; + put 'put ''Yz10W2ldKSYmZVtjXSYmZVtjXVswXSgpLGVbY109MDtyZXR1cm4gYS5PKGIpfSxyPXNlbGYud2VicGFja0NodW5rZGF0YWNvbnRyb2xsZXI9c2VsZi53ZWJwYWNrQ2h1bmtkYXRhY29udHJvbGxlcnx8W107ci5mb3JFYWNoKG4uYmluZChudWxsLDApKSxyLnB1c2g9bi5iaW5kKG51bGwsci5w''@;'; + put 'put ''dXNoLmJpbmQocikpfSkoKX0pKCk7'';'; + put 'run;'; + put '%sasjsout(JS64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=scripts.7cb1e94e2ffad0cd-js; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''KGZ1bmN0aW9uKFgsRjEsayl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihBKXt2YXIgZT17fTtmdW5jdGlvbiBsKHIpe2lmKGVbcl0pcmV0dXJuIGVbcl0uZXhwb3J0czt2YXIgYT1lW3JdPXtpOnIsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gQVtyXS5jYWxsKGEuZXhwb3J0cyxhLGEuZXhwb3J0''@;'; + put 'put ''cyxsKSxhLmw9ITAsYS5leHBvcnRzfWwubT1BLGwuYz1lLGwuZD1mdW5jdGlvbihyLGEsYyl7bC5vKHIsYSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLGdldDpjfSl9LGwubj1mdW5jdGlvbihyKXt2YXIgYT1yJiZyLl9fZXNNb2R1''@;'; + put 'put ''bGU/ZnVuY3Rpb24oKXtyZXR1cm4gci5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiByfTtyZXR1cm4gbC5kKGEsImEiLGEpLGF9LGwubz1mdW5jdGlvbihyLGEpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixhKX0sbC5wPSIiLGwobC5zPTEyOSl9KShb''@;'; + put 'put ''ZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMiksYT1sKDI2KSxjPWwoMTEpLG89bCgxMiksaD1sKDE4KSxmPSJwcm90b3R5cGUiLGc9ZnVuY3Rpb24odSxwLHYpe3ZhciBILEMsVixTLF89dSZnLkYsYj11JmcuRyxNPXUmZy5QLHg9dSZnLkIsRT1iP3I6dSZnLlM/cltwXXx8KHJbcF09e30pOihy''@;'; + put 'put ''W3BdfHx7fSlbZl0sdz1iP2E6YVtwXXx8KGFbcF09e30pLE49d1tmXXx8KHdbZl09e30pO2ZvcihIIGluIGImJih2PXApLHYpVj0oKEM9IV8mJkUmJkVbSF0hPT1rKT9FOnYpW0hdLFM9eCYmQz9oKFYscik6TSYmImZ1bmN0aW9uIj09dHlwZW9mIFY/aChGdW5jdGlvbi5jYWxsLFYpOlYsRSYm''@;'; + put 'put ''byhFLEgsVix1JmcuVSksd1tIXSE9ViYmYyh3LEgsUyksTSYmTltIXSE9ViYmKE5bSF09Vil9O3IuY29yZT1hLGcuRj0xLGcuRz0yLGcuUz00LGcuUD04LGcuQj0xNixnLlc9MzIsZy5VPTY0LGcuUj0xMjgsQS5leHBvcnRzPWd9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpO0EuZXhwb3J0''@;'; + put 'put ''cz1mdW5jdGlvbihhKXtpZighcihhKSl0aHJvdyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBhbiBvYmplY3QhIik7cmV0dXJuIGF9fSxmdW5jdGlvbihBLGUpe3ZhciBsPUEuZXhwb3J0cz0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lk1hdGg9PU1hdGg/d2luZG93OiJ1bmRlZmlu''@;'; + put 'put ''ZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5NYXRoPT1NYXRoP3NlbGY6RnVuY3Rpb24oInJldHVybiB0aGlzIikoKTsibnVtYmVyIj09dHlwZW9mIEYxJiYoRjE9bCl9LGZ1bmN0aW9uKEEsZSl7QS5leHBvcnRzPWZ1bmN0aW9uKGwpe3RyeXtyZXR1cm4hIWwoKX1jYXRjaChyKXtyZXR1cm4hMH19''@;'; + put 'put ''fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1mdW5jdGlvbihsKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGw/bnVsbCE9PWw6ImZ1bmN0aW9uIj09dHlwZW9mIGx9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0NykoIndrcyIpLGE9bCgzMyksYz1sKDIpLlN5bWJvbCxvPSJmdW5jdGlvbiI9''@;'; + put 'put ''PXR5cGVvZiBjOyhBLmV4cG9ydHM9ZnVuY3Rpb24oaCl7cmV0dXJuIHJbaF18fChyW2hdPW8mJmNbaF18fChvP2M6YSkoIlN5bWJvbC4iK2gpKX0pLnN0b3JlPXJ9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIwKSxhPU1hdGgubWluO0EuZXhwb3J0cz1mdW5jdGlvbihjKXtyZXR1cm4gMDxj''@;'; + put 'put ''P2EocihjKSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sZnVuY3Rpb24oQSxlLGwpe0EuZXhwb3J0cz0hbCgzKShmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIg''@;'; + put 'put ''cj1sKDEpLGE9bCg5MyksYz1sKDIyKSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTtlLmY9bCg3KT9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oZixnLHUpe2lmKHIoZiksZz1jKGcsITApLHIodSksYSl0cnl7cmV0dXJuIG8oZixnLHUpfWNhdGNoKHApe31pZigiZ2V0ImluIHV8fCJz''@;'; + put 'put ''ZXQiaW4gdSl0aHJvdyBUeXBlRXJyb3IoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkISIpO3JldHVybiJ2YWx1ZSJpbiB1JiYoZltnXT11LnZhbHVlKSxmfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjMpO0EuZXhwb3J0cz1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0KHIoYSkpfX0sZnVu''@;'; + put 'put ''Y3Rpb24oQSxlKXtBLmV4cG9ydHM9ZnVuY3Rpb24obCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGwpdGhyb3cgVHlwZUVycm9yKGwrIiBpcyBub3QgYSBmdW5jdGlvbiEiKTtyZXR1cm4gbH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDgpLGE9bCgzMik7QS5leHBvcnRzPWwoNyk/ZnVuY3Rp''@;'; + put 'put ''b24oYyxvLGgpe3JldHVybiByLmYoYyxvLGEoMSxoKSl9OmZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gY1tvXT1oLGN9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoMTEpLGM9bCgxNCksbz1sKDMzKSgic3JjIiksaD1sKDEzMSksZj0idG9TdHJpbmciLGc9KCIiK2gpLnNwbGl0KGYp''@;'; + put 'put ''O2woMjYpLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24odSl7cmV0dXJuIGguY2FsbCh1KX0sKEEuZXhwb3J0cz1mdW5jdGlvbih1LHAsdixIKXt2YXIgQz0iZnVuY3Rpb24iPT10eXBlb2YgdjtDJiYoYyh2LCJuYW1lIil8fGEodiwibmFtZSIscCkpLHVbcF0hPT12JiYoQyYmKGModixvKXx8YSh2''@;'; + put 'put ''LG8sdVtwXT8iIit1W3BdOmcuam9pbihTdHJpbmcocCkpKSksdT09PXI/dVtwXT12Okg/dVtwXT91W3BdPXY6YSh1LHAsdik6KGRlbGV0ZSB1W3BdLGEodSxwLHYpKSl9KShGdW5jdGlvbi5wcm90b3R5cGUsZixmdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzJiZ0aGlz''@;'; + put 'put ''W29dfHxoLmNhbGwodGhpcyl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDMpLGM9bCgyMyksbz0vIi9nLGg9ZnVuY3Rpb24oZixnLHUscCl7dmFyIHY9U3RyaW5nKGMoZikpLEg9IjwiK2c7cmV0dXJuIiIhPT11JiYoSCs9IiAiK3UrJz0iJytTdHJpbmcocCkucmVwbGFjZShv''@;'; + put 'put ''LCImcXVvdDsiKSsnIicpLEgrIj4iK3YrIjwvIitnKyI+In07QS5leHBvcnRzPWZ1bmN0aW9uKGYsZyl7dmFyIHU9e307dVtmXT1nKGgpLHIoci5QK3IuRiphKGZ1bmN0aW9uKCl7dmFyIHA9IiJbZl0oJyInKTtyZXR1cm4gcCE9PXAudG9Mb3dlckNhc2UoKXx8MzxwLnNwbGl0KCciJykubGVu''@;'; + put 'put ''Z3RofSksIlN0cmluZyIsdSl9fSxmdW5jdGlvbihBLGUpe3ZhciBsPXt9Lmhhc093blByb3BlcnR5O0EuZXhwb3J0cz1mdW5jdGlvbihyLGEpe3JldHVybiBsLmNhbGwocixhKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQ4KSxhPWwoMjMpO0EuZXhwb3J0cz1mdW5jdGlvbihjKXtyZXR1''@;'; + put 'put ''cm4gcihhKGMpKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQ5KSxhPWwoMzIpLGM9bCgxNSksbz1sKDIyKSxoPWwoMTQpLGY9bCg5MyksZz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2UuZj1sKDcpP2c6ZnVuY3Rpb24ocCx2KXtpZihwPWMocCksdj1vKHYsITApLGYpdHJ5''@;'; + put 'put ''e3JldHVybiBnKHAsdil9Y2F0Y2goSCl7fWlmKGgocCx2KSlyZXR1cm4gYSghci5mLmNhbGwocCx2KSxwW3ZdKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE0KSxhPWwoOSksYz1sKDY4KSgiSUVfUFJPVE8iKSxvPU9iamVjdC5wcm90b3R5cGU7QS5leHBvcnRzPU9iamVjdC5nZXRQcm90''@;'; + put 'put ''b3R5cGVPZnx8ZnVuY3Rpb24oaCl7cmV0dXJuIGg9YShoKSxyKGgsYyk/aFtjXToiZnVuY3Rpb24iPT10eXBlb2YgaC5jb25zdHJ1Y3RvciYmaCBpbnN0YW5jZW9mIGguY29uc3RydWN0b3I/aC5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6aCBpbnN0YW5jZW9mIE9iamVjdD9vOm51bGx9fSxmdW5j''@;'; + put 'put ''dGlvbihBLGUsbCl7dmFyIHI9bCgxMCk7QS5leHBvcnRzPWZ1bmN0aW9uKGEsYyxvKXtpZihyKGEpLGM9PT1rKXJldHVybiBhO3N3aXRjaChvKXtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBhLmNhbGwoYyxoKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihoLGYpe3JldHVybiBh''@;'; + put 'put ''LmNhbGwoYyxoLGYpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKGgsZixnKXtyZXR1cm4gYS5jYWxsKGMsaCxmLGcpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShjLGFyZ3VtZW50cyl9fX0sZnVuY3Rpb24oQSxlKXt2YXIgbD17fS50b1N0cmluZztBLmV4cG9ydHM9ZnVuY3Rp''@;'; + put 'put ''b24ocil7cmV0dXJuIGwuY2FsbChyKS5zbGljZSg4LC0xKX19LGZ1bmN0aW9uKEEsZSl7dmFyIGw9TWF0aC5jZWlsLHI9TWF0aC5mbG9vcjtBLmV4cG9ydHM9ZnVuY3Rpb24oYSl7cmV0dXJuIGlzTmFOKGE9K2EpPzA6KDA8YT9yOmwpKGEpfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMyk7''@;'; + put 'put ''QS5leHBvcnRzPWZ1bmN0aW9uKGEsYyl7cmV0dXJuISFhJiZyKGZ1bmN0aW9uKCl7Yz9hLmNhbGwobnVsbCxmdW5jdGlvbigpe30sMSk6YS5jYWxsKG51bGwpfSl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0KTtBLmV4cG9ydHM9ZnVuY3Rpb24oYSxjKXtpZighcihhKSlyZXR1cm4gYTt2''@;'; + put 'put ''YXIgbyxoO2lmKGMmJiJmdW5jdGlvbiI9PXR5cGVvZihvPWEudG9TdHJpbmcpJiYhcihoPW8uY2FsbChhKSl8fCJmdW5jdGlvbiI9PXR5cGVvZihvPWEudmFsdWVPZikmJiFyKGg9by5jYWxsKGEpKXx8IWMmJiJmdW5jdGlvbiI9PXR5cGVvZihvPWEudG9TdHJpbmcpJiYhcihoPW8uY2FsbChh''@;'; + put 'put ''KSkpcmV0dXJuIGg7dGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX19LGZ1bmN0aW9uKEEsZSl7QS5leHBvcnRzPWZ1bmN0aW9uKGwpe2lmKGw9PWspdGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAgIitsKTtyZXR1''@;'; + put 'put ''cm4gbH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyNiksYz1sKDMpO0EuZXhwb3J0cz1mdW5jdGlvbihvLGgpe3ZhciBmPShhLk9iamVjdHx8e30pW29dfHxPYmplY3Rbb10sZz17fTtnW29dPWgoZikscihyLlMrci5GKmMoZnVuY3Rpb24oKXtmKDEpfSksIk9iamVjdCIsZyl9''@;'; + put 'put ''fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxOCksYT1sKDQ4KSxjPWwoOSksbz1sKDYpLGg9bCg4NCk7QS5leHBvcnRzPWZ1bmN0aW9uKGYsZyl7dmFyIHU9MT09ZixwPTI9PWYsdj0zPT1mLEg9ND09ZixDPTY9PWYsVj01PT1mfHxDLFM9Z3x8aDtyZXR1cm4gZnVuY3Rpb24oXyxiLE0pe2Zv''@;'; + put 'put ''cih2YXIgeCxFLHc9YyhfKSxOPWEodyksST1yKGIsTSwzKSxXPW8oTi5sZW5ndGgpLE89MCxCPXU/UyhfLFcpOnA/UyhfLDApOms7TzxXO08rKylpZigoVnx8TyBpbiBOKSYmKEU9SSh4PU5bT10sTyx3KSxmKSlpZih1KUJbT109RTtlbHNlIGlmKEUpc3dpdGNoKGYpe2Nhc2UgMzpyZXR1cm4h''@;'; + put 'put ''MDtjYXNlIDU6cmV0dXJuIHg7Y2FzZSA2OnJldHVybiBPO2Nhc2UgMjpCLnB1c2goeCl9ZWxzZSBpZihIKXJldHVybiExO3JldHVybiBDPy0xOnZ8fEg/SDpCfX19LGZ1bmN0aW9uKEEsZSl7dmFyIGw9QS5leHBvcnRzPXt2ZXJzaW9uOiIyLjYuMTEifTsibnVtYmVyIj09dHlwZW9mIFgmJihY''@;'; + put 'put ''PWwpfSxmdW5jdGlvbihBLGUsbCl7aWYobCg3KSl7dmFyIHI9bCgyOSksYT1sKDIpLGM9bCgzKSxvPWwoMCksaD1sKDYyKSxmPWwoOTIpLGc9bCgxOCksdT1sKDM5KSxwPWwoMzIpLHY9bCgxMSksSD1sKDQxKSxDPWwoMjApLFY9bCg2KSxTPWwoMTIyKSxfPWwoMzUpLGI9bCgyMiksTT1sKDE0''@;'; + put 'put ''KSx4PWwoNDQpLEU9bCg0KSx3PWwoOSksTj1sKDgxKSxJPWwoMzYpLFc9bCgxNyksTz1sKDM3KS5mLEI9bCg4MyksUj1sKDMzKSxsMT1sKDUpLGExPWwoMjUpLGgxPWwoNTIpLHUxPWwoNTEpLHAxPWwoODYpLHYxPWwoNDYpLEUxPWwoNTcpLGo9bCgzOCksYzE9bCg4NSksVjE9bCgxMTApLF8x''@;'; + put 'put ''PWwoOCksUT1sKDE2KSxzMT1fMS5mLG0xPVEuZixiMT1hLlJhbmdlRXJyb3IsQjE9YS5UeXBlRXJyb3IsJD1hLlVpbnQ4QXJyYXksej0iQXJyYXlCdWZmZXIiLHk9IlNoYXJlZCIreixEPSJCWVRFU19QRVJfRUxFTUVOVCIsWj0icHJvdG90eXBlIixUPUFycmF5W1pdLFA9Zi5BcnJheUJ1ZmZl''@;'; + put 'put ''cixlMT1mLkRhdGFWaWV3LHIxPWExKDApLFoxPWExKDIpLFk9YTEoMykscT1hMSg0KSxKPWExKDUpLEExPWExKDYpLE4xPWgxKCEwKSxTMT1oMSghMSksbjE9cDEudmFsdWVzLGkxPXAxLmtleXMsZjE9cDEuZW50cmllcyx4MT1ULmxhc3RJbmRleE9mLEkxPVQucmVkdWNlLEoxPVQucmVkdWNl''@;'; + put 'put ''UmlnaHQsdDA9VC5qb2luLGYwPVQuc29ydCxNMD1ULnNsaWNlLF8wPVQudG9TdHJpbmcsaTI9VC50b0xvY2FsZVN0cmluZyx6MD1sMSgiaXRlcmF0b3IiKSxVMD1sMSgidG9TdHJpbmdUYWciKSxLMD1SKCJ0eXBlZF9jb25zdHJ1Y3RvciIpLGswPVIoImRlZl9jb25zdHJ1Y3RvciIpLHUyPWgu''@;'; + put 'put ''Q09OU1RSLFgwPWguVFlQRUQsa3Q9aC5WSUVXLGEyPSJXcm9uZyBsZW5ndGghIixEMj1hMSgxLGZ1bmN0aW9uKHcxLGQxKXtyZXR1cm4gUTAodTEodzEsdzFbazBdKSxkMSl9KSxwMj1jKGZ1bmN0aW9uKCl7cmV0dXJuIDE9PT1uZXcgJChuZXcgVWludDE2QXJyYXkoWzFdKS5idWZmZXIpWzBd''@;'; + put 'put ''fSksT3Q9ISEkJiYhISRbWl0uc2V0JiZjKGZ1bmN0aW9uKCl7bmV3ICQoMSkuc2V0KHt9KX0pLGYyPWZ1bmN0aW9uKHcxLGQxKXt2YXIgRDE9Qyh3MSk7aWYoRDE8MHx8RDElZDEpdGhyb3cgYjEoIldyb25nIG9mZnNldCEiKTtyZXR1cm4gRDF9LFkxPWZ1bmN0aW9uKHcxKXtpZihFKHcxKSYm''@;'; + put 'put ''WDAgaW4gdzEpcmV0dXJuIHcxO3Rocm93IEIxKHcxKyIgaXMgbm90IGEgdHlwZWQgYXJyYXkhIil9LFEwPWZ1bmN0aW9uKHcxLGQxKXtpZighRSh3MSl8fCEoSzAgaW4gdzEpKXRocm93IEIxKCJJdCBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvciEiKTtyZXR1cm4gbmV3IHcxKGQx''@;'; + put 'put ''KX0sZzI9ZnVuY3Rpb24odzEsZDEpe3JldHVybiBFMih1MSh3MSx3MVtrMF0pLGQxKX0sRTI9ZnVuY3Rpb24odzEsZDEpe2Zvcih2YXIgRDE9MCxQMT1kMS5sZW5ndGgsUjE9UTAodzEsUDEpO0QxPFAxOylSMVtEMV09ZDFbRDErK107cmV0dXJuIFIxfSxBMj1mdW5jdGlvbih3MSxkMSxEMSl7''@;'; + put 'put ''czEodzEsZDEse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kW0QxXX19KX0sVDI9ZnVuY3Rpb24oZDEpe3ZhciBEMSxQMSxSMSxkMCxxMSxnMSx5MT13KGQxKSxXMD1hcmd1bWVudHMubGVuZ3RoLE8wPTE8VzA/YXJndW1lbnRzWzFdOmssSzE9TzAhPT1rLGUwPUIoeTEpO2lmKGUwIT1r''@;'; + put 'put ''JiYhTihlMCkpe2ZvcihnMT1lMC5jYWxsKHkxKSxSMT1bXSxEMT0wOyEocTE9ZzEubmV4dCgpKS5kb25lO0QxKyspUjEucHVzaChxMS52YWx1ZSk7eTE9UjF9Zm9yKEsxJiYyPFcwJiYoTzA9ZyhPMCxhcmd1bWVudHNbMl0sMikpLEQxPTAsUDE9Vih5MS5sZW5ndGgpLGQwPVEwKHRoaXMsUDEp''@;'; + put 'put ''O0QxPFAxO0QxKyspZDBbRDFdPUsxP08wKHkxW0QxXSxEMSk6eTFbRDFdO3JldHVybiBkMH0sWDI9ZnVuY3Rpb24oKXtmb3IodmFyIGQxPTAsRDE9YXJndW1lbnRzLmxlbmd0aCxQMT1RMCh0aGlzLEQxKTtkMTxEMTspUDFbZDFdPWFyZ3VtZW50c1tkMSsrXTtyZXR1cm4gUDF9LFEyPSEhJCYm''@;'; + put 'put ''YyhmdW5jdGlvbigpe2kyLmNhbGwobmV3ICQoMSkpfSksTjI9ZnVuY3Rpb24oKXtyZXR1cm4gaTIuYXBwbHkoUTI/TTAuY2FsbChZMSh0aGlzKSk6WTEodGhpcyksYXJndW1lbnRzKX0sSjI9e2NvcHlXaXRoaW46ZnVuY3Rpb24oZDEsRDEpe3JldHVybiBWMS5jYWxsKFkxKHRoaXMpLGQxLEQx''@;'; + put 'put ''LDI8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMl06ayl9LGV2ZXJ5OmZ1bmN0aW9uKGQxKXtyZXR1cm4gcShZMSh0aGlzKSxkMSwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOmspfSxmaWxsOmZ1bmN0aW9uKGQxKXtyZXR1cm4gYzEuYXBwbHkoWTEodGhpcyksYXJndW1lbnRz''@;'; + put 'put ''KX0sZmlsdGVyOmZ1bmN0aW9uKGQxKXtyZXR1cm4gZzIodGhpcyxaMShZMSh0aGlzKSxkMSwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOmspKX0sZmluZDpmdW5jdGlvbihkMSl7cmV0dXJuIEooWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX0s''@;'; + put 'put ''ZmluZEluZGV4OmZ1bmN0aW9uKGQxKXtyZXR1cm4gQTEoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX0sZm9yRWFjaDpmdW5jdGlvbihkMSl7cjEoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX0saW5kZXhPZjpmdW5j''@;'; + put 'put ''dGlvbihkMSl7cmV0dXJuIFMxKFkxKHRoaXMpLGQxLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06ayl9LGluY2x1ZGVzOmZ1bmN0aW9uKGQxKXtyZXR1cm4gTjEoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX0sam9pbjpmdW5jdGlvbihkMSl7''@;'; + put 'put ''cmV0dXJuIHQwLmFwcGx5KFkxKHRoaXMpLGFyZ3VtZW50cyl9LGxhc3RJbmRleE9mOmZ1bmN0aW9uKGQxKXtyZXR1cm4geDEuYXBwbHkoWTEodGhpcyksYXJndW1lbnRzKX0sbWFwOmZ1bmN0aW9uKGQxKXtyZXR1cm4gRDIoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50''@;'; + put 'put ''c1sxXTprKX0scmVkdWNlOmZ1bmN0aW9uKGQxKXtyZXR1cm4gSTEuYXBwbHkoWTEodGhpcyksYXJndW1lbnRzKX0scmVkdWNlUmlnaHQ6ZnVuY3Rpb24oZDEpe3JldHVybiBKMS5hcHBseShZMSh0aGlzKSxhcmd1bWVudHMpfSxyZXZlcnNlOmZ1bmN0aW9uKCl7Zm9yKHZhciBkMSxEMT10aGlz''@;'; + put 'put ''LFAxPVkxKEQxKS5sZW5ndGgsUjE9TWF0aC5mbG9vcihQMS8yKSxkMD0wO2QwPFIxOylkMT1EMVtkMF0sRDFbZDArK109RDFbLS1QMV0sRDFbUDFdPWQxO3JldHVybiBEMX0sc29tZTpmdW5jdGlvbihkMSl7cmV0dXJuIFkoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50''@;'; + put 'put ''c1sxXTprKX0sc29ydDpmdW5jdGlvbihkMSl7cmV0dXJuIGYwLmNhbGwoWTEodGhpcyksZDEpfSxzdWJhcnJheTpmdW5jdGlvbihkMSxEMSl7dmFyIFAxPVkxKHRoaXMpLFIxPVAxLmxlbmd0aCxkMD1fKGQxLFIxKTtyZXR1cm4gbmV3KHUxKFAxLFAxW2swXSkpKFAxLmJ1ZmZlcixQMS5ieXRl''@;'; + put 'put ''T2Zmc2V0K2QwKlAxLkJZVEVTX1BFUl9FTEVNRU5ULFYoKEQxPT09az9SMTpfKEQxLFIxKSktZDApKX19LEYyPWZ1bmN0aW9uKGQxLEQxKXtyZXR1cm4gZzIodGhpcyxNMC5jYWxsKFkxKHRoaXMpLGQxLEQxKSl9LEkyPWZ1bmN0aW9uKGQxKXtZMSh0aGlzKTt2YXIgRDE9ZjIoYXJndW1lbnRz''@;'; + put 'put ''WzFdLDEpLFAxPXRoaXMubGVuZ3RoLFIxPXcoZDEpLGQwPVYoUjEubGVuZ3RoKSxxMT0wO2lmKFAxPGQwK0QxKXRocm93IGIxKGEyKTtmb3IoO3ExPGQwOyl0aGlzW0QxK3ExXT1SMVtxMSsrXX0sWjA9e2VudHJpZXM6ZnVuY3Rpb24oKXtyZXR1cm4gZjEuY2FsbChZMSh0aGlzKSl9LGtleXM6''@;'; + put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gaTEuY2FsbChZMSh0aGlzKSl9LHZhbHVlczpmdW5jdGlvbigpe3JldHVybiBuMS5jYWxsKFkxKHRoaXMpKX19LGsyPWZ1bmN0aW9uKHcxLGQxKXtyZXR1cm4gRSh3MSkmJncxW1gwXSYmInN5bWJvbCIhPXR5cGVvZiBkMSYmZDEgaW4gdzEmJlN0cmluZygrZDEp''@;'; + put 'put ''PT1TdHJpbmcoZDEpfSx0dD1mdW5jdGlvbihkMSxEMSl7cmV0dXJuIGsyKGQxLEQxPWIoRDEsITApKT9wKDIsZDFbRDFdKTptMShkMSxEMSl9LEEwPWZ1bmN0aW9uKGQxLEQxLFAxKXtyZXR1cm4hKGsyKGQxLEQxPWIoRDEsITApKSYmRShQMSkmJk0oUDEsInZhbHVlIikpfHxNKFAxLCJnZXQi''@;'; + put 'put ''KXx8TShQMSwic2V0Iil8fFAxLmNvbmZpZ3VyYWJsZXx8TShQMSwid3JpdGFibGUiKSYmIVAxLndyaXRhYmxlfHxNKFAxLCJlbnVtZXJhYmxlIikmJiFQMS5lbnVtZXJhYmxlP3MxKGQxLEQxLFAxKTooZDFbRDFdPVAxLnZhbHVlLGQxKX07dTJ8fChRLmY9dHQsXzEuZj1BMCksbyhvLlMrby5G''@;'; + put 'put ''KiF1MiwiT2JqZWN0Iix7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOnR0LGRlZmluZVByb3BlcnR5OkEwfSksYyhmdW5jdGlvbigpe18wLmNhbGwoe30pfSkmJihfMD1pMj1mdW5jdGlvbigpe3JldHVybiB0MC5jYWxsKHRoaXMpfSk7dmFyIHcwPUgoe30sSjIpO0godzAsWjApLHYodzAsejAs''@;'; + put 'put ''WjAudmFsdWVzKSxIKHcwLHtzbGljZTpGMixzZXQ6STIsY29uc3RydWN0b3I6ZnVuY3Rpb24oKXt9LHRvU3RyaW5nOl8wLHRvTG9jYWxlU3RyaW5nOk4yfSksQTIodzAsImJ1ZmZlciIsImIiKSxBMih3MCwiYnl0ZU9mZnNldCIsIm8iKSxBMih3MCwiYnl0ZUxlbmd0aCIsImwiKSxBMih3MCwi''@;'; + put 'put ''bGVuZ3RoIiwiZSIpLHMxKHcwLFUwLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tYMF19fSksQS5leHBvcnRzPWZ1bmN0aW9uKHcxLGQxLEQxLFAxKXt2YXIgUjE9dzErKChQMT0hIVAxKT8iQ2xhbXBlZCI6IiIpKyJBcnJheSIsZDA9ImdldCIrdzEscTE9InNldCIrdzEsZzE9YVtSMV0s''@;'; + put 'put ''eTE9ZzF8fHt9LFcwPWcxJiZXKGcxKSxPMD17fSxLMT1nMSYmZzFbWl0sZTA9ZnVuY3Rpb24oZzAsWDEpe3MxKGcwLFgxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oSDA9dGhpcy5fZCkudltkMF0oWDEqZDErSDAubyxwMik7dmFyIEgwfSxzZXQ6ZnVuY3Rpb24oSDApe3JldHVybiBEMD1YMSx1''@;'; + put 'put ''MD1IMCx4MD10aGlzLl9kLFAxJiYodTA9KHUwPU1hdGgucm91bmQodTApKTwwPzA6MjU1PHUwPzI1NToyNTUmdTApLHZvaWQgeDAudltxMV0oRDAqZDEreDAubyx1MCxwMik7dmFyIEQwLHUwLHgwfSxlbnVtZXJhYmxlOiEwfSl9O2cxJiZoLkFCVj9jKGZ1bmN0aW9uKCl7ZzEoMSl9KSYmYyhm''@;'; + put 'put ''dW5jdGlvbigpe25ldyBnMSgtMSl9KSYmRTEoZnVuY3Rpb24oZzApe25ldyBnMSxuZXcgZzEobnVsbCksbmV3IGcxKDEuNSksbmV3IGcxKGcwKX0sITApfHwoZzE9RDEoZnVuY3Rpb24oZzAsWDEsSDAsRDApe3ZhciB1MDtyZXR1cm4gdShnMCxnMSxSMSksRShYMSk/WDEgaW5zdGFuY2VvZiBQ''@;'; + put 'put ''fHwodTA9eChYMSkpPT16fHx1MD09eT9EMCE9PWs/bmV3IHkxKFgxLGYyKEgwLGQxKSxEMCk6SDAhPT1rP25ldyB5MShYMSxmMihIMCxkMSkpOm5ldyB5MShYMSk6WDAgaW4gWDE/RTIoZzEsWDEpOlQyLmNhbGwoZzEsWDEpOm5ldyB5MShTKFgxKSl9KSxyMShXMCE9PUZ1bmN0aW9uLnByb3Rv''@;'; + put 'put ''dHlwZT9PKHkxKS5jb25jYXQoTyhXMCkpOk8oeTEpLGZ1bmN0aW9uKGcwKXtnMCBpbiBnMXx8dihnMSxnMCx5MVtnMF0pfSksZzFbWl09SzEscnx8KEsxLmNvbnN0cnVjdG9yPWcxKSk6KGcxPUQxKGZ1bmN0aW9uKGcwLFgxLEgwLEQwKXt1KGcwLGcxLFIxLCJfZCIpO3ZhciB1MCx4MCxCMCxQ''@;'; + put 'put ''Mix2Mj0wLHIyPTA7aWYoRShYMSkpe2lmKCEoWDEgaW5zdGFuY2VvZiBQfHwoUDI9eChYMSkpPT16fHxQMj09eSkpcmV0dXJuIFgwIGluIFgxP0UyKGcxLFgxKTpUMi5jYWxsKGcxLFgxKTt1MD1YMSxyMj1mMihIMCxkMSk7dmFyIHMwPVgxLmJ5dGVMZW5ndGg7aWYoRDA9PT1rKXtpZihzMCVk''@;'; + put 'put ''MXx8KHgwPXMwLXIyKTwwKXRocm93IGIxKGEyKX1lbHNlIGlmKHMwPCh4MD1WKEQwKSpkMSkrcjIpdGhyb3cgYjEoYTIpO0IwPXgwL2QxfWVsc2UgQjA9UyhYMSksdTA9bmV3IFAoeDA9QjAqZDEpO2Zvcih2KGcwLCJfZCIse2I6dTAsbzpyMixsOngwLGU6QjAsdjpuZXcgZTEodTApfSk7djI8''@;'; + put 'put ''QjA7KWUwKGcwLHYyKyspfSksSzE9ZzFbWl09SSh3MCksdihLMSwiY29uc3RydWN0b3IiLGcxKSk7dmFyIEowPUsxW3owXSxQMD0hIUowJiYoInZhbHVlcyI9PUowLm5hbWV8fEowLm5hbWU9PWspLE8yPVowLnZhbHVlczt2KGcxLEswLCEwKSx2KEsxLFgwLFIxKSx2KEsxLGt0LCEwKSx2KEsx''@;'; + put 'put ''LGswLGcxKSwoUDE/bmV3IGcxKDEpW1UwXT09UjE6VTAgaW4gSzEpfHxzMShLMSxVMCx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFIxfX0pLG8oby5HK28uVytvLkYqKChPMFtSMV09ZzEpIT15MSksTzApLG8oby5TLFIxLHtCWVRFU19QRVJfRUxFTUVOVDpkMX0pLG8oby5TK28uRipjKGZ1bmN0''@;'; + put 'put ''aW9uKCl7eTEub2YuY2FsbChnMSwxKX0pLFIxLHtmcm9tOlQyLG9mOlgyfSksRCBpbiBLMXx8dihLMSxELGQxKSxvKG8uUCxSMSxKMiksaihSMSksbyhvLlArby5GKk90LFIxLHtzZXQ6STJ9KSxvKG8uUCtvLkYqIVAwLFIxLFowKSxyfHxLMS50b1N0cmluZz09XzB8fChLMS50b1N0cmluZz1f''@;'; + put 'put ''MCksbyhvLlArby5GKmMoZnVuY3Rpb24oKXtuZXcgZzEoMSkuc2xpY2UoKX0pLFIxLHtzbGljZTpGMn0pLG8oby5QK28uRiooYyhmdW5jdGlvbigpe3JldHVyblsxLDJdLnRvTG9jYWxlU3RyaW5nKCkhPW5ldyBnMShbMSwyXSkudG9Mb2NhbGVTdHJpbmcoKX0pfHwhYyhmdW5jdGlvbigpe0sx''@;'; + put 'put ''LnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpLFIxLHt0b0xvY2FsZVN0cmluZzpOMn0pLHYxW1IxXT1QMD9KMDpPMixyfHxQMHx8dihLMSx6MCxPMil9fWVsc2UgQS5leHBvcnRzPWZ1bmN0aW9uKCl7fX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTE2KSxhPWwoMCksYz1sKDQ3KSgi''@;'; + put 'put ''bWV0YWRhdGEiKSxvPWMuc3RvcmV8fChjLnN0b3JlPW5ldyhsKDExOSkpKSxoPWZ1bmN0aW9uKGYsZyx1KXt2YXIgcD1vLmdldChmKTtpZighcCl7aWYoIXUpcmV0dXJuIGs7by5zZXQoZixwPW5ldyByKX12YXIgdj1wLmdldChnKTtpZighdil7aWYoIXUpcmV0dXJuIGs7cC5zZXQoZyx2PW5l''@;'; + put 'put ''dyByKX1yZXR1cm4gdn07QS5leHBvcnRzPXtzdG9yZTpvLG1hcDpoLGhhczpmdW5jdGlvbihmLGcsdSl7dmFyIHA9aChnLHUsITEpO3JldHVybiBwIT09ayYmcC5oYXMoZil9LGdldDpmdW5jdGlvbihmLGcsdSl7dmFyIHA9aChnLHUsITEpO3JldHVybiBwPT09az9rOnAuZ2V0KGYpfSxzZXQ6''@;'; + put 'put ''ZnVuY3Rpb24oZixnLHUscCl7aCh1LHAsITApLnNldChmLGcpfSxrZXlzOmZ1bmN0aW9uKGYsZyl7dmFyIHU9aChmLGcsITEpLHA9W107cmV0dXJuIHUmJnUuZm9yRWFjaChmdW5jdGlvbih2LEgpe3AucHVzaChIKX0pLHB9LGtleTpmdW5jdGlvbihmKXtyZXR1cm4gZj09PWt8fCJzeW1ib2wi''@;'; + put 'put ''PT10eXBlb2YgZj9mOlN0cmluZyhmKX0sZXhwOmZ1bmN0aW9uKGYpe2EoYS5TLCJSZWZsZWN0IixmKX19fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz0hMX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMzMpKCJtZXRhIiksYT1sKDQpLGM9bCgxNCksbz1sKDgpLmYsaD0wLGY9T2JqZWN0Lmlz''@;'; + put 'put ''RXh0ZW5zaWJsZXx8ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZz0hbCgzKShmdW5jdGlvbigpe3JldHVybiBmKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpfSksdT1mdW5jdGlvbih2KXtvKHYscix7dmFsdWU6e2k6Ik8iKyArK2gsdzp7fX19KX0scD1BLmV4cG9ydHM9e0tFWTpyLE5FRUQ6''@;'; + put 'put ''ITEsZmFzdEtleTpmdW5jdGlvbih2LEgpe2lmKCFhKHYpKXJldHVybiJzeW1ib2wiPT10eXBlb2Ygdj92Oigic3RyaW5nIj09dHlwZW9mIHY/IlMiOiJQIikrdjtpZighYyh2LHIpKXtpZighZih2KSlyZXR1cm4iRiI7aWYoIUgpcmV0dXJuIkUiO3Uodil9cmV0dXJuIHZbcl0uaX0sZ2V0V2Vh''@;'; + put 'put ''azpmdW5jdGlvbih2LEgpe2lmKCFjKHYscikpe2lmKCFmKHYpKXJldHVybiEwO2lmKCFIKXJldHVybiExO3Uodil9cmV0dXJuIHZbcl0ud30sb25GcmVlemU6ZnVuY3Rpb24odil7cmV0dXJuIGcmJnAuTkVFRCYmZih2KSYmIWModixyKSYmdSh2KSx2fX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIg''@;'; + put 'put ''cj1sKDUpKCJ1bnNjb3BhYmxlcyIpLGE9QXJyYXkucHJvdG90eXBlO2Fbcl09PWsmJmwoMTEpKGEscix7fSksQS5leHBvcnRzPWZ1bmN0aW9uKGMpe2Fbcl1bY109ITB9fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1mdW5jdGlvbihsLHIpe3JldHVybntlbnVtZXJhYmxlOiEoMSZsKSxjb25m''@;'; + put 'put ''aWd1cmFibGU6ISgyJmwpLHdyaXRhYmxlOiEoNCZsKSx2YWx1ZTpyfX19LGZ1bmN0aW9uKEEsZSl7dmFyIGw9MCxyPU1hdGgucmFuZG9tKCk7QS5leHBvcnRzPWZ1bmN0aW9uKGEpe3JldHVybiJTeW1ib2woIi5jb25jYXQoYT09PWs/IiI6YSwiKV8iLCgrK2wrcikudG9TdHJpbmcoMzYpKX19''@;'; + put 'put ''LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDk1KSxhPWwoNjkpO0EuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24obyl7cmV0dXJuIHIobyxhKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIwKSxhPU1hdGgubWF4LGM9TWF0aC5taW47QS5leHBvcnRzPWZ1bmN0aW9uKG8saCl7cmV0''@;'; + put 'put ''dXJuKG89cihvKSk8MD9hKG8raCwwKTpjKG8saCl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxKSxhPWwoOTYpLGM9bCg2OSksbz1sKDY4KSgiSUVfUFJPVE8iKSxoPWZ1bmN0aW9uKCl7fSxmPSJwcm90b3R5cGUiLGc9ZnVuY3Rpb24oKXt2YXIgdSxwPWwoNjYpKCJpZnJhbWUiKSx2PWMu''@;'; + put 'put ''bGVuZ3RoO2ZvcihwLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGwoNzApLmFwcGVuZENoaWxkKHApLHAuc3JjPSJqYXZhc2NyaXB0OiIsKHU9cC5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksdS53cml0ZSgiPHNjcmlwdD5kb2N1bWVudC5GPU9iamVjdDxcL3NjcmlwdD4iKSx1LmNsb3Nl''@;'; + put 'put ''KCksZz11LkY7di0tOylkZWxldGUgZ1tmXVtjW3ZdXTtyZXR1cm4gZygpfTtBLmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24ocCx2KXt2YXIgSDtyZXR1cm4gbnVsbCE9PXA/KGhbZl09cihwKSxIPW5ldyBoLGhbZl09bnVsbCxIW29dPXApOkg9ZygpLHY9PT1rP0g6YShILHYpfX0s''@;'; + put 'put ''ZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoOTUpLGE9bCg2OSkuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtlLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKG8pe3JldHVybiByKG8sYSl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoOCksYz1sKDcp''@;'; + put 'put ''LG89bCg1KSgic3BlY2llcyIpO0EuZXhwb3J0cz1mdW5jdGlvbihoKXt2YXIgZj1yW2hdO2MmJmYmJiFmW29dJiZhLmYoZixvLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSl9fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1mdW5jdGlvbihsLHIsYSxjKXtp''@;'; + put 'put ''ZighKGwgaW5zdGFuY2VvZiByKXx8YyE9PWsmJmMgaW4gbCl0aHJvdyBUeXBlRXJyb3IoYSsiOiBpbmNvcnJlY3QgaW52b2NhdGlvbiEiKTtyZXR1cm4gbH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE4KSxhPWwoMTA4KSxjPWwoODEpLG89bCgxKSxoPWwoNiksZj1sKDgzKSxnPXt9LHU9''@;'; + put 'put ''e307KGU9QS5leHBvcnRzPWZ1bmN0aW9uKHAsdixILEMsVil7dmFyIFMsXyxiLE0seD1WP2Z1bmN0aW9uKCl7cmV0dXJuIHB9OmYocCksRT1yKEgsQyx2PzI6MSksdz0wO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB4KXRocm93IFR5cGVFcnJvcihwKyIgaXMgbm90IGl0ZXJhYmxlISIpO2lmKGMo''@;'; + put 'put ''eCkpe2ZvcihTPWgocC5sZW5ndGgpO3c8Uzt3KyspaWYoKE09dj9FKG8oXz1wW3ddKVswXSxfWzFdKTpFKHBbd10pKT09PWd8fE09PT11KXJldHVybiBNfWVsc2UgZm9yKGI9eC5jYWxsKHApOyEoXz1iLm5leHQoKSkuZG9uZTspaWYoKE09YShiLEUsXy52YWx1ZSx2KSk9PT1nfHxNPT09dSly''@;'; + put 'put ''ZXR1cm4gTX0pLkJSRUFLPWcsZS5SRVRVUk49dX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTIpO0EuZXhwb3J0cz1mdW5jdGlvbihhLGMsbyl7Zm9yKHZhciBoIGluIGMpcihhLGgsY1toXSxvKTtyZXR1cm4gYX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpO0EuZXhwb3J0cz1mdW5j''@;'; + put 'put ''dGlvbihhLGMpe2lmKCFyKGEpfHxhLl90IT09Yyl0aHJvdyBUeXBlRXJyb3IoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitjKyIgcmVxdWlyZWQhIik7cmV0dXJuIGF9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg4KS5mLGE9bCgxNCksYz1sKDUpKCJ0b1N0cmluZ1RhZyIpO0EuZXhwb3J0''@;'; + put 'put ''cz1mdW5jdGlvbihvLGgsZil7byYmIWEobz1mP286by5wcm90b3R5cGUsYykmJnIobyxjLHtjb25maWd1cmFibGU6ITAsdmFsdWU6aH0pfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTkpLGE9bCg1KSgidG9TdHJpbmdUYWciKSxjPSJBcmd1bWVudHMiPT1yKGZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IGFyZ3VtZW50c30oKSk7QS5leHBvcnRzPWZ1bmN0aW9uKG8pe3ZhciBoLGYsZztyZXR1cm4gbz09PWs/IlVuZGVmaW5lZCI6bnVsbD09PW8/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YoZj1mdW5jdGlvbih1LHApe3RyeXtyZXR1cm4gdVtwXX1jYXRjaCh2KXt9fShoPU9iamVjdChvKSxhKSk/''@;'; + put 'put ''ZjpjP3IoaCk6Ik9iamVjdCI9PShnPXIoaCkpJiYiZnVuY3Rpb24iPT10eXBlb2YgaC5jYWxsZWU/IkFyZ3VtZW50cyI6Z319LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyMyksYz1sKDMpLG89bCg3MyksaD0iWyIrbysiXSIsZj1SZWdFeHAoIl4iK2graCsiKiIpLGc9UmVnRXhw''@;'; + put 'put ''KGgraCsiKiQiKSx1PWZ1bmN0aW9uKHYsSCxDKXt2YXIgVj17fSxTPWMoZnVuY3Rpb24oKXtyZXR1cm4hIW9bdl0oKXx8Ilx1MjAwYlx4ODUiIT0iXHUyMDBiXHg4NSJbdl0oKX0pLF89Vlt2XT1TP0gocCk6b1t2XTtDJiYoVltDXT1fKSxyKHIuUCtyLkYqUywiU3RyaW5nIixWKX0scD11LnRy''@;'; + put 'put ''aW09ZnVuY3Rpb24odixIKXtyZXR1cm4gdj1TdHJpbmcoYSh2KSksMSZIJiYodj12LnJlcGxhY2UoZiwiIikpLDImSCYmKHY9di5yZXBsYWNlKGcsIiIpKSx2fTtBLmV4cG9ydHM9dX0sZnVuY3Rpb24oQSxlKXtBLmV4cG9ydHM9e319LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDI2KSxhPWwo''@;'; + put 'put ''MiksYz0iX19jb3JlLWpzX3NoYXJlZF9fIixvPWFbY118fChhW2NdPXt9KTsoQS5leHBvcnRzPWZ1bmN0aW9uKGgsZil7cmV0dXJuIG9baF18fChvW2hdPWYhPT1rP2Y6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjpyLnZlcnNpb24sbW9kZTpsKDI5KT8icHVyZSI6Imdsb2Jh''@;'; + put 'put ''bCIsY29weXJpZ2h0OiJceGE5IDIwMTkgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE5KTtBLmV4cG9ydHM9T2JqZWN0KCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCk/T2JqZWN0OmZ1bmN0aW9uKGEpe3JldHVybiJTdHJpbmci''@;'; + put 'put ''PT1yKGEpP2Euc3BsaXQoIiIpOk9iamVjdChhKX19LGZ1bmN0aW9uKEEsZSl7ZS5mPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxKTtBLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgYT1yKHRoaXMpLGM9IiI7cmV0dXJuIGEuZ2xvYmFsJiYoYys9Imci''@;'; + put 'put ''KSxhLmlnbm9yZUNhc2UmJihjKz0iaSIpLGEubXVsdGlsaW5lJiYoYys9Im0iKSxhLnVuaWNvZGUmJihjKz0idSIpLGEuc3RpY2t5JiYoYys9InkiKSxjfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMSksYT1sKDEwKSxjPWwoNSkoInNwZWNpZXMiKTtBLmV4cG9ydHM9ZnVuY3Rpb24obyxo''@;'; + put 'put ''KXt2YXIgZixnPXIobykuY29uc3RydWN0b3I7cmV0dXJuIGc9PT1rfHwoZj1yKGcpW2NdKT09az9oOmEoZil9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxNSksYT1sKDYpLGM9bCgzNSk7QS5leHBvcnRzPWZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihoLGYsZyl7dmFyIHUscD1yKGgp''@;'; + put 'put ''LHY9YShwLmxlbmd0aCksSD1jKGcsdik7aWYobyYmZiE9Zil7Zm9yKDtIPHY7KWlmKCh1PXBbSCsrXSkhPXUpcmV0dXJuITB9ZWxzZSBmb3IoO0g8djtIKyspaWYoKG98fEggaW4gcCkmJnBbSF09PT1mKXJldHVybiBvfHxIfHwwO3JldHVybiFvJiYtMX19fSxmdW5jdGlvbihBLGUpe2UuZj1P''@;'; + put 'put ''YmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxOSk7QS5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGMpe3JldHVybiJBcnJheSI9PXIoYyl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyMCksYT1sKDIzKTtBLmV4cG9ydHM9ZnVu''@;'; + put 'put ''Y3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKG8saCl7dmFyIGYsZyx1PVN0cmluZyhhKG8pKSxwPXIoaCksdj11Lmxlbmd0aDtyZXR1cm4gcDwwfHx2PD1wP2M/IiI6azooZj11LmNoYXJDb2RlQXQocCkpPDU1Mjk2fHw1NjMxOTxmfHxwKzE9PT12fHwoZz11LmNoYXJDb2RlQXQocCsxKSk8NTYz''@;'; + put 'put ''MjB8fDU3MzQzPGc/Yz91LmNoYXJBdChwKTpmOmM/dS5zbGljZShwLHArMik6Zy01NjMyMCsoZi01NTI5Njw8MTApKzY1NTM2fX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpLGE9bCgxOSksYz1sKDUpKCJtYXRjaCIpO0EuZXhwb3J0cz1mdW5jdGlvbihvKXt2YXIgaDtyZXR1cm4gcihv''@;'; + put 'put ''KSYmKChoPW9bY10pIT09az8hIWg6IlJlZ0V4cCI9PWEobykpfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNSkoIml0ZXJhdG9yIiksYT0hMTt0cnl7dmFyIGM9WzddW3JdKCk7Yy5yZXR1cm49ZnVuY3Rpb24oKXthPSEwfSxBcnJheS5mcm9tKGMsZnVuY3Rpb24oKXt0aHJvdyAyfSl9Y2F0''@;'; + put 'put ''Y2gobyl7fUEuZXhwb3J0cz1mdW5jdGlvbihvLGgpe2lmKCFoJiYhYSlyZXR1cm4hMTt2YXIgZj0hMTt0cnl7dmFyIGc9WzddLHU9Z1tyXSgpO3UubmV4dD1mdW5jdGlvbigpe3JldHVybntkb25lOmY9ITB9fSxnW3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHV9LG8oZyl9Y2F0Y2gocCl7fXJldHVy''@;'; + put 'put ''biBmfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNDQpLGE9UmVnRXhwLnByb3RvdHlwZS5leGVjO0EuZXhwb3J0cz1mdW5jdGlvbihjLG8pe3ZhciBoPWMuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2YgaCl7dmFyIGY9aC5jYWxsKGMsbyk7aWYoIm9iamVjdCIhPXR5cGVvZiBmKXRocm93''@;'; + put 'put ''IG5ldyBUeXBlRXJyb3IoIlJlZ0V4cCBleGVjIG1ldGhvZCByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBPYmplY3Qgb3IgbnVsbCIpO3JldHVybiBmfWlmKCJSZWdFeHAiIT09cihjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJSZWdFeHAjZXhlYyBjYWxsZWQgb24gaW5jb21wYXRp''@;'; + put 'put ''YmxlIHJlY2VpdmVyIik7cmV0dXJuIGEuY2FsbChjLG8pfX0sZnVuY3Rpb24oQSxlLGwpe2woMTEyKTt2YXIgcj1sKDEyKSxhPWwoMTEpLGM9bCgzKSxvPWwoMjMpLGg9bCg1KSxmPWwoODcpLGc9aCgic3BlY2llcyIpLHU9IWMoZnVuY3Rpb24oKXt2YXIgdj0vLi87cmV0dXJuIHYuZXhlYz1m''@;'; + put 'put ''dW5jdGlvbigpe3ZhciBIPVtdO3JldHVybiBILmdyb3Vwcz17YToiNyJ9LEh9LCI3IiE9PSIiLnJlcGxhY2UodiwiJDxhPiIpfSkscD1mdW5jdGlvbigpe3ZhciB2PS8oPzopLyxIPXYuZXhlYzt2LmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gSC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBD''@;'; + put 'put ''PSJhYiIuc3BsaXQodik7cmV0dXJuIDI9PT1DLmxlbmd0aCYmImEiPT09Q1swXSYmImIiPT09Q1sxXX0oKTtBLmV4cG9ydHM9ZnVuY3Rpb24odixILEMpe3ZhciBWPWgodiksUz0hYyhmdW5jdGlvbigpe3ZhciBFPXt9O3JldHVybiBFW1ZdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW3Zd''@;'; + put 'put ''KEUpfSksXz1TPyFjKGZ1bmN0aW9uKCl7dmFyIEU9ITEsdz0vYS87cmV0dXJuIHcuZXhlYz1mdW5jdGlvbigpe3JldHVybiBFPSEwLG51bGx9LCJzcGxpdCI9PT12JiYody5jb25zdHJ1Y3Rvcj17fSx3LmNvbnN0cnVjdG9yW2ddPWZ1bmN0aW9uKCl7cmV0dXJuIHd9KSx3W1ZdKCIiKSwhRX0p''@;'; + put 'put ''Oms7aWYoIVN8fCFffHwicmVwbGFjZSI9PT12JiYhdXx8InNwbGl0Ij09PXYmJiFwKXt2YXIgYj0vLi9bVl0sTT1DKG8sViwiIlt2XSxmdW5jdGlvbih3LE4sSSxXLE8pe3JldHVybiBOLmV4ZWM9PT1mP1MmJiFPP3tkb25lOiEwLHZhbHVlOmIuY2FsbChOLEksVyl9Ontkb25lOiEwLHZhbHVl''@;'; + put 'put ''OncuY2FsbChJLE4sVyl9Ontkb25lOiExfX0pLHg9TVsxXTtyKFN0cmluZy5wcm90b3R5cGUsdixNWzBdKSxhKFJlZ0V4cC5wcm90b3R5cGUsViwyPT1IP2Z1bmN0aW9uKEUsdyl7cmV0dXJuIHguY2FsbChFLHRoaXMsdyl9OmZ1bmN0aW9uKEUpe3JldHVybiB4LmNhbGwoRSx0aGlzKX0pfX19''@;'; + put 'put ''LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIpLm5hdmlnYXRvcjtBLmV4cG9ydHM9ciYmci51c2VyQWdlbnR8fCIifSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoMCksYz1sKDEyKSxvPWwoNDEpLGg9bCgzMCksZj1sKDQwKSxnPWwoMzkpLHU9bCg0KSxwPWwoMyksdj1sKDU3KSxI''@;'; + put 'put ''PWwoNDMpLEM9bCg3Mik7QS5leHBvcnRzPWZ1bmN0aW9uKFYsUyxfLGIsTSx4KXt2YXIgRT1yW1ZdLHc9RSxOPU0/InNldCI6ImFkZCIsST13JiZ3LnByb3RvdHlwZSxXPXt9LE89ZnVuY3Rpb24odTEpe3ZhciBwMT1JW3UxXTtjKEksdTEsImRlbGV0ZSI9PXUxP2Z1bmN0aW9uKHYxKXtyZXR1''@;'; + put 'put ''cm4hKHgmJiF1KHYxKSkmJnAxLmNhbGwodGhpcywwPT09djE/MDp2MSl9OiJoYXMiPT11MT9mdW5jdGlvbihFMSl7cmV0dXJuISh4JiYhdShFMSkpJiZwMS5jYWxsKHRoaXMsMD09PUUxPzA6RTEpfToiZ2V0Ij09dTE/ZnVuY3Rpb24oRTEpe3JldHVybiB4JiYhdShFMSk/azpwMS5jYWxsKHRo''@;'; + put 'put ''aXMsMD09PUUxPzA6RTEpfToiYWRkIj09dTE/ZnVuY3Rpb24oRTEpe3JldHVybiBwMS5jYWxsKHRoaXMsMD09PUUxPzA6RTEpLHRoaXN9OmZ1bmN0aW9uKEUxLGope3JldHVybiBwMS5jYWxsKHRoaXMsMD09PUUxPzA6RTEsaiksdGhpc30pfTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdyYmKHh8''@;'; + put 'put ''fEkuZm9yRWFjaCYmIXAoZnVuY3Rpb24oKXsobmV3IHcpLmVudHJpZXMoKS5uZXh0KCl9KSkpe3ZhciBCPW5ldyB3LFI9QltOXSh4P3t9Oi0wLDEpIT1CLGwxPXAoZnVuY3Rpb24oKXtCLmhhcygxKX0pLGExPXYoZnVuY3Rpb24odTEpe25ldyB3KHUxKX0pLGgxPSF4JiZwKGZ1bmN0aW9uKCl7''@;'; + put 'put ''Zm9yKHZhciB1MT1uZXcgdyxwMT01O3AxLS07KXUxW05dKHAxLHAxKTtyZXR1cm4hdTEuaGFzKC0wKX0pO2ExfHwoKCh3PVMoZnVuY3Rpb24odTEscDEpe2codTEsdyxWKTt2YXIgdjE9QyhuZXcgRSx1MSx3KTtyZXR1cm4gcDEhPWsmJmYocDEsTSx2MVtOXSx2MSksdjF9KSkucHJvdG90eXBl''@;'; + put 'put ''PUkpLmNvbnN0cnVjdG9yPXcpLChsMXx8aDEpJiYoTygiZGVsZXRlIiksTygiaGFzIiksTSYmTygiZ2V0IikpLChoMXx8UikmJk8oTikseCYmSS5jbGVhciYmZGVsZXRlIEkuY2xlYXJ9ZWxzZSB3PWIuZ2V0Q29uc3RydWN0b3IoUyxWLE0sTiksbyh3LnByb3RvdHlwZSxfKSxoLk5FRUQ9ITA7''@;'; + put 'put ''cmV0dXJuIEgodyxWKSxhKGEuRythLlcrYS5GKigoV1tWXT13KSE9RSksVykseHx8Yi5zZXRTdHJvbmcodyxWLE0pLHd9fSxmdW5jdGlvbihBLGUsbCl7Zm9yKHZhciByLGE9bCgyKSxjPWwoMTEpLG89bCgzMyksaD1vKCJ0eXBlZF9hcnJheSIpLGY9bygidmlldyIpLGc9ISghYS5BcnJheUJ1''@;'; + put 'put ''ZmZlcnx8IWEuRGF0YVZpZXcpLHU9ZyxwPTAsdj0iSW50OEFycmF5LFVpbnQ4QXJyYXksVWludDhDbGFtcGVkQXJyYXksSW50MTZBcnJheSxVaW50MTZBcnJheSxJbnQzMkFycmF5LFVpbnQzMkFycmF5LEZsb2F0MzJBcnJheSxGbG9hdDY0QXJyYXkiLnNwbGl0KCIsIik7cDw5Oykocj1hW3Zb''@;'; + put 'put ''cCsrXV0pPyhjKHIucHJvdG90eXBlLGgsITApLGMoci5wcm90b3R5cGUsZiwhMCkpOnU9ITE7QS5leHBvcnRzPXtBQlY6ZyxDT05TVFI6dSxUWVBFRDpoLFZJRVc6Zn19LGZ1bmN0aW9uKEEsZSxsKXtBLmV4cG9ydHM9bCgyOSl8fCFsKDMpKGZ1bmN0aW9uKCl7dmFyIHI9TWF0aC5yYW5kb20o''@;'; + put 'put ''KTtfX2RlZmluZVNldHRlcl9fLmNhbGwobnVsbCxyLGZ1bmN0aW9uKCl7fSksZGVsZXRlIGwoMilbcl19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7QS5leHBvcnRzPWZ1bmN0aW9uKGEpe3Ioci5TLGEse29mOmZ1bmN0aW9uKCl7Zm9yKHZhciBvPWFyZ3VtZW50cy5sZW5ndGgsaD1u''@;'; + put 'put ''ZXcgQXJyYXkobyk7by0tOyloW29dPWFyZ3VtZW50c1tvXTtyZXR1cm4gbmV3IHRoaXMoaCl9fSl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTApLGM9bCgxOCksbz1sKDQwKTtBLmV4cG9ydHM9ZnVuY3Rpb24oaCl7cihyLlMsaCx7ZnJvbTpmdW5jdGlvbihnKXt2YXIgdSxw''@;'; + put 'put ''LHYsSCxDPWFyZ3VtZW50c1sxXTtyZXR1cm4gYSh0aGlzKSwodT1DIT09aykmJmEoQyksZz09az9uZXcgdGhpczoocD1bXSx1Pyh2PTAsSD1jKEMsYXJndW1lbnRzWzJdLDIpLG8oZywhMSxmdW5jdGlvbihWKXtwLnB1c2goSChWLHYrKykpfSkpOm8oZywhMSxwLnB1c2gscCksbmV3IHRoaXMo''@;'; + put 'put ''cCkpfX0pfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCksYT1sKDIpLmRvY3VtZW50LGM9cihhKSYmcihhLmNyZWF0ZUVsZW1lbnQpO0EuZXhwb3J0cz1mdW5jdGlvbihvKXtyZXR1cm4gYz9hLmNyZWF0ZUVsZW1lbnQobyk6e319fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwo''@;'; + put 'put ''MjYpLGM9bCgyOSksbz1sKDk0KSxoPWwoOCkuZjtBLmV4cG9ydHM9ZnVuY3Rpb24oZil7dmFyIGc9YS5TeW1ib2x8fChhLlN5bWJvbD1jP3t9OnIuU3ltYm9sfHx7fSk7Il8iPT1mLmNoYXJBdCgwKXx8ZiBpbiBnfHxoKGcsZix7dmFsdWU6by5mKGYpfSl9fSxmdW5jdGlvbihBLGUsbCl7dmFy''@;'; + put 'put ''IHI9bCg0NykoImtleXMiKSxhPWwoMzMpO0EuZXhwb3J0cz1mdW5jdGlvbihjKXtyZXR1cm4gcltjXXx8KHJbY109YShjKSl9fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz0iY29uc3RydWN0b3IsaGFzT3duUHJvcGVydHksaXNQcm90b3R5cGVPZixwcm9wZXJ0eUlzRW51bWVyYWJsZSx0b0xv''@;'; + put 'put ''Y2FsZVN0cmluZyx0b1N0cmluZyx2YWx1ZU9mIi5zcGxpdCgiLCIpfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKS5kb2N1bWVudDtBLmV4cG9ydHM9ciYmci5kb2N1bWVudEVsZW1lbnR9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpLGE9bCgxKSxjPWZ1bmN0aW9uKG8saCl7aWYoYShv''@;'; + put 'put ''KSwhcihoKSYmbnVsbCE9PWgpdGhyb3cgVHlwZUVycm9yKGgrIjogY2FuJ3Qgc2V0IGFzIHByb3RvdHlwZSEiKX07QS5leHBvcnRzPXtzZXQ6T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKG8saCxmKXt0cnl7KGY9bCgxOCkoRnVuY3Rpb24uY2FsbCxs''@;'; + put 'put ''KDE2KS5mKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpLnNldCwyKSkobyxbXSksaD0hKG8gaW5zdGFuY2VvZiBBcnJheSl9Y2F0Y2goZyl7aD0hMH1yZXR1cm4gZnVuY3Rpb24odSxwKXtyZXR1cm4gYyh1LHApLGg/dS5fX3Byb3RvX189cDpmKHUscCksdX19KHt9LCExKTprKSxjaGVj''@;'; + put 'put ''azpjfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCksYT1sKDcxKS5zZXQ7QS5leHBvcnRzPWZ1bmN0aW9uKGMsbyxoKXt2YXIgZixnPW8uY29uc3RydWN0b3I7cmV0dXJuIGchPT1oJiYiZnVuY3Rpb24iPT10eXBlb2YgZyYmKGY9Zy5wcm90b3R5cGUpIT09aC5wcm90b3R5cGUmJnIoZikm''@;'; + put 'put ''JmEmJmEoYyxmKSxjfX0sZnVuY3Rpb24oQSxlKXtBLmV4cG9ydHM9Ilx0XG5cdlxmXHIgXHhhMFx1MTY4MFx1MTgwZVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMFx1MjAyOFx1MjAyOVx1''@;'; + put 'put ''ZmVmZiJ9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIwKSxhPWwoMjMpO0EuZXhwb3J0cz1mdW5jdGlvbihvKXt2YXIgaD1TdHJpbmcoYSh0aGlzKSksZj0iIixnPXIobyk7aWYoZzwwfHxnPT0xLzApdGhyb3cgUmFuZ2VFcnJvcigiQ291bnQgY2FuJ3QgYmUgbmVnYXRpdmUiKTtmb3IoOzA8''@;'; + put 'put ''ZzsoZz4+Pj0xKSYmKGgrPWgpKTEmZyYmKGYrPWgpO3JldHVybiBmfX0sZnVuY3Rpb24oQSxlKXtBLmV4cG9ydHM9TWF0aC5zaWdufHxmdW5jdGlvbihyKXtyZXR1cm4gMD09KHI9K3IpfHxyIT1yP3I6cjwwPy0xOjF9fSxmdW5jdGlvbihBLGUpe3ZhciBsPU1hdGguZXhwbTE7QS5leHBvcnRz''@;'; + put 'put ''PSFsfHwyMjAyNS40NjU3OTQ4MDY3MTg8bCgxMCl8fGwoMTApPDIyMDI1LjQ2NTc5NDgwNjcxOHx8LTJlLTE3IT1sKC0yZS0xNyk/ZnVuY3Rpb24oYSl7cmV0dXJuIDA9PShhPSthKT9hOi0xZS02PGEmJmE8MWUtNj9hK2EqYS8yOk1hdGguZXhwKGEpLTF9Omx9LGZ1bmN0aW9uKEEsZSxsKXt2''@;'; + put 'put ''YXIgcj1sKDU2KSxhPWwoMjMpO0EuZXhwb3J0cz1mdW5jdGlvbihjLG8saCl7aWYocihvKSl0aHJvdyBUeXBlRXJyb3IoIlN0cmluZyMiK2grIiBkb2Vzbid0IGFjY2VwdCByZWdleCEiKTtyZXR1cm4gU3RyaW5nKGEoYykpfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNSkoIm1hdGNoIik7''@;'; + put 'put ''QS5leHBvcnRzPWZ1bmN0aW9uKGEpe3ZhciBjPS8uLzt0cnl7Ii8uLyJbYV0oYyl9Y2F0Y2gobyl7dHJ5e3JldHVybiBjW3JdPSExLCEiLy4vIlthXShjKX1jYXRjaChoKXt9fXJldHVybiEwfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjkpLGE9bCgwKSxjPWwoMTIpLG89bCgxMSksaD1s''@;'; + put 'put ''KDQ2KSxmPWwoODApLGc9bCg0MyksdT1sKDE3KSxwPWwoNSkoIml0ZXJhdG9yIiksdj0hKFtdLmtleXMmJiJuZXh0ImluW10ua2V5cygpKSxIPSJ2YWx1ZXMiLEM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307QS5leHBvcnRzPWZ1bmN0aW9uKFYsUyxfLGIsTSx4LEUpe2YoXyxTLGIpO3ZhciB3''@;'; + put 'put ''LE4sSSxXPWZ1bmN0aW9uKHYxKXtpZighdiYmdjEgaW4gbDEpcmV0dXJuIGwxW3YxXTtzd2l0Y2godjEpe2Nhc2Uia2V5cyI6Y2FzZSBIOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgXyh0aGlzLHYxKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBfKHRoaXMsdjEpfX0sTz1T''@;'; + put 'put ''KyIgSXRlcmF0b3IiLEI9TT09SCxSPSExLGwxPVYucHJvdG90eXBlLGExPWwxW3BdfHxsMVsiQEBpdGVyYXRvciJdfHxNJiZsMVtNXSxoMT1hMXx8VyhNKSx1MT1NP0I/VygiZW50cmllcyIpOmgxOmsscDE9IkFycmF5Ij09UyYmbDEuZW50cmllc3x8YTE7aWYocDEmJihJPXUocDEuY2FsbChu''@;'; + put 'put ''ZXcgVikpKSE9PU9iamVjdC5wcm90b3R5cGUmJkkubmV4dCYmKGcoSSxPLCEwKSxyfHwiZnVuY3Rpb24iPT10eXBlb2YgSVtwXXx8byhJLHAsQykpLEImJmExJiZhMS5uYW1lIT09SCYmKFI9ITAsaDE9ZnVuY3Rpb24oKXtyZXR1cm4gYTEuY2FsbCh0aGlzKX0pLHImJiFFfHwhdiYmIVImJmwx''@;'; + put 'put ''W3BdfHxvKGwxLHAsaDEpLGhbU109aDEsaFtPXT1DLE0paWYodz17dmFsdWVzOkI/aDE6VyhIKSxrZXlzOng/aDE6Vygia2V5cyIpLGVudHJpZXM6dTF9LEUpZm9yKE4gaW4gdylOIGluIGwxfHxjKGwxLE4sd1tOXSk7ZWxzZSBhKGEuUCthLkYqKHZ8fFIpLFMsdyk7cmV0dXJuIHd9fSxmdW5j''@;'; + put 'put ''dGlvbihBLGUsbCl7dmFyIHI9bCgzNiksYT1sKDMyKSxjPWwoNDMpLG89e307bCgxMSkobyxsKDUpKCJpdGVyYXRvciIpLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxBLmV4cG9ydHM9ZnVuY3Rpb24oaCxmLGcpe2gucHJvdG90eXBlPXIobyx7bmV4dDphKDEsZyl9KSxjKGgsZisiIEl0ZXJh''@;'; + put 'put ''dG9yIil9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0NiksYT1sKDUpKCJpdGVyYXRvciIpLGM9QXJyYXkucHJvdG90eXBlO0EuZXhwb3J0cz1mdW5jdGlvbihvKXtyZXR1cm4gbyE9PWsmJihyLkFycmF5PT09b3x8Y1thXT09PW8pfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoOCksYT1s''@;'; + put 'put ''KDMyKTtBLmV4cG9ydHM9ZnVuY3Rpb24oYyxvLGgpe28gaW4gYz9yLmYoYyxvLGEoMCxoKSk6Y1tvXT1ofX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNDQpLGE9bCg1KSgiaXRlcmF0b3IiKSxjPWwoNDYpO0EuZXhwb3J0cz1sKDI2KS5nZXRJdGVyYXRvck1ldGhvZD1mdW5jdGlvbihvKXtp''@;'; + put 'put ''ZihvIT1rKXJldHVybiBvW2FdfHxvWyJAQGl0ZXJhdG9yIl18fGNbcihvKV19fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyMTMpO0EuZXhwb3J0cz1mdW5jdGlvbihhLGMpe3JldHVybiBuZXcocihhKSkoYyl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg5KSxhPWwoMzUpLGM9bCg2KTtB''@;'; + put 'put ''LmV4cG9ydHM9ZnVuY3Rpb24oaCl7Zm9yKHZhciBmPXIodGhpcyksZz1jKGYubGVuZ3RoKSx1PWFyZ3VtZW50cy5sZW5ndGgscD1hKDE8dT9hcmd1bWVudHNbMV06ayxnKSx2PTI8dT9hcmd1bWVudHNbMl06ayxIPXY9PT1rP2c6YSh2LGcpO3A8SDspZltwKytdPWg7cmV0dXJuIGZ9fSxmdW5j''@;'; + put 'put ''dGlvbihBLGUsbCl7dmFyIHI9bCgzMSksYT1sKDExMSksYz1sKDQ2KSxvPWwoMTUpO0EuZXhwb3J0cz1sKDc5KShBcnJheSwiQXJyYXkiLGZ1bmN0aW9uKGgsZil7dGhpcy5fdD1vKGgpLHRoaXMuX2k9MCx0aGlzLl9rPWZ9LGZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5fdCxmPXRoaXMuX2ssZz10''@;'; + put 'put ''aGlzLl9pKys7cmV0dXJuIWh8fGgubGVuZ3RoPD1nPyh0aGlzLl90PWssYSgxKSk6YSgwLCJrZXlzIj09Zj9nOiJ2YWx1ZXMiPT1mP2hbZ106W2csaFtnXV0pfSwidmFsdWVzIiksYy5Bcmd1bWVudHM9Yy5BcnJheSxyKCJrZXlzIikscigidmFsdWVzIikscigiZW50cmllcyIpfSxmdW5jdGlv''@;'; + put 'put ''bihBLGUsbCl7dmFyIHIsYSxjPWwoNTApLG89UmVnRXhwLnByb3RvdHlwZS5leGVjLGg9U3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlLGY9byxnPSJsYXN0SW5kZXgiLHU9KGE9L2IqL2csby5jYWxsKHI9L2EvLCJhIiksby5jYWxsKGEsImEiKSwwIT09cltnXXx8MCE9PWFbZ10pLHA9LygpPz8v''@;'; + put 'put ''LmV4ZWMoIiIpWzFdIT09azsodXx8cCkmJihmPWZ1bmN0aW9uKEgpe3ZhciBDLFYsUyxfLGI9dGhpcztyZXR1cm4gcCYmKFY9bmV3IFJlZ0V4cCgiXiIrYi5zb3VyY2UrIiQoPyFcXHMpIixjLmNhbGwoYikpKSx1JiYoQz1iW2ddKSxTPW8uY2FsbChiLEgpLHUmJlMmJihiW2ddPWIuZ2xvYmFs''@;'; + put 'put ''P1MuaW5kZXgrU1swXS5sZW5ndGg6QykscCYmUyYmMTxTLmxlbmd0aCYmaC5jYWxsKFNbMF0sVixmdW5jdGlvbigpe2ZvcihfPTE7Xzxhcmd1bWVudHMubGVuZ3RoLTI7XysrKWFyZ3VtZW50c1tfXT09PWsmJihTW19dPWspfSksU30pLEEuZXhwb3J0cz1mfSxmdW5jdGlvbihBLGUsbCl7dmFy''@;'; + put 'put ''IHI9bCg1NSkoITApO0EuZXhwb3J0cz1mdW5jdGlvbihhLGMsbyl7cmV0dXJuIGMrKG8/cihhLGMpLmxlbmd0aDoxKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcixhLGMsbz1sKDE4KSxoPWwoMTAxKSxmPWwoNzApLGc9bCg2NiksdT1sKDIpLHA9dS5wcm9jZXNzLHY9dS5zZXRJbW1lZGlhdGUs''@;'; + put 'put ''SD11LmNsZWFySW1tZWRpYXRlLEM9dS5NZXNzYWdlQ2hhbm5lbCxWPXUuRGlzcGF0Y2gsUz0wLF89e30sYj0ib25yZWFkeXN0YXRlY2hhbmdlIixNPWZ1bmN0aW9uKCl7dmFyIEU9K3RoaXM7aWYoXy5oYXNPd25Qcm9wZXJ0eShFKSl7dmFyIHc9X1tFXTtkZWxldGUgX1tFXSx3KCl9fSx4PWZ1''@;'; + put 'put ''bmN0aW9uKEUpe00uY2FsbChFLmRhdGEpfTt2JiZIfHwodj1mdW5jdGlvbih3KXtmb3IodmFyIE49W10sST0xO0k8YXJndW1lbnRzLmxlbmd0aDspTi5wdXNoKGFyZ3VtZW50c1tJKytdKTtyZXR1cm4gX1srK1NdPWZ1bmN0aW9uKCl7aCgiZnVuY3Rpb24iPT10eXBlb2Ygdz93OkZ1bmN0aW9u''@;'; + put 'put ''KHcpLE4pfSxyKFMpLFN9LEg9ZnVuY3Rpb24odyl7ZGVsZXRlIF9bd119LCJwcm9jZXNzIj09bCgxOSkocCk/cj1mdW5jdGlvbihFKXtwLm5leHRUaWNrKG8oTSxFLDEpKX06ViYmVi5ub3c/cj1mdW5jdGlvbihFKXtWLm5vdyhvKE0sRSwxKSl9OkM/KGM9KGE9bmV3IEMpLnBvcnQyLGEucG9y''@;'; + put 'put ''dDEub25tZXNzYWdlPXgscj1vKGMucG9zdE1lc3NhZ2UsYywxKSk6dS5hZGRFdmVudExpc3RlbmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgcG9zdE1lc3NhZ2UmJiF1LmltcG9ydFNjcmlwdHM/KHI9ZnVuY3Rpb24oRSl7dS5wb3N0TWVzc2FnZShFKyIiLCIqIil9LHUuYWRkRXZlbnRMaXN0ZW5l''@;'; + put 'put ''cigibWVzc2FnZSIseCwhMSkpOnI9YiBpbiBnKCJzY3JpcHQiKT9mdW5jdGlvbihFKXtmLmFwcGVuZENoaWxkKGcoInNjcmlwdCIpKVtiXT1mdW5jdGlvbigpe2YucmVtb3ZlQ2hpbGQodGhpcyksTS5jYWxsKEUpfX06ZnVuY3Rpb24oRSl7c2V0VGltZW91dChvKE0sRSwxKSwwKX0pLEEuZXhw''@;'; + put 'put ''b3J0cz17c2V0OnYsY2xlYXI6SH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIpLGE9bCg4OSkuc2V0LGM9ci5NdXRhdGlvbk9ic2VydmVyfHxyLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsbz1yLnByb2Nlc3MsaD1yLlByb21pc2UsZj0icHJvY2VzcyI9PWwoMTkpKG8pO0EuZXhwb3J0cz1m''@;'; + put 'put ''dW5jdGlvbigpe3ZhciBnLHUscCx2PWZ1bmN0aW9uKCl7dmFyIFMsXztmb3IoZiYmKFM9by5kb21haW4pJiZTLmV4aXQoKTtnOyl7Xz1nLmZuLGc9Zy5uZXh0O3RyeXtfKCl9Y2F0Y2goYil7dGhyb3cgZz9wKCk6dT1rLGJ9fXU9ayxTJiZTLmVudGVyKCl9O2lmKGYpcD1mdW5jdGlvbigpe28u''@;'; + put 'put ''bmV4dFRpY2sodil9O2Vsc2UgaWYoIWN8fHIubmF2aWdhdG9yJiZyLm5hdmlnYXRvci5zdGFuZGFsb25lKWlmKGgmJmgucmVzb2x2ZSl7dmFyIEg9aC5yZXNvbHZlKGspO3A9ZnVuY3Rpb24oKXtILnRoZW4odil9fWVsc2UgcD1mdW5jdGlvbigpe2EuY2FsbChyLHYpfTtlbHNle3ZhciBDPSEw''@;'; + put 'put ''LFY9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO25ldyBjKHYpLm9ic2VydmUoVix7Y2hhcmFjdGVyRGF0YTohMH0pLHA9ZnVuY3Rpb24oKXtWLmRhdGE9Qz0hQ319cmV0dXJuIGZ1bmN0aW9uKFMpe3ZhciBfPXtmbjpTLG5leHQ6a307dSYmKHUubmV4dD1fKSxnfHwoZz1fLHAoKSksdT1f''@;'; + put 'put ''fX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEwKTtmdW5jdGlvbiBhKGMpe3ZhciBvLGg7dGhpcy5wcm9taXNlPW5ldyBjKGZ1bmN0aW9uKGYsZyl7aWYobyE9PWt8fGghPT1rKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtvPWYsaD1nfSksdGhpcy5yZXNv''@;'; + put 'put ''bHZlPXIobyksdGhpcy5yZWplY3Q9cihoKX1BLmV4cG9ydHMuZj1mdW5jdGlvbihjKXtyZXR1cm4gbmV3IGEoYyl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoNyksYz1sKDI5KSxvPWwoNjIpLGg9bCgxMSksZj1sKDQxKSxnPWwoMyksdT1sKDM5KSxwPWwoMjApLHY9bCg2KSxI''@;'; + put 'put ''PWwoMTIyKSxDPWwoMzcpLmYsVj1sKDgpLmYsUz1sKDg1KSxfPWwoNDMpLGI9IkFycmF5QnVmZmVyIixNPSJEYXRhVmlldyIseD0icHJvdG90eXBlIixFPSJXcm9uZyBpbmRleCEiLHc9cltiXSxOPXJbTV0sST1yLk1hdGgsVz1yLlJhbmdlRXJyb3IsTz1yLkluZmluaXR5LEI9dyxSPUkuYWJz''@;'; + put 'put ''LGwxPUkucG93LGExPUkuZmxvb3IsaDE9SS5sb2csdTE9SS5MTjIscDE9ImJ5dGVMZW5ndGgiLHYxPSJieXRlT2Zmc2V0IixFMT1hPyJfYiI6ImJ1ZmZlciIsaj1hPyJfbCI6cDEsYzE9YT8iX28iOnYxO2Z1bmN0aW9uIFYxKFkscSxKKXt2YXIgQTEsTjEsUzEsbjE9bmV3IEFycmF5KEopLGkx''@;'; + put 'put ''PTgqSi1xLTEsZjE9KDE8PGkxKS0xLHgxPWYxPj4xLEkxPTIzPT09cT9sMSgyLC0yNCktbDEoMiwtNzcpOjAsSjE9MCx0MD1ZPDB8fDA9PT1ZJiYxL1k8MD8xOjA7Zm9yKChZPVIoWSkpIT1ZfHxZPT09Tz8oTjE9WSE9WT8xOjAsQTE9ZjEpOihBMT1hMShoMShZKS91MSksWSooUzE9bDEoMiwt''@;'; + put 'put ''QTEpKTwxJiYoQTEtLSxTMSo9MiksMjw9KFkrPTE8PUExK3gxP0kxL1MxOkkxKmwxKDIsMS14MSkpKlMxJiYoQTErKyxTMS89MiksZjE8PUExK3gxPyhOMT0wLEExPWYxKToxPD1BMSt4MT8oTjE9KFkqUzEtMSkqbDEoMixxKSxBMSs9eDEpOihOMT1ZKmwxKDIseDEtMSkqbDEoMixxKSxBMT0w''@;'; + put 'put ''KSk7ODw9cTtuMVtKMSsrXT0yNTUmTjEsTjEvPTI1NixxLT04KTtmb3IoQTE9QTE8PHF8TjEsaTErPXE7MDxpMTtuMVtKMSsrXT0yNTUmQTEsQTEvPTI1NixpMS09OCk7cmV0dXJuIG4xWy0tSjFdfD0xMjgqdDAsbjF9ZnVuY3Rpb24gXzEoWSxxLEope3ZhciBBMSxOMT04KkotcS0xLFMxPSgx''@;'; + put 'put ''PDxOMSktMSxuMT1TMT4+MSxpMT1OMS03LGYxPUotMSx4MT1ZW2YxLS1dLEkxPTEyNyZ4MTtmb3IoeDE+Pj03OzA8aTE7STE9MjU2KkkxK1lbZjFdLGYxLS0saTEtPTgpO2ZvcihBMT1JMSYoMTw8LWkxKS0xLEkxPj49LWkxLGkxKz1xOzA8aTE7QTE9MjU2KkExK1lbZjFdLGYxLS0saTEtPTgp''@;'; + put 'put ''O2lmKDA9PT1JMSlJMT0xLW4xO2Vsc2V7aWYoSTE9PT1TMSlyZXR1cm4gQTE/TmFOOngxPy1POk87QTErPWwxKDIscSksSTEtPW4xfXJldHVybih4MT8tMToxKSpBMSpsMSgyLEkxLXEpfWZ1bmN0aW9uIFEoWSl7cmV0dXJuIFlbM108PDI0fFlbMl08PDE2fFlbMV08PDh8WVswXX1mdW5jdGlv''@;'; + put 'put ''biBzMShZKXtyZXR1cm5bMjU1JlldfWZ1bmN0aW9uIG0xKFkpe3JldHVyblsyNTUmWSxZPj44JjI1NV19ZnVuY3Rpb24gYjEoWSl7cmV0dXJuWzI1NSZZLFk+PjgmMjU1LFk+PjE2JjI1NSxZPj4yNCYyNTVdfWZ1bmN0aW9uIEIxKFkpe3JldHVybiBWMShZLDUyLDgpfWZ1bmN0aW9uICQoWSl7''@;'; + put 'put ''cmV0dXJuIFYxKFksMjMsNCl9ZnVuY3Rpb24geihZLHEsSil7VihZW3hdLHEse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzW0pdfX0pfWZ1bmN0aW9uIHkoWSxxLEosQTEpe3ZhciBOMT1IKCtKKTtpZihZW2pdPE4xK3EpdGhyb3cgVyhFKTt2YXIgUzE9TjErWVtjMV0sbjE9WVtFMV0uX2Iu''@;'; + put 'put ''c2xpY2UoUzEsUzErcSk7cmV0dXJuIEExP24xOm4xLnJldmVyc2UoKX1mdW5jdGlvbiBEKFkscSxKLEExLE4xLFMxKXt2YXIgbjE9SCgrSik7aWYoWVtqXTxuMStxKXRocm93IFcoRSk7Zm9yKHZhciBpMT1ZW0UxXS5fYixmMT1uMStZW2MxXSx4MT1BMSgrTjEpLEkxPTA7STE8cTtJMSsrKWkx''@;'; + put 'put ''W2YxK0kxXT14MVtTMT9JMTpxLUkxLTFdfWlmKG8uQUJWKXtpZighZyhmdW5jdGlvbigpe3coMSl9KXx8IWcoZnVuY3Rpb24oKXtuZXcgdygtMSl9KXx8ZyhmdW5jdGlvbigpe3JldHVybiBuZXcgdyxuZXcgdygxLjUpLG5ldyB3KE5hTiksdy5uYW1lIT1ifSkpe2Zvcih2YXIgWixUPSh3PWZ1''@;'; + put 'put ''bmN0aW9uKHEpe3JldHVybiB1KHRoaXMsdyksbmV3IEIoSChxKSl9KVt4XT1CW3hdLFA9QyhCKSxlMT0wO2UxPFAubGVuZ3RoOykoWj1QW2UxKytdKWluIHd8fGgodyxaLEJbWl0pO2N8fChULmNvbnN0cnVjdG9yPXcpfXZhciByMT1uZXcgTihuZXcgdygyKSksWjE9Tlt4XS5zZXRJbnQ4O3Ix''@;'; + put 'put ''LnNldEludDgoMCwyMTQ3NDgzNjQ4KSxyMS5zZXRJbnQ4KDEsMjE0NzQ4MzY0OSksIXIxLmdldEludDgoMCkmJnIxLmdldEludDgoMSl8fGYoTlt4XSx7c2V0SW50ODpmdW5jdGlvbihxLEope1oxLmNhbGwodGhpcyxxLEo8PDI0Pj4yNCl9LHNldFVpbnQ4OmZ1bmN0aW9uKHEsSil7WjEuY2Fs''@;'; + put 'put ''bCh0aGlzLHEsSjw8MjQ+PjI0KX19LCEwKX1lbHNlIHc9ZnVuY3Rpb24ocSl7dSh0aGlzLHcsYik7dmFyIEo9SChxKTt0aGlzLl9iPVMuY2FsbChuZXcgQXJyYXkoSiksMCksdGhpc1tqXT1KfSxOPWZ1bmN0aW9uKHEsSixBMSl7dSh0aGlzLE4sTSksdShxLHcsTSk7dmFyIE4xPXFbal0sUzE9''@;'; + put 'put ''cChKKTtpZihTMTwwfHxOMTxTMSl0aHJvdyBXKCJXcm9uZyBvZmZzZXQhIik7aWYoTjE8UzErKEExPUExPT09az9OMS1TMTp2KEExKSkpdGhyb3cgVygiV3JvbmcgbGVuZ3RoISIpO3RoaXNbRTFdPXEsdGhpc1tjMV09UzEsdGhpc1tqXT1BMX0sYSYmKHoodyxwMSwiX2wiKSx6KE4sImJ1ZmZl''@;'; + put 'put ''ciIsIl9iIikseihOLHAxLCJfbCIpLHooTix2MSwiX28iKSksZihOW3hdLHtnZXRJbnQ4OmZ1bmN0aW9uKHEpe3JldHVybiB5KHRoaXMsMSxxKVswXTw8MjQ+PjI0fSxnZXRVaW50ODpmdW5jdGlvbihxKXtyZXR1cm4geSh0aGlzLDEscSlbMF19LGdldEludDE2OmZ1bmN0aW9uKHEpe3ZhciBK''@;'; + put 'put ''PXkodGhpcywyLHEsYXJndW1lbnRzWzFdKTtyZXR1cm4oSlsxXTw8OHxKWzBdKTw8MTY+PjE2fSxnZXRVaW50MTY6ZnVuY3Rpb24ocSl7dmFyIEo9eSh0aGlzLDIscSxhcmd1bWVudHNbMV0pO3JldHVybiBKWzFdPDw4fEpbMF19LGdldEludDMyOmZ1bmN0aW9uKHEpe3JldHVybiBRKHkodGhp''@;'; + put 'put ''cyw0LHEsYXJndW1lbnRzWzFdKSl9LGdldFVpbnQzMjpmdW5jdGlvbihxKXtyZXR1cm4gUSh5KHRoaXMsNCxxLGFyZ3VtZW50c1sxXSkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbihxKXtyZXR1cm4gXzEoeSh0aGlzLDQscSxhcmd1bWVudHNbMV0pLDIzLDQpfSxnZXRGbG9hdDY0OmZ1bmN0''@;'; + put 'put ''aW9uKHEpe3JldHVybiBfMSh5KHRoaXMsOCxxLGFyZ3VtZW50c1sxXSksNTIsOCl9LHNldEludDg6ZnVuY3Rpb24ocSxKKXtEKHRoaXMsMSxxLHMxLEopfSxzZXRVaW50ODpmdW5jdGlvbihxLEope0QodGhpcywxLHEsczEsSil9LHNldEludDE2OmZ1bmN0aW9uKHEsSil7RCh0aGlzLDIscSxt''@;'; + put 'put ''MSxKLGFyZ3VtZW50c1syXSl9LHNldFVpbnQxNjpmdW5jdGlvbihxLEope0QodGhpcywyLHEsbTEsSixhcmd1bWVudHNbMl0pfSxzZXRJbnQzMjpmdW5jdGlvbihxLEope0QodGhpcyw0LHEsYjEsSixhcmd1bWVudHNbMl0pfSxzZXRVaW50MzI6ZnVuY3Rpb24ocSxKKXtEKHRoaXMsNCxxLGIx''@;'; + put 'put ''LEosYXJndW1lbnRzWzJdKX0sc2V0RmxvYXQzMjpmdW5jdGlvbihxLEope0QodGhpcyw0LHEsJCxKLGFyZ3VtZW50c1syXSl9LHNldEZsb2F0NjQ6ZnVuY3Rpb24ocSxKKXtEKHRoaXMsOCxxLEIxLEosYXJndW1lbnRzWzJdKX19KTtfKHcsYiksXyhOLE0pLGgoTlt4XSxvLlZJRVcsITApLGVb''@;'; + put 'put ''Yl09dyxlW01dPU59LGZ1bmN0aW9uKEEsZSxsKXtBLmV4cG9ydHM9IWwoNykmJiFsKDMpKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShsKDY2KSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LGZ1bmN0aW9uKEEsZSxsKXtlLmY9''@;'; + put 'put ''bCg1KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTQpLGE9bCgxNSksYz1sKDUyKSghMSksbz1sKDY4KSgiSUVfUFJPVE8iKTtBLmV4cG9ydHM9ZnVuY3Rpb24oaCxmKXt2YXIgZyx1PWEoaCkscD0wLHY9W107Zm9yKGcgaW4gdSlnIT1vJiZyKHUsZykmJnYucHVzaChnKTtmb3IoO3A8Zi5s''@;'; + put 'put ''ZW5ndGg7KXIodSxnPWZbcCsrXSkmJih+Yyh2LGcpfHx2LnB1c2goZykpO3JldHVybiB2fX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoOCksYT1sKDEpLGM9bCgzNCk7QS5leHBvcnRzPWwoNyk/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24oaCxmKXthKGgpO2Zvcih2YXIgZyx1''@;'; + put 'put ''PWMoZikscD11Lmxlbmd0aCx2PTA7djxwOylyLmYoaCxnPXVbdisrXSxmW2ddKTtyZXR1cm4gaH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE1KSxhPWwoMzcpLmYsYz17fS50b1N0cmluZyxvPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cmJk9iamVjdC5nZXRPd25Qcm9wZXJ0''@;'; + put 'put ''eU5hbWVzP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk6W107QS5leHBvcnRzLmY9ZnVuY3Rpb24oZil7cmV0dXJuIG8mJiJbb2JqZWN0IFdpbmRvd10iPT1jLmNhbGwoZik/ZnVuY3Rpb24oZyl7dHJ5e3JldHVybiBhKGcpfWNhdGNoKHUpe3JldHVybiBvLnNsaWNlKCl9fShm''@;'; + put 'put ''KTphKHIoZikpfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNyksYT1sKDM0KSxjPWwoNTMpLG89bCg0OSksaD1sKDkpLGY9bCg0OCksZz1PYmplY3QuYXNzaWduO0EuZXhwb3J0cz0hZ3x8bCgzKShmdW5jdGlvbigpe3ZhciB1PXt9LHA9e30sdj1TeW1ib2woKSxIPSJhYmNkZWZnaGlqa2xt''@;'; + put 'put ''bm9wcXJzdCI7cmV0dXJuIHVbdl09NyxILnNwbGl0KCIiKS5mb3JFYWNoKGZ1bmN0aW9uKEMpe3BbQ109Q30pLDchPWcoe30sdSlbdl18fE9iamVjdC5rZXlzKGcoe30scCkpLmpvaW4oIiIpIT1IfSk/ZnVuY3Rpb24ocCx2KXtmb3IodmFyIEg9aChwKSxDPWFyZ3VtZW50cy5sZW5ndGgsVj0x''@;'; + put 'put ''LFM9Yy5mLF89by5mO1Y8QzspZm9yKHZhciBiLE09Zihhcmd1bWVudHNbVisrXSkseD1TP2EoTSkuY29uY2F0KFMoTSkpOmEoTSksRT14Lmxlbmd0aCx3PTA7dzxFOyliPXhbdysrXSxyJiYhXy5jYWxsKE0sYil8fChIW2JdPU1bYl0pO3JldHVybiBIfTpnfSxmdW5jdGlvbihBLGUpe0EuZXhw''@;'; + put 'put ''b3J0cz1PYmplY3QuaXN8fGZ1bmN0aW9uKHIsYSl7cmV0dXJuIHI9PT1hPzAhPT1yfHwxL3I9PTEvYTpyIT1yJiZhIT1hfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTApLGE9bCg0KSxjPWwoMTAxKSxvPVtdLnNsaWNlLGg9e307QS5leHBvcnRzPUZ1bmN0aW9uLmJpbmR8fGZ1bmN0aW9u''@;'; + put 'put ''KGcpe3ZhciB1PXIodGhpcykscD1vLmNhbGwoYXJndW1lbnRzLDEpLHY9ZnVuY3Rpb24oKXt2YXIgSD1wLmNvbmNhdChvLmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiB2P2Z1bmN0aW9uKEMsVixTKXtpZighKFYgaW4gaCkpe2Zvcih2YXIgXz1bXSxiPTA7YjxWO2Ir''@;'; + put 'put ''KylfW2JdPSJhWyIrYisiXSI7aFtWXT1GdW5jdGlvbigiRixhIiwicmV0dXJuIG5ldyBGKCIrXy5qb2luKCIsIikrIikiKX1yZXR1cm4gaFtWXShDLFMpfSh1LEgubGVuZ3RoLEgpOmModSxILGcpfTtyZXR1cm4gYSh1LnByb3RvdHlwZSkmJih2LnByb3RvdHlwZT11LnByb3RvdHlwZSksdn19''@;'; + put 'put ''LGZ1bmN0aW9uKEEsZSl7QS5leHBvcnRzPWZ1bmN0aW9uKGwscixhKXt2YXIgYz1hPT09aztzd2l0Y2goci5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gYz9sKCk6bC5jYWxsKGEpO2Nhc2UgMTpyZXR1cm4gYz9sKHJbMF0pOmwuY2FsbChhLHJbMF0pO2Nhc2UgMjpyZXR1cm4gYz9sKHJbMF0sclsx''@;'; + put 'put ''XSk6bC5jYWxsKGEsclswXSxyWzFdKTtjYXNlIDM6cmV0dXJuIGM/bChyWzBdLHJbMV0sclsyXSk6bC5jYWxsKGEsclswXSxyWzFdLHJbMl0pO2Nhc2UgNDpyZXR1cm4gYz9sKHJbMF0sclsxXSxyWzJdLHJbM10pOmwuY2FsbChhLHJbMF0sclsxXSxyWzJdLHJbM10pfXJldHVybiBsLmFwcGx5''@;'; + put 'put ''KGEscil9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxOSk7QS5leHBvcnRzPWZ1bmN0aW9uKGEsYyl7aWYoIm51bWJlciIhPXR5cGVvZiBhJiYiTnVtYmVyIiE9cihhKSl0aHJvdyBUeXBlRXJyb3IoYyk7cmV0dXJuK2F9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0KSxhPU1hdGguZmxv''@;'; + put 'put ''b3I7QS5leHBvcnRzPWZ1bmN0aW9uKG8pe3JldHVybiFyKG8pJiZpc0Zpbml0ZShvKSYmYShvKT09PW99fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKS5wYXJzZUZsb2F0LGE9bCg0NSkudHJpbTtBLmV4cG9ydHM9MS9yKGwoNzMpKyItMCIpIT0tMS8wP2Z1bmN0aW9uKG8pe3ZhciBoPWEo''@;'; + put 'put ''U3RyaW5nKG8pLDMpLGY9cihoKTtyZXR1cm4gMD09PWYmJiItIj09aC5jaGFyQXQoMCk/LTA6Zn06cn0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMikucGFyc2VJbnQsYT1sKDQ1KS50cmltLGM9bCg3Myksbz0vXlstK10/MFt4WF0vO0EuZXhwb3J0cz04IT09cihjKyIwOCIpfHwyMiE9PXIo''@;'; + put 'put ''YysiMHgxNiIpP2Z1bmN0aW9uKGYsZyl7dmFyIHU9YShTdHJpbmcoZiksMyk7cmV0dXJuIHIodSxnPj4+MHx8KG8udGVzdCh1KT8xNjoxMCkpfTpyfSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1NYXRoLmxvZzFwfHxmdW5jdGlvbihyKXtyZXR1cm4tMWUtODwocj0rcikmJnI8MWUtOD9yLXIq''@;'; + put 'put ''ci8yOk1hdGgubG9nKDErcil9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg3NSksYT1NYXRoLnBvdyxjPWEoMiwtNTIpLG89YSgyLC0yMyksaD1hKDIsMTI3KSooMi1vKSxmPWEoMiwtMTI2KTtBLmV4cG9ydHM9TWF0aC5mcm91bmR8fGZ1bmN0aW9uKHUpe3ZhciBwLHYsSD1NYXRoLmFicyh1''@;'; + put 'put ''KSxDPXIodSk7cmV0dXJuIEg8Zj9DKihIL2YvbysxL2MtMS9jKSpmKm86aDwodj0ocD0oMStvL2MpKkgpLShwLUgpKXx8diE9dj9DKigxLzApOkMqdn19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEpO0EuZXhwb3J0cz1mdW5jdGlvbihhLGMsbyxoKXt0cnl7cmV0dXJuIGg/YyhyKG8pWzBd''@;'; + put 'put ''LG9bMV0pOmMobyl9Y2F0Y2goZyl7dmFyIGY9YS5yZXR1cm47dGhyb3cgZiE9PWsmJnIoZi5jYWxsKGEpKSxnfX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEwKSxhPWwoOSksYz1sKDQ4KSxvPWwoNik7QS5leHBvcnRzPWZ1bmN0aW9uKGgsZixnLHUscCl7cihmKTt2YXIgdj1hKGgpLEg9''@;'; + put 'put ''Yyh2KSxDPW8odi5sZW5ndGgpLFY9cD9DLTE6MCxTPXA/LTE6MTtpZihnPDIpZm9yKDs7KXtpZihWIGluIEgpe3U9SFtWXSxWKz1TO2JyZWFrfWlmKFYrPVMscD9WPDA6Qzw9Vil0aHJvdyBUeXBlRXJyb3IoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKX1m''@;'; + put 'put ''b3IoO3A/MDw9VjpWPEM7Vis9UylWIGluIEgmJih1PWYodSxIW1ZdLFYsdikpO3JldHVybiB1fX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoOSksYT1sKDM1KSxjPWwoNik7QS5leHBvcnRzPVtdLmNvcHlXaXRoaW58fGZ1bmN0aW9uKGgsZil7dmFyIGc9cih0aGlzKSx1PWMoZy5sZW5ndGgp''@;'; + put 'put ''LHA9YShoLHUpLHY9YShmLHUpLEg9Mjxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1syXTprLEM9TWF0aC5taW4oKEg9PT1rP3U6YShILHUpKS12LHUtcCksVj0xO2Zvcih2PHAmJnA8ditDJiYoVj0tMSx2Kz1DLTEscCs9Qy0xKTswPEMtLTspdiBpbiBnP2dbcF09Z1t2XTpkZWxldGUgZ1tw''@;'; + put 'put ''XSxwKz1WLHYrPVY7cmV0dXJuIGd9fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1mdW5jdGlvbihsLHIpe3JldHVybnt2YWx1ZTpyLGRvbmU6ISFsfX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDg3KTtsKDApKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAsZm9yY2VkOnIhPT0vLi8uZXhl''@;'; + put 'put ''Y30se2V4ZWM6cn0pfSxmdW5jdGlvbihBLGUsbCl7bCg3KSYmImciIT0vLi9nLmZsYWdzJiZsKDgpLmYoUmVnRXhwLnByb3RvdHlwZSwiZmxhZ3MiLHtjb25maWd1cmFibGU6ITAsZ2V0OmwoNTApfSl9LGZ1bmN0aW9uKEEsZSl7QS5leHBvcnRzPWZ1bmN0aW9uKGwpe3RyeXtyZXR1cm57ZToh''@;'; + put 'put ''MSx2OmwoKX19Y2F0Y2gocil7cmV0dXJue2U6ITAsdjpyfX19fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxKSxhPWwoNCksYz1sKDkxKTtBLmV4cG9ydHM9ZnVuY3Rpb24obyxoKXtpZihyKG8pLGEoaCkmJmguY29uc3RydWN0b3I9PT1vKXJldHVybiBoO3ZhciBmPWMuZihvKTtyZXR1cm4o''@;'; + put 'put ''MCxmLnJlc29sdmUpKGgpLGYucHJvbWlzZX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDExNyksYT1sKDQyKTtBLmV4cG9ydHM9bCg2MSkoIk1hcCIsZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGModGhpcywwPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOmsp''@;'; + put 'put ''fX0se2dldDpmdW5jdGlvbihvKXt2YXIgaD1yLmdldEVudHJ5KGEodGhpcywiTWFwIiksbyk7cmV0dXJuIGgmJmgudn0sc2V0OmZ1bmN0aW9uKG8saCl7cmV0dXJuIHIuZGVmKGEodGhpcywiTWFwIiksMD09PW8/MDpvLGgpfX0sciwhMCl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDgpLmYs''@;'; + put 'put ''YT1sKDM2KSxjPWwoNDEpLG89bCgxOCksaD1sKDM5KSxmPWwoNDApLGc9bCg3OSksdT1sKDExMSkscD1sKDM4KSx2PWwoNyksSD1sKDMwKS5mYXN0S2V5LEM9bCg0MiksVj12PyJfcyI6InNpemUiLFM9ZnVuY3Rpb24oXyxiKXt2YXIgTSx4PUgoYik7aWYoIkYiIT09eClyZXR1cm4gXy5faVt4''@;'; + put 'put ''XTtmb3IoTT1fLl9mO007TT1NLm4paWYoTS5rPT1iKXJldHVybiBNfTtBLmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKF8sYixNLHgpe3ZhciBFPV8oZnVuY3Rpb24odyxOKXtoKHcsRSxiLCJfaSIpLHcuX3Q9Yix3Ll9pPWEobnVsbCksdy5fZj1rLHcuX2w9ayx3W1ZdPTAsTiE9''@;'; + put 'put ''ayYmZihOLE0sd1t4XSx3KX0pO3JldHVybiBjKEUucHJvdG90eXBlLHtjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgTj1DKHRoaXMsYiksST1OLl9pLFc9Ti5fZjtXO1c9Vy5uKVcucj0hMCxXLnAmJihXLnA9Vy5wLm49ayksZGVsZXRlIElbVy5pXTtOLl9mPU4uX2w9ayxOW1ZdPTB9LGRlbGV0''@;'; + put 'put ''ZTpmdW5jdGlvbih3KXt2YXIgTj1DKHRoaXMsYiksST1TKE4sdyk7aWYoSSl7dmFyIFc9SS5uLE89SS5wO2RlbGV0ZSBOLl9pW0kuaV0sSS5yPSEwLE8mJihPLm49VyksVyYmKFcucD1PKSxOLl9mPT1JJiYoTi5fZj1XKSxOLl9sPT1JJiYoTi5fbD1PKSxOW1ZdLS19cmV0dXJuISFJfSxmb3JF''@;'; + put 'put ''YWNoOmZ1bmN0aW9uKE4pe0ModGhpcyxiKTtmb3IodmFyIEksVz1vKE4sMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprLDMpO0k9ST9JLm46dGhpcy5fZjspZm9yKFcoSS52LEkuayx0aGlzKTtJJiZJLnI7KUk9SS5wfSxoYXM6ZnVuY3Rpb24oTil7cmV0dXJuISFTKEModGhpcyxi''@;'; + put 'put ''KSxOKX19KSx2JiZyKEUucHJvdG90eXBlLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEModGhpcyxiKVtWXX19KSxFfSxkZWY6ZnVuY3Rpb24oXyxiLE0pe3ZhciB4LEUsdz1TKF8sYik7cmV0dXJuIHc/dy52PU06KF8uX2w9dz17aTpFPUgoYiwhMCksazpiLHY6TSxwOng9Xy5fbCxu''@;'; + put 'put ''OmsscjohMX0sXy5fZnx8KF8uX2Y9dykseCYmKHgubj13KSxfW1ZdKyssIkYiIT09RSYmKF8uX2lbRV09dykpLF99LGdldEVudHJ5OlMsc2V0U3Ryb25nOmZ1bmN0aW9uKF8sYixNKXtnKF8sYixmdW5jdGlvbih4LEUpe3RoaXMuX3Q9Qyh4LGIpLHRoaXMuX2s9RSx0aGlzLl9sPWt9LGZ1bmN0''@;'; + put 'put ''aW9uKCl7Zm9yKHZhciB4PXRoaXMsRT14Ll9rLHc9eC5fbDt3JiZ3LnI7KXc9dy5wO3JldHVybiB4Ll90JiYoeC5fbD13PXc/dy5uOnguX3QuX2YpP3UoMCwia2V5cyI9PUU/dy5rOiJ2YWx1ZXMiPT1FP3cudjpbdy5rLHcudl0pOih4Ll90PWssdSgxKSl9LE0/ImVudHJpZXMiOiJ2YWx1ZXMi''@;'; + put 'put ''LCFNLCEwKSxwKGIpfX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDExNyksYT1sKDQyKTtBLmV4cG9ydHM9bCg2MSkoIlNldCIsZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGModGhpcywwPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOmspfX0se2FkZDpmdW5j''@;'; + put 'put ''dGlvbihvKXtyZXR1cm4gci5kZWYoYSh0aGlzLCJTZXQiKSxvPTA9PT1vPzA6byxvKX19LHIpfSxmdW5jdGlvbihBLGUsbCl7dmFyIHIsYT1sKDIpLGM9bCgyNSkoMCksbz1sKDEyKSxoPWwoMzApLGY9bCg5OCksZz1sKDEyMCksdT1sKDQpLHA9bCg0Miksdj1sKDQyKSxIPSFhLkFjdGl2ZVhP''@;'; + put 'put ''YmplY3QmJiJBY3RpdmVYT2JqZWN0ImluIGEsQz0iV2Vha01hcCIsVj1oLmdldFdlYWssUz1PYmplY3QuaXNFeHRlbnNpYmxlLF89Zy51ZnN0b3JlLGI9ZnVuY3Rpb24oRSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcywwPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOmsp''@;'; + put 'put ''fX0sTT17Z2V0OmZ1bmN0aW9uKHcpe2lmKHUodykpe3ZhciBOPVYodyk7cmV0dXJuITA9PT1OP18ocCh0aGlzLEMpKS5nZXQodyk6Tj9OW3RoaXMuX2ldOmt9fSxzZXQ6ZnVuY3Rpb24odyxOKXtyZXR1cm4gZy5kZWYocCh0aGlzLEMpLHcsTil9fSx4PUEuZXhwb3J0cz1sKDYxKShDLGIsTSxn''@;'; + put 'put ''LCEwLCEwKTt2JiZIJiYoZigocj1nLmdldENvbnN0cnVjdG9yKGIsQykpLnByb3RvdHlwZSxNKSxoLk5FRUQ9ITAsYyhbImRlbGV0ZSIsImhhcyIsImdldCIsInNldCJdLGZ1bmN0aW9uKEUpe3ZhciB3PXgucHJvdG90eXBlLE49d1tFXTtvKHcsRSxmdW5jdGlvbihJLFcpe2lmKHUoSSkmJiFT''@;'; + put 'put ''KEkpKXt0aGlzLl9mfHwodGhpcy5fZj1uZXcgcik7dmFyIE89dGhpcy5fZltFXShJLFcpO3JldHVybiJzZXQiPT1FP3RoaXM6T31yZXR1cm4gTi5jYWxsKHRoaXMsSSxXKX0pfSkpfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0MSksYT1sKDMwKS5nZXRXZWFrLGM9bCgxKSxvPWwoNCksaD1s''@;'; + put 'put ''KDM5KSxmPWwoNDApLGc9bCgyNSksdT1sKDE0KSxwPWwoNDIpLHY9Zyg1KSxIPWcoNiksQz0wLFY9ZnVuY3Rpb24oYil7cmV0dXJuIGIuX2x8fChiLl9sPW5ldyBTKX0sUz1mdW5jdGlvbigpe3RoaXMuYT1bXX0sXz1mdW5jdGlvbihiLE0pe3JldHVybiB2KGIuYSxmdW5jdGlvbih4KXtyZXR1''@;'; + put 'put ''cm4geFswXT09PU19KX07Uy5wcm90b3R5cGU9e2dldDpmdW5jdGlvbihiKXt2YXIgTT1fKHRoaXMsYik7aWYoTSlyZXR1cm4gTVsxXX0saGFzOmZ1bmN0aW9uKGIpe3JldHVybiEhXyh0aGlzLGIpfSxzZXQ6ZnVuY3Rpb24oYixNKXt2YXIgeD1fKHRoaXMsYik7eD94WzFdPU06dGhpcy5hLnB1''@;'; + put 'put ''c2goW2IsTV0pfSxkZWxldGU6ZnVuY3Rpb24oYil7dmFyIE09SCh0aGlzLmEsZnVuY3Rpb24oeCl7cmV0dXJuIHhbMF09PT1ifSk7cmV0dXJufk0mJnRoaXMuYS5zcGxpY2UoTSwxKSwhIX5NfX0sQS5leHBvcnRzPXtnZXRDb25zdHJ1Y3RvcjpmdW5jdGlvbihiLE0seCxFKXt2YXIgdz1iKGZ1''@;'; + put 'put ''bmN0aW9uKE4sSSl7aChOLHcsTSwiX2kiKSxOLl90PU0sTi5faT1DKyssSSE9KE4uX2w9aykmJmYoSSx4LE5bRV0sTil9KTtyZXR1cm4gcih3LnByb3RvdHlwZSx7ZGVsZXRlOmZ1bmN0aW9uKE4pe2lmKCFvKE4pKXJldHVybiExO3ZhciBJPWEoTik7cmV0dXJuITA9PT1JP1YocCh0aGlzLE0p''@;'; + put 'put ''KS5kZWxldGUoTik6SSYmdShJLHRoaXMuX2kpJiZkZWxldGUgSVt0aGlzLl9pXX0saGFzOmZ1bmN0aW9uKEkpe2lmKCFvKEkpKXJldHVybiExO3ZhciBXPWEoSSk7cmV0dXJuITA9PT1XP1YocCh0aGlzLE0pKS5oYXMoSSk6VyYmdShXLHRoaXMuX2kpfX0pLHd9LGRlZjpmdW5jdGlvbihiLE0s''@;'; + put 'put ''eCl7dmFyIEU9YShjKE0pLCEwKTtyZXR1cm4hMD09PUU/VihiKS5zZXQoTSx4KTpFW2IuX2ldPXgsYn0sdWZzdG9yZTpWfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMzcpLGE9bCg1MyksYz1sKDEpLG89bCgyKS5SZWZsZWN0O0EuZXhwb3J0cz1vJiZvLm93bktleXN8fGZ1bmN0aW9uKGYp''@;'; + put 'put ''e3ZhciBnPXIuZihjKGYpKSx1PWEuZjtyZXR1cm4gdT9nLmNvbmNhdCh1KGYpKTpnfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjApLGE9bCg2KTtBLmV4cG9ydHM9ZnVuY3Rpb24oYyl7aWYoYz09PWspcmV0dXJuIDA7dmFyIG89cihjKSxoPWEobyk7aWYobyE9PWgpdGhyb3cgUmFuZ2VF''@;'; + put 'put ''cnJvcigiV3JvbmcgbGVuZ3RoISIpO3JldHVybiBofX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNTQpLGE9bCg0KSxjPWwoNiksbz1sKDE4KSxoPWwoNSkoImlzQ29uY2F0U3ByZWFkYWJsZSIpO0EuZXhwb3J0cz1mdW5jdGlvbiBmKGcsdSxwLHYsSCxDLFYsUyl7Zm9yKHZhciBfLGIsTT1I''@;'; + put 'put ''LHg9MCxFPSEhViYmbyhWLFMsMyk7eDx2Oyl7aWYoeCBpbiBwKXtpZihfPUU/RShwW3hdLHgsdSk6cFt4XSxiPSExLGEoXykmJihiPShiPV9baF0pIT09az8hIWI6cihfKSksYiYmMDxDKU09ZihnLHUsXyxjKF8ubGVuZ3RoKSxNLEMtMSktMTtlbHNle2lmKDkwMDcxOTkyNTQ3NDA5OTE8PU0p''@;'; + put 'put ''dGhyb3cgVHlwZUVycm9yKCk7Z1tNXT1ffU0rK314Kyt9cmV0dXJuIE19fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg2KSxhPWwoNzQpLGM9bCgyMyk7QS5leHBvcnRzPWZ1bmN0aW9uKG8saCxmLGcpe3ZhciB1PVN0cmluZyhjKG8pKSxwPXUubGVuZ3RoLHY9Zj09PWs/IiAiOlN0cmluZyhm''@;'; + put 'put ''KSxIPXIoaCk7aWYoSDw9cHx8IiI9PXYpcmV0dXJuIHU7dmFyIEM9SC1wLFY9YS5jYWxsKHYsTWF0aC5jZWlsKEMvdi5sZW5ndGgpKTtyZXR1cm4gQzxWLmxlbmd0aCYmKFY9Vi5zbGljZSgwLEMpKSxnP1YrdTp1K1Z9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg3KSxhPWwoMzQpLGM9bCgx''@;'; + put 'put ''NSksbz1sKDQ5KS5mO0EuZXhwb3J0cz1mdW5jdGlvbihoKXtyZXR1cm4gZnVuY3Rpb24oZil7Zm9yKHZhciBnLHU9YyhmKSxwPWEodSksdj1wLmxlbmd0aCxIPTAsQz1bXTtIPHY7KWc9cFtIKytdLHImJiFvLmNhbGwodSxnKXx8Qy5wdXNoKGg/W2csdVtnXV06dVtnXSk7cmV0dXJuIEN9fX0s''@;'; + put 'put ''ZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNDQpLGE9bCgxMjcpO0EuZXhwb3J0cz1mdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oKXtpZihyKHRoaXMpIT1jKXRocm93IFR5cGVFcnJvcihjKyIjdG9KU09OIGlzbid0IGdlbmVyaWMiKTtyZXR1cm4gYSh0aGlzKX19fSxmdW5jdGlvbihBLGUs''@;'; + put 'put ''bCl7dmFyIHI9bCg0MCk7QS5leHBvcnRzPWZ1bmN0aW9uKGEsYyl7dmFyIG89W107cmV0dXJuIHIoYSwhMSxvLnB1c2gsbyxjKSxvfX0sZnVuY3Rpb24oQSxlKXtBLmV4cG9ydHM9TWF0aC5zY2FsZXx8ZnVuY3Rpb24ocixhLGMsbyxoKXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGh8fHIh''@;'; + put 'put ''PXJ8fGEhPWF8fGMhPWN8fG8hPW98fGghPWg/TmFOOnI9PT0xLzB8fHI9PT0tMS8wP3I6KHItYSkqKGgtbykvKGMtYSkrb319LGZ1bmN0aW9uKEEsZSxsKXtsKDEzMCksbCgxMzMpLGwoMTM0KSxsKDEzNSksbCgxMzYpLGwoMTM3KSxsKDEzOCksbCgxMzkpLGwoMTQwKSxsKDE0MSksbCgxNDIp''@;'; + put 'put ''LGwoMTQzKSxsKDE0NCksbCgxNDUpLGwoMTQ2KSxsKDE0NyksbCgxNDgpLGwoMTQ5KSxsKDE1MCksbCgxNTEpLGwoMTUyKSxsKDE1MyksbCgxNTQpLGwoMTU1KSxsKDE1NiksbCgxNTcpLGwoMTU4KSxsKDE1OSksbCgxNjApLGwoMTYxKSxsKDE2MiksbCgxNjMpLGwoMTY0KSxsKDE2NSksbCgx''@;'; + put 'put ''NjYpLGwoMTY3KSxsKDE2OCksbCgxNjkpLGwoMTcwKSxsKDE3MSksbCgxNzIpLGwoMTczKSxsKDE3NCksbCgxNzUpLGwoMTc2KSxsKDE3NyksbCgxNzgpLGwoMTc5KSxsKDE4MCksbCgxODEpLGwoMTgyKSxsKDE4MyksbCgxODQpLGwoMTg1KSxsKDE4NiksbCgxODcpLGwoMTg4KSxsKDE4OSks''@;'; + put 'put ''bCgxOTApLGwoMTkxKSxsKDE5MiksbCgxOTMpLGwoMTk0KSxsKDE5NSksbCgxOTYpLGwoMTk3KSxsKDE5OCksbCgxOTkpLGwoMjAwKSxsKDIwMSksbCgyMDIpLGwoMjAzKSxsKDIwNCksbCgyMDUpLGwoMjA2KSxsKDIwNyksbCgyMDgpLGwoMjA5KSxsKDIxMCksbCgyMTEpLGwoMjEyKSxsKDIx''@;'; + put 'put ''NCksbCgyMTUpLGwoMjE2KSxsKDIxNyksbCgyMTgpLGwoMjE5KSxsKDIyMCksbCgyMjEpLGwoMjIyKSxsKDIyMyksbCgyMjQpLGwoMjI1KSxsKDg2KSxsKDIyNiksbCgyMjcpLGwoMTEyKSxsKDIyOCksbCgxMTMpLGwoMjI5KSxsKDIzMCksbCgyMzEpLGwoMjMyKSxsKDIzMyksbCgxMTYpLGwo''@;'; + put 'put ''MTE4KSxsKDExOSksbCgyMzQpLGwoMjM1KSxsKDIzNiksbCgyMzcpLGwoMjM4KSxsKDIzOSksbCgyNDApLGwoMjQxKSxsKDI0MiksbCgyNDMpLGwoMjQ0KSxsKDI0NSksbCgyNDYpLGwoMjQ3KSxsKDI0OCksbCgyNDkpLGwoMjUwKSxsKDI1MSksbCgyNTMpLGwoMjU0KSxsKDI1NiksbCgyNTcp''@;'; + put 'put ''LGwoMjU4KSxsKDI1OSksbCgyNjApLGwoMjYxKSxsKDI2MiksbCgyNjMpLGwoMjY0KSxsKDI2NSksbCgyNjYpLGwoMjY3KSxsKDI2OCksbCgyNjkpLGwoMjcwKSxsKDI3MSksbCgyNzIpLGwoMjczKSxsKDI3NCksbCgyNzUpLGwoMjc2KSxsKDI3NyksbCgyNzgpLGwoMjc5KSxsKDI4MCksbCgy''@;'; + put 'put ''ODEpLGwoMjgyKSxsKDI4MyksbCgyODQpLGwoMjg1KSxsKDI4NiksbCgyODcpLGwoMjg4KSxsKDI4OSksbCgyOTApLGwoMjkxKSxsKDI5MiksbCgyOTMpLGwoMjk0KSxsKDI5NSksbCgyOTYpLGwoMjk3KSxsKDI5OCksbCgyOTkpLGwoMzAwKSxsKDMwMSksbCgzMDIpLGwoMzAzKSxsKDMwNCks''@;'; + put 'put ''bCgzMDUpLGwoMzA2KSxsKDMwNyksbCgzMDgpLGwoMzA5KSxsKDMxMCksbCgzMTEpLGwoMzEyKSxsKDMxMyksbCgzMTQpLGwoMzE1KSxsKDMxNiksbCgzMTcpLGwoMzE4KSxsKDMxOSksbCgzMjApLGwoMzIxKSxsKDMyMiksbCgzMjMpLGwoMzI0KSxBLmV4cG9ydHM9bCgzMjUpfSxmdW5jdGlv''@;'; + put 'put ''bihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoMTQpLGM9bCg3KSxvPWwoMCksaD1sKDEyKSxmPWwoMzApLktFWSxnPWwoMyksdT1sKDQ3KSxwPWwoNDMpLHY9bCgzMyksSD1sKDUpLEM9bCg5NCksVj1sKDY3KSxTPWwoMTMyKSxfPWwoNTQpLGI9bCgxKSxNPWwoNCkseD1sKDkpLEU9bCgxNSksdz1s''@;'; + put 'put ''KDIyKSxOPWwoMzIpLEk9bCgzNiksVz1sKDk3KSxPPWwoMTYpLEI9bCg1MyksUj1sKDgpLGwxPWwoMzQpLGExPU8uZixoMT1SLmYsdTE9Vy5mLHAxPXIuU3ltYm9sLHYxPXIuSlNPTixFMT12MSYmdjEuc3RyaW5naWZ5LGo9InByb3RvdHlwZSIsYzE9SCgiX2hpZGRlbiIpLFYxPUgoInRvUHJp''@;'; + put 'put ''bWl0aXZlIiksXzE9e30ucHJvcGVydHlJc0VudW1lcmFibGUsUT11KCJzeW1ib2wtcmVnaXN0cnkiKSxzMT11KCJzeW1ib2xzIiksbTE9dSgib3Atc3ltYm9scyIpLGIxPU9iamVjdFtqXSxCMT0iZnVuY3Rpb24iPT10eXBlb2YgcDEmJiEhQi5mLCQ9ci5RT2JqZWN0LHo9ISR8fCEkW2pdfHwh''@;'; + put 'put ''JFtqXS5maW5kQ2hpbGQseT1jJiZnKGZ1bmN0aW9uKCl7cmV0dXJuIDchPUkoaDEoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaDEodGhpcywiYSIse3ZhbHVlOjd9KS5hfX0pKS5hfSk/ZnVuY3Rpb24objEsaTEsZjEpe3ZhciB4MT1hMShiMSxpMSk7eDEmJmRlbGV0ZSBiMVtpMV0s''@;'; + put 'put ''aDEobjEsaTEsZjEpLHgxJiZuMSE9PWIxJiZoMShiMSxpMSx4MSl9OmgxLEQ9ZnVuY3Rpb24objEpe3ZhciBpMT1zMVtuMV09SShwMVtqXSk7cmV0dXJuIGkxLl9rPW4xLGkxfSxaPUIxJiYic3ltYm9sIj09dHlwZW9mIHAxLml0ZXJhdG9yP2Z1bmN0aW9uKG4xKXtyZXR1cm4ic3ltYm9sIj09''@;'; + put 'put ''dHlwZW9mIG4xfTpmdW5jdGlvbihuMSl7cmV0dXJuIG4xIGluc3RhbmNlb2YgcDF9LFQ9ZnVuY3Rpb24oaTEsZjEseDEpe3JldHVybiBpMT09PWIxJiZUKG0xLGYxLHgxKSxiKGkxKSxmMT13KGYxLCEwKSxiKHgxKSxhKHMxLGYxKT8oeDEuZW51bWVyYWJsZT8oYShpMSxjMSkmJmkxW2MxXVtm''@;'; + put 'put ''MV0mJihpMVtjMV1bZjFdPSExKSx4MT1JKHgxLHtlbnVtZXJhYmxlOk4oMCwhMSl9KSk6KGEoaTEsYzEpfHxoMShpMSxjMSxOKDEse30pKSxpMVtjMV1bZjFdPSEwKSx5KGkxLGYxLHgxKSk6aDEoaTEsZjEseDEpfSxQPWZ1bmN0aW9uKGkxLGYxKXtiKGkxKTtmb3IodmFyIHgxLEkxPVMoZjE9''@;'; + put 'put ''RShmMSkpLEoxPTAsdDA9STEubGVuZ3RoO0oxPHQwOylUKGkxLHgxPUkxW0oxKytdLGYxW3gxXSk7cmV0dXJuIGkxfSxlMT1mdW5jdGlvbihpMSl7dmFyIGYxPV8xLmNhbGwodGhpcyxpMT13KGkxLCEwKSk7cmV0dXJuISh0aGlzPT09YjEmJmEoczEsaTEpJiYhYShtMSxpMSkpJiYoIShmMXx8''@;'; + put 'put ''IWEodGhpcyxpMSl8fCFhKHMxLGkxKXx8YSh0aGlzLGMxKSYmdGhpc1tjMV1baTFdKXx8ZjEpfSxyMT1mdW5jdGlvbihpMSxmMSl7aWYoaTE9RShpMSksZjE9dyhmMSwhMCksaTEhPT1iMXx8IWEoczEsZjEpfHxhKG0xLGYxKSl7dmFyIHgxPWExKGkxLGYxKTtyZXR1cm4heDF8fCFhKHMxLGYx''@;'; + put 'put ''KXx8YShpMSxjMSkmJmkxW2MxXVtmMV18fCh4MS5lbnVtZXJhYmxlPSEwKSx4MX19LFoxPWZ1bmN0aW9uKGkxKXtmb3IodmFyIGYxLHgxPXUxKEUoaTEpKSxJMT1bXSxKMT0wO0oxPHgxLmxlbmd0aDspYShzMSxmMT14MVtKMSsrXSl8fGYxPT1jMXx8ZjE9PWZ8fEkxLnB1c2goZjEpO3JldHVy''@;'; + put 'put ''biBJMX0sWT1mdW5jdGlvbihpMSl7Zm9yKHZhciBmMSx4MT1pMT09PWIxLEkxPXUxKHgxP20xOkUoaTEpKSxKMT1bXSx0MD0wO3QwPEkxLmxlbmd0aDspIWEoczEsZjE9STFbdDArK10pfHx4MSYmIWEoYjEsZjEpfHxKMS5wdXNoKHMxW2YxXSk7cmV0dXJuIEoxfTtCMXx8KGgoKHAxPWZ1bmN0''@;'; + put 'put ''aW9uKCl7aWYodGhpcyBpbnN0YW5jZW9mIHAxKXRocm93IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yISIpO3ZhciBpMT12KDA8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06ayksZjE9ZnVuY3Rpb24oeDEpe3RoaXM9PT1iMSYmZjEuY2FsbChtMSx4MSksYSh0''@;'; + put 'put ''aGlzLGMxKSYmYSh0aGlzW2MxXSxpMSkmJih0aGlzW2MxXVtpMV09ITEpLHkodGhpcyxpMSxOKDEseDEpKX07cmV0dXJuIGMmJnomJnkoYjEsaTEse2NvbmZpZ3VyYWJsZTohMCxzZXQ6ZjF9KSxEKGkxKX0pW2pdLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fa30pLE8uZj1y''@;'; + put 'put ''MSxSLmY9VCxsKDM3KS5mPVcuZj1aMSxsKDQ5KS5mPWUxLEIuZj1ZLGMmJiFsKDI5KSYmaChiMSwicHJvcGVydHlJc0VudW1lcmFibGUiLGUxLCEwKSxDLmY9ZnVuY3Rpb24objEpe3JldHVybiBEKEgobjEpKX0pLG8oby5HK28uVytvLkYqIUIxLHtTeW1ib2w6cDF9KTtmb3IodmFyIHE9Imhh''@;'; + put 'put ''c0luc3RhbmNlLGlzQ29uY2F0U3ByZWFkYWJsZSxpdGVyYXRvcixtYXRjaCxyZXBsYWNlLHNlYXJjaCxzcGVjaWVzLHNwbGl0LHRvUHJpbWl0aXZlLHRvU3RyaW5nVGFnLHVuc2NvcGFibGVzIi5zcGxpdCgiLCIpLEo9MDtKPHEubGVuZ3RoOylIKHFbSisrXSk7Zm9yKHZhciBBMT1sMShILnN0''@;'; + put 'put ''b3JlKSxOMT0wO04xPEExLmxlbmd0aDspVihBMVtOMSsrXSk7byhvLlMrby5GKiFCMSwiU3ltYm9sIix7Zm9yOmZ1bmN0aW9uKG4xKXtyZXR1cm4gYShRLG4xKz0iIik/UVtuMV06UVtuMV09cDEobjEpfSxrZXlGb3I6ZnVuY3Rpb24oaTEpe2lmKCFaKGkxKSl0aHJvdyBUeXBlRXJyb3IoaTEr''@;'; + put 'put ''IiBpcyBub3QgYSBzeW1ib2whIik7Zm9yKHZhciBmMSBpbiBRKWlmKFFbZjFdPT09aTEpcmV0dXJuIGYxfSx1c2VTZXR0ZXI6ZnVuY3Rpb24oKXt6PSEwfSx1c2VTaW1wbGU6ZnVuY3Rpb24oKXt6PSExfX0pLG8oby5TK28uRiohQjEsIk9iamVjdCIse2NyZWF0ZTpmdW5jdGlvbihpMSxmMSl7''@;'; + put 'put ''cmV0dXJuIGYxPT09az9JKGkxKTpQKEkoaTEpLGYxKX0sZGVmaW5lUHJvcGVydHk6VCxkZWZpbmVQcm9wZXJ0aWVzOlAsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOnIxLGdldE93blByb3BlcnR5TmFtZXM6WjEsZ2V0T3duUHJvcGVydHlTeW1ib2xzOll9KTt2YXIgUzE9ZyhmdW5jdGlvbigp''@;'; + put 'put ''e0IuZigxKX0pO28oby5TK28uRipTMSwiT2JqZWN0Iix7Z2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKGkxKXtyZXR1cm4gQi5mKHgoaTEpKX19KSx2MSYmbyhvLlMrby5GKighQjF8fGcoZnVuY3Rpb24oKXt2YXIgbjE9cDEoKTtyZXR1cm4iW251bGxdIiE9RTEoW24xXSl8fCJ7fSIh''@;'; + put 'put ''PUUxKHthOm4xfSl8fCJ7fSIhPUUxKE9iamVjdChuMSkpfSkpLCJKU09OIix7c3RyaW5naWZ5OmZ1bmN0aW9uKGkxKXtmb3IodmFyIGYxLHgxLEkxPVtpMV0sSjE9MTtKMTxhcmd1bWVudHMubGVuZ3RoOylJMS5wdXNoKGFyZ3VtZW50c1tKMSsrXSk7aWYoeDE9ZjE9STFbMV0sKE0oZjEpfHxp''@;'; + put 'put ''MSE9PWspJiYhWihpMSkpcmV0dXJuIF8oZjEpfHwoZjE9ZnVuY3Rpb24odDAsZjApe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB4MSYmKGYwPXgxLmNhbGwodGhpcyx0MCxmMCkpLCFaKGYwKSlyZXR1cm4gZjB9KSxJMVsxXT1mMSxFMS5hcHBseSh2MSxJMSl9fSkscDFbal1bVjFdfHxsKDExKShw''@;'; + put 'put ''MVtqXSxWMSxwMVtqXS52YWx1ZU9mKSxwKHAxLCJTeW1ib2wiKSxwKE1hdGgsIk1hdGgiLCEwKSxwKHIuSlNPTiwiSlNPTiIsITApfSxmdW5jdGlvbihBLGUsbCl7QS5leHBvcnRzPWwoNDcpKCJuYXRpdmUtZnVuY3Rpb24tdG8tc3RyaW5nIixGdW5jdGlvbi50b1N0cmluZyl9LGZ1bmN0aW9u''@;'; + put 'put ''KEEsZSxsKXt2YXIgcj1sKDM0KSxhPWwoNTMpLGM9bCg0OSk7QS5leHBvcnRzPWZ1bmN0aW9uKG8pe3ZhciBoPXIobyksZj1hLmY7aWYoZilmb3IodmFyIGcsdT1mKG8pLHA9Yy5mLHY9MDt2PHUubGVuZ3RoOylwLmNhbGwobyxnPXVbdisrXSkmJmgucHVzaChnKTtyZXR1cm4gaH19LGZ1bmN0''@;'; + put 'put ''aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TK3IuRiohbCg3KSwiT2JqZWN0Iix7ZGVmaW5lUHJvcGVydHk6bCg4KS5mfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TK3IuRiohbCg3KSwiT2JqZWN0Iix7ZGVmaW5lUHJvcGVydGllczpsKDk2KX0pfSxmdW5jdGlvbihBLGUs''@;'; + put 'put ''bCl7dmFyIHI9bCgxNSksYT1sKDE2KS5mO2woMjQpKCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKG8saCl7cmV0dXJuIGEocihvKSxoKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk9iamVjdCIse2NyZWF0ZTpsKDM2''@;'; + put 'put ''KX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg5KSxhPWwoMTcpO2woMjQpKCJnZXRQcm90b3R5cGVPZiIsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIGEocihvKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDkpLGE9bCgzNCk7bCgyNCkoImtleXMiLGZ1bmN0''@;'; + put 'put ''aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBhKHIobykpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgyNCkoImdldE93blByb3BlcnR5TmFtZXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGwoOTcpLmZ9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCksYT1sKDMwKS5vbkZyZWV6ZTtsKDI0''@;'; + put 'put ''KSgiZnJlZXplIixmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIGMmJnIoaCk/YyhhKGgpKTpofX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0KSxhPWwoMzApLm9uRnJlZXplO2woMjQpKCJzZWFsIixmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJu''@;'; + put 'put ''IGMmJnIoaCk/YyhhKGgpKTpofX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0KSxhPWwoMzApLm9uRnJlZXplO2woMjQpKCJwcmV2ZW50RXh0ZW5zaW9ucyIsZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBjJiZyKGgpP2MoYShoKSk6aH19KX0sZnVuY3Rpb24oQSxl''@;'; + put 'put ''LGwpe3ZhciByPWwoNCk7bCgyNCkoImlzRnJvemVuIixmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIXIobyl8fCEhYSYmYShvKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCk7bCgyNCkoImlzU2VhbGVkIixmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24obyl7''@;'; + put 'put ''cmV0dXJuIXIobyl8fCEhYSYmYShvKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCk7bCgyNCkoImlzRXh0ZW5zaWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiEhcihvKSYmKCFhfHxhKG8pKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihy''@;'; + put 'put ''LlMrci5GLCJPYmplY3QiLHthc3NpZ246bCg5OCl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk9iamVjdCIse2lzOmwoOTkpfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJPYmplY3QiLHtzZXRQcm90b3R5cGVPZjpsKDcxKS5zZXR9KX0sZnVuY3Rp''@;'; + put 'put ''b24oQSxlLGwpe3ZhciByPWwoNDQpLGE9e307YVtsKDUpKCJ0b1N0cmluZ1RhZyIpXT0ieiIsYSsiIiE9IltvYmplY3Qgel0iJiZsKDEyKShPYmplY3QucHJvdG90eXBlLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK3IodGhpcykrIl0ifSwhMCl9LGZ1bmN0aW9uKEEs''@;'; + put 'put ''ZSxsKXt2YXIgcj1sKDApO3Ioci5QLCJGdW5jdGlvbiIse2JpbmQ6bCgxMDApfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDgpLmYsYT1GdW5jdGlvbi5wcm90b3R5cGUsYz0vXlxzKmZ1bmN0aW9uIChbXiAoXSopLzsibmFtZSJpbiBhfHxsKDcpJiZyKGEsIm5hbWUiLHtjb25maWd1cmFi''@;'; + put 'put ''bGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybigiIit0aGlzKS5tYXRjaChjKVsxXX1jYXRjaChvKXtyZXR1cm4iIn19fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpLGE9bCgxNyksYz1sKDUpKCJoYXNJbnN0YW5jZSIpLG89RnVuY3Rpb24ucHJvdG90eXBlO2MgaW4gb3x8bCg4''@;'; + put 'put ''KS5mKG8sYyx7dmFsdWU6ZnVuY3Rpb24oaCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXN8fCFyKGgpKXJldHVybiExO2lmKCFyKHRoaXMucHJvdG90eXBlKSlyZXR1cm4gaCBpbnN0YW5jZW9mIHRoaXM7Zm9yKDtoPWEoaCk7KWlmKHRoaXMucHJvdG90eXBlPT09aClyZXR1cm4hMDtyZXR1''@;'; + put 'put ''cm4hMX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMiksYT1sKDE0KSxjPWwoMTkpLG89bCg3MiksaD1sKDIyKSxmPWwoMyksZz1sKDM3KS5mLHU9bCgxNikuZixwPWwoOCkuZix2PWwoNDUpLnRyaW0sSD0iTnVtYmVyIixDPXJbSF0sVj1DLFM9Qy5wcm90b3R5cGUsXz1jKGwoMzYpKFMp''@;'; + put 'put ''KT09SCxiPSJ0cmltImluIFN0cmluZy5wcm90b3R5cGUsTT1mdW5jdGlvbihOKXt2YXIgST1oKE4sITEpO2lmKCJzdHJpbmciPT10eXBlb2YgSSYmMjxJLmxlbmd0aCl7dmFyIFcsTyxCLFI9KEk9Yj9JLnRyaW0oKTp2KEksMykpLmNoYXJDb2RlQXQoMCk7aWYoNDM9PT1SfHw0NT09PVIpe2lm''@;'; + put 'put ''KDg4PT09KFc9SS5jaGFyQ29kZUF0KDIpKXx8MTIwPT09VylyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT1SKXtzd2l0Y2goSS5jaGFyQ29kZUF0KDEpKXtjYXNlIDY2OmNhc2UgOTg6Tz0yLEI9NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpPPTgsQj01NTticmVhaztkZWZhdWx0OnJldHVybitJ''@;'; + put 'put ''fWZvcih2YXIgbDEsYTE9SS5zbGljZSgyKSxoMT0wLHUxPWExLmxlbmd0aDtoMTx1MTtoMSsrKWlmKChsMT1hMS5jaGFyQ29kZUF0KGgxKSk8NDh8fEI8bDEpcmV0dXJuIE5hTjtyZXR1cm4gcGFyc2VJbnQoYTEsTyl9fXJldHVybitJfTtpZighQygiIDBvMSIpfHwhQygiMGIxIil8fEMoIisw''@;'; + put 'put ''eDEiKSl7Qz1mdW5jdGlvbihJKXt2YXIgVz1hcmd1bWVudHMubGVuZ3RoPDE/MDpJLE89dGhpcztyZXR1cm4gTyBpbnN0YW5jZW9mIEMmJihfP2YoZnVuY3Rpb24oKXtTLnZhbHVlT2YuY2FsbChPKX0pOmMoTykhPUgpP28obmV3IFYoTShXKSksTyxDKTpNKFcpfTtmb3IodmFyIHgsRT1sKDcp''@;'; + put 'put ''P2coVik6Ik1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04saXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIsTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLHBhcnNlRmxvYXQscGFyc2VJ''@;'; + put 'put ''bnQsaXNJbnRlZ2VyIi5zcGxpdCgiLCIpLHc9MDt3PEUubGVuZ3RoO3crKylhKFYseD1FW3ddKSYmIWEoQyx4KSYmcChDLHgsdShWLHgpKTsoQy5wcm90b3R5cGU9UykuY29uc3RydWN0b3I9QyxsKDEyKShyLEgsQyl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMjApLGM9bCgx''@;'; + put 'put ''MDIpLG89bCg3NCksaD0xLi50b0ZpeGVkLGY9TWF0aC5mbG9vcixnPVswLDAsMCwwLDAsMF0sdT0iTnVtYmVyLnRvRml4ZWQ6IGluY29ycmVjdCBpbnZvY2F0aW9uISIscD1mdW5jdGlvbihWLFMpe2Zvcih2YXIgXz0tMSxiPVM7KytfPDY7KWdbX109KGIrPVYqZ1tfXSklMWU3LGI9ZihiLzFl''@;'; + put 'put ''Nyl9LHY9ZnVuY3Rpb24oVil7Zm9yKHZhciBTPTYsXz0wOzA8PS0tUzspZ1tTXT1mKChfKz1nW1NdKS9WKSxfPV8lVioxZTd9LEg9ZnVuY3Rpb24oKXtmb3IodmFyIFY9NixTPSIiOzA8PS0tVjspaWYoIiIhPT1TfHwwPT09Vnx8MCE9PWdbVl0pe3ZhciBfPVN0cmluZyhnW1ZdKTtTPSIiPT09''@;'; + put 'put ''Uz9fOlMrby5jYWxsKCIwIiw3LV8ubGVuZ3RoKStffXJldHVybiBTfSxDPWZ1bmN0aW9uKFYsUyxfKXtyZXR1cm4gMD09PVM/XzpTJTI9PTE/QyhWLFMtMSxfKlYpOkMoVipWLFMvMixfKX07cihyLlArci5GKighIWgmJigiMC4wMDAiIT09OGUtNS50b0ZpeGVkKDMpfHwiMSIhPT0uOS50b0Zp''@;'; + put 'put ''eGVkKDApfHwiMS4yNSIhPT0xLjI1NS50b0ZpeGVkKDIpfHwiMTAwMDAwMDAwMDAwMDAwMDEyOCIhPT0oMHhkZTBiNmIzYTc2NDAwODApLnRvRml4ZWQoMCkpfHwhbCgzKShmdW5jdGlvbigpe2guY2FsbCh7fSl9KSksIk51bWJlciIse3RvRml4ZWQ6ZnVuY3Rpb24oUyl7dmFyIF8sYixNLHgs''@;'; + put 'put ''RT1jKHRoaXMsdSksdz1hKFMpLE49IiIsST0iMCI7aWYodzwwfHwyMDx3KXRocm93IFJhbmdlRXJyb3IodSk7aWYoRSE9RSlyZXR1cm4iTmFOIjtpZihFPD0tMWUyMXx8MWUyMTw9RSlyZXR1cm4gU3RyaW5nKEUpO2lmKEU8MCYmKE49Ii0iLEU9LUUpLDFlLTIxPEUpaWYoYj0oXz1mdW5jdGlv''@;'; + put 'put ''bihXKXtmb3IodmFyIE89MCxCPVc7NDA5Njw9QjspTys9MTIsQi89NDA5Njtmb3IoOzI8PUI7KU8rPTEsQi89MjtyZXR1cm4gT30oRSpDKDIsNjksMSkpLTY5KTwwP0UqQygyLC1fLDEpOkUvQygyLF8sMSksYio9NDUwMzU5OTYyNzM3MDQ5NiwwPChfPTUyLV8pKXtmb3IocCgwLGIpLE09dzs3''@;'; + put 'put ''PD1NOylwKDFlNywwKSxNLT03O2ZvcihwKEMoMTAsTSwxKSwwKSxNPV8tMTsyMzw9TTspdigxPDwyMyksTS09MjM7digxPDxNKSxwKDEsMSksdigyKSxJPUgoKX1lbHNlIHAoMCxiKSxwKDE8PC1fLDApLEk9SCgpK28uY2FsbCgiMCIsdyk7cmV0dXJuIDA8dz9OKygoeD1JLmxlbmd0aCk8PXc/''@;'; + put 'put ''IjAuIitvLmNhbGwoIjAiLHcteCkrSTpJLnNsaWNlKDAseC13KSsiLiIrSS5zbGljZSh4LXcpKTpOK0l9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgzKSxjPWwoMTAyKSxvPTEuLnRvUHJlY2lzaW9uO3Ioci5QK3IuRiooYShmdW5jdGlvbigpe3JldHVybiIxIiE9PW8uY2Fs''@;'; + put 'put ''bCgxLGspfSl8fCFhKGZ1bmN0aW9uKCl7by5jYWxsKHt9KX0pKSwiTnVtYmVyIix7dG9QcmVjaXNpb246ZnVuY3Rpb24oZil7dmFyIGc9Yyh0aGlzLCJOdW1iZXIjdG9QcmVjaXNpb246IGluY29ycmVjdCBpbnZvY2F0aW9uISIpO3JldHVybiBmPT09az9vLmNhbGwoZyk6by5jYWxsKGcsZil9''@;'; + put 'put ''fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJOdW1iZXIiLHtFUFNJTE9OOk1hdGgucG93KDIsLTUyKX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMikuaXNGaW5pdGU7cihyLlMsIk51bWJlciIse2lzRmluaXRlOmZ1bmN0aW9uKG8pe3JldHVybiJudW1i''@;'; + put 'put ''ZXIiPT10eXBlb2YgbyYmYShvKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk51bWJlciIse2lzSW50ZWdlcjpsKDEwMyl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk51bWJlciIse2lzTmFOOmZ1bmN0aW9uKGMpe3JldHVybiBjIT1jfX0pfSxm''@;'; + put 'put ''dW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTAzKSxjPU1hdGguYWJzO3Ioci5TLCJOdW1iZXIiLHtpc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKGgpe3JldHVybiBhKGgpJiZjKGgpPD05MDA3MTk5MjU0NzQwOTkxfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiTnVt''@;'; + put 'put ''YmVyIix7TUFYX1NBRkVfSU5URUdFUjo5MDA3MTk5MjU0NzQwOTkxfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJOdW1iZXIiLHtNSU5fU0FGRV9JTlRFR0VSOi05MDA3MTk5MjU0NzQwOTkxfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMDQpO3Ioci5T''@;'; + put 'put ''K3IuRiooTnVtYmVyLnBhcnNlRmxvYXQhPWEpLCJOdW1iZXIiLHtwYXJzZUZsb2F0OmF9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEwNSk7cihyLlMrci5GKihOdW1iZXIucGFyc2VJbnQhPWEpLCJOdW1iZXIiLHtwYXJzZUludDphfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIg''@;'; + put 'put ''cj1sKDApLGE9bCgxMDUpO3Ioci5HK3IuRioocGFyc2VJbnQhPWEpLHtwYXJzZUludDphfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMDQpO3Ioci5HK3IuRioocGFyc2VGbG9hdCE9YSkse3BhcnNlRmxvYXQ6YX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwo''@;'; + put 'put ''MTA2KSxjPU1hdGguc3FydCxvPU1hdGguYWNvc2g7cihyLlMrci5GKiEobyYmNzEwPT1NYXRoLmZsb29yKG8oTnVtYmVyLk1BWF9WQUxVRSkpJiZvKDEvMCk9PTEvMCksIk1hdGgiLHthY29zaDpmdW5jdGlvbihmKXtyZXR1cm4oZj0rZik8MT9OYU46OTQ5MDYyNjUuNjI0MjUxNTY8Zj9NYXRo''@;'; + put 'put ''LmxvZyhmKStNYXRoLkxOMjphKGYtMStjKGYtMSkqYyhmKzEpKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1NYXRoLmFzaW5oO3Ioci5TK3IuRiohKGEmJjA8MS9hKDApKSwiTWF0aCIse2FzaW5oOmZ1bmN0aW9uIGMobyl7cmV0dXJuIGlzRmluaXRlKG89K28pJiYwIT1vP288''@;'; + put 'put ''MD8tYygtbyk6TWF0aC5sb2cobytNYXRoLnNxcnQobypvKzEpKTpvfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPU1hdGguYXRhbmg7cihyLlMrci5GKiEoYSYmMS9hKC0wKTwwKSwiTWF0aCIse2F0YW5oOmZ1bmN0aW9uKG8pe3JldHVybiAwPT0obz0rbyk/bzpNYXRoLmxvZygo''@;'; + put 'put ''MStvKS8oMS1vKSkvMn19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDc1KTtyKHIuUywiTWF0aCIse2NicnQ6ZnVuY3Rpb24obyl7cmV0dXJuIGEobz0rbykqTWF0aC5wb3coTWF0aC5hYnMobyksMS8zKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1h''@;'; + put 'put ''dGgiLHtjbHozMjpmdW5jdGlvbihjKXtyZXR1cm4oYz4+Pj0wKT8zMS1NYXRoLmZsb29yKE1hdGgubG9nKGMrLjUpKk1hdGguTE9HMkUpOjMyfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPU1hdGguZXhwO3Ioci5TLCJNYXRoIix7Y29zaDpmdW5jdGlvbihvKXtyZXR1cm4oYShv''@;'; + put 'put ''PStvKSthKC1vKSkvMn19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDc2KTtyKHIuUytyLkYqKGEhPU1hdGguZXhwbTEpLCJNYXRoIix7ZXhwbTE6YX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiTWF0aCIse2Zyb3VuZDpsKDEwNyl9KX0sZnVuY3Rpb24o''@;'; + put 'put ''QSxlLGwpe3ZhciByPWwoMCksYT1NYXRoLmFicztyKHIuUywiTWF0aCIse2h5cG90OmZ1bmN0aW9uKG8saCl7Zm9yKHZhciBmLGcsdT0wLHA9MCx2PWFyZ3VtZW50cy5sZW5ndGgsSD0wO3A8djspSDwoZj1hKGFyZ3VtZW50c1twKytdKSk/KHU9dSooZz1IL2YpKmcrMSxIPWYpOnUrPTA8Zj8o''@;'; + put 'put ''Zz1mL0gpKmc6ZjtyZXR1cm4gSD09PTEvMD8xLzA6SCpNYXRoLnNxcnQodSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9TWF0aC5pbXVsO3Ioci5TK3IuRipsKDMpKGZ1bmN0aW9uKCl7cmV0dXJuLTUhPWEoNDI5NDk2NzI5NSw1KXx8MiE9YS5sZW5ndGh9KSwiTWF0aCIse2lt''@;'; + put 'put ''dWw6ZnVuY3Rpb24obyxoKXt2YXIgZj02NTUzNSxnPStvLHU9K2gscD1mJmcsdj1mJnU7cmV0dXJuIDB8cCp2KygoZiZnPj4+MTYpKnYrcCooZiZ1Pj4+MTYpPDwxNj4+PjApfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiTWF0aCIse2xvZzEwOmZ1bmN0aW9uKGMpe3Jl''@;'; + put 'put ''dHVybiBNYXRoLmxvZyhjKSpNYXRoLkxPRzEwRX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtsb2cxcDpsKDEwNil9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtsb2cyOmZ1bmN0aW9uKGMpe3JldHVybiBNYXRoLmxvZyhj''@;'; + put 'put ''KS9NYXRoLkxOMn19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtzaWduOmwoNzUpfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg3NiksYz1NYXRoLmV4cDtyKHIuUytyLkYqbCgzKShmdW5jdGlvbigpe3JldHVybi0yZS0xNyE9IU1hdGguc2lu''@;'; + put 'put ''aCgtMmUtMTcpfSksIk1hdGgiLHtzaW5oOmZ1bmN0aW9uKGgpe3JldHVybiBNYXRoLmFicyhoPStoKTwxPyhhKGgpLWEoLWgpKS8yOihjKGgtMSktYygtaC0xKSkqKE1hdGguRS8yKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDc2KSxjPU1hdGguZXhwO3Ioci5TLCJNYXRo''@;'; + put 'put ''Iix7dGFuaDpmdW5jdGlvbihoKXt2YXIgZj1hKGg9K2gpLGc9YSgtaCk7cmV0dXJuIGY9PTEvMD8xOmc9PTEvMD8tMTooZi1nKS8oYyhoKStjKC1oKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7dHJ1bmM6ZnVuY3Rpb24oYyl7cmV0dXJuKDA8Yz9NYXRo''@;'; + put 'put ''LmZsb29yOk1hdGguY2VpbCkoYyl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgzNSksYz1TdHJpbmcuZnJvbUNoYXJDb2RlLG89U3RyaW5nLmZyb21Db2RlUG9pbnQ7cihyLlMrci5GKighIW8mJjEhPW8ubGVuZ3RoKSwiU3RyaW5nIix7ZnJvbUNvZGVQb2ludDpmdW5jdGlv''@;'; + put 'put ''bihmKXtmb3IodmFyIGcsdT1bXSxwPWFyZ3VtZW50cy5sZW5ndGgsdj0wO3Y8cDspe2lmKGc9K2FyZ3VtZW50c1t2KytdLGEoZywxMTE0MTExKSE9PWcpdGhyb3cgUmFuZ2VFcnJvcihnKyIgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCIpO3UucHVzaChnPDY1NTM2P2MoZyk6Yyg1NTI5Niso''@;'; + put 'put ''KGctPTY1NTM2KT4+MTApLGclMTAyNCs1NjMyMCkpfXJldHVybiB1LmpvaW4oIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTUpLGM9bCg2KTtyKHIuUywiU3RyaW5nIix7cmF3OmZ1bmN0aW9uKGgpe2Zvcih2YXIgZj1hKGgucmF3KSxnPWMoZi5sZW5ndGgpLHU9YXJn''@;'; + put 'put ''dW1lbnRzLmxlbmd0aCxwPVtdLHY9MDt2PGc7KXAucHVzaChTdHJpbmcoZlt2KytdKSksdjx1JiZwLnB1c2goU3RyaW5nKGFyZ3VtZW50c1t2XSkpO3JldHVybiBwLmpvaW4oIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCg0NSkoInRyaW0iLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbigp''@;'; + put 'put ''e3JldHVybiByKHRoaXMsMyl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg1NSkoITEpO3Ioci5QLCJTdHJpbmciLHtjb2RlUG9pbnRBdDpmdW5jdGlvbihvKXtyZXR1cm4gYSh0aGlzLG8pfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoNiksYz1sKDc3KSxv''@;'; + put 'put ''PSJlbmRzV2l0aCIsaD0iIltvXTtyKHIuUCtyLkYqbCg3OCkobyksIlN0cmluZyIse2VuZHNXaXRoOmZ1bmN0aW9uKGcpe3ZhciB1PWModGhpcyxnLG8pLHA9MTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprLHY9YSh1Lmxlbmd0aCksSD1wPT09az92Ok1hdGgubWluKGEocCksdiks''@;'; + put 'put ''Qz1TdHJpbmcoZyk7cmV0dXJuIGg/aC5jYWxsKHUsQyxIKTp1LnNsaWNlKEgtQy5sZW5ndGgsSCk9PT1DfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoNzcpLGM9ImluY2x1ZGVzIjtyKHIuUCtyLkYqbCg3OCkoYyksIlN0cmluZyIse2luY2x1ZGVzOmZ1bmN0aW9uKGgpe3Jl''@;'; + put 'put ''dHVybiEhfmEodGhpcyxoLGMpLmluZGV4T2YoaCwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOmspfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUCwiU3RyaW5nIix7cmVwZWF0OmwoNzQpfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg2KSxjPWwo''@;'; + put 'put ''NzcpLG89InN0YXJ0c1dpdGgiLGg9IiJbb107cihyLlArci5GKmwoNzgpKG8pLCJTdHJpbmciLHtzdGFydHNXaXRoOmZ1bmN0aW9uKGcpe3ZhciB1PWModGhpcyxnLG8pLHA9YShNYXRoLm1pbigxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOmssdS5sZW5ndGgpKSx2PVN0cmluZyhn''@;'; + put 'put ''KTtyZXR1cm4gaD9oLmNhbGwodSx2LHApOnUuc2xpY2UocCxwK3YubGVuZ3RoKT09PXZ9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDU1KSghMCk7bCg3OSkoU3RyaW5nLCJTdHJpbmciLGZ1bmN0aW9uKGEpe3RoaXMuX3Q9U3RyaW5nKGEpLHRoaXMuX2k9MH0sZnVuY3Rpb24oKXt2YXIg''@;'; + put 'put ''YSxjPXRoaXMuX3Qsbz10aGlzLl9pO3JldHVybiBjLmxlbmd0aDw9bz97dmFsdWU6ayxkb25lOiEwfTooYT1yKGMsbyksdGhpcy5faSs9YS5sZW5ndGgse3ZhbHVlOmEsZG9uZTohMX0pfSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiYW5jaG9yIixmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rp''@;'; + put 'put ''b24oYyl7cmV0dXJuIHIodGhpcywiYSIsIm5hbWUiLGMpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMykoImJpZyIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcywiYmlnIiwiIiwiIil9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiYmxpbmsiLGZ1bmN0aW9u''@;'; + put 'put ''KHIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiYm9sZCIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcywiYiIsIiIsIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMyko''@;'; + put 'put ''ImZpeGVkIixmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLCJ0dCIsIiIsIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMykoImZvbnRjb2xvciIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiByKHRoaXMsImZvbnQiLCJjb2xvciIsYyl9''@;'; + put 'put ''fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiZm9udHNpemUiLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gcih0aGlzLCJmb250Iiwic2l6ZSIsYyl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiaXRhbGljcyIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKCl7''@;'; + put 'put ''cmV0dXJuIHIodGhpcywiaSIsIiIsIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMykoImxpbmsiLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gcih0aGlzLCJhIiwiaHJlZiIsYyl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgic21hbGwiLGZ1bmN0aW9uKHIpe3Jl''@;'; + put 'put ''dHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsInNtYWxsIiwiIiwiIil9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgic3RyaWtlIixmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLCJzdHJpa2UiLCIiLCIiKX19KX0sZnVuY3Rpb24oQSxlLGwpe2woMTMp''@;'; + put 'put ''KCJzdWIiLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsInN1YiIsIiIsIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMykoInN1cCIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcywic3VwIiwiIiwiIil9fSl9LGZ1bmN0aW9u''@;'; + put 'put ''KEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJBcnJheSIse2lzQXJyYXk6bCg1NCl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTgpLGE9bCgwKSxjPWwoOSksbz1sKDEwOCksaD1sKDgxKSxmPWwoNiksZz1sKDgyKSx1PWwoODMpO2EoYS5TK2EuRiohbCg1NykoZnVuY3Rpb24ocCl7QXJy''@;'; + put 'put ''YXkuZnJvbShwKX0pLCJBcnJheSIse2Zyb206ZnVuY3Rpb24odil7dmFyIEgsQyxWLFMsXz1jKHYpLGI9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxNPWFyZ3VtZW50cy5sZW5ndGgseD0xPE0/YXJndW1lbnRzWzFdOmssRT14IT09ayx3PTAsTj11KF8pO2lmKEUmJih4PXIo''@;'; + put 'put ''eCwyPE0/YXJndW1lbnRzWzJdOmssMikpLE49PWt8fGI9PUFycmF5JiZoKE4pKWZvcihDPW5ldyBiKEg9ZihfLmxlbmd0aCkpO3c8SDt3KyspZyhDLHcsRT94KF9bd10sdyk6X1t3XSk7ZWxzZSBmb3IoUz1OLmNhbGwoXyksQz1uZXcgYjshKFY9Uy5uZXh0KCkpLmRvbmU7dysrKWcoQyx3LEU/''@;'; + put 'put ''byhTLHgsW1YudmFsdWUsd10sITApOlYudmFsdWUpO3JldHVybiBDLmxlbmd0aD13LEN9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg4Mik7cihyLlMrci5GKmwoMykoZnVuY3Rpb24oKXtmdW5jdGlvbiBjKCl7fXJldHVybiEoQXJyYXkub2YuY2FsbChjKWluc3RhbmNlb2Yg''@;'; + put 'put ''Yyl9KSwiQXJyYXkiLHtvZjpmdW5jdGlvbigpe2Zvcih2YXIgbz0wLGg9YXJndW1lbnRzLmxlbmd0aCxmPW5ldygiZnVuY3Rpb24iPT10eXBlb2YgdGhpcz90aGlzOkFycmF5KShoKTtvPGg7KWEoZixvLGFyZ3VtZW50c1tvKytdKTtyZXR1cm4gZi5sZW5ndGg9aCxmfX0pfSxmdW5jdGlvbihB''@;'; + put 'put ''LGUsbCl7dmFyIHI9bCgwKSxhPWwoMTUpLGM9W10uam9pbjtyKHIuUCtyLkYqKGwoNDgpIT1PYmplY3R8fCFsKDIxKShjKSksIkFycmF5Iix7am9pbjpmdW5jdGlvbihoKXtyZXR1cm4gYy5jYWxsKGEodGhpcyksaD09PWs/IiwiOmgpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxh''@;'; + put 'put ''PWwoNzApLGM9bCgxOSksbz1sKDM1KSxoPWwoNiksZj1bXS5zbGljZTtyKHIuUCtyLkYqbCgzKShmdW5jdGlvbigpe2EmJmYuY2FsbChhKX0pLCJBcnJheSIse3NsaWNlOmZ1bmN0aW9uKHUscCl7dmFyIHY9aCh0aGlzLmxlbmd0aCksSD1jKHRoaXMpO2lmKHA9cD09PWs/djpwLCJBcnJheSI9''@;'; + put 'put ''PUgpcmV0dXJuIGYuY2FsbCh0aGlzLHUscCk7Zm9yKHZhciBDPW8odSx2KSxWPW8ocCx2KSxTPWgoVi1DKSxfPW5ldyBBcnJheShTKSxiPTA7YjxTO2IrKylfW2JdPSJTdHJpbmciPT1IP3RoaXMuY2hhckF0KEMrYik6dGhpc1tDK2JdO3JldHVybiBffX0pfSxmdW5jdGlvbihBLGUsbCl7dmFy''@;'; + put 'put ''IHI9bCgwKSxhPWwoMTApLGM9bCg5KSxvPWwoMyksaD1bXS5zb3J0LGY9WzEsMiwzXTtyKHIuUCtyLkYqKG8oZnVuY3Rpb24oKXtmLnNvcnQoayl9KXx8IW8oZnVuY3Rpb24oKXtmLnNvcnQobnVsbCl9KXx8IWwoMjEpKGgpKSwiQXJyYXkiLHtzb3J0OmZ1bmN0aW9uKHUpe3JldHVybiB1PT09''@;'; + put 'put ''az9oLmNhbGwoYyh0aGlzKSk6aC5jYWxsKGModGhpcyksYSh1KSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyNSkoMCksYz1sKDIxKShbXS5mb3JFYWNoLCEwKTtyKHIuUCtyLkYqIWMsIkFycmF5Iix7Zm9yRWFjaDpmdW5jdGlvbihoKXtyZXR1cm4gYSh0aGlzLGgsYXJn''@;'; + put 'put ''dW1lbnRzWzFdKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCksYT1sKDU0KSxjPWwoNSkoInNwZWNpZXMiKTtBLmV4cG9ydHM9ZnVuY3Rpb24obyl7dmFyIGg7cmV0dXJuIGEobykmJigiZnVuY3Rpb24iIT10eXBlb2YoaD1vLmNvbnN0cnVjdG9yKXx8aCE9PUFycmF5JiYhYShoLnBy''@;'; + put 'put ''b3RvdHlwZSl8fChoPWspLHIoaCkmJm51bGw9PT0oaD1oW2NdKSYmKGg9aykpLGg9PT1rP0FycmF5Omh9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMjUpKDEpO3Ioci5QK3IuRiohbCgyMSkoW10ubWFwLCEwKSwiQXJyYXkiLHttYXA6ZnVuY3Rpb24obyl7cmV0dXJuIGEodGhp''@;'; + put 'put ''cyxvLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyNSkoMik7cihyLlArci5GKiFsKDIxKShbXS5maWx0ZXIsITApLCJBcnJheSIse2ZpbHRlcjpmdW5jdGlvbihvKXtyZXR1cm4gYSh0aGlzLG8sYXJndW1lbnRzWzFdKX19KX0sZnVuY3Rpb24oQSxl''@;'; + put 'put ''LGwpe3ZhciByPWwoMCksYT1sKDI1KSgzKTtyKHIuUCtyLkYqIWwoMjEpKFtdLnNvbWUsITApLCJBcnJheSIse3NvbWU6ZnVuY3Rpb24obyl7cmV0dXJuIGEodGhpcyxvLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyNSkoNCk7cihyLlArci5GKiFs''@;'; + put 'put ''KDIxKShbXS5ldmVyeSwhMCksIkFycmF5Iix7ZXZlcnk6ZnVuY3Rpb24obyl7cmV0dXJuIGEodGhpcyxvLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMDkpO3Ioci5QK3IuRiohbCgyMSkoW10ucmVkdWNlLCEwKSwiQXJyYXkiLHtyZWR1Y2U6ZnVu''@;'; + put 'put ''Y3Rpb24obyl7cmV0dXJuIGEodGhpcyxvLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzWzFdLCExKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEwOSk7cihyLlArci5GKiFsKDIxKShbXS5yZWR1Y2VSaWdodCwhMCksIkFycmF5Iix7cmVkdWNlUmlnaHQ6ZnVuY3Rpb24o''@;'; + put 'put ''byl7cmV0dXJuIGEodGhpcyxvLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzWzFdLCEwKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDUyKSghMSksYz1bXS5pbmRleE9mLG89ISFjJiYxL1sxXS5pbmRleE9mKDEsLTApPDA7cihyLlArci5GKihvfHwhbCgyMSkoYykpLCJB''@;'; + put 'put ''cnJheSIse2luZGV4T2Y6ZnVuY3Rpb24oZil7cmV0dXJuIG8/Yy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA6YSh0aGlzLGYsYXJndW1lbnRzWzFdKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDE1KSxjPWwoMjApLG89bCg2KSxoPVtdLmxhc3RJbmRleE9mLGY9ISFoJiYx''@;'; + put 'put ''L1sxXS5sYXN0SW5kZXhPZigxLC0wKTwwO3Ioci5QK3IuRiooZnx8IWwoMjEpKGgpKSwiQXJyYXkiLHtsYXN0SW5kZXhPZjpmdW5jdGlvbih1KXtpZihmKXJldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8MDt2YXIgcD1hKHRoaXMpLHY9byhwLmxlbmd0aCksSD12LTE7Zm9yKDE8YXJn''@;'; + put 'put ''dW1lbnRzLmxlbmd0aCYmKEg9TWF0aC5taW4oSCxjKGFyZ3VtZW50c1sxXSkpKSxIPDAmJihIPXYrSCk7MDw9SDtILS0paWYoSCBpbiBwJiZwW0hdPT09dSlyZXR1cm4gSHx8MDtyZXR1cm4tMX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlAsIkFycmF5Iix7Y29weVdpdGhp''@;'; + put 'put ''bjpsKDExMCl9KSxsKDMxKSgiY29weVdpdGhpbiIpfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUCwiQXJyYXkiLHtmaWxsOmwoODUpfSksbCgzMSkoImZpbGwiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDI1KSg1KSxjPSJmaW5kIixvPSEwO2MgaW5bXSYmQXJy''@;'; + put 'put ''YXkoMSlbY10oZnVuY3Rpb24oKXtvPSExfSkscihyLlArci5GKm8sIkFycmF5Iix7ZmluZDpmdW5jdGlvbihmKXtyZXR1cm4gYSh0aGlzLGYsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX19KSxsKDMxKShjKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDI1KSg2''@;'; + put 'put ''KSxjPSJmaW5kSW5kZXgiLG89ITA7YyBpbltdJiZBcnJheSgxKVtjXShmdW5jdGlvbigpe289ITF9KSxyKHIuUCtyLkYqbywiQXJyYXkiLHtmaW5kSW5kZXg6ZnVuY3Rpb24oZil7cmV0dXJuIGEodGhpcyxmLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06ayl9fSksbCgzMSkoYyl9''@;'; + put 'put ''LGZ1bmN0aW9uKEEsZSxsKXtsKDM4KSgiQXJyYXkiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMiksYT1sKDcyKSxjPWwoOCkuZixvPWwoMzcpLmYsaD1sKDU2KSxmPWwoNTApLGc9ci5SZWdFeHAsdT1nLHA9Zy5wcm90b3R5cGUsdj0vYS9nLEg9L2EvZyxDPW5ldyBnKHYpIT09djtpZihs''@;'; + put 'put ''KDcpJiYoIUN8fGwoMykoZnVuY3Rpb24oKXtyZXR1cm4gSFtsKDUpKCJtYXRjaCIpXT0hMSxnKHYpIT12fHxnKEgpPT1IfHwiL2EvaSIhPWcodiwiaSIpfSkpKXtnPWZ1bmN0aW9uKE0seCl7dmFyIEU9dGhpcyBpbnN0YW5jZW9mIGcsdz1oKE0pLE49eD09PWs7cmV0dXJuIUUmJncmJk0uY29u''@;'; + put 'put ''c3RydWN0b3I9PT1nJiZOP006YShDP25ldyB1KHcmJiFOP00uc291cmNlOk0seCk6dSgodz1NIGluc3RhbmNlb2YgZyk/TS5zb3VyY2U6TSx3JiZOP2YuY2FsbChNKTp4KSxFP3RoaXM6cCxnKX07Zm9yKHZhciBWPWZ1bmN0aW9uKGIpe2IgaW4gZ3x8YyhnLGIse2NvbmZpZ3VyYWJsZTohMCxn''@;'; + put 'put ''ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdVtiXX0sc2V0OmZ1bmN0aW9uKE0pe3VbYl09TX19KX0sUz1vKHUpLF89MDtfPFMubGVuZ3RoOylWKFNbXysrXSk7KHAuY29uc3RydWN0b3I9ZykucHJvdG90eXBlPXAsbCgxMikociwiUmVnRXhwIixnKX1sKDM4KSgiUmVnRXhwIil9LGZ1bmN0aW9uKEEs''@;'; + put 'put ''ZSxsKXtsKDExMyk7dmFyIHI9bCgxKSxhPWwoNTApLGM9bCg3KSxvPSJ0b1N0cmluZyIsaD0vLi9bb10sZj1mdW5jdGlvbihnKXtsKDEyKShSZWdFeHAucHJvdG90eXBlLG8sZywhMCl9O2woMykoZnVuY3Rpb24oKXtyZXR1cm4iL2EvYiIhPWguY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9''@;'; + put 'put ''KX0pP2YoZnVuY3Rpb24oKXt2YXIgdT1yKHRoaXMpO3JldHVybiIvIi5jb25jYXQodS5zb3VyY2UsIi8iLCJmbGFncyJpbiB1P3UuZmxhZ3M6IWMmJnUgaW5zdGFuY2VvZiBSZWdFeHA/YS5jYWxsKHUpOmspfSk6aC5uYW1lIT1vJiZmKGZ1bmN0aW9uKCl7cmV0dXJuIGguY2FsbCh0aGlzKX0p''@;'; + put 'put ''fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxKSxhPWwoNiksYz1sKDg4KSxvPWwoNTgpO2woNTkpKCJtYXRjaCIsMSxmdW5jdGlvbihoLGYsZyx1KXtyZXR1cm5bZnVuY3Rpb24odil7dmFyIEg9aCh0aGlzKSxDPXY9PWs/azp2W2ZdO3JldHVybiBDIT09az9DLmNhbGwodixIKTpuZXcgUmVn''@;'; + put 'put ''RXhwKHYpW2ZdKFN0cmluZyhIKSl9LGZ1bmN0aW9uKHApe3ZhciB2PXUoZyxwLHRoaXMpO2lmKHYuZG9uZSlyZXR1cm4gdi52YWx1ZTt2YXIgSD1yKHApLEM9U3RyaW5nKHRoaXMpO2lmKCFILmdsb2JhbClyZXR1cm4gbyhILEMpO2Zvcih2YXIgVixTPUgudW5pY29kZSxfPVtdLGI9SC5sYXN0''@;'; + put 'put ''SW5kZXg9MDtudWxsIT09KFY9byhILEMpKTspe3ZhciBNPVN0cmluZyhWWzBdKTsiIj09PShfW2JdPU0pJiYoSC5sYXN0SW5kZXg9YyhDLGEoSC5sYXN0SW5kZXgpLFMpKSxiKyt9cmV0dXJuIDA9PT1iP251bGw6X31dfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEpLGE9bCg5KSxjPWwo''@;'; + put 'put ''Niksbz1sKDIwKSxoPWwoODgpLGY9bCg1OCksZz1NYXRoLm1heCx1PU1hdGgubWluLHA9TWF0aC5mbG9vcix2PS9cJChbJCZgJ118XGRcZD98PFtePl0qPikvZyxIPS9cJChbJCZgJ118XGRcZD8pL2c7bCg1OSkoInJlcGxhY2UiLDIsZnVuY3Rpb24oQyxWLFMsXyl7cmV0dXJuW2Z1bmN0aW9u''@;'; + put 'put ''KHgsRSl7dmFyIHc9Qyh0aGlzKSxOPXg9PWs/azp4W1ZdO3JldHVybiBOIT09az9OLmNhbGwoeCx3LEUpOlMuY2FsbChTdHJpbmcodykseCxFKX0sZnVuY3Rpb24oTSx4KXt2YXIgRT1fKFMsTSx0aGlzLHgpO2lmKEUuZG9uZSlyZXR1cm4gRS52YWx1ZTt2YXIgdz1yKE0pLE49U3RyaW5nKHRo''@;'; + put 'put ''aXMpLEk9ImZ1bmN0aW9uIj09dHlwZW9mIHg7SXx8KHg9U3RyaW5nKHgpKTt2YXIgVz13Lmdsb2JhbDtpZihXKXt2YXIgTz13LnVuaWNvZGU7dy5sYXN0SW5kZXg9MH1mb3IodmFyIEI9W107Oyl7dmFyIFI9Zih3LE4pO2lmKG51bGw9PT1SfHwoQi5wdXNoKFIpLCFXKSlicmVhazsiIj09PVN0''@;'; + put 'put ''cmluZyhSWzBdKSYmKHcubGFzdEluZGV4PWgoTixjKHcubGFzdEluZGV4KSxPKSl9Zm9yKHZhciBsMSxhMT0iIixoMT0wLHUxPTA7dTE8Qi5sZW5ndGg7dTErKyl7Uj1CW3UxXTtmb3IodmFyIHAxPVN0cmluZyhSWzBdKSx2MT1nKHUobyhSLmluZGV4KSxOLmxlbmd0aCksMCksRTE9W10saj0x''@;'; + put 'put ''O2o8Ui5sZW5ndGg7aisrKUUxLnB1c2goKGwxPVJbal0pPT09az9sMTpTdHJpbmcobDEpKTt2YXIgYzE9Ui5ncm91cHM7aWYoSSl7dmFyIFYxPVtwMV0uY29uY2F0KEUxLHYxLE4pO2MxIT09ayYmVjEucHVzaChjMSk7dmFyIF8xPVN0cmluZyh4LmFwcGx5KGssVjEpKX1lbHNlIF8xPWIocDEs''@;'; + put 'put ''Tix2MSxFMSxjMSx4KTtoMTw9djEmJihhMSs9Ti5zbGljZShoMSx2MSkrXzEsaDE9djErcDEubGVuZ3RoKX1yZXR1cm4gYTErTi5zbGljZShoMSl9XTtmdW5jdGlvbiBiKE0seCxFLHcsTixJKXt2YXIgVz1FK00ubGVuZ3RoLE89dy5sZW5ndGgsQj1IO3JldHVybiBOIT09ayYmKE49YShOKSxC''@;'; + put 'put ''PXYpLFMuY2FsbChJLEIsZnVuY3Rpb24oUixsMSl7dmFyIGExO3N3aXRjaChsMS5jaGFyQXQoMCkpe2Nhc2UiJCI6cmV0dXJuIiQiO2Nhc2UiJiI6cmV0dXJuIE07Y2FzZSJgIjpyZXR1cm4geC5zbGljZSgwLEUpO2Nhc2UiJyI6cmV0dXJuIHguc2xpY2UoVyk7Y2FzZSI8IjphMT1OW2wxLnNs''@;'; + put 'put ''aWNlKDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBoMT0rbDE7aWYoMD09PWgxKXJldHVybiBSO2lmKE88aDEpe3ZhciB1MT1wKGgxLzEwKTtyZXR1cm4gMD09PXUxP1I6dTE8PU8/d1t1MS0xXT09PWs/bDEuY2hhckF0KDEpOndbdTEtMV0rbDEuY2hhckF0KDEpOlJ9YTE9d1toMS0xXX1yZXR1''@;'; + put 'put ''cm4gYTE9PT1rPyIiOmExfSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEpLGE9bCg5OSksYz1sKDU4KTtsKDU5KSgic2VhcmNoIiwxLGZ1bmN0aW9uKG8saCxmLGcpe3JldHVybltmdW5jdGlvbihwKXt2YXIgdj1vKHRoaXMpLEg9cD09az9rOnBbaF07cmV0dXJuIEghPT1rP0guY2Fs''@;'; + put 'put ''bChwLHYpOm5ldyBSZWdFeHAocClbaF0oU3RyaW5nKHYpKX0sZnVuY3Rpb24odSl7dmFyIHA9ZyhmLHUsdGhpcyk7aWYocC5kb25lKXJldHVybiBwLnZhbHVlO3ZhciB2PXIodSksSD1TdHJpbmcodGhpcyksQz12Lmxhc3RJbmRleDthKEMsMCl8fCh2Lmxhc3RJbmRleD0wKTt2YXIgVj1jKHYs''@;'; + put 'put ''SCk7cmV0dXJuIGEodi5sYXN0SW5kZXgsQyl8fCh2Lmxhc3RJbmRleD1DKSxudWxsPT09Vj8tMTpWLmluZGV4fV19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNTYpLGE9bCgxKSxjPWwoNTEpLG89bCg4OCksaD1sKDYpLGY9bCg1OCksZz1sKDg3KSx1PWwoMykscD1NYXRoLm1pbix2PVtd''@;'; + put 'put ''LnB1c2gsSD0ic3BsaXQiLEM9Imxlbmd0aCIsVj0ibGFzdEluZGV4IixTPTQyOTQ5NjcyOTUsXz0hdShmdW5jdGlvbigpe1JlZ0V4cChTLCJ5Iil9KTtsKDU5KSgic3BsaXQiLDIsZnVuY3Rpb24oYixNLHgsRSl7dmFyIHc7cmV0dXJuIHc9ImMiPT0iYWJiYyJbSF0oLyhiKSovKVsxXXx8NCE9''@;'; + put 'put ''InRlc3QiW0hdKC8oPzopLywtMSlbQ118fDIhPSJhYiJbSF0oLyg/OmFiKSovKVtDXXx8NCE9Ii4iW0hdKC8oLj8pKC4/KS8pW0NdfHwxPCIuIltIXSgvKCkoKS8pW0NdfHwiIltIXSgvLj8vKVtDXT9mdW5jdGlvbihOLEkpe3ZhciBXPVN0cmluZyh0aGlzKTtpZihOPT09ayYmMD09PUkpcmV0''@;'; + put 'put ''dXJuW107aWYoIXIoTikpcmV0dXJuIHguY2FsbChXLE4sSSk7Zm9yKHZhciBPLEIsUixsMT1bXSxhMT0wLGgxPUk9PT1rP1M6ST4+PjAsdTE9bmV3IFJlZ0V4cChOLnNvdXJjZSwoTi5pZ25vcmVDYXNlPyJpIjoiIikrKE4ubXVsdGlsaW5lPyJtIjoiIikrKE4udW5pY29kZT8idSI6IiIpKyhO''@;'; + put 'put ''LnN0aWNreT8ieSI6IiIpKyJnIik7KE89Zy5jYWxsKHUxLFcpKSYmIShhMTwoQj11MVtWXSkmJihsMS5wdXNoKFcuc2xpY2UoYTEsTy5pbmRleCkpLDE8T1tDXSYmTy5pbmRleDxXW0NdJiZ2LmFwcGx5KGwxLE8uc2xpY2UoMSkpLFI9T1swXVtDXSxhMT1CLGgxPD1sMVtDXSkpOyl1MVtWXT09''@;'; + put 'put ''PU8uaW5kZXgmJnUxW1ZdKys7cmV0dXJuIGExPT09V1tDXT8hUiYmdTEudGVzdCgiIil8fGwxLnB1c2goIiIpOmwxLnB1c2goVy5zbGljZShhMSkpLGgxPGwxW0NdP2wxLnNsaWNlKDAsaDEpOmwxfToiMCJbSF0oaywwKVtDXT9mdW5jdGlvbihOLEkpe3JldHVybiBOPT09ayYmMD09PUk/W106''@;'; + put 'put ''eC5jYWxsKHRoaXMsTixJKX06eCxbZnVuY3Rpb24oSSxXKXt2YXIgTz1iKHRoaXMpLEI9ST09az9rOklbTV07cmV0dXJuIEIhPT1rP0IuY2FsbChJLE8sVyk6dy5jYWxsKFN0cmluZyhPKSxJLFcpfSxmdW5jdGlvbihOLEkpe3ZhciBXPUUodyxOLHRoaXMsSSx3IT09eCk7aWYoVy5kb25lKXJl''@;'; + put 'put ''dHVybiBXLnZhbHVlO3ZhciBPPWEoTiksQj1TdHJpbmcodGhpcyksUj1jKE8sUmVnRXhwKSxsMT1PLnVuaWNvZGUsYTE9bmV3IFIoXz9POiJeKD86IitPLnNvdXJjZSsiKSIsKE8uaWdub3JlQ2FzZT8iaSI6IiIpKyhPLm11bHRpbGluZT8ibSI6IiIpKyhPLnVuaWNvZGU/InUiOiIiKSsoXz8i''@;'; + put 'put ''eSI6ImciKSksaDE9ST09PWs/UzpJPj4+MDtpZigwPT09aDEpcmV0dXJuW107aWYoMD09PUIubGVuZ3RoKXJldHVybiBudWxsPT09ZihhMSxCKT9bQl06W107Zm9yKHZhciB1MT0wLHAxPTAsdjE9W107cDE8Qi5sZW5ndGg7KXthMS5sYXN0SW5kZXg9Xz9wMTowO3ZhciBFMSxqPWYoYTEsXz9C''@;'; + put 'put ''OkIuc2xpY2UocDEpKTtpZihudWxsPT09anx8KEUxPXAoaChhMS5sYXN0SW5kZXgrKF8/MDpwMSkpLEIubGVuZ3RoKSk9PT11MSlwMT1vKEIscDEsbDEpO2Vsc2V7aWYodjEucHVzaChCLnNsaWNlKHUxLHAxKSksdjEubGVuZ3RoPT09aDEpcmV0dXJuIHYxO2Zvcih2YXIgYzE9MTtjMTw9ai5s''@;'; + put 'put ''ZW5ndGgtMTtjMSsrKWlmKHYxLnB1c2goaltjMV0pLHYxLmxlbmd0aD09PWgxKXJldHVybiB2MTtwMT11MT1FMX19cmV0dXJuIHYxLnB1c2goQi5zbGljZSh1MSkpLHYxfV19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByLGEsYyxvLGg9bCgyOSksZj1sKDIpLGc9bCgxOCksdT1sKDQ0KSxwPWwo''@;'; + put 'put ''MCksdj1sKDQpLEg9bCgxMCksQz1sKDM5KSxWPWwoNDApLFM9bCg1MSksXz1sKDg5KS5zZXQsYj1sKDkwKSgpLE09bCg5MSkseD1sKDExNCksRT1sKDYwKSx3PWwoMTE1KSxOPSJQcm9taXNlIixJPWYuVHlwZUVycm9yLFc9Zi5wcm9jZXNzLE89VyYmVy52ZXJzaW9ucyxCPU8mJk8udjh8fCIi''@;'; + put 'put ''LFI9ZltOXSxsMT0icHJvY2VzcyI9PXUoVyksYTE9ZnVuY3Rpb24oKXt9LGgxPWE9TS5mLHUxPSEhZnVuY3Rpb24oKXt0cnl7dmFyIFE9Ui5yZXNvbHZlKDEpLHMxPShRLmNvbnN0cnVjdG9yPXt9KVtsKDUpKCJzcGVjaWVzIildPWZ1bmN0aW9uKG0xKXttMShhMSxhMSl9O3JldHVybihsMXx8''@;'; + put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCkmJlEudGhlbihhMSlpbnN0YW5jZW9mIHMxJiYwIT09Qi5pbmRleE9mKCI2LjYiKSYmLTE9PT1FLmluZGV4T2YoIkNocm9tZS82NiIpfWNhdGNoKG0xKXt9fSgpLHAxPWZ1bmN0aW9uKFEpe3ZhciBzMTtyZXR1cm4hKCF2''@;'; + put 'put ''KFEpfHwiZnVuY3Rpb24iIT10eXBlb2YoczE9US50aGVuKSkmJnMxfSx2MT1mdW5jdGlvbihRLHMxKXtpZighUS5fbil7US5fbj0hMDt2YXIgbTE9US5fYztiKGZ1bmN0aW9uKCl7Zm9yKHZhciBiMT1RLl92LEIxPTE9PVEuX3MsJD0wLHo9ZnVuY3Rpb24oeSl7dmFyIEQsWixULFA9QjE/eS5v''@;'; + put 'put ''azp5LmZhaWwsZTE9eS5yZXNvbHZlLHIxPXkucmVqZWN0LFoxPXkuZG9tYWluO3RyeXtQPyhCMXx8KDI9PVEuX2gmJmMxKFEpLFEuX2g9MSksITA9PT1QP0Q9YjE6KFoxJiZaMS5lbnRlcigpLEQ9UChiMSksWjEmJihaMS5leGl0KCksVD0hMCkpLEQ9PT15LnByb21pc2U/cjEoSSgiUHJvbWlz''@;'; + put 'put ''ZS1jaGFpbiBjeWNsZSIpKTooWj1wMShEKSk/Wi5jYWxsKEQsZTEscjEpOmUxKEQpKTpyMShiMSl9Y2F0Y2goWSl7WjEmJiFUJiZaMS5leGl0KCkscjEoWSl9fTskPG0xLmxlbmd0aDspeihtMVskKytdKTtRLl9jPVtdLFEuX249ITEsczEmJiFRLl9oJiZFMShRKX0pfX0sRTE9ZnVuY3Rpb24o''@;'; + put 'put ''USl7Xy5jYWxsKGYsZnVuY3Rpb24oKXt2YXIgczEsbTEsYjEsQjE9US5fdiwkPWooUSk7aWYoJCYmKHMxPXgoZnVuY3Rpb24oKXtsMT9XLmVtaXQoInVuaGFuZGxlZFJlamVjdGlvbiIsQjEsUSk6KG0xPWYub251bmhhbmRsZWRyZWplY3Rpb24pP20xKHtwcm9taXNlOlEscmVhc29uOkIxfSk6''@;'; + put 'put ''KGIxPWYuY29uc29sZSkmJmIxLmVycm9yJiZiMS5lcnJvcigiVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uIixCMSl9KSxRLl9oPWwxfHxqKFEpPzI6MSksUS5fYT1rLCQmJnMxLmUpdGhyb3cgczEudn0pfSxqPWZ1bmN0aW9uKFEpe3JldHVybiAxIT09US5faCYmMD09PShRLl9hfHxRLl9j''@;'; + put 'put ''KS5sZW5ndGh9LGMxPWZ1bmN0aW9uKFEpe18uY2FsbChmLGZ1bmN0aW9uKCl7dmFyIHMxO2wxP1cuZW1pdCgicmVqZWN0aW9uSGFuZGxlZCIsUSk6KHMxPWYub25yZWplY3Rpb25oYW5kbGVkKSYmczEoe3Byb21pc2U6USxyZWFzb246US5fdn0pfSl9LFYxPWZ1bmN0aW9uKFEpe3ZhciBzMT10''@;'; + put 'put ''aGlzO3MxLl9kfHwoczEuX2Q9ITAsKHMxPXMxLl93fHxzMSkuX3Y9USxzMS5fcz0yLHMxLl9hfHwoczEuX2E9czEuX2Muc2xpY2UoKSksdjEoczEsITApKX0sXzE9ZnVuY3Rpb24oUSl7dmFyIHMxLG0xPXRoaXM7aWYoIW0xLl9kKXttMS5fZD0hMCxtMT1tMS5fd3x8bTE7dHJ5e2lmKG0xPT09''@;'; + put 'put ''USl0aHJvdyBJKCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZiIpOyhzMT1wMShRKSk/YihmdW5jdGlvbigpe3ZhciBiMT17X3c6bTEsX2Q6ITF9O3RyeXtzMS5jYWxsKFEsZyhfMSxiMSwxKSxnKFYxLGIxLDEpKX1jYXRjaChCMSl7VjEuY2FsbChiMSxCMSl9fSk6KG0xLl92PVEs''@;'; + put 'put ''bTEuX3M9MSx2MShtMSwhMSkpfWNhdGNoKGIxKXtWMS5jYWxsKHtfdzptMSxfZDohMX0sYjEpfX19O3UxfHwoUj1mdW5jdGlvbihzMSl7Qyh0aGlzLFIsTiwiX2giKSxIKHMxKSxyLmNhbGwodGhpcyk7dHJ5e3MxKGcoXzEsdGhpcywxKSxnKFYxLHRoaXMsMSkpfWNhdGNoKG0xKXtWMS5jYWxs''@;'; + put 'put ''KHRoaXMsbTEpfX0sKHI9ZnVuY3Rpb24oczEpe3RoaXMuX2M9W10sdGhpcy5fYT1rLHRoaXMuX3M9MCx0aGlzLl9kPSExLHRoaXMuX3Y9ayx0aGlzLl9oPTAsdGhpcy5fbj0hMX0pLnByb3RvdHlwZT1sKDQxKShSLnByb3RvdHlwZSx7dGhlbjpmdW5jdGlvbihzMSxtMSl7dmFyIGIxPWgxKFMo''@;'; + put 'put ''dGhpcyxSKSk7cmV0dXJuIGIxLm9rPSJmdW5jdGlvbiIhPXR5cGVvZiBzMXx8czEsYjEuZmFpbD0iZnVuY3Rpb24iPT10eXBlb2YgbTEmJm0xLGIxLmRvbWFpbj1sMT9XLmRvbWFpbjprLHRoaXMuX2MucHVzaChiMSksdGhpcy5fYSYmdGhpcy5fYS5wdXNoKGIxKSx0aGlzLl9zJiZ2MSh0aGlz''@;'; + put 'put ''LCExKSxiMS5wcm9taXNlfSxjYXRjaDpmdW5jdGlvbihRKXtyZXR1cm4gdGhpcy50aGVuKGssUSl9fSksYz1mdW5jdGlvbigpe3ZhciBRPW5ldyByO3RoaXMucHJvbWlzZT1RLHRoaXMucmVzb2x2ZT1nKF8xLFEsMSksdGhpcy5yZWplY3Q9ZyhWMSxRLDEpfSxNLmY9aDE9ZnVuY3Rpb24oUSl7''@;'; + put 'put ''cmV0dXJuIFE9PT1SfHxRPT09bz9uZXcgYyhRKTphKFEpfSkscChwLkcrcC5XK3AuRiohdTEse1Byb21pc2U6Un0pLGwoNDMpKFIsTiksbCgzOCkoTiksbz1sKDI2KVtOXSxwKHAuUytwLkYqIXUxLE4se3JlamVjdDpmdW5jdGlvbihzMSl7dmFyIG0xPWgxKHRoaXMpO3JldHVybigwLG0xLnJl''@;'; + put 'put ''amVjdCkoczEpLG0xLnByb21pc2V9fSkscChwLlMrcC5GKihofHwhdTEpLE4se3Jlc29sdmU6ZnVuY3Rpb24oczEpe3JldHVybiB3KGgmJnRoaXM9PT1vP1I6dGhpcyxzMSl9fSkscChwLlMrcC5GKiEodTEmJmwoNTcpKGZ1bmN0aW9uKFEpe1IuYWxsKFEpLmNhdGNoKGExKX0pKSxOLHthbGw6''@;'; + put 'put ''ZnVuY3Rpb24oczEpe3ZhciBtMT10aGlzLGIxPWgxKG0xKSxCMT1iMS5yZXNvbHZlLCQ9YjEucmVqZWN0LHo9eChmdW5jdGlvbigpe3ZhciB5PVtdLEQ9MCxaPTE7VihzMSwhMSxmdW5jdGlvbihUKXt2YXIgUD1EKyssZTE9ITE7eS5wdXNoKGspLForKyxtMS5yZXNvbHZlKFQpLnRoZW4oZnVu''@;'; + put 'put ''Y3Rpb24ocjEpe2UxfHwoZTE9ITAseVtQXT1yMSwtLVp8fEIxKHkpKX0sJCl9KSwtLVp8fEIxKHkpfSk7cmV0dXJuIHouZSYmJCh6LnYpLGIxLnByb21pc2V9LHJhY2U6ZnVuY3Rpb24oczEpe3ZhciBtMT10aGlzLGIxPWgxKG0xKSxCMT1iMS5yZWplY3QsJD14KGZ1bmN0aW9uKCl7VihzMSwh''@;'; + put 'put ''MSxmdW5jdGlvbih6KXttMS5yZXNvbHZlKHopLnRoZW4oYjEucmVzb2x2ZSxCMSl9KX0pO3JldHVybiAkLmUmJkIxKCQudiksYjEucHJvbWlzZX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTIwKSxhPWwoNDIpLGM9IldlYWtTZXQiO2woNjEpKGMsZnVuY3Rpb24obyl7cmV0dXJuIGZ1''@;'; + put 'put ''bmN0aW9uKCl7cmV0dXJuIG8odGhpcywwPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOmspfX0se2FkZDpmdW5jdGlvbihoKXtyZXR1cm4gci5kZWYoYSh0aGlzLGMpLGgsITApfX0sciwhMSwhMCl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMCksYz1sKDEpLG89KGwo''@;'; + put 'put ''MikuUmVmbGVjdHx8e30pLmFwcGx5LGg9RnVuY3Rpb24uYXBwbHk7cihyLlMrci5GKiFsKDMpKGZ1bmN0aW9uKCl7byhmdW5jdGlvbigpe30pfSksIlJlZmxlY3QiLHthcHBseTpmdW5jdGlvbihnLHUscCl7dmFyIHY9YShnKSxIPWMocCk7cmV0dXJuIG8/byh2LHUsSCk6aC5jYWxsKHYsdSxI''@;'; + put 'put ''KX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDM2KSxjPWwoMTApLG89bCgxKSxoPWwoNCksZj1sKDMpLGc9bCgxMDApLHU9KGwoMikuUmVmbGVjdHx8e30pLmNvbnN0cnVjdCxwPWYoZnVuY3Rpb24oKXtmdW5jdGlvbiBIKCl7fXJldHVybiEodShmdW5jdGlvbigpe30sW10s''@;'; + put 'put ''SClpbnN0YW5jZW9mIEgpfSksdj0hZihmdW5jdGlvbigpe3UoZnVuY3Rpb24oKXt9KX0pO3Ioci5TK3IuRioocHx8diksIlJlZmxlY3QiLHtjb25zdHJ1Y3Q6ZnVuY3Rpb24oQyxWKXtjKEMpLG8oVik7dmFyIFM9YXJndW1lbnRzLmxlbmd0aDwzP0M6Yyhhcmd1bWVudHNbMl0pO2lmKHYmJiFw''@;'; + put 'put ''KXJldHVybiB1KEMsVixTKTtpZihDPT1TKXtzd2l0Y2goVi5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IEM7Y2FzZSAxOnJldHVybiBuZXcgQyhWWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyBDKFZbMF0sVlsxXSk7Y2FzZSAzOnJldHVybiBuZXcgQyhWWzBdLFZbMV0sVlsyXSk7Y2FzZSA0OnJl''@;'; + put 'put ''dHVybiBuZXcgQyhWWzBdLFZbMV0sVlsyXSxWWzNdKX12YXIgXz1bbnVsbF07cmV0dXJuIF8ucHVzaC5hcHBseShfLFYpLG5ldyhnLmFwcGx5KEMsXykpfXZhciBiPVMucHJvdG90eXBlLE09YShoKGIpP2I6T2JqZWN0LnByb3RvdHlwZSkseD1GdW5jdGlvbi5hcHBseS5jYWxsKEMsTSxWKTty''@;'; + put 'put ''ZXR1cm4gaCh4KT94Ok19fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDgpLGE9bCgwKSxjPWwoMSksbz1sKDIyKTthKGEuUythLkYqbCgzKShmdW5jdGlvbigpe1JlZmxlY3QuZGVmaW5lUHJvcGVydHkoci5mKHt9LDEse3ZhbHVlOjF9KSwxLHt2YWx1ZToyfSl9KSwiUmVmbGVjdCIse2Rl''@;'; + put 'put ''ZmluZVByb3BlcnR5OmZ1bmN0aW9uKGYsZyx1KXtjKGYpLGc9byhnLCEwKSxjKHUpO3RyeXtyZXR1cm4gci5mKGYsZyx1KSwhMH1jYXRjaChwKXtyZXR1cm4hMX19fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxNikuZixjPWwoMSk7cihyLlMsIlJlZmxlY3QiLHtkZWxldGVQ''@;'; + put 'put ''cm9wZXJ0eTpmdW5jdGlvbihoLGYpe3ZhciBnPWEoYyhoKSxmKTtyZXR1cm4hKGcmJiFnLmNvbmZpZ3VyYWJsZSkmJmRlbGV0ZSBoW2ZdfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMSksYz1mdW5jdGlvbihvKXt0aGlzLl90PWEobyksdGhpcy5faT0wO3ZhciBoLGY9dGhp''@;'; + put 'put ''cy5faz1bXTtmb3IoaCBpbiBvKWYucHVzaChoKX07bCg4MCkoYywiT2JqZWN0IixmdW5jdGlvbigpe3ZhciBvLGg9dGhpcy5faztkb3tpZihoLmxlbmd0aDw9dGhpcy5faSlyZXR1cm57dmFsdWU6ayxkb25lOiEwfX13aGlsZSghKChvPWhbdGhpcy5faSsrXSlpbiB0aGlzLl90KSk7cmV0dXJu''@;'; + put 'put ''e3ZhbHVlOm8sZG9uZTohMX19KSxyKHIuUywiUmVmbGVjdCIse2VudW1lcmF0ZTpmdW5jdGlvbihoKXtyZXR1cm4gbmV3IGMoaCl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE2KSxhPWwoMTcpLGM9bCgxNCksbz1sKDApLGg9bCg0KSxmPWwoMSk7byhvLlMsIlJlZmxlY3QiLHtnZXQ6''@;'; + put 'put ''ZnVuY3Rpb24gZyh1LHApe3ZhciB2LEgsQz1hcmd1bWVudHMubGVuZ3RoPDM/dTphcmd1bWVudHNbMl07cmV0dXJuIGYodSk9PT1DP3VbcF06KHY9ci5mKHUscCkpP2ModiwidmFsdWUiKT92LnZhbHVlOnYuZ2V0IT09az92LmdldC5jYWxsKEMpOms6aChIPWEodSkpP2coSCxwLEMpOnZvaWQg''@;'; + put 'put ''MH19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTYpLGE9bCgwKSxjPWwoMSk7YShhLlMsIlJlZmxlY3QiLHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnVuY3Rpb24oaCxmKXtyZXR1cm4gci5mKGMoaCksZil9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxNyksYz1s''@;'; + put 'put ''KDEpO3Ioci5TLCJSZWZsZWN0Iix7Z2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24oaCl7cmV0dXJuIGEoYyhoKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJSZWZsZWN0Iix7aGFzOmZ1bmN0aW9uKGMsbyl7cmV0dXJuIG8gaW4gY319KX0sZnVuY3Rpb24oQSxlLGwpe3Zh''@;'; + put 'put ''ciByPWwoMCksYT1sKDEpLGM9T2JqZWN0LmlzRXh0ZW5zaWJsZTtyKHIuUywiUmVmbGVjdCIse2lzRXh0ZW5zaWJsZTpmdW5jdGlvbihoKXtyZXR1cm4gYShoKSwhY3x8YyhoKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIlJlZmxlY3QiLHtvd25LZXlzOmwoMTIxKX0p''@;'; + put 'put ''fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMSksYz1PYmplY3QucHJldmVudEV4dGVuc2lvbnM7cihyLlMsIlJlZmxlY3QiLHtwcmV2ZW50RXh0ZW5zaW9uczpmdW5jdGlvbihoKXthKGgpO3RyeXtyZXR1cm4gYyYmYyhoKSwhMH1jYXRjaChmKXtyZXR1cm4hMX19fSl9LGZ1bmN0''@;'; + put 'put ''aW9uKEEsZSxsKXt2YXIgcj1sKDgpLGE9bCgxNiksYz1sKDE3KSxvPWwoMTQpLGg9bCgwKSxmPWwoMzIpLGc9bCgxKSx1PWwoNCk7aChoLlMsIlJlZmxlY3QiLHtzZXQ6ZnVuY3Rpb24gcCh2LEgsQyl7dmFyIFYsUyxfPWFyZ3VtZW50cy5sZW5ndGg8ND92OmFyZ3VtZW50c1szXSxiPWEuZihn''@;'; + put 'put ''KHYpLEgpO2lmKCFiKXtpZih1KFM9Yyh2KSkpcmV0dXJuIHAoUyxILEMsXyk7Yj1mKDApfWlmKG8oYiwidmFsdWUiKSl7aWYoITE9PT1iLndyaXRhYmxlfHwhdShfKSlyZXR1cm4hMTtpZihWPWEuZihfLEgpKXtpZihWLmdldHx8Vi5zZXR8fCExPT09Vi53cml0YWJsZSlyZXR1cm4hMTtWLnZh''@;'; + put 'put ''bHVlPUMsci5mKF8sSCxWKX1lbHNlIHIuZihfLEgsZigwLEMpKTtyZXR1cm4hMH1yZXR1cm4gYi5zZXQhPT1rJiYoYi5zZXQuY2FsbChfLEMpLCEwKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDcxKTthJiZyKHIuUywiUmVmbGVjdCIse3NldFByb3RvdHlwZU9mOmZ1bmN0''@;'; + put 'put ''aW9uKG8saCl7YS5jaGVjayhvLGgpO3RyeXtyZXR1cm4gYS5zZXQobyxoKSwhMH1jYXRjaChmKXtyZXR1cm4hMX19fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJEYXRlIix7bm93OmZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9fSl9LGZ1bmN0aW9u''@;'; + put 'put ''KEEsZSxsKXt2YXIgcj1sKDApLGE9bCg5KSxjPWwoMjIpO3Ioci5QK3IuRipsKDMpKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1uZXcgRGF0ZShOYU4pLnRvSlNPTigpfHwxIT09RGF0ZS5wcm90b3R5cGUudG9KU09OLmNhbGwoe3RvSVNPU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDF9fSl9''@;'; + put 'put ''KSwiRGF0ZSIse3RvSlNPTjpmdW5jdGlvbihoKXt2YXIgZj1hKHRoaXMpLGc9YyhmKTtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGd8fGlzRmluaXRlKGcpP2YudG9JU09TdHJpbmcoKTpudWxsfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMjUyKTtyKHIuUCtyLkYqKERhdGUu''@;'; + put 'put ''cHJvdG90eXBlLnRvSVNPU3RyaW5nIT09YSksIkRhdGUiLHt0b0lTT1N0cmluZzphfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDMpLGE9RGF0ZS5wcm90b3R5cGUuZ2V0VGltZSxjPURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nLG89ZnVuY3Rpb24oaCl7cmV0dXJuIDk8aD9oOiIwIito''@;'; + put 'put ''fTtBLmV4cG9ydHM9cihmdW5jdGlvbigpe3JldHVybiIwMzg1LTA3LTI1VDA3OjA2OjM5Ljk5OVoiIT1jLmNhbGwobmV3IERhdGUoLTUwMDAwMDAwMDAwMDAxKSl9KXx8IXIoZnVuY3Rpb24oKXtjLmNhbGwobmV3IERhdGUoTmFOKSl9KT9mdW5jdGlvbigpe2lmKCFpc0Zpbml0ZShhLmNhbGwo''@;'; + put 'put ''dGhpcykpKXRocm93IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO3ZhciBmPXRoaXMsZz1mLmdldFVUQ0Z1bGxZZWFyKCksdT1mLmdldFVUQ01pbGxpc2Vjb25kcygpLHA9ZzwwPyItIjo5OTk5PGc/IisiOiIiO3JldHVybiBwKygiMDAwMDAiK01hdGguYWJzKGcpKS5zbGljZShw''@;'; + put 'put ''Py02Oi00KSsiLSIrbyhmLmdldFVUQ01vbnRoKCkrMSkrIi0iK28oZi5nZXRVVENEYXRlKCkpKyJUIitvKGYuZ2V0VVRDSG91cnMoKSkrIjoiK28oZi5nZXRVVENNaW51dGVzKCkpKyI6IitvKGYuZ2V0VVRDU2Vjb25kcygpKSsiLiIrKDk5PHU/dToiMCIrbyh1KSkrIloifTpjfSxmdW5jdGlv''@;'; + put 'put ''bihBLGUsbCl7dmFyIHI9RGF0ZS5wcm90b3R5cGUsYT0iSW52YWxpZCBEYXRlIixjPSJ0b1N0cmluZyIsbz1yW2NdLGg9ci5nZXRUaW1lO25ldyBEYXRlKE5hTikrIiIhPWEmJmwoMTIpKHIsYyxmdW5jdGlvbigpe3ZhciBnPWguY2FsbCh0aGlzKTtyZXR1cm4gZz09Zz9vLmNhbGwodGhpcyk6''@;'; + put 'put ''YX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg1KSgidG9QcmltaXRpdmUiKSxhPURhdGUucHJvdG90eXBlO3IgaW4gYXx8bCgxMSkoYSxyLGwoMjU1KSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEpLGE9bCgyMik7QS5leHBvcnRzPWZ1bmN0aW9uKGMpe2lmKCJzdHJpbmciIT09YyYm''@;'; + put 'put ''Im51bWJlciIhPT1jJiYiZGVmYXVsdCIhPT1jKXRocm93IFR5cGVFcnJvcigiSW5jb3JyZWN0IGhpbnQiKTtyZXR1cm4gYShyKHRoaXMpLCJudW1iZXIiIT1jKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg2MiksYz1sKDkyKSxvPWwoMSksaD1sKDM1KSxmPWwoNiksZz1sKDQp''@;'; + put 'put ''LHU9bCgyKS5BcnJheUJ1ZmZlcixwPWwoNTEpLHY9Yy5BcnJheUJ1ZmZlcixIPWMuRGF0YVZpZXcsQz1hLkFCViYmdS5pc1ZpZXcsVj12LnByb3RvdHlwZS5zbGljZSxTPWEuVklFVyxfPSJBcnJheUJ1ZmZlciI7cihyLkcrci5XK3IuRioodSE9PXYpLHtBcnJheUJ1ZmZlcjp2fSkscihyLlMr''@;'; + put 'put ''ci5GKiFhLkNPTlNUUixfLHtpc1ZpZXc6ZnVuY3Rpb24oTSl7cmV0dXJuIEMmJkMoTSl8fGcoTSkmJlMgaW4gTX19KSxyKHIuUCtyLlUrci5GKmwoMykoZnVuY3Rpb24oKXtyZXR1cm4hbmV3IHYoMikuc2xpY2UoMSxrKS5ieXRlTGVuZ3RofSksXyx7c2xpY2U6ZnVuY3Rpb24oTSx4KXtpZihW''@;'; + put 'put ''IT09ayYmeD09PWspcmV0dXJuIFYuY2FsbChvKHRoaXMpLE0pO2Zvcih2YXIgRT1vKHRoaXMpLmJ5dGVMZW5ndGgsdz1oKE0sRSksTj1oKHg9PT1rP0U6eCxFKSxJPW5ldyhwKHRoaXMsdikpKGYoTi13KSksVz1uZXcgSCh0aGlzKSxPPW5ldyBIKEkpLEI9MDt3PE47KU8uc2V0VWludDgoQisr''@;'; + put 'put ''LFcuZ2V0VWludDgodysrKSk7cmV0dXJuIEl9fSksbCgzOCkoXyl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5HK3IuVytyLkYqIWwoNjIpLkFCVix7RGF0YVZpZXc6bCg5MikuRGF0YVZpZXd9KX0sZnVuY3Rpb24oQSxlLGwpe2woMjcpKCJJbnQ4IiwxLGZ1bmN0aW9uKHIpe3Jl''@;'; + put 'put ''dHVybiBmdW5jdGlvbihjLG8saCl7cmV0dXJuIHIodGhpcyxjLG8saCl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDI3KSgiVWludDgiLDEsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gcih0aGlzLGMsbyxoKX19KX0sZnVuY3Rpb24oQSxlLGwpe2woMjcpKCJVaW50''@;'; + put 'put ''OCIsMSxmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oYyxvLGgpe3JldHVybiByKHRoaXMsYyxvLGgpfX0sITApfSxmdW5jdGlvbihBLGUsbCl7bCgyNykoIkludDE2IiwyLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihjLG8saCl7cmV0dXJuIHIodGhpcyxjLG8saCl9fSl9LGZ1bmN0''@;'; + put 'put ''aW9uKEEsZSxsKXtsKDI3KSgiVWludDE2IiwyLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihjLG8saCl7cmV0dXJuIHIodGhpcyxjLG8saCl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDI3KSgiSW50MzIiLDQsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gcih0''@;'; + put 'put ''aGlzLGMsbyxoKX19KX0sZnVuY3Rpb24oQSxlLGwpe2woMjcpKCJVaW50MzIiLDQsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gcih0aGlzLGMsbyxoKX19KX0sZnVuY3Rpb24oQSxlLGwpe2woMjcpKCJGbG9hdDMyIiw0LGZ1bmN0aW9uKHIpe3JldHVybiBmdW5j''@;'; + put 'put ''dGlvbihjLG8saCl7cmV0dXJuIHIodGhpcyxjLG8saCl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDI3KSgiRmxvYXQ2NCIsOCxmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oYyxvLGgpe3JldHVybiByKHRoaXMsYyxvLGgpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoNTIp''@;'; + put 'put ''KCEwKTtyKHIuUCwiQXJyYXkiLHtpbmNsdWRlczpmdW5jdGlvbihvKXtyZXR1cm4gYSh0aGlzLG8sMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX19KSxsKDMxKSgiaW5jbHVkZXMiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEyMyksYz1sKDkpLG89bCg2KSxo''@;'; + put 'put ''PWwoMTApLGY9bCg4NCk7cihyLlAsIkFycmF5Iix7ZmxhdE1hcDpmdW5jdGlvbih1KXt2YXIgcCx2LEg9Yyh0aGlzKTtyZXR1cm4gaCh1KSxwPW8oSC5sZW5ndGgpLHY9ZihILDApLGEodixILEgscCwwLDEsdSxhcmd1bWVudHNbMV0pLHZ9fSksbCgzMSkoImZsYXRNYXAiKX0sZnVuY3Rpb24o''@;'; + put 'put ''QSxlLGwpe3ZhciByPWwoMCksYT1sKDEyMyksYz1sKDkpLG89bCg2KSxoPWwoMjApLGY9bCg4NCk7cihyLlAsIkFycmF5Iix7ZmxhdHRlbjpmdW5jdGlvbigpe3ZhciB1PWFyZ3VtZW50c1swXSxwPWModGhpcyksdj1vKHAubGVuZ3RoKSxIPWYocCwwKTtyZXR1cm4gYShILHAscCx2LDAsdT09''@;'; + put 'put ''PWs/MTpoKHUpKSxIfX0pLGwoMzEpKCJmbGF0dGVuIil9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg1NSkoITApO3Ioci5QLCJTdHJpbmciLHthdDpmdW5jdGlvbihvKXtyZXR1cm4gYSh0aGlzLG8pfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTI0KSxjPWwo''@;'; + put 'put ''NjApLG89L1ZlcnNpb25cLzEwXC5cZCsoXC5cZCspPyggTW9iaWxlXC9cdyspPyBTYWZhcmlcLy8udGVzdChjKTtyKHIuUCtyLkYqbywiU3RyaW5nIix7cGFkU3RhcnQ6ZnVuY3Rpb24oZil7cmV0dXJuIGEodGhpcyxmLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06aywhMCl9fSl9''@;'; + put 'put ''LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMjQpLGM9bCg2MCksbz0vVmVyc2lvblwvMTBcLlxkKyhcLlxkKyk/KCBNb2JpbGVcL1x3Kyk/IFNhZmFyaVwvLy50ZXN0KGMpO3Ioci5QK3IuRipvLCJTdHJpbmciLHtwYWRFbmQ6ZnVuY3Rpb24oZil7cmV0dXJuIGEodGhpcyxmLDE8''@;'; + put 'put ''YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06aywhMSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDQ1KSgidHJpbUxlZnQiLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsMSl9fSwidHJpbVN0YXJ0Iil9LGZ1bmN0aW9uKEEsZSxsKXtsKDQ1KSgidHJpbVJp''@;'; + put 'put ''Z2h0IixmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLDIpfX0sInRyaW1FbmQiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDIzKSxjPWwoNiksbz1sKDU2KSxoPWwoNTApLGY9UmVnRXhwLnByb3RvdHlwZSxnPWZ1bmN0aW9uKHUscCl7dGhpcy5f''@;'; + put 'put ''cj11LHRoaXMuX3M9cH07bCg4MCkoZywiUmVnRXhwIFN0cmluZyIsZnVuY3Rpb24oKXt2YXIgcD10aGlzLl9yLmV4ZWModGhpcy5fcyk7cmV0dXJue3ZhbHVlOnAsZG9uZTpudWxsPT09cH19KSxyKHIuUCwiU3RyaW5nIix7bWF0Y2hBbGw6ZnVuY3Rpb24ocCl7aWYoYSh0aGlzKSwhbyhwKSl0''@;'; + put 'put ''aHJvdyBUeXBlRXJyb3IocCsiIGlzIG5vdCBhIHJlZ2V4cCEiKTt2YXIgdj1TdHJpbmcodGhpcyksSD0iZmxhZ3MiaW4gZj9TdHJpbmcocC5mbGFncyk6aC5jYWxsKHApLEM9bmV3IFJlZ0V4cChwLnNvdXJjZSx+SC5pbmRleE9mKCJnIik/SDoiZyIrSCk7cmV0dXJuIEMubGFzdEluZGV4PWMo''@;'; + put 'put ''cC5sYXN0SW5kZXgpLG5ldyBnKEMsdil9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDY3KSgiYXN5bmNJdGVyYXRvciIpfSxmdW5jdGlvbihBLGUsbCl7bCg2NykoIm9ic2VydmFibGUiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEyMSksYz1sKDE1KSxvPWwoMTYpLGg9bCg4Mik7''@;'; + put 'put ''cihyLlMsIk9iamVjdCIse2dldE93blByb3BlcnR5RGVzY3JpcHRvcnM6ZnVuY3Rpb24oZyl7Zm9yKHZhciB1LHAsdj1jKGcpLEg9by5mLEM9YSh2KSxWPXt9LFM9MDtTPEMubGVuZ3RoOykocD1IKHYsdT1DW1MrK10pKSE9PWsmJmgoVix1LHApO3JldHVybiBWfX0pfSxmdW5jdGlvbihBLGUs''@;'; + put 'put ''bCl7dmFyIHI9bCgwKSxhPWwoMTI1KSghMSk7cihyLlMsIk9iamVjdCIse3ZhbHVlczpmdW5jdGlvbihvKXtyZXR1cm4gYShvKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEyNSkoITApO3Ioci5TLCJPYmplY3QiLHtlbnRyaWVzOmZ1bmN0aW9uKG8pe3JldHVybiBhKG8p''@;'; + put 'put ''fX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoOSksYz1sKDEwKSxvPWwoOCk7bCg3KSYmcihyLlArbCg2MyksIk9iamVjdCIse19fZGVmaW5lR2V0dGVyX186ZnVuY3Rpb24oZixnKXtvLmYoYSh0aGlzKSxmLHtnZXQ6YyhnKSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZToh''@;'; + put 'put ''MH0pfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoOSksYz1sKDEwKSxvPWwoOCk7bCg3KSYmcihyLlArbCg2MyksIk9iamVjdCIse19fZGVmaW5lU2V0dGVyX186ZnVuY3Rpb24oZixnKXtvLmYoYSh0aGlzKSxmLHtzZXQ6YyhnKSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJs''@;'; + put 'put ''ZTohMH0pfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoOSksYz1sKDIyKSxvPWwoMTcpLGg9bCgxNikuZjtsKDcpJiZyKHIuUCtsKDYzKSwiT2JqZWN0Iix7X19sb29rdXBHZXR0ZXJfXzpmdW5jdGlvbihnKXt2YXIgdSxwPWEodGhpcyksdj1jKGcsITApO2Rve2lmKHU9aChw''@;'; + put 'put ''LHYpKXJldHVybiB1LmdldH13aGlsZShwPW8ocCkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoOSksYz1sKDIyKSxvPWwoMTcpLGg9bCgxNikuZjtsKDcpJiZyKHIuUCtsKDYzKSwiT2JqZWN0Iix7X19sb29rdXBTZXR0ZXJfXzpmdW5jdGlvbihnKXt2YXIgdSxwPWEodGhp''@;'; + put 'put ''cyksdj1jKGcsITApO2Rve2lmKHU9aChwLHYpKXJldHVybiB1LnNldH13aGlsZShwPW8ocCkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUCtyLlIsIk1hcCIse3RvSlNPTjpsKDEyNikoIk1hcCIpfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5QK3IuUiwi''@;'; + put 'put ''U2V0Iix7dG9KU09OOmwoMTI2KSgiU2V0Iil9KX0sZnVuY3Rpb24oQSxlLGwpe2woNjQpKCJNYXAiKX0sZnVuY3Rpb24oQSxlLGwpe2woNjQpKCJTZXQiKX0sZnVuY3Rpb24oQSxlLGwpe2woNjQpKCJXZWFrTWFwIil9LGZ1bmN0aW9uKEEsZSxsKXtsKDY0KSgiV2Vha1NldCIpfSxmdW5jdGlv''@;'; + put 'put ''bihBLGUsbCl7bCg2NSkoIk1hcCIpfSxmdW5jdGlvbihBLGUsbCl7bCg2NSkoIlNldCIpfSxmdW5jdGlvbihBLGUsbCl7bCg2NSkoIldlYWtNYXAiKX0sZnVuY3Rpb24oQSxlLGwpe2woNjUpKCJXZWFrU2V0Iil9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5HLHtnbG9iYWw6bCgy''@;'; + put 'put ''KX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiU3lzdGVtIix7Z2xvYmFsOmwoMil9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDE5KTtyKHIuUywiRXJyb3IiLHtpc0Vycm9yOmZ1bmN0aW9uKG8pe3JldHVybiJFcnJvciI9PT1hKG8pfX0pfSxmdW5jdGlv''@;'; + put 'put ''bihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiTWF0aCIse2NsYW1wOmZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gTWF0aC5taW4oaCxNYXRoLm1heChvLGMpKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtERUdfUEVSX1JBRDpNYXRoLlBJLzE4MH0pfSxmdW5j''@;'; + put 'put ''dGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPTE4MC9NYXRoLlBJO3Ioci5TLCJNYXRoIix7ZGVncmVlczpmdW5jdGlvbihvKXtyZXR1cm4gbyphfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTI4KSxjPWwoMTA3KTtyKHIuUywiTWF0aCIse2ZzY2FsZTpmdW5jdGlvbihoLGYs''@;'; + put 'put ''Zyx1LHApe3JldHVybiBjKGEoaCxmLGcsdSxwKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7aWFkZGg6ZnVuY3Rpb24oYyxvLGgsZil7dmFyIGc9Yz4+PjAsdT1oPj4+MDtyZXR1cm4obz4+PjApKyhmPj4+MCkrKChnJnV8KGd8dSkmfihnK3U+Pj4wKSk+''@;'; + put 'put ''Pj4zMSl8MH19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtpc3ViaDpmdW5jdGlvbihjLG8saCxmKXt2YXIgZz1jPj4+MCx1PWg+Pj4wO3JldHVybihvPj4+MCktKGY+Pj4wKS0oKH5nJnV8fihnXnUpJmctdT4+PjApPj4+MzEpfDB9fSl9LGZ1bmN0aW9uKEEs''@;'; + put 'put ''ZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7aW11bGg6ZnVuY3Rpb24oYyxvKXt2YXIgaD0rYyxmPStvLGc9NjU1MzUmaCx1PTY1NTM1JmYscD1oPj4xNix2PWY+PjE2LEg9KHAqdT4+PjApKyhnKnU+Pj4xNik7cmV0dXJuIHAqdisoSD4+MTYpKygoZyp2Pj4+MCkrKDY1NTM1JkgpPj4x''@;'; + put 'put ''Nil9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7UkFEX1BFUl9ERUc6MTgwL01hdGguUEl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1NYXRoLlBJLzE4MDtyKHIuUywiTWF0aCIse3JhZGlhbnM6ZnVuY3Rpb24obyl7cmV0dXJuIG8qYX19KX0s''@;'; + put 'put ''ZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtzY2FsZTpsKDEyOCl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHt1bXVsaDpmdW5jdGlvbihjLG8pe3ZhciBoPStjLGY9K28sZz02NTUzNSZoLHU9NjU1MzUmZixwPWg+Pj4xNix2PWY+''@;'; + put 'put ''Pj4xNixIPShwKnU+Pj4wKSsoZyp1Pj4+MTYpO3JldHVybiBwKnYrKEg+Pj4xNikrKChnKnY+Pj4wKSsoNjU1MzUmSCk+Pj4xNil9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7c2lnbmJpdDpmdW5jdGlvbihjKXtyZXR1cm4oYz0rYykhPWM/YzowPT1jPzEv''@;'; + put 'put ''Yz09MS8wOjA8Y319KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDI2KSxjPWwoMiksbz1sKDUxKSxoPWwoMTE1KTtyKHIuUCtyLlIsIlByb21pc2UiLHtmaW5hbGx5OmZ1bmN0aW9uKGYpe3ZhciBnPW8odGhpcyxhLlByb21pc2V8fGMuUHJvbWlzZSksdT0iZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgZjtyZXR1cm4gdGhpcy50aGVuKHU/ZnVuY3Rpb24ocCl7cmV0dXJuIGgoZyxmKCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcH0pfTpmLHU/ZnVuY3Rpb24ocCl7cmV0dXJuIGgoZyxmKCkpLnRoZW4oZnVuY3Rpb24oKXt0aHJvdyBwfSl9OmYpfX0pfSxmdW5jdGlvbihBLGUsbCl7''@;'; + put 'put ''dmFyIHI9bCgwKSxhPWwoOTEpLGM9bCgxMTQpO3Ioci5TLCJQcm9taXNlIix7dHJ5OmZ1bmN0aW9uKG8pe3ZhciBoPWEuZih0aGlzKSxmPWMobyk7cmV0dXJuKGYuZT9oLnJlamVjdDpoLnJlc29sdmUpKGYudiksaC5wcm9taXNlfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1s''@;'; + put 'put ''KDEpLGM9ci5rZXksbz1yLnNldDtyLmV4cCh7ZGVmaW5lTWV0YWRhdGE6ZnVuY3Rpb24oZixnLHUscCl7byhmLGcsYSh1KSxjKHApKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjgpLGE9bCgxKSxjPXIua2V5LG89ci5tYXAsaD1yLnN0b3JlO3IuZXhwKHtkZWxldGVNZXRhZGF0YTpm''@;'; + put 'put ''dW5jdGlvbihnLHUpe3ZhciBwPWFyZ3VtZW50cy5sZW5ndGg8Mz9rOmMoYXJndW1lbnRzWzJdKSx2PW8oYSh1KSxwLCExKTtpZih2PT09a3x8IXYuZGVsZXRlKGcpKXJldHVybiExO2lmKHYuc2l6ZSlyZXR1cm4hMDt2YXIgSD1oLmdldCh1KTtyZXR1cm4gSC5kZWxldGUocCksISFILnNpemV8''@;'; + put 'put ''fGguZGVsZXRlKHUpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1sKDEpLGM9bCgxNyksbz1yLmhhcyxoPXIuZ2V0LGY9ci5rZXksZz1mdW5jdGlvbih1LHAsdil7aWYobyh1LHAsdikpcmV0dXJuIGgodSxwLHYpO3ZhciBIPWMocCk7cmV0dXJuIG51bGwhPT1IP2codSxILHYp''@;'; + put 'put ''Omt9O3IuZXhwKHtnZXRNZXRhZGF0YTpmdW5jdGlvbihwLHYpe3JldHVybiBnKHAsYSh2KSxhcmd1bWVudHMubGVuZ3RoPDM/azpmKGFyZ3VtZW50c1syXSkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxMTgpLGE9bCgxMjcpLGM9bCgyOCksbz1sKDEpLGg9bCgxNyksZj1jLmtleXMs''@;'; + put 'put ''Zz1jLmtleSx1PWZ1bmN0aW9uKHAsdil7dmFyIEg9ZihwLHYpLEM9aChwKTtpZihudWxsPT09QylyZXR1cm4gSDt2YXIgVj11KEMsdik7cmV0dXJuIFYubGVuZ3RoP0gubGVuZ3RoP2EobmV3IHIoSC5jb25jYXQoVikpKTpWOkh9O2MuZXhwKHtnZXRNZXRhZGF0YUtleXM6ZnVuY3Rpb24odil7''@;'; + put 'put ''cmV0dXJuIHUobyh2KSxhcmd1bWVudHMubGVuZ3RoPDI/azpnKGFyZ3VtZW50c1sxXSkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1sKDEpLGM9ci5nZXQsbz1yLmtleTtyLmV4cCh7Z2V0T3duTWV0YWRhdGE6ZnVuY3Rpb24oZixnKXtyZXR1cm4gYyhmLGEoZyksYXJndW1l''@;'; + put 'put ''bnRzLmxlbmd0aDwzP2s6byhhcmd1bWVudHNbMl0pKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjgpLGE9bCgxKSxjPXIua2V5cyxvPXIua2V5O3IuZXhwKHtnZXRPd25NZXRhZGF0YUtleXM6ZnVuY3Rpb24oZil7cmV0dXJuIGMoYShmKSxhcmd1bWVudHMubGVuZ3RoPDI/azpvKGFy''@;'; + put 'put ''Z3VtZW50c1sxXSkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1sKDEpLGM9bCgxNyksbz1yLmhhcyxoPXIua2V5LGY9ZnVuY3Rpb24oZyx1LHApe2lmKG8oZyx1LHApKXJldHVybiEwO3ZhciB2PWModSk7cmV0dXJuIG51bGwhPT12JiZmKGcsdixwKX07ci5leHAoe2hhc01l''@;'; + put 'put ''dGFkYXRhOmZ1bmN0aW9uKHUscCl7cmV0dXJuIGYodSxhKHApLGFyZ3VtZW50cy5sZW5ndGg8Mz9rOmgoYXJndW1lbnRzWzJdKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDI4KSxhPWwoMSksYz1yLmhhcyxvPXIua2V5O3IuZXhwKHtoYXNPd25NZXRhZGF0YTpmdW5jdGlvbihmLGcp''@;'; + put 'put ''e3JldHVybiBjKGYsYShnKSxhcmd1bWVudHMubGVuZ3RoPDM/azpvKGFyZ3VtZW50c1syXSkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1sKDEpLGM9bCgxMCksbz1yLmtleSxoPXIuc2V0O3IuZXhwKHttZXRhZGF0YTpmdW5jdGlvbihnLHUpe3JldHVybiBmdW5jdGlvbih2''@;'; + put 'put ''LEgpe2goZyx1LChIIT09az9hOmMpKHYpLG8oSCkpfX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDkwKSgpLGM9bCgyKS5wcm9jZXNzLG89InByb2Nlc3MiPT1sKDE5KShjKTtyKHIuRyx7YXNhcDpmdW5jdGlvbihmKXt2YXIgZz1vJiZjLmRvbWFpbjthKGc/Zy5iaW5kKGYp''@;'; + put 'put ''OmYpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMiksYz1sKDI2KSxvPWwoOTApKCksaD1sKDUpKCJvYnNlcnZhYmxlIiksZj1sKDEwKSxnPWwoMSksdT1sKDM5KSxwPWwoNDEpLHY9bCgxMSksSD1sKDQwKSxDPUguUkVUVVJOLFY9ZnVuY3Rpb24odyl7cmV0dXJuIG51bGw9''@;'; + put 'put ''PXc/azpmKHcpfSxTPWZ1bmN0aW9uKHcpe3ZhciBOPXcuX2M7TiYmKHcuX2M9ayxOKCkpfSxfPWZ1bmN0aW9uKHcpe3JldHVybiB3Ll9vPT09a30sYj1mdW5jdGlvbih3KXtfKHcpfHwody5fbz1rLFModykpfSxNPWZ1bmN0aW9uKHcsTil7Zyh3KSx0aGlzLl9jPWssdGhpcy5fbz13LHc9bmV3''@;'; + put 'put ''IHgodGhpcyk7dHJ5e3ZhciBJPU4odyksVz1JO251bGwhPUkmJigiZnVuY3Rpb24iPT10eXBlb2YgSS51bnN1YnNjcmliZT9JPWZ1bmN0aW9uKCl7Vy51bnN1YnNjcmliZSgpfTpmKEkpLHRoaXMuX2M9SSl9Y2F0Y2goTyl7cmV0dXJuIHZvaWQgdy5lcnJvcihPKX1fKHRoaXMpJiZTKHRoaXMp''@;'; + put 'put ''fTtNLnByb3RvdHlwZT1wKHt9LHt1bnN1YnNjcmliZTpmdW5jdGlvbigpe2IodGhpcyl9fSk7dmFyIHg9ZnVuY3Rpb24odyl7dGhpcy5fcz13fTt4LnByb3RvdHlwZT1wKHt9LHtuZXh0OmZ1bmN0aW9uKE4pe3ZhciBJPXRoaXMuX3M7aWYoIV8oSSkpe3ZhciBXPUkuX287dHJ5e3ZhciBPPVYo''@;'; + put 'put ''Vy5uZXh0KTtpZihPKXJldHVybiBPLmNhbGwoVyxOKX1jYXRjaChCKXt0cnl7YihJKX1maW5hbGx5e3Rocm93IEJ9fX19LGVycm9yOmZ1bmN0aW9uKE4pe3ZhciBJPXRoaXMuX3M7aWYoXyhJKSl0aHJvdyBOO3ZhciBXPUkuX287SS5fbz1rO3RyeXt2YXIgTz1WKFcuZXJyb3IpO2lmKCFPKXRo''@;'; + put 'put ''cm93IE47Tj1PLmNhbGwoVyxOKX1jYXRjaChCKXt0cnl7UyhJKX1maW5hbGx5e3Rocm93IEJ9fXJldHVybiBTKEkpLE59LGNvbXBsZXRlOmZ1bmN0aW9uKE4pe3ZhciBJPXRoaXMuX3M7aWYoIV8oSSkpe3ZhciBXPUkuX287SS5fbz1rO3RyeXt2YXIgTz1WKFcuY29tcGxldGUpO049Tz9PLmNh''@;'; + put 'put ''bGwoVyxOKTprfWNhdGNoKEIpe3RyeXtTKEkpfWZpbmFsbHl7dGhyb3cgQn19cmV0dXJuIFMoSSksTn19fSk7dmFyIEU9ZnVuY3Rpb24oTil7dSh0aGlzLEUsIk9ic2VydmFibGUiLCJfZiIpLl9mPWYoTil9O3AoRS5wcm90b3R5cGUse3N1YnNjcmliZTpmdW5jdGlvbihOKXtyZXR1cm4gbmV3''@;'; + put 'put ''IE0oTix0aGlzLl9mKX0sZm9yRWFjaDpmdW5jdGlvbihOKXt2YXIgST10aGlzO3JldHVybiBuZXcoYy5Qcm9taXNlfHxhLlByb21pc2UpKGZ1bmN0aW9uKFcsTyl7ZihOKTt2YXIgQj1JLnN1YnNjcmliZSh7bmV4dDpmdW5jdGlvbihSKXt0cnl7cmV0dXJuIE4oUil9Y2F0Y2gobDEpe08obDEp''@;'; + put 'put ''LEIudW5zdWJzY3JpYmUoKX19LGVycm9yOk8sY29tcGxldGU6V30pfSl9fSkscChFLHtmcm9tOmZ1bmN0aW9uKE4pe3ZhciBJPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6RSxXPVYoZyhOKVtoXSk7aWYoVyl7dmFyIE89ZyhXLmNhbGwoTikpO3JldHVybiBPLmNvbnN0cnVjdG9yPT09''@;'; + put 'put ''ST9POm5ldyBJKGZ1bmN0aW9uKEIpe3JldHVybiBPLnN1YnNjcmliZShCKX0pfXJldHVybiBuZXcgSShmdW5jdGlvbihCKXt2YXIgUj0hMTtyZXR1cm4gbyhmdW5jdGlvbigpe2lmKCFSKXt0cnl7aWYoSChOLCExLGZ1bmN0aW9uKGwxKXtpZihCLm5leHQobDEpLFIpcmV0dXJuIEN9KT09PUMp''@;'; + put 'put ''cmV0dXJufWNhdGNoKGwxKXtpZihSKXRocm93IGwxO3JldHVybiB2b2lkIEIuZXJyb3IobDEpfUIuY29tcGxldGUoKX19KSxmdW5jdGlvbigpe1I9ITB9fSl9LG9mOmZ1bmN0aW9uKCl7Zm9yKHZhciBOPTAsST1hcmd1bWVudHMubGVuZ3RoLFc9bmV3IEFycmF5KEkpO048STspV1tOXT1hcmd1''@;'; + put 'put ''bWVudHNbTisrXTtyZXR1cm4gbmV3KCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6RSkoZnVuY3Rpb24oTyl7dmFyIEI9ITE7cmV0dXJuIG8oZnVuY3Rpb24oKXtpZighQil7Zm9yKHZhciBSPTA7UjxXLmxlbmd0aDsrK1IpaWYoTy5uZXh0KFdbUl0pLEIpcmV0dXJuO08uY29tcGxldGUo''@;'; + put 'put ''KX19KSxmdW5jdGlvbigpe0I9ITB9fSl9fSksdihFLnByb3RvdHlwZSxoLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxyKHIuRyx7T2JzZXJ2YWJsZTpFfSksbCgzOCkoIk9ic2VydmFibGUiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDg5KTtyKHIuRytyLkIse3NldEltbWVk''@;'; + put 'put ''aWF0ZTphLnNldCxjbGVhckltbWVkaWF0ZTphLmNsZWFyfSl9LGZ1bmN0aW9uKEEsZSxsKXtmb3IodmFyIHI9bCg4NiksYT1sKDM0KSxjPWwoMTIpLG89bCgyKSxoPWwoMTEpLGY9bCg0NiksZz1sKDUpLHU9ZygiaXRlcmF0b3IiKSxwPWcoInRvU3RyaW5nVGFnIiksdj1mLkFycmF5LEg9e0NT''@;'; + put 'put ''U1J1bGVMaXN0OiEwLENTU1N0eWxlRGVjbGFyYXRpb246ITEsQ1NTVmFsdWVMaXN0OiExLENsaWVudFJlY3RMaXN0OiExLERPTVJlY3RMaXN0OiExLERPTVN0cmluZ0xpc3Q6ITEsRE9NVG9rZW5MaXN0OiEwLERhdGFUcmFuc2Zlckl0ZW1MaXN0OiExLEZpbGVMaXN0OiExLEhUTUxBbGxDb2xs''@;'; + put 'put ''ZWN0aW9uOiExLEhUTUxDb2xsZWN0aW9uOiExLEhUTUxGb3JtRWxlbWVudDohMSxIVE1MU2VsZWN0RWxlbWVudDohMSxNZWRpYUxpc3Q6ITAsTWltZVR5cGVBcnJheTohMSxOYW1lZE5vZGVNYXA6ITEsTm9kZUxpc3Q6ITAsUGFpbnRSZXF1ZXN0TGlzdDohMSxQbHVnaW46ITEsUGx1Z2luQXJy''@;'; + put 'put ''YXk6ITEsU1ZHTGVuZ3RoTGlzdDohMSxTVkdOdW1iZXJMaXN0OiExLFNWR1BhdGhTZWdMaXN0OiExLFNWR1BvaW50TGlzdDohMSxTVkdTdHJpbmdMaXN0OiExLFNWR1RyYW5zZm9ybUxpc3Q6ITEsU291cmNlQnVmZmVyTGlzdDohMSxTdHlsZVNoZWV0TGlzdDohMCxUZXh0VHJhY2tDdWVMaXN0''@;'; + put 'put ''OiExLFRleHRUcmFja0xpc3Q6ITEsVG91Y2hMaXN0OiExfSxDPWEoSCksVj0wO1Y8Qy5sZW5ndGg7VisrKXt2YXIgUyxfPUNbVl0sYj1IW19dLE09b1tfXSx4PU0mJk0ucHJvdG90eXBlO2lmKHgmJih4W3VdfHxoKHgsdSx2KSx4W3BdfHxoKHgscCxfKSxmW19dPXYsYikpZm9yKFMgaW4gcil4''@;'; + put 'put ''W1NdfHxjKHgsUyxyW1NdLCEwKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIpLGE9bCgwKSxjPWwoNjApLG89W10uc2xpY2UsaD0vTVNJRSAuXC4vLnRlc3QoYyksZj1mdW5jdGlvbihnKXtyZXR1cm4gZnVuY3Rpb24odSxwKXt2YXIgdj0yPGFyZ3VtZW50cy5sZW5ndGgsSD0hIXYmJm8u''@;'; + put 'put ''Y2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGcodj9mdW5jdGlvbigpeygiZnVuY3Rpb24iPT10eXBlb2YgdT91OkZ1bmN0aW9uKHUpKS5hcHBseSh0aGlzLEgpfTp1LHApfX07YShhLkcrYS5CK2EuRipoLHtzZXRUaW1lb3V0OmYoci5zZXRUaW1lb3V0KSxzZXRJbnRlcnZhbDpmKHIuc2V0SW50''@;'; + put 'put ''ZXJ2YWwpfSl9XSksInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPVg6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoZnVuY3Rpb24oKXtyZXR1cm4gWH0pOkYxLmNvcmU9WH0pKDEsMSksd2luZG93Lk11''@;'; + put 'put ''dGF0aW9uT2JzZXJ2ZXJ8fCh3aW5kb3cuTXV0YXRpb25PYnNlcnZlcj1mdW5jdGlvbihYKXtmdW5jdGlvbiBGMShDKXt0aGlzLmk9W10sdGhpcy5tPUN9ZnVuY3Rpb24gQShDKXt2YXIgUyxWPXt0eXBlOm51bGwsdGFyZ2V0Om51bGwsYWRkZWROb2RlczpbXSxyZW1vdmVkTm9kZXM6W10scHJl''@;'; + put 'put ''dmlvdXNTaWJsaW5nOm51bGwsbmV4dFNpYmxpbmc6bnVsbCxhdHRyaWJ1dGVOYW1lOm51bGwsYXR0cmlidXRlTmFtZXNwYWNlOm51bGwsb2xkVmFsdWU6bnVsbH07Zm9yKFMgaW4gQylWW1NdIT09WCYmQ1tTXSE9PVgmJihWW1NdPUNbU10pO3JldHVybiBWfWZ1bmN0aW9uIGUoQyxWKXt2YXIg''@;'; + put 'put ''Uz1vKEMsVik7cmV0dXJuIGZ1bmN0aW9uKF8pe3ZhciBiPV8ubGVuZ3RoO2lmKFYuYSYmMz09PUMubm9kZVR5cGUmJkMubm9kZVZhbHVlIT09Uy5hJiZfLnB1c2gobmV3IEEoe3R5cGU6ImNoYXJhY3RlckRhdGEiLHRhcmdldDpDLG9sZFZhbHVlOlMuYX0pKSxWLmImJlMuYiYmYShfLEMsUy5i''@;'; + put 'put ''LFYuZiksVi5jfHxWLmcpdmFyIE09ZnVuY3Rpb24gYyhDLFYsUyxfKXtmdW5jdGlvbiBiKEUsdyxOLEksVyl7dmFyIEIsUixsMSxPPUUubGVuZ3RoLTE7Zm9yKFc9LX4oKE8tVykvMik7bDE9RS5wb3AoKTspQj1OW2wxLmpdLFI9SVtsMS5sXSxfLmMmJlcmJk1hdGguYWJzKGwxLmotbDEubCk+''@;'; + put 'put ''PU8mJihDLnB1c2goQSh7dHlwZToiY2hpbGRMaXN0Iix0YXJnZXQ6dyxhZGRlZE5vZGVzOltCXSxyZW1vdmVkTm9kZXM6W0JdLG5leHRTaWJsaW5nOkIubmV4dFNpYmxpbmcscHJldmlvdXNTaWJsaW5nOkIucHJldmlvdXNTaWJsaW5nfSkpLFctLSksXy5iJiZSLmImJmEoQyxCLFIuYixfLmYp''@;'; + put 'put ''LF8uYSYmMz09PUIubm9kZVR5cGUmJkIubm9kZVZhbHVlIT09Ui5hJiZDLnB1c2goQSh7dHlwZToiY2hhcmFjdGVyRGF0YSIsdGFyZ2V0OkIsb2xkVmFsdWU6Ui5hfSkpLF8uZyYmTShCLFIpfWZ1bmN0aW9uIE0oRSx3KXtmb3IodmFyIEIsUixsMSxhMSxoMSxOPUUuY2hpbGROb2RlcyxJPXcu''@;'; + put 'put ''YyxXPU4ubGVuZ3RoLE89ST9JLmxlbmd0aDowLHUxPTAscDE9MCx2MT0wO3AxPFd8fHYxPE87KShhMT1OW3AxXSk9PT0oaDE9KGwxPUlbdjFdKSYmbDEubm9kZSk/KF8uYiYmbDEuYiYmYShDLGExLGwxLmIsXy5mKSxfLmEmJmwxLmEhPT1YJiZhMS5ub2RlVmFsdWUhPT1sMS5hJiZDLnB1c2go''@;'; + put 'put ''QSh7dHlwZToiY2hhcmFjdGVyRGF0YSIsdGFyZ2V0OmExLG9sZFZhbHVlOmwxLmF9KSksUiYmYihSLEUsTixJLHUxKSxfLmcmJihhMS5jaGlsZE5vZGVzLmxlbmd0aHx8bDEuYyYmbDEuYy5sZW5ndGgpJiZNKGExLGwxKSxwMSsrLHYxKyspOih4PSEwLEJ8fChCPXt9LFI9W10pLGExJiYoQlts''@;'; + put 'put ''MT1oKGExKV18fChCW2wxXT0hMCwtMT09PShsMT11KEksYTEsdjEsIm5vZGUiKSk/Xy5jJiYoQy5wdXNoKEEoe3R5cGU6ImNoaWxkTGlzdCIsdGFyZ2V0OkUsYWRkZWROb2RlczpbYTFdLG5leHRTaWJsaW5nOmExLm5leHRTaWJsaW5nLHByZXZpb3VzU2libGluZzphMS5wcmV2aW91c1NpYmxp''@;'; + put 'put ''bmd9KSksdTErKyk6Ui5wdXNoKHtqOnAxLGw6bDF9KSkscDErKyksaDEmJmgxIT09TltwMV0mJihCW2wxPWgoaDEpXXx8KEJbbDFdPSEwLC0xPT09KGwxPXUoTixoMSxwMSkpP18uYyYmKEMucHVzaChBKHt0eXBlOiJjaGlsZExpc3QiLHRhcmdldDp3Lm5vZGUscmVtb3ZlZE5vZGVzOltoMV0s''@;'; + put 'put ''bmV4dFNpYmxpbmc6SVt2MSsxXSxwcmV2aW91c1NpYmxpbmc6SVt2MS0xXX0pKSx1MS0tKTpSLnB1c2goe2o6bDEsbDp2MX0pKSx2MSsrKSk7UiYmYihSLEUsTixJLHUxKX12YXIgeDtyZXR1cm4gTShWLFMpLHh9KF8sQyxTLFYpOyhNfHxfLmxlbmd0aCE9PWIpJiYoUz1vKEMsVikpfX1mdW5j''@;'; + put 'put ''dGlvbiBhKEMsVixTLF8pe2Zvcih2YXIgeCxFLGI9e30sTT1WLmF0dHJpYnV0ZXMsdz1NLmxlbmd0aDt3LS07KUU9KHg9TVt3XSkubmFtZSxfJiZfW0VdPT09WHx8KHYoVix4KSE9PVNbRV0mJkMucHVzaChBKHt0eXBlOiJhdHRyaWJ1dGVzIix0YXJnZXQ6VixhdHRyaWJ1dGVOYW1lOkUsb2xk''@;'; + put 'put ''VmFsdWU6U1tFXSxhdHRyaWJ1dGVOYW1lc3BhY2U6eC5uYW1lc3BhY2VVUkl9KSksYltFXT0hMCk7Zm9yKEUgaW4gUyliW0VdfHxDLnB1c2goQSh7dGFyZ2V0OlYsdHlwZToiYXR0cmlidXRlcyIsYXR0cmlidXRlTmFtZTpFLG9sZFZhbHVlOlNbRV19KSl9ZnVuY3Rpb24gbyhDLFYpe3ZhciBT''@;'; + put 'put ''PSEwO3JldHVybiBmdW5jdGlvbiBfKGIpe3ZhciBNPXtub2RlOmJ9O3JldHVybiFWLmF8fDMhPT1iLm5vZGVUeXBlJiY4IT09Yi5ub2RlVHlwZT8oVi5iJiZTJiYxPT09Yi5ub2RlVHlwZSYmKE0uYj1nKGIuYXR0cmlidXRlcyxmdW5jdGlvbih4LEUpe3JldHVybighVi5mfHxWLmZbRS5uYW1l''@;'; + put 'put ''XSkmJih4W0UubmFtZV09dihiLEUpKSx4fSx7fSkpLFMmJihWLmN8fFYuYXx8Vi5iJiZWLmcpJiYoTS5jPWZ1bmN0aW9uIGYoQyxWKXtmb3IodmFyIFM9W10sXz0wO188Qy5sZW5ndGg7XysrKVNbX109VihDW19dLF8sQyk7cmV0dXJuIFN9KGIuY2hpbGROb2RlcyxfKSksUz1WLmcpOk0uYT1i''@;'; + put 'put ''Lm5vZGVWYWx1ZSxNfShDKX1mdW5jdGlvbiBoKEMpe3RyeXtyZXR1cm4gQy5pZHx8KEMubW9faWQ9Qy5tb19pZHx8SCsrKX1jYXRjaChWKXt0cnl7cmV0dXJuIEMubm9kZVZhbHVlfWNhdGNoKFMpe3JldHVybiBIKyt9fX1mdW5jdGlvbiBnKEMsVixTKXtmb3IodmFyIF89MDtfPEMubGVuZ3Ro''@;'; + put 'put ''O18rKylTPVYoUyxDW19dLF8sQyk7cmV0dXJuIFN9ZnVuY3Rpb24gdShDLFYsUyxfKXtmb3IoO1M8Qy5sZW5ndGg7UysrKWlmKChfP0NbU11bX106Q1tTXSk9PT1WKXJldHVybiBTO3JldHVybi0xfUYxLl9wZXJpb2Q9MzAsRjEucHJvdG90eXBlPXtvYnNlcnZlOmZ1bmN0aW9uKEMsVil7Zm9y''@;'; + put 'put ''KHZhciBTPXtiOiEhKFYuYXR0cmlidXRlc3x8Vi5hdHRyaWJ1dGVGaWx0ZXJ8fFYuYXR0cmlidXRlT2xkVmFsdWUpLGM6ISFWLmNoaWxkTGlzdCxnOiEhVi5zdWJ0cmVlLGE6ISghVi5jaGFyYWN0ZXJEYXRhJiYhVi5jaGFyYWN0ZXJEYXRhT2xkVmFsdWUpfSxfPXRoaXMuaSxiPTA7YjxfLmxl''@;'; + put 'put ''bmd0aDtiKyspX1tiXS5zPT09QyYmXy5zcGxpY2UoYiwxKTtWLmF0dHJpYnV0ZUZpbHRlciYmKFMuZj1nKFYuYXR0cmlidXRlRmlsdGVyLGZ1bmN0aW9uKE0seCl7cmV0dXJuIE1beF09ITAsTX0se30pKSxfLnB1c2goe3M6QyxvOmUoQyxTKX0pLHRoaXMuaHx8ZnVuY3Rpb24gayhDKXshZnVu''@;'; + put 'put ''Y3Rpb24gVigpe3ZhciBTPUMudGFrZVJlY29yZHMoKTtTLmxlbmd0aCYmQy5tKFMsQyksQy5oPXNldFRpbWVvdXQoVixGMS5fcGVyaW9kKX0oKX0odGhpcyl9LHRha2VSZWNvcmRzOmZ1bmN0aW9uKCl7Zm9yKHZhciBDPVtdLFY9dGhpcy5pLFM9MDtTPFYubGVuZ3RoO1MrKylWW1NdLm8oQyk7''@;'; + put 'put ''cmV0dXJuIEN9LGRpc2Nvbm5lY3Q6ZnVuY3Rpb24oKXt0aGlzLmk9W10sY2xlYXJUaW1lb3V0KHRoaXMuaCksdGhpcy5oPW51bGx9fTt2YXIgcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7cC5zdHlsZS50b3A9MDt2YXIgdj0ocD0ibnVsbCIhPXAuYXR0cmlidXRlcy5zdHlsZS52YWx1''@;'; + put 'put ''ZSk/ZnVuY3Rpb24gbChDLFYpe3JldHVybiBWLnZhbHVlfTpmdW5jdGlvbiByKEMsVil7cmV0dXJuInN0eWxlIiE9PVYubmFtZT9WLnZhbHVlOkMuc3R5bGUuY3NzVGV4dH0sSD0xO3JldHVybiBGMX0odm9pZCAwKSksZnVuY3Rpb24oKXt2YXIgayxBLFg9e30sRjE9e307KGZ1bmN0aW9uKGss''@;'; + put 'put ''QSl7ZnVuY3Rpb24gbCgpe3RoaXMuX2RlbGF5PTAsdGhpcy5fZW5kRGVsYXk9MCx0aGlzLl9maWxsPSJub25lIix0aGlzLl9pdGVyYXRpb25TdGFydD0wLHRoaXMuX2l0ZXJhdGlvbnM9MSx0aGlzLl9kdXJhdGlvbj0wLHRoaXMuX3BsYXliYWNrUmF0ZT0xLHRoaXMuX2RpcmVjdGlvbj0ibm9y''@;'; + put 'put ''bWFsIix0aGlzLl9lYXNpbmc9ImxpbmVhciIsdGhpcy5fZWFzaW5nRnVuY3Rpb249d31mdW5jdGlvbiByKCl7cmV0dXJuIGsuaXNEZXByZWNhdGVkKCJJbnZhbGlkIHRpbWluZyBpbnB1dHMiLCIyMDE2LTAzLTAyIiwiVHlwZUVycm9yIGV4Y2VwdGlvbnMgd2lsbCBiZSB0aHJvd24gaW5zdGVh''@;'; + put 'put ''ZC4iLCEwKX1mdW5jdGlvbiBhKGosYzEsVjEpe3ZhciBfMT1uZXcgbDtyZXR1cm4gYzEmJihfMS5maWxsPSJib3RoIixfMS5kdXJhdGlvbj0iYXV0byIpLCJudW1iZXIiIT10eXBlb2Yganx8aXNOYU4oaik/dm9pZCAwIT09aiYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaikuZm9yRWFj''@;'; + put 'put ''aChmdW5jdGlvbihRKXtpZigiYXV0byIhPWpbUV0pe2lmKCgibnVtYmVyIj09dHlwZW9mIF8xW1FdfHwiZHVyYXRpb24iPT1RKSYmKCJudW1iZXIiIT10eXBlb2YgaltRXXx8aXNOYU4oaltRXSkpfHwiZmlsbCI9PVEmJi0xPT14LmluZGV4T2YoaltRXSl8fCJkaXJlY3Rpb24iPT1RJiYtMT09''@;'; + put 'put ''RS5pbmRleE9mKGpbUV0pfHwicGxheWJhY2tSYXRlIj09USYmMSE9PWpbUV0mJmsuaXNEZXByZWNhdGVkKCJBbmltYXRpb25FZmZlY3RUaW1pbmcucGxheWJhY2tSYXRlIiwiMjAxNC0xMS0yOCIsIlVzZSBBbmltYXRpb24ucGxheWJhY2tSYXRlIGluc3RlYWQuIikpcmV0dXJuO18xW1FdPWpb''@;'; + put 'put ''UV19fSk6XzEuZHVyYXRpb249aixfMX1mdW5jdGlvbiBoKGosYzEsVjEsXzEpe3JldHVybiBqPDB8fGo+MXx8VjE8MHx8VjE+MT93OmZ1bmN0aW9uKFEpe2Z1bmN0aW9uIHMxKEQsWixUKXtyZXR1cm4gMypEKigxLVQpKigxLVQpKlQrMypaKigxLVQpKlQqVCtUKlQqVH1pZihRPD0wKXt2YXIg''@;'; + put 'put ''bTE9MDtyZXR1cm4gaj4wP20xPWMxL2o6IWMxJiZWMT4wJiYobTE9XzEvVjEpLG0xKlF9aWYoUT49MSl7dmFyIGIxPTA7cmV0dXJuIFYxPDE/YjE9KF8xLTEpLyhWMS0xKToxPT1WMSYmajwxJiYoYjE9KGMxLTEpLyhqLTEpKSwxK2IxKihRLTEpfWZvcih2YXIgQjE9MCwkPTE7QjE8JDspe3Zh''@;'; + put 'put ''ciB6PShCMSskKS8yLHk9czEoaixWMSx6KTtpZihNYXRoLmFicyhRLXkpPDFlLTUpcmV0dXJuIHMxKGMxLF8xLHopO3k8UT9CMT16OiQ9en1yZXR1cm4gczEoYzEsXzEseil9fWZ1bmN0aW9uIGYoaixjMSl7cmV0dXJuIGZ1bmN0aW9uKFYxKXtpZihWMT49MSlyZXR1cm4gMTt2YXIgXzE9MS9q''@;'; + put 'put ''O3JldHVybihWMSs9YzEqXzEpLVYxJV8xfX1mdW5jdGlvbiBnKGope0J8fChCPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlKSxCLmFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uPSIiLEIuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb249ajt2YXIgYzE9Qi5hbmltYXRpb25UaW1pbmdG''@;'; + put 'put ''dW5jdGlvbjtpZigiIj09YzEmJnIoKSl0aHJvdyBuZXcgVHlwZUVycm9yKGorIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgZWFzaW5nIik7cmV0dXJuIGMxfWZ1bmN0aW9uIHUoail7aWYoImxpbmVhciI9PWopcmV0dXJuIHc7dmFyIGMxPWwxLmV4ZWMoaik7aWYoYzEpcmV0dXJuIGguYXBw''@;'; + put 'put ''bHkodGhpcyxjMS5zbGljZSgxKS5tYXAoTnVtYmVyKSk7dmFyIFYxPWExLmV4ZWMoaik7aWYoVjEpcmV0dXJuIGYoTnVtYmVyKFYxWzFdKSxXKTt2YXIgXzE9aDEuZXhlYyhqKTtyZXR1cm4gXzE/ZihOdW1iZXIoXzFbMV0pLHtzdGFydDpOLG1pZGRsZTpJLGVuZDpXfVtfMVsyXV0pOk9bal18''@;'; + put 'put ''fHd9ZnVuY3Rpb24gSChqLGMxLFYxKXtpZihudWxsPT1jMSlyZXR1cm4gdTE7dmFyIF8xPVYxLmRlbGF5K2orVjEuZW5kRGVsYXk7cmV0dXJuIGMxPE1hdGgubWluKFYxLmRlbGF5LF8xKT9wMTpjMT49TWF0aC5taW4oVjEuZGVsYXkraixfMSk/djE6RTF9dmFyIHg9ImJhY2t3YXJkc3xmb3J3''@;'; + put 'put ''YXJkc3xib3RofG5vbmUiLnNwbGl0KCJ8IiksRT0icmV2ZXJzZXxhbHRlcm5hdGV8YWx0ZXJuYXRlLXJldmVyc2UiLnNwbGl0KCJ8Iiksdz1mdW5jdGlvbihqKXtyZXR1cm4gan07bC5wcm90b3R5cGU9e19zZXRNZW1iZXI6ZnVuY3Rpb24oaixjMSl7dGhpc1siXyIral09YzEsdGhpcy5fZWZm''@;'; + put 'put ''ZWN0JiYodGhpcy5fZWZmZWN0Ll90aW1pbmdJbnB1dFtqXT1jMSx0aGlzLl9lZmZlY3QuX3RpbWluZz1rLm5vcm1hbGl6ZVRpbWluZ0lucHV0KHRoaXMuX2VmZmVjdC5fdGltaW5nSW5wdXQpLHRoaXMuX2VmZmVjdC5hY3RpdmVEdXJhdGlvbj1rLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKHRo''@;'; + put 'put ''aXMuX2VmZmVjdC5fdGltaW5nKSx0aGlzLl9lZmZlY3QuX2FuaW1hdGlvbiYmdGhpcy5fZWZmZWN0Ll9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCkpfSxnZXQgcGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMuX3BsYXliYWNrUmF0ZX0sc2V0IGRlbGF5KGope3RoaXMu''@;'; + put 'put ''X3NldE1lbWJlcigiZGVsYXkiLGopfSxnZXQgZGVsYXkoKXtyZXR1cm4gdGhpcy5fZGVsYXl9LHNldCBlbmREZWxheShqKXt0aGlzLl9zZXRNZW1iZXIoImVuZERlbGF5IixqKX0sZ2V0IGVuZERlbGF5KCl7cmV0dXJuIHRoaXMuX2VuZERlbGF5fSxzZXQgZmlsbChqKXt0aGlzLl9zZXRNZW1i''@;'; + put 'put ''ZXIoImZpbGwiLGopfSxnZXQgZmlsbCgpe3JldHVybiB0aGlzLl9maWxsfSxzZXQgaXRlcmF0aW9uU3RhcnQoail7aWYoKGlzTmFOKGopfHxqPDApJiZyKCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiaXRlcmF0aW9uU3RhcnQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIsIHJlY2VpdmVk''@;'; + put 'put ''OiAiK2opO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9uU3RhcnQiLGopfSxnZXQgaXRlcmF0aW9uU3RhcnQoKXtyZXR1cm4gdGhpcy5faXRlcmF0aW9uU3RhcnR9LHNldCBkdXJhdGlvbihqKXtpZigiYXV0byIhPWomJihpc05hTihqKXx8ajwwKSYmcigpKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; + put 'put ''ImR1cmF0aW9uIG11c3QgYmUgbm9uLW5lZ2F0aXZlIG9yIGF1dG8sIHJlY2VpdmVkOiAiK2opO3RoaXMuX3NldE1lbWJlcigiZHVyYXRpb24iLGopfSxnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fZHVyYXRpb259LHNldCBkaXJlY3Rpb24oail7dGhpcy5fc2V0TWVtYmVyKCJkaXJlY3Rp''@;'; + put 'put ''b24iLGopfSxnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpcmVjdGlvbn0sc2V0IGVhc2luZyhqKXt0aGlzLl9lYXNpbmdGdW5jdGlvbj11KGcoaikpLHRoaXMuX3NldE1lbWJlcigiZWFzaW5nIixqKX0sZ2V0IGVhc2luZygpe3JldHVybiB0aGlzLl9lYXNpbmd9LHNldCBpdGVyYXRp''@;'; + put 'put ''b25zKGope2lmKChpc05hTihqKXx8ajwwKSYmcigpKXRocm93IG5ldyBUeXBlRXJyb3IoIml0ZXJhdGlvbnMgbXVzdCBiZSBub24tbmVnYXRpdmUsIHJlY2VpdmVkOiAiK2opO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9ucyIsail9LGdldCBpdGVyYXRpb25zKCl7cmV0dXJuIHRoaXMuX2l0''@;'; + put 'put ''ZXJhdGlvbnN9fTt2YXIgTj0xLEk9LjUsVz0wLE89e2Vhc2U6aCguMjUsLjEsLjI1LDEpLCJlYXNlLWluIjpoKC40MiwwLDEsMSksImVhc2Utb3V0IjpoKDAsMCwuNTgsMSksImVhc2UtaW4tb3V0IjpoKC40MiwwLC41OCwxKSwic3RlcC1zdGFydCI6ZigxLE4pLCJzdGVwLW1pZGRsZSI6Zigx''@;'; + put 'put ''LEkpLCJzdGVwLWVuZCI6ZigxLFcpfSxCPW51bGwsUj0iXFxzKigtP1xcZCtcXC4/XFxkKnwtP1xcLlxcZCspXFxzKiIsbDE9bmV3IFJlZ0V4cCgiY3ViaWMtYmV6aWVyXFwoIitSKyIsIitSKyIsIitSKyIsIitSKyJcXCkiKSxhMT0vc3RlcHNcKFxzKihcZCspXHMqXCkvLGgxPS9zdGVwc1wo''@;'; + put 'put ''XHMqKFxkKylccyosXHMqKHN0YXJ0fG1pZGRsZXxlbmQpXHMqXCkvLHUxPTAscDE9MSx2MT0yLEUxPTM7ay5jbG9uZVRpbWluZ0lucHV0PWZ1bmN0aW9uIGUoail7aWYoIm51bWJlciI9PXR5cGVvZiBqKXJldHVybiBqO3ZhciBjMT17fTtmb3IodmFyIFYxIGluIGopYzFbVjFdPWpbVjFdO3Jl''@;'; + put 'put ''dHVybiBjMX0say5tYWtlVGltaW5nPWEsay5udW1lcmljVGltaW5nVG9PYmplY3Q9ZnVuY3Rpb24gYyhqKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGomJihqPWlzTmFOKGopP3tkdXJhdGlvbjowfTp7ZHVyYXRpb246an0pLGp9LGsubm9ybWFsaXplVGltaW5nSW5wdXQ9ZnVuY3Rpb24gbyhq''@;'; + put 'put ''LGMxKXtyZXR1cm4gYShqPWsubnVtZXJpY1RpbWluZ1RvT2JqZWN0KGopLGMxKX0say5jYWxjdWxhdGVBY3RpdmVEdXJhdGlvbj1mdW5jdGlvbiBwKGope3JldHVybiBNYXRoLmFicyhmdW5jdGlvbiB2KGope3JldHVybiAwPT09ai5kdXJhdGlvbnx8MD09PWouaXRlcmF0aW9ucz8wOmouZHVy''@;'; + put 'put ''YXRpb24qai5pdGVyYXRpb25zfShqKS9qLnBsYXliYWNrUmF0ZSl9LGsuY2FsY3VsYXRlSXRlcmF0aW9uUHJvZ3Jlc3M9ZnVuY3Rpb24gTShqLGMxLFYxKXt2YXIgXzE9SChqLGMxLFYxKSxRPWZ1bmN0aW9uIEMoaixjMSxWMSxfMSxRKXtzd2l0Y2goXzEpe2Nhc2UgcDE6cmV0dXJuImJhY2t3''@;'; + put 'put ''YXJkcyI9PWMxfHwiYm90aCI9PWMxPzA6bnVsbDtjYXNlIEUxOnJldHVybiBWMS1RO2Nhc2UgdjE6cmV0dXJuImZvcndhcmRzIj09YzF8fCJib3RoIj09YzE/ajpudWxsO2Nhc2UgdTE6cmV0dXJuIG51bGx9fShqLFYxLmZpbGwsYzEsXzEsVjEuZGVsYXkpO2lmKG51bGw9PT1RKXJldHVybiBu''@;'; + put 'put ''dWxsO3ZhciBzMT1mdW5jdGlvbiBWKGosYzEsVjEsXzEsUSl7dmFyIHMxPVE7cmV0dXJuIDA9PT1qP2MxIT09cDEmJihzMSs9VjEpOnMxKz1fMS9qLHMxfShWMS5kdXJhdGlvbixfMSxWMS5pdGVyYXRpb25zLFEsVjEuaXRlcmF0aW9uU3RhcnQpLG0xPWZ1bmN0aW9uIFMoaixjMSxWMSxfMSxR''@;'; + put 'put ''LHMxKXt2YXIgbTE9aj09PTEvMD9jMSUxOmolMTtyZXR1cm4gMCE9PW0xfHxWMSE9PXYxfHwwPT09XzF8fDA9PT1RJiYwIT09czF8fChtMT0xKSxtMX0oczEsVjEuaXRlcmF0aW9uU3RhcnQsXzEsVjEuaXRlcmF0aW9ucyxRLFYxLmR1cmF0aW9uKSxiMT1mdW5jdGlvbiBfKGosYzEsVjEsXzEp''@;'; + put 'put ''e3JldHVybiBqPT09djEmJmMxPT09MS8wPzEvMDoxPT09VjE/TWF0aC5mbG9vcihfMSktMTpNYXRoLmZsb29yKF8xKX0oXzEsVjEuaXRlcmF0aW9ucyxtMSxzMSksQjE9ZnVuY3Rpb24gYihqLGMxLFYxKXt2YXIgXzE9ajtpZigibm9ybWFsIiE9PWomJiJyZXZlcnNlIiE9PWope3ZhciBRPWMx''@;'; + put 'put ''OyJhbHRlcm5hdGUtcmV2ZXJzZSI9PT1qJiYoUSs9MSksXzE9Im5vcm1hbCIsUSE9PTEvMCYmUSUyIT0wJiYoXzE9InJldmVyc2UiKX1yZXR1cm4ibm9ybWFsIj09PV8xP1YxOjEtVjF9KFYxLmRpcmVjdGlvbixiMSxtMSk7cmV0dXJuIFYxLl9lYXNpbmdGdW5jdGlvbihCMSl9LGsuY2FsY3Vs''@;'; + put 'put ''YXRlUGhhc2U9SCxrLm5vcm1hbGl6ZUVhc2luZz1nLGsucGFyc2VFYXNpbmdGdW5jdGlvbj11fSkoWCksZnVuY3Rpb24oayxBKXtmdW5jdGlvbiBlKHUscCl7cmV0dXJuIHUgaW4gZyYmZ1t1XVtwXXx8cH1mdW5jdGlvbiByKHUscCx2KXtpZighZnVuY3Rpb24gbCh1KXtyZXR1cm4iZGlzcGxh''@;'; + put 'put ''eSI9PT11fHwwPT09dS5sYXN0SW5kZXhPZigiYW5pbWF0aW9uIiwwKXx8MD09PXUubGFzdEluZGV4T2YoInRyYW5zaXRpb24iLDApfSh1KSl7dmFyIEg9b1t1XTtpZihIKWZvcih2YXIgQyBpbiBoLnN0eWxlW3VdPXAsSCl7dmFyIFY9SFtDXTt2W1ZdPWUoVixoLnN0eWxlW1ZdKX1lbHNlIHZb''@;'; + put 'put ''dV09ZSh1LHApfX1mdW5jdGlvbiBhKHUpe3ZhciBwPVtdO2Zvcih2YXIgdiBpbiB1KWlmKCEodiBpblsiZWFzaW5nIiwib2Zmc2V0IiwiY29tcG9zaXRlIl0pKXt2YXIgSD11W3ZdO0FycmF5LmlzQXJyYXkoSCl8fChIPVtIXSk7Zm9yKHZhciBDLFY9SC5sZW5ndGgsUz0wO1M8VjtTKyspKEM9''@;'; + put 'put ''e30pLm9mZnNldD0ib2Zmc2V0ImluIHU/dS5vZmZzZXQ6MT09Vj8xOlMvKFYtMSksImVhc2luZyJpbiB1JiYoQy5lYXNpbmc9dS5lYXNpbmcpLCJjb21wb3NpdGUiaW4gdSYmKEMuY29tcG9zaXRlPXUuY29tcG9zaXRlKSxDW3ZdPUhbU10scC5wdXNoKEMpfXJldHVybiBwLnNvcnQoZnVuY3Rp''@;'; + put 'put ''b24oXyxiKXtyZXR1cm4gXy5vZmZzZXQtYi5vZmZzZXR9KSxwfXZhciBvPXtiYWNrZ3JvdW5kOlsiYmFja2dyb3VuZEltYWdlIiwiYmFja2dyb3VuZFBvc2l0aW9uIiwiYmFja2dyb3VuZFNpemUiLCJiYWNrZ3JvdW5kUmVwZWF0IiwiYmFja2dyb3VuZEF0dGFjaG1lbnQiLCJiYWNrZ3JvdW5k''@;'; + put 'put ''T3JpZ2luIiwiYmFja2dyb3VuZENsaXAiLCJiYWNrZ3JvdW5kQ29sb3IiXSxib3JkZXI6WyJib3JkZXJUb3BDb2xvciIsImJvcmRlclRvcFN0eWxlIiwiYm9yZGVyVG9wV2lkdGgiLCJib3JkZXJSaWdodENvbG9yIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3Jk''@;'; + put 'put ''ZXJCb3R0b21Db2xvciIsImJvcmRlckJvdHRvbVN0eWxlIiwiYm9yZGVyQm90dG9tV2lkdGgiLCJib3JkZXJMZWZ0Q29sb3IiLCJib3JkZXJMZWZ0U3R5bGUiLCJib3JkZXJMZWZ0V2lkdGgiXSxib3JkZXJCb3R0b206WyJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRlckJvdHRvbVN0eWxlIiwi''@;'; + put 'put ''Ym9yZGVyQm90dG9tQ29sb3IiXSxib3JkZXJDb2xvcjpbImJvcmRlclRvcENvbG9yIiwiYm9yZGVyUmlnaHRDb2xvciIsImJvcmRlckJvdHRvbUNvbG9yIiwiYm9yZGVyTGVmdENvbG9yIl0sYm9yZGVyTGVmdDpbImJvcmRlckxlZnRXaWR0aCIsImJvcmRlckxlZnRTdHlsZSIsImJvcmRlckxl''@;'; + put 'put ''ZnRDb2xvciJdLGJvcmRlclJhZGl1czpbImJvcmRlclRvcExlZnRSYWRpdXMiLCJib3JkZXJUb3BSaWdodFJhZGl1cyIsImJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzIiwiYm9yZGVyQm90dG9tTGVmdFJhZGl1cyJdLGJvcmRlclJpZ2h0OlsiYm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlclJpZ2h0''@;'; + put 'put ''U3R5bGUiLCJib3JkZXJSaWdodENvbG9yIl0sYm9yZGVyVG9wOlsiYm9yZGVyVG9wV2lkdGgiLCJib3JkZXJUb3BTdHlsZSIsImJvcmRlclRvcENvbG9yIl0sYm9yZGVyV2lkdGg6WyJib3JkZXJUb3BXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRl''@;'; + put 'put ''ckxlZnRXaWR0aCJdLGZsZXg6WyJmbGV4R3JvdyIsImZsZXhTaHJpbmsiLCJmbGV4QmFzaXMiXSxmb250OlsiZm9udEZhbWlseSIsImZvbnRTaXplIiwiZm9udFN0eWxlIiwiZm9udFZhcmlhbnQiLCJmb250V2VpZ2h0IiwibGluZUhlaWdodCJdLG1hcmdpbjpbIm1hcmdpblRvcCIsIm1hcmdp''@;'; + put 'put ''blJpZ2h0IiwibWFyZ2luQm90dG9tIiwibWFyZ2luTGVmdCJdLG91dGxpbmU6WyJvdXRsaW5lQ29sb3IiLCJvdXRsaW5lU3R5bGUiLCJvdXRsaW5lV2lkdGgiXSxwYWRkaW5nOlsicGFkZGluZ1RvcCIsInBhZGRpbmdSaWdodCIsInBhZGRpbmdCb3R0b20iLCJwYWRkaW5nTGVmdCJdfSxoPWRv''@;'; + put 'put ''Y3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImRpdiIpLGY9e3RoaW46IjFweCIsbWVkaXVtOiIzcHgiLHRoaWNrOiI1cHgifSxnPXtib3JkZXJCb3R0b21XaWR0aDpmLGJvcmRlckxlZnRXaWR0aDpmLGJvcmRlclJpZ2h0V2lkdGg6Zixib3Jk''@;'; + put 'put ''ZXJUb3BXaWR0aDpmLGZvbnRTaXplOnsieHgtc21hbGwiOiI2MCUiLCJ4LXNtYWxsIjoiNzUlIixzbWFsbDoiODklIixtZWRpdW06IjEwMCUiLGxhcmdlOiIxMjAlIiwieC1sYXJnZSI6IjE1MCUiLCJ4eC1sYXJnZSI6IjIwMCUifSxmb250V2VpZ2h0Ontub3JtYWw6IjQwMCIsYm9sZDoiNzAw''@;'; + put 'put ''In0sb3V0bGluZVdpZHRoOmYsdGV4dFNoYWRvdzp7bm9uZToiMHB4IDBweCAwcHggdHJhbnNwYXJlbnQifSxib3hTaGFkb3c6e25vbmU6IjBweCAwcHggMHB4IDBweCB0cmFuc3BhcmVudCJ9fTtrLmNvbnZlcnRUb0FycmF5Rm9ybT1hLGsubm9ybWFsaXplS2V5ZnJhbWVzPWZ1bmN0aW9uIGMo''@;'; + put 'put ''dSl7aWYobnVsbD09dSlyZXR1cm5bXTt3aW5kb3cuU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJkFycmF5LnByb3RvdHlwZS5mcm9tJiZ1W1N5bWJvbC5pdGVyYXRvcl0mJih1PUFycmF5LmZyb20odSkpLEFycmF5LmlzQXJyYXkodSl8fCh1PWEodSkpO2Zvcih2YXIgdj11Lm1hcChmdW5jdGlv''@;'; + put 'put ''bihfKXt2YXIgYj17fTtmb3IodmFyIE0gaW4gXyl7dmFyIHg9X1tNXTtpZigib2Zmc2V0Ij09TSl7aWYobnVsbCE9eCl7aWYoeD1OdW1iZXIoeCksIWlzRmluaXRlKHgpKXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lIG9mZnNldHMgbXVzdCBiZSBudW1iZXJzLiIpO2lmKHg8MHx8eD4x''@;'; + put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lIG9mZnNldHMgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDEuIil9fWVsc2UgaWYoImNvbXBvc2l0ZSI9PU0pe2lmKCJhZGQiPT14fHwiYWNjdW11bGF0ZSI9PXgpdGhyb3d7dHlwZTpET01FeGNlcHRpb24uTk9UX1NVUFBPUlRFRF9FUlIsbmFt''@;'; + put 'put ''ZToiTm90U3VwcG9ydGVkRXJyb3IiLG1lc3NhZ2U6ImFkZCBjb21wb3NpdGluZyBpcyBub3Qgc3VwcG9ydGVkIn07aWYoInJlcGxhY2UiIT14KXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgY29tcG9zaXRlIG1vZGUgIit4KyIuIil9ZWxzZSB4PSJlYXNpbmciPT1NP2subm9ybWFsaXpl''@;'; + put 'put ''RWFzaW5nKHgpOiIiK3g7cihNLHgsYil9cmV0dXJuIG51bGw9PWIub2Zmc2V0JiYoYi5vZmZzZXQ9bnVsbCksbnVsbD09Yi5lYXNpbmcmJihiLmVhc2luZz0ibGluZWFyIiksYn0pLEg9ITAsQz0tMS8wLFY9MDtWPHYubGVuZ3RoO1YrKyl7dmFyIFM9dltWXS5vZmZzZXQ7aWYobnVsbCE9Uyl7''@;'; + put 'put ''aWYoUzxDKXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lcyBhcmUgbm90IGxvb3NlbHkgc29ydGVkIGJ5IG9mZnNldC4gU29ydCBvciBzcGVjaWZ5IG9mZnNldHMuIik7Qz1TfWVsc2UgSD0hMX1yZXR1cm4gdj12LmZpbHRlcihmdW5jdGlvbihfKXtyZXR1cm4gXy5vZmZzZXQ+PTAmJl8u''@;'; + put 'put ''b2Zmc2V0PD0xfSksSHx8ZnVuY3Rpb24gcCgpe3ZhciBfPXYubGVuZ3RoO251bGw9PXZbXy0xXS5vZmZzZXQmJih2W18tMV0ub2Zmc2V0PTEpLF8+MSYmbnVsbD09dlswXS5vZmZzZXQmJih2WzBdLm9mZnNldD0wKTtmb3IodmFyIGI9MCxNPXZbMF0ub2Zmc2V0LHg9MTt4PF87eCsrKXt2YXIg''@;'; + put 'put ''RT12W3hdLm9mZnNldDtpZihudWxsIT1FKXtmb3IodmFyIHc9MTt3PHgtYjt3KyspdltiK3ddLm9mZnNldD1NKyhFLU0pKncvKHgtYik7Yj14LE09RX19fSgpLHZ9fShYKSxBPXt9LChrPVgpLmlzRGVwcmVjYXRlZD1mdW5jdGlvbihlLGwscixhKXt2YXIgYz1hPyJhcmUiOiJpcyIsbz1uZXcg''@;'; + put 'put ''RGF0ZSxoPW5ldyBEYXRlKGwpO3JldHVybiBoLnNldE1vbnRoKGguZ2V0TW9udGgoKSszKSwhKG88aCYmKGUgaW4gQXx8Y29uc29sZS53YXJuKCJXZWIgQW5pbWF0aW9uczogIitlKyIgIitjKyIgZGVwcmVjYXRlZCBhbmQgd2lsbCBzdG9wIHdvcmtpbmcgb24gIitoLnRvRGF0ZVN0cmluZygp''@;'; + put 'put ''KyIuICIrciksQVtlXT0hMCwxKSl9LGsuZGVwcmVjYXRlZD1mdW5jdGlvbihlLGwscixhKXt2YXIgYz1hPyJhcmUiOiJpcyI7aWYoay5pc0RlcHJlY2F0ZWQoZSxsLHIsYSkpdGhyb3cgbmV3IEVycm9yKGUrIiAiK2MrIiBubyBsb25nZXIgc3VwcG9ydGVkLiAiK3IpfSxmdW5jdGlvbigpe2lm''@;'; + put 'put ''KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hbmltYXRlKXt2YXIgaz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYW5pbWF0ZShbXSwwKSxBPSEwO2lmKGsmJihBPSExLCJwbGF5fGN1cnJlbnRUaW1lfHBhdXNlfHJldmVyc2V8cGxheWJhY2tSYXRlfGNhbmNlbHxmaW5pc2h8c3RhcnRUaW1l''@;'; + put 'put ''fHBsYXlTdGF0ZSIuc3BsaXQoInwiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZvaWQgMD09PWtbZV0mJihBPSEwKX0pKSwhQSlyZXR1cm59dmFyIGUsbDtlPVgsKGw9RjEpLmNvbnZlcnRFZmZlY3RJbnB1dD1mdW5jdGlvbihvKXt2YXIgZj1mdW5jdGlvbiBhKG8pe2Zvcih2YXIgaD17fSxmPTA7''@;'; + put 'put ''ZjxvLmxlbmd0aDtmKyspZm9yKHZhciBnIGluIG9bZl0paWYoIm9mZnNldCIhPWcmJiJlYXNpbmciIT1nJiYiY29tcG9zaXRlIiE9Zyl7dmFyIHU9e29mZnNldDpvW2ZdLm9mZnNldCxlYXNpbmc6b1tmXS5lYXNpbmcsdmFsdWU6b1tmXVtnXX07aFtnXT1oW2ddfHxbXSxoW2ddLnB1c2godSl9''@;'; + put 'put ''Zm9yKHZhciBwIGluIGgpe3ZhciB2PWhbcF07aWYoMCE9dlswXS5vZmZzZXR8fDEhPXZbdi5sZW5ndGgtMV0ub2Zmc2V0KXRocm93e3R5cGU6RE9NRXhjZXB0aW9uLk5PVF9TVVBQT1JURURfRVJSLG5hbWU6Ik5vdFN1cHBvcnRlZEVycm9yIixtZXNzYWdlOiJQYXJ0aWFsIGtleWZyYW1lcyBh''@;'; + put 'put ''cmUgbm90IHN1cHBvcnRlZCJ9fXJldHVybiBofShlLm5vcm1hbGl6ZUtleWZyYW1lcyhvKSksZz1mdW5jdGlvbiBjKG8pe3ZhciBoPVtdO2Zvcih2YXIgZiBpbiBvKWZvcih2YXIgZz1vW2ZdLHU9MDt1PGcubGVuZ3RoLTE7dSsrKXt2YXIgcD11LHY9dSsxLEg9Z1twXS5vZmZzZXQsQz1nW3Zd''@;'; + put 'put ''Lm9mZnNldCxWPUgsUz1DOzA9PXUmJihWPS0xLzAsMD09QyYmKHY9cCkpLHU9PWcubGVuZ3RoLTImJihTPTEvMCwxPT1IJiYocD12KSksaC5wdXNoKHthcHBseUZyb206VixhcHBseVRvOlMsc3RhcnRPZmZzZXQ6Z1twXS5vZmZzZXQsZW5kT2Zmc2V0Omdbdl0ub2Zmc2V0LGVhc2luZ0Z1bmN0''@;'; + put 'put ''aW9uOmUucGFyc2VFYXNpbmdGdW5jdGlvbihnW3BdLmVhc2luZykscHJvcGVydHk6ZixpbnRlcnBvbGF0aW9uOmwucHJvcGVydHlJbnRlcnBvbGF0aW9uKGYsZ1twXS52YWx1ZSxnW3ZdLnZhbHVlKX0pfXJldHVybiBoLnNvcnQoZnVuY3Rpb24oXyxiKXtyZXR1cm4gXy5zdGFydE9mZnNldC1i''@;'; + put 'put ''LnN0YXJ0T2Zmc2V0fSksaH0oZik7cmV0dXJuIGZ1bmN0aW9uKHUscCl7aWYobnVsbCE9cClnLmZpbHRlcihmdW5jdGlvbihIKXtyZXR1cm4gcD49SC5hcHBseUZyb20mJnA8SC5hcHBseVRvfSkuZm9yRWFjaChmdW5jdGlvbihIKXt2YXIgVj1ILmVuZE9mZnNldC1ILnN0YXJ0T2Zmc2V0LFM9''@;'; + put 'put ''MD09Vj8wOkguZWFzaW5nRnVuY3Rpb24oKHAtSC5zdGFydE9mZnNldCkvVik7bC5hcHBseSh1LEgucHJvcGVydHksSC5pbnRlcnBvbGF0aW9uKFMpKX0pO2Vsc2UgZm9yKHZhciB2IGluIGYpIm9mZnNldCIhPXYmJiJlYXNpbmciIT12JiYiY29tcG9zaXRlIiE9diYmbC5jbGVhcih1LHYpfX0s''@;'; + put 'put ''ZnVuY3Rpb24oZSxsLHIpe2Z1bmN0aW9uIGEodSl7cmV0dXJuIHUucmVwbGFjZSgvLSguKS9nLGZ1bmN0aW9uKHAsdil7cmV0dXJuIHYudG9VcHBlckNhc2UoKX0pfWZ1bmN0aW9uIGModSxwLHYpe2Zbdl09Zlt2XXx8W10sZlt2XS5wdXNoKFt1LHBdKX12YXIgZj17fTtsLmFkZFByb3BlcnRp''@;'; + put 'put ''ZXNIYW5kbGVyPWZ1bmN0aW9uIG8odSxwLHYpe2Zvcih2YXIgSD0wO0g8di5sZW5ndGg7SCsrKWModSxwLGEodltIXSkpfTt2YXIgZz17YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYmFja2dyb3VuZFBvc2l0aW9uOiIwJSAwJSIsYm9yZGVyQm90dG9tQ29sb3I6ImN1cnJlbnRDb2xv''@;'; + put 'put ''ciIsYm9yZGVyQm90dG9tTGVmdFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21SaWdodFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21XaWR0aDoiM3B4Iixib3JkZXJMZWZ0Q29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyTGVmdFdpZHRoOiIzcHgiLGJvcmRlclJpZ2h0Q29sb3I6ImN1cnJlbnRD''@;'; + put 'put ''b2xvciIsYm9yZGVyUmlnaHRXaWR0aDoiM3B4Iixib3JkZXJTcGFjaW5nOiIycHgiLGJvcmRlclRvcENvbG9yOiJjdXJyZW50Q29sb3IiLGJvcmRlclRvcExlZnRSYWRpdXM6IjBweCIsYm9yZGVyVG9wUmlnaHRSYWRpdXM6IjBweCIsYm9yZGVyVG9wV2lkdGg6IjNweCIsYm90dG9tOiJhdXRv''@;'; + put 'put ''IixjbGlwOiJyZWN0KDBweCwgMHB4LCAwcHgsIDBweCkiLGNvbG9yOiJibGFjayIsZm9udFNpemU6IjEwMCUiLGZvbnRXZWlnaHQ6IjQwMCIsaGVpZ2h0OiJhdXRvIixsZWZ0OiJhdXRvIixsZXR0ZXJTcGFjaW5nOiJub3JtYWwiLGxpbmVIZWlnaHQ6IjEyMCUiLG1hcmdpbkJvdHRvbToiMHB4''@;'; + put 'put ''IixtYXJnaW5MZWZ0OiIwcHgiLG1hcmdpblJpZ2h0OiIwcHgiLG1hcmdpblRvcDoiMHB4IixtYXhIZWlnaHQ6Im5vbmUiLG1heFdpZHRoOiJub25lIixtaW5IZWlnaHQ6IjBweCIsbWluV2lkdGg6IjBweCIsb3BhY2l0eToiMS4wIixvdXRsaW5lQ29sb3I6ImludmVydCIsb3V0bGluZU9mZnNl''@;'; + put 'put ''dDoiMHB4IixvdXRsaW5lV2lkdGg6IjNweCIscGFkZGluZ0JvdHRvbToiMHB4IixwYWRkaW5nTGVmdDoiMHB4IixwYWRkaW5nUmlnaHQ6IjBweCIscGFkZGluZ1RvcDoiMHB4IixyaWdodDoiYXV0byIsc3Ryb2tlRGFzaGFycmF5OiJub25lIixzdHJva2VEYXNob2Zmc2V0OiIwcHgiLHRleHRJ''@;'; + put 'put ''bmRlbnQ6IjBweCIsdGV4dFNoYWRvdzoiMHB4IDBweCAwcHggdHJhbnNwYXJlbnQiLHRvcDoiYXV0byIsdHJhbnNmb3JtOiIiLHZlcnRpY2FsQWxpZ246IjBweCIsdmlzaWJpbGl0eToidmlzaWJsZSIsd2lkdGg6ImF1dG8iLHdvcmRTcGFjaW5nOiJub3JtYWwiLHpJbmRleDoiYXV0byJ9O2wu''@;'; + put 'put ''cHJvcGVydHlJbnRlcnBvbGF0aW9uPWZ1bmN0aW9uIGgodSxwLHYpe3ZhciBIPXU7Ly0vLnRlc3QodSkmJiFlLmlzRGVwcmVjYXRlZCgiSHlwaGVuYXRlZCBwcm9wZXJ0eSBuYW1lcyIsIjIwMTYtMDMtMjIiLCJVc2UgY2FtZWxDYXNlIGluc3RlYWQuIiwhMCkmJihIPWEodSkpLCJpbml0aWFs''@;'; + put 'put ''IiE9cCYmImluaXRpYWwiIT12fHwoImluaXRpYWwiPT1wJiYocD1nW0hdKSwiaW5pdGlhbCI9PXYmJih2PWdbSF0pKTtmb3IodmFyIEM9cD09dj9bXTpmW0hdLFY9MDtDJiZWPEMubGVuZ3RoO1YrKyl7dmFyIFM9Q1tWXVswXShwKSxfPUNbVl1bMF0odik7aWYodm9pZCAwIT09UyYmdm9pZCAw''@;'; + put 'put ''IT09Xyl7dmFyIGI9Q1tWXVsxXShTLF8pO2lmKGIpe3ZhciBNPWwuSW50ZXJwb2xhdGlvbi5hcHBseShudWxsLGIpO3JldHVybiBmdW5jdGlvbih4KXtyZXR1cm4gMD09eD9wOjE9PXg/djpNKHgpfX19fXJldHVybiBsLkludGVycG9sYXRpb24oITEsITAsZnVuY3Rpb24oeCl7cmV0dXJuIHg/''@;'; + put 'put ''djpwfSl9fShYLEYxKSxmdW5jdGlvbihlLGwscil7bC5LZXlmcmFtZUVmZmVjdD1mdW5jdGlvbihjLG8saCxmKXt2YXIgZyx1PWZ1bmN0aW9uIGEoYyl7dmFyIG89ZS5jYWxjdWxhdGVBY3RpdmVEdXJhdGlvbihjKSxoPWZ1bmN0aW9uKGYpe3JldHVybiBlLmNhbGN1bGF0ZUl0ZXJhdGlvblBy''@;'; + put 'put ''b2dyZXNzKG8sZixjKX07cmV0dXJuIGguX3RvdGFsRHVyYXRpb249Yy5kZWxheStvK2MuZW5kRGVsYXksaH0oZS5ub3JtYWxpemVUaW1pbmdJbnB1dChoKSkscD1sLmNvbnZlcnRFZmZlY3RJbnB1dChvKSx2PWZ1bmN0aW9uKCl7cChjLGcpfTtyZXR1cm4gdi5fdXBkYXRlPWZ1bmN0aW9uKEgp''@;'; + put 'put ''e3JldHVybiBudWxsIT09KGc9dShIKSl9LHYuX2NsZWFyPWZ1bmN0aW9uKCl7cChjLG51bGwpfSx2Ll9oYXNTYW1lVGFyZ2V0PWZ1bmN0aW9uKEgpe3JldHVybiBjPT09SH0sdi5fdGFyZ2V0PWMsdi5fdG90YWxEdXJhdGlvbj11Ll90b3RhbER1cmF0aW9uLHYuX2lkPWYsdn19KFgsRjEpLGZ1''@;'; + put 'put ''bmN0aW9uKGUsbCl7ZnVuY3Rpb24gYShILEMsVil7Vi5lbnVtZXJhYmxlPSEwLFYuY29uZmlndXJhYmxlPSEwLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShILEMsVil9ZnVuY3Rpb24gYyhIKXt0aGlzLl9lbGVtZW50PUgsdGhpcy5fc3Vycm9nYXRlU3R5bGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu''@;'; + put 'put ''dE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiZGl2Iikuc3R5bGUsdGhpcy5fc3R5bGU9SC5zdHlsZSx0aGlzLl9sZW5ndGg9MCx0aGlzLl9pc0FuaW1hdGVkUHJvcGVydHk9e30sdGhpcy5fdXBkYXRlU3ZnVHJhbnNmb3JtQXR0cj1mdW5jdGlvbiByKEgsQyl7cmV0dXJuISgh''@;'; + put 'put ''Qy5uYW1lc3BhY2VVUkl8fC0xPT1DLm5hbWVzcGFjZVVSSS5pbmRleE9mKCIvc3ZnIikpJiYoaCBpbiBIfHwoSFtoXT0vVHJpZGVudHxNU0lFfElFTW9iaWxlfEVkZ2V8QW5kcm9pZCA0L2kudGVzdChILm5hdmlnYXRvci51c2VyQWdlbnQpKSxIW2hdKX0od2luZG93LEgpLHRoaXMuX3NhdmVk''@;'; + put 'put ''VHJhbnNmb3JtQXR0cj1udWxsO2Zvcih2YXIgQz0wO0M8dGhpcy5fc3R5bGUubGVuZ3RoO0MrKyl7dmFyIFY9dGhpcy5fc3R5bGVbQ107dGhpcy5fc3Vycm9nYXRlU3R5bGVbVl09dGhpcy5fc3R5bGVbVl19dGhpcy5fdXBkYXRlSW5kaWNlcygpfXZhciBoPSJfd2ViQW5pbWF0aW9uc1VwZGF0''@;'; + put 'put ''ZVN2Z1RyYW5zZm9ybUF0dHIiLGY9e2Nzc1RleHQ6MSxsZW5ndGg6MSxwYXJlbnRSdWxlOjF9LGc9e2dldFByb3BlcnR5Q1NTVmFsdWU6MSxnZXRQcm9wZXJ0eVByaW9yaXR5OjEsZ2V0UHJvcGVydHlWYWx1ZToxLGl0ZW06MSxyZW1vdmVQcm9wZXJ0eToxLHNldFByb3BlcnR5OjF9LHU9e3Jl''@;'; + put 'put ''bW92ZVByb3BlcnR5OjEsc2V0UHJvcGVydHk6MX07Zm9yKHZhciBwIGluIGMucHJvdG90eXBlPXtnZXQgY3NzVGV4dCgpe3JldHVybiB0aGlzLl9zdXJyb2dhdGVTdHlsZS5jc3NUZXh0fSxzZXQgY3NzVGV4dChIKXtmb3IodmFyIEM9e30sVj0wO1Y8dGhpcy5fc3Vycm9nYXRlU3R5bGUubGVu''@;'; + put 'put ''Z3RoO1YrKylDW3RoaXMuX3N1cnJvZ2F0ZVN0eWxlW1ZdXT0hMDtmb3IodGhpcy5fc3Vycm9nYXRlU3R5bGUuY3NzVGV4dD1ILHRoaXMuX3VwZGF0ZUluZGljZXMoKSxWPTA7Vjx0aGlzLl9zdXJyb2dhdGVTdHlsZS5sZW5ndGg7VisrKUNbdGhpcy5fc3Vycm9nYXRlU3R5bGVbVl1dPSEwO2Zv''@;'; + put 'put ''cih2YXIgUyBpbiBDKXRoaXMuX2lzQW5pbWF0ZWRQcm9wZXJ0eVtTXXx8dGhpcy5fc3R5bGUuc2V0UHJvcGVydHkoUyx0aGlzLl9zdXJyb2dhdGVTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFMpKX0sZ2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLl9zdXJyb2dhdGVTdHlsZS5sZW5ndGh9LGdldCBw''@;'; + put 'put ''YXJlbnRSdWxlKCl7cmV0dXJuIHRoaXMuX3N0eWxlLnBhcmVudFJ1bGV9LF91cGRhdGVJbmRpY2VzOmZ1bmN0aW9uKCl7Zm9yKDt0aGlzLl9sZW5ndGg8dGhpcy5fc3Vycm9nYXRlU3R5bGUubGVuZ3RoOylPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0aGlzLl9sZW5ndGgse2NvbmZpZ3Vy''@;'; + put 'put ''YWJsZTohMCxlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbihIKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3Vycm9nYXRlU3R5bGVbSF19fSh0aGlzLl9sZW5ndGgpfSksdGhpcy5fbGVuZ3RoKys7Zm9yKDt0aGlzLl9sZW5ndGg+dGhpcy5fc3Vycm9nYXRlU3R5bGUubGVuZ3Ro''@;'; + put 'put ''Oyl0aGlzLl9sZW5ndGgtLSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0aGlzLl9sZW5ndGgse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHZhbHVlOnZvaWQgMH0pfSxfc2V0OmZ1bmN0aW9uKEgsQyl7dGhpcy5fc3R5bGVbSF09Qyx0aGlzLl9pc0FuaW1hdGVkUHJvcGVydHlb''@;'; + put 'put ''SF09ITAsdGhpcy5fdXBkYXRlU3ZnVHJhbnNmb3JtQXR0ciYmInRyYW5zZm9ybSI9PWUudW5wcmVmaXhlZFByb3BlcnR5TmFtZShIKSYmKG51bGw9PXRoaXMuX3NhdmVkVHJhbnNmb3JtQXR0ciYmKHRoaXMuX3NhdmVkVHJhbnNmb3JtQXR0cj10aGlzLl9lbGVtZW50LmdldEF0dHJpYnV0ZSgi''@;'; + put 'put ''dHJhbnNmb3JtIikpLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLGUudHJhbnNmb3JtVG9TdmdNYXRyaXgoQykpKX0sX2NsZWFyOmZ1bmN0aW9uKEgpe3RoaXMuX3N0eWxlW0hdPXRoaXMuX3N1cnJvZ2F0ZVN0eWxlW0hdLHRoaXMuX3VwZGF0ZVN2Z1RyYW5zZm9ybUF0''@;'; + put 'put ''dHImJiJ0cmFuc2Zvcm0iPT1lLnVucHJlZml4ZWRQcm9wZXJ0eU5hbWUoSCkmJih0aGlzLl9zYXZlZFRyYW5zZm9ybUF0dHI/dGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdGhpcy5fc2F2ZWRUcmFuc2Zvcm1BdHRyKTp0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0''@;'; + put 'put ''ZSgidHJhbnNmb3JtIiksdGhpcy5fc2F2ZWRUcmFuc2Zvcm1BdHRyPW51bGwpLGRlbGV0ZSB0aGlzLl9pc0FuaW1hdGVkUHJvcGVydHlbSF19fSxnKWMucHJvdG90eXBlW3BdPWZ1bmN0aW9uKEgsQyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIFY9dGhpcy5fc3Vycm9nYXRlU3R5bGVbSF0uYXBw''@;'; + put 'put ''bHkodGhpcy5fc3Vycm9nYXRlU3R5bGUsYXJndW1lbnRzKTtyZXR1cm4gQyYmKHRoaXMuX2lzQW5pbWF0ZWRQcm9wZXJ0eVthcmd1bWVudHNbMF1dfHx0aGlzLl9zdHlsZVtIXS5hcHBseSh0aGlzLl9zdHlsZSxhcmd1bWVudHMpLHRoaXMuX3VwZGF0ZUluZGljZXMoKSksVn19KHAscCBpbiB1''@;'; + put 'put ''KTtmb3IodmFyIHYgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlKXYgaW4gZnx8diBpbiBnfHxmdW5jdGlvbihIKXthKGMucHJvdG90eXBlLEgse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdXJyb2dhdGVTdHlsZVtIXX0sc2V0OmZ1bmN0aW9uKEMpe3RoaXMuX3N1cnJv''@;'; + put 'put ''Z2F0ZVN0eWxlW0hdPUMsdGhpcy5fdXBkYXRlSW5kaWNlcygpLHRoaXMuX2lzQW5pbWF0ZWRQcm9wZXJ0eVtIXXx8KHRoaXMuX3N0eWxlW0hdPUMpfX0pfSh2KTtlLmFwcGx5PWZ1bmN0aW9uKEgsQyxWKXsoZnVuY3Rpb24gbyhIKXtpZighSC5fd2ViQW5pbWF0aW9uc1BhdGNoZWRTdHlsZSl7''@;'; + put 'put ''dmFyIEM9bmV3IGMoSCk7dHJ5e2EoSCwic3R5bGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQ319KX1jYXRjaChWKXtILnN0eWxlLl9zZXQ9ZnVuY3Rpb24oUyxfKXtILnN0eWxlW1NdPV99LEguc3R5bGUuX2NsZWFyPWZ1bmN0aW9uKFMpe0guc3R5bGVbU109IiJ9fUguX3dlYkFuaW1hdGlv''@;'; + put 'put ''bnNQYXRjaGVkU3R5bGU9SC5zdHlsZX19KShIKSxILnN0eWxlLl9zZXQoZS5wcm9wZXJ0eU5hbWUoQyksVil9LGUuY2xlYXI9ZnVuY3Rpb24oSCxDKXtILl93ZWJBbmltYXRpb25zUGF0Y2hlZFN0eWxlJiZILnN0eWxlLl9jbGVhcihlLnByb3BlcnR5TmFtZShDKSl9fShGMSksZnVuY3Rpb24o''@;'; + put 'put ''ZSl7d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24obCxyKXt2YXIgYT0iIjtyZXR1cm4gciYmci5pZCYmKGE9ci5pZCksZS50aW1lbGluZS5fcGxheShlLktleWZyYW1lRWZmZWN0KHRoaXMsbCxyLGEpKX19KEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIoYSxj''@;'; + put 'put ''LG8pe2lmKCJudW1iZXIiPT10eXBlb2YgYSYmIm51bWJlciI9PXR5cGVvZiBjKXJldHVybiBhKigxLW8pK2MqbztpZigiYm9vbGVhbiI9PXR5cGVvZiBhJiYiYm9vbGVhbiI9PXR5cGVvZiBjKXJldHVybiBvPC41P2E6YztpZihhLmxlbmd0aD09Yy5sZW5ndGgpe2Zvcih2YXIgaD1bXSxmPTA7''@;'; + put 'put ''ZjxhLmxlbmd0aDtmKyspaC5wdXNoKHIoYVtmXSxjW2ZdLG8pKTtyZXR1cm4gaH10aHJvdyJNaXNtYXRjaGVkIGludGVycG9sYXRpb24gYXJndW1lbnRzICIrYSsiOiIrY31lLkludGVycG9sYXRpb249ZnVuY3Rpb24oYSxjLG8pe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gbyhyKGEsYyxo''@;'; + put 'put ''KSl9fX0oRjEpLGZ1bmN0aW9uKGUsbCl7dmFyIGM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBvKGcsdSl7Zm9yKHZhciBwPVtbMCwwLDAsMF0sWzAsMCwwLDBdLFswLDAsMCwwXSxbMCwwLDAsMF1dLHY9MDt2PDQ7disrKWZvcih2YXIgSD0wO0g8NDtIKyspZm9yKHZhciBDPTA7Qzw0O0MrKylwW3Zd''@;'; + put 'put ''W0hdKz11W3ZdW0NdKmdbQ11bSF07cmV0dXJuIHB9cmV0dXJuIGZ1bmN0aW9uIGYoZyx1LHAsdixIKXtmb3IodmFyIEM9W1sxLDAsMCwwXSxbMCwxLDAsMF0sWzAsMCwxLDBdLFswLDAsMCwxXV0sVj0wO1Y8NDtWKyspQ1tWXVszXT1IW1ZdO2ZvcihWPTA7VjwzO1YrKylmb3IodmFyIFM9MDtT''@;'; + put 'put ''PDM7UysrKUNbM11bVl0rPWdbU10qQ1tTXVtWXTt2YXIgXz12WzBdLGI9dlsxXSxNPXZbMl0seD12WzNdLEU9W1sxLDAsMCwwXSxbMCwxLDAsMF0sWzAsMCwxLDBdLFswLDAsMCwxXV07RVswXVswXT0xLTIqKGIqYitNKk0pLEVbMF1bMV09MiooXypiLU0qeCksRVswXVsyXT0yKihfKk0rYip4''@;'; + put 'put ''KSxFWzFdWzBdPTIqKF8qYitNKngpLEVbMV1bMV09MS0yKihfKl8rTSpNKSxFWzFdWzJdPTIqKGIqTS1fKngpLEVbMl1bMF09MiooXypNLWIqeCksRVsyXVsxXT0yKihiKk0rXyp4KSxFWzJdWzJdPTEtMiooXypfK2IqYiksQz1vKEMsRSk7dmFyIHc9W1sxLDAsMCwwXSxbMCwxLDAsMF0sWzAs''@;'; + put 'put ''MCwxLDBdLFswLDAsMCwxXV07Zm9yKHBbMl0mJih3WzJdWzFdPXBbMl0sQz1vKEMsdykpLHBbMV0mJih3WzJdWzFdPTAsd1syXVswXT1wWzBdLEM9byhDLHcpKSxwWzBdJiYod1syXVswXT0wLHdbMV1bMF09cFswXSxDPW8oQyx3KSksVj0wO1Y8MztWKyspZm9yKFM9MDtTPDM7UysrKUNbVl1b''@;'; + put 'put ''U10qPXVbVl07cmV0dXJuIGZ1bmN0aW9uIGgoZyl7cmV0dXJuIDA9PWdbMF1bMl0mJjA9PWdbMF1bM10mJjA9PWdbMV1bMl0mJjA9PWdbMV1bM10mJjA9PWdbMl1bMF0mJjA9PWdbMl1bMV0mJjE9PWdbMl1bMl0mJjA9PWdbMl1bM10mJjA9PWdbM11bMl0mJjE9PWdbM11bM119KEMpP1tDWzBd''@;'; + put 'put ''WzBdLENbMF1bMV0sQ1sxXVswXSxDWzFdWzFdLENbM11bMF0sQ1szXVsxXV06Q1swXS5jb25jYXQoQ1sxXSxDWzJdLENbM10pfX0oKTtlLmNvbXBvc2VNYXRyaXg9YyxlLnF1YXQ9ZnVuY3Rpb24gYShvLGgsZil7dmFyIGc9ZS5kb3QobyxoKTtnPWZ1bmN0aW9uIHIobyxoLGYpe3JldHVybiBN''@;'; + put 'put ''YXRoLm1heChNYXRoLm1pbihvLGYpLGgpfShnLC0xLDEpO3ZhciB1PVtdO2lmKDE9PT1nKXU9bztlbHNlIGZvcih2YXIgcD1NYXRoLmFjb3MoZyksdj0xKk1hdGguc2luKGYqcCkvTWF0aC5zcXJ0KDEtZypnKSxIPTA7SDw0O0grKyl1LnB1c2gob1tIXSooTWF0aC5jb3MoZipwKS1nKnYpK2hb''@;'; + put 'put ''SF0qdik7cmV0dXJuIHV9fShGMSksZnVuY3Rpb24oZSxsLHIpe2Uuc2VxdWVuY2VOdW1iZXI9MDt2YXIgYT1mdW5jdGlvbihjLG8saCl7dGhpcy50YXJnZXQ9Yyx0aGlzLmN1cnJlbnRUaW1lPW8sdGhpcy50aW1lbGluZVRpbWU9aCx0aGlzLnR5cGU9ImZpbmlzaCIsdGhpcy5idWJibGVzPSEx''@;'; + put 'put ''LHRoaXMuY2FuY2VsYWJsZT0hMSx0aGlzLmN1cnJlbnRUYXJnZXQ9Yyx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEsdGhpcy5ldmVudFBoYXNlPUV2ZW50LkFUX1RBUkdFVCx0aGlzLnRpbWVTdGFtcD1EYXRlLm5vdygpfTtsLkFuaW1hdGlvbj1mdW5jdGlvbihjKXt0aGlzLmlkPSIiLGMmJmMu''@;'; + put 'put ''X2lkJiYodGhpcy5pZD1jLl9pZCksdGhpcy5fc2VxdWVuY2VOdW1iZXI9ZS5zZXF1ZW5jZU51bWJlcisrLHRoaXMuX2N1cnJlbnRUaW1lPTAsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy5fcGF1c2VkPSExLHRoaXMuX3BsYXliYWNrUmF0ZT0xLHRoaXMuX2luVGltZWxpbmU9ITAsdGhpcy5f''@;'; + put 'put ''ZmluaXNoZWRGbGFnPSEwLHRoaXMub25maW5pc2g9bnVsbCx0aGlzLl9maW5pc2hIYW5kbGVycz1bXSx0aGlzLl9lZmZlY3Q9Yyx0aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSgwKSx0aGlzLl9pZGxlPSEwLHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMX0sbC5BbmltYXRp''@;'; + put 'put ''b24ucHJvdG90eXBlPXtfZW5zdXJlQWxpdmU6ZnVuY3Rpb24oKXt0aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSh0aGlzLnBsYXliYWNrUmF0ZTwwJiYwPT09dGhpcy5jdXJyZW50VGltZT8tMTp0aGlzLmN1cnJlbnRUaW1lKSx0aGlzLl9pblRpbWVsaW5lfHwhdGhpcy5faW5F''@;'; + put 'put ''ZmZlY3QmJnRoaXMuX2ZpbmlzaGVkRmxhZ3x8KHRoaXMuX2luVGltZWxpbmU9ITAsbC50aW1lbGluZS5fYW5pbWF0aW9ucy5wdXNoKHRoaXMpKX0sX3RpY2tDdXJyZW50VGltZTpmdW5jdGlvbihjLG8pe2MhPXRoaXMuX2N1cnJlbnRUaW1lJiYodGhpcy5fY3VycmVudFRpbWU9Yyx0aGlzLl9p''@;'; + put 'put ''c0ZpbmlzaGVkJiYhbyYmKHRoaXMuX2N1cnJlbnRUaW1lPXRoaXMuX3BsYXliYWNrUmF0ZT4wP3RoaXMuX3RvdGFsRHVyYXRpb246MCksdGhpcy5fZW5zdXJlQWxpdmUoKSl9LGdldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLl9pZGxlfHx0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc/bnVs''@;'; + put 'put ''bDp0aGlzLl9jdXJyZW50VGltZX0sc2V0IGN1cnJlbnRUaW1lKGMpe2M9K2MsaXNOYU4oYyl8fChsLnJlc3RhcnQoKSx0aGlzLl9wYXVzZWR8fG51bGw9PXRoaXMuX3N0YXJ0VGltZXx8KHRoaXMuX3N0YXJ0VGltZT10aGlzLl90aW1lbGluZS5jdXJyZW50VGltZS1jL3RoaXMuX3BsYXliYWNr''@;'; + put 'put ''UmF0ZSksdGhpcy5fY3VycmVudFRpbWVQZW5kaW5nPSExLHRoaXMuX2N1cnJlbnRUaW1lIT1jJiYodGhpcy5faWRsZSYmKHRoaXMuX2lkbGU9ITEsdGhpcy5fcGF1c2VkPSEwKSx0aGlzLl90aWNrQ3VycmVudFRpbWUoYywhMCksbC5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcykpKX0sZ2V0''@;'; + put 'put ''IHN0YXJ0VGltZSgpe3JldHVybiB0aGlzLl9zdGFydFRpbWV9LHNldCBzdGFydFRpbWUoYyl7Yz0rYyxpc05hTihjKXx8dGhpcy5fcGF1c2VkfHx0aGlzLl9pZGxlfHwodGhpcy5fc3RhcnRUaW1lPWMsdGhpcy5fdGlja0N1cnJlbnRUaW1lKCh0aGlzLl90aW1lbGluZS5jdXJyZW50VGltZS10''@;'; + put 'put ''aGlzLl9zdGFydFRpbWUpKnRoaXMucGxheWJhY2tSYXRlKSxsLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSl9LGdldCBwbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5fcGxheWJhY2tSYXRlfSxzZXQgcGxheWJhY2tSYXRlKGMpe2lmKGMhPXRoaXMuX3BsYXliYWNrUmF0ZSl7dmFyIG89''@;'; + put 'put ''dGhpcy5jdXJyZW50VGltZTt0aGlzLl9wbGF5YmFja1JhdGU9Yyx0aGlzLl9zdGFydFRpbWU9bnVsbCwicGF1c2VkIiE9dGhpcy5wbGF5U3RhdGUmJiJpZGxlIiE9dGhpcy5wbGF5U3RhdGUmJih0aGlzLl9maW5pc2hlZEZsYWc9ITEsdGhpcy5faWRsZT0hMSx0aGlzLl9lbnN1cmVBbGl2ZSgp''@;'; + put 'put ''LGwuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpKSxudWxsIT1vJiYodGhpcy5jdXJyZW50VGltZT1vKX19LGdldCBfaXNGaW5pc2hlZCgpe3JldHVybiF0aGlzLl9pZGxlJiYodGhpcy5fcGxheWJhY2tSYXRlPjAmJnRoaXMuX2N1cnJlbnRUaW1lPj10aGlzLl90b3RhbER1cmF0aW9ufHx0''@;'; + put 'put ''aGlzLl9wbGF5YmFja1JhdGU8MCYmdGhpcy5fY3VycmVudFRpbWU8PTApfSxnZXQgX3RvdGFsRHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fZWZmZWN0Ll90b3RhbER1cmF0aW9ufSxnZXQgcGxheVN0YXRlKCl7cmV0dXJuIHRoaXMuX2lkbGU/ImlkbGUiOm51bGw9PXRoaXMuX3N0YXJ0VGltZSYm''@;'; + put 'put ''IXRoaXMuX3BhdXNlZCYmMCE9dGhpcy5wbGF5YmFja1JhdGV8fHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz8icGVuZGluZyI6dGhpcy5fcGF1c2VkPyJwYXVzZWQiOnRoaXMuX2lzRmluaXNoZWQ/ImZpbmlzaGVkIjoicnVubmluZyJ9LF9yZXdpbmQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9wbGF5''@;'; + put 'put ''YmFja1JhdGU+PTApdGhpcy5fY3VycmVudFRpbWU9MDtlbHNle2lmKCEodGhpcy5fdG90YWxEdXJhdGlvbjwxLzApKXRocm93IG5ldyBET01FeGNlcHRpb24oIlVuYWJsZSB0byByZXdpbmQgbmVnYXRpdmUgcGxheWJhY2sgcmF0ZSBhbmltYXRpb24gd2l0aCBpbmZpbml0ZSBkdXJhdGlvbiIs''@;'; + put 'put ''IkludmFsaWRTdGF0ZUVycm9yIik7dGhpcy5fY3VycmVudFRpbWU9dGhpcy5fdG90YWxEdXJhdGlvbn19LHBsYXk6ZnVuY3Rpb24oKXt0aGlzLl9wYXVzZWQ9ITEsKHRoaXMuX2lzRmluaXNoZWR8fHRoaXMuX2lkbGUpJiYodGhpcy5fcmV3aW5kKCksdGhpcy5fc3RhcnRUaW1lPW51bGwpLHRo''@;'; + put 'put ''aXMuX2ZpbmlzaGVkRmxhZz0hMSx0aGlzLl9pZGxlPSExLHRoaXMuX2Vuc3VyZUFsaXZlKCksbC5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcyl9LHBhdXNlOmZ1bmN0aW9uKCl7dGhpcy5faXNGaW5pc2hlZHx8dGhpcy5fcGF1c2VkfHx0aGlzLl9pZGxlP3RoaXMuX2lkbGUmJih0aGlzLl9y''@;'; + put 'put ''ZXdpbmQoKSx0aGlzLl9pZGxlPSExKTp0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc9ITAsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy5fcGF1c2VkPSEwfSxmaW5pc2g6ZnVuY3Rpb24oKXt0aGlzLl9pZGxlfHwodGhpcy5jdXJyZW50VGltZT10aGlzLl9wbGF5YmFja1JhdGU+MD90aGlzLl90''@;'; + put 'put ''b3RhbER1cmF0aW9uOjAsdGhpcy5fc3RhcnRUaW1lPXRoaXMuX3RvdGFsRHVyYXRpb24tdGhpcy5jdXJyZW50VGltZSx0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc9ITEsbC5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcykpfSxjYW5jZWw6ZnVuY3Rpb24oKXt0aGlzLl9pbkVmZmVjdCYmKHRo''@;'; + put 'put ''aXMuX2luRWZmZWN0PSExLHRoaXMuX2lkbGU9ITAsdGhpcy5fcGF1c2VkPSExLHRoaXMuX2ZpbmlzaGVkRmxhZz0hMCx0aGlzLl9jdXJyZW50VGltZT0wLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuX2VmZmVjdC5fdXBkYXRlKG51bGwpLGwuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMp''@;'; + put 'put ''KX0scmV2ZXJzZTpmdW5jdGlvbigpe3RoaXMucGxheWJhY2tSYXRlKj0tMSx0aGlzLnBsYXkoKX0sYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihjLG8peyJmdW5jdGlvbiI9PXR5cGVvZiBvJiYiZmluaXNoIj09YyYmdGhpcy5fZmluaXNoSGFuZGxlcnMucHVzaChvKX0scmVtb3ZlRXZlbnRM''@;'; + put 'put ''aXN0ZW5lcjpmdW5jdGlvbihjLG8pe2lmKCJmaW5pc2giPT1jKXt2YXIgaD10aGlzLl9maW5pc2hIYW5kbGVycy5pbmRleE9mKG8pO2g+PTAmJnRoaXMuX2ZpbmlzaEhhbmRsZXJzLnNwbGljZShoLDEpfX0sX2ZpcmVFdmVudHM6ZnVuY3Rpb24oYyl7aWYodGhpcy5faXNGaW5pc2hlZCl7aWYo''@;'; + put 'put ''IXRoaXMuX2ZpbmlzaGVkRmxhZyl7dmFyIG89bmV3IGEodGhpcyx0aGlzLl9jdXJyZW50VGltZSxjKSxoPXRoaXMuX2ZpbmlzaEhhbmRsZXJzLmNvbmNhdCh0aGlzLm9uZmluaXNoP1t0aGlzLm9uZmluaXNoXTpbXSk7c2V0VGltZW91dChmdW5jdGlvbigpe2guZm9yRWFjaChmdW5jdGlvbihm''@;'; + put 'put ''KXtmLmNhbGwoby50YXJnZXQsbyl9KX0sMCksdGhpcy5fZmluaXNoZWRGbGFnPSEwfX1lbHNlIHRoaXMuX2ZpbmlzaGVkRmxhZz0hMX0sX3RpY2s6ZnVuY3Rpb24oYyxvKXt0aGlzLl9pZGxlfHx0aGlzLl9wYXVzZWR8fChudWxsPT10aGlzLl9zdGFydFRpbWU/byYmKHRoaXMuc3RhcnRUaW1l''@;'; + put 'put ''PWMtdGhpcy5fY3VycmVudFRpbWUvdGhpcy5wbGF5YmFja1JhdGUpOnRoaXMuX2lzRmluaXNoZWR8fHRoaXMuX3RpY2tDdXJyZW50VGltZSgoYy10aGlzLl9zdGFydFRpbWUpKnRoaXMucGxheWJhY2tSYXRlKSksbyYmKHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMSx0aGlzLl9maXJlRXZl''@;'; + put 'put ''bnRzKGMpKX0sZ2V0IF9uZWVkc1RpY2soKXtyZXR1cm4gdGhpcy5wbGF5U3RhdGUgaW57cGVuZGluZzoxLHJ1bm5pbmc6MX18fCF0aGlzLl9maW5pc2hlZEZsYWd9LF90YXJnZXRBbmltYXRpb25zOmZ1bmN0aW9uKCl7dmFyIGM9dGhpcy5fZWZmZWN0Ll90YXJnZXQ7cmV0dXJuIGMuX2FjdGl2''@;'; + put 'put ''ZUFuaW1hdGlvbnN8fChjLl9hY3RpdmVBbmltYXRpb25zPVtdKSxjLl9hY3RpdmVBbmltYXRpb25zfSxfbWFya1RhcmdldDpmdW5jdGlvbigpe3ZhciBjPXRoaXMuX3RhcmdldEFuaW1hdGlvbnMoKTstMT09PWMuaW5kZXhPZih0aGlzKSYmYy5wdXNoKHRoaXMpfSxfdW5tYXJrVGFyZ2V0OmZ1''@;'; + put 'put ''bmN0aW9uKCl7dmFyIGM9dGhpcy5fdGFyZ2V0QW5pbWF0aW9ucygpLG89Yy5pbmRleE9mKHRoaXMpOy0xIT09byYmYy5zcGxpY2UobywxKX19fShYLEYxKSxmdW5jdGlvbihlLGwscil7ZnVuY3Rpb24gYShiKXt2YXIgTT11O3U9W10sYjxfLmN1cnJlbnRUaW1lJiYoYj1fLmN1cnJlbnRUaW1l''@;'; + put 'put ''KSxfLl9hbmltYXRpb25zLnNvcnQoYyksXy5fYW5pbWF0aW9ucz1mKGIsITAsXy5fYW5pbWF0aW9ucylbMF0sTS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3hbMV0oYil9KSxoKCl9ZnVuY3Rpb24gYyhiLE0pe3JldHVybiBiLl9zZXF1ZW5jZU51bWJlci1NLl9zZXF1ZW5jZU51bWJlcn1mdW5jdGlv''@;'; + put 'put ''biBvKCl7dGhpcy5fYW5pbWF0aW9ucz1bXSx0aGlzLmN1cnJlbnRUaW1lPXdpbmRvdy5wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOjB9ZnVuY3Rpb24gaCgpe1YuZm9yRWFjaChmdW5jdGlvbihiKXtiKCl9KSxWLmxlbmd0aD0wfWZ1bmN0aW9uIGYoYixN''@;'; + put 'put ''LHgpe1M9ITAsQz0hMSxsLnRpbWVsaW5lLmN1cnJlbnRUaW1lPWIsSD0hMTt2YXIgRT1bXSx3PVtdLE49W10sST1bXTtyZXR1cm4geC5mb3JFYWNoKGZ1bmN0aW9uKFcpe1cuX3RpY2soYixNKSxXLl9pbkVmZmVjdD8ody5wdXNoKFcuX2VmZmVjdCksVy5fbWFya1RhcmdldCgpKTooRS5wdXNo''@;'; + put 'put ''KFcuX2VmZmVjdCksVy5fdW5tYXJrVGFyZ2V0KCkpLFcuX25lZWRzVGljayYmKEg9ITApO3ZhciBPPVcuX2luRWZmZWN0fHxXLl9uZWVkc1RpY2s7Vy5faW5UaW1lbGluZT1PLE8/Ti5wdXNoKFcpOkkucHVzaChXKX0pLFYucHVzaC5hcHBseShWLEUpLFYucHVzaC5hcHBseShWLHcpLEgmJnJl''@;'; + put 'put ''cXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLFM9ITEsW04sSV19dmFyIGc9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSx1PVtdLHA9MDt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lPWZ1bmN0aW9uKGIpe3ZhciBNPXArKztyZXR1cm4gMD09dS5sZW5ndGgmJmcoYSks''@;'; + put 'put ''dS5wdXNoKFtNLGJdKSxNfSx3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oYil7dS5mb3JFYWNoKGZ1bmN0aW9uKE0pe01bMF09PWImJihNWzFdPWZ1bmN0aW9uKCl7fSl9KX0sby5wcm90b3R5cGU9e19wbGF5OmZ1bmN0aW9uKGIpe2IuX3RpbWluZz1lLm5vcm1hbGl6ZVRp''@;'; + put 'put ''bWluZ0lucHV0KGIudGltaW5nKTt2YXIgTT1uZXcgbC5BbmltYXRpb24oYik7cmV0dXJuIE0uX2lkbGU9ITEsTS5fdGltZWxpbmU9dGhpcyx0aGlzLl9hbmltYXRpb25zLnB1c2goTSksbC5yZXN0YXJ0KCksbC5hcHBseURpcnRpZWRBbmltYXRpb24oTSksTX19O3ZhciBIPSExLEM9ITE7bC5y''@;'; + put 'put ''ZXN0YXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIEh8fChIPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLEM9ITApLEN9LGwuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uPWZ1bmN0aW9uKGIpe2lmKCFTKXtiLl9tYXJrVGFyZ2V0KCk7dmFyIE09Yi5fdGFyZ2V0QW5pbWF0aW9ucygp''@;'; + put 'put ''O00uc29ydChjKSxmKGwudGltZWxpbmUuY3VycmVudFRpbWUsITEsTS5zbGljZSgpKVsxXS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBFPV8uX2FuaW1hdGlvbnMuaW5kZXhPZih4KTstMSE9PUUmJl8uX2FuaW1hdGlvbnMuc3BsaWNlKEUsMSl9KSxoKCl9fTt2YXIgVj1bXSxTPSExLF89bmV3''@;'; + put 'put ''IG87bC50aW1lbGluZT1ffShYLEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIodSxwKXtmb3IodmFyIHY9MCxIPTA7SDx1Lmxlbmd0aDtIKyspdis9dVtIXSpwW0hdO3JldHVybiB2fWZ1bmN0aW9uIGEodSxwKXtyZXR1cm5bdVswXSpwWzBdK3VbNF0qcFsxXSt1WzhdKnBbMl0rdVsxMl0q''@;'; + put 'put ''cFszXSx1WzFdKnBbMF0rdVs1XSpwWzFdK3VbOV0qcFsyXSt1WzEzXSpwWzNdLHVbMl0qcFswXSt1WzZdKnBbMV0rdVsxMF0qcFsyXSt1WzE0XSpwWzNdLHVbM10qcFswXSt1WzddKnBbMV0rdVsxMV0qcFsyXSt1WzE1XSpwWzNdLHVbMF0qcFs0XSt1WzRdKnBbNV0rdVs4XSpwWzZdK3VbMTJd''@;'; + put 'put ''KnBbN10sdVsxXSpwWzRdK3VbNV0qcFs1XSt1WzldKnBbNl0rdVsxM10qcFs3XSx1WzJdKnBbNF0rdVs2XSpwWzVdK3VbMTBdKnBbNl0rdVsxNF0qcFs3XSx1WzNdKnBbNF0rdVs3XSpwWzVdK3VbMTFdKnBbNl0rdVsxNV0qcFs3XSx1WzBdKnBbOF0rdVs0XSpwWzldK3VbOF0qcFsxMF0rdVsx''@;'; + put 'put ''Ml0qcFsxMV0sdVsxXSpwWzhdK3VbNV0qcFs5XSt1WzldKnBbMTBdK3VbMTNdKnBbMTFdLHVbMl0qcFs4XSt1WzZdKnBbOV0rdVsxMF0qcFsxMF0rdVsxNF0qcFsxMV0sdVszXSpwWzhdK3VbN10qcFs5XSt1WzExXSpwWzEwXSt1WzE1XSpwWzExXSx1WzBdKnBbMTJdK3VbNF0qcFsxM10rdVs4''@;'; + put 'put ''XSpwWzE0XSt1WzEyXSpwWzE1XSx1WzFdKnBbMTJdK3VbNV0qcFsxM10rdVs5XSpwWzE0XSt1WzEzXSpwWzE1XSx1WzJdKnBbMTJdK3VbNl0qcFsxM10rdVsxMF0qcFsxNF0rdVsxNF0qcFsxNV0sdVszXSpwWzEyXSt1WzddKnBbMTNdK3VbMTFdKnBbMTRdK3VbMTVdKnBbMTVdXX1mdW5jdGlv''@;'; + put 'put ''biBjKHUpe3JldHVybigodS5kZWd8fDApLzM2MCsodS5ncmFkfHwwKS80MDArKHUudHVybnx8MCkpKigyKk1hdGguUEkpKyh1LnJhZHx8MCl9ZnVuY3Rpb24gbyh1KXtzd2l0Y2godS50KXtjYXNlInJvdGF0ZXgiOnZhciBiPWModS5kWzBdKTtyZXR1cm5bMSwwLDAsMCwwLE1hdGguY29zKGIp''@;'; + put 'put ''LE1hdGguc2luKGIpLDAsMCwtTWF0aC5zaW4oYiksTWF0aC5jb3MoYiksMCwwLDAsMCwxXTtjYXNlInJvdGF0ZXkiOnJldHVybiBiPWModS5kWzBdKSxbTWF0aC5jb3MoYiksMCwtTWF0aC5zaW4oYiksMCwwLDEsMCwwLE1hdGguc2luKGIpLDAsTWF0aC5jb3MoYiksMCwwLDAsMCwxXTtjYXNl''@;'; + put 'put ''InJvdGF0ZSI6Y2FzZSJyb3RhdGV6IjpyZXR1cm4gYj1jKHUuZFswXSksW01hdGguY29zKGIpLE1hdGguc2luKGIpLDAsMCwtTWF0aC5zaW4oYiksTWF0aC5jb3MoYiksMCwwLDAsMCwxLDAsMCwwLDAsMV07Y2FzZSJyb3RhdGUzZCI6dmFyIE09dS5kWzBdLHg9dS5kWzFdLEU9dS5kWzJdLHA9''@;'; + put 'put ''KGI9Yyh1LmRbM10pLE0qTSt4KngrRSpFKTtpZigwPT09cClNPTEseD0wLEU9MDtlbHNlIGlmKDEhPT1wKXt2YXIgdj1NYXRoLnNxcnQocCk7TS89dix4Lz12LEUvPXZ9dmFyIEg9TWF0aC5zaW4oYi8yKSxDPUgqTWF0aC5jb3MoYi8yKSxWPUgqSDtyZXR1cm5bMS0yKih4KngrRSpFKSpWLDIq''@;'; + put 'put ''KE0qeCpWK0UqQyksMiooTSpFKlYteCpDKSwwLDIqKE0qeCpWLUUqQyksMS0yKihNKk0rRSpFKSpWLDIqKHgqRSpWK00qQyksMCwyKihNKkUqVit4KkMpLDIqKHgqRSpWLU0qQyksMS0yKihNKk0reCp4KSpWLDAsMCwwLDAsMV07Y2FzZSJzY2FsZSI6cmV0dXJuW3UuZFswXSwwLDAsMCwwLHUu''@;'; + put 'put ''ZFsxXSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInNjYWxleCI6cmV0dXJuW3UuZFswXSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV07Y2FzZSJzY2FsZXkiOnJldHVyblsxLDAsMCwwLDAsdS5kWzBdLDAsMCwwLDAsMSwwLDAsMCwwLDFdO2Nhc2Uic2NhbGV6IjpyZXR1cm5bMSww''@;'; + put 'put ''LDAsMCwwLDEsMCwwLDAsMCx1LmRbMF0sMCwwLDAsMCwxXTtjYXNlInNjYWxlM2QiOnJldHVyblt1LmRbMF0sMCwwLDAsMCx1LmRbMV0sMCwwLDAsMCx1LmRbMl0sMCwwLDAsMCwxXTtjYXNlInNrZXciOnZhciBTPWModS5kWzBdKSxfPWModS5kWzFdKTtyZXR1cm5bMSxNYXRoLnRhbihfKSww''@;'; + put 'put ''LDAsTWF0aC50YW4oUyksMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInNrZXd4IjpyZXR1cm4gYj1jKHUuZFswXSksWzEsMCwwLDAsTWF0aC50YW4oYiksMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInNrZXd5IjpyZXR1cm4gYj1jKHUuZFswXSksWzEsTWF0aC50YW4oYiksMCwwLDAs''@;'; + put 'put ''MSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInRyYW5zbGF0ZSI6cmV0dXJuWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLE09dS5kWzBdLnB4fHwwLHg9dS5kWzFdLnB4fHwwLDAsMV07Y2FzZSJ0cmFuc2xhdGV4IjpyZXR1cm5bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsTT11LmRbMF0ucHh8''@;'; + put 'put ''fDAsMCwwLDFdO2Nhc2UidHJhbnNsYXRleSI6cmV0dXJuWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAseD11LmRbMF0ucHh8fDAsMCwxXTtjYXNlInRyYW5zbGF0ZXoiOnJldHVyblsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsRT11LmRbMF0ucHh8fDAsMV07Y2FzZSJ0cmFuc2xhdGUz''@;'; + put 'put ''ZCI6cmV0dXJuWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLE09dS5kWzBdLnB4fHwwLHg9dS5kWzFdLnB4fHwwLEU9dS5kWzJdLnB4fHwwLDFdO2Nhc2UicGVyc3BlY3RpdmUiOnJldHVyblsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsdS5kWzBdLnB4Py0xL3UuZFswXS5weDowLDAsMCwwLDFdO2Nh''@;'; + put 'put ''c2UibWF0cml4IjpyZXR1cm5bdS5kWzBdLHUuZFsxXSwwLDAsdS5kWzJdLHUuZFszXSwwLDAsMCwwLDEsMCx1LmRbNF0sdS5kWzVdLDAsMV07Y2FzZSJtYXRyaXgzZCI6cmV0dXJuIHUuZH19ZnVuY3Rpb24gaCh1KXtyZXR1cm4gMD09PXUubGVuZ3RoP1sxLDAsMCwwLDAsMSwwLDAsMCwwLDEs''@;'; + put 'put ''MCwwLDAsMCwxXTp1Lm1hcChvKS5yZWR1Y2UoYSl9dmFyIGc9ZnVuY3Rpb24oKXtmdW5jdGlvbiB1KE0pe3JldHVybiBNWzBdWzBdKk1bMV1bMV0qTVsyXVsyXStNWzFdWzBdKk1bMl1bMV0qTVswXVsyXStNWzJdWzBdKk1bMF1bMV0qTVsxXVsyXS1NWzBdWzJdKk1bMV1bMV0qTVsyXVswXS1N''@;'; + put 'put ''WzFdWzJdKk1bMl1bMV0qTVswXVswXS1NWzJdWzJdKk1bMF1bMV0qTVsxXVswXX1mdW5jdGlvbiBDKE0pe3ZhciB4PVYoTSk7cmV0dXJuW01bMF0veCxNWzFdL3gsTVsyXS94XX1mdW5jdGlvbiBWKE0pe3JldHVybiBNYXRoLnNxcnQoTVswXSpNWzBdK01bMV0qTVsxXStNWzJdKk1bMl0pfWZ1''@;'; + put 'put ''bmN0aW9uIFMoTSx4LEUsdyl7cmV0dXJuW0UqTVswXSt3KnhbMF0sRSpNWzFdK3cqeFsxXSxFKk1bMl0rdyp4WzJdXX1yZXR1cm4gZnVuY3Rpb24gYihNKXt2YXIgeD1bTS5zbGljZSgwLDQpLE0uc2xpY2UoNCw4KSxNLnNsaWNlKDgsMTIpLE0uc2xpY2UoMTIsMTYpXTtpZigxIT09eFszXVsz''@;'; + put 'put ''XSlyZXR1cm4gbnVsbDtmb3IodmFyIEU9W10sdz0wO3c8NDt3KyspRS5wdXNoKHhbd10uc2xpY2UoKSk7Zm9yKHc9MDt3PDM7dysrKUVbd11bM109MDtpZigwPT09dShFKSlyZXR1cm4gbnVsbDt2YXIgTixJPVtdO3hbMF1bM118fHhbMV1bM118fHhbMl1bM10/KEkucHVzaCh4WzBdWzNdKSxJ''@;'; + put 'put ''LnB1c2goeFsxXVszXSksSS5wdXNoKHhbMl1bM10pLEkucHVzaCh4WzNdWzNdKSxOPWZ1bmN0aW9uIEgoTSx4KXtmb3IodmFyIEU9W10sdz0wO3c8NDt3Kyspe2Zvcih2YXIgTj0wLEk9MDtJPDQ7SSsrKU4rPU1bSV0qeFtJXVt3XTtFLnB1c2goTil9cmV0dXJuIEV9KEksZnVuY3Rpb24gdihN''@;'; + put 'put ''KXtyZXR1cm5bW01bMF1bMF0sTVsxXVswXSxNWzJdWzBdLE1bM11bMF1dLFtNWzBdWzFdLE1bMV1bMV0sTVsyXVsxXSxNWzNdWzFdXSxbTVswXVsyXSxNWzFdWzJdLE1bMl1bMl0sTVszXVsyXV0sW01bMF1bM10sTVsxXVszXSxNWzJdWzNdLE1bM11bM11dXX0oZnVuY3Rpb24gcChNKXtmb3Io''@;'; + put 'put ''dmFyIHg9MS91KE0pLEU9TVswXVswXSx3PU1bMF1bMV0sTj1NWzBdWzJdLEk9TVsxXVswXSxXPU1bMV1bMV0sTz1NWzFdWzJdLEI9TVsyXVswXSxSPU1bMl1bMV0sbDE9TVsyXVsyXSxhMT1bWyhXKmwxLU8qUikqeCwoTipSLXcqbDEpKngsKHcqTy1OKlcpKngsMF0sWyhPKkItSSpsMSkqeCwo''@;'; + put 'put ''RSpsMS1OKkIpKngsKE4qSS1FKk8pKngsMF0sWyhJKlItVypCKSp4LChCKnctRSpSKSp4LChFKlctdypJKSp4LDBdXSxoMT1bXSx1MT0wO3UxPDM7dTErKyl7Zm9yKHZhciBwMT0wLHYxPTA7djE8Mzt2MSsrKXAxKz1NWzNdW3YxXSphMVt2MV1bdTFdO2gxLnB1c2gocDEpfXJldHVybiBoMS5w''@;'; + put 'put ''dXNoKDEpLGExLnB1c2goaDEpLGExfShFKSkpKTpOPVswLDAsMCwxXTt2YXIgVz14WzNdLnNsaWNlKDAsMyksTz1bXTtPLnB1c2goeFswXS5zbGljZSgwLDMpKTt2YXIgQj1bXTtCLnB1c2goVihPWzBdKSksT1swXT1DKE9bMF0pO3ZhciBSPVtdO08ucHVzaCh4WzFdLnNsaWNlKDAsMykpLFIu''@;'; + put 'put ''cHVzaChyKE9bMF0sT1sxXSkpLE9bMV09UyhPWzFdLE9bMF0sMSwtUlswXSksQi5wdXNoKFYoT1sxXSkpLE9bMV09QyhPWzFdKSxSWzBdLz1CWzFdLE8ucHVzaCh4WzJdLnNsaWNlKDAsMykpLFIucHVzaChyKE9bMF0sT1syXSkpLE9bMl09UyhPWzJdLE9bMF0sMSwtUlsxXSksUi5wdXNoKHIo''@;'; + put 'put ''T1sxXSxPWzJdKSksT1syXT1TKE9bMl0sT1sxXSwxLC1SWzJdKSxCLnB1c2goVihPWzJdKSksT1syXT1DKE9bMl0pLFJbMV0vPUJbMl0sUlsyXS89QlsyXTt2YXIgbDE9ZnVuY3Rpb24gXyhNLHgpe3JldHVybltNWzFdKnhbMl0tTVsyXSp4WzFdLE1bMl0qeFswXS1NWzBdKnhbMl0sTVswXSp4''@;'; + put 'put ''WzFdLU1bMV0qeFswXV19KE9bMV0sT1syXSk7aWYocihPWzBdLGwxKTwwKWZvcih3PTA7dzwzO3crKylCW3ddKj0tMSxPW3ddWzBdKj0tMSxPW3ddWzFdKj0tMSxPW3ddWzJdKj0tMTt2YXIgYTEsaDEsdTE9T1swXVswXStPWzFdWzFdK09bMl1bMl0rMTtyZXR1cm4gdTE+MWUtND8oYTE9LjUv''@;'; + put 'put ''TWF0aC5zcXJ0KHUxKSxoMT1bKE9bMl1bMV0tT1sxXVsyXSkqYTEsKE9bMF1bMl0tT1syXVswXSkqYTEsKE9bMV1bMF0tT1swXVsxXSkqYTEsLjI1L2ExXSk6T1swXVswXT5PWzFdWzFdJiZPWzBdWzBdPk9bMl1bMl0/aDE9Wy4yNSooYTE9MipNYXRoLnNxcnQoMStPWzBdWzBdLU9bMV1bMV0t''@;'; + put 'put ''T1syXVsyXSkpLChPWzBdWzFdK09bMV1bMF0pL2ExLChPWzBdWzJdK09bMl1bMF0pL2ExLChPWzJdWzFdLU9bMV1bMl0pL2ExXTpPWzFdWzFdPk9bMl1bMl0/KGExPTIqTWF0aC5zcXJ0KDErT1sxXVsxXS1PWzBdWzBdLU9bMl1bMl0pLGgxPVsoT1swXVsxXStPWzFdWzBdKS9hMSwuMjUqYTEs''@;'; + put 'put ''KE9bMV1bMl0rT1syXVsxXSkvYTEsKE9bMF1bMl0tT1syXVswXSkvYTFdKTooYTE9MipNYXRoLnNxcnQoMStPWzJdWzJdLU9bMF1bMF0tT1sxXVsxXSksaDE9WyhPWzBdWzJdK09bMl1bMF0pL2ExLChPWzFdWzJdK09bMl1bMV0pL2ExLC4yNSphMSwoT1sxXVswXS1PWzBdWzFdKS9hMV0pLFtX''@;'; + put 'put ''LEIsUixoMSxOXX19KCk7ZS5kb3Q9cixlLm1ha2VNYXRyaXhEZWNvbXBvc2l0aW9uPWZ1bmN0aW9uIGYodSl7cmV0dXJuW2coaCh1KSldfSxlLnRyYW5zZm9ybUxpc3RUb01hdHJpeD1ofShGMSksZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbCh2LEgpe3ZhciBDPXYuZXhlYyhIKTtpZihDKXJldHVy''@;'; + put 'put ''bltDPXYuaWdub3JlQ2FzZT9DWzBdLnRvTG93ZXJDYXNlKCk6Q1swXSxILnN1YnN0cihDLmxlbmd0aCldfWZ1bmN0aW9uIHIodixIKXt2YXIgQz12KEg9SC5yZXBsYWNlKC9eXHMqLywiIikpO2lmKEMpcmV0dXJuW0NbMF0sQ1sxXS5yZXBsYWNlKC9eXHMqLywiIildfWZ1bmN0aW9uIHUodixI''@;'; + put 'put ''LEMsVixTKXtmb3IodmFyIF89W10sYj1bXSxNPVtdLHg9ZnVuY3Rpb24gbyh2LEgpe2Zvcih2YXIgQz12LFY9SDtDJiZWOylDPlY/QyU9VjpWJT1DO3JldHVybiB2KkgvKEMrVil9KFYubGVuZ3RoLFMubGVuZ3RoKSxFPTA7RTx4O0UrKyl7dmFyIHc9SChWW0UlVi5sZW5ndGhdLFNbRSVTLmxl''@;'; + put 'put ''bmd0aF0pO2lmKCF3KXJldHVybjtfLnB1c2god1swXSksYi5wdXNoKHdbMV0pLE0ucHVzaCh3WzJdKX1yZXR1cm5bXyxiLGZ1bmN0aW9uKE4pe3ZhciBJPU4ubWFwKGZ1bmN0aW9uKFcsTyl7cmV0dXJuIE1bT10oVyl9KS5qb2luKEMpO3JldHVybiB2P3YoSSk6SX1dfWUuY29uc3VtZVRva2Vu''@;'; + put 'put ''PWwsZS5jb25zdW1lVHJpbW1lZD1yLGUuY29uc3VtZVJlcGVhdGVkPWZ1bmN0aW9uIGEodixILEMpe3Y9ci5iaW5kKG51bGwsdik7Zm9yKHZhciBWPVtdOzspe3ZhciBTPXYoQyk7aWYoIVMpcmV0dXJuW1YsQ107aWYoVi5wdXNoKFNbMF0pLCEoUz1sKEgsQz1TWzFdKSl8fCIiPT1TWzFdKXJl''@;'; + put 'put ''dHVybltWLENdO0M9U1sxXX19LGUuY29uc3VtZVBhcmVudGhlc2lzZWQ9ZnVuY3Rpb24gYyh2LEgpe2Zvcih2YXIgQz0wLFY9MDtWPEgubGVuZ3RoJiYoIS9cc3wsLy50ZXN0KEhbVl0pfHwwIT1DKTtWKyspaWYoIigiPT1IW1ZdKUMrKztlbHNlIGlmKCIpIj09SFtWXSYmKDA9PS0tQyYmVisr''@;'; + put 'put ''LEM8PTApKWJyZWFrO3ZhciBTPXYoSC5zdWJzdHIoMCxWKSk7cmV0dXJuIG51bGw9PVM/dm9pZCAwOltTLEguc3Vic3RyKFYpXX0sZS5pZ25vcmU9ZnVuY3Rpb24gaCh2KXtyZXR1cm4gZnVuY3Rpb24oSCl7dmFyIEM9dihIKTtyZXR1cm4gQyYmKENbMF09dm9pZCAwKSxDfX0sZS5vcHRpb25h''@;'; + put 'put ''bD1mdW5jdGlvbiBmKHYsSCl7cmV0dXJuIGZ1bmN0aW9uKEMpe3JldHVybiB2KEMpfHxbSCxDXX19LGUuY29uc3VtZUxpc3Q9ZnVuY3Rpb24gZyh2LEgpe2Zvcih2YXIgQz1bXSxWPTA7Vjx2Lmxlbmd0aDtWKyspe3ZhciBTPWUuY29uc3VtZVRyaW1tZWQodltWXSxIKTtpZighU3x8IiI9PVNb''@;'; + put 'put ''MF0pcmV0dXJuO3ZvaWQgMCE9PVNbMF0mJkMucHVzaChTWzBdKSxIPVNbMV19aWYoIiI9PUgpcmV0dXJuIEN9LGUubWVyZ2VOZXN0ZWRSZXBlYXRlZD11LmJpbmQobnVsbCxudWxsKSxlLm1lcmdlV3JhcHBlZE5lc3RlZFJlcGVhdGVkPXUsZS5tZXJnZUxpc3Q9ZnVuY3Rpb24gcCh2LEgsQyl7''@;'; + put 'put ''Zm9yKHZhciBWPVtdLFM9W10sXz1bXSxiPTAsTT0wO008Qy5sZW5ndGg7TSsrKWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBDW01dKXt2YXIgeD1DW01dKHZbYl0sSFtiKytdKTtWLnB1c2goeFswXSksUy5wdXNoKHhbMV0pLF8ucHVzaCh4WzJdKX1lbHNlIWZ1bmN0aW9uKEUpe1YucHVzaCghMSks''@;'; + put 'put ''Uy5wdXNoKCExKSxfLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gQ1tFXX0pfShNKTtyZXR1cm5bVixTLGZ1bmN0aW9uKEUpe2Zvcih2YXIgdz0iIixOPTA7TjxFLmxlbmd0aDtOKyspdys9X1tOXShFW05dKTtyZXR1cm4gd31dfX0oRjEpLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGwoaCl7dmFyIGc9''@;'; + put 'put ''e2luc2V0OiExLGxlbmd0aHM6W10sY29sb3I6bnVsbH0sdT1lLmNvbnN1bWVSZXBlYXRlZChmdW5jdGlvbiBmKHApe3ZhciB2PWUuY29uc3VtZVRva2VuKC9eaW5zZXQvaSxwKTtyZXR1cm4gdj8oZy5pbnNldD0hMCx2KToodj1lLmNvbnN1bWVMZW5ndGhPclBlcmNlbnQocCkpPyhnLmxlbmd0''@;'; + put 'put ''aHMucHVzaCh2WzBdKSx2KToodj1lLmNvbnN1bWVDb2xvcihwKSk/KGcuY29sb3I9dlswXSx2KTp2b2lkIDB9LC9eLyxoKTtpZih1JiZ1WzBdLmxlbmd0aClyZXR1cm5bZyx1WzFdXX12YXIgbz1mdW5jdGlvbiBjKGgsZixnLHUpe2Z1bmN0aW9uIHAoXyl7cmV0dXJue2luc2V0Ol8sY29sb3I6''@;'; + put 'put ''WzAsMCwwLDBdLGxlbmd0aHM6W3tweDowfSx7cHg6MH0se3B4OjB9LHtweDowfV19fWZvcih2YXIgdj1bXSxIPVtdLEM9MDtDPGcubGVuZ3RofHxDPHUubGVuZ3RoO0MrKyl7dmFyIFY9Z1tDXXx8cCh1W0NdLmluc2V0KSxTPXVbQ118fHAoZ1tDXS5pbnNldCk7di5wdXNoKFYpLEgucHVzaChT''@;'; + put 'put ''KX1yZXR1cm4gZS5tZXJnZU5lc3RlZFJlcGVhdGVkKGgsZix2LEgpfS5iaW5kKG51bGwsZnVuY3Rpb24gYShoLGYpe2Zvcig7aC5sZW5ndGhzLmxlbmd0aDxNYXRoLm1heChoLmxlbmd0aHMubGVuZ3RoLGYubGVuZ3Rocy5sZW5ndGgpOyloLmxlbmd0aHMucHVzaCh7cHg6MH0pO2Zvcig7Zi5s''@;'; + put 'put ''ZW5ndGhzLmxlbmd0aDxNYXRoLm1heChoLmxlbmd0aHMubGVuZ3RoLGYubGVuZ3Rocy5sZW5ndGgpOylmLmxlbmd0aHMucHVzaCh7cHg6MH0pO2lmKGguaW5zZXQ9PWYuaW5zZXQmJiEhaC5jb2xvcj09ISFmLmNvbG9yKXtmb3IodmFyIGcsdT1bXSxwPVtbXSwwXSx2PVtbXSwwXSxIPTA7SDxo''@;'; + put 'put ''Lmxlbmd0aHMubGVuZ3RoO0grKyl7dmFyIEM9ZS5tZXJnZURpbWVuc2lvbnMoaC5sZW5ndGhzW0hdLGYubGVuZ3Roc1tIXSwyPT1IKTtwWzBdLnB1c2goQ1swXSksdlswXS5wdXNoKENbMV0pLHUucHVzaChDWzJdKX1pZihoLmNvbG9yJiZmLmNvbG9yKXt2YXIgVj1lLm1lcmdlQ29sb3JzKGgu''@;'; + put 'put ''Y29sb3IsZi5jb2xvcik7cFsxXT1WWzBdLHZbMV09VlsxXSxnPVZbMl19cmV0dXJuW3AsdixmdW5jdGlvbihTKXtmb3IodmFyIF89aC5pbnNldD8iaW5zZXQgIjoiICIsYj0wO2I8dS5sZW5ndGg7YisrKV8rPXVbYl0oU1swXVtiXSkrIiAiO3JldHVybiBnJiYoXys9ZyhTWzFdKSksX31dfX0s''@;'; + put 'put ''IiwgIik7ZS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihmdW5jdGlvbiByKGgpe3ZhciBmPWUuY29uc3VtZVJlcGVhdGVkKGwsL14sLyxoKTtpZihmJiYiIj09ZlsxXSlyZXR1cm4gZlswXX0sbyxbImJveC1zaGFkb3ciLCJ0ZXh0LXNoYWRvdyJdKX0oRjEpLGZ1bmN0aW9uKGUsbCl7ZnVuY3Rpb24g''@;'; + put 'put ''cihIKXtyZXR1cm4gSC50b0ZpeGVkKDMpLnJlcGxhY2UoLzArJC8sIiIpLnJlcGxhY2UoL1wuJC8sIiIpfWZ1bmN0aW9uIGEoSCxDLFYpe3JldHVybiBNYXRoLm1pbihDLE1hdGgubWF4KEgsVikpfWZ1bmN0aW9uIGMoSCl7aWYoL15ccypbLStdPyhcZCpcLik/XGQrXHMqJC8udGVzdChIKSly''@;'; + put 'put ''ZXR1cm4gTnVtYmVyKEgpfWZ1bmN0aW9uIGcoSCxDKXtyZXR1cm4gZnVuY3Rpb24oVixTKXtyZXR1cm5bVixTLGZ1bmN0aW9uKF8pe3JldHVybiByKGEoSCxDLF8pKX1dfX1mdW5jdGlvbiB1KEgpe3ZhciBDPUgudHJpbSgpLnNwbGl0KC9ccypbXHMsXVxzKi8pO2lmKDAhPT1DLmxlbmd0aCl7''@;'; + put 'put ''Zm9yKHZhciBWPVtdLFM9MDtTPEMubGVuZ3RoO1MrKyl7dmFyIF89YyhDW1NdKTtpZih2b2lkIDA9PT1fKXJldHVybjtWLnB1c2goXyl9cmV0dXJuIFZ9fWUuY2xhbXA9YSxlLmFkZFByb3BlcnRpZXNIYW5kbGVyKHUsZnVuY3Rpb24gcChILEMpe2lmKEgubGVuZ3RoPT1DLmxlbmd0aClyZXR1''@;'; + put 'put ''cm5bSCxDLGZ1bmN0aW9uKFYpe3JldHVybiBWLm1hcChyKS5qb2luKCIgIil9XX0sWyJzdHJva2UtZGFzaGFycmF5Il0pLGUuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxnKDAsMS8wKSxbImJvcmRlci1pbWFnZS13aWR0aCIsImxpbmUtaGVpZ2h0Il0pLGUuYWRkUHJvcGVydGllc0hhbmRsZXIo''@;'; + put 'put ''YyxnKDAsMSksWyJvcGFjaXR5Iiwic2hhcGUtaW1hZ2UtdGhyZXNob2xkIl0pLGUuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxmdW5jdGlvbiBoKEgsQyl7aWYoMCE9SClyZXR1cm4gZygwLDEvMCkoSCxDKX0sWyJmbGV4LWdyb3ciLCJmbGV4LXNocmluayJdKSxlLmFkZFByb3BlcnRpZXNIYW5k''@;'; + put 'put ''bGVyKGMsZnVuY3Rpb24gZihILEMpe3JldHVybltILEMsZnVuY3Rpb24oVil7cmV0dXJuIE1hdGgucm91bmQoYSgxLDEvMCxWKSl9XX0sWyJvcnBoYW5zIiwid2lkb3dzIl0pLGUuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxmdW5jdGlvbiB2KEgsQyl7cmV0dXJuW0gsQyxNYXRoLnJvdW5kXX0s''@;'; + put 'put ''WyJ6LWluZGV4Il0pLGUucGFyc2VOdW1iZXI9YyxlLnBhcnNlTnVtYmVyTGlzdD11LGUubWVyZ2VOdW1iZXJzPWZ1bmN0aW9uIG8oSCxDKXtyZXR1cm5bSCxDLHJdfSxlLm51bWJlclRvU3RyaW5nPXJ9KEYxKSxmdW5jdGlvbihlLGwpe2UuYWRkUHJvcGVydGllc0hhbmRsZXIoU3RyaW5nLGZ1''@;'; + put 'put ''bmN0aW9uIHIoYSxjKXtpZigidmlzaWJsZSI9PWF8fCJ2aXNpYmxlIj09YylyZXR1cm5bMCwxLGZ1bmN0aW9uKG8pe3JldHVybiBvPD0wP2E6bz49MT9jOiJ2aXNpYmxlIn1dfSxbInZpc2liaWxpdHkiXSl9KEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIoaCl7aD1oLnRyaW0oKSxvLmZp''@;'; + put 'put ''bGxTdHlsZT0iIzAwMCIsby5maWxsU3R5bGU9aDt2YXIgZj1vLmZpbGxTdHlsZTtpZihvLmZpbGxTdHlsZT0iI2ZmZiIsby5maWxsU3R5bGU9aCxmPT1vLmZpbGxTdHlsZSl7by5maWxsUmVjdCgwLDAsMSwxKTt2YXIgZz1vLmdldEltYWdlRGF0YSgwLDAsMSwxKS5kYXRhO28uY2xlYXJSZWN0''@;'; + put 'put ''KDAsMCwxLDEpO3ZhciB1PWdbM10vMjU1O3JldHVybltnWzBdKnUsZ1sxXSp1LGdbMl0qdSx1XX19ZnVuY3Rpb24gYShoLGYpe3JldHVybltoLGYsZnVuY3Rpb24oZyl7aWYoZ1szXSlmb3IodmFyIHA9MDtwPDM7cCsrKWdbcF09TWF0aC5yb3VuZChNYXRoLm1heCgwLE1hdGgubWluKDI1NSxn''@;'; + put 'put ''W3BdL2dbM10pKSk7cmV0dXJuIGdbM109ZS5udW1iZXJUb1N0cmluZyhlLmNsYW1wKDAsMSxnWzNdKSksInJnYmEoIitnLmpvaW4oIiwiKSsiKSJ9XX12YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJjYW52YXMiKTtjLndpZHRo''@;'; + put 'put ''PWMuaGVpZ2h0PTE7dmFyIG89Yy5nZXRDb250ZXh0KCIyZCIpO2UuYWRkUHJvcGVydGllc0hhbmRsZXIocixhLFsiYmFja2dyb3VuZC1jb2xvciIsImJvcmRlci1ib3R0b20tY29sb3IiLCJib3JkZXItbGVmdC1jb2xvciIsImJvcmRlci1yaWdodC1jb2xvciIsImJvcmRlci10b3AtY29sb3Ii''@;'; + put 'put ''LCJjb2xvciIsImZpbGwiLCJmbG9vZC1jb2xvciIsImxpZ2h0aW5nLWNvbG9yIiwib3V0bGluZS1jb2xvciIsInN0b3AtY29sb3IiLCJzdHJva2UiLCJ0ZXh0LWRlY29yYXRpb24tY29sb3IiXSksZS5jb25zdW1lQ29sb3I9ZS5jb25zdW1lUGFyZW50aGVzaXNlZC5iaW5kKG51bGwsciksZS5t''@;'; + put 'put ''ZXJnZUNvbG9ycz1hfShGMSksZnVuY3Rpb24oZSxsKXtmdW5jdGlvbiByKF8pe2Z1bmN0aW9uIGIoKXt2YXIgVz1JLmV4ZWMoXyk7Tj1XP1dbMF06dm9pZCAwfWZ1bmN0aW9uIHgoKXtpZigiKCIhPT1OKXJldHVybiBmdW5jdGlvbiBNKCl7dmFyIFc9TnVtYmVyKE4pO3JldHVybiBiKCksV30o''@;'; + put 'put ''KTtiKCk7dmFyIFc9dygpO3JldHVybiIpIiE9PU4/TmFOOihiKCksVyl9ZnVuY3Rpb24gRSgpe2Zvcih2YXIgVz14KCk7IioiPT09Tnx8Ii8iPT09Tjspe3ZhciBPPU47YigpO3ZhciBCPXgoKTsiKiI9PT1PP1cqPUI6Vy89Qn1yZXR1cm4gV31mdW5jdGlvbiB3KCl7Zm9yKHZhciBXPUUoKTsi''@;'; + put 'put ''KyI9PT1OfHwiLSI9PT1OOyl7dmFyIE89TjtiKCk7dmFyIEI9RSgpOyIrIj09PU8/Vys9QjpXLT1CfXJldHVybiBXfXZhciBOLEk9LyhbXCtcLVx3XC5dK3xbXChcKVwqXC9dKS9nO3JldHVybiBiKCksdygpfWZ1bmN0aW9uIGEoXyxiKXtpZigiMCI9PShiPWIudHJpbSgpLnRvTG93ZXJDYXNl''@;'; + put 'put ''KCkpJiYicHgiLnNlYXJjaChfKT49MClyZXR1cm57cHg6MH07aWYoL15bXihdKiR8XmNhbGMvLnRlc3QoYikpe2I9Yi5yZXBsYWNlKC9jYWxjXCgvZywiKCIpO3ZhciBNPXt9O2I9Yi5yZXBsYWNlKF8sZnVuY3Rpb24oTyl7cmV0dXJuIE1bT109bnVsbCwiVSIrT30pO2Zvcih2YXIgeD0iVSgi''@;'; + put 'put ''K18uc291cmNlKyIpIixFPWIucmVwbGFjZSgvWy0rXT8oXGQqXC4pP1xkKyhbRWVdWy0rXT9cZCspPy9nLCJOIikucmVwbGFjZShuZXcgUmVnRXhwKCJOIit4LCJnIiksIkQiKS5yZXBsYWNlKC9cc1srLV1ccy9nLCJPIikucmVwbGFjZSgvXHMvZywiIiksdz1bL05cKihEKS9nLC8oTnxEKVsq''@;'; + put 'put ''XC9dTi9nLC8oTnxEKU9cMS9nLC9cKChOfEQpXCkvZ10sTj0wO048dy5sZW5ndGg7KXdbTl0udGVzdChFKT8oRT1FLnJlcGxhY2Uod1tOXSwiJDEiKSxOPTApOk4rKztpZigiRCI9PUUpe2Zvcih2YXIgSSBpbiBNKXt2YXIgVz1yKGIucmVwbGFjZShuZXcgUmVnRXhwKCJVIitJLCJnIiksIiIp''@;'; + put 'put ''LnJlcGxhY2UobmV3IFJlZ0V4cCh4LCJnIiksIiowIikpO2lmKCFpc0Zpbml0ZShXKSlyZXR1cm47TVtJXT1XfXJldHVybiBNfX19ZnVuY3Rpb24gYyhfLGIpe3JldHVybiBvKF8sYiwhMCl9ZnVuY3Rpb24gbyhfLGIsTSl7dmFyIHgsRT1bXTtmb3IoeCBpbiBfKUUucHVzaCh4KTtmb3IoeCBp''@;'; + put 'put ''biBiKUUuaW5kZXhPZih4KTwwJiZFLnB1c2goeCk7cmV0dXJuIF89RS5tYXAoZnVuY3Rpb24odyl7cmV0dXJuIF9bd118fDB9KSxiPUUubWFwKGZ1bmN0aW9uKHcpe3JldHVybiBiW3ddfHwwfSksW18sYixmdW5jdGlvbih3KXt2YXIgTj13Lm1hcChmdW5jdGlvbihJLFcpe3JldHVybiAxPT13''@;'; + put 'put ''Lmxlbmd0aCYmTSYmKEk9TWF0aC5tYXgoSSwwKSksZS5udW1iZXJUb1N0cmluZyhJKStFW1ddfSkuam9pbigiICsgIik7cmV0dXJuIHcubGVuZ3RoPjE/ImNhbGMoIitOKyIpIjpOfV19dmFyIGg9InB4fGVtfGV4fGNofHJlbXx2d3x2aHx2bWlufHZtYXh8Y218bW18aW58cHR8cGMiLGY9YS5i''@;'; + put 'put ''aW5kKG51bGwsbmV3IFJlZ0V4cChoLCJnIikpLGc9YS5iaW5kKG51bGwsbmV3IFJlZ0V4cChoKyJ8JSIsImciKSksdT1hLmJpbmQobnVsbCwvZGVnfHJhZHxncmFkfHR1cm4vZyk7ZS5wYXJzZUxlbmd0aD1mLGUucGFyc2VMZW5ndGhPclBlcmNlbnQ9ZyxlLmNvbnN1bWVMZW5ndGhPclBlcmNl''@;'; + put 'put ''bnQ9ZS5jb25zdW1lUGFyZW50aGVzaXNlZC5iaW5kKG51bGwsZyksZS5wYXJzZUFuZ2xlPXUsZS5tZXJnZURpbWVuc2lvbnM9bzt2YXIgcD1lLmNvbnN1bWVQYXJlbnRoZXNpc2VkLmJpbmQobnVsbCxmKSx2PWUuY29uc3VtZVJlcGVhdGVkLmJpbmQodm9pZCAwLHAsL14vKSxIPWUuY29uc3Vt''@;'; + put 'put ''ZVJlcGVhdGVkLmJpbmQodm9pZCAwLHYsL14sLyk7ZS5jb25zdW1lU2l6ZVBhaXJMaXN0PUg7dmFyIFY9ZS5tZXJnZU5lc3RlZFJlcGVhdGVkLmJpbmQodm9pZCAwLGMsIiAiKSxTPWUubWVyZ2VOZXN0ZWRSZXBlYXRlZC5iaW5kKHZvaWQgMCxWLCIsIik7ZS5tZXJnZU5vbk5lZ2F0aXZlU2l6''@;'; + put 'put ''ZVBhaXI9VixlLmFkZFByb3BlcnRpZXNIYW5kbGVyKGZ1bmN0aW9uKF8pe3ZhciBiPUgoXyk7aWYoYiYmIiI9PWJbMV0pcmV0dXJuIGJbMF19LFMsWyJiYWNrZ3JvdW5kLXNpemUiXSksZS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihnLGMsWyJib3JkZXItYm90dG9tLXdpZHRoIiwiYm9yZGVyLWlt''@;'; + put 'put ''YWdlLXdpZHRoIiwiYm9yZGVyLWxlZnQtd2lkdGgiLCJib3JkZXItcmlnaHQtd2lkdGgiLCJib3JkZXItdG9wLXdpZHRoIiwiZmxleC1iYXNpcyIsImZvbnQtc2l6ZSIsImhlaWdodCIsImxpbmUtaGVpZ2h0IiwibWF4LWhlaWdodCIsIm1heC13aWR0aCIsIm91dGxpbmUtd2lkdGgiLCJ3aWR0''@;'; + put 'put ''aCJdKSxlLmFkZFByb3BlcnRpZXNIYW5kbGVyKGcsbyxbImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiLCJib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyIsImJvcmRlci10b3AtbGVmdC1yYWRpdXMiLCJib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyIsImJvdHRvbSIsImxlZnQiLCJsZXR0ZXIt''@;'; + put 'put ''c3BhY2luZyIsIm1hcmdpbi1ib3R0b20iLCJtYXJnaW4tbGVmdCIsIm1hcmdpbi1yaWdodCIsIm1hcmdpbi10b3AiLCJtaW4taGVpZ2h0IiwibWluLXdpZHRoIiwib3V0bGluZS1vZmZzZXQiLCJwYWRkaW5nLWJvdHRvbSIsInBhZGRpbmctbGVmdCIsInBhZGRpbmctcmlnaHQiLCJwYWRkaW5n''@;'; + put 'put ''LXRvcCIsInBlcnNwZWN0aXZlIiwicmlnaHQiLCJzaGFwZS1tYXJnaW4iLCJzdHJva2UtZGFzaG9mZnNldCIsInRleHQtaW5kZW50IiwidG9wIiwidmVydGljYWwtYWxpZ24iLCJ3b3JkLXNwYWNpbmciXSl9KEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIoZil7cmV0dXJuIGUuY29uc3Vt''@;'; + put 'put ''ZUxlbmd0aE9yUGVyY2VudChmKXx8ZS5jb25zdW1lVG9rZW4oL15hdXRvLyxmKX1mdW5jdGlvbiBhKGYpe3ZhciBnPWUuY29uc3VtZUxpc3QoW2UuaWdub3JlKGUuY29uc3VtZVRva2VuLmJpbmQobnVsbCwvXnJlY3QvKSksZS5pZ25vcmUoZS5jb25zdW1lVG9rZW4uYmluZChudWxsLC9eXCgv''@;'; + put 'put ''KSksZS5jb25zdW1lUmVwZWF0ZWQuYmluZChudWxsLHIsL14sLyksZS5pZ25vcmUoZS5jb25zdW1lVG9rZW4uYmluZChudWxsLC9eXCkvKSldLGYpO2lmKGcmJjQ9PWdbMF0ubGVuZ3RoKXJldHVybiBnWzBdfXZhciBoPWUubWVyZ2VXcmFwcGVkTmVzdGVkUmVwZWF0ZWQuYmluZChudWxsLGZ1''@;'; + put 'put ''bmN0aW9uIG8oZil7cmV0dXJuInJlY3QoIitmKyIpIn0sZnVuY3Rpb24gYyhmLGcpe3JldHVybiJhdXRvIj09Znx8ImF1dG8iPT1nP1shMCwhMSxmdW5jdGlvbih1KXt2YXIgcD11P2Y6ZztpZigiYXV0byI9PXApcmV0dXJuImF1dG8iO3ZhciB2PWUubWVyZ2VEaW1lbnNpb25zKHAscCk7cmV0''@;'; + put 'put ''dXJuIHZbMl0odlswXSl9XTplLm1lcmdlRGltZW5zaW9ucyhmLGcpfSwiLCAiKTtlLnBhcnNlQm94PWEsZS5tZXJnZUJveGVzPWgsZS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihhLGgsWyJjbGlwIl0pfShGMSksZnVuY3Rpb24oZSxsKXtmdW5jdGlvbiByKFYpe3JldHVybiBmdW5jdGlvbihTKXt2''@;'; + put 'put ''YXIgXz0wO3JldHVybiBWLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYj09PXA/U1tfKytdOmJ9KX19ZnVuY3Rpb24gYShWKXtyZXR1cm4gVn1mdW5jdGlvbiBjKFYpe2lmKCJub25lIj09KFY9Vi50b0xvd2VyQ2FzZSgpLnRyaW0oKSkpcmV0dXJuW107Zm9yKHZhciBTLF89L1xzKihcdyspXCgo''@;'; + put 'put ''W14pXSopXCkvZyxiPVtdLE09MDtTPV8uZXhlYyhWKTspe2lmKFMuaW5kZXghPU0pcmV0dXJuO009Uy5pbmRleCtTWzBdLmxlbmd0aDt2YXIgeD1TWzFdLEU9Q1t4XTtpZighRSlyZXR1cm47dmFyIHc9U1syXS5zcGxpdCgiLCIpLE49RVswXTtpZihOLmxlbmd0aDx3Lmxlbmd0aClyZXR1cm47''@;'; + put 'put ''Zm9yKHZhciBJPVtdLFc9MDtXPE4ubGVuZ3RoO1crKyl7dmFyIE8sQj13W1ddLFI9TltXXTtpZih2b2lkIDA9PT0oTz1CP3tBOmZ1bmN0aW9uKGwxKXtyZXR1cm4iMCI9PWwxLnRyaW0oKT9IOmUucGFyc2VBbmdsZShsMSl9LE46ZS5wYXJzZU51bWJlcixUOmUucGFyc2VMZW5ndGhPclBlcmNl''@;'; + put 'put ''bnQsTDplLnBhcnNlTGVuZ3RofVtSLnRvVXBwZXJDYXNlKCldKEIpOnthOkgsbjpJWzBdLHQ6dn1bUl0pKXJldHVybjtJLnB1c2goTyl9aWYoYi5wdXNoKHt0OngsZDpJfSksXy5sYXN0SW5kZXg9PVYubGVuZ3RoKXJldHVybiBifX1mdW5jdGlvbiBvKFYpe3JldHVybiBWLnRvRml4ZWQoNiku''@;'; + put 'put ''cmVwbGFjZSgiLjAwMDAwMCIsIiIpfWZ1bmN0aW9uIGgoVixTKXtpZihWLmRlY29tcG9zaXRpb25QYWlyIT09Uyl7Vi5kZWNvbXBvc2l0aW9uUGFpcj1TO3ZhciBfPWUubWFrZU1hdHJpeERlY29tcG9zaXRpb24oVil9aWYoUy5kZWNvbXBvc2l0aW9uUGFpciE9PVYpe1MuZGVjb21wb3NpdGlv''@;'; + put 'put ''blBhaXI9Vjt2YXIgYj1lLm1ha2VNYXRyaXhEZWNvbXBvc2l0aW9uKFMpfXJldHVybiBudWxsPT1fWzBdfHxudWxsPT1iWzBdP1tbITFdLFshMF0sZnVuY3Rpb24oTSl7cmV0dXJuIE0/U1swXS5kOlZbMF0uZH1dOihfWzBdLnB1c2goMCksYlswXS5wdXNoKDEpLFtfLGIsZnVuY3Rpb24oTSl7''@;'; + put 'put ''dmFyIHg9ZS5xdWF0KF9bMF1bM10sYlswXVszXSxNWzVdKTtyZXR1cm4gZS5jb21wb3NlTWF0cml4KE1bMF0sTVsxXSxNWzJdLHgsTVs0XSkubWFwKG8pLmpvaW4oIiwiKX1dKX1mdW5jdGlvbiBmKFYpe3JldHVybiBWLnJlcGxhY2UoL1t4eV0vLCIiKX1mdW5jdGlvbiBnKFYpe3JldHVybiBW''@;'; + put 'put ''LnJlcGxhY2UoLyh4fHl8enwzZCk/JC8sIjNkIil9dmFyIHA9bnVsbCx2PXtweDowfSxIPXtkZWc6MH0sQz17bWF0cml4OlsiTk5OTk5OIixbcCxwLDAsMCxwLHAsMCwwLDAsMCwxLDAscCxwLDAsMV0sYV0sbWF0cml4M2Q6WyJOTk5OTk5OTk5OTk5OTk5OIixhXSxyb3RhdGU6WyJBIl0scm90''@;'; + put 'put ''YXRleDpbIkEiXSxyb3RhdGV5OlsiQSJdLHJvdGF0ZXo6WyJBIl0scm90YXRlM2Q6WyJOTk5BIl0scGVyc3BlY3RpdmU6WyJMIl0sc2NhbGU6WyJObiIscihbcCxwLDFdKSxhXSxzY2FsZXg6WyJOIixyKFtwLDEsMV0pLHIoW3AsMV0pXSxzY2FsZXk6WyJOIixyKFsxLHAsMV0pLHIoWzEscF0p''@;'; + put 'put ''XSxzY2FsZXo6WyJOIixyKFsxLDEscF0pXSxzY2FsZTNkOlsiTk5OIixhXSxza2V3OlsiQWEiLG51bGwsYV0sc2tld3g6WyJBIixudWxsLHIoW3AsSF0pXSxza2V3eTpbIkEiLG51bGwscihbSCxwXSldLHRyYW5zbGF0ZTpbIlR0IixyKFtwLHAsdl0pLGFdLHRyYW5zbGF0ZXg6WyJUIixyKFtw''@;'; + put 'put ''LHYsdl0pLHIoW3Asdl0pXSx0cmFuc2xhdGV5OlsiVCIscihbdixwLHZdKSxyKFt2LHBdKV0sdHJhbnNsYXRlejpbIkwiLHIoW3YsdixwXSldLHRyYW5zbGF0ZTNkOlsiVFRMIixhXX07ZS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihjLGZ1bmN0aW9uIHUoVixTKXt2YXIgXz1lLm1ha2VNYXRyaXhE''@;'; + put 'put ''ZWNvbXBvc2l0aW9uJiYhMCxiPSExO2lmKCFWLmxlbmd0aHx8IVMubGVuZ3RoKXtWLmxlbmd0aHx8KGI9ITAsVj1TLFM9W10pO2Zvcih2YXIgTT0wO008Vi5sZW5ndGg7TSsrKXt2YXIgRT1WW01dLmQsdz0ic2NhbGUiPT0oeD1WW01dLnQpLnN1YnN0cigwLDUpPzE6MDtTLnB1c2goe3Q6eCxk''@;'; + put 'put ''OkUubWFwKGZ1bmN0aW9uKFEpe2lmKCJudW1iZXIiPT10eXBlb2YgUSlyZXR1cm4gdzt2YXIgczE9e307Zm9yKHZhciBtMSBpbiBRKXMxW20xXT13O3JldHVybiBzMX0pfSl9fXZhciBRLHMxLEk9W10sVz1bXSxPPVtdO2lmKFYubGVuZ3RoIT1TLmxlbmd0aCl7aWYoIV8pcmV0dXJuO0k9WyhC''@;'; + put 'put ''PWgoVixTKSlbMF1dLFc9W0JbMV1dLE89W1sibWF0cml4IixbQlsyXV1dXX1lbHNlIGZvcihNPTA7TTxWLmxlbmd0aDtNKyspe3ZhciB4LFI9VltNXS50LGwxPVNbTV0udCxhMT1WW01dLmQsaDE9U1tNXS5kLHUxPUNbUl0scDE9Q1tsMV07aWYoczE9bDEsInBlcnNwZWN0aXZlIj09KFE9Uikm''@;'; + put 'put ''JiJwZXJzcGVjdGl2ZSI9PXMxfHwoIm1hdHJpeCI9PVF8fCJtYXRyaXgzZCI9PVEpJiYoIm1hdHJpeCI9PXMxfHwibWF0cml4M2QiPT1zMSkpe2lmKCFfKXJldHVybjt2YXIgQj1oKFtWW01dXSxbU1tNXV0pO0kucHVzaChCWzBdKSxXLnB1c2goQlsxXSksTy5wdXNoKFsibWF0cml4IixbQlsy''@;'; + put 'put ''XV1dKX1lbHNle2lmKFI9PWwxKXg9UjtlbHNlIGlmKHUxWzJdJiZwMVsyXSYmZihSKT09ZihsMSkpeD1mKFIpLGExPXUxWzJdKGExKSxoMT1wMVsyXShoMSk7ZWxzZXtpZighdTFbMV18fCFwMVsxXXx8ZyhSKSE9ZyhsMSkpe2lmKCFfKXJldHVybjtJPVsoQj1oKFYsUykpWzBdXSxXPVtCWzFd''@;'; + put 'put ''XSxPPVtbIm1hdHJpeCIsW0JbMl1dXV07YnJlYWt9eD1nKFIpLGExPXUxWzFdKGExKSxoMT1wMVsxXShoMSl9Zm9yKHZhciB2MT1bXSxFMT1bXSxqPVtdLGMxPTA7YzE8YTEubGVuZ3RoO2MxKyspQj0oIm51bWJlciI9PXR5cGVvZiBhMVtjMV0/ZS5tZXJnZU51bWJlcnM6ZS5tZXJnZURpbWVu''@;'; + put 'put ''c2lvbnMpKGExW2MxXSxoMVtjMV0pLHYxW2MxXT1CWzBdLEUxW2MxXT1CWzFdLGoucHVzaChCWzJdKTtJLnB1c2godjEpLFcucHVzaChFMSksTy5wdXNoKFt4LGpdKX19aWYoYil7dmFyIF8xPUk7ST1XLFc9XzF9cmV0dXJuW0ksVyxmdW5jdGlvbihRKXtyZXR1cm4gUS5tYXAoZnVuY3Rpb24o''@;'; + put 'put ''czEsbTEpe3ZhciBiMT1zMS5tYXAoZnVuY3Rpb24oQjEsJCl7cmV0dXJuIE9bbTFdWzFdWyRdKEIxKX0pLmpvaW4oIiwiKTtyZXR1cm4ibWF0cml4Ij09T1ttMV1bMF0mJjE2PT1iMS5zcGxpdCgiLCIpLmxlbmd0aCYmKE9bbTFdWzBdPSJtYXRyaXgzZCIpLE9bbTFdWzBdKyIoIitiMSsiKSJ9''@;'; + put 'put ''KS5qb2luKCIgIil9XX0sWyJ0cmFuc2Zvcm0iXSksZS50cmFuc2Zvcm1Ub1N2Z01hdHJpeD1mdW5jdGlvbihWKXt2YXIgUz1lLnRyYW5zZm9ybUxpc3RUb01hdHJpeChjKFYpKTtyZXR1cm4ibWF0cml4KCIrbyhTWzBdKSsiICIrbyhTWzFdKSsiICIrbyhTWzRdKSsiICIrbyhTWzVdKSsiICIr''@;'; + put 'put ''byhTWzEyXSkrIiAiK28oU1sxM10pKyIpIn19KEYxKSxmdW5jdGlvbihlKXtmdW5jdGlvbiByKGMpe3JldHVybiBjPTEwMCpNYXRoLnJvdW5kKGMvMTAwKSw0MDA9PT0oYz1lLmNsYW1wKDEwMCw5MDAsYykpPyJub3JtYWwiOjcwMD09PWM/ImJvbGQiOlN0cmluZyhjKX1lLmFkZFByb3BlcnRp''@;'; + put 'put ''ZXNIYW5kbGVyKGZ1bmN0aW9uIGwoYyl7dmFyIG89TnVtYmVyKGMpO2lmKCEoaXNOYU4obyl8fG88MTAwfHxvPjkwMHx8byUxMDAhPTApKXJldHVybiBvfSxmdW5jdGlvbiBhKGMsbyl7cmV0dXJuW2MsbyxyXX0sWyJmb250LXdlaWdodCJdKX0oRjEpLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGwo''@;'; + put 'put ''dSl7dmFyIHA9e307Zm9yKHZhciB2IGluIHUpcFt2XT0tdVt2XTtyZXR1cm4gcH1mdW5jdGlvbiByKHUpe3JldHVybiBlLmNvbnN1bWVUb2tlbigvXihsZWZ0fGNlbnRlcnxyaWdodHx0b3B8Ym90dG9tKVxiL2ksdSl8fGUuY29uc3VtZUxlbmd0aE9yUGVyY2VudCh1KX1mdW5jdGlvbiBhKHUs''@;'; + put 'put ''cCl7dmFyIHY9ZS5jb25zdW1lUmVwZWF0ZWQociwvXi8scCk7aWYodiYmIiI9PXZbMV0pe3ZhciBIPXZbMF07aWYoSFswXT1IWzBdfHwiY2VudGVyIixIWzFdPUhbMV18fCJjZW50ZXIiLDM9PXUmJihIWzJdPUhbMl18fHtweDowfSksSC5sZW5ndGg9PXUpe2lmKC90b3B8Ym90dG9tLy50ZXN0''@;'; + put 'put ''KEhbMF0pfHwvbGVmdHxyaWdodC8udGVzdChIWzFdKSl7dmFyIEM9SFswXTtIWzBdPUhbMV0sSFsxXT1DfWlmKC9sZWZ0fHJpZ2h0fGNlbnRlcnxPYmplY3QvLnRlc3QoSFswXSkmJi90b3B8Ym90dG9tfGNlbnRlcnxPYmplY3QvLnRlc3QoSFsxXSkpcmV0dXJuIEgubWFwKGZ1bmN0aW9uKFYp''@;'; + put 'put ''e3JldHVybiJvYmplY3QiPT10eXBlb2YgVj9WOmhbVl19KX19fWZ1bmN0aW9uIGModSl7dmFyIHA9ZS5jb25zdW1lUmVwZWF0ZWQociwvXi8sdSk7aWYocCl7Zm9yKHZhciB2PXBbMF0sSD1beyIlIjo1MH0seyIlIjo1MH1dLEM9MCxWPSExLFM9MDtTPHYubGVuZ3RoO1MrKyl7dmFyIF89dltT''@;'; + put 'put ''XTsic3RyaW5nIj09dHlwZW9mIF8/KFY9L2JvdHRvbXxyaWdodC8udGVzdChfKSxIW0M9e2xlZnQ6MCxyaWdodDowLGNlbnRlcjpDLHRvcDoxLGJvdHRvbToxfVtfXV09aFtfXSwiY2VudGVyIj09XyYmQysrKTooViYmKChfPWwoXykpWyIlIl09KF9bIiUiXXx8MCkrMTAwKSxIW0NdPV8sQysr''@;'; + put 'put ''LFY9ITEpfXJldHVybltILHBbMV1dfX12YXIgaD17bGVmdDp7IiUiOjB9LGNlbnRlcjp7IiUiOjUwfSxyaWdodDp7IiUiOjEwMH0sdG9wOnsiJSI6MH0sYm90dG9tOnsiJSI6MTAwfX0sZj1lLm1lcmdlTmVzdGVkUmVwZWF0ZWQuYmluZChudWxsLGUubWVyZ2VEaW1lbnNpb25zLCIgIik7ZS5h''@;'; + put 'put ''ZGRQcm9wZXJ0aWVzSGFuZGxlcihhLmJpbmQobnVsbCwzKSxmLFsidHJhbnNmb3JtLW9yaWdpbiJdKSxlLmFkZFByb3BlcnRpZXNIYW5kbGVyKGEuYmluZChudWxsLDIpLGYsWyJwZXJzcGVjdGl2ZS1vcmlnaW4iXSksZS5jb25zdW1lUG9zaXRpb249YyxlLm1lcmdlT2Zmc2V0TGlzdD1mO3Zh''@;'; + put 'put ''ciBnPWUubWVyZ2VOZXN0ZWRSZXBlYXRlZC5iaW5kKG51bGwsZiwiLCAiKTtlLmFkZFByb3BlcnRpZXNIYW5kbGVyKGZ1bmN0aW9uIG8odSl7dmFyIHA9ZS5jb25zdW1lUmVwZWF0ZWQoYywvXiwvLHUpO2lmKHAmJiIiPT1wWzFdKXJldHVybiBwWzBdfSxnLFsiYmFja2dyb3VuZC1wb3NpdGlv''@;'; + put 'put ''biIsIm9iamVjdC1wb3NpdGlvbiJdKX0oRjEpLGZ1bmN0aW9uKGUpe3ZhciBhPWUuY29uc3VtZVBhcmVudGhlc2lzZWQuYmluZChudWxsLGUucGFyc2VMZW5ndGhPclBlcmNlbnQpLGM9ZS5jb25zdW1lUmVwZWF0ZWQuYmluZCh2b2lkIDAsYSwvXi8pLG89ZS5tZXJnZU5lc3RlZFJlcGVhdGVk''@;'; + put 'put ''LmJpbmQodm9pZCAwLGUubWVyZ2VEaW1lbnNpb25zLCIgIiksaD1lLm1lcmdlTmVzdGVkUmVwZWF0ZWQuYmluZCh2b2lkIDAsbywiLCIpO2UuYWRkUHJvcGVydGllc0hhbmRsZXIoZnVuY3Rpb24gbChmKXt2YXIgZz1lLmNvbnN1bWVUb2tlbigvXmNpcmNsZS8sZik7aWYoZyYmZ1swXSlyZXR1''@;'; + put 'put ''cm5bImNpcmNsZSJdLmNvbmNhdChlLmNvbnN1bWVMaXN0KFtlLmlnbm9yZShlLmNvbnN1bWVUb2tlbi5iaW5kKHZvaWQgMCwvXlwoLykpLGEsZS5pZ25vcmUoZS5jb25zdW1lVG9rZW4uYmluZCh2b2lkIDAsL15hdC8pKSxlLmNvbnN1bWVQb3NpdGlvbixlLmlnbm9yZShlLmNvbnN1bWVUb2tl''@;'; + put 'put ''bi5iaW5kKHZvaWQgMCwvXlwpLykpXSxnWzFdKSk7dmFyIHU9ZS5jb25zdW1lVG9rZW4oL15lbGxpcHNlLyxmKTtpZih1JiZ1WzBdKXJldHVyblsiZWxsaXBzZSJdLmNvbmNhdChlLmNvbnN1bWVMaXN0KFtlLmlnbm9yZShlLmNvbnN1bWVUb2tlbi5iaW5kKHZvaWQgMCwvXlwoLykpLGMsZS5p''@;'; + put 'put ''Z25vcmUoZS5jb25zdW1lVG9rZW4uYmluZCh2b2lkIDAsL15hdC8pKSxlLmNvbnN1bWVQb3NpdGlvbixlLmlnbm9yZShlLmNvbnN1bWVUb2tlbi5iaW5kKHZvaWQgMCwvXlwpLykpXSx1WzFdKSk7dmFyIHA9ZS5jb25zdW1lVG9rZW4oL15wb2x5Z29uLyxmKTtyZXR1cm4gcCYmcFswXT9bInBv''@;'; + put 'put ''bHlnb24iXS5jb25jYXQoZS5jb25zdW1lTGlzdChbZS5pZ25vcmUoZS5jb25zdW1lVG9rZW4uYmluZCh2b2lkIDAsL15cKC8pKSxlLm9wdGlvbmFsKGUuY29uc3VtZVRva2VuLmJpbmQodm9pZCAwLC9ebm9uemVyb1xzKix8XmV2ZW5vZGRccyosLyksIm5vbnplcm8sIiksZS5jb25zdW1lU2l6''@;'; + put 'put ''ZVBhaXJMaXN0LGUuaWdub3JlKGUuY29uc3VtZVRva2VuLmJpbmQodm9pZCAwLC9eXCkvKSldLHBbMV0pKTp2b2lkIDB9LGZ1bmN0aW9uIHIoZixnKXtpZihmWzBdPT09Z1swXSlyZXR1cm4iY2lyY2xlIj09ZlswXT9lLm1lcmdlTGlzdChmLnNsaWNlKDEpLGcuc2xpY2UoMSksWyJjaXJjbGUo''@;'; + put 'put ''IixlLm1lcmdlRGltZW5zaW9ucywiIGF0ICIsZS5tZXJnZU9mZnNldExpc3QsIikiXSk6ImVsbGlwc2UiPT1mWzBdP2UubWVyZ2VMaXN0KGYuc2xpY2UoMSksZy5zbGljZSgxKSxbImVsbGlwc2UoIixlLm1lcmdlTm9uTmVnYXRpdmVTaXplUGFpciwiIGF0ICIsZS5tZXJnZU9mZnNldExpc3Qs''@;'; + put 'put ''IikiXSk6InBvbHlnb24iPT1mWzBdJiZmWzFdPT1nWzFdP2UubWVyZ2VMaXN0KGYuc2xpY2UoMiksZy5zbGljZSgyKSxbInBvbHlnb24oIixmWzFdLGgsIikiXSk6dm9pZCAwfSxbInNoYXBlLW91dHNpZGUiXSl9KEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIobyxoKXtoLmNvbmNhdChb''@;'; + put 'put ''b10pLmZvckVhY2goZnVuY3Rpb24oZil7ZiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUmJihhW29dPWYpLGNbZl09b30pfXZhciBhPXt9LGM9e307cigidHJhbnNmb3JtIixbIndlYmtpdFRyYW5zZm9ybSIsIm1zVHJhbnNmb3JtIl0pLHIoInRyYW5zZm9ybU9yaWdpbiIsWyJ3''@;'; + put 'put ''ZWJraXRUcmFuc2Zvcm1PcmlnaW4iXSkscigicGVyc3BlY3RpdmUiLFsid2Via2l0UGVyc3BlY3RpdmUiXSkscigicGVyc3BlY3RpdmVPcmlnaW4iLFsid2Via2l0UGVyc3BlY3RpdmVPcmlnaW4iXSksZS5wcm9wZXJ0eU5hbWU9ZnVuY3Rpb24obyl7cmV0dXJuIGFbb118fG99LGUudW5wcmVm''@;'; + put 'put ''aXhlZFByb3BlcnR5TmFtZT1mdW5jdGlvbihvKXtyZXR1cm4gY1tvXXx8b319KEYxKX0oKSxmdW5jdGlvbigpe2lmKHZvaWQgMD09PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLmFuaW1hdGUoW10pLm9uY2FuY2VsKXtpZih3aW5kb3cucGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5v''@;'; + put 'put ''dyl2YXIgaz1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX07ZWxzZSBrPWZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93KCl9O3ZhciBBPWZ1bmN0aW9uKGwscixhKXt0aGlzLnRhcmdldD1sLHRoaXMuY3VycmVudFRpbWU9cix0aGlzLnRpbWVsaW5lVGltZT1hLHRoaXMudHlw''@;'; + put 'put ''ZT0iY2FuY2VsIix0aGlzLmJ1YmJsZXM9ITEsdGhpcy5jYW5jZWxhYmxlPSExLHRoaXMuY3VycmVudFRhcmdldD1sLHRoaXMuZGVmYXVsdFByZXZlbnRlZD0hMSx0aGlzLmV2ZW50UGhhc2U9RXZlbnQuQVRfVEFSR0VULHRoaXMudGltZVN0YW1wPURhdGUubm93KCl9LGU9d2luZG93LkVsZW1l''@;'; + put 'put ''bnQucHJvdG90eXBlLmFuaW1hdGU7d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24obCxyKXt2YXIgYT1lLmNhbGwodGhpcyxsLHIpO2EuX2NhbmNlbEhhbmRsZXJzPVtdLGEub25jYW5jZWw9bnVsbDt2YXIgYz1hLmNhbmNlbDthLmNhbmNlbD1mdW5jdGlvbigpe2Mu''@;'; + put 'put ''Y2FsbCh0aGlzKTt2YXIgZj1uZXcgQSh0aGlzLG51bGwsaygpKSxnPXRoaXMuX2NhbmNlbEhhbmRsZXJzLmNvbmNhdCh0aGlzLm9uY2FuY2VsP1t0aGlzLm9uY2FuY2VsXTpbXSk7c2V0VGltZW91dChmdW5jdGlvbigpe2cuZm9yRWFjaChmdW5jdGlvbih1KXt1LmNhbGwoZi50YXJnZXQsZil9''@;'; + put 'put ''KX0sMCl9O3ZhciBvPWEuYWRkRXZlbnRMaXN0ZW5lcjthLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oZixnKXsiZnVuY3Rpb24iPT10eXBlb2YgZyYmImNhbmNlbCI9PWY/dGhpcy5fY2FuY2VsSGFuZGxlcnMucHVzaChnKTpvLmNhbGwodGhpcyxmLGcpfTt2YXIgaD1hLnJlbW92ZUV2ZW50''@;'; + put 'put ''TGlzdGVuZXI7cmV0dXJuIGEucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihmLGcpe2lmKCJjYW5jZWwiPT1mKXt2YXIgdT10aGlzLl9jYW5jZWxIYW5kbGVycy5pbmRleE9mKGcpO3U+PTAmJnRoaXMuX2NhbmNlbEhhbmRsZXJzLnNwbGljZSh1LDEpfWVsc2UgaC5jYWxsKHRoaXMsZixn''@;'; + put 'put ''KX0sYX19fSgpLGZ1bmN0aW9uKGspe3ZhciBBPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxlPW51bGwsbD0hMTt0cnl7dmFyIGE9IjAiPT1nZXRDb21wdXRlZFN0eWxlKEEpLmdldFByb3BlcnR5VmFsdWUoIm9wYWNpdHkiKT8iMSI6IjAiOyhlPUEuYW5pbWF0ZSh7b3BhY2l0eTpbYSxhXX0s''@;'; + put 'put ''e2R1cmF0aW9uOjF9KSkuY3VycmVudFRpbWU9MCxsPWdldENvbXB1dGVkU3R5bGUoQSkuZ2V0UHJvcGVydHlWYWx1ZSgib3BhY2l0eSIpPT1hfWNhdGNoKG8pe31maW5hbGx5e2UmJmUuY2FuY2VsKCl9aWYoIWwpe3ZhciBjPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlO3dpbmRv''@;'; + put 'put ''dy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKG8saCl7cmV0dXJuIHdpbmRvdy5TeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmQXJyYXkucHJvdG90eXBlLmZyb20mJm9bU3ltYm9sLml0ZXJhdG9yXSYmKG89QXJyYXkuZnJvbShvKSksQXJyYXkuaXNBcnJheShvKXx8bnVsbD09''@;'; + put 'put ''PW98fChvPWsuY29udmVydFRvQXJyYXlGb3JtKG8pKSxjLmNhbGwodGhpcyxvLGgpfX19KFgpfSgpLGZ1bmN0aW9uKFgsRjEpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU/RjEoZXhwb3J0cyk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYm''@;'; + put 'put ''ZGVmaW5lLmFtZD9kZWZpbmUoWyJleHBvcnRzIl0sRjEpOkYxKChYPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOlh8fHNlbGYpLm1hcmtlZD17fSl9KHRoaXMsZnVuY3Rpb24oWCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEYxKCQseil7Zm9yKHZhciB5PTA7eTx6''@;'; + put 'put ''Lmxlbmd0aDt5Kyspe3ZhciBEPXpbeV07RC5lbnVtZXJhYmxlPUQuZW51bWVyYWJsZXx8ITEsRC5jb25maWd1cmFibGU9ITAsInZhbHVlImluIEQmJihELndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoJCxELmtleSxEKX19ZnVuY3Rpb24gaygkLHopeyhudWxsPT16fHx6PiQu''@;'; + put 'put ''bGVuZ3RoKSYmKHo9JC5sZW5ndGgpO2Zvcih2YXIgeT0wLEQ9bmV3IEFycmF5KHopO3k8ejt5KyspRFt5XT0kW3ldO3JldHVybiBEfWZ1bmN0aW9uIEEoJCx6KXt2YXIgeSxEPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiYkW1N5bWJvbC5pdGVyYXRvcl18fCRbIkBAaXRlcmF0b3IiXTtp''@;'; + put 'put ''ZihEKXJldHVybihEPUQuY2FsbCgkKSkubmV4dC5iaW5kKEQpO2lmKEFycmF5LmlzQXJyYXkoJCl8fChEPWZ1bmN0aW9uKFosVCl7aWYoWil7aWYoInN0cmluZyI9PXR5cGVvZiBaKXJldHVybiBrKFosVCk7dmFyIFA9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFopLnNsaWNlKDgs''@;'; + put 'put ''LTEpO3JldHVybiJNYXAiPT09KFA9Ik9iamVjdCI9PT1QJiZaLmNvbnN0cnVjdG9yP1ouY29uc3RydWN0b3IubmFtZTpQKXx8IlNldCI9PT1QP0FycmF5LmZyb20oWik6IkFyZ3VtZW50cyI9PT1QfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChQKT9r''@;'; + put 'put ''KFosVCk6dm9pZCAwfX0oJCkpfHx6JiYkJiYibnVtYmVyIj09dHlwZW9mICQubGVuZ3RoKXJldHVybiBEJiYoJD1EKSx5PTAsZnVuY3Rpb24oKXtyZXR1cm4geT49JC5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOiRbeSsrXX19O3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQg''@;'; + put 'put ''YXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX1mdW5jdGlvbiBlKCl7cmV0dXJue2Jhc2VVcmw6bnVsbCxicmVh''@;'; + put 'put ''a3M6ITEsZXh0ZW5zaW9uczpudWxsLGdmbTohMCxoZWFkZXJJZHM6ITAsaGVhZGVyUHJlZml4OiIiLGhpZ2hsaWdodDpudWxsLGxhbmdQcmVmaXg6Imxhbmd1YWdlLSIsbWFuZ2xlOiEwLHBlZGFudGljOiExLHJlbmRlcmVyOm51bGwsc2FuaXRpemU6ITEsc2FuaXRpemVyOm51bGwsc2lsZW50''@;'; + put 'put ''OiExLHNtYXJ0TGlzdHM6ITEsc21hcnR5cGFudHM6ITEsdG9rZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxsLHhodG1sOiExfX1mdW5jdGlvbiBsKCQpe3JldHVybiBoWyRdfVguZGVmYXVsdHM9e2Jhc2VVcmw6bnVsbCxicmVha3M6ITEsZXh0ZW5zaW9uczpudWxsLGdmbTohMCxoZWFkZXJJ''@;'; + put 'put ''ZHM6ITAsaGVhZGVyUHJlZml4OiIiLGhpZ2hsaWdodDpudWxsLGxhbmdQcmVmaXg6Imxhbmd1YWdlLSIsbWFuZ2xlOiEwLHBlZGFudGljOiExLHJlbmRlcmVyOm51bGwsc2FuaXRpemU6ITEsc2FuaXRpemVyOm51bGwsc2lsZW50OiExLHNtYXJ0TGlzdHM6ITEsc21hcnR5cGFudHM6ITEsdG9r''@;'; + put 'put ''ZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxsLHhodG1sOiExfTt2YXIgcj0vWyY8PiInXS8sYT0vWyY8PiInXS9nLGM9L1s8PiInXXwmKD8hIz9cdys7KS8sbz0vWzw+IiddfCYoPyEjP1x3KzspL2csaD17IiYiOiImYW1wOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsiLCciJzoiJnF1b3Q7Iiwi''@;'; + put 'put ''JyI6IiYjMzk7In07ZnVuY3Rpb24gZigkLHope2lmKHope2lmKHIudGVzdCgkKSlyZXR1cm4gJC5yZXBsYWNlKGEsbCl9ZWxzZSBpZihjLnRlc3QoJCkpcmV0dXJuICQucmVwbGFjZShvLGwpO3JldHVybiAkfXZhciBnPS8mKCMoPzpcZCspfCg/OiN4WzAtOUEtRmEtZl0rKXwoPzpcdyspKTs/''@;'; + put 'put ''L2dpO2Z1bmN0aW9uIHUoJCl7cmV0dXJuICQucmVwbGFjZShnLGZ1bmN0aW9uKHoseSl7cmV0dXJuImNvbG9uIj09PSh5PXkudG9Mb3dlckNhc2UoKSk/IjoiOiIjIj09PXkuY2hhckF0KDApPyJ4Ij09PXkuY2hhckF0KDEpP1N0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoeS5zdWJzdHJp''@;'; + put 'put ''bmcoMiksMTYpKTpTdHJpbmcuZnJvbUNoYXJDb2RlKCt5LnN1YnN0cmluZygxKSk6IiJ9KX12YXIgcD0vKF58W15cW10pXF4vZztmdW5jdGlvbiB2KCQseil7JD0ic3RyaW5nIj09dHlwZW9mICQ/JDokLnNvdXJjZSx6PXp8fCIiO3ZhciB5PXtyZXBsYWNlOmZ1bmN0aW9uKEQsWil7cmV0dXJu''@;'; + put 'put ''IFo9KFo9Wi5zb3VyY2V8fFopLnJlcGxhY2UocCwiJDEiKSwkPSQucmVwbGFjZShELFopLHl9LGdldFJlZ2V4OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBSZWdFeHAoJCx6KX19O3JldHVybiB5fXZhciBIPS9bXlx3Ol0vZyxDPS9eJHxeW2Etel1bYS16MC05Ky4tXSo6fF5bPyNdL2k7ZnVuY3Rp''@;'; + put 'put ''b24gVigkLHoseSl7aWYoJCl7dHJ5e0Q9ZGVjb2RlVVJJQ29tcG9uZW50KHUoeSkpLnJlcGxhY2UoSCwiIikudG9Mb3dlckNhc2UoKX1jYXRjaChaKXtyZXR1cm4gbnVsbH1pZigwPT09RC5pbmRleE9mKCJqYXZhc2NyaXB0OiIpfHwwPT09RC5pbmRleE9mKCJ2YnNjcmlwdDoiKXx8MD09PUQu''@;'; + put 'put ''aW5kZXhPZigiZGF0YToiKSlyZXR1cm4gbnVsbH12YXIgRDt6JiYhQy50ZXN0KHkpJiYoJD15LFNbIiAiKyhEPXopXXx8KFNbIiAiK0RdPV8udGVzdChEKT9EKyIvIjp3KEQsIi8iLCEwKSksej0tMT09PShEPVNbIiAiK0RdKS5pbmRleE9mKCI6IikseT0iLy8iPT09JC5zdWJzdHJpbmcoMCwy''@;'; + put 'put ''KT96PyQ6RC5yZXBsYWNlKGIsIiQxIikrJDoiLyI9PT0kLmNoYXJBdCgwKT96PyQ6RC5yZXBsYWNlKE0sIiQxIikrJDpEKyQpO3RyeXt5PWVuY29kZVVSSSh5KS5yZXBsYWNlKC8lMjUvZywiJSIpfWNhdGNoKFope3JldHVybiBudWxsfXJldHVybiB5fXZhciBTPXt9LF89L15bXjpdKzpcLypb''@;'; + put 'put ''Xi9dKiQvLGI9L14oW146XSs6KVtcc1xTXSokLyxNPS9eKFteOl0rOlwvKlteL10qKVtcc1xTXSokLyxjMT17ZXhlYzpmdW5jdGlvbigpe319O2Z1bmN0aW9uIHgoJCl7Zm9yKHZhciB6LHksRD0xO0Q8YXJndW1lbnRzLmxlbmd0aDtEKyspZm9yKHkgaW4gej1hcmd1bWVudHNbRF0pT2JqZWN0''@;'; + put 'put ''LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHoseSkmJigkW3ldPXpbeV0pO3JldHVybiAkfWZ1bmN0aW9uIEUoJCx6KXt2YXIgeT0kLnJlcGxhY2UoL1x8L2csZnVuY3Rpb24oWixULFApe2Zvcih2YXIgZTE9ITEscjE9VDswPD0tLXIxJiYiXFwiPT09UFtyMV07KWUxPSFlMTtyZXR1''@;'; + put 'put ''cm4gZTE/InwiOiIgfCJ9KS5zcGxpdCgvIFx8LyksRD0wO2lmKHlbMF0udHJpbSgpfHx5LnNoaWZ0KCksMDx5Lmxlbmd0aCYmIXlbeS5sZW5ndGgtMV0udHJpbSgpJiZ5LnBvcCgpLHkubGVuZ3RoPnopeS5zcGxpY2Uoeik7ZWxzZSBmb3IoO3kubGVuZ3RoPHo7KXkucHVzaCgiIik7Zm9yKDtE''@;'; + put 'put ''PHkubGVuZ3RoO0QrKyl5W0RdPXlbRF0udHJpbSgpLnJlcGxhY2UoL1xcXHwvZywifCIpO3JldHVybiB5fWZ1bmN0aW9uIHcoJCx6LHkpe3ZhciBEPSQubGVuZ3RoO2lmKDA9PT1EKXJldHVybiIiO2Zvcih2YXIgWj0wO1o8RDspe3ZhciBUPSQuY2hhckF0KEQtWi0xKTtpZihUIT09enx8eSl7''@;'; + put 'put ''aWYoVD09PXp8fCF5KWJyZWFrO1orK31lbHNlIForK31yZXR1cm4gJC5zbGljZSgwLEQtWil9ZnVuY3Rpb24gTigkKXskJiYkLnNhbml0aXplJiYhJC5zaWxlbnQmJmNvbnNvbGUud2FybigibWFya2VkKCk6IHNhbml0aXplIGFuZCBzYW5pdGl6ZXIgcGFyYW1ldGVycyBhcmUgZGVwcmVjYXRl''@;'; + put 'put ''ZCBzaW5jZSB2ZXJzaW9uIDAuNy4wLCBzaG91bGQgbm90IGJlIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBSZWFkIG1vcmUgaGVyZTogaHR0cHM6Ly9tYXJrZWQuanMub3JnLyMvVVNJTkdfQURWQU5DRUQubWQjb3B0aW9ucyIpfWZ1bmN0aW9uIEkoJCx6KXtpZih6''@;'; + put 'put ''PDEpcmV0dXJuIiI7Zm9yKHZhciB5PSIiOzE8ejspMSZ6JiYoeSs9JCksej4+PTEsJCs9JDtyZXR1cm4geSskfWZ1bmN0aW9uIFcoJCxULHksRCl7dmFyIFo9VC5ocmVmLFA9KFQ9VC50aXRsZT9mKFQudGl0bGUpOm51bGwsJFsxXS5yZXBsYWNlKC9cXChbXFtcXV0pL2csIiQxIikpO3JldHVy''@;'; + put 'put ''biIhIiE9PSRbMF0uY2hhckF0KDApPyhELnN0YXRlLmluTGluaz0hMCwkPXt0eXBlOiJsaW5rIixyYXc6eSxocmVmOlosdGl0bGU6VCx0ZXh0OlAsdG9rZW5zOkQuaW5saW5lVG9rZW5zKFAsW10pfSxELnN0YXRlLmluTGluaz0hMSwkKTp7dHlwZToiaW1hZ2UiLHJhdzp5LGhyZWY6Wix0aXRs''@;'; + put 'put ''ZTpULHRleHQ6ZihQKX19dmFyIE89ZnVuY3Rpb24oKXtmdW5jdGlvbiAkKHkpe3RoaXMub3B0aW9ucz15fHxYLmRlZmF1bHRzfXZhciB6PSQucHJvdG90eXBlO3JldHVybiB6LnNwYWNlPWZ1bmN0aW9uKHkpe2lmKCh5PXRoaXMucnVsZXMuYmxvY2submV3bGluZS5leGVjKHkpKSYmMDx5WzBd''@;'; + put 'put ''Lmxlbmd0aClyZXR1cm57dHlwZToic3BhY2UiLHJhdzp5WzBdfX0sei5jb2RlPWZ1bmN0aW9uKFope3ZhciBEO2lmKFo9dGhpcy5ydWxlcy5ibG9jay5jb2RlLmV4ZWMoWikpcmV0dXJuIEQ9WlswXS5yZXBsYWNlKC9eIHsxLDR9L2dtLCIiKSx7dHlwZToiY29kZSIscmF3OlpbMF0sY29kZUJs''@;'; + put 'put ''b2NrU3R5bGU6ImluZGVudGVkIix0ZXh0OnRoaXMub3B0aW9ucy5wZWRhbnRpYz9EOncoRCwiXG4iKX19LHouZmVuY2VzPWZ1bmN0aW9uKFQpe3ZhciBELFo7aWYoVD10aGlzLnJ1bGVzLmJsb2NrLmZlbmNlcy5leGVjKFQpKXJldHVybiBaPWZ1bmN0aW9uKFAsZTEpe2lmKG51bGw9PT0oUD1Q''@;'; + put 'put ''Lm1hdGNoKC9eKFxzKykoPzpgYGApLykpKXJldHVybiBlMTt2YXIgcjE9UFsxXTtyZXR1cm4gZTEuc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKFoxKXt2YXIgWT1aMS5tYXRjaCgvXlxzKy8pO3JldHVybiBudWxsIT09WSYmWVswXS5sZW5ndGg+PXIxLmxlbmd0aD9aMS5zbGljZShyMS5sZW5n''@;'; + put 'put ''dGgpOloxfSkuam9pbigiXG4iKX0oRD1UWzBdLFRbM118fCIiKSx7dHlwZToiY29kZSIscmF3OkQsbGFuZzpUWzJdJiZUWzJdLnRyaW0oKSx0ZXh0Olp9fSx6LmhlYWRpbmc9ZnVuY3Rpb24oVCl7dmFyIEQsWjtpZihUPXRoaXMucnVsZXMuYmxvY2suaGVhZGluZy5leGVjKFQpKXJldHVybiBE''@;'; + put 'put ''PVRbMl0udHJpbSgpLC8jJC8udGVzdChEKSYmKFo9dyhELCIjIiksIXRoaXMub3B0aW9ucy5wZWRhbnRpYyYmWiYmIS8gJC8udGVzdChaKXx8KEQ9Wi50cmltKCkpKSx0aGlzLmxleGVyLmlubGluZSgoWj17dHlwZToiaGVhZGluZyIscmF3OlRbMF0sZGVwdGg6VFsxXS5sZW5ndGgsdGV4dDpE''@;'; + put 'put ''LHRva2VuczpbXX0pLnRleHQsWi50b2tlbnMpLFp9LHouaHI9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1bGVzLmJsb2NrLmhyLmV4ZWMoeSkpcmV0dXJue3R5cGU6ImhyIixyYXc6eVswXX19LHouYmxvY2txdW90ZT1mdW5jdGlvbihaKXt2YXIgRDtpZihaPXRoaXMucnVsZXMuYmxvY2suYmxv''@;'; + put 'put ''Y2txdW90ZS5leGVjKFopKXJldHVybiBEPVpbMF0ucmVwbGFjZSgvXiAqPlsgXHRdPy9nbSwiIikse3R5cGU6ImJsb2NrcXVvdGUiLHJhdzpaWzBdLHRva2Vuczp0aGlzLmxleGVyLmJsb2NrVG9rZW5zKEQsW10pLHRleHQ6RH19LHoubGlzdD1mdW5jdGlvbih5KXt2YXIgRD10aGlzLnJ1bGVz''@;'; + put 'put ''LmJsb2NrLmxpc3QuZXhlYyh5KTtpZihEKXt2YXIgWixULFAsZTEscjEsWjEsWSxxLEosQTEsTjEsUzE9MTwoaTE9RFsxXS50cmltKCkpLmxlbmd0aCxuMT17dHlwZToibGlzdCIscmF3OiIiLG9yZGVyZWQ6UzEsc3RhcnQ6UzE/K2kxLnNsaWNlKDAsLTEpOiIiLGxvb3NlOiExLGl0ZW1zOltd''@;'; + put 'put ''fSxpMT1TMT8iXFxkezEsOX1cXCIraTEuc2xpY2UoLTEpOiJcXCIraTE7dGhpcy5vcHRpb25zLnBlZGFudGljJiYoaTE9UzE/aTE6IlsqKy1dIik7Zm9yKHZhciBmMT1uZXcgUmVnRXhwKCJeKCB7MCwzfSIraTErIikoKD86W1x0IF1bXlxcbl0qKT8oPzpcXG58JCkpIik7eSYmKE4xPSExLEQ9''@;'; + put 'put ''ZjEuZXhlYyh5KSkmJiF0aGlzLnJ1bGVzLmJsb2NrLmhyLnRlc3QoeSk7KXtpZih5PXkuc3Vic3RyaW5nKChaPURbMF0pLmxlbmd0aCksWT1EWzJdLnNwbGl0KCJcbiIsMSlbMF0scT15LnNwbGl0KCJcbiIsMSlbMF0sdGhpcy5vcHRpb25zLnBlZGFudGljPyhlMT0yLEExPVkudHJpbUxlZnQo''@;'; + put 'put ''KSk6KGUxPURbMl0uc2VhcmNoKC9bXiBdLyksQTE9WS5zbGljZShlMT00PGUxPzE6ZTEpLGUxKz1EWzFdLmxlbmd0aCkscjE9ITEsIVkmJi9eICokLy50ZXN0KHEpJiYoWis9cSsiXG4iLHk9eS5zdWJzdHJpbmcocS5sZW5ndGgrMSksTjE9ITApLCFOMSlmb3IodmFyIHgxPW5ldyBSZWdFeHAo''@;'; + put 'put ''Il4gezAsIitNYXRoLm1pbigzLGUxLTEpKyJ9KD86WyorLV18XFxkezEsOX1bLildKSgoPzogW15cXG5dKik/KD86XFxufCQpKSIpLEkxPW5ldyBSZWdFeHAoIl4gezAsIitNYXRoLm1pbigzLGUxLTEpKyJ9KCg/Oi0gKil7Myx9fCg/Ol8gKil7Myx9fCg/OlxcKiAqKXszLH0pKD86XFxuK3wk''@;'; + put 'put ''KSIpLEoxPW5ldyBSZWdFeHAoIl4gezAsIitNYXRoLm1pbigzLGUxLTEpKyJ9KD86YGBgfH5+fikiKSx0MD1uZXcgUmVnRXhwKCJeIHswLCIrTWF0aC5taW4oMyxlMS0xKSsifSMiKTt5JiYoWT1KPXkuc3BsaXQoIlxuIiwxKVswXSx0aGlzLm9wdGlvbnMucGVkYW50aWMmJihZPVkucmVwbGFj''@;'; + put 'put ''ZSgvXiB7MSw0fSg/PSggezR9KSpbXiBdKS9nLCIgICIpKSwhSjEudGVzdChZKSkmJiF0MC50ZXN0KFkpJiYheDEudGVzdChZKSYmIUkxLnRlc3QoeSk7KXtpZihZLnNlYXJjaCgvW14gXS8pPj1lMXx8IVkudHJpbSgpKUExKz0iXG4iK1kuc2xpY2UoZTEpO2Vsc2V7aWYocjEpYnJlYWs7QTEr''@;'; + put 'put ''PSJcbiIrWX1yMXx8WS50cmltKCl8fChyMT0hMCksWis9SisiXG4iLHk9eS5zdWJzdHJpbmcoSi5sZW5ndGgrMSl9bjEubG9vc2V8fChaMT9uMS5sb29zZT0hMDovXG4gKlxuICokLy50ZXN0KFopJiYoWjE9ITApKSx0aGlzLm9wdGlvbnMuZ2ZtJiYoVD0vXlxbWyB4WF1cXSAvLmV4ZWMoQTEp''@;'; + put 'put ''KSYmKFA9IlsgXSAiIT09VFswXSxBMT1BMS5yZXBsYWNlKC9eXFtbIHhYXVxdICsvLCIiKSksbjEuaXRlbXMucHVzaCh7dHlwZToibGlzdF9pdGVtIixyYXc6Wix0YXNrOiEhVCxjaGVja2VkOlAsbG9vc2U6ITEsdGV4dDpBMX0pLG4xLnJhdys9Wn1uMS5pdGVtc1tuMS5pdGVtcy5sZW5ndGgt''@;'; + put 'put ''MV0ucmF3PVoudHJpbVJpZ2h0KCksbjEuaXRlbXNbbjEuaXRlbXMubGVuZ3RoLTFdLnRleHQ9QTEudHJpbVJpZ2h0KCksbjEucmF3PW4xLnJhdy50cmltUmlnaHQoKTtmb3IodmFyIGYwPW4xLml0ZW1zLmxlbmd0aCxNMD0wO00wPGYwO00wKyspe3RoaXMubGV4ZXIuc3RhdGUudG9wPSExLG4x''@;'; + put 'put ''Lml0ZW1zW00wXS50b2tlbnM9dGhpcy5sZXhlci5ibG9ja1Rva2VucyhuMS5pdGVtc1tNMF0udGV4dCxbXSk7dmFyIF8wPW4xLml0ZW1zW00wXS50b2tlbnMuZmlsdGVyKGZ1bmN0aW9uKHowKXtyZXR1cm4ic3BhY2UiPT09ejAudHlwZX0pLGkyPV8wLmV2ZXJ5KGZ1bmN0aW9uKHowKXtmb3Io''@;'; + put 'put ''dmFyIFUwLEswPTAsazA9QSh6MC5yYXcuc3BsaXQoIiIpKTshKFUwPWswKCkpLmRvbmU7KWlmKCJcbiI9PT1VMC52YWx1ZSYmKEswKz0xKSwxPEswKXJldHVybiEwO3JldHVybiExfSk7IW4xLmxvb3NlJiZfMC5sZW5ndGgmJmkyJiYobjEubG9vc2U9ITAsbjEuaXRlbXNbTTBdLmxvb3NlPSEw''@;'; + put 'put ''KX1yZXR1cm4gbjF9fSx6Lmh0bWw9ZnVuY3Rpb24oWil7dmFyIEQ7aWYoWj10aGlzLnJ1bGVzLmJsb2NrLmh0bWwuZXhlYyhaKSlyZXR1cm4gRD17dHlwZToiaHRtbCIscmF3OlpbMF0scHJlOiF0aGlzLm9wdGlvbnMuc2FuaXRpemVyJiYoInByZSI9PT1aWzFdfHwic2NyaXB0Ij09PVpbMV18''@;'; + put 'put ''fCJzdHlsZSI9PT1aWzFdKSx0ZXh0OlpbMF19LHRoaXMub3B0aW9ucy5zYW5pdGl6ZSYmKEQudHlwZT0icGFyYWdyYXBoIixELnRleHQ9dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKFpbMF0pOmYoWlswXSksRC50b2tlbnM9W10sdGhpcy5sZXhlci5pbmxp''@;'; + put 'put ''bmUoRC50ZXh0LEQudG9rZW5zKSksRH0sei5kZWY9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1bGVzLmJsb2NrLmRlZi5leGVjKHkpKXJldHVybiB5WzNdJiYoeVszXT15WzNdLnN1YnN0cmluZygxLHlbM10ubGVuZ3RoLTEpKSx7dHlwZToiZGVmIix0YWc6eVsxXS50b0xvd2VyQ2FzZSgpLnJl''@;'; + put 'put ''cGxhY2UoL1xzKy9nLCIgIikscmF3OnlbMF0saHJlZjp5WzJdLHRpdGxlOnlbM119fSx6LnRhYmxlPWZ1bmN0aW9uKHkpe2lmKHk9dGhpcy5ydWxlcy5ibG9jay50YWJsZS5leGVjKHkpKXt2YXIgRD17dHlwZToidGFibGUiLGhlYWRlcjpFKHlbMV0pLm1hcChmdW5jdGlvbihaMSl7cmV0dXJu''@;'; + put 'put ''e3RleHQ6WjF9fSksYWxpZ246eVsyXS5yZXBsYWNlKC9eICp8XHwgKiQvZywiIikuc3BsaXQoLyAqXHwgKi8pLHJvd3M6eVszXSYmeVszXS50cmltKCk/eVszXS5yZXBsYWNlKC9cblsgXHRdKiQvLCIiKS5zcGxpdCgiXG4iKTpbXX07aWYoRC5oZWFkZXIubGVuZ3RoPT09RC5hbGlnbi5sZW5n''@;'; + put 'put ''dGgpe0QucmF3PXlbMF07Zm9yKHZhciBaLFQsUCxlMT1ELmFsaWduLmxlbmd0aCxyMT0wO3IxPGUxO3IxKyspRC5hbGlnbltyMV09L14gKi0rOiAqJC8udGVzdChELmFsaWduW3IxXSk/InJpZ2h0IjovXiAqOi0rOiAqJC8udGVzdChELmFsaWduW3IxXSk/ImNlbnRlciI6L14gKjotKyAqJC8u''@;'; + put 'put ''dGVzdChELmFsaWduW3IxXSk/ImxlZnQiOm51bGw7Zm9yKGUxPUQucm93cy5sZW5ndGgscjE9MDtyMTxlMTtyMSsrKUQucm93c1tyMV09RShELnJvd3NbcjFdLEQuaGVhZGVyLmxlbmd0aCkubWFwKGZ1bmN0aW9uKFoxKXtyZXR1cm57dGV4dDpaMX19KTtmb3IoZTE9RC5oZWFkZXIubGVuZ3Ro''@;'; + put 'put ''LFo9MDtaPGUxO1orKylELmhlYWRlcltaXS50b2tlbnM9W10sdGhpcy5sZXhlci5pbmxpbmUoRC5oZWFkZXJbWl0udGV4dCxELmhlYWRlcltaXS50b2tlbnMpO2ZvcihlMT1ELnJvd3MubGVuZ3RoLFo9MDtaPGUxO1orKylmb3IoUD1ELnJvd3NbWl0sVD0wO1Q8UC5sZW5ndGg7VCsrKVBbVF0u''@;'; + put 'put ''dG9rZW5zPVtdLHRoaXMubGV4ZXIuaW5saW5lKFBbVF0udGV4dCxQW1RdLnRva2Vucyk7cmV0dXJuIER9fX0sei5saGVhZGluZz1mdW5jdGlvbihEKXtpZihEPXRoaXMucnVsZXMuYmxvY2subGhlYWRpbmcuZXhlYyhEKSlyZXR1cm4gRD17dHlwZToiaGVhZGluZyIscmF3OkRbMF0sZGVwdGg6''@;'; + put 'put ''Ij0iPT09RFsyXS5jaGFyQXQoMCk/MToyLHRleHQ6RFsxXSx0b2tlbnM6W119LHRoaXMubGV4ZXIuaW5saW5lKEQudGV4dCxELnRva2VucyksRH0sei5wYXJhZ3JhcGg9ZnVuY3Rpb24oRCl7aWYoRD10aGlzLnJ1bGVzLmJsb2NrLnBhcmFncmFwaC5leGVjKEQpKXJldHVybiBEPXt0eXBlOiJw''@;'; + put 'put ''YXJhZ3JhcGgiLHJhdzpEWzBdLHRleHQ6IlxuIj09PURbMV0uY2hhckF0KERbMV0ubGVuZ3RoLTEpP0RbMV0uc2xpY2UoMCwtMSk6RFsxXSx0b2tlbnM6W119LHRoaXMubGV4ZXIuaW5saW5lKEQudGV4dCxELnRva2VucyksRH0sei50ZXh0PWZ1bmN0aW9uKEQpe2lmKEQ9dGhpcy5ydWxlcy5i''@;'; + put 'put ''bG9jay50ZXh0LmV4ZWMoRCkpcmV0dXJuIHRoaXMubGV4ZXIuaW5saW5lKChEPXt0eXBlOiJ0ZXh0IixyYXc6RFswXSx0ZXh0OkRbMF0sdG9rZW5zOltdfSkudGV4dCxELnRva2VucyksRH0sei5lc2NhcGU9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1bGVzLmlubGluZS5lc2NhcGUuZXhlYyh5''@;'; + put 'put ''KSlyZXR1cm57dHlwZToiZXNjYXBlIixyYXc6eVswXSx0ZXh0OmYoeVsxXSl9fSx6LnRhZz1mdW5jdGlvbih5KXtpZih5PXRoaXMucnVsZXMuaW5saW5lLnRhZy5leGVjKHkpKXJldHVybiF0aGlzLmxleGVyLnN0YXRlLmluTGluayYmL148YSAvaS50ZXN0KHlbMF0pP3RoaXMubGV4ZXIuc3Rh''@;'; + put 'put ''dGUuaW5MaW5rPSEwOnRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rJiYvXjxcL2E+L2kudGVzdCh5WzBdKSYmKHRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rPSExKSwhdGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrJiYvXjwocHJlfGNvZGV8a2JkfHNjcmlwdCkoXHN8PikvaS50ZXN0KHlbMF0pP3Ro''@;'; + put 'put ''aXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz0hMDp0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePFwvKHByZXxjb2RlfGtiZHxzY3JpcHQpKFxzfD4pL2kudGVzdCh5WzBdKSYmKHRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz0hMSkse3R5cGU6dGhpcy5vcHRpb25zLnNhbml0aXpl''@;'; + put 'put ''PyJ0ZXh0IjoiaHRtbCIscmF3OnlbMF0saW5MaW5rOnRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rLGluUmF3QmxvY2s6dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrLHRleHQ6dGhpcy5vcHRpb25zLnNhbml0aXplP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXI/dGhpcy5vcHRpb25zLnNhbml0aXpl''@;'; + put 'put ''cih5WzBdKTpmKHlbMF0pOnlbMF19fSx6Lmxpbms9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1bGVzLmlubGluZS5saW5rLmV4ZWMoeSkpe3ZhciBEPXlbMl0udHJpbSgpO2lmKCF0aGlzLm9wdGlvbnMucGVkYW50aWMmJi9ePC8udGVzdChEKSl7aWYoIS8+JC8udGVzdChEKSlyZXR1cm47dmFy''@;'; + put 'put ''IFQ9dyhELnNsaWNlKDAsLTEpLCJcXCIpO2lmKChELmxlbmd0aC1ULmxlbmd0aCklMj09MClyZXR1cm59ZWxzZS0xPChUPWZ1bmN0aW9uKGUxLHIxKXtpZigtMSE9PWUxLmluZGV4T2YoIigpIlsxXSkpZm9yKHZhciBaMT1lMS5sZW5ndGgsWT0wLHE9MDtxPFoxO3ErKylpZigiXFwiPT09ZTFb''@;'; + put 'put ''cV0pcSsrO2Vsc2UgaWYoZTFbcV09PT0iKCkiWzBdKVkrKztlbHNlIGlmKGUxW3FdPT09IigpIlsxXSYmLS1ZPDApcmV0dXJuIHE7cmV0dXJuLTF9KHlbMl0pKSYmKFA9KDA9PT15WzBdLmluZGV4T2YoIiEiKT81OjQpK3lbMV0ubGVuZ3RoK1QseVsyXT15WzJdLnN1YnN0cmluZygwLFQpLHlb''@;'; + put 'put ''MF09eVswXS5zdWJzdHJpbmcoMCxQKS50cmltKCkseVszXT0iIik7VD15WzJdO3ZhciBaLFA9IiI7cmV0dXJuIHRoaXMub3B0aW9ucy5wZWRhbnRpYz8oWj0vXihbXiciXSpbXlxzXSlccysoWyciXSkoLiopXDIvLmV4ZWMoVCkpJiYoVD1aWzFdLFA9WlszXSk6UD15WzNdP3lbM10uc2xpY2Uo''@;'; + put 'put ''MSwtMSk6IiIsVD1ULnRyaW0oKSxXKHkse2hyZWY6KFQ9L148Ly50ZXN0KFQpP3RoaXMub3B0aW9ucy5wZWRhbnRpYyYmIS8+JC8udGVzdChEKT9ULnNsaWNlKDEpOlQuc2xpY2UoMSwtMSk6VCkmJlQucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKSx0aXRsZTpQJiZQ''@;'; + put 'put ''LnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQxIil9LHlbMF0sdGhpcy5sZXhlcil9fSx6LnJlZmxpbms9ZnVuY3Rpb24oeSxEKXt2YXIgWjtpZigoWj10aGlzLnJ1bGVzLmlubGluZS5yZWZsaW5rLmV4ZWMoeSkpfHwoWj10aGlzLnJ1bGVzLmlubGluZS5ub2xpbmsuZXhl''@;'; + put 'put ''Yyh5KSkpcmV0dXJuKHk9RFsoeT0oWlsyXXx8WlsxXSkucmVwbGFjZSgvXHMrL2csIiAiKSkudG9Mb3dlckNhc2UoKV0pJiZ5LmhyZWY/VyhaLHksWlswXSx0aGlzLmxleGVyKTp7dHlwZToidGV4dCIscmF3OkQ9WlswXS5jaGFyQXQoMCksdGV4dDpEfX0sei5lbVN0cm9uZz1mdW5jdGlvbih5''@;'; + put 'put ''LEQsWil7dm9pZCAwPT09WiYmKFo9IiIpO3ZhciBUPXRoaXMucnVsZXMuaW5saW5lLmVtU3Ryb25nLmxEZWxpbS5leGVjKHkpO2lmKFQmJighVFszXXx8IVoubWF0Y2goLyg/OlswLTlBLVphLXpceEFBXHhCMlx4QjNceEI1XHhCOVx4QkFceEJDLVx4QkVceEMwLVx4RDZceEQ4LVx4RjZceEY4''@;'; + put 'put ''LVx1MDJDMVx1MDJDNi1cdTAyRDFcdTAyRTAtXHUwMkU0XHUwMkVDXHUwMkVFXHUwMzcwLVx1MDM3NFx1MDM3Nlx1MDM3N1x1MDM3QS1cdTAzN0RcdTAzN0ZcdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDNBMVx1MDNBMy1cdTAzRjVcdTAzRjctXHUwNDgxXHUwNDhBLVx1MDUy''@;'; + put 'put ''Rlx1MDUzMS1cdTA1NTZcdTA1NTlcdTA1NjAtXHUwNTg4XHUwNUQwLVx1MDVFQVx1MDVFRi1cdTA1RjJcdTA2MjAtXHUwNjRBXHUwNjYwLVx1MDY2OVx1MDY2RVx1MDY2Rlx1MDY3MS1cdTA2RDNcdTA2RDVcdTA2RTVcdTA2RTZcdTA2RUUtXHUwNkZDXHUwNkZGXHUwNzEwXHUwNzEyLVx1MDcy''@;'; + put 'put ''Rlx1MDc0RC1cdTA3QTVcdTA3QjFcdTA3QzAtXHUwN0VBXHUwN0Y0XHUwN0Y1XHUwN0ZBXHUwODAwLVx1MDgxNVx1MDgxQVx1MDgyNFx1MDgyOFx1MDg0MC1cdTA4NThcdTA4NjAtXHUwODZBXHUwODcwLVx1MDg4N1x1MDg4OS1cdTA4OEVcdTA4QTAtXHUwOEM5XHUwOTA0LVx1MDkzOVx1MDkz''@;'; + put 'put ''RFx1MDk1MFx1MDk1OC1cdTA5NjFcdTA5NjYtXHUwOTZGXHUwOTcxLVx1MDk4MFx1MDk4NS1cdTA5OENcdTA5OEZcdTA5OTBcdTA5OTMtXHUwOUE4XHUwOUFBLVx1MDlCMFx1MDlCMlx1MDlCNi1cdTA5QjlcdTA5QkRcdTA5Q0VcdTA5RENcdTA5RERcdTA5REYtXHUwOUUxXHUwOUU2LVx1MDlG''@;'; + put 'put ''MVx1MDlGNC1cdTA5RjlcdTA5RkNcdTBBMDUtXHUwQTBBXHUwQTBGXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzJcdTBBMzNcdTBBMzVcdTBBMzZcdTBBMzhcdTBBMzlcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTY2LVx1MEE2Rlx1MEE3Mi1cdTBBNzRcdTBBODUtXHUwQThE''@;'; + put 'put ''XHUwQThGLVx1MEE5MVx1MEE5My1cdTBBQThcdTBBQUEtXHUwQUIwXHUwQUIyXHUwQUIzXHUwQUI1LVx1MEFCOVx1MEFCRFx1MEFEMFx1MEFFMFx1MEFFMVx1MEFFNi1cdTBBRUZcdTBBRjlcdTBCMDUtXHUwQjBDXHUwQjBGXHUwQjEwXHUwQjEzLVx1MEIyOFx1MEIyQS1cdTBCMzBcdTBCMzJc''@;'; + put 'put ''dTBCMzNcdTBCMzUtXHUwQjM5XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGLVx1MEI2MVx1MEI2Ni1cdTBCNkZcdTBCNzEtXHUwQjc3XHUwQjgzXHUwQjg1LVx1MEI4QVx1MEI4RS1cdTBCOTBcdTBCOTItXHUwQjk1XHUwQjk5XHUwQjlBXHUwQjlDXHUwQjlFXHUwQjlGXHUwQkEzXHUwQkE0XHUw''@;'; + put 'put ''QkE4LVx1MEJBQVx1MEJBRS1cdTBCQjlcdTBCRDBcdTBCRTYtXHUwQkYyXHUwQzA1LVx1MEMwQ1x1MEMwRS1cdTBDMTBcdTBDMTItXHUwQzI4XHUwQzJBLVx1MEMzOVx1MEMzRFx1MEM1OC1cdTBDNUFcdTBDNURcdTBDNjBcdTBDNjFcdTBDNjYtXHUwQzZGXHUwQzc4LVx1MEM3RVx1MEM4MFx1''@;'; + put 'put ''MEM4NS1cdTBDOENcdTBDOEUtXHUwQzkwXHUwQzkyLVx1MENBOFx1MENBQS1cdTBDQjNcdTBDQjUtXHUwQ0I5XHUwQ0JEXHUwQ0REXHUwQ0RFXHUwQ0UwXHUwQ0UxXHUwQ0U2LVx1MENFRlx1MENGMVx1MENGMlx1MEQwNC1cdTBEMENcdTBEMEUtXHUwRDEwXHUwRDEyLVx1MEQzQVx1MEQzRFx1''@;'; + put 'put ''MEQ0RVx1MEQ1NC1cdTBENTZcdTBENTgtXHUwRDYxXHUwRDY2LVx1MEQ3OFx1MEQ3QS1cdTBEN0ZcdTBEODUtXHUwRDk2XHUwRDlBLVx1MERCMVx1MERCMy1cdTBEQkJcdTBEQkRcdTBEQzAtXHUwREM2XHUwREU2LVx1MERFRlx1MEUwMS1cdTBFMzBcdTBFMzJcdTBFMzNcdTBFNDAtXHUwRTQ2''@;'; + put 'put ''XHUwRTUwLVx1MEU1OVx1MEU4MVx1MEU4Mlx1MEU4NFx1MEU4Ni1cdTBFOEFcdTBFOEMtXHUwRUEzXHUwRUE1XHUwRUE3LVx1MEVCMFx1MEVCMlx1MEVCM1x1MEVCRFx1MEVDMC1cdTBFQzRcdTBFQzZcdTBFRDAtXHUwRUQ5XHUwRURDLVx1MEVERlx1MEYwMFx1MEYyMC1cdTBGMzNcdTBGNDAt''@;'; + put 'put ''XHUwRjQ3XHUwRjQ5LVx1MEY2Q1x1MEY4OC1cdTBGOENcdTEwMDAtXHUxMDJBXHUxMDNGLVx1MTA0OVx1MTA1MC1cdTEwNTVcdTEwNUEtXHUxMDVEXHUxMDYxXHUxMDY1XHUxMDY2XHUxMDZFLVx1MTA3MFx1MTA3NS1cdTEwODFcdTEwOEVcdTEwOTAtXHUxMDk5XHUxMEEwLVx1MTBDNVx1MTBD''@;'; + put 'put ''N1x1MTBDRFx1MTBEMC1cdTEwRkFcdTEwRkMtXHUxMjQ4XHUxMjRBLVx1MTI0RFx1MTI1MC1cdTEyNTZcdTEyNThcdTEyNUEtXHUxMjVEXHUxMjYwLVx1MTI4OFx1MTI4QS1cdTEyOERcdTEyOTAtXHUxMkIwXHUxMkIyLVx1MTJCNVx1MTJCOC1cdTEyQkVcdTEyQzBcdTEyQzItXHUxMkM1XHUx''@;'; + put 'put ''MkM4LVx1MTJENlx1MTJEOC1cdTEzMTBcdTEzMTItXHUxMzE1XHUxMzE4LVx1MTM1QVx1MTM2OS1cdTEzN0NcdTEzODAtXHUxMzhGXHUxM0EwLVx1MTNGNVx1MTNGOC1cdTEzRkRcdTE0MDEtXHUxNjZDXHUxNjZGLVx1MTY3Rlx1MTY4MS1cdTE2OUFcdTE2QTAtXHUxNkVBXHUxNkVFLVx1MTZG''@;'; + put 'put ''OFx1MTcwMC1cdTE3MTFcdTE3MUYtXHUxNzMxXHUxNzQwLVx1MTc1MVx1MTc2MC1cdTE3NkNcdTE3NkUtXHUxNzcwXHUxNzgwLVx1MTdCM1x1MTdEN1x1MTdEQ1x1MTdFMC1cdTE3RTlcdTE3RjAtXHUxN0Y5XHUxODEwLVx1MTgxOVx1MTgyMC1cdTE4NzhcdTE4ODAtXHUxODg0XHUxODg3LVx1''@;'; + put 'put ''MThBOFx1MThBQVx1MThCMC1cdTE4RjVcdTE5MDAtXHUxOTFFXHUxOTQ2LVx1MTk2RFx1MTk3MC1cdTE5NzRcdTE5ODAtXHUxOUFCXHUxOUIwLVx1MTlDOVx1MTlEMC1cdTE5REFcdTFBMDAtXHUxQTE2XHUxQTIwLVx1MUE1NFx1MUE4MC1cdTFBODlcdTFBOTAtXHUxQTk5XHUxQUE3XHUxQjA1''@;'; + put 'put ''LVx1MUIzM1x1MUI0NS1cdTFCNENcdTFCNTAtXHUxQjU5XHUxQjgzLVx1MUJBMFx1MUJBRS1cdTFCRTVcdTFDMDAtXHUxQzIzXHUxQzQwLVx1MUM0OVx1MUM0RC1cdTFDN0RcdTFDODAtXHUxQzg4XHUxQzkwLVx1MUNCQVx1MUNCRC1cdTFDQkZcdTFDRTktXHUxQ0VDXHUxQ0VFLVx1MUNGM1x1''@;'; + put 'put ''MUNGNVx1MUNGNlx1MUNGQVx1MUQwMC1cdTFEQkZcdTFFMDAtXHUxRjE1XHUxRjE4LVx1MUYxRFx1MUYyMC1cdTFGNDVcdTFGNDgtXHUxRjREXHUxRjUwLVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Ri1cdTFGN0RcdTFGODAtXHUxRkI0XHUxRkI2LVx1MUZCQ1x1MUZCRVx1MUZDMi1c''@;'; + put 'put ''dTFGQzRcdTFGQzYtXHUxRkNDXHUxRkQwLVx1MUZEM1x1MUZENi1cdTFGREJcdTFGRTAtXHUxRkVDXHUxRkYyLVx1MUZGNFx1MUZGNi1cdTFGRkNcdTIwNzBcdTIwNzFcdTIwNzQtXHUyMDc5XHUyMDdGLVx1MjA4OVx1MjA5MC1cdTIwOUNcdTIxMDJcdTIxMDdcdTIxMEEtXHUyMTEzXHUyMTE1''@;'; + put 'put ''XHUyMTE5LVx1MjExRFx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTM5XHUyMTNDLVx1MjEzRlx1MjE0NS1cdTIxNDlcdTIxNEVcdTIxNTAtXHUyMTg5XHUyNDYwLVx1MjQ5Qlx1MjRFQS1cdTI0RkZcdTI3NzYtXHUyNzkzXHUyQzAwLVx1MkNFNFx1MkNFQi1cdTJD''@;'; + put 'put ''RUVcdTJDRjJcdTJDRjNcdTJDRkRcdTJEMDAtXHUyRDI1XHUyRDI3XHUyRDJEXHUyRDMwLVx1MkQ2N1x1MkQ2Rlx1MkQ4MC1cdTJEOTZcdTJEQTAtXHUyREE2XHUyREE4LVx1MkRBRVx1MkRCMC1cdTJEQjZcdTJEQjgtXHUyREJFXHUyREMwLVx1MkRDNlx1MkRDOC1cdTJEQ0VcdTJERDAtXHUy''@;'; + put 'put ''REQ2XHUyREQ4LVx1MkRERVx1MkUyRlx1MzAwNS1cdTMwMDdcdTMwMjEtXHUzMDI5XHUzMDMxLVx1MzAzNVx1MzAzOC1cdTMwM0NcdTMwNDEtXHUzMDk2XHUzMDlELVx1MzA5Rlx1MzBBMS1cdTMwRkFcdTMwRkMtXHUzMEZGXHUzMTA1LVx1MzEyRlx1MzEzMS1cdTMxOEVcdTMxOTItXHUzMTk1''@;'; + put 'put ''XHUzMUEwLVx1MzFCRlx1MzFGMC1cdTMxRkZcdTMyMjAtXHUzMjI5XHUzMjQ4LVx1MzI0Rlx1MzI1MS1cdTMyNUZcdTMyODAtXHUzMjg5XHUzMkIxLVx1MzJCRlx1MzQwMC1cdTREQkZcdTRFMDAtXHVBNDhDXHVBNEQwLVx1QTRGRFx1QTUwMC1cdUE2MENcdUE2MTAtXHVBNjJCXHVBNjQwLVx1''@;'; + put 'put ''QTY2RVx1QTY3Ri1cdUE2OURcdUE2QTAtXHVBNkVGXHVBNzE3LVx1QTcxRlx1QTcyMi1cdUE3ODhcdUE3OEItXHVBN0NBXHVBN0QwXHVBN0QxXHVBN0QzXHVBN0Q1LVx1QTdEOVx1QTdGMi1cdUE4MDFcdUE4MDMtXHVBODA1XHVBODA3LVx1QTgwQVx1QTgwQy1cdUE4MjJcdUE4MzAtXHVBODM1''@;'; + put 'put ''XHVBODQwLVx1QTg3M1x1QTg4Mi1cdUE4QjNcdUE4RDAtXHVBOEQ5XHVBOEYyLVx1QThGN1x1QThGQlx1QThGRFx1QThGRVx1QTkwMC1cdUE5MjVcdUE5MzAtXHVBOTQ2XHVBOTYwLVx1QTk3Q1x1QTk4NC1cdUE5QjJcdUE5Q0YtXHVBOUQ5XHVBOUUwLVx1QTlFNFx1QTlFNi1cdUE5RkVcdUFB''@;'; + put 'put ''MDAtXHVBQTI4XHVBQTQwLVx1QUE0Mlx1QUE0NC1cdUFBNEJcdUFBNTAtXHVBQTU5XHVBQTYwLVx1QUE3Nlx1QUE3QVx1QUE3RS1cdUFBQUZcdUFBQjFcdUFBQjVcdUFBQjZcdUFBQjktXHVBQUJEXHVBQUMwXHVBQUMyXHVBQURCLVx1QUFERFx1QUFFMC1cdUFBRUFcdUFBRjItXHVBQUY0XHVB''@;'; + put 'put ''QjAxLVx1QUIwNlx1QUIwOS1cdUFCMEVcdUFCMTEtXHVBQjE2XHVBQjIwLVx1QUIyNlx1QUIyOC1cdUFCMkVcdUFCMzAtXHVBQjVBXHVBQjVDLVx1QUI2OVx1QUI3MC1cdUFCRTJcdUFCRjAtXHVBQkY5XHVBQzAwLVx1RDdBM1x1RDdCMC1cdUQ3QzZcdUQ3Q0ItXHVEN0ZCXHVGOTAwLVx1RkE2''@;'; + put 'put ''RFx1RkE3MC1cdUZBRDlcdUZCMDAtXHVGQjA2XHVGQjEzLVx1RkIxN1x1RkIxRFx1RkIxRi1cdUZCMjhcdUZCMkEtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MVx1RkI0M1x1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZE''@;'; + put 'put ''QzdcdUZERjAtXHVGREZCXHVGRTcwLVx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMTAtXHVGRjE5XHVGRjIxLVx1RkYzQVx1RkY0MS1cdUZGNUFcdUZGNjYtXHVGRkJFXHVGRkMyLVx1RkZDN1x1RkZDQS1cdUZGQ0ZcdUZGRDItXHVGRkQ3XHVGRkRBLVx1RkZEQ118XHVEODAwW1x1REMwMC1cdURD''@;'; + put 'put ''MEJcdURDMEQtXHVEQzI2XHVEQzI4LVx1REMzQVx1REMzQ1x1REMzRFx1REMzRi1cdURDNERcdURDNTAtXHVEQzVEXHVEQzgwLVx1RENGQVx1REQwNy1cdUREMzNcdURENDAtXHVERDc4XHVERDhBXHVERDhCXHVERTgwLVx1REU5Q1x1REVBMC1cdURFRDBcdURFRTEtXHVERUZCXHVERjAwLVx1''@;'; + put 'put ''REYyM1x1REYyRC1cdURGNEFcdURGNTAtXHVERjc1XHVERjgwLVx1REY5RFx1REZBMC1cdURGQzNcdURGQzgtXHVERkNGXHVERkQxLVx1REZENV18XHVEODAxW1x1REMwMC1cdURDOURcdURDQTAtXHVEQ0E5XHVEQ0IwLVx1RENEM1x1RENEOC1cdURDRkJcdUREMDAtXHVERDI3XHVERDMwLVx1''@;'; + put 'put ''REQ2M1x1REQ3MC1cdUREN0FcdUREN0MtXHVERDhBXHVERDhDLVx1REQ5Mlx1REQ5NFx1REQ5NVx1REQ5Ny1cdUREQTFcdUREQTMtXHVEREIxXHVEREIzLVx1RERCOVx1RERCQlx1RERCQ1x1REUwMC1cdURGMzZcdURGNDAtXHVERjU1XHVERjYwLVx1REY2N1x1REY4MC1cdURGODVcdURGODct''@;'; + put 'put ''XHVERkIwXHVERkIyLVx1REZCQV18XHVEODAyW1x1REMwMC1cdURDMDVcdURDMDhcdURDMEEtXHVEQzM1XHVEQzM3XHVEQzM4XHVEQzNDXHVEQzNGLVx1REM1NVx1REM1OC1cdURDNzZcdURDNzktXHVEQzlFXHVEQ0E3LVx1RENBRlx1RENFMC1cdURDRjJcdURDRjRcdURDRjVcdURDRkItXHVE''@;'; + put 'put ''RDFCXHVERDIwLVx1REQzOVx1REQ4MC1cdUREQjdcdUREQkMtXHVERENGXHVEREQyLVx1REUwMFx1REUxMC1cdURFMTNcdURFMTUtXHVERTE3XHVERTE5LVx1REUzNVx1REU0MC1cdURFNDhcdURFNjAtXHVERTdFXHVERTgwLVx1REU5Rlx1REVDMC1cdURFQzdcdURFQzktXHVERUU0XHVERUVC''@;'; + put 'put ''LVx1REVFRlx1REYwMC1cdURGMzVcdURGNDAtXHVERjU1XHVERjU4LVx1REY3Mlx1REY3OC1cdURGOTFcdURGQTktXHVERkFGXXxcdUQ4MDNbXHVEQzAwLVx1REM0OFx1REM4MC1cdURDQjJcdURDQzAtXHVEQ0YyXHVEQ0ZBLVx1REQyM1x1REQzMC1cdUREMzlcdURFNjAtXHVERTdFXHVERTgw''@;'; + put 'put ''LVx1REVBOVx1REVCMFx1REVCMVx1REYwMC1cdURGMjdcdURGMzAtXHVERjQ1XHVERjUxLVx1REY1NFx1REY3MC1cdURGODFcdURGQjAtXHVERkNCXHVERkUwLVx1REZGNl18XHVEODA0W1x1REMwMy1cdURDMzdcdURDNTItXHVEQzZGXHVEQzcxXHVEQzcyXHVEQzc1XHVEQzgzLVx1RENBRlx1''@;'; + put 'put ''RENEMC1cdURDRThcdURDRjAtXHVEQ0Y5XHVERDAzLVx1REQyNlx1REQzNi1cdUREM0ZcdURENDRcdURENDdcdURENTAtXHVERDcyXHVERDc2XHVERDgzLVx1RERCMlx1RERDMS1cdUREQzRcdURERDAtXHVERERBXHVERERDXHVEREUxLVx1RERGNFx1REUwMC1cdURFMTFcdURFMTMtXHVERTJC''@;'; + put 'put ''XHVERTgwLVx1REU4Nlx1REU4OFx1REU4QS1cdURFOERcdURFOEYtXHVERTlEXHVERTlGLVx1REVBOFx1REVCMC1cdURFREVcdURFRjAtXHVERUY5XHVERjA1LVx1REYwQ1x1REYwRlx1REYxMFx1REYxMy1cdURGMjhcdURGMkEtXHVERjMwXHVERjMyXHVERjMzXHVERjM1LVx1REYzOVx1REYz''@;'; + put 'put ''RFx1REY1MFx1REY1RC1cdURGNjFdfFx1RDgwNVtcdURDMDAtXHVEQzM0XHVEQzQ3LVx1REM0QVx1REM1MC1cdURDNTlcdURDNUYtXHVEQzYxXHVEQzgwLVx1RENBRlx1RENDNFx1RENDNVx1RENDN1x1RENEMC1cdURDRDlcdUREODAtXHVEREFFXHVEREQ4LVx1REREQlx1REUwMC1cdURFMkZc''@;'; + put 'put ''dURFNDRcdURFNTAtXHVERTU5XHVERTgwLVx1REVBQVx1REVCOFx1REVDMC1cdURFQzlcdURGMDAtXHVERjFBXHVERjMwLVx1REYzQlx1REY0MC1cdURGNDZdfFx1RDgwNltcdURDMDAtXHVEQzJCXHVEQ0EwLVx1RENGMlx1RENGRi1cdUREMDZcdUREMDlcdUREMEMtXHVERDEzXHVERDE1XHVE''@;'; + put 'put ''RDE2XHVERDE4LVx1REQyRlx1REQzRlx1REQ0MVx1REQ1MC1cdURENTlcdUREQTAtXHVEREE3XHVEREFBLVx1REREMFx1RERFMVx1RERFM1x1REUwMFx1REUwQi1cdURFMzJcdURFM0FcdURFNTBcdURFNUMtXHVERTg5XHVERTlEXHVERUIwLVx1REVGOF18XHVEODA3W1x1REMwMC1cdURDMDhc''@;'; + put 'put ''dURDMEEtXHVEQzJFXHVEQzQwXHVEQzUwLVx1REM2Q1x1REM3Mi1cdURDOEZcdUREMDAtXHVERDA2XHVERDA4XHVERDA5XHVERDBCLVx1REQzMFx1REQ0Nlx1REQ1MC1cdURENTlcdURENjAtXHVERDY1XHVERDY3XHVERDY4XHVERDZBLVx1REQ4OVx1REQ5OFx1RERBMC1cdUREQTlcdURFRTAt''@;'; + put 'put ''XHVERUYyXHVERkIwXHVERkMwLVx1REZENF18XHVEODA4W1x1REMwMC1cdURGOTldfFx1RDgwOVtcdURDMDAtXHVEQzZFXHVEQzgwLVx1REQ0M118XHVEODBCW1x1REY5MC1cdURGRjBdfFtcdUQ4MENcdUQ4MUMtXHVEODIwXHVEODIyXHVEODQwLVx1RDg2OFx1RDg2QS1cdUQ4NkNcdUQ4NkYt''@;'; + put 'put ''XHVEODcyXHVEODc0LVx1RDg3OVx1RDg4MC1cdUQ4ODNdW1x1REMwMC1cdURGRkZdfFx1RDgwRFtcdURDMDAtXHVEQzJFXXxcdUQ4MTFbXHVEQzAwLVx1REU0Nl18XHVEODFBW1x1REMwMC1cdURFMzhcdURFNDAtXHVERTVFXHVERTYwLVx1REU2OVx1REU3MC1cdURFQkVcdURFQzAtXHVERUM5''@;'; + put 'put ''XHVERUQwLVx1REVFRFx1REYwMC1cdURGMkZcdURGNDAtXHVERjQzXHVERjUwLVx1REY1OVx1REY1Qi1cdURGNjFcdURGNjMtXHVERjc3XHVERjdELVx1REY4Rl18XHVEODFCW1x1REU0MC1cdURFOTZcdURGMDAtXHVERjRBXHVERjUwXHVERjkzLVx1REY5Rlx1REZFMFx1REZFMVx1REZFM118''@;'; + put 'put ''XHVEODIxW1x1REMwMC1cdURGRjddfFx1RDgyM1tcdURDMDAtXHVEQ0Q1XHVERDAwLVx1REQwOF18XHVEODJCW1x1REZGMC1cdURGRjNcdURGRjUtXHVERkZCXHVERkZEXHVERkZFXXxcdUQ4MkNbXHVEQzAwLVx1REQyMlx1REQ1MC1cdURENTJcdURENjQtXHVERDY3XHVERDcwLVx1REVGQl18''@;'; + put 'put ''XHVEODJGW1x1REMwMC1cdURDNkFcdURDNzAtXHVEQzdDXHVEQzgwLVx1REM4OFx1REM5MC1cdURDOTldfFx1RDgzNFtcdURFRTAtXHVERUYzXHVERjYwLVx1REY3OF18XHVEODM1W1x1REMwMC1cdURDNTRcdURDNTYtXHVEQzlDXHVEQzlFXHVEQzlGXHVEQ0EyXHVEQ0E1XHVEQ0E2XHVEQ0E5''@;'; + put 'put ''LVx1RENBQ1x1RENBRS1cdURDQjlcdURDQkJcdURDQkQtXHVEQ0MzXHVEQ0M1LVx1REQwNVx1REQwNy1cdUREMEFcdUREMEQtXHVERDE0XHVERDE2LVx1REQxQ1x1REQxRS1cdUREMzlcdUREM0ItXHVERDNFXHVERDQwLVx1REQ0NFx1REQ0Nlx1REQ0QS1cdURENTBcdURENTItXHVERUE1XHVE''@;'; + put 'put ''RUE4LVx1REVDMFx1REVDMi1cdURFREFcdURFREMtXHVERUZBXHVERUZDLVx1REYxNFx1REYxNi1cdURGMzRcdURGMzYtXHVERjRFXHVERjUwLVx1REY2RVx1REY3MC1cdURGODhcdURGOEEtXHVERkE4XHVERkFBLVx1REZDMlx1REZDNC1cdURGQ0JcdURGQ0UtXHVERkZGXXxcdUQ4MzdbXHVE''@;'; + put 'put ''RjAwLVx1REYxRV18XHVEODM4W1x1REQwMC1cdUREMkNcdUREMzctXHVERDNEXHVERDQwLVx1REQ0OVx1REQ0RVx1REU5MC1cdURFQURcdURFQzAtXHVERUVCXHVERUYwLVx1REVGOV18XHVEODM5W1x1REZFMC1cdURGRTZcdURGRTgtXHVERkVCXHVERkVEXHVERkVFXHVERkYwLVx1REZGRV18''@;'; + put 'put ''XHVEODNBW1x1REMwMC1cdURDQzRcdURDQzctXHVEQ0NGXHVERDAwLVx1REQ0M1x1REQ0Qlx1REQ1MC1cdURENTldfFx1RDgzQltcdURDNzEtXHVEQ0FCXHVEQ0FELVx1RENBRlx1RENCMS1cdURDQjRcdUREMDEtXHVERDJEXHVERDJGLVx1REQzRFx1REUwMC1cdURFMDNcdURFMDUtXHVERTFG''@;'; + put 'put ''XHVERTIxXHVERTIyXHVERTI0XHVERTI3XHVERTI5LVx1REUzMlx1REUzNC1cdURFMzdcdURFMzlcdURFM0JcdURFNDJcdURFNDdcdURFNDlcdURFNEJcdURFNEQtXHVERTRGXHVERTUxXHVERTUyXHVERTU0XHVERTU3XHVERTU5XHVERTVCXHVERTVEXHVERTVGXHVERTYxXHVERTYyXHVERTY0''@;'; + put 'put ''XHVERTY3LVx1REU2QVx1REU2Qy1cdURFNzJcdURFNzQtXHVERTc3XHVERTc5LVx1REU3Q1x1REU3RVx1REU4MC1cdURFODlcdURFOEItXHVERTlCXHVERUExLVx1REVBM1x1REVBNS1cdURFQTlcdURFQUItXHVERUJCXXxcdUQ4M0NbXHVERDAwLVx1REQwQ118XHVEODNFW1x1REZGMC1cdURG''@;'; + put 'put ''RjldfFx1RDg2OVtcdURDMDAtXHVERURGXHVERjAwLVx1REZGRl18XHVEODZEW1x1REMwMC1cdURGMzhcdURGNDAtXHVERkZGXXxcdUQ4NkVbXHVEQzAwLVx1REMxRFx1REMyMC1cdURGRkZdfFx1RDg3M1tcdURDMDAtXHVERUExXHVERUIwLVx1REZGRl18XHVEODdBW1x1REMwMC1cdURGRTBd''@;'; + put 'put ''fFx1RDg3RVtcdURDMDAtXHVERTFEXXxcdUQ4ODRbXHVEQzAwLVx1REY0QV0pLykpJiYoIVRbMV0mJiFUWzJdfHwiIj09PVp8fHRoaXMucnVsZXMuaW5saW5lLnB1bmN0dWF0aW9uLmV4ZWMoWikpKXt2YXIgZTE9VFswXS5sZW5ndGgtMSxyMT1lMSxaMT0wLFk9IioiPT09VFswXVswXT90aGlz''@;'; + put 'put ''LnJ1bGVzLmlubGluZS5lbVN0cm9uZy5yRGVsaW1Bc3Q6dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcuckRlbGltVW5kO2ZvcihZLmxhc3RJbmRleD0wLEQ9RC5zbGljZSgtMSp5Lmxlbmd0aCtlMSk7bnVsbCE9KFQ9WS5leGVjKEQpKTspaWYocT1UWzFdfHxUWzJdfHxUWzNdfHxUWzRdfHxU''@;'; + put 'put ''WzVdfHxUWzZdKWlmKHE9cS5sZW5ndGgsVFszXXx8VFs0XSlyMSs9cTtlbHNlIGlmKChUWzVdfHxUWzZdKSYmZTElMyYmISgoZTErcSklMykpWjErPXE7ZWxzZSBpZighKDA8KHIxLT1xKSkpe3ZhciBxPU1hdGgubWluKHEscStyMStaMSk7aWYoTWF0aC5taW4oZTEscSklMilyZXR1cm4gSj15''@;'; + put 'put ''LnNsaWNlKDEsZTErVC5pbmRleCtxKSx7dHlwZToiZW0iLHJhdzp5LnNsaWNlKDAsZTErVC5pbmRleCtxKzEpLHRleHQ6Six0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVUb2tlbnMoSixbXSl9O3ZhciBKPXkuc2xpY2UoMixlMStULmluZGV4K3EtMSk7cmV0dXJue3R5cGU6InN0cm9uZyIscmF3''@;'; + put 'put ''Onkuc2xpY2UoMCxlMStULmluZGV4K3ErMSksdGV4dDpKLHRva2Vuczp0aGlzLmxleGVyLmlubGluZVRva2VucyhKLFtdKX19fX0sei5jb2Rlc3Bhbj1mdW5jdGlvbihQKXt2YXIgRCxaLFQ7aWYoUD10aGlzLnJ1bGVzLmlubGluZS5jb2RlLmV4ZWMoUCkpcmV0dXJuIFQ9UFsyXS5yZXBsYWNl''@;'; + put 'put ''KC9cbi9nLCIgIiksRD0vW14gXS8udGVzdChUKSxaPS9eIC8udGVzdChUKSYmLyAkLy50ZXN0KFQpLFQ9ZihUPUQmJlo/VC5zdWJzdHJpbmcoMSxULmxlbmd0aC0xKTpULCEwKSx7dHlwZToiY29kZXNwYW4iLHJhdzpQWzBdLHRleHQ6VH19LHouYnI9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1''@;'; + put 'put ''bGVzLmlubGluZS5ici5leGVjKHkpKXJldHVybnt0eXBlOiJiciIscmF3OnlbMF19fSx6LmRlbD1mdW5jdGlvbih5KXtpZih5PXRoaXMucnVsZXMuaW5saW5lLmRlbC5leGVjKHkpKXJldHVybnt0eXBlOiJkZWwiLHJhdzp5WzBdLHRleHQ6eVsyXSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVU''@;'; + put 'put ''b2tlbnMoeVsyXSxbXSl9fSx6LmF1dG9saW5rPWZ1bmN0aW9uKFQsRCl7dmFyIFo7aWYoVD10aGlzLnJ1bGVzLmlubGluZS5hdXRvbGluay5leGVjKFQpKXJldHVybiBEPSJAIj09PVRbMl0/Im1haWx0bzoiKyhaPWYodGhpcy5vcHRpb25zLm1hbmdsZT9EKFRbMV0pOlRbMV0pKTpaPWYoVFsx''@;'; + put 'put ''XSkse3R5cGU6ImxpbmsiLHJhdzpUWzBdLHRleHQ6WixocmVmOkQsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OlosdGV4dDpafV19fSx6LnVybD1mdW5jdGlvbih5LEQpe3ZhciBaLFQsUCxlMTtpZihaPXRoaXMucnVsZXMuaW5saW5lLnVybC5leGVjKHkpKXtpZigiQCI9PT1aWzJdKVA9Im1h''@;'; + put 'put ''aWx0bzoiKyhUPWYodGhpcy5vcHRpb25zLm1hbmdsZT9EKFpbMF0pOlpbMF0pKTtlbHNle2Zvcig7ZTE9WlswXSxaWzBdPXRoaXMucnVsZXMuaW5saW5lLl9iYWNrcGVkYWwuZXhlYyhaWzBdKVswXSxlMSE9PVpbMF07KTtUPWYoWlswXSksUD0id3d3LiI9PT1aWzFdPyJodHRwOi8vIitUOlR9''@;'; + put 'put ''cmV0dXJue3R5cGU6ImxpbmsiLHJhdzpaWzBdLHRleHQ6VCxocmVmOlAsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OlQsdGV4dDpUfV19fX0sei5pbmxpbmVUZXh0PWZ1bmN0aW9uKHksRCl7aWYoeT10aGlzLnJ1bGVzLmlubGluZS50ZXh0LmV4ZWMoeSkpcmV0dXJuIEQ9dGhpcy5sZXhlci5z''@;'; + put 'put ''dGF0ZS5pblJhd0Jsb2NrP3RoaXMub3B0aW9ucy5zYW5pdGl6ZT90aGlzLm9wdGlvbnMuc2FuaXRpemVyP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXIoeVswXSk6Zih5WzBdKTp5WzBdOmYodGhpcy5vcHRpb25zLnNtYXJ0eXBhbnRzP0QoeVswXSk6eVswXSkse3R5cGU6InRleHQiLHJhdzp5WzBd''@;'; + put 'put ''LHRleHQ6RH19LCR9KCksQj17bmV3bGluZTovXig/OiAqKD86XG58JCkpKy8sY29kZTovXiggezR9W15cbl0rKD86XG4oPzogKig/OlxufCQpKSopPykrLyxmZW5jZXM6L14gezAsM30oYHszLH0oPz1bXmBcbl0qXG4pfH57Myx9KShbXlxuXSopXG4oPzp8KFtcc1xTXSo/KVxuKSg/OiB7MCwz''@;'; + put 'put ''fVwxW35gXSogKig/PVxufCQpfCQpLyxocjovXiB7MCwzfSgoPzotW1x0IF0qKXszLH18KD86X1sgXHRdKil7Myx9fCg/OlwqWyBcdF0qKXszLH0pKD86XG4rfCQpLyxoZWFkaW5nOi9eIHswLDN9KCN7MSw2fSkoPz1cc3wkKSguKikoPzpcbit8JCkvLGJsb2NrcXVvdGU6L14oIHswLDN9PiA/''@;'; + put 'put ''KHBhcmFncmFwaHxbXlxuXSopKD86XG58JCkpKy8sbGlzdDovXiggezAsM31idWxsKShbIFx0XVteXG5dKz8pPyg/OlxufCQpLyxodG1sOiJeIHswLDN9KD86PChzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKVtcXHM+XVtcXHNcXFNdKj8oPzo8L1xcMT5bXlxcbl0qXFxuK3wkKXxjb21tZW50''@;'; + put 'put ''W15cXG5dKihcXG4rfCQpfDxcXD9bXFxzXFxTXSo/KD86XFw/Plxcbip8JCl8PCFbQS1aXVtcXHNcXFNdKj8oPzo+XFxuKnwkKXw8IVxcW0NEQVRBXFxbW1xcc1xcU10qPyg/OlxcXVxcXT5cXG4qfCQpfDwvPyh0YWcpKD86ICt8XFxufC8/PilbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwk''@;'; + put 'put ''KXw8KD8hc2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYSkoW2Etel1bXFx3LV0qKSg/OmF0dHJpYnV0ZSkqPyAqLz8+KD89WyBcXHRdKig/OlxcbnwkKSlbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKXw8Lyg/IXNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpW2Etel1bXFx3LV0qXFxzKj4o''@;'; + put 'put ''Pz1bIFxcdF0qKD86XFxufCQpKVtcXHNcXFNdKj8oPzooPzpcXG4gKikrXFxufCQpKSIsZGVmOi9eIHswLDN9XFsobGFiZWwpXF06ICooPzpcbiAqKT88PyhbXlxzPl0rKT4/KD86KD86ICsoPzpcbiAqKT98ICpcbiAqKSh0aXRsZSkpPyAqKD86XG4rfCQpLyx0YWJsZTpjMSxsaGVhZGluZzov''@;'; + put 'put ''XihbXlxuXSspXG4gezAsM30oPSt8LSspICooPzpcbit8JCkvLF9wYXJhZ3JhcGg6L14oW15cbl0rKD86XG4oPyFocnxoZWFkaW5nfGxoZWFkaW5nfGJsb2NrcXVvdGV8ZmVuY2VzfGxpc3R8aHRtbHx0YWJsZXwgK1xuKVteXG5dKykqKS8sdGV4dDovXlteXG5dKy8sX2xhYmVsOi8oPyFccypc''@;'; + put 'put ''XSkoPzpcXC58W15cW1xdXFxdKSsvLF90aXRsZTovKD86Iig/OlxcIj98W14iXFxdKSoifCdbXidcbl0qKD86XG5bXidcbl0rKSpcbj8nfFwoW14oKV0qXCkpL30sUj0oQi5kZWY9dihCLmRlZikucmVwbGFjZSgibGFiZWwiLEIuX2xhYmVsKS5yZXBsYWNlKCJ0aXRsZSIsQi5fdGl0bGUpLmdl''@;'; + put 'put ''dFJlZ2V4KCksQi5idWxsZXQ9Lyg/OlsqKy1dfFxkezEsOX1bLildKS8sQi5saXN0SXRlbVN0YXJ0PXYoL14oICopKGJ1bGwpICovKS5yZXBsYWNlKCJidWxsIixCLmJ1bGxldCkuZ2V0UmVnZXgoKSxCLmxpc3Q9dihCLmxpc3QpLnJlcGxhY2UoL2J1bGwvZyxCLmJ1bGxldCkucmVwbGFjZSgi''@;'; + put 'put ''aHIiLCJcXG4rKD89XFwxPyg/Oig/Oi0gKil7Myx9fCg/Ol8gKil7Myx9fCg/OlxcKiAqKXszLH0pKD86XFxuK3wkKSkiKS5yZXBsYWNlKCJkZWYiLCJcXG4rKD89IitCLmRlZi5zb3VyY2UrIikiKS5nZXRSZWdleCgpLEIuX3RhZz0iYWRkcmVzc3xhcnRpY2xlfGFzaWRlfGJhc2V8YmFzZWZv''@;'; + put 'put ''bnR8YmxvY2txdW90ZXxib2R5fGNhcHRpb258Y2VudGVyfGNvbHxjb2xncm91cHxkZHxkZXRhaWxzfGRpYWxvZ3xkaXJ8ZGl2fGRsfGR0fGZpZWxkc2V0fGZpZ2NhcHRpb258ZmlndXJlfGZvb3Rlcnxmb3JtfGZyYW1lfGZyYW1lc2V0fGhbMS02XXxoZWFkfGhlYWRlcnxocnxodG1sfGlmcmFt''@;'; + put 'put ''ZXxsZWdlbmR8bGl8bGlua3xtYWlufG1lbnV8bWVudWl0ZW18bWV0YXxuYXZ8bm9mcmFtZXN8b2x8b3B0Z3JvdXB8b3B0aW9ufHB8cGFyYW18c2VjdGlvbnxzb3VyY2V8c3VtbWFyeXx0YWJsZXx0Ym9keXx0ZHx0Zm9vdHx0aHx0aGVhZHx0aXRsZXx0cnx0cmFja3x1bCIsQi5fY29tbWVudD0v''@;'; + put 'put ''PCEtLSg/IS0/PilbXHNcU10qPyg/Oi0tPnwkKS8sQi5odG1sPXYoQi5odG1sLCJpIikucmVwbGFjZSgiY29tbWVudCIsQi5fY29tbWVudCkucmVwbGFjZSgidGFnIixCLl90YWcpLnJlcGxhY2UoImF0dHJpYnV0ZSIsLyArW2EtekEtWjpfXVtcdy46LV0qKD86ICo9ICoiW14iXG5dKiJ8ICo9''@;'; + put 'put ''IConW14nXG5dKid8ICo9ICpbXlxzIic9PD5gXSspPy8pLmdldFJlZ2V4KCksQi5wYXJhZ3JhcGg9dihCLl9wYXJhZ3JhcGgpLnJlcGxhY2UoImhyIixCLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoInxsaGVhZGluZyIsIiIpLnJlcGxhY2UoInx0YWJs''@;'; + put 'put ''ZSIsIiIpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwxWy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwv''@;'; + put 'put ''Pyg/OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixCLl90YWcpLmdldFJlZ2V4KCksQi5ibG9ja3F1b3RlPXYoQi5ibG9ja3F1b3RlKS5yZXBsYWNlKCJwYXJhZ3JhcGgiLEIucGFyYWdyYXBoKS5nZXRSZWdleCgp''@;'; + put 'put ''LEIubm9ybWFsPXgoe30sQiksQi5nZm09eCh7fSxCLm5vcm1hbCx7dGFibGU6Il4gKihbXlxcbiBdLipcXHwuKilcXG4gezAsM30oPzpcXHwgKik/KDo/LSs6PyAqKD86XFx8ICo6Py0rOj8gKikqKSg/OlxcfCAqKT8oPzpcXG4oKD86KD8hICpcXG58aHJ8aGVhZGluZ3xibG9ja3F1b3RlfGNv''@;'; + put 'put ''ZGV8ZmVuY2VzfGxpc3R8aHRtbCkuKig/OlxcbnwkKSkqKVxcbip8JCkifSksQi5nZm0udGFibGU9dihCLmdmbS50YWJsZSkucmVwbGFjZSgiaHIiLEIuaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVwbGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4iKS5yZXBsYWNl''@;'; + put 'put ''KCJjb2RlIiwiIHs0fVteXFxuXSIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxuXSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBsYWNlKCJsaXN0IiwiIHswLDN9KD86WyorLV18MVsuKV0pICIpLnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86ICt8XFxu''@;'; + put 'put ''fC8/Pil8PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIsQi5fdGFnKS5nZXRSZWdleCgpLEIuZ2ZtLnBhcmFncmFwaD12KEIuX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLEIuaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVw''@;'; + put 'put ''bGFjZSgifGxoZWFkaW5nIiwiIikucmVwbGFjZSgidGFibGUiLEIuZ2ZtLnRhYmxlKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxuXSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBsYWNlKCJsaXN0Iiwi''@;'; + put 'put ''IHswLDN9KD86WyorLV18MVsuKV0pICIpLnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86ICt8XFxufC8/Pil8PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIsQi5fdGFnKS5nZXRSZWdleCgpLEIucGVkYW50aWM9eCh7fSxCLm5vcm1hbCx7aHRt''@;'; + put 'put ''bDp2KCJeICooPzpjb21tZW50ICooPzpcXG58XFxzKiQpfDwodGFnKVtcXHNcXFNdKz88L1xcMT4gKig/OlxcbnsyLH18XFxzKiQpfDx0YWcoPzpcIlteXCJdKlwifCdbXiddKid8XFxzW14nXCIvPlxcc10qKSo/Lz8+ICooPzpcXG57Mix9fFxccyokKSkiKS5yZXBsYWNlKCJjb21tZW50IixC''@;'; + put 'put ''Ll9jb21tZW50KS5yZXBsYWNlKC90YWcvZywiKD8hKD86YXxlbXxzdHJvbmd8c21hbGx8c3xjaXRlfHF8ZGZufGFiYnJ8ZGF0YXx0aW1lfGNvZGV8dmFyfHNhbXB8a2JkfHN1YnxzdXB8aXxifHV8bWFya3xydWJ5fHJ0fHJwfGJkaXxiZG98c3Bhbnxicnx3YnJ8aW5zfGRlbHxpbWcpXFxiKVxc''@;'; + put 'put ''dysoPyE6fFteXFx3XFxzQF0qQClcXGIiKS5nZXRSZWdleCgpLGRlZjovXiAqXFsoW15cXV0rKVxdOiAqPD8oW15ccz5dKyk+Pyg/OiArKFsiKF1bXlxuXStbIildKSk/ICooPzpcbit8JCkvLGhlYWRpbmc6L14oI3sxLDZ9KSguKikoPzpcbit8JCkvLGZlbmNlczpjMSxwYXJhZ3JhcGg6dihC''@;'; + put 'put ''Lm5vcm1hbC5fcGFyYWdyYXBoKS5yZXBsYWNlKCJociIsQi5ocikucmVwbGFjZSgiaGVhZGluZyIsIiAqI3sxLDZ9ICpbXlxuXSIpLnJlcGxhY2UoImxoZWFkaW5nIixCLmxoZWFkaW5nKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoInxmZW5jZXMiLCIiKS5yZXBs''@;'; + put 'put ''YWNlKCJ8bGlzdCIsIiIpLnJlcGxhY2UoInxodG1sIiwiIikuZ2V0UmVnZXgoKX0pLHtlc2NhcGU6L15cXChbISIjJCUmJygpKissXC0uLzo7PD0+P0BcW1xdXFxeX2B7fH1+XSkvLGF1dG9saW5rOi9ePChzY2hlbWU6W15cc1x4MDAtXHgxZjw+XSp8ZW1haWwpPi8sdXJsOmMxLHRhZzoiXmNv''@;'; + put 'put ''bW1lbnR8XjwvW2EtekEtWl1bXFx3Oi1dKlxccyo+fF48W2EtekEtWl1bXFx3LV0qKD86YXR0cmlidXRlKSo/XFxzKi8/PnxePFxcP1tcXHNcXFNdKj9cXD8+fF48IVthLXpBLVpdK1xcc1tcXHNcXFNdKj8+fF48IVxcW0NEQVRBXFxbW1xcc1xcU10qP1xcXVxcXT4iLGxpbms6L14hP1xbKGxh''@;'; + put 'put ''YmVsKVxdXChccyooaHJlZikoPzpccysodGl0bGUpKT9ccypcKS8scmVmbGluazovXiE/XFsobGFiZWwpXF1cWyhyZWYpXF0vLG5vbGluazovXiE/XFsocmVmKVxdKD86XFtcXSk/LyxyZWZsaW5rU2VhcmNoOiJyZWZsaW5rfG5vbGluayg/IVxcKCkiLGVtU3Ryb25nOntsRGVsaW06L14oPzpc''@;'; + put 'put ''KisoPzooW3B1bmN0X10pfFteXHMqXSkpfF5fKyg/OihbcHVuY3QqXSl8KFteXHNfXSkpLyxyRGVsaW1Bc3Q6L15bXl8qXSo/XF9cX1teXypdKj9cKlteXypdKj8oPz1cX1xfKXxbXipdKyg/PVteKl0pfFtwdW5jdF9dKFwqKykoPz1bXHNdfCQpfFtecHVuY3QqX1xzXShcKispKD89W3B1bmN0''@;'; + put 'put ''X1xzXXwkKXxbcHVuY3RfXHNdKFwqKykoPz1bXnB1bmN0Kl9cc10pfFtcc10oXCorKSg/PVtwdW5jdF9dKXxbcHVuY3RfXShcKispKD89W3B1bmN0X10pfFtecHVuY3QqX1xzXShcKispKD89W15wdW5jdCpfXHNdKS8sckRlbGltVW5kOi9eW15fKl0qP1wqXCpbXl8qXSo/XF9bXl8qXSo/KD89''@;'; + put 'put ''XCpcKil8W15fXSsoPz1bXl9dKXxbcHVuY3QqXShcXyspKD89W1xzXXwkKXxbXnB1bmN0Kl9cc10oXF8rKSg/PVtwdW5jdCpcc118JCl8W3B1bmN0KlxzXShcXyspKD89W15wdW5jdCpfXHNdKXxbXHNdKFxfKykoPz1bcHVuY3QqXSl8W3B1bmN0Kl0oXF8rKSg/PVtwdW5jdCpdKS99LGNvZGU6''@;'; + put 'put ''L14oYCspKFteYF18W15gXVtcc1xTXSo/W15gXSlcMSg/IWApLyxicjovXiggezIsfXxcXClcbig/IVxzKiQpLyxkZWw6YzEsdGV4dDovXihgK3xbXmBdKSg/Oig/PSB7Mix9XG4pfFtcc1xTXSo/KD86KD89W1xcPCFcW2AqX118XGJffCQpfFteIF0oPz0gezIsfVxuKSkpLyxwdW5jdHVhdGlv''@;'; + put 'put ''bjovXihbXHNwdW5jdHVhdGlvbl0pL30pO2Z1bmN0aW9uIGwxKCQpe3JldHVybiAkLnJlcGxhY2UoLy0tLS9nLCJcdTIwMTQiKS5yZXBsYWNlKC8tLS9nLCJcdTIwMTMiKS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7IlxzXSknL2csIiQxXHUyMDE4IikucmVwbGFjZSgvJy9nLCJcdTIwMTki''@;'; + put 'put ''KS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7XHUyMDE4XHNdKSIvZywiJDFcdTIwMWMiKS5yZXBsYWNlKC8iL2csIlx1MjAxZCIpLnJlcGxhY2UoL1wuezN9L2csIlx1MjAyNiIpfWZ1bmN0aW9uIGExKCQpe2Zvcih2YXIgeix5PSIiLEQ9JC5sZW5ndGgsWj0wO1o8RDtaKyspej0kLmNoYXJD''@;'; + put 'put ''b2RlQXQoWikseSs9IiYjIisoej0uNTxNYXRoLnJhbmRvbSgpPyJ4Iit6LnRvU3RyaW5nKDE2KTp6KSsiOyI7cmV0dXJuIHl9Ui5fcHVuY3R1YXRpb249IiFcIiMkJSYnKCkrXFwtLiwvOjs8PT4/QFxcW1xcXWBee3x9fiIsUi5wdW5jdHVhdGlvbj12KFIucHVuY3R1YXRpb24pLnJlcGxhY2Uo''@;'; + put 'put ''L3B1bmN0dWF0aW9uL2csUi5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksUi5ibG9ja1NraXA9L1xbW15cXV0qP1xdXChbXlwpXSo/XCl8YFteYF0qP2B8PFtePl0qPz4vZyxSLmVzY2FwZWRFbVN0PS9cXFwqfFxcXy9nLFIuX2NvbW1lbnQ9dihCLl9jb21tZW50KS5yZXBsYWNlKCIoPzotLVx4''@;'; + put 'put ''M2V8JCkiLCItLVx4M2UiKS5nZXRSZWdleCgpLFIuZW1TdHJvbmcubERlbGltPXYoUi5lbVN0cm9uZy5sRGVsaW0pLnJlcGxhY2UoL3B1bmN0L2csUi5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksUi5lbVN0cm9uZy5yRGVsaW1Bc3Q9dihSLmVtU3Ryb25nLnJEZWxpbUFzdCwiZyIpLnJlcGxh''@;'; + put 'put ''Y2UoL3B1bmN0L2csUi5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksUi5lbVN0cm9uZy5yRGVsaW1VbmQ9dihSLmVtU3Ryb25nLnJEZWxpbVVuZCwiZyIpLnJlcGxhY2UoL3B1bmN0L2csUi5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksUi5fZXNjYXBlcz0vXFwoWyEiIyQlJicoKSorLFwtLi86''@;'; + put 'put ''Ozw9Pj9AXFtcXVxcXl9ge3x9fl0pL2csUi5fc2NoZW1lPS9bYS16QS1aXVthLXpBLVowLTkrLi1dezEsMzF9LyxSLl9lbWFpbD0vW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXSsoQClbYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8oPzpcLlthLXpB''@;'; + put 'put ''LVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPykrKD8hWy1fXSkvLFIuYXV0b2xpbms9dihSLmF1dG9saW5rKS5yZXBsYWNlKCJzY2hlbWUiLFIuX3NjaGVtZSkucmVwbGFjZSgiZW1haWwiLFIuX2VtYWlsKS5nZXRSZWdleCgpLFIuX2F0dHJpYnV0ZT0vXHMrW2EtekEt''@;'; + put 'put ''WjpfXVtcdy46LV0qKD86XHMqPVxzKiJbXiJdKiJ8XHMqPVxzKidbXiddKid8XHMqPVxzKlteXHMiJz08PmBdKyk/LyxSLnRhZz12KFIudGFnKS5yZXBsYWNlKCJjb21tZW50IixSLl9jb21tZW50KS5yZXBsYWNlKCJhdHRyaWJ1dGUiLFIuX2F0dHJpYnV0ZSkuZ2V0UmVnZXgoKSxSLl9sYWJl''@;'; + put 'put ''bD0vKD86XFsoPzpcXC58W15cW1xdXFxdKSpcXXxcXC58YFteYF0qYHxbXlxbXF1cXGBdKSo/LyxSLl9ocmVmPS88KD86XFwufFteXG48PlxcXSkrPnxbXlxzXHgwMC1ceDFmXSovLFIuX3RpdGxlPS8iKD86XFwiP3xbXiJcXF0pKiJ8Jyg/OlxcJz98W14nXFxdKSonfFwoKD86XFxcKT98W14p''@;'; + put 'put ''XFxdKSpcKS8sUi5saW5rPXYoUi5saW5rKS5yZXBsYWNlKCJsYWJlbCIsUi5fbGFiZWwpLnJlcGxhY2UoImhyZWYiLFIuX2hyZWYpLnJlcGxhY2UoInRpdGxlIixSLl90aXRsZSkuZ2V0UmVnZXgoKSxSLnJlZmxpbms9dihSLnJlZmxpbmspLnJlcGxhY2UoImxhYmVsIixSLl9sYWJlbCkucmVw''@;'; + put 'put ''bGFjZSgicmVmIixCLl9sYWJlbCkuZ2V0UmVnZXgoKSxSLm5vbGluaz12KFIubm9saW5rKS5yZXBsYWNlKCJyZWYiLEIuX2xhYmVsKS5nZXRSZWdleCgpLFIucmVmbGlua1NlYXJjaD12KFIucmVmbGlua1NlYXJjaCwiZyIpLnJlcGxhY2UoInJlZmxpbmsiLFIucmVmbGluaykucmVwbGFjZSgi''@;'; + put 'put ''bm9saW5rIixSLm5vbGluaykuZ2V0UmVnZXgoKSxSLm5vcm1hbD14KHt9LFIpLFIucGVkYW50aWM9eCh7fSxSLm5vcm1hbCx7c3Ryb25nOntzdGFydDovXl9ffFwqXCovLG1pZGRsZTovXl9fKD89XFMpKFtcc1xTXSo/XFMpX18oPyFfKXxeXCpcKig/PVxTKShbXHNcU10qP1xTKVwqXCooPyFc''@;'; + put 'put ''KikvLGVuZEFzdDovXCpcKig/IVwqKS9nLGVuZFVuZDovX18oPyFfKS9nfSxlbTp7c3RhcnQ6L15ffFwqLyxtaWRkbGU6L14oKVwqKD89XFMpKFtcc1xTXSo/XFMpXCooPyFcKil8Xl8oPz1cUykoW1xzXFNdKj9cUylfKD8hXykvLGVuZEFzdDovXCooPyFcKikvZyxlbmRVbmQ6L18oPyFfKS9n''@;'; + put 'put ''fSxsaW5rOnYoL14hP1xbKGxhYmVsKVxdXCgoLio/KVwpLykucmVwbGFjZSgibGFiZWwiLFIuX2xhYmVsKS5nZXRSZWdleCgpLHJlZmxpbms6digvXiE/XFsobGFiZWwpXF1ccypcWyhbXlxdXSopXF0vKS5yZXBsYWNlKCJsYWJlbCIsUi5fbGFiZWwpLmdldFJlZ2V4KCl9KSxSLmdmbT14KHt9''@;'; + put 'put ''LFIubm9ybWFsLHtlc2NhcGU6dihSLmVzY2FwZSkucmVwbGFjZSgiXSkiLCJ+fF0pIikuZ2V0UmVnZXgoKSxfZXh0ZW5kZWRfZW1haWw6L1tBLVphLXowLTkuXystXSsoQClbYS16QS1aMC05LV9dKyg/OlwuW2EtekEtWjAtOS1fXSpbYS16QS1aMC05XSkrKD8hWy1fXSkvLHVybDovXigoPzpm''@;'; + put 'put ''dHB8aHR0cHM/KTpcL1wvfHd3d1wuKSg/OlthLXpBLVowLTlcLV0rXC4/KStbXlxzPF0qfF5lbWFpbC8sX2JhY2twZWRhbDovKD86W14/IS4sOjsqX34oKSZdK3xcKFteKV0qXCl8Jig/IVthLXpBLVowLTldKzskKXxbPyEuLDo7Kl9+KV0rKD8hJCkpKy8sZGVsOi9eKH5+PykoPz1bXlxzfl0p''@;'; + put 'put ''KFtcc1xTXSo/W15cc35dKVwxKD89W15+XXwkKS8sdGV4dDovXihbYH5dK3xbXmB+XSkoPzooPz0gezIsfVxuKXwoPz1bYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXStAKXxbXHNcU10qPyg/Oig/PVtcXDwhXFtgKn5fXXxcYl98aHR0cHM/OlwvXC98ZnRwOlwvXC98d3d3XC58JCl8''@;'; + put 'put ''W14gXSg/PSB7Mix9XG4pfFteYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXSg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dK0ApKSkvfSksUi5nZm0udXJsPXYoUi5nZm0udXJsLCJpIikucmVwbGFjZSgiZW1haWwiLFIuZ2ZtLl9leHRlbmRlZF9lbWFpbCkuZ2V0UmVn''@;'; + put 'put ''ZXgoKSxSLmJyZWFrcz14KHt9LFIuZ2ZtLHticjp2KFIuYnIpLnJlcGxhY2UoInsyLH0iLCIqIikuZ2V0UmVnZXgoKSx0ZXh0OnYoUi5nZm0udGV4dCkucmVwbGFjZSgiXFxiXyIsIlxcYl98IHsyLH1cXG4iKS5yZXBsYWNlKC9cezIsXH0vZywiKiIpLmdldFJlZ2V4KCl9KTt2YXIgaDE9ZnVu''@;'; + put 'put ''Y3Rpb24oKXtmdW5jdGlvbiAkKFope3RoaXMudG9rZW5zPVtdLHRoaXMudG9rZW5zLmxpbmtzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5vcHRpb25zPVp8fFguZGVmYXVsdHMsdGhpcy5vcHRpb25zLnRva2VuaXplcj10aGlzLm9wdGlvbnMudG9rZW5pemVyfHxuZXcgTyx0aGlzLnRva2Vu''@;'; + put 'put ''aXplcj10aGlzLm9wdGlvbnMudG9rZW5pemVyLHRoaXMudG9rZW5pemVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLCh0aGlzLnRva2VuaXplci5sZXhlcj10aGlzKS5pbmxpbmVRdWV1ZT1bXSx0aGlzLnN0YXRlPXtpbkxpbms6ITEsaW5SYXdCbG9jazohMSx0b3A6ITB9LFo9e2Jsb2NrOkIubm9y''@;'; + put 'put ''bWFsLGlubGluZTpSLm5vcm1hbH0sdGhpcy5vcHRpb25zLnBlZGFudGljPyhaLmJsb2NrPUIucGVkYW50aWMsWi5pbmxpbmU9Ui5wZWRhbnRpYyk6dGhpcy5vcHRpb25zLmdmbSYmKFouYmxvY2s9Qi5nZm0sWi5pbmxpbmU9dGhpcy5vcHRpb25zLmJyZWFrcz9SLmJyZWFrczpSLmdmbSksdGhp''@;'; + put 'put ''cy50b2tlbml6ZXIucnVsZXM9Wn0kLmxleD1mdW5jdGlvbihaLFQpe3JldHVybiBuZXcgJChUKS5sZXgoWil9LCQubGV4SW5saW5lPWZ1bmN0aW9uKFosVCl7cmV0dXJuIG5ldyAkKFQpLmlubGluZVRva2VucyhaKX07dmFyIHksRD0kLnByb3RvdHlwZTtyZXR1cm4gRC5sZXg9ZnVuY3Rpb24o''@;'; + put 'put ''Wil7dmFyIFQ7Zm9yKFo9Wi5yZXBsYWNlKC9cclxufFxyL2csIlxuIiksdGhpcy5ibG9ja1Rva2VucyhaLHRoaXMudG9rZW5zKTtUPXRoaXMuaW5saW5lUXVldWUuc2hpZnQoKTspdGhpcy5pbmxpbmVUb2tlbnMoVC5zcmMsVC50b2tlbnMpO3JldHVybiB0aGlzLnRva2Vuc30sRC5ibG9ja1Rv''@;'; + put 'put ''a2Vucz1mdW5jdGlvbihaLFQpe3ZhciBQLGUxLHIxLFoxLFk9dGhpcztmb3Iodm9pZCAwPT09VCYmKFQ9W10pLFo9dGhpcy5vcHRpb25zLnBlZGFudGljP1oucmVwbGFjZSgvXHQvZywiICAgICIpLnJlcGxhY2UoL14gKyQvZ20sIiIpOloucmVwbGFjZSgvXiggKikoXHQrKS9nbSxmdW5jdGlv''@;'; + put 'put ''bihKLEExLE4xKXtyZXR1cm4gQTErIiAgICAiLnJlcGVhdChOMS5sZW5ndGgpfSk7WjspaWYoISh0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuYmxvY2smJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLmJsb2NrLnNvbWUoZnVuY3Rpb24oSil7cmV0dXJu''@;'; + put 'put ''ISEoUD1KLmNhbGwoe2xleGVyOll9LFosVCkpJiYoWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKSwhMCl9KSkpaWYoUD10aGlzLnRva2VuaXplci5zcGFjZShaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksMT09PVAucmF3Lmxlbmd0aCYmMDxULmxlbmd0aD9UW1Qu''@;'; + put 'put ''bGVuZ3RoLTFdLnJhdys9IlxuIjpULnB1c2goUCk7ZWxzZSBpZihQPXRoaXMudG9rZW5pemVyLmNvZGUoWikpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLCEoZTE9VFtULmxlbmd0aC0xXSl8fCJwYXJhZ3JhcGgiIT09ZTEudHlwZSYmInRleHQiIT09ZTEudHlwZT9ULnB1c2goUCk6KGUx''@;'; + put 'put ''LnJhdys9IlxuIitQLnJhdyxlMS50ZXh0Kz0iXG4iK1AudGV4dCx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1lMS50ZXh0KTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuZmVuY2VzKFopKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSxULnB1c2go''@;'; + put 'put ''UCk7ZWxzZSBpZihQPXRoaXMudG9rZW5pemVyLmhlYWRpbmcoWikpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuaHIoWikpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tl''@;'; + put 'put ''bml6ZXIuYmxvY2txdW90ZShaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5saXN0KFopKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSxULnB1c2goUCk7ZWxzZSBpZihQPXRoaXMudG9rZW5pemVyLmh0bWwoWikpWj1a''@;'; + put 'put ''LnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuZGVmKFopKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSwhKGUxPVRbVC5sZW5ndGgtMV0pfHwicGFyYWdyYXBoIiE9PWUxLnR5cGUmJiJ0ZXh0IiE9PWUxLnR5cGU/dGhpcy50b2tl''@;'; + put 'put ''bnMubGlua3NbUC50YWddfHwodGhpcy50b2tlbnMubGlua3NbUC50YWddPXtocmVmOlAuaHJlZix0aXRsZTpQLnRpdGxlfSk6KGUxLnJhdys9IlxuIitQLnJhdyxlMS50ZXh0Kz0iXG4iK1AucmF3LHRoaXMuaW5saW5lUXVldWVbdGhpcy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPWUxLnRl''@;'; + put 'put ''eHQpO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci50YWJsZShaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5saGVhZGluZyhaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYocjE9Wix0''@;'; + put 'put ''aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRCbG9jayYmZnVuY3Rpb24oKXt2YXIgSj0xLzAsQTE9Wi5zbGljZSgxKSxOMT12b2lkIDA7WS5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRCbG9jay5mb3JFYWNoKGZ1bmN0aW9uKFMxKXsibnVtYmVy''@;'; + put 'put ''Ij09dHlwZW9mKE4xPVMxLmNhbGwoe2xleGVyOnRoaXN9LEExKSkmJjA8PU4xJiYoSj1NYXRoLm1pbihKLE4xKSl9KSxKPDEvMCYmMDw9SiYmKHIxPVouc3Vic3RyaW5nKDAsSisxKSl9KCksdGhpcy5zdGF0ZS50b3AmJihQPXRoaXMudG9rZW5pemVyLnBhcmFncmFwaChyMSkpKWUxPVRbVC5s''@;'; + put 'put ''ZW5ndGgtMV0sWjEmJiJwYXJhZ3JhcGgiPT09ZTEudHlwZT8oZTEucmF3Kz0iXG4iK1AucmF3LGUxLnRleHQrPSJcbiIrUC50ZXh0LHRoaXMuaW5saW5lUXVldWUucG9wKCksdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9ZTEudGV4dCk6VC5wdXNoKFAp''@;'; + put 'put ''LFoxPXIxLmxlbmd0aCE9PVoubGVuZ3RoLFo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIudGV4dChaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksKGUxPVRbVC5sZW5ndGgtMV0pJiYidGV4dCI9PT1lMS50eXBlPyhlMS5yYXcrPSJcbiIr''@;'; + put 'put ''UC5yYXcsZTEudGV4dCs9IlxuIitQLnRleHQsdGhpcy5pbmxpbmVRdWV1ZS5wb3AoKSx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1lMS50ZXh0KTpULnB1c2goUCk7ZWxzZSBpZihaKXt2YXIgcT0iSW5maW5pdGUgbG9vcCBvbiBieXRlOiAiK1ouY2hh''@;'; + put 'put ''ckNvZGVBdCgwKTtpZih0aGlzLm9wdGlvbnMuc2lsZW50KXtjb25zb2xlLmVycm9yKHEpO2JyZWFrfXRocm93IG5ldyBFcnJvcihxKX1yZXR1cm4gdGhpcy5zdGF0ZS50b3A9ITAsVH0sRC5pbmxpbmU9ZnVuY3Rpb24oWixUKXt0aGlzLmlubGluZVF1ZXVlLnB1c2goe3NyYzpaLHRva2VuczpU''@;'; + put 'put ''fSl9LEQuaW5saW5lVG9rZW5zPWZ1bmN0aW9uKFosVCl7dmFyIFAsZTEscjEsWjEsWSxxLEo9dGhpcyxBMT0odm9pZCAwPT09VCYmKFQ9W10pLFopO2lmKHRoaXMudG9rZW5zLmxpbmtzKXt2YXIgTjE9T2JqZWN0LmtleXModGhpcy50b2tlbnMubGlua3MpO2lmKDA8TjEubGVuZ3RoKWZvcig7''@;'; + put 'put ''bnVsbCE9KFoxPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5yZWZsaW5rU2VhcmNoLmV4ZWMoQTEpKTspTjEuaW5jbHVkZXMoWjFbMF0uc2xpY2UoWjFbMF0ubGFzdEluZGV4T2YoIlsiKSsxLC0xKSkmJihBMT1BMS5zbGljZSgwLFoxLmluZGV4KSsiWyIrSSgiYSIsWjFbMF0ubGVuZ3Ro''@;'; + put 'put ''LTIpKyJdIitBMS5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUucmVmbGlua1NlYXJjaC5sYXN0SW5kZXgpKX1mb3IoO251bGwhPShaMT10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmV4ZWMoQTEpKTspQTE9QTEuc2xpY2UoMCxaMS5pbmRleCkrIlsiK0ko''@;'; + put 'put ''ImEiLFoxWzBdLmxlbmd0aC0yKSsiXSIrQTEuc2xpY2UodGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmJsb2NrU2tpcC5sYXN0SW5kZXgpO2Zvcig7bnVsbCE9KFoxPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5lc2NhcGVkRW1TdC5leGVjKEExKSk7KUExPUExLnNsaWNlKDAsWjEu''@;'; + put 'put ''aW5kZXgpKyIrKyIrQTEuc2xpY2UodGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmVzY2FwZWRFbVN0Lmxhc3RJbmRleCk7Zm9yKDtaOylpZihZfHwocT0iIiksWT0hMSwhKHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5pbmxpbmUmJnRoaXMub3B0''@;'; + put 'put ''aW9ucy5leHRlbnNpb25zLmlubGluZS5zb21lKGZ1bmN0aW9uKG4xKXtyZXR1cm4hIShQPW4xLmNhbGwoe2xleGVyOkp9LFosVCkpJiYoWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKSwhMCl9KSkpaWYoUD10aGlzLnRva2VuaXplci5lc2NhcGUoWikpWj1aLnN1YnN0cmlu''@;'; + put 'put ''ZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIudGFnKFopKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSwoZTE9VFtULmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PVAudHlwZSYmInRleHQiPT09ZTEudHlwZT8oZTEucmF3Kz1QLnJhdyxlMS50ZXh0Kz1Q''@;'; + put 'put ''LnRleHQpOlQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIubGluayhaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5yZWZsaW5rKFosdGhpcy50b2tlbnMubGlua3MpKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVu''@;'; + put 'put ''Z3RoKSwoZTE9VFtULmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PVAudHlwZSYmInRleHQiPT09ZTEudHlwZT8oZTEucmF3Kz1QLnJhdyxlMS50ZXh0Kz1QLnRleHQpOlQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuZW1TdHJvbmcoWixBMSxxKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxl''@;'; + put 'put ''bmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5jb2Rlc3BhbihaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5icihaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2Ug''@;'; + put 'put ''aWYoUD10aGlzLnRva2VuaXplci5kZWwoWikpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuYXV0b2xpbmsoWixhMSkpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKCF0aGlzLnN0YXRlLmlu''@;'; + put 'put ''TGluayYmKFA9dGhpcy50b2tlbml6ZXIudXJsKFosYTEpKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYocjE9Wix0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRJbmxpbmUmJmZ1bmN0aW9uKCl7dmFyIG4x''@;'; + put 'put ''PTEvMCxpMT1aLnNsaWNlKDEpLGYxPXZvaWQgMDtKLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydElubGluZS5mb3JFYWNoKGZ1bmN0aW9uKHgxKXsibnVtYmVyIj09dHlwZW9mKGYxPXgxLmNhbGwoe2xleGVyOnRoaXN9LGkxKSkmJjA8PWYxJiYobjE9TWF0aC5taW4objEsZjEpKX0pLG4xPDEv''@;'; + put 'put ''MCYmMDw9bjEmJihyMT1aLnN1YnN0cmluZygwLG4xKzEpKX0oKSxQPXRoaXMudG9rZW5pemVyLmlubGluZVRleHQocjEsbDEpKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSwiXyIhPT1QLnJhdy5zbGljZSgtMSkmJihxPVAucmF3LnNsaWNlKC0xKSksWT0hMCwoZTE9VFtULmxlbmd0aC0x''@;'; + put 'put ''XSkmJiJ0ZXh0Ij09PWUxLnR5cGU/KGUxLnJhdys9UC5yYXcsZTEudGV4dCs9UC50ZXh0KTpULnB1c2goUCk7ZWxzZSBpZihaKXt2YXIgUzE9IkluZmluaXRlIGxvb3Agb24gYnl0ZTogIitaLmNoYXJDb2RlQXQoMCk7aWYodGhpcy5vcHRpb25zLnNpbGVudCl7Y29uc29sZS5lcnJvcihTMSk7''@;'; + put 'put ''YnJlYWt9dGhyb3cgbmV3IEVycm9yKFMxKX1yZXR1cm4gVH0sRD0kLCh5PVt7a2V5OiJydWxlcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue2Jsb2NrOkIsaW5saW5lOlJ9fX1dKSYmRjEoRCx5KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSwkfSgp''@;'; + put 'put ''LHUxPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gJCh5KXt0aGlzLm9wdGlvbnM9eXx8WC5kZWZhdWx0c312YXIgej0kLnByb3RvdHlwZTtyZXR1cm4gei5jb2RlPWZ1bmN0aW9uKHksUCxaKXt2YXIgVDtyZXR1cm4gUD0oUHx8IiIpLm1hdGNoKC9cUyovKVswXSx0aGlzLm9wdGlvbnMuaGlnaGxpZ2h0''@;'; + put 'put ''JiZudWxsIT0oVD10aGlzLm9wdGlvbnMuaGlnaGxpZ2h0KHksUCkpJiZUIT09eSYmKFo9ITAseT1UKSx5PXkucmVwbGFjZSgvXG4kLywiIikrIlxuIixQPyc8cHJlPjxjb2RlIGNsYXNzPSInK3RoaXMub3B0aW9ucy5sYW5nUHJlZml4K2YoUCwhMCkrJyI+JysoWj95OmYoeSwhMCkpKyI8L2Nv''@;'; + put 'put ''ZGU+PC9wcmU+XG4iOiI8cHJlPjxjb2RlPiIrKFo/eTpmKHksITApKSsiPC9jb2RlPjwvcHJlPlxuIn0sei5ibG9ja3F1b3RlPWZ1bmN0aW9uKHkpe3JldHVybiI8YmxvY2txdW90ZT5cbiIreSsiPC9ibG9ja3F1b3RlPlxuIn0sei5odG1sPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6LmhlYWRp''@;'; + put 'put ''bmc9ZnVuY3Rpb24oeSxELFosVCl7cmV0dXJuIHRoaXMub3B0aW9ucy5oZWFkZXJJZHM/IjxoIitEKycgaWQ9IicrKHRoaXMub3B0aW9ucy5oZWFkZXJQcmVmaXgrVC5zbHVnKFopKSsnIj4nK3krIjwvaCIrRCsiPlxuIjoiPGgiK0QrIj4iK3krIjwvaCIrRCsiPlxuIn0sei5ocj1mdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiB0aGlzLm9wdGlvbnMueGh0bWw/Ijxoci8+XG4iOiI8aHI+XG4ifSx6Lmxpc3Q9ZnVuY3Rpb24oeSxELFope3ZhciBUPUQ/Im9sIjoidWwiO3JldHVybiI8IitUKyhEJiYxIT09Wj8nIHN0YXJ0PSInK1orJyInOiIiKSsiPlxuIit5KyI8LyIrVCsiPlxuIn0sei5saXN0aXRl''@;'; + put 'put ''bT1mdW5jdGlvbih5KXtyZXR1cm4iPGxpPiIreSsiPC9saT5cbiJ9LHouY2hlY2tib3g9ZnVuY3Rpb24oeSl7cmV0dXJuIjxpbnB1dCAiKyh5PydjaGVja2VkPSIiICc6IiIpKydkaXNhYmxlZD0iIiB0eXBlPSJjaGVja2JveCInKyh0aGlzLm9wdGlvbnMueGh0bWw/IiAvIjoiIikrIj4gIn0s''@;'; + put 'put ''ei5wYXJhZ3JhcGg9ZnVuY3Rpb24oeSl7cmV0dXJuIjxwPiIreSsiPC9wPlxuIn0sei50YWJsZT1mdW5jdGlvbih5LEQpe3JldHVybiI8dGFibGU+XG48dGhlYWQ+XG4iK3krIjwvdGhlYWQ+XG4iKyhEPUQmJiI8dGJvZHk+IitEKyI8L3Rib2R5PiIpKyI8L3RhYmxlPlxuIn0sei50YWJsZXJv''@;'; + put 'put ''dz1mdW5jdGlvbih5KXtyZXR1cm4iPHRyPlxuIit5KyI8L3RyPlxuIn0sei50YWJsZWNlbGw9ZnVuY3Rpb24oeSxEKXt2YXIgWj1ELmhlYWRlcj8idGgiOiJ0ZCI7cmV0dXJuKEQuYWxpZ24/IjwiK1orJyBhbGlnbj0iJytELmFsaWduKyciPic6IjwiK1orIj4iKSt5KyI8LyIrWisiPlxuIn0s''@;'; + put 'put ''ei5zdHJvbmc9ZnVuY3Rpb24oeSl7cmV0dXJuIjxzdHJvbmc+Iit5KyI8L3N0cm9uZz4ifSx6LmVtPWZ1bmN0aW9uKHkpe3JldHVybiI8ZW0+Iit5KyI8L2VtPiJ9LHouY29kZXNwYW49ZnVuY3Rpb24oeSl7cmV0dXJuIjxjb2RlPiIreSsiPC9jb2RlPiJ9LHouYnI9ZnVuY3Rpb24oKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5vcHRpb25zLnhodG1sPyI8YnIvPiI6Ijxicj4ifSx6LmRlbD1mdW5jdGlvbih5KXtyZXR1cm4iPGRlbD4iK3krIjwvZGVsPiJ9LHoubGluaz1mdW5jdGlvbih5LEQsWil7cmV0dXJuIG51bGw9PT0oeT1WKHRoaXMub3B0aW9ucy5zYW5pdGl6ZSx0aGlzLm9wdGlvbnMuYmFzZVVy''@;'; + put 'put ''bCx5KSk/WjooeT0nPGEgaHJlZj0iJytmKHkpKyciJyxEJiYoeSs9JyB0aXRsZT0iJytEKyciJykseSs9Ij4iK1orIjwvYT4iKX0sei5pbWFnZT1mdW5jdGlvbih5LEQsWil7cmV0dXJuIG51bGw9PT0oeT1WKHRoaXMub3B0aW9ucy5zYW5pdGl6ZSx0aGlzLm9wdGlvbnMuYmFzZVVybCx5KSk/''@;'; + put 'put ''WjooeT0nPGltZyBzcmM9IicreSsnIiBhbHQ9IicrWisnIicsRCYmKHkrPScgdGl0bGU9IicrRCsnIicpLHkrPXRoaXMub3B0aW9ucy54aHRtbD8iLz4iOiI+Iil9LHoudGV4dD1mdW5jdGlvbih5KXtyZXR1cm4geX0sJH0oKSxwMT1mdW5jdGlvbigpe2Z1bmN0aW9uICQoKXt9dmFyIHo9JC5w''@;'; + put 'put ''cm90b3R5cGU7cmV0dXJuIHouc3Ryb25nPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6LmVtPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6LmNvZGVzcGFuPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6LmRlbD1mdW5jdGlvbih5KXtyZXR1cm4geX0sei5odG1sPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6''@;'; + put 'put ''LnRleHQ9ZnVuY3Rpb24oeSl7cmV0dXJuIHl9LHoubGluaz1mdW5jdGlvbih5LEQsWil7cmV0dXJuIiIrWn0sei5pbWFnZT1mdW5jdGlvbih5LEQsWil7cmV0dXJuIiIrWn0sei5icj1mdW5jdGlvbigpe3JldHVybiIifSwkfSgpLHYxPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gJCgpe3RoaXMuc2Vl''@;'; + put 'put ''bj17fX12YXIgej0kLnByb3RvdHlwZTtyZXR1cm4gei5zZXJpYWxpemU9ZnVuY3Rpb24oeSl7cmV0dXJuIHkudG9Mb3dlckNhc2UoKS50cmltKCkucmVwbGFjZSgvPFshXC9hLXpdLio/Pi9naSwiIikucmVwbGFjZSgvW1x1MjAwMC1cdTIwNkZcdTJFMDAtXHUyRTdGXFwnISIjJCUmKCkqKywu''@;'; + put 'put ''Lzo7PD0+P0BbXF1eYHt8fX5dL2csIiIpLnJlcGxhY2UoL1xzL2csIi0iKX0sei5nZXROZXh0U2FmZVNsdWc9ZnVuY3Rpb24oeSxEKXt2YXIgWj15LFQ9MDtpZih0aGlzLnNlZW4uaGFzT3duUHJvcGVydHkoWikpZm9yKFQ9dGhpcy5zZWVuW3ldO1o9eSsiLSIrICsrVCx0aGlzLnNlZW4uaGFz''@;'; + put 'put ''T3duUHJvcGVydHkoWik7KTtyZXR1cm4gRHx8KHRoaXMuc2Vlblt5XT1ULHRoaXMuc2VlbltaXT0wKSxafSx6LnNsdWc9ZnVuY3Rpb24oeSxEKXtyZXR1cm4gdm9pZCAwPT09RCYmKEQ9e30pLHk9dGhpcy5zZXJpYWxpemUoeSksdGhpcy5nZXROZXh0U2FmZVNsdWcoeSxELmRyeXJ1bil9LCR9''@;'; + put 'put ''KCksRTE9ZnVuY3Rpb24oKXtmdW5jdGlvbiAkKHkpe3RoaXMub3B0aW9ucz15fHxYLmRlZmF1bHRzLHRoaXMub3B0aW9ucy5yZW5kZXJlcj10aGlzLm9wdGlvbnMucmVuZGVyZXJ8fG5ldyB1MSx0aGlzLnJlbmRlcmVyPXRoaXMub3B0aW9ucy5yZW5kZXJlcix0aGlzLnJlbmRlcmVyLm9wdGlv''@;'; + put 'put ''bnM9dGhpcy5vcHRpb25zLHRoaXMudGV4dFJlbmRlcmVyPW5ldyBwMSx0aGlzLnNsdWdnZXI9bmV3IHYxfSQucGFyc2U9ZnVuY3Rpb24oeSxEKXtyZXR1cm4gbmV3ICQoRCkucGFyc2UoeSl9LCQucGFyc2VJbmxpbmU9ZnVuY3Rpb24oeSxEKXtyZXR1cm4gbmV3ICQoRCkucGFyc2VJbmxpbmUo''@;'; + put 'put ''eSl9O3ZhciB6PSQucHJvdG90eXBlO3JldHVybiB6LnBhcnNlPWZ1bmN0aW9uKHksRCl7dm9pZCAwPT09RCYmKEQ9ITApO2Zvcih2YXIgWixULFAsZTEscjEsWjEsWSxxLEosQTEsTjEsUzEsbjEsaTEsZjEseDEsSTE9IiIsSjE9eS5sZW5ndGgsdDA9MDt0MDxKMTt0MCsrKWlmKHE9eVt0MF0s''@;'; + put 'put ''dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVycyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW3EudHlwZV0mJighMSE9PSh4MT10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbcS50eXBlXS5jYWxsKHtwYXJz''@;'; + put 'put ''ZXI6dGhpc30scSkpfHwhWyJzcGFjZSIsImhyIiwiaGVhZGluZyIsImNvZGUiLCJ0YWJsZSIsImJsb2NrcXVvdGUiLCJsaXN0IiwiaHRtbCIsInBhcmFncmFwaCIsInRleHQiXS5pbmNsdWRlcyhxLnR5cGUpKSlJMSs9eDF8fCIiO2Vsc2Ugc3dpdGNoKHEudHlwZSl7Y2FzZSJzcGFjZSI6Y29u''@;'; + put 'put ''dGludWU7Y2FzZSJociI6STErPXRoaXMucmVuZGVyZXIuaHIoKTtjb250aW51ZTtjYXNlImhlYWRpbmciOkkxKz10aGlzLnJlbmRlcmVyLmhlYWRpbmcodGhpcy5wYXJzZUlubGluZShxLnRva2VucykscS5kZXB0aCx1KHRoaXMucGFyc2VJbmxpbmUocS50b2tlbnMsdGhpcy50ZXh0UmVuZGVy''@;'; + put 'put ''ZXIpKSx0aGlzLnNsdWdnZXIpO2NvbnRpbnVlO2Nhc2UiY29kZSI6STErPXRoaXMucmVuZGVyZXIuY29kZShxLnRleHQscS5sYW5nLHEuZXNjYXBlZCk7Y29udGludWU7Y2FzZSJ0YWJsZSI6Zm9yKFoxPUo9IiIsUD1xLmhlYWRlci5sZW5ndGgsWj0wO1o8UDtaKyspWjErPXRoaXMucmVuZGVy''@;'; + put 'put ''ZXIudGFibGVjZWxsKHRoaXMucGFyc2VJbmxpbmUocS5oZWFkZXJbWl0udG9rZW5zKSx7aGVhZGVyOiEwLGFsaWduOnEuYWxpZ25bWl19KTtmb3IoSis9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhaMSksWT0iIixQPXEucm93cy5sZW5ndGgsWj0wO1o8UDtaKyspe2ZvcihaMT0iIixlMT0ocjE9''@;'; + put 'put ''cS5yb3dzW1pdKS5sZW5ndGgsVD0wO1Q8ZTE7VCsrKVoxKz10aGlzLnJlbmRlcmVyLnRhYmxlY2VsbCh0aGlzLnBhcnNlSW5saW5lKHIxW1RdLnRva2Vucykse2hlYWRlcjohMSxhbGlnbjpxLmFsaWduW1RdfSk7WSs9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhaMSl9STErPXRoaXMucmVuZGVy''@;'; + put 'put ''ZXIudGFibGUoSixZKTtjb250aW51ZTtjYXNlImJsb2NrcXVvdGUiOlk9dGhpcy5wYXJzZShxLnRva2VucyksSTErPXRoaXMucmVuZGVyZXIuYmxvY2txdW90ZShZKTtjb250aW51ZTtjYXNlImxpc3QiOmZvcihKPXEub3JkZXJlZCxmMD1xLnN0YXJ0LEExPXEubG9vc2UsUD1xLml0ZW1zLmxl''@;'; + put 'put ''bmd0aCxZPSIiLFo9MDtaPFA7WisrKW4xPShTMT1xLml0ZW1zW1pdKS5jaGVja2VkLGkxPVMxLnRhc2ssTjE9IiIsUzEudGFzayYmKGYxPXRoaXMucmVuZGVyZXIuY2hlY2tib3gobjEpLEExPzA8UzEudG9rZW5zLmxlbmd0aCYmInBhcmFncmFwaCI9PT1TMS50b2tlbnNbMF0udHlwZT8oUzEu''@;'; + put 'put ''dG9rZW5zWzBdLnRleHQ9ZjErIiAiK1MxLnRva2Vuc1swXS50ZXh0LFMxLnRva2Vuc1swXS50b2tlbnMmJjA8UzEudG9rZW5zWzBdLnRva2Vucy5sZW5ndGgmJiJ0ZXh0Ij09PVMxLnRva2Vuc1swXS50b2tlbnNbMF0udHlwZSYmKFMxLnRva2Vuc1swXS50b2tlbnNbMF0udGV4dD1mMSsiICIr''@;'; + put 'put ''UzEudG9rZW5zWzBdLnRva2Vuc1swXS50ZXh0KSk6UzEudG9rZW5zLnVuc2hpZnQoe3R5cGU6InRleHQiLHRleHQ6ZjF9KTpOMSs9ZjEpLE4xKz10aGlzLnBhcnNlKFMxLnRva2VucyxBMSksWSs9dGhpcy5yZW5kZXJlci5saXN0aXRlbShOMSxpMSxuMSk7STErPXRoaXMucmVuZGVyZXIubGlz''@;'; + put 'put ''dChZLEosZjApO2NvbnRpbnVlO2Nhc2UiaHRtbCI6STErPXRoaXMucmVuZGVyZXIuaHRtbChxLnRleHQpO2NvbnRpbnVlO2Nhc2UicGFyYWdyYXBoIjpJMSs9dGhpcy5yZW5kZXJlci5wYXJhZ3JhcGgodGhpcy5wYXJzZUlubGluZShxLnRva2VucykpO2NvbnRpbnVlO2Nhc2UidGV4dCI6Zm9y''@;'; + put 'put ''KFk9cS50b2tlbnM/dGhpcy5wYXJzZUlubGluZShxLnRva2Vucyk6cS50ZXh0O3QwKzE8SjEmJiJ0ZXh0Ij09PXlbdDArMV0udHlwZTspWSs9IlxuIisoKHE9eVsrK3QwXSkudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUocS50b2tlbnMpOnEudGV4dCk7STErPUQ/dGhpcy5yZW5kZXJlci5wYXJh''@;'; + put 'put ''Z3JhcGgoWSk6WTtjb250aW51ZTtkZWZhdWx0OnZhciBmMD0nVG9rZW4gd2l0aCAiJytxLnR5cGUrJyIgdHlwZSB3YXMgbm90IGZvdW5kLic7aWYodGhpcy5vcHRpb25zLnNpbGVudClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKGYwKTt0aHJvdyBuZXcgRXJyb3IoZjApfXJldHVybiBJMX0s''@;'; + put 'put ''ei5wYXJzZUlubGluZT1mdW5jdGlvbih5LEQpe0Q9RHx8dGhpcy5yZW5kZXJlcjtmb3IodmFyIFosVCxQPSIiLGUxPXkubGVuZ3RoLHIxPTA7cjE8ZTE7cjErKylpZihaPXlbcjFdLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnMmJnRo''@;'; + put 'put ''aXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1taLnR5cGVdJiYoITEhPT0oVD10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbWi50eXBlXS5jYWxsKHtwYXJzZXI6dGhpc30sWikpfHwhWyJlc2NhcGUiLCJodG1sIiwibGluayIsImltYWdlIiwic3Ryb25nIiwiZW0iLCJj''@;'; + put 'put ''b2Rlc3BhbiIsImJyIiwiZGVsIiwidGV4dCJdLmluY2x1ZGVzKFoudHlwZSkpKVArPVR8fCIiO2Vsc2Ugc3dpdGNoKFoudHlwZSl7Y2FzZSJlc2NhcGUiOmNhc2UidGV4dCI6UCs9RC50ZXh0KFoudGV4dCk7YnJlYWs7Y2FzZSJodG1sIjpQKz1ELmh0bWwoWi50ZXh0KTticmVhaztjYXNlImxp''@;'; + put 'put ''bmsiOlArPUQubGluayhaLmhyZWYsWi50aXRsZSx0aGlzLnBhcnNlSW5saW5lKFoudG9rZW5zLEQpKTticmVhaztjYXNlImltYWdlIjpQKz1ELmltYWdlKFouaHJlZixaLnRpdGxlLFoudGV4dCk7YnJlYWs7Y2FzZSJzdHJvbmciOlArPUQuc3Ryb25nKHRoaXMucGFyc2VJbmxpbmUoWi50b2tl''@;'; + put 'put ''bnMsRCkpO2JyZWFrO2Nhc2UiZW0iOlArPUQuZW0odGhpcy5wYXJzZUlubGluZShaLnRva2VucyxEKSk7YnJlYWs7Y2FzZSJjb2Rlc3BhbiI6UCs9RC5jb2Rlc3BhbihaLnRleHQpO2JyZWFrO2Nhc2UiYnIiOlArPUQuYnIoKTticmVhaztjYXNlImRlbCI6UCs9RC5kZWwodGhpcy5wYXJzZUlu''@;'; + put 'put ''bGluZShaLnRva2VucyxEKSk7YnJlYWs7ZGVmYXVsdDp2YXIgWjE9J1Rva2VuIHdpdGggIicrWi50eXBlKyciIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihaMSk7dGhyb3cgbmV3IEVycm9yKFoxKX1yZXR1cm4g''@;'; + put 'put ''UH0sJH0oKTtmdW5jdGlvbiBqKCQseix5KXtpZihudWxsPT0kKXRocm93IG5ldyBFcnJvcigibWFya2VkKCk6IGlucHV0IHBhcmFtZXRlciBpcyB1bmRlZmluZWQgb3IgbnVsbCIpO2lmKCJzdHJpbmciIT10eXBlb2YgJCl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZCgpOiBpbnB1dCBwYXJhbWV0''@;'; + put 'put ''ZXIgaXMgb2YgdHlwZSAiK09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCgkKSsiLCBzdHJpbmcgZXhwZWN0ZWQiKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgeiYmKHk9eix6PW51bGwpLE4oej14KHt9LGouZGVmYXVsdHMsenx8e30pKSx5KXt2YXIgRCxaPXouaGlnaGxpZ2h0O3RyeXtE''@;'; + put 'put ''PWgxLmxleCgkLHopfWNhdGNoKHIxKXtyZXR1cm4geShyMSl9dmFyIFQ9ZnVuY3Rpb24ocjEpe3ZhciBaMTtpZighcjEpdHJ5e3oud2Fsa1Rva2VucyYmai53YWxrVG9rZW5zKEQsei53YWxrVG9rZW5zKSxaMT1FMS5wYXJzZShELHopfWNhdGNoKFkpe3IxPVl9cmV0dXJuIHouaGlnaGxpZ2h0''@;'; + put 'put ''PVoscjE/eShyMSk6eShudWxsLFoxKX07aWYoIVp8fFoubGVuZ3RoPDN8fChkZWxldGUgei5oaWdobGlnaHQsIUQubGVuZ3RoKSlyZXR1cm4gVCgpO3ZhciBQPTA7cmV0dXJuIGoud2Fsa1Rva2VucyhELGZ1bmN0aW9uKHIxKXsiY29kZSI9PT1yMS50eXBlJiYoUCsrLHNldFRpbWVvdXQoZnVu''@;'; + put 'put ''Y3Rpb24oKXtaKHIxLnRleHQscjEubGFuZyxmdW5jdGlvbihaMSxZKXtpZihaMSlyZXR1cm4gVChaMSk7bnVsbCE9WSYmWSE9PXIxLnRleHQmJihyMS50ZXh0PVkscjEuZXNjYXBlZD0hMCksMD09LS1QJiZUKCl9KX0sMCkpfSksdm9pZCgwPT09UCYmVCgpKX10cnl7dmFyIGUxPWgxLmxleCgk''@;'; + put 'put ''LHopO3JldHVybiB6LndhbGtUb2tlbnMmJmoud2Fsa1Rva2VucyhlMSx6LndhbGtUb2tlbnMpLEUxLnBhcnNlKGUxLHopfWNhdGNoKHIxKXtpZihyMS5tZXNzYWdlKz0iXG5QbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL21hcmtlZGpzL21hcmtlZC4iLHouc2lsZW50''@;'; + put 'put ''KXJldHVybiI8cD5BbiBlcnJvciBvY2N1cnJlZDo8L3A+PHByZT4iK2YocjEubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiI7dGhyb3cgcjF9fWoub3B0aW9ucz1qLnNldE9wdGlvbnM9ZnVuY3Rpb24oJCl7cmV0dXJuIHgoai5kZWZhdWx0cywkKSxYLmRlZmF1bHRzPSQ9ai5kZWZhdWx0cyxqfSxq''@;'; + put 'put ''LmdldERlZmF1bHRzPWUsai5kZWZhdWx0cz1YLmRlZmF1bHRzLGoudXNlPWZ1bmN0aW9uKCl7Zm9yKHZhciAkPWFyZ3VtZW50cy5sZW5ndGgsej1uZXcgQXJyYXkoJCkseT0wO3k8JDt5Kyspelt5XT1hcmd1bWVudHNbeV07dmFyIEQsWj14LmFwcGx5KHZvaWQgMCxbe31dLmNvbmNhdCh6KSks''@;'; + put 'put ''VD1qLmRlZmF1bHRzLmV4dGVuc2lvbnN8fHtyZW5kZXJlcnM6e30sY2hpbGRUb2tlbnM6e319O3ouZm9yRWFjaChmdW5jdGlvbihQKXtpZihQLmV4dGVuc2lvbnMmJihEPSEwLFAuZXh0ZW5zaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKEope2lmKCFKLm5hbWUpdGhyb3cgbmV3IEVycm9yKCJleHRl''@;'; + put 'put ''bnNpb24gbmFtZSByZXF1aXJlZCIpO3ZhciBBMTtpZihKLnJlbmRlcmVyJiYoVC5yZW5kZXJlcnNbSi5uYW1lXT0oQTE9VC5yZW5kZXJlcnM/VC5yZW5kZXJlcnNbSi5uYW1lXTpudWxsKT9mdW5jdGlvbigpe2Zvcih2YXIgTjE9YXJndW1lbnRzLmxlbmd0aCxTMT1uZXcgQXJyYXkoTjEpLG4x''@;'; + put 'put ''PTA7bjE8TjE7bjErKylTMVtuMV09YXJndW1lbnRzW24xXTt2YXIgaTE9Si5yZW5kZXJlci5hcHBseSh0aGlzLFMxKTtyZXR1cm4hMT09PWkxP0ExLmFwcGx5KHRoaXMsUzEpOmkxfTpKLnJlbmRlcmVyKSxKLnRva2VuaXplcil7aWYoIUoubGV2ZWx8fCJibG9jayIhPT1KLmxldmVsJiYiaW5s''@;'; + put 'put ''aW5lIiE9PUoubGV2ZWwpdGhyb3cgbmV3IEVycm9yKCJleHRlbnNpb24gbGV2ZWwgbXVzdCBiZSAnYmxvY2snIG9yICdpbmxpbmUnIik7VFtKLmxldmVsXT9UW0oubGV2ZWxdLnVuc2hpZnQoSi50b2tlbml6ZXIpOlRbSi5sZXZlbF09W0oudG9rZW5pemVyXSxKLnN0YXJ0JiYoImJsb2NrIj09''@;'; + put 'put ''PUoubGV2ZWw/VC5zdGFydEJsb2NrP1Quc3RhcnRCbG9jay5wdXNoKEouc3RhcnQpOlQuc3RhcnRCbG9jaz1bSi5zdGFydF06ImlubGluZSI9PT1KLmxldmVsJiYoVC5zdGFydElubGluZT9ULnN0YXJ0SW5saW5lLnB1c2goSi5zdGFydCk6VC5zdGFydElubGluZT1bSi5zdGFydF0pKX1KLmNo''@;'; + put 'put ''aWxkVG9rZW5zJiYoVC5jaGlsZFRva2Vuc1tKLm5hbWVdPUouY2hpbGRUb2tlbnMpfSkpLFAucmVuZGVyZXIpe3ZhciBlMSxyMT1qLmRlZmF1bHRzLnJlbmRlcmVyfHxuZXcgdTE7Zm9yKGUxIGluIFAucmVuZGVyZXIpIWZ1bmN0aW9uKEope3ZhciBBMT1yMVtKXTtyMVtKXT1mdW5jdGlvbigp''@;'; + put 'put ''e2Zvcih2YXIgTjE9YXJndW1lbnRzLmxlbmd0aCxTMT1uZXcgQXJyYXkoTjEpLG4xPTA7bjE8TjE7bjErKylTMVtuMV09YXJndW1lbnRzW24xXTt2YXIgaTE9UC5yZW5kZXJlcltKXS5hcHBseShyMSxTMSk7cmV0dXJuITE9PT1pMT9BMS5hcHBseShyMSxTMSk6aTF9fShlMSk7Wi5yZW5kZXJl''@;'; + put 'put ''cj1yMX1pZihQLnRva2VuaXplcil7dmFyIFoxLFk9ai5kZWZhdWx0cy50b2tlbml6ZXJ8fG5ldyBPO2ZvcihaMSBpbiBQLnRva2VuaXplcikhZnVuY3Rpb24oSil7dmFyIEExPVlbSl07WVtKXT1mdW5jdGlvbigpe2Zvcih2YXIgTjE9YXJndW1lbnRzLmxlbmd0aCxTMT1uZXcgQXJyYXkoTjEp''@;'; + put 'put ''LG4xPTA7bjE8TjE7bjErKylTMVtuMV09YXJndW1lbnRzW24xXTt2YXIgaTE9UC50b2tlbml6ZXJbSl0uYXBwbHkoWSxTMSk7cmV0dXJuITE9PT1pMT9BMS5hcHBseShZLFMxKTppMX19KFoxKTtaLnRva2VuaXplcj1ZfXZhciBxO1Aud2Fsa1Rva2VucyYmKHE9ai5kZWZhdWx0cy53YWxrVG9r''@;'; + put 'put ''ZW5zLFoud2Fsa1Rva2Vucz1mdW5jdGlvbihKKXtQLndhbGtUb2tlbnMuY2FsbCh0aGlzLEopLHEmJnEuY2FsbCh0aGlzLEopfSksRCYmKFouZXh0ZW5zaW9ucz1UKSxqLnNldE9wdGlvbnMoWil9KX0sai53YWxrVG9rZW5zPWZ1bmN0aW9uKCQseil7Zm9yKHZhciB5LEQ9QSgkKTshKHk9RCgp''@;'; + put 'put ''KS5kb25lOykhZnVuY3Rpb24oKXt2YXIgWj15LnZhbHVlO3N3aXRjaCh6LmNhbGwoaixaKSxaLnR5cGUpe2Nhc2UidGFibGUiOmZvcih2YXIgVD1BKFouaGVhZGVyKTshKFA9VCgpKS5kb25lOyl7dmFyIFA9UC52YWx1ZTtqLndhbGtUb2tlbnMoUC50b2tlbnMseil9Zm9yKHZhciBlMSxyMT1B''@;'; + put 'put ''KFoucm93cyk7IShlMT1yMSgpKS5kb25lOylmb3IodmFyIFoxPUEoZTEudmFsdWUpOyEoWT1aMSgpKS5kb25lOyl7dmFyIFk9WS52YWx1ZTtqLndhbGtUb2tlbnMoWS50b2tlbnMseil9YnJlYWs7Y2FzZSJsaXN0IjpqLndhbGtUb2tlbnMoWi5pdGVtcyx6KTticmVhaztkZWZhdWx0OmouZGVm''@;'; + put 'put ''YXVsdHMuZXh0ZW5zaW9ucyYmai5kZWZhdWx0cy5leHRlbnNpb25zLmNoaWxkVG9rZW5zJiZqLmRlZmF1bHRzLmV4dGVuc2lvbnMuY2hpbGRUb2tlbnNbWi50eXBlXT9qLmRlZmF1bHRzLmV4dGVuc2lvbnMuY2hpbGRUb2tlbnNbWi50eXBlXS5mb3JFYWNoKGZ1bmN0aW9uKHEpe2oud2Fsa1Rv''@;'; + put 'put ''a2VucyhaW3FdLHopfSk6Wi50b2tlbnMmJmoud2Fsa1Rva2VucyhaLnRva2Vucyx6KX19KCl9LGoucGFyc2VJbmxpbmU9ZnVuY3Rpb24oJCx6KXtpZihudWxsPT0kKXRocm93IG5ldyBFcnJvcigibWFya2VkLnBhcnNlSW5saW5lKCk6IGlucHV0IHBhcmFtZXRlciBpcyB1bmRlZmluZWQgb3Ig''@;'; + put 'put ''bnVsbCIpO2lmKCJzdHJpbmciIT10eXBlb2YgJCl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZC5wYXJzZUlubGluZSgpOiBpbnB1dCBwYXJhbWV0ZXIgaXMgb2YgdHlwZSAiK09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCgkKSsiLCBzdHJpbmcgZXhwZWN0ZWQiKTtOKHo9eCh7fSxqLmRl''@;'; + put 'put ''ZmF1bHRzLHp8fHt9KSk7dHJ5e3ZhciB5PWgxLmxleElubGluZSgkLHopO3JldHVybiB6LndhbGtUb2tlbnMmJmoud2Fsa1Rva2Vucyh5LHoud2Fsa1Rva2VucyksRTEucGFyc2VJbmxpbmUoeSx6KX1jYXRjaChEKXtpZihELm1lc3NhZ2UrPSJcblBsZWFzZSByZXBvcnQgdGhpcyB0byBodHRw''@;'; + put 'put ''czovL2dpdGh1Yi5jb20vbWFya2VkanMvbWFya2VkLiIsei5zaWxlbnQpcmV0dXJuIjxwPkFuIGVycm9yIG9jY3VycmVkOjwvcD48cHJlPiIrZihELm1lc3NhZ2UrIiIsITApKyI8L3ByZT4iO3Rocm93IER9fSxqLlBhcnNlcj1FMSxqLnBhcnNlcj1FMS5wYXJzZSxqLlJlbmRlcmVyPXUxLGou''@;'; + put 'put ''VGV4dFJlbmRlcmVyPXAxLGouTGV4ZXI9aDEsai5sZXhlcj1oMS5sZXgsai5Ub2tlbml6ZXI9TyxqLlNsdWdnZXI9djEsYzE9KGoucGFyc2U9aikub3B0aW9uczt2YXIgVjE9ai5zZXRPcHRpb25zLF8xPWoudXNlLFE9ai53YWxrVG9rZW5zLHMxPWoucGFyc2VJbmxpbmUsbTE9aixiMT1FMS5w''@;'; + put 'put ''YXJzZSxCMT1oMS5sZXg7WC5MZXhlcj1oMSxYLlBhcnNlcj1FMSxYLlJlbmRlcmVyPXUxLFguU2x1Z2dlcj12MSxYLlRleHRSZW5kZXJlcj1wMSxYLlRva2VuaXplcj1PLFguZ2V0RGVmYXVsdHM9ZSxYLmxleGVyPUIxLFgubWFya2VkPWosWC5vcHRpb25zPWMxLFgucGFyc2U9bTEsWC5wYXJz''@;'; + put 'put ''ZUlubGluZT1zMSxYLnBhcnNlcj1iMSxYLnNldE9wdGlvbnM9VjEsWC51c2U9XzEsWC53YWxrVG9rZW5zPVEsT2JqZWN0LmRlZmluZVByb3BlcnR5KFgsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSksZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7IWZ1bmN0aW9uKCl7aWYodm9pZCAwPT09d2lu''@;'; + put 'put ''ZG93LlJlZmxlY3R8fHZvaWQgMD09PXdpbmRvdy5jdXN0b21FbGVtZW50c3x8d2luZG93LmN1c3RvbUVsZW1lbnRzLnBvbHlmaWxsV3JhcEZsdXNoQ2FsbGJhY2spcmV0dXJuO2NvbnN0IFg9SFRNTEVsZW1lbnQ7d2luZG93LkhUTUxFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIFJlZmxlY3Qu''@;'; + put 'put ''Y29uc3RydWN0KFgsW10sdGhpcy5jb25zdHJ1Y3Rvcil9LEhUTUxFbGVtZW50LnByb3RvdHlwZT1YLnByb3RvdHlwZSxIVE1MRWxlbWVudC5wcm90b3R5cGUuY29uc3RydWN0b3I9SFRNTEVsZW1lbnQsT2JqZWN0LnNldFByb3RvdHlwZU9mKEhUTUxFbGVtZW50LFgpfSgpfSgpLGZ1bmN0aW9u''@;'; + put 'put ''KCl7InVzZSBzdHJpY3QiO3ZhciBYO2Z1bmN0aW9uIEYxKHQpe3ZhciBpPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGk8dC5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6dFtpKytdfTp7ZG9uZTohMH19fXZhciBvLGs9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVz''@;'; + put 'put ''P09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbih0LGksbil7cmV0dXJuIHQ9PUFycmF5LnByb3RvdHlwZXx8dD09T2JqZWN0LnByb3RvdHlwZXx8KHRbaV09bi52YWx1ZSksdH0sZT1mdW5jdGlvbiBBKHQpe3Q9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyx0''@;'; + put 'put ''LCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7KytpKXt2YXIgbj10W2ldO2lmKG4mJm4uTWF0aD09TWF0aClyZXR1cm4gbn10aHJv''@;'; + put 'put ''dyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpfSh0aGlzKTtmdW5jdGlvbiBsKHQsaSl7aWYoaSl0Ont2YXIgbj1lO3Q9dC5zcGxpdCgiLiIpO2Zvcih2YXIgcz0wO3M8dC5sZW5ndGgtMTtzKyspe3ZhciBkPXRbc107aWYoIShkIGluIG4pKWJyZWFrIHQ7bj1uW2RdfShpPWko''@;'; + put 'put ''cz1uW3Q9dFt0Lmxlbmd0aC0xXV0pKSE9cyYmbnVsbCE9aSYmayhuLHQse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTppfSl9fWZ1bmN0aW9uIHIodCl7cmV0dXJuKHQ9e25leHQ6dH0pW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdH1mdW5jdGlv''@;'; + put 'put ''biBhKHQpe3ZhciBpPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJnRbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gaT9pLmNhbGwodCk6e25leHQ6RjEodCl9fWZ1bmN0aW9uIGModCl7aWYoISh0IGluc3RhbmNlb2YgQXJyYXkpKXt0PWEodCk7Zm9yKHZhciBp''@;'; + put 'put ''LG49W107IShpPXQubmV4dCgpKS5kb25lOyluLnB1c2goaS52YWx1ZSk7dD1ufXJldHVybiB0fWlmKGwoIlN5bWJvbCIsZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihkLG0pe3RoaXMuZz1kLGsodGhpcywiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0p''@;'; + put 'put ''fWlmKHQpcmV0dXJuIHQ7bi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nfTt2YXIgcz0wO3JldHVybiBmdW5jdGlvbiBpKGQpe2lmKHRoaXMgaW5zdGFuY2VvZiBpKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3Jl''@;'; + put 'put ''dHVybiBuZXcgbigianNjb21wX3N5bWJvbF8iKyhkfHwiIikrIl8iK3MrKyxkKX19KSxsKCJTeW1ib2wuaXRlcmF0b3IiLGZ1bmN0aW9uKHQpe2lmKHQpcmV0dXJuIHQ7dD1TeW1ib2woIlN5bWJvbC5pdGVyYXRvciIpO2Zvcih2YXIgaT0iQXJyYXkgSW50OEFycmF5IFVpbnQ4QXJyYXkgVWlu''@;'; + put 'put ''dDhDbGFtcGVkQXJyYXkgSW50MTZBcnJheSBVaW50MTZBcnJheSBJbnQzMkFycmF5IFVpbnQzMkFycmF5IEZsb2F0MzJBcnJheSBGbG9hdDY0QXJyYXkiLnNwbGl0KCIgIiksbj0wO248aS5sZW5ndGg7bisrKXt2YXIgcz1lW2lbbl1dOyJmdW5jdGlvbiI9PXR5cGVvZiBzJiYiZnVuY3Rpb24i''@;'; + put 'put ''IT10eXBlb2Ygcy5wcm90b3R5cGVbdF0mJmsocy5wcm90b3R5cGUsdCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHIoRjEodGhpcykpfX0pfXJldHVybiB0fSksImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZilvPU9i''@;'; + put 'put ''amVjdC5zZXRQcm90b3R5cGVPZjtlbHNle3ZhciBoO3Q6e3ZhciBnPXt9O3RyeXtnLl9fcHJvdG9fXz17YTohMH0saD1nLmE7YnJlYWsgdH1jYXRjaCh0KXt9aD0hMX1vPWg/ZnVuY3Rpb24odCxpKXtpZih0Ll9fcHJvdG9fXz1pLHQuX19wcm90b19fIT09aSl0aHJvdyBuZXcgVHlwZUVycm9y''@;'; + put 'put ''KHQrIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiB0fTpudWxsfXZhciB1PW87ZnVuY3Rpb24gcCgpe3RoaXMudT0hMSx0aGlzLmg9bnVsbCx0aGlzLkthPXZvaWQgMCx0aGlzLmc9MSx0aGlzLmRhPTAsdGhpcy5pPW51bGx9ZnVuY3Rpb24gdih0KXtpZih0LnUpdGhyb3cgbmV3IFR5cGVF''@;'; + put 'put ''cnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3QudT0hMH1mdW5jdGlvbiBIKHQsaSl7dC5pPXtXYTppLCRhOiEwfSx0Lmc9dC5kYX1mdW5jdGlvbiBDKHQsaSl7cmV0dXJuIHQuZz0zLHt2YWx1ZTppfX1mdW5jdGlvbiBWKHQpe3RoaXMuZz1uZXcgcCx0aGlzLmg9dH1mdW5j''@;'; + put 'put ''dGlvbiBfKHQsaSxuLHMpe3RyeXt2YXIgZD1pLmNhbGwodC5nLmgsbik7aWYoIShkIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitkKyIgaXMgbm90IGFuIG9iamVjdCIpO2lmKCFkLmRvbmUpcmV0dXJuIHQuZy51PSExLGQ7dmFyIG09''@;'; + put 'put ''ZC52YWx1ZX1jYXRjaChMKXtyZXR1cm4gdC5nLmg9bnVsbCxIKHQuZyxMKSxiKHQpfXJldHVybiB0LmcuaD1udWxsLHMuY2FsbCh0LmcsbSksYih0KX1mdW5jdGlvbiBiKHQpe2Zvcig7dC5nLmc7KXRyeXt2YXIgaT10LmgodC5nKTtpZihpKXJldHVybiB0LmcudT0hMSx7dmFsdWU6aS52YWx1''@;'; + put 'put ''ZSxkb25lOiExfX1jYXRjaChuKXt0LmcuS2E9dm9pZCAwLEgodC5nLG4pfWlmKHQuZy51PSExLHQuZy5pKXtpZihpPXQuZy5pLHQuZy5pPW51bGwsaS4kYSl0aHJvdyBpLldhO3JldHVybnt2YWx1ZTppLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fWZ1bmN0''@;'; + put 'put ''aW9uIE0odCl7dGhpcy5uZXh0PWZ1bmN0aW9uKGkpe3JldHVybiB2KHQuZyksdC5nLmg/aT1fKHQsdC5nLmgubmV4dCxpLHQuZy5PKToodC5nLk8oaSksaT1iKHQpKSxpfSx0aGlzLnRocm93PWZ1bmN0aW9uKGkpe3JldHVybiB2KHQuZyksdC5nLmg/aT1fKHQsdC5nLmgudGhyb3csaSx0Lmcu''@;'; + put 'put ''Tyk6KEgodC5nLGkpLGk9Yih0KSksaX0sdGhpcy5yZXR1cm49ZnVuY3Rpb24oaSl7cmV0dXJuIGZ1bmN0aW9uIFModCxpKXt2KHQuZyk7dmFyIG49dC5nLmg7cmV0dXJuIG4/Xyh0LCJyZXR1cm4iaW4gbj9uLnJldHVybjpmdW5jdGlvbihzKXtyZXR1cm57dmFsdWU6cyxkb25lOiEwfX0saSx0''@;'; + put 'put ''LmcucmV0dXJuKToodC5nLnJldHVybihpKSxiKHQpKX0odCxpKX0sdGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fWZ1bmN0aW9uIHgodCxpKXtyZXR1cm4gaT1uZXcgTShuZXcgVihpKSksdSYmdC5wcm90b3R5cGUmJnUoaSx0LnByb3RvdHlwZSksaX1wLnBy''@;'; + put 'put ''b3RvdHlwZS5PPWZ1bmN0aW9uKHQpe3RoaXMuS2E9dH0scC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKHQpe3RoaXMuaT17cmV0dXJuOnR9LHRoaXMuZz10aGlzLmRhfSxBcnJheS5mcm9tfHwoQXJyYXkuZnJvbT1mdW5jdGlvbih0KXtyZXR1cm5bXS5zbGljZS5jYWxsKHQpfSksT2JqZWN0''@;'; + put 'put ''LmFzc2lnbnx8KE9iamVjdC5hc3NpZ249ZnVuY3Rpb24odCl7Zm9yKHZhciBzLGk9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSksbj0wO248aS5sZW5ndGg7bisrKWlmKHM9aVtuXSlmb3IodmFyIGQ9dCxtPU9iamVjdC5rZXlzKHMpLEw9MDtMPG0ubGVuZ3RoO0wrKyl7dmFyIEY9bVtMXTtk''@;'; + put 'put ''W0ZdPXNbRl19cmV0dXJuIHR9KTt2YXIgRT1zZXRUaW1lb3V0O2Z1bmN0aW9uIHcoKXt9ZnVuY3Rpb24gSSh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBJKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm9taXNlcyBtdXN0IGJlIGNvbnN0cnVjdGVkIHZpYSBuZXciKTtpZigiZnVuY3Rpb24iIT10''@;'; + put 'put ''eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJub3QgYSBmdW5jdGlvbiIpO3RoaXMuTj0wLHRoaXMuRWE9ITEsdGhpcy5JPXZvaWQgMCx0aGlzLmJhPVtdLGExKHQsdGhpcyl9ZnVuY3Rpb24gVyh0LGkpe2Zvcig7Mz09PXQuTjspdD10Lkk7MD09PXQuTj90LmJhLnB1c2goaSk6KHQuRWE9''@;'; + put 'put ''ITAsRTEoZnVuY3Rpb24oKXt2YXIgbj0xPT09dC5OP2kuYmI6aS5jYjtpZihudWxsPT09bikoMT09PXQuTj9POkIpKGkucHJvbWlzZSx0LkkpO2Vsc2V7dHJ5e3ZhciBzPW4odC5JKX1jYXRjaChkKXtyZXR1cm4gdm9pZCBCKGkucHJvbWlzZSxkKX1PKGkucHJvbWlzZSxzKX19KSl9ZnVuY3Rp''@;'; + put 'put ''b24gTyh0LGkpe3RyeXtpZihpPT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJBIHByb21pc2UgY2Fubm90IGJlIHJlc29sdmVkIHdpdGggaXRzZWxmLiIpO2lmKGkmJigib2JqZWN0Ij09dHlwZW9mIGl8fCJmdW5jdGlvbiI9PXR5cGVvZiBpKSl7dmFyIG49aS50aGVuO2lmKGkgaW5zdGFuY2Vv''@;'; + put 'put ''ZiBJKXJldHVybiB0Lk49Myx0Lkk9aSx2b2lkIFIodCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pcmV0dXJuIHZvaWQgYTEoZnVuY3Rpb24gTih0LGkpe3JldHVybiBmdW5jdGlvbigpe3QuYXBwbHkoaSxhcmd1bWVudHMpfX0obixpKSx0KX10Lk49MSx0Lkk9aSxSKHQpfWNhdGNoKHMpe0Io''@;'; + put 'put ''dCxzKX19ZnVuY3Rpb24gQih0LGkpe3QuTj0yLHQuST1pLFIodCl9ZnVuY3Rpb24gUih0KXsyPT09dC5OJiYwPT09dC5iYS5sZW5ndGgmJkUxKGZ1bmN0aW9uKCl7dC5FYXx8InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlJiZjb25zb2xlLndhcm4oIlBvc3NpYmxlIFVuaGFu''@;'; + put 'put ''ZGxlZCBQcm9taXNlIFJlamVjdGlvbjoiLHQuSSl9KTtmb3IodmFyIGk9MCxuPXQuYmEubGVuZ3RoO2k8bjtpKyspVyh0LHQuYmFbaV0pO3QuYmE9bnVsbH1mdW5jdGlvbiBsMSh0LGksbil7dGhpcy5iYj0iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGwsdGhpcy5jYj0iZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgaT9pOm51bGwsdGhpcy5wcm9taXNlPW59ZnVuY3Rpb24gYTEodCxpKXt2YXIgbj0hMTt0cnl7dChmdW5jdGlvbihzKXtufHwobj0hMCxPKGkscykpfSxmdW5jdGlvbihzKXtufHwobj0hMCxCKGkscykpfSl9Y2F0Y2gocyl7bnx8KG49ITAsQihpLHMpKX19ZnVuY3Rpb24gdTEodCl7''@;'; + put 'put ''cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3Rvcj09PUk/dDpuZXcgSShmdW5jdGlvbihpKXtpKHQpfSl9SS5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbihudWxsLHQpfSxJLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsaSl7dmFy''@;'; + put 'put ''IG49bmV3IHRoaXMuY29uc3RydWN0b3Iodyk7cmV0dXJuIFcodGhpcyxuZXcgbDEodCxpLG4pKSxufSxJLnByb3RvdHlwZS5maW5hbGx5PWZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gaS5yZXNvbHZlKHQoKSku''@;'; + put 'put ''dGhlbihmdW5jdGlvbigpe3JldHVybiBufSl9LGZ1bmN0aW9uKG4pe3JldHVybiBpLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGkucmVqZWN0KG4pfSl9KX07dmFyIHQsaSxtLG4scyxkLEUxPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRJbW1lZGlhdGUmJmZ1bmN0aW9uKHQp''@;'; + put 'put ''e3NldEltbWVkaWF0ZSh0KX18fGZ1bmN0aW9uKHQpe0UodCwwKX07aWYoIXdpbmRvdy5Qcm9taXNlKXt3aW5kb3cuUHJvbWlzZT1JLEkucHJvdG90eXBlLnRoZW49SS5wcm90b3R5cGUudGhlbixJLmFsbD1mdW5jdGlvbiBoMSh0KXtyZXR1cm4gbmV3IEkoZnVuY3Rpb24oaSxuKXtmdW5jdGlv''@;'; + put 'put ''biBzKEYsRyl7dHJ5e2lmKEcmJigib2JqZWN0Ij09dHlwZW9mIEd8fCJmdW5jdGlvbiI9PXR5cGVvZiBHKSl7dmFyIFU9Ry50aGVuO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBVKXJldHVybiB2b2lkIFUuY2FsbChHLGZ1bmN0aW9uKEspe3MoRixLKX0sbil9ZFtGXT1HLDA9PS0tbSYmaShkKX1j''@;'; + put 'put ''YXRjaChLKXtuKEspfX1pZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIG4obmV3IFR5cGVFcnJvcigiUHJvbWlzZS5hbGwgYWNjZXB0cyBhbiBhcnJheSIpKTt2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTtpZigwPT09ZC5sZW5ndGgpcmV0dXJuIGkoW10pO2Zvcih2''@;'; + put 'put ''YXIgbT1kLmxlbmd0aCxMPTA7TDxkLmxlbmd0aDtMKyspcyhMLGRbTF0pfSl9LEkucmFjZT1mdW5jdGlvbiB2MSh0KXtyZXR1cm4gbmV3IEkoZnVuY3Rpb24oaSxuKXtpZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIG4obmV3IFR5cGVFcnJvcigiUHJvbWlzZS5yYWNlIGFjY2VwdHMg''@;'; + put 'put ''YW4gYXJyYXkiKSk7Zm9yKHZhciBzPTAsZD10Lmxlbmd0aDtzPGQ7cysrKXUxKHRbc10pLnRoZW4oaSxuKX0pfSxJLnJlc29sdmU9dTEsSS5yZWplY3Q9ZnVuY3Rpb24gcDEodCl7cmV0dXJuIG5ldyBJKGZ1bmN0aW9uKGksbil7bih0KX0pfTt2YXIgaj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9k''@;'; + put 'put ''ZSgiIiksYzE9W107bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtmb3IodmFyIHQ9YzEubGVuZ3RoLGk9MDtpPHQ7aSsrKWMxW2ldKCk7YzEuc3BsaWNlKDAsdCl9KS5vYnNlcnZlKGose2NoYXJhY3RlckRhdGE6ITB9KSxFMT1mdW5jdGlvbih0KXtjMS5wdXNoKHQpLGoudGV4dENv''@;'; + put 'put ''bnRlbnQ9MDxqLnRleHRDb250ZW50Lmxlbmd0aD8iIjoiYSJ9fShmdW5jdGlvbih0LGkpe2lmKCEoaSBpbiB0KSl7dmFyIG49dHlwZW9mIGdsb2JhbD09dHlwZW9mIG4/d2luZG93Omdsb2JhbCxzPTAsZD1TdHJpbmcoTWF0aC5yYW5kb20oKSksbT0iX19ceDAxc3ltYm9sQEAiK2QsTD10Lmdl''@;'; + put 'put ''dE93blByb3BlcnR5TmFtZXMsRj10LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixHPXQuY3JlYXRlLFU9dC5rZXlzLEs9dC5mcmVlemV8fHQsSDE9dC5kZWZpbmVQcm9wZXJ0eSxRMT10LmRlZmluZVByb3BlcnRpZXMsajE9Rih0LCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiksTTE9dC5wcm90b3R5''@;'; + put 'put ''cGUsJDE9TTEuaGFzT3duUHJvcGVydHksejE9TTEucHJvcGVydHlJc0VudW1lcmFibGUsbzA9TTEudG9TdHJpbmcsazE9ZnVuY3Rpb24oQzEsVTEsaTApeyQxLmNhbGwoQzEsbSl8fEgxKEMxLG0se2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiExLHZhbHVlOnt9fSks''@;'; + put 'put ''QzFbbV1bIkBAIitVMV09aTB9LG0wPWZ1bmN0aW9uKEMxLFUxKXt2YXIgaTA9RyhDMSk7cmV0dXJuIEwoVTEpLmZvckVhY2goZnVuY3Rpb24obzEpe2UyLmNhbGwoVTEsbzEpJiZLMihpMCxvMSxVMVtvMV0pfSksaTB9LFQxPWZ1bmN0aW9uKCl7fSx0Mj1mdW5jdGlvbihDMSl7cmV0dXJuIEMx''@;'; + put 'put ''IT1tJiYhJDEuY2FsbChJMCxDMSl9LEYwPWZ1bmN0aW9uKEMxKXtyZXR1cm4gQzEhPW0mJiQxLmNhbGwoSTAsQzEpfSxlMj1mdW5jdGlvbihDMSl7dmFyIFUxPVN0cmluZyhDMSk7cmV0dXJuIEYwKFUxKT8kMS5jYWxsKHRoaXMsVTEpJiYhIXRoaXNbbV0mJnRoaXNbbV1bIkBAIitVMV06ejEu''@;'; + put 'put ''Y2FsbCh0aGlzLEMxKX0sdDE9ZnVuY3Rpb24oQzEpe3JldHVybiBIMShNMSxDMSx7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsZ2V0OlQxLHNldDpmdW5jdGlvbihVMSl7ZDIodGhpcyxDMSx7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VTF9''@;'; + put 'put ''KSxrMSh0aGlzLEMxLCEwKX19KSxJMFtDMV09SDEodChDMSksImNvbnN0cnVjdG9yIixVZSksSyhJMFtDMV0pfSxsMD1mdW5jdGlvbiBDMShVMSl7aWYodGhpcyBpbnN0YW5jZW9mIEMxKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3JldHVybiB0''@;'; + put 'put ''MSgiX19ceDAxc3ltYm9sOiIuY29uY2F0KFUxfHwiIixkLCsrcykpfSxJMD1HKG51bGwpLFVlPXt2YWx1ZTpsMH0sVHQ9ZnVuY3Rpb24oQzEpe3JldHVybiBJMFtDMV19LEsyPWZ1bmN0aW9uKEMxLFUxLGkwKXt2YXIgbzE9U3RyaW5nKFUxKTtpZihGMChvMSkpe2lmKFUxPWQyLGkwLmVudW1l''@;'; + put 'put ''cmFibGUpe3ZhciBMMT1HKGkwKTtMMS5lbnVtZXJhYmxlPSExfWVsc2UgTDE9aTA7VTEoQzEsbzEsTDEpLGsxKEMxLG8xLCEhaTAuZW51bWVyYWJsZSl9ZWxzZSBIMShDMSxVMSxpMCk7cmV0dXJuIEMxfSxOdD1mdW5jdGlvbihDMSl7cmV0dXJuIEwoQzEpLmZpbHRlcihGMCkubWFwKFR0KX07''@;'; + put 'put ''ajEudmFsdWU9SzIsSDEodCwiZGVmaW5lUHJvcGVydHkiLGoxKSxqMS52YWx1ZT1OdCxIMSh0LGksajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxKXtyZXR1cm4gTChDMSkuZmlsdGVyKHQyKX0sSDEodCwiZ2V0T3duUHJvcGVydHlOYW1lcyIsajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxLFUxKXt2''@;'; + put 'put ''YXIgaTA9TnQoVTEpO3JldHVybiBpMC5sZW5ndGg/VShVMSkuY29uY2F0KGkwKS5mb3JFYWNoKGZ1bmN0aW9uKG8xKXtlMi5jYWxsKFUxLG8xKSYmSzIoQzEsbzEsVTFbbzFdKX0pOlExKEMxLFUxKSxDMX0sSDEodCwiZGVmaW5lUHJvcGVydGllcyIsajEpLGoxLnZhbHVlPWUyLEgxKE0xLCJw''@;'; + put 'put ''cm9wZXJ0eUlzRW51bWVyYWJsZSIsajEpLGoxLnZhbHVlPWwwLEgxKG4sIlN5bWJvbCIsajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxKXtyZXR1cm4oQzE9Il9fXHgwMXN5bWJvbDoiLmNvbmNhdCgiX19ceDAxc3ltYm9sOiIsQzEsZCkpaW4gTTE/STBbQzFdOnQxKEMxKX0sSDEobDAsImZvciIs''@;'; + put 'put ''ajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxKXtpZih0MihDMSkpdGhyb3cgbmV3IFR5cGVFcnJvcihDMSsiIGlzIG5vdCBhIHN5bWJvbCIpO2lmKCQxLmNhbGwoSTAsQzEpJiYiX19ceDAxc3ltYm9sOiI9PT0oQzE9QzEuc2xpY2UoMTApKS5zbGljZSgwLDEwKSYmKEMxPUMxLnNsaWNlKDEwKSkh''@;'; + put 'put ''PT1kKXJldHVybiAwPChDMT1DMS5zbGljZSgwLEMxLmxlbmd0aC1kLmxlbmd0aCkpLmxlbmd0aD9DMTp2b2lkIDB9LEgxKGwwLCJrZXlGb3IiLGoxKSxqMS52YWx1ZT1mdW5jdGlvbihDMSxVMSl7dmFyIGkwPUYoQzEsVTEpO3JldHVybiBpMCYmRjAoVTEpJiYoaTAuZW51bWVyYWJsZT1lMi5j''@;'; + put 'put ''YWxsKEMxLFUxKSksaTB9LEgxKHQsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxLFUxKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGh8fHZvaWQgMD09PVUxP0coQzEpOm0wKEMxLFUxKX0sSDEodCwiY3JlYXRlIixqMSksajEudmFsdWU9ZnVu''@;'; + put 'put ''Y3Rpb24oKXt2YXIgQzE9bzAuY2FsbCh0aGlzKTtyZXR1cm4iW29iamVjdCBTdHJpbmddIj09PUMxJiZGMCh0aGlzKT8iW29iamVjdCBTeW1ib2xdIjpDMX0sSDEoTTEsInRvU3RyaW5nIixqMSk7dHJ5e2lmKCEwIT09RyhIMSh7fSwiX19ceDAxc3ltYm9sOiIse2dldDpmdW5jdGlvbigpe3Jl''@;'; + put 'put ''dHVybiBIMSh0aGlzLCJfX1x4MDFzeW1ib2w6Iix7dmFsdWU6ITB9KVsiX19ceDAxc3ltYm9sOiJdfX0pKVsiX19ceDAxc3ltYm9sOiJdKXRocm93IklFMTEiO3ZhciBkMj1IMX1jYXRjaChDMSl7ZDI9ZnVuY3Rpb24oVTEsaTAsbzEpe3ZhciBMMT1GKE0xLGkwKTtkZWxldGUgTTFbaTBdLEgx''@;'; + put 'put ''KFUxLGkwLG8xKSxIMShNMSxpMCxMMSl9fX19KShPYmplY3QsImdldE93blByb3BlcnR5U3ltYm9scyIpLHQ9T2JqZWN0LGk9U3ltYm9sLG49dC5kZWZpbmVQcm9wZXJ0eSxkPShzPXQucHJvdG90eXBlKS50b1N0cmluZywiaXRlcmF0b3IgbWF0Y2ggcmVwbGFjZSBzZWFyY2ggc3BsaXQgaGFz''@;'; + put 'put ''SW5zdGFuY2UgaXNDb25jYXRTcHJlYWRhYmxlIHVuc2NvcGFibGVzIHNwZWNpZXMgdG9QcmltaXRpdmUgdG9TdHJpbmdUYWciLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihMKXtMIGluIGl8fChuKGksTCx7dmFsdWU6aShMKX0pLCJ0b1N0cmluZ1RhZyI9PT1MJiYoKG09dC5nZXRPd25Q''@;'; + put 'put ''cm9wZXJ0eURlc2NyaXB0b3IocywidG9TdHJpbmciKSkudmFsdWU9ZnVuY3Rpb24oKXt2YXIgRj1kLmNhbGwodGhpcyksRz1udWxsPT10aGlzP3RoaXM6dGhpc1tpLnRvU3RyaW5nVGFnXTtyZXR1cm4gbnVsbD09Rz9GOiJbb2JqZWN0ICIrRysiXSJ9LG4ocywidG9TdHJpbmciLG0pKSl9KSxm''@;'; + put 'put ''dW5jdGlvbih0LGksbil7ZnVuY3Rpb24gcygpe3JldHVybiB0aGlzfWlbdF18fChpW3RdPWZ1bmN0aW9uKCl7dmFyIGQ9MCxtPXRoaXMsTD17bmV4dDpmdW5jdGlvbigpe3ZhciBGPW0ubGVuZ3RoPD1kO3JldHVybiBGP3tkb25lOkZ9Ontkb25lOkYsdmFsdWU6bVtkKytdfX19O3JldHVybiBM''@;'; + put 'put ''W3RdPXMsTH0pLG5bdF18fChuW3RdPWZ1bmN0aW9uKCl7dmFyIGQ9U3RyaW5nLmZyb21Db2RlUG9pbnQsbT10aGlzLEw9MCxGPW0ubGVuZ3RoLEc9e25leHQ6ZnVuY3Rpb24oKXt2YXIgVT1GPD1MLEs9VT8iIjpkKG0uY29kZVBvaW50QXQoTCkpO3JldHVybiBMKz1LLmxlbmd0aCxVP3tkb25l''@;'; + put 'put ''OlV9Ontkb25lOlUsdmFsdWU6S319fTtyZXR1cm4gR1t0XT1zLEd9KX0oU3ltYm9sLml0ZXJhdG9yLEFycmF5LnByb3RvdHlwZSxTdHJpbmcucHJvdG90eXBlKTt2YXIgVjE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIHZvaWQgMD09PXRoaXM/IltvYmplY3QgVW5kZWZpbmVkXSI6bnVsbD09PXRoaXM/IltvYmplY3QgTnVsbF0iOlYxLmNhbGwodGhpcyl9LE9iamVjdC5rZXlzPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0''@;'; + put 'put ''dXJuKGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGkpKSYmaS5lbnVtZXJhYmxlfSl9LFN0cmluZy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSYmU3RyaW5nLnByb3RvdHlwZS5jb2RlUG9pbnRBdHx8KFN0cmluZy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5j''@;'; + put 'put ''dGlvbiB0KCl7dmFyIGksbj10aGlzO3JldHVybiB4KHQsZnVuY3Rpb24ocyl7aWYoMT09cy5nJiYoaT0wKSwzIT1zLmcpcmV0dXJuIGk8bi5sZW5ndGg/cz1DKHMsbltpXSk6KHMuZz0wLHM9dm9pZCAwKSxzO2krKyxzLmc9Mn0pfSksU2V0LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdfHwo''@;'; + put 'put ''U2V0LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uIHQoKXt2YXIgaSxzLG49dGhpcztyZXR1cm4geCh0LGZ1bmN0aW9uKGQpe2lmKDE9PWQuZyYmKGk9W10sbi5mb3JFYWNoKGZ1bmN0aW9uKG0pe2kucHVzaChtKX0pLHM9MCksMyE9ZC5nKXJldHVybiBzPGkubGVuZ3RoP2Q9''@;'; + put 'put ''QyhkLGlbc10pOihkLmc9MCxkPXZvaWQgMCksZDtzKyssZC5nPTJ9KX0pLE1hcC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXXx8KE1hcC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbiB0KCl7dmFyIGkscyxuPXRoaXM7cmV0dXJuIHgodCxmdW5jdGlvbihkKXtpZigxPT1k''@;'; + put 'put ''LmcmJihpPVtdLG4uZm9yRWFjaChmdW5jdGlvbihtLEwpe2kucHVzaChbTCxtXSl9KSxzPTApLDMhPWQuZylyZXR1cm4gczxpLmxlbmd0aD9kPUMoZCxpW3NdKTooZC5nPTAsZD12b2lkIDApLGQ7cysrLGQuZz0yfSl9KTt2YXIgXzE9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7aWYo''@;'; + put 'put ''XzEuaW5pdEV2ZW50KCJmb28iLCEwLCEwKSxfMS5wcmV2ZW50RGVmYXVsdCgpLCFfMS5kZWZhdWx0UHJldmVudGVkKXt2YXIgUT1FdmVudC5wcm90b3R5cGUucHJldmVudERlZmF1bHQ7RXZlbnQucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxhYmxlJiYo''@;'; + put 'put ''US5jYWxsKHRoaXMpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJkZWZhdWx0UHJldmVudGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9LGNvbmZpZ3VyYWJsZTohMH0pKX19dmFyIHMxPS9UcmlkZW50Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO2lmKCF3aW5kb3cuRXZlbnR8''@;'; + put 'put ''fHMxJiYiZnVuY3Rpb24iIT10eXBlb2Ygd2luZG93LkV2ZW50KXt2YXIgbTE9d2luZG93LkV2ZW50O2lmKHdpbmRvdy5FdmVudD1mdW5jdGlvbih0LGkpe2k9aXx8e307dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIG4uaW5pdEV2ZW50KHQsISFpLmJ1YmJsZXMs''@;'; + put 'put ''ISFpLmNhbmNlbGFibGUpLG59LG0xKXtmb3IodmFyIGIxIGluIG0xKXdpbmRvdy5FdmVudFtiMV09bTFbYjFdO3dpbmRvdy5FdmVudC5wcm90b3R5cGU9bTEucHJvdG90eXBlfX1pZigoIXdpbmRvdy5DdXN0b21FdmVudHx8czEmJiJmdW5jdGlvbiIhPXR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZl''@;'; + put 'put ''bnQpJiYod2luZG93LkN1c3RvbUV2ZW50PWZ1bmN0aW9uKHQsaSl7aT1pfHx7fTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKTtyZXR1cm4gbi5pbml0Q3VzdG9tRXZlbnQodCwhIWkuYnViYmxlcywhIWkuY2FuY2VsYWJsZSxpLmRldGFpbCksbn0sd2luZG93LkN1''@;'; + put 'put ''c3RvbUV2ZW50LnByb3RvdHlwZT13aW5kb3cuRXZlbnQucHJvdG90eXBlKSwhd2luZG93Lk1vdXNlRXZlbnR8fHMxJiYiZnVuY3Rpb24iIT10eXBlb2Ygd2luZG93Lk1vdXNlRXZlbnQpe3ZhciBCMT13aW5kb3cuTW91c2VFdmVudDtpZih3aW5kb3cuTW91c2VFdmVudD1mdW5jdGlvbih0LGkp''@;'; + put 'put ''e2k9aXx8e307dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTtyZXR1cm4gbi5pbml0TW91c2VFdmVudCh0LCEhaS5idWJibGVzLCEhaS5jYW5jZWxhYmxlLGkudmlld3x8d2luZG93LGkuZGV0YWlsLGkuc2NyZWVuWCxpLnNjcmVlblksaS5jbGllbnRYLGkuY2xpZW50''@;'; + put 'put ''WSxpLmN0cmxLZXksaS5hbHRLZXksaS5zaGlmdEtleSxpLm1ldGFLZXksaS5idXR0b24saS5yZWxhdGVkVGFyZ2V0KSxufSxCMSlmb3IodmFyICQgaW4gQjEpd2luZG93Lk1vdXNlRXZlbnRbJF09QjFbJF07d2luZG93Lk1vdXNlRXZlbnQucHJvdG90eXBlPUIxLnByb3RvdHlwZX1PYmplY3Qu''@;'; + put 'put ''Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLCJiYXNlVVJJIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwiYmFzZVVSSSIse2dldDpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMpLnF1ZXJ5U2VsZWN0b3IoImJh''@;'; + put 'put ''c2VbaHJlZl0iKTtyZXR1cm4gdCYmdC5ocmVmfHx3aW5kb3cubG9jYXRpb24uaHJlZn0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9KTt2YXIgeix5LEQ9RWxlbWVudC5wcm90b3R5cGUsWj1udWxsIT09KHo9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJhdHRyaWJ1''@;'; + put 'put ''dGVzIikpJiZ2b2lkIDAhPT16P3o6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwiYXR0cmlidXRlcyIpLFQ9bnVsbCE9PSh5PW51bGw9PVo/dm9pZCAwOlouZ2V0KSYmdm9pZCAwIT09eT95OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlc30s''@;'; + put 'put ''UD1BcnJheS5wcm90b3R5cGUubWFwO0QuaGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZU5hbWVzIil8fChELmdldEF0dHJpYnV0ZU5hbWVzPWZ1bmN0aW9uKCl7cmV0dXJuIFAuY2FsbChULmNhbGwodGhpcyksZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZX0pfSk7dmFyIGUxLHIxPUVsZW1l''@;'; + put 'put ''bnQucHJvdG90eXBlO3IxLmhhc093blByb3BlcnR5KCJtYXRjaGVzIil8fChyMS5tYXRjaGVzPW51bGwhPT0oZTE9cjEud2Via2l0TWF0Y2hlc1NlbGVjdG9yKSYmdm9pZCAwIT09ZTE/ZTE6cjEubXNNYXRjaGVzU2VsZWN0b3IpO3ZhciBaMT1Ob2RlLnByb3RvdHlwZS5hcHBlbmRDaGlsZDtm''@;'; + put 'put ''dW5jdGlvbiBZKHQpeyh0PXQucHJvdG90eXBlKS5oYXNPd25Qcm9wZXJ0eSgiYXBwZW5kIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJhcHBlbmQiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbihpKXtmb3IodmFyIG49W10scz0w''@;'; + put 'put ''O3M8YXJndW1lbnRzLmxlbmd0aDsrK3MpbltzXT1hcmd1bWVudHNbc107Zm9yKHM9KG49YShuKSkubmV4dCgpOyFzLmRvbmU7cz1uLm5leHQoKSlaMS5jYWxsKHRoaXMsInN0cmluZyI9PXR5cGVvZihzPXMudmFsdWUpP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKHMpOnMpfX0pfVkoRG9jdW1l''@;'; + put 'put ''bnQpLFkoRG9jdW1lbnRGcmFnbWVudCksWShFbGVtZW50KTt2YXIgcSxKLEExPU5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSxOMT1udWxsIT09KEo9bnVsbD09PShxPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsImZpcnN0Q2hpbGQiKSl8fHZvaWQg''@;'; + put 'put ''MD09PXE/dm9pZCAwOnEuZ2V0KSYmdm9pZCAwIT09Sj9KOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyc3RDaGlsZH07ZnVuY3Rpb24gUzEodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJwcmVwZW5kIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcmVwZW5kIix7Y29u''@;'; + put 'put ''ZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oaSl7Zm9yKHZhciBuPVtdLHM9MDtzPGFyZ3VtZW50cy5sZW5ndGg7KytzKW5bc109YXJndW1lbnRzW3NdO3M9TjEuY2FsbCh0aGlzKTtmb3IodmFyIGQ9KG49YShuKSkubmV4dCgpOyFkLmRvbmU7''@;'; + put 'put ''ZD1uLm5leHQoKSlBMS5jYWxsKHRoaXMsInN0cmluZyI9PXR5cGVvZihkPWQudmFsdWUpP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGQpOmQscyl9fSl9UzEoRG9jdW1lbnQpLFMxKERvY3VtZW50RnJhZ21lbnQpLFMxKEVsZW1lbnQpO3ZhciBuMSxpMSxmMT1Ob2RlLnByb3RvdHlwZS5hcHBl''@;'; + put 'put ''bmRDaGlsZCx4MT1Ob2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCxJMT1udWxsIT09KGkxPW51bGw9PT0objE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwiZmlyc3RDaGlsZCIpKXx8dm9pZCAwPT09bjE/dm9pZCAwOm4xLmdldCkmJnZvaWQgMCE9PWkx''@;'; + put 'put ''P2kxOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyc3RDaGlsZH07ZnVuY3Rpb24gSjEodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJyZXBsYWNlQ2hpbGRyZW4iKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInJlcGxhY2VDaGlsZHJlbiIse2NvbmZpZ3VyYWJsZTohMCxl''@;'; + put 'put ''bnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKGkpe2Zvcih2YXIgbj1bXSxzPTA7czxhcmd1bWVudHMubGVuZ3RoOysrcyluW3NdPWFyZ3VtZW50c1tzXTtmb3IoO251bGwhPT0ocz1JMS5jYWxsKHRoaXMpKTspeDEuY2FsbCh0aGlzLHMpO2ZvcihzPShuPWEobikpLm5l''@;'; + put 'put ''eHQoKTshcy5kb25lO3M9bi5uZXh0KCkpZjEuY2FsbCh0aGlzLCJzdHJpbmciPT10eXBlb2Yocz1zLnZhbHVlKT9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzKTpzKX19KX1KMShEb2N1bWVudCksSjEoRG9jdW1lbnRGcmFnbWVudCksSjEoRWxlbWVudCk7dmFyIHQwLGYwLE0wLF8wLGkyPU5v''@;'; + put 'put ''ZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSx6MD1udWxsIT09KGYwPW51bGw9PT0odDA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwicGFyZW50Tm9kZSIpKXx8dm9pZCAwPT09dDA/dm9pZCAwOnQwLmdldCkmJnZvaWQgMCE9PWYwP2YwOmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX0sVTA9bnVsbCE9PShfMD1udWxsPT09KE0wPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsIm5leHRTaWJsaW5nIikpfHx2b2lkIDA9PT1NMD92b2lkIDA6TTAuZ2V0KSYmdm9pZCAwIT09XzA/XzA6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4gdGhpcy5uZXh0U2libGluZ307ZnVuY3Rpb24gSzAodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJhZnRlciIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiYWZ0ZXIiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1''@;'; + put 'put ''ZTpmdW5jdGlvbihpKXtmb3IodmFyIG49W10scz0wO3M8YXJndW1lbnRzLmxlbmd0aDsrK3MpbltzXT1hcmd1bWVudHNbc107aWYobnVsbCE9PShzPXowLmNhbGwodGhpcykpKWZvcih2YXIgZD1VMC5jYWxsKHRoaXMpLG09KG49YShuKSkubmV4dCgpOyFtLmRvbmU7bT1uLm5leHQoKSlpMi5j''@;'; + put 'put ''YWxsKHMsInN0cmluZyI9PXR5cGVvZihtPW0udmFsdWUpP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKG0pOm0sZCl9fSl9SzAoQ2hhcmFjdGVyRGF0YSksSzAoRWxlbWVudCk7dmFyIGswLHUyLFgwPU5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSxrdD1udWxsIT09KHUyPW51bGw9PT0oazA9''@;'; + put 'put ''T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwicGFyZW50Tm9kZSIpKXx8dm9pZCAwPT09azA/dm9pZCAwOmswLmdldCkmJnZvaWQgMCE9PXUyP3UyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX07ZnVuY3Rpb24gYTIodCl7KHQ9dC5wcm90''@;'; + put 'put ''b3R5cGUpLmhhc093blByb3BlcnR5KCJiZWZvcmUiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImJlZm9yZSIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKGkpe2Zvcih2YXIgbj1bXSxzPTA7czxhcmd1bWVudHMubGVuZ3RoOysr''@;'; + put 'put ''cyluW3NdPWFyZ3VtZW50c1tzXTtpZihudWxsIT09KHM9a3QuY2FsbCh0aGlzKSkpZm9yKHZhciBkPShuPWEobikpLm5leHQoKTshZC5kb25lO2Q9bi5uZXh0KCkpWDAuY2FsbChzLCJzdHJpbmciPT10eXBlb2YoZD1kLnZhbHVlKT9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkKTpkLHRoaXMp''@;'; + put 'put ''fX0pfWEyKENoYXJhY3RlckRhdGEpLGEyKEVsZW1lbnQpO3ZhciBEMixwMixPdD1Ob2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCxmMj1udWxsIT09KHAyPW51bGw9PT0oRDI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwicGFyZW50Tm9kZSIpKXx8dm9p''@;'; + put 'put ''ZCAwPT09RDI/dm9pZCAwOkQyLmdldCkmJnZvaWQgMCE9PXAyP3AyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX07ZnVuY3Rpb24gWTEodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJyZW1vdmUiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInJlbW92ZSIs''@;'; + put 'put ''e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGk9ZjIuY2FsbCh0aGlzKTtpJiZPdC5jYWxsKGksdGhpcyl9fSl9WTEoQ2hhcmFjdGVyRGF0YSksWTEoRWxlbWVudCk7dmFyIFEwLGcyLEUyPU5vZGUucHJvdG90eXBlLmluc2Vy''@;'; + put 'put ''dEJlZm9yZSxBMj1Ob2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCxUMj1udWxsIT09KGcyPW51bGw9PT0oUTA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwicGFyZW50Tm9kZSIpKXx8dm9pZCAwPT09UTA/dm9pZCAwOlEwLmdldCkmJnZvaWQgMCE9PWcy''@;'; + put 'put ''P2cyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX07ZnVuY3Rpb24gWDIodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJyZXBsYWNlV2l0aCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicmVwbGFjZVdpdGgiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJs''@;'; + put 'put ''ZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbihpKXtmb3IodmFyIG49W10scz0wO3M8YXJndW1lbnRzLmxlbmd0aDsrK3MpbltzXT1hcmd1bWVudHNbc107aWYobnVsbCE9PShzPVQyLmNhbGwodGhpcykpKXtmb3IodmFyIGQ9KG49YShuKSkubmV4dCgpOyFkLmRvbmU7ZD1uLm5leHQo''@;'; + put 'put ''KSlFMi5jYWxsKHMsInN0cmluZyI9PXR5cGVvZihkPWQudmFsdWUpP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGQpOmQsdGhpcyk7QTIuY2FsbChzLHRoaXMpfX19KX1YMihDaGFyYWN0ZXJEYXRhKSxYMihFbGVtZW50KTt2YXIgUTI9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLE4yPXdpbmRv''@;'; + put 'put ''dy5IVE1MRWxlbWVudC5wcm90b3R5cGUsSjI9d2luZG93LlNWR0VsZW1lbnQucHJvdG90eXBlOyFOMi5oYXNPd25Qcm9wZXJ0eSgiY2xhc3NMaXN0Iil8fFEyLmhhc093blByb3BlcnR5KCJjbGFzc0xpc3QiKXx8SjIuaGFzT3duUHJvcGVydHkoImNsYXNzTGlzdCIpfHxPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoUTIsImNsYXNzTGlzdCIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOMiwiY2xhc3NMaXN0IikpO3ZhciBGMj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0YyLnRleHRDb250ZW50PSJib2R5IHt0cmFuc2l0aW9uOiBvcGFjaXR5IGVhc2UtaW4gMC4y''@;'; + put 'put ''czsgfSBcbmJvZHlbdW5yZXNvbHZlZF0ge29wYWNpdHk6IDA7IGRpc3BsYXk6IGJsb2NrOyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0gXG4iO3ZhciBJMj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJoZWFkIik7STIuaW5zZXJ0QmVmb3JlKEYyLEkyLmZpcnN0Q2hp''@;'; + put 'put ''bGQpO3ZhciBaMD13aW5kb3c7WjAuV2ViQ29tcG9uZW50cz1aMC5XZWJDb21wb25lbnRzfHx7ZmxhZ3M6e319O3ZhciBrMj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj0id2ViY29tcG9uZW50cy1idW5kbGUiXScpLHR0PS93Yy0oLispLyxBMD17fTtpZighQTAubm9PcHRz''@;'; + put 'put ''KXtpZihsb2NhdGlvbi5zZWFyY2guc2xpY2UoMSkuc3BsaXQoIiYiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBpOyh0PXQuc3BsaXQoIj0iKSlbMF0mJihpPXRbMF0ubWF0Y2godHQpKSYmKEEwW2lbMV1dPXRbMV18fCEwKX0pLGsyKWZvcih2YXIgdzA9MCx3MT12b2lkIDA7dzE9azIuYXR0''@;'; + put 'put ''cmlidXRlc1t3MF07dzArKykic3JjIiE9PXcxLm5hbWUmJihBMFt3MS5uYW1lXT13MS52YWx1ZXx8ITApO3ZhciBkMT17fTtBMC5sb2cmJkEwLmxvZy5zcGxpdCYmQTAubG9nLnNwbGl0KCIsIikuZm9yRWFjaChmdW5jdGlvbih0KXtkMVt0XT0hMH0pLEEwLmxvZz1kMX1aMC5XZWJDb21wb25l''@;'; + put 'put ''bnRzLmZsYWdzPUEwO3ZhciBEMT1BMC5zaGFkeWRvbTtpZihEMSl7WjAuU2hhZHlET009WjAuU2hhZHlET018fHt9LFowLlNoYWR5RE9NLmZvcmNlPUQxO3ZhciBQMT1BMC5ub1BhdGNoO1owLlNoYWR5RE9NLm5vUGF0Y2g9InRydWUiPT09UDF8fFAxfXZhciBSMT1BMC5yZWdpc3Rlcnx8QTAu''@;'; + put 'put ''Y2U7ZnVuY3Rpb24gZDAoKXt9ZnVuY3Rpb24gcTEodCl7cmV0dXJuIHQuX19zaGFkeXx8KHQuX19zaGFkeT1uZXcgZDApLHQuX19zaGFkeX1mdW5jdGlvbiBnMSh0KXtyZXR1cm4gdCYmdC5fX3NoYWR5fVIxJiZ3aW5kb3cuY3VzdG9tRWxlbWVudHMmJihaMC5jdXN0b21FbGVtZW50cy5mb3Jj''@;'; + put 'put ''ZVBvbHlmaWxsPVIxKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9ZnVuY3Rpb24gaShvMSxMMSl7aWYoIW8xLmNoaWxkTm9kZXMubGVuZ3RoKXJldHVybltdO3N3aXRjaChvMS5ub2RlVHlwZSl7Y2FzZSBOb2RlLkRPQ1VNRU5UX05PREU6cmV0dXJuICQxLmNhbGwobzEsTDEpO2Nhc2UgTm9k''@;'; + put 'put ''ZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFOnJldHVybiB6MS5jYWxsKG8xLEwxKTtkZWZhdWx0OnJldHVybiBNMS5jYWxsKG8xLEwxKX19dmFyIG49InVuZGVmaW5lZCI9PXR5cGVvZiBIVE1MVGVtcGxhdGVFbGVtZW50LHM9IShkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkuY2xv''@;'; + put 'put ''bmVOb2RlKClpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpLGQ9ITE7L1RyaWRlbnQvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJmZ1bmN0aW9uKCl7ZnVuY3Rpb24gbzEoTzEscDApe2lmKE8xIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudClmb3IodmFyIEZ0O0Z0PU8xLmZpcnN0''@;'; + put 'put ''Q2hpbGQ7KVcxLmNhbGwodGhpcyxGdCxwMCk7ZWxzZSBXMS5jYWxsKHRoaXMsTzEscDApO3JldHVybiBPMX1kPSEwO3ZhciBMMT1Ob2RlLnByb3RvdHlwZS5jbG9uZU5vZGU7Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlPWZ1bmN0aW9uKE8xKXtyZXR1cm4gTzE9TDEuY2FsbCh0aGlzLE8xKSx0''@;'; + put 'put ''aGlzIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudCYmKE8xLl9fcHJvdG9fXz1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSksTzF9LERvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGw9SFRNTEVsZW1lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGwsRG9j''@;'; + put 'put ''dW1lbnRGcmFnbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3Rvcj1IVE1MRWxlbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3RvcixPYmplY3QuZGVmaW5lUHJvcGVydGllcyhEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSx7bm9kZVR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBOb2RlLkRP''@;'; + put 'put ''Q1VNRU5UX0ZSQUdNRU5UX05PREV9LGNvbmZpZ3VyYWJsZTohMH0sbG9jYWxOYW1lOntnZXQ6ZnVuY3Rpb24oKXt9LGNvbmZpZ3VyYWJsZTohMH0sbm9kZU5hbWU6e2dldDpmdW5jdGlvbigpe3JldHVybiIjZG9jdW1lbnQtZnJhZ21lbnQifSxjb25maWd1cmFibGU6ITB9fSk7dmFyIFcxPU5v''@;'; + put 'put ''ZGUucHJvdG90eXBlLmluc2VydEJlZm9yZTtOb2RlLnByb3RvdHlwZS5pbnNlcnRCZWZvcmU9bzE7dmFyIGEwPU5vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkO05vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkPWZ1bmN0aW9uKE8xKXtyZXR1cm4gTzEgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdt''@;'; + put 'put ''ZW50P28xLmNhbGwodGhpcyxPMSxudWxsKTphMC5jYWxsKHRoaXMsTzEpLE8xfTt2YXIgYjA9Tm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQsUjA9Tm9kZS5wcm90b3R5cGUucmVwbGFjZUNoaWxkO05vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZD1mdW5jdGlvbihPMSxwMCl7cmV0dXJuIE8x''@;'; + put 'put ''IGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudD8obzEuY2FsbCh0aGlzLE8xLHAwKSxiMC5jYWxsKHRoaXMscDApKTpSMC5jYWxsKHRoaXMsTzEscDApLHAwfSxEb2N1bWVudC5wcm90b3R5cGUuY3JlYXRlRG9jdW1lbnRGcmFnbWVudD1mdW5jdGlvbigpe3ZhciBPMT10aGlzLmNyZWF0ZUVs''@;'; + put 'put ''ZW1lbnQoImRmIik7cmV0dXJuIE8xLl9fcHJvdG9fXz1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSxPMX07dmFyIGwyPURvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlO0RvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlPWZ1bmN0aW9uKE8xLHAwKXtyZXR1cm4gcDA9bDIuY2FsbCh0''@;'; + put 'put ''aGlzLE8xLHAwfHwhMSksTzEgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50JiYocDAuX19wcm90b19fPURvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlKSxwMH19KCk7dmFyIG09Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlLEw9RG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQsRj1E''@;'; + put 'put ''b2N1bWVudC5wcm90b3R5cGUuaW1wb3J0Tm9kZSxHPU5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxkLFU9Tm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQsSz1Ob2RlLnByb3RvdHlwZS5yZXBsYWNlQ2hpbGQsSDE9RE9NUGFyc2VyLnByb3RvdHlwZS5wYXJzZUZyb21TdHJpbmcsUTE9T2JqZWN0''@;'; + put 'put ''LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLCJpbm5lckhUTUwiKXx8e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlubmVySFRNTH0sc2V0OmZ1bmN0aW9uKG8xKXt0aGlzLmlubmVySFRNTD1vMX19LGoxPU9iamVjdC5nZXRPd25Qcm9w''@;'; + put 'put ''ZXJ0eURlc2NyaXB0b3Iod2luZG93Lk5vZGUucHJvdG90eXBlLCJjaGlsZE5vZGVzIil8fHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzfX0sTTE9RWxlbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3RvckFsbCwkMT1Eb2N1bWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3Rv''@;'; + put 'put ''ckFsbCx6MT1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZS5xdWVyeVNlbGVjdG9yQWxsLG8wPWZ1bmN0aW9uKCl7aWYoIW4pe3ZhciBvMT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpLEwxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cmV0dXJuIEwxLmNv''@;'; + put 'put ''bnRlbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLG8xLmNvbnRlbnQuYXBwZW5kQ2hpbGQoTDEpLDA9PT0obzE9bzEuY2xvbmVOb2RlKCEwKSkuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aHx8MD09PW8xLmNvbnRlbnQuZmlyc3RDaGlsZC5jb250ZW50LmNo''@;'; + put 'put ''aWxkTm9kZXMubGVuZ3RofHxzfX0oKTtpZihuKXt2YXIgazE9ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCJ0ZW1wbGF0ZSIpLG0wPSEwLFQxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7VDEudGV4dENvbnRlbnQ9InRlbXBsYXRle2Rpc3BsYXk6''@;'; + put 'put ''bm9uZTt9Ijt2YXIgdDI9ZG9jdW1lbnQuaGVhZDt0Mi5pbnNlcnRCZWZvcmUoVDEsdDIuZmlyc3RFbGVtZW50Q2hpbGQpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSFRNTEVsZW1lbnQucHJvdG90eXBlKTt2YXIgRjA9IWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLmhhc093blBy''@;'; + put 'put ''b3BlcnR5KCJpbm5lckhUTUwiKTt0Llo9ZnVuY3Rpb24obzEpe2lmKCFvMS5jb250ZW50JiZvMS5uYW1lc3BhY2VVUkk9PT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJKXtvMS5jb250ZW50PWsxLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmb3IodmFyIEwxO0wxPW8x''@;'; + put 'put ''LmZpcnN0Q2hpbGQ7KVUuY2FsbChvMS5jb250ZW50LEwxKTtpZihGMClvMS5fX3Byb3RvX189dC5wcm90b3R5cGU7ZWxzZSBpZihvMS5jbG9uZU5vZGU9ZnVuY3Rpb24oVzEpe3JldHVybiB0LnNhKHRoaXMsVzEpfSxtMCl0cnl7dDEobzEpLGwwKG8xKX1jYXRjaChXMSl7bTA9ITF9dC5ib290''@;'; + put 'put ''c3RyYXAobzEuY29udGVudCl9fTt2YXIgZTI9e29wdGlvbjpbInNlbGVjdCJdLHRoZWFkOlsidGFibGUiXSxjb2w6WyJjb2xncm91cCIsInRhYmxlIl0sdHI6WyJ0Ym9keSIsInRhYmxlIl0sdGg6WyJ0ciIsInRib2R5IiwidGFibGUiXSx0ZDpbInRyIiwidGJvZHkiLCJ0YWJsZSJdfSx0MT1m''@;'; + put 'put ''dW5jdGlvbihvMSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG8xLCJpbm5lckhUTUwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZDIodGhpcyl9LHNldDpmdW5jdGlvbihMMSl7dmFyIFcxPWUyWygvPChbYS16XVteL1wwPlx4MjBcdFxyXG5cZl0rKS9pLmV4ZWMoTDEpfHxbIiIsIiJdKVsxXS50''@;'; + put 'put ''b0xvd2VyQ2FzZSgpXTtpZihXMSlmb3IodmFyIGEwPTA7YTA8VzEubGVuZ3RoO2EwKyspTDE9IjwiK1cxW2EwXSsiPiIrTDErIjwvIitXMVthMF0rIj4iO2ZvcihrMS5ib2R5LmlubmVySFRNTD1MMSx0LmJvb3RzdHJhcChrMSk7dGhpcy5jb250ZW50LmZpcnN0Q2hpbGQ7KUcuY2FsbCh0aGlz''@;'; + put 'put ''LmNvbnRlbnQsdGhpcy5jb250ZW50LmZpcnN0Q2hpbGQpO2lmKEwxPWsxLmJvZHksVzEpZm9yKGEwPTA7YTA8VzEubGVuZ3RoO2EwKyspTDE9TDEubGFzdENoaWxkO2Zvcig7TDEuZmlyc3RDaGlsZDspVS5jYWxsKHRoaXMuY29udGVudCxMMS5maXJzdENoaWxkKX0sY29uZmlndXJhYmxlOiEw''@;'; + put 'put ''fSl9LGwwPWZ1bmN0aW9uKG8xKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobzEsIm91dGVySFRNTCIse2dldDpmdW5jdGlvbigpe3JldHVybiI8dGVtcGxhdGU+Iit0aGlzLmlubmVySFRNTCsiPC90ZW1wbGF0ZT4ifSxzZXQ6ZnVuY3Rpb24oTDEpe2lmKCF0aGlzLnBhcmVudE5vZGUpdGhyb3cg''@;'; + put 'put ''RXJyb3IoIkZhaWxlZCB0byBzZXQgdGhlICdvdXRlckhUTUwnIHByb3BlcnR5IG9uICdFbGVtZW50JzogVGhpcyBlbGVtZW50IGhhcyBubyBwYXJlbnQgbm9kZS4iKTtmb3IoazEuYm9keS5pbm5lckhUTUw9TDEsTDE9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo''@;'; + put 'put ''KTtrMS5ib2R5LmZpcnN0Q2hpbGQ7KVUuY2FsbChMMSxrMS5ib2R5LmZpcnN0Q2hpbGQpO0suY2FsbCh0aGlzLnBhcmVudE5vZGUsTDEsdGhpcyl9LGNvbmZpZ3VyYWJsZTohMH0pfTt0MSh0LnByb3RvdHlwZSksbDAodC5wcm90b3R5cGUpLHQuYm9vdHN0cmFwPWZ1bmN0aW9uKG8xKXtmb3Io''@;'; + put 'put ''dmFyIGEwLEwxPTAsVzE9KG8xPWkobzEsInRlbXBsYXRlIikpLmxlbmd0aDtMMTxXMSYmKGEwPW8xW0wxXSk7TDErKyl0LlooYTApfSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe3QuYm9vdHN0cmFwKGRvY3VtZW50KX0pLERvY3VtZW50''@;'; + put 'put ''LnByb3RvdHlwZS5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKCl7dmFyIG8xPUwuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiJ0ZW1wbGF0ZSI9PT1vMS5sb2NhbE5hbWUmJnQuWihvMSksbzF9LERPTVBhcnNlci5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIG8x''@;'; + put 'put ''PUgxLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdC5ib290c3RyYXAobzEpLG8xfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSFRNTEVsZW1lbnQucHJvdG90eXBlLCJpbm5lckhUTUwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZDIodGhpcyl9LHNldDpmdW5jdGlvbihvMSl7UTEuc2V0''@;'; + put 'put ''LmNhbGwodGhpcyxvMSksdC5ib290c3RyYXAodGhpcyl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfSk7dmFyIEkwPS9bJlx1MDBBMCJdL2csVWU9L1smXHUwMEEwPD5dL2csVHQ9ZnVuY3Rpb24obzEpe3N3aXRjaChvMSl7Y2FzZSImIjpyZXR1cm4iJmFtcDsiO2Nhc2UiPCI6cmV0''@;'; + put 'put ''dXJuIiZsdDsiO2Nhc2UiPiI6cmV0dXJuIiZndDsiO2Nhc2UnIic6cmV0dXJuIiZxdW90OyI7Y2FzZSJceGEwIjpyZXR1cm4iJm5ic3A7In19LEsyPShUMT1mdW5jdGlvbihvMSl7Zm9yKHZhciBMMT17fSxXMT0wO1cxPG8xLmxlbmd0aDtXMSsrKUwxW28xW1cxXV09ITA7cmV0dXJuIEwxfSko''@;'; + put 'put ''ImFyZWEgYmFzZSBiciBjb2wgY29tbWFuZCBlbWJlZCBociBpbWcgaW5wdXQga2V5Z2VuIGxpbmsgbWV0YSBwYXJhbSBzb3VyY2UgdHJhY2sgd2JyIi5zcGxpdCgiICIpKSxOdD1UMSgic3R5bGUgc2NyaXB0IHhtcCBpZnJhbWUgbm9lbWJlZCBub2ZyYW1lcyBwbGFpbnRleHQgbm9zY3JpcHQi''@;'; + put 'put ''LnNwbGl0KCIgIikpLGQyPWZ1bmN0aW9uKG8xLEwxKXsidGVtcGxhdGUiPT09bzEubG9jYWxOYW1lJiYobzE9bzEuY29udGVudCk7Zm9yKHZhciBsMixXMT0iIixhMD1MMT9MMShvMSk6ajEuZ2V0LmNhbGwobzEpLGIwPTAsUjA9YTAubGVuZ3RoO2IwPFIwJiYobDI9YTBbYjBdKTtiMCsrKXt0''@;'; + put 'put ''Ont2YXIgTzE9bDIscDA9bzEsRnQ9TDE7c3dpdGNoKE8xLm5vZGVUeXBlKXtjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOmZvcih2YXIgV2U9TzEubG9jYWxOYW1lLEl0PSI8IitXZSxVcj1PMS5hdHRyaWJ1dGVzLG9hPTA7cDA9VXJbb2FdO29hKyspSXQrPSIgIitwMC5uYW1lKyc9IicrcDAudmFs''@;'; + put 'put ''dWUucmVwbGFjZShJMCxUdCkrJyInO0l0Kz0iPiIsTzE9SzJbV2VdP0l0Okl0K2QyKE8xLEZ0KSsiPC8iK1dlKyI+IjticmVhayB0O2Nhc2UgTm9kZS5URVhUX05PREU6TzE9TzEuZGF0YSxPMT1wMCYmTnRbcDAubG9jYWxOYW1lXT9PMTpPMS5yZXBsYWNlKFVlLFR0KTticmVhayB0O2Nhc2Ug''@;'; + put 'put ''Tm9kZS5DT01NRU5UX05PREU6TzE9Ilx4M2MhLS0iK08xLmRhdGErIi0tXHgzZSI7YnJlYWsgdDtkZWZhdWx0OnRocm93IHdpbmRvdy5jb25zb2xlLmVycm9yKE8xKSxFcnJvcigibm90IGltcGxlbWVudGVkIil9fVcxKz1PMX1yZXR1cm4gVzF9fWlmKG58fG8wKXt0LnNhPWZ1bmN0aW9uKG8x''@;'; + put 'put ''LEwxKXt2YXIgVzE9bS5jYWxsKG8xLCExKTtyZXR1cm4gdGhpcy5aJiZ0aGlzLlooVzEpLEwxJiYoVS5jYWxsKFcxLmNvbnRlbnQsbS5jYWxsKG8xLmNvbnRlbnQsITApKSxDMShXMS5jb250ZW50LG8xLmNvbnRlbnQpKSxXMX07dmFyIEMxPWZ1bmN0aW9uKG8xLEwxKXtpZihMMS5xdWVyeVNl''@;'; + put 'put ''bGVjdG9yQWxsJiYwIT09KEwxPWkoTDEsInRlbXBsYXRlIikpLmxlbmd0aClmb3IodmFyIGIwLFIwLFcxPTAsYTA9KG8xPWkobzEsInRlbXBsYXRlIikpLmxlbmd0aDtXMTxhMDtXMSsrKVIwPUwxW1cxXSxiMD1vMVtXMV0sdCYmdC5aJiZ0LlooUjApLEsuY2FsbChiMC5wYXJlbnROb2RlLFUx''@;'; + put 'put ''LmNhbGwoUjAsITApLGIwKX0sVTE9Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlPWZ1bmN0aW9uKG8xKXtpZighZCYmcyYmdGhpcyBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpe2lmKCFvMSlyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIg''@;'; + put 'put ''TDE9aTAuY2FsbCh0aGlzLm93bmVyRG9jdW1lbnQsdGhpcywhMCl9ZWxzZSBMMT10aGlzLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJiJ0ZW1wbGF0ZSI9PT10aGlzLmxvY2FsTmFtZSYmdGhpcy5uYW1lc3BhY2VVUkk9PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VV''@;'; + put 'put ''Ukk/dC5zYSh0aGlzLG8xKTptLmNhbGwodGhpcyxvMSk7cmV0dXJuIG8xJiZDMShMMSx0aGlzKSxMMX0saTA9RG9jdW1lbnQucHJvdG90eXBlLmltcG9ydE5vZGU9ZnVuY3Rpb24obzEsTDEpe2lmKEwxPUwxfHwhMSwidGVtcGxhdGUiPT09bzEubG9jYWxOYW1lKXJldHVybiB0LnNhKG8xLEwx''@;'; + put 'put ''KTt2YXIgVzE9Ri5jYWxsKHRoaXMsbzEsTDEpO2lmKEwxKXtDMShXMSxvMSksbzE9aShXMSwnc2NyaXB0Om5vdChbdHlwZV0pLHNjcmlwdFt0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il0sc2NyaXB0W3R5cGU9InRleHQvamF2YXNjcmlwdCJdJyk7Zm9yKHZhciBhMCxiMD0wO2IwPG8x''@;'; + put 'put ''Lmxlbmd0aDtiMCsrKXthMD1vMVtiMF0sKEwxPUwuY2FsbChkb2N1bWVudCwic2NyaXB0IikpLnRleHRDb250ZW50PWEwLnRleHRDb250ZW50O2Zvcih2YXIgTzEsUjA9YTAuYXR0cmlidXRlcyxsMj0wO2wyPFIwLmxlbmd0aDtsMisrKUwxLnNldEF0dHJpYnV0ZSgoTzE9UjBbbDJdKS5uYW1l''@;'; + put 'put ''LE8xLnZhbHVlKTtLLmNhbGwoYTAucGFyZW50Tm9kZSxMMSxhMCl9fXJldHVybiBXMX19biYmKHdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50PXQpfSgpLGQwLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57fX07dmFyIHkxPXdpbmRvdy5TaGFkeURPTXx8e307eTEuWWE9ISgh''@;'; + put 'put ''RWxlbWVudC5wcm90b3R5cGUuYXR0YWNoU2hhZG93fHwhTm9kZS5wcm90b3R5cGUuZ2V0Um9vdE5vZGUpO3ZhciBXMD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLCJmaXJzdENoaWxkIik7ZnVuY3Rpb24gTzAoKXtyZXR1cm4gRG9jdW1lbnQucHJvdG90''@;'; + put 'put ''eXBlLm1zRWxlbWVudHNGcm9tUG9pbnQ/Im1zRWxlbWVudHNGcm9tUG9pbnQiOiJlbGVtZW50c0Zyb21Qb2ludCJ9ZnVuY3Rpb24gSzEodCl7cmV0dXJuKHQ9ZzEodCkpJiZ2b2lkIDAhPT10LmZpcnN0Q2hpbGR9ZnVuY3Rpb24gZTAodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBTaGFkb3dSb290''@;'; + put 'put ''fWZ1bmN0aW9uIEowKHQpe3JldHVybih0PSh0PWcxKHQpKSYmdC5yb290KSYmJGwodCl9eTEuSD0hIShXMCYmVzAuY29uZmlndXJhYmxlJiZXMC5nZXQpLHkxLnlhPXkxLmZvcmNlfHwheTEuWWEseTEuSj15MS5ub1BhdGNofHwhMSx5MS5mYT15MS5wcmVmZXJQZXJmb3JtYW5jZSx5MS5BYT0i''@;'; + put 'put ''b24tZGVtYW5kIj09PXkxLkoseTEuTmE9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiVHJpZGVudCIpO3ZhciBQMD1FbGVtZW50LnByb3RvdHlwZSxPMj1QMC5tYXRjaGVzfHxQMC5tYXRjaGVzU2VsZWN0b3J8fFAwLm1vek1hdGNoZXNTZWxlY3Rvcnx8UDAubXNNYXRjaGVzU2VsZWN0b3J8''@;'; + put 'put ''fFAwLm9NYXRjaGVzU2VsZWN0b3J8fFAwLndlYmtpdE1hdGNoZXNTZWxlY3RvcixnMD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIiksWDE9MCxIMD1bXTtmdW5jdGlvbiBEMCh0KXtIMC5wdXNoKHQpLGcwLnRleHRDb250ZW50PVgxKyt9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o''@;'; + put 'put ''KXtmb3IoO0gwLmxlbmd0aDspdHJ5e0gwLnNoaWZ0KCkoKX1jYXRjaCh0KXt0aHJvdyBnMC50ZXh0Q29udGVudD1YMSsrLHR9fSkub2JzZXJ2ZShnMCx7Y2hhcmFjdGVyRGF0YTohMH0pO3ZhciB1MD1kb2N1bWVudC5jb250YWlucz9mdW5jdGlvbih0LGkpe3JldHVybiB0Ll9fc2hhZHlfbmF0''@;'; + put 'put ''aXZlX2NvbnRhaW5zKGkpfTpmdW5jdGlvbih0LGkpe3JldHVybiB0PT09aXx8dC5kb2N1bWVudEVsZW1lbnQmJnQuZG9jdW1lbnRFbGVtZW50Ll9fc2hhZHlfbmF0aXZlX2NvbnRhaW5zKGkpfTtmdW5jdGlvbiB4MCh0LGkpe2Zvcig7aTspe2lmKGk9PXQpcmV0dXJuITA7aT1pLl9fc2hhZHlf''@;'; + put 'put ''cGFyZW50Tm9kZX1yZXR1cm4hMX1mdW5jdGlvbiBCMCh0KXtmb3IodmFyIGk9dC5sZW5ndGgtMTswPD1pO2ktLSl7dmFyIG49dFtpXSxzPW4uZ2V0QXR0cmlidXRlKCJpZCIpfHxuLmdldEF0dHJpYnV0ZSgibmFtZSIpO3MmJiJsZW5ndGgiIT09cyYmaXNOYU4ocykmJih0W3NdPW4pfXJldHVy''@;'; + put 'put ''biB0Lml0ZW09ZnVuY3Rpb24oZCl7cmV0dXJuIHRbZF19LHQubmFtZWRJdGVtPWZ1bmN0aW9uKGQpe2lmKCJsZW5ndGgiIT09ZCYmaXNOYU4oZCkmJnRbZF0pcmV0dXJuIHRbZF07Zm9yKHZhciBtPWEodCksTD1tLm5leHQoKTshTC5kb25lO0w9bS5uZXh0KCkpaWYoKChMPUwudmFsdWUpLmdl''@;'; + put 'put ''dEF0dHJpYnV0ZSgiaWQiKXx8TC5nZXRBdHRyaWJ1dGUoIm5hbWUiKSk9PWQpcmV0dXJuIEw7cmV0dXJuIG51bGx9LHR9ZnVuY3Rpb24gUDIodCl7dmFyIGk9W107Zm9yKHQ9dC5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkO3Q7dD10Ll9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nKWkucHVz''@;'; + put 'put ''aCh0KTtyZXR1cm4gaX1mdW5jdGlvbiB2Mih0KXt2YXIgaT1bXTtmb3IodD10Ll9fc2hhZHlfZmlyc3RDaGlsZDt0O3Q9dC5fX3NoYWR5X25leHRTaWJsaW5nKWkucHVzaCh0KTtyZXR1cm4gaX1mdW5jdGlvbiByMih0LGksbil7aWYobi5jb25maWd1cmFibGU9ITAsbi52YWx1ZSl0W2ldPW4u''@;'; + put 'put ''dmFsdWU7ZWxzZSB0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSxuKX1jYXRjaChzKXt9fWZ1bmN0aW9uIHMwKHQsaSxuLHMpe2Zvcih2YXIgZCBpbiBuPXZvaWQgMD09PW4/IiI6bixpKXMmJjA8PXMuaW5kZXhPZihkKXx8cjIodCxuK2QsaVtkXSl9ZnVuY3Rpb24gUHQodCxpKXtmb3Io''@;'; + put 'put ''dmFyIG4gaW4gaSluIGluIHQmJnIyKHQsbixpW25dKX1mdW5jdGlvbiBuMCh0KXt2YXIgaT17fTtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkuZm9yRWFjaChmdW5jdGlvbihuKXtpW25dPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKX0pLGl9ZnVuY3Rp''@;'; + put 'put ''b24gQnQodCxpKXtmb3IodmFyIGQsbj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpKSxzPTA7czxuLmxlbmd0aDtzKyspdFtkPW5bc11dPWlbZF19ZnVuY3Rpb24gJGUodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBOb2RlP3Q6ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIrdCl9ZnVuY3Rp''@;'; + put 'put ''b24gSDIodCl7Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO2lmKDE9PT1pLmxlbmd0aClyZXR1cm4gJGUoaVswXSk7bj1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Zm9yKHZhciBzPShpPWEoaSkpLm5leHQoKTshcy5k''@;'; + put 'put ''b25lO3M9aS5uZXh0KCkpbi5hcHBlbmRDaGlsZCgkZShzLnZhbHVlKSk7cmV0dXJuIG59dmFyIEd0LEIyPVtdO2Z1bmN0aW9uIHFlKHQpe0d0fHwoR3Q9ITAsRDAoZXQpKSxCMi5wdXNoKHQpfWZ1bmN0aW9uIGV0KCl7R3Q9ITE7Zm9yKHZhciB0PSEhQjIubGVuZ3RoO0IyLmxlbmd0aDspQjIu''@;'; + put 'put ''c2hpZnQoKSgpO3JldHVybiB0fWZ1bmN0aW9uIGp0KCl7dGhpcy5nPSExLHRoaXMuYWRkZWROb2Rlcz1bXSx0aGlzLnJlbW92ZWROb2Rlcz1bXSx0aGlzLm9hPW5ldyBTZXR9ZXQubGlzdD1CMixqdC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtpZih0aGlzLmcpe3RoaXMuZz0hMTt2YXIg''@;'; + put 'put ''dD10aGlzLnRha2VSZWNvcmRzKCk7dC5sZW5ndGgmJnRoaXMub2EuZm9yRWFjaChmdW5jdGlvbihpKXtpKHQpfSl9fSxqdC5wcm90b3R5cGUudGFrZVJlY29yZHM9ZnVuY3Rpb24oKXtpZih0aGlzLmFkZGVkTm9kZXMubGVuZ3RofHx0aGlzLnJlbW92ZWROb2Rlcy5sZW5ndGgpe3ZhciB0PVt7''@;'; + put 'put ''YWRkZWROb2Rlczp0aGlzLmFkZGVkTm9kZXMscmVtb3ZlZE5vZGVzOnRoaXMucmVtb3ZlZE5vZGVzfV07cmV0dXJuIHRoaXMuYWRkZWROb2Rlcz1bXSx0aGlzLnJlbW92ZWROb2Rlcz1bXSx0fXJldHVybltdfTt2YXIgcGE9L1smXHUwMEEwIl0vZyxmYT0vWyZcdTAwQTA8Pl0vZztmdW5jdGlv''@;'; + put 'put ''biBZZSh0KXtzd2l0Y2godCl7Y2FzZSImIjpyZXR1cm4iJmFtcDsiO2Nhc2UiPCI6cmV0dXJuIiZsdDsiO2Nhc2UiPiI6cmV0dXJuIiZndDsiO2Nhc2UnIic6cmV0dXJuIiZxdW90OyI7Y2FzZSJceGEwIjpyZXR1cm4iJm5ic3A7In19ZnVuY3Rpb24gS2UodCl7Zm9yKHZhciBpPXt9LG49MDtu''@;'; + put 'put ''PHQubGVuZ3RoO24rKylpW3Rbbl1dPSEwO3JldHVybiBpfXZhciBnYT1LZSgiYXJlYSBiYXNlIGJyIGNvbCBjb21tYW5kIGVtYmVkIGhyIGltZyBpbnB1dCBrZXlnZW4gbGluayBtZXRhIHBhcmFtIHNvdXJjZSB0cmFjayB3YnIiLnNwbGl0KCIgIikpLEFhPUtlKCJzdHlsZSBzY3JpcHQgeG1w''@;'; + put 'put ''IGlmcmFtZSBub2VtYmVkIG5vZnJhbWVzIHBsYWludGV4dCBub3NjcmlwdCIuc3BsaXQoIiAiKSk7ZnVuY3Rpb24gUnQodCxpKXsidGVtcGxhdGUiPT09dC5sb2NhbE5hbWUmJih0PXQuY29udGVudCk7Zm9yKHZhciBuPSIiLHM9aT9pKHQpOnQuY2hpbGROb2RlcyxkPTAsbT1zLmxlbmd0aCxM''@;'; + put 'put ''PXZvaWQgMDtkPG0mJihMPXNbZF0pO2QrKyl7dDp7dmFyIEY9TCxHPXQsVT1pO3N3aXRjaChGLm5vZGVUeXBlKXtjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOmZvcih2YXIgajEsSz0iPCIrKEc9Ri5sb2NhbE5hbWUpLEgxPUYuYXR0cmlidXRlcyxRMT0wO2oxPUgxW1ExXTtRMSsrKUsrPSIgIitq''@;'; + put 'put ''MS5uYW1lKyc9IicrajEudmFsdWUucmVwbGFjZShwYSxZZSkrJyInO0srPSI+IixGPWdhW0ddP0s6SytSdChGLFUpKyI8LyIrRysiPiI7YnJlYWsgdDtjYXNlIE5vZGUuVEVYVF9OT0RFOkY9Ri5kYXRhLEY9RyYmQWFbRy5sb2NhbE5hbWVdP0Y6Ri5yZXBsYWNlKGZhLFllKTticmVhayB0O2Nh''@;'; + put 'put ''c2UgTm9kZS5DT01NRU5UX05PREU6Rj0iXHgzYyEtLSIrRi5kYXRhKyItLVx4M2UiO2JyZWFrIHQ7ZGVmYXVsdDp0aHJvdyB3aW5kb3cuY29uc29sZS5lcnJvcihGKSxFcnJvcigibm90IGltcGxlbWVudGVkIil9fW4rPUZ9cmV0dXJuIG59dmFyIGx0PXkxLkgsenQ9e3F1ZXJ5U2VsZWN0b3I6''@;'; + put 'put ''ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfcXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9xdWVyeVNlbGVjdG9yQWxsKHQpfX0sWGU9e307ZnVuY3Rpb24gUWUodCl7WGVbdF09ZnVu''@;'; + put 'put ''Y3Rpb24oaSl7cmV0dXJuIGlbIl9fc2hhZHlfbmF0aXZlXyIrdF19fWZ1bmN0aW9uIEcyKHQsaSl7Zm9yKHZhciBuIGluIHMwKHQsaSwiX19zaGFkeV9uYXRpdmVfIiksaSlRZShuKX1mdW5jdGlvbiBjMCh0LGkpe2k9dm9pZCAwPT09aT9bXTppO2Zvcih2YXIgbj0wO248aS5sZW5ndGg7bisr''@;'; + put 'put ''KXt2YXIgcz1pW25dLGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHMpO2QmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19zaGFkeV9uYXRpdmVfIitzLGQpLGQudmFsdWU/enRbc118fCh6dFtzXT1kLnZhbHVlKTpRZShzKSl9fXZhciB5MD1kb2N1bWVudC5jcmVhdGVU''@;'; + put 'put ''cmVlV2Fsa2VyKGRvY3VtZW50LE5vZGVGaWx0ZXIuU0hPV19BTEwsbnVsbCwhMSksTDA9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCxOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCxudWxsLCExKSxVdD1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQo''@;'; + put 'put ''ImluZXJ0Iik7ZnVuY3Rpb24gSmUodCl7Zm9yKHZhciBpO2k9dC5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkOyl0Ll9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKGkpfXZhciBXdD1bImZpcnN0RWxlbWVudENoaWxkIiwibGFzdEVsZW1lbnRDaGlsZCIsImNoaWxkcmVuIiwiY2hpbGRFbGVt''@;'; + put 'put ''ZW50Q291bnQiXSwkdD1bInF1ZXJ5U2VsZWN0b3IiLCJxdWVyeVNlbGVjdG9yQWxsIiwiYXBwZW5kIiwicHJlcGVuZCIsInJlcGxhY2VDaGlsZHJlbiJdLHF0PW4wKHtnZXQgY2hpbGROb2Rlcygpe3JldHVybiB0aGlzLl9fc2hhZHlfY2hpbGROb2Rlc30sZ2V0IGZpcnN0Q2hpbGQoKXtyZXR1''@;'; + put 'put ''cm4gdGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGR9LGdldCBsYXN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2xhc3RDaGlsZH0sZ2V0IGNoaWxkRWxlbWVudENvdW50KCl7cmV0dXJuIHRoaXMuX19zaGFkeV9jaGlsZEVsZW1lbnRDb3VudH0sZ2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMu''@;'; + put 'put ''X19zaGFkeV9jaGlsZHJlbn0sZ2V0IGZpcnN0RWxlbWVudENoaWxkKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9maXJzdEVsZW1lbnRDaGlsZH0sZ2V0IGxhc3RFbGVtZW50Q2hpbGQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2xhc3RFbGVtZW50Q2hpbGR9LGdldCBzaGFkb3dSb290KCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMuX19zaGFkeV9zaGFkb3dSb290fX0pLFl0PW4wKHtnZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X3RleHRDb250ZW50fSxzZXQgdGV4dENvbnRlbnQodCl7dGhpcy5fX3NoYWR5X3RleHRDb250ZW50PXR9LGdldCBpbm5lckhUTUwoKXtyZXR1cm4gdGhpcy5fX3No''@;'; + put 'put ''YWR5X2lubmVySFRNTH0sc2V0IGlubmVySFRNTCh0KXt0aGlzLl9fc2hhZHlfaW5uZXJIVE1MPXR9fSksS3Q9bjAoe2dldCBwYXJlbnRFbGVtZW50KCl7cmV0dXJuIHRoaXMuX19zaGFkeV9wYXJlbnRFbGVtZW50fSxnZXQgcGFyZW50Tm9kZSgpe3JldHVybiB0aGlzLl9fc2hhZHlfcGFyZW50''@;'; + put 'put ''Tm9kZX0sZ2V0IG5leHRTaWJsaW5nKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9uZXh0U2libGluZ30sZ2V0IHByZXZpb3VzU2libGluZygpe3JldHVybiB0aGlzLl9fc2hhZHlfcHJldmlvdXNTaWJsaW5nfSxnZXQgbmV4dEVsZW1lbnRTaWJsaW5nKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9uZXh0''@;'; + put 'put ''RWxlbWVudFNpYmxpbmd9LGdldCBwcmV2aW91c0VsZW1lbnRTaWJsaW5nKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9wcmV2aW91c0VsZW1lbnRTaWJsaW5nfSxnZXQgY2xhc3NOYW1lKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9jbGFzc05hbWV9LHNldCBjbGFzc05hbWUodCl7dGhpcy5fX3NoYWR5''@;'; + put 'put ''X2NsYXNzTmFtZT10fX0pO2Z1bmN0aW9uIFh0KHQpe2Zvcih2YXIgaSBpbiB0KXt2YXIgbj10W2ldO24mJihuLmVudW1lcmFibGU9ITEpfX1YdChxdCksWHQoWXQpLFh0KEt0KTt2YXIgdGw9eTEuSHx8ITA9PT15MS5KLGVsPXRsP2Z1bmN0aW9uKCl7fTpmdW5jdGlvbih0KXt2YXIgaT1xMSh0''@;'; + put 'put ''KTtpLlBhfHwoaS5QYT0hMCxQdCh0LEt0KSl9LGxsPXRsP2Z1bmN0aW9uKCl7fTpmdW5jdGlvbih0KXt2YXIgaT1xMSh0KTtpLk9hfHwoaS5PYT0hMCxQdCh0LHF0KSx3aW5kb3cuY3VzdG9tRWxlbWVudHMmJndpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNr''@;'; + put 'put ''JiYheTEuSnx8UHQodCxZdCkpfSxqMj0iX19ldmVudFdyYXBwZXJzIitEYXRlLm5vdygpLFF0PWZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFdmVudC5wcm90b3R5cGUsImNvbXBvc2VkIik7cmV0dXJuIHQ/ZnVuY3Rpb24oaSl7cmV0dXJuIHQuZ2V0''@;'; + put 'put ''LmNhbGwoaSl9Om51bGx9KCksSGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXZhciBpPSExLG49e2dldCBjYXB0dXJlKCl7cmV0dXJuIGk9ITAsITF9fTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLHQsbiksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3Qi''@;'; + put 'put ''LHQsbiksaX0oKTtmdW5jdGlvbiBpbCh0KXtpZih0JiYib2JqZWN0Ij09dHlwZW9mIHQpdmFyIGk9ISF0LmNhcHR1cmUsbj0hIXQub25jZSxzPSEhdC5wYXNzaXZlLGQ9dC5VO2Vsc2UgaT0hIXQscz1uPSExO3JldHVybntMYTpkLGNhcHR1cmU6aSxvbmNlOm4scGFzc2l2ZTpzLEphOkhhP3Q6''@;'; + put 'put ''aX19dmFyIENhPXtibHVyOiEwLGZvY3VzOiEwLGZvY3VzaW46ITAsZm9jdXNvdXQ6ITAsY2xpY2s6ITAsZGJsY2xpY2s6ITAsbW91c2Vkb3duOiEwLG1vdXNlZW50ZXI6ITAsbW91c2VsZWF2ZTohMCxtb3VzZW1vdmU6ITAsbW91c2VvdXQ6ITAsbW91c2VvdmVyOiEwLG1vdXNldXA6ITAsd2hl''@;'; + put 'put ''ZWw6ITAsYmVmb3JlaW5wdXQ6ITAsaW5wdXQ6ITAsa2V5ZG93bjohMCxrZXl1cDohMCxjb21wb3NpdGlvbnN0YXJ0OiEwLGNvbXBvc2l0aW9udXBkYXRlOiEwLGNvbXBvc2l0aW9uZW5kOiEwLHRvdWNoc3RhcnQ6ITAsdG91Y2hlbmQ6ITAsdG91Y2htb3ZlOiEwLHRvdWNoY2FuY2VsOiEwLHBv''@;'; + put 'put ''aW50ZXJvdmVyOiEwLHBvaW50ZXJlbnRlcjohMCxwb2ludGVyZG93bjohMCxwb2ludGVybW92ZTohMCxwb2ludGVydXA6ITAscG9pbnRlcmNhbmNlbDohMCxwb2ludGVyb3V0OiEwLHBvaW50ZXJsZWF2ZTohMCxnb3Rwb2ludGVyY2FwdHVyZTohMCxsb3N0cG9pbnRlcmNhcHR1cmU6ITAsZHJh''@;'; + put 'put ''Z3N0YXJ0OiEwLGRyYWc6ITAsZHJhZ2VudGVyOiEwLGRyYWdsZWF2ZTohMCxkcmFnb3ZlcjohMCxkcm9wOiEwLGRyYWdlbmQ6ITAsRE9NQWN0aXZhdGU6ITAsRE9NRm9jdXNJbjohMCxET01Gb2N1c091dDohMCxrZXlwcmVzczohMH0sYWw9e0RPTUF0dHJNb2RpZmllZDohMCxET01BdHRyaWJ1''@;'; + put 'put ''dGVOYW1lQ2hhbmdlZDohMCxET01DaGFyYWN0ZXJEYXRhTW9kaWZpZWQ6ITAsRE9NRWxlbWVudE5hbWVDaGFuZ2VkOiEwLERPTU5vZGVJbnNlcnRlZDohMCxET01Ob2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQ6ITAsRE9NTm9kZVJlbW92ZWQ6ITAsRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnQ6''@;'; + put 'put ''ITAsRE9NU3VidHJlZU1vZGlmaWVkOiEwfTtmdW5jdGlvbiBybCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIE5vZGU/dC5fX3NoYWR5X2dldFJvb3ROb2RlKCk6dH1mdW5jdGlvbiBpdCh0LGkpe3ZhciBuPVtdLHM9dDtmb3IodD1ybCh0KTtzOyluLnB1c2gocykscz1zLl9fc2hhZHlfYXNzaWdu''@;'; + put 'put ''ZWRTbG90P3MuX19zaGFkeV9hc3NpZ25lZFNsb3Q6cy5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmcy5ob3N0JiYoaXx8cyE9PXQpP3MuaG9zdDpzLl9fc2hhZHlfcGFyZW50Tm9kZTtyZXR1cm4gbltuLmxlbmd0aC0xXT09PWRvY3VtZW50JiZuLnB1c2god2luZG93''@;'; + put 'put ''KSxufWZ1bmN0aW9uIEp0KHQsaSl7aWYoIWUwKXJldHVybiB0O3Q9aXQodCwhMCk7Zm9yKHZhciBzLG0sbj0wLGQ9dm9pZCAwLEw9dm9pZCAwO248aS5sZW5ndGg7bisrKWlmKChtPXJsKHM9aVtuXSkpIT09ZCYmKEw9dC5pbmRleE9mKG0pLGQ9bSksIWUwKG0pfHwtMTxMKXJldHVybiBzfWZ1''@;'; + put 'put ''bmN0aW9uIHRlKHQpe2Z1bmN0aW9uIGkobixzKXtyZXR1cm4obj1uZXcgdChuLHMpKS5fX2NvbXBvc2VkPXMmJiEhcy5jb21wb3NlZCxufXJldHVybiBpLl9fcHJvdG9fXz10LGkucHJvdG90eXBlPXQucHJvdG90eXBlLGl9dmFyIG5sPXtmb2N1czohMCxibHVyOiEwfTtmdW5jdGlvbiBjbCh0''@;'; + put 'put ''KXtyZXR1cm4gdC5fX3RhcmdldCE9PXQudGFyZ2V0fHx0Ll9fcmVsYXRlZFRhcmdldCE9PXQucmVsYXRlZFRhcmdldH1mdW5jdGlvbiBvbCh0LGksbil7aWYobj1pLl9faGFuZGxlcnMmJmkuX19oYW5kbGVyc1t0LnR5cGVdJiZpLl9faGFuZGxlcnNbdC50eXBlXVtuXSlmb3IodmFyIGQscz0w''@;'; + put 'put ''OyhkPW5bc10pJiYoIWNsKHQpfHx0LnRhcmdldCE9PXQucmVsYXRlZFRhcmdldCkmJihkLmNhbGwoaSx0KSwhdC5fX2ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCk7cysrKTt9ZnVuY3Rpb24gc2wodCl7dmFyIGk9dC5jb21wb3NlZFBhdGgoKSxuPWkubWFwKGZ1bmN0aW9uKEcpe3JldHVy''@;'; + put 'put ''biBKdChHLGkpfSkscz10LmJ1YmJsZXM7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImN1cnJlbnRUYXJnZXQiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTH19KTt2YXIgZD1FdmVudC5DQVBUVVJJTkdfUEhBU0U7T2JqZWN0LmRlZmluZVBy''@;'; + put 'put ''b3BlcnR5KHQsImV2ZW50UGhhc2UiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZH19KTtmb3IodmFyIG09aS5sZW5ndGgtMTswPD1tO20tLSl7dmFyIEw9aVttXTtpZihkPUw9PT1uW21dP0V2ZW50LkFUX1RBUkdFVDpFdmVudC5DQVBUVVJJ''@;'; + put 'put ''TkdfUEhBU0Usb2wodCxMLCJjYXB0dXJlIiksdC5yYSlyZXR1cm59Zm9yKG09MDttPGkubGVuZ3RoO20rKyl7dmFyIEY9KEw9aVttXSk9PT1uW21dO2lmKChGfHxzKSYmKGQ9Rj9FdmVudC5BVF9UQVJHRVQ6RXZlbnQuQlVCQkxJTkdfUEhBU0Usb2wodCxMLCJidWJibGUiKSx0LnJhKSlyZXR1''@;'; + put 'put ''cm59ZD0wLEw9bnVsbH1mdW5jdGlvbiBobCh0LGksbixzLGQsbSl7Zm9yKHZhciBMPTA7TDx0Lmxlbmd0aDtMKyspe3ZhciBGPXRbTF07aWYoaT09PUYubm9kZSYmbj09PUYudHlwZSYmcz09PUYuY2FwdHVyZSYmZD09PUYub25jZSYmbT09PUYucGFzc2l2ZSlyZXR1cm4gTH1yZXR1cm4tMX1m''@;'; + put 'put ''dW5jdGlvbiBkbCh0KXtyZXR1cm4gZXQoKSwheTEuZmEmJnRoaXMgaW5zdGFuY2VvZiBOb2RlJiYhdTAoZG9jdW1lbnQsdGhpcyk/KHQuX190YXJnZXR8fGllKHQsdGhpcyksc2wodCkpOnRoaXMuX19zaGFkeV9uYXRpdmVfZGlzcGF0Y2hFdmVudCh0KX1mdW5jdGlvbiBlZSh0LGksbil7dmFy''@;'; + put 'put ''IHM9aWwobiksZD1zLmNhcHR1cmUsbT1zLm9uY2UsTD1zLnBhc3NpdmUsRj1zLkxhO2lmKHM9cy5KYSxpKXt2YXIgRz10eXBlb2YgaTtpZigoImZ1bmN0aW9uIj09PUd8fCJvYmplY3QiPT09RykmJigib2JqZWN0IiE9PUd8fGkuaGFuZGxlRXZlbnQmJiJmdW5jdGlvbiI9PXR5cGVvZiBpLmhh''@;'; + put 'put ''bmRsZUV2ZW50KSl7aWYoYWxbdF0pcmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfYWRkRXZlbnRMaXN0ZW5lcih0LGkscyk7dmFyIFU9Rnx8dGhpcztpZihGPWlbajJdKXtpZigtMTxobChGLFUsdCxkLG0sTCkpcmV0dXJufWVsc2UgaVtqMl09W107Rj1mdW5jdGlvbihLKXtpZihtJiZ0aGlz''@;'; + put 'put ''Ll9fc2hhZHlfcmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGksbiksSy5fX3RhcmdldHx8aWUoSyksVSE9PXRoaXMpe3ZhciBIMT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEssImN1cnJlbnRUYXJnZXQiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSywiY3VycmVudFRhcmdldCIse2dl''@;'; + put 'put ''dDpmdW5jdGlvbigpe3JldHVybiBVfSxjb25maWd1cmFibGU6ITB9KTt2YXIgUTE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihLLCJldmVudFBoYXNlIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KEssImV2ZW50UGhhc2UiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxn''@;'; + put 'put ''ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZD9FdmVudC5DQVBUVVJJTkdfUEhBU0U6RXZlbnQuQlVCQkxJTkdfUEhBU0V9fSl9aWYoSy5fX3ByZXZpb3VzQ3VycmVudFRhcmdldD1LLmN1cnJlbnRUYXJnZXQsKCFlMChVKSYmInNsb3QiIT09VS5sb2NhbE5hbWV8fC0xIT1LLmNvbXBvc2VkUGF0aCgp''@;'; + put 'put ''LmluZGV4T2YoVSkpJiYoSy5jb21wb3NlZHx8LTE8Sy5jb21wb3NlZFBhdGgoKS5pbmRleE9mKFUpKSlpZihjbChLKSYmSy50YXJnZXQ9PT1LLnJlbGF0ZWRUYXJnZXQpSy5ldmVudFBoYXNlPT09RXZlbnQuQlVCQkxJTkdfUEhBU0UmJksuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7ZWxz''@;'; + put 'put ''ZSBpZihLLmV2ZW50UGhhc2U9PT1FdmVudC5DQVBUVVJJTkdfUEhBU0V8fEsuYnViYmxlc3x8Sy50YXJnZXQ9PT1VfHxVIGluc3RhbmNlb2YgV2luZG93KXt2YXIgajE9ImZ1bmN0aW9uIj09PUc/aS5jYWxsKFUsSyk6aS5oYW5kbGVFdmVudCYmaS5oYW5kbGVFdmVudChLKTtyZXR1cm4gVSE9''@;'; + put 'put ''PXRoaXMmJihIMT8oT2JqZWN0LmRlZmluZVByb3BlcnR5KEssImN1cnJlbnRUYXJnZXQiLEgxKSxIMT1udWxsKTpkZWxldGUgSy5jdXJyZW50VGFyZ2V0LFExPyhPYmplY3QuZGVmaW5lUHJvcGVydHkoSywiZXZlbnRQaGFzZSIsUTEpLFExPW51bGwpOmRlbGV0ZSBLLmV2ZW50UGhhc2UpLGox''@;'; + put 'put ''fX0saVtqMl0ucHVzaCh7bm9kZTpVLHR5cGU6dCxjYXB0dXJlOmQsb25jZTptLHBhc3NpdmU6TCxwYjpGfSksdGhpcy5fX2hhbmRsZXJzPXRoaXMuX19oYW5kbGVyc3x8e30sdGhpcy5fX2hhbmRsZXJzW3RdPXRoaXMuX19oYW5kbGVyc1t0XXx8e2NhcHR1cmU6W10sYnViYmxlOltdfSx0aGlz''@;'; + put 'put ''Ll9faGFuZGxlcnNbdF1bZD8iY2FwdHVyZSI6ImJ1YmJsZSJdLnB1c2goRiksbmxbdF18fHRoaXMuX19zaGFkeV9uYXRpdmVfYWRkRXZlbnRMaXN0ZW5lcih0LEYscyl9fX1mdW5jdGlvbiBsZSh0LGksbil7aWYoaSl7dmFyIHM9aWwobik7bj1zLmNhcHR1cmU7dmFyIGQ9cy5vbmNlLG09cy5w''@;'; + put 'put ''YXNzaXZlLEw9cy5MYTtpZihzPXMuSmEsYWxbdF0pcmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfcmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGkscyk7dmFyIEY9THx8dGhpcztMPXZvaWQgMDt2YXIgRz1udWxsO3RyeXtHPWlbajJdfWNhdGNoKFUpe31HJiYtMTwoZD1obChHLEYsdCxuLGQsbSkp''@;'; + put 'put ''JiYoTD1HLnNwbGljZShkLDEpWzBdLnBiLEcubGVuZ3RofHwoaVtqMl09dm9pZCAwKSksdGhpcy5fX3NoYWR5X25hdGl2ZV9yZW1vdmVFdmVudExpc3RlbmVyKHQsTHx8aSxzKSxMJiZ0aGlzLl9faGFuZGxlcnMmJnRoaXMuX19oYW5kbGVyc1t0XSYmLTE8KGk9KHQ9dGhpcy5fX2hhbmRsZXJz''@;'; + put 'put ''W3RdW24/ImNhcHR1cmUiOiJidWJibGUiXSkuaW5kZXhPZihMKSkmJnQuc3BsaWNlKGksMSl9fXZhciB1bD1uMCh7Z2V0IGNvbXBvc2VkKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuX19jb21wb3NlZCYmKFF0P3RoaXMuX19jb21wb3NlZD0iZm9jdXNpbiI9PT10aGlzLnR5cGV8fCJmb2N1c291''@;'; + put 'put ''dCI9PT10aGlzLnR5cGV8fFF0KHRoaXMpOiExIT09dGhpcy5pc1RydXN0ZWQmJih0aGlzLl9fY29tcG9zZWQ9Q2FbdGhpcy50eXBlXSkpLHRoaXMuX19jb21wb3NlZHx8ITF9LGNvbXBvc2VkUGF0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fY29tcG9zZWRQYXRofHwodGhpcy5fX2NvbXBv''@;'; + put 'put ''c2VkUGF0aD1pdCh0aGlzLl9fdGFyZ2V0LHRoaXMuY29tcG9zZWQpKSx0aGlzLl9fY29tcG9zZWRQYXRofSxnZXQgdGFyZ2V0KCl7cmV0dXJuIEp0KHRoaXMuY3VycmVudFRhcmdldHx8dGhpcy5fX3ByZXZpb3VzQ3VycmVudFRhcmdldCx0aGlzLmNvbXBvc2VkUGF0aCgpKX0sZ2V0IHJlbGF0''@;'; + put 'put ''ZWRUYXJnZXQoKXtyZXR1cm4gdGhpcy5fX3JlbGF0ZWRUYXJnZXQ/KHRoaXMuX19yZWxhdGVkVGFyZ2V0Q29tcG9zZWRQYXRofHwodGhpcy5fX3JlbGF0ZWRUYXJnZXRDb21wb3NlZFBhdGg9aXQodGhpcy5fX3JlbGF0ZWRUYXJnZXQsITApKSxKdCh0aGlzLmN1cnJlbnRUYXJnZXR8fHRoaXMu''@;'; + put 'put ''X19wcmV2aW91c0N1cnJlbnRUYXJnZXQsdGhpcy5fX3JlbGF0ZWRUYXJnZXRDb21wb3NlZFBhdGgpKTpudWxsfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXtFdmVudC5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uLmNhbGwodGhpcyksdGhpcy5yYT0hMH0sc3RvcEltbWVkaWF0ZVByb3Bh''@;'; + put 'put ''Z2F0aW9uOmZ1bmN0aW9uKCl7RXZlbnQucHJvdG90eXBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbi5jYWxsKHRoaXMpLHRoaXMucmE9dGhpcy5fX2ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD0hMH19KTtmdW5jdGlvbiBpZSh0LGkpe2lmKHQuX190YXJnZXQ9aT12b2lkIDA9PT1pP3Qu''@;'; + put 'put ''dGFyZ2V0OmksdC5fX3JlbGF0ZWRUYXJnZXQ9dC5yZWxhdGVkVGFyZ2V0LHkxLkgpe2lmKCEoaT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpLmhhc093blByb3BlcnR5KCJfX3NoYWR5X3BhdGNoZWRQcm90byIpKXt2YXIgbj1PYmplY3QuY3JlYXRlKGkpO24uX19zaGFkeV9zb3VyY2VQcm90''@;'; + put 'put ''bz1pLHMwKG4sdWwpLGkuX19zaGFkeV9wYXRjaGVkUHJvdG89bn10Ll9fcHJvdG9fXz1pLl9fc2hhZHlfcGF0Y2hlZFByb3RvfWVsc2UgczAodCx1bCl9dmFyIE1hPXRlKEV2ZW50KSxaYT10ZShDdXN0b21FdmVudCkseWE9dGUoTW91c2VFdmVudCkscGw9T2JqZWN0LmdldE93blByb3BlcnR5''@;'; + put 'put ''TmFtZXMoRWxlbWVudC5wcm90b3R5cGUpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4ib24iPT09dC5zdWJzdHJpbmcoMCwyKX0pLGZsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEhUTUxFbGVtZW50LnByb3RvdHlwZSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiJvbiI9PT10LnN1''@;'; + put 'put ''YnN0cmluZygwLDIpfSk7ZnVuY3Rpb24gZ2wodCl7cmV0dXJue3NldDpmdW5jdGlvbihpKXt2YXIgbj1xMSh0aGlzKSxzPXQuc3Vic3RyaW5nKDIpO24uVHx8KG4uVD17fSksbi5UW3RdJiZ0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIocyxuLlRbdF0pLHRoaXMuX19zaGFkeV9hZGRFdmVudExp''@;'; + put 'put ''c3RlbmVyKHMsaSksbi5UW3RdPWl9LGdldDpmdW5jdGlvbigpe3ZhciBpPWcxKHRoaXMpO3JldHVybiBpJiZpLlQmJmkuVFt0XX0sY29uZmlndXJhYmxlOiEwfX1mdW5jdGlvbiBSMih0LGkpe3JldHVybntpbmRleDp0LGdhOltdLG5hOml9fWZ1bmN0aW9uIFNhKHQsaSxuLHMpe3ZhciBkPTAs''@;'; + put 'put ''bT0wLEw9MCxGPTAsRz1NYXRoLm1pbihpLWQscy1tKTtpZigwPT1kJiYwPT1tKXQ6e2ZvcihMPTA7TDxHO0wrKylpZih0W0xdIT09bltMXSlicmVhayB0O0w9R31pZihpPT10Lmxlbmd0aCYmcz09bi5sZW5ndGgpe0Y9dC5sZW5ndGg7Zm9yKHZhciBVPW4ubGVuZ3RoLEs9MDtLPEctTCYmYmEo''@;'; + put 'put ''dFstLUZdLG5bLS1VXSk7KUsrKztGPUt9aWYobSs9TCxzLT1GLChpLT1GKS0oZCs9TCk9PTAmJnMtbT09MClyZXR1cm5bXTtpZihkPT1pKXtmb3IoaT1SMihkLDApO208czspaS5nYS5wdXNoKG5bbSsrXSk7cmV0dXJuW2ldfWlmKG09PXMpcmV0dXJuW1IyKGQsaS1kKV07Zm9yKHM9cy0oTD1t''@;'; + put 'put ''KSsxLEY9aS0oRz1kKSsxLGk9QXJyYXkocyksVT0wO1U8cztVKyspaVtVXT1BcnJheShGKSxpW1VdWzBdPVU7Zm9yKFU9MDtVPEY7VSsrKWlbMF1bVV09VTtmb3IoVT0xO1U8cztVKyspZm9yKEs9MTtLPEY7SysrKWlmKHRbRytLLTFdPT09bltMK1UtMV0paVtVXVtLXT1pW1UtMV1bSy0xXTtl''@;'; + put 'put ''bHNle3ZhciBIMT1pW1UtMV1bS10rMSxRMT1pW1VdW0stMV0rMTtpW1VdW0tdPUgxPFExP0gxOlExfWZvcihzPWlbRz1pLmxlbmd0aC0xXVtMPWlbMF0ubGVuZ3RoLTFdLHQ9W107MDxHfHwwPEw7KTA9PUc/KHQucHVzaCgyKSxMLS0pOjA9PUw/KHQucHVzaCgzKSxHLS0pOihGPWlbRy0xXVtM''@;'; + put 'put ''LTFdLChIMT0oVT1pW0ctMV1bTF0pPChLPWlbR11bTC0xXSk/VTxGP1U6RjpLPEY/SzpGKT09Rj8oRj09cz90LnB1c2goMCk6KHQucHVzaCgxKSxzPUYpLEctLSxMLS0pOkgxPT1VPyh0LnB1c2goMyksRy0tLHM9VSk6KHQucHVzaCgyKSxMLS0scz1LKSk7Zm9yKHQucmV2ZXJzZSgpLGk9dm9p''@;'; + put 'put ''ZCAwLEc9W10sTD0wO0w8dC5sZW5ndGg7TCsrKXN3aXRjaCh0W0xdKXtjYXNlIDA6aSYmKEcucHVzaChpKSxpPXZvaWQgMCksZCsrLG0rKzticmVhaztjYXNlIDE6aXx8KGk9UjIoZCwwKSksaS5uYSsrLGQrKyxpLmdhLnB1c2goblttXSksbSsrO2JyZWFrO2Nhc2UgMjppfHwoaT1SMihkLDAp''@;'; + put 'put ''KSxpLm5hKyssZCsrO2JyZWFrO2Nhc2UgMzppfHwoaT1SMihkLDApKSxpLmdhLnB1c2goblttXSksbSsrfXJldHVybiBpJiZHLnB1c2goaSksR31mdW5jdGlvbiBiYSh0LGkpe3JldHVybiB0PT09aX12YXIgQWw9bjAoe2Rpc3BhdGNoRXZlbnQ6ZGwsYWRkRXZlbnRMaXN0ZW5lcjplZSxyZW1v''@;'; + put 'put ''dmVFdmVudExpc3RlbmVyOmxlfSksYWU9bnVsbDtmdW5jdGlvbiBuMigpe3JldHVybiBhZXx8KGFlPXdpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLlNjb3BpbmdTaGltKSxhZXx8bnVsbH1mdW5jdGlvbiB2bCh0LGksbil7dmFyIHM9bjIoKTtyZXR1cm4hKCFzfHwiY2xhc3MiIT09''@;'; + put 'put ''aXx8KHMuc2V0RWxlbWVudENsYXNzKHQsbiksMCkpfWZ1bmN0aW9uIEhsKHQsaSl7dmFyIG49bjIoKTtuJiZuLnVuc2NvcGVOb2RlKHQsaSl9ZnVuY3Rpb24gQ2wodCxpKXt2YXIgbj1uMigpO2lmKCFuKXJldHVybiEwO2lmKHQubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05P''@;'; + put 'put ''REUpe2ZvcihuPSEwLHQ9dC5fX3NoYWR5X2ZpcnN0Q2hpbGQ7dDt0PXQuX19zaGFkeV9uZXh0U2libGluZyluPW4mJkNsKHQsaSk7cmV0dXJuIG59cmV0dXJuIHQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERXx8bi5jdXJyZW50U2NvcGVGb3JOb2RlKHQpPT09aX1mdW5jdGlvbiBhdCh0''@;'; + put 'put ''KXtpZih0Lm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuIiI7dmFyIGk9bjIoKTtyZXR1cm4gaT9pLmN1cnJlbnRTY29wZUZvck5vZGUodCk6IiJ9ZnVuY3Rpb24gcmUodCxpKXtpZih0KWZvcih0Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmkodCksdD10Ll9fc2hh''@;'; + put 'put ''ZHlfZmlyc3RDaGlsZDt0O3Q9dC5fX3NoYWR5X25leHRTaWJsaW5nKXQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmcmUodCxpKX12YXIgbmU9d2luZG93LmRvY3VtZW50LGNlPXkxLmZhLFZsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsImlz''@;'; + put 'put ''Q29ubmVjdGVkIiksbWw9VmwmJlZsLmdldDtmdW5jdGlvbiBvZSh0KXtmb3IodmFyIGk7aT10Ll9fc2hhZHlfZmlyc3RDaGlsZDspdC5fX3NoYWR5X3JlbW92ZUNoaWxkKGkpfWZ1bmN0aW9uIE1sKHQpe3ZhciBpPWcxKHQpO2lmKGkmJnZvaWQgMCE9PWkucWEpZm9yKGk9dC5fX3NoYWR5X2Zp''@;'; + put 'put ''cnN0Q2hpbGQ7aTtpPWkuX19zaGFkeV9uZXh0U2libGluZylNbChpKTsodD1nMSh0KSkmJih0LnFhPXZvaWQgMCl9ZnVuY3Rpb24gWmwodCl7dmFyIGk9dDtpZih0JiYic2xvdCI9PT10LmxvY2FsTmFtZSl7dmFyIG49ZzEodCk7KG49biYmbi5hYSkmJihpPW4ubGVuZ3RoP25bMF06WmwodC5f''@;'; + put 'put ''X3NoYWR5X25leHRTaWJsaW5nKSl9cmV0dXJuIGl9ZnVuY3Rpb24geWwodCxpLG4pe2lmKHQ9KHQ9ZzEodCkpJiZ0LmVhKXtpZihpKWlmKGkubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpZm9yKHZhciBzPTAsZD1pLmNoaWxkTm9kZXMubGVuZ3RoO3M8ZDtzKyspdC5h''@;'; + put 'put ''ZGRlZE5vZGVzLnB1c2goaS5jaGlsZE5vZGVzW3NdKTtlbHNlIHQuYWRkZWROb2Rlcy5wdXNoKGkpO24mJnQucmVtb3ZlZE5vZGVzLnB1c2gobiksZnVuY3Rpb24gc2EodCl7dC5nfHwodC5nPSEwLEQwKGZ1bmN0aW9uKCl7dC5mbHVzaCgpfSkpfSh0KX19dmFyIHJ0PW4wKHtnZXQgcGFyZW50''@;'; + put 'put ''Tm9kZSgpe3ZhciB0PWcxKHRoaXMpO3JldHVybiB2b2lkIDAhPT0odD10JiZ0LnBhcmVudE5vZGUpP3Q6dGhpcy5fX3NoYWR5X25hdGl2ZV9wYXJlbnROb2RlfSxnZXQgZmlyc3RDaGlsZCgpe3ZhciB0PWcxKHRoaXMpO3JldHVybiB2b2lkIDAhPT0odD10JiZ0LmZpcnN0Q2hpbGQpP3Q6dGhp''@;'; + put 'put ''cy5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkfSxnZXQgbGFzdENoaWxkKCl7dmFyIHQ9ZzEodGhpcyk7cmV0dXJuIHZvaWQgMCE9PSh0PXQmJnQubGFzdENoaWxkKT90OnRoaXMuX19zaGFkeV9uYXRpdmVfbGFzdENoaWxkfSxnZXQgbmV4dFNpYmxpbmcoKXt2YXIgdD1nMSh0aGlzKTtyZXR1''@;'; + put 'put ''cm4gdm9pZCAwIT09KHQ9dCYmdC5uZXh0U2libGluZyk/dDp0aGlzLl9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nfSxnZXQgcHJldmlvdXNTaWJsaW5nKCl7dmFyIHQ9ZzEodGhpcyk7cmV0dXJuIHZvaWQgMCE9PSh0PXQmJnQucHJldmlvdXNTaWJsaW5nKT90OnRoaXMuX19zaGFkeV9uYXRp''@;'; + put 'put ''dmVfcHJldmlvdXNTaWJsaW5nfSxnZXQgY2hpbGROb2Rlcygpe2lmKEsxKHRoaXMpKXt2YXIgdD1nMSh0aGlzKTtpZighdC5jaGlsZE5vZGVzKXt0LmNoaWxkTm9kZXM9W107Zm9yKHZhciBpPXRoaXMuX19zaGFkeV9maXJzdENoaWxkO2k7aT1pLl9fc2hhZHlfbmV4dFNpYmxpbmcpdC5jaGls''@;'; + put 'put ''ZE5vZGVzLnB1c2goaSl9dmFyIG49dC5jaGlsZE5vZGVzfWVsc2Ugbj10aGlzLl9fc2hhZHlfbmF0aXZlX2NoaWxkTm9kZXM7cmV0dXJuIG4uaXRlbT1mdW5jdGlvbihzKXtyZXR1cm4gbltzXX0sbn0sZ2V0IHBhcmVudEVsZW1lbnQoKXt2YXIgdD1nMSh0aGlzKTtyZXR1cm4odD10JiZ0LnBh''@;'; + put 'put ''cmVudE5vZGUpJiZ0Lm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUmJih0PW51bGwpLHZvaWQgMCE9PXQ/dDp0aGlzLl9fc2hhZHlfbmF0aXZlX3BhcmVudEVsZW1lbnR9LGdldCBpc0Nvbm5lY3RlZCgpe2lmKG1sJiZtbC5jYWxsKHRoaXMpKXJldHVybiEwO2lmKHRoaXMubm9kZVR5cGU9''@;'; + put 'put ''PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSlyZXR1cm4hMTt2YXIgdD10aGlzLm93bmVyRG9jdW1lbnQ7aWYobnVsbD09PXR8fHUwKHQsdGhpcykpcmV0dXJuITA7Zm9yKHQ9dGhpczt0JiYhKHQgaW5zdGFuY2VvZiBEb2N1bWVudCk7KXQ9dC5fX3NoYWR5X3BhcmVudE5vZGV8fChlMCh0''@;'; + put 'put ''KT90Lmhvc3Q6dm9pZCAwKTtyZXR1cm4hISh0JiZ0IGluc3RhbmNlb2YgRG9jdW1lbnQpfSxnZXQgdGV4dENvbnRlbnQoKXtpZihLMSh0aGlzKSl7Zm9yKHZhciB0PVtdLGk9dGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7aTtpPWkuX19zaGFkeV9uZXh0U2libGluZylpLm5vZGVUeXBlIT09Tm9k''@;'; + put 'put ''ZS5DT01NRU5UX05PREUmJnQucHVzaChpLl9fc2hhZHlfdGV4dENvbnRlbnQpO3JldHVybiB0LmpvaW4oIiIpfXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX3RleHRDb250ZW50fSxzZXQgdGV4dENvbnRlbnQodCl7c3dpdGNoKG51bGw9PXQmJih0PSIiKSx0aGlzLm5vZGVUeXBlKXtjYXNl''@;'; + put 'put ''IE5vZGUuRUxFTUVOVF9OT0RFOmNhc2UgTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFOmlmKCFLMSh0aGlzKSYmeTEuSCl7dmFyIGk9dGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7KGkhPXRoaXMuX19zaGFkeV9sYXN0Q2hpbGR8fGkmJmkubm9kZVR5cGUhPU5vZGUuVEVYVF9OT0RFKSYmb2Uo''@;'; + put 'put ''dGhpcyksdGhpcy5fX3NoYWR5X25hdGl2ZV90ZXh0Q29udGVudD10fWVsc2Ugb2UodGhpcyksKDA8dC5sZW5ndGh8fHRoaXMubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSkmJnRoaXMuX19zaGFkeV9pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodCkpO2JyZWFrO2Rl''@;'; + put 'put ''ZmF1bHQ6dGhpcy5ub2RlVmFsdWU9dH19LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LGkpe2lmKHRoaXMub3duZXJEb2N1bWVudCE9PW5lJiZ0Lm93bmVyRG9jdW1lbnQhPT1uZSlyZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9pbnNlcnRCZWZvcmUodCxpKSx0O2lmKHQ9PT10aGlzKXRocm93''@;'; + put 'put ''IEVycm9yKCJGYWlsZWQgdG8gZXhlY3V0ZSAnYXBwZW5kQ2hpbGQnIG9uICdOb2RlJzogVGhlIG5ldyBjaGlsZCBlbGVtZW50IGNvbnRhaW5zIHRoZSBwYXJlbnQuIik7aWYoaSl7dmFyIG49ZzEoaSk7aWYodm9pZCAwIT09KG49biYmbi5wYXJlbnROb2RlKSYmbiE9PXRoaXN8fHZvaWQgMD09''@;'; + put 'put ''PW4mJmkuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZSE9PXRoaXMpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBleGVjdXRlICdpbnNlcnRCZWZvcmUnIG9uICdOb2RlJzogVGhlIG5vZGUgYmVmb3JlIHdoaWNoIHRoZSBuZXcgbm9kZSBpcyB0byBiZSBpbnNlcnRlZCBpcyBub3QgYSBjaGlsZCBv''@;'; + put 'put ''ZiB0aGlzIG5vZGUuIil9aWYoaT09PXQpcmV0dXJuIHQ7eWwodGhpcyx0KTt2YXIgcz1bXSxkPShuPW0yKHRoaXMpKT9uLmhvc3QubG9jYWxOYW1lOmF0KHRoaXMpLG09dC5fX3NoYWR5X3BhcmVudE5vZGU7aWYobSl7dmFyIEw9YXQodCksRj0hIW58fCFtMih0KXx8Y2UmJnZvaWQgMCE9PXRo''@;'; + put 'put ''aXMuX19ub0luc2VydGlvblBvaW50O20uX19zaGFkeV9yZW1vdmVDaGlsZCh0LEYpfW09ITA7dmFyIEc9KCFjZXx8dm9pZCAwPT09dC5fX25vSW5zZXJ0aW9uUG9pbnQmJnZvaWQgMD09PXRoaXMuX19ub0luc2VydGlvblBvaW50KSYmIUNsKHQsZCksVT1uJiYhdC5fX25vSW5zZXJ0aW9uUG9p''@;'; + put 'put ''bnQmJighY2V8fHQubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpO3JldHVybihVfHxHKSYmKEcmJihMPUx8fGF0KHQpKSxyZSh0LGZ1bmN0aW9uKEspe2lmKFUmJiJzbG90Ij09PUsubG9jYWxOYW1lJiZzLnB1c2goSyksRyl7dmFyIEgxPUw7bjIoKSYmKEgxJiZIbChL''@;'; + put 'put ''LEgxKSwoSDE9bjIoKSkmJkgxLnNjb3BlTm9kZShLLGQpKX19KSkscy5sZW5ndGgmJih6bChuKSxuLmkucHVzaC5hcHBseShuLmksYyhzKSkscTAobikpLEsxKHRoaXMpJiYoZnVuY3Rpb24ga2EodCxpLG4pe290KGksMik7dmFyIHM9cTEoaSk7aWYodm9pZCAwIT09cy5maXJzdENoaWxkJiYo''@;'; + put 'put ''cy5jaGlsZE5vZGVzPW51bGwpLHQubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpZm9yKHQ9dC5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkO3Q7dD10Ll9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nKUlsKHQsaSxzLG4pO2Vsc2UgSWwodCxpLHMsbil9KHQsdGhpcyxp''@;'; + put 'put ''KSwoRj1nMSh0aGlzKSkucm9vdD8obT0hMSxKMCh0aGlzKSYmcTAoRi5yb290KSk6biYmInNsb3QiPT09dGhpcy5sb2NhbE5hbWUmJihtPSExLHEwKG4pKSksbT8obj1lMCh0aGlzKT90aGlzLmhvc3Q6dGhpcyxpPyhpPVpsKGkpLG4uX19zaGFkeV9uYXRpdmVfaW5zZXJ0QmVmb3JlKHQsaSkp''@;'; + put 'put ''Om4uX19zaGFkeV9uYXRpdmVfYXBwZW5kQ2hpbGQodCkpOnQub3duZXJEb2N1bWVudCE9PXRoaXMub3duZXJEb2N1bWVudCYmdGhpcy5vd25lckRvY3VtZW50LmFkb3B0Tm9kZSh0KSx0fSxhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtpZih0aGlzIT10fHwhZTAodCkpcmV0dXJuIHRoaXMuX19z''@;'; + put 'put ''aGFkeV9pbnNlcnRCZWZvcmUodCl9LHJlbW92ZUNoaWxkOmZ1bmN0aW9uKHQsaSl7aWYoaT12b2lkIDAhPT1pJiZpLHRoaXMub3duZXJEb2N1bWVudCE9PW5lKXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKHQpO2lmKHQuX19zaGFkeV9wYXJlbnROb2RlIT09dGhpcyl0''@;'; + put 'put ''aHJvdyBFcnJvcigiVGhlIG5vZGUgdG8gYmUgcmVtb3ZlZCBpcyBub3QgYSBjaGlsZCBvZiB0aGlzIG5vZGU6ICIrdCk7eWwodGhpcyxudWxsLHQpO3ZhciBuPW0yKHQpLHM9biYmZnVuY3Rpb24gQmEodCxpKXtpZih0Lmcpe3B0KHQpO3ZhciBzLG49dC5oO2ZvcihzIGluIG4pZm9yKHZhciBk''@;'; + put 'put ''PW5bc10sbT0wO208ZC5sZW5ndGg7bSsrKXt2YXIgTD1kW21dO2lmKHgwKGksTCkpe2Quc3BsaWNlKG0sMSk7dmFyIEY9dC5nLmluZGV4T2YoTCk7aWYoMDw9RiYmKHQuZy5zcGxpY2UoRiwxKSwoRj1nMShMLl9fc2hhZHlfcGFyZW50Tm9kZSkpJiZGLmlhJiZGLmlhLS0pLG0tLSxGPShMPWcx''@;'; + put 'put ''KEwpKS5hYSlmb3IodmFyIEc9MDtHPEYubGVuZ3RoO0crKyl7dmFyIFU9RltHXSxLPVUuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZTtLJiZLLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKFUpfUwuYWE9W10sTC5hc3NpZ25lZE5vZGVzPVtdLEY9ITB9fXJldHVybiBGfX0obix0KSxkPWcx''@;'; + put 'put ''KHRoaXMpO2lmKEsxKHRoaXMpJiYoZnVuY3Rpb24gT2EodCxpKXt2YXIgbj1xMSh0KTt0PT09KGk9cTEoaSkpLmZpcnN0Q2hpbGQmJihpLmZpcnN0Q2hpbGQ9bi5uZXh0U2libGluZyksdD09PWkubGFzdENoaWxkJiYoaS5sYXN0Q2hpbGQ9bi5wcmV2aW91c1NpYmxpbmcpO3ZhciBzPW4ubmV4''@;'; + put 'put ''dFNpYmxpbmc7KHQ9bi5wcmV2aW91c1NpYmxpbmcpJiYocTEodCkubmV4dFNpYmxpbmc9cykscyYmKHExKHMpLnByZXZpb3VzU2libGluZz10KSxuLnBhcmVudE5vZGU9bi5wcmV2aW91c1NpYmxpbmc9bi5uZXh0U2libGluZz12b2lkIDAsdm9pZCAwIT09aS5jaGlsZE5vZGVzJiYoaS5jaGls''@;'; + put 'put ''ZE5vZGVzPW51bGwpfSh0LHRoaXMpLEowKHRoaXMpKSl7cTAoZC5yb290KTt2YXIgbT0hMH1pZihuMigpJiYhaSYmbiYmdC5ub2RlVHlwZSE9PU5vZGUuVEVYVF9OT0RFKXt2YXIgTD1hdCh0KTtyZSh0LGZ1bmN0aW9uKEYpe0hsKEYsTCl9KX1yZXR1cm4gTWwodCksbiYmKChpPSJzbG90Ij09''@;'; + put 'put ''PXRoaXMubG9jYWxOYW1lKSYmKG09ITApLChzfHxpKSYmcTAobikpLG18fChtPWUwKHRoaXMpP3RoaXMuaG9zdDp0aGlzLCghZC5yb290JiYic2xvdCIhPT10LmxvY2FsTmFtZXx8bT09PXQuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZSkmJm0uX19zaGFkeV9uYXRpdmVfcmVtb3ZlQ2hpbGQo''@;'; + put 'put ''dCkpLHR9LHJlcGxhY2VDaGlsZDpmdW5jdGlvbih0LGkpe3JldHVybiB0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKHQsaSksdGhpcy5fX3NoYWR5X3JlbW92ZUNoaWxkKGkpLHR9LGNsb25lTm9kZTpmdW5jdGlvbih0KXtpZigidGVtcGxhdGUiPT10aGlzLmxvY2FsTmFtZSlyZXR1cm4gdGhp''@;'; + put 'put ''cy5fX3NoYWR5X25hdGl2ZV9jbG9uZU5vZGUodCk7dmFyIGk9dGhpcy5fX3NoYWR5X25hdGl2ZV9jbG9uZU5vZGUoITEpO2lmKHQmJmkubm9kZVR5cGUhPT1Ob2RlLkFUVFJJQlVURV9OT0RFKXt0PXRoaXMuX19zaGFkeV9maXJzdENoaWxkO2Zvcih2YXIgbjt0O3Q9dC5fX3NoYWR5X25leHRT''@;'; + put 'put ''aWJsaW5nKW49dC5fX3NoYWR5X2Nsb25lTm9kZSghMCksaS5fX3NoYWR5X2FwcGVuZENoaWxkKG4pfXJldHVybiBpfSxnZXRSb290Tm9kZTpmdW5jdGlvbih0KXtpZih0aGlzJiZ0aGlzLm5vZGVUeXBlKXt2YXIgaT1xMSh0aGlzKSxuPWkucWE7cmV0dXJuIHZvaWQgMD09PW4mJihlMCh0aGlz''@;'; + put 'put ''KT9pLnFhPW49dGhpczoobj0obj10aGlzLl9fc2hhZHlfcGFyZW50Tm9kZSk/bi5fX3NoYWR5X2dldFJvb3ROb2RlKHQpOnRoaXMsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Ll9fc2hhZHlfbmF0aXZlX2NvbnRhaW5zKHRoaXMpJiYoaS5xYT1uKSkpLG59fSxjb250YWluczpmdW5jdGlvbih0''@;'; + put 'put ''KXtyZXR1cm4geDAodGhpcyx0KX19KSx6Mj1uMCh7Z2V0IGFzc2lnbmVkU2xvdCgpe3ZhciB0PXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO3JldHVybih0PXQmJnQuX19zaGFkeV9zaGFkb3dSb290KSYmdXQodCksKHQ9ZzEodGhpcykpJiZ0LmFzc2lnbmVkU2xvdHx8bnVsbH19KTtmdW5jdGlv''@;'; + put 'put ''biBzZSh0LGksbil7dmFyIHM9W107cmV0dXJuIExsKHQsaSxuLHMpLHN9ZnVuY3Rpb24gTGwodCxpLG4scyl7Zm9yKHQ9dC5fX3NoYWR5X2ZpcnN0Q2hpbGQ7dDt0PXQuX19zaGFkeV9uZXh0U2libGluZyl7dmFyIGQ7aWYoZD10Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpe3ZhciBt''@;'; + put 'put ''PWksTD1uLEY9cyxHPW0oZD10KTtHJiZGLnB1c2goZCksTCYmTChHKT9kPUc6KExsKGQsbSxMLEYpLGQ9dm9pZCAwKX1pZihkKWJyZWFrfX12YXIgbnQ9e2dldCBmaXJzdEVsZW1lbnRDaGlsZCgpe3ZhciB0PWcxKHRoaXMpO2lmKHQmJnZvaWQgMCE9PXQuZmlyc3RDaGlsZCl7Zm9yKHQ9dGhp''@;'; + put 'put ''cy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7dCYmdC5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFOyl0PXQuX19zaGFkeV9uZXh0U2libGluZztyZXR1cm4gdH1yZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9maXJzdEVsZW1lbnRDaGlsZH0sZ2V0IGxhc3RFbGVtZW50Q2hpbGQoKXt2YXIgdD1n''@;'; + put 'put ''MSh0aGlzKTtpZih0JiZ2b2lkIDAhPT10Lmxhc3RDaGlsZCl7Zm9yKHQ9dGhpcy5fX3NoYWR5X2xhc3RDaGlsZDt0JiZ0Lm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREU7KXQ9dC5fX3NoYWR5X3ByZXZpb3VzU2libGluZztyZXR1cm4gdH1yZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9s''@;'; + put 'put ''YXN0RWxlbWVudENoaWxkfSxnZXQgY2hpbGRyZW4oKXtyZXR1cm4gSzEodGhpcyk/QjAoQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHYyKHRoaXMpLGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREV9KSk6dGhpcy5fX3NoYWR5X25hdGl2ZV9jaGls''@;'; + put 'put ''ZHJlbn0sZ2V0IGNoaWxkRWxlbWVudENvdW50KCl7dmFyIHQ9dGhpcy5fX3NoYWR5X2NoaWxkcmVuO3JldHVybiB0P3QubGVuZ3RoOjB9fSxDMj1uMCgobnQuYXBwZW5kPWZ1bmN0aW9uKHQpe2Zvcih2YXIgaT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOysrbilpW25dPWFyZ3VtZW50c1tu''@;'; + put 'put ''XTt0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKEgyLmFwcGx5KG51bGwsYyhpKSksbnVsbCl9LG50LnByZXBlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO3RoaXMuX19zaGFkeV9pbnNlcnRCZWZvcmUoSDIu''@;'; + put 'put ''YXBwbHkobnVsbCxjKGkpKSx0aGlzLl9fc2hhZHlfZmlyc3RDaGlsZCl9LG50LnJlcGxhY2VDaGlsZHJlbj1mdW5jdGlvbih0KXtmb3IodmFyIGk9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDsrK24paVtuXT1hcmd1bWVudHNbbl07Zm9yKDtudWxsIT09KG49dGhpcy5fX3NoYWR5X2ZpcnN0''@;'; + put 'put ''Q2hpbGQpOyl0aGlzLl9fc2hhZHlfcmVtb3ZlQ2hpbGQobik7dGhpcy5fX3NoYWR5X2luc2VydEJlZm9yZShIMi5hcHBseShudWxsLGMoaSkpLG51bGwpfSxudCkpLF9hPW4wKHtxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiBzZSh0aGlzLGZ1bmN0aW9uKGkpe3JldHVybiBPMi5j''@;'; + put 'put ''YWxsKGksdCl9LGZ1bmN0aW9uKGkpe3JldHVybiEhaX0pWzBdfHxudWxsfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQsaSl7aWYoaSl7aT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9fc2hhZHlfbmF0aXZlX3F1ZXJ5U2VsZWN0b3JBbGwodCkpO3ZhciBuPXRoaXMuX19z''@;'; + put 'put ''aGFkeV9nZXRSb290Tm9kZSgpO3JldHVybiBCMChpLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gcy5fX3NoYWR5X2dldFJvb3ROb2RlKCk9PW59KSl9cmV0dXJuIEIwKHNlKHRoaXMsZnVuY3Rpb24ocyl7cmV0dXJuIE8yLmNhbGwocyx0KX0pKX19KSxTbD15MS5mYSYmIXkxLko/QnQoe30s''@;'; + put 'put ''QzIpOkMyO0J0KEMyLF9hKTt2YXIgYmw9bjAoe2FmdGVyOmZ1bmN0aW9uKHQpe2Zvcih2YXIgaT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOysrbilpW25dPWFyZ3VtZW50c1tuXTtpZihudWxsIT09KG49dGhpcy5fX3NoYWR5X3BhcmVudE5vZGUpKXt2YXIgcz10aGlzLl9fc2hhZHlfbmV4''@;'; + put 'put ''dFNpYmxpbmc7bi5fX3NoYWR5X2luc2VydEJlZm9yZShIMi5hcHBseShudWxsLGMoaSkpLHMpfX0sYmVmb3JlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgaT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOysrbilpW25dPWFyZ3VtZW50c1tuXTtudWxsIT09KG49dGhpcy5fX3NoYWR5X3BhcmVudE5v''@;'; + put 'put ''ZGUpJiZuLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKEgyLmFwcGx5KG51bGwsYyhpKSksdGhpcyl9LHJlbW92ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO251bGwhPT10JiZ0Ll9fc2hhZHlfcmVtb3ZlQ2hpbGQodGhpcyl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKHQp''@;'; + put 'put ''e2Zvcih2YXIgaT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOysrbilpW25dPWFyZ3VtZW50c1tuXTtpZihudWxsIT09KG49dGhpcy5fX3NoYWR5X3BhcmVudE5vZGUpKXt2YXIgcz10aGlzLl9fc2hhZHlfbmV4dFNpYmxpbmc7bi5fX3NoYWR5X3JlbW92ZUNoaWxkKHRoaXMpLG4uX19zaGFk''@;'; + put 'put ''eV9pbnNlcnRCZWZvcmUoSDIuYXBwbHkobnVsbCxjKGkpKSxzKX19fSksX2w9d2luZG93LmRvY3VtZW50O2Z1bmN0aW9uIHdsKHQsaSl7aWYoInNsb3QiPT09aSlKMCh0PXQuX19zaGFkeV9wYXJlbnROb2RlKSYmcTAoZzEodCkucm9vdCk7ZWxzZSBpZigic2xvdCI9PT10LmxvY2FsTmFtZSYm''@;'; + put 'put ''Im5hbWUiPT09aSYmKGk9bTIodCkpKXtpZihpLmcpe3B0KGkpO3ZhciBuPXQuUWEscz1VbCh0KTtpZihzIT09bil7dmFyIGQ9KG49aS5oW25dKS5pbmRleE9mKHQpOzA8PWQmJm4uc3BsaWNlKGQsMSksKG49aS5oW3NdfHwoaS5oW3NdPVtdKSkucHVzaCh0KSwxPG4ubGVuZ3RoJiYoaS5oW3Nd''@;'; + put 'put ''PVdsKG4pKX19cTAoaSl9fXZhciBjdD1uMCh7Z2V0IHByZXZpb3VzRWxlbWVudFNpYmxpbmcoKXt2YXIgdD1nMSh0aGlzKTtpZih0JiZ2b2lkIDAhPT10LnByZXZpb3VzU2libGluZyl7Zm9yKHQ9dGhpcy5fX3NoYWR5X3ByZXZpb3VzU2libGluZzt0JiZ0Lm5vZGVUeXBlIT09Tm9kZS5FTEVN''@;'; + put 'put ''RU5UX05PREU7KXQ9dC5fX3NoYWR5X3ByZXZpb3VzU2libGluZztyZXR1cm4gdH1yZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9wcmV2aW91c0VsZW1lbnRTaWJsaW5nfSxnZXQgbmV4dEVsZW1lbnRTaWJsaW5nKCl7dmFyIHQ9ZzEodGhpcyk7aWYodCYmdm9pZCAwIT09dC5uZXh0U2libGlu''@;'; + put 'put ''Zyl7Zm9yKHQ9dGhpcy5fX3NoYWR5X25leHRTaWJsaW5nO3QmJnQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERTspdD10Ll9fc2hhZHlfbmV4dFNpYmxpbmc7cmV0dXJuIHR9cmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfbmV4dEVsZW1lbnRTaWJsaW5nfSxnZXQgc2xvdCgpe3JldHVy''@;'; + put 'put ''biB0aGlzLmdldEF0dHJpYnV0ZSgic2xvdCIpfSxzZXQgc2xvdCh0KXt0aGlzLl9fc2hhZHlfc2V0QXR0cmlidXRlKCJzbG90Iix0KX0sZ2V0IGNsYXNzTmFtZSgpe3JldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9LHNldCBjbGFzc05hbWUodCl7dGhpcy5fX3NoYWR5X3Nl''@;'; + put 'put ''dEF0dHJpYnV0ZSgiY2xhc3MiLHQpfSxzZXRBdHRyaWJ1dGU6ZnVuY3Rpb24odCxpKXt0aGlzLm93bmVyRG9jdW1lbnQhPT1fbD90aGlzLl9fc2hhZHlfbmF0aXZlX3NldEF0dHJpYnV0ZSh0LGkpOnZsKHRoaXMsdCxpKXx8KHRoaXMuX19zaGFkeV9uYXRpdmVfc2V0QXR0cmlidXRlKHQsaSks''@;'; + put 'put ''d2wodGhpcyx0KSl9LHJlbW92ZUF0dHJpYnV0ZTpmdW5jdGlvbih0KXt0aGlzLm93bmVyRG9jdW1lbnQhPT1fbD90aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUF0dHJpYnV0ZSh0KTp2bCh0aGlzLHQsIiIpPyIiPT09dGhpcy5nZXRBdHRyaWJ1dGUodCkmJnRoaXMuX19zaGFkeV9uYXRpdmVf''@;'; + put 'put ''cmVtb3ZlQXR0cmlidXRlKHQpOih0aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUF0dHJpYnV0ZSh0KSx3bCh0aGlzLHQpKX19KTt5MS5mYXx8cGwuZm9yRWFjaChmdW5jdGlvbih0KXtjdFt0XT1nbCh0KX0pO3ZhciB4bD1uMCh7YXR0YWNoU2hhZG93OmZ1bmN0aW9uKHQpe2lmKCF0aGlzKXRo''@;'; + put 'put ''cm93IEVycm9yKCJNdXN0IHByb3ZpZGUgYSBob3N0LiIpO2lmKCF0KXRocm93IEVycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cy4iKTtpZih0LnNoYWR5VXBncmFkZUZyYWdtZW50JiYheTEuTmEpe3ZhciBpPXQuc2hhZHlVcGdyYWRlRnJhZ21lbnQ7aWYoaS5fX3Byb3RvX189U2hhZG93Um9v''@;'; + put 'put ''dC5wcm90b3R5cGUsQmwoaSx0aGlzLHQpLHN0KGksaSksdD1pLl9fbm9JbnNlcnRpb25Qb2ludD9udWxsOmkucXVlcnlTZWxlY3RvckFsbCgic2xvdCIpLGkuX19ub0luc2VydGlvblBvaW50PXZvaWQgMCx0JiZ0Lmxlbmd0aCl7dmFyIG49aTt6bChuKSxuLmkucHVzaC5hcHBseShuLmksYyh0''@;'; + put 'put ''KSkscTAoaSl9aS5ob3N0Ll9fc2hhZHlfbmF0aXZlX2FwcGVuZENoaWxkKGkpfWVsc2UgaT1uZXcgZHQoT2wsdGhpcyx0KTtyZXR1cm4gdGhpcy5fX0NFX3NoYWRvd1Jvb3Q9aX0sZ2V0IHNoYWRvd1Jvb3QoKXt2YXIgdD1nMSh0aGlzKTtyZXR1cm4gdCYmdC5nYnx8bnVsbH19KTtCdChjdCx4''@;'; + put 'put ''bCk7dmFyIGhlPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiaW5lcnQiKSxkZT1uMCh7Z2V0IGlubmVySFRNTCgpe3JldHVybiBLMSh0aGlzKT9SdCgidGVtcGxhdGUiPT09dGhpcy5sb2NhbE5hbWU/dGhpcy5jb250ZW50OnRoaXMsdjIpOnRoaXMuX19zaGFk''@;'; + put 'put ''eV9uYXRpdmVfaW5uZXJIVE1MfSxzZXQgaW5uZXJIVE1MKHQpe2lmKCJ0ZW1wbGF0ZSI9PT10aGlzLmxvY2FsTmFtZSl0aGlzLl9fc2hhZHlfbmF0aXZlX2lubmVySFRNTD10O2Vsc2V7b2UodGhpcyk7dmFyIGk9dGhpcy5sb2NhbE5hbWV8fCJkaXYiO2ZvcihpPXRoaXMubmFtZXNwYWNlVVJJ''@;'; + put 'put ''JiZ0aGlzLm5hbWVzcGFjZVVSSSE9PWhlLm5hbWVzcGFjZVVSST9oZS5jcmVhdGVFbGVtZW50TlModGhpcy5uYW1lc3BhY2VVUkksaSk6aGUuY3JlYXRlRWxlbWVudChpKSx5MS5IP2kuX19zaGFkeV9uYXRpdmVfaW5uZXJIVE1MPXQ6aS5pbm5lckhUTUw9dDt0PWkuX19zaGFkeV9maXJzdENo''@;'; + put 'put ''aWxkOyl0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKHQpfX19KSxEbD1uMCh7Ymx1cjpmdW5jdGlvbigpe3ZhciB0PWcxKHRoaXMpOyh0PSh0PXQmJnQucm9vdCkmJnQuYWN0aXZlRWxlbWVudCk/dC5fX3NoYWR5X2JsdXIoKTp0aGlzLl9fc2hhZHlfbmF0aXZlX2JsdXIoKX19KTt5MS5mYXx8''@;'; + put 'put ''ZmwuZm9yRWFjaChmdW5jdGlvbih0KXtEbFt0XT1nbCh0KX0pO3ZhciBFbD1uMCh7YXNzaWduZWROb2RlczpmdW5jdGlvbih0KXtpZigic2xvdCI9PT10aGlzLmxvY2FsTmFtZSl7dmFyIGk9dGhpcy5fX3NoYWR5X2dldFJvb3ROb2RlKCk7cmV0dXJuIGkmJmUwKGkpJiZ1dChpKSwoaT1nMSh0''@;'; + put 'put ''aGlzKSkmJih0JiZ0LmZsYXR0ZW4/aS5hYTppLmFzc2lnbmVkTm9kZXMpfHxbXX19LGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odCxpLG4pe2lmKCJzbG90IiE9PXRoaXMubG9jYWxOYW1lfHwic2xvdGNoYW5nZSI9PT10KWVlLmNhbGwodGhpcyx0LGksbik7ZWxzZXsib2JqZWN0IiE9dHlw''@;'; + put 'put ''ZW9mIG4mJihuPXtjYXB0dXJlOiEhbn0pO3ZhciBzPXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO2lmKCFzKXRocm93IEVycm9yKCJTaGFkeURPTSBjYW5ub3QgYXR0YWNoIGV2ZW50IHRvIHNsb3QgdW5sZXNzIGl0IGhhcyBhIGBwYXJlbnROb2RlYCIpO24uVT10aGlzLHMuX19zaGFkeV9hZGRF''@;'; + put 'put ''dmVudExpc3RlbmVyKHQsaSxuKX19LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odCxpLG4pe2lmKCJzbG90IiE9PXRoaXMubG9jYWxOYW1lfHwic2xvdGNoYW5nZSI9PT10KWxlLmNhbGwodGhpcyx0LGksbik7ZWxzZXsib2JqZWN0IiE9dHlwZW9mIG4mJihuPXtjYXB0dXJlOiEhbn0p''@;'; + put 'put ''O3ZhciBzPXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO2lmKCFzKXRocm93IEVycm9yKCJTaGFkeURPTSBjYW5ub3QgYXR0YWNoIGV2ZW50IHRvIHNsb3QgdW5sZXNzIGl0IGhhcyBhIGBwYXJlbnROb2RlYCIpO24uVT10aGlzLHMuX19zaGFkeV9yZW1vdmVFdmVudExpc3RlbmVyKHQsaSxuKX19''@;'; + put 'put ''fSksdWU9bjAoe2dldEVsZW1lbnRCeUlkOmZ1bmN0aW9uKHQpe3JldHVybiIiPT09dD9udWxsOnNlKHRoaXMsZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PXR9LGZ1bmN0aW9uKGkpe3JldHVybiEhaX0pWzBdfHxudWxsfX0pO2Z1bmN0aW9uIHdhKHQsaSl7Zm9yKHZhciBuO2kmJiF0Lmhhcyhu''@;'; + put 'put ''PWkuX19zaGFkeV9nZXRSb290Tm9kZSgpKTspaT1uLmhvc3Q7cmV0dXJuIGl9dmFyIERhPSJfX3NoYWR5X25hdGl2ZV8iK08wKCkscGU9bjAoe2dldCBhY3RpdmVFbGVtZW50KCl7dmFyIHQ9eTEuSD9kb2N1bWVudC5fX3NoYWR5X25hdGl2ZV9hY3RpdmVFbGVtZW50OmRvY3VtZW50LmFjdGl2''@;'; + put 'put ''ZUVsZW1lbnQ7aWYoIXR8fCF0Lm5vZGVUeXBlKXJldHVybiBudWxsO3ZhciBpPSEhZTAodGhpcyk7aWYoISh0aGlzPT09ZG9jdW1lbnR8fGkmJnRoaXMuaG9zdCE9PXQmJnRoaXMuaG9zdC5fX3NoYWR5X25hdGl2ZV9jb250YWlucyh0KSkpcmV0dXJuIG51bGw7Zm9yKGk9bTIodCk7aSYmaSE9''@;'; + put 'put ''PXRoaXM7KWk9bTIodD1pLmhvc3QpO3JldHVybiB0aGlzPT09ZG9jdW1lbnQ/aT9udWxsOnQ6aT09PXRoaXM/dDpudWxsfSxlbGVtZW50c0Zyb21Qb2ludDpmdW5jdGlvbih0LGkpe3Q9W10uc2xpY2UuY2FsbChkb2N1bWVudFtEYV0odCxpKSksaT1mdW5jdGlvbiB4YSh0KXt2YXIgaT1uZXcg''@;'; + put 'put ''U2V0O2ZvcihpLmFkZCh0KTtlMCh0KSYmdC5ob3N0Oyl0PXQuaG9zdC5fX3NoYWR5X2dldFJvb3ROb2RlKCksaS5hZGQodCk7cmV0dXJuIGl9KHRoaXMpO2Zvcih2YXIgbj1uZXcgU2V0LHM9MDtzPHQubGVuZ3RoO3MrKyluLmFkZCh3YShpLHRbc10pKTt2YXIgZD1bXTtyZXR1cm4gbi5mb3JF''@;'; + put 'put ''YWNoKGZ1bmN0aW9uKG0pe3JldHVybiBkLnB1c2gobSl9KSxkfSxlbGVtZW50RnJvbVBvaW50OmZ1bmN0aW9uKHQsaSl7cmV0dXJuIHRoaXMuX19zaGFkeV9lbGVtZW50c0Zyb21Qb2ludCh0LGkpWzBdfHxudWxsfX0pLEVhPXdpbmRvdy5kb2N1bWVudCxUYT1uMCh7aW1wb3J0Tm9kZTpmdW5j''@;'; + put 'put ''dGlvbih0LGkpe2lmKHQub3duZXJEb2N1bWVudCE9PUVhfHwidGVtcGxhdGUiPT09dC5sb2NhbE5hbWUpcmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfaW1wb3J0Tm9kZSh0LGkpO3ZhciBuPXRoaXMuX19zaGFkeV9uYXRpdmVfaW1wb3J0Tm9kZSh0LCExKTtpZihpKWZvcih0PXQuX19zaGFk''@;'; + put 'put ''eV9maXJzdENoaWxkO3Q7dD10Ll9fc2hhZHlfbmV4dFNpYmxpbmcpaT10aGlzLl9fc2hhZHlfaW1wb3J0Tm9kZSh0LCEwKSxuLl9fc2hhZHlfYXBwZW5kQ2hpbGQoaSk7cmV0dXJuIG59fSksVGw9bjAoe2Rpc3BhdGNoRXZlbnQ6ZGwsYWRkRXZlbnRMaXN0ZW5lcjplZS5iaW5kKHdpbmRvdyks''@;'; + put 'put ''cmVtb3ZlRXZlbnRMaXN0ZW5lcjpsZS5iaW5kKHdpbmRvdyl9KSxWMj17fTtPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwicGFyZW50RWxlbWVudCIpJiYoVjIucGFyZW50RWxlbWVudD1ydC5wYXJlbnRFbGVtZW50KSxPYmplY3QuZ2V0T3du''@;'; + put 'put ''UHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwiY29udGFpbnMiKSYmKFYyLmNvbnRhaW5zPXJ0LmNvbnRhaW5zKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwiY2hpbGRyZW4iKSYmKFYyLmNoaWxkcmVuPUMyLmNo''@;'; + put 'put ''aWxkcmVuKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwiaW5uZXJIVE1MIikmJihWMi5pbm5lckhUTUw9ZGUuaW5uZXJIVE1MKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwiY2xhc3NO''@;'; + put 'put ''YW1lIikmJihWMi5jbGFzc05hbWU9Y3QuY2xhc3NOYW1lKTt2YXIgRTA9e0V2ZW50VGFyZ2V0OltBbF0sTm9kZTpbcnQsd2luZG93LkV2ZW50VGFyZ2V0P251bGw6QWxdLFRleHQ6W3oyXSxDb21tZW50Olt6Ml0sQ0RBVEFTZWN0aW9uOlt6Ml0sUHJvY2Vzc2luZ0luc3RydWN0aW9uOlt6Ml0s''@;'; + put 'put ''RWxlbWVudDpbY3QsQzIsYmwsejIsIXkxLkh8fCJpbm5lckhUTUwiaW4gRWxlbWVudC5wcm90b3R5cGU/ZGU6bnVsbCx3aW5kb3cuSFRNTFNsb3RFbGVtZW50P251bGw6RWxdLEhUTUxFbGVtZW50OltEbCxWMl0sSFRNTFNsb3RFbGVtZW50OltFbF0sRG9jdW1lbnRGcmFnbWVudDpbU2wsdWVd''@;'; + put 'put ''LERvY3VtZW50OltUYSxTbCx1ZSxwZV0sV2luZG93OltUbF0sQ2hhcmFjdGVyRGF0YTpbYmxdfSxOYT15MS5IP251bGw6WyJpbm5lckhUTUwiLCJ0ZXh0Q29udGVudCJdO2Z1bmN0aW9uICQwKHQsaSxuLHMpe2kuZm9yRWFjaChmdW5jdGlvbihkKXtyZXR1cm4gdCYmZCYmczAodCxkLG4scyl9''@;'; + put 'put ''KX1mdW5jdGlvbiBObCh0KXt2YXIgbixpPXQ/bnVsbDpOYTtmb3IobiBpbiBFMCkkMCh3aW5kb3dbbl0mJndpbmRvd1tuXS5wcm90b3R5cGUsRTBbbl0sdCxpKX1mdW5jdGlvbiBGbCh0KXtyZXR1cm4gdC5fX3NoYWR5X3Byb3RvSXNQYXRjaGVkPSEwLCQwKHQsRTAuRXZlbnRUYXJnZXQpLCQw''@;'; + put 'put ''KHQsRTAuTm9kZSksJDAodCxFMC5FbGVtZW50KSwkMCh0LEUwLkhUTUxFbGVtZW50KSwkMCh0LEUwLkhUTUxTbG90RWxlbWVudCksdH1bIlRleHQiLCJDb21tZW50IiwiQ0RBVEFTZWN0aW9uIiwiUHJvY2Vzc2luZ0luc3RydWN0aW9uIl0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgaT13aW5k''@;'; + put 'put ''b3dbdF0sbj1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKTtuLl9fc2hhZHlfcHJvdG9Jc1BhdGNoZWQ9ITAsJDAobixFMC5FdmVudFRhcmdldCksJDAobixFMC5Ob2RlKSxFMFt0XSYmJDAobixFMFt0XSksaS5wcm90b3R5cGUuX19zaGFkeV9wYXRjaGVkUHJvdG89bn0pO3ZhciBGYT15MS5B''@;'; + put 'put ''YSxJYT15MS5IO2Z1bmN0aW9uIG90KHQsaSl7aWYoRmEmJiF0Ll9fc2hhZHlfcHJvdG9Jc1BhdGNoZWQmJiFlMCh0KSl7dmFyIG49T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpLHM9bi5oYXNPd25Qcm9wZXJ0eSgiX19zaGFkeV9wYXRjaGVkUHJvdG8iKSYmbi5fX3NoYWR5X3BhdGNoZWRQcm90''@;'; + put 'put ''bztzfHwoRmwocz1PYmplY3QuY3JlYXRlKG4pKSxuLl9fc2hhZHlfcGF0Y2hlZFByb3RvPXMpLE9iamVjdC5zZXRQcm90b3R5cGVPZih0LHMpfUlhfHwoMT09PWk/ZWwodCk6Mj09PWkmJmxsKHQpKX1mdW5jdGlvbiBJbCh0LGksbixzKXtvdCh0LDEpLHM9c3x8bnVsbDt2YXIgZD1xMSh0KSxt''@;'; + put 'put ''PXM/cTEocyk6bnVsbDtkLnByZXZpb3VzU2libGluZz1zP20ucHJldmlvdXNTaWJsaW5nOmkuX19zaGFkeV9sYXN0Q2hpbGQsKG09ZzEoZC5wcmV2aW91c1NpYmxpbmcpKSYmKG0ubmV4dFNpYmxpbmc9dCksKG09ZzEoZC5uZXh0U2libGluZz1zKSkmJihtLnByZXZpb3VzU2libGluZz10KSxk''@;'; + put 'put ''LnBhcmVudE5vZGU9aSxzP3M9PT1uLmZpcnN0Q2hpbGQmJihuLmZpcnN0Q2hpbGQ9dCk6KG4ubGFzdENoaWxkPXQsbi5maXJzdENoaWxkfHwobi5maXJzdENoaWxkPXQpKSxuLmNoaWxkTm9kZXM9bnVsbH1mdW5jdGlvbiBzdCh0LGkpe3ZhciBuPXExKHQpO2lmKGl8fHZvaWQgMD09PW4uZmly''@;'; + put 'put ''c3RDaGlsZCl7bi5jaGlsZE5vZGVzPW51bGw7dmFyIHM9bi5maXJzdENoaWxkPXQuX19zaGFkeV9uYXRpdmVfZmlyc3RDaGlsZDtmb3Iobi5sYXN0Q2hpbGQ9dC5fX3NoYWR5X25hdGl2ZV9sYXN0Q2hpbGQsb3QodCwyKSxuPXMscz12b2lkIDA7bjtuPW4uX19zaGFkeV9uYXRpdmVfbmV4dFNp''@;'; + put 'put ''Ymxpbmcpe3ZhciBkPXExKG4pO2QucGFyZW50Tm9kZT1pfHx0LGQubmV4dFNpYmxpbmc9bi5fX3NoYWR5X25hdGl2ZV9uZXh0U2libGluZyxkLnByZXZpb3VzU2libGluZz1zfHxudWxsLHM9bixvdChuLDEpfX19dmFyIFBhPW4wKHthZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHQsaSxuKXsi''@;'; + put 'put ''b2JqZWN0IiE9dHlwZW9mIG4mJihuPXtjYXB0dXJlOiEhbn0pLG4uVT1uLlV8fHRoaXMsdGhpcy5ob3N0Ll9fc2hhZHlfYWRkRXZlbnRMaXN0ZW5lcih0LGksbil9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odCxpLG4peyJvYmplY3QiIT10eXBlb2YgbiYmKG49e2NhcHR1cmU6ISFu''@;'; + put 'put ''fSksbi5VPW4uVXx8dGhpcyx0aGlzLmhvc3QuX19zaGFkeV9yZW1vdmVFdmVudExpc3RlbmVyKHQsaSxuKX19KTtmdW5jdGlvbiBrbCh0LGkpe3MwKHQsUGEsaSksczAodCxwZSxpKSxzMCh0LGRlLGkpLHMwKHQsQzIsaSkseTEuSiYmIWk/KHMwKHQscnQsaSksczAodCx1ZSxpKSk6eTEuSHx8''@;'; + put 'put ''KHMwKHQsS3QpLHMwKHQscXQpLHMwKHQsWXQpKX12YXIgaHQsT2w9e30sYzI9eTEuZGVmZXJDb25uZWN0aW9uQ2FsbGJhY2tzJiYibG9hZGluZyI9PT1kb2N1bWVudC5yZWFkeVN0YXRlO2Z1bmN0aW9uIFBsKHQpe3ZhciBpPVtdO2Rve2kudW5zaGlmdCh0KX13aGlsZSh0PXQuX19zaGFkeV9w''@;'; + put 'put ''YXJlbnROb2RlKTtyZXR1cm4gaX1mdW5jdGlvbiBkdCh0LGksbil7aWYodCE9PU9sKXRocm93IG5ldyBUeXBlRXJyb3IoIklsbGVnYWwgY29uc3RydWN0b3IiKTt0aGlzLmc9bnVsbCxCbCh0aGlzLGksbil9ZnVuY3Rpb24gQmwodCxpLG4pe2lmKHQuaG9zdD1pLHQubW9kZT1uJiZuLm1vZGUs''@;'; + put 'put ''c3QodC5ob3N0KSwoaT1xMSh0Lmhvc3QpKS5yb290PXQsaS5nYj0iY2xvc2VkIiE9PXQubW9kZT90Om51bGwsKGk9cTEodCkpLmZpcnN0Q2hpbGQ9aS5sYXN0Q2hpbGQ9aS5wYXJlbnROb2RlPWkubmV4dFNpYmxpbmc9aS5wcmV2aW91c1NpYmxpbmc9bnVsbCx5MS5wcmVmZXJQZXJmb3JtYW5j''@;'; + put 'put ''ZSlmb3IoO2k9dC5ob3N0Ll9fc2hhZHlfbmF0aXZlX2ZpcnN0Q2hpbGQ7KXQuaG9zdC5fX3NoYWR5X25hdGl2ZV9yZW1vdmVDaGlsZChpKTtlbHNlIHEwKHQpfWZ1bmN0aW9uIHEwKHQpe3QuWXx8KHQuWT0hMCxxZShmdW5jdGlvbigpe3JldHVybiB1dCh0KX0pKX1mdW5jdGlvbiB1dCh0KXt2''@;'; + put 'put ''YXIgaTtpZihpPXQuWSl7Zm9yKHZhciBuO3Q7KXQuWSYmKG49dCksZTAodD0oaT10KS5ob3N0Ll9fc2hhZHlfZ2V0Um9vdE5vZGUoKSkmJihpPWcxKGkuaG9zdCkpJiYwPGkuaWF8fCh0PXZvaWQgMCk7aT1ufShuPWkpJiZuLl9yZW5kZXJTZWxmKCl9ZnVuY3Rpb24gR2wodCxpLG4pe3ZhciBz''@;'; + put 'put ''PXExKGkpLGQ9cy51YTtzLnVhPW51bGwsbnx8KG49KHQ9dC5oW2kuX19zaGFkeV9zbG90fHwiX19jYXRjaGFsbCJdKSYmdFswXSksbj8ocTEobikuYXNzaWduZWROb2Rlcy5wdXNoKGkpLHMuYXNzaWduZWRTbG90PW4pOnMuYXNzaWduZWRTbG90PXZvaWQgMCxkIT09cy5hc3NpZ25lZFNsb3Qm''@;'; + put 'put ''JnMuYXNzaWduZWRTbG90JiYocTEocy5hc3NpZ25lZFNsb3QpLnhhPSEwKX1mdW5jdGlvbiBqbCh0LGksbil7Zm9yKHZhciBzPTAsZD12b2lkIDA7czxuLmxlbmd0aCYmKGQ9bltzXSk7cysrKWlmKCJzbG90Ij09ZC5sb2NhbE5hbWUpe3ZhciBtPWcxKGQpLmFzc2lnbmVkTm9kZXM7bSYmbS5s''@;'; + put 'put ''ZW5ndGgmJmpsKHQsaSxtKX1lbHNlIGkucHVzaChuW3NdKX1mdW5jdGlvbiBSbCh0LGkpe2kuX19zaGFkeV9uYXRpdmVfZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInNsb3RjaGFuZ2UiKSksKGk9ZzEoaSkpLmFzc2lnbmVkU2xvdCYmUmwodCxpLmFzc2lnbmVkU2xvdCl9ZnVuY3Rpb24gemwo''@;'; + put 'put ''dCl7dC5pPXQuaXx8W10sdC5nPXQuZ3x8W10sdC5oPXQuaHx8e319ZnVuY3Rpb24gcHQodCl7aWYodC5pJiZ0LmkubGVuZ3RoKXtmb3IodmFyIG4saT10Lmkscz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgZD1pW3NdO3N0KGQpO3ZhciBtPWQuX19zaGFkeV9wYXJlbnROb2RlO3N0KG0pLChtPWcx''@;'; + put 'put ''KG0pKS5pYT0obS5pYXx8MCkrMSxtPVVsKGQpLHQuaFttXT8oKG49bnx8e30pW21dPSEwLHQuaFttXS5wdXNoKGQpKTp0LmhbbV09W2RdLHQuZy5wdXNoKGQpfWlmKG4pZm9yKHZhciBMIGluIG4pdC5oW0xdPVdsKHQuaFtMXSk7dC5pPVtdfX1mdW5jdGlvbiBVbCh0KXt2YXIgaT10Lm5hbWV8''@;'; + put 'put ''fHQuZ2V0QXR0cmlidXRlKCJuYW1lIil8fCJfX2NhdGNoYWxsIjtyZXR1cm4gdC5RYT1pfWZ1bmN0aW9uIFdsKHQpe3JldHVybiB0LnNvcnQoZnVuY3Rpb24oaSxuKXtpPVBsKGkpO2Zvcih2YXIgcz1QbChuKSxkPTA7ZDxpLmxlbmd0aDtkKyspe3ZhciBtPXNbZF07aWYoKG49aVtkXSkhPT1t''@;'; + put 'put ''KXJldHVybihpPXYyKG4uX19zaGFkeV9wYXJlbnROb2RlKSkuaW5kZXhPZihuKS1pLmluZGV4T2YobSl9fSl9ZnVuY3Rpb24gJGwodCl7cmV0dXJuIHB0KHQpLCEoIXQuZ3x8IXQuZy5sZW5ndGgpfWlmKGR0LnByb3RvdHlwZS5fcmVuZGVyU2VsZj1mdW5jdGlvbigpe3ZhciB0PWMyO2lmKGMy''@;'; + put 'put ''PSEwLHRoaXMuWT0hMSx0aGlzLmcpe3B0KHRoaXMpO2Zvcih2YXIgbixpPTA7aTx0aGlzLmcubGVuZ3RoO2krKyl7dmFyIHM9ZzEobj10aGlzLmdbaV0pLGQ9cy5hc3NpZ25lZE5vZGVzO2lmKHMuYXNzaWduZWROb2Rlcz1bXSxzLmFhPVtdLHMuR2E9ZClmb3Iocz0wO3M8ZC5sZW5ndGg7cysr''@;'; + put 'put ''KXt2YXIgbT1nMShkW3NdKTttLnVhPW0uYXNzaWduZWRTbG90LG0uYXNzaWduZWRTbG90PT09biYmKG0uYXNzaWduZWRTbG90PW51bGwpfX1mb3IoaT10aGlzLmhvc3QuX19zaGFkeV9maXJzdENoaWxkO2k7aT1pLl9fc2hhZHlfbmV4dFNpYmxpbmcpR2wodGhpcyxpKTtmb3IoaT0wO2k8dGhp''@;'; + put 'put ''cy5nLmxlbmd0aDtpKyspe2lmKCEoZD1nMShuPXRoaXMuZ1tpXSkpLmFzc2lnbmVkTm9kZXMubGVuZ3RoKWZvcihzPW4uX19zaGFkeV9maXJzdENoaWxkO3M7cz1zLl9fc2hhZHlfbmV4dFNpYmxpbmcpR2wodGhpcyxzLG4pO2lmKChzPShzPWcxKG4uX19zaGFkeV9wYXJlbnROb2RlKSkmJnMu''@;'; + put 'put ''cm9vdCkmJigkbChzKXx8cy5ZKSYmcy5fcmVuZGVyU2VsZigpLGpsKHRoaXMsZC5hYSxkLmFzc2lnbmVkTm9kZXMpLHM9ZC5HYSl7Zm9yKG09MDttPHMubGVuZ3RoO20rKylnMShzW21dKS51YT1udWxsO2QuR2E9bnVsbCxzLmxlbmd0aD5kLmFzc2lnbmVkTm9kZXMubGVuZ3RoJiYoZC54YT0h''@;'; + put 'put ''MCl9ZC54YSYmKGQueGE9ITEsUmwodGhpcyxuKSl9Zm9yKG49dGhpcy5nLGk9W10sZD0wO2Q8bi5sZW5ndGg7ZCsrKShtPWcxKHM9bltkXS5fX3NoYWR5X3BhcmVudE5vZGUpKSYmbS5yb290fHwhKDA+aS5pbmRleE9mKHMpKXx8aS5wdXNoKHMpO2ZvcihuPTA7bjxpLmxlbmd0aDtuKyspe2Zv''@;'; + put 'put ''cihkPShtPWlbbl0pPT09dGhpcz90aGlzLmhvc3Q6bSxzPVtdLG09bS5fX3NoYWR5X2ZpcnN0Q2hpbGQ7bTttPW0uX19zaGFkeV9uZXh0U2libGluZylpZigic2xvdCI9PW0ubG9jYWxOYW1lKWZvcih2YXIgTD1nMShtKS5hYSxGPTA7RjxMLmxlbmd0aDtGKyspcy5wdXNoKExbRl0pO2Vsc2Ug''@;'; + put 'put ''cy5wdXNoKG0pO209UDIoZCksTD1TYShzLHMubGVuZ3RoLG0sbS5sZW5ndGgpO2Zvcih2YXIgRz1GPTAsVT12b2lkIDA7RjxMLmxlbmd0aCYmKFU9TFtGXSk7RisrKXtmb3IodmFyIEs9MCxIMT12b2lkIDA7SzxVLmdhLmxlbmd0aCYmKEgxPVUuZ2FbS10pO0srKylIMS5fX3NoYWR5X25hdGl2''@;'; + put 'put ''ZV9wYXJlbnROb2RlPT09ZCYmZC5fX3NoYWR5X25hdGl2ZV9yZW1vdmVDaGlsZChIMSksbS5zcGxpY2UoVS5pbmRleCtHLDEpO0ctPVUubmF9Zm9yKEc9MCxVPXZvaWQgMDtHPEwubGVuZ3RoJiYoVT1MW0ddKTtHKyspZm9yKEY9bVtVLmluZGV4XSxLPVUuaW5kZXg7SzxVLmluZGV4K1UubmE7''@;'; + put 'put ''SysrKWQuX19zaGFkeV9uYXRpdmVfaW5zZXJ0QmVmb3JlKEgxPXNbS10sRiksbS5zcGxpY2UoSywwLEgxKX19aWYoIXkxLnByZWZlclBlcmZvcm1hbmNlJiYhdGhpcy5GYSlmb3IoaT10aGlzLmhvc3QuX19zaGFkeV9maXJzdENoaWxkO2k7aT1pLl9fc2hhZHlfbmV4dFNpYmxpbmcpbj1nMShp''@;'; + put 'put ''KSxpLl9fc2hhZHlfbmF0aXZlX3BhcmVudE5vZGUhPT10aGlzLmhvc3R8fCJzbG90IiE9PWkubG9jYWxOYW1lJiZuLmFzc2lnbmVkU2xvdHx8dGhpcy5ob3N0Ll9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKGkpO3RoaXMuRmE9ITAsYzI9dCxodCYmaHQoKX0sZnVuY3Rpb24odCl7dC5fX3By''@;'; + put 'put ''b3RvX189RG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUsa2wodCwiX19zaGFkeV8iKSxrbCh0KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LHtub2RlVHlwZTp7dmFsdWU6Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFLGNvbmZpZ3VyYWJsZTohMH0sbm9kZU5hbWU6e3ZhbHVlOiIjZG9j''@;'; + put 'put ''dW1lbnQtZnJhZ21lbnQiLGNvbmZpZ3VyYWJsZTohMH0sbm9kZVZhbHVlOnt2YWx1ZTpudWxsLGNvbmZpZ3VyYWJsZTohMH19KSxbImxvY2FsTmFtZSIsIm5hbWVzcGFjZVVSSSIsInByZWZpeCJdLmZvckVhY2goZnVuY3Rpb24oaSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSx7dmFsdWU6''@;'; + put 'put ''dm9pZCAwLGNvbmZpZ3VyYWJsZTohMH0pfSksWyJvd25lckRvY3VtZW50IiwiYmFzZVVSSSIsImlzQ29ubmVjdGVkIl0uZm9yRWFjaChmdW5jdGlvbihpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ob3N0W2ldfSxjb25maWd1cmFibGU6''@;'; + put 'put ''ITB9KX0pfShkdC5wcm90b3R5cGUpLHdpbmRvdy5jdXN0b21FbGVtZW50cyYmd2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSYmeTEueWEmJiF5MS5wcmVmZXJQZXJmb3JtYW5jZSl7dmFyIGZ0PW5ldyBNYXA7aHQ9ZnVuY3Rpb24oKXt2YXIgdD1bXTtmdC5mb3JFYWNoKGZ1bmN0aW9uKHMs''@;'; + put 'put ''ZCl7dC5wdXNoKFtkLHNdKX0pLGZ0LmNsZWFyKCk7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBuPXRbaV1bMF07dFtpXVsxXT9uLl9fc2hhZHlkb21fY29ubmVjdGVkQ2FsbGJhY2soKTpuLl9fc2hhZHlkb21fZGlzY29ubmVjdGVkQ2FsbGJhY2soKX19LGMyJiZkb2N1bWVudC5h''@;'; + put 'put ''ZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbigpe2MyPSExLGh0KCl9LHtvbmNlOiEwfSk7dmFyIGphPXdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUscWw9ZnVuY3Rpb24odCxpKXt2YXIgbj1pLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjayxzPWkucHJv''@;'; + put 'put ''dG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrO2phLmNhbGwod2luZG93LmN1c3RvbUVsZW1lbnRzLHQsZnVuY3Rpb24odCxpLG4pe3ZhciBzPTAsZD0iX19pc0Nvbm5lY3RlZCIrcysrO3JldHVybihpfHxuKSYmKHQucHJvdG90eXBlLmNvbm5lY3RlZENhbGxiYWNrPXQucHJvdG90eXBlLl9f''@;'; + put 'put ''c2hhZHlkb21fY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24oKXtjMj9mdC5zZXQodGhpcywhMCk6dGhpc1tkXXx8KHRoaXNbZF09ITAsaSYmaS5jYWxsKHRoaXMpKX0sdC5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2s9dC5wcm90b3R5cGUuX19zaGFkeWRvbV9kaXNjb25uZWN0ZWRD''@;'; + put 'put ''YWxsYmFjaz1mdW5jdGlvbigpe2MyP3RoaXMuaXNDb25uZWN0ZWR8fGZ0LnNldCh0aGlzLCExKTp0aGlzW2RdJiYodGhpc1tkXT0hMSxuJiZuLmNhbGwodGhpcykpfSksdH0oaSxuLHMpKSxpLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjaz1uLGkucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENh''@;'; + put 'put ''bGxiYWNrPXN9O3dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmU9cWwsT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5DdXN0b21FbGVtZW50UmVnaXN0cnkucHJvdG90eXBlLCJkZWZpbmUiLHt2YWx1ZTpxbCxjb25maWd1cmFibGU6ITB9KX1mdW5jdGlvbiBtMih0KXtpZihlMCh0PXQu''@;'; + put 'put ''X19zaGFkeV9nZXRSb290Tm9kZSgpKSlyZXR1cm4gdH1mdW5jdGlvbiBNMih0KXt0aGlzLm5vZGU9dH1mdW5jdGlvbiBZbCh0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoTTIucHJvdG90eXBlLHQse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGVbIl9fc2hhZHlfIit0XX0sc2V0OmZ1''@;'; + put 'put ''bmN0aW9uKGkpe3RoaXMubm9kZVsiX19zaGFkeV8iK3RdPWl9LGNvbmZpZ3VyYWJsZTohMH0pfShYPU0yLnByb3RvdHlwZSkuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbih0LGksbil7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2FkZEV2ZW50TGlzdGVuZXIodCxpLG4pfSxYLnJlbW92ZUV2''@;'; + put 'put ''ZW50TGlzdGVuZXI9ZnVuY3Rpb24odCxpLG4pe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9yZW1vdmVFdmVudExpc3RlbmVyKHQsaSxuKX0sWC5hcHBlbmRDaGlsZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYXBwZW5kQ2hpbGQodCl9LFguaW5zZXJ0QmVmb3JlPWZ1''@;'; + put 'put ''bmN0aW9uKHQsaSl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2luc2VydEJlZm9yZSh0LGkpfSxYLnJlbW92ZUNoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9yZW1vdmVDaGlsZCh0KX0sWC5yZXBsYWNlQ2hpbGQ9ZnVuY3Rpb24odCxpKXtyZXR1cm4gdGhpcy5u''@;'; + put 'put ''b2RlLl9fc2hhZHlfcmVwbGFjZUNoaWxkKHQsaSl9LFguY2xvbmVOb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jbG9uZU5vZGUodCl9LFguZ2V0Um9vdE5vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2dldFJvb3ROb2RlKHQpfSxYLmNv''@;'; + put 'put ''bnRhaW5zPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jb250YWlucyh0KX0sWC5kaXNwYXRjaEV2ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9kaXNwYXRjaEV2ZW50KHQpfSxYLnNldEF0dHJpYnV0ZT1mdW5jdGlvbih0LGkpe3RoaXMubm9k''@;'; + put 'put ''ZS5fX3NoYWR5X3NldEF0dHJpYnV0ZSh0LGkpfSxYLmdldEF0dHJpYnV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfbmF0aXZlX2dldEF0dHJpYnV0ZSh0KX0sWC5oYXNBdHRyaWJ1dGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X25hdGl2ZV9o''@;'; + put 'put ''YXNBdHRyaWJ1dGUodCl9LFgucmVtb3ZlQXR0cmlidXRlPWZ1bmN0aW9uKHQpe3RoaXMubm9kZS5fX3NoYWR5X3JlbW92ZUF0dHJpYnV0ZSh0KX0sWC5hdHRhY2hTaGFkb3c9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2F0dGFjaFNoYWRvdyh0KX0sWC5mb2N1cz1mdW5j''@;'; + put 'put ''dGlvbigpe3RoaXMubm9kZS5fX3NoYWR5X25hdGl2ZV9mb2N1cygpfSxYLmJsdXI9ZnVuY3Rpb24oKXt0aGlzLm5vZGUuX19zaGFkeV9ibHVyKCl9LFguaW1wb3J0Tm9kZT1mdW5jdGlvbih0LGkpe2lmKHRoaXMubm9kZS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfTk9ERSlyZXR1cm4gdGhp''@;'; + put 'put ''cy5ub2RlLl9fc2hhZHlfaW1wb3J0Tm9kZSh0LGkpfSxYLmdldEVsZW1lbnRCeUlkPWZ1bmN0aW9uKHQpe2lmKHRoaXMubm9kZS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfTk9ERSlyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfZ2V0RWxlbWVudEJ5SWQodCl9LFguZWxlbWVudHNGcm9tUG9p''@;'; + put 'put ''bnQ9ZnVuY3Rpb24odCxpKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfZWxlbWVudHNGcm9tUG9pbnQodCxpKX0sWC5lbGVtZW50RnJvbVBvaW50PWZ1bmN0aW9uKHQsaSl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2VsZW1lbnRGcm9tUG9pbnQodCxpKX0sWC5xdWVyeVNlbGVjdG9yPWZ1''@;'; + put 'put ''bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9xdWVyeVNlbGVjdG9yKHQpfSxYLnF1ZXJ5U2VsZWN0b3JBbGw9ZnVuY3Rpb24odCxpKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcXVlcnlTZWxlY3RvckFsbCh0LGkpfSxYLmFzc2lnbmVkTm9kZXM9ZnVuY3Rpb24odCl7aWYo''@;'; + put 'put ''InNsb3QiPT09dGhpcy5ub2RlLmxvY2FsTmFtZSlyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYXNzaWduZWROb2Rlcyh0KX0sWC5hcHBlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO3JldHVybiB0aGlzLm5v''@;'; + put 'put ''ZGUuX19zaGFkeV9hcHBlbmQuYXBwbHkodGhpcy5ub2RlLGMoaSkpfSxYLnByZXBlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9wcmVwZW5kLmFwcGx5KHRoaXMu''@;'; + put 'put ''bm9kZSxjKGkpKX0sWC5hZnRlcj1mdW5jdGlvbih0KXtmb3IodmFyIGk9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDsrK24paVtuXT1hcmd1bWVudHNbbl07cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2FmdGVyLmFwcGx5KHRoaXMubm9kZSxjKGkpKX0sWC5iZWZvcmU9ZnVuY3Rpb24odCl7''@;'; + put 'put ''Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9iZWZvcmUuYXBwbHkodGhpcy5ub2RlLGMoaSkpfSxYLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9yZW1vdmUo''@;'; + put 'put ''KX0sWC5yZXBsYWNlV2l0aD1mdW5jdGlvbih0KXtmb3IodmFyIGk9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDsrK24paVtuXT1hcmd1bWVudHNbbl07cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3JlcGxhY2VXaXRoLmFwcGx5KHRoaXMubm9kZSxjKGkpKX0sZS5PYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydGllcyhNMi5wcm90b3R5cGUse2FjdGl2ZUVsZW1lbnQ6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKGUwKHRoaXMubm9kZSl8fHRoaXMubm9kZS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfTk9ERSlyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlf''@;'; + put 'put ''YWN0aXZlRWxlbWVudH19LF9hY3RpdmVFbGVtZW50Ontjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmVFbGVtZW50fX0saG9zdDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoZTAodGhp''@;'; + put 'put ''cy5ub2RlKSlyZXR1cm4gdGhpcy5ub2RlLmhvc3R9fSxwYXJlbnROb2RlOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcGFyZW50Tm9kZX19LGZpcnN0Q2hpbGQ6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxl''@;'; + put 'put ''OiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9maXJzdENoaWxkfX0sbGFzdENoaWxkOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfbGFzdENoaWxkfX0sbmV4dFNpYmxpbmc6e2Nv''@;'; + put 'put ''bmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9uZXh0U2libGluZ319LHByZXZpb3VzU2libGluZzp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3No''@;'; + put 'put ''YWR5X3ByZXZpb3VzU2libGluZ319LGNoaWxkTm9kZXM6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jaGlsZE5vZGVzfX0scGFyZW50RWxlbWVudDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0''@;'; + put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3BhcmVudEVsZW1lbnR9fSxmaXJzdEVsZW1lbnRDaGlsZDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2ZpcnN0RWxlbWVudENoaWxkfX0sbGFz''@;'; + put 'put ''dEVsZW1lbnRDaGlsZDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2xhc3RFbGVtZW50Q2hpbGR9fSxuZXh0RWxlbWVudFNpYmxpbmc6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlv''@;'; + put 'put ''bigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9uZXh0RWxlbWVudFNpYmxpbmd9fSxwcmV2aW91c0VsZW1lbnRTaWJsaW5nOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcHJldmlvdXNFbGVtZW50U2libGlu''@;'; + put 'put ''Z319LGNoaWxkcmVuOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfY2hpbGRyZW59fSxjaGlsZEVsZW1lbnRDb3VudDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJu''@;'; + put 'put ''IHRoaXMubm9kZS5fX3NoYWR5X2NoaWxkRWxlbWVudENvdW50fX0sc2hhZG93Um9vdDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3NoYWRvd1Jvb3R9fSxhc3NpZ25lZFNsb3Q6e2NvbmZpZ3VyYWJsZTohMCxl''@;'; + put 'put ''bnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9hc3NpZ25lZFNsb3R9fSxpc0Nvbm5lY3RlZDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2lzQ29ubmVjdGVkfX0s''@;'; + put 'put ''aW5uZXJIVE1MOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfaW5uZXJIVE1MfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlLl9fc2hhZHlfaW5uZXJIVE1MPXR9fSx0ZXh0Q29udGVudDp7Y29uZmlndXJhYmxl''@;'; + put 'put ''OiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3RleHRDb250ZW50fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlLl9fc2hhZHlfdGV4dENvbnRlbnQ9dH19LHNsb3Q6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5j''@;'; + put 'put ''dGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9zbG90fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlLl9fc2hhZHlfc2xvdD10fX0sY2xhc3NOYW1lOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfY2xh''@;'; + put 'put ''c3NOYW1lfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlLl9fc2hhZHlfY2xhc3NOYW1lPXR9fX0pLHBsLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIFlsKHQpfSksZmwuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gWWwodCl9KTt2YXIgS2w9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gWGwo''@;'; + put 'put ''dCl7aWYoZTAodCl8fHQgaW5zdGFuY2VvZiBNMilyZXR1cm4gdDt2YXIgaT1LbC5nZXQodCk7cmV0dXJuIGl8fChpPW5ldyBNMih0KSxLbC5zZXQodCxpKSksaX1pZih5MS55YSl7dmFyIFFsPXkxLkg/ZnVuY3Rpb24odCl7cmV0dXJuIHR9OmZ1bmN0aW9uKHQpe3JldHVybiBsbCh0KSxlbCh0''@;'; + put 'put ''KSx0fSxSYT17aW5Vc2U6eTEueWEscGF0Y2g6UWwsaXNTaGFkeVJvb3Q6ZTAsZW5xdWV1ZTpxZSxmbHVzaDpldCxmbHVzaEluaXRpYWw6ZnVuY3Rpb24odCl7IXQuRmEmJnQuWSYmdXQodCl9LHNldHRpbmdzOnkxLGZpbHRlck11dGF0aW9uczpmdW5jdGlvbiB1YSh0LGkpe3ZhciBuPWkuZ2V0''@;'; + put 'put ''Um9vdE5vZGUoKTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24ocyl7dmFyIGQ9bj09PXMudGFyZ2V0LmdldFJvb3ROb2RlKCk7aWYoZCYmcy5hZGRlZE5vZGVzKXtpZihkPVtdLnNsaWNlLmNhbGwocy5hZGRlZE5vZGVzKS5maWx0ZXIoZnVuY3Rpb24obSl7cmV0dXJuIG49PT1tLmdldFJvb3ROb2Rl''@;'; + put 'put ''KCl9KSxkLmxlbmd0aClyZXR1cm4gcz1PYmplY3QuY3JlYXRlKHMpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJhZGRlZE5vZGVzIix7dmFsdWU6ZCxjb25maWd1cmFibGU6ITB9KSxzfWVsc2UgaWYoZClyZXR1cm4gc30pLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gc30pfSxvYnNlcnZl''@;'; + put 'put ''Q2hpbGRyZW46ZnVuY3Rpb24gaGEodCxpKXt2YXIgbj1xMSh0KTtuLmVhfHwobi5lYT1uZXcganQpLG4uZWEub2EuYWRkKGkpO3ZhciBzPW4uZWE7cmV0dXJue1JhOmksWDpzLFNhOnQsdGFrZVJlY29yZHM6ZnVuY3Rpb24oKXtyZXR1cm4gcy50YWtlUmVjb3JkcygpfX19LHVub2JzZXJ2ZUNo''@;'; + put 'put ''aWxkcmVuOmZ1bmN0aW9uIGRhKHQpe3ZhciBpPXQmJnQuWDtpJiYoaS5vYS5kZWxldGUodC5SYSksaS5vYS5zaXplfHwocTEodC5TYSkuZWE9bnVsbCkpfSxkZWZlckNvbm5lY3Rpb25DYWxsYmFja3M6eTEuZGVmZXJDb25uZWN0aW9uQ2FsbGJhY2tzLHByZWZlclBlcmZvcm1hbmNlOnkxLnBy''@;'; + put 'put ''ZWZlclBlcmZvcm1hbmNlLGhhbmRsZXNEeW5hbWljU2NvcGluZzohMCx3cmFwOnkxLko/WGw6UWwsd3JhcElmTmVlZGVkOiEwPT09eTEuSj9YbDpmdW5jdGlvbih0KXtyZXR1cm4gdH0sV3JhcHBlcjpNMixjb21wb3NlZFBhdGg6ZnVuY3Rpb24gVmEodCl7cmV0dXJuIHQuX19jb21wb3NlZFBh''@;'; + put 'put ''dGh8fCh0Ll9fY29tcG9zZWRQYXRoPWl0KHQudGFyZ2V0LCEwKSksdC5fX2NvbXBvc2VkUGF0aH0sbm9QYXRjaDp5MS5KLHBhdGNoT25EZW1hbmQ6eTEuQWEsbmF0aXZlTWV0aG9kczp6dCxuYXRpdmVUcmVlOlhlLHBhdGNoRWxlbWVudFByb3RvOkZsfTt3aW5kb3cuU2hhZHlET009UmEsZnVu''@;'; + put 'put ''Y3Rpb24gdmEoKXt2YXIgdD1bImRpc3BhdGNoRXZlbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdO3dpbmRvdy5FdmVudFRhcmdldD8oYzAod2luZG93LkV2ZW50VGFyZ2V0LnByb3RvdHlwZSx0KSx2b2lkIDA9PT13aW5kb3cuX19zaGFkeV9uYXRpdmVfYWRk''@;'; + put 'put ''RXZlbnRMaXN0ZW5lciYmYzAoV2luZG93LnByb3RvdHlwZSx0KSk6KGMwKE5vZGUucHJvdG90eXBlLHQpLGMwKFdpbmRvdy5wcm90b3R5cGUsdCkpLGx0P2MwKE5vZGUucHJvdG90eXBlLCJwYXJlbnROb2RlIGZpcnN0Q2hpbGQgbGFzdENoaWxkIHByZXZpb3VzU2libGluZyBuZXh0U2libGlu''@;'; + put 'put ''ZyBjaGlsZE5vZGVzIHBhcmVudEVsZW1lbnQgdGV4dENvbnRlbnQiLnNwbGl0KCIgIikpOkcyKE5vZGUucHJvdG90eXBlLHtwYXJlbnROb2RlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTAuY3VycmVudE5vZGU9dGhpcyx5MC5wYXJlbnROb2RlKCl9fSxmaXJzdENoaWxkOntnZXQ6ZnVuY3Rp''@;'; + put 'put ''b24oKXtyZXR1cm4geTAuY3VycmVudE5vZGU9dGhpcyx5MC5maXJzdENoaWxkKCl9fSxsYXN0Q2hpbGQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB5MC5jdXJyZW50Tm9kZT10aGlzLHkwLmxhc3RDaGlsZCgpfX0scHJldmlvdXNTaWJsaW5nOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTAuY3Vy''@;'; + put 'put ''cmVudE5vZGU9dGhpcyx5MC5wcmV2aW91c1NpYmxpbmcoKX19LG5leHRTaWJsaW5nOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTAuY3VycmVudE5vZGU9dGhpcyx5MC5uZXh0U2libGluZygpfX0sY2hpbGROb2Rlczp7Z2V0OmZ1bmN0aW9uKCl7dmFyIGk9W107eTAuY3VycmVudE5vZGU9dGhp''@;'; + put 'put ''cztmb3IodmFyIG49eTAuZmlyc3RDaGlsZCgpO247KWkucHVzaChuKSxuPXkwLm5leHRTaWJsaW5nKCk7cmV0dXJuIGl9fSxwYXJlbnRFbGVtZW50OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTDAuY3VycmVudE5vZGU9dGhpcyxMMC5wYXJlbnROb2RlKCl9fSx0ZXh0Q29udGVudDp7Z2V0OmZ1''@;'; + put 'put ''bmN0aW9uKCl7c3dpdGNoKHRoaXMubm9kZVR5cGUpe2Nhc2UgTm9kZS5FTEVNRU5UX05PREU6Y2FzZSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6Zm9yKHZhciBzLGk9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0aGlzLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwsITEpLG49IiI7''@;'; + put 'put ''cz1pLm5leHROb2RlKCk7KW4rPXMubm9kZVZhbHVlO3JldHVybiBuO2RlZmF1bHQ6cmV0dXJuIHRoaXMubm9kZVZhbHVlfX0sc2V0OmZ1bmN0aW9uKGkpe3N3aXRjaChudWxsPT1pJiYoaT0iIiksdGhpcy5ub2RlVHlwZSl7Y2FzZSBOb2RlLkVMRU1FTlRfTk9ERTpjYXNlIE5vZGUuRE9DVU1F''@;'; + put 'put ''TlRfRlJBR01FTlRfTk9ERTpKZSh0aGlzKSwoMDxpLmxlbmd0aHx8dGhpcy5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKSYmdGhpcy5fX3NoYWR5X25hdGl2ZV9pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoaSksdm9pZCAwKTticmVhaztkZWZhdWx0OnRoaXMubm9k''@;'; + put 'put ''ZVZhbHVlPWl9fX19KSxjMChOb2RlLnByb3RvdHlwZSwiYXBwZW5kQ2hpbGQgaW5zZXJ0QmVmb3JlIHJlbW92ZUNoaWxkIHJlcGxhY2VDaGlsZCBjbG9uZU5vZGUgY29udGFpbnMiLnNwbGl0KCIgIikpLGMwKEhUTUxFbGVtZW50LnByb3RvdHlwZSxbInBhcmVudEVsZW1lbnQiLCJjb250YWlu''@;'; + put 'put ''cyJdKSx0PXtmaXJzdEVsZW1lbnRDaGlsZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEwwLmN1cnJlbnROb2RlPXRoaXMsTDAuZmlyc3RDaGlsZCgpfX0sbGFzdEVsZW1lbnRDaGlsZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEwwLmN1cnJlbnROb2RlPXRoaXMsTDAubGFzdENoaWxkKCl9fSxj''@;'; + put 'put ''aGlsZHJlbjp7Z2V0OmZ1bmN0aW9uKCl7dmFyIGk9W107TDAuY3VycmVudE5vZGU9dGhpcztmb3IodmFyIG49TDAuZmlyc3RDaGlsZCgpO247KWkucHVzaChuKSxuPUwwLm5leHRTaWJsaW5nKCk7cmV0dXJuIEIwKGkpfX0sY2hpbGRFbGVtZW50Q291bnQ6e2dldDpmdW5jdGlvbigpe3JldHVy''@;'; + put 'put ''biB0aGlzLmNoaWxkcmVuP3RoaXMuY2hpbGRyZW4ubGVuZ3RoOjB9fX0sbHQ/KGMwKEVsZW1lbnQucHJvdG90eXBlLFd0KSxjMChFbGVtZW50LnByb3RvdHlwZSxbInByZXZpb3VzRWxlbWVudFNpYmxpbmciLCJuZXh0RWxlbWVudFNpYmxpbmciLCJpbm5lckhUTUwiLCJjbGFzc05hbWUiXSks''@;'; + put 'put ''YzAoSFRNTEVsZW1lbnQucHJvdG90eXBlLFsiY2hpbGRyZW4iLCJpbm5lckhUTUwiLCJjbGFzc05hbWUiXSkpOihHMihFbGVtZW50LnByb3RvdHlwZSx0KSxHMihFbGVtZW50LnByb3RvdHlwZSx7cHJldmlvdXNFbGVtZW50U2libGluZzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEwwLmN1cnJl''@;'; + put 'put ''bnROb2RlPXRoaXMsTDAucHJldmlvdXNTaWJsaW5nKCl9fSxuZXh0RWxlbWVudFNpYmxpbmc6e2dldDpmdW5jdGlvbigpe3JldHVybiBMMC5jdXJyZW50Tm9kZT10aGlzLEwwLm5leHRTaWJsaW5nKCl9fSxpbm5lckhUTUw6e2dldDpmdW5jdGlvbigpe3JldHVybiBSdCh0aGlzLFAyKX0sc2V0''@;'; + put 'put ''OmZ1bmN0aW9uKGkpe3ZhciBuPSJ0ZW1wbGF0ZSI9PT10aGlzLmxvY2FsTmFtZT90aGlzLmNvbnRlbnQ6dGhpcztKZShuKTt2YXIgcz10aGlzLmxvY2FsTmFtZXx8ImRpdiI7Zm9yKChzPXRoaXMubmFtZXNwYWNlVVJJJiZ0aGlzLm5hbWVzcGFjZVVSSSE9PVV0Lm5hbWVzcGFjZVVSST9VdC5j''@;'; + put 'put ''cmVhdGVFbGVtZW50TlModGhpcy5uYW1lc3BhY2VVUkkscyk6VXQuY3JlYXRlRWxlbWVudChzKSkuaW5uZXJIVE1MPWksaT0idGVtcGxhdGUiPT09dGhpcy5sb2NhbE5hbWU/cy5jb250ZW50OnM7cz1pLl9fc2hhZHlfbmF0aXZlX2ZpcnN0Q2hpbGQ7KW4uX19zaGFkeV9uYXRpdmVfaW5zZXJ0''@;'; + put 'put ''QmVmb3JlKHMsdm9pZCAwKX19LGNsYXNzTmFtZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn0sc2V0OmZ1bmN0aW9uKGkpe3RoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsaSl9fX0pKSxjMChFbGVtZW50LnByb3RvdHlwZSwic2V0QXR0cmli''@;'; + put 'put ''dXRlIGdldEF0dHJpYnV0ZSBoYXNBdHRyaWJ1dGUgcmVtb3ZlQXR0cmlidXRlIGZvY3VzIGJsdXIiLnNwbGl0KCIgIikpLGMwKEVsZW1lbnQucHJvdG90eXBlLCR0KSxjMChIVE1MRWxlbWVudC5wcm90b3R5cGUsWyJmb2N1cyIsImJsdXIiXSksd2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQm''@;'; + put 'put ''JmMwKHdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50LnByb3RvdHlwZSxbImlubmVySFRNTCJdKSxsdD9jMChEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSxXdCk6RzIoRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUsdCksYzAoRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUsJHQpLGx0Pyhj''@;'; + put 'put ''MChEb2N1bWVudC5wcm90b3R5cGUsV3QpLGMwKERvY3VtZW50LnByb3RvdHlwZSxbImFjdGl2ZUVsZW1lbnQiXSkpOkcyKERvY3VtZW50LnByb3RvdHlwZSx0KSxjMChEb2N1bWVudC5wcm90b3R5cGUsWyJpbXBvcnROb2RlIiwiZ2V0RWxlbWVudEJ5SWQiLCJlbGVtZW50RnJvbVBvaW50IixP''@;'; + put 'put ''MCgpXSksYzAoRG9jdW1lbnQucHJvdG90eXBlLCR0KX0oKSxObCgiX19zaGFkeV8iKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZG9jdW1lbnQsIl9hY3RpdmVFbGVtZW50IixwZS5hY3RpdmVFbGVtZW50KSxzMChXaW5kb3cucHJvdG90eXBlLFRsLCJfX3NoYWR5XyIpLHkxLko/eTEuQWEmJnMw''@;'; + put 'put ''KEVsZW1lbnQucHJvdG90eXBlLHhsKTooTmwoKSxmdW5jdGlvbiBMYSgpe2lmKCFRdCYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFdmVudC5wcm90b3R5cGUsImlzVHJ1c3RlZCIpKXt2YXIgdD1mdW5jdGlvbigpe3ZhciBpPW5ldyBNb3VzZUV2ZW50KCJjbGljayIse2J1YmJs''@;'; + put 'put ''ZXM6ITAsY2FuY2VsYWJsZTohMCxjb21wb3NlZDohMH0pO3RoaXMuX19zaGFkeV9kaXNwYXRjaEV2ZW50KGkpfTtFbGVtZW50LnByb3RvdHlwZS5jbGljaz9FbGVtZW50LnByb3RvdHlwZS5jbGljaz10OkhUTUxFbGVtZW50LnByb3RvdHlwZS5jbGljayYmKEhUTUxFbGVtZW50LnByb3RvdHlw''@;'; + put 'put ''ZS5jbGljaz10KX19KCkpLGZ1bmN0aW9uIG1hKCl7Zm9yKHZhciB0IGluIG5sKXdpbmRvdy5fX3NoYWR5X25hdGl2ZV9hZGRFdmVudExpc3RlbmVyKHQsZnVuY3Rpb24oaSl7aS5fX3RhcmdldHx8KGllKGkpLHNsKGkpKX0sITApfSgpLHdpbmRvdy5FdmVudD1NYSx3aW5kb3cuQ3VzdG9tRXZl''@;'; + put 'put ''bnQ9WmEsd2luZG93Lk1vdXNlRXZlbnQ9eWEsd2luZG93LlNoYWRvd1Jvb3Q9ZHR9dmFyIGZlPXdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuY3JlYXRlRWxlbWVudCxnZT13aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnROUyx6YT13aW5kb3cuRG9jdW1lbnQucHJvdG90''@;'; + put 'put ''eXBlLmltcG9ydE5vZGUsVWE9d2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5wcmVwZW5kLFdhPXdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuYXBwZW5kLCRhPXdpbmRvdy5Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZS5wcmVwZW5kLHFhPXdpbmRvdy5Eb2N1bWVudEZyYWdtZW50LnByb3Rv''@;'; + put 'put ''dHlwZS5hcHBlbmQsSmw9d2luZG93Lk5vZGUucHJvdG90eXBlLmNsb25lTm9kZSxndD13aW5kb3cuTm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQsdGk9d2luZG93Lk5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSxBZT13aW5kb3cuTm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQsZWk9d2lu''@;'; + put 'put ''ZG93Lk5vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZCx2ZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdy5Ob2RlLnByb3RvdHlwZSwidGV4dENvbnRlbnQiKSxsaT13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuYXR0YWNoU2hhZG93LEhlPU9iamVjdC5nZXRPd25Qcm9w''@;'; + put 'put ''ZXJ0eURlc2NyaXB0b3Iod2luZG93LkVsZW1lbnQucHJvdG90eXBlLCJpbm5lckhUTUwiKSxDZT13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuZ2V0QXR0cmlidXRlLGlpPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGUsYWk9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnJl''@;'; + put 'put ''bW92ZUF0dHJpYnV0ZSxBdD13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuZ2V0QXR0cmlidXRlTlMscmk9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5TLG5pPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5yZW1vdmVBdHRyaWJ1dGVOUyxjaT13aW5kb3cuRWxlbWVudC5w''@;'; + put 'put ''cm90b3R5cGUuaW5zZXJ0QWRqYWNlbnRFbGVtZW50LG9pPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5pbnNlcnRBZGphY2VudEhUTUwsWWE9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnByZXBlbmQsS2E9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFwcGVuZCxzaT13aW5kb3cuRWxlbWVu''@;'; + put 'put ''dC5wcm90b3R5cGUuYmVmb3JlLGhpPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hZnRlcixkaT13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUucmVwbGFjZVdpdGgsdWk9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnJlbW92ZSxYYT13aW5kb3cuSFRNTEVsZW1lbnQsVmU9T2JqZWN0LmdldE93''@;'; + put 'put ''blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLCJpbm5lckhUTUwiKSxwaT13aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLmluc2VydEFkamFjZW50RWxlbWVudCxmaT13aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLmluc2VydEFkamFjZW50SFRN''@;'; + put 'put ''TCxnaT1uZXcgU2V0O2Z1bmN0aW9uIEFpKHQpe3ZhciBpPWdpLmhhcyh0KTtyZXR1cm4gdD0vXlthLXpdWy4wLTlfYS16XSotWy0uMC05X2Etel0qJC8udGVzdCh0KSwhaSYmdH0iYW5ub3RhdGlvbi14bWwgY29sb3ItcHJvZmlsZSBmb250LWZhY2UgZm9udC1mYWNlLXNyYyBmb250LWZhY2Ut''@;'; + put 'put ''dXJpIGZvbnQtZmFjZS1mb3JtYXQgZm9udC1mYWNlLW5hbWUgbWlzc2luZy1nbHlwaCIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBnaS5hZGQodCl9KTt2YXIgUWE9ZG9jdW1lbnQuY29udGFpbnM/ZG9jdW1lbnQuY29udGFpbnMuYmluZChkb2N1bWVudCk6ZG9jdW1l''@;'; + put 'put ''bnQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zLmJpbmQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtmdW5jdGlvbiByMCh0KXt2YXIgaT10LmlzQ29ubmVjdGVkO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGk7aWYoUWEodCkpcmV0dXJuITA7Zm9yKDt0JiYhKHQuX19DRV9pc0ltcG9ydERvY3Vt''@;'; + put 'put ''ZW50fHx0IGluc3RhbmNlb2YgRG9jdW1lbnQpOyl0PXQucGFyZW50Tm9kZXx8KHdpbmRvdy5TaGFkb3dSb290JiZ0IGluc3RhbmNlb2YgU2hhZG93Um9vdD90Lmhvc3Q6dm9pZCAwKTtyZXR1cm4hKCF0fHwhKHQuX19DRV9pc0ltcG9ydERvY3VtZW50fHx0IGluc3RhbmNlb2YgRG9jdW1lbnQp''@;'; + put 'put ''KX1mdW5jdGlvbiBtZSh0KXt2YXIgaT10LmNoaWxkcmVuO2lmKGkpcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGkpO2ZvcihpPVtdLHQ9dC5maXJzdENoaWxkO3Q7dD10Lm5leHRTaWJsaW5nKXQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmaS5wdXNoKHQpO3JldHVy''@;'; + put 'put ''biBpfWZ1bmN0aW9uIE1lKHQsaSl7Zm9yKDtpJiZpIT09dCYmIWkubmV4dFNpYmxpbmc7KWk9aS5wYXJlbnROb2RlO3JldHVybiBpJiZpIT09dD9pLm5leHRTaWJsaW5nOm51bGx9ZnVuY3Rpb24gWmUodCxpLG4pe2Zvcih2YXIgcz10O3M7KXtpZihzLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5U''@;'; + put 'put ''X05PREUpe3ZhciBkPXM7aShkKTt2YXIgbT1kLmxvY2FsTmFtZTtpZigibGluayI9PT1tJiYiaW1wb3J0Ij09PWQuZ2V0QXR0cmlidXRlKCJyZWwiKSl7aWYocz1kLmltcG9ydCx2b2lkIDA9PT1uJiYobj1uZXcgU2V0KSxzIGluc3RhbmNlb2YgTm9kZSYmIW4uaGFzKHMpKWZvcihuLmFkZChz''@;'; + put 'put ''KSxzPXMuZmlyc3RDaGlsZDtzO3M9cy5uZXh0U2libGluZylaZShzLGksbik7cz1NZSh0LGQpO2NvbnRpbnVlfWlmKCJ0ZW1wbGF0ZSI9PT1tKXtzPU1lKHQsZCk7Y29udGludWV9aWYoZD1kLl9fQ0Vfc2hhZG93Um9vdClmb3IoZD1kLmZpcnN0Q2hpbGQ7ZDtkPWQubmV4dFNpYmxpbmcpWmUo''@;'; + put 'put ''ZCxpLG4pfXM9cy5maXJzdENoaWxkP3MuZmlyc3RDaGlsZDpNZSh0LHMpfX1mdW5jdGlvbiB2dCgpe3ZhciB0PSEobnVsbD09ajB8fCFqMC5ub0RvY3VtZW50Q29uc3RydWN0aW9uT2JzZXJ2ZXIpLGk9IShudWxsPT1qMHx8IWowLnNoYWR5RG9tRmFzdFdhbGspO3RoaXMuY2E9W10sdGhpcy5n''@;'; + put 'put ''PVtdLHRoaXMuVz0hMSx0aGlzLnNoYWR5RG9tRmFzdFdhbGs9aSx0aGlzLm5iPSF0fWZ1bmN0aW9uIFUyKHQsaSxuLHMpe3ZhciBkPXdpbmRvdy5TaGFkeURPTTtpZih0LnNoYWR5RG9tRmFzdFdhbGsmJmQmJmQuaW5Vc2Upe2lmKGkubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmbihp''@;'; + put 'put ''KSxpLnF1ZXJ5U2VsZWN0b3JBbGwpZm9yKHQ9ZC5uYXRpdmVNZXRob2RzLnF1ZXJ5U2VsZWN0b3JBbGwuY2FsbChpLCIqIiksaT0wO2k8dC5sZW5ndGg7aSsrKW4odFtpXSl9ZWxzZSBaZShpLG4scyl9ZnVuY3Rpb24geWUodCxpKXt0LlcmJlUyKHQsaSxmdW5jdGlvbihuKXtyZXR1cm4gWjIo''@;'; + put 'put ''dCxuKX0pfWZ1bmN0aW9uIFoyKHQsaSl7aWYodC5XJiYhaS5fX0NFX3BhdGNoZWQpe2kuX19DRV9wYXRjaGVkPSEwO2Zvcih2YXIgbj0wO248dC5jYS5sZW5ndGg7bisrKXQuY2Fbbl0oaSk7Zm9yKG49MDtuPHQuZy5sZW5ndGg7bisrKXQuZ1tuXShpKX19ZnVuY3Rpb24gRzAodCxpKXt2YXIg''@;'; + put 'put ''bj1bXTtmb3IoVTIodCxpLGZ1bmN0aW9uKGQpe3JldHVybiBuLnB1c2goZCl9KSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBzPW5baV07MT09PXMuX19DRV9zdGF0ZT90LmNvbm5lY3RlZENhbGxiYWNrKHMpOkh0KHQscyl9fWZ1bmN0aW9uIFMwKHQsaSl7dmFyIG49W107Zm9yKFUyKHQsaSxm''@;'; + put 'put ''dW5jdGlvbihkKXtyZXR1cm4gbi5wdXNoKGQpfSksaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgcz1uW2ldOzE9PT1zLl9fQ0Vfc3RhdGUmJnQuZGlzY29ubmVjdGVkQ2FsbGJhY2socyl9fWZ1bmN0aW9uIFkwKHQsaSxuKXt2YXIgcz0obj12b2lkIDA9PT1uP3t9Om4pLm9iLGQ9bi51cGdyYWRl''@;'; + put 'put ''fHxmdW5jdGlvbihMKXtyZXR1cm4gSHQodCxMKX0sbT1bXTtmb3IoVTIodCxpLGZ1bmN0aW9uKEwpe2lmKHQuVyYmWjIodCxMKSwibGluayI9PT1MLmxvY2FsTmFtZSYmImltcG9ydCI9PT1MLmdldEF0dHJpYnV0ZSgicmVsIikpe3ZhciBGPUwuaW1wb3J0O0YgaW5zdGFuY2VvZiBOb2RlJiYo''@;'; + put 'put ''Ri5fX0NFX2lzSW1wb3J0RG9jdW1lbnQ9ITAsRi5fX0NFX3JlZ2lzdHJ5PWRvY3VtZW50Ll9fQ0VfcmVnaXN0cnkpLEYmJiJjb21wbGV0ZSI9PT1GLnJlYWR5U3RhdGU/Ri5fX0NFX2RvY3VtZW50TG9hZEhhbmRsZWQ9ITA6TC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciBHPUwuaW1wb3J0O2lmKCFHLl9fQ0VfZG9jdW1lbnRMb2FkSGFuZGxlZCl7Ry5fX0NFX2RvY3VtZW50TG9hZEhhbmRsZWQ9ITA7dmFyIFU9bmV3IFNldDtzJiYocy5mb3JFYWNoKGZ1bmN0aW9uKEspe3JldHVybiBVLmFkZChLKX0pLFUuZGVsZXRlKEcpKSxZMCh0LEcse29iOlUsdXBncmFk''@;'; + put 'put ''ZTpkfSl9fSl9ZWxzZSBtLnB1c2goTCl9LHMpLGk9MDtpPG0ubGVuZ3RoO2krKylkKG1baV0pfWZ1bmN0aW9uIEh0KHQsaSl7dHJ5e3ZhciBuPWkub3duZXJEb2N1bWVudCxzPW4uX19DRV9yZWdpc3RyeSxkPXMmJihuLmRlZmF1bHRWaWV3fHxuLl9fQ0VfaXNJbXBvcnREb2N1bWVudCk/Q3Qo''@;'; + put 'put ''cyxpLmxvY2FsTmFtZSk6dm9pZCAwO2lmKGQmJnZvaWQgMD09PWkuX19DRV9zdGF0ZSl7ZC5jb25zdHJ1Y3Rpb25TdGFjay5wdXNoKGkpO3RyeXt0cnl7aWYobmV3IGQuY29uc3RydWN0b3JGdW5jdGlvbiE9PWkpdGhyb3cgRXJyb3IoIlRoZSBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBk''@;'; + put 'put ''aWQgbm90IHByb2R1Y2UgdGhlIGVsZW1lbnQgYmVpbmcgdXBncmFkZWQuIil9ZmluYWxseXtkLmNvbnN0cnVjdGlvblN0YWNrLnBvcCgpfX1jYXRjaChHKXt0aHJvdyBpLl9fQ0Vfc3RhdGU9MixHfWlmKGkuX19DRV9zdGF0ZT0xLGkuX19DRV9kZWZpbml0aW9uPWQsZC5hdHRyaWJ1dGVDaGFu''@;'; + put 'put ''Z2VkQ2FsbGJhY2smJmkuaGFzQXR0cmlidXRlcygpKXt2YXIgbT1kLm9ic2VydmVkQXR0cmlidXRlcztmb3IoZD0wO2Q8bS5sZW5ndGg7ZCsrKXt2YXIgTD1tW2RdLEY9aS5nZXRBdHRyaWJ1dGUoTCk7bnVsbCE9PUYmJnQuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGksTCxudWxsLEYsbnVs''@;'; + put 'put ''bCl9fXIwKGkpJiZ0LmNvbm5lY3RlZENhbGxiYWNrKGkpfX1jYXRjaChHKXt5MihHKX19ZnVuY3Rpb24gdmkodCxpLG4scyl7dmFyIGQ9aS5fX0NFX3JlZ2lzdHJ5O2lmKGQmJihudWxsPT09c3x8Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPT09cykmJihkPUN0KGQsbikpKXRyeXt2''@;'; + put 'put ''YXIgbT1uZXcgZC5jb25zdHJ1Y3RvckZ1bmN0aW9uO2lmKHZvaWQgMD09PW0uX19DRV9zdGF0ZXx8dm9pZCAwPT09bS5fX0NFX2RlZmluaXRpb24pdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisiJzogVGhlIHJldHVybmVkIHZhbHVlIHdhcyBub3QgY29uc3RydWN0ZWQg''@;'; + put 'put ''d2l0aCB0aGUgSFRNTEVsZW1lbnQgY29uc3RydWN0b3IuIik7aWYoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIT09bS5uYW1lc3BhY2VVUkkpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisiJzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQncyBuYW1lc3BhY2Ug''@;'; + put 'put ''bXVzdCBiZSB0aGUgSFRNTCBuYW1lc3BhY2UuIik7aWYobS5oYXNBdHRyaWJ1dGVzKCkpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisiJzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQgbXVzdCBub3QgaGF2ZSBhbnkgYXR0cmlidXRlcy4iKTtpZihudWxsIT09bS5maXJz''@;'; + put 'put ''dENoaWxkKXRocm93IEVycm9yKCJGYWlsZWQgdG8gY29uc3RydWN0ICciK24rIic6IFRoZSBjb25zdHJ1Y3RlZCBlbGVtZW50IG11c3Qgbm90IGhhdmUgYW55IGNoaWxkcmVuLiIpO2lmKG51bGwhPT1tLnBhcmVudE5vZGUpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisi''@;'; + put 'put ''JzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQgbXVzdCBub3QgaGF2ZSBhIHBhcmVudCBub2RlLiIpO2lmKG0ub3duZXJEb2N1bWVudCE9PWkpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisiJzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQncyBvd25lciBkb2N1bWVudCBp''@;'; + put 'put ''cyBpbmNvcnJlY3QuIik7aWYobS5sb2NhbE5hbWUhPT1uKXRocm93IEVycm9yKCJGYWlsZWQgdG8gY29uc3RydWN0ICciK24rIic6IFRoZSBjb25zdHJ1Y3RlZCBlbGVtZW50J3MgbG9jYWwgbmFtZSBpcyBpbmNvcnJlY3QuIik7cmV0dXJuIG19Y2F0Y2goTCl7cmV0dXJuIHkyKEwpLGk9bnVs''@;'; + put 'put ''bD09PXM/ZmUuY2FsbChpLG4pOmdlLmNhbGwoaSxzLG4pLE9iamVjdC5zZXRQcm90b3R5cGVPZihpLEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUpLGkuX19DRV9zdGF0ZT0yLGkuX19DRV9kZWZpbml0aW9uPXZvaWQgMCxaMih0LGkpLGl9cmV0dXJuIFoyKHQsaT1udWxsPT09cz9mZS5j''@;'; + put 'put ''YWxsKGksbik6Z2UuY2FsbChpLHMsbikpLGl9ZnVuY3Rpb24geTIodCl7dmFyIGk9dC5tZXNzYWdlLG49dC5zb3VyY2VVUkx8fHQuZmlsZU5hbWV8fCIiLHM9dC5saW5lfHx0LmxpbmVOdW1iZXJ8fDAsbT12b2lkIDA7dm9pZCAwPT09RXJyb3JFdmVudC5wcm90b3R5cGUuaW5pdEVycm9yRXZl''@;'; + put 'put ''bnQ/bT1uZXcgRXJyb3JFdmVudCgiZXJyb3IiLHtjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6aSxmaWxlbmFtZTpuLGxpbmVubzpzLGNvbG5vOnQuY29sdW1ufHx0LmNvbHVtbk51bWJlcnx8MCxlcnJvcjp0fSk6KChtPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFcnJvckV2ZW50IikpLmluaXRFcnJv''@;'; + put 'put ''ckV2ZW50KCJlcnJvciIsITEsITAsaSxuLHMpLG0ucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiZGVmYXVsdFByZXZlbnRlZCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KX0pLHZvaWQgMD09PW0uZXJyb3Im''@;'; + put 'put ''Jk9iamVjdC5kZWZpbmVQcm9wZXJ0eShtLCJlcnJvciIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0fX0pLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG0pLG0uZGVmYXVsdFByZXZlbnRlZHx8Y29uc29sZS5lcnJvcih0KX1mdW5jdGlvbiBIaSgp''@;'; + put 'put ''e3ZhciB0PXRoaXM7dGhpcy5JPXZvaWQgMCx0aGlzLkhhPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkpe3QuZz1pfSl9ZnVuY3Rpb24gQ2kodCl7dmFyIGk9ZG9jdW1lbnQ7dGhpcy5YPXZvaWQgMCx0aGlzLlM9dCx0aGlzLmc9aSxZMCh0aGlzLlMsdGhpcy5nKSwibG9hZGluZyI9PT10aGlzLmcu''@;'; + put 'put ''cmVhZHlTdGF0ZSYmKHRoaXMuWD1uZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLmguYmluZCh0aGlzKSksdGhpcy5YLm9ic2VydmUodGhpcy5nLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pKX1mdW5jdGlvbiBWaSh0KXt0LlgmJnQuWC5kaXNjb25uZWN0KCl9ZnVuY3Rpb24gdjAodCl7dGhp''@;'; + put 'put ''cy5rYT1uZXcgTWFwLHRoaXMubGE9bmV3IE1hcCx0aGlzLkNhPW5ldyBNYXAsdGhpcy50YT0hMSx0aGlzLndhPW5ldyBNYXAsdGhpcy5qYT1mdW5jdGlvbihpKXtyZXR1cm4gaSgpfSx0aGlzLlY9ITEsdGhpcy5tYT1bXSx0aGlzLlM9dCx0aGlzLkRhPXQubmI/bmV3IENpKHQpOnZvaWQgMH1m''@;'; + put 'put ''dW5jdGlvbiBtaSh0LGkpe2lmKCFBaShpKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIlRoZSBlbGVtZW50IG5hbWUgJyIraSsiJyBpcyBub3QgdmFsaWQuIik7aWYoQ3QodCxpKSl0aHJvdyBFcnJvcigiQSBjdXN0b20gZWxlbWVudCB3aXRoIG5hbWUgJyIraSsiJyBoYXMgYWxyZWFkeSBiZWVu''@;'; + put 'put ''IGRlZmluZWQuIik7aWYodC50YSl0aHJvdyBFcnJvcigiQSBjdXN0b20gZWxlbWVudCBpcyBhbHJlYWR5IGJlaW5nIGRlZmluZWQuIil9ZnVuY3Rpb24gTWkodCxpLG4pe3ZhciBzO3QudGE9ITA7dHJ5e3ZhciBkPW4ucHJvdG90eXBlO2lmKCEoZCBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cg''@;'; + put 'put ''bmV3IFR5cGVFcnJvcigiVGhlIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yJ3MgcHJvdG90eXBlIGlzIG5vdCBhbiBvYmplY3QuIik7dmFyIG09ZnVuY3Rpb24oSyl7dmFyIEgxPWRbS107aWYodm9pZCAwIT09SDEmJiEoSDEgaW5zdGFuY2VvZiBGdW5jdGlvbikpdGhyb3cgRXJyb3IoIlRo''@;'; + put 'put ''ZSAnIitLKyInIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtyZXR1cm4gSDF9LEw9bSgiY29ubmVjdGVkQ2FsbGJhY2siKSxGPW0oImRpc2Nvbm5lY3RlZENhbGxiYWNrIiksRz1tKCJhZG9wdGVkQ2FsbGJhY2siKSxVPShzPW0oImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIpKSYm''@;'; + put 'put ''bi5vYnNlcnZlZEF0dHJpYnV0ZXN8fFtdfWNhdGNoKEspe3Rocm93IEt9ZmluYWxseXt0LnRhPSExfXJldHVybiB0LmxhLnNldChpLG49e2xvY2FsTmFtZTppLGNvbnN0cnVjdG9yRnVuY3Rpb246bixjb25uZWN0ZWRDYWxsYmFjazpMLGRpc2Nvbm5lY3RlZENhbGxiYWNrOkYsYWRvcHRlZENh''@;'; + put 'put ''bGxiYWNrOkcsYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrOnMsb2JzZXJ2ZWRBdHRyaWJ1dGVzOlUsY29uc3RydWN0aW9uU3RhY2s6W119KSx0LkNhLnNldChuLmNvbnN0cnVjdG9yRnVuY3Rpb24sbiksbn1mdW5jdGlvbiBaaSh0KXtpZighMSE9PXQuVil7dC5WPSExO2Zvcih2YXIgaT1bXSxu''@;'; + put 'put ''PXQubWEscz1uZXcgTWFwLGQ9MDtkPG4ubGVuZ3RoO2QrKylzLnNldChuW2RdLFtdKTtmb3IoWTAodC5TLGRvY3VtZW50LHt1cGdyYWRlOmZ1bmN0aW9uKEcpe2lmKHZvaWQgMD09PUcuX19DRV9zdGF0ZSl7dmFyIFU9Ry5sb2NhbE5hbWUsSz1zLmdldChVKTtLP0sucHVzaChHKTp0LmxhLmhh''@;'; + put 'put ''cyhVKSYmaS5wdXNoKEcpfX19KSxkPTA7ZDxpLmxlbmd0aDtkKyspSHQodC5TLGlbZF0pO2ZvcihkPTA7ZDxuLmxlbmd0aDtkKyspe2Zvcih2YXIgbT1uW2RdLEw9cy5nZXQobSksRj0wO0Y8TC5sZW5ndGg7RisrKUh0KHQuUyxMW0ZdKTsobT10LndhLmdldChtKSkmJm0ucmVzb2x2ZSh2b2lk''@;'; + put 'put ''IDApfW4ubGVuZ3RoPTB9fWZ1bmN0aW9uIEN0KHQsaSl7dmFyIG49dC5sYS5nZXQoaSk7aWYobilyZXR1cm4gbjtpZihuPXQua2EuZ2V0KGkpKXt0LmthLmRlbGV0ZShpKTt0cnl7cmV0dXJuIE1pKHQsaSxuKCkpfWNhdGNoKHMpe3kyKHMpfX19ZnVuY3Rpb24gTGUodCxpLG4pe2Z1bmN0aW9u''@;'; + put 'put ''IHMoZCl7cmV0dXJuIGZ1bmN0aW9uKG0pe2Zvcih2YXIgTD1bXSxGPTA7Rjxhcmd1bWVudHMubGVuZ3RoOysrRilMW0ZdPWFyZ3VtZW50c1tGXTtGPVtdO2Zvcih2YXIgRz1bXSxVPTA7VTxMLmxlbmd0aDtVKyspe3ZhciBLPUxbVV07aWYoSyBpbnN0YW5jZW9mIEVsZW1lbnQmJnIwKEspJiZH''@;'; + put 'put ''LnB1c2goSyksSyBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpZm9yKEs9Sy5maXJzdENoaWxkO0s7Sz1LLm5leHRTaWJsaW5nKUYucHVzaChLKTtlbHNlIEYucHVzaChLKX1mb3IoZC5hcHBseSh0aGlzLEwpLEw9MDtMPEcubGVuZ3RoO0wrKylTMCh0LEdbTF0pO2lmKHIwKHRoaXMpKWZv''@;'; + put 'put ''cihMPTA7TDxGLmxlbmd0aDtMKyspKEc9RltMXSlpbnN0YW5jZW9mIEVsZW1lbnQmJkcwKHQsRyl9fXZvaWQgMCE9PW4ucHJlcGVuZCYmKGkucHJlcGVuZD1zKG4ucHJlcGVuZCkpLHZvaWQgMCE9PW4uYXBwZW5kJiYoaS5hcHBlbmQ9cyhuLmFwcGVuZCkpfXZ0LnByb3RvdHlwZS5jb25uZWN0''@;'; + put 'put ''ZWRDYWxsYmFjaz1mdW5jdGlvbih0KXt2YXIgaT10Ll9fQ0VfZGVmaW5pdGlvbjtpZihpLmNvbm5lY3RlZENhbGxiYWNrKXRyeXtpLmNvbm5lY3RlZENhbGxiYWNrLmNhbGwodCl9Y2F0Y2gobil7eTIobil9fSx2dC5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24odCl7''@;'; + put 'put ''dmFyIGk9dC5fX0NFX2RlZmluaXRpb247aWYoaS5kaXNjb25uZWN0ZWRDYWxsYmFjayl0cnl7aS5kaXNjb25uZWN0ZWRDYWxsYmFjay5jYWxsKHQpfWNhdGNoKG4pe3kyKG4pfX0sdnQucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaz1mdW5jdGlvbih0LGksbixzLGQpe3ZhciBt''@;'; + put 'put ''PXQuX19DRV9kZWZpbml0aW9uO2lmKG0uYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrJiYtMTxtLm9ic2VydmVkQXR0cmlidXRlcy5pbmRleE9mKGkpKXRyeXttLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjay5jYWxsKHQsaSxuLHMsZCl9Y2F0Y2goTCl7eTIoTCl9fSxIaS5wcm90b3R5cGUucmVz''@;'; + put 'put ''b2x2ZT1mdW5jdGlvbih0KXtpZih0aGlzLkkpdGhyb3cgRXJyb3IoIkFscmVhZHkgcmVzb2x2ZWQuIik7dGhpcy5JPXQsdGhpcy5nKHQpfSxDaS5wcm90b3R5cGUuaD1mdW5jdGlvbih0KXt2YXIgaT10aGlzLmcucmVhZHlTdGF0ZTtmb3IoImludGVyYWN0aXZlIiE9PWkmJiJjb21wbGV0ZSIh''@;'; + put 'put ''PT1pfHxWaSh0aGlzKSxpPTA7aTx0Lmxlbmd0aDtpKyspZm9yKHZhciBuPXRbaV0uYWRkZWROb2RlcyxzPTA7czxuLmxlbmd0aDtzKyspWTAodGhpcy5TLG5bc10pfSwoWD12MC5wcm90b3R5cGUpLmViPWZ1bmN0aW9uKHQsaSl7dmFyIG49dGhpcztpZighKGkgaW5zdGFuY2VvZiBGdW5jdGlv''@;'; + put 'put ''bikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgZ2V0dGVycyBtdXN0IGJlIGZ1bmN0aW9ucy4iKTttaSh0aGlzLHQpLHRoaXMua2Euc2V0KHQsaSksdGhpcy5tYS5wdXNoKHQpLHRoaXMuVnx8KHRoaXMuVj0hMCx0aGlzLmphKGZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIFppKG4pfSkpfSxYLmRlZmluZT1mdW5jdGlvbih0LGkpe3ZhciBuPXRoaXM7aWYoIShpIGluc3RhbmNlb2YgRnVuY3Rpb24pKXRocm93IG5ldyBUeXBlRXJyb3IoIkN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9ycyBtdXN0IGJlIGZ1bmN0aW9ucy4iKTttaSh0aGlzLHQpLE1pKHRoaXMs''@;'; + put 'put ''dCxpKSx0aGlzLm1hLnB1c2godCksdGhpcy5WfHwodGhpcy5WPSEwLHRoaXMuamEoZnVuY3Rpb24oKXtyZXR1cm4gWmkobil9KSl9LFgudXBncmFkZT1mdW5jdGlvbih0KXtZMCh0aGlzLlMsdCl9LFguZ2V0PWZ1bmN0aW9uKHQpe2lmKHQ9Q3QodGhpcyx0KSlyZXR1cm4gdC5jb25zdHJ1Y3Rv''@;'; + put 'put ''ckZ1bmN0aW9ufSxYLndoZW5EZWZpbmVkPWZ1bmN0aW9uKHQpe2lmKCFBaSh0KSlyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IFN5bnRheEVycm9yKCInIit0KyInIGlzIG5vdCBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUuIikpO3ZhciBpPXRoaXMud2EuZ2V0KHQpO2lmKGkpcmV0dXJu''@;'; + put 'put ''IGkuSGE7aT1uZXcgSGksdGhpcy53YS5zZXQodCxpKTt2YXIgbj10aGlzLmxhLmhhcyh0KXx8dGhpcy5rYS5oYXModCk7cmV0dXJuIHQ9LTE9PT10aGlzLm1hLmluZGV4T2YodCksbiYmdCYmaS5yZXNvbHZlKHZvaWQgMCksaS5IYX0sWC5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrPWZ1bmN0''@;'; + put 'put ''aW9uKHQpe3RoaXMuRGEmJlZpKHRoaXMuRGEpO3ZhciBpPXRoaXMuamE7dGhpcy5qYT1mdW5jdGlvbihuKXtyZXR1cm4gdChmdW5jdGlvbigpe3JldHVybiBpKG4pfSl9fSx3aW5kb3cuQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5PXYwLHYwLnByb3RvdHlwZS5kZWZpbmU9djAucHJvdG90eXBlLmRl''@;'; + put 'put ''ZmluZSx2MC5wcm90b3R5cGUudXBncmFkZT12MC5wcm90b3R5cGUudXBncmFkZSx2MC5wcm90b3R5cGUuZ2V0PXYwLnByb3RvdHlwZS5nZXQsdjAucHJvdG90eXBlLndoZW5EZWZpbmVkPXYwLnByb3RvdHlwZS53aGVuRGVmaW5lZCx2MC5wcm90b3R5cGUucG9seWZpbGxEZWZpbmVMYXp5PXYw''@;'; + put 'put ''LnByb3RvdHlwZS5lYix2MC5wcm90b3R5cGUucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjaz12MC5wcm90b3R5cGUucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjazt2YXIgeWk9e30sajA9d2luZG93LmN1c3RvbUVsZW1lbnRzO2Z1bmN0aW9uIExpKCl7dmFyIHQ9bmV3IHZ0OyhmdW5jdGlvbiBh''@;'; + put 'put ''cih0KXtmdW5jdGlvbiBpKCl7dmFyIG49dGhpcy5jb25zdHJ1Y3RvcixzPWRvY3VtZW50Ll9fQ0VfcmVnaXN0cnkuQ2EuZ2V0KG4pO2lmKCFzKXRocm93IEVycm9yKCJGYWlsZWQgdG8gY29uc3RydWN0IGEgY3VzdG9tIGVsZW1lbnQ6IFRoZSBjb25zdHJ1Y3RvciB3YXMgbm90IHJlZ2lzdGVy''@;'; + put 'put ''ZWQgd2l0aCBgY3VzdG9tRWxlbWVudHNgLiIpO3ZhciBkPXMuY29uc3RydWN0aW9uU3RhY2s7aWYoMD09PWQubGVuZ3RoKXJldHVybiBkPWZlLmNhbGwoZG9jdW1lbnQscy5sb2NhbE5hbWUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihkLG4ucHJvdG90eXBlKSxkLl9fQ0Vfc3RhdGU9MSxkLl9f''@;'; + put 'put ''Q0VfZGVmaW5pdGlvbj1zLFoyKHQsZCksZDt2YXIgbT1kLmxlbmd0aC0xLEw9ZFttXTtpZihMPT09eWkpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrcy5sb2NhbE5hbWUrIic6IFRoaXMgZWxlbWVudCB3YXMgYWxyZWFkeSBjb25zdHJ1Y3RlZC4iKTtyZXR1cm4gZFttXT15''@;'; + put 'put ''aSxPYmplY3Quc2V0UHJvdG90eXBlT2YoTCxuLnByb3RvdHlwZSksWjIodCxMKSxMfWkucHJvdG90eXBlPVhhLnByb3RvdHlwZSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSFRNTEVsZW1lbnQucHJvdG90eXBlLCJjb25zdHJ1Y3RvciIse3dyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxlbnVt''@;'; + put 'put ''ZXJhYmxlOiExLHZhbHVlOml9KSx3aW5kb3cuSFRNTEVsZW1lbnQ9aX0pKHQpLGZ1bmN0aW9uIGVyKHQpe0RvY3VtZW50LnByb3RvdHlwZS5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGkpe3JldHVybiB2aSh0LHRoaXMsaSxudWxsKX0sRG9jdW1lbnQucHJvdG90eXBlLmltcG9ydE5vZGU9ZnVu''@;'; + put 'put ''Y3Rpb24oaSxuKXtyZXR1cm4gaT16YS5jYWxsKHRoaXMsaSwhIW4pLHRoaXMuX19DRV9yZWdpc3RyeT9ZMCh0LGkpOnllKHQsaSksaX0sRG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnROUz1mdW5jdGlvbihpLG4pe3JldHVybiB2aSh0LHRoaXMsbixpKX0sTGUodCxEb2N1bWVudC5w''@;'; + put 'put ''cm90b3R5cGUse3ByZXBlbmQ6VWEsYXBwZW5kOldhfSl9KHQpLExlKHQsRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUse3ByZXBlbmQ6JGEsYXBwZW5kOnFhfSksZnVuY3Rpb24gcnIodCl7ZnVuY3Rpb24gaShuLHMpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJ0ZXh0Q29udGVudCIse2Vu''@;'; + put 'put ''dW1lcmFibGU6cy5lbnVtZXJhYmxlLGNvbmZpZ3VyYWJsZTohMCxnZXQ6cy5nZXQsc2V0OmZ1bmN0aW9uKGQpe2lmKHRoaXMubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlzLnNldC5jYWxsKHRoaXMsZCk7ZWxzZXt2YXIgbT12b2lkIDA7aWYodGhpcy5maXJzdENoaWxkKXt2YXIgTD10aGlz''@;'; + put 'put ''LmNoaWxkTm9kZXMsRj1MLmxlbmd0aDtpZigwPEYmJnIwKHRoaXMpKXttPUFycmF5KEYpO2Zvcih2YXIgRz0wO0c8RjtHKyspbVtHXT1MW0ddfX1pZihzLnNldC5jYWxsKHRoaXMsZCksbSlmb3IoZD0wO2Q8bS5sZW5ndGg7ZCsrKVMwKHQsbVtkXSl9fX0pfU5vZGUucHJvdG90eXBlLmluc2Vy''@;'; + put 'put ''dEJlZm9yZT1mdW5jdGlvbihuLHMpe2lmKG4gaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KXt2YXIgZD1tZShuKTtpZihuPXRpLmNhbGwodGhpcyxuLHMpLHIwKHRoaXMpKWZvcihzPTA7czxkLmxlbmd0aDtzKyspRzAodCxkW3NdKTtyZXR1cm4gbn1yZXR1cm4gZD1uIGluc3RhbmNlb2Yg''@;'; + put 'put ''RWxlbWVudCYmcjAobikscz10aS5jYWxsKHRoaXMsbixzKSxkJiZTMCh0LG4pLHIwKHRoaXMpJiZHMCh0LG4pLHN9LE5vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkPWZ1bmN0aW9uKG4pe2lmKG4gaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KXt2YXIgcz1tZShuKTtpZihuPWd0LmNhbGwo''@;'; + put 'put ''dGhpcyxuKSxyMCh0aGlzKSlmb3IodmFyIGQ9MDtkPHMubGVuZ3RoO2QrKylHMCh0LHNbZF0pO3JldHVybiBufXJldHVybiBzPW4gaW5zdGFuY2VvZiBFbGVtZW50JiZyMChuKSxkPWd0LmNhbGwodGhpcyxuKSxzJiZTMCh0LG4pLHIwKHRoaXMpJiZHMCh0LG4pLGR9LE5vZGUucHJvdG90eXBl''@;'; + put 'put ''LmNsb25lTm9kZT1mdW5jdGlvbihuKXtyZXR1cm4gbj1KbC5jYWxsKHRoaXMsISFuKSx0aGlzLm93bmVyRG9jdW1lbnQuX19DRV9yZWdpc3RyeT9ZMCh0LG4pOnllKHQsbiksbn0sTm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24obil7dmFyIHM9biBpbnN0YW5jZW9mIEVsZW1l''@;'; + put 'put ''bnQmJnIwKG4pLGQ9QWUuY2FsbCh0aGlzLG4pO3JldHVybiBzJiZTMCh0LG4pLGR9LE5vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZD1mdW5jdGlvbihuLHMpe2lmKG4gaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KXt2YXIgZD1tZShuKTtpZihuPWVpLmNhbGwodGhpcyxuLHMpLHIwKHRo''@;'; + put 'put ''aXMpKWZvcihTMCh0LHMpLHM9MDtzPGQubGVuZ3RoO3MrKylHMCh0LGRbc10pO3JldHVybiBufWQ9biBpbnN0YW5jZW9mIEVsZW1lbnQmJnIwKG4pO3ZhciBtPWVpLmNhbGwodGhpcyxuLHMpLEw9cjAodGhpcyk7cmV0dXJuIEwmJlMwKHQscyksZCYmUzAodCxuKSxMJiZHMCh0LG4pLG19LHZl''@;'; + put 'put ''JiZ2ZS5nZXQ/aShOb2RlLnByb3RvdHlwZSx2ZSk6ZnVuY3Rpb24gSmEodCxpKXt0Llc9ITAsdC5jYS5wdXNoKGkpfSh0LGZ1bmN0aW9uKG4pe2kobix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciBzPVtdLGQ9dGhpcy5maXJzdENoaWxkO2Q7''@;'; + put 'put ''ZD1kLm5leHRTaWJsaW5nKWQubm9kZVR5cGUhPT1Ob2RlLkNPTU1FTlRfTk9ERSYmcy5wdXNoKGQudGV4dENvbnRlbnQpO3JldHVybiBzLmpvaW4oIiIpfSxzZXQ6ZnVuY3Rpb24ocyl7Zm9yKDt0aGlzLmZpcnN0Q2hpbGQ7KUFlLmNhbGwodGhpcyx0aGlzLmZpcnN0Q2hpbGQpO251bGwhPXMm''@;'; + put 'put ''JiIiIT09cyYmZ3QuY2FsbCh0aGlzLGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHMpKX19KX0pfSh0KSxmdW5jdGlvbiBpcih0KXtmdW5jdGlvbiBpKGQsbSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsImlubmVySFRNTCIse2VudW1lcmFibGU6bS5lbnVtZXJhYmxlLGNvbmZpZ3VyYWJsZToh''@;'; + put 'put ''MCxnZXQ6bS5nZXQsc2V0OmZ1bmN0aW9uKEwpe3ZhciBGPXRoaXMsRz12b2lkIDA7aWYocjAodGhpcykmJihHPVtdLFUyKHQsdGhpcyxmdW5jdGlvbihIMSl7SDEhPT1GJiZHLnB1c2goSDEpfSkpLG0uc2V0LmNhbGwodGhpcyxMKSxHKWZvcih2YXIgVT0wO1U8Ry5sZW5ndGg7VSsrKXt2YXIg''@;'; + put 'put ''Sz1HW1VdOzE9PT1LLl9fQ0Vfc3RhdGUmJnQuZGlzY29ubmVjdGVkQ2FsbGJhY2soSyl9cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5fX0NFX3JlZ2lzdHJ5P1kwKHQsdGhpcyk6eWUodCx0aGlzKSxMfX0pfWZ1bmN0aW9uIG4oZCxtKXtkLmluc2VydEFkamFjZW50RWxlbWVudD1mdW5jdGlv''@;'; + put 'put ''bihMLEYpe3ZhciBHPXIwKEYpO3JldHVybiBMPW0uY2FsbCh0aGlzLEwsRiksRyYmUzAodCxGKSxyMChMKSYmRzAodCxGKSxMfX1mdW5jdGlvbiBzKGQsbSl7ZnVuY3Rpb24gTChGLEcpe2Zvcih2YXIgVT1bXTtGIT09RztGPUYubmV4dFNpYmxpbmcpVS5wdXNoKEYpO2ZvcihHPTA7RzxVLmxl''@;'; + put 'put ''bmd0aDtHKyspWTAodCxVW0ddKX1kLmluc2VydEFkamFjZW50SFRNTD1mdW5jdGlvbihGLEcpe2lmKCJiZWZvcmViZWdpbiI9PT0oRj1GLnRvTG93ZXJDYXNlKCkpKXt2YXIgVT10aGlzLnByZXZpb3VzU2libGluZzttLmNhbGwodGhpcyxGLEcpLEwoVXx8dGhpcy5wYXJlbnROb2RlLmZpcnN0''@;'; + put 'put ''Q2hpbGQsdGhpcyl9ZWxzZSBpZigiYWZ0ZXJiZWdpbiI9PT1GKVU9dGhpcy5maXJzdENoaWxkLG0uY2FsbCh0aGlzLEYsRyksTCh0aGlzLmZpcnN0Q2hpbGQsVSk7ZWxzZSBpZigiYmVmb3JlZW5kIj09PUYpVT10aGlzLmxhc3RDaGlsZCxtLmNhbGwodGhpcyxGLEcpLEwoVXx8dGhpcy5maXJz''@;'; + put 'put ''dENoaWxkLG51bGwpO2Vsc2V7aWYoImFmdGVyZW5kIiE9PUYpdGhyb3cgbmV3IFN5bnRheEVycm9yKCJUaGUgdmFsdWUgcHJvdmlkZWQgKCIrU3RyaW5nKEYpKyIpIGlzIG5vdCBvbmUgb2YgJ2JlZm9yZWJlZ2luJywgJ2FmdGVyYmVnaW4nLCAnYmVmb3JlZW5kJywgb3IgJ2FmdGVyZW5kJy4i''@;'; + put 'put ''KTtVPXRoaXMubmV4dFNpYmxpbmcsbS5jYWxsKHRoaXMsRixHKSxMKHRoaXMubmV4dFNpYmxpbmcsVSl9fX1saSYmKEVsZW1lbnQucHJvdG90eXBlLmF0dGFjaFNoYWRvdz1mdW5jdGlvbihkKXtpZihkPWxpLmNhbGwodGhpcyxkKSx0LlcmJiFkLl9fQ0VfcGF0Y2hlZCl7ZC5fX0NFX3BhdGNo''@;'; + put 'put ''ZWQ9ITA7Zm9yKHZhciBtPTA7bTx0LmNhLmxlbmd0aDttKyspdC5jYVttXShkKX1yZXR1cm4gdGhpcy5fX0NFX3NoYWRvd1Jvb3Q9ZH0pLEhlJiZIZS5nZXQ/aShFbGVtZW50LnByb3RvdHlwZSxIZSk6VmUmJlZlLmdldD9pKEhUTUxFbGVtZW50LnByb3RvdHlwZSxWZSk6ZnVuY3Rpb24gdHIo''@;'; + put 'put ''dCxpKXt0Llc9ITAsdC5nLnB1c2goaSl9KHQsZnVuY3Rpb24oZCl7aShkLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSmwuY2FsbCh0aGlzLCEwKS5pbm5lckhUTUx9LHNldDpmdW5jdGlvbihtKXt2YXIgTD0idGVtcGxhdGUiPT09dGhpcy5s''@;'; + put 'put ''b2NhbE5hbWUsRj1MP3RoaXMuY29udGVudDp0aGlzLEc9Z2UuY2FsbChkb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSSSx0aGlzLmxvY2FsTmFtZSk7Zm9yKEcuaW5uZXJIVE1MPW07MDxGLmNoaWxkTm9kZXMubGVuZ3RoOylBZS5jYWxsKEYsRi5jaGlsZE5vZGVzWzBdKTtmb3IobT1MP0cuY29u''@;'; + put 'put ''dGVudDpHOzA8bS5jaGlsZE5vZGVzLmxlbmd0aDspZ3QuY2FsbChGLG0uY2hpbGROb2Rlc1swXSl9fSl9KSxFbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24oZCxtKXtpZigxIT09dGhpcy5fX0NFX3N0YXRlKXJldHVybiBpaS5jYWxsKHRoaXMsZCxtKTt2YXIgTD1DZS5j''@;'; + put 'put ''YWxsKHRoaXMsZCk7aWkuY2FsbCh0aGlzLGQsbSksbT1DZS5jYWxsKHRoaXMsZCksdC5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodGhpcyxkLEwsbSxudWxsKX0sRWxlbWVudC5wcm90b3R5cGUuc2V0QXR0cmlidXRlTlM9ZnVuY3Rpb24oZCxtLEwpe2lmKDEhPT10aGlzLl9fQ0Vfc3RhdGUp''@;'; + put 'put ''cmV0dXJuIHJpLmNhbGwodGhpcyxkLG0sTCk7dmFyIEY9QXQuY2FsbCh0aGlzLGQsbSk7cmkuY2FsbCh0aGlzLGQsbSxMKSxMPUF0LmNhbGwodGhpcyxkLG0pLHQuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHRoaXMsbSxGLEwsZCl9LEVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0''@;'; + put 'put ''ZT1mdW5jdGlvbihkKXtpZigxIT09dGhpcy5fX0NFX3N0YXRlKXJldHVybiBhaS5jYWxsKHRoaXMsZCk7dmFyIG09Q2UuY2FsbCh0aGlzLGQpO2FpLmNhbGwodGhpcyxkKSxudWxsIT09bSYmdC5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodGhpcyxkLG0sbnVsbCxudWxsKX0sRWxlbWVudC5w''@;'; + put 'put ''cm90b3R5cGUucmVtb3ZlQXR0cmlidXRlTlM9ZnVuY3Rpb24oZCxtKXtpZigxIT09dGhpcy5fX0NFX3N0YXRlKXJldHVybiBuaS5jYWxsKHRoaXMsZCxtKTt2YXIgTD1BdC5jYWxsKHRoaXMsZCxtKTtuaS5jYWxsKHRoaXMsZCxtKTt2YXIgRj1BdC5jYWxsKHRoaXMsZCxtKTtMIT09RiYmdC5h''@;'; + put 'put ''dHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodGhpcyxtLEwsRixkKX0scGk/bihIVE1MRWxlbWVudC5wcm90b3R5cGUscGkpOmNpJiZuKEVsZW1lbnQucHJvdG90eXBlLGNpKSxmaT9zKEhUTUxFbGVtZW50LnByb3RvdHlwZSxmaSk6b2kmJnMoRWxlbWVudC5wcm90b3R5cGUsb2kpLExlKHQsRWxl''@;'; + put 'put ''bWVudC5wcm90b3R5cGUse3ByZXBlbmQ6WWEsYXBwZW5kOkthfSksZnVuY3Rpb24gbHIodCl7ZnVuY3Rpb24gaShzKXtyZXR1cm4gZnVuY3Rpb24oZCl7Zm9yKHZhciBtPVtdLEw9MDtMPGFyZ3VtZW50cy5sZW5ndGg7KytMKW1bTF09YXJndW1lbnRzW0xdO0w9W107Zm9yKHZhciBGPVtdLEc9''@;'; + put 'put ''MDtHPG0ubGVuZ3RoO0crKyl7dmFyIFU9bVtHXTtpZihVIGluc3RhbmNlb2YgRWxlbWVudCYmcjAoVSkmJkYucHVzaChVKSxVIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudClmb3IoVT1VLmZpcnN0Q2hpbGQ7VTtVPVUubmV4dFNpYmxpbmcpTC5wdXNoKFUpO2Vsc2UgTC5wdXNoKFUpfWZv''@;'; + put 'put ''cihzLmFwcGx5KHRoaXMsbSksbT0wO208Ri5sZW5ndGg7bSsrKVMwKHQsRlttXSk7aWYocjAodGhpcykpZm9yKG09MDttPEwubGVuZ3RoO20rKykoRj1MW21dKWluc3RhbmNlb2YgRWxlbWVudCYmRzAodCxGKX19dmFyIG49RWxlbWVudC5wcm90b3R5cGU7dm9pZCAwIT09c2kmJihuLmJlZm9y''@;'; + put 'put ''ZT1pKHNpKSksdm9pZCAwIT09aGkmJihuLmFmdGVyPWkoaGkpKSx2b2lkIDAhPT1kaSYmKG4ucmVwbGFjZVdpdGg9ZnVuY3Rpb24ocyl7Zm9yKHZhciBkPVtdLG09MDttPGFyZ3VtZW50cy5sZW5ndGg7KyttKWRbbV09YXJndW1lbnRzW21dO209W107Zm9yKHZhciBMPVtdLEY9MDtGPGQubGVu''@;'; + put 'put ''Z3RoO0YrKyl7dmFyIEc9ZFtGXTtpZihHIGluc3RhbmNlb2YgRWxlbWVudCYmcjAoRykmJkwucHVzaChHKSxHIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudClmb3IoRz1HLmZpcnN0Q2hpbGQ7RztHPUcubmV4dFNpYmxpbmcpbS5wdXNoKEcpO2Vsc2UgbS5wdXNoKEcpfWZvcihGPXIwKHRo''@;'; + put 'put ''aXMpLGRpLmFwcGx5KHRoaXMsZCksZD0wO2Q8TC5sZW5ndGg7ZCsrKVMwKHQsTFtkXSk7aWYoRilmb3IoUzAodCx0aGlzKSxkPTA7ZDxtLmxlbmd0aDtkKyspKEw9bVtkXSlpbnN0YW5jZW9mIEVsZW1lbnQmJkcwKHQsTCl9KSx2b2lkIDAhPT11aSYmKG4ucmVtb3ZlPWZ1bmN0aW9uKCl7dmFy''@;'; + put 'put ''IHM9cjAodGhpcyk7dWkuY2FsbCh0aGlzKSxzJiZTMCh0LHRoaXMpfSl9KHQpfSh0KSx0PW5ldyB2MCh0KSxkb2N1bWVudC5fX0NFX3JlZ2lzdHJ5PXQsT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywiY3VzdG9tRWxlbWVudHMiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2''@;'; + put 'put ''YWx1ZTp0fSl9ZnVuY3Rpb24gU2UoKXt0aGlzLmVuZD10aGlzLnN0YXJ0PTAsdGhpcy5ydWxlcz10aGlzLnBhcmVudD10aGlzLnByZXZpb3VzPW51bGwsdGhpcy5jc3NUZXh0PXRoaXMucGFyc2VkQ3NzVGV4dD0iIix0aGlzLmF0UnVsZT0hMSx0aGlzLnR5cGU9MCx0aGlzLnBhcnNlZFNlbGVj''@;'; + put 'put ''dG9yPXRoaXMuc2VsZWN0b3I9dGhpcy5rZXlmcmFtZXNOYW1lPSIifWZ1bmN0aW9uIGJlKHQpe3ZhciBpPXQ9dC5yZXBsYWNlKGNyLCIiKS5yZXBsYWNlKG9yLCIiKSxuPW5ldyBTZTtuLnN0YXJ0PTAsbi5lbmQ9aS5sZW5ndGg7Zm9yKHZhciBzPW4sZD0wLG09aS5sZW5ndGg7ZDxtO2QrKylp''@;'; + put 'put ''ZigieyI9PT1pW2RdKXtzLnJ1bGVzfHwocy5ydWxlcz1bXSk7dmFyIEw9cyxGPUwucnVsZXNbTC5ydWxlcy5sZW5ndGgtMV18fG51bGw7KHM9bmV3IFNlKS5zdGFydD1kKzEscy5wYXJlbnQ9TCxzLnByZXZpb3VzPUYsTC5ydWxlcy5wdXNoKHMpfWVsc2UifSI9PT1pW2RdJiYocy5lbmQ9ZCsx''@;'; + put 'put ''LHM9cy5wYXJlbnR8fG4pO3JldHVybiBTaShuLHQpfWZ1bmN0aW9uIFNpKHQsaSl7dmFyIG49aS5zdWJzdHJpbmcodC5zdGFydCx0LmVuZC0xKTtpZih0LnBhcnNlZENzc1RleHQ9dC5jc3NUZXh0PW4udHJpbSgpLHQucGFyZW50JiYobj1mdW5jdGlvbiBucih0KXtyZXR1cm4gdC5yZXBsYWNl''@;'; + put 'put ''KC9cXChbMC05YS1mXXsxLDZ9KVxzL2dpLGZ1bmN0aW9uKGksbil7Zm9yKG49Ni0oaT1uKS5sZW5ndGg7bi0tOylpPSIwIitpO3JldHVybiJcXCIraX0pfShuPWkuc3Vic3RyaW5nKHQucHJldmlvdXM/dC5wcmV2aW91cy5lbmQ6dC5wYXJlbnQuc3RhcnQsdC5zdGFydC0xKSksbj0obj1uLnJl''@;'; + put 'put ''cGxhY2UoVGksIiAiKSkuc3Vic3RyaW5nKG4ubGFzdEluZGV4T2YoIjsiKSsxKSxuPXQucGFyc2VkU2VsZWN0b3I9dC5zZWxlY3Rvcj1uLnRyaW0oKSx0LmF0UnVsZT0wPT09bi5pbmRleE9mKCJAIiksdC5hdFJ1bGU/MD09PW4uaW5kZXhPZigiQG1lZGlhIik/dC50eXBlPXdpOm4ubWF0Y2go''@;'; + put 'put ''ZHIpJiYodC50eXBlPV9lLHQua2V5ZnJhbWVzTmFtZT10LnNlbGVjdG9yLnNwbGl0KFRpKS5wb3AoKSk6dC50eXBlPTA9PT1uLmluZGV4T2YoIi0tIik/eGk6X2kpLG49dC5ydWxlcylmb3IodmFyIHM9MCxkPW4ubGVuZ3RoLG09dm9pZCAwO3M8ZCYmKG09bltzXSk7cysrKVNpKG0saSk7cmV0''@;'; + put 'put ''dXJuIHR9ZnVuY3Rpb24gYmkodCxpLG4pe249dm9pZCAwPT09bj8iIjpuO3ZhciBzPSIiO2lmKHQuY3NzVGV4dHx8dC5ydWxlcyl7dmFyIG0sZD10LnJ1bGVzO2lmKChtPWQpJiYobT0hKChtPWRbMF0pJiZtLnNlbGVjdG9yJiYwPT09bS5zZWxlY3Rvci5pbmRleE9mKCItLSIpKSksbSl7bT0w''@;'; + put 'put ''O2Zvcih2YXIgTD1kLmxlbmd0aCxGPXZvaWQgMDttPEwmJihGPWRbbV0pO20rKylzPWJpKEYsaSxzKX1lbHNlKHM9KGk9aT90LmNzc1RleHQ6KGk9KGk9dC5jc3NUZXh0KS5yZXBsYWNlKERpLCIiKS5yZXBsYWNlKEVpLCIiKSkucmVwbGFjZShzciwiIikucmVwbGFjZShociwiIikpLnRyaW0o''@;'; + put 'put ''KSkmJihzPSIgICIrcysiXG4iKX1yZXR1cm4gcyYmKHQuc2VsZWN0b3ImJihuKz10LnNlbGVjdG9yKyIge1xuIiksbis9cyx0LnNlbGVjdG9yJiYobis9In1cblxuIikpLG59ajAmJiFqMC5mb3JjZVBvbHlmaWxsJiYiZnVuY3Rpb24iPT10eXBlb2YgajAuZGVmaW5lJiYiZnVuY3Rpb24iPT10''@;'; + put 'put ''eXBlb2YgajAuZ2V0fHxMaSgpLHdpbmRvdy5fX0NFX2luc3RhbGxQb2x5ZmlsbD1MaTt2YXIgd2UsVnQsX2k9MSxfZT03LHdpPTQseGk9MWUzLGNyPS9cL1wqW14qXSpcKisoW14vKl1bXipdKlwqKykqXC8vZ2ltLG9yPS9AaW1wb3J0W147XSo7L2dpbSxEaT0vKD86XlteO1wtXHN9XSspPy0t''@;'; + put 'put ''W147e31dKj86W157fTtdKj8oPzpbO1xuXXwkKS9naW0sRWk9Lyg/Ol5bXjtcLVxzfV0rKT8tLVteO3t9XSo/Oltee307XSo/e1tefV0qP30oPzpbO1xuXXwkKT8vZ2ltLHNyPS9AYXBwbHlccypcKD9bXik7XSpcKT9ccyooPzpbO1xuXXwkKT8vZ2ltLGhyPS9bXjs6XSo/OlteO10qP3Zhclwo''@;'; + put 'put ''W147XSpcKSg/Ols7XG5dfCQpPy9naW0sZHI9L15AW15cc10qa2V5ZnJhbWVzLyxUaT0vXHMrL2csaDA9ISh3aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5pblVzZSk7ZnVuY3Rpb24gTmkodCl7d2U9KCF0fHwhdC5zaGltY3NzcHJvcGVydGllcykmJihoMHx8IShuYXZpZ2F0b3Iu''@;'; + put 'put ''dXNlckFnZW50Lm1hdGNoKC9BcHBsZVdlYktpdFwvNjAxfEVkZ2VcLzE1Lyl8fCF3aW5kb3cuQ1NTfHwhQ1NTLnN1cHBvcnRzfHwhQ1NTLnN1cHBvcnRzKCJib3gtc2hhZG93IiwiMCAwIDAgdmFyKC0tZm9vKSIpKSl9d2luZG93LlNoYWR5Q1NTJiZ2b2lkIDAhPT13aW5kb3cuU2hhZHlDU1Mu''@;'; + put 'put ''Y3NzQnVpbGQmJihWdD13aW5kb3cuU2hhZHlDU1MuY3NzQnVpbGQpO3ZhciBMMj0hKCF3aW5kb3cuU2hhZHlDU1N8fCF3aW5kb3cuU2hhZHlDU1MuZGlzYWJsZVJ1bnRpbWUpO3dpbmRvdy5TaGFkeUNTUyYmdm9pZCAwIT09d2luZG93LlNoYWR5Q1NTLm5hdGl2ZUNzcz93ZT13aW5kb3cuU2hh''@;'; + put 'put ''ZHlDU1MubmF0aXZlQ3NzOndpbmRvdy5TaGFkeUNTUz8oTmkod2luZG93LlNoYWR5Q1NTKSx3aW5kb3cuU2hhZHlDU1M9dm9pZCAwKTpOaSh3aW5kb3cuV2ViQ29tcG9uZW50cyYmd2luZG93LldlYkNvbXBvbmVudHMuZmxhZ3MpO3ZhciBDMD13ZSxtdD0vKD86XnxbO1xze11ccyopKC0tW1x3''@;'; + put 'put ''LV0qPylccyo6XHMqKD86KCg/OicoPzpcXCd8LikqPyd8Iig/OlxcInwuKSo/InxcKFteKV0qP1wpfFtefTt7XSkrKXxceyhbXn1dKilcfSg/Oig/PVs7XHN9XSl8JCkpL2dpLE10PS8oPzpefFxXKylAYXBwbHlccypcKD8oW14pO1xuXSopXCk/L2dpLHVyPS8oLS1bXHctXSspXHMqKFs6LDsp''@;'; + put 'put ''XXwkKS9naSxwcj0vKGFuaW1hdGlvblxzKjopfChhbmltYXRpb24tbmFtZVxzKjopLyxmcj0vQG1lZGlhXHMoLiopLyxncj0vXHtbXn1dKlx9L2csRmk9bmV3IFNldDtmdW5jdGlvbiBTMih0LGkpe3JldHVybiB0Pygic3RyaW5nIj09dHlwZW9mIHQmJih0PWJlKHQpKSxpJiZiMih0LGkpLGJp''@;'; + put 'put ''KHQsQzApKToiIn1mdW5jdGlvbiBXMih0KXtyZXR1cm4hdC5fX2Nzc1J1bGVzJiZ0LnRleHRDb250ZW50JiYodC5fX2Nzc1J1bGVzPWJlKHQudGV4dENvbnRlbnQpKSx0Ll9fY3NzUnVsZXN8fG51bGx9ZnVuY3Rpb24gSWkodCl7cmV0dXJuISF0LnBhcmVudCYmdC5wYXJlbnQudHlwZT09PV9l''@;'; + put 'put ''fWZ1bmN0aW9uIGIyKHQsaSxuLHMpe2lmKHQpe3ZhciBkPSExLG09dC50eXBlO2lmKHMmJm09PT13aSl7dmFyIEw9dC5zZWxlY3Rvci5tYXRjaChmcik7TCYmKHdpbmRvdy5tYXRjaE1lZGlhKExbMV0pLm1hdGNoZXN8fChkPSEwKSl9aWYobT09PV9pP2kodCk6biYmbT09PV9lP24odCk6bT09''@;'; + put 'put ''PXhpJiYoZD0hMCksKHQ9dC5ydWxlcykmJiFkKWZvcihkPTAsbT10Lmxlbmd0aCxMPXZvaWQgMDtkPG0mJihMPXRbZF0pO2QrKyliMihMLGksbixzKX19ZnVuY3Rpb24geGUodCxpLG4scyl7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gaSYmZC5zZXRBdHRy''@;'; + put 'put ''aWJ1dGUoInNjb3BlIixpKSxkLnRleHRDb250ZW50PXQsT2koZCxuLHMpLGR9dmFyIG8yPW51bGw7ZnVuY3Rpb24ga2kodCl7dD1kb2N1bWVudC5jcmVhdGVDb21tZW50KCIgU2hhZHkgRE9NIHN0eWxlcyBmb3IgIit0KyIgIik7dmFyIGk9ZG9jdW1lbnQuaGVhZDtyZXR1cm4gaS5pbnNlcnRC''@;'; + put 'put ''ZWZvcmUodCwobzI/bzIubmV4dFNpYmxpbmc6bnVsbCl8fGkuZmlyc3RDaGlsZCksbzI9dH1mdW5jdGlvbiBPaSh0LGksbil7KGk9aXx8ZG9jdW1lbnQuaGVhZCkuaW5zZXJ0QmVmb3JlKHQsbiYmbi5uZXh0U2libGluZ3x8aS5maXJzdENoaWxkKSxvMj90LmNvbXBhcmVEb2N1bWVudFBvc2l0''@;'; + put 'put ''aW9uKG8yKT09PU5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HJiYobzI9dCk6bzI9dH1mdW5jdGlvbiBEZSh0LGkpe2Zvcih2YXIgbj0wLHM9dC5sZW5ndGg7aTxzO2krKylpZigiKCI9PT10W2ldKW4rKztlbHNlIGlmKCIpIj09PXRbaV0mJjA9PS0tbilyZXR1cm4gaTtyZXR1cm4t''@;'; + put 'put ''MX1mdW5jdGlvbiBQaSh0LGkpe3ZhciBuPXQuaW5kZXhPZigidmFyKCIpO2lmKC0xPT09bilyZXR1cm4gaSh0LCIiLCIiLCIiKTt2YXIgcz1EZSh0LG4rMyksZD10LnN1YnN0cmluZyhuKzQscyk7cmV0dXJuIG49dC5zdWJzdHJpbmcoMCxuKSx0PVBpKHQuc3Vic3RyaW5nKHMrMSksaSksLTE9''@;'; + put 'put ''PT0ocz1kLmluZGV4T2YoIiwiKSk/aShuLGQudHJpbSgpLCIiLHQpOmkobixkLnN1YnN0cmluZygwLHMpLnRyaW0oKSxkLnN1YnN0cmluZyhzKzEpLnRyaW0oKSx0KX1mdW5jdGlvbiBadCh0LGkpe2gwP3Quc2V0QXR0cmlidXRlKCJjbGFzcyIsaSk6d2luZG93LlNoYWR5RE9NLm5hdGl2ZU1l''@;'; + put 'put ''dGhvZHMuc2V0QXR0cmlidXRlLmNhbGwodCwiY2xhc3MiLGkpfXZhciAkMj13aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS53cmFwfHxmdW5jdGlvbih0KXtyZXR1cm4gdH07ZnVuY3Rpb24gczIodCl7dmFyIGk9dC5sb2NhbE5hbWUsbj0iIjtyZXR1cm4gaT8tMTxpLmluZGV4T2Yo''@;'; + put 'put ''Ii0iKXx8KG49aSxpPXQuZ2V0QXR0cmlidXRlJiZ0LmdldEF0dHJpYnV0ZSgiaXMiKXx8IiIpOihpPXQuaXMsbj10LmV4dGVuZHMpLHtpczppLGhhOm59fWZ1bmN0aW9uIEJpKHQpe2Zvcih2YXIgaT1bXSxuPSIiLHM9MDswPD1zJiZzPHQubGVuZ3RoO3MrKylpZigiKCI9PT10W3NdKXt2YXIg''@;'; + put 'put ''ZD1EZSh0LHMpO24rPXQuc2xpY2UocyxkKzEpLHM9ZH1lbHNlIiwiPT09dFtzXT8oaS5wdXNoKG4pLG49IiIpOm4rPXRbc107cmV0dXJuIG4mJmkucHVzaChuKSxpfWZ1bmN0aW9uIF8yKHQpe2lmKHZvaWQgMCE9PVZ0KXJldHVybiBWdDtpZih2b2lkIDA9PT10Ll9fY3NzQnVpbGQpe3ZhciBp''@;'; + put 'put ''PXQuZ2V0QXR0cmlidXRlKCJjc3MtYnVpbGQiKTtpZihpKXQuX19jc3NCdWlsZD1pO2Vsc2V7aWYoIiIhPT0oaT0oaT0idGVtcGxhdGUiPT09dC5sb2NhbE5hbWU/dC5jb250ZW50LmZpcnN0Q2hpbGQ6dC5maXJzdENoaWxkKWluc3RhbmNlb2YgQ29tbWVudCYmImNzcy1idWlsZCI9PT0oaT1p''@;'; + put 'put ''LnRleHRDb250ZW50LnRyaW0oKS5zcGxpdCgiOiIpKVswXT9pWzFdOiIiKSl7dmFyIG49InRlbXBsYXRlIj09PXQubG9jYWxOYW1lP3QuY29udGVudC5maXJzdENoaWxkOnQuZmlyc3RDaGlsZDtuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobil9dC5fX2Nzc0J1aWxkPWl9fXJldHVybiB0Ll9f''@;'; + put 'put ''Y3NzQnVpbGR8fCIifWZ1bmN0aW9uIEVlKHQpe3JldHVybiEoIiI9PT0odD12b2lkIDA9PT10PyIiOnQpfHwhQzApJiYoaDA/InNoYWRvdyI9PT10OiJzaGFkeSI9PT10KX1mdW5jdGlvbiB5dCgpe31mdW5jdGlvbiBMdCh0LGksbil7dmFyIHM7aWYoaS5ub2RlVHlwZT09PU5vZGUuRUxFTUVO''@;'; + put 'put ''VF9OT0RFJiZuKGkpLHM9InRlbXBsYXRlIj09PWkubG9jYWxOYW1lPyhpLmNvbnRlbnR8fGkuX2NvbnRlbnR8fGkpLmNoaWxkTm9kZXM6aS5jaGlsZHJlbnx8aS5jaGlsZE5vZGVzKWZvcihpPTA7aTxzLmxlbmd0aDtpKyspTHQodCxzW2ldLG4pfWZ1bmN0aW9uIGgyKHQsaSxuKXtpZihpKWlm''@;'; + put 'put ''KHQuY2xhc3NMaXN0KW4/KHQuY2xhc3NMaXN0LnJlbW92ZSgic3R5bGUtc2NvcGUiKSx0LmNsYXNzTGlzdC5yZW1vdmUoaSkpOih0LmNsYXNzTGlzdC5hZGQoInN0eWxlLXNjb3BlIiksdC5jbGFzc0xpc3QuYWRkKGkpKTtlbHNlIGlmKHQuZ2V0QXR0cmlidXRlKXt2YXIgcz10LmdldEF0dHJp''@;'; + put 'put ''YnV0ZSgiY2xhc3MiKTtuP3MmJlp0KHQsaT1zLnJlcGxhY2UoInN0eWxlLXNjb3BlIiwiIikucmVwbGFjZShpLCIiKSk6WnQodCwocz9zKyIgIjoiIikrInN0eWxlLXNjb3BlICIraSl9fWZ1bmN0aW9uIHZyKHQsaSxuKXtMdChUMCx0LGZ1bmN0aW9uKHMpe2gyKHMsaSwhMCksaDIocyxuKX0p''@;'; + put 'put ''fWZ1bmN0aW9uIEhyKHQsaSl7THQoVDAsdCxmdW5jdGlvbihuKXtoMihuLGl8fCIiLCEwKX0pfWZ1bmN0aW9uIFN0KHQsaSxuLHMsZCl7dmFyIG09VDA7cmV0dXJuIiI9PT0oZD12b2lkIDA9PT1kPyIiOmQpJiYoZD1oMHx8InNoYWR5Ij09PSh2b2lkIDA9PT1zPyIiOnMpP1MyKGksbik6ZnVu''@;'; + put 'put ''Y3Rpb24gQ3IodCxpLG4scyxkKXt2YXIgbT1UZShuLHMpO3JldHVybiBuPW4/Ii4iK246IiIsUzIoaSxmdW5jdGlvbihMKXtMLml8fChMLnNlbGVjdG9yPUwuRj1OZSh0LEwsdC5oLG4sbSksTC5pPSEwKSxkJiZkKEwsbixtKX0pfShtLGksKHQ9czIodCkpLmlzLHQuaGEsbikrIlxuXG4iKSxk''@;'; + put 'put ''LnRyaW0oKX1mdW5jdGlvbiBUZSh0LGkpe3JldHVybiBpPyJbaXM9Iit0KyJdIjp0fWZ1bmN0aW9uIE5lKHQsaSxuLHMsZCl7dmFyIG09QmkoaS5zZWxlY3Rvcik7aWYoIUlpKGkpKXtpPTA7Zm9yKHZhciBMPW0ubGVuZ3RoLEY9dm9pZCAwO2k8TCYmKEY9bVtpXSk7aSsrKW1baV09bi5jYWxs''@;'; + put 'put ''KHQsRixzLGQpfXJldHVybiBtLmZpbHRlcihmdW5jdGlvbihHKXtyZXR1cm4hIUd9KS5qb2luKCIsIil9ZnVuY3Rpb24gR2kodCl7cmV0dXJuIHQucmVwbGFjZShGZSxmdW5jdGlvbihpLG4scyl7cmV0dXJuLTE8cy5pbmRleE9mKCIrIik/cz1zLnJlcGxhY2UoL1wrL2csIl9fXyIpOi0xPHMu''@;'; + put 'put ''aW5kZXhPZigiX19fIikmJihzPXMucmVwbGFjZSgvX19fL2csIisiKSksIjoiK24rIigiK3MrIikifSl9ZnVuY3Rpb24gamkodCxpKXt0PXQuc3BsaXQoLyhcWy4rP1xdKS8pO2Zvcih2YXIgbj1bXSxzPTA7czx0Lmxlbmd0aDtzKyspaWYocyUyPT0xKW4ucHVzaCh0W3NdKTtlbHNle3ZhciBk''@;'; + put 'put ''PXRbc107KCIiIT09ZHx8cyE9PXQubGVuZ3RoLTEpJiYoKGQ9ZC5zcGxpdCgiOiIpKVswXSs9aSxuLnB1c2goZC5qb2luKCI6IikpKX1yZXR1cm4gbi5qb2luKCIiKX1mdW5jdGlvbiBSaSh0KXsiOnJvb3QiPT09dC5zZWxlY3RvciYmKHQuc2VsZWN0b3I9Imh0bWwiKX15dC5wcm90b3R5cGUu''@;'; + put 'put ''aD1mdW5jdGlvbih0LGksbil7dmFyIHM9ITE7dD10LnRyaW0oKTt2YXIgZD1GZS50ZXN0KHQpO2QmJih0PUdpKHQ9dC5yZXBsYWNlKEZlLGZ1bmN0aW9uKEYsRyxVKXtyZXR1cm4iOiIrRysiKCIrVS5yZXBsYWNlKC9ccy9nLCIiKSsiKSJ9KSkpO3ZhciBtPVdpLnRlc3QodCk7aWYobSl7dmFy''@;'; + put 'put ''IEw9ZnVuY3Rpb24gVnIodCl7Zm9yKHZhciBuLGk9W107bj10Lm1hdGNoKFdpKTspe3ZhciBzPW4uaW5kZXgsZD1EZSh0LHMpO2lmKC0xPT09ZCl0aHJvdyBFcnJvcihuLmlucHV0KyIgc2VsZWN0b3IgbWlzc2luZyAnKSciKTtuPXQuc2xpY2UocyxkKzEpLHQ9dC5yZXBsYWNlKG4sIlx1ZTAw''@;'; + put 'put ''MCIpLGkucHVzaChuKX1yZXR1cm57QmE6dCxtYXRjaGVzOml9fSh0KTt0PUwuQmEsTD1MLm1hdGNoZXN9cmV0dXJuIHQ9KHQ9dC5yZXBsYWNlKExyLCI6aG9zdCAkMSIpKS5yZXBsYWNlKHlyLGZ1bmN0aW9uKEYsRyxVKXtyZXR1cm4gc3x8KEY9ZnVuY3Rpb24gTXIodCxpLG4scyl7dmFyIGQ9''@;'; + put 'put ''dC5pbmRleE9mKCI6OnNsb3R0ZWQiKTtpZigwPD10LmluZGV4T2YoIjpob3N0Iik/dD1mdW5jdGlvbiBacih0LGkpe3ZhciBuPXQubWF0Y2goVWkpO3JldHVybihuPW4mJm5bMl0udHJpbSgpfHwiIik/blswXS5tYXRjaCh6aSk/dC5yZXBsYWNlKFVpLGZ1bmN0aW9uKHMsZCxtKXtyZXR1cm4g''@;'; + put 'put ''aSttfSk6bi5zcGxpdCh6aSlbMF09PT1pP246InNob3VsZF9ub3RfbWF0Y2giOnQucmVwbGFjZSgiOmhvc3QiLGkpfSh0LHMpOjAhPT1kJiYodD1uP2ppKHQsbik6dCksbj0hMSwwPD1kJiYoaT0iIixuPSEwKSxuKXt2YXIgbT0hMDtuJiYodD10LnJlcGxhY2UoU3IsZnVuY3Rpb24oTCxGKXty''@;'; + put 'put ''ZXR1cm4iID4gIitGfSkpfXJldHVybnt2YWx1ZTp0LFVhOmksc3RvcDptfX0oVSxHLGksbikscz1zfHxGLnN0b3AsRz1GLlVhLFU9Ri52YWx1ZSksRytVfSksbSYmKHQ9ZnVuY3Rpb24gbXIodCxpKXt2YXIgbj10LnNwbGl0KCJcdWUwMDAiKTtyZXR1cm4gaS5yZWR1Y2UoZnVuY3Rpb24ocyxk''@;'; + put 'put ''LG0pe3JldHVybiBzK2QrblttKzFdfSxuWzBdKX0odCxMKSksZCYmKHQ9R2kodCkpLHQucmVwbGFjZShicixmdW5jdGlvbihGLEcsVSxLKXtyZXR1cm4nW2Rpcj0iJytVKyciXSAnK0crSysiLCAiK0crJ1tkaXI9IicrVSsnIl0nK0t9KX0seXQucHJvdG90eXBlLmk9ZnVuY3Rpb24odCl7cmV0''@;'; + put 'put ''dXJuIHQubWF0Y2goIjpob3N0Iik/IiI6dC5tYXRjaCgiOjpzbG90dGVkIik/dGhpcy5oKHQsIjpub3QoLnN0eWxlLXNjb3BlKSIpOmppKHQudHJpbSgpLCI6bm90KC5zdHlsZS1zY29wZSkiKX0sZS5PYmplY3QuZGVmaW5lUHJvcGVydGllcyh5dC5wcm90b3R5cGUse2c6e2NvbmZpZ3VyYWJs''@;'; + put 'put ''ZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiJzdHlsZS1zY29wZSJ9fX0pO3ZhciBGZT0vOihudGhbLVx3XSspXCgoW14pXSspXCkvLHlyPS8oXnxbXHM+K35dKykoKD86XFsuKz9cXXxbXlxzPit+PVtdKSspL2csemk9L1tbLjojKl0vLExyPS9eKDo6c2xvdHRlZCkv''@;'; + put 'put ''LFVpPS8oOmhvc3QpKD86XCgoKD86XChbXikoXSpcKXxbXikoXSopKz8pXCkpLyxTcj0vKD86OjpzbG90dGVkKSg/OlwoKCg/OlwoW14pKF0qXCl8W14pKF0qKSs/KVwpKS8sYnI9LyguKik6ZGlyXCgoPzoobHRyfHJ0bCkpXCkoLiopLyxXaT0vOig/Om1hdGNoZXN8YW55fC0oPzp3ZWJraXR8''@;'; + put 'put ''bW96KS1hbnkpLyxUMD1uZXcgeXQ7ZnVuY3Rpb24gdzIodCxpLG4scyxkKXt0aGlzLk09dHx8bnVsbCx0aGlzLmg9aXx8bnVsbCx0aGlzLnphPW58fFtdLHRoaXMuSz1udWxsLHRoaXMuY3NzQnVpbGQ9ZHx8IiIsdGhpcy5oYT1zfHwiIix0aGlzLmc9dGhpcy5MPXRoaXMuUj1udWxsfWZ1bmN0''@;'; + put 'put ''aW9uIE4wKHQpe3JldHVybiB0P3QuX19zdHlsZUluZm86bnVsbH1mdW5jdGlvbiBJZSh0LGkpe3JldHVybiB0Ll9fc3R5bGVJbmZvPWl9ZnVuY3Rpb24gJGkodCl7dmFyIGk9dGhpcy5tYXRjaGVzfHx0aGlzLm1hdGNoZXNTZWxlY3Rvcnx8dGhpcy5tb3pNYXRjaGVzU2VsZWN0b3J8fHRoaXMu''@;'; + put 'put ''bXNNYXRjaGVzU2VsZWN0b3J8fHRoaXMub01hdGNoZXNTZWxlY3Rvcnx8dGhpcy53ZWJraXRNYXRjaGVzU2VsZWN0b3I7cmV0dXJuIGkmJmkuY2FsbCh0aGlzLHQpfXcyLnByb3RvdHlwZS5fZ2V0U3R5bGVSdWxlcz13Mi5wcm90b3R5cGUuaT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19O3Zh''@;'; + put 'put ''ciBfcj0vOmhvc3Rccyo+XHMqLyx3cj1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJUcmlkZW50Iik7ZnVuY3Rpb24gcWkoKXt9ZnVuY3Rpb24gYnQodCl7aWYoIXQuRCl7dmFyIGk9e30sbj17fTtfdCh0LG4pJiYoaS5QPW4sdC5ydWxlcz1udWxsKSxpLmNzc1RleHQ9dC5wYXJzZWRDc3NU''@;'; + put 'put ''ZXh0LnJlcGxhY2UoZ3IsIiIpLnJlcGxhY2UobXQsIiIpLHQuRD1pfX1mdW5jdGlvbiBfdCh0LGkpe3ZhciBuPXQuRDtpZighbil7bj10LnBhcnNlZENzc1RleHQ7Zm9yKHZhciBzO3Q9bXQuZXhlYyhuKTspKCJpbmhlcml0IiE9PShzPSh0WzJdfHx0WzNdKS50cmltKCkpfHwidW5zZXQiIT09''@;'; + put 'put ''cykmJihpW3RbMV0udHJpbSgpXT1zKSxzPSEwO3JldHVybiBzfWlmKG4uUClyZXR1cm4gT2JqZWN0LmFzc2lnbihpLG4uUCksITB9ZnVuY3Rpb24gcTIodCxpLG4pe3JldHVybiBpJiYoaT0wPD1pLmluZGV4T2YoIjsiKT9rZSh0LGksbik6UGkoaSxmdW5jdGlvbihzLGQsbSxMKXtyZXR1cm4g''@;'; + put 'put ''ZD8oKGQ9cTIodCxuW2RdLG4pKSYmImluaXRpYWwiIT09ZD8iYXBwbHktc2hpbS1pbmhlcml0Ij09PWQmJihkPSJpbmhlcml0Iik6ZD1xMih0LG5bbV18fG0sbil8fG0scysoZHx8IiIpK0wpOnMrTH0pKSxpJiZpLnRyaW0oKXx8IiJ9ZnVuY3Rpb24ga2UodCxpLG4pe2k9aS5zcGxpdCgiOyIp''@;'; + put 'put ''O2Zvcih2YXIgZCxtLHM9MDtzPGkubGVuZ3RoO3MrKylpZihkPWlbc10pe2lmKE10Lmxhc3RJbmRleD0wLG09TXQuZXhlYyhkKSlkPXEyKHQsblttWzFdXSxuKTtlbHNlIGlmKC0xIT09KG09ZC5pbmRleE9mKCI6IikpKXt2YXIgTD1kLnN1YnN0cmluZyhtKTtMPXEyKHQsTD1MLnRyaW0oKSxu''@;'; + put 'put ''KXx8TCxkPWQuc3Vic3RyaW5nKDAsbSkrTH1pW3NdPWQmJmQubGFzdEluZGV4T2YoIjsiKT09PWQubGVuZ3RoLTE/ZC5zbGljZSgwLC0xKTpkfHwiIn1yZXR1cm4gaS5qb2luKCI7Iil9ZnVuY3Rpb24gSXIodCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBpLnJlcGxhY2UodC51LHQuZyl9''@;'; + put 'put ''fWZ1bmN0aW9uIGtyKHQsaSl7dmFyIG49d3Qscz1XMih0KTt0LnRleHRDb250ZW50PVMyKHMsZnVuY3Rpb24oZCl7dmFyIG09ZC5jc3NUZXh0PWQucGFyc2VkQ3NzVGV4dDtkLkQmJmQuRC5jc3NUZXh0JiYobT1tLnJlcGxhY2UoRGksIiIpLnJlcGxhY2UoRWksIiIpLGQuY3NzVGV4dD1rZShu''@;'; + put 'put ''LG0saSkpfSl9ZS5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhxaS5wcm90b3R5cGUse2c6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiJ4LXNjb3BlIn19fSk7dmFyIHd0PW5ldyBxaSx4Mj17fSx4dD13aW5kb3cuY3VzdG9tRWxlbWVudHM7aWYo''@;'; + put 'put ''eHQmJiFoMCYmIUwyKXt2YXIgT3I9eHQuZGVmaW5lO3h0LmRlZmluZT1mdW5jdGlvbih0LGksbil7eDJbdF18fCh4Mlt0XT1raSh0KSksT3IuY2FsbCh4dCx0LGksbil9fWZ1bmN0aW9uIFlpKCl7dGhpcy5jYWNoZT17fX1mdW5jdGlvbiBLaSgpe31ZaS5wcm90b3R5cGUuc3RvcmU9ZnVuY3Rp''@;'; + put 'put ''b24odCxpLG4scyl7dmFyIGQ9dGhpcy5jYWNoZVt0XXx8W107ZC5wdXNoKHtQOmksc3R5bGVFbGVtZW50Om4sTDpzfSksMTAwPGQubGVuZ3RoJiZkLnNoaWZ0KCksdGhpcy5jYWNoZVt0XT1kfTt2YXIgUHI9bmV3IFJlZ0V4cChUMC5nKyJcXHMqKFteXFxzXSopIik7ZnVuY3Rpb24gWGkodCl7''@;'; + put 'put ''cmV0dXJuKHQ9KHQuY2xhc3NMaXN0JiZ0LmNsYXNzTGlzdC52YWx1ZT90LmNsYXNzTGlzdC52YWx1ZTp0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpLm1hdGNoKFByKSk/dFsxXToiIn1mdW5jdGlvbiBPZSh0KXt2YXIgaT0kMih0KS5nZXRSb290Tm9kZSgpO3JldHVybiBpPT09dHx8aT09''@;'; + put 'put ''PXQub3duZXJEb2N1bWVudD8iIjoodD1pLmhvc3QpP3MyKHQpLmlzOiIifWZ1bmN0aW9uIFFpKHQpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbj10W2ldO2lmKG4udGFyZ2V0IT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZuLnRhcmdldCE9PWRvY3VtZW50LmhlYWQpZm9y''@;'; + put 'put ''KHZhciBzPTA7czxuLmFkZGVkTm9kZXMubGVuZ3RoO3MrKyl7dmFyIGQ9bi5hZGRlZE5vZGVzW3NdO2lmKGQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7dmFyIG09ZC5nZXRSb290Tm9kZSgpLEw9WGkoZCk7aWYoTCYmbT09PWQub3duZXJEb2N1bWVudCYmKCJzdHlsZSIhPT1kLmxv''@;'; + put 'put ''Y2FsTmFtZSYmInRlbXBsYXRlIiE9PWQubG9jYWxOYW1lfHwiIj09PV8yKGQpKSlIcihkLEwpO2Vsc2UgaWYobSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpZm9yKChtPU9lKGQpKSE9PUwmJnZyKGQsTCxtKSxkPXdpbmRvdy5TaGFkeURPTS5uYXRpdmVNZXRob2RzLnF1ZXJ5U2VsZWN0b3JBbGwu''@;'; + put 'put ''Y2FsbChkLCI6bm90KC4iK1QwLmcrIikiKSxMPTA7TDxkLmxlbmd0aDtMKyspe3ZhciBGPU9lKG09ZFtMXSk7RiYmaDIobSxGKX19fX19aWYoIShoMHx8d2luZG93LlNoYWR5RE9NJiZ3aW5kb3cuU2hhZHlET00uaGFuZGxlc0R5bmFtaWNTY29waW5nKSl7dmFyIEppPW5ldyBNdXRhdGlvbk9i''@;'; + put 'put ''c2VydmVyKFFpKSx0YT1mdW5jdGlvbih0KXtKaS5vYnNlcnZlKHQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSl9O2lmKHdpbmRvdy5jdXN0b21FbGVtZW50cyYmIXdpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrKXRhKGRvY3VtZW50KTtlbHNle3ZhciBQ''@;'; + put 'put ''ZT1mdW5jdGlvbigpe3RhKGRvY3VtZW50LmJvZHkpfTt3aW5kb3cuSFRNTEltcG9ydHM/d2luZG93LkhUTUxJbXBvcnRzLndoZW5SZWFkeShQZSk6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7aWYoImxvYWRpbmciPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSl7dmFyIHQ9ZnVuY3Rp''@;'; + put 'put ''b24oKXtQZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLHQpfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIix0KX1lbHNlIFBlKCl9KX1LaT1mdW5jdGlvbigpe1FpKEppLnRha2VSZWNvcmRzKCkpfX12YXIgRHQ9''@;'; + put 'put ''e30sQnI9UHJvbWlzZS5yZXNvbHZlKCk7ZnVuY3Rpb24gR3IodCl7KHQ9RHRbdF0pJiYodC5fYXBwbHlTaGltQ3VycmVudFZlcnNpb249dC5fYXBwbHlTaGltQ3VycmVudFZlcnNpb258fDAsdC5fYXBwbHlTaGltVmFsaWRhdGluZ1ZlcnNpb249dC5fYXBwbHlTaGltVmFsaWRhdGluZ1ZlcnNp''@;'; + put 'put ''b258fDAsdC5fYXBwbHlTaGltTmV4dFZlcnNpb249KHQuX2FwcGx5U2hpbU5leHRWZXJzaW9ufHwwKSsxKX1mdW5jdGlvbiBlYSh0KXtyZXR1cm4gdC5fYXBwbHlTaGltQ3VycmVudFZlcnNpb249PT10Ll9hcHBseVNoaW1OZXh0VmVyc2lvbn12YXIgbGE9e30saWE9bmV3IFlpO2Z1bmN0aW9u''@;'; + put 'put ''IEcxKCl7dGhpcy5kYT17fSx0aGlzLmk9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3ZhciB0PW5ldyBTZTt0LnJ1bGVzPVtdLHRoaXMudT1JZSh0aGlzLmksbmV3IHcyKHQpKSx0aGlzLk89ITEsdGhpcy5nPXRoaXMuaD1udWxsfWZ1bmN0aW9uIGFhKHQpe3ZhciBpPXMyKHQpLG49aS5pcztp''@;'; + put 'put ''PWkuaGE7dmFyIHM9eDJbbl18fG51bGwsZD1EdFtuXTtpZihkKXJldHVybiBJZSh0LGk9bmV3IHcyKG49ZC5fc3R5bGVBc3QscyxkLmcsaSxkPV8yKGQpKSksaX1mdW5jdGlvbiBZMih0KXtpZighdC5oJiZ3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5BcHBseVNoaW0pe3QuaD13''@;'; + put 'put ''aW5kb3cuU2hhZHlDU1MuQXBwbHlTaGltLHQuaC5pbnZhbGlkQ2FsbGJhY2s9R3I7dmFyIGk9ITB9ZWxzZSBpPSExO3JldHVybiBmdW5jdGlvbiBScih0KXshdC5nJiZ3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZSYmKHQuZz13aW5kb3cuU2hh''@;'; + put 'put ''ZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2UsdC5nLnRyYW5zZm9ybUNhbGxiYWNrPWZ1bmN0aW9uKGkpe3QuTWEoaSl9LHQuZy52YWxpZGF0ZUNhbGxiYWNrPWZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7KHQuZy5lbnF1ZXVlZHx8dC5PKSYmdC5mbHVzaEN1''@;'; + put 'put ''c3RvbVN0eWxlcygpfSl9KX0odCksaX1mdW5jdGlvbiByYSh0LGksbil7dmFyIHM9czIoaSkuaXM7aWYobi5LKXt2YXIgbSxkPW4uSztmb3IobSBpbiBkKW51bGw9PT1tP2kuc3R5bGUucmVtb3ZlUHJvcGVydHkobSk6aS5zdHlsZS5zZXRQcm9wZXJ0eShtLGRbbV0pfSEoIShkPUR0W3NdKSYm''@;'; + put 'put ''aSE9PXQuaXx8ZCYmIiIhPT1fMihkKSkmJmQmJmQuX3N0eWxlJiYhZWEoZCkmJigoZWEoZCl8fGQuX2FwcGx5U2hpbVZhbGlkYXRpbmdWZXJzaW9uIT09ZC5fYXBwbHlTaGltTmV4dFZlcnNpb24pJiYoWTIodCksdC5oJiZ0LmgudHJhbnNmb3JtUnVsZXMoZC5fc3R5bGVBc3QscyksZC5fc3R5''@;'; + put 'put ''bGUudGV4dENvbnRlbnQ9U3QoaSxuLk0pLGZ1bmN0aW9uIGpyKHQpe3QuX2FwcGx5U2hpbVZhbGlkYXRpbmdWZXJzaW9uPXQuX2FwcGx5U2hpbU5leHRWZXJzaW9uLHQuX3ZhbGlkYXRpbmd8fCh0Ll92YWxpZGF0aW5nPSEwLEJyLnRoZW4oZnVuY3Rpb24oKXt0Ll9hcHBseVNoaW1DdXJyZW50''@;'; + put 'put ''VmVyc2lvbj10Ll9hcHBseVNoaW1OZXh0VmVyc2lvbix0Ll92YWxpZGF0aW5nPSExfSkpfShkKSksaDAmJih0PWkuc2hhZG93Um9vdCkmJih0PXQucXVlcnlTZWxlY3Rvcigic3R5bGUiKSkmJih0LnRleHRDb250ZW50PVN0KGksbi5NKSksbi5NPWQuX3N0eWxlQXN0KX1mdW5jdGlvbiBCZSh0''@;'; + put 'put ''LGkpe3JldHVybihpPSQyKGkpLmdldFJvb3ROb2RlKCkuaG9zdCk/TjAoaSl8fGFhKGkpP2k6QmUodCxpKTp0Lml9ZnVuY3Rpb24gR2UodCxpLG4pe3ZhciBzPUJlKHQsaSksZD1OMChzKSxtPWQuUjtmb3IodmFyIEwgaW4gcz09PXQuaXx8bXx8KEdlKHQscyxkKSxtPWQuUiksdD1PYmplY3Qu''@;'; + put 'put ''Y3JlYXRlKG18fG51bGwpLHM9ZnVuY3Rpb24gVHIodCxpLG4pe3ZhciBzPXt9LGQ9e307cmV0dXJuIGIyKGksZnVuY3Rpb24obSl7IWZ1bmN0aW9uIEVyKHQsaSxuLHMpe2lmKGkuRHx8YnQoaSksaS5ELlApe3ZhciBkPXMyKHQpO3Q9ZC5pcyxkPWQuaGEsZD10P1RlKHQsZCk6Imh0bWwiO3Zh''@;'; + put 'put ''ciBtPWkucGFyc2VkU2VsZWN0b3IsTD0hIW0ubWF0Y2goX3IpfHwiaHRtbCI9PT1kJiYtMTxtLmluZGV4T2YoImh0bWwiKSxGPTA9PT1tLmluZGV4T2YoIjpob3N0IikmJiFMOyJzaGFkeSI9PT1uJiYoRj0hKEw9bT09PWQrIiA+ICouIitkfHwtMSE9PW0uaW5kZXhPZigiaHRtbCIpKSYmMD09''@;'; + put 'put ''PW0uaW5kZXhPZihkKSksKEx8fEYpJiYobj1kLEYmJihpLkZ8fChpLkY9TmUoVDAsaSxUMC5oLHQ/Ii4iK3Q6IiIsZCkpLG49aS5GfHxkKSxMJiYiaHRtbCI9PT1kJiYobj1pLkZ8fGkuTykscyh7QmE6bixhYjpGLHFiOkx9KSl9fSh0LG0sbixmdW5jdGlvbihMKXskaS5jYWxsKHQuX2VsZW1l''@;'; + put 'put ''bnR8fHQsTC5CYSkmJl90KG0sTC5hYj9zOmQpfSl9LG51bGwsITApLHtoYjpkLFphOnN9fShpLG4uTSxuLmNzc0J1aWxkKSxpPWZ1bmN0aW9uIERyKHQsaSl7dmFyIG49e30scz1bXTtyZXR1cm4gYjIodCxmdW5jdGlvbihkKXtkLkR8fGJ0KGQpO3ZhciBtPWQuRnx8ZC5wYXJzZWRTZWxlY3Rv''@;'; + put 'put ''cjtpJiZkLkQuUCYmbSYmJGkuY2FsbChpLG0pJiYoX3QoZCxuKSxkPWQuaW5kZXgsbT1wYXJzZUludChkLzMyLDEwKSxzW21dPShzW21dfHwwKXwxPDxkJTMyKX0sbnVsbCwhMCkse1A6bixrZXk6c319KGQuTSxpKS5QLE9iamVjdC5hc3NpZ24odCxzLlphLGkscy5oYiksaT1uLkspKChkPWlb''@;'; + put 'put ''TF0pfHwwPT09ZCkmJih0W0xdPWQpO2ZvcihMPXd0LGk9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCksZD0wO2Q8aS5sZW5ndGg7ZCsrKXRbcz1pW2RdXT1xMihMLHRbc10sdCk7bi5SPXR9KFg9RzEucHJvdG90eXBlKS5mbHVzaD1mdW5jdGlvbigpe0tpKCl9LFguWGE9ZnVuY3Rpb24o''@;'; + put 'put ''dCl7cmV0dXJuIFcyKHQpfSxYLmxiPWZ1bmN0aW9uKHQpe3JldHVybiBTMih0KX0sWC5wcmVwYXJlVGVtcGxhdGU9ZnVuY3Rpb24odCxpLG4pe3RoaXMucHJlcGFyZVRlbXBsYXRlRG9tKHQsaSksdGhpcy5wcmVwYXJlVGVtcGxhdGVTdHlsZXModCxpLG4pfSxYLnByZXBhcmVUZW1wbGF0ZVN0''@;'; + put 'put ''eWxlcz1mdW5jdGlvbih0LGksbil7aWYoIXQuX3ByZXBhcmVkJiYhTDIpe2gwfHx4MltpXXx8KHgyW2ldPWtpKGkpKSx0Ll9wcmVwYXJlZD0hMCx0Lm5hbWU9aSx0LmV4dGVuZHM9bixEdFtpXT10O3ZhciBzPV8yKHQpLGQ9RWUocyk7bj17aXM6aSxleHRlbmRzOm59O2Zvcih2YXIgbT1bXSxM''@;'; + put 'put ''PXQuY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZSIpLEY9MDtGPEwubGVuZ3RoO0YrKyl7dmFyIEc9TFtGXTtpZihHLmhhc0F0dHJpYnV0ZSgic2hhZHktdW5zY29wZWQiKSl7aWYoIWgwKXt2YXIgVT1HLnRleHRDb250ZW50O2lmKCFGaS5oYXMoVSkpe0ZpLmFkZChVKTt2YXIgSz1k''@;'; + put 'put ''b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0suc2V0QXR0cmlidXRlKCJzaGFkeS11bnNjb3BlZCIsIiIpLEsudGV4dENvbnRlbnQ9VSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKEspfUcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChHKX19ZWxzZSBtLnB1c2goRy50ZXh0Q29udGVu''@;'; + put 'put ''dCksRy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEcpfW09bS5qb2luKCIiKS50cmltKCkrKGxhW2ldfHwiIiksWTIodGhpcyksZHx8KChMPSFzKSYmKEw9TXQudGVzdChtKXx8bXQudGVzdChtKSxNdC5sYXN0SW5kZXg9MCxtdC5sYXN0SW5kZXg9MCksRj1iZShtKSxMJiZDMCYmdGhpcy5oJiZ0''@;'; + put 'put ''aGlzLmgudHJhbnNmb3JtUnVsZXMoRixpKSx0Ll9zdHlsZUFzdD1GKSxMPVtdLEMwfHwoTD1mdW5jdGlvbiB4cih0KXt2YXIgaT17fSxuPVtdLHM9MDtmb3IodmFyIGQgaW4gYjIodCxmdW5jdGlvbihtKXtidChtKSxtLmluZGV4PXMrKyxtPW0uRC5jc3NUZXh0O2Zvcih2YXIgTDtMPXVyLmV4''@;'; + put 'put ''ZWMobSk7KSI6IiE9PUxbMl0mJihpW0xbMV1dPSEwKX0sZnVuY3Rpb24obSl7bi5wdXNoKG0pfSksdC5oPW4sdD1bXSxpKXQucHVzaChkKTtyZXR1cm4gdH0odC5fc3R5bGVBc3QpKSwoIUwubGVuZ3RofHxDMCkmJihGPWgwP3QuY29udGVudDpudWxsLGk9eDJbaV18fG51bGwscz0ocz1TdChu''@;'; + put 'put ''LHQuX3N0eWxlQXN0LG51bGwscyxkP206IiIpKS5sZW5ndGg/eGUocyxuLmlzLEYsaSk6bnVsbCx0Ll9zdHlsZT1zKSx0Lmc9TH19LFguZmI9ZnVuY3Rpb24odCxpKXtsYVtpXT10LmpvaW4oIiAiKX0sWC5wcmVwYXJlVGVtcGxhdGVEb209ZnVuY3Rpb24odCxpKXtpZighTDIpe3ZhciBuPV8y''@;'; + put 'put ''KHQpO2gwfHwic2hhZHkiPT09bnx8dC5fZG9tUHJlcGFyZWR8fCh0Ll9kb21QcmVwYXJlZD0hMCxmdW5jdGlvbiBBcih0LGkpe0x0KFQwLHQsZnVuY3Rpb24obil7aDIobixpfHwiIil9KX0odC5jb250ZW50LGkpKX19LFguZmx1c2hDdXN0b21TdHlsZXM9ZnVuY3Rpb24oKXtpZighTDIpe3Zh''@;'; + put 'put ''ciB0PVkyKHRoaXMpO2lmKHRoaXMuZyl7dmFyIGk9dGhpcy5nLnByb2Nlc3NTdHlsZXMoKTtpZigodHx8dGhpcy5nLmVucXVldWVkKSYmIUVlKHRoaXMudS5jc3NCdWlsZCkpe2lmKEMwKXtpZighdGhpcy51LmNzc0J1aWxkKWZvcih0PTA7dDxpLmxlbmd0aDt0Kyspe3ZhciBuPXRoaXMuZy5n''@;'; + put 'put ''ZXRTdHlsZUZvckN1c3RvbVN0eWxlKGlbdF0pO2lmKG4mJkMwJiZ0aGlzLmgpe3ZhciBzPVcyKG4pO1kyKHRoaXMpLHRoaXMuaC50cmFuc2Zvcm1SdWxlcyhzKSxuLnRleHRDb250ZW50PVMyKHMpfX19ZWxzZXtmb3IoZnVuY3Rpb24genIodCxpKXtpPWkubWFwKGZ1bmN0aW9uKG4pe3JldHVy''@;'; + put 'put ''biB0LmcuZ2V0U3R5bGVGb3JDdXN0b21TdHlsZShuKX0pLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4hIW59KSxpLnNvcnQoZnVuY3Rpb24obixzKXtyZXR1cm4obj1zLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG4pKSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORz8xOm4mTm9k''@;'; + put 'put ''ZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc/LTE6MH0pLHQudS5NLnJ1bGVzPWkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBXMihuKX0pfSh0aGlzLGkpLEdlKHRoaXMsdGhpcy5pLHRoaXMudSksdD0wO3Q8aS5sZW5ndGg7dCsrKShuPXRoaXMuZy5nZXRTdHlsZUZvckN1c3RvbVN0eWxl''@;'; + put 'put ''KGlbdF0pKSYma3Iobix0aGlzLnUuUik7dGhpcy5PJiZ0aGlzLnN0eWxlRG9jdW1lbnQoKX10aGlzLmcuZW5xdWV1ZWQ9ITF9fX19LFguc3R5bGVFbGVtZW50PWZ1bmN0aW9uKHQsaSl7aWYoTDIpe2lmKGkpe04wKHQpfHxJZSh0LG5ldyB3MihudWxsKSk7dmFyIG49TjAodCk7bi5LPW4uS3x8''@;'; + put 'put ''e30sT2JqZWN0LmFzc2lnbihuLkssaSkscmEodGhpcyx0LG4pfX1lbHNlIGlmKG49TjAodCl8fGFhKHQpKWlmKHQhPT10aGlzLmkmJih0aGlzLk89ITApLGkmJihuLks9bi5LfHx7fSxPYmplY3QuYXNzaWduKG4uSyxpKSksQzApcmEodGhpcyx0LG4pO2Vsc2UgaWYodGhpcy5mbHVzaCgpLEdl''@;'; + put 'put ''KHRoaXMsdCxuKSxuLnphJiZuLnphLmxlbmd0aCl7dmFyIHM7aT1zMih0KS5pczt0OntpZihzPWlhLmNhY2hlW2ldKWZvcih2YXIgZD1zLmxlbmd0aC0xOzA8PWQ7ZC0tKXt2YXIgbT1zW2RdO2U6e2Zvcih2YXIgTD1uLnphLEY9MDtGPEwubGVuZ3RoO0YrKyl7dmFyIEc9TFtGXTtpZihtLlBb''@;'; + put 'put ''R10hPT1uLlJbR10pe0w9ITE7YnJlYWsgZX19TD0hMH1pZihMKXtzPW07YnJlYWsgdH19cz12b2lkIDB9TD1zP3Muc3R5bGVFbGVtZW50Om51bGwsZD1uLkwsKG09cyYmcy5MKXx8KG09aSsiLSIrKG09dGhpcy5kYVtpXT0odGhpcy5kYVtpXXx8MCkrMSkpLG4uTD1tLG09bi5MLEY9d3QsRj1M''@;'; + put 'put ''P0wudGV4dENvbnRlbnR8fCIiOmZ1bmN0aW9uIE5yKHQsaSxuLHMpe3ZhciBkPXMyKGkpLG09VGUoZC5pcyxkLmhhKSxMPW5ldyBSZWdFeHAoIig/Ol58W14uI1s6XSkiKyhpLmV4dGVuZHM/IlxcIittLnNsaWNlKDAsLTEpKyJcXF0iOm0pKyIoJHxbLjpbXFxzPit+XSkiKSxGPU4wKGkpO2Q9''@;'; + put 'put ''Ri5NLEY9Ri5jc3NCdWlsZDt2YXIgRz1mdW5jdGlvbiBGcih0LGkpe3Q9dC5oO3ZhciBuPXt9O2lmKCFoMCYmdClmb3IodmFyIHM9MCxkPXRbc107czx0Lmxlbmd0aDtkPXRbKytzXSl7dmFyIG09ZCxMPWk7bS51PW5ldyBSZWdFeHAoIlxcYiIrbS5rZXlmcmFtZXNOYW1lKyIoPyFcXEJ8LSki''@;'; + put 'put ''LCJnIiksbS5nPW0ua2V5ZnJhbWVzTmFtZSsiLSIrTCxtLkY9bS5GfHxtLnNlbGVjdG9yLG0uc2VsZWN0b3I9bS5GLnJlcGxhY2UobS5rZXlmcmFtZXNOYW1lLG0uZyksbltkLmtleWZyYW1lc05hbWVdPUlyKGQpfXJldHVybiBufShkLHMpO3JldHVybiBTdChpLGQsZnVuY3Rpb24oVSl7dmFy''@;'; + put 'put ''IEs9IiI7aWYoVS5EfHxidChVKSxVLkQuY3NzVGV4dCYmKEs9a2UodCxVLkQuY3NzVGV4dCxuKSksVS5jc3NUZXh0PUssIWgwJiYhSWkoVSkmJlUuY3NzVGV4dCl7dmFyIEgxPUs9VS5jc3NUZXh0O2lmKG51bGw9PVUuSWEmJihVLklhPXByLnRlc3QoSykpLFUuSWEpaWYobnVsbD09VS5wYSlm''@;'; + put 'put ''b3IodmFyIFExIGluIFUucGE9W10sRylLIT09KEgxPShIMT1HW1ExXSkoSykpJiYoSz1IMSxVLnBhLnB1c2goUTEpKTtlbHNle2ZvcihRMT0wO1ExPFUucGEubGVuZ3RoOysrUTEpSz0oSDE9R1tVLnBhW1ExXV0pKEspO0gxPUt9VS5jc3NUZXh0PUgxLFUuRj1VLkZ8fFUuc2VsZWN0b3IsSz0i''@;'; + put 'put ''LiIrcyxIMT0wO2Zvcih2YXIgajE9KFExPUJpKFUuRikpLmxlbmd0aCxNMT12b2lkIDA7SDE8ajEmJihNMT1RMVtIMV0pO0gxKyspUTFbSDFdPU0xLm1hdGNoKEwpP00xLnJlcGxhY2UobSxLKTpLKyIgIitNMTtVLnNlbGVjdG9yPVExLmpvaW4oIiwiKX19LEYpfShGLHQsbi5SLG0pO3ZhciBV''@;'; + put 'put ''PShHPU4wKHQpKS5nO1UmJiFoMCYmVSE9PUwmJihVLl91c2VDb3VudC0tLDA+PVUuX3VzZUNvdW50JiZVLnBhcmVudE5vZGUmJlUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChVKSksaDA/Ry5nPyhHLmcudGV4dENvbnRlbnQ9RixMPUcuZyk6RiYmKEw9eGUoRixtLHQuc2hhZG93Um9vdCxHLmgp''@;'; + put 'put ''KTpMP0wucGFyZW50Tm9kZXx8KHdyJiYtMTxGLmluZGV4T2YoIkBtZWRpYSIpJiYoTC50ZXh0Q29udGVudD1GKSxPaShMLG51bGwsRy5oKSk6RiYmKEw9eGUoRixtLG51bGwsRy5oKSksTCYmKEwuX3VzZUNvdW50PUwuX3VzZUNvdW50fHwwLEcuZyE9TCYmTC5fdXNlQ291bnQrKyxHLmc9TCks''@;'; + put 'put ''bT1MLGgwfHwoTD1uLkwsRz1GPXQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIixkJiYoRz1GLnJlcGxhY2UobmV3IFJlZ0V4cCgiXFxzKngtc2NvcGVcXHMqIitkKyJcXHMqIiwiZyIpLCIgIikpLEYhPT0oRys9KEc/IiAiOiIiKSsieC1zY29wZSAiK0wpJiZadCh0LEcpKSxzfHxpYS5zdG9y''@;'; + put 'put ''ZShpLG4uUixtLG4uTCl9fSxYLnN0eWxlRG9jdW1lbnQ9ZnVuY3Rpb24odCl7dGhpcy5zdHlsZVN1YnRyZWUodGhpcy5pLHQpfSxYLnN0eWxlU3VidHJlZT1mdW5jdGlvbih0LGkpe3ZhciBuPSQyKHQpLHM9bi5zaGFkb3dSb290LGQ9dD09PXRoaXMuaTtpZigoc3x8ZCkmJnRoaXMuc3R5bGVF''@;'; + put 'put ''bGVtZW50KHQsaSksdD1kP246cylmb3IodD1BcnJheS5mcm9tKHQucXVlcnlTZWxlY3RvckFsbCgiKiIpKS5maWx0ZXIoZnVuY3Rpb24obSl7cmV0dXJuICQyKG0pLnNoYWRvd1Jvb3R9KSxpPTA7aTx0Lmxlbmd0aDtpKyspdGhpcy5zdHlsZVN1YnRyZWUodFtpXSl9LFguTWE9ZnVuY3Rpb24o''@;'; + put 'put ''dCl7dmFyIGk9dGhpcyxuPV8yKHQpO2lmKG4hPT10aGlzLnUuY3NzQnVpbGQmJih0aGlzLnUuY3NzQnVpbGQ9biksIUVlKG4pKXt2YXIgcz1XMih0KTtiMihzLGZ1bmN0aW9uKGQpe2lmKGgwKVJpKGQpO2Vsc2V7dmFyIG09VDA7ZC5zZWxlY3Rvcj1kLnBhcnNlZFNlbGVjdG9yLFJpKGQpLGQu''@;'; + put 'put ''c2VsZWN0b3I9ZC5GPU5lKG0sZCxtLmksdm9pZCAwLHZvaWQgMCl9QzAmJiIiPT09biYmKFkyKGkpLGkuaCYmaS5oLnRyYW5zZm9ybVJ1bGUoZCkpfSksQzA/dC50ZXh0Q29udGVudD1TMihzKTp0aGlzLnUuTS5ydWxlcy5wdXNoKHMpfX0sWC5nZXRDb21wdXRlZFN0eWxlVmFsdWU9ZnVuY3Rp''@;'; + put 'put ''b24odCxpKXt2YXIgbjtyZXR1cm4gQzB8fChuPShOMCh0KXx8TjAoQmUodGhpcyx0KSkpLlJbaV0pLChuPW58fHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmdldFByb3BlcnR5VmFsdWUoaSkpP24udHJpbSgpOiIifSxYLmtiPWZ1bmN0aW9uKHQsaSl7dmFyIG49JDIodCkuZ2V0Um9vdE5v''@;'; + put 'put ''ZGUoKTtpZihpPWk/KCJzdHJpbmciPT10eXBlb2YgaT9pOlN0cmluZyhpKSkuc3BsaXQoL1xzLyk6W10sIShuPW4uaG9zdCYmbi5ob3N0LmxvY2FsTmFtZSkpe3ZhciBzPXQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpO2lmKHMpe3M9cy5zcGxpdCgvXHMvKTtmb3IodmFyIGQ9MDtkPHMubGVuZ3Ro''@;'; + put 'put ''O2QrKylpZihzW2RdPT09VDAuZyl7bj1zW2QrMV07YnJlYWt9fX1uJiZpLnB1c2goVDAuZyxuKSxDMHx8KG49TjAodCkpJiZuLkwmJmkucHVzaCh3dC5nLG4uTCksWnQodCxpLmpvaW4oIiAiKSl9LFguVGE9ZnVuY3Rpb24odCl7cmV0dXJuIE4wKHQpfSxYLmpiPWZ1bmN0aW9uKHQsaSl7aDIo''@;'; + put 'put ''dCxpKX0sWC5tYj1mdW5jdGlvbih0LGkpe2gyKHQsaSwhMCl9LFguaWI9ZnVuY3Rpb24odCl7cmV0dXJuIE9lKHQpfSxYLlZhPWZ1bmN0aW9uKHQpe3JldHVybiBYaSh0KX0sRzEucHJvdG90eXBlLmZsdXNoPUcxLnByb3RvdHlwZS5mbHVzaCxHMS5wcm90b3R5cGUucHJlcGFyZVRlbXBsYXRl''@;'; + put 'put ''PUcxLnByb3RvdHlwZS5wcmVwYXJlVGVtcGxhdGUsRzEucHJvdG90eXBlLnN0eWxlRWxlbWVudD1HMS5wcm90b3R5cGUuc3R5bGVFbGVtZW50LEcxLnByb3RvdHlwZS5zdHlsZURvY3VtZW50PUcxLnByb3RvdHlwZS5zdHlsZURvY3VtZW50LEcxLnByb3RvdHlwZS5zdHlsZVN1YnRyZWU9RzEu''@;'; + put 'put ''cHJvdG90eXBlLnN0eWxlU3VidHJlZSxHMS5wcm90b3R5cGUuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlPUcxLnByb3RvdHlwZS5nZXRDb21wdXRlZFN0eWxlVmFsdWUsRzEucHJvdG90eXBlLnNldEVsZW1lbnRDbGFzcz1HMS5wcm90b3R5cGUua2IsRzEucHJvdG90eXBlLl9zdHlsZUluZm9Gb3JO''@;'; + put 'put ''b2RlPUcxLnByb3RvdHlwZS5UYSxHMS5wcm90b3R5cGUudHJhbnNmb3JtQ3VzdG9tU3R5bGVGb3JEb2N1bWVudD1HMS5wcm90b3R5cGUuTWEsRzEucHJvdG90eXBlLmdldFN0eWxlQXN0PUcxLnByb3RvdHlwZS5YYSxHMS5wcm90b3R5cGUuc3R5bGVBc3RUb1N0cmluZz1HMS5wcm90b3R5cGUu''@;'; + put 'put ''bGIsRzEucHJvdG90eXBlLmZsdXNoQ3VzdG9tU3R5bGVzPUcxLnByb3RvdHlwZS5mbHVzaEN1c3RvbVN0eWxlcyxHMS5wcm90b3R5cGUuc2NvcGVOb2RlPUcxLnByb3RvdHlwZS5qYixHMS5wcm90b3R5cGUudW5zY29wZU5vZGU9RzEucHJvdG90eXBlLm1iLEcxLnByb3RvdHlwZS5zY29wZUZv''@;'; + put 'put ''ck5vZGU9RzEucHJvdG90eXBlLmliLEcxLnByb3RvdHlwZS5jdXJyZW50U2NvcGVGb3JOb2RlPUcxLnByb3RvdHlwZS5WYSxHMS5wcm90b3R5cGUucHJlcGFyZUFkb3B0ZWRDc3NUZXh0PUcxLnByb3RvdHlwZS5mYixPYmplY3QuZGVmaW5lUHJvcGVydGllcyhHMS5wcm90b3R5cGUse25hdGl2''@;'; + put 'put ''ZVNoYWRvdzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGgwfX0sbmF0aXZlQ3NzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQzB9fX0pO3ZhciBqZSxSZSxWMD1uZXcgRzE7d2luZG93LlNoYWR5Q1NTJiYoamU9d2luZG93LlNoYWR5Q1NTLkFwcGx5U2hpbSxSZT13aW5kb3cuU2hhZHlDU1MuQ3Vz''@;'; + put 'put ''dG9tU3R5bGVJbnRlcmZhY2UpLHdpbmRvdy5TaGFkeUNTUz17U2NvcGluZ1NoaW06VjAscHJlcGFyZVRlbXBsYXRlOmZ1bmN0aW9uKHQsaSxuKXtWMC5mbHVzaEN1c3RvbVN0eWxlcygpLFYwLnByZXBhcmVUZW1wbGF0ZSh0LGksbil9LHByZXBhcmVUZW1wbGF0ZURvbTpmdW5jdGlvbih0LGkp''@;'; + put 'put ''e1YwLnByZXBhcmVUZW1wbGF0ZURvbSh0LGkpfSxwcmVwYXJlVGVtcGxhdGVTdHlsZXM6ZnVuY3Rpb24odCxpLG4pe1YwLmZsdXNoQ3VzdG9tU3R5bGVzKCksVjAucHJlcGFyZVRlbXBsYXRlU3R5bGVzKHQsaSxuKX0sc3R5bGVTdWJ0cmVlOmZ1bmN0aW9uKHQsaSl7VjAuZmx1c2hDdXN0b21T''@;'; + put 'put ''dHlsZXMoKSxWMC5zdHlsZVN1YnRyZWUodCxpKX0sc3R5bGVFbGVtZW50OmZ1bmN0aW9uKHQpe1YwLmZsdXNoQ3VzdG9tU3R5bGVzKCksVjAuc3R5bGVFbGVtZW50KHQpfSxzdHlsZURvY3VtZW50OmZ1bmN0aW9uKHQpe1YwLmZsdXNoQ3VzdG9tU3R5bGVzKCksVjAuc3R5bGVEb2N1bWVudCh0''@;'; + put 'put ''KX0sZmx1c2hDdXN0b21TdHlsZXM6ZnVuY3Rpb24oKXtWMC5mbHVzaEN1c3RvbVN0eWxlcygpfSxnZXRDb21wdXRlZFN0eWxlVmFsdWU6ZnVuY3Rpb24odCxpKXtyZXR1cm4gVjAuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKHQsaSl9LG5hdGl2ZUNzczpDMCxuYXRpdmVTaGFkb3c6aDAsY3NzQnVp''@;'; + put 'put ''bGQ6VnQsZGlzYWJsZVJ1bnRpbWU6TDJ9LGplJiYod2luZG93LlNoYWR5Q1NTLkFwcGx5U2hpbT1qZSksUmUmJih3aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2U9UmUpLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGkoTTEpe3JldHVybiIiPT1NMSYmKG0uY2FsbCh0aGlzKSx0aGlz''@;'; + put 'put ''Lm09ITApLE0xLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gbihNMSl7dmFyICQxPU0xLmNoYXJDb2RlQXQoMCk7cmV0dXJuIDMyPCQxJiYxMjc+JDEmJi0xPT1bMzQsMzUsNjAsNjIsNjMsOTZdLmluZGV4T2YoJDEpP00xOmVuY29kZVVSSUNvbXBvbmVudChNMSl9ZnVuY3Rpb24gcyhNMSl7dmFy''@;'; + put 'put ''ICQxPU0xLmNoYXJDb2RlQXQoMCk7cmV0dXJuIDMyPCQxJiYxMjc+JDEmJi0xPT1bMzQsMzUsNjAsNjIsOTZdLmluZGV4T2YoJDEpP00xOmVuY29kZVVSSUNvbXBvbmVudChNMSl9ZnVuY3Rpb24gZChNMSwkMSx6MSl7ZnVuY3Rpb24gbzAoSTApe2UyLnB1c2goSTApfXZhciBrMT0kMXx8InNj''@;'; + put 'put ''aGVtZSBzdGFydCIsbTA9MCxUMT0iIix0Mj0hMSxGMD0hMSxlMj1bXTt0OmZvcig7KG51bGwhPU0xW20wLTFdfHwwPT1tMCkmJiF0aGlzLm07KXt2YXIgdDE9TTFbbTBdO3N3aXRjaChrMSl7Y2FzZSJzY2hlbWUgc3RhcnQiOmlmKCF0MXx8IUgxLnRlc3QodDEpKXtpZigkMSl7bzAoIkludmFs''@;'; + put 'put ''aWQgc2NoZW1lLiIpO2JyZWFrIHR9VDE9IiIsazE9Im5vIHNjaGVtZSI7Y29udGludWV9VDErPXQxLnRvTG93ZXJDYXNlKCksazE9InNjaGVtZSI7YnJlYWs7Y2FzZSJzY2hlbWUiOmlmKHQxJiZRMS50ZXN0KHQxKSlUMSs9dDEudG9Mb3dlckNhc2UoKTtlbHNle2lmKCI6IiE9dDEpe2lmKCQx''@;'; + put 'put ''KXtudWxsIT10MSYmbzAoIkNvZGUgcG9pbnQgbm90IGFsbG93ZWQgaW4gc2NoZW1lOiAiK3QxKTticmVhayB0fVQxPSIiLG0wPTAsazE9Im5vIHNjaGVtZSI7Y29udGludWV9aWYodGhpcy5sPVQxLFQxPSIiLCQxKWJyZWFrIHQ7dm9pZCAwIT09VVt0aGlzLmxdJiYodGhpcy5HPSEwKSxrMT0i''@;'; + put 'put ''ZmlsZSI9PXRoaXMubD8icmVsYXRpdmUiOnRoaXMuRyYmejEmJnoxLmw9PXRoaXMubD8icmVsYXRpdmUgb3IgYXV0aG9yaXR5Ijp0aGlzLkc/ImF1dGhvcml0eSBmaXJzdCBzbGFzaCI6InNjaGVtZSBkYXRhIn1icmVhaztjYXNlInNjaGVtZSBkYXRhIjoiPyI9PXQxPyh0aGlzLkE9Ij8iLGsx''@;'; + put 'put ''PSJxdWVyeSIpOiIjIj09dDE/KHRoaXMuQz0iIyIsazE9ImZyYWdtZW50Iik6bnVsbCE9dDEmJiJcdCIhPXQxJiYiXG4iIT10MSYmIlxyIiE9dDEmJih0aGlzLnZhKz1uKHQxKSk7YnJlYWs7Y2FzZSJubyBzY2hlbWUiOmlmKHoxJiZ2b2lkIDAhPT1VW3oxLmxdKXtrMT0icmVsYXRpdmUiO2Nv''@;'; + put 'put ''bnRpbnVlfW8wKCJNaXNzaW5nIHNjaGVtZS4iKSxtLmNhbGwodGhpcyksdGhpcy5tPSEwO2JyZWFrO2Nhc2UicmVsYXRpdmUgb3IgYXV0aG9yaXR5IjppZigiLyIhPXQxfHwiLyIhPU0xW20wKzFdKXtvMCgiRXhwZWN0ZWQgLywgZ290OiAiK3QxKSxrMT0icmVsYXRpdmUiO2NvbnRpbnVlfWsx''@;'; + put 'put ''PSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiO2JyZWFrO2Nhc2UicmVsYXRpdmUiOmlmKHRoaXMuRz0hMCwiZmlsZSIhPXRoaXMubCYmKHRoaXMubD16MS5sKSxudWxsPT10MSl7dGhpcy5vPXoxLm8sdGhpcy52PXoxLnYsdGhpcy5zPXoxLnMuc2xpY2UoKSx0aGlzLkE9ejEuQSx0aGlzLkI9''@;'; + put 'put ''ejEuQix0aGlzLmo9ejEuajticmVhayB0fWlmKCIvIj09dDF8fCJcXCI9PXQxKSJcXCI9PXQxJiZvMCgiXFwgaXMgYW4gaW52YWxpZCBjb2RlIHBvaW50LiIpLGsxPSJyZWxhdGl2ZSBzbGFzaCI7ZWxzZSBpZigiPyI9PXQxKXRoaXMubz16MS5vLHRoaXMudj16MS52LHRoaXMucz16MS5zLnNs''@;'; + put 'put ''aWNlKCksdGhpcy5BPSI/Iix0aGlzLkI9ejEuQix0aGlzLmo9ejEuaixrMT0icXVlcnkiO2Vsc2V7aWYoIiMiIT10MSl7azE9TTFbbTArMV07dmFyIGwwPU0xW20wKzJdOygiZmlsZSIhPXRoaXMubHx8IUgxLnRlc3QodDEpfHwiOiIhPWsxJiYifCIhPWsxfHxudWxsIT1sMCYmIi8iIT1sMCYm''@;'; + put 'put ''IlxcIiE9bDAmJiI/IiE9bDAmJiIjIiE9bDApJiYodGhpcy5vPXoxLm8sdGhpcy52PXoxLnYsdGhpcy5CPXoxLkIsdGhpcy5qPXoxLmosdGhpcy5zPXoxLnMuc2xpY2UoKSx0aGlzLnMucG9wKCkpLGsxPSJyZWxhdGl2ZSBwYXRoIjtjb250aW51ZX10aGlzLm89ejEubyx0aGlzLnY9ejEudix0''@;'; + put 'put ''aGlzLnM9ejEucy5zbGljZSgpLHRoaXMuQT16MS5BLHRoaXMuQz0iIyIsdGhpcy5CPXoxLkIsdGhpcy5qPXoxLmosazE9ImZyYWdtZW50In1icmVhaztjYXNlInJlbGF0aXZlIHNsYXNoIjppZigiLyIhPXQxJiYiXFwiIT10MSl7ImZpbGUiIT10aGlzLmwmJih0aGlzLm89ejEubyx0aGlzLnY9''@;'; + put 'put ''ejEudix0aGlzLkI9ejEuQix0aGlzLmo9ejEuaiksazE9InJlbGF0aXZlIHBhdGgiO2NvbnRpbnVlfSJcXCI9PXQxJiZvMCgiXFwgaXMgYW4gaW52YWxpZCBjb2RlIHBvaW50LiIpLGsxPSJmaWxlIj09dGhpcy5sPyJmaWxlIGhvc3QiOiJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiO2JyZWFr''@;'; + put 'put ''O2Nhc2UiYXV0aG9yaXR5IGZpcnN0IHNsYXNoIjppZigiLyIhPXQxKXtvMCgiRXhwZWN0ZWQgJy8nLCBnb3Q6ICIrdDEpLGsxPSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiO2NvbnRpbnVlfWsxPSJhdXRob3JpdHkgc2Vjb25kIHNsYXNoIjticmVhaztjYXNlImF1dGhvcml0eSBzZWNvbmQg''@;'; + put 'put ''c2xhc2giOmlmKGsxPSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiLCIvIiE9dDEpe28wKCJFeHBlY3RlZCAnLycsIGdvdDogIit0MSk7Y29udGludWV9YnJlYWs7Y2FzZSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiOmlmKCIvIiE9dDEmJiJcXCIhPXQxKXtrMT0iYXV0aG9yaXR5Ijtjb250''@;'; + put 'put ''aW51ZX1vMCgiRXhwZWN0ZWQgYXV0aG9yaXR5LCBnb3Q6ICIrdDEpO2JyZWFrO2Nhc2UiYXV0aG9yaXR5IjppZigiQCI9PXQxKXtmb3IodDImJihvMCgiQCBhbHJlYWR5IHNlZW4uIiksVDErPSIlNDAiKSx0Mj0hMCx0MT0wO3QxPFQxLmxlbmd0aDt0MSsrKSJcdCI9PShsMD1UMVt0MV0pfHwi''@;'; + put 'put ''XG4iPT1sMHx8IlxyIj09bDA/bzAoIkludmFsaWQgd2hpdGVzcGFjZSBpbiBhdXRob3JpdHkuIik6IjoiPT1sMCYmbnVsbD09PXRoaXMuaj90aGlzLmo9IiI6KGwwPW4obDApLG51bGwhPT10aGlzLmo/dGhpcy5qKz1sMDp0aGlzLkIrPWwwKTtUMT0iIn1lbHNle2lmKG51bGw9PXQxfHwiLyI9''@;'; + put 'put ''PXQxfHwiXFwiPT10MXx8Ij8iPT10MXx8IiMiPT10MSl7bTAtPVQxLmxlbmd0aCxUMT0iIixrMT0iaG9zdCI7Y29udGludWV9VDErPXQxfWJyZWFrO2Nhc2UiZmlsZSBob3N0IjppZihudWxsPT10MXx8Ii8iPT10MXx8IlxcIj09dDF8fCI/Ij09dDF8fCIjIj09dDEpezIhPVQxLmxlbmd0aHx8''@;'; + put 'put ''IUgxLnRlc3QoVDFbMF0pfHwiOiIhPVQxWzFdJiYifCIhPVQxWzFdPygwIT1UMS5sZW5ndGgmJih0aGlzLm89aS5jYWxsKHRoaXMsVDEpLFQxPSIiKSxrMT0icmVsYXRpdmUgcGF0aCBzdGFydCIpOmsxPSJyZWxhdGl2ZSBwYXRoIjtjb250aW51ZX0iXHQiPT10MXx8IlxuIj09dDF8fCJcciI9''@;'; + put 'put ''PXQxP28wKCJJbnZhbGlkIHdoaXRlc3BhY2UgaW4gZmlsZSBob3N0LiIpOlQxKz10MTticmVhaztjYXNlImhvc3QiOmNhc2UiaG9zdG5hbWUiOmlmKCI6IiE9dDF8fEYwKXtpZihudWxsPT10MXx8Ii8iPT10MXx8IlxcIj09dDF8fCI/Ij09dDF8fCIjIj09dDEpe2lmKHRoaXMubz1pLmNhbGwo''@;'; + put 'put ''dGhpcyxUMSksVDE9IiIsazE9InJlbGF0aXZlIHBhdGggc3RhcnQiLCQxKWJyZWFrIHQ7Y29udGludWV9Ilx0IiE9dDEmJiJcbiIhPXQxJiYiXHIiIT10MT8oIlsiPT10MT9GMD0hMDoiXSI9PXQxJiYoRjA9ITEpLFQxKz10MSk6bzAoIkludmFsaWQgY29kZSBwb2ludCBpbiBob3N0L2hvc3Ru''@;'; + put 'put ''YW1lOiAiK3QxKX1lbHNlIGlmKHRoaXMubz1pLmNhbGwodGhpcyxUMSksVDE9IiIsazE9InBvcnQiLCJob3N0bmFtZSI9PSQxKWJyZWFrIHQ7YnJlYWs7Y2FzZSJwb3J0IjppZigvWzAtOV0vLnRlc3QodDEpKVQxKz10MTtlbHNle2lmKG51bGw9PXQxfHwiLyI9PXQxfHwiXFwiPT10MXx8Ij8i''@;'; + put 'put ''PT10MXx8IiMiPT10MXx8JDEpe2lmKCIiIT1UMSYmKChUMT1wYXJzZUludChUMSwxMCkpIT1VW3RoaXMubF0mJih0aGlzLnY9VDErIiIpLFQxPSIiKSwkMSlicmVhayB0O2sxPSJyZWxhdGl2ZSBwYXRoIHN0YXJ0Ijtjb250aW51ZX0iXHQiPT10MXx8IlxuIj09dDF8fCJcciI9PXQxP28wKCJJ''@;'; + put 'put ''bnZhbGlkIGNvZGUgcG9pbnQgaW4gcG9ydDogIit0MSk6KG0uY2FsbCh0aGlzKSx0aGlzLm09ITApfWJyZWFrO2Nhc2UicmVsYXRpdmUgcGF0aCBzdGFydCI6aWYoIlxcIj09dDEmJm8wKCInXFwnIG5vdCBhbGxvd2VkIGluIHBhdGguIiksazE9InJlbGF0aXZlIHBhdGgiLCIvIiE9dDEmJiJc''@;'; + put 'put ''XCIhPXQxKWNvbnRpbnVlO2JyZWFrO2Nhc2UicmVsYXRpdmUgcGF0aCI6bnVsbCE9dDEmJiIvIiE9dDEmJiJcXCIhPXQxJiYoJDF8fCI/IiE9dDEmJiIjIiE9dDEpPyJcdCIhPXQxJiYiXG4iIT10MSYmIlxyIiE9dDEmJihUMSs9bih0MSkpOigiXFwiPT10MSYmbzAoIlxcIG5vdCBhbGxvd2Vk''@;'; + put 'put ''IGluIHJlbGF0aXZlIHBhdGguIiksKGwwPUtbVDEudG9Mb3dlckNhc2UoKV0pJiYoVDE9bDApLCIuLiI9PVQxPyh0aGlzLnMucG9wKCksIi8iIT10MSYmIlxcIiE9dDEmJnRoaXMucy5wdXNoKCIiKSk6Ii4iPT1UMSYmIi8iIT10MSYmIlxcIiE9dDE/dGhpcy5zLnB1c2goIiIpOiIuIiE9VDEm''@;'; + put 'put ''JigiZmlsZSI9PXRoaXMubCYmMD09dGhpcy5zLmxlbmd0aCYmMj09VDEubGVuZ3RoJiZIMS50ZXN0KFQxWzBdKSYmInwiPT1UMVsxXSYmKFQxPVQxWzBdKyI6IiksdGhpcy5zLnB1c2goVDEpKSxUMT0iIiwiPyI9PXQxPyh0aGlzLkE9Ij8iLGsxPSJxdWVyeSIpOiIjIj09dDEmJih0aGlzLkM9''@;'; + put 'put ''IiMiLGsxPSJmcmFnbWVudCIpKTticmVhaztjYXNlInF1ZXJ5IjokMXx8IiMiIT10MT9udWxsIT10MSYmIlx0IiE9dDEmJiJcbiIhPXQxJiYiXHIiIT10MSYmKHRoaXMuQSs9cyh0MSkpOih0aGlzLkM9IiMiLGsxPSJmcmFnbWVudCIpO2JyZWFrO2Nhc2UiZnJhZ21lbnQiOm51bGwhPXQxJiYi''@;'; + put 'put ''XHQiIT10MSYmIlxuIiE9dDEmJiJcciIhPXQxJiYodGhpcy5DKz10MSl9bTArK319ZnVuY3Rpb24gbSgpe3RoaXMuQj10aGlzLnZhPXRoaXMubD0iIix0aGlzLmo9bnVsbCx0aGlzLnY9dGhpcy5vPSIiLHRoaXMucz1bXSx0aGlzLkM9dGhpcy5BPSIiLHRoaXMuRz10aGlzLm09ITF9ZnVuY3Rp''@;'; + put 'put ''b24gTChNMSwkMSl7dm9pZCAwPT09JDF8fCQxIGluc3RhbmNlb2YgTHx8KCQxPW5ldyBMKFN0cmluZygkMSkpKSx0aGlzLmc9TTEsbS5jYWxsKHRoaXMpLGQuY2FsbCh0aGlzLHRoaXMuZy5yZXBsYWNlKC9eWyBcdFxyXG5cZl0rfFsgXHRcclxuXGZdKyQvZywiIiksbnVsbCwkMSl9dmFyIEY9''@;'; + put 'put ''ITE7dHJ5e3ZhciBHPW5ldyBVUkwoImIiLCJodHRwOi8vYSIpO0cucGF0aG5hbWU9ImMlMjBkIixGPSJodHRwOi8vYS9jJTIwZCI9PT1HLmhyZWZ9Y2F0Y2goTTEpe31pZighRil7dmFyIFU9T2JqZWN0LmNyZWF0ZShudWxsKTtVLmZ0cD0yMSxVLmZpbGU9MCxVLmdvcGhlcj03MCxVLmh0dHA9''@;'; + put 'put ''ODAsVS5odHRwcz00NDMsVS53cz04MCxVLndzcz00NDM7dmFyIEs9T2JqZWN0LmNyZWF0ZShudWxsKTtLWyIlMmUiXT0iLiIsS1siLiUyZSJdPSIuLiIsS1siJTJlLiJdPSIuLiIsS1siJTJlJTJlIl09Ii4uIjt2YXIgSDE9L1thLXpBLVpdLyxRMT0vW2EtekEtWjAtOStcLS5dLztMLnByb3Rv''@;'; + put 'put ''dHlwZT17dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ocmVmfSxnZXQgaHJlZigpe2lmKHRoaXMubSlyZXR1cm4gdGhpcy5nO3ZhciBNMT0iIjtyZXR1cm4oIiIhPXRoaXMuQnx8bnVsbCE9dGhpcy5qKSYmKE0xPXRoaXMuQisobnVsbCE9dGhpcy5qPyI6Iit0aGlzLmo6IiIpKyJA''@;'; + put 'put ''IiksdGhpcy5wcm90b2NvbCsodGhpcy5HPyIvLyIrTTErdGhpcy5ob3N0OiIiKSt0aGlzLnBhdGhuYW1lK3RoaXMuQSt0aGlzLkN9LHNldCBocmVmKE0xKXttLmNhbGwodGhpcyksZC5jYWxsKHRoaXMsTTEpfSxnZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5sKyI6In0sc2V0IHByb3RvY29s''@;'; + put 'put ''KE0xKXt0aGlzLm18fGQuY2FsbCh0aGlzLE0xKyI6Iiwic2NoZW1lIHN0YXJ0Iil9LGdldCBob3N0KCl7cmV0dXJuIHRoaXMubT8iIjp0aGlzLnY/dGhpcy5vKyI6Iit0aGlzLnY6dGhpcy5vfSxzZXQgaG9zdChNMSl7IXRoaXMubSYmdGhpcy5HJiZkLmNhbGwodGhpcyxNMSwiaG9zdCIpfSxn''@;'; + put 'put ''ZXQgaG9zdG5hbWUoKXtyZXR1cm4gdGhpcy5vfSxzZXQgaG9zdG5hbWUoTTEpeyF0aGlzLm0mJnRoaXMuRyYmZC5jYWxsKHRoaXMsTTEsImhvc3RuYW1lIil9LGdldCBwb3J0KCl7cmV0dXJuIHRoaXMudn0sc2V0IHBvcnQoTTEpeyF0aGlzLm0mJnRoaXMuRyYmZC5jYWxsKHRoaXMsTTEsInBv''@;'; + put 'put ''cnQiKX0sZ2V0IHBhdGhuYW1lKCl7cmV0dXJuIHRoaXMubT8iIjp0aGlzLkc/Ii8iK3RoaXMucy5qb2luKCIvIik6dGhpcy52YX0sc2V0IHBhdGhuYW1lKE0xKXshdGhpcy5tJiZ0aGlzLkcmJih0aGlzLnM9W10sZC5jYWxsKHRoaXMsTTEsInJlbGF0aXZlIHBhdGggc3RhcnQiKSl9LGdldCBz''@;'; + put 'put ''ZWFyY2goKXtyZXR1cm4gdGhpcy5tfHwhdGhpcy5BfHwiPyI9PXRoaXMuQT8iIjp0aGlzLkF9LHNldCBzZWFyY2goTTEpeyF0aGlzLm0mJnRoaXMuRyYmKHRoaXMuQT0iPyIsIj8iPT1NMVswXSYmKE0xPU0xLnNsaWNlKDEpKSxkLmNhbGwodGhpcyxNMSwicXVlcnkiKSl9LGdldCBoYXNoKCl7''@;'; + put 'put ''cmV0dXJuIHRoaXMubXx8IXRoaXMuQ3x8IiMiPT10aGlzLkM/IiI6dGhpcy5DfSxzZXQgaGFzaChNMSl7dGhpcy5tfHwoTTE/KHRoaXMuQz0iIyIsIiMiPT1NMVswXSYmKE0xPU0xLnNsaWNlKDEpKSxkLmNhbGwodGhpcyxNMSwiZnJhZ21lbnQiKSk6dGhpcy5DPSIiKX0sZ2V0IG9yaWdpbigp''@;'; + put 'put ''e3ZhciBNMTtpZih0aGlzLm18fCF0aGlzLmwpcmV0dXJuIiI7c3dpdGNoKHRoaXMubCl7Y2FzZSJkYXRhIjpjYXNlImZpbGUiOmNhc2UiamF2YXNjcmlwdCI6Y2FzZSJtYWlsdG8iOnJldHVybiJudWxsIn1yZXR1cm4oTTE9dGhpcy5ob3N0KT90aGlzLmwrIjovLyIrTTE6IiJ9fTt2YXIgajE9''@;'; + put 'put ''dC5VUkw7ajEmJihMLmNyZWF0ZU9iamVjdFVSTD1mdW5jdGlvbihNMSl7cmV0dXJuIGoxLmNyZWF0ZU9iamVjdFVSTC5hcHBseShqMSxhcmd1bWVudHMpfSxMLnJldm9rZU9iamVjdFVSTD1mdW5jdGlvbihNMSl7ajEucmV2b2tlT2JqZWN0VVJMKE0xKX0pLHQuVVJMPUx9fSh3aW5kb3cpO3Zh''@;'; + put 'put ''ciBuYT13aW5kb3cuY3VzdG9tRWxlbWVudHMsY2E9ITEsemU9bnVsbDtmdW5jdGlvbiBFdCgpe3dpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50LmJvb3RzdHJhcCYmd2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQuYm9vdHN0cmFwKHdpbmRvdy5kb2N1bWVudCksemUmJnplKCksY2E9ITAsd2lu''@;'; + put 'put ''ZG93LldlYkNvbXBvbmVudHMucmVhZHk9ITAsZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIldlYkNvbXBvbmVudHNSZWFkeSIse2J1YmJsZXM6ITB9KSl9bmEucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjayYmbmEucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjayhmdW5j''@;'; + put 'put ''dGlvbih0KXt6ZT10LGNhJiZ0KCl9KSwiY29tcGxldGUiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT8od2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLEV0KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRM''@;'; + put 'put ''aXN0ZW5lcigibG9hZCIsRXQpLEV0KCl9KSk6RXQoKX0uY2FsbCh0aGlzKSxmdW5jdGlvbihYLEYxKXtpZigib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlKW1vZHVsZS5leHBvcnRzPUYxKCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5l''@;'; + put 'put ''JiZkZWZpbmUuYW1kKWRlZmluZShbXSxGMSk7ZWxzZXt2YXIgayxBPUYxKCk7Zm9yKGsgaW4gQSkoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHM6WClba109QVtrXX19KHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gRjE9eyIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtYXBp''@;'; + put 'put ''LnRzIjpmdW5jdGlvbihBLGUsYyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkNsYXJpdHlJY29uc0FwaT12b2lkIDA7dmFyIHI9YygiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc2hhcGUtdGVtcGxhdGUtb2JzZXJ2''@;'; + put 'put ''ZXIudHMiKSxhPXt9O2Z1bmN0aW9uIG8oKXt9T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sImluc3RhbmNlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uc2luZ2xlSW5zdGFuY2U9by5zaW5nbGVJbnN0YW5jZT9vLnNpbmdsZUluc3RhbmNlOm5ldyBvfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3Vy''@;'; + put 'put ''YWJsZTohMH0pLG8ucHJvdG90eXBlLnZhbGlkYXRlTmFtZT1mdW5jdGlvbihoKXtpZigwPT09aC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJTaGFwZSBuYW1lIG9yIGFsaWFzIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nISIpO2lmKC9ccy8udGVzdChoKSl0aHJvdyBuZXcgRXJyb3IoIlNo''@;'; + put 'put ''YXBlIG5hbWUgb3IgYWxpYXMgbXVzdCBub3QgY29udGFpbiBhbnkgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzISIpO3JldHVybiEwfSxvLnByb3RvdHlwZS5ub3JtYWxpemVTaGFwZU5hbWU9ZnVuY3Rpb24oaCl7cmV0dXJuIGgudG9Mb3dlckNhc2UoKX0sby5wcm90b3R5cGUuc2V0SWNvblRlbXBs''@;'; + put 'put ''YXRlPWZ1bmN0aW9uKGgsZil7Zj1mLnRyaW0oKSx0aGlzLnZhbGlkYXRlTmFtZShoKSYmKGg9dGhpcy5ub3JtYWxpemVTaGFwZU5hbWUoaCksYVtoXSYmZGVsZXRlIGFbaF0sYVtoXT1mLHIuU2hhcGVUZW1wbGF0ZU9ic2VydmVyLmluc3RhbmNlLmVtaXRDaGFuZ2VzKGgsZikpfSxvLnByb3Rv''@;'; + put 'put ''dHlwZS5zZXRJY29uQWxpYXNlcz1mdW5jdGlvbihoLGYsZyl7Zm9yKHZhciB1PTAscD1nO3U8cC5sZW5ndGg7dSsrKXt2YXIgdj1wW3VdO3RoaXMudmFsaWRhdGVOYW1lKHYpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaCx2LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaFtmXX0sZW51bWVyYWJs''@;'; + put 'put ''ZTohMCxjb25maWd1cmFibGU6ITB9KX19LG8ucHJvdG90eXBlLmFkZD1mdW5jdGlvbihoKXtpZigib2JqZWN0IiE9dHlwZW9mIGgpdGhyb3cgbmV3IEVycm9yKCdUaGUgYXJndW1lbnQgbXVzdCBiZSBhbiBvYmplY3QgbGl0ZXJhbCBwYXNzZWQgaW4gdGhlIGZvbGxvd2luZyBwYXR0ZXJuOlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIHsgInNoYXBlLW5hbWUiOiAic2hhcGUtdGVtcGxhdGUiIH0nKTtmb3IodmFyIGYgaW4gaCloLmhhc093blByb3BlcnR5KGYpJiZ0aGlzLnNldEljb25UZW1wbGF0ZShmLGhbZl0pfSxvLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oaCl7cmV0dXJuISFhW3RoaXMubm9y''@;'; + put 'put ''bWFsaXplU2hhcGVOYW1lKGgpXX0sby5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGgpe2lmKCFoKXJldHVybiBhO2lmKCJzdHJpbmciIT10eXBlb2YgaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJPbmx5IHN0cmluZyBhcmd1bWVudCBpcyBhbGxvd2VkIGluIHRoaXMgbWV0aG9kLiIpO3JldHVybiBh''@;'; + put 'put ''W3RoaXMubm9ybWFsaXplU2hhcGVOYW1lKGgpXX0sby5wcm90b3R5cGUuYWxpYXM9ZnVuY3Rpb24oaCl7aWYoIm9iamVjdCIhPXR5cGVvZiBoKXRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0IGxpdGVyYWwgcGFzc2VkIGluIHRoZSBmb2xsb3dpbmcgcGF0''@;'; + put 'put ''dGVybjpcbiAgICAgICAgICAgICAgICB7ICJzaGFwZS1uYW1lIjogWyJhbGlhcy1uYW1lIiwgLi4uXSB9Jyk7Zm9yKHZhciBmIGluIGgpaWYoaC5oYXNPd25Qcm9wZXJ0eShmKSl7aWYoIWEuaGFzT3duUHJvcGVydHkoZikpdGhyb3cgbmV3IEVycm9yKCdBbiBpY29uICInK2YrIlwiIHlvdSBh''@;'; + put 'put ''cmUgdHJ5aW5nIHRvIHNldCBhbGlhc2VzIHRvIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIENsYXJpdHkgSWNvbnMgc2V0cyEiKTt0aGlzLnNldEljb25BbGlhc2VzKGEsZixoW2ZdKX19LGUuQ2xhcml0eUljb25zQXBpPWM9b30sIi4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1lbGVtZW50''@;'; + put 'put ''LnRzIjpmdW5jdGlvbihBLGUsbCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkNsYXJpdHlJY29uRWxlbWVudD12b2lkIDA7dmFyIHI9bCgiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWFwaS50cyIpLGE9bCgi''@;'; + put 'put ''Li9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc2hhcGUtdGVtcGxhdGUtb2JzZXJ2ZXIudHMiKSxjPTAsbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7by5jbGFzc05hbWU9ImlzLW9mZi1zY3JlZW4iO3ZhciBoPWZ1bmN0aW9uKCl7cmV0dXJuIEhUTUxFbGVtZW50LmFwcGx5KHRo''@;'; + put 'put ''aXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gZigpe3ZhciBnPWguYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBnLmNsckljb25VbmlxSWQ9Il9jbHJfaWNvbl8iK2MsYysrLGd9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiYoaD1mdW5jdGlvbigpe3JldHVybiBSZWZsZWN0LmNvbnN0cnVj''@;'; + put 'put ''dChIVE1MRWxlbWVudCxhcmd1bWVudHMsdGhpcy5jb25zdHJ1Y3Rvcil9KSwoZS5DbGFyaXR5SWNvbkVsZW1lbnQ9Zikub2JzZXJ2ZWRBdHRyaWJ1dGVzPVsic2hhcGUiLCJzaXplIiwidGl0bGUiXSwoKGYucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSFRNTEVsZW1lbnQucHJvdG90eXBlLHtj''@;'; + put 'put ''b25zdHJ1Y3Rvcjp7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9fSkpLmNvbnN0cnVjdG9yPWYpLnByb3RvdHlwZS5fYXBwZW5kQ3VzdG9tVGl0bGU9ZnVuY3Rpb24oKXt2YXIgZz1vLmNsb25lTm9kZSghMSk7Zy5pZD10aGlzLmNsckljb25VbmlxSWQsZy50ZXh0Q29udGVu''@;'; + put 'put ''dD10aGlzLmN1cnJlbnRUaXRsZUF0dHJWYWwsdGhpcy5hcHBlbmRDaGlsZChnKX0sZi5wcm90b3R5cGUuX3NldEljb25TaXplPWZ1bmN0aW9uKGcpeyFOdW1iZXIoZyl8fE51bWJlcihnKTwwPyh0aGlzLnN0eWxlLndpZHRoPW51bGwsdGhpcy5zdHlsZS5oZWlnaHQ9bnVsbCk6KHRoaXMuc3R5''@;'; + put 'put ''bGUud2lkdGg9ZysicHgiLHRoaXMuc3R5bGUuaGVpZ2h0PWcrInB4Iil9LGYucHJvdG90eXBlLl9ub3JtYWxpemVTaGFwZT1mdW5jdGlvbihnKXtyZXR1cm4gZy5zcGxpdCgvXHMvKVswXS50b0xvd2VyQ2FzZSgpfSxmLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbigpe3Zh''@;'; + put 'put ''ciBnLHU9dGhpcztpZih0aGlzLmdldEF0dHJpYnV0ZSgicm9sZSIpfHx0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsIm5vbmUiKSx0aGlzLmhhc0F0dHJpYnV0ZSgic2l6ZSIpJiYoZz10aGlzLmdldEF0dHJpYnV0ZSgic2l6ZSIpLHRoaXMuY3VycmVudFNpemVBdHRyVmFsIT09ZyYmKHRoaXMu''@;'; + put 'put ''Y3VycmVudFNpemVBdHRyVmFsPWcsdGhpcy5fc2V0SWNvblNpemUoZykpKSx0aGlzLmhhc0F0dHJpYnV0ZSgic2hhcGUiKSl7dmFyIHA9dGhpcy5fbm9ybWFsaXplU2hhcGUodGhpcy5nZXRBdHRyaWJ1dGUoInNoYXBlIikpO2lmKHRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb249YS5T''@;'; + put 'put ''aGFwZVRlbXBsYXRlT2JzZXJ2ZXIuaW5zdGFuY2Uuc3Vic2NyaWJlVG8ocCxmdW5jdGlvbih2KXt1Ll9pbmplY3RUZW1wbGF0ZSh2KX0pLHRoaXMuY3VycmVudFNoYXBlQXR0clZhbD1wLCFyLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5oYXModGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKSly''@;'; + put 'put ''ZXR1cm4gdm9pZCB0aGlzLl9pbmplY3RFcnJvclRlbXBsYXRlKCk7aWYoKHA9ci5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCkpPT09dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZSlyZXR1cm47dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZT1w''@;'; + put 'put ''fXRoaXMuaGFzQXR0cmlidXRlKCJ0aXRsZSIpJiYocD10aGlzLmdldEF0dHJpYnV0ZSgidGl0bGUiKSx0aGlzLmN1cnJlbnRUaXRsZUF0dHJWYWwhPT1wJiYodGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsPXApLCF0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpfHx0aGlzLl9pbmplY3RUZW1wbGF0''@;'; + put 'put ''ZSgpfSxmLnByb3RvdHlwZS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s9ZnVuY3Rpb24oZyx1LHApe3ZhciB2PXRoaXM7aWYoInNpemUiPT09ZyYmdGhpcy5fc2V0SWNvblNpemUocCksInNoYXBlIj09PWcpe2lmKHRoaXMuY3VycmVudFNoYXBlQXR0clZhbD10aGlzLl9ub3JtYWxpemVTaGFw''@;'; + put 'put ''ZShwKSx0aGlzLl9zaGFwZVRlbXBsYXRlU3Vic2NyaXB0aW9uJiYodGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbigpLHRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb249YS5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXIuaW5zdGFuY2Uuc3Vic2NyaWJlVG8odGhpcy5jdXJyZW50U2hh''@;'; + put 'put ''cGVBdHRyVmFsLGZ1bmN0aW9uKEgpe3YuX2luamVjdFRlbXBsYXRlKEgpfSkpLCFyLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5oYXModGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKSlyZXR1cm4gdm9pZCB0aGlzLl9pbmplY3RFcnJvclRlbXBsYXRlKCk7dGhpcy5jdXJyZW50U2hhcGVUZW1w''@;'; + put 'put ''bGF0ZT1yLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5nZXQodGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKX0idGl0bGUiPT09ZyYmKHRoaXMuY3VycmVudFRpdGxlQXR0clZhbD1wLCF0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpfHx0aGlzLl9pbmplY3RUZW1wbGF0ZSgpfSxmLnByb3RvdHlw''@;'; + put 'put ''ZS5kaXNjb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbigpe3RoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb24mJnRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb24oKX0sZi5wcm90b3R5cGUuX3NldEFyaWFMYWJlbGxlZEJ5PWZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5nZXRBdHRyaWJ1''@;'; + put 'put ''dGUoImFyaWEtbGFiZWxsZWRieSIpLHU9KHU9dGhpcy5xdWVyeVNlbGVjdG9yKCJzdmciKSl8fHRoaXM7Zz9nJiZnLmluZGV4T2YodGhpcy5jbHJJY29uVW5pcUlkKTwwJiZ1LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5IixnKyIgIit0aGlzLmNsckljb25VbmlxSWQpOnUuc2V0QXR0''@;'; + put 'put ''cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLHRoaXMuY2xySWNvblVuaXFJZCl9LGYucHJvdG90eXBlLl9pbmplY3RUZW1wbGF0ZT1mdW5jdGlvbihnKXtnJiZnIT09dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZSYmKHRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGU9ZyksdGhpcy5pbm5lckhUTUw9''@;'; + put 'put ''dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZSx0aGlzLmN1cnJlbnRUaXRsZUF0dHJWYWwmJih0aGlzLl9zZXRBcmlhTGFiZWxsZWRCeSgpLHRoaXMuX2FwcGVuZEN1c3RvbVRpdGxlKCkpfSxmLnByb3RvdHlwZS5faW5qZWN0RXJyb3JUZW1wbGF0ZT1mdW5jdGlvbigpe3RoaXMuY3VycmVudFNo''@;'; + put 'put ''YXBlVGVtcGxhdGU9ci5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KCJlcnJvciIpLHRoaXMuX2luamVjdFRlbXBsYXRlKCl9fSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLXNmeC50cyI6ZnVuY3Rpb24oQSxlLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVy''@;'; + put 'put ''dHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5DbGFyaXR5SWNvbnM9dm9pZCAwO3ZhciByPWwoIi4vcHJvamVjdHMvaWNvbnMvc3JjL2luZGV4LnRzIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIkNsYXJpdHlJY29ucyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0''@;'; + put 'put ''dXJuIHIuQ2xhcml0eUljb25zfX0pLGw9bCgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2FsbC1zaGFwZXMudHMiKSxyLkNsYXJpdHlJY29ucy5hZGQobC5BbGxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvaW5kZXgudHMiOmZ1bmN0aW9uKEEsZSxhKXsidXNlIHN0cmljdCI7''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQ2xhcml0eUljb25zPXZvaWQgMDt2YXIgYz1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtYXBpLnRzIikscj1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtZWxlbWVudC50''@;'; + put 'put ''cyIpO2E9YSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvcmUtc2hhcGVzLnRzIiksKGUuQ2xhcml0eUljb25zPWM9Yy5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UpLmFkZChhLkNvcmVTaGFwZXMpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93Lmhhc093blByb3Bl''@;'; + put 'put ''cnR5KCJDbGFyaXR5SWNvbnMiKXx8KHdpbmRvdy5DbGFyaXR5SWNvbnM9YyksY3VzdG9tRWxlbWVudHMuZ2V0KCJjbHItaWNvbiIpfHxjdXN0b21FbGVtZW50cy5kZWZpbmUoImNsci1pY29uIixyLkNsYXJpdHlJY29uRWxlbWVudCkpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2Fs''@;'; + put 'put ''bC1zaGFwZXMudHMiOmZ1bmN0aW9uKEEsZSx1KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQWxsU2hhcGVzPXZvaWQgMDt2YXIgcj11KCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY2hhcnQtc2hhcGVzLnRzIiks''@;'; + put 'put ''YT11KCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29tbWVyY2Utc2hhcGVzLnRzIiksYz11KCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxvPXUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9lc3NlbnRpYWwtc2hhcGVzLnRzIiksaD11KCIu''@;'; + put 'put ''L3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvbWVkaWEtc2hhcGVzLnRzIiksZj11KCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvc29jaWFsLXNoYXBlcy50cyIpLGc9dSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RlY2hub2xvZ3ktc2hhcGVzLnRzIikscD11KCIuL3Byb2pl''@;'; + put 'put ''Y3RzL2ljb25zL3NyYy9zaGFwZXMvdGV4dC1lZGl0LXNoYXBlcy50cyIpLHY9KHU9dSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RyYXZlbC1zaGFwZXMudHMiKSxwPVtjLkNvcmVTaGFwZXMsYS5Db21tZXJjZVNoYXBlcyxvLkVzc2VudGlhbFNoYXBlcyxoLk1lZGlhU2hhcGVzLGYu''@;'; + put 'put ''U29jaWFsU2hhcGVzLGcuVGVjaG5vbG9neVNoYXBlcyx1LlRyYXZlbFNoYXBlcyxyLkNoYXJ0U2hhcGVzLHAuVGV4dEVkaXRTaGFwZXNdLHt9KTtlLkFsbFNoYXBlcz12O2Zvcih2YXIgSD0wLEM9cDtIPEMubGVuZ3RoO0grKyl7dmFyIFYsUz1DW0hdO2ZvcihWIGluIFMpUy5oYXNPd25Qcm9w''@;'; + put 'put ''ZXJ0eShWKSYmKHZbVl09U1tWXSl9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKHYpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NoYXJ0LXNoYXBlcy50cyI6ZnVu''@;'; + put 'put ''Y3Rpb24oQSxlLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5DaGFydFNoYXBlcz1lLkNsclNoYXBlQmVsbEN1cnZlPWUuQ2xyU2hhcGVUaWNrQ2hhcnQ9ZS5DbHJTaGFwZVNjYXR0ZXJQbG90PWUuQ2xyU2hhcGVQaWVD''@;'; + put 'put ''aGFydD1lLkNsclNoYXBlTGluZUNoYXJ0PWUuQ2xyU2hhcGVIZWF0TWFwPWUuQ2xyU2hhcGVHcmlkQ2hhcnQ9ZS5DbHJTaGFwZUN1cnZlQ2hhcnQ9ZS5DbHJTaGFwZUNsb3VkQ2hhcnQ9ZS5DbHJTaGFwZUJ1YmJsZUNoYXJ0PWUuQ2xyU2hhcGVCb3hQbG90PWUuQ2xyU2hhcGVCYXJDaGFydD1l''@;'; + put 'put ''LkNsclNoYXBlQXhpc0NoYXJ0PXZvaWQgMDt2YXIgcj1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpO2E9YSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxlLkNsclNoYXBlQXhpc0NoYXJ0PSgwLGEu''@;'; + put 'put ''Y2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1''@;'; + put 'put ''IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5''@;'; + put 'put ''IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIEwgNi4wMDcg''@;'; + put 'put ''MjYuNzMxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1''@;'; + put 'put ''IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2IDM0IDcgWiBNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAx''@;'; + put 'put ''IEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkg''@;'; + put 'put ''TCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAz''@;'; + put 'put ''MSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gNi4wMDcgMjYuNzMxIEwgMjcuNzMg''@;'; + put 'put ''MjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAuNjUgNiAx''@;'; + put 'put ''MS4wMSBMIDYuMDA3IDI2LjczMSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAy''@;'; + put 'put ''NS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQu''@;'; + put 'put ''NzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''Mi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAy''@;'; + put 'put ''Ljg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDgu''@;'; + put 'put ''MDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIEwgNi4wMDcgMjYuNzMxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0g''@;'; + put 'put ''MjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0''@;'; + put 'put ''Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQg''@;'; + put 'put ''MTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0''@;'; + put 'put ''Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''Mi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAz''@;'; + put 'put ''NC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz4nKSxlLkNsclNoYXBlQmFyQ2hhcnQ9''@;'; + put 'put ''KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsMjlWN0gzMlYyOVoiPjwv''@;'; + put 'put ''cGF0aD5cbiAgPHBhdGggZD0iTSA3IDEwIEwgMTMgMTAgTCAxMyAyNiBMIDExLjQgMjYgTCAxMS40IDExLjYgTCA4LjYgMTEuNiBMIDguNiAyNiBMIDcgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxOSBM''@;'; + put 'put ''IDIxIDE5IEwgMjEgMjYgTCAxOS40IDI2IEwgMTkuNCAyMC42IEwgMTYuNiAyMC42IEwgMTYuNiAyNiBMIDE1IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAy''@;'; + put 'put ''NiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAyMyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBD''@;'; + put 'put ''IDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTUgMzQgNyBaIE0gNyAyNiBMIDEzIDI2IEwgMTMgMTAgTCA3IDEwIFogTSAxNSAyNiBMIDIx''@;'; + put 'put ''IDI2IEwgMjEgMTkgTCAxNSAxOSBaIE0gMjMgMjYgTCAyOSAyNiBMIDI5IDE2IEwgMjMgMTYgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0''@;'; + put 'put ''IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAz''@;'; + put 'put ''NCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTAgTCAxMyAxMCBMIDEzIDI2IEwgMTEuNCAyNiBMIDExLjQgMTEuNiBMIDguNiAxMS42IEwgOC42IDI2IEwgNyAyNiBaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxOSBMIDIxIDE5IEwgMjEgMjYgTCAxOS40IDI2IEwgMTkuNCAyMC42IEwgMTYuNiAyMC42IEwgMTYuNiAyNiBMIDE1IDI2IFoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIzIDE2IEwgMjkgMTYgTCAyOSAyNiBMIDI3LjQgMjYgTCAyNy40IDE3LjYgTCAyNC42IDE3LjYgTCAyNC42IDI2IEwgMjMgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUg''@;'; + put 'put ''NSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNSAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gNyAyNiBMIDEzIDI2IEwgMTMgMTAgTCA3IDEwIFogTSAxNSAyNiBMIDIxIDI2IEwgMjEgMTkg''@;'; + put 'put ''TCAxNSAxOSBaIE0gMjMgMjYgTCAyOSAyNiBMIDI5IDE2IEwgMjMgMTYgWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1''@;'; + put 'put ''IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMCBMIDEzIDEwIEwgMTMgMjYgTCAxMS40IDI2IEwgMTEuNCAxMS42IEwgOC42IDExLjYgTCA4LjYgMjYgTCA3IDI2IFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTkgTCAyMSAxOSBMIDIxIDI2IEwgMTkuNCAyNiBMIDE5LjQgMjAuNiBMIDE2LjYgMjAuNiBMIDE2LjYgMjYgTCAxNSAyNiBaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIzIDE2IEwgMjkgMTYgTCAyOSAyNiBMIDI3LjQgMjYgTCAyNy40IDE3LjYgTCAyNC42IDE3LjYgTCAyNC42IDI2IEwgMjMgMjYgWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEu''@;'; + put 'put ''MTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44''@;'; + put 'put ''MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0''@;'; + put 'put ''ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2''@;'; + put 'put ''NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcgMTAgWiBNIDE1IDI2IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAyMyAyNiBMIDI5IDI2IEwgMjkgMTYgTCAyMyAxNiBa''@;'; + put 'put ''Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAx''@;'; + put 'put ''IEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMg''@;'; + put 'put ''MjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksZS5DbHJTaGFwZUJveFBsb3Q9KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdW''@;'; + put 'put ''MjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsMjlWN0gzMlYyOVoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwgMTcgMTIgTCAxNyAyNiBMIDcgMjYgTCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTguOCBMIDgu''@;'; + put 'put ''NiAxOC44IEwgOC42IDI0LjQgWiBNIDE1LjQgMTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAxNS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxOSAyNCBMIDI5IDI0IEwgMjkg''@;'; + put 'put ''MTAgTCAxOSAxMCBMIDE5IDI0IFogTSAyMC42IDExLjYgTCAyNy40IDExLjYgTCAyNy40IDE3LjIgTCAyMC42IDE3LjIgTCAyMC42IDExLjYgWiBNIDI3LjQgMjIuNCBMIDIwLjYgMjIuNCBMIDIwLjYgMTguOCBMIDI3LjQgMTguOCBMIDI3LjQgMjIuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBD''@;'; + put 'put ''IDIgNS44OTUgMi44OTUgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTUgMzQgNyBaIE0gNyAyNiBMIDE3IDI2IEwgMTcgMTIgTCA3IDEyIFogTSA5IDE5IEwgMTUgMTkgTCAxNSAyNCBMIDkgMjQgWiBNIDE1IDE3IEwgOSAxNyBMIDkgMTQgTCAxNSAxNCBaIE0gMTkgMjQgTCAyOSAy''@;'; + put 'put ''NCBMIDI5IDEwIEwgMTkgMTAgWiBNIDIxIDEyIEwgMjcgMTIgTCAyNyAxNyBMIDIxIDE3IFogTSAyNyAyMiBMIDIxIDIyIEwgMjEgMTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIg''@;'; + put 'put ''ZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44''@;'; + put 'put ''OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMiBMIDE3IDEyIEwgMTcgMjYgTCA3IDI2IEwgNyAxMiBaIE0gOC42IDI0''@;'; + put 'put ''LjQgTCAxNS40IDI0LjQgTCAxNS40IDE4LjggTCA4LjYgMTguOCBMIDguNiAyNC40IFogTSAxNS40IDEzLjYgTCA4LjYgMTMuNiBMIDguNiAxNy4yIEwgMTUuNCAxNy4yIEwgMTUuNCAxMy42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJh''@;'; + put 'put ''ZGdlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDEwIEwgMjMuNzI4IDEwIEMgMjQuMTA1IDEwLjU5NiAyNC41NjQgMTEuMTM1IDI1LjA5IDExLjYgTCAyMC42IDExLjYgTCAyMC42IDE3LjIgTCAyNy40IDE3LjIgTCAyNy40IDEyLjk4NyBDIDI3LjkwOSAxMy4xNzcgMjguNDQ1IDEzLjMx''@;'; + put 'put ''MyAyOSAxMy4zODcgTCAyOSAyNCBMIDE5IDI0IFogTSAyNy40IDE4LjggTCAyMC42IDE4LjggTCAyMC42IDIyLjQgTCAyNy40IDIyLjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0g''@;'; + put 'put ''MzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMi41NyA1IEMgMjIuMzEyIDYuODE3IDIyLjczMiA4LjU2NiAyMy42MzMgMTAgTCAxOSAxMCBMIDE5''@;'; + put 'put ''IDI0IEwgMjkgMjQgTCAyOSAxMy40MjcgQyAyOS4xMDMgMTMuNDQgMjkuMjA2IDEzLjQ1MSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI1IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAx''@;'; + put 'put ''OSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAxNCBMIDE1IDE0IFogTSAyMSAxMiBMIDI1LjQ3MiAxMiBDIDI1Ljk0IDEyLjM1MiAyNi40NTIgMTIuNjUgMjcgMTIuODg1IEwgMjcgMTcgTCAyMSAxNyBaIE0gMjcgMjIgTCAyMSAyMiBMIDIxIDE5IEwgMjcgMTkgWiI+PC9w''@;'; + put 'put ''YXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMy''@;'; + put 'put ''IDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMiBMIDE3IDEyIEwgMTcgMjYgTCA3IDI2IEwgNyAxMiBaIE0gOC42IDI0LjQgTCAxNS40IDI0LjQgTCAxNS40IDE4LjggTCA4LjYgMTguOCBMIDguNiAyNC40IFogTSAxNS40IDEzLjYgTCA4LjYgMTMuNiBM''@;'; + put 'put ''IDguNiAxNy4yIEwgMTUuNCAxNy4yIEwgMTUuNCAxMy42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjkgMjQgTCAxOSAyNCBMIDE5IDE1LjM0NSBDIDE5LjAyMSAxNS4zNDggMjAu''@;'; + put 'put ''NiAxNS4zNiAyMC42IDE1LjM2IEwgMjAuNiAxNy4yIEwgMjcuNCAxNy4yIEwgMjcuNCAxNS4zNiBMIDI5IDE1LjM1NyBMIDI5IDI0IFogTSAyNy40IDE4LjggTCAyMC42IDE4LjggTCAyMC42IDIyLjQgTCAyNy40IDIyLjQgTCAyNy40IDE4LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIw''@;'; + put 'put ''LjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0Ljgx''@;'; + put 'put ''IDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkg''@;'; + put 'put ''QyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAxOS4wMjggMTAgTCAxOSAxMCBMIDE5IDEwLjA0OCBMIDE3LjYyNSAxMi4zOTUgQyAxNi44MDcgMTMuNTgzIDE3''@;'; + put 'put ''LjU3MSAxNS4xOTcgMTkgMTUuMzQ1IEwgMTkgMjQgTCAyOSAyNCBMIDI5IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gNyAyNiBMIDE3IDI2IEwgMTcgMTIgTCA3IDEyIFogTSA5IDE5IEwgMTUgMTkgTCAxNSAyNCBMIDkgMjQgWiBNIDE1IDE3IEwgOSAxNyBMIDkgMTQgTCAxNSAxNCBaIE0gMjcg''@;'; + put 'put ''MTcgTCAyMSAxNyBMIDIxIDE1LjM1NyBMIDI3IDE1LjM1NyBaIE0gMjcgMjIgTCAyMSAyMiBMIDIxIDE5IEwgMjcgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2''@;'; + put 'put ''Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44''@;'; + put 'put ''NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGUuQ2xyU2hhcGVCdWJibGVDaGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAz''@;'; + put 'put ''NCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAxOCBDIDI5IDE5LjY1NyAyNy42NTcgMjEgMjYgMjEgQyAyNC4zNDMgMjEgMjMgMTkuNjU3IDIzIDE4IEMgMjMgMTYuMzQzIDI0LjM0MyAxNSAyNiAx''@;'; + put 'put ''NSBDIDI3LjY1NyAxNSAyOSAxNi4zNDMgMjkgMTggWiBNIDI2IDE2LjYgQyAyNS4yMjcgMTYuNiAyNC42IDE3LjIyNyAyNC42IDE4IEMgMjQuNiAxOC43NzMgMjUuMjI3IDE5LjQgMjYgMTkuNCBDIDI2Ljc3MyAxOS40IDI3LjQgMTguNzczIDI3LjQgMTggQyAyNy40IDE3LjIyNyAyNi43NzMg''@;'; + put 'put ''MTYuNiAyNiAxNi42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE0IEMgMTUgMTYuMjA5IDEzLjIwOSAxOCAxMSAxOCBDIDguNzkxIDE4IDcgMTYuMjA5IDcgMTQgQyA3IDExLjc5MSA4Ljc5MSAx''@;'; + put 'put ''MCAxMSAxMCBDIDEzLjIwOSAxMCAxNSAxMS43OTEgMTUgMTQgWiBNIDExIDExLjYgQyA5LjY3NSAxMS42IDguNiAxMi42NzUgOC42IDE0IEMgOC42IDE1LjMyNSA5LjY3NSAxNi40IDExIDE2LjQgQyAxMi4zMjUgMTYuNCAxMy40IDE1LjMyNSAxMy40IDE0IEMgMTMuNCAxMi42NzUgMTIuMzI1''@;'; + put 'put ''IDExLjYgMTEgMTEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIzIEMgMTUgMjEuMzQzIDE2''@;'; + put 'put ''LjM0MyAyMCAxOCAyMCBDIDE5LjY1NyAyMCAyMSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYgQyAxNy4yMjcgMjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMgMTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5LjQgMjMgQyAxOS40IDIy''@;'; + put 'put ''LjIyNyAxOC43NzMgMjEuNiAxOCAyMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAz''@;'; + put 'put ''My4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gMTEgMTAgQyA4Ljc5MSAxMCA3IDExLjc5MSA3IDE0IEMgNyAxNi4yMDkgOC43OTEgMTggMTEg''@;'; + put 'put ''MTggQyAxMy4yMDkgMTggMTUgMTYuMjA5IDE1IDE0IEMgMTUgMTEuNzkxIDEzLjIwOSAxMCAxMSAxMCBaIE0gMjYgMTUgQyAyNC4zNDMgMTUgMjMgMTYuMzQzIDIzIDE4IEMgMjMgMTkuNjU3IDI0LjM0MyAyMSAyNiAyMSBDIDI3LjY1NyAyMSAyOSAxOS42NTcgMjkgMTggQyAyOSAxNi4zNDMg''@;'; + put 'put ''MjcuNjU3IDE1IDI2IDE1IFogTSAxOCAyMCBDIDE2LjM0MyAyMCAxNSAyMS4zNDMgMTUgMjMgQyAxNSAyNC42NTcgMTYuMzQzIDI2IDE4IDI2IEMgMTkuNjU3IDI2IDIxIDI0LjY1NyAyMSAyMyBDIDIxIDIxLjM0MyAxOS42NTcgMjAgMTggMjAgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3''@;'; + put 'put ''IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0''@;'; + put 'put ''aCBkPSJNIDI5IDE4IEMgMjkgMTkuNjU3IDI3LjY1NyAyMSAyNiAyMSBDIDI0LjM0MyAyMSAyMyAxOS42NTcgMjMgMTggQyAyMyAxNi4zNDMgMjQuMzQzIDE1IDI2IDE1IEMgMjcuNjU3IDE1IDI5IDE2LjM0MyAyOSAxOCBaIE0gMjYgMTYuNiBDIDI1LjIyNyAxNi42IDI0LjYgMTcuMjI3IDI0''@;'; + put 'put ''LjYgMTggQyAyNC42IDE4Ljc3MyAyNS4yMjcgMTkuNCAyNiAxOS40IEMgMjYuNzczIDE5LjQgMjcuNCAxOC43NzMgMjcuNCAxOCBDIDI3LjQgMTcuMjI3IDI2Ljc3MyAxNi42IDI2IDE2LjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFk''@;'; + put 'put ''Z2VkIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE0IEMgMTUgMTYuMjA5IDEzLjIwOSAxOCAxMSAxOCBDIDguNzkxIDE4IDcgMTYuMjA5IDcgMTQgQyA3IDExLjc5MSA4Ljc5MSAxMCAxMSAxMCBDIDEzLjIwOSAxMCAxNSAxMS43OTEgMTUgMTQgWiBNIDExIDExLjYgQyA5LjY3''@;'; + put 'put ''NSAxMS42IDguNiAxMi42NzUgOC42IDE0IEMgOC42IDE1LjMyNSA5LjY3NSAxNi40IDExIDE2LjQgQyAxMi4zMjUgMTYuNCAxMy40IDE1LjMyNSAxMy40IDE0IEMgMTMuNCAxMi42NzUgMTIuMzI1IDExLjYgMTEgMTEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjEgMjMgQyAyMSAyNC42NTcgMTkuNjU3IDI2IDE4IDI2IEMgMTYuMzQzIDI2IDE1IDI0LjY1NyAxNSAyMyBDIDE1IDIxLjM0MyAxNi4zNDMgMjAgMTggMjAgQyAxOS42NTcgMjAgMjEgMjEuMzQzIDIx''@;'; + put 'put ''IDIzIFogTSAxOCAyMS42IEMgMTcuMjI3IDIxLjYgMTYuNiAyMi4yMjcgMTYuNiAyMyBDIDE2LjYgMjMuNzczIDE3LjIyNyAyNC40IDE4IDI0LjQgQyAxOC43NzMgMjQuNCAxOS40IDIzLjc3MyAxOS40IDIzIEMgMTkuNCAyMi4yMjcgMTguNzczIDIxLjYgMTggMjEuNiBaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1''@;'; + put 'put ''Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBD''@;'; + put 'put ''IDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gMTEgMTAgQyA4Ljc5MSAxMCA3IDExLjc5MSA3IDE0IEMgNyAxNi4y''@;'; + put 'put ''MDkgOC43OTEgMTggMTEgMTggQyAxMy4yMDkgMTggMTUgMTYuMjA5IDE1IDE0IEMgMTUgMTEuNzkxIDEzLjIwOSAxMCAxMSAxMCBaIE0gMjYgMTUgQyAyNC4zNDMgMTUgMjMgMTYuMzQzIDIzIDE4IEMgMjMgMTkuNjU3IDI0LjM0MyAyMSAyNiAyMSBDIDI3LjY1NyAyMSAyOSAxOS42NTcgMjkg''@;'; + put 'put ''MTggQyAyOSAxNi4zNDMgMjcuNjU3IDE1IDI2IDE1IFogTSAxOCAyMCBDIDE2LjM0MyAyMCAxNSAyMS4zNDMgMTUgMjMgQyAxNSAyNC42NTcgMTYuMzQzIDI2IDE4IDI2IEMgMTkuNjU3IDI2IDIxIDI0LjY1NyAyMSAyMyBDIDIxIDIxLjM0MyAxOS42NTcgMjAgMTggMjAgWiI+PC9wYXRoPlxu''@;'; + put 'put ''ICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1''@;'; + put 'put ''NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjkgMTggQyAyOSAxOS42NTcgMjcuNjU3IDIxIDI2IDIxIEMgMjQuMzQzIDIxIDIzIDE5LjY1NyAyMyAxOCBDIDIzIDE2LjM0MyAyNC4zNDMgMTUgMjYgMTUgQyAyNy42NTcgMTUgMjkgMTYuMzQzIDI5IDE4IFogTSAyNiAx''@;'; + put 'put ''Ni42IEMgMjUuMjI3IDE2LjYgMjQuNiAxNy4yMjcgMjQuNiAxOCBDIDI0LjYgMTguNzczIDI1LjIyNyAxOS40IDI2IDE5LjQgQyAyNi43NzMgMTkuNCAyNy40IDE4Ljc3MyAyNy40IDE4IEMgMjcuNCAxNy4yMjcgMjYuNzczIDE2LjYgMjYgMTYuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxNCBDIDE1IDE2LjIwOSAxMy4yMDkgMTggMTEgMTggQyA4Ljc5MSAxOCA3IDE2LjIwOSA3IDE0IEMgNyAxMS43OTEgOC43OTEgMTAgMTEgMTAgQyAxMy4yMDkgMTAg''@;'; + put 'put ''MTUgMTEuNzkxIDE1IDE0IFogTSAxMSAxMS42IEMgOS42NzUgMTEuNiA4LjYgMTIuNjc1IDguNiAxNCBDIDguNiAxNS4zMjUgOS42NzUgMTYuNCAxMSAxNi40IEMgMTIuMzI1IDE2LjQgMTMuNCAxNS4zMjUgMTMuNCAxNCBDIDEzLjQgMTIuNjc1IDEyLjMyNSAxMS42IDExIDExLjYgWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjEgMjMgQyAyMSAyNC42NTcgMTkuNjU3IDI2IDE4IDI2IEMgMTYuMzQzIDI2IDE1IDI0LjY1NyAxNSAyMyBDIDE1IDIxLjM0MyAxNi4z''@;'; + put 'put ''NDMgMjAgMTggMjAgQyAxOS42NTcgMjAgMjEgMjEuMzQzIDIxIDIzIFogTSAxOCAyMS42IEMgMTcuMjI3IDIxLjYgMTYuNiAyMi4yMjcgMTYuNiAyMyBDIDE2LjYgMjMuNzczIDE3LjIyNyAyNC40IDE4IDI0LjQgQyAxOC43NzMgMjQuNCAxOS40IDIzLjc3MyAxOS40IDIzIEMgMTkuNCAyMi4y''@;'; + put 'put ''MjcgMTguNzczIDIxLjYgMTggMjEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5''@;'; + put 'put ''IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUg''@;'; + put 'put ''MTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMjQuNTc5IDE1LjM1NyBDIDIzLjYzOSAxNS44NjMgMjMgMTYuODU3IDIzIDE4IEMgMjMgMTkuNjU3IDI0LjM0MyAyMSAy''@;'; + put 'put ''NiAyMSBDIDI3LjY1NyAyMSAyOSAxOS42NTcgMjkgMTggQyAyOSAxNi44NTcgMjguMzYxIDE1Ljg2MyAyNy40MjEgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEuNzkxIDcgMTQgQyA3IDE2LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIwOSAxOCAxNSAxNi4y''@;'; + put 'put ''MDkgMTUgMTQgQyAxNSAxMS43OTEgMTMuMjA5IDEwIDExIDEwIFogTSAxOCAyMCBDIDE2LjM0MyAyMCAxNSAyMS4zNDMgMTUgMjMgQyAxNSAyNC42NTcgMTYuMzQzIDI2IDE4IDI2IEMgMTkuNjU3IDI2IDIxIDI0LjY1NyAyMSAyMyBDIDIxIDIxLjM0MyAxOS42NTcgMjAgMTggMjAgWiI+PC9w''@;'; + put 'put ''YXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIy''@;'; + put 'put ''LjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3''@;'; + put 'put ''IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGUuQ2xyU2hhcGVDbG91ZENoYXJ0PSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3VjI5''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMiw1Wk00LDI5VjdIMzJWMjlaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjAuOTcxIDExLjI0MyBDIDIzLjMxNCAxMy41ODYgMjIuMzY0IDE4LjMzNSAxOC44NDkgMjEuODQ5IEMgMTUuMzM0IDI1LjM2NCAxMC41''@;'; + put 'put ''ODYgMjYuMzE0IDguMjQzIDIzLjk3IEMgNS44OTkgMjEuNjI3IDYuODQ5IDE2Ljg3OCAxMC4zNjQgMTMuMzY0IEMgMTMuODc5IDkuODQ5IDE4LjYyOCA4LjkgMjAuOTcxIDExLjI0MyBaIE0gMTEuNjM2IDE0LjYzNyBDIDguODI0IDE3LjQ0OSA3Ljg3NSAyMS4wNTggOS41MTUgMjIuNjk4IEMg''@;'; + put 'put ''MTEuMTU1IDI0LjMzOCAxNC43NjQgMjMuMzg5IDE3LjU3NiAyMC41NzcgQyAyMC4zODggMTcuNzY1IDIxLjMzOCAxNC4xNTYgMTkuNjk3IDEyLjUxNiBDIDE4LjA1NyAxMC44NzYgMTQuNDQ4IDExLjgyNSAxMS42MzYgMTQuNjM3IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjggMjIgQyAyOCAyMy42NTcgMjYuNjU3IDI1IDI1IDI1IEMgMjMuMzQzIDI1IDIyIDIzLjY1NyAyMiAyMiBDIDIyIDIwLjM0MyAyMy4zNDMgMTkgMjUgMTkgQyAyNi42NTcgMTkgMjggMjAuMzQzIDI4IDIyIFogTSAyNSAyMC42IEMg''@;'; + put 'put ''MjQuMjI3IDIwLjYgMjMuNiAyMS4yMjcgMjMuNiAyMiBDIDIzLjYgMjIuNzczIDI0LjIyNyAyMy40IDI1IDIzLjQgQyAyNS43NzMgMjMuNCAyNi40IDIyLjc3MyAyNi40IDIyIEMgMjYuNCAyMS4yMjcgMjUuNzczIDIwLjYgMjUgMjAuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMyIgeD0iNyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIg''@;'; + put 'put ''NS44OTUgMi44OTUgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTUgMzQgNyBaIE0gMTAuMzY0IDEzLjM2NCBDIDYuODQ5IDE2Ljg3OCA1Ljg5OSAyMS42MjcgOC4yNDMgMjMuOTcgQyAxMC41ODYgMjYuMzE0IDE1LjMzNCAyNS4zNjQgMTguODQ5IDIxLjg0OSBDIDIyLjM2NCAxOC4z''@;'; + put 'put ''MzUgMjMuMzE0IDEzLjU4NiAyMC45NzEgMTEuMjQzIEMgMTguNjI4IDguOSAxMy44NzkgOS44NDkgMTAuMzY0IDEzLjM2NCBaIE0gMjUgMTkgQyAyMy4zNDMgMTkgMjIgMjAuMzQzIDIyIDIyIEMgMjIgMjMuNjU3IDIzLjM0MyAyNSAyNSAyNSBDIDI2LjY1NyAyNSAyOCAyMy42NTcgMjggMjIg''@;'; + put 'put ''QyAyOCAyMC4zNDMgMjYuNjU3IDE5IDI1IDE5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2''@;'; + put 'put ''OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQg''@;'; + put 'put ''QyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMC45NzEgMTEuMjQzIEMgMjMuMzE0IDEzLjU4NiAyMi4zNjQgMTguMzM1IDE4Ljg0OSAyMS44NDkgQyAxNS4zMzQgMjUuMzY0IDEwLjU4NiAyNi4zMTQgOC4yNDMgMjMuOTcgQyA1''@;'; + put 'put ''Ljg5OSAyMS42MjcgNi44NDkgMTYuODc4IDEwLjM2NCAxMy4zNjQgQyAxMy44NzkgOS44NDkgMTguNjI4IDguOSAyMC45NzEgMTEuMjQzIFogTSAxMS42MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1OCA5LjUxNSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0Ljc2NCAyMy4z''@;'; + put 'put ''ODkgMTcuNTc2IDIwLjU3NyBDIDIwLjM4OCAxNy43NjUgMjEuMzM4IDE0LjE1NiAxOS42OTcgMTIuNTE2IEMgMTguMDU3IDEwLjg3NiAxNC40NDggMTEuODI1IDExLjYzNiAxNC42MzcgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2Vk''@;'; + put 'put ''Ij48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjggMjIgQyAyOCAyMy42NTcgMjYuNjU3IDI1IDI1IDI1IEMgMjMuMzQzIDI1IDIyIDIzLjY1NyAyMiAyMiBDIDIyIDIwLjM0MyAyMy4zNDMgMTkgMjUgMTkgQyAyNi42NTcgMTkgMjggMjAuMzQzIDI4IDIyIFogTSAyNSAyMC42IEMgMjQuMjI2IDIw''@;'; + put 'put ''LjYgMjMuNiAyMS4yMjYgMjMuNiAyMiBDIDIzLjYgMjIuNzczIDI0LjIyNiAyMy40IDI1IDIzLjQgQyAyNS43NzMgMjMuNCAyNi40IDIyLjc3MyAyNi40IDIyIEMgMjYuNCAyMS4yMjYgMjUuNzczIDIwLjYgMjUgMjAuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHg9IjciPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3''@;'; + put 'put ''IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI1IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMC4zNjQgMTMuMzY0IEMgNi44NDkgMTYuODc4IDUuODk5IDIxLjYyNyA4LjI0MyAyMy45NyBDIDEwLjU4NiAyNi4z''@;'; + put 'put ''MTQgMTUuMzM0IDI1LjM2NCAxOC44NDkgMjEuODQ5IEMgMjIuMzY0IDE4LjMzNSAyMy4zMTQgMTMuNTg2IDIwLjk3MSAxMS4yNDMgQyAxOC42MjggOC45IDEzLjg3OSA5Ljg0OSAxMC4zNjQgMTMuMzY0IFogTSAyNSAxOSBDIDIzLjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcg''@;'; + put 'put ''MjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42NTcgMTkgMjUgMTkgWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0i''@;'; + put 'put ''MzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIg''@;'; + put 'put ''MjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTguODQ5IDIxLjg0OSBDIDE1LjMzNCAyNS4zNjQgMTAuNTg2IDI2LjMx''@;'; + put 'put ''NCA4LjI0MyAyMy45NyBDIDUuODk5IDIxLjYyNyA2Ljg0OSAxNi44NzggMTAuMzY0IDEzLjM2NCBDIDEzLjA0OSAxMC42NzkgMTYuNDUzIDkuNDkyIDE4Ljk1NiAxMC4xMjQgTCAxOC4wMDggMTEuNzQxIEMgMTYuMTggMTEuNTE4IDEzLjY5NSAxMi41NzggMTEuNjM2IDE0LjYzNyBDIDguODI0''@;'; + put 'put ''IDE3LjQ0OSA3Ljg3NSAyMS4wNTggOS41MTUgMjIuNjk4IEMgMTEuMTU1IDI0LjMzOCAxNC43NjQgMjMuMzg5IDE3LjU3NiAyMC41NzcgQyAxOS4yMjggMTguOTI1IDIwLjIzNyAxNi45OTggMjAuNDU2IDE1LjM1NyBMIDIyLjIyIDE1LjM1NyBDIDIyLjAwNiAxNy40NzcgMjAuODM4IDE5Ljg2''@;'; + put 'put ''MSAxOC44NDkgMjEuODQ5IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjggMjIgQyAyOCAyMy42NTcgMjYuNjU3IDI1IDI1IDI1IEMgMjMuMzQzIDI1IDIyIDIzLjY1NyAyMiAyMiBD''@;'; + put 'put ''IDIyIDIwLjM0MyAyMy4zNDMgMTkgMjUgMTkgQyAyNi42NTcgMTkgMjggMjAuMzQzIDI4IDIyIFogTSAyNSAyMC42IEMgMjQuMjI2IDIwLjYgMjMuNiAyMS4yMjYgMjMuNiAyMiBDIDIzLjYgMjIuNzczIDI0LjIyNiAyMy40IDI1IDIzLjQgQyAyNS43NzMgMjMuNCAyNi40IDIyLjc3MyAyNi40''@;'; + put 'put ''IDIyIEMgMjYuNCAyMS4yMjYgMjUuNzczIDIwLjYgMjUgMjAuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgeD0iNyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAx''@;'; + put 'put ''My4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45''@;'; + put 'put ''NTggNSBMIDE4Ljk1NiAxMC4xMjQgQyAxNi40NTMgOS40OTIgMTMuMDQ5IDEwLjY3OSAxMC4zNjQgMTMuMzY0IEMgNi44NDkgMTYuODc4IDUuODk5IDIxLjYyNyA4LjI0MyAyMy45NyBDIDEwLjU4NiAyNi4zMTQgMTUuMzM0IDI1LjM2NCAxOC44NDkgMjEuODQ5IEMgMjAuODM4IDE5Ljg2MSAy''@;'; + put 'put ''Mi4wMDYgMTcuNDc3IDIyLjIyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gMjUgMTkgQyAyMy4zNDMgMTkgMjIgMjAuMzQzIDIyIDIyIEMgMjIgMjMuNjU3IDIzLjM0MyAyNSAyNSAyNSBDIDI2LjY1NyAyNSAyOCAyMy42NTcgMjggMjIgQyAyOCAyMC4zNDMgMjYuNjU3IDE5IDI1IDE5IFoiPjwv''@;'; + put 'put ''cGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAy''@;'; + put 'put ''Mi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41''@;'; + put 'put ''NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxlLkNsclNoYXBlQ3VydmVDaGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUg''@;'; + put 'put ''MiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0i''@;'; + put 'put ''TSA3IDExLjggQyA2LjU1OCAxMS44IDYuMiAxMS40NDIgNi4yIDExIEMgNi4yIDEwLjU1OCA2LjU1OCAxMC4yIDcgMTAuMiBMIDEzIDEwLjIgQyAxNS40MDQgMTAuMiAxNi4zNjggMTEuOTA3IDE3LjY1MyAxNi40NzggQyAxNy42OTUgMTYuNjI4IDE3Ljc0NCAxNi44MDMgMTcuODM1IDE3LjEy''@;'; + put 'put ''OSBDIDE3LjkwOSAxNy4zOTIgMTcuOTY0IDE3LjU4OCAxOC4wMTkgMTcuNzggQyAxOS4zMzIgMjIuMzc1IDIwLjU0OSAyNC4yIDIzIDI0LjIgTCAyOSAyNC4yIEMgMjkuNDQyIDI0LjIgMjkuOCAyNC41NTggMjkuOCAyNSBDIDI5LjggMjUuNDQyIDI5LjQ0MiAyNS44IDI5IDI1LjggTCAyMyAy''@;'; + put 'put ''NS44IEMgMTkuNTM1IDI1LjggMTcuOTgxIDIzLjQ2OSAxNi40ODEgMTguMjIgQyAxNi40MjUgMTguMDI1IDE2LjM2OSAxNy44MjYgMTYuMjk1IDE3LjU2IEMgMTYuMjAzIDE3LjIzNCAxNi4xNTQgMTcuMDYgMTYuMTEzIDE2LjkxMSBDIDE1LjA0MyAxMy4xMDUgMTQuMzA1IDExLjggMTMgMTEu''@;'; + put 'put ''OCBMIDcgMTEuOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMx''@;'; + put 'put ''IEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gMTMgMTIgQyAxNC44MTcgMTIgMTUuNjc0IDEzLjQ5OSAxNy4wMzkgMTguMjc1IEMgMTcuODEzIDIwLjk4NCAxOC4yMDEgMjIuMTE4''@;'; + put 'put ''IDE4Ljg4MiAyMy4zMDkgQyAxOS44NyAyNS4wMzggMjEuMjA1IDI2IDIzIDI2IEwgMjkgMjYgQyAyOS41NTIgMjYgMzAgMjUuNTUyIDMwIDI1IEMgMzAgMjQuNDQ4IDI5LjU1MiAyNCAyOSAyNCBMIDIzIDI0IEMgMjEuMTgzIDI0IDIwLjMyNiAyMi41MDEgMTguOTYyIDE3LjcyNSBDIDE4LjE4''@;'; + put 'put ''OCAxNS4wMTYgMTcuNzk5IDEzLjg4MiAxNy4xMTggMTIuNjkxIEMgMTYuMTMgMTAuOTYyIDE0Ljc5NSAxMCAxMyAxMCBMIDcgMTAgQyA2LjQ0OCAxMCA2IDEwLjQ0OCA2IDExIEMgNiAxMS41NTIgNi40NDggMTIgNyAxMiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIu''@;'; + put 'put ''ODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMS44''@;'; + put 'put ''IEMgNi41NTggMTEuOCA2LjIgMTEuNDQyIDYuMiAxMSBDIDYuMiAxMC41NTggNi41NTggMTAuMiA3IDEwLjIgTCAxMyAxMC4yIEMgMTUuNDA0IDEwLjIgMTYuMzY4IDExLjkwNyAxNy42NTMgMTYuNDc4IEMgMTcuNjk1IDE2LjYyOCAxNy43NDQgMTYuODAzIDE3LjgzNSAxNy4xMjkgQyAxNy45''@;'; + put 'put ''MDkgMTcuMzkyIDE3Ljk2NCAxNy41ODggMTguMDE5IDE3Ljc4IEMgMTkuMzMyIDIyLjM3NSAyMC41NDkgMjQuMiAyMyAyNC4yIEwgMjkgMjQuMiBDIDI5LjQ0MiAyNC4yIDI5LjggMjQuNTU4IDI5LjggMjUgQyAyOS44IDI1LjQ0MiAyOS40NDIgMjUuOCAyOSAyNS44IEwgMjMgMjUuOCBDIDE5''@;'; + put 'put ''LjUzNSAyNS44IDE3Ljk4MSAyMy40NjkgMTYuNDgxIDE4LjIyIEMgMTYuNDI1IDE4LjAyNSAxNi4zNjkgMTcuODI2IDE2LjI5NSAxNy41NiBDIDE2LjIwMyAxNy4yMzQgMTYuMTU0IDE3LjA2IDE2LjExMyAxNi45MTEgQyAxNS4wNDMgMTMuMTA1IDE0LjMwNSAxMS44IDEzIDExLjggTCA3IDEx''@;'; + put 'put ''LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5''@;'; + put 'put ''PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAy''@;'; + put 'put ''OSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gMTMgMTIgQyAxNC44MTcgMTIgMTUuNjc0IDEzLjQ5''@;'; + put 'put ''OSAxNy4wMzkgMTguMjc1IEMgMTcuODEzIDIwLjk4NCAxOC4yMDEgMjIuMTE4IDE4Ljg4MiAyMy4zMDkgQyAxOS44NyAyNS4wMzggMjEuMjA1IDI2IDIzIDI2IEwgMjkgMjYgQyAyOS41NTIgMjYgMzAgMjUuNTUyIDMwIDI1IEMgMzAgMjQuNDQ4IDI5LjU1MiAyNCAyOSAyNCBMIDIzIDI0IEMg''@;'; + put 'put ''MjEuMTgzIDI0IDIwLjMyNiAyMi41MDEgMTguOTYyIDE3LjcyNSBDIDE4LjE4OCAxNS4wMTYgMTcuNzk5IDEzLjg4MiAxNy4xMTggMTIuNjkxIEMgMTYuMTMgMTAuOTYyIDE0Ljc5NSAxMCAxMyAxMCBMIDcgMTAgQyA2LjQ0OCAxMCA2IDEwLjQ0OCA2IDExIEMgNiAxMS41NTIgNi40NDggMTIg''@;'; + put 'put ''NyAxMiBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBM''@;'; + put 'put ''IDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDExLjggQyA2LjU1OCAxMS44IDYuMiAxMS40NDIgNi4yIDExIEMgNi4yIDEwLjU1OCA2LjU1OCAxMC4yIDcgMTAuMiBMIDEzIDEwLjIgQyAxNS40MDQgMTAuMiAxNi4zNjggMTEuOTA3IDE3''@;'; + put 'put ''LjY1MyAxNi40NzggQyAxNy42OTUgMTYuNjI4IDE3Ljc0NCAxNi44MDMgMTcuODM1IDE3LjEyOSBDIDE3LjkwOSAxNy4zOTIgMTcuOTY0IDE3LjU4OCAxOC4wMTkgMTcuNzggQyAxOS4zMzIgMjIuMzc1IDIwLjU0OSAyNC4yIDIzIDI0LjIgTCAyOSAyNC4yIEMgMjkuNDQyIDI0LjIgMjkuOCAy''@;'; + put 'put ''NC41NTggMjkuOCAyNSBDIDI5LjggMjUuNDQyIDI5LjQ0MiAyNS44IDI5IDI1LjggTCAyMyAyNS44IEMgMTkuNTM1IDI1LjggMTcuOTgxIDIzLjQ2OSAxNi40ODEgMTguMjIgQyAxNi40MjUgMTguMDI1IDE2LjM2OSAxNy44MjYgMTYuMjk1IDE3LjU2IEMgMTYuMjAzIDE3LjIzNCAxNi4xNTQg''@;'; + put 'put ''MTcuMDYgMTYuMTEzIDE2LjkxMSBDIDE1LjA0MyAxMy4xMDUgMTQuMzA1IDExLjggMTMgMTEuOCBMIDcgMTEuOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIu''@;'; + put 'put ''MjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEu''@;'; + put 'put ''MTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44''@;'; + put 'put ''OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNy40NzYgMTIuNjEyIDE3LjM3OSAxMi44NDMgMTcuMzMgMTMuMDc3IEMgMTcuMjYyIDEyLjk0OCAxNy4xOTIgMTIuODIgMTcuMTE4IDEyLjY5MSBDIDE2LjEzIDEwLjk2MiAxNC43OTUgMTAgMTMgMTAgTCA3IDEw''@;'; + put 'put ''IEMgNi40NDggMTAgNiAxMC40NDggNiAxMSBDIDYgMTEuNTUyIDYuNDQ4IDEyIDcgMTIgTCAxMyAxMiBDIDE0LjgxNyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMgMjAuOTg0IDE4LjIwMSAyMi4xMTggMTguODgyIDIzLjMwOSBDIDE5Ljg3IDI1LjAzOCAyMS4yMDUg''@;'; + put 'put ''MjYgMjMgMjYgTCAyOSAyNiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAxOC45NjIgMTcuNzI1IEMgMTguNjQgMTYuNTk4IDE4LjM4NSAxNS43NDQgMTguMTQ3IDE1LjA0NCBD''@;'; + put 'put ''IDE4LjQwNyAxNS4yMTUgMTguNzE3IDE1LjMyNiAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQu''@;'; + put 'put ''NjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksZS5DbHJTaGFwZUdyaWRD''@;'; + put 'put ''aGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwxN0g0YTIsMiwwLDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMTdaTTQsOHY3SDE1Vjha''@;'; + put 'put ''Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsMTdIMjFhMiwyLDAsMCwxLTItMlY4YTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwxN1pNMjEsOHY3SDMyVjhaIi8+XG4gIDxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTUsMzBINGEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwzMFpNNCwyMXY3SDE1VjIxWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMyLDMwSDIxYTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x''@;'; + put 'put ''IiBkPSJNIDE1IDE3IEwgNCAxNyBDIDIuODk1IDE3IDIgMTYuMTA1IDIgMTUgTCAyIDggQyAyIDYuODk1IDIuODk1IDYgNCA2IEwgMTUgNiBDIDE2LjEwNSA2IDE3IDYuODk1IDE3IDggTCAxNyAxNSBDIDE3IDE2LjEwNSAxNi4xMDUgMTcgMTUgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNIDMyIDE3IEwgMjEgMTcgQyAxOS44OTUgMTcgMTkgMTYuMTA1IDE5IDE1IEwgMTkgOCBDIDE5IDYuODk1IDE5Ljg5NSA2IDIxIDYgTCAzMiA2IEMgMzMuMTA1IDYgMzQgNi44OTUgMzQgOCBMIDM0IDE1IEMgMzQgMTYuMTA1IDMzLjEw''@;'; + put 'put ''NSAxNyAzMiAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0gMTUgMzAgTCA0IDMwIEMgMi44OTUgMzAgMiAyOS4xMDUgMiAyOCBMIDIgMjEgQyAyIDE5Ljg5NSAyLjg5NSAxOSA0IDE5IEwgMTUgMTkgQyAxNi4xMDUgMTkgMTcgMTku''@;'; + put 'put ''ODk1IDE3IDIxIEwgMTcgMjggQyAxNyAyOS4xMDUgMTYuMTA1IDMwIDE1IDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTSAzMiAzMCBMIDIxIDMwIEMgMTkuODk1IDMwIDE5IDI5LjEwNSAxOSAyOCBMIDE5IDIxIEMgMTkgMTkuODk1''@;'; + put 'put ''IDE5Ljg5NSAxOSAyMSAxOSBMIDMyIDE5IEMgMzMuMTA1IDE5IDM0IDE5Ljg5NSAzNCAyMSBMIDM0IDI4IEMgMzQgMjkuMTA1IDMzLjEwNSAzMCAzMiAzMCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtYWxlcnRlZCIgZD0i''@;'; + put 'put ''TTE1LDE3SDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwxN1pNNCw4djdIMTVWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi1hbGVydGVkIiBkPSJNIDMy''@;'; + put 'put ''IDE3IEwgMjEgMTcgQyAyMC4wMTQgMTcgMTkuMTk1IDE2LjI4NyAxOS4wMyAxNS4zNDggQyAxOS4wNDEgMTUuMzQ5IDE5LjA1MyAxNS4zNSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDMzLjk2OCAxNS4zNTcgQyAzMy44IDE2LjI5''@;'; + put 'put ''MiAzMi45ODMgMTcgMzIgMTcgWiBNIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjEuMzcyIDYgTCAxOSAxMC4wNDggWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLWFsZXJ0ZWQiIGQ9Ik0xNSwzMEg0YTIsMiww''@;'; + put 'put ''LDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtYWxlcnRlZCIgZD0iTTMyLDMwSDIxYTIsMiww''@;'; + put 'put ''LDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0i''@;'; + put 'put ''TSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEg''@;'; + put 'put ''MzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAxNSAxNyBMIDQgMTcgQyAyLjg5NSAxNyAyIDE2LjEwNSAyIDE1IEwgMiA4IEMgMiA2Ljg5NSAyLjg5NSA2IDQgNiBMIDE1IDYgQyAxNi4xMDUgNiAxNyA2Ljg5NSAxNyA4IEwgMTcgMTUgQyAxNyAxNi4xMDUgMTYuMTA1IDE3IDE1IDE3IFoiLz5cbiAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTSAzMiAxNyBMIDIxIDE3IEMgMjAuMDE0IDE3IDE5LjE5NSAxNi4yODcgMTkuMDMgMTUuMzQ4IEMgMTkuMDQxIDE1LjM0OSAxOS4wNTMgMTUuMzUgMTkuMDY0IDE1LjM1MSBD''@;'; + put 'put ''IDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAzMy45NjggMTUuMzU3IEMgMzMuOCAxNi4yOTIgMzIuOTgzIDE3IDMyIDE3IFogTSAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDIxLjM3MiA2IEwgMTkgMTAuMDQ4IFoiLz5cbiAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgZD0iTSAxNSAzMCBMIDQgMzAgQyAyLjg5NSAzMCAyIDI5LjEwNSAyIDI4IEwgMiAyMSBDIDIgMTkuODk1IDIuODk1IDE5IDQgMTkgTCAxNSAxOSBDIDE2LjEwNSAxOSAxNyAxOS44OTUgMTcgMjEgTCAx''@;'; + put 'put ''NyAyOCBDIDE3IDI5LjEwNSAxNi4xMDUgMzAgMTUgMzAgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIiBkPSJNIDMyIDMwIEwgMjEgMzAgQyAxOS44OTUgMzAgMTkgMjkuMTA1IDE5IDI4IEwgMTkgMjEgQyAxOSAx''@;'; + put 'put ''OS44OTUgMTkuODk1IDE5IDIxIDE5IEwgMzIgMTkgQyAzMy4xMDUgMTkgMzQgMTkuODk1IDM0IDIxIEwgMzQgMjggQyAzNCAyOS4xMDUgMzMuMTA1IDMwIDMyIDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2''@;'; + put 'put ''IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTUsMTdINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5Ljg5NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDIyLjU5IDYgQyAyMi41OSA2LjAxOSAyMi41OSA2LjAzNyAyMi41OSA2LjA1NiBDIDIyLjU5''@;'; + put 'put ''IDYuNzI5IDIyLjY4IDcuMzgxIDIyLjg0OCA4IEwgMjEgOCBMIDIxIDE1IEwgMzIgMTUgTCAzMiAxMy4xNzUgQyAzMi43MTcgMTIuOTcyIDMzLjM4OSAxMi42NjQgMzQgMTIuMjY5IEwgMzQgMTUgQyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMTUsMzBINGEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwzMFpNNCwyMXY3SDE1VjIxWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0zMiwzMEgyMWEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwzMFpNMjEsMjF2N0gzMlYyMVoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMTUgMTcgTCA0IDE3''@;'; + put 'put ''IEMgMi44OTUgMTcgMiAxNi4xMDUgMiAxNSBMIDIgOCBDIDIgNi44OTUgMi44OTUgNiA0IDYgTCAxNSA2IEMgMTYuMTA1IDYgMTcgNi44OTUgMTcgOCBMIDE3IDE1IEMgMTcgMTYuMTA1IDE2LjEwNSAxNyAxNSAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNIDMyIDE3IEwgMjEgMTcgQyAxOS44OTUgMTcgMTkgMTYuMTA1IDE5IDE1IEwgMTkgOCBDIDE5IDYuODk1IDE5Ljg5NSA2IDIxIDYgTCAyMi41OSA2IEMgMjIuNTkgNi4wMTkgMjIuNTkgNi4wMzcgMjIuNTkgNi4wNTYgQyAyMi41OSAxMC4x''@;'; + put 'put ''NDEgMjUuOTAxIDEzLjQ1MiAyOS45ODYgMTMuNDUyIEMgMzEuNDY2IDEzLjQ1MiAzMi44NDQgMTMuMDE4IDM0IDEyLjI2OSBMIDM0IDE1IEMgMzQgMTYuMTA1IDMzLjEwNSAxNyAzMiAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''My0tYmFkZ2VkIiBkPSJNIDE1IDMwIEwgNCAzMCBDIDIuODk1IDMwIDIgMjkuMTA1IDIgMjggTCAyIDIxIEMgMiAxOS44OTUgMi44OTUgMTkgNCAxOSBMIDE1IDE5IEMgMTYuMTA1IDE5IDE3IDE5Ljg5NSAxNyAyMSBMIDE3IDI4IEMgMTcgMjkuMTA1IDE2LjEwNSAzMCAxNSAzMCBaIi8+XG4g''@;'; + put 'put ''IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIiBkPSJNIDMyIDMwIEwgMjEgMzAgQyAxOS44OTUgMzAgMTkgMjkuMTA1IDE5IDI4IEwgMTkgMjEgQyAxOSAxOS44OTUgMTkuODk1IDE5IDIxIDE5IEwgMzIgMTkgQyAzMy4xMDUgMTkg''@;'; + put 'put ''MzQgMTkuODk1IDM0IDIxIEwgMzQgMjggQyAzNCAyOS4xMDUgMzMuMTA1IDMwIDMyIDMwIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGUuQ2xy''@;'; + put 'put ''U2hhcGVIZWF0TWFwPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAz''@;'; + put 'put ''My4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDggMTAgTCAyOCAxMCBMIDI4IDI2IEwgOCAyNiBaIE0gOS42IDI0IEwgMTQuMSAyNCBMIDE0''@;'; + put 'put ''LjEgMTguOCBMIDkuNiAxOC44IFogTSAxNC4xIDExLjYgTCA5LjYgMTEuNiBMIDkuNiAxNy4yIEwgMTQuMSAxNy4yIFogTSAyNiAyNCBMIDI2IDE4LjggTCAyMS45IDE4LjggTCAyMS45IDI0IFogTSAyNiAxMS42IEwgMjEuOSAxMS42IEwgMjEuOSAxNy4yIEwgMjYgMTcuMiBaIE0gMTUuNyAx''@;'; + put 'put ''MS42IEwgMTUuNyAxNy4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxMS42IFogTSAxNS43IDI0IEwgMjAuMyAyNCBMIDIwLjMgMTguOCBMIDE1LjcgMTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUg''@;'; + put 'put ''QyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDgg''@;'; + put 'put ''MTAgTCAyMy43MjggMTAgQyAyNC4xMDUgMTAuNTk2IDI0LjU2NCAxMS4xMzUgMjUuMDkgMTEuNiBMIDIxLjkgMTEuNiBMIDIxLjkgMTcuMiBMIDI2IDE3LjIgTCAyNiAxMi4yODcgQyAyNi42MTEgMTIuNjc5IDI3LjI4NCAxMi45ODMgMjggMTMuMTgyIEwgMjggMjYgTCA4IDI2IFogTSA5LjYg''@;'; + put 'put ''MjQgTCAxNC4xIDI0IEwgMTQuMSAxOC44IEwgOS42IDE4LjggWiBNIDE0LjEgMTEuNiBMIDkuNiAxMS42IEwgOS42IDE3LjIgTCAxNC4xIDE3LjIgWiBNIDI2IDI0IEwgMjYgMTguOCBMIDIxLjkgMTguOCBMIDIxLjkgMjQgWiBNIDE1LjcgMTEuNiBMIDE1LjcgMTcuMiBMIDIwLjMgMTcuMiBM''@;'; + put 'put ''IDIwLjMgMTEuNiBaIE0gMTUuNyAyNCBMIDIwLjMgMjQgTCAyMC4zIDE4LjggTCAxNS43IDE4LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMjItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAu''@;'; + put 'put ''MTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0''@;'; + put 'put ''aCBkPSJNIDggMTAgTCAxOS4wMjggMTAgTCAxOC4wOTEgMTEuNiBMIDE1LjcgMTEuNiBMIDE1LjcgMTcuMiBMIDIwLjMgMTcuMiBMIDIwLjMgMTUuMzU3IEwgMjEuOSAxNS4zNTcgTCAyMS45IDE3LjIgTCAyNiAxNy4yIEwgMjYgMTUuMzU3IEwgMjggMTUuMzU3IEwgMjggMjYgTCA4IDI2IFog''@;'; + put 'put ''TSA5LjYgMjQgTCAxNC4xIDI0IEwgMTQuMSAxOC44IEwgOS42IDE4LjggWiBNIDE0LjEgMTEuNiBMIDkuNiAxMS42IEwgOS42IDE3LjIgTCAxNC4xIDE3LjIgWiBNIDI2IDI0IEwgMjYgMTguOCBMIDIxLjkgMTguOCBMIDIxLjkgMjQgWiBNIDE1LjcgMjQgTCAyMC4zIDI0IEwgMjAuMyAxOC44''@;'; + put 'put ''IEwgMTUuNyAxOC44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yMi0tYWxlcnRlZCBjbHItaS1hbGVy''@;'; + put 'put ''dCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAx''@;'; + put 'put ''MS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2IDM0IDcgWiBNIDggMjYgTCAyOCAy''@;'; + put 'put ''NiBMIDI4IDEwIEwgOCAxMCBaIE0gMTAgMTkgTCAxNCAxOSBMIDE0IDI0IEwgMTAgMjQgWiBNIDIyIDI0IEwgMjIgMTkgTCAyNiAxOSBMIDI2IDI0IFogTSAyMCAxOSBMIDIwIDI0IEwgMTYgMjQgTCAxNiAxOSBaIE0gMjYgMTcgTCAyMiAxNyBMIDIyIDEyIEwgMjYgMTIgWiBNIDIwIDEyIEwg''@;'; + put 'put ''MjAgMTcgTCAxNiAxNyBMIDE2IDEyIFogTSAxNCAxMiBMIDE0IDE3IEwgMTAgMTcgTCAxMCAxMiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUg''@;'; + put 'put ''MzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIyLjMxMiA2LjgxNyAyMi43MzIgOC41NjYgMjMuNjMzIDEwIEwgOCAxMCBMIDggMjYgTCAyOCAyNiBMIDI4IDEzLjIzMiBDIDI4LjQy''@;'; + put 'put ''MSAxMy4zNDUgMjguODU5IDEzLjQyMiAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMCAxOSBMIDE0IDE5IEwgMTQgMjQgTCAxMCAyNCBaIE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5''@;'; + put 'put ''IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3IEwgMjIgMTIgTCAyNS41ODQgMTIgQyAyNS43MTkgMTIuMSAyNS44NTggMTIuMTk2IDI2IDEyLjI4NyBaIE0gMjAgMTIgTCAyMCAxNyBMIDE2IDE3IEwgMTYgMTIgWiBNIDE0IDEyIEwgMTQgMTcgTCAxMCAxNyBMIDEw''@;'; + put 'put ''IDEyIFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTIyLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTkuMDI4IDEwIEwgOCAxMCBMIDggMjYgTCAy''@;'; + put 'put ''OCAyNiBMIDI4IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gMTAgMTkgTCAxNCAxOSBMIDE0IDI0IEwgMTAgMjQgWiBNIDIyIDI0IEwgMjIgMTkgTCAyNiAxOSBMIDI2IDI0IFogTSAyMCAxOSBMIDIwIDI0IEwgMTYgMjQgTCAxNiAxOSBaIE0gMjYgMTcgTCAyMiAxNyBMIDIyIDE1LjM1NyBMIDI2''@;'; + put 'put ''IDE1LjM1NyBaIE0gMjAgMTcgTCAxNiAxNyBMIDE2IDEyIEwgMTcuODU2IDEyIEwgMTcuNjI1IDEyLjM5NSBDIDE2Ljc5NSAxMy42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDIwIDE1LjM1NyBaIE0g''@;'; + put 'put ''MTQgMTIgTCAxNCAxNyBMIDEwIDE3IEwgMTAgMTIgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDEx''@;'; + put 'put ''LjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQy''@;'; + put 'put ''IDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxlLkNsclNoYXBlTGluZUNoYXJ0PSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAz''@;'; + put 'put ''MiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cG9seWdvbiBwb2ludHM9IjE1LjYyIDE1LjIyMiA5LjYwMiAyMy45NjggNS41NSAyMC4zODQgNi42MSAxOS4xODYgOS4zMDggMjEuNTcyIDE1LjYzNCAxMi4zOCAyMi4zODQgMjIuMzk1IDI5LjEzOCAxMy40NyAzMC40MTQgMTQuNDM2IDIyLjMw''@;'; + put 'put ''OCAyNS4xNDUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BvbHlnb24+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk2IDUgMiA1Ljg5NiAyIDcgTCAyIDI5IEMgMiAzMC4x''@;'; + put 'put ''MDUgMi44OTYgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NiAzMy4xMDUgNSAzMiA1IFogTSAyMi41NiAyNS45NCBMIDE1LjQ2IDE1LjM2IEwgOS4xMiAyNC42NCBMIDQuNjIgMjAuNjQgTCA2IDE5LjA1IEwgOC43IDIxLjQ0IEwg''@;'; + put 'put ''MTUuNDYgMTEuNTYgTCAyMi42NSAyMi4yNyBMIDI5LjY1IDEzIEwgMzEuMzUgMTQuMjggWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcg''@;'; + put 'put ''TCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAz''@;'; + put 'put ''MC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cG9seWdvbiBwb2ludHM9IjE1LjYyIDE1LjIyMiA5LjYwMiAyMy45NjggNS41NSAyMC4zODQgNi42MSAxOS4xODYgOS4zMDggMjEuNTcyIDE1LjYzNCAxMi4z''@;'; + put 'put ''OCAyMi4zODQgMjIuMzk1IDI5LjEzOCAxMy40NyAzMC40MTQgMTQuNDM2IDIyLjMwOCAyNS4xNDUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCI+PC9wb2x5Z29uPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMwLjMyIDEzLjQ4IEwgMzEuMzgg''@;'; + put 'put ''MTQuMjggTCAyMi41NiAyNS45NCBMIDE1LjQ2IDE1LjM2IEwgOS4xMiAyNC42NCBMIDQuNjIgMjAuNjQgTCA2IDE5LjA1IEwgOC43IDIxLjQ0IEwgMTUuNDYgMTEuNTYgTCAyMi42NSAyMi4yNyBMIDI5LjMxIDEzLjQ2IEMgMjUuMDUgMTMuMSAyMS45NjkgOS4yMzMgMjIuNTcgNSBMIDQgNSBD''@;'; + put 'put ''IDIuODk2IDUgMiA1Ljg5NiAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTYgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDEyLjM0IEMgMzIuODk1IDEzLjAzNiAzMS42MjYgMTMuNDI5IDMwLjMyIDEzLjQ4IFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVk''@;'; + put 'put ''IiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4z''@;'; + put 'put ''NTcgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1LjYyIDE1LjIyMiBMIDkuNjAyIDIzLjk2OCBMIDUuNTUgMjAuMzg0IEwgNi42MSAxOS4xODYgTCA5LjMwOCAyMS41NzIgTCAxNS42MzQgMTIuMzggTCAyMi4zODQgMjIuMzk1IEwgMjcuNzE3IDE1LjM0OCBMIDI5LjcyNCAxNS4zNDggTCAy''@;'; + put 'put ''Mi4zMDggMjUuMTQ1IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0''@;'; + put 'put ''IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDEx''@;'; + put 'put ''Ljk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE2Ljc5NSAx''@;'; + put 'put ''My42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDI3LjQ1MiAxNS4zNTcgTCAyMi4zOCAyMi4wNiBMIDE1LjYzIDEyIEwgOS4yOCAyMS4yOCBMIDYuNzUgMTkuMDQgTCA1LjQyIDIwLjUzIEwgOS42NSAy''@;'; + put 'put ''NC4yOCBMIDE1LjYxIDE1LjU2IEwgMjIuMjggMjUuNSBMIDI5Ljk1OSAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0''@;'; + put 'put ''NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIy''@;'; + put 'put ''IEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGUuQ2xyU2hhcGVQaWVDaGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4x''@;'; + put 'put ''MDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNyAyNyBDIDEyLjU4MiAyNyA5IDIzLjQxOCA5IDE5IEMgOSAxNC41ODIgMTIuNTgyIDExIDE3IDExIEwgMTcgMTkgTCAyNSAxOSBDIDI1IDIzLjQxOCAyMS40MTggMjcgMTcg''@;'; + put 'put ''MjcgWiBNIDIzLjI0NyAyMC40IEwgMTUuNCAyMC40IEwgMTUuNCAxMi44MDIgQyAxMi42NCAxMy41MTMgMTAuNjAxIDE2LjAxOCAxMC42IDE5IEMgMTAuNiAyMi41MzUgMTMuNDY1IDI1LjQgMTcgMjUuNCBDIDIwLjA1NCAyNS40MDEgMjIuNjA4IDIzLjI2MSAyMy4yNDcgMjAuNCBaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDkgQyAyMy40MTggOSAyNyAxMi41ODIgMjcgMTcgTCAxOSAxNyBaIE0gMjUuMTk4IDE1LjQgQyAyNC42MiAxMy4xNSAyMi44NDkgMTEuMzggMjAuNiAxMC44MDEgTCAyMC42IDE1''@;'; + put 'put ''LjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEMgMzIgMzEgMiAzMC4x''@;'; + put 'put ''MDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gMjUgMTkgTCAxNyAxOSBMIDE3IDExIEMgMTIuNTgyIDExIDkgMTQuNTgyIDkgMTkgQyA5IDIzLjQxOCAxMi41ODIgMjcgMTcgMjcgQyAyMS40MTggMjcgMjUgMjMu''@;'; + put 'put ''NDE4IDI1IDE5IFogTSAxOSAxNyBMIDI3IDE3IEMgMjcgMTIuNTgyIDIzLjQxOCA5IDE5IDkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0''@;'; + put 'put ''IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAz''@;'; + put 'put ''NCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE3IDI3IEMgMTIuNTgyIDI3IDkgMjMuNDE4IDkgMTkgQyA5IDE0LjU4MiAxMi41ODIgMTEgMTcgMTEgTCAxNyAxOSBMIDI1IDE5IEMg''@;'; + put 'put ''MjUgMjMuNDE4IDIxLjQxOCAyNyAxNyAyNyBaIE0gMjMuMjQ3IDIwLjQgTCAxNS40IDIwLjQgTCAxNS40IDEyLjgwMiBDIDEyLjY0IDEzLjUxMyAxMC42MDEgMTYuMDE4IDEwLjYgMTkgQyAxMC42IDIyLjUzNSAxMy40NjUgMjUuNCAxNyAyNS40IEMgMjAuMDU0IDI1LjQwMSAyMi42MDggMjMu''@;'; + put 'put ''MjYxIDIzLjI0NyAyMC40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDkgQyAyMy40MTggOSAyNyAxMi41ODIgMjcgMTcgTCAxOSAxNyBaIE0gMjUuMTk4IDE1LjQgQyAyNC42MiAx''@;'; + put 'put ''My4xNSAyMi44NDkgMTEuMzggMjAuNiAxMC44MDEgTCAyMC42IDE1LjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUg''@;'; + put 'put ''MzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAx''@;'; + put 'put ''Mi4zNCBaIE0gMjUgMTkgTCAxNyAxOSBMIDE3IDExIEMgMTIuNTgyIDExIDkgMTQuNTgyIDkgMTkgQyA5IDIzLjQxOCAxMi41ODIgMjcgMTcgMjcgQyAyMS40MTggMjcgMjUgMjMuNDE4IDI1IDE5IFogTSAxOSAxNyBMIDI3IDE3IEMgMjcgMTIuNTgyIDIzLjQxOCA5IDE5IDkgWiI+PC9wYXRo''@;'; + put 'put ''PlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1''@;'; + put 'put ''LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTcgMjcgQyAxMi41ODIgMjcgOSAyMy40MTggOSAxOSBDIDkgMTQuNTgyIDEyLjU4MiAxMSAxNyAxMSBMIDE3IDE5IEwgMjUgMTkgQyAyNSAyMy40MTggMjEuNDE4IDI3IDE3IDI3IFogTSAyMy4yNDcgMjAuNCBMIDE1''@;'; + put 'put ''LjQgMjAuNCBMIDE1LjQgMTIuODAyIEMgMTIuNjQgMTMuNTEzIDEwLjYwMSAxNi4wMTggMTAuNiAxOSBDIDEwLjYgMjIuNTM1IDEzLjQ2NSAyNS40IDE3IDI1LjQgQyAyMC4wNTQgMjUuNDAxIDIyLjYwOCAyMy4yNjEgMjMuMjQ3IDIwLjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyNyAxNyBMIDE5IDE3IEwgMTkgMTUuMzQ1IEMgMTkuMDIxIDE1LjM0OCAxOS4wNDMgMTUuMzQ5IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUu''@;'; + put 'put ''MzU3IEwgMjYuODMxIDE1LjM1NyBDIDI2Ljk0MiAxNS44ODcgMjcgMTYuNDM3IDI3IDE3IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwg''@;'; + put 'put ''MzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRo''@;'; + put 'put ''PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQg''@;'; + put 'put ''NSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE2LjgwNyAxMy41ODMgMTcuNTcxIDE1LjE5NyAxOSAxNS4zNDUgTCAxOSAxNyBMIDI3IDE3IEMgMjcgMTYuNDM3IDI2Ljk0MiAxNS44ODcgMjYuODMxIDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gMjUgMTkgTCAxNyAxOSBMIDE3IDExIEMg''@;'; + put 'put ''MTIuNTgyIDExIDkgMTQuNTgyIDkgMTkgQyA5IDIzLjQxOCAxMi41ODIgMjcgMTcgMjcgQyAyMS40MTggMjcgMjUgMjMuNDE4IDI1IDE5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVy''@;'; + put 'put ''dCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAx''@;'; + put 'put ''MS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxlLkNsclNoYXBlU2NhdHRlclBsb3Q9KDAsYS5jbHJJY29u''@;'; + put 'put ''U1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkg''@;'; + put 'put ''TCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEw''@;'; + put 'put ''LjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcg''@;'; + put 'put ''MTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2''@;'; + put 'put ''OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNIDE1LjE3NiAyNS41MzYg''@;'; + put 'put ''QyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAx''@;'; + put 'put ''OC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1''@;'; + put 'put ''LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFoiLz5cbiAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4yMDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAyMC43OTkgMjcuNTI4IDIwLjYzNyAyNy43''@;'; + put 'put ''MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAx''@;'; + put 'put ''NS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42NzkgMTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgzIEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYg''@;'; + put 'put ''MTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwg''@;'; + put 'put ''MiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcg''@;'; + put 'put ''MTYuMDk0IDEzLjkwNSAxNS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3''@;'; + put 'put ''IDEyLjU2MSAxMS4yNSBMIDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45''@;'; + put 'put ''ODIgOC43ODkgMTUuNDg3IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMg''@;'; + put 'put ''MjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcu''@;'; + put 'put ''NDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQu''@;'; + put 'put ''ODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3''@;'; + put 'put ''LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIx''@;'; + put 'put ''MiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAy''@;'; + put 'put ''MC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQg''@;'; + put 'put ''MjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAz''@;'; + put 'put ''Mi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0''@;'; + put 'put ''IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMu''@;'; + put 'put ''Mzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAx''@;'; + put 'put ''MC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgZD0iTSAxNS4xNzYgMjUuNTM2IEMgMTUuNDg4''@;'; + put 'put ''IDI1Ljg0NyAxNS45OTQgMjUuODQ3IDE2LjMwNiAyNS41MzYgTCAxNy40NjYgMjQuMzc2IEwgMTguNjI2IDI1LjUzNiBDIDE5LjAzOSAyNS45OTIgMTkuNzkyIDI1LjgzIDE5Ljk4IDI1LjI0MyBDIDIwLjA3NyAyNC45NDQgMTkuOTg5IDI0LjYxNyAxOS43NTYgMjQuNDA2IEwgMTguNjA2IDIz''@;'; + put 'put ''LjI3NiBMIDE5Ljc2NiAyMi4xMTYgQyAyMC4yMjIgMjEuNzAyIDIwLjA2IDIwLjk1IDE5LjQ3NCAyMC43NjEgQyAxOS4xNzUgMjAuNjY1IDE4Ljg0NyAyMC43NTMgMTguNjM2IDIwLjk4NiBMIDE3LjQ3NiAyMi4xNDYgTCAxNi4zMDYgMjAuOTU2IEMgMTUuODkyIDIwLjQ5OSAxNS4xNCAyMC42''@;'; + put 'put ''NjIgMTQuOTUyIDIxLjI0OCBDIDE0Ljg1NSAyMS41NDcgMTQuOTQzIDIxLjg3NSAxNS4xNzYgMjIuMDg2IEwgMTYuMzM2IDIzLjI3NiBMIDE1LjE3NiAyNC40MDYgQyAxNC44NjQgMjQuNzE4IDE0Ljg2NCAyNS4yMjMgMTUuMTc2IDI1LjUzNiBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAu''@;'; + put 'put ''NjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYg''@;'; + put 'put ''MjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEz''@;'; + put 'put ''IEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41''@;'; + put 'put ''NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQg''@;'; + put 'put ''TCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4z''@;'; + put 'put ''OTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEw''@;'; + put 'put ''LjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFogTSAxNS4xNzYgMjUuNTM2IEMgMTUuNDg4IDI1Ljg0NyAxNS45OTQgMjUuODQ3IDE2LjMwNiAyNS41MzYgTCAxNy40NjYgMjQuMzc2IEwgMTguNjI2IDI1LjUzNiBDIDE5LjAz''@;'; + put 'put ''OSAyNS45OTIgMTkuNzkyIDI1LjgzIDE5Ljk4IDI1LjI0MyBDIDIwLjA3NyAyNC45NDQgMTkuOTg5IDI0LjYxNyAxOS43NTYgMjQuNDA2IEwgMTguNjA2IDIzLjI3NiBMIDE5Ljc2NiAyMi4xMTYgQyAyMC4yMjIgMjEuNzAyIDIwLjA2IDIwLjk1IDE5LjQ3NCAyMC43NjEgQyAxOS4xNzUgMjAu''@;'; + put 'put ''NjY1IDE4Ljg0NyAyMC43NTMgMTguNjM2IDIwLjk4NiBMIDE3LjQ3NiAyMi4xNDYgTCAxNi4zMDYgMjAuOTU2IEMgMTUuODkyIDIwLjQ5OSAxNS4xNCAyMC42NjIgMTQuOTUyIDIxLjI0OCBDIDE0Ljg1NSAyMS41NDcgMTQuOTQzIDIxLjg3NSAxNS4xNzYgMjIuMDg2IEwgMTYuMzM2IDIzLjI3''@;'; + put 'put ''NiBMIDE1LjE3NiAyNC40MDYgQyAxNC44NjQgMjQuNzE4IDE0Ljg2NCAyNS4yMjMgMTUuMTc2IDI1LjUzNiBaIE0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4yMDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAy''@;'; + put 'put ''MC43OTkgMjcuNTI4IDIwLjYzNyAyNy43MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40''@;'; + put 'put ''NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAxNS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42NzkgMTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgz''@;'; + put 'put ''IEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYgMTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1''@;'; + put 'put ''IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNIDkuMTAxIDE1LjggQyA5LjQx''@;'; + put 'put ''MyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQg''@;'; + put 'put ''TCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAx''@;'; + put 'put ''MS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBkPSJNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAu''@;'; + put 'put ''MDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2''@;'; + put 'put ''IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0''@;'; + put 'put ''IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4y''@;'; + put 'put ''MDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAyMC43OTkgMjcuNTI4IDIwLjYzNyAyNy43MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43''@;'; + put 'put ''OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAxNS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42Nzkg''@;'; + put 'put ''MTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgzIEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYgMTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVk''@;'; + put 'put ''IGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4w''@;'; + put 'put ''MzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE2''@;'; + put 'put ''Ljc5NSAxMy42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQg''@;'; + put 'put ''TCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4z''@;'; + put 'put ''OTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEw''@;'; + put 'put ''LjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFogTSAxNS4xNzYgMjUuNTM2IEMgMTUuNDg4IDI1Ljg0NyAxNS45OTQgMjUuODQ3IDE2LjMwNiAyNS41MzYgTCAxNy40NjYgMjQuMzc2IEwgMTguNjI2IDI1LjUzNiBDIDE5LjAz''@;'; + put 'put ''OSAyNS45OTIgMTkuNzkyIDI1LjgzIDE5Ljk4IDI1LjI0MyBDIDIwLjA3NyAyNC45NDQgMTkuOTg5IDI0LjYxNyAxOS43NTYgMjQuNDA2IEwgMTguNjA2IDIzLjI3NiBMIDE5Ljc2NiAyMi4xMTYgQyAyMC4yMjIgMjEuNzAyIDIwLjA2IDIwLjk1IDE5LjQ3NCAyMC43NjEgQyAxOS4xNzUgMjAu''@;'; + put 'put ''NjY1IDE4Ljg0NyAyMC43NTMgMTguNjM2IDIwLjk4NiBMIDE3LjQ3NiAyMi4xNDYgTCAxNi4zMDYgMjAuOTU2IEMgMTUuODkyIDIwLjQ5OSAxNS4xNCAyMC42NjIgMTQuOTUyIDIxLjI0OCBDIDE0Ljg1NSAyMS41NDcgMTQuOTQzIDIxLjg3NSAxNS4xNzYgMjIuMDg2IEwgMTYuMzM2IDIzLjI3''@;'; + put 'put ''NiBMIDE1LjE3NiAyNC40MDYgQyAxNC44NjQgMjQuNzE4IDE0Ljg2NCAyNS4yMjMgMTUuMTc2IDI1LjUzNiBaIE0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4yMDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAy''@;'; + put 'put ''MC43OTkgMjcuNTI4IDIwLjYzNyAyNy43MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40''@;'; + put 'put ''NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAxNS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42NzkgMTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgz''@;'; + put 'put ''IEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYgMTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0''@;'; + put 'put ''IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQg''@;'; + put 'put ''MTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxyZWN0IHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgZmlsbC1vcGFjaXR5PSIwIi8+JyksZS5DbHJTaGFwZVRpY2tDaGFy''@;'; + put 'put ''dD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0''@;'; + put 'put ''IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0gNiAyNSBMIDggMjUgTCA4IDIyIEwgMTAgMjIg''@;'; + put 'put ''TCAxMCAyNSBMIDEzIDI1IEwgMTMgMjIgTCAxNSAyMiBMIDE1IDI1IEwgMTggMjUgTCAxOCAyMiBMIDIwIDIyIEwgMjAgMjUgTCAyMyAyNSBMIDIzIDIyIEwgMjUgMjIgTCAyNSAyNSBMIDI3LjcyMyAyNSBDIDI4LjAyMyAyNS4wMiAyOC4yOTMgMjUuMTggMjguNDYzIDI1LjQzIEMgMjguOTAz''@;'; + put 'put ''IDI2LjA2IDI4LjQ4MyAyNi45MyAyNy43MjMgMjYuOTkgTCA2IDI2Ljk5MSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMw''@;'; + put 'put ''LjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSA2IDI2Ljk5MSBMIDI3LjcyMyAyNi45OSBDIDI4LjQ4MyAyNi45MyAyOC45MDMgMjYuMDYgMjguNDYzIDI1LjQzIEMgMjguMjkzIDI1LjE4IDI4LjAyMyAyNS4w''@;'; + put 'put ''MiAyNy43MjMgMjUgTCAyNSAyNSBMIDI1IDIyIEwgMjMgMjIgTCAyMyAyNSBMIDIwIDI1IEwgMjAgMjIgTCAxOCAyMiBMIDE4IDI1IEwgMTUgMjUgTCAxNSAyMiBMIDEzIDIyIEwgMTMgMjUgTCAxMCAyNSBMIDEwIDIyIEwgOCAyMiBMIDggMjUgTCA2IDI1IFoiLz5cbiAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41''@;'; + put 'put ''NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiLz5cbiAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNIDYgMjUgTCA4IDI1IEwgOCAyMiBMIDEwIDIyIEwgMTAgMjUgTCAxMyAyNSBMIDEzIDIyIEwgMTUgMjIgTCAxNSAyNSBMIDE4IDI1IEwgMTggMjIgTCAyMCAyMiBMIDIwIDI1IEwgMjMg''@;'; + put 'put ''MjUgTCAyMyAyMiBMIDI1IDIyIEwgMjUgMjUgTCAyNy43MjMgMjUgQyAyOC4wMjMgMjUuMDIgMjguMjkzIDI1LjE4IDI4LjQ2MyAyNS40MyBDIDI4LjkwMyAyNi4wNiAyOC40ODMgMjYuOTMgMjcuNzIzIDI2Ljk5IEwgNiAyNi45OTEgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMg''@;'; + put 'put ''MzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAz''@;'; + put 'put ''Mi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA2IDI2Ljk5MSBMIDI3LjcyMyAyNi45OSBDIDI4LjQ4MyAyNi45MyAyOC45MDMgMjYuMDYgMjguNDYzIDI1LjQzIEMgMjguMjkzIDI1LjE4IDI4LjAyMyAyNS4wMiAyNy43MjMgMjUgTCAyNSAyNSBMIDI1IDIyIEwgMjMgMjIgTCAyMyAyNSBMIDIw''@;'; + put 'put ''IDI1IEwgMjAgMjIgTCAxOCAyMiBMIDE4IDI1IEwgMTUgMjUgTCAxNSAyMiBMIDEzIDIyIEwgMTMgMjUgTCAxMCAyNSBMIDEwIDIyIEwgOCAyMiBMIDggMjUgTCA2IDI1IFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEg''@;'; + put 'put ''MiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0gNiAyNSBMIDggMjUgTCA4IDIyIEwgMTAgMjIgTCAxMCAyNSBMIDEzIDI1IEwgMTMgMjIgTCAxNSAyMiBMIDE1IDI1IEwgMTggMjUgTCAxOCAyMiBMIDIwIDIyIEwgMjAgMjUgTCAyMyAyNSBMIDIzIDIyIEwgMjUgMjIgTCAyNSAyNSBMIDI3LjcyMyAy''@;'; + put 'put ''NSBDIDI4LjAyMyAyNS4wMiAyOC4yOTMgMjUuMTggMjguNDYzIDI1LjQzIEMgMjguOTAzIDI2LjA2IDI4LjQ4MyAyNi45MyAyNy43MjMgMjYuOTkgTCA2IDI2Ljk5MSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAx''@;'; + put 'put ''My4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBD''@;'; + put 'put ''IDE2Ljc5NSAxMy42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gNiAyNi45OTEgTCAyNy43MjMgMjYuOTkgQyAyOC40ODMgMjYuOTMgMjguOTAzIDI2LjA2IDI4LjQ2MyAyNS40''@;'; + put 'put ''MyBDIDI4LjI5MyAyNS4xOCAyOC4wMjMgMjUuMDIgMjcuNzIzIDI1IEwgMjUgMjUgTCAyNSAyMiBMIDIzIDIyIEwgMjMgMjUgTCAyMCAyNSBMIDIwIDIyIEwgMTggMjIgTCAxOCAyNSBMIDE1IDI1IEwgMTUgMjIgTCAxMyAyMiBMIDEzIDI1IEwgMTAgMjUgTCAxMCAyMiBMIDggMjIgTCA4IDI1''@;'; + put 'put ''IEwgNiAyNSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMu''@;'; + put 'put ''MDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0''@;'; + put 'put ''IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+JyksZS5DbHJTaGFwZUJlbGxDdXJ2ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsMjlIM0ExLDEsMCwxLDEsMywyN0gzM0ExLDEsMCwxLDEsMzMsMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsMjVoLS42MmE4LjExLDguMTEsMCwwLDEtOC02LjY3QzIzLjYyLDE0LjQ0LDIxLjg5LDcuOTQsMTgsNy45NHMtNS42OSw2LjUxLTYuMzgsMTAuMzlhOC4xMSw4LjExLDAsMCwxLTgsNi42NUgzYTEsMSwwLDEsMSwwLTJoLjZBNi4xMSw2''@;'; + put 'put ''LjExLDAsMCwwLDkuNiwxOGMxLjQxLTcuODgsNC4zLTEyLDguMzUtMTJzNi45Myw0LjE2LDguMzMsMTJhNi4xMSw2LjExLDAsMCwwLDYsNUgzM2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksZS5DaGFydFNoYXBlcz17ImF4''@;'; + put 'put ''aXMtY2hhcnQiOmUuQ2xyU2hhcGVBeGlzQ2hhcnQsImJhci1jaGFydCI6ZS5DbHJTaGFwZUJhckNoYXJ0LCJidWJibGUtY2hhcnQiOmUuQ2xyU2hhcGVCdWJibGVDaGFydCwiY2xvdWQtY2hhcnQiOmUuQ2xyU2hhcGVDbG91ZENoYXJ0LCJjdXJ2ZS1jaGFydCI6ZS5DbHJTaGFwZUN1cnZlQ2hh''@;'; + put 'put ''cnQsImdyaWQtY2hhcnQiOmUuQ2xyU2hhcGVHcmlkQ2hhcnQsImxpbmUtY2hhcnQiOmUuQ2xyU2hhcGVMaW5lQ2hhcnQsInBpZS1jaGFydCI6ZS5DbHJTaGFwZVBpZUNoYXJ0LCJ0aWNrLWNoYXJ0IjplLkNsclNoYXBlVGlja0NoYXJ0LCJzY2F0dGVyLXBsb3QiOmUuQ2xyU2hhcGVTY2F0dGVy''@;'; + put 'put ''UGxvdCwiYm94LXBsb3QiOmUuQ2xyU2hhcGVCb3hQbG90LCJoZWF0LW1hcCI6ZS5DbHJTaGFwZUhlYXRNYXAsImJlbGwtY3VydmUiOmUuQ2xyU2hhcGVCZWxsQ3VydmV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNoYXJ0U2hhcGVzLCJhbmFseXRpY3MiLCgwLHIuZGVzY3JpcHRvckNvbmZp''@;'; + put 'put ''ZykoZS5DaGFydFNoYXBlc1sibGluZS1jaGFydCJdKSksInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKGUuQ2hhcnRTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hh''@;'; + put 'put ''cGVzL2NvbW1lcmNlLXNoYXBlcy50cyI6ZnVuY3Rpb24oQSxlLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5Db21tZXJjZVNoYXBlcz1lLkNsclNoYXBlRmFjdG9yeT1lLkNsclNoYXBlRW1wbG95ZWU9ZS5DbHJTaGFw''@;'; + put 'put ''ZUVtcGxveWVlR3JvdXA9ZS5DbHJTaGFwZVJ1YmxlPWUuQ2xyU2hhcGVQZXNvPWUuQ2xyU2hhcGVDb2luQmFnPWUuQ2xyU2hhcGVCaXRjb2luPWUuQ2xyU2hhcGVZZW49ZS5DbHJTaGFwZVdvbj1lLkNsclNoYXBlUnVwZWU9ZS5DbHJTaGFwZVBvdW5kPWUuQ2xyU2hhcGVFQ2hlY2s9ZS5DbHJT''@;'; + put 'put ''aGFwZURvbGxhckJpbGw9ZS5DbHJTaGFwZUJhbms9ZS5DbHJTaGFwZUNyZWRpdENhcmQ9ZS5DbHJTaGFwZURvbGxhcj1lLkNsclNoYXBlRXVybz1lLkNsclNoYXBlU3RvcmU9ZS5DbHJTaGFwZVdhbGxldD1lLkNsclNoYXBlU2hvcHBpbmdDYXJ0PWUuQ2xyU2hhcGVQaWdneUJhbms9ZS5DbHJT''@;'; + put 'put ''aGFwZVNob3BwaW5nQmFnPWUuQ2xyU2hhcGVDYWxjdWxhdG9yPXZvaWQgMDt2YXIgcj1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpO2E9YSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxlLkNsclNo''@;'; + put 'put ''YXBlQ2FsY3VsYXRvcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk04LDMyVjRI''@;'; + put 'put ''MjhWMzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEyLDhIMjUuNjdWNkgxMWExLDEsMCwwLDAtMSwxdjQuNjdoMloiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0zIiBwb2ludHM9IjEyIDE2IDEwIDE2IDEwIDE4IDE0IDE4IDE0IDE0IDEyIDE0IDEyIDE2Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgcG9pbnRzPSIyNCAxNiAyMiAxNiAyMiAxOCAyNiAx''@;'; + put 'put ''OCAyNiAxNCAyNCAxNCAyNCAxNiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHBvaW50cz0iMTggMTYgMTYgMTYgMTYgMTggMjAgMTggMjAgMTQgMTggMTQgMTggMTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBwb2ludHM9IjEyIDIyIDEwIDIyIDEwIDI0IDE0IDI0IDE0IDIwIDEyIDIwIDEyIDIyIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgcG9pbnRz''@;'; + put 'put ''PSIyNCAyMiAyMiAyMiAyMiAyNCAyNiAyNCAyNiAyMCAyNCAyMCAyNCAyMiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHBvaW50cz0iMTggMjIgMTYgMjIgMTYgMjQgMjAgMjQgMjAgMjAgMTggMjAgMTggMjIiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiBwb2ludHM9IjEyIDI4IDEwIDI4IDEwIDMwIDE0IDMwIDE0IDI2IDEyIDI2IDEyIDI4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMTAiIHBvaW50cz0iMjQgMjggMjIgMjggMjIgMzAgMjYgMzAgMjYgMjYgMjQgMjYgMjQgMjgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgcG9pbnRzPSIxOCAyOCAxNiAyOCAxNiAzMCAy''@;'; + put 'put ''MCAzMCAyMCAyNiAxOCAyNiAxOCAyOCIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0xMiwy''@;'; + put 'put ''OEgxMFYyNmgyWm0wLTZIMTBWMjBoMlptMC02SDEwVjE0aDJabTcsMTJIMTdWMjZoMlptMC02SDE3VjIwaDJabTAtNkgxN1YxNGgyWm03LDEySDI0VjI2aDJabTAtNkgyNFYyMGgyWm0wLTZIMjRWMTRoMlptMC03SDEwVjVIMjZaIi8+JyksZS5DbHJTaGFwZVNob3BwaW5nQmFnPSgwLGEuY2xy''@;'; + put 'put ''SWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjUsMTJWOS4wNWE3LDcsMCwxLDAtMTQsMHY3YTEsMSwwLDAsMCwyLDBWMTRoOFYxMkgxM1Y5LjA1YTUsNSwwLDEsMSwxMCwwVjE2YTEsMSwwLDEsMCwyLDBWMTRoNVYzMkg2VjE0''@;'; + put 'put ''SDlWMTJINFYzMi4wOUExLjkxLDEuOTEsMCwwLDAsNS45MSwzNEgzMC4wOUExLjkxLDEuOTEsMCwwLDAsMzIsMzIuMDlWMTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTMsOS4yMmE1LDUsMCwxLDEsMTAsMFYxMmgy''@;'; + put 'put ''VjkuMjJhNyw3LDAsMSwwLTE0LDBWMTJoMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yNSwxMnYzLjFhMSwxLDAsMSwxLTIsMFYxMkgxM3YzLjFhMSwxLDAsMCwxLTIsMFYxMkg0VjMyYTIsMiwwLDAsMCwyLDJIMzBh''@;'; + put 'put ''MiwyLDAsMCwwLDItMlYxMloiLz4nKSxlLkNsclNoYXBlUGlnZ3lCYW5rPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTkuNzIsMTAuNDdhMTEuNjUsMTEuNjUsMCwwLDAtNi4zMS41MkEuOC44LDAsMSwwLDE0''@;'; + put 'put ''LDEyLjQ4LDEwLjExLDEwLjExLDAsMCwxLDE5LjQ0LDEyYS44LjgsMCwxLDAsLjI4LTEuNTdaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMjUuMzgiIGN5PSIxNi43MSIgcj0iMS4zNiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zNS41MSwxOC42M2ExLDEsMCwwLDAtLjg0LS40NCwzLjQyLDMuNDIsMCwwLDEtMi4wOS0xLjEyLDE3LjM1LDE3LjM1LDAsMCwxLTIuNjMtMy43OGwyLjg4LTQuNUExLjg5LDEuODksMCwwLDAs''@;'; + put 'put ''MzMsN2ExLjc3LDEuNzcsMCwwLDAtMS4zMy0xLDEwLjEyLDEwLjEyLDAsMCwwLTUuMzkuNzUsMTIuNzIsMTIuNzIsMCwwLDAtMi43MiwxLjYzLDE2Ljk0LDE2Ljk0LDAsMCwwLTUuMTYtMS4zOUMxMS4zMSw2LjMsNC44MywxMC45LDQsMTdINGEyLjU2LDIuNTYsMCwwLDEtMS4zOC0xLjUzLDEu''@;'; + put 'put ''ODEsMS44MSwwLDAsMSwuMTQtMS40LDEuMTksMS4xOSwwLDAsMSwuNDMtLjQzLDEuMDgsMS4wOCwwLDAsMC0xLjEyLTEuODVBMy4zMSwzLjMxLDAsMCwwLC45MSwxM2E0LDQsMCwwLDAtLjMzLDMuMDhBNC43Niw0Ljc2LDAsMCwwLDMsMTguOTVsLjkyLjQ2YTE3LjU4LDE3LjU4LDAsMCwwLDEu''@;'; + put 'put ''ODIsN2wuMTcuMzhBMjMsMjMsMCwwLDAsOS4yLDMxLjg4YTEsMSwwLDAsMCwuNzUuMzRoNC41MmExLDEsMCwwLDAsLjkyLTEuMzhMMTUsMjkuOTRsMS4xOC4xM2EyMC4zMywyMC4zMywwLDAsMCw0LDBjLjM3LjYuNzcsMS4yLDEuMjEsMS43OWExLDEsMCwwLDAsLjguNDFoNC4zNGExLDEsMCww''@;'; + put 'put ''LDAsLjkyLTEuMzljLS4xNy0uNC0uMzQtLjgzLS40Ny0xLjItLjE4LS41My0uMzItMS0uNDMtMS40NUExMy4xOCwxMy4xOCwwLDAsMCwyOS41NiwyNmExMi41LDEyLjUsMCwwLDAsMywwLDEsMSwwLDAsMCwuNzgtLjYybDIuMjYtNS44MUExLDEsMCwwLDAsMzUuNTEsMTguNjNabS0zLjc4LDUu''@;'; + put 'put ''NDRhMTEuMzcsMTEuMzcsMCwwLDEtMi4zNS0uMTFoMGE4LjIsOC4yLDAsMCwxLTIuNTMtLjg3LDEsMSwwLDAsMC0uOTMsMS43NywxMS43MiwxMS43MiwwLDAsMCwxLjI5LjU4LDgsOCwwLDAsMS0xLjgsMS4xNmwtMS4wNi40OHMuNDksMi4xOS44MiwzLjE2SDIyLjc5Yy0uMjQtLjM0LTEuNDUt''@;'; + put 'put ''Mi4zNi0xLjQ1LTIuMzZsLS42Ny4wOWExOC41MywxOC41MywwLDAsMS00LjI1LjEyYy0uNjYtLjA2LTEuNzYtLjItMi42Mi0uMzVsLTEuNTUtLjI3cy42MywyLjQzLjc1LDIuNzR2MEgxMC40MkEyMC41NywyMC41NywwLDAsMSw3Ljc2LDI2bC0uMTgtLjM5QTE0LjYyLDE0LjYyLDAsMCwxLDYs''@;'; + put 'put ''MTcuNDhjLjU0LTUuMTksNi4xMi05LjExLDEyLjE5LTguNTRhMTUuNDcsMTUuNDcsMCwwLDEsNS4wOCwxLjQ4bC42Mi4yOS41LS40N0ExMC4yOSwxMC4yOSwwLDAsMSwyNyw4LjU0YTguMjUsOC4yNSwwLDAsMSw0LS42NWwtMy4zOCw1LjI5LjI1LjVoMGEyMS4xNiwyMS4xNiwwLDAsMCwzLjMx''@;'; + put 'put ''LDQuODQsNi40OSw2LjQ5LDAsMCwwLDIuMTQsMS4zOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNSwxOC44N0E1LjgzLDUuODMsMCwwLDEsMzMsMTcuNjFhMjEuNjMsMjEuNjMsMCwwLDEtMy4yOS00Ljg0bDMuMzkt''@;'; + put 'put ''NS4yOWEuOS45LDAsMCwwLS41NC0xLjM4LDkuNjcsOS42NywwLDAsMC01LjEzLjcyLDEyLDEyLDAsMCwwLTMuMTMsMkExNy4zNywxNy4zNywwLDAsMCwxOC42LDcuMTVDMTEuOCw2LjUyLDUuMjcsMTAuOSw0LjU0LDE3bC0uMTQtLjA3QTIuNzYsMi43NiwwLDAsMSwyLjksMTUuMjlhMiwyLDAs''@;'; + put 'put ''MCwxLC4xNS0xLjU1LDEuMzIsMS4zMiwwLDAsMSwuNDctLjQ4LDEuMDgsMS4wOCwwLDEsMC0xLjEyLTEuODUsMy40NSwzLjQ1LDAsMCwwLTEuMjMsMS4yNUE0LjE2LDQuMTYsMCwwLDAsLjg0LDE1LjlhNSw1LDAsMCwwLDIuNTcsM2wxLC41NGExOC42MiwxOC42MiwwLDAsMCwyLDcuMywyMywy''@;'; + put 'put ''MywwLDAsMCwzLDQuNzksMSwxLDAsMCwwLC44LjM4aDMuNjFhLjUyLjUyLDAsMCwwLC40LS43NUwxNCwzMC4zOGExMSwxMSwwLDAsMS0uMzMtMS4xOGMuOTEuMTYsMi4wOC4zMSwyLjg3LjM4YTIwLjA3LDIwLjA3LDAsMCwwLDMuMTIsMGMuMzkuNy43OSwxLjMzLDEuMTUsMS44NWEuOTMuOTMs''@;'; + put 'put ''MCwwLDAsLjc3LjQxaDMuMTFhLjY1LjY1LDAsMCwwLC42MS0uODVjLS4yMy0uNzQtLjUzLTEuNzUtLjcxLTIuMzdhMTUuOSwxNS45LDAsMCwwLDMuNzUtMS43NmMuMTYtLjExLjMyLS4yNi40OC0uMzlhMTMuNzcsMTMuNzcsMCwwLDEtMi40Mi0xLC44LjgsMCwwLDEsLjc0LTEuNDIsMTEuNjQs''@;'; + put 'put ''MTEuNjQsMCwwLDAsMy4xOCwxLjEsMTMuMzEsMTMuMzEsMCwwLDAsMi42OC4xMiwxLDEsMCwwLDAsLjktLjY2bDEuNzMtNC40NEExLDEsMCwwLDAsMzUsMTguODdaTTEzLjc5LDExLjU5YS44Ni44NiwwLDAsMS0uMy4wNS44NS44NSwwLDAsMS0uMy0xLjY0LDEyLjQxLDEyLjQxLDAsMCwxLDYu''@;'; + put 'put ''NjktLjU1Ljg1Ljg1LDAsMSwxLS4zLDEuNjdBMTAuNzUsMTAuNzUsMCwwLDAsMTMuNzksMTEuNTlabTEyLjUyLDYuMTJhMS40NCwxLjQ0LDAsMSwxLDEuNDQtMS40NEExLjQ0LDEuNDQsMCwwLDEsMjYuMzIsMTcuNzJaIi8+JyksZS5DbHJTaGFwZVNob3BwaW5nQ2FydD0oMCxhLmNsckljb25T''@;'; + put 'put ''VkcpKCc8Y2lyY2xlIGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3IiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjA4LDUuMzdBMSwxLDAsMCwwLDMyLjMxLDVIMTEuNDlsLjY1LDJIMzFMMjguMzMsMTloLTE1TDguNzYsNC41M2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjJhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42NGw0LjU5''@;'; + put 'put ''LDE0LjVMOS45NSwyMS40OGwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTNhMSwxLDAsMCwwLDEtLjc4bDMuMTctMTRBMSwxLDAsMCwwLDMz''@;'; + put 'put ''LjA4LDUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjMzIiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVy''@;'; + put 'put ''dGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjciIGN5PSIyOS43NSIgcj0iMi4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjIwLjcxIDcgMjEuODcg''@;'; + put 'put ''NSAxMS40OSA1IDEyLjE0IDcgMjAuNzEgNyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMTUsMTUuNCwyOC4zMywxOWgtMTVMOC43Niw0LjUzYTEsMSwwLDAsMC0uNjYtLjY1''@;'; + put 'put ''TDQsMi42MmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY0bDQuNTksMTQuNUw5Ljk1LDIxLjQ4bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4x''@;'; + put 'put ''M2ExLDEsMCwwLDAsMS0uNzhsMS4wOS00LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMu''@;'; + put 'put ''NjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; + put 'put ''IGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNTcsN2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xSDExLjQ5bC42NSwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVsLS40MiwwTDI4LjMzLDE5aC0xNUw4Ljc2LDQuNTNhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjYyYTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjRsNC41OSwxNC41TDkuOTUsMjEuNDhsLS4xMy4x''@;'; + put 'put ''M0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEzYTEsMSwwLDAsMCwxLS43OGwxLjU3LTYuOTFBNy41MSw3LjUxLDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFk''@;'; + put 'put ''Z2UiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy41IiBjeT0iMjkuNSIgcj0iMi41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xLDYuMzlBMSwxLDAsMCwwLDMyLjMxLDZIOS4yMUw4Ljc2LDQuNTdhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjY2YTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjhsNC41OCwxNC40N0w5Ljk1LDIxLjQ5bC0u''@;'; + put 'put ''MTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xMmExLDEsMCwwLDAsMS0uNzZsMy4yLTEzQTEsMSwwLDAsMCwzMy4xLDYuMzlaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTMuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9''@;'; + put 'put ''IjI2LjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDkuMjFMOC43Niw0LjU3''@;'; + put 'put ''YTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42NmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY4bDQuNTgsMTQuNDdMOS45NSwyMS40OWwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAs''@;'; + put 'put ''MS0uNTYtMWwyLjQxLTJIMjkuMTJhMSwxLDAsMCwwLDEtLjc2bDEuMTktNC44NFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCww''@;'; + put 'put ''LDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxjaXJjbGUgY3g9IjEzLjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg5LjIxTDguNzYsNC41N2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjZhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42OGw0LjU4LDE0''@;'; + put 'put ''LjQ3TDkuOTUsMjEuNDlsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEyYTEsMSwwLDAsMCwxLS43NmwxLjcxLTdBNy40OSw3LjQ5LDAsMCwx''@;'; + put 'put ''LDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVXYWxsZXQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwxNUgzMVY5YTEsMSwwLDAsMC0xLTFINmExLDEsMCwwLDEtMS0uODJWNi44MkExLDEsMCwwLDEs''@;'; + put 'put ''Niw2SDI5LjU4YTEsMSwwLDAsMCwwLTJINkEzLDMsMCwwLDAsMyw3YTMuMDgsMy4wOCwwLDAsMCwwLC4zNlYyNy45M0E0LjEsNC4xLDAsMCwwLDcuMTMsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNWgxYTEsMSwwLDAsMCwxLTFWMTZBMSwxLDAsMCwwLDMyLDE1Wk0yOSwzMEg3LjEzQTIuMTEsMi4x''@;'; + put 'put ''MSwwLDAsMSw1LDI3LjkzVjkuODhBMy4xMSwzLjExLDAsMCwwLDYsMTBIMjl2NUgyMmE1LDUsMCwwLDAsMCwxMGg3Wm0yLTdIMjJhMywzLDAsMCwxLDAtNkgzMVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGN4PSIy''@;'; + put 'put ''My4wMSIgY3k9IjIwIiByPSIxLjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi45NCwxNEgzMVY5YTEsMSwwLDAsMC0xLTFINkExLDEsMCwwLDEsNSw3SDVWN0ExLDEsMCwwLDEsNiw2SDI5LjZhMSwxLDAsMSwwLDAt''@;'; + put 'put ''Mkg2QTIuOTQsMi45NCwwLDAsMCwzLDYuODh2MjFBNC4xMyw0LjEzLDAsMCwwLDcuMTUsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNmgxLjk0YS45My45MywwLDAsMCwxLS45MXYtMTBBMS4wOCwxLjA4LDAsMCwwLDMyLjk0LDE0Wk0zMiwyNGwtOC41OCwwYTMuODcsMy44NywwLDAsMS0zLjczLTQs''@;'; + put 'put ''My44NywzLjg3LDAsMCwxLDMuNzMtNEwzMiwxNloiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjI0LjA0IiBjeT0iMTkuOTIiIHI9IjEuNSIvPicpLGUuQ2xyU2hhcGVTdG9yZT0oMCxhLmNsckljb25TVkcpKCc8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4LDMwSDE2VjIySDE0djhIOFYyMkg2djhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjIySDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTIiIGQ9Ik0zMy43OSwxMy4yNywyOS43MSw1LjExQTIsMiwwLDAsMCwyNy45Miw0SDguMDhBMiwyLDAsMCwwLDYuMjksNS4xMUwyLjIxLDEzLjI3YTIsMiwwLDAsMC0uMjEuOXYzLjA4YTIsMiwwLDAsMCwuNDYsMS4yOEE0LjY3LDQuNjcsMCwwLDAsNiwyMC4xM2E0LjcyLDQu''@;'; + put 'put ''NzIsMCwwLDAsMy0xLjA3LDQuNzMsNC43MywwLDAsMCw2LDAsNC43Myw0LjczLDAsMCwwLDYsMCw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzIsNC43MiwwLDAsMCw2LjUzLS41MkEyLDIsMCwwLDAsMzQsMTcuMjZWMTQuMTdBMiwyLDAsMCwwLDMzLjc5LDEzLjI3Wk0zMCwxOC4xM0EyLjY4LDIu''@;'; + put 'put ''NjgsMCwwLDEsMjcuODIsMTdMMjcsMTUuODgsMjYuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEwyMSwxNS44OCwyMC4xOSwxN2EyLjcxLDIuNzEsMCwwLDEtNC4zNywwTDE1LDE1Ljg4LDE0LjE5LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OCw4LjE4LDE3QTIuNjgsMi42''@;'; + put 'put ''OCwwLDAsMSw2LDE4LjEzYTIuNjQsMi42NCwwLDAsMS0yLS44OFYxNC4xN0w4LjA4LDZIMjcuOTJMMzIsMTQuMTZ2LjY3bDAsMi4zOUEyLjY3LDIuNjcsMCwwLDEsMzAsMTguMTNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBk''@;'; + put 'put ''PSJNMjgsMzBIMTZWMjJIMTR2OEg4VjIySDZ2OGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMjJIMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuNzksMTMuMjcsMjkuNzEsNS4xMUEyLDIsMCwwLDAs''@;'; + put 'put ''MjcuOTIsNEg4LjA4QTIsMiwwLDAsMCw2LjI5LDUuMTFMMi4yMSwxMy4yN2EyLDIsMCwwLDAtLjIxLjl2My4wOGEyLDIsMCwwLDAsLjQ2LDEuMjhBNC42Nyw0LjY3LDAsMCwwLDYsMjAuMTNhNC43Miw0LjcyLDAsMCwwLDMtMS4wNyw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzMsNC43MywwLDAs''@;'; + put 'put ''MCw2LDAsNC43Myw0LjczLDAsMCwwLDYsMCw0LjcyLDQuNzIsMCwwLDAsNi41My0uNTJBMiwyLDAsMCwwLDM0LDE3LjI2VjE0LjE3QTIsMiwwLDAsMCwzMy43OSwxMy4yN1pNMTUsMTQuNHYxLjUyTDE0LjE4LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OFYxNC40TDExLjU5LDZI''@;'; + put 'put ''MTZabTEyLDEuNDhMMjYuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEwyMSwxNS44OGwwLDBWMTQuNEwyMCw2aDQuNDVMMjcsMTQuNFoiLz4nKSxlLkNsclNoYXBlRXVybz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgZD0iTTMxLjQ4LDI4LjQ5YTEsMSwwLDAsMC0xLjM4LS4zMkExMiwxMiwwLDAsMSwxMi40NSwyMkgyNC4xNmExLDEsMCwwLDAsMC0ySDExLjkzYTExLjE2LDExLjE2LDAsMCwxLDAtNEgyNC4xNmExLDEsMCwwLDAsMC0ySDEyLjQ1QTEyLDEyLDAsMCwxLDMwLjA2LDcuOGExLDEsMCwwLDAs''@;'; + put 'put ''MS4wNi0xLjdBMTQsMTQsMCwwLDAsMTAuMzQsMTRIMy41NGExLDEsMCwxLDAsMCwySDkuOTFhMTQsMTQsMCwwLDAtLjE2LDIsMTQsMTQsMCwwLDAsLjE2LDJIMy41NGExLDEsMCwxLDAsMCwyaDYuOGExNCwxNCwwLDAsMCwyMC44Myw3Ljg3QTEsMSwwLDAsMCwzMS40OCwyOC40OVoiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuNDIsMjUuMTZBMTAuODgsMTAuODgsMCwwLDEsOS4yMywyMUg1Ljg0YTEsMSwwLDAsMSwwLTJoM2MwLS4zNS0u''@;'; + put 'put ''MDUtLjcxLS4wNS0xLjA3czAtLjYzLDAtLjkzaC0zYTEsMSwwLDAsMSwwLTJIOS4xOUExMC44NiwxMC44NiwwLDAsMSwyNS4zOCw4LjY5YTEuMjUsMS4yNSwwLDAsMS0xLjMyLDIuMTJBOC4zNiw4LjM2LDAsMCwwLDExLjgyLDE1aDkuMzZhMSwxLDAsMCwxLDAsMkgxMS4zM2E3LjcyLDcuNzIs''@;'; + put 'put ''MCwwLDAsMCwyaDkuODJhMSwxLDAsMCwxLDAsMkgxMS44N2E4LjM2LDguMzYsMCwwLDAsMTIuMjIsNCwxLjI1LDEuMjUsMCwxLDEsMS4zMywyLjEyWiIvPicpLGUuQ2xyU2hhcGVEb2xsYXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEiIGQ9Ik0yNiwyMS4xNWE2LjkxLDYuOTEsMCwwLDAtNC4zOC0zLjMyQTI2LDI2LDAsMCwwLDE5LDE3LjE5VjguMTJBMTAuMDUsMTAuMDUsMCwwLDEsMjMuODYsMTBhMSwxLDAsMCwwLDEuMzMtMS41QTExLjc1LDExLjc1LDAsMCwwLDE5LDYuMVYzYTEsMSwwLDAsMC0yLDBWNmMt''@;'; + put 'put ''NC40LjEtNi44MywyLjI5LTcuNTcsNC4xOEE1LjU2LDUuNTYsMCwwLDAsMTEuNjYsMTcsMTMuMiwxMy4yLDAsMCwwLDE3LDE4Ljg0VjI4YTEyLjMsMTIuMywwLDAsMS03LjE0LTIuNzRBMSwxLDAsMSwwLDguNDksMjYuNywxNC4wOSwxNC4wOSwwLDAsMCwxNywzMHYzYTEsMSwwLDAsMCwyLDBW''@;'; + put 'put ''MzBjMi44Mi0uMTksNi4wNy0xLjA5LDcuMy00Ljc2QTUuMzMsNS4zMywwLDAsMCwyNiwyMS4xNVpNMTIuNzksMTUuMzJhMy41NywzLjU3LDAsMCwxLTEuNDktNC4zOUMxMS40MSwxMC42MywxMi41Myw4LjEyLDE3LDh2OC44QTEwLjcsMTAuNywwLDAsMSwxMi43OSwxNS4zMlpNMjQuNCwyNC41''@;'; + put 'put ''NmMtLjcyLDIuMTQtMi4zMiwzLjE3LTUuNCwzLjRWMTkuMjNjLjY0LjE0LDEuMy4zLDIsLjUxYTUsNSwwLDAsMSwzLjE5LDIuMzJBMy4zNCwzLjM0LDAsMCwxLDI0LjQsMjQuNTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuNjUsMjEuNTljLTEsMy0zLjYxLDMuODQtNS45LDR2MmExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjcuNTlBMTEuNDcsMTEuNDcsMCwwLDEsMTEsMjVhMS4yNSwxLjI1LDAsMSwxLDEu''@;'; + put 'put ''NzEtMS44Myw5LjExLDkuMTEsMCwwLDAsNC41NSwxLjk0VjE4LjgzYTkuNjMsOS42MywwLDAsMS0zLjczLTEuNDEsNC44LDQuOCwwLDAsMS0xLjkxLTUuODRjLjU5LTEuNTEsMi40Mi0zLjIzLDUuNjQtMy41MVY2LjI1YTEuMjUsMS4yNSwwLDAsMSwyLjUsMFY4LjExYTkuNjcsOS42NywwLDAs''@;'; + put 'put ''MSw0LjksMkExLjI1LDEuMjUsMCwwLDEsMjMsMTEuOTVhNy4xNCw3LjE0LDAsMCwwLTMuMjQtMS4zMXY2LjEzYy42LjEzLDEuMjQuMjcsMS45MS40OGE1Ljg1LDUuODUsMCwwLDEsMy42OSwyLjgyQTQuNjQsNC42NCwwLDAsMSwyNS42NSwyMy41OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yMC45MiwxOS42NGMtLjQtLjEyLS43OS0uMjItMS4xNy0uM3Y1Ljc2YzItLjIsMy4wNy0uOSwzLjUzLTIuM2EyLjE1LDIuMTUsMCwwLDAtLjE1LTEuNThBMy40OSwzLjQ5LDAsMCwwLDIwLjkyLDE5LjY0WiIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTEzLjk0LDEyLjQ4YTIuMzEsMi4zMSwwLDAsMCwxLDIuODcsNi41Myw2LjUzLDAsMCwwLDIuMzIuOTJWMTAuNTVDMTUuMTYsMTAuOCwxNC4xOSwxMS44NCwxMy45NCwxMi40OFoiLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlQ3JlZGl0Q2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMiwwLDEySDRMNCw4Wk00LDI4VjI0SDMydjRaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjMiIHdpZHRoPSIyMiIgaGVpZ2h0PSIzMCIgcng9IjAuOTYiIHJ5PSIwLjk2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNikgcm90YXRlKDkwKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIj''@;'; + put 'put ''MDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0y''@;'; + put 'put ''VjhBMiwyLDAsMCwwLDMyLDZabTAsMThINFYyMEgzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUJhbms9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMuNSwxMy41NiwxOCw1LjIzbDE0LjUsOC4zM2ExLDEsMCwwLDAsMS0xLjcz''@;'; + put 'put ''TDE4LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3LjYzSDI2VjI1SDE5VjE3LjYz''@;'; + put 'put ''SDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI1LjAyIiB5PSIxNCIgd2lkdGg9IjI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjE1LDExLjU4''@;'; + put 'put ''aDMuMjFMMTguNjUsNy43MmEuOC44LDAsMCwwLS44LDBsLTYuNzIsMy44NmgzLjIxbDMuOS0yLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI2YTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDAtMkgy''@;'; + put 'put ''OFYxNy42M0gyNlYyNUgxOVYxNy42M0gxN1YyNUgxMFYxNy42M0g4VjI1SDVBMSwxLDAsMCwwLDQsMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjUuMDIiIHk9IjE0IiB3aWR0aD0i''@;'; + put 'put ''MjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4xNSwxMS41OGgzLjIxTDE4LjY1LDcuNzJhLjguOCwwLDAsMC0uOCwwbC02LjcyLDMuODZoMy4yMWwzLjktMi4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmMwLS4xNiwwLS4zMiwwLS40OEwxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjIuNzcsOEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTQsMTMuMjRsLjU2LjMyYTEsMSwwLDAsMCwxLjQ0LTEuMTlBNy40NSw3LjQ1LDAsMCwxLDMxLjk0LDEzLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3LjYzSDI2VjI1SDE5VjE3LjYzSDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVk''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsMTVBMy41''@;'; + put 'put ''MSwzLjUxLDAsMCwxLDIwLDE0SDV2MkgzMVYxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuNDYsOS43NGwuNjgtMS4xNy0xLjQ5LS44NWEuOC44LDAsMCwwLS44LDBsLTYu''@;'; + put 'put ''NzIsMy44NmgzLjIxbDMuOS0yLjI0LDEuMS42M0MxOS4zOSw5Ljg5LDE5LjQyLDkuODEsMTkuNDYsOS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMDUsNS4yNSwxOCwy''@;'; + put 'put ''LjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjEuMDUsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgs''@;'; + put 'put ''MCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTMuNSwxMy41Niw1LDEyLjY4VjE2SDMxVjEyLjcxbDEuNDguODVhMSwxLDAsMCwwLDEtMS43M0wxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczWk0xNy44NSw3LjExYS44LjgsMCwwLDEsLjgsMEwyNS4zNywxMUgyMi4xNWwtMy45LTIuMjRMMTQu''@;'; + put 'put ''MzUsMTFIMTEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuODUsMjdIMzJ2LS44NUExLjE1LDEuMTUsMCwwLDAsMzAuODUsMjVIMjhWMTcuNjNIMjRWMjVIMjBWMTcuNjNIMTZWMjVIMTJWMTcuNjNIOFYyNUg1''@;'; + put 'put ''LjE1QTEuMTUsMS4xNSwwLDAsMCw0LDI2LjE1VjI3SDMuMTVBMS4xNSwxLjE1LDAsMCwwLDIsMjguMTVWMzFIMzRWMjguMTVBMS4xNSwxLjE1LDAsMCwwLDMyLjg1LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMy''@;'; + put 'put ''Ljg1LDI3SDMydi0uODVBMS4xNSwxLjE1LDAsMCwwLDMwLjg1LDI1SDI4VjE3LjYzSDI0VjI1SDIwVjE3LjYzSDE2VjI1SDEyVjE3LjYzSDhWMjVINS4xNUExLjE1LDEuMTUsMCwwLDAsNCwyNi4xNVYyN0gzLjE1QTEuMTUsMS4xNSwwLDAsMCwyLDI4LjE1VjMxSDM0VjI4LjE1QTEuMTUsMS4x''@;'; + put 'put ''NSwwLDAsMCwzMi44NSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ3LDcuNDcsMCwwLDEsMjQuMzksMTFIMjIuMTVsLTMuOS0yLjI0TDE0LjM1LDExSDExLjE0bDYu''@;'; + put 'put ''NzItMy44NmEuOC44LDAsMCwxLC44LDBsNSwyLjg3QTcuNDUsNy40NSwwLDAsMSwyMi41LDZjMC0uMTYsMC0uMzIsMC0uNDhMMTgsMi45MiwyLjUsMTEuODNhMSwxLDAsMSwwLDEsMS43M0w1LDEyLjY4VjE2SDMxVjEzLjQyQTcuNTMsNy41MywwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45NCwxMy4yNGwuNTYuMzJhMSwxLDAsMCwwLDEuNDQtMS4xOUE3LjQ1LDcuNDUsMCwwLDEsMzEuOTQsMTMuMjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; + put 'put ''Mi44NSwyN0gzMnYtLjg1QTEuMTUsMS4xNSwwLDAsMCwzMC44NSwyNUgyOFYxNy42M0gyNFYyNUgyMFYxNy42M0gxNlYyNUgxMlYxNy42M0g4VjI1SDUuMTVBMS4xNSwxLjE1LDAsMCwwLDQsMjYuMTVWMjdIMy4xNUExLjE1LDEuMTUsMCwwLDAsMiwyOC4xNVYzMUgzNFYyOC4xNUExLjE1LDEu''@;'; + put 'put ''MTUsMCwwLDAsMzIuODUsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSwxNWEzLjUxLDMuNTEsMCwwLDEtMy01LjI2bC4xNC0uMjQtMS4zNS0uNzhMMTQuMzUsMTFIMTEuMTRs''@;'; + put 'put ''Ni43Mi0zLjg2YS44LjgsMCwwLDEsLjgsMGwxLjc1LDEsMS42NS0yLjg2TDE4LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNMNSwxMi42OFYxNkgzMVYxNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz4nKSxlLkNsclNoYXBlRG9sbGFyQmlsbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwy''@;'; + put 'put ''LDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFptMCw2YTQuMjUsNC4yNSwwLDAsMS0zLjktNEgzMlptMCwxLjYydjQuODNBNS44Nyw1Ljg3LDAsMCwwLDI2LjQ5LDI2aC0xN0E1Ljg3LDUuODcsMCwwLDAsNCwyMC40NFYxNS42QTUuODcsNS44NywwLDAsMCw5LjUxLDEwaDE3''@;'; + put 'put ''QTUuODcsNS44NywwLDAsMCwzMiwxNS42Wk03LjksMTBBNC4yNSw0LjI1LDAsMCwxLDQsMTRWMTBaTTQsMjIuMDZBNC4yNSw0LjI1LDAsMCwxLDcuOSwyNkg0Wk0yOC4xLDI2QTQuMjUsNC4yNSwwLDAsMSwzMiwyMi4wNlYyNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMTAuODVjLTMuNDcsMC02LjMsMy4yMS02LjMsNy4xNXMyLjgzLDcuMTUsNi4zLDcuMTUsNi4zLTMuMjEsNi4zLTcuMTVTMjEuNDcsMTAuODUsMTgsMTAuODVabTAsMTIuNjljLTIuNTksMC00LjctMi40OS00LjctNS41NXMyLjEx''@;'; + put 'put ''LTUuNTUsNC43LTUuNTUsNC43LDIuNDksNC43LDUuNTVTMjAuNTksMjMuNTUsMTgsMjMuNTVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIsOEg0YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIs''@;'; + put 'put ''MCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wk00LDI2VjIxLjE1QTUuMTgsNS4xOCwwLDAsMSw4Ljc5LDI2Wk00LDE0Ljg1VjEwSDguNzlBNS4xOCw1LjE4LDAsMCwxLDQsMTQuODVaTTE4LDI1LjE1Yy0zLjQ3LDAtNi4zLTMuMjEtNi4zLTcuMTVzMi44My03LjE1LDYuMy03LjE1LDYuMywz''@;'; + put 'put ''LjIxLDYuMyw3LjE1UzIxLjQ3LDI1LjE1LDE4LDI1LjE1Wk0zMiwyNkgyNy4yNUE1LjE4LDUuMTgsMCwwLDEsMzIsMjEuMTVabTAtMTEuMTVBNS4xOCw1LjE4LDAsMCwxLDI3LjI1LDEwSDMyWiIvPlxuICAgICAgICAgICAgPGVsbGlwc2UgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMiIgY3g9IjE4IiBjeT0iMTgiIHJ4PSI0IiByeT0iNC43MiIvPicpLGUuQ2xyU2hhcGVFQ2hlY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjE2IiB5PSIxNiIgd2lkdGg9IjE1IiBoZWlnaHQ9IjIi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIyMCIgeT0iMjEiIHdpZHRoPSIxMSIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIg''@;'; + put 'put ''ZD0iTTM0LDhIMTIuOTNhOC4zNSw4LjM1LDAsMCwxLC43OSwySDMzVjI2SDNWMTkuOWE3LjgzLDcuODMsMCwwLDEtMi0xLjM0VjI3YTEsMSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik02LjU3LDE4LjY4YTYuMTcsNi4xNywwLDAsMCw0LjMyLTEuNTksMS4yLDEuMiwwLDAsMCwuMzYtLjg0LDEuMDgsMS4wOCwwLDAsMC0xLjA5LTEuMTEsMSwxLDAsMCwwLS43MS4yNSw0LjMyLDQuMzIsMCwwLDEtMi44NCwxLDMuMzUsMy4zNSww''@;'; + put 'put ''LDAsMS0zLjQ2LTNoNy41M0ExLjI5LDEuMjksMCwwLDAsMTIsMTIuMDYsNS42OCw1LjY4LDAsMCwwLDYuMjcsNi4xNCw2LDYsMCwwLDAsLjQsMTIuNHYwQTYsNiwwLDAsMCw2LjU3LDE4LjY4Wk02LjI1LDguMzljMS44MiwwLDIuODcsMS4zOSwzLDMuMTZIMy4xM0MzLjM4LDkuNjksNC41Niw4''@;'; + put 'put ''LjM5LDYuMjUsOC4zOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCw4SDEyLjkxYTguNjEsOC42MSwwLDAsMSwxLjIsNC4zOSw4LDgsMCwwLDEtNy43OCw4LjI3QTcuNTEsNy41MSwwLDAsMSwxLDE4LjQxVjI3YTEs''@;'; + put 'put ''MSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4Wk0zMSwyM0gyMFYyMUgzMVptMC01SDE2VjE2SDMxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTYuNTcsMTguNjhBNiw2LDAsMCwxLC40''@;'; + put 'put ''LDEyLjQ0djBBNiw2LDAsMCwxLDYuMjcsNi4xNCw1LjY4LDUuNjgsMCwwLDEsMTIsMTIuMDZhMS4yOSwxLjI5LDAsMCwxLTEuMywxLjMySDMuMTVhMy4zNSwzLjM1LDAsMCwwLDMuNDYsMyw0LjMyLDQuMzIsMCwwLDAsMi44NC0xLDEsMSwwLDAsMSwuNzEtLjI1LDEuMDgsMS4wOCwwLDAsMSwx''@;'; + put 'put ''LjA5LDEuMTEsMS4yLDEuMiwwLDAsMS0uMzYuODRBNi4xNyw2LjE3LDAsMCwxLDYuNTcsMTguNjhaTTkuMywxMS41NWMtLjE4LTEuNzctMS4yMy0zLjE2LTMtMy4xNnMtMi44NywxLjMtMy4xMiwzLjE2WiIvPicpLGUuQ2xyU2hhcGVQb3VuZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LjksMzBIMTMuNEE4LjQ1LDguNDUsMCwwLDAsMTUsMjQuNjVWMjFoNC4zMWExLDEsMCwwLDAsMC0ySDE1VjExLjMxQTUuMjQsNS4yNCwwLDAsMSwyMC4yMSw2LDUuMTksNS4xOSwwLDAsMSwyNCw3LjczYTEsMSww''@;'; + put 'put ''LDAsMCwxLjQ4LTEuMzVBNy4xOSw3LjE5LDAsMCwwLDEzLDExLjMxVjE5SDguNzJhMSwxLDAsMSwwLDAsMkgxM3YzLjY1QzEzLDI5LjM4LDEwLjEyLDMwLDEwLDMwYTEsMSwwLDAsMCwuMTcsMkgyNy45YTEsMSwwLDEsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm02LjUsMjUuOTJIMTEuNzRhMS4yNSwxLjI1LDAsMCwxLS4yMi0yLjQ4Yy4xNSwwLDEuNzItLjQ5LDEuNzItMy41NFYxOWgtMi41YTEsMSwwLDAsMSwwLTJoMi41VjEx''@;'; + put 'put ''Ljg4YTUuODUsNS44NSwwLDAsMSw1LjcyLTYsNS42Myw1LjYzLDAsMCwxLDQuMjEsMS45NEExLjI1LDEuMjUsMCwxLDEsMjEuMyw5LjUxLDMuMDgsMy4wOCwwLDAsMCwxOSw4LjQyYTMuMzUsMy4zNSwwLDAsMC0zLjIyLDMuNDZWMTdoM2ExLDEsMCwwLDEsMCwyaC0zdjIuOUE3LjY1LDcuNjUs''@;'; + put 'put ''MCwwLDEsMTUsMjUuNDJIMjQuNWExLjI1LDEuMjUsMCwwLDEsMCwyLjVaIi8+JyksZS5DbHJTaGFwZVJ1cGVlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjgsOEgyNC4xNEE3LjUyLDcuNTIsMCwwLDAsMjIu''@;'; + put 'put ''Niw2SDI4YTEsMSwwLDAsMCwwLTJIMTBhMSwxLDAsMCwwLDAsMmg3LjU1YTUuNDIsNS40MiwwLDAsMSw0LjIsMkgxMGExLDEsMCwwLDAsMCwySDIyLjc5QTUuNTQsNS41NCwwLDAsMSwyMywxMS41MSw1LjQ4LDUuNDgsMCwwLDEsMTcuNTUsMTdIMTEuMTRhMSwxLDAsMCwwLS43NSwxLjY2TDIy''@;'; + put 'put ''LjA2LDMyYTEsMSwwLDEsMCwxLjUtMS4zMkwxMy4zNSwxOWg0LjIxYTcuNTEsNy41MSwwLDAsMCw3LjMtOUgyOGExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQs''@;'; + put 'put ''MTgsMTYsMTYsMCwwLDAsMTgsMlptNS44OCw5SDI2YTEsMSwwLDAsMSwwLDJIMjQuMjZjMCwuMDYsMCwuMTIsMCwuMTlhNi4wOSw2LjA5LDAsMCwxLTYsNi4yaC0ybDYuODIsOC4wNmExLjI1LDEuMjUsMCwwLDEtMS45MSwxLjYyTDEyLjYzLDE4Ljk0YTEuMjUsMS4yNSwwLDAsMSwxLTIuMDZo''@;'; + put 'put ''NC43MWEzLjU5LDMuNTksMCwwLDAsMy40OC0zLjY5YzAtLjA3LDAtLjEzLDAtLjJoLTlhMSwxLDAsMCwxLDAtMmg4LjMyYTMuNDEsMy40MSwwLDAsMC0yLjc4LTEuNUgxMi43NWExLjI1LDEuMjUsMCwwLDEsMC0yLjVIMjZhMSwxLDAsMCwxLDAsMkgyMi42OEE2LjIzLDYuMjMsMCwwLDEsMjMu''@;'; + put 'put ''ODgsMTFaIi8+JyksZS5DbHJTaGFwZVdvbj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLDE4SDI4Ljc1bC41LTJIMzNhMSwxLDAsMCwwLDAtMkgyOS43NGwyLjE3LTguNzZBMSwxLDAsMCwwLDMwLDQuNzZM''@;'; + put 'put ''MjcuNjgsMTRIMjEuMzFMMTksNC43NmExLDEsMCwwLDAtMS45NCwwTDE0Ljc5LDE0SDguNDJMNi4xMyw0Ljc2YTEsMSwwLDAsMC0xLjk0LjQ4TDYuMzYsMTRIM2ExLDEsMCwwLDAsMCwySDYuODVsLjUsMkgzYTEsMSwwLDAsMCwwLDJINy44NGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBM''@;'; + put 'put ''MTUuMzYsMjBoNS4zOGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBMMjguMjUsMjBIMzNhMSwxLDAsMCwwLDAtMlptLTUuODItMi0uNSwySDIyLjNsLS41LTJaTTE4LDkuMTYsMTkuMjUsMTRoLTIuNFpNOC45MSwxNmg1LjM4bC0uNSwySDkuNDFaTTExLjYsMjYuODQsOS45MSwyMEgxMy4z''@;'; + put 'put ''Wk0xNS44NSwxOGwuNS0yaDMuMzlsLjUsMlptOC42NCw4Ljg0TDIyLjgsMjBoMy4zOVoiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIHBvaW50cz0iMTcuNzQgMTYgMTcuMjIgMTggMTguODUgMTggMTguMzIgMTYgMTcuNzQg''@;'; + put 'put ''MTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIHBvaW50cz0iMTEuOTQgMTggMTQuNjMgMTggMTUuMTYgMTYgMTEuNDEgMTYgMTEuOTQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTMiIHBvaW50cz0iMTMuMjkgMjMuMSAxNC4xIDIwIDEyLjQ3IDIwIDEzLjI5IDIzLjEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIHBvaW50cz0iMjEuNDQgMTggMjQuMTMgMTggMjQuNjYgMTYg''@;'; + put 'put ''MjAuOTEgMTYgMjEuNDQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIHBvaW50cz0iMjIuNzggMjMuMSAyMy42IDIwIDIxLjk3IDIwIDIyLjc4IDIzLjEiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTI5LDIwSDI2LjE5TDI0LDI4LjMyYTEuMjUsMS4yNSwwLDAsMS0yLjQyLDBMMTkuMzgsMjBIMTYuNjlsLTIuMTksOC4zMmExLjI1LDEuMjUsMCwwLDEtMi40MiwwTDku''@;'; + put 'put ''ODgsMjBIN2ExLDEsMCwwLDEsMC0ySDkuMzVsLS41My0ySDdhMSwxLDAsMCwxLDAtMkg4LjNsLTEtMy42OGExLjI1LDEuMjUsMCwwLDEsMi40Mi0uNjRMMTAuODgsMTRoNC44bDEuMTQtNC4zMmExLjI1LDEuMjUsMCwwLDEsMi40MiwwTDIwLjM4LDE0aDQuOGwxLjE0LTQuMzJhMS4yNSwxLjI1''@;'; + put 'put ''LDAsMCwxLDIuNDIuNjRsLTEsMy42OEgyOWExLDEsMCwwLDEsMCwySDI3LjI0bC0uNTMsMkgyOWExLDEsMCwwLDEsMCwyWiIvPicpLGUuQ2xyU2hhcGVZZW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS4z''@;'; + put 'put ''NCw0LjU1YTEsMSwwLDEsMC0xLjY3LTEuMUwxOCwxOC4yMyw4LjMzLDMuNDVhMSwxLDAsMCwwLTEuNjcsMS4xTDE3LDIwLjM1VjIyLjJIMTJhLjguOCwwLDAsMCwwLDEuNmg1djIuNEgxMmEuOC44LDAsMCwwLDAsMS42aDVWMzJhMSwxLDAsMCwwLDIsMFYyNy44aDVhLjguOCwwLDAsMCwwLTEu''@;'; + put 'put ''NkgxOVYyMy44aDVhLjguOCwwLDAsMCwwLTEuNkgxOVYyMC4zNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTguMDcsNy45MUwxOS43NCwyMEgy''@;'; + put 'put ''MmExLDEsMCwwLDEsMCwySDE5LjI1djJIMjJhMSwxLDAsMCwxLDAsMkgxOS4yNXYyLjc1YTEuMjUsMS4yNSwwLDAsMS0yLjUsMFYyNkgxNGExLDEsMCwxLDEsMC0yaDIuNzVWMjJIMTRhMSwxLDAsMSwxLDAtMmgyLjI2TDkuOTMsOS45MWExLjI1LDEuMjUsMCwxLDEsMi4xMi0xLjMzTDE4LDE4''@;'; + put 'put ''LjA4bDUuOTUtOS40OWExLjI1LDEuMjUsMCwxLDEsMi4xMiwxLjMzWiIvPicpLGUuQ2xyU2hhcGVCaXRjb2luPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC4xMSwxNi44OEE1LjQ5LDUuNDksMCwwLDAsMjEsN1Y0YTEsMSwwLDAsMC0yLDBWN0gxNlY0YTEsMSwwLDAsMC0yLDBWN0gx''@;'; + put 'put ''MWExLDEsMCwwLDAtMSwxVjI4YTEsMSwwLDAsMCwxLDFoM3YzYTEsMSwwLDAsMCwyLDBWMjloM3YzYTEsMSwwLDAsMCwyLDBWMjloLjA4QTYuMDcsNi4wNywwLDAsMCwyNywyMi44MXYtLjYyQTYuMjUsNi4yNSwwLDAsMCwyNC4xMSwxNi44OFpNMTIsOWg4LjY5YTMuNTksMy41OSwwLDAsMSwz''@;'; + put 'put ''LjQzLDIuMzZBMy41MSwzLjUxLDAsMCwxLDIwLjc5LDE2SDEyWk0yNSwyMi44MUE0LjA4LDQuMDgsMCwwLDEsMjEuMDYsMjdIMTJWMThoOS4wNkE0LjA4LDQuMDgsMCwwLDEsMjUsMjIuMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yMS4xOCwxOC40N0gxNC41djZoNi42OGEyLjcsMi43LDAsMCwwLDIuNjMtMi43N3YtLjQ4QTIuNzEsMi43MSwwLDAsMCwyMS4xOCwxOC40N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMs''@;'; + put 'put ''MTMuNzVhMi4yNCwyLjI0LDAsMCwwLTIuMjMtMi4yNUgxNC41VjE2aDYuM0EyLjIyLDIuMjIsMCwwLDAsMjMsMTMuNzVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYs''@;'; + put 'put ''MCwwLDAsMTgsMlptOC4zMSwxOS43M0E1LjIyLDUuMjIsMCwwLDEsMjEuMTgsMjdIMjF2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTd2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTMuMjVBMS4yNSwxLjI1LDAsMCwxLDEyLDI1Ljc1VjE3LjIzaDB2LTdBMS4yNSwxLjI1LDAsMCwxLDEzLjI1LDlIMTVW''@;'; + put 'put ''Ny4wN2ExLDEsMCwwLDEsMiwwVjloMlY3LjA3YTEsMSwwLDAsMSwyLDBWOWE0LjcyLDQuNzIsMCwwLDEsMy4yLDgsNS4zMSw1LjMxLDAsMCwxLDIuMTEsNC4yNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZUNvaW5CYWc9KDAsYS5jbHJJ''@;'; + put 'put ''Y29uU1ZHKSgnPHBhdGggZD0iTTIxLjYsMjlhMSwxLDAsMCwwLTEtMWgtNmExLDEsMCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjIuNTQsMjRoLTZhMSwxLDAsMCwwLDAsMmg2YTEs''@;'; + put 'put ''MSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIsMzJIMTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJN''@;'; + put 'put ''MzIuNywzMmgtN2ExLDEsMCwwLDAsMCwyaDdhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMy43LDI4aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjc0LDI2YTI4LDI4LDAsMCwwLTIuODItMTAuMTJBMjAuMjQsMjAuMjQsMCwwLDAsMjQuNiw4LjcxTDI3LDMuNDJhMSwxLDAsMCwwLS4wNy0xQTEsMSwwLDAsMCwyNi4xMywySDkuOGExLDEsMCwwLDAtLjkxLDEuNDJsMi40NSw1LjMx''@;'; + put 'put ''YTIwLjMzLDIwLjMzLDAsMCwwLTYuMjgsNy4xNWMtMi4xNSw0LTIuODIsOC44OS0zLDEyLjI4YTMuNiwzLjYsMCwwLDAsMSwyLjcxQTMuNzksMy43OSwwLDAsMCw1LjgsMzEuOTRIMTJWMzBINS43MmExLjY4LDEuNjgsMCwwLDEtMS4yMS0uNTIsMS42MiwxLjYyLDAsMCwxLS40NS0xLjIzYy4x''@;'; + put 'put ''NC0yLjYxLjY5LTcuNTgsMi43Ni0xMS40NUExOCwxOCwwLDAsMSwxMy4wOCwxMGgxYTMwLjgxLDMwLjgxLDAsMCwwLTEuODcsMi45MiwyMi43OCwyMi43OCwwLDAsMC0xLjQ3LDMuMzRsMS4zNy45MmEyNCwyNCwwLDAsMSwxLjQ5LTMuNDdBMjkuMSwyOS4xLDAsMCwxLDE2LjA1LDEwaDFhMjEu''@;'; + put 'put ''NDUsMjEuNDUsMCwwLDEsMS40MSw1LDIyLjU0LDIyLjU0LDAsMCwxLC4zMiwzLjg2bDEuNTgtMS4xMWEyNC4xNSwyNC4xNSwwLDAsMC0uMzItM0EyNC44MiwyNC44MiwwLDAsMCwxOC43NiwxMGguNzhsLjkxLTJIMTMuMjFMMTEuMzYsNEgyNC41N2wtMi41LDUuNDdhOS45Myw5LjkzLDAsMCwx''@;'; + put 'put ''LDEuMjMuNzgsMTguNjMsMTguNjMsMCwwLDEsNS44Niw2LjU3QTI2LjU5LDI2LjU5LDAsMCwxLDMxLjczLDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgPHBhdGggZD0iTTI0Ljg5LDI2aDcuODZjLS42Ni04LjcxLTQuNDEtMTQuMTItOS4y''@;'; + put 'put ''Mi0xNy4zMkwyNS43MiwzLjlhMSwxLDAsMCwwLS45MS0xLjRIMTEuMWExLDEsMCwwLDAtLjkxLDEuNGwxLjIsMi42SDIxLjUxbC0uOSwySDE4Ljc2QTI0LjksMjQuOSwwLDAsMSwyMCwxMy4xOWEyNC40OSwyNC40OSwwLDAsMSwuMzIsM2wtMS41OCwxLjExYTIyLjU0LDIyLjU0LDAsMCwwLS4z''@;'; + put 'put ''Mi0zLjg2QTIxLjc0LDIxLjc0LDAsMCwwLDE3LDguNWgtMWEyOC4yMiwyOC4yMiwwLDAsMC0yLjQ4LDMuNywyMy45MSwyMy45MSwwLDAsMC0xLjQ5LDMuNDZsLTEuMzctLjkxYTIyLjc4LDIyLjc4LDAsMCwxLDEuNDctMy4zNEEzMC44MSwzMC44MSwwLDAsMSwxNC4wNSw4LjVIMTIuM2wuMDgu''@;'; + put 'put ''MTdDNy4wOCwxMi4yLDMuMDUsMTguNCwzLjA1LDI4Ljc1QTEuNjUsMS42NSwwLDAsMCw0LjYxLDMwLjVoOEEyLjY3LDIuNjcsMCwwLDEsMTQuMjEsMjZhMi42NywyLjY3LDAsMCwxLS4zNy0xLjM0LDIuNywyLjcsMCwwLDEsMi43LTIuN2g2YTIuNywyLjcsMCwwLDEsMi43LDIuN0EyLjYzLDIu''@;'; + put 'put ''NjMsMCwwLDEsMjQuODksMjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMS42LDI4LjVhMSwxLDAsMCwwLTEtMWgtNmExLDEsMCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjguNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjU0LDIzLjVoLTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwzMS41SDE2YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJNMzIuNywzMS41aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMuNywyNy41aC03YTEsMSwwLDAs''@;'; + put 'put ''MCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz4nKSxlLkNsclNoYXBlUGVzbz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMTMuMkgyNy44OUE2LjgxLDYuODEsMCwwLDAsMjgsMTJhNy44NSw3Ljg1LDAsMCwwLS4x''@;'; + put 'put ''LTEuMTloMi45M2EuOC44LDAsMCwwLDAtMS42SDI3LjQ2QTguNDQsOC40NCwwLDAsMCwxOS41Nyw0SDExYTEsMSwwLDAsMC0xLDFWOS4ySDdhLjguOCwwLDAsMCwwLDEuNmgzdjIuNEg3YS44LjgsMCwwLDAsMCwxLjZoM1YzMWExLDEsMCwwLDAsMiwwVjIwaDcuNTdhOC40NSw4LjQ1LDAsMCww''@;'; + put 'put ''LDcuODktNS4ySDMxYS44LjgsMCwwLDAsMC0xLjZaTTEyLDZoNy41N2E2LjUxLDYuNTEsMCwwLDEsNS42OCwzLjJIMTJabTAsNC44SDI1Ljg3YTUuNiw1LjYsMCwwLDEsMCwyLjRIMTJaTTE5LjU3LDE4SDEyVjE0LjhIMjUuMjVBNi41MSw2LjUxLDAsMCwxLDE5LjU3LDE4WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE0LjE4LDEzLjhWMTZoOS40NWE1LjI2LDUuMjYsMCwwLDAsLjA4LS44OSw0LjcyLDQuNzIsMCwwLDAtLjItMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0i''@;'; + put 'put ''TTE0LjE4LDE5LjdoNS4xOWE0LjI4LDQuMjgsMCwwLDAsMy41LTEuOUgxNC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE5LjM3LDEwLjUxSDE0LjE4VjEyaDguMzdBNC4yMSw0LjIxLDAsMCwwLDE5LjM3LDEwLjUxWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMTcuNjcsMmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxNy42NywyWm0xMC41LDE1LjhIMjUuN2E2Ljg3LDYuODcsMCwwLDEtNi4zMyw0LjRIMTQuMTh2Ni41NGExLjI1LDEuMjUsMCwxLDEtMi41LDBWMTcu''@;'; + put 'put ''OEg4Ljc2YS45LjksMCwxLDEsMC0xLjhoMi45MlYxMy44SDguNzZhLjkuOSwwLDEsMSwwLTEuOGgyLjkyVjkuMjZBMS4yNSwxLjI1LDAsMCwxLDEyLjkzLDhoNi40NGE2Ljg0LDYuODQsMCwwLDEsNi4xNSw0aDIuNjVhLjkuOSwwLDAsMSwwLDEuOEgyNi4wOWE2LjkxLDYuOTEsMCwwLDEsLjEy''@;'; + put 'put ''LDEuMyw2LjgsNi44LDAsMCwxLS4wNi45aDJhLjkuOSwwLDAsMSwwLDEuOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+JyksZS5DbHJTaGFwZVJ1YmxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC41NywyMEE4LjIzLDguMjMsMCwwLDAsMjksMTJh''@;'; + put 'put ''OC4yMyw4LjIzLDAsMCwwLTguNDMtOEgxMmExLDEsMCwwLDAtMSwxVjE4SDlhMSwxLDAsMCwwLDAsMmgydjJIOWExLDEsMCwwLDAsMCwyaDJ2N2ExLDEsMCwwLDAsMiwwVjI0aDlhMSwxLDAsMCwwLDAtMkgxM1YyMFpNMTMsNmg3LjU3QTYuMjQsNi4yNCwwLDAsMSwyNywxMmE2LjIzLDYuMjMs''@;'; + put 'put ''MCwwLDEtNi40Myw2SDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIwLjc1LDkuMjVIMTV2OC44MWg1Ljc5YTQuNjYsNC42NiwwLDAsMCw0Ljg2LTQuNEE0LjY1LDQuNjUsMCwwLDAsMjAuNzUsOS4yNVoiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMi43NSwxOC41NkgxNVYyMmg4LjI5YTEsMSwwLDAsMSwwLDJIMTV2NWExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjRIMTEuMjVhMSwxLDAsMCwxLDAtMmgx''@;'; + put 'put ''LjIxVjIwLjU2SDExLjI1YTEuMjUsMS4yNSwwLDAsMSwwLTIuNWgxLjIxVjhhMS4yNSwxLjI1LDAsMCwxLDEuMjUtMS4yNWg3YTcuMTQsNy4xNCwwLDAsMSw3LjM2LDYuOUE3LjE1LDcuMTUsMCwwLDEsMjAuNzUsMjAuNTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0y''@;'; + put 'put ''IiAvPicpLGUuQ2xyU2hhcGVFbXBsb3llZUdyb3VwPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMuN0EzLjc0LDMuNzQsMCww''@;'; + put 'put ''LDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMu''@;'; + put 'put ''N0EzLjc0LDMuNzQsMCwwLDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMS45MSwxNy42NWEyMC42LDIwLjYsMCwwLDAtMTMsMkExLjc3LDEuNzcsMCwwLDAsOCwyMS4yNXYzLjU2YTEsMSwwLDAsMCwyLDBW''@;'; + put 'put ''MjEuMzhhMTguOTIsMTguOTIsMCwwLDEsMTItMS42OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMywyMkgyNi4zVjIwLjUyYTEsMSwwLDAsMC0yLDBWMjJIMTdhMSwxLDAsMCwwLTEsMVYzM2ExLDEsMCwwLDAsMSwxSDMzYTEs''@;'; + put 'put ''MSwwLDAsMCwxLTFWMjNBMSwxLDAsMCwwLDMzLDIyWk0zMiwzMkgxOFYyNGg2LjN2LjQxYTEsMSwwLDAsMCwyLDBWMjRIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cmVjdCB4PSIyMS44MSIgeT0iMjcuNDIiIHdpZHRoPSI1Ljk2IiBoZWln''@;'; + put 'put ''aHQ9IjEuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHBhdGggZD0iTTEwLjg0LDEyLjI0YTE4LDE4LDAsMCwwLTcuOTUsMkExLjY3LDEuNjcsMCwwLDAsMiwxNS43MXYzLjFhMSwxLDAsMCwwLDIsMHYtMi45YTE2LDE2LDAsMCwxLDcuNTgtMS42''@;'; + put 'put ''N0E3LjI4LDcuMjgsMCwwLDEsMTAuODQsMTIuMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzMuMTEsMTQuMjNhMTcuOCwxNy44LDAsMCwwLTcuMTItMiw3LjQ2LDcuNDYsMCwwLDEtLjczLDJBMTUuODksMTUuODksMCwwLDEs''@;'; + put 'put ''MzIsMTUuOTF2Mi45YTEsMSwwLDEsMCwyLDB2LTMuMUExLjY3LDEuNjcsMCwwLDAsMzMuMTEsMTQuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cGF0aCBkPSJNMTAuNjYsMTAuNjFjMC0uMjMsMC0uNDUsMC0uNjdhMy4wNywzLjA3LDAsMCwx''@;'; + put 'put ''LC41NC02LjExLDMuMTUsMy4xNSwwLDAsMSwyLjIuODksOC4xNiw4LjE2LDAsMCwxLDEuNy0xLjA4LDUuMTMsNS4xMywwLDAsMC05LDMuMjcsNS4xLDUuMSwwLDAsMCw0LjcsNUE3LjQyLDcuNDIsMCwwLDEsMTAuNjYsMTAuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtOCIvPlxuICA8cGF0aCBkPSJNMjQuNzcsMS44M2E1LjE3LDUuMTcsMCwwLDAtMy42OSwxLjU1LDcuODcsNy44NywwLDAsMSwxLjksMSwzLjE0LDMuMTQsMCwwLDEsNC45MywyLjUyLDMuMDksMy4wOSwwLDAsMS0xLjc5LDIuNzcsNy4xNCw3LjE0LDAsMCwxLC4wNi45Myw3Ljg4LDcu''@;'; + put 'put ''ODgsMCwwLDEtLjEsMS4yLDUuMSw1LjEsMCwwLDAsMy44My00LjlBNS4xMiw1LjEyLDAsMCwwLDI0Ljc3LDEuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICBcbiAgPGVsbGlwc2UgY3g9IjE4IiBjeT0iMTEuMjgiIHJ4PSI0Ljc2IiByeT0iNC43''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xMC43OCwxMS43NWMuMTYsMCwuMzIsMCwuNDgsMCwwLS4xNSwwLS4yOCwwLS40M2E2LjcsNi43LDAsMCwxLDMuNzUtNiw0LjYyLDQuNjIsMCwxLDAtNC4yMSw2LjQ2WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjQuNzYsMTEuMjhjMCwuMTUsMCwuMjgsMCwuNDMuMTYsMCwuMzIsMCwuNDgsMEE0LjU4LDQuNTgsMCwxLDAsMjEsNS4yOSw2LjcsNi43LDAsMCwxLDI0Ljc2LDExLjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMjIuMjksMTYuNDVhMjEuNDUsMjEuNDUsMCwwLDEsNS43MSwyLDIuNzEsMi43MSwwLDAsMSwuNjguNTNIMzRWMTUuNTZhLjcyLjcyLDAsMCwwLS4zOC0uNjQsMTgsMTgsMCwwLDAtOC40LTIuMDVsLS42NiwwQTYuNjYsNi42NiwwLDAsMSwy''@;'; + put 'put ''Mi4yOSwxNi40NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTYuNTMsMjAuOTJBMi43NiwyLjc2LDAsMCwxLDgsMTguNDdhMjEuNDUsMjEuNDUsMCwwLDEsNS43MS0yLDYuNjYsNi42NiwwLDAsMS0yLjI3LTMuNTVsLS42NiwwYTE4LDE4''@;'; + put 'put ''LDAsMCwwLTguNCwyLjA1LjcyLjcyLDAsMCwwLS4zOC42NFYyMkg2LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICA8cmVjdCB4PSIyMS40NiIgeT0iMjYuNjkiIHdpZHRoPSI1Ljk2IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzIuODEsMjEuMjZIMjUuOTR2LTFhMSwxLDAsMCwwLTIsMHYxSDIyVjE4LjQzQTIwLjE3LDIwLjE3LDAsMCwwLDE4LDE4YTE5LjI3LDE5LjI3LDAsMCwwLTkuMDYsMi4yMi43Ni43NiwwLDAsMC0uNDEuNjh2NS42MWg3LjExdjYuMDlhMSwx''@;'; + put 'put ''LDAsMCwwLDEsMUgzMi44MWExLDEsMCwwLDAsMS0xVjIyLjI2QTEsMSwwLDAsMCwzMi44MSwyMS4yNlptLTEsMTAuMzZIMTcuNjRWMjMuMjZoNi4zdi45MWExLDEsMCwwLDAsMiwwdi0uOTFoNS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTciLz4nKSxlLkNsclNo''@;'; + put 'put ''YXBlRW1wbG95ZWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LjQzLDE2LjY5YTcsNywwLDEsMSw3LTdBNyw3LDAsMCwxLDE2LjQzLDE2LjY5Wm0wLTExLjkyYTUsNSwwLDEsMCw1LDVBNSw1LDAsMCwwLDE2LjQzLDQuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjIsMTcuOUEyNS40MSwyNS40MSwwLDAsMCw1Ljg4LDE5LjU3YTQuMDYsNC4wNiwwLDAsMC0yLjMxLDMuNjhWMjkuMmExLDEsMCwxLDAsMiwwVjIzLjI1YTIsMiwwLDAsMSwxLjE2LTEuODYsMjIuOTEsMjIuOTEsMCwwLDEsOS43LTIuMTEsMjMu''@;'; + put 'put ''NTgsMjMuNTgsMCwwLDEsNS41Ny42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIyLjE0IiB5PSIyNy40MSIgd2lkdGg9IjYuMTQiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MyIvPlxuICA8cGF0aCBkPSJNMzMuMTcsMjEuNDdIMjh2Mmg0LjE3djguMzdIMThWMjMuNDdoNi4zdi40MmExLDEsMCwwLDAsMiwwVjIwYTEsMSwwLDAsMC0yLDB2MS40N0gxN2ExLDEsMCwwLDAtMSwxVjMyLjg0YTEsMSwwLDAsMCwxLDFIMzMuMTdhMSwxLDAsMCwwLDEtMVYyMi40N0ExLDEs''@;'; + put 'put ''MCwwLDAsMzMuMTcsMjEuNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICBcbiAgPGNpcmNsZSBjeD0iMTYuODYiIGN5PSI5LjczIiByPSI2LjQ2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxyZWN0IHg9IjIx''@;'; + put 'put ''IiB5PSIyOCIgd2lkdGg9IjciIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xNSwzMHYzYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVYyM2ExLDEsMCwwLDAtMS0xSDI2VjIwLjUzYTEsMSwwLDAsMC0yLDBW''@;'; + put 'put ''MjJIMjJWMTguNDJBMzIuMTIsMzIuMTIsMCwwLDAsMTYuODYsMThhMjYsMjYsMCwwLDAtMTEsMi4zOSwzLjI4LDMuMjgsMCwwLDAtMS44OCwzVjMwWm0xNywySDE3VjI0aDd2LjQyYTEsMSwwLDAsMCwyLDBWMjRoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4n''@;'; + put 'put ''KSxlLkNsclNoYXBlRmFjdG9yeT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuNDcsNy4zN2ExLDEsMCwwLDAtMSwuMDZMMjMsMTMuNzdWOC4yNmExLDEsMCwwLDAtMS42NC0uNzdMMTMuNDgsMTRIMTBWNC42MmExLDEsMCwwLDAtLjc4LTFsLTQtLjlhMSwxLDAsMCwwLS44NS4yQTEs''@;'; + put 'put ''MSwwLDAsMCw0LDMuNzNWMTRIM2ExLDEsMCwwLDAtMSwxVjMxYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVY4LjI2QTEsMSwwLDAsMCwzMy40Nyw3LjM3Wk02LDVsMiwuNDRWMTRINlpNMzIsMzBINFYxNmg5LjgzYTEsMSwwLDAsMCwuNjQtLjIzTDIxLDEwLjM3djUuMjhhMSwxLDAs''@;'; + put 'put ''MCwwLDEuNTYuODNMMzIsMTAuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSI2IiB5PSIxNy45OSIgd2lkdGg9IjgiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJl''@;'; + put 'put ''Y3QgeD0iNiIgeT0iMjEuOTkiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxyZWN0IHg9IjYiIHk9IjI1Ljk5IiB3aWR0aD0iOCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtNCIvPlxuICA8cmVjdCB4PSIxOSIgeT0iMTguOTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxyZWN0IHg9IjE5IiB5PSIyNC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgPHJlY3QgeD0iMjMiIHk9IjE4Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cmVjdCB4PSIyMyIgeT0iMjQuOTkiIHdpZHRoPSIyIiBoZWlnaHQ9''@;'; + put 'put ''IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gIDxyZWN0IHg9IjI3IiB5PSIxOC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgPHJlY3QgeD0iMjciIHk9IjI0Ljk5''@;'; + put 'put ''IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0zMi40NSw4LjQ0LDIyLDE1LjNWOS41MWExLDEsMCwwLDAtMS42My0uNzhMMTQuMDcsMTRIMTBWNC4wNkw0LDIuNzFWMTRIMlYzMWExLDEs''@;'; + put 'put ''MCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWOS4yN0ExLDEsMCwwLDAsMzIuNDUsOC40NFpNMTQsMjlINlYyN2g4Wm0wLTRINlYyM2g4Wm0wLTRINlYxOWg4Wm04LDhIMjBWMjZoMlptMC02SDIwVjIwaDJabTQsNkgyNFYyNmgyWm0wLTZIMjRWMjBoMlptNCw2SDI4VjI2aDJabTAtNkgyOFYy''@;'; + put 'put ''MGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGUuQ29tbWVyY2VTaGFwZXM9e2NhbGN1bGF0b3I6ZS5DbHJTaGFwZUNhbGN1bGF0b3IsInBpZ2d5LWJhbmsiOmUuQ2xyU2hhcGVQaWdneUJhbmssInNob3BwaW5nLWJhZyI6ZS5DbHJTaGFwZVNob3BwaW5n''@;'; + put 'put ''QmFnLCJzaG9wcGluZy1jYXJ0IjplLkNsclNoYXBlU2hvcHBpbmdDYXJ0LHdhbGxldDplLkNsclNoYXBlV2FsbGV0LHN0b3JlOmUuQ2xyU2hhcGVTdG9yZSxldXJvOmUuQ2xyU2hhcGVFdXJvLGRvbGxhcjplLkNsclNoYXBlRG9sbGFyLHBlc286ZS5DbHJTaGFwZVBlc28sImNyZWRpdC1jYXJk''@;'; + put 'put ''IjplLkNsclNoYXBlQ3JlZGl0Q2FyZCxiYW5rOmUuQ2xyU2hhcGVCYW5rLCJkb2xsYXItYmlsbCI6ZS5DbHJTaGFwZURvbGxhckJpbGwsImUtY2hlY2siOmUuQ2xyU2hhcGVFQ2hlY2sscG91bmQ6ZS5DbHJTaGFwZVBvdW5kLHJ1cGVlOmUuQ2xyU2hhcGVSdXBlZSx3b246ZS5DbHJTaGFwZVdv''@;'; + put 'put ''bix5ZW46ZS5DbHJTaGFwZVllbixiaXRjb2luOmUuQ2xyU2hhcGVCaXRjb2luLHJ1YmxlOmUuQ2xyU2hhcGVSdWJsZSwiY29pbi1iYWciOmUuQ2xyU2hhcGVDb2luQmFnLCJlbXBsb3llZS1ncm91cCI6ZS5DbHJTaGFwZUVtcGxveWVlR3JvdXAsZW1wbG95ZWU6ZS5DbHJTaGFwZUVtcGxveWVl''@;'; + put 'put ''LGZhY3Rvcnk6ZS5DbHJTaGFwZUZhY3Rvcnl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvbW1lcmNlU2hhcGVzLCJzYXZpbmdzIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuQ29tbWVyY2VTaGFwZXNbInBpZ2d5LWJhbmsiXSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5k''@;'; + put 'put ''b3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChlLkNvbW1lcmNlU2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyI6ZnVuY3Rpb24oQSxlLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5Db3JlU2hhcGVzPWUuQ2xyU2hhcGVBcnJvdz1lLkNsclNoYXBlU3RlcEZvcndhcmQyPWUuQ2xyU2hhcGVFeWVIaWRlPWUuQ2xyU2hhcGVFeWU9ZS5DbHJTaGFwZUV2ZW50PWUuQ2xyU2hhcGVDYWxlbmRhcj1lLkNsclNoYXBl''@;'; + put 'put ''QW5nbGVEb3VibGU9ZS5DbHJTaGFwZVZpZXdDb2x1bW5zPWUuQ2xyU2hhcGVTZWFyY2g9ZS5DbHJTaGFwZVZtQnVnPWUuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlPWUuQ2xyU2hhcGVGaWx0ZXJHcmlkPWUuQ2xyU2hhcGVFbGxpcHNpc1ZlcnRpY2FsPWUuQ2xyU2hhcGVFbGxpcHNpc0hvcml6''@;'; + put 'put ''b250YWw9ZS5DbHJTaGFwZUNsb3VkPWUuQ2xyU2hhcGVJbWFnZT1lLkNsclNoYXBlQmVsbD1lLkNsclNoYXBlRm9sZGVyT3Blbj1lLkNsclNoYXBlRm9sZGVyPWUuQ2xyU2hhcGVBbmdsZT1lLkNsclNoYXBlVXNlcj1lLkNsclNoYXBlQmFycz1lLkNsclNoYXBlSGVscEluZm89ZS5DbHJTaGFw''@;'; + put 'put ''ZVdhcm5pbmdTdGFuZGFyZD1lLkNsclNoYXBlRXJyb3JTdGFuZGFyZD1lLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPWUuQ2xyU2hhcGVJbmZvU3RhbmRhcmQ9ZS5DbHJTaGFwZUluZm9DaXJjbGU9ZS5DbHJTaGFwZUNoZWNrQ2lyY2xlPWUuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZT1lLkNs''@;'; + put 'put ''clNoYXBlRXhjbGFtYXRpb25UcmlhbmdsZT1lLkNsclNoYXBlVGltZXM9ZS5DbHJTaGFwZUNoZWNrPWUuQ2xyU2hhcGVDb2c9ZS5DbHJTaGFwZUhvbWU9ZS5DbHJTaGFwZVVua25vd25TdGF0dXM9dm9pZCAwO3ZhciByPWEoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3It''@;'; + put 'put ''Y29uZmlnLnRzIik7YT1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLGUuQ2xyU2hhcGVVbmtub3duU3RhdHVzPSgwLGEuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIx''@;'; + put 'put ''Ny41OCIgY3k9IjI2LjIzIiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI0LjcsMTNhNS4xOCw1LjE4LDAsMCwwLTIuMTYtMy41Niw3LjI2LDcuMjYsMCwwLDAtNS43MS0xLjA5QTExLjM0LDEx''@;'; + put 'put ''LjM0LDAsMCwwLDEyLDEwLjQ0LDEsMSwwLDEsMCwxMy4yNiwxMmE5LjMyLDkuMzIsMCwwLDEsMy45NC0xLjcyLDUuMjksNS4yOSwwLDAsMSw0LjE2Ljc0LDMuMjEsMy4yMSwwLDAsMSwxLjM1LDIuMTljLjMzLDIuNjktMy4xOSwzLjc1LTUuMzIsNC4xNGwtLjgyLjE1djQuMzZhMSwxLDAsMCww''@;'; + put 'put ''LDIsMFYxOS4xN0MyNC42MSwxNy43OSwyNC44OCwxNC40MSwyNC43LDEzWiIvPicpLGUuQ2xyU2hhcGVIb21lPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMuNzEsMTcuMjlsLTE1LTE1YTEsMSwwLDAsMC0x''@;'; + put 'put ''LjQxLDBsLTE1LDE1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTgsNC40MSwzMi4yOSwxOC43MWExLDEsMCwwLDAsMS40MS0xLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjgsMzJoLTVWMjJIMTNWMzJI''@;'; + put 'put ''OFYxOEw2LDIwVjMyYTIsMiwwLDAsMCwyLDJoN1YyNGg2VjM0aDdhMiwyLDAsMCwwLDItMlYxOS43NmwtMi0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywxOWExLDEsMCwwLDEtLjcxLS4yOUwxOCw0LjQx''@;'; + put 'put ''LDMuNzEsMTguNzFhMSwxLDAsMCwxLTEuNDEtMS40MWwxNS0xNWExLDEsMCwwLDEsMS40MSwwbDE1LDE1QTEsMSwwLDAsMSwzMywxOVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTgsNy43OSw2LDE5LjgzVjMy''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJoN1YyNGg2VjM0aDdhMiwyLDAsMCwwLDItMlYxOS43NloiLz4nKSxlLkNsclNoYXBlQ29nPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTguMSwxMWMtMy45LDAtNywzLjEtNyw3czMu''@;'; + put 'put ''MSw3LDcsN2MzLjksMCw3LTMuMSw3LTdTMjIsMTEsMTguMSwxMXogTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMi44LDAsNSwyLjIsNSw1UzIwLjksMjMsMTguMSwyM3oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMiIgZD0iTTMyLjgsMTQuN0wzMCwxMy44bC0wLjYtMS41bDEuNC0yLjZjMC4zLTAuNiwwLjItMS40LTAuMy0xLjlsLTIuNC0yLjRjLTAuNS0wLjUtMS4zLTAuNi0xLjktMC4zbC0yLjYsMS40bC0xLjUtMC42bC0wLjktMi44QzIxLDIuNSwyMC40LDIsMTkuNywyaC0zLjRjLTAu''@;'; + put 'put ''NywwLTEuMywwLjUtMS40LDEuMkwxNCw2Yy0wLjYsMC4xLTEuMSwwLjMtMS42LDAuNkw5LjgsNS4yQzkuMiw0LjksOC40LDUsNy45LDUuNUw1LjUsNy45QzUsOC40LDQuOSw5LjIsNS4yLDkuOGwxLjMsMi41Yy0wLjIsMC41LTAuNCwxLjEtMC42LDEuNmwtMi44LDAuOUMyLjUsMTUsMiwxNS42''@;'; + put 'put ''LDIsMTYuM3YzLjRjMCwwLjcsMC41LDEuMywxLjIsMS41TDYsMjIuMWwwLjYsMS41bC0xLjQsMi42Yy0wLjMsMC42LTAuMiwxLjQsMC4zLDEuOWwyLjQsMi40YzAuNSwwLjUsMS4zLDAuNiwxLjksMC4zbDIuNi0xLjRsMS41LDAuNmwwLjksMi45YzAuMiwwLjYsMC44LDEuMSwxLjUsMS4xaDMu''@;'; + put 'put ''NGMwLjcsMCwxLjMtMC41LDEuNS0xLjFsMC45LTIuOWwxLjUtMC42bDIuNiwxLjRjMC42LDAuMywxLjQsMC4yLDEuOS0wLjNsMi40LTIuNGMwLjUtMC41LDAuNi0xLjMsMC4zLTEuOWwtMS40LTIuNmwwLjYtMS41bDIuOS0wLjljMC42LTAuMiwxLjEtMC44LDEuMS0xLjV2LTMuNEMzNCwxNS42''@;'; + put 'put ''LDMzLjUsMTQuOSwzMi44LDE0Ljd6IE0zMiwxOS40bC0zLjYsMS4xTDI4LjMsMjFjLTAuMywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEt''@;'; + put 'put ''My42TDE1LDI4LjNjLTAuNy0wLjMtMS40LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMsMS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMt''@;'; + put 'put ''MC41TDcuMSw5LjFsMi0ybDMuMiwxLjhsMC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4yLTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNUwyMSw3LjdjMC43LDAuMiwxLjQsMC41LDIuMSwwLjlsMC41LDAuM2wzLjMtMS44bDIsMmwtMS44LDMuM2wwLjMsMC41YzAuNCwwLjcsMC43LDEu''@;'; + put 'put ''NCwwLjksMi4xbDAuMSwwLjVsMy42LDEuMVYxOS40eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTExLjEsMThjMCwzLjksMy4xLDcsNyw3YzMuOSwwLDctMy4xLDctN3MtMy4x''@;'; + put 'put ''LTctNy03QzE0LjIsMTEsMTEuMSwxNC4xLDExLjEsMTh6IE0yMy4xLDE4YzAsMi44LTIuMiw1LTUsNWMtMi44LDAtNS0yLjItNS01czIuMi01LDUtNUMyMC45LDEzLDIzLjEsMTUuMiwyMy4xLDE4eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjgsMTQuN0wzMCwxMy44bC0wLjEtMC4zYy0wLjgsMC0xLjYtMC4yLTIuNC0wLjRjMC4zLDAuNiwwLjYsMS4zLDAuOCwxLjlsMC4xLDAuNWwzLjYsMS4xdjIuOGwtMy42LDEuMUwyOC4zLDIxYy0wLjMsMC43LTAuNiwxLjQt''@;'; + put 'put ''MC45LDIuMWwtMC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAuM2wtMy4zLDEuOGwtMi0ybDEuOC0z''@;'; + put 'put ''LjNsLTAuMy0wLjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQtMC43LDIuMi0wLjlsMC41LTAuMkwx''@;'; + put 'put ''Ni42LDRoMi44bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS4zLDAuNSwxLjksMC44Yy0wLjMtMC44LTAuNC0xLjYtMC40LTIuNWwtMC40LTAuMmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEu''@;'; + put 'put ''NiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42''@;'; + put 'put ''LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYs''@;'; + put 'put ''MS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiIvPlxuICAgICAgICAgICAgICAgIDxj''@;'; + put 'put ''aXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy43LDE1LjRoLTUuM3YwLjFsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUsMC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwtMC41''@;'; + put 'put ''LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAuNUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAuMi0w''@;'; + put 'put ''LjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy40bDEuNC0yLjNsLTAuNi0yQzIxLDIuNCwyMC40LDIsMTkuNywyaC0zLjRjLTAuNywwLTEuMywwLjUtMS40''@;'; + put 'put ''LDEuMkwxNCw2Yy0wLjYsMC4xLTEuMSwwLjMtMS42LDAuNkw5LjgsNS4yQzkuMiw0LjksOC40LDUsNy45LDUuNUw1LjUsNy45QzUsOC40LDQuOSw5LjIsNS4yLDkuOGwxLjMsMi41Yy0wLjIsMC41LTAuNCwxLjEtMC42LDEuNmwtMi44LDAuOUMyLjUsMTUsMiwxNS42LDIsMTYuM3YzLjRjMCww''@;'; + put 'put ''LjcsMC41LDEuMywxLjIsMS41TDYsMjIuMWwwLjYsMS41bC0xLjQsMi42Yy0wLjMsMC42LTAuMiwxLjQsMC4zLDEuOWwyLjQsMi40YzAuNSwwLjUsMS4zLDAuNiwxLjksMC4zbDIuNi0xLjRsMS41LDAuNmwwLjksMi45YzAuMiwwLjYsMC44LDEuMSwxLjUsMS4xaDMuNGMwLjcsMCwxLjMtMC41''@;'; + put 'put ''LDEuNS0xLjFsMC45LTIuOWwxLjUtMC42bDIuNiwxLjRjMC42LDAuMywxLjQsMC4yLDEuOS0wLjNsMi40LTIuNGMwLjUtMC41LDAuNi0xLjMsMC4zLTEuOWwtMS40LTIuNmwwLjYtMS41bDIuOS0wLjljMC42LTAuMiwxLjEtMC44LDEuMS0xLjV2LTMuNEMzNCwxNiwzMy45LDE1LjcsMzMuNywx''@;'; + put 'put ''NS40eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTguMSwyM2MtMi44LDAtNS0yLjItNS01czIuMi01LDUtNWMwLjIsMCwwLjUsMCwwLjcsMC4xYy0wLjItMC42LTAuMy0x''@;'; + put 'put ''LjMtMC4yLTJoLTAuNWMtMy45LDAtNywzLjEtNyw3YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdjMC0wLjktMC4yLTEuOC0wLjUtMi42aC0yLjJjMC41LDAuOCwwLjcsMS42LDAuNywyLjVDMjMuMSwyMC44LDIwLjksMjMsMTguMSwyM3oiLz5cbiAgICAgICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwx''@;'; + put 'put ''LjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuNTcsMTUu''@;'; + put 'put ''NzJsLTMuMzUtMWExMS42NSwxMS42NSwwLDAsMC0uOTUtMi4zM2wxLjY0LTMuMDdhLjYxLjYxLDAsMCwwLS4xMS0uNzJMMjcuNDEsNi4yYS42MS42MSwwLDAsMC0uNzItLjExTDIzLjY0LDcuNzJhMTEuNjIsMTEuNjIsMCwwLDAtMi4zNi0xbC0xLTMuMzFBLjYxLjYxLDAsMCwwLDE5LjY5LDNI''@;'; + put 'put ''MTYuMzFhLjYxLjYxLDAsMCwwLS41OC40M2wtMSwzLjNhMTEuNjMsMTEuNjMsMCwwLDAtMi4zOCwxbC0zLTEuNjJhLjYxLjYxLDAsMCwwLS43Mi4xMUw2LjIsOC41OWEuNjEuNjEsMCwwLDAtLjExLjcybDEuNjIsM2ExMS42MywxMS42MywwLDAsMC0xLDIuMzdsLTMuMzEsMWEuNjEuNjEsMCww''@;'; + put 'put ''LDAtLjQzLjU4djMuMzhhLjYxLjYxLDAsMCwwLC40My41OGwzLjMzLDFhMTEuNjIsMTEuNjIsMCwwLDAsMSwyLjMzTDYuMDksMjYuNjlhLjYxLjYxLDAsMCwwLC4xMS43Mkw4LjU5LDI5LjhhLjYxLjYxLDAsMCwwLC43Mi4xMWwzLjA5LTEuNjVhMTEuNjUsMTEuNjUsMCwwLDAsMi4zLjk0bDEs''@;'; + put 'put ''My4zN2EuNjEuNjEsMCwwLDAsLjU4LjQzaDMuMzhhLjYxLjYxLDAsMCwwLC41OC0uNDNsMS0zLjM4YTExLjYzLDExLjYzLDAsMCwwLDIuMjgtLjk0bDMuMTEsMS42NmEuNjEuNjEsMCwwLDAsLjcyLS4xMWwyLjM5LTIuMzlhLjYxLjYxLDAsMCwwLC4xMS0uNzJsLTEuNjYtMy4xYTExLjYzLDEx''@;'; + put 'put ''LjYzLDAsMCwwLC45NS0yLjI5bDMuMzctMWEuNjEuNjEsMCwwLDAsLjQzLS41OFYxNi4zMUEuNjEuNjEsMCwwLDAsMzIuNTcsMTUuNzJaTTE4LDIzLjVBNS41LDUuNSwwLDEsMSwyMy41LDE4LDUuNSw1LjUsMCwwLDEsMTgsMjMuNVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMyLjU3LDE1LjcybC0zLjM1LTFhMTIuMTIsMTIuMTIsMCwwLDAtLjQ3LTEuMzIsNy40OSw3LjQ5LDAsMCwxLTYuMTQtNi4xNiwxMS44MiwxMS44MiwwLDAsMC0xLjMzLS40OGwtMS0zLjMxQS42MS42''@;'; + put 'put ''MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0z''@;'; + put 'put ''LjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1''@;'; + put 'put ''LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0x''@;'; + put 'put ''LjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMi41NywxNS43MiwzMS41LDE1LjRIMjIuODVBNS41LDUuNSwwLDEsMSwxOCwxMi41YTUuNTMsNS41MywwLDAsMSwuNjUsMEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwyLjA5LTMuNjItLjg2LTIuODNBLjYxLjYxLDAsMCwwLDE5LjY5LDNIMTYuMzFhLjYx''@;'; + put 'put ''LjYxLDAsMCwwLS41OC40M2wtMSwzLjNhMTEuNjMsMTEuNjMsMCwwLDAtMi4zOCwxbC0zLTEuNjJhLjYxLjYxLDAsMCwwLS43Mi4xMUw2LjIsOC41OWEuNjEuNjEsMCwwLDAtLjExLjcybDEuNjIsM2ExMS42MywxMS42MywwLDAsMC0xLDIuMzdsLTMuMzEsMWEuNjEuNjEsMCwwLDAtLjQzLjU4''@;'; + put 'put ''djMuMzhhLjYxLjYxLDAsMCwwLC40My41OGwzLjMzLDFhMTEuNjIsMTEuNjIsMCwwLDAsMSwyLjMzTDYuMDksMjYuNjlhLjYxLjYxLDAsMCwwLC4xMS43Mkw4LjU5LDI5LjhhLjYxLjYxLDAsMCwwLC43Mi4xMWwzLjA5LTEuNjVhMTEuNjUsMTEuNjUsMCwwLDAsMi4zLjk0bDEsMy4zN2EuNjEu''@;'; + put 'put ''NjEsMCwwLDAsLjU4LjQzaDMuMzhhLjYxLjYxLDAsMCwwLC41OC0uNDNsMS0zLjM4YTExLjYzLDExLjYzLDAsMCwwLDIuMjgtLjk0bDMuMTEsMS42NmEuNjEuNjEsMCwwLDAsLjcyLS4xMWwyLjM5LTIuMzlhLjYxLjYxLDAsMCwwLC4xMS0uNzJsLTEuNjYtMy4xYTExLjYzLDExLjYzLDAsMCww''@;'; + put 'put ''LC45NS0yLjI5bDMuMzctMWEuNjEuNjEsMCwwLDAsLjQzLS41OFYxNi4zMUEuNjEuNjEsMCwwLDAsMzIuNTcsMTUuNzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIg''@;'; + put 'put ''ZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGUuQ2xyU2hhcGVDaGVjaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTEzLjcyLDI3LjY5LDMuMjksMTcuMjdhMSwxLDAsMCwxLDEuNDEtMS40MWw5LDlMMzEuMjksNy4yOWExLDEsMCwwLDEsMS40MSwxLjQxWiIvPicpLGUuQ2xyU2hhcGVUaW1lcz0oMCxhLmNsckljb25TVkcpKCc8''@;'; + put 'put ''cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE5LjQxLDE4bDguMjktOC4yOWExLDEsMCwwLDAtMS40MS0xLjQxTDE4LDE2LjU5LDkuNzEsOC4yOUExLDEsMCwwLDAsOC4yOSw5LjcxTDE2LjU5LDE4LDguMjksMjYuMjlhMSwxLDAsMSwwLDEuNDEs''@;'; + put 'put ''MS40MUwxOCwxOS40MWw4LjI5LDguMjlhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz4nKSxlLkNsclNoYXBlRXhjbGFtYXRpb25UcmlhbmdsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDIxLjMyYTEuMywx''@;'; + put 'put ''LjMsMCwwLDAsMS4zLTEuM1YxNGExLjMsMS4zLDAsMSwwLTIuNiwwdjZBMS4zLDEuMywwLDAsMCwxOCwyMS4zMloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMTcuOTUiIGN5PSIyNC4yNyIgcj0iMS41''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZhMywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMsMywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQu''@;'; + put 'put ''NDNabS0xLjc4LDEuOTRhMSwxLDAsMCwxLS44Ni40OUg4LjIxYTEsMSwwLDAsMS0uODgtMS40OEwxNy4wNyw4LjU1YTEsMSwwLDAsMSwxLjc2LDBsOS43NCwxNy45NEExLDEsMCwwLDEsMjguNTUsMjcuNDhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjMzLDI1LjU0LDIwLjU5LDcuNmEzLDMsMCwwLDAtNS4yNywwTDUuNTcsMjUuNTRBMywzLDAsMCwwLDguMjEsMzBIMjcuNjlhMywzLDAsMCwwLDIuNjQtNC40M1pNMTYuNDYsMTIuNzRhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSww''@;'; + put 'put ''LDEsMS0zLDBaTTE4LDI2LjI1YTEuNzIsMS43MiwwLDEsMSwxLjcyLTEuNzJBMS43MiwxLjcyLDAsMCwxLDE4LDI2LjI1WiIvPicpLGUuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0i''@;'; + put 'put ''TTE4LDIwLjA3YTEuMywxLjMsMCwwLDEtMS4zLTEuM3YtNmExLjMsMS4zLDAsMSwxLDIuNiwwdjZBMS4zLDEuMywwLDAsMSwxOCwyMC4wN1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBjeD0iMTcuOTUiIGN5''@;'; + put 'put ''PSIyMy4wMiIgcj0iMS41Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTEuNDksNmExLjQ5LDEuNDksMCwwLDEsMywwdjYuODlhMS40OSwx''@;'; + put 'put ''LjQ5LDAsMSwxLTMsMFpNMTgsMjUuNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcyQTEuNzIsMS43MiwwLDAsMSwxOCwyNS41WiIvPicpLGUuQ2xyU2hhcGVDaGVja0NpcmNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE2''@;'; + put 'put ''LjM0LDIzLjc0bC01LTVhMSwxLDAsMCwxLDEuNDEtMS40MWwzLjU5LDMuNTksNi43OC02Ljc4YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDE4QTEyLDEyLDAsMSwxLDE4''@;'; + put 'put ''LDYsMTIsMTIsMCwwLDEsMzAsMThabS00Ljc3LTIuMTZhMS40LDEuNCwwLDAsMC0yLTJsLTYuNzcsNi43N0wxMywxNy4xNmExLjQsMS40LDAsMCwwLTIsMmw1LjQ1LDUuNDVaIi8+JyksZS5DbHJTaGFwZUluZm9DaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgIGN4PSIxNy45MyIgY3k9IjExLjkiIHI9IjEuNCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAgZD0iTTIxLDIzSDE5VjE1SDE2YTEsMSwwLDAsMCwwLDJoMXY2''@;'; + put 'put ''SDE1YTEsMSwwLDEsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEs''@;'; + put 'put ''MSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0tMiw1LjE1YTIsMiwwLDEsMSwyLDJBMiwyLDAs''@;'; + put 'put ''MCwxLDE1LjksMTEuMTVaTTIzLDI0YTEsMSwwLDAsMS0xLDFIMTVhMSwxLDAsMSwxLDAtMmgyVjE3SDE2YTEsMSwwLDAsMSwwLTJoNHY4aDJBMSwxLDAsMCwxLDIzLDI0WiIvPicpLGUuQ2xyU2hhcGVJbmZvU3RhbmRhcmQ9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE3Ljk3IiBjeT0iMTAuNDUiIHI9IjEuNCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjEsMjVIMTlWMTQuMUgxNmExLDEsMCwwLDAsMCwyaDFW''@;'; + put 'put ''MjVIMTVhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCww''@;'; + put 'put ''LDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyLjFhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTgsMi4xWm0tLjEsNS4yOGEyLDIsMCwxLDEtMiwy''@;'; + put 'put ''QTIsMiwwLDAsMSwxNy45LDcuMzhabTMuNiwyMS4yNWgtN2ExLjQsMS40LDAsMSwxLDAtMi44aDIuMXYtOS4ySDE1YTEuNCwxLjQsMCwxLDEsMC0yLjhoNC40djEyaDIuMWExLjQsMS40LDAsMSwxLDAsMi44WiIvPicpLGUuQ2xyU2hhcGVTdWNjZXNzU3RhbmRhcmQ9KDAsYS5jbHJJY29uU1ZH''@;'; + put 'put ''KSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOCwxMi4xYTEsMSwwLDAsMC0xLjQxLDBMMTUuNDksMjMuMTVsLTYtNkExLDEsMCwwLDAsOCwxOC41M0wxNS40OSwyNiwyOCwxMy41MkExLDEsMCwwLDAsMjgsMTIuMVoiLz5cbiAgICAgICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk0yOC40NSwxMi42MywxNS4zMSwyNS43Niw3LjU1LDE4YTEuNCwxLjQsMCwwLDEsMi0ybDUuNzgsNS43OEwyNi40NywxMC42NWExLjQs''@;'; + put 'put ''MS40LDAsMSwxLDIsMloiLz4nKSxlLkNsclNoYXBlRXJyb3JTdGFuZGFyZD0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwxLDAsMCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkExLDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTEiIGQ9Ik0xOCwyLjFhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTgsMi4xWk0xNi42LDguOGExLjQsMS40LDAsMCwxLDIuOCwwdjEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI4LjZhMS44LDEuOCwwLDEsMSwxLjgtMS44QTEuOCwxLjgsMCwwLDEsMTgsMjguNloiLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlV2FybmluZ1N0YW5kYXJkPSgwLGEuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxOCIgY3k9IjI2LjA2IiByPSIxLjMzIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMi42MWExLDEsMCwwLDEtMS0xdi0xMmExLDEsMCwxLDEsMiwwdjEyQTEsMSwwLDAsMSwxOCwyMi42MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0i''@;'; + put 'put ''TTE1LjA2MjA3ODIsMS42ODExOTYgQzE1LjYyOTg4MTksMC42NDkyNjYzNTUgMTYuNzEwOTA5MSwwLjAxMDIyMTkzOTYgMTcuODg1LDAuMDEwMjIxOTM5NiBDMTkuMDU5MDkwOSwwLjAxMDIyMTkzOTYgMjAuMTQwMTE4MSwwLjY0OTI2NjM1NSAyMC43MDg2NDMzLDEuNjgyNTIxMjkgTDM0LjU5''@;'; + put 'put ''ODY0NCwyNy4yNDI1MjI1IEMzNS4xNDA3NzQ2LDI4LjI0MDEzOTcgMzUuMTE3NDM0NSwyOS40NDk1MzczIDM0LjUzNzIxNjEsMzAuNDI1NDk0MyBDMzMuOTU2OTk3NywzMS40MDE0NTE0IDMyLjkwNTY3MSwzMS45OTk2OTg0IDMxLjc3LDMyIEw0LjAyMjM5MzIzLDMxLjk5OTc0OTIgQzIuODc0''@;'; + put 'put ''MDkwMDksMzIuMDI1NDY5OSAxLjc5OTAyODQzLDMxLjQzNzU3NTMgMS4yMDEwNjMzNSwzMC40NTY5MTI2IEMwLjYwMzA5ODI2NSwyOS40NzYyNDk5IDAuNTcyNzc3ODk5LDI4LjI1MTMxNzkgMS4xMjIwNzgxOCwyNy4yNDExOTYgTDE1LjA2MjA3ODIsMS42ODExOTYgWiBNMi44Nzg1MDc2Nywy''@;'; + put 'put ''OC4xOTc3MjgyIEMyLjY3MDYwOTY2LDI4LjU4MDAzNzYgMi42ODIwOTc1LDI5LjA0NDE0MjMgMi45MDg2NTU3LDI5LjQxNTY5NzcgQzMuMTM1MjEzOSwyOS43ODcyNTMyIDMuNTQyNTM1NCwzMC4wMDk5OTU5IDQsMzAgTDMxLjc2OTczNDQsMzAgQzMyLjE5OTkxOTEsMjkuOTk5ODg1OCAzMi41''@;'; + put 'put ''OTgyNDc4LDI5Ljc3MzIyMDggMzIuODE4MDgyMSwyOS40MDM0NDgyIEMzMy4wMzc5MTY0LDI5LjAzMzY3NTcgMzMuMDQ2NzU5NSwyOC41NzU0NTY3IDMyLjg0MTM1NjcsMjguMTk3NDc4NyBMMTguOTUzODczOSwyLjY0MjA4MTk1IEMxOC43Mzk0MjM2LDIuMjUyMzQ0MzYgMTguMzI5ODQxOSwy''@;'; + put 'put ''LjAxMDIyMTk0IDE3Ljg4NSwyLjAxMDIyMTk0IEMxNy40NDA2ODg5LDIuMDEwMjIxOTQgMTcuMDMxNTUzOCwyLjI1MTc2NjkyIDE2LjgxNjg5NDYsMi42NDA2ODc1MyBMMi44Nzg1MDc2NywyOC4xOTc3MjgyIFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuNiwyOS4yMSwyMC43MSwzLjY1YTMuMjIsMy4yMiwwLDAsMC01LjY2LDBMMS4xNywyOS4yMUEzLjIyLDMuMjIsMCwwLDAsNCwzNEgzMS43N2EzLjIyLDMuMjIsMCwwLDAsMi44My00Ljc1Wk0xNi42LDEwYTEuNCwxLjQsMCwwLDEsMi44LDB2MTJh''@;'; + put 'put ''MS40LDEuNCwwLDAsMS0yLjgsMFpNMTgsMjkuODVhMS44LDEuOCwwLDEsMSwxLjgtMS44QTEuOCwxLjgsMCwwLDEsMTgsMjkuODVaIi8+JyksZS5DbHJTaGFwZUhlbHBJbmZvPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNS4zOSwyNS40NWExLDEsMCwwLDAtMS4zOC4yOWMtMS40MSwy''@;'; + put 'put ''LjE2LTQsNC44MS02LjMxLDUuN3MtNC4xMi41Ny00Ljg0LDBjLS4zMS0uMjctMS4xMi0xLS40My0zLjQ5LjQ2LTEuNjYsMy4zMi05LjQ4LDQtMTEuMzhsLTIuMTguMjhjLS42OSwxLjg2LTMuMjksOC44NC0zLjc2LDEwLjU4LS42OCwyLjQ5LS4zNCw0LjMsMS4wOSw1LjU2QTUuNTksNS41OSww''@;'; + put 'put ''LDAsMCwxNSwzNGE5LjUzLDkuNTMsMCwwLDAsMy40NS0uN2MyLjc5LTEuMDksNS43Mi00LjEyLDcuMjYtNi40N0ExLDEsMCwwLDAsMjUuMzksMjUuNDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS4zLDEx''@;'; + put 'put ''YTQuNSw0LjUsMCwxLDAtNC41LTQuNUE0LjUsNC41LDAsMCwwLDE5LjMsMTFabTAtN2EyLjUsMi41LDAsMSwxLTIuNSwyLjVBMi41LDIuNSwwLDAsMSwxOS4zLDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x''@;'; + put 'put ''MS44MSwxNWMuMDYsMCw2LjI3LS44Miw3LjczLTEsLjY1LS4xLDEuMTQsMCwxLjMuMTVzLjIxLjgtLjA3LDEuNjhjLS42MSwxLjg2LTMuNjksMTEtNC41OSwxMy43MWE4LDgsMCwwLDAsMS4yOS0uMzgsNy4zMiw3LjMyLDAsMCwwLDEuMTUtLjZDMTkuODUsMjUsMjIuMTUsMTguMSwyMi42Nywx''@;'; + put 'put ''Ni41MnMuMzktMi43OC0uMy0zLjZhMy4xNiwzLjE2LDAsMCwwLTMuMDgtLjgzYy0xLjQzLjE1LTcuNDcuOTQtNy43MywxYTEsMSwwLDAsMCwuMjYsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjAuNzUi''@;'; + put 'put ''IGN5PSI2IiByPSI0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0Ljg0LDI2LjIzYTEsMSwwLDAsMC0xLjQuMjksMTYuNiwxNi42LDAsMCwxLTMuNTEsMy43N2MtLjMzLjI1LTEuNTYsMS4yLTIuMDgsMS0uMzYtLjEx''@;'; + put 'put ''LS4xNS0uODItLjA4LTEuMTJsLjUzLTEuNTdjLjIyLS42NCw0LjA1LTEyLDQuNDctMTMuMy42Mi0xLjkuMzUtMy43Ny0yLjQ4LTMuMzItLjc3LjA4LTguNTgsMS4wOS04LjcyLDEuMWExLDEsMCwwLDAsLjEzLDJzMy0uMzksMy4zMy0uNDJhLjg4Ljg4LDAsMCwxLC44NS40NCwyLjQ3LDIuNDcs''@;'; + put 'put ''MCwwLDEtLjA3LDEuNzFjLS4yNiwxLTQuMzcsMTIuNTgtNC41LDEzLjI1YTIuNzgsMi43OCwwLDAsMCwxLjE4LDMsNSw1LDAsMCwwLDMuMDguODNoMGE4LjUzLDguNTMsMCwwLDAsMy4wOS0uNjJjMi40OS0xLDUuMDktMy42Niw2LjQ2LTUuNzVBMSwxLDAsMCwwLDI0Ljg0LDI2LjIzWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQmFycz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDI5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEsMCwy''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsMTlINGExLDEsMCwwLDEsMC0ySDMyYTEsMSwwLDAsMSwwLDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zMiw5SDRBMSwxLDAsMCwxLDQsN0gzMmExLDEsMCwwLDEsMCwyWiIvPicpLGUuQ2xyU2hhcGVVc2VyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwxLDAtNy03QTcsNywwLDAsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEtNSw1''@;'; + put 'put ''QTUsNSwwLDAsMSwxOCw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAsMiwySDI5YTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMjUuNzRBMiwyLDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3YTE3''@;'; + put 'put ''LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjksMzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwyMiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNC40NS0xLjZoLS4yMkEzLjY4LDMuNjgsMCwwLDEsMjAsMTQuNmE1LDUsMCwxLDEsMS4yNC04LjQybDEtMS43NkE3LDcsMCwxLDAsMTgsMTda''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFM''@;'; + put 'put ''MjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4xNiww''@;'; + put 'put ''LDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0VjMxYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE3YTcsNywwLDAsMCw2Ljg1LTUuNTYsNy40LDcuNCwwLDAsMS0yLjI0LTYuNjlBNyw3LDAsMSwwLDE4LDE3Wk0xOCw1YTUsNSwwLDEsMS01LDVBNSw1LDAsMCwxLDE4LDVaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFk''@;'; + put 'put ''Z2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNjEsMjQuNTJhMTcuMTYsMTcuMTYsMCwwLDAtMjUuMjIsMCwxLjUxLDEuNTEsMCwwLDAtLjM5LDF2NkExLjUsMS41LDAsMCwwLDYuNSwzM2gyM0ExLjUsMS41LDAsMCwwLDMxLDMxLjV2LTZBMS41MSwxLjUxLDAsMCwwLDMwLjYxLDI0''@;'; + put 'put ''LjUyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTAiIHI9IjciIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNjEsMjQu''@;'; + put 'put ''NTJhMTcuMTYsMTcuMTYsMCwwLDAtMjUuMjIsMCwxLjUxLDEuNTEsMCwwLDAtLjM5LDF2NkExLjUsMS41LDAsMCwwLDYuNSwzM2gyM0ExLjUsMS41LDAsMCwwLDMxLDMxLjV2LTZBMS41MSwxLjUxLDAsMCwwLDMwLjYxLDI0LjUyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNC40NS0xLjZoLS4yMkEzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwzLjE2LTUuNDdBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoi''@;'; + put 'put ''ICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEu''@;'; + put 'put ''NSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE3YTcsNyww''@;'; + put 'put ''LDAsMCw2Ljg1LTUuNTYsNy40LDcuNCwwLDAsMS0yLjI0LTYuNjlBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBlQW5nbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS41MiwyMi41Miwx''@;'; + put 'put ''OCwxMC42LDYuNDgsMjIuNTJhMS43LDEuNywwLDAsMCwyLjQ1LDIuMzZMMTgsMTUuNDlsOS4wOCw5LjM5YTEuNywxLjcsMCwwLDAsMi40NS0yLjM2WiIvPicpLGUuQ2xyU2hhcGVGb2xkZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEiIGQ9Ik0zMCw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzAsOVptMCwyMEg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYx''@;'; + put 'put ''LDMuNTlhMSwxLDAsMCwwLC44MS40MUgzMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41VjI5SDZWMTNoNy4zMWEyLDIsMCwwLDAsMi0ySDZWN2g2LjQ5bDIuNjEs''@;'; + put 'put ''My41OWExLDEsMCwwLDAsLjgxLjQxaDguNTFhNy41LDcuNSwwLDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMCwxNS40VjI5SDZWMTNoNy4zMWEyLDIsMCwwLDAsMi0ySDZWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDIuNzNBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMTkuNTYsOUgxNi40MkwxNC4xMSw1''@;'; + put 'put ''LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzAsOVpNNiwxMVY3aDYuNDlsMi43Miw0WiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yMi4yMywxNS40QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2''@;'; + put 'put ''QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFs''@;'; + put 'put ''ZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; + put 'put ''bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41QTcuNSw3LjUsMCwwLDEsMjMuMTMsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJB''@;'; + put 'put ''Ny40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+Jyks''@;'; + put 'put ''ZS5DbHJTaGFwZUZvbGRlck9wZW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEs''@;'; + put 'put ''MCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJhMiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAs''@;'; + put 'put ''MS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFpNMjkuNTUsMjlINi45bDMuODgtMTMuODFhLjY2LjY2LDAsMCwxLC4zOC0uMjRIMzMuNDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAsMCwx''@;'; + put 'put ''LTEuMjktMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFpNMjkuNTUsMjlINi45bDMu''@;'; + put 'put ''ODgtMTMuODFhLjY2LjY2LDAsMCwxLC4zOC0uMjRIMzMuNDlaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRoLS4zTDI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0aDkuNDJBMy42NywzLjY3LDAsMCwxLDE5''@;'; + put 'put ''LDEzLjU2YTMuNjMsMy42MywwLDAsMS0uMjYtLjU2SDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDIuNzNBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMTkuNTYsOUgxNi40MkwxNC4x''@;'; + put 'put ''MSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xYTEuNjgsMS42OCwwLDAsMCwuMDctLjMyQTMuNjcsMy42NywwLDAsMSwzMy42OCwxNS40WiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4''@;'; + put 'put ''LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSwwLDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTks''@;'; + put 'put ''MCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MUgzMmEyLDIsMCwwLDAtMi0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQx''@;'; + put 'put ''LDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFBMS42NCwxLjY0LDAsMCwwLDM1LjMyLDEzLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIy''@;'; + put 'put ''LjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5''@;'; + put 'put ''Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCwwLDEs''@;'; + put 'put ''MzMuNjgsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4y''@;'; + put 'put ''OCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEu''@;'; + put 'put ''NzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoOC41MmE3LjQ5LDcuNDksMCwwLDEtMS4zMS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5''@;'; + put 'put ''LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFBMS42NCwxLjY0LDAsMCwwLDM1LjMyLDEzLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxlLkNsclNoYXBlQmVsbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjUxLDI3LjgzQTE0''@;'; + put 'put ''LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNUExMC44MSwxMC44MSwwLDAsMCwxOS4yMSw0LjRWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42NywwVjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAs''@;'; + put 'put ''MCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzLDEsMSwwLDAsMC0uMzQuNzV2MS4zNmExLDEsMCwwLDAsMSwxaDI3LjhhMSwxLDAsMCwwLDEtMVYyOC41OEExLDEsMCwwLDAsMzIuNTEsMjcuODNaTTUuMTMsMjguOTRhMTYuMTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0LjI0''@;'; + put 'put ''LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNWE4Ljc0LDguNzQsMCwxLDEsMTcuNDcsMHY0Ljk0YTE0LjI0LDE0LjI0LDAsMCwwLDEuNjUsNS44NSwxNi4xNywxNi4xNywwLDAsMCwyLjQ0LDNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJh''@;'; + put 'put ''ZGdlZCIgZD0iTTE4LDM0LjI4QTIuNjcsMi42NywwLDAsMCwyMC41OCwzMkgxNS4zMkEyLjY3LDIuNjcsMCwwLDAsMTgsMzQuMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJN''@;'; + put 'put ''MzIuNTEsMjcuODNBMTQuNCwxNC40LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1YTEwLjkyLDEwLjkyLDAsMCwwLS4xNi0xLjc5LDcuNDQsNy40NCwwLDAsMS0yLjI0LS44NCw4Ljg5LDguODksMCwwLDEsLjQsMi42NHY0Ljk0YTE0LjI0LDE0LjI0LDAs''@;'; + put 'put ''MCwwLDEuNjUsNS44NSwxNi4xNywxNi4xNywwLDAsMCwyLjQ0LDNINS4xM2ExNi4xNywxNi4xNywwLDAsMCwyLjQ0LTMsMTQuMjQsMTQuMjQsMCwwLDAsMS42NS01Ljg1VjE1LjE1QTguOCw4LjgsMCwwLDEsMTgsNi4zMWE4LjYxLDguNjEsMCwwLDEsNC43NiwxLjQ0QTcuNDksNy40OSwwLDAs''@;'; + put 'put ''MSwyMi41LDZjMC0uMjEsMC0uNDIsMC0uNjNhMTAuNTgsMTAuNTgsMCwwLDAtMy4zMi0xVjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwxLTIu''@;'; + put 'put ''NDcsMi45MywxLDEsMCwwLDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEsMWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjg1LDI4LjEzbC0uMzQtLjNBMTQuMzcsMTQuMzcsMCwwLDEsMzAsMjQuOWExMi42''@;'; + put 'put ''MywxMi42MywwLDAsMS0xLjM1LTQuODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAsMTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAs''@;'; + put 'put ''MCwxLTIuNDcsMi45M2wtLjM0LjN2Mi44MkgzMi44NVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTUuMzIsMzJhMi42NSwyLjY1LDAsMCwwLDUuMjUsMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTE4LDM0LjI4QTIuNjcsMi42NywwLDAsMCwyMC41OCwzMkgxNS4zMkEyLjY3LDIuNjcsMCwwLDAsMTgsMzQuMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1YTEwLjkyLDEwLjkyLDAsMCwwLS4xNi0xLjc5QTcuNSw3LjUsMCwwLDEsMjIu''@;'; + put 'put ''NSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU3LDEwLjU3LDAsMCwwLTMuMzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIu''@;'; + put 'put ''OTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGUuQ2xyU2hhcGVJbWFnZT0oMCxhLmNs''@;'; + put 'put ''ckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTQsMzBWNkgzMlYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNOC45MiwxNGEzLDMsMCwxLDAtMy0zQTMsMywwLDAsMCw4LjkyLDE0Wm0wLTQuNkExLjYsMS42LDAsMSwxLDcuMzMsMTEsMS42LDEuNiwwLDAsMSw4LjkyLDkuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTIyLjc4LDE1LjM3bC01LjQsNS40LTQtNGExLDEsMCwwLDAtMS40MSwwTDUuOTIsMjIuOXYyLjgzbDYuNzktNi43OUwxNiwyMi4xOGwtMy43NSwzLjc1SDE1bDguNDUtOC40NUwzMCwyNFYyMS4xOGwtNS44MS01LjgxQTEsMSwwLDAsMCwyMi43OCwxNS4zN1oiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTMsMTFhMywzLDAsMSwwLTMsM0EzLDMsMCwwLDAsMTEuOTMsMTFabS00LjYsMGExLjYsMS42LDAsMSwxLDEuNiwxLjZBMS42LDEuNiwwLDAsMSw3LjMzLDExWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuMzgsMjAuNzdsLTQtNGExLDEsMCwwLDAtMS40MSwwTDUuOTIsMjIuOXYyLjgzbDYuNzktNi43OUwxNiwyMi4xOGwtMy43NSwzLjc1SDE1bDguNDUtOC40''@;'; + put 'put ''NUwzMCwyNFYyMS4xOGwtNS44MS01LjgxYTEsMSwwLDAsMC0xLjQxLDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMlYzMEg0VjZIMjIuNWE3LjQ5LDcuNDksMCwwLDEs''@;'; + put 'put ''LjI4LTJINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxj''@;'; + put 'put ''aXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEy''@;'; + put 'put ''LDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTguOTIsOGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjkyLDhaTTYsMjdWMjIuOWw2LTYuMDhhMSwxLDAsMCwxLDEuNDEsMEwxNiwxOS4zNSw4LjMyLDI3Wm0yNCwwSDExLjE1bDYuMjMtNi4yMyw1LjQtNS40YTEsMSwwLDAsMSwxLjQx''@;'; + put 'put ''LDBMMzAsMjEuMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ4LDcuNDgsMCwwLDEsMjIuNzgsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0''@;'; + put 'put ''QTcuNDYsNy40NiwwLDAsMSwzMCwxMy41Wk04LjkyLDhhMywzLDAsMSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMw''@;'; + put 'put ''LDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktYmFkZ2UiLz4nKSxlLkNsclNoYXBlQ2xvdWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy4xNCwzM0gxMC42MkM1LjY3LDMzLDEsMjguMTksMSwyMy4xYTEwLDEwLDAsMCwxLDgtOS43NSwxMC4xOSwx''@;'; + put 'put ''MC4xOSwwLDAsMSwyMC4zMywxLjA2QTEwLjA3LDEwLjA3LDAsMCwxLDI5LDE2LjY2YTguMjksOC4yOSwwLDAsMSw2LDhDMzUsMjkuMSwzMS4zMywzMywyNy4xNCwzM1pNMTkuMDksNi4yM2E4LjI0LDguMjQsMCwwLDAtOC4xOSw4bDAsLjg3LS44Ni4xQTcuOTQsNy45NCwwLDAsMCwzLDIzLjFj''@;'; + put 'put ''MCw0LDMuNzcsNy45LDcuNjIsNy45SDI3LjE0QzMwLjIxLDMxLDMzLDI4LDMzLDI0LjY1YTYuMzEsNi4zMSwwLDAsMC01LjM3LTYuMjZsLTEuMTgtLjE4LjM5LTEuMTNBOC4xOCw4LjE4LDAsMCwwLDE5LjA5LDYuMjNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjksMTYuNjZhMTAuMDcsMTAuMDcsMCwwLDAsLjI1LTIuMjRjMC0uMzMsMC0uNjUsMC0xYTcuNDUsNy40NSwwLDAsMS0yLjEtLjU0LDgsOCwwLDAsMS0uMyw0LjE2bC0uMzksMS4xMywxLjE4LjE4YTYuMzEs''@;'; + put 'put ''Ni4zMSwwLDAsMSw1LjM3LDYuMjZDMzIuOTUsMjgsMzAuMTYsMzEsMjcuMDksMzFIMTAuNTdjLTMuODQsMC03LjYyLTMuOTEtNy42Mi03LjlhNy45NCw3Ljk0LDAsMCwxLDctNy44OWwuODYtLjEsMC0uODdhOC4yNCw4LjI0LDAsMCwxLDguMTktOEE4LjEzLDguMTMsMCwwLDEsMjIuNTgsN2E3''@;'; + put 'put ''LjUzLDcuNTMsMCwwLDEtLjA4LTEsNy41MSw3LjUxLDAsMCwxLC4wOS0xLjEyQTEwLjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNmExMCwxMCwwLDAsMC04LDkuNzVjMCw1LjA5LDQuNjcsOS45LDkuNjIsOS45SDI3LjA5YzQuMTksMCw3Ljg2LTMu''@;'; + put 'put ''OSw3Ljg2LTguMzVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNi42NmExMC4xNCwxMC4xNCwwLDAsMCwuMi0xLjNoLTJhOC4yOCw4LjI4LDAsMCwxLS4zNywxLjcybC0uMzksMS4xMywxLjE4LjE4YTYu''@;'; + put 'put ''MzEsNi4zMSwwLDAsMSw1LjM3LDYuMjZDMzIuOTUsMjgsMzAuMTYsMzEsMjcuMDksMzFIMTAuNTdjLTMuODQsMC03LjYyLTMuOTEtNy42Mi03LjlhNy45NCw3Ljk0LDAsMCwxLDctNy44OWwuODYtLjEsMC0uODdBOC4xNiw4LjE2LDAsMCwxLDIxLDYuNDdsMS0xLjhBMTAuMTksMTAuMTksMCww''@;'; + put 'put ''LDAsOC45MSwxMy4zNmExMCwxMCwwLDAsMC04LDkuNzVjMCw1LjA5LDQuNjcsOS45LDkuNjIsOS45SDI3LjA5YzQuMTksMCw3Ljg2LTMuOSw3Ljg2LTguMzVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEu''@;'; + put 'put ''MTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0QTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzYsMTAsMTAsMCwwLDAsMSwyMy4xQzEsMjguMTks''@;'; + put 'put ''NS42MiwzMywxMC41NywzM0gyNy4wOUMzMS4yOCwzMywzNSwyOS4xLDM1LDI0LjY1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTI5LDE2''@;'; + put 'put ''LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ0LDcuNDQsMCwwLDEtNi42LTguNThBMTAuMTMsMTAuMTMsMCwwLDAsMTksNC4yMywxMC4yNiwxMC4yNiwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAu''@;'; + put 'put ''NTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMw''@;'; + put 'put ''IiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNi42NmExMC4xNSwxMC4xNSwwLDAsMCwuMi0xLjI2aC03QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDMt''@;'; + put 'put ''NS4yMUExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4y''@;'; + put 'put ''OCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGUuQ2xyU2hhcGVFbGxpcHNpc0hvcml6b250YWw9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMzEuMSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0z''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzEuMSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNC45IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVFbGxpcHNpc1ZlcnRpY2FsPSgwLGEuY2xySWNvblNWRykoJzxj''@;'; + put 'put ''aXJjbGUgY3g9IjE4IiBjeT0iNC45IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iNC45IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNs''@;'; + put 'put ''ZSBjeD0iMTgiIGN5PSIzMS4xIiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBlRmlsdGVyR3JpZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAt''@;'; + put 'put ''LjI5LS43TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwxLDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTgsMTF2MS4xMmEuNS41LDAsMCwwLC4xNS4zNWw3LjI4LDcuMzZhLjUuNSwwLDAsMSwuMTUuMzV2Ni44OWEuNS41LDAsMCwwLC4yOC40NWwzLjk1LDEuNDFhLjUuNSwwLDAs''@;'; + put 'put ''MCwuNzItLjQ1bDAtOC4zOWEuNTQuNTQsMCwwLDEsLjE4LS4zNWw3LjEyLTcuMjVhLjUuNSwwLDAsMCwuMTUtLjM1VjExWiIvPicpLGUuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiBkPSJNMTUsMjUuODZsMiwxVjIwLjI3YTEsMSwwLDAsMC0uMjktLjdMMTAuMjMsMTNIMjUuNzlsLTYuNDcsNi41N2ExLDEsMCwwLDAtLjI5LjdMMTksMjhsMiwxVjIwLjY4TDI3LjU4LDE0QTEuNDYsMS40NiwwLDAsMCwyOCwxM1YxMmExLDEsMCwwLDAtMS0xSDlhMSwxLDAsMCwwLTEs''@;'; + put 'put ''MXYxYTEuNDYsMS40NiwwLDAsMCwuNDIsMUwxNSwyMC42OFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEs''@;'; + put 'put ''MSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0''@;'; + put 'put ''LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik04LDExdjEuMTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVsMy45''@;'; + put 'put ''NSwxLjQxYS41LjUsMCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4xMi03LjI1YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4nKSxlLkNsclNoYXBlVm1CdWc9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3Qgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiByeD0iMyIgZmls''@;'; + put 'put ''bD0iI2ZmZmZmZiIgb3BhY2l0eT0iMC4xNSIgc3R5bGU9Imlzb2xhdGlvbjppc29sYXRlIi8+PHBhdGggZD0iTTMuNzksMTQuODNhMS4wOSwxLjA5LDAsMCwwLTEuNDctLjU2LDEuMDksMS4wOSwwLDAsMC0uNTQsMS40OWwyLjQ3LDUuNGMuMzkuODUuOCwxLjI5LDEuNTcsMS4yOVM3LDIyLDcu''@;'; + put 'put ''MzksMjEuMTZsMi4xNy00Ljc3YS4zMy4zMywwLDAsMSwuMzEtLjIuMzUuMzUsMCwwLDEsLjM1LjM1djQuNjFhMS4xNSwxLjE1LDAsMCwwLDEuMTQsMS4zLDEuMTcsMS4xNywwLDAsMCwxLjE3LTEuM1YxNy4zOGExLjE1LDEuMTUsMCwwLDEsMS4yMi0xLjIsMS4xMywxLjEzLDAsMCwxLDEuMTgs''@;'; + put 'put ''MS4ydjMuNzdhMS4xNywxLjE3LDAsMSwwLDIuMzIsMFYxNy4zOGExLjE1LDEuMTUsMCwwLDEsMS4yMi0xLjIsMS4xMywxLjEzLDAsMCwxLDEuMTgsMS4ydjMuNzdhMS4xNiwxLjE2LDAsMSwwLDIuMzEsMFYxNi44NmEyLjY5LDIuNjksMCwwLDAtMi43OC0yLjY5LDMuNTcsMy41NywwLDAsMC0y''@;'; + put 'put ''LjQ3LDEuMDUsMi43NSwyLjc1LDAsMCwwLTIuMzgtMS4wNUEzLjkzLDMuOTMsMCwwLDAsMTIsMTUuMjJhMi44MiwyLjgyLDAsMCwwLTIuMDgtMS4wNUEyLjU1LDIuNTUsMCwwLDAsNy40LDE1Ljg5TDUuODIsMTkuNjNsLTItNC44IiBmaWxsPSIjZmZmZmZmIi8+PHBhdGggZD0iTTMzLDE0LjE4''@;'; + put 'put ''QTEuMTQsMS4xNCwwLDAsMCwzMS45LDE1bC0xLjE5LDMuNzNMMjkuNSwxNS4wNWExLjE4LDEuMTgsMCwwLDAtMS4xNS0uODdoLS4xYTEuMiwxLjIsMCwwLDAtMS4xNS44N2wtMS4xOSwzLjcxLTEuMTgtMy43MWExLjE1LDEuMTUsMCwwLDAtMS4xMS0uODcsMS4wOCwxLjA4LDAsMCwwLTEuMTIs''@;'; + put 'put ''MS4wNywxLjY4LDEuNjgsMCwwLDAsLjEuNTRsMiw1LjdhMS4yNywxLjI3LDAsMCwwLDEuMjcsMSwxLjI0LDEuMjQsMCwwLDAsMS4yLS45M2wxLjItMy42NCwxLjIsMy42NGExLjI1LDEuMjUsMCwwLDAsMS4yNi45M0ExLjI3LDEuMjcsMCwwLDAsMzIsMjEuNUwzNCwxNS43M2ExLjc3LDEuNzcs''@;'; + put 'put ''MCwwLDAsLjA4LS40OEExLjA3LDEuMDcsMCwwLDAsMzMsMTQuMThaIiBmaWxsPSIjZmZmZmZmIi8+JyksZS5DbHJTaGFwZVNlYXJjaD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE2LjMzLDUuMDVBMTAuOTUs''@;'; + put 'put ''MTAuOTUsMCwxLDEsNS4zOSwxNiwxMSwxMSwwLDAsMSwxNi4zMyw1LjA1bTAtMi4wNWExMywxMywwLDEsMCwxMywxMywxMywxMywwLDAsMC0xMy0xM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTM1LDMz''@;'; + put 'put ''LjI5bC03LjM3LTcuNDItMS40MiwxLjQxLDcuMzcsNy40MkExLDEsMCwxLDAsMzUsMzMuMjlaIi8+JyksZS5DbHJTaGFwZVZpZXdDb2x1bW5zPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEsNUg1QTIsMiww''@;'; + put 'put ''LDAsMCwzLDdWMjlhMiwyLDAsMCwwLDIsMkgzMWEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMxLDVaTTEzLDI5SDVWN2g4Wm0xMCwwSDE1VjdoOFoiLz4nKSxlLkNsclNoYXBlQW5nbGVEb3VibGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIGQ9Ik0yOSwxOS40MWExLDEsMCwwLDEtLjcxLS4yOUwxOCw4LjgzLDcuNzEsMTkuMTJhMSwxLDAsMCwxLTEuNDEtMS40MUwxOCw2LDI5LjcxLDE3LjcxQTEsMSwwLDAsMSwyOSwxOS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI5LDMwLjQxYTEsMSwwLDAsMS0uNzEtLjI5TDE4LDE5LjgzLDcuNzEsMzAuMTJhMSwxLDAsMCwxLTEuNDEtMS40MUwxOCwxNywyOS43MSwyOC43MUExLDEsMCwwLDEsMjksMzAuNDFaIi8+JyksZS5DbHJTaGFwZUNhbGVuZGFyPSgwLGEu''@;'; + put 'put ''Y2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuMjUsNkgyOVY4aDNWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgs''@;'; + put 'put ''MCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjIwIiB5PSIx''@;'; + put 'put ''NCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgeD0iMTQiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIy''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHg9IjIwIiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC05IiB4PSIyNiIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjgiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAg''@;'; + put 'put ''PHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTIiIHg9IjIwIiB5PSIy''@;'; + put 'put ''NCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMyIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiBkPSJN''@;'; + put 'put ''MjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE2IiB4PSIxMyIgeT0iNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMiwxMy4yMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41''@;'; + put 'put ''QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSI4IiB5PSIxNCIgd2lkdGg9IjIi''@;'; + put 'put ''IGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRn''@;'; + put 'put ''ZWQiIHg9IjI2IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIiB4PSIyNiIgeT0iMTkiIHdp''@;'; + put 'put ''ZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1iYWRnZWQiIHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEyLS1iYWRnZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEzLS1iYWRnZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0i''@;'; + put 'put ''MiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE0LS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNS0tYmFkZ2VkIiBkPSJNMjIuNSw2SDEzVjhoOS43OEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgs''@;'; + put 'put ''MTUuNEgzMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgeD0iMTQiIHk9''@;'; + put 'put ''IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAg''@;'; + put 'put ''PHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC02LS1hbGVydGVkIiB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgeD0iMjYiIHk9IjE5IiB3aWR0aD0i''@;'; + put 'put ''MiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWFsZXJ0ZWQiIHg9IjgiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQiIHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''MC0tYWxlcnRlZCIgeD0iMjAiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1hbGVydGVkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9''@;'; + put 'put ''IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cG9seWdvbiBwb2lu''@;'; + put 'put ''dHM9IjIxLjI5IDYgMTMgNiAxMyA4IDIwLjE0IDggMjEuMjkgNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4y''@;'; + put 'put ''OCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4y''@;'; + put 'put ''NSw2aC00VjlhMi4yLDIuMiwwLDEsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAs''@;'; + put 'put ''MCwzMi4yNSw2Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0''@;'; + put 'put ''aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdl''@;'; + put 'put ''ZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzAsMTMuNUE3LjUsNy41LDAs''@;'; + put 'put ''MCwxLDIyLjUsNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVaTTEwLDI2SDhW''@;'; + put 'put ''MjRoMlptMC01SDhWMTloMlptMC01SDhWMTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTAtNUgyMFYxNGgyWm02LDEwSDI2VjI0aDJabTAtNUgyNlYxOWgyWm0wLTVIMjZWMTRoMloiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''ICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4''@;'; + put 'put ''LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaTTEwLDI2SDhWMjRoMlptMC01SDhWMTloMlptMC01SDhWMTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTYsNUgyNlYyNGgyWm0wLTVIMjZWMTloMloiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh''@;'; + put 'put ''c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4y''@;'; + put 'put ''OCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGUuQ2xyU2hhcGVFdmVudD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE2LjE3LDI1Ljg2LDEwLjgxLDIwLjVhMSwxLDAsMCwxLDEuNDEtMS40MUwxNi4xNywyM2w4''@;'; + put 'put ''LjY0LTguNjRhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEu''@;'; + put 'put ''NzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xMCwxMGExLDEs''@;'; + put 'put ''MCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCww''@;'; + put 'put ''LDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIxMyIgeT0iNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAtMS40MS0xLjQxTDE2LjE3LDIzbC0zLjk0LTMuOTRhMSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0zMiwxMy4yMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIs''@;'; + put 'put ''MTMuMjJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMjIuNSw2SDEzVjhoOS43OEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEw''@;'; + put 'put ''LjgxLDIwLjVsNS4zNiw1LjM2TDI2LjIyLDE1LjgxYTEsMSwwLDAsMCwuMjMtLjQxSDIzLjhMMTYuMTcsMjNsLTMuOTQtMy45NGExLDEsMCwwLDAtMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0zLS1hbGVydGVkIiBwb2ludHM9IjIxLjI5IDYgMTMgNiAxMyA4IDIwLjE0IDggMjEuMjkgNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgz''@;'; + put 'put ''MlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTMyLjI1LDZoLTRWOWEyLjIs''@;'; + put 'put ''Mi4yLDAsMCwxLTQuNCwwVjZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaTTI1''@;'; + put 'put ''Ljk0LDE2LjU4bC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0z''@;'; + put 'put ''My42OCwxNS40SDI2LjNhMS4zNCwxLjM0LDAsMCwxLS4zNiwxLjE4bC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4LDctN2gtMUEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRB''@;'; + put 'put ''MS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAs''@;'; + put 'put ''MCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wm0tNC4wNiwzLjA4LTkuNjcsOS42N0wxMSwyMC45NEExLjM2LDEuMzYsMCwwLDEsMTIuOSwxOWwzLjM4LDMuMzhMMjQsMTQuNjZhMS4zNiwxLjM2LDAsMSwxLDEuOTMsMS45M1oiLz5cbiAgICAgICAgICAgICAgICA8''@;'; + put 'put ''Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksZS5DbHJTaGFwZUV5ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05''@;'; + put 'put ''LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTgu''@;'; + put 'put ''NDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQsMjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMDksMTEuMTdBNi44Niw2Ljg2LDAsMSwwLDI1LDE4LDYu''@;'; + put 'put ''ODYsNi44NiwwLDAsMCwxOC4wOSwxMS4xN1ptMCwxMS43MkE0Ljg2LDQuODYsMCwxLDEsMjMsMTgsNC44Nyw0Ljg3LDAsMCwxLDE4LjA5LDIyLjg5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42MiwxNy41''@;'; + put 'put ''M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBTNS4zNCwxMS4zLDIsMTcuNTNMMS43MiwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBzMTIuNDYtMy43MiwxNS44Mi0xMGwuMjYtLjQ4Wk0xNy44LDI2LjQzQzEyLjE3LDI2LjQzLDcsMjMuMjksNCwxOGMzLTUuMjksOC4x''@;'; + put 'put ''Ny04LjQzLDEzLjgtOC40M1MyOC41NCwxMi43MiwzMS41OSwxOEMyOC41NCwyMy4yOSwyMy40MiwyNi40MywxNy44LDI2LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTguMDkiIGN5PSIxOC4wMyIgcj0iNi44''@;'; + put 'put ''NiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPicpLGUuQ2xyU2hhcGVFeWVIaWRlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNS4xOSwyMC40QTYuNzgsNi43OCwwLDAsMCwyNS42MiwxOGE2Ljg2LDYuODYsMCwwLDAtNi44Ni02Ljg2LDYuNzksNi43OSww''@;'; + put 'put ''LDAsMC0yLjM3LjQzTDE4LDEzLjIzYTQuNzgsNC43OCwwLDAsMSwuNzQtLjA2QTQuODcsNC44NywwLDAsMSwyMy42MiwxOGE0Ljc5LDQuNzksMCwwLDEtLjA2Ljc0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; + put 'put ''NC4yOSwxNy41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBhMTYuODIsMTYuODIsMCwwLDAtNS4yNC44NUwxNC44NCwxMGExNC43OCwxNC43OCwwLDAsMSwzLjYzLS40N2M1LjYzLDAsMTAuNzUsMy4xNCwxMy44LDguNDNhMTcuNzUsMTcuNzUsMCwwLDEtNC4zNyw1LjFsMS40MiwxLjQy''@;'; + put 'put ''YTE5LjkzLDE5LjkzLDAsMCwwLDUtNmwuMjYtLjQ4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00Ljg3LDUuNzhsNC40Niw0LjQ2YTE5LjUyLDE5LjUyLDAsMCwwLTYuNjksNy4yOUwyLjM4LDE4bC4yNi40OGMz''@;'; + put 'put ''LjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMGExNi45MywxNi45MywwLDAsMCw3LjM3LTEuNjlsNSw1LDEuNzUtMS41LTI2LTI2Wm05Ljc1LDkuNzUsNi42NSw2LjY1YTQuODEsNC44MSwwLDAsMS0yLjUuNzJBNC44Nyw0Ljg3LDAsMCwxLDEzLjksMTgsNC44MSw0LjgxLDAsMCwxLDE0LjYyLDE1''@;'; + put 'put ''LjUzWm0tMS40NS0xLjQ1YTYuODUsNi44NSwwLDAsMCw5LjU1LDkuNTVsMS42LDEuNmExNC45MSwxNC45MSwwLDAsMS01Ljg2LDEuMmMtNS42MywwLTEwLjc1LTMuMTQtMTMuOC04LjQzYTE3LjI5LDE3LjI5LDAsMCwxLDYuMTItNi4zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4zNywxMS4xN0E2Ljc5LDYuNzksMCwwLDAsMTYsMTEuNmw4LjgsOC44QTYuNzgsNi43OCwwLDAsMCwyNS4yMywxOCw2Ljg2LDYuODYsMCwwLDAsMTguMzcsMTEuMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2LjgyLDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBhMTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQz''@;'; + put 'put ''YTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00Ljg3LDUuNzhsNC40Niw0LjQ2YTE5LjUyLDE5LjUy''@;'; + put 'put ''LDAsMCwwLTYuNjksNy4yOUwyLjM4LDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMGExNi45MywxNi45MywwLDAsMCw3LjM3LTEuNjlsNSw1LDEuNzUtMS41LTI2LTI2Wm04LjMsOC4zYTYuODUsNi44NSwwLDAsMCw5LjU1LDkuNTVsMS42LDEuNmExNC45MSwxNC45MSwwLDAs''@;'; + put 'put ''MS01Ljg2LDEuMmMtNS42MywwLTEwLjc1LTMuMTQtMTMuOC04LjQzYTE3LjI5LDE3LjI5LDAsMCwxLDYuMTItNi4zWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPicpLGUuQ2xyU2hhcGVTdGVwRm9yd2FyZDI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTcu''@;'; + put 'put ''MDgsNi41MmExLjY4LDEuNjgsMCwwLDAsMCwyLjRMMTYuNTEsMTgsNy4xMiwyNy4wOGExLjcsMS43LDAsMCwwLDIuMzYsMi40NGgwTDIxLjQsMTgsOS40OCw2LjQ3QTEuNjksMS42OSwwLDAsMCw3LjA4LDYuNTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg''@;'; + put 'put ''Lz48cGF0aCBkPSJNMjYuNDksNWExLjcsMS43LDAsMCwwLTEuNywxLjdWMjkuM2ExLjcsMS43LDAsMCwwLDMuNCwwVjYuN0ExLjcsMS43LDAsMCwwLDI2LjQ5LDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQXJyb3c9KDAsYS5j''@;'; + put 'put ''bHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LjY2LDE1LjYxLDE4LDYsOC4zNCwxNS42MUExLDEsMCwxLDAsOS43NSwxN0wxNyw5LjgxVjI4Ljk0YTEsMSwwLDEsMCwyLDBWOS44MUwyNi4yNSwxN2ExLDEsMCwwLDAsMS40MS0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEiLz4nKSxlLkNvcmVTaGFwZXM9eyJ1bmtub3duLXN0YXR1cyI6ZS5DbHJTaGFwZVVua25vd25TdGF0dXMsaG9tZTplLkNsclNoYXBlSG9tZSxjb2c6ZS5DbHJTaGFwZUNvZyxjaGVjazplLkNsclNoYXBlQ2hlY2ssdGltZXM6ZS5DbHJTaGFwZVRpbWVzLCJleGNsYW1hdGlvbi10''@;'; + put 'put ''cmlhbmdsZSI6ZS5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJpYW5nbGUsImV4Y2xhbWF0aW9uLWNpcmNsZSI6ZS5DbHJTaGFwZUV4Y2xhbWF0aW9uQ2lyY2xlLCJjaGVjay1jaXJjbGUiOmUuQ2xyU2hhcGVDaGVja0NpcmNsZSwiaW5mby1jaXJjbGUiOmUuQ2xyU2hhcGVJbmZvQ2lyY2xlLCJpbmZv''@;'; + put 'put ''LXN0YW5kYXJkIjplLkNsclNoYXBlSW5mb1N0YW5kYXJkLCJzdWNjZXNzLXN0YW5kYXJkIjplLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkLCJlcnJvci1zdGFuZGFyZCI6ZS5DbHJTaGFwZUVycm9yU3RhbmRhcmQsIndhcm5pbmctc3RhbmRhcmQiOmUuQ2xyU2hhcGVXYXJuaW5nU3RhbmRhcmQs''@;'; + put 'put ''ImhlbHAtaW5mbyI6ZS5DbHJTaGFwZUhlbHBJbmZvLGJhcnM6ZS5DbHJTaGFwZUJhcnMsdXNlcjplLkNsclNoYXBlVXNlcixhbmdsZTplLkNsclNoYXBlQW5nbGUsZm9sZGVyOmUuQ2xyU2hhcGVGb2xkZXIsImZvbGRlci1vcGVuIjplLkNsclNoYXBlRm9sZGVyT3BlbixiZWxsOmUuQ2xyU2hh''@;'; + put 'put ''cGVCZWxsLGltYWdlOmUuQ2xyU2hhcGVJbWFnZSxjbG91ZDplLkNsclNoYXBlQ2xvdWQsImVsbGlwc2lzLWhvcml6b250YWwiOmUuQ2xyU2hhcGVFbGxpcHNpc0hvcml6b250YWwsImVsbGlwc2lzLXZlcnRpY2FsIjplLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbCwiZmlsdGVyLWdyaWQiOmUu''@;'; + put 'put ''Q2xyU2hhcGVGaWx0ZXJHcmlkLCJmaWx0ZXItZ3JpZC1jaXJjbGUiOmUuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlLCJ2bS1idWciOmUuQ2xyU2hhcGVWbUJ1ZyxzZWFyY2g6ZS5DbHJTaGFwZVNlYXJjaCwidmlldy1jb2x1bW5zIjplLkNsclNoYXBlVmlld0NvbHVtbnMsImFuZ2xlLWRvdWJs''@;'; + put 'put ''ZSI6ZS5DbHJTaGFwZUFuZ2xlRG91YmxlLGNhbGVuZGFyOmUuQ2xyU2hhcGVDYWxlbmRhcixldmVudDplLkNsclNoYXBlRXZlbnQsZXllOmUuQ2xyU2hhcGVFeWUsImV5ZS1oaWRlIjplLkNsclNoYXBlRXllSGlkZSwic3RlcC1mb3J3YXJkLTIiOmUuQ2xyU2hhcGVTdGVwRm9yd2FyZDIsYXJy''@;'; + put 'put ''b3c6ZS5DbHJTaGFwZUFycm93fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Db3JlU2hhcGVzLCJob3VzZSIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkNvcmVTaGFwZXMuaG9tZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsInNldHRpbmdzIiwoMCxyLmRlc2NyaXB0''@;'; + put 'put ''b3JDb25maWcpKGUuQ29yZVNoYXBlcy5jb2cpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Db3JlU2hhcGVzLCJzdWNjZXNzIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuQ29yZVNoYXBlcy5jaGVjaykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImNsb3NlIiwoMCxy''@;'; + put 'put ''LmRlc2NyaXB0b3JDb25maWcpKGUuQ29yZVNoYXBlcy50aW1lcykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsIndhcm5pbmciLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Db3JlU2hhcGVzWyJleGNsYW1hdGlvbi10cmlhbmdsZSJdKSksT2JqZWN0LmRlZmluZVByb3Bl''@;'; + put 'put ''cnR5KGUuQ29yZVNoYXBlcywiZXJyb3IiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Db3JlU2hhcGVzWyJleGNsYW1hdGlvbi1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImluZm8iLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Db3JlU2hhcGVzWyJp''@;'; + put 'put ''bmZvLWNpcmNsZSJdKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuQ29yZVNoYXBlcywibWVudSIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkNvcmVTaGFwZXMuYmFycykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImF2YXRhciIsKDAsci5kZXNjcmlwdG9yQ29uZmln''@;'; + put 'put ''KShlLkNvcmVTaGFwZXMudXNlcikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImNhcmV0IiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuQ29yZVNoYXBlcy5hbmdsZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImRpcmVjdG9yeSIsKDAsci5kZXNj''@;'; + put 'put ''cmlwdG9yQ29uZmlnKShlLkNvcmVTaGFwZXMuZm9sZGVyKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuQ29yZVNoYXBlcywibm90aWZpY2F0aW9uIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuQ29yZVNoYXBlcy5iZWxsKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuQ29yZVNoYXBlcywi''@;'; + put 'put ''Y29sbGFwc2UiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Db3JlU2hhcGVzWyJhbmdsZS1kb3VibGUiXSkpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2Vzc2VudGlhbC1zaGFwZXMudHMiOmZ1bmN0aW9uKEEsZSxjKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; + put 'put ''KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQ2xyU2hhcGVMb2dvdXQ9ZS5DbHJTaGFwZUxvZ2luPWUuQ2xyU2hhcGVIZWxwPWUuQ2xyU2hhcGVDb3B5PWUuQ2xyU2hhcGVDaGlsZEFycm93PWUuQ2xyU2hhcGVDaXJjbGVBcnJvdz1lLkNsclNoYXBlQWxhcm1DbG9jaz1lLkNsclNoYXBl''@;'; + put 'put ''Q2xvY2s9ZS5DbHJTaGFwZUhpc3Rvcnk9ZS5DbHJTaGFwZVRhZ3M9ZS5DbHJTaGFwZVRhZz1lLkNsclNoYXBlVHJhc2g9ZS5DbHJTaGFwZVRpbWVzQ2lyY2xlPWUuQ2xyU2hhcGVCYW49ZS5DbHJTaGFwZVBsdXNDaXJjbGU9ZS5DbHJTaGFwZU1pbnVzQ2lyY2xlPWUuQ2xyU2hhcGVNaW51cz1l''@;'; + put 'put ''LkNsclNoYXBlUGx1cz1lLkNsclNoYXBlRmlsZT1lLkNsclNoYXBlUGluPWUuQ2xyU2hhcGVGaWx0ZXI9ZS5DbHJTaGFwZVBvcE91dD1lLkNsclNoYXBlVXNlcnM9ZS5DbHJTaGFwZVVubG9jaz1lLkNsclNoYXBlTG9jaz1lLkNsclNoYXBlVXBsb2FkPWUuQ2xyU2hhcGVEb3dubG9hZD1lLkNs''@;'; + put 'put ''clNoYXBlTGlnaHRidWxiPWUuQ2xyU2hhcGVWaWV3Q2FyZHM9ZS5DbHJTaGFwZVZpZXdMaXN0PWUuQ2xyU2hhcGVTeW5jPWUuQ2xyU2hhcGVSZWZyZXNoPWUuQ2xyU2hhcGVOb3RlPWUuQ2xyU2hhcGVQZW5jaWw9ZS5DbHJTaGFwZVRoZXJtb21ldGVyPWUuQ2xyU2hhcGVCdWc9ZS5DbHJTaGFw''@;'; + put 'put ''ZVNjaXNzb3JzPWUuQ2xyU2hhcGVBc3Rlcmlzaz1lLkNsclNoYXBlQm9vaz1lLkNsclNoYXBlT2JqZWN0cz1lLkNsclNoYXBlUmVzaXplPWUuQ2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2s9ZS5DbHJTaGFwZUN1cnNvckhhbmQ9ZS5DbHJTaGFwZUN1cnNvckFycm93PWUuQ2xyU2hhcGVHcmlkVmll''@;'; + put 'put ''dz1lLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb249ZS5DbHJTaGFwZU5ldz1lLkNsclNoYXBlQWxhcm1PZmY9ZS5DbHJTaGFwZVBpbmJvYXJkPWUuQ2xyU2hhcGVBZGRUZXh0PXZvaWQgMCxlLkNsclNoYXBlQ2xvbmU9ZS5DbHJTaGFwZUN1cnNvck1vdmU9ZS5DbHJTaGFwZVdhbmQ9ZS5DbHJT''@;'; + put 'put ''aGFwZVN1bj1lLkNsclNoYXBlTW9vbj1lLkNsclNoYXBlRmlsdGVyMj1lLkNsclNoYXBlRHJhZ0hhbmRsZT1lLkNsclNoYXBlQ29weVRvQ2xpcGJvYXJkPWUuQ2xyU2hhcGVDb2xvclBpY2tlcj1lLkNsclNoYXBlQnJpZWZjYXNlPWUuQ2xyU2hhcGVFeHBhbmRDYXJkPWUuQ2xyU2hhcGVDb2xs''@;'; + put 'put ''YXBzZUNhcmQ9ZS5DbHJTaGFwZVNvcnRCeT1lLkNsclNoYXBlQWNjZXNzaWJpbGl0eTI9ZS5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxPWUuQ2xyU2hhcGVTaHJpbms9ZS5DbHJTaGFwZVBhcGVyY2xpcD1lLkNsclNoYXBlRmlsZUdyb3VwPWUuQ2xyU2hhcGVSZXBlYXQ9ZS5DbHJTaGFwZUlkQmFk''@;'; + put 'put ''Z2U9ZS5DbHJTaGFwZUJhbGFuY2U9ZS5DbHJTaGFwZU9yZ2FuaXphdGlvbj1lLkNsclNoYXBlTm9BY2Nlc3M9ZS5DbHJTaGFwZUhvdXJnbGFzcz1lLkNsclNoYXBlRmxhbWU9ZS5DbHJTaGFwZVRhcmdldD1lLkNsclNoYXBlQnVsbHNleWU9ZS5DbHJTaGFwZVdyZW5jaD1lLkNsclNoYXBlQm9s''@;'; + put 'put ''dD1lLkNsclNoYXBlTGlicmFyeT1lLkNsclNoYXBlS2V5PWUuQ2xyU2hhcGVab29tT3V0PWUuQ2xyU2hhcGVab29tSW49ZS5DbHJTaGFwZVdpbmRvd1Jlc3RvcmU9ZS5DbHJTaGFwZVdpbmRvd01pbj1lLkNsclNoYXBlV2luZG93TWF4PWUuQ2xyU2hhcGVXaW5kb3dDbG9zZT1lLkNsclNoYXBl''@;'; + put 'put ''VG9vbHM9ZS5DbHJTaGFwZVN3aXRjaD1lLkNsclNoYXBlVHdvV2F5QXJyb3dzPWUuQ2xyU2hhcGVGaWxlU2V0dGluZ3M9ZS5DbHJTaGFwZVNjcm9sbD1lLkNsclNoYXBlVW5kbz1lLkNsclNoYXBlUmVkbz1lLkNsclNoYXBlTGlzdD1lLkNsclNoYXBlRmlyZXdhbGw9ZS5DbHJTaGFwZUNsaXBi''@;'; + put 'put ''b2FyZD1lLkNsclNoYXBlU2xpZGVyPWUuQ2xyU2hhcGVXb3JsZD1lLkNsclNoYXBlUHJpbnRlcj12b2lkIDAsZS5Fc3NlbnRpYWxTaGFwZXM9ZS5DbHJTaGFwZUNvbG9yUGFsZXR0ZT1lLkNsclNoYXBlRmlyc3RBaWQ9ZS5DbHJTaGFwZUJldGE9ZS5DbHJTaGFwZURvdENpcmNsZT1lLkNsclNo''@;'; + put 'put ''YXBlQ2lyY2xlPWUuQ2xyU2hhcGVDcm9zc2hhaXJzPWUuQ2xyU2hhcGVWb2x1bWU9ZS5DbHJTaGFwZVRhYmxlPWUuQ2xyU2hhcGVTbm93Zmxha2U9ZS5DbHJTaGFwZUZ1ZWw9ZS5DbHJTaGFwZUZvcm09ZS5DbHJTaGFwZUZpc2g9ZS5DbHJTaGFwZVRyZWU9ZS5DbHJTaGFwZVJlY3ljbGU9ZS5D''@;'; + put 'put ''bHJTaGFwZUZpbHRlck9mZj1lLkNsclNoYXBlRmlsZVppcD1lLkNsclNoYXBlQ3Vyc29ySGFuZE9wZW49ZS5DbHJTaGFwZUN1cnNvckhhbmRHcmFiPWUuQ2xyU2hhcGVUcmVlVmlldz1lLkNsclNoYXBlUG9ydHJhaXQ9ZS5DbHJTaGFwZVBhc3RlPWUuQ2xyU2hhcGVMYW5kc2NhcGU9ZS5DbHJT''@;'; + put 'put ''aGFwZUVyYXNlcj1lLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcj1lLkNsclNoYXBlRGV0YWlscz12b2lkIDA7dmFyIHI9YygiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxhPWMoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2Vu''@;'; + put 'put ''ZXJhdG9yLnRzIik7Yz1jKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxlLkNsclNoYXBlQWRkVGV4dD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDIxSDEzYTEsMSww''@;'; + put 'put ''LDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTIsMTZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDEzQTEsMSwwLDAsMCwxMiwxNloiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjcsMjdIMTNhMSwxLDAsMCwwLDAsMkgyN2ExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9''@;'; + put 'put ''Ik0xNS44OSw5YTEsMSwwLDAsMC0xLTFIMTBWMy4yMWExLDEsMCwwLDAtMiwwVjhIMi44OWExLDEsMCwwLDAsMCwySDh2NS4yMWExLDEsMCwwLDAsMiwwVjEwaDQuODlBMSwxLDAsMCwwLDE1Ljg5LDlaIi8+JyksZS5DbHJTaGFwZVBpbmJvYXJkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsMzAsNiwzMCw2LDZIMjJWNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE0SDMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMy41Nyw5LjMzbC03LTdhMSwxLDAsMCwwLTEuNDEsMS40MWw3LDdhMSwxLDAsMSwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjIuMSwxMS4x''@;'; + put 'put ''OWwuNy41TDI2LjQ2LDgsMjUsNi41NiwyMi41MSw5LjEzYy0yLS44Ny00LjM1LjE0LTUuOTIsMS42OGwtLjcyLjcxLDMuNTQsMy41NC0zLjY3LDMuNjcsMS40MSwxLjQxLDMuNjctMy42N0wyNC4zNywyMGwuNzEtLjcyYzEuNTQtMS41NywyLjU1LTMuOTIsMS42OC01LjkzbDIuNTQtMi41N0wy''@;'; + put 'put ''Ny44OCw5LjM4LDI0LjIxLDEzLjFsLjQ5LjY5Yy43NiwxLC4yNSwyLjM3LS40MSwzLjMzTDE4Ljc3LDExLjZDMTkuODQsMTAuODYsMjEuMTUsMTAuNSwyMi4xLDExLjE5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMw''@;'; + put 'put ''LDMwLDYsMzAsNiw2SDIyVjRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNEgzMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMy41Nyw5LjMzbC03LTdhMSwxLDAsMCww''@;'; + put 'put ''LTEuNDEsMS40MWwxLjM4LDEuMzgtNCw0Yy0yLS44Ny00LjM1LjE0LTUuOTIsMS42OGwtLjcyLjcxLDMuNTQsMy41NC0zLjY3LDMuNjcsMS40MSwxLjQxLDMuNjctMy42N0wyNC4zNywyMGwuNzEtLjcyYzEuNTQtMS41NywyLjU1LTMuOTEsMS42OC01LjkybDQtNCwxLjM4LDEuMzhhMSwxLDAs''@;'; + put 'put ''MSwwLDEuNDEtMS40MVoiLz4nKSxlLkNsclNoYXBlQWxhcm1PZmY9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMS40NywzLjg0YTUuNzgsNS43OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4''@;'; + put 'put ''LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjUuMzMsMjEuNTRhLjkuOSwwLDAsMC0uNDEtMS4ybC0zLjItMS41NkwyNC44OSwyMkEuODkuODksMCww''@;'; + put 'put ''LDAsMjUuMzMsMjEuNTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDguNmEuOS45LDAsMCwwLS45Ljl2NC42bDEuOCwxLjgxVjkuNUEuOS45LDAsMCwwLDE4LDguNloiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMTEuNDIsMy40M2E1LjgsNS44LDAsMCwwLTUuODEtLjgxTDguMyw1LjMyQTE2LDE2LDAsMCwxLDExLjQyLDMuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtNSIgZD0iTTE4LDRhMTMuOTEsMTMuOTEsMCwwLDAtOC4zLDIuNzVsMS40MiwxLjQzQTEyLDEyLDAsMCwxLDI3LjgyLDI0LjlsMS40MiwxLjQzQTE0LDE0LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNiIgZD0iTTEuNTYsNC4yMSwyLjczLDUuMzhhNS43LDUuNywwLDAsMCwuNjcsNi4xQTE1Ljc4LDE1Ljc4LDAsMCwxLDUuNDYsOC4xMkw2Ljg4LDkuNTVBMTMuOTQsMTMuOTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmEx''@;'; + put 'put ''My44OSwxMy44OSwwLDAsMCwxNi44LDBsNC4xNCw0LjE1TDMyLDMxLjksMywyLjhaTTI1LDI3LjcyQTExLjg5LDExLjg5LDAsMCwxLDE4LDMwLDEyLDEyLDAsMCwxLDYsMThhMTEuODksMTEuODksMCwwLDEsMi4yOS03WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMxLjQ3LDMuODRhNS43OCw1Ljc4LDAsMCwwLTcuMzctLjYzLDE2LjA4LDE2LjA4LDAsMCwxLDguMiw3LjY1QTUuNzMsNS43MywwLDAsMCwzMS40NywzLjg0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMiIgZD0iTTExLjQyLDMuNDNhNS44LDUuOCwwLDAsMC01Ljc3LS44Mkw4LjMzLDUuM0ExNiwxNiwwLDAsMSwxMS40MiwzLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTI0LjkyLDIxLjk0bDQuMzQs''@;'; + put 'put ''NC4zNkExNCwxNCwwLDAsMCw5Ljc1LDYuNzNMMTcsMTRWOS42OWExLDEsMCwwLDEsMiwwVjE2bDIuMzMsMi4zNEwyNSwyMC4xYTEsMSwwLDAsMSwuNDcsMS4zM0ExLDEsMCwwLDEsMjQuOTIsMjEuOTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC00IiBkPSJNMS42MSw0LjIxLDIuNzMsNS4zNGE1LjczLDUuNzMsMCwwLDAsLjY3LDYuMTVBMTUuODgsMTUuODgsMCwwLDEsNS40OCw4LjFMNi45MSw5LjUyQTEzLjk0LDEzLjk0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZh''@;'; + put 'put ''MTMuODksMTMuODksMCwwLDAsMTYuODMsMGw0LjE2LDQuMTdMMzIsMzEuOSwzLDIuOFoiLz4nKSxlLkNsclNoYXBlTmV3PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQuNTksMjNsLTQuMDgtNSw0LTQuOWEx''@;'; + put 'put ''LjgyLDEuODIsMCwwLDAsLjIzLTEuOTRBMS45MywxLjkzLDAsMCwwLDMyLjk0LDEwaC0zMUExLjkxLDEuOTEsMCwwLDAsMCwxMS44OFYyNC4xM0ExLjkxLDEuOTEsMCwwLDAsMS45NCwyNkgzMy4wNWExLjkzLDEuOTMsMCwwLDAsMS43Ny0xLjA5QTEuODIsMS44MiwwLDAsMCwzNC41OSwyM1pN''@;'; + put 'put ''MiwyNFYxMkgzMi43OGwtNC44NCw1LjkzTDMyLjg1LDI0WiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBwb2ludHM9IjkuMzkgMTkuMzUgNi4xMyAxNSA1IDE1IDUgMjEuMTggNi4xMyAyMS4xOCA2LjEzIDE2Ljg0''@;'; + put 'put ''IDkuMzkgMjEuMTggMTAuNTEgMjEuMTggMTAuNTEgMTUgOS4zOSAxNSA5LjM5IDE5LjM1Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHBvaW50cz0iMTIuMTggMjEuMTggMTYuODQgMjEuMTggMTYuODQgMjAuMTYg''@;'; + put 'put ''MTMuMzEgMjAuMTYgMTMuMzEgMTguNTUgMTYuNSAxOC41NSAxNi41IDE3LjUyIDEzLjMxIDE3LjUyIDEzLjMxIDE2LjAzIDE2Ljg0IDE2LjAzIDE2Ljg0IDE1IDEyLjE4IDE1IDEyLjE4IDIxLjE4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTQiIHBvaW50cz0iMjQuNTIgMTkuNDMgMjMuMDYgMTUgMjEuODQgMTUgMjAuMzcgMTkuNDMgMTkuMDUgMTUgMTcuODIgMTUgMTkuNzggMjEuMTggMjAuODkgMjEuMTggMjIuNDUgMTYuNTkgMjQgMjEuMTggMjUuMTMgMjEuMTggMjcuMDggMTUgMjUuODUgMTUgMjQuNTIg''@;'; + put 'put ''MTkuNDMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNC4xMSwyNC40OWwtMy45Mi02LjYyLDMuODgtNi4zNUExLDEsMCwwLDAsMzMuMjIsMTBIMmEyLDIsMCwwLDAtMiwyVjI0YTIsMiwwLDAsMCwyLDJIMzMuMjVBMSwx''@;'; + put 'put ''LDAsMCwwLDM0LjExLDI0LjQ5Wm0tMjMuNi0zLjMxSDkuMzlMNi4xMywxNi44NHY0LjM1SDVWMTVINi4xM2wzLjI3LDQuMzVWMTVoMS4xMlpNMTYuODQsMTZIMTMuMzF2MS40OWgzLjJ2MWgtMy4ydjEuNjFoMy41M3YxSDEyLjE4VjE1aDQuNjVabTguMjksNS4xNkgyNGwtMS41NS00LjU5TDIw''@;'; + put 'put ''LjksMjEuMThIMTkuNzhsLTItNi4xOEgxOWwxLjMyLDQuNDNMMjEuODQsMTVoMS4yMmwxLjQ2LDQuNDNMMjUuODUsMTVoMS4yM1oiLz4nKSxlLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb249KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEiIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3QzM0LDguNzgsMjYuODIsMi41LDE4LDIuNVpNMjguMjks''@;'; + put 'put ''MjQuNjFhMSwxLDAsMCwwLS4zMi43M2wwLDUuMzQtNC4zOC0yLjc5YTEsMSwwLDAsMC0uODMtLjExQTE2LDE2LDAsMCwxLDE4LDI4LjVjLTcuNzIsMC0xNC01LjM4LTE0LTEyczYuMjgtMTIsMTQtMTIsMTQsNS4zOCwxNCwxMkExMS4wOCwxMS4wOCwwLDAsMSwyOC4yOSwyNC42MVoiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjAuNjNhMSwxLDAsMCwwLDEtMVY4LjQ4YTEsMSwwLDEsMC0yLDBWMTkuNjFBMSwxLDAsMCwwLDE4LDIwLjYzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE4IiBjeT0iMjQuMDQiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYs''@;'; + put 'put ''MTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3QzM0LDguNzgsMjYuODIsMi41LDE4LDIuNVpNMTYuOTMsOS4xM2ExLjQxLDEuNDEsMCwxLDEsMi44MSwwVjE4LjlhMS40MSwxLjQxLDAsMSwxLTIuODEs''@;'; + put 'put ''MFptMS40MSwxNy4zNWExLjg3LDEuODcsMCwxLDEsMS44Ny0xLjg3QTEuODcsMS44NywwLDAsMSwxOC4zNCwyNi40N1oiLz4nKSxlLkNsclNoYXBlR3JpZFZpZXc9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0x''@;'; + put 'put ''NCw0SDZBMiwyLDAsMCwwLDQsNnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDE0LDRaTTYsMTRWNmg4djhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLDRIMjJhMiwyLDAs''@;'; + put 'put ''MCwwLTIsMnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMwLDRaTTIyLDE0VjZoOHY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNCwyMEg2YTIsMiwwLDAsMC0yLDJ2OGEy''@;'; + put 'put ''LDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDItMlYyMkEyLDIsMCwwLDAsMTQsMjBaTTYsMzBWMjJoOHY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0zMCwyMEgyMmEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCww''@;'; + put 'put ''LDIsMmg4YTIsMiwwLDAsMCwyLTJWMjJBMiwyLDAsMCwwLDMwLDIwWk0yMiwzMFYyMmg4djhaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiB4PSI0IiB5PSI0IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIiByeT0iMiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgeD0iMjAiIHk9IjQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjIiIHJ5PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0zIiB4PSI0IiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIgcnk9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIHg9IjIwIiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIgcnk9IjIi''@;'; + put 'put ''Lz4nKSxlLkNsclNoYXBlQ3Vyc29yQXJyb3c9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNC41OCwzMi4zMWExLDEsMCwwLDEtLjk0LS42NUw0LDUuNjVBMSwxLDAsMCwxLDUuMjUsNC4zN2wyNiw5LjY4YTEs''@;'; + put 'put ''MSwwLDAsMS0uMDUsMS44OWwtOC4zNiwyLjU3LDguMyw4LjNhMSwxLDAsMCwxLDAsMS40MWwtMy4yNiwzLjI2YTEsMSwwLDAsMS0uNzEuMjloMGExLDEsMCwwLDEtLjcxLS4yOWwtOC4zMy04LjMzLTIuNiw4LjQ1YTEsMSwwLDAsMS0uOTMuNzFabTMuMDktMTJhMSwxLDAsMCwxLC43MS4yOWw4''@;'; + put 'put ''Ljc5LDguNzlMMjksMjcuNTFsLTguNzYtOC43NmExLDEsMCwwLDEsLjQxLTEuNjZsNy4xMy0yLjJMNi42LDdsNy44OSwyMS4yTDE2LjcxLDIxYTEsMSwwLDAsMSwuNzEtLjY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0i''@;'; + put 'put ''TTI5LDEyLjM2LDMuODgsM0ExLDEsMCwwLDAsMi41OSw0LjI4TDEyLDI5LjQ0YTEsMSwwLDAsMCwxLjg5LS4wNWwyLjY5LTguNzUsOS4xMiw4LjlhMSwxLDAsMCwwLDEuNDEsMGwyLjM1LTIuMzVhMSwxLDAsMCwwLDAtMS40MWwtOS4wOS04Ljg2TDI5LDE0LjI1QTEsMSwwLDAsMCwyOSwxMi4z''@;'; + put 'put ''NloiLz4nKSxlLkNsclNoYXBlQ3Vyc29ySGFuZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLjc0LDE1LjE5YTEzLjY2LDEzLjY2LDAsMCwwLTYuODctMy44M0EyNiwyNiwwLDAsMCwxOCwxMC41OFY1LjI4''@;'; + put 'put ''QTMuNCwzLjQsMCwwLDAsMTQuNSwyLDMuNCwzLjQsMCwwLDAsMTEsNS4yOHYxMEw5LjQsMTMuN2EzLjc3LDMuNzcsMCwwLDAtNS4yOCwwQTMuNjcsMy42NywwLDAsMCwzLDE2LjMzYTMuNiwzLjYsMCwwLDAsMSwyLjU2bDQuNjYsNS41MmExMS41MywxMS41MywwLDAsMCwxLjQzLDQsMTAuMTIs''@;'; + put 'put ''MTAuMTIsMCwwLDAsMiwyLjU0djEuOTJhMS4wNywxLjA3LDAsMCwwLDEsMS4wOEgyN2ExLjA3LDEuMDcsMCwwLDAsMS0xLjA4di0yLjdhMTIuODEsMTIuODEsMCwwLDAsMy04LjM2di02QTEsMSwwLDAsMCwzMC43NCwxNS4xOVpNMjksMjEuODZhMTAuNzIsMTAuNzIsMCwwLDEtMi42LDcuMjYs''@;'; + put 'put ''MS4xMSwxLjExLDAsMCwwLS40LjcyVjMySDE0LjE0VjMwLjUyYTEsMSwwLDAsMC0uNDQtLjgzLDcuMjYsNy4yNiwwLDAsMS0xLjgyLTIuMjMsOS4xNCw5LjE0LDAsMCwxLTEuMi0zLjUyLDEsMSwwLDAsMC0uMjMtLjU5TDUuNTMsMTcuNTNhMS43LDEuNywwLDAsMSwwLTIuNDIsMS43NiwxLjc2''@;'; + put 'put ''LDAsMCwxLDIuNDcsMGwzLDN2My4xNGwyLTFWNS4yOEExLjQyLDEuNDIsMCwwLDEsMTQuNSw0LDEuNDIsMS40MiwwLDAsMSwxNiw1LjI4djExLjhsMiwuNDNWMTIuNTlhMjQuMjcsMjQuMjcsMCwwLDEsMi41MS4xOFYxOGwxLjYuMzVWMTNjLjQxLjA4LjgzLjE3LDEuMjYuMjhhMTQuODgsMTQu''@;'; + put 'put ''ODgsMCwwLDEsMS41My40OXY1LjE1bDEuNi4zNVYxNC41QTExLjA2LDExLjA2LDAsMCwxLDI5LDE2LjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4LjY5LDE0LjMzdjQuODNsLTItLjQzVjEzLjI0YTE2LjE5LDE2''@;'; + put 'put ''LjE5LDAsMCwwLTIuMzMtLjg0djUuODJsLTItLjQzVjEyYy0xLjEtLjE4LTIuMTgtLjMtMy4wOC0uMzZ2NS41MWwtMi0uNDNWMTEuNDhoMFY0LjM0YTIuNTMsMi41MywwLDAsMC0yLjYtMi40MywyLjUzLDIuNTMsMCwwLDAtMi42LDIuNDNWMTcuMjdoMHYyLjU5bC0yLDFWMTUuNkw3Ljc1LDEz''@;'; + put 'put ''LjIxYTIuODMsMi44MywwLDAsMC00LDAsMi45MywyLjkzLDAsMCwwLDAsNC4wOWw2LDcuMWExMC44MiwxMC44MiwwLDAsMCwxLjM5LDQuMjIsOC40Miw4LjQyLDAsMCwwLDIuMjEsMi43M3YyLjU2SDI3Ljc5VjMwLjYyYTEyLjU0LDEyLjU0LDAsMCwwLDMtOC41di02QTEwLDEwLDAsMCwwLDI4''@;'; + put 'put ''LjY5LDE0LjMzWiIvPicpLGUuQ2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMC40LDE3LjZjLTEuOC0xLjktNC4yLTMuMi02LjctMy43Yy0xLjEtMC4zLTIuMi0wLjUt''@;'; + put 'put ''My4zLTAuNmMyLjgtMy4zLDIuMy04LjMtMS0xMS4xcy04LjMtMi4zLTExLjEsMXMtMi4zLDguMywxLDExLjFcbiAgICAgICAgICAgICAgICAgICAgYzAuNiwwLjUsMS4yLDAuOSwxLjgsMS4xdjIuMmwtMS42LTEuNWMtMS40LTEuNC0zLjctMS40LTUuMiwwYy0xLjQsMS40LTEuNSwzLjYtMC4x''@;'; + put 'put ''LDVsNC42LDUuNGMwLjIsMS40LDAuNywyLjcsMS40LDMuOVxuICAgICAgICAgICAgICAgICAgICBjMC41LDAuOSwxLjIsMS44LDEuOSwyLjV2MS45YzAsMC42LDAuNCwxLDEsMWgxMy42YzAuNSwwLDEtMC41LDEtMXYtMi42YzEuOS0yLjMsMi45LTUuMiwyLjktOC4xdi01LjhcbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICAgICAgQzMwLjcsMTcuOSwzMC42LDE3LjcsMzAuNCwxNy42eiBNOC40LDguMmMwLTMuMywyLjctNS45LDYtNS44YzMuMywwLDUuOSwyLjcsNS44LDZjMCwxLjgtMC44LDMuNC0yLjIsNC41VjcuOVxuICAgICAgICAgICAgICAgICAgICBjLTAuMS0xLjgtMS42LTMuMi0zLjQtMy4y''@;'; + put 'put ''Yy0xLjgtMC4xLTMuNCwxLjQtMy40LDMuMnY1LjJDOS41LDEyLjEsOC41LDEwLjIsOC40LDguMkw4LjQsOC4yeiBNMjguNywyNGMwLjEsMi42LTAuOCw1LjEtMi41LDcuMVxuICAgICAgICAgICAgICAgICAgICBjLTAuMiwwLjItMC40LDAuNC0wLjQsMC43djIuMUgxNC4ydi0xLjRjMC0wLjMt''@;'; + put 'put ''MC4yLTAuNi0wLjQtMC44Yy0wLjctMC42LTEuMy0xLjMtMS44LTIuMmMtMC42LTEtMS0yLjItMS4yLTMuNFxuICAgICAgICAgICAgICAgICAgICBjMC0wLjItMC4xLTAuNC0wLjItMC42bC00LjgtNS43Yy0wLjMtMC4zLTAuNS0wLjctMC41LTEuMmMwLTAuNCwwLjItMC45LDAuNS0xLjJjMC43''@;'; + put 'put ''LTAuNiwxLjctMC42LDIuNCwwbDIuOSwyLjl2M2wxLjktMVY3LjlcbiAgICAgICAgICAgICAgICAgICAgYzAuMS0wLjcsMC43LTEuMywxLjUtMS4yYzAuNywwLDEuNCwwLjUsMS40LDEuMnYxMS41bDIsMC40di00LjZjMC4xLTAuMSwwLjItMC4xLDAuMy0wLjJjMC43LDAsMS40LDAuMSwyLjEs''@;'; + put 'put ''MC4ydjUuMWwxLjYsMC4zdi01LjJcbiAgICAgICAgICAgICAgICAgICAgbDEuMiwwLjNjMC41LDAuMSwxLDAuMywxLjUsMC41djVsMS42LDAuM3YtNC42YzAuOSwwLjQsMS43LDEsMi40LDEuN0wyOC43LDI0eiIvPicpLGUuQ2xyU2hhcGVSZXNpemU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOSw0YTEsMSwwLDAsMCwwLDJoOS41OWwtOS4yNSw5LjI1YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzAsNy40MVYxN2ExLDEsMCwwLDAsMiwwVjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTQsMTlhMSwxLDAsMCwxLDIsMHY5LjU5bDkuMjUtOS4yNWExLDEsMCwxLDEsMS40MSwxLjQxTDcuNDEsMzBIMTdhMSwxLDAsMCwxLDAsMkg0WiIvPicpLGUuQ2xyU2hhcGVPYmplY3RzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTYuMDgsMTQuOWExMC40MSwxMC40MSwwLDAsMSwxLjg3LS43MWwtNC0xMC43N2EyLDIsMCwwLDAtMy43NSwwTDIsMjUuMjZBMiwyLDAsMCwwLDMuOTIsMjhoNi45NGExMCwxMCwwLDAsMS0uNTItMkgzLjkyTDEy''@;'; + put 'put ''LjA2LDQuMTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDlIMjJhMiwyLDAsMCwwLTIsMnYyLjg1Yy4yMywwLC40NiwwLC42OSwwQTEwLjUxLDEwLjUxLDAsMCwxLDIyLDEzLjlWMTFIMzJWMjFIMzAuNjVh''@;'; + put 'put ''MTAuNDIsMTAuNDIsMCwwLDEsLjQ1LDJIMzJhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzIsOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjAuNjksMTUuODFhOC41LDguNSwwLDEsMCw4LjUsOC41QTgu''@;'; + put 'put ''NTEsOC41MSwwLDAsMCwyMC42OSwxNS44MVptMCwxNWE2LjUsNi41LDAsMSwxLDYuNS02LjVBNi41MSw2LjUxLDAsMCwxLDIwLjY5LDMwLjgxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTEwLjY1LDI0LjQ0YTkuNTEs''@;'; + put 'put ''OS41MSwwLDAsMSw3LjA2LTkuMTdMMTMsM2ExLDEsMCwwLDAtMS44NywwTDIuMDcsMjYuNTZBMSwxLDAsMCwwLDMsMjcuOTJoOC4zMkE5LjQ0LDkuNDQsMCwwLDEsMTAuNjUsMjQuNDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0y''@;'; + put 'put ''IiBkPSJNMzIsMTBIMjBhMSwxLDAsMCwwLTEsMXY0YTkuNDMsOS40MywwLDAsMSwxMC42Myw5SDMyYTEsMSwwLDAsMCwxLTFWMTFBMSwxLDAsMCwwLDMyLDEwWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBjeD0iMjAuMTUi''@;'; + put 'put ''IGN5PSIyNC40NCIgcj0iNy41Ii8+JyksZS5DbHJTaGFwZUJvb2s9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjEwIiB5PSI1LjIiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxLjU1Ii8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI5LDhIOS44NkExLjg5LDEuODksMCwwLDEsOCw2LDIsMiwwLDAsMSw5Ljg2LDRIMjlhMSwxLDAsMCwwLDAtMkg5Ljg2QTQsNCwwLDAsMCw2LDZhNC4xNCw0LjE0LDAsMCwwLDAsLjQ5LDEsMSwwLDAsMCww''@;'; + put 'put ''LC4yNFYzMGE0LDQsMCwwLDAsMy44Niw0SDI5YTEsMSwwLDAsMCwxLTFWOS4yNXMwLS4wNiwwLS4wOSwwLS4wNiwwLS4wOUExLjA3LDEuMDcsMCwwLDAsMjksOFpNMjgsMzJIOS44NkEyLDIsMCwwLDEsOCwzMFY5LjU1QTMuNjMsMy42MywwLDAsMCw5Ljg2LDEwSDI4WiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iMTAiIHk9IjUuMiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEuNTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yOSw4SDkuODZBMS44''@;'; + put 'put ''OSwxLjg5LDAsMCwxLDgsNiwyLDIsMCwwLDEsOS44Niw0SDI5YTEsMSwwLDEsMCwwLTJIOS44NkE0LDQsMCwwLDAsNiw2YTQuMTQsNC4xNCwwLDAsMCwwLC40OSwxLDEsMCwwLDAsMCwuMjRWMzBhNCw0LDAsMCwwLDMuODYsNEgyOWExLDEsMCwwLDAsMS0xVjkuMjVzMC0uMDYsMC0uMDksMC0u''@;'; + put 'put ''MDYsMC0uMDlBMS4wNywxLjA3LDAsMCwwLDI5LDhaIi8+JyksZS5DbHJTaGFwZUFzdGVyaXNrPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjguODksMjAuOTFsLTUtMi45MSw0Ljg3LTIuODZhMy4xMSwzLjEx''@;'; + put 'put ''LDAsMCwwLDEuMTQtMS4wOCwzLDMsMCwwLDAtNC4wOS00LjE1TDIxLDEyLjc2VjdhMywzLDAsMCwwLTYsMHY1Ljc2TDEwLjE1LDkuOTFhMywzLDAsMSwwLTMsNS4xOGw1LDIuOTFMNy4yLDIwLjg2YTMuMTEsMy4xMSwwLDAsMC0xLjE0LDEuMDgsMywzLDAsMCwwLDQuMDksNC4xNEwxNSwyMy4y''@;'; + put 'put ''NFYyOC45YTMsMywwLDAsMCwyLDIuOTRBMywzLDAsMCwwLDIxLDI5VjIzLjI0bDQuODUsMi44NWEzLDMsMCwxLDAsMy01LjE4Wk0yOC4yNCwyNGExLDEsMCwwLDEtMS4zNy4zNkwxOSwxOS43NVYyOWExLDEsMCwwLDEtMiwwVjE5Ljc1TDkuMTMsMjQuMzZhMSwxLDAsMCwxLTEtMS43MkwxNiwx''@;'; + put 'put ''OGwtNy45LTQuNjRhMSwxLDAsMSwxLDEtMS43MkwxNywxNi4yNVY3YTEsMSwwLDAsMSwyLDB2OS4yNWw3Ljg3LTQuNjJhMSwxLDAsMCwxLDEsMS43MkwyMCwxOGw3LjksNC42NEExLDEsMCwwLDEsMjguMjQsMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0xIiBkPSJNMjguODksMjAuOTFsLTUtMi45MSw0Ljg3LTIuODZhMy4xMSwzLjExLDAsMCwwLDEuMTQtMS4wOCwzLDMsMCwwLDAtNC4wOS00LjE1TDIxLDEyLjc2VjdhMywzLDAsMCwwLTYsMHY1Ljc2TDEwLjE1LDkuOTFhMywzLDAsMSwwLTMsNS4xOGw1LDIuOTFMNy4y''@;'; + put 'put ''LDIwLjg2YTMuMTEsMy4xMSwwLDAsMC0xLjE0LDEuMDgsMywzLDAsMCwwLDQuMDksNC4xNEwxNSwyMy4yNFYyOC45YTMsMywwLDAsMCwyLDIuOTRBMywzLDAsMCwwLDIxLDI5VjIzLjI0bDQuODUsMi44NWEzLDMsMCwxLDAsMy01LjE4WiIvPicpLGUuQ2xyU2hhcGVTY2lzc29ycz0oMCxhLmNs''@;'; + put 'put ''ckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSJcbiAgICAgICAgICAgIGQ9Ik0yNC4wNiwxOC4xOGw5LjYxLTguNzdhMSwxLDAsMCwwLS4wOS0xLjU1bC0yLjI0LTEuNmEzLjU3LDMuNTcsMCwwLDAtNC4yOC4xMkwxNS44OCwxNS4zbC0z''@;'; + put 'put ''LjI2LTIuNTJhNS40NSw1LjQ1LDAsMSwwLTEsMS43N2wyLjYyLDJMMTAsMjBhNS40OCw1LjQ4LDAsMSwwLDEuNTksMS4yOUwyOC4zLDcuOTRhMS41NywxLjU3LDAsMCwxLDEuODgtLjA1bDEuMjMuODhMMjEuMSwxOC4xOWwxMC4zMSw5LjQtMS4yMy44OGExLjU3LDEuNTcsMCwwLDEtMS44OC0u''@;'; + put 'put ''MDVsLTkuODEtNy44NUwxNywyMS45M2wxMC4wNiw4YTMuNTcsMy41NywwLDAsMCw0LjI5LjEybDIuMjQtMS42YTEsMSwwLDAsMCwuMDktMS41NVpNNy40NSwxNC41NGEzLjQ2LDMuNDYsMCwxLDEsMy40NS0zLjQ2QTMuNDYsMy40NiwwLDAsMSw3LjQ1LDE0LjU0Wm0wLDEzLjcyQTMuNDYsMy40''@;'; + put 'put ''NiwwLDEsMSwxMC45LDI0LjgsMy40NiwzLjQ2LDAsMCwxLDcuNDUsMjguMjZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMuODEsOC4xMywzMS42Myw2LjQ4YTEuOTIsMS45MiwwLDAsMC0yLjM2LDBMMTAsMjIuMDZh''@;'; + put 'put ''NS40Niw1LjQ2LDAsMSwwLDIsMS44MWwzLjktMy4xMkwyOS4yNywzMS41MmExLjkyLDEuOTIsMCwwLDAsMi4zNiwwbDIuMTgtMS42NEwyMC45NCwxOVpNNy40NSwyOS43NWEyLjg2LDIuODYsMCwxLDEsMi44Ni0yLjg2QTIuODcsMi44NywwLDAsMSw3LjQ1LDI5Ljc1WiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE0LjMsMTUuMjQsMTIsMTMuMzhhNS40Niw1LjQ2LDAsMSwwLTIsMS44MUwxMi4xNiwxN1ptLTYuODUtMmEyLjg2LDIuODYsMCwxLDEsMi44Ni0yLjg2QTIuODYsMi44NiwwLDAsMSw3LjQ1LDEzLjIz''@;'; + put 'put ''WiIvPicpLGUuQ2xyU2hhcGVCdWc9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjIzLjU2IiBjeT0iMTcuNzQiIHI9IjEuOTUiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTIiIGN4PSIyMi40MiIgY3k9IjI1Ljg4IiByPSIxLjU4Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBjeD0iMTIuODYiIGN5PSIxNy43NCIgcj0iMS45NSIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgY3g9IjEzLjk5IiBjeT0iMjUuODgiIHI9IjEuNTgiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMzAuODMsMjBIMjlhMTku''@;'; + put 'put ''MjksMTkuMjksMCwwLDAtMS4xOC01LjczbDEuNDYtLjc5YTEsMSwwLDAsMC0uOTUtMS43NmwtMywxLjY0QTE3LjY1LDE3LjY1LDAsMCwxLDI3LDIwLjcyQzI3LDI3LDIzLjgsMzEuMjMsMTguOCwzMS42MlYxNUgxNy4yVjMxLjYyQzEyLjIyLDMxLjIxLDksMjcsOSwyMC43MmExNy43NCwxNy43''@;'; + put 'put ''NCwwLDAsMSwxLjczLTcuMzRMNy43LDExLjcyYTEsMSwwLDAsMC0uOTUsMS43NmwxLjUuOEExOS4zOCwxOS4zOCwwLDAsMCw3LjA3LDIwSDUuMTdhMSwxLDAsMCwwLDAsMkg3LjFhMTQuNjIsMTQuNjIsMCwwLDAsMS42Niw2LjE3TDYuODcsMjkuNDlBMSwxLDAsMSwwLDgsMzEuMTJsMS44NC0x''@;'; + put 'put ''LjI5QTEwLjM4LDEwLjM4LDAsMCwwLDE4LDMzLjY2YTEwLjM4LDEwLjM4LDAsMCwwLDguMTQtMy44MUwyOCwzMS4xMmExLDEsMCwxLDAsMS4xNS0xLjY0bC0xLjg2LTEuM0ExNC42MSwxNC42MSwwLDAsMCwyOC45NCwyMmgxLjg5YTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTExLjUxLDUuMzZhMS42NywxLjY3LDAsMCwwLDEuMDctLjUxQTMuMjEsMy4yMSwwLDAsMSwxMy43Niw2YTE2LjM4LDE2LjM4LDAsMCwwLTIuNjUsMi44OSwyLDIsMCwwLDAsMS42MSwzLjE5SDIzLjMyQTIs''@;'; + put 'put ''MiwwLDAsMCwyNS4xLDExYTIsMiwwLDAsMC0uMTctMi4xQTE2LjM0LDE2LjM0LDAsMCwwLDIyLjI1LDZhMy4yMSwzLjIxLDAsMCwxLDEuMTctMS4xMUExLjY4LDEuNjgsMCwxLDAsMjMsMy4yNyw0Ljc3LDQuNzcsMCwwLDAsMjEsNWE1LjgxLDUuODEsMCwwLDAtMi45My0xLDUuODMsNS44Myww''@;'; + put 'put ''LDAsMC0zLDFBNC43Nyw0Ljc3LDAsMCwwLDEzLDMuMjdhMS42OCwxLjY4LDAsMSwwLTEuNDksMi4wOVpNMTgsNi4wN2MxLjQ1LDAsMy41MywxLjU3LDUuMzEsNGgwbC0xMC42LDBDMTQuNDksNy42MywxNi41Niw2LjA3LDE4LDYuMDdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAuODMsMjBIMjlhMTkuMjksMTkuMjksMCwwLDAtMS4xOC01LjczbDEuNDYtLjc5YTEsMSwwLDAsMC0uOTUtMS43NmwtMywxLjI4SDEwLjc4TDcuNywxMS43MmExLDEsMCwwLDAtLjk1LDEuNzZsMS41LjhBMTkuMzgsMTkuMzgsMCww''@;'; + put 'put ''LDAsNy4wNywyMEg1LjE3YTEsMSwwLDAsMCwwLDJINy4xYTE0LjYyLDE0LjYyLDAsMCwwLDEuNjYsNi4xN0w2Ljg3LDI5LjQ5QTEsMSwwLDEsMCw4LDMxLjEybDEuODQtMS4yOUExMC4yOSwxMC4yOSwwLDAsMCwxNywzMy42VjE1aDJWMzMuNmExMC4yOSwxMC4yOSwwLDAsMCw3LjE2LTMuNzVM''@;'; + put 'put ''MjgsMzEuMTJhMSwxLDAsMSwwLDEuMTUtMS42NGwtMS44Ni0xLjNBMTQuNjEsMTQuNjEsMCwwLDAsMjguOTQsMjJoMS44OWExLDEsMCwwLDAsMC0yWk0xMC45MSwxNy43NGExLjk1LDEuOTUsMCwxLDEsMS45NSwxLjk1QTEuOTUsMS45NSwwLDAsMSwxMC45MSwxNy43NFpNMTQsMjcuNDZhMS41''@;'; + put 'put ''OCwxLjU4LDAsMSwxLDEuNTgtMS41OEExLjU4LDEuNTgsMCwwLDEsMTQsMjcuNDZabTguNDMsMEExLjU4LDEuNTgsMCwxLDEsMjQsMjUuODgsMS41OCwxLjU4LDAsMCwxLDIyLjQyLDI3LjQ2Wm0xLjEzLTcuNzdhMS45NSwxLjk1LDAsMSwxLDEuOTUtMS45NUExLjk1LDEuOTUsMCwwLDEsMjMu''@;'; + put 'put ''NTYsMTkuNjlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTEuMjMsNS4yNmExLjY3LDEuNjcsMCwwLDAsLjU0LS4zMiw1LjksNS45LDAsMCwxLC44OS41OCw3LjQ0LDcuNDQsMCwwLDEsLjk1Ljk0QTE4LjQ4LDE4LjQ4''@;'; + put 'put ''LDAsMCwwLDEwLjc5LDkuN2MtLjQuNTcuMDksMS4yOC44NiwxLjI4SDI0LjQ0Yy43NywwLDEuMjYtLjcxLjg2LTEuMjhhMTguMzgsMTguMzgsMCwwLDAtMi44OC0zLjI4LDcuMjgsNy4yOCwwLDAsMSwuOTEtLjksNS45LDUuOSwwLDAsMSwuODktLjU4LDEuNjksMS42OSwwLDEsMC0uNTYtMS41''@;'; + put 'put ''MSw3LjQ5LDcuNDksMCwwLDAtMS4zMi44Myw5LjA2LDkuMDYsMCwwLDAtMS4xOSwxLjE4QTUuODUsNS44NSwwLDAsMCwxOCw0LjNhNS45MSw1LjkxLDAsMCwwLTMuMTcsMS4xOSw5LjIsOS4yLDAsMCwwLTEuMjItMS4yMSw3LjQ5LDcuNDksMCwwLDAtMS4zMi0uODMsMS42OCwxLjY4LDAsMSww''@;'; + put 'put ''LTEuMTEsMS44M1oiLz4nKSxlLkNsclNoYXBlVGhlcm1vbWV0ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOSwyMy4xN1YxMS40NkgxN1YyMy4yYTMsMywwLDEsMCwyLDBaIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LDE1YTEsMSwwLDAsMCwwLTJIMjMuOTJWMTFIMjZhMSwxLDAsMCwwLDAtMkgyMy45MlY4YTYsNiwwLDAsMC0xMiwwVjIwLjgxYTgsOCwwLDEsMCwxMi0uMlYxOUgyNmExLDEsMCwwLDAsMC0ySDIz''@;'; + put 'put ''LjkyVjE1Wk0yNCwyNmE2LDYsMCwxLDEtMTAuMzYtNC4xMmwuMjctLjI5VjhhNCw0LDAsMCwxLDgsMFYyMS40NGwuMy4yOUE2LDYsMCwwLDEsMjQsMjZaIi8+JyksZS5DbHJTaGFwZVBlbmNpbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIgZD0iTTMzLjg3LDguMzIsMjgsMi40MmEyLjA3LDIuMDcsMCwwLDAtMi45MiwwTDQuMjcsMjMuMmwtMS45LDguMmEyLjA2LDIuMDYsMCwwLDAsMiwyLjUsMi4xNCwyLjE0LDAsMCwwLC40MywwTDEzLjA5LDMyLDMzLjg3LDExLjI0QTIuMDcsMi4wNywwLDAsMCwzMy44Nyw4''@;'; + put 'put ''LjMyWk0xMi4wOSwzMC4yLDQuMzIsMzEuODNsMS43Ny03LjYyTDIxLjY2LDguN2w2LDZaTTI5LDEzLjI1bC02LTYsMy40OC0zLjQ2LDUuOSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik00LjIyLDIzLjJsLTEu''@;'; + put 'put ''OSw4LjJhMi4wNiwyLjA2LDAsMCwwLDIsMi41LDIuMTQsMi4xNCwwLDAsMCwuNDMsMEwxMywzMiwyOC44NCwxNi4yMiwyMCw3LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMzLjgyLDguMzJsLTUuOS01Ljlh''@;'; + put 'put ''Mi4wNywyLjA3LDAsMCwwLTIuOTIsMEwyMS43Miw1LjdsOC44Myw4LjgzLDMuMjgtMy4yOEEyLjA3LDIuMDcsMCwwLDAsMzMuODIsOC4zMloiLz4nKSxlLkNsclNoYXBlTm90ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsMzBINlY4SDE5LjIybDItMkg2QTIsMiwwLDAsMCw0LDhW''@;'; + put 'put ''MzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1bC0yLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy41Myw1Ljg0LDMwLjE2LDIuNDdhMS42MSwxLjYxLDAsMCwwLTIuMjgsMEwxNC4xNywx''@;'; + put 'put ''Ni4yNmwtMS4xMSw0LjgxQTEuNjEsMS42MSwwLDAsMCwxNC42MywyMywxLjY5LDEuNjksMCwwLDAsMTUsMjNsNC44NS0xLjA3TDMzLjUzLDguMTJBMS42MSwxLjYxLDAsMCwwLDMzLjUzLDUuODRaTTE4LjgxLDIwLjA4bC0zLjY2LjgxTDE2LDE3LjI2LDI2LjMyLDYuODdsMi44MiwyLjgyWk0z''@;'; + put 'put ''MC4yNyw4LjU2LDI3LjQ1LDUuNzQsMjksNC4xNiwzMS44NCw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsNi40LDI5LjMsMi43YTEuNzEsMS43MSwwLDAsMC0yLjM2LDBMMjMuNjUsNkg2QTIsMiwwLDAs''@;'; + put 'put ''MCw0LDhWMzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjExLjc2bDMtM0ExLjY3LDEuNjcsMCwwLDAsMzMsNi40Wk0xOC44MywyMC4xM2wtNC4xOS45MywxLTQuMTUsOS41NS05LjU3LDMuMjMsMy4yM1pNMjkuNSw5LjQzLDI2LjI3LDYuMmwxLjg1LTEuODUsMy4yMywzLjIzWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlUmVmcmVzaD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIyLjQsMTEuNjVhMS4wOSwxLjA5LDAsMCwwLDEuMDks''@;'; + put 'put ''MS4wOUgzNC40M1YxLjgxYTEuMDksMS4wOSwwLDEsMC0yLjE5LDBWOC45NWExNi40MSwxNi40MSwwLDEsMCwxLjQ3LDE1Ljg2LDEuMTIsMS4xMiwwLDAsMC0yLjA1LS45LDE0LjE4LDE0LjE4LDAsMSwxLTEuMDUtMTMuMzZIMjMuNUExLjA5LDEuMDksMCwwLDAsMjIuNCwxMS42NVoiLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlU3luYz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjg0LDE1LjcyYTEsMSwwLDEsMC0yLC4yOUExMy4xNSwxMy4xNSwwLDAsMSwzMSwxNy45NCwxMywxMywwLDAsMSw4LjcsMjdoNS4zNmEx''@;'; + put 'put ''LDEsMCwwLDAsMC0yaC05djlhMSwxLDAsMSwwLDIsMFYyOC4yQTE1LDE1LDAsMCwwLDMyLjg0LDE1LjcyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuMDYsMUExLjA1LDEuMDUsMCwwLDAsMjksMlY3''@;'; + put 'put ''LjgzQTE0Ljk0LDE0Ljk0LDAsMCwwLDMsMTcuOTRhMTUuMTYsMTUuMTYsMCwwLDAsLjIsMi40OCwxLDEsMCwwLDAsMSwuODRoLjE2YTEsMSwwLDAsMCwuODItMS4xNUExMy4yMywxMy4yMywwLDAsMSw1LDE3Ljk0YTEzLDEzLDAsMCwxLDEzLTEzQTEyLjg3LDEyLjg3LDAsMCwxLDI3LjQ0LDlI''@;'; + put 'put ''MjIuMDZhMSwxLDAsMCwwLDAsMkgzMVYyQTEsMSwwLDAsMCwzMC4wNiwxWiIvPicpLGUuQ2xyU2hhcGVWaWV3TGlzdD0oMCxhLmNsckljb25TVkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0i''@;'; + put 'put ''MiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNNywxMEgzMWExLDEsMCwwLDAsMC0ySDdhMSwxLDAsMCwwLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMyIgeD0iMiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMxLDE0SDdhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIyIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC02IiBkPSJNMzEsMjBIN2ExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjIiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIGQ9Ik0zMSwyNkg3YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz4nKSxlLkNsclNoYXBlVmlld0NhcmRzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTUsMTdINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsMTdIMjFhMiwyLDAsMCwxLTItMlY4YTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwxN1pNMjEsOHY3SDMyVjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMiIGQ9Ik0xNSwzMEg0YTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTQiIGQ9Ik0zMiwzMEgyMWEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwzMFpNMjEsMjF2N0gzMlYyMVoiLz4nKSxlLkNsclNoYXBlTGlnaHRidWxiPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwy''@;'; + put 'put ''LjI1YTExLDExLDAsMCwwLTExLDExLDEwLjY4LDEwLjY4LDAsMCwwLDEsNC42MywxNi4zNiwxNi4zNiwwLDAsMCwxLjEyLDEuNzgsMTcsMTcsMCwwLDEsMiwzLjQ3LDE2LjE5LDE2LjE5LDAsMCwxLC41OSw0aDJBMTguMTcsMTguMTcsMCwwLDAsMTMsMjIuNDRhMTguNDYsMTguNDYsMCwwLDAt''@;'; + put 'put ''Mi4yMi0zLjkyLDE1Ljc5LDE1Ljc5LDAsMCwxLTEtMS41NEE4LjY0LDguNjQsMCwwLDEsOSwxMy4yM2E5LDksMCwwLDEsMTguMDcsMEE4LjY0LDguNjQsMCwwLDEsMjYuMjEsMTdhMTUuNzksMTUuNzksMCwwLDEtMSwxLjU0QTE4LjQ2LDE4LjQ2LDAsMCwwLDIzLDIyLjQ0YTE4LjE3LDE4LjE3''@;'; + put 'put ''LDAsMCwwLS43MSw0LjcxaDJhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcsMTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3Ljg2YTEwLjY4LDEwLjY4LDAsMCwwLDEtNC42M0ExMSwxMSwwLDAsMCwxOCwyLjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC42MywxNS41MWEuOC44LDAsMCwwLTEuMTMsMGwtMywzLDIuODYsMy4xM3Y1LjU0SDE5VjIxbC0yLjI0LTIuNDUsMS44OS0xLjg5QS44LjgsMCwwLDAsMTguNjMsMTUuNTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjg2LDI5LjE1SDEyLjExYS44LjgsMCwxLDAsMCwxLjZIMjMuODZhLjguOCwwLDAsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMjIsMzIuMTVIMTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4zMiwxMC44OWwtMi43MywyLjczYS44LjgsMCwwLDAsMS4xMywx''@;'; + put 'put ''LjEzTDE4LjQ1LDEyYS44LjgsMCwxLDAtMS4xMy0xLjEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwyNy4xNVYyMWwtMi4yNC0yLjQ1LDEuODktMS44OWEuOC44LDAsMCwwLTEuMTMtMS4xM2wtMywzLDIu''@;'; + put 'put ''ODYsMy4xM3Y1LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsMzIuMTVIMTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNzIsMTQuNzUsMTguNDUsMTJhLjguOCwwLDEsMC0xLjEzLTEuMTNsLTIuNzMsMi43M2EuOC44LDAsMCwwLDEuMTMsMS4xM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LDEyLjg4YzAsLjEyLDAsLjIzLDAsLjM1QTguNjQsOC42NCwwLDAsMSwyNi4yMSwxN2ExNS43OSwxNS43OSwwLDAsMS0xLDEuNTRBMTguNDYsMTguNDYsMCwwLDAsMjMsMjIuNDRhMTguMTcsMTguMTcsMCwwLDAt''@;'; + put 'put ''LjcxLDQuNzFoMmExNi4xOSwxNi4xOSwwLDAsMSwuNTktNCwxNywxNywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjMsMTAuNjMsMCwwLDAsMS00LjQzQTcuNDUsNy40NSwwLDAsMSwyNywxMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjcxLDI3LjE1QTE4LjE3LDE4LjE3LDAsMCwwLDEzLDIyLjQ0YTE4LjQ2LDE4LjQ2LDAsMCwwLTIuMjItMy45MiwxNS43OSwxNS43OSwwLDAsMS0xLTEuNTRBOC42NCw4LjY0LDAsMCwxLDksMTMu''@;'; + put 'put ''MjMsOSw5LDAsMCwxLDIyLjUzLDUuNDdhNy40NSw3LjQ1LDAsMCwxLC40My0yLDExLDExLDAsMCwwLTE2LDkuOCwxMC42OCwxMC42OCwwLDAsMCwxLDQuNjMsMTYuMzYsMTYuMzYsMCwwLDAsMS4xMiwxLjc4LDE3LDE3LDAsMCwxLDIsMy40NywxNi4xOSwxNi4xOSwwLDAsMSwuNTksNFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''YmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44NiwyOS4xNUgxMi4xMWEuOC44LDAsMSwwLDAsMS42SDIzLjg2YS44LjgsMCwwLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsMzIuMTVI''@;'; + put 'put ''MTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIuMjVhMTEsMTEsMCwwLDAtMTEsMTEsMTAuNjgsMTAuNjgsMCwwLDAsMSw0LjYzLDE2LjM2LDE2''@;'; + put 'put ''LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRoNS42OVYyMS42MWwtMi44Ni0zLjEzLDMtM2EuOC44LDAsMCwxLDEuMTMsMS4xM2wtMS44OSwxLjg5TDE5LDIxdjYuMTdIMjQuM2ExNi4xOSwxNi4xOSwwLDAsMSwuNTktNCwxNywx''@;'; + put 'put ''NywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjgsMTAuNjgsMCwwLDAsMS00LjYzQTExLDExLDAsMCwwLDE4LDIuMjVaTTE4LjQ1LDEybC0yLjczLDIuNzNhLjguOCwwLDEsMS0xLjEzLTEuMTNsMi43My0yLjczQS44LjgsMCwxLDEsMTguNDUsMTJaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0x''@;'; + put 'put ''LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwzMi4xNUgxNGEuOC44LDAsMSwwLDAsMS42SDIyYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTIyLjUsNkE3LjQ3LDcuNDcsMCwwLDEsMjMsMy40NGExMSwxMSwwLDAsMC0xNiw5LjgsMTAuNjgsMTAuNjgsMCwwLDAsMSw0LjYzLDE2LjM2LDE2LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRoNS42OVYyMS42MWwtMi44Ni0z''@;'; + put 'put ''LjEzLDMtM2EuOC44LDAsMCwxLDEuMTMsMS4xM2wtMS44OSwxLjg5TDE5LDIxdjYuMTdIMjQuM2ExNi4xOSwxNi4xOSwwLDAsMSwuNTktNCwxNywxNywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjMsMTAuNjMsMCwwLDAsMS00LjQzQTcuNSw3LjUsMCwwLDEs''@;'; + put 'put ''MjIuNSw2Wm0tNCw2LTIuNzMsMi43M2EuOC44LDAsMSwxLTEuMTMtMS4xM2wyLjczLTIuNzNBLjguOCwwLDEsMSwxOC40NSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9''@;'; + put 'put ''IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksZS5DbHJTaGFwZURvd25sb2FkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''IiBkPSJNMzEsMzFINWExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyOS40OCwyOC42MSwxOC44N2ExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDI1''@;'; + put 'put ''LjY1VjVhMSwxLDAsMCwwLTIsMFYyNS42NUw4LjgxLDE3LjQ2YTEsMSwwLDEsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzEsMzFINWExLDEsMCwwLDAs''@;'; + put 'put ''MCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTgsMjkuNDgsMjguNjEsMTguODdhMSwxLDAsMCwwLTEuNDEtMS40MUwxOSwyNS42NVY1YTEs''@;'; + put 'put ''MSwwLDAsMC0yLDBWMjUuNjVMOC44MSwxNy40NmExLDEsMCwxLDAtMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiBy''@;'; + put 'put ''PSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LDI5LjQ4LDI4LjYxLDE4Ljg3YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMjUuNjVWNWExLDEsMCwwLDAtMiwwVjI1LjY1TDguODEsMTcuNDZhMSwxLDAsMSwwLTEuNDEsMS40MVoi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCww''@;'; + put 'put ''LDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGUuQ2xyU2hhcGVVcGxvYWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCww''@;'; + put 'put ''LDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguODEsMTUsMTcsNi44M1YyNy40OGExLDEsMCwwLDAsMiwwVjYuODNMMjcuMTksMTVhMSwxLDAsMCwwLDEuNDEtMS40MUwx''@;'; + put 'put ''OCwzLDcuMzksMTMuNjFBMSwxLDAsMSwwLDguODEsMTVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMSwzMUg1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDI2YzAu''@;'; + put 'put ''NiwwLDEtMC40LDEtMVMzMS42LDMxLDMxLDMxeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNOC44LDE1TDE3LDYuOHYyMC42YzAsMC42LDAuNCwxLDEsMXMxLTAuNCwxLTFW''@;'; + put 'put ''Ni44TDIwLjEsOGwxLTEuOEwxOCwzTDcuNCwxMy42QzcsMTQsNi45LDE0LjYsNy4yLDE1czEsMC41LDEuNCwwLjFDOC43LDE1LjEsOC44LDE1LjEsOC44LDE1eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxLjFMMjEuMSwxMWMtMC40LDAuNi0wLjIsMS40LDAuMywxLjhjMC4yLDAuMiwwLjUsMC4yLDAuOCwwLjJoMTEuNWMwLjcsMCwxLjMtMC41LDEuMy0xLjJjMC0wLjMtMC4xLTAuNS0wLjItMC44bC01LjctOS45Yy0wLjQtMC42LTEu''@;'; + put 'put ''MS0wLjgtMS44LTAuNUMyNy4xLDAuOCwyNywxLDI2LjksMS4xeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0y''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTguODEsMTUsMTcsNi44M1YyNy40OGExLDEsMCwwLDAsMiwwVjYuODNMMjcuMTksMTVhMSwxLDAsMCwwLDEuNDEtMS40MUwxOCwz''@;'; + put 'put ''LDcuMzksMTMuNjFBMSwxLDAsMSwwLDguODEsMTVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxlLkNsclNoYXBl''@;'; + put 'put ''TG9jaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjA5LDIwLjU5QTIuNDEsMi40MSwwLDAsMCwxNywyNS4xNFYyOGgyVjI1LjIzYTIuNDEsMi40MSwwLDAsMC0uOTEtNC42NFoiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LDE1VjEwLjcyYTguMiw4LjIsMCwwLDAtOC04LjM2LDguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDdWMzJhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjE1Wk0xMiwxMC43MmE2''@;'; + put 'put ''LjIsNi4yLDAsMCwxLDYtNi4zNiw2LjIsNi4yLDAsMCwxLDYsNi4zNlYxNUgxMlpNOSwzMlYxN0gyN1YzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYsMTVWMTAuNzJhOC4yLDguMiwwLDAsMC04LTguMzYs''@;'; + put 'put ''OC4yLDguMiwwLDAsMC04LDguMzZWMTVIN1YzMmEyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMTVaTTE5LDI1LjIzVjI4SDE3VjI1LjE0YTIuNCwyLjQsMCwxLDEsMiwuMDlaTTI0LDE1SDEyVjEwLjcyYTYuMiw2LjIsMCwwLDEsNi02LjM2LDYuMiw2LjIsMCwwLDEsNiw2LjM2WiIv''@;'; + put 'put ''PicpLGUuQ2xyU2hhcGVVbmxvY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMiwyNS4xNFYyOGgyVjI1LjIzYTIuNDIsMi40MiwwLDEsMC0yLS4wOVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LDJhOC4yLDguMiwwLDAsMC04LDguMzZWMTVIMlYzMmEyLDIsMCwwLDAsMiwySDIyYTIsMiwwLDAsMCwyLTJWMTVIMjBWMTAuMzZBNi4yLDYuMiwwLDAsMSwyNiw0YTYuMiw2LjIsMCwwLDEsNiw2LjM2djYuODNh''@;'; + put 'put ''MSwxLDAsMCwwLDIsMFYxMC4zNkE4LjIsOC4yLDAsMCwwLDI2LDJaTTIyLDE3VjMySDRWMTdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI2LDJhOC4yLDguMiwwLDAsMC04LDguMzZWMTVIMlYzMmEyLDIsMCww''@;'; + put 'put ''LDAsMiwySDIyYTIsMiwwLDAsMCwyLTJWMTVIMjBWMTAuMzZBNi4yLDYuMiwwLDAsMSwyNiw0YTYuMiw2LjIsMCwwLDEsNiw2LjM2djYuODNhMSwxLDAsMCwwLDIsMFYxMC4zNkE4LjIsOC4yLDAsMCwwLDI2LDJaTTE0LDI1LjIzVjI4SDEyVjI1LjE0YTIuNCwyLjQsMCwxLDEsMiwuMDlaIi8+''@;'; + put 'put ''JyksZS5DbHJTaGFwZVVzZXJzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTcuOSwxNy4zYzIuNywwLDQuOC0yLjIsNC44LTQuOWMwLTIuNy0yLjItNC44LTQuOS00LjhjLTIuNywwLTQuOCwyLjItNC44LDQu''@;'; + put 'put ''OEMxMywxNS4xLDE1LjIsMTcuMywxNy45LDE3LjN6IE0xNy44LDkuNkMxNy45LDkuNiwxNy45LDkuNiwxNy44LDkuNmMxLjYsMCwyLjksMS4zLDIuOSwyLjlzLTEuMywyLjgtMi45LDIuOGMtMS42LDAtMi44LTEuMy0yLjgtMi44QzE1LDEwLjksMTYuMyw5LjYsMTcuOCw5LjZ6Ii8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi43LDE2LjdjLTEuOS0xLjctNC40LTIuNi03LTIuNWMtMC4zLDAtMC41LDAtMC44LDBjLTAuMiwwLjgtMC41LDEuNS0wLjksMi4xYzAuNi0wLjEsMS4xLTAuMSwxLjctMC4x''@;'; + put 'put ''YzEuOS0wLjEsMy44LDAuNSw1LjMsMS42VjI1aDJ2LThMMzIuNywxNi43eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjMuNCw3LjhjMC41LTEuMiwxLjktMS44LDMuMi0xLjNjMS4yLDAuNSwxLjgsMS45''@;'; + put 'put ''LDEuMywzLjJjLTAuNCwwLjktMS4zLDEuNS0yLjIsMS41Yy0wLjIsMC0wLjUsMC0wLjctMC4xYzAuMSwwLjUsMC4xLDEsMC4xLDEuNGMwLDAuMiwwLDAuNCwwLDAuNmMwLjIsMCwwLjQsMC4xLDAuNiwwLjFjMi41LDAsNC41LTIsNC41LTQuNGMwLTIuNS0yLTQuNS00LjQtNC41Yy0xLjYsMC0z''@;'; + put 'put ''LDAuOC0zLjgsMi4yQzIyLjUsNi44LDIzLDcuMiwyMy40LDcuOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTEyLDE2LjRjLTAuNC0wLjYtMC43LTEuMy0wLjktMi4xYy0wLjMsMC0wLjUsMC0wLjgsMGMt''@;'; + put 'put ''Mi42LTAuMS01LjEsMC44LTcsMi40TDMsMTd2OGgydi03LjJjMS42LTEuMSwzLjQtMS43LDUuMy0xLjZDMTAuOSwxNi4yLDExLjUsMTYuMywxMiwxNi40eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMTAu''@;'; + put 'put ''MywxMy4xYzAuMiwwLDAuNCwwLDAuNi0wLjFjMC0wLjIsMC0wLjQsMC0wLjZjMC0wLjUsMC0xLDAuMS0xLjRjLTAuMiwwLjEtMC41LDAuMS0wLjcsMC4xYy0xLjMsMC0yLjQtMS4xLTIuNC0yLjRjMC0xLjMsMS4xLTIuNCwyLjQtMi40YzEsMCwxLjksMC42LDIuMywxLjVjMC40LTAuNSwxLTEs''@;'; + put 'put ''MS41LTEuNGMtMS4zLTIuMS00LTIuOC02LjEtMS41Yy0yLjEsMS4zLTIuOCw0LTEuNSw2LjFDNy4zLDEyLjMsOC43LDEzLjEsMTAuMywxMy4xeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBkPSJNMjYuMSwyMi43''@;'; + put 'put ''bC0wLjItMC4zYy0yLTIuMi00LjgtMy41LTcuOC0zLjRjLTMtMC4xLTUuOSwxLjItNy45LDMuNEwxMCwyMi43djcuNmMwLDAuOSwwLjcsMS43LDEuNywxLjdjMCwwLDAsMCwwLDBoMTIuOGMwLjksMCwxLjctMC44LDEuNy0xLjdjMCwwLDAsMCwwLDBWMjIuN3ogTTI0LjEsMzBIMTJ2LTYuNmMx''@;'; + put 'put ''LjYtMS42LDMuOC0yLjQsNi4xLTIuNGMyLjItMC4xLDQuNCwwLjgsNiwyLjRWMzB6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMS4wOSwxNC41N2MuMSwwLC4yLDAsLjMx''@;'; + put 'put ''LDBhNi40Myw2LjQzLDAsMCwxLC4wOS0yLDIuMDksMi4wOSwwLDEsMSwxLjQ3LTMsNi41OCw2LjU4LDAsMCwxLDEuNTUtMS4zMSw0LjA5LDQuMDksMCwxLDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTMsMTguMTRhNi41Myw2LjUzLDAsMCwxLTEuMjgtMi4ybC0uNjMsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2N2gyVjE5LjUxYTcsNywwLDAsMSw0LjY3LTEuNkE4LjA5LDguMDksMCwwLDEsMTMsMTguMTRaIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zMS4zNSwxOC40MkE4LjU5LDguNTksMCwwLDAsMjUsMTUuOTFjLS4zMiwwLS42LDAtLjkuMDZhNi41Myw2LjUzLDAsMCwxLTEuMzUsMi4yNUE3''@;'; + put 'put ''LjksNy45LDAsMCwxLDI1LDE3LjkxYTYuOTQsNi45NCwwLDAsMSw0LjY0LDEuNTh2Ni4yN2gyVjE4LjdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0xOC4xLDE5LjczQTku''@;'; + put 'put ''NjksOS42OSwwLDAsMCwxMSwyMi40N2wtLjI1LjI4djcuMzNhMS41NywxLjU3LDAsMCwwLDEuNjEsMS41NEgyMy44M2ExLjU3LDEuNTcsMCwwLDAsMS42MS0xLjU0VjIyLjczbC0uMjUtLjI4QTkuNTgsOS41OCwwLDAsMCwxOC4xLDE5LjczWm01LjMzLDkuODhIMTIuNzNWMjMuNTVhOC4wOCw4''@;'; + put 'put ''LjA4LDAsMCwxLDUuMzctMS44Miw4LDgsMCwwLDEsNS4zMywxLjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0yMC4yOCwxNC4yN2EyLjQ2LDIuNDYsMCwxLDEtMi40Mi0y''@;'; + put 'put ''Ljg5LDIuNDQsMi40NCwwLDAsMSwxLC4yNCwzLjY3LDMuNjcsMCwwLDEsLjQzLTIsNC40MSw0LjQxLDAsMCwwLTEuNDgtLjI3QTQuNDcsNC40NywwLDEsMCwyMi4xNCwxNSwzLjY5LDMuNjksMCwwLDEsMjAuMjgsMTQuMjdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNy4xOC44bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDM0YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4zOS44QTEuMjgsMS4yOCwwLDAsMCwyNy4x''@;'; + put 'put ''OC44WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTExLjA5LDE0LjU3Yy4xLDAsLjIsMCwuMzEsMGE2LjQzLDYuNDMsMCwwLDEsLjA5LTIsMi4wOSwyLjA5LDAsMSwxLDEuNDct''@;'; + put 'put ''Myw2LjU4LDYuNTgsMCwwLDEsMS41NS0xLjMxLDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTMsMTguMTRhNi41Myw2LjUzLDAs''@;'; + put 'put ''MCwxLTEuMjgtMi4ybC0uNjMsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2N2gyVjE5LjUxYTcsNywwLDAsMSw0LjY3LTEuNkE4LjA5LDguMDksMCwwLDEsMTMsMTguMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzEuMzUsMTguNDJBOC41OSw4LjU5LDAsMCwwLDI1LDE1LjkxYy0uMzIsMC0uNiwwLS45LjA2YTYuNTMsNi41MywwLDAsMS0xLjM1LDIuMjVBNy45LDcuOSwwLDAsMSwyNSwxNy45MWE2Ljk0LDYuOTQsMCwwLDEsNC42NCwxLjU4djYu''@;'; + put 'put ''MjdoMlYxOC43WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTE3Ljg2LDE4LjNhNC40Nyw0LjQ3LDAsMSwwLTQuNDctNC40N0E0LjQ3LDQuNDcsMCwwLDAsMTcuODYsMTguM1pt''@;'; + put 'put ''MC02LjkzYTIuNDcsMi40NywwLDEsMS0yLjQ3LDIuNDdBMi40NywyLjQ3LDAsMCwxLDE3Ljg2LDExLjM3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgZD0iTTE4LjEsMTkuNzNBOS42''@;'; + put 'put ''OSw5LjY5LDAsMCwwLDExLDIyLjQ3bC0uMjUuMjh2Ny4zM2ExLjU3LDEuNTcsMCwwLDAsMS42MSwxLjU0SDIzLjgzYTEuNTcsMS41NywwLDAsMCwxLjYxLTEuNTRWMjIuNzNsLS4yNS0uMjhBOS41OCw5LjU4LDAsMCwwLDE4LjEsMTkuNzNabTUuMzMsOS44OEgxMi43M1YyMy41NWE4LjA4LDgu''@;'; + put 'put ''MDgsMCwwLDEsNS4zNy0xLjgyLDgsOCwwLDAsMSw1LjMzLDEuOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIGQ9Ik0yNi4zNywxMmEyLDIsMCwwLDEtMi4wOS40Miw2LjUzLDYuNTMs''@;'; + put 'put ''MCwwLDEsLjE1LDEuMzgsNi41OSw2LjU5LDAsMCwxLDAsLjY4LDQsNCwwLDAsMCwuNTcuMDYsNC4wOCw0LjA4LDAsMCwwLDMuMy0xLjdBNy40NSw3LjQ1LDAsMCwxLDI2LjM3LDEyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTctLWJhZGdlZCIgZD0iTTIyLjk1LDYuOTNhNC4xNiw0LjE2LDAsMCwwLTEuNDcsMS40NEE2LjU5LDYuNTksMCwwLDEsMjMsOS43N2EyLjEsMi4xLDAsMCwxLC41OS0uODNBNy40NCw3LjQ0LDAsMCwxLDIyLjk1LDYuOTNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNs''@;'; + put 'put ''ZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMC4zMyIgY3k9IjUuNjciIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBk''@;'; + put 'put ''PSJNMTIsMTYuMTRxLS40MywwLS44NywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY4LjI4SDguNTR2LTQuN2wuNTUtLjYyLjI1LS4yOWExMSwxMSwwLDAsMSw0LjcxLTIuODZBNi41OSw2LjU5LDAsMCwxLDEyLDE2LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMS4zNCwxOC42M2E4LjY3LDguNjcsMCwwLDAtNi40My0yLjUyLDEwLjQ3LDEwLjQ3LDAsMCwwLTEuMDkuMDYsNi41OSw2LjU5LDAsMCwxLTIsMi40NSwxMC45MSwxMC45MSwwLDAsMSw1LDNsLjI1LjI4LjU0LjYydjQu''@;'; + put 'put ''NzFoMy45NFYxOC45MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTEuMSwxNC4xOWMuMTEsMCwuMiwwLC4zMSwwYTYuNDUsNi40NSwwLDAsMSwzLjExLTYuMjksNC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMjQuNDMsMTMuNDRhNi41NCw2LjU0LDAsMCwxLDAsLjY5LDQuMDksNC4wOSwwLDAsMCwuNTguMDVoLjE5QTQuMDksNC4wOSwwLDEsMCwyMS40Nyw4LDYuNTMsNi41Myww''@;'; + put 'put ''LDAsMSwyNC40MywxMy40NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIGN4PSIxNy44NyIgY3k9IjEzLjQ1IiByPSI0LjQ3Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtNiIgZD0iTTE4LjExLDIwLjNBOS42OSw5LjY5LDAsMCwwLDExLDIzbC0uMjUuMjh2Ni4zM2ExLjU3LDEuNTcsMCwwLDAsMS42LDEuNTRIMjMuODRhMS41NywxLjU3LDAsMCwwLDEuNi0xLjU0VjIzLjNMMjUuMiwyM0E5LjU4LDkuNTgsMCwwLDAsMTguMTEsMjAuM1oiLz5c''@;'; + put 'put ''biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTIsMTYuMTRxLS40MywwLS44NywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY4LjI4SDguNTR2LTQuN2wuNTUtLjYyLjI1''@;'; + put 'put ''LS4yOWExMSwxMSwwLDAsMSw0LjcxLTIuODZBNi41OSw2LjU5LDAsMCwxLDEyLDE2LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0zMS4zNCwxOC42M2E4LjY3LDguNjcsMCww''@;'; + put 'put ''LDAtNi40My0yLjUyLDEwLjQ3LDEwLjQ3LDAsMCwwLTEuMDkuMDYsNi41OSw2LjU5LDAsMCwxLTIsMi40NSwxMC45MSwxMC45MSwwLDAsMSw1LDNsLjI1LjI4LjU0LjYydjQuNzFoMy45NFYxOC45MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMTEuMSwxNC4xOWMuMTEsMCwuMiwwLC4zMSwwYTYuNDUsNi40NSwwLDAsMSwzLjExLTYuMjksNC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIiBkPSJNMTguMTEsMjAuM0E5LjY5LDkuNjksMCwwLDAsMTEsMjNsLS4yNS4yOHY2LjMzYTEuNTcsMS41NywwLDAsMCwxLjYsMS41NEgyMy44NGExLjU3LDEuNTcsMCwwLDAsMS42LTEuNTRWMjMuM0wyNS4yLDIzQTkuNTgsOS41OCww''@;'; + put 'put ''LDAsMCwxOC4xMSwyMC4zWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0xNy44NywxNy45MmE0LjQ2LDQuNDYsMCwwLDAsNC0yLjU0QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5bC4z''@;'; + put 'put ''NS0uNjFBNC40Miw0LjQyLDAsMCwwLDE3Ljg3LDlhNC40Nyw0LjQ3LDAsMSwwLDAsOC45M1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwy''@;'; + put 'put ''MS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMiwxNi4xNHEtLjQzLDAtLjg3LDBhOC42Nyw4LjY3LDAsMCwwLTYuNDMsMi41MmwtLjI0LjI4djguMjhIOC41NHYtNC43bC41NS0uNjIuMjUtLjI5YTExLDExLDAsMCwxLDQuNzEtMi44NkE2LjU4LDYuNTgsMCwwLDEsMTIsMTYuMTRaIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMS4zNCwxOC42M2E4LjY3LDguNjcsMCwwLDAtNi40My0yLjUyLDEwLjQ3LDEwLjQ3LDAsMCwwLTEuMDkuMDYsNi41OSw2LjU5LDAsMCwxLTIsMi40NSwx''@;'; + put 'put ''MC45MSwxMC45MSwwLDAsMSw1LDNsLjI1LjI4LjU0LjYydjQuNzFoMy45NFYxOC45MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgZD0iTTExLjEsMTQuMTljLjExLDAsLjIsMCwuMzEsMGE2''@;'; + put 'put ''LjQ1LDYuNDUsMCwwLDEsMy4xMS02LjI5LDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIgY3g9IjE3Ljg3IiBjeT0iMTMuNDUiIHI9IjQuNDci''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCIgZD0iTTE4LjExLDIwLjNBOS42OSw5LjY5LDAsMCwwLDExLDIzbC0uMjUuMjh2Ni4zM2ExLjU3LDEuNTcsMCwwLDAsMS42LDEuNTRIMjMuODRhMS41''@;'; + put 'put ''NywxLjU3LDAsMCwwLDEuNi0xLjU0VjIzLjNMMjUuMiwyM0E5LjU4LDkuNTgsMCwwLDAsMTguMTEsMjAuM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTYtLWJhZGdlZCIgZD0iTTI0LjQzLDEzLjQ0YTYuNTQs''@;'; + put 'put ''Ni41NCwwLDAsMSwwLC42OSw0LjA5LDQuMDksMCwwLDAsLjU4LjA1aC4xOWE0LjA1LDQuMDUsMCwwLDAsMi41Mi0xLDcuNSw3LjUsMCwwLDEtNS4xNC02LjMyQTQuMTMsNC4xMywwLDAsMCwyMS40Nyw4LDYuNTMsNi41MywwLDAsMSwyNC40MywxMy40NFoiLz5cbiAgICAgICAgICAgICAgICA8''@;'; + put 'put ''Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksZS5DbHJTaGFwZVBvcE91dD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LDMzSDVhMiwyLDAsMCwxLTItMlY5QTIsMiwwLDAsMSw1LDdIMTVWOUg1VjMxSDI3VjIxaDJWMzFBMiwyLDAsMCwxLDI3LDMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y''@;'; + put 'put ''IiBkPSJNMTgsM2ExLDEsMCwwLDAsMCwySDI5LjU5TDE1Ljc0LDE4Ljg1YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzEsNi40MVYxOGExLDEsMCwwLDAsMiwwVjNaIi8+JyksZS5DbHJTaGFwZUZpbHRlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMSIgZD0iTTMzLDRIM0ExLDEsMCwwLDAsMiw1VjYuNjdhMS43OSwxLjc5LDAsMCwwLC41MywxLjI3TDE0LDE5LjU4djEwLjJsMiwuNzZWMTlhMSwxLDAsMCwwLS4yOS0uNzFMNCw2LjU5VjZIMzJ2LjYxTDIwLjMzLDE4LjI5QTEsMSwwLDAsMCwyMCwxOWwwLDEzLjIxTDIy''@;'; + put 'put ''LDMzVjE5LjVMMzMuNDcsOEExLjgxLDEuODEsMCwwLDAsMzQsNi43VjVBMSwxLDAsMCwwLDMzLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIyLDMzVjE5LjVMMzMuNDcsOEExLjgxLDEuODEsMCwwLDAsMzQs''@;'; + put 'put ''Ni43VjVhMSwxLDAsMCwwLTEtMUgzQTEsMSwwLDAsMCwyLDVWNi42N2ExLjc5LDEuNzksMCwwLDAsLjUzLDEuMjdMMTQsMTkuNTh2MTAuMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzMuNDgsNGgtMzFBLjUyLjUyLDAsMCwwLDIsNC41MlY2LjI0YTEuMzMsMS4zMywwLDAsMCwu''@;'; + put 'put ''MzkuOTVsMTIsMTJ2MTBsNy4yNSwzLjYxVjE5LjE3bDEyLTEyQTEuMzUsMS4zNSwwLDAsMCwzNCw2LjI2VjQuNTJBLjUyLjUyLDAsMCwwLDMzLjQ4LDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVQaW49KDAsYS5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMywxNi41OWExLDEsMCwwLDEtLjcxLS4yOUwxOS43LDMuNzFhMSwxLDAsMCwxLDEuNDEtMS40MUwzMy43MSwxNC44OUExLDEsMCwwLDEsMzMsMTYuNTlaIi8+XG4gICAgICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOC41MiwxNS41NmwtMS40MS0xLjQxLTcuMiw3LjJhMSwxLDAsMCwwLS4yNSwxLDksOSwwLDAsMS0xLjUzLDguMDlMNS41OCwxNy44N2E5LDksMCwwLDEsOC4wOS0xLjUzLDEsMSwwLDAsMCwxLS4yNWw3''@;'; + put 'put ''LjItNy4yTDIwLjQ0LDcuNDhsLTYuNzksNi43OUExMC45NCwxMC45NCwwLDAsMCwzLjQxLDE3LjExYTEsMSwwLDAsMCwwLDEuNDJsNi4zMyw2LjMzTDIuMjksMzIuMjlhMSwxLDAsMSwwLDEuNDEsMS40MWw3LjQ0LTcuNDQsNi4zMyw2LjMzYTEsMSwwLDAsMCwuNzEuMjloMGExLDEsMCwwLDAs''@;'; + put 'put ''LjcxLS4zLDExLDExLDAsMCwwLDIuODQtMTAuMjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMzLDE2LjcxYTEsMSwwLDAsMS0uNzEtLjI5TDE5LjcsMy44MmExLDEsMCwwLDEsMS40MS0xLjQxTDMzLjcxLDE1''@;'; + put 'put ''QTEsMSwwLDAsMSwzMywxNi43MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjAuNDQsNy41OWwtNi43OSw2Ljc5QTEwLjk0LDEwLjk0LDAsMCwwLDMuNDEsMTcuMjJhMSwxLDAsMCwwLDAsMS40Mkw5LjczLDI1''@;'; + put 'put ''LDIuMjksMzIuNDFhMSwxLDAsMSwwLDEuNDEsMS40MWw3LjQ0LTcuNDQsNi4zMyw2LjMzYTEsMSwwLDAsMCwuNzEuMjloMGExLDEsMCwwLDAsLjcxLS4zLDExLDExLDAsMCwwLDIuODQtMTAuMjRsNi43OS02Ljc5WiIvPicpLGUuQ2xyU2hhcGVGaWxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjExLjkyWm0tLjMsMi40OSw2LDUu''@;'; + put 'put ''OWgtNlpNOCwzMFY2SDIwdjhoOFYzMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yMS41OSwxMi4zOVY2LjQ5bDEuMDcsMWE3LjMxLDcuMzEsMCwwLDEsMC0yLjgyTDIxLjg5''@;'; + put 'put ''LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxMy41YTcuNDUsNy40NSwwLDAsMS0zLjkxLTEuMTFaTTI4LDMwSDhWNkgyMHY4aDhaIi8+XG4gICAgICAgICAgICAgICAgPGNp''@;'; + put 'put ''cmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTTI4LDE1LjRWMzBIOFY2SDIwVjguMjVsMi4yNS0zLjlMMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjE1LjRaIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu''@;'; + put 'put ''NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4''@;'; + put 'put ''LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjExLjkyWk0yMSwxM1Y1Ljg0TDI4LjMsMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yNy4yNSwx''@;'; + put 'put ''M0gyMVY1Ljg0bDEuNjQsMS42YTcuMjUsNy4yNSwwLDAsMSwwLTIuNzRMMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjEzLjVBNy40Nyw3LjQ3LDAsMCwxLDI3LjI1''@;'; + put 'put ''LDEzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjIuMiwxNS40Yy0yLDAtMy43LTEuNi0zLjctMy42YzAtMC43LDAuMi0xLjMsMC41LTEuOWwzLjItNS41TDIxLjksNEg3LjhDNi44LDQsNiw0LjksNiw1Ljl2MjQuMmMwLDEsMC44LDEuOSwxLjgsMS45aDIwLjNjMSww''@;'; + put 'put ''LDEuOC0wLjksMS44LTEuOVYxNS40SDIyLjJ6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMs''@;'; + put 'put ''MS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz4nKSxlLkNsclNoYXBlUGx1cz0oMCxhLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLDE3SDE5VjZhMSwxLDAsMSwwLTIsMFYxN0g2YTEsMSwwLDAsMC0xLDEsLjkxLjkxLDAsMCwwLDEsLjk0SDE3VjMwYTEsMSwwLDEsMCwyLDBWMTlIMzBhMSwxLDAsMCwwLDEtMUEx''@;'; + put 'put ''LDEsMCwwLDAsMzAsMTdaIi8+JyksZS5DbHJTaGFwZU1pbnVzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNiwxN0gxMGExLDEsMCwwLDAsMCwySDI2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBl''@;'; + put 'put ''TWludXNDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LDE3SDEyYTEsMSwwLDAsMCwwLDJIMjRhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYs''@;'; + put 'put ''MTYsMCwwLDAsMTgsMlptNiwxNy41SDEyYTEuNSwxLjUsMCwwLDEsMC0zSDI0YTEuNSwxLjUsMCwwLDEsMCwzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlUGx1c0NpcmNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuMTcs''@;'; + put 'put ''MTdIMTlWOS44M2ExLDEsMCwwLDAtMiwwVjE3SDkuODNhMSwxLDAsMCwwLDAsMkgxN3Y3LjE3YTEsMSwwLDAsMCwyLDBWMTloNy4xN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwy''@;'; + put 'put ''QTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LDE4QTE2LDE2LDAsMSwx''@;'; + put 'put ''LDE4LDIsMTYsMTYsMCwwLDEsMzQsMThabS04LjQxLTEuNUgxOS41VjEwLjQxYTEuNSwxLjUsMCwwLDAtMywwVjE2LjVIMTAuNDFhMS41LDEuNSwwLDAsMCwwLDNIMTYuNXY2LjA5YTEuNSwxLjUsMCwwLDAsMywwVjE5LjVoNi4wOWExLjUsMS41LDAsMCwwLDAtM1oiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLkNsclNoYXBlQmFuPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk00LDE4QTEzLjkz''@;'; + put 'put ''LDEzLjkzLDAsMCwxLDcuNDMsOC44NUwyNy4xNSwyOC41N0ExNCwxNCwwLDAsMSw0LDE4Wm0yNC41Nyw5LjE1TDguODUsNy40M0ExNCwxNCwwLDAsMSwyOC41NywyNy4xNVoiLz4nKSxlLkNsclNoYXBlVGltZXNDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOS42MSwxOGw0Ljg2LTQuODZhMSwxLDAsMCwwLTEuNDEtMS40MUwxOC4yLDE2LjU0bC00Ljg5LTQuODlhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi43OCwxOCwxMiwyMi43MmExLDEsMCwxLDAsMS40MSwxLjQxbDQuNzctNC43Nyw0Ljc0''@;'; + put 'put ''LDQuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4''@;'; + put 'put ''LDE0LDE0LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptOCwyMi4xYTEuNCwxLjQsMCwwLDEtMiwybC02LTZMMTIsMjYu''@;'; + put 'put ''MTJhMS40LDEuNCwwLDEsMS0yLTJMMTYsMTguMDgsOS44MywxMS44NmExLjQsMS40LDAsMSwxLDItMkwxOCwxNi4xbDYuMTctNi4xN2ExLjQsMS40LDAsMSwxLDIsMkwyMCwxOC4wOFoiLz4nKSxlLkNsclNoYXBlVHJhc2g9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy4xNCwzNEg4Ljg2QTIuOTMsMi45MywwLDAsMSw2LDMxVjExLjIzSDhWMzFhLjkzLjkzLDAsMCwwLC44NiwxSDI3LjE0QS45My45MywwLDAsMCwyOCwzMVYxMS4yM2gyVjMxQTIuOTMsMi45MywwLDAsMSwyNy4xNCwzNFoiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLjc4LDlINUExLDEsMCwwLDEsNSw3SDMwLjc4YTEsMSwwLDAsMSwwLDJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMiIHg9IjIxIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMTUiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgeD0iMTMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIxNSIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMjMsNS44NkgyMS4xVjRIMTQuOVY1Ljg2SDEzVjRhMiwyLDAsMCwxLDEuOS0yaDYuMkEyLDIsMCwwLDEsMjMsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNiw5VjMxYTIuOTMsMi45MywwLDAsMCwyLjg2LDNIMjcuMDlBMi45MywyLjkzLDAsMCwwLDMwLDMxVjlabTksMjBIMTNWMTRoMlptOCwwSDIxVjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMwLjczLDVIMjNWNEEyLDIsMCwwLDAsMjEsMmgtNi4yQTIsMiwwLDAsMCwxMyw0VjVINUExLDEsMCwxLDAsNSw3SDMwLjczYTEsMSwwLDAsMCwwLTJaIi8+JyksZS5DbHJTaGFwZVRhZz0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxMC41''@;'; + put 'put ''MiIgY3k9IjEwLjUyIiByPSIxLjQzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAs''@;'; + put 'put ''LjU5LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNMjAuNjIsMzAuNTIsNiwxNS45MVY2aDkuOTJsMTQuNiwxNC42MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''Y2lyY2xlIGN4PSIxMC41MiIgY3k9IjEwLjUyIiByPSIxLjQzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjJsLTMuOC0zLjhIMjUuMzFsNS4yMiw1LjIyLTkuOSw5''@;'; + put 'put ''LjlMNiwxNS45MVY2aDkuOTJsMy40MSwzLjQxLDEtMS43OC0zLTNBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAsMCwzMS45MywxOS4yWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4x''@;'; + put 'put ''NEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMC41MiIgY3k9IjEwLjUyIiByPSIxLjQzIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4yLDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYs''@;'; + put 'put ''MTQuNmEyLDIsMCwwLDAsMi44MywwbDkuOS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaTTIwLjYyLDMwLjUyLDYsMTUuOTFWNmg5LjkybDE0LjYsMTQuNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMiwxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRM''@;'; + put 'put ''Niw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAsMCwzMS45MywxOS4yWk05LjY1LDExLjMxYTEuNjYsMS42NiwwLDEsMSwxLjY2LTEuNjZBMS42NiwxLjY2LDAsMCwxLDkuNjUsMTEuMzFa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguNDYsMTUuNzNIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDEwLjIybDEuNDMtMi40N0wxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZs''@;'; + put 'put ''MCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45YTIsMiwwLDAsMCwwLTIuODNaTTkuNjUsMTEuMzFhMS42NiwxLjY2LDAsMSwxLDEuNjYtMS42NkExLjY2LDEuNjYsMCwwLDEsOS42NSwxMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjQ3bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjQ3QTEuMjgsMS4yOCwwLDAs''@;'; + put 'put ''MCwyNi44NSwxLjQ3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2''@;'; + put 'put ''bDAsOS45MmEyLDIsMCwwLDAsLjU5LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNOS42NSwxMS4zMWExLjY2LDEuNjYsMCwxLDEsMS42Ni0xLjY2QTEuNjYsMS42NiwwLDAsMSw5LjY1LDExLjMxWiIgY2xhc3M9ImNsci1pLXNv''@;'; + put 'put ''bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNi4zMyIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxlLkNsclNo''@;'; + put 'put ''YXBlVGFncz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwzMS43NSwyMC40NSwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0y''@;'; + put 'put ''LjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjcuODEiIGN5PSIxMS4xNCIgcj0iMS4zMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkz''@;'; + put 'put ''LDAsMCwwLDI3Ljc4LDE5LjE3Wk0xNy4yNiwyOS42OSwzLjY5LDE2LjE1VjdoOS4xTDI2LjM3LDIwLjQ4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjcuODEiIGN5PSIxMS4xNCIgcj0iMS4zMyIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIs''@;'; + put 'put ''MS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1pNMTcuMjYsMjkuNjksMy42OSwxNi4xNVY3aDkuMUwyNi4zNywyMC40OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFh''@;'; + put 'put ''MS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjcuODEiIGN5PSIxMS4xNCIgcj0iMS4zMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yNy43OCwxOS4xNywyNCwxNS40SDIyLjIzQTMuNjUsMy42NSwwLDAsMSwyMSwxNS4xOWw1LjMzLDUuMjktOS4xMSw5LjIxTDMuNjksMTYuMTVWN2g5LjFsNiw1Ljk0YTMuNjgsMy42OCwwLDAsMSwuMS0yLjY5TDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYx''@;'; + put 'put ''QTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLjgzLDYuOCwxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDE5Ljc5LDguNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0z''@;'; + put 'put ''LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMjkuNDMsMTUuNEgyNi42NWw1LjEsNUwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAs''@;'; + put 'put ''MjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwz''@;'; + put 'put ''MS43NSwyMC40NSwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDE0LjIsNS41''@;'; + put 'put ''OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYxQTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTYuNjcs''@;'; + put 'put ''MTEuNzJBMS43MywxLjczLDAsMSwxLDguNCwxMCwxLjczLDEuNzMsMCwwLDEsNi42NywxMS43MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgz''@;'; + put 'put ''LDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3Wk02LjY3LDExLjcyQTEuNzMsMS43MywwLDEsMSw4''@;'; + put 'put ''LjQsMTAsMS43MywxLjczLDAsMCwxLDYuNjcsMTEuNzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYu''@;'; + put 'put ''MTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4''@;'; + put 'put ''PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAuODMsNi44LDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMTku''@;'; + put 'put ''NzksOC42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDI5LjQzLDE1LjRIMjYuNjVsNS4xLDVMMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIx''@;'; + put 'put ''LTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywyNCwxNS40SDIyLjIzYTMuNjcsMy42NywwLDAsMS0zLjM2LTUuMTVM''@;'; + put 'put ''MTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4x''@;'; + put 'put ''N1pNNi42NywxMS43MkExLjczLDEuNzMsMCwxLDEsOC40LDEwLDEuNzMsMS43MywwLDAsMSw2LjY3LDExLjcyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMs''@;'; + put 'put ''MTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVy''@;'; + put 'put ''dCIvPicpLGUuQ2xyU2hhcGVIaXN0b3J5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw5LjgzYTEsMSwwLDAsMC0xLDF2OC43Mmw1LjksNEExLDEsMCwwLDAsMjQsMjEuODhsLTUtMy4zOVYxMC44M0ExLDEsMCwwLDAsMTgsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNi4wOSwxNi4wOSwwLDAsMCw0LDEwLjI2VjUuMmExLDEsMCwwLDAtMiwwVjE0aDguOGExLDEsMCwwLDAsMC0ySDUuMzVBMTQsMTQsMCwxLDEsOC41OCwyOC4zNWExLDEsMCwwLDAtMS4zNSwxLjQ4QTE2LDE2''@;'; + put 'put ''LDAsMSwwLDE4LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPicpLGUuQ2xyU2hhcGVDbG9jaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMy''@;'; + put 'put ''LDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC45MiwxOC40VjEwLjc1YTEsMSwwLDAsMC0yLDB2OC43Mmw1LjksNGExLDEsMCwxLDAsMS4xMS0xLjY2WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LDE3Ljk0QTkuOTQsOS45NCwwLDAsMSwyMy40MSw5LjU5bC44NS0xLjM2YTExLjU1LDExLjU1LDAsMSwwLTguNTMsMjFMMTYsMjcuN0ExMCwxMCwwLDAsMSw4LDE3Ljk0WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC45MiwxMC43NWExLDEsMCwwLDAtMiwwdjguNzJsNS45LDRhMSwxLDAsMSwwLDEuMTEtMS42NmwtNS0zLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40NCw3LjQ0LDAsMCwxLTEuOTEuNTgsMTQuMDUsMTQuMDUsMCwxLDEtOC42LTguNiw3LjQ0LDcuNDQsMCwwLDEsLjU4LTEuOTEsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNi4zOGExMS41NiwxMS41NiwwLDAsMC0yLjI3LDIyLjg5TDE2LDI3LjdhMTAsMTAsMCwxLDEsNy4zOS0xOC4xaDBhNy40NSw3LjQ1LDAs''@;'; + put 'put ''MCwxLS43OC0yLjIzQTExLjQ1LDExLjQ1LDAsMCwwLDE4LDYuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguOTIsMTAuNzVhMSwxLDAsMCwwLTIsMHY4LjcybDUuOSw0YTEsMSwwLDEsMCwxLjExLTEuNjZsLTUtMy4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzcsMTUuMzloLTJBMTQsMTQsMCwxLDEsMjIuMDksNC42MWwxLTEuNzZBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMzMuNzcsMTUuMzlaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDhhOS44MSw5LjgxLDAsMCwxLDIsLjIzbC44NS0xLjQ2YTExLjU1LDExLjU1LDAsMSwwLTUuMTMsMjIuNTJMMTYsMjcuN0ExMCwxMCwwLDAsMSwxOCw4WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjku''@;'; + put 'put ''MDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiww''@;'; + put 'put ''LDAsMCwxOCwyWm02LjIsMjEuMThhMSwxLDAsMCwxLTEuMzkuMjhsLTUuOS00VjEwLjc1YTEsMSwwLDAsMSwyLDBWMTguNGw1LDMuMzlBMSwxLDAsMCwxLDI0LjIsMjMuMThaTTIzLjg1LDguMjNhMTEuMzksMTEuMzksMCwxLDAtOC41NCwyMC44M0wxNSwzMC42M2ExMywxMywwLDEsMSw5Ljct''@;'; + put 'put ''MjMuNzdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFBNy40OCw3LjQ4LDAsMCwxLDIyLjY4LDcuNjMsMTEuMjQsMTEuMjQsMCwwLDAsMTgsNi42YTExLjM5LDExLjM5LDAsMCwwLTIuNjksMjIuNDdM''@;'; + put 'put ''MTUsMzAuNjNBMTMsMTMsMCwwLDEsMTgsNWExMi44MSwxMi44MSwwLDAsMSw0LjUxLjgyLDcuNDYsNy40NiwwLDAsMSwuNjgtMi45NCwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaTTI0LjIsMjMuMThhMSwxLDAsMCwxLTEuMzkuMjhsLTUuOS00VjEwLjc1YTEsMSwwLDAsMSwyLDBWMTgu''@;'; + put 'put ''NGw1LDMuMzlBMSwxLDAsMCwxLDI0LjIsMjMuMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc3LDE1LjM5SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NmMwLS4wOS0uMDktLjE4LS4xMy0uMjdWMTguNGw1LDMuMzlhMSwxLDAsMCwxLTEuMTEsMS42NmwtNS45LTRWMTAu''@;'; + put 'put ''NzVhMSwxLDAsMCwxLDEuOTEtLjQxQTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5TDIwLjc0LDdBMTEuMTksMTEuMTksMCwwLDAsMTgsNi42YTExLjM5LDExLjM5LDAsMCwwLTIuNjksMjIuNDdMMTUsMzAuNjNBMTMsMTMsMCwwLDEsMTgsNWExMi44LDEyLjgsMCwwLDEsMy41Ny41MWwxLjUzLTIu''@;'; + put 'put ''NjZBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMzMuNzcsMTUuMzlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAs''@;'; + put 'put ''MjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+JyksZS5DbHJTaGFwZUFs''@;'; + put 'put ''YXJtQ2xvY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQ3LDMuODRhNS43OCw1Ljc4LDAsMCwwLTcuMzctLjYzLDE2LjA4LDE2LjA4LDAsMCwxLDguMiw3LjY1QTUuNzMsNS43MywwLDAsMCwzMS40NywzLjg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40LDQuMDlBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxTDI4LDI3Ljc4QTE0''@;'; + put 'put ''LDE0LDAsMCwwLDE2LjQsNC4wOVpNMTkuNTgsMjkuOUExMiwxMiwwLDEsMSwyOS45MiwxOS41NiwxMiwxMiwwLDAsMSwxOS41OCwyOS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC45MiwyMC4zNGwtNi4w''@;'; + put 'put ''Ni0zVjkuNWEuOS45LDAsMCwwLTEuOCwwdjlMMjQuMTIsMjJhLjkuOSwwLDEsMCwuNzktMS42MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1Ljcy''@;'; + put 'put ''LDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguODYsOS41YS45LjksMCwwLDAtMS44LDB2''@;'; + put 'put ''OUwyNC4xMiwyMmEuOS45LDAsMSwwLC43OS0xLjYybC02LjA2LTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4QTEzLjg4LDEzLjg4LDAsMCwwLDMxLjc3LDE1LjRo''@;'; + put 'put ''LTJhMTIuMDcsMTIuMDcsMCwxLDEtOC42Ny05bDEtMS44YTE0LDE0LDAsMCwwLTE0LDIzLjI3TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgs''@;'; + put 'put ''MS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43''@;'; + put 'put ''MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4QTEzLjg4LDEzLjg4LDAsMCwwLDMxLjc3LDE1''@;'; + put 'put ''LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2TDE5LDEzLjR2My43OEwyNSwyMC4xYTEsMSwwLDEsMS0uODcsMS44TDE3LDE4LjQ0VjkuNjlhMSwxLDAsMCwxLDIsMFYxMEwxOSw5Ljg5bDMtNS4yOGExNCwxNCwwLDAsMC0xNCwyMy4yN0w1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMx''@;'; + put 'put ''Ljg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQs''@;'; + put 'put ''MjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHIt''@;'; + put 'put ''aS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4YTEzLjg5LDEzLjg5LDAsMCwwLDMuMjEtMTQuMzlBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNmE3LjUyLDcuNTIsMCwwLDEsLjExLTEuMjFBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSww''@;'; + put 'put ''LDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWm0tMi41Mi02LjM1YTEsMSwwLDAsMS0xLjMzLjQ3TDE3LDE4LjQ0VjkuNjlhMSwxLDAsMCwxLDIsMHY3LjVMMjUsMjAuMUExLDEsMCwwLDEsMjUuNDks''@;'; + put 'put ''MjEuNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHIt''@;'; + put 'put ''aS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC44Niw5LjVhLjkuOSwwLDAsMC0xLjgsMHY5TDI0LjEyLDIyYS45LjksMCwxLDAsLjc5LTEuNjJsLTYuMDYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJh''@;'; + put 'put ''ZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4YTEzLjg5LDEzLjg5LDAsMCwwLDMuMjEtMTQuMzksNyw3LDAsMCwxLTIuMTEuMDVBMTIsMTIsMCwxLDEsMjIuNTYsNi45LDcuNTQsNy41NCwwLDAsMSwyMi41LDZhNy41Miw3LjUyLDAsMCwxLC4xMS0xLjIxQTE0LDE0LDAs''@;'; + put 'put ''MCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCwwLDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJh''@;'; + put 'put ''ZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS40NywzLjg0YTUuNzgsNS43''@;'; + put 'put ''OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03''@;'; + put 'put ''LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDRBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQz''@;'; + put 'put ''QTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxTDI4LDI3Ljc4QTE0LDE0LDAsMCwwLDE4LDRabTcuNDcsMTcuNDNhMSwxLDAsMCwxLTEuMzMuNDdMMTcsMTguNDRWOS42OWExLDEsMCwwLDEs''@;'; + put 'put ''MiwwdjcuNUwyNSwyMC4xQTEsMSwwLDAsMSwyNS40OSwyMS40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxlLkNsclNoYXBlQ2lyY2xlQXJyb3c9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCww''@;'; + put 'put ''LDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMDgsOC4yNmwtNy42MSw3LjYxYTEsMSwwLDEsMCwxLjQxLDEuNDFMMTcs''@;'; + put 'put ''MTIuMTh2MTVhMSwxLDAsMCwwLDIsMFYxMmw1LjI4LDUuMjhhMSwxLDAsMSwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwy''@;'; + put 'put ''Wm04LDE1LjU3YTEuNDMsMS40MywwLDAsMS0yLDBMMTkuNCwxM1YyNy4xNGExLjQsMS40LDAsMCwxLTIuOCwwdi0xNGwtNC40Myw0LjQzYTEuNCwxLjQsMCwwLDEtMi0yTDE4LjA4LDcuNywyNiwxNS41OUExLjQsMS40LDAsMCwxLDI2LDE3LjU3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMSIvPicpLGUuQ2xyU2hhcGVDaGlsZEFycm93PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC44MiwxNS44YTEsMSwwLDAsMC0xLjQxLDAsMSwxLDAsMCwwLDAsMS40MUwyNy4yLDIxSDlWMy43OGExLDEsMCwxLDAtMiwwVjIxYTIsMiwwLDAsMCwyLDJIMjcuMTVs''@;'; + put 'put ''LTMuNzQsMy43NWExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCwwLDAsLjcxLS4yOUwzMSwyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVDb3B5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS41''@;'; + put 'put ''LDdoLTE5QTEuNSwxLjUsMCwwLDAsOSw4LjV2MjRBMS41LDEuNSwwLDAsMCwxMC41LDM0aDE5QTEuNSwxLjUsMCwwLDAsMzEsMzIuNVY4LjVBMS41LDEuNSwwLDAsMCwyOS41LDdaTTI5LDMySDExVjlIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMuNUExLjUsMS41LDAsMCwwLDI0LjUsMkg1LjVBMS41LDEuNSwwLDAsMCw0LDMuNXYyNEExLjUsMS41LDAsMCwwLDUuNSwyOUg2VjRIMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTI3LDMuNTZBMS41NiwxLjU2LDAsMCwwLDI1LjQzLDJINS41N0ExLjU2LDEuNTYsMCwwLDAsNCwzLjU2VjI4LjQ0QTEuNTYsMS41NiwwLDAsMCw1LjU3LDMwaC41MlY0LjA3SDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgeD0iOCIgeT0iNiIgd2lkdGg9IjIzIiBoZWlnaHQ9IjI4IiByeD0iMS41IiByeT0iMS41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+JyksZS5DbHJTaGFwZUhlbHA9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAs''@;'; + put 'put ''MzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMjksOC45MmE3LjM4LDcuMzgsMCwwLDAtNS43''@;'; + put 'put ''MiwyLjU3LDEsMSwwLDAsMC0uMzIuNzEuOTIuOTIsMCwwLDAsLjk1LjkyLDEuMDgsMS4wOCwwLDAsMCwuNzEtLjI5LDUuNyw1LjcsMCwwLDEsNC4zMy0yYzIuMzYsMCwzLjgzLDEuNTIsMy44MywzLjQxdi4wNWMwLDIuMjEtMS43NiwzLjQ0LTQuNTQsMy42NWEuOC44LDAsMCwwLS43Ni45MnMw''@;'; + put 'put ''LDIuMzIsMCwyLjc1YTEsMSwwLDAsMCwxLC45aC4xMWExLDEsMCwwLDAsLjktMVYxOS40NWMzLS40Miw1LjQzLTIsNS40My01LjI4di0uMDVDMjQuMTgsMTEuMTIsMjEuODQsOC45MiwxOC4yOSw4LjkyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxjaXJjbGUgY3g9IjE3Ljc4IiBjeT0iMjYuMiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC4xOCwxNC4xN3YtLjA1YzAtMy0yLjM0LTUuMi01Ljg4LTUuMmE3LjM4LDcuMzgs''@;'; + put 'put ''MCwwLDAtNS43MiwyLjU3LDEsMSwwLDAsMC0uMzIuNzEuOTIuOTIsMCwwLDAsLjk1LjkyLDEuMDgsMS4wOCwwLDAsMCwuNzEtLjI5LDUuNyw1LjcsMCwwLDEsNC4zMy0yYzIuMzYsMCwzLjgzLDEuNTIsMy44MywzLjQxdi4wNWMwLDIuMjEtMS43NiwzLjQ0LTQuNTQsMy42NWEuOC44LDAsMCww''@;'; + put 'put ''LS43Ni45MnMwLDIuMzIsMCwyLjc1YTEsMSwwLDAsMCwxLC45aC4xMWExLDEsMCwwLDAsLjktMVYxOS40NUMyMS43NSwxOSwyNC4xOCwxNy40NSwyNC4xOCwxNC4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPGNpcmNsZSBjeD0iMTcuNzgiIGN5PSIyNi4yIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MWE3LjQzLDcuNDMsMCwwLDEtMS45MS41OCwx''@;'; + put 'put ''NC4wNSwxNC4wNSwwLDEsMS04LjYtOC42LDcuNDQsNy40NCwwLDAsMSwuNTgtMS45MSwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9''@;'; + put 'put ''IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40OSw3LjQ5LDAsMCwxLTkuOTMtOS45MywxNi4wNiwxNi4wNiww''@;'; + put 'put ''LDEsMCw5LjkzLDkuOTNabS0xNS4zNCwxNWExLjY1LDEuNjUsMCwxLDEsMS42NS0xLjY1QTEuNjUsMS42NSwwLDAsMSwxNy43OCwyNy44NVptMS4zNy04LjA2djEuNzJhMS4zNywxLjM3LDAsMCwxLTEuMywxLjM2aC0uMTFhMS4zNCwxLjM0LDAsMCwxLTEuMzktMS4zYzAtLjQ0LDAtMi43Niww''@;'; + put 'put ''LTIuNzZhMS4xOSwxLjE5LDAsMCwxLDEuMTItMS4zMWMxLjU3LS4xMiw0LjE4LS43LDQuMTgtMy4yNSwwLTEuODMtMS40MS0zLjA3LTMuNDMtMy4wN2E1LjMxLDUuMzEsMCwwLDAtNCwxLjkyLDEuMzYsMS4zNiwwLDAsMS0yLjM1LS45LDEuNDMsMS40MywwLDAsMSwuNDMtMSw3Ljc3LDcuNzcs''@;'; + put 'put ''MCwwLDEsNi0yLjY5YzMuNywwLDYuMjgsMi4zLDYuMjgsNS42QzI0LjU4LDE3LjE2LDIyLjYxLDE5LjIsMTkuMTUsMTkuNzlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2''@;'; + put 'put ''IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptLS4yMiwyNS44NWExLjY1LDEuNjUsMCwx''@;'; + put 'put ''LDEsMS42NS0xLjY1QTEuNjUsMS42NSwwLDAsMSwxNy43OCwyNy44NVptMS4zNy04LjA2djEuNzJhMS4zNywxLjM3LDAsMCwxLTEuMywxLjM2aC0uMTFhMS4zNCwxLjM0LDAsMCwxLTEuMzktMS4zYzAtLjQ0LDAtMi43NiwwLTIuNzZhMS4xOSwxLjE5LDAsMCwxLDEuMTItMS4zMWMxLjU3LS4x''@;'; + put 'put ''Miw0LjE4LS43LDQuMTgtMy4yNSwwLTEuODMtMS40MS0zLjA3LTMuNDMtMy4wN2E1LjMxLDUuMzEsMCwwLDAtNCwxLjkyLDEuMzYsMS4zNiwwLDAsMS0yLjM1LS45LDEuNDMsMS40MywwLDAsMSwuNDMtMSw3Ljc3LDcuNzcsMCwwLDEsNi0yLjY5YzMuNywwLDYuMjgsMi4zLDYuMjgsNS42QzI0''@;'; + put 'put ''LjU4LDE3LjE2LDIyLjYxLDE5LjIsMTkuMTUsMTkuNzlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksZS5DbHJTaGFwZUxvZ2luPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOCw0SDEyYTIsMiwwLDAsMC0yLDJIMjhWMzBIMTJWMjAuMkgxMFYzMGEy''@;'; + put 'put ''LDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjgsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LjEyLDE4LjQ2YTEsMSwwLDEsMCwxLjQxLDEuNDFsNS43OS01Ljc5TDE2LjU0''@;'; + put 'put ''LDguMjlhMSwxLDAsMCwwLTEuNDEsMS40MUwxOC41LDEzSDRhMSwxLDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwxSDE4LjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw0SDEyYTIsMiwwLDAsMC0yLDJ2N2g4''@;'; + put 'put ''LjVMMTUuMTIsOS43MWExLDEsMCwwLDEsMS40MS0xLjQxbDUuNzksNS43OS01Ljc5LDUuNzlhMSwxLDAsMCwxLTEuNDEtMS40MUwxOC41LDE1SDEwVjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwyOCw0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMCwxM0g0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlTG9nb3V0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9''@;'; + put 'put ''Ik03LDZIMjN2OS44aDJWNmEyLDIsMCwwLDAtMi0ySDdBMiwyLDAsMCwwLDUsNlYzMGEyLDIsMCwwLDAsMiwySDIzYTIsMiwwLDAsMCwyLTJIN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMTYsMTcuMjhh''@;'; + put 'put ''MSwxLDAsMCwwLTEuNDEsMS40MUwzMC4xMywyMkgxNS42M2ExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoMTQuNWwtMy4zOCwzLjQ2YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjMuMDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTIzLDRIN0EyLDIsMCwwLDAsNSw2VjMwYTIsMiwwLDAsMCwyLDJIMjNhMiwyLDAsMCwwLDItMlYyNEgxNS42M2ExLDEsMCwwLDEtMS0xLDEsMSwwLDAsMSwxLTFIMjVWNkEyLDIsMCwwLDAsMjMsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4xNiwxNy4yOGExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjEzLDIySDI1djJoNS4xM2wtMy4zOCwzLjQ2YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjMuMDdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+JyksZS5D''@;'; + put 'put ''bHJTaGFwZVByaW50ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDlIMjdWNUg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDYuOTJWMjIuMDlINVYxM2EyLDIsMCwwLDEsMi0ySDI5YTIsMiwwLDAsMSwyLDJ2OUgyOS4wOFYyNEgzM1YxM0E0LDQsMCwwLDAsMjksOVpNMjUsOUgxMVY3''@;'; + put 'put ''SDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxOEg4YTEsMSwwLDAsMCwwLDJIOVYzMkgyN1YyMGgxYTEsMSwwLDAsMCwwLTJaTTI1LDMwSDExVjIwSDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxMy4wNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxOEg4YTEsMSwwLDAsMCww''@;'; + put 'put ''LDJIOVYzMkgyN1YyMGgxYTEsMSwwLDAsMCwwLTJaTTI1LDMwSDExVjIwSDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzEgMTUuNCAzMSAyMi4wOSAyOS4wOCAy''@;'; + put 'put ''Mi4wOSAyOS4wOCAyNCAzMyAyNCAzMyAxNS40IDMxIDE1LjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxM2EyLDIsMCwwLDEsMi0ySDE4LjY0QTMuNjUsMy42NSwwLDAsMSwx''@;'; + put 'put ''OSw5Ljg5TDE5LjU0LDlIMTFWN2g5LjcxbDEuMTMtMkg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDYuOTJWMjIuMDlINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4x''@;'; + put 'put ''NCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE4SDhhMSwxLDAsMCwwLDAsMkg5VjMySDI3VjIwaDFhMSwxLDAsMCwwLDAtMlpNMjUsMzBIMTFWMjBIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxMy4wNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTIuODhhNy40NSw3LjQ1LDAs''@;'; + put 'put ''MCwxLTIsLjU1djguNjZIMjkuMDhWMjRIMzNWMTNDMzMsMTMsMzMsMTIuOTMsMzMsMTIuODhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEzYTIsMiwwLDAsMSwyLTJIMjQuNDJh''@;'; + put 'put ''Ny41LDcuNSwwLDAsMS0xLjI3LTJIMTFWN0gyMi41N2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41NCw3LjU0LDAsMCwxLC4wNy0xSDlWOUg3YTQsNCwwLDAsMC00LDRWMjRINi45MlYyMi4wOUg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0t''@;'; + put 'put ''YmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LDlIMjdWNUg5VjlIN2E0''@;'; + put 'put ''LDQsMCwwLDAtNCw0VjI0SDl2OEgyN1YyNGg2VjEzQTQsNCwwLDAsMCwyOSw5Wk0yNSwyNHY2SDExVjE5SDI1Wk0yNSw5SDExVjdIMjVabTQsNkgyN1YxM2gyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1''@;'; + put 'put ''LjRBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMTkuNTQsOUgxMVY3aDkuNzFsMS4xMy0ySDlWOUg3YTQsNCwwLDAsMC00LDRWMjRIOXY4SDI3VjI0aDZWMTUuNFpNMjUsMjR2NkgxMVYxOUgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0''@;'; + put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMywxMi44OGE3LjMsNy4zLDAsMCwxLTQsLjU1VjE1SDI3VjEzaC4zMmE3LjUyLDcuNTIsMCwwLDEtNC4xOC00SDExVjdIMjIuNTdhNy41Miw3LjUyLDAsMCwx''@;'; + put 'put ''LS4wNy0xLDcuNTQsNy41NCwwLDAsMSwuMDctMUg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDl2OEgyN1YyNGg2VjEzQzMzLDEzLDMzLDEyLjkzLDMzLDEyLjg4Wk0yNSwyNHY2SDExVjE5SDI1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxlLkNsclNoYXBlV29ybGQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LjU0''@;'; + put 'put ''LDE4YTE5LjM4LDE5LjM4LDAsMCwwLS40My00aDMuNmExMi4zLDEyLjMsMCwwLDAtLjY3LTEuNkgyNS42OUExOS43MiwxOS43MiwwLDAsMCwyMi44LDYuNTNhMTIuMywxMi4zLDAsMCwwLTIuNTUtLjc2LDE3LjgzLDE3LjgzLDAsMCwxLDMuODksNi41OUgxOC43NVY1LjZjLS4yNSwwLS41MSww''@;'; + put 'put ''LS43Nywwcy0uNDksMC0uNzMsMHY2Ljc3SDExLjg2YTE3LjgzLDE3LjgzLDAsMCwxLDMuOS02LjYsMTIuMjgsMTIuMjgsMCwwLDAtMi41NC43NSwxOS43MiwxOS43MiwwLDAsMC0yLjkxLDUuODVINi45NEExMi4zLDEyLjMsMCwwLDAsNi4yNiwxNEg5Ljg5YTE5LjM4LDE5LjM4LDAsMCwwLS40''@;'; + put 'put ''Myw0LDE5LjY3LDE5LjY3LDAsMCwwLC41LDQuMzdINi40MkExMi4zNCwxMi4zNCwwLDAsMCw3LjE2LDI0aDMuMjNhMTkuMzIsMTkuMzIsMCwwLDAsMi42OSw1LjM2LDEyLjI4LDEyLjI4LDAsMCwwLDIuNjEuNzlBMTcuOTEsMTcuOTEsMCwwLDEsMTIsMjRoNS4yNnY2LjM0Yy4yNCwwLC40OSww''@;'; + put 'put ''LC43Mywwcy41MSwwLC43NywwVjI0SDI0YTE3LjksMTcuOSwwLDAsMS0zLjcsNi4xNSwxMi4yOCwxMi4yOCwwLDAsMCwyLjYyLS44MUExOS4zMiwxOS4zMiwwLDAsMCwyNS42MSwyNGgzLjJhMTIuMzQsMTIuMzQsMCwwLDAsLjc0LTEuNkgyNkExOS42NywxOS42NywwLDAsMCwyNi41NCwxOFpt''@;'; + put 'put ''LTkuMjksNC4zN0gxMS41MWExNy42OSwxNy42OSwwLDAsMS0uMDktOC40aDUuODNabTcuMjQsMEgxOC43NVYxNGg1LjgzQTE4LjIxLDE4LjIxLDAsMCwxLDI1LDE4LDE4LjEyLDE4LjEyLDAsMCwxLDI0LjQ5LDIyLjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDQsNy40NCwwLDAsMS0xLjkxLjU4LDE0LjA1LDE0LjA1LDAsMSwxLTguNi04LjYsNy40Myw3LjQzLDAsMCwxLC41OC0xLjkxLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLjI1LDUuNzdhMTcuODMsMTcuODMsMCwwLDEsMy44OSw2LjU5SDE4Ljc1VjUuNmMtLjI1LDAtLjUxLDAtLjc3LDBzLS40OSwwLS43MywwdjYuNzdIMTEuODZhMTcuODMsMTcuODMsMCwwLDEsMy45''@;'; + put 'put ''LTYuNiwxMi4yOCwxMi4yOCwwLDAsMC0yLjU0Ljc1LDE5LjcyLDE5LjcyLDAsMCwwLTIuOTEsNS44NUg2Ljk0QTEyLjMsMTIuMywwLDAsMCw2LjI2LDE0SDkuODlhMTkuMzgsMTkuMzgsMCwwLDAtLjQzLDQsMTkuNjcsMTkuNjcsMCwwLDAsLjUsNC4zN0g2LjQyQTEyLjM0LDEyLjM0LDAsMCww''@;'; + put 'put ''LDcuMTYsMjRoMy4yM2ExOS4zMiwxOS4zMiwwLDAsMCwyLjY5LDUuMzYsMTIuMjgsMTIuMjgsMCwwLDAsMi42MS43OUExNy45MSwxNy45MSwwLDAsMSwxMiwyNGg1LjI2djYuMzRjLjI0LDAsLjQ5LDAsLjczLDBzLjUxLDAsLjc3LDBWMjRIMjRhMTcuOSwxNy45LDAsMCwxLTMuNyw2LjE1LDEy''@;'; + put 'put ''LjI4LDEyLjI4LDAsMCwwLDIuNjItLjgxQTE5LjMyLDE5LjMyLDAsMCwwLDI1LjYxLDI0aDMuMmExMi4zNCwxMi4zNCwwLDAsMCwuNzQtMS42SDI2YTE5LjY3LDE5LjY3LDAsMCwwLC41LTQuMzcsMTkuMzgsMTkuMzgsMCwwLDAtLjQzLTRoMy42Yy0uMDYtLjE3LS4xMi0uMzMtLjE5LS40OWE3''@;'; + put 'put ''LjQ1LDcuNDUsMCwwLDEtMy40Ny0xLjExaC0uMzZjMC0uMTEtLjA4LS4yMS0uMTEtLjMyYTcuNDgsNy40OCwwLDAsMS0zLjA2LTUuNjJBMTIuNDEsMTIuNDEsMCwwLDAsMjAuMjUsNS43N1ptLTMsMTYuNTlIMTEuNTFhMTcuNjksMTcuNjksMCwwLDEtLjA5LTguNGg1LjgzWk0yNSwxOGExOC4x''@;'; + put 'put ''MiwxOC4xMiwwLDAsMS0uNTUsNC4zN0gxOC43NVYxNGg1LjgzQTE4LjIxLDE4LjIxLDAsMCwxLDI1LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjA1LDE4YTIwLjQ2LDIwLjQ2LDAsMCwwLC42Miw0LjkzaDYuNDhWMTMuNDVIMTAuNThBMjAuNTUsMjAuNTUsMCww''@;'; + put 'put ''LDAsMTAuMDUsMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguODUsMTMuNDV2OS40OGg2LjQ4QTIwLjQ2LDIwLjQ2LDAsMCwwLDI2LDE4YTIwLjU1LDIwLjU1LDAsMCwwLS41Mi00LjU1WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMzAuMjIsMjQuNzFIMjYuNmEyMS44LDIxLjgsMCwwLDEtMyw2LDEzLjg2LDEzLjg2LDAsMCwxLTMsLjkyLDIwLjIxLDIwLjIx''@;'; + put 'put ''LDAsMCwwLDQuMTgtNi45NEgxOC44NnY3LjE1Yy0uMjksMC0uNTcsMC0uODYsMHMtLjU1LDAtLjgzLDBWMjQuNzFIMTEuMjJhMjAuMjEsMjAuMjEsMCwwLDAsNC4xOCw2Ljk1LDEzLjg2LDEzLjg2LDAsMCwxLTIuOTQtLjksMjEuOCwyMS44LDAsMCwxLTMtNi4wNUg1Ljc4YTEzLjk0LDEzLjk0''@;'; + put 'put ''LDAsMCwxLS44My0xLjgxaDRBMjIuMiwyMi4yLDAsMCwxLDguMzcsMThhMjEuODgsMjEuODgsMCwwLDEsLjQ4LTQuNTVINC43NmExMy44OCwxMy44OCwwLDAsMSwuNzYtMS44MUg5LjMzQTIyLjI2LDIyLjI2LDAsMCwxLDEyLjYxLDVhMTMuODYsMTMuODYsMCwwLDEsMi44Ny0uODQsMjAuMTMs''@;'; + put 'put ''MjAuMTMsMCwwLDAtNC40LDcuNDVoNi4wOVY0Yy4yOCwwLC41NSwwLC44Mywwcy41OCwwLC44NiwwdjcuNjRoNi4wOWEyMC4xMywyMC4xMywwLDAsMC00LjM5LTcuNDRBMTMuODksMTMuODksMCwwLDEsMjMuNDMsNWEyMi4yNiwyMi4yNiwwLDAsMSwzLjI3LDYuNTloMy43N2ExMy44OSwxMy44''@;'; + put 'put ''OSwwLDAsMSwuNzYsMS44MUgyNy4xN0EyMS44OCwyMS44OCwwLDAsMSwyNy42NiwxOGEyMi4yLDIyLjIsMCwwLDEtLjU3LDQuOTNoNEExMy45NCwxMy45NCwwLDAsMSwzMC4yMiwyNC43MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0xMC4wNSwxOGEyMC40NiwyMC40NiwwLDAsMCwuNjIsNC45M2g2LjQ4VjEzLjQ1SDEwLjU4QTIwLjU1LDIwLjU1LDAsMCwwLDEwLjA1LDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0xOC44NSwyMi45NGg2LjQ4QTIwLjQ2LDIwLjQ2LDAsMCwwLDI2LDE4YTIwLjU1LDIwLjU1LDAsMCwwLS41Mi00LjU1SDE4Ljg1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4x''@;'; + put 'put ''MiwxMi44MWE3LjQ0LDcuNDQsMCwwLDEtMS45LjU4djBIMzFhNi43Nyw2Ljc3LDAsMCwxLTIuMDcsMGgtMS44QTIxLjg4LDIxLjg4LDAsMCwxLDI3LjY2LDE4YTIyLjIsMjIuMiwwLDAsMS0uNTcsNC45M2g0YTEzLjk0LDEzLjk0LDAsMCwxLS44MywxLjgxSDI2LjZhMjEuOCwyMS44LDAsMCwx''@;'; + put 'put ''LTMsNiwxMy44NiwxMy44NiwwLDAsMS0zLC45MiwyMC4yMSwyMC4yMSwwLDAsMCw0LjE4LTYuOTRIMTguODZ2Ny4xNWMtLjI5LDAtLjU3LDAtLjg2LDBzLS41NSwwLS44MywwVjI0LjcxSDExLjIyYTIwLjIxLDIwLjIxLDAsMCwwLDQuMTgsNi45NSwxMy44NiwxMy44NiwwLDAsMS0yLjk0LS45''@;'; + put 'put ''LDIxLjgsMjEuOCwwLDAsMS0zLTYuMDVINS43OGExMy45NCwxMy45NCwwLDAsMS0uODMtMS44MWg0QTIyLjIsMjIuMiwwLDAsMSw4LjM3LDE4YTIxLjg4LDIxLjg4LDAsMCwxLC40OC00LjU1SDQuNzZhMTMuODgsMTMuODgsMCwwLDEsLjc2LTEuODFIOS4zM0EyMi4yNiwyMi4yNiwwLDAsMSwx''@;'; + put 'put ''Mi42MSw1YTEzLjg2LDEzLjg2LDAsMCwxLDIuODctLjg0LDIwLjEzLDIwLjEzLDAsMCwwLTQuNCw3LjQ1aDYuMDlWNGMuMjgsMCwuNTUsMCwuODMsMHMuNTgsMCwuODYsMHY3LjY0aDYuMDlsMC0uMTNhNy40Nyw3LjQ3LDAsMCwxLTIuMzYtNC43NiwyMC4zNywyMC4zNywwLDAsMC0yLTIuNTUs''@;'; + put 'put ''MTQuMjMsMTQuMjMsMCwwLDEsMi4wNi41Niw3LjQ0LDcuNDQsMCwwLDEsLjU3LTEuODYsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMw''@;'; + put 'put ''IiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxlLkNsclNoYXBlU2xpZGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMiwxMi4zN0E0LDQsMCwwLDAsOSw4LjQ4VjVBMSwxLDAs''@;'; + put 'put ''MSwwLDcsNVY4LjQ4YTQsNCwwLDAsMCwwLDcuNzhWMzFhMSwxLDAsMSwwLDIsMFYxNi4yNkE0LDQsMCwwLDAsMTIsMTIuMzdabS00LDJhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsOCwxNC40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0zMiwxNS44M2E0LDQsMCwwLDAtMy0zLjg5VjVhMSwxLDAsMSwwLTIsMHY2Ljk0YTQsNCwwLDAsMCwwLDcuNzhWMzFhMSwxLDAsMSwwLDIsMFYxOS43MkE0LDQsMCwwLDAsMzIsMTUuODNabS00LDJhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMjgsMTcuODdaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDI0LjVhNCw0LDAsMCwwLTMtMy44OVY1YTEsMSwwLDEsMC0yLDBWMjAuNjFhNCw0LDAsMCwwLDAsNy43OFYzMWExLDEsMCwxLDAsMiwwVjI4LjM5QTQsNCwwLDAsMCwyMiwy''@;'; + put 'put ''NC41Wm0tNCwyYTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDI2LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LDkuMjlWNUExLDEsMCwxLDAsNyw1VjkuM2EzLjIyLDMuMjIsMCwwLDAsMCw2LjExVjMx''@;'; + put 'put ''YTEsMSwwLDEsMCwyLDBWMTUuNDNBMy4yMiwzLjIyLDAsMCwwLDksOS4yOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwyMS40NVY1YTEsMSwwLDEsMC0yLDBWMjEuNDdhMy4yMiwzLjIyLDAsMCwwLDAsNi4xMVYz''@;'; + put 'put ''MWExLDEsMCwxLDAsMiwwVjI3LjZhMy4yMiwzLjIyLDAsMCwwLDAtNi4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOSwxMi43NVY1YTEsMSwwLDEsMC0yLDB2Ny43NmEzLjIyLDMuMjIsMCwwLDAsMCw2LjExVjMx''@;'; + put 'put ''YTEsMSwwLDEsMCwyLDBWMTguODlhMy4yMiwzLjIyLDAsMCwwLDAtNi4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxlLkNsclNoYXBlQ2xpcGJvYXJkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS4yOSw1SDI3VjdoMlYzMkg3VjdIOVY1SDdB''@;'; + put 'put ''MS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVY2LjY5QTEuNywxLjcsMCwwLDAsMjkuMjksNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTI2LDcuMzNBMi4zNCwyLjM0LDAsMCwwLDIzLjY3LDVIMjEuODdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMUgyNlpNMjQsOUgxMlY3LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDMuNjdh''@;'; + put 'put ''LjMzLjMzLDAsMCwxLC4zMy4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE0IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyMiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjI2IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIx''@;'; + put 'put ''MSIgeT0iMTQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjIiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMTMsOUgxMlY3LjMzQS4zMy4zMywwLDAs''@;'; + put 'put ''MSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMUgyNC40MkE3LjUsNy41LDAsMCwxLDIzLjEzLDlaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjUyLDcuNTIsMCwwLDEtMS0uMDdWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43LDEuNyww''@;'; + put 'put ''LDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIg''@;'; + put 'put ''Y3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMjksNUgyMi4xN2E0LjQ1LDQuNDUsMCwwLDAtNC4xMS0zQTQuNDYsNC40NiwwLDAsMCwx''@;'; + put 'put ''NCw1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVY2LjY5QTEuNywxLjcsMCwwLDAsMjkuMjksNVptLTE4LDNhMSwxLDAsMCwxLDEtMWgzLjQ0VjYuMzFhMi4zMSwyLjMxLDAsMSwxLDQuNjMs''@;'; + put 'put ''MFY3aDMuNDRhMSwxLDAsMCwxLDEsMXYySDExLjMxWk0yNSwyOEgxMVYyNkgyNVptMC00SDExVjIySDI1Wm0wLTRIMTFWMThIMjVabTAtNEgxMVYxNEgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3''@;'; + put 'put ''LjQ5LDcuNDksMCwwLDEsMjMuNjYsMTBIMTEuMzFWOGExLDEsMCwwLDEsMS0xaDMuNDRWNi4zMWEyLjMxLDIuMzEsMCwxLDEsNC42MywwVjdoMi4xOWE3LjU0LDcuNTQsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xaC0uNGE0LjQ1LDQuNDUsMCwwLDAtNC4xMS0zQTQuNDYsNC40''@;'; + put 'put ''NiwwLDAsMCwxNCw1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVpNMjUsMjhIMTFWMjZIMjVabTAtNEgxMVYyMkgyNVptMC00SDExVjE4''@;'; + put 'put ''SDI1Wm0wLTRIMTFWMTRIMjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''Mi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVGaXJld2FsbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTQsOEgzMnY1LjA4SDIzLjh2''@;'; + put 'put ''LTRIMjJ2NEgxNHYtNEgxMnY0SDRabTAsN0gzMnY2LjA4SDI4LjkyVjE2LjI3SDI3djQuODFIMTguOTJWMTYuMjdIMTd2NC44MUg4LjlWMTYuMjdIN3Y0LjgxSDRaTTIzLjgsMjhWMjQuMjdIMjIuMlYyOEgxNFYyNC4yN2gtMS42VjI4SDRWMjNIMzJ2NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJ2NS42OEgyOC45MlYxNi4yN0gyN3Y0LjgxSDE4LjkyVjE2LjI3SDE3djQuODFIOC45VjE2LjI3SDd2NC44MUg0VjE1SDIwLjU4YTMuNTgsMy41OCwwLDAsMS0xLjc2LTEuOTJIMTR2''@;'; + put 'put ''LTRIMTJ2NEg0VjhIMjAuMTRsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTIzLjgsMjhWMjQuMjdIMjIuMlYyOEgxNFYyNC4yN2gtMS42VjI4SDRWMjNIMzJ2NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwx''@;'; + put 'put ''LjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40Nyw3LjQ3LDAsMCwxLTIuNDUtLjQySDIzLjhWMTAuMjJhNy41LDcuNSwwLDAsMS0u''@;'; + put 'put ''NjMtMS4xNEgyMnY0SDE0di00SDEydjRINFY4SDIyLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk00LDE1SDMydjYuMDhIMjguOTJWMTYuMjdIMjd2''@;'; + put 'put ''NC44MUgxOC45MlYxNi4yN0gxN3Y0LjgxSDguOVYxNi4yN0g3djQuODFINFpNMjMuOCwyOFYyNC4yN0gyMi4yVjI4SDE0VjI0LjI3aC0xLjZWMjhINFYyM0gzMnY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAs''@;'; + put 'put ''MCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0xNCwyOEgxMlYyNGgyWm0xMCwwSDIyVjI0aDJabTgtNkg0VjIwSDdWMTZIOXY0aDhWMTZoMnY0aDhWMTZoMnY0aDNabTAtOEg0VjEyaDhWOGgydjRoOFY4aDJ2NGg4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOS4zNSwxNEg0VjEyaDhWOGgydjRoNC41N0EzLjY3LDMuNjcsMCwwLDEsMTksOS44OUwyMS4yOSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMy''@;'; + put 'put ''YTIsMiwwLDAsMCwyLTJWMTUuMzhaTTE0LDI4SDEyVjI0aDJabTEwLDBIMjJWMjRoMlptOC02SDRWMjBIN1YxNkg5djRoOFYxNmgydjRoOFYxNmgydjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNCwxMC40OVYxMmgxLjUxQTcuNTMsNy41MywwLDAsMSwyNCwxMC40OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjE0SDRWMTJoOFY4aDJ2NGg4VjhoLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMlpNMTQsMjhIMTJWMjRo''@;'; + put 'put ''MlptMTAsMEgyMlYyNGgyWm04LTZINFYyMEg3VjE2SDl2NGg4VjE2aDJ2NGg4VjE2aDJ2NGgzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBlTGlzdD0oMCxhLmNsckljb25TVkcpKCc8cmVjdCB4PSIxNSIgeT0iOCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTIiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE2IiB3aWR0aD0iOSIgaGVp''@;'; + put 'put ''Z2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyMCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCB4PSIxNSIgeT0iMjQiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxNiIgd2lkdGg9IjIi''@;'; + put 'put ''IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHJlY3QgeD0iMTEiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCww''@;'; + put 'put ''LDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJabTAsMzBIOFY0SDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjEyIiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTYiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IHg9IjE1IiB5PSIyMCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI0IiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2Vk''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTYiIHdpZHRoPSIyIiBo''@;'; + put 'put ''ZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtOC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUs''@;'; + put 'put ''OHYyaDguNjZhNy40NSw3LjQ1LDAsMCwxLS44OS0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMkg4VjRIMjIuNzhhNy40NSw3LjQ1LDAsMCwxLC44OC0ySDhB''@;'; + put 'put ''MiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjgsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBj''@;'; + put 'put ''eD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiww''@;'; + put 'put ''LDAsMCwyLTJWNEEyLDIsMCwwLDAsMjgsMlpNMTMsMjZIMTFWMjRoMlptMC00SDExVjIwaDJabTAtNEgxMVYxNmgyWm0wLTRIMTFWMTJoMlptMC00SDExVjhoMlpNMjUsMjZIMTVWMjRIMjVabTAtNEgxNVYyMEgyNVptMC00SDE1VjE2SDI1Wm0wLTRIMTVWMTJIMjVabTAtNEgxNVY4SDI1WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy42NiwxMEgxNVY4aDcuNzhhNy40Miw3LjQyLDAsMCwxLC44OS02SDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5''@;'; + put 'put ''LDcuNDksMCwwLDEsMjMuNjYsMTBaTTEzLDI2SDExVjI0aDJabTAtNEgxMVYyMGgyWm0wLTRIMTFWMTZoMlptMC00SDExVjEyaDJabTAtNEgxMVY4aDJaTTI1LDI2SDE1VjI0SDI1Wm0wLTRIMTVWMjBIMjVabTAtNEgxNVYxNkgyNVptMC00SDE1VjEySDI1WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBl''@;'; + put 'put ''UmVkbz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQsNC4yMmExLDEsMCwwLDAtMS40MSwxLjQybDUuNTYsNS40OWgtMTNBMTEsMTEsMCwwLDAsMTAuMDcsMzIsMSwxLDAsMCwwLDExLDMwLjE4YTksOSwwLDAsMS01LTgsOS4wOCw5LjA4LDAsMCwxLDkuMTMtOWgxM2wtNS41NCw1LjQ4''@;'; + put 'put ''QTEsMSwwLDAsMCwyNCwyMGw4LTcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlVW5kbz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjAuODcsMTEuMTRoLTEzbDUuNTYtNS40OUExLDEsMCwwLDAsMTIsNC4yMkw0LDEy''@;'; + put 'put ''LjEzLDEyLDIwYTEsMSwwLDAsMCwxLjQxLTEuNDJMNy44NiwxMy4xNGgxM2E5LjA4LDkuMDgsMCwwLDEsOS4xMyw5LDksOSwwLDAsMS01LDhBMSwxLDAsMCwwLDI1LjkzLDMyYTExLDExLDAsMCwwLTUuMDYtMjAuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgLz4nKSxlLkNsclNoYXBlU2Nyb2xsPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCwxMS4xMlY2LjU4YTQuNSw0LjUsMCwwLDAtNC41LTQuNWgtMTZBNC41LDQuNSwwLDAsMCw5LDYuNTh2MjNhMi41LDIuNSwwLDEsMS01LDBWMjZINy4xOVYyNEgydjUuNUE0LjUsNC41LDAsMCww''@;'; + put 'put ''LDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTMuMTNoLTJWMjkuNTRhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0Wm0tNC41LTdBMi41LDIuNSwwLDAsMSwzMiw2LjU4VjkuMTJI''@;'; + put 'put ''MThWNi41OGE0LjQ4LDQuNDgsMCwwLDAtLjc2LTIuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjA4LDE1LjRWMjkuNTRhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwu''@;'; + put 'put ''NzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDIuNjFBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsLjQ0LS43NkgxOFY2LjU4YTQuNDgsNC40OCwwLDAsMC0uNzYtMi41SDIyLjRsMS4xNS0ySDEzLjVBNC41LDQuNSwwLDAsMCw5LDYuNTh2MjNhMi41LDIuNSwwLDEsMS01LDBWMjZI''@;'; + put 'put ''Ny4xOVYyNEgydjUuNUE0LjUsNC41LDAsMCwwLDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu''@;'; + put 'put ''MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTEuOTItLjI2djE2LjNhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDguNTRh''@;'; + put 'put ''Ny41LDcuNSwwLDAsMS0xLjM1LTJIMThWNi41OGE0LjQ4LDQuNDgsMCwwLDAtLjc2LTIuNWg1LjUyYTcuNDQsNy40NCwwLDAsMSwuODYtMkgxMy41QTQuNSw0LjUsMCwwLDAsOSw2LjU4djIzYTIuNSwyLjUsMCwxLDEtNSwwVjI2SDcuMTlWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRI''@;'; + put 'put ''MjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41di0xNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwxMS4xMlY2LjU4YTQuNSw0LjUsMCwwLDAtNC41LTQuNWgtMTZBNC41LDQuNSwwLDAsMCw5LDYuNThWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUu''@;'; + put 'put ''NThhNC41LDQuNSwwLDAsMCw0LjUtNC41VjEzLjEzaC0yVjI5LjU0YTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjguMDgsMTUuNFYyOS41NGEyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSwwdjQuNTRoMi42MUEzLjY2LDMuNjYsMCwwLDEsMTksOS44OWw0LjUxLTcuOEgxMy41QTQuNSw0''@;'; + put 'put ''LjUsMCwwLDAsOSw2LjU4VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNVYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; + put 'put ''Ni44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTEuOTItLjI2djE2LjNhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDgu''@;'; + put 'put ''NTRhNy40Niw3LjQ2LDAsMCwxLS45Mi05SDEzLjVBNC41LDQuNSwwLDAsMCw5LDYuNThWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41di0xNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFk''@;'; + put 'put ''Z2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksZS5DbHJTaGFwZUZpbGVTZXR0aW5ncz0oMCxhLmNsckljb25TVkcpKCc8''@;'; + put 'put ''cGF0aCBkPSJNMzMuODMsMjMuNDNhMS4xNiwxLjE2LDAsMCwwLS43MS0xLjEybC0xLjY4LS41Yy0uMDktLjI0LS4xOC0uNDgtLjI5LS43MWwuNzgtMS40NGExLjE2LDEuMTYsMCwwLDAtLjIxLTEuMzdsLTEuNDItMS40MWExLjE2LDEuMTYsMCwwLDAtMS4zNy0uMmwtMS40NS43NmE3Ljg0LDcu''@;'; + put 'put ''ODQsMCwwLDAtLjc2LS4zMmwtLjQ4LTEuNThhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjc3aC0yYTEuMTYsMS4xNiwwLDAsMC0xLjExLjgybC0uNDcsMS41NGE3Ljc2LDcuNzYsMCwwLDAtLjc3LjMybC0xLjQyLS43NmExLjE2LDEuMTYsMCwwLDAtMS4zNi4ybC0xLjQ1LDEuNGExLjE2LDEuMTYs''@;'; + put 'put ''MCwwLDAtLjIxLDEuMzhMMTcuMDgsMjFhNy42NCw3LjY0LDAsMCwwLS4zMS43NGwtMS41OC40N2ExLjE1LDEuMTUsMCwwLDAtLjgzLDEuMTF2MmExLjE1LDEuMTUsMCwwLDAsLjgzLDEuMWwxLjU5LjQ3YTcuNTMsNy41MywwLDAsMCwuMzEuNzJsLS43OCwxLjQ2YTEuMTYsMS4xNiwwLDAsMCwu''@;'; + put 'put ''MjEsMS4zN2wxLjQyLDEuNGExLjE2LDEuMTYsMCwwLDAsMS4zNy4yMWwxLjQ4LS43OGMuMjMuMTEuNDcuMi43Mi4yOUwyMiwzMy4xOGExLjE2LDEuMTYsMCwwLDAsMS4xMS44MWgyYTEuMTYsMS4xNiwwLDAsMCwxLjExLS44MmwuNDctMS41OGMuMjQtLjA4LjQ3LS4xOC43LS4yOWwxLjUuNzlh''@;'; + put 'put ''MS4xNiwxLjE2LDAsMCwwLDEuMzYtLjJsMS40Mi0xLjRhMS4xNiwxLjE2LDAsMCwwLC4yMS0xLjM4bC0uNzktMS40NXEuMTYtLjM0LjI5LS42OUwzMywyNi41YTEuMTUsMS4xNSwwLDAsMCwuODMtMS4xMVptLTEuNiwxLjYzLTIuMTEuNjItLjEyLjQyYTYsNiwwLDAsMS0uNSwxLjE5bC0uMjEu''@;'; + put 'put ''MzgsMSwxLjkxLTEsMS0yLTEtLjM3LjJhNi4yMSw2LjIxLDAsMCwxLTEuMi40OWwtLjQyLjEyLS42MywyLjA5SDIzLjQybC0uNjMtMi4wOC0uNDItLjEyYTYuMjMsNi4yMywwLDAsMS0xLjIxLS40OWwtLjM3LS4yLTEuOTQsMS0xLTEsMS0xLjk0LS4yMi0uMzhBNiw2LDAsMCwxLDE4LjE3LDI2''@;'; + put 'put ''TDE4LDI1LjYzLDE2LDI1VjIzLjY5TDE4LDIzLjA4bC4xMy0uNDFhNS45NCw1Ljk0LDAsMCwxLC41My0xLjIzTDE4LjksMjFsLTEtMS44NSwxLS45NCwxLjg5LDEsLjM4LS4yMWE2LjIzLDYuMjMsMCwwLDEsMS4yNi0uNTJsLjQxLS4xMi42My0yaDEuMzhsLjYyLDIsLjQxLjEyQTYuMjEsNi4y''@;'; + put 'put ''MSwwLDAsMSwyNy4xLDE5bC4zOC4yMSwxLjkyLTEsMSwxLTEsMS44OS4yMS4zOGE2LjA4LDYuMDgsMCwwLDEsLjUsMS4yMWwuMTIuNDIsMi4wNi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjEyLDIw''@;'; + put 'put ''LjM1YTQsNCwwLDEsMCw0LjA4LDRBNC4wNiw0LjA2LDAsMCwwLDI0LjEyLDIwLjM1Wm0wLDYuNDZhMi40MywyLjQzLDAsMSwxLDIuNDgtMi40M0EyLjQ2LDIuNDYsMCwwLDEsMjQuMTIsMjYuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0xNC40OSwzMUg2VjVIMjZ2Ny44OWEzLjIsMy4yLDAsMCwxLDIsMS43MlY1YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTYuMjNsLTEuMS0xLjA4QTMuMTEsMy4xMSwwLDAsMSwxNC40OSwzMVoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjEyLDIwLjM1YTQsNCwwLDEsMCw0LjA4LDRBNC4wNiw0LjA2LDAsMCwwLDI0LjEyLDIwLjM1Wm0wLDYuNDZhMi40MywyLjQzLDAsMSwxLDIuNDgtMi40M0EyLjQ2LDIuNDYsMCwwLDEsMjQu''@;'; + put 'put ''MTIsMjYuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy40M2ExLjE2LDEuMTYsMCwwLDAtLjcxLTEuMTJsLTEuNjgtLjVjLS4wOS0uMjQtLjE4LS40OC0uMjkt''@;'; + put 'put ''LjcxbC43OC0xLjQ0YTEuMTYsMS4xNiwwLDAsMC0uMjEtMS4zN2wtMS40Mi0xLjQxYTEuMTYsMS4xNiwwLDAsMC0xLjM3LS4ybC0xLjQ1Ljc2YTcuODQsNy44NCwwLDAsMC0uNzYtLjMybC0uNDgtMS41OGExLjE1LDEuMTUsMCwwLDAtMS4xMS0uNzdoLTJhMS4xNiwxLjE2LDAsMCwwLTEuMTEu''@;'; + put 'put ''ODJsLS40NywxLjU0YTcuNzYsNy43NiwwLDAsMC0uNzcuMzJsLTEuNDItLjc2YTEuMTYsMS4xNiwwLDAsMC0xLjM2LjJsLTEuNDUsMS40YTEuMTYsMS4xNiwwLDAsMC0uMjEsMS4zOEwxNy4wOCwyMWE3LjY0LDcuNjQsMCwwLDAtLjMxLjc0bC0xLjU4LjQ3YTEuMTUsMS4xNSwwLDAsMC0uODMs''@;'; + put 'put ''MS4xMXYyYTEuMTUsMS4xNSwwLDAsMCwuODMsMS4xbDEuNTkuNDdhNy41Myw3LjUzLDAsMCwwLC4zMS43MmwtLjc4LDEuNDZhMS4xNiwxLjE2LDAsMCwwLC4yMSwxLjM3bDEuNDIsMS40YTEuMTYsMS4xNiwwLDAsMCwxLjM3LjIxbDEuNDgtLjc4Yy4yMy4xMS40Ny4yLjcyLjI5TDIyLDMzLjE4''@;'; + put 'put ''YTEuMTYsMS4xNiwwLDAsMCwxLjExLjgxaDJhMS4xNiwxLjE2LDAsMCwwLDEuMTEtLjgybC40Ny0xLjU4Yy4yNC0uMDguNDctLjE4LjctLjI5bDEuNS43OWExLjE2LDEuMTYsMCwwLDAsMS4zNi0uMmwxLjQyLTEuNGExLjE2LDEuMTYsMCwwLDAsLjIxLTEuMzhsLS43OS0xLjQ1cS4xNi0uMzQu''@;'; + put 'put ''MjktLjY5TDMzLDI2LjVhMS4xNSwxLjE1LDAsMCwwLC44My0xLjExWm0tMS42LDEuNjMtMi4xMS42Mi0uMTIuNDJhNiw2LDAsMCwxLS41LDEuMTlsLS4yMS4zOCwxLDEuOTEtMSwxLTItMS0uMzcuMmE2LjIxLDYuMjEsMCwwLDEtMS4yLjQ5bC0uNDIuMTItLjYzLDIuMDlIMjMuNDJsLS42My0y''@;'; + put 'put ''LjA4LS40Mi0uMTJhNi4yMyw2LjIzLDAsMCwxLTEuMjEtLjQ5bC0uMzctLjItMS45NCwxLTEtMSwxLTEuOTQtLjIyLS4zOEE2LDYsMCwwLDEsMTguMTcsMjZMMTgsMjUuNjMsMTYsMjVWMjMuNjlMMTgsMjMuMDhsLjEzLS40MWE1Ljk0LDUuOTQsMCwwLDEsLjUzLTEuMjNMMTguOSwyMWwtMS0x''@;'; + put 'put ''Ljg1LDEtLjk0LDEuODksMSwuMzgtLjIxYTYuMjMsNi4yMywwLDAsMSwxLjI2LS41MmwuNDEtLjEyLjYzLTJoMS4zOGwuNjIsMiwuNDEuMTJBNi4yMSw2LjIxLDAsMCwxLDI3LjEsMTlsLjM4LjIxLDEuOTItMSwxLDEtMSwxLjg5LjIxLjM4YTYuMDgsNi4wOCwwLDAsMSwuNSwxLjIxbC4xMi40''@;'; + put 'put ''MiwyLjA2LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNDksMzFINlY1SDIxLjg3TDIzLDNINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTYuMjNsLTEu''@;'; + put 'put ''MS0xLjA4QTMuMTEsMy4xMSwwLDAsMSwxNC40OSwzMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEz''@;'; + put 'put ''SDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTMzLjgzLDIzLjQzYTEuMTYsMS4xNiwwLDAsMC0uNzEtMS4xMmwtMS42OC0uNWMtLjA5LS4yNC0uMTgtLjQ4LS4yOS0uNzFsLjc4LTEuNDRhMS4xNiwxLjE2LDAsMCwwLS4yMS0xLjM3bC0xLjQyLTEuNDFhMS4xNiwxLjE2LDAsMCwwLTEuMzctLjJsLTEuNDUuNzZhNy44NCw3Ljg0''@;'; + put 'put ''LDAsMCwwLS43Ni0uMzJsLS40OC0xLjU4YTEuMTUsMS4xNSwwLDAsMC0xLjExLS43N2gtMmExLjE2LDEuMTYsMCwwLDAtMS4xMS44MmwtLjQ3LDEuNTRhNy43Niw3Ljc2LDAsMCwwLS43Ny4zMmwtMS40Mi0uNzZhMS4xNiwxLjE2LDAsMCwwLTEuMzYuMmwtMS40NSwxLjRhMS4xNiwxLjE2LDAs''@;'; + put 'put ''MCwwLS4yMSwxLjM4TDE3LjA4LDIxYTcuNjQsNy42NCwwLDAsMC0uMzEuNzRsLTEuNTguNDdhMS4xNSwxLjE1LDAsMCwwLS44MywxLjExdjJhMS4xNSwxLjE1LDAsMCwwLC44MywxLjFsMS41OS40N2E3LjUzLDcuNTMsMCwwLDAsLjMxLjcybC0uNzgsMS40NmExLjE2LDEuMTYsMCwwLDAsLjIx''@;'; + put 'put ''LDEuMzdsMS40MiwxLjRhMS4xNiwxLjE2LDAsMCwwLDEuMzcuMjFsMS40OC0uNzhjLjIzLjExLjQ3LjIuNzIuMjlMMjIsMzMuMThhMS4xNiwxLjE2LDAsMCwwLDEuMTEuODFoMmExLjE2LDEuMTYsMCwwLDAsMS4xMS0uODJsLjQ3LTEuNThjLjI0LS4wOC40Ny0uMTguNy0uMjlsMS41Ljc5YTEu''@;'; + put 'put ''MTYsMS4xNiwwLDAsMCwxLjM2LS4ybDEuNDItMS40YTEuMTYsMS4xNiwwLDAsMCwuMjEtMS4zOGwtLjc5LTEuNDVxLjE2LS4zNC4yOS0uNjlMMzMsMjYuNWExLjE1LDEuMTUsMCwwLDAsLjgzLTEuMTFabS0xLjYsMS42My0yLjExLjYyLS4xMi40MmE2LDYsMCwwLDEtLjUsMS4xOWwtLjIxLjM4''@;'; + put 'put ''LDEsMS45MS0xLDEtMi0xLS4zNy4yYTYuMjEsNi4yMSwwLDAsMS0xLjIuNDlsLS40Mi4xMi0uNjMsMi4wOUgyMy40MmwtLjYzLTIuMDgtLjQyLS4xMmE2LjIzLDYuMjMsMCwwLDEtMS4yMS0uNDlsLS4zNy0uMi0xLjk0LDEtMS0xLDEtMS45NC0uMjItLjM4QTYsNiwwLDAsMSwxOC4xNywyNkwx''@;'; + put 'put ''OCwyNS42MywxNiwyNVYyMy42OUwxOCwyMy4wOGwuMTMtLjQxYTUuOTQsNS45NCwwLDAsMSwuNTMtMS4yM0wxOC45LDIxbC0xLTEuODUsMS0uOTQsMS44OSwxLC4zOC0uMjFhNi4yMyw2LjIzLDAsMCwxLDEuMjYtLjUybC40MS0uMTIuNjMtMmgxLjM4bC42MiwyLC40MS4xMkE2LjIxLDYuMjEs''@;'; + put 'put ''MCwwLDEsMjcuMSwxOWwuMzguMjEsMS45Mi0xLDEsMS0xLDEuODkuMjEuMzhhNi4wOCw2LjA4LDAsMCwxLC41LDEuMjFsLjEyLjQyLDIuMDYuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMjQuMTIsMjAuMzVhNCw0LDAsMSwwLDQuMDgsNEE0LjA2LDQuMDYsMCwwLDAsMjQuMTIsMjAuMzVabTAsNi40NmEyLjQzLDIuNDMsMCwxLDEsMi40OC0yLjQzQTIuNDYsMi40NiwwLDAsMSwyNC4xMiwyNi44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC40OSwzMUg2VjVIMjMuMDhhNi45NCw2Ljk0LDAsMCwxLC42LTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTYuMjNsLTEuMS0xLjA4QTMuMTEsMy4xMSwwLDAsMSwxNC40OSwzMVoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxNS4zM1YxMi43MWE3LDcsMCwwLDEtMi0xdjEuODhBMy4yLDMuMiwwLDAsMSwyOCwxNS4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0xNS41NSwzMUg2VjVIMjZ2OC43OGEyLjM3LDIuMzcsMCwwLDEsMiwxLjU3VjVhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNy4xNmwtMS0xQTIuMzgsMi4zOCwwLDAsMSwxNS41NSwzMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNTQsMjMuNDdsLTItLjYxYTcuMDYsNy4wNiwwLDAsMC0uNTgtMS40MWwxLTEuODZhLjM3LjM3LDAsMCwwLS4wNy0uNDRMMzAuNDEsMTcuN2EuMzcuMzcsMCwwLDAtLjQ0LS4wN2wtMS44NSwxQTcsNywwLDAs''@;'; + put 'put ''MCwyNi42OSwxOGwtLjYxLTJhLjM3LjM3LDAsMCwwLS4zNi0uMjVoLTJhLjM3LjM3LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNjFsLTEuODItMWEuMzcuMzcsMCwwLDAtLjQ0LjA3bC0xLjQ3LDEuNDRhLjM3LjM3LDAsMCwwLS4wNy40NGwxLDEuODJhNyw3LDAsMCwwLS42''@;'; + put 'put ''MSwxLjQ0bC0yLC42MWEuMzcuMzcsMCwwLDAtLjI2LjM1djJhLjM3LjM3LDAsMCwwLC4yNi4zNWwyLC42MWE3LDcsMCwwLDAsLjYxLDEuNDFsLTEsMS45YS4zNy4zNywwLDAsMCwuMDcuNDRMMTksMzJhLjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTds''@;'; + put 'put ''LjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40NC0uMDdsMS40NS0xLjQ1YS4zNy4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhhNy4wNiw3LjA2LDAsMCwwLC41OC0xLjM5''@;'; + put 'put ''bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjIzLjgzQS4zNy4zNywwLDAsMCwzMy41NCwyMy40N1pNMjQuNywyOC4xOUEzLjMzLDMuMzMsMCwxLDEsMjgsMjQuODYsMy4zMywzLjMzLDAsMCwxLDI0LjcsMjguMTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjU0LDIzLjQ3bC0yLS42MWE3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0TDMwLjQxLDE3LjdhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMUE3LDcsMCwwLDAsMjYuNjksMThsLS42MS0yYS4z''@;'; + put 'put ''Ny4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxbC0xLjgyLTFhLjM3LjM3LDAsMCwwLS40NC4wN2wtMS40NywxLjQ0YS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyYTcsNywwLDAsMC0uNjEsMS40NGwtMiwuNjFhLjM3LjM3''@;'; + put 'put ''LDAsMCwwLS4yNi4zNXYyYS4zNy4zNywwLDAsMCwuMjYuMzVsMiwuNjFhNyw3LDAsMCwwLC42MSwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LDMyYS4zNy4zNywwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDYsNy4wNiwwLDAsMCwxLjM5LjU3bC42MSwyYS4zNy4zNywwLDAsMCwu''@;'; + put 'put ''MzUuMjZoMmEuMzcuMzcsMCwwLDAsLjM1LS4yNmwuNjEtMmE3LDcsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zNy4zNywwLDAsMCwuNDQtLjA3bDEuNDUtMS40NWEuMzcuMzcsMCwwLDAsLjA3LS40NGwtMS0xLjg4YTcuMDYsNy4wNiwwLDAsMCwuNTgtMS4zOWwyLS42MWEuMzcuMzcsMCwwLDAs''@;'; + put 'put ''LjI2LS4zNVYyMy44M0EuMzcuMzcsMCwwLDAsMzMuNTQsMjMuNDdaTTI0LjcsMjguMTlBMy4zMywzLjMzLDAsMSwxLDI4LDI0Ljg2LDMuMzMsMy4zMywwLDAsMSwyNC43LDI4LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS41NSwzMUg2VjVIMjEuODdMMjMsM0g2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNy4xNmwtMS0xQTIuMzgsMi4zOCwwLDAsMSwxNS41NSwzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIt''@;'; + put 'put ''LWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJh''@;'; + put 'put ''ZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjU0LDIzLjQ3bC0yLS42MWE3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0TDMwLjQxLDE3LjdhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMUE3LDcsMCwwLDAsMjYuNjksMThsLS42''@;'; + put 'put ''MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxbC0xLjgyLTFhLjM3LjM3LDAsMCwwLS40NC4wN2wtMS40NywxLjQ0YS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyYTcsNywwLDAsMC0uNjEsMS40NGwtMiwuNjFh''@;'; + put 'put ''LjM3LjM3LDAsMCwwLS4yNi4zNXYyYS4zNy4zNywwLDAsMCwuMjYuMzVsMiwuNjFhNyw3LDAsMCwwLC42MSwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LDMyYS4zNy4zNywwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDYsNy4wNiwwLDAsMCwxLjM5LjU3bC42MSwyYS4zNy4zNyww''@;'; + put 'put ''LDAsMCwuMzUuMjZoMmEuMzcuMzcsMCwwLDAsLjM1LS4yNmwuNjEtMmE3LDcsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zNy4zNywwLDAsMCwuNDQtLjA3bDEuNDUtMS40NWEuMzcuMzcsMCwwLDAsLjA3LS40NGwtMS0xLjg4YTcuMDYsNy4wNiwwLDAsMCwuNTgtMS4zOWwyLS42MWEuMzcuMzcs''@;'; + put 'put ''MCwwLDAsLjI2LS4zNVYyMy44M0EuMzcuMzcsMCwwLDAsMzMuNTQsMjMuNDdaTTI0LjcsMjguMTlBMy4zMywzLjMzLDAsMSwxLDI4LDI0Ljg2LDMuMzMsMy4zMywwLDAsMSwyNC43LDI4LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNTUsMzFINlY1SDIzLjA4YTYuOTQsNi45NCwwLDAsMSwuNi0ySDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE3LjE2bC0xLTFBMi4zOCwyLjM4LDAsMCwxLDE1LjU1LDMxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuMzZWMTIuNzFhNyw3LDAsMCwxLTItMXYyQTIuMzcsMi4zNywwLDAsMSwyOCwxNS4zNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2Vk''@;'; + put 'put ''IiAvPicpLGUuQ2xyU2hhcGVUd29XYXlBcnJvd3M9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjQzLDE2LjgzQTEsMSwwLDAsMCwyMiwxOC4yNEwyNS43MiwyMkg3LjgzYTEsMSwwLDAsMCwwLDJIMjUuNzJMMjIsMjcuN2ExLDEsMCwxLDAsMS40MiwxLjQxTDI5LjUzLDIzWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuMjQsMTguNDVhMSwxLDAsMCwwLC43MS0xLjcxTDEwLjI0LDEzSDI4LjEyYTEsMSwwLDAsMCwwLTJIMTAuMjRsMy43MS0zLjczYTEsMSwwLDAsMC0xLjQyLTEuNDFMNi40''@;'; + put 'put ''MiwxMmw2LjExLDYuMTRBMSwxLDAsMCwwLDEzLjI0LDE4LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZVN3aXRjaD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNS43MSwxNEgyMC45MlYxMkg1LjcxTDkuNDIsOC4yN0Ex''@;'; + put 'put ''LDEsMCwxLDAsOCw2Ljg2TDEuODksMTMsOCwxOS4xNGExLDEsMCwxLDAsMS40Mi0xLjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxMiIgd2lkdGg9IjMiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyOCIgeT0iMTIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjkyLDE3''@;'; + put 'put ''Ljg2YTEsMSwwLDAsMC0xLjQyLDEuNDFMMzAuMjEsMjNIMTV2MkgzMC4yMUwyNi41LDI4Ljc0YTEsMSwwLDEsMCwxLjQyLDEuNEwzNCwyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTAiIHk9IjIzIiB3aWR0''@;'; + put 'put ''aD0iMyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlVG9vbHM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLDE0SDE2YTEsMSwwLDAsMC0xLDF2NmExLDEsMCwwLDAsMSwxaDRhMSwxLDAsMCwwLDEtMVYxNUExLDEsMCwwLDAsMjAsMTRabS0uNCw2LjZIMTYuNFYxNS40aDMuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjcxLDEyLjM4LDI5LjYyLDguMjlBMSwxLDAsMCwwLDI4LjkyLDhoLTVWNi4wNUEyLDIsMCwwLDAsMjIsNEgxMy44NEExLjkyLDEuOTIsMCwwLDAsMTIsNi4wNVY4SDcuMDhhMSwxLDAsMCwwLS43MS4yOUwy''@;'; + put 'put ''LjI5LDEyLjM4YTEsMSwwLDAsMC0uMjkuNzFWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEzLjA4QTEsMSwwLDAsMCwzMy43MSwxMi4zOFpNMTQsNmg4VjhIMTRaTTMyLDE3SDIydjEuOTNIMzJWMjhINFYxOC45M0gxNFYxN0g0VjEzLjVMNy41LDEwaDIxTDMyLDEzLjVaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2LjQiIHk9IjE1LjQiIHdpZHRoPSIzLjIiIGhlaWdodD0iNS4yIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTIxLDIxYTEsMSwwLDAsMS0xLDFIMTZhMSwxLDAsMCwxLTEtMVYxOUgydjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5SDIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43MSwxMi4z''@;'; + put 'put ''OCwyOS42Miw4LjI5QTEsMSwwLDAsMCwyOC45Miw4aC01VjYuMDVBMiwyLDAsMCwwLDIyLDRIMTMuODRBMS45MiwxLjkyLDAsMCwwLDEyLDYuMDVWOEg3LjA4YTEsMSwwLDAsMC0uNzEuMjlMMi4yOSwxMi4zOGExLDEsMCwwLDAtLjI5LjcxVjE3SDE1VjE1YTEsMSwwLDAsMSwxLTFoNGExLDEs''@;'; + put 'put ''MCwwLDEsMSwxdjJIMzRWMTMuMDhBMSwxLDAsMCwwLDMzLjcxLDEyLjM4Wk0yMiw4SDE0VjZoOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZVdpbmRvd0Nsb3NlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS40MSwxOGw3LjI5''@;'; + put 'put ''LTcuMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSwxMC43MSw5LjI5YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTYuNTksMTgsOS4yOSwyNS4yOWExLDEsMCwxLDAsMS40MSwxLjQxTDE4LDE5LjQxbDcuMjksNy4yOWExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZVdpbmRvd01heD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcuODksOWgtMjBhMiwyLDAsMCwwLTIsMlYyNWEyLDIsMCwwLDAsMiwyaDIwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDI3Ljg5LDlabS0yMCwx''@;'; + put 'put ''NlYxMWgyMFYyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVXaW5kb3dNaW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LDI3SDlhMSwxLDAsMCwxLDAtMkgyN2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZVdpbmRvd1Jlc3RvcmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LDhIMTRhMiwyLDAsMCwwLTIsMnYyaDJWMTBIMjhWMjBIMjZ2MmgyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDI4LDhaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwxNEg4YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgyMmEyLDIsMCwwLDAsMi0yVjE2QTIsMiwwLDAsMCwyMiwxNFpNOCwyNlYxNkgyMlYyNloiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVab29tSW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LDRBMTIsMTIsMCwxLDAsMjgsMTYsMTIsMTIsMCwwLDAsMTYsNFptMCwyMS45MUExMCwxMCwwLDEsMSwyNiwxNiwxMCwxMCwwLDAsMSwx''@;'; + put 'put ''NiwyNS45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjcxLDI5LjY5bC01LjE3LTUuMTdBMTMuNjgsMTMuNjgsMCwwLDEsMjUuMTUsMjZsNS4xNSw1LjE1YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSwxNUgxN1YxMWExLDEsMCwwLDAtMiwwdjRIMTFhMSwxLDAsMCwwLDAsMmg0djRhMSwxLDAsMCwwLDIsMFYxN2g0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxlLkNsclNoYXBlWm9vbU91dD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTYsNEExMiwxMiwwLDEsMCwyOCwxNiwxMiwxMiwwLDAsMCwxNiw0Wm0wLDIxLjkxQTEwLDEwLDAsMSwxLDI2LDE2LDEwLDEwLDAsMCwxLDE2LDI1Ljkx''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNzEsMjkuNjlsLTUuMTctNS4xN0ExMy42OCwxMy42OCwwLDAsMSwyNS4xNSwyNmw1LjE1LDUuMTVhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLDE1SDEyYTEsMSwwLDAsMCwwLDJoOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZUtleT0oMCxh''@;'; + put 'put ''LmNsckljb25TVkcpKCc8cmVjdCB4PSI2LjMzIiB5PSIxMC43MSIgd2lkdGg9IjkuNzEiIGhlaWdodD0iMi41NyIgcng9IjEiIHJ5PSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNS4yMSAxMS40Mykgcm90YXRlKC00NSkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM1LDE2LjhsLjYzLS42M0E1LDUsMCwwLDAsMjQsOS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQtLjRMMTgsMjYuNDho''@;'; + put 'put ''My40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTguOGwtMy0zTDE0LDIzLjMxYTMsMywwLDAsMS00LjI0LDBMNC41LDE4YTMsMywwLDAsMSwwLTQuMjRsOC41Ni04LjU2YTMsMywwLDAsMSw0LjI0LDBsNS4yNiw1LjI2''@;'; + put 'put ''YTMsMywwLDAsMSwwLDQuMjRsLTIsMkwzMiwyOC4yOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4zMyIgeT0iMTAuNzEiIHdpZHRoPSI5LjcxIiBoZWlnaHQ9IjIuNTciIHJ4PSIxIiByeT0iMSIgdHJhbnNm''@;'; + put 'put ''b3JtPSJ0cmFuc2xhdGUoLTUuMjEgMTEuNDMpIHJvdGF0ZSgtNDUpIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zNSwxNi44bC42My0uNjNhNSw1LDAsMCwwLC42My0uNzdI''@;'; + put 'put ''MjIuMjNsLS4yOSwwTDIwLjUyLDE2LjgsMzIsMjguMjhWMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTMtM0wxNCwyMy4zMWEzLDMsMCwwLDEtNC4yNCwwTDQuNSwxOGEzLDMsMCwwLDEsMC00LjI0bDguNTYtOC41NmEzLDMsMCwwLDEsNC4yNCwwTDIwLjEsOC4wNmwx''@;'; + put 'put ''LTEuNzlMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNC0uNEwxOCwyNi40OGgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYu''@;'; + put 'put ''ODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMzMiIHk9IjEwLjcxIiB3aWR0aD0iOS43MSIgaGVpZ2h0PSIyLjU3IiByeD0iMSIgcnk9IjEi''@;'; + put 'put ''IHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjIxIDExLjQzKSByb3RhdGUoLTQ1KSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM1LDE2LjhsLjYzLS42M0E1LDUsMCwwLDAsMjQs''@;'; + put 'put ''OS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQtLjRMMTgsMjYuNDhoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMu''@;'; + put 'put ''NDF2LTNIMTguOGwtMy0zTDE0LDIzLjMxYTMsMywwLDAsMS00LjI0LDBMNC41LDE4YTMsMywwLDAsMSwwLTQuMjRsOC41Ni04LjU2YTMsMywwLDAsMSw0LjI0LDBsNS4yNiw1LjI2YTMsMywwLDAsMSwwLDQuMjRsLTIsMkwzMiwyOC4yOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yMy4zOCwxNi43N2wuNi0uNkE1LDUsMCwwLDAsMjQsOS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQ1LS40NSwyLjEsMi4yaDMuNDR2M2gzLjY5djEuNjNMMjgsMzRo''@;'; + put 'put ''NlYyNy40NVptLTguNTYtNi41OUw5LjM3LDE1LjY0YTEsMSwwLDAsMS0xLjQxLDBsLS40LS40YTEsMSwwLDAsMSwwLTEuNDFMMTMsOC4zNmExLDEsMCwwLDEsMS40MSwwbC40LjRBMSwxLDAsMCwxLDE0LjgyLDEwLjE4Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTgu''@;'; + put 'put ''OGwtMS41Mi0xLjYxTDIyLDE4LjE4LDMyLDI4LjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zOCwxNi43N2wuNi0uNmE1LDUsMCwwLDAsLjYzLS43N0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwy''@;'; + put 'put ''LjA5LTMuNjJMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNDUtLjQ1LDIuMSwyLjJoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wm0tOC41Ni02LjU5TDkuMzcsMTUuNjRhMSwx''@;'; + put 'put ''LDAsMCwxLTEuNDEsMGwtLjQtLjRhMSwxLDAsMCwxLDAtMS40MUwxMyw4LjM2YTEsMSwwLDAsMSwxLjQxLDBsLjQuNEExLDEsMCwwLDEsMTQuODIsMTAuMThaTTMyLDMySDI4Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0xLjUyLTEuNjFMMjIsMTguMTgsMzIsMjguMjhaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwx''@;'; + put 'put ''LjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzgsMTYuNzdsLjYtLjZBNSw1LDAsMCwwLDI0LDkuMUwx''@;'; + put 'put ''OC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40NS0uNDUsMi4xLDIuMmgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVabS04LjU2LTYuNTlMOS4zNywxNS42NGExLDEsMCwwLDEtMS40''@;'; + put 'put ''MSwwbC0uNC0uNGExLDEsMCwwLDEsMC0xLjQxTDEzLDguMzZhMSwxLDAsMCwxLDEuNDEsMGwuNC40QTEsMSwwLDAsMSwxNC44MiwxMC4xOFpNMzIsMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTEuNTItMS42MUwyMiwxOC4xOCwzMiwyOC4yOFoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksZS5D''@;'; + put 'put ''bHJTaGFwZUxpYnJhcnk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjQ4LDI5LjYzLDI2Ljc0LDExLjgyYTIsMiwwLDAsMC0yLjU4LTEuMTZMMjEsMTEuODVWOC45MkExLjkyLDEuOTIsMCwwLDAsMTkuMDgsN0gxNFY0LjkyQTEuOTIsMS45MiwwLDAsMCwxMi4wOCwzSDVBMiwyLDAs''@;'; + put 'put ''MCwwLDMsNVYzMmExLDEsMCwwLDAsMSwxSDIwYTEsMSwwLDAsMCwxLTFWMTkuMjdsNSwxMy4yMWExLDEsMCwwLDAsMS4yOS41OGw1LjYxLTIuMTRhMSwxLDAsMCwwLC41OC0xLjI5Wk0xMiw4LjgzVjMxSDVWNWg3Wk0xOSwzMUgxNFY5aDVabTguNTEtLjI1TDIxLjEzLDEzLjkybDMuNzQtMS40''@;'; + put 'put ''Miw2LjM5LDE2LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuNzUsM0g1LjI1QTEuMTUsMS4xNSwwLDAsMCw0LDRWMzNIMTRWNEExLjE1LDEuMTUsMCwwLDAsMTIuNzUsM1oiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzcsMzEuMDlsLTYuOTQtMTguM2ExLDEsMCwwLDAtMS4yOS0uNThMMjIsMTMuNTlWOWExLDEsMCwwLDAtMS0xSDE2VjMzaDZWMTQuNjlMMjguOTMsMzNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVCb2x0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMC41MiwzNGgtM2ExLDEsMCwwLDEtLjg4LTEuNDRMMTIuNTUsMjFINmExLDEsMCwwLDEtLjg1LTEuNTRsMTAuNjgtMTdBMSwxLDAsMCwxLDE2LjY0LDJIMzAuMDdhMSwxLDAs''@;'; + put 'put ''MCwxLC43NywxLjY5TDIxLjc4LDE0aDUuMzhhMSwxLDAsMCwxLC43MywxLjY2bC0xNi42MywxOEExLDEsMCwwLDEsMTAuNTIsMzRaTTkuMTgsMzJoLjkxTDI0Ljg2LDE2SDE5LjU5YTEsMSwwLDAsMS0uNzctMS42OUwyNy44OCw0SDE3LjE5TDcuNzcsMTlIMTQuMmExLDEsMCwwLDEsLjg4LDEu''@;'; + put 'put ''NDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC44LDIuMjlBLjQ5LjQ5LDAsMCwwLDMwLjM1LDJIMTYuNDJhLjUuNSwwLDAsMC0uNDIuMjNsLTEwLjcxLDE3QS40OS40OSwwLDAsMCw1LjcsMjBoNy42N0w2''@;'; + put 'put ''LjYsMzMuMjVhLjUyLjUyLDAsMCwwLC40Ni43NWgzYS41LjUsMCwwLDAsLjM3LS4xNkwyOCwxNC44NWEuNS41LDAsMCwwLS4zNy0uODVIMjAuODlMMzAuNzIsMi44MkEuNDkuNDksMCwwLDAsMzAuOCwyLjI5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlV3JlbmNoPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy4xOCwyNi4xMSwyMC4zNSwxMy4yOEE5LjI4LDkuMjgsMCwwLDAsNy41NCwyLjc5bC0xLjM0LjU5LDUuMzgsNS4zOEw4Ljc2LDExLjU5LDMuMzgsNi4yMSwyLjc5LDcuNTRBOS4yNyw5LjI3LDAsMCwwLDEzLjI4''@;'; + put 'put ''LDIwLjM1TDI2LjExLDMzLjE4YTIsMiwwLDAsMCwyLjgzLDBsNC4yNC00LjI0QTIsMiwwLDAsMCwzMy4xOCwyNi4xMVptLTUuNjYsNS42NkwxMy44OCwxOC4xMmwtLjU3LjE2YTcuMjcsNy4yNywwLDAsMS05LjMxLTcsNy4yLDcuMiwwLDAsMSwuMTUtMS40OGw0LjYxLDQuNjEsNS42Ni01LjY2''@;'; + put 'put ''TDkuODEsNC4xNWE3LjI3LDcuMjcsMCwwLDEsOC40Nyw5LjE2bC0uMTYuNTdMMzEuNzcsMjcuNTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3LjEzIiBjeT0iMjcuMDkiIHI9IjEuMyIgdHJhbnNmb3Jt''@;'; + put 'put ''PSJ0cmFuc2xhdGUoLTExLjIxIDI3LjEyKSByb3RhdGUoLTQ1KSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzMsMjcuNzIsMTkuNjcsMTMuNjZhOC43OSw4Ljc5LDAsMCwwLTEyLTEwLjVMMTMsOC41Myw4''@;'; + put 'put ''LjUzLDEzLDMuMTYsNy42N2E4Ljc5LDguNzksMCwwLDAsMTAuNSwxMkwyNy43MiwzMy43M2ExLjA3LDEuMDcsMCwwLDAsMS41LDBsNC41MS00LjUxQTEuMDcsMS4wNywwLDAsMCwzMy43MywyNy43MlpNMjksMjlhMS4zOCwxLjM4LDAsMSwxLDAtMkExLjM4LDEuMzgsMCwwLDEsMjksMjlaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVCdWxsc2V5ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMmExNS45MiwxNS45MiwwLDAsMC00LjI1LjU5bC43NywxLjg2YTE0LjA3LDE0LjA3LDAsMSwxLTEwLDEwbC0xLjg2LS43OEEx''@;'; + put 'put ''NiwxNiwwLDEsMCwxOCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNy40NSwxNS43YTEwLjgxLDEwLjgxLDAsMSwwLDguMy04LjI2TDE2LjM3LDlBOS4yNCw5LjI0LDAsMSwxLDksMTYuMzJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMi4wOWE0LjA4LDQuMDgsMCwwLDEtNC0zLjY4bC0xLjYzLS42OGMwLC4wOSwwLC4xOCwwLC4yN0E1LjY5LDUuNjksMCwxLDAsMTgsMTIuMzFoLS4yNEwxOC40MywxNEE0LjA3''@;'; + put 'put ''LDQuMDcsMCwwLDEsMTgsMjIuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjIsMTMuMzRhLjUuNSwwLDAsMCwuMzUuMTVIMTIuMmw1LjM3LDUuMzdBMSwxLDAsMCwwLDE5LDE3LjQ0TDEzLjUzLDEyVjgu''@;'; + put 'put ''NTFhLjUuNSwwLDAsMC0uMTUtLjM1TDcuNzksMi41N2EuNS41LDAsMCwwLS44NS4zNXY0SDNhLjUuNSwwLDAsMC0uMzUuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxOC44NWExLDEsMCwwLDEtMS40''@;'; + put 'put ''MSwwbC0zLTNBNCw0LDAsMCwwLDEzLjkxLDE4LDQuMDksNC4wOSwwLDEsMCwxOCwxMy45MWE0LDQsMCwwLDAtMiwuNTVsMywzQTEsMSwwLDAsMSwxOSwxOC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMmEx''@;'; + put 'put ''NS45MiwxNS45MiwwLDAsMC00LjI1LjU5bDEuNiwzLjg5QTExLjg5LDExLjg5LDAsMSwxLDYuNDksMTUuM0wyLjYxLDEzLjY4QTE2LDE2LDAsMSwwLDE4LDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTgsMTUuOTRB''@;'; + put 'put ''MTAuMTcsMTAuMTcsMCwxLDAsMTYsOGwxLjY5LDQuMTEuMzEsMEE1Ljg4LDUuODgsMCwxLDEsMTIuMTIsMThjMC0uMTIsMC0uMjMsMC0uMzVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguMiwxMy4zNGEuNS41LDAs''@;'; + put 'put ''MCwwLC4zNS4xNUgxMi4ybDIuMzUsMi4zNUE0LjA5LDQuMDksMCwwLDEsMTYsMTQuNDZMMTMuNTMsMTJWOC41MWEuNS41LDAsMCwwLS4xNS0uMzVMNy43OSwyLjU3YS41LjUsMCwwLDAtLjg1LjM1djRIM2EuNS41LDAsMCwwLS4zNS44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTQiIC8+JyksZS5DbHJTaGFwZVRhcmdldD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNy4yQTEwLjgsMTAuOCwwLDEsMCwyOC44LDE4LDEwLjgxLDEwLjgxLDAsMCwwLDE4LDcuMlptMCwyMEE5LjIsOS4yLDAsMSwxLDI3LjIsMTgsOS4yMSw5LjIxLDAsMCwxLDE4LDI3LjJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMi4zMUE1LjY5LDUuNjksMCwxLDAsMjMuNjksMTgsNS42OSw1LjY5LDAsMCwwLDE4LDEyLjMxWm0wLDkuNzdBNC4wOSw0LjA5LDAsMSwxLDIyLjA5LDE4LDQuMDksNC4wOSww''@;'; + put 'put ''LDAsMSwxOCwyMi4wOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iNC4wOSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0xOCw3LjgzQTEwLjE3LDEwLjE3LDAsMSwwLDI4LjE3LDE4LDEwLjE4LDEwLjE4LDAsMCwwLDE4LDcuODNabTAsMTZBNS44OCw1Ljg4LDAsMSwxLDIzLjg4LDE4LDUuODgsNS44OCwwLDAsMSwxOCwyMy44OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDI3LjgzQTExLjgzLDExLjgzLDAsMSwxLDI5LjgzLDE4LDExLjg1LDExLjg1LDAsMCwxLDE4LDI5LjgzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh''@;'; + put 'put ''dGgtMyIgLz4nKSxlLkNsclNoYXBlRmxhbWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjMsMTYuNjZjLTEuMTktMi4wOS03Ljk0LTE0LjE1LTcuOTQtMTQuMTVhMSwxLDAsMCwwLTEuNzUsMGwtNiwxMC42NC0zLTUuMjhhMSwxLDAsMCwwLTEuNzUsMFM1LjQsMTcuNzgsNC40Miwx''@;'; + put 'put ''OS41QTkuMyw5LjMsMCwwLDAsMywyNC42MUMzLDI5LjcyLDUuODYsMzQsMTEuNjcsMzRIMjIuNDhDMjguMjgsMzQsMzMsMjksMzMsMjIuNzhBMTEuMTMsMTEuMTMsMCwwLDAsMzEuMywxNi42NlpNMjIuNDgsMzJIMTEuNzdDOC4xMywzMiw1LDI4LjY2LDUsMjQuNjFhNy40Myw3LjQzLDAsMCwx''@;'; + put 'put ''LDEuMTYtNC4xM2MuNzMtMS4yOSw0LjA1LTcuMjEsNS42NS0xMC4wN2wzLDUuMjhhMSwxLDAsMCwwLC44Ny41MWgwYTEsMSwwLDAsMCwuODctLjUxTDIyLjQ5LDVjMS44NiwzLjMzLDYuMTUsMTEsNy4wNywxMi42QTkuMjQsOS4yNCwwLDAsMSwzMSwyMi43OEMzMSwyNy44NywyNy4xOCwzMiwy''@;'; + put 'put ''Mi40OCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1Ljc1LDIxLjczYy0uNjUtMS4xNi00LjM4LTcuODEtNC4zOC03LjgxYS44LjgsMCwwLDAtMS40LDBsLTQuMiw3LjQ4LTEuNTktMi40OWEuOC44LDAs''@;'; + put 'put ''MCwwLTEuMzUsMEw5LjM3LDI0LjM1YTQuMzUsNC4zNSwwLDAsMC0uODIsMi42LDQuNDksNC40OSwwLDAsMCwuNSwySDExYTMsMywwLDAsMS0uODMtMiwyLjc4LDIuNzgsMCwwLDEsLjU2LTEuNzNsMi44LTQuMzgsMS42NiwyLjZhLjguOCwwLDAsMCwxLjQxLS4xMiw3LjgyLDcuODIsMCwwLDEs''@;'; + put 'put ''LjQtLjhMMjAuNjcsMTZsMy42OSw2LjU3YTQuODMsNC44MywwLDAsMSwuNzcsMi43MUE1LDUsMCwwLDEsMjMuNDYsMjloMi4xM2E2LjY4LDYuNjgsMCwwLDAsMS4xNC0zLjc0LDYuNDUsNi40NSwwLDAsMC0xLTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjMsMTYuMzJjLTEuMTktMi4wOS03Ljk0LTE0LjE1LTcuOTQtMTQuMTVhMSwxLDAsMCwwLTEuNzUsMGwtNiwxMC42NC0zLTUuMjhhMSwxLDAsMCwwLTEuNzUsMFM1LjQsMTcuNDMsNC40MiwxOS4xNUE5LjMsOS4zLDAsMCwwLDMsMjQuMjZj''@;'; + put 'put ''MCw1LjExLDMuODgsOS42NSw4LjY3LDkuNzRIMjIuNDhDMjguMjgsMzQsMzMsMjguNjIsMzMsMjIuNDRBMTEuMTMsMTEuMTMsMCwwLDAsMzEuMywxNi4zMlpNMjEuNDgsMzJIMTQuNTRBNC42OCw0LjY4LDAsMCwxLDEwLDI3LjQxYTMuOTEsMy45MSwwLDAsMSwuNzUtMi4zNGwzLjM1LTUuMjFh''@;'; + put 'put ''LjUuNSwwLDAsMSwuODQsMGwxLjc4LDIuNzcsMC0uMDhjLjYzLTEuMTEsNC4yMy03LjQ4LDQuMjMtNy40OGEuNS41LDAsMCwxLC44NywwczMuNiw2LjM4LDQuMjMsNy40OEE1LjgzLDUuODMsMCwwLDEsMjcsMjUuNzZDMjcsMzIsMjIuMSwzMiwyMS40OCwzMloiIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUhvdXJnbGFzcz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjksMzJIMjZWMjQuOTFhNi42Nyw2LjY3LDAsMCwwLTIuNjktNS4zM2wtMS4yOC0xQTYuMzYsNi4zNiwwLDAsMCwyMSwxOGgwYTYuMjksNi4yOSwwLDAsMCwx''@;'; + put 'put ''LS42MmwxLjI4LTFBNi42Nyw2LjY3LDAsMCwwLDI2LDExLjA5VjRoM2ExLDEsMCwwLDAsMC0ySDdBMSwxLDAsMCwwLDcsNGgzdjcuMDlhNi42Nyw2LjY3LDAsMCwwLDIuNjksNS4zM2wxLjI4LDFBNi4zNiw2LjM2LDAsMCwwLDE1LDE4aDBhNi4yNyw2LjI3LDAsMCwwLTEsLjYybC0xLjI4LDFB''@;'; + put 'put ''Ni42Nyw2LjY3LDAsMCwwLDEwLDI0LjkxVjMySDdhMSwxLDAsMCwwLDAsMkgyOWExLDEsMCwwLDAsMC0yWk0xMiwyNC45MWE0LjY2LDQuNjYsMCwwLDEsMS44OC0zLjcybDEuMjgtMWE0LjY2LDQuNjYsMCwwLDEsMS4xOC0uNjMsMSwxLDAsMCwwLC42NS0uOTRWMTcuMzNhMSwxLDAsMCwwLS42''@;'; + put 'put ''NS0uOTQsNC42Nyw0LjY3LDAsMCwxLTEuMTktLjYzbC0xLjI4LTFBNC42Niw0LjY2LDAsMCwxLDEyLDExLjA5VjRIMjR2Ny4wOWE0LjY2LDQuNjYsMCwwLDEtMS44OCwzLjcybC0xLjI4LDFoMGE0LjY2LDQuNjYsMCwwLDEtMS4xOC42MywxLDEsMCwwLDAtLjY1Ljk0djEuMzRhMSwxLDAsMCww''@;'; + put 'put ''LC42NS45NCw0LjY3LDQuNjcsMCwwLDEsMS4xOS42M2wxLjI4LDFBNC42Niw0LjY2LDAsMCwxLDI0LDI0LjkxVjMySDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksMzJIMjZWMjQuOTFhNi42Nyw2LjY3''@;'; + put 'put ''LDAsMCwwLTIuNjktNS4zM2wtMS4yOC0xQTYuMzYsNi4zNiwwLDAsMCwyMSwxOGgwYTYuMjksNi4yOSwwLDAsMCwxLS42MmwxLjI4LTFhNi42NCw2LjY0LDAsMCwwLDEuMDktMUgyMi4yM2EzLjY0LDMuNjQsMCwwLDEtLjc4LS4wOWwtLjYyLjQ2aDBhNC42Niw0LjY2LDAsMCwxLTEuMTguNjMs''@;'; + put 'put ''MSwxLDAsMCwwLS42NS45NHYxLjM0YTEsMSwwLDAsMCwuNjUuOTQsNC42Nyw0LjY3LDAsMCwxLDEuMTkuNjNsMS4yOCwxQTQuNjYsNC42NiwwLDAsMSwyNCwyNC45MVYzMkgxMlYyNC45MWE0LjY2LDQuNjYsMCwwLDEsMS44OC0zLjcybDEuMjgtMWE0LjY2LDQuNjYsMCwwLDEsMS4xOC0uNjMs''@;'; + put 'put ''MSwxLDAsMCwwLC42NS0uOTRWMTcuMzNhMSwxLDAsMCwwLS42NS0uOTQsNC42Nyw0LjY3LDAsMCwxLTEuMTktLjYzbC0xLjI4LTFBNC42Niw0LjY2LDAsMCwxLDEyLDExLjA5VjRIMjIuNDVMMjMuNiwySDdBMSwxLDAsMCwwLDcsNGgzdjcuMDlhNi42Nyw2LjY3LDAsMCwwLDIuNjksNS4zM2wx''@;'; + put 'put ''LjI4LDFBNi4zNiw2LjM2LDAsMCwwLDE1LDE4aDBhNi4yNyw2LjI3LDAsMCwwLTEsLjYybC0xLjI4LDFBNi42Nyw2LjY3LDAsMCwwLDEwLDI0LjkxVjMySDdhMSwxLDAsMCwwLDAsMkgyOWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksMzJIMjZWMjQuOTFhNi42Nyw2LjY3LDAsMCwwLTIuNjktNS4zM2wtMS4yOC0xQTYuMzYsNi4zNiwwLDAsMCwyMSwx''@;'; + put 'put ''OGgwYTYuMjksNi4yOSwwLDAsMCwxLS42MmwxLjI4LTFhNi42OCw2LjY4LDAsMCwwLDIuNTctNC4xNkE3LjUzLDcuNTMsMCwwLDEsMjQsMTAuNDl2LjYxYTQuNjYsNC42NiwwLDAsMS0xLjg4LDMuNzJsLTEuMjgsMWgwYTQuNjYsNC42NiwwLDAsMS0xLjE4LjYzLDEsMSwwLDAsMC0uNjUuOTR2''@;'; + put 'put ''MS4zNGExLDEsMCwwLDAsLjY1Ljk0LDQuNjcsNC42NywwLDAsMSwxLjE5LjYzbDEuMjgsMUE0LjY2LDQuNjYsMCwwLDEsMjQsMjQuOTFWMzJIMTJWMjQuOTFhNC42Niw0LjY2LDAsMCwxLDEuODgtMy43MmwxLjI4LTFhNC42Niw0LjY2LDAsMCwxLDEuMTgtLjYzLDEsMSwwLDAsMCwuNjUtLjk0''@;'; + put 'put ''VjE3LjMzYTEsMSwwLDAsMC0uNjUtLjk0LDQuNjcsNC42NywwLDAsMS0xLjE5LS42M2wtMS4yOC0xQTQuNjYsNC42NiwwLDAsMSwxMiwxMS4wOVY0SDIyLjc4YTcuNDUsNy40NSwwLDAsMSwuODktMkg3QTEsMSwwLDAsMCw3LDRoM3Y3LjA5YTYuNjcsNi42NywwLDAsMCwyLjY5LDUuMzNsMS4y''@;'; + put 'put ''OCwxQTYuMzYsNi4zNiwwLDAsMCwxNSwxOGgwYTYuMjcsNi4yNywwLDAsMC0xLC42MmwtMS4yOCwxQTYuNjcsNi42NywwLDAsMCwxMCwyNC45MVYzMkg3YTEsMSwwLDAsMCwwLDJIMjlhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjY3LDRo''@;'; + put 'put ''MjJhMSwxLDAsMCwwLDAtMmgtMjJhMSwxLDAsMSwwLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguNjcsMzJoLTIyYTEsMSwwLDAsMCwwLDJoMjJhMSwxLDAsMSwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNTUsMTUuNjdBNi4wNyw2LjA3LDAsMCwwLDI1LDExLjEyVjZIMTAuMDZ2NS4xMmE2LjA3LDYuMDcsMCwwLDAsMi40NSw0LjU1LDExLjQ4LDExLjQ4LDAsMCwwLDIuOTEsMS43MnYxLjE2YTExLjQ4LDEx''@;'; + put 'put ''LjQ4LDAsMCwwLTIuOTEsMS43Miw2LjA3LDYuMDcsMCwwLDAtMi40NSw0LjU1djUuMTJIMjVWMjQuODJhNi4wNyw2LjA3LDAsMCwwLTIuNDUtNC41NSwxMS40OCwxMS40OCwwLDAsMC0yLjkxLTEuNzJWMTcuMzlBMTEuNDgsMTEuNDgsMCwwLDAsMjIuNTUsMTUuNjdaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjY3LDMyaC0yMmExLDEsMCwwLDAsMCwyaDIyYTEsMSwwLDEsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTYuNjcsNEgyMi40NUwyMy42LDJINi42N2ExLDEsMCwxLDAsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi41MSwyMC4yN2E2LjA3LDYuMDcsMCww''@;'; + put 'put ''LDAtMi40NSw0LjU1djUuMTJIMjVWMjQuODJhNi4wNyw2LjA3LDAsMCwwLTIuNDUtNC41NSwxMS40OCwxMS40OCwwLDAsMC0yLjkxLTEuNzJWMTcuMzlhMTEuNDgsMTEuNDgsMCwwLDAsMi45MS0xLjcybC4zLS4yN2gtLjYyQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTAuMDZ2''@;'; + put 'put ''NS4xMmE2LjA3LDYuMDcsMCwwLDAsMi40NSw0LjU1LDExLjQ4LDExLjQ4LDAsMCwwLDIuOTEsMS43MnYxLjE2QTExLjQ4LDExLjQ4LDAsMCwwLDEyLjUxLDIwLjI3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjY3LDMyaC0yMmExLDEsMCwwLDAsMCwyaDIyYTEsMSwwLDEsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjY3LDRIMjIuNzhhNy40NSw3LjQ1LDAsMCwxLC44OS0yaC0xN2ExLDEsMCwxLDAsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNTUs''@;'; + put 'put ''MjAuMjdhMTEuNDgsMTEuNDgsMCwwLDAtMi45MS0xLjcyVjE3LjM5YTExLjQ4LDExLjQ4LDAsMCwwLDIuOTEtMS43MkE2LjI1LDYuMjUsMCwwLDAsMjUsMTEuNTUsNy40Nyw3LjQ3LDAsMCwxLDIyLjUsNkgxMC4wNnY1LjEyYTYuMDcsNi4wNywwLDAsMCwyLjQ1LDQuNTUsMTEuNDgsMTEuNDgs''@;'; + put 'put ''MCwwLDAsMi45MSwxLjcydjEuMTZhMTEuNDgsMTEuNDgsMCwwLDAtMi45MSwxLjcyLDYuMDcsNi4wNywwLDAsMC0yLjQ1LDQuNTV2NS4xMkgyNVYyNC44MkE2LjA3LDYuMDcsMCwwLDAsMjIuNTUsMjAuMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMt''@;'; + put 'put ''LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVOb0FjY2Vzcz0oMCxhLmNsckljb25TVkcpKCc8''@;'; + put 'put ''cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcu''@;'; + put 'put ''MTUsMTVIOC44NUExLjg1LDEuODUsMCwwLDAsNywxNi44NXYyLjI5QTEuODUsMS44NSwwLDAsMCw4Ljg1LDIxSDI3LjE1QTEuODUsMS44NSwwLDAsMCwyOSwxOS4xNVYxNi44NUExLjg1LDEuODUsMCwwLDAsMjcuMTUsMTVabS4yNSw0LjE1YS4yNS4yNSwwLDAsMS0uMjUuMjVIOC44NWEuMjUu''@;'; + put 'put ''MjUsMCwwLDEtLjI1LS4yNVYxNi44NWEuMjUuMjUsMCwwLDEsLjI1LS4yNUgyNy4xNWEuMjUuMjUsMCwwLDEsLjI1LjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwx''@;'; + put 'put ''NiwxNiwwLDAsMCwxOCwyWk0yOS4xNSwyMEg2Ljg1QS44NS44NSwwLDAsMSw2LDE5LjE1VjE2Ljg1QS44NS44NSwwLDAsMSw2Ljg1LDE2SDI5LjE1YS44NS44NSwwLDAsMSwuODUuODV2Mi4yOUEuODUuODUsMCwwLDEsMjkuMTUsMjBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVPcmdhbml6YXRpb249KDAsYS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI5LjggMTguOCAyNi4yIDE4LjggMjYuMiAyMS44OCAyNy44IDIxLjg4IDI3LjggMTcuMiAxOC44IDE3LjIgMTguOCAxNCAxNy4yIDE0IDE3LjIgMTcuMiA4LjIgMTcu''@;'; + put 'put ''MiA4LjIgMjEuODggOS44IDIxLjg4IDkuOCAxOC44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwyM0g0YTIsMiwwLDAsMC0yLDJ2NmEyLDIsMCwwLDAsMiwySDE0YTIsMiwwLDAsMCwyLTJWMjVBMiwyLDAs''@;'; + put 'put ''MCwwLDE0LDIzWk00LDMxVjI1SDE0djZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwyM0gyMmEyLDIsMCwwLDAtMiwydjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI1QTIsMiwwLDAsMCwz''@;'; + put 'put ''MiwyM1pNMjIsMzFWMjVIMzJ2NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLDEzSDIzYTIsMiwwLDAsMCwyLTJWNWEyLDIsMCwwLDAtMi0ySDEzYTIsMiwwLDAsMC0yLDJ2NkEyLDIsMCwwLDAsMTMsMTNa''@;'; + put 'put ''bTAtOEgyM3Y2SDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjkuOCAxOC44IDI2LjIgMTguOCAyNi4yIDIxLjg4IDI3LjggMjEuODggMjcuOCAxNy4yIDE4LjggMTcuMiAxOC44IDE0IDE3LjIg''@;'; + put 'put ''MTQgMTcuMiAxNy4yIDguMiAxNy4yIDguMiAyMS44OCA5LjggMjEuODggOS44IDE4LjgiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyIiB5PSIyMyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjEwIiByeD0iMiIgcnk9IjIiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMCIgeT0iMjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHJlY3QgeD0iMTEiIHk9IjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLGUuQ2xyU2hhcGVCYWxhbmNlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNCwzM0gxMmExLDEsMCwwLDEs''@;'; + put 'put ''MC0ySDI0YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE3IiB5PSI5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyMi41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw3SDhBMSwxLDAsMCwxLDgsNUgyOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuOTMsMjQuNzlhNy4yMyw3LjIzLDAsMCwx''@;'; + put 'put ''LTUuODEtMi44OWwtLjYtLjgsMS41OS0xLjIxLjYuOGE1LjI4LDUuMjgsMCwwLDAsOC40MiwwbC42LS44LDEuNTksMS4yMS0uNi44QTcuMjMsNy4yMywwLDAsMSwyNi45MywyNC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTMwLjUxLDE5LjI1YS44LjgsMCwwLDEtLjczLS40OEwyNi45MywxMi4ybC0yLjg1LDYuNTdhLjguOCwwLDAsMS0xLjQ3LS42NEwyNi4yLDkuODdhLjgzLjgzLDAsMCwxLDEuNDcsMGwzLjU4LDguMjZhLjguOCwwLDAsMS0uNzMsMS4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTkuNjgsMjQuNzlBNy4yMyw3LjIzLDAsMCwxLDMuODgsMjEuOWwtLjYtLjhMNC44NiwxOS45bC42LjhhNS4yOCw1LjI4LDAsMCwwLDguNDIsMGwuNi0uOCwxLjU5LDEuMjEtLjYuOEE3LjIzLDcuMjMsMCww''@;'; + put 'put ''LDEsOS42OCwyNC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjI2LDE5LjI1YS44LjgsMCwwLDEtLjczLS40OEw5LjY4LDEyLjIsNi44NCwxOC43N2EuOC44LDAsMCwxLTEuNDctLjY0TDguOTUsOS44''@;'; + put 'put ''N2EuODMuODMsMCwwLDEsMS40NywwTDE0LDE4LjEzYS44LjgsMCwwLDEtLjczLDEuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz4nKSxlLkNsclNoYXBlSWRCYWRnZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMjJhNC4yMyw0LjIzLDAs''@;'; + put 'put ''MSwwLTQuMjMtNC4yM0E0LjIzLDQuMjMsMCwwLDAsMTgsMjJabTAtNi44NmEyLjYzLDIuNjMsMCwxLDEtMi42MywyLjYzQTIuNjMsMi42MywwLDAsMSwxOCwxNS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTIyLDRhMiwyLDAsMCwwLTItMkgxNmEyLDIsMCwwLDAtMiwydjdoOFpNMjAsOUgxNlY0aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMFYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjczQTkuOSw5''@;'; + put 'put ''LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwaDEuNlYyNy44N0E4LjMzLDguMzMsMCwwLDEsMTgsMjUuMjlhOC4zMyw4LjMzLDAsMCwxLDYuNCwyLjU5VjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsNkgyNFY4aDRWMzJIOFY4aDRWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDI4LDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMmE0LjIzLDQuMjMsMCwxLDAtNC4yMy00LjIzQTQuMjMsNC4yMywwLDAsMCwxOCwyMlptMC02Ljg2YTIuNjMsMi42MywwLDEsMS0yLjYzLDIuNjNBMi42MywyLjYzLDAsMCwxLDE4LDE1LjE0WiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMGgxLjZWMjcuODdBOC4zMyw4LjMzLDAsMCwxLDE4LDI1LjI5YTguMzMsOC4zMywwLDAsMSw2LjQsMi41OVYz''@;'; + put 'put ''MEgyNlYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTE5LDkuODksMTkuNTYsOUgxNlY0aDRWOC4yNGwyLTMuNDZWNGEyLDIsMCwwLDAtMi0ySDE2YTIsMiwwLDAsMC0yLDJ2N2g0LjY0QTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuNFYzMkg4VjhoNFY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIyYTQuMjMsNC4yMywwLDEsMC00LjIzLTQuMjNBNC4yMyw0LjIzLDAsMCwwLDE4LDIyWm0wLTYuODZhMi42MywyLjYzLDAsMSwxLTIuNjMsMi42M0Ey''@;'; + put 'put ''LjYzLDIuNjMsMCwwLDEsMTgsMTUuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNGEyLDIsMCwwLDAtMi0ySDE2YTIsMiwwLDAsMC0yLDJ2N2g4Wk0yMCw5SDE2VjRoNFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwaDEuNlYyNy44N0E4LjMzLDguMzMsMCwwLDEsMTgsMjUuMjlhOC4zMyw4LjMz''@;'; + put 'put ''LDAsMCwxLDYuNCwyLjU5VjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyVjMySDhWOGg0VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBj''@;'; + put 'put ''eT0iMTcuNzciIHI9IjQuMjMiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEsNGEyLDIsMCwwLDAtMi0ySDE3YTIsMiwwLDAsMC0yLDJ2Nmg2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIg''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw2SDIzVjhoNVYzMkg4VjhoNVY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMjgsNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksOS44OSwyMSw2LjVWNGEyLDIsMCwwLDAtMi0ySDE3YTIsMiwwLDAsMC0yLDJ2Nmg0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJj''@;'; + put 'put ''bGUgY3g9IjE4IiBjeT0iMTcuNzciIHI9IjQuMjMiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMEgyNlYyNy43YTEuMTIsMS4x''@;'; + put 'put ''MiwwLDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuNFYzMkg4VjhoNVY2''@;'; + put 'put ''SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4''@;'; + put 'put ''LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTcuNzciIHI9IjQuMjMiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDRhMiwyLDAsMCwwLTItMkgxN2EyLDIsMCwwLDAtMiwy''@;'; + put 'put ''djZoNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAs''@;'; + put 'put ''MCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMkg4VjhoNVY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCww''@;'; + put 'put ''LDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjgsMTMuMjJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVSZXBlYXQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik02LDE0LjE1QTMuMTcs''@;'; + put 'put ''My4xNywwLDAsMSw5LjE3LDExSDI4LjRsLTQuMjgsNC41NGExLDEsMCwxLDAsMS40NiwxLjM3TDMyLjA5LDEwLDI1LjU4LDMuMDlhMSwxLDAsMSwwLTEuNDYsMS4zN0wyOC40LDlIOS4xN0E1LjE3LDUuMTcsMCwwLDAsNCwxNC4xNXY2LjFsMi0yLjEyWiIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMCwyMS44NUEzLjE3LDMuMTcsMCwwLDEsMjYuODMsMjVINy42bDQuMjgtNC41NGExLDEsMCwxLDAtMS40Ni0xLjM3TDMuOTEsMjZsNi41MSw2LjkxYTEsMSwwLDEsMCwxLjQ2LTEuMzdMNy42LDI3SDI2Ljgz''@;'; + put 'put ''QTUuMTcsNS4xNywwLDAsMCwzMiwyMS44NXYtNi4xbC0yLDIuMTJaIi8+JyksZS5DbHJTaGFwZUZpbGVHcm91cD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDM0SDEzYTEsMSwwLDAsMS0xLTFWMTFhMSwx''@;'; + put 'put ''LDAsMCwxLDEtMUgzMWExLDEsMCwwLDEsMSwxVjMzQTEsMSwwLDAsMSwzMSwzNFpNMTQsMzJIMzBWMTJIMTRaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMTYiIHk9IjE2IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjE2IiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4''@;'; + put 'put ''PSIxNiIgeT0iMjQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTYsMjRWNEgyNFYzYTEsMSwwLDAsMC0xLTFINUExLDEsMCwwLDAsNCwzVjI1YTEsMSwwLDAsMCwxLDFINloi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBkPSJNMTAsMjhWOEgyOFY3YTEsMSwwLDAsMC0xLTFIOUExLDEsMCwwLDAsOCw3VjI5YTEsMSwwLDAsMCwxLDFoMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMSwxMEgxM2ExLDEsMCwwLDAtMSwxVjMzYTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDEtMVYxMUExLDEsMCwwLDAsMzEsMTBaTTI4LDI2SDE2VjI0SDI4Wm0wLTRIMTZWMjBIMjhabTAtNEgxNlYxNkgyOFoiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik02LDI0VjRIMjRWM2ExLDEsMCwwLDAtMS0xSDVBMSwxLDAsMCwwLDQsM1YyNWExLDEsMCwwLDAsMSwxSDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0zIiBkPSJNMTAsMjhWOEgyOFY3YTEsMSwwLDAsMC0xLTFIOUExLDEsMCwwLDAsOCw3VjI5YTEsMSwwLDAsMCwxLDFoMVoiLz4nKSxlLkNsclNoYXBlUGFwZXJjbGlwPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiBkPSJNOC40MiwzMi42QTYuMyw2LjMsMCwwLDEsNCwzMC43OWwtLjEzLS4xM0E2LjIsNi4yLDAsMCwxLDIsMjYuMjIsNi43Nyw2Ljc3LDAsMCwxLDQsMjEuNEwxOS41LDYuMDdhOC42Nyw4LjY3LDAsMCwxLDEyLjE1LS4zNUE4LDgsMCwwLDEsMzQsMTEuNDRhOSw5LDAsMCwxLTIuNyw2''@;'; + put 'put ''LjM2TDE3LjM3LDMxLjZBMSwxLDAsMSwxLDE2LDMwLjE4TDI5Ljg5LDE2LjM4QTcsNywwLDAsMCwzMiwxMS40NGE2LDYsMCwwLDAtMS43Ni00LjMsNi42Nyw2LjY3LDAsMCwwLTkuMzQuMzVMNS40NSwyMi44MkE0Ljc4LDQuNzgsMCwwLDAsNCwyNi4yMmE0LjIxLDQuMjEsMCwwLDAsMS4yNCwz''@;'; + put 'put ''bC4xMy4xM2E0LjY0LDQuNjQsMCwwLDAsNi41LS4yMUwyNS4yMiwxNS45NEEyLjcsMi43LDAsMCwwLDI2LDE0YTIuMzUsMi4zNSwwLDAsMC0uNjktMS42OCwyLjYxLDIuNjEsMCwwLDAtMy42Ni4xM2wtOS4yLDkuMTJhMSwxLDAsMSwxLTEuNDEtMS40MkwyMC4yOCwxMWE0LjYyLDQuNjIsMCww''@;'; + put 'put ''LDEsNi40OC0uMTNBNC4zMyw0LjMzLDAsMCwxLDI4LDE0YTQuNjgsNC42OCwwLDAsMS0xLjQxLDMuMzRMMTMuMjgsMzAuNThBNi45MSw2LjkxLDAsMCwxLDguNDIsMzIuNloiLz4nKSxlLkNsclNoYXBlU2hyaW5rPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMTVIMjIuNDFsOS4yNS05LjI1YTEsMSwwLDAsMC0xLjQxLTEuNDFMMjEsMTMuNTlWNGExLDEsMCwwLDAtMiwwVjE3SDMyYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMiIgZD0iTTQsMTlhMSwxLDAsMCwwLDAsMmg5LjU5TDQuMzMsMzAuMjVhMSwxLDAsMSwwLDEuNDEsMS40MUwxNSwyMi40MVYzMmExLDEsMCwwLDAsMiwwVjE5WiIvPicpLGUuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5MT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTQu''@;'; + put 'put ''NDQsMzEuOTRhNy4zMSw3LjMxLDAsMCwxLTUuNy0xMS44OEw3LjMyLDE4LjY0YTkuMyw5LjMsMCwwLDAsMTMuMSwxMy4xMUwxOSwzMC4zM0E3LjI5LDcuMjksMCwwLDEsMTQuNDQsMzEuOTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0yNS4zNiwxLjY3YTQuMTIsNC4xMiwwLDEsMCw0LjExLDQuMTFBNC4xMiw0LjEyLDAsMCwwLDI1LjM2LDEuNjdabTAsNi4yM2EyLjEyLDIuMTIsMCwxLDEsMi4xMS0yLjEyQTIuMTIsMi4xMiwwLDAsMSwyNS4zNiw3LjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41NiwxOC4xOGgtNWExLDEsMCwwLDAtLjI0LjA1bDMuMDktMy41NWEyLjgzLDIuODMsMCwwLDAtLjY5LTQuMzNsLTgtNC42YTEsMSwwLDAsMC0xLjEyLjA4TDkuODMsOS41OEExLDEsMCwwLDAsOS42NiwxMWEx''@;'; + put 'put ''LDEsMCwwLDAsLjc5LjM4LDEsMSwwLDAsMCwuNjEtLjIxbDQuMjctMy4zNCwzLjExLDEuNzctNS4wOCw1Ljc4aDBhOS4yOCw5LjI4LDAsMCwwLTQuNTMsMS44M2wxLjQzLDEuNDNBNy4zLDcuMywwLDAsMSwyMC40MiwyOC44MWwxLjQyLDEuNDNhOS4yNyw5LjI3LDAsMCwwLC43Ny0xMC4wNmgy''@;'; + put 'put ''LjgybC0uNzcsNi41MWExLDEsMCwwLDAsLjg4LDEuMTFoLjEyYTEsMSwwLDAsMCwxLS44OGwuOS03LjYyYTEsMSwwLDAsMC0uMjUtLjc4QTEsMSwwLDAsMCwyNi41NiwxOC4xOFptLTYuMzctNy41NiwyLjUyLDEuNDZhLjc5Ljc5LDAsMCwxLC40LjU5LjgxLjgxLDAsMCwxLS4yLjY5TDE5Ljc1''@;'; + put 'put ''LDE3QTkuMTcsOS4xNywwLDAsMCwxNiwxNS40NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0Ljc3LDMxLjk0YTcuMzEsNy4zMSwwLDAsMS01LjctMTEuODhMNy42NSwxOC42NGE5LjMsOS4zLDAsMCwwLDEz''@;'; + put 'put ''LjEsMTMuMTFsLTEuNDItMS40MkE3LjI5LDcuMjksMCwwLDEsMTQuNzcsMzEuOTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjY1LDIuMWEzLjEyLDMuMTIsMCwxLDAsMy4xMSwzLjEyQTMuMTIsMy4xMiwwLDAs''@;'; + put 'put ''MCwyNi42NSwyLjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjgxLDE4LjE4SDIxLjQ3cS0uMzEtLjMzLS42Ni0uNjNsNC4zOC00Ljg2YTIuMTQsMi4xNCwwLDAsMC0uNTMtMy4yN0wyMC45LDcuMjNsMCwwTDE3''@;'; + put 'put ''LjA1LDUuMDdhMSwxLDAsMCwwLTEuMTEuMDhMMTEuMTUsOC45YTEsMSwwLDAsMCwxLjIzLDEuNThsNC4yNy0zLjM0LDIuODcsMS42M0wxMy42LDE1LjM5YTkuMzMsOS4zMywwLDAsMC00LjQ0LDEuODJsMS40MiwxLjQzQTcuMyw3LjMsMCwwLDEsMjAuNzUsMjguODFsMS40MywxLjQzQTkuMjcs''@;'; + put 'put ''OS4yNywwLDAsMCwyMywyMC4xOGgyLjc0bC0uNzcsNi41MWExLDEsMCwwLDAsLjg3LDEuMTFoLjEyYTEsMSwwLDAsMCwxLS44OGwuOS03LjYyYTEsMSwwLDAsMC0uMjUtLjc4QTEsMSwwLDAsMCwyNi44MSwxOC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+''@;'; + put 'put ''JyksZS5DbHJTaGFwZUFjY2Vzc2liaWxpdHkyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMC4wNiwxMWgtMjRhMSwxLDAsMSwwLDAsMkgxNHY5LjY1czAsMCwwLDBsLTMuNzUsMTBhMSwxLDAsMCwwLC41OCwxLjI5LDEuMTMsMS4xMywwLDAsMCwuMzYuMDYsMSwxLDAsMCwwLC45My0u''@;'; + put 'put ''NjVMMTUuNjIsMjRoNC43NmwzLjUyLDkuMzVhMSwxLDAsMCwwLC45My42NSwxLjEzLDEuMTMsMCwwLDAsLjM2LS4wNiwxLDEsMCwwLDAsLjU4LTEuMjlMMjIsMjIuNjhzMCwwLDAsMFYxM2g4LjA2YTEsMSwwLDEsMCwwLTJaTTIwLDIySDE2VjEzaDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMGE0LDQsMCwxLDAtNC00QTQsNCwwLDAsMCwxOCwxMFptMC02YTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDE4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE3Ljk2IiBjeT0iNSIgcj0iMyIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMEg2YTEsMSwwLDAsMCwwLDJoOHY4LjM2czAsMCwwLDBMMTAuMTEsMzMuMTdhMSwxLDAs''@;'; + put 'put ''MCwwLC42NiwxLjI1LDEuNTUsMS41NSwwLDAsMCwuMjksMCwxLDEsMCwwLDAsMS0uNzFsMy4yOS0xMC44NGg1LjM4TDI0LDMzLjc1YTEsMSwwLDAsMCwxLC43MSwxLjU1LDEuNTUsMCwwLDAsLjI5LDAsMSwxLDAsMCwwLC42Ni0xLjI1TDIyLDIwLjRzMCwwLDAsMFYxMmg4YTEsMSwwLDAsMCww''@;'; + put 'put ''LTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVTb3J0Qnk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LjU0LDEzSDcuNDZhMSwxLDAsMCwxLDAtMkgyOC41NGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuMTcsMTlINy40NmExLDEsMCwwLDEsMC0ySDIxLjE3YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0xMy43NCwyNUg3LjQ2YTEsMSwwLDAsMSwwLTJoNi4yOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZUNvbGxhcHNlQ2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsMjFIM2ExLDEsMCww''@;'; + put 'put ''LDAtMSwxdjZhMSwxLDAsMCwwLDEsMUgzM2ExLDEsMCwwLDAsMS0xVjIyQTEsMSwwLDAsMCwzMywyMVptLTEsNkg0VjIzSDMyWiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjAuMjJsNS42NS01LjY1YS44''@;'; + put 'put ''MS44MSwwLDAsMCwwLTEuMTQuOC44LDAsMCwwLTEuMTMsMEwxOCwxOGwtNC41Mi00LjUyYS44LjgsMCwwLDAtMS4xMywwLC44MS44MSwwLDAsMCwwLDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwx''@;'; + put 'put ''NC4yMmw1LjY1LTUuNjVhLjgxLjgxLDAsMCwwLDAtMS4xNC44LjgsMCwwLDAtMS4xMywwTDE4LDEyLDEzLjQ4LDcuNDNhLjguOCwwLDAsMC0xLjEzLDAsLjgxLjgxLDAsMCwwLDAsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgeD0iMiIgeT0iMjIiIHdpZHRoPSIzMiIgaGVpZ2h0PSI4IiByeD0iMSIgcnk9IjEiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjAuN2wtNS43OS01Ljc5YTEsMSwwLDAsMSwwLTEuNDEsMSwxLDAs''@;'; + put 'put ''MCwxLDEuNDEsMEwxOCwxNy44N2w0LjM4LTQuMzdhMSwxLDAsMCwxLDEuNDEsMCwxLDEsMCwwLDEsMCwxLjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxNC41LDEyLjIxLDguNzFhMSwxLDAsMCwxLDAtMS40''@;'; + put 'put ''MiwxLDEsMCwwLDEsMS40MSwwTDE4LDExLjY3bDQuMzgtNC4zOGExLDEsMCwwLDEsMS40MSwwLDEsMSwwLDAsMSwwLDEuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLGUuQ2xyU2hhcGVFeHBhbmRDYXJkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9''@;'; + put 'put ''Ik0zMyw2SDNBMSwxLDAsMCwwLDIsN1YyOWExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWN0ExLDEsMCwwLDAsMzMsNlpNMzIsMjhINFY4SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy40OCwx''@;'; + put 'put ''NS44NiwxOCwxMS4zNGw0LjUyLDQuNTJhLjc3Ljc3LDAsMCwwLC41Ni4yNC44MS44MSwwLDAsMCwuNTctMS4zN0wxOCw5LjA4bC01LjY1LDUuNjVhLjguOCwwLDEsMCwxLjEzLDEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTEzLjQ4LDIxLjg2LDE4LDE3LjM0bDQuNTIsNC41MmEuNzcuNzcsMCwwLDAsLjU2LjI0LjgxLjgxLDAsMCwwLC41Ny0xLjM3TDE4LDE1LjA4bC01LjY1LDUuNjVhLjguOCwwLDEsMCwxLjEzLDEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDZIM0ExLDEsMCwwLDAsMiw3VjI5YTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCwzMyw2Wk0yMy43OSwyMS40MWExLDEsMCwwLDEtMS40MSwwTDE4LDE3bC00LjM4LDQuMzhhMSwxLDAsMCwxLTEuNDEsMCwx''@;'; + put 'put ''LDEsMCwwLDEsMC0xLjQyTDE4LDE0LjIsMjMuNzksMjBBMSwxLDAsMCwxLDIzLjc5LDIxLjQxWm0wLTYuMmExLDEsMCwwLDEtMS40MSwwTDE4LDEwLjgzbC00LjM4LDQuMzhhMSwxLDAsMCwxLTEuNDEsMCwxLDEsMCwwLDEsMC0xLjQyTDE4LDhsNS43OSw1Ljc5QTEsMSwwLDAsMSwyMy43OSwx''@;'; + put 'put ''NS4yMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUJyaWVmY2FzZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsMjhhMCwwLDAsMCwxLDAsMEg0VjIxLjMyYTcuMSw3LjEsMCwwLDEtMi0xLjQzVjI4YTIsMiwwLDAsMCwyLDJI''@;'; + put 'put ''MzJhMiwyLDAsMCwwLDItMlYxOS44OWE2Ljc0LDYuNzQsMCwwLDEtMiwxLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMjUsMjIuNGExLDEsMCwwLDAsMS0xVjE1Ljk0SDI0VjE4SDE0djJIMjR2MS40QTEsMSwwLDAsMCwyNSwy''@;'; + put 'put ''Mi40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNMzMsNkgyNFY0LjM4QTIuNDIsMi40MiwwLDAsMCwyMS41NSwyaC03LjFBMi40MiwyLjQyLDAsMCwwLDEyLDQuMzhWNkgzQTEsMSwwLDAsMCwyLDd2OGE1LDUsMCwwLDAsNSw1aDN2''@;'; + put 'put ''MS40YTEsMSwwLDAsMCwyLDBWMTUuOTRIMTBWMThIN2EzLDMsMCwwLDEtMy0zVjhIMzJ2N2EzLDMsMCwwLDEtMywzSDI4djJoMWE1LDUsMCwwLDAsNS01VjdBMSwxLDAsMCwwLDMzLDZaTTIyLDZIMTRWNC40M0EuNDUuNDUsMCwwLDEsMTQuNDUsNGg3LjExYS40My40MywwLDAsMSwuNDQuNDJa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbjxwYXRoIGQ9Ik0zMCwxOEE0LjA2LDQuMDYsMCwwLDAsMzQsMTRWNkgyNFY0LjQzQTIuNDQsMi40NCwwLDAsMCwyMS41NSwyaC03LjFBMi40NCwyLjQ0LDAsMCwwLDEyLDQuNDNWNkgydjhBNC4wNiw0LjA2''@;'; + put 'put ''LDAsMCwwLDYuMDUsMThoNFYxNS45MmgydjUuN2ExLDEsMCwxLDEtMiwwVjIwLjA2SDYuMDZBNi4wNiw2LjA2LDAsMCwxLDIsMTguNDl2OS40NWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTguNDlhNiw2LDAsMCwxLTQuMDYsMS41N0gyOFYxOFpNMTQsNC40M0EuNDUuNDUsMCww''@;'; + put 'put ''LDEsMTQuNDUsNGg3LjFhLjQ1LjQ1LDAsMCwxLC40NS40M1Y2SDE0Wk0yNiwyMS42MmExLDEsMCwxLDEtMiwwVjIwLjA2SDE0VjE4SDI0VjE1LjkyaDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVDb2xvclBpY2tlcj0oMCxhLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMzMsMTAuMDVhNS4wNyw1LjA3LDAsMCwwLC4xLTcuMTdBNS4wNiw1LjA2LDAsMCwwLDI2LDNMMjAuNzgsOC4xNWEyLjEzLDIuMTMsMCwwLDEtMywwbC0uNjctLjY3TDE1LjcyLDguOTIsMjcuMDgsMjAuMjhsMS40Mi0xLjQyLS42Ny0uNjdhMi4xMywyLjEzLDAs''@;'; + put 'put ''MCwxLDAtM1pNMjYuNDQsMTMuOGE0LjA3LDQuMDcsMCwwLDAtMS4wOCwxLjkybC01LjA4LTUuMDhBNC4wNyw0LjA3LDAsMCwwLDIyLjIsOS41Nmw1LjE2LTUuMTdhMy4wOSwzLjA5LDAsMCwxLDQuMzUtLjEsMy4wOSwzLjA5LDAsMCwxLS4xLDQuMzVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik03LjMsMzEuNTFhMiwyLDAsMSwxLTIuODMtMi44M0wxOC41OCwxNC41N2wtMS40Mi0xLjQxTDMuMDUsMjcuMjdhNCw0LDAsMCwwLS42OCw0LjhMLjg5LDMzLjU1QTEsMSwwLDAsMCwuODksMzVhMSwxLDAsMCwwLDEuNDIsMGwxLjQz''@;'; + put 'put ''LTEuNDRhMy45MywzLjkzLDAsMCwwLDIuMDkuNiw0LjA2LDQuMDYsMCwwLDAsMi44OC0xLjJMMjIuODIsMTguODEsMjEuNDEsMTcuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTMzLjczLDIuMTFhNC4wOSw0LjA5LDAsMCwwLTUu''@;'; + put 'put ''NzYuMUwyMi44MSw3LjM4YTMuMTMsMy4xMywwLDAsMS00LjMuMTFMMTcuMDksOC45MSwyNywxOC43OWwxLjQyLTEuNDJBMy4xOCwzLjE4LDAsMCwxLDI4LjQ2LDEzbDUuMTctNS4xN0E0LjA4LDQuMDgsMCwwLDAsMzMuNzMsMi4xMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEiIC8+XG48cGF0aCBkPSJNMjIuMTgsMTYuNzksNy40NiwzMS41MWEyLDIsMCwxLDEtMi44Mi0yLjgzTDE5LjM1LDE0bC0xLjQxLTEuNDFMMy4yMiwyNy4yN2E0LDQsMCwwLDAtLjY4LDQuOEwxLjA2LDMzLjU1YTEsMSwwLDAsMCwwLDEuNDEsMSwxLDAsMCwwLDEuNDEsMGwxLjQ0LTEu''@;'; + put 'put ''NDRhMy45MywzLjkzLDAsMCwwLDIuMDkuNiw0LjA2LDQuMDYsMCwwLDAsMi44OC0xLjJMMjMuNiwxOC4yMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUNvcHlUb0NsaXBib2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjIu''@;'; + put 'put ''Niw0SDIxLjU1YTMuODksMy44OSwwLDAsMC03LjMxLDBIMTMuNEEyLjQxLDIuNDEsMCwwLDAsMTEsNi40VjEwSDI1VjYuNEEyLjQxLDIuNDEsMCwwLDAsMjIuNiw0Wk0yMyw4SDEzVjYuMjVBLjI1LjI1LDAsMCwxLDEzLjI1LDZoMi42OWwuMTItMS4xMUExLjI0LDEuMjQsMCwwLDEsMTYuNjEs''@;'; + put 'put ''NGEyLDIsMCwwLDEsMy4xNSwxLjE4bC4wOS44NGgyLjlhLjI1LjI1LDAsMCwxLC4yNS4yNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTMzLjI1LDE4LjA2SDIxLjMzbDIuODQtMi44M2ExLDEsMCwxLDAtMS40Mi0xLjQyTDE3LjUs''@;'; + put 'put ''MTkuMDZsNS4yNSw1LjI1YTEsMSwwLDAsMCwuNzEuMjksMSwxLDAsMCwwLC43MS0xLjdsLTIuODQtMi44NEgzMy4yNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNMjksMTZoMlY2LjY4QTEuNjYsMS42Niww''@;'; + put 'put ''LDAsMCwyOS4zNSw1SDI3LjA4VjdIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbjxwYXRoIGQ9Ik0yOSwzMUg3VjdIOVY1SDYuNjRBMS42NiwxLjY2LDAsMCwwLDUsNi42N1YzMS4zMkExLjY2LDEuNjYsMCwwLDAsNi42NSwzM0gyOS4zNkExLjY2''@;'; + put 'put ''LDEuNjYsMCwwLDAsMzEsMzEuMzNWMjIuMDZIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlRHJhZ0hhbmRsZT0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxNSIgY3k9IjEyIiByPSIxLjUiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjE1IiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PGNpcmNsZSBjeD0iMjEiIGN5PSIxMiIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMyIgLz48Y2lyY2xlIGN4PSIyMSIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxjaXJjbGUgY3g9IjIxIiBjeT0iMTgiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTUiIC8+PGNpcmNsZSBjeD0iMTUiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxlLkNsclNoYXBlRmlsdGVyMj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsMTFIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSww''@;'; + put 'put ''LDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0yOCwxN0g4YTEsMSwwLDAsMCwwLDJIMjhhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0i''@;'; + put 'put ''TTIzLDIzSDEzYTEsMSwwLDAsMCwwLDJIMjNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGUuQ2xyU2hhcGVNb29uPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwyNy4xOWExLDEsMCwwLDAtMS0uNTZjLS4yOCww''@;'; + put 'put ''LS41NiwwLS44NSwwQTExLDExLDAsMCwxLDI0LjkyLDUuNjFhMSwxLDAsMCwwLC42MS0xLDEsMSwwLDAsMC0uNjctLjkxLDE0LjcsMTQuNywwLDAsMC01LS44NywxNS4xMiwxNS4xMiwwLDAsMCwwLDMwLjI0LDE0Ljc4LDE0Ljc4LDAsMCwwLDExLTQuODFBMSwxLDAsMCwwLDMxLDI3LjE5Wk0x''@;'; + put 'put ''OS44OSwzMS4xMmExMy4xMiwxMy4xMiwwLDAsMSwwLTI2LjI0LDExLjgxLDExLjgxLDAsMCwxLDIsLjE2LDEzLDEzLDAsMCwwLDUuNzIsMjMuNTNBMTIuNzUsMTIuNzUsMCwwLDEsMTkuODksMzEuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxw''@;'; + put 'put ''YXRoIGQ9Ik0yOS4yLDI2LjcyQTEyLjA3LDEyLjA3LDAsMCwxLDIyLjksNC40NCwxMy42OCwxMy42OCwwLDAsMCwxOS40OSw0YTE0LDE0LDAsMCwwLDAsMjgsMTMuODIsMTMuODIsMCwwLDAsMTAuOS01LjM0QTExLjcxLDExLjcxLDAsMCwxLDI5LjIsMjYuNzJaIiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVTdW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDYuMzFhMSwxLDAsMCwwLDEtMVYxLjkxYTEsMSwwLDAsMC0yLDB2My40QTEsMSwwLDAsMCwxOCw2LjMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMTgsMjkuNjlhMSwxLDAsMCwwLTEsMXYzLjRhMSwxLDAsMCwwLDIsMHYtMy40QTEsMSwwLDAsMCwxOCwyOS42OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTguMzIsOS43NEExLDEs''@;'; + put 'put ''MCwwLDAsOSwxMGExLDEsMCwwLDAsLjcxLS4yOSwxLDEsMCwwLDAsMC0xLjQyTDcuMzMsNS45MkExLDEsMCwwLDAsNS45Miw3LjMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI3LjY4LDI2LjI2YTEsMSwwLDEsMC0xLjQyLDEuNDJs''@;'; + put 'put ''Mi40MSwyLjRhMSwxLDAsMCwwLC43MS4zLDEsMSwwLDAsMCwuNy0uMywxLDEsMCwwLDAsMC0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTYuMzEsMThhMSwxLDAsMCwwLTEtMUgxLjkxYTEsMSwwLDAsMCwwLDJoMy40QTEsMSww''@;'; + put 'put ''LDAsMCw2LjMxLDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTM0LjA5LDE3aC0zLjRhMSwxLDAsMSwwLDAsMmgzLjRhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxw''@;'; + put 'put ''YXRoIGQ9Ik04LjMyLDI2LjI2bC0yLjQsMi40MWExLDEsMCwwLDAsLjcsMS43MSwxLDEsMCwwLDAsLjcxLS4zbDIuNDEtMi40YTEsMSwwLDEsMC0xLjQyLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMjcsMTBhMSwxLDAsMCww''@;'; + put 'put ''LC43MS0uMjlsMi40LTIuNDFhMSwxLDAsMCwwLDAtMS40MSwxLDEsMCwwLDAtMS40MSwwbC0yLjQxLDIuNGExLDEsMCwwLDAsMCwxLjQyQTEsMSwwLDAsMCwyNywxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxwYXRoIGQ9Ik0xOC4xMyw3Ljc1YTEw''@;'; + put 'put ''LjEzLDEwLjEzLDAsMSwwLDEwLDEwLjEzQTEwLjA4LDEwLjA4LDAsMCwwLDE4LjEzLDcuNzVabTAsMTguMjVhOC4xMyw4LjEzLDAsMSwxLDgtOC4xMkE4LjA4LDguMDgsMCwwLDEsMTguMTMsMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz48cGF0aCBk''@;'; + put 'put ''PSJNMTgsNi40MmExLDEsMCwwLDAsMS0xVjEuOTFhMSwxLDAsMCwwLTIsMFY1LjQyQTEsMSwwLDAsMCwxOCw2LjQyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMjkuNThhMSwxLDAsMCwwLTEsMXYzLjUxYTEsMSwwLDAsMCwyLDBWMzAu''@;'; + put 'put ''NThBMSwxLDAsMCwwLDE4LDI5LjU4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNOC40LDkuODFBMSwxLDAsMCwwLDkuODEsOC40TDcuMzMsNS45MkExLDEsMCwwLDAsNS45Miw3LjMzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMyIgLz48cGF0aCBkPSJNMjcuNiwyNi4xOWExLDEsMCwwLDAtMS40MSwxLjQxbDIuNDgsMi40OGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJNNi40MiwxOGExLDEsMCwwLDAtMS0xSDEuOTFhMSwx''@;'; + put 'put ''LDAsMCwwLDAsMkg1LjQyQTEsMSwwLDAsMCw2LjQyLDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMzQuMDksMTdIMzAuNThhMSwxLDAsMCwwLDAsMmgzLjUxYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC02IiAvPjxwYXRoIGQ9Ik04LjQsMjYuMTksNS45MiwyOC42N2ExLDEsMCwwLDAsMS40MSwxLjQxTDkuODEsMjcuNkExLDEsMCwwLDAsOC40LDI2LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNyIgLz48cGF0aCBkPSJNMjcuNiw5LjgxbDIuNDgtMi40''@;'; + put 'put ''OGExLDEsMCwwLDAtMS40MS0xLjQxTDI2LjE5LDguNEExLDEsMCwwLDAsMjcuNiw5LjgxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtOCIgLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIxMCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtOSIg''@;'; + put 'put ''Lz4nKSxlLkNsclNoYXBlV2FuZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LjEsNCwzMS43MSwxLjZhMS44MywxLjgzLDAsMCwwLTEuMzEtLjU0aDBhMi4wNSwyLjA1LDAsMCwwLTEuNDUuNjJMMS43Niwy''@;'; + put 'put ''OS4yM0EyLDIsMCwwLDAsMS42OCwzMmwyLjQsMi40M0ExLjgzLDEuODMsMCwwLDAsNS4zOSwzNWgwYTIuMDUsMi4wNSwwLDAsMCwxLjQ1LS42MkwzNCw2Ljc5QTIsMiwwLDAsMCwzNC4xLDRaTTUuNDIsMzIuOTMsMy4xNiwzMC42NWgwTDI0LjExLDkuNDNsMi4yNSwyLjI4Wk0zMi42MSw1LjM5''@;'; + put 'put ''bC01LjEyLDUuMThMMjUuMjQsOC4yOWw1LjEzLTUuMiwyLjI1LDIuMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLjUzLDIwLjQ3bDIuMDktMi4wOWEuOC44LDAsMCwwLTEuMTMtMS4xM2wtMi4wOSwyLjA5''@;'; + put 'put ''LTIuMDktMi4wOWEuOC44LDAsMCwwLTEuMTMsMS4xM2wyLjA5LDIuMDktMi4wOSwyLjA5YS44LjgsMCwwLDAsMS4xMywxLjEzbDIuMDktMi4wOSwyLjA5LDIuMDlhLjguOCwwLDAsMCwxLjEzLTEuMTNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMyIgZD0iTTE0Ljc4LDYuNTFhLjguOCwwLDAsMCwxLjEzLDBMMTcuNCw1bDEuNDksMS40OUEuOC44LDAsMCwwLDIwLDUuMzhMMTguNTQsMy44OSwyMCwyLjRhLjguOCwwLDAsMC0xLjEzLTEuMTNMMTcuNCwyLjc2LDE1LjkxLDEuMjdBLjguOCwwLDEsMCwxNC43OCwyLjRs''@;'; + put 'put ''MS40OSwxLjQ5TDE0Ljc4LDUuMzhBLjguOCwwLDAsMCwxNC43OCw2LjUxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik04LjMzLDE1LjI2YS44LjgsMCwwLDAsMS4xMywwbDEuMTYtMS4xNiwxLjE2LDEuMTZhLjgu''@;'; + put 'put ''OCwwLDEsMCwxLjEzLTEuMTNMMTEuNzYsMTNsMS4xNi0xLjE2YS44LjgsMCwxLDAtMS4xMy0xLjEzbC0xLjE2LDEuMTZMOS40NiwxMC42OGEuOC44LDAsMSwwLTEuMTMsMS4xM0w5LjQ5LDEzLDguMzMsMTQuMTNBLjguOCwwLDAsMCw4LjMzLDE1LjI2WiIvPicpLGUuQ2xyU2hhcGVDdXJzb3JN''@;'; + put 'put ''b3ZlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOC44NSwxMi44OWExLDEsMCwwLDAtMS40MiwwLDEsMSwwLDAsMCwwLDEuNDFMMzAuMTQsMTdIMTlWNS44NmwyLjY5LDIuN2ExLDEsMCwwLDAsMS40MSwwLDEsMSwwLDAsMCwwLTEuNDJMMTgsMiwxMi44OSw3LjE1YTEsMSwwLDAsMC0u''@;'; + put 'put ''MjkuNzEsMSwxLDAsMCwwLDEuNzEuN0wxNyw1Ljg2VjE3SDUuODZsMi43LTIuNjlhMSwxLDAsMCwwLDAtMS40MSwxLDEsMCwwLDAtMS40MiwwTDIsMThsNS4xNCw1LjExYTEsMSwwLDAsMCwuNzEuMjksMSwxLDAsMCwwLC43LTEuNzFMNS44NiwxOUgxN1YzMC4xNGwtMi42OS0yLjdhMSwxLDAs''@;'; + put 'put ''MCwwLTEuNzEuNywxLDEsMCwwLDAsLjI5LjcxTDE4LDM0bDUuMTEtNS4xNGExLDEsMCwwLDAsMC0xLjQyLDEsMSwwLDAsMC0xLjQxLDBMMTksMzAuMTRWMTlIMzAuMTRsLTIuNywyLjY5YTEsMSwwLDAsMCwuNywxLjcxLDEsMSwwLDAsMCwuNzEtLjI5TDM0LDE4WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUNsb25lPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LDZIMjJ2NGgyVjZhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDZWMjJhMiwyLDAsMCwwLDIsMmg0VjIySDZaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAsMTJIMTRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTRBMiwyLDAsMCwwLDMwLDEyWm0wLDE4SDE0VjE0SDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTIiIC8+PHBvbHlnb24gcG9pbnRzPSIyMSAyOCAyMyAyOCAyMyAyMyAyOCAyMyAyOCAyMSAyMyAyMSAyMyAxNiAyMSAxNiAyMSAyMSAxNiAyMSAxNiAyMyAyMSAyMyAyMSAyOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI0LDEw''@;'; + put 'put ''VjZhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDZWMjJhMiwyLDAsMCwwLDIsMmg0VjEyYTIsMiwwLDAsMSwyLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxMkgxNGEyLDIsMCwwLDAtMiwyVjMwYTIsMiwwLDAsMCwyLDJIMzBh''@;'; + put 'put ''MiwyLDAsMCwwLDItMlYxNEEyLDIsMCwwLDAsMzAsMTJaTTI4LDIzSDIzdjVIMjFWMjNIMTZWMjFoNVYxNmgydjVoNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZURldGFpbHM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZI''@;'; + put 'put ''NEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik05LDE0SDI3YTEsMSwwLDAsMCwwLTJIOWExLDEs''@;'; + put 'put ''MCwwLDAsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTksMThIMjdhMSwxLDAsMCwwLDAtMkg5YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNOSwy''@;'; + put 'put ''MkgxOWExLDEsMCwwLDAsMC0ySDlhMSwxLDAsMCwwLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpN''@;'; + put 'put ''MTksMjJIOWExLDEsMCwwLDEsMC0ySDE5YTEsMSwwLDAsMSwwLDJabTgtNEg5YTEsMSwwLDAsMSwwLTJIMjdhMSwxLDAsMCwxLDAsMlptMC00SDlhMSwxLDAsMCwxLDAtMkgyN2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNs''@;'; + put 'put ''clNoYXBlRHJhZ0hhbmRsZUNvcm5lcj0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxMiIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48Y2lyY2xlIGN4PSIyNCIgY3k9IjEyIiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC00IiAvPjxjaXJjbGUgY3g9IjI0IiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PGNpcmNsZSBjeD0iMjQiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNiIgLz4nKSxlLkNsclNoYXBlRXJhc2VyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNS42MiwxMmEyLjgyLDIuODIsMCwwLDAtLjg0LTJMMjcuNDksMi42NWEyLjksMi45LDAsMCwwLTQsMEwyLjgzLDIzLjI4YTIuODQsMi44NCwwLDAsMCwwLDRMNy41MywzMkgzYTEsMSwwLDAs''@;'; + put 'put ''MCwwLDJIMjhhMSwxLDAsMCwwLDAtMkgxNi43NGwxOC0xOEEyLjgyLDIuODIsMCwwLDAsMzUuNjIsMTJaTTEzLjkxLDMySDEwLjM2TDQuMjUsMjUuODlhLjg0Ljg0LDAsMCwxLDAtMS4xOWw1LjUxLTUuNTIsOC40OSw4LjQ4Wk0zMy4zNywxMi41NCwxOS42NiwyNi4yNWwtOC40OC04LjQ5LDEz''@;'; + put 'put ''LjctMTMuN2EuODYuODYsMCwwLDEsMS4xOSwwbDcuMyw3LjI5YS44Ni44NiwwLDAsMSwuMjUuNkEuODIuODIsMCwwLDEsMzMuMzcsMTIuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjgsMzJIMTUuMzNMMTksMjguMzdsLTkuOS05''@;'; + put 'put ''LjlMMy41NCwyNGExLjgzLDEuODMsMCwwLDAsMCwyLjZMOSwzMkgzYTEsMSwwLDAsMCwwLDJIMjhhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTM0LjA4LDEwLjY1bC03LjMtNy4zYTEuODMsMS44MywwLDAsMC0yLjYs''@;'; + put 'put ''MEwxMC40NywxNy4wNmw5LjksOS45TDM0LjA4LDEzLjI1QTEuODUsMS44NSwwLDAsMCwzNC4wOCwxMC42NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUxhbmRzY2FwZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIs''@;'; + put 'put ''MiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMjJINFY4SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTksMjJhLjgyLjgyLDAsMCwwLC41NS0uMjEuOC44LDAs''@;'; + put 'put ''MCwwLDAtMS4xM0w3LjgzLDE4LjhIMjguMTdsLTEuNzIsMS44NmEuOC44LDAsMCwwLDAsMS4xM0EuODIuODIsMCwwLDAsMjcsMjJhLjc4Ljc4LDAsMCwwLC41OC0uMjZMMzEuMDksMThsLTMuNDctMy43NGEuNzkuNzksMCwwLDAtMS4xMywwLC44LjgsMCwwLDAsMCwxLjEzbDEuNzIsMS44Nkg3''@;'; + put 'put ''LjgzbDEuNzItMS44NmEuOC44LDAsMCwwLDAtMS4xMy43OS43OSwwLDAsMC0xLjEzLDBMNC45MSwxOGwzLjQ3LDMuNzRBLjc4Ljc4LDAsMCwwLDksMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhW''@;'; + put 'put ''MjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTI3Ljc3LDIxLjg4YTEsMSwwLDAsMS0uNzMuMzIsMSwxLDAsMCwxLS42OC0uMjcsMSwxLDAsMCwxLS4wNi0xLjQxTDI3LjcxLDE5SDguMjlMOS43LDIwLjUyYTEsMSwwLDAsMS0uMDYsMS40MUExLDEs''@;'; + put 'put ''MCwwLDEsOSwyMi4yYTEsMSwwLDAsMS0uNzMtLjMyTDQuNjQsMThsMy41OS0zLjg4QTEsMSwwLDAsMSw5LjcsMTUuNDhMOC4yOSwxN0gyNy43MUwyNi4zLDE1LjQ4YTEsMSwwLDAsMSwxLjQ3LTEuMzZMMzEuMzYsMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAv''@;'; + put 'put ''PicpLGUuQ2xyU2hhcGVQYXN0ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsMTJIMjZ2Mmg0djJoMlYxNEEyLDIsMCwwLDAsMzAsMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cmVjdCB4PSIzMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWln''@;'; + put 'put ''aHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMEgyOHYyaDJhMiwyLDAsMCwwLDItMlYyNkgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNCwyMlY2YTIsMiww''@;'; + put 'put ''LDAsMC0yLTJINkEyLDIsMCwwLDAsNCw2VjIyYTIsMiwwLDAsMCwyLDJIMjJBMiwyLDAsMCwwLDI0LDIyWk02LDZIMjJWMjJINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxyZWN0IHg9IjIwIiB5PSIzMCIgd2lkdGg9IjYiIGhlaWdodD0iMiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTE0LDI2SDEydjRhMiwyLDAsMCwwLDIsMmg0VjMwSDE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTMwLDEySDI2djJoNHYyaDJWMTRBMiwy''@;'; + put 'put ''LDAsMCwwLDMwLDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cmVjdCB4PSIzMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDMwSDI4djJoMmEyLDIs''@;'; + put 'put ''MCwwLDAsMi0yVjI2SDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cmVjdCB4PSI0IiB5PSI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cmVjdCB4PSIy''@;'; + put 'put ''MCIgeT0iMzAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+PHBhdGggZD0iTTE0LDI2SDEydjRhMiwyLDAsMCwwLDIsMmg0VjMwSDE0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz4nKSxlLkNs''@;'; + put 'put ''clNoYXBlUG9ydHJhaXQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LjM0LDI2LjQ1YS44LjgsMCwwLDAtMS4xMywwLC43OS43OSwwLDAsMCwwLDEuMTNMMTgsMzEuMDlsMy43NC0zLjQ3YS43OS43OSwwLDAsMCwuMDUtMS4xMy44LjgsMCwwLDAtMS4xMywwTDE4LjgsMjguMTdWNy44''@;'; + put 'put ''M2wxLjg2LDEuNzJhLjguOCwwLDEsMCwxLjA4LTEuMTdMMTgsNC45MSwxNC4yNiw4LjM4YS43OS43OSwwLDAsMCwwLDEuMTMuOC44LDAsMCwwLDEuMTMsMEwxNy4yLDcuODNWMjguMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjgs''@;'; + put 'put ''Mkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJabTAsMzBIOFY0SDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0yMC41MiwyNi4zYTEsMSwwLDAsMSwxLjM2LDEuNDdMMTgsMzEuMzZsLTMuODgtMy41OWExLDEsMCwwLDEsMS4zNi0xLjQ3TDE3LDI3LjcxVjguMjlMMTUuNDgsOS43YTEsMSwwLDAsMS0xLjM2LTEuNDdMMTgs''@;'; + put 'put ''NC42NGwzLjg4LDMuNTlhMSwxLDAsMCwxLC4wNSwxLjQxLDEsMSwwLDAsMS0uNzMuMzIsMSwxLDAsMCwxLS42OC0uMjZMMTksOC4yOVYyNy43MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZVRyZWVWaWV3PSgwLGEuY2xySWNvblNWRyko''@;'; + put 'put ''JzxwYXRoIGQ9Ik0xNSwzMkgxMWExLDEsMCwwLDEtMS0xVjI3YTEsMSwwLDAsMSwxLTFoNGExLDEsMCwwLDEsMSwxdjRBMSwxLDAsMCwxLDE1LDMyWm0tMy0yaDJWMjhIMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTUsMTZIMTFh''@;'; + put 'put ''MSwxLDAsMCwwLTEsMXYxLjJINS44VjEySDdhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCw3LDZIM0ExLDEsMCwwLDAsMiw3djRhMSwxLDAsMCwwLDEsMUg0LjJWMjkuOGg2LjM2YS44LjgsMCwwLDAsMC0xLjZINS44VjE5LjhIMTBWMjFhMSwxLDAsMCwwLDEsMWg0YTEsMSwwLDAsMCwxLTFW''@;'; + put 'put ''MTdBMSwxLDAsMCwwLDE1LDE2Wk00LDhINnYySDRaTTE0LDIwSDEyVjE4aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzQsOWExLDEsMCwwLDAtMS0xSDEwdjJIMzNBMSwxLDAsMCwwLDM0LDlaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMThIMTh2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMzLDI4SDE4djJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxyZWN0IHg9IjEwIiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgcng9IjEiIHJ5PSIxIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNSwxNkgxMWExLDEsMCwwLDAtMSwxdjEuMkg1''@;'; + put 'put ''LjhWMTJIN2ExLDEsMCwwLDAsMS0xVjdBMSwxLDAsMCwwLDcsNkgzQTEsMSwwLDAsMCwyLDd2NGExLDEsMCwwLDAsMSwxSDQuMlYyOS44SDExYS44LjgsMCwxLDAsMC0xLjZINS44VjE5LjhIMTBWMjFhMSwxLDAsMCwwLDEsMWg0YTEsMSwwLDAsMCwxLTFWMTdBMSwxLDAsMCwwLDE1LDE2WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzMsOEgxMHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMywxOEgxOHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMywyOEgxOHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPicpLGUuQ2xyU2hhcGVDdXJzb3JIYW5kR3JhYj0oMCxhLmNsckljb25TVkcpKCc8''@;'; + put 'put ''cGF0aCBkPSJNMjguMDksOS43NGE0LDQsMCwwLDAtMS4xNi4xOWMtLjE5LTEuMjQtMS41NS0yLjE4LTMuMjctMi4xOEE0LDQsMCwwLDAsMjIuMTMsOCwzLjM3LDMuMzcsMCwwLDAsMTksNi4zYTMuNDUsMy40NSwwLDAsMC0yLjg3LDEuMzIsMy42NSwzLjY1LDAsMCwwLTEuODktLjUxQTMuMDUs''@;'; + put 'put ''My4wNSwwLDAsMCwxMSw5Ljg5di45MWMtMS4wNi40LTQuMTEsMS44LTQuOTEsNC44NHMuMzQsOCwyLjY5LDExLjc4YTI1LjIxLDI1LjIxLDAsMCwwLDUuOSw2LjQxLjkuOSwwLDAsMCwuNTMuMTdIMjUuNTVhLjkyLjkyLDAsMCwwLC41NS0uMTksMTMuMTMsMTMuMTMsMCwwLDAsMy43NS02LjEz''@;'; + put 'put ''QTI1LjgsMjUuOCwwLDAsMCwzMS40MSwxOHYtNS41QTMuMDgsMy4wOCwwLDAsMCwyOC4wOSw5Ljc0Wk0yOS42MSwxOGEyNCwyNCwwLDAsMS0xLjQ3LDkuMTVBMTIuNDYsMTIuNDYsMCwwLDEsMjUuMiwzMi4ySDE1LjQ3YTIzLjc1LDIzLjc1LDAsMCwxLTUuMi01LjcyYy0yLjM3LTMuODYtMy04''@;'; + put 'put ''LjIzLTIuNDgtMTAuMzlBNS43LDUuNywwLDAsMSwxMSwxMi43NnY3LjY1YS45LjksMCwwLDAsMS44LDBWOS44OWMwLS40Ny41OS0xLDEuNDYtMXMxLjQ5LjUyLDEuNDksMXY1LjcyaDEuOFY4LjgxYzAtLjI4LjU4LS43MSwxLjQ2LS43MXMxLjUzLjQ4LDEuNTMuNzV2Ni44OWgxLjhWMTBsLjE3''@;'; + put 'put ''LS4xMmEyLjEsMi4xLDAsMCwxLDEuMTgtLjMyYy45MywwLDEuNS40NCwxLjUuNjhsMCw2LjVIMjdWMTEuODdhMS45MSwxLjkxLDAsMCwxLDEuMTItLjMzYy44NiwwLDEuNTIuNTEsMS41Mi45NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xy''@;'; + put 'put ''U2hhcGVDdXJzb3JIYW5kT3Blbj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDYsOC41N0EzLjExLDMuMTEsMCwwLDAsMjcsNS43NWEzLjE5LDMuMTksMCwwLDAtNC42Ni0yLjY0LDMuMjksMy4yOSwwLDAsMC02LjQyLS43NiwzLjIzLDMuMjMsMCwwLDAtMS42Ni0uNDZBMy4yNywz''@;'; + put 'put ''LjI3LDAsMCwwLDExLDUuMThWMTcuODRjLTEuMjgtMS42LTIuNTMtMy4xOC0yLjcyLTMuNDVBMy4xOSwzLjE5LDAsMCwwLDUuNTYsMTIuOWEzLjM3LDMuMzcsMCwwLDAtMy40NywzLjQ4QzIuMTgsMTguMTgsNS42NiwyNC41NCw4LDI4YzMuNTQsNS4yNCw2LjkyLDYsNy4wNyw2bC4xOCwwSDI1''@;'; + put 'put ''LjU5YS45Mi45MiwwLDAsMCwuNTUtLjE5LDEzLjEzLDEzLjEzLDAsMCwwLDMuNzUtNi4xM2MxLTMuMDksMS41My03LjUzLDEuNTgtMTMuNTZaTTI4LjE4LDI3LjEyYTEyLjQ2LDEyLjQ2LDAsMCwxLTIuOTQsNS4wOEgxNS4zM2MtLjQ3LS4xNC0zLjA3LTEuMS01Ljg3LTUuMjVTMy45NCwxNy4y''@;'; + put 'put ''NywzLjg5LDE2LjI5YTEuNSwxLjUsMCwwLDEsLjQ1LTEuMTMsMS41MiwxLjUyLDAsMCwxLDEuMTQtLjQ2LDEuNDMsMS40MywwLDAsMSwxLjMyLjcxYy4yOS40MywyLjM2LDMsMy41Nyw0LjUzTDEyLjgsMTguM1Y1LjE4YTEuNDgsMS40OCwwLDEsMSwyLjk1LDBWMTYuMzJoMS44di0xM2ExLjUx''@;'; + put 'put ''LDEuNTEsMCwwLDEsMywwVjE2LjQ1aDEuOFY2YTEuNDMsMS40MywwLDEsMSwyLjg1LDBWMTcuNDRIMjdWOC41NGExLjMzLDEuMzMsMCwwLDEsMi42NSwwdjUuNTVDMjkuNjIsMjAsMjkuMTQsMjQuMjEsMjguMTgsMjcuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMSIgLz4nKSxlLkNsclNoYXBlRmlsZVppcD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsMzAuMlYxMmwtOC4xLTcuOUg3LjhDNi44LDQuMSw2LDQuOSw2LDZjMCwwLDAsMCwwLDB2MjQuMmMwLDEsMC43LDEuOCwxLjcsMS44YzAsMCwwLjEsMCwwLjEsMGgyMC4zXG5cdFx0YzEs''@;'; + put 'put ''MCwxLjgtMC43LDEuOC0xLjdDMzAsMzAuMywzMCwzMC4yLDMwLDMwLjJ6IE0yMiw2LjZsNS42LDUuNEgyMlY2LjZ6IE0yOCwzMEg3LjlMOCw2aDEydjhoOFYzMHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xMiwyNGMwLDEuNywxLjMs''@;'; + put 'put ''MywzLDNzMy0xLjMsMy0zdi00aC02VjI0eiBNMTMuNCwyNHYtMi42aDMuMlYyNGMwLjEsMC45LTAuNiwxLjctMS41LDEuN2MtMC45LDAuMS0xLjctMC42LTEuNy0xLjVcblx0XHRDMTMuNCwyNC4yLDEzLjQsMjQuMSwxMy40LDI0eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE4LjIsOWMwLTAuNi0wLjQtMS0xLTFIMTV2MmgyLjJDMTcuOCwxMCwxOC4yLDkuNiwxOC4yLDl6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTIuNywxMGMtMC42LDAtMSwwLjQtMSwxczAuNCwx''@;'; + put 'put ''LDEsMUgxNXYtMkgxMi43eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTE3LjIsMTRjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFIMTV2MkgxNy4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTExLjcsMTVjMCwwLjYsMC40LDEsMSwxSDE1di0yaC0yLjNDMTIuMiwxNCwxMS43LDE0LjQsMTEuNywxNXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0xNy4yLDE4YzAuNiwwLDEtMC40LDEtMXMtMC40LTEtMS0xSDE1''@;'; + put 'put ''djJIMTcuMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwYXRoIGQ9Ik0xNSwyNS42YzAuOSwwLDEuNi0wLjcsMS42LTEuNnYtMi42aC0zLjJWMjRDMTMuNCwyNC45LDE0LjEsMjUuNiwxNSwyNS42eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEuOSw0SDcuOEM2LjgsNCw2LDQuOSw2LDUuOXYyNC4yYzAsMSwwLjgsMS45LDEuOCwxLjloMjAuM2MxLDAsMS44LTAuOSwxLjgtMS45VjExLjlMMjEuOSw0eiBNMTgsMjRjMCwxLjctMS4zLDMtMywzXG5cdFx0cy0zLTEuMy0zLTN2LTRoNlYyNHog''@;'; + put 'put ''TTE3LjIsMTJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIMTV2MmgyLjJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIMTV2LTJoLTIuMmMtMC42LDAtMS0wLjQtMS0xXG5cdFx0czAuNC0xLDEtMUgxNXYtMmgtMi4yYy0wLjYsMC0xLTAuNC0xLTFzMC40LTEsMS0xSDE1VjhoMi4yYzAu''@;'; + put 'put ''NiwwLDEsMC40LDEsMXMtMC40LDEtMSwxSDE1djJIMTcuMnogTTIxLjksMTJWNi41bDUuNyw1LjVIMjEuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUZpbHRlck9mZj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsNi40QzM0''@;'; + put 'put ''LDUuNiwzMy4zLDUsMzIuNSw1SDEwLjNsMiwySDMydjAuNmwtOS42LDkuNmwxLjQsMS40TDMzLjQsOUMzMy44LDguNiwzNCw4LjEsMzQsNy42VjYuNUMzNCw2LjUsMzQsNi40LDM0LDYuNHoiXG5cdFx0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRo''@;'; + put 'put ''IGQ9Ik0yLjcsM2wyLDJoLTFDMi45LDQuOSwyLjEsNS41LDIsNi4zdjEuMWMwLDAuNSwwLjIsMSwwLjYsMS40TDE0LDIwLjJ2MTAuM2wxLjksMC44VjE5LjRMNCw3LjVWN2gyLjdMMjAsMjAuM3YxMi45bDIsMC44XG5cdFx0YzAsMCwwLDAsMC0wLjFWMjIuM2wxMC4xLDEwLjFsMS40LTEuNEw0''@;'; + put 'put ''LjEsMS42TDIuNywzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIzLjksMTguNkwxMC4zLDUuMWgyMi4yQzMzLjMsNSwzNCw1LjYsMzQsNi40YzAsMCwwLDAsMCwwLjF2MS4xYzAsMC41LTAuMiwxLTAuNiwxLjRMMjMuOSwxOC42eiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMuNSwzMUw0LjEsMS42TDIuNiwzbDIuMSwyLjFIMy41QzIuNyw1LDIsNS42LDIsNi40YzAsMCwwLDAsMCwwLjF2MS4xYzAsMC41LDAuMiwxLDAuNiwxLjRMMTQsMjAuNXYxMC4xbDgsMy40VjIyLjRc''@;'; + put 'put ''blx0bDEwLjEsMTAuMUwzMy41LDMxeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlUmVjeWNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNi40LDE3LjRjMC4yLDAuMSwwLjMsMC4xLDAuNSwwLjFjMC4yLDAsMC40LTAuMSwwLjUt''@;'; + put 'put ''MC4xbDctNC4xYzAuMy0wLjIsMC41LTAuNSwwLjUtMC45YzAtMC40LTAuMi0wLjctMC41LTAuOUwxMS45LDEwXG5cdFx0TDE0LDYuMmMwLjQtMC43LDEtMS4zLDEuNy0xLjdjMi0xLjEsNC41LTAuMyw1LjYsMS43YzAuMywwLjUsMC45LDAuNiwxLjQsMC4zYzAsMCwwLDAsMC4xLDBjMC40LTAu''@;'; + put 'put ''MywwLjUtMC45LDAuMy0xLjNcblx0XHRjLTAuNi0xLTEuNC0xLjktMi40LTIuNGMtMy0xLjYtNi43LTAuNi04LjMsMi40TDkuNiw5LjljLTAuMywwLjUtMC4xLDEuMSwwLjMsMS40bDIsMS4ybC00LDIuNFY4LjJjMC0wLjYtMC40LTEtMS0xXG5cdFx0QzYuNCw3LjMsNiw3LjcsNiw4LjN2OC4z''@;'; + put 'put ''QzYsMTYuOSw2LjIsMTcuMiw2LjQsMTcuNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMi4xLDIxbC0zLjUtNi4yYy0wLjEtMC4yLTAuNC0wLjQtMC42LTAuNWMtMC4zLTAuMS0wLjUsMC0wLjgsMC4xbC0yLjIsMS4zVjExbDUuNSwz''@;'; + put 'put ''LjNjMC4xLDAsMC4xLDAuMSwwLjIsMC4xXG5cdFx0YzAuNSwwLjIsMS4xLDAsMS4zLTAuNWMwLjItMC41LDAtMS4xLTAuNS0xLjNsLTctNC4yYy0wLjMtMC4yLTAuNy0wLjItMSwwQzIzLjEsOC41LDIzLDguOCwyMyw5LjJ2OC4zYzAsMC40LDAuMSwwLjgsMC40LDFcblx0XHRjMC4zLDAuMiww''@;'; + put 'put ''LjcsMC4yLDEsMGwyLjktMS43bDMsNS4zYzAuNywxLjMsMC43LDIuOCwwLDQuMWMtMC42LDEuMi0xLjksMS45LTMuMiwxLjloLTAuOWMtMC41LDAtMS4yLDAuNC0xLjIsMVxuXHRcdGMwLjEsMC42LDAuNiwxLDEuMiwxaDAuOWMyLjEsMCw0LTEuMSw1LTIuOUMzMy4yLDI1LjIsMzMuMiwyMi45''@;'; + put 'put ''LDMyLjEsMjF6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIuNCwyOC4ybC03LTQuMmMtMC4zLTAuMi0wLjctMC4yLTEsMGMtMC4zLDAuMi0wLjQsMC41LTAuNCwwLjl2My4zSDkuMWMtMS41LTAuMS0yLjktMC45LTMuNi0yLjNcblx0''@;'; + put 'put ''XHRjLTAuOC0xLjQtMC44LTMuMiwwLTQuNmMwLjMtMC41LDAuMS0xLjEtMC40LTEuNGMtMC41LTAuMy0xLjEtMC4xLTEuNCwwLjRjLTEuMiwyLjEtMS4xLDQuNiwwLjEsNi42QzQuOSwyOC44LDcsMzAsOS4yLDMwSDE1XG5cdFx0YzAuNiwwLDEtMC40LDEtMXYtMi40bDQsMi40bC01LjYsMy4z''@;'; + put 'put ''Yy0wLjMsMC4yLTAuNSwwLjUtMC41LDAuOWMwLDAuNiwwLjUsMSwxLDFjMC4yLDAsMC4zLTAuMSwwLjUtMC4ybDctNC4yXG5cdFx0YzAuMi0wLjEsMC4zLTAuMiwwLjQtMC40QzIzLjEsMjksMjIuOSwyOC40LDIyLjQsMjguMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMC44LDMuMWMtMy0xLjYtNi43LTAuNi04LjQsMi40bC0yLjIsMy44bC0yLTEuMUM4LjIsOCw4LDgsNy45LDhDNy40LDgsNyw4LjQsNyw4Ljl2Ny4yYzAsMC4zLDAuMSwwLjYsMC40LDAuOFxuXHRcdGMwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMwLjIsMCww''@;'; + put 'put ''LjMsMCwwLjQtMC4xbDYuMy0zLjZjMC4zLTAuMiwwLjQtMC40LDAuNC0wLjhjMC0wLjMtMC4yLTAuNi0wLjQtMC44TDEyLDEwLjNsMi4yLTMuOFxuXHRcdGMwLjQtMC43LDEtMS4zLDEuNy0xLjdjMi0xLjEsNC41LTAuMyw1LjYsMS43YzAuMywwLjUsMC45LDAuNiwxLjQsMC40YzAuNS0wLjMs''@;'; + put 'put ''MC42LTAuOSwwLjQtMS40QzIyLjYsNC41LDIxLjgsMy42LDIwLjgsMy4xeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMiwyMS4xbC0zLTUuM2wyLjMtMS4zYzAuMy0wLjIsMC40LTAuNCwwLjQtMC44YzAtMC4zLTAuMi0wLjYtMC40LTAu''@;'; + put 'put ''OGwtNi4yLTMuNmMtMC4xLTAuMS0wLjMtMC4xLTAuNC0wLjFcblx0XHRjLTAuNSwwLTAuOSwwLjQtMC45LDAuOXY3LjJjMCwwLjMsMC4yLDAuNiwwLjQsMC44YzAuMSwwLjEsMC4zLDAuMSwwLjQsMC4xYzAuMiwwLDAuMy0wLjEsMC40LTAuMWwyLjItMS4zbDMsNS4zXG5cdFx0YzAuNywxLjIs''@;'; + put 'put ''MC43LDIuOCwwLDRjLTAuNywxLjItMS45LDEuOS0zLjIsMS45aC0wLjljLTAuNiwwLTEsMC40LTEsMWMwLDAuNiwwLjQsMSwxLDFoMC45YzIuMSwwLDQtMS4xLDUtM1xuXHRcdEMzMy4yLDI1LjMsMzMuMiwyMywzMi4yLDIxLjF6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0yIiAvPjxwYXRoIGQ9Ik0yMS43LDI4LjRsLTYuMi0zLjZjLTAuMS0wLjEtMC4zLTAuMS0wLjQtMC4xYy0wLjUsMC0wLjksMC40LTAuOSwwLjl2Mi42SDkuM2MtMS41LDAtMi45LTAuOC0zLjYtMi4xXG5cdFx0Yy0wLjgtMS40LTAuOC0zLjEsMC00LjVjMC4zLTAuNSwwLjEtMS4xLTAuNC0x''@;'; + put 'put ''LjRjLTAuNS0wLjMtMS4xLTAuMS0xLjQsMC40Yy0xLjIsMi0xLjIsNC41LDAsNi41YzEuMSwxLjksMy4xLDMuMSw1LjQsMy4xaDQuOHYyLjZcblx0XHRjMCwwLjMsMC4yLDAuNiwwLjQsMC44YzAuMSwwLjEsMC4zLDAuMSwwLjQsMC4xYzAuMSwwLDAuMywwLDAuNC0wLjFsNi4zLTMuNmMwLjMt''@;'; + put 'put ''MC4yLDAuNC0wLjQsMC40LTAuOFxuXHRcdEMyMi4xLDI4LjgsMjEuOSwyOC41LDIxLjcsMjguNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZVRyZWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjYsMTEuN0MyOS4yLDUuOCwy''@;'; + put 'put ''NCwxLjcsMTgsMS43Yy03LjIsMC0xMyw1LjgtMTMsMTNjMCw2LjgsNS4zLDEyLjQsMTIsMTIuOXY1YzAsMC42LDAuNCwxLDEsMXMxLTAuNCwxLTF2LTV2LTJWMjJcblx0YzAsMCwwLDAsMC0wLjF2LTMuNmw0LjctNC43YzAuNC0wLjQsMC40LTEsMC0xLjRjLTAuNC0wLjQtMS0wLjQtMS40LDBM''@;'; + put 'put ''MTksMTUuNnYtM2wtMy4zLTMuM2MtMC40LTAuNC0xLTAuNC0xLjQsMFxuXHRjLTAuNCwwLjQtMC40LDEsMCwxLjRsMi43LDIuN3Y2LjJsLTMuOC0zLjhjLTAuNC0wLjQtMS0wLjQtMS40LDBjLTAuNCwwLjQtMC40LDEsMCwxLjRsNS4yLDUuMnYzLjJjLTUuNi0wLjUtMTAtNS4yLTEwLTEwLjlc''@;'; + put 'put ''blx0YzAtNi4xLDQuOS0xMSwxMS0xMXMxMSw0LjksMTEsMTFjMCw0LjktMy4zLDkuMi04LDEwLjZ2Mi4xQzI4LDI1LjcsMzIuMywxOC43LDMwLjYsMTEuN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwyQzEwLjgsMS43LDQuOCw3''@;'; + put 'put ''LjMsNC41LDE0LjVDNC4yLDIxLjcsOS44LDI3LjcsMTcsMjh2LTUuMmwtNS4yLTUuMmMtMC40LTAuNC0wLjQtMSwwLTEuNGMwLjQtMC40LDEtMC40LDEuNCwwXG5cdGMwLDAsMCwwLDAsMGwzLjgsMy44di02LjJsLTIuNy0yLjdjLTAuNC0wLjQtMC40LTEsMC0xLjRjMC40LTAuNCwxLTAuNCwx''@;'; + put 'put ''LjQsMGMwLDAsMCwwLDAsMGwzLjMsMy4zdjNsMy4zLTMuM2MwLjQtMC40LDEtMC40LDEuNCwwXG5cdGMwLDAsMCwwLDAsMGMwLjQsMC40LDAuNCwxLDAsMS40TDE5LDE4LjhWMjhjNy4yLTAuMywxMi44LTYuMywxMi41LTEzLjVTMjUuMiwxLjcsMTgsMnoiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDI4Yy0wLjMsMC0wLjYsMC0xLDB2NWMwLDAuNiwwLjQsMSwxLDFzMS0wLjQsMS0xdi01QzE4LjcsMjgsMTguMywyOCwxOCwyOHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUZp''@;'; + put 'put ''c2g9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMTEuNDkiIGN5PSIxNy41IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMy40OCw5LjI5YTEsMSwwLDAsMC0xLDBjLTMuMzcsMi01LjkxLDUuODEtNi45LDcuNDVM''@;'; + put 'put ''MjQuODUsMThzLTEsMS42Mi0xLDEuNjJjLTEuNzYsMi40OS01LjEsNi4zNi04Ljc5LDYuMzYtNC42NSwwLTguNzUtNi4xNS05Ljg0LTcuOTQsMS4wOS0xLjc5LDUuMTgtNy45NCw5Ljg0LTcuOTQsMy41NCwwLDYuNzcsMy41OCw4LjU4LDYuMDdsLjI4LS40OHMuMzYtLjUxLjkzLTEuMjVDMjIu''@;'; + put 'put ''NzIsMTEuNjQsMTkuMTgsOC4wNiwxNSw4LjA2Yy02LjU5LDAtMTEuNjcsOS4wNy0xMS44OCw5LjQ2TDIuODksMThsLjI3LjQ4Yy4yMS4zOSw1LjI5LDkuNDYsMTEuODgsOS40Niw1LjA2LDAsOS4yMi01LjM0LDExLThDMjYsMjAsMjcuMTgsMTgsMjcuMTgsMThoMGwuMDctLjExYTE4LjA2LDE4''@;'; + put 'put ''LjA2LDAsMCwxLDEuODgtMi43NXMwLDAsMCwwYTIwLjMxLDIwLjMxLDAsMCwxLDIuODYtM1YyMy44OGEyMC45MywyMC45MywwLDAsMS0zLjYxLTRsLS4xNi4yNmgwbC0xLDEuNTlhMTguNzQsMTguNzQsMCwwLDAsNS4yMSw0Ljk1LDEsMSwwLDAsMCwuNS4xNCwxLjEzLDEuMTMsMCwwLDAsLjUt''@;'; + put 'put ''LjEzLDEsMSwwLDAsMCwuNS0uODdWMTAuMTZBMSwxLDAsMCwwLDMzLjQ4LDkuMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlRm9ybT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEsMTJIN2ExLDEsMCwwLDEtMS0xVjdB''@;'; + put 'put ''MSwxLDAsMCwxLDcsNkgyMWExLDEsMCwwLDEsMSwxdjRBMSwxLDAsMCwxLDIxLDEyWk04LDEwSDIwVjcuOTRIOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMSwxNC4wOEg3YTEsMSwwLDAsMC0xLDFWMTlhMSwxLDAsMCwwLDEsMUgx''@;'; + put 'put ''OC4zNkwyMiwxNi4zVjE1LjA4QTEsMSwwLDAsMCwyMSwxNC4wOFpNMjAsMThIOFYxNkgyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xMS4wNiwzMS41MXYtLjA2bC4zMi0xLjM5SDRWNGgyMFYxNC4yNUwyNiwxMi4zNlYzYTEsMSww''@;'; + put 'put ''LDAsMC0xLTFIM0ExLDEsMCwwLDAsMiwzVjMxYTEsMSwwLDAsMCwxLDFoOEEzLjQ0LDMuNDQsMCwwLDEsMTEuMDYsMzEuNTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjIsMTkuMTdsLS43OC43OUExLDEsMCwwLDAsMjIsMTkuMTda''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNNiwyNi45NGExLDEsMCwwLDAsMSwxaDQuODRsLjMtMS4zLjEzLS41NSwwLS4wNUg4VjI0aDYuMzRsMi0ySDdhMSwxLDAsMCwwLTEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMy40OSwxNi42NywzMC4xMiwxMy4zYTEuNjEsMS42MSwwLDAsMC0yLjI4LDBoMEwxNC4xMywyNy4wOSwxMywzMS45YTEuNjEsMS42MSwwLDAsMCwxLjI2LDEuOSwxLjU1LDEuNTUsMCwwLDAsLjMxLDAsMS4xNSwxLjE1LDAsMCwwLC4zNywwbDQu''@;'; + put 'put ''ODUtMS4wN0wzMy40OSwxOWExLjYsMS42LDAsMCwwLDAtMi4yN1pNMTguNzcsMzAuOTFsLTMuNjYuODFMMTYsMjguMDksMjYuMjgsMTcuN2wyLjgyLDIuODJaTTMwLjIzLDE5LjM5bC0yLjgyLTIuODJMMjksMTVsMi44NCwyLjg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTYiIC8+JyksZS5DbHJTaGFwZUZ1ZWw9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLjEyLDM0SDUuOUEyLjgxLDIuODEsMCwwLDEsMywzMS4xOVY0Ljg2QTIuOSwyLjksMCwwLDEsNiwyLjA3SDIwLjIyQTIuNzIsMi43MiwwLDAsMSwyMyw0Ljg2VjMxLjE5QTIuODIsMi44''@;'; + put 'put ''MiwwLDAsMSwyMC4xMiwzNFpNNS45LDRBLjg3Ljg3LDAsMCwwLDUsNC44NlYzMS4xOWEuODcuODcsMCwwLDAsLjg3Ljg3SDIwLjEyYS45NC45NCwwLDAsMCwuOTUtLjg3VjQuODZBLjk0Ljk0LDAsMCwwLDIwLjEyLDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgLz48cGF0aCBkPSJNMjkuNTMsMzRBMy41LDMuNSwwLDAsMSwyNiwzMC41VjIzYTIsMiwwLDAsMC0yLTJIMjIuNTdhMSwxLDAsMCwxLDAtMkgyNGE0LDQsMCwwLDEsNCw0VjMwLjVhMS41LDEuNSwwLDAsMCwzLDBWMTcuM2wtMy4xMy03QTIuMjksMi4yOSwwLDAsMCwyNS44LDloLS43M2Ex''@;'; + put 'put ''LDEsMCwxLDEsMC0yaC43M2E0LjMsNC4zLDAsMCwxLDMuOTMsMi41NWwzLjIxLDcuMTZhMSwxLDAsMCwxLC4wOS40MVYzMC41QTMuNSwzLjUsMCwwLDEsMjkuNTMsMzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTgsOUg4QTEsMSww''@;'; + put 'put ''LDEsMSw4LDdIMThhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xOCwxM0g4QTEsMSwwLDEsMSw4LDExSDE4QTEsMSwwLDEsMSwxOCwxM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC00IiAvPjxwYXRoIGQ9Ik0yNSwxMi4wOGExLDEsMCwwLDEtMS0xdi02YTEsMSwwLDAsMSwyLDB2NkExLDEsMCwwLDEsMjUsMTIuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz4nKSxlLkNsclNoYXBlU25vd2ZsYWtlPSgwLGEuY2xySWNvblNWRyko''@;'; + put 'put ''JzxwYXRoIGQ9Ik0xOC4wNSwzMy42MWExLDEsMCwwLDEtMS0xVjMuMzdhMSwxLDAsMSwxLDEuOTUsMFYzMi42M0ExLDEsMCwwLDEsMTguMDUsMzMuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsMTAuMDcsMTQuNTIsNi41''@;'; + put 'put ''NGExLDEsMCwwLDEsMC0xLjQxLDEsMSwwLDAsMSwxLjQxLDBsMi4xMywyLjEyLDIuMTItMi4xMmExLDEsMCwwLDEsMS40MSwwLDEsMSwwLDAsMSwwLDEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjAuODUsMzEuMTdhMSwxLDAs''@;'; + put 'put ''MCwxLS43LS4yOUwxOCwyOC43NiwxNS45LDMwLjg4YTEsMSwwLDAsMS0xLjQxLDAsMSwxLDAsMCwxLDAtMS40MkwxOCwyNS45M2wzLjU0LDMuNTNhMSwxLDAsMCwxLDAsMS40MkExLDEsMCwwLDEsMjAuODUsMzEuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MyIgLz48cGF0aCBkPSJNMzAuOTIsMjYuNWExLDEsMCwwLDEtLjUtLjEzbC0yNi0xNUExLDEsMCwwLDEsNC4wNywxMGExLDEsMCwwLDEsMS4zNy0uMzZsMjYsMTVhMSwxLDAsMCwxLS41LDEuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBk''@;'; + put 'put ''PSJNNiwxNS4zN2ExLDEsMCwwLDEtLjI2LTJsMi45LS43OEw3Ljg0LDkuNzNhMSwxLDAsMSwxLDEuOTMtLjUyTDExLjA3LDE0LDYuMjQsMTUuMzNBLjgyLjgyLDAsMCwxLDYsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjcu''@;'; + put 'put ''MDUsMjcuNTRhMSwxLDAsMCwxLTEtLjc1TDI0LjgsMjJsNC44Mi0xLjNhMSwxLDAsMSwxLC41MiwxLjkzbC0yLjkuNzguNzgsMi45YTEsMSwwLDAsMS0uNzEsMS4yMkEuNzUuNzUsMCwwLDEsMjcuMDUsMjcuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIg''@;'; + put 'put ''Lz48cGF0aCBkPSJNNC45NCwyNi41YTEsMSwwLDAsMS0uNS0xLjg3bDI2LTE1YTEsMSwwLDAsMSwxLjM2LjM2LDEsMSwwLDAsMS0uMzYsMS4zN2wtMjYsMTVBMSwxLDAsMCwxLDQuOTQsMjYuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwYXRoIGQ9''@;'; + put 'put ''Ik04LjgxLDI3LjU0YS43NS43NSwwLDAsMS0uMjYsMCwxLDEsMCwwLDEtLjcxLTEuMjJsLjc4LTIuOS0yLjktLjc4QTEsMSwwLDAsMSw1LDIxLjM4YTEsMSwwLDAsMSwxLjIzLS43MUwxMS4wNywyMmwtMS4zLDQuODJBMSwxLDAsMCwxLDguODEsMjcuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz48cGF0aCBkPSJNMjkuODgsMTUuMzdhLjgyLjgyLDAsMCwxLS4yNiwwTDI0LjgsMTRsMS4yOS00LjgzQTEsMSwwLDEsMSwyOCw5LjczbC0uNzgsMi44OSwyLjkuNzhhMSwxLDAsMCwxLS4yNiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTkiIC8+JyksZS5DbHJTaGFwZVRhYmxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LDM0YTEsMSwwLDAsMS0xLTFWMi45MmExLDEsMCwwLDEsMiwwVjMzQTEsMSwwLDAsMSw4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''IC8+PHBhdGggZD0iTTE3LDMzLjkyYTEsMSwwLDAsMS0xLTFWOS4xYTEsMSwwLDEsMSwyLDBWMzIuOTJBMSwxLDAsMCwxLDE3LDMzLjkyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI2LDM0YTEsMSwwLDAsMS0xLTFWOWExLDEsMCww''@;'; + put 'put ''LDEsMiwwVjMzQTEsMSwwLDAsMSwyNiwzNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMy4xMSwxOGgtMjVhMSwxLDAsMSwxLDAtMmgyNWExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQiIC8+PHBhdGggZD0iTTMzLjEsMjYuOTRIOC4xQTEsMSwwLDEsMSw4LjEsMjVoMjVhMSwxLDAsMSwxLDAsMS45MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMyw4LjkySDNBMSwxLDAsMSwxLDMsN0gzM2ExLDEsMCwxLDEs''@;'; + put 'put ''MCwxLjk0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksZS5DbHJTaGFwZVZvbHVtZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuODgsMzJIMTJhNCw0LDAsMCwxLTQtNFYxMS40NkwyLjMxLDUuNzdhMSwxLDAsMCwxLS4yMi0xLjA5QTEs''@;'; + put 'put ''MSwwLDAsMSwzLDQuMDZIMjguODZhMSwxLDAsMCwxLDEsMVYyOEE0LDQsMCwwLDEsMjUuODgsMzJaTTUuNDMsNmw0LjI4LDQuMzRhLjc1Ljc1LDAsMCwxLC4yMS42M3YxN0EyLjEzLDIuMTMsMCwwLDAsMTIsMzBIMjUuODhBMi4xLDIuMSwwLDAsMCwyOCwyOFY2WiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMzLDE2YTEsMSwwLDAsMS0xLTFWNkgyOC44NmEuOTIuOTIsMCwwLDEtMS0uOSwxLDEsMCwwLDEsMS0xSDMzYTEsMSwwLDAsMSwxLDFWMTVBMSwxLDAsMCwxLDMzLDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LDExSDE4YTEsMSwwLDEsMSwwLTJIMjRhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNCwxNUgyMWExLDEsMCwxLDEsMC0ySDI0YTEsMSwwLDEsMSwwLDJa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMjQsMTlIMThhMSwxLDAsMSwxLDAtMkgyNGExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTI0LDI3SDE4YTEs''@;'; + put 'put ''MSwwLDEsMSwwLTJIMjRhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yNCwyM0gyMUExLDEsMCwxLDEsMjEsMjFIMjRBMSwxLDAsMSwxLDI0LDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTciIC8+JyksZS5DbHJTaGFwZUNyb3NzaGFpcnM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDI5QTExLDExLDAsMSwxLDI5LDE4LDExLDExLDAsMCwxLDE4LDI5Wk0xOCw5YTksOSwwLDEsMCw5LDlBOSw5LDAsMCwwLDE4LDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMjNhNSw1LDAsMSwxLDUtNUE1LDUsMCwwLDEsMTgsMjNabTAtOGEzLDMsMCwxLDAsMywzQTMsMywwLDAsMCwxOCwxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOCw5''@;'; + put 'put ''YTEsMSwwLDAsMS0xLTFWMi44YTEsMSwwLDAsMSwyLDBWOEExLDEsMCwwLDEsMTgsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xOCwzNGExLDEsMCwwLDEtMS0xVjI4YTEsMSwwLDAsMSwyLDB2NUExLDEsMCwwLDEsMTgsMzRaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNOCwxOUgzLjE3YTEsMSwwLDAsMSwwLTJIOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjEsMTlIMjhhMSwx''@;'; + put 'put ''LDAsMCwxLDAtMmg1LjFhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLGUuQ2xyU2hhcGVDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0''@;'; + put 'put ''Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVEb3RDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDExYTcsNywwLDEsMS03LDcsNyw3LDAsMCwxLDctNyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDM0''@;'; + put 'put ''QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQmV0YT0oMCxhLmNsckljb25TVkcpKCc8cGF0''@;'; + put 'put ''aCBkPSJNNy4yMSwxNC4wN2gzYTEuNjEsMS42MSwwLDAsMSwxLjgxLDEuNSwxLjQ0LDEuNDQsMCwwLDEtLjg0LDEuMzQsMS42NywxLjY3LDAsMCwxLDEuMSwxLjUzLDEuNzUsMS43NSwwLDAsMS0yLDEuNjNINy4yMVptMi43MSwyLjQyYy40OCwwLC44Mi0uMjguODItLjY3cy0uMzQtLjY1LS44''@;'; + put 'put ''Mi0uNjVIOC40OXYxLjMyWm0uMiwyLjQ4YS43NS43NSwwLDEsMCwwLTEuNDdIOC40OVYxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xNC41NSwxNS4yM3YxLjJoM3YxLjE2aC0zdjEuMzJoMy4zM3YxLjE2SDEzLjI2di02aDQu''@;'; + put 'put ''NjJ2MS4xNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMC40MSwxNS4yM0gxOC41NFYxNC4wN2g1djEuMTZIMjEuN3Y0Ljg0SDIwLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAg''@;'; + put 'put ''PHBhdGggZD0iTTI4LDE5LjEySDI1LjMybC0uMzguOTVIMjMuNWwyLjQ0LTZoMS40NGwyLjQ1LDZIMjguMzhaTTI3LjU1LDE4bC0uODktMi4xOUwyNS43NywxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik04LjA2LDMwYS44NC44''@;'; + put 'put ''NCwwLDAsMS0uMzgtLjA4QTEsMSwwLDAsMSw3LjA2LDI5VjI1aC00YTEsMSwwLDAsMS0xLTFWMTBhMSwxLDAsMCwxLDEtMWgzMGExLDEsMCwwLDEsMSwxVjI0YTEsMSwwLDAsMS0xLDFIMTMuNDhMOC43NywyOS43MUExLDEsMCwwLDEsOC4wNiwzMFptLTQtN2g0YTEsMSwwLDAsMSwxLDF2Mi41''@;'; + put 'put ''OWwzLjMtMy4zYTEsMSwwLDAsMSwuNy0uMjloMTlWMTFoLTI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cblxuICA8cG9seWdvbiBwb2ludHM9IjI1LjgsMTggMjcuNSwxOCAyNi43LDE1LjgiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTEiLz5cblx0PHBhdGggZD0iTTEwLjQsMTcuNWMtMC4xLDAtMC4yLDAtMC4zLDBIOC41VjE5bDEuNiwwYzAuNCwwLjEsMC44LTAuMiwwLjktMC42QzExLjEsMTgsMTAuOCwxNy42LDEwLjQsMTcuNXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cblx0PHBh''@;'; + put 'put ''dGggZD0iTTEwLjcsMTUuOGMwLTAuNC0wLjMtMC43LTAuOC0wLjdIOC41djEuM2gxLjRDMTAuNCwxNi41LDEwLjcsMTYuMiwxMC43LDE1Ljh6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG5cdDxwYXRoIGQ9Ik0zMy4xLDloLTMwYy0wLjYsMC0xLDAuNC0xLDF2''@;'; + put 'put ''MTRjMCwwLjYsMC40LDEsMSwxaDR2NGMwLDAuNCwwLjIsMC44LDAuNiwwLjlDNy44LDMwLDcuOSwzMCw4LjEsMzBjMC4zLDAsMC41LTAuMSwwLjctMC4zXG5cdFx0bDQuNy00LjdoMTkuNmMwLjYsMCwxLTAuNCwxLTFWMTBDMzQuMSw5LjQsMzMuNiw5LDMzLjEsOXogTTEwLjQsMjAuMWMtMC4x''@;'; + put 'put ''LDAtMC4xLDAtMC4yLDBINy4ydi02aDNjMC45LTAuMSwxLjcsMC41LDEuOCwxLjRcblx0XHRjMCwwLDAsMC4xLDAsMC4xYzAsMC42LTAuMywxLjEtMC44LDEuM2MwLjYsMC4yLDEuMSwwLjgsMS4xLDEuNUMxMi4yLDE5LjQsMTEuNCwyMC4xLDEwLjQsMjAuMXogTTE3LjksMTUuMmgtMy4zdjEu''@;'; + put 'put ''MmgzdjEuMmgtM3YxLjNcblx0XHRoMy4zdjEuMmgtNC42di02aDQuNlYxNS4yeiBNMjEuNywyMC4xaC0xLjN2LTQuOGgtMS45di0xLjJoNXYxLjJoLTEuOFYyMC4xeiBNMjguNCwyMC4xbC0wLjQtMWgtMi43bC0wLjQsMWgtMS40bDIuNC02aDEuNGwyLjUsNlxuXHRcdEgyOC40eiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIvPlxuJyksZS5DbHJTaGFwZUZpcnN0QWlkPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzIsNkgyMy45MVY0LjVBMi41LDIuNSwwLDAsMCwyMS40MSwyaC03YTIuNSwyLjUsMCwwLDAtMi41LDIuNVY2SDRBMiwyLDAsMCww''@;'; + put 'put ''LDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNMTMuOTEsNC41YS41LjUsMCwwLDEsLjUtLjVoN2EuNS41LDAsMCwxLC41LjVWNmgtOFpNNCwyOFY4SDMyVjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgPHBhdGggZD0iTTIwLjE1LDI1LjJIMTYuNzRhMS4zLDEuMywwLDAsMS0xLjMtMS4zVjIxLjJoLTIuN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjNWMTYuNWExLjMsMS4zLDAsMCwxLDEuMy0xLjNoMi43VjEyLjVhMS4zLDEuMywwLDAsMSwxLjMtMS4zaDMuNDFhMS4zLDEuMywwLDAsMSwx''@;'; + put 'put ''LjI5LDEuM3YyLjdoMi43MWExLjMsMS4zLDAsMCwxLDEuMjksMS4zdjMuNGExLjMsMS4zLDAsMCwxLTEuMjksMS4zSDIxLjQ0djIuN0ExLjMsMS4zLDAsMCwxLDIwLjE1LDI1LjJaTTE3LDIzLjZoMi44MXYtNGg0VjE2LjhoLTR2LTRIMTd2NEgxM3YyLjhoNFptNy4xMS02LjhaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuXG4gIDxwYXRoIGQ9Ik0zMiw2SDIzLjkxVjQuNUEyLjUsMi41LDAsMCwwLDIxLjQxLDJoLTdhMi41LDIuNSwwLDAsMC0yLjUsMi41VjZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlY4QTIsMiwwLDAsMCwzMiw2Wk0xMy45MSw0LjVhLjUuNSwwLDAsMSwuNS0uNWg3YS41LjUsMCwwLDEsLjUuNVY2aC04Wk0yNC42NCwxOS45YS41LjUsMCwwLDEtLjUuNWgtMy41djMuNWEuNS41LDAsMCwxLS41LjVoLTMuNGEuNS41LDAsMCwxLS41LS41VjIwLjRoLTMuNWEuNS41LDAsMCwx''@;'; + put 'put ''LS41LS41VjE2LjVhLjUuNSwwLDAsMSwuNS0uNWgzLjVWMTIuNWEuNS41LDAsMCwxLC41LS41aDMuNGEuNS41LDAsMCwxLC41LjVWMTZoMy41YS41LjUsMCwwLDEsLjUuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgJyksZS5DbHJTaGFwZUNvbG9yUGFs''@;'; + put 'put ''ZXR0ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEuNTQsMjMuMDVhMy4yMiwzLjIyLDAsMCwxLTMtMS43N0EzLjA1LDMuMDUsMCwwLDEsMTguNSwxOWEzLjc0LDMuNzQsMCwwLDEsMS45NS0yLjA2QTMuNCwzLjQsMCwwLDEsMjUsMTguM2EzLDMsMCwwLDEsLjA4LDIuMzIsMy42OSwz''@;'; + put 'put ''LjY5LDAsMCwxLTIsMi4wN0EzLjg1LDMuODUsMCwwLDEsMjEuNTQsMjMuMDVabS41NC00LjkxYTIuNDEsMi40MSwwLDAsMC0xLC4yMWgwQTIuMTMsMi4xMywwLDAsMCwyMCwxOS41MWExLjM3LDEuMzcsMCwwLDAsMCwxLjA5LDEuODEsMS44MSwwLDAsMCwyLjQ1LjYzLDIuMSwyLjEsMCwwLDAs''@;'; + put 'put ''MS4xMi0xLjE1LDEuNCwxLjQsMCwwLDAsMC0xLjFBMS41OSwxLjU5LDAsMCwwLDIyLjA4LDE4LjE0Wm0tMS4yOS0uNTJoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xNi4xOSwzMy44N0ExMy43MiwxMy43MiwwLDAsMSw2LjQs''@;'; + put 'put ''MzAsMTMuODYsMTMuODYsMCwwLDEsMiwyMGMwLTQuNCwyLTguODQsNS42OC0xMi41YTE4LjIsMTguMiwwLDAsMSwxMy4xLTUuMzdoLjEyYzMuMzMsMCw2Ljg1LDEuNDksNy4yNCw0LjczLjIxLDEuNzctLjU5LDMuNDctMS4yOSw1LS41NSwxLjE3LTEuMTEsMi4zOS0uNzIsMi44MXMxLC4xMiwy''@;'; + put 'put ''LjA5LS4yYTYuMjcsNi4yNywwLDAsMSwzLjM4LS4zNiwzLDMsMCwwLDEsMS44NywxLjU2Yy45NCwxLjgzLjQ3LDQuNjctLjIzLDYuNTRoMEExNy4zOCwxNy4zOCwwLDAsMSwyOSwyOC43NCwxOS40MywxOS40MywwLDAsMSwxNi4xOSwzMy44N1pNMjAuNzgsNC4xNkExNi4yMiwxNi4yMiwwLDAs''@;'; + put 'put ''MCw5LjA5LDlDNS43OSwxMi4yMyw0LDE2LjE2LDQsMjBBMTEuOTIsMTEuOTIsMCwwLDAsNy44LDI4LjZjNS4zOCw1LjI1LDE0LjYyLDMuNTUsMTkuODctMS4zM2ExNS41MiwxNS41MiwwLDAsMCwzLjctNS43NWgwYy43LTEuOS44NC0zLjkyLjMyLTQuOTJhMSwxLDAsMCwwLS42MS0uNTUsNC44''@;'; + put 'put ''Niw0Ljg2LDAsMCwwLTIuMjkuMzVjLTEuMzEuMzktMywuODktNC4xMi0uMzUtMS4zMi0xLjQtLjQ2LTMuMjUuMzctNWE3LjkzLDcuOTMsMCwwLDAsMS4xMS0zLjljLS4yNC0yLTIuODEtMi45NS01LjI2LTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxu''@;'; + put 'put ''ICA8cGF0aCBkPSJNMjMuODcsMjYuNjVBMi41OSwyLjU5LDAsMCwwLDIyLjM1LDI1TDIyLDI0LjlsLS40NiwxLjUzLjE2LDBhMSwxLDAsMCwxLC42LjYxYy4xNy42LS40MSwxLjMxLTEuMjYsMS41NXMtMS43MS0uMDctMS44OC0uNjZsLTEuNTQuNDNoMGEyLjgzLDIuODMsMCwwLDAsMi44NCwx''@;'; + put 'put ''LjkxLDQsNCwwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMjMuODcsMjYuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMTUuMDcsMjUuNTloMGEyLjczLDIuNzMsMCwwLDAtMi4yNC0xLjg0bC0uMjcsMS41OGExLjEyLDEuMTIsMCww''@;'; + put 'put ''LDEsMSwuN2MuMTcuNTktLjQxLDEuMy0xLjI2LDEuNTRBMS45MiwxLjkyLDAsMCwxLDExLDI3LjUyYTEsMSwwLDAsMS0uNi0uNjFzMC0uMDksMC0uMTNsLTEuNTguMTZhMiwyLDAsMCwwLC4wNi40MUEyLjU5LDIuNTksMCwwLDAsMTAuMzcsMjlhMy4zNiwzLjM2LDAsMCwwLDEuMzEuMjUsMy43''@;'; + put 'put ''LDMuNywwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMTUuMDcsMjUuNTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTAuNzgsMTkuMTdhMi41OSwyLjU5LDAsMCwwLTEuNTItMS42NSwyLjkxLDIuOTEsMCwwLDAtLjUtLjE2bC0uMzcs''@;'; + put 'put ''MS41NmExLjIxLDEuMjEsMCwwLDEsLjI1LjA4LDEsMSwwLDAsMSwuNi42Yy4xNy42LS40MSwxLjMxLTEuMjYsMS41NXMtMS43MS0uMDYtMS44OC0uNjZhLjg2Ljg2LDAsMCwxLDAtLjM5bC0xLjU2LS4zNGEyLjQsMi40LDAsMCwwLDAsMS4xNkEyLjgzLDIuODMsMCwwLDAsNy40LDIyLjgzYTQs''@;'; + put 'put ''NCwwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMTAuNzgsMTkuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNMTMuNDUsMTEuNGEyLjU5LDIuNTksMCwwLDAtMS41Mi0xLjY1LDEuMTcsMS4xNywwLDAsMC0uMi0uMDZsLS41MiwxLjUx''@;'; + put 'put ''YS4zOC4zOCwwLDAsMSwuMSwwLDEsMSwwLDAsMSwuNi42Yy4xNy42LS40MSwxLjMxLTEuMjYsMS41NWEyLjA2LDIuMDYsMCwwLDEtMS4yOC0uMDUsMSwxLDAsMCwxLS42LS42MS44NS44NSwwLDAsMSwwLS4zMmwtMS41OC0uMTlhMi4zLDIuMywwLDAsMCwuMDYuOTRBMi41NiwyLjU2LDAsMCww''@;'; + put 'put ''LDguNzUsMTQuOGEzLjM3LDMuMzcsMCwwLDAsMS4zMS4yNiw0LDQsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDEzLjQ1LDExLjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMjEsNi43OGEyLjU2LDIuNTYsMCwwLDAtMS41Mi0xLjY1''@;'; + put 'put ''bC0uMy0uMUwxOC43LDYuNTZsLjE1LDBhMSwxLDAsMCwxLC42LjYxYy4xNy42LS40MSwxLjMtMS4yNiwxLjU0cy0xLjcxLS4wNi0xLjg4LS42NWEuOS45LDAsMCwxLC4wNi0uNThMMTQuODksNi45YTIuNDcsMi40NywwLDAsMC0uMTIsMS42MywyLjg0LDIuODQsMCwwLDAsMi44NCwxLjkxLDMu''@;'; + put 'put ''NTgsMy41OCwwLDAsMCwxLS4xNUEzLDMsMCwwLDAsMjEsNi43OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03Ii8+XG5cbiAgPHBhdGggZD0iTTMyLjIzLDE0Ljg5Yy0yLjEtLjU2LTQuOTMsMS44LTYuMzQuMy0xLjcxLTEuODIsMi4yNy01LjUzLDEuODYtOC45''@;'; + put 'put ''Mi0uMzMtMi43OC0zLjUxLTQuMDgtNi42Ni00LjFBMTguNSwxOC41LDAsMCwwLDcuNzQsNy41OWMtNi42NCw2LjU5LTguMDcsMTYtMS4zNywyMi40OCw2LjIxLDYsMTYuNjEsNC4yMywyMi42Ny0xLjRhMTcuNzMsMTcuNzMsMCwwLDAsNC4yMi02LjU0QzM0LjM0LDE5LjIzLDM0LjQ0LDE1LjQ5''@;'; + put 'put ''LDMyLjIzLDE0Ljg5Wk05LjQsMTAuNTdhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMSwyLjIyLDIuMjIsMCwwLDEtMS44MSwyLjUzQTIuMjIsMi4yMiwwLDAsMSw3LjU5LDEzLjEsMi4yMywyLjIzLDAsMCwxLDkuNCwxMC41N1pNNS4wNywyMC44MmEyLjIyLDIuMjIsMCwwLDEsMS44Mi0yLjUz''@;'; + put 'put ''QTIuMjIsMi4yMiwwLDAsMSw5Ljc1LDE5LjUsMi4yMywyLjIzLDAsMCwxLDcuOTQsMjIsMi4yNCwyLjI0LDAsMCwxLDUuMDcsMjAuODJabTcsOC4zM2EyLjIyLDIuMjIsMCwwLDEtMi44Ny0xLjIxQTIuMjMsMi4yMywwLDAsMSwxMSwyNS40MWEyLjIzLDIuMjMsMCwwLDEsMi44NywxLjIxQTIu''@;'; + put 'put ''MjIsMi4yMiwwLDAsMSwxMiwyOS4xNVpNMTUsOC4yNmEyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODIsMi41M0EyLjIxLDIuMjEsMCwwLDEsMTUsOC4yNlptNS44MiwyMi4xOWEyLjIyLDIuMjIsMCwwLDEtMi44''@;'; + put 'put ''Ny0xLjIxLDIuMjMsMi4yMywwLDAsMSwxLjgxLTIuNTMsMi4yNCwyLjI0LDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMjAuNzgsMzAuNDVabTUtMTAuNDZhMy4yLDMuMiwwLDAsMS0xLjY5LDEuNzYsMy41MywzLjUzLDAsMCwxLTEuNC4zLDIuNzgsMi43OCwwLDAsMS0yLjU2LTEu''@;'; + put 'put ''NSwyLjQ5LDIuNDksMCwwLDEtLjA3LTIsMy4yLDMuMiwwLDAsMSwxLjY5LTEuNzYsMywzLDAsMCwxLDQsMS4yQTIuNTQsMi41NCwwLDAsMSwyNS43OSwyMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLkVzc2VudGlhbFNoYXBlcz17ImFkZC10ZXh0Ijpl''@;'; + put 'put ''LkNsclNoYXBlQWRkVGV4dCwiYWxhcm0tb2ZmIjplLkNsclNoYXBlQWxhcm1PZmYscGluYm9hcmQ6ZS5DbHJTaGFwZVBpbmJvYXJkLG5ldzplLkNsclNoYXBlTmV3LCJidWJibGUtZXhjbGFtYXRpb24iOmUuQ2xyU2hhcGVCdWJibGVFeGNsYW1hdGlvbiwiZ3JpZC12aWV3IjplLkNsclNoYXBl''@;'; + put 'put ''R3JpZFZpZXcsImN1cnNvci1hcnJvdyI6ZS5DbHJTaGFwZUN1cnNvckFycm93LCJjdXJzb3ItaGFuZCI6ZS5DbHJTaGFwZUN1cnNvckhhbmQsImN1cnNvci1oYW5kLWNsaWNrIjplLkNsclNoYXBlQ3Vyc29ySGFuZENsaWNrLCJjdXJzb3ItaGFuZC1ncmFiIjplLkNsclNoYXBlQ3Vyc29ySGFu''@;'; + put 'put ''ZEdyYWIsImN1cnNvci1oYW5kLW9wZW4iOmUuQ2xyU2hhcGVDdXJzb3JIYW5kT3BlbiwiY3Vyc29yLW1vdmUiOmUuQ2xyU2hhcGVDdXJzb3JNb3ZlLCJmaXJzdC1haWQiOmUuQ2xyU2hhcGVGaXJzdEFpZCxyZXNpemU6ZS5DbHJTaGFwZVJlc2l6ZSxvYmplY3RzOmUuQ2xyU2hhcGVPYmplY3Rz''@;'; + put 'put ''LGJvb2s6ZS5DbHJTaGFwZUJvb2ssYXN0ZXJpc2s6ZS5DbHJTaGFwZUFzdGVyaXNrLGJ1ZzplLkNsclNoYXBlQnVnLHNjaXNzb3JzOmUuQ2xyU2hhcGVTY2lzc29ycyx0aGVybW9tZXRlcjplLkNsclNoYXBlVGhlcm1vbWV0ZXIscGVuY2lsOmUuQ2xyU2hhcGVQZW5jaWwsbm90ZTplLkNsclNo''@;'; + put 'put ''YXBlTm90ZSxyZWZyZXNoOmUuQ2xyU2hhcGVSZWZyZXNoLHN5bmM6ZS5DbHJTaGFwZVN5bmMsInZpZXctbGlzdCI6ZS5DbHJTaGFwZVZpZXdMaXN0LCJ2aWV3LWNhcmRzIjplLkNsclNoYXBlVmlld0NhcmRzLCJ0cmVlLXZpZXciOmUuQ2xyU2hhcGVUcmVlVmlldyxsaWdodGJ1bGI6ZS5DbHJT''@;'; + put 'put ''aGFwZUxpZ2h0YnVsYixkb3dubG9hZDplLkNsclNoYXBlRG93bmxvYWQsdXBsb2FkOmUuQ2xyU2hhcGVVcGxvYWQsbG9jazplLkNsclNoYXBlTG9jayx1bmxvY2s6ZS5DbHJTaGFwZVVubG9jayx1c2VyczplLkNsclNoYXBlVXNlcnMsInBvcC1vdXQiOmUuQ2xyU2hhcGVQb3BPdXQsZmlsdGVy''@;'; + put 'put ''OmUuQ2xyU2hhcGVGaWx0ZXIscGluOmUuQ2xyU2hhcGVQaW4sZmlsZTplLkNsclNoYXBlRmlsZSxwbHVzOmUuQ2xyU2hhcGVQbHVzLG1pbnVzOmUuQ2xyU2hhcGVNaW51cywibWludXMtY2lyY2xlIjplLkNsclNoYXBlTWludXNDaXJjbGUsInBsdXMtY2lyY2xlIjplLkNsclNoYXBlUGx1c0Np''@;'; + put 'put ''cmNsZSxiYW46ZS5DbHJTaGFwZUJhbiwidGltZXMtY2lyY2xlIjplLkNsclNoYXBlVGltZXNDaXJjbGUsdHJhc2g6ZS5DbHJTaGFwZVRyYXNoLGNpcmNsZTplLkNsclNoYXBlQ2lyY2xlLHRhZzplLkNsclNoYXBlVGFnLHRhZ3M6ZS5DbHJTaGFwZVRhZ3MsaGlzdG9yeTplLkNsclNoYXBlSGlz''@;'; + put 'put ''dG9yeSxjbG9jazplLkNsclNoYXBlQ2xvY2ssImFsYXJtLWNsb2NrIjplLkNsclNoYXBlQWxhcm1DbG9jayxhcnJvdzpjLkNsclNoYXBlQXJyb3csImNpcmNsZS1hcnJvdyI6ZS5DbHJTaGFwZUNpcmNsZUFycm93LCJjaGlsZC1hcnJvdyI6ZS5DbHJTaGFwZUNoaWxkQXJyb3csY29weTplLkNs''@;'; + put 'put ''clNoYXBlQ29weSxoZWxwOmUuQ2xyU2hhcGVIZWxwLGxvZ2luOmUuQ2xyU2hhcGVMb2dpbixsb2dvdXQ6ZS5DbHJTaGFwZUxvZ291dCxwcmludGVyOmUuQ2xyU2hhcGVQcmludGVyLHdvcmxkOmUuQ2xyU2hhcGVXb3JsZCxzbGlkZXI6ZS5DbHJTaGFwZVNsaWRlcixjbGlwYm9hcmQ6ZS5DbHJT''@;'; + put 'put ''aGFwZUNsaXBib2FyZCxmaXJld2FsbDplLkNsclNoYXBlRmlyZXdhbGwsbGlzdDplLkNsclNoYXBlTGlzdCxyZWRvOmUuQ2xyU2hhcGVSZWRvLHVuZG86ZS5DbHJTaGFwZVVuZG8sc2Nyb2xsOmUuQ2xyU2hhcGVTY3JvbGwsImZpbGUtc2V0dGluZ3MiOmUuQ2xyU2hhcGVGaWxlU2V0dGluZ3Ms''@;'; + put 'put ''InR3by13YXktYXJyb3dzIjplLkNsclNoYXBlVHdvV2F5QXJyb3dzLHN3aXRjaDplLkNsclNoYXBlU3dpdGNoLHRvb2xzOmUuQ2xyU2hhcGVUb29scywid2luZG93LWNsb3NlIjplLkNsclNoYXBlV2luZG93Q2xvc2UsIndpbmRvdy1tYXgiOmUuQ2xyU2hhcGVXaW5kb3dNYXgsIndpbmRvdy1t''@;'; + put 'put ''aW4iOmUuQ2xyU2hhcGVXaW5kb3dNaW4sIndpbmRvdy1yZXN0b3JlIjplLkNsclNoYXBlV2luZG93UmVzdG9yZSwiem9vbS1pbiI6ZS5DbHJTaGFwZVpvb21Jbiwiem9vbS1vdXQiOmUuQ2xyU2hhcGVab29tT3V0LGtleTplLkNsclNoYXBlS2V5LGxpYnJhcnk6ZS5DbHJTaGFwZUxpYnJhcnks''@;'; + put 'put ''Ym9sdDplLkNsclNoYXBlQm9sdCx3cmVuY2g6ZS5DbHJTaGFwZVdyZW5jaCxidWxsc2V5ZTplLkNsclNoYXBlQnVsbHNleWUsdGFyZ2V0OmUuQ2xyU2hhcGVUYXJnZXQsZmxhbWU6ZS5DbHJTaGFwZUZsYW1lLGhvdXJnbGFzczplLkNsclNoYXBlSG91cmdsYXNzLCJuby1hY2Nlc3MiOmUuQ2xy''@;'; + put 'put ''U2hhcGVOb0FjY2Vzcyxvcmdhbml6YXRpb246ZS5DbHJTaGFwZU9yZ2FuaXphdGlvbixiYWxhbmNlOmUuQ2xyU2hhcGVCYWxhbmNlLCJpZC1iYWRnZSI6ZS5DbHJTaGFwZUlkQmFkZ2UscmVwZWF0OmUuQ2xyU2hhcGVSZXBlYXQsImZpbGUtZ3JvdXAiOmUuQ2xyU2hhcGVGaWxlR3JvdXAscGFw''@;'; + put 'put ''ZXJjbGlwOmUuQ2xyU2hhcGVQYXBlcmNsaXAsc2hyaW5rOmUuQ2xyU2hhcGVTaHJpbmssImFjY2Vzc2liaWxpdHktMSI6ZS5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxLCJhY2Nlc3NpYmlsaXR5LTIiOmUuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5Miwic29ydC1ieSI6ZS5DbHJTaGFwZVNvcnRCeSwi''@;'; + put 'put ''Y29sbGFwc2UtY2FyZCI6ZS5DbHJTaGFwZUNvbGxhcHNlQ2FyZCwiZXhwYW5kLWNhcmQiOmUuQ2xyU2hhcGVFeHBhbmRDYXJkLGJyaWVmY2FzZTplLkNsclNoYXBlQnJpZWZjYXNlLCJjb2xvci1waWNrZXIiOmUuQ2xyU2hhcGVDb2xvclBpY2tlciwiY29weS10by1jbGlwYm9hcmQiOmUuQ2xy''@;'; + put 'put ''U2hhcGVDb3B5VG9DbGlwYm9hcmQsImZpbHRlci0yIjplLkNsclNoYXBlRmlsdGVyMiwiZHJhZy1oYW5kbGUiOmUuQ2xyU2hhcGVEcmFnSGFuZGxlLG1vb246ZS5DbHJTaGFwZU1vb24sc3VuOmUuQ2xyU2hhcGVTdW4sd2FuZDplLkNsclNoYXBlV2FuZCxjbG9uZTplLkNsclNoYXBlQ2xvbmUs''@;'; + put 'put ''ZGV0YWlsczplLkNsclNoYXBlRGV0YWlscywiZHJhZy1oYW5kbGUtY29ybmVyIjplLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcixlcmFzZXI6ZS5DbHJTaGFwZUVyYXNlcixsYW5kc2NhcGU6ZS5DbHJTaGFwZUxhbmRzY2FwZSxwYXN0ZTplLkNsclNoYXBlUGFzdGUscG9ydHJhaXQ6ZS5DbHJT''@;'; + put 'put ''aGFwZVBvcnRyYWl0LCJmaWxlLXppcCI6ZS5DbHJTaGFwZUZpbGVaaXAsImZpbHRlci1vZmYiOmUuQ2xyU2hhcGVGaWx0ZXJPZmYscmVjeWNsZTplLkNsclNoYXBlUmVjeWNsZSx0cmVlOmUuQ2xyU2hhcGVUcmVlLGZpc2g6ZS5DbHJTaGFwZUZpc2gsZm9ybTplLkNsclNoYXBlRm9ybSxmdWVs''@;'; + put 'put ''OmUuQ2xyU2hhcGVGdWVsLHNub3dmbGFrZTplLkNsclNoYXBlU25vd2ZsYWtlLHRhYmxlOmUuQ2xyU2hhcGVUYWJsZSwiZG90LWNpcmNsZSI6ZS5DbHJTaGFwZURvdENpcmNsZSx2b2x1bWU6ZS5DbHJTaGFwZVZvbHVtZSxjcm9zc2hhaXJzOmUuQ2xyU2hhcGVDcm9zc2hhaXJzLGJldGE6ZS5D''@;'; + put 'put ''bHJTaGFwZUJldGEsImNvbG9yLXBhbGV0dGUiOmUuQ2xyU2hhcGVDb2xvclBhbGV0dGV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywiZWRpdCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5wZW5jaWwpKSxPYmplY3QuZGVmaW5lUHJv''@;'; + put 'put ''cGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsIm5vdGUtZWRpdCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5ub3RlKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuRXNzZW50aWFsU2hhcGVzLCJncm91cCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlh''@;'; + put 'put ''bFNoYXBlcy51c2VycykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywiZG9jdW1lbnQiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Fc3NlbnRpYWxTaGFwZXMuZmlsZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywiYWRkIiwoMCxy''@;'; + put 'put ''LmRlc2NyaXB0b3JDb25maWcpKGUuRXNzZW50aWFsU2hhcGVzLnBsdXMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsImNhbmNlbCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5iYW4pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5F''@;'; + put 'put ''c3NlbnRpYWxTaGFwZXMsInJlbW92ZSIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlc1sidGltZXMtY2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsInNpZ24taW4iLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Fc3NlbnRp''@;'; + put 'put ''YWxTaGFwZXMubG9naW4pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsInNpZ24tb3V0IiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuRXNzZW50aWFsU2hhcGVzLmxvZ291dCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywibGlnaHRu''@;'; + put 'put ''aW5nIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuRXNzZW50aWFsU2hhcGVzLmJvbHQpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsImZsb3ctY2hhcnQiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Fc3NlbnRpYWxTaGFwZXMub3JnYW5pemF0aW9uKSksT2Jq''@;'; + put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KGUuRXNzZW50aWFsU2hhcGVzLCJhbGVydCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlc1siYnViYmxlLWV4Y2xhbWF0aW9uIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsInBpbm5lZCIsKDAsci5k''@;'; + put 'put ''ZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5waW5ib2FyZCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywiYXR0YWNobWVudCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5wYXBlcmNsaXApKSxPYmplY3QuZGVmaW5l''@;'; + put 'put ''UHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsImF0dGFjaG1lbnQiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Fc3NlbnRpYWxTaGFwZXMucGFwZXJjbGlwKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuRXNzZW50aWFsU2hhcGVzLCJyZXNpemUtZG93biIsKDAsci5kZXNjcmlwdG9yQ29u''@;'; + put 'put ''ZmlnKShlLkVzc2VudGlhbFNoYXBlcy5zaHJpbmspKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsInJlc2l6ZS11cCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5yZXNpemUpKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2lu''@;'; + put 'put ''ZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoZS5Fc3NlbnRpYWxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL21lZGlhLXNoYXBlcy50cyI6ZnVuY3Rpb24oQSxlLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVm''@;'; + put 'put ''aW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5NZWRpYVNoYXBlcz1lLkNsclNoYXBlTWljcm9waG9uZU11dGU9ZS5DbHJTaGFwZU1pY3JvcGhvbmU9ZS5DbHJTaGFwZVZpZGVvR2FsbGVyeT1lLkNsclNoYXBlUmVwbGF5T25lPWUuQ2xyU2hhcGVSZXBsYXlBbGw9ZS5D''@;'; + put 'put ''bHJTaGFwZUltYWdlR2FsbGVyeT1lLkNsclNoYXBlTXVzaWNOb3RlPWUuQ2xyU2hhcGVGaWxtU3RyaXA9ZS5DbHJTaGFwZUhlYWRwaG9uZXM9ZS5DbHJTaGFwZVZvbHVtZU11dGU9ZS5DbHJTaGFwZVZvbHVtZVVwPWUuQ2xyU2hhcGVWb2x1bWVEb3duPWUuQ2xyU2hhcGVTaHVmZmxlPWUuQ2xy''@;'; + put 'put ''U2hhcGVWaWRlb0NhbWVyYT1lLkNsclNoYXBlQ2FtZXJhPWUuQ2xyU2hhcGVGYXN0Rm9yd2FyZD1lLkNsclNoYXBlUmV3aW5kPWUuQ2xyU2hhcGVQb3dlcj1lLkNsclNoYXBlU3RvcD1lLkNsclNoYXBlU3RlcEZvcndhcmQ9ZS5DbHJTaGFwZVBhdXNlPWUuQ2xyU2hhcGVQbGF5PXZvaWQgMCxs''@;'; + put 'put ''PWwoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIiksZS5DbHJTaGFwZVBsYXk9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik04LjA3LDMxLjZBMi4wNywyLjA3LDAsMCwx''@;'; + put 'put ''LDYsMjkuNTNWNi4zMkEyLjA3LDIuMDcsMCwwLDEsOSw0LjQ3TDMyLjIxLDE2LjA4YTIuMDcsMi4wNywwLDAsMSwwLDMuN0w5LDMxLjM4QTIuMDYsMi4wNiwwLDAsMSw4LjA3LDMxLjZabTAtMjUuMzRMOCw2LjMyVjI5LjUzbC4xLjA2TDMxLjMxLDE4YS4wNi4wNiwwLDAsMCwwLS4wNloiLz5c''@;'; + put 'put ''biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTYuMDgsOC45NCw0LjQ3QTIuMDcsMi4wNywwLDAsMCw2LDYuMzJWMjkuNTNhMi4wNiwyLjA2LDAsMCwwLDMsMS44NUwzMi4xNiwxOS43N2EyLjA3LDIuMDcsMCww''@;'; + put 'put ''LDAsMC0zLjdaIi8+JyksZS5DbHJTaGFwZVBhdXNlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTIuOTMsMzJINi4wN0EyLjA3LDIuMDcsMCwwLDEsNCwyOS45M1Y2LjA3QTIuMDcsMi4wNywwLDAsMSw2LjA3''@;'; + put 'put ''LDRoNi44N0EyLjA3LDIuMDcsMCwwLDEsMTUsNi4wN1YyOS45M0EyLjA3LDIuMDcsMCwwLDEsMTIuOTMsMzJaTTEzLDZINlYzMGg3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjkuOTMsMzJIMjMuMDdB''@;'; + put 'put ''Mi4wNywyLjA3LDAsMCwxLDIxLDI5LjkzVjYuMDdBMi4wNywyLjA3LDAsMCwxLDIzLjA3LDRoNi44N0EyLjA3LDIuMDcsMCwwLDEsMzIsNi4wN1YyOS45M0EyLjA3LDIuMDcsMCwwLDEsMjkuOTMsMzJaTTMwLDZIMjNWMzBoN1oiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiB4PSIzLjk1IiB5PSI0IiB3aWR0aD0iMTEiIGhlaWdodD0iMjgiIHJ4PSIyLjA3IiByeT0iMi4wNyIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIHg9IjIwLjk1IiB5PSI0''@;'; + put 'put ''IiB3aWR0aD0iMTEiIGhlaWdodD0iMjgiIHJ4PSIyLjA3IiByeT0iMi4wNyIvPicpLGUuQ2xyU2hhcGVTdGVwRm9yd2FyZD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTUsMzIuMjNhMiwyLDAsMCwxLTItMlY1''@;'; + put 'put ''Ljc3QTIsMiwwLDAsMSw2LjE3LDQuMTRMMjMuMjMsMTYuMzhhMiwyLDAsMCwxLDAsMy4yNWgwTDYuMTcsMzEuODZBMiwyLDAsMCwxLDUsMzIuMjNaTTUsNS43N1YzMC4yM0wyMi4wNywxOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMiIgZD0iTTMxLDMySDI4YTIsMiwwLDAsMS0yLTJWNmEyLDIsMCwwLDEsMi0yaDNhMiwyLDAsMCwxLDIsMlYzMEEyLDIsMCwwLDEsMzEsMzJaTTI4LDZWMzBoM1Y2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTEiIGQ9Ik01LDMxLjlhMiwyLDAsMCwxLTItMlY1LjQ0QTIsMiwwLDAsMSw2LjEyLDMuODFMMjMuMTgsMTZhMiwyLDAsMCwxLDAsMy4yNWgwTDYuMTIsMzEuNTJBMiwyLDAsMCwxLDUsMzEuOVoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0yIiB4PSIyNS45NSIgeT0iMy42NyIgd2lkdGg9IjciIGhlaWdodD0iMjgiIHJ4PSIyIiByeT0iMiIvPicpLGUuQ2xyU2hhcGVTdG9wPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsMzJINmEy''@;'; + put 'put ''LDIsMCwwLDEtMi0yVjZBMiwyLDAsMCwxLDYsNEgzMGEyLDIsMCwwLDEsMiwyVjMwQTIsMiwwLDAsMSwzMCwzMlpNNiw2VjMwSDMwVjZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iMy45NiIgeT0iNCIgd2lkdGg9''@;'; + put 'put ''IjI3Ljk5IiBoZWlnaHQ9IjI4IiByeD0iMiIgcnk9IjIiLz4nKSxlLkNsclNoYXBlUG93ZXI9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMWExLDEsMCwwLDEtMS0xVjRhMSwxLDAsMCwxLDIsMFYyMEEx''@;'; + put 'put ''LDEsMCwwLDEsMTgsMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNC4xNWExNSwxNSwwLDAsMS03LjUyLTI4LDEsMSwwLDAsMSwxLDEuNzMsMTMsMTMsMCwxLDAsMTMsMCwxLDEsMCwxLDEsMS0x''@;'; + put 'put ''LjczLDE1LDE1LDAsMCwxLTcuNTIsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOCwyMWExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTIsMFYyMEExLDEsMCwwLDAs''@;'; + put 'put ''MTgsMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0zMi41MSwxNS40SDMwLjQ0YTEzLDEzLDAsMSwxLTE5LTcuNSwxLDEsMCwwLDAtMS0xLjczQTE1LDE1LDAsMSwwLDMz''@;'; + put 'put ''LDE5LjE1LDE0LjksMTQuOSwwLDAsMCwzMi41MSwxNS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEu''@;'; + put 'put ''MjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0t''@;'; + put 'put ''YmFkZ2VkIiBkPSJNMTgsMjFhMSwxLDAsMCwxLTEtMVY0YTEsMSwwLDAsMSwyLDBWMjBBMSwxLDAsMCwxLDE4LDIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVs''@;'; + put 'put ''LS4zMSwwQTEzLDEzLDAsMSwxLDExLjQ4LDcuOWExLDEsMCwwLDAtMS0xLjczLDE1LDE1LDAsMSwwLDIxLjMxLDcuMUE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabS4wNiwxNy42''@;'; + put 'put ''OGExLjI4LDEuMjgsMCwwLDEtMS4yOS0xLjI4VjguNjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMFYxOC40QTEuMjgsMS4yOCwwLDAsMSwxOC4wNiwxOS42OFpNMTgsMjcuNzlBOS44OCw5Ljg4LDAsMCwxLDEyLjE3LDkuODVhMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0u''@;'; + put 'put ''MzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMsNS44LDcuMDcsNy4wNywwLDAsMC0zLTUuNzZBMS4zNywxLjM3LDAsMCwxLDIyLDEwLjJhMS40LDEuNCwwLDAsMSwxLjk0LS4yOUE5Ljg4LDkuODgsMCwwLDEsMTgsMjcuNzlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRoLTZBOS43LDkuNywwLDAsMSwyOCwxNy44OWExMCwxMCwwLDEsMS0xNS44My04LDEuNCwxLjQsMCwwLDEsMS45NC4zMSwxLjM3LDEuMzcsMCwwLDEtLjMxLDEuOTIsNy4xOCw3LjE4''@;'; + put 'put ''LDAsMSwwLDExLjQzLDUuOCw3LjA4LDcuMDgsMCwwLDAtLjQ1LTIuNDlIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0djQuNGExLjI5LDEuMjksMCwwLDEtMi41OCwwVjguNjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMHYuNzFsMy43Ni02LjUxQTE2LDE2LDAsMSwwLDM0LDE4YTE2LDE2''@;'; + put 'put ''LDAsMCwwLS4yMy0yLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42''@;'; + put 'put ''OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40Nyw3''@;'; + put 'put ''LjQ3LDAsMCwxLTMuNTctLjlBOS44Myw5LjgzLDAsMCwxLDI4LDE3Ljg5YTEwLDEwLDAsMSwxLTE1LjgzLTgsMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0uMzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMsNS44LDcuMDcsNy4wNywwLDAsMC0zLTUuNzZBMS4zNywx''@;'; + put 'put ''LjM3LDAsMCwxLDIyLDEwLjJhMS4zOCwxLjM4LDAsMCwxLDEuNTItLjQ5LDcuNDUsNy40NSwwLDAsMS0uMy02LjgzLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M0E3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuNzcsOC42NWExLjI5LDEuMjksMCwwLDEsMi41OCwwVjE4LjRhMS4yOSwx''@;'; + put 'put ''LjI5LDAsMCwxLTIuNTgsMFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksZS5DbHJTaGFwZVJld2luZD0oMCxsLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE3LjA5LDMxLjU4bC0xNS4zMi0xMmEyLDIsMCwwLDEsMC0zLjE1bDE1LjMyLTEyYTEuOTMsMS45MywwLDAsMSwyLjA2LS4yMkExLjc3LDEuNzcsMCwwLDEsMjAsNnY2LjdMMzAuODMs''@;'; + put 'put ''NC40MmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJBMiwyLDAsMCwxLDM0LDZWMzBhMiwyLDAsMCwxLTEuMTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJMMjAsMjMuMzFWMzBhMS43NywxLjc3LDAsMCwxLS44NSwxLjc5LDEuOTQsMS45NCwwLDAsMS0yLjA2LS4yMlpNMzIsMzBsLjA2''@;'; + put 'put ''LTI0TDE4LDE2LjhWNkwzLDE4LDE4LDMwVjE5LjJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTYuOTIsMzEuNTgsMS42LDE5LjU3YTIsMiwwLDAsMSwwLTMuMTVsMTUuMzItMTJBMS45MywxLjkzLDAsMCwxLDE5LDQu''@;'; + put 'put ''MiwxLjg5LDEuODksMCwwLDEsMjAsNnY2LjdMMzAuNjYsNC40MmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJBMiwyLDAsMCwxLDMzLjgzLDZWMzBhMiwyLDAsMCwxLTEuMTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJMMjAsMjMuMzFWMzBhMS44OSwxLjg5LDAsMCwxLTEsMS43OSwx''@;'; + put 'put ''Ljk0LDEuOTQsMCwwLDEtMi4wNi0uMjJaIi8+JyksZS5DbHJTaGFwZUZhc3RGb3J3YXJkPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTcuNzcsMzEuOTJhMiwyLDAsMCwxLS44Ni0uMkExLjgxLDEuODEsMCww''@;'; + put 'put ''LDEsMTYsMjkuOTN2LTYuN0w1LjI0LDMxLjVhMS45NCwxLjk0LDAsMCwxLTIuMDYuMjIsMiwyLDAsMCwxLTEuMTEtMS43OXYtMjRBMiwyLDAsMCwxLDMuMTgsNC4xMmExLjkzLDEuOTMsMCwwLDEsMi4wNi4yMkwxNiwxMi42MVY1LjkxYTEuODEsMS44MSwwLDAsMSwuOTEtMS43OUExLjkzLDEu''@;'; + put 'put ''OTMsMCwwLDEsMTksNC4zNGwxNS4zMiwxMmEyLDIsMCwwLDEsMCwzLjE1TDE5LDMxLjVBMiwyLDAsMCwxLDE3Ljc3LDMxLjkyWm0wLTEyLjhWMjkuOTNsMTUuMjYtMTItMTUuMzItMTIsLjA2LDEwLjgxTDQsNS45MXYyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNy43MSwzMmEyLDIsMCwwLDEtLjg2LS4yQTEuNzcsMS43NywwLDAsMSwxNiwzMHYtNi43TDUuMTcsMzEuNThhMS45NCwxLjk0LDAsMCwxLTIuMDYuMjJBMiwyLDAsMCwxLDIsMzBWNkEyLDIsMCwwLDEsMy4xMSw0LjJhMS45MywxLjkzLDAsMCwx''@;'; + put 'put ''LDIuMDYuMjJMMTYsMTIuNjlWNmExLjc3LDEuNzcsMCwwLDEsLjg1LTEuNzksMS45MywxLjkzLDAsMCwxLDIuMDYuMjJsMTUuMzIsMTJhMiwyLDAsMCwxLDAsMy4xNWwtMTUuMzIsMTJBMiwyLDAsMCwxLDE3LjcxLDMyWiIvPicpLGUuQ2xyU2hhcGVDYW1lcmE9KDAsbC5jbHJJY29uU1ZHKSgn''@;'; + put 'put ''PHBhdGggZD0iTTMyLDhIMjQuN0wyMy42NCw1LjI4QTIsMiwwLDAsMCwyMS43OCw0SDE0LjIyYTIsMiwwLDAsMC0xLjg3LDEuMjhMMTEuMyw4SDRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhabTAsMjJINFYxMGg4LjY3''@;'; + put 'put ''bDEuNTUtNGg3LjU2bDEuNTUsNEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwxOWE5LDksMCwxLDAsOS05QTksOSwwLDAsMCw5LDE5Wm0xNi40LDBBNy40LDcuNCwwLDEsMSwxOCwxMS42LDcuNDEsNy40''@;'; + put 'put ''MSwwLDAsMSwyNS40LDE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjM3LDEyLjgzYS44LjgsMCwwLDAtLjgtLjhINi4xN2EuOC44LDAsMCwwLDAsMS42aDIuNEEuOC44LDAsMCwwLDkuMzcsMTIuODNaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjM0LDE5YTUuNTcsNS41NywwLDAsMCwzLjI0LDVsLjg1LTEuMzdhNCw0LDAsMSwxLDQuMTEtNi42MWwuODYtMS4zOEE1LjU2LDUuNTYsMCwwLDAsMTIuMzQsMTlaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDhIMjQuN0wyMy42NCw1LjI4QTIsMiwwLDAsMCwyMS43OCw0SDE0LjIyYTIsMiwwLDAsMC0xLjg3LDEuMjhMMTEuMyw4SDRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCww''@;'; + put 'put ''LDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhaTTYuMTcsMTMuNjNhLjguOCwwLDAsMSwwLTEuNmgyLjRhLjguOCwwLDAsMSwwLDEuNlpNMTgsMjhhOSw5LDAsMSwxLDktOUE5LDksMCwwLDEsMTgsMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuMTEsMTkuMDZhNy4wNyw3LjA3LDAsMCwwLDQuMTEsNi40MWwxLjA5LTEuNzRhNSw1LDAsMSwxLDUuMjItOC4zOWwxLjA5LTEuNzZhNy4wNiw3LjA2LDAsMCwwLTExLjUxLDUuNDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0yIi8+JyksZS5DbHJTaGFwZVZpZGVvQ2FtZXJhPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQsMTAuMzRhMi4xMSwyLjExLDAsMCwwLTEuMTYtMS45LDIsMiwwLDAsMC0yLjEzLjE1TDI2LDEx''@;'; + put 'put ''LjZWOGEyLDIsMCwwLDAtMi0ySDZhNCw0LDAsMCwwLTQsNFYyNmE0LDQsMCwwLDAsNCw0SDI0YTIsMiwwLDAsMCwyLTJWMjQuNGw0LjY0LDNhMi4wNywyLjA3LDAsMCwwLDIuMi4yQTIuMTEsMi4xMSwwLDAsMCwzNCwyNS42NlpNMzEuOTMsMjUuNzdjLS4wNiwwLS4xMSwwLS4xOS0uMDZMMjQs''@;'; + put 'put ''MjAuNzdWMjhINmEyLDIsMCwwLDEtMi0yVjEwQTIsMiwwLDAsMSw2LDhIMjR2Ny4yM2w3LjgtNWEuMTEuMTEsMCwwLDEsLjEzLDAsLjExLjExLDAsMCwxLC4wNy4xMVYyNS42NkEuMTEuMTEsMCwwLDEsMzEuOTMsMjUuNzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMyw5LjM1LDI2LDEyLjlWOGEyLDIsMCwwLDAtMi0ySDZhNCw0LDAsMCwwLTQsNFYyNmE0LDQsMCwwLDAsNCw0SDI0YTIsMiwwLDAsMCwyLTJWMjMuMDhsNi4zLDMuNTVBMS4xLDEuMSwwLDAsMCwzNCwyNS43N1YxMC4yQTEuMSwxLjEsMCww''@;'; + put 'put ''LDAsMzIuMyw5LjM1WiIvPicpLGUuQ2xyU2hhcGVTaHVmZmxlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjEuNjEsMTFoOC42MmwtMy4zLDMuM2ExLDEsMCwxLDAsMS40MSwxLjQyTDM0LDEwLjA4bC0uNzEt''@;'; + put 'put ''LjcxaDBMMjguMzQsNC40M2ExLDEsMCwwLDAtMS40MSwxLjQyTDMwLjExLDlIMjFhMSwxLDAsMCwwLS44Ni41TDE3LjUsMTQuMDlsMS4xNiwyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xMS4wNywyNS4wN0gz''@;'; + put 'put ''YTEsMSwwLDAsMCwwLDJoOC42NWExLDEsMCwwLDAsLjg2LS41TDE1LjE4LDIyLDE0LDIwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yOC4zNCwyMC4xN2ExLDEsMCwwLDAtMS40MSwxLjQybDMuNSwzLjVIMjEu''@;'; + put 'put ''NjFMMTIuNTEsOS41M2ExLDEsMCwwLDAtLjg2LS41SDNhMSwxLDAsMSwwLDAsMmg4LjA3bDkuMSwxNS41NWExLDEsMCwwLDAsLjg2LjVIMjkuOWwtMywzYTEsMSwwLDAsMCwxLjQxLDEuNDJsNC45NS00Ljk0aDBsLjcxLS43MVoiLz4nKSxlLkNsclNoYXBlVm9sdW1lRG93bj0oMCxsLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjExYTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEuNzNBOC4yMSw4LjIxLDAsMCwxLDIzLjk0LDI1LDEsMSww''@;'; + put 'put ''LDAsMSwyMy40MSwyNS4xMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzJhMiwyLDAsMCwxLTEuNDItLjU5TDkuMTQsMjRINGEyLDIsMCwwLDEtMi0yVjE0YTIsMiwwLDAsMSwyLTJIOS4yMmw3LjMzLTcu''@;'; + put 'put ''NDFBMiwyLDAsMCwxLDIwLDZWMzBhMiwyLDAsMCwxLTEuMjQsMS44NUEyLDIsMCwwLDEsMTgsMzJaTTQsMTR2OEg5LjU2YTEsMSwwLDAsMSwuNzEuMjhMMTgsMzBWNmwtNy42NSw3LjY4YTEsMSwwLDAsMS0uNzEuM1pNMTgsNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yMy40MSwyNS4xMWExLDEsMCwwLDEtLjU0LTEuODUsNi4yMSw2LjIxLDAsMCwwLS4xOS0xMC42NSwxLDEsMCwxLDEsMS0xLjczQTguMjEsOC4yMSwwLDAsMSwyMy45NCwyNSwxLDEsMCwwLDEsMjMuNDEsMjUuMTFaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTguMzQsMy44Nyw5LDEySDNhMSwxLDAsMCwwLTEsMVYyM2ExLDEsMCwwLDAsMSwxSDguODNsOS41MSw4LjNBMSwxLDAsMCwwLDIwLDMxLjU1VjQuNjJBMSwxLDAsMCwwLDE4LjM0LDMuODdaIi8+Jyks''@;'; + put 'put ''ZS5DbHJTaGFwZVZvbHVtZVVwPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjMuNDEsMjUuMjVhMSwxLDAsMCwxLS41NC0xLjg1LDYuMjEsNi4yMSwwLDAsMC0uMTktMTAuNjUsMSwxLDAsMSwxLDEtMS43Myw4''@;'; + put 'put ''LjIxLDguMjEsMCwwLDEsLjI0LDE0LjA2QTEsMSwwLDAsMSwyMy40MSwyNS4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjUuNjIsMzEuMThhMSwxLDAsMCwxLS40NS0xLjg5QTEyLjQ0LDEyLjQ0LDAsMCww''@;'; + put 'put ''LDI1LDYuODlhMSwxLDAsMSwxLC44Ny0xLjgsMTQuNDQsMTQuNDQsMCwwLDEsLjI0LDI2QTEsMSwwLDAsMSwyNS42MiwzMS4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzIuMDZhMiwyLDAsMCwxLTEu''@;'; + put 'put ''NDItLjU5TDkuMTQsMjRINGEyLDIsMCwwLDEtMi0yVjE0YTIsMiwwLDAsMSwyLTJIOS4yMmw3LjMzLTcuMzlBMiwyLDAsMCwxLDIwLDZ2MjRhMiwyLDAsMCwxLTEuMjQsMS44NUEyLDIsMCwwLDEsMTgsMzIuMDZaTTQsMTR2OEg5LjU2YTEsMSwwLDAsMSwuNzEuM0wxOCwzMC4wNlY2TDEwLjM1''@;'; + put 'put ''LDEzLjdhMSwxLDAsMCwxLS43MS4zWk0xOCw2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjI1YTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEu''@;'; + put 'put ''NzMsOC4yMSw4LjIxLDAsMCwxLC4yNCwxNC4wNkExLDEsMCwwLDEsMjMuNDEsMjUuMjVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjUuNjIsMzEuMThhMSwxLDAsMCwxLS40NS0xLjg5QTEyLjQ0LDEyLjQ0LDAsMCww''@;'; + put 'put ''LDI1LDYuODlhMSwxLDAsMSwxLC44Ny0xLjgsMTQuNDQsMTQuNDQsMCwwLDEsLjI0LDI2QTEsMSwwLDAsMSwyNS42MiwzMS4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xOC4zMyw0LDkuMDcsMTJoLTZhMSwxLDAs''@;'; + put 'put ''MCwwLTEsMXY5LjkyYTEsMSwwLDAsMCwxLDFIOC44OGw5LjQ2LDguMjRBMSwxLDAsMCwwLDIwLDMxLjQzVjQuNzJBMSwxLDAsMCwwLDE4LjMzLDRaIi8+JyksZS5DbHJTaGFwZVZvbHVtZU11dGU9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiIGQ9Ik0zLjYxLDYuNDEsOS4xOSwxMkg0YTIsMiwwLDAsMC0yLDJ2OGEyLDIsMCwwLDAsMiwySDkuMTRsNy40MSw3LjQ3QTIsMiwwLDAsMCwxOCwzMmEyLDIsMCwwLDAsLjc2LS4xNUEyLDIsMCwwLDAsMjAsMzBWMjIuNzdsNS44OSw1Ljg5Yy0uMjUuMTUtLjQ5LjI5LS43''@;'; + put 'put ''NS40MmExLDEsMCwwLDAsLjksMS43OSwxNC40LDE0LjQsMCwwLDAsMS4zMS0uNzVsMi4yOCwyLjI4TDMxLDMxLDUsNVpNMTgsMzBsLTcuNzMtNy43N0ExLDEsMCwwLDAsOS41NiwyMkg0VjE0SDkuNjRhMSwxLDAsMCwwLC43MS0uM2wuMjYtLjI2TDE4LDIwLjgxWiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC44OSw2LjY5QTEyLjQyLDEyLjQyLDAsMCwxLDI5LDI2LjFsMS40MiwxLjQyQTE0LjQyLDE0LjQyLDAsMCwwLDI1Ljc2LDQuODhhMSwxLDAsMSwwLS44NywxLjhaIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIyLjY5LDEyLjYyQTYuMjcsNi4yNywwLDAsMSwyNS44LDE4YTYuMTcsNi4xNywwLDAsMS0xLjI0LDMuNzFMMjYsMjMuMTNBOC4xNSw4LjE1LDAsMCwwLDI3LjgsMThhOC4yOCw4LjI4LDAsMCwwLTQu''@;'; + put 'put ''MS03LjExLDEsMSwwLDEsMC0xLDEuNzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTE4LDZ2OS4xNWwyLDJWNmEyLDIsMCwwLDAtMy40Mi0xLjQxTDEyLDkuMTdsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI0Ljg3LDYuNjlBMTIuNDIsMTIuNDIsMCwwLDEsMjguNzUsMjYuM2wxLjQyLDEuNDJBMTQuNDMsMTQuNDMsMCwwLDAsMjUuNzQsNC44OGExLDEsMCwwLDAtLjg3LDEuOFoiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yNy4zLDI3LjY3aDBsLTMuODQtMy44NC0uNTctLjU3aDBMNC42Myw1LDMuMjEsNi40MSw4LjgsMTJIM2ExLDEsMCwwLDAtMSwxVjIzYTEsMSwwLDAsMCwxLDFIOC44M2w5LjUxLDguM0ExLDEsMCwwLDAsMjAs''@;'; + put 'put ''MzEuNTVWMjMuMmw1LjU5LDUuNTljLS4xNy4xLS4zNC4yLS41MS4yOWExLDEsMCwwLDAsLjksMS43OWMuMzctLjE5LjcyLS40LDEuMDgtLjYybDIuMTQsMi4xNEwzMC42MSwzMWwtMy4yNS0zLjI1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMyIgZD0iTTIyLjY5LDEyLjYyQTYuMjcsNi4yNywwLDAsMSwyNS44LDE4YTYuMTcsNi4xNywwLDAsMS0xLjQyLDMuOTJsMS40MiwxLjQyYTguMTYsOC4xNiwwLDAsMCwyLTUuMzQsOC4yOCw4LjI4LDAsMCwwLTQuMS03LjExLDEsMSwwLDEsMC0xLDEuNzNaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMjAsNC42MmExLDEsMCwwLDAtMS42Ni0uNzVsLTYuNDIsNS42TDIwLDE3LjU0WiIvPicpLGUuQ2xyU2hhcGVIZWFkcGhvbmVzPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsM0ExNC4yNywxNC4yNywwLDAsMCw0LDE3LjVWMzFIOS4yQTIuNzQsMi43NCwwLDAsMCwxMiwyOC4zM1YyMS42N0EyLjc0LDIuNzQsMCwwLDAsOS4yLDE5SDZWMTcuNUExMi4yNywxMi4yNywwLDAsMSwxOCw1LDEyLjI3LDEyLjI3LDAs''@;'; + put 'put ''MCwxLDMwLDE3LjVWMTlIMjYuOEEyLjc0LDIuNzQsMCwwLDAsMjQsMjEuNjd2Ni42N0EyLjc0LDIuNzQsMCwwLDAsMjYuOCwzMUgzMlYxNy41QTE0LjI3LDE0LjI3LDAsMCwwLDE4LDNaTTkuMiwyMWEuNzUuNzUsMCwwLDEsLjguNjd2Ni42N2EuNzUuNzUsMCwwLDEtLjguNjdINlYyMVpNMjYs''@;'; + put 'put ''MjguMzNWMjEuNjdhLjc1Ljc1LDAsMCwxLC44LS42N0gzMHY4SDI2LjhBLjc1Ljc1LDAsMCwxLDI2LDI4LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDNBMTQuMjcsMTQuMjcsMCwwLDAsNCwxNy41VjMxSDgu''@;'; + put 'put ''MkExLjc0LDEuNzQsMCwwLDAsMTAsMjkuMzNWMjIuNjdBMS43NCwxLjc0LDAsMCwwLDguMiwyMUg2VjE3LjVBMTIuMjcsMTIuMjcsMCwwLDEsMTgsNSwxMi4yNywxMi4yNywwLDAsMSwzMCwxNy41VjIxSDI3LjhBMS43NCwxLjc0LDAsMCwwLDI2LDIyLjY3djYuNjdBMS43NCwxLjc0LDAsMCww''@;'; + put 'put ''LDI3LjgsMzFIMzJWMTcuNUExNC4yNywxNC4yNywwLDAsMCwxOCwzWiIvPicpLGUuQ2xyU2hhcGVGaWxtU3RyaXA9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIs''@;'; + put 'put ''MCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzAsNFptMCwyNkg2VjZIMzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE0LjYsMjMuMDdhMS4yOSwxLjI5LDAsMCwwLDEuMjQuMDlsOC43''@;'; + put 'put ''My00YTEuMywxLjMsMCwwLDAsMC0yLjM3aDBsLTguNzMtNEExLjMsMS4zLDAsMCwwLDE0LDE0djhBMS4yOSwxLjI5LDAsMCwwLDE0LjYsMjMuMDdabTEtOC42TDIzLjMxLDE4LDE1LjYsMjEuNTFaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMyIgeD0iOCIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE0IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMjAiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiB4PSIyNiIgeT0iNyIgd2lkdGg9IjIiIGhl''@;'; + put 'put ''aWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjgiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtOCIgeD0iMTQiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjAiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDRINkEyLDIsMCwwLDAsNCw2VjMwYTIs''@;'; + put 'put ''MiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMCw0Wk0yMCw3aDJ2M0gyMFpNMTQsN2gydjNIMTRaTTEwLDI5SDhWMjZoMlptMC0xOUg4VjdoMlptNiwxOUgxNFYyNmgyWm02LDBIMjBWMjZoMlptMy4xNi0xMC4xNkwxNS4zOSwyMy4yQTEsMSwwLDAsMSwxNCwyMi4y''@;'; + put 'put ''OFYxMy41N2ExLDEsMCwwLDEsMS40MS0uOTFMMjUuMTYsMTdBMSwxLDAsMCwxLDI1LjE2LDE4Ljg0Wk0yOCwyOUgyNlYyNmgyWm0wLTE5SDI2VjdoMloiLz4nKSxlLkNsclNoYXBlTXVzaWNOb3RlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0xIlxuICAgICAgICAgICAgICAgIGQ9Ik0zMS42OCw2LjE2Yy0xLjkyLTMuMy0xMC42LTQtMTEuNTgtNC4wOUwxOSwyVjIyLjM0YTUuODksNS44OSwwLDAsMC0uODItLjU2LDguMzMsOC4zMywwLDAsMC02LjUzLS40MUM3LjU3LDIyLjcsNC45MiwyNi41LDUuNzgsMjkuODRh''@;'; + put 'put ''NS4zMyw1LjMzLDAsMCwwLDIuNjYsMy4zMiw3LjQ4LDcuNDgsMCwwLDAsMy42MS44OEE5LjU0LDkuNTQsMCwwLDAsMTUsMzMuNTdjMy42Ny0xLjE4LDYuMTctNC4zMyw2LjA2LTcuMzZWOS4zNGEyOS4xNCwyOS4xNCwwLDAsMSw2LjU1LDEuNDMsMSwxLDAsMSwwLC43Mi0xLjg3QTMxLjM3LDMx''@;'; + put 'put ''LjM3LDAsMCwwLDIxLDcuMzNWNC4xN2MzLjMzLjM2LDgsMS4zOCw4LjkyLDMsMiwzLjQxLTIuMzMsNy4zNi0yLjM3LDcuNGExLDEsMCwwLDAsMS4zMywxLjQ5QzI5LjE1LDE1Ljg1LDM0LjUsMTEsMzEuNjgsNi4xNlpNMTQuMzUsMzEuNjdhNi40Myw2LjQzLDAsMCwxLTUtLjI2LDMuMzEsMy4z''@;'; + put 'put ''MSwwLDAsMS0xLjY5LTIuMDdjLS42LTIuMzMsMS40NS01LjA1LDQuNTgtNi4wNmE3LjUyLDcuNTIsMCwwLDEsMi4zLS4zNyw1LjUyLDUuNTIsMCwwLDEsMi42NS42MiwzLjMxLDMuMzEsMCwwLDEsMS42OSwyLjA3QzE5LjU0LDI3Ljk0LDE3LjQ5LDMwLjY2LDE0LjM1LDMxLjY3WiIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSJcbiAgICAgICAgICAgICAgICBkPSJNMzEuNjgsNi4xNmMtMS45Mi0zLjMtMTAuNi00LTExLjU4LTQuMDlMMTksMlYyMi4yOWE1Ljg4LDUuODgsMCwwLDAtLjgxLS41NSw4LjMzLDguMzMsMCwwLDAt''@;'; + put 'put ''Ni41My0uNDFjLTQuMTIsMS4zMy02Ljc3LDUuMTMtNS45MSw4LjQ3YTUuMzMsNS4zMywwLDAsMCwyLjY2LDMuMzIsNy40OCw3LjQ4LDAsMCwwLDMuNjEuODhBOS41NCw5LjU0LDAsMCwwLDE1LDMzLjUyYzMuNy0xLjE5LDYuMi00LjM3LDYuMDYtNy40MiwwLDAsMCwwLDAsMFY4LjQ5YzEsLjEy''@;'; + put 'put ''LDIuMzcuMzMsMy44Mi42NGExMS4xNywxMS4xNywwLDAsMSw0LjA2LDEuNDZjMSwuNjYuMzgsMS45LjMzLDJhMTEuOCwxMS44LDAsMCwxLTEuNjYsMiwxLDEsMCwwLDAsMS4zMywxLjQ5QzI5LjE1LDE1Ljg1LDM0LjUsMTEsMzEuNjgsNi4xNloiLz4nKSxlLkNsclNoYXBlSW1hZ2VHYWxsZXJ5''@;'; + put 'put ''PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi4xMiwxMEgzLjg4QTEuODgsMS44OCwwLDAsMCwyLDExLjg4VjMwLjEyQTEuODgsMS44OCwwLDAsMCwzLjg4LDMySDMyLjEyQTEuODgsMS44OCwwLDAsMCwzNCwzMC4xMlYxMS44OEExLjg4LDEuODgsMCwwLDAsMzIuMTIsMTBaTTMyLDMw''@;'; + put 'put ''SDRWMTJIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOC41NiwxOS40NWEzLDMsMCwxLDAtMy0zQTMsMywwLDAsMCw4LjU2LDE5LjQ1Wm0wLTQuNkExLjYsMS42LDAsMSwxLDcsMTYuNDUsMS42LDEuNiwwLDAsMSw4LjU2LDE0Ljg1''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTcuOSwyOGw2LTYsMy4xOCwzLjE4TDE0LjI2LDI4aDJsNy40Ni03LjQ2TDMwLDI2Ljc3di0yTDI0LjIsMTlhLjcxLjcxLDAsMCwwLTEsMGwtNS4xNiw1LjE2TDE0LjM3LDIwLjVhLjcxLjcx''@;'; + put 'put ''LDAsMCwwLTEsMEw1LjkyLDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC00IiAvPjxwYXRoIGQ9Ik0zMi4xMiw3VjdhMSwxLDAsMCwwLTEtMWgtMjZhMSwxLDAsMCwwLTEsMWgwVjhoMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzAuMTQsM2gwYTEsMSwwLDAsMC0xLTFoLTIyYTEsMSwwLDAsMC0xLDFo''@;'; + put 'put ''MFY0aDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIu''@;'; + put 'put ''MTIsMTBIMy44OEExLjg4LDEuODgsMCwwLDAsMiwxMS44OFYzMC4xMkExLjg4LDEuODgsMCwwLDAsMy44OCwzMkgzMi4xMkExLjg4LDEuODgsMCwwLDAsMzQsMzAuMTJWMTEuODhBMS44OCwxLjg4LDAsMCwwLDMyLjEyLDEwWk04LjU2LDEzLjQ1YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDgu''@;'; + put 'put ''NTYsMTMuNDVaTTMwLDI4aC0yNGw3LjQ2LTcuNDdhLjcxLjcxLDAsMCwxLDEsMGwzLjY4LDMuNjhMMjMuMjEsMTlhLjcxLjcxLDAsMCwxLDEsMEwzMCwyNC43OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZVJlcGxheUFsbD0oMCxsLmNs''@;'; + put 'put ''ckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNDYsMjYuMjJhMS40LDEuNCwwLDAsMCwxLS40Mmw1LjU5LTUuNTZhMS40MywxLjQzLDAsMCwwLC40Mi0xLDEuNDYsMS40NiwwLDAsMC0uNDItMWwtNS41OS01LjU2YTEuNDMsMS40MywwLDAsMC0yLjQ0LDFWMjQuNzlhMS40MSwxLjQxLDAsMCwwLC44''@;'; + put 'put ''OCwxLjMyQTEuNTQsMS41NCwwLDAsMCwxNy40NiwyNi4yMlptLjE2LTEyLjE2LDUuMTksNS4xNi01LjE5LDUuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsNWgtNi43bDIuOTItMi42NEExLDEsMCwwLDAsMTIuOTQuODhM''@;'; + put 'put ''Ny4zMiw2LDEyLjk0LDExYTEsMSwwLDAsMCwuNjcuMjYsMSwxLDAsMCwwLC43NC0uMzMsMSwxLDAsMCwwLS4wNy0xLjQyTDExLjQ2LDdoNi42QTExLjc4LDExLjc4LDAsMSwxLDcuNzEsMjQuNDEsMSwxLDAsMCwwLDYsMjUuMzYsMTMuNzgsMTMuNzgsMCwxLDAsMTguMDYsNVoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVSZXBsYXlPbmU9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LDI3LjI3YTEsMSwwLDAsMCwxLTFWMTRhMSwxLDAsMCwwLTEtMUgxOWEzLjgsMy44LDAsMCwwLTEuMS4yM2wtMiwuNjJhLjkyLjky''@;'; + put 'put ''LDAsMCwwLS43Mi44Ni44OC44OCwwLDAsMCwuODguODYsMS40NiwxLjQ2LDAsMCwwLC40My0uMDhMMTgsMTUuMDd2MTEuMkExLDEsMCwwLDAsMTksMjcuMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsNWgtNi43bDIuOTIt''@;'; + put 'put ''Mi42NEExLDEsMCwwLDAsMTIuOTQuODhMNy4zMiw2LDEyLjk0LDExYTEsMSwwLDAsMCwuNjcuMjYsMSwxLDAsMCwwLC43NC0uMzMsMSwxLDAsMCwwLS4wNy0xLjQyTDExLjQ2LDdoNi42QTExLjc4LDExLjc4LDAsMSwxLDcuNzEsMjQuNDEsMSwxLDAsMCwwLDYsMjUuMzYsMTMuNzgsMTMuNzgs''@;'; + put 'put ''MCwxLDAsMTguMDYsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVWaWRlb0dhbGxlcnk9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwx''@;'; + put 'put ''Ljg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwxLjg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgsMS44OCwwLDAsMCwzMi4xMiwxMFpNMzIsMzBINFYxMkgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC4xNCwzaDBhMSwx''@;'; + put 'put ''LDAsMCwwLTEtMWgtMjJhMSwxLDAsMCwwLTEsMWgwVjRoMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTEyLjgyLDI2Ljc5YTEuNzQsMS43NCwwLDAsMCwuOTMuMjgsMS42OCwxLjY4LDAsMCwwLC42OS0uMTVsOS43Ny00LjM2YTEuNjksMS42OSwwLDAsMCwwLTMuMUwxNC40NCwxNS4xYTEuNywxLjcsMCwwLDAtMi4zOSwxLjU1djguNzJB''@;'; + put 'put ''MS43LDEuNywwLDAsMCwxMi44MiwyNi43OVptLjYzLTEwLjE0YS4yOS4yOSwwLDAsMSwuMTQtLjI1LjMuMywwLDAsMSwuMTYsMCwuMjcuMjcsMCwwLDEsLjEyLDBsOS43Nyw0LjM1YS4yOS4yOSwwLDAsMSwuMTguMjguMjguMjgsMCwwLDEtLjE4LjI3bC05Ljc3LDQuMzZhLjI4LjI4LDAsMCwx''@;'; + put 'put ''LS4yOCwwLC4zMS4zMSwwLDAsMS0uMTQtLjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwxLjg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwx''@;'; + put 'put ''Ljg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgsMS44OCwwLDAsMCwzMi4xMiwxMFpNMjQuMTgsMjEuODNsLTkuNzcsNC4zNkExLDEsMCwwLDEsMTMsMjUuMjhWMTYuNTZhMSwxLDAsMCwxLDEuNDEtLjkxTDI0LjE4LDIwQTEsMSwwLDAsMSwyNC4xOCwyMS44M1oiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTMyLjEyLDdWN2ExLDEsMCwwLDAtMS0xaC0y''@;'; + put 'put ''NmExLDEsMCwwLDAtMSwxaDBWOGgyOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZU1pY3JvcGhvbmU9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDI0YzMuOSwwLDctMy4xLDctN1Y5YzAtMy45LTMuMS03LTctN3MtNywzLjEt''@;'; + put 'put ''Nyw3djhDMTEsMjAuOSwxNC4xLDI0LDE4LDI0eiBNMTMsOWMwLTIuOCwyLjItNSw1LTVzNSwyLjIsNSw1djhcblx0XHRjMCwyLjgtMi4yLDUtNSw1cy01LTIuMi01LTVWOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMw''@;'; + put 'put ''LDUuNS00LjUsMTAtMTAsMTBTOCwyMi41LDgsMTdINmMwLDYuMyw0LjgsMTEuNCwxMSwxMS45VjMyaC0zYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDhjMC42LDAsMS0wLjQsMS0xXG5cdFx0cy0wLjQtMS0xLTFoLTN2LTMuMUMyNS4yLDI4LjQsMzAsMjMuMywzMCwxN3oiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOCwyNGMzLjksMCw3LTMuMSw3LTdWOWMwLTMuOS0zLjEtNy03LTdzLTcsMy4xLTcsN3Y4QzExLDIwLjksMTQuMSwyNCwxOCwyNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTMwLDE3aC0yYzAsNS41LTQuNSwxMC0xMCwxMFM4LDIyLjUsOCwxN0g2YzAsNi4zLDQuOCwxMS40LDExLDExLjlWMzJoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtMy4xQzI1LjIsMjguNCwzMCwy''@;'; + put 'put ''My4zLDMwLDE3eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlTWljcm9waG9uZU11dGU9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLDE3aC0yYzAsMS44LTAuNSwzLjUtMS40LDVsMS41LDEuNUMyOS4zLDIxLjUsMjkuOSwxOS4z''@;'; + put 'put ''LDMwLDE3eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDRjMi44LDAsNSwyLjIsNSw1djhjMCwwLjQtMC4xLDAuOC0wLjIsMS4ybDEuNiwxLjZjMC40LTAuOSwwLjYtMS44LDAuNi0yLjhWOWMwLTMuOS0zLjItNy03LjEtNi45XG5c''@;'; + put 'put ''dFx0Yy0yLjksMC01LjYsMS45LTYuNSw0LjdMMTMsOC4zQzEzLjUsNS45LDE1LjYsNC4yLDE4LDR6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUuMiwyNi42bDYuOSw2LjlsMS40LTEuNEw0LDIuNkwyLjYsNGw4LjQsOC40VjE3YzAs''@;'; + put 'put ''My45LDMuMSw3LDcsN2MxLjMsMCwyLjUtMC4zLDMuNi0xbDIuMiwyLjJDMjIuMSwyNi40LDIwLjEsMjcsMTgsMjdcblx0XHRjLTUuNCwwLjItOS44LTQuMS0xMC05LjRjMC0wLjIsMC0wLjQsMC0wLjZINmMwLjEsNi4yLDQuOCwxMS40LDExLDEydjNoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQs''@;'; + put 'put ''MSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtM0MyMS4yLDI4LjgsMjMuNCwyOCwyNS4yLDI2LjZ6IE0xMy44LDE5LjdDMTMuMywxOC45LDEzLDE4LDEzLDE3di0yLjZsNy4xLDcuMUMxNy45LDIyLjUsMTUuMiwyMS44LDEzLjgsMTkuN3oiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDEuOC0wLjUsMy41LTEuNCw1bDEuNSwxLjVDMjkuMywyMS41LDI5LjksMTkuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTI1LDE3''@;'; + put 'put ''VjljMC0zLjktMy4yLTctNy4xLTYuOWMtMi45LDAtNS42LDEuOS02LjUsNC43bDEzLDEzQzI0LjgsMTguOSwyNSwxNy45LDI1LDE3eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUuMiwyNi42bDYuOSw2LjlsMS40LTEuNEw0LDIuNkwyLjYs''@;'; + put 'put ''NGw4LjQsOC40VjE3YzAsMy45LDMuMSw3LDcsN2MxLjMsMCwyLjUtMC4zLDMuNi0xbDIuMiwyLjJDMjIuMSwyNi40LDIwLjEsMjcsMTgsMjdcblx0XHRjLTUuNCwwLjItOS44LTQuMS0xMC05LjRjMC0wLjIsMC0wLjQsMC0wLjZINmMwLjEsNi4yLDQuOCwxMS40LDExLDEydjNoLTNjLTAuNiww''@;'; + put 'put ''LTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtM0MyMS4yLDI4LjgsMjMuNCwyOCwyNS4yLDI2LjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLGUuTWVkaWFTaGFwZXM9e3BsYXk6ZS5DbHJTaGFw''@;'; + put 'put ''ZVBsYXkscGF1c2U6ZS5DbHJTaGFwZVBhdXNlLCJzdGVwLWZvcndhcmQiOmUuQ2xyU2hhcGVTdGVwRm9yd2FyZCxzdG9wOmUuQ2xyU2hhcGVTdG9wLHBvd2VyOmUuQ2xyU2hhcGVQb3dlcixyZXdpbmQ6ZS5DbHJTaGFwZVJld2luZCwiZmFzdC1mb3J3YXJkIjplLkNsclNoYXBlRmFzdEZvcndh''@;'; + put 'put ''cmQsY2FtZXJhOmUuQ2xyU2hhcGVDYW1lcmEsInZpZGVvLWNhbWVyYSI6ZS5DbHJTaGFwZVZpZGVvQ2FtZXJhLHNodWZmbGU6ZS5DbHJTaGFwZVNodWZmbGUsInZvbHVtZS11cCI6ZS5DbHJTaGFwZVZvbHVtZVVwLCJ2b2x1bWUtZG93biI6ZS5DbHJTaGFwZVZvbHVtZURvd24sInZvbHVtZS1t''@;'; + put 'put ''dXRlIjplLkNsclNoYXBlVm9sdW1lTXV0ZSxoZWFkcGhvbmVzOmUuQ2xyU2hhcGVIZWFkcGhvbmVzLCJmaWxtLXN0cmlwIjplLkNsclNoYXBlRmlsbVN0cmlwLCJtdXNpYy1ub3RlIjplLkNsclNoYXBlTXVzaWNOb3RlLCJpbWFnZS1nYWxsZXJ5IjplLkNsclNoYXBlSW1hZ2VHYWxsZXJ5LCJy''@;'; + put 'put ''ZXBsYXktYWxsIjplLkNsclNoYXBlUmVwbGF5QWxsLCJyZXBsYXktb25lIjplLkNsclNoYXBlUmVwbGF5T25lLCJ2aWRlby1nYWxsZXJ5IjplLkNsclNoYXBlVmlkZW9HYWxsZXJ5LG1pY3JvcGhvbmU6ZS5DbHJTaGFwZU1pY3JvcGhvbmUsIm1pY3JvcGhvbmUtbXV0ZSI6ZS5DbHJTaGFwZU1p''@;'; + put 'put ''Y3JvcGhvbmVNdXRlfSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoZS5NZWRpYVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvc29jaWFsLXNoYXBlcy50''@;'; + put 'put ''cyI6ZnVuY3Rpb24oQSxlLGMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5Tb2NpYWxTaGFwZXM9ZS5DbHJTaGFwZUhhc2h0YWc9ZS5DbHJTaGFwZUNyb3duPWUuQ2xyU2hhcGVUaHVtYnNEb3duPWUuQ2xyU2hhcGVUaHVt''@;'; + put 'put ''YnNVcD1lLkNsclNoYXBlU2FkRmFjZT1lLkNsclNoYXBlTmV1dHJhbEZhY2U9ZS5DbHJTaGFwZUhhcHB5RmFjZT1lLkNsclNoYXBlUGljdHVyZT1lLkNsclNoYXBlQ2hhdEJ1YmJsZT1lLkNsclNoYXBlVGFsa0J1YmJsZXM9ZS5DbHJTaGFwZUhlYXJ0QnJva2VuPWUuQ2xyU2hhcGVIZWFydD1l''@;'; + put 'put ''LkNsclNoYXBlSW5ib3g9ZS5DbHJTaGFwZUZsYWc9ZS5DbHJTaGFwZVRhc2tzPWUuQ2xyU2hhcGVFbnZlbG9wZT1lLkNsclNoYXBlQm9va21hcms9ZS5DbHJTaGFwZUhhbGZTdGFyPWUuQ2xyU2hhcGVTdGFyPWUuQ2xyU2hhcGVTaGFyZT12b2lkIDA7dmFyIHI9YygiLi9wcm9qZWN0cy9pY29u''@;'; + put 'put ''cy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxhPWMoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7Yz1jKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxlLkNsclNoYXBlU2hhcmU9KDAsYS5jbHJJ''@;'; + put 'put ''Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYuMjFhNS4xMiw1LjEyLDAsMSwwLTEuMDctMS43TDEwLjc5''@;'; + put 'put ''LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNsMTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVptMC0yMGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSwyNy41Myw0Wk03LDIxYTMsMywwLDEsMSwzLTNBMywzLDAsMCwxLDcsMjFaTTI3LjUzLDMyYTMsMywwLDEs''@;'; + put 'put ''MSwzLTNBMywzLDAsMCwxLDI3LjUzLDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYu''@;'; + put 'put ''MjFhNS4xMiw1LjEyLDAsMSwwLTEuMDctMS43TDEwLjc5LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNsMTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVoiLz4nKSxlLkNsclNoYXBlU3Rhcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LjE5LDM0YTIuMjIsMi4yMiwwLDAsMS0xLjI0LS4zOGwtNy40Ni01YS4yMi4yMiwwLDAsMC0uMjUsMGwtNy40Niw1QTIuMjIsMi4yMiwwLDAsMSw3LjQsMzEuMjFsMi40NS04LjY0YS4yMy4yMywwLDAsMC0uMDgtLjI0TDIuNzEs''@;'; + put 'put ''MTYuNzhhMi4yMiwyLjIyLDAsMCwxLDEuMjktNGw5LS4zNGEuMjMuMjMsMCwwLDAsLjItLjE1bDMuMS04LjQzYTIuMjIsMi4yMiwwLDAsMSw0LjE3LDBsMy4xLDguNDNhLjIzLjIzLDAsMCwwLC4yLjE1bDksLjM0YTIuMjIsMi4yMiwwLDAsMSwxLjI5LDRMMjcsMjIuMzNhLjIyLjIyLDAsMCww''@;'; + put 'put ''LS4wOC4yNGwyLjQ1LDguNjRBMi4yMywyLjIzLDAsMCwxLDI3LjE5LDM0Wm0tOC44Mi03LjQyQTIuMjEsMi4yMSwwLDAsMSwxOS42LDI3bDcuNDYsNWEuMjIuMjIsMCwwLDAsLjM0LS4yNWwtMi40NS04LjY0YTIuMjEsMi4yMSwwLDAsMSwuNzctMi4zNWw3LjA2LTUuNTVhLjIyLjIyLDAsMCww''@;'; + put 'put ''LS4xMy0uNGwtOS0uMzRhMi4yMiwyLjIyLDAsMCwxLTItMS40NmwtMy4xLTguNDNhLjIyLjIyLDAsMCwwLS40MiwwTDE1LjA2LDEzYTIuMjIsMi4yMiwwLDAsMS0yLDEuNDZsLTksLjM0YS4yMi4yMiwwLDAsMC0uMTMuNEwxMSwyMC43NmEyLjIyLDIuMjIsMCwwLDEsLjc3LDIuMzVMOS4zMywz''@;'; + put 'put ''MS43NWEuMjEuMjEsMCwwLDAsLjA4LjI0LjIuMiwwLDAsMCwuMjYsMGw3LjQ2LTVBMi4yMiwyLjIyLDAsMCwxLDE4LjM2LDI2LjYyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCwxNi43OGEyLjIyLDIuMjIs''@;'; + put 'put ''MCwwLDAtMS4yOS00bC05LS4zNGEuMjMuMjMsMCwwLDEtLjItLjE1TDIwLjQsMy44OWEyLjIyLDIuMjIsMCwwLDAtNC4xNywwbC0zLjEsOC40M2EuMjMuMjMsMCwwLDEtLjIuMTVsLTksLjM0YTIuMjIsMi4yMiwwLDAsMC0xLjI5LDRsNy4wNiw1LjU1YS4yMy4yMywwLDAsMSwuMDguMjRMNy4z''@;'; + put 'put ''NSwzMS4yMWEyLjIyLDIuMjIsMCwwLDAsMy4zOCwyLjQ1bDcuNDYtNWEuMjIuMjIsMCwwLDEsLjI1LDBsNy40Niw1YTIuMiwyLjIsMCwwLDAsMi41NSwwLDIuMiwyLjIsMCwwLDAsLjgzLTIuNGwtMi40NS04LjY0YS4yMi4yMiwwLDAsMSwuMDgtLjI0WiIvPicpLGUuQ2xyU2hhcGVIYWxmU3Rh''@;'; + put 'put ''cj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LDE2Ljc4YTIuMjIsMi4yMiwwLDAsMC0xLjI5LTRsLTktLjM0YS4yMy4yMywwLDAsMS0uMi0uMTVMMjAuNCwzLjg5YTIuMjIsMi4yMiwwLDAsMC00LjE3LDBs''@;'; + put 'put ''LTMuMSw4LjQzYS4yMy4yMywwLDAsMS0uMi4xNWwtOSwuMzRhMi4yMiwyLjIyLDAsMCwwLTEuMjksNGw3LjA2LDUuNTVhLjIyLjIyLDAsMCwxLC4wOC4yNEw3LjM1LDMxLjIxQTIuMjMsMi4yMywwLDAsMCw5LjQ5LDM0YTIuMjIsMi4yMiwwLDAsMCwxLjI0LS4zOGw3LjQ2LTVhLjIyLjIyLDAs''@;'; + put 'put ''MCwxLC4yNSwwbDcuNDYsNWEyLjIyLDIuMjIsMCwwLDAsMy4zOC0yLjQ1bC0yLjQ1LTguNjRhLjIzLjIzLDAsMCwxLC4wOC0uMjRaTTE4LjMzLDI2LjYyaDBhMi4yMSwyLjIxLDAsMCwwLTEuMjQuMzhMOS42MiwzMmEuMjIuMjIsMCwwLDEtLjM0LS4yNWwyLjQ1LTguNjRBMi4yMSwyLjIxLDAs''@;'; + put 'put ''MCwwLDExLDIwLjc2TDMuOSwxNS4yMWEuMjIuMjIsMCwwLDEsLjEzLS40bDktLjM0QTIuMjIsMi4yMiwwLDAsMCwxNSwxM2wzLjEtOC40M2EuMi4yLDAsMCwxLC4yMS0uMTVoMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x''@;'; + put 'put ''IiBkPSJNMzQsMTYuNzhhMi4yMiwyLjIyLDAsMCwwLTEuMjktNGwtOS0uMzRhLjIzLjIzLDAsMCwxLS4yLS4xNUwyMC40LDMuODlhMi4yMiwyLjIyLDAsMCwwLTQuMTcsMGwtMy4xLDguNDNhLjIzLjIzLDAsMCwxLS4yLjE1bC05LC4zNGEyLjIyLDIuMjIsMCwwLDAtMS4yOSw0bDcuMDYsNS41''@;'; + put 'put ''NWEuMjMuMjMsMCwwLDEsLjA4LjI0TDcuMzUsMzEuMjFhMi4yMiwyLjIyLDAsMCwwLDMuMzgsMi40NWw3LjQ2LTVhLjIyLjIyLDAsMCwxLC4yNSwwbDcuNDYsNWEyLjIsMi4yLDAsMCwwLDIuNTUsMCwyLjIsMi4yLDAsMCwwLC44My0yLjRsLTIuNDUtOC42NGEuMjIuMjIsMCwwLDEsLjA4LS4y''@;'; + put 'put ''NFpNMjQuOSwyMy4xMWwyLjQ1LDguNjRBLjIyLjIyLDAsMCwxLDI3LDMybC03LjQ2LTVhMi4yMSwyLjIxLDAsMCwwLTEuMjQtLjM4aDBWNC40NGgwYS4yLjIsMCwwLDEsLjIxLjE1TDIxLjYyLDEzYTIuMjIsMi4yMiwwLDAsMCwyLDEuNDZsOSwuMzRhLjIyLjIyLDAsMCwxLC4xMy40bC03LjA2''@;'; + put 'put ''LDUuNTVBMi4yMSwyLjIxLDAsMCwwLDI0LjksMjMuMTFaIi8+JyksZS5DbHJTaGFwZUJvb2ttYXJrPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjYsMzRhMiwyLDAsMCwxLTEuNDEtLjU4TDE4LDI2LjgybC02''@;'; + put 'put ''LjU0LDYuNTJBMiwyLDAsMCwxLDgsMzEuOTNWNGEyLDIsMCwwLDEsMi0ySDI2YTIsMiwwLDAsMSwyLDJWMzJhMiwyLDAsMCwxLTIsMlptMC0yaDBWNEgxMFYzMS45M0wxOCwyNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x''@;'; + put 'put ''IiBkPSJNMjYsMkgxMEEyLDIsMCwwLDAsOCw0VjMxLjkzYTIsMiwwLDAsMCwzLjQyLDEuNDFsNi41NC02LjUyLDYuNjMsNi42QTIsMiwwLDAsMCwyOCwzMlY0QTIsMiwwLDAsMCwyNiwyWiIvPicpLGUuQ2xyU2hhcGVFbnZlbG9wZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0zMC40NiwyOEg1LjY2bDctNy4yNC0xLjQ0LTEuMzlMNCwyNi44NFY5LjUyTDE2LjQzLDIxLjg5''@;'; + put 'put ''YTIsMiwwLDAsMCwyLjgyLDBMMzIsOS4yMXYxNy41bC03LjM2LTcuMzYtMS40MSwxLjQxWk01LjMxLDhIMzAuMzhMMTcuODQsMjAuNDdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBk''@;'; + put 'put ''PSJNMzIsMTMuMDhWMjYuNzFsLTcuMzYtNy4zNi0xLjQxLDEuNDFMMzAuNDYsMjhINS42Nmw3LTcuMjQtMS40NC0xLjM5TDQsMjYuODRWOS41MkwxNi40MywyMS44OWEyLDIsMCwwLDAsMi44MiwwbDguODMtOC43OGE3LjQ0LDcuNDQsMCwwLDEtMi0uODVsLTguMjYsOC4yMUw1LjMxLDhIMjIu''@;'; + put 'put ''ODFhNy40OSw3LjQ5LDAsMCwxLS4zMS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMkE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMDhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjUuODYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjI2''@;'; + put 'put ''SDMyVjI2LjcxbC03LjM2LTcuMzYtMS40MSwxLjQxTDMwLjQ2LDI4SDUuNjZsNy03LjI0LTEuNDQtMS4zOUw0LDI2Ljg0VjkuNTJMMTYuNDMsMjEuODlhMiwyLDAsMCwwLDIuODIsMGw2LjY2LTYuNjNIMjMuMDhsLTUuMjQsNS4yMUw1LjMxLDhIMjAuMDZsMS4xNS0ySDRBMiwyLDAsMCwwLDIs''@;'; + put 'put ''OFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxbC01LjcyLDkuOTFh''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4zMyw2''@;'; + put 'put ''YTIsMiwwLDAsMC0uNDEsMGgtMjhhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuODEsNy4zOSwxOS4yNSwyMS44OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41''@;'; + put 'put ''YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzMuODEsNy4zOVpNNS4zLDI4SDMuOTFWMjYuNTdsNy4yNy03LjIxLDEuNDEsMS40MVptMjYuNjEsMEgzMC41MWwtNy4yOS03LjIzLDEuNDEtMS40MSw3LjI3LDcuMjFaIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yNiwxMi4zNEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2SDMuOTJhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTItLjI5bC04LjcxLDguNjhhMiwyLDAsMCwxLTIuODIsMEwyLDcuNWEyLDIsMCwwLDAtLjA3LjVWMjhhMiwyLDAsMCwwLDIsMmgy''@;'; + put 'put ''OGEyLDIsMCwwLDAsMi0yVjEyLjM5QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk01LjMsMjhIMy45MVYyNi41N2w3LjI3LTcuMjEsMS40MSwxLjQxWm0yNi42MSwwSDMwLjUxbC03LjI5LTcuMjMsMS40MS0xLjQxLDcuMjcsNy4yMVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIg''@;'; + put 'put ''ZD0iTTMzLjY4LDE1LjRIMjUuNzdsLTYuNTIsNi40OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWMTUuMzhaTTUuMywyOEgzLjkxVjI2LjU3bDcuMjctNy4yMSwxLjQxLDEuNDFabTI2LjYxLDBIMzAuNTFs''@;'; + put 'put ''LTcuMjktNy4yMywxLjQxLTEuNDEsNy4yNyw3LjIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yMi45NCwxNS40aC0uN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2''@;'; + put 'put ''SDMuOTJhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgs''@;'; + put 'put ''MCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+JyksZS5DbHJTaGFwZVRhc2tzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xIiBkPSJNMjkuMjksMzRINi43MUExLjcsMS43LDAsMCwxLDUsMzIuMzFWNi42OUExLjc1LDEuNzUsMCwwLDEsNyw1SDlWN0g3VjMySDI5VjdIMjdWNWgyLjI1QTEuNywxLjcsMCwwLDEsMzEsNi42OVYzMi4zMUExLjcsMS43LDAsMCwxLDI5LjI5LDM0WiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTYuNjYsMjUuNzYsMTEuMywyMC40QTEsMSwwLDAsMSwxMi43MiwxOWwzLjk0LDMuOTQsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yNiwxMUgxMFY3LjMzQTIuMzQsMi4zNCwwLDAsMSwxMi4zMyw1aDEuNzlhNCw0LDAsMCwxLDcuNzUsMGgxLjc5QTIuMzQsMi4zNCwwLDAsMSwyNiw3LjMzWk0xMiw5SDI0VjcuMzNBLjMzLjMzLDAsMCwwLDIz''@;'; + put 'put ''LjY3LDdIMjBWNmEyLDIsMCwwLDAtNCwwVjdIMTIuMzNhLjMzLjMzLDAsMCwwLS4zMy4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE5LDkuODksMTkuNTYsOUgxMlY3''@;'; + put 'put ''LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aC43MWwxLjE2LTJhNCw0LDAsMCwwLTcuNzQsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMWg4LjY0QTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjQuMTksMTUuNGwtNy41Myw3LjUzTDEyLjcyLDE5QTEsMSwwLDAsMCwxMS4zLDIwLjRsNS4zNiw1LjM2TDI2LjcxLDE1LjcxYTEsMSwwLDAsMCwuMi0uMzFaIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNS40VjMySDdWN0g5VjVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43''@;'; + put 'put ''LDAsMCwwLDMxLDMyLjMxVjE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4y''@;'; + put 'put ''MywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0x''@;'; + put 'put ''Mi43MiwxOUExLDEsMCwwLDAsMTEuMywyMC40bDUuMzYsNS4zNkwyNi43MSwxNS43MWExLDEsMCwwLDAtMS40MS0xLjQxbC04LjY0LDguNjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2Vk''@;'; + put 'put ''IiBkPSJNMjMuMTMsOUgxMlY3LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1Yx''@;'; + put 'put ''MUgyNC40MkE3LjUsNy41LDAsMCwxLDIzLjEzLDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjUyLDcuNTIsMCwwLDEtMS0uMDdWMzJIN1Y3SDlWNUg3QTEu''@;'; + put 'put ''NzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjkuMjksNC45NWgtNy4yYTQuMzEsNC4zMSwwLDAsMC04''@;'; + put 'put ''LjE3LDBIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWNi42NEExLjcsMS43LDAsMCwwLDI5LjI5LDQuOTVabS0xOCwzYTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAs''@;'; + put 'put ''MSw0LjYzLDBWN2gzLjQ0YTEsMSwwLDAsMSwxLDFWOS44SDExLjI1Wm0xNC41Miw5LjIzLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDcuMTQtNy4xNGExLjQsMS40LDAsMSwxLDIsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjUuODgsMTUuNGExLjM4LDEuMzgsMCwwLDEtLjExLDEuODFsLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDctN0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTks''@;'; + put 'put ''OS44OWwwLS4wOUgxMS4yNVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2guNDJMMjIsNC43NmE0LjMsNC4zLDAsMCwwLTguMDkuMTlIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEu''@;'; + put 'put ''NywxLjcsMCwwLDAsMzEsMzIuMjZWMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIu''@;'; + put 'put ''MjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwx''@;'; + put 'put ''My41YTcuNDksNy40OSwwLDAsMS02LjQ2LTMuN0gxMS4yNVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2gyLjI2YTcuNTMsNy41MywwLDAsMS0uMDctMSw3LjUzLDcuNTMsMCwwLDEsLjA4LTEuMDVoLS41YTQuMzEsNC4zMSwwLDAsMC04LjE3LDBI''@;'; + put 'put ''N0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVabS00LjIzLDMuNzEtOS4xMiw5LjEyLTUuMjQtNS4yNGExLjQsMS40LDAsMCwxLDItMmwz''@;'; + put 'put ''LjI2LDMuMjYsNy4xNC03LjE0YTEuNCwxLjQsMCwxLDEsMiwyWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxlLkNsclNo''@;'; + put 'put ''YXBlRmxhZz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTYsMzRhMSwxLDAsMCwxLTEtMVYzQTEsMSwwLDAsMSw3LDNWMzNBMSwxLDAsMCwxLDYsMzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMC41NSwzLjgyYTEsMSwwLDAsMC0xLDAsMTQuOSwxNC45LDAsMCwxLTYuMTMsMS4xNiwxMy4xMSwxMy4xMSwwLDAsMS01LjE4LTEuNDksMTIuNzgsMTIuNzgsMCwwLDAtNS0xLjQ1QTEwLjg2LDEwLjg2LDAsMCwwLDks''@;'; + put 'put ''Mi44NVY1LjA4QTguOCw4LjgsMCwwLDEsMTMuMjUsNGExMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjZBMTguNzUsMTguNzUsMCwwLDAsMjksNi4xMlYxOC45NWExNi4xNiwxNi4xNiwwLDAsMS01LjU4LjkzLDEzLjExLDEzLjExLDAsMCwxLTUuMTgt''@;'; + put 'put ''MS40OSwxMi43OCwxMi43OCwwLDAsMC01LTEuNDVBMTAuODYsMTAuODYsMCwwLDAsOSwxNy43OVYyMGE4LjgsOC44LDAsMCwxLDQuMjUtMS4wOCwxMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjYsMTYuNzksMTYuNzksMCwwLDAsNy0xLjM3LDEsMSww''@;'; + put 'put ''LDAsMCwuNTUtLjg5VjQuNjdBMSwxLDAsMCwwLDMwLjU1LDMuODJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTUuOTIsMmExLDEsMCwwLDAtMSwxVjMzYTEsMSwwLDAsMCwyLDBWM0ExLDEsMCwwLDAsNS45Miwy''@;'; + put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMC41LDMuODJhMSwxLDAsMCwwLTEsMCwxNC45LDE0LjksMCwwLDEtNi4xMywxLjE2LDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OUExMi43OCwxMi43OCwwLDAs''@;'; + put 'put ''MCwxMy4yLDIsMTAuODYsMTAuODYsMCwwLDAsOSwyLjg1VjIwYTguOCw4LjgsMCwwLDEsNC4yNS0xLjA4LDExLjIyLDExLjIyLDAsMCwxLDQuMiwxLjI4LDE0Ljg0LDE0Ljg0LDAsMCwwLDYsMS42NiwxNi43OSwxNi43OSwwLDAsMCw3LTEuMzcsMSwxLDAsMCwwLC41NS0uODlWNC42N0ExLDEs''@;'; + put 'put ''MCwwLDAsMzAuNSwzLjgyWiIvPicpLGUuQ2xyU2hhcGVJbmJveD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMjMsMTMuMDlhMSwxLDAsMCwwLDAsMS40MUwxOCwyMC4zbDUuNzktNS43OWExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDE2LjQ3VjJBMSwxLDAsMCwwLDE4LDFhMSwxLDAs''@;'; + put 'put ''MCwwLTEsMXYxNC41bC0zLjM4LTMuMzhBMSwxLDAsMCwwLDEyLjIzLDEzLjA5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41LDVIMjJWN2g3VjIxSDIzLjYxbC0uMS44OWE1LjQyLDUuNDIsMCwwLDEtMTAu''@;'; + put 'put ''NzcsMGwtLjEtLjg5SDdWN2g3VjVINi41QTEuNSwxLjUsMCwwLDAsNSw2LjV2MjVBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41VjYuNUExLjUsMS41LDAsMCwwLDI5LjUsNVpNMjksMzFIN1YyM2gzLjkxYTcuNDIsNy40MiwwLDAsMCwxNC40NCwwSDI5WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi4yMywxMy4wOWExLDEsMCwwLDAsMCwxLjQxTDE4LDIwLjNsNS43OS01Ljc5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMTYuNDdWMkExLDEsMCwwLDAsMTgsMWExLDEs''@;'; + put 'put ''MCwwLDAtMSwxdjE0LjVsLTMuMzgtMy4zOEExLDEsMCwwLDAsMTIuMjMsMTMuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNTIsNy41MiwwLDAsMS0xLS4wN1Yy''@;'; + put 'put ''MUgyMy42MWwtLjEuODlhNS40Miw1LjQyLDAsMCwxLTEwLjc3LDBsLS4xLS44OUg3VjdoN1Y1SDYuNUExLjUsMS41LDAsMCwwLDUsNi41djI1QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVpNMjksMzFI''@;'; + put 'put ''N1YyM2gzLjkxYTcuNDIsNy40MiwwLDAsMCwxNC40NCwwSDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLGUuQ2xyU2hhcGVIZWFydD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzIuNDNhMSwxLDAsMCwxLS42MS0uMjFDMTEuODMsMjcuOSw4LDI0LjE4LDUuMzIsMjAuNTEsMS45LDE1LjgyLDEu''@;'; + put 'put ''MTIsMTEuNDksMyw3LjY0YzEuMzQtMi43NSw1LjE5LTUsOS42OS0zLjY5QTkuODcsOS44NywwLDAsMSwxOCw3LjcyYTkuODcsOS44NywwLDAsMSw1LjMxLTMuNzdjNC40OS0xLjI5LDguMzUuOTQsOS42OSwzLjY5LDEuODgsMy44NSwxLjEsOC4xOC0yLjMyLDEyLjg3QzI4LDI0LjE4LDI0LjE3''@;'; + put 'put ''LDI3LjksMTguNjEsMzIuMjJBMSwxLDAsMCwxLDE4LDMyLjQzWk0xMC4xMyw1LjU4QTUuOSw1LjksMCwwLDAsNC44LDguNTFjLTEuNTUsMy4xOC0uODUsNi43MiwyLjE0LDEwLjgxQTU3LjEzLDU3LjEzLDAsMCwwLDE4LDMwLjE2LDU3LjEzLDU3LjEzLDAsMCwwLDI5LjA2LDE5LjMzYzMtNC4x''@;'; + put 'put ''LDMuNjktNy42NCwyLjE0LTEwLjgxLTEtMi00LTMuNTktNy4zNC0yLjY1YTgsOCwwLDAsMC00Ljk0LDQuMiwxLDEsMCwwLDEtMS44NSwwLDcuOTMsNy45MywwLDAsMC00Ljk0LTQuMkE3LjMxLDcuMzEsMCwwLDAsMTAuMTMsNS41OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsNy42NGMtMS4zNC0yLjc1LTUuMi01LTkuNjktMy42OUE5Ljg3LDkuODcsMCwwLDAsMTgsNy43MmE5Ljg3LDkuODcsMCwwLDAtNS4zMS0zLjc3QzguMTksMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDgu''@;'; + put 'put ''MTgsMi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4n''@;'; + put 'put ''KSxlLkNsclNoYXBlSGVhcnRCcm9rZW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjA5LTUtOS42OS0zLjY5YTkuODcsOS44NywwLDAsMC02LDQuODQsMTguOSwxOC45LDAsMCwwLTIuMjMsNS4zM2w1LjI4LDIuMzQtNC42LDQuMzcsMy40OSw0LjEs''@;'; + put 'put ''MS41Mi0xLjNMMTguNTQsMjFsNS40LTUuMTNMMTcuNTgsMTNBMTYuMjMsMTYuMjMsMCwwLDEsMTkuNzUsOC45YTcuNjgsNy42OCwwLDAsMSw0LjExLTNjMy4zNC0uODksNi4zNC42LDcuMzQsMi42NSwxLjU1LDMuMTguODUsNi43Mi0yLjE0LDEwLjgxQTU3LjE2LDU3LjE2LDAsMCwxLDE4LDMw''@;'; + put 'put ''LjE2LDU3LjE2LDU3LjE2LDAsMCwxLDYuOTQsMTkuMzNjLTMtNC4xLTMuNjktNy42NC0yLjE0LTEwLjgxYTUuOSw1LjksMCwwLDEsNS4zMy0yLjkzLDcuMzEsNy4zMSwwLDAsMSwyLC4yOSw3LjcsNy43LDAsMCwxLDMuMzgsMmwuMTUtLjNhMTAuNjYsMTAuNjYsMCwwLDEsMS0xLjQxLDkuNjQs''@;'; + put 'put ''OS42NCwwLDAsMC0zLjk0LTIuMjJDOC4yLDIuNjYsNC4zNCw0Ljg5LDMsNy42NGMtMS44OCwzLjg1LTEuMSw4LjE4LDIuMzIsMTIuODdDOCwyNC4xOCwxMS44MywyNy45LDE3LjM5LDMyLjIyYTEsMSwwLDAsMCwxLjIzLDBjNS41NS00LjMxLDkuMzktOCwxMi4wNy0xMS43MUMzNC4xLDE1Ljgy''@;'; + put 'put ''LDM0Ljg4LDExLjQ5LDMzLDcuNjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjItNS05LjY5LTMuNjlBMTEuNTUsMTEuNTUsMCwwLDAsMTguMTksNy41YTE2Ljg5LDE2Ljg5''@;'; + put 'put ''LDAsMCwwLTIuNDgsNC41NkwyMi4yNywxNSwxNi43LDIwLjI2LDE5LDIzbC0xLjU3LDEuMzQtMy42LTQuMjIsNC43NC00LjUxLTUuNDQtMi40MWExOS40OSwxOS40OSwwLDAsMSwyLjMtNS41LDE0Ljc3LDE0Ljc3LDAsMCwxLDEuMDYtMS41NGwuMDYsMGE5LjY2LDkuNjYsMCwwLDAtMy44OS0y''@;'; + put 'put ''LjE4QzguMTksMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgsMi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMs''@;'; + put 'put ''Ny42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLkNsclNoYXBlVGFsa0J1YmJsZXM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRhMSwxLDAsMCwxLDEtMUg4''@;'; + put 'put ''Ljg2VjExSDVhMywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0zMSw0SDE0YTMsMywwLDAsMC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWN0EzLDMsMCwwLDAsMzEsNFpNMzIsMjIuOTQsMjguNSwyMC4yMWExLDEsMCwwLDAtLjYxLS4yMUgxNGExLDEsMCwwLDEt''@;'; + put 'put ''MS0xVjdhMSwxLDAsMCwxLDEtMUgzMUExLjEsMS4xLDAsMCwxLDMyLDcuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRh''@;'; + put 'put ''MSwxLDAsMCwxLDEtMUg4Ljg2VjExSDVhMywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2OS43MkwyOC41LDIwLjIxYTEsMSwwLDAsMC0uNjEtLjIxSDE0YTEsMSwwLDAsMS0xLTFWN2ExLDEsMCwwLDEsMS0xSDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDE0YTMsMywwLDAsMC0zLDNWMTlhMywz''@;'; + put 'put ''LDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWMTIuMzdBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTgsMTlWMTFINWEzLDMsMCwwLDAtMywzVjMyYTEsMSwwLDAsMCwu''@;'; + put 'put ''NTYuODksMSwxLDAsMCwwLDEtLjFMOC43MSwyOUgyMi4xNUEyLjc3LDIuNzcsMCwwLDAsMjUsMjYuMTNWMjVIMTRBNiw2LDAsMCwxLDgsMTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsNEgxNGEzLDMsMCwwLDAt''@;'; + put 'put ''MywzVjE5YTMsMywwLDAsMCwzLDNIMjcuNTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjdBMywzLDAsMCwwLDMxLDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOCwxOVYxMUg1YTMs''@;'; + put 'put ''MywwLDAsMC0zLDNWMzJhMSwxLDAsMCwwLC41Ni44OSwxLDEsMCwwLDAsMS0uMUw4LjcxLDI5SDIyLjE1QTIuNzcsMi43NywwLDAsMCwyNSwyNi4xM1YyNUgxNEE2LDYsMCwwLDEsOCwxOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ4LDcuNDgsMCwwLDEsMjIuNzgsNEgxNGEzLDMsMCwwLDAtMywzVjE5YTMsMywwLDAsMCwzLDNIMjcuNTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjEyLjM3QTcuNDUsNy40NSwwLDAsMSwzMCwx''@;'; + put 'put ''My41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''YmFkZ2UiLz4nKSxlLkNsclNoYXBlQ2hhdEJ1YmJsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEz''@;'; + put 'put ''LDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTI4LjI5LDI0LjYxYTEsMSwwLDAsMC0uMzIuNzNsMCw1LjM0LTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMUExNiwxNiwwLDAsMSwxOCwyOC41Yy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUu''@;'; + put 'put ''MzgsMTQsMTJBMTEuMDgsMTEuMDgsMCwwLDEsMjguMjksMjQuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxNS41SDExYTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLjc1LDIwLjVoLTcuNWExLDEsMCwwLDAsMCwyaDcuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNMTEuMjgsMTIuNUgyNC43MmExLDEsMCwwLDAsMC0ySDExLjI4YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4zOCwxMi42OWE3LjQzLDcuNDMsMCwwLDEtMS44''@;'; + put 'put ''OS42NkExMC4zNSwxMC4zNSwwLDAsMSwzMiwxNi41YTExLjA4LDExLjA4LDAsMCwxLTMuNzEsOC4xMSwxLDEsMCwwLDAtLjMyLjczbDAsNS4zNC00LjM4LTIuNzlhMSwxLDAsMCwwLS44My0uMTFBMTYsMTYsMCwwLDEsMTgsMjguNWMtNy43MiwwLTE0LTUuMzgtMTQtMTJzNi4yOC0xMiwxNC0x''@;'; + put 'put ''MmExNiwxNiwwLDAsMSw0LjU1LjY2QTcuNDQsNy40NCwwLDAsMSwyMywzLjIyYTE4LDE4LDAsMCwwLTUtLjcyYy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAs''@;'; + put 'put ''MCwwLDQtOS4yN0ExMi4zMiwxMi4zMiwwLDAsMCwzMy4zOCwxMi42OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMSwxNS41YTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAt''@;'; + put 'put ''MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC4yNSwyMC41YTEsMSwwLDAsMCwwLDJoNy41YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjgsMTEuNWExLDEsMCwwLDAsMSwxSDI0LjcyYTEsMSwwLDAsMCwuODMtLjQ3QTcuNTMsNy41MywwLDAsMSwyNCwxMC41SDExLjI4QTEsMSwwLDAsMCwxMC4yOCwxMS41WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdl''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjdDMzQsOC43OCwyNi44MiwyLjUs''@;'; + put 'put ''MTgsMi41Wm04LDE0YTEsMSwwLDAsMS0xLDFIMTFhMSwxLDAsMCwxLDAtMkgyNUExLDEsMCwwLDEsMjYsMTYuNVptLTMuMjUsNWExLDEsMCwwLDEtMSwxaC03LjVhMSwxLDAsMCwxLDAtMmg3LjVBMSwxLDAsMCwxLDIyLjc1LDIxLjVabS0xMi40Ny0xMGExLDEsMCwwLDEsMS0xSDI0LjcyYTEs''@;'; + put 'put ''MSwwLDAsMSwwLDJIMTEuMjhBMSwxLDAsMCwxLDEwLjI4LDExLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjI1YTcuNDYsNy40NiwwLDAsMS00LjM1LTEuNCwxLDEsMCwwLDEtLjkzLjY1SDExLjI4YTEs''@;'; + put 'put ''MSwwLDAsMSwwLTJIMjQuMkE3LjQ2LDcuNDYsMCwwLDEsMjMsMy4yYTE4LDE4LDAsMCwwLTUtLjdjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05''@;'; + put 'put ''LjI3LDEyLjM0LDEyLjM0LDAsMCwwLS42OC00QTcuNDYsNy40NiwwLDAsMSwzMCwxMy4yNVpNMjEuNzUsMjIuNWgtNy41YTEsMSwwLDAsMSwwLTJoNy41YTEsMSwwLDAsMSwwLDJabTMuMjUtNUgxMWExLDEsMCwwLDEsMC0ySDI1YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNS43NSIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hh''@;'; + put 'put ''cGVQaWN0dXJlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNNCwzMFY2SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjkyLDE0YTMsMywwLDEsMC0zLTNBMywzLDAsMCwwLDguOTIsMTRabTAtNC42QTEuNiwxLjYsMCwxLDEsNy4zMywxMSwxLjYsMS42LDAsMCwxLDguOTIsOS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNzgsMTUuMzdsLTUuNCw1LjQtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFBMSwxLDAsMCwwLDIyLjc4''@;'; + put 'put ''LDE1LjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45MywxMWEzLDMsMCwxLDAtMywzQTMsMywwLDAsMCwxMS45MywxMVptLTQuNiwwYTEuNiwxLjYsMCwxLDEsMS42LDEuNkExLjYsMS42LDAsMCwxLDcu''@;'; + put 'put ''MzMsMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4zOCwyMC43N2wtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1''@;'; + put 'put ''LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFhMSwxLDAsMCwwLTEuNDEsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjMwSDRWNkgyMi41''@;'; + put 'put ''YTcuNDksNy40OSwwLDAsMSwuMjgtMkg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEy''@;'; + put 'put ''LDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01''@;'; + put 'put ''LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNDgsNy40OCwwLDAsMSwyMi43OCw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMTIuMzRBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTguOTIsOGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjkyLDhaTTYsMjdWMjIuOWw2LTYuMDhhMSwxLDAsMCwxLDEuNDEsMEwxNiwxOS4zNSw4LjMyLDI3Wm0yNCwwSDExLjE1bDYuMjMtNi4yMyw1LjQtNS40YTEs''@;'; + put 'put ''MSwwLDAsMSwxLjQxLDBMMzAsMjEuMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLGUuQ2xyU2hhcGVIYXBweUZhY2U9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMC44OSIgY3k9IjEzLjg5IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUu''@;'; + put 'put ''MDUiIGN5PSIxMy44OSIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4xMywyOC4yMWE4LjY3LDguNjcsMCwwLDAsOC4yNi02SDkuODdBOC42Nyw4LjY3LDAsMCwwLDE4LjEzLDI4LjIxWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTguODksMTMuODlhMiwyLDAsMSwxLDIsMkEyLDIsMCwwLDEsOC44OSwxMy44OVptOS4yNCwxNC4zMmE4LjY3''@;'; + put 'put ''LDguNjcsMCwwLDEtOC4yNi02SDI2LjM4QTguNjcsOC42NywwLDAsMSwxOC4xMywyOC4yMVptNi45My0xMi4zMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwyNS4wNSwxNS44OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLkNsclNoYXBlTmV1dHJhbEZh''@;'; + put 'put ''Y2U9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjA1LDIyLjA2aC0xMmExLDEsMCwwLDAsMCwyaDEyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAs''@;'; + put 'put ''MzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgs''@;'; + put 'put ''MkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm03LjA1LDIxLjA2YTEsMSwwLDAsMS0xLDFoLTEyYTEsMSwwLDAsMSwwLTJoMTJBMSwxLDAsMCwxLDI1LjA1LDIzLjA2Wk0yNywxNC4yOGExLjgsMS44LDAsMSwxLTEuOC0xLjhBMS44LDEuOCwwLDAsMSwyNywxNC4yOFptLTE1''@;'; + put 'put ''LjgsMS44YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDExLjE2LDE2LjA4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGUuQ2xyU2hhcGVTYWRGYWNlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0''@;'; + put 'put ''LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUuMTYiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTEuNDEiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjE2''@;'; + put 'put ''LDIwYTksOSwwLDAsMC03LjMzLDMuNzgsMSwxLDAsMSwwLDEuNjMsMS4xNiw3LDcsMCwwLDEsMTEuMzEtLjEzLDEsMSwwLDAsMCwxLjYtMS4yQTksOSwwLDAsMCwxOC4xNiwyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm05LDEyLjI4YTEuOCwxLjgsMCwxLDEtMS44LTEuOEExLjgsMS44LDAsMCwxLDI3LDE0LjI4Wm0tMTUuNTUsMS44YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDExLjQxLDE2LjA4Wm0xNCw3''@;'; + put 'put ''LjUzYTEsMSwwLDAsMS0xLjYsMS4yLDcsNywwLDAsMC0xMS4zMS4xMywxLDEsMCwxLDEtMS42My0xLjE2LDksOSwwLDAsMSwxNC41NC0uMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksZS5DbHJTaGFwZVRodW1ic1VwPSgwLGEuY2xySWNvblNWRykoJzxw''@;'; + put 'put ''YXRoIGQ9Ik0yNCwyNmMtMi45MiwxLjgyLTcuMyw0LTkuMzcsNGgtNmExNi42OCwxNi42OCwwLDAsMS0zLjMxLTYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsNCwxNmg5VjZhMi4wNSwyLjA1LDAsMCwxLDEuMjYtMS42OWMuNzcsMiwyLjYyLDYuNTcsNC4yMyw4LjcyQTExLjM5LDExLjM5LDAsMCww''@;'; + put 'put ''LDI0LDE2LjkxVjE0Ljc4YTkuMTMsOS4xMywwLDAsMS0zLjkxLTNjLTEuODgtMi41MS00LjI5LTkuMTEtNC4zMS05LjE3QTEsMSwwLDAsMCwxNC41OSwyQzEzLjI1LDIuMzgsMTEsMy42LDExLDZ2OEgzYTEsMSwwLDAsMC0xLDEsMjksMjksMCwwLDAsMS40LDkuNjJjMS44OSw1LjQsNC4xLDcu''@;'; + put 'put ''MTQsNC4yLDcuMjJhMSwxLDAsMCwwLC42MS4yMWg2LjQyYzIuNDMsMCw2LjU1LTIsOS4zNy0zLjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMzFIMjdhMSwxLDAsMCwxLTEtMVYxNGExLDEsMCwwLDEs''@;'; + put 'put ''MS0xaDdabS02LTJoNFYxNUgyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYzLDEyLjEyQzE3LjUxLDkuMjgsMTQuODgsMiwxNC44OCwyUzEyLDIuODMsMTIsNS4yNVYxNUgyLjIzYTI5LjQ2LDI5LjQ2''@;'; + put 'put ''LDAsMCwwLDEuNDQsOS43NEM1LjYxLDMwLjI3LDcuOCwzMiw3LjgsMzJoNi44NkMxNi45LDMyLDIxLDMwLjA2LDI0LDI4LjMxVjE1LjUxQTEwLjg0LDEwLjg0LDAsMCwxLDE5LjYzLDEyLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0yNywxM2ExLDEsMCwwLDAtMSwxVjMwYTEsMSwwLDAsMCwxLDFoN1YxM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZVRodW1ic0Rvd249KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLDEwYzIuOTItMS44Miw3''@;'; + put 'put ''LjMtNCw5LjM3LTRoNmExNi42OCwxNi42OCwwLDAsMSwzLjMxLDYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsMzIsMjBIMjNWMzBhMi4wNSwyLjA1LDAsMCwxLTEuMjYsMS42OWMtLjc3LTItMi42Mi02LjU3LTQuMjMtOC43MkExMS4zOSwxMS4zOSwwLDAsMCwxMiwxOS4wOXYyLjEzYTkuMTMsOS4x''@;'; + put 'put ''MywwLDAsMSwzLjkxLDNjMS44OCwyLjUxLDQuMjksOS4xMSw0LjMxLDkuMTdhMSwxLDAsMCwwLDEuMTkuNjNDMjIuNzUsMzMuNjIsMjUsMzIuNCwyNSwzMFYyMmg4YTEsMSwwLDAsMCwxLTEsMjksMjksMCwwLDAtMS40LTkuNjJjLTEuODktNS40LTQuMS03LjE0LTQuMi03LjIyQTEsMSwwLDAs''@;'; + put 'put ''MCwyNy43OSw0SDIxLjM3QzE4Ljk0LDQsMTQuODMsNiwxMiw3LjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMiw1SDlhMSwxLDAsMCwxLDEsMVYyMmExLDEsMCwwLDEtMSwxSDJaTTgsN0g0VjIxSDhaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi4zNywyMy44NGMyLjEyLDIuODQsNC43NiwxMC4wNyw0Ljc2LDEwLjA3UzI0LDMzLjEzLDI0LDMwLjcxVjIxaDkuNzdhMjkuNDYsMjkuNDYsMCwwLDAtMS40NC05Ljc0''@;'; + put 'put ''QzMwLjM5LDUuNjgsMjguMiw0LDI4LjIsNEgyMS4zNUMxOS4xLDQsMTUsNS45LDEyLDcuNjV2MTIuOEExMC44NCwxMC44NCwwLDAsMSwxNi4zNywyMy44NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwyM2ExLDEs''@;'; + put 'put ''MCwwLDAsMS0xVjZBMSwxLDAsMCwwLDksNUgyVjIzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQ3Jvd249KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik00LDEzLjMzQTEuMzksMS4zOSwwLDEsMCwyLjYsMTQuNzIsMS4zOSwx''@;'; + put 'put ''LjM5LDAsMCwwLDQsMTMuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuODEsMTUuODRhMjAuMzUsMjAuMzUsMCwwLDAtNC41OCwxLjQzLDIyLjcsMjIuNywwLDAsMC0zLjQ4LDIuMUExNy42OSwxNy42OSwwLDAsMSwyMiwx''@;'; + put 'put ''Ni41N2E0Ny42NSw0Ny42NSwwLDAsMS0yLjgtNy42OSwxLDEsMCwwLDAtMS0uNzQsMSwxLDAsMCwwLTEsLjc0LDQ2LjcxLDQ2LjcxLDAsMCwxLTIuOCw3LjY5LDE3LDE3LDAsMCwxLTEuNzYsMi44LDIyLjcsMjIuNywwLDAsMC0zLjQ4LTIuMSwyMC42NiwyMC42NiwwLDAsMC00LjU4LTEuNDMs''@;'; + put 'put ''MSwxLDAsMCwwLTEsLjM5LDEsMSwwLDAsMC0uMDksMS4wNUE1MC4xMyw1MC4xMywwLDAsMSw3LjgyLDMxLjE3YTEsMSwwLDAsMCwxLC44M0gyNy42MmExLDEsMCwwLDAsMS0uODMsNTAuMTUsNTAuMTUsMCwwLDEsNC4yNi0xMy44OSwxLDEsMCwwLDAtLjA5LTEuMDVBMSwxLDAsMCwwLDMxLjgx''@;'; + put 'put ''LDE1Ljg0Wk0yNi43OSwzMEg5LjY0YTU1LjY2LDU1LjY2LDAsMCwwLTMuNC0xMS43MSwxNS43NSwxNS43NSwwLDAsMSwyLjA5Ljc4LDIwLDIwLDAsMCwxLDMuODUsMi40NSwxLDEsMCwwLDAsMS4zOS0uMDksMTkuMjgsMTkuMjgsMCwwLDAsMi42Ny00LDQzLjQ2LDQzLjQ2LDAsMCwwLDItNC44''@;'; + put 'put ''OSw0MS43NCw0MS43NCwwLDAsMCwyLDQuODksMTkuOTIsMTkuOTIsMCwwLDAsMi42Niw0LDEsMSwwLDAsMCwxLjQuMDksMTkuMjEsMTkuMjEsMCwwLDEsMy44NS0yLjQ1LDE0Ljc3LDE0Ljc3LDAsMCwxLDIuMDktLjc4QTU1LjA3LDU1LjA3LDAsMCwwLDI2Ljc5LDMwWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE4LjIyLDYuMzlBMS4zOSwxLjM5''@;'; + put 'put ''LDAsMSwwLDE2Ljg0LDUsMS4zOSwxLjM5LDAsMCwwLDE4LjIyLDYuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTguMjMsMjYuMzRhMS4xMSwxLjExLDAsMSwwLDEuMSwxLjFBMS4xLDEuMSwwLDAsMCwxOC4yMywyNi4zNFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik0xMi41OCwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4xLDEuMUExLjEsMS4xLDAsMCwwLDEyLjU4LDI2LjM0WiIvPjxwYXRoIGQ9Ik0yMy44OSwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4x''@;'; + put 'put ''LDEuMUExLjEsMS4xLDAsMCwwLDIzLjg5LDI2LjM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cblxuICA8cGF0aCBkPSJNMi42LDExLjkzQTEuNCwxLjQsMCwxLDAsNCwxMy4zMywxLjQsMS40LDAsMCwwLDIuNiwxMS45M1oiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTguMjIsNi4zOUExLjM5LDEuMzksMCwxLDAsMTYu''@;'; + put 'put ''ODQsNSwxLjM5LDEuMzksMCwwLDAsMTguMjIsNi4zOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTMxLjYzLDE2LjFBMTguNjEsMTguNjEsMCwwLDAsMjgsMTcuMzRhMjEuNTcsMjEuNTcsMCwwLDAtNCwyLjQ5LDE5LjIsMTkuMiwwLDAs''@;'; + put 'put ''MS0yLjI2LTMuNDksNDguOTIsNDguOTIsMCwwLDEtMi41Mi02LjU4LDEsMSwwLDAsMC0xLS43MWgwYTEsMSwwLDAsMC0xLC43MSw0OC40Miw0OC40MiwwLDAsMS0yLjUyLDYuNTgsMTguNjksMTguNjksMCwwLDEtMi4yNiwzLjQ4LDIyLjgxLDIyLjgxLDAsMCwwLTQtMi40OEExOC44MywxOC44''@;'; + put 'put ''MywwLDAsMCw0LjksMTYuMWExLDEsMCwwLDAtMSwuMzMsMSwxLDAsMCwwLS4xMywxLjA3LDU1LjksNTUuOSwwLDAsMSw0LDEzLjUsMSwxLDAsMCwwLDEsLjgzaDE5YTEsMSwwLDAsMCwxLS44Myw1NS45LDU1LjksMCwwLDEsNC0xMy41LDEsMSwwLDAsMC0uMTMtMS4wN0ExLDEsMCwwLDAsMzEu''@;'; + put 'put ''NjMsMTYuMVpNMTEuMDgsMjguNTVhMS4xMSwxLjExLDAsMSwxLDEuMS0xLjExQTEuMTEsMS4xMSwwLDAsMSwxMS4wOCwyOC41NVptNy4xNSwwYTEuMTEsMS4xMSwwLDAsMSwwLTIuMjEsMS4xMSwxLjExLDAsMCwxLDAsMi4yMVptNy4xNiwwYTEuMTEsMS4xMSwwLDEsMSwxLjEtMS4xMUExLjEx''@;'; + put 'put ''LDEuMTEsMCwwLDEsMjUuMzksMjguNTVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00Ii8+XG4gICcpLGUuQ2xyU2hhcGVIYXNodGFnPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzIsMTJIMjUuMzRsMS41NS03Ljc0YTEsMSwwLDAsMC0yLS4zOUwyMy4z''@;'; + put 'put ''LDEySDE1LjExbDEuNTUtNy43NGExLDEsMCwwLDAtMi0uMzlMMTMuMDcsMTJINmExLDEsMCwwLDAsMCwyaDYuNjdsLTEuNiw4SDRhMSwxLDAsMCwwLDAsMmg2LjY2TDkuMTEsMzEuNzRhMSwxLDAsMCwwLC43OSwxLjE3LjY4LjY4LDAsMCwwLC4yLDAsMSwxLDAsMCwwLDEtLjhMMTIuNywyNGg4''@;'; + put 'put ''LjE5bC0xLjU1LDcuNzRhMSwxLDAsMCwwLC43OSwxLjE3LjYyLjYyLDAsMCwwLC4xOSwwLDEsMSwwLDAsMCwxLS44TDIyLjkzLDI0SDMwYTEsMSwwLDAsMCwwLTJIMjMuMzNsMS42MS04SDMyYTEsMSwwLDAsMCwwLTJaTTIxLjI5LDIySDEzLjFsMS42MS04SDIyLjlaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuXG4gIDxwYXRoIGQ9Ik0zMS44NywxMEgyNi4zMmwxLTQuODNBMSwxLDAsMCwwLDI2LjM1LDRoLTJhMSwxLDAsMCwwLTEsLjc4TDIyLjMzLDEwaC01LjRsMS00LjgzQTEsMSwwLDAsMCwxNyw0SDE1YTEsMSwwLDAsMC0xLC43OEwxMywx''@;'; + put 'put ''MEg3YTEsMSwwLDAsMC0xLC44bC0uNDEsMmExLDEsMCwwLDAsMSwxLjJoNS41NUwxMC41LDIyaC02YTEsMSwwLDAsMC0xLC44bC0uNDEsMmExLDEsMCwwLDAsMSwxLjJIOS42OGwtMSw0LjgzYTEsMSwwLDAsMCwxLDEuMTdoMmExLDEsMCwwLDAsLjk1LS43OEwxMy42NywyNmg1LjRsLTEsNC44''@;'; + put 'put ''M0ExLDEsMCwwLDAsMTksMzJoMmExLDEsMCwwLDAsMS0uNzhMMjMuMDUsMjZoNmExLDEsMCwwLDAsMS0uOGwuNC0yYTEsMSwwLDAsMC0xLTEuMkgyMy44N2wxLjYzLThoNmExLDEsMCwwLDAsMS0uOGwuNDEtMkExLDEsMCwwLDAsMzEuODcsMTBabS0xMiwxMmgtNS40bDEuNjQtOGg1LjRaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICcpLGUuU29jaWFsU2hhcGVzPXtjcm93bjplLkNsclNoYXBlQ3Jvd24sc2hhcmU6ZS5DbHJTaGFwZVNoYXJlLHN0YXI6ZS5DbHJTaGFwZVN0YXIsImhhbGYtc3RhciI6ZS5DbHJTaGFwZUhhbGZTdGFyLGJvb2ttYXJr''@;'; + put 'put ''OmUuQ2xyU2hhcGVCb29rbWFyayxlbnZlbG9wZTplLkNsclNoYXBlRW52ZWxvcGUsY2FsZW5kYXI6Yy5DbHJTaGFwZUNhbGVuZGFyLGV2ZW50OmMuQ2xyU2hhcGVFdmVudCx0YXNrczplLkNsclNoYXBlVGFza3MsZmxhZzplLkNsclNoYXBlRmxhZyxpbmJveDplLkNsclNoYXBlSW5ib3gsaGFz''@;'; + put 'put ''aHRhZzplLkNsclNoYXBlSGFzaHRhZyxoZWFydDplLkNsclNoYXBlSGVhcnQsImhlYXJ0LWJyb2tlbiI6ZS5DbHJTaGFwZUhlYXJ0QnJva2VuLCJ0YWxrLWJ1YmJsZXMiOmUuQ2xyU2hhcGVUYWxrQnViYmxlcywiY2hhdC1idWJibGUiOmUuQ2xyU2hhcGVDaGF0QnViYmxlLHBpY3R1cmU6ZS5D''@;'; + put 'put ''bHJTaGFwZVBpY3R1cmUsImhhcHB5LWZhY2UiOmUuQ2xyU2hhcGVIYXBweUZhY2UsIm5ldXRyYWwtZmFjZSI6ZS5DbHJTaGFwZU5ldXRyYWxGYWNlLCJzYWQtZmFjZSI6ZS5DbHJTaGFwZVNhZEZhY2UsInRodW1icy11cCI6ZS5DbHJTaGFwZVRodW1ic1VwLCJ0aHVtYnMtZG93biI6ZS5DbHJT''@;'; + put 'put ''aGFwZVRodW1ic0Rvd259LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlNvY2lhbFNoYXBlcywiZmF2b3JpdGUiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Tb2NpYWxTaGFwZXMuc3RhcikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlNvY2lhbFNoYXBlcywiZW1haWwiLCgwLHIuZGVzY3Jp''@;'; + put 'put ''cHRvckNvbmZpZykoZS5Tb2NpYWxTaGFwZXMuZW52ZWxvcGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Tb2NpYWxTaGFwZXMsImRhdGUiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Tb2NpYWxTaGFwZXMuY2FsZW5kYXIpKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93''@;'; + put 'put ''Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoZS5Tb2NpYWxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RlY2hub2xvZ3ktc2hhcGVzLnRzIjpmdW5jdGlvbihBLGUsYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZp''@;'; + put 'put ''bmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkNsclNoYXBlVk1XQXBwPWUuQ2xyU2hhcGVWTT1lLkNsclNoYXBlUm91dGVyPWUuQ2xyU2hhcGVOZXR3b3JrU3dpdGNoPWUuQ2xyU2hhcGVOZXR3b3JrU2V0dGluZ3M9ZS5DbHJTaGFwZU5ldHdvcmtHbG9iZT1lLkNsclNo''@;'; + put 'put ''YXBlVGFibGV0PWUuQ2xyU2hhcGVNb2JpbGU9ZS5DbHJTaGFwZUJhdHRlcnk9ZS5DbHJTaGFwZUFwcGxpY2F0aW9uPWUuQ2xyU2hhcGVDb2RlPWUuQ2xyU2hhcGVUZXJtaW5hbD1lLkNsclNoYXBlRGlzcGxheT1lLkNsclNoYXBlQ29tcHV0ZXI9ZS5DbHJTaGFwZUZsb3BweT1lLkNsclNoYXBl''@;'; + put 'put ''UGx1Z2luPWUuQ2xyU2hhcGVEb3dubG9hZENsb3VkPWUuQ2xyU2hhcGVVcGxvYWRDbG91ZD1lLkNsclNoYXBlRXhwb3J0PWUuQ2xyU2hhcGVJbXBvcnQ9ZS5DbHJTaGFwZVNoaWVsZFg9ZS5DbHJTaGFwZVNoaWVsZD1lLkNsclNoYXBlU2hpZWxkQ2hlY2s9ZS5DbHJTaGFwZVJlc291cmNlUG9v''@;'; + put 'put ''bD1lLkNsclNoYXBlRGF0YUNsdXN0ZXI9ZS5DbHJTaGFwZU1lbW9yeT1lLkNsclNoYXBlQ1BVPWUuQ2xyU2hhcGVCdWlsZGluZz1lLkNsclNoYXBlQXBwbGljYXRpb25zPWUuQ2xyU2hhcGVDbHVzdGVyPWUuQ2xyU2hhcGVTdG9yYWdlPWUuQ2xyU2hhcGVIb3N0PWUuQ2xyU2hhcGVEYXNoYm9h''@;'; + put 'put ''cmQ9ZS5DbHJTaGFwZU1vdXNlPWUuQ2xyU2hhcGVLZXlib2FyZD1lLkNsclNoYXBlRGV2aWNlcz1lLkNsclNoYXBlQmFja3VwPWUuQ2xyU2hhcGVCYWNrdXBSZXN0b3JlPWUuQ2xyU2hhcGVIYXJkRGlzaz1lLkNsclNoYXBlUmFja1NlcnZlcj1lLkNsclNoYXBlV2lmaT1lLkNsclNoYXBlQnVu''@;'; + put 'put ''ZGxlPWUuQ2xyU2hhcGVCbG9ja3NHcm91cD1lLkNsclNoYXBlQmxvY2s9ZS5DbHJTaGFwZUxheWVycz1lLkNsclNoYXBlVW5pbnN0YWxsPWUuQ2xyU2hhcGVJbnN0YWxsPWUuQ2xyU2hhcGVOb1dpZmk9ZS5DbHJTaGFwZVBob25lSGFuZHNldD1lLkNsclNoYXBlUnVsZXJQZW5jaWw9dm9pZCAw''@;'; + put 'put ''LGUuVGVjaG5vbG9neVNoYXBlcz1lLkNsclNoYXBlRmlsZVNoYXJlMj1lLkNsclNoYXBlQ2lDZD1lLkNsclNoYXBlQW5pbWF0aW9uPWUuQ2xyU2hhcGVUYXBlRHJpdmU9ZS5DbHJTaGFwZU1lZGlhQ2hhbmdlcj1lLkNsckNvbnRyb2xMdW49ZS5DbHJTaGFwZVBvZD1lLkNsclNoYXBlTm9kZT1l''@;'; + put 'put ''LkNsclNoYXBlTmFtZXNwYWNlPWUuQ2xyU2hhcGVOb2Rlcz1lLkNsclNoYXBlTm9kZUdyb3VwPWUuQ2xyU2hhcGVTdG9yYWdlQWRhcHRlcj1lLkNsclNoYXBlSG9zdEdyb3VwPWUuQ2xyU2hhcGVTcXVpZD1lLkNsclNoYXBlQ2FwYWNpdG9yPWUuQ2xyU2hhcGVSZXNpc3Rvcj1lLkNsclNoYXBl''@;'; + put 'put ''SW5kdWN0b3I9ZS5DbHJTaGFwZVJhZGFyPWUuQ2xyU2hhcGVVc2I9ZS5DbHJTaGFwZVFyQ29kZT1lLkNsclNoYXBlRmlsZVNoYXJlPWUuQ2xyU2hhcGVDb250YWluZXJWb2x1bWU9ZS5DbHJTaGFwZUNvbnRhaW5lcj1lLkNsclNoYXBlQ2REdmQ9ZS5DbHJTaGFwZUJhckNvZGU9ZS5DbHJTaGFw''@;'; + put 'put ''ZUF0b209ZS5DbHJTaGFwZUFzc2lnblVzZXI9ZS5DbHJTaGFwZVByb2Nlc3NPblZNPWUuQ2xyU2hhcGVCbHVldG9vdGhPZmY9ZS5DbHJTaGFwZUJsdWV0b290aD1lLkNsclNoYXBlU1NEPWUuQ2xyU2hhcGVOVk1lPWUuQ2xyU2hhcGVIYXJkRHJpdmVEaXNrcz1lLkNsclNoYXBlSGFyZERyaXZl''@;'; + put 'put ''PWUuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yPWUuQ2xyU2hhcGVGbGFzaz1lLkNsclNoYXBlSGVsaXg9ZS5DbHJTaGFwZURlcGxveT1lLkNsclNoYXBlQ2xvdWRUcmFmZmljPWUuQ2xyU2hhcGVDbG91ZFNjYWxlPWUuQ2xyU2hhcGVDbG91ZE5ldHdvcms9ZS5DbHJTaGFwZVVubGluaz1lLkNsclNo''@;'; + put 'put ''YXBlTGluaz1lLkNsclNoYXBlRGlzY29ubmVjdD1lLkNsclNoYXBlQ29ubmVjdD1lLkNsclNoYXBlVW5hcmNoaXZlPWUuQ2xyU2hhcGVBcmNoaXZlPWUuQ2xyU2hhcGVDZXJ0aWZpY2F0ZT12b2lkIDA7dmFyIHI9YSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25m''@;'; + put 'put ''aWcudHMiKTthPWEoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIiksZS5DbHJTaGFwZVJ1bGVyUGVuY2lsPSgwLGEuY2xySWNvblNWRykoJzxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBwb2ludHM9Ijkg''@;'; + put 'put ''MTcuNDEgOSAyNyAxOC41OSAyNyAxNi41OSAyNSAxMSAyNSAxMSAxOS40MSA5IDE3LjQxIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTM0Ljg3LDMyLjI5LDMyLDI5LjM4VjMySDRWMjcuODVINnYtMS42SDRWMTku''@;'; + put 'put ''Nkg2VjE4SDRWMTEuNkg2VjEwSDRWNC40MUwxOS45NCwyMC4yNlYxNy40NEwzLjcxLDEuMjlBMSwxLDAsMCwwLDIsMlYzM2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0zIiBkPSJNMjQsMzBoNGEyLDIsMCwwLDAsMi0yVjguN0wyNy43LDQuNDdhMiwyLDAsMCwwLTEuNzYtMWgwYTIsMiwwLDAsMC0xLjc2LDEuMDhMMjIsOC43MlYyOEEyLDIsMCwwLDAsMjQsMzBaTTI0LDkuMmwxLjk0LTMuNzdMMjgsOS4yMVYyNEgyNFptMCwxNi40M2g0djIuNDRI''@;'; + put 'put ''MjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuODcsMzIuMjEsMzAsMjcuMzdWOC43NUwyNy43LDQuNTJhMiwyLDAsMCwwLTMuNTQsMEwyMiw4Ljc2VjE5LjQxTDMuNzEsMS4yMUExLDEsMCwwLDAsMiwxLjkyVjEw''@;'; + put 'put ''SDQuMTd2MS42SDJWMThINC4xN3YxLjZIMnY2LjY1SDQuMTd2MS42SDJ2NS4wN2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVpNMTAsMjZWMTYuOTRMMTkuMDcsMjZabTE4LDIuMTFIMjRWMjUuNjhoNFptMC00SDI0VjkuMjVsMS45NC0zLjc3TDI4LDkuMjZaIi8+XG4n''@;'; + put 'put ''KSxlLkNsclNoYXBlUGhvbmVIYW5kc2V0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuNzMsMzUuNDRhNC43Miw0LjcyLDAsMCwxLTEtLjExLDMzLjkxLDMzLjkxLDAsMCwxLTE2LjYyLTguNzUsMzIuNzEs''@;'; + put 'put ''MzIuNzEsMCwwLDEtOS0xNi4yNUE0LjU4LDQuNTgsMCwwLDEsMi40Niw2LjA1bDQtMy44NUEyLDIsMCwwLDEsOCwxLjY2YTIsMiwwLDAsMSwxLjQ1Ljg3bDUsNy4zOWExLjYsMS42LDAsMCwxLS4xMSwxLjlsLTIuNTEsM2ExOC45NCwxOC45NCwwLDAsMCw0LjE3LDUuODloMGExOS4yNiwxOS4y''@;'; + put 'put ''NiwwLDAsMCw2LjA3LDQuMDlsMy4xMS0yLjQ3YTEuNjQsMS42NCwwLDAsMSwxLjg2LS4xMmw3LjU1LDQuODhBMiwyLDAsMCwxLDM1LDMwLjJsLTMuOSwzLjg2QTQuNzQsNC43NCwwLDAsMSwyNy43MywzNS40NFpNNy44NCwzLjY0bC00LDMuODVhMi41NCwyLjU0LDAsMCwwLS43NSwyLjQsMzAu''@;'; + put 'put ''NywzMC43LDAsMCwwLDguNDEsMTUuMjYsMzEuOSwzMS45LDAsMCwwLDE1LjY0LDguMjMsMi43NSwyLjc1LDAsMCwwLDIuNS0uNzRsMy45LTMuODYtNy4yOS00LjcxLTMuMzQsMi42NmExLDEsMCwwLDEtLjkyLjE3LDIwLjA2LDIwLjA2LDAsMCwxLTcuMzYtNC43NWgwYTE5LjQ5LDE5LjQ5LDAs''@;'; + put 'put ''MCwxLTQuODctNy4yQTEsMSwwLDAsMSwxMCwxNGwyLjctMy4yM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4yMiwyMC42NGEyMC4zNywyMC4zNywwLDAsMCw3LjQsNC43OWwzLjc3LTNhLjY3LjY3LDAsMCwxLC43''@;'; + put 'put ''NiwwbDcsNC41MWEyLDIsMCwwLDEsLjMzLDMuMThsLTMuMjgsMy4yNGE0LDQsMCwwLDEtMy42MywxLjA3LDM1LjA5LDM1LjA5LDAsMCwxLTE3LjE1LTlBMzMuNzksMzMuNzksMCwwLDEsMS4xNSw4LjZhMy43OCwzLjc4LDAsMCwxLDEuMS0zLjU1bDMuNC0zLjI4YTIsMiwwLDAsMSwzLjEyLjMy''@;'; + put 'put ''TDEzLjQzLDlhLjYzLjYzLDAsMCwxLDAsLjc1bC0zLjA3LDMuNjlBMTkuNzUsMTkuNzUsMCwwLDAsMTUuMjIsMjAuNjRaIi8+XG4nKSxlLkNsclNoYXBlTm9XaWZpPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJN''@;'; + put 'put ''MTgsMjQuNDJhNCw0LDAsMSwwLDQsNEE0LDQsMCwwLDAsMTgsMjQuNDJabTAsNmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwxOCwzMC40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjYuMjEsMjEuODVhMSwx''@;'; + put 'put ''LDAsMCwwLS4yMy0xLjQsMTMuNTYsMTMuNTYsMCwwLDAtNS0yLjIzbDMuODcsMy44N0ExLDEsMCwwLDAsMjYuMjEsMjEuODVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDEwLjcyYTIwLjg4LDIwLjg4''@;'; + put 'put ''LDAsMCwwLTQuMTYuNDNsMS43NCwxLjc0YTE5LDE5LDAsMCwxLDIuNDItLjE3QTE4Ljc2LDE4Ljc2LDAsMCwxLDI4LjY0LDE2YTEsMSwwLDAsMCwxLjEyLTEuNjVBMjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMzLjU1LDguMkEyOC4xMSwyOC4xMSwwLDAsMCw4LjExLDUuMzZMOS42OSw2LjkzQTI2LDI2LDAsMCwxLDMyLjQ1LDkuODdhMSwxLDAsMCwwLDEuMS0xLjY3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0xLjg0LDQuNzUsNC4yNyw3LjE4Yy0uNjIuMzQtMS4yMy43LTEuODMsMS4xQTEsMSwwLDEsMCwzLjU2LDkuOTRDNC4yNiw5LjQ3LDUsOSw1Ljc0LDguNjVsMy44NywzLjg3QTIwLjU5LDIwLjU5LDAsMCwwLDYuMjMsMTQuNCwxLDEsMCwwLDAsNy4zNiwx''@;'; + put 'put ''NmExOC44MiwxOC44MiwwLDAsMSwzLjc3LTJsNC4xNiw0LjE2QTEzLjUxLDEzLjUxLDAsMCwwLDEwLDIwLjU1YTEsMSwwLDAsMCwxLjE4LDEuNjFBMTEuNTIsMTEuNTIsMCwwLDEsMTcsMjBsMTAuOCwxMC44LDEuNDEtMS40MS0yNi0yNloiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjkuNTQiIHI9IjMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yOS4xOCwxNy43MWwuMTEtLjE3YTEuNTEsMS41MSwwLDAsMC0uNDctMi4x''@;'; + put 'put ''QTIwLjU3LDIwLjU3LDAsMCwwLDE4LDEyLjM3Yy0uNTYsMC0xLjExLDAtMS42NS4wN2wzLjIxLDMuMjFhMTcuNDEsMTcuNDEsMCwwLDEsNy42LDIuNTJBMS40OSwxLjQ5LDAsMCwwLDI5LjE4LDE3LjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMyIgZD0iTTMyLjc2LDkuMzhBMjcuOSwyNy45LDAsMCwwLDEwLjE4LDYuMjdMMTIuODEsOC45QTI0LjY4LDI0LjY4LDAsMCwxLDMxLjEsMTIuMTJhMS40OSwxLjQ5LDAsMCwwLDItLjQ2bC4xMS0uMTdBMS41MSwxLjUxLDAsMCwwLDMyLjc2LDkuMzhaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMyw0Ljc1bDMuMSwzLjFBMjcuMjgsMjcuMjgsMCwwLDAsMy4xOCw5LjQyYTEuNTEsMS41MSwwLDAsMC0uNDgsMi4xMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDI0LjY5LDI0LjY5LDAsMCwx''@;'; + put 'put ''LDMuNjctMS45bDMuMTQsMy4xNGEyMC42MywyMC42MywwLDAsMC00LjUzLDIuMDksMS41MSwxLjUxLDAsMCwwLS40NiwyLjFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NkExNy40NiwxNy40NiwwLDAsMSwxNC4yNSwxNmwzLjYsMy42YTEzLjM5LDEzLjM5LDAsMCwwLTYuNzksMS45Mywx''@;'; + put 'put ''LjUsMS41LDAsMCwwLS40NiwyLjA5bC4xLjE2YTEuNTIsMS41MiwwLDAsMCwyLjA2LjQ0LDEwLjIsMTAuMiwwLDAsMSw5LS43TDI5LDMwLjc1bDEuNDEtMS40MS0yNi0yNloiLz5cbicpLGUuQ2xyU2hhcGVJbnN0YWxsPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCwwLDAsMCwySDMxVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMw''@;'; + put 'put ''LjkyLDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEwLjMsMTguODdsNyw2Ljg5YTEsMSwwLDAsMCwxLjQsMGw3LTYuODlhMSwxLDAsMCwwLTEuNC0xLjQzTDE5LDIyLjY1VjRhMSwxLDAsMCwwLTIsMFYyMi42''@;'; + put 'put ''NWwtNS4zLTUuMjFhMSwxLDAsMCwwLTEuNCwxLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCww''@;'; + put 'put ''LDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+PHBhdGggZD0iTTMxLDEzLjQzVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45''@;'; + put 'put ''MkEyLDIsMCwwLDAsMzMsMzBWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCww''@;'; + put 'put ''LDAtMiwwVjIyLjY1bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJI''@;'; + put 'put ''NS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9''@;'; + put 'put ''Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLGUuQ2xyU2hhcGVVbmluc3RhbGw9KDAsYS5jbHJJY29uU1ZHKSgnPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42''@;'; + put 'put ''OGwtNS4zLTUuMjNhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCww''@;'; + put 'put ''LDAsMCwySDMxVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMwLjkyLDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42OGwtNS4zLTUu''@;'; + put 'put ''MjNhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMxLDEzLjQzVjMwSDVW''@;'; + put 'put ''MTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTEuMjksMjYuNzJh''@;'; + put 'put ''MSwxLDAsMCwwLDEuNDEsMEwxOCwyMS40OWw1LjMsNS4yM0ExLDEsMCwwLDAsMjQuNywyNS4zbC01LjI4LTUuMjEsNC43NS00LjY5SDIyLjIzYTMuNjUsMy42NSwwLDAsMS0uODEtLjFMMTgsMTguNjhsLTUuMy01LjIzYTEsMSwwLDAsMC0xLjQxLDEuNDJsNS4yOCw1LjIxTDExLjMsMjUuM0Ex''@;'; + put 'put ''LDEsMCwwLDAsMTEuMjksMjYuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYz''@;'; + put 'put ''MGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDEx''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLGUuQ2xyU2hhcGVMYXllcnM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVpNNS4zNCwxMi4x''@;'; + put 'put ''NmwxMi42Niw2LDEyLjY2LTZMMTgsNi4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjYuMTZhMSwxLDAsMCwxLS40My0uMUwyLjU3LDE5YTEsMSwwLDEsMSwuODUtMS44MUwxOCwyNC4wNmwxNC41Ny02''@;'; + put 'put ''Ljg5QTEsMSwwLDEsMSwzMy40MywxOWwtMTUsNy4wOUExLDEsMCwwLDEsMTgsMjYuMTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDMyLjA3YTEsMSwwLDAsMS0uNDMtLjFsLTE1LTcuMDlhMSwxLDAsMCwx''@;'; + put 'put ''LC44NS0xLjgxTDE4LDMwbDE0LjU3LTYuODlhMSwxLDAsMSwxLC44NSwxLjgxTDE4LjQzLDMyQTEsMSwwLDAsMSwxOCwzMi4wN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4x''@;'; + put 'put ''bC0xNS03LjA5YTEsMSwwLDAsMSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIi''@;'; + put 'put ''IGQ9Ik0xOCwyNi4xNmExLDEsMCwwLDEtLjQzLS4xTDIuNTcsMTlhMSwxLDAsMSwxLC44NS0xLjgxTDE4LDI0LjA2bDE0LjU3LTYuODlBMSwxLDAsMSwxLDMzLjQzLDE5bC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyNi4xNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xOCwzMi4wN2ExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwuODUtMS44MUwxOCwzMGwxNC41Ny02Ljg5YTEsMSwwLDEsMSwuODUsMS44MUwxOC40MywzMkExLDEsMCwwLDEsMTgsMzIuMDdaIi8+XG4nKSxlLkNsclNoYXBlQmxv''@;'; + put 'put ''Y2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQyLDkuMDlsLTEzLTZhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTBBMSwxLDAsMCwwLDMxLjQy''@;'; + put 'put ''LDkuMDlaTTE4LDUuMSwyOC42MSwxMCwxOCwxNC45LDcuMzksMTBaTTYsMTEuNTZsMTEsNS4wOHYxNC44TDYsMjYuMzZaTTE5LDMxLjQ0VjE2LjY0bDExLTUuMDh2MTQuOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTMwLDE1LjUzVjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDIuNTctMS4xOWEzLjY3LDMuNjcsMCwwLDEtMi4xMS0xLjIyTDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsMy4wOCwxLjQyLDEtMS43NEwxOC40MiwzLjA5YTEsMSwwLDAsMC0uODQsMGwtMTMsNkExLDEsMCwwLDAsNCwxMFYyN2ExLDEs''@;'; + put 'put ''MCwwLDAsLjU4LjkxbDEzLDZhMSwxLDAsMCwwLC44NCwwbDEzLTZBMSwxLDAsMCwwLDMyLDI3VjE1LjUzWk0xNywzMS40NCw2LDI2LjM2VjExLjU2bDExLDUuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0yNi44NywxLjI2bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkySDMzLjdhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkyTDI5LjA4LDEuMjZBMS4yOCwxLjI4LDAsMCwwLDI2Ljg3LDEuMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcu''@;'; + put 'put ''MTIsNy4xMiwwLDAsMSwyMi41LDZhOCw4LDAsMCwxLC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAs''@;'; + put 'put ''MCwxLDMwLDEzLjVaTTE3LDMxLjQ0LDYsMjYuMzZWMTEuNTZsMTEsNS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDIsOS4wOWwtMTMtNmExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41''@;'; + put 'put ''OC45MWwxMyw2YTEsMSwwLDAsMCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMEExLDEsMCwwLDAsMzEuNDIsOS4wOVpNMTgsMTQuOSw3LjM5LDEwLDE4LDUuMSwyOC42MSwxMFpNMzAsMjYuMzYsMTksMzEuNDRWMTYuNjRsMTEtNS4wOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuMzh2MTFMMTksMzEuNDRWMTYuNjRsMi43OS0xLjI5YTMuNjgsMy42OCwwLDAsMS0yLjI1LTEuMTZMMTgsMTQuOSw3LjM5LDEwLDE4LDUuMWwzLDEuMzksMS0xLjc1TDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCww''@;'; + put 'put ''bC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTI2Ljg1LDEuMTIsMjEuMTMsMTFhMS4yNywxLjI3LDAsMCwwLDEuMSwxLjkxSDMzLjY4QTEuMjcsMS4yNywwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjEyQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcuMTIsNy4xMiwwLDAs''@;'; + put 'put ''MSwyMi41LDZhOCw4LDAsMCwxLC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFk''@;'; + put 'put ''Z2UiIC8+JyksZS5DbHJTaGFwZUJsb2Nrc0dyb3VwPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIu''@;'; + put 'put ''NjgsMTguNzZhMSwxLDAsMCwwLS41OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTgu''@;'; + put 'put ''NzZabS0yLjgxLjkxTDI1LjYxLDIyLDIwLjUsMTkuNjdsNS4xMS0yLjM1Wk0xOC4xLDQuMDhsNS4xMSwyLjM1TDE4LjEsOC43OCwxMyw2LjQzWk0xMC42LDE3LjMxbDUuMTEsMi4zNUwxMC42LDIyLDUuNDksMTkuNjdabTYuNSwxMS40OS02LjUsMy02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEs''@;'; + put 'put ''MCwwLDAsMTEsMjRsNi4wOC0yLjhaTTExLjYsMTUuNTdoMFY4bDYuMDgsMi44YTEsMSwwLDAsMCwuODQsMEwyNC42LDh2Ny41OGgwbC02LjUsM1pNMzIuMTEsMjguODFsLTYuNSwzLTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjhaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3aC0ydjBsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCwwbC4yNC0uMTFhNC4xNyw0LjE3LDAsMCwxLC4yOS0uNjVsMS4zMy0yLjMxLTIuMjgsMUwxMyw2''@;'; + put 'put ''LjQzbDUuMS0yLjM1LDMuNDcsMS42LDEtMS43M0wxOC41LDIuMDhhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4''@;'; + put 'put ''LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MVYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40OSwxOS42N1ptMCwxNC40OS02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEsMCww''@;'; + put 'put ''LDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTE1LTE0LjQ4LDUuMTEsMi4zNUwyNS42MSwyMiwyMC41LDE5LjY3Wm0wLDE0LjQ5LTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG48cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdWMTIuN2E3LjU4LDcuNTgsMCwwLDEtMi0xLjUxdjQuMzlsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAs''@;'; + put 'put ''MCwwLC44NCwwTDIzLDguNzJhNy4wNSw3LjA1LDAsMCwxLS40Ny0ybC00LjQ3LDJMMTMsNi40M2w1LjEtMi4zNSw0LjQ0LDJzMC0uMDYsMC0uMDlhNy41NSw3LjU1LDAsMCwxLC4yNy0ybC00LjMtMmExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45''@;'; + put 'put ''LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlpNMTAu''@;'; + put 'put ''NiwxNy4zMWw1LjExLDIuMzVMMTAuNiwyMiw1LjQ5LDE5LjY3Wm0wLDE0LjQ5LTYuNS0zVjIxLjIzTDEwLjE4LDI0QTEsMSwwLDAsMCwxMSwyNGw2LjA4LTIuOCwwLDcuNlptMTUtMTQuNDgsNS4xMSwyLjM1TDI1LjYxLDIyLDIwLjUsMTkuNjdabTAsMTQuNDktNi41MS0zVjIxLjIyTDI1LjE5''@;'; + put 'put ''LDI0QTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG48Y2lyY2xlIGN4PSIzMC4wMyIgY3k9IjYuMDMiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIuNjgs''@;'; + put 'put ''MTguNzZhMSwxLDAsMCwwLS41OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZa''@;'; + put 'put ''TTI1LjYxLDIyLDIwLjUsMTkuNjdsNS4xMS0yLjM1LDUuMTEsMi4zNVptLTEtNi40NC02LjQ0LDNWMTAuODdhMSwxLDAsMCwwLC4zNS0uMDhMMjQuNiw4djcuNThaTTE4LjEsNC4wOGw1LjExLDIuMzVMMTguMSw4Ljc4LDEzLDYuNDNaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40''@;'; + put 'put ''OSwxOS42N1ptNi41LDExLjQ5LTYuNSwzaDBWMjQuMTFoMEExLDEsMCwwLDAsMTEsMjRsNi4wOC0yLjhabTE1LDAtNi40NiwzVjI0LjExQTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMzMuNTMs''@;'; + put 'put ''MTguNzYsMjYuNiwxNS41N3YwaC0ydjBsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOGwuMTQtLjA2QTMuMjMsMy4yMywwLDAsMSwxOSwxMGwxLjI4LTIuMjItMi4xNCwxTDEzLDYuNDNsNS4xLTIuMzUsMy4zOSwxLjU2LDEtMS43My00LTEuODNhMSwxLDAsMCwwLS44NCww''@;'; + put 'put ''bC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4''@;'; + put 'put ''LS45MVYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZabS0yOCwuOTEsNS4xMS0yLjM2LDUuMTEsMi4zNUwxMC42LDIyWk0xMC42LDMxLjhWMjQuMTFBMS4wOCwxLjA4LDAsMCwwLDExLDI0bDYuMDgtMi44LDAsNy42Wm05LjktMTIuMTMsNS4xMS0yLjM1LDUuMTEsMi4zNUwyNS42MSwyMlpN''@;'; + put 'put ''MjUuNjQsMzEuOFYyNC4xMUEuODkuODksMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuPHBhdGggZD0iTTI2Ljg5LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCwwLDAsMjIu''@;'; + put 'put ''MjcsMTNIMzMuNzJhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjEsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODksMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG48cGF0aCBkPSJNMzMuNTMs''@;'; + put 'put ''MTguNzYsMjYuNiwxNS41N1YxMi42OWE3LjY2LDcuNjYsMCwwLDEtMi0xLjQ3djQuMzRsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOEwyMyw4LjczYTcuNjUsNy42NSwwLDAsMS0uNDgtMmwtNC40MiwyTDEzLDYuNDNsNS4xLTIuMzUsNC4zOCwyVjZhNy41NSw3LjU1LDAs''@;'; + put 'put ''MCwxLC4yNy0yTDE4LjUsMi4wOGExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwx''@;'; + put 'put ''LDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlptLTI4LC45MSw1LjExLTIuMzYsNS4xMSwyLjM1TDEwLjYsMjJaTTEwLjYsMzEuOFYyNC4xMUExLjA4LDEuMDgsMCwwLDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTkuOS0x''@;'; + put 'put ''Mi4xMyw1LjExLTIuMzUsNS4xMSwyLjM1TDI1LjYxLDIyWk0yNS42NCwzMS44VjI0LjExQS44OS44OSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuPGNpcmNsZSBjeD0iMjkuOTgi''@;'; + put 'put ''IGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBlQnVuZGxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiBkPSJNMzIuNDMsOC4zNWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAsMCwuNTctLjlWOS4yNUExLDEsMCwwLDAsMzIuNDMsOC4z''@;'; + put 'put ''NVpNMTksNC4xNSwyOS45Myw5LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWk01LDEyLjEzLDE2LDE3LjRWMzEuNDZMNSwyNi4yWk0xOCwzMS40NVYxNy4zNmwxMy02LjI5djE0LjFaIi8+XG4gICAgICAgICAgICA8cGF0aCBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuNDMsOC4zNWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAs''@;'; + put 'put ''MCwuNTctLjlWOS4yNUExLDEsMCwwLDAsMzIuNDMsOC4zNVpNMTksNC4xNSwyOS45Myw5LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWm0xLDE1LjhWMTcuMzZsMTMtNi4yOXYxNC4xWiIvPlxuJyksZS5DbHJTaGFwZVdpZmk9''@;'; + put 'put ''KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMy41NSw4LjJhMjguMSwyOC4xLDAsMCwwLTMxLjExLjA4QTEsMSwwLDEsMCwzLjU2LDkuOTRhMjYuMTEsMjYuMTEsMCwwLDEsMjguODktLjA3LDEsMSwwLDAsMCwx''@;'; + put 'put ''LjEtMS42N1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTguMDUsMTAuNzJBMjAuNzQsMjAuNzQsMCwwLDAsNi4yMywxNC40LDEsMSwwLDAsMCw3LjM2LDE2LDE4Ljg1LDE4Ljg1LDAsMCwxLDI4LjY0LDE2YTEs''@;'; + put 'put ''MSwwLDAsMCwxLjEyLTEuNjVBMjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDE3LjlhMTMuNTEsMTMuNTEsMCwwLDAtOCwyLjY0LDEsMSwwLDAsMCwx''@;'; + put 'put ''LjE4LDEuNjEsMTEuNTYsMTEuNTYsMCwwLDEsMTMuNjItLjA4QTEsMSwwLDEsMCwyNiwyMC40NiwxMy41MiwxMy41MiwwLDAsMCwxOC4wNSwxNy45WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOCwyNC40MmE0''@;'; + put 'put ''LDQsMCwxLDAsNCw0QTQsNCwwLDAsMCwxOCwyNC40MlptMCw2YTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDMwLjQyWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBjeD0iMTgiIGN5PSIyOS41NCIgcj0iMyIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLjc2LDkuMzhhMjcuODcsMjcuODcsMCwwLDAtMjkuNTcsMCwxLjUxLDEuNTEsMCwwLDAtLjQ4LDIuMTFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NiwyNC42OCwyNC42OCwwLDAs''@;'; + put 'put ''MSwyNi4yNiwwLDEuNDksMS40OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwzMi43Niw5LjM4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTI4LjgyLDE1LjQ0YTIwLjU5LDIwLjU5LDAsMCwwLTIx''@;'; + put 'put ''LjcsMCwxLjUxLDEuNTEsMCwwLDAtLjQ2LDIuMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDE3LjQsMTcuNCwwLDAsMSwxOC4zNiwwLDEuNDksMS40OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwyOC44MiwxNS40NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0yNC44OCwyMS40OWExMy40MSwxMy40MSwwLDAsMC0xMy44MiwwLDEuNSwxLjUsMCwwLDAtLjQ2LDIuMDlsLjEuMTZhMS41MiwxLjUyLDAsMCwwLDIuMDYuNDQsMTAuMjcsMTAuMjcsMCwwLDEsMTAuNDIsMCwxLjUyLDEu''@;'; + put 'put ''NTIsMCwwLDAsMi4wNi0uNDVsLjEtLjE2QTEuNDksMS40OSwwLDAsMCwyNC44OCwyMS40OVoiLz5cbicpLGUuQ2xyU2hhcGVSYWNrU2VydmVyPSgwLGEuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVk''@;'; + put 'put ''IiB4PSIxMCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTE4LjY0LDExQTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTB2MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiBkPSJNMzMu''@;'; + put 'put ''NjgsMTUuNEgzMlYyMUg0VjE1SDIwLjU4QTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41Nkg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTQsMjlWMjNIMzJ2NloiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0''@;'; + put 'put ''Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIHg9IjYiIHk9IjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0iMTAiIHk9IjE3IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiB4PSI2IiB5PSIyNSIgd2lkdGg9IjIiIGhl''@;'; + put 'put ''aWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIGQ9Ik0xMCwxMUgyNHYtLjUxQTcuNDgsNy40OCwwLDAsMSwyMy4xMyw5SDEwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2Vk''@;'; + put 'put ''IiBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi42OC0uNUg0VjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDYsNy40NiwwLDAsMSwz''@;'; + put 'put ''MCwxMy41Wk00LDE1SDMydjZINFpNNCwyOVYyM0gzMnY2WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSI5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMTAiIHk9IjkiIHdpZHRo''@;'; + put 'put ''PSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC00IiB4PSIxMCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAs''@;'; + put 'put ''MCwwLDItMlY3QTIsMiwwLDAsMCwzMiw1Wk00LDdIMzJ2Nkg0Wm0wLDhIMzJ2Nkg0Wk00LDI5VjIzSDMydjZaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0x''@;'; + put 'put ''LS1hbGVydGVkIiBkPSJNMiwzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJN''@;'; + put 'put ''MTksOS44OSwxOS41Niw5SDEwVjdIMjAuNzFsMS43My0zSDRBMiwyLDAsMCwwLDIsNnY2SDE4LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5Wk04LDlINlY3SDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1h''@;'; + put 'put ''bGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTRIMnY4SDM0VjE1LjM4Wk04LDE5SDZWMTdIOFptMTYsMEgxMFYxN0gyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMiwxNHY4SDM0VjE0Wm02LDVINlYxN0g4Wm0xNiwwSDEwVjE3SDI0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0y''@;'; + put 'put ''LS1iYWRnZWQiIGQ9Ik0yLDMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNEgyWm04LTNIMjR2MkgxMFpNNiwyN0g4djJINloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMjMu''@;'; + put 'put ''MTMsOUgxMFY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjQ5LDcuNDksMCwwLDEsLjI4LTJINEEyLDIsMCwwLDAsMiw2djZIMjUuNTFBNy41Miw3LjUyLDAsMCwxLDIzLjEzLDlaTTgsOUg2VjdIOFoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yLDIySDM0VjE0SDJabTgtNUgyNHYySDEwWk02LDE3SDh2''@;'; + put 'put ''Mkg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2djZIMzRWNkEyLDIsMCwwLDAsMzIsNFpNOCw5SDZWN0g4Wk0yNCw5SDEwVjdIMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMiwzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4nKSxlLkNsclNoYXBlSGFyZERpc2s9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIwIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0''@;'; + put 'put ''ZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zNCwyMS4wOGwtMS40LTUuNjhIMzAuNTFsMS40OSw2VjI5SDRWMjEu''@;'; + put 'put ''NDRMNy4wNiw5aDEyLjVsMS4xNS0ySDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjEuMzFBMSwxLDAsMCwwLDM0LDIxLjA4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCww''@;'; + put 'put ''LDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iMjAiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJN''@;'; + put 'put ''MzQsMjEuMDgsMzIsMTMuMjFhNy40OSw3LjQ5LDAsMCwxLTIsLjI5bDIsNy45NFYyOUg0VjIxLjQ0TDcuMDYsOUgyMy4xM2E3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIsMjEuMDhhMSwxLDAsMCwwLDAsLjI0VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwy''@;'; + put 'put ''LDAsMCwwLDItMlYyMS4zMUExLDEsMCwwLDAsMzQsMjEuMDhaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNCwyMS4wOCwzMC44Niw4LjQzQTIsMiwwLDAsMCwyOC45NCw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMjEuMzFBMSwxLDAsMCwwLDM0LDIxLjA4Wk00LDI5VjIxLjQ0TDcuMDYsOUgyOC45M0wzMiwyMS40NFYyOVoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI2IiB5PSIyMCIgd2lkdGg9IjI0IiBo''@;'; + put 'put ''ZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJN''@;'; + put 'put ''MzIuNTgsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMyLDEzLjIxQTcuNDcsNy40NywwLDAsMSwyMi41Nyw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjg2LDguNDNBMiwyLDAsMCwwLDI4Ljk0LDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIuMjks''@;'; + put 'put ''MjBIMzMuNzFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMiwyMnY3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMlptMjgsNUgyNlYyNWg0WiIvPlxuJyksZS5DbHJTaGFwZUJhY2t1cFJlc3RvcmU9KDAs''@;'; + put 'put ''YS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3''@;'; + put 'put ''LDZWMTlhMSwxLDAsMSwwLDIsMFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMx''@;'; + put 'put ''LjU4LDE1LjRIMjkuNDZjMSwyLjg1LDIuMzEsNi4zNywyLjU0LDcuMDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCww''@;'; + put 'put ''LDItMlYyMi4zM0MzNCwyMi4xMiwzNCwyMiwzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4y''@;'; + put 'put ''OCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdl''@;'; + put 'put ''ZCIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMTMsOS45MiwxNyw2VjE5YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVhMSwxLDAsMCwwLC43MS4yOWwuMTEsMGE3LjQ2LDcuNDYsMCwwLDEtMS4yNS0zLjUyTDE4LDIu''@;'; + put 'put ''MTYsMTEuNjEsOC41QTEsMSwwLDAsMCwxMyw5LjkyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCww''@;'; + put 'put ''LDEsMjUuNTEsMTJIMjF2Mmg3Ljk1QzMwLDE2Ljk0LDMxLjcyLDIxLjY1LDMyLDIyLjQ4VjMwSDRWMjIuNDhDNC4yOCwyMS42NSw3LjA1LDE0LDcuMDUsMTRIMTVWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMiwyMiwyLDIyLjEsMiwyMi4zM1YzMGEyLDIsMCwwLDAsMiwySDMy''@;'; + put 'put ''YTIsMiwwLDAsMCwyLTJWMjIuMzNDMzQsMjIuMSwzNCwyMiwzMC44NywxMy40NVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0i''@;'; + put 'put ''MjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTEzLDkuOTIsMTcsNlYxOWExLDEsMCwxLDAsMiwwVjZsNCwzLjk1QTEsMSwwLDEsMCwyNC4zOCw4LjVMMTgsMi4x''@;'; + put 'put ''NiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXYyaDcuOTVDMzAsMTYuOTQsMzEuNzIsMjEu''@;'; + put 'put ''NjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0''@;'; + put 'put ''LDEzLjM3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDVIMjZWMjdoNFoiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMThhMSwxLDAsMSwwLDIsMFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyMi4yM0EzLjYyLDMuNjIsMCwwLDEsMjEsMTUuMTZWMThhMywzLDAsMSwxLTYsMFYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2''@;'; + put 'put ''LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgzMy45M0MzMy43OSwyMS40OSwzMy4yOCwyMC4wNywzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2''@;'; + put 'put ''Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDI0djZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw1SDI2VjI3aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0i''@;'; + put 'put ''TTEzLDkuOTIsMTcsNlYxOGExLDEsMCwxLDAsMiwwVjZsNCwzLjk1YTEsMSwwLDAsMCwuNzEuMjlsLjExLDBhNy40Niw3LjQ2LDAsMCwxLTEuMjUtMy41MkwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCwwLDEsMjUuNTEsMTJIMjF2NmEzLDMsMCwxLDEtNiwwVjEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgs''@;'; + put 'put ''Mi4yNCwyMS40MywyLjA3LDIySDMzLjkzQzMzLjc3LDIxLjQzLDMzLjE1LDE5LjcsMzAuODcsMTMuNDVaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2''@;'; + put 'put ''IiByPSI1Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMiwyNHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNFptMjgsNUgyNlYyN2g0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; + put 'put ''bGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXY2YTMsMywwLDEsMS02LDBWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMzMuOTNDMzMuNzcsMjEuNDMs''@;'; + put 'put ''MzMuMTQsMTkuNjksMzAuODQsMTMuMzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTMsOS45MiwxNyw2VjE4YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVBMSwxLDAsMSwwLDI0LjM4LDguNUwxOCwyLjE2LDExLjYxLDgu''@;'; + put 'put ''NUExLDEsMCwwLDAsMTMsOS45MloiLz5cbicpLGUuQ2xyU2hhcGVCYWNrdXA9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xOCwxOS44NGw0LjQ3LTQuNDRoLS4yM2EzLjY3LDMuNjcsMCwwLDEtMi0uNjFMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyOS40NmMxLDIuODUsMi4zMSw2LjM3LDIuNTQsNy4wOFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDkuNThhMywzLDAsMCwxLS4xNC0ySDcu''@;'; + put 'put ''MDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEyLDM0LDIyLDMxLjU4LDE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xOCwxOS44NGw2LjM4LTYu''@;'; + put 'put ''MzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0zMC44''@;'; + put 'put ''NywxMy40NWE3LjU1LDcuNTUsMCwwLDEtLjg3LjA1LDcuNDYsNy40NiwwLDAsMS0zLjM1LS44LDMsMywwLDAsMS0uMjQsMS4zaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQt''@;'; + put 'put ''Mkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg3LDEzLjQ1WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9''@;'; + put 'put ''IjIiLz48cmVjdCB4PSIyNiIgeT0iMjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIlxuICAgICAgICAgICAgICAgIGQ9Ik0zMC44NCwxMy4zN0ExLjk0LDEuOTQsMCwwLDAsMjguOTMs''@;'; + put 'put ''MTJIMjYuNTVhMywzLDAsMCwxLS4xNCwyaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQtMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIy''@;'; + put 'put ''LjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0LDEzLjM3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAs''@;'; + put 'put ''MSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTYuNTgsMjEuMjYsMTAu''@;'; + put 'put ''MiwxNC45MUEzLDMsMCwwLDEsOS40NCwxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgxNy4zM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFs''@;'; + put 'put ''ZXJ0ZWQiIGQ9Ik0yLDI0djZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw0SDI2VjI2aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMTguNjYsMjJIMzMuOTNj''@;'; + put 'put ''LS4xNS0uNTEtLjY1LTEuOTMtMi4zNS02LjZIMjUuM2wtNS44OSw1Ljg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTE4LDE5Ljg0bDQuNDctNC40NGgtLjIzYTMuNjQsMy42NCwwLDAs''@;'; + put 'put ''MS0yLS42MUwxOSwxNlY0YTEsMSwwLDEsMC0yLDBWMTZsLTQtMy45NWExLDEsMCwwLDAtMS40MSwxLjQyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEu''@;'; + put 'put ''MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTE2LjU4LDIxLjI2LDEwLjIsMTQuOTFBMywzLDAsMCwxLDkuNDQsMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMTcuMzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMTguNjYsMjJIMzMuOTNjLS4xNy0uNTctLjc5LTIuMy0zLjA2LTguNTVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNSw3LjQ2LDcuNDYsMCwwLDEtMy4zNS0uOCwzLDMsMCwwLDEtLjg2LDIuMjFsLTYuMzgsNi4zNVoiLz5cbiAgICAgICAgICAgIDxj''@;'; + put 'put ''aXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwxOS44''@;'; + put 'put ''NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTkuNDEsMjEuMjZsLS43''@;'; + put 'put ''NC43NEgzMy45M2MtLjE3LS41Ny0uNzktMi4zMS0zLjA5LTguNjNBMS45NCwxLjk0LDAsMCwwLDI4LjkzLDEySDI2LjU1YTMsMywwLDAsMS0uNzYsMi45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xNi41OCwyMS4y''@;'; + put 'put ''NiwxMC4yLDE0LjkxQTMsMywwLDAsMSw5LjQ0LDEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIySDE3LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTIs''@;'; + put 'put ''MjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbicpLGUuQ2xyU2hhcGVEZXZpY2VzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMTNIMjRhMiwyLDAs''@;'; + put 'put ''MCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDItMlYxNUEyLDIsMCwwLDAsMzIsMTNabTAsMlYyNkgyNFYxNVpNMjQsMzBWMjcuNmg4VjMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yMCwy''@;'; + put 'put ''Mkg0VjZIMjh2NWgyVjZhMiwyLDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMkgyMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjAsMjZIOWExLDEsMCwwLDAsMCwySDIwWiIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDEzSDI0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWMTVBMiwyLDAsMCwwLDMyLDEzWm0wLDJWMjhIMjRWMTVaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjgsNEg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMmg4djJIOS4zMkExLjIsMS4yLDAsMCwwLDgsMjdhMS4yLDEuMiwwLDAsMCwxLjMyLDFIMTkuOTJ2LS4zN0gyMFYyMkg0VjZIMjh2NWgy''@;'; + put 'put ''VjZBMiwyLDAsMCwwLDI4LDRaIi8+XG4nKSxlLkNsclNoYXBlS2V5Ym9hcmQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw4SDRhMiwyLDAsMCwwLTIsMlYyNmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAs''@;'; + put 'put ''MCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhabTAsMThINFYxMEgzMloiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjExIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE1IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdo''@;'; + put 'put ''dD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjE5IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTYiIHg9IjIzIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHg9IjciIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMTEiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0''@;'; + put 'put ''PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjE1IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTExIiB4PSIxOSIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIgeD0iMjMiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI3IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiB4PSIyNyIgeT0iMjIiIHdpZHRoPSIxLjk0''@;'; + put 'put ''IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgeD0iNyIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xNiIgeD0iMTEuMTMiIHk9IjIyIiB3aWR0aD0iMTMuNzUiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAs''@;'; + put 'put ''MCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFpNMTksMTNoMnYySDE5Wm0wLDRoMnYySDE5Wm0tNC00aDJ2MkgxNVptMCw0aDJ2MkgxNVptLTQtNGgydjJIMTFaTTksMjRIN1YyMkg5Wm0wLTVIN1YxN0g5Wm0wLTRIN1YxM0g5Wm0yLDJoMnYySDExWm0xMy44OCw3SDExLjEzVjIySDI0Ljg4Wk0y''@;'; + put 'put ''NSwxOUgyM1YxN2gyWm0wLTRIMjNWMTNoMlptMy45NCw5SDI3VjIyaDEuOTRaTTI5LDE5SDI3VjE3aDJabTAtNEgyN1YxM2gyWiIvPlxuJyksZS5DbHJTaGFwZU1vdXNlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBk''@;'; + put 'put ''PSJNMTgsMzRBMTAsMTAsMCwwLDEsOCwyNFYxMmExMCwxMCwwLDAsMSwyMCwwVjI0QTEwLDEwLDAsMCwxLDE4LDM0Wk0xOCw0YTgsOCwwLDAsMC04LDhWMjRhOCw4LDAsMCwwLDE2LDBWMTJBOCw4LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDE1YTEsMSwwLDAsMS0xLTFWMTBhMSwxLDAsMCwxLDIsMHY0QTEsMSwwLDAsMSwxOCwxNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTEwLDEwLDAsMCww''@;'; + put 'put ''LDgsMTJWMjRhMTAsMTAsMCwwLDAsMjAsMFYxMkExMCwxMCwwLDAsMCwxOCwyWm0xLjMsMTEuNDRhMS4zLDEuMywwLDAsMS0yLjYsMFYxMGExLjMsMS4zLDAsMCwxLDIuNiwwWiIvPlxuJyksZS5DbHJTaGFwZURhc2hib2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI1LjE4LDEyLjMybC01LjkxLDUuODFhMywzLDAsMSwwLDEuNDEsMS40Mmw1LjkyLTUuODFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCw0''@;'; + put 'put ''LjI1QTE2LjQ5LDE2LjQ5LDAsMCwwLDUuNCwzMS40bC4zLjM1SDMwLjNsLjMtLjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTExLjM0LDI1LjVINi42NmExNC40MywxNC40MywwLDAsMS0zLjExLTcuODRIN3YtMkgzLjU1QTE0LjQxLDE0LjQxLDAsMCwxLDcsMTEuMjlsMi40NSwyLjQ1''@;'; + put 'put ''LDEuNDEtMS40MUw4LjQzLDkuODdBMTQuNDEsMTQuNDEsMCwwLDEsMTcsNi4yOXYzLjVoMlY2LjNhMTQuNDcsMTQuNDcsMCwwLDEsMTMuNCwxMy42MUgyOC45MnYyaDMuNTNBMTQuNDMsMTQuNDMsMCwwLDEsMjkuMzQsMjkuNzVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTUuODUsMTguNjlhMywzLDAsMSwwLDQuODMuODVsNS45Mi01LjgxLTEuNDEtMS40MS01LjkxLDUuODFBMywzLDAsMCwwLDE1Ljg1LDE4LjY5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjU4LDEzYTcuNDUsNy40NSwwLDAsMS0yLjA2LjQ0LDE0LjQsMTQuNCwwLDAsMSwxLjkzLDYuNDNIMjguOTJ2MmgzLjUzYTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEsNy44NEg2LjY2''@;'; + put 'put ''YTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEtNy44NEg3di0ySDMuNTVBMTQuNDEsMTQuNDEsMCwwLDEsNywxMS4yOWwyLjQ1LDIuNDUsMS40MS0xLjQxTDguNDMsOS44N0ExNC40MSwxNC40MSwwLDAsMSwxNyw2LjI5djMuNWgyVjYuM0ExNC40MSwxNC40MSwwLDAsMSwyMi41OCw3YTcuNTIsNy41''@;'; + put 'put ''MiwwLDAsMS0uMDgtMSw3LjUyLDcuNTIsMCwwLDEsLjA5LTEuMDlBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw0LjI1QTE2LjQ5LDE2LjQ5LDAsMCwwLDUuNCwz''@;'; + put 'put ''MS40bC4zLjM1SDMwLjNsLjMtLjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTguNiw5LjQ4LTUuOTIsNS44MWEzLDMsMCwxLDEtMS40MS0xLjQybDUuOTEtNS44MVptLTIzLDYuMTdIN3YySDMuNTZjMC0uMzktLjA1LS43Ny0uMDUtMS4xN1MzLjUzLDIwLjE4LDMuNTUsMTkuOVptNC44''@;'; + put 'put ''OC0xMCwyLjQ2LDIuNDZMOS40NywxMy43NCw3LDExLjI5QTE0LjU3LDE0LjU3LDAsMCwxLDguNDMsOS44N1pNMTksOS43OUgxN1Y2LjI5Yy4zMiwwLC42MywwLDEsMHMuNywwLDEsLjA1Wk0zMi40OSwyMC43NGMwLC4zOSwwLC43OS0uMDUsMS4xN0gyOC45MnYtMmgzLjUzQzMyLjQ3LDIwLjE4''@;'; + put 'put ''LDMyLjQ5LDIwLjQ2LDMyLjQ5LDIwLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIuNTgsMTNhNy40Niw3LjQ2LDAsMCwxLTEwLTguMTJBMTYuNDksMTYuNDksMCwwLDAsNS40''@;'; + put 'put ''LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNlpNMTcsNi4yOWMuMzIsMCwuNjMsMCwxLDBzLjcsMCwxLC4wNXYzLjVIMTdaTTcsMjEuOTFIMy41NmMwLS4zOS0uMDUtLjc3LS4wNS0xLjE3czAtLjU2LDAtLjgzSDdabTIuNTEtOC4xNkw3LDExLjI5QTE0''@;'; + put 'put ''LjU3LDE0LjU3LDAsMCwxLDguNDMsOS44N2wyLjQ2LDIuNDZabTEwLjYyLDkuMTlhMywzLDAsMSwxLS44Mi00LjgxbDUuOTEtNS44MSwxLjQxLDEuNDEtNS45Miw1LjgxQTMsMywwLDAsMSwyMC4wOSwyMi45M1ptMTIuMzUtMUgyOC45MnYtMmgzLjUzYzAsLjI4LDAsLjU1LDAsLjgzUzMyLjQ3''@;'; + put 'put ''LDIxLjUyLDMyLjQ0LDIxLjkxWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbicpLGUuQ2xyU2hhcGVIb3N0PSgwLGEuY2xy''@;'; + put 'put ''SWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjQuM2EyLjQ4LDIuNDgsMCwxLDAsMi40OCwyLjQ3QTIuNDgsMi40OCwwLDAsMCwxOCwyNC4zWm0wLDMuNmExLjEzLDEuMTMsMCwxLDEsMS4xMy0xLjEyQTEuMTMsMS4xMyww''@;'; + put 'put ''LDAsMSwxOCwyNy45WiIvPjxyZWN0IHg9IjEzLjUiIHk9IjIwLjciIHdpZHRoPSI5IiBoZWlnaHQ9IjEuNDQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI1LjY1LDMuNkgxMC4zNUExLjM1LDEuMzUsMCww''@;'; + put 'put ''LDAsOSw0Ljk1VjMyLjRIMjdWNC45NUExLjM1LDEuMzUsMCwwLDAsMjUuNjUsMy42Wm0tLjQ1LDI3SDEwLjhWNS40SDI1LjJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjEyLjYiIHk9IjcuMiIgd2lkdGg9''@;'; + put 'put ''IjEwLjgiIGhlaWdodD0iMS40NCIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxMi42IiB5PSIxMC44IiB3aWR0aD0iMTAuOCIgaGVpZ2h0PSIxLjQ0Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIuOCwyLjgsMi44czIuOC0xLjIsMi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEu''@;'; + put 'put ''Mi0xLjIsMS4ycy0xLjItMC42LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjEzIiB5PSIyMSIg''@;'; + put 'put ''d2lkdGg9IjEwIiBoZWlnaHQ9IjEuNiIvPlxuICAgICAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBwb2ludHM9IjIxLjMsNiAxMiw2IDEyLDcuNiAyMC40LDcuNiIvPlxuICAgICAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMTIsMTEuNmg2LjZjMC0wLjYsMC4yLTEuMSwwLjQtMS42aC03VjExLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0yNiwxNS40VjMySDEwVjRoMTIuNWwxLjEtMkg5LjVDOC43LDIsOCwyLjcsOCwzLjVWMzRoMjBWMTUuNEgyNnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43''@;'; + put 'put ''LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIu''@;'; + put 'put ''OCwyLjgsMi44czIuOC0xLjIsMi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEuMi0xLjIsMS4ycy0xLjItMC42LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSIxMyIgeT0iMjEiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0yNCwxMC41Yy0wLjEtMC4yLTAuMi0wLjMtMC4zLTAuNUgxMnYxLjZoMTJWMTAuNXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9''@;'; + put 'put ''Ik0xMiw2djEuNmgxMC43Yy0wLjEtMC41LTAuMi0xLjEtMC4yLTEuNkgxMnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIGQ9Ik0yNiwxMi4zVjMySDEwVjRoMTIuOGMwLjItMC43LDAu''@;'; + put 'put ''NS0xLjQsMC45LTJIOS41QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjEzLjJDMjcuMywxMywyNi42LDEyLjcsMjYsMTIuM3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1i''@;'; + put 'put ''YWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNi41LDJoLTE3QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjMuNUMyOCwyLjcsMjcuMywyLDI2LjUsMnogTTE4LDMwLjVj''@;'; + put 'put ''LTEuNSwwLTIuOC0xLjItMi44LTIuOFMxNi41LDI1LDE4LDI1czIuOCwxLjIsMi44LDIuOFMxOS41LDMwLjUsMTgsMzAuNXogTTIzLDIyLjZIMTNWMjFoMTBWMjIuNnogTTI0LDExLjZIMTJWMTBoMTJWMTEuNnogTTI0LDcuNkgxMlY2aDEyVjcuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2ly''@;'; + put 'put ''Y2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjI3LjgiIHI9IjEuMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yMi4yLDE1LjNj''@;'; + put 'put ''LTIsMC0zLjctMS42LTMuNy0zLjdIMTJWMTBoNi45YzAtMC4xLDAuMS0wLjIsMC4xLTAuMmwxLjItMi4ySDEyVjZoOS4ybDIuMy00aC0xNEM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxNS4zSDIyLjJ6IE0xOCwzMC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgs''@;'; + put 'put ''MS4yLDIuOCwyLjhTMTkuNSwzMC41LDE4LDMwLjV6IE0yMywyMi42SDEzVjIxaDEwVjIyLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxbC01LjcsOS45Yy0wLjMsMC42LTAuMSwxLjQsMC41LDEuN2MwLjIsMC4xLDAuNCwwLjIsMC42LDAuMmgx''@;'; + put 'put ''MS40YzAuNywwLDEuMy0wLjYsMS4zLTEuM2MwLTAuMi0wLjEtMC40LTAuMi0wLjZMMjkuMSwxYy0wLjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuNywyNywwLjgsMjYuOSwxeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjQsMTAuM3YxLjJIMTJWMTBoMTEuOGMtMC41LTAuNy0wLjgtMS41LTEtMi40SDEyVjZoMTAuNWMwLDAsMC0wLjEsMC0wLjFjMC0xLjQsMC40LTIuNywxLjEtMy45SDkuNUM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxMy4xQzI2LjQsMTIuNiwyNSwx''@;'; + put 'put ''MS43LDI0LDEwLjN6IE0xOCwzMC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgsMS4yLDIuOCwyLjhTMTkuNSwzMC41LDE4LDMwLjV6TTIzLDIyLjZIMTNWMjFoMTBWMjIuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5''@;'; + put 'put ''PSI1LjkiIHI9IjUiLz5cbicpLGUuQ2xyU2hhcGVTdG9yYWdlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMsNi42OWgwYy0uMTgtMy40MS05LjQ3LTQuMzMtMTUtNC4zM1MzLDMuMjksMyw2Ljc4VjI5LjM3''@;'; + put 'put ''YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUtNC40M1Y2Ljc4czAsMCwwLDBTMzMsNi43LDMzLDYuNjlabS0yLDcuNTZjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDE1LjM0djIuMDhBNDMuMzIsNDMuMzIsMCwwLDAsMTgsMTguN2M0LDAs''@;'; + put 'put ''OS45My0uNDgsMTMtMnY1LjE3Yy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywyMi45MlYyNWE0My4zMiw0My4zMiwwLDAsMCwxMSwxLjI4YzQsMCw5LjkzLS40OCwxMy0ydjUuMWMtLjM1Ljg2LTUuMDgsMi40NS0xMywyLjQ1UzUuMywzMC4yLDUsMjkuMzdW''@;'; + put 'put ''Ni44MkM1LjMsNiwxMCw0LjM2LDE4LDQuMzZjNy43NywwLDEyLjQ2LDEuNTMsMTMsMi4zNy0uNTIuODctNS4yMSwyLjM5LTEzLDIuMzlBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdjNCwwLDkuOTMtLjQ4LDEzLTJaIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOS41MSw5LjA5LDE4LDkuMTFBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdoLjYxQTMuNjYsMy42Niww''@;'; + put 'put ''LDAsMSwxOSw5Ljg5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjguODMsMTUuNEEzOC4zNywzOC4zNywwLDAsMSwxOCwxNi43LDM3LjQ1LDM3LjQ1LDAsMCwxLDcsMTUu''@;'; + put 'put ''MzR2Mi4wOEE0My4zMyw0My4zMywwLDAsMCwxOCwxOC43YzQsMCw5LjkzLS40OCwxMy0ydjUuMTdjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDIyLjkyVjI1YTQzLjMzLDQzLjMzLDAsMCwwLDExLDEuMjhjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4xYy0uMzUu''@;'; + put 'put ''ODYtNS4wOCwyLjQ1LTEzLDIuNDVTNS4zLDMwLjIsNSwyOS4zN1Y2LjgyQzUuMyw2LDEwLDQuMzYsMTgsNC4zNmMxLjUsMCwyLjg5LjA2LDQuMTUuMTZsMS4xLTEuOWMtMS44Ni0uMTgtMy43LS4yNi01LjI1LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMzdjMCwzLjQ5LDkuNDMsNC40''@;'; + put 'put ''MywxNSw0LjQzczE1LS45MywxNS00LjQzdi0xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAs''@;'; + put 'put ''MCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdl''@;'; + put 'put ''ZCIgZD0iTTcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjcsNTQuODIsNTQuODIsMCwwLDAsNi4yLS4zNiw3LjUsNy41LDAsMCwxLTEuMTMtMS44OGMtMS41LjE1LTMuMi4yNC01LjA3LjI0QTM3LjYsMzcuNiwwLDAsMSw3LDcuNzZaIi8+XG4gICAgICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzEsMTMuNDN2LjgyYy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywxNS4zNHYyLjA4QTQzLjMzLDQzLjMzLDAsMCwwLDE4LDE4LjdjNCww''@;'; + put 'put ''LDkuOTMtLjQ4LDEzLTJ2NS4xN2MtLjMzLjg2LTUuMDYsMi40NS0xMywyLjQ1QTM3LjQ1LDM3LjQ1LDAsMCwxLDcsMjIuOTJWMjVhNDMuMzMsNDMuMzMsMCwwLDAsMTEsMS4yOGM0LDAsOS45My0uNDgsMTMtMnY1LjFjLS4zNS44Ni01LjA4LDIuNDUtMTMsMi40NVM1LjMsMzAuMiw1LDI5LjM3''@;'; + put 'put ''VjYuODJDNS4zLDYsMTAsNC4zNiwxOCw0LjM2YzEuNywwLDMuMjUuMDgsNC42NC4yYTcuNDQsNy40NCwwLDAsMSwuNjctMS45NGMtMS44OC0uMTgtMy43NS0uMjYtNS4zMS0uMjYtNS41NywwLTE1LC45My0xNSw0LjQzVjI5LjM3YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUt''@;'; + put 'put ''NC40M1YxMi44N0E3LjQ1LDcuNDUsMCwwLDEsMzEsMTMuNDNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NFY4LjU5Yy0uNDMsMi4yLTcsMy45NC0xNS4wOSwzLjk0QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzkuNCwz''@;'; + put 'put ''OS40LDAsMCwwLDExLjY2LDEuNTFDMjYsMTAuNTMsMzIuNTIsOC43OSwzMyw2LjYxaDBDMzIuOCwzLjIsMjMuNTIsMi4yOCwxOCwyLjI4UzMsMy4yMSwzLDYuNzFWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0LjA5QzMyLjU3LDI2LjI4LDI2LDI4LDE3''@;'; + put 'put ''LjkxLDI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4yNSwxOC43N3YtMkEzOS40LDM5LjQsMCww''@;'; + put 'put ''LDAsMTcuOTEsMTguMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE3LjkxLDIwLjI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDE4Ljc3di0yYTM5LjQsMzkuNCwwLDAsMCwxMS42''@;'; + put 'put ''NiwxLjUxYzYuOSwwLDEyLjctMS4yNywxNC41MS0zSDIyLjIzYTMuNjcsMy42NywwLDAsMS0zLjU1LTIuNzVoLS43N0EzOS40LDM5LjQsMCwwLDEsNi4yNSwxMVY5YTM5LjQsMzkuNCwwLDAsMCwxMS42NiwxLjUxaC44MkEzLjY0LDMuNjQsMCwwLDEsMTksOS43NWw0LjE3LTcuMjJjLTEuODUt''@;'; + put 'put ''LjE4LTMuNjgtLjI1LTUuMjEtLjI1LTUuNTcsMC0xNSwuOTMtMTUsNC40M1YyOS4yOWMwLDMuNDksOS40Myw0LjQzLDE1LDQuNDNzMTUtLjkzLDE1LTQuNDNWMjQuMDlDMzIuNTcsMjYuMjgsMjYsMjgsMTcuOTEsMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMjYuNTJ2LTJBMzkuNCwzOS40LDAs''@;'; + put 'put ''MCwwLDE3LjkxLDI2QzI2LDI2LDMyLjU3LDI0LjI4LDMzLDIyLjA5VjE2LjM0QzMyLjU3LDE4LjUzLDI2LDIwLjI4LDE3LjkxLDIwLjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktYWxlcnQiIGQ9Ik0yNi44NSwxbC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp''@;'; + put 'put ''ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NHYtMS42YTcuNDcsNy40NywwLDAsMS03LjM4LS44LDQ4LjMsNDguMywwLDAsMS03LjcxLjU5QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzku''@;'; + put 'put ''NCwzOS40LDAsMCwwLDExLjY2LDEuNTEsNTEsNTEsMCwwLDAsNi0uMzQsNy40Niw3LjQ2LDAsMCwxLS41OS03LjY1Yy0xLjg3LS4xOC0zLjczLS4yNi01LjI4LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0''@;'; + put 'put ''LjA5QzMyLjU3LDI2LjI4LDI2LDI4LDE3LjkxLDI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4y''@;'; + put 'put ''NSwxOC43N3YtMkEzOS40LDM5LjQsMCwwLDAsMTcuOTEsMTguMjhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNS44NiIgcj0iNSIvPlxuJyks''@;'; + put 'put ''ZS5DbHJTaGFwZUNsdXN0ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjM2LDhIMjcuNXYySDMxVjMwSDI3LjV2MkgzM1Y5LjY3QTEuNjUsMS42NSwwLDAsMCwzMS4zNiw4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik01LDEwSDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+PGVsbGlwc2UgY3g9IjE4LjAxIiBjeT0iMjUuOTkiIHJ4PSIxLjgiIHJ5PSIxLjc5IiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWNS42OEExLjY4LDEuNjgsMCwwLDAsMjQuMzIsNFpNMjQsMzBIMTJWNkgyNFoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5PSI5LjIxIiB3aWR0aD0iOSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxMEg4''@;'; + put 'put ''LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdWMzJIOC41VjMwSDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSw5Ljg5bC4zOS0uNjhIMTMuNXYxLjZoNS4xN0EzLjY1LDMuNjUsMCwwLDEsMTksOS44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQsMzBIMTJWNmg5LjI5bDEuMTUtMkgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42OFYzMkgyNlYxNS40SDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzEgMTUuNCAzMSAzMCAyNy41IDMwIDI3LjUgMzIgMzMgMzIgMzMgMTUuNCAzMSAxNS40IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRl''@;'; + put 'put ''ZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5''@;'; + put 'put ''PSI5LjIxIiB3aWR0aD0iOSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LDEwLjQ5VjMwSDEyVjZIMjIuNWE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhB''@;'; + put 'put ''MS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWMTIuMzRBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjQ5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsMTMuNDNWMzBIMjcuNXYy''@;'; + put 'put ''SDMzVjEyLjg3QTcuNDUsNy40NSwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zNiw4SDI3LjVWMzJIMzNWOS42N0ExLjY1LDEuNjUsMCwwLDAsMzEuMzYsOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAg''@;'; + put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zLDkuNjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUu''@;'; + put 'put ''NjhWMzJIMjZWNS42OEExLjY4LDEuNjgsMCwwLDAsMjQuMzIsNFpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik0zLDkuNjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuNSIgeT0iMTUuNCIgd2lkdGg9IjUu''@;'; + put 'put ''NSIgaGVpZ2h0PSIxNi42IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZhMy42OCwzLjY4LDAsMCwxLS4zMS0zSDEzVjloNi41NmwyLjg5LTVIMTEuNjhBMS42OCwxLjY4LDAs''@;'; + put 'put ''MCwwLDEwLDUuNjhWMzJIMjZWMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZaTTE4LDI3Ljc5QTEuNzksMS43OSwwLDEsMSwxOS44MSwyNiwxLjgsMS44LDAsMCwxLDE4LDI3Ljc5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxl''@;'; + put 'put ''cnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsOS42N1YzMkg4LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWMTIuMzRBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNlpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2''@;'; + put 'put ''LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi41LS40NFYzMkgzM1YxMi44''@;'; + put 'put ''N0E3LjQ3LDcuNDcsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVBcHBsaWNhdGlvbnM9KDAsYS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSA4IDE1IDggMTUgMTAgMjEgMTAgMjEgNCAxOSA0IDE5IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDQgMzAg''@;'; + put 'put ''OCAyNiA4IDI2IDEwIDMyIDEwIDMyIDQgMzAgNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBv''@;'; + put 'put ''aW50cz0iMzAgMTkgMjYgMTkgMjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUgMzAgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAg''@;'; + put 'put ''NCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgOCAxNSA4IDE1IDEwIDIxIDEwIDIxIDQgMTkgNCAxOSA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMTkgMTUgMTkgMTUgMjEgMjEgMjEgMjEgMTUgMTkgMTUgMTkgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIz''@;'; + put 'put ''MCAxOSAyNiAxOSAyNiAyMSAzMiAyMSAzMiAxNSAzMCAxNSAzMCAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYg''@;'; + put 'put ''OCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDMwIDE1IDMwIDE1IDMyIDIxIDMyIDIxIDI2IDE5IDI2IDE5IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMzAgMjYgMzAgMjYgMzIgMzIgMzIgMzIgMjYgMzAgMjYgMzAgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdl''@;'; + put 'put ''ZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCA4IDQgOCA0IDEwIDEw''@;'; + put 'put ''IDEwIDEwIDQgOCA0IDggOCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMTUgMzAgMTkgMjYgMTkgMjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUg''@;'; + put 'put ''MzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDhIMTV2Mmg0TDE5LDkuODksMjEsNi41VjRIMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtOC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNiIgeT0i''@;'; + put 'put ''NCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC04Ii8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cmVjdCB4PSIyNiIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVj''@;'; + put 'put ''dCB4PSI0IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxyZWN0IHg9IjI2IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMTBoNEwxOSw5Ljg5LDIxLDYuNVY0SDE1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtOC0tYWxlcnRlZCIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtOS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1z''@;'; + put 'put ''b2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IHg9IjE1IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxyZWN0IHg9IjI2IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktc29saWQtcGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUJ1aWxkaW5nPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS44OCwzSDYuMTJBMi4xMiwyLjEyLDAsMCwwLDQsNS4xMlYzM0gyMlY1LjEyQTIuMTIsMi4xMiww''@;'; + put 'put ''LDAsMCwxOS44OCwzWk0yMCwzMUgxN1YyOEg5djNINlY1LjEyQS4xMi4xMiwwLDAsMSw2LjEyLDVIMTkuODhhLjEyLjEyLDAsMCwxLC4xMi4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3Qg''@;'; + put 'put ''eD0iOCIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8cmVjdCB4PSI4IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRn''@;'; + put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhl''@;'; + put 'put ''aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTEwLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0i''@;'; + put 'put ''MjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cmVjdCB4PSIyNyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE1LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYmFk''@;'; + put 'put ''Z2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIi''@;'; + put 'put ''IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDEzLjQzVjMxSDIzdjJIMzNWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMjAtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjEzIiB3''@;'; + put 'put ''aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cmVjdCB4PSIxMiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1hbGVy''@;'; + put 'put ''dGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjIzIiB3aWR0aD0i''@;'; + put 'put ''MiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTEzLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJl''@;'; + put 'put ''Y3QgeD0iMjMiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAsMzFIMTdWMjhIOXYzSDZWNS4xMkEuMTIuMTIsMCwwLDEsNi4xMiw1SDE5Ljg4YS4xMi4xMiwwLDAsMSwuMTIuMTJWOC4yNGwyLTMuNDFBMi4xMiwy''@;'; + put 'put ''LjEyLDAsMCwwLDE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjE1LjM4YTMuNjgsMy42OCwwLDAsMS0yLS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHln''@;'; + put 'put ''b24gcG9pbnRzPSIzMSAxNS40IDMxIDMxIDIzIDMxIDIzIDMzIDMzIDMzIDMzIDE1LjQgMzEgMTUuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywx''@;'; + put 'put ''MUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWFsZXJ0ZWQgY2xyLWkt''@;'; + put 'put ''YWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSw4SDIyVjMzSDMzVjEwQTIsMiwwLDAsMCwzMSw4Wk0yNiwyNUgyNFYyM2gyWm0wLTVIMjRWMThoMlptMC01SDI0VjEzaDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJabTAtNUgyOFYxM2gyWiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDlabTAt''@;'; + put 'put ''NUg3VjhIOVptNCwxNUgxMVYyM2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTE3Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWMTQuNjRhMy42NywzLjY3LDAsMCwxLTEtNC43NmwxLTEuNjVWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDla''@;'; + put 'put ''bTAtNUg3VjhIOVptNCwxNUgxMVYyM2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0t''@;'; + put 'put ''YWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRsLS4yMywwVjMzSDMzVjE1LjRaTTI2LDI1SDI0VjIzaDJabTAtNUgyNFYxOGgyWm00LDVIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0y''@;'; + put 'put ''LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIOVYzMGg2djNoNVY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxNy44OCwzWk05LDI1''@;'; + put 'put ''SDdWMjNIOVptMC01SDdWMThIOVptMC01SDdWMTNIOVptMC01SDdWOEg5Wm00LDE1SDExVjIzaDJabTAtNUgxMVYxOGgyWm0wLTVIMTFWMTNoMlptMC01SDExVjhoMlptNCwxNUgxNVYyM2gyWm0wLTVIMTVWMThoMlptMC01SDE1VjEzaDJabTAtNUgxNVY4aDJaIiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMTVIMjhWMTMuMjJBNy41LDcuNSwwLDAsMSwyMi43OCw4SDIyVjMzSDMzVjEyLjg3QTcuNDcsNy40NywwLDAsMSwzMCwxMy41Wk0yNiwyNUgyNFYyM2gyWm0wLTVI''@;'; + put 'put ''MjRWMThoMlptMC01SDI0VjEzaDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDhIMjN2Mmg4VjMxSDIzdjJIMzNWMTBBMiwyLDAsMCwwLDMxLDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjUuMTJBMi4xMiwyLjEyLDAsMCwwLDE5Ljg4LDNaTTIwLDMxSDE3VjI4SDl2M0g2VjUuMTJBLjEyLjEyLDAsMCwxLDYuMTIsNUgxOS44OGEuMTIuMTIsMCwwLDEsLjEyLjEyWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIx''@;'; + put 'put ''MiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5''@;'; + put 'put ''PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEwIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2''@;'; + put 'put ''IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE3Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xOCIvPlxuICAgICAgICAgICAgPHJlY3Qg''@;'; + put 'put ''eD0iMjMiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTIwIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVDUFU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjA4LDIzLjA3aC0xMXYxLjVIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTEuMzNoLTEuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwxOC4xNWEuOC44LDAsMSwwLDAtMS42SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWOC4xQTIuMSwyLjEsMCwwLDAsMjcuOSw2SDI2LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEs''@;'; + put 'put ''MC0xLjYsMFY2aC01LjRWMy44YS44LjgsMCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDgu''@;'; + put 'put ''MSwzMGgyLjY1djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNFpNMjgsMjcuOWEuMS4x''@;'; + put 'put ''LDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhIMjcuOWEuMS4xLDAsMCwxLC4xLjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjA2LDI0LjU3SDIzLjgzYS43''@;'; + put 'put ''NS43NSwwLDAsMCwuNzUtLjc1VjExLjMzaC0xLjVWMjMuMDdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42''@;'; + put 'put ''SDMwVjEzLjVhNy40OSw3LjQ5LDAsMCwxLTItLjI4VjI3LjlhLjEuMSwwLDAsMS0uMS4xSDguMWEuMS4xLDAsMCwxLS4xLS4xVjguMUEuMS4xLDAsMCwxLDguMSw4SDIyLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkgxOS4zNVYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44YS44Ljgs''@;'; + put 'put ''MCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEuOC44LDAsMSww''@;'; + put 'put ''LDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41''@;'; + put 'put ''NUgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42SDMwVjE1LjRIMjhWMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhoMTJsMS4xNS0ySDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0x''@;'; + put 'put ''LjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBW''@;'; + put 'put ''MzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuMDYsMjQuNTdIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTUuNGgtMS41djcuNjdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIsMjMuNTVIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFYxNS40SDI1djguNDFBMS4xOCwxLjE4LDAsMCwxLDI0LDI1SDEzVjIzSDIzVjE1LjRoLS43N0Ez''@;'; + put 'put ''LjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZI''@;'; + put 'put ''NnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcu''@;'; + put 'put ''OVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEEx''@;'; + put 'put ''LjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDIz''@;'; + put 'put ''LjU1SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWMTMuNWE3LjQ2LDcuNDYsMCwwLDEtNS0xLjkyVjIzLjgxQTEuMTgsMS4xOCwwLDAsMSwyNCwyNUgxM1YyM0gyM1YxMWgxLjQyQTcuNDYsNy40NiwwLDAsMSwyMi41LDZIMTkuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40''@;'; + put 'put ''VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZIOC4xQTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJh''@;'; + put 'put ''LjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45VjI1LjE1aDIuMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDE4''@;'; + put 'put ''LjE1YS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFY4LjFBMi4xLDIuMSwwLDAsMCwyNy45LDZIMjYuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDgu''@;'; + put 'put ''MUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIu''@;'; + put 'put ''MmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMHYtNS40Wk0yNSwyMy44MUExLjE4LDEuMTgsMCwwLDEsMjQsMjVIMTNWMjNIMjNWMTFoMloiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZU1lbW9yeT0oMCxhLmNsckljb25TVkcpKCc8cmVjdCB4PSI4IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI0IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwyN0g0VjE3SDJWMjdhMiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NWgyLjI2VjI0SDE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMiw3SDRBMiwyLDAsMCwwLDIsOXY0SDRWOUgzMnY0aDJWOUEyLDIsMCwwLDAsMzIsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMjdIMTl2MkgzMmEyLDIsMCwwLDAsMi0y''@;'; + put 'put ''VjE3SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRl''@;'; + put 'put ''ZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LDI3SDRWMTdIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1LjU1aDIuMjZWMjRIMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTMyLDE3VjI3SDE5djJIMzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZBMy42NiwzLjY2LDAsMCwxLDE4LjU3LDEySDE2djho''@;'; + put 'put ''NFYxNC42NEEzLjY3LDMuNjcsMCwwLDEsMTksMTMuNTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjQiIHk9IjE1LjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjQuNiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMTkuNTZsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''Ni0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMjdINFYxN0gyVjI3''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVoMi4yNlYyNEgxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjI3SDE5djJIMzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyQTcuNDYsNy40NiwwLDAsMSwyNS41MSwxMkgyNHY4aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMjMuMTNhNy40NSw3LjQ1LDAsMCwxLS41NS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMTNWOWEyLDIsMCwwLDAtMi0ySDRBMiwyLDAsMCwwLDIs''@;'; + put 'put ''OXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN0gzMlYxM1pNMTIsMjBIOFYxMmg0Wm04LDBIMTZWMTJoNFptOCwwSDI0VjEyaDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNMzIsMTdWMTUuMDdIMjhWMjBIMjRWMTUuMDdIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjMxVjIwSDE2VjEyaDIuNjFBMy42OCwzLjY4LDAsMCwxLDE5LDkuNTVMMjAuNTIsN0g0QTIsMiwwLDAsMCwyLDl2NEg0djRIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1''@;'; + put 'put ''LjU1SDE5VjI5SDMyYTIsMiwwLDAsMCwyLTJWMTdaTTEyLDIwSDhWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NS44bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEu''@;'; + put 'put ''MSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNi44QTEuMjgsMS4yOCwwLDAsMCwyNi44NS44WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTMyLDE3VjEzLjIyYTcuMzMsNy4zMywwLDAsMS00LDBWMjBIMjRWMTJoMS41MWE3LjQ4LDcuNDgsMCwwLDEtMi45NC01SDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN1pNMTIsMjBIOFYxMmg0Wm04''@;'; + put 'put ''LDBIMTZWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVEYXRhQ2x1c3Rlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNSw0LjA4QzIyLjc3LDQuMDgsMTksNS40LDE5LDcuOTFWOS41YTE4Ljc1LDE4Ljc1LDAsMCwxLDIsLjJWNy45MWMwLS42NSwyLjA5LTEuODQsNS41''@;'; + put 'put ''LTEuODRTMzIsNy4yNywzMiw3LjkxVjE4LjI0YzAsLjU0LTEuNDYsMS40NC0zLjksMS43M3YyYzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEu''@;'; + put 'put ''NjcsNy45LDIyVjIwQzUuNDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0''@;'; + put 'put ''LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjE1LjIzQzI2LjY1LDEyLjczLDIyLjkzLDEwLjg1LDE4LDEwLjg1Wm02LjY1LDcuNjdjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43Niwx''@;'; + put 'put ''Mi43NiwwLDAsMCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIuMzhzLTYuNjUt''@;'; + put 'put ''MS40My02LjY1LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOHM2LjY1LDEuNDMsNi42NSwyLjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDE4LjI0VjcuOTFjMC0uNjUsMi4wOS0xLjg0''@;'; + put 'put ''LDUuNS0xLjg0UzE1LDcuMjcsMTUsNy45MVY5LjdhMTguNzUsMTguNzUsMCwwLDEsMi0uMlY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMlYyMEM1LjQ2LDE5LjY4LDQsMTguNzgsNCwxOC4yNFoiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuNjUsMTguNTJjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40''@;'; + put 'put ''NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIu''@;'; + put 'put ''MzhzLTYuNjUtMS40My02LjY1LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOGwuNzUsMGEzLjY5LDMuNjksMCwwLDEtLjA4LTJsLS42NiwwYy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4LjY1''@;'; + put 'put ''LTQuMzhWMTUuNGgtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNC44Yy0xLjc1LjYzLTMsMS42OC0zLDMuMTJWOS41bC4yNSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjIuODRjMCwuNTQtMS40NiwxLjQ0LTMuOSwxLjczdjJjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAs''@;'; + put 'put ''MCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3''@;'; + put 'put ''LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUuNDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTAuODVjLTQuOTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYxNS4yM0MyNi42NSwxMi43Mywy''@;'; + put 'put ''Mi45MywxMC44NSwxOCwxMC44NVptNi42NSw3LjY3Yy0uODUsMS0zLjQyLDItNi42NSwyQTE0LjQ5LDE0LjQ5LDAsMCwxLDE0LDIwdjEuNDZhMTYuMzMsMTYuMzMsMCwwLDAsNCwuNDcsMTIuNzYsMTIuNzYsMCwwLDAsNi42NS0xLjU2djMuMTJjLS44NSwxLTMuNDIsMi02LjY1LDJhMTQuNDks''@;'; + put 'put ''MTQuNDksMCwwLDEtNC0uNTN2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2Mi4yOWMwLC45NS0yLjY1LDIuMzgtNi42NSwyLjM4cy02LjY1LTEuNDMtNi42NS0yLjM4VjE1LjIzYzAtLjk1LDIuNjUtMi4zOCw2LjY1LTIuMzhzNi42NSwx''@;'; + put 'put ''LjQzLDYuNjUsMi4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDcuOTFjMC0uMzMuNTUtLjgsMS41NC0xLjE4LDAtLjI0LDAtLjQ4LDAtLjczYTcuNTIsNy41MiwwLDAsMSwu''@;'; + put 'put ''MTQtMS40MUMyMC41NSw1LjE5LDE5LDYuMywxOSw3LjkxVjkuNWExOC43NSwxOC43NSwwLDAsMSwyLC4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2NWMwLC41NC0x''@;'; + put 'put ''LjQ2LDEuNDQtMy45LDEuNzN2MmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1di01LjlBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIz''@;'; + put 'put ''MCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjUsNC4wOEMyMi43Nyw0LjA4LDE5LDUuNCwxOSw3LjkxVjkuNDhjNS4zLjI2LDksMi42''@;'; + put 'put ''LDksNS43NnY2LjdsLjA1LjA2YzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0z''@;'; + put 'put ''Ljc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4wOCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0xOCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjI1LjM4QTEzLjU4LDEzLjU4LDAsMCwxLDE4LDI4YTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyNS4yN2ExNC41LDE0LjUsMCwwLDAs''@;'; + put 'put ''NiwxLjE3YzQuMjEsMCw3LjY1LTEuMjMsOC42My0zLjIzVjIwLjQ3QzI0LjgsMjIsMjEuNzIsMjMsMTgsMjNhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjIwLjIzYTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4xMSw4LjYzLTMuMTFWMTUuMjNDMjYuNjUsMTIuNzMsMjIuOTMs''@;'; + put 'put ''MTAuODUsMTgsMTAuODVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4''@;'; + put 'put ''LDIxLjkzdi02LjdDOCwxMi4wOCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NmEzLjY4LDMuNjgsMCwwLDEtLjM5LTIuN2wtLjY2LDBjLTQu''@;'; + put 'put ''OTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYyNS4zOEExMy41OCwxMy41OCwwLDAsMSwxOCwyOGExNi43NywxNi43NywwLDAsMS02LTFWMjUuMjdhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAs''@;'; + put 'put ''Ny42NS0xLjIzLDguNjMtMy4yM1YyMC40N0MyNC44LDIyLDIxLjcyLDIzLDE4LDIzYTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyMC4yM2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1LTEuMTEsOC42My0zLjExVjE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDQuOGMtMS43NS42My0zLDEuNjgtMywzLjEyVjkuNDhsLjI3LDBaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgyOHY2LjUzbC4wNS4wNmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1VjE1LjM4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LDkuNDhWNy45MWMwLTIuNTItMy43Ny0zLjg0LTcuNS0zLjg0UzIsNS40LDIsNy45MVYxOC4yNEMyLDIwLjQsNC43NywyMS42Nyw3LjksMjJMOCwyMS45M3YtNi43QzgsMTIu''@;'; + put 'put ''MDgsMTEuNyw5Ljc0LDE3LDkuNDhaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEwLjg1Yy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42''@;'; + put 'put ''NSw0LjM4czguNjUtMS44OCw4LjY1LTQuMzhWMjUuMzhBMTMuNTgsMTMuNTgsMCwwLDEsMTgsMjhhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjI1LjI3YTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4yMyw4LjYzLTMuMjNWMjAuNDdDMjQuOCwyMiwyMS43MiwyMywxOCwyM2Ex''@;'; + put 'put ''Ni43NywxNi43NywwLDAsMS02LTFWMjAuMjNhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjExLDguNjMtMy4xMVYxNS4yM0MyNi42NSwxMi43MywyMi45MywxMC44NSwxOCwxMC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0t''@;'; + put 'put ''YmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2YTcuNTIsNy41MiwwLDAsMSwuMTQtMS40QzIwLjU1LDUuMTksMTksNi4zLDE5LDcuOTFWOS40OGExNS4zMywxNS4zMywwLDAsMSw1LDFBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNDlBNy40Nyw3LjQ3LDAsMCwxLDI3LjM1LDEzYTQsNCwwLDAsMSwuNywyLjIzdjYuN2wuMDUuMDZjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxMi4zM0E3LjQ2LDcuNDYsMCww''@;'; + put 'put ''LDEsMzAsMTMuNDlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI1Ljk5IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJh''@;'; + put 'put ''ZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxlLkNsclNoYXBlUmVzb3VyY2VQb29sPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy42OCwxNS40SDMxLjczYTE0LDE0LDAsMCwxLC4yMiwxLjZIMTcuNDlMOC4zLDI4LjA3QTE0LDE0LDAsMCwxLDIyLjA5LDQuNjJsMS0xLjc2''@;'; + put 'put ''QTE2LDE2LDAsMSwwLDM0LDE4YTE2LDE2LDAsMCwwLS4yMy0yLjYxWk0xOCwzMmExMy45MSwxMy45MSwwLDAsMS04LjE2LTIuNjVMMTguNDMsMTlIMzEuOTVBMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxl''@;'; + put 'put ''cnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTQsMThhMTQsMTQsMCwwLDEsMjcuOTUtMUgxNy40OUw4LjMsMjguMDdBMTQs''@;'; + put 'put ''MTQsMCwwLDEsNCwxOFpNMTgsMzJhMTMuOTEsMTMuOTEsMCwwLDEtOC4xNi0yLjY1TDE4LjQzLDE5SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4yLDEzLjRhMTMu''@;'; + put 'put ''OTEsMTMuOTEsMCwwLDEsLjc1LDMuNkgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsMjIuNjEsNC44YTcuNDMsNy40MywwLDAsMSwuNTgtMS45MiwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNBNy40Myw3LjQzLDAsMCwxLDMxLjIsMTMuNFpNMTgsMzJhMTMuOTEsMTMuOTEsMCwwLDEt''@;'; + put 'put ''OC4xNi0yLjY1TDE4LjQzLDE5SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguNTcsMzAuOUExNiwxNiwwLDAsMCwzMy45NSwxOUgxOC40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMy45NSwxN0ExNiwxNiwwLDEsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45NSwxN2ExNS45MSwxNS45MSwwLDAsMC0uODQtNC4xOCw3LjQ5LDcuNDksMCwwLDEtOS45Mi05Ljk0QTE2LDE2LDAsMCwwLDcsMjkuNkwxNy40OSwxN1oi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdl''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjk1LDE3YTE2LDE2LDAs''@;'; + put 'put ''MCwwLS4xOC0xLjYxSDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDQuMDYtN0ExNiwxNiwwLDAsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYu''@;'; + put 'put ''ODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVTaGllbGRDaGVjaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCww''@;'; + put 'put ''LDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVpNMzAsMTUuOTNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0y''@;'; + put 'put ''LS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLDNBNDcuNTQsNDcuNTQsMCwwLDAsMzAsOS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuODgsMTYuODdhMSwxLDAsMCwwLTEuNDEsMS40MWw2LDZMMjYuNCwxMy43N0ExLDEsMCwwLDAsMjUsMTIuMzNsLTkuNDcsOS4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMu''@;'; + put 'put ''NTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVptLTQuNTcsNi42NUwxNS41MSwyNC45LDkuMTksMTguNTdhMS40LDEuNCwwLDAsMSwyLTJMMTUuNTQsMjEsMjQuNzMsMTJhMS40LDEuNCwwLDEsMSwyLDJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVTaGllbGQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1''@;'; + put 'put ''YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEt''@;'; + put 'put ''MTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDE1LjR2LjUzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTNjMSwu''@;'; + put 'put ''NjQsMi4yLDEuMjcsMy40MywxLjg5bDEtMS43NGE0MS4xLDQxLjEsMCwwLDEtMy44OS0yLjE4TDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0''@;'; + put 'put ''LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAs''@;'; + put 'put ''MCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41djIuNDNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0Ni4xOSw0Ni4xOSwwLDAsMCw0LjUxLDIuNDJjMC0u''@;'; + put 'put ''MSwwLS4xOSwwLS4yOWE3LjQ5LDcuNDksMCwwLDEsLjIzLTEuODMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMu''@;'; + put 'put ''NjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; + put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCww''@;'; + put 'put ''LDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1Vjcu''@;'; + put 'put ''NTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMi40Myw0YTQxLjEsNDEuMSwwLDAsMS0zLjg5LTIuMThMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEt''@;'; + put 'put ''Ni4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS03LjI3LTkuMzMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0''@;'; + put 'put ''LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwx''@;'; + put 'put ''My41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWkt''@;'; + put 'put ''YmFkZ2UiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZVNoaWVsZFg9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0''@;'; + put 'put ''My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0x''@;'; + put 'put ''Mi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTIyLjgxLDEwLjc5LDE4LDE1LjYxbC00LjgxLTQuODFhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi41OSwxN2wtNC44MSw0LjgxYTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTguNDNsNC44MSw0LjgxYTEsMSwwLDAsMCwxLjQxLTEuNDFMMTkuNDEsMTdsNC44''@;'; + put 'put ''MS00LjgxYTEsMSwwLDAsMC0xLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwt''@;'; + put 'put ''LjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTI0LjUxLDIxLjU1YTEuNCwx''@;'; + put 'put ''LjQsMCwwLDEtMiwyTDE4LDE5bC00LjUzLDQuNTNhMS40MywxLjQzLDAsMCwxLTIsMCwxLjQsMS40LDAsMCwxLDAtMkwxNiwxN2wtNC41My00LjUzYTEuNCwxLjQsMCwxLDEsMi0yTDE4LDE1bDQuNTMtNC41M2ExLjQsMS40LDAsMCwxLDIsMkwyMCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; + put 'put ''bHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUltcG9ydD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsNEgxNC44N0w4LDEwLjg2VjE1aDJWMTMuNjFoNy42MVY2SDI4VjMwSDhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCww''@;'; + put 'put ''LDI4LDRaTTE2LDEySDEwdi0uMzJMMTUuNyw2SDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45NCwyNi4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDE5LDIybC01LjY4LTUuNjhhMSwxLDAsMCwwLTEuNDEs''@;'; + put 'put ''MS40MUwxNS4yLDIxSDNhMSwxLDAsMSwwLDAsMkgxNS4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwxOSwyMmwtNS42OC01LjY4YTEsMSwwLDAsMC0x''@;'; + put 'put ''LjQxLDEuNDFMMTUuMiwyMUgzYTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzBIOGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAs''@;'; + put 'put ''MCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAsMTMuNjFoNy42MVY2aDMuNjhsMS4xNS0ySDE0Ljg3TDgsMTAuODZWMTVoMlptMC0xLjkyTDE1LjcsNkgxNnY2''@;'; + put 'put ''SDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgs''@;'; + put 'put ''MTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEu''@;'; + put 'put ''NDEsMS40MUwxOSwyMmwtNS42OC01LjY4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTUuMiwyMUgzYTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwx''@;'; + put 'put ''My4yMlYzMEg4YTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDEzLjYx''@;'; + put 'put ''aDcuNjFWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjE1aDJabTAtMS45MkwxNS43LDZIMTZ2NkgxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0i''@;'; + put 'put ''MzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; + put 'put ''b2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw0SDE0Ljg3TDgsMTAuODZWMjFIMTUuMmwtMy4yNS0zLjI1YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTksMjJsLTUuNjgsNS42OGExLDEsMCwwLDEtMS40MS0xLjQxTDE1LjIzLDIzSDh2N2EyLDIsMCwwLDAsMiwySDI4YTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjgsNFpNMTYsMTJIMTB2LS4zMkwxNS42OSw2SDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsMjFhMSwxLDAsMSwwLDAsMkg4VjIxWiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; + put 'put ''LS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIy''@;'; + put 'put ''bC01LjY4LDUuNjhhMSwxLDAsMCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1LjRaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl''@;'; + put 'put ''cnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNMjIuNSw2YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIybC01LjY4LDUuNjhhMSwxLDAsMCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIs''@;'; + put 'put ''MCwwLDAsMi0yVjEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVFeHBvcnQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYsMTMuNjFoNy42MVY2SDI0djguMzhoMlY2YTIsMiwwLDAsMC0yLTJI''@;'; + put 'put ''MTAuODdMNCwxMC44N1YzMGEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJINlptMC0xLjkyTDExLjY5LDZIMTJ2Nkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAt''@;'; + put 'put ''MS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEs''@;'; + put 'put ''MCwwLDAtMS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik02LDEzLjYxaDcuNjFWNmg3LjY4bDEuMTUtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxl''@;'; + put 'put ''cnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAs''@;'; + put 'put ''MS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMTIuMzRhNy41Myw3LjUzLDAsMCwxLTItMS44NXYzLjg5aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDEzLjYxaDcuNjFWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEu''@;'; + put 'put ''NjksNkgxMnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''NC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjZhMiwyLDAsMCwwLTItMkgxMC44N0w0LDEwLjg2VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2''@;'; + put 'put ''LS4zMkwxMS42OSw2SDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwz''@;'; + put 'put ''NSwyMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMxLjE2LDIxSDI2djJoNS4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzUsMjJaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxMC44N0w0LDEwLjg2VjMwYTIsMiww''@;'; + put 'put ''LDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2LS4zMkwxMS42OSw2SDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu''@;'; + put 'put ''MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwzNSwyMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjEyLjM0QTcuNDYsNy40NiwwLDAsMSwyMi43OCw0SDEwLjg3TDQsMTAuODZWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjIzSDE4QTEsMSwwLDAsMSwxNywyMlpN''@;'; + put 'put ''MTIsMTJINnYtLjMyTDExLjY5LDZIMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxlLkNsclNoYXBlVXBsb2FkQ2xvdWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjMxLDEzYzAtLjEsMC0uMjEsMC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42''@;'; + put 'put ''LDYuMUE5Ljc0LDkuNzQsMCwwLDAsMS42LDE4LjQsOS42Miw5LjYyLDAsMCwwLDExLjI1LDI4SDE1VjI2SDExLjI1QTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjI2LDguMjYsMCwwLDEsOC40NSw4LDcuNzUsNy43NSwwLDAs''@;'; + put 'put ''MSwwLC44bC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCwzLjkzLTE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyMS44NUExLDEsMCwwLDAsMjMsMjAu''@;'; + put 'put ''MTRsLTUtNS01LDVhMSwxLDAsMCwwLDEuNDEsMS40MUwxNywxOVYzMS4yNWExLDEsMCwxLDAsMiwwVjE5bDIuNTcsMi41N0ExLDEsMCwwLDAsMjIuMjgsMjEuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIy''@;'; + put 'put ''LjI4LDIxLjg1QTEsMSwwLDAsMCwyMywyMC4xNGwtNS01LTUsNWExLDEsMCwwLDAsMS40MSwxLjQxTDE3LDE5VjMxLjI1YTEsMSwwLDEsMCwyLDBWMTlsMi41NywyLjU3QTEsMSwwLDAsMCwyMi4yOCwyMS44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4QTcuNzEsNy43MSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjgxLDguODEsMCwwLDEsMiwuMjVsMS0xLjhhMTAuOCwxMC44LDAsMCwwLTMuMDctLjQ1''@;'; + put 'put ''LDEwLjQ3LDEwLjQ3LDAsMCwwLTkuNiw2LjFBOS43NCw5Ljc0LDAsMCwwLDEuNiwxOC40LDkuNjIsOS42MiwwLDAsMCwxMS4yNSwyOEgxNVYyNkgxMS4yNUE3LjY2LDcuNjYsMCwwLDEsMy42LDE4LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDIxdjJoNS4zOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjEuODVBMSwxLDAsMCwwLDIzLDIwLjE0bC01LTUtNSw1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTcsMTlWMzEuMjVhMSwxLDAsMSwwLDIsMFYxOWwy''@;'; + put 'put ''LjU3LDIuNTdBMSwxLDAsMCwwLDIyLjI4LDIxLjg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAsLjA4LDAsLjE1''@;'; + put 'put ''LDAsLjIzbC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCw0LjU0LTE0LjU2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4''@;'; + put 'put ''QTcuNzEsNy43MSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4Ljc5LDguNzksMCwwLDEsMi42OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTku''@;'; + put 'put ''NzQsOS43NCwwLDAsMCwxLjYsMTguNCw5LjYyLDkuNjIsMCwwLDAsMTEuMjUsMjhIMTVWMjZIMTEuMjVBNy42Niw3LjY2LDAsMCwxLDMuNiwxOC4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNp''@;'; + put 'put ''cmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZURvd25sb2FkQ2xvdWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMw''@;'; + put 'put ''LjMxLDEzYzAtLjEsMC0uMjEsMC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5LjY1LDkuNjUsMCwwLDAsMTAuODksMjhhMywzLDAsMCwxLDAtMkE3LjY1LDcuNjUsMCwwLDEsMTEsMTAuNzRsLjY3LDAsLjIzLS42M2E4LjQzLDguNDMs''@;'; + put 'put ''MCwwLDEsOC01LjQsOC4yNiw4LjI2LDAsMCwxLDguNDUsOCw3Ljc1LDcuNzUsMCwwLDEsMCwuOGwtLjA4LjcyLjY1LjNBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4yOGE4LDgsMCwwLDAsMy45My0xNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAtMiwwVjI4Ljk0bC0yLjU3LTIuNTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyNi4wN2ExLDEsMCwwLDAtLjcxLjI5TDE5LDI4Ljk0VjE2LjY4YTEsMSwwLDEsMC0yLDBWMjguOTRsLTIuNTctMi41N0ExLDEsMCwwLDAsMTMsMjcuNzhsNSw1LDUtNWEx''@;'; + put 'put ''LDEsMCwwLDAtLjcxLTEuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljg3LDQuNjlhOC44MSw4LjgxLDAsMCwxLDIsLjI1bDEtMS44YTEwLjgsMTAuOCwwLDAsMC0zLjA3''@;'; + put 'put ''LS40NSwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzQTguNDMsOC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4yOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; + put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAs''@;'; + put 'put ''MjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAt''@;'; + put 'put ''MiwwVjI4Ljk0bC0yLjU3LTIuNTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuODcsNC42OWE4''@;'; + put 'put ''Ljc5LDguNzksMCwwLDEsMi42OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwu''@;'; + put 'put ''NjcsMCwuMjMtLjYzQTguNDMsOC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAs''@;'; + put 'put ''LjA4LDAsLjE1LDAsLjIzbC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjUuMDlhMywzLDAsMCwxLDAsMmgxLjI4YTgsOCwwLDAsMCw0LjU0LTE0LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; + put 'put ''ICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxlLkNsclNoYXBlUGx1Z2luPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0y''@;'; + put 'put ''OS44MSwxNkgyOVY4LjgzYTIsMiwwLDAsMC0yLTJIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIs''@;'; + put 'put ''MiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2Wm0yLjQxLDdBMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEsMTVINFY4LjgzaDlW''@;'; + put 'put ''N2EzLDMsMCwwLDEsMS0yLjIyQTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoOFYxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIv''@;'; + put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjgxLDE2SDI5di0uNkgyN1YxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjMsMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEs''@;'; + put 'put ''MTVINFY4LjgzaDlWN2EzLDMsMCwwLDEsMS0yLjIyQTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoLjY2TDIxLDYuNTlBNS4xMiw1LjEyLDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEz''@;'; + put 'put ''LDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUs''@;'; + put 'put ''MS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWMTMuNDNhNy40NSw3LjQ1LDAsMCwxLTItLjU1VjE4aDIuODFBMy4xMywzLjEzLDAs''@;'; + put 'put ''MCwxLDMzLDIwLjY5LDMsMywwLDAsMSwzMi4yMiwyMywzLDMsMCwwLDEsMzAsMjRIMjd2Ny44M0g0VjI1SDVhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsNC44MSwxNUg0VjguODNoOVY3YTMsMywwLDAsMSwxLTIuMjJBMywzLDAsMCwxLDE2LjMxLDQsMy4xMywzLjEzLDAsMCwx''@;'; + put 'put ''LDE5LDcuMTlWOC44M2g0LjA2YTcuNDQsNy40NCwwLDAsMS0uNTEtMkgyMUE1LjE0LDUuMTQsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwy''@;'; + put 'put ''M0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxj''@;'; + put 'put ''aXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWOC44M2EyLDIsMCwwLDAtMi0ySDIxQTUuMTQsNS4x''@;'; + put 'put ''NCwwLDAsMCwxNi41MSwyLDUsNSwwLDAsMCwxMSw2LjgzSDRhMiwyLDAsMCwwLTIsMlYxN0g0LjgxQTMuMTMsMy4xMywwLDAsMSw4LDE5LjY5LDMsMywwLDAsMSw3LjIyLDIyLDMsMywwLDAsMSw1LDIzSDJ2OC44M2EyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMjZoMWE1LDUsMCww''@;'; + put 'put ''LDAsNS01LjUxQTUuMTUsNS4xNSwwLDAsMCwyOS44MSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS44MSwxNkgyOXYtLjZIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEsNi41OUE1LjEyLDUuMTIs''@;'; + put 'put ''MCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCww''@;'; + put 'put ''LDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMu''@;'; + put 'put ''NjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjku''@;'; + put 'put ''ODEsMTZIMjlWMTMuNDNhNy41LDcuNSwwLDAsMS02LjQ1LTYuNTlIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNI''@;'; + put 'put ''MnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUg''@;'; + put 'put ''Y3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUZsb3BweT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcuMzYsNEg2QTIsMiwwLDAs''@;'; + put 'put ''MCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjguNzhaTTI1LDMwSDExVjIySDI1Wm01LDBIMjdWMjJhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhINlY2aDR2NmEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJIMTJWNkgyNi41MUwzMCw5LjU5WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWgwVjMwSDI3VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0xLjY4bC0u''@;'; + put 'put ''NDMtLjNIMTJWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNSwzMEgxMVYyMkgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0zMCwxNS40VjMwSDI3VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMmg3LjM1YTMuNTQsMy41NCwwLDAsMS0uNzctMkgxMlY2aDkuMjlsMS4xNS0ySDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAs''@;'; + put 'put ''MCwyLTJWMTUuNFpNMjUsMzBIMTFWMjJIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; + put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; + put 'put ''Ny4zNiw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWOC43OFpNMjYsMzBIMTBWMjEuNUExLjUsMS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41Wk0yNCwxNEgxMmEyLDIsMCwwLDEtMi0yVjZoMnY2SDI2QTIsMiwwLDAs''@;'; + put 'put ''MSwyNCwxNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDYsNy40NiwwLDAsMS00LTEuMThBMiwyLDAsMCwxLDI0LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZIMjUuNTRhNy40NSw3LjQ1LDAsMCwx''@;'; + put 'put ''LTIuNzYtOEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNiwzMEgxMFYyMS41QTEuNSwxLjUsMCwwLDEsMTEuNSwyMGgxM0ExLjUsMS41LDAsMCwxLDI2LDIxLjVaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZoNi41OEEzLjY3LDMuNjcsMCwwLDEsMTksOS44OUwyMi40NSw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFpN''@;'; + put 'put ''MjYsMzBIMTBWMjEuNUExLjUsMS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIv''@;'; + put 'put ''PlxuICAgICAgICAnKSxlLkNsclNoYXBlQ29tcHV0ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI5LjYgMjIuODggOS42IDEwLjYgMjQuNCAxMC42IDI1Ljk4IDkgOCA5IDggMjIuODggOS42IDIyLjg4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYsN0gzMFYyM2gyVjYuNUExLjUsMS41LDAsMCwwLDMwLjUsNUg1LjVBMS41LDEuNSwwLDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0xLDI1djMuNEEyLjYsMi42LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41NmEuNi42LDAsMCwxLS42LS42VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEu''@;'; + put 'put ''NS0xSDMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDI1djMuNEEyLjYsMi42LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41''@;'; + put 'put ''NmEuNi42LDAsMCwxLS42LS42VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEuNS0xSDMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik05LjYsMjIuODhWMTAuNmg5LjE0QTMuNjQsMy42NCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIOFYyMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNiw3SDIwLjcxbDEu''@;'; + put 'put ''MTUtMkg1LjVBMS41LDEuNSwwLDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjMwIiB5PSIxNS40IiB3aWR0aD0iMiIgaGVpZ2h0PSI3LjYiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRB''@;'; + put 'put ''MS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEsMjV2My40QTIuNiwyLjYsMCwwLDAsMy42LDMxSDMyLjM0YTIu''@;'; + put 'put ''NiwyLjYsMCwwLDAsMi42LTIuNlYyNVptMzIsMy40YS42LjYsMCwwLDEtLjYuNkgzLjU2YS42LjYsMCwwLDEtLjYtLjZWMjYuNTNoOS45NWExLjY0LDEuNjQsMCwwLDAsMS41LDFoNy4xM2ExLjY0LDEuNjQsMCwwLDAsMS41LTFIMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZhNy41Miw3LjUyLDAsMCwxLC4wNy0xSDUuNUExLjUsMS41LDAsMCwwLDQsNi41VjIzSDZWN0gyMi41N0E3LjUyLDcuNTIsMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; + put 'put ''LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNVYyM2gyVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2Vk''@;'; + put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMTMsOUg4VjIyLjg4SDkuNlYxMC42SDI0LjA4QTcuNDksNy40OSwwLDAsMSwyMy4xMyw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; + put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0x''@;'; + put 'put ''LjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcsMTBIMjlWMjRoM1Y3LjU3QTEu''@;'; + put 'put ''NTQsMS41NCwwLDAsMCwzMC41LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44MSwyNmMtLjM1LjktLjk0LDEuNS0xLjYxLDEuNUgxMy43NGMtLjY4LDAt''@;'; + put 'put ''MS4yNi0uNi0xLjYxLTEuNUgxdjEuNzVBMi40NSwyLjQ1LDAsMCwwLDMuNiwzMEgzMi40QTIuNDUsMi40NSwwLDAsMCwzNSwyNy43NVYyNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI5''@;'; + put 'put ''IiB5PSIxNS40IiB3aWR0aD0iMyIgaGVpZ2h0PSI4LjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDEwSDE5TDE5LDkuODksMjEuMjksNkg1LjVBMS41NCwxLjU0LDAsMCwwLDQsNy41''@;'; + put 'put ''N1YyNEg3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwx''@;'; + put 'put ''MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEs''@;'; + put 'put ''MS41SDEzLjc0Yy0uNjgsMC0xLjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgIDxwYXRoIGQ9Ik03LDEwSDIzLjY2QTcuNDYsNy40NiwwLDAsMSwyMi41LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIs''@;'; + put 'put ''MTMuMjJhNy4xNCw3LjE0LDAsMCwxLTMsLjJWMjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1p''@;'; + put 'put ''LXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVEaXNwbGF5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAs''@;'; + put 'put ''MCwzNCwyNS41VjQuNUExLjUsMS41LDAsMCwwLDMyLjUsM1pNMzIsMjVINFY1SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNy43IDguNzYgMjguMTMgOC43NiAyOS45NCA3LjE2IDYuMSA3LjE2''@;'; + put 'put ''IDYuMSAyMyA3LjcgMjMgNy43IDguNzYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4x''@;'; + put 'put ''NywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42''@;'; + put 'put ''MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; + put 'put ''PSJNMzMuNjgsMTUuNEgzMlYyNUg0VjVIMjEuODdMMjMsM0gzLjVBMS41LDEuNSwwLDAsMCwyLDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCwwLDM0LDI1LjVWMTUuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''Mi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3LjcgMjMgNy43IDguNzYgMTkuNyA4Ljc2IDIwLjYyIDcuMTYgNi4xIDcuMTYgNi4xIDIzIDcuNyAyMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQi''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; + put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4y''@;'; + put 'put ''LDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYuMSwyM0g3LjdWOC43NkgyM2E3LjQ0LDcuNDQsMCwwLDEtLjQzLTEuNkg2LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0zMiwxMy4yMlYyNUg0VjVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjQuNUExLjUsMS41LDAsMCwwLDMyLjUs''@;'; + put 'put ''M1pNMzEsMjEuODNINVY3SDMxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMySDI0LjI2YTMuNjEsMy42MSwwLDAsMS0xLjUtMi41MlYyOC4xM0gxMy4yNFYyOS41QTMuNjEsMy42MSwwLDAsMSwxMS43NCwzMkg5''@;'; + put 'put ''Ljk0YTEsMSwwLDEsMCwwLDJIMjYuMDZhLjkyLjkyLDAsMCwwLDEtMUExLDEsMCwwLDAsMjYsMzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMXY2LjQzSDVWN0gy''@;'; + put 'put ''MC43MUwyMywzSDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxNS4zOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; + put 'put ''YXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45Miww''@;'; + put 'put ''LDAsMCwxLTFBMSwxLDAsMCwwLDI2LDMyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSwxMy40M3Y4LjQxSDVWN0gyMi41N2E3LjI5LDcuMjksMCwwLDEsLjU1LTRIMy41QTEuNSwxLjUs''@;'; + put 'put ''MCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjEyLjM0QTcuNDQsNy40NCwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVUZXJtaW5hbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNUg0QTIs''@;'; + put 'put ''MiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsN0gzMlY5LjJINFpNNCwyOVYxMC44SDMyVjI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIx''@;'; + put 'put ''NyIgeT0iMjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDE1LjY4IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcg''@;'; + put 'put ''MTMuNDggNyAxNS42OCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcgMTMuNDggNyAxNS42OCAxMy43OSAxOC44IDcgMjEuOTEgNyAyNC4xMSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYyOUg0VjEwLjhIMTguNjhBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsLjQtLjY5SDRWN0gyMC43MWwxLjE1LTJINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDIt''@;'; + put 'put ''MlYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwz''@;'; + put 'put ''NC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTciIHk9IjIzIiB3aWR0aD0i''@;'; + put 'put ''NiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcgMjQuMTEgMTYuNiAxOS43IDE2LjYgMTcuODkgNyAxMy40OCA3IDE1LjY4IDEzLjc5IDE4LjggNyAy''@;'; + put 'put ''MS45MSA3IDI0LjExIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMjlINFYxMC44SDI0LjI0YTcuNTEsNy41MSwwLDAsMS0xLTEuNkg0VjdIMjIuNTdhNy41Miw3LjUy''@;'; + put 'put ''LDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw1SDRBMiwy''@;'; + put 'put ''LDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNi44LDE1LjgxVjEzLjE3bDEwLDQuNTl2Mi4wOGwtMTAsNC41OVYyMS43OGw2LjUxLTNaTTIzLjQsMjUuNEgxN1YyM2g2LjRaTTQsOS4yVjdIMzJWOS4yWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bC40LS42OUg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwy''@;'; + put 'put ''LTJWMTUuMzhaTTE2LjgsMTkuODNsLTEwLDQuNTlWMjEuNzhsNi41MS0zLTYuNTEtM1YxMy4xN2wxMCw0LjU5Wm02LjYsNS41N0gxN1YyM2g2LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; + put 'put ''ZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNi43OC00LjNINFY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAs''@;'; + put 'put ''MCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuOCwxOS44M2wtMTAsNC41OVYyMS43OGw2LjUxLTMtNi41MS0zVjEzLjE3bDEwLDQuNTlabTYuNiw1LjU3SDE3VjIzaDYuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVDb2RlPSgw''@;'; + put 'put ''LGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTYuNTMtNC40NUExLDEsMCwxLDAsMjIuNTUsMTRsNS4zMiwzLjYzLTUuMzIsMy42M2ExLDEsMCwwLDAsMS4xMywxLjY1bDYuNTMtNC40NWExLDEsMCwwLDAs''@;'; + put 'put ''MC0xLjY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsOS44M2EuOS45LDAsMCwwLTEuMDkuNjZMMTUuNDEsMjQuMjlhLjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhs''@;'; + put 'put ''My40NC0xMy44MUEuOS45LDAsMCwwLDE5Ljk0LDkuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYu''@;'; + put 'put ''NTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguNTYs''@;'; + put 'put ''MTEuNjIsMTUuNDEsMjQuMjlhLjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhMMTkuNzMsMTQuNGEzLjU5LDMuNTksMCwwLDEtMS4xNi0yLjc5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTItMS4zOEgyNC42NGwzLjI0LDIuMjEtNS4zMiwzLjYzYTEsMSwwLDAsMCwxLjEzLDEuNjVsNi41My00LjQ1YTEsMSwwLDAsMCwwLTEuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEs''@;'; + put 'put ''MCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjIxLDE2Ljc4bC02LjUzLTQu''@;'; + put 'put ''NDVBMSwxLDAsMSwwLDIyLjU1LDE0bDUuMzIsMy42My01LjMyLDMuNjNhMSwxLDAsMCwwLDEuMTMsMS42NWw2LjUzLTQuNDVhMSwxLDAsMCwwLDAtMS42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0xOS45NCw5LjgzYS45LjksMCwwLDAtMS4wOS42NkwxNS40MSwyNC4yOWEuOS45LDAsMCwwLC42NiwxLjA5bC4yMiwwYS45LjksMCwwLDAsLjg3LS42OGwzLjQ0LTEzLjgxQS45LjksMCwwLDAsMTkuOTQsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksZS5DbHJT''@;'; + put 'put ''aGFwZUFwcGxpY2F0aW9uPSgwLGEuY2xySWNvblNWRykoJzxyZWN0IHg9IjUiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdo''@;'; + put 'put ''dD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMyIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTQsNkgzMnY0LjJINFpNNCwzMFYxMS44SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRabTAsNi4ySDRWNkgzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVj''@;'; + put 'put ''dCB4PSI1IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''MyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlQmF0dGVyeT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguNTks''@;'; + put 'put ''MTEuNzdhMSwxLDAsMCwwLTEuNzMsMWwyLjUsNC4zNC02LjA3LTEsNS4yOSwxMC41OWExLDEsMCwwLDAsMS43OS0uODlsLTMuNTMtNy4wOCw2LjM4LDEuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNS4x''@;'; + put 'put ''Miw0SDIzVjMuNThBMS41OCwxLjU4LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAsMCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWNS44OEEx''@;'; + put 'put ''Ljg4LDEuODgsMCwwLDAsMjUuMTIsNFpNMjUsMzJIMTFWNmg0VjRoNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC41OSwxMS43N2ExLDEsMCwwLDAtMS43MywxbDIuNSw0LjM0LTYuMDctMSw1LjI5''@;'; + put 'put ''LDEwLjU5YTEsMSwwLDAsMCwxLjc5LS44OWwtMy41My03LjA4LDYuMzgsMS4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4''@;'; + put 'put ''LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTI1LDE1LjRWMzJIMTFWNmg0VjRoNlY2aC4yOGwxLjY0LTIuODVBMS41NywxLjU3LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAs''@;'; + put 'put ''MCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjU5LDExLjc3YTEsMSwwLDAsMC0xLjczLDFsMi41LDQuMzQtNi4wNy0xLDUuMjksMTAuNTlhMSwxLDAsMCwwLDEuNzktLjg5bC0z''@;'; + put 'put ''LjUzLTcuMDgsNi4zOCwxLjA2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDExLjU4VjMySDExVjZoNFY0aDZWNkgyMi41QTcuNDcsNy40NywwLDAsMSwyMywzLjM4LDEuNTcs''@;'; + put 'put ''MS41NywwLDAsMCwyMS40MiwySDE0LjU4QTEuNTgsMS41OCwwLDAsMCwxMywzLjU4VjRIMTAuODhBMS44OCwxLjg4LDAsMCwwLDksNS44OFYzMi4xMkExLjg4LDEuODgsMCwwLDAsMTAuODgsMzRIMjUuMTJBMS44OCwxLjg4LDAsMCwwLDI3LDMyLjEyVjEyLjg3QTcuNSw3LjUsMCwwLDEsMjUs''@;'; + put 'put ''MTEuNThaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNFYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAs''@;'; + put 'put ''MCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NHYtMjhBMS4wOSwxLjA5LDAsMCwwLDI2LDRaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdM''@;'; + put 'put ''MTYuOSwxOC43WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEEx''@;'; + put 'put ''LjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42NiwzLjY2LDAsMCwxLDIwLjU1LDE1bDIuNzYs''@;'; + put 'put ''NC43OUwxNi45LDE4LjdsMy4zNiw2LjczYTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmwuMDkuMTVBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgyMlYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41''@;'; + put 'put ''OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NFYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMjJWMi42MkEuNi42''@;'; + put 'put ''LDAsMCwwLDIxLjQyLDJIMTQuNThhLjYuNiwwLDAsMC0uNTguNjJWNEgxMEExLjA5LDEuMDksMCwwLDAsOSw1LjA3djI4QTEsMSwwLDAsMCwxMCwzNEgyNmExLDEsMCwwLDAsMS0uOTRWMTIuODdBNy41LDcuNSwwLDAsMSwyMi41LDZaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwx''@;'; + put 'put ''LjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdMMTYuOSwxOC43WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVNb2JpbGU9KDAsYS5j''@;'; + put 'put ''bHJJY29uU1ZHKSgnPHBhdGggZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAsMiwySDI1YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjUsNFpNMTEsNkgyNVYyNEgxMVptMCwyNFYyNkgyNXY0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAs''@;'; + put 'put ''MiwySDI1YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjUsNFpNMTksMzBIMTdWMjhoMlptLTgtNFY2SDI1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZVRhYmxldD0oMCxhLmNsckljb25TVkcpKCc8cmVjdCB4''@;'; + put 'put ''PSIxNyIgeT0iMjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDJINkEyLDIsMCwwLDAsNCw0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY0QTIsMiww''@;'; + put 'put ''LDAsMCwzMCwyWm0wLDJWMjYuMzhINlY0Wk02LDMyVjI4SDMwdjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwySDZBMiwyLDAsMCwwLDQsNFYzMmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJW''@;'; + put 'put ''NEEyLDIsMCwwLDAsMzAsMlpNMTksMzJIMTdWMzBoMlpNNiwyOFY0SDMwVjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZU5ldHdvcmtHbG9iZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNTgsMzJoLTE4''@;'; + put 'put ''YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1LDJhMTQsMTQsMCwwLDAtMTQsMTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEs''@;'; + put 'put ''MCwxNy43NSwyWm0wLDJhMTIsMTIsMCwwLDEsOC40NCwzLjQ4YzAsLjMzLDAsLjY2LDAsMUExOC41MSwxOC41MSwwLDAsMCwxNCw4LjUzYTIuMzMsMi4zMywwLDAsMC0xLjE0LS42MWwtLjI1LDBjLS4xMi0uNDItLjIzLS44NC0uMzItMS4yN3MtLjE0LS44MS0uMTktMS4yMkExMS45MiwxMS45''@;'; + put 'put ''MiwwLDAsMSwxNy43NSw0Wm0tMyw1Ljg3QTE3LDE3LDAsMCwxLDI1LjkyLDEwYTE2LjksMTYuOSwwLDAsMS0zLjExLDcsMi4yOCwyLjI4LDAsMCwwLTIuNTguNTdjLS4zNS0uMi0uNy0uNC0xLS42M2ExNiwxNiwwLDAsMS00LjkzLTUuMjMsMi4yNSwyLjI1LDAsMCwwLC40Ny0xLjc3Wm0tNC0z''@;'; + put 'put ''LjZjMCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDEx''@;'; + put 'put ''Ljk0LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4yNy44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCww''@;'; + put 'put ''LDAsMS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQzLDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSww''@;'; + put 'put ''LDAsMCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4Wm02LjUxLTguOWEyLjMzLDIuMzMsMCwwLDAtLjMzLTEuMTksMTguNCwxOC40LDAsMCwwLDMuMzktNy4zN3EuNzUuMzUsMS40OC43OGExMiwxMiwwLDAsMSwuNDIsOC4yQTE2LDE2LDAsMCwxLDI0LjI3LDE5LjExWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1h''@;'; + put 'put ''bGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjczLDE1LjRoLTJjMCwuMiwwLC40LDAsLjYxYTEyLDEyLDAsMCwxLS41MywzLjUyLDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC44NywxOC44NywwLDAsMCwxLjYyLTIuNTJIMjMuODNhMTcu''@;'; + put 'put ''MjksMTcuMjksMCwwLDEtMSwxLjU0LDIuMjgsMi4yOCwwLDAsMC0yLjU4LjU3Yy0uMzUtLjItLjctLjQtMS0uNjNhMTYsMTYsMCwwLDEtNC45My01LjIzLDIuMjUsMi4yNSwwLDAsMCwuNDctMS43N0ExNy4wOCwxNy4wOCwwLDAsMSwxOS41Niw5bC44Ny0xLjUxYTE4LjU5LDE4LjU5LDAsMCww''@;'; + put 'put ''LTYuMzksMSwyLjMzLDIuMzMsMCwwLDAtMS4xNC0uNjFsLS4yNSwwYy0uMTItLjQyLS4yMy0uODQtLjMyLTEuMjdzLS4xNC0uODEtLjE5LTEuMjJBMTEuODgsMTEuODgsMCwwLDEsMjIsNC43OUwyMywzQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwx''@;'; + put 'put ''NCwwLDAsMCwzMS43NiwxNkMzMS43NiwxNS44LDMxLjc0LDE1LjYsMzEuNzMsMTUuNFptLTIxLTkuMTNjMCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43''@;'; + put 'put ''Niw2LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40''@;'; + put 'put ''MS4yNy44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAsMS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4''@;'; + put 'put ''LjQzLDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAsMCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; + put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; + put 'put ''LTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS41LDEzLjM1YTcuNTQsNy41NCwwLDAsMS0xLjUuMTVsLS41MSwwYTExLjkxLDExLjkxLDAsMCwxLS4yNSw2LDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC41OSwxOC41OSwwLDAsMCwy''@;'; + put 'put ''Ljc4LTUuMTgsNy40OSw3LjQ5LDAsMCwxLTEuMzEtLjgyLDE3LDE3LDAsMCwxLTIuNjEsNSwyLjI4LDIuMjgsMCwwLDAtMi41OC41N2MtLjM1LS4yLS43LS40LTEtLjYzYTE2LDE2LDAsMCwxLTQuOTMtNS4yMywyLjI1LDIuMjUsMCwwLDAsLjQ3LTEuNzcsMTcsMTcsMCwwLDEsOC41My0uNjIs''@;'; + put 'put ''Ny40Myw3LjQzLDAsMCwxLS41Ni0xLjU5QTE4LjU2LDE4LjU2LDAsMCwwLDE0LDguNTNhMi4zMywyLjMzLDAsMCwwLTEuMTQtLjYxbC0uMjUsMGMtLjEyLS40Mi0uMjMtLjg0LS4zMi0xLjI3cy0uMTQtLjgxLS4xOS0xLjIyQTExLjkyLDExLjkyLDAsMCwxLDIyLjU3LDVhNy40NSw3LjQ1LDAs''@;'; + put 'put ''MCwxLC41My0yQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMGExNCwxNCwwLDEsMCwyNy42OC00Wk0xMC43Niw2LjI3YzAsLjIxLjA2LjQzLjEuNjQuMDkuNDQuMjEuODcuMzMsMS4zYTIuMjgsMi4yOCwwLDAsMC0xLjEsMi4yNUExOC4zMiwxOC4zMiwwLDAs''@;'; + put 'put ''MCw1LjksMTQuMjIsMTIsMTIsMCwwLDEsMTAuNzYsNi4yN1ptMCwxNS43MUEyLjM0LDIuMzQsMCwwLDAsOS4yLDIzLjc0bC0uNjQsMEExMS45NCwxMS45NCwwLDAsMSw1LjgsMTYuOTJsLjExLS4xOWExNi45LDE2LjksMCwwLDEsNC44MS00Ljg5LDIuMzEsMi4zMSwwLDAsMCwyLjI4LjYzLDE3''@;'; + put 'put ''LjUzLDE3LjUzLDAsMCwwLDUuMzUsNS42NWMuNDEuMjcuODMuNTIsMS4yNS43NkEyLjMyLDIuMzIsMCwwLDAsMTkuNzgsMjBhMTYuOTQsMTYuOTQsMCwwLDEtNi4yLDMuMTFBMi4zNCwyLjM0LDAsMCwwLDEwLjc2LDIyWm03LDZhMTEuOTIsMTEuOTIsMCwwLDEtNS44MS0xLjUxbC4yOC0uMDZh''@;'; + put 'put ''Mi4zNCwyLjM0LDAsMCwwLDEuNTctMS43OSwxOC40MywxOC40MywwLDAsMCw3LTMuNSwyLjI5LDIuMjksMCwwLDAsMy0uNjIsMTcuNDEsMTcuNDEsMCwwLDAsNC4zMi41NmwuNTMsMEExMiwxMiwwLDAsMSwxNy43NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; + put 'put ''Ni41OCwzMmgtMThhMSwxLDAsMSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43Miw5Ljg3YTIuMjUsMi4yNSwwLDAsMS0uNDcsMS43NywxNiwxNiwwLDAsMCw0LjkzLDUu''@;'; + put 'put ''MjNjLjM0LjIzLjY5LjQzLDEsLjYzYTIuMjgsMi4yOCwwLDAsMSwyLjU4LS41NywxNi45LDE2LjksMCwwLDAsMy4xMS03QTE3LDE3LDAsMCwwLDE0LjcyLDkuODdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1''@;'; + put 'put ''LDJhMTQsMTQsMCwwLDAtMTQsMTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEsMCwxNy43NSwyWk0yOC4xLDIxLjA5YTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSwwLDAsMS0zLC42MiwxOC40MywxOC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCww''@;'; + put 'put ''LDEtMS41NywxLjc5bC0uMjkuMDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiwwLDAsMS0uMTgtMS4xN2MtLjQyLS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3''@;'; + put 'put ''LjUzLDAsMCwxLDEzLDEyLjQ3YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43NSwwLDAsMSw0LjItMy44LDIuMjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40''@;'; + put 'put ''My0uMjQtLjg2LS4zMy0xLjMsMC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQsOC41M2ExOC41MSwxOC41MSwwLDAsMSwxMi4xMS0uMDdjMC0uMzIsMC0uNjUsMC0x''@;'; + put 'put ''aDBhMTIsMTIsMCwwLDEsMi42MiwzLjg1aDBxLS43My0uNDMtMS40OC0uNzhhMTguNCwxOC40LDAsMCwxLTMuMzksNy4zNywyLjMzLDIuMzMsMCwwLDEsLjMzLDEuMTksMjIsMjIsMCwwLDAsNSwuNDUsMTEuODgsMTEuODgsMCwwLDEtLjYxLDEuNTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjU4LDMyaC0xOGExLDEsMCwxLDAsMCwyaDE4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTMxLjczLDE1LjRIMjUuNTZhMTguODcsMTguODcsMCwwLDEtMS42MiwyLjUyLDIuMzMsMi4zMywwLDAsMSwuMzMsMS4xOSwyMiwyMiwwLDAsMCw1LC40NSwxMS44OCwxMS44OCwwLDAsMS0uNjEsMS41M0gyOC4xYTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSww''@;'; + put 'put ''LDAsMS0zLC42MiwxOC40MywxOC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCwwLDEtMS41NywxLjc5bC0uMjkuMDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiww''@;'; + put 'put ''LDAsMS0uMTgtMS4xN2MtLjQyLS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3LjUzLDAsMCwxLDEzLDEyLjQ3YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43''@;'; + put 'put ''NSwwLDAsMSw0LjItMy44LDIuMjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40My0uMjQtLjg2LS4zMy0xLjMsMC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQs''@;'; + put 'put ''OC41M2ExOC41OSwxOC41OSwwLDAsMSw2LjM5LTFMMjMsM0ExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBBMTQsMTQsMCwwLDAsMzEuNzYsMTZDMzEuNzYsMTUuOCwzMS43NCwxNS42LDMxLjczLDE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjI2LDExLjY0YTE2LDE2LDAsMCwwLDQuOTMsNS4yM2MuMzQuMjMuNjkuNDMsMSwuNjNhMi4yOCwyLjI4LDAsMCwxLDIuNTgtLjU3LDE3LjI5LDE3LjI5LDAsMCwwLDEtMS41NGgtMS42QTMu''@;'; + put 'put ''NjgsMy42OCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlhMTcuMDgsMTcuMDgsMCwwLDAtNC44NC44OCwyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; + put 'put ''TTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQt''@;'; + put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cGF0aCBkPSJNMzEuNSwxMy4zNWE3LjU0LDcuNTQsMCwwLDEtMS41LjE1LDcuNDYsNy40NiwwLDAsMS0zLjI4LS43NiwxOC41OSwxOC41OSwwLDAsMS0yLjc4LDUuMTgsMi4zMywyLjMzLDAsMCwxLC4zMywxLjE5LDIyLDIyLDAsMCwwLDUsLjQ1LDExLjg4LDExLjg4LDAsMCwxLS42MSwxLjUz''@;'; + put 'put ''SDI4LjFhMTcuNDEsMTcuNDEsMCwwLDEtNC4zMi0uNTYsMi4yOSwyLjI5LDAsMCwxLTMsLjYyLDE4LjQzLDE4LjQzLDAsMCwxLTcsMy41LDIuMzQsMi4zNCwwLDAsMS0xLjU3LDEuNzlsLS4yOS4wNmExMS45MywxMS45MywwLDAsMS0zLjM5LTIuOGwuNjYsMGEyLjMzLDIuMzMsMCwwLDEsNC4z''@;'; + put 'put ''Ny0uNThBMTYuOTQsMTYuOTQsMCwwLDAsMTkuNzgsMjBhMi4zMiwyLjMyLDAsMCwxLS4xOC0xLjE3Yy0uNDItLjI0LS44NC0uNDktMS4yNS0uNzZBMTcuNTMsMTcuNTMsMCwwLDEsMTMsMTIuNDdhMi4zMSwyLjMxLDAsMCwxLTIuMjgtLjYzLDI3LjMxLDI3LjMxLDAsMCwwLTUsNC43NGMwLS4y''@;'; + put 'put ''LDAtLjM5LDAtLjU3YTEyLDEyLDAsMCwxLC4xNC0xLjczLDE4Ljc1LDE4Ljc1LDAsMCwxLDQuMi0zLjgsMi4yOCwyLjI4LDAsMCwxLDEuMS0yLjI1Yy0uMTItLjQzLS4yNC0uODYtLjMzLTEuMywwLS4xNCwwLS4yOS0uMTEtLjY0YTEyLDEyLDAsMCwxLDEuMzctLjg3Yy4xLjU5LjE0LjkuMjEs''@;'; + put 'put ''MS4yMXMuMi44NS4zMiwxLjI3bC4yNSwwQTIuMzMsMi4zMywwLDAsMSwxNCw4LjUzYTE4LjU2LDE4LjU2LDAsMCwxLDguNjUtLjg3LDcuNDUsNy40NSwwLDAsMSwuNDEtNC41OUExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBhMTQsMTQsMCwxLDAsMjcuNjgt''@;'; + put 'put ''NFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNzIsOS44N2EyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzcsMTYsMTYsMCwwLDAsNC45Myw1LjIzYy4zNC4yMy42OS40MywxLC42M2EyLjI4''@;'; + put 'put ''LDIuMjgsMCwwLDEsMi41OC0uNTcsMTcsMTcsMCwwLDAsMi42MS01LDcuNTIsNy41MiwwLDAsMS0yLjE2LTIuNjdBMTcsMTcsMCwwLDAsMTQuNzIsOS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2ly''@;'; + put 'put ''Y2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVOZXR3b3JrU2V0dGluZ3M9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjg1''@;'; + put 'put ''LDI3LjQ0YTIuMjksMi4yOSwwLDAsMCwxLjc0LTEuNjhjLjU0LS4xNCwxLjA2LS4zMiwxLjU5LS41MXYtMS4yYTIuNzcsMi43NywwLDAsMSwuMDYtLjUxLDE3LjQ0LDE3LjQ0LDAsMCwxLTEuODIuNjIsMi4yOCwyLjI4LDAsMCwwLTQuMjguNjNsLS40NSwwaDBhMTEuOTMsMTEuOTMsMCwwLDEt''@;'; + put 'put ''Mi44OC03LjI3LDE3Ljc5LDE3Ljc5LDAsMCwxLDUtNC43MiwyLjIzLDIuMjMsMCwwLDAsMi4yOS41NiwxOC41MiwxOC41MiwwLDAsMCw0LjQ3LDUsMi43NCwyLjc0LDAsMCwxLC4yMS0uMjRsLjk1LS45MWExNi45LDE2LjksMCwwLDEtNC4zNS00Ljc5LDIuMjcsMi4yNywwLDAsMCwuMzUtMS4y''@;'; + put 'put ''YzAtLjA3LDAtLjE0LDAtLjIyQTE3LjY5LDE3LjY5LDAsMCwxLDI1LDExYTE3LjQ5LDE3LjQ5LDAsMCwxLTEuMTUsMy4zNGwuMTksMGgxLjU2YTE5LDE5LDAsMCwwLC45MS0yLjcyYy40My4xOS44NC40MSwxLjI2LjY0YTExLjk0LDExLjk0LDAsMCwxLDEsNC4wOWwwLDBBMi43NywyLjc3LDAs''@;'; + put 'put ''MCwxLDMwLDE2YTIuNzMsMi43MywwLDAsMSwuNjguMUExNCwxNCwwLDEsMCwxNi4wOCwzMWEyLjcyLDIuNzIsMCwwLDEsMC0yQTExLjkzLDExLjkzLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEs''@;'; + put 'put ''MCwwLDAtMTIuMzUuMTFBMi4yOCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIuNTNBMTEuOTIsMTEuOTIsMCwwLDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40''@;'; + put 'put ''NSwxOS40NSwwLDAsMCw1LDE0Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDIxLjE5QTMuODQsMy44NCwwLDEsMCwyOC44OCwyNSwzLjg3LDMuODcsMCwwLDAs''@;'; + put 'put ''MjUsMjEuMTlabTAsNi4wOEEyLjI0LDIuMjQsMCwxLDEsMjcuMjgsMjUsMi4yNiwyLjI2LDAsMCwxLDI1LDI3LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMTcsMjQuMTRhMS4xNCwxLjE0LDAsMCww''@;'; + put 'put ''LS43LTEuMWwtMS41Ni0uNDZxLS4xMS0uMzItLjI2LS42M2wuNzItMS4zM2ExLjE0LDEuMTQsMCwwLDAtLjIxLTEuMzRsLTEuMzQtMS4zMmExLjE0LDEuMTQsMCwwLDAtMS4zNC0uMmwtMS4zNC43MWE3LjI4LDcuMjgsMCwwLDAtLjY3LS4yOEwyNywxNi43MWExLjE0LDEuMTQsMCwwLDAtMS4w''@;'; + put 'put ''OC0uNzZIMjRhMS4xNCwxLjE0LDAsMCwwLTEuMDguOGwtLjQ0LDEuNDNhNy4zMiw3LjMyLDAsMCwwLS42OC4yOGwtMS4zMi0uN2ExLjE0LDEuMTQsMCwwLDAtMS4zMy4xOWwtMS4zNywxLjMxYTEuMTQsMS4xNCwwLDAsMC0uMjEsMS4zNWwuNywxLjI4cS0uMTYuMzItLjI4LjY1TDE2LjU4LDIz''@;'; + put 'put ''YTEuMTMsMS4xMywwLDAsMC0uODEsMS4wOXYxLjg3QTEuMTQsMS4xNCwwLDAsMCwxNi41OSwyN2wxLjQ3LjQ0cS4xMi4zMi4yOC42NGwtLjcyLDEuMzVhMS4xNCwxLjE0LDAsMCwwLC4yLDEuMzVsMS4zNCwxLjMyYTEuMTQsMS4xNCwwLDAsMCwxLjM0LjJsMS4zNy0uNzJxLjMxLjE0LjYzLjI2''@;'; + put 'put ''bC40NCwxLjQ3YTEuMTQsMS4xNCwwLDAsMCwxLjA5LjhoMS45QTEuMTQsMS4xNCwwLDAsMCwyNywzMy4zMWwuNDQtMS40N2MuMjEtLjA3LjQyLS4xNi42Mi0uMjVsMS4zOC43M2ExLjE0LDEuMTQsMCwwLDAsMS4zMy0uMmwxLjM0LTEuMzJhMS4xNCwxLjE0LDAsMCwwLC4yMS0xLjM1bC0uNzMt''@;'; + put 'put ''MS4zNHEuMTQtLjMuMjUtLjZsMS41LS40NEExLjEzLDEuMTMsMCwwLDAsMzQuMTcsMjZabS0xLjYsMS41LTIsLjU4LS4xMi40MkE1LjU1LDUuNTUsMCwwLDEsMzAsMjcuNzNsLS4yMS4zOCwxLDEuNzktLjg2Ljg0LTEuODItMS0uMzcuMmE1Ljc4LDUuNzgsMCwwLDEtMS4xMi40NmwtLjQyLjEy''@;'; + put 'put ''LS41OSwySDI0LjM4bC0uNTktMS45NS0uNDItLjEyQTUuODYsNS44NiwwLDAsMSwyMi4yNCwzMGwtLjM3LS4yLTEuODEsMS0uODYtLjg1LDEtMS44Mi0uMjItLjM4YTUuNiw1LjYsMCwwLDEtLjQ5LTEuMTNsLS4xMy0uNDEtMS45NS0uNThWMjQuNDJsMS45NC0uNTguMTItLjQxYTUuNTMsNS41''@;'; + put 'put ''MywwLDAsMSwuNDktMS4xNGwuMjItLjM5LTEtMS43My44Ny0uODQsMS43Ny45NC4zOC0uMjFhNS44LDUuOCwwLDAsMSwxLjE3LS40OWwuNDEtLjEyLjU5LTEuOTFoMS4yM2wuNTgsMS45LjQxLjEyYTUuNzksNS43OSwwLDAsMSwxLjE2LjQ4bC4zOC4yMSwxLjgtLjk1Ljg2Ljg1LTEsMS43Ny4y''@;'; + put 'put ''MS4zOGE1LjUzLDUuNTMsMCwwLDEsLjQ3LDEuMTNsLjEyLjQyLDEuOTMuNTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwyMy42MywzMiwyM2E3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4z''@;'; + put 'put ''Ny4zNywwLDAsMC0uMDctLjQ0TDMwLjksMTcuODZhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMWE3LDcsMCwwLDAtMS40My0uNjFsLS42MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxTDIwLDE3LjhhLjM3''@;'; + put 'put ''LjM3LDAsMCwwLS40NC4wN0wxOCwxOS4zMWEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LDcsMCwwLDAsMTguMzUsMjNsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2LjM1bDIsLjYxQTcsNywwLDAsMCwxOSwyOC4zN2wtMSwxLjlhLjM3LjM3LDAsMCww''@;'; + put 'put ''LC4wNy40NGwxLjQ1LDEuNDVhLjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTdsLjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40''@;'; + put 'put ''NC0uMDdsMS40NS0xLjQ1YS4zNy4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhBNyw3LDAsMCwwLDMxLjk1LDI3bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjI0QS4zNy4zNywwLDAsMCwzNCwyMy42M1ptLTguODMsNC43MkEzLjMzLDMuMzMsMCwxLDEsMjguNTMsMjUsMy4zMywzLjMzLDAs''@;'; + put 'put ''MCwxLDI1LjE5LDI4LjM0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC44NSwyNy40NGEyLjI5LDIuMjksMCwwLDAsMS43NC0xLjY4LDE5LjcxLDE5LjcxLDAsMCwwLDEuODktLjZWMjMuOTVhMiwyLDAsMCwxLC4w''@;'; + put 'put ''OS0uNTUsMTcuNDIsMTcuNDIsMCwwLDEtMi4xNy43OCwyLjI4LDIuMjgsMCwwLDAtNC4yOC42M2wtLjQ1LDBoMGExMS45MywxMS45MywwLDAsMS0yLjg4LTcuMjcsMTcuNzksMTcuNzksMCwwLDEsNS00LjcyLDIuMjMsMi4yMywwLDAsMCwyLjI5LjU2LDE4LjUyLDE4LjUyLDAsMCwwLDQuNjUs''@;'; + put 'put ''NS4wOSwxLjkzLDEuOTMsMCwwLDEsLjIzLS4zMmwuODktLjg3YTE2Ljg5LDE2Ljg5LDAsMCwxLTQuNDktNC44OSwyLjI3LDIuMjcsMCwwLDAsLjM1LTEuMmMwLS4wNywwLS4xNCwwLS4yMkExNy42OSwxNy42OSwwLDAsMSwyNSwxMWExNy40OSwxNy40OSwwLDAsMS0xLjE1LDMuMzUsMS45NCwx''@;'; + put 'put ''Ljk0LDAsMCwxLC4zMS0uMDVoMS40NWExOS4wNiwxOS4wNiwwLDAsMCwuOS0yLjdjLjQzLjE5Ljg0LjQxLDEuMjYuNjRhMTEuOTMsMTEuOTMsMCwwLDEsMSw0LjYzbDEtLjUxYTIsMiwwLDAsMSwuOTItLjIzaC4wOEExNCwxNCwwLDEsMCwxNi40NCwzMWExLjk0LDEuOTQsMCwwLDEsLjEyLTEu''@;'; + put 'put ''NDZsLjI4LS41M2gtLjA3QTExLjkxLDExLjkxLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEsMCwwLDAtMTIuMzUuMTFBMi4yOCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIu''@;'; + put 'put ''NTNBMTEuOTIsMTEuOTIsMCwwLDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40NSwxOS40NSwwLDAsMCw1LDE0Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVOZXR3b3JrU3dpdGNoPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMC43OCw4LjQxQTIsMiwwLDAsMCwyOC44Nyw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5''@;'; + put 'put ''LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2QTIsMiwwLDAsMCwzMy45MSwxOC40N1pNMzIsMjdINFYxOS4wNkw3LjEzLDlIMjguODdMMzIsMTkuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9''@;'; + put 'put ''IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9Ijcu''@;'; + put 'put ''MTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0z''@;'; + put 'put ''LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5''@;'; + put 'put ''PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMywxNS40SDMwLjg2TDMyLDE5LjA2VjI3SDRWMTkuMDZMNy4xMyw5SDE5LjU2bDEuMTUtMkg3LjEzQTIsMiwwLDAsMCw1LjIyLDgu''@;'; + put 'put ''NDFMMi4wOSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNkEyLDIsMCwwLDAsMzMuOTEsMTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxyZWN0IHg9IjEyLjEyIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNy4xMSIgeT0iMjIiIHdpZHRoPSIx''@;'; + put 'put ''LjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHJlY3QgeD0iNi4yMyIgeT0iMTgiIHdpZHRoPSIyMy42OSIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40N2wtMS42NS01LjMyYTcuNDksNy40''@;'; + put 'put ''OSwwLDAsMS0yLC4zM0wzMiwxOS4wNlYyN0g0VjE5LjA2TDcuMTMsOWgxNmE3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAs''@;'; + put 'put ''MCwwLDMzLjkxLDE4LjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtOC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjkxLDE4LjQ3LDMwLjc4LDguNDFBMiwyLDAsMCwwLDI4Ljg3LDdINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwy''@;'; + put 'put ''SDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCww''@;'; + put 'put ''LDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2YTIsMiwwLDAsMC0uMDktLjU5Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHIt''@;'; + put 'put ''aS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwx''@;'; + put 'put ''LjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yNiwxMy4xNUE3LjQ5LDcuNDksMCwwLDEsMjIuNTcsN0g3LjEzQTIsMiww''@;'; + put 'put ''LDAsMCw1LjIyLDguNDFMMi4wOSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNmEyLDIsMCwwLDAtLjA5LS41OVpNOC45MiwyNUg3LjEyVjIyaDEuOFptNSwwaC0xLjhWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMEgyMi4x''@;'; + put 'put ''VjIyaDEuOFptNSwwSDI3LjFWMjJoMS44Wk0zMSwxOS40SDVWMThIMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlUm91dGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxNC44N2w1LjExLTUuMTRhMSwxLDAsMSwwLTEuNDItMS40MUwxOSwxMVYzLjMzYTEsMSwwLDAs''@;'; + put 'put ''MC0yLDBWMTFMMTQuMzEsOC4zMmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjEuMTNsLTUuMTEsNS4xNGExLDEsMCwwLDAsMS40MiwxLjQxTDE3LDI1djcuNjlhMSwx''@;'; + put 'put ''LDAsMCwwLDIsMFYyNWwyLjY5LDIuNzFhMSwxLDAsMCwwLDEuNDItMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJMMzAuMTUsMTdIMjIuNDZhMSwx''@;'; + put 'put ''LDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUuODUsMTloNy42OWExLDEsMCwwLDAsMC0ySDUuODVsMi43MS0yLjY5''@;'; + put 'put ''YTEsMSwwLDEsMC0xLjQxLTEuNDJMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMSwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxLjEzbC01LjExLDUuMTRhMSwxLDAsMCwwLDEuNDIsMS40''@;'; + put 'put ''MUwxNywyNXY3LjY5YTEsMSwwLDAsMCwyLDBWMjVsMi42OSwyLjcxYTEsMSwwLDAsMCwxLjQyLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5aDcuNjlhMSwx''@;'; + put 'put ''LDAsMCwwLDAtMkg1Ljg1bDIuNzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGQ9Ik0zMS4zOCwxNS40SDI4LjU0TDMwLjE1LDE3SDIyLjQ2YTEsMSwwLDEsMCwwLDJoNy42OWwtMi43MSwyLjY5YTEsMSwwLDAsMCwxLjQxLDEuNDJMMzQsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0xOCwxNC44N2wxLjE1LTEuMTYtLjEtLjE1QTMuNjgsMy42OCwwLDAsMSwxOSwxMFYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEsOC4zMmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuODdsNS4xMS01LjE0YTEsMSwwLDEsMC0xLjQyLTEuNDFMMTksMTFWMy4zM2ExLDEsMCwwLDAtMiwwVjExTDE0LjMx''@;'; + put 'put ''LDguMzJhMSwxLDAsMSwwLTEuNDIsMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMS4xM2wtNS4xMSw1LjE0YTEsMSwwLDAsMCwxLjQyLDEuNDFMMTcsMjV2Ny42OWEx''@;'; + put 'put ''LDEsMCwwLDAsMiwwVjI1bDIuNjksMi43MWExLDEsMCwwLDAsMS40Mi0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJM''@;'; + put 'put ''MzAuMTUsMTdIMjIuNDZhMSwxLDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5''@;'; + put 'put ''aDcuNjlhMSwxLDAsMCwwLDAtMkg1Ljg1bDIuNzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMS42N2ExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAs''@;'; + put 'put ''MCwxOCwxLjY3Wk0xMy44Niw5LjkyYS44LjgsMCwwLDEsMS4xMywwbDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2Ni4xOEwyMSw5LjkyYS44LjgsMCwxLDEsMS4xMywxLjE0TDE4LDE1LjE1bC00LjE0LTQuMUEuOC44LDAsMCwxLDEzLjg2LDkuOTJaTTEwLjMyLDIxLjc0YS44Ljgs''@;'; + put 'put ''MCwwLDEtMS4xMywwTDUsMTcuNjdsNC4xOS00LjA5YS44LjgsMCwxLDEsMS4xMiwxLjE0bC0yLjIsMi4xNGg2LjI3YS44LjgsMCwwLDEsMCwxLjZIOC4xMWwyLjIsMi4xNUEuOC44LDAsMCwxLDEwLjMyLDIxLjc0Wm0xMS44MiwzLjY3YS44LjgsMCwwLDEtMS4xMywwTDE4LjgsMjMuMjNWMjku''@;'; + put 'put ''NGEuOC44LDAsMCwxLTEuNiwwVjIzLjIzTDE1LDI1LjQyYS44LjgsMCwxLDEtMS4xMy0xLjE0TDE4LDIwLjE4bDQuMTQsNC4xQS44LjgsMCwwLDEsMjIuMTQsMjUuNDFabTQuNjctMy42NmEuOC44LDAsMSwxLTEuMTItMS4xNGwyLjItMi4xNUgyMS42M2EuOC44LDAsMCwxLDAtMS42aDYuMjds''@;'; + put 'put ''LTIuMi0yLjE0YS44LjgsMCwxLDEsMS4xMi0xLjE0TDMxLDE3LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MiwxNS4zOUgyOC42OEwzMSwxNy42N2wtNC4xOSw0LjA5YS44LjgsMCwxLDEtMS4xMi0xLjE0''@;'; + put 'put ''bDIuMi0yLjE1SDIxLjYzYS44LjgsMCwwLDEsMC0xLjZoNi4yN2wtMS41LTEuNDdIMjIuMjNhMy42OCwzLjY4LDAsMCwxLTMtMS41MUwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDEsMSwxNSw5LjkybDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2NC40OUEzLjY1LDMuNjUsMCww''@;'; + put 'put ''LDEsMTksOS44OWw0LjIyLTcuMzFBMTYsMTYsMCwxLDAsMzQsMTcuNjcsMTYsMTYsMCwwLDAsMzMuODIsMTUuMzlabS0yMy41LDYuMzVhLjguOCwwLDAsMS0xLjEzLDBMNSwxNy42N2w0LjE5LTQuMDlhLjguOCwwLDEsMSwxLjEyLDEuMTRsLTIuMiwyLjE0aDYuMjdhLjguOCwwLDAsMSwwLDEu''@;'; + put 'put ''Nkg4LjExbDIuMiwyLjE1QS44LjgsMCwwLDEsMTAuMzIsMjEuNzRabTExLjgyLDMuNjdhLjguOCwwLDAsMS0xLjEzLDBMMTguOCwyMy4yM1YyOS40YS44LjgsMCwwLDEtMS42LDBWMjMuMjNMMTUsMjUuNDJhLjguOCwwLDEsMS0xLjEzLTEuMTRMMTgsMjAuMThsNC4xNCw0LjFBLjguOCwwLDAs''@;'; + put 'put ''MSwyMi4xNCwyNS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCww''@;'; + put 'put ''LDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4yMiwxMi43NkE3LjQ5LDcu''@;'; + put 'put ''NDksMCwwLDEsMjMuMzIsMi42YTE2LDE2LDAsMSwwLDkuOSwxMC4xN1pNMTMuODYsOS45MmEuOC44LDAsMCwxLDEuMTMsMGwyLjIxLDIuMTlWNS45M2EuOC44LDAsMCwxLDEuNiwwdjYuMThMMjEsOS45MmEuOC44LDAsMSwxLDEuMTMsMS4xNEwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDAs''@;'; + put 'put ''MSwxMy44Niw5LjkyWk0xMC4zMiwyMS43NGEuOC44LDAsMCwxLTEuMTMsMEw1LDE3LjY3bDQuMTktNC4wOWEuOC44LDAsMSwxLDEuMTIsMS4xNGwtMi4yLDIuMTRoNi4yN2EuOC44LDAsMCwxLDAsMS42SDguMTFsMi4yLDIuMTVBLjguOCwwLDAsMSwxMC4zMiwyMS43NFptMTEuODIsMy42N2Eu''@;'; + put 'put ''OC44LDAsMCwxLTEuMTMsMEwxOC44LDIzLjIzVjI5LjRhLjguOCwwLDAsMS0xLjYsMFYyMy4yM0wxNSwyNS40MmEuOC44LDAsMSwxLTEuMTMtMS4xNEwxOCwyMC4xOGw0LjE0LDQuMUEuOC44LDAsMCwxLDIyLjE0LDI1LjQxWm00LjY3LTMuNjZhLjguOCwwLDEsMS0xLjEyLTEuMTRsMi4yLTIu''@;'; + put 'put ''MTVIMjEuNjNhLjguOCwwLDAsMSwwLTEuNmg2LjI3bC0yLjItMi4xNGEuOC44LDAsMSwxLDEuMTItMS4xNEwzMSwxNy42N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2''@;'; + put 'put ''IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVWTT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTEsNUgyNVY4aDJWNWEyLDIsMCwwLDAtMi0ySDExQTIs''@;'; + put 'put ''MiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTBIMTd2Mmg4djZoMlYxMmgzVjI2SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwy''@;'; + put 'put ''LDJIMjBhMiwyLDAsMCwwLDItMlYyOGg4YTIsMiwwLDAsMCwyLTJWMTJBMiwyLDAsMCwwLDMwLDEwWk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwyaDR2M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBh''@;'; + put 'put ''dGggZD0iTTExLDVIMjEuODdMMjMsM0gxMUEyLDIsMCwwLDAsOSw1djYuODVoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjUuMDEiIHk9IjE1LjQiIHdpZHRoPSIxLjk5IiBo''@;'; + put 'put ''ZWlnaHQ9IjIuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuNFYyNkgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIw''@;'; + put 'put ''YTIsMiwwLDAsMCwyLTJWMjhoOGEyLDIsMCwwLDAsMi0yVjE1LjRaTTYsMzFWMTdIMjB2OUgxNlYyMEgxNHY2YTIsMiwwLDAsMCwyLDJoNHYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; + put 'put ''aCBkPSJNMTcsMTB2MmgxLjU3QTMuNjcsMy42NywwLDAsMSwxOSwxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCww''@;'; + put 'put ''LDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHBhdGggZD0iTTExLDVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDExQTIsMiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEz''@;'; + put 'put ''LjVoMFYyNkgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjhoOGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwy''@;'; + put 'put ''aDR2M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMmg4djZoMlYxMi44N0E3LjUyLDcuNTIsMCwwLDEsMjMuNjYsMTBIMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; + put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAg''@;'; + put 'put ''ICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDI3VjVhMiwyLDAsMCwwLTItMkgxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMEgxNy4x''@;'; + put 'put ''OWEyLDIsMCwwLDAtMiwydjEuNEgyMEEzLjYsMy42LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjkuNkgxNy4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAs''@;'; + put 'put ''MCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEyQTIsMiwwLDAsMCwzMCwxMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42aDIuNzJMMjMsM0gxMUEyLDIsMCwwLDAs''@;'; + put 'put ''OSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4xOSwxMGEyLDIsMCwwLDAtMiwydjEuNEgxOUEzLjY4LDMuNjgsMCwwLDEsMTksMTBaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjIxLDE1LjRBMy41NSwzLjU1LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIs''@;'; + put 'put ''MiwwLDAsMCwyLTJWMjkuNkgxNy4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAg''@;'; + put 'put ''PHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDIyLjlBNy40NSw3LjQ1LDAsMCwxLDIzLjEzLDNIMTFBMiwyLDAsMCwwLDksNXY4LjRoNC41OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwSDE3LjE5YTIsMiwwLDAsMC0yLDJ2MS40SDIwQTMuNiwzLjYsMCwwLDEsMjMuNiwxN3Y4SDIyVjE3YTIsMiwwLDAsMC0yLTJI''@;'; + put 'put ''NmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOS42SDE3LjE5YTMuNiwzLjYsMCwwLDEtMy42LTMuNlYyMGgxLjZ2NmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAg''@;'; + put 'put ''ICAgICAnKSxlLkNsclNoYXBlVk1XQXBwPSgwLGEuY2xySWNvblNWRykoJzxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIgMjAgMjggMjAgMjggMjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0xIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxNCAzMCA2IDMwIDYgMjIgOCAyMiA4IDIwIDQgMjAgNCAzMiAxNiAzMiAxNiAyOCAxNCAyOCAxNCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cG9seWdv''@;'; + put 'put ''biBwb2ludHM9IjggMTQgNiAxNCA2IDYgMTQgNiAxNCA4IDE2IDggMTYgNCA0IDQgNCAxNiA4IDE2IDggMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyMCA0IDIwIDggMjIgOCAyMiA2IDMwIDYg''@;'; + put 'put ''MzAgMTQgMjggMTQgMjggMTYgMzIgMTYgMzIgNCAyMCA0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxOSIgeT0iMTEiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0''@;'; + put 'put ''PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8''@;'; + put 'put ''cG9seWdvbiBwb2ludHM9IjI4IDIyIDMwIDIyIDMwIDMwIDIyIDMwIDIyIDI4IDIwIDI4IDIwIDMyIDMyIDMyIDMyIDIwIDI4IDIwIDI4IDIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5''@;'; + put 'put ''Z29uIHBvaW50cz0iMTQgMzAgNiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQgMjggMTQgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRz''@;'; + put 'put ''PSI4IDE0IDYgMTQgNiA2IDE0IDYgMTQgOCAxNiA4IDE2IDQgNCA0IDQgMTYgOCAxNiA4IDE0IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhl''@;'; + put 'put ''aWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC01LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTkiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; + put 'put ''Ik0yNSwxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NmwwLS4xVjE3aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjIuNDUgNCAyMCA0IDIwIDgg''@;'; + put 'put ''MjAuMTQgOCAyMi40NSA0IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI4IiB5PSIxNS40IiB3aWR0aD0iNCIgaGVpZ2h0PSIwLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; + put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwy''@;'; + put 'put ''Ni44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIg''@;'; + put 'put ''MzIgMzIgMjAgMjggMjAgMjggMjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQgMzAgNiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQg''@;'; + put 'put ''MjggMTQgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxNCA2IDE0IDYgNiAxNCA2IDE0IDggMTYgOCAxNiA0IDQgNCA0IDE2IDggMTYgOCAxNCIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjExIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhl''@;'; + put 'put ''aWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDZoLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDIwVjhoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjE0SDI4djJoNFYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgLz5c''@;'; + put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxMS41OGE3LjUzLDcuNTMsMCwwLDEtLjU4LS41OEgxOXY2aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9''@;'; + put 'put ''IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlQ2VydGlmaWNhdGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRMMjAuNDEsMjhINFY4SDMybDAsOC41NmE4LjQxLDguNDEsMCwwLDEsMiwxLjgxVjhBMiwyLDAsMCwwLDMyLDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9''@;'; + put 'put ''IjciIHk9IjEyIiB3aWR0aD0iMTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYs''@;'; + put 'put ''MCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEs''@;'; + put 'put ''MjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40Niwx''@;'; + put 'put ''Ny4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0''@;'; + put 'put ''LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NkEzLjY2LDMuNjYsMCwwLDEsMTguNTcsMTJIN3YxLjZIMTkuMDdaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjEuMTZhOC40MSw4LjQxLDAsMCwxLDIsMS44MXYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjhWOEgyMC4xNGwxLjE1LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRMMjAuNDEsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; + put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYu''@;'; + put 'put ''ODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjEyIiB3aWR0aD0iMTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI3IiB5PSIxNiIgd2lkdGg9IjExIiBoZWlnaHQ9IjEuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPHJlY3QgeD0iNyIgeT0iMjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40''@;'; + put 'put ''LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcu''@;'; + put 'put ''OTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2My4zNGE4LjQxLDguNDEsMCwwLDEsMiwxLjgxdi02QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI4VjhIMjIuNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDE5bC41Ny0uNy45My0xLjE0TDIw''@;'; + put 'put ''LjQxLDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0t''@;'; + put 'put ''YmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDMwSDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMzJhMiwyLDAsMCwxLDIsMlYxOC4zN2E4LjM0LDguMzQsMCwwLDAtMTMuNDksOS43OWwtLjkzLDEuMTRaTTcsMTJ2MS42SDI0VjEyWm0wLDUu''@;'; + put 'put ''NkgxOFYxNkg3Wm0wLDdIMTdWMjNIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuODMsMjMuNTlhNi4zNyw2LjM3LDAsMSwwLTEwLjc3LDQuNTlsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4y''@;'; + put 'put ''NiwwLDAsMCwzLjU1LDBsMy42Niw0LjQ2LjktMy42MS0xLjk0LTIuMzdBNi4zNCw2LjM0LDAsMCwwLDMzLjgzLDIzLjU5Wm0tMTAuNzQsMGE0LjM3LDQuMzcsMCwxLDEsNC4zNyw0LjMxQTQuMzUsNC4zNSwwLDAsMSwyMy4xLDIzLjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy41OWE2LjM3LDYuMzcsMCwxLDAtMTAuNzcsNC41OWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN0E2LjM0LDYuMzQsMCww''@;'; + put 'put ''LDAsMzMuODMsMjMuNTlabS0xMC43NCwwYTQuMzcsNC4zNywwLDEsMSw0LjM3LDQuMzFBNC4zNSw0LjM1LDAsMCwxLDIzLjEsMjMuNTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMz''@;'; + put 'put ''LjY4LDE1LjRIMjkuMjVhOC4zNiw4LjM2LDAsMCwxLDQuNzUsM3YtM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMDcsMTMuNkg3VjEySDE4LjU3QTMuNjcsMy42NywwLDAsMSwx''@;'; + put 'put ''OSw5Ljg5TDIxLjI5LDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRBOC4zNCw4LjM0LDAsMCwxLDI1LjY2LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LjA3LDEzLjZaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEu''@;'; + put 'put ''MjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNDYsMTcuMjNhNi4zNiw2LjM2LDAsMCwwLTQuNCwxMWwtMS45NCwy''@;'; + put 'put ''LjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN2E2LjM2LDYuMzYsMCwwLDAtNC40LTExWm0wLDEwLjY4YTQuMzEsNC4zMSwwLDEsMSw0LjM3LTQuMzFBNC4zNSw0LjM1LDAsMCwxLDI3LjQ2LDI3LjkxWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEE4LjM0LDguMzQs''@;'; + put 'put ''MCwwLDEsMzQsMTguMzd2LTZBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThabTYtNEg3VjEySDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; + put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUFyY2hpdmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDMySDdWMjJINVYz''@;'; + put 'put ''MmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjJIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwyNGExLDEsMCwwLDAsMSwxaDZhMSwxLDAsMCwwLDAtMkgxNUExLDEsMCwwLDAsMTQsMjRa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwxOEg2VjE0aDRhMywzLDAsMCwxLS42OC0xLjg3czAtLjA5LDAtLjEzSDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYyMEgxNloiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNBMywzLDAsMCwxLDI2LDE0aDR2NEgyMmwtMiwySDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTkuMThsNi4zOC02LjM1QTEsMSwwLDEsMCwyMywxMS40MWwtNCwzLjk1VjNhMSwxLDAsMSwwLTIsMHYxMi40bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjQxLDIwLjYsMTgsMjJsLTEuNDEtMS40TDE2LDIwSDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjIwSDIwWk0yMiwyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDAsMSwwLTJoNkExLDEsMCww''@;'; + put 'put ''LDEsMjIsMjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNhMywzLDAsMCwxLS44OCwyLjEyTDIyLDE4SDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yLDE0LjI1YTMsMywwLDAsMS0uODgtMi4xMnMwLS4wOSwwLS4xM0g1LjVBMS41LDEuNSwwLDAsMCw0LDEzLjVWMThIMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt''@;'; + put 'put ''cGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE5LjE4bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTEuNDFsLTQsMy45NVYzYTEsMSwwLDEsMC0yLDB2MTIuNGwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC00IiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlVW5hcmNoaXZlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOSwzMkg3VjIySDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjIySDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQsMjRhMSwxLDAsMCwwLDEsMWg2YTEsMSwwLDAsMCwwLTJIMTVBMSwxLDAsMCwwLDE0LDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMThINlYxNGg5''@;'; + put 'put ''VjEySDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYyMEgxNS43OEEzLDMsMCwwLDEsMTUsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC41LDEySDIxdjJoOXY0SDIxYTMsMywwLDAsMS0uNzgsMkgzMlYx''@;'; + put 'put ''My41QTEuNSwxLjUsMCwwLDAsMzAuNSwxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLDkuNTUsMTcsNS42VjE4YTEsMSwwLDEsMCwyLDBWNS42bDQsMy45NWExLDEsMCwxLDAsMS40MS0xLjQyTDE4LDEu''@;'; + put 'put ''NzgsMTEuNjEsOC4xM0ExLDEsMCwwLDAsMTMsOS41NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxYTMsMywwLDAsMS0yLjIyLTFINVYzMmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjBI''@;'; + put 'put ''MjAuMjFBMywzLDAsMCwxLDE4LDIxWm00LDNhMSwxLDAsMCwxLTEsMUgxNWExLDEsMCwwLDEsMC0yaDZBMSwxLDAsMCwxLDIyLDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwxMkg1LjVBMS41LDEuNSwwLDAs''@;'; + put 'put ''MCw0LDEzLjVWMThIMTVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjF2NkgzMlYxMy41QTEuNSwxLjUsMCwwLDAsMzAuNSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMsOS41NSwxNyw1LjZWMThhMSwxLDAsMSwwLDIsMFY1LjZsNCwzLjk1YTEsMSwwLDEsMCwxLjQxLTEuNDJMMTgsMS43OCwxMS42MSw4LjEzQTEsMSwwLDAsMCwxMyw5LjU1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; + put 'put ''NCIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUNvbm5lY3Q9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDE3SDI4LjIzQTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMjJhNi4y''@;'; + put 'put ''Miw2LjIyLDAsMCwwLDYuMjItNUgzNFpNMTcuMDgsMjJIMTQuMTVhNC4xNyw0LjE3LDAsMCwxLTQuMzEtNCw0LjE3LDQuMTcsMCwwLDEsNC4zMS00aDIuOTRaTTIyLDIySDE5VjE0aDNhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjIsMjJaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x''@;'; + put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjIzLDE3QTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxOVYyNGgzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLTVIMzRWMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlRGlz''@;'; + put 'put ''Y29ubmVjdD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMTcsNkE2LjIxLDYuMjEsMCwwLDAsNiwxMUgyLjEzdjJINmE2LjIzLDYuMjMsMCwwLDAsNi4yMSw1SDE3VjZaTTE1LjEsMTZIMTIuMTdhNC4yLDQuMiwwLDAsMS00LjMxLTQsNC4xNyw0LjE3LDAsMCwxLDQuMzEtNEgxNS4x''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuOTIsMjNIMzAuMTRhNi4yNSw2LjI1LDAsMCwwLTYuMjEtNUgxOXYySDE0YTEsMSwwLDEsMCwwLDJoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEs''@;'; + put 'put ''MWg1djJoNC45NGE2LjIzLDYuMjMsMCwwLDAsNi4yMi01aDMuNzZabS0xMCw1SDIxVjIwaDIuOTRhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjMuOTQsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0xMiw2YTYuMjEsNi4yMSwwLDAsMC02LjIxLDVIMnYySDUuODNBNi4yMyw2LjIzLDAsMCwwLDEyLDE4SDE3VjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc5LDIzSDMwLjE0YTYuMjUsNi4y''@;'; + put 'put ''NSwwLDAsMC02LjIxLTVIMTl2MkgxNGExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djJoNC45NGE2LjIzLDYuMjMsMCwwLDAsNi4yMi01aDMuNjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAv''@;'; + put 'put ''PlxuICAgICAgICAnKSxlLkNsclNoYXBlTGluaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNiwyNC4zMmwtMi40NiwyLjQ0YTQsNCwwLDAsMS01LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAtNS41NWw0LjY5LTQuNjVhNCw0LDAsMCwxLDUuNjIsMCwzLjg2LDMuODYsMCwwLDEsMSwx''@;'; + put 'put ''LjcxQTIsMiwwLDAsMCwyMS4xLDE4bDEuMjktMS4yOGE1Ljg5LDUuODksMCwwLDAtMS4xNS0xLjYyLDYsNiwwLDAsMC04LjQ0LDBMOC4xLDE5Ljc5YTUuOTEsNS45MSwwLDAsMCwwLDguMzksNiw2LDAsMCwwLDguNDQsMGwzLjY1LTMuNjJjLS4xNywwLS4zMywwLS41LDBBOCw4LDAsMCwxLDE3''@;'; + put 'put ''LjYsMjQuMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC42MSw3LjgyYTYsNiwwLDAsMC04LjQ0LDBsLTMuNjUsMy42MmMuMTcsMCwuMzMsMCwuNDksMGgwYTgsOCwwLDAsMSwyLjEuMjhsMi40Ni0yLjQ0''@;'; + put 'put ''YTQsNCwwLDAsMSw1LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAsNS41NWwtNC42OSw0LjY1YTQsNCwwLDAsMS01LjYyLDAsMy44NiwzLjg2LDAsMCwxLTEtMS43MSwyLDIsMCwwLDAtLjI4LjIzbC0xLjI5LDEuMjhhNS44OSw1Ljg5LDAsMCwwLDEuMTUsMS42Miw2LDYsMCwwLDAsOC40NCwwbDQu''@;'; + put 'put ''NjktNC42NWE1LjkyLDUuOTIsMCwwLDAsMC04LjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVVbmxpbms9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUsNSwzLjU5LDYuNDFsOSw5TDguMSwxOS43OWE1''@;'; + put 'put ''LjkxLDUuOTEsMCwwLDAsMCw4LjM5LDYsNiwwLDAsMCw4LjQ0LDBMMjEsMjMuNzhsOC42Myw4LjYzTDMxLDMxWk0xNS4xMywyNi43NmE0LDQsMCwwLDEtNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLTUuNTVMMTQsMTYuNzlsNS41OCw1LjU4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuNTMsOS4yMmE0LDQsMCwwLDEsNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLDUuNTVsLTQuNzksNC43NkwyMy43OCwyMWw0Ljc5LTQuNzZhNS45Miw1LjkyLDAsMCwwLDAtOC4zOSw2LDYsMCwwLDAtOC40NCwwbC00''@;'; + put 'put ''Ljc2LDQuNzRMMTYuNzgsMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUNsb3VkTmV0d29yaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAuNzEsMTUuMTh2LTFBMTEuMjgsMTEuMjgsMCwwLDAsMTku''@;'; + put 'put ''NTYsMi44M2gtLjExYTExLjI4LDExLjI4LDAsMCwwLTExLDguOTMsNy40Nyw3LjQ3LDAsMCwwLDAsMTQuOTRIMjkuMTNhNS44Niw1Ljg2LDAsMCwwLDEuNTgtMTEuNTJaTTI5LjEzLDI0LjdIOC40NmE1LjQ3LDUuNDcsMCwxLDEsMC0xMC45NGgxLjY5bC4xMS0uODdhOS4yNyw5LjI3LDAsMCwx''@;'; + put 'put ''LDE4LjQ1LDEuM3YxLjI4YzAsLjA5LDAsLjE4LDAsLjI3bC0uMDcsMS4xNS45NC4xMWEzLjg2LDMuODYsMCwwLDEtLjQzLDcuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41OCwzMS4xOEgxOC44NXYt''@;'; + put 'put ''Mi40aC0ydjIuNEg2LjA4YTEsMSwwLDAsMCwwLDJoMjMuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVDbG91ZFNjYWxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LjMyLDEx''@;'; + put 'put ''LjExSDcuODRMOCwxMC4yNEE3LjE5LDcuMTksMCwwLDEsMTUuMDcsNGguMDdhNy4xNSw3LjE1LDAsMCwxLDQuNzEsMS44MywxMS4xLDExLjEsMCwwLDEsMy4wOS42NEE5LjE4LDkuMTgsMCwwLDAsMTUuMTYsMmgtLjA5QTkuMiw5LjIsMCwwLDAsNi4xMyw5LjExLDYuMTUsNi4xNSwwLDAsMCwy''@;'; + put 'put ''LjMzLDE5Ljk1LDguMDksOC4wOSwwLDAsMSwzLDE3LjcxYTQuMTIsNC4xMiwwLDAsMS0uODEtMi40NEE0LjE2LDQuMTYsMCwwLDEsNi4zMiwxMS4xMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjQsMTYu''@;'; + put 'put ''OTFoMS41MkwxMiwxNmE3LjE5LDcuMTksMCwwLDEsNy4xMi02LjI1aC4wN2E3LjE3LDcuMTcsMCwwLDEsNS43LDIuOTIsMTEuMDUsMTEuMDUsMCwwLDEsMi43Mi43Nyw5LjIsOS4yLDAsMCwwLTguNC01LjY5aC0uMDlhOS4yLDkuMiwwLDAsMC04Ljk0LDcuMTIsNi4xNSw2LjE1LDAsMCwwLTMu''@;'; + put 'put ''NjQsMTEsOC4xMSw4LjExLDAsMCwxLC43OS0yLDQuMTQsNC4xNCwwLDAsMSwzLTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi40MiwyNC40N3YtLjYyYTkuMTgsOS4xOCwwLDAsMC0xOC4xMy0yLjE2QTYu''@;'; + put 'put ''MTYsNi4xNiwwLDAsMCwxNC40OCwzNEgzMWE0Ljg4LDQuODgsMCwwLDAsMS40Ni05LjUzWk0zMSwzMkgxNC40OGE0LjE2LDQuMTYsMCwxLDEsMC04LjMySDE2bC4xMS0uODdhNy4xOSw3LjE5LDAsMCwxLDcuMTItNi4yNWguMDdhNy4yMSw3LjIxLDAsMCwxLDcuMTIsNy4yNXYxYzAsLjA3LDAs''@;'; + put 'put ''LjEzLDAsLjJsLS4wNywxLjExLjk0LjExQTIuODgsMi44OCwwLDAsMSwzMSwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlQ2xvdWRUcmFmZmljPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41NCwy''@;'; + put 'put ''MC44MmEuODguODgsMCwwLDAtLjg4LS44OEgyMC43NWwxLjEtMS4xQS44OC44OCwwLDAsMCwyMC42LDE3LjZsLTMuMjEsMy4yMkwyMC42LDI0YS44OC44OCwwLDEsMCwxLjI1LTEuMjRMMjAuNzYsMjEuN2g0LjlBLjg4Ljg4LDAsMCwwLDI2LjU0LDIwLjgyWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMjcsMjEuN2EuODguODgsMCwxLDAsMC0xLjc2aC0uNThhLjg4Ljg4LDAsMSwwLDAsMS43NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggZD0iTTMyLjIxLDIwaC0uMDZhLjg1Ljg1LDAsMCwwLS44NS44OC45MS45MSwwLDAsMCwuOTEuODguODguODgsMCwxLDAsMC0xLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuNTksMTFh''@;'; + put 'put ''Ljg4Ljg4LDAsMCwwLTEuMjUsMS4yNGwxLjEsMS4xSDI3LjUzYS44OC44OCwwLDEsMCwwLDEuNzZoNC45bC0xLjA5LDEuMDlhLjg4Ljg4LDAsMCwwLDEuMjUsMS4yNGwzLjIxLTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAg''@;'; + put 'put ''IDxwYXRoIGQ9Ik0yNC41LDE1LjA3YS44OC44OCwwLDEsMCwwLTEuNzZoLS41OGEuODguODgsMCwxLDAsMCwxLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuOSwxNC4yN2EuODUuODUsMCwwLDAtLjg1''@;'; + put 'put ''LS44OEgyMWEuODguODgsMCwxLDAsMCwxLjc2QS45MS45MSwwLDAsMCwyMS45LDE0LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMzYsMjMuNjVjMCwuMTMsMCwuMjYsMCwuMzlhMy43NywzLjc3LDAs''@;'; + put 'put ''MCwxLTMuNjIsMy44OUg3LjI4YTUuMzIsNS4zMiwwLDAsMS01LjEzLTUuNDhBNS4zMiw1LjMyLDAsMCwxLDcuMjgsMTdIOC45MUw5LDE2LjEyYTguOTIsOC45MiwwLDAsMSw4LjYyLThoLjA4YTguNDksOC40OSwwLDAsMSw2LjU2LDMuMjloMi4zN2ExMC41NSwxMC41NSwwLDAsMC04LjkxLTUu''@;'; + put 'put ''MjVoLS4xMUExMC44MiwxMC44MiwwLDAsMCw3LjIyLDE1YTcuMjgsNy4yOCwwLDAsMC03LDcuNDMsNy4yNyw3LjI3LDAsMCwwLDcuMDgsNy40M0gyNi43N0E1LjcyLDUuNzIsMCwwLDAsMzIuMzUsMjRhMy43NywzLjc3LDAsMCwwLDAtLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVEZXBsb3k9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSww''@;'; + put 'put ''LDEuNDMsMS40TDMyLDUuNDZWMTMuOWExLDEsMCwwLDAsMiwwVjNBMSwxLDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTExLjU0LDEwLjczbC05LDUuMTdhMSwxLDAsMCwwLS41Ljg3djExYTEs''@;'; + put 'put ''MSwwLDAsMCwuNS44N2w5LDUuMTVhMSwxLDAsMCwwLDEsMGw5LTUuMTVhMSwxLDAsMCwwLC41LS44N3YtMTFhMSwxLDAsMCwwLS41LS44N2wtOS01LjE3QTEsMSwwLDAsMCwxMS41NCwxMC43M1pNMTEsMzEuMDhsLTctNFYxOC40NGw3LDRaTTEyLDIxLDQuODEsMTYuODcsMTIsMTIuNzhsNy4y''@;'; + put 'put ''MSw0LjEyWm04LDYuMDktNyw0VjIyLjQ0bDctNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSwwLDEuNDMsMS40TDMyLDUuNDZWMTMuOWEx''@;'; + put 'put ''LDEsMCwwLDAsMiwwVjNBMSwxLDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTIuNDYsMTAuNzNhMSwxLDAsMCwwLTEsMGwtOC42OCw1TDEyLDIxbDkuMTktNS4yNloiLz5cbiAgICAgICAgICAgIDxw''@;'; + put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yLDI3LjczYTEsMSwwLDAsMCwuNS44N0wxMSwzMy40NnYtMTFMMiwxNy4yOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0xMywzMy40''@;'; + put 'put ''Nmw4LjUtNC44NmExLDEsMCwwLDAsLjUtLjg3VjE3LjI5bC05LDUuMTVaIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVIZWxpeD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguODgsMTMuMDdhLjkuOSwwLDAs''@;'; + put 'put ''MS0uNDktMS42Nmw4LjkzLTUuNzNhLjkuOSwwLDEsMSwxLDEuNTJMOS4zNywxMi45MkEuOS45LDAsMCwxLDguODgsMTMuMDdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEzLjI1LDE1LjExYS45LjksMCwwLDEt''@;'; + put 'put ''LjQ5LTEuNjZMMTgsMTAuMDhhLjkuOSwwLDEsMSwxLDEuNTJMMTMuNzQsMTVBLjkuOSwwLDAsMSwxMy4yNSwxNS4xMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTkuNzIsMzAuMjNhLjkuOSwwLDAsMS0uNDkt''@;'; + put 'put ''MS42Nmw4LjkzLTUuNzNhLjkuOSwwLDAsMSwxLDEuNTJMMjAuMiwzMC4wOUEuOS45LDAsMCwxLDE5LjcyLDMwLjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOC45MiwyNS45NGEuOS45LDAsMCwxLS40OS0x''@;'; + put 'put ''LjY2bDUuMjUtMy4zN2EuOS45LDAsMSwxLDEsMS41MUwxOS40LDI1LjhBLjg5Ljg5LDAsMCwxLDE4LjkyLDI1Ljk0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0yMS41Niw1LjY5YTMuNTksMy41OSwwLDAsMSwu''@;'; + put 'put ''MTUsMy41M0wxOC44MywxNWgyLjI1bDIuNDMtNC44N2E1LjYxLDUuNjEsMCwwLDAtNS04LjE0SDEzLjI2bC0xLDJoNi4yMkEzLjYxLDMuNjEsMCwwLDEsMjEuNTYsNS42OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBk''@;'; + put 'put ''PSJNMzIuOTEsMjAuNzhBNS41Myw1LjUzLDAsMCwwLDI3LjY2LDE3SDkuMzFhMy41NCwzLjU0LDAsMCwxLTMuNTYtMy42NywzLjYxLDMuNjEsMCwwLDEsLjQyLTEuNTRsNC4yNi04LjQ5YTEsMSwwLDEsMC0xLjc5LS45TDQuNCwxMC44NEE1LjY3LDUuNjcsMCwwLDAsNCwxNS4yMiw1LjUzLDUu''@;'; + put 'put ''NTMsMCwwLDAsOS4yOCwxOWg3LjZsLTMuNDQsNi44N2E1LjY0LDUuNjQsMCwwLDAsMS41LDYuOTJBNS4zOCw1LjM4LDAsMCwwLDE4LjQxLDM0aDUuMjVsMS0ySDE4LjQzYTMuNTgsMy41OCwwLDAsMS0zLjIyLTUuMjFMMTkuMTEsMTloOC41NGEzLjQyLDMuNDIsMCwwLDEsMi4xNS43MSwzLjU3''@;'; + put 'put ''LDMuNTcsMCwwLDEsMSw0LjQzbC00LjEyLDguMjJhMSwxLDAsMSwwLDEuNzkuOWw0LjA2LTguMUE1LjY3LDUuNjcsMCwwLDAsMzIuOTEsMjAuNzhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTkuNjNBNS41''@;'; + put 'put ''NSw1LjU1LDAsMCwwLDI3LjQyLDE3SDEwLjA2YTQuMzYsNC4zNiwwLDAsMS0zLjY3LTIsNC4wNyw0LjA3LDAsMCwxLS4xOS00LjEzbDMuNjItNywxLjQyLDEuNjMtMi43NCw1LjMsOC44NC01LjY2YS45MS45MSwwLDAsMSwxLDEuNTNMNy44NCwxMy4zOGEyLjEzLDIuMTMsMCwwLDAsLjI0LjUy''@;'; + put 'put ''LDIuMjgsMi4yOCwwLDAsMCwxLjY1LDFMMTguMTEsOS41YS45MS45MSwwLDAsMSwxLDEuNTJMMTMsMTQuOTRIMjAuOGwyLjQxLTQuODJhNS42LDUuNiwwLDAsMC01LTguMTJIOWExLDEsMCwwLDAtLjkuNTZMMy44OCwxMC44OWE1LjYsNS42LDAsMCwwLDUsOC4xMmg3LjY1bC0zLjQzLDYuODdh''@;'; + put 'put ''NS42LDUuNiwwLDAsMCw1LDguMTJoOS4yOGExLDEsMCwwLDAsLjkzLS42NWw0LjE0LTguMjRBNS41OCw1LjU4LDAsMCwwLDMyLjE2LDE5LjYzWk0xNy43NSwyNS41N0EuOTEuOTEsMCwwLDEsMTgsMjQuMzFsNi0zLjg4QS45MS45MSwwLDEsMSwyNSwyMmwtNiwzLjg4YS45MS45MSwwLDAsMS0x''@;'; + put 'put ''LjI2LS4yN1pNMjksMjQuMzRsLTksNS43OGEuOTEuOTEsMCwxLDEtMS0xLjUzbDktNS43OGEuOTEuOTEsMCwxLDEsMSwxLjUzWiIvPlxuICAgICAgICAnKSxlLkNsclNoYXBlRmxhc2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQzLDI3LjI4LDIzLDE0Ljg0VjRoMWExLDEsMCww''@;'; + put 'put ''LDAsMC0ySDEyYTEsMSwwLDAsMCwwLDJoMVYxNC44NEw0LjUxLDI3LjM2QTQuMjksNC4yOSwwLDAsMCw1LDMyLjgsNC4zOCw0LjM4LDAsMCwwLDguMTUsMzRIMjhhNC4yNCw0LjI0LDAsMCwwLDMuNDItNi43MlpNMjkuODUsMzFhMi42MiwyLjYyLDAsMCwxLTIsMUg4YTIuMiwyLjIsMCwwLDEt''@;'; + put 'put ''Mi4wNi0xLjQxLDIuNjgsMi42OCwwLDAsMSwuMjktMi4xN2wzLTQuNDQsMTQsMC0xLjMxLTJIMTAuNTdMMTUsMTUuNDZWNGg2VjE1LjQ2bDguODQsMTMuMDVBMi4yMywyLjIzLDAsMCwxLDI5Ljg1LDMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4g''@;'; + put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDksMjcuNCwyMywxNC45NFY0aDFhMSwxLDAsMCwwLDAtMkgxMi4wOGExLDEsMCwwLDAsMCwySDEzVjE0Ljk0TDQuNTgsMjcuMzFhNC4zMSw0LjMxLDAsMCwwLS43OCwzQTQuMjMsNC4yMywwLDAsMCw4LDM0SDI3Ljg2QTQuMzYsNC4zNiwwLDAsMCwz''@;'; + put 'put ''MSwzMi44LDQuMjMsNC4yMywwLDAsMCwzMS40OSwyNy40Wk0xNSwxNS40OVY0aDZWMTUuNDlMMjYuMTUsMjNIOS44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yPSgwLGEuY2xySWNvblNWRyko''@;'; + put 'put ''JzxwYXRoIGQ9Ik0xNC42OCwxNC44MWE2Ljc2LDYuNzYsMCwxLDEsNi43Ni02Ljc1QTYuNzcsNi43NywwLDAsMSwxNC42OCwxNC44MVptMC0xMS41MWE0Ljc2LDQuNzYsMCwxLDAsNC43Niw0Ljc2QTQuNzYsNC43NiwwLDAsMCwxNC42OCwzLjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40MiwzMS42OEEyLjE0LDIuMTQsMCwwLDEsMTUuOCwzMEg0VjI0LjIyYTE0LjgxLDE0LjgxLDAsMCwxLDExLjA5LTQuNjhsLjcyLDBhMi4yLDIuMiwwLDAsMSwuNjItMS44NWwuMTItLjExYy0uNDcsMC0xLS4w''@;'; + put 'put ''Ni0xLjQ2LS4wNkExNi40NywxNi40NywwLDAsMCwyLjIsMjMuMjZhMSwxLDAsMCwwLS4yLjZWMzBhMiwyLDAsMCwwLDIsMkgxNi43WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODcsMTYuMjlhLjM3LjM3''@;'; + put 'put ''LDAsMCwxLC4xNSwwLC40Mi40MiwwLDAsMC0uMTUsMFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwyMy4zMmwtMi0uNjFhNy4yMSw3LjIxLDAsMCwwLS41OC0xLjQxbDEtMS44NkEuMzguMzgsMCww''@;'; + put 'put ''LDAsMzIsMTlsLTEuNDUtMS40NWEuMzYuMzYsMCwwLDAtLjQ0LS4wN2wtMS44NCwxYTcuMTUsNy4xNSwwLDAsMC0xLjQzLS42MWwtLjYxLTJhLjM2LjM2LDAsMCwwLS4zNi0uMjRIMjMuODJhLjM2LjM2LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNmwtMS44Mi0xYS4zNS4z''@;'; + put 'put ''NSwwLDAsMC0uNDMuMDdMMTcuNjksMTlhLjM4LjM4LDAsMCwwLS4wNi40NGwxLDEuODJBNi43Nyw2Ljc3LDAsMCwwLDE4LDIyLjY5bC0yLC42YS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNUEuMzUuMzUsMCwwLDAsMTYsMjZsMiwuNjFhNyw3LDAsMCwwLC42LDEuNDFsLTEsMS45MWEuMzYuMzYs''@;'; + put 'put ''MCwwLDAsLjA2LjQzbDEuNDUsMS40NWEuMzguMzgsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA5LDcuMDksMCwwLDAsMS40LjU3bC42LDJhLjM4LjM4LDAsMCwwLC4zNS4yNmgyLjA1YS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yLjA1YTYuOTIsNi45MiwwLDAsMCwxLjM4LS41N2wxLjg5LDFh''@;'; + put 'put ''LjM2LjM2LDAsMCwwLC40My0uMDdMMzIsMzAuNEEuMzUuMzUsMCwwLDAsMzIsMzBsLTEtMS44OGE3LDcsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM2LjM2LDAsMCwwLC4yNi0uMzVWMjMuNjdBLjM2LjM2LDAsMCwwLDMzLjY4LDIzLjMyWk0yNC44NSwyOGEzLjM0LDMuMzQsMCwxLDEsMy4zMy0z''@;'; + put 'put ''LjMzQTMuMzQsMy4zNCwwLDAsMSwyNC44NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTQuNjciIGN5PSI4LjMiIHI9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+''@;'; + put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTYuNDQsMzEuODJhMi4xNSwyLjE1LDAsMCwxLS4zOC0yLjU1bC41My0xLTEuMDktLjMzQTIuMTQsMi4xNCwwLDAsMSwxNCwyNS44NFYyMy43OWEyLjE2LDIuMTYsMCwwLDEsMS41My0yLjA3bDEuMDktLjMzLS41Mi0xYTIuMTcsMi4xNywwLDAsMSwu''@;'; + put 'put ''MzUtMi41MiwxOC45MiwxOC45MiwwLDAsMC0yLjMyLS4xNkExNS41OCwxNS41OCwwLDAsMCwyLDIzLjA3djcuNzVhMSwxLDAsMCwwLDEsMUgxNi40NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNywyMy40Nmwt''@;'; + put 'put ''Mi0uNmE2LjczLDYuNzMsMCwwLDAtLjU4LTEuNDJsMS0xLjg2YS4zNS4zNSwwLDAsMC0uMDctLjQzbC0xLjQ1LTEuNDZhLjM4LjM4LDAsMCwwLS40My0uMDdsLTEuODUsMWE3Ljc0LDcuNzQsMCwwLDAtMS40My0uNmwtLjYxLTJhLjM4LjM4LDAsMCwwLS4zNi0uMjVIMjMuODRhLjM4LjM4LDAs''@;'; + put 'put ''MCwwLS4zNS4yNmwtLjYsMmE2Ljg1LDYuODUsMCwwLDAtMS40NS42MWwtMS44MS0xYS4zOC4zOCwwLDAsMC0uNDQuMDZsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LjI0LDcuMjQsMCwwLDAsMTgsMjIuODNsLTIsLjYxYS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNWEu''@;'; + put 'put ''MzYuMzYsMCwwLDAsLjI2LjM1bDIsLjYxYTcuMjksNy4yOSwwLDAsMCwuNiwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LjE2LDMyYS4zOC4zOCwwLDAsMCwuNDQuMDZsMS44Ny0xYTcuMDksNy4wOSwwLDAsMCwxLjQuNTdsLjYsMi4wNWEuMzguMzgsMCwwLDAsLjM2LjI2aDIu''@;'; + put 'put ''MDVhLjM4LjM4LDAsMCwwLC4zNS0uMjZsLjYtMi4wNWE2LjY4LDYuNjgsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zOC4zOCwwLDAsMCwuNDQtLjA2TDMyLDMwLjU1YS4zOC4zOCwwLDAsMCwuMDYtLjQ0bC0xLTEuODhhNi45Miw2LjkyLDAsMCwwLC41Ny0xLjM4bDItLjYxYS4zOS4zOSwwLDAs''@;'; + put 'put ''MCwuMjctLjM1VjIzLjgyQS40LjQsMCwwLDAsMzMuNywyMy40NlptLTguODMsNC43MmEzLjM0LDMuMzQsMCwxLDEsMy4zMy0zLjM0QTMuMzQsMy4zNCwwLDAsMSwyNC44NywyOC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICcpLGUuQ2xy''@;'; + put 'put ''U2hhcGVIYXJkRHJpdmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDhhMiwyLDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yWk0zMiwyOEg0VjhIMzJWMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIxMC4yNSIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyOS44MSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIyNS40MiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIy''@;'; + put 'put ''OS44MSIgY3k9IjI1LjQyIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS44OCwxOC4wOGEzLjU5LDMuNTksMCwxLDAsMy41OS0zLjU5LDMuODQsMy44NCwwLDAsMC0uOTEuMTNMMTUsMTYuMTZh''@;'; + put 'put ''Mi4wOCwyLjA4LDAsMCwxLC41LS4wNywyLDIsMCwxLDEtMiwyLDEuNjQsMS42NCwwLDAsMSwuMDgtLjVMMTIsMTcuMTZBMy41MywzLjUzLDAsMCwwLDExLjg4LDE4LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; + put 'put ''PSJNMTUuNDcsMjUuNzNhNy42Niw3LjY2LDAsMCwxLTcuNjUtNy42NSw3LjU1LDcuNTUsMCwwLDEsLjI3LTJMNi41NCwxNS43YTkuMjQsOS4yNCwwLDAsMCwxNy44LDQuOTVIMjIuNjZBNy42NCw3LjY0LDAsMCwxLDE1LjQ3LDI1LjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTciIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMjIsMTcuODNhLjguOCwwLDAsMC0uOC0uOEgyNC42NmE5LjI2LDkuMjYsMCwwLDAtOS4xOS04LjIsOS4zNiw5LjM2LDAsMCwwLTIuMzguMzJsLjQyLDEuNTRhNy44Niw3Ljg2LDAsMCwxLDItLjI2QTcuNjYsNy42Niww''@;'; + put 'put ''LDAsMSwyMywxN0gyMC45MmEuOC44LDAsMCwwLDAsMS42aDYuNUEuOC44LDAsMCwwLDI4LjIyLDE3LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCww''@;'; + put 'put ''LDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTEyLDE3LjE2bDEuNTQuNDJhMS42NCwxLjY0LDAsMCwwLS4wOC41LDIsMiwwLDEsMCwyLTIsMi4wOCwyLjA4LDAsMCwwLS41LjA3bC0uNDEtMS41NGEzLjg0LDMuODQsMCwwLDEsLjkxLS4xMywzLjU5LDMuNTksMCwxLDEt''@;'; + put 'put ''My41OSwzLjU5QTMuNTMsMy41MywwLDAsMSwxMiwxNy4xNlpNNS4zMSw4QTEuMjUsMS4yNSwwLDEsMSw0LjA2LDkuMjUsMS4yNSwxLjI1LDAsMCwxLDUuMzEsOFptMCwyMC4wNmExLjI1LDEuMjUsMCwxLDEsMS4yNS0xLjI1QTEuMjUsMS4yNSwwLDAsMSw1LjMxLDI4LjA2Wm0xMC4xNi0uNzNB''@;'; + put 'put ''OS4yMiw5LjIyLDAsMCwxLDYuNTQsMTUuN2wxLjU1LjQxYTcuNTUsNy41NSwwLDAsMC0uMjcsMiw3LjY0LDcuNjQsMCwwLDAsMTQuODQsMi41N2gxLjY4QTkuMjUsOS4yNSwwLDAsMSwxNS40NywyNy4zM1ptMTItOC43aC02LjVhLjguOCwwLDAsMSwwLTEuNkgyM2E3LjY2LDcuNjYsMCwwLDAt''@;'; + put 'put ''Ny41Ny02LjYsNy44Niw3Ljg2LDAsMCwwLTIsLjI2bC0uNDItMS41NGE5LjM2LDkuMzYsMCwwLDEsMi4zOC0uMzJBOS4yNiw5LjI2LDAsMCwxLDI0LjY2LDE3aDIuNzZhLjguOCwwLDAsMSwwLDEuNlptMy4zOSw5LjQzYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwx''@;'; + put 'put ''LDMwLjgxLDI4LjA2Wm0wLTE3LjU2YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjgxLDEwLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlSGFyZERyaXZlRGlza3M9KDAsYS5jbHJJ''@;'; + put 'put ''Y29uU1ZHKSgnPHBhdGggZD0iTTI2LDUuNzRBMS43NCwxLjc0LDAsMCwwLDI0LjI2LDRIMy43NEExLjc0LDEuNzQsMCwwLDAsMiw1Ljc0VjIwLjI2QTEuNzQsMS43NCwwLDAsMCwzLjc0LDIySDRWNkgyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxu''@;'; + put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTMwLDkuNzRBMS43NCwxLjc0LDAsMCwwLDI4LjI2LDhINy43NEExLjc0LDEuNzQsMCwwLDAsNiw5Ljc0VjI0LjI2QTEuNzQsMS43NCwwLDAsMCw3Ljc0LDI2SDhWMTBIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg''@;'; + put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yNiwxMkgxMS43NEExLjc0LDEuNzQsMCwwLDAsMTAsMTMuNzRWMjguMjZBMS43NCwxLjc0LDAsMCwwLDExLjc0LDMwSDMyLjI2QTEuNzQsMS43NCwwLDAsMCwzNCwyOC4yNlYxMy43NEExLjc0LDEuNzQsMCwwLDAsMzIuMjYsMTJaTTMyLDI4''@;'; + put 'put ''SDEyVjE0SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMjMuNjhhMi42NCwyLjY0LDAsMSwwLTIuNy0yLjYzQTIuNjcsMi42NywwLDAsMCwxOS45NCwyMy42OFptMC0zLjg3YTEuMjQsMS4yNCww''@;'; + put 'put ''LDEsMS0xLjI5LDEuMjRBMS4yNywxLjI3LDAsMCwxLDE5Ljk0LDE5LjgxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMTYuMjJhNC45Myw0LjkzLDAsMCwxLDQuOTUsNC4zNUgyMy43MVYyMmg0LjQx''@;'; + put 'put ''YS43LjcsMCwwLDAsMC0xLjRIMjYuMzFhNi4zMyw2LjMzLDAsMCwwLTYuMzctNS43NSw2LjU4LDYuNTgsMCwwLDAtMS40OC4xN2wuMzUsMS4zN0E0LjczLDQuNzMsMCwwLDEsMTkuOTQsMTYuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAg''@;'; + put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0xOS45NCwyNy4yN2E2LjQyLDYuNDIsMCwwLDAsNS42Ny0zLjM1SDIzLjkzYTUsNSwwLDAsMS00LDEuOTUsNC45MSw0LjkxLDAsMCwxLTUtNC44Miw1LjE2LDUuMTYsMCwwLDEsLjA4LS43OUwxMy42MywyMGE3LDcsMCwwLDAtLjA5LDFBNi4zMiw2LjMyLDAsMCww''@;'; + put 'put ''LDE5Ljk0LDI3LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsNS43NEExLjc0LDEuNzQsMCwwLDAsMjQuMjYsNEgzLjc0QTEuNzQsMS43NCwwLDAsMCwyLDUuNzRWMjAuMjZBMS43NCwxLjc0LDAsMCww''@;'; + put 'put ''LDMuNzQsMjJINFY2SDI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCw5Ljc0QTEuNzQsMS43NCwwLDAsMCwyOC4yNiw4SDcuNzRBMS43NCwxLjc0LDAsMCwwLDYsOS43NFYyNC4yNkExLjc0LDEuNzQsMCwwLDAs''@;'; + put 'put ''Ny43NCwyNkg4VjEwSDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS42MiwyMi42QTEuNTUsMS41NSwwLDEsMCwxOCwyMS4wNSwxLjYsMS42LDAsMCwwLDE5LjYyLDIyLjZaIiBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjI2LDEySDExLjc0QTEuNzQsMS43NCwwLDAsMCwxMCwxMy43NFYyOC4yNkExLjc0LDEuNzQsMCwwLDAsMTEuNzQsMzBIMzIuMjZBMS43NCwxLjc0LDAsMCwwLDM0LDI4LjI2VjEzLjc0QTEuNzQsMS43NCww''@;'; + put 'put ''LDAsMCwzMi4yNiwxMlpNMTkuNjIsMTcuNzRhMy4zMSwzLjMxLDAsMSwxLTMuMzgsMy4zMUEzLjM1LDMuMzUsMCwwLDEsMTkuNjIsMTcuNzRabTAsMTEuMTNhNy45NCw3Ljk0LDAsMCwxLTgtNy44Miw3LjgzLDcuODMsMCwwLDEsLjExLTEuMjlsMS43NS4zYTUuMzYsNS4zNiwwLDAsMC0uMTEs''@;'; + put 'put ''MSw2LjE4LDYuMTgsMCwwLDAsNi4yOCw2LjA2LDYuMzUsNi4zNSwwLDAsMCw1LTIuNDZoMi4xQTguMDYsOC4wNiwwLDAsMSwxOS42MiwyOC44N1pNMjkuODksMjIuMkgyNC4zNlYyMC40NGgxLjQ4QTYuMTksNi4xOSwwLDAsMCwxOS42MiwxNWE2LjQ4LDYuNDgsMCwwLDAtMS40MS4xNmwtLjQ1''@;'; + put 'put ''LTEuN2E4LjE2LDguMTYsMCwwLDEsMS44Ni0uMjIsOCw4LDAsMCwxLDgsNy4yMWgyLjI2YS44OC44OCwwLDAsMSwwLDEuNzZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlTlZNZT0oMCxhLmNsckljb25TVkcpKCc8cGF0''@;'; + put 'put ''aCBkPSJNMjcsMjJWMTRhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMkgyNUEyLDIsMCwwLDAsMjcsMjJaTTExLDE0SDI1djhIMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9''@;'; + put 'put ''IjE5IiB5PSI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI1LjAxIiB5PSI2IiB3aWR0aD0iMS45NyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LjgsOEgxNi44N1Y2aC0xMUw3Ljc4LDQuMDhhMSwxLDAsMCwwLDAtMS40MiwxLDEsMCwwLDAtMS40MSwwTDIsNyw2LjM3LDExLjRhMSwxLDAsMCwwLDEuNDEsMCwxLDEsMCwwLDAsMC0xLjQxWiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuNjEsMjQuNjhhMSwxLDAsMCwwLTEuNDEsMCwxLDEsMCwwLDAsMCwxLjQyTDMwLjEsMjhIMTl2MkgzMC4ybC0yLDJhMSwxLDAsMCwwLDAsMS40MSwxLDEsMCwwLDAsLjcuMjksMSwxLDAs''@;'; + put 'put ''MCwwLC43MS0uMjlMMzQsMjkuMDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSIyOCIgd2lkdGg9IjQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYi''@;'; + put 'put ''IC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSIyOCIgd2lkdGg9IjEuOTciIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVTU0Q9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZI''@;'; + put 'put ''NEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjEw''@;'; + put 'put ''LjI1IiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMTAuMjUiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAg''@;'; + put 'put ''ICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjI1LjQyIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMjUuNDIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; + put 'put ''ci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDE4LjYyYzEuMzIuMzEsMS45MS41NCwxLjkxLDEuMjJzLS41MywxLjA5LTEuNTUsMS4wOWE0LDQsMCwwLDEtMi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEt''@;'; + put 'put ''Mi41MnMtMS4xNS0yLjA1LTIuODctMi40NGMtMS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDEwLDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMUE0LjU4LDQuNTgsMCwwLDAsMTAsMTMuNjljLTEuNzQsMC0zLDEuMDUtMywyLjQ5UzguMjYsMTguMjIs''@;'; + put 'put ''MTAsMTguNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy44MywyMC45M2E0LDQsMCwwLDEtMi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEtMi41MlMxOS43''@;'; + put 'put ''MywxNy42NSwxOCwxNy4yNmMtMS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDE3LjQ4LDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMWE0LjU2LDQuNTYsMCwwLDAtMy4xMi0xLjE1Yy0xLjczLDAtMywxLjA1LTMsMi40OXMxLjE5LDIsMi44OSwyLjQ0''@;'; + put 'put ''YzEuMzIuMzEsMS45MS41NCwxLjkxLDEuMjJTMTguODUsMjAuOTMsMTcuODMsMjAuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS45LDE4YzAtMi40MS0xLjkyLTQuMTItNC42NC00LjEyaC0yLjl2OC4y''@;'; + put 'put ''NGgyLjlDMjgsMjIuMDgsMjkuOSwyMC4zNywyOS45LDE4Wm0tNi0yLjc2aDEuNTZhMi43NywyLjc3LDAsMSwxLDAsNS41M0gyMy44NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAs''@;'; + put 'put ''Miw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk01LjIxLDhBMS4yNSwxLjI1LDAsMSwxLDQsOS4yNSwxLjI1LDEuMjUsMCwwLDEsNS4yMSw4Wm0wLDIwYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDUuMjEsMjha''@;'; + put 'put ''bTUuMDYtNS43OGE1LDUsMCwwLDEtMy41Mi0xLjM0bC44Ni0xLjA2YTQsNCwwLDAsMCwyLjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIyLTIuNDksMy0yLjQ5YTQuNTgsNC41OCwwLDAsMSwzLjEy''@;'; + put 'put ''LDEuMTVsLS44MSwxLjFBMy42OCwzLjY4LDAsMCwwLDEwLDE1YTEuMjUsMS4yNSwwLDAsMC0xLjM5LDEuMDhjMCwuNjcuNjEuOTEsMS45MiwxLjIxLDEuNzIuMzksMi44Ny45NCwyLjg3LDIuNDRTMTIuMjQsMjIuMjIsMTAuMjcsMjIuMjJabTcuNTEsMGE1LDUsMCwwLDEtMy41Mi0xLjM0bC44''@;'; + put 'put ''Ni0xLjA2YTQsNCwwLDAsMCwyLjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIzLTIuNDksMy0yLjQ5YTQuNTYsNC41NiwwLDAsMSwzLjEyLDEuMTVsLS44MSwxLjFhMy42OCwzLjY4LDAsMCwwLTIu''@;'; + put 'put ''MzctMSwxLjI1LDEuMjUsMCwwLDAtMS4zOSwxLjA4YzAsLjY3LjYxLjkxLDEuOTIsMS4yMSwxLjcyLjM5LDIuODcuOTQsMi44NywyLjQ0UzE5Ljc1LDIyLjIyLDE3Ljc4LDIyLjIyWm00LjU4LS4xNFYxMy44NGgyLjljMi43MiwwLDQuNjQsMS43MSw0LjY0LDQuMTJTMjgsMjIuMDgsMjUuMjYs''@;'; + put 'put ''MjIuMDhaTTMwLjY5LDI4YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjY5LDI4Wm0wLTE3LjVhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsMzAuNjksMTAuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; + put 'put ''LTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMTUuMmgxLjU2YTIuNzcsMi43NywwLDEsMSwwLDUuNTNIMjMuODZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlQmx1ZXRvb3RoPSgwLGEuY2xySWNvblNW''@;'; + put 'put ''RykoJzxwYXRoIGQ9Ik0yNi42NCwyNS4yNywxOSwxNy41MywxOSwzLDI1LjIxLDkuNGwtNS42NSw1Ljc5TDIxLDE2LjYybDUuNjgtNS44MmEyLDIsMCwwLDAsMC0yLjc4TDIwLjQ4LDEuN0EyLjA4LDIuMDgsMCwwLDAsMTguODUsMSwyLDIsMCwwLDAsMTcsM1YxNS4zOEwxMC4wNSw4LjI3QTEs''@;'; + put 'put ''MSwwLDAsMCw4LjYyLDkuNjZMMTYuNzksMTgsOS4wNiwyNmExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzM2EyLjA3LDIuMDcsMCwwLDAsLjcxLDEuNjJBMiwyLDAsMCwwLDE5LDM1YTEuOTQsMS45NCwwLDAsMCwxLjQyLS42bDYu''@;'; + put 'put ''MjMtNi4zOEEyLDIsMCwwLDAsMjYuNjQsMjUuMjdaTTE5LDMzLjA1VjIwLjI5bDYuMjEsNi4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICA8cGF0aCBkPSJNMjYuNTIsMjQuNTJsLTUuNjUtNS44My0xLjQ2LTEuNXYtMTJMMjMuNzksOS43bC0z''@;'; + put 'put ''LjYsMy43MSwyLjI0LDIuMjksNC4wOS00LjIyYTIuNTQsMi41NCwwLDAsMCwwLTMuNTZMMjAuNTcsMS43OEEyLjU0LDIuNTQsMCwwLDAsMTYuMiwzLjU1VjEzLjg2bC01LjUzLTUuN2ExLjYsMS42LDAsMSwwLTIuMywyLjIzTDE1Ljc1LDE4bC03LDcuMTlhMS42LDEuNiwwLDAsMCwwLDIuMjYs''@;'; + put 'put ''MS42MywxLjYzLDAsMCwwLDEuMTIuNDUsMS41OCwxLjU4LDAsMCwwLDEuMTUtLjQ5bDUuMTEtNS4yN1YzMi40NWEyLjUzLDIuNTMsMCwwLDAsMS41OSwyLjM2LDIuNDQsMi40NCwwLDAsMCwuOTUuMTksMi41NiwyLjU2LDAsMCwwLDEuODMtLjc3bDUuOTUtNi4xNUEyLjU0LDIuNTQsMCwwLDAs''@;'; + put 'put ''MjYuNTIsMjQuNTJaTTE5LjQsMzAuODNWMjEuNzdsNC4zOSw0LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlQmx1ZXRvb3RoT2ZmPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOSwzLDI1LjIyLDkuNGwtNS42Niw1LjhMMjEs''@;'; + put 'put ''MTYuNjNsNS42OC01LjgzYTIsMiwwLDAsMCwwLTIuNzhMMjAuNDgsMS43QTIsMiwwLDAsMCwxOC44NSwxLDIsMiwwLDAsMCwxNywzdjExLjRsMiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQuNzcsNSwzLjM2LDYuNDIsMTUuODks''@;'; + put 'put ''MTksOS4wNiwyNmExLDEsMCwwLDAsLjcxLDEuNywxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzMi45NGEyLjA4LDIuMDgsMCwwLDAsLjcxLDEuNjNBMiwyLDAsMCwwLDE5LDM1YTIsMiwwLDAsMCwxLjQyLS42bDUuNDEtNS41NCwzLjU0LDMuNTNMMzAuNzcsMzFaTTE5LDMzLjA1di0xMWw1''@;'; + put 'put ''LjQxLDUuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTkuMzEsNS4xNywyMy43LDkuN2wtMy41OSwzLjcxLDIuMjQsMi4yOSw0LjA5LTQuMjJhMi41NiwyLjU2LDAsMCwwLDAtMy41NmwtNi02LjE0YTIuNTEsMi41MSwwLDAsMC0y''@;'; + put 'put ''Ljc3LS41OSwyLjU0LDIuNTQsMCwwLDAtMS42LDIuMzZ2MTBsMy4yMSwzLjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNNC41LDUsMy4wOSw2LjQyLDE1LjE3LDE4LjUxLDguNywyNS4xOUExLjYsMS42LDAsMCwwLDkuODUsMjcuOSwxLjU3''@;'; + put 'put ''LDEuNTcsMCwwLDAsMTEsMjcuNDFsNS4xMS01LjI3VjMyLjQ1YTIuNTQsMi41NCwwLDAsMCwxLjYsMi4zNiwyLjQ0LDIuNDQsMCwwLDAsLjk1LjE5LDIuNTUsMi41NSwwLDAsMCwxLjgyLS43N2w1LjEyLTUuMjksMy40OSwzLjQ4TDMwLjUsMzFaTTE5LjgxLDMwLjgzVjIyLjY1bDQsNFoiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZVByb2Nlc3NPblZNPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy40OSwyNi4yOGExLDEsMCwwLDAtMS4yLS43bC0yLjQ5LjY3YTE0LjIzLDE0LjIzLDAsMCwwLDIuNC02Ljc1QTE0LjQ4LDE0''@;'; + put 'put ''LjQ4LDAsMCwwLDI3LjM3LDcuMzUsMSwxLDAsMCwwLDI2LDcuNDRhMSwxLDAsMCwwLC4wOSwxLjQxLDEyLjQ1LDEyLjQ1LDAsMCwxLDQuMTYsMTAuNDYsMTIuMTksMTIuMTksMCwwLDEtMiw1Ljc0TDI4LDIyLjU0YTEsMSwwLDEsMC0xLjk1LjE2bC41LDYuNDQsNi4yNS0xLjY2QTEsMSwwLDAs''@;'; + put 'put ''MCwzMy40OSwyNi4yOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjMxLDE3LjA4YTEuMDYsMS4wNiwwLDAsMCwuNDQuMTYsMSwxLDAsMCwwLDEuMTItLjg1QTEyLjIxLDEyLjIxLDAsMCwxLDE4LjY5LDUuODRMMTYuNDUsNy4zN2Ex''@;'; + put 'put ''LDEsMCwwLDAsLjQ3LDEuNzlBMSwxLDAsMCwwLDE3LjU2LDlsNS4zMy0zLjY2TDE4LjMzLjc2YTEsMSwwLDEsMC0xLjM5LDEuMzhsMS43LDEuN0ExNC4yLDE0LjIsMCwwLDAsMy44OSwxNi4xMiwxLDEsMCwwLDAsNC4zMSwxNy4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMS43MywyOS45M2ExMiwxMiwwLDAsMS00Ljg0LjUxLDEyLjMsMTIuMywwLDAsMS05LjU3LTYuM2wyLjQ5LjkzYTEsMSwwLDAsMCwuNjktMS44NGwtNC41OS0xLjdoMEw0LjQ0LDIxLDMuMzMsMjcuMzVhMSwxLDAsMCwwLC43OSwxLjEzbC4xNywwYTEs''@;'; + put 'put ''MSwwLDAsMCwxLS44MWwuNDItMi40YTE0LjMsMTQuMywwLDAsMCwxMSw3LjE0LDEzLjkxLDEzLjkxLDAsMCwwLDUuNjMtLjYsMSwxLDAsMCwwLS42LTEuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwxM0gxNGExLDEsMCwwLDAt''@;'; + put 'put ''MSwxdjhhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWMTRBMSwxLDAsMCwwLDIyLDEzWm0tMSw4SDE1VjE1aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlQXNzaWduVXNlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBk''@;'; + put 'put ''PSJNMTgsMTdhNy40Niw3LjQ2LDAsMSwwLTcuNDUtNy40NkE3LjQ2LDcuNDYsMCwwLDAsMTgsMTdaTTE4LDQuMDdhNS40Niw1LjQ2LDAsMSwxLTUuNDUsNS40NUE1LjQ2LDUuNDYsMCwwLDEsMTgsNC4wN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxw''@;'; + put 'put ''YXRoIGQ9Ik02LDMxLjg5VjI1Ljc3YTE2LjEzLDE2LjEzLDAsMCwxLDEyLTUsMTYuNjEsMTYuNjEsMCwwLDEsOC43MSwyLjMzbDEuMzUtMS41MUExOC41MywxOC41MywwLDAsMCwxOCwxOC43NCwxNy43LDE3LjcsMCwwLDAsNC4yMSwyNC44YTEsMSwwLDAsMC0uMjEuNnY2LjQ5QTIuMDYsMi4w''@;'; + put 'put ''NiwwLDAsMCw2LDM0SDE4LjM5bC0xLjktMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMS44OSwzMCwzMkgyNi44NWwtMS44LDJIMzBhMi4wNiwyLjA2LDAsMCwwLDItMi4wN1YyNi4ybC0yLDIuMjNaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzQuNzYsMTguNjJhMSwxLDAsMCwwLTEuNDEuMDhsLTExLjYyLDEzLTUuMi01LjU5QTEsMSwwLDAsMCwxNS4xMiwyNmExLDEsMCwwLDAtLjA2LDEuNDJsNi42OSw3LjJMMzQuODQsMjBBMSwxLDAsMCwwLDM0Ljc2LDE4''@;'; + put 'put ''LjYyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PGNpcmNsZSBjeD0iMTcuOTkiIGN5PSIxMC4zNiIgcj0iNi44MSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTIsMjYuNjVhMi44LDIuOCwwLDAsMSw0''@;'; + put 'put ''Ljg1LTEuOEwyMC43MSwyOWw2Ljg0LTcuNjNBMTYuODEsMTYuODEsMCwwLDAsMTgsMTguNTUsMTYuMTMsMTYuMTMsMCwwLDAsNS41LDI0YTEsMSwwLDAsMC0uMi42MVYzMGEyLDIsMCwwLDAsMS45NCwyaDguNTdsLTMuMDctMy4zQTIuODEsMi44MSwwLDAsMSwxMiwyNi42NVoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI4Ljc2LDMyYTIsMiwwLDAsMCwxLjk0LTJWMjYuMjRMMjUuNTcsMzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMy43NywxOC42MmExLDEsMCwwLDAtMS40Mi4w''@;'; + put 'put ''OGwtMTEuNjIsMTMtNS4yLTUuNTlBMSwxLDAsMCwwLDE0LjEyLDI2YTEsMSwwLDAsMCwwLDEuNDJsNi42OCw3LjJMMzMuODQsMjBBMSwxLDAsMCwwLDMzLjc3LDE4LjYyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlQXRvbT0oMCxhLmNs''@;'; + put 'put ''ckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTQuMDVhNCw0LDAsMSwwLDQsNEE0LDQsMCwwLDAsMTgsMTQuMDVabTAsNi40NGEyLjQyLDIuNDIsMCwxLDEsMi40Mi0yLjQyQTIuNDIsMi40MiwwLDAsMSwxOCwyMC40OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; + put 'put ''IiAvPjxwYXRoIGQ9Ik0yNC4yMywxMS43MWEzOS4xNCwzOS4xNCwwLDAsMC00LjU3LTMuOTIsMjIuODYsMjIuODYsMCwwLDEsMy40OC0xLjcyYy4zMi0uMTIuNjItLjIxLjkyLS4zYTIuMjgsMi4yOCwwLDAsMCwzLjgxLS40NiwzLjMxLDMuMzEsMCwwLDEsMS45Mi44NGMxLjE5LDEuMTksMS4y''@;'; + put 'put ''MiwzLjU5LjEsNi41OC40OS42NS45NCwxLjMxLDEuMzUsMiwuMTctLjQuMzUtLjc5LjQ5LTEuMTgsMS40Ny0zLjg1LDEuMjgtNy0uNTMtOC43OGE1LjI5LDUuMjksMCwwLDAtMy4zMy0xLjQ0LDIuMjksMi4yOSwwLDAsMC00LjMxLjU0Yy0uMzcuMTEtLjc0LjIyLTEuMTMuMzdhMjUuNzksMjUu''@;'; + put 'put ''NzksMCwwLDAtNC41NywyLjM1QTI2LjIxLDI2LjIxLDAsMCwwLDEzLjI4LDQuMmMtMy44NS0xLjQ2LTctMS4yOC04Ljc3LjUzQzIuODUsNi40LDIuNTgsOS4xNywzLjY4LDEyLjU5YTIuMjgsMi4yOCwwLDAsMCwxLjU5LDMuNjdjLjMyLjYxLjY3LDEuMjIsMS4wNiwxLjgyQTI1LjU0LDI1LjU0''@;'; + put 'put ''LDAsMCwwLDQsMjIuNjZjLTEuNDcsMy44NC0xLjI4LDcsLjUzLDguNzdhNS42Myw1LjYzLDAsMCwwLDQuMTIsMS41MSwxMy4zNCwxMy4zNCwwLDAsMCw0LjY1LTEsMjYuMjEsMjYuMjEsMCwwLDAsNC41OC0yLjM1QTI1Ljc5LDI1Ljc5LDAsMCwwLDIyLjQzLDMyYTE0LjE2LDE0LjE2LDAsMCww''@;'; + put 'put ''LDMuNjUuOUEyLjMsMi4zLDAsMCwwLDMwLjQ2LDMyYTQuNTUsNC41NSwwLDAsMCwuNzQtLjU3YzEuODEtMS44MSwyLTQuOTMuNTMtOC43N0EzMi42OCwzMi42OCwwLDAsMCwyNC4yMywxMS43MVpNMTIuNTcsMzAuMDljLTMsMS4xNS01LjQ1LDEuMTMtNi42NS0uMDhzLTEuMjMtMy42Mi0uMDct''@;'; + put 'put ''Ni42NGEyMi43NywyMi43NywwLDAsMSwxLjcxLTMuNDgsNDAuMTksNDAuMTksMCwwLDAsMy45Miw0LjU2Yy40My40My44Ny44NSwxLjMxLDEuMjVxLjktLjQ2LDEuODMtMS4wNWMtLjU4LS41Mi0xLjE2LTEtMS43Mi0xLjYxYTM0LDM0LDAsMCwxLTUuNzQtNy40N0EyLjI5LDIuMjksMCwwLDAs''@;'; + put 'put ''NS41LDExLjY5aDBjLS43NS0yLjUtLjYyLTQuNDkuNDMtNS41NGEzLjcyLDMuNzIsMCwwLDEsMi43Mi0uOTIsMTEuNCwxMS40LDAsMCwxLDMuOTMuODQsMjIuODYsMjIuODYsMCwwLDEsMy40OCwxLjcyLDM5LjE0LDM5LjE0LDAsMCwwLTQuNTcsMy45MmMtLjQ0LjQ0LS44Ny45LTEuMjksMS4z''@;'; + put 'put ''NmEyMC4yNywyMC4yNywwLDAsMCwxLDEuODVjLjU0LS42MSwxLjA5LTEuMjEsMS42OC0xLjhhMzYuMzMsMzYuMzMsMCwwLDEsNS00LjE3LDM2Ljg4LDM2Ljg4LDAsMCwxLDQuOTUsNC4xNywzNi4yNiwzNi4yNiwwLDAsMSw0LjE3LDUsMzcsMzcsMCwwLDEtNC4xNyw1QTMwLjY4LDMwLjY4LDAs''@;'; + put 'put ''MCwxLDEyLjU3LDMwLjA5Wk0yOS43OSwzMGwtLjE2LjEzYTIuMjcsMi4yNywwLDAsMC0zLjUuNzIsMTIuNTcsMTIuNTcsMCwwLDEtMy0uNzcsMjIsMjIsMCwwLDEtMy40OC0xLjcyLDM5LjE0LDM5LjE0LDAsMCwwLDQuNTctMy45MiwzOC4yNiwzOC4yNiwwLDAsMCwzLjkyLTQuNTYsMjIuODgs''@;'; + put 'put ''MjIuODgsMCwwLDEsMS43MiwzLjQ4QzMxLDI2LjM5LDMxLDI4LjgxLDI5Ljc5LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LjIzLDExLjcxYTM5LjE0LDM5LjE0LDAsMCwwLTQuNTctMy45MiwyMi44NiwyMi44NiwwLDAsMSwz''@;'; + put 'put ''LjQ4LTEuNzJjLjMyLS4xMi42Mi0uMjEuOTItLjNhMi4yOCwyLjI4LDAsMCwwLDMuODEtLjQ2LDMuMzEsMy4zMSwwLDAsMSwxLjkyLjg0YzEuMTksMS4xOSwxLjIyLDMuNTkuMSw2LjU4LjQ5LjY1Ljk0LDEuMzEsMS4zNSwyLC4xNy0uNC4zNS0uNzkuNDktMS4xOCwxLjQ3LTMuODUsMS4yOC03''@;'; + put 'put ''LS41My04Ljc4YTUuMjksNS4yOSwwLDAsMC0zLjMzLTEuNDQsMi4yOSwyLjI5LDAsMCwwLTQuMzEuNTRjLS4zNy4xMS0uNzQuMjItMS4xMy4zN2EyNS43OSwyNS43OSwwLDAsMC00LjU3LDIuMzVBMjYuMjEsMjYuMjEsMCwwLDAsMTMuMjgsNC4yYy0zLjg1LTEuNDYtNy0xLjI4LTguNzcuNTND''@;'; + put 'put ''Mi44NSw2LjQsMi41OCw5LjE3LDMuNjgsMTIuNTlhMi4yOCwyLjI4LDAsMCwwLDEuNTksMy42N2MuMzIuNjEuNjcsMS4yMiwxLjA2LDEuODJBMjUuNTQsMjUuNTQsMCwwLDAsNCwyMi42NmMtMS40NywzLjg0LTEuMjgsNywuNTMsOC43N2E1LjYzLDUuNjMsMCwwLDAsNC4xMiwxLjUxLDEzLjM0''@;'; + put 'put ''LDEzLjM0LDAsMCwwLDQuNjUtMSwyNi4yMSwyNi4yMSwwLDAsMCw0LjU4LTIuMzVBMjUuNzksMjUuNzksMCwwLDAsMjIuNDMsMzJhMTQuMTYsMTQuMTYsMCwwLDAsMy42NS45QTIuMywyLjMsMCwwLDAsMzAuNDYsMzJhNC41NSw0LjU1LDAsMCwwLC43NC0uNTdjMS44MS0xLjgxLDItNC45My41''@;'; + put 'put ''My04Ljc3QTMyLjY4LDMyLjY4LDAsMCwwLDI0LjIzLDExLjcxWk0xMi41NywzMC4wOWMtMywxLjE1LTUuNDUsMS4xMy02LjY1LS4wOHMtMS4yMy0zLjYyLS4wNy02LjY0YTIyLjc3LDIyLjc3LDAsMCwxLDEuNzEtMy40OCw0MC4xOSw0MC4xOSwwLDAsMCwzLjkyLDQuNTZjLjQzLjQzLjg3Ljg1''@;'; + put 'put ''LDEuMzEsMS4yNXEuOS0uNDYsMS44My0xLjA1Yy0uNTgtLjUyLTEuMTYtMS0xLjcyLTEuNjFhMzQsMzQsMCwwLDEtNS43NC03LjQ3QTIuMjksMi4yOSwwLDAsMCw1LjUsMTEuNjloMGMtLjc1LTIuNS0uNjItNC40OS40My01LjU0YTMuNzIsMy43MiwwLDAsMSwyLjcyLS45MiwxMS40LDExLjQs''@;'; + put 'put ''MCwwLDEsMy45My44NCwyMi44NiwyMi44NiwwLDAsMSwzLjQ4LDEuNzIsMzkuMTQsMzkuMTQsMCwwLDAtNC41NywzLjkyYy0uNDQuNDQtLjg3LjktMS4yOSwxLjM2YTIwLjI3LDIwLjI3LDAsMCwwLDEsMS44NWMuNTQtLjYxLDEuMDktMS4yMSwxLjY4LTEuOGEzNi4zMywzNi4zMywwLDAsMSw1''@;'; + put 'put ''LTQuMTcsMzYuODgsMzYuODgsMCwwLDEsNC45NSw0LjE3LDM2LjI2LDM2LjI2LDAsMCwxLDQuMTcsNSwzNywzNywwLDAsMS00LjE3LDVBMzAuNjgsMzAuNjgsMCwwLDEsMTIuNTcsMzAuMDlaTTI5Ljc5LDMwbC0uMTYuMTNhMi4yNywyLjI3LDAsMCwwLTMuNS43MiwxMi41NywxMi41NywwLDAs''@;'; + put 'put ''MS0zLS43NywyMiwyMiwwLDAsMS0zLjQ4LTEuNzIsMzkuMTQsMzkuMTQsMCwwLDAsNC41Ny0zLjkyLDM4LjI2LDM4LjI2LDAsMCwwLDMuOTItNC41NiwyMi44OCwyMi44OCwwLDAsMSwxLjcyLDMuNDhDMzEsMjYuMzksMzEsMjguODEsMjkuNzksMzBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; + put 'put ''LWktc29saWQtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjE3Ljk5IiBjeT0iMTguMDciIHI9IjMuMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuNjYgMy4xMSkgcm90YXRlKC05LjIyKSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQmFyQ29k''@;'; + put 'put ''ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNSw3QTEsMSwwLDAsMCw0LDhWMzBhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCw1LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSw3QTEsMSwwLDAsMCw4LDhWMjZhMSwxLDAs''@;'; + put 'put ''MCwwLDIsMFY4QTEsMSwwLDAsMCw5LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTMsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMTMsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xNyw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwxNyw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTIxLDdhMSwxLDAsMCwwLTEsMVYyNmExLDEsMCww''@;'; + put 'put ''LDAsMiwwVjhBMSwxLDAsMCwwLDIxLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMjUsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yOSw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwyOSw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTMzLDdhMSwxLDAsMCwwLTEsMVYzMGExLDEsMCww''@;'; + put 'put ''LDAsMiwwVjhBMSwxLDAsMCwwLDMzLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz4nKSxlLkNsclNoYXBlQ2REdmQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEEx''@;'; + put 'put ''NCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMi4zMywxOGE0LjQ2LDQuNDYsMCwxLDAtNC40NSw0LjQ2QTQuNDYsNC40NiwwLDAsMCwyMi4zMywxOFpNMTcuODgsMjAuOUEy''@;'; + put 'put ''Ljg2LDIuODYsMCwxLDEsMjAuNzMsMTgsMi44NiwyLjg2LDAsMCwxLDE3Ljg4LDIwLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTcuODgsNy40M0gxOFY1Ljg0aC0uMTJBMTIuMjEsMTIuMjEsMCwwLDAsNS42OCwxNy43NWgxLjZB''@;'; + put 'put ''MTAuNjEsMTAuNjEsMCwwLDEsMTcuODgsNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMC4wOCwxOEgyOC40OXYwQTEwLjYxLDEwLjYxLDAsMCwxLDE4LjI1LDI4LjYzdjEuNkExMi4yMiwxMi4yMiwwLDAsMCwzMC4wOSwxOFMz''@;'; + put 'put ''MC4wOCwxOCwzMC4wOCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxMVY5LjQ0aC0uMTJhOC42Miw4LjYyLDAsMCwwLTguNiw4LjMyaDEuNmE3LDcsMCwwLDEsNy02LjcyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTE4LjI1LDI1djEuNkE4LjYxLDguNjEsMCwwLDAsMjYuNDgsMTh2MGgtMS42djBBNyw3LDAsMCwxLDE4LjI1LDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTE4LjE3LDEuOTJhMTYs''@;'; + put 'put ''MTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTguMTcsMS45MlpNMjYuMjMsMThoMS41NGE5LjYxLDkuNjEsMCwwLDEtOS42LDkuNTNIMThWMjZoLjE3QTguMDcsOC4wNywwLDAsMCwyNi4yMywxOFpNNi4wNSwxOEg0LjQ1di0uMDhBMTMuNzIsMTMuNzIsMCwwLDEsMTgsNC4yMXYxLjZBMTIu''@;'; + put 'put ''MTMsMTIuMTMsMCwwLDAsNi4wNSwxNy45MlptNC4wNSwwSDguNTZ2LS4wOEE5LjYxLDkuNjEsMCwwLDEsMTgsOC4zMlY5Ljg2YTguMDcsOC4wNywwLDAsMC03LjksOC4wNlptNC4zMi0uMDhhMy43NSwzLjc1LDAsMSwxLDMuNzUsMy43NUEzLjc1LDMuNzUsMCwwLDEsMTQuNDIsMTcuOTJabTMu''@;'; + put 'put ''NzUsMTMuNzFIMThWMzBoLjE3QTEyLjEzLDEyLjEzLDAsMCwwLDMwLjI4LDE4aDEuNkExMy43MywxMy43MywwLDAsMSwxOC4xNywzMS42M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUNvbnRhaW5lcj0oMCxhLmNsckljb25TVkcpKCc8''@;'; + put 'put ''cGF0aCBkPSJNMzIsMzBINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgzMmEyLDIsMCwwLDEsMiwyVjI4QTIsMiwwLDAsMSwzMiwzMFpNNCw4VjI4SDMyVjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSwyNS4zYS44Ljgs''@;'; + put 'put ''MCwwLDEtLjgtLjh2LTEzYS44LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSw5LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuOTIsMjUuM2EuOC44LDAsMCwxLS44LS44di0xM2EuOC44LDAsMCwxLDEuNiwwdjEzQS44''@;'; + put 'put ''LjgsMCwwLDEsMTQuOTIsMjUuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMSwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSwyMSwyNS4zWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTI3LDI1LjNhLjguOCwwLDAsMS0uOC0uOHYtMTNhLjguOCwwLDAsMSwxLjYsMHYxM0EuOC44LDAsMCwxLDI3LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzIs''@;'; + put 'put ''Nkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTkuNjMsMjQuMjNhLjc5Ljc5LDAsMCwxLS44MS43N0EuNzkuNzksMCwwLDEsOCwyNC4yM1YxMS43N0EuNzkuNzksMCwwLDEsOC44MiwxMWEuNzkuNzksMCwwLDEsLjgx''@;'; + put 'put ''Ljc3Wm02LDBhLjc5Ljc5LDAsMCwxLS44Mi43Ny43OS43OSwwLDAsMS0uODEtLjc3VjExLjc3YS43OS43OSwwLDAsMSwuODEtLjc3Ljc5Ljc5LDAsMCwxLC44Mi43N1ptNi4yMSwwYS43OS43OSwwLDAsMS0uODIuNzcuNzkuNzksMCwwLDEtLjgxLS43N1YxMS43N2EuNzkuNzksMCwwLDEsLjgx''@;'; + put 'put ''LS43Ny43OS43OSwwLDAsMSwuODIuNzdabTYuMTIsMGEuNzkuNzksMCwwLDEtLjgyLjc3Ljc5Ljc5LDAsMCwxLS44MS0uNzdWMTEuNzdhLjc5Ljc5LDAsMCwxLC44MS0uNzcuNzkuNzksMCwwLDEsLjgyLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlQ29udGFpbmVyVm9sdW1lPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LDE3LjU4YTMyLjM1LDMyLjM1LDAsMCwwLDYuMy45Miw0LjEzLDQuMTMsMCwwLDEsLjkyLTEuMzcsMzAuOTQsMzAuOTQsMCwwLDEtNy4yMi0xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYsMjhWOC4xOWMuMzQtLjc2LDQuMzEtMi4xMSwxMS0yLjExczEwLjY3LDEuMzUsMTEsMnYuM2MtLjgyLjc5LTQuNTgsMi4wNS0xMS4xMSwyLjA1QTMzLjQ4LDMzLjQ4LDAsMCwxLDgsOS40NHYxLjQ0YTM1LjYsMzUuNiwwLDAsMCw4Ljg5LDFj''@;'; + put 'put ''NC4yOSwwLDguOC0uNTgsMTEuMTEtMS44MnY1LjA3YTUuMyw1LjMsMCwwLDEtMS44MS44OEgzMFY4LjEyYzAtMy4xOS04LjE3LTQtMTMtNHMtMTMsLjg1LTEzLDRWMjhDNCwzMC42Myw5LjM5LDMxLjY4LDE0LDMyVjMwQzkuMTMsMjkuNjYsNi4yOCwyOC42Miw2LDI4WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTgsMjQuMjhhMzEuMywzMS4zLDAsMCwwLDYsLjg5di0xLjRhMjguOTMsMjguOTMsMCwwLDEtNi0uOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIsMThI''@;'; + put 'put ''MThhMiwyLDAsMCwwLTIsMlYzMmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yMSwyMS43YS43LjcsMCwwLDAtLjcu''@;'; + put 'put ''N3Y3LjQ5YS43LjcsMCwwLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDIxLDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsMjEuODJhLjcuNywwLDAsMC0uNy43VjMwYS43LjcsMCwxLDAsMS40LDBWMjIuNTJBLjcuNywwLDAs''@;'; + put 'put ''MCwyNSwyMS44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMzIsMThIMThhMiwyLDAsMCwwLTIsMlYzMmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTIxLDIxLjdhLjcuNywwLDAsMC0uNy43djcuNDlhLjcuNywwLDAsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjEsMjEuN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI1LDIxLjgyYS43LjcsMCwwLDAtLjcuN1YzMGEuNy43''@;'; + put 'put ''LDAsMSwwLDEuNCwwVjIyLjUyQS43LjcsMCwwLDAsMjUsMjEuODJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxNkgyOFY4LjEyYzAtMS42OC01LjM4LTMtMTItM1M0LDYuNDQsNCw4LjEyVjI4YzAsMS41LDQuMzMsMi43NSwxMCwzVjI1LjIyYTI5LjE3LDI5LjE3LDAsMCwxLTgtMS4yOVYyMi40NGwuMjQuMUEy''@;'; + put 'put ''Ni42MywyNi42MywwLDAsMCwxNCwyMy44MlYyMGE0LDQsMCwwLDEsLjI5LTEuNDdBMjkuMTksMjkuMTksMCwwLDEsNiwxNy4yM1YxNS43NWwuMjQuMDlhMjksMjksMCwwLDAsOSwxLjMyaDBBNCw0LDAsMCwxLDE4LDE2Wk02LDEwLjU0VjkuMDVsLjI0LjA5QTMwLjEyLDMwLjEyLDAsMCwwLDE2''@;'; + put 'put ''LDEwLjQ3LDI4LjMzLDI4LjMzLDAsMCwwLDI2LDkuMDV2MS41YTMyLjUzLDMyLjUzLDAsMCwxLTEwLDEuMzJBMzIuNDQsMzIuNDQsMCwwLDEsNiwxMC41NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+JyksZS5DbHJTaGFwZUZpbGVTaGFyZT0oMCxhLmNscklj''@;'; + put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDls''@;'; + put 'put ''Mi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEuOTEsMjIuNDhhMi4wNiwyLjA2LDAsMCwwLTEuNDQuNjJsLTUuNzItMi42NlYyMGw1LjY2LTIuNjVhMi4wOCwyLjA4LDAsMSwwLC4w''@;'; + put 'put ''Ni0yLjk0LDIuMTIsMi4xMiwwLDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNhMi4wOSwyLjA5LDAsMSwwLDIuMDgtMi4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTMwLDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwzMCw5Wk02LDdoNi40OWwyLjcyLDRINlpNMjEuOTQsMjYuNjRhMi4wOSwyLjA5LDAsMCwx''@;'; + put 'put ''LTIuMTEtMi4wNmwwLS4zLTUuNjctMi42Ni0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMDgsMi4wOCwwLDEsMSwuNTgsMS40NkwxNC43NSwyMHYuNDdsNS43MiwyLjY2YTIuMDcsMi4wNywwLDEsMSwxLjQ3LDMuNTRaIiBjbGFzcz0iY2xyLWktc29s''@;'; + put 'put ''aWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVRckNvZGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUuNiw0QTEuNiwxLjYsMCwwLDAsNCw1LjZWMTJoOFY0Wk0xMCwxMEg2VjZoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAv''@;'; + put 'put ''PjxwYXRoIGQ9Ik00LDMwLjRBMS42LDEuNiwwLDAsMCw1LjYsMzJIMTJWMjRINFpNNiwyNmg0djRINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNCwzMmg2LjRBMS42LDEuNiwwLDAsMCwzMiwzMC40VjI0SDI0Wm0yLTZoNHY0SDI2''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjQsNEgyNHY4aDhWNS42QTEuNiwxLjYsMCwwLDAsMzAuNCw0Wk0zMCwxMEgyNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cG9seWdv''@;'; + put 'put ''biBwb2ludHM9IjIwIDEwIDIwIDggMTYgOCAxNiAxMiAxOCAxMiAxOCAxMCAyMCAxMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHJlY3QgeD0iMTIiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; + put 'put ''dXRsaW5lLXBhdGgtNiIgLz48cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgNiAyMCA4IDIyIDggMjIgNCAxNCA0IDE0IDggMTYgOCAxNiA2IDIwIDYi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxyZWN0IHg9IjQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSI0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz48cG9seWdvbiBwb2ludHM9IjEyIDE2IDEyIDE4IDEwIDE4''@;'; + put 'put ''IDEwIDE0IDggMTQgOCAxOCA2IDE4IDYgMjAgNCAyMCA0IDIyIDggMjIgOCAyMCAxMCAyMCAxMCAyMiAxMiAyMiAxMiAyMCAxNCAyMCAxNCAxNiAxMiAxNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgMTYgMjIgMTYg''@;'; + put 'put ''MjIgMTggMjQgMTggMjQgMTYgMjYgMTYgMjYgMTQgMjIgMTQgMjIgMTAgMjAgMTAgMjAgMTIgMTggMTIgMTggMTQgMjAgMTQgMjAgMTYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgLz48cG9seWdvbiBwb2ludHM9IjE4IDMwIDE0IDMwIDE0IDMyIDIyIDMy''@;'; + put 'put ''IDIyIDMwIDIwIDMwIDIwIDI4IDE4IDI4IDE4IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTIiIC8+PHBvbHlnb24gcG9pbnRzPSIyMiAyMCAyMiAxOCAyMCAxOCAyMCAxNiAxOCAxNiAxOCAxOCAxNiAxOCAxNiAyMCAxOCAyMCAxOCAyMiAyMCAyMiAyMCAy''@;'; + put 'put ''MCAyMiAyMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEzIiAvPjxyZWN0IHg9IjMwIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiAvPjxyZWN0IHg9IjIyIiB5PSIyMCIgd2lk''@;'; + put 'put ''dGg9IjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiAvPjxwb2x5Z29uIHBvaW50cz0iMzAgMTQgMjggMTQgMjggMTYgMjYgMTYgMjYgMTggMjggMTggMjggMjAgMzAgMjAgMzAgMTggMzIgMTggMzIgMTYgMzAgMTYgMzAgMTQiIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgLz48cmVjdCB4PSIyMCIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNyIgLz48cG9seWdvbiBwb2ludHM9IjE0IDI4IDE2IDI4IDE2IDI2IDE4''@;'; + put 'put ''IDI2IDE4IDI0IDE2IDI0IDE2IDIwIDE0IDIwIDE0IDI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTgiIC8+JyksZS5DbHJTaGFwZVVzYj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTQuMjksMTEuNGExLjQ5LDEuNDksMCwwLDEsMS4yOC0uNzJoMWEy''@;'; + put 'put ''Ljg5LDIuODksMCwwLDAsMi43NSwyLjA5LDMsMywwLDAsMCwwLTUuOTEsMi45LDIuOSwwLDAsMC0yLjY3LDEuODJIMTUuNTdhMy40OSwzLjQ5LDAsMCwwLTMsMS42NmwtMyw0LjgzaDIuMzZabTUtMi45NEExLjM2LDEuMzYsMCwxLDEsMTgsOS44MSwxLjMyLDEuMzIsMCwwLDEsMTkuMzMsOC40''@;'; + put 'put ''NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zNC4zLDE3LjM3bC02LjExLTMuNjZhLjcuNywwLDAsMC0uNywwLC43MS43MSwwLDAsMC0uMzYuNjFWMTdINi45MmEyLjMzLDIuMzMsMCwwLDEsLjMyLDEuMTcsMi40NywyLjQ3LDAsMSwx''@;'; + put 'put ''LTIuNDctMi40NiwyLjM3LDIuMzcsMCwwLDEsMS4xNS4zbC45My0xLjc2QTQuNDQsNC40NCwwLDEsMCw5LjE1LDE5aDMuNThsNC4xNyw2LjY1YTMuNDksMy40OSwwLDAsMCwzLDEuNjZoMS42NnYxLjI4YS43OS43OSwwLDAsMCwuOC43OWg0LjQ5YS43OS43OSwwLDAsMCwuOC0uNzl2LTQuNGEu''@;'; + put 'put ''NzkuNzksMCwwLDAtLjgtLjhIMjIuMzRhLjguOCwwLDAsMC0uOC44djEuMTJIMTkuODhhMS41MSwxLjUxLDAsMCwxLTEuMjgtLjcyTDE1LjA5LDE5aDEydjIuNjZhLjY5LjY5LDAsMCwwLC4zNi42MS42Ny42NywwLDAsMCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDYuMTEtMy42NmEuNjku''@;'; + put 'put ''NjksMCwwLDAsLjM0LS42QS43MS43MSwwLDAsMCwzNC4zLDE3LjM3Wk0yMy4xNCwyNUgyNnYyLjhIMjMuMTRabTUuMzktNC41NlYxNS41NWw0LDIuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzQuNzIsMTcuMzdsLTUuNTEtMy4z''@;'; + put 'put ''MWEuNzEuNzEsMCwwLDAtMS4wNy42VjE3SDExLjc3bDMuNTItNS42YTEuNDksMS40OSwwLDAsMSwxLjI4LS43MmgxLjY0YTIuNDEsMi40MSwwLDAsMCwyLjI1LDEuNjEsMi40OCwyLjQ4LDAsMCwwLDAtNC45NSwyLjM4LDIuMzgsMCwwLDAtMi4xMywxLjM0SDE2LjU3YTMuNDksMy40OSwwLDAs''@;'; + put 'put ''MC0zLDEuNjZMOS40MSwxN0g4YTMuNDYsMy40NiwwLDEsMCwuMDgsMmg1LjY0bDQuMTUsNi42MmEzLjQ5LDMuNDksMCwwLDAsMywxLjY2aDIuNTl2LjkyaDQuNFYyMy44aC00LjR2MS40OEgyMC44OGExLjUxLDEuNTEsMCwwLDEtMS4yOC0uNzJMMTYuMTEsMTloMTJ2Mi4yOGEuNy43LDAsMCww''@;'; + put 'put ''LC4zNi42MS43Mi43MiwwLDAsMCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDUuNTItMy4zMWEuNy43LDAsMCwwLDAtMS4yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlUmFkYXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMy''@;'; + put 'put ''LDE4YzAsNy43LTYuMywxNC0xNCwxNGMtNy43LDAtMTQtNi4zLTE0LTE0QzQsMTAuNiw5LjcsNC41LDE3LjEsNHYzLjdjLTUuNywwLjUtOS45LDUuNS05LjQsMTEuMnM1LjUsOS45LDExLjIsOS40XG5cdGM1LjMtMC41LDkuNC00LjksOS40LTEwLjNoLTJjMCw0LjYtMy43LDguMy04LjMsOC4z''@;'; + put 'put ''cy04LjMtMy43LTguMy04LjNjMC00LjIsMy4xLTcuOCw3LjMtOC4zdjQuNGMtMS44LDAuNC0zLjEsMi0zLjEsMy45XG5cdGMwLDIuMiwxLjgsNCw0LDRzNC0xLjgsNC00YzAtMS44LTEuMy0zLjQtMy0zLjhWMi4xQzE4LjYsMiwxOC4zLDIsMTgsMkM5LjIsMiwyLDkuMiwyLDE4czcuMiwxNiwx''@;'; + put 'put ''NiwxNnMxNi03LjIsMTYtMTZIMzJ6IE0yMCwxOFxuXHRjMCwxLjEtMC45LDItMiwycy0yLTAuOS0yLTJzMC45LTIsMi0yUzIwLDE2LjksMjAsMTh6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIsMThjMCw3LjctNi4yLDE0LTE0LDE0''@;'; + put 'put ''UzQsMjUuOCw0LDE4YzAtNy40LDUuNy0xMy41LDEzLjEtMTR2My43Yy01LjcsMC41LTkuOCw1LjUtOS4zLDExLjJzNS41LDkuOCwxMS4yLDkuM1xuXHRcdGM1LjMtMC41LDkuMy00LjksOS4zLTEwLjJoLTJjMCw0LjYtMy43LDguMy04LjMsOC4zUzkuNywyMi42LDkuNywxOGMwLTQuMiwzLjIt''@;'; + put 'put ''Ny44LDcuMy04LjJ2NC40Yy0yLjEsMC42LTMuNCwyLjctMi45LDQuOVxuXHRcdGMwLjYsMi4xLDIuNywzLjQsNC45LDIuOWMyLjEtMC42LDMuNC0yLjcsMi45LTQuOWMtMC40LTEuNC0xLjUtMi41LTIuOS0yLjlWMmMtMC40LDAtMC43LDAtMS4xLDBjLTguOCwwLTE2LDcuMi0xNiwxNlxuXHRc''@;'; + put 'put ''dGMwLDguOCw3LjIsMTYsMTYsMTZzMTYtNy4yLDE2LTE2YzAsMCwwLDAsMCwwSDMyeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlSW5kdWN0b3I9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjMxLDI1LjgxYy0xLjc1LDAtMy0y''@;'; + put 'put ''LjQ5LTMtNmExMi43OSwxMi43OSwwLDAsMSwxLjcyLTYuNywyLjU3LDIuNTcsMCwwLDAtMy43OSwwQTEyLjc5LDEyLjc5LDAsMCwxLDIxLDE5Ljc2YzAsMy41Ni0xLjIzLDYtMyw2cy0zLTIuNDktMy02YTEyLjc5LDEyLjc5LDAsMCwxLDEuNzItNi43LDIuNTcsMi41NywwLDAsMC0zLjc5LDAs''@;'; + put 'put ''MTIuNzksMTIuNzksMCwwLDEsMS43Miw2LjdjMCwzLjU2LTEuMjMsNi0zLDZzLTMtMi40OS0zLTZhMTIuODgsMTIuODgsMCwwLDEsMS43MS02LjcsMi43LDIuNywwLDAsMC0xLjg5LS44N0M3LjEsMTIuMTksNS42OSwxMy43LDUsMTZsLS4yMy43SDJhMSwxLDAsMCwxLDAtMkgzLjI5YzEuMS0y''@;'; + put 'put ''LjgzLDMuMDYtNC41NSw1LjI0LTQuNTVhNC42Nyw0LjY3LDAsMCwxLDMuMTYsMS4zMiw0LjYyLDQuNjIsMCwwLDEsMy4xNS0xLjMyQTQuNjUsNC42NSwwLDAsMSwxOCwxMS41MWE0LjQzLDQuNDMsMCwwLDEsNi4zMSwwLDQuNjcsNC42NywwLDAsMSwzLjE2LTEuMzJjMi4xOCwwLDQuMTQsMS43''@;'; + put 'put ''Miw1LjI0LDQuNTVIMzRhMSwxLDAsMCwxLDAsMkgzMS4yOGwtLjIzLS43Yy0uNzQtMi4zNC0yLjE1LTMuODUtMy41OC0zLjg1YTIuNywyLjcsMCwwLDAtMS44OS44NywxMi44OCwxMi44OCwwLDAsMSwxLjcxLDYuN0MyNy4yOSwyMy4zMiwyNi4wNywyNS44MSwyNC4zMSwyNS44MVpNMTgsMTQu''@;'; + put 'put ''OTNhMTEuNzEsMTEuNzEsMCwwLDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTgsMTQuOTNabTYuMzEsMGExMS43MSwxMS43MSwwLDAsMC0xLDQuODNjMCwyLjU0LjY2LDMuNzUsMSw0LC4zMi0uMjcsMS0xLjQ4LDEtNEEx''@;'; + put 'put ''MS43MSwxMS43MSwwLDAsMCwyNC4zMSwxNC45M1ptLTEyLjYyLDBhMTEuNzEsMTEuNzEsMCwwLDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTEuNjksMTQuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlUmVzaXN0b3I9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjQzLDI2LjM0aDBBMS40NywxLjQ3LDAsMCwxLDI4LDI1LjIyTDI0Ljg2LDEzLjE1LDIxLjc0LDI1LjIyYTEuNDksMS40OSwwLDAsMS0xLjQ1LDEuMTJoMGExLjQ5LDEuNDks''@;'; + put 'put ''MCwwLDEtMS40Ni0xLjEyTDE1LjcxLDEzLjE1LDEyLjYsMjUuMjJhMS41MSwxLjUxLDAsMCwxLTIuOTEsMEw2LjU3LDEzLjE1LDUuMjIsMTguMzdIMmExLDEsMCwwLDEsMC0ySDMuNjdsMS40NS01LjU5QTEuNDgsMS40OCwwLDAsMSw2LjU3LDkuNjZoMEExLjQ3LDEuNDcsMCwwLDEsOCwxMC43''@;'; + put 'put ''OGwzLjEyLDEyLjA3LDMuMTItMTIuMDdhMS40OSwxLjQ5LDAsMCwxLDEuNDUtMS4xMmgwYTEuNDksMS40OSwwLDAsMSwxLjQ2LDEuMTJsMy4xMiwxMi4wNywzLjEyLTEyLjA3YTEuNSwxLjUsMCwwLDEsMi45LDBsMy4xMiwxMi4wNywxLjM1LTUuMjJIMzRhMSwxLDAsMCwxLDAsMkgzMi4zM2wt''@;'; + put 'put ''MS40NSw1LjU5QTEuNDgsMS40OCwwLDAsMSwyOS40MywyNi4zNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVDYXBhY2l0b3I9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LDM0LjA2YTEsMSwwLDAsMS0xLTFWMy4xNWEx''@;'; + put 'put ''LDEsMCwxLDEsMiwwVjMzLjA2QTEsMSwwLDAsMSwxNSwzNC4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMSwzNC4wNmExLDEsMCwwLDEtMS0xVjMuMTVhMSwxLDAsMSwxLDIsMFYzMy4wNkExLDEsMCwwLDEsMjEsMzQuMDZaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuNDYsMTlIM2ExLDEsMCwwLDEsMC0ySDE0LjQ2YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMTlIMjEu''@;'; + put 'put ''NTRhMSwxLDAsMCwxLDAtMkgzM2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksZS5DbHJTaGFwZVNxdWlkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw3YTEsMSwwLDAsMS0xLTFWMy4xOWExLDEsMCwwLDEsMiww''@;'; + put 'put ''VjZBMSwxLDAsMCwxLDE4LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMzRhMSwxLDAsMCwxLTEtMVYzMGExLDEsMCwwLDEsMiwwdjNBMSwxLDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS1wYXRoLTIiIC8+PHBhdGggZD0iTTcuNDEsMThsMS43OC0xLjc3YTEsMSwwLDEsMC0xLjQyLTEuNDJMNiwxNi41OSw0LjIzLDE0LjgxYTEsMSwwLDEsMC0xLjQyLDEuNDJMNC41OSwxOCwyLjgxLDE5Ljc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcx''@;'; + put 'put ''LS4yOUw2LDE5LjQxbDEuNzcsMS43OGExLDEsMCwwLDAsMS40MiwwLDEsMSwwLDAsMCwwLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNNiwxMy43NmwuMzYtLjM2YTMsMywwLDAsMSwyLjExLS44OCwxMSwxMSwwLDAsMSwxOSww''@;'; + put 'put ''LDMsMywwLDAsMSwyLjEyLjg4bC4zNi4zNi4yLS4yYTEzLDEzLDAsMCwwLTI0LjQsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMCwyMi4yNGwtLjM2LjM2YTMsMywwLDAsMS0yLjEyLjg4LDExLDExLDAsMCwxLTE5LDAsMywzLDAs''@;'; + put 'put ''MCwxLTIuMTItLjg4TDYsMjIuMjRsLS4yLjJhMTMsMTMsMCwwLDAsMjQuNCwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMxLjQxLDE4bDEuNzgtMS43N2ExLDEsMCwwLDAtMS40Mi0xLjQyTDMwLDE2LjU5bC0xLjc3LTEuNzhhMSwx''@;'; + put 'put ''LDAsMSwwLTEuNDIsMS40MkwyOC41OSwxOGwtMS43OCwxLjc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcxLS4yOUwzMCwxOS40MWwxLjc3LDEuNzhhMSwxLDAsMCwwLDEuNDIsMCwxLDEsMCwwLDAsMC0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksZS5DbHJTaGFwZUhvc3RHcm91cD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEuMDgsMzRoLTE0QTEuMDgsMS4wOCwwLDAsMSw2LDMzVjEyYTEuMDgsMS4wOCwwLDAsMSwxLjA4LTEuMDhoMTRBMS4wOCwxLjA4LDAsMCwxLDIyLjE2LDEy''@;'; + put 'put ''VjMzQTEuMDgsMS4wOCwwLDAsMSwyMS4wOCwzNFpNOC4xNiwzMS44OEgyMFYxM0g4LjE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cmVjdCB4PSIxMC4wOCIgeT0iMTQuOTYiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNi4xLDI3LjgxaC0yVjloLTEyVjdoMTNhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuPHBhdGggZD0iTTMwLjA4LDIzaC0yVjVoLTExVjNoMTJhMSwxLDAs''@;'; + put 'put ''MCwxLDEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxyZWN0IHg9IjEzLjA4IiB5PSIyNy44OCIgd2lkdGg9IjIiIGhlaWdodD0iMi4xNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG5cbjxwYXRoIGNsYXNz''@;'; + put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4wOCwzMSBMMS4wOCwzMSBDMC41MTM0MjcxOTcsMzEuMDAxNTU2NCAwLjA0MTk2NjM3NjUsMzAuNTY1MDE4NiAwLDMwIEwwLDkgQzAsOC40MDM1MzI0NyAwLjQ4MzUzMjQ3LDcuOTIgMS4wOCw3LjkyIEwxNS4wOCw3Ljky''@;'; + put 'put ''IEMxNS42NzY0Njc1LDcuOTIgMTYuMTYsOC40MDM1MzI0NyAxNi4xNiw5IEwxNi4xNiwzMCBDMTYuMTE4MDMzNiwzMC41NjUwMTg2IDE1LjY0NjU3MjgsMzEuMDAxNTU2NCAxNS4wOCwzMSBaIE00LjA4LDExLjk2IEw0LjA4LDEzLjk2IEwxMi4wOCwxMy45NiBMMTIuMDgsMTEuOTYgTDQuMDgs''@;'; + put 'put ''MTEuOTYgWiBNNy4wOCwyNC44OCBMNy4wOCwyNy4wNCBMOS4wOCwyNy4wNCBMOS4wOCwyNC44OCBMNy4wOCwyNC44OCBaIiAvPlxuPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTIwLjEsMjQuODEgTDE4LjEsMjQuODEgTDE4LjEsNiBMNi4xLDYgTDYu''@;'; + put 'put ''MSw0IEwxOS4xLDQgQzE5LjY1MjI4NDcsNCAyMC4xLDQuNDQ3NzE1MjUgMjAuMSw1IEwyMC4xLDI0LjgxIFoiIC8+XG48cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjQuMDgsMjAgTDIyLjA4LDIwIEwyMi4wOCwyIEwxMS4wOCwyIEwxMS4wOCwwIEwy''@;'; + put 'put ''My4wOCwwIEMyMy42MzIyODQ3LDAgMjQuMDgsMC40NDc3MTUyNSAyNC4wOCwxIEwyNC4wOCwyMCBaIiAvPicpLGUuQ2xyU2hhcGVTdG9yYWdlQWRhcHRlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNi4wNiwzMGExLDEsMCwwLDEtMS0xVjhoLTJhMSwxLDAsMCwxLDAtMmg0VjI5QTEs''@;'; + put 'put ''MSwwLDAsMSw2LjA2LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMwLjA2LDI3aC0yNVY5aDI1YTMsMywwLDAsMSwzLDNWMjRBMywzLDAsMCwxLDMwLjA2LDI3Wm0tMjMtMmgyM2ExLDEsMCwwLDAsMS0xVjEyYTEsMSwwLDAs''@;'; + put 'put ''MC0xLTFoLTIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0iMjIuMDYiIHk9IjIwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cmVjdCB4PSIyMi4w''@;'; + put 'put ''NiIgeT0iMTQiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOS4wNiwyMmgtOFYyMGg3VjE0aDJ2N0ExLDEsMCwwLDEsMTkuMDYsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNSIvPicpLGUuQ2xyU2hhcGVOb2RlR3JvdXA9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjUzLDIxLjU4bC00Ljk0LTIuODNWMTMuMDlhMSwxLDAsMCwwLS41MS0uODdMMjIuNjQsOS4xYTEsMSwwLDAsMC0xLDBMMTYuMiwxMi4yMmExLDEsMCwwLDAtLjUxLjg3djUu''@;'; + put 'put ''NjZsLTQuOTQsMi44M2ExLDEsMCwwLDAtLjUuODd2Ni4yNGExLDEsMCwwLDAsLjUuODZsNS40NSwzLjEyYTEsMSwwLDAsMCwxLDBsNC45NS0yLjgzLDQuOTUsMi44M2ExLDEsMCwwLDAsLjUuMTQsMSwxLDAsMCwwLC40OS0uMTRsNS40NS0zLjEyYTEsMSwwLDAsMCwuNS0uODZWMjIuNDVBMSwx''@;'; + put 'put ''LDAsMCwwLDMzLjUzLDIxLjU4Wk0yMi4xNCwxMS4xMmw0LjQ1LDIuNTVWMTlsLTQuNDYsMi41Ni00LjQ0LTIuNlYxMy42N1pNMTYuNjksMzAuNjVsLTQuNDQtMi41NFYyM2w0LjY4LTIuNjgsNC40LDIuNTdWMjhaTTMyLDI4LjExbC00LjQ0LDIuNTRMMjIuOTMsMjhWMjIuOTNsNC40Ni0yLjU3''@;'; + put 'put ''TDMyLDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTcsMjcuNDNhMSwxLDAsMCwxLTEtMVYxOS45QTEsMSwwLDAsMSw2LjUsMTlsNC45NS0yLjgzVjEwLjU0YTEsMSwwLDAsMSwuNS0uODdsNS4yMS0zYTEsMSwwLDAsMSwxLjM3''@;'; + put 'put ''LjM3LDEsMSwwLDAsMS0uMzgsMS4zN2wtNC43LDIuNjh2NS42NmExLDEsMCwwLDEtLjUxLjg3TDgsMjAuNDh2NS45NUExLDEsMCwwLDEsNywyNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zLDI1LjA1YTEsMSwwLDAsMS0x''@;'; + put 'put ''LTFWMTcuNTNhMSwxLDAsMCwxLC41LS44Nmw1LTIuODRWOC4xN0ExLDEsMCwwLDEsOCw3LjMxbDUuMjUtM2ExLDEsMCwwLDEsMSwxLjc0TDkuNDUsOC43NXY1LjY2YTEsMSwwLDAsMS0uNTEuODdMNCwxOC4xMXY1Ljk0QTEsMSwwLDAsMSwzLDI1LjA1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxlLkNsclNoYXBlTm9kZXM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjUsMzQuMjksMiwyOS4zOVYxOS41OGw4LjUtNC45LDguNSw0Ljl2OS44MVpNNCwyOC4yMywxMC41LDMyLDE3LDI4LjIzVjIwLjc0TDEwLjUsMTcsNCwyMC43NFoi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yNS41LDM0LjI5LDE3LDI5LjM5VjE5LjU4bDguNS00LjksOC41LDQuOXY5LjgxWk0xOSwyOC4yMywyNS41LDMyLDMyLDI4LjIzVjIwLjc0TDI1LjUsMTcsMTksMjAuNzRaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTgsMjEuMzJsLTguNS00LjlWNi42MUwxOCwxLjcxbDguNSw0Ljl2OS44MVptLTYuNS02LjA2TDE4LDE5bDYuNS0zLjc1VjcuNzdMMTgsNCwxMS41LDcuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMyIvPicpLGUuQ2xyU2hhcGVOYW1lc3BhY2U9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LDQuMThhMSwxLDAsMSwwLTEsMS43M2w2LDMuNDdWMjYuNjJsLTYsMy40N2ExLDEsMCwwLDAtLjM3LDEuMzYsMSwxLDAsMCwwLDEuMzcuMzdsNy00LjA1Vjgu''@;'; + put 'put ''MjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNOS42OCwyOS45LDQsMjYuNjJWOS4zOEw5LjY4LDYuMWExLDEsMCwxLDAtMS0xLjczTDIsOC4yM1YyNy43N2w2LjY4LDMuODZhMSwxLDAsMCwwLDEuMzctLjM3QTEsMSwwLDAsMCw5''@;'; + put 'put ''LjY4LDI5LjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTAsMTJWMjRhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjEyYTIsMiwwLDAsMC0yLTJIMTJBMiwyLDAsMCwwLDEwLDEyWm03LDB2NUgxMlYxMlptLTUsN2g1''@;'; + put 'put ''djVIMTJabTcsNVYxOWg1djVabTUtN0gxOVYxMmg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxlLkNsclNoYXBlTm9kZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzAuNjYsNywyNC4zM1YxMS42N0wxOCw1LjM0bDExLDYuMzNWMjQu''@;'; + put 'put ''MzNaTTksMjMuMThsOSw1LjE3LDktNS4xN1YxMi44MkwxOCw3LjY1LDksMTIuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPicpLGUuQ2xyU2hhcGVQb2Q9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LDMySDEwYTYsNiwwLDAsMS02LTZWMTBh''@;'; + put 'put ''Niw2LDAsMCwxLDYtNkgyNmE2LDYsMCwwLDEsNiw2VjI2QTYsNiwwLDAsMSwyNiwzMlpNMTAsNmE0LDQsMCwwLDAtNCw0VjI2YTQsNCwwLDAsMCw0LDRIMjZhNCw0LDAsMCwwLDQtNFYxMGE0LDQsMCwwLDAtNC00WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgPHBhdGggZD0iTTI2LjU2LDE1SDE1LjQ0QTEuNDMsMS40MywwLDAsMCwxNCwxNi40NHY4LjEyQTEuNDMsMS40MywwLDAsMCwxNS40NCwyNkgyNi41NkExLjQzLDEuNDMsMCwwLDAsMjgsMjQuNTZWMTYuNDRBMS40MywxLjQzLDAsMCwwLDI2LjU2LDE1Wk0yNiwyNEgxNlYxN0gyNloi''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xMi40LDE5SDEwVjEySDIwdjEuNGgydi0yQTEuNDMsMS40MywwLDAsMCwyMC41NiwxMEg5LjQ0QTEuNDMsMS40MywwLDAsMCw4LDExLjQ0djguMTJBMS40MywxLjQzLDAsMCwwLDkuNDQs''@;'; + put 'put ''MjFoM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+JyksZS5DbHJDb250cm9sTHVuPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0u''@;'; + put 'put ''ODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNiwyNy41M1YxMC4zYzIuOSwxLjQzLDguMzQsMS44OCwxMiwxLjg4czkuMS0uNDUsMTItMS44OHY1LjExYy0uOTEuODItNSwyLjEzLTEyLDIuMTNBMzQuODEsMzQuODEsMCwwLDEs''@;'; + put 'put ''OCwxNi4zM1YxOGE0MC44Niw0MC44NiwwLDAsMCwxMCwxLjE2YzMuNDYsMCw5LjEzLS40NSwxMi0xLjkxdjMuMjNoMlY4aDBzMCwwLDAtLjA3YzAtMy4zNS04LjgtNC4yNS0xNC00LjI1UzQsNC41OCw0LDcuOTN2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjgu''@;'; + put 'put ''MjgsNi4xMywyNy44NCw2LDI3LjUzWk0xOCw1LjY4YzcuMTUsMCwxMS41MywxLjQ0LDEyLDIuMjUtLjQ2LjgxLTQuODQsMi4yNS0xMiwyLjI1UzYuMzEsOC42OSw2LDhDNi4zMSw3LjE4LDEwLjcxLDUuNjgsMTgsNS42OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; + put 'put ''aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIuMDksMjJabTAsMTBIMTYuMzRsLTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cblxuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43''@;'; + put 'put ''NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0uODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLjA5LDIySDE1LjQ2bC01LjQxLDYuMzFMMTUuNDksMzRoMTYuNmEyLDIsMCwwLDAs''@;'; + put 'put ''Mi0yVjIzLjkzQTIsMiwwLDAsMCwzMi4wOSwyMlptMCwxMEgxNi4zNGwtMy41OS0zLjc3TDE2LjM4LDI0SDMyLjA5djhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwx''@;'; + put 'put ''LDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0xOCwxNy41NEEzNC44MSwzNC44MSwwLDAsMSw4LDE2LjMzVjE4YTQwLjg2LDQwLjg2LDAsMCwwLDEwLDEuMTZjMy40''@;'; + put 'put ''NiwwLDkuMTMtLjQ1LDEyLTEuOTF2My4yM2gyVjEzLjIyYTcuMzIsNy4zMiwwLDAsMS0yLC4yOHYxLjkxQzI5LjA5LDE2LjIzLDI1LDE3LjU0LDE4LDE3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9''@;'; + put 'put ''Ik02LDI3LjUzVjEwLjNjMi45LDEuNDMsOC4zNCwxLjg4LDEyLDEuODhhNDcuNjYsNDcuNjYsMCwwLDAsNy4wOS0uNTIsNy40NSw3LjQ1LDAsMCwxLTEuNTEtMS44LDQ3LjQsNDcuNCwwLDAsMS01LjU4LjMyQzEwLjcxLDEwLjE4LDYuMzEsOC42OSw2LDhjLjMyLS44LDQuNzItMi4zLDEyLTIu''@;'; + put 'put ''MywxLjY2LDAsMy4xNi4wOCw0LjUxLjIxYTcuNTYsNy41NiwwLDAsMSwuMjktMmMtMS43LS4xNy0zLjM4LS4yNC00LjgtLjI0LTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3LjUzWiIgY2xh''@;'; + put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5c''@;'; + put 'put ''biAgPHBhdGggZD0iTTgsMjQuNTlhMjUuNSwyNS41LDAsMCwwLDIuNzUuNTlsMS4yMS0xLjQxYTI0LjEzLDI0LjEzLDAsMCwxLTQtLjgzWiIvPjxwYXRoIGQ9Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIu''@;'; + put 'put ''MDksMjJabTAsMTBIMTYuMzRsLTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3''@;'; + put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTYsMjcuNTNWMTAuM2MyLjksMS40Myw4LjM0LDEuODgsMTIsMS44OGguNTlhMy41OSwzLjU5LDAsMCwxLC4zMi0ySDE4QzEwLjcxLDEwLjE4LDYuMzEs''@;'; + put 'put ''OC42OSw2LDhjLjMyLS44LDQuNzItMi4zLDEyLTIuMywxLjIyLDAsMi4zNS4wNSwzLjQxLjEybDEuMS0xLjkxYy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywy''@;'; + put 'put ''Ny44NCw2LDI3LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTgsMTYuMzNWMThhNDAuODYsNDAuODYsMCwwLDAsMTAsMS4xNmMzLjQ2LDAsOS4xMy0uNDUsMTItMS45MXYzLjIzaDJWMTUuNEgz''@;'; + put 'put ''MGMtLjkxLjgyLTUsMi4xMy0xMiwyLjEzQTM0LjgxLDM0LjgxLDAsMCwxLDgsMTYuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAs''@;'; + put 'put ''MCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBh''@;'; + put 'put ''dGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzIuMDksMjFIMzJWMTcuMzJjLTEuOSwyLjkzLTEwLjQ2LDMuMy0xNCwzLjNBNDIuNDMsNDIuNDMsMCww''@;'; + put 'put ''LDEsOCwxOS41NlYxNy44OEE0MC41OSw0MC41OSwwLDAsMCwxOCwxOWM1LDAsMTMuMi0uODIsMTQtMy44MlYxMC43MmMtMi4yMSwzLjM2LTEwLjQ5LDMuNDYtMTQsMy40NkE0Mi4xMiw0Mi4xMiwwLDAsMSw4LDEzLjExVjExYTQwLjU5LDQwLjU5LDAsMCwwLDEwLDEuMTRjNSwwLDEzLjI4LS44''@;'; + put 'put ''MywxNC0zLjg4VjcuODNoMGMtLjE5LTMuMjctOC44NC00LjE1LTE0LTQuMTVTNC4yMSw0LjU2LDQsNy44M0g0djE5LjdjMCwyLjE2LDMuNjQsMy4zLDcuNjMsMy44NGwyLjg0LDMsLjU5LjYyaDE3YTMsMywwLDAsMCwzLTNWMjMuOTNBMywzLDAsMCwwLDMyLjA5LDIxWk04LDI2LjA4VjI0LjRh''@;'; + put 'put ''MjUuNzksMjUuNzksMCwwLDAsMy40Ni43bC0xLjI0LDEuNDRDOS40NiwyNi40Miw4LjcxLDI2LjI3LDgsMjYuMDhaTTMzLjA5LDMyYTEsMSwwLDAsMS0xLDFIMTUuOTJMMTEuNCwyOC4yMywxNS45MiwyM0gzMi4wOWExLDEsMCwwLDEsMSwxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; + put 'put ''bGlkLXBhdGgtMiIvPlxuXG4gIDxwYXRoIGQ9Ik0xNi4xMSwyN2ExLDEsMCwxLDAsMSwxQTEsMSwwLDAsMCwxNi4xMSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45''@;'; + put 'put ''LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzUsMCwxMy4yLS44MiwxNC0zLjgydi0yYTcuMzQsNy4zNCwwLDAsMS00LjEyLDAsMzkuNDcsMzkuNDcsMCwwLDEtOS44OCwxQTQyLjEyLDQyLjEyLDAs''@;'; + put 'put ''MCwxLDgsMTMuMTFWMTFhNDAuNTksNDAuNTksMCwwLDAsMTAsMS4xNCw0Ny43Niw0Ny43NiwwLDAsMCw3LjA5LS41MkE3LjQ1LDcuNDUsMCwwLDEsMjIuOCwzLjkyYy0xLjctLjE3LTMuMzgtLjI0LTQuOC0uMjQtNS4xNCwwLTEzLjc5Ljg4LTE0LDQuMTVINHYxOS43YzAsMi4xNiwzLjY0LDMu''@;'; + put 'put ''Myw3LjYzLDMuODRsMi44NCwzLC41OS42MmgxN2EzLDMsMCwwLDAsMy0zVjIzLjkzQTMsMywwLDAsMCwzMi4wOSwyMVpNOCwyNi4wOFYyNC40YTI1Ljc5LDI1Ljc5LDAsMCwwLDMuNDYuN2wtMS4yNCwxLjQ0QzkuNDYsMjYuNDIsOC43MSwyNi4yNyw4LDI2LjA4Wk0zMy4wOSwzMmExLDEsMCww''@;'; + put 'put ''LDEtMSwxSDE1LjkyTDExLjQsMjguMjMsMTUuOTIsMjNIMzIuMDlhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1i''@;'; + put 'put ''YWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+''@;'; + put 'put ''XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzQuODUsMCwxMi44LS43OSwxMy45MS0zLjYySDIyLjIzYTMuNjgsMy42OCwwLDAsMS0y''@;'; + put 'put ''LjczLTEuMjNIMThBNDIuMTIsNDIuMTIsMCwwLDEsOCwxMy4xMVYxMWE0MC41OSw0MC41OSwwLDAsMCwxMCwxLjE0aC41OWEzLjYxLDMuNjEsMCwwLDEsLjQ2LTIuMjlsMy40Ni02Yy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMTQsMC0xMy43OS44OC0xNCw0LjE1SDR2MTkuN2MwLDIu''@;'; + put 'put ''MTYsMy42NCwzLjMsNy42MywzLjg0bDIuODQsMywuNTkuNjJoMTdhMywzLDAsMCwwLDMtM1YyMy45M0EzLDMsMCwwLDAsMzIuMDksMjFaTTgsMjYuMDhWMjQuNGEyNS43OSwyNS43OSwwLDAsMCwzLjQ2LjdsLTEuMjQsMS40NEM5LjQ2LDI2LjQyLDguNzEsMjYuMjcsOCwyNi4wOFpNMzMuMDks''@;'; + put 'put ''MzJhMSwxLDAsMCwxLTEsMUgxNS45MkwxMS40LDI4LjIzLDE1LjkyLDIzSDMyLjA5YTEsMSwwLDAsMSwxLDFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywx''@;'; + put 'put ''LjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAn''@;'; + put 'put ''KSxlLkNsclNoYXBlTWVkaWFDaGFuZ2VyPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzAsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlY2''@;'; + put 'put ''QTIsMiwwLDAsMCwzMCw0Wk02LDMwVjZIMzBWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSIyMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNs''@;'; + put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIg''@;'; + put 'put ''aGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMjcuMjIsMTBIMjB2NGEuOC44LDAsMSwwLDEuNTksMFYxMS42aDUuNjNhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC01Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjEwIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTgiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjIyIiB3aWR0aD0iOC4xNCIg''@;'; + put 'put ''aGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIi8+XG5cbiAgPHJlY3QgeD0i''@;'; + put 'put ''MjAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; + put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjAiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0''@;'; + put 'put ''aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTAiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0i''@;'; + put 'put ''OC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjIiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTgtLWJhZGdlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0yMCwxNGEuOC44LDAsMSwwLDEu''@;'; + put 'put ''NTksMFYxMS42SDI1QTcuNzQsNy43NCwwLDAsMSwyMy42NiwxMEgyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMwLDEzLjVoMFYzMEg2VjZIMjIuNVY2YTcuMzcsNy4zNywwLDAsMSwuMjgtMkg2''@;'; + put 'put ''QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjM3LDcuMzcsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; + put 'put ''LWktb3V0bGluZS1wYXRoLTExLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHJlY3QgeD0iMjAiIHk9IjE4IiB3aWR0''@;'; + put 'put ''aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; + put 'put ''bmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVp''@;'; + put 'put ''Z2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxMCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTUtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTQiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0iOC4x''@;'; + put 'put ''NCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyMiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTgtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjYiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMCwxNS40VjMwSDZWNkgy''@;'; + put 'put ''MS4yN2wxLjE4LTJINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0xMC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuXG4gIDxwYXRoIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYz''@;'; + put 'put ''MkgzMGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMwLDRaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgy''@;'; + put 'put ''NFYxOGgyWm0wLTZIMjBWMTBoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cblxuICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNC0xLjE2VjE0SDIwVjEwaDMuNjZBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNmE3LjM3LDcuMzcsMCwwLDEsLjI4''@;'; + put 'put ''LTJINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIy''@;'; + put 'put ''SDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5c''@;'; + put 'put ''biAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik0yMi4yMywxNS40YTMuNjgsMy42OCwwLDAsMS0zLjE4LTUuNTFMMjIuNDUsNEg2QTIs''@;'; + put 'put ''MiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk0xNywyOEg4LjgxVjI2SDE3Wm0wLTRIOC44MVYyMkgxN1ptMC00SDguODFWMThIMTdabTAtNEg4LjgxVjE0''@;'; + put 'put ''SDE3Wm0wLTRIOC44MVYxMEgxN1pNMjIsMjRIMjBWMjJoMlptMC00SDIwVjE4aDJabTQsNEgyNFYyMmgyWm0wLTRIMjRWMThoMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTI2Ljg1LDEuMTRsLTUuNzIs''@;'; + put 'put ''OS45MUExLjI3LDEuMjcsMCwwLDAsMjIuMjMsMTNIMzMuNjhhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFs''@;'; + put 'put ''ZXJ0Ii8+XG4gICcpLGUuQ2xyU2hhcGVUYXBlRHJpdmU9KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNNCwyOFY4SDMyVjI4WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTEzLjMzLDEzLjM1YTQuNTIsNC41MiwwLDEsMCw0LjUzLDQuNTJBNC41Myw0LjUzLDAsMCwwLDEzLjMzLDEzLjM1Wm0wLDcuNDRhMi45MiwyLjkyLDAsMSwxLDIuOTMtMi45MkEyLjkyLDIuOTIsMCwwLDEsMTMu''@;'; + put 'put ''MzMsMjAuNzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjMuNjIsMTMuMzVhNC41Miw0LjUyLDAsMSwwLDQuNTIsNC41MkE0LjUzLDQuNTMsMCwwLDAsMjMuNjIsMTMuMzVabTAsNy40NGEyLjkyLDIuOTIsMCwxLDEsMi45Mi0y''@;'; + put 'put ''LjkyQTIuOTIsMi45MiwwLDAsMSwyMy42MiwyMC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik02LDExVjIzLjU1SDhWMTJIMjkuMzRWMTBIN0ExLDEsMCwwLDAsNiwxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; + put 'put ''dGxpbmUtcGF0aC00Ii8+XG5cbiAgPHBhdGggZD0iTTguODEsMTcuODdhNC41Myw0LjUzLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsOC44MSwxNy44N1ptNy40NSwwQTIuOTMsMi45MywwLDEsMSwxMy4zMywxNSwyLjkzLDIuOTMsMCwwLDEsMTYuMjYsMTcuODdaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE5LjEsMTcuODdhNC41Miw0LjUyLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsMTkuMSwxNy44N1ptNy40NCwwQTIuOTIsMi45MiwwLDEsMSwyMy42MiwxNSwy''@;'; + put 'put ''LjkyLDIuOTIsMCwwLDEsMjYuNTQsMTcuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLDEzLjIyVjI4SDRWOEgyMi43OGE3LjM3LDcuMzcsMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4''@;'; + put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjY1LDcuNjUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTYsMTFWMjMuNTVIOFYxMkgyNS41MWE3LjY2''@;'; + put 'put ''LDcuNjYsMCwwLDEtMS44NS0ySDdBMSwxLDAsMCwwLDYsMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNOC44MSwxNy44N2E0LjUzLDQuNTMsMCwxLDAsNC41Mi00LjUyQTQuNTMsNC41MywwLDAsMCw4LjgxLDE3Ljg3Wm03LjQ1LDBBMi45MywyLjkzLDAsMSwxLDEzLjMzLDE1LDIuOTMsMi45MywwLDAs''@;'; + put 'put ''MSwxNi4yNiwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik03LDEwYTEsMSwwLDAsMC0xLDFWMjMuNTVIOFYxMkgxOC41N0EzLjcsMy43LDAsMCwxLDE5LDEwWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJWMjhINFY4SDIwLjE0bDEuMTUtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4WiIgY2xhc3M9ImNsci1p''@;'; + put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTIyLjA5LDE1LjM5YTMuNjUsMy42NSwwLDAsMS0xLjgtLjU1LDQuNTEsNC41MSwwLDEsMCw3LjExLjU2SDI1LjE3YTIuOTIsMi45MiwwLDEsMS0zLjA4LDBaIiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgs''@;'; + put 'put ''MCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4''@;'; + put 'put ''QTIsMiwwLDAsMCwzMiw2Wk0zMCwyNEg2VjEySDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTIuMjEsMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMTIuMjEsMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwxMi4yMSwx''@;'; + put 'put ''NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIzLjc5LDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDIzLjc5LDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMjMuNzksMTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt''@;'; + put 'put ''c29saWQtcGF0aC0zIi8+XG5cbiAgPHBhdGggZD0iTTEyLjIxLDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDEyLjIxLDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTIuMjEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdl''@;'; + put 'put ''ZCIvPlxuICA8cGF0aCBkPSJNMjMuNzksMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMjMuNzksMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwyMy43OSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxwYXRo''@;'; + put 'put ''IGQ9Ik0zMCwxMy41VjI0SDZWMTJIMjUuNTFhNy40OSw3LjQ5LDAsMCwxLTMtNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik03LjIsMThhNSw1LDAsMSwwLDUtNUE1LDUsMCww''@;'; + put 'put ''LDAsNy4yLDE4Wm03LDBhMiwyLDAsMSwxLTItMkEyLDIsMCwwLDEsMTQuMjIsMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0xOC43OCwxOGE1LDUsMCwxLDAsOS4yNy0yLjZIMjIuMjNhMy43MSwzLjcx''@;'; + put 'put ''LDAsMCwxLTIuMTctLjcxQTUsNSwwLDAsMCwxOC43OCwxOFptNS0yYTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDIzLjc5LDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMFYyNEg2''@;'; + put 'put ''VjEySDE4LjU3YTMuNjUsMy42NSwwLDAsMSwuNDgtMi4xMUwyMS4yOSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gIDxw''@;'; + put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; + put 'put ''LXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAnKSxlLkNsclNoYXBlQW5pbWF0aW9uPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMC4xNiwzMS43MWE0LjQsNC40LDAsMCwxLTQuNjQtMUE0LjM0LDQuMzQsMCwwLDEsNC4yMywyNy42YTQuNDEsNC40MSwwLDAsMSwuMTgt''@;'; + put 'put ''MS4yLDExLjYxLDExLjYxLDAsMCwxLTEtMi41Niw2LjQsNi40LDAsMCwwLDkuMzMsOC42M0ExMS41NSwxMS41NSwwLDAsMSwxMC4xNiwzMS43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MSwyNy42OGE3LjYxLDcuNjEs''@;'; + put 'put ''MCwwLDEtOS4wOC0xLjI2LDcuNTgsNy41OCwwLDAsMS0xLjI3LTkuMDYsMTQuMjYsMTQuMjYsMCwwLDEtLjM3LTIuODUsOS41OCw5LjU4LDAsMCwwLC4yMiwxMy4zMyw5LjYzLDkuNjMsMCwwLDAsMTMuMzUuMjJBMTQuNDYsMTQuNDYsMCwwLDEsMTguNDEsMjcuNjhaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNjYsMjYuMjFhMTIuMSwxMi4xLDAsMSwxLDguNTctMy41NGgwQTEyLjExLDEyLjExLDAsMCwxLDIxLjY2LDI2LjIxWk0yMS42Niw0QTEwLjExLDEwLjExLDAsMCwwLDExLjU0LDE0LjExYTEwLDEwLDAsMCww''@;'; + put 'put ''LDMsNy4xNCwxMC4xMiwxMC4xMiwwLDAsMCwxNC4zMSwwQTEwLjExLDEwLjExLDAsMCwwLDIxLjY2LDRabTcuODYsMThoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIFxuICA8cGF0aCBkPSJNMy41LDIzLjc3YTYuNDEsNi40MSwwLDAsMCw5LjMz''@;'; + put 'put ''LDguNjdBMTEuNjUsMTEuNjUsMCwwLDEsMy41LDIzLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNy42OCwxNC41M2E5LjYsOS42LDAsMCwwLDEzLjQsMTMuN0ExNC4xMSwxNC4xMSwwLDAsMSw3LjY4LDE0LjUzWiIgY2xhc3M9ImNs''@;'; + put 'put ''ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNzgsMkExMi4xMiwxMi4xMiwwLDEsMSw5LjY2LDE0LjE1LDEyLjEyLDEyLjEyLDAsMCwxLDIxLjc4LDIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgJyksZS5DbHJTaGFw''@;'; + put 'put ''ZUNpQ2Q9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjUzLDE5LjgxYTcuNDUsNy40NSwwLDAsMS0xLjY1LS4xOCwxMC40OCwxMC40OCwwLDAsMSwuNzIsMi4xM2MuMywwLC42MSwwLC45MywwYTkuNTIsOS41MiwwLDAsMCwzLS40OWwtLjkzLTEuODFBNy42Nyw3LjY3LDAsMCwxLDIz''@;'; + put 'put ''LjUzLDE5LjgxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE4LjM2LDE3Ljg3LDE4LDE3LjQ5YTcuNCw3LjQsMCwwLDEtMi4yLTUuOTIsNy4zMSw3LjMxLDAsMCwxLDEuNTQtNEwxNy4yNiw5QTEsMSwwLDAsMCwxOC4xNywxMGgu''@;'; + put 'put ''MDlhMSwxLDAsMCwwLDEtLjkxTDE5LjYsNWExLDEsMCwwLDAtLjI5LS43OUExLDEsMCwwLDAsMTguNTIsNGwtNC4wOS4zNWExLDEsMCwwLDAsLjE3LDJsMS4yOS0uMTFhOS40NSw5LjQ1LDAsMCwwLTIuMDUsNS4zMiw5LjI4LDkuMjgsMCwwLDAsMi42Nyw3LjI2bC4zMS4zN2E3LjMzLDcuMzMs''@;'; + put 'put ''MCwwLDEsMi4wNiw0LjkxLDcuMzksNy4zOSwwLDAsMS0uMjYsMi40N2wxLjguOTFhOC43Niw4Ljc2LDAsMCwwLC40NS0zLjUxQTkuMjgsOS4yOCwwLDAsMCwxOC4zNiwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMi40''@;'; + put 'put ''LDE3LjkxLDMxLjE5LDE4QTkuNjUsOS42NSwwLDAsMCwyMy41MywyLjQ1YTkuMzMsOS4zMywwLDAsMC0zLC40OWwuOTEsMS44YTcuNjcsNy42NywwLDAsMSw5Ljc2LDcuMzksNy41OCw3LjU4LDAsMCwxLTEuNjUsNC43MmwuMS0xLjU0YTEsMSwwLDEsMC0yLS4xM2wtLjI4LDQuMDhhMSwxLDAs''@;'; + put 'put ''MCwwLC4zMS43OC45NC45NCwwLDAsMCwuNjkuMjhoLjFsNC4wOC0uNDJhMSwxLDAsMCwwLC45LTEuMUExLDEsMCwwLDAsMzIuNCwxNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik00LjA3LDIwLjQ0aC4wOGw0LjA5LS4zNWEx''@;'; + put 'put ''LDEsMCwxLDAtLjE3LTJsLTEuMzkuMTJhNy42Myw3LjYzLDAsMCwxLDQuNTItMS40OSw3LjksNy45LDAsMCwxLDEuNjMuMTgsMTAuMjMsMTAuMjMsMCwwLDEtLjcxLTIuMTNjLS4zLDAtLjYxLDAtLjkyLDBhOS42Niw5LjY2LDAsMCwwLTUuOSwybC4xMi0xLjMxYTEsMSwwLDAsMC0uOTItMS4w''@;'; + put 'put ''OCwxLDEsMCwwLDAtMS4wOC45MWwtLjM1LDQuMDhhMSwxLDAsMCwwLDEsMS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwyOC4yM2wtNC4wOS4yN2ExLDEsMCwwLDAsLjEzLDJMMTYsMzAuMzlhNy43MSw3LjcxLDAs''@;'; + put 'put ''MCwxLTEyLjU0LTYsNy42LDcuNiwwLDAsMSwuMjktMkwyLDIxLjQ2YTkuNTksOS41OSwwLDAsMC0uNDcsMi45NUE5LjcsOS43LDAsMCwwLDE3LjE5LDMybC0uMTIsMS4xOGExLDEsMCwwLDAsLjg5LDEuMWguMTFhMSwxLDAsMCwwLDEtLjlsLjQyLTQuMDZhMSwxLDAsMCwwLTEuMDYtMS4xWiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz4nKSxlLkNsclNoYXBlRmlsZVNoYXJlMj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUsNEg3LjgzQTEuODksMS44OSwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OSwxLjg5LDAsMCwwLDcuODMsMzJIMjguMTdB''@;'; + put 'put ''MS44NywxLjg3LDAsMCwwLDMwLDMwLjA5VjlaTTI0LDUuNzgsMjguMiwxMEgyNFpNOCwzMFY2SDIydjZoNlYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yMiwyMS44MWEyLjExLDIuMTEsMCwwLDAtMS40NC42MmwtNS43Mi0y''@;'; + put 'put ''LjY2di0uNDRsNS42Ni0yLjY1YTIuMDgsMi4wOCwwLDEsMCwuMDYtMi45NGgwYTIuMTQsMi4xNCwwLDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNBMi4wOSwyLjA5LDAsMSwwLDIyLDIxLjg0WiIgY2xhc3M9''@;'; + put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0yNSw0LjA2SDcuODNBMS44OSwxLjg5LDAsMCwwLDYsNlYzMC4xNWExLjg5LDEuODksMCwwLDAsMS44MywxLjkxSDI4LjE3QTEuODcsMS44NywwLDAsMCwzMCwzMC4xNVY5Wk0yMiwyNmEyLjA5''@;'; + put 'put ''LDIuMDksMCwwLDEtMi4xLTIuMDh2LS4zTDE0LjI3LDIxbC0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMTQsMi4xNCwwLDAsMSwuNjQtMS40OGgwYTIuMDgsMi4wOCwwLDEsMS0uMDYsMi45NGwtNS42NiwyLjY1di40NGw1LjcyLDIuNjZBMi4xMSwy''@;'; + put 'put ''LjExLDAsMCwxLDIyLDIxLjgxbDAsMEEyLjA5LDIuMDksMCwwLDEsMjIsMjZabTItMTZWNS44NGw0LjIsNC4yMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLlRlY2hub2xvZ3lTaGFwZXM9eyJydWxlci1wZW5jaWwiOmUuQ2xyU2hhcGVSdWxlclBlbmNp''@;'; + put 'put ''bCwicGhvbmUtaGFuZHNldCI6ZS5DbHJTaGFwZVBob25lSGFuZHNldCwibm8td2lmaSI6ZS5DbHJTaGFwZU5vV2lmaSxpbnN0YWxsOmUuQ2xyU2hhcGVJbnN0YWxsLHVuaW5zdGFsbDplLkNsclNoYXBlVW5pbnN0YWxsLGxheWVyczplLkNsclNoYXBlTGF5ZXJzLGJsb2NrOmUuQ2xyU2hhcGVC''@;'; + put 'put ''bG9jaywiYmxvY2tzLWdyb3VwIjplLkNsclNoYXBlQmxvY2tzR3JvdXAsYnVuZGxlOmUuQ2xyU2hhcGVCdW5kbGUsd2lmaTplLkNsclNoYXBlV2lmaSwicmFjay1zZXJ2ZXIiOmUuQ2xyU2hhcGVSYWNrU2VydmVyLCJoYXJkLWRpc2siOmUuQ2xyU2hhcGVIYXJkRGlzaywiYmFja3VwLXJlc3Rv''@;'; + put 'put ''cmUiOmUuQ2xyU2hhcGVCYWNrdXBSZXN0b3JlLGJhY2t1cDplLkNsclNoYXBlQmFja3VwLGRldmljZXM6ZS5DbHJTaGFwZURldmljZXMsa2V5Ym9hcmQ6ZS5DbHJTaGFwZUtleWJvYXJkLG1vdXNlOmUuQ2xyU2hhcGVNb3VzZSxkYXNoYm9hcmQ6ZS5DbHJTaGFwZURhc2hib2FyZCxob3N0OmUu''@;'; + put 'put ''Q2xyU2hhcGVIb3N0LHN0b3JhZ2U6ZS5DbHJTaGFwZVN0b3JhZ2UsY2x1c3RlcjplLkNsclNoYXBlQ2x1c3RlcixhcHBsaWNhdGlvbnM6ZS5DbHJTaGFwZUFwcGxpY2F0aW9ucyxidWlsZGluZzplLkNsclNoYXBlQnVpbGRpbmcsY3B1OmUuQ2xyU2hhcGVDUFUsbWVtb3J5OmUuQ2xyU2hhcGVN''@;'; + put 'put ''ZW1vcnksImRhdGEtY2x1c3RlciI6ZS5DbHJTaGFwZURhdGFDbHVzdGVyLCJyZXNvdXJjZS1wb29sIjplLkNsclNoYXBlUmVzb3VyY2VQb29sLHNoaWVsZDplLkNsclNoYXBlU2hpZWxkLCJzaGllbGQtY2hlY2siOmUuQ2xyU2hhcGVTaGllbGRDaGVjaywic2hpZWxkLXgiOmUuQ2xyU2hhcGVT''@;'; + put 'put ''aGllbGRYLGltcG9ydDplLkNsclNoYXBlSW1wb3J0LGV4cG9ydDplLkNsclNoYXBlRXhwb3J0LCJ1cGxvYWQtY2xvdWQiOmUuQ2xyU2hhcGVVcGxvYWRDbG91ZCwiZG93bmxvYWQtY2xvdWQiOmUuQ2xyU2hhcGVEb3dubG9hZENsb3VkLHBsdWdpbjplLkNsclNoYXBlUGx1Z2luLGZsb3BweTpl''@;'; + put 'put ''LkNsclNoYXBlRmxvcHB5LGNvbXB1dGVyOmUuQ2xyU2hhcGVDb21wdXRlcixkaXNwbGF5OmUuQ2xyU2hhcGVEaXNwbGF5LHRlcm1pbmFsOmUuQ2xyU2hhcGVUZXJtaW5hbCxjb2RlOmUuQ2xyU2hhcGVDb2RlLGFwcGxpY2F0aW9uOmUuQ2xyU2hhcGVBcHBsaWNhdGlvbixiYXR0ZXJ5OmUuQ2xy''@;'; + put 'put ''U2hhcGVCYXR0ZXJ5LG1vYmlsZTplLkNsclNoYXBlTW9iaWxlLHRhYmxldDplLkNsclNoYXBlVGFibGV0LCJuZXR3b3JrLWdsb2JlIjplLkNsclNoYXBlTmV0d29ya0dsb2JlLCJuZXR3b3JrLXNldHRpbmdzIjplLkNsclNoYXBlTmV0d29ya1NldHRpbmdzLCJuZXR3b3JrLXN3aXRjaCI6ZS5D''@;'; + put 'put ''bHJTaGFwZU5ldHdvcmtTd2l0Y2gscm91dGVyOmUuQ2xyU2hhcGVSb3V0ZXIsdm06ZS5DbHJTaGFwZVZNLCJ2bXctYXBwIjplLkNsclNoYXBlVk1XQXBwLGNlcnRpZmljYXRlOmUuQ2xyU2hhcGVDZXJ0aWZpY2F0ZSxhcmNoaXZlOmUuQ2xyU2hhcGVBcmNoaXZlLHVuYXJjaGl2ZTplLkNsclNo''@;'; + put 'put ''YXBlVW5hcmNoaXZlLGNvbm5lY3Q6ZS5DbHJTaGFwZUNvbm5lY3QsZGlzY29ubmVjdDplLkNsclNoYXBlRGlzY29ubmVjdCxsaW5rOmUuQ2xyU2hhcGVMaW5rLHVubGluazplLkNsclNoYXBlVW5saW5rLCJjbG91ZC1uZXR3b3JrIjplLkNsclNoYXBlQ2xvdWROZXR3b3JrLCJjbG91ZC1zY2Fs''@;'; + put 'put ''ZSI6ZS5DbHJTaGFwZUNsb3VkU2NhbGUsImNsb3VkLXRyYWZmaWMiOmUuQ2xyU2hhcGVDbG91ZFRyYWZmaWMsImNvbnRyb2wtbHVuIjplLkNsckNvbnRyb2xMdW4sZGVwbG95OmUuQ2xyU2hhcGVEZXBsb3ksaGVsaXg6ZS5DbHJTaGFwZUhlbGl4LGZsYXNrOmUuQ2xyU2hhcGVGbGFzayxhZG1p''@;'; + put 'put ''bmlzdHJhdG9yOmUuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yLCJoYXJkLWRyaXZlIjplLkNsclNoYXBlSGFyZERyaXZlLCJoYXJkLWRyaXZlLWRpc2tzIjplLkNsclNoYXBlSGFyZERyaXZlRGlza3MsbnZtZTplLkNsclNoYXBlTlZNZSxzc2Q6ZS5DbHJTaGFwZVNTRCxibHVldG9vdGg6ZS5DbHJT''@;'; + put 'put ''aGFwZUJsdWV0b290aCwiYmx1ZXRvb3RoLW9mZiI6ZS5DbHJTaGFwZUJsdWV0b290aE9mZiwicHJvY2Vzcy1vbi12bSI6ZS5DbHJTaGFwZVByb2Nlc3NPblZNLCJhc3NpZ24tdXNlciI6ZS5DbHJTaGFwZUFzc2lnblVzZXIsYXRvbTplLkNsclNoYXBlQXRvbSwiYmFyLWNvZGUiOmUuQ2xyU2hh''@;'; + put 'put ''cGVCYXJDb2RlLCJjZC1kdmQiOmUuQ2xyU2hhcGVDZER2ZCxjb250YWluZXI6ZS5DbHJTaGFwZUNvbnRhaW5lciwiY29udGFpbmVyLXZvbHVtZSI6ZS5DbHJTaGFwZUNvbnRhaW5lclZvbHVtZSwiZmlsZS1zaGFyZSI6ZS5DbHJTaGFwZUZpbGVTaGFyZSwicXItY29kZSI6ZS5DbHJTaGFwZVFy''@;'; + put 'put ''Q29kZSx1c2I6ZS5DbHJTaGFwZVVzYixyYWRhcjplLkNsclNoYXBlUmFkYXIsY2FwYWNpdG9yOmUuQ2xyU2hhcGVDYXBhY2l0b3Isc3F1aWQ6ZS5DbHJTaGFwZVNxdWlkLGluZHVjdG9yOmUuQ2xyU2hhcGVJbmR1Y3RvcixyZXNpc3RvcjplLkNsclNoYXBlUmVzaXN0b3IsImhvc3QtZ3JvdXAi''@;'; + put 'put ''OmUuQ2xyU2hhcGVIb3N0R3JvdXAsInN0b3JhZ2UtYWRhcHRlciI6ZS5DbHJTaGFwZVN0b3JhZ2VBZGFwdGVyLCJub2RlLWdyb3VwIjplLkNsclNoYXBlTm9kZUdyb3VwLG5vZGVzOmUuQ2xyU2hhcGVOb2RlcyxuYW1lc3BhY2U6ZS5DbHJTaGFwZU5hbWVzcGFjZSxub2RlOmUuQ2xyU2hhcGVO''@;'; + put 'put ''b2RlLHBvZDplLkNsclNoYXBlUG9kLCJtZWRpYS1jaGFuZ2VyIjplLkNsclNoYXBlTWVkaWFDaGFuZ2VyLCJ0YXBlLWRyaXZlIjplLkNsclNoYXBlVGFwZURyaXZlLGFuaW1hdGlvbjplLkNsclNoYXBlQW5pbWF0aW9uLCJjaS1jZCI6ZS5DbHJTaGFwZUNpQ2QsImZpbGUtc2hhcmUtMiI6ZS5D''@;'; + put 'put ''bHJTaGFwZUZpbGVTaGFyZTJ9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRlY2hub2xvZ3lTaGFwZXMsInNlcnZlciIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLlRlY2hub2xvZ3lTaGFwZXMuaG9zdCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRlY2hub2xvZ3lTaGFwZXMsImNvbW1h''@;'; + put 'put ''bmQiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5UZWNobm9sb2d5U2hhcGVzLnRlcm1pbmFsKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuVGVjaG5vbG9neVNoYXBlcywibW9iaWxlLXBob25lIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlcy5tb2JpbGUpKSxP''@;'; + put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoZS5UZWNobm9sb2d5U2hhcGVzLCJsaWNlbnNlIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlcy5jZXJ0aWZpY2F0ZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRlY2hub2xvZ3lTaGFwZXMsImRpc2Nvbm5lY3RlZCIsKDAs''@;'; + put 'put ''ci5kZXNjcmlwdG9yQ29uZmlnKShlLlRlY2hub2xvZ3lTaGFwZXNbIm5vLXdpZmkiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRlY2hub2xvZ3lTaGFwZXMsInJlY2VpdmVyIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlc1sicGhvbmUtaGFuZHNldCJdKSks''@;'; + put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGUuVGVjaG5vbG9neVNoYXBlcywiZGVzaWduIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlc1sicnVsZXItcGVuY2lsIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5UZWNobm9sb2d5U2hhcGVzLCJkbmEiLCgwLHIuZGVz''@;'; + put 'put ''Y3JpcHRvckNvbmZpZykoZS5UZWNobm9sb2d5U2hhcGVzLmhlbGl4KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuVGVjaG5vbG9neVNoYXBlcywiZm9sZGVyLXNoYXJlIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlc1siZmlsZS1zaGFyZSJdKSksInVuZGVmaW5l''@;'; + put 'put ''ZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKGUuVGVjaG5vbG9neVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGV4dC1lZGl0LXNoYXBlcy50cyI6ZnVuY3Rpb24oQSxl''@;'; + put 'put ''LGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5UZXh0RWRpdFNoYXBlcz1lLkNsclNoYXBlU3VwZXJzY3JpcHQ9ZS5DbHJTaGFwZVN1YnNjcmlwdD1lLkNsclNoYXBlU3RyaWtldGhyb3VnaD1lLkNsclNoYXBlSW5kZW50''@;'; + put 'put ''PWUuQ2xyU2hhcGVPdXRkZW50PWUuQ2xyU2hhcGVIaWdobGlnaHRlcj1lLkNsclNoYXBlVGV4dENvbG9yPWUuQ2xyU2hhcGVMYW5ndWFnZT1lLkNsclNoYXBlQWxpZ25Ub3A9ZS5DbHJTaGFwZUFsaWduTWlkZGxlPWUuQ2xyU2hhcGVBbGlnbkJvdHRvbT1lLkNsclNoYXBlVW5kZXJsaW5lPWUu''@;'; + put 'put ''Q2xyU2hhcGVUZXh0PWUuQ2xyU2hhcGVBbGlnblJpZ2h0VGV4dD1lLkNsclNoYXBlQmxvY2tRdW90ZT1lLkNsclNoYXBlUGFpbnRSb2xsZXI9ZS5DbHJTaGFwZU51bWJlckxpc3Q9ZS5DbHJTaGFwZUFsaWduTGVmdFRleHQ9ZS5DbHJTaGFwZUp1c3RpZnlUZXh0PWUuQ2xyU2hhcGVJdGFsaWM9''@;'; + put 'put ''ZS5DbHJTaGFwZUFsaWduUmlnaHQ9ZS5DbHJTaGFwZUFsaWduTGVmdD1lLkNsclNoYXBlQWxpZ25DZW50ZXI9ZS5DbHJTaGFwZUZvbnRTaXplPWUuQ2xyU2hhcGVDaGVja2JveExpc3Q9ZS5DbHJTaGFwZUNlbnRlclRleHQ9ZS5DbHJTaGFwZUJ1bGxldExpc3Q9ZS5DbHJTaGFwZUJvbGQ9dm9p''@;'; + put 'put ''ZCAwLGw9bCgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxlLkNsclNoYXBlQm9sZD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjIuNDMsMTcuNTRhNC42Nyw0LjY3LDAsMCwwLDIuOC00LjM3di0uMDZhNC40Myw0LjQzLDAsMCwwLTEuMzEt''@;'; + put 'put ''My4yNSw3LjA5LDcuMDksMCwwLDAtNS4xMy0xLjczaC03QTEuNzEsMS43MSwwLDAsMCwxMCw5Ljg2VjI2YTEuNzIsMS43MiwwLDAsMCwxLjc0LDEuNzRoNy4zM2M0LjM3LDAsNy4yNS0xLjg4LDcuMjUtNS4zOFYyMi4zQzI2LjMyLDE5LjY0LDI0LjczLDE4LjMyLDIyLjQzLDE3LjU0Wk0xMy42''@;'; + put 'put ''OCwxMS40aDQuNTRjMiwwLDMuMTUuODksMy4xNSwyLjMzdi4wNmMwLDEuNjgtMS4zNiwyLjQ5LTMuMzgsMi40OUgxMy42OFpNMjIuMzcsMjJjMCwxLjU5LTEuMzEsMi40My0zLjQ2LDIuNDNIMTMuNjhWMTkuNjJoNWMyLjQ5LDAsMy42OS44OCwzLjY5LDIuMzdaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlQnVsbGV0TGlzdD0oMCxsLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSI1LjIxIiBjeT0iOS4xNyIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PGNpcmNsZSBjeD0iNS4y''@;'; + put 'put ''MSIgY3k9IjE3LjE3IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48Y2lyY2xlIGN4PSI1LjIxIiBjeT0iMjUuMTciIHI9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMi40Miw5YTEs''@;'; + put 'put ''MSwwLDAsMC0xLTFIMTB2MkgzMS40MkExLDEsMCwwLDAsMzIuNDIsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMS40MiwxNkgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzEuNDIsMjRIMTB2MkgzMS40MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksZS5DbHJTaGFwZUNlbnRlclRleHQ9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjg4LDhI''@;'; + put 'put ''NS4xMmExLjEsMS4xLDAsMCwwLDAsMi4ySDMwLjg4YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjUuNSwxNi4yYTEuMSwxLjEsMCwxLDAsMC0yLjJoLTE1YTEuMSwxLjEsMCwxLDAsMCwyLjJaIiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAuMjUsMjBINS43NWExLjEsMS4xLDAsMCwwLDAsMi4yaDI0LjVhMS4xLDEuMSwwLDAsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRo''@;'; + put 'put ''IGQ9Ik0yNC44OCwyNkgxMS4xMmExLjEsMS4xLDAsMSwwLDAsMi4ySDI0Ljg4YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlQ2hlY2tib3hMaXN0PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9''@;'; + put 'put ''Ik0zMS40MywxNkgxMHYySDMxLjQzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzEuNDMsMjRIMTB2MkgzMS40M2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTIiIC8+PHBhdGggZD0iTTE1LjQ1LDEwaDE2YTEsMSwwLDAsMCwwLTJoLTE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTE3LjUsMy40MmExLjA5LDEuMDksMCwwLDAtMS41NSwwTDcuODksMTEuNDgsNC41MSw3Ljg0QTEuMSwx''@;'; + put 'put ''LjEsMCwxLDAsMi45LDkuMzRsNC45NCw1LjNMMTcuNSw1QTEuMSwxLjEsMCwwLDAsMTcuNSwzLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksZS5DbHJTaGFwZUZvbnRTaXplPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMSw5LjA4QTEu''@;'; + put 'put ''MTMsMS4xMywwLDAsMCwxOS44Niw4SDQuNjJhMS4xLDEuMSwwLDEsMCwwLDIuMTlIMTFWMjdhMS4wOSwxLjA5LDAsMCwwLDIuMTcsMFYxMC4xOWg2LjY5QTEuMTQsMS4xNCwwLDAsMCwyMSw5LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGgg''@;'; + put 'put ''ZD0iTTMwLjY3LDE1SDIxLjE1YTEuMSwxLjEsMCwxLDAsMCwyLjE5SDI1VjI2LjVhMS4wOSwxLjA5LDAsMCwwLDIuMTcsMFYxNy4yM2gzLjU0YTEuMSwxLjEsMCwxLDAsMC0yLjE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUFs''@;'; + put 'put ''aWduQ2VudGVyPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwyMEgxOVYxNmg2YTEsMSwwLDAsMCwxLTFWN2ExLDEsMCwwLDAtMS0xSDE5VjJhMSwxLDAsMCwwLTIsMFY2SDExYTEsMSwwLDAsMC0xLDF2OGExLDEsMCwwLDAsMSwxaDZ2NEg1YTEsMSwwLDAsMC0xLDF2OGExLDEsMCww''@;'; + put 'put ''LDAsMSwxSDE3djRhMSwxLDAsMCwwLDIsMFYzMEgzMWExLDEsMCwwLDAsMS0xVjIxQTEsMSwwLDAsMCwzMSwyMFpNMTIsMTRWOEgyNHY2Wk0zMCwyOEg2VjIySDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUFsaWduTGVmdD0o''@;'; + put 'put ''MCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNSwxQTEsMSwwLDAsMCw0LDJWMzRhMSwxLDAsMCwwLDIsMFYyQTEsMSwwLDAsMCw1LDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzEsMjBIOFYzMEgzMWExLDEsMCwwLDAsMS0xVjIx''@;'; + put 'put ''QTEsMSwwLDAsMCwzMSwyMFptLTEsOEgxMFYyMkgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNCwxNVY3YTEsMSwwLDAsMC0xLTFIOFYxNkgyM0ExLDEsMCwwLDAsMjQsMTVabS0yLTFIMTBWOEgyMloiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGUuQ2xyU2hhcGVBbGlnblJpZ2h0PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwxYTEsMSwwLDAsMC0xLDFWMzRhMSwxLDAsMCwwLDIsMFYyQTEsMSwwLDAsMCwzMSwxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; + put 'put ''b3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQsMjF2OGExLDEsMCwwLDAsMSwxSDI4VjIwSDVBMSwxLDAsMCwwLDQsMjFabTIsMUgyNnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTIsN3Y4YTEsMSwwLDAsMCwxLDFIMjhW''@;'; + put 'put ''NkgxM0ExLDEsMCwwLDAsMTIsN1ptMiwxSDI2djZIMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxlLkNsclNoYXBlSXRhbGljPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC40Miw4SDE3LjFhMS4xLDEuMSwwLDEsMCwwLDIuMTloMi4x''@;'; + put 'put ''M0wxMy4xMSwyNS41NUgxMC40N2ExLjEsMS4xLDAsMSwwLDAsMi4xOUgxNy44YTEuMSwxLjEsMCwxLDAsMC0yLjE5SDE1LjUxbDYuMTMtMTUuMzZoMi43OGExLjEsMS4xLDAsMSwwLDAtMi4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xy''@;'; + put 'put ''U2hhcGVKdXN0aWZ5VGV4dD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNiwxMC4ySDMxLjc1YTEuMSwxLjEsMCwxLDAsMC0yLjJINmExLjEsMS4xLDAsMSwwLDAsMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLjc1LDE0''@;'; + put 'put ''SDZhMS4xLDEuMSwwLDEsMCwwLDIuMkgzMS43NWExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMxLjEyLDIwSDYuNjJhMS4xLDEuMSwwLDEsMCwwLDIuMmgyNC41YTEuMSwxLjEsMCwxLDAsMC0yLjJa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzAuNDUsMjUuODNINi42YTEuMSwxLjEsMCwwLDAsMCwyLjJIMzAuNDVhMS4xLDEuMSwwLDAsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAv''@;'; + put 'put ''PicpLGUuQ2xyU2hhcGVBbGlnbkxlZnRUZXh0PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC4yNSwyNkg2djIuMkgyMC4yNWExLjEsMS4xLDAsMCwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI4LDIwSDZ2Mi4y''@;'; + put 'put ''SDI4QTEuMSwxLjEsMCwwLDAsMjgsMjBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIuNiwxNS4xQTEuMSwxLjEsMCwwLDAsMjEuNSwxNEg2djIuMkgyMS41QTEuMSwxLjEsMCwwLDAsMjIuNiwxNS4xWiIgY2xhc3M9ImNsci1pLW91''@;'; + put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI5LjI1LDhINnYyLjJIMjkuMjVhMS4xLDEuMSwwLDEsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLGUuQ2xyU2hhcGVOdW1iZXJMaXN0PSgwLGwuY2xySWNvblNW''@;'; + put 'put ''RykoJzxwb2x5Z29uIHBvaW50cz0iNS40NiA3LjQxIDUuNDYgMTEuNTYgNi42NSAxMS41NiA2LjY1IDYuMDUgNS43IDYuMDUgNC4wNSA3LjE2IDQuNTIgOCA1LjQ2IDcuNDEiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik01LjU3LDE0Ljgy''@;'; + put 'put ''YS43Ni43NiwwLDAsMSwuODMuNzNjMCwuMzgtLjIxLjc0LS44NywxLjI3bC0yLDEuNTd2MUg3LjY3VjE4LjI4SDUuMzNsMS0uNzdjMS0uNywxLjI4LTEuMjcsMS4yOC0yYTEuODMsMS44MywwLDAsMC0yLTEuNzYsMi42MywyLjYzLDAsMCwwLTIuMTQsMS4wOGwuNzYuNzNBMS43NSwxLjc1LDAs''@;'; + put 'put ''MCwxLDUuNTcsMTQuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNNi41NiwyNC42NGExLjMyLDEuMzIsMCwwLDAsMS0xLjI3YzAtLjg3LS43OC0xLjUxLTItMS41MWEyLjYxLDIuNjEsMCwwLDAtMi4xLDFsLjY5LjcyYTEuNzgsMS43''@;'; + put 'put ''OCwwLDAsMSwxLjMtLjY0Yy41NCwwLC45Mi4yNi45Mi42NnMtLjM2LjYyLTEsLjYySDQuNzl2MWguNjRjLjc0LDAsMS4wNy4yMSwxLjA3LjYzcy0uMzUuNjgtMSwuNjhhMiwyLDAsMCwxLTEuNDYtLjY1bC0uNy43OGEyLjg1LDIuODUsMCwwLDAsMi4yMS45M2MxLjI5LDAsMi4xMy0uNjksMi4x''@;'; + put 'put ''My0xLjY0QTEuMzMsMS4zMywwLDAsMCw2LjU2LDI0LjY0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMyLjQyLDlhMSwxLDAsMCwwLTEtMUgxMHYySDMxLjQyQTEsMSwwLDAsMCwzMi40Miw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; + put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMxLjQyLDE2SDEwdjJIMzEuNDJhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMS40MiwyNEgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxlLkNsclNoYXBlUGFpbnRSb2xsZXI9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLDEwVjRhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDR2NmEyLDIsMCwwLDAsMiwySDI5QTIsMiwwLDAsMCwzMSwx''@;'; + put 'put ''MFpNNiw0SDI5djZINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMyw2SDMydjYuMjlMMTguNywxNi41NGExLDEsMCwwLDAtLjcsMVYxOUgxNlYzM2EyLDIsMCwwLDAsMiwyaDJhMiwyLDAsMCwwLDItMlYxOUgyMHYtLjczTDMzLjMs''@;'; + put 'put ''MTRhMSwxLDAsMCwwLC43LTFWN0ExLDEsMCwwLDAsMzMsNlpNMjAsMzNIMThWMjFoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxyZWN0IHg9IjQiIHk9IjIiIHdpZHRoPSIyNyIgaGVpZ2h0PSIxMCIgcng9IjEiIHJ5PSIxIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''c29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMyw2SDMydjYuMjRMMTguNzEsMTYuNDVhMSwxLDAsMCwwLS43MSwxVjE5SDE2VjM0YTEsMSwwLDAsMCwxLDFoNGExLDEsMCwwLDAsMS0xVjE5SDIwdi0uODJMMzMuMjksMTRBMSwxLDAsMCwwLDM0LDEzVjdBMSwxLDAsMCww''@;'; + put 'put ''LDMzLDZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVCbG9ja1F1b3RlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMS44NiwxNi41NWE0LjMxLDQuMzEsMCwwLDAtMi4xMS41NiwxNC40NCwxNC40NCwwLDAsMSw0LjM2LTYsMS4x''@;'; + put 'put ''LDEuMSwwLDAsMC0xLjQtMS43Yy00LDMuMjUtNS43OCw3Ljc1LTUuNzgsMTAuNTRBNS4wOCw1LjA4LDAsMCwwLDEwLDI0LjU4YTQuNCw0LjQsMCwwLDAsMS44OC40NCw0LjI0LDQuMjQsMCwxLDAsMC04LjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+''@;'; + put 'put ''PHBhdGggZD0iTTIzLDE2LjU1YTQuMjksNC4yOSwwLDAsMC0yLjExLjU2LDE0LjUsMTQuNSwwLDAsMSw0LjM1LTYsMS4xLDEuMSwwLDEsMC0xLjM5LTEuN2MtNCwzLjI1LTUuNzgsNy43NS01Ljc4LDEwLjU0YTUuMDgsNS4wOCwwLDAsMCwzLDQuNjFBNC4zNyw0LjM3LDAsMCwwLDIzLDI1YTQu''@;'; + put 'put ''MjQsNC4yNCwwLDEsMCwwLTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQWxpZ25SaWdodFRleHQ9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjY1LDI3LjFhMS4xLDEuMSwwLDAsMCwxLjEsMS4xSDMwVjI2SDE1''@;'; + put 'put ''Ljc1QTEuMSwxLjEsMCwwLDAsMTQuNjUsMjcuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LjksMjEuMUExLjEsMS4xLDAsMCwwLDgsMjIuMkgzMFYyMEg4QTEuMSwxLjEsMCwwLDAsNi45LDIxLjFaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTMuNCwxNS4xYTEuMSwxLjEsMCwwLDAsMS4xLDEuMUgzMFYxNEgxNC41QTEuMSwxLjEsMCwwLDAsMTMuNCwxNS4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTYu''@;'; + put 'put ''NzUsOGExLjEsMS4xLDAsMSwwLDAsMi4ySDMwVjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlVGV4dD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMTksOC44NGExLjQ1LDEuNDUsMCwwLDAtMS40LTFoLS4xMmExLjQ2''@;'; + put 'put ''LDEuNDYsMCwwLDAtMS40MiwxTDEuMTQsMjYuNTZhMS4yOSwxLjI5LDAsMCwwLS4xNC41OSwxLDEsMCwwLDAsMSwxLDEuMTIsMS4xMiwwLDAsMCwxLjA4LS43N2wyLjA4LTQuNjVoMTFsMi4wOCw0LjU5YTEuMjQsMS4yNCwwLDAsMCwxLjEyLjgzLDEuMDgsMS4wOCwwLDAsMCwxLjA4LTEuMDgs''@;'; + put 'put ''MS42NCwxLjY0LDAsMCwwLS4xNC0uNTdaTTYuMDgsMjAuNzFsNC41OS0xMC4yMiw0LjYsMTAuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMjQsMTQuNzhBNi4zNSw2LjM1LDAsMCwwLDI3LjYsMTMuMmExMS4zNiwxMS4zNiww''@;'; + put 'put ''LDAsMC00LjcsMSwxLDEsMCwwLDAtLjU4Ljg5LDEsMSwwLDAsMCwuOTQuOTIsMS4yMywxLjIzLDAsMCwwLC4zOS0uMDgsOC44Nyw4Ljg3LDAsMCwxLDMuNzItLjgxYzIuNywwLDQuMjgsMS4zMyw0LjI4LDMuOTJ2LjVhMTUuMjksMTUuMjksMCwwLDAtNC40Mi0uNjFjLTMuNjQsMC02LjE0LDEu''@;'; + put 'put ''NjEtNi4xNCw0LjY0di4wNWMwLDIuOTUsMi43LDQuNDgsNS4zNyw0LjQ4YTYuMjksNi4yOSwwLDAsMCw1LjE5LTIuNDhWMjYuOWExLDEsMCwwLDAsMSwxLDEsMSwwLDAsMCwxLTEuMDZWMTlBNS43MSw1LjcxLDAsMCwwLDMyLjI0LDE0Ljc4Wm0tLjU2LDcuN2MwLDIuMjgtMi4xNywzLjg5LTQu''@;'; + put 'put ''ODEsMy44OS0xLjk0LDAtMy42MS0xLjA2LTMuNjEtMi44NnYtLjA2YzAtMS44LDEuNS0zLDQuMi0zYTE1LjIsMTUuMiwwLDAsMSw0LjIyLjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZVVuZGVybGluZT0oMCxsLmNsckljb25T''@;'; + put 'put ''VkcpKCc8cGF0aCBkPSJNMTgsMjguMTdjNS4wOCwwLDguNDgtMy4wOCw4LjQ4LTlWOC41NGExLjE1LDEuMTUsMCwxLDAtMi4zLDB2MTAuOGMwLDQuNDQtMi4zOCw2LjcxLTYuMTMsNi43MXMtNi4yMS0yLjQ3LTYuMjEtNi44NVY4LjU0YTEuMTUsMS4xNSwwLDEsMC0yLjMsMHYxMC44QzkuNTMs''@;'; + put 'put ''MjUuMDksMTMsMjguMTcsMTgsMjguMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzEsMzBINWExLjExLDEuMTEsMCwwLDAsMCwyLjIxSDMxQTEuMTEsMS4xMSwwLDAsMCwzMSwzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; + put 'put ''LW91dGxpbmUtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVBbGlnbkJvdHRvbT0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsMzBIMmExLDEsMCwwLDAsMCwySDM0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBk''@;'; + put 'put ''PSJNMTYsNWExLDEsMCwwLDAtMS0xSDdBMSwxLDAsMCwwLDYsNVYyOEgxNlpNMTQsMjZIOFY2aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAsMTNhMSwxLDAsMCwwLTEtMUgyMWExLDEsMCwwLDAtMSwxVjI4SDMwWk0yOCwyNkgy''@;'; + put 'put ''MlYxNGg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZUFsaWduTWlkZGxlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCwxN0gzMFYxMWExLDEsMCwwLDAtMS0xSDIxYTEsMSwwLDAsMC0xLDF2NkgxNlY1YTEsMSwwLDAs''@;'; + put 'put ''MC0xLTFIN0ExLDEsMCwwLDAsNiw1VjE3SDJhMSwxLDAsMCwwLDAsMkg2VjMxYTEsMSwwLDAsMCwxLDFoOGExLDEsMCwwLDAsMS0xVjE5aDR2NmExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVYxOWg0YTEsMSwwLDAsMCwwLTJaTTE0LDMwSDhWNmg2Wm0xNC02SDIyVjEyaDZaIiBjbGFz''@;'; + put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlQWxpZ25Ub3A9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDRIMkExLDEsMCwwLDAsMiw2SDM0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; + put 'put ''LXBhdGgtMSIgLz48cGF0aCBkPSJNNiwzMWExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVY4SDZaTTgsMTBoNlYzMEg4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIwLDIzYTEsMSwwLDAsMCwxLDFoOGExLDEsMCwwLDAsMS0x''@;'; + put 'put ''VjhIMjBabTItMTNoNlYyMkgyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGUuQ2xyU2hhcGVMYW5ndWFnZT0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsM0gxNHY1aDJWNWgxNGMwLjYsMCwxLDAuNCwxLDF2MTFjMCwwLjYtMC40LDEt''@;'; + put 'put ''MSwxSDE3djdoLTUuM0w4LDI3LjlWMjVINWMtMC42LDAtMS0wLjQtMS0xVjEzYzAtMC42LDAuNC0xLDEtMWgxM3YtMkg1XG5cdFx0Yy0xLjcsMC0zLDEuMy0zLDN2MTFjMCwxLjcsMS4zLDMsMywzaDF2NS4xbDYuMy01LjFIMTl2LTdoMTFjMS43LDAsMy0xLjMsMy0zVjZDMzMsNC4zLDMxLjcs''@;'; + put 'put ''MywzMCwzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYuMiwyMi45aDIuNGwwLjYtMS42aDMuMWwwLjYsMS42aDIuNEwxMS45LDE0SDkuNUw2LjIsMjIuOXogTTEwLjcsMTYuNWwxLDMuMWgtMkwxMC43LDE2LjV6IiBjbGFzcz0iY2xy''@;'; + put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjAsMTdjMS4xLDAsMi42LTAuMyw0LTFjMS40LDAuNywzLDEsNCwxdi0yYzAsMC0xLDAtMi4xLTAuNGMxLjItMS4yLDIuMS0zLDIuMS01LjZWOGgtM1Y2aC0ydjJoLTN2Mmg1Ljlcblx0XHRjLTAuMiwxLjgtMSwy''@;'; + put 'put ''LjktMS45LDMuNmMtMC42LTAuNS0xLjItMS4yLTEuNi0yLjFoLTIuMWMwLjQsMS4zLDEsMi4zLDEuOCwzLjFDMjEuMSwxNSwyMC4yLDE1LDIwLDE1VjE3eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBvbHlnb24gcG9pbnRzPSIxMSwxNi41IDEwLDE5''@;'; + put 'put ''LjYgMTIsMTkuNiAxMSwxNi41IFx0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC4zLDNoLTE2djVoNHYyaC0xM2MtMS43LDAtMywxLjMtMywzdjExYzAsMS43LDEuMywzLDMsM2gxdjUuMWw2LjMtNS4xaDYuN3YtN2gxMWMxLjcsMCwzLTEu''@;'; + put 'put ''MywzLTNWNlxuXHRcdEMzMy4zLDQuMywzMiwzLDMwLjMsM3ogTTEzLjEsMjIuOWwtMC41LTEuNkg5LjVsLTAuNiwxLjZINi41TDkuOCwxNGgyLjRsMy4zLDguOUwxMy4xLDIyLjl6IE0yOC4zLDE1djJjLTEuMywwLTIuNy0wLjQtMy45LTFcblx0XHRjLTEuMiwwLjYtMi42LDAuOS00LDFsLTAu''@;'; + put 'put ''MS0yYzAuNywwLDEuNC0wLjEsMi4xLTAuM2MtMC45LTAuOS0xLjUtMi0xLjgtMy4yaDIuMWMwLjMsMC45LDAuOSwxLjYsMS42LDIuMmMxLjEtMC45LDEuOC0yLjIsMS45LTMuN1xuXHRcdGgtNlY4aDNWNmgydjJoMy4zbDAuMSwxYzAuMSwyLjEtMC43LDQuMi0yLjIsNS43QzI3LjEsMTQuOSwy''@;'; + put 'put ''Ny43LDE1LDI4LjMsMTV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVUZXh0Q29sb3I9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LjQ3LDMuODRhMS40NSwxLjQ1LDAsMCwwLTEuNC0xSDE4YTEuNDUsMS40NSwwLDAsMC0xLjQy''@;'; + put 'put ''LDFMOC40MiwyMS41NmExLjM1LDEuMzUsMCwwLDAtLjE0LjU5LDEsMSwwLDAsMCwxLDEsMS4xMSwxLjExLDAsMCwwLDEuMDgtLjc3bDIuMDgtNC42NWgxMWwyLjA4LDQuNTlhMS4yNCwxLjI0LDAsMCwwLDEuMTIuODMsMS4wOCwxLjA4LDAsMCwwLDEuMDgtMS4wOCwxLjU5LDEuNTksMCwwLDAt''@;'; + put 'put ''LjE0LS41N1pNMTMuMzYsMTUuNzEsMTgsNS40OWw0LjYsMTAuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSI0LjA2IiB5PSIyNSIgd2lkdGg9IjI4IiBoZWlnaHQ9IjgiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz4nKSxlLkNsclNoYXBlSGlnaGxpZ2h0ZXI9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LjgyLDI2LjA2YTEsMSwwLDAsMS0uNzEtLjI5TDguNjcsMTkuMzNhMSwxLDAsMCwxLS4yOS0uNzEsMSwxLDAsMCwxLC4yOS0uNzFMMjMsMy41NGE1''@;'; + put 'put ''LjU1LDUuNTUsMCwxLDEsNy44NSw3Ljg2TDE2LjUzLDI1Ljc3QTEsMSwwLDAsMSwxNS44MiwyNi4wNlptLTUtNy40NCw1LDVMMjkuNDgsMTBhMy41NCwzLjU0LDAsMCwwLDAtNSwzLjYzLDMuNjMsMCwwLDAtNSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; + put 'put ''Lz5cbiAgPHBhdGggZD0iTTEwLjM4LDI4LjI4QTEsMSwwLDAsMSw5LjY3LDI4TDYuNDUsMjQuNzdhMSwxLDAsMCwxLS4yMi0xLjA5bDIuMjItNS40NGExLDEsMCwwLDEsMS42My0uMzNsNi40NSw2LjQ0QTEsMSwwLDAsMSwxNi4yLDI2bC01LjQ0LDIuMjJBMS4zMywxLjMzLDAsMCwxLDEwLjM4''@;'; + put 'put ''LDI4LjI4Wk04LjMzLDIzLjgybDIuMjksMi4yOCwzLjQzLTEuNEw5Ljc0LDIwLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTguOTQsMzBoLTVhMSwxLDAsMCwxLS44NC0xLjU1bDMuMjItNC45NGExLDEsMCwwLDEsMS41NS0u''@;'; + put 'put ''MTZsMy4yMSwzLjIyYTEsMSwwLDAsMSwuMDYsMS4zNUw5LjcsMjkuNjRBMSwxLDAsMCwxLDguOTQsMzBaTTUuNzgsMjhIOC40N0w5LDI3LjM0bC0xLjctMS43WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHJlY3QgeD0iMy4wNiIgeT0iMzEiIHdp''@;'; + put 'put ''ZHRoPSIzMCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPicpLGUuQ2xyU2hhcGVPdXRkZW50PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMS4wNiw5aC0yNmExLDEsMCwxLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0i''@;'; + put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMTRoLTE3YTEsMSwwLDAsMSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwxOWgt''@;'; + put 'put ''MTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDI0aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; + put 'put ''aS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMjloLTI2YTEsMSwwLDAsMSwwLTJoMjZhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik05LjU2LDIyLjU0YTEsMSwwLDAsMS0uNy0uM0w0''@;'; + put 'put ''LjYxLDE4bDQuMjUtNC4yNGExLDEsMCwwLDEsMS40MSwxLjQxTDcuNDQsMThsMi44MywyLjgzYTEsMSwwLDAsMS0uNzEsMS43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+JyksZS5DbHJTaGFwZUluZGVudD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBk''@;'; + put 'put ''PSJNMzEuMDYsOWgtMjZhMSwxLDAsMSwxLDAtMmgyNmExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE0aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMTloLTE3YTEsMSwwLDAsMSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyNGgtMTdhMSwx''@;'; + put 'put ''LDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDI5aC0yNmExLDEsMCwwLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; + put 'put ''aW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNNS41NiwyMi41NGExLDEsMCwwLDEtLjctMS43MUw3LjY4LDE4LDQuODYsMTUuMTdhMSwxLDAsMCwxLDAtMS40MSwxLDEsMCwwLDEsMS40MSwwTDEwLjUxLDE4LDYuMjcsMjIuMjRBMSwxLDAsMCwxLDUuNTYsMjIuNTRaIiBjbGFzcz0iY2xyLWkt''@;'; + put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPicpLGUuQ2xyU2hhcGVTdHJpa2V0aHJvdWdoPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi44OCwxOS45MmgtMzBhMSwxLDAsMSwxLDAtMmgzMGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTcuMjcsMTUuODZhMTIuOSwxMi45LDAsMCwxLDEuMjktLjUyQTUuNjksNS42OSwwLDAsMSwxMC4zOSwxNWEzLjE4LDMuMTgsMCwwLDEsMi43NSwxLjExQTQuNDQsNC40NCwwLDAsMSwxNCwxOC44NXYuNDlhMTMuODMsMTMuODMsMCwwLDAtNC4y''@;'; + put 'put ''OS0uNzQsNi4xOSw2LjE5LDAsMCwwLTIuNTkuNTRBNSw1LDAsMCwwLDUuODEsMjBIMTUuODhWMTguODVhNS42Nyw1LjY3LDAsMCwwLTEuMzctNCw1LjE2LDUuMTYsMCwwLDAtNC0xLjQ5LDEwLDEwLDAsMCwwLTMuOTEuODguODcuODcsMCwwLDAtLjQ0LDEuMThBLjg0Ljg0LDAsMCwwLDcuMjcs''@;'; + put 'put ''MTUuODZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEsMjBhNS45NCw1Ljk0LDAsMCwxLC41NC0yLjMxLDQuMzUsNC4zNSwwLDAsMSwxLjU4LTEuODMsNC4yNyw0LjI3LDAsMCwxLDQuNTksMCw0LjQ3LDQuNDcsMCwwLDEsMS41''@;'; + put 'put ''NywxLjgzQTYuMTIsNi4xMiwwLDAsMSwyOS44NSwyMGgyYTcuNzMsNy43MywwLDAsMC0uNzgtMy4xOSw2LDYsMCwwLDAtMi4xOC0yLjQ1LDUuNzQsNS43NCwwLDAsMC0zLjEtLjg4LDUuMzksNS4zOSwwLDAsMC0yLjguNzMsNS41NSw1LjU1LDAsMCwwLTIsMi4wNVYxMGEuODcuODcsMCwwLDAt''@;'; + put 'put ''Ljg2LS44NkgyMGEuODcuODcsMCwwLDAtLjg2Ljg2VjIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTI5LjY3LDIyYTUuNjEsNS42MSwwLDAsMS0uMzYsMS4wNyw0LjQ3LDQuNDcsMCwwLDEtMS41NywxLjg1LDQuMzIsNC4zMiww''@;'; + put 'put ''LDAsMS00LjU5LDAsNC4zNSw0LjM1LDAsMCwxLTEuNTgtMS44NUE1LjY0LDUuNjQsMCwwLDEsMjEuMiwyMkgxOS4wOXY0LjEzQS44Ny44NywwLDAsMCwyMCwyN2guMmEuODcuODcsMCwwLDAsLjg2LS44NlYyNC41MWE1LjU4LDUuNTgsMCwwLDAsMiwyLjA2LDUuNDgsNS40OCwwLDAsMCwyLjgu''@;'; + put 'put ''NzIsNS42Niw1LjY2LDAsMCwwLDMuMS0uODhBNS44OCw1Ljg4LDAsMCwwLDMxLjA5LDI0LDcuMDksNy4wOSwwLDAsMCwzMS43MywyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xNCwyMnYuNzZhMy4zNCwzLjM0LDAsMCwxLTEu''@;'; + put 'put ''NjIsMiw1LjM0LDUuMzQsMCwwLDEtMi42OS43MiwzLjc4LDMuNzgsMCwwLDEtMi4zNi0uNywyLjI0LDIuMjQsMCwwLDEtLjk0LTEuOSwyLjI5LDIuMjksMCwwLDEsLjItLjkxSDQuNjJhNCw0LDAsMCwwLS4xMywxLDMuODMsMy44MywwLDAsMCwxLjM1LDMuMDZBNS4xNSw1LjE1LDAsMCwwLDku''@;'; + put 'put ''MzEsMjcuMiw2LDYsMCwwLDAsMTIsMjYuNTdhNC42Miw0LjYyLDAsMCwwLDItMS43NFYyNmEuODYuODYsMCwwLDAsLjg2Ljg2SDE1YS44Ni44NiwwLDAsMCwuODYtLjg2VjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz4nKSxlLkNsclNoYXBlU3Vic2Ny''@;'; + put 'put ''aXB0PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC41NSwxOGw2LjgsOC42YTEuMTcsMS4xNywwLDAsMS0uOTIsMS45aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0uNDRMMTMsMTkuOTEsNi42LDI4YTEuMTcsMS4xNywwLDAsMS0uOTIuNDRoMGExLjE3LDEuMTcsMCwwLDEtLjkyLTEuOUwx''@;'; + put 'put ''MS41NSwxOGwtNi44LTguNmExLjE3LDEuMTcsMCwwLDEsLjkyLTEuOWgwQTEuMTcsMS4xNywwLDAsMSw2LjYzLDhsNi40NCw4LjEzTDE5LjUsOGExLjE3LDEuMTcsMCwwLDEsLjkyLS40NGgwYTEuMTcsMS4xNywwLDAsMSwuOTIsMS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTIzLDMxLjgsMjcuNDksMjhhOS45LDkuOSwwLDAsMCwxLjg4LTIuMDVBMy40NCwzLjQ0LDAsMCwwLDMwLDI0YTIuMzUsMi4zNSwwLDAsMC0uMzUtMS4yNywyLjQ0LDIuNDQsMCwwLDAtMS0uODQsMi45LDIuOSwwLDAsMC0xLjI2LS4yOCwzLjM2''@;'; + put 'put ''LDMuMzYsMCwwLDAtMS44My41LDUuNjQsNS42NCwwLDAsMC0xLjQ4LDEuNDJsLTEtLjgxYTUuMTEsNS4xMSwwLDAsMSw0LjM2LTIuMzcsNC4zNSw0LjM1LDAsMCwxLDIsLjQ1LDMuNDMsMy40MywwLDAsMSwyLDMuMTgsNC40NSw0LjQ1LDAsMCwxLS42OCwyLjM1LDEwLjksMTAuOSwwLDAsMS0y''@;'; + put 'put ''LjI0LDIuNDZsLTMuMjQsMi44MUgzMS41VjMzSDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz4nKSxlLkNsclNoYXBlU3VwZXJzY3JpcHQ9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjQzLDE4bDYuNzksOC42YTEuMTcsMS4xNywwLDAsMS0u''@;'; + put 'put ''OTIsMS45aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0uNDRsLTYuNDQtOC4xM0w2LjQ3LDI4YTEuMTcsMS4xNywwLDAsMS0uOTIuNDRoMGExLjE3LDEuMTcsMCwwLDEtLjkyLTEuOUwxMS40MywxOGwtNi44LTguNmExLjE3LDEuMTcsMCwwLDEsLjkyLTEuOWgwQTEuMiwxLjIsMCwwLDEsNi41MSw4''@;'; + put 'put ''bDYuNDMsOC4xM0wxOS4zOCw4YTEuMTcsMS4xNywwLDAsMSwuOTItLjQ0aDBhMS4xNywxLjE3LDAsMCwxLC45MiwxLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjIuODUsMTQuNDdsNC41MS0zLjg1YTkuMzcsOS4zNywwLDAs''@;'; + put 'put ''MCwxLjg4LTIsMy40MywzLjQzLDAsMCwwLC41OS0xLjg2LDIuMjcsMi4yNywwLDAsMC0uMzYtMS4yNywyLjM4LDIuMzgsMCwwLDAtLjk1LS44MywyLjc3LDIuNzcsMCwwLDAtMS4yNi0uMjksMy4zOSwzLjM5LDAsMCwwLTEuODMuNSw1LjgzLDUuODMsMCwwLDAtMS40OSwxLjQybC0xLS44MWE1''@;'; + put 'put ''LjEyLDUuMTIsMCwwLDEsNC4zNi0yLjM3LDQuMzYsNC4zNiwwLDAsMSwyLC40NSwzLjQ3LDMuNDcsMCwwLDEsMiwzLjE4QTQuNDQsNC40NCwwLDAsMSwzMC41OCw5YTExLjE0LDExLjE0LDAsMCwxLTIuMjQsMi40NkwyNS4xLDE0LjMxaDYuMjh2MS4zM0gyMi44NVoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+JyksZS5UZXh0RWRpdFNoYXBlcz17Ym9sZDplLkNsclNoYXBlQm9sZCwiYnVsbGV0LWxpc3QiOmUuQ2xyU2hhcGVCdWxsZXRMaXN0LCJjaGVja2JveC1saXN0IjplLkNsclNoYXBlQ2hlY2tib3hMaXN0LCJudW1iZXItbGlzdCI6ZS5DbHJT''@;'; + put 'put ''aGFwZU51bWJlckxpc3QsImZvbnQtc2l6ZSI6ZS5DbHJTaGFwZUZvbnRTaXplLGl0YWxpYzplLkNsclNoYXBlSXRhbGljLCJqdXN0aWZ5LXRleHQiOmUuQ2xyU2hhcGVKdXN0aWZ5VGV4dCwiY2VudGVyLXRleHQiOmUuQ2xyU2hhcGVDZW50ZXJUZXh0LCJhbGlnbi1sZWZ0LXRleHQiOmUuQ2xy''@;'; + put 'put ''U2hhcGVBbGlnbkxlZnRUZXh0LCJhbGlnbi1yaWdodC10ZXh0IjplLkNsclNoYXBlQWxpZ25SaWdodFRleHQsInBhaW50LXJvbGxlciI6ZS5DbHJTaGFwZVBhaW50Um9sbGVyLCJibG9jay1xdW90ZSI6ZS5DbHJTaGFwZUJsb2NrUXVvdGUsdGV4dDplLkNsclNoYXBlVGV4dCx1bmRlcmxpbmU6''@;'; + put 'put ''ZS5DbHJTaGFwZVVuZGVybGluZSwiYWxpZ24tY2VudGVyIjplLkNsclNoYXBlQWxpZ25DZW50ZXIsImFsaWduLWxlZnQiOmUuQ2xyU2hhcGVBbGlnbkxlZnQsImFsaWduLXJpZ2h0IjplLkNsclNoYXBlQWxpZ25SaWdodCwiYWxpZ24tYm90dG9tIjplLkNsclNoYXBlQWxpZ25Cb3R0b20sImFs''@;'; + put 'put ''aWduLW1pZGRsZSI6ZS5DbHJTaGFwZUFsaWduTWlkZGxlLCJhbGlnbi10b3AiOmUuQ2xyU2hhcGVBbGlnblRvcCxsYW5ndWFnZTplLkNsclNoYXBlTGFuZ3VhZ2UsInRleHQtY29sb3IiOmUuQ2xyU2hhcGVUZXh0Q29sb3IsaGlnaGxpZ2h0ZXI6ZS5DbHJTaGFwZUhpZ2hsaWdodGVyLGluZGVu''@;'; + put 'put ''dDplLkNsclNoYXBlSW5kZW50LG91dGRlbnQ6ZS5DbHJTaGFwZU91dGRlbnQsc3RyaWtldGhyb3VnaDplLkNsclNoYXBlU3RyaWtldGhyb3VnaCxzdWJzY3JpcHQ6ZS5DbHJTaGFwZVN1YnNjcmlwdCxzdXBlcnNjcmlwdDplLkNsclNoYXBlU3VwZXJzY3JpcHR9LCJ1bmRlZmluZWQiIT10eXBl''@;'; + put 'put ''b2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChlLlRleHRFZGl0U2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90cmF2ZWwtc2hhcGVzLnRzIjpmdW5jdGlvbihBLGUsYSl7InVzZSBzdHJp''@;'; + put 'put ''Y3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLlRyYXZlbFNoYXBlcz1lLkNsclNoYXBlT25Ib2xpZGF5PWUuQ2xyU2hhcGVUcmFpbGVyPWUuQ2xyU2hhcGVGZXJyeT1lLkNsclNoYXBlQ2FyYXZhbj1lLkNsclNoYXBlQ2FtcGVydmFuPWUuQ2xy''@;'; + put 'put ''U2hhcGVCb2F0PWUuQ2xyU2hhcGVCaWN5Y2xlPWUuQ2xyU2hhcGVNYXBNYXJrZXI9ZS5DbHJTaGFwZUNvbXBhc3M9ZS5DbHJTaGFwZU1hcD1lLkNsclNoYXBlQ2FyPWUuQ2xyU2hhcGVBaXJwbGFuZT1lLkNsclNoYXBlVHJ1Y2s9dm9pZCAwO3ZhciByPWEoIi4vcHJvamVjdHMvaWNvbnMvc3Jj''@;'; + put 'put ''L3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIik7YT1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLGUuQ2xyU2hhcGVUcnVjaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; + put 'put ''MSIgZD0iTTMwLDEySDI2VjdhMSwxLDAsMCwwLTEtMUgzQTEsMSwwLDAsMCwyLDdWMjVhMSwxLDAsMCwwLDEsMUg0VjhIMjRWMTkuN2E2LjQ1LDYuNDUsMCwwLDEsMS41Ni0uMmMuMTUsMCwuMjksMCwuNDQsMFYxNGg0YTIsMiwwLDAsMSwyLDJ2MUgyOHYyaDR2NUgyOS42YTQuNTQsNC41NCww''@;'; + put 'put ''LDAsMC04LjM0LDBIMTQuNDNhNC41LDQuNSwwLDAsMC00LjE3LTIuNzZBNC4zOCw0LjM4LDAsMSwwLDE0LjcyLDI2SDIxYTQuNDksNC40OSwwLDAsMCw4LjkyLDBIMzNhMSwxLDAsMCwwLDEtMVYxNkE0LDQsMCwwLDAsMzAsMTJaTTEwLjI2LDI4YTIuMzgsMi4zOCwwLDEsMSwwLTQuNzUsMi4z''@;'; + put 'put ''OCwyLjM4LDAsMSwxLDAsNC43NVptMTUuMTcsMGEyLjM4LDIuMzgsMCwxLDEsMi41LTIuMzdBMi40NCwyLjQ0LDAsMCwxLDI1LjQzLDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDEySDI2VjdhMSwxLDAsMCww''@;'; + put 'put ''LTEtMUgzQTEsMSwwLDAsMCwyLDdWMjVhMSwxLDAsMCwwLDEsMUg0VjhIMjRWMjEuNDlBNC40NSw0LjQ1LDAsMCwwLDIxLjI1LDI0SDE0LjQzYTQuNSw0LjUsMCwwLDAtNC4xNy0yLjc2QTQuMzgsNC4zOCwwLDEsMCwxNC43MiwyNkgyMWE0LjQ4LDQuNDgsMCwwLDAsOC45MSwwSDM0VjE2QTQs''@;'; + put 'put ''NCwwLDAsMCwzMCwxMlpNMTAuMjYsMjhhMi4zOCwyLjM4LDAsMSwxLDAtNC43NSwyLjM4LDIuMzgsMCwxLDEsMCw0Ljc1Wm0xNS4xNywwYTIuMzgsMi4zOCwwLDEsMSwyLjUtMi4zN0EyLjQ0LDIuNDQsMCwwLDEsMjUuNDIsMjhaTTMyLDE3SDI2VjE0aDRhMiwyLDAsMCwxLDIsMloiLz4nKSxl''@;'; + put 'put ''LkNsclNoYXBlQWlycGxhbmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNS43Nyw4LjE2YTIuNDMsMi40MywwLDAsMC0xLjktMkwyOCw0Ljg3YTQuNSw0LjUsMCwwLDAtMy42NS43OUw3LDE4LjMsMi4xNCwx''@;'; + put 'put ''OC4xQTEuODYsMS44NiwwLDAsMCwuOTEsMjEuNDFsNSwzLjkzYy42LjczLDEsLjU5LDEwLjkzLTQuODJsLjkzLDkuNDJhMS4zNiwxLjM2LDAsMCwwLC44NSwxLjE4LDEuNDMsMS40MywwLDAsMCwuNTQuMSwxLjU0LDEuNTQsMCwwLDAsMS0uNDFsMi4zOS0yLjE4YTEuNTIsMS41MiwwLDAsMCwu''@;'; + put 'put ''NDYtLjgzTDI1LjIsMTUuOWMzLjU3LTIsNi45NS0zLjg4LDkuMzYtNS4yNUEyLjQzLDIuNDMsMCwwLDAsMzUuNzcsOC4xNlptLTIuMi43NWMtMi41LDEuNDItNiwzLjQxLTkuNzYsNS40N2wtLjQxLjIzTDIxLjA3LDI3LjI4bC0xLjQ3LDEuMzRMMTguNSwxNy4zMiwxNy4xNywxOEMxMCwyMiw3''@;'; + put 'put ''LjYxLDIzLjE2LDYuNzksMjMuNTJsLTQuMy0zLjQxLDUuMDguMjIsMTgtMTMuMDZhMi41MSwyLjUxLDAsMCwxLDItLjQ1bDUuODUsMS4yNmEuNDMuNDMsMCwwLDEsLjM1LjM3QS40Mi40MiwwLDAsMSwzMy41Nyw4LjkxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; + put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik03LDEyLjU0bDMuNTYsMSwxLjY0LTEuMTktNC0xLjE2TDEwLDEwLjA5bDUuNDctLjE2LDIuMy0xLjY3TDEwLDguNWExLjI1LDEuMjUsMCwwLDAtLjcuMTdMNi42NywxMC4yQTEuMjgsMS4yOCwwLDAsMCw3LDEyLjU0WiIvPlxuICAgICAgICAg''@;'; + put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTYuMjUsMTEuNSwxMiwxMy4xNmw2LjMyLTQuNTktOS4wNy4yNkEuNTIuNTIsMCwwLDAsOSw4LjkxTDYuMTMsMTAuNTZBLjUxLjUxLDAsMCwwLDYuMjUsMTEuNVoiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; + put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zNC41Miw2LjM2LDI4LjIyLDVhMy43OCwzLjc4LDAsMCwwLTMuMDcuNjdMNi4xMiwxOS41bC00LjU3LS4yYTEuMjUsMS4yNSwwLDAsMC0uODMsMi4yMmw0LjQ1LDMuNTNhLjU1LjU1LDAsMCwwLC41My4wOWMxLjI3''@;'; + put 'put ''LS40OSw2LTMsMTEuNTktNi4wN2wxLjEyLDExLjUxYS41NS41NSwwLDAsMCwuOS4zN2wyLjUtMi4wOGEuNzYuNzYsMCwwLDAsLjI2LS40NWwyLjM3LTEzLjI5YzQtMi4yMiw3LjgyLTQuMzcsMTAuNTEtNS44OUExLjU1LDEuNTUsMCwwLDAsMzQuNTIsNi4zNloiLz4nKSxlLkNsclNoYXBlQ2Fy''@;'; + put 'put ''PSgwLGEuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSIxNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; + put 'put ''dGgtMiIgZD0iTTI2LjQ1LDE0LjE3QTIyLjEsMjIuMSwwLDAsMCwxOS4zOCw3YTkuNjQsOS42NCwwLDAsMC05LS43LDguNiw4LjYsMCwwLDAtNC44Miw2LjRjLS4wOC40Ny0uMTQuOTItLjIsMS4zNkE0LDQsMCwwLDAsMiwxOHY2LjEzYTIsMiwwLDAsMCwyLDJWMjBINFYxOGEyLDIsMCwwLDEs''@;'; + put 'put ''Mi0ySDI0LjczQTcuMjgsNy4yOCwwLDAsMSwzMiwyMy4yN1YyNGgtMmE0LjUzLDQuNTMsMCwxLDAsLjMzLDJIMzJhMiwyLDAsMCwwLDItMnYtLjczQTkuMjgsOS4yOCwwLDAsMCwyNi40NSwxNC4xN1pNMTEsMTRINi45M2MwLS4zMS4wOS0uNjMuMTUtMUE2LjUyLDYuNTIsMCwwLDEsMTEsOGgw''@;'; + put 'put ''Wm0yLDBWNy41OGE4LjE3LDguMTcsMCwwLDEsNS4zNiwxLjE2QTE5LDE5LDAsMCwxLDIzLjksMTRaTTI1LjgsMjguMzhhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNSwyLjUsMCwwLDEsMjUuOCwyOC4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE0LjE3LDI0YTQuNTMsNC41MywwLDEsMCwuMzMsMmg1LjNjMC0uMDgsMC0uMTcsMC0uMjVBNiw2LDAsMCwxLDIwLDI0Wk0xMCwyOC4zOGEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwxMCwyOC4zOFoiLz5cbiAgICAgICAgICAg''@;'; + put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYuODcsMTQuMjhBMjIuMzYsMjIuMzYsMCwwLDAsMTkuNjUsNi45YTkuNjQsOS42NCwwLDAsMC05LS43LDguNiw4LjYsMCwwLDAtNC44Miw2LjRjLS4wOC40OS0uMTUsMS0uMjEsMS40aC0xQTIu''@;'; + put 'put ''NTksMi41OSwwLDAsMCwyLDE2LjU5djguNTVhLjg2Ljg2LDAsMCwwLC44Ni44Nkg0LjU5YzAtLjEzLDAtLjI2LDAtLjM5YTUuNzcsNS43NywwLDAsMSw3LjcxLTUuNDVsLTEsMWE0LjU2LDQuNTYsMCwwLDAtNC4zNCwxLjU4LDMsMywwLDAsMC0uNjMuOTNBNC41LDQuNSwwLDEsMCwxNC44Miwy''@;'; + put 'put ''Nmg1LjQ4YzAtLjEzLDAtLjI2LDAtLjM5QTUuNzcsNS43NywwLDAsMSwyOCwyMC4xNmwtMSwxYTQuNTYsNC41NiwwLDAsMC00LjM0LDEuNTgsMywzLDAsMCwwLS42My45M0E0LjUsNC41LDAsMSwwLDMwLjUzLDI2aDIuNjFhLjg2Ljg2LDAsMCwwLC44Ni0uODZWMjMuMzZBOS4zOSw5LjM5LDAs''@;'; + put 'put ''MCwwLDI2Ljg3LDE0LjI4Wk0xMiwxNEg4YzAtLjM1LjEtLjcxLjE2LTEuMDdhNi41Miw2LjUyLDAsMCwxLDMuODctNWgwWk0xMC4zNiwyOC4zNmEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwxMC4zNiwyOC4zNlpNMTksMTlIMTZWMTdoM1ptLTYtNVY3LjQ3YTguMTYsOC4x''@;'; + put 'put ''NiwwLDAsMSw1LjQsMS4xNUExOS4xNSwxOS4xNSwwLDAsMSwyNCwxNFpNMjYuMDYsMjguMzZhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNSwyLjUsMCwwLDEsMjYuMDYsMjguMzZaIi8+JyksZS5DbHJTaGFwZU1hcD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjU5LDYuMTlBMSwxLDAsMCwwLDMyLjcsNkwyMy4wOSw5LDEzLjQ2LDQuMTFhMSwxLDAsMCwwLS44NCwwTDIuNjIsOC4yQTEsMSwwLDAsMCwyLDkuMTNWMjkuNjFhMSwxLDAsMCwwLDEuMzguOTJMMTMsMjYuNThsOS41OSw0LjkyYTEsMSww''@;'; + put 'put ''LDAsMCwuNDYuMTEsMSwxLDAsMCwwLC4zLDBsMTAtMy4xMmExLDEsMCwwLDAsLjctMVY3QTEsMSwwLDAsMCwzMy41OSw2LjE5Wk0zMiwyNi43NWwtOC4zMiwyLjZWMjcuMDZoLTEuNnYybC04LjQtNC4zMVYyMy4wNmgtMS42djEuNzJMNCwyOC4xMVY5Ljc5bDguMDgtMy4zM1Y4LjgxaDEuNlY2''@;'; + put 'put ''LjQ3bDguNCw0LjN2Mi4xaDEuNlYxMUwzMiw4LjM2WiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIyMi4wOCIgeT0iMTUuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAg''@;'; + put 'put ''IDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyMi4wOCIgeT0iMjEuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4''@;'; + put 'put ''PSIxMi4wOCIgeT0iMTEuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIxMi4wOCIgeT0iMTcuMTMiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy43NSIvPlxuICAg''@;'; + put 'put ''ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMy4zMSw3LjM1LDI1LDkuOTRWMTRIMjNWMTAuMjlMMTQsNS42OFY5SDEyVjUuMjdsLTkuNjcsNEEuNTMuNTMsMCwwLDAsMiw5Ljc1VjMwLjQ1YS41My41MywwLDAsMCwuNzQuNDlM''@;'; + put 'put ''MTIsMjcuMTJWMjNoMnY0LjUzbDksNC42MVYyOGgydjMuNzlsOC42My0yLjdhLjUzLjUzLDAsMCwwLC4zNy0uNTFWNy44NkEuNTMuNTMsMCwwLDAsMzMuMzEsNy4zNVpNMTQsMjFIMTJWMTdoMlptMC02SDEyVjExaDJaTTI1LDI2SDIzVjIyaDJabTAtNkgyM1YxNmgyWiIvPicpLGUuQ2xyU2hh''@;'; + put 'put ''cGVDb21wYXNzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC44MiwxNS4zMWgwTDEwLjQ2LDljLS40Ni0uMjYtMS4xMS4zNy0uODYuODRsNi4xNSwxMC41NiwxMC41Niw2LjE1YS42Ni42NiwwLDAsMCwuODQtLjg2Wm0tNCw0LDMtMyw0LjU1LDcuNDRaIiBjbGFzcz0iY2xyLWktb3V0''@;'; + put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTEsMjkuOTVWMjkuNTNIMTd2Mi40MkExNCwxNCwwLDAsMSw0LjA1LDE5SDYuNDdWMTdINC4wNUExNCwxNCwwLDAsMSwxNyw0''@;'; + put 'put ''LjA1VjYuNDdoMlY0LjA1QTE0LDE0LDAsMCwxLDMxLjk1LDE3SDI5LjUzdjJoMi40MkExNCwxNCwwLDAsMSwxOSwzMS45NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgs''@;'; + put 'put ''MTYsMTYsMCwwLDAsMTgsMlpNNi40NywxOUg0LjA1YzAtLjMzLS4wNS0uNjYtLjA1LTFzMC0uNjcuMDUtMUg2LjQ3Wk0xNyw0LjA1Yy4zMywwLC42Ni0uMDUsMS0uMDVzLjY3LDAsMSwuMDVWNi40N0gxN1ptMiwyNy45Yy0uMzMsMC0uNjYuMDUtMSwuMDVzLS42NywwLTEtLjA1VjI5LjUzaDJa''@;'; + put 'put ''bTgtNS41OGEuNTkuNTksMCwwLDEtLjY5LjE2TDE1Ljc1LDIwLjM4LDkuNiw5LjgyYy0uMjUtLjQ3LjM5LTEuMS44Ni0uODRsMTAuMzcsNi4zM2gwbDYuMzMsMTAuMzdBLjU5LjU5LDAsMCwxLDI3LDI2LjM3Wk0yOS41MywxOVYxN2gyLjQyYzAsLjMzLjA1LjY2LjA1LDFzMCwuNjctLjA1LDFa''@;'; + put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxNi43NyAxOS4zNSAyNC4zNSAyMy43NyAxOS44IDE2LjMzIDE2Ljc3IDE5LjM1IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicp''@;'; + put 'put ''LGUuQ2xyU2hhcGVNYXBNYXJrZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2LjcyYTUuNzMsNS43MywwLDEsMCw1LjczLDUuNzNBNS43Myw1LjczLDAsMCwwLDE4LDYuNzJabTAsOS40NmEzLjczLDMu''@;'; + put 'put ''NzMsMCwxLDEsMy43My0zLjczQTMuNzMsMy43MywwLDAsMSwxOCwxNi4xN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDJBMTEuNzksMTEuNzksMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4''@;'; + put 'put ''LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkExMS43OSwxMS43OSwwLDAsMCwxOCwyWk0yMy41OSwyNGwtLjM2LjUz''@;'; + put 'put ''Yy0xLjcyLDIuNTgtNCw1LjQ3LTUuMjMsNi45LTEuMTgtMS40My0zLjUxLTQuMzItNS4yMy02LjlMMTIuNDIsMjRjLTEuNzctMi42NC00LjItNi4yNS00LjItMTAuMzFhOS43OCw5Ljc4LDAsMSwxLDE5LjU2LDBDMjcuNzgsMTcuNzksMjUuMzYsMjEuNCwyMy41OSwyNFoiLz5cbiAgICAgICAg''@;'; + put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCw2LjcyYTUuNzMsNS43MywwLDEsMCw1LjczLDUuNzNBNS43Myw1LjczLDAsMCwwLDE4LDYuNzJabTAsOS40NmEzLjczLDMuNzMsMCwxLDEsMy43My0z''@;'; + put 'put ''LjczQTMuNzMsMy43MywwLDAsMSwxOCwxNi4xN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0yOS43NywxMy40OWE3LjQ5LDcuNDksMCwwLDEtMi0uMzNjMCwuMTksMCwuMzgs''@;'; + put 'put ''MCwuNTcsMCw0LjA2LTIuNDIsNy42Ny00LjE5LDEwLjMxbC0uMzYuNTNjLTEuNzIsMi41OC00LDUuNDctNS4yMyw2LjktMS4xOC0xLjQzLTMuNTEtNC4zMi01LjIzLTYuOUwxMi40MiwyNGMtMS43Ny0yLjY0LTQuMi02LjI1LTQuMi0xMC4zMUE5Ljc3LDkuNzcsMCwwLDEsMjIuNTYsNS4wOWE3''@;'; + put 'put ''LjQ1LDcuNDUsMCwwLDEsLjUyLTJBMTEuNzUsMTEuNzUsMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44''@;'; + put 'put ''NSw0LjUzLTYuNzUsNC41My0xMS40MkMyOS43OCwxMy42NSwyOS43NywxMy41NywyOS43NywxMy40OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMw''@;'; + put 'put ''IiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTExLjc5LDExLjc5LDAsMCwwLDYuMjIsMTMuNzNjMCw0LjY3LDIuNjIsOC41OCw0LjU0LDExLjQzbC4zNS41MmE5OS42MSw5OS42MSww''@;'; + put 'put ''LDAsMCw2LjE0LDhsLjc2Ljg5Ljc2LS44OWE5OS44Miw5OS44MiwwLDAsMCw2LjE0LThsLjM1LS41M2MxLjkxLTIuODUsNC41My02Ljc1LDQuNTMtMTEuNDJBMTEuNzksMTEuNzksMCwwLDAsMTgsMlptMCwxN2E2LjU2LDYuNTYsMCwxLDEsNi41Ni02LjU2QTYuNTYsNi41NiwwLDAsMSwxOCwx''@;'; + put 'put ''OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjEyLjQ0IiByPSIzLjczIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0''@;'; + put 'put ''aC0xLS1iYWRnZWQiIGQ9Ik0yOS43NywxMy40OUE3LjQ3LDcuNDcsMCwwLDEsMjQuMzgsMTFhNi41OCw2LjU4LDAsMSwxLTEuNjEtMyw3LjQyLDcuNDIsMCwwLDEsLjMxLTQuODRBMTEuNzUsMTEuNzUsMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUy''@;'; + put 'put ''YTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkMyOS43OCwxMy42NSwyOS43NywxMy41NywyOS43NywxMy40OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2ly''@;'; + put 'put ''Y2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBjeD0iMTgiIGN5PSIxMi40NCIgcj0iMy43MyIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRn''@;'; + put 'put ''ZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxlLkNsclNoYXBlQmljeWNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNOC41LDI5LjY1QTYuNTEsNi41MSwwLDAsMSwyLDIzLjE1YTYuMzksNi4zOSwwLDAsMSw2LjUtNi4zNkE2LjM5LDYuMzksMCwwLDEsMTUs''@;'; + put 'put ''MjMuMTUsNi41MSw2LjUxLDAsMCwxLDguNSwyOS42NVptMC0xMWE0LjUsNC41LDAsMSwwLDQuNSw0LjVBNC41MSw0LjUxLDAsMCwwLDguNSwxOC42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yNy41LDI5LjY1YTYuNTEsNi41MSww''@;'; + put 'put ''LDAsMS02LjUtNi41LDYuNSw2LjUsMCwwLDEsMTMsMEE2LjUxLDYuNTEsMCwwLDEsMjcuNSwyOS42NVptMC0xMWE0LjUsNC41LDAsMSwwLDQuNSw0LjVBNC41MSw0LjUxLDAsMCwwLDI3LjUsMTguNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0''@;'; + put 'put ''aCBkPSJNMTksMjQuNjZIOGExLDEsMCwwLDEtLjg5LTEuNDVsNS0xMCwxLjc4LjlMOS42MiwyMi43M0gxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxyZWN0IHg9IjEzIiB5PSIxMi42OCIgd2lkdGg9IjExIiBoZWlnaHQ9IjEuOTEiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yOCwyNC42NmExLDEsMCwwLDEtLjk0LS42NkwyMi4yOSwxMC42NkgyMGExLDEsMCwwLDEtMS0xLDEsMSwwLDAsMSwxLS45M2gzYS45NC45NCwwLDAsMSwuOTQuNmw1LDE0YTEsMSwwLDAsMS0uNiwxLjI3QTEs''@;'; + put 'put ''MSwwLDAsMSwyOCwyNC42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0xMywxNC42NmExLDEsMCwwLDEtLjcxLS4yOWwtMS43LTEuNzFIOGExLDEsMCwwLDEtMS0xLC45NC45NCwwLDAsMSwxLTFoM2ExLjA4LDEuMDgsMCwwLDEsLjc1''@;'; + put 'put ''LjI3bDIsMmExLDEsMCwwLDEsMCwxLjQxQTEsMSwwLDAsMSwxMywxNC42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0xNSwyMS45Yy0wLjItMi0xLjItMy44LTIuOS00LjlsLTIuNSw0LjlIMTV6IiBjbGFzcz0iY2xyLWktc29saWQg''@;'; + put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik03LjIsMjMuNGMtMC4yLTAuMy0wLjItMC43LDAtMWwzLjItNi4zYy0wLjYtMC4yLTEuMi0wLjItMS44LTAuMkM1LDE1LjksMiwxOC44LDIsMjIuNGMwLDMuNiwyLjksNi41LDYuNSw2LjVcblx0YzMsMCw1LjYtMi4xLDYuMy01SDhDNy43''@;'; + put 'put ''LDIzLjksNy4zLDIzLjcsNy4yLDIzLjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOSwyMS45aC00YzAsMC4yLDAsMC4zLDAsMC41YzAsMC41LTAuMSwxLTAuMiwxLjVIMTlWMjEuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; + put 'put ''ZC1wYXRoLTMiIC8+PHBhdGggZD0iTTI3LjUsMTUuOWMtMC4zLDAtMC42LDAtMC45LDAuMWwyLjQsNi42YzAuMiwwLjUtMC4xLDEuMS0wLjYsMS4zYy0wLjEsMC0wLjIsMC4xLTAuMywwLjFjLTAuNCwwLTAuOC0wLjMtMC45LTAuN2wtMi40LTYuN1xuXHRjLTMuMiwxLjYtNC41LDUuNS0zLDgu''@;'; + put 'put ''N2MxLjYsMy4yLDUuNSw0LjUsOC43LDNjMy4yLTEuNiw0LjUtNS41LDMtOC43QzMyLjIsMTcuMywzMCwxNS45LDI3LjUsMTUuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBhdGggZD0iTTI0LjcsMTYuN2MwLjYtMC4zLDEuMy0wLjUsMS45LTAuNmwtMi43''@;'; + put 'put ''LTcuNEMyMy44LDguMiwyMy40LDgsMjMsNy45aC0zYy0wLjYsMC0xLDAuNS0xLDEuMWMwLDAuNSwwLjQsMC45LDEsMC45XG5cdGMwLDAsMCwwLDAsMGgyLjNsMC43LDJoLTkuNmwtMS43LTEuN0MxMS41LDEwLjEsMTEuMywxMCwxMSwxMEg4Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDIu''@;'; + put 'put ''NmwxLjIsMS4ybC0xLjUsM1xuXHRjMC42LDAuMiwxLjMsMC41LDEuOCwwLjhsMS42LTMuMmgxMEwyNC43LDE2Ljd6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPicpLGUuQ2xyU2hhcGVCb2F0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS4xLDI3LjFD''@;'; + put 'put ''MjgsMjcsMjYuOSwyNy40LDI2LDI4LjJjLTEuMSwxLjEtMi45LDEuMS00LjEsMGMtMS0wLjctMi4xLTEuMS0zLjMtMS4xYy0xLjItMC4xLTIuNCwwLjMtMy4zLDEuMVxuXHRcdEMxNC43LDI4LjcsMTQsMjksMTMuMiwyOXMtMS41LTAuMy0yLjEtMC44Yy0xLTAuOC0yLjItMS4yLTMuNC0xLjJz''@;'; + put 'put ''LTIuNCwwLjQtMy40LDEuMkMzLjcsMjguNywyLjgsMjksMiwyOXYyXG5cdFx0YzEuMywwLjEsMi42LTAuMywzLjYtMS4yQzYuMiwyOS4zLDcuMSwyOSw3LjksMjljMC43LDAsMS41LDAuMywyLjEsMC44YzEuOCwxLjYsNC42LDEuNiw2LjUsMGMwLjYtMC41LDEuMy0wLjgsMi4xLTAuOFxuXHRc''@;'; + put 'put ''dGMwLjcsMCwxLjQsMC4zLDIsMC44YzEuOSwxLjYsNC42LDEuNiw2LjUsMGMwLjUtMC41LDEuMy0wLjgsMi0wLjhjMC43LDAsMS40LDAuMywxLjksMC44YzAuOSwwLjcsMS45LDEuMSwzLDEuMnYtMlxuXHRcdGMtMSwwLTEuMi0wLjQtMS43LTAuOEMzMS40LDI3LjUsMzAuMywyNy4xLDI5LjEs''@;'; + put 'put ''MjcuMXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LDIzYzAtMC42LDAuNS0xLDEuMS0xSDMybC0zLjUsMy4xaDAuMmMwLjgsMCwxLjYsMC4yLDIuMiwwLjVsMi41LTIuMmwwLjItMC4yYzAuNy0wLjgsMC42LTIuMS0wLjItMi44XG5c''@;'; + put 'put ''dFx0QzMzLDIwLjIsMzIuNiwyMCwzMi4xLDIwaC0yNWMtMS43LDAtMywxLjMtMywzdjMuMmMwLjUtMC41LDEuMi0wLjgsMS45LTEuMVYyM3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik04LjksMTlIMTV2LTcuOGMwLTAuNi0wLjMtMS4y''@;'; + put 'put ''LTAuOC0xLjZDMTMuMyw4LjksMTIsOS4xLDExLjQsMTBsLTQuMSw1LjljLTAuNCwwLjYtMC40LDEuNC0wLjEsMi4xQzcuNSwxOC42LDguMiwxOSw4LjksMTlcblx0XHR6IE0xMy4xLDExLjJMMTMsMTdIOC45TDEzLjEsMTEuMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; + put 'put ''cGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNiwxOGMwLjQtMC42LDAuNC0xLjQsMC0yTDE5LjcsNS42Yy0wLjQtMC42LTEtMS0xLjctMWMtMS4xLDAtMiwwLjktMiwyVjE5aDguM0MyNSwxOSwyNS43LDE4LjYsMjYsMTh6IE0xNy45LDYuNlxuXHRcdGw2LjQsMTAuNWgtNi40VjYuNnoiIGNsYXNzPSJj''@;'; + put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zNCwzMWMtMS4xLTAuMS0yLjEtMC41LTMtMS4yYy0wLjUtMC41LTEuMi0wLjgtMi0wLjhjLTAuNywwLTEuNSwwLjMtMiwwLjhjLTAuOSwwLjgtMiwxLjEtMy4xLDEuMWMtMS4yLDAtMi40LTAuNC0zLjMtMS4x''@;'; + put 'put ''XG5cdGMtMS4yLTEuMS0zLTEuMS00LjEsMGMtMC45LDAuOC0yLjEsMS4yLTMuNCwxLjJjLTEuMiwwLTIuMy0wLjQtMy4yLTEuMmMtMC42LTAuNS0xLjMtMC44LTItMC44Yy0wLjgsMC0xLjcsMC4zLTIuMywwLjhcblx0Yy0xLDAuOC0yLjMsMS4yLTMuNSwxLjFWMjljMC44LDAsMS43LTAuMywy''@;'; + put 'put ''LjMtMC45YzEtMC44LDIuMi0xLjIsMy40LTEuMWMxLjIsMCwyLjQsMC40LDMuMywxLjJjMS4yLDEuMSwzLDEuMSw0LjIsMFxuXHRjMS45LTEuNiw0LjctMS42LDYuNSwwYzEuMiwxLjEsMywxLjEsNC4xLDBjMC45LTAuOCwyLjEtMS4yLDMuMy0xLjJjMS4xLDAsMi4yLDAuNCwzLDEuMkMzMi44''@;'; + put 'put ''LDI4LjcsMzMsMjksMzQsMjlMMzQsMzF6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjEsMjYuMmMwLjYtMC41LDEuMi0wLjgsMS45LTFWMjNjMC0wLjYsMC40LTEuMSwxLTEuMWgyNUwyOC40LDI1aDAuMmMwLjgsMCwxLjYsMC4yLDIuMiww''@;'; + put 'put ''LjVsMi41LTIuMmwwLjItMC4yXG5cdGMwLjctMC45LDAuNS0yLjEtMC40LTIuOEMzMi45LDIwLjEsMzIuNCwyMCwzMiwyMEg3Yy0xLjcsMC0zLDEuMy0zLDNMNC4xLDI2LjJMNC4xLDI2LjJ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNC45''@;'; + put 'put ''LDE4LjlIOC45Yy0xLjEsMC0yLTAuOS0yLTJjMC0wLjQsMC4xLTAuOCwwLjQtMS4ybDQuMS01LjhjMC42LTAuOSwxLjktMS4xLDIuOC0wLjVjMC41LDAuNCwwLjgsMSwwLjgsMS42VjE4Ljl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNC4z''@;'; + put 'put ''LDE4LjlIMTZWNi40YzAtMS4xLDAuOS0yLDItMmMwLjcsMCwxLjMsMC40LDEuNywxTDI2LDE1LjhjMC42LDEsMC4yLDIuMi0wLjcsMi43QzI1LDE4LjcsMjQuNiwxOC44LDI0LjMsMTguOVxuXHRMMjQuMywxOC45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4n''@;'; + put 'put ''KSxlLkNsclNoYXBlQ2FtcGVydmFuPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik05LjUsMjRDOS41LDI0LDkuNSwyNCw5LjUsMjRDNy42LDI0LDYsMjUuNiw2LDI3LjVjMCwwLDAsMCwwLDBDNiwyOS40LDcuNiwzMSw5LjUsMzFjMS45LDAsMy41LTEuNiwzLjUtMy41XG5cdFx0UzExLjQs''@;'; + put 'put ''MjQsOS41LDI0eiBNOS41LDI5QzguNywyOSw4LDI4LjMsOCwyNy41UzguNywyNiw5LjUsMjZzMS41LDAuNywxLjUsMS41UzEwLjMsMjksOS41LDI5eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIzLjUsMjRDMjMuNSwyNCwyMy41LDI0''@;'; + put 'put ''LDIzLjUsMjRjLTEuOSwwLTMuNSwxLjYtMy41LDMuNWMwLDAsMCwwLDAsMGMwLDEuOSwxLjUsMy41LDMuNSwzLjVjMS45LDAsMy41LTEuNiwzLjUtMy41XG5cdFx0UzI1LjQsMjQsMjMuNSwyNHogTTIzLjUsMjljLTAuOCwwLTEuNS0wLjctMS41LTEuNXMwLjctMS41LDEuNS0xLjVzMS41LDAu''@;'; + put 'put ''NywxLjUsMS41UzI0LjMsMjksMjMuNSwyOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMywyMC4xVjIwaC0wLjFsLTMuNS01LjVDMzEsMTMuNiwzMiwxMiwzMiwxMC4zVjkuN0MzMiw3LjEsMjkuOSw1LDI3LjMsNWgtOC41Yy0xLjks''@;'; + put 'put ''MC0zLjcsMS4yLTQuNCwzSDVjLTEuNywwLTMsMS4zLTMsM1xuXHRcdHYxN2gyVjExYzAtMC42LDAuNC0xLDEtMWgxMC45TDE2LDkuMkMxNi4zLDcuOSwxNy40LDcsMTguNyw3aDguNUMyOC44LDcsMzAsOC4yLDMwLDkuN3YwLjVjMCwxLjUtMS4yLDIuNy0yLjcsMi43SDI0djloNy44XG5cdFx0''@;'; + put 'put ''bDAuMiwwLjNWMjVjMCwwLjYtMC40LDEtMSwxaC0ydjJoMmMxLjcsMCwzLTEuMywzLTN2LTMuM0wzMywyMC4xeiBNMjYsMjB2LTVoMS41bDMuMSw1SDI2eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHJlY3QgeD0iMTkiIHk9IjkiIHdpZHRoPSI4IiBo''@;'; + put 'put ''ZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAsMjIgMjIsMjIgMjIsMTMgMTUsMTMgMTUsMjggMTcsMjggMTcsMTUgMjAsMTUgXHQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01''@;'; + put 'put ''IiAvPjxwYXRoIGQ9Ik02LDIwaDd2LTdINlYyMHogTTgsMTVoM3YzSDhWMTV6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNOS41LDI0QzcuNiwyNCw2LDI1LjYsNiwyNy41UzcuNiwzMSw5LjUsMzFjMCwwLDAsMCwwLDBjMS45LDAsMy41''@;'; + put 'put ''LTEuNiwzLjUtMy41YzAsMCwwLTAuMSwwLTAuMUMxMywyNS41LDExLjQsMjQsOS41LDI0eiJcblx0XHQgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48Y2lyY2xlIGN4PSIyMy41IiBjeT0iMjcuNSIgcj0iMy41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; + put 'put ''aWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yOS41LDE0LjVDMzEsMTMuNiwzMiwxMiwzMiwxMC4yVjkuN2MwLDAsMCwwLDAtMC4xQzMyLDcsMjkuOSw1LDI3LjMsNWgtOC41Yy0xLjksMC0zLjcsMS4yLTQuNCwzSDVjLTEuNywwLTMsMS4zLTMsM3YxN1xuXHRcdGgyVjExYzAtMC42LDAuNC0xLDEt''@;'; + put 'put ''MWgxMC45TDE2LDkuMkMxNi4zLDcuOSwxNy40LDcsMTguNyw3aDguNUMyOC44LDcsMzAsOC4yLDMwLDkuN3YwLjVjMCwxLjUtMS4yLDIuNy0yLjcsMi43SDI3aC0zdjloNy44XG5cdFx0bDAuMiwwLjNWMjVjMCwwLjYtMC40LDEtMSwxaC0ydjJoMmMxLjcsMCwzLTEuMywzLTN2LTMuM0wyOS41''@;'; + put 'put ''LDE0LjV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxyZWN0IHg9IjE5IiB5PSI5IiB3aWR0aD0iNy45IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBvbHlnb24gcG9pbnRzPSIyMCwyMiAyMS45LDIyIDIx''@;'; + put 'put ''LjksMTMgMTUsMTMgMTUsMjggMTYuOSwyOCAxNi45LDE1IDIwLDE1IFx0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPjxyZWN0IHg9IjYiIHk9IjEzIiB3aWR0aD0iNi45IiBoZWlnaHQ9IjciIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYi''@;'; + put 'put ''IC8+JyksZS5DbHJTaGFwZUNhcmF2YW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEzLjUsMjFDMTEsMjEsOSwyMyw5LDI1LjVzMiw0LjUsNC41LDQuNWMyLjUsMCw0LjUtMiw0LjUtNC41QzE4LDIzLDE2LDIxLDEzLjUsMjF6IE0xMy41LDI4Yy0xLjQsMC0yLjUtMS4xLTIuNS0yLjVc''@;'; + put 'put ''blx0XHRzMS4xLTIuNSwyLjUtMi41czIuNSwxLjEsMi41LDIuNVMxNC45LDI4LDEzLjUsMjh6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsMjRoLTJ2LTcuNWMwLTAuNS0wLjEtMS0wLjQtMS41bC00LjItNy41Yy0wLjUtMS0xLjUt''@;'; + put 'put ''MS41LTIuNi0xLjVINUMzLjMsNiwyLDcuMywyLDl2MTRjMCwxLjcsMS4zLDMsMywzaDJ2LTJINVxuXHRcdGMtMC42LDAtMS0wLjQtMS0xVjljMC0wLjYsMC40LTEsMS0xaDE4LjhjMC40LDAsMC43LDAuMiwwLjksMC41bDQuMiw3LjVjMC4xLDAuMSwwLjEsMC4zLDAuMSwwLjVWMjRoLTRWMTJo''@;'; + put 'put ''LTd2OGgydi02aDN2MTBoLTN2MmgxM1xuXHRcdGMwLjYsMCwxLTAuNCwxLTFTMzMuNiwyNCwzMywyNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNiwxMkg3djZoOVYxMnogTTE0LDE2SDl2LTJoNVYxNnoiIGNsYXNzPSJjbHItaS1v''@;'; + put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xMy41LDMwQzExLDMwLDksMjgsOSwyNS41czItNC41LDQuNS00LjVzNC41LDIsNC41LDQuNUMxOCwyOCwxNiwzMCwxMy41LDMweiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBk''@;'; + put 'put ''PSJNMzMsMjRoLTJ2LTcuNWMwLTAuNS0wLjEtMS0wLjQtMS41bC00LjItNy41Yy0wLjUtMS0xLjUtMS41LTIuNi0xLjVINUMzLjMsNiwyLDcuMywyLDl2MTRjMCwxLjcsMS4zLDMsMywzaDJ2LTJINVxuXHRjLTAuNiwwLTEtMC40LTEtMVY5YzAtMC42LDAuNC0xLDEtMWgxOC44YzAuNCwwLDAu''@;'; + put 'put ''NywwLjIsMC45LDAuNWw0LjIsNy41YzAuMSwwLjEsMC4xLDAuMywwLjEsMC41VjI0aC00VjEyaC03djhoMnYtNmgzdjEwaC0zdjJoMTNcblx0YzAuNiwwLDEtMC40LDEtMVMzMy42LDI0LDMzLDI0eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJN''@;'; + put 'put ''MTYsMThIN3YtNmg5VjE4eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxlLkNsclNoYXBlRmVycnk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDI1LjFjLTEuMiwwLTIuMywwLjQtMy4zLDEuMWMwLDAsMCwwLDAsMGMtMS4xLDEuMS0zLDEuMS00''@;'; + put 'put ''LjEsMGMtMC45LTAuOC0yLjEtMS4yLTMuMy0xLjJjLTEuMiwwLTIuMywwLjQtMy4yLDEuMlxuXHRcdGMtMS4yLDEuMS0zLDEuMS00LjIsMEMxMCwyNS40LDguOCwyNSw3LjYsMjVjLTEuMiwwLTIuNCwwLjQtMy40LDEuMUMzLjYsMjYuNywyLjgsMjcsMiwyN3YyYzEuMywwLjEsMi41LTAuNCwz''@;'; + put 'put ''LjQtMS4yXG5cdFx0QzYuMSwyNy4zLDYuOSwyNyw3LjcsMjdjMC44LDAsMS41LDAuMywyLjEsMC44YzEuOSwxLjYsNC43LDEuNiw2LjUsMGMwLjYtMC41LDEuMy0wLjgsMi4xLTAuOGMwLjgsMCwxLjUsMC4zLDIuMSwwLjhcblx0XHRjMS45LDEuNiw0LjYsMS42LDYuNSwwYzAuNS0wLjUsMS4z''@;'; + put 'put ''LTAuOCwyLTAuOGMwLjcsMCwxLjUsMC4zLDIsMC44YzAuOSwwLjcsMiwxLjEsMy4xLDEuMnYtMS45Yy0wLjcsMC0xLjQtMC4zLTEuOS0wLjlcblx0XHRDMzEuMywyNS40LDMwLjEsMjUsMjksMjUuMXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRo''@;'; + put 'put ''IGQ9Ik01LjksMjMuMlYyMEgzMmwtMy41LDNoMC4yYzAuOCwwLDEuNiwwLjIsMi4yLDAuNWwyLjUtMi4ybDAuMi0wLjJjMC41LTAuNiwwLjUtMS40LDAuMi0yLjFjLTAuNC0wLjctMS0xLTEuOC0xaC00LjRcblx0XHRMMjIuNSwxMUgxN2MtMS43LDAtMywxLjMtMywzaC0yVjguMUg2djYuMWMt''@;'; + put 'put ''MS4yLDAuNC0yLDEuNS0yLDIuOHYxLjFWMjB2NC4zbDAuMS0wLjFDNC42LDIzLjcsNS4yLDIzLjQsNS45LDIzLjJ6IE04LDEwaDJ2NEg4VjEwelxuXHRcdCBNNiwxN2MwLTAuNiwwLjQtMSwxLTFoOXYtMmMwLTAuNiwwLjQtMSwxLTFoNWwwLjYsMUgxOHYyaDUuOGwxLjIsMi4xSDZWMTd6IiBj''@;'; + put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjguMiwyNWMtMS4yLDAtMi40LDAuNC0zLjMsMS4yYy0xLjIsMS4xLTMsMS4xLTQuMSwwYy0xLjktMS42LTQuNi0xLjYtNi41LDBjLTEuMiwxLjEtMi45LDEuMS00LjEsMFxuXHRcdGMtMC45LTAu''@;'; + put 'put ''OC0yLTEuMi0zLjItMS4yYy0xLjIsMC0yLjMsMC40LTMuMiwxLjJDMy40LDI2LjcsMi43LDI3LDIsMjd2MmMxLjEtMC4xLDIuMi0wLjUsMy4xLTEuMkM1LjYsMjcuMyw2LjMsMjcsNywyN1xuXHRcdGMwLjcsMCwxLjUsMC4zLDIsMC44YzEuOSwxLjYsNC43LDEuNiw2LjYsMGMwLjYtMC41LDEu''@;'; + put 'put ''My0wLjgsMi4xLTAuOGMwLjgsMCwxLjUsMC4zLDIuMSwwLjhjMS45LDEuNiw0LjcsMS42LDYuNSwwXG5cdFx0YzAuNi0wLjUsMS4zLTAuOCwyLjEtMC44YzAuOCwwLDEuNiwwLjMsMi4xLDAuOGMwLjksMC44LDIuMiwxLjMsMy40LDEuMnYtMmMtMC44LDAtMS42LTAuMy0yLjItMC44QzMwLjcs''@;'; + put 'put ''MjUuNCwyOS41LDI1LDI4LjIsMjV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik01LjgsMjMuMnYtMy4zaDI2LjFMMjguNCwyM2gwLjJjMC44LDAsMS42LDAuMiwyLjIsMC41bDIuNS0yLjJsMC4xLTAuMmMwLjctMC45LDAuNS0yLjEtMC40LTIu''@;'; + put 'put ''OGMtMC4zLTAuMy0wLjgtMC40LTEuMi0wLjRcblx0XHRoLTQuMWwtNS40LTdoLTUuNWMtMS43LDAtMywxLjMtMywzaC0yVjhINnY2LjJjLTEuMiwwLjQtMi4xLDEuNS0yLjEsMi44bDAsNy4ybDAuMSwwQzQuNSwyMy43LDUuMSwyMy40LDUuOCwyMy4yeiBNMTcuOSwxNGg0LjJcblx0XHRsMS40''@;'; + put 'put ''LDJoLTUuN1YxNHogTTcuOSwxMGgydjRoLTJWMTB6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVUcmFpbGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNSwxOS4yYy0zLjIsMC01LjgsMi42LTUuOCw1LjhzMi42LDUuOCw1Ljgs''@;'; + put 'put ''NS44czUuOC0yLjYsNS44LTUuOFMxOC4yLDE5LjIsMTUsMTkuMnogTTE1LDI5LjJjLTIuMywwLTQuMi0xLjktNC4yLTQuMlxuXHRcdHMxLjktNC4yLDQuMi00LjJzNC4yLDEuOSw0LjIsNC4yUzE3LjMsMjkuMiwxNSwyOS4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; + put 'put ''YXRoLTEiIC8+PHJlY3QgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzMsOUgydjEzLjFjMCwwLDAsMCwwLDBDMiwyNC4zLDMuNywyNiw1LjksMjZIN3YtMkg1LjljLTEsMC0x''@;'; + put 'put ''LjgtMC44LTEuOS0xLjlWMTVoMjJ2Ny4xYzAsMS0wLjgsMS44LTEuOSwxLjlIMjN2MmgxLjFcblx0XHRjMCwwLDAsMCwwLDBjMi4xLDAsMy44LTEuNywzLjgtMy45VjExaDVjMC42LDAsMS0wLjQsMS0xUzMzLjYsOSwzMyw5eiBNMjYsMTNINHYtMmgyMlYxM3oiIGNsYXNzPSJjbHItaS1vdXRs''@;'; + put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMyw5SDJ2MTMuMWMwLDAsMCwwLDAsMEMyLDI0LjMsMy43LDI2LDUuOSwyNkg3di0ySDUuOWMtMSwwLTEuOC0wLjgtMS45LTEuOVYxNWgyMnY3LjFjMCwxLTAuOCwxLjgtMS45LDEuOUgyM3YyaDEuMVxuXHRjMCwwLDAsMCww''@;'; + put 'put ''LDBjMi4xLDAsMy44LTEuNywzLjgtMy45VjExaDVjMC42LDAsMS0wLjQsMS0xUzMzLjYsOSwzMyw5eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTUsMTkuMmMtMy4yLDAtNS44LDIuNi01LjgsNS44czIuNiw1LjgsNS44LDUuOHM1LjgtMi42''@;'; + put 'put ''LDUuOC01LjhsMCwwQzIwLjgsMjEuOCwxOC4yLDE5LjIsMTUsMTkuMnogTTE2LDI2aC0ydi0yaDJWMjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVPbkhvbGlkYXk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LjA4LDIuMzRj''@;'; + put 'put ''LTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRBMTcuOTEsMTcuOTEsMCwwLDAsMjMsMjkuNjZsNS41MywzLjUyYTEsMSwwLDAsMCwxLjM4LS4zLDEsMSwwLDAsMCwuMTYtLjU0VjI1LjYxYTEzLDEzLDAsMCwwLDQtOS4yN0MzNC4wOCw4LjYyLDI2LjksMi4zNCwxOC4wOCwyLjM0''@;'; + put 'put ''Wk0yOC4zNywyNC40NWExLDEsMCwwLDAtLjMyLjczdjUuMzRsLTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMSwxNiwxNiwwLDAsMS00Ljc2LjcyYy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUuMzgsMTQsMTJBMTEuMSwxMS4xLDAsMCwxLDI4LjM3LDI0LjQ1WiIg''@;'; + put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjEsMTUuODIsMzEsMTUuNjcsMjguNSwxMy40NGEzLjI1LDMuMjUsMCwwLDAtMi4zOS0uODRsLTUuMzguMzQtMy41OS0zYS44MS44MSwwLDAsMC0uNTItLjE5SDEzLjU2YS43OC43OCww''@;'; + put 'put ''LDAsMC0uNjkuNC43Ny43NywwLDAsMCwwLC43OWwxLjM2LDIuNDQtNC43MS4yOSwxLjMxLDEuNTIsMTUuMzktMWExLjY1LDEuNjUsMCwwLDEsMS4yMi40M2wyLjM2LDIuMTNhLjExLjExLDAsMCwxLDAsLjA3YzAsLjA2LS4wOS4wNS0uMS4wNkgyMS44MmwtLjM1LjM3LTUuMTksNS41M0gxNC42''@;'; + put 'put ''NGwyLjczLTUuOUg4LjU0TDcuMTMsMTQuMTYsNi41MSwxM2EuOC44LDAsMCwwLTEtLjJBLjgxLjgxLDAsMCwwLDUuMiwxMy45bDIsMy45NGExLjIxLDEuMjEsMCwwLDAsMS4wOC42NWg2LjU3bC0xLjk0LDQuMThBMS4yLDEuMiwwLDAsMCwxMywyMy44M2ExLjIyLDEuMjIsMCwwLDAsMSwuNTZo''@;'; + put 'put ''Mi40M2ExLjE3LDEuMTcsMCwwLDAsLjg4LS4zOWw1LjE4LTUuNTFoNy4xNmExLjY1LDEuNjUsMCwwLDAsMS41Mi0uOTFBMS43NCwxLjc0LDAsMCwwLDMxLjEsMTUuODJaTTE0LjkyLDExLjMxaDEuNDFsMi4wOSwxLjc3TDE2LDEzLjIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; + put 'put ''bGluZS1wYXRoLTIiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTcuOTEsMTcuOTEsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjM4LS4zQTEsMSwwLDAsMCwzMCwzMi41VjI1Ljc3YTEzLDEzLDAsMCww''@;'; + put 'put ''LDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTI5Ljg0LDE4SDIxLjUxYS40Mi40MiwwLDAsMC0uMy4xM2wtNS4zLDUuNjRhLjM5LjM5LDAsMCwxLS4yOS4xM0gxMy4xOWEuNDEuNDEsMCwwLDEtLjM3LS41OGwyLjQ3LTUuMzJINy40NmEuNDIuNDIsMCwwLDEtLjM2LS4yMmwtMi43''@;'; + put 'put ''LTVINi4yNGEuNTMuNTMsMCwwLDEsLjM5LjE4bDEuNTYsMS42OWEuMzguMzgsMCwwLDAsLjMzLjE0bDYuMTgtLjM4LTItMy41NWgyLjg5YS40Ny40NywwLDAsMSwuMzEuMTFMMTkuNjMsMTRsNi42OS0uMzVhMi40NCwyLjQ0LDAsMCwxLDEuODEuNjNsMi40NywyLjIzQS45Mi45MiwwLDAsMSwy''@;'; + put 'put ''OS44NCwxOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgJyksZS5UcmF2ZWxTaGFwZXM9e3RydWNrOmUuQ2xyU2hhcGVUcnVjayxhaXJwbGFuZTplLkNsclNoYXBlQWlycGxhbmUsY2FyOmUuQ2xyU2hhcGVDYXIsbWFwOmUuQ2xyU2hhcGVNYXAsY29tcGFz''@;'; + put 'put ''czplLkNsclNoYXBlQ29tcGFzcywibWFwLW1hcmtlciI6ZS5DbHJTaGFwZU1hcE1hcmtlcixiaWN5Y2xlOmUuQ2xyU2hhcGVCaWN5Y2xlLGJvYXQ6ZS5DbHJTaGFwZUJvYXQsY2FtcGVydmFuOmUuQ2xyU2hhcGVDYW1wZXJ2YW4sY2FyYXZhbjplLkNsclNoYXBlQ2FyYXZhbixmZXJyeTplLkNs''@;'; + put 'put ''clNoYXBlRmVycnksdHJhaWxlcjplLkNsclNoYXBlVHJhaWxlciwib24taG9saWRheSI6ZS5DbHJTaGFwZU9uSG9saWRheX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuVHJhdmVsU2hhcGVzLCJwbGFuZSIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLlRyYXZlbFNoYXBlcy5haXJwbGFuZSkp''@;'; + put 'put ''LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRyYXZlbFNoYXBlcywiYXV0byIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLlRyYXZlbFNoYXBlcy5jYXIpKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNs''@;'; + put 'put ''YXJpdHlJY29ucy5hZGQoZS5UcmF2ZWxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiOmZ1bmN0aW9uKEEsZSxsKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVz''@;'; + put 'put ''Y3JpcHRvckNvbmZpZz12b2lkIDAsZS5kZXNjcmlwdG9yQ29uZmlnPWZ1bmN0aW9uKHIpe3JldHVybntlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyfX19LCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50''@;'; + put 'put ''cyI6ZnVuY3Rpb24oQSxlLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXI9ZS5jaGFuZ2VIYW5kbGVyQ2FsbGJhY2tzPXZvaWQgMCxlLmNoYW5nZUhhbmRsZXJDYWxsYmFja3M9e307''@;'; + put 'put ''dmFyIHI9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJpbnN0YW5jZSIse2dldDpmdW5jdGlvbigpe3JldHVybiBhLnNpbmdsZUluc3RhbmNlPWEuc2luZ2xlSW5zdGFuY2U/YS5zaW5nbGVJbnN0YW5jZTpuZXcgYX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxhLnByb3RvdHlw''@;'; + put 'put ''ZS5zdWJzY3JpYmVUbz1mdW5jdGlvbihjLG8pe3ZhciBoPXRoaXM7cmV0dXJuIHRoaXMuY2FsbGJhY2tzW2NdPy0xPT09dGhpcy5jYWxsYmFja3NbY10uaW5kZXhPZihvKSYmdGhpcy5jYWxsYmFja3NbY10ucHVzaChvKTp0aGlzLmNhbGxiYWNrc1tjXT1bb10sZnVuY3Rpb24oKXt2YXIgZj1o''@;'; + put 'put ''LmNhbGxiYWNrc1tjXS5pbmRleE9mKG8pO2guY2FsbGJhY2tzW2NdLnNwbGljZShmLDEpLDA9PT1oLmNhbGxiYWNrc1tjXS5sZW5ndGgmJmRlbGV0ZSBoLmNhbGxiYWNrc1tjXX19LGEucHJvdG90eXBlLmVtaXRDaGFuZ2VzPWZ1bmN0aW9uKGMsbyl7dGhpcy5jYWxsYmFja3NbY10mJnRoaXMu''@;'; + put 'put ''Y2FsbGJhY2tzW2NdLm1hcChmdW5jdGlvbihoKXtoKG8pfSl9LGEpO2Z1bmN0aW9uIGEoKXt0aGlzLmNhbGxiYWNrcz1lLmNoYW5nZUhhbmRsZXJDYWxsYmFja3N9ZS5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXI9cn0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9y''@;'; + put 'put ''LnRzIjpmdW5jdGlvbihBLGUsbCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNsckljb25TVkc9dm9pZCAwLGUuY2xySWNvblNWRz1mdW5jdGlvbihyKXt2YXIgYT0iIjtyZXR1cm4tMTxyLmluZGV4T2YoIi0tYmFkZ2Vk''@;'; + put 'put ''IikmJihhKz0iY2FuLWJhZGdlICIpLC0xPHIuaW5kZXhPZigiLS1hbGVydGVkIikmJihhKz0iY2FuLWFsZXJ0ICIpLC0xPHIuaW5kZXhPZigiY2xyLWktc29saWQiKSYmKGErPSJoYXMtc29saWQgIiksKGE/JzxzdmcgdmVyc2lvbj0iMS4xIiBjbGFzcz0iJythKyciIHZpZXdCb3g9IjAgMCAz''@;'; + put 'put ''NiAzNiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmb2N1c2FibGU9ImZhbHNlIiByb2xlPSJpbWciPic6JzxzdmcgdmVy''@;'; + put 'put ''c2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzYgMzYiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiXG4gICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgZm9jdXNhYmxlPSJmYWxz''@;'; + put 'put ''ZSIgcm9sZT0iaW1nIj4nKStyKyI8L3N2Zz4ifX19LGs9e30sWC5tPUYxLFguYz1rLFguZD1mdW5jdGlvbihBLGUsbCl7WC5vKEEsZSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLGUse2VudW1lcmFibGU6ITAsZ2V0Omx9KX0sWC5yPWZ1bmN0aW9uKEEpeyJ1bmRlZmluZWQiIT10eXBlb2Yg''@;'; + put 'put ''U3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LFgudD1mdW5jdGlvbihBLGUpe2lmKDEmZSYm''@;'; + put 'put ''KEE9WChBKSksOCZlfHw0JmUmJiJvYmplY3QiPT10eXBlb2YgQSYmQSYmQS5fX2VzTW9kdWxlKXJldHVybiBBO3ZhciBsPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoWC5yKGwpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTpBfSksMiZlJiYi''@;'; + put 'put ''c3RyaW5nIiE9dHlwZW9mIEEpZm9yKHZhciByIGluIEEpWC5kKGwscixmdW5jdGlvbihhKXtyZXR1cm4gQVthXX0uYmluZChudWxsLHIpKTtyZXR1cm4gbH0sWC5uPWZ1bmN0aW9uKEEpe3ZhciBlPUEmJkEuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBBLmRlZmF1bHR9OmZ1bmN0aW9u''@;'; + put 'put ''KCl7cmV0dXJuIEF9O3JldHVybiBYLmQoZSwiYSIsZSksZX0sWC5vPWZ1bmN0aW9uKEEsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChBLGUpfSxYLnA9IiIsWChYLnM9Ii4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1zZngudHMiKTtmdW5jdGlv''@;'; + put 'put ''biBYKEEpe2lmKGtbQV0pcmV0dXJuIGtbQV0uZXhwb3J0czt2YXIgZT1rW0FdPXtpOkEsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gRjFbQV0uY2FsbChlLmV4cG9ydHMsZSxlLmV4cG9ydHMsWCksZS5sPSEwLGUuZXhwb3J0c312YXIgRjEsa30pOw=='';'; + put 'run;'; + put '%sasjsout(JS64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=styles.3429cf6c1aa860f9-css; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''ZGl2LmNvZGUtdG9vbGJhcntwb3NpdGlvbjpyZWxhdGl2ZX1kaXYuY29kZS10b29sYmFyPi50b29sYmFye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA7dG9wOi4zZW07cmlnaHQ6LjJlbTt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2UtaW4tb3V0O29wYWNpdHk6MH1kaXYuY29kZS10''@;'; + put 'put ''b29sYmFyOmhvdmVyPi50b29sYmFye29wYWNpdHk6MX1kaXYuY29kZS10b29sYmFyOmZvY3VzLXdpdGhpbj4udG9vbGJhcntvcGFjaXR5OjF9ZGl2LmNvZGUtdG9vbGJhcj4udG9vbGJhcj4udG9vbGJhci1pdGVte2Rpc3BsYXk6aW5saW5lLWJsb2NrfWRpdi5jb2RlLXRvb2xiYXI+LnRvb2xi''@;'; + put 'put ''YXI+LnRvb2xiYXItaXRlbT5he2N1cnNvcjpwb2ludGVyfWRpdi5jb2RlLXRvb2xiYXI+LnRvb2xiYXI+LnRvb2xiYXItaXRlbT5idXR0b257YmFja2dyb3VuZDpub25lO2JvcmRlcjowO2NvbG9yOmluaGVyaXQ7Zm9udDppbmhlcml0O2xpbmUtaGVpZ2h0Om5vcm1hbDtvdmVyZmxvdzp2aXNp''@;'; + put 'put ''YmxlO3BhZGRpbmc6MDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lfWRpdi5jb2RlLXRvb2xiYXI+LnRvb2xiYXI+LnRvb2xiYXItaXRlbT5hLGRpdi5jb2RlLXRvb2xiYXI+LnRvb2xiYXI+LnRvb2xiYXItaXRlbT5i''@;'; + put 'put ''dXR0b24sZGl2LmNvZGUtdG9vbGJhcj4udG9vbGJhcj4udG9vbGJhci1pdGVtPnNwYW57Y29sb3I6I2JiYjtmb250LXNpemU6LjhlbTtwYWRkaW5nOjAgLjVlbTtiYWNrZ3JvdW5kOiNmNWYyZjA7YmFja2dyb3VuZDpyZ2JhKDIyNCwyMjQsMjI0LC4yKTtib3gtc2hhZG93OjAgMnB4ICMwMDAz''@;'; + put 'put ''O2JvcmRlci1yYWRpdXM6LjVlbX1kaXYuY29kZS10b29sYmFyPi50b29sYmFyPi50b29sYmFyLWl0ZW0+YTpob3ZlcixkaXYuY29kZS10b29sYmFyPi50b29sYmFyPi50b29sYmFyLWl0ZW0+YTpmb2N1cyxkaXYuY29kZS10b29sYmFyPi50b29sYmFyPi50b29sYmFyLWl0ZW0+YnV0dG9uOmhv''@;'; + put 'put ''dmVyLGRpdi5jb2RlLXRvb2xiYXI+LnRvb2xiYXI+LnRvb2xiYXItaXRlbT5idXR0b246Zm9jdXMsZGl2LmNvZGUtdG9vbGJhcj4udG9vbGJhcj4udG9vbGJhci1pdGVtPnNwYW46aG92ZXIsZGl2LmNvZGUtdG9vbGJhcj4udG9vbGJhcj4udG9vbGJhci1pdGVtPnNwYW46Zm9jdXN7Y29sb3I6''@;'; + put 'put ''aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246bm9uZX0vKiEKICogQ29weXJpZ2h0IChjKSBIQU5EU09OQ09ERSBzcC4geiBvLiBvLgogKiAKICogSEFORFNPTlRBQkxFIGlzIGEgc29mdHdhcmUgZGlzdHJpYnV0ZWQgYnkgSEFORFNPTkNPREUgc3AuIHogby4gby4sIGEgUG9saXNoIGNvcnBvcmF0''@;'; + put 'put ''aW9uIGJhc2VkIGluCiAqIEdkeW5pYSwgUG9sYW5kLCBhdCBBbGVqYSBad3ljaWXMqHN0d2EgOTYtOTgsIHJlZ2lzdGVyZWQgYnkgdGhlIERpc3RyaWN0IENvdXJ0IGluIEdkYW5zayB1bmRlciBudW1iZXIKICogNTM4NjUxLCBFVSB0YXggSUQgbnVtYmVyOiBQTDU4NjIyOTQwMDIsIHNoYXJl''@;'; + put 'put ''IGNhcGl0YWw6IFBMTiA2Miw4MDAuMDAuCiAqIAogKiBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBhcHBsaWNhYmxlIGNvcHlyaWdodCBsYXdzLCBpbmNsdWRpbmcgaW50ZXJuYXRpb25hbCB0cmVhdGllcywgYW5kIGR1YWwtCiAqIGxpY2Vuc2VkIOKAkyBkZXBlbmRpbmcgb24gd2hl''@;'; + put 'put ''dGhlciB5b3VyIHVzZSBmb3IgY29tbWVyY2lhbCBwdXJwb3NlcywgbWVhbmluZyBpbnRlbmRlZCBmb3Igb3IKICogcmVzdWx0aW5nIGluIGNvbW1lcmNpYWwgYWR2YW50YWdlIG9yIG1vbmV0YXJ5IGNvbXBlbnNhdGlvbiwgb3Igbm90LgogKiAKICogSWYgeW91ciB1c2UgaXMgc3RyaWN0bHkg''@;'; + put 'put ''cGVyc29uYWwgb3Igc29sZWx5IGZvciBldmFsdWF0aW9uIHB1cnBvc2VzLCBtZWFuaW5nIGZvciB0aGUgcHVycG9zZXMgb2YgdGVzdGluZwogKiB0aGUgc3VpdGFiaWxpdHksIHBlcmZvcm1hbmNlLCBhbmQgdXNlZnVsbmVzcyBvZiB0aGlzIHNvZnR3YXJlIG91dHNpZGUgdGhlIHByb2R1Y3Rp''@;'; + put 'put ''b24gZW52aXJvbm1lbnQsCiAqIHlvdSBhZ3JlZSB0byBiZSBib3VuZCBieSB0aGUgdGVybXMgaW5jbHVkZWQgaW4gdGhlICJoYW5kc29udGFibGUtbm9uLWNvbW1lcmNpYWwtbGljZW5zZS5wZGYiIGZpbGUuCiAqIAogKiBZb3VyIHVzZSBvZiB0aGlzIHNvZnR3YXJlIGZvciBjb21tZXJjaWFs''@;'; + put 'put ''IHB1cnBvc2VzIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGluY2x1ZGVkIGluIGFuIGFwcGxpY2FibGUKICogbGljZW5zZSBhZ3JlZW1lbnQuCiAqIAogKiBJbiBhbnkgY2FzZSwgeW91IG11c3Qgbm90IG1ha2UgYW55IHN1Y2ggdXNlIG9mIHRoaXMgc29mdHdhcmUgYXMgdG8gZGV2ZWxvcCBz''@;'; + put 'put ''b2Z0d2FyZSB3aGljaCBtYXkgYmUKICogY29uc2lkZXJlZCBjb21wZXRpdGl2ZSB3aXRoIHRoaXMgc29mdHdhcmUuCiAqIAogKiBVTkxFU1MgRVhQUkVTU0xZIEFHUkVFRCBPVEhFUldJU0UsIEhBTkRTT05DT0RFIFBST1ZJREVTIFRISVMgU09GVFdBUkUgT04gQU4gIkFTIElTIgogKiBCQVNJ''@;'; + put 'put ''UywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEFORCBJTiBOTyBFVkVOVCBBTkQgVU5ERVIgTk8KICogTEVHQUwgVEhFT1JZLCBTSEFMTCBIQU5EU09OQ09ERSBCRSBMSUFCTEUgVE8gWU9VIEZPUiBEQU1BR0VTLCBJTkNMVURJTkcgQU5ZIERJUkVDVCwK''@;'; + put 'put ''ICogSU5ESVJFQ1QsIFNQRUNJQUwsIElOQ0lERU5UQUwsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPRiBBTlkgQ0hBUkFDVEVSIEFSSVNJTkcgRlJPTQogKiBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSElTIFNPRlRXQVJFLgogKiAKICogVmVyc2lvbjogMTIuMS4yCiAqIFJlbGVhc2Ug''@;'; + put 'put ''ZGF0ZTogMDgvMDcvMjAyMiAoYnVpbHQgYXQgMDgvMDcvMjAyMiAwOToyNTo0MCkKICovLmhhbmRzb250YWJsZSAudGFibGUgdGgsLmhhbmRzb250YWJsZSAudGFibGUgdGR7Ym9yZGVyLXRvcDpub25lfS5oYW5kc29udGFibGUgdHJ7YmFja2dyb3VuZDojZmZmfS5oYW5kc29udGFibGUgdGR7''@;'; + put 'put ''YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS5oYW5kc29udGFibGUgLnRhYmxlIGNhcHRpb24rdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZSAudGFibGUgY2FwdGlvbit0aGVhZCB0cjpmaXJzdC1jaGlsZCB0ZCwuaGFuZHNvbnRhYmxlIC50YWJsZSBjb2xncm91cCt0aGVh''@;'; + put 'put ''ZCB0cjpmaXJzdC1jaGlsZCB0aCwuaGFuZHNvbnRhYmxlIC50YWJsZSBjb2xncm91cCt0aGVhZCB0cjpmaXJzdC1jaGlsZCB0ZCwuaGFuZHNvbnRhYmxlIC50YWJsZSB0aGVhZDpmaXJzdC1jaGlsZCB0cjpmaXJzdC1jaGlsZCB0aCwuaGFuZHNvbnRhYmxlIC50YWJsZSB0aGVhZDpmaXJzdC1j''@;'; + put 'put ''aGlsZCB0cjpmaXJzdC1jaGlsZCB0ZHtib3JkZXItdG9wOjFweCBzb2xpZCAjQ0NDQ0NDfS5oYW5kc29udGFibGUgLnRhYmxlLWJvcmRlcmVke2JvcmRlcjowO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZX0uaGFuZHNvbnRhYmxlIC50YWJsZS1ib3JkZXJlZCB0aCwuaGFuZHNvbnRhYmxlIC50''@;'; + put 'put ''YWJsZS1ib3JkZXJlZCB0ZHtib3JkZXItbGVmdDpub25lfS5oYW5kc29udGFibGUgLnRhYmxlLWJvcmRlcmVkIHRoOmZpcnN0LWNoaWxkLC5oYW5kc29udGFibGUgLnRhYmxlLWJvcmRlcmVkIHRkOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQ0NDQ0NDfS5oYW5kc29udGFi''@;'; + put 'put ''bGUgLnRhYmxlPnRib2R5PnRyPnRkLC5oYW5kc29udGFibGUgLnRhYmxlPnRib2R5PnRyPnRoLC5oYW5kc29udGFibGUgLnRhYmxlPnRmb290PnRyPnRkLC5oYW5kc29udGFibGUgLnRhYmxlPnRmb290PnRyPnRoLC5oYW5kc29udGFibGUgLnRhYmxlPnRoZWFkPnRyPnRkLC5oYW5kc29udGFi''@;'; + put 'put ''bGUgLnRhYmxlPnRoZWFkPnRyPnRoe2xpbmUtaGVpZ2h0OjIxcHg7cGFkZGluZzowfS5jb2wtbGctMS5oYW5kc29udGFibGUsLmNvbC1sZy0xMC5oYW5kc29udGFibGUsLmNvbC1sZy0xMS5oYW5kc29udGFibGUsLmNvbC1sZy0xMi5oYW5kc29udGFibGUsLmNvbC1sZy0yLmhhbmRzb250YWJs''@;'; + put 'put ''ZSwuY29sLWxnLTMuaGFuZHNvbnRhYmxlLC5jb2wtbGctNC5oYW5kc29udGFibGUsLmNvbC1sZy01LmhhbmRzb250YWJsZSwuY29sLWxnLTYuaGFuZHNvbnRhYmxlLC5jb2wtbGctNy5oYW5kc29udGFibGUsLmNvbC1sZy04LmhhbmRzb250YWJsZSwuY29sLWxnLTkuaGFuZHNvbnRhYmxlLC5j''@;'; + put 'put ''b2wtbWQtMS5oYW5kc29udGFibGUsLmNvbC1tZC0xMC5oYW5kc29udGFibGUsLmNvbC1tZC0xMS5oYW5kc29udGFibGUsLmNvbC1tZC0xMi5oYW5kc29udGFibGUsLmNvbC1tZC0yLmhhbmRzb250YWJsZSwuY29sLW1kLTMuaGFuZHNvbnRhYmxlLC5jb2wtbWQtNC5oYW5kc29udGFibGUsLmNv''@;'; + put 'put ''bC1tZC01LmhhbmRzb250YWJsZSwuY29sLW1kLTYuaGFuZHNvbnRhYmxlLC5jb2wtbWQtNy5oYW5kc29udGFibGUsLmNvbC1tZC04LmhhbmRzb250YWJsZSwuY29sLW1kLTkuaGFuZHNvbnRhYmxlIC5jb2wtc20tMS5oYW5kc29udGFibGUsLmNvbC1zbS0xMC5oYW5kc29udGFibGUsLmNvbC1z''@;'; + put 'put ''bS0xMS5oYW5kc29udGFibGUsLmNvbC1zbS0xMi5oYW5kc29udGFibGUsLmNvbC1zbS0yLmhhbmRzb250YWJsZSwuY29sLXNtLTMuaGFuZHNvbnRhYmxlLC5jb2wtc20tNC5oYW5kc29udGFibGUsLmNvbC1zbS01LmhhbmRzb250YWJsZSwuY29sLXNtLTYuaGFuZHNvbnRhYmxlLC5jb2wtc20t''@;'; + put 'put ''Ny5oYW5kc29udGFibGUsLmNvbC1zbS04LmhhbmRzb250YWJsZSwuY29sLXNtLTkuaGFuZHNvbnRhYmxlIC5jb2wteHMtMS5oYW5kc29udGFibGUsLmNvbC14cy0xMC5oYW5kc29udGFibGUsLmNvbC14cy0xMS5oYW5kc29udGFibGUsLmNvbC14cy0xMi5oYW5kc29udGFibGUsLmNvbC14cy0y''@;'; + put 'put ''LmhhbmRzb250YWJsZSwuY29sLXhzLTMuaGFuZHNvbnRhYmxlLC5jb2wteHMtNC5oYW5kc29udGFibGUsLmNvbC14cy01LmhhbmRzb250YWJsZSwuY29sLXhzLTYuaGFuZHNvbnRhYmxlLC5jb2wteHMtNy5oYW5kc29udGFibGUsLmNvbC14cy04LmhhbmRzb250YWJsZSwuY29sLXhzLTkuaGFu''@;'; + put 'put ''ZHNvbnRhYmxle3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH0uaGFuZHNvbnRhYmxlIC50YWJsZS1zdHJpcGVkPnRib2R5PnRyOm50aC1vZi10eXBlKGV2ZW4pe2JhY2tncm91bmQtY29sb3I6I2ZmZn0uaGFuZHNvbnRhYmxle3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUg''@;'; + put 'put ''LmhpZGV7ZGlzcGxheTpub25lfS5oYW5kc29udGFibGUgLnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUgLnd0SGlkZXJ7d2lkdGg6MH0uaGFuZHNvbnRhYmxlIC53dFNwcmVhZGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjA7aGVpZ2h0OmF1dG99LmhhbmRzb250''@;'; + put 'put ''YWJsZSB0YWJsZSwuaGFuZHNvbnRhYmxlIHRib2R5LC5oYW5kc29udGFibGUgdGhlYWQsLmhhbmRzb250YWJsZSB0ZCwuaGFuZHNvbnRhYmxlIHRoLC5oYW5kc29udGFibGUgaW5wdXQsLmhhbmRzb250YWJsZSB0ZXh0YXJlYSwuaGFuZHNvbnRhYmxlIGRpdntib3gtc2l6aW5nOmNvbnRlbnQt''@;'; + put 'put ''Ym94Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3h9LmhhbmRzb250YWJsZSBpbnB1dCwuaGFuZHNvbnRhYmxlIHRleHRhcmVhe21pbi1oZWlnaHQ6aW5pdGlhbH0uaGFuZHNvbnRhYmxlIHRhYmxlLmh0Q29yZXtib3JkZXItY29sbGFw''@;'; + put 'put ''c2U6c2VwYXJhdGU7Ym9yZGVyLXNwYWNpbmc6MDttYXJnaW46MDtib3JkZXItd2lkdGg6MDt0YWJsZS1sYXlvdXQ6Zml4ZWQ7d2lkdGg6MDtvdXRsaW5lLXdpZHRoOjA7Y3Vyc29yOmRlZmF1bHQ7bWF4LXdpZHRoOm5vbmU7bWF4LWhlaWdodDpub25lfS5oYW5kc29udGFibGUgY29sLC5oYW5k''@;'; + put 'put ''c29udGFibGUgY29sLnJvd0hlYWRlcnt3aWR0aDo1MHB4fS5oYW5kc29udGFibGUgdGgsLmhhbmRzb250YWJsZSB0ZHtib3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzto''@;'; + put 'put ''ZWlnaHQ6MjJweDtlbXB0eS1jZWxsczpzaG93O2xpbmUtaGVpZ2h0OjIxcHg7cGFkZGluZzowIDRweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7dmVydGljYWwtYWxpZ246dG9wO292ZXJmbG93OmhpZGRlbjtvdXRsaW5lLXdpZHRoOjA7d2hpdGUtc3BhY2U6cHJlLXdyYXB9W2Rpcj1ydGxdLmhh''@;'; + put 'put ''bmRzb250YWJsZSB0aCxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRke2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUgdGg6bGFzdC1jaGlsZHtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjYztib3Jk''@;'; + put 'put ''ZXItYm90dG9tOjFweCBzb2xpZCAjY2NjfVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGg6bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY30uaGFuZHNvbnRhYmxlIHRoOmZpcnN0LWNoaWxkLC5oYW5kc29udGFibGUgdGg6bnRoLWNoaWxkKDIp''@;'; + put 'put ''LC5oYW5kc29udGFibGUgdGQ6Zmlyc3Qtb2YtdHlwZXtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRoOmZpcnN0LWNoaWxkLFtkaXI9cnRsXS5oYW5kc29udGFibGUgdGg6bnRoLWNoaWxkKDIpLFtkaXI9cnRsXS5oYW5kc29udGFibGUgdGQ6Zmly''@;'; + put 'put ''c3Qtb2YtdHlwZXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2N9LmhhbmRzb250YWJsZSAuaHRfY2xvbmVfdG9wIHRoOm50aC1jaGlsZCgyKXtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjY31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odF9jbG9uZV90''@;'; + put 'put ''b3AgdGg6bnRoLWNoaWxkKDIpe2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUuaHRSb3dIZWFkZXJzIHRoZWFkIHRyIHRoOm50aC1jaGlsZCgyKXtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY31bZGlyPXJ0bF0uaGFuZHNvbnRh''@;'; + put 'put ''YmxlLmh0Um93SGVhZGVycyB0aGVhZCB0ciB0aDpudGgtY2hpbGQoMil7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUgdHI6Zmlyc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZSB0cjpmaXJzdC1jaGlsZCB0ZHtib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjfS5odF9t''@;'; + put 'put ''YXN0ZXI6bm90KC5pbm5lckJvcmRlcklubGluZVN0YXJ0KTpub3QoLmVtcHR5Q29sdW1ucyl+LmhhbmRzb250YWJsZSB0Ym9keSB0ciB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJJbmxpbmVTdGFydCk6bm90KC5lbXB0eUNvbHVtbnMpfi5oYW5kc29udGFibGU6bm90KC5odF9jbG9u''@;'; + put 'put ''ZV90b3ApIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxke2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfVtkaXI9cnRsXS5odF9tYXN0ZXI6bm90KC5pbm5lckJvcmRlcklubGluZVN0YXJ0KTpub3QoLmVtcHR5Q29sdW1ucyl+LmhhbmRzb250YWJsZSB0Ym9k''@;'; + put 'put ''eSB0ciB0aCxbZGlyPXJ0bF0uaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJJbmxpbmVTdGFydCk6bm90KC5lbXB0eUNvbHVtbnMpfi5oYW5kc29udGFibGU6bm90KC5odF9jbG9uZV90b3ApIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0LXdpZHRoOjA7Ym9yZGVyLXJpZ2h0''@;'; + put 'put ''OjFweCBzb2xpZCAjY2NjfS5odF9tYXN0ZXI6bm90KC5pbm5lckJvcmRlclRvcCk6bm90KC5pbm5lckJvcmRlckJvdHRvbSkgdGhlYWQgdHI6bGFzdC1jaGlsZCB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pfi5oYW5kc29udGFibGUg''@;'; + put 'put ''dGhlYWQgdHI6bGFzdC1jaGlsZCB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pIHRoZWFkIHRyLmxhc3RDaGlsZCB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pfi5oYW5kc29u''@;'; + put 'put ''dGFibGUgdGhlYWQgdHIubGFzdENoaWxkIHRoe2JvcmRlci1ib3R0b20td2lkdGg6MH0uaGFuZHNvbnRhYmxlIHRoe2JhY2tncm91bmQtY29sb3I6I2YwZjBmMDtjb2xvcjojMjIyO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjQwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmhhbmRzb250''@;'; + put 'put ''YWJsZSB0aGVhZCB0aHtwYWRkaW5nOjB9LmhhbmRzb250YWJsZSB0aC5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojY2NjfS5oYW5kc29udGFibGUgdGhlYWQgdGggLnJlbGF0aXZle3BhZGRpbmc6MnB4IDRweH0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVye2Rpc3BsYXk6aW5saW5lLWJs''@;'; + put 'put ''b2NrO2xpbmUtaGVpZ2h0OjEuMX0uaGFuZHNvbnRhYmxlIC53dEJvcmRlcntwb3NpdGlvbjphYnNvbHV0ZTtmb250LXNpemU6MH0uaGFuZHNvbnRhYmxlIC53dEJvcmRlci5oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIC53dEJvcmRlci5jdXJyZW50e3otaW5k''@;'; + put 'put ''ZXg6MTB9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuYXJlYXt6LWluZGV4Ojh9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuZmlsbHt6LWluZGV4OjZ9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuY29ybmVye2ZvbnQtc2l6ZTowO2N1cnNvcjpjcm9zc2hhaXJ9Lmh0X2Nsb25lX21hc3Rlcnt6LWlu''@;'; + put 'put ''ZGV4OjEwMH0uaHRfY2xvbmVfaW5saW5lX3N0YXJ0e3otaW5kZXg6MTIwfS5odF9jbG9uZV9ib3R0b217ei1pbmRleDoxMzB9Lmh0X2Nsb25lX2JvdHRvbV9pbmxpbmVfc3RhcnRfY29ybmVye3otaW5kZXg6MTUwfS5odF9jbG9uZV90b3B7ei1pbmRleDoxNjB9Lmh0X2Nsb25lX3RvcF9pbmxp''@;'; + put 'put ''bmVfc3RhcnRfY29ybmVye3otaW5kZXg6MTgwfS5oYW5kc29udGFibGUgY29sLmhpZGRlbnt3aWR0aDowIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIHRyLmhpZGRlbiwuaGFuZHNvbnRhYmxlIHRyLmhpZGRlbiB0ZCwuaGFuZHNvbnRhYmxlIHRyLmhpZGRlbiB0aHtkaXNwbGF5Om5vbmV9Lmh0''@;'; + put 'put ''X21hc3RlciwuaHRfY2xvbmVfaW5saW5lX3N0YXJ0LC5odF9jbG9uZV90b3AsLmh0X2Nsb25lX2JvdHRvbXtvdmVyZmxvdzpoaWRkZW59Lmh0X21hc3RlciAud3RIb2xkZXJ7b3ZlcmZsb3c6YXV0b30uaGFuZHNvbnRhYmxlIC5odF9tYXN0ZXIgdGhlYWQsLmhhbmRzb250YWJsZSAuaHRfbWFz''@;'; + put 'put ''dGVyIHRyIHRoLC5oYW5kc29udGFibGUgLmh0X2Nsb25lX2lubGluZV9zdGFydCB0aGVhZHt2aXNpYmlsaXR5OmhpZGRlbn0uaHRfY2xvbmVfdG9wIC53dEhvbGRlciwuaHRfY2xvbmVfaW5saW5lX3N0YXJ0IC53dEhvbGRlciwuaHRfY2xvbmVfYm90dG9tIC53dEhvbGRlcntvdmVyZmxvdzpo''@;'; + put 'put ''aWRkZW59LmhhbmRzb250YWJsZXt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLFJvYm90byxPeHlnZW4sVWJ1bnR1LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEz''@;'; + put 'put ''cHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiMzNzM3Mzd9LmhhbmRzb250YWJsZSBhe2NvbG9yOiMxMDRhY2N9LmhhbmRzb250YWJsZS5odEF1dG9TaXple3Zpc2liaWxpdHk6aGlkZGVuO2xlZnQ6LTk5MDAwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOi05OTAwMHB4fS5oYW5kc29udGFibGUg''@;'; + put 'put ''dGQuaHRJbnZhbGlke2JhY2tncm91bmQtY29sb3I6I2ZmNGM0MiFpbXBvcnRhbnR9LmhhbmRzb250YWJsZSB0ZC5odE5vV3JhcHt3aGl0ZS1zcGFjZTpub3dyYXB9I2hvdC1kaXNwbGF5LWxpY2Vuc2UtaW5mb3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxT''@;'; + put 'put ''ZWdvZSBVSSxSb2JvdG8sT3h5Z2VuLFVidW50dSxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojMzczNzM3O3BhZGRpbmc6NXB4IDAgM3B4O3RleHQtYWxpZ246bGVmdH0jaG90LWRpc3BsYXktbGljZW5zZS1pbmZv''@;'; + put 'put ''IGF7Y29sb3I6IzEwNGFjYztmb250LXNpemU6MTBweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2N1cnNvcjpjb2wtcmVzaXplO3otaW5kZXg6MjEwO3dpZHRoOjVweDtoZWlnaHQ6MjVweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxS''@;'; + put 'put ''b3dSZXNpemVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtjdXJzb3I6cm93LXJlc2l6ZTt6LWluZGV4OjIxMDtoZWlnaHQ6NXB4O3dpZHRoOjUwcHh9LmhhbmRzb250YWJsZSAubWFudWFsQ29sdW1uUmVzaXplcjpob3ZlciwuaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyLmFj''@;'; + put 'put ''dGl2ZSwuaGFuZHNvbnRhYmxlIC5tYW51YWxSb3dSZXNpemVyOmhvdmVyLC5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXIuYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzM0YTlkYn0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyR3VpZGV7cG9zaXRpb246YWJzb2x1dGU7''@;'; + put 'put ''cmlnaHQ6dW5zZXQ7dG9wOjA7YmFja2dyb3VuZC1jb2xvcjojMzRhOWRiO2Rpc3BsYXk6bm9uZTt3aWR0aDowO2JvcmRlci1yaWdodDoxcHggZGFzaGVkICM3Nzc7Ym9yZGVyLWxlZnQ6bm9uZTttYXJnaW4tbGVmdDo1cHg7bWFyZ2luLXJpZ2h0OnVuc2V0fVtkaXI9cnRsXS5oYW5kc29udGFi''@;'; + put 'put ''bGUgLm1hbnVhbENvbHVtblJlc2l6ZXJHdWlkZXtsZWZ0OnVuc2V0O2JvcmRlci1sZWZ0OjFweCBkYXNoZWQgIzc3Nztib3JkZXItcmlnaHQ6bm9uZTttYXJnaW4tcmlnaHQ6NXB4O21hcmdpbi1sZWZ0OnVuc2V0fS5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXJHdWlkZXtwb3NpdGlv''@;'; + put 'put ''bjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojMzRhOWRiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MDtib3JkZXItYm90dG9tOjFweCBkYXNoZWQgIzc3NzttYXJnaW4tdG9wOjVweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyR3VpZGUuYWN0aXZl''@;'; + put 'put ''LC5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXJHdWlkZS5hY3RpdmV7ZGlzcGxheTpibG9jazt6LWluZGV4OjIwOX0uaGFuZHNvbnRhYmxlIC5jb2x1bW5Tb3J0aW5ne3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUgLmNvbHVtblNvcnRpbmcuc29ydEFjdGlvbjpob3Zlcnt0''@;'; + put 'put ''ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyfS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZzpiZWZvcmV7dG9wOjUwJTttYXJnaW4tdG9wOi02cHg7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7''@;'; + put 'put ''cmlnaHQ6LTlweDtsZWZ0OnVuc2V0O2NvbnRlbnQ6IiI7aGVpZ2h0OjEwcHg7d2lkdGg6NXB4O2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6cmlnaHR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSBzcGFuLmNv''@;'; + put 'put ''bEhlYWRlci5jb2x1bW5Tb3J0aW5nOmJlZm9yZXtwYWRkaW5nLXJpZ2h0OjhweDtwYWRkaW5nLWxlZnQ6MDtsZWZ0Oi05cHg7cmlnaHQ6dW5zZXQ7YmFja2dyb3VuZC1wb3NpdGlvbi14OmxlZnR9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLmFzY2VuZGluZzpi''@;'; + put 'put ''ZWZvcmV7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCUUFBQUFvQ0FNQUFBREo3eXJwQUFBQUtsQk1WRVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUtFODZJ''@;'; + put 'put ''QUFBQURYUlNUbE1BQkJFbVJHcHJsSlc3MmU3N3RUa1RLd0FBQUZOSlJFRlVlQUh0emprU2dDQVVCTkhQZ3NveTk3K3VsR1hScUpFNUwreGt4b1l0MlVkc0xiNWJxRklOeithTHV1TG41ckl1MlJrTzNmWnBXRU5pbU5naXc2aUJZUlRQTUxKakdGeFFaMWh4eGIveEJJMXFDOGszOUNkS0FBQUFB''@;'; + put 'put ''RWxGVGtTdVFtQ0MpfS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZy5kZXNjZW5kaW5nOmJlZm9yZXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJRQUFBQW9DQU1BQUFESjd5cnBBQUFB''@;'; + put 'put ''S2xCTVZFVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBS0U4NklBQUFBRFhSU1RsTUFCQkVtUkdwcmxKVzcyZTc3dFRrVEt3QUFBRkpKUkVGVWVBSHR6amtTZ0NBUVJORm1RWVVaN245ZEtVdnJ1MFRtdlBBbjNicjBRZmdkWjV4eDZ4K3JR''@;'; + put 'put ''bjIzR3FUWW5xMUZEY251elpJTzJXbWVkVnFJUlZ4Z0dLRXlqTmdZUmpLR2taMWhGSVozSTcwTHlNMFZ0VThBQUFBQVNVVk9SSzVDWUlJPSl9Lmh0R2hvc3RUYWJsZSAuaHRDb3JlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmc6bm90KC5pbmRpY2F0b3JEaXNhYmxlZCk6YWZ0ZXJ7Y29u''@;'; + put 'put ''dGVudDoiKiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1yaWdodDoyMHB4fS5oYW5kc29udGFibGUgdGQuYXJlYSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMiwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMywuaGFu''@;'; + put 'put ''ZHNvbnRhYmxlIHRkLmFyZWEtNCwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNiwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtN3twb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlIHRkLmFyZWE6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS0xOmJl''@;'; + put 'put ''Zm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMjpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTM6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS00OmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNTpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTY6YmVmb3JlLC5oYW5k''@;'; + put 'put ''c29udGFibGUgdGQuYXJlYS03OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JvdHRvbTotMTAwJSBcCTtiYWNrZ3JvdW5kOiMwMDVlZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUp''@;'; + put 'put ''LCgtbXMtaGlnaC1jb250cmFzdDogbm9uZSl7LmhhbmRzb250YWJsZSB0ZC5hcmVhOmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMTpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTI6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS0zOmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRk''@;'; + put 'put ''LmFyZWEtNDpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTU6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS02OmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNzpiZWZvcmV7Ym90dG9tOi0xMDAlfX0uaGFuZHNvbnRhYmxlIHRkLmFyZWE6YmVmb3Jle29wYWNpdHk6LjF9Lmhh''@;'; + put 'put ''bmRzb250YWJsZSB0ZC5hcmVhLTE6YmVmb3Jle29wYWNpdHk6LjJ9LmhhbmRzb250YWJsZSB0ZC5hcmVhLTI6YmVmb3Jle29wYWNpdHk6LjI3fS5oYW5kc29udGFibGUgdGQuYXJlYS0zOmJlZm9yZXtvcGFjaXR5Oi4zNX0uaGFuZHNvbnRhYmxlIHRkLmFyZWEtNDpiZWZvcmV7b3BhY2l0eTou''@;'; + put 'put ''NDF9LmhhbmRzb250YWJsZSB0ZC5hcmVhLTU6YmVmb3Jle29wYWNpdHk6LjQ3fS5oYW5kc29udGFibGUgdGQuYXJlYS02OmJlZm9yZXtvcGFjaXR5Oi41NH0uaGFuZHNvbnRhYmxlIHRkLmFyZWEtNzpiZWZvcmV7b3BhY2l0eTouNTh9LmhhbmRzb250YWJsZSB0Ym9keSB0aC5odF9faGlnaGxp''@;'; + put 'put ''Z2h0LC5oYW5kc29udGFibGUgdGhlYWQgdGguaHRfX2hpZ2hsaWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNkY2RjZGN9LmhhbmRzb250YWJsZSB0Ym9keSB0aC5odF9fYWN0aXZlX2hpZ2hsaWdodCwuaGFuZHNvbnRhYmxlIHRoZWFkIHRoLmh0X19hY3RpdmVfaGlnaGxpZ2h0e2JhY2tncm91bmQt''@;'; + put 'put ''Y29sb3I6IzhlYjBlNztjb2xvcjojMDAwfS5oYW5kc29udGFibGVJbnB1dHtib3JkZXI6bm9uZTtvdXRsaW5lLXdpZHRoOjA7bWFyZ2luOjA7cGFkZGluZzoxcHggNXB4IDA7Zm9udC1mYW1pbHk6aW5oZXJpdDtsaW5lLWhlaWdodDoyMXB4O2ZvbnQtc2l6ZTppbmhlcml0O2JveC1zaGFkb3c6''@;'; + put 'put ''MCAwIDAgMnB4ICM1MjkyZjcgaW5zZXQ7cmVzaXplOm5vbmU7ZGlzcGxheTpibG9jaztjb2xvcjojMDAwO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmhhbmRzb250YWJsZUlucHV0OmZvY3Vze291dGxpbmU6bm9uZX0uaGFuZHNvbnRhYmxlSW5wdXRIb2xkZXJ7cG9z''@;'; + put 'put ''aXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowfS5odFNlbGVjdEVkaXRvcnstd2Via2l0LWFwcGVhcmFuY2U6bWVudWxpc3QtYnV0dG9uIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDphdXRvfS5odFNlbGVjdEVkaXRvcjpmb2N1c3tvdXRsaW5lOm5vbmV9LmhhbmRzb250YWJs''@;'; + put 'put ''ZSAuaHREaW1tZWR7Y29sb3I6Izc3N30uaGFuZHNvbnRhYmxlIC5odFN1Ym1lbnV7cG9zaXRpb246cmVsYXRpdmV9LmhhbmRzb250YWJsZSAuaHRTdWJtZW51IDphZnRlcntjb250ZW50OiJcMjViNiI7Y29sb3I6Izc3Nztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo1cHg7Zm9udC1zaXplOjlw''@;'; + put 'put ''eH1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFN1Ym1lbnUgOmFmdGVye2NvbnRlbnQ6IiJ9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuaHRTdWJtZW51IDpiZWZvcmV7Y29udGVudDoiXDI1YzAiO2NvbG9yOiM3Nzc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1cHg7Zm9udC1zaXplOjlweH0u''@;'; + put 'put ''aGFuZHNvbnRhYmxlIC5odExlZnR7dGV4dC1hbGlnbjpsZWZ0fS5oYW5kc29udGFibGUgLmh0Q2VudGVye3RleHQtYWxpZ246Y2VudGVyfS5oYW5kc29udGFibGUgLmh0UmlnaHR7dGV4dC1hbGlnbjpyaWdodH0uaGFuZHNvbnRhYmxlIC5odEp1c3RpZnl7dGV4dC1hbGlnbjpqdXN0aWZ5fS5o''@;'; + put 'put ''YW5kc29udGFibGUgLmh0VG9we3ZlcnRpY2FsLWFsaWduOnRvcH0uaGFuZHNvbnRhYmxlIC5odE1pZGRsZXt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmhhbmRzb250YWJsZSAuaHRCb3R0b217dmVydGljYWwtYWxpZ246Ym90dG9tfS5oYW5kc29udGFibGUgLmh0UGxhY2Vob2xkZXJ7Y29sb3I6''@;'; + put 'put ''Izk5OX0uaGFuZHNvbnRhYmxlLmxpc3Rib3h7bWFyZ2luOjB9LmhhbmRzb250YWJsZS5saXN0Ym94IC5odF9tYXN0ZXIgdGFibGV7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtiYWNrZ3JvdW5kOndoaXRlfS5oYW5kc29udGFibGUubGlzdGJveCB0aCwu''@;'; + put 'put ''aGFuZHNvbnRhYmxlLmxpc3Rib3ggdHI6Zmlyc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZS5saXN0Ym94IHRyOmxhc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZS5saXN0Ym94IHRyOmZpcnN0LWNoaWxkIHRkLC5oYW5kc29udGFibGUubGlzdGJveCB0ZHtib3JkZXItY29sb3I6dHJhbnNwYXJl''@;'; + put 'put ''bnQhaW1wb3J0YW50fS5oYW5kc29udGFibGUubGlzdGJveCB0aCwuaGFuZHNvbnRhYmxlLmxpc3Rib3ggdGR7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LmhhbmRzb250YWJsZS5saXN0Ym94IHRkLmh0RGltbWVke2N1cnNvcjpkZWZhdWx0O2NvbG9yOmluaGVy''@;'; + put 'put ''aXQ7Zm9udC1zdHlsZTppbmhlcml0fS5oYW5kc29udGFibGUubGlzdGJveCAud3RCb3JkZXJ7dmlzaWJpbGl0eTpoaWRkZW59LmhhbmRzb250YWJsZS5saXN0Ym94IHRyIHRkLmN1cnJlbnQsLmhhbmRzb250YWJsZS5saXN0Ym94IHRyOmhvdmVyIHRke2JhY2tncm91bmQ6I2VlZX0uaHRfZWRp''@;'; + put 'put ''dG9yX2hpZGRlbnt6LWluZGV4Oi0xfS5odF9lZGl0b3JfdmlzaWJsZXt6LWluZGV4OjIwMH0uaGFuZHNvbnRhYmxlIHRkLmh0U2VhcmNoUmVzdWx0e2JhY2tncm91bmQ6I2ZjZWRkOTtjb2xvcjojNTgzNzA3fS5oYW5kc29udGFibGUgLmNvbGxhcHNpYmxlSW5kaWNhdG9ye3Bvc2l0aW9uOmFi''@;'; + put 'put ''c29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7bGVmdDp1bnNldDtyaWdodDo1cHg7Ym9yZGVyOjFweCBzb2xpZCAjQTZBNkE2O2xpbmUtaGVpZ2h0OjhweDtjb2xvcjojMjIyO2JvcmRlci1yYWRpdXM6MTBweDtmb250LXNpemU6MTBweDt3aWR0aDoxMHB4O2hlaWdo''@;'; + put 'put ''dDoxMHB4O2N1cnNvcjpwb2ludGVyO2JveC1zaGFkb3c6MCAwIDAgNnB4ICNlZWU7YmFja2dyb3VuZDojZWVlO3RleHQtYWxpZ246Y2VudGVyfVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmNvbGxhcHNpYmxlSW5kaWNhdG9ye3JpZ2h0OnVuc2V0O2xlZnQ6NXB4fS5oYW5kc29udGFibGUubW9i''@;'; + put 'put ''aWxlLC5oYW5kc29udGFibGUubW9iaWxlIC53dEhvbGRlcnstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTstd2Via2l0LW92ZXJmbG93LXNj''@;'; + put 'put ''cm9sbGluZzp0b3VjaH0uaGFuZHNvbnRhYmxlLm1vYmlsZSAuaGFuZHNvbnRhYmxlSW5wdXQ6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAycHggIzUyOTJmNyBpbnNldDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0udG9wU2VsZWN0aW9uSGFuZGxlOm5vdCguaHRfbWFzdGVyIC50b3BTZWxlY3Rp''@;'; + put 'put ''b25IYW5kbGUpLC50b3BTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYTpub3QoLmh0X21hc3RlciAudG9wU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWEpe3otaW5kZXg6OTk5OX0uaGFuZHNvbnRhYmxlIC50b3BTZWxlY3Rpb25IYW5kbGUsLmhhbmRzb250YWJsZSAudG9wU2VsZWN0aW9uSGFuZGxlLUhp''@;'; + put 'put ''dEFyZWEsLmhhbmRzb250YWJsZSAuYm90dG9tU2VsZWN0aW9uSGFuZGxlLC5oYW5kc29udGFibGUgLmJvdHRvbVNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhe2xlZnQ6LTEwMDAwcHg7cmlnaHQ6dW5zZXQ7dG9wOi0xMDAwMHB4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLnRvcFNlbGVjdGlvbkhh''@;'; + put 'put ''bmRsZSxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC50b3BTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5ib3R0b21TZWxlY3Rpb25IYW5kbGUsW2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuYm90dG9tU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWF7cmlnaHQ6LTEw''@;'; + put 'put ''MDAwcHg7bGVmdDp1bnNldH0uaGFuZHNvbnRhYmxlLmhpZGUtdHdlZW57YW5pbWF0aW9uOm9wYWNpdHktaGlkZSAuM3M7YW5pbWF0aW9uLWZpbGwtbW9kZTpmb3J3YXJkczstd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHN9LmhhbmRzb250YWJsZS5zaG93LXR3ZWVue2FuaW1h''@;'; + put 'put ''dGlvbjpvcGFjaXR5LXNob3cgLjNzO2FuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHM7LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzfS8qIQogKiBQaWthZGF5CiAqIENvcHlyaWdodCDCqSAyMDE0IERhdmlkIEJ1c2hlbGwgfCBCU0QgJiBNSVQgbGljZW5zZSB8IGh0dHBz''@;'; + put 'put ''Oi8vZGJ1c2hlbGwuY29tLwogKi8ucGlrYS1zaW5nbGV7ei1pbmRleDo5OTk5O2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Y29sb3I6IzMzMztiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci1ib3R0b20tY29sb3I6I2JiYjtmb250LWZhbWlseTpI''@;'; + put 'put ''ZWx2ZXRpY2EgTmV1ZSxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZn0ucGlrYS1zaW5nbGU6YmVmb3JlLC5waWthLXNpbmdsZTphZnRlcntjb250ZW50OiIgIjtkaXNwbGF5OnRhYmxlfS5waWthLXNpbmdsZTphZnRlcntjbGVhcjpib3RofS5waWthLXNpbmdsZS5pcy1oaWRkZW57ZGlzcGxh''@;'; + put 'put ''eTpub25lfS5waWthLXNpbmdsZS5pcy1ib3VuZHtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2hhZG93OjAgNXB4IDE1cHggLTVweCAjMDAwMDAwODB9LnBpa2EtbGVuZGFye2Zsb2F0OmxlZnQ7d2lkdGg6MjQwcHg7bWFyZ2luOjhweH0ucGlrYS10aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0''@;'; + put 'put ''LWFsaWduOmNlbnRlcn0ucGlrYS1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTk7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowO3BhZGRpbmc6NXB4IDNweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtd2VpZ2h0Ojcw''@;'; + put 'put ''MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnBpa2EtdGl0bGUgc2VsZWN0e2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6OTk5ODttYXJnaW46MDtsZWZ0OjA7dG9wOjVweDtvcGFjaXR5OjB9LnBpa2EtcHJldiwucGlrYS1uZXh0e2Rpc3BsYXk6YmxvY2s7Y3Vyc29y''@;'; + put 'put ''OnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmU7b3V0bGluZTpub25lO2JvcmRlcjowO3BhZGRpbmc6MDt3aWR0aDoyMHB4O2hlaWdodDozMHB4O3RleHQtaW5kZW50OjIwcHg7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2Jh''@;'; + put 'put ''Y2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjc1JSA3NSU7b3BhY2l0eTouNX0ucGlrYS1wcmV2OmhvdmVyLC5waWthLW5leHQ6aG92ZXJ7b3BhY2l0eToxfS5waWthLXByZXYsLmlzLXJ0bCAucGlrYS1u''@;'; + put 'put ''ZXh0e2Zsb2F0OmxlZnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCUUFBQUFlQ0FZQUFBQXNFajVyQUFBQVVrbEVRVlI0MnUzVk1Rb0FJQkFEUWY4UGdqK09EOWhHMkN0T05KQjJ5bVFrS2UwSGJ3QVAweHVjRGlR''@;'; + put 'put ''V0FSSVRJREVCRW5NZ01ROFM4K0FxQklsNmtLZ0hpWHFRcUFlSmVwQm8vejM4Si9VMHVBSGxhQmtCbDlJNEd3QUFBQUJKUlU1RXJrSmdnZz09KX0ucGlrYS1uZXh0LC5pcy1ydGwgLnBpa2EtcHJldntmbG9hdDpyaWdodDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNl''@;'; + put 'put ''NjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJRQUFBQWVDQVlBQUFBc0VqNXJBQUFBVTBsRVFWUjQydTNWT3dvQU1BZ0UwZHdmQW5OalUyNmJZa0JDRkd3ZmlMOVZWV29PK0JKNEdmM2d0c0VLS29GQk5UQ29DQVlWd2FBaUdOUUdNVUhNa2pHYmdqazJtSU9OdVhvMG5DOFhuQ2YxSlhnQXJW''@;'; + put 'put ''SVpBUWg1VEtZQUFBQUFTVVZPUks1Q1lJST0pfS5waWthLXByZXYuaXMtZGlzYWJsZWQsLnBpa2EtbmV4dC5pcy1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdDtvcGFjaXR5Oi4yfS5waWthLXNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9ja30ucGlrYS10YWJsZXt3aWR0aDoxMDAlO2JvcmRlci1j''@;'; + put 'put ''b2xsYXBzZTpjb2xsYXBzZTtib3JkZXItc3BhY2luZzowO2JvcmRlcjowfS5waWthLXRhYmxlIHRoLC5waWthLXRhYmxlIHRke3dpZHRoOjE0LjI4NTcxNDI4NTclO3BhZGRpbmc6MH0ucGlrYS10YWJsZSB0aHtjb2xvcjojOTk5O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjI1cHg7Zm9u''@;'; + put 'put ''dC13ZWlnaHQ6NzAwO3RleHQtYWxpZ246Y2VudGVyfS5waWthLWJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtvdXRsaW5lOm5vbmU7Ym9yZGVyOjA7bWFyZ2luOjA7d2lkdGg6MTAwJTtw''@;'; + put 'put ''YWRkaW5nOjVweDtjb2xvcjojNjY2O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE1cHg7dGV4dC1hbGlnbjpyaWdodDtiYWNrZ3JvdW5kOiNmNWY1ZjU7aGVpZ2h0OmluaXRpYWx9LnBpa2Etd2Vla3tmb250LXNpemU6MTFweDtjb2xvcjojOTk5fS5pcy10b2RheSAucGlrYS1idXR0b257''@;'; + put 'put ''Y29sb3I6IzNhZjtmb250LXdlaWdodDo3MDB9LmlzLXNlbGVjdGVkIC5waWthLWJ1dHRvbiwuaGFzLWV2ZW50IC5waWthLWJ1dHRvbntjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjcwMDtiYWNrZ3JvdW5kOiMzM2FhZmY7Ym94LXNoYWRvdzppbnNldCAwIDFweCAzcHggIzE3OGZlNTtib3JkZXIt''@;'; + put 'put ''cmFkaXVzOjNweH0uaGFzLWV2ZW50IC5waWthLWJ1dHRvbntiYWNrZ3JvdW5kOiMwMDVkYTk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAzcHggIzAwNzZjOX0uaXMtZGlzYWJsZWQgLnBpa2EtYnV0dG9uLC5pcy1pbnJhbmdlIC5waWthLWJ1dHRvbntiYWNrZ3JvdW5kOiNENUU5Rjd9LmlzLXN0''@;'; + put 'put ''YXJ0cmFuZ2UgLnBpa2EtYnV0dG9ue2NvbG9yOiNmZmY7YmFja2dyb3VuZDojNkNCMzFEO2JveC1zaGFkb3c6bm9uZTtib3JkZXItcmFkaXVzOjNweH0uaXMtZW5kcmFuZ2UgLnBpa2EtYnV0dG9ue2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMzNhYWZmO2JveC1zaGFkb3c6bm9uZTtib3JkZXIt''@;'; + put 'put ''cmFkaXVzOjNweH0uaXMtZGlzYWJsZWQgLnBpa2EtYnV0dG9ue3BvaW50ZXItZXZlbnRzOm5vbmU7Y3Vyc29yOmRlZmF1bHQ7Y29sb3I6Izk5OTtvcGFjaXR5Oi4zfS5pcy1vdXRzaWRlLWN1cnJlbnQtbW9udGggLnBpa2EtYnV0dG9ue2NvbG9yOiM5OTk7b3BhY2l0eTouM30uaXMtc2VsZWN0''@;'; + put 'put ''aW9uLWRpc2FibGVke3BvaW50ZXItZXZlbnRzOm5vbmU7Y3Vyc29yOmRlZmF1bHR9LnBpa2EtYnV0dG9uOmhvdmVyLC5waWthLXJvdy5waWNrLXdob2xlLXdlZWs6aG92ZXIgLnBpa2EtYnV0dG9ue2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZmY4MDAwO2JveC1zaGFkb3c6bm9uZTtib3JkZXIt''@;'; + put 'put ''cmFkaXVzOjNweH0ucGlrYS10YWJsZSBhYmJye2JvcmRlci1ib3R0b206bm9uZTtjdXJzb3I6aGVscH0uaGFuZHNvbnRhYmxlIC5odEF1dG9jb21wbGV0ZUFycm93e2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiNlZWU7Y3Vyc29yOmRlZmF1bHQ7d2lkdGg6MTZweDt0ZXh0LWFs''@;'; + put 'put ''aWduOmNlbnRlcn1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odEF1dG9jb21wbGV0ZUFycm93e2Zsb2F0OmxlZnR9LmhhbmRzb250YWJsZSB0ZCAuaHRBdXRvY29tcGxldGVBcnJvdzpob3Zlcntjb2xvcjojNzc3fS5oYW5kc29udGFibGUgdGQuYXJlYSAuaHRBdXRvY29tcGxldGVBcnJvd3tj''@;'; + put 'put ''b2xvcjojZDNkM2QzfS5oYW5kc29udGFibGUgLmh0Q2hlY2tib3hSZW5kZXJlcklucHV0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oYW5kc29udGFibGUgLmh0Q2hlY2tib3hSZW5kZXJlcklucHV0Lm5vVmFsdWV7b3BhY2l0eTouNX0uaGFuZHNvbnRhYmxlIC5odENoZWNrYm94UmVuZGVyZXJM''@;'; + put 'put ''YWJlbHtmb250LXNpemU6aW5oZXJpdDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhhbmRzb250YWJsZSAuaHRDaGVja2JveFJlbmRlcmVyTGFiZWwuZnVsbFdpZHRoe3dpZHRoOjEwMCV9LmhhbmRzb250YWJsZSAuaHRDb21tZW50''@;'; + put 'put ''Q2VsbHtwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlIC5odENvbW1lbnRDZWxsOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtsZWZ0OnVuc2V0O2JvcmRlci1sZWZ0OjZweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6bm9uZTti''@;'; + put 'put ''b3JkZXItdG9wOjZweCBzb2xpZCBibGFja31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odENvbW1lbnRDZWxsOmFmdGVye2xlZnQ6MDtyaWdodDp1bnNldDtib3JkZXItcmlnaHQ6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0Om5vbmV9Lmh0Q29tbWVudHNDb250YWluZXIgLmh0''@;'; + put 'put ''Q29tbWVudHN7ZGlzcGxheTpub25lO3otaW5kZXg6MTA1OTtwb3NpdGlvbjphYnNvbHV0ZX0uaHRDb21tZW50c0NvbnRhaW5lciAuaHRDb21tZW50VGV4dEFyZWF7Ym94LXNoYWRvdzojMDAwMDAwMWUgMCAxcHggM3B4LCMwMDAwMDAzZCAwIDFweCAycHg7Ym94LXNpemluZzpib3JkZXItYm94''@;'; + put 'put ''O2JvcmRlcjpub25lO2JvcmRlci1sZWZ0OjNweCBzb2xpZCAjY2NjO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6I2ZmZjt3aWR0aDoyMTVweDtoZWlnaHQ6OTBweDtmb250LXNpemU6MTJweDtwYWRkaW5nOjVweDtvdXRsaW5lOjBweCFpbXBvcnRhbnQ7LXdlYmtpdC1hcHBl''@;'; + put 'put ''YXJhbmNlOm5vbmV9W2Rpcj1ydGxdLmh0Q29tbWVudHNDb250YWluZXIgLmh0Q29tbWVudFRleHRBcmVhe2JvcmRlci1yaWdodDozcHggc29saWQgI2NjYztib3JkZXItbGVmdDpub25lfS5odENvbW1lbnRzQ29udGFpbmVyIC5odENvbW1lbnRUZXh0QXJlYTpmb2N1c3tib3gtc2hhZG93OiMw''@;'; + put 'put ''MDAwMDAxZSAwIDFweCAzcHgsIzAwMDAwMDNkIDAgMXB4IDJweCxpbnNldCAwIDAgMCAxcHggIzUyOTJmNztib3JkZXItbGVmdDozcHggc29saWQgIzUyOTJmNztib3JkZXItcmlnaHQ6bm9uZX1bZGlyPXJ0bF0uaHRDb21tZW50c0NvbnRhaW5lciAuaHRDb21tZW50VGV4dEFyZWE6Zm9jdXN7''@;'; + put 'put ''Ym9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjNTI5MmY3O2JvcmRlci1sZWZ0Om5vbmV9LyohCiAqIEhhbmRzb250YWJsZSBDb250ZXh0TWVudQogKi8uaHRDb250ZXh0TWVudTpub3QoLmh0R2hvc3RUYWJsZSl7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA2MH0uaHRD''@;'; + put 'put ''b250ZXh0TWVudSAuaHRfY2xvbmVfdG9wLC5odENvbnRleHRNZW51IC5odF9jbG9uZV9ib3R0b20sLmh0Q29udGV4dE1lbnUgLmh0X2Nsb25lX2lubGluZV9zdGFydCwuaHRDb250ZXh0TWVudSAuaHRfY2xvbmVfdG9wX2lubGluZV9zdGFydF9jb3JuZXIsLmh0Q29udGV4dE1lbnUgLmh0X2Ns''@;'; + put 'put ''b25lX2JvdHRvbV9pbmxpbmVfc3RhcnRfY29ybmVye2Rpc3BsYXk6bm9uZX0uaHRDb250ZXh0TWVudSAuaHRfbWFzdGVyIHRhYmxlLmh0Q29yZXtib3JkZXItY29sb3I6I2NjYztib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7''@;'; + put 'put ''Ym9yZGVyLWxlZnQtd2lkdGg6MXB4O2JvcmRlci1yaWdodC13aWR0aDoycHh9W2Rpcj1ydGxdLmh0Q29udGV4dE1lbnUgLmh0X21hc3RlciB0YWJsZS5odENvcmV7Ym9yZGVyLXJpZ2h0LXdpZHRoOjFweDtib3JkZXItbGVmdC13aWR0aDoycHh9Lmh0Q29udGV4dE1lbnUgLnd0Qm9yZGVye3Zp''@;'; + put 'put ''c2liaWxpdHk6aGlkZGVufS5odENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRke2JhY2tncm91bmQ6d2hpdGU7Ym9yZGVyLXdpZHRoOjA7cGFkZGluZzo0cHggNnB4IDA7Y3Vyc29yOnBvaW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVs''@;'; + put 'put ''bGlwc2lzfS5odENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxke2JvcmRlci10b3Atd2lkdGg6MDtib3JkZXItYm90dG9tLXdpZHRoOjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQtd2lkdGg6MH1bZGlyPXJ0bF0uaHRDb250ZXh0TWVudSB0YWJsZSB0''@;'; + put 'put ''Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQtd2lkdGg6MDtib3JkZXItbGVmdC13aWR0aDowfS5odENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGltbWVke2ZvbnQtc3R5bGU6bm9ybWFsO2NvbG9yOiMzMjMyMzJ9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkg''@;'; + put 'put ''dHIgdGQuY3VycmVudCwuaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC56ZXJvY2xpcGJvYXJkLWlzLWhvdmVye2JhY2tncm91bmQ6I2YzZjNmM30uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odFNlcGFyYXRvcntib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlNmU2O2hl''@;'; + put 'put ''aWdodDowO3BhZGRpbmc6MDtjdXJzb3I6ZGVmYXVsdH0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odERpc2FibGVke2NvbG9yOiM5OTk7Y3Vyc29yOmRlZmF1bHR9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOiNm''@;'; + put 'put ''ZmY7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ci5odEhpZGRlbntkaXNwbGF5Om5vbmV9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6NnB4fS5o''@;'; + put 'put ''dENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRkIGRpdiBzcGFuLnNlbGVjdGVke21hcmdpbi10b3A6LTJweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjRweH0uaHRDb250ZXh0TWVudSAuaHRfbWFzdGVyIC53dEhvbGRlcntvdmVyZmxvdzpoaWRkZW59dGV4dGFyZWEuSGFuZHNvbnRhYmxl''@;'; + put 'put ''Q29weVBhc3Rle3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnQ7cmlnaHQ6MTAwJSFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6MDtvdXRsaW5lOjAgbm9uZSFpbXBvcnRhbnR9LyohCiAqIEhhbmRzb250YWJsZSBEcm9wZG93bk1lbnUKICovLmhhbmRz''@;'; + put 'put ''b250YWJsZSAuY2hhbmdlVHlwZXtiYWNrZ3JvdW5kOiNlZWU7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOjFweCBzb2xpZCAjYmJiO2NvbG9yOiNiYmI7Zm9udC1zaXplOjlweDtsaW5lLWhlaWdodDo5cHg7cGFkZGluZzoycHg7bWFyZ2luOjNweCAxcHggMCA1cHg7ZmxvYXQ6cmlnaHR9W2Rp''@;'; + put 'put ''cj1ydGxdLmhhbmRzb250YWJsZSAuY2hhbmdlVHlwZXtmbG9hdDpsZWZ0fS5oYW5kc29udGFibGUgLmNoYW5nZVR5cGU6YmVmb3Jle2NvbnRlbnQ6IlwyNWJjICAifS5oYW5kc29udGFibGUgLmNoYW5nZVR5cGU6aG92ZXJ7Ym9yZGVyOjFweCBzb2xpZCAjNzc3O2NvbG9yOiM3Nzc7Y3Vyc29y''@;'; + put 'put ''OnBvaW50ZXJ9Lmh0RHJvcGRvd25NZW51Om5vdCguaHRHaG9zdFRhYmxlKXtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDYwfS5odERyb3Bkb3duTWVudSAuaHRfY2xvbmVfdG9wLC5odERyb3Bkb3duTWVudSAuaHRfY2xvbmVfYm90dG9tLC5odERyb3Bkb3duTWVu''@;'; + put 'put ''dSAuaHRfY2xvbmVfaW5saW5lX3N0YXJ0LC5odERyb3Bkb3duTWVudSAuaHRfY2xvbmVfdG9wX2lubGluZV9zdGFydF9jb3JuZXIsLmh0RHJvcGRvd25NZW51IC5odF9jbG9uZV9ib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lcntkaXNwbGF5Om5vbmV9Lmh0RHJvcGRvd25NZW51IHRhYmxlLmh0''@;'; + put 'put ''Q29yZXtib3JkZXItY29sb3I6I2NjYztib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4O2JvcmRlci1yaWdodC13aWR0aDoycHh9W2Rpcj1ydGxdLmh0RHJvcGRvd25NZW51IHRhYmxlLmh0''@;'; + put 'put ''Q29yZXtib3JkZXItcmlnaHQtd2lkdGg6MXB4O2JvcmRlci1sZWZ0LXdpZHRoOjJweH0uaHREcm9wZG93bk1lbnUgLnd0Qm9yZGVye3Zpc2liaWxpdHk6aGlkZGVufS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZHtiYWNrZ3JvdW5kOndoaXRlO2JvcmRlci13aWR0aDowO3BhZGRp''@;'; + put 'put ''bmc6NHB4IDZweCAwO2N1cnNvcjpwb2ludGVyO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1yaWdodC13''@;'; + put 'put ''aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtib3JkZXItbGVmdC13aWR0aDowfVtkaXI9cnRsXS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowfS5odERyb3Bkb3duTWVudSB0YWJs''@;'; + put 'put ''ZSB0Ym9keSB0ciB0ZC5odERpbW1lZHtmb250LXN0eWxlOm5vcm1hbDtjb2xvcjojMzIzMjMyfS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5jdXJyZW50LC5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC56ZXJvY2xpcGJvYXJkLWlzLWhvdmVye2JhY2tncm91bmQ6''@;'; + put 'put ''I2U5ZTllOX0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHRTZXBhcmF0b3J7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U2ZTZlNjtoZWlnaHQ6MDtwYWRkaW5nOjA7Y3Vyc29yOmRlZmF1bHR9Lmh0RHJvcGRvd25NZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGlzYWJsZWR7Y29s''@;'; + put 'put ''b3I6Izk5OX0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0uaHREcm9wZG93bk1lbnU6bm90KC5odEdob3N0VGFibGUpIHRhYmxlIHRib2R5IHRyLmh0SGlkZGVue2Rpc3Bs''@;'; + put 'put ''YXk6bm9uZX0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweH0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQgZGl2IHNwYW4uc2VsZWN0ZWR7bWFyZ2luLXRvcDotMnB4O3Bvc2l0''@;'; + put 'put ''aW9uOmFic29sdXRlO2xlZnQ6NHB4fS5odERyb3Bkb3duTWVudSAuaHRfbWFzdGVyIC53dEhvbGRlcntvdmVyZmxvdzpoaWRkZW59LyohCiAqIEhhbmRzb250YWJsZSBGaWx0ZXJzCiAqLy5odEZpbHRlcnNDb25kaXRpb25zTWVudTpub3QoLmh0R2hvc3RUYWJsZSl7ZGlzcGxheTpub25lO3Bv''@;'; + put 'put ''c2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA3MH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLmh0X2Nsb25lX3RvcCwuaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLmh0X2Nsb25lX2lubGluZV9zdGFydCwuaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLmh0X2Nsb25lX2Nvcm5lcntkaXNwbGF5''@;'; + put 'put ''Om5vbmV9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlLmh0Q29yZXtib3JkZXI6MXB4IHNvbGlkICNiYmI7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7Ym9yZGVyLXJpZ2h0LXdpZHRoOjJweH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLnd0Qm9yZGVye3Zpc2liaWxpdHk6aGlkZGVu''@;'; + put 'put ''fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZHtiYWNrZ3JvdW5kOndoaXRlO2JvcmRlci13aWR0aDowO3BhZGRpbmc6NHB4IDZweCAwO2N1cnNvcjpwb2ludGVyO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNp''@;'; + put 'put ''c30uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtib3JkZXItbGVmdC13aWR0aDowfVtkaXI9cnRsXS5odEZpbHRlcnNDb25kaXRp''@;'; + put 'put ''b25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowfS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odERpbW1lZHtmb250LXN0eWxlOm5vcm1hbDtjb2xvcjojMzIzMjMyfS5o''@;'; + put 'put ''dEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5jdXJyZW50LC5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC56ZXJvY2xpcGJvYXJkLWlzLWhvdmVye2JhY2tncm91bmQ6I2U5ZTllOX0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUg''@;'; + put 'put ''dGJvZHkgdHIgdGQuaHRTZXBhcmF0b3J7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U2ZTZlNjtoZWlnaHQ6MDtwYWRkaW5nOjB9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGlzYWJsZWR7Y29sb3I6Izk5OX0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFi''@;'; + put 'put ''bGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBw''@;'; + put 'put ''eH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUgdGJvZHkgdHIgdGQgZGl2IHNwYW4uc2VsZWN0ZWR7bWFyZ2luLXRvcDotMnB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NHB4fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSAuaHRfbWFzdGVyIC53dEhvbGRlcntvdmVyZmxvdzpoaWRk''@;'; + put 'put ''ZW59LmhhbmRzb250YWJsZSAuaHRNZW51RmlsdGVyaW5ne2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjY2NjO2hlaWdodDoxMzVweDtvdmVyZmxvdzpoaWRkZW59LmhhbmRzb250YWJsZSAuaHRfbWFzdGVyIHRhYmxlIHRkLmh0Q3VzdG9tTWVudVJlbmRlcmVye2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''I2ZmZjtjdXJzb3I6YXV0b30uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51TGFiZWx7Zm9udC1zaXplOi43NWVtfS5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVBY3Rpb25CYXJ7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZy10b3A6MTBweDtwYWRkaW5nLWJvdHRvbTozcHh9LmhhbmRz''@;'; + put 'put ''b250YWJsZSAuaHRGaWx0ZXJzTWVudUNvbmRpdGlvbi5ib3JkZXJ7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkICNjY2MhaW1wb3J0YW50fS5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVDb25kaXRpb24gLmh0VUlJbnB1dHtwYWRkaW5nOjAgMCA1cHh9LmhhbmRzb250YWJsZSAuaHRGaWx0''@;'; + put 'put ''ZXJzTWVudVZhbHVle2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjY2NjIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51VmFsdWUgLmh0VUlNdWx0aXBsZVNlbGVjdFNlYXJjaHtwYWRkaW5nOjB9LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudUNvbmRpdGlvbiAuaHRV''@;'; + put 'put ''SUlucHV0IGlucHV0LC5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVWYWx1ZSAuaHRVSU11bHRpcGxlU2VsZWN0U2VhcmNoIGlucHV0e2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOi43NWVtO3BhZGRpbmc6NHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlfS5odFVJ''@;'; + put 'put ''TXVsdGlwbGVTZWxlY3QgLmh0X21hc3RlciAud3RIb2xkZXJ7b3ZlcmZsb3cteTpzY3JvbGx9LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzQWN0aXZlIC5jaGFuZ2VUeXBle2JvcmRlcjoxcHggc29saWQgIzUwOTI3Mjtjb2xvcjojMTg4MDRlO2JhY2tncm91bmQtY29sb3I6I2QyZTBkOX0uaGFu''@;'; + put 'put ''ZHNvbnRhYmxlIC5odFVJU2VsZWN0QWxse21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjEwcHh9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdEFsbHttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDoxMHB4fS5oYW5kc29udGFibGUgLmh0VUlDbGVhckFsbCwuaGFuZHNvbnRh''@;'; + put 'put ''YmxlIC5odFVJU2VsZWN0QWxse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oYW5kc29udGFibGUgLmh0VUlDbGVhckFsbCBhLC5oYW5kc29udGFibGUgLmh0VUlTZWxlY3RBbGwgYXtmb250LXNpemU6Ljc1ZW19LmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdGlvbkNvbnRyb2xze3RleHQtYWxpZ246''@;'; + put 'put ''cmlnaHR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdGlvbkNvbnRyb2xze3RleHQtYWxpZ246bGVmdH0uaGFuZHNvbnRhYmxlIC5odENoZWNrYm94UmVuZGVyZXJJbnB1dHttYXJnaW46MCA1cHggMCAwO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtoZWlnaHQ6MWVtfVtkaXI9cnRs''@;'; + put 'put ''XS5oYW5kc29udGFibGUgLmh0Q2hlY2tib3hSZW5kZXJlcklucHV0e21hcmdpbi1sZWZ0OjVweDttYXJnaW4tcmlnaHQ6MH0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXR7cGFkZGluZzozcHggMCA3cHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXJ9LmhhbmRzb250YWJsZSAu''@;'; + put 'put ''aHRVSUlucHV0IGlucHV0e2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjoxcHggc29saWQgI2QyZDFkMX0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQgaW5wdXQ6Zm9jdXN7b3V0bGluZTowfS5oYW5kc29udGFibGUgLmh0VUlJbnB1dEljb257cG9zaXRpb246YWJzb2x1dGV9LmhhbmRzb250YWJs''@;'; + put 'put ''ZSAuaHRVSUlucHV0Lmh0VUlCdXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhhbmRzb250YWJsZSAuaHRVSUlucHV0Lmh0VUlCdXR0b24gaW5wdXR7YmFja2dyb3VuZC1jb2xvcjojZWVlO2NvbG9yOiMwMDA7Y3Vyc29yOnBvaW50ZXI7Zm9udC1mYW1pbHk6aW5o''@;'; + put 'put ''ZXJpdDtmb250LXNpemU6Ljc1ZW07Zm9udC13ZWlnaHQ6NzAwO2hlaWdodDoxOXB4O21pbi13aWR0aDo2NHB4fS5oYW5kc29udGFibGUgLmh0VUlJbnB1dC5odFVJQnV0dG9uIGlucHV0OmhvdmVye2JvcmRlci1jb2xvcjojYjliOWI5fS5oYW5kc29udGFibGUgLmh0VUlJbnB1dC5odFVJQnV0''@;'; + put 'put ''dG9uT0t7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MTBweH1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbk9Le21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjEwcHh9LmhhbmRzb250YWJsZSAuaHRVSUlucHV0Lmh0VUlCdXR0b25PSyBpbnB1dHtiYWNr''@;'; + put 'put ''Z3JvdW5kLWNvbG9yOiMwZjlkNTg7Ym9yZGVyLWNvbG9yOiMxODgwNGU7Y29sb3I6I2ZmZn0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbk9LIGlucHV0OmhvdmVye2JvcmRlci1jb2xvcjojMWE2ZjQ2fS5oYW5kc29udGFibGUgLmh0VUlTZWxlY3R7Y3Vyc29yOnBvaW50ZXI7''@;'; + put 'put ''bWFyZ2luLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmV9LmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdENhcHRpb257YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjoxcHggc29saWQgI2QyZDFkMTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6''@;'; + put 'put ''ZTouNzVlbTtmb250LXdlaWdodDo3MDA7cGFkZGluZzozcHggMjBweCAzcHggMTBweDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59LmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdENhcHRpb246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjoj''@;'; + put 'put ''ZThlOGU4O2JvcmRlcjoxcHggc29saWQgI2I5YjliOX0uaGFuZHNvbnRhYmxlIC5odFVJU2VsZWN0RHJvcGRvd246YWZ0ZXJ7Y29udGVudDoiXDI1YjIiO2ZvbnQtc2l6ZTo3cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDt0b3A6MH0uaGFuZHNvbnRhYmxlIC5odFVJU2VsZWN0RHJv''@;'; + put 'put ''cGRvd246YmVmb3Jle2NvbnRlbnQ6IlwyNWJjIjtmb250LXNpemU6N3B4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwcHg7dG9wOjhweH0uaGFuZHNvbnRhYmxlIC5odFVJTXVsdGlwbGVTZWxlY3QgLmhhbmRzb250YWJsZSAuaHRDb3Jle2JvcmRlcjpub25lfS5oYW5kc29udGFibGUgLmh0''@;'; + put 'put ''VUlNdWx0aXBsZVNlbGVjdCAuaGFuZHNvbnRhYmxlIC5odENvcmUgdGQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1fS5oYW5kc29udGFibGUgLmh0VUlNdWx0aXBsZVNlbGVjdFNlYXJjaCBpbnB1dHtib3JkZXItcmFkaXVzOjJweDtib3JkZXI6MXB4IHNvbGlkICNkMmQxZDE7cGFk''@;'; + put 'put ''ZGluZzozcHh9LmhhbmRzb250YWJsZSAuaHRVSVJhZGlve2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjVweDtoZWlnaHQ6MTAwJX1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFVJUmFkaW97bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6NXB4fS5o''@;'; + put 'put ''YW5kc29udGFibGUgLmh0VUlSYWRpbzpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5oYW5kc29udGFibGUgLmh0VUlSYWRpbz5pbnB1dFt0eXBlPXJhZGlvXXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDouNWV4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmh0VUlSYWRpbz5pbnB1dFt0''@;'; + put 'put ''eXBlPXJhZGlvXXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDouNWV4fS5oYW5kc29udGFibGUgLmh0VUlSYWRpbyBsYWJlbHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudU9wZXJhdG9yc3twYWRkaW5nLWJvdHRvbTo1cHh9LmhhbmRzb250YWJs''@;'; + put 'put ''ZSB0aC5iZWZvcmVIaWRkZW5Db2x1bW57cG9zaXRpb246cmVsYXRpdmV9LmhhbmRzb250YWJsZSB0aC5iZWZvcmVIaWRkZW5Db2x1bW46YWZ0ZXIsLmhhbmRzb250YWJsZSB0aC5hZnRlckhpZGRlbkNvbHVtbjpiZWZvcmV7Y29sb3I6I2JiYjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2Zv''@;'; + put 'put ''bnQtc2l6ZTo1cHQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LmhhbmRzb250YWJsZSB0aC5hZnRlckhpZGRlbkNvbHVtbntwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlIHRoLmJlZm9yZUhpZGRlbkNvbHVtbjphZnRlcntyaWdodDoxcHg7Y29udGVudDoiXDI1YzAifVtkaXI9''@;'; + put 'put ''cnRsXS5oYW5kc29udGFibGUgdGguYmVmb3JlSGlkZGVuQ29sdW1uOmFmdGVye3JpZ2h0OmluaXRpYWw7bGVmdDoxcHg7Y29udGVudDoiXDI1YjYifS5oYW5kc29udGFibGUgdGguYWZ0ZXJIaWRkZW5Db2x1bW46YmVmb3Jle2xlZnQ6MXB4O2NvbnRlbnQ6IlwyNWI2In1bZGlyPXJ0bF0uaGFu''@;'; + put 'put ''ZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuQ29sdW1uOmJlZm9yZXtyaWdodDoxcHg7bGVmdDppbml0aWFsO2NvbnRlbnQ6IlwyNWMwIn0vKiEKICogSGFuZHNvbnRhYmxlIEhpZGRlblJvd3MKICovLmhhbmRzb250YWJsZSB0aC5iZWZvcmVIaWRkZW5Sb3c6YmVmb3JlLC5oYW5kc29udGFibGUg''@;'; + put 'put ''dGguYWZ0ZXJIaWRkZW5Sb3c6YWZ0ZXJ7Y29sb3I6I2JiYjtmb250LXNpemU6NnB0O2xpbmUtaGVpZ2h0OjZwdDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjJweH0uaGFuZHNvbnRhYmxlIHRoLmJlZm9yZUhpZGRlblJvdywuaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuUm93e3Bvc2l0aW9u''@;'; + put 'put ''OnJlbGF0aXZlfS5oYW5kc29udGFibGUgdGguYmVmb3JlSGlkZGVuUm93OmJlZm9yZXtjb250ZW50OiJcMjViMiI7Ym90dG9tOjJweH0uaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuUm93OmFmdGVye2NvbnRlbnQ6IlwyNWJjIjt0b3A6MnB4fS5oYW5kc29udGFibGUuaHRfX3NlbGVjdGlv''@;'; + put 'put ''bi0tcm93cyB0Ym9keSB0aC5iZWZvcmVIaWRkZW5Sb3cuaHRfX2hpZ2hsaWdodDpiZWZvcmUsLmhhbmRzb250YWJsZS5odF9fc2VsZWN0aW9uLS1yb3dzIHRib2R5IHRoLmFmdGVySGlkZGVuUm93Lmh0X19oaWdobGlnaHQ6YWZ0ZXJ7Y29sb3I6I2VlZX0uaGFuZHNvbnRhYmxlIHRkLmFmdGVy''@;'; + put 'put ''SGlkZGVuUm93LmZpcnN0VmlzaWJsZVJvdywuaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuUm93LmZpcnN0VmlzaWJsZVJvd3tib3JkZXItdG9wOjFweCBzb2xpZCAjQ0NDfS5odFJvd0hlYWRlcnMgLmh0X21hc3Rlci5pbm5lckJvcmRlcklubGluZVN0YXJ0fi5odF9jbG9uZV90b3BfaW5s''@;'; + put 'put ''aW5lX3N0YXJ0X2Nvcm5lciB0aDpudGgtY2hpbGQoMiksLmh0Um93SGVhZGVycyAuaHRfbWFzdGVyLmlubmVyQm9yZGVySW5saW5lU3RhcnR+Lmh0X2Nsb25lX2lubGluZV9zdGFydCB0ZDpmaXJzdC1vZi10eXBle2JvcmRlci1sZWZ0OjAgbm9uZX0uaGFuZHNvbnRhYmxlLmh0X19tYW51YWxD''@;'; + put 'put ''b2x1bW5Nb3ZlLmFmdGVyLXNlbGVjdGlvbi0tY29sdW1ucyB0aGVhZCB0aC5odF9faGlnaGxpZ2h0e2N1cnNvcjptb3ZlO2N1cnNvcjpncmFifS5oYW5kc29udGFibGUuaHRfX21hbnVhbENvbHVtbk1vdmUub24tbW92aW5nLS1jb2x1bW5zLC5oYW5kc29udGFibGUuaHRfX21hbnVhbENvbHVt''@;'; + put 'put ''bk1vdmUub24tbW92aW5nLS1jb2x1bW5zIHRoZWFkIHRoLmh0X19oaWdobGlnaHR7Y3Vyc29yOm1vdmU7Y3Vyc29yOmdyYWJiaW5nfS5oYW5kc29udGFibGUuaHRfX21hbnVhbENvbHVtbk1vdmUub24tbW92aW5nLS1jb2x1bW5zIC5tYW51YWxDb2x1bW5SZXNpemVye2Rpc3BsYXk6bm9uZX0u''@;'; + put 'put ''aGFuZHNvbnRhYmxlIC5odF9fbWFudWFsQ29sdW1uTW92ZS0tZ3VpZGVsaW5lLC5oYW5kc29udGFibGUgLmh0X19tYW51YWxDb2x1bW5Nb3ZlLS1iYWNrbGlnaHR7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7ZGlzcGxheTpub25lfS5oYW5kc29udGFibGUgLmh0X19tYW51YWxDb2x1''@;'; + put 'put ''bW5Nb3ZlLS1ndWlkZWxpbmV7YmFja2dyb3VuZDojNzU3NTc1O3dpZHRoOjJweDt0b3A6MDttYXJnaW4taW5saW5lLXN0YXJ0Oi0xcHg7bWFyZ2luLWlubGluZS1lbmQ6MDt6LWluZGV4OjIwNX0uaGFuZHNvbnRhYmxlIC5odF9fbWFudWFsQ29sdW1uTW92ZS0tYmFja2xpZ2h0e2JhY2tncm91''@;'; + put 'put ''bmQ6IzM0MzQzNDtiYWNrZ3JvdW5kOnJnYmEoNTIsNTIsNTIsLjI1KTtkaXNwbGF5Om5vbmU7ei1pbmRleDoyMDU7cG9pbnRlci1ldmVudHM6bm9uZX0uaGFuZHNvbnRhYmxlLm9uLW1vdmluZy0tY29sdW1ucy5zaG93LXVpIC5odF9fbWFudWFsQ29sdW1uTW92ZS0tZ3VpZGVsaW5lLC5oYW5k''@;'; + put 'put ''c29udGFibGUub24tbW92aW5nLS1jb2x1bW5zIC5odF9fbWFudWFsQ29sdW1uTW92ZS0tYmFja2xpZ2h0e2Rpc3BsYXk6YmxvY2t9LmhhbmRzb250YWJsZSAud3RIaWRlcntwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlLmh0X19tYW51YWxSb3dNb3ZlLmFmdGVyLXNlbGVjdGlvbi0t''@;'; + put 'put ''cm93cyB0Ym9keSB0aC5odF9faGlnaGxpZ2h0e2N1cnNvcjptb3ZlO2N1cnNvcjpncmFifS5oYW5kc29udGFibGUuaHRfX21hbnVhbFJvd01vdmUub24tbW92aW5nLS1yb3dzLC5oYW5kc29udGFibGUuaHRfX21hbnVhbFJvd01vdmUub24tbW92aW5nLS1yb3dzIHRib2R5IHRoLmh0X19oaWdo''@;'; + put 'put ''bGlnaHR7Y3Vyc29yOm1vdmU7Y3Vyc29yOmdyYWJiaW5nfS5oYW5kc29udGFibGUuaHRfX21hbnVhbFJvd01vdmUub24tbW92aW5nLS1yb3dzIC5tYW51YWxSb3dSZXNpemVye2Rpc3BsYXk6bm9uZX0uaGFuZHNvbnRhYmxlIC5odF9fbWFudWFsUm93TW92ZS0tZ3VpZGVsaW5lLC5oYW5kc29u''@;'; + put 'put ''dGFibGUgLmh0X19tYW51YWxSb3dNb3ZlLS1iYWNrbGlnaHR7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtkaXNwbGF5Om5vbmV9LmhhbmRzb250YWJsZSAuaHRfX21hbnVhbFJvd01vdmUtLWd1aWRlbGluZXtiYWNrZ3JvdW5kOiM3NTc1NzU7aGVpZ2h0OjJweDtsZWZ0OjA7bWFyZ2lu''@;'; + put 'put ''LXRvcDotMXB4O3otaW5kZXg6MjA1fS5oYW5kc29udGFibGUgLmh0X19tYW51YWxSb3dNb3ZlLS1iYWNrbGlnaHR7YmFja2dyb3VuZDojMzQzNDM0O2JhY2tncm91bmQ6cmdiYSg1Miw1Miw1MiwuMjUpO2Rpc3BsYXk6bm9uZTt6LWluZGV4OjIwNTtwb2ludGVyLWV2ZW50czpub25lfS5oYW5k''@;'; + put 'put ''c29udGFibGUub24tbW92aW5nLS1yb3dzLnNob3ctdWkgLmh0X19tYW51YWxSb3dNb3ZlLS1ndWlkZWxpbmUsLmhhbmRzb250YWJsZS5vbi1tb3ZpbmctLXJvd3MgLmh0X19tYW51YWxSb3dNb3ZlLS1iYWNrbGlnaHR7ZGlzcGxheTpibG9ja30uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3Nw''@;'; + put 'put ''YW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XTpub3QoW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbF0pOmJlZm9yZXtvcGFjaXR5OjB9LmhhbmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5''@;'; + put 'put ''U2VsZWN0ZWRNZXJnZWRDZWxsLW11bHRpcGxlXTpiZWZvcmV7b3BhY2l0eTouMX0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtMF06YmVmb3Jle29wYWNpdHk6LjF9Lmhh''@;'; + put 'put ''bmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsLTFdOmJlZm9yZXtvcGFjaXR5Oi4yfS5oYW5kc29udGFibGUgdGJvZHkgdGRbcm93c3Bhbl1bY2xhc3MqPWFyZWFdW2NsYXNzKj1o''@;'; + put 'put ''aWdobGlnaHRdW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbC0yXTpiZWZvcmV7b3BhY2l0eTouMjd9LmhhbmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsLTNdOmJlZm9y''@;'; + put 'put ''ZXtvcGFjaXR5Oi4zNX0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtNF06YmVmb3Jle29wYWNpdHk6LjQxfS5oYW5kc29udGFibGUgdGJvZHkgdGRbcm93c3Bhbl1bY2xh''@;'; + put 'put ''c3MqPWFyZWFdW2NsYXNzKj1oaWdobGlnaHRdW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbC01XTpiZWZvcmV7b3BhY2l0eTouNDd9LmhhbmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0ZWRN''@;'; + put 'put ''ZXJnZWRDZWxsLTZdOmJlZm9yZXtvcGFjaXR5Oi41NH0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtN106YmVmb3Jle29wYWNpdHk6LjU4fS5oYW5kc29udGFibGUgc3Bh''@;'; + put 'put ''bi5jb2xIZWFkZXIuY29sdW1uU29ydGluZzphZnRlcnt0b3A6NTAlO21hcmdpbi10b3A6LTJweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMTVweDtsZWZ0OnVuc2V0O3BhZGRpbmctbGVmdDo1cHg7cGFkZGluZy1yaWdodDp1bnNldDtmb250LXNpemU6OHB4O2hlaWdodDo4cHg7bGluZS1o''@;'; + put 'put ''ZWlnaHQ6MS4xO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nOmFmdGVye2xlZnQ6LTE1cHg7cmlnaHQ6dW5zZXQ7cGFkZGluZy1yaWdodDo1cHg7cGFkZGluZy1sZWZ0OnVuc2V0fS5oYW5kc29udGFi''@;'; + put 'put ''bGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZzphZnRlcnt0ZXh0LWRlY29yYXRpb246bm9uZX0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmdbY2xhc3NePXNvcnQtXTphZnRlciwuaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmdb''@;'; + put 'put ''Y2xhc3MqPSIgc29ydC0iXTphZnRlcntjb250ZW50OiIrIn0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuc29ydC0xOmFmdGVye2NvbnRlbnQ6IjEifS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZy5zb3J0LTI6YWZ0ZXJ7Y29udGVu''@;'; + put 'put ''dDoiMiJ9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLnNvcnQtMzphZnRlcntjb250ZW50OiIzIn0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuc29ydC00OmFmdGVye2NvbnRlbnQ6IjQifS5oYW5kc29udGFibGUgc3Bhbi5jb2xI''@;'; + put 'put ''ZWFkZXIuY29sdW1uU29ydGluZy5zb3J0LTU6YWZ0ZXJ7Y29udGVudDoiNSJ9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLnNvcnQtNjphZnRlcntjb250ZW50OiI2In0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuc29ydC03OmFm''@;'; + put 'put ''dGVye2NvbnRlbnQ6IjcifS5odEdob3N0VGFibGUgdGggZGl2IGJ1dHRvbi5jaGFuZ2VUeXBlK3NwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmc6bm90KC5pbmRpY2F0b3JEaXNhYmxlZCl7cGFkZGluZy1yaWdodDo1cHh9LmhhbmRzb250YWJsZSB0aGVhZCB0aC5oaWRkZW5IZWFkZXI6bm90''@;'; + put 'put ''KDpmaXJzdC1vZi10eXBlKXtkaXNwbGF5Om5vbmV9LmhhbmRzb250YWJsZSB0aC5odF9uZXN0aW5nTGV2ZWxze3RleHQtYWxpZ246bGVmdDtwYWRkaW5nLWxlZnQ6N3B4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGguaHRfbmVzdGluZ0xldmVsc3t0ZXh0LWFsaWduOnJpZ2h0O3BhZGRpbmct''@;'; + put 'put ''cmlnaHQ6N3B4fS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdMZXZlbHN7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMXB4O3JpZ2h0OnVuc2V0fVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdMZXZlbHN7cmlnaHQ6MTFw''@;'; + put 'put ''eDtsZWZ0OnVuc2V0fS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydCB0aCBkaXYuaHRfbmVzdGluZ0xldmVscywuaGFuZHNvbnRhYmxlLmlubmVyQm9yZGVySW5saW5lU3RhcnR+LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0xldmVsc3tyaWdodDoxMHB4O2xlZnQ6''@;'; + put 'put ''dW5zZXR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZS5pbm5lckJvcmRlcklubGluZVN0YXJ0IHRoIGRpdi5odF9uZXN0aW5nTGV2ZWxzLFtkaXI9cnRsXS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydH4uaGFuZHNvbnRhYmxlIHRoIGRpdi5odF9uZXN0aW5nTGV2ZWxze2xlZnQ6''@;'; + put 'put ''MTBweDtyaWdodDp1bnNldH0uaGFuZHNvbnRhYmxlIHRoIHNwYW4uaHRfbmVzdGluZ0xldmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oYW5kc29udGFibGUgdGggc3Bhbi5odF9uZXN0aW5nTGV2ZWxfZW1wdHl7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MXB4O2Zs''@;'; + put 'put ''b2F0OmxlZnR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSB0aCBzcGFuLmh0X25lc3RpbmdMZXZlbF9lbXB0eXtmbG9hdDpyaWdodH0uaGFuZHNvbnRhYmxlIHRoIHNwYW4uaHRfbmVzdGluZ0xldmVsOmFmdGVye2NvbnRlbnQ6IlwyNTEwIjtmb250LXNpemU6OXB4O2Rpc3BsYXk6aW5saW5lLWJs''@;'; + put 'put ''b2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JvdHRvbTozcHh9LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMnB4O2xlZnQ6dW5zZXQ7Y3Vyc29yOnBvaW50ZXJ9W2Rpcj1ydGxdLmhhbmRzb250''@;'; + put 'put ''YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbntsZWZ0Oi0ycHg7cmlnaHQ6dW5zZXR9LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbi5odF9uZXN0aW5nRXhwYW5kOmFmdGVye2NvbnRlbnQ6IisifS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdCdXR0b24uaHRf''@;'; + put 'put ''bmVzdGluZ0NvbGxhcHNlOmFmdGVye2NvbnRlbnQ6Ii0ifS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydCB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbiwuaGFuZHNvbnRhYmxlLmlubmVyQm9yZGVySW5saW5lU3RhcnR+LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1''@;'; + put 'put ''dHRvbntyaWdodDowO2xlZnQ6dW5zZXR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZS5pbm5lckJvcmRlcklubGluZVN0YXJ0IHRoIGRpdi5odF9uZXN0aW5nQnV0dG9uLFtkaXI9cnRsXS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydH4uaGFuZHNvbnRhYmxlIHRoIGRpdi5odF9u''@;'; + put 'put ''ZXN0aW5nQnV0dG9ue2xlZnQ6MDtyaWdodDp1bnNldH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OnRleHQtc2VjdXJpdHktZGlzYztzcmM6dXJsKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9ub3BwYS90ZXh0LXNlY3VyaXR5L21hc3Rlci9kaXN0L3RleHQtc2VjdXJpdHktZGlz''@;'; + put 'put ''Yy53b2ZmKX1ib2R5LGh0bWx7Zm9udC13ZWlnaHQ6NDAwIWltcG9ydGFudDtwYWRkaW5nOjA7bWFyZ2luOjB9Ym9keS5zaG91bGQtbG9naW4gY2xyLW1vZGFsLGh0bWwuc2hvdWxkLWxvZ2luIGNsci1tb2RhbHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fWJ1dHRvbjpmb2N1c3tvdXRsaW5lOm5v''@;'; + put 'put ''bmV9LnNsaWRlcntwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDozMjBweDttYXJnaW4tbGVmdDo3NXB4O21hcmdpbi10b3A6NzBweDtoZWlnaHQ6NXB4O292ZXJmbG93LXg6aGlkZGVufS5saW5le3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6LjQ7YmFja2dyb3VuZDojNzNENTQ0O3dpZHRoOjE1''@;'; + put 'put ''MCU7aGVpZ2h0OjVweH0uc3VibGluZXtwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiM3M0Q1NDQ7aGVpZ2h0OjVweH0uaW5je2FuaW1hdGlvbjppbmNyZWFzZSAycyBpbmZpbml0ZX0uZGVje2FuaW1hdGlvbjpkZWNyZWFzZSAycyAuNXMgaW5maW5pdGV9QGtleWZyYW1lcyBpbmNyZWFz''@;'; + put 'put ''ZXswJXtsZWZ0Oi01JTt3aWR0aDo1JX10b3tsZWZ0OjEzMCU7d2lkdGg6MTAwJX19QGtleWZyYW1lcyBkZWNyZWFzZXswJXtsZWZ0Oi04MCU7d2lkdGg6ODAlfXRve2xlZnQ6MTEwJTt3aWR0aDoxMCV9fS5hcHAtbG9hZGluZ3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjth''@;'; + put 'put ''bGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjEwMHZoO2JhY2tncm91bmQ6IzMxNDM1MTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ei1pbmRleDoyMDAwO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowfS53LTEwMHt3aWR0aDoxMDAlfS5tLTB7bWFyZ2luOjAhaW1w''@;'; + put 'put ''b3J0YW50fS5tdC0we21hcmdpbi10b3A6MH0ubXQtMTB7bWFyZ2luLXRvcDoxMHB4fS5tbC0xMHttYXJnaW4tbGVmdDoxMHB4fS5wLTB7cGFkZGluZzowfS5wYi0we3BhZGRpbmctYm90dG9tOjB9LmN1cnNvci1wb2ludGVye2N1cnNvcjpwb2ludGVyfS5wb2ludGVyLWV2ZW50cy1ub25le3Bv''@;'; + put 'put ''aW50ZXItZXZlbnRzOm5vbmV9LmZvbnQtYm9sZHtmb250LXdlaWdodDo3MDAhaW1wb3J0YW50fS5kLWZsZXh7ZGlzcGxheTpmbGV4fS5kLWNvbnRlbnRze2Rpc3BsYXk6Y29udGVudHN9LmRhdGFncmlkLWN1c3RvbS1mb290ZXIgLmRhdGFncmlkLW91dGVyLXdyYXBwZXJ7d2lkdGg6MTAwJX0u''@;'; + put 'put ''cHJvZ3Jlc1N0YXRpY3ttYXJnaW4tdG9wOi02cHghaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDt6LWluZGV4OjEwMDAwIWltcG9ydGFudH0ucHJvZ3Jlc3MsLnByb2dyZXNzLXN0YXRpY3tiYWNrZ3JvdW5kLWNvbG9yOiNmNWY2ZmU7Ym9yZGVyLXJhZGl1czowO2ZvbnQt''@;'; + put 'put ''c2l6ZTppbmhlcml0O2hlaWdodDo2cHg7bWFyZ2luOjA7bWF4LWhlaWdodDouNTgzMzMzcmVtO21pbi1oZWlnaHQ6LjE2NjY2N3JlbTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazt3aWR0aDpjYWxjKDEwMCUgLSA2M3B4KX0ucHJvZ3Jlc3MubG9vcDphZnRlcnthbmltYXRpb246Y2xy''@;'; + put 'put ''LXByb2dyZXNzLWxvb3BlciAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO2NvbnRlbnQ6IiAiO3RvcDouMTY2NjY3cmVtO2JvdHRvbTowO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6IzYwYjUxNTt3aWR0aDo3NSV9LmJhZGdlLXdhcm5p''@;'; + put 'put ''bmd7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9LmNvbnRlbnQtY29udGFpbmVyIC5jb250ZW50LWFyZWEgLmNhcmQtaGVhZGVyIGgze21hcmdpbi10b3A6MTBweH0ubW9kYWwtaGVhZGVyIC5jbG9zZSBjbHItaWNvbntkaXNwbGF5Om5vbmV9LnNob3ctY2xvc2UgLm1vZGFsLWhlYWRlciAuY2xvc2Ug''@;'; + put 'put ''Y2xyLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xOHB4O3JpZ2h0Oi0xMHB4fS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2Vye2JhY2tncm91bmQ6I0Q5NEIyRTtjb2xvcjojZmZmO2JvcmRlcjpub25lfS5jYXJkLWhlYWRlcntmb250LXdlaWdo''@;'; + put 'put ''dDozMDB9LnNlbGVjdCBzZWxlY3Q6Zm9jdXN7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzQ5NTk2NztiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdHJhbnNwYXJlbnQgOTUlLCM0OTVhNjcgMCkgbm8tcmVwZWF0fS5jbHItdHJlZW5vZGUtY2hpbGRyZW57bWFyZ2luLWxlZnQ6''@;'; + put 'put ''LjJyZW0haW1wb3J0YW50fS50YWJsZS1hY3RpdmV7YmFja2dyb3VuZDojZDhlM2U5IWltcG9ydGFudDtjb2xvcjojMDAwIWltcG9ydGFudH0udGFibGUtYWN0aXZlOmZvY3Vze2JhY2tncm91bmQ6I2Q4ZTNlOX1jbHItc2VsZWN0LWNvbnRhaW5lciAuY2xyLWNvbnRyb2wtY29udGFpbmVyLGNs''@;'; + put 'put ''ci1zZWxlY3QtY29udGFpbmVyIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1zZWxlY3Qtd3JhcHBlcixjbHItc2VsZWN0LWNvbnRhaW5lciBzZWxlY3R7d2lkdGg6MTAwJX10Ym9keXtmb250LXdlaWdodDo0MDB9aDMsaDR7Y29sb3I6IzU4NTg1ODtmb250LXdlaWdodDo0MDA7bGV0dGVy''@;'; + put 'put ''LXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjFyZW07bWFyZ2luLXRvcDoxcmVtO21hcmdpbi1ib3R0b206MH1oMSxoMntjb2xvcjojNTg1ODU4O2ZvbnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MnJlbTttYXJnaW4tdG9wOjFyZW07bWFyZ2luLWJv''@;'; + put 'put ''dHRvbTowfWNsci1pY29uLmlzLWluZm97ZmlsbDojODBiNDQxfS5kYXRhZ3JpZC1ob3N0LC5kYXRhZ3JpZC1vdmVybGF5LXdyYXBwZXJ7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtYm94IWltcG9ydGFudH0uYnRuLmJ0bi1kYW5nZXIsLmJ0bi5idG4td2FybmluZ3tib3Jk''@;'; + put 'put ''ZXItY29sb3I6I2VmNGYyZTtiYWNrZ3JvdW5kLWNvbG9yOiNkOTRiMmU7Y29sb3I6I2ZmZn0uZC1ub25le2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmQtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmhhbmRzb250YWJsZSAuaHRBdXRvY29tcGxldGVBcnJvd3tjb2xvcjojODI4Mjgy''@;'; + put 'put ''fS5oYW5kc29udGFibGUubGlzdGJveHtwYWRkaW5nOjVweCAwIDVweCA1cHg7Ym94LXNoYWRvdzowIDRweCAyMHB4ICMwMDAwMDA3MH0uaGFuZHNvbnRhYmxlIHRkLmh0SW52YWxpZHtiYWNrZ3JvdW5kOnJnYmEoMjMwLDM5LDAsLjY3ODQzMTM3MjUpIWltcG9ydGFudDtib3JkZXI6MXB4IHNv''@;'; + put 'put ''bGlkIHJlZCFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9Lm1hcmdpbi10b3AtMjB7bWFyZ2luLXRvcDoyMHB4fS5oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpey5kLW1kLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZC1t''@;'; + put 'put ''ZC1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fS5kLW1kLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmQtbWQtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmQtbWQtdGFibGV7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9LmQtbWQtdGFi''@;'; + put 'put ''bGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fS5kLW1kLWZsZXh7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uZC1tZC1pbmxpbmUtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4IWltcG9ydGFudH19LmRhdGFncmlkLWJvZHl7cGFkZGluZy1ib3R0b206MnJlbSFpbXBvcnRhbnR9''@;'; + put 'put ''LmFib3J0TXNne3doaXRlLXNwYWNlOnByZS13cmFwO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZX0jZ3JhcGggc3Zne2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lm5vLXRhYmxlLXNlbGVjdGVke2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjth''@;'; + put 'put ''bGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDp3aGl0ZTt6LWluZGV4OjEwO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjB9LmNvcHlSaWdodHtiYWNrZ3JvdW5kOiM0OTU5NjchaW1wb3J0YW50O2NvbG9yOiNmZmY7ZGlzcGxheTpmbGV4IWltcG9ydGFu''@;'; + put 'put ''dDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjVweCAwIDRweDt6LWluZGV4OjEwMH0ubmF2LXRyZWU+Y2xyLXRyZWUtbm9kZS5jbHItZXhwYW5kZWR7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fWNsci10cmVlLW5vZGV7b3ZlcmZsb3ct''@;'; + put 'put ''eTp2aXNpYmxlfWNsci10cmVlLW5vZGU6Zm9jdXN7b3V0bGluZTpub25lIWltcG9ydGFudH1jbHItdHJlZS1ub2RlIC5jbHItdHJlZW5vZGUtY2FyZXR7d2lkdGg6YXV0byFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8haW1wb3J0YW50fWNsci10cmVlLW5vZGUgLmNsci10cmVlbm9kZS1zcGlubmVy''@;'; + put 'put ''LWNvbnRhaW5lcntwYWRkaW5nOjAgOHB4O3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn1jbHItdHJlZS1ub2RlIC5jbHItdHJlZS1ub2RlLWNvbnRlbnQtY29udGFpbmVyOmZvY3Vze291dGxpbmU6bm9uZSFpbXBvcnRhbnR9LmNsci10cmVl''@;'; + put 'put ''bm9kZS1jb250ZW50IHB7d2hpdGUtc3BhY2U6bm93cmFwfS5zZWFyY2gtbm9kZXttYXJnaW4tYm90dG9tOjVweH0udHJlZS1zZWFyY2gtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS50cmVlLXNlYXJjaC13cmFwcGVyIGNsci1pbnB1''@;'; + put 'put ''dC1jb250YWluZXJ7bWFyZ2luOjB9LnRyZWUtc2VhcmNoLXdyYXBwZXIgY2xyLWljb257cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDtib3R0b206MDttYXJnaW46NXB4IDAgMDtiYWNrZ3JvdW5kOndoaXRlO2N1cnNvcjpwb2ludGVyfS5jbHItdHJlZS1ub2Rle292ZXJmbG93OnZpc2libGUh''@;'; + put 'put ''aW1wb3J0YW50fS5jb250ZW50LWNvbnRhaW5lcnt3aWR0aDoxMDAlfUAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKXsud3RIb2xkZXJ7d2lkdGg6MTAwJSFpbXBvcnRhbnR9fWlucHV0OjotbXMtY2xlYXJ7ZGlzcGxheTpub25lfUBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDog''@;'; + put 'put ''bm9uZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpe2Nsci10cmVlLW5vZGUuY2xyLWV4cGFuZGVke3BhZGRpbmctYm90dG9tOjIwcHg7bWluLWhlaWdodDphdXRvfS5jbHItdHJlZS1ub2Rle21pbi1oZWlnaHQ6MjRweH0uY2xyLXRyZWVub2RlLWNoaWxkcmVue292ZXJmbG93OmhpZGRl''@;'; + put 'put ''biFpbXBvcnRhbnR9LmNsci10cmVlbm9kZS1jb250ZW50IC5jbHItaWNvbiwuY2xyLXRyZWVub2RlLWNvbnRlbnQgY2xyLWljb257bWluLXdpZHRoOjE2cHg7bWluLWhlaWdodDoxNnB4fS50cmVlLXNlYXJjaC13cmFwcGVyIGNsci1pY29ue2JvdHRvbToycHh9LmNvbnRlbnQtY29udGFpbmVy''@;'; + put 'put ''e2hlaWdodDoxMDAlfS5jb250ZW50LWFyZWE+LmNhcmR7bWFyZ2luLWJvdHRvbToyMHB4fS5yZWNvcmQtZWRpdC1tb2RhbCB0ZXh0YXJlYXttaW4taGVpZ2h0OjQycHh9fS5ib3JkZXItYm90dG9tLWRpdmlkZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkM30ubG9hZGluZ1NwaW5u''@;'; + put 'put ''ZXJ7aGVpZ2h0Ojcwdmg7ZmxleDoxO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXJ9LmRpc2FibGUtcGFzc3dvcmQtbWFuYWdlcnstd2Via2l0LXRleHQtc2VjdXJpdHk6ZGlzYzstbW96LXRleHQtc2Vj''@;'; + put 'put ''dXJpdHk6ZGlzYzt0ZXh0LXNlY3VyaXR5OmRpc2M7Zm9udC1mYW1pbHk6dGV4dC1zZWN1cml0eS1kaXNjfS5yZWxhdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZX1oci5saWdodHtib3JkZXI6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGVkZWRlfS5zcGlubmVye2JhY2tncm91bmQ6dXJsKC9T''@;'; + put 'put ''QVNTdG9yZWRQcm9jZXNzLz9fUFJPR1JBTT1wWktkNkY5NWpFQ3ZSUWxOMExDZmRBPT0vd2ViOS9pbWFnZXMvc3Bpbm5lci4xNmY3NjNjZWJjNmI2NGRmLXN2ZykhaW1wb3J0YW50fS5jbHItc2VsZWN0LXdyYXBwZXI6YWZ0ZXJ7YmFja2dyb3VuZDp1cmwoL1NBU1N0b3JlZFByb2Nlc3MvP19Q''@;'; + put 'put ''Uk9HUkFNPXBaS2Q2Rjk1akVDdlJRbE4wTENmZEE9PS93ZWI5L2ltYWdlcy9jYXJldC42NWYxZmMwYWNiZTRjN2ZmLXN2ZykhaW1wb3J0YW50fTpyb290ey0tY2RzLWdsb2JhbC1iYXNlOjIwfWh0bWx7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsaW5lLWhlaWdodDoxLjE1Oy1tcy10ZXh0LXNp''@;'; + put 'put ''emUtYWRqdXN0OjEwMCU7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCV9Ym9keXttYXJnaW46MH1hcnRpY2xlLGFzaWRlLGRldGFpbHMsZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVyLGhlYWRlcixtYWluLG1lbnUsbmF2LHNlY3Rpb24sc3VtbWFyeXtkaXNwbGF5OmJsb2NrfWF1ZGlvLGNh''@;'; + put 'put ''bnZhcyxwcm9ncmVzcyx2aWRlb3tkaXNwbGF5OmlubGluZS1ibG9ja31hdWRpbzpub3QoW2NvbnRyb2xzXSl7ZGlzcGxheTpub25lO2hlaWdodDowfXByb2dyZXNze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXRlbXBsYXRlLFtoaWRkZW5de2Rpc3BsYXk6bm9uZX1he2JhY2tncm91bmQtY29s''@;'; + put 'put ''b3I6dHJhbnNwYXJlbnQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDpvYmplY3RzfWE6YWN0aXZlLGE6aG92ZXJ7b3V0bGluZS13aWR0aDowfWFiYnJbdGl0bGVde2JvcmRlci1ib3R0b206bm9uZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOy13ZWJraXQtdGV4dC1kZWNvcmF0aW9u''@;'; + put 'put ''OnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6aW5oZXJpdH1iLHN0cm9uZ3tmb250LXdlaWdodDpib2xkZXJ9ZGZue2ZvbnQtc3R5bGU6aXRhbGljfWgxe2ZvbnQtc2l6ZToyZW07bWFyZ2luOi42N2VtIDB9bWFy''@;'; + put 'put ''a3tiYWNrZ3JvdW5kLWNvbG9yOiNmZjA7Y29sb3I6IzAwMH1zbWFsbHtmb250LXNpemU6ODAlfXN1YixzdXB7Zm9udC1zaXplOjc1JTtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXN1Yntib3R0b206LS4yNWVtfXN1cHt0b3A6LS41ZW19''@;'; + put 'put ''aW1ne2JvcmRlci1zdHlsZTpub25lfXN2Zzpub3QoOnJvb3Qpe292ZXJmbG93OmhpZGRlbn1jb2RlLGtiZCxwcmUsc2FtcHtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjFlbX1maWd1cmV7bWFyZ2luOjFlbSA0MHB4fWhye2JveC1zaXppbmc6Y29udGVudC1ib3g7aGVpZ2h0OjA7''@;'; + put 'put ''b3ZlcmZsb3c6dmlzaWJsZX1idXR0b24saW5wdXQsb3B0Z3JvdXAsc2VsZWN0LHRleHRhcmVhe2ZvbnQ6aW5oZXJpdDttYXJnaW46MH10ZXh0YXJlYXtsaW5lLWhlaWdodDoxLjE1fW9wdGdyb3Vwe2ZvbnQtd2VpZ2h0OjcwMH1idXR0b24saW5wdXR7b3ZlcmZsb3c6dmlzaWJsZX1idXR0b24s''@;'; + put 'put ''c2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9YnV0dG9uLGh0bWwgW3R5cGU9YnV0dG9uXSxbdHlwZT1yZXNldF0sW3R5cGU9c3VibWl0XXstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9ufWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixbdHlwZT1idXR0b25dOjotbW96LWZvY3VzLWlubmVyLFt0''@;'; + put 'put ''eXBlPXJlc2V0XTo6LW1vei1mb2N1cy1pbm5lcixbdHlwZT1zdWJtaXRdOjotbW96LWZvY3VzLWlubmVye2JvcmRlci1zdHlsZTpub25lO3BhZGRpbmc6MH1idXR0b246LW1vei1mb2N1c3JpbmcsW3R5cGU9YnV0dG9uXTotbW96LWZvY3VzcmluZyxbdHlwZT1yZXNldF06LW1vei1mb2N1c3Jp''@;'; + put 'put ''bmcsW3R5cGU9c3VibWl0XTotbW96LWZvY3VzcmluZ3tvdXRsaW5lOjFweCBkb3R0ZWQgQnV0dG9uVGV4dH1maWVsZHNldHtib3JkZXI6MXB4IHNvbGlkIHNpbHZlcjttYXJnaW46MCAycHg7cGFkZGluZzouMzVlbSAuNjI1ZW0gLjc1ZW19bGVnZW5ke2JveC1zaXppbmc6Ym9yZGVyLWJveDtj''@;'; + put 'put ''b2xvcjppbmhlcml0O2Rpc3BsYXk6dGFibGU7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzowO3doaXRlLXNwYWNlOm5vcm1hbH10ZXh0YXJlYXtvdmVyZmxvdzphdXRvfVt0eXBlPWNoZWNrYm94XSxbdHlwZT1yYWRpb117Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MH1bdHlwZT1udW1i''@;'; + put 'put ''ZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99W3R5cGU9c2VhcmNoXXstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkO291dGxpbmUtb2Zmc2V0Oi0ycHh9W3R5cGU9c2VhcmNoXTo6LXdl''@;'; + put 'put ''YmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtmb250OmluaGVyaXR9OnJvb3R7''@;'; + put 'put ''LS1jbHItY29sb3ItbmV1dHJhbC0wOndoaXRlOy0tY2xyLWNvbG9yLW5ldXRyYWwtNTA6I2ZhZmFmYTstLWNsci1jb2xvci1uZXV0cmFsLTEwMDojZjJmMmYyOy0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwOiNlOGU4ZTg7LS1jbHItY29sb3ItbmV1dHJhbC0zMDA6I2RlZGVkZTstLWNsci1jb2xv''@;'; + put 'put ''ci1uZXV0cmFsLTQwMDojY2NjY2NjOy0tY2xyLWNvbG9yLW5ldXRyYWwtNTAwOiNiM2IzYjM7LS1jbHItY29sb3ItbmV1dHJhbC02MDA6IzhjOGM4YzstLWNsci1jb2xvci1uZXV0cmFsLTcwMDojNjY2NjY2Oy0tY2xyLWNvbG9yLW5ldXRyYWwtODAwOiM0NTQ1NDU7LS1jbHItY29sb3ItbmV1''@;'; + put 'put ''dHJhbC05MDA6IzMzMzMzMzstLWNsci1jb2xvci1uZXV0cmFsLTEwMDA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC0wOmJsYWNrOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtNTA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC0xMDA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJh''@;'; + put 'put ''bC0yMDA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC0zMDA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC00MDA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC01MDA6YmxhY2s7LS1jbHItY29sb3Itb24tbmV1dHJhbC02MDA6d2hpdGU7LS1jbHItY29sb3Itb24tbmV1dHJh''@;'; + put 'put ''bC03MDA6d2hpdGU7LS1jbHItY29sb3Itb24tbmV1dHJhbC04MDA6d2hpdGU7LS1jbHItY29sb3Itb24tbmV1dHJhbC05MDA6d2hpdGU7LS1jbHItY29sb3Itb24tbmV1dHJhbC0xMDAwOndoaXRlOy0tY2xyLWNvbG9yLWFjdGlvbi01MDojZTNmNWZjOy0tY2xyLWNvbG9yLWFjdGlvbi0xMDA6''@;'; + put 'put ''I2M4ZWFmOTstLWNsci1jb2xvci1hY3Rpb24tMjAwOiM5YmQ4ZjM7LS1jbHItY29sb3ItYWN0aW9uLTMwMDojNzljNmU2Oy0tY2xyLWNvbG9yLWFjdGlvbi00MDA6IzQ5YWVkYTstLWNsci1jb2xvci1hY3Rpb24tNTAwOiMxNzliZDM7LS1jbHItY29sb3ItYWN0aW9uLTYwMDojMDA3MmEzOy0t''@;'; + put 'put ''Y2xyLWNvbG9yLWFjdGlvbi03MDA6IzAwNjQ4ZjstLWNsci1jb2xvci1hY3Rpb24tODAwOiMwMDU2N2E7LS1jbHItY29sb3ItYWN0aW9uLTkwMDojMDA0YjZiOy0tY2xyLWNvbG9yLWFjdGlvbi0xMDAwOiMwMDM2NGQ7LS1jbHItY29sb3Itb24tYWN0aW9uLTUwOmJsYWNrOy0tY2xyLWNvbG9y''@;'; + put 'put ''LW9uLWFjdGlvbi0xMDA6YmxhY2s7LS1jbHItY29sb3Itb24tYWN0aW9uLTIwMDpibGFjazstLWNsci1jb2xvci1vbi1hY3Rpb24tMzAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi00MDA6YmxhY2s7LS1jbHItY29sb3Itb24tYWN0aW9uLTUwMDpibGFjazstLWNsci1jb2xvci1vbi1h''@;'; + put 'put ''Y3Rpb24tNjAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi03MDA6d2hpdGU7LS1jbHItY29sb3Itb24tYWN0aW9uLTgwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1hY3Rpb24tOTAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi0xMDAwOndoaXRlOy0tY2xyLWNvbG9yLXNlY29uZGFy''@;'; + put 'put ''eS1hY3Rpb24tNTA6I2Y3ZTZmZjstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTEwMDojZTZjYWYxOy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tMjAwOiNkMmFhZTQ7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi0zMDA6I2MwOTBkNTstLWNsci1jb2xvci1zZWNvbmRhcnkt''@;'; + put 'put ''YWN0aW9uLTQwMDojYWY3M2M5Oy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tNTAwOiM5ZTU3YmM7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi02MDA6IzhhMzlhYzstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTcwMDojNzgxZDlmOy0tY2xyLWNvbG9yLXNlY29uZGFyeS1h''@;'; + put 'put ''Y3Rpb24tODAwOiM2ODAwOTQ7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi05MDA6IzRmMDA3MDstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTEwMDA6IzMyMDA0NzstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9uLTUwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFy''@;'; + put 'put ''eS1hY3Rpb24tMTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tMjAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tMzAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tNDAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXNlY29u''@;'; + put 'put ''ZGFyeS1hY3Rpb24tNTAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tNjAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tNzAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tODAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLXNl''@;'; + put 'put ''Y29uZGFyeS1hY3Rpb24tOTAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tMTAwMDp3aGl0ZTstLWNsci1jb2xvci1kYW5nZXItNTA6I2ZmZjJmMDstLWNsci1jb2xvci1kYW5nZXItMTAwOiNmZWRkZDc7LS1jbHItY29sb3ItZGFuZ2VyLTIwMDojZmNjNWJiOy0tY2xy''@;'; + put 'put ''LWNvbG9yLWRhbmdlci0zMDA6I2Y1OWU4ZjstLWNsci1jb2xvci1kYW5nZXItNDAwOiNmMjc5NjM7LS1jbHItY29sb3ItZGFuZ2VyLTUwMDojZjM1ZTQ0Oy0tY2xyLWNvbG9yLWRhbmdlci02MDA6I2Y1MmQwYTstLWNsci1jb2xvci1kYW5nZXItNzAwOiNkYjIxMDA7LS1jbHItY29sb3ItZGFu''@;'; + put 'put ''Z2VyLTgwMDojYzIxZDAwOy0tY2xyLWNvbG9yLWRhbmdlci05MDA6Izk5MTcwMDstLWNsci1jb2xvci1kYW5nZXItMTAwMDojNjYwZjAwOy0tY2xyLWNvbG9yLW9uLWRhbmdlci01MDpibGFjazstLWNsci1jb2xvci1vbi1kYW5nZXItMTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWRhbmdlci0y''@;'; + put 'put ''MDA6YmxhY2s7LS1jbHItY29sb3Itb24tZGFuZ2VyLTMwMDpibGFjazstLWNsci1jb2xvci1vbi1kYW5nZXItNDAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWRhbmdlci01MDA6YmxhY2s7LS1jbHItY29sb3Itb24tZGFuZ2VyLTYwMDpibGFjazstLWNsci1jb2xvci1vbi1kYW5nZXItNzAwOndo''@;'; + put 'put ''aXRlOy0tY2xyLWNvbG9yLW9uLWRhbmdlci04MDA6d2hpdGU7LS1jbHItY29sb3Itb24tZGFuZ2VyLTkwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1kYW5nZXItMTAwMDp3aGl0ZTstLWNsci1jb2xvci13YXJuaW5nLTUwOiNmZmZhZTY7LS1jbHItY29sb3Itd2FybmluZy0xMDA6I2ZmZjRjNzst''@;'; + put 'put ''LWNsci1jb2xvci13YXJuaW5nLTIwMDojZmZlZWE4Oy0tY2xyLWNvbG9yLXdhcm5pbmctMzAwOiNmZWUyNzI7LS1jbHItY29sb3Itd2FybmluZy00MDA6I2Y4Y2YyYTstLWNsci1jb2xvci13YXJuaW5nLTUwMDojZWZjMDA2Oy0tY2xyLWNvbG9yLXdhcm5pbmctNjAwOiNlNmIwMDA7LS1jbHIt''@;'; + put 'put ''Y29sb3Itd2FybmluZy03MDA6I2Q2OWEwMDstLWNsci1jb2xvci13YXJuaW5nLTgwMDojYWQ3NjAwOy0tY2xyLWNvbG9yLXdhcm5pbmctOTAwOiM4ZjVhMDA7LS1jbHItY29sb3Itd2FybmluZy0xMDAwOiM2MTMyMDA7LS1jbHItY29sb3Itb24td2FybmluZy01MDpibGFjazstLWNsci1jb2xv''@;'; + put 'put ''ci1vbi13YXJuaW5nLTEwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTIwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTMwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTQwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTUwMDpibGFjazstLWNsci1jb2xv''@;'; + put 'put ''ci1vbi13YXJuaW5nLTYwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTcwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTgwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTkwMDpibGFjazstLWNsci1jb2xvci1vbi13YXJuaW5nLTEwMDA6d2hpdGU7LS1jbHItY29s''@;'; + put 'put ''b3Itc3VjY2Vzcy01MDojZGZmMGQwOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtMTAwOiNiY2U0OWE7LS1jbHItY29sb3Itc3VjY2Vzcy0yMDA6IzczZGMxZTstLWNsci1jb2xvci1zdWNjZXNzLTMwMDojNjhjNzFhOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtNDAwOiM1ZWI3MTU7LS1jbHItY29sb3Itc3Vj''@;'; + put 'put ''Y2Vzcy01MDA6IzVhYTIyMDstLWNsci1jb2xvci1zdWNjZXNzLTYwMDojNGI5NzBjOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtNzAwOiMzYzg1MDA7LS1jbHItY29sb3Itc3VjY2Vzcy04MDA6IzMwNmIwMDstLWNsci1jb2xvci1zdWNjZXNzLTkwMDojMjU1MjAwOy0tY2xyLWNvbG9yLXN1Y2Nlc3Mt''@;'; + put 'put ''MTAwMDojMWU0MjAwOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtNTA6YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy0xMDA6YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy0yMDA6YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy0zMDA6YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vz''@;'; + put 'put ''cy00MDA6YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy01MDA6YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy02MDA6YmxhY2s7LS1jbHItY29sb3Itb24tc3VjY2Vzcy03MDA6d2hpdGU7LS1jbHItY29sb3Itb24tc3VjY2Vzcy04MDA6d2hpdGU7LS1jbHItY29sb3Itb24tc3VjY2Vz''@;'; + put 'put ''cy05MDA6d2hpdGU7LS1jbHItY29sb3Itb24tc3VjY2Vzcy0xMDAwOndoaXRlfTpyb290ey0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXM6LjE1cmVtOy0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aDouMDVyZW07LS1jbHItZ2xvYmFsLWFwcC1iYWNrZ3JvdW5kOiNmYWZhZmE7LS1jbHItZ2xvYmFs''@;'; + put 'put ''LXNlbGVjdGlvbi1jb2xvcjojZDhlM2U5Oy0tY2xyLWdsb2JhbC1vbi1zZWxlY3Rpb24tY29sb3I6YmxhY2s7LS1jbHItZ2xvYmFsLWhvdmVyLWNvbG9yOiNlOGU4ZTg7LS1jbHItZ2xvYmFsLWNvbnRlbnQtaGVhZGVyLWZvbnQtY29sb3I6YmxhY2s7LS1jbHItZ2xvYmFsLWZvbnQtY29sb3I6''@;'; + put 'put ''IzY2NjY2NjstLWNsci1nbG9iYWwtc3VjY2Vzcy1jb2xvcjojNWFhMjIwOy0tY2xyLWdsb2JhbC1lcnJvci1jb2xvcjojYzIxZDAwOy0tY2xyLWNsb3NlLWNvbG9yLS1ub3JtYWw6IzhjOGM4YzstLWNsci1jbG9zZS1jb2xvci0tbm9ybWFsLW9wYWNpdHk6LjI7LS1jbHItY2xvc2UtY29sb3It''@;'; + put 'put ''LWhvdmVyOmJsYWNrOy0tY2xyLWNsb3NlLWNvbG9yLS1ob3Zlci1vcGFjaXR5Oi41Oy0tY2xyLXBvcG92ZXItYm94LXNoYWRvdy1jb2xvcjpyZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSl9OnJvb3R7LS1jbHItZm9udDpNZXRyb3BvbGlzLCBBdmVuaXIgTmV4dCwgSGVsdmV0aWNhIE5ldWUsIEFy''@;'; + put 'put ''aWFsLCBzYW5zLXNlcmlmOy0tY2xyLWRpc3BsYXktZm9udDp2YXIoLS1jbHItZm9udCk7LS1jbHItZm9udC13ZWlnaHQtbGlnaHQ6MjAwOy0tY2xyLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6NDAwOy0tY2xyLWZvbnQtd2VpZ2h0LXNlbWlib2xkOjUwMDstLWNsci1mb250LXdlaWdodC1ib2xkOjYw''@;'; + put 'put ''MDstLWNsci1mb250LXdlaWdodC1leHRyYWJvbGQ6NjAwOy0tY2xyLWgxLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtY29udGVudC1oZWFkZXItZm9udC1jb2xvcik7LS1jbHItaDEtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LWxpZ2h0KTstLWNsci1oMS1mb250LWZhbWlseTp2''@;'; + put 'put ''YXIoLS1jbHItZGlzcGxheS1mb250KTstLWNsci1oMi1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWNvbnRlbnQtaGVhZGVyLWZvbnQtY29sb3IpOy0tY2xyLWgyLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1saWdodCk7LS1jbHItaDItZm9udC1mYW1pbHk6dmFyKC0tY2xyLWRp''@;'; + put 'put ''c3BsYXktZm9udCk7LS1jbHItaDMtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1jb250ZW50LWhlYWRlci1mb250LWNvbG9yKTstLWNsci1oMy1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtbGlnaHQpOy0tY2xyLWgzLWZvbnQtZmFtaWx5OnZhcigtLWNsci1kaXNwbGF5LWZvbnQp''@;'; + put 'put ''Oy0tY2xyLWg0LWNvbG9yOnZhcigtLWNsci1nbG9iYWwtY29udGVudC1oZWFkZXItZm9udC1jb2xvcik7LS1jbHItaDQtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LWxpZ2h0KTstLWNsci1oNC1mb250LWZhbWlseTp2YXIoLS1jbHItZGlzcGxheS1mb250KTstLWNsci1oNS1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLWg1LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1yZWd1bGFyKTstLWNsci1oNS1mb250LWZhbWlseTp2YXIoLS1jbHItZGlzcGxheS1mb250KTstLWNsci1oNi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1''@;'; + put 'put ''dHJhbC05MDApOy0tY2xyLWg2LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1zZW1pYm9sZCk7LS1jbHItaDYtZm9udC1mYW1pbHk6dmFyKC0tY2xyLWRpc3BsYXktZm9udCk7LS1jbHItcDAtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1mb250LWNvbG9yKTstLWNsci1wMC1mb250''@;'; + put 'put ''LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtbGlnaHQpOy0tY2xyLXAxLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcik7LS1jbHItcDEtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpOy0tY2xyLXAyLWNvbG9yOnZhcigtLWNsci1nbG9iYWwt''@;'; + put 'put ''Zm9udC1jb2xvcik7LS1jbHItcDItZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTstLWNsci1wMy1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXAzLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1yZWd1bGFyKTstLWNs''@;'; + put 'put ''ci1wNC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXA0LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1ib2xkKTstLWNsci1wNS1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXA1LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1m''@;'; + put 'put ''b250LXdlaWdodC1yZWd1bGFyKTstLWNsci1wNi1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXA2LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1ib2xkKTstLWNsci1wNy1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXA3''@;'; + put 'put ''LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1yZWd1bGFyKTstLWNsci1wOC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXA4LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1yZWd1bGFyKX0uY2xyLWFsaWduLWJhc2VsaW5le3ZlcnRp''@;'; + put 'put ''Y2FsLWFsaWduOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLXRvcHt2ZXJ0aWNhbC1hbGlnbjp0b3AhaW1wb3J0YW50fS5jbHItYWxpZ24tbWlkZGxle3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1ib3R0b217dmVydGljYWwtYWxpZ246Ym90dG9tIWlt''@;'; + put 'put ''cG9ydGFudH0uY2xyLWFsaWduLXRleHQtYm90dG9te3ZlcnRpY2FsLWFsaWduOnRleHQtYm90dG9tIWltcG9ydGFudH0uY2xyLWFsaWduLXRleHQtdG9we3ZlcnRpY2FsLWFsaWduOnRleHQtdG9wIWltcG9ydGFudH0uY2xyLWNsZWFyZml4OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTp0YWJs''@;'; + put 'put ''ZTtjbGVhcjpib3RofS5jbHItZGlzcGxheS1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY2xyLWRpc3BsYXktaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uY2xyLWRpc3BsYXktaW5saW5le2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH0uY2xyLWZs''@;'; + put 'put ''ZXgtcm93e2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmNsci1mbGV4LWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50fS5jbHItZmxleC1yb3ctcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LWNvbHVtbi1yZXZl''@;'; + put 'put ''cnNle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtd3JhcHtmbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtd3JhcC1yZXZlcnNle2ZsZXgtd3JhcDp3cmFw''@;'; + put 'put ''LXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1maWxse2ZsZXg6MSAxIGF1dG8haW1wb3J0YW50fS5jbHItZmxleC1ncm93LTB7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5jbHItZmxleC1ncm93LTF7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5jbHItZmxleC1zaHJpbmstMHtmbGV4LXNocmlu''@;'; + put 'put ''azowIWltcG9ydGFudH0uY2xyLWZsZXgtc2hyaW5rLTF7ZmxleC1zaHJpbms6MSFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LWVuZHtqdXN0aWZ5LWNvbnRlbnQ6Zmxl''@;'; + put 'put ''eC1lbmQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVu''@;'; + put 'put ''dC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGln''@;'; + put 'put ''bi1pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXN0cmV0Y2h7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGln''@;'; + put 'put ''bi1jb250ZW50LXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWVuZHthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtY2VudGVye2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0u''@;'; + put 'put ''Y2xyLWFsaWduLWNvbnRlbnQtYmV0d2VlbnthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1hcm91bmR7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zdHJldGNoe2FsaWduLWNvbnRl''@;'; + put 'put ''bnQ6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWF1dG97YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtZW5ke2FsaWduLXNlbGY6ZmxleC1lbmQhaW1w''@;'; + put 'put ''b3J0YW50fS5jbHItYWxpZ24tc2VsZi1jZW50ZXJ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc3RyZXRjaHthbGlnbi1zZWxmOnN0cmV0Y2ghaW1wb3J0YW50''@;'; + put 'put ''fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWZsZXgtc20tcm93e2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50fS5jbHItZmxleC1zbS1yb3ctcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpy''@;'; + put 'put ''b3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLWNvbHVtbi1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtc20td3JhcHtmbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLW5vd3JhcHtmbGV4LXdyYXA6bm93''@;'; + put 'put ''cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtc20td3JhcC1yZXZlcnNle2ZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1zbS1maWxse2ZsZXg6MSAxIGF1dG8haW1wb3J0YW50fS5jbHItZmxleC1zbS1ncm93LTB7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5jbHItZmxl''@;'; + put 'put ''eC1zbS1ncm93LTF7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5jbHItZmxleC1zbS1zaHJpbmstMHtmbGV4LXNocmluazowIWltcG9ydGFudH0uY2xyLWZsZXgtc20tc2hyaW5rLTF7ZmxleC1zaHJpbms6MSFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtc20tc3RhcnR7anVzdGlmeS1j''@;'; + put 'put ''b250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXNtLWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXNtLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWp1c3Rp''@;'; + put 'put ''ZnktY29udGVudC1zbS1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1zbS1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1zbS1zdGFydHthbGlnbi1p''@;'; + put 'put ''dGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXNtLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1zbS1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXNtLWJhc2VsaW5l''@;'; + put 'put ''e2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXNtLXN0cmV0Y2h7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXNtLXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1j''@;'; + put 'put ''b250ZW50LXNtLWVuZHthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc20tY2VudGVye2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc20tYmV0d2VlbnthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4h''@;'; + put 'put ''aW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zbS1hcm91bmR7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zbS1zdHJldGNoe2FsaWduLWNvbnRlbnQ6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXNtLWF1dG97YWxp''@;'; + put 'put ''Z24tc2VsZjphdXRvIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc20tc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc20tZW5ke2FsaWduLXNlbGY6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1zbS1jZW50ZXJ7YWxpZ24t''@;'; + put 'put ''c2VsZjpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1zbS1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc20tc3RyZXRjaHthbGlnbi1zZWxmOnN0cmV0Y2ghaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNs''@;'; + put 'put ''ci1mbGV4LW1kLXJvd3tmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50fS5jbHItZmxleC1tZC1jb2x1bW57ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtcm93LXJldmVyc2V7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxl''@;'; + put 'put ''eC1tZC1jb2x1bW4tcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLXdyYXB7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5jbHItZmxleC1tZC1ub3dyYXB7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLXdy''@;'; + put 'put ''YXAtcmV2ZXJzZXtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtZmlsbHtmbGV4OjEgMSBhdXRvIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtZ3Jvdy0we2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtZ3Jvdy0xe2ZsZXgtZ3JvdzoxIWltcG9y''@;'; + put 'put ''dGFudH0uY2xyLWZsZXgtbWQtc2hyaW5rLTB7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLXNocmluay0xe2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LW1kLXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0u''@;'; + put 'put ''Y2xyLWp1c3RpZnktY29udGVudC1tZC1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1tZC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbWQtYmV0d2VlbntqdXN0aWZ5''@;'; + put 'put ''LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbWQtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbWQtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNs''@;'; + put 'put ''ci1hbGlnbi1pdGVtcy1tZC1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbWQtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1tZC1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRh''@;'; + put 'put ''bnR9LmNsci1hbGlnbi1pdGVtcy1tZC1zdHJldGNoe2FsaWduLWl0ZW1zOnN0cmV0Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1tZC1zdGFydHthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1tZC1lbmR7YWxpZ24tY29udGVudDpm''@;'; + put 'put ''bGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LW1kLWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LW1kLWJldHdlZW57YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQt''@;'; + put 'put ''bWQtYXJvdW5ke2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbWQtc3RyZXRjaHthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1tZC1hdXRve2FsaWduLXNlbGY6YXV0byFpbXBvcnRhbnR9LmNsci1h''@;'; + put 'put ''bGlnbi1zZWxmLW1kLXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLW1kLWVuZHthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbWQtY2VudGVye2FsaWduLXNlbGY6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFs''@;'; + put 'put ''aWduLXNlbGYtbWQtYmFzZWxpbmV7YWxpZ24tc2VsZjpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLW1kLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jbHItZmxleC1sZy1yb3d7ZmxleC1kaXJlY3Rpb246''@;'; + put 'put ''cm93IWltcG9ydGFudH0uY2xyLWZsZXgtbGctY29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtbGctY29sdW1uLXJldmVyc2V7ZmxleC1kaXJl''@;'; + put 'put ''Y3Rpb246Y29sdW1uLXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1sZy13cmFwe2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtbGctbm93cmFwe2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5jbHItZmxleC1sZy13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2''@;'; + put 'put ''ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLWZpbGx7ZmxleDoxIDEgYXV0byFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLWdyb3ctMHtmbGV4LWdyb3c6MCFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLWdyb3ctMXtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLXNocmluay0we2Zs''@;'; + put 'put ''ZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5jbHItZmxleC1sZy1zaHJpbmstMXtmbGV4LXNocmluazoxIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1sZy1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbGctZW5ke2p1''@;'; + put 'put ''c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbGctY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LWxnLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0''@;'; + put 'put ''YW50fS5jbHItanVzdGlmeS1jb250ZW50LWxnLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLWxnLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbGctZW5ke2FsaWduLWl0''@;'; + put 'put ''ZW1zOmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLWxnLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbGctYmFzZWxpbmV7YWxpZ24taXRlbXM6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbGctc3RyZXRj''@;'; + put 'put ''aHthbGlnbi1pdGVtczpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbGctc3RhcnR7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbGctZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24t''@;'; + put 'put ''Y29udGVudC1sZy1jZW50ZXJ7YWxpZ24tY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1sZy1iZXR3ZWVue2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWxnLWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNl''@;'; + put 'put ''LWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWxnLXN0cmV0Y2h7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbGctYXV0b3thbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1sZy1zdGFydHthbGlnbi1zZWxm''@;'; + put 'put ''OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1sZy1lbmR7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWxnLWNlbnRlcnthbGlnbi1zZWxmOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWxnLWJhc2VsaW5le2FsaWduLXNl''@;'; + put 'put ''bGY6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1sZy1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNsci1mbGV4LXhsLXJvd3tmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50fS5jbHItZmxleC14bC1j''@;'; + put 'put ''b2x1bW57ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0uY2xyLWZsZXgteGwtcm93LXJldmVyc2V7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC14bC1jb2x1bW4tcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRh''@;'; + put 'put ''bnR9LmNsci1mbGV4LXhsLXdyYXB7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5jbHItZmxleC14bC1ub3dyYXB7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLXdyYXAtcmV2ZXJzZXtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgteGwt''@;'; + put 'put ''ZmlsbHtmbGV4OjEgMSBhdXRvIWltcG9ydGFudH0uY2xyLWZsZXgteGwtZ3Jvdy0we2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uY2xyLWZsZXgteGwtZ3Jvdy0xe2ZsZXgtZ3JvdzoxIWltcG9ydGFudH0uY2xyLWZsZXgteGwtc2hyaW5rLTB7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmNsci1m''@;'; + put 'put ''bGV4LXhsLXNocmluay0xe2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXhsLXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC14bC1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kIWltcG9y''@;'; + put 'put ''dGFudH0uY2xyLWp1c3RpZnktY29udGVudC14bC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQteGwtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQteGwt''@;'; + put 'put ''YXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMteGwtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy14bC1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHIt''@;'; + put 'put ''YWxpZ24taXRlbXMteGwtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy14bC1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy14bC1zdHJldGNoe2FsaWduLWl0ZW1zOnN0cmV0Y2ghaW1wb3J0''@;'; + put 'put ''YW50fS5jbHItYWxpZ24tY29udGVudC14bC1zdGFydHthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC14bC1lbmR7YWxpZ24tY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXhsLWNlbnRlcnthbGlnbi1jb250''@;'; + put 'put ''ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXhsLWJldHdlZW57YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQteGwtYXJvdW5ke2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWdu''@;'; + put 'put ''LWNvbnRlbnQteGwtc3RyZXRjaHthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi14bC1hdXRve2FsaWduLXNlbGY6YXV0byFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXhsLXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1h''@;'; + put 'put ''bGlnbi1zZWxmLXhsLWVuZHthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYteGwtY2VudGVye2FsaWduLXNlbGY6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYteGwtYmFzZWxpbmV7YWxpZ24tc2VsZjpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1h''@;'; + put 'put ''bGlnbi1zZWxmLXhsLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH19LmNsci1mbGV4LXhzLWZpcnN0e29yZGVyOi0xfS5jbHItZmxleC14cy1sYXN0e29yZGVyOjF9LmNsci1mbGV4LXhzLXVub3JkZXJlZHtvcmRlcjowfS5jbHItZmxleC1pdGVtcy14cy10b3B7YWxpZ24t''@;'; + put 'put ''aXRlbXM6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMteHMtbWlkZGxle2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMteHMtYm90dG9te2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5jbHItZmxleC14cy10b3B7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5jbHItZmxleC14cy1taWRk''@;'; + put 'put ''bGV7YWxpZ24tc2VsZjpjZW50ZXJ9LmNsci1mbGV4LXhzLWJvdHRvbXthbGlnbi1zZWxmOmZsZXgtZW5kfS5jbHItZmxleC1pdGVtcy14cy1sZWZ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy14cy1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uY2xy''@;'; + put 'put ''LWZsZXgtaXRlbXMteHMtcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5jbHItZmxleC1pdGVtcy14cy1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uY2xyLWZsZXgtaXRlbXMteHMtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn1AbWVkaWEg''@;'; + put 'put ''KG1pbi13aWR0aDo1NzZweCl7LmNsci1mbGV4LXNtLWZpcnN0e29yZGVyOi0xfS5jbHItZmxleC1zbS1sYXN0e29yZGVyOjF9LmNsci1mbGV4LXNtLXVub3JkZXJlZHtvcmRlcjowfX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1mbGV4LWl0ZW1zLXNtLXRvcHthbGlnbi1pdGVtczpm''@;'; + put 'put ''bGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy1zbS1taWRkbGV7YWxpZ24taXRlbXM6Y2VudGVyfS5jbHItZmxleC1pdGVtcy1zbS1ib3R0b217YWxpZ24taXRlbXM6ZmxleC1lbmR9fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWZsZXgtc20tdG9we2FsaWduLXNlbGY6ZmxleC1zdGFy''@;'; + put 'put ''dH0uY2xyLWZsZXgtc20tbWlkZGxle2FsaWduLXNlbGY6Y2VudGVyfS5jbHItZmxleC1zbS1ib3R0b217YWxpZ24tc2VsZjpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItZmxleC1pdGVtcy1zbS1sZWZ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5jbHItZmxl''@;'; + put 'put ''eC1pdGVtcy1zbS1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMtc20tcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5jbHItZmxleC1pdGVtcy1zbS1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uY2xyLWZsZXgtaXRlbXMtc20t''@;'; + put 'put ''YmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItZmxleC1tZC1maXJzdHtvcmRlcjotMX0uY2xyLWZsZXgtbWQtbGFzdHtvcmRlcjoxfS5jbHItZmxleC1tZC11bm9yZGVyZWR7b3JkZXI6MH19QG1lZGlhIChtaW4td2lk''@;'; + put 'put ''dGg6NzY4cHgpey5jbHItZmxleC1pdGVtcy1tZC10b3B7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMtbWQtbWlkZGxle2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMtbWQtYm90dG9te2FsaWduLWl0ZW1zOmZsZXgtZW5kfX1AbWVkaWEgKG1pbi13aWR0''@;'; + put 'put ''aDo3NjhweCl7LmNsci1mbGV4LW1kLXRvcHthbGlnbi1zZWxmOmZsZXgtc3RhcnR9LmNsci1mbGV4LW1kLW1pZGRsZXthbGlnbi1zZWxmOmNlbnRlcn0uY2xyLWZsZXgtbWQtYm90dG9te2FsaWduLXNlbGY6ZmxleC1lbmR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY2xyLWZsZXgtaXRl''@;'; + put 'put ''bXMtbWQtbGVmdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMtbWQtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLW1kLXJpZ2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2xyLWZsZXgtaXRlbXMtbWQtYXJvdW5ke2p1''@;'; + put 'put ''c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LmNsci1mbGV4LWl0ZW1zLW1kLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY2xyLWZsZXgtbGctZmlyc3R7b3JkZXI6LTF9LmNsci1mbGV4LWxnLWxhc3R7b3JkZXI6MX0u''@;'; + put 'put ''Y2xyLWZsZXgtbGctdW5vcmRlcmVke29yZGVyOjB9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY2xyLWZsZXgtaXRlbXMtbGctdG9we2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLWxnLW1pZGRsZXthbGlnbi1pdGVtczpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLWxn''@;'; + put 'put ''LWJvdHRvbXthbGlnbi1pdGVtczpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jbHItZmxleC1sZy10b3B7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5jbHItZmxleC1sZy1taWRkbGV7YWxpZ24tc2VsZjpjZW50ZXJ9LmNsci1mbGV4LWxnLWJvdHRvbXthbGlnbi1zZWxmOmZs''@;'; + put 'put ''ZXgtZW5kfX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNsci1mbGV4LWl0ZW1zLWxnLWxlZnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLWxnLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5jbHItZmxleC1pdGVtcy1sZy1yaWdodHtqdXN0aWZ5''@;'; + put 'put ''LWNvbnRlbnQ6ZmxleC1lbmR9LmNsci1mbGV4LWl0ZW1zLWxnLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5jbHItZmxleC1pdGVtcy1sZy1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItZmxl''@;'; + put 'put ''eC14bC1maXJzdHtvcmRlcjotMX0uY2xyLWZsZXgteGwtbGFzdHtvcmRlcjoxfS5jbHItZmxleC14bC11bm9yZGVyZWR7b3JkZXI6MH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWZsZXgtaXRlbXMteGwtdG9we2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1z''@;'; + put 'put ''LXhsLW1pZGRsZXthbGlnbi1pdGVtczpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLXhsLWJvdHRvbXthbGlnbi1pdGVtczpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWZsZXgteGwtdG9we2FsaWduLXNlbGY6ZmxleC1zdGFydH0uY2xyLWZsZXgteGwtbWlkZGxle2Fs''@;'; + put 'put ''aWduLXNlbGY6Y2VudGVyfS5jbHItZmxleC14bC1ib3R0b217YWxpZ24tc2VsZjpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWZsZXgtaXRlbXMteGwtbGVmdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMteGwtY2VudGVye2p1c3Rp''@;'; + put 'put ''ZnktY29udGVudDpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLXhsLXJpZ2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2xyLWZsZXgtaXRlbXMteGwtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LmNsci1mbGV4LWl0ZW1zLXhsLWJldHdlZW57anVzdGlmeS1jb250ZW50''@;'; + put 'put ''OnNwYWNlLWJldHdlZW59fS5jbHItZmxvYXQteHMtbGVmdHtmbG9hdDpsZWZ0IWltcG9ydGFudH0uY2xyLWZsb2F0LXhzLXJpZ2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uY2xyLWZsb2F0LXhzLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5j''@;'; + put 'put ''bHItZmxvYXQtc20tbGVmdHtmbG9hdDpsZWZ0IWltcG9ydGFudH0uY2xyLWZsb2F0LXNtLXJpZ2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uY2xyLWZsb2F0LXNtLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY2xyLWZsb2F0LW1kLWxlZnR7''@;'; + put 'put ''ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmNsci1mbG9hdC1tZC1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9LmNsci1mbG9hdC1tZC1ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNsci1mbG9hdC1sZy1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0''@;'; + put 'put ''YW50fS5jbHItZmxvYXQtbGctcmlnaHR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50fS5jbHItZmxvYXQtbGctbm9uZXtmbG9hdDpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWZsb2F0LXhsLWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmNsci1mbG9hdC14''@;'; + put 'put ''bC1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9LmNsci1mbG9hdC14bC1ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fX0uY2xyLWludmlzaWJsZXt2aXNpYmlsaXR5OmhpZGRlbiFpbXBvcnRhbnR9LmNsci1oaWRkZW4teHMtdXB7ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgKG1h''@;'; + put 'put ''eC13aWR0aDo1NzUuOThweCl7LmNsci1oaWRkZW4teHMtZG93bntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1oaWRkZW4tc20tdXB7ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1lZGlhIChtYXgtd2lkdGg6NzY3Ljk4cHgpey5jbHItaGlk''@;'; + put 'put ''ZGVuLXNtLWRvd257ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItaGlkZGVuLW1kLXVwe2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWF4LXdpZHRoOjk5MS45OHB4KXsuY2xyLWhpZGRlbi1tZC1kb3due2Rpc3BsYXk6bm9uZSFp''@;'; + put 'put ''bXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY2xyLWhpZGRlbi1sZy11cHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1heC13aWR0aDoxMTk5Ljk4cHgpey5jbHItaGlkZGVuLWxnLWRvd257ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lk''@;'; + put 'put ''dGg6MTIwMHB4KXsuY2xyLWhpZGRlbi14bC11cHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX0uY2xyLWhpZGRlbi14bC1kb3duLC5jbHItdmlzaWJsZS1wcmludC1ibG9ja3tkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYSBwcmludHsuY2xyLXZpc2libGUtcHJpbnQtYmxvY2t7ZGlzcGxh''@;'; + put 'put ''eTpibG9jayFpbXBvcnRhbnR9fS5jbHItdmlzaWJsZS1wcmludC1pbmxpbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7LmNsci12aXNpYmxlLXByaW50LWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9fS5jbHItdmlzaWJsZS1wcmludC1pbmxpbmUtYmxvY2t7''@;'; + put 'put ''ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7LmNsci12aXNpYmxlLXByaW50LWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9fUBtZWRpYSBwcmludHsuY2xyLWhpZGRlbi1wcmludHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX0uY2xyLXJvd3tk''@;'; + put 'put ''aXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXJpZ2h0Oi0uNnJlbTttYXJnaW4tbGVmdDotLjZyZW19LmNsci1uby1ndXR0ZXJze21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjB9LmNsci1uby1ndXR0ZXJzPi5jbHItY29sLC5jbHItbm8tZ3V0dGVycz5bY2xhc3MqPWNsci1j''@;'; + put 'put ''b2wtXXtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9LmNsci1jb2wteGwsLmNsci1jb2wteGwtYXV0bywuY2xyLWNvbC14bC0xMiwuY2xyLWNvbC14bC0xMSwuY2xyLWNvbC14bC0xMCwuY2xyLWNvbC14bC05LC5jbHItY29sLXhsLTgsLmNsci1jb2wteGwtNywuY2xyLWNvbC14bC02''@;'; + put 'put ''LC5jbHItY29sLXhsLTUsLmNsci1jb2wteGwtNCwuY2xyLWNvbC14bC0zLC5jbHItY29sLXhsLTIsLmNsci1jb2wteGwtMSwuY2xyLWNvbC1sZywuY2xyLWNvbC1sZy1hdXRvLC5jbHItY29sLWxnLTEyLC5jbHItY29sLWxnLTExLC5jbHItY29sLWxnLTEwLC5jbHItY29sLWxnLTksLmNsci1j''@;'; + put 'put ''b2wtbGctOCwuY2xyLWNvbC1sZy03LC5jbHItY29sLWxnLTYsLmNsci1jb2wtbGctNSwuY2xyLWNvbC1sZy00LC5jbHItY29sLWxnLTMsLmNsci1jb2wtbGctMiwuY2xyLWNvbC1sZy0xLC5jbHItY29sLW1kLC5jbHItY29sLW1kLWF1dG8sLmNsci1jb2wtbWQtMTIsLmNsci1jb2wtbWQtMTEs''@;'; + put 'put ''LmNsci1jb2wtbWQtMTAsLmNsci1jb2wtbWQtOSwuY2xyLWNvbC1tZC04LC5jbHItY29sLW1kLTcsLmNsci1jb2wtbWQtNiwuY2xyLWNvbC1tZC01LC5jbHItY29sLW1kLTQsLmNsci1jb2wtbWQtMywuY2xyLWNvbC1tZC0yLC5jbHItY29sLW1kLTEsLmNsci1jb2wtc20sLmNsci1jb2wtc20t''@;'; + put 'put ''YXV0bywuY2xyLWNvbC1zbS0xMiwuY2xyLWNvbC1zbS0xMSwuY2xyLWNvbC1zbS0xMCwuY2xyLWNvbC1zbS05LC5jbHItY29sLXNtLTgsLmNsci1jb2wtc20tNywuY2xyLWNvbC1zbS02LC5jbHItY29sLXNtLTUsLmNsci1jb2wtc20tNCwuY2xyLWNvbC1zbS0zLC5jbHItY29sLXNtLTIsLmNs''@;'; + put 'put ''ci1jb2wtc20tMSwuY2xyLWNvbCwuY2xyLWNvbC1hdXRvLC5jbHItY29sLTEyLC5jbHItY29sLTExLC5jbHItY29sLTEwLC5jbHItY29sLTksLmNsci1jb2wtOCwuY2xyLWNvbC03LC5jbHItY29sLTYsLmNsci1jb2wtNSwuY2xyLWNvbC00LC5jbHItY29sLTMsLmNsci1jb2wtMiwuY2xyLWNv''@;'; + put 'put ''bC0xe3dpZHRoOjEwMCU7bWluLWhlaWdodDouMDVyZW07cGFkZGluZy1yaWdodDouNnJlbTtwYWRkaW5nLWxlZnQ6LjZyZW19LmNsci1jb2x7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS5jbHItY29sLWF1dG97ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13''@;'; + put 'put ''aWR0aDpub25lfS5jbHItY29sLTF7ZmxleDowIDAgOC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC0ye2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3JX0uY2xyLWNvbC0ze2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUl''@;'; + put 'put ''fS5jbHItY29sLTR7ZmxleDowIDAgMzMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMzMzMzMlfS5jbHItY29sLTV7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY2NjclfS5jbHItY29sLTZ7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LmNsci1j''@;'; + put 'put ''b2wtN3tmbGV4OjAgMCA1OC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6NTguMzMzMzMzMzMzMyV9LmNsci1jb2wtOHtmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjY2NyV9LmNsci1jb2wtOXtmbGV4OjAgMCA3NSU7bWF4LXdpZHRoOjc1JX0uY2xyLWNvbC0xMHtm''@;'; + put 'put ''bGV4OjAgMCA4My4zMzMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMzMyV9LmNsci1jb2wtMTF7ZmxleDowIDAgOTEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY2NjclfS5jbHItY29sLTEye2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9LmNsci1vcmRlci1maXJz''@;'; + put 'put ''dHtvcmRlcjotMX0uY2xyLW9yZGVyLWxhc3R7b3JkZXI6MTN9LmNsci1vcmRlci0we29yZGVyOjB9LmNsci1vcmRlci0xe29yZGVyOjF9LmNsci1vcmRlci0ye29yZGVyOjJ9LmNsci1vcmRlci0ze29yZGVyOjN9LmNsci1vcmRlci00e29yZGVyOjR9LmNsci1vcmRlci01e29yZGVyOjV9LmNs''@;'; + put 'put ''ci1vcmRlci02e29yZGVyOjZ9LmNsci1vcmRlci03e29yZGVyOjd9LmNsci1vcmRlci04e29yZGVyOjh9LmNsci1vcmRlci05e29yZGVyOjl9LmNsci1vcmRlci0xMHtvcmRlcjoxMH0uY2xyLW9yZGVyLTExe29yZGVyOjExfS5jbHItb3JkZXItMTJ7b3JkZXI6MTJ9LmNsci1vZmZzZXQtMXtt''@;'; + put 'put ''YXJnaW4tbGVmdDo4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtM3ttYXJnaW4tbGVmdDoyNSV9LmNsci1vZmZzZXQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC01e21hcmdpbi1sZWZ0OjQx''@;'; + put 'put ''LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6NTAlfS5jbHItb2Zmc2V0LTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC05e21hcmdpbi1sZWZ0Ojc1JX0uY2xyLW9mZnNl''@;'; + put 'put ''dC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NjY3JX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1jb2wtc217ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS5jbHItY29sLXNtLWF1''@;'; + put 'put ''dG97ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13aWR0aDpub25lfS5jbHItY29sLXNtLTF7ZmxleDowIDAgOC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC1zbS0ye2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3''@;'; + put 'put ''JX0uY2xyLWNvbC1zbS0ze2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS5jbHItY29sLXNtLTR7ZmxleDowIDAgMzMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMzMzMzMlfS5jbHItY29sLXNtLTV7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY2''@;'; + put 'put ''NjclfS5jbHItY29sLXNtLTZ7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LmNsci1jb2wtc20tN3tmbGV4OjAgMCA1OC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6NTguMzMzMzMzMzMzMyV9LmNsci1jb2wtc20tOHtmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2''@;'; + put 'put ''NjY2NyV9LmNsci1jb2wtc20tOXtmbGV4OjAgMCA3NSU7bWF4LXdpZHRoOjc1JX0uY2xyLWNvbC1zbS0xMHtmbGV4OjAgMCA4My4zMzMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMzMyV9LmNsci1jb2wtc20tMTF7ZmxleDowIDAgOTEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2''@;'; + put 'put ''NjY2NjY2NjclfS5jbHItY29sLXNtLTEye2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9LmNsci1vcmRlci1zbS1maXJzdHtvcmRlcjotMX0uY2xyLW9yZGVyLXNtLWxhc3R7b3JkZXI6MTN9LmNsci1vcmRlci1zbS0we29yZGVyOjB9LmNsci1vcmRlci1zbS0xe29yZGVyOjF9LmNsci1v''@;'; + put 'put ''cmRlci1zbS0ye29yZGVyOjJ9LmNsci1vcmRlci1zbS0ze29yZGVyOjN9LmNsci1vcmRlci1zbS00e29yZGVyOjR9LmNsci1vcmRlci1zbS01e29yZGVyOjV9LmNsci1vcmRlci1zbS02e29yZGVyOjZ9LmNsci1vcmRlci1zbS03e29yZGVyOjd9LmNsci1vcmRlci1zbS04e29yZGVyOjh9LmNs''@;'; + put 'put ''ci1vcmRlci1zbS05e29yZGVyOjl9LmNsci1vcmRlci1zbS0xMHtvcmRlcjoxMH0uY2xyLW9yZGVyLXNtLTExe29yZGVyOjExfS5jbHItb3JkZXItc20tMTJ7b3JkZXI6MTJ9LmNsci1vZmZzZXQtc20tMHttYXJnaW4tbGVmdDowfS5jbHItb2Zmc2V0LXNtLTF7bWFyZ2luLWxlZnQ6OC4zMzMz''@;'; + put 'put ''MzMzMzMzJX0uY2xyLW9mZnNldC1zbS0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LXNtLTN7bWFyZ2luLWxlZnQ6MjUlfS5jbHItb2Zmc2V0LXNtLTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtc20tNXttYXJnaW4tbGVmdDo0MS42NjY2''@;'; + put 'put ''NjY2NjY3JX0uY2xyLW9mZnNldC1zbS02e21hcmdpbi1sZWZ0OjUwJX0uY2xyLW9mZnNldC1zbS03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LXNtLTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtc20tOXttYXJnaW4tbGVmdDo3NSV9LmNs''@;'; + put 'put ''ci1vZmZzZXQtc20tMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtc20tMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjY2NyV9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY2xyLWNvbC1tZHtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9''@;'; + put 'put ''LmNsci1jb2wtbWQtYXV0b3tmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG87bWF4LXdpZHRoOm5vbmV9LmNsci1jb2wtbWQtMXtmbGV4OjAgMCA4LjMzMzMzMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMzMzMzMlfS5jbHItY29sLW1kLTJ7ZmxleDowIDAgMTYuNjY2NjY2NjY2NyU7bWF4LXdpZHRo''@;'; + put 'put ''OjE2LjY2NjY2NjY2NjclfS5jbHItY29sLW1kLTN7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSV9LmNsci1jb2wtbWQtNHtmbGV4OjAgMCAzMy4zMzMzMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzMzMzMyV9LmNsci1jb2wtbWQtNXtmbGV4OjAgMCA0MS42NjY2NjY2NjY3JTttYXgtd2lk''@;'; + put 'put ''dGg6NDEuNjY2NjY2NjY2NyV9LmNsci1jb2wtbWQtNntmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0uY2xyLWNvbC1tZC03e2ZsZXg6MCAwIDU4LjMzMzMzMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC1tZC04e2ZsZXg6MCAwIDY2LjY2NjY2NjY2NjclO21heC13''@;'; + put 'put ''aWR0aDo2Ni42NjY2NjY2NjY3JX0uY2xyLWNvbC1tZC05e2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5jbHItY29sLW1kLTEwe2ZsZXg6MCAwIDgzLjMzMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMzMzJX0uY2xyLWNvbC1tZC0xMXtmbGV4OjAgMCA5MS42NjY2NjY2NjY3JTtt''@;'; + put 'put ''YXgtd2lkdGg6OTEuNjY2NjY2NjY2NyV9LmNsci1jb2wtbWQtMTJ7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0uY2xyLW9yZGVyLW1kLWZpcnN0e29yZGVyOi0xfS5jbHItb3JkZXItbWQtbGFzdHtvcmRlcjoxM30uY2xyLW9yZGVyLW1kLTB7b3JkZXI6MH0uY2xyLW9yZGVyLW1kLTF7''@;'; + put 'put ''b3JkZXI6MX0uY2xyLW9yZGVyLW1kLTJ7b3JkZXI6Mn0uY2xyLW9yZGVyLW1kLTN7b3JkZXI6M30uY2xyLW9yZGVyLW1kLTR7b3JkZXI6NH0uY2xyLW9yZGVyLW1kLTV7b3JkZXI6NX0uY2xyLW9yZGVyLW1kLTZ7b3JkZXI6Nn0uY2xyLW9yZGVyLW1kLTd7b3JkZXI6N30uY2xyLW9yZGVyLW1k''@;'; + put 'put ''LTh7b3JkZXI6OH0uY2xyLW9yZGVyLW1kLTl7b3JkZXI6OX0uY2xyLW9yZGVyLW1kLTEwe29yZGVyOjEwfS5jbHItb3JkZXItbWQtMTF7b3JkZXI6MTF9LmNsci1vcmRlci1tZC0xMntvcmRlcjoxMn0uY2xyLW9mZnNldC1tZC0we21hcmdpbi1sZWZ0OjB9LmNsci1vZmZzZXQtbWQtMXttYXJn''@;'; + put 'put ''aW4tbGVmdDo4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LW1kLTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtbWQtM3ttYXJnaW4tbGVmdDoyNSV9LmNsci1vZmZzZXQtbWQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1tZC01e21hcmdp''@;'; + put 'put ''bi1sZWZ0OjQxLjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LW1kLTZ7bWFyZ2luLWxlZnQ6NTAlfS5jbHItb2Zmc2V0LW1kLTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtbWQtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC1tZC05e21hcmdp''@;'; + put 'put ''bi1sZWZ0Ojc1JX0uY2xyLW9mZnNldC1tZC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1tZC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NjY3JX19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jbHItY29sLWxne2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MTtt''@;'; + put 'put ''YXgtd2lkdGg6MTAwJX0uY2xyLWNvbC1sZy1hdXRve2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6bm9uZX0uY2xyLWNvbC1sZy0xe2ZsZXg6MCAwIDguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzMzMzMyV9LmNsci1jb2wtbGctMntmbGV4OjAgMCAxNi42NjY2NjY2''@;'; + put 'put ''NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjY2NyV9LmNsci1jb2wtbGctM3tmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0uY2xyLWNvbC1sZy00e2ZsZXg6MCAwIDMzLjMzMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMzMzJX0uY2xyLWNvbC1sZy01e2ZsZXg6MCAwIDQxLjY2NjY2''@;'; + put 'put ''NjY2NjclO21heC13aWR0aDo0MS42NjY2NjY2NjY3JX0uY2xyLWNvbC1sZy02e2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5jbHItY29sLWxnLTd7ZmxleDowIDAgNTguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMzMzMlfS5jbHItY29sLWxnLTh7ZmxleDowIDAgNjYuNjY2''@;'; + put 'put ''NjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NjY2NjclfS5jbHItY29sLWxnLTl7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmNsci1jb2wtbGctMTB7ZmxleDowIDAgODMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMzMzMzMlfS5jbHItY29sLWxnLTExe2ZsZXg6MCAwIDkx''@;'; + put 'put ''LjY2NjY2NjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2NjY3JX0uY2xyLWNvbC1sZy0xMntmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5jbHItb3JkZXItbGctZmlyc3R7b3JkZXI6LTF9LmNsci1vcmRlci1sZy1sYXN0e29yZGVyOjEzfS5jbHItb3JkZXItbGctMHtvcmRlcjowfS5j''@;'; + put 'put ''bHItb3JkZXItbGctMXtvcmRlcjoxfS5jbHItb3JkZXItbGctMntvcmRlcjoyfS5jbHItb3JkZXItbGctM3tvcmRlcjozfS5jbHItb3JkZXItbGctNHtvcmRlcjo0fS5jbHItb3JkZXItbGctNXtvcmRlcjo1fS5jbHItb3JkZXItbGctNntvcmRlcjo2fS5jbHItb3JkZXItbGctN3tvcmRlcjo3''@;'; + put 'put ''fS5jbHItb3JkZXItbGctOHtvcmRlcjo4fS5jbHItb3JkZXItbGctOXtvcmRlcjo5fS5jbHItb3JkZXItbGctMTB7b3JkZXI6MTB9LmNsci1vcmRlci1sZy0xMXtvcmRlcjoxMX0uY2xyLW9yZGVyLWxnLTEye29yZGVyOjEyfS5jbHItb2Zmc2V0LWxnLTB7bWFyZ2luLWxlZnQ6MH0uY2xyLW9m''@;'; + put 'put ''ZnNldC1sZy0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtbGctMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC1sZy0ze21hcmdpbi1sZWZ0OjI1JX0uY2xyLW9mZnNldC1sZy00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzMzMlfS5jbHItb2Zm''@;'; + put 'put ''c2V0LWxnLTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtbGctNnttYXJnaW4tbGVmdDo1MCV9LmNsci1vZmZzZXQtbGctN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1sZy04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY2NjclfS5jbHItb2Zm''@;'; + put 'put ''c2V0LWxnLTl7bWFyZ2luLWxlZnQ6NzUlfS5jbHItb2Zmc2V0LWxnLTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LWxnLTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY2NjclfX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItY29sLXhse2ZsZXgtYmFzaXM6''@;'; + put 'put ''MDtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0uY2xyLWNvbC14bC1hdXRve2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6bm9uZX0uY2xyLWNvbC14bC0xe2ZsZXg6MCAwIDguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzMzMzMyV9LmNsci1jb2wteGwtMntmbGV4''@;'; + put 'put ''OjAgMCAxNi42NjY2NjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjY2NyV9LmNsci1jb2wteGwtM3tmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0uY2xyLWNvbC14bC00e2ZsZXg6MCAwIDMzLjMzMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMzMzJX0uY2xyLWNvbC14bC01e2Zs''@;'; + put 'put ''ZXg6MCAwIDQxLjY2NjY2NjY2NjclO21heC13aWR0aDo0MS42NjY2NjY2NjY3JX0uY2xyLWNvbC14bC02e2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5jbHItY29sLXhsLTd7ZmxleDowIDAgNTguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMzMzMlfS5jbHItY29sLXhsLTh7''@;'; + put 'put ''ZmxleDowIDAgNjYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NjY2NjclfS5jbHItY29sLXhsLTl7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmNsci1jb2wteGwtMTB7ZmxleDowIDAgODMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMzMzMzMlfS5jbHItY29sLXhs''@;'; + put 'put ''LTExe2ZsZXg6MCAwIDkxLjY2NjY2NjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2NjY3JX0uY2xyLWNvbC14bC0xMntmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5jbHItb3JkZXIteGwtZmlyc3R7b3JkZXI6LTF9LmNsci1vcmRlci14bC1sYXN0e29yZGVyOjEzfS5jbHItb3JkZXIt''@;'; + put 'put ''eGwtMHtvcmRlcjowfS5jbHItb3JkZXIteGwtMXtvcmRlcjoxfS5jbHItb3JkZXIteGwtMntvcmRlcjoyfS5jbHItb3JkZXIteGwtM3tvcmRlcjozfS5jbHItb3JkZXIteGwtNHtvcmRlcjo0fS5jbHItb3JkZXIteGwtNXtvcmRlcjo1fS5jbHItb3JkZXIteGwtNntvcmRlcjo2fS5jbHItb3Jk''@;'; + put 'put ''ZXIteGwtN3tvcmRlcjo3fS5jbHItb3JkZXIteGwtOHtvcmRlcjo4fS5jbHItb3JkZXIteGwtOXtvcmRlcjo5fS5jbHItb3JkZXIteGwtMTB7b3JkZXI6MTB9LmNsci1vcmRlci14bC0xMXtvcmRlcjoxMX0uY2xyLW9yZGVyLXhsLTEye29yZGVyOjEyfS5jbHItb2Zmc2V0LXhsLTB7bWFyZ2lu''@;'; + put 'put ''LWxlZnQ6MH0uY2xyLW9mZnNldC14bC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQteGwtMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC14bC0ze21hcmdpbi1sZWZ0OjI1JX0uY2xyLW9mZnNldC14bC00e21hcmdpbi1sZWZ0OjMzLjMzMzMz''@;'; + put 'put ''MzMzMzMlfS5jbHItb2Zmc2V0LXhsLTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQteGwtNnttYXJnaW4tbGVmdDo1MCV9LmNsci1vZmZzZXQteGwtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC14bC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2''@;'; + put 'put ''NjY2NjclfS5jbHItb2Zmc2V0LXhsLTl7bWFyZ2luLWxlZnQ6NzUlfS5jbHItb2Zmc2V0LXhsLTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LXhsLTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY2NjclfX0uY2xyLWJyZWFrLXJvd3t3aWR0aDoxMDAlfSosOmJlZm9y''@;'; + put 'put ''ZSw6YWZ0ZXJ7Ym94LXNpemluZzpib3JkZXItYm94fXByZXttYXJnaW46LjZyZW0gMH1wcmV7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCwgI2NjY2NjYyk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xy''@;'; + put 'put ''LWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKX1wcmUgY29kZXt3aGl0ZS1zcGFjZTpwcmV9Y29kZS5jbHItY29kZXtjb2xv''@;'; + put 'put ''cjojYzIxZDAwO2NvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItODAwLCAjYzIxZDAwKTtwYWRkaW5nOjA7YmFja2dyb3VuZDowIDB9dWwubGlzdC11bnN0eWxlZDpub3QoW2Nkcy1saXN0XSl7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWxlZnQ6MDtsaXN0LXN0eWxlOm5vbmV9dWw6bm90KFtj''@;'; + put 'put ''ZHMtbGlzdF0pLG9sOm5vdChbY2RzLWxpc3RdKXtsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZTttYXJnaW4tbGVmdDowO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1sZWZ0OjB9dWwubGlzdDpub3QoW2Nkcy1saXN0XSksb2wubGlzdDpub3QoW2Nkcy1saXN0XSl7bGlz''@;'; + put 'put ''dC1zdHlsZS1wb3NpdGlvbjpvdXRzaWRlO21hcmdpbi1sZWZ0OjEuMWVtfXVsLmxpc3Q6bm90KFtjZHMtbGlzdF0pLmNvbXBhY3Qsb2wubGlzdDpub3QoW2Nkcy1saXN0XSkuY29tcGFjdHtsaW5lLWhlaWdodDouOXJlbX11bC5saXN0Om5vdChbY2RzLWxpc3RdKS5jb21wYWN0PmxpLG9sLmxp''@;'; + put 'put ''c3Q6bm90KFtjZHMtbGlzdF0pLmNvbXBhY3Q+bGl7bWFyZ2luLWJvdHRvbTouM3JlbX11bC5saXN0Om5vdChbY2RzLWxpc3RdKS5jb21wYWN0PmxpOmxhc3QtY2hpbGQsb2wubGlzdDpub3QoW2Nkcy1saXN0XSkuY29tcGFjdD5saTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH11bDpub3Qo''@;'; + put 'put ''Lmxpc3QtdW5zdHlsZWQpOm5vdChbY2RzLWxpc3RdKT5saT51bC5saXN0LXVuc3R5bGVkLG9sOm5vdChbY2RzLWxpc3RdKT5saT51bC5saXN0LXVuc3R5bGVke21hcmdpbi1sZWZ0OjEuMWVtfWxpPnVsOm5vdChbY2RzLWxpc3RdKXttYXJnaW4tdG9wOjA7bWFyZ2luLWxlZnQ6MS4xZW19dWwu''@;'; + put 'put ''bGlzdC1ncm91cDpub3QoW2Nkcy1saXN0XSl7bWFyZ2luLXRvcDowfXVsOm5vdChbY2RzLWxpc3RdKS5saXN0LXNwYWNlcixvbDpub3QoW2Nkcy1saXN0XSkubGlzdC1zcGFjZXJ7bWFyZ2luLXRvcDoxLjJyZW19aDE6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LWgxLWNvbG9yLCBibGFjayk7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1oMS1mb250LXdlaWdodCwgMjAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xy''@;'; + put 'put ''LWgxLWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOjEuNnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6Mi40cmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1i''@;'; + put 'put ''b3R0b206MH1oMjpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItaDItY29sb3IsIGJsYWNrKTtmb250LXdlaWdodDoyMDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWgyLWZvbnQtd2VpZ2h0LCAyMDApO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5leHQs''@;'; + put 'put ''SGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItaDItZm9udC1mYW1pbHksIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmKTtmb250LXNpemU6MS40cmVtO2xldHRlci1zcGFjaW5n''@;'; + put 'put ''Om5vcm1hbDtsaW5lLWhlaWdodDoyLjRyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWgzOm5vdChbY2RzLXRleHRdKXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1oMy1jb2xvciwgYmxhY2spO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItaDMt''@;'; + put 'put ''Zm9udC13ZWlnaHQsIDIwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1oMy1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVl''@;'; + put 'put ''IiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToxLjFyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9aDQ6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWg0LWNv''@;'; + put 'put ''bG9yLCBibGFjayk7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1oNC1mb250LXdlaWdodCwgMjAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWg0LWZv''@;'; + put 'put ''bnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOi45cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTow''@;'; + put 'put ''fWg1Om5vdChbY2RzLXRleHRdKXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1oNS1jb2xvciwgIzY2NjY2Nik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1oNS1mb250LXdlaWdodCwgNDAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZl''@;'; + put 'put ''dGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWg1LWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOi44cmVtO2xldHRlci1zcGFjaW5nOi4wMWVt''@;'; + put 'put ''O2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9aDY6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLWg2LWNvbG9yLCAjMzMzMzMzKTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWg2LWZvbnQt''@;'; + put 'put ''d2VpZ2h0LCA1MDApO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5leHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItaDYtZm9udC1mYW1pbHksIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFy''@;'; + put 'put ''aWFsLCBzYW5zLXNlcmlmKTtmb250LXNpemU6LjdyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9keTpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDEtY29sb3Is''@;'; + put 'put ''ICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDEtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1zaXplOi43cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLWJvdHRvbTowO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMs''@;'; + put 'put ''QXZlbmlyIE5leHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItZm9udCwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO21hcmdpbi10b3A6MCFpbXBvcnRhbnR9Ym9keSBw''@;'; + put 'put ''Om5vdChbY2RzLXRleHRdKXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1wMS1jb2xvciwgIzY2NjY2Nik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1wMS1mb250LXdlaWdodCwgNDAwKTtmb250LXNpemU6LjdyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUt''@;'; + put 'put ''aGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9keSAucDA6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wMDpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDAtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjIwMDtmb250''@;'; + put 'put ''LXdlaWdodDp2YXIoLS1jbHItcDAtZm9udC13ZWlnaHQsIDIwMCk7Zm9udC1zaXplOjFyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9keSAucDI6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wMjpu''@;'; + put 'put ''b3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDItY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDItZm9udC13ZWlnaHQsIDUwMCk7Zm9udC1zaXplOi42NXJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1o''@;'; + put 'put ''ZWlnaHQ6MS4ycmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206MH1ib2R5IC5wMzpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnAzOm5vdChbY2RzLXRleHRdKXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1wMy1jb2xvciwgIzY2NjY2Nik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQt''@;'; + put 'put ''d2VpZ2h0OnZhcigtLWNsci1wMy1mb250LXdlaWdodCwgNDAwKTtmb250LXNpemU6LjY1cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHkgLnA0Om5vdChbY2RzLXRleHRdKSxib2R5IHAucDQ6''@;'; + put 'put ''bm90KFtjZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXA0LWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXA0LWZvbnQtd2VpZ2h0LCA2MDApO2ZvbnQtc2l6ZTouNnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1o''@;'; + put 'put ''ZWlnaHQ6MS4ycmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206MH1ib2R5IC5wNTpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnA1Om5vdChbY2RzLXRleHRdKXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1wNS1jb2xvciwgIzY2NjY2Nik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQt''@;'; + put 'put ''d2VpZ2h0OnZhcigtLWNsci1wNS1mb250LXdlaWdodCwgNDAwKTtmb250LXNpemU6LjZyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9keSAucDY6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wNjpu''@;'; + put 'put ''b3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDYtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDYtZm9udC13ZWlnaHQsIDYwMCk7Zm9udC1zaXplOi41NXJlbTtsZXR0ZXItc3BhY2luZzouMDNlbTtsaW5lLWhl''@;'; + put 'put ''aWdodDouNnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9keSAucDc6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wNzpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDctY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdl''@;'; + put 'put ''aWdodDp2YXIoLS1jbHItcDctZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1zaXplOi41NXJlbTtsZXR0ZXItc3BhY2luZzouMDNlbTtsaW5lLWhlaWdodDouNnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9keSAucDg6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wODpub3Qo''@;'; + put 'put ''W2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDgtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDgtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1zaXplOi41cmVtO2xldHRlci1zcGFjaW5nOi4wM2VtO2xpbmUtaGVpZ2h0''@;'; + put 'put ''Oi42cmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206MH0udGV4dC1saWdodHtmb250LXdlaWdodDoyMDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LWxpZ2h0LCAyMDApfS50ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fS50ZXh0LWNlbnRl''@;'; + put 'put ''cnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9LnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fS50ZXh0LWp1c3RpZnl7dGV4dC1hbGlnbjpqdXN0aWZ5IWltcG9ydGFudH1odG1sOm5vdChbY2RzLXRleHRdKXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1nbG9iYWwt''@;'; + put 'put ''Zm9udC1jb2xvciwgIzY2NjY2Nik7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1mb250LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlh''@;'; + put 'put ''bCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOjEyNSV9QGZvbnQtZmFjZXtmb250LWZhbWlseTpNZXRyb3BvbGlzO3NyYzp1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUZRZ0FCTUFBQUFBbThBQUFRQUFBQUFBQUFBQUFBQUFB''@;'; + put 'put ''QUFBQUFBQUFBQUFBQUJHUmxSTkFBQUJxQUFBQUJ3QUFBQWNmTkg1NWtkRVJVWUFBQUhFQUFBQVRRQUFBR0lIMVFmOFIxQlBVd0FBQWhRQUFBY2FBQUFPZGp5K2VqbEhVMVZDQUFBSk1BQUFBQ0FBQUFBZ1JIWk1kVTlUTHpJQUFBbFFBQUFBVFFBQUFHQm9QcXpyWTIxaGNBQUFDYUFBQUFKc0FB''@;'; + put 'put ''QURubmRERDdGamRuUWdBQUFNREFBQUFEQUFBQUE4RVk0QmpHWndaMjBBQUF3OEFBQUdPZ0FBRFJaMlpIMTJaMkZ6Y0FBQUVuZ0FBQUFJQUFBQUNBQUFBQkJuYkhsbUFBQVNnQUFBTm5NQUFHZ1V4RklnTjJobFlXUUFBRWowQUFBQU5nQUFBRFlMWVlnVWFHaGxZUUFBU1N3QUFBQWhBQUFBSkFk''@;'; + put 'put ''MkJESm9iWFI0QUFCSlVBQUFBb2dBQUFUdXVQSS9GR3h2WTJFQUFFdllBQUFDY2dBQUFucUphbkJ3YldGNGNBQUFUa3dBQUFBZ0FBQUFJQUtFQWVsdVlXMWxBQUJPYkFBQUFZSUFBQU5XTGRDRTlYQnZjM1FBQUUvd0FBQURvUUFBQmlHWEZqMktjSEpsY0FBQVU1UUFBQUNCQUFBQWpSbFFBaEIz''@;'; + put 'put ''WldKbUFBQlVHQUFBQUFZQUFBQUc5bmhZbUFBQUFBRUFBQUFBMUZHMWFnQUFBQURUd1oyR0FBQUFBTlMrcHZWNDJnMk1RUXFFUUJERUVrZjBNTFBvZjd5cEwvRG9mWGZWL3ovQUlnUkMwVFFDTFI2Y2RGUmtqVnNvN0h6VHYxRDRCN200MDQ4RE9sb3BObHY2NDVTZVhYTFQ1MXNYelNhK1czQUYz''@;'; + put 'put ''QUFBQUhqYWpWY0JiRmJWRmY3T3VmZSt2LzBMV0VvTENCMERVaGt4VFdXRVNVVkdpV01Gc1ZQRG1FRUhabHVjWTYxUTdCalppREZLSFpxbDZZekREcEUwcUF5TU5zQlFzU0t5cHF2T09VZGtZNlloWUZ3SHlEWW0wN25GQ1BMMnZmTis2RjlvdC9HRmo4TzU5OTE3enpuZjdibUZBTWhpTWhaQzV0''@;'; + put 'put ''WFdMVVlCUEQySVl6aitJMUM0aG04M3JVVHBpbTgyTmFCOFJjT0tCczRHL2Nsb09pTmh4Kyt5R0kwSm1HSWVod3JVdVk1ME5GcGxxMHJVaW9nZnlmRFYvR0tjK1FKS0wwQlFHN2VTQTJhakJaOGlsbkZRSG9QelpLd2NRUkdHOFdSL2o3dmo3WEZ2ZkJSRC9Jay9HSExrdDRONis3aDMvditQeHo4''@;'; + put 'put ''ZGNvWDNoaHdaK2p4L2pQY09NYkk5N292M0piakkzOHUvdjBrdzJCNXhLN09rbU1oTVQyRzJQa2NvcWdpSHF3aVA2VVRBRjRnSU00a01yaUVLTUlzb1pHNW5zMUpyQ01IOStCRm5Qa2dFWnJ5Ri9oY0l3WXVFNENWQ2NaRHcrQVBoY1pRSStETVI0VGdSNFQwaXdta2lndytJRE00UWhhemVwMXd0''@;'; + put 'put ''SnJKU0xNVW9sQklwSVpkS0tYa2NLNXZsMnRPb2tncCtjeVVoZHU3MHhHb25kblppYnljT21FY1VvSllveEFJaWkwVkVFUnJ4ZmE2UVJCSlpKSkZGRXZBVFBNcjViVVFoZm9aTm5QOEVmczc1MjRraTdDUXkyRVVVNEJkRUJydUpBanhIWlBBOFVZQTlSQ0U2aVVMc0o3TG9JckxvSnJMb0liSjRs''@;'; + put 'put ''UkQ4bWhETFRvUjNpQ0w4aVVqem9wWVh0Yng0eTB1d3ZBVExpN2U4ZU11TGx6RXlodm02WEM0bkp6a0tYTFdLR1pyQ0dsZXh0dE5aMDVuTXpDeG1wQkdyY0RlYThEMnNaaTN2eHpvMDR3Rm00VUZHdjVNUlBjZEt2c2dLSG1UbGpySml4MW1wMHp6SkdidFp4ZHkzTkxsZmVxL2R3OWVraVhFUHA3''@;'; + put 'put ''cjJVWGV0OGI4R1VhdU5ESFlITG95Y1NqRElsNmVIdkJ1bnppdWU5L3BvM0J3M1h6eVMzcnA0Yzd4NTBKRy8yRGVLY3RPRW1DWVVYeU1jYmlVOGJpTUNsaElSRmZFbzV5UnFFRk9EbWhvVUhVU0VIVVJrbFJhcnRGaWx4U290VmxmRk1jTGhCT0Z3a25BNFN3U2NJeUlaS1NOWjExRXlpbHdtWmVT''@;'; + put 'put ''a29tSVZGUmt2NDdtK29oS1hFVVVZU1F3enBZc3BYVTNwTHFmMCtVUyswcjNGRStYRmt6R2x1NXpTK3pYdUxTcHZVV1VzcXZOS1R6V2VxbnN2TWJTdWsyaTlhVlp6RVNiS2RSWm54dlRyVEwrYWl6bFJzZVlpVDdTc2VmSG5LOXBaRmpJeVRhN2g3c2xQcjFwR3VJajF1cFZ4TFdVa2JZeGtJeDVq''@;'; + put 'put ''TkUvZ1NUeUZyWXhvT3lQWndkdll5ZE4yOFpROVBOMHgxdUFrVDNhT0p4akYzY1p3bC9GY2NZTHBXVEhDT2txSnFhT0V1OVRRRXJOcjJJbU9SQlBJZmN4L3Q2eVhGbmxFTmtxN2JKVm5aSmZza1gzU0xhL0xBVGtraCtWZE9TR241RVA1V002cDE2d1c2Mmd0MThrNlZhdDBoczdTdVZxcmRicEls''@;'; + put 'put ''K2p0ZW9mVzZ5cGRvL2ZvT24xSVczV0RidEl0dWswN2RMZDI2bjd0MFRmMExYMWJqMmlmbnRUMzlTUDl4TUZGYnBncmNXUGRCRmZocm5UVDNOVnV0cnZPTFhBM3VzWHVOdmNOZDZlN3l6VzVIN2g3M1FQdXgrNWgxK1kydXlmZDAyNkhlOTd0ZFYzdU5mZW0rNzNyZGUrNFkrNnY3aC91Mys2c1Yx''@;'; + put 'put ''L2dSL2hTUDg1UDlGTjhwWi91cS8wY1A4OHY5RGY3Vy94Uy95Mi8zSy8wcS8xYWY1OWY3MXY4STM2amIvZGIvVE4rbDkvajkvbHUvN28vNEEvNXcvNWRmOEtmOGgvNmovMjU0RU0yRklmUm9UeE1EbE5EVlpnUlpvVzVvVGJVaFVWaFNiZzkzQkhxdzZxd0p0d1Qxb1dIUW12WUVEYUZMV0ZiNkFp''@;'; + put 'put ''N1EyZllIM3JDRytHdDhIWTRFdnJDeWZCKytDaDhFaUdLb21HOEhVMjZrOXhzUE4rNHhuaER3bWcwYmpQUDJuNS9qbTh3cmpTKzFuaGx3bHBtOXZYR2M0d3JsRDlUNVFyanE0eXJFMGE5Y2J1K1RHNHdmNlh4YlBQM0dwOHh6MFRqeDQwbkdVZkdDMXc5K1NuanBzRlpmNVVYWTQzNUwyRjgyWGlM''@;'; + put 'put ''Y1dNL3k3STBkclB2TW43VmVNT2xuR2JBN0V2NWV1TUs3ZnBmck04T3lGWFhZSXk1eG84YjEvY3pzOWRsMmZ2dm5PYXphMUNlbE1kTmVXY2VZT2ZWdE5uOFY1Zy8zNTV2T1d3eGUxbGU1dE1vQnRnMm1xb2kzNTltdFRxMWJVNnFtYlE2YWRTcFBuTjJ6cC9NYVRPNzNhMDVyOTZjeGc2YTNaUFl1''@;'; + put 'put ''WnFtR1Z1YlUzSzR5SitlSWMzYkFiUFhXbzBPSmZOZHFzQWJiSzllbTJNM0l0WHRBSCtsMldkeU5kcDVRZFg1L3ZRR1hadW5tYlFpK2ZaV3M3K2UrbTIrM1FzdE03L3BJYWUwU1huMkhPUElQRVBaZnpQN2JvdXUxdXczemM1ZnVTYitKYmtxM245UnBmSjNyTTdkN3E3L2d3Zk9WSHpXM3FYZ3Uy''@;'; + put 'put ''c3FzNUs4VGoyN2RpVzdZUExDanZCNXZzUXltSUZxOXJDa2M0OWczLzRpZTNyU3VVZmFHN1hFT3Zjby9sNjFrSDJvamlqRFRleHpvOW5wYnVIdlBrdUljdXZsbjJIWFc4YXUxY2kzMjBSN3ZjMWtSMi9uZWx2WStiNWl2ZStyN0g0dnMwTytnZ1A0RGw5MHAvRkRlMVZ1eEQ4bDRERjI0dkhvc0o3''@;'; + put 'put ''YXlmT0tYR2EvbTBXUWVMMnA4RDdjU1Y3UGJsZUVzZHlyZ2hGTnc5VTg5WFU4NVkxWXpORVhUTHUvTXo1c2JIZUdHdTNuZzhiTGpiY1o5eG1mTlM3Q2w3alBjbnhYTWxJZ2haS1ZJaGt1SXk0OTBYOEF0bEtYV0FBQUFBRUFBQUFLQUJ3QUhnQUJSRVpNVkFBSUFBUUFBQUFBLy84QUFBQUFBQUI0''@;'; + put 'put ''Mm1OZ1pySmduTURBeXNEQzFNVVV3Y0RBNEEyaEdlTVlSQmpOZ0h5Z0ZCeXdNeUNCVU85d1B3WUhCZ1hWUDh6Uy80MFpHSmlQTXFvcU1EQk1Cc2t4c1RLdEIxSUtERXdBeGxjS05nQUFBSGphdFpOWlVJNVJITVovLzdkOUVTb1U5ZmIyYWROR29oUkY5cVhJdnBTczJiS3YyUnJyRUVORlVzaWVK''@;'; + put 'put ''S01aRTFOVHRodnV1RFZqakw3UGxWdnVEQjNIVjB3enpMaHladDV6M25QT25PZWNlWjdmSDNDaDZ3dEJkSTlVNnBrNDU2NVNyTWNsak1PTmdaUndpenJ1MGtnVHpiVFFKaDRTSUlNa1RBWkxuQ1JKcXFSTHBreVZITW1UUWltU0VpUFZlR1c4ZDRreWo1dXQ1aFB6aStWdUJWckJWcWhsczZLc1lW''@;'; + put 'put ''YTZkZC9tSC9sTktYMkh4WTBlMm85cDQ1bjRTbjh4eFNheGtpZ3BraVlaa2lYWmtpc0Zza0UyYSsyWHhsdXRmY2hzTWR2Tno1WmhCVmhCVm9oVGU2aVY5a3RiZlZRdjFIUDFWTFdyVnZWSU5hdUhxa2sxcWdaVnIrclVOVldyYWxTMXFsS1Zxa0tWcVRPcVZKM29mTk9aMVpuMC9aT2ozRkhneUhm''@;'; + put 'put ''RTJBZmEvZXcrZGkrN205M28rTnJ4dWVQd2g1QjN5VjFlL2FmbWJuZzdrK0NQV3dTais4LzRoMGJYU1JkY2RYYnVlT0NKRjk3NDRFc3YvT2hOSC9yaVR3Q0I5S00vQXdnaVdHYzhTS2NlaWttWVRpUWNHNE9KSUpJb29vbGhDTEhFRVU4Q2lReGxHRWtNSjVrUmpDU0ZWRWFSUmpxakdVTUdtWXpW''@;'; + put 'put ''ekdReG5nbE1aQktUbWNKVXBqR2RHV1NUdzB4bWtjdHM1akNYZWN4bkFRdFp4R0pOV2g3NUxLV0FaU3huaFg3L0RuYXltMklPY1p6VGxGTkdCZWM1UnlWVlZIT1JHaTV4aGN2VWNwWHIzTlFVL1dUME5nMmFwWHVhcHA5dEZhdTFIZEZzNEd5M04rdFpvL3RkblBqdFZ1RmZITHhBUFp0WjJXTmxM''@;'; + put 'put ''WnNrUm85YjJNNHg3RGdrWFBNWktWRzZBaUs0bzNjZW9HbVdCRjBQOGQxbmlweGh4TEtOdld4bEgzczR3RUZkUy9zNXdsRzlkWmhTVG5HUzE3cWFlckZPdk1SYmZOZ29mcHAvengrUXphcm9lTnBqWU1BQ0hJSFFrc0dTYVQwREE5TnVKbFlHaHY4aHpOTC9qWmwyLy8vQ2RJQko4UCtYLzM0Z1Bn''@;'; + put 'put ''RElQUTBpZU5xdFZtbDMwMFlVbGJ4bEl4dFphRkZMeDB5Y3B0SElwQlNDQVFOQml1MUN1amhiSzBGcHBUaEo5d1c2MFgxZjhLOTVjdHB6NkRkK1d1OGIyU2FCaEo3MjFCLzA3c3k3TTIrYmVXTXlsQ0JqM2E4RVFpemROWWFXbHlpM2VzMm5VeGJOQk9HMmFLNzdsQ3BFZi9VYXZVYWpJVGVzZko2''@;'; + put 'put ''TWdBeFBMcllNMC9CQzF5RlRrUWkzSFVvcHNTbm9YcDB5MDlkYU0yYS9WMmxVS0ZmeDg1UXVCQ3ZYL2J6TVcwMWZVTDJPcVlYQUVsUmlWQW9DRVNmc2FKTm1NTlVlQ1pwai9Sd3o3OVY5QVcrYWthRCt1aDlpUnJDdW45RThvL25RQ29NZ3NNaTBnMENTVWZlM2dzQ2h0QkxZSjFPSTRGbldxL3VV''@;'; + put 'put ''bFM3bHBJczRBakpEaHpKS3dpK3hHV2MzWE1FYTl0aEtQT0F2U0pVR3BXZnpVSHFpS1pvd0VNOWxDd2h5MlEvclZyUVMrRExJQjRJV1ZuM29MQTZ0YmQraHJLSWV6MjRacVNSVE9ReWxLNUZ4NlVhVTJ0Z21zd0VEbEoxMXFFY0pkblhBYTl6TkdCdUNkNkNGTUdCS3VLaGQ3Vld0bmdIRHE3aXor''@;'; + put 'put ''Vzd1KzlUZVd2UW51NWcyWFBBUWR5Z3FUUmx4WFhTK0RJdHpTc0tDa3gwdlVSMFpMU1ltQmc1WVRsTllaVmozUTl1OTZKRFNBYlVHK3RNb3RpWHp3V3plb1VFVnAxSVYyb3dXSFJwU0lBcEJoN3lydkJ4QXVnRU44bWdGbzBHTUhCckdOaU02SlFJWmFNQXVEWG1oYUlhQ2hwQTBoMGJVMHBvZlp6''@;'; + put 'put ''WVhneWthM0pLM0hScFZTOHYrMG1veWFlVXhQNmJuRDZ2WUdQYlcvWGg0R0FXTVhCcTIrY3ppSkx2eElmNE00a1BtSkNxUkx0VDltSk9IYU4wbTZzdG1aL01TeXpyWVN2UzhCRmVCWndKRVVvUC9OY3p1TGRVQkJZd05ZMHdpV3g0WkYxdW1hZXBhalNrak5sS1ZOWitHcFNzcU5JREQxdy9Eb1N0''@;'; + put 'put ''Q21QOXpkTlEwaGd6WGJZYng0WnhOZDJ6ck9OSTBqdGpHYkljbVZHeXluRVNlV1I1UmNacmxZeXJPc0h4Y3hWbVdSMVdjWTJtcHVJZmxFeXJ1WmZta2l2dFlQcU5rSisrVUM1RmhLWXBrM3VBTDR0RHNMdVZrVjNrelVkcTdsTk5kNWExRWVVd1pOR2ovaC9pZVFuekg0SmRBZkN6emlJL2xjY1RI''@;'; + put 'put ''VWlJK2xsT0lqMlVCOGJHY1Jud3NuMFo4TEdjUUgwdWxSRmtmVTBmQjdHZ29QSGJCMDZYRTFWTjhWb3VLSEpzYzNNSVR1QUExY1VBVlpWU1MzQkVmeWJBNCtybHVhYzFKT2pFYlo4MkppbzlHeGdFK3V6c3pENnRQS25GYSsvc2NlR2JsWVNPNG5mc2E1M2xqOGcrRGY0c1haU2srYVU1d2NLZVFB''@;'; + put 'put ''SGk4djhPNEZWSEpvZE9xZUtUczBQdy9VWEdDRzZDZlFVMk15WUlvaWhyZmZPVHlTck5aa3pXMENoOVBCRG9yMnNHOGFVNk1JNlVsdEtoSkdnRXRnNjVaMERUcTgreXRabEVLVVc1aXY3TjdLYUtZN0VVWnpJQXBLT1Ntc2JEczc2UkVXbGc3cWVuMDBjRGxSdHFMbml3MVcxWnhoYjBINzJQSXpT''@;'; + put 'put ''eDVOMUpldUNrcDdVV2JVS2U4eUFJT3VaRTl1Q2FDVzJqdnNvcGlTbGlvSWo0SWJRWDc3V05FSmkwemd5NkJJbVJ4c3JJUDdZb2RPYUtDZGdMZmV0SXE3OXRDN2M5MThpQXdtNTF1NTBHV2thTHpYUlgxYW4xVjF0Z29WNi9jVFI4SDA4NndzZVlYUlJsUExudmZuaFRzVjZjRXVRSkdWM2EvN2tu''@;'; + put 'put ''eDlqdlc3VXBKUHRzWGRubmlkVW9WOGwrQUIwUHVsUGNpR2tXUnMxaWxFYyt2VzNneVJUa294a1Z6SEJmMDBoN3RpbFhmbzEzWWQrMmpWbHhXVkxJZlpkQlZkTlp1d2pjK1h3anFRQ29LV3FRaVZuZzZaRDZiblpyd3NaUzRMRVhjczJUWFJmUWRQQ0VkNHI4NHhMWC82OXh5Rk55aXloSmRhTmNK''@;'; + put 'put ''eVFkdEh5dm9yU1c3azRjcVJtZnR2R3hub2gxSk4rZ2FncDVJTGpqK1h1QXVqeFhwRk83ejh3Zk1YOEYyNXZnWW5RYStxdWdNeEJMbnJZSUVpeXJlMGs2bVhsQjhoR2tKOEVYVlFyTUNlQW5BWlBDeWFwbDZwZzZnWjVhWlV3RllZUTZEVmVZd1dHTU9nM1cxZzY1M0dlZ1ZJRk9qVjlXT21jejVR''@;'; + put 'put ''TWxjd0R5VDBUWG1hWFNkZVJxOXhqeU5ickJORCtCMXRzbmdEYmJKSUdTYkRDTG1WQUUybU1PZ3dSd0dtOHhoc0tYOWNvRzJ0VitNM3RSK01YcEwrOFhvYmUwWG8zZTBYNHplMVg0eGVrLzd4ZWg5NVBoY3Q0QWY2QkZkQlB3d2daY0FQK0trNjlFQ1JqZnhqTFk1dHhMSW5JODF4Mnh6UHNIaTg5''@;'; + put 'put ''MWRQOVVqdmVLekJQS0t6eFBJOU52WXAwMzRJb0ZNK0RLQlRQZ0szSEozdjYvMVNOTy9TU0RUdjAwZzA3L0R5amJoK3dReTRZY0VNdUZIY0M5MDkvdEpqelQ5NXdReS9aY0VNdjFYckd3VGZrc2dFMzVQSUJQdXFKMitUS3J6WjlXMXFYZUwwbFAxMjUxMzJQa2JaVE82TEFBQUFBRUFBZi8vQUE5''@;'; + put 'put ''NDJyVjlDWGhiVjVub09lZEt1cElsMmI1YUxjdWJyTlhXYW11enZNalhTN3d2Y2J6RlNSeG5jNXkwS1YzU2xpNGhwTFFORkFxVUFXWllocjR1MEtGTVM1SzJkS0h0RkNoUTJxSExERytBZWNNSDVRMHpMRy9ZQmpvd2JYMDkvem4zWGxtMjdLYndmUysxSlB2cXJQLzU5K1VVbGFIRnRTVCtGT2RH''@;'; + put 'put ''SEtwQWR1UkNYdFNFMGlpSHV0QVFjb21PM254bmV6YVRiQTc2NnF1ckhFS2xRVU5RV1NLczlRZ2UzcDYwZSszSnREZWRUUFBzazRkZjFhZjBHZjJrMzhDVHRQcTcwb1oxeUNiVCtGUFNzN2pyUDN0NjcrdnR2ZSsrM2thUHA3ZTM5MGl2NTliN2pqUjZqbmp1dSs4K3o1RWp0dzRNM0hkMG9PRkY3''@;'; + put 'put ''bWQ5SHI4SGZtNDYxamd3NERzSXZ3MTRPbnNiajl6UTVvenZ2UExLQjYrOGNtZDh4UlAzd0E5Q0JFMnYvUjZkSStmWTN2eGlJOElZTFNLRXlrY1JJZHlTQm5PY2t4dlRhRFFWbW5LL1VLbmxuV0Zya3ZNNkF1bFVKdG5xc050MDN2M0Q1b1RHN2JaWnE2dXQ1SnhrZWRGdHM3amRGcHNib2JVMU5J''@;'; + put 'put ''Z2Z4V1BrazVXTnFBeWhTZzdlSDBGMDNpQzhYUWZ6dWxFOXVtSDB2SGZuYmpGVW9TTkl5eEZNRUY0MllvT2hmTFM4MHN6eHZIN1JWRWIwZW1GVWd3bXBJR051TVVBZnNDK1JuajlhMms5cHVDRFdJVlJmVjFzRDA3aXJYVlZPV0xCVktQemphOE9ZVC9KZTNwdGxyMnlTdlpJOGUvSDBTL3liekkz''@;'; + put 'put ''bUcyTnRzYnZnZGEzNTJzdzd6ZGNwZjkxZ2Z2aXV6RjM0YTk5TlB3Yi8wdDlOUHc3LzB0OEZTTWJXSGlVUjhnZmtRU0VVUjUxaUx1YjMxZFZXdTV3MnM2bk1ZT2FJRGlPT2pDRENrWnNSUnZnV0NtYTBCSEJ4b3JHbXBxWjRVOXhoRnl4YTNoSDJsV1BBa1hRTUI3TU9weERENlZRZVp3RlpIRTRl''@;'; + put 'put ''bmdsMTJJNGN6blE1ZkdUU3FVQlFJSkhVa1IxaXo4bG9hT2Z4b3dkYTkrYkVLeFpEdnBubzVlK1E5b3M3T2thd2VXWjA2dWE1Tk5mZHkyY2pyVHNyY1dYMXJxSGtiRnJYMldXY2JmVkdlT2xOOSs1SlhKTzIvWjRmYnBXeUk2bVdEb2YwSnF4TmkrSnIvMFgrbFh3Sk1NVUtweFpISGVpRjBmTlZj''@;'; + put 'put ''SEpoSTlhV1lhelQ0aFdrUTNxRFRuOE1hVFJvaVdDS1NXWTRFbTdKeEJPT3ErREczS1BuZzlBbC9wWmRFRFJsL2ZnbEUrWjVKdzlubnR5aUJ5SFFsblpEVy9kYVdCQURpVVJEZzgyR1VLSWowWjVKTmNRYllxR0FyZDVXVjExbHRRaVZzSm55UURsdkQxdGs0Q1piQWFhMmN1ekZTZXkxVUtCNkcz''@;'; + put 'put ''VjJteU9KTm4yZngrdmYvZlZBTURRWWlRN0NleFIvcUZOcTdyd20xeDZKdExXSDhkUkFLRGdZbGIrS3RkR0h1UWhlakU3RVczWkdvNU9KbG9rbzNyVTZoVDg0a000TURtVFRBOUx4NkVSTFlpSVduWXkzVEVZVEE1bjBJUDBLOXNlaHByWGZreFBrTVlCOUdQaFBYdXlJUi8xMU5XNlgwNERMT0ZM''@;'; + put 'put ''UGtJcGlQbDRDTW5hTWFvdXdLaEpwYUlpa0k2bUdjRU56dUZFSG1LVU42cnlOZEUvWjRvM0JOODVNMXFuam5ZanV6Q252MHBJTkJPSFBPcHdraWFWOUp6dVA1Tzd4MUVYR0U1SGg4TnhjNXNwSVV5YVJ2RnI2ZEZkdC9VUmZyamswZmpwL3RubW9tVCt3M0xLUXUya2dPdWlMaklUREk4MzVVWi80''@;'; + put 'put ''VHZGQTFmSGhhOGp4OWxoTlY2Z2hHMjd1V2owM2Q4dFkxLzZRNkFWaUFINkJQa0UraVV3b09ucmVBWWhpcEN5Sm5TOEdKS2hFOU05NStCTXZVdElaWDNqRTdpT3dIV3VCSTFWZzcyeDVsU0E0eS9rZy9vOUQzc29xcCtBOWxJSFcrYlU1SENOUHdkaTZoMDFhbkFnek5wWjFBdm5ZblB6bkw3bmtz''@;'; + put 'put ''SGR1NFp4MzE0OXZ1T0hIdS8yN3YzN1ZEeTRFWUNLZzV6bGNwL2JUUVQ4bkk3YXNETERZdVlVNTcySG9mTXVGSDF6MWRlakh1dE4rSGZnbTRIMWZRck5JRkx2OEdKUEpIZDJ4UnBkTnEwZDRGOVlpYm9URFdJT1JGcU1WSGRacXlSSkZhTzBZN0c0V3pRd1BaZEpOd2RvYU4wK3hFMWJhalhuZ0Ju''@;'; + put 'put ''QnFRZmdqbStuR3dZRDhXN0xWNmFqSHdTSUlaTExBSnRoenV3MDZWV0NIMDhGK1o3M2hQeWRqM1Y4MkczVGVpb1p5cmNiTWE4cWMwWEFrWmkvVDhHYXR4dExzMHhuTXdLejB1c3BLTG1UVGFzMDhWeWFFZFJHbkkrd280M2l6VHVNSU9ZdzZ2ZG1BYnpMcmExcWFhOHhWUEdmU2E0eThXUkFzRmlO''@;'; + put 'put ''djFPaE5YRmxqVFhOTGpkNXMxanRhNDZaeXJzSEltWFJhRTE4bUVHZ2ltSGlUVm1maXloc3MrbmlyUTIrbUI0djYwSEZTVGxMSWlBS0FFeG9PYTJZQmw0RXpZQTR0QTduVG85ZmdjY2JESzNWOGRSaDdxZlJNVXltYUpPWGZ6RC8zWFA2Yk9QNU4rZ3NkYjNMdE5Ib003VVRseUNrQzZhSkJGYVdB''@;'; + put 'put ''TUh3V2lqMkE4NDNySW8yZkRKcXRJTkdjTmZXaDQ5RUVGVzMrdWxxeGxZN1ZobjZMTzNBTXFMRkt0RE5rbkYxSFJxR1NvYUxIN21uRG5MU0tZMTFzUDhNZ1l6OEg4eHVwdGtDZkFKZkQySW5wUVJ0Um1ZK0RBeTZXcUVjVWFXb3FTRks4OXB1MVIvSEh5VTloWGtFc3A0T0M1TUJYeXhOU1ZvVW5C''@;'; + put 'put ''NlM3QjhoUDMzd1pNZm5hQWJ6aUdIa1MyRnM5aW9oTmdGaHN4ekpYd0NEWTJRSXFnWjRxNnl2cnFoeU1EK3BnSVpyTmZJNmtVekhzYmFSRUFnd0E0M2NQRHI1N2F1cjA0T0RwcWZ6QlRPWmdQbjhva3ptVU4rMjlaMlhsN3IxNzcxNVp1V2R2NTlqWnVkbjNqbzZlblpzN084WmdVQTN2YjRDODF5''@;'; + put 'put ''RzNXQVZIeVFHOFJtU3VqUUUveHdRckF4MGZ6Q1lGNzVPMzFENllFc21CMlphVHExT0k5VytCVGVsaFB5N1VMQWFOWmJBZHdBWkNSaGc0R2J1akNzc2lZakpHY1BxQ0dyNHFuUFZUL2tWWHp3Y0xISzRDdy9tMHdLbjBOdTFvdW1KbkxIcjljT2VoM05qTXQvQkpxYW50WC9LWHBwcDZBNWY3eGY3''@;'; + put 'put ''VVlxN3YxTkNEOGhtR0FKNWFtRCtNdXNWT2R6WE01UU9DaGhYQU1rQ1NRd3NDY29uak5FdUFvTEFZa0pkTGxLYWRqSnpEcU5ubjkvajlQTytDazZhY0k5bktXR3NZcDUydEdYbU5PajZZVWJtd0F2eFhUa1dpdnFQNXhGajQwTnlPZ2JGOXpjT1J6RUpUZVBIOStTUHRBMjJkVTUyWDlKcDYycHVU''@;'; + put 'put ''V1g5UFU3NjNFL2QzK3ZPK2RDcDBLakdYN3RvbGxNLzJaZmVtR0Q2RTRDMEY4QzlEWmhRVm0wMFlVSEJFcDRWOVlBVDY2bEVBSVJPbEZab3hvOUZvTmdJTkM1Wkt1bDYvSjRpVEF0Vll2V2tCNDl1a3p4dnd6UGlsbDRyU3p4OXN3eTlJdVk0SGY0WnZrTTdLNTlRR2NITENQQTFVNzNFQWV4TXFP''@;'; + put 'put ''YUpCR0U0SzNwR0dBWWtzeXBKN0k1QWFVSDJqWUEyVUFFaytQMHBWZkthQWxqOStWNlM1ZWFVOVBoR0pUQ1FtUjFzTitJUFNRM3pmWE9keVovNUVyNms5R1k4bHcyUFJ5RkFvVzRXWHVsNXZTUi9JOTZ5ME0xaDB3aHI5Y0padTBPTjd4VzRnSW80RXFvaFdRMFowd0dJMFdrNnpnZ3BpbEljRnF0''@;'; + put 'put ''eWlwZ2FobXFhYWtLOFJPbGQ3L1FFOUtNUklXUkxsSUJUTG5IeUFra3N0aGo4czZnYm9rU2J4ZTQ1MmRaM29QWDFtOE5UWU8yWjlvM081L1pucXkzcjlFNUhZUkx6L3NMbHkzeEIrTUhPd08zK3M2OGs3Vi83bXdLN1c0YW5iNTJ6cGJ1bE1mTHc1UHR3MDNyVjdXWVp6QjJ6RXdPaXBYcXdCR1lJ''@;'; + put 'put ''Wk5WRStoSm51RHRvdmFEY2NMQTk3MGg0N01JaW5wSGZqbDZUdkRKT3J1bHBXMzBQMWlSVEFvWWJCSVF6ajlZczlOaDBCYmp2Q0Z3RkI0UnA2QUFLR3MySmNJeEtoY0loMFJOcFRyVFhobW1ZWkdoRURaV09VZTJRMnFSUUtmQXF3a0ZtSlUvazdXRTRZWi9uSjVUMnp2WjNEM2NjNk9vOTFqN1gz''@;'; + put 'put ''enZaYzBkYzBFbytNUkVCN2lJK0VXbllsVXRPUnlLNTBZbGVMcVdVKzI3WGY3cGpMcHFaanNabFVidGJtMk4rWm5XL0J0M3R5Zmw5SFkyT0hMNUJySU5JRlh6NFE2dlppN08wT0JmSSt0Tlg1MTFYQzBSdjBZRDhRMkxvV0NGbExWb0FVT05ndnh6bEdpNlNGZXY2TkRYVEhBYStmbmI5RFBuNVEw''@;'; + put 'put ''U25DZG1INmh3SUJDNFhGT3ZQODNLYVQ3Mkw0c0lPZGZBdkRBdkxreHBPWHNVRTZRMDlleGdGNUQweW00TmRCZnNDeVJzOUhRVk55VXFiT1ZpckkxcHRXdHQ3Y1ZGREJkOENrVm9xZkw0Z1drd2toazlQa3NGUXlRYVJUTkExVkVKRXRoSkpOK2NSMzFsaXBkTExXU0hPcW5BSjdqOGxhL0RyWWV4''@;'; + put 'put ''V3dEaDRKeUlTL2dBd1hNSDRjZitGOE1reHhONHNXc1VTbUFYZDFEK3NJNkZQV3ROOXV4dllzZms2NkFaL0ZYWmxYODA4L25XZjc3RU5mSmVYNFh3QmJlZFFvMWxNY3AyWWUyRTRjbVZWWVB1R29MbEJKT1Q3bEV2Uy9QdnozVXBxOS9pVi9aeDdtSEVPTHhLck95Y0djMlNoT2ErM2FNWHdXNW54''@;'; + put 'put ''T3luMGFabncxOHlxZDA3MzJlL3d0d0k4cTVFTlpNZVV3R1NtTHhKVE5jekR4NlNLWlF4bStGbXMwVHMyWXkrWHl1YnorS2w5UVJ4ZWl5czExcnM1TXVXSTUvMHo3M3FTdnB5azc3dy92Tzl1K21FcnViZTh4cStDOVdodnM4RFoyK3BMeDVwTXRNOG5JenB6eFBVV21OVjFuWk8xMmJnZTVGM1dq''@;'; + put 'put ''Q1ZqTCtUckFBYUhSUS9SY2c0Vm85SjBkWUdkeUkrNzFad2IxMllMY09HUTBFQTNJQVIzbHlyb3kwQzM1dzBoaGRzQkU5SHB1Q1RZbzZLbk5WZy90bzJCY2E3QmhIcjNkVGszVU5nU1k2UTJjZnVXaW5iV0FxUzFVSm5CSXU3SjlMNTdYelNPZGpsOWkzU2NYd01hckVrV0V4QWx4ZkdnQWdKRVBC''@;'; + put 'put ''Sm9DdmtEQXhMdEx0Sm5HUUxDSU9sc2R6cXlUWnlaYzYwYm1sR3hsZG9HWHF0SE16cU9QSFVuY2YvN1lWVis1NHNpRFI1TlRzV2ludm02MkpUN2MzSE84dlhYUVltNHZpNFRxNjlvRGk1L1p1L3pGbGYxMzdjc2Z6bHJhMzlFZjNHTWc3ZW40emtSUDZ1cWpEeDY1L0N0WEh2enMwc1JsR2JCREU1''@;'; + put 'put ''R0paUC9KdnBpM1Y5djZUKzZHUUhpaGQvWmo4eXZubHZkK1pySEc0L1kzdkxZOGFpdEw1ek1McWJZQmR1WU44UFoxNFBzOFNQS3dHREpnQU13SVlDQ2dwQWFrT0JXcllGUlFqVXF2MTVmcHkyUVZ1UXFrT005TTJxQVJrNngwN2VBQWp0T2Z3L2ZmZjg4OTVOenExS3Y0akhRR2dMNGZ4ajhHNDFl''@;'; + put 'put ''Q3B0V0l1c1IyNFB3d2d3Nm9EdVNqZGhuT1ZuRVE4VmpXeE9sYzdtcUw0S212Ym5RM1Zqa0VsOFVWYWRBelJYaWpBUEJncXVxQXptTzNLcjhJKzNGcmRpNlJqTGYzcFJZN3BLL2hVTWZvZU5kUGZ0TTNOOWYzRzNJdU10R1NIbmRXTDdabDVoTDQxcjUwcXUvWDBxUGpIUjFqMG04cEg2SHk2d05B''@;'; + put 'put ''cDdVb0pvYXJYY1l5aWlRaktydDJiSEJod1lOYVZCUHdCNmdMUzdOKy9uenBtZVBzdlFjTzNMczRjS1lsRXJva04zN0x4TVF0NDdsTFFwR1dNd01tT0xtbGV3OW1XeU5OaWFuM1RrNitieXJSSEcxcGczT2hjSHVFNlZkMlpyVVV3TVFNY2dWTUpxUE5ZclNiN0lFRzZ0dXhxbGdaeGxrRi9TaEVm''@;'; + put 'put ''bjdKZll1TDkxM3k4NS9QM3pZK2Z0djgvZVRjN3I4K2ZQZ3p1enVHMzdOcjEwM0RxODh4K1Q4Sjg4VmdQaU9LaXhHVksxSmRTck1Jb3F1OFdCdG1Wb1pSOW5pQmFtV2wvRkdRWDNmZzY2VDM0VHNsRC80UnVlcTF2Q1Ixa1hOZGhmSFRNTDRCTllrQmRYeks2ZGlvcW9vQlh4aVFnWTdNZUI0YjJj''@;'; + put 'put ''dkdQU1hkMG9QL25RMzZWWFZNZWw1M3dubDVVRnBzQmEwTGNmV0VhTFJNaWRkcUVFTXVaZ003cUNiS1dDeG9HNkFSQnJ5eW1lY1JOaEx2cHNOTGUvRUhzTFhsanVGRmRvRERkOEFCWHQ4bEgyRDZSTk4zOEdIcHYrTTUrUWpiRWxIMUNQMmU4Nml3NTZzWVRJT2lUMUZYbDBGSHB2dWxmcWtLdEJt''@;'; + put 'put ''V21PNFdYa2w0SjFlSjBxSW80bnNwT2VGdXVtM3BKZHdxajRzK3pIeXNWdXJBV0xkNVpITVJESjVKVWFTOXFKMEVzdWNaYUN0UUxHTG1CY05vcGl5VEpRNlF5Y25BTHFCS20xOEQzWXMwWlZnR0piTUhUelpFblh0Ynd2MEJFYXd6VTNjeUhzMUZkcmJpZjVSaWZaZDB3aHo3WUtncjJENGJ4RnFE''@;'; + put 'put ''WGt1WWRNUE04OGJKbmxPcnhTTEwwNlNBa3dhZ0NSQmQrMFI4NmF6MEtrNU5TNys3R3RZcm5RU2Qrem5wL1hqazFFc01mdjB3TG9GeHRWUW5aWXVtb3pFNmtFR25SVnBCb0l2MkE1NGtCVUtrWHJFTFVHNzFRNncvcGFGZnJLK0wzMkpkTmtGZGx3R01FcTlnZ0JQWUwySWQxb21pOUxyME9sMldE''@;'; + put 'put ''Zi9INmhRSnNzOS9Wc2Y5UzRiTGRhS2JKNlJrVkV0aFZBekw4c3BqUGc0akR0RmplWUlNd25pRHEwOVEva3R4K0hmL1AreHFtZW5zdi92QWdidjNqOTg4TVhIenVJeTRDc3M1ZU8vUzBtY1BkazY5YjNMeXZWTXkzako1UUhIMklPek5CSHdITEdOWUJaQXFoNm1iWk4yUkQxc3NOOXNzWm51NVhR''@;'; + put 'put ''ZzA2S2dUMzFQZ1BYYXZ5cGFGU1Z3OWNHVlB6NVVELzBmRUZmTW5Uc3kvVE02MUhjNkRISk53eDh6ZzRLejBmREVNYkdCVjVzUU05YXRyaVE3TVBPYUI1RENIaDlmTnAyTGZ0dDF1RDltRHNVQ1FNbUdRNUU1K2d6U0dGWkZzTU92Y0pJcko3eUpOWTAwNzQxZDJMYW93V3B1NHB1bTZCbDhCU0xq''@;'; + put 'put ''cTJrUnZZa2NnWEFDVzlQMzhjdUpZOEZDcUdGeEY4Q3FIOVlEOEpOUUJwNXFteTZDS0tPeE5JWGVmenlNSVZzcDdZTFZXYnhCc1lJRkJUcHRVWUVZT1hqYi82TWpEejRrTWRGTHNaUVkyZk12VjVSTDhZK0Q3TklXYzdFZDhqVVRJVXloSTVaWERUdTFpUXJWS0ZWVFV5VnNrcjRJbzRJdjRLS2dv''@;'; + put 'put ''alNzcVNpQ29RbXVkK3ptY0NrNzk4djNwMEpGYjB4Tk5lNDllZlZuSFNzOHRKMExoNDluWVVOT2VvMWRlbVRzeFlzeWxXbzk0TzcyWnJpcjM5SGgyVC9KUWEzUGMyK1ZyYVhPNWQrL01MaVJsUGhnRkdBMHpIVVAyMVJUTVN0bTVvcWphMkF0MnBSZW94ZjByVXZNckVjektMb1dPNXdBL3prSi9P''@;'; + put 'put ''L0tJZFlwREgrUGlyZG1SemVhenFhS1k4cTJOTEF6WG5oa1Vzd3p6eE1FelU2YVJXMmJ3SjZXVnZ1TWRIY2Y3Nkc4enQ0eklhMVgxSVIyZFM4dnNZT0NhQ3NPVXVRNm8vRExYb1h3TStBYjV1dlFQQS9DRFRkaEV1UzY4N2lJSFlDdy9tRWthUmtzd1ZobmwrOEFvYUZpSmlYRzJlZUFVbGtvdGxh''@;'; + put 'put ''SkpONlkvbk5lSXZmNmhiend6K0pXdkQvMjg1eHZmN0lIaG5pTDk3RFZGZHE5K1hsNG55RkJ5TStOdHdCc05PaGdhanA2eW4vSlJMT09heFdJUktGeGhsVENrZ1kyT1QySGQ1STkrTklsNTZiOG5mL1RxSko2WDdzYys2UWQ0SHUrR2Q1ODh0Z1hHUGdOajYxR3RXSzNqZ0FnTERFN3hCRmdFNmds''@;'; + put 'put ''UXhvUWpDMG0vMlBuVG4wOUkvNjhQVitHL2tqNFBveDJYZmtiSGFvZXhSRlh1VTNpdXU5a0t2b1dDbTgwaXNCVm5aUmNEQ1A5Mi9JQzBGNzhoVGVNTHE2OG5TWGRYY3ZXcnN1eWZXdnNnYmlNL2ZKdFdYQklRQzE1VFB6MTM3cWZraDYyclZ1cDdYWHRqN1ZGODF6WStVQTUwVyswQVhwSmRvQmkx''@;'; + put 'put ''d0h4VmhmbGsvOXd5b21vWjlkZlMrZEQ2ZkU1ZyttbDR0Y0IwUCswaHYyeDk4eHdkUG9NL2d4K1VjZXVDN2tpLzZBRHV6cnlXTURQMTRGNnRlRmd1NkZDL05RbnNnZmQrTDNOWCswMDM1MEFLL2VyVlYrbWFwYlYza2wxcjUyRzZCamJHTmo1ak9nUVBBQ1JrWnZXQm5UbjVYTHVKaU40a0wwTmZK''@;'; + put 'put ''K3RyZ3A1RDhNM1ZGaERIOHF4WnA3ZTc5OFlzK1VyRmgyWCsxZ3I2d3krSWdLb0I0M2FLNDFXWTB6aEJJQWlneGRmVmFqbWRWa1BOV0syT2FHVnZKZFhpWFl4V1J2VllwMU9WTGplWW1PNkEyKytwaDVGY1ByL1hhZ0E0SVljZEFGWHM2bUsyRWJWd0xhQitxZUV3ZlBwRTNuMGl1K3VTekdMN3hO''@;'; + put 'put ''TEF6b0ZwMS80RjF5WGxzNU05dXljNmlIRE5RZWtidXlLdGUwZGFKeUwxOXI1OXNXU3I1TTYzVFZmM3RDYTc1SmcweVlOOHNZQUYwaTEyVnBRUnJZYnh5Y3JSZ2x2R3hYU29EYzQ1cXhVaGE2UFY0M1pCVDJEYm01eHpRWXBUUXJGUFRoVzlIenVSejUvbzdUNWNuOC9YSCs0T3pTUVNNOG4wZEN3''@;'; + put 'put ''Mm5TYkM0STFqWTZjR085UEw1RW5wMzlLZFVrM2JvYzdPZzIzVTdYMHdDMmVVQUhqL0J1Qzl0UTNpMnQ0R2NieWxEZkxiR3dZSGJ4aEtMdnJEN3FGZ2RsODZ2UzhiR25hSC9mdFRwcUYzall5Y0dncjVtbXNiY2djN09nN2xQSFhOL2laNjlobUFtMmNkYmdMSDRFYWh4UURIVkd2bHJIbm16MU1V''@;'; + put 'put ''N0dLNFdRSmVnY0lOS3dlOXZrcUJiSmJMSGdxdVhoVjROekdJSlJuMHlKT3JPNWJUbllPbnhzWnVCT0JoOStwVldRcXhUTnZCenM1RDFGNEN1QkVmd00ySjZxaVZDVHlHSTB3UUUwNURsZ3ZMYzQzcWl2U0hxaXFFcXVxcWF0M1Y4SmNEREFPNlVwOE1zV0l0d2xOSGtrVEhlMkN4K01nQmQ3RGgr''@;'; + put 'put ''dmIrNndaM1hMTmo3QjBkMHFnMk01dWF1TFFNWDZzN01CbjExVFo3bzBPbnhrWnZIQnkrZFNFOTM0TC9kbm5uMUJGR2Z5QVA4QlI1QmFUVkhyR3NBdXUwbFJqcHlJanNES2xCT3AxMkNUU0dLbVp3bzBYUWZtVEhHOHRRcUFabFZ3ZDB0bEw2NVlKWTV2V3kyQlhQdTJWZTU2WDhoem1HbVBOWVoz''@;'; + put 'put ''L3MxbHZ6TXpQOXFWU2t3UkdvOWhGdFRrcmhiK2NHMjBjOE1VZXpSNmIxK05vTXFRRVkwbGo4a0xpanJwTG90SW9mRTJnWkdKNk9yRkQ2aG9sQnNhRnVHVmZCbVdsRll3MGdPK1Z3T0l4UUgvRDdmWlRHc2FDUUM3TXFNaHU4bVlBRjZSSXNxT20rY3FqelNsOU53MkxMd3JHNkZiSDMwcTZ1UzN0''@;'; + put 'put ''N2p0YmRPcHRJekthVDAvSDRkSkpvcGRiZWxmWkFmV3V0Wisvay9uUzdlTVhBaml2RVhQcVF0Q2N4bHdYN3ZtVXVEZEJuY0IrSHR6OEFIdHRwcE1JaSs3WVpEb095eHJ4dHJpSnpERlFKd2VhMVVmdVQwanFBVW5IWENBcTU0OHNXV3ZJVCtlaElPSiszTDdZUm9YVlBUbm9FOS9kTUIzcUQwbU5B''@;'; + put 'put ''MTYrRk13eWUzZkQrY2ZJVmtORVYxQUlzdUZPcjZNRUpvNm8xWFZGdU5qRjNxWGFUdTVRSEViTGI1YkpZNEFXOGhGemlzZ2pWMVlMRnRiejZCb3kvOXRUYUJQb0lHOTlOY2I0QytISTUxc0JwYVl0bTRqaUdKeHJnY2hxTld6UEdYTFJ1VTdYVFlSWFlySHlKazFZNUtxWTg2Ynd6eWdyZUVhMG9N''@;'; + put 'put ''L3NGdHpmZm4xcGZ5cHMvTWZCcExkOVVUektyTDdRTk0zZ0RTd0RxZXhKRzk0b05CZzNRRzZleVc3b2FWVDhSckV6YVl5cm9HQzhGMkZiL1lPTEx5L2s4YnByQ1ZkTFBmblgwZlFET1doeVY1UmM5bnZmRHVLcmRXMWxpOTQ0QmxJQlZ5RzI1SU9DeUY2WEVsb1pxMmU3VmFnVkdYTG9sTUFaMU90''@;'; + put 'put ''ZW9oc2I5NUhQM29rYXZZUFZhdlRZRFVGSFIwZXMyL0pLMHkzZ0w3K1MrNlZoK3FFMmN5Zy9TdDd4MUt0MCtaNi9jMzFtRUVoUDU5VStpSFd1S2Q2WkFKQlZ3VXRpRWs4S2ZnWlAydDRHVDJsbUdrZ3FmSElSNU45bWJyb3ZhbTQ2M3RqZGZPelU4ZkdwdzhNYmg0UnNITTR2WjdHSW1TOSt6cHBG''@;'; + put 'put ''M0RRMmRvaElHNUV5dS9YQXVkNmk5L1ZDdS9WQzd2SjVwNERsNVdFK0piQmFLWmZPNldLWUFzdUtMeW1ZVk1IK1diSlorVFM0c2w4aG1LZzluUUI0S1c4aERvVWdlcm92Q1Vaa3ZiaWNQaFl0eHdyZVFoOXJWU1N5c0M4UmxLYlJCSG1JMERmaTFBR3MxMFN3OE9UcXI0dGU2SmdIQ1E3REpPcmNs''@;'; + put 'put ''azdRWE1PcHZUZ3kwNzAwQ0diN1NrNHRQcDZVZkVlMGwxSTREM2VScEdET3dwYjNwMm14dkJwRGZGeTYyTnpQRjVxWkRrVXpVMmlUczJMNTlWZFN6YnlFOTJEZXdmekkrMVJvLzBGeS9jNlNscjJ0bmRqRGNNcHN5TmZsaXZTMytZTlR1N3NzMDkvcnIzWW1XcUsreHFWcnc1Y0xoL29ETUkveXd4''@;'; + put 'put ''aW55VVpEbmNUSGl4RHEyYjhMZFRGa2lXYVRPVTRDQlRxZHFBRXh1V2h1cDRQVExlcWlnNUgwQVI2SnUvRXdXVDlsYXExUDlNelA1OTd6SFYyMnBOOW9yaFpGMlBKUDcwSWR5MGdPZVpsTVo0MDB3NzM4UnJVelBITTB1R2RFQ2Q2R3pVZjBJVWVKQ2FwS0dIZG05TmkvemNSYnBSWlRkeWxhNWdQ''@;'; + put 'put ''K0xrbkdiU3RSdzNHOEFCUU5SNHpIcEtVYlVlRmplTCtqVnhFYTBhaDZFYXFtcHVvRmdZUmFGVlRZdDNUc2VmMnpIcTFrUW5pUDRVU3BETUxBOXhGbWhmNm1OS3J5MWplcnR2ZTB2TWg5NWYrK0QrUTkrS0E4alR1Q0g2R3YxRFh5L05GK3dwZkVmWVd5V2QxUEdhN0NHc2pscTZjRFlIQ2x5Z0lL''@;'; + put 'put ''dFN2SEVBeGFQTlpoMFpwTzhGWis3OTk3aGIzMWwrTk9mSG43bXVlOS9IK3RYWDN4eFZmb2pIYmR1Yll5NFlGeUJ3dHFvSjdCa2pNRUFWb1l1b0tHYlV6eWJGcHVYb2FHTWhkMllZN3NveC94aGYyV3R0N2FwdlA1Zis1LzVVdCt2cXNheWp3alpDcWVyajVpbEx2enM2cE9kV1N6dkJkZ25mZ25t''@;'; + put 'put ''M01hT0ZkN2FqczNnUHVsWmZJZjBGQjZRanJYZ1QzYTBTQ3NkYk56dzJoNjhsendCSEFWZzVHSnlvQkxqb1VhV1ZRUU41aFdDeFdoU2NGQXhwNG5oTGd6c1AwMTFLWnE5NlN3bmRxY2NGT0ZwR0p6SHBsbC9JdHNXOTgrT2FEdnlMdXp6Qjd6WWxlL1EzaG5xVDM4d0ZXMkpwVzdQOUFmMWNYMU5v''@;'; + put 'put ''dm1PZU5aa3ppUStIRTdVNk9Nd3kyVnJqNks3dDdHSnFZUzlMSlZTa29Lby8ya1Azcy9XSGhMOWVtYkxDbUJSTm1JOHVKNVd0MFJCTlVtelpRbHZDenRCYkFUbGdINld4dXF6ZGFRV0E5YmJHM1h3Q1NjU1l5c09CSHhzeFNPei9uaGJOZ0U3ZVNjc052emhlTlpzeXNidmFLYUwxUWY3TTdlbllp''@;'; + put 'put ''M1IxQWZUL1NIOTJocnF3YzM0TlA2Q3dHUHptaVQ5RWhrdUlQeTQ5RXNXSmFheVp0ZmFIUG9pRVZSOWpLMk9DanpYcUpwRFlpVWwraGpUaWVSa0x0QU9raDlWNHFtK1lYT0NDR3I4ZEhVSC9wVXFYeDhGKzIwYzFRQmxBWmRzcUs5eFZ6bHRWck8yVEZhQzFCUmRXWGxtUEVpb2x0R0Zoc3U5NlJo''@;'; + put 'put ''UmMzTHBXZEtrWEhyR1ByQ1hnRHZqbDJaall2NUlMbmNrTDhhbUc4TlYrVVp2ZDFWWXVtbStyMisrSWNSMTl4ckhydXJ0dldyVUtIWnhRVTl6ZFQwbnpXc2FxcHV2UGluZ3U0V1RjdTVVRmhZYVlYR3VQbEdFbzZWSkdvaW51WjQ4SHRaaUFreVRKOHpseTVSOG1xM0I4MFZ1OTFwVUs5ajhQdERm''@;'; + put 'put ''cUtya3QzdlNXWll0dDlIOHJNVTB4NGRFSkdOSExnY3lkTWRKVjd4eUlRZWMrc1VYdTdycTYxN00zZDUvb2xOTVJXTnQwYW5rN2JrWE4vaWVITlFUYk1QSWdNSDJRRHpMTmppcXd3VFVGQTNobHN0WVdyYWNYK1N3V3kxcUNuYWxrU1poczNSNHU1ckVCeTlHOFBpMmgxNTU1WlUrZUQzMFIrcXR3''@;'; + put 'put ''djI1UGJucnJvTTNmQ2wxV2JIejZ5ZDc4Qng1Z09WQnRESXZTWkFtQ2dJeU04ZmxrcGFqd01LVFcyUTZVQWRLc1NMZFd2VDd2cW9xb2RKVkpaeFRQc2tlK3VtcXBML0xuNEMvWVpUR1g4Wi9WOW1JdzFwVXllRXdlbEx4Mjh6aWE4alp0K1B6b2ZrSzNUZ2p2VURPdHJ4ZG40K1Q5ejdSZHpaTFhx''@;'; + put 'put ''NDRJL082NE5wTGdNUG40TFJCZjBkVWZDSnltb3JPOTFBeHh0eDJ6RzBiWUZJQkt6cE1CMVZwcVAvVzJMK1NhenZjOWR2MGpXa2NidG1keSsxdVdhMG5YMXpkSmVkaS9nUjlDbmNBME9wRWR4R1hJSlI5VEJZbE1HYUtvTGRZWGMxTWtKKzRyUFRENmxMOFdXc2llbzFtUWFKcjJkNHFuVGJBWmFz''@;'; + put 'put ''QnhKZWU4bWV3ckUxZ1dUZUFPZzN5V0hNRnpiWUFycjJ5emxnUDBHRjJ1a1VQYXdLWWRYcTdOZ3NpelNWMUlaZlY1L05Sd1UxQng2TFJ6TFpWdEJ2cXV3TGhsVW0rRkd3TFZjVXFMYlUrUjUzZGFpdXY5Q1NxTlBxb3Y4WVhxekFIS1JKWWpjSkVEck9haGhTYys3UHMzQ004UGZjSWVsckp4eGpC''@;'; + put 'put ''Lzh6NGxRKzFpOW5HS3FkSlErVHdBa0YwclF3aFpRWUcwdWNBVWtTZXordDIyYTBGdkVURkxFeEpqcUp1SVoycWZRS3p3U0dGcjNtMnlDRlo1M1BTbVMyeVNOZ2VtTitjdTc2eUVkWks4M1Q2MEVmUkY1RCtBc0huNVRTZExkb2N4ODV0MnB4VTIyQWVmWEdiTml1Rk5tWjB4elp0NWdwekhVV2Zr''@;'; + put 'put ''OXVRelcyK1VSakhpTDY5c1kyY0g4RTl4R2pCZ2diRmZvSHlJaWIxOVFnREY5TERPZWcxeXdaZ2tMcEYwQ3NWZjdaVzFweVlHV1dwdEVEdkNvVkJHWUZqWWpWaW5xWkpGS0FoZ0NWaFV5UG4wbXY3Ui9EdFJDZDVmcWFFMEdsQ1JaZjBEdndSNlhLa3hMMUZscWVRUWErTDdrdzZHTkR3T2pkZ2Fq''@;'; + put 'put ''VU5tYmtxQUkvTE1lRzBDdnBIYUN5S3cxZkFHOUs4US9VeU9VWVI4SFRGcEFMcGR3RFc3U1kweWNaR00zTm9INFExcDk5dUoxcHZFOXZRaVR0MXNWNWllSE1IbWcxRmptelJENDNSdEJ4andOOE0xR2NGQTZvR3BHVUZWdm5EWmdxVVplaFdybEN5ZUcxUHVVWmZ1NWs4cStZL1ByOVZqa1k4eTNu''@;'; + put 'put ''eFJxcHQweC81eko2U3BBMktUeXlIZ3VGM1NLR0I5ek44d2tWNHVibk5jZlR3Tm0xT3FtMkFCbTdjcHMxY1laeWo2Q3E1elRwK3IxRXQ3Y05zcm9pOG5yVTd0aG9IVnhhMU9ZNXNtOXVzL1FMR2VZMnRKeUt2WisxdlM5cjhPN1Q1STF1UFBNN1J0WHMycmdkb3FSbmVYbUN4MGxxYXpidFIwMWpV''@;'; + put 'put ''WXhvb05SU3BHaFVWOEZGYlVjTktyZXpRelF3eXAyemQwR2ZHVTFKUWpYeWdxeVFQNWl0K1RrNTRHUmxSVTE2K2cvK3hrUGFDdS9PNGRmVjJPZm5sRDNsV2lnUndZREY5eGxOYUZKN3lpUkpZc1RnMWcxV3JjcjZQbGZDZHpXMk80OXcyYlU2cWJlQjhYOW1telVxaGpSazl0RTJidWNKY1I5Rnpt''@;'; + put 'put ''L2dYUnJ2UVgrS3ZFUjBJQTkzRGVwb2JDVXBsRUVna21IVm1uVGh6ZStSMitlZURZVHloL25iNzdXR2s1dlAranVYSSsxQ2MxZ2RGd3JVMUxvZkpvR2MrR3BhMm83ZzlISEw0UkZjVVB2SDcvWEYvTEdnTldsa0d0cHJWR2dBYkwxdVVMNWZra2NPSkZUSkZja2dhVSsvSE02a0RkKzl2dnpTV0hw''@;'; + put 'put ''NkxaNEEyMjA5RTA4T3pxLzhXOHVOVC92a1kwQ2crY2ZORXlDZmRBbitSbW5mdldQcnN3WUMzNjFETG1SMUFuZlEzNlRzcklmeHdUVDBRcWZUOXFmZE5abzgyU2VNMTlReDJMS2JNenFsTk9jc25TczU3YzV2ajZQOXUwK2FrMmdiTzhndmJ0SmtyakhNVTNiMlpWbVc5bDgzVnFjejE5TVp4TnVV''@;'; + put 'put ''YXhCajNoSFBRTHV1d0V1VW9GSzJCNUtsdzJDcWNsVTRoNEtuazVRaG9zaWhEdzEvSTBPajU1NUlNalZNc1JhUHRwbWRtQmdkbnBCZGttVFBEY25HZUJScHVFV05HVU1LWkdnSUNoMXRSRXk2Wld4c3Y2dVIwUWF2UDQvZEV2Q3drVVpLN0hjYnA5WUlGbFhGVC8rcE1lbDh1dHkvVkdtbnJTZTNK''@;'; + put 'put ''N2hrSTd3ak45ZTNvNkJpZmJHK2ZGSWs1T1oxSVRDZFRNMVh1L2RuMGZFdUhyenZZTWRveGttNGJIYyt0U2dCSE9WNzVNc0N4SDJRdlFYMlh5L1M5OFRrSDhQMUUwZlBuMWZhWVAxRGMvdW5DYzNOdjhmTUhDdU1mblM5Nnpya0w3WTFVT3dNYWd1ZmNYYUREUlVITDYwSEh4T1VhZ0ozSERVcUNI''@;'; + put 'put ''ZXRKRHV2S0RLQjQ4am90RGFPVzZValpDdElqSGEvWExac05STTBHZG8yV0cwMGNGWWJVdHdPMGxVN0hZZ2lsZTlKaVozc3NGVXUySkdDQ2lOWG45Zmw5L2dvQXVSckVrdE5UUzZLcnNnTjdVMmdMMFZ4ek5lWktYcFhqWEgzWGV1dXVHZHA3YVhIb2RmQ0F3M3Q1VDBuc1M3cGxJa3BEc3BQOWNo''@;'; + put 'put ''UnNvS05qWUdGc1BTYmJsYzNraTJOaTBreDROQnFvN21sTmRjbzRsbGdUV2V3emd5Nkk3a1RjMDZEUmF1eFlwMDJCV3E4cnFQV3FYdVBuNFN1Q2RWZWc0aFQ3UWxDS25xTWJxYnBKZ0RYVzZrQnBmc3ZXb3JlMEliVUUwSkZDZXcydEFnWEpCTXZNeUFxSm5xOE9hLzVFUllRVzBXV1MrSENKSXRK''@;'; + put 'put ''emFkZFdrZHJHdVVSNWlRR1IwNDllczZNa2VOc1kwalJpaXBOeVRKVGkvSkJNQ3pmSXVMcnhPYVdGZTR1ZVA2KzJ4L3lseGUwZktJeHo5QkI3dmtaWncyMXNuSmZrOFQ4Z3R4OEZnQm1MbmgrdmtOdi9HM3o4aG8zL2tqeitmZkx6SDhQSDc5ajRjdnVqbjFtdnEyZ2xmdy9hUWhUdEVhMlZ6S3Rh''@;'; + put 'put ''QytvQWFBTTJxNlVNRDhsNTV3N1ZCUzFzeUE1eml6YWFwc0Zoc2xMOEdDeTV1cnE2YUYwazRBdjRhZDZzS3BrS2lWQUJLaURwU2RKczdzMWVlZnhQaStLVnc4Tlg5WFNkNkQvV0Z6NTh5bm13UHRzVkRCOXlqbFRNeG1PemJablplR0l1UXl4Zk9MRHo5RUR2dGFQREozdG1adWF6cVhDMXI3ckdH''@;'; + put 'put ''MGw1Vmw5STdtdHYyNU5LN3NtMTcwMEJ2T1JZRU9VMVV6S3ZHVm1IK3lDRDR5NTJUbjNvdlZzK1A0N09GejEvWG5rTzhMMnVlSnluQzgvTmU0cWZQNkErUjBjdmwzbFdIenBOeWtrZDg1TzUwU0c1d0xxR1ZpdFExd3ZTOEZpcjBSN1dxVUZHRnkya2JVUklwNWFFcU8yMFdzMDhrSTEyaVhXWVhC''@;'; + put 'put ''QWR6Q0J5VjFhRGNGS2RiSHBxb1JZSFBjRXVLaTVxd0E3Rk12MHBMYi80amxyTzhEWFZKSjNOWDFpdll1QUs4UzBuV0c3TnJBWUpMUHRRc05ybE5PcTBHajNHV2s0SmhLd25NR3pXWER3ZVQ3T255VzhKV2pab0xzV0tDOU5ibkZpT3dta1VyUVc0WmtOdytNYkI2ZjZHNFc1dmFQalU0SzdCaG1G''@;'; + put 'put ''Uk90bUNUYWw4ZGpHTDhXTFc1WlJlUytieHgvZW5odDQxMHVJZkRoeElEWjBhYVEyTVNtL21jWHVnL1ZEdXUrMkhjNEdCR3VrNVA1eVJIRmVnWjcxYnBqR0ZKamMrcHpqd3NhTG56NnZ0TWIrdnVQMERoWEdPVHN2UFpWODZIV2VmTXM3SGkrSnlGOHVaK2JQaWNzS2ZINWZqVnJaSW1pbmF4d1BL''@;'; + put 'put ''UG1CL002akl4azhVL0FESEZMMitXSStXWmZyWmdrdy9ObExjZDIvQlAyQlE5TGJTdmhjS2N0OHdMZk91aHJWcHpncTZtaE5WVS9pNXNJN1RZNEtkSUZHNEVaQXhpQm8vUjVrT3pTNlhHRlcxS0N0TlM2bXFycXIyQ1lMZzhGRFpvbFc4TjltZ1hIUWhTK2pXckpGd1ZtOUx2TU11OUJjcU1Hb2FQ''@;'; + put 'put ''YlVOMWgvY2YvOGR0Ym1FczhuMEtWYU4wZWl1YmJEakhhd21nK1owVFpNYzBFZ3ppTEJGY1EvVlNOeVlLaVE4aVVVTm5KN1hZNjIrbVNaQlU2V0UxeE8rVUlucW91dXNBQ3ROcjFkam5Fb3dEZFlkRG9jejRYVEFad1UxSk9RcEF5TzlzUEwwTm1xSVhWQTNFeWhLK0NJNXVpMjNveVRwNi9BSmVY''@;'; + put 'put ''OC9WNU8vNkM3ZFVXUGZ4dXd2bWhER3R2eVJRaGFZYWk5OWdPbllBVVhIL2tPSnJpN25YMUY2R0ZEbzRaTkZmVStxZmJFZVBiTk4zK2VWdmdUckQ2N2Jsbyt3dmtHbDc4MGxlRVJ6cmI1R25vUTJnNnhOQldqeEZtU0FObzl6RnRvSTJpajJNMkRvdTVHYW4zVUlhTFFhdmhrUSt5d2FZdERUYWtz''@;'; + put 'put ''dFRaeldvbVU0bXNwQ0JaWEM1NmpqblBFOUp4bHp1OTNON3FZZ2pZQUd2SXJyM0Z1U3A2VVd3cVBONGVsRFBSdmkwK2ZQNTN2V1VIR1FlblQxUzBWSlczOGI2KzFkZldSRG1Mcmd4MGdVL0JqSFlObGJ3QlgwajdNRi9lUFlMTnJLQjRMTDBQZTI2YXZxTGh5MFVlcGRnQVpvdlVzTjllcFZnb3dR''@;'; + put 'put ''TUszWFZUTkpLWUx6aTRqbkZZY2VaWGNWbzB5WUFRRllXWDF4RGFvUmJGNmEwUzFRWEZmcllMd3FSanRsNU04V0ZjWk15dWhiUTlHN1JucTJVQ1hEa0RVTXVCeXFZY1V0Tkk1MG1PV3owUnRmem9oV3Z3LzRiemtHeFJRMEdoNEVyd2EwWUErdHVVTTZFTFE2elRLTjBhZ0hyVno5d0JJUUdKbGFx''@;'; + put 'put ''WWoycTAwWkFQRGhyWHJRYkxKS2RtVk16T1cxQnZ4ZUx3M3hhRFp1U0ZlU0hDZHJ0THlhSTNkOVlaTUdXOW1tVExrV3NDdHNZdUJ2RktPaHNsYlp1Y05HaXRQbXdJSndlTXZ3OTFqeTNCWStNZjBXUHJITitxdGVrWldzVG9qeDhXYUZqejliMGxmT2ZhTjhmRVRtNHl0S1grblh0TVpJN2d2NFUw''@;'; + put 'put ''R01URWRpN1RucWxJcWhQRG9zSG9qV0V6MWY1YVNHT0syRFIwTkc2aHptOUpvVmc2b29sUVAxNlhRQ2RXc3lOSkxqamt0eTNERWVwKzZ1ZUQ3ZWxVMVh4Q3BpNFNhdnA2YmFicVZ1cnlxVHFpVFJxMVJrdmNqNUorYlZZYmVyeGxzWE1BaE9wK1dYYnl2RmJxK251cm90NmdpSDZPVW5jMjgzM3c3''@;'; + put 'put ''MCtmOE4rRlhHYUZyMkJSNWIrM2lKdi9CbGFLTmxOQzNyL01mdVVISUcxcWJSRDRFdXJUVE9UaVdtVlk2enEyWG9GR1NxdlBHQmZHVHAxcXFVQWQxQ0piNGZVdXlydG9zeXdWRXhVUjB4a2JzVlVjaGs5Tm9iTU5jVExOYm5vVGVxMkcxRXczbXdYTFpmT0RKVldhd29FQWtMRWpmVWdSWGlxREJ2''@;'; + put 'put ''bVVKblZSZmtwT1UvNnBJV3FOVldWVlU1U1pmbWRWdnk5ZkxpMUZpZ1VMWHFnSFhXdCtoNS9NZlZONVNGQWc3U1NzMi9XdmV0QWcvak4vbUdXTTRkMkdMYVFtNmNVSkliTjVyUDB6d1NHRzhmNFBRVklFY2FBWGNaVHVOdnlYWWJQT2NZcms4b3oyOWp6MWtkRnBPYmNVVnVscFhRRDRBRWwzTzNR''@;'; + put 'put ''cHRKcFkwRlBTcTNlVlJ0STlkelBhbU9BK05meFdRY0xwSnhkSnd3YXpPcHRMbHVZeHM1ajVaMEFZNllhUWFieVZobUFNMmUweE8xc20xVGtaZ1ptZTJGSWpFK1RaRWthK2NGMGlYMTd0a2pmdVFqWFYyNExpYkc4SlQweXFnNEtrbW9rS3VMV1E1amcxaHJMT04xVktqcWxlcTVTcVVZeE00dWU4''@;'; + put 'put ''RThhTFhLd0JoUDVjZkg4MVA0UUxQMEFuYUd4QkErSWozWlhPeGp2bDcxTVFPTWZsVUNSOWtXZkZteEJhbitjWmZjRjg3bUw5bVp0U2huODN1NXZmUnJta2VvdG9mbjl4WE5kYkxnejliRGFXdzkxL01GdTFOL0RCWDVsUk1Gdi9JeDlPVVNmVVcyczg0V2JNZGpoOUJXL205Y2p2NnhKTzYyMFg0''@;'; + put 'put ''bHVQeTByRE9uZ0xFK0MrZHFBWXUvWGN3V3FsRDFwRkNHYXFEbGRtcWVEVE0yYXEwMURodExySk1Gc1dzOXZLYXlReHBoVzFkYi9MSW9YdjJIL2ZjY09IRFBmaEtYUER2bGdJOGlqSGQvZXYvUzNmdTdWbDhnMllsYkp5ZmVQYVRZbGR3YkxKODBpZHJSbERqaHhIb2RkZDB4clFFNHZWYXZXVFla''@;'; + put 'put ''aUU0blYxVzZSbzE4R1VkMWVzVmxsMHI1d0lwSXRhZHkyWXd2Nld1Tk5OT1VVNnN2NFBPYllkRWJIWGJyZkx4SXlEWnM0dWhJbHJaY2greXBHN3FoMGZ1dWtVR1doem44THEvbnVxR0N6SldPRldWazRqTWJjdFhIZTNzbTVCek44VzV4VEJhK3hXbWFhdjY2SW9NUHNyTk5LL2o3VEFsZXlIbUg5''@;'; + put 'put ''R3huWmQvUG1LS3JBZjRlWlBpYlZ2RDBDYms5NE84Q3c5OVo1Ym14YUs2VDZseUF2Ky9kY3E3OURIOW5aZnkxeVhPeHVqaTJ6b3l5enJ0S2NGL09aYVRybkpQWHFjUldZMnNpcTZrVDBSdWlNOW5hVUsvUjZkMDA2bDVkQ2FLZHBsaHJGUDlqZEdOY0ZmVEZKUkRzRHRrZzB1S3RBNnV4VFlIVmkv''@;'; + put 'put ''ZWkzc3Y0NWtEcHhickpRZDh0UXF0YmRKUmpxeVpmeEVkVEc2d1dBNWdCUHRrOXVVMTBGVis4ZXBCRTBrZDJWR3dWYUIyOFByRjlUZUhOODZtU2VHdE8yeFovaXlwRGxwY3FzcnpVUEp4WlRXdExmWjFHeTIrTWhXdEczS0R4RG04WkVPZDUzUktpeWVCbzNaZHgwWUQ0UlR0dEdSQy9TSzl0QStL''@;'; + put 'put ''bC9aU0F1QzhjZW5zQmNYeXhCRno4OUtHUkxRUGppYVhBdGxtNW83dTBqU1duRmF6ZlBrMjNtRDVQcXZRSnRIMXNHL3A4WHFWUHJNOHF0YVJBbjdTVzFJTWVGdTFWY0xUSWFRYUpZS0tYWjQxNHNFWTk1Q2FFYUlycEZTeEVSVTVSUjVXYW9NRjBPVUx3QVpEa2Jxd2VWalB0b0VIYzZiZlJRd3h1''@;'; + put 'put ''YWt3TEFnaytzcWtQaXhUUTRuNUdXUFNNMkkxVFc1NFF0YnRwK1N1ZXRXNXhDalZsdENZMnRnbldmVVUxc242Z0FacjNIRWZQaWE0bXJPZWE3Y1NnajlvSU1aUkVUaUpJcTlIZVhJWnBiWS9oQ2hCZUFGNWEyY054bWtXZFhOOVRFa0NKcnZmUkc4anBpM1VDY0c3WlhnbW1GSFhqS0pBczBDMk80''@;'; + put 'put ''aXdiMnduQW9xNkliU0lxdURSRDI4a3dId2RLY0RlU1hjL2FibWp3VjJ3UlFCbE1GbWR5eDZwMGZqa25pOVVzTXh6TktqajZ6aEljcGJubVAyQzY2cnlzcTVLbUVuMVdqdjBtQ3JIZlkraGpwYm96ODgyZUxmaG1qdzJnb3JqeE53cXhaU1A2VmtuY21QVmxjVWZaMzJ1OEFXMFZ1d1k5N1BOYjlR''@;'; + put 'put ''V0x2K0JieHVWTFNLbTNubWIxMW43VUliWTVnQ1dWdzhtQzZNUGNpSEo3aFhwSEtuUDdyaHRGME1QdnEvTDZmZkpkRnJMWGZKTTNaRk45TmprN2VHYktyS3NxZUF5cURseXRWR3FUYzZ3dUcxc2FGQmVCdjlyeHlSUEZkZHNzNzM2YTdBQzdoNjNWQUxhaUhtczVQNmEzRWluSi90UmZXVWkvTDNa''@;'; + put 'put ''WCttaE5UY2hESTlRYi9aUWJjL0hYYlVxeVEzWkxGcWZtNTljTlRIZlVPTEE1U2I5Z3hqRjhvZlhnREtmYTVWd0JQRldDQzNJK1B1VjdlNWcreEtQdkZlVUhuRlR6QStENXJTVjlaUi80ODZvUEhQT0xxS2p2WENHMzRDZzZWWUlMckU2YjRVdVhvak05VkRLK25BTlA4V1ZSMXBrVVhKUDd6cWw5''@;'; + put 'put ''d1Q3OTdqWjlIMUQ2VWovY25VVjlUeGI2NnRFTjIvUjlYcDBYNjNzWm5yTDZ0MXZoN0N1b3I0Qm01ZEs2QmVZckVOYXZOM0V6eEt4QTVWWjJ2WWx1VTNXYnZxaXE3YUhOcFd4eS9pd2VJYysvelpwdEo2M1ovbHpYc2ZUVXpqUjUvcmJGeGEzSEtOUnBFSFF6ME03VlNwV0dNa1kyeVh1NzB6dW4w''@;'; + put 'put ''c2U2eVBPTGk3Y3BZNHpqdytRQ3ZXMlJqZEZJOHdZMDFORlZta0pyUmlZL1YwaElWdmJMekl2N3grcENqbXh0YmRZUnFoMXJJdU4xZFNHNzAya1AxZGJMYyt4QmR6Qi9TSUROOFpiNXVadXpuZWNWNzhhNk4wT3VnWVIxbXprM3k2ZHVZNlBTWWo2YVVieWl4UnpHM0h5aDhJeDdXMW5WeGZjazM5''@;'; + put 'put ''alpHUTdEcTlybnEzYjUvUzR5THY4ZDdtenl1K1NIY3A3d05GcEZOaVNnZHJhQ3VNclBhS1VrQXlHdGNnRDVQcys0R1VlL21aUXJSM3dPalpKWnJkenRXK1RjdmFIRDYyNHBPSFFmWko0Ym0rTEpsZStkSlYzNERIa2FkdDdMNXMzYUFJWjY1cyt5WWp3RVFwRFZlQkNNVnRqTkJmTnFjVGZoSnBt''@;'; + put 'put ''UzV3QlJxRlVRQTFITlRiMTRsT3JZZEJIMGFndHp2VXR3bUVPbVpqNFJ0TFBmZzJiNk8rbXpXQ3ZLaC9oc3Avb3BuMGMzZnB6bGcvT29tcTJxUWd2WU9FU3QxS3V0bGtJZXVaUDMrcFhFY0p6dFBac2hMMWZjOUdHV0lJN1g1cVJmcnoyOGRqOHFSejQyZ3F0OGkyb1ZYMkVzZnVObHVGK1FmWkEy''@;'; + put 'put ''VjQzM0RkbTN5UHlNQmY1NHZjb2ZVUi9PYk1NZlgxYjVJK3BEVHhYeDF2Vyt4L0dYTDlyM09CYUwrczRWK2g3RlF5WDhVZTc3UUtIdlVlcTNaUGNUTHRBNFFuRU00czAxV1FkNGMwM1JBUkpydTZrdlgvWkxzemJmZkZPU1l6dHZTa29iMmIrOVVoakhETHh1YS8vMjB3WC90bmtjYlprNzFyZUZq''@;'; + put 'put ''ckV4emt0UTN3bmxmbFgwbjhTQW94ZS9mL2dmcERpT2RxaDl1UGEzMFljamIwcHFuMkg4YlhTQjNBazQwL293b012UXBzdTRYWnN1NDVhcmhoWWVrYkhJcWpxOVpTRjlnVjZuWEcybjF5bVRXK2w5eWhhM2ZKOHloU1ArRm5xTWZBcWdVSUdvTEdBMVFHU2tVQU1FNjhBbjJUcHFVZnNqdGVWRVhZ''@;'; + put 'put ''cVpGZGF6KytMWllxd2J5ajQ0eHY0V0h2VlYrU3pzUnBHTkszSnV1OEIvM1dhdHJ0SjE0K3ZJcHlxRDhyclorcjhLNjdjVTFrOVJTdDBJdlhQcmNkeU5QLzJuMVZIOHI3NitlTHkzTi82NC9CSHZrL0ZuR1BBcWhIWUNiZ2lBRzE1NC95ckRjUUhmREExNGVrKy9abmZSUGYzZGFCUm0rdy81cnY2''@;'; + put 'put ''V0Nxd3RsNi9SMTJPZENaY1pkV1hGVis5YnpSYk9hT1NXQkVNbHJ5bStzVDk5a1k3czluMjVOMDk3YzhxOS9ia3QrMjF4YzM5Slh6QTBNbU5qb3FqZTREODJQemEzYTZjNEtvNE05Q2U2RS9tMnpKYTMrZHYrak52OEd6Yjk3U3RxMjVENWsyLzZ4OE9Ed2NJZjBoUHF2ZjkzNS83VS93SEFsdjh6''@;'; + put 'put ''Z1BYL0tRQzlWeWlOMXZEZjBkc21IdFppbkFoM1l5ZkFMbkJ2NWhPZnlMeitkZE5qVDVpVk81M1NvR1FyN1RqV0xwaDE4dEZQZkNMOTJjLzJQdkdZNmV2ZllMTGlaOHFkaW5FMEtZN1Z1SWxHQitMUGlPbk51Qm9xQ2pYY3NnR1RNb3lOTkErOGtQbHZ3a2FqNnVsZ3RtRXNFbTV1RWl4K3NQa0Vx''@;'; + put 'put ''OTlNZlZTRmV6cUNZQkJTMHdJKzhxU1FiS2VqbVVRQVpDZDgwUGpYaS9LVmkyTzNMVHYyVFhLNlhZZGNSMjRaVmhMK1p6N2t4Y1BTWjNrTlhwTE8xMzkwVDRKZHc5aDdjaWpuZEhycWMzMlhkckpzL3dNVHVWcHZ0UzAzZTBLVzd6aE95dkZsd0FkMUQ0TkNsMkJjVDc0cDlqSjZSeXhUZEVEVjRZ''@;'; + put 'put ''QXJld1FQNFZaWDZZdnhvU1RBcFU2cEpkZC95V1UxYTBsaWkwdFNTb3ZDNjk2cUtQeU41VzFyd29ITzVUbEJCdUNFRWx0NGdORy8vUHlDOG53OTlpay9mNzd3bkwrNitQa0Q2bk4wOU5MaTUrdmo5NEZhdGY3OGJLSDlzZjFJZ2NFMHVReGdRR01GK2k4MWVhMFlZRkJpaXFtUVdMZkRBcHRoY3Bs''@;'; + put 'put ''c2x4VURSckhML3JNSVBvcU5ObGNFSXNVOCs0c05XUW5yYTZaMnRid1hzTDMvb21ndlR4ZGdZcDZUNVNoTisva0l1NXRDeFlXazRKMVdycU9nMzYvTndQZmEwdSsxcTVQb2Z3QVBmbng1QUFBQkFBQUFBUUFBdENjQXdsOFBQUFVBSHdQb0FBQUFBTlBCbllZQUFBQUExTDZtOWY5Vy91OEVXQVBG''@;'; + put 'put ''QUFBQUNBQUNBQUFBQUFBQWVOcGpZR1JnWUQ3Njd6WURBMHZILzdEL2sxa2lHSUFpeUlEUkdnQ2xoZ2F2QUFBQWVOcU5sRTFvRTFFVWhjKzdrNVVMd1Q4VUJTbHFFbHVicEsyaERhWTBsQlJiYlVyU2puWVJha1doQ3hkYVlyVzZGdEc2RXhFWFhma0RVdmN1QmJIdVJNZ211TktLK0VNVVdseGtJ''@;'; + put 'put ''UzA0bnZ1YXFYWFNnb0hETnpPNWI5Njc1NTE1cG9ZejRNOE1VUWNvQTlmY1I3ODhSRlRPSSs3c1FFSWVvQmtmMFcvRzBFUEZ6UXpTTW95c0FmSm1DaWtzNG9TNTYvMlVKMGliSXZiS1NiUkxEdzdMQkZWQVNzNmhXMDV6VEFGSnZiYjFITXU2TG4wUG1UTTE3SE5LYUpVdmFKSkhHSmM1MXRiSUNk''@;'; + put 'put ''WVZxU3J2WHlHUEJWN3Y0aHczTVNhSDBPY01zSVoxVHBULzMwRGU4aFpydUhhWlJremVZMVRmR1dwR1dKNGhJdmV3WGE3am1MbUFZYTU1aFd3M245RXBCZSszU1NNalhlaVFLM0JsTjlySVRuSFJ4cDdETWtrZnNoaENCUm04OVY3SU5nemlIWExPRkhMNlhLN1plbGZIbUt2MGNCRXhNOGx4V2Y2''@;'; + put 'put ''ZllHOUpISlE5N0cwQSswVlljd2RIekZaY0pPUG1KWHJwKzRpZHMwaFB1RVl6aXo2enhKcm55TmgxalNPS0QvUTh5ZnNsSk9uWHFsY2J5UGxPcW4vcTNUcGh3U3VyZitRUDZwdXpCUzIrZDBISlRveFlxbi9ycGY3UlorbkFLZXZWQm5MS3BQYmkvaXRVdkRmMGI1RDhTbjJTUzh5RjcxMVFtZ3Rs''@;'; + put 'put ''MXZyN1YrcWYrcXpVZm5YT0lMVjNuZCtuNW9qN1l2dTl6VDFWUDNSTm0xR3pwdnRkSjcycWNMM3FYUk81UWg3WFBtd0dtUVBOb1daaGpXY1JOaEh1dmM2ci9RVm9mV1Z2YTF4R010VENlWmxielU0RG1XWE5Vd09uNnhuenFmdWpIbTFDL1Fac0RuVVAxYi82dDZCNURGSXp6bXhtckI0ejgyVXlS''@;'; + put 'put ''M1ZUcjVuRFgzd0diOVIvWjVBTm50Ym5aRzdoVkZmUEd5eFRUd0hwUmNxNWpCVFBCSHN1bUhseW5weWx2eVZlODF3S3pTQmhXaEdoWWpMblZXMCtISTR0NGVoL2labUIrd2ViUC9VTWVOcE53bDFJR2dFQUFHRHp2MU5QTy9XNjgrNjZYKzl1ZXVlZGR4RVJFVEpFUWlRa1lrajBFTkZEUkVRUFEw''@;'; + put 'put ''Smt4QWpwSVh5SWlCZ2pJbVNFaEl3WUlTTjZrQmdSd3dlSkhpUWlJaVFpZWhnU01tVHNaUS9qK3d3R3cvSS9lNFp5RDlLemJvd2JUNHdQSm9NSk4xVk5kMmFybVRLL05VK2JEOHcxaTlFeVo5bXhQRnFUMWlYcm95MXAyN0VkMnM1czk3YU9QZFdiNk0zMi9nUWdJQW5rZ0JMUWRsQ09JY2VDWTl2''@;'; + put 'put ''eHpYSG50RG9ubkJ2T2xvdHpyYnAyWFhWWEcyVEFOSmdGRDhCenNBbDIzUVB1VWZjN2Q5VURlcVk4WlUrM0w5Vlg3V3RESExRQ2ZZYU92VWJ2bUxmZ3ZmRnB2aGxmeGZmazUvMEovM3YvdnI4SlcrRUplQjQrZ2svaGwvNVlmN0cvampnUkJCbEMwc2dIcElUYVVSKzZpT2JSSXJxUEhxUG42SFdB''@;'; + put 'put ''Q2p3SC9tQWVqTUVHc1FTV3dSYXhQSGFKM1dBdnVBR0hjQTRmd3Fmd0duNkZ0L0FPQVJBNE1VMVVpTy9FRDZKQjNCSlB4T3ZBSmpsSXhzZ1VtU0hueVJVeVQyNlEyNVNkOGxFVUpWSERWSnhLVXhVYXBoazZRby9RQ1hxU0x0TW45QVY5UmJmb1gweU1PV1hxVEpONVpqb3N3T0lzeHhiWVhiYkVu''@;'; + put 'put ''ckExRHVJK2NVZGNsYnZrcnJuNzRFcndZN0FZUE9jUlBzVEgrQlNmNFJmNVBGL2s5L2tHM3hWQUlTRHdnaWJFaGJRd0p5d0xhOEttMEJSbnhHVXhKeGJFTGJFa2ZoVnJZdjNOWVdndHRCWGFDNGZDamZCRCtGV3lTejZKbHpRcExxV2xMMUpYQnVXQUxNbkRjbEtla1Jma25GeVFkK1dTZkMxM0lv''@;'; + put 'put ''RklLcEtOVkNOdFpVeVpWVGFWUGFXc25Db1hTbE5wS1IwVlVIRlZWRWZVeEg5bTFaeGFVYytpUUpTSmprY3owWXcyb2MxcFdlMUJhK3RHZlZRZjE2ZjBXWDFKWDlYWDlZWitxei9wdndlQnYwdEF2U29BQUFBQkFBQUJQQUJZQUFvQVB3QUVBQUlBS0FBNUFJc0FBQUNEQVJZQUF3QUJlTnFGa3Mx''@;'; + put 'put ''T3drQVVoYzhVSklER0tERXVHaGQ5QWZsVEllcFN3MFpRSXdvN0VoQUVJbEF0eFlUWDhDbjBUZng1QWQyNGR1M2FoWWZodHFEQmtFazczOHk1OTl5NTB3S0k0UU1CcUdBRXdDR2ZNU3RZWEkzWndETHF3Z0ZrNEFnSGtjU0Q4QUpNdkFtSG1Qc2xIRVpheFlRak1KWG51WWh0VlJGZVFrbmRDNjln''@;'; + put 'put ''VFgwS3J5S3F2b1dmc0c2RWhKK1JORGFFWHhBMjhzS3ZpQnJuWTM0UHdEUXFPSUNOR3d4NTRqYWFhTUhseVI3NXBIbnlGRHV4VUtOcU1hNmxZL3JrSXVjdXMvck03U0dPQWhyTWM3U1RqWTVFNVgzSE0rcE5ES2hVR1pWaVJsS1BmVnpnQ0dVY2syWjViRTU1ekt0aC9hbFM0c3BoVEZ1ZjBacXFP''@;'; + put 'put ''cTlTaVhUSjJXYk1xUE1UNWpjNGovTHExS3JrVStwRFhkL2wzdjkzTS9KenVkcERndVB1bDdPdGZidSthNXlhemJXWDA1ZXNKbFdYdXdOK0NTOG13ZG1yMmRWZFRtb21ablk0YTIvU2M1bHFEVmM2My9WdnF5QjNsOU9xeFpIUldwWW5TMkdYN3kzcytQOUtGdGVNYTJoL1IrNDk1enNXY2NzTzJs''@;'; + put 'put ''UWN4blIrQUdpaWd2Y0FBSGphYlpOWGJCeFZGSWEvMzdGMzNUWk83NzFYeDE3M3hDa3VhOGV4WXljdWNlekVTY2E3WTJmeGVoZkd1M0ZzdWdRQ0hrRHd3alBsQ1JDOUNpUjRRS0pYMFhzSDBYbWtCKy9jQ1Y0azdzTjgveG1kODU4ejk5NGhDM2VkRzJBZS83TlVtMzZReFF5eXljR0huMXp5eUtl''@;'; + put 'put ''QVFnTE1wSWhaekdZT2M2ZnE1N09BaFN4aU1VdFl5aktXczRLVnJHSTFhMWpMT3RhemdZMXNZak5iMk1vMnRsUE1Ea29vSlVnWjVWUlFTUlhWMUxDVFhkU3ltejNzWlI5MTFOTkFJeUdhYUdZL0xSeWdsVFlPMGs0SGh6aE1KMTEwMDhNUmVqbEtILzBjNHpnRG5PQWtwN0M0bmF1NG1wdTVnVHQ0''@;'; + put 'put ''bit1NWxxZjVtRHU1amJ0NW5tZTVoMEhDM0VpRUY3RjVqaGQ0bFpkNG1WZjRsaUhlNERWZTUxNkcrWVdiZUpzM2VZdlRmTStQWE1jRlJCbGhsQmh4YmlIQlJWeUl3eGdwa3B4aG5PODR5eVFUWE15bFhNSmozTXJsWE1ZVlhNa1AvTVRqeXRJTVpTdEhQdm41aTc4NUo1U3JQT1ZMS2xDaEFwcXBJ''@;'; + put 'put ''czNTYk0zaFYzN1RYTTNUZkMzUVFpM2lkOTdSWWkzUlVpM1RjcTNnYzc3UVNxM1NhcTNSV3EzVGVtM1FSbTNpUHU3WFptM1JWbTNUZGhWcmgwcjRnei81a3E5VXFxREtWSzRLVmFwSzFhclJUdTFTclhacmovWnFIMCtvVHZWcVVDTmY4NDFDdk10bmZNQ0hmTVNudk1jbmFsS3o5cXRGQjlTcU5o''@;'; + put 'put ''MVV1enAwU0lmVnFTNTFxMGRIMU1zRFBNZ2pQTXBEUE13MTNLV2pQTU9UUEtVK2ZsYS9qdW00Qm5SQ0ozVktsZ1lWVmtTMmh2eDFvMWJZU2NUOWxxR3ZidEN4ejlnK3k0Vy9MakdjaU5zamZzdlExeGkyMGtrUmc4YXBDaXZwRDNrV3RtRitLSkpJV3VHd0hVL20yLzlLZjhpenNqMnJrUEd3WFJR''@;'; + put 'put ''Mmh4T2pvNVpKTFJ6T0NQd3RubnZVWTR2bkV6VXNiTTJzSE1rSWZHMVdPSlcwZlRHRE50TXZadEJ1WHNaZEZMWm5lc1F6UGRwTmV0eUZ2OE9iSVdFWTZEaWRpZzliVG1vMFpxV1NnVVJtNU9zMEhSelRvVE96ZzVQWm9kTjBjQXk2VE5XWUMzOHFIaTBwclF4NkxQTjFtNlNrbWFiSG15WmxtTlBq''@;'; + put 'put ''Uk9QRE9hbjBNOUR6bjhsU21aRy94OXZCbEdGQmJ6anFoRk9qUXpIN2JNRjRodTdMMEJQVDJ0ZHZacHgwa2Q4L2ZkcVQwNmVkbmpoWVZ1V3lMRmpwNngxMnJLbHJOVzdRYXh6R1hlVDFScUsyWTQ5RngvTEd6NnQwWFdtb3Z0cGpqY2NHajQyK1BtTTA0U0w5TmxoU0V2Ulk1ckhjWTRYSFNzTmdV''@;'; + put 'put ''M1lvNVNUY29LS3BJY2NxdG1MSmZNdWR4VWozN3FkbGtUWDkyZWs0WUowZjBDUzYzZE95d1B0OWpEYjdtdFo1VnZvMFRISXlHb3U0eWJuVzJOUWVSV3duTDJKNzZoKzNaYmNoQUFBQWVOcGo4TjdCY0NJb1lpTWpZMS9rQnNhZEhBd2NETWtGR3huWW5UWkpNakpvZ1JpYmVUZ1lPU0FzTVRZd2k4''@;'; + put 'put ''TnBGN01EQXlNREo1RE42YlNMQWNwbVpuRFpxTUxZRVJpeHdhRWpZaU56aXN0R05SQnZGMGNEQXlPTFEwZHlTQVJJU1NRUWJPYmpZT1RSMnNINHYzVURTKzlHSmdhWHphd3BiQXd1TGdEK0hDVmdBQUFBQUFGWW1QWjNBQUE9KSBmb3JtYXQoIndvZmYiKTtmb250LXdlaWdodDoyMDA7Zm9udC1z''@;'; + put 'put ''dHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTpNZXRyb3BvbGlzO3NyYzp1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUZVa0FCTUFBQUFBcFFnQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxS''@;'; + put 'put ''TkFBQUJxQUFBQUJ3QUFBQWNmTkg1NWtkRVJVWUFBQUhFQUFBQVRRQUFBR0lIMVFmOFIxQlBVd0FBQWhRQUFBY1hBQUFPZGo1OGZFeEhVMVZDQUFBSkxBQUFBQ0FBQUFBZ1JIWk1kVTlUTHpJQUFBbE1BQUFBVFFBQUFHQm9RS3p6WTIxaGNBQUFDWndBQUFKc0FBQURubmRERDdGamRuUWdBQUFN''@;'; + put 'put ''Q0FBQUFEQUFBQUE4RWF3QnBHWndaMjBBQUF3NEFBQUdPZ0FBRFJaMlpIMTJaMkZ6Y0FBQUVuUUFBQUFJQUFBQUNBQUFBQkJuYkhsbUFBQVNmQUFBTjR3QUFIRzQvN0hHREdobFlXUUFBRW9JQUFBQU5nQUFBRFlMWllnU2FHaGxZUUFBU2tBQUFBQWhBQUFBSkFkNkJDQm9iWFI0QUFCS1pBQUFB''@;'; + put 'put ''b1lBQUFUYXExTStWV3h2WTJFQUFFenNBQUFDY3dBQUFucE43akxtYldGNGNBQUFUMkFBQUFBZ0FBQUFJQUtFQXBGdVlXMWxBQUJQZ0FBQUFYRUFBQU1RSSt4NFlYQnZjM1FBQUZEMEFBQURvUUFBQmlHWEZqMktjSEpsY0FBQVZKZ0FBQUNCQUFBQWpSbFFBaEIzWldKbUFBQlZIQUFBQUFZQUFB''@;'; + put 'put ''QUc5bmRZbUFBQUFBRUFBQUFBMUZHMWFnQUFBQURUd1oyR0FBQUFBTlMrcHZWNDJnMk1RUXFFUUJERUVrZjBNTFBvZjd5cEwvRG9mWGZWL3ovQUlnUkMwVFFDTFI2Y2RGUmtqVnNvN0h6VHYxRDRCN200MDQ4RE9sb3BObHY2NDVTZVhYTFQ1MXNYelNhK1czQUYzQUFBQUhqYWpWY05iSmJWRlg3''@;'; + put 'put ''T3VmZSszOWV2Z0tXVUg2RWdJVmdiMHhSR21BaXlhUmhVUnlxU2ppa2FadmJqbklQeDEyRXpGdWY0Y1dnV1VoZUhEQWxwRVBreDJnQ2lZa1hHdW9ZeHh6WUN5Z3hoWUZ3SHlCWW0wK2xDUkhuM3ZPZjlzQy9RYnVNSkQ0ZHo3M3Z2UGVjOHQrY1dBcUNBRVpnS21WeFhQd041ZUhvUXgzRDhSNkJ3''@;'; + put 'put ''Yzc3ZE9BOFZjNy9ST0FlVmMrZk1uY1Bab0Q4WlRXY2s3UGhkQVFNd0RGWG1jUmlKZXRlYWprWUxiRldKbWhIeEkrbTlpRjhNTmw5QXhXY1ExTVhONUlDSldJbFBFY3RnS0kvQmVUSklqcUVVdlhpeWY4UWQ4WmI0U0h3Y1BmeUozKzl4NVBmZGVqdTVkL2IvSitPZjk3akN1ejJPOUh5ZVA4Vzdl''@;'; + put 'put ''aGpaRW5mR3V4TmM1ai9Ddjc5TDBOMGVjVE96cEJqT1RGY3hXOWNSaWxyQ1lSVGhNWVlJK0R3UllSeVJ3M2dpandsRUNYTTdrWlZxSWdSTDhSUE9mSlFJelBoSytsOG1CSzhRZ2xjSnhTSEM0MDNDNHpnUjhGY2l3a2tpd3J0RWhMTkVEdThUT1p3blNsaTlUN2xhVEJTa1RNcFFJdVZTVHE2UUN2''@;'; + put 'put ''SmdWcmJBdFVkVEpTUDV6ZldFMkxuVEU2dWQyTm1KdlowNFlES1JSeDFSZ3R1SUFocUlVc3pIZzF3aGlTU3lTQ0tMSk9CeFBNbjVxNGtTL0FKck9mOXBiT0w4TFVRcHRoRTViQ2Z5ZUlISVlRZVJ4NHRFRGk4UmVld2tTdEJHbEdBUFVVQTdVVUFIVWNCZW9vRGZFSUxmRW1MWmlmQTJVWXEvRUds''@;'; + put 'put ''ZTFQS2lsaGR2ZVFtV2wyQjU4WllYYjNueE1sQUdNbDlYeTlYa0pFZUJxOVl5UTFXc2NTMXJPNFkxSGNmTVRHQkc1bU1CRnFJUjM4Y2kxbklwbG1FNUhtRVdIbVgwMnhqUmk2emtLNnpnSVZidU9DdDJrcFU2eTVPY3Q1dFZ4bjBya3Z1bEQ5czkzQ2VOakxzMzFiV2J1bXVPUCtwR3JUYlMzUjM0''@;'; + put 'put ''Yk9STWdtNitQTnZqM1RoelVmRzgxOGZqNWZIeXkwZlNXeGV2aTlkMU8vSTMrMFpSYVpvUTA0VGlxNFREM1lUSFBVVEFMQ0tpSXA3a25FUU5ZbXBRVTRPaWxZaXdsWWlzMG1LVkZxdTBXS1hGNnFvNFFUaWNJaHhPRXc2ZkVBRVhpRWo2U2wvV3RaLzBJL2VYL3VTa29tSVZGUmtpUTdpK29nWlhF''@;'; + put 'put ''YVhvUy9ReXBZc3BYVTNwcnFqMFc0bXMwcjNGRTJYaXlablNYVkhwWFJyM0ZwVzNxSElXMVVXbHB4cFAxYjJMNkZuWFNiVGVOS3ZGQ0JQbE9vc3paL3AxcGw4dHhweW9XSXVSSjFyV1RQeFpSVHZMUWs1R3kzanVudnowcW1PRURhelgzWXhyRmlOWnpValc0Q2xHOHpRMjRCbHNaRVJiR01sVzNz''@;'; + put 'put ''WTJucmFkcDl6TDA1MWdEVTd6WkJkNGduN2NiU0IzR2NJVmg1bWVGWDJzbzVTYk9zcTV5ODIweE95YjJZbU9SY1BJbmN4L2g2eVFsZktFckpFVzJTalB5WGJaS2J1bFExNlhBM0pZanNvN2Nrck95QWR5VGk2bzE0S1c2UUN0MUJGYXJiVTZWaWZvTFZxbjlkcWdNL1ZldlU5bjZ3SnQwb2QwbVQ2''@;'; + put 'put ''bXpicEsxK3A2M2F5dHVrUGJkSS91MWYxNlVOL1NZOXFwcC9VOS9WQS9kbkNSNitYSzNTQTN6STEwMTd2UjdnWTMwVTF5dDdscGJvYTd4MzNkM2UrKzV4cmREOXpEN2hIM1UvY3p0OXF0Y3h2Y3MyNnJlOG50Y3UxdW4vdURlOE1kY1crN0UrN3Y3cC91Mys0VHJ6N3YrL2dLUDlnUDkxVyt4by94''@;'; + put 'put ''Ti9vditzbCtxcC91Ny9Tei9EZjlBMzZlWCtSLzZKZjRGWDZsZjhLdjhTMStvMy9PYi9jNy9XN2Y0Vi8zQi94aGY5Uy80MC81TS80RGY4NWZDRDRVUWxrWUVDckRpRkFkYXNQWU1DSGNFdXBDZldnSU04Tzk0YjR3T3l3SVRlR2hzQ3c4RnByRHFyQTJyQStiUTJ2WUVkckNuckEzN0E4SHcxdmhX''@;'; + put 'put ''T2dNcDhONzRjUHdjWVFvaW5yeGRpeldiZVFseG5VWlhwVXdtb3hiekxPMHkxL2thY1kxeGpjWlA1aXdEalY3dXZFazQydVZQMU9sMm5pVThaU0VzZEI0azc1R2JqVC9lT09KNXU4MFBtK2U2NHczR0ZjWjU0MGIzR3p5ODhhTHUyZDlNeHVqK2E5Z1RETisxcmlwaStXdU5IYXo1eG52TTE1MUph''@;'; + put 'put ''Y1pNUHRLbm01OHJiYi9MOWFObCtTcXZUdkdsNDJmTVY3WXhjeGV1Mlh2djNPYXovWnV1U3JEaXpObnZzVE8xSFNKK2F2Tm43WFRyRDV1OWwyWnpJL3FHcjFvMjJpcWlxdy96ZXFVMUxZNXFXYlM2cVJScC9vczJrVi9NcWZGN0UydTZhSjZpeHA3dyt6OWlWMnNhWnF4Vk51cDlyTCs5QXhwM2c2''@;'; + put 'put ''YS9TT3IwWjlONStkc2ZxcWNUcHRqTnlMVjdTWCtHclBQcDdiTlNWV2Q5YWMzNkthTVp0S0taTzBYelA1VzZyZjVkaTkwcVBrM21EOVZXbFhHbm1TY04wOVA5a2ZwZmJIbzdqRDdzTm5abGV2aVh5WFZpZmRjVnFuc2psT0t0N3Y5LytCTFp5cXVzWGNwK082cVpsYVMxNmxuMTY1aEYweGUyQkUr''@;'; + put 'put ''eDVkWURtTnhJM3RZMHJuN3NHOS9nVDA5NmR4OTdZMWFicDI3SDMrdm1zbytWRS8weHgzc2N3UFk2ZTdrN3o0emlVcnI1VVBaOWI3R3JqV2ZiN2ZoOW5vYng0N2V3dlhXcy9QZGJyM3ZLK3grcjdGRC9oSUg4QjIrNk01aXNiMHExK0JmRXZBVU8vRVF0RnBQYmVONVJhNnkzODBpU1B4alUrRVMz''@;'; + put 'put ''RTlld1c1WGlrSGNheVFqR28wYmVPcEpQT1Uwek9Eb3IwMjdmelErYW14M0J2c3lmTWg0cnZGbTQxUlZPYk5MOFNYdTh3QytLem5KUzRrVXBGUjZTNThyVC9RZjZqNmJLUUFBQVFBQUFBb0FIQUFlQUFGRVJreFVBQWdBQkFBQUFBRC8vd0FBQUFBQUFIamFZMkJtY21DY3dNREt3TUxVeFJUQndN''@;'; + put 'put ''RGdEYUVaNHhoRUdNMkFmS0FVSExBeklJRlE3M0EvQmdjR0JkVS96TkwvalJrWW1JOHlxaXN3TUV3R3lUR3hNcTBIVWdvTVRBREpaUXBBQUFBQWVOcTFrMWxRamxFY3huLy90MzBSS2hUMTl2WnAwMGFpRkVYMnBjaStsS3pac3EvWkd1c1FRMFZTeUo0a294a1RVMU8yRys2NE5XT012cytWVys0''@;'; + put 'put ''TUhjZFhURFBNdUhKbTNuUGVjODZjNTV4NW50OGZjS0hyQzBGMGoxVHFtVGpucmxLc3h5V013NDJCbEhDTE91N1NTQlBOdE5BbUhoSWdneVJNQmt1Y0pFbXFwRXVtVEpVY3laTkNLWklTSTlWNFpieDNpVEtQbTYzbUUvT0w1VzRGV3NGV3FHV3pvcXhoVnJwMTMrWWYrVTBwZllmRmpSN2FqMm5q''@;'; + put 'put ''bWZoS2Z6SEZKckdTS0NtU0pobVNKZG1TS3dXeVFUWnI3WmZHVzYxOXlHd3gyODNQbG1FRldFRldpRk43cUpYMlMxdDlWQy9VYy9WVXRhdFc5VWcxcTRlcVNUV3FCbFd2NnRRMVZhdHFWTFdxVXBXcVFwV3BNNnBVbmVoODA1blZtZlQ5azZQY1VlRElkOFRZQjlyOTdENTJMN3ViM2VqNDJ2RzU0''@;'; + put 'put ''L0NIa0hmSlhWNzlwK1p1ZUR1VDRJOWJCS1A3ei9pSFJ0ZEpGMXgxZHU1NDRJa1gzdmpnU3kvODZFMGYrdUpQQUlIMG96OERDQ0pZWnp4SXB4NktTWmhPSkJ3Ymc0a2draWlpaVdFSXNjUVJUd0tKREdVWVNRd25tUkdNSklWVVJwRkdPcU1aUXdhWmpOWE1aREdlQ1V4a0VwT1p3bFNtTVowWlpK''@;'; + put 'put ''UERUR2FSeTJ6bU1KZDV6R2NCQzFuRVlrMWFIdmtzcFlCbExHZUZmdjhPZHJLYllnNXhuTk9VVTBZRjV6bEhKVlZVYzVFYUxuR0Z5OVJ5bGV2YzFCVDlaUFEyRFpxbGU1cW1uMjBWcTdVZDBXemdiTGMzNjFtaisxMmMrTzFXNFY4Y3ZFQTltMW5aWTJVdG15UkdqMXZZempIc09DUmM4eGtwVWJv''@;'; + put 'put ''Q0lyaWpkeDZnYVpZRVhRL3gzV2VLbkdIRXNvMjliR1VmZXpqQVFWMUwrem5DVWIxMW1GSk9jWkxYdXBwNnNVNjh4RnQ4MkNoK21uL1BINUROcXVoNDJtTmd3QUw4Z2RDWndabHBQUU1EMDI0bVZnYUcveUhNMHYrTm1YYi8vOEowakVudy81Zi9maUErQU05UERWaDQycTFXYVhmVFJoU1Z2R1Vq''@;'; + put 'put ''RzFsb1VVdkhUSnltMGNpa0ZJSUJBMEdLN1VLNk9Gc3JRV21sT0VuM0JiclJmVi93cjNseTJuUG9OMzVhN3h2WkpvR0VudmJVSC9UdXpMc3piNXQ1WXpLVUlHUGRyd1JDTE4wMWhwYVhLTGQ2emFkVEZzMEU0YlpvcnZ1VUtrUi85UnE5UnFNaE42eDhub3lBREU4dXRnelQ4RUxYSVZPUkNMY2RT''@;'; + put 'put ''aW14S2VoZW5UTFQxMW96WnI5WGFWUW9WL0h6bEM0RUs5Zjl2TXhiVFY5UXZZNnBoY0FTVkdKVUNnSVJKK3hvazJZdzFSNEptbVA5SERQdjFYMEJiNXFSb1A2NkgySkdzSzZmMFR5aitkQUtneUN3eUxTRFFKSlI5N2VDd0tHMEV0Z25VNGpnV2Rhcis1U1ZMdVdraXpnQ01rT0hNa3JDTDdFWlp6''@;'; + put 'put ''ZGN3UnIyMkVvODRDOUlsUWFsWi9OUWVxSXBtakFRejJVTENITFpEK3RXdEJMNE1zZ0hnaFpXZmVnc0RxMXQzNkdzb2g3UGJobXBKRk01REtVcmtYSHBScFRhMkNhekFRT1VuWFdvUndsMmRjQnIzTTBZRzRKM29JVXdZRXE0cUYzdFZhMmVBY09ydUxQNWJ1NzcxTjVhOUNlN21EWmM4QkIzS0Nw''@;'; + put 'put ''TkdYRmRkTDRNaTNOS3dvS1RIUzlSSFJrdEppWUdEbGhPVTFobFdQZEQyNzNva05JQnRRYjYweWkySmZQQmJONmhRUlduVWhYYWpCWWRHbElnQ2tHSHZLdThIRUM2QVEzeWFBV2pRWXdjR3NZMkl6b2xBaGxvd0M0TmVhRm9ob0tHa0RTSFJ0VFNtaDluTmhlREtScmNrcmNkR2xWTHkvN1Nhakpw''@;'; + put 'put ''NVRFL3B1Y1BxOWdZOXRiOWVIZ1lCWXhjR3JiNXpPSWt1L0VoL2d6aVErWWtLcEV1MVAyWWs0ZG8zU2JxeTJabjh4TExPdGhLOUx3RVY0Rm5Ba1JTZy84MXpPNHQxUUVGakExalRDSmJIaGtYVzZacDZscU5LU00yVXBVMW40YWxLeW8wZ01QWEQ4T2hLMEtZLzNOMDFEU0dETmR0aHZIaG5FMTNi''@;'; + put 'put ''T3M0MGpTTzJNWnNoeVpVYkxLY1JKNVpIbEZ4bXVWaktzNndmRnpGV1paSFZaeGphYW00aCtVVEt1NWwrYVNLKzFnK28yUW43NVFMa1dFcGltVGU0QXZpME93dTVXUlhlVE5SMnJ1VTAxM2xyVVI1VEJrMGFQK0grSjVDZk1mZ2wwQjhMUE9JaitWeHhNZFNJajZXVTRpUFpRSHhzWnhHZkN5ZlJu''@;'; + put 'put ''d3NaeEFmUzZWRVdSOVRSOEhzYUNnOGRzSFRwY1RWVTN4V2k0b2NteHpjd2hPNEFEVnhRQlZsVkpMY0VSL0pzRGo2dVc1cHpVazZNUnRuelltS2owYkdBVDY3T3pNUHEwOHFjVnI3K3h4NFp1VmhJN2lkK3hybmVXUHlENE4vaXhkbEtUNXBUbkJ3cDVBQWVMeS93N2dWVWNtaDA2cDRwT3pRL0Q5''@;'; + put 'put ''UmNZSWJvSjlCVFl6SmdpaUtHdDk4NVBKS3MxbVROYlFLSDA4RU9pdmF3YnhwVG93anBTVzBxRWthQVMyRHJsblFOT3J6N0sxbVVRcFJibUsvczNzcG9wanNSUm5NZ0NrbzVLYXhzT3p2cEVSYVdEdXA2ZlRSd09WRzJvdWVMRFZiVm5HRnZRZnZZOGpOTEhrM1VsNjRLU250Ulp0UXA3eklBZzY1''@;'; + put 'put ''a1QyNEpvSmJhTyt5aW1KS1dLZ2lQZ2h0QmZ2dFkwUW1MVE9ETG9FaVpIR3lzZy90aWgwNW9vSjJBdDk2MGlydjIwTHR6M1h5SURDYm5XN25RWmFSb3ZOZEZmVnFmVlhXMkNoWHI5eE5Id2ZUenJDeDVoZEZHVTh1ZTkrZUZPeFhwd1M1QWtaWGRyL3VTZkgyTzlidFNraysyeGQyZWVKMVNoWHlY''@;'; + put 'put ''NEFIUSs2VTl5SWFSWkd6V0tVUno2OWJlREpGT1NqR1JYTWNGL1RTSHUyS1ZkK2pYZGgzN2FOV1hGWlVzaDlsMEZWMDFtN0NOejVmQ09wQUtncGFwQ0pXZURwa1BwdWRtdkN4bExnc1JkeXpaTmRGOUIwOElSM2l2empFdGYvcjNISVUzS0xLRWwxbzF3bkpCMjBmSytpdEpidVRoeXBHWisyOGJH''@;'; + put 'put ''ZWlIVWszNkJxQ25rZ3VPUDVlNEM2UEZla1U3dlB6Qjh4ZndYYm0rQmlkQnI2cTZBekVFdWV0Z2dTTEt0N1NUcVplVUh5RWFRbndSZFZDc3dKNENjQms4TEpxbVhxbURxQm5scGxUQVZoaERvTlY1akJZWXc2RGRiV0RybmNaNkJVZ1U2TlgxWTZaelBsQXlWekFQSlBSTmVacGRKMTVHcjNHUEkx''@;'; + put 'put ''dXNFMFA0SFcyeWVBTnRza2daSnNNSXVaVUFUYVl3NkRCSEFhYnpHR3dwZjF5Z2JhMVg0emUxSDR4ZWt2N3hlaHQ3UmVqZDdSZmpON1ZmakY2VC92RjZIM2srRnkzZ0Ivb0VWMEUvRENCbHdBLzRxVHIwUUpHTi9HTXRqbTNFc2ljanpYSGJITSt3ZUx6M1YwLzFTTzk0ck1FOG9yUEU4ajAyOWlu''@;'; + put 'put ''VGZnaWdVejRNb0ZNK0FyY2NuZS9yL1ZJMDc5SklOTy9UU0RUdjhQS051SDdCRExoaHdReTRVZHdMM1QzKzBtUE5QM25CREw5bHdReS9WZXNiQk4rU3lBVGZrOGdFKzZvbmI1TXF2Tm4xYldwZDR2U1UvWGJuWGZZK1J0bE03b3NBQUFBQVFBQi8vOEFEM2phdFgwSmVHUFZlZWc1NTBxNmtqZnRr''@;'; + put 'put ''bVY1MFM3YnNpVGIycnhidHJ4S3R1eXh4K1BaUEo1aHh1TVpHQWlUR1FqTERFc0lKU1NrU1VOQzJnUkNDRHhhYUZrbXdMQk1GZ2hmU2lZTEpDOXRtclJaMnJRcDlBWFN0RWxMK3NEeSs4ODU5MHF5SmM4TStiNEhZOG0rT3V0Ly9uMDVRaFZvYVQyQ1B5dllrWUMweUl4c3lJMWFVQXgxbzM0MGdX''@;'; + put 'put ''eEp5L0JBWDA4aUhtbjFlNXJxYWkxNm5VWkJVRVY3UU9uVU8wVnp4T3cyUjJMdVdDUW1zbmNSZnBXZjBtZjBuWDRDVDJMeTcxSWIxaUVSaWVIUDVsN0cvZjg1TlB6dzhQREREdys3bk03aDRlRkR3ODdiSHo3a2NoNXlQdnp3dzg1RGgyNGZHM3Y0OEpqanU4SWJLYWZYQ2Y5dVBlSWFHL01jZ04v''@;'; + put 'put ''R25IM0Rya00zZEZuRHM4ZVBQM2I4K0d4NDFSbDJ3aitFQ0pwZi94MzZHbm1DN2MyYmRDR00wUkpDcUNhRENCR1dGVmdRck1LVVFxSFFLbXE4ZXAxU3RBYU1FY0Z0OGNXaThVaW54V3hTdVpmMm1tS0N3MkcxTkRWWnlCTTV3M2NkVnJQRFliWTZFRnBmUitQNE1ieElIdFM1VUFWQ09nRmVuMFow''@;'; + put 'put ''WGorODNBRHoybEVUdWlIelpPZnN6bVN6VmtXUVVpQ1lJTHhTaVRXYW1reU5ybG9RUmZWU1ZRVlJxL1VaQlNaRVM2YnNTUjk5d0Q1RWF2RndhVCtwNGE1a0kwSk5qUTMxTUkyOXpsWnJoUVViOWZuL3hJWUFGaU9pVzNRbjJFOGl3bjRpSXZzUjZZZjR2NkxYYXE4TkRnZnZnWi9qMnVQUjkydFBT''@;'; + put 'put ''SDlkbzMzdW51ZzkrS3V2OWo4Ri8vVy8ydjgwL05mL0trQXl0SDZXaE1uYnFCRjVVUnRxVHdiYkFpNm52YTdXYWpaVVZxakZHa1NVQUdhU0JqQ1EyeEJHK0VNQUVpdWFhdExyQlFDd1J3Vm9FZlA1RXhackxJUmowUUdjQVBTd1dFV2YzOXlJelFnZTE4QmJQQmFGQnlSOC9FajJwcjBkMDNzdjI5''@;'; + put 'put ''KzVzeXQ3MWE3MmlabkwzNWM3M05VYlNXSXltUnEvL0VveE9hemIzVCt0WDdQTlp6dTJ4OFgrL3BxNS90R2EzOVR0bk1mMmR2MVBOVU90dVpHUlVEQm1lZ3NXb2tUaDlmOG1iNUpuQUNPTWNEcGgxSXUrbFhteUZrNG9VSW1WRlJpcmxIZ1ZxWkJhbzFJZlFRb0ZXaWFZWWt3MWdGNVlyaEtKSUdp''@;'; + put 'put ''RktYdm1TVDkwQ1Yrd0M0S21ySis0WElWRjBTckMyVWJLOUNBRTJ0SnVxSHl2WGJ1U3Z2WjJoOE5rUXFpOXQ3MG5IbldFSGFGbW42bkoxRmhYYXpUb2RiQ1pHbCtOYUE0WU9FZ2puUUJLVXcxMjR3aDJHeWdzM1M2VjJXU0pvRTJmRCtEQ1oxK1liRzZaRElYWUsvN29jSzUxK05wNG9yVTEzdFdD''@;'; + put 'put ''WnlkYjhoOEYyTU5FSzE0S1pVTWRNNkhRVExoOUpvam4xcmJodTFPZGtaRlV0RE9WT3hpY2FRL1R6NkJGTUo2S2RJN1FqMkIvQW1wWi94MDVTWjVGRGhRQVBqT1E3QTBIdlUwTjlYVzFGYmhDSUE2TUJKS21HSTZYZ1Z3dEdTVVFLWU1Nb0ZCYm05UFpGbXVMT2dQTzFqYVhTclFFbEg2VjIwWDNG''@;'; + put 'put ''RThVN3d3K3NzWVRWcFZvUmJBMUs5K2xJZUh6QTJyQlRrbHc5OUkxL1FlN3BtY2I2NE96bmNGMFlQdjIvdjN0alVNZG9mZm5QdGNWbitqdjhEVk5uaHp1R1p6dkYvZnNEKy9zVFIxMHQwejRncE9Cd0dSZ2NObzV2akkrMzNEbDBFbXlPeEtJajliSFc1cmpheTlucjV1MVo4SzlZNER6d0JmUWcr''@;'; + put 'put ''UkJWSU9DbVNkYkFGRXFLZXRoNTRzQkNYU0kvcmtJZitJbFNpSFR1NTYyZUFsc3h4RExzeDdSSkxwMzZ1MUdvMTB2dHVFZmtlT3RScnZkMkhxY0JLREh3UG9PbkNCZlJ0Vkk5VlMxRXJjSEdNdEtXTm4yck9Lang0NnROQzlzMzc3UXZQQ3pXMjc5NlVMcnpoYytjTzI1eFFDZEVPaDNCL2JMZlVY''@;'; + put 'put ''b3k4SGpUM0RBaFZpL0ZSamg1c1Z6MTM3Z2haMnRDeis5OVphZkxiQyt2Zmc2dkVTK0Nqc1pUZzR1VG8wbi9QVldVUTJjS2QyUFVUVWMyaVMwQXVRbk55RWlZQ0tjb2l5V0g2UXdCU01zbzMxenMrMGhsME1wbWdJR3R1WjRRaVhDLzI2WHp3OS9KK0tEMk05L28yZHB0Y0QvUGo4N1lNNlFvUzN0''@;'; + put 'put ''US8raS9FNVVhYkdWL3diWTdLSmQvUllyMjRuNzYxbzFGaFRWdGMxV3BWSlZwVkJVMWdjRGdXQjlwVUpScFZJcHJNMjExUW9CcTdVVkZmbDJDdFdGMnVIcnFqWFdpRXJicURHNUdPTldWcXQwT3IxZXAxTlZLOVdpS0ZTN1RKcEdyU3BpMVZSZmVrc0cxeFE2U21wSUZGVWlYOUtOWURyRkF1QTlB''@;'; + put 'put ''QklMYUFWWUEwVVRCWjVtZkYybkV1c0MyRTBsYW94SzFnaXBlVEh6SXZ6RExTKyttSDdwSlRyZTlQcU42Q1cwSC9EUG1nUXlSK015K2dFUmVRd1UwNEE4WEFVeEo4NDBWMWxBeXRVN0hjR2pvVEFWZDBGMzQyQVhIYXNML1FyMzRpaFFibTNTekJCM29ZQzRlaDBkek9nME83dXdrRnZEMFVtMm4w''@;'; + put 'put ''bVF1OC9BL0pWVWc2QlBnQ05pYk1VVUJ5cFJoVWNBVmxVc1pZOUtFcllxTDEzeCttL1d6K0tIeU9zd3J6NVpRd2NGWVlKUDhna3BXOE16QzdrSEZzanI3NzZHbU16dEJiNXlMVGtIckxBSnRTVmJnS3V5SFhNT2drSFlzd1hvZ1BaMFRickdXZ3ZqbVNDTUFvck5QSkhFb2lGQUprcE1qVENUNm9P''@;'; + put 'put ''VGt4K2NuNFBYVytmNzlrV2orL3I2OXNWaSsvcXE5bnh4ZGZXQlBYc2VXRjM5NHA2SnlWdm41bTZkbUtDdkhBWjFsQlJBQjFBaGU3SVdqbElBZUtVNWg4ZFlpNmYwUmdZNjBaK0k2TjFQWCtkNlpEQkxack05SjlhMklkYS9BelpWQ2Z1eG9kYWt2Nm9TdGdQWVFFaWFnWk94UnFyRUxDRW1qL1JX''@;'; + put 'put ''ajE4aDFnWUdNU1ZtdW5xVjZJOUx6RkNMNFh3NjNwa1lhaDcyZHUveUpaWSszWGVvTjdQNE5GN0srWVorT0xBYWJlNTNkRVdDSCtyYzJ6ZDZZK2JlTkorL0dlQ3BoL2xiMEdDeXoxWUxjN2t3a0RTc0F3dFV1QU9WNHhXWVhiRU1DQXFMQWRtNnJNSktwVlZKVDdrRk5YczhUbzlYRkcxdzBwUzVS''@;'; + put 'put ''RHFwSEFyZ21OVWlDYVRDQ2tVSjlOKy90VG51UHRRL3NYUGYvR1I2ZlBmaVVIeUhQN3JuRTBPcnZabWUvc1crSzhlcWhtS1JVSFNpdDI5Z0F1T2g3dmhZWnpoOGZYZ2hQakNucjlrKzByMDd3bkdoR1Y0R0FQWVZ3T1dDeWRZcTRFazRyVkxDSGpBQy9mVXdnSStKWEsxaXFyS3lzcnF5R3VqS29L''@;'; + put 'put ''TnI5VHI5T0tLbkdxdzdwc2Y0enR3akZYaGg5K3BxTnZmN1B4L0NyK1FHeC8vODEvaGc3ajRPb3k2QVVTUE0wNGo2a3QwbWpCWGFHb0VvNE56VENGNlJBb1M4SUpBbEx1RTNBcWdSTmJqMFJxOUhCcEFsMGlrSlk5RlA2VW1NNXhIeVo5Y0hJenN2RDZkYjlrN01qWGRYNEh0eVo4V1JtY0hWL3NI''@;'; + put 'put ''M2pWWDFSTHIzTjQ4Rmh1ZGk5ZmhBK3ZWUTVNQndhclVMWU5BSGE0dkErVFdnVnNxdERYbzRPMzhkVVNwSVdnVnNSYUVVRktzb0wyWkZXSmpNSVJwQnIyeHNiV3p4dXFGenZkZnJVNFBlaHFURlVLNUJpUVhFRENlU0JrQzVpRUZXSkVSS01YY2RIUmk0YXV6Mlc5STNUL2Z0YXdsNEprTHgzVEhI''@;'; + put 'put ''U3I4bjA3eHZmR2lwV3JjNGloK0RoUTRlNmZ2S3ZTdC9jYUMxdWQvdG5ibGptNll6a2Z0SWNNSS9DdHVjTzBEbERaeGpGYU9ocG1TOUFnaUlVUkRsUFpqcDhLQUZnL1pEMVVyc2pEbk53QlNleU4yRnY1LzcwVzZ5a3U1ZHU0dnFHMUdBUXl2QXdRNXc2RUVqeVNHVGlnQ0hUWXRGUUpBNGhScUFn''@;'; + put 'put ''T0dNR0tjSUJPcnJFUXIwQkxvakhmV3Q5UzBlRnd4UjE2YWhyS3VjeGlIQng1QW5RTW85ck5LZi9ockNtTWtiN3g5ZVNBMU1ERjNSUDNERlVLWjNlR0g0eEpobkl0d3lIaGphMVQ3dUJwVXBQdXZ6emNaQnFhcHFYK3dlMkd1dTNkYWRtRzhMemlkNlp5Mld2ZjNkaSszNEU0MXhyeXZlTkJMeHhS''@;'; + put 'put ''dEk3bmxIdDlmZjU4VFkyZWYzZGpzWS9tODZlNGNCanIxQ0F6WUVnVzByZ1hDVlpCWFFYNEM5Q29JbFV5UWQ1TE9IM2NMWis3eGVkdllXNmVnNUhRL2dma3ovbFBadm9KRGc3TklTd1UrVm5Qb2d3NFlVTy9ZT2lnSGszT1pUNTdpUSt3ZzlkbmIrc0FjbVEvQTZ5QXNyNWVlVWY3TkY2cm54cHVU''@;'; + put 'put ''R1cxVVZRbFhXS290Qnh3UUw1ZWVHSXNGQ3lnZ1pxL1NPNzVhbFRlNkEvQnZZZEV4MjRuV3c2YlF3bVlqMFFNYjNJODBaakovRDl6OFpDVkM2VDZDZE9FY1dBUzlWVDZrSTZGREdtTmRjamMwSjRCQzM0ZE80cC9jWFk4OC9QODdPSW9YT2tScjhUNENKSW5JbG15aitVbE1PRkNTQkxFZ3NuQWhV''@;'; + put 'put ''dHVzb0I2ZTBULzlQNFcvbll1em5uOUtmVE1PY1UyZ25NY3B6Q2pCbklvaGpTck55Q3ArR09WL0pkZC8vL1BOanYrajlCWjNUdnY0Ny9CcWNmeTN5b0VReWFxbXFwR3dQVTdZdHdNUTNGY2tReXNDVldLR3dLcVpzTnB2SDV2YldldndxdWhCWkRoYjRkQTBHMjYxWWJqL1hzeWZpSEdpT3pua2pl''@;'; + put 'put ''LzlvWUg4MHNxZG5SaStEOTVUUzArVm9Tamc3ZzVFVDdkc2piYk85VmJjVW1jOTBuVzNyZHdtam9DY1BvaXgrSnZOa0JXaktCcWVEcUlYaEpvT2dVUGYxRWtEUU5CaGJWUnMrMFJSOVl0cWlUN25tdTNidDRwTTBWMnFJQW1TQ2luSm9WUVVHcmZJZ2toZ2dNQmExV2xnR3dPalZVOUxVUVRDOEZW''@;'; + put 'put ''aXppQzYxaytrOVR0TDBoMHhDRFlzQUhLaGFJNmhYTDlwWkNZWkhCeFZDQWxLdWJ0MUxGRldBWXlweG1YV2YyVVgvUzlZbWt3Z2xzOG5waVRFNHF3R2ZyOVhyOGZtcVJIdUo4dVNpTmxhUmtBQWpySU5abDUweVg1VFVxazVtcm9BQm11RGFnTVErUnA0ODh2NFhyejcwMk9Ib1hDalVyMjZjNzVo''@;'; + put 'put ''Y1NoM3I2UncxVktmMEhrOWpZN2QzNmI0OUs0K3Y3dnZDM29HRENVUFBWU1BOTzlVNEhndG13LzJSazRjZk8vUytGNDhmZUdnNWUyVTgxT3dQNzU4ZU9aRUtlb2FWQzJldFRlNld4ZUdGVHkydVByR3k1NzZsZXFmZDYxaTdiRXJVUm5xaU96cGlReFFmQVMzSkQwRGVpS0E1QkpMTkdneHdTUU4x''@;'; + put 'put ''QUxrb1FHdWdZbHpBVEh0VHE5VVY2Z3F1anRlQzFpQXlVOXRmaVVsMzd0YlJCUnltLzFidS84Szk5NUluMXJiOUt6NmErd3pBZkIrTWZ4ekcxNEZXNTBMOXlSNlFPRENEQ2pnQ3lHVWxWYWNrQjVXSXVkWlA1N0xYR2ZUT3BqcVgzVlZyMGRzTXRqYUhtaW5kR3dXUEUwc0tsdGtvLzdJUDl5WjJ0''@;'; + put 'put ''SGQwOUExRmwzcHp6Mk4vOStSazk0OS9tZHkyTGZsTDhrUmJ0aU02MXRDNHB5dStveDNmTmREZVB2Q1QzTG54cnE3eEhOTnRxTno4S0pNaG9XU2d6bFpaUVhFa0xZc0t5d1lYR2p4ZzBzSkhYV2g1bE1pckNNVUhqaE1QN3QvLzROTFlMUjB4MzBwaThuUW1jM295c2VLTGRkd3lWZ1hudHZ6Z2dV''@;'; + put 'put ''Um52Q1UwZlZ0bTZvUFpVRXU4ZytveUZHNHZNSDNPekN5a1BKaVlvMEFDVTFXbHlWQnByakw3d0xvRThNZ29HY0FKQ2ZjQ1dML3ZqV09QTEM4L2N1eU5OeFp1ejJSdVgvZ3NlV0xudlFjUDNyZHpmT3pVek15Tlkycy9aM3VmZ2ZuNllMNUtGRTYyeVJ5YjZtNktKUkNiTmNXYU43Tm9Lcm5IRFZR''@;'; + put 'put ''NW8xbmkzM3FuK2ZQNG10eEg4ZWR6UnZ3V1dmbEYrdC9UNUFsSnQ1YkgxNkNXcEU4ZW4zSmhOcXFzMnNBSEdxU2hJek4rekVaMXkrUE84RUZ6ci9CQitYbmREK2ZsUkxGa0o1aEpTR2dpUktGa0JvTlNnUmh5a1dVWTJVSTFYOGIrUWNzeHdxRzV1VW5wMUJjSjlkTERpN254WGRqWWZ2ZkVFanZB''@;'; + put 'put ''aVUrRlk5N3J1dmtCdHEvNnZvRXZ6LzIydlpzZllYZDczTi9PajlEZDhGQmh6N2N3bVBxVEhrazlYZ0dkbk82WCtzdTBhRE1zTWQwdC9FVGdsZHlTelYyUnplSlBVM0xDM1hUYnViL0JiWHhjZEIvejhScXBZNlZnWDNIVEZJeXJtV3lXOXFJMkdjakZ2MmIwQjFqRVRCbUcwVXc1SjhzQ0lKT1Zn''@;'; + put 'put ''VjJIdEVhdkFyb1hUQmRZQmFXeUp6L1ExRzFhRFBkbnM0bURnMVhKenE1QTE5NUovRnF1WStSWUg5L24zdncrSGNrR2pWcEptT1RGekNNb2NNK3QwV0Rnc2o2aXh4RU4wQVNJMWIxWnZIYzE5M01jWGNtOWN3eldtL3NRUHBYN2E4Q2Y1UHRmWmVPT3dMZ2FHRmRKZFdHMmFEb2FKUTBKZEVxazFP''@;'; + put 'put ''dnBvcjJBSnhFOTBlUjZzMm5BdWJYUHNmNlVobjVmV0pkWVpsMG12Ynd1RFJoQmJuMGxuTUMrTEZwSDY5bnMranBkbEJQL2ZHMGJFZG43LzZEOHVBOHhYRzVNMmtWQ1NrWTE1RWZGc0N3M0d4TS9tczNtZHRCaitUNEp3NGpodGU5VC9rdHgrTGYvUDJ4NHpuVDJQYkIvL3dQN0prK24wNmNuT2VK''@;'; + put 'put ''S0xPZkFnOHZMRHgyWXlINXdLblBiTk1kYnBwOVFuRDBJZTZzQ3ZnTldPS3dDU0ZYQTFDVlRDQ1RBRm11cVRZWnFjNDFaNzNPb2FCREJtZWM5WnJmTWx2VXoyRHAyTXBVNk9YWStpelVMcTZzTDU4Z1RYU3VEZ3l0ZGIrT2g3TWhJTnZlVFloaVlhQndtMlVrZCswcWlBck5TSU5RMVdqRFpGRVdl''@;'; + put 'put ''VWJQWjNHSnVEdnY4bEFHREVMZUsvbUppcG83MWVNS2ZzRzRTd3VTM3pkN3B6dG53OGY0bEdVQzVWN2U3citpOHFxNGhEeU5jZjNVNDFUUG1EK1JobGZ1WHB2cWxubVhQWXFnWVhFWHdxb0UxZ2Z3RWdhSEFzaW04QXBxSXhONGtjdmQ0bkhxOWtmSWV1bUszSDJ4dVBZT2NVdllWa0lOSDVyKzA2''@;'; + put 'put ''L0d6V1FhNlhNODVCalo4MndsRDd1MjNHZlErU1FFbitUWC9pNFRKbHdGcUlLOXFyUVFrTnNGRjRLTE81eUo1MVlLYXZVRVBCWmRGdG1xb0Z6UkVTdGdmOXljQ09POTdYMGY0cXBISWhIZnhzc3lCV04vUm9jbHJJdTF0aDJJdEk3NGRCNjg2a2JocXV2TEsvbkRVbVhCRUUxWkRXNlk3dmpzYUNm''@;'; + put 'put ''ZTNocHlKcG81SWJkMnU3VjI3bzJ5dFFZRFRKTk16dUc4b2I5SnlaNDVrQ21BMzJMUnVvQmpUNjZUKzlTeVl0R21KbG5jQWpud0srcHVSTTlrb0JSc3dMdDZlR1psTUhwTXNqaW56a3ZZbzhUSHN1bTB5RzEvdTYxdU9aeWR2bTYrYXVtTUgvbVR1cXFIVm5wN1ZJZnJiamp1bU9IM0xPcEdLenFW''@;'; + put 'put ''a05qaHdUb2xwY3M0REpnbm5QSlNYQWU4Z1A4aDlmd0grWVJCcGxQUEN6eGt5QTJONUVWS1lHRDNCV0JXVTl3T3pvS0V0SnNyWjVvRmJHSFJLS2tramRrei9DZTVLN1BidS9Pclp4Yk5mM2ZtcjZhKzlPQTNEL1ExcFl6L2J5T1RhczN5ZElFZkozWXkvQVgvVXFHQm9PSDdLZ21veW1PT2J3V0RR''@;'; + put 'put ''VTdqQ0ttRklEUnNkWkpxNC8rLytiaG1MdWY5aDd6dHpmNEZ0dWRmeEl2ejJPcmJ4c1EwdzlzZGdiRFZxU05hcEJLRERQSk9UdkJBR0Z0eVN4b1FqOCtkK2RlQ25QOStYZTNNTzErTFA1SjdDMDdtanVUZm9XRDB3MXJncyt5azhDMjY5dkY4ajc5WXo2Tm1LRTl5OUFRcEFEK2dUUnduSkhjQVBy''@;'; + put 'put ''djEyZ1BqVEEycy81dkovMi9ySGNELzUyU1ZhbVJGQUxQalo5dWFqajc1SmZ0YTk1dXlHSHV2dnJKL0ZUMnpoY3hWQXYxVXU0R1h1Y3NXb0ErWnJ5TThuK3dPcGFrYjl3M1ErVkpqUENvdy9CajhkTU4yYlBlVG4zZTgrUVllUDQvdncweHkzenFnT2pTUXR3T0dabHhSbXBoN2prNUozNTR3S2pS''@;'; + put 'put ''Z2pScmRmZFArbzk0R2htMjVPZ2l6NjlULzhBMTF6YnYzOVpHNzlHWmpPd2NiWXdrZE5oeEFCZ0lSc1gvdXJUSXFmNnlCSllwRjhEL3BhV2Q4cTZEa0JuNXcwZ0VqbXN5YXM3c0daNjN2SVZ3MmY0RHl1RTNTSTN4QTlzaU0vK2tIU1pNT0NvaGFFZ2g0MCthWkdwYUJTS3RMY3lIUkFZNldLVUdN''@;'; + put 'put ''TGJHeXEwTnN5YXF4U29XVUpIeVhqMGxPbUhTVXQxbGpXMHlTYjh1SmpYdHB3MUtnelUvOVd2Yi9lNTNKUXo1Ykg2elpxNEtpUXhReG5WV1RFV1F2ZVdnT29nWEs0RU45K1JjYStFcCsvUExHVXlPNU9UcmtuQTQySGRsZ08xa3pOOXM1UGRoSDlOUWR5MzlqVzFyRTcwemtUYURBT0x0b3MvWjA1''@;'; + put 'put ''YjNka3h0d1hDaWVRRko4bkV5RHJER0FOUFhkV1cwR1VJQzg0OUJvQWFYV1p2SlBLSm5rbzZUYXRlZEE1TnplaXF0OEdYNllFdDR1TWRna0RVWWlaakVhRWpDNmowMjZESllQczJ1UVo5Vk9pMHN2dTBHTDk0NzRyQndhdVRQVWZhTXhrR2cvMGUyYmEybVk2TzJmYjJtWTdpWDcweG16MjFHaDM5''@;'; + put 'put ''QUE1bC91M2FIZk9COFphNzk1b2RHOXY3MUtVNDJrNzROemJnSFBsYlRIYjFyYVk1WUsyMkgrZG1wdzhOUjVkOWticlJueVJ4UWo4ODQzWm85NERzYXIwNlltSlUrbG1UNlRla2RnWFR5eDFPUnNqM2xaNlpuRTRzMEQrelBSQzhabFIyREV3TWtPakdNb0ZkSGR1YnNTUVUyU3UxdzI0ZnBIUkxt''@;'; + put 'put ''R2cwak16K054NmVtWllRdkVDZVBSa3MyNFVvRWVWa2cvdUZEdXRUblp5NU56YTZJRm85K2lwYlBaR09EaHNYVHUxK2N3SVBUUGlnVE16bzNwcTZRT1BGd2hUaG9pZ0lDdjVaZG95cWlJOXptSUJiYmZlWXJmVlVnbHU4REgzcTRlZlZtR3haaWRkbjBwMHduTHh3YVhha1BNRFhhUFhUWTVlTTNy''@;'; + put 'put ''eTF0d3U5VXBtOGxBRjNxdmVrVTU0NmpvOGJXT25wek9ueHI1NDUvUmwrRE43MHVrOUhLZEFGdVB0d1Bzc2FIZXlRb3RWU2gxR0twTG0yU3IxU0tWU0xvUEdWc3NjSG1oSmdTWFBLOHRRcVFOalF3VmNaclgwdzEzSkNvK2J4U2xGMGM3bGpKdnlmdVkwNUVpb01yOTA4ODJaYmR2R0UvRldyNlpl''@;'; + put 'put ''YjNVU1pTbzNnTCtlR3U5Sk94T2FLbTg5MDRPM2t4YUFIODNSK0hheXFsRkhWRXFObXZtd0pmNEtEQTFram9xc1VzMXlXVlFRaVhBWk1JMEYvcHB2UjVraHJKTzJScVZ0VFpjMDVxVU54L2lyQTFRbm5xa0JtMmp5ZWIwZXlsK3h2dGlYSHQvZ1NnYzhqSlhnWWN2UWlYVC8xUjVuNDg3MlhZY0FK''@;'; + put 'put ''VWVQOWZjZkc5Mk1rc3BjNS9CcWo2K3B0OEd4ZldwN2Uyenc2dkh4cXdkaTdidHloMExib3BGdG9kQzJTSFJiaUovOU5DQ29BbWpZVEtOakJoNVhZYlFFQ2p2ekJ0dUtUSEpBUkwzSmJhSStDTXJxNERnbGY1MWU0bmI0aGwwZG1ZbnV3R1JiSm1OZGloTjlaRTlQN2xrOE9EanJHWERubmdXMjlu''@;'; + put 'put ''WnJqTkhFSUx4K2tmdzE2R2hhNmdYSSsvUnJLZkxvTTdKSFJWdFRYY1hjK2NwTjdud1JWSWk5RFExbVUwT0R5WmZKa0lPTkp2cXJxWEhmMmpzdy92b3I2MWxwZkR1bE9TM0k1UnBRUVVsYVdUU1RJREJjVmV4WHdVYnRDaDVDc0ZmVldTMUdQWnRWTEFraUZEc0JWUGtWWEJYVVZsVjV0YmFtekhp''@;'; + put 'put ''aXNKUjNmNlVSQjVRcVR3T0pySDIzaCt0bXdKcFlMTFVTdVpNT2pRTG9YV0NtaVk2dlJ0WlA5VWFtN1dHcTZEQlJBckJ0L3NtK3A1WXlHV3pmajJ0emIveHk3NTBBempiY3lNK1JIczluWUZ6Wjk2RXI4WDFNQVpTQVcvRzJRZ1RveVkzKzlLeWpqcmsrT0IxWktCRXJsOVdpU2xBcTlSa0ZqVFFY''@;'; + put 'put ''MkRXUU9qeWtUVlRRaEtoVXR1SVdwZ3YwdjFCWFNoOTB3VzdrY3V1TmJxUGJwQUZ1VVlSZXFnMi9STXljT09DVlBMazluRWxGQjdMOEpXT2FpZlRzTk92MjloYWhYYWJvblNpbldzSzlrYzYrQXQ1VG52emhaemphY3hBWW1mV2twTlN1bHpGZjJyK1Y0MHNKWVVpYkw5dHp5MDUwMjlVWEl5bnpK''@;'; + put 'put ''WkNVY2g0b2lzdVljZGpQSm4rSjdhTCtFc3VGL1NWY01SaS9jWEx5eHZGT3FoZDBjdTFBVWd2U3B5WW1UcWRUWFV1SitMNEVWdytRcE05dEIzMU9YMTZmbzNKYUJXSVFDTDJnV0ZFZ0dYR3hQcWN2VmRNMk5qUmRmTFJMR09pUzlEbjVPUDRnZlM3M1czTG1RRGw5anVwUTIwR0gwcGZWb1FvN3N4''@;'; + put 'put ''VXBNNWtOSW8ycFB2cE5xdEhtaHFhTGozWUpBMTFRaDlKZlRIWmRRSWRTcnMzZzZvSVNkU0RYV2FyM3pzUExZWUJURmJyK0daN0V3WUdrWjZKV3dKTHVTM1VTRGhpelRIZ0Z4WmgvYUNyZmE0c09zT216ZWhPM3ZRM3hpRGxQbXM5Y1B0NnpKd0xzK0cvNlU3Q0ozTTlwMEFhaklPam5MOEk2ZmFn''@;'; + put 'put ''akdUTERRaTFnYkNOUzhOYlpOcnVmZk1qckNYRDNFMC8raUxNMEFUblR6U3I2NUF5Q1JrSmwwSGVPaC95N2RrUUdYWkhnY3Zid1RIaC9xMmQ2SXRSWEYrMUtqSVN1bUt0cTlpYUcycngxYmxPMWZTZ3hPdDlrNytsbzlvQW1hZEE3dWtOak82aStCMnZjVHU0R2ZTK2NiTE5nRlpQNVJMaU5pa2F5''@;'; + put 'put ''UkFNcEFBZXdKUGR6VFpUcGNFWW5WZUs4TkRzdnBwZlN6VUF3MFhCZVBJRzN0OFlUNDl1MlpXNisyV25WMTJ2TXpuUVBUcWYrK0k5VHViUDEzaW9ObFRuQW53QzVHYjhWYUVLYnpHK0JZVW9DZjdONVlKVS9vc284a3JJSEMwWkIyWjViZGlyd1c3UGI1R1pobENMTm4wcHpIcGpVRTRHeTJTNlo2''@;'; + put 'put ''UUp5dmdNY0ZwZ3Vuc3k5eEpndW5vVDkySUY0YTRsU3p1bVN2VUN5N3FzM01HK0ZrYnV0N052LzZwSHRQNTRBeld3ZVAwYjFFd3ppRGdrTzZGL3EvOUpmMlAvbG5yMzFZME1mdTNYMjhmRTdQem9PSXk3akIralAyanY0dnR6QmdwOU9oTEZaRG1HRnFNQUtLdCtvRndYR0ZraFJnTVZnTUZERWMv''@;'; + put 'put ''cEZ0OUVmc1NZaW9oRS84Ymw3ZDM3enhaMmZ1bnZuMTE1NTlWV3NYbnY1NWJYYzcrbTRqZXRUeEFYajZxbXVXS2tHdklZaEFibWxvU2xlNzZkcnR6TzgxaU9kd2VTVzNLb1VUUWF4d0haUmc4VmpYa09kdTg2bGJmeW4rV2YrY3R1YmRWT0pwL1hKYWxOZGtvaTVPZno0Mmt2SmJzejNFb2VYVjJI''@;'; + put 'put ''T0xYeGsrZ3Y3eU9LNEkvZTMrQk81VjNFMGQ2UVgzemJlbXpzOXpzWU5yTy9HZThuendIVUJSamFtQU9nd25uQ3hERWxvc0NneEFveG05QmFxUWlsQ3VCK0RiSTVSUlozbXFsdHJpTm5LZzY0aXBVNFJheGE5d1ZnczZGMmNWdlgzV3JEWDUvTmlhMitmNnZQTkk3R1BkYllsZ3AxM3hWUE42cGlt''@;'; + put 'put ''cnEzbEU2RkVkVTBpOVBIV29FMFRnMW11WEQrTEh0bkMzMGExdHl2NytxUUVSK3JmM28yWDJkcWJrMTQxODVQcE1ZSzE0L0ZDT3ZFeUJkVU1yUVlnb2lsZ0JiSHU1NGxLQ2NwZEVvMmtBUVBLbTEwcWVJY1RDZlgxV3ZtS0xiMzlxdW44VG81cmJNSFdqNGNTTmRXSjBDZGEydW8wTVhWektuNVha''@;'; + put 'put ''ekRSMXZteDJFaXplbjBkRGVCV2ZETitWQy9pNnZXMTNGdEljd2JoNTNKdnNRd1pLdVBtMW5lZ3J4SzlyT3V6MVZHRnhKYVJjK0tNcEVUWFovbzJUMHdGclREeWVTbVhKTGpYRkNONk9YZGtiUlQvV3JheHorSzN5VFNxUTA2S0tZME5kVGFyeFdUVVZTdEpGWS90d2F3TFV0a0hxSDkxTE9lU2x5''@;'; + put 'put ''QndUejh0UHFESENMSWVyR3lQeFFvaXpZeC9PQmZLOWgzczdqN1lsdzNPT3FOdEE0T2hhTzdEMmQ3ZXJLdFpPWmlxbmo0K09IaDh1bXFvWCtsdmluUm9jbGRXZGtaT1hXbkVkeGl2VFBIOElFVDZRUyt2UjZsa0VvNlRKcHdoa2VhMWkzaFNpUWt3WDVHd01CSXpIV25tbVNpeWlCSW4wbnBVVDNN''@;'; + put 'put ''RHdSNmdhckhYN0l3bFdMWnZzU3NIanBDbUtaTCt0Zjg3TkRDUU9EZzRlbTF0ZC9XT1JILzJXOTlLcDMyZWM2azdSbzcxU1JIS08xTG5pdjNZRnRTZGpKc3cwdUMwR2hhR0tTYzdyTUlFMUViUVpGY3FXSmtKejQrMG1JMEd1YVJFVjBtTFNsaDVqMWxPUUlZZlJ1RDRzNCsvOXRwcmMvRHorTytv''@;'; + put 'put ''NXh0UHBtWlRKMDdBQ3o1TTNkL2MvaU1MZUE4NXczSzZPcG5IMVUrVG5BRjVXUkJrV1NsUVFPR1pNbGxkMUJsYmJKUjFGdjIrMjA3ejVPM0d4NlIzc21BM0d1cnJEZlIzL2c3NDJvYWkrSWY0UlowTEIxUklKK0FBK283a0E1N0QxNUE3TDhWL1RIT3pCbkU4OXkxeVorSlMvY2RXMGYzY3pCLzNr''@;'; + put 'put ''TzhaYnVLOHpiLytLbDZITTlCU1d4QWhwaWpjUk1YdkI2bmdZaUVBRmdMeU1TbUFKZldxbDJwYk5CWlVNM3FrcCt2Z1lHN2dtZ0hjMHJHenUzdFg1MW9UK2ZPMVhUeEcvRlAwbDNnRWdOYVl0QmR4QlVMWnhVeFI4blc4Q0hxWE5UWmF6STJONXA4Mldpd05EUmFMWkZzT3JpZlIvOUFNYm5RdDI1''@;'; + put 'put ''dk9hZ0k4TnRJc1FqWGx4Mmt1cngxZzRJQmdWMXhOTTh1QVM2OFdHT2wrT3N3c0tKbXNDV0RXVFZ1MTRWTGFobXhHajhkRHBUUUZIYy9pZCtYVkk1WWFDOElxSHZuZi9xNVdXMWhuYkFBTngyUTAxZWljMFZxRkdQUTJlSUs2cWxhcldhODFWdXF6VkpqQXVVZmgzSC9HenIxTnBPZmVocjRyNVo2''@;'; + put 'put ''bDhUOHkvdVJCUGNtRXE5WmFwU0E4WEVrUVhTdERTTTZ3UU5yc1I1S0k4N2p0TnJNeGo1ZW9tR1ZKV1o3VXZhcVNGV1BnTUxoVDRtUE5aZkxsQ253dGQxMlpqRG0yQnhhREUyN1F1V0N0TkNjeGhmNEVQWXJVWndoKzhsSEdjTXUwT1lycnQyaHpRbTZEUmZUVUZtMVc4MjJxMFdlMmFMTW5QOWRo''@;'; + put 'put ''OUZlOERkbmM1aHY1Y1NyUkR6YTI0ZmxXd25sR0N3WTBsa3pwS1h1a2NGY2pERXhJRGNlZ1ZxeG9nRGVxbGtBMWxVSmpTcTRvTWF2V29ETkFaNjNFbnlxQldXSTVBU2RHYzdKQUlRRHJLaUFuNHVSK3YzczN2b3MwNUl3LzVSazVORDBybmJzVjM1eTdsZWZRSkZuT1V4eTlrNnlQeC93K2hhaXFF''@;'; + put 'put ''d0FyYkZyQTN4b01MMms3SVA4a3gzMmFmZ0lNNjJwNFFZcXJaSmVwSllPQW1VdTJKb2k2L2JCcWU5NElDZEkrQ0N0dXV0Uk9idWdVMnRCSk9IV3hYc25BNWc0MDdaTWNLdE9QVzNpVlBtOHJrSjRSREx0NmtJOWFMRE9IemVSWEpqNHVJVHhaK3NCUWpVSnMzRXlidFRzK3VhTmN3bGM0b1hEaGpT''@;'; + put 'put ''VGJyVGwwNzY2U0REREFKWll2eFhDN1djTC8yeGt1NFNLYzNOem1LSHAyaXpZbjVEYUEvN2RzMFdaUGZwekQ2SHJlcG9EYjYxUnkzTWZtYXVQcldmOVl1WEd3bzZqTlVlQnZtOXFzL3p1TXM4N1cwOGJYcy81a1NSc2FORmF3OWZCeERxOC9zbkU5UUVjME1QTnRsbmZSUUNzUk5tb1lTMnBNa3k0''@;'; + put 'put ''MFJTcUdWZ3R2RGRwNlZqWnFobTdWSUc4cUNyNFBaaVZGOUxMZkE0Z3FJb0xReHkvejVMblJVVGw5N2x2NGZENkZEbmVuY2R2YW4vSkV1bCttL3hOZ3dIS0RHQy9wa0hqSi9TVndZdmt1REU2ZDB0aytWc0p2TnJjNWloTmJ0RGtodDRHemZYV0xOcXY1TnRYb1MxdTAyWk9mNnpCNlpSUGZ3bWdP''@;'; + put 'put ''ZlJKL200QXBoVlJQcVduK04yaVFmcUFPZjhLYXNPS1JPMkozZkRqMllmb3ZpbWZZRy9zamh1UjZoTit5dWg0M0NtSlJNb2d0V0VFQ3JRMzF0aXFWVXFIQlNKbFBlNllmQ1VVZllXVSs3N2xzcjdJZDhwblB0Y3pWUTlNaUxCbFZtWWlxZytjZlN2NGdDNCtEcWtvRHFsdVBjL0VoS01PcEFXNFQ5''@;'; + put 'put ''TFQ1akg0anF4RXFsQmlJN2tUQm93VGlIbG1zbUR0SEVVL1J3WllJZVRHeS80RjlYWmNISXdzN1F4SGdMdDJYdDhHdmE3L3hPUEFWNDR2QVpQRHUwMm1QSTNmUCtDS3huUjVaZnVpQXg5V3owbkY2RkxnTC9TMzM5L3Q5K1A0NDhKamN2MlEvT0JYWjc4c2RpQ04yL2l5M2h1RmFsNFNQVDVmZzdP''@;'; + put 'put ''WTJSOUcvYnRIbWhOd0c4UEdKTGRyc3lZOXpHUDNGWmw3RGRYWTJWNTgwMTBzYng5bVVkeFZpekYrcHdNb1ZGWmFpamZuQ1loQ2JXb3RKYTlWWjlUNm5UdVNaSUpHaWJEVnZQbHR0OXBXU2JMWHJlYnJhVGQrVXM5VW9MV3lIdVhYa1pkUkNmVjhWWUVBd0ZZcm1xNjNLdWVjc3ZJT1hWRHgxMnVo''@;'; + put 'put ''MWVwd0JOd3NQNW4zUW9yeUVXTDVPTEY4UVJVTUEyMW11VXV3eWxzcThtS0lwekttRXQ5YzEyZDA5bVNVMTBmbFFhRDU2cEp0bk00L1RMT1p4WjhJUlM0M0cxOWI1dWZLOGplOEJIRWRBY1NBb2RhamNjd0hnZTAvUjgvTnlleXd1RjdmL1N2NTVkYXI0K1puOCtJZDNGajBYN1BuMmxUY2p4Z2Zn''@;'; + put 'put ''dWZCbm9IKzJvUWhLb2lQSmxRYUFuYXNlTkJ3enJsQjNZVldGQnBSbVVhV2tWUnNWS2xLeGl0UklKYXBWSzlVYUlsZHQyREkxbFZVQ2xlVVMrVVdqd1NCQzBXUjBzTGM3R0FsMnRvZGhnb0FCcU0zcjhXb0I1SEl3ZVVPZWZsR0tCNCt5Ykl3eEkxcnhJK2Q5a0IveGdQUFFTWS96NU1pK294dlNQ''@;'; + put 'put ''MGFYclo3TCt6ZEZvWE4zVHJiUnBKRDBFSTlIRDNiRmh4YXpSVmtoaVk2T1JDRThuVHZTTXRMc00vZUYydU04OXlISmNoL2lXSkdzYnc4N0hRcWxJZ3FtaUpnM1JSUnBNMWJKT2xrUVRHa1ZuTmJWTEVaN2xXeGkyMmljVnJVTUNoQUxBREF2cHozUHpVS3NrMHFrZGN1WDFvdHFaZUdOdmZDcGkz''@;'; + put 'put ''Vkx0cFgwb0lZUU9sU21veW9mSTR1anVKbXJaOVFab0hpUGFsa05wc29jUGxLaWxpV1BEWlJML25BdHRtdExiS2x1emZRMXd5WDVJSzRXd2MxdExKN3JRR2xvZ3RQV1Zhak1jMHBiWHloNmZsNXVqOFdqeGUzUDVNYzVmQmw3dnY0S3ZOM0R4bm1Wai85aDNqNEQwTE1YUFQ5cTR1My9EN3o5WHpi''@;'; + put 'put ''K3Ezejh2K1RQLzVtK3NmRjUrOE1Qb1h5OVhJSjhCN1NuSU5xZE5PcVlxN3FobnQxcVlUSWFLdkJFNXNrNkd1cVUvZm42RGRtMzlxU0pwcitCTkZ3dGZneFdiV05qWTdDeHplZnhlV2xOZ2l6a1pQbG05VkdsZ2QyRmtiQ0ttNE1uK0I4WGt5Y20weWVIK2k1UEhSeHAyWGVEZlUvY1B0WGlPR2dm''@;'; + put 'put ''dDgyMEJXWmpuYk50d1cwUlV2V0Y1Ym1iSjFMWFppYmVuOXcyT3hjZmFHNDJORFhaMndZY2F6OXEzNUdJTG5TR0YyS0p4UTVhMjhiaW41UjNiZU84YTdFQTkzRUd4emtPM3h2TFBhZm45MWpSOC9OeWV5eGVXOXorSy9ubjFidUxuNS9KajMvNGZad0hwdEMxcEliNG1JL1FqaTdqOTNEUTVBL21o''@;'; + put 'put ''a0lLRVNzVnlvTXFPWGh2bzZFOUYwSXE1ckJhTGJSVEtoV0xRRVBLWmRaaFpsZlN3cXhEdTY0T2hKM3NZRlJUYTcwNG1RQ014T0ppTm15VXJQVFhhZG5kOStReXRoZGs4M3c4L1ZTaGVrM0l4MTZ0WU1XMjVQVTRFMmhrZmwrZHpWb0p1cGQ2Z3g0SEh3bEZIeFhyY2VWNmxlMVFSbyt6YmFuSEZj''@;'; + put 'put ''ZjFMcTdIMmNycGNSY2NndWx4VHFlenhkbnNOZmdORy9TNFlqV09hbkVLcTVFcmNSYUs1WDRCNUlqTE8zbmorT3hJdzhLd3l3ZWNhR2FzY1NHVnU2bmxuWTQ0c0tKL1g0ejQzd2tuOENmM1JpWk9wME91YWM5eUJCaFEySjE5SjQ1OUx1QkIzK2xhU2d4MzUvN2VDZmpGNDB3VVQzZHkvRDNNOFc3''@;'; + put 'put ''amM0cS9mMXIwL0x6Y0hvc0hpdHVmeVk5eldNSmZIZ09oNCt5Vnh2bE1VYnliNThJTkp2dWtnSGY1WE1PaTJQT2xoSjMxZjNqWVdWZ3RtMGVZMzhjWmFSK3d2MTJveUZjVHlmdHpqa2gyV3JGZHhQV2JPL1A2elpGTWNkL0w4bjRlamFURGx2WjlMcThEYWJaenZ1dFlueGRjekI5dG8vQ3J4U3BC''@;'; + put 'put ''cE5GVHJDUkNXc1FxUkEzWnc4eWVZSmNlWldTTjBvaW1yRmFyeldyejZQVjZzMU10MWdXVTNBdVg4UE5hUEs2c2RDWXFpZUJ5ZDNUMDFZL2s2L0pzemlaN28vN2Y3di9DSnhxNk81dnJQOHRLOUJ3MmU2TVJqN0pDUFNuUGQ1NE1BbjBIVUFKZnpvbXVucXBvOVpocWFDSUpoelNDV2dTeVZBZEEr''@;'; + put 'put ''MURKWkY2MmpiTFF4blRSY1M0OFJKNER0TUFhUlRVUlYrVTdHR3hnNHF2VjNHZHBaYUhjalhsd3dkSU9BRTZ0MUF1VmRqSzl0MW5lNHdTVWUramIydG9TYlhHZnh3ajZhYk96UXF5WGp6R2VpRzJsbjVyMTh0bjZpdEtSeVNBOVpZdStOQ1Y1OVFwKzRMK1NVNVBwc1Z0YnE4WTI1U2JUZkdXR0Ja''@;'; + put 'put ''OHU1Q2hML29DUE12dkxKOWxmLzFGaXgvSDhYTW9meGlUKzhHZEZmVS9JZmJFYXZiQkYzL05TWDRMVlhPZmhOWStzcjEvcWUwc0pYZEZjM0IrUmM5Qm1uTFhSQ2w2aEdtbWd6WE5DTlcwRWJTVGZFRkRzelVqTzN6MEdQS3NPUHZuN3N3WUYwYWpsc0x5UGlrK01CQ1ZhZ1lQUzVjdU5iUmthRWVL''@;'; + put 'put ''WHVHanp5VHF0VzdabWtvSjJZWkxEbXZkOVh1cjQ3MlZvaWtZR3U5M2VhbS94MDR3Rm4xc0tVN2xMVW56bEMzUFE1aXlWWTBNYjBsUWVmVFF6bFB0OWNhN0s1TnF6UmZtKy82c3ptVno3OGdidW12Y2JSdkord3lQb1dMbXpCdjMyenJ4K2UyUUJsZk01NGdyMDR5MzZ5cnF4QUcyK3p1c3FnVS9S''@;'; + put 'put ''V3RKNk5KNGMwWUhLb01mMGpnKzVBb1FTbjdpRVJGSHlubE9ScE0wd1pRbUkwNmlVdzQwbU42M0cwbE1TbEd0WTNUS2RXU1hXV2xUVU9zTnB5a0dKcmk3M2dsemh5dWluQStqTDI4RHJVbW1NOWlETGc2YTN4ZDJTTkxwZElDTnJNRkdxUUdNV1FkbWc1UkpPV2k2UFZLRElxUlFyTkJaYXNJYjRP''@;'; + put 'put ''V2ZrR3d0WWRwZFhic29BZ0ErVzYwRXprWFUrbjYvTkY2aDFHWHhldDV0WlR4czNwTnFjVk0waU42S2NXbjA2djBXMVdyc2h3VG9FTm5CTDlrSEp3TlhXU2JzMkdYRWgyUnBzM1RZci9pN0x1QzdqZTFhWDhUMXZ0b3ZVa2wzRWFudVpqRzJWWk96TFpmeW9ORitheXRnMGw3RW5wYjY1dDJoZE1P''@;'; + put 'put ''OExlS01sQnNrUENlMEZLNnBCSVNBSU1ha1BOaEcxV0d1bERpTjZWdzZhNEV3aFVFa0RNWUphc2FxUjlmQWFHajVRTGxlb2lGTEp3L25MUEp3dmNZWnd1UzRWV0tYUzg0Nm90SnZwdmM3MG5pZWhqTUlSRGxQWGQzZ2czSitJYVVQYVVLREY3YXl2TXh1cEM3eTJTallRS0E1d204RDZIcE8xc2FQ''@;'; + put 'put ''ZTduTzROY1k2dS9FL0xpbHZlNGV2MFJadHR6Yjc3VWFEZmR1bEpuR0RMVXVMbi9TTTMvQzR3SkgxZTB0aUJ6K0VObFdNMzNCNzk4aG5rSlFITTQvZUJKNWhwRmtUYXRDNGpEeS9ScjVXaDZkWGNUbnQwVnVjcklSTEZzeWdtOHFNNFUxS0d5WmRsak1ESmxlYnE4akRramJGOUNoWXhUeDZrY1g4''@;'; + put 'put ''blNpWjdEZWJpRUp3WW40TlVlR1VKVk5EbXlkZ2xoemlhQVFMM0tLdExwdVdiWlFYWktWbHhmS1M5a2s1QUROMGFVMFdhOGJMRjFmSUNWaXp3enJyMnpVaS9wKzFkNlNGQXAzUXVQMURoVGdMOEZmTkpqOHJ5K05HOXhCbFB0OWFYNUp2bmNsa2FQSVlqTGNYNk80V2tMc3VvQzlHZC9pSDNHY0J6''@;'; + put 'put ''L1dNSHJQUzgwK3o1NnkrbStrWllVblAwSmJRT0lBRU53aC9CRzFtcERZV2RKYTNPU3UzNFhYaTUrUnhZUHk3bUU2QWkzUUNPczRJYXpNanRmbVRqVzE0ZlFqcEJ4eXBwcG5GVlpVVkdqQkNCVFdSSytZM0ZaOVhvMnB6dnZoY2pGRWtTWmhGTStuUDljN1Baei95a1hRYW13T1pBSjdKL1hnOE0v''@;'; + put 'put ''NWJxZjZraHVYRU81SU5sUldpaWtwOHRWU1JyNU9LUzgzc3Nqb3Nna1VrRFlwcjVqSlRVNWs1ZkZscjdwdFk3OC80OFhMdW02MEZuZWtoQnNNT0NUNy9XUUpEN2dQNW51UURvYnJhbzd3dm5NdEQ3THc2SkQ1SmVIdDRyaUI2dVQzQTZvV2l1VTdrWTF0cWRHNkx1YzduL1MzcUU2Z294aFRKeDVp''@;'; + put 'put ''T1NIb2gyU1FMeGhudGNwL0prY3RRdVZnWXJrSG5TMkx2bS93NXVPWmFidE9BR1NoOEg4N1VnQnBvemtQK1pnczF5Vjl0b2FFbC9ISnVIVE5VRzR6MUZoUEwrK1VLZ3EwUVk1ZFpJUTJ6RjlTcENGY1IxbDdlOThYOSs3KzREM0RBT0R0NU9wTStuZVpLd3VLZjdWdis0djcwMmorVHB1bGJNNW5y''@;'; + put 'put ''VWtqeXB3aEFHY0FsT2xBWDJwYk1XckZhUlYzZ1RKc0JWcTlVSzFhcU5FU2xrdjBWbFdLRlVPU3g2T3gwdVJEcTdPcE14S0t1RGxkN2F6T001VEI0ZkI1dk5TeDZvK083d01NTHd0K3hpWmtqcmdZSWJYS0ZsZHQ3L2VnNFM0MGZ2YzdyT2praUtRTzVxNHRTNVBIMUcydXYrbnJIZWRMOFdFL3ZL''@;'; + put 'put ''RlVMaXJQbTgvVllrbjV3a0oxclRNTGRyNVhnQk0rSHB1ZTZ3UDJkODFKZndOR0RESGRqRW82K3lOdm4zcUw1MDFKNytyeXBhSzRUOGx5QXV4OHVPOWNWREhjWE9PN1c4N2xZblQxYloxeGE1MzBsZU0vem9lazZkL0IxSGtOU0RtT1MxZWdQMC95S1dMU3BVYUVVN1RUcnBrNEhhb2VXNVZmVWI1''@;'; + put 'put ''bGZJWXJNTlc3SmV3RXVKYi9pb3AzSzVsZGNwTmVXK1JXbC9hVDhDbSt3bWVaWEdGaCtCZmZKbDArdzhGM0tiUVFrSEZtWjBKWkx0dmpvWlJlOG8rQ1Bkc1lGOSthc2k4b0RGNzYxZ0o5ZGNEM0pjdHdIVVM3WjFJRkZWV2RUbzZBVU42YkhLQytRSGlQQnh2YUhISi90RHpvKzJ4OTRmTGFTNC9N''@;'; + put 'put ''RW1pOHRQUVpmTkprZnYzaGdxbXllVEhpZmIrc1UvK3lDc2lSYlJ1bHZ1a0RTZjRGV1Q4aTBDblIrZUF0YVBTL1RLbGJIOHVmTjdxaHdvaGVTT2xyaGpxelZJQm1xNkNXZ1V1NGZERUF6eTY5bTBWNXlpdm81cFVRdGpab3daWTRRdkIvRXVSM0xSOVZHdXlpUWNOTWw5VW0yYkdwTzd4a2crRkJK''@;'; + put 'put ''THdXOUpGc1A2M1lpS3FSb0dxR1JtckxzR3MyeUowWGRBL1IyRGJ4Z0xITVk5ZFgweW8zUUpvaW44bGR3c0hxS0pLdW5DS05Ya3JZV3JCWmF6VVNqRHBvSTBlUWprOHEwVEFsS2hmSzJDa3pyVnpWWGd6QURNTlA2VVVGUUxLbDRGV2xKZERGWTZLUFdrSnN1MWluWldyNjlGR0VzNmlaUVdGRWJN''@;'; + put 'put ''SXpDck1yREN0Q2lMcE10UW91NHRQVER5a2dBdDVYaWNIZWhIc1JiNzlXVlJoTEY4V2h4a1VqQ292YnlHQ0s3RTRYaGFrTEMxV3RLY0pYV3NQeWE2YTJMWEc4bHZTVzZMYytwaU9SektvNmd6NVhxMGN6UGYyZmV6MzlrdWpqMzR4djVuSTFLOUZwSlBnYnJ5K0w1TEtZQWJXNHRseE1DZXRtalpm''@;'; + put 'put ''c0dDbkVLWExNWFNmZTV6TFA3WER5b045bGxCdDVVRFNjTC9CUUxhZW1HTFBsK2VCWkNLQmhJME1QanFYVjdQUHkrTEpaQnNjbHBzK242Ri9LcHlkdm10ZWE4WjhOeTJRZWtlMkRJRSt6V0YxMkQ1TXh3TmxqdWZWL3hwVEJTelNtc2RRNXNJQzk2bXpzSWFqUmdQS294RnJ5NDZMWkc2YW15OE5S''@;'; + put 'put ''VXB1M21abm52ZHIxVWtFUnJlYlp5YUR1a050VEhuQy82S2VQRHZ2QllGeCtHU29BS0R5M1liR2IxVUJ0ZDFCc0xpUXEyTVpuakR1bml1cUpNa2FIY1dqV3h1Y0lvYjQ0eVhLZDM1VEI2Nk9INVEzaXhCSTk1UFJIbDNic1pMb3JvSjBVNVF5ZmtuQ0Y0L3BHU3Zqd1dkRjZPQldGeFB5cnF1eWVm''@;'; + put 'put ''YjNRWTNWYUN4K3dPRzRici9aSU8rRlRKK0x5R2grTDZFdGNCcjBkRmZmZklmY0hPL3RzdCtwNlIrbEpmNStlSytwN0k5MVdqVTF2MFBTL1BpOVhEREc5WmJUaTEzYlhVNTBHckRHamRGZk41c0NJbXNwOGFGWFpHVkZwVVUrNzZONVZiS0tyNC90TG1NbStwSG1DR25ML0UrMnlzOUQ2YkI4Y085''@;'; + put 'put ''OHhrdThuNU8zZnNLRDlHdnM2TXdFa1FjbEtxTXBQR1NFUkU5MkIzZHFibjhCZzV2MlBIbmRJWTAvZ2dlUTZzY3FuS29vTFFPb3MwbUZQVXoxRmFGMUNOcXJ4Q3ZzcEMyalN6bHg2WmFneWJZblYxTVZPNFlhcUZURGZDbnhZTC9OSEU1bGxBbjJPK0hSK2I1NEkxQjVzck9IYVhWR3RJTlNMVHVG''@;'; + put 'put ''cXdzeHFSTGpacWtENEhEVzFWaVFWZ0hZdjU0bWJoa2lwRmlyL2o0c2ErdmtBQWZtcmQ3bHI2UTZiNTM0RytOdjZnMXMxckgrWXhKWDA5Nm1FckNOZkFaclFVWTlKS1Z1SEJLclVBcG91TUd3djBreGxlL2VheEtLUnFFZWs3R1lxYzZEZjJOVm42ODQ3eng1Z1h5aWk1ek5tNURaRisvRUh5RmRq''@;'; + put 'put ''NU1KczNBYklBYTVodnpvVHhoQm9MckU0TnpuS1YzZXkwS0YvOFFvUVpwcTFhUUpRckplUkE5SXNUQ2xsZCtib0VYTjFrMDF1cVRiV3FrRzdXWFBRN0dUUVl0VFVPai9nQitaMmZ4eUIramRXNGlLaU9yVXFyQkl5Y29GYjNTYU1oWHh0akZkMWVxZGdGRC9HS2w1cy9iampOYUc5YjdxMzFwOVlm''@;'; + put 'put ''UnpYSXcwYXcxWlNwdVBQa3h4STNmam5CNDl5ZldsdHY5NzNML2FUTVo1cm5rVGZJUEJLbGNIUUxIdms5bVVlaUZIcXVpTDhXK2g0Rm0vbGlmWS9pMGFLK2UvSjlEK1BaRWg3Sis1N0o5ejBNZkk3WjN1dmJhYnltT05iejdqclhZZDVkbDNTWWRwQ3hIbWEzVDBodHZ2NXVqc2YxM3MxSmJYZzhZ''@;'; + put 'put ''VFUvVGpVNnRFVTg0U3Y1ZUVMMU5DcWJVNXBDSDk5Q1Bud3ZueXVRV3BIdXZFZHZFZzJPWFB6N0lMNmZDK1BJdU54SDZMbUVQZ0o1TnlmM0djZGZSdWZJQTRBem5VOEJ1a3hrbnJRVWY1R0tiZE1YcWZES3gxMVBjeXd5eWc1OExxaWZwMTl2MFZSTHY5NkMzRTYvMzhMczROOXZRWDEwK0t2b0pm''@;'; + put 'put ''SWdRRUVMVUVueE9rYVN5dGN4d2pyd2JXd2REYWpuNllZYUlpK2xtbDErdzc3cmh5M0d1S0dVVFdEc2I5ZFpUNjNId0c1YzI3Z2k2NVlMZkd1THRkYVhyaHZmU1I3VStmbTYyZnEvQ2VzMzVOZFBVVXJlQ0FZcy9CS2V4QSs4dDlxd0I4YkhPenJHeGpxK3hOODZ4am4rVEFKZWphTDlnQnRnYytu''@;'; + put 'put ''YzhQcE5odU42VEM5SkUrbDNMQ2tPRkgzSDBpREt3R3h2OHZ5dURpMVcxdkN2UUZKalZSV3VxRlJWRkg5dGtySGFJRlJXQ3N0NmpVNVVGSC9iVXV3aUhkazNKL0hlSXUwdFNOKzUxRjIyWDVsdlhTcnBDNHBmZkdvcW1aUy9mV2xxY1dySDNHd3lrMHlQamJRUHRnOTB4Y3QrRTVQcEQvZ21Kc2Vt''@;'; + put 'put ''dnoxRmJSM3g5L3d0VFhpaTZJL2NXZms3bSs1L3oxL2VWUGFMbkFwZjZFVHZYWXppQ3VDZFNxUjZDclRyOXNBZ3RnTHNmQStrN3I0NzljNDNkRTgvcTVmdXZJeGl2ZHhPWU8zOENhc1loRllQUERENjdOTzZiN3pDWk1VYjByM1RZVFNUbktxM0V3Vzl2YUlTMDI4dVVJQUFKQXBoUllOSkJjYVZ0''@;'; + put 'put ''TDRsWDlCVWhTc3JaWmNOczIxRGJZSFdGcjNCQ3phcjN1aXRCdnUyY0krV0h3eGFhaHZCMndBcFZOVFNqRUQ2ZlZGTzVnN0czK2JYVW1jK3ZHSmR5aExsdGtOMUIyK2JrT3FZcGova3dvbmNHWldBNTNJdk9qNHkxOGV1cWs0ZUgwL1ZhZTJPMVBDUlhsYkV0RGlXcW04eW0xTFp5L2ozL09BV1Vv''@;'; + put 'put ''TlBBQjlVUFFWS1hUdmpldnltL3hPc1dKa3FPcURxQ01DVm5Yb25FZGJXNkE4cTNMdkc3d3hSUDJNelZpdEplNWw3ek43akhSenZITmp5Q2c0cHY0VFpxN2hkaXBXY3plZWRCR2lzbVQwdnhKcjU4L1A1NStMTnhjL1B5TS9SNGV1S254ZkdUNkVQRlQyL005Lyt5Qlh5dlNuejVBYUFBWTE5cUo5''@;'; + put 'put ''cGNSc3h3S0RFSEpNaFViREZmSnRoY2dPM3pZb0JJOWxtLzEwRUg4bE8yMUVFSXNsRXU2YzB0NDZ0bWZvRitGNXdKYnEvYUM5ZnljT2srbUQrYmhQMGVYWjNrNHdMRWIxN1hycXVpWDYrdmgwK1Y1WitybHliUWY4UDJ6K2Mwd0FCQUFBQUFRQUEzNXZtaGw4UFBQVUFId1BvQUFBQUFOUEJuWVlB''@;'; + put 'put ''QUFBQTFMNm05ZjlSL3UwRVlRUEZBQUFBQ0FBQ0FBQUFBQUFBZU5wallHUmdZRDc2N3lZREE4dkUvNEgvVzFnU0dZQWl5SURSRUFDbElBYWhBQUFBZU5wMWxEOU1VMUVVeHI5elhnZWlnOEhCUVNzYURWUXRmNldCS21odEpLTFNwaTNQb0RGYXc4QmswQWdKTGtZUzQ4UkFRdUtpQXlRZERIRXpj''@;'; + put 'put ''WEZ3Y3REQlJDWUhuUWhMYllpU3lBVFI1M2N1TFdKYjJuejV0ZS9kKys0NTMvM2VsWFhjQmorU3BvNVJqZkJsSG9OYVFFVEgwTzZGMGFIek9Ja1NCbVVNNTZsMmVZNCt6ZUdpTkNBdGs0ampONjdJUXJDbXI5RW5vemlvYVhUcFZaelErOVIxeE1sK3ZjRTVlY1RzdHh2UHVSelRhODhoVTdLSlE5''@;'; + put 'put ''NER0T292SE5WWHlPc2l4MjZRazhqb0tQV2QvejhqZzFYK0RuT05aN2lsVVF4NEk4aDdTa1Y0L3lreWpqTWN3enAxQ20xYXdvZzlNM1FHemZvV0xicUEvVHFOczNJUE9kYThTWFpKQ1QyYURmN0lKU1QwSEU3clkvamFoRTZ5UjMxMHloM09mY1RuWnBIR01oSllEajdvRVF4aEJTbHZHaW03cmcv''@;'; + put 'put ''ZGVOL215Qk42dUlZMm1lQzhMTzkzczdja2ptdUV2ZVhRcE1veE00aktBWXlUN2ZLT3ZqWmkySzE1bDU2d1JubkJXdmFnVmQ0ZzRlb2FSd1EvTUNCeGR6MUd2N2E4cXFNUVNQUFB2TnNockFhZnpEL3lKMVgwOXVKVXhidHE2V0VNTzVwL08yWCswV2U5Z0d2T3F6cnlQcExXaS8rL3pEZjZOMFNX''@;'; + put 'put ''cUJYVzFML3RYYlVzRjhhczgvZWZ6RC96MldqOTJwclZ0TjV0L1FvdFI5d1g2MWZudUtmbWg5VzBHeTFydHQ5bDBxdHZyUGNMdll1U0FYblorbkFaWkE0c2g1YUZiVEl2MG8xbTg5YjZxNkg1eXQ0cUREVWdGZ3B6WGViV3NsTkRlK2VZcHhwT2xUTldvZTJQZWJRTDdSMXdPYlE5TlAvSzc0TGxz''@;'; + put 'put ''WnEyVnpMTDdKa0t6UHhYTWtVbHFQZEk2ajVlUTVDclBMT2FOWjZXMTVSMXdDdHVuVGZZb0Y0Q21rVGNtMENjWjhLZ08xT1d5Q1d5Z0pzNnk3T0M1MUpvRGgzU2l4YXFUUmVEb3N1SHg3bmMxenBmSC81ZjdSendwQUFBZU5wTndsOUlHbkVBQUdBei81U2VwNlhwZWQ2ZHQvTThyN3ZUenArLzAy''@;'; + put 'put ''TU0yVU5FaU1Ud29jZUlJUkU5UkE4aEVURmloRWhFUkE4UkVqNkVqQkVTTVlhSVJJeUlpT0ZEaE1RSWtSRXloZ3pwUVNTa2g3M3NZWHlmUnFOWi9xZWdPUm5BQnRhMHF2WkUrNkI5SG5RT1hnNjJkVGFkb0V2cTBycVNycVpIOUV2Nmd2NlBZY2F3WW1nYms4YWNNVzg4TTlhTjdhSDRjSGE0YkVK''@;'; + put 'put ''TUtkTzJxV3BxbWFGNTNwd3hmemJYelYyRVJxYVFYZVRHd2xuU2xxcmxBYldoVVRTTjdxTVZ0R1UxV0FscjNEcHYvV0E5dE1WdGR5UFlTR25rWlRRNTJyZEg3UXYyTC9hbXZldklPSnBqM0ZqVk9lTThkblpkSWRlQnEreHFZVFlzZ1dXd0M2enVKdHlTZTg1OTR1N2hVWHdWMzhRTGVBWC81VUU4''@;'; + put 'put ''SzU0Tno1Mm41ZWtSUXdST1NFU2N5SklwTWsxbXlCeVpKMHZrQlhsTFBsSWg2aTJWb3RKVWhzcFJlYXJpelhuejNwTDN3bnZyZmFScGVwWGVwSGZvUTdwSW45SG5yOTR4REJOaVhqTlRUSXFaWTVhWURQT1I2Zm0wUHRTSCt6Z2Y4TVY5Uit4N2RwbGRaN1BzUGx0Z2UzNnQzK0duL2NBZjkrOXdl''@;'; + put 'put ''OXd4ZDhwOTQycGNrM3ZpbmdQRlFEbHdHYWdIZnZJeS81Vy81dS80RnYvRXY0dzN4anZqZlVFV3RvUURvU1JVaEN2aFh2Z3Q5RVZFZkNNdWlHdmlscmduSG9tbllsV3NpVC9FdHRpVEpxVXI2VjU2bERwU1A0Z0VzYUFRaklZY29jNkVaZ0taT0pJbjVWbDVVVjZYcy9LaFhKVEw4bVVZQzlmQ3pY''@;'; + put 'put ''QTcvQUtHQUE0a29JSUVtQVdMWUJWOEFqZWdIYUVpMDVIdHlEVzBRUURuNEFyY2dMc3dEMHV3QXIvREJ1ekF2b0lvMkgrQWtsUTJsVDJsb1hTamVGU0lDakU2Qm1QVHNYTHNPbFpYVVJWWE9SV29jVFdoenFwRjlVdzlWMnRxNHk5TU04bWdBQUFCQUFBQlBBQmdBQW9BUUFBRUFBSUFLQUE1QUlz''@;'; + put 'put ''QUFBQ0RBYlVBQXdBQmVOcU5rczFPd2xBUWhjOXQwWUFhNDhLNFlHRzZNTzZFZ2dRaUxqVnNGRFFTd1MwSUFwRmFMY1hFclUvaTF2Y3d4cDhYMEkyUDRETjRlanRVSlkweE4rVitkODZabWQ0cEFKYndDQk1xa1FLd3l5ZGtoV1dlUWphd2lCTmhFMldjQ1Nld2hqdmhHYVR4SUR6TCtJZHdFbmxs''@;'; + put 'put ''Q0tlUVZnWGhlUlJVVFhnQkRYVXIvSVFWOVNiOERGdDlDcjhnYWF3S3YyTE9XQS81M1VUYXNMRURGNWU0Z1ljQmV1akRoNFY3UG5uWXlLRklhbE8xNk90cno0aGM1KzR3YThUY0MyUlFSWmQ1bnE3a1lxaGRSNHoxTU9hcFJTVkhsNjNYTm82eGh5WnFwTGk4amFuTU9JODE1V253NURFKzBPOWov''@;'; + put 'put ''ZWoybnc0TlJrL3Bjc25CVFE5WW84czl5TzFRYTVFUHFRZmFQdmZPSDdNSTV1ZnpWRWFXNi9wWFpWZlhkYUtxR1dvdXo1T2NrV1QxcVBxTWpqbjVpU2ZMZmRMVDBUZjk3cG1OdldXVHNUYi9iNEhEajJaU2xRbFZ0R3B4RmJWV1l1OGN0dmk3aVVMMDlVczRwNitycTNveTNVcFVzWTRydnVPQWlr''@;'; + put 'put ''ZlA4QXZjdlhoekFBQUFlTnB0azFkc0hGVVVoci9mc1hmZE5rN3Z2VmZIWHZmRUtTNXJ4N0ZqSnk1eDdNUkp4cnRqWi9GNkY4YTdjV3k2QkFJZVFQRENNK1VKRUwwS0pIaEFvbGZSZXdmUmVhUUg3OXdKWGlUdXczei9HWjN6bnpQMzNpRUxkNTBiWUI3L3MxU2JmcERGRExMSndZZWZYUExJcDRC''@;'; + put 'put ''Q0FzeWtpRm5NWmc1enArcm5zNENGTEdJeFMxaktNcGF6Z3BXc1lqVnJXTXM2MXJPQmpXeGlNMXZZeWphMlU4d09TaWdsU0JubFZGQkpGZFhVc0pOZDFMS2JQZXhsSDNYVTAwQWpJWnBvWmo4dEhLQ1ZOZzdTVGdlSE9Fd25YWFRUd3hGNk9Vb2YvUnpqT0FPYzRDU25zTGlkcTdpYW03bUJPM2lm''@;'; + put 'put ''NjdtV3AvbVlPN21OdTNtZVo3bUhRY0xjU0lRWHNYbU9GM2lWbDNpWlYvaVdJZDdnTlY3blhvYjVoWnQ0bXpkNWk5Tjh6NDljeHdWRUdXR1VHSEZ1SWNGRlhJakRHQ21TbkdHYzd6akxKQk5jektWY3dtUGN5dVZjeGhWY3lRLzh4T1BLMGd4bEswYysrZm1MdnprbmxLczg1VXNxVUtFQ21xa2l6''@;'; + put 'put ''ZEpzemVGWGZ0TmN6ZE44TGRCQ0xlSjMzdEZpTGRGU0xkTnlyZUJ6dnRCS3JkSnFyZEZhcmRONmJkQkdiZUkrN3RkbWJkRldiZE4yRld1SFN2aURQL21TcjFTcW9NcFVyZ3BWcWtyVnF0Rk83Vkt0ZG11UDltb2ZUNmhPOVdwUUkxL3pqVUs4eTJkOHdJZDh4S2U4eHlkcVVyUDJxMFVIMUtvMkhW''@;'; + put 'put ''UzdPblJJaDlXcExuV3JSMGZVeXdNOHlDTTh5a004ekRYY3BhTTh3NU04cFQ1K1ZyK082YmdHZEVJbmRVcVdCaFZXUkxhRy9IV2pWdGhKeFAyV29hOXUwTEhQMkQ3TGhiOHVNWnlJMnlOK3k5RFhHTGJTU1JHRHhxa0tLK2tQZVJhMllYNG9ra2hhNGJBZFQrYmIvMHAveUxPeVBhdVE4YkJkRkRh''@;'; + put 'put ''SEU2T2psa2t0SE00SS9DMmVlOVJqaStjVE5TeHN6YXdjeVFoOGJWWTRsYlI5TVlNMjB5OW0wRzVleGwwVXRtZDZ4RE05MmsxNjNJVy93NXNoWVJqb09KMktEMXRPYWpSbXBaS0JSR2JrNnpRZEhOT2hNN09EazltaDAzUndETHBNMVpnTGZ5b2VMU210REhvczgzV2JwS1NacHNlYkptV1kwK05F''@;'; + put 'put ''NDhNNXFmUXowUE9meVZLWmtiL0gyOEdVWVVGdk9PcUVVNk5ETWZ0c3dYaUc3c3ZRRTlQYTEyOW1uSFNSM3o5OTJwUFRwNTJlT0ZoVzViSXNXT25ySFhhc3FXczFidEJySE1aZDVQVkdvclpqajBYSDhzYlBxM1JkYWFpKzJtT054d2FQamI0K1l6VGhJdjAyV0ZJUzlGam1zZHhqaGNkS3cyQlRk''@;'; + put 'put ''aWpsSk55Z29xa2h4eXEyWXNsOHk1M0ZTUGZ1cDJXUk5mM1o2VGhnblIvUUpMcmQwN0xBKzMyTU52dWExbmxXK2pSTWNqSWFpN2pKdWRiWTFCNUZiQ2N2WW52cUg3ZGx0eUVBQUFCNDJtUHczc0Z3SWloaUl5TmpYK1FHeHAwY0RCd015UVViR2RpZE5ra3lNbWlCR0p0NU9CZzVJQ3d4TmpDTHcy''@;'; + put 'put ''a1hzd01ESXdNbmtNM3B0SXNCeW1abWNObW93dGdSR0xIQm9TTmlJM09LeTBZMUVHOFhSd01ESTR0RFIzSklCRWhKSkJCczV1Tmc1Tkhhd2ZpL2RRTkw3MFltQnBmTnJDbHNEQzR1QVA0Y0pXQUFBQUFBQVZpWTluWUFBQT09KSBmb3JtYXQoIndvZmYiKTtmb250LXdlaWdodDo0MDA7Zm9udC1z''@;'; + put 'put ''dHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTpNZXRyb3BvbGlzO3NyYzp1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUZYd0FCTUFBQUFBb09BQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxS''@;'; + put 'put ''TkFBQUJxQUFBQUJ3QUFBQWNmS1RiTEVkRVJVWUFBQUhFQUFBQVRRQUFBR0lIMVFmOFIxQlBVd0FBQWhRQUFBY2ZBQUFPZGoraGZYUkhVMVZDQUFBSk5BQUFBQ0FBQUFBZ1JIWk1kVTlUTHpJQUFBbFVBQUFBVGdBQUFHQm9xYTMrWTIxaGNBQUFDYVFBQUFKc0FBQURubmRERDdGamRuUWdBQUFN''@;'; + put 'put ''RUFBQUFEQUFBQUE4RWQ4QnkyWndaMjBBQUF4QUFBQUdPZ0FBRFJaMlpIMTJaMkZ6Y0FBQUVud0FBQUFJQUFBQUNBQUFBQkJuYkhsbUFBQVNoQUFBT0RrQUFHMDhzTkd5TldobFlXUUFBRXJBQUFBQU5nQUFBRFlMYTRZSGFHaGxZUUFBU3ZnQUFBQWhBQUFBSkFlRUJDQm9iWFI0QUFCTEhBQUFB''@;'; + put 'put ''b3NBQUFUYXNuZzVQbXh2WTJFQUFFMm9BQUFDYndBQUFucHlWVmZhYldGNGNBQUFVQmdBQUFBZ0FBQUFJQUtSQWg1dVlXMWxBQUJRT0FBQUFZVUFBQU5rTCthR1NuQnZjM1FBQUZIQUFBQURvUUFBQmlHWEZqMktjSEpsY0FBQVZXUUFBQUNCQUFBQWpSbFFBaEIzWldKbUFBQlY2QUFBQUFZQUFB''@;'; + put 'put ''QUc5RzFZbUFBQUFBRUFBQUFBMUNTWXVnQUFBQURUd1oyR0FBQUFBTlMrcE90NDJnMk1RUXFFUUJERUVrZjBNTFBvZjd5cEwvRG9mWGZWL3ovQUlnUkMwVFFDTFI2Y2RGUmtqVnNvN0h6VHYxRDRCN200MDQ4RE9sb3BObHY2NDVTZVhYTFQ1MXNYelNhK1czQUYzQUFBQUhqYWpWY0xiRlZWRmwz''@;'; + put 'put ''N2ZPNXIzd01zcFh5RVVna2hVQWhXaGpDaUNLTnhtbHBJUnhtc0JBMFlOWTRma005VVpLYkd5R2NVelVqcXhKR0taRUxRTXRwZ0JVVEZxa2hlQ1A2SUlmZ0pFaXdFSzJMOUFTb2FJOHAxM1gwZmNFdjdadXhLVjNmM09mZmNzL2RlNSszeklBRFNHSW9wa01xcW1sb1V3TkdETUlUbEg0R0JuZk9Y''@;'; + put 'put ''dW5rb21YdGozUnlVenAwemR3NW5nLzVvTko0UnNlVnphZlJER1lhcngySVlhbXhMUEJvczBGVWxhRURBaDZUblFqNHhVSDBlSmFjaHFBb2J5QjRUc1FLL0lKU0JNTndHNThrQWFVTUdQYml6STJFMmJBNzNodnVSNXlmOEp1L0k3bTY5bjJCQXAvOC9DLytkZDRXT3ZDTnRlVWYyaHRrOEk4M2h3''@;'; + put 'put ''WEJyaExPZjRPL09DRjEyaXZEenNJRlpNaGpDVEE5bnRrWVFCaFdFeFFXRXcxakM0L2RFZ1BGRUNoY1RCWmhBRkRLM0UxbXBSWVJnS2U3bnpBY0l6NHl2b1A5RlF2QVNJWGlaTUhpWGNIaWZjTmhQZUh4Q0JQaVVDUEFaRWVBb2tjSTNSQW9uaUVKVzd4ZXVGaEpwS1pJaUZFcXhGSk5McElROGtK''@;'; + put 'put ''Vk5jKzB4Vk1rd1BqT0tFTjEzdkdPak83YTZZNmM3OXFna0NsQkZGS0thU0dNYWtjRjgzTVVWb2tnQ2pTVFFTRHdleGtyT2J5UUs4UmhXYy80VCtDL25QMDFrc0pGSVlSTlJnT2VJRkRZVEJYaWVTT0VGb2dCYmlFSzBFb1hZUnFTUkpkTFlUcVN4ZzBqamRVTHdKaUdhblFBSGlBdytKdUs4R00y''@;'; + put 'put ''TDBidzR6WXZYdkhqTmk5TzhPTTJMay83U24vazZWODRsUnpueVhMV0NHUnJPR2xld3RtTlowL0hNekFSbVpENFc0SytvdzUxWXlGb3V4VEw4QS9jeEN3OHcrbzJNNkhsVzhpVlc4RjFXYmo4cjlpa3JkWlE3T2FFbnE0anZMWW5PbDdsWHorRWJVc2U0ZTFKZlc2bTdodkQ3YnRTcUk5SDV5RHZ5''@;'; + put 'put ''SlhHc215ZVA1VDBiWCtiKzdndS9EZytFRDRVUG5UMlNPNUZOWWRQcC83NUlqSHl1enhpVXFpWkVOV0Z3RFdGeExlRndIZUV4a3dpb2lKV2NFNmxCVkExRzFXRFFRZ1RZUUFSYWFkRktpMVphdE5LaWRUVTRSRmdjSml3NkNJdWZDWStUUkNDOXBUZnIya2Y2a1B0S1gzSlVVZEdLaWd5U1FWemZZ''@;'; + put 'put ''RFRPSVRMb1RmUlFwWXNxM2FqU2JVN3BWeEJKcFR1TkowakVrMUtsMjV6U3oyamNhVlJPbzBwcFZLZVVIbXM4VnZjclJINWRSOUU2MWF6SlJSZ3AxMnFjS2RXdlZmMmFYTXlSaWswdThrakxKaEYvVXRGV3M1Q1NNWEl4M3g1OWVsVXh3bW1zMTdXTWF5WWphV1FrcS9BNG8za0NUNklKNnhqUjA0''@;'; + put 'put ''eGtBMDlqSzNlYjVTNTNjSGVIV0lNTzd1d2tkOUNIYit2UHR3emlpbVdxWjROZTJsR0t3NlcwaTluZkxxVWxhbC9LVHRRV2xKSGJtZi90c2x4V3lDT3lTdGJJT2xrdm0yU0xiSlh0OHBic2tnOWtueHlVdy9LVmZDcy95a25qVE5vVW1YNm0xQXcxNWFiQ2pETVR6R1dteXRTWWFXYUd1ZDdjYkdh''@;'; + put 'put ''YkJXYVJ1Y2NzTXcrYUJ2T29XVzNXbXFkTWk5bHNXczAyczhQc05Mdk5IdE5tMmsySE9XS09tNThzYkdCNzJHSTd3SmJaWVhhVUhXTXZ0QlB0NWJiYVhtbHI3WFgyQm51THZjUFcyYi9iZSsxOTlwLzJYN2JSL3NjK2FadnRCdnVDZmNWbTdSdjJIZnVlM1dzUDJFUDJDM3ZNL21CL2RzWVZ1RjZ1''@;'; + put 'put ''eEExMFE5eHdOOXFOZFJlNVA3aEtOOFZOZGRQZFRIZVR1ODNOY3d2ZDNXNkpXKzVXdUVmY0tyZkdyWFByM1NhM3hXMTEyOTFiYnBmN3dPMXpCOTFoOTVYNzF2M29UbnJuMDc3STkvT2xmcWd2OXhWK25KL2dML05WdnNaUDh6UDg5ZjVtUDlzdjhJdjhQWDZaZjlBMytFZjlhci9XUCtWYi9HYmY2''@;'; + put 'put ''cmY1SFg2bjMrMzMrRGJmN2p2OEVYL2MveFFnQ0lJZVBCMzFaaU41aVhLbGNyVnlZOFJZck55c25tWEtLeE04VmJsQ2VaTHkzeUkyZzlXdVZhNVNIbUg0bVNybHloWEtreU5HdmZLejV0VlR0bHlpUEVuOTdjb24xRE5LdVVsNXBISkcrYzkyTnZrWjVmcnVtVlUvRTJPMStyc3dwaXR2Vmw1OGht''@;'; + put 'put ''VldITHZhODVUZlZGN1psZU1NcU4yVmE1VkhtT3ovWTJvM21hdHNkNHlweWkzSzlXZVkyY3RxOXY0M3gvbk1kc3NqRTF5ZjJITW5PMUhUSmVvdlYzL1NydFFjUHFiMnJFVG00eWc2MlRrVitiUDhqV3BQam0yZEUyc21yazRjZGF6UG5KM3pSM09hMVg3V0xqcWwzcHpHUGxUNy9jak8xVFRPV0t6''@;'; + put 'put ''dFdIdEpmMXpaT0cvdnFiMVlhL1NSNnZ4cm5UOVYzOVd1Yy9SRXhMcnQ1SzlRKzBTdWdodFBxenJwajAvUXBJUm00b29rN2VmVXZqWDI2M3c5RjJhdytwdlVIeXR0Wk1LdVVzNm9KNTk5WE8yN05icXIxTjZqZG5MbDZuQUwrWHpsWktXU2I1eWNPOTNaMzhDZFp4cWNwL2RTOE41VnpxeEV0MVBI''@;'; + put 'put ''cmoyYVhUQzZZUWY0SFc5aUtZekRSZXhoVWVmdXhiNDlpVDA5NnR5OTlZNWFySjI3RC92T0ZQYWhHcUl2cm1LZjY4ZE9ONTNmZldZUXBkckxCN1ByeldMWG1zKzcyeEM5dlkxblIxL0Q5ZGF5OC8xSmU5L1Y3SDZ2c2tPK2hsMjRsVGU2bzZqWFcrVXFmQ2NlajdNVEQwS0w5dFJXN2xma0hQMXVG''@;'; + put 'put ''a0RDV0lWTGNBdDVPYnRkaHQ5MXloamJLTjY5TCtTdUwrY3VyMFF0Ujk5VzdlNVZQcWlzWndhN0U2eVZ3RjNLNjVVLzFxejFWVHVEUC9JOXQrRjJTVW1CRkVwYU10SlRlblhkMGE5OWw1OTBBQUFCQUFBQUNnQWNBQjRBQVVSR1RGUUFDQUFFQUFBQUFQLy9BQUFBQUFBQWVOcGpZR1p5Wi96Q3dN''@;'; + put 'put ''ckF3dFRGRk1IQXdPQU5vUm5qR0VRWXpZQjhCallHT0dCblFBS2gzdUYrREE0TUNxcC9tS1gvR3pNd01KOWsxRkZnWUpnTWttTmlaVm9QcEJRWW1BRHdiUXExQUFCNDJyV1RXVkNPVVJ6R2YvKzNmUkVxRlBYMjltblRScUlVUmZhbHlMNlVyTm15cjlrYTZ4QkRSVkxJbmlTakdSTlRVN1liN3Jn''@;'; + put 'put ''MVk0eSt6NVZiN2d3ZHgxZE1NOHk0Y21iZWM5NXp6cHpubkhtZTN4OXdvZXNMUVhTUFZPcVpPT2V1VXF6SEpZekRqWUdVY0lzNjd0SklFODIwMENZZUVpQ0RKRXdHUzV3a1NhcWtTNlpNbFJ6SmswSXBraElqMVhobHZIZUpNbyticmVZVDg0dmxiZ1Zhd1Zhb1piT2lyR0ZXdW5YZjVoLzVUU2w5''@;'; + put 'put ''aDhXTkh0cVBhZU9aK0VwL01jVW1zWklvS1pJbUdaSWwyWklyQmJKQk5tdnRsOFpiclgzSWJESGJ6YytXWVFWWVFWYUlVM3VvbGZaTFczMVVMOVJ6OVZTMXExYjFTRFdyaDZwSk5hb0dWYS9xMURWVnEycFV0YXBTbGFwQ2xha3pxbFNkNkh6VG1kV1o5UDJUbzl4UjRNaDN4TmdIMnYzc1BuWXZ1''@;'; + put 'put ''NXZkNlBqYThibmo4SWVRZDhsZFh2Mm41bTU0TzVQZ2oxc0VvL3ZQK0lkRzEwa1hYSFYyN25qZ2lSZmUrT0JMTC96b1RSLzY0azhBZ2ZTalB3TUlJbGhuUEVpbkhvcEptRTRrSEJ1RGlTQ1NLS0tKWVFpeHhCRlBBb2tNWlJoSkRDZVpFWXdraFZSR2tVWTZveGxEQnBtTTFjeGtNWjRKVEdRU2s1''@;'; + put 'put ''bkNWS1l4blJsa2s4Tk1acEhMYk9Zd2wzbk1ad0VMV2NSaVRWb2UrU3lsZ0dVc1o0VisvdzUyc3B0aURuR2MwNVJUUmdYbk9VY2xWVlJ6a1JvdWNZWEwxSEtWNjl6VUZQMWs5RFlObXFWN21xYWZiUldydFIzUmJPQnN0emZyV2FQN1haejQ3VmJoWHh5OFFEMmJXZGxqWlMyYkpFYVBXOWpPTWV3''@;'; + put 'put ''NEpGenpHU2xSdWdJaXVLTjNIcUJwbGdSZEQvSGRaNHFjWWNTeWpiMXNaUjk3T01CQlhVdjdPY0pSdlhXWVVrNXhrdGU2bW5xeFRyekVXM3pZS0g2YWY4OGZrTTJxNkhqYVkyREFBcEtCTUl3aGpHazlBd1BUYmlaV0JvYi9JY3pTLzQyWmR2Ly93blNKU2ZEL2wvOStJRDRBMnM4TnNuamFyVlpw''@;'; + put 'put ''ZDlOR0ZKVzhaU01iV1doUlM4ZE1uS2JSeUtRVWdnRURRWXJ0UXJvNFd5dEJhYVU0U2ZjRnV0RjlYL0N2ZVhMYWMrZzNmbHJ2RzlrbWdZU2U5dFFmOU83TXV6TnZtM2xqTXBRZ1k5MnZCRUlzM1RXR2xwY290M3JOcDFNV3pRVGh0bWl1KzVRcVJILzFHcjFHb3lFM3JIeWVqSUFNVHk2MkROUHdR''@;'; + put 'put ''dGNoVTVFSXR4MUtLYkVwNkY2ZE10UFhXak5tdjFkcFZDaFg4Zk9VTGdRcjEvMjh6RnROWDFDOWpxbUZ3QkpVWWxRS0FoRW43R2lUWmpEVkhnbWFZLzBjTSsvVmZRRnZtcEdnL3JvZllrYXdycC9SUEtQNTBBcURJTERJdElOQWtsSDN0NExBb2JRUzJDZFRpT0JaMXF2N2xKVXU1YVNMT0FJeVE0''@;'; + put 'put ''Y3lTc0l2c1Jsbk4xekJHdmJZU2p6Z0wwaVZCcVZuODFCNm9pbWFNQkRQWlFzSWN0a1A2MWEwRXZneXlBZUNGbFo5NkN3T3JXM2ZvYXlpSHM5dUdha2tVemtNcFN1UmNlbEdsTnJZSnJNQkE1U2RkYWhIQ1haMXdHdmN6UmdiZ25lZ2hUQmdTcmlvWGUxVnJaNEJ3NnU0cy9sdTd2dlUzbHIwSjd1''@;'; + put 'put ''WU5sendFSGNvS2swWmNWMTB2Z3lMYzByQ2dwTWRMMUVkR1MwbUpnWU9XRTVUV0dWWTkwUGJ2ZWlRMGdHMUJ2clRLTFlsODhGczNxRkJGYWRTRmRxTUZoMGFVaUFLUVllOHE3d2NRTG9CRGZKb0JhTkJqQndheGpZak9pVUNHV2pBTGcxNW9XaUdnb2FRTklkRzFOS2FIMmMyRjRNcEd0eVN0eDBh''@;'; + put 'put ''VlV2TC90SnFNbW5sTVQrbTV3K3IyQmoyMXYxNGVCZ0ZqRndhdHZuTTRpUzc4U0grRE9KRDVpUXFrUzdVL1ppVGgyamRKdXJMWm1mekVzczYyRXIwdkFSWGdXY0NSRktEL3pYTTdpM1ZBUVdNRFdOTUlsc2VHUmRicG1ucVdvMHBJelpTbFRXZmhxVXJLalNBdzljUHc2RXJRcGovYzNUVU5JWU0x''@;'; + put 'put ''MjJHOGVHY1RYZHM2empTTkk3WXhteUhKbFJzc3B4RW5sa2VVWEdhNVdNcXpyQjhYTVZabGtkVm5HTnBxYmlINVJNcTdtWDVwSXI3V0Q2alpDZnZsQXVSWVNtS1pON2dDK0xRN0M3bFpGZDVNMUhhdTVUVFhlV3RSSGxNR1RSby80ZjRua0o4eCtDWFFId3M4NGlQNVhIRXgxSWlQcFpUaUk5bEFm''@;'; + put 'put ''R3huRVo4TEo5R2ZDeG5FQjlMcFVSWkgxTkh3ZXhvS0R4MndkT2x4TlZUZkZhTGloeWJITnpDRTdnQU5YRkFGV1ZVa3R3Ukg4bXdPUHE1Ym1uTlNUb3hHMmZOaVlxUFJzWUJQcnM3TXcrclR5cHhXdnY3SEhobTVXRWp1SjM3R3VkNVkvSVBnMytMRjJVcFBtbE9jSENua0FCNHZML0R1QlZSeWFI''@;'; + put 'put ''VHFuaWs3TkQ4UDFGeGdodWduMEZOak1tQ0tJb2EzM3prOGtxeldaTTF0QW9mVHdRNks5ckJ2R2xPakNPbEpiU29TUm9CTFlPdVdkQTA2dlBzcldaUkNsRnVZcit6ZXltaW1PeEZHY3lBS1Nqa3ByR3c3TytrUkZwWU82bnA5TkhBNVViYWk1NHNOVnRXY1lXOUIrOWp5TTBzZVRkU1hyZ3BLZTFG''@;'; + put 'put ''bTFDbnZNZ0NEcm1SUGJnbWdsdG83N0tLWWtwWXFDSStDRzBGKysxalJDWXRNNE11Z1NKa2NiS3lEKzJLSFRtaWduWUMzM3JTS3UvYlF1M1BkZklnTUp1ZGJ1ZEJscEdpODEwVjlXcDlWZGJZS0ZldjNFMGZCOVBPc0xIbUYwVVpUeTU3MzU0VTdGZW5CTGtDUmxkMnYrNUo4Zlk3MXUxS1NUN2JG''@;'; + put 'put ''M1o1NG5WS0ZmSmZnQWREN3BUM0locEZrYk5ZcFJIUHIxdDRNa1U1S01aRmN4d1g5TkllN1lwVjM2TmQySGZ0bzFaY1ZsU3lIMlhRVlhUV2JzSTNQbDhJNmtBcUNscWtJbFo0T21RK201MmE4TEdVdUN4RjNMTmsxMFgwSFR3aEhlSy9PTVMxLyt2Y2NoVGNvc29TWFdqWENja0hiUjhyNkswbHU1''@;'; + put 'put ''T0hLa1puN2J4c1o2SWRTVGZvR29LZVNDNDQvbDdnTG84VjZSVHU4L01IekYvQmR1YjRHSjBHdnFyb0RNUVM1NjJDQklzcTN0Sk9wbDVRZklScENmQkYxVUt6QW5nSndHVHdzbXFaZXFZT29HZVdtVk1CV0dFT2cxWG1NRmhqRG9OMXRZT3VkeG5vRlNCVG8xZlZqcG5NK1VESlhNQThrOUUxNW1s''@;'; + put 'put ''MG5Ya2F2Y1k4alc2d1RRL2dkYmJKNEEyMnlTQmttd3dpNWxRQk5wakRvTUVjQnB2TVliQ2wvWEtCdHJWZmpON1VmakY2Uy92RjZHM3RGNk4zdEYrTTN0VitNWHBQKzhYb2ZlVDRYTGVBSCtnUlhRVDhNSUdYQUQvaXBPdlJBa1kzOFl5Mk9iY1N5SnlQTmNkc2N6N0I0dlBkWFQvVkk3M2lzd1R5''@;'; + put 'put ''aXM4VHlQVGIyS2ROK0NLQlRQZ3lnVXo0Q3R4eWQ3K3Y5VWpUdjBrZzA3OU5JTk8vdzhvMjRmc0VNdUdIQkRMaFIzQXZkUGY3U1k4MC9lY0VNdjJYQkRMOVY2eHNFMzVMSUJOK1R5QVQ3cWlkdmt5cTgyZlZ0YWwzaTlKVDlkdWRkOWo1RzJVenVpd0FBQUFCQUFILy93QVBlTnExZlFsNFpGV1o2''@;'; + put 'put ''RG5uVnRXdExhblVucVN5MVo2bGt0cFNxZXlwN0V0bDZYUm43ZTRrdlNYcHBxRnA2SVZGUUJBYkJrVlJuSEVieFVFUUIxa2FCRnFVWlJ4R0JaNDlMaU1PT283b20zRkdIYmZuRzBaMEpEZnZQK2ZjVzNXek5UamY5NkNUVk83OXovYWZmei8vZjRLTWFHRTlpVDh1ZUpDQUxNaUpTcEFmMWFBVWFr''@;'; + put 'put ''RWRhQWlWWkZ3OW5lMnQ2YVprYlRoUVdWcnNzaFlaTkFRWlkzVmFyOVVyT3BOT3Z6T1o4cWVTS1pIOUZPR2o4cFErb3ovcEczaVNVajdMTUt4Qk9wbkNINWYrRG5mODMrNmVCM3A2SG5pZ3grZjE5dlQwSE9ueG5udmdpTTk3eFB2QUF3OTRqeHc1TnpEd3dNcEExZDhMUCt2MUJyM3c3NWFqdm9H''@;'; + put 'put ''QndFSDROT0J0Ny9FZHViN1pIZDExMVZXUFhIWFZydWlxTitxRmZ3Z1JOTHIrT3ZvV09jL1dGc3o0RU1ab0FTRlVtRVdFQ0VzYUxBaHVZVlNqMFZnMGhVRnJrVlowMTltVGd0OFZTalUySlJNdXAwUG5uemxUMHFjTmg4czhvWkNIbkpkOFA2d3VLdzJIUzh1cUVWcGZSMzM0WG53RGViREloNHdJ''@;'; + put 'put ''RlFudy9TVkV4dzNBdHh0aFhBK3FSTU9aQVl1T0lLMUFNRUY0MllRTmhzSnNZVkdCSUlyNkJiT1I2UFhXckFZVFlpR2pDRlZXbEpkQkswOXBTYkVieHJkYmMvK0o1WFZZVElwKzBaOW1YK2trKzBxSzdFdWtML0dic1N2dEp5SzdJdStOVEVRdXR4K1BYV0cvQWo2OUY1NmNzUDNOZTJQdnhSZWV6''@;'; + put 'put ''ejRDLzJXZnp6NEsvMldmUjRDWjBQb0Ywa2JlUUJVb2lDS29QbE1icWZONVBhWEZicWZOWk5TTGhZaG9BVzFrQkphRkNUNEk2M09qMFVxclZRQnNCWFN3eDZsUU9PMXlweHB3cXJFVHAyR3ZYVzR4RkhaV1lDZUN4NFhZYVd0S05jSUQwbmJtc3FsM0hlakk3ajF5SkxtdmRlckt4ZGIrOFJOWFNa''@;'; + put 'put ''ZEhFM1ZOdjg2MFpLNDRLV1o2aXZabGgydy9LcDNlbFp4cEZqczZ6YnRITzYzLzZKbWJ3dTRhNnd1R0ZyODAzMVpkM1dEOUpzeERpeUxydnlOcjVDbllYVHRnT29yYTBQL0tQbGE4YXk1VFo4SmFJOFk2TFY1Rk9xUTM2UFJIa1VhRGxnaW11MThBZXlBc21VVWlDQlpoMUpOOUxBeE5vcGRzZ2dD''@;'; + put 'put ''VXRST1h6RmdVM2VLb0o1UGNwZ1VoQUV1Ym9lMWJ6YzluUXJGWVZaWERnVkNzTGRiYTFGZ1ZyV3FvRGprcUhSV2x4WGFidFFnV1V4Z3FGSjExTm83UlpBSXc2U2pFZnB6RWZvWkt2MC9uZExpU2FOUDdUcHgvOTZtUm10cVJXQXkrWjZQNHZidWs4TVRwUkRJVWppZERlTzlJTFR6a3I2cmo5R0Vp''@;'; + put 'put ''alBjMWpFZmp1eG9hSm1MeGlYbzh0VGFKLzdJakd1M3NpRFYwU3Z2cUorSlIrZzRnNnJ2cDQ4NkdhQ2VpdEJOY2Y1M2NRTDZBdktnZU5hSE9URnM4R3E2cUtQZVVtSWhSSUY2TUJESkNhUnN2QWV1NXNscGdPSVlab0tDR0JwK3ZvYWtoNWF2M1JTSituZWlxMDRiQ09yK1BMcW9wclY0YXZITTNw''@;'; + put 'put ''ZDA2MFkzbzJ0eDhuYlkwZ05PbGtxQXZzZTkwMTNKTGRxSzhOTHFuTVRaUlB6RTkxRmRYT1JHTm5aVCtNbGxjMnROVTczY01YTkd4T3BvMitocm5ZblB0dlFmOE5mMmhobXdra3Exdkh3M3NHZWlhREN6M25TSWowWEJwMmxzYUR3Y1NhNjkxWHoyY21tektJSVFwbjZNbnlZUElqT3laSWlwRjJQ''@;'; + put 'put ''YmlVV2VBd01SdGVYa2grcWV0WHJmYmE3WEU4SDhzZTkwK245dTdQSXhvSDYzck03aVBQSXNLa082SkFpMk8xVEV4azNZRGc4Q2l4QWV2dkhLMWNXclg1SjdHMlIvZDhxN1g5alJOUDNYcTFGTlRhZGEyRnRvMkttMUZhTXVSRUU1ei9OVHVtWVIycTlERHFlbW5yajcxNUV6VG50ZmVkY3VQOXJD''@;'; + put 'put ''MktYd0NIeURQbzRPb09aUGFPekhVVkYzaDF1bGhFU01DeGhxTXRCaXQ2ckJXUzVhQWVGMWFFRUlBZW1EUDdzNzJXSVBQV3lkU1NvU1pwcHZTT2hIKzkvdkMvRGZnOVFZY0R2SGZrZ20zQy81bnYzRlVBQ3hBTlBGWDdOZENEQnRaZ2ZsdnRKc3d0SGU1bVpoOTNtclVFYnVqMnFyVFdRMGFjM0dE''@;'; + put 'put ''d1cwMnV3ME54V2FOc1VpanQxWTc3RVJudEpvTEtKelJaZ2c1R1dBQkE3U1dhcUtPQWdib0RCbHNSZ3BaZ0U5WVRLVUpuN25BN2pNS0Z0RmdFUXN0R3IxV3E5ZFlDdlVXdlZpa01mcnNCV1pmb3RSazRaQmlrZWd6QXlpOFphQ2lBVnZOSE5Uc2c1Y2NsdUcwR3kwVEIybEdKaFRLK0pGR3dKcHBv''@;'; + put 'put ''RzJRRkZoQXk4RCtlQUVCYXNlWTRDN1NpYVYxMkU4MVlJcHF3aVJ4UEx2L21XZjJQNHU5eno0Ny8venp0TCtCOVd2UXQ5RjFxQkM1TThES2FGQ2hNV0NVZ0kzU0dIQ0FUMFZtdTJvTFBLRndtVGNjamgyTHhFRTloVk8xL3VFMDdhc1IvUVMzNDA3Z3p1S01FOUdPcHVtY1lVWUlabFJFTzdON25k''@;'; + put 'put ''NUdySmQranp2M3N2WDBncDU4RWNZM1VZMVBuNERVdzlpTktUR1lrREVnQUJHb3RlSmxza1kwNTdRaFh2L1YrZ1Y4Z2Z3VXhyVm1DbW1udDhMWXAvbUFWSFRoa2N1bCt5NG5QMzJUaW01UUprMGdPMjRoejRDNHEwU1JUQTBRSDFzeGx4SVlsRE9iUUZFUktOYktvb3BpRjVPTG9HL3FOSnZsSGtr''@;'; + put 'put ''MU5tQy9qekpTQll3azNwYk4zalk5ZlM2YlBUZWRub25GWnRMcDJYaDhObTNlOStuVjFYdjM3YnQzZGZYVCt4WjZyeDBkdmFhMzk1clIwV3Q3R1E1ZzNiZ2NkTFlPZVRMRnNKVUM0R3VFUzNHTUxYalVhbWVvRThQcHBOWC9oV3RxbjlxOVF0S2p3KzlZbTBTc2ZSUVdWUXpyS1VhMW1iREpDTXNC''@;'; + put 'put ''YWlCa2hLR1RpVDlxZEN3Z3BuT3M3a0JJSXhiWGRXRkZhb3ZoSmxuY1dUQnNUL1ROdnJiUnBxYVpVTitCajJlT2RZek0zWXVISmZlZWI3VXNScHU2R3hQdDV4cVhPdnF2SGZxelJUYTJIM0JaQVdQWG9LNU1lMGt4ak9QRG1NRG9NQVdtdUJIQnl6Q3laZ21JRXlZQ3VuT0o4cnlic1hzTnFnNEV2''@;'; + put 'put ''SUdnS0piQUxsT2hra3hRUFFPV21qdlJ0SGw2b296MmZ6aFgyeDA0MU5xemEybzhtKzJkM05XZW5BcDFMWHk0LzNqN1NHdkhUT2RWdytaTXFyY3VrV2xNcGZGZTNKeU1kVWJyTzYrTFRUZTE3N1lWN3VsdDNaZmtkT0NIYjFuQXV4R2tHMWdmWmpBeThJaE9DMnZBQ0d6TkZVQWRVNmtXemFqSlpD''@;'; + put 'put ''b3dGUUJQMllyb1hJUGVNRTVhcWJYcFQxa0ZmS3Ywa0FtUFhYdjQ4UEp2NzVuRVg1YUc1dTk1QS9kTHo4RHE0NENmR2hpakRMVm5XbXdnOWdyTUJHdkFuaGxCOEIxcFFJRUxBbG5nMm5zamNzQWM4MW50QVQ5RERoZzZTUmtqWXBoeWtkaVVJOE8vT05JMXQ5S3paMC92Wk0rZ0VYOVcrcUt1WjZ6''@;'; + put 'put ''emFFZjNxUkh6NVVQN3h0dmFoaE5WZUhYeFlpUjVxS2Z2V0V1T0I3cGczenlvR3ZXRDdRTnJ0d0xSQkl1SlZpT002RUNhYUxTQ1poWGxOS2dJODFJRVExa1p6SzY2TE96M1F2dlNRRENrQjRzTXliT2h3b0x5aUZ2a3JBSENPR25MMFJwbGs0OGU2OHhjUFhqSDdkbHplNjZjYnd6MFJ4cW5Fcmpx''@;'; + put 'put ''VUl1N056alQzVEpWV0RqZWpUL2ZlTENuKzdMMjV6NngrdGtERStOZWIvOTEyYnFZOU5IcWJuL0hTRWRpYkpiU0hnZ2Q0bVo4VTVrcEEzMkNHZGRRZVlPWm5RMTJMVmcxMUZyRTNwVFhDWUxncjZTUDRCOUxQenBOSmhkSDF6NUo3WWdvNENIRjhCQUczNk12MCszUUVaQ3FJNklLQTdKMDBBTUdN''@;'; + put 'put ''T3dQa3c3VjFSUUoxYW5xeG1oOVdiZ3M1S3VpcUlnWXFMamF6cENRa2FPeW90ejBNK2loUWtKdGlaK2Y3WnZzYnUvcnZiS3IrOHFld1pidVhmMW5oMUp6ayszdHUyWlR2WHRqd3dIL2NIeHZyemsyMjlxeHoxVzhxN2w1S2xJL2xXN2Q1WEx2YTIrZGkrS1B0c2ZxTzlvYjRtMkM5Sld1aEsrcEF1''@;'; + put 'put ''T0tKbCtpaSs1MUd0YVl5ZTkxUlJIc3NRRzRWRSsxQnF4VUN6eXFKYXRBNlFJc1R4QmNXWlVTVVBhYUx6QVlDTEs5ZHZHdDVod0wycGIrSWkvWVJwZk9aYUlyaWIrNFpaY3piUGU3MkRiWDB4MG56MnpjWmI3ejBrZm9OclA5cG10Z2VvTG9RQ2U0cWN5bU1wck4wTW9kS2kxM3FNeG1oTXh1czh0''@;'; + put 'put ''V3hKU0hUcllnRk9WQnRsRWtaZkpQZkl1aVVhUlR5aWZ3czVoK0pEcndzMEQvV2tWa0JlbjhQbVI0SE9Pbjhmc2VTOVp4T3B3aGhNd0RIZXFlMEJHd2tleXBvTE1BTzlQNDY5TDc4Q2tjSC92QnpFTVB6VEsrNjBaUEVBZitCVkNlaUh5WlNrcXYxRGRENEJDUWFWbE1FNEhxN3lJcXBTbW4wLys3''@;'; + put 'put ''OFhla2V2YjFpL25iNW1ITUVSalRxWXdwd0pqcGVwelNPclVqK0JTTStYVXA5Y2hERDgzOFlPd0hkRXozK3V2NE83RC9UckNXMDVsR3UwRlB4UnVtNGxtQWdXOVM2UWtxcUxWWW8zRnJSbDB1bDlkVkZTejJCM1YwSWpJSDU2UXhNTFp6ZzcvNnhPNmpmYzB6QTUyTHQzY2Rhb3JQcFE4NEZNemVx''@;'; + put 'put ''dXVPMUhWTmRWNFZuMm1NVExhYVQvd2c3OHJTK1VYVzd4VDZ5WDJBbXduMG80eTV5a2FNaHM0T0lvS1F6RDdtQndjcEJZYU9RZEFZYmpKam94WWJaNUVXSkxXb3hVZVJhTUo2VVg4WTZYU0szMFA5SzFpRzFVQzlxeHBvbkZRYXcySU5Sc0d3K3BhZDZNRERhc20xUWtnbklOM3F6cTMxZW5FV2dV''@;'; + put 'put ''dTl4THFaQUQrcnBLY0hvWjZKbnZIaFFWaFVKaFFLMjBPQlVLaEFMTnRpUXZoQ1lSWHZKRnp1dEZ2a0VpRkJNYTZ5TGhMTVl2Y3JvbFRtcjk3SFZxLys4c25sUjViVE05Rm9oN0ZpVnpRMld0ZHpXV3U4ejI2ZUx0SzREZDd5OHJSLzN5ZjJMeis2c25EUFlzZHl5dDV5c3RmZUYwekVhZ2RybTZP''@;'; + put 'put ''blZ4NWV2dkxMVngyNGIzSGl5blFrSEtxUDdHcnNQZFZYNSsvU1RialB0SmdxcW1xbXU2WS9PTFA2NlBMK1Qrd3ZyeW9MZUxFeHRpY1JiWXhPMU1mYjJmNlZ3cmZ2Z1J3V1FaUFdaYW9OV0VQd0NGQVJrSlVHdENoVmJXRHdVMHRHcjljYjlVWnVtaGFERmhXWmF4azJZUktSUHQ1K0VvZnB2OE4z''@;'; + put 'put ''d24vay9OcmtUL0dBOUNYQSs2d2MweWhDSmNpSE9qS3RJSWxoQkIxd2psWkR0TlM4a0lNckl1WVdNQjNMVTJxemVpdExmUjVmc2N0YVlpdUpWT21aQWJwUklIc3gwNnAxMkdsWFBzemlnWmI1UkR6ZTBkMTBvRU42Qk5jMzl2UTB2dlJxNi9CdzY2dmtmR1E4M2pqc3FkamIwalFkd3g5TTE5VTFm''@;'; + put 'put ''MVY2cVN1UjZQb1haZy9GUU5iZURieFdqaG95ZGFVbEpxT0dHaFdLUEhWdENQL0FnM0pVRmdxR2FQaEhreWNCY2V1dTQ2YjdEeDI2ZjJubzFzUmdZTEd4OTB4Ly81bmV4c1hBWU9MV0lmUEIrNWVXN2p2WWt1d0xSNGF1SFJpNGJpZ1M3a3Uyd0w1UXZIMloyVGRPNWkzazBNUWNZeGxOWnBQRFpu''@;'; + put 'put ''S2FuYUVxTFVXUFFwaDFPQzBUWUIyMnp2N3F4Q01IRHo1eTRsZi9PWEY5Zi84N3h0OVB6czk5NHZEaFQ4N3R6NXdhSHI0Nkl4blkyc0dBSVgwd25nbEZNeEZGc2xGN1JyTUF1cVZRYllVeTY5N0V3MHRnM3RpZHNweXplcDJQNDh1bFA4Y2Zra1Q4QnpMNWxjVnZMNUx6aTJoRC93WlVrd2twL1ZO''@;'; + put 'put ''cHhYcFZWRDY4TUNBRDdabkpMZGFyWCtsM2hYYjYwcUwwWGQ0cDM2LzdZYis4S0pWSmdNdUFoRXBDTkZwbVBHczFpQkVYOTArcEpjakVKR2gvTzJ5YW43dFhYdXRHL3QyMGVTay8vak5jRnZ1TDRhWFBIRHIwbWFXUlA0OE4razgwOWRFTjdJdnM4eitOcjVaK0hXL2pXOWlhNkF2Vjh5MnM4SHdn''@;'; + put 'put ''ditZN0dVN0RtWUJzTWk2RGpVclhTK05ERnJRWmw1aXVGcjZTOEozY3VTemRzYnlNcjZIc2hLUFN0OGw1NlRYc2cxNW9xOGRaZkpMR0ZWUytCbmZUd05FWVhWNm1yUURXQ2Zyakc0ei9nSXFZYWM4b21obXNaRWtBWW5JenRCY2hpejJvZ2VaNVV4NW1RYm5zc2V1OWcvWmRkYzJEeXkzTDNlWk1v''@;'; + put 'put ''cjg2dWFjYnRGUzg3L0oydnM0WjZPcERiSjFWbVhLRFhrdVloc0lzQWlid0dLWGRadU02TVduRlNRUDJnMnZvbjFuR2ZiZEkvNDdyMy9sZlIyQzYwc2Z4aXZSMTZUYmNlUHhsM2k4SVl2Q1h6eU10dFJIWnBHbHZpRzQrUjUwV2FhMVdPdWtnMEVuU1NoeFN3OG9pME56YWVkWWVlQWdJSURjdmNa''@;'; + put 'put ''dDVPYXpLdkR6Z0ZQaXRKdGlCMmVYZi9uYVpmc0djdXZEZkF2Si9UbjlLYnJsUDhqQ2o0NHFNUnlSa1M0KzJYSThZcHVSbi9lSDNMaTlMWitpV3ZFRU1hNVB3OVFhVnZaUitmLy8vdzVmbEFnZW84dUI5UzcybisvdFA5M0twSTRzYmVMcDAvOEdGb2VzR0JxNGQ0alRMZEFHbDErT3dOalBJSFBC''@;'; + put 'put ''R1lSYkFwZ0ttb1lsOEFCeVdXRmpnc0JVNEM1M1dVSldPQnIrOU9ibmo5Q3NpMlpyRjNpRVk5L1RRczh2WW50MjNML3NvT2QreW1zbXN0dndHancyMHR3OUliNnB4NEtBMmZDWkJBOWhFSzFCSFJxQmh3THdQbzFGRkFaMU9aOWdacWcrRnFmQkZNQWR4Z3lLbU1lUjBPTzF1Mm9BVjh2dVFmN2gx''@;'; + put 'put ''TEhwVis1S0NIdWxYUFlkYWwrdHorTUVWVnpSMDlmV0dhbko0a3Y2UW1PNmI2NTlRSVNxUHAwS1lDK2hNUWdOaWlrdTRqTFJhV2FUSkxBNU9zdFZxcC9LR3p0UWZCci9UeWpDbVRjcTRJc2NQVHB3Ly9kZjNMRE9VU2YyUE1uVGhXMDQ1Ly9DYjN6Q3N2WXNpak5GMGFQMi9TQnQ1RnJ3QjBGRXVK''@;'; + put 'put ''L1ZIQ1ZhaGlRWllWVHFxR29XREVUOUZVOTRMRFRlUWJRU2VXNmFsajUzcVdMNnhiM1JpWWZ4d2M4Y1ZmYVBYcDFvank0M0JkbDlvc092VW1kYXJKa3duc2djNklnMXhwNjFodEsxbGZ5b1JIYTJPbE1jOGxkVWVpMmR1cG0xL2lzNnpCbkEweWV3S0hoZkp1WFk4a0NHYnlOZ1B2cDBmdU1UNHYw''@;'; + put 'put ''bjF2eXlEYTdjbzgrNHVvSXQ3b0QzWXZaa0tPWmlPc1hwcFR1UndCQnlLK3FYQ2l2c3ppdHpDdnR1enkvSDU1dWE1K01yb2JkUG1zVHRtOGZ1bDB4MEhtc0Ewd0hkS1Y4L2VNY2JsakdJRDZlaFlXdWFMZ3FTVWhTU1hOR0NxYzBsam9CRjFEeWJmazc1L0V2N1IvUUdHUHIvMkhWTFArZ0t2UUZQ''@;'; + put 'put ''Q2VBajZNbEpaRHdLQ251RXcxYzBXRHhMQ1ZxU2xtcE1LSGZnbitFM1lYM255d1lkUFB2emd5WDlaZnVvTFZGSzhUc3pzYTVMNDEzNklsTDdKcDVnOEEzbG8wRUhYaElaanFZMkdPYTNaYkRZcnhTdk1Fcm8wc043eEo3RHdqcTk5N1Rvc1NHdlhmKzNGNi9DYzlOZFlsUDZBWitIVEg3REkreTZB''@;'; + put 'put ''dmo4R2ZldFJlYVpVUjNrdko5aGtiOXpHem03a1BtSExxcVJmWGYvMzN6b2ovZVlvTHNDZmxwN0hQZEtpOUorMHJ5Ym9hN2VpNnlrKzh5R3RuSCtmQzJuWnJHekdhZTdtZzhKdnd1K1Qza0dLcEZQNGcydi9Oa0hJNHNTYXhQWDkrUHE3Y1QvNTd0djB2cEpBV1BBMS9zWm5Qdk1HK2U3QVdoc3dF''@;'; + put 'put ''RjcvL2ZvRi9MYzd4QnNGc0dmMWwrTUZIbTdFS0FyamhYUGpLZkV3YW9yUjJDZ2REK1hIYzRPd1Q4Rlg5SUVIZnYvN0p2TFZnVGZQMCs0VCtKUDRDNXkySHRjZDZjdTRRS3F6Q0NHTVRLT2xwK1VveCtNNjFHZFAydjFoMGYvdDRVK09uemt6QnRybjE5LzhKcDJ6dEg0bDJiMytOQXhYeGZyWUlU''@;'; + put 'put ''NUx1eEFCZ1lSTXJUMDhOTXozdFl0a3NKdThBbTNkckswWldsSnBmOW9HUGlBZk5lMzJkeDI0ZG9oODJmSG4zS2VyQjV2aEQ4UUtmQkZDTjJZY3hWalF1RUVSV01GeXJ5alhDanF0Qm53N0I3aG5WUUNzMVJIdEt2TTlxUUZma3RWajZvcko5T2dCdTJjckNPVXFCcWVZWlBNWnA4ZURrQ2ZrQ1hv''@;'; + put 'put ''cllkaVNRTkJ2TndCU2tjc0pXRlVIcG5LT3JBM3NNK1hjQ3Q5KzljR3lwZmpVOGZSU3k4anV6c0hPcWNEUi9iWjVjL2RvYXFRN1FheG5EMGt2RG9ZamU3T0ppYnF5b3BheHV1RkdLWjZzNzNjMDFkVEUrWnJIUU41TWd4NnlnWmZ5N0FXTEVUUVFsbGRaRHNSVmxNMUZXRXJrY0JwZEl1Z2k4RlM5''@;'; + put 'put ''QU9UZERFUk5zZzJCTjltbDlTcUhmVHNEQW96cXRXTHViNENaQjAvVlliY2paUGZadlo0U21EYm9tRTJodkRCbEFLc1N3VlBiQjUrN29yUHppdDYycFlwRGh5b1gyOXdqTlRVajBZYmhtcHJoQm1JRkYySDhodjVVZkM5NVJ2cHRMQ1cxUktkVHFhbG9kQ3FWbW81eW1vb0FmVWhBSCtXb01STTNB''@;'; + put 'put ''aDVLVERESlVtQnlJZWN0bGV6c0xia3U2UzI5ZnROSTlzYmhwa09oWG5kM29HRWlHcDJJQm5xS2U4T0htODBqTnc0TjNUQlNHK29zclVoTXh4UFRpVXBQUnpqQzk0L2FFYzI1L2JNSzZ2MmppR1I3dzV3QjlmNVo4dnUzR1lnUnFjakNocHhJbGYyamdJV1hCR1Q3SjcrbDBNeDQyZ2l6ZGY5c0li''@;'; + put 'put ''K1Y3aCtXQ1Q2UEpDdlp0SCtrK1ZERlVsc3YzOFRGeXF2WnprWFpMcEpuMXZyM3hsUDlONHlQdjZNL0ZjT1d0YnMyN3grTjJieE93ckIvTHRpVVRLYUQwSTFqaDY1Z3d4QkJRNVp6TTVYbkx4T2RHeXhnZDdtN3JMUUVtanJCajZMekRmQnRVeHRmWGpwSG5laUZLZU9GYVhlbjc1cm1vZXVIK3M4''@;'; + put 'put ''T2pwOXNrNDRaNTN1NjVzMjR5VENhR2EwcXpnUWlBemVNajc1aklQdWUvVDI3OFJYWnJxNHNwVEV2ZkZzazM0Smg5MmFNUlZpbnRXS2tvekVsdWxsbFNLZlRMb0dsVmN5Q0UyaEJnK1ZvSWlncVQ2WVVIQU1kU0ozVnJTL25NOGFnbjUydmlhS0g2d2cvbGRzOEZNYnBVZWY4MXZYWEh4d2ZIMjB2''@;'; + put 'put ''YTNJRzlPVkZya3FpblpJbThPTlRuWjBURG11UDN1VDNVRHhHMTZkSUkrQ3hFdFdoYXpPV2lpS2kwK1pqczdLSUJEa0hha05IVnFsaHVDUnFpTXp6REtsMkppSnpJRlE4d2t3cElOb0VCaUt5cWdxaHFycXEybEFBUnF3TUJZTUJLaUt4VmVaMjdyVjE0STNFa3lLcXMzL1MySHZOYU5lcFVMaHNO''@;'; + put 'put ''cnBucVhLeHRmZDRSOGZ4M3RhbENxREgvdjY1dVg2aWxSSTlxNjJoeWhGUHhXaHZ0ajdlZFhKdzhHUm5NckpIdW1idndNRDgvTUFBUC91amhyQ1Z4U1ZQUG1WakpoUGZHamRpYkFRbU1ZdEZsaWhXc013OWJ1N3NiMzBOYi9JUFdiUkRmZ09NVXNDdFBhdkQ3NkJoQVNyaFlOZmtRSnBWRm5MNDl2''@;'; + put 'put ''bjR3ZDdHVUUvNDBLSGllZGlXNUw1VzZRdTR1WFhZMit5Vi9nYWsyVnExTE9zNzRQdVQ1Qi9BanJLZ0FUNXRWeTRvWFV3cHhTcmJxWjZNQSt3NVRBMk5WZFhqZVdvNldBb0x6Q3hTcmQwVXFSYkJDampnOTVjVSsvM0ZpY09IeWI1QWNiRS80QzRPekt6OWtZNi8vdEw2dUR4K0tUcVNNVnBBdHha''@;'; + put 'put ''aURjbFJ0MVkxRjBGZ3BLczVvQVBNZURTTXVoRUFDSWlkUG0xOENUS0ZSZEZMelNVdXB4eEhGN2ZFMFdWSGdKckp1dHhFVDhhTENrcjh4UldIeHpyeUUzN3pQNDM2TWFQZlF3SnJyM2J1WXZzK0NBdWdaNFltdFBRRkEzUFNsSjIzY2cxSTU0UTM3TG1WYXp6MUM5aHRjSFlYMks4YjNzelBYN0Ja''@;'; + put 'put ''N2N3aXhOUVlZaW9NWE9tdTc1Nzk5SjVEaDlhdXhSN3AzNzQvZFE2MnN3ZnJPUjJpejhGOEJOVE9wMkdpd1F3NUlDSlB3S1NLa1hqWWIwb0FiWDcreVh6UVpPalFJU28ra2JKT29ROTQyMC9sVHluRzJpcU1XRXliTXJXTENoYnRrbDdVQ1ZxdE5hdWhwN1pzV1NCNTRIZjZWZ2R2aVU1WGtuczV6''@;'; + put 'put ''MEkxZnVUelcrMSt1OTloQVBtam9tVGRoZzlKSitkZStFNytaanAyc0NQZVBNQytIVDdzR0lzM3o3cHQrOW9VQ205dEdlcE5TYzhwUDRsMktGemZISXMxSXhXZldzRy9IcnRnTlJQT3FIUU5kdVpPYWFrOHNxcTVrTkhVRnY3a1RPaEFkcGo4WmliVWljcU1aUjVzMnEwN2ZMaDRUczJEblEzUzQw''@;'; + put 'put ''U2JEY2NVL1RNS2M5b1U5eWg1eTdpSDY5SnhqOWR2eklMcE1IVGpDQmdLekhKb2lPNkt3ai9aY0JpNVlRamV6WURkRUo5T2NBTkNzZjJtd1Bhek10dmg2R2JiajJweUhiZ3Z3UHg1QTR4aXlNNDFQWk1LbTIxREZjemJzTk1VOVAyUDdEVHB2OG5qODl2WmFkUW1tZ0tiU0ZuWFJwc292NjRTbFdH''@;'; + put 'put ''U1ZYUVNzM0tzbTJ5bURUQ1hzRitzbTFYUW4yQy9hTmNtc0M1dndNeEwvVnZ0VDNEYjhVbFlsd24xWEREcHFLY3VyOHJLRkNiWU10ejhaTWFBVTZIb3ZGbEs3WUFMSUdXWW1MRTFKWjBLQ2IrODNMUHJtSGo0TVA3SHRwbkpQdW1maVBZd2o3bThqbCtFOFlMVTNuVmdncDNnSGNPd0lQeHlrWmVT''@;'; + put 'put ''elpHWElBb0VhZ1BNM2cycFFpOVlzVFM0VHFaeEYwTEY4c3RuR3FLemM1R201bzZsUGNmMnhBL1hSY1lHcXBQdWhrVHpZUHpFakxrNk9OZ1ZyS2lxc3BiMmRBeE1WNVVOeDd4bGptS0h4VnJaSGh1YW8vWVN6SEdSZkFqc3BXZ200c1k2R3VZRnMrNVdxa3ZJQWowMEFDU0FaM2FBbTNMTUJyTDdx''@;'; + put 'put ''QkVVNU82VlZjNHpBb2xMRDdDYTBualIyVlRXUGpvK2Z2RDY2eXRkUmVYNkVxdGpvaFBIcHQ3Ly9pbnBWWS9mcE9jNVNLOERQclZNdnRoaFFKS1RMeUJhWkkycGNnZmR5bE5aOE9jOVFDNWZRTVg3V2V4ZlpRWlRSY1ZtWkNVV0tsYWFGU0VEeFBKSEVDa2daUEN3OUJJVk1uaEN6c2toZFVTcjVP''@;'; + put 'put ''UW9rUXpGQnJUYW1NZHQ1NkVYMS9GNzd6bitUd3RnK0p6QWQxTUZqY0VxUmtJMXROOGF3N0ZlT29aVHZuek56Vk0zbjExK2ROOE5OKzZESHQrSmI2RmZhMy9FTjBzMzUyTk5OdWliNVlBWlJRM05KNkdkWXd4OUMwUjFLR0N6MlNqMWVNT2kzeDVPdXROSjBZN3ZlOS83VDN6MXVaUHZQbmZpMmE4''@;'; + put 'put ''Ky96eldyMzMrODI5S2I5QitTOVpIU1QzMGE2WFpNQ1k5Z1NsVEk0SElYVlBpUEVEbjdtSEVhVVZGTm9jNkxOaUZCYmFLUWl3ZXIzV1YrMHA4NXRMWExudmdrNnMvOGV4dWVkSTFXbVJ6cFlsZU9vby91bmF4TDRQNVdrQjg0dS9CbUR2RWVheVhqdk1rc0UvNkNiNUhlZzBIcEwwaitORDhpSFRQ''@;'; + put 'put ''UE91M2VuMHZQa0srQ0ZLck9oTXNZY1lsYUdrODVQTVNtdU1HSUxNeVAyTTBZWFZSL1UxRGdHbFFSaWxnc3pCTktIWVhFcWViSHhXS2xNdEViTjVmamVzYlV4RmN2VENoYjJ0MTRsQW9ITVN1bGpiOVBUVURUYmZGNjNycTR1ZlNBOVg2Ym9PN3R2bzlEZW1Dd25UREhkVzF4WVp1R09leTlRdm9D''@;'; + put 'put ''UlkzMmprL0RteUl5NGFIbFZ3MW1uKzVGNit5ZFFCKzlDenVRMCtwaG53WUQ3SXVadVhUZTRRbmFPNDJFUjExYnRCcFlaNkJrcVlaSm1rUUR5S1FQOGdvV0E5c1QyMWJpd3VtSGdwaFoydWJmaGRkRkJXdTFmdDNMUnVLYTZ2dmFFZ1hGcVFiM2xOZDZ6WjA2NnNIMHVmWXdtNUw5OWZvYWU1NUM2''@;'; + put 'put ''N0d0K0ZIclNJdVdGK1hmb2tNanlQOHRQUkxsZzNCYzk5bjBMZVliTFd3VXlzNlFhcVFtVkhPY3AzczlMeG9vL0hMREV1ZWFBaTJUZkpCT1htZzVVd0ptRkJLdnNCYVAzNU44VDh2WUltTUFTOTRLV1lxeWt0TDNDNkh2YWhBUzh6OGZBcEduWmJUN2tIY2w3SWNPcDQxem1QWE5GK2NiaXJvVG5B''@;'; + put 'put ''L0ErQWpnMnJCUDV5S1RuVWNibTA1MGpIVnNOdmJHMmh0Qy9WS2QvYzBOdllFYTdXWlB2UFlWVjFkVjQ0VjlIUnFxNzJkdFNicEwweVJqcHNQMlBHQzdXQWJ6NEZFWkF4c3lUTFVtOG5BVHRGa0lpVFNYR1FSRDJzeEFhRXFFblljd3Z3em1sVWtpdHk1Unp6cHE4eHFEd1pBczFEakx1ajBwdElz''@;'; + put 'put ''ZTFNZDdOQ1ZZNXA2UnNiV2ZqcVV5YlNzWkFhdTh3d1dUTVNiaDU1N2JtNnVvZmFod1hOOWw3ZkxwMnkzREQ2a2pzMjZVRXVteVlHUkFZK0FpeWt5dDJSRmh3bVlUV0RHTFJ0WmpRRFBlWE01N1RhbEJxRElSS3NBV0htRlUwa29oUy9HOFBqUmU3N3lsYThjaGE5N1dEUVhEdzVtQjArY2dHLzRL''@;'; + put 'put ''QTNwc3YzcUlwUDRhdkljeTk5SnNDaGltQ2F0QXYyeXdQNlNWcUNJd2hQYlpQRFFBS1BhKzBpb1BpOVdWcnBkVlpYdXg5alBLaGVacEQrOVR2cU0vd1I2clVGSi9IL3czeFg1Y0owV0ZRbTREcjBxeHpYSDhTM2tycmNURTZWNU9GMjRSM3FlM05YOWRtT2lidEYvNGVBSGhzZ3JEbGx1QjlhL0FY''@;'; + put 'put ''N1BvN0RUL2d6NDRhRHBFTG1KcXRWM1VTM0d3dHJzV0NQRXRBSld6Qjk2bUV2UE53b0hMbXR0WHM3ZzhyR3pZemdRbjI5dDNadFlxeUlmWFRzS2ZYZWlWOUNYUUhXWjZKbWlTakFRS2pJbVZNbTBUU3JzSFFvRVNrdmg2eFg0NGZmRFJ6bmV1OTZKMXFGQk1UckQxbVlCZTBWak41QjhWTUpNb3hK''@;'; + put 'put ''ZzNJT3ExcHlrU1VRZ3RGZnpVdlVBTzMwQkM1Q0JBR0hkdEJNTTE5bkZ5RzBQQkFKVVoxUE1zUVFORm81UTVUelNXcE5YcTFzakpUR3JzOXp2OEFCdFdteFY3Y1g2U0tnODJGQlVFSFU3TElVMm8yMHN6ZXBqWXJEbnYyTjdIdEhSUFkrZzd6RTZESytQNEg5bHNzbUxXalBwU3FmRHJDSDg2STBn''@;'; + put 'put ''T2xGR2pGeFlnZVk1Z0dSMTU2MHFkdG10T1pwRWFuSEZVM0VTYWJkT01WbEJ0dUNrTE1GaW0vT2k4dUpNdW1welpoU2JPenRMRW00cTh0RnFIcXVJZXRHZm9jOGgvZU1FUC9ZNUptUzNnVG1HSFR2QW5GVmdzSWdlM0FIbThoeE1BZnJvRGpDcnViRlcwTDBjaG15R2VUblhqd2w5Y3lNTXp4TVNY''@;'; + put 'put ''Z01aWkFGVGZ6RFRaNlh5aDJsNmNNSkI4dENzTkwxbTJRQUNVYmNBZHFaOHhxUGwxaEp6NVd4Rk5taHRrWVdTQ1NRa1ZqSkhValNaQ0t3Q2NGR3lTZ2FKdExibkRMNlRORXZpdDNrcXlWMTNrZk9MMG9meE1la2pMUGVqaytYcXBEREpsTmJXQ0VRajZpcUFOTXV4QnBmWmdHNnRtQWhhbWR6cjZk''@;'; + put 'put ''R3NnRS9DTjZRNW9RUVBaZmt0TzJ1ZzNRN0FuRDJFUmcyb0FkdEFHeUdzdWVsdHQ2cWs5VUFiV2drM3ZHV3pUR1J6QzVyWFI0NXMxNURIL1drY0lZVWFnN1hBZGw0blZUVThCbXZCc21qWXpIM2JudmNtOGN1TGdjR0c2M29LOVpXYldkTTljL2ZNNW95bHlVaTRMOXFzOFc3azJHYmprVS9NYmN4''@;'; + put 'put ''Z1FveW1XTDRQby9GcW1RL2V5V2dLcTJoek04d3g5UGdPTUdjVkdPQ0RhM2VBV2MzMXM0Sk9jcGc4amE5ZnBEa3piS3dJbjgvNis3YjBBNklDSjFRd3g1Qm5NOHo2cndIR3h1WVQ0Zk5aUDc4RjV0OEJwb1ROaC9lenN2N1pqZk1CZnFxRmI5OW5PUVRsTkx0OG8zV3hvR2RuREFhVmVXR3h3STl5''@;'; + put 'put ''U3htcjhYTkNzd0xRTmNaOEhJRTVURW1yRWtNQTNrcUtvUER4MTNueTE4REFyNlo1K3RleitKbGNDaGh1V01UK3RVZDRJdGlMaS84QU9HRDVMVXlteEdXWmN1OFdQTEdjRFlhbmhMeTNuOWtpZHpiREhNT3hIV0RPS2pDd3QxL2RBZWJ5SEV3QmVuSUhtTlhjV0N2b3VVM3lpK1pNM1lGZkpRNVFB''@;'; + put 'put ''cm9uZEFqSDZvSmg0SXh3bXVac3V2R0h6NzA3Yys2Mjd0dk9kYjc3M0IzbjN0M0pQbWZlZlE2eGVqVWxSNFZXdWRhamM3Si82OElhVWxkYlhsWmkxdEdVYktRVlJqenNxYUI2aXVIcFBHOVF6SUlwOUxqZWxkVnRPRUVFZzBKOXBPVGlSNEk2OVhGZnBoQ1l2VDRRQ2RuRGRsWnhvV1J4aDhBOVRL''@;'; + put 'put ''c3lVSk1pY3JreEQ0MGpYdTZGWFVueTFlVEIrNWJTcTVHR0kvTU5qY0RhVFVjajlVZm1KRlJaaGtlN3NzRGhPSE82djZKTWVpS1RKY1UzOUMzZGY5QlhtVnFKMzlnSHZPMnRiRnlSZmp6dHd6ZFREcGYrTUhUZFFNTzBYN3E1bnVLZTVXbXdmVzZXYWVIUkxmU3lHZVlZK3ZFT01HY1ZHS0NGeis0''@;'; + put 'put ''QXM1cnJad1Y5YWpPZmMxdVpqZFV1ai9YY3huNDI1ZTgwWk9xQU9yUWFyRjNXWWZuNEsxZUVDWnJMNG5KWTNFVnVhOGhiSlBLc2dxUXEyeW1ZeTNaYWVXWkx0dE9abHRWTTkwckw5ZDhiYUcvdmw5WnlzU3ZpSlY4RFNUWC9sQkhzZGhvdXFRZnFxQUFkQUVwTW9NZEUrWFJUdktERGN0aTZURTVx''@;'; + put 'put ''WE0wQnFsN1BaNHoyZ0RmZ3JmT3pZNjFjakZSVXBwcFNjbzFTaWw2Z2NlYXhsaU9aek9IbWcrMDBXM1ozZTh2d2NFdDdKTm5iMDVqc1hTYm1wdWxvZExycFdMcGlYM1BUZEd5ZTVzbk9kRWFpN1oxeG1qTUt1T1o1QXE4QXJ2dEF2eFBVdTRpMmVTN0FIbnhBOWZ5aUFvL0ZXVFg4QzdubkJRUHE1''@;'; + put 'put ''OC9sK2wrWlVEMFhLblB3cGhzNW44Sno0VU5nSDBaUUVtVndONi9wTFNzRExIczlZSTA0c1ZIZmpIVkdBeUdpam5wMnVoRzVpSGRIR0JPRnliODJiUE42ZnA2UEV3SENvbFdHcTBpUGRLSmV0MXhnSUVwR2ZrbTIwR1FXcUJiUEp3M1FjWnN1MmNhTWN5MnloZGhrVWdtTXpPYUdLTitNRmc2L1pS''@;'; + put 'put ''ZGdSbFExTnRiWEk5U1lhZXhxYTZsUDFpZGlVY0JjblQzZ0R3UURRVXZPckZEUzNMZGtZUER6aVUwSHZpQnpPbkR1dlBGbGZ2cWJPUm4wWHRtN2RFS1ZuakhYdlZBU1dHM2JmQ0lzZmFBM1RMTTJlbHI0MlhCTEl0RXlONVpQMjRqWFJ4S3FrMkxwRG4rYlArQm9xcW1Oc2J5RVRwYVhrRUlQWmNx''@;'; + put 'put ''RFdLdHBEQkdkTmxWS2tLNEVDNmk0RURhNEFMeG1uV3dXQm1oNUFBRmpRUWNjcFdPc3gwcmRlTkxGQVpEQ0hxellkVUVLQzNBM1hSbzQ0OXNDeHdyZ2orVEF0UlQzeGhDejNoaTNCblIvb3VGR0V5WHdEK2JpbHEyR1czSDM4YTd0c2ljQ2Rac050eGJEMk9tZUxka1VuTDk0ZmdEbDN5SE8xOHZi''@;'; + put 'put ''UGFkOC9SSFY4NHNLUEJZWDFmRFA1ZnBabVdIUDE3L0d6dXhvUDkvZy9kL080V2xRTEtKNmZzeko0WDhHejgycy8yL3cvaC9rejM4TXorMnNmdzYvY2krUEw5R2FxVTd5VFZRR1Z0YmVqTDJJMVFiS2xwUERialBpb2V4anBmUVlUd25lV3pka2w5SkRYd3lhQUpOVjlXTndkOHZMeTJ2TGF3SytV''@;'; + put 'put ''SkRtMnlzcVdORys3aEExS1VMY3BpQnk4cW1PMjlvL24rNDVreDA5Mjl0MnJPZEFiM2pmbWZMSnFvYWwvZ01WUFFWejFjT3hnWGw2OUdINTFOS2VXNFo3ejQ0T1hkVTFQanJSMkJzb3JneW42M3JMMTM2MmxJMk8xaThPeDhjakZFLzhUSS9LeTBrdUwvZm04VDNLOExlYjQvWDBkcy9wdmoyZ2Vu''@;'; + put 'put ''NVJnY2ZpRldyNEYzTFBDL2FybnorWDYzOWxtY3ZkYm5SRXJtdTJnTVhjbGdIdHJGUE96QkVMVFNFTmtQOHNrTDkyU1FTKzFFNHdqOUJUVkFyYVZZa2s2cWxycmo1R0I4ZFFYYU9FcmNHZ3B5UVFLUGtGcmFYNmx2d0wvbEtvdENRWUxDa05kYzAvcjN5RU9TbG5qRzVVaFdweU5wc0RiTFl3UUxs''@;'; + put 'put ''TllKM3BGWnNObmdxcXA5dmFiQ1hiMld6cUE3THRiRGF2MTF2anJRN2F3cllOTnB2YVpLTVdtOFp0NXdhYml4cHNZUUVFWnpnNGN1UFFaRS9aL2g1ZkNCaDZvcjlzZnk4SXU1L1V4S0s3b3Y4OEVmWENKL3pCL1ltaEcwY2lWV09oaFNTd2NyMTMvTGR4YlBJQU4zOFIyTGs5S3IzaFlmdkd6Mmpv''@;'; + put 'put ''L3M5eHVqaUl0bmxPNmVKRHF1Y1hGWGdzN2xYRFA1ZnJaMlUzZjg3UEhtZy8rK1YrN2xhZHEvS2NyQS9uejFXM1RaZmJlcmE2UTdyY3RvZXcyNytXTStmb0llemJQSVcxL3M5UFlZWFZyZWx5T2R3OEorTUdjRGFKVkRHWGxseGM1aWo2MkJhL2h0cy9kK1hzbjZPRGFMdVlEamFnKzNab203T2Rz''@;'; + put 'put ''R0dTeThiUzlUMkNGMnhmTi9UU2tXa3R3VUI5V0lmSmlCNU1idGhxc3NMS2ZlaTlNMERQU2xtZEhZMFdGeGVYRnBjR2FPekc0YVZCQnkyUG9hWDlZVjRLeGxWK0ltMGlndGVmaUhlNEM5cHpkV0hGRmVVbFpSYnB6anZ2cW1oTkJNdDRpVmlGdTloanhaMnNVRXpPTzkxRGVvQm42VTFDVDNNR0xQ''@;'; + put 'put ''T0E2VldLaWVDQXFkVkg5SUplRkRIVzE4Q1VtV1cyM1d1dC9Gcm00UnJvV2RRVGNWV3BaQzhCeDFxdjU1RkN0M3FKbmt6OVZsaFEzQmE1QWRvRVA1K3gxdGJXcG1vYlF3RTdHRTFocjFFc3k2RWx0WVBONUxRcWlBcXBNbGhKRDBWWnlaWWsxcFdyT2VwK3F5U3pVZ1NHeS9vM0pyUFMvRmFHelkv''@;'; + put 'put ''bGsxcGx2L2h1NWd1RlpGL281MXQ4S3A3TFNYbDNRT2JkRDZyYW5sWGFZajE2YkllMkYrVzJCT3ZuT0gyeTJqWFdOaXkzUGIydHovNWI4Z3pBRERJWWk5QUJKcmtCWUo0V01BVUNHRGxHQXBUL3pseU81N1VnVDByaHpXc1hiQnBpMEN1bnpTR3FWakFTdEdnWk5nZ2tpMTR2NTlEUlV4RitNUVZQ''@;'; + put 'put ''Q0tMU3AzWkhhQ2JGYVJNbTFkMUVFVU1iV3hSZXNzVUc0RHljVGlmbjhhcUJhVHpQNXZGNGFqMDFZWG9pSC9MTHh6WCtMV21neWtVZ2FITTJ4YldaRGVrVTk5OS9LQ1A5VXAxVDBiLzJqQ29uOUdPdDdlMXJYOStRVlpHTG9iWGtZbWhINGY5dDlodnN1YnR5OXR6UmNiUmQvQTBiMFhkMmFLdlln''@;'; + put 'put ''Z0xBZkpIWHlBSFA5N0U3RmdZemZVV2dpSzJBTzM2R1RMUDdLZU9KQzBnVTVZQXlGZktXTERNa2dESHRXdVhZemVHblZUWld5b0JLUGFKZjRUTzN6SkdxQXNWaHpsVVZURTVKVHlqVmlveUhtcG1JNGpXRzlLeHloZVhLaGxBOWVtZkdScjJLRUNaYXNCMklBV3dCbWdsZkJ2UlJEZWErUnF2VExO''@;'; + put 'put ''TmdyYkxqOHUwNExHT0dTUSttcllJS0tGcy9QcnhkQzVxb1doUU9oK3ZERVpmUEhtcjBCMW1ZVjl5MEl0Mld0RnZxR3lBNTlmYkgyY0xjSW5XNmdvMHB1TlhnbVVtL2tiMnVVbmVoc25LYkZhdnljY0VIdzJkNFN1NDJzVmo5TnJIWXpiNkFYdllGV0swbW81RmFXV2Q5ZVV0Ym5rOUxhV1NFNjZ4''@;'; + put 'put ''VGNsdnBaN1RPazdjRjJyR1FVc1R2ZndCNHdZOEtVUU5xUmZka0hQV1ZSQzhxNVFvQ3ZRNEVEWEg1VUdlaVJ4U0NYck5xd1BsNlhsSFVMb0VicmRYeTArMGxmcnJ0b1pkNmJZVTJZcDNPeXR1Z1RTM0FtWTVHYVlRMjJocHRTU1V0RFphR3VocS90NnpVYWFlUjJtS3pZdHJTKzZpNE5lditFOUoy''@;'; + put 'put ''Y1dWVlZkZ2ZNRGdycTF6Ly9aWVp2Sk4xdnJLMmhwSmdUYVhMVlRYNnR0SjV3WmQ2RFlpeGl2RS9qMWtmWGYvVWxyajI5d0NtbFBFLzk3ZU9mb3pIdE9McmU5RHJ3TU1PbnVkQXNJUG5nU2hYZWZBY0lLNHpBMTZYbDVYTHlDZHdhVm9rcVhEcTY1UlVMZVpsSFdkUHF1c2NnUUx5a0d3cjBOelpk''@;'; + put 'put ''UmpyQlhZVzdhVzU2MDRIMFFoZUpqSjBxbzJWVFhOTGpxTlkwa0pWUldteDIyVXAyRFl2MXE1TXlLMmUwU0g1akhxWXpxekNiVDhjNTFQTG4xV3ZWY0VzeTJNbUhYNTk3WS95TklGbWFmbk5VL2t6QUpCM3hrMXhTSlpqQ242d05sZkhhOTFTeHp0NCtEQk5jb0wrWm9BSFBnUzYwQWUwem5nQS95''@;'; + put 'put ''djNtZUY1QmVPTmNmbjVwOWx6Vmp2TGRIOVUxdjNXTGZ3R0hJcnJoZmNBeklRTTQwSVhPTXdGQlliWDRENmo5QVA5UDh6ME5GYnBhZHJQWVFZekljT2Mzd2pEOC9sSkw5QklBYzM0Tkp1TUJuQzFCRDFScXBFM0ZmWVdvQUpucnJCWFRGRWlTVHRGSittVkduYnRXcm4xMXNWRnNBRVhhdkNJOVBQ''@;'; + put 'put ''ZWhkNGZ5dlVDWHBhWG5NMFVtSXlpam1wZ2ZUNHYzUVFmaStSNnZseGFjTDdFejhOK1V3NWI1dWVmZExMN3N6RE5DNVRIeDk3SlEyTmpoeWJ4d1JycEphd0xMNFR4blBTRG10eVp5VTNLbVFuZzhSZmI0UnA4OWxka241M2FXZmR6V3duMjcyRzJyM0ZadHZIWTZoQTh0eEtyQWc4NGZTRm5XejNN''@;'; + put 'put ''WkhCY2xzR2YzMkdzaTduNGdQNDRVcDJUdE9UT1NZNmlwN2JZWmR4dnZpdm40eDlkUU51ZDUrREN6V2NzY3R1cGZQd0JGMTRtNTZHQ3NINFY5dDZHeXVtNWZlNTJBVDNKWFM5Z29LWFVTcTRZODlUSzdXVXVCOHNyNVlxOUpIOWNuRXV1Y0dKcjNnenE0NnA5N2ZrRDl4ODhkUDhTNlpIRVlYcDBl''@;'; + put 'put ''YnFQSy9lNWp5OHUzYnUwS0pueGZ3MmNIUmk0a3Q5RkNITVcvaDMwTzExWEM1cktUTHF4WG1jZ3RBQ1poUWVBaGpSYXZXYlpiQ0E2blJJS01JbEdRUlVNU0NiOWZvU1NMY25tcHBRLzRZL1gxVUIzWG5zZ0ZBZ1d3THczaGxIek1sNmx0aldiYkRwWmhRdGxQSDdhZXpvWVBOTXp6TktiZTA0SEF5''@;'; + put 'put ''ZTdGVFV1WGFQS2M4YlhicWlyNld4S2RmSE01NDdHVkR2VDUwU2QvSXl2cEpwZDF1dkgyZDZtWlByOTRoYTY0RG0zZEcrbmVXd3VLOXQrUUtmSEdmMm1aRHE5eU9HbG45RWNYUm1lUG8vbWJJampqSDVUTXYzZXZPMVlaeGo5VG5QNnRmR3hXTzB6bTJlVFBNK1BiS0Y5bnF0TDV6bkQ1M2tFeVhY''@;'; + put 'put ''VG5heHV1Z3Y5ZDhZVmo1V1hhWFQ2RXF6QnhZVkUwQlNBdWFEWlBsY0F6TThsMFBrdTd2ZHA4ZFpUZjlzMnVRSnYzV3JiWElHM2FyWmpyc0EyRFhtdWdEa1k4ZFAwSEsvVkFGN0ZKVUxOb2JkUkhrN2FycjFpbTZDeiszMnJseW9aUDM1U3R6bjJiRHgweVJKeWViOVl6blVIV2dmakNvdTZXQVhS''@;'; + put 'put ''aXVYQWs2VzA0RkM5YzZLOGM1R05PeWVLdWlWRUt6QlFQaUswSmNtamZ0UEd2V1dqeWkyN0RidndGcTNZRWVOMjI3YTFIZDgxVTZDMm1tMmFIdnlaUzUwUDRMZktMTWN2SGh6ZkxzRWp2aFRlTWQxODE0eDJjNWFITmx5NWMvNjVpamZQS3J3SmZMMjRBMjllVkhnVDYrczRiOVlBYjlLN0FxclFG''@;'; + put 'put ''ek1XTnhhUXl3ekt3RVR2SXBTM0ZnQTE3S1NHbm55U0cyaVFUMDR6TXVnSnMvTzJITmhFYUJNTlBZaDVPMjB5Tlp2QTVXT2JMYTAwTkpZSUpoNU10b282N0hTYnFOZnBGWGZZSStySTB6c084RDc3MW4zd09PbTlCNXV5NEhweTF5Q3d2UDVPbHRmZmdMNldLYTdCZXFIV1NReDZCeWFHWEZLZk5r''@;'; + put 'put ''Zi9XbzMyVmlPR2lXTERTVkJjZ0dGYVV5Z0ltZ1Vkcnl6a3VYdklneFFzMWVmYjZBM2twcmRxbEtuZEhwNmxCcUlqcW1ZQ3hST1YydzJvbmhVYnVBRlROTEtoMllHU3R4WWd1Q25oNC9nVzJrMjA1MnNTQW1YVlJadXpDSnYxbzJsMW1VS2YyeGhnOU1mdXBHQTBtcFpwOUlvdE5Pb0ZHMFpndHV3''@;'; + put 'put ''c3QyWEp4Qlo3bCtjaHRPVHlFSTV1bzRkNHJQeXVYS3o4NkFoUzVUQzhuTXR6TUtHLzM1TER3TnF5ODIwV2x3ZVltN2ZMb3dBYjdCUGJ0bTNQeC9weDRXNGszNmV4aDkybkVhRG5NMDRRUndXd3JZVkE0c3hObHROUDhuSDF2Tk1FTFFLQlluL1F3ZThuWXRrRW04SVFtNjdmSVBlTTNqYXR0K1Zp''@;'; + put 'put ''RDQ0ajE4bjNjSkR6N05ZTlM2a2NiUEI1M1BlY1ZGL0t3ZWM2QUhPZEE3L0lqMjdpVXRwU3JJZE5FVEVXL0ZpSDZabE5FWHZpWjVGcjRGRThMQWQ3eStSS0YxcFpzazE4dDBwK1RXTzZ1ZXFUalNGZFk0Q1d1SVc5b2lyRXZiVVNKWm1MNHBJNUZrUlMxNlVjenJ1dndiTE5CU3FLa3doN3hlNEtZ''@;'; + put 'put ''ZlRZeW5OZThOZ1dPdUsxS0ZSbTdtVzBJS0x2cVBKY3ppcDVMdkQ4M1Z2YThyT0hpOHJaQXhibmthcnRhaTVIWmdYZHNJV08yQjBlak5ZNlpGdHJTNTZiWFA5QmFXMkIyMXJ5ZVNOdnU2cTBCZC8zMnp1MGZVNXVTK09CSDFhMVBadHJxMGRuZDJoN1VSa1g2OXNZM2JDNld1cFBGOUk0Qk0xSXB6''@;'; + put 'put ''VTdMQTdCQ21ESUFXcTlleGhSRjZJQ2UwQzU3a3BWRG12SWw4Ritma3Z0SzgwYlAwd3V2czI3UE56MExvL1B6SzcyajQvMWtZdDM3dDY5ZlIrNStpU0NiZ1dlT3kxWEo4bDlwSk9pdjZ0dmJMeC9kWlpjM0wzN1RybVBFWHdGZVE3MlVjN0dOeEthano5aUFCVTV0RjMrZUFFeUI0VmNOcjRjY21K''@;'; + put 'put ''T3ljUGpsWTJPVkdscHl0RllNVkZMUnFvcVVnNlh5NUdxcUdMalRLS0hXS3dseE1hNVpHNzY1a3gvSmJzL0h5bVJhd2xHc0VPb1pMVUV6YXhYZW04T3phWmYxV0lCT0h3MlZ3UXF2SzJLQXZYOTlUZDFkVVVpblowUmVvRTYvU0lqL1BkSVY0SS9jUHQ0anZ3ZVFMb2JXVkVybTBHMEVCWmpvZFF5''@;'; + put 'put ''b21XVkFPeFdHTURwTEpPRUFuMHp3YXVtQWk2TlhGVWczOE91Q2pMZjBGSGg3czhGbGg5aFVTRzNIRkxtZDdtVGRudzdlUUZHN21IanBwM1FzNEZWYVRrd0h0SmpZWkFlbUpOWnFrNkJmbGVWS3pTSU1NR01ReGZvVUsxTUhJaWFmTW9WeS9TR2RLNHkvYmpBVjJ4MW0reHViYnBvMnNrKzI5eTZ0''@;'; + put 'put ''R1dHZE5xc0JRVVZYc003K0UvOURYdy91dkIvc0ZvSUVaWHlpZ0V0SUdlSXVyYW43YlpjRFlWYjlBZmxvZ2ljUGZDQlFmS0s0NVlQT2Q3SitLNVgrdG42ayt0ZkFxWUtzQjVLK0Yza0crdTBBcm0reEkyWGtsL2dnVTFQVlZWNG5RY3RXUUF6Sng5dlV1UWo2c1YxTzhqSFZ4VDVpSHJSNHdodDAv''@;'; + put 'put ''WVlmdm90Mng3RFhhcTJxN20ySzdoL2kzemtiWi9MdFYxQlgrZis3Zm9nUGM5UW40VzgrVHR1UDd6NU85bCtpQUJNbVBuR1F6TE0wd3lHcUdCNHJQM3lYRDhGUUEzYng5cGZ5TVhhQzhiUXRqbVF2ZWk5TytpR1YzTG4wcjBIdU81dFJQOUdUTGpqcmUrQmYxV3F3UjF6U2h1aC9XMjBFZlJ2L2w1''@;'; + put 'put ''cDA0MC9neTZTendMTmxERjZHZHBjRU1mcHhhN0V5M2xzOW9YOEJmYms5ZzAzMkRQYkIzOFdmWnM4Q0N1MkFBWml2TGFOeEhLMWJUQW0vbXMyWmptOTBhbThFT2g4UXlHVHdJUmFvRGhnWXpkSWJSeGJ1K05Vc0c2SGFWV3BQdlA1NFVmSWcwVmhQajgyejMrR2VkcHk4NlJrb2t5WVl2Rmh2QXZX''@;'; + put 'put ''Wk5tcExvald4Yk82b0UxMThZKzMrbnp3cjRYK2V4ZytlZW52WHZqQThkUUxkUE5PZEIzc1BUZ3lSWDc0L3MrTWhxM0FJd2prUUdUOWQ1b3pxcitQMGdYVU9JdCt5Zk1jNHhhc0xlUi92a1NQZFdac05PbU02ajk1WWkrd0NTYVRzR1ExRklrYTlWOUtTYjFGUS9aWFQzaHJrYllXNUwrWDBySnR1''@;'; + put 'put ''MjMrWXNxV3R1Q0JOSTJPWmpMS1gwNFpuUjJkMmIwcms4Mk1EUFRGdW1LZHpVM2IvaFVWeC8vZ3I2aFViZm85b0lLdGF2cVQvOElLSHNrcXY0eEVwZlBLMzF2NUsvb2g4YWY4NFpYODU0bUczQjloeWY4eEZneldmUktYNEwrak4rWThBUVp6cks0THV3RjNnZnQyMzMzMzdqZGZ0RDl4d2NGcldR''@;'; + put 'put ''R3VRb0VUR0Z3NDdSWnJQL2pCM1ovKzlPQ0ZKK3d2dnN4MHdTL2tPM1NqYUNJeld1WWhHbnJIZ0lsWjZScFFjT0JiTHhzd01XSnNvclVPdVJvWE0wdE81UkVRK0I1RkRaRzYyaHFyTFFqT29OVWVMS0RCcTl4RlEySHdGRm5tU1NyWlNmS1ZsVFJoREpEczlyS1FLaXR2U2R3Nk5QYWVGZmZNSU5F''@;'; + put 'put ''TTd5OVp2bTFFTG1rWnVOYUxLNldYWUNHdDB2Y3Jic3BPc210M3U2OGU3Qzh1QUNYZWUxazdLMmdaNitvdks3SGIrZ2RtWlpubEpRNThQY2c1M1JPRTFoRFljN2Q3WDAvdjlXYUdESmd5QWtoZHI5VkxoTFUxK3BYTFhXaVI3MkxRUDFWaUw5Q1MyRFozUFcyOUs2SGw4Q1h1U3ZqajNoMnZTcEJq''@;'; + put 'put ''OWkxVXh1T1lmT2J3K1Z3c3Y0WHFMdlpjZGM3S25sL01QUmV2UTl2Qm81V3IxTS96L2ZmS2ZpcC9mbGNPL3VneDVUNktQZVJkZ0FNdmlnTU9xbjAyRERqWTdHTXBpTWg3V0lITktIa1g4N2pVYUpFOXJuV2tRZzkzdjlRSWtsMnZlemZuUHJENVVuK2Jyd1A4N1UrcDF2RkNEaDhGUjNNNS9PZzh1''@;'; + put 'put ''M05Hb1lPazFUK20zQjZEYWQ0YnZOZHVmYTlkbTBEL0Q1RDhFaUlBQUFBQUFRQUFBQUVBQUE4Q0creGZEenoxQUI4RDZBQUFBQURUd1oyR0FBQUFBTlMrcE92L1EvN29CSFVEeVFBQUFBZ0FBZ0FBQUFBQUFIamFZMkJrWUdBKytlOEtBd1BMb3YvTy95dFlTaG1BSXNpQTBSQUFwZklHcXdBQUFI''@;'; + put 'put ''amFkWlEvYUpOUkZNWFB2VjhHUlJ5c1dGRnNhekhXSmtTYTF0aHF3Y1kweFZTVFNGdHJnMElYY1ZBUnNhQ3A0dUpTc1E0dTR1UmtFRjBzNnVSVy93emk0SzZUT0VsVVdtZ29XQXIxODl4bklqR0pDWWNmZWZuZWUvZWVkNzRueTVnRVA1S2xXcWtkeU1ockRHa0JRYjJJRGkrTWlEN0VicXhnU0M2''@;'; + put 'put ''aG53ckxmZXpYY1NTa0NVZGtDakZaajZRODh4ZjBKWG9sajJiKzE2V2oyS1hUMUNTNk5ZOWVQWVUrUGN2eFBQcmM4NXlyR1k1eEhmS1lyR0tyTjhXOVN0aXV6NUhUT1VSMWxieUd0SjZuaXZ6OUVXbXNJYU90Mk1LYUpuUWZCcjNUeUhrZUZlTC9zMGc3M3VQenJGMnZJNlFMR0xFMUF3ZlFwdlBV''@;'; + put 'put ''RTJ6VVc2enpDbzZ6NWhXeVM3NmhSMGY4WHpLQnVCN0dYcDFCVm5leWxobXVOWWFJbkVPNzNtVHRPUXhqQ1lldzVML1hUcVJRd3JCM0J5a2JaNTBSTjQ5elpCWlpLYUZEYm5CZWpuMG0wT3dOb1VVajdHMGMyM1FkZXVRdU9xVUZGOGl3dk1KQjg5M3RPWTJZMVNndldFc2JRanlMdUt2ck5vTDRp''@;'; + put 'put ''UUVaY09OUityWEhlZFZBZ1NiUy9EUHZxb1ExLzRQNVJ5NVNYNzNOQ0ZlOHE1VUdrWEUwLzZwbC90Rm5ubG5XZWRWQTNqeHB2WXo5Sy9yMmp2Nmx5Q0wxUmEveS9DdmUxY3B5WVRUL3FtWCttYzlHNjlmMnJLWDFidnRYYURuaXVWaS8rcURzeTVqYnB6RXRhM2JlWmRLcno2ejNFNzNySm4zeXFQ''@;'; + put 'put ''WGhNc2djV0E0dEMzOTVCdTB5aUhiejF2cXJZOGpWRUtrd3NBSFJ3Q2J1eTl4YWR1cklMRnVlNnNoOHU0eFZhT2RqSHYySDlnNjRITm9abW4vbGQ4SHlXRXZMdUJTWVBkTlR4UEdkUEVFbHFEZm8xekRINENjcmE5YXl6dFB5bnJJTWVNVS85dzFXcWNlQXhoSHpMdk1lYVNyZktZdmtJdmtJSi9V''@;'; + put 'put ''dDd3cmVTNEVDMzhNa2dsUlk1L3dmTGg4ZTUvSmNHM3l6eVA0R2o1Znd0QUI0MmtYQ1hVZ2FjUUFBY0x1dU03OHVNenZQMjNtZmVwOTVudi96N2tFaVFpSkNJcUluaWVIRGlCZ3hZc1NJaUlneHhoNUdSRVFQRVNJUnNZYzlEQW1KRVNFajloQWpJa1JpakpBaEVoSWlNVWFJak5qTFlQeCtOcHR0''@;'; + put 'put ''OForODdXT1hyU3NMVWRBMlZJVEswSDMzWHZkWmR3T0c0REE4REwrRkQrRmF6MmpQVWs4SllaQVVVclJqOWhuN25IM1ZucmNYZStIZXVzUHZXSEFVSEEwbjdrdzV0NTBsWjhXRnVJQnJ4clhtT25EZHVjUHVkZmVweCt2UlBmT2VEYytKcDRHaWFCSjlpaTZoTytneFdrRmJmYy83SHIwVDNtcS8z''@;'; + put 'put ''di9HWi9ObGZYbmZuNEd4Z1pjREZUL2xuL2VYQjBjR2x3ZlBNUmlid2hheEhIWWVnQUphWUNXd0hiZ0pOSEVLWDhDUDhZZGdJamdhekFaWGdoK0NGNFJHSklrTklrOFVpRE9pUXR3UzdTZWpwSmZreUFRNVRtYklCWEtOM0NUM3lTYjVHUEtHdUZBaU5CN0toSllwbU1Jb2lVcFNrMVNXeXRFUWpk''@;'; + put 'put ''SUVMZENBSHFIVFRKcHBNUjBXWVgwc3hTcXN4YWJZS2JiRWZtT3YyUnJiWWpzY3drMXoxMXlOYTNFZEh1RjkvQTYvengveEpmNkt2d2tyNFhLNEhyNlBRQkUwd2tSQUpCbHBSRG9DSXVCQ1dIZ2xkRVMzaUl1S2FJa3BzU0YySkVRYWxyYWtBK216OUZXNmttclNieG1SY1hsQ2ZpZnZ5b2R5UVQ2''@;'; + put 'put ''VkwrVWZjbE51SzA0RlUrYVVXNld0d3FwWEpWVk5UYXFUYW1aSWovWkdpYWdRTFdxejJndHRYZHZTY3RvbjdVUzcwTDdIdE5oQnJCajdFaXZIcXJGN0hkSlJuZEdIOUJFOXJhL3FPYjJrLzRxVDhXeDhMMTRIQ0FCZ0RFeURaMkFSdkFZYklBOEs0QXhjZ3ArZytaK0JHSXlSTm1hTlBlUElxQm90''@;'; + put 'put ''bzVXb0o5cW0yMXcxMzV1N1p0bXNtbmZtZ3dWWnFFVlk4OWFTdFc1dFd2bS9hbXpBVFFBQUFRQUFBVHdBWWdBS0FEOEFCQUFDQUNnQU9RQ0xBQUFBa0FGQkFBTUFBWGphaFpMTlRzSkFGSVZQQ3hxSWhLQXhMcnBxWExpVHZ5Z1lYR3JjQ0dva2xwMEpTQVZpc2RBV0UxL0ZOekR4UWZ4NUFqYytn''@;'; + put 'put ''MHVYbmc2M0NBWWxrMmErbVh2dXVUTzNBMkFOSDRoQml5Y0JIUEliczRaTnJzYXNJNDFyNFJqMkVBakhVY1NUOEJLTWljOHljNytFRXlocWhuQVNobFlWWHNHT0ZubW1ZR2tQd2htc2E1L0NxMGpwY2VGbmJPZ1o0UmZrOVMzaFZ5UjBTL2dOYWYxeXpPOHhHTHFEQTdnWTRCNGVldWlneTVPYmVP''@;'; + put 'put ''UlhSQjRGbEVndFJrM3F1a3Jqayt1Yys4enltWHVMTEdxd21lY3BKeGVPcU1MZE5ubEU3VG01UTNMUXBLN0FuTHdhKzdqQU1SbzRJYzF6Mlo1eFdWekgvRlhKNHNxanFxZE9hazVWWGx6TjRueEZqVXRWMklGVE90aFQ5WnJrTThiRFdKVnorNThlaFgwTnVLb2d4M0UzNCt3cTMvN0VOY3VZeTNX''@;'; + put 'put ''VTQwdFdoOUdBdXlQK2tVaVQ0eHpWN0t0Ny90VE16YjNqWDN2UnJSdmtGdDl5NkJCTU9sYVQvaDJwcU1sUlVyRXl6MVpndklKZHZwam8xWlJ4UTUzTkNnUHB2MDF2bjltUmF4MUQ3dlFZOHhoenZnSEZmWVZqQUFBQWVOcHRrMWRzSEZVVWhyL2ZzWGZkTms3dnZWZkhYdmZFS1M1cng3RmpKeTV4''@;'; + put 'put ''N01SSnhydGpaL0Y2RjhhN2NXeTZCQUllUVBEQ00rVUpFTDBLSkhoQW9sZlJld2ZSZWFRSDc5d0pYaVR1dzN6L0daM3puelAzM2lFTGQ1MGJZQjcvczFTYmZwREZETExKd1llZlhQTElwNEJDQXN5a2lGbk1aZzV6cCtybnM0Q0ZMR0l4UzFqS01wYXpncFdzWWpWcldNczYxck9Cald4aU0xdll5''@;'; + put 'put ''amEyVTh3T1NpZ2xTQm5sVkZCSkZkWFVzSk5kMUxLYlBleGxIM1hVMDBBaklacG9aajh0SEtDVk5nN1NUZ2VIT0V3blhYVFR3eEY2T1VvZi9SempPQU9jNENTbnNMaWRxN2lhbTdtQk8zaWY2N21XcC9tWU83bU51M21lWjdtSFFjTGNTSVFYc1htT0YzaVZsM2laVi9pV0lkN2dOVjduWG9iNWha''@;'; + put 'put ''dDRtemQ1aTlOOHo0OWN4d1ZFR1dHVUdIRnVJY0ZGWElqREdDbVNuR0djN3pqTEpCTmN6S1Zjd21QY3l1VmN4aFZjeVEvOHhPUEswZ3hsSzBjKytmbUx2emtubEtzODVVc3FVS0VDbXFraXpkSnN6ZUZYZnROY3pkTjhMZEJDTGVKMzN0RmlMZEZTTGROeXJlQnp2dEJLcmRKcXJkRmFyZE42YmRC''@;'; + put 'put ''R2JlSSs3dGRtYmRGV2JkTjJGV3VIU3ZpRFAvbVNyMVNxb01wVXJncFZxa3JWcXRGTzdWS3RkbXVQOW1vZlQ2aE85V3BRSTEvempVSzh5MmQ4d0lkOHhLZTh4eWRxVXJQMnEwVUgxS28ySFZTN09uUkloOVdwTG5XclIwZlV5d004eUNNOHlrTTh6RFhjcGFNOHc1TThwVDUrVnIrTzZiZ0dkRUlu''@;'; + put 'put ''ZFVxV0JoVldSTGFHL0hXalZ0aEp4UDJXb2E5dTBMSFAyRDdMaGI4dU1aeUkyeU4reTlEWEdMYlNTUkdEeHFrS0sra1BlUmEyWVg0b2traGE0YkFkVCtiYi8wcC95TE95UGF1UThiQmRGRGFIRTZPamxra3RITTRJL0MyZWU5UmppK2NUTlN4c3phd2N5UWg4YlZZNGxiUjlNWU0yMHk5bTBHNWV4''@;'; + put 'put ''bDBVdG1kNnhETTkyazE2M0lXL3c1c2hZUmpvT0oyS0QxdE9halJtcFpLQlJHYms2elFkSE5PaE03T0RrOW1oMDNSd0RMcE0xWmdMZnlvZUxTbXRESG9zODNXYnBLU1pwc2ViSm1XWTArTkU0OE01cWZRejBQT2Z5Vktaa2IvSDI4R1VZVUZ2T09xRVU2TkRNZnRzd1hpRzdzdlFFOVBhMTI5bW5I''@;'; + put 'put ''U1Izejk5MnBQVHA1MmVPRmhXNWJJc1dPbnJIWGFzcVdzMWJ0QnJITVpkNVBWR29yWmpqMFhIOHNiUHEzUmRhYWkrMm1PTnh3YVBqYjQrWXpUaEl2MDJXRklTOUZqbXNkeGpoY2RLdzJCVGRpamxKTnlnb3FraHh5cTJZc2w4eTUzRlNQZnVwMldSTmYzWjZUaGduUi9RSkxyZDA3TEErMzJNTnZ1''@;'; + put 'put ''YTFubFcralJNY2pJYWk3akp1ZGJZMUI1RmJDY3ZZbnZxSDdkbHR5RUFBQUI0Mm1QdzNzRndJaWhpSXlOalgrUUd4cDBjREJ3TXlRVWJHZGlkTmtreU1taUJHSnQ1T0JnNUlDd3hOakNMdzJrWHN3TURJd01ua00zcHRJc0J5bVptY05tb3d0Z1JHTEhCb1NOaUkzT0t5MFkxRUc4WFJ3TURJNHRE''@;'; + put 'put ''UjNKSUJFaEpKQkJzNXVOZzVOSGF3ZmkvZFFOTDcwWW1CcGZOckNsc0RDNHVBUDRjSldBQUFBQUFBVmlZOUd3QUFBPT0pIGZvcm1hdCgid29mZiIpO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0eWxlOm5vcm1hbH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXM7c3JjOnVybChkYXRh''@;'; + put 'put ''OmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRmFFQUJNQUFBQUFvdUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBQnFBQUFBQndBQUFBY2ZOSDU1a2RFUlVZQUFBSEVBQUFBVFFBQUFHSUgxUWY4UjFCUFV3QUFB''@;'; + put 'put ''aFFBQUFjWUFBQU9ka0RDZnBaSFUxVkNBQUFKTEFBQUFDQUFBQUFnUkhaTWRVOVRMeklBQUFsTUFBQUFUUUFBQUdCcEVxOEpZMjFoY0FBQUNad0FBQUpzQUFBRG5uZEREN0ZqZG5RZ0FBQU1DQUFBQURBQUFBQThFaEVCOFdad1oyMEFBQXc0QUFBR09nQUFEUloyWkgxMloyRnpjQUFBRW5RQUFB''@;'; + put 'put ''QUlBQUFBQ0FBQUFCQm5iSGxtQUFBU2ZBQUFPTXdBQUc4a0hkN1lsMmhsWVdRQUFFdElBQUFBTmdBQUFEWUxjNGdSYUdobFlRQUFTNEFBQUFBaEFBQUFKQWVSQkNCb2JYUjRBQUJMcEFBQUFvd0FBQVRhdVk0MEoyeHZZMkVBQUU0d0FBQUNkQUFBQW5yVSs3bjJiV0Y0Y0FBQVVLUUFBQUFnQUFB''@;'; + put 'put ''QUlBS1VBMUJ1WVcxbEFBQlF4QUFBQVk0QUFBTjZNZ2lJV25CdmMzUUFBRkpVQUFBRG9RQUFCaUdYRmoyS2NISmxjQUFBVmZnQUFBQ0JBQUFBalJsUUFoQjNaV0ptQUFCV2ZBQUFBQVlBQUFBRzluaFltQUFBQUFFQUFBQUExRkcxYWdBQUFBRFR3WjJHQUFBQUFOUytwdlY0MmcyTVFRcUVRQkRF''@;'; + put 'put ''RWtmME1MUG9mN3lwTC9Eb2ZYZlYvei9BSWdSQzBUUUNMUjZjZEZSa2pWc283SHpUdjFENEI3bTQwNDhET2xvcE5sdjY0NVNlWFhMVDUxc1h6U2ErVzNBRjNBQUFBSGphalZjTmJKYlZGWDdPdWZlK1gvc1ZhaW5sUitnWUlZUWhhVG9nVEpRZ0drWTYweFJVeGx3MWFMYnBuSU1oakRIQ051Y0tj''@;'; + put 'put ''MkFXQXBzL1hTVUxRKzEwa2dxc0NuYldrWVl3UnR4Q1pCTERvREFHRmFweE1vUXRCcFYzejN2ZUQvdld0dE0rNmRQVGMrOTczM3ZPZWU1MzdnY0JrTWM0MUVMbTFOUXRRQkU4UFloak9QNFJLTnppYnk2L0R4Vkx2cjU4TVNxWExGNnltTE5CZnpLYXpralk4Yms4aG1NTUpwakhZVHpxWEVzNkdp''@;'; + put 'put ''MnpWU1hhZ0lnUHllQVZmR0tVK1FJcVBvS2dKdDVBRHBpSjlmZ1FzWXlDY2h1Y0p5T2xFeVVZeEoyZGpUdmlaK1BEOFRFTThCT2ZHM0RrVUwvZUxsVDIrdit0K0pFQlYzaHp3SkdqQTQvRSt3WVllVFkrSHJjbitKai9NSC8va3FEdjIrUFg0bzN4UnVaMUxETTlnZG42SEtHb0podytUM2hNSlFL''@;'; + put 'put ''K1FFU1lUdVJ3TFZHRUdVUXhjenVUbFZwSkNGYmpaNXk1amdqTStIcjZkeEtDRnduQkh3akZRY0xqTmNMakdCRndpb2p3QmhIaERCSGhMSkhET1NLSDk0bGlWdTlEcmhZVGVTbVRNaFJMdVpTVEs2U0NQSXFWelhQdHlWVEplRDR6aVJEYmQ3cGp0UjA3MjdHM0hRZk1JWXBRUXhUalJpS1ArVVFK''@;'; + put 'put ''bHVMN1hDR0pKTEpJSW9za1lDTWU0L3hHb2hpL3dpYk9md0svNWZ4bmlCSnNKM0xZUVJUaDkwUU9yVVFSbmlkeWVJRW93aTZpR0cxRU1YWVRlWFFRZWV3aDh0aEw1UEVuUXZCblFpdzdFWTRUSmZnbmtlWkZMUzlxZWZHV2wyQjVDWllYYjNueGxoY3ZJMlFFODNXbFhFbE9jaFM0YWpVek5JRTFy''@;'; + put 'put ''bVp0cDdLbTA1bVpHY3pJVWl6RGQ3RWMzOE1LMW5JMTF1Q25lSkJaV01mb3R6T2k1MW5KRjFuQmc2emNNVmJzRFZicUxIZnl2cDJzTXI2M0lqbGYrb0NkdzMyeW5IRVBwcjdhcWJ1TjhYLzZVYXVOOE8rWkFVZmVKQzcwOCtUNVR6cFBjV2Y4ci9nZjhTTTlKeTk3MHVJejhkWjQ2MGYvZFdlZnQy''@;'; + put 'put ''ZVVKempSaEpnbUZGOGhIRzRqUEc0bkFoWVNFUlh4R09ja2FoQlRnNW9hRkMxRWhHMUVaSlVXcTdSWXBjVXFMVlpYUlJmaGNKcHc2Q1ljUGlBQ0xoR1JESkVock90UUdVb2VKc1BJU1VYRktpb3lXa1p6ZlVVVnJpQktNSVFZWkVvWFU3cWEwbDFCNlY4aXNrcjNGaytVaVNkblNuY0ZwZmRvM0Z0''@;'; + put 'put ''VTNxTEtXVlNYbFo1cVBGWDNTOFRBdWs2aTlhWlpMVVNZS05kWm5EblRyelA5YWlIbVJNVmFpRHpSc21iaXp5cmFXUlp5TWxtdTVkdVRUNjhhUmppZjlicU5jUzFrSkkyTXBBbVBNNW9uOENTZVFqTWplb2FSYk9OcGJPTnVPN2pMdmR4ZEYydlF6WjFkNGc2RzhtMGorSmJSWEhHTTZWbFJhaDJs''@;'; + put 'put ''UFA0SjdYTE13L1cweE96cjJZazZvekhrazh6L0hsa3I2K1ZoYVpMTjBpeGJaWWZza3BkbGoreVhBM0pJanNnSk9TMXZ5N3Z5bmx4U3Iza3QwK0ZhcWVOMG9sYnJOSjJoTjJpTjF1bDhyZGM3OVc1ZHBNdDBwZDZ2YS9RaDNhQ1A2aWJkb2s5cmk3WnFtKzdXdmZxS3ZxcXZhNmVlMUc1OVJ5L29S''@;'; + put 'put ''UWNYdVVHdTNJMTBZOXg0TjhsTmRsZTdtVzYydTlITmN3dmM3ZTVyN2g3M0hiZmNyWElQdUFmZHo5MHZYS1A3dFh2Uy9jNXRjeSs0bDF5SDIrZis2djdtRHJ2anJzdTk1Zjd0L3VzKzhPcUxmS212OEtQOFdEL0JWL21wL2hvL3k4L3h0ZjVtZjZ0ZjZML2g3L1gzK1JYK2g3N0JyL1hyL2NPK3lX''@;'; + put 'put ''LzJ6WDZyMytGMytaZjlIci9mSC9DSC9CRi93cC8yYi90My9YditVdkFoSDhyQzhGQVp4b1dKb1RwTUN6UENEYUVtMUlYNW9UN2NHZTRPaThLeXNETGNIOWFFaDhLRzhHallGTGFFcDBOTGFBMXRZWGZZRzE0SnI0YlhRMmM0R2JyRE8rRkN1QmdoaXFKQlBCMnJkRHU1d1hpMmNhMXhVOEpZWjl4''@;'; + put 'put ''cW5qWEdqUm0reFhpSzhTeGpXNDExU3V6NnpHcVRsSitwY3BWeHRmSGNoTEhhZUtlMmt4dk1mMTBQNDVUeHhjeFR6Y1pWeHFYR3Q3aEY1QmJqVmYyem5zdkVXR3YrUG93N2pOdU4xL1d3M0pYR2J2WVM0LzNHalgwNXpjQUFPNmszbnFRZG44VDZ5MTY1NnVpUDhWWGpuY2FyZTVoNSt6VDhmMVpt''@;'; + put 'put ''Ym50NFZXYlB2ZXhNVFJ2TWY1WDVzL1pzeStGdnpMNHJrL24wTGIxc0cwM3JtL1UzbVQwM3RXMU9xcG0wT21uVXFUNExkc0dmekdrMWU2ZGJlVm05QlkxMW1uMDBzUXMxVFhPU2Fqdk5UTmJmbUxFUG1kMWdOVHBxT2ovVm8wQnF0ZVB5aVVCZi94U3pMNmEyelVsVm5mV25KMmhXUmpQVm1jeW45''@;'; + put 'put ''ZzZ6RjJXcVlIblRTdk0zbXo5VldsWEdUck5hbXNsOFgvdTgyVCt5Nkc0eSsrOW1aMWV1amJjbEs4ZlBmYXhTMlRmT0xaenVqay9CdldjcVBtdjNVdkRlTlpGWlNXNm5ubDI3aWwwd3VXRkhtTUtiV0E3VGNBMTdXTks1UzltM3IyTlBUenIzRUx1amxsdm5Ic3J2VmJYc1EzWEVNTnpFUGplY25l''@;'; + put 'put ''NVdmdmVwSnlxdGwzK0dYZThPZHEybHZMdU50ZHZiZEhiMHpWeHZDenZmWE90OVgyYjNhMmVIL0NNTzRGdTgwWjNGRCt4VzJZVHpFdkE0Ty9Gb3RGaFBiZU4rUmE2dzcyWVJKRjVoS216QVBlUzE3SFlsR01sM2pXZEVrM0UxZHoyYnU1eUhCUnc5YU5ydE1qNXRiR2NHUnpKODFQakh4czhabjdD''@;'; + put 'put ''c2pUTzdCRi9rZSs3RnR5VW5SVklzZVNtUndWTGFkMGYvQTNJRm9iY0FBUUFBQUFvQUhBQWVBQUZFUmt4VUFBZ0FCQUFBQUFELy93QUFBQUFBQUhqYVkyQm04bVdLWUdCbFlHSHFBdElNRE40UW1qR09RWVRSRE1obllHZUFBeVFtQTBPb2Q3Z2Znd09EZ3VvZlp1bi94Z3dNek9jWURSVVlHQ2FE''@;'; + put 'put ''NUpoWW1kWURLUVVHSmdDOGlRb3JBQUFBZU5xMWsxbFFqbEVjeG4vL3QzMFJLaFQxOXZacDAwYWlGRVgycGNpK2xLelpzcS9aR3VzUVEwVlN5SjRrb3hrVFUxTzJHKzY0TldPTXZzK1ZXKzRNSGNkWFREUE11SEptM25QZWM4NmM1NXg1bnQ4ZmNLSHJDMEYwajFUcW1Uam5ybEtzeHlXTXc0MkJs''@;'; + put 'put ''SENMT3U3U1NCUE50TkFtSGhJZ2d5Uk1Ca3VjSkVtcXBFdW1USlVjeVpOQ0taSVNJOVY0WmJ4M2lUS1BtNjNtRS9PTDVXNEZXc0ZXcUdXem9xeGhWcnAxMytZZitVMHBmWWZGalI3YWoybmptZmhLZnpIRkpyR1NLQ21TSmhtU0pkbVNLd1d5UVRacjdaZkdXNjE5eUd3eDI4M1BsbUVGV0VGV2lG''@;'; + put 'put ''TjdxSlgyUzF0OVZDL1VjL1ZVdGF0VzlVZzFxNGVxU1RXcUJsV3Y2dFExVmF0cVZMV3FVcFdxUXBXcE02cFVuZWg4MDVuVm1mVDlrNlBjVWVESWQ4VFlCOXI5N0Q1Mkw3dWIzZWo0MnZHNTQvQ0hrSGZKWFY3OXArWnVlRHVUNEk5YkJLUDd6L2lIUnRkSkYxeDFkdTU0NElrWDN2amdTeS84NkUw''@;'; + put 'put ''Zit1SlBBSUgwb3o4RENDSllaenhJcHg2S1NaaE9KQndiZzRrZ2tpaWlpV0VJc2NRUlR3S0pER1VZU1F3bm1SR01KSVZVUnBGR09xTVpRd2Faak5YTVpER2VDVXhrRXBPWndsU21NWjBaWkpQRFRHYVJ5MnptTUpkNXpHY0JDMW5FWWsxYUh2a3NwWUJsTEdlRmZ2OE9kcktiWWc1eG5OT1VVMFlG''@;'; + put 'put ''NXpsSEpWVlVjNUVhTG5HRnk5UnlsZXZjMUJUOVpQUTJEWnFsZTVxbW4yMFZxN1VkMFd6Z2JMYzM2MW1qKzEyYytPMVc0VjhjdkVBOW0xblpZMlV0bXlSR2oxdll6akhzT0NSYzh4a3BVYm9DSXJpamR4NmdhWllFWFEveDNXZUtuR0hFc28yOWJHVWZlempBUVYxTCt6bkNVYjExbUZKT2NaTFh1''@;'; + put 'put ''cHA2c1U2OHhGdDgyQ2grbW4vUEg1RE5xdWg0Mm1OZ3dBTEtnVENESVlOcFBRTUQwMjRtVmdhRy95SE0wditObVhiLy84SjBqMG53LzVmL2ZpQStBT1lMRGdwNDJxMVdhWGZUUmhTVnZHVWpHMWxvVVV2SFRKeW0wY2lrRklJQkEwR0s3VUs2T0ZzclFXbWxPRW4zQmJyUmZWL3dyM2x5Mm5Qb04z''@;'; + put 'put ''NWE3eHZaSm9HRW52YlVIL1R1ekxzemI1dDVZektVSUdQZHJ3UkNMTjAxaHBhWEtMZDZ6YWRURnMwRTRiWm9ydnVVS2tSLzlScTlScU1oTjZ4OG5veUFERTh1dGd6VDhFTFhJVk9SQ0xjZFNpbXhLZWhlblRMVDExb3pacjlYYVZRb1YvSHpsQzRFSzlmOXZNeGJUVjlRdlk2cGhjQVNWR0pVQ2dJ''@;'; + put 'put ''UkoreG9rMll3MVI0Sm1tUDlIRFB2MVgwQmI1cVJvUDY2SDJKR3NLNmYwVHlqK2RBS2d5Q3d5TFNEUUpKUjk3ZUN3S0cwRXRnblU0amdXZGFyKzVTVkx1V2tpemdDTWtPSE1rckNMN0VaWnpkY3dScjIyRW84NEM5SWxRYWxaL05RZXFJcG1qQVF6MlVMQ0hMWkQrdFd0Qkw0TXNnSGdoWldmZWdz''@;'; + put 'put ''RHExdDM2R3NvaDdQYmhtcEpGTTVES1Vya1hIcFJwVGEyQ2F6QVFPVW5YV29Sd2wyZGNCcjNNMFlHNEozb0lVd1lFcTRxRjN0VmEyZUFjT3J1TFA1YnU3NzFONWE5Q2U3bURaYzhCQjNLQ3BOR1hGZGRMNE1pM05Ld29LVEhTOVJIUmt0SmlZR0RsaE9VMWhsV1BkRDI3M29rTklCdFFiNjB5aTJK''@;'; + put 'put ''ZlBCYk42aFFSV25VaFhhakJZZEdsSWdDa0dIdkt1OEhFQzZBUTN5YUFXalFZd2NHc1kySXpvbEFobG93QzROZWFGb2hvS0drRFNIUnRUU21oOW5OaGVES1JyY2tyY2RHbFZMeS83U2FqSnA1VEUvcHVjUHE5Z1k5dGI5ZUhnWUJZeGNHcmI1ek9Ja3UvRWgvZ3ppUStZa0twRXUxUDJZazRkbzNT''@;'; + put 'put ''YnF5MlpuOHhMTE90aEs5THdFVjRGbkFrUlNnLzgxek80dDFRRUZqQTFqVENKYkhoa1hXNlpwNmxxTktTTTJVcFUxbjRhbEt5bzBnTVBYRDhPaEswS1kvM04wMURTR0ROZHRodkhobkUxM2JPczQwalNPMk1ac2h5WlViTEtjUko1WkhsRnhtdVZqS3M2d2ZGekZXWlpIVlp4amFhbTRoK1VUS3U1''@;'; + put 'put ''bCthU0srMWcrbzJRbjc1UUxrV0VwaW1UZTRBdmkwT3d1NVdSWGVUTlIycnVVMDEzbHJVUjVUQmswYVArSCtKNUNmTWZnbDBCOExQT0lqK1Z4eE1kU0lqNldVNGlQWlFIeHNaeEdmQ3lmUm53c1p4QWZTNlZFV1I5VFI4SHNhQ2c4ZHNIVHBjVFZVM3hXaTRvY214emN3aE80QURWeFFCVmxWSkxj''@;'; + put 'put ''RVIvSnNEajZ1VzVwelVrNk1SdG56WW1LajBiR0FUNjdPek1QcTA4cWNWcjcreHg0WnVWaEk3aWQreHJuZVdQeUQ0Ti9peGRsS1Q1cFRuQndwNUFBZUx5L3c3Z1ZVY21oMDZwNHBPelEvRDlSY1lJYm9KOUJUWXpKZ2lpS0d0OTg1UEpLczFtVE5iUUtIMDhFT2l2YXdieHBUb3dqcFNXMHFFa2FB''@;'; + put 'put ''UzJEcmxuUU5Pcno3SzFtVVFwUmJtSy9zM3Nwb3Bqc1JSbk1nQ2tvNUtheHNPenZwRVJhV0R1cDZmVFJ3T1ZHMm91ZUxEVmJWbkdGdlFmdlk4ak5MSGszVWw2NEtTbnRSWnRRcDd6SUFnNjVrVDI0Sm9KYmFPK3lpbUpLV0tnaVBnaHRCZnZ0WTBRbUxUT0RMb0VpWkhHeXNnL3RpaDA1b29KMkF0''@;'; + put 'put ''OTYwaXJ2MjBMdHozWHlJRENiblc3blFaYVJvdk5kRmZWcWZWWFcyQ2hYcjl4Tkh3ZlR6ckN4NWhkRkdVOHVlOStlRk94WHB3UzVBa1pYZHIvdVNmSDJPOWJ0U2trKzJ4ZDJlZUoxU2hYeVg0QUhRKzZVOXlJYVJaR3pXS1VSejY5YmVESkZPU2pHUlhNY0YvVFNIdTJLVmQralhkaDM3YU5XWEZa''@;'; + put 'put ''VXNoOWwwRlYwMW03Q056NWZDT3BBS2dwYXBDSldlRHBrUHB1ZG12Q3hsTGdzUmR5elpOZEY5QjA4SVIzaXZ6akV0Zi9yM0hJVTNLTEtFbDFvMXduSkIyMGZLK2l0SmJ1VGh5cEdaKzI4YkdlaUhVazM2QnFDbmtndU9QNWU0QzZQRmVrVTd2UHpCOHhmd1hibStCaWRCcjZxNkF6RUV1ZXRnZ1NM''@;'; + put 'put ''S3Q3U1RxWmVVSHlFYVFud1JkVkNzd0o0Q2NCazhMSnFtWHFtRHFCbmxwbFRBVmhoRG9OVjVqQllZdzZEZGJXRHJuY1o2QlVnVTZOWDFZNlp6UGxBeVZ6QVBKUFJOZVpwZEoxNUdyM0dQSTF1c0UwUDRIVzJ5ZUFOdHNrZ1pKc01JdVpVQVRhWXc2REJIQWFiekdHd3BmMXlnYmExWDR6ZTFINHhl''@;'; + put 'put ''a3Y3eGVodDdSZWpkN1Jmak43VmZqRjZUL3ZGNkgzaytGeTNnQi9vRVYwRS9EQ0Jsd0EvNHFUcjBRSkdOL0dNdGptM0VzaWNqelhIYkhNK3dlTHozVjAvMVNPOTRyTUU4b3JQRThqMDI5aW5UZmdpZ1V6NE1vRk0rQXJjY25lL3IvVkkwNzlKSU5PL1RTRFR2OFBLTnVIN0JETGhod1F5NFVkd0wz''@;'; + put 'put ''VDMrMG1QTlAzbkJETDlsd1F5L1Zlc2JCTitTeUFUZms4Z0UrNm9uYjVNcXZObjFiV3BkNHZTVS9YYm5YZlkrUnRsTTdvc0FBQUFBUUFCLy84QUQzamF0WDBKZEZ6RmxXaFZ2ZTczZWxPcjk1YlUybHE5U2QydDF0SnF0ZlorV216dHEyMWsyUmF5c0MzSjJHQmJack94TWVDUUJRSWhKTTVrZzRT''@;'; + put 'put ''UVl6SWhZSlpBSUNReldTWWh6b0ovZnVZUEp3bVRTZUNmSkgreVRENGhrOG1BbnY2dHF2ZGFyYzA0ODgvWVVxdjd2VnYxcXU1K2I5MnFSaVkwdlp6RUh4ZDhTRUQ1eUkwS1VRQlZvUlJxUnUyb0R4WEtucTZPdHBaMFl6SWFDWllWRlhqc05xT09JRk50VE8rMyt5VjMwaDF3SjFPQlZESWxzYjhT''@;'; + put 'put ''dk5XdTBtdjBMNzBEVjFMYWV4V0dOVWduVS9qanlqZHgreHVkWGVlN3VzNmY3NnJ3Kzd1NnV2WjMrZTg2djcvQ3Y5OS8vdng1Ly83OWQyM2RlbjV1YS9rUGhGOTMrME4rK0xsam9XTHIxdUFzdk52cWIrdXEySCt5eVZzemR1elk0OGVPamRYTSsydjg4SU1RUVZ1WDMwU3Zrd3RzYmlHNUFtR01w''@;'; + put 'put ''aEZDMWtGRWlEQ2p3NExnRllaME9sMit6aHF5Mi9TU04rWk1DZ0ZQT05YUW1LejN1RjFpWVBTK2t1MkdSS0tpTEZGZFRpNG85YityOFpjbEVtWCtHb1NXbDFFblBvY2ZKaGRzRmNpRWtFMkExMWNSZlc0RnZOd096L1doTXRRdmI4MFhDZElMQkJPRUQ1aXgwV2dkdE5yeUJFa3lURnRNeEdDd0Qr''@;'; + put 'put ''b3dJZmxrQ0tHeTBwSmlhT1VyS2l6d3d2T2Q5dXcvcVNTR3BhUVVrQUpwOXB0T3N0K2t4SDRsZXBPUStFSHZRblE2ZWlaNmRYUy9aMzk4empNUDc4N0FsWG5QdDg3RXorREhIOThGQ0QyLzYvRmRuNE4vdXg1SGdKbXk1ZWRJTC9rektrRkJGRU1KT1JhTCtzdUxDcjBlbDkxc01raFdSUENBSGlQ''@;'; + put 'put ''Y0QvUENCTS9DQkwxb3FOUnVGd0JkUVJHSW5BcEgwaDV2S29FQmJXbWd0Y2NyaFNQdVV1eEdjTldLM1k3R1ZBTmNJTDBuRHUxKzk3NitnY241K2NVOXUyKzR1cWRuNE5oeDVWZzRHb3kvMmxqVGRHUlJrcnR0dTZlNm5kLzA3WmdZWHpTM2Qxakc5N1RhdmxLMDh5cnNET2FmTjlhVUtrZnJLL3dS''@;'; + put 'put ''MjlOSWo2cVcvMTJ3a21lQnNrN0FjZzFxUmQ4ZGZMSmdiS2NjTTJPOUNXTlJqK2VSaUF4RzBiQ0FkRG8wUXpDbGZCN2dYNWl4U0VRUThvVWgzK0NURVdoU2M5a21DRUJaTzJuR2dpWEpLdzM1NU9RR0xRZ0JXTm9NYmR4cWFrb08xOWFXbDd0Y0NOVzIxclkwTnBUWGxDY3F3NjR5VjJsUmdkTmh0''@;'; + put 'put ''OEZrckdHcjVJNDVLREk3Y0xJZXNPaXk0Z0JPNGdCRFk2QkNkTHM4U2JUbWZnZGV1ZmVwb1doMHVMWnVPQm9icXNQdjM2T0U5aXdtRW9GZ2RTS0E1NFppY0xGdWlONEtKbW9DQVhweEtqRmFXemVXU0l6QmF6VythbWtjZnpZZGl6ZWxxMk5wWlNJeFdsYzdWbFBESUFiVDhWZ1R2WVVvMy9pWC8w''@;'; + put 'put ''amVSYjZFeWxFY05hSU91YlUyRVM0cktTNHFNQmtGVWc2OExwQUJ5dGQ0QnNUT002Z0hZV09ZQWVhcHJ2YjdxeHVyVS82NFB4YXZFQ1ZQVEI4UkF4V2NnWEpuQnJlOGpXbXZLSGtSblpxWFQ5T1JEa2VBcldDcXBIaGthckZ6dnFWdnRMaWdicktoWVh2TjBMYjZ2cXFTNmJyRTljb25FcDdDdHBw''@;'; + put 'put ''b21Ta3oyUk9MOWRUbGpZL1ZUclYzVHdjck84T0prVVQxY0UzellMaDFxSDBndms4K1RscmlnY0xhMG9KNG9LSjY2UytwM1dNRnpjRzZGb1F3bFhIMExaQmxDM0xLTnFwQkdIbnhrRHRJWU9DT0ZWMGhCYTV5UjN5K0NQQTdmdlZ3MEZkWjZRc2U3a1cwajhibHEvQVkrUXJLUStJemVYcGNHMk1x''@;'; + put 'put ''SnUxbHMvQktuMXRjUEpnWkh4NGV6K3o2K2Rtei96TGV0ZTNDa1NOUGJPdG1iY1BRVnRiYVN0Q1dZeUdTNWdnS1R3d1BUMlFPUWcvejI1NDRjdVRDdHE0eDZPUG5ZNnh0QXUvSCs4amZvWG1VbGh0bWhucWFxZ0NYTUljQkFXTWRSaURXOHlMVzY4a004SzVIRC9vSElPZW1KdVdPdXBxQVB5WlJS''@;'; + put 'put ''b1NCcGh2VG9nVC9BeFhoQ1AvWUNCVGc3eW1sdkI1dktmYXl6eG9xUktrUmJxWHBSeSs3WU1VU0pTYUZkTHZnVTZBQ09ramdDTDhnQmw1MG1VV1NWeEJ3NlkxR20wNXZMWWlXVzYybDFWNnJYbWMzaUFadmhXUTNFOUhzeXJPNlRGZ1U3QzRoNE9DZ0JzbGVyUzl3dXdwcVhaSWhCMW9Rc1FsRVk3''@;'; + put 'put ''L0Q0a3VVNWhzOWZyUE9hRFNZSElhOFBKTW9tdktzQm9kWk1waDAxbkxSWnNndlRmZ3NEb2ZGVmFzcmRPYzVoRElUQlRZYThuV21mQ0lhamFMTm9yTWFEQ1lOM2wyb3EzVlpIQlRISFdpV0ZKSTJaRVpoT1lCMEF0YnRBRjRIellFRmRBRFVBWjVHZ090aHBzUnRvbFFVd3dGcURWUFVLaVpKNFpl''@;'; + put 'put ''dSt4TDg0S0lYWGxqNDhwZHBmNW5sUmZRTDlFRmtSVjRaeG85Nk5aNER3UWs2S00rQlNGVGs0SG84WVNtclRwU0hFOVhKYXhPMU5lWGxpZmJheXUyTnRLODY5TSs0QS9lQnRCYklia1E3MmtINUFrYUVZRVEyMnBuVDcvYlg0VHpsajdqdkVPT1pkckNaUDRIbm02bjFwMWRBQzJMc3haUTd6TWdV''@;'; + put 'put ''RklBcmNpM2tJZFU2V3JLV0VTLy9adms1L0IzeUszaXVYYmJTVHMvQ3MyL2dENlNxREc4NXE1dy9TMzcxOWlYRTdHWGQ4cHZrSHZJaXFMOHlGSmVyZ0J2WmpMbld3R0NvMlFCc05qQ3laYmJTQWcvVGsyQjZZcnExZXBDa0doTEFYRlN3U3VGSmhydUhoKytlbkh6ZjBORDdKdXRINC9IUit2cXhl''@;'; + put 'put ''SHlzM3JMN00vUHpEKy9lL2ZEOC9HZDJMM1pjdjNYcjllM3Q5TFdENFlBU05nMHlMeUtmWEFDa0ZBQmZBMXlyWTV5UGgreE9oam9wa2s3YUF5L2VsUHo2L2xPa2JIRG4yYVZ4eE5ySFlWSmhtRThCaXNvUnN3bW1BOXhBeUFCREoxT0gxQUdaUnN3RzJiM0JzRTRxaUdXd3BzV2xTS09xLy9JeGtL''@;'; + put 'put ''ZDZTVzdjVXB2Y1Zqays5MkRQZFpuK3lmdHhXcEhtdnB2Y0hxdHBxYXNkZkhmak5SMWJidTYrWVpFOXV4UndHWVZuVjZHTTNGWllBTStwd0pqQTAyRUlBOVNHZzBFL0FFL1d6UUJ6d2tBUTBzOVFKZUJsOGwrRktvTkJmekFrU1lWQVphcGtrdlhNN2tpcHBLZHg3ZkFrRmUzL2VIZDhLTFEzM2Q0''@;'; + put 'put ''MzJEODgzTkhYMTFRM0hoclkrOG0rNjl2N1d0cTN5emNNV1RLcGlhcEVVM1dpQmgvR2RmRm9LbDQxZEtKMlIyUGJoTjI2dmJOMWR3UG5nMUo0MlFsNE40RzJxNWFqRnZBMzhJQ29oemxnQkg3bkhLQ09tZGg4M1pEWmJNNHo1NEZNT1d4MHJDRi9CQ2Z0MVBNTUZHSUJuMVlldCtDdDUyWm1UdjNr''@;'; + put 'put ''M0N4K1FSay9kQTVJR0ZGK3pPa1RBeHcxd0hPS0tZNGNvQXZ6TEVTQXpyRWVBWTUwQUtFRHV5NElaSm9iOWRVNEFnK3R3dTRNQmhpT3dQVlJNVlFoUmFnd1NZMVpicnovd01EVTNvN0JvZmFSamgwbS9MenlWUkhlTGJSMzNUSml1WFpxY2t0RFNxNE40dXNXbjRvbXIrbmVlbTBMeDBFdGpHMEE2''@;'; + put 'put ''T2RERWRRbmI3RUJEdXpBUEFWWUo0U3dYcWNiRUVHeDZQU0NiaDVsamFzRVk5TjBSSEV4akRCU0hBNzRvWXVpWUNoc0FEOE5xU09pZW9PcGJJbExpUVFmSEZtMjh5VHhJd2M3dW03c3YvZmU0WHQySHQvVkh1aU8xUTRsZE9WWE54ZzcvS010ZFlQNUJUZmlMelhzNitvKzFQYVZUeDU4ZEdaNHBx''@;'; + put 'put ''eXNlYUU3VktVOFd0RmNudTVNeGo5TThadUVpUVNZL0pUSnhXQm9NSk1lcW5jdzg3M0Ixd1Z2aHpxUTJKL3l1MEVoUEtBOGpQK2cvTzk3U2Z2aTFVc1hxSDhSQlR4MHFuaElvUjY1MHlVUzBLNERVczcwVlMxaGdPbGpJQkRURXBXVkZBT1ZxY3FHbW1xS2g0cHlpb2U0a2FxdGpUd01GVE01M3BX''@;'; + put 'put ''WHZnZmJaQ1hVeC9qWGsxdUhNODJkV3hhN3VvLzNkRFhKUTcwbkIrdEcraHNiKzBacTI4ZGpYUkN3eE1iYkxUVlRyVzFUM29MUnB1YnQ4ZXJ0VGMyajNnSzRzck1HUDlRWXJVdzNWc1VhQk9WU1U3eTBwb2lRb3BwUzZrUVJWQTl6SEZxaGRTblFGK2l0TjRMQUdnQnJPcGlzSHNSVlQrYUI2UVdZ''@;'; + put 'put ''b1NCNEJuUHNnVVpyZnhtZFl5Z1lZclQyY0ZKejRRVXJURCtvYzNhQTVlYmFFV2o5OSt1b0xEUHFOMU15VjFLQ2t4ZFhVNWxUWG5rRXlNeklUZWZBN0FXeGdHM3dVdDFOZFRVYlhpRVBzdlE4eUxKWUVMSjRMUjZIalJrUlVYVXROQ05DTmpBb0ZlcGZmRVN6TE1wZDJqdUl2WmlkSkJhSXZmSVJz''@;'; + put 'put ''a3ZJRG9pNkZSbWZ3dmg1Zk91VHlSamx3elRhVGtTeUcvaFFmRVlrNERzNVV5RjNIbmFuOFNYbGIvQkJISm45MGR5REQ4NHp1ZXRBajVGQy9DZmdQQWwxREQ1WkJtR0JBMUV2VnBqVjRrWTdCcysvZ0hJeWplUVFoQkJraDZySWlUQTg5UnkxOEZTVFV6VkEvM2ZnbnlvaDl2dW5oWk1MTUo0K0dJ''@;'; + put 'put ''OVhHNDhBNDBsWDQ1VGVyZS9EQjJFOGw1UzZGeDk4Y081SHN6K2k0M0V1djRsZkFkNXdJejlxbDFzMG5uQUMrd3RVbWdRZEVnN0F5TGp6UnJWaVZrZDVQQjYvcHp6a0RRYVpiblNxQWk1RlZyamV2U3JLZldKb2IwZjljR2QvOVEyOW5mdlQ4K1BIdkJydTc5WTFWNFliK3dhU3JmVTdHN3V2Yyt6''@;'; + put 'put ''NVB5c0JNRUh4NWZjTFc4Z2pTRVlqNkpMczlwZVhDUWFoR3hzTkRxd3p0cmNSRVZpWVIxalZFUGZxc0hFUzFEaEVUVlM3aWlicUV1NURxdVlDdldBd0NET2dkTzBHR3BaVjBVZ09pR0V3Q29iNWQyeXNCOExVVVRVdElQMzg1cTBrU1p4RW9pak5zT2FqRUpBVmRBSVRkNDUwRHZkdGhWbGt3dUZZ''@;'; + put 'put ''S0JnT1d5VGZPdGVpZ2dZZFdRWHE4ZEt3aEF0U1BjVnZqdGRSenp4NzBDZ1ozTEFpYlowWDVoYS9kblQrQy91YmQ5WFZ0bHVLUnhLRDA1MEhXMnE2blpaNWE1N1pXdTRyYnFpWStzVDAzQmZtOWp3NDAzWWc1V28rMXUzdkYzRWlGcEhERGRFYkRueGg3c2pYanUxOWVIcjhXRk1zRW83dEcrcysz''@;'; + put 'put ''bDNsYnpQMGRUU08yb3JMS3JlMzcvakE5cmtuRHV6NXhKNlM4cEtnSDNzbk1yWllmYXkzcXJxUjJ4WW52THdLZWxrQ0N4dVRLNDFZeDRKN0hYQzBEcXdydFhVUUdWQVB4OENjWGU2eUZvQjFsVmdJR2pGalVxcDhzZUVlWEFZL2Q4K2VPSEhxRkxtd05QNXI3RmYrQmRBT1VRZDVIL1NmRDU0UDQx''@;'; + put 'put ''clFYL0FFRWVSRnJ5TjY2bmFvQ1JnSmM4K1lQcXVvMEc0ckx5MzBGL205Ymx1QnZTQldibUNPS2NPOHBwLzltRm5aR0hZN3RUZGplTHgxVDhOc1cxZlQvb3p5R1p4TXRMWW12blF4MmRtWnZFZ3V4RWZyOWplVTdHNXEzRkdMUDFJWEN0YzlydnhUT2haTC93UFZDOVdnZHo4R3NsV0NHdVE2Q09O''@;'; + put 'put ''Um9SbHNhUkdZV1JBdFZYOTVWaVdKNEVJSktnNkh3alJKbEdVTmoyWkhjK21PRzgvdjIzZCs3OEM3azFQbFUzVWRoMlg1Y0VmZGxIOW4vWHNHTExPZm5abDVaTGExWVZzbzFuVkU3anpTRlExUHBGb1piU2p1dnNWOEh6ZUxKTEtvWWtHMGlpcUwyZVV3dXkzdWNMbWVva2hqemhnT3FVd1l3L2F4''@;'; + put 'put ''TjQ0K3VXL2ZrMGZmUU10OVJ6T1pvMzEza2dzN1A3bHYzNE03ajdVZTdPNWVhRldTRkFjUW1ZTHR1UURxdUVhT2F6cU5LaERkTk9nU2E2Nkh5angvTTA5RFVYM2lWdldiM2UvK0I3eFBlUkMvZCtrdG9pZnQ1eGVmV1NRWEZybVBwZlZ2UkZWeVdPc2ZlRTNIZXRYY0FMaGhSRWJhTStVejFyTTlv''@;'; + put 'put ''UFY3bW5iNnhLTHlPdStVMCsxdmdXNSsxQ28zMllCY2R2RE55N0FPbUF3NnBscFJyME9NelZhMEluT1J3Qzl3QXZFQ1BBRHoyM05NNG5vaXBnTDRYVGhVZDI1dzl0RjkreDZkSGZwdzNWVDVnV1RtT2xtK0xoTVpLMzhNbjFUK05kbk9TZG1XekpLeXlIdGFtL2RIR1Y0amNsRDFKUStBRDB2blRQ''@;'; + put 'put ''TkorV2d0UGpHZE1md200WlY4OUxUeXQ2ZFA0MGtxVmppay9KUmNVSDZOQzZDWGZtajFMWmJMcEhtSW5GaUVoM0VRaVBSellRUllPOWlPZndKWUcrVWs1dnJqQWU1N3dlQm1CR0FvTDBPOURlVTdRenBvdnVMcXd5aW91RDE1dW1LN295K1M3RHpWdXRCbGtlc25nalg5TGZnbHBhN25jQnVuN3lo''@;'; + put 'put ''MGRaN05zMXd1TVJyMEJCeDBQSUJaeGt6ZytVeW53OEh0WWRLT2swWWNnTkF4TUhvYVYzOU0rUjJPZlB6MTZkTXd1U2Z4bVBKRDVYWmN1ZjhmZUwvVXFTaUZmdlhVZDJTRHByMmhxNUdHT2ozUzIrMTAwQ0hnbGFRZEZGTGcxQ0x3M2RJM1dYdVFJOEc2TWk1cGczRzU3TnE0ZkJBMEJPeG1vTURZ''@;'; + put 'put ''NmRkZVAzWHE5ZGZvbUtieEk0RDg3OUcvU2tydGszeVI4WEtwN0pNSVdkZWpJOXNqaGlFRldILzQwS2xUeWpuYVh3bCtIZnA3WFNtaGNrNTVXUG52aUhXNTJ0bDcvcHByenUvdE9KVEpIT3JndWtkVk9yT1B6TXg4ZG5heDYwaW5mS1NMY3l6VE81UmZqN1A4bHB0R3F6QUtFRlVCMDlURlNySWNw''@;'; + put 'put ''bWpOY3pueTNGYTNQVnd1MGtTNVA2dDczSUdzYnU3RnNmNGJ1N3R2N0gvaU5DN3BIQjN0L0RTNTBMTFExYlhROGl1OHE3MmhvZjAxbElzREYvWHQ1WHFhN0NaNmdlaDFvUFFFQ0pPemdZMHVKMnZvZHJzajduQjFPRUpWTU5oeXJ4VEpGV01ZalM0ZFNYc2JWMkdGS01HS0xWMEROVWZiOW1yb1VY''@;'; + put 'put ''N1dNdFcxSjVERkR5NjdOdDQyTEFjcnMzaDZvMnBrZUt5MWV6MmVUZ0NlckRDV3BGeWJSK1dheG9yVWRCNEFSMFNORlVXQk1MR0VJYnZ0UURwazlWTXA5OGI4RVloTjdYN1YvL0txY1hVTTQ5OTg1cTdUREcyN2hyNmdESDZhWWUxWHYySjRHMTRzZUpQampjdEcyZktmU0MvNUNxcEVkWExDQzVG''@;'; + put 'put ''aEFWZ3NSSEl4UmozREhLTlZpU0toNmlERkdCVnhIcXBDYUpNZ3EzUWZpM3BVdHZyOXVaYSsrVnZiZS95ZDdXTnpyWmxqdlNPM04vWlVIMGdtTy90MjNueEwrNDFqNXViR3FlbUdTSEdnME9xc0h1NW9uV21zcTlrVGlhWkNsVlV1MzlSa3gweUtqVFdveHZLU21rUEpobjg4NmFHNnlqZ0E4VjhB''@;'; + put 'put ''SkFhOVNocGVQUVhoMzZJcXgvM0FJNDlDZS9CLzVWSTFFWTl4N3R6Y3lPVUt1alNEVEJVWEQzZzBIWWI5ZDQrY1Rvd25HOFlUcDRidjNta1p1V2NudmxzNTJiU3J2bjVYRTM2M2N0UE9lMFk0WGwwdzFuOW04U284UzgvaVZkQ2Fxc0xrV2dkY2RxNTFqRFFiNzhQa241VmYzS1A4NHU2Zi9JVHFY''@;'; + put 'put ''UGo5TXpHeXZnb1IwcFV5ZVlLK1RGVHZnN0tnYXovTWxMUEpnN1p3MlBUVWtsSUZCRDlDd0l3RGhlLzcwQ1B2L2N5SDN2ZmowMTk0SEJTNTRzSy9wYitnT1JTRjhIRkM3RUUrejNRYjZFYWpDRjBUbXN1bGZJZTVhWEU0SEhhS1Z4aGxCSHcySWVsTkovRmphUG5Eeno3M0liUzhmTzdaNXg3QU81''@;'; + put 'put ''WFB2ZmttbnNRNzMzd1QralNvZXR5QVN1UWlrY3BmVnJtcGticURMZlVZMlVoQnMrRUM1UThmK3VyWDdsUCs3eG5nd01lVml6aXRiRk1VTGU2ZjFtdyt4ZU5LMmlzYisyZlRYZzQ3RzJtYXB3REE4Q2Z4cmNyN1FaMi9HNTlaK3FjWi9MUEZHYVdDMi8yQjVWdnhDUGsrajh3OEcwUm10aXVQek1E''@;'; + put 'put ''T3V2MERXUGZ3dzhyYjVQdmJsblpzWTdoZC92Zmw1L0NQTnNsWkN1RDdtczdpWFR4bFNmMlFXM0hkNnZIUWxBVWJEOU1ENm5pMGJCdDE1bWptbFk0SDVZN0hDOFlpQlg1VTljTVBZNTN5ZGoxNWJOdmJGeml0YS9DRCtNdWNKNThTOS9mSUhyQU1MQXNKSTZNWjJSdlVETXBUSXVweEpwMlUzQmNu''@;'; + put 'put ''UDc3NzBLRmR3RHUvLytZMzZaeVU1VU5rWXZsRmVHZzU2Mk9USEREdFFnSUNFTEo5NlF0Ynh2anpNeVNEdytRVmFPdGxiUzJZeHE4STNlREFZSXpZVTlQZVFHYnh4aDNrNjU2UDh2Z2lBakpMaUozbE0yNlh2WVZZMEJXQU1YRkFGRkJXU2tROXNJU29oNGpRQlNnckIzaTlTR2k0SnVobWFEeFFP''@;'; + put 'put ''R2pBb29obVZGYjJnZnUwSG9RS0pJUFQvTG9wMmEybFFYaXFKeGdPT0kyQVcrUnhBM0p6VFlSWERZTWJhUjRrcGEyWDRidHZ1Ymw0S3BIZVdkKzh0Nld2djcycll5UjYvVjdycUtsbFMwSnVqaFA3emZ1VWl4MkJTTlZnWGYxSXZOaGEzeFBaMGFpMEpTSXRycHBnTUs2dU01TlpzR2NPVklwK3hL''@;'; + put 'put ''ZG55c2M2d1lTUm5nejR0QStBaG9FcGZydUVNc2xnTnF0VHFLYnc2TlRCMVBrNFYvblhBbEdQYjFXeVR3MlUvZHJhNCthQUFKTnpXNHNvVnNGTVFUenNja0tNNkN4MWxoUjZZVFoydTNOTitqQkM1Y2ZPTWtrcks0NzQrY1B0N1lkN212ZVVuVHhadHFlNWZQdjJUbmxpUWliMkxiZU9qSnphVWxj''@;'; + put 'put ''OVFWNVUvcU82VGhtOHVyOS9lcnEvLzJyZ3IwckFtUjU0NVhJeFdPSG1NWmpuc2pIWUg4OE1EZDArMEh3Z1BPSHVLSS8yUmVISG4vRk1ST2JhTEFPbisvcE9EVlJIK2dxS3E0ZmoxY1BWSllXOVZRbk92M0VZMDFhVmpsK1RUWGFJandWR1FwVm9GSHVNSUN5OHlDVmEvZ3JSMWdJeGpwVllpcEp6''@;'; + put 'put ''ckVZMENtaTlMQ0FqbW5xWFFqTmR0eHBtUGRFYzRZQ2RFZzJ2NFg2UDEwNXlpRWEyQXEyYWVoamxtdmFVVFFEQk9vRnc1TVdsTFdQeDJpMm5Sa1p1M1ZJYngrTFN3MW1pWldVOEJuVHpBREZrdVoxUWdtSG10ZWxBNytySWdlem8xREdyM09YMXdwOFNiM0ZSSVRSMVF6Ukd4eGprNU1wMTR2elVh''@;'; + put 'put ''eE1sUHhBVjd4enlEUHR2YVI2NHRYL3JMZjJqaTIzS1NmTnd1bUU0RDl2TTNhbTlwWjZ4UVBYV1V5TkR0MjRkdW5lbXNSdHZhVXNtMjZqdUFrY2JMNUQvQVk4OUk1dHNXTlJEbkNoU0tsSUNGU05SMU0rQXgxYkFraDFvV2dmMHM2dkd6c2RyQ0xJd25vMWc1Q0lJUWtSUVRmUHJid0k1VEtFQVcr''@;'; + put 'put ''eVRKQjlZZU9yZDJPbHlIOHUyYWY3V3Y5eDQ0ODJEZ3hOeVNhc25ZUFRsZTBxSS9vQ3lGMy82UUdQbmRvOXp4R2lxS0FKY1I1ZTNrdzdBZFJtS29ZOXdIblNVWXIxZ3cwUmNTUkw3MkVYZDZvdXFuaWtIVlFrbVNDVHpNQmxoUmdLRzV1cUJrY1hKdEd3V2hHcFltQWNGUkd2QVFNdVdseU5VSGl1''@;'; + put 'put ''UGhvTXduckp3S0JTa1doYmJWY1hBNDhkMnZKcmxVcXRZcmdNVVF1ZU5sZFcrcXhKRHU4cDJwN3NPdGJVZDZrcGZYVHcyTnRiUlBqYmFRZlJLZmRkOFM3aHNxckNrcDdVN21zZ2M3ZTA5MmxGYk5heThiNnlqWTNTMG8yTU02QXNlT1NsaDhjUFJaKzEwS1ZzbHJSY3gwWU1yTTNwbUxVaFdOS3ZV''@;'; + put 'put ''MjlhTmJzT2RsWXNzODZMZUFXcm1BUUpjeUdsM0JsdzBSVUZWSVJDVXo0a0c3VzZZS0Q0M1dYZFRlMjNEd01tVEJWY2xpVDI1dTBYNUVxNUxkWGNsbEpkQW9zTFZYSFpvcHVmYjVHZmd2K1dqclh6SW5tekN2SUJ5a0YzMWozMHkrS1J3Q3p5SStaekxVOVExeWJmbVdWZ1dYYjhtaXk2Qk43Ry9x''@;'; + put 'put ''cXFrdUtxcXVPUGtTYkl0V2t6ZkZrZEhsdDZpejEvK3p2S0krbndmMmsrdEVoR3NvT095a3FIUEdZc2dNSmJXN1JVQkt6NGQ0M29FQUFKaVMyT3JiNElPWWhsK242WEk2M0hhMmVpa2RUbiszQnlEbUIzcFlxTTkzK1MzZWtwT2J1dGFHZkxiYjVrTjB6cXhvb2k0bDE3cjJiR1NHNGdCM2MxbzVr''@;'; + put 'put ''dEdGaXhxbExkelUwbkhoVmZSM001TlkrNE5vRFlFM2RQczQ2bzdVMVBQT2V4TzVwVmk2bEF4V3dmKzgxVXYzL2RBLzhtVFA3OGZseXF2dlR4OEIxaXpIWCtpNDZFVkdsOGwxTDlxNDhNd1UxOVVUY3lvQXpEbjVHcDg3Sk9Xekp1YSt1Sks4cVliNkFXcWw4OFQrRnZZQVhJZlFGYzlWMTVFc0I2''@;'; + put 'put ''ckZzaERGWTUreGlDSmdsNXZIOVRSbFdVMkpkQkk4Sm5lRmVFdUVjWEM3TTBwbGk0S29Jb0E4REJ3c1JIVTBsb3VYczNPOWJUU0prbCtNRmwzYzFPOFBuTnpVM1dkZlBLa2E2aTJjYkxBdWF0RjQrOVVzck85UnZtbTlwZm90NGJqRFlucUZKOURONU5STzhqT09MV2tXTENBWHRJc3FaT0ZjbnFx''@;'; + put 'put ''amV5NVVzajRhcDE4WGxZSXBUVkNXTnNyVWltc3o1SENwcWp5QXRGdkNURmZqZm9kRXpDdU5mbVh3bmZNdjNndW4zK2hMc2VaZ1FIMkd1Mkx4Y0RwNkkvRitxT3F3ekZ3cXEvdjlNQUMrQnZ4NFdydWVIQ2RzQlYwL0N5TWgvb2NoNW1uU0V5NVBnZnpBRVNCK3RVNTNockZrcE43Q0V3N3JIVWtj''@;'; + put 'put ''MkN1MEtsei83Vk9uVUtlbWxqbDAxSC9hVHY0VDN3dVoxUS9tRHRSbVB2QjhFRVFWdnZCMmVrVjV2ZzFnNXB4WWs2U2ZZM0x0UXJteXQyZjFKVzRQL3FsMGJkWDNKOHhaWExGKzhGb0s3eWNJRlM5ZFQ1clpzVUpmQloyWmluQkRlSWVLL01SM0JvenIzaXkxRDE0RGhRTTB6Q094cVJiazdrZnoy''@;'; + put 'put ''YTJ6WjA4aWY5WDI4S3VBZVV0b3QvUFphaDgrVTM4QTNoZUpmV1JQZkJBTDBUbjRDV3pKVUExNVZPNFVjb252aWJsRTk0ZzQxT0t2YVdFS3VadjM1SkliOXNWU3RTbE04UHh1cW5taHJsNE1qaGM0WSs1b3ZHbWdlVFIzWmFxMEk2MmtnS2ZMOThXYkk3WERsVDVTNmE4QllWdW05dVdsMStScVIr''@;'; + put 'put ''WW9qNFhqSFdCZkFoOHJobzU3c1VpVFRtRGEzaVcyaFF5VFJjeEFCc1EzdTNsN2lCemtad1YxRWNLOFhVMXUxb1RCY3hJRjlVYTAzakIwMW9pVHd3TzNuempqU1dlZkoreHhPblozb205Qis2Nzc0RHlIMFVWSmlPekNTRFBQcUxuZXNhWjlVWlZQUU1xUnJXZU9YR2xWN3VxR29DVlVKTHJHVmZB''@;'; + put 'put ''RldEckVUazhSRzBXRzVXZCtLaDZhZEtVRFhETVc2QmFRTm5nZnVVU1ZUYTRWNjBoQXQ5TnI5VVFhVmtWelUrME8xajA3dVRwSDhjZEgvblFuVDg5RHU3UGUvRXQxRml6WEk5UUMrM1g1NUhzbDg4akZadzhmSHp1aGtNbm56aHk1UG9qME9PbjhDejlYWG9MWDZNOHRKTHZBbytUMTZ5WkpCM1cw''@;'; + put 'put ''WlFYelNwQTN3TEpXYVJ3T0J4NmxyeVVBczRJVFNaSlR2eVIyODdjOVkwWDNuM1RUWGU5OEkzSEg4ZUdwWWNmZmx2NU0rdDNlWWcwUWI4MldyMWpOdEFoVTJZbGF0ZVVVZmZTc2ZzRWRmWEI0Y3hsMUF3VzJDeEU2UVB0M3FKQVdjTGwrZWtkZjNQZmJUOXR2dVdMMXJ5ZHpvb0VNU3EzNFR1WFhy''@;'; + put 'put ''bVA4UHBHZUhrZG5yZEp2c20rYWI1Sm92bW1CSFlvYitMSHNmSTc3RkVHcDNEbm9Tbmw3dyt4M09YeUxueVl2SUQ4cUZJT0ZiQjhJRmhxM09jdnAzbGdtc3VjVkFVYm8xRzdoOXB3bW9KTWczWkpnYmhGUU5JZ3JpRnVMMXUrbEtpb1NUaC9Ob3FyRzFKeEhOdTd6ZFRjNU1iRGtUQjJOeldiUGhY''@;'; + put 'put ''dGF6cFRFeDJPMXQ3VzNGZHBHRFo0SStHN0pvdXM2ZXAzaGFzOGhtRk9zN25sNTlEZnNmelU1clY4NEVmTTdkeXAxZFZoaU5WMjRldlpQQUEvQnBZL3N1VVQxT2ZIakVjeG1sUXIwaEFlcFNYblJITEZ2R0RYSWcyTjZUQk1KNEhCWlNNd0FRL1RWVjR3RjFLRURqMFVHYUpETjI2YmplRjRRd1BN''@;'; + put 'put ''YVhiYmxNRlRGWDVYZGRwYU5IbFhPT0tGZVZUMk5kOVdDL09xT2RQVUY1V1dsMUVLUi9COStHbTdoUE1RVVg2RGpFOGgvTHp5RzFhdFFXMWh6L0pWNkJkTXYrYXoxVE02T0dxUW1WUE9FbXRPdW02MTJnRm16aVV2aUFUL0p2bU1XcnJRZTEvSmRtTFhxaFdXdHVDWCtUTXFsNThqZWpLTUNsRTV4''@;'; + put 'put ''VXBKY1dHQngrMTA1RnQwMk1MWHllQ3BPOVRFSWtiRFJhem1Na2pyM0xrT3BTWHVsS0RoaUIyaTF5Q0UxZUFCNEsvdjI5VitvS1ZsZjhldTJ1M2xFeFcxOVlFSjVaUHBlRHhOTEhKUDN2RFJUT2JJY0Y1WGh4aXQ2QXVibEJmTmtkNTNiWGZpbEhON2t0VnAwcnpwaTZnWWRjc3kwSklXT2lHSjFr''@;'; + put 'put ''OUx1RjhQY1IzR0VtRkxNaXd5b3hWUGtzU1RBWWhYcEJYYm5hRWdtQmJxM0lYYy9sU2FWWml1MHZnbG1KYkhrZW1sZnh6dDdtNWQ2TjV5VzhtT3ZQNVlmZGVUVDg3TnBlbytNWGkyNTNDYnV0SjM2K0FuVUU1dTJJT2E1VVlYUmtZOEFOR2x4TUtTT1JFVGNKbkF1Qjh3c1QwTnZDNlA0bExiczJB''@;'; + put 'put ''ejAxMExiRHVJV3l0NmhWOG01UGpySDNqaGhSZk9QUC84OC9mOWttYVRjYy9nbHNHREIrRUZINklwWlVhckRCbkM3eU1YV1cxUlBjdENSbWhoTGZBdFcxQ1kwUXNVVVhoMGcrb2ltcURNalQ3cWM5N3ZDd2FMQ2tQQm9tZUNJZmFYRE5HLzRZS2lrUFlYZURXQzZva1JmOXRXZ1dNNlpCTndETDJt''@;'; + put 'put ''NWtVSDhMM2szSlhrVkdrZFVBYVBLRStUYzROWG1sUDFTb0V2TGo2d2c3eml1WlBMc0gvNVpkSk9uZ0JLQjJTSXdObUN6MjNVbk41SkxSZExxN1BsbERDekJGanpkK2lDTWwxWHNmWWVhbTJlNjhSdGUyN2VnOHZxZDdXMDdxbGZLaWQzTDkwRWZUZWo3Nkh2NE4yQXRGTFpsNk1RQ0ZVVm96a0Z2''@;'; + put 'put ''NDI1Mkl0R1MwdWkwWkx2UlV0TG8vUlh6UmN2dDRNWk1ZUGR1cEhOTGQrRmljNXBKRHdoSVlCQnR0SjhCRGoyQXNHNm80aXVYUWhrZmtXYjdtVXJyZUR5TVJCZ3JOczJnK0YydWdCNW5jRmdrTnBwaWpsZVIxNFJYbFdRU2ZmRy9MU3FOVkZVYnlzbzhUc0w3WFpIbnF1OHUwQWZENWVFRTdhOEJx''@;'; + put 'put ''OGpQODltY2cybDJYNmVPTkRjeW1nZTExT2F4OUhyZkQvUDhnRCtKZE5MZnRRcGQ1UUI1N3RnWUc3cXpRNGdQU0lDTGRHam1CTTFiY1hLYXlFeVJzaGZYdWgxMmxXTlJZTmlsS3V4MUJLaWxUUVkzVUtERzFRbDFyeTJNR3RGb3luWHJpM05RbXdPck1aSHVNTldRVmZnN0JMRVliZWp6eVBEVXdR''@;'; + put 'put ''LytYbW1hRGVBT1FqNmVHT1lFeG9NbHRCRG04QWN5OExrb1k5dUFuTTgrNnc1OUdFT1E5YkN2Snp0eHd4OHVRb0dhQUEraS9CSFZsdmtRRnZsYmp0VmpSVGxCb1JCQVJtUWpoaDBCNHlnRjhWcGNEUFZwU1k5ZDVSWU5PZXdPYUJ4dnFxYnpLQW9zVmJJa3FMMVRYNDN0Z3Zra0ZiUXNvd0dQNERm''@;'; + put 'put ''VDdZdHZmVXRYdGx5NTUza3dxTHlHTjZoUE1aclVkcFpEVkVLRzJWL0ZSYjFVVUlnTEFmMVdJSjF1TmdCSEd6SFJCQUhTdW5tS2M3OTFiUWFSTUJINFFYcHJsL0pNVEoxcnNac1lPajJ3dGg5TEJmcGdFWUoyZ2hoM1cxWDNLcVVibWxhMVVvNDlZN041UGphRmlCOUF0bS9VVU8rVmtEVENpblVF''@;'; + put 'put ''SXFDRlByZDFQTHdkRzQrVmpYRldtRmNFNE5vaFFzdlRmbDNKazcyV1BWbGF5WFZPL25BanJXbFZIUFI4RVJkaTg2L1dvQ2JUQWMrdm5OMWFSWHdGYXRCWW54ZXFjckNDY1pYT0ljLzE4SWNSSTl0QW5OQ2d3RlpPTG9KelBGc1AzUHduOEdzOFBueTkyZ05EM3RXbkk5bitmM3IrZ0dteGwwNU1B''@;'; + put 'put ''ZkJ1cStCV2Y0dHdBVFplT0o4UE11UHI0TUJhNFhqYkR5OG43bmxSMWFQQjJTcUNsNSt5V29hU2xDYjNMemEwNWcyc1BVSlk0NnJrWjhQZjByeWk5bitSRGMweXdPN1kxckpKYkNBS1dubkplVzBHTTJkbE1ENDR4L3hnclMrdmpkMjhJcTBMK0RIc2xWcE9MQ0lpNWErd1d2VC9uYnhhY0FCcTdk''@;'; + put 'put ''aGVxVk8xU3VmV1ljblZrUEM4RlN2MHZhVDYzVFBXcGlEdUdvVG1CTWFETkQySzV2QUhNdkM1S0huTm9FNW5uM1dISHA2alE2anRXRzNRN3hTQXBaQWZFWkV1RFlXaW9CWVJOTGV0RmZ5NG8vY2VlZkFuV2VIejk0eGNNZWR0NS9OdmorTDJPS3lWalBqQlJzVVJYZXA4YTBMNjBobHhGZmtOWXQ2''@;'; + put 'put ''SFJoYXZURGdZMWVGbktzWXJxcjVsZ0tXU2FFbEE1NUJjZFdTSXpnWHVjdFJIcjZHS09hdUQ4cldpb3FLYUVWVjJCRnhzQjBpMlZKektaQ3RxcWN4SXZKNE1hOTgxVkZPaUdCUGtud3ZlYzM1dmRmdXJqeStNNUVFbVQ1STN5bjVSUVc0cGlrRGtvMHJEMlhxbEI4Mlo0ajMxcDZaejg2MjFzelhu''@;'; + put 'put ''ZXFoRWwwenIveDZ1QXhmRXdDeGZxUHJTT2RFcC9KUWdOczZWaVBDNk51azhzQ2o2K1ZwRGN4QjlPTk5ZRTVvTUZsYnR4N21lTFlmelk3bHlEZjNsOW16MnRSbnZiQzZuNXg2SzFwSGxKQmp3QlY2SGRZZkVMRzZmSmJkUEFwbUs5L2p5dmZhdlBhdzN5YXg2akozTXFmcUtwU3R1anAxWWFYcVNo''@;'; + put 'put ''NWpWVmZIV2hjNnV4WmFidnAxUjBORCsrdHFYV0tTZkJka2Z1cFpNL2p0TkhmbEI0NG9CYVV2UU1BeHJ4VlRlL2p5c0lqVmxIV3hXbFk1bndYTXVUMGxtNXhCZjlBZkQ3RFZyblg3S21JNHBSVTZwVFJMUUpOZXZhM1hkbmNmYkUwbVdQWHVjS3ErczdNK1ZWSGQxbEpUMDNxS0dKdDIxdFh0Ykdv''@;'; + put 'put ''WUwrUVZ2SWRwNWU1Y1k3aXFvVEd1T0RudGVhM0JLNERySGpEdUJIVlBiWFJkQUJyY2szUDlrZ2FQcGJGYytKZXkxL01HY3E5ZnpQWS90elhudWhETXdwdFBjL21FNjhKOTRDTldvd1lrazBPRFQ1cm9pa3BGTVJEVkIzNkFHNXRJRXhaTjhHRFJLQkFraVFOZ3FjMEFVN1l4RERaTDRFeVlKUXBt''@;'; + put 'put ''dVlLdWJGZldWZWxhTU1NR1lDc1F4bzBocHVnL1BzVVlNb25FTkdtQW1GQ1VpSGdnejBpbzk4c1QrRmF6UmFCT3cwcGRBNTF4Nm5KTkxEamJZTkNLemViY3hwYS8vbm0yLzUvblVXUTFnc3pTNXZNZzNhSmt1T0xXc3J5MklWcHBSdmVGdjJNWERNbHllU3FWU0lDakphY3lyYzJKaGtTeXJoWjRM''@;'; + put 'put ''RTVEbjFBd2xKLzF1dFpzVVBEbWJQbGd5emxyMXRaUll6dk81c0pmNU92c0hZZkQ1WWU3OWg1ZnFZTnB1cnEyZlhkUmFIL0wyc1YzNWZPRHREeW1wWTZ2d3RkWHg1TlRROW55bU9LaWVGVmxkYzZpdlBJNU9lRjMxUVJEM0E1V2d1OU1hejhhMEdOeVNSRHJkY2tRRWZVTmhVQ2ZBZ3pCY1I1SUdN''@;'; + put 'put ''VEdSRlNqUm9nS1JHRDBvMGdFRFNReVZjWGlLMTdKc2hjc2xROXI5QXBSV0lDNzdmTEFjc1U2T0hhK3dmNHN1SjZ0NVllWmU4dnkxTHEvMHJHbHRTajRLd2Z5MS91MUJaM1haVGFxVDhHbXRXNnRjZmlHcm5YbEtsazlGR042cm8vcnYybTB3WFdxL3o2UWMvMlNCbytsN2Jud0Y3UDl6SEg5dC93''@;'; + put 'put ''dHRyWkorM21aOS85dUR0OE5CR3pMdVg3UXcrRi9DZGRMV2Y4djgvNGY1ZGRmaGV0aDFqK0huM3VRNStIcVdhM04vMlMxWXJ0a3A0MHRwMlFQdm5DWWNCOHZ4ZkJvQ3gzMlZkWEFkSUVjZzhYRVpENzM4cFNjVjF6TWE4SENJYnBIUW5OUnN1NUplTVhseWwwUHdtOXM3N2xsZVBoa1Q4dEMxNTdP''@;'; + put 'put ''OE9TUnN0NkJZNTNUNWEwbDQrT2Q4dmhFSjdFL2RQWDJzd1BkTnczMUhzc01EZmJYOVpjbmF4cWkvYjZsdit6b2txL2ExdGw5bFlZZlVzTHN5VGkzSnlwZCtMb2p4ZHNFeCtmaGphNVRlajJVYy8yU0JvK2xmYm53TDJXdnIrNy9ZcmIvdVNsdWx6clFObEpJK2xsTzFVZjNUUURmYTNVRmlLWHZr''@;'; + put 'put ''QTVZZnBKdElKTkFGdldqTEZ6MjJZckErOUF5clFhYXQ4Z3ROWUNvT1hjSEdjNlB4a3FMbzFVbGY2RDczWDZvZnNCZnBuK2p4YVd4cG9XWHRMY3dKbTBOMWt0enNGbGYxdXNpT2hJSkZ4WHE5RHF6Z2FpK0xMMHFyRnpkMEpjdDNNaVh6VjAxM01pWDlmdjlWZjdLMER2NXNqcXZ1bVhTdzF4WkNk''@;'; + put 'put ''UmxQRHgwWm1CNFM5Rys3b29JdkJ2WldyU3ZSemxYL0hLd010b2YrMDVmelBjRGZ4Ui9jRTk5MyttQmFPbElhRG9KRWh3ckcvMWwvTjg4SU1PUGdoRFh4WDd2cHVmSHNMVXJTdnVkcTJSNDlmVVZHZWJYTDJud1dSbm0xeTltKzFGbFdGMlBvZjNzVWZ1NU4yZk5tZGU1ZlR5M1ZIR1R1c1AxNjg2''@;'; + put 'put ''YjFCMXV1RUM5OFcyMUJKRXVVUDkzbFIwcXd2eWFzc01zVGk2cU9BRmM5ZVhtelRMWlBOVUNlbUJkak1kOXduTlpuM0NoSjdmdDRXeit5b2dlM0tUdE43SitvM0ZVM1pPM3ZFMm9nSGlnQUtTelhXNHB3cEt1QUl1WURCZ2dEQUVTa3ptMkhVdlA5aFd3RlZTMUpLdXdzTkJYNkF2NjdYYTd5MCt6''@;'; + put 'put ''TDNxZVZFd0hJbnk3WHBLanFUNk53ZCt2Q05mWHRidkxHcks3OTdDbjJGZFFZRk4rYytMRWZXVnQ5VUVmM3ozazgzZ0tiRGpOTnZTcDlYN2JTQy9JYWd5bDBRdGM4SHdsV0tjdmhoakNndzFDVFlJWURVYU1qVEVzWWZCRU43OEw1bHlWM0tpMlJaTXBIYkM0aFlOMERRSFBpSVRQVWswMHNSS0F4''@;'; + put 'put ''SHBnRm55d0preSt2YmtOcG1SSFBCNVB4eHZEUVdjZ0dBNjQvSFFWSW91YlRRcUNRWXZaTlhTRmM0cURTUy9EbTNsOWdmRGNMUnlCZjlFS2hUa1cxeFlLMCtKaGh0TlBhZ1hEYXE3Z1l5eE9ES3R4NGkvV3hadThQcGJLN2xaVmR1L081aGsreG1KVjFoWWIwUGxOMmw1UzJ4SnNHT1Y4eXZZWXNy''@;'; + put 'put ''WVJ0ZTNDT2o2TlF4eGpKaThDVEMrRHlSZDJrRDhoSThBOFQvNUVnUUJHelJ1QkJKekoxczIrQy9SSkVZenBOZG5rQU1McmdPYmFLbnlZbWhXTUJEMDZBUHhyeSs3MDFhaE9zRll3UmJWUGRGTm90SnJxUkZORHExdFlMOXRpRmZBS25DaXFCZEc1d05UOWR2aDh2ckF2RktMVkN1R0F1cVFWV0Y5''@;'; + put 'put ''Ym9oWXZvTndTazNkMXJLb3hlZWloa3gzS3YydUZKcDFMZjU5VFovditycWFtcFIvbjZpbWVUOHhrODRrTGFQODZPblBmN1Z6V2QxdFFkZG1hWENRMm9SOXMwbGJ6K3dTQWVZcm5xRURlaDluWkdLQ05pckVCczExT2VsSEg5MVdxSjJMUStudUpTU0VnVVJNOXBvdTRObHFST0xwTFZQc2YwRVNN''@;'; + put 'put ''RERPeFVoNGpldVVXbm5IdjRlTEVwWWhjV0tRcGR5WTRUQWN0c0pyakVJcWpNN0tEUmd3aFRQUUdjQUJCdHlDNnlid0krS0FTWEhrZGpQUUF6VlJybEZXUE4yTGxRc3lQWkZZcHBJR3lPZU45RzdVZ3RIUXVIQTdId3pGUGhUTWNESVJZamx0UzUrRFZWTXJhNm1YcTl5TzFndm0xclJZNnEySTZY''@;'; + put 'put ''WjF0ZFNGekVLSXU1UzlxUUZYc3RUcGhzaG1ZdnNXUlU5UU00UldlWlhYTkcrU2hEUnZrb2RmNitRYlZSMkI3WjVtTmlxbzI2cXZyMnZKNlkycWpCcmlOV2xUYktxL1RmYmU4TGZCS1B2RWpma1lId0FzMXlJb1NxQVg5bVV1N3R4cEwraktzTTBBb3AvTmlJdWpvRVM2b3o4ZnVpQnZjVWExQ3pF''@;'; + put 'put ''eVhjUVNEYnQ2SVZ6WmhTNUorQnNKb3F2YTFmYjFPa25OdzIvb21KaXlLZHQ0UXJXMG1WeU5rcE9lODRQbHMwOHZBMC9pN3BvYW12V3RhYXBwVHlmeEVmaUpXRmZBWEY3bWROUDFkWU5IOFlub2NBSGVGOVg5RlJUUXVEUVdyUWlGallTQlVpSVYzckk0ZXFndVhkY2FMQTVWMC9icjNDa3FsSWY3''@;'; + put 'put ''Nk9UQjRndWtSdmc2d3NQend1cldDbndCTUpkTWpQRVpiK0FSZjAyMWEzb1lVMEFVdXVqT1VybmpTNDFjSTdzK2U0OElMcXpUcDkvalpuaVpOTHVoT1dFM2dGU2J2dWxPVzFWS3UraHZVaGlCNDFyZlpXcjhmSFpMTmJ1cjIrMEhRcVJFSjBKVmpNWWNwVk84K1B5dXNqTGFsTExSWktWQmVBekJG''@;'; + put 'put ''dDJtVmx4WkJoSm1mdDJHSnNsTmRsazE3YzhjK3I1WUxiS0Z6S1BIbW4yemprMWdwRzFnS3czeEthdlAwK04rVzNsSm5wSzdsb0crdHJNR0Fqald0eVFkck5jVDY3TDV1KzdwOTNiUTBXTC8wRnZRM0NuSjRucDAzbWVCeWlIL1AvWCs0SG1QeU9hSmVmNEpmcDN1cG1aOVJvL29aem5VeXorSjU0''@;'; + put 'put ''VjZBR1ZWaFBPZzVEdk9jQnNQM1pMK285UVA5ZjUvNUJEakhKNkQ5M01sZ1JqZUc0ZnN5U0Ivd1V4NnR2TFdZVFVaUkR4Skl0TjNwYXpaNjU2RTh0N2JST3lXbDByUVkyeTI1U1o4U0FQLysxS25GeGJjaVJ5SjRpL0tmbWFNZDM5SDJmVFN3K3ZCQk9jOXNra1JxNlEwSWExWGlabmhyVS9kMFpz''@;'; + put 'put ''dXpWN1o1K3RnbmJiRnJhdXFMYmxiN2d5VXc5K3J6Y2NQNHlhR2hrK040YjVWeThUL0RSOEo0UXZsdEZjcXVXZDJoclZrQkhsL2ZDTmVraFBsMDQ2dGkvVEdnM3hjWlhldFUvV3JsOEhDOWhOZzFlTURwUmJUeXJCUFo5VEVEK3R3bXo3cVV6VU1ZOXFHY2RhcE1kcDFxQVQyNXpnZms4Zm01YkM1''@;'; + put 'put ''aFlSSnR0SjZHcld2WHVOUzIrMWJ5SE5pcTdoc0N4U3ZRUGJZT29GS0xuTTZlT0dFZzJTTW5qSFJydlZhdnh5TENFbWV4eDhXS2VxbHJZYUlGTHBvemtTMTBjV1A3eW5idkhlcnkvUXV6ZEIvOExPbGRlcXNyYzBqT0hNN3dSZnlwVDF3OTgrbXJGNVVVL2w3bXNDelBOek03Qm1NV2ZnNytCWjFY''@;'; + put 'put ''TTlvdWozc3hqVVQwT3BwZTF3c0R3RU02dlVGM3dHSWtvcWlsSE15U1NjaEpPaVNUZ1FCQ3llWmtVMk1xVUIrb2kxVkJkMzVuTUJ3TTVjRzRWeWRwVjh4Qmp0K2dXM09Pak9wRENIazhPOXQ1SkJ3NUt2TUM4OHpSU1BDNmpPWklLTGZsMUp2alcxYnRqMnFzcTAzekN2VEdtdG9VY3lsMHVVWG91''@;'; + put 'put ''Sjg2RjZwdmNZTFJOcVh5NzlQcitJTFhQMVBhN3VDNVB6WCs3UVUrUGNINE42WHk2U3NjWG5tZDFrdXI4UFI2UjlZL1BjSDRONlh5NzgwYlB1dDJ4cjg3T1A4YStiUFlIbmcyemtaMW5BK3M0MzFlTjAzSGVSVWY1MjV0LzN3NzJ6L2ZnZDZXUytyQUdha3ZLUmIwVWhIZGZZaDF1TUFLTGtrZUs5''@;'; + put 'put ''cmdlZWY0Nm5vTlNSSm53UFAxREtLVk5NYTZjbzNxTmVVYTc5aW9kRjJOaDNEcW5WcXhkY09OaWpYV3QrTzFHdVpRZFlTV2FkZ05VbkVzS0c2YXliNkNRd0pJNzZuck44aHBleDg0ZUpsekE2NWZGQ3ZXcExZdHM1YzdSa0N0ZjI5bjllOHlYU2VvdzZLK3ZwVG94SklpZ25UZ0xpR2dGeEh5VnE4''@;'; + put 'put ''VDZOZzZnYlpTcWRhdWJMSk9vS05uYU4xMmVXQzZUckFHVGwwbjBNQkZ2dWN2WGduNFphdWdsMEV2TGFoOXA0cDgvSU85b3h2aE4zbE4rSEpsK3RzbXBUV0xCMmt4VW5iWnV2MGNlVHFoeVJQSTR1UW04blJKa3lkc0tPZnlGQVI1b21jOGxLTVg1SHd2VU1SakFZcVk2WG1US2tWaUdrVW82c2dw''@;'; + put 'put ''bWdCVTY3T01Cc0w4czNXRWlXY1JmaVZ0NUtvMTRDcDUxclhTVVRMWllkamxxSndHODFRYVRDQU1mbWtUV3RFZ254NFhnR2VkNjZuaEs2WG5WYXlwSXV6TUhsL0I5a08wcy8wUUNmUnR1YUFLRzRTb214Z05Ma3lNMmFKSWZWYk42SFg2c3lZTUE4WEdvMkJzQU1OME42WWc2S1pGdmllVDF6NGlY''@;'; + put 'put ''M1pac25xbGpjRklibnVuUm5KMFkzaFdXb24yNXpRVEtKN29lUVlKVk0wMmFYZ0JVelRyb2R1RW85ZHYzUEJTQWNDcGRSeWNrbGYyY2dSOGNkdmFLc3kwYWF3NWQzdkhSSUVseFBpUG5TWENlRFN0OHVqNlhFZ0orQjBGelArYzVQNG51V2Fkajhwck9ETFpHbzZGRFd3SHo2V2Z5K2JTdFp3S2Iv''@;'; + put 'put ''dHl0a1pFcTFITXJmOWdiVmx0QU12YkE4d2RHOVdnZ045MDM0WnRoMWZXQXJDMUQ2bm5vR3hqNTZBRTZOcU5DN1ErTFJyT28vc3FCdFJUcGJRengxbk9YUXQyMkphL1FMQWdFSFR4TTZab1VMb21jN0htMUJUeTZQRGRrN1pzdXNJeGYwbzlQWVZjWUdlbFdMMXFnc0pmNUgzNFdPNVJLbndmempZ''@;'; + put 'put ''eUMzRk1DTjNHdzNrcm1GUUJZbTFkQ0FON0RmaFdYU0RaVlp3U3ZiYkRhK1AwcjUvZjV5bGZiVVZuVGNiWEhQUTdBNjZBeTArdDI3cFU3OHJXbmFROW14TW5zeXdpemMvZHluTVM1MGFuYXpmMWFKRWQwSXFkOGNMNHNZWFhDK0d1ZFh6RTkrOVFuYm1MOFlLRXZwdFRJM1JDcXhHQzY3ZXRhOHZY''@;'; + put 'put ''S0M1cGF4Ullta0E1Ylk5bjY0dm0wQTNyK0lpZHdjSjRyWDNUZWthK2I0YnkyalQzajQ2Z25MYkh0YlliNWcxNTI0dHFXNW8zL0dCTzJ4UFp0aHZscG5qYlM5cHpzYUdCbjcxQzl5WFRHRGlmN3NpZ0ZmMTBueE1aUU9xbUliS1hldHcreHRUNXlMclJrV1ZpSUQ5bkcvSFRHK3dkcHJYM041TkxW''@;'; + put 'put ''M2llaXBlZXAzSis0ZURZOE5Bb3VYVC82T2pHZldUM2RSRjBGdGp5Qm5WWGw5cEhPaWtGTXFORHcyTUhGOGlsa1pINzFUNTZvWTl2UUhTcjdtZ3dFYnFuWVlDR0duMGIxZURuSVV0SXlPNW9VQ2ZOZ29rbngvd3Ryb2Fpb2daWFMvbDRqUFQ2eTF0Y1hpOTg4TFBuREtFWFdUNGx6SjV6MmZyK3Ri''@;'; + put 'put ''c2x0QjBTS3lrT2RUOUdMd2I5eHZaak5MRmU2U1pXdWlOaEhxUVVZMkV5dTRsV3VLSmRHYm5mVzNCN1oyZDFRcFlUM3ZKeXI4ZnY5NURlemdUOW5PaHM4bnY0UmI3UFlCdldnMDJ6b3hZMmdob3JUQ2FmY2d6OW1vbys5ZVFld09razA0WUN2VU9uYWtlMm9FZW43c3hRejkrdldGR0lwOXBMdk1O''@;'; + put 'put ''Yy9FSDdQYzdTT1Q0bThKa3lScmNrYWNQdkp5K0JYSGV4NTZicGZrd2oyOTNteHJqUGdJVmVkaWpSSkRXcHdNUHoydEVsUkJqbHV4V0NJYmJaalQ0ZjBjUHYyVkhhM0FOVWFTb0dzQ1ZRNkhDYkhCNTl4cENzY1dzZjVQemRwTjF1czVoOXBVYTZROGhpTGk0MTNhN1NKRVBYaWRpNXRVVjg1NFVl''@;'; + put 'put ''dUxLUGhxVTNPQjNadlNoZUtSQlNONWZnSGNmNERwTy84ZHpCNUs5UmVYMzV1ZVZ2SXlzS3NoNEsrYm56cS9lNUJiTjlDYXNQb1A4S3oxK1doSUpWeWpMUFRiSThKZGNwWEZmZW9lbEsxSTByTnRHVnIyaTZFblVEeEVadEQrSW4zN0h0UWR5UzAvWjR0dTBjYmxxbkszbmJpOW0yYytoclBENWRi''@;'; + put 'put ''cUZuVithdW43ejllKzVMdlAxNzFaZUlMRGZUTlFtZVoyY3dGOTcrSFY4bmUvdDNLZ3pQMXgvTDlwT0hydDBrWC85U05sK2ZONEkyckNYdFJ1L1p4RTY4a2wzTDdsYmozRHIwTTJMQnZlOTg3ajg5bTdqM29OWkdhTCtDTm9MbDdUZTFOaTM0QStoVjhnVHdUVEhqbWI2MW13bzV6emkxMURoUHJu''@;'; + put 'put ''NTM1UXNMeU4ycnZyR0F6aW1ENzBlL0lCZGd4dmswNjhqM0NKTFM3QjVCZUNiK1BudG1DYXFReTBxc3dPdXJOb1VKVExrRkM0SU9kdUxYNm1mck54MEtMdDlrV01HYzkzeDgrSWZBR3hFK1BqYk9QOEE0SGRseE1wZXpWTXZ2anFIemVCSS9EbENiN0xHaTV3dXdQVlpyemhkNHFqMFliQThFMk0v''@;'; + put 'put ''NVlGdVF2NE5MSEUvdHdEZGZSaDhFMmtOUVl3dkE2eDhZRDl2eHp3RkFvdCtQbzdzNzUvdHhNbWdRbnZ4YlhsUlZsNC8xVnY3MU5RWXNXckRKTEpweXYvTEdtZWNRekdaaHhtNjBTYnJjYjhwSnZVTkQ5cTAzdkxWRVd3dnE5K1UwYjlodWcyL01XZGNXb3BIR29TRloxcjQ1WjJoeTZLcUpNWGxR''@;'; + put 'put ''SHRqYVU1dXA3V2hxM1BCYmRGei9oVy9SS1Yvek9aZ0RXOTc0VjMvRERoNWtmK2lINFZybGM5cjM3WHdLM2dCczhNcS9lRWQ5UDFhVCt5VThLMS9HZzhIVHI4Y1IvRzE2S3RFemVveHJZeG5zQmR3RkhwbTkvLzdacFl1ZXA1LzE4djNBQUJmVDRBUUdGMGw3cFFoQVBmSkkvN05QZXk1K2o5bUQz''@;'; + put 'put ''Nm5uSTllZ0hmS0VENmhXakhVaW9XVWtHSm5wcWZRNk1IY1FiUjh3WW1MQzJFeDNqR1MzQ1ZsWURTdFBQY0ZyRFVyRVk5RXF1eU1FNGFIZEdjcURVSExsMktjSXhJN2NXVTkya0pWY0NDMHZBMVI3L1N3eHluWUkxYjluWU9UZWVlOVlGeEc2ZHhUT3YzZEkzUldVdWE0TWk4clA5UVFIbERkS0Y3''@;'; + put 'put ''dm4ySkhLbmNmN2VqM21Razl2eitGMnRpZW91Nm0zMEdQMjlIWU0wZTlzd1VXa0VOOEp1azU4aHRCOUdNN3NhZTEzMG5QYW1WTURibzBBbXRkdjl4TmhhWW4rNXB3UnhzKzRNRHpyZGVicFNlMS8vYkNKdDhZMlBHeUMxMkhBYzBDMzQxcDFyZUFKclQ0RHJuOUR2YjZ5UnN1dlg4cGVsNDduWHIr''@;'; + put 'put ''b1hVZHpCM092djVLOTNuMHE5L3E1N1BXRmVlMXN0RzNrSHBZalQ4QzhJd0VuaG5sdlhGWURzMC9tVk5QazRPRWVGblJaYzVGeGtqdGRmMUp4d21PdlhLeW9jZGRqYTNGRDQyeU9HNGl6UDUwejlwZXlPTWk3anR0RFdyci9OWFpPajBidnBEMndWVHR4QjlONk9MaXZYMzlmdnpTSy9oL2lFeno2''@;'; + put 'put ''QUFFQUFBQUJBQUJWRXJUK1h3ODg5UUFmQStnQUFBQUEwOEdkaGdBQUFBRFV2cWIxL3piKzR3U0tBODRBQUFBSUFBSUFBQUFBQUFCNDJtTmdaR0JnUHZmdlBBTUR5K2IvWnY5eldMb1lnQ0xJZ05FUUFLY05CcmdBQUFCNDJuV1V6V3NUVVJURno3MHpGRUVJMkVSUVFvekdZRXhNcWttMTBXb3Rh''@;'; + put 'put ''V3BpQld2c1JxeFlGMUlYTGxTNlVFUUZrYTVFUlYyNGMxWHAwb1ZLZDNhaENBWDlDMFJRdXRDQ0NoVktvUzZNNXo0ekVwT2FjRGp6OGQ2OGUzL3Z6TWdTVG9NL09VcEZxUlFxTW8rU1RpR2hFNGg3UmFUMUNiWklCMHB5QlQzVU5ubUFMajJCZ3h6Zkx4ZVJsL1hvazluNlYzM0o0OXZvMUZQSTh2''@;'; + put 'put ''NG12VW1keFE2OWpsMDZpbTQ5and5UEMyNDg1K293aXZZYyttRlpRZGk3eEhtTENPc01hdm9NT1YyaDMwQ1ZkVlQxQzg4L29pb2hER2tjNi9RcGp1a0JsTHd6cUhrK2xlSDllNmc2Zit6bXhMbFdrczhiMGgrSStFVnMxTmZZd0hscjlDNjY1UnFPc09abGVrNFdzRk5yOVY4eXpwcktTT2tkVkRT''@;'; + put 'put ''QjdmU3NqaUFsRTRqcEpHc2Z3NEFJOW92VTU3UkFIb0t5OXdnRHZGN1dxMjU4eGViSWZUSmN3bWFaNUx3eHNxeWgwNnR5N1R3aTdEZWlJWFRKUXlRbGlYUDBsTHpDSG5JZmRHdmVRdDVxbERuV3NwdjMzcEd4MVRYRlBRRDJTZGxkejVKWGduMkZuUmIvbFova0dzYlAyRFZKUXZXM3hvLytqWnIz''@;'; + put 'put ''b2tnSDdGcWxtUVpMNDljczQwZk9lcEl5VnF2SWUwRzNYc2l1V2VUMnhwalJQMU1mOURJS2Y5bTF5bkpoYnZ5YVpmeU1zN24xYTJ1MnV2VnU2d2R1T2VLK1dML01jdGJ4c0pxYS9YalR1V1hOOXJ2aFpQV0o5YjRudTcyc0g0NGgrM0FaWkE0c2grNDg4SEhFWkFReFkydjl0Ymx4WlcrQit5SGsv''@;'; + put 'put ''QTdXeWR4YWR0cWNXYlk4dFRuejdUSVd1TzJQTWZxUDJ6dmdjbWg3YVB3YTc0TGxzZFV0NHpMRDdEV0VuL1JSYXBDYTVaaER2SVo2VC9ETVZtOWoybGlUZGNOYitQTzk0VE9CYVVEN2tQY3U4TnNSUmEvN0xxeEZMOVV2MCtTMTdMNFY4SjhqTGNQWVNuRi82OTlkUGp6TzViNnU4cStnOGhzcFk5''@;'; + put 'put ''Zk9lTnBGd2wxSTRuQUFBUEMxbHQrdU1wdE85M0grTjZlYk83ZTVOVUY2a2lQaUNCL2lpQWlKSG82SU9PUTRJcUtISXlUaWtCNE9rWkNJT0VJaUl1S0lFTG1Ia09naFlrUVBJUkVSUi9RZ0l0SkR5Q0VSOTNKdy9INFFCR1grMlliMnU2Q3VORXpBMytFaitBcHVkZi9vUHU5dUlSWkVRSkpJRHRs''@;'; + put 'put ''SDZqMGpQY3M5NXliQk5HWTZNYjh4cDgwWjg2cTViRFlzbEtWdDVhekwxalByaTAyMFRkajJiTmUyaHAyd2o5cm43SGw3eFFFNUVvNkNvK1lVbldQT3JIUFBXVU1obEVQSDBWVjBFelhRVnEramwrdmQ2UnZ1Vyt2MzlzLzNYN3FtWEdWWGUyQmlZSHZnd2kyNmw5elZRVzV3WS9BU1k3RVo3QUF6''@;'; + put 'put ''c0k2SDgweDdjcDVyVDh1cmUwZThTOTVUSE1WVCtEcGV4TXY0RmY3cVkzMXJ2cnl2N3V2NEhYN0tML3VUL2cvK0xTSkRyQkI1b2tTVWlYUGlsbWdTcitSN01rMW15QlV5VDViSU1ubE5UVk9mcVN4Vm9IYXBDdlZNcCtrNWVvRmVvZGZwSWwwS0pBSjNnWHJnR1VEQUFieUFCVElZQm52Z0dGU0JB''@;'; + put 'put ''VzdBSTNoaUVzd0pjOEhVbUFlbXhYVFlKWGFWM1dCMzJHTzJHdXdML2dvYXdadGdJOWptTEp5UEE1ekIzWE1ON2lWa0NZMkhhcUY2NkRsc0NydkNWUGlKaDNtVWY4Y2Y4bFcreGovd0xRRVNYQUlyNk1Lc1VCTEt3cWx3S2R3S1RlRlB4QmJCSXVHSUZzbUtpSWlKUUl5S0NYRk1uQlRueGNXM3FT''@;'; + put 'put ''Z1VkVVdwNklFMExuMlVGcVZ2VWtIYWxZNmtNK2xLWnVWTitVQ3V5QmR5VGE3TEhjV2tlQlZXMFpXa3NxQnNLQldsR2NOaWs3RkM3TGNLcTdLYVZGUHFqUHBKL2FybTFDMzFVSzJxaG5xdk52N1RFSTNTUnJWSnJhajkxTzYwcHRZY2VoaHE2elo5V2MvcFJkM1FiL1JIL1VsL2lWdmk3dmhVZkRi''@;'; + put 'put ''K0paNk41LzhDREJETXlBQUJBQUFCUEFCb0FBb0FRUUFFQUFJQUtBQTVBSXNBQUFDVEFtc0FBd0FCZU5xTmtzdE93a0FVaHY4V05LREdLREhHc09yS0dCTzVxZUJ0WWRTd1VkUkloSzBnRlJyQllpbEdYZm8yYmx6NkRGNmV3STJQNERQNGR6aXROMkxJcEoxdjV2em5Qek9uQlJERE8wTFF3bEVB''@;'; + put 'put ''TzN4NnJHR09xeDdyR0VkVE9JUU4zQXFIc1lKSDRTSEU4U0U4akZrdEloeEJSa3NJUnhIWFRvUkhzYVQ1UG1Nb2FRL0NFNWpTdzhLVGlPa3p3aytZMXVlRm41SFNONFZmRU5IYndxOFkwYTk3L0JaQ1hML0RObXkwY1FNSEZ1cG93SVdCZXo0WnBKQkdsbFJsMUtDdW9UUWRjcEZ6aTFrZDVsNGdn''@;'; + put 'put ''UUpNNWpuS3lXWWZmSlZKbFVYYVVyczFISEduamk2NVFuV2FtU2sxMW5HTVhaU3hUK3JudFJCNCtVNkRWalIrMVN4eDVWQnJxWk1iMzg0d1dOMFMrWlE2bTBxdkt3ZDBNVGw3MlRYR0t1UkR4cjNZSHVmYVAzM3pldTF5dFlZa3g5VVBaMXY1dGdMWEJHTTIxMzVPUjdMcWpMcmM3ZklyK1pva1o3''@;'; + put 'put ''OW1TOTMxcTJheTd6Mzc3ZjN0WlprN1Zad3BIemZvWFVFNm1WZFJneU9yWWptZU1JMVZ2aGV4SFB4UE9aeFRaNm82am55RmZPQll4Q1Z2WWpIaVVOUDhCTGhaaDVjQUFIamFiWk5YYkJ4VkZJYS8zN0YzM1RaTzc3MVh4MTczeENrdWE4ZXhZeWN1Y2V6RVNjYTdZMmZ4ZWhmR3UzRnN1Z1FDSGtE''@;'; + put 'put ''d3dqUGxDUkM5Q2lSNFFLSlgwWHNIMFhta0IrL2NDVjRrN3NOOC94bWQ4NTh6OTk0aEMzZWRHMkFlLzdOVW0zNlF4UXl5eWNHSG4xenl5S2VBUWdMTXBJaFp6R1lPYzZmcTU3T0FoU3hpTVV0WXlqS1dzNEtWckdJMWExakxPdGF6Z1kxc1lqTmIyTW8ydGxQTURrb29KVWdaNVZSUVNSWFYxTENU''@;'; + put 'put ''WGRTeW16M3NaUjkxMU5OQUl5R2FhR1kvTFJ5Z2xUWU8wazRIaHpoTUoxMTAwOE1SZWpsS0gvMGM0emdEbk9Ba3A3QzRuYXU0bXB1NWdUdDRuK3U1bHFmNW1EdTVqYnQ1bm1lNWgwSEMzRWlFRjdGNWpoZDRsWmQ0bVZmNGxpSGU0RFZlNTE2RytZV2JlSnMzZVl2VGZNK1BYTWNGUkJsaGxCaHhi''@;'; + put 'put ''aUhCUlZ5SXd4Z3BrcHhobk84NHl5UVRYTXlsWE1KajNNcmxYTVlWWE1rUC9NVGp5dElNWlN0SFB2bjVpNzg1SjVTclBPVkxLbENoQXBxcElzM1NiTTNoVjM3VFhNM1RmQzNRUWkzaWQ5N1JZaTNSVWkzVGNxM2djNzdRU3EzU2FxM1JXcTNUZW0zUVJtM2lQdTdYWm0zUlZtM1RkaFZyaDByNGd6''@;'; + put 'put ''LzVrcTlVcXFES1ZLNEtWYXBLMWFyUlR1MVNyWFpyai9acUgwK29UdlZxVUNOZjg0MUN2TXRuZk1DSGZNU252TWNuYWxLejlxdEZCOVNxTmgxVXV6cDBTSWZWcVM1MXEwZEgxTXNEUE1nalBNcERQTXcxM0tXalBNT1RQS1UrZmxhL2p1bTRCblJDSjNWS2xnWVZWa1MyaHZ4MW8xYllTY1Q5bHFH''@;'; + put 'put ''dmJ0Q3h6OWcreTRXL0xqR2NpTnNqZnN2UTF4aTIwa2tSZzhhcENpdnBEM2tXdG1GK0tKSklXdUd3SFUvbTIvOUtmOGl6c2oycmtQR3dYUlEyaHhPam81WkpMUnpPQ1B3dG5udlVZNHZuRXpVc2JNMnNITWtJZkcxV09KVzBmVEdETnRNdlp0QnVYc1pkRkxabmVzUXpQZHBOZXR5RnY4T2JJV0VZ''@;'; + put 'put ''NkRpZGlnOWJUbW8wWnFXU2dVUm01T3MwSFJ6VG9UT3pnNVBab2ROMGNBeTZUTldZQzM4cUhpMHByUXg2TFBOMW02U2ttYWJIbXlabG1OUGpST1BET2FuME05RHpuOGxTbVpHL3g5dkJsR0ZCYnpqcWhGT2pRekg3Yk1GNGh1N0wwQlBUMnRkdlpweDBrZDgvZmRxVDA2ZWRuamhZVnVXeUxGanA2''@;'; + put 'put ''eDEycktsck5XN1FheHpHWGVUMVJxSzJZNDlGeC9MR3o2dDBYV21vdnRwampjY0dqNDIrUG1NMDRTTDlObGhTRXZSWTVySGNZNFhIU3NOZ1UzWW81U1Rjb0tLcEljY3F0bUxKZk11ZHhVajM3cWRsa1RYOTJlazRZSjBmMENTNjNkT3l3UHQ5akRiN210WjVWdm8wVEhJeUdvdTR5Ym5XMk5RZVJX''@;'; + put 'put ''d25MMko3NmgrM1piY2hBQUFBZU5wajhON0JjQ0lvWWlNalkxL2tCc2FkSEF3Y0RNa0ZHeG5ZblRaSk1qSm9nUmliZVRnWU9TQXNNVFl3aThOcEY3TURBeU1ESjVETjZiU0xBY3BtWm5EWnFNTFlFUml4d2FFallpTnppc3RHTlJCdkYwY0RBeU9MUTBkeVNBUklTU1FRYk9iallPVFIyc0g0djNV''@;'; + put 'put ''RFMrOUdKZ2FYemF3cGJBd3VMZ0QrSENWZ0FBQUFBQUZZbVBaM0FBQT0pIGZvcm1hdCgid29mZiIpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXN0eWxlOm5vcm1hbH06cm9vdHstLWNsci1saW5rLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi01MDApOy0tY2xy''@;'; + put 'put ''LWxpbmstY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWxpbmstaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWxpbmstdmlzaXRlZC1jb2xvcjpoc2woMjM4LCA0MSUsIDUzJSk7LS1jbHItY3VzdG9tLWxpbmtzLWhvdmVyLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCl9aHRtbHtib3gtc2l6aW5nOmJvcmRlci1ib3h9Kiw6YmVmb3JlLDphZnRlcntib3gtc2l6aW5nOmluaGVyaXR9aHRtbHstbXMtb3ZlcmZsb3ctc3R5bGU6c2Nyb2xsYmFyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVu''@;'; + put 'put ''dH1pbWd7dmVydGljYWwtYWxpZ246bWlkZGxlfVtyb2xlPWJ1dHRvbl17Y3Vyc29yOnBvaW50ZXJ9YSxhcmVhLGJ1dHRvbixbcm9sZT1idXR0b25dLGlucHV0LGxhYmVsLHNlbGVjdCxzdW1tYXJ5LHRleHRhcmVhe3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259YnV0dG9uOmZvY3Vze291dGxp''@;'; + put 'put ''bmU6MnB4IHNvbGlkIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtvdXRsaW5lLW9mZnNldDoxcHh9YnV0dG9uOi1tb3otZm9jdXNyaW5nLFt0eXBlPWJ1dHRvbl06LW1vei1mb2N1c3JpbmcsW3R5cGU9cmVzZXRdOi1tb3otZm9jdXNyaW5nLFt0eXBlPXN1Ym1pdF06LW1vei1mb2N1c3Jpbmd7''@;'; + put 'put ''b3V0bGluZToycHggc29saWQgSGlnaGxpZ2h0O291dGxpbmUtb2Zmc2V0OjFweH1pbnB1dCxidXR0b24sc2VsZWN0LHRleHRhcmVhe2JvcmRlci1yYWRpdXM6MH1pbnB1dFt0eXBlPXJhZGlvXTpkaXNhYmxlZCxpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93''@;'; + put 'put ''ZWR9aW5wdXRbdHlwZT1kYXRlXSxpbnB1dFt0eXBlPXRpbWVdLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLGlucHV0W3R5cGU9bW9udGhdey13ZWJraXQtYXBwZWFyYW5jZTpsaXN0Ym94fXRleHRhcmVhe3Jlc2l6ZTp2ZXJ0aWNhbH1maWVsZHNldHttaW4td2lkdGg6MDtwYWRkaW5nOjA7''@;'; + put 'put ''bWFyZ2luOjA7Ym9yZGVyOjB9bGVnZW5ke2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtwYWRkaW5nOjA7bGluZS1oZWlnaHQ6aW5oZXJpdH1pbnB1dFt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9W2hpZGRlbl17ZGlzcGxheTpub25lIWltcG9ydGFudH1kbHttYXJnaW4t''@;'; + put 'put ''Ym90dG9tOjA7bWFyZ2luLXRvcDoxcmVtfXRhYmxle2JvcmRlci1zcGFjaW5nOjB9YTpsaW5re2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWxpbmstY29sb3IsICMwMDcyYTMpO3RleHQtZGVjb3JhdGlvbjpub25lfWE6dmlzaXRlZHtjb2xvcjojNTY1OWI4O2NvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1saW5rLXZpc2l0ZWQtY29sb3IsICM1NjU5YjgpO3RleHQtZGVjb3JhdGlvbjpub25lfWE6dmlzaXRlZDpob3Zlcntjb2xvcjojNTY1OWI4O2NvbG9yOnZhcigtLWNsci1saW5rLXZpc2l0ZWQtY29sb3ItaG92ZXIsICM1NjU5YjgpfWE6aG92ZXJ7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIo''@;'; + put 'put ''LS1jbHItbGluay1ob3Zlci1jb2xvciwgIzAwNzJhMyk7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1hOmFjdGl2ZXtjb2xvcjojOWU1N2JjO2NvbG9yOnZhcigtLWNsci1saW5rLWFjdGl2ZS1jb2xvciwgIzllNTdiYyk7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uY2xyLXNyLW9ubHl7''@;'; + put 'put ''cG9zaXRpb246YWJzb2x1dGU7Y2xpcDpyZWN0KDFweCwxcHgsMXB4LDFweCk7Y2xpcC1wYXRoOmluc2V0KDUwJSk7cGFkZGluZzowO2JvcmRlcjowO2hlaWdodDoxcHg7d2lkdGg6MXB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dG9wOjA7bGVmdDowfS5hbGVydC1pY29u''@;'; + put 'put ''LC5jbHItaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW07cGFkZGluZzowO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmFsZXJ0LWljb24uY2xyLWljb24td2Fy''@;'; + put 'put ''bmluZywuYWxlcnQtaWNvbi5pY29uLXdhcm5pbmcsLmNsci1pY29uLmNsci1pY29uLXdhcm5pbmcsLmNsci1pY29uLmljb24td2FybmluZ3tiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB2''@;'; + put 'put ''aWV3Qm94JTNEJTIyNSUyMDUlMjAyNiUyMDI2JTIyJTIwcHJlc2VydmVBc3BlY3RSYXRpbyUzRCUyMnhNaWRZTWlkJTIwbWVldCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3''@;'; + put 'put ''d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTNFJTNDZGVmcyUzRSUzQ3N0eWxlJTIwdHlwZSUzRCUyMnRleHQlMkZjc3MlMjIlM0UlMEElMDkuY2xyLWktb3V0bGluZSU3QmZpbGwtcnVsZSUzQWV2ZW5vZGQlM0JjbGlwLXJ1bGUlM0FldmVub2RkJTNCZmlsbCUzQSUyMzc0NzQ3NCUzQiU3''@;'; + put 'put ''RCUzQyUyRnN0eWxlJTNFJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFZXhjbGFtYXRpb24tdHJpYW5nbGUtbGluZSUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xyLWktb3V0bGluZSUyMGNsci1pLW91dGxpbmUtcGF0aC0xJTIyJTIwZCUzRCUyMk0xOCUyQzIxLjMyYTEuMyUyQzEuMyUyQzAlMkMwJTJDMCUyQzEuMy0xLjNWMTRhMS4zJTJDMS4zJTJDMCUyQzElMkMwLTIuNiUyQzB2NkEx''@;'; + put 'put ''LjMlMkMxLjMlMkMwJTJDMCUyQzAlMkMxOCUyQzIxLjMyWiUyMiUzRSUzQyUyRnBhdGglM0UlM0NjaXJjbGUlMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMiUyMiUyMGN4JTNEJTIyMTcuOTUlMjIlMjBjeSUzRCUyMjI0LjI3JTIyJTIwciUzRCUyMjEu''@;'; + put 'put ''NSUyMiUzRSUzQyUyRmNpcmNsZSUzRSUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMyUyMiUyMGQlM0QlMjJNMzAuMzMlMkMyNS41NCUyQzIwLjU5JTJDNy42YTMlMkMzJTJDMCUyQzAlMkMwLTUuMjclMkMwTDUuNTclMkMyNS41NEEzJTJD''@;'; + put 'put ''MyUyQzAlMkMwJTJDMCUyQzguMjElMkMzMEgyNy42OWEzJTJDMyUyQzAlMkMwJTJDMCUyQzIuNjQtNC40M1ptLTEuNzglMkMxLjk0YTElMkMxJTJDMCUyQzAlMkMxLS44Ni40OUg4LjIxYTElMkMxJTJDMCUyQzAlMkMxLS44OC0xLjQ4TDE3LjA3JTJDOC41NWExJTJDMSUyQzAlMkMwJTJDMSUy''@;'; + put 'put ''QzEuNzYlMkMwbDkuNzQlMkMxNy45NEExJTJDMSUyQzAlMkMwJTJDMSUyQzI4LjU1JTJDMjcuNDhaJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnN2ZyUzRSl9LmFsZXJ0LWljb24uY2xyLWljb24td2FybmluZy13aGl0ZSwu''@;'; + put 'put ''Y2xyLWljb24uY2xyLWljb24td2FybmluZy13aGl0ZXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB2aWV3Qm94JTNEJTIyNSUyMDUlMjAyNiUyMDI2JTIyJTIwcHJlc2VydmVBc3BlY3RS''@;'; + put 'put ''YXRpbyUzRCUyMnhNaWRZTWlkJTIwbWVldCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTNFJTNDZGVmcyUzRSUzQ3N0eWxl''@;'; + put 'put ''JTIwdHlwZSUzRCUyMnRleHQlMkZjc3MlMjIlM0UlMEElMDkuY2xyLWktb3V0bGluZSU3QmZpbGwtcnVsZSUzQWV2ZW5vZGQlM0JjbGlwLXJ1bGUlM0FldmVub2RkJTNCZmlsbCUzQSUyM2ZmZmZmZiUzQiU3RCUzQyUyRnN0eWxlJTNFJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFZXhjbGFtYXRpb24tdHJpYW5nbGUtbGluZSUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xyLWktb3V0bGlu''@;'; + put 'put ''ZSUyMGNsci1pLW91dGxpbmUtcGF0aC0xJTIyJTIwZCUzRCUyMk0xOCUyQzIxLjMyYTEuMyUyQzEuMyUyQzAlMkMwJTJDMCUyQzEuMy0xLjNWMTRhMS4zJTJDMS4zJTJDMCUyQzElMkMwLTIuNiUyQzB2NkExLjMlMkMxLjMlMkMwJTJDMCUyQzAlMkMxOCUyQzIxLjMyWiUyMiUzRSUzQyUyRnBh''@;'; + put 'put ''dGglM0UlM0NjaXJjbGUlMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMiUyMiUyMGN4JTNEJTIyMTcuOTUlMjIlMjBjeSUzRCUyMjI0LjI3JTIyJTIwciUzRCUyMjEuNSUyMiUzRSUzQyUyRmNpcmNsZSUzRSUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1p''@;'; + put 'put ''LW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMyUyMiUyMGQlM0QlMjJNMzAuMzMlMkMyNS41NCUyQzIwLjU5JTJDNy42YTMlMkMzJTJDMCUyQzAlMkMwLTUuMjclMkMwTDUuNTclMkMyNS41NEEzJTJDMyUyQzAlMkMwJTJDMCUyQzguMjElMkMzMEgyNy42OWEzJTJDMyUyQzAlMkMwJTJD''@;'; + put 'put ''MCUyQzIuNjQtNC40M1ptLTEuNzglMkMxLjk0YTElMkMxJTJDMCUyQzAlMkMxLS44Ni40OUg4LjIxYTElMkMxJTJDMCUyQzAlMkMxLS44OC0xLjQ4TDE3LjA3JTJDOC41NWExJTJDMSUyQzAlMkMwJTJDMSUyQzEuNzYlMkMwbDkuNzQlMkMxNy45NEExJTJDMSUyQzAlMkMwJTJDMSUyQzI4LjU1''@;'; + put 'put ''JTJDMjcuNDhaJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnN2ZyUzRSl9LmFsZXJ0LWljb24uY2xyLXZtdy1sb2dvLC5jbHItaWNvbi5jbHItdm13LWxvZ297YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3Zn''@;'; + put 'put ''K3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMzYlMjAzNiUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJG''@;'; + put 'put ''JTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFdm0lMjBidWclM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlM0MlMkZkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTNDZyUyMGlkJTNEJTIySGVhZGVycyUyMiUyMHN0''@;'; + put 'put ''cm9rZSUzRCUyMm5vbmUlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIxJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZyUyMGlkJTNEJTIyQ0wtSGVhZGVycy1TcGVjcyUyMiUyMHRyYW5zZm9y''@;'; + put 'put ''bSUzRCUyMnRyYW5zbGF0ZSgtMjYyLjAwMDAwMCUyQyUyMC0xNzUuMDAwMDAwKSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMjAxJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlKDIzOC4wMDAwMDAlMkMlMjAxNjMuMDAwMDAw''@;'; + put 'put ''KSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMnZtLWJ1ZyUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSgyNC43MDMxMjUlMkMlMjAxMi4wMDAwMDApJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGlkJTNEJTIyUmVjdGFuZ2xlLTQyJTIyJTIwZmlsbC1vcGFjaXR5JTNEJTIyMC4yNSUyMiUyMGZpbGwlM0QlMjIlMjNEREREREQlMjIlMjBvcGFjaXR5JTNEJTIyMC42JTIyJTIweCUzRCUyMjAlMjIlMjB5''@;'; + put 'put ''JTNEJTIyMCUyMiUyMHdpZHRoJTNEJTIyMzYlMjIlMjBoZWlnaHQlM0QlMjIzNiUyMiUyMHJ4JTNEJTIyMyUyMiUzRSUzQyUyRnJlY3QlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NwYXRoJTIwZCUzRCUyMk03LjYz''@;'; + put 'put ''OTQ4Mzc2JTJDMTMuODc2MjQwMiUyMEM3LjMyMjY1MzI0JTJDMTMuMjA5NzA4MiUyMDYuNTM5NzgxNTIlMkMxMi45MDg1MTM5JTIwNS44MDkyMzA0MiUyQzEzLjIxOTkzNCUyMEM1LjA3NzcxMDQzJTJDMTMuNTMyMjgzNyUyMDQuODA5MzI0OTUlMkMxNC4zMTAzNjkxJTIwNS4xMzk3MjAwNyUy''@;'; + put 'put ''QzE0Ljk3NjkwMTElMjBMOC4yMDcyNTk1NCUyQzIxLjM3NDQ5MjMlMjBDOC42ODk3NzIwNyUyQzIyLjM3ODQ3MzUlMjA5LjE5ODQ0NDkxJTJDMjIuOTAzNzA0NCUyMDEwLjE1MjgxMjElMkMyMi45MDM3MDQ0JTIwQzExLjE3MjA5NTUlMkMyMi45MDM3MDQ0JTIwMTEuNjE2ODIwOSUyQzIyLjMz''@;'; + put 'put ''MTA2MzMlMjAxMi4wOTgzNjQ2JTJDMjEuMzc0NDkyMyUyMEMxMi4wOTgzNjQ2JTJDMjEuMzc0NDkyMyUyMDE0Ljc3NDQ2ODIlMkMxNS43ODQ3MzQxJTIwMTQuODAxNTk3NCUyQzE1LjcyNjE2ODUlMjBDMTQuODI4NzI2NiUyQzE1LjY2NjY3MzMlMjAxNC45MTQ5NTg4JTJDMTUuNDg2MzI4NiUy''@;'; + put 'put ''MDE1LjE4NzIxOTklMkMxNS40ODcyNTgyJTIwQzE1LjQxNzgxODIlMkMxNS40OTAwNDclMjAxNS42MTA2Mjk0JTJDMTUuNjY1NzQzNyUyMDE1LjYxMDYyOTQlMkMxNS45MDE4NjUyJTIwTDE1LjYxMDYyOTQlMkMyMS4zNjk4NDQzJTIwQzE1LjYxMDYyOTQlMkMyMi4yMTIwNzMlMjAxNi4wOTc5''@;'; + put 'put ''ODY1JTJDMjIuOTAzNzA0NCUyMDE3LjAzNDkxMzQlMkMyMi45MDM3MDQ0JTIwQzE3Ljk3MTg0MDMlMkMyMi45MDM3MDQ0JTIwMTguNDc4NTc1NCUyQzIyLjIxMjA3MyUyMDE4LjQ3ODU3NTQlMkMyMS4zNjk4NDQzJTIwTDE4LjQ3ODU3NTQlMkMxNi44OTY1NTAzJTIwQzE4LjQ3ODU3NTQlMkMx''@;'; + put 'put ''Ni4wMzM4NzAyJTIwMTkuMTIxOTI1NCUyQzE1LjQ3NDI0MzYlMjAyMC4wMDA3MTgzJTJDMTUuNDc0MjQzNiUyMEMyMC44Nzg1NDIzJTJDMTUuNDc0MjQzNiUyMDIxLjQ2Mzc1ODMlMkMxNi4wNTI0NjI0JTIwMjEuNDYzNzU4MyUyQzE2Ljg5NjU1MDMlMjBMMjEuNDYzNzU4MyUyQzIxLjM2OTg0''@;'; + put 'put ''NDMlMjBDMjEuNDYzNzU4MyUyQzIyLjIxMjA3MyUyMDIxLjk1MjA4NDIlMkMyMi45MDM3MDQ0JTIwMjIuODg4MDQyMyUyQzIyLjkwMzcwNDQlMjBDMjMuODI0MDAwMyUyQzIyLjkwMzcwNDQlMjAyNC4zMzI2NzMxJTJDMjIuMjEyMDczJTIwMjQuMzMyNjczMSUyQzIxLjM2OTg0NDMlMjBMMjQu''@;'; + put 'put ''MzMyNjczMSUyQzE2Ljg5NjU1MDMlMjBDMjQuMzMyNjczMSUyQzE2LjAzMzg3MDIlMjAyNC45NzUwNTQzJTJDMTUuNDc0MjQzNiUyMDI1Ljg1Mzg0NzIlMkMxNS40NzQyNDM2JTIwQzI2LjczMDcwMjMlMkMxNS40NzQyNDM2JTIwMjcuMzE2ODg3MSUyQzE2LjA1MjQ2MjQlMjAyNy4zMTY4ODcx''@;'; + put 'put ''JTJDMTYuODk2NTUwMyUyMEwyNy4zMTY4ODcxJTJDMjEuMzY5ODQ0MyUyMEMyNy4zMTY4ODcxJTJDMjIuMjEyMDczJTIwMjcuODA1MjEzMSUyQzIyLjkwMzcwNDQlMjAyOC43NDIxNCUyQzIyLjkwMzcwNDQlMjBDMjkuNjc3MTI5MSUyQzIyLjkwMzcwNDQlMjAzMC4xODQ4MzMxJTJDMjIuMjEy''@;'; + put 'put ''MDczJTIwMzAuMTg0ODMzMSUyQzIxLjM2OTg0NDMlMjBMMzAuMTg0ODMzMSUyQzE2LjI3ODM1ODIlMjBDMzAuMTg0ODMzMSUyQzE0LjQwNzA0ODglMjAyOC42MTgxMjA3JTJDMTMuMDk2Mjk1NiUyMDI2LjczMDcwMjMlMkMxMy4wOTYyOTU2JTIwQzI0Ljg0NTIyMTYlMkMxMy4wOTYyOTU2JTIw''@;'; + put 'put ''MjMuNjY1MTAwNiUyQzE0LjM0NzU1MzYlMjAyMy42NjUxMDA2JTJDMTQuMzQ3NTUzNiUyMEMyMy4wMzcyNTMlMkMxMy41NjY2NzkzJTIwMjIuMTcyMDI0NyUyQzEzLjA5NzIyNTIlMjAyMC43MDg5ODQ3JTJDMTMuMDk3MjI1MiUyMEMxOS4xNjQ1NTclMkMxMy4wOTcyMjUyJTIwMTcuODEyOTQw''@;'; + put 'put ''NiUyQzE0LjM0NzU1MzYlMjAxNy44MTI5NDA2JTJDMTQuMzQ3NTUzNiUyMEMxNy4xODQxMjQxJTJDMTMuNTY2Njc5MyUyMDE2LjExNTQyNjclMkMxMy4wOTcyMjUyJTIwMTUuMjMwODIwNCUyQzEzLjA5NzIyNTIlMjBDMTMuODYxNzYzOCUyQzEzLjA5NzIyNTIlMjAxMi43NzQ2NTcyJTJDMTMu''@;'; + put 'put ''Njc1NDQ0JTIwMTIuMTExOTI5MiUyQzE1LjEzMDI4NzElMjBMMTAuMTUyODEyMSUyQzE5LjU2MDgxODklMjBMNy42Mzk0ODM3NiUyQzEzLjg3NjI0MDIlMjIlMjBpZCUzRCUyMkZpbGwtNCUyMiUyMGZpbGwlM0QlMjIlMjNGRkZGRkYlMjIlM0UlM0MlMkZwYXRoJTNFJTBBJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwQSUzQyUy''@;'; + put 'put ''RnN2ZyUzRSIpfS5pcy1vZmYtc2NyZWVue3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDtib3JkZXI6MCFpbXBvcnRhbnQ7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7d2lkdGg6MXB4IWltcG9ydGFudDtsZWZ0OjAhaW1wb3J0YW50O3RvcDotY29udmVydEJhc2VsaW5lVG9CYXNlMjAoMSkhaW1wb3J0''@;'; + put 'put ''YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7dmlzaWJpbGl0eTpoaWRkZW4haW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7bWFyZ2luOjAgMCAtY29udmVydEJhc2VsaW5lVG9CYXNlMjAoMSkgMCFpbXBvcnRhbnR9LmNsci1wb3BvdmVyLWNvbnRlbnR7cG9zaXRpb246Zml4ZWQ7''@;'; + put 'put ''ei1pbmRleDoxMDUwfTpyb290ey0tY2xyLWJ0bi12ZXJ0aWNhbC1tYXJnaW46LjNyZW07LS1jbHItYnRuLWhvcml6b250YWwtbWFyZ2luOi42cmVtOy0tY2xyLWJ0bi1ob3Jpem9udGFsLXBhZGRpbmc6LjZyZW07LS1jbHItYnRuLXZlcnRpY2FsLXBhZGRpbmc6MDstLWNsci1idG4tcGFkZGlu''@;'; + put 'put ''Zzp2YXIoLS1jbHItYnRuLXZlcnRpY2FsLXBhZGRpbmcpIHZhcigtLWNsci1idG4taG9yaXpvbnRhbC1wYWRkaW5nKTstLWNsci1idG4taGVpZ2h0OjEuOHJlbTstLWNsci1idG4taGVpZ2h0LXNtOjEuMnJlbTstLWNsci1idG4tZm9udC13ZWlnaHQ6NTAwOy0tY2xyLWJ0bi1ib3JkZXItcmFk''@;'; + put 'put ''aXVzOi4xNXJlbTstLWNsci1idG4tYm9yZGVyLXdpZHRoOi4wNXJlbTstLWNsci1idG4tb3V0bGluZS1iZy1jb2xvcjp0cmFuc3BhcmVudDstLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1saW5lLWhlaWdodDoxLjE1cmVtOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWZvbnQt''@;'; + put 'put ''c2l6ZTouNTVyZW07LS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtZm9udC13ZWlnaHQ6NTAwOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWhlaWdodDoxLjJyZW07LS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtcGFkZGluZzowIC42cmVtOy0tY2xyLWJ0bi1hcHBlYXJh''@;'; + put 'put ''bmNlLXN0YW5kYXJkLWljb24tc2l6ZTouNnJlbTstLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWxpbmUtaGVpZ2h0OjEuOHJlbTstLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWxldHRlci1zcGFjaW5nOi4xMmVtOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0tZm9udC1zaXplOi42cmVtOy0t''@;'; + put 'put ''Y2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0tZm9udC13ZWlnaHQ6NTAwOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0taGVpZ2h0OjEuOHJlbTstLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLXBhZGRpbmc6MCAuNnJlbTstLWNsci1idG4tZGVmYXVsdC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0''@;'; + put 'put ''aW9uLTYwMCk7LS1jbHItYnRuLWRlZmF1bHQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQtYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWRlZmF1bHQtaG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01''@;'; + put 'put ''MCk7LS1jbHItYnRuLWRlZmF1bHQtaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWJ0bi1kZWZhdWx0LWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MDApOy0tY2xyLWJ0bi1kZWZhdWx0LWRpc2FibGVkLWNvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJnLWNvbG9yKTstLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1i''@;'; + put 'put ''dG4tZGVmYXVsdC1jaGVja2VkLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFj''@;'; + put 'put ''dGlvbi02MDApOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWNvbG9yKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWJnLWNvbG9yOnZhcigtLWNsci1idG4tb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRl''@;'; + put 'put ''ZmF1bHQtb3V0bGluZS1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUwKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MDApOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1v''@;'; + put 'put ''dXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNs''@;'; + put 'put ''ci1idG4tZGVmYXVsdC1vdXRsaW5lLWNoZWNrZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3IpOy0tY2xyLWJ0bi1wcmltYXJ5LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1wcmltYXJ5LWJnLWNvbG9yOnZhcigtLWNsci1j''@;'; + put 'put ''b2xvci1hY3Rpb24tNjAwKTstLWNsci1idG4tcHJpbWFyeS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWJ0bi1wcmltYXJ5LWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1idG4tcHJpbWFyeS1ob3Zlci1jb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUwKTstLWNsci1idG4tcHJpbWFyeS1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNTAwKTstLWNsci1idG4tcHJpbWFyeS1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWJ0bi1w''@;'; + put 'put ''cmltYXJ5LWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLXByaW1hcnktY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItYnRuLXByaW1hcnktY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tc3VjY2Vzcy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tc3VjY2Vzcy1iZy1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItY29sb3Itc3VjY2Vzcy03MDApOy0tY2xyLWJ0bi1zdWNjZXNzLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtYmctY29sb3IpOy0tY2xyLWJ0bi1zdWNjZXNzLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTgwMCk7LS1jbHItYnRuLXN1Y2Nlc3Mt''@;'; + put 'put ''aG92ZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTkwMCk7LS1jbHItYnRuLXN1Y2Nlc3MtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAw''@;'; + put 'put ''KTstLWNsci1idG4tc3VjY2Vzcy1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWJ0bi1zdWNjZXNzLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWJ0bi1zdWNjZXNzLWNoZWNrZWQtYmct''@;'; + put 'put ''Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWhvdmVyLWJnLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1jb2xvcik7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy03MDAp''@;'; + put 'put ''Oy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1vdXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy03MDApOy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtaG92''@;'; + put 'put ''ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNTApOy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtOTAwKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9y''@;'; + put 'put ''LXN1Y2Nlc3MtNDAwKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1iZy1jb2xv''@;'; + put 'put ''cik7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWNoZWNrZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYm9yZGVyLWNvbG9y''@;'; + put 'put ''KTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLWRhbmdlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tZGFuZ2VyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5n''@;'; + put 'put ''ZXItNzAwKTstLWNsci1idG4tZGFuZ2VyLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1iZy1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLWRhbmdlci1ob3Zlci1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItYnRuLWRhbmdlci1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNsci1idG4tZGFuZ2VyLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLWRhbmdlci1kaXNh''@;'; + put 'put ''YmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWJ0bi1kYW5nZXItZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLWRhbmdlci1jaGVja2VkLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5n''@;'; + put 'put ''ZXItODAwKTstLWNsci1idG4tZGFuZ2VyLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItY29sb3IpOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTcwMCk7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWJnLWNvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1idG4tb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItMTAwKTstLWNs''@;'; + put 'put ''ci1idG4tZGFuZ2VyLW91dGxpbmUtaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci05MDApOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItMjAwKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQt''@;'; + put 'put ''Y29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWRpc2FibGVkLWNvbG9yKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWNv''@;'; + put 'put ''bG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLXdhcm5pbmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLXdhcm5pbmctYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci03MDApOy0tY2xyLWJ0bi13YXJuaW5nLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRu''@;'; + put 'put ''LWRhbmdlci1iZy1jb2xvcik7LS1jbHItYnRuLXdhcm5pbmctaG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWJ0bi13YXJuaW5nLWhvdmVyLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWNvbG9yKTstLWNsci1idG4td2FybmluZy1ib3gtc2hhZG93''@;'; + put 'put ''LWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNsci1idG4td2FybmluZy1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWJ0bi13YXJuaW5nLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1j''@;'; + put 'put ''bHItYnRuLXdhcm5pbmctZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYnRuLXdhcm5pbmctY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLXdhcm5pbmctY2hlY2tlZC1jb2xvcjp2YXIo''@;'; + put 'put ''LS1jbHItYnRuLWRhbmdlci1jb2xvcik7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTcwMCk7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi13YXJu''@;'; + put 'put ''aW5nLW91dGxpbmUtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItODAwKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItMTAwKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWhvdmVyLWNvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci0yMDApOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTst''@;'; + put 'put ''LWNsci1idG4td2FybmluZy1vdXRsaW5lLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJs''@;'; + put 'put ''ZWQtY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1saW5rLWNv''@;'; + put 'put ''bG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1idG4tbGluay1iZy1jb2xvcjp0cmFuc3BhcmVudDstLWNsci1idG4tbGluay1ib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmstaG92ZXItYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmst''@;'; + put 'put ''aG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLWxpbmstZGlzYWJsZWQtYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmstZGlzYWJs''@;'; + put 'put ''ZWQtYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50Oy0tY2xyLWJ0bi1saW5rLWNoZWNrZWQtYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmstY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItYnRuLWludmVyc2UtY29sb3I6dmFyKC0tY2xyLWNv''@;'; + put 'put ''bG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLWludmVyc2UtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1pbnZlcnNlLWJnLWNvbG9yOnRyYW5zcGFyZW50Oy0tY2xyLWJ0bi1pbnZlcnNlLWhvdmVyLWJnLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwg''@;'; + put 'put ''LjE1KTstLWNsci1idG4taW52ZXJzZS1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4taW52ZXJzZS1ib3gtc2hhZG93LWNvbG9yOnJnYmEoMCwgMCwgMCwgLjI1KTstLWNsci1idG4taW52ZXJzZS1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3It''@;'; + put 'put ''bmV1dHJhbC0wKTstLWNsci1idG4taW52ZXJzZS1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtYmctY29sb3IpOy0tY2xyLWJ0bi1pbnZlcnNlLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4taW52ZXJzZS1j''@;'; + put 'put ''aGVja2VkLWJnLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgLjE1KTstLWNsci1idG4taW52ZXJzZS1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1pY29uLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1jb2xv''@;'; + put 'put ''ciwgIzY2NjY2Nik7LS1jbHItYnRuLWdyb3VwLWZvY3VzLW91dGxpbmU6IzUxY2JlZX0uYnRue2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrOy13ZWJraXQtYXBwZWFyYW5jZTpub25lIWltcG9ydGFudDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigt''@;'; + put 'put ''LWNsci1idG4tYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItYnRuLWJvcmRlci13aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7bWluLXdpZHRoOjMuNnJlbTttYXgtd2lkdGg6MThyZW07d2hpdGUtc3BhY2U6''@;'; + put 'put ''bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1idG4tZGVmYXVsdC1ib3JkZXItY29sb3IsICMwMDcyYTMpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1idG4tZGVmYXVsdC1jb2xvciwgIzAwNzJhMyk7bGluZS1oZWlnaHQ6MS44cmVtO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWxpbmUtaGVpZ2h0LCAxLjhyZW0pO2xldHRlci1zcGFjaW5nOi4xMmVtO2ZvbnQtc2l6ZTouNnJlbTtmb250LXNpemU6dmFyKC0t''@;'; + put 'put ''Y2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0tZm9udC1zaXplLCAuNnJlbSk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWZvbnQtd2VpZ2h0LCA1MDApO2hlaWdodDoxLjhyZW07aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1m''@;'; + put 'put ''b3JtLWhlaWdodCwgMS44cmVtKTtwYWRkaW5nOjAgLjZyZW07cGFkZGluZzp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2UtZm9ybS1wYWRkaW5nLCAwIC42cmVtKX0uYnRuOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5idG4gY2RzLWljb24sLmJ0biBjbHItaWNvbntjb2xvcjojMDA3MmEz''@;'; + put 'put ''O2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvciwgIzAwNzJhMyl9LmJ0bjp2aXNpdGVke2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNvbG9yLCAjMDA3MmEzKX0uYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2UzZjVmYztiYWNrZ3JvdW5kLWNv''@;'; + put 'put ''bG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1ob3Zlci1iZy1jb2xvciwgI2UzZjVmYyk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtaG92ZXItY29sb3IsICMwMDU2N2EpfS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMTc5YmQzIGluc2V0O2JveC1z''@;'; + put 'put ''aGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJveC1zaGFkb3ctY29sb3IsICMxNzliZDMpIGluc2V0fS5idG4uZGlzYWJsZWQsLmJ0bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7''@;'; + put 'put ''Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1jb2xvcjojOGM4YzhjO2JvcmRlci1jb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjOGM4YzhjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi1ncm91cD4uYnRuIGNsci1pY29uLC5idG4gY2xyLWljb257dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLS4xcmVtLDApfS5idG4tZ3JvdXA+LmJ0biBjZHMtaWNv''@;'; + put 'put ''biwuYnRuIGNkcy1pY29ue21hcmdpbi10b3A6LS4xNHJlbX0uYnRuLmJ0bi1zZWNvbmRhcnksLmJ0bi5idG4taW5mbywuYnRuLmJ0bi1vdXRsaW5lLC5idG4uYnRuLXByaW1hcnktb3V0bGluZSwuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnksLmJ0''@;'; + put 'put ''bi5idG4tb3V0bGluZS1zZWNvbmRhcnksLmJ0bi5idG4taW5mby1vdXRsaW5lLC5idG4tc2Vjb25kYXJ5IC5idG4sLmJ0bi1pbmZvIC5idG4sLmJ0bi1vdXRsaW5lIC5idG4sLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0biwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG4sLmJ0bi1vdXRsaW5l''@;'; + put 'put ''LXByaW1hcnkgLmJ0biwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG4sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biwuYnRuLW91dGxpbmUtaW5mbyAuYnRue2JvcmRlci1jb2xvcjojMDA3MmEzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtYm9yZGVyLWNvbG9yLCAjMDA3MmEz''@;'; + put 'put ''KTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY29sb3IsICMwMDcyYTMpfS5idG4uYnRuLXNlY29u''@;'; + put 'put ''ZGFyeSBjZHMtaWNvbiwuYnRuLmJ0bi1zZWNvbmRhcnkgY2xyLWljb24sLmJ0bi5idG4taW5mbyBjZHMtaWNvbiwuYnRuLmJ0bi1pbmZvIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUg''@;'; + put 'put ''Y2RzLWljb24sLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGNsci1pY29uLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5l''@;'; + put 'put ''LXByaW1hcnkgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgY2xyLWljb24sLmJ0bi5idG4taW5mby1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLWluZm8tb3V0bGluZSBjbHItaWNvbiwuYnRuLXNlY29uZGFy''@;'; + put 'put ''eSAuYnRuIGNkcy1pY29uLC5idG4tc2Vjb25kYXJ5IC5idG4gY2xyLWljb24sLmJ0bi1pbmZvIC5idG4gY2RzLWljb24sLmJ0bi1pbmZvIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1wcmltYXJ5LW91dGxp''@;'; + put 'put ''bmUgLmJ0biBjZHMtaWNvbiwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0biBjZHMtaWNvbiwuYnRu''@;'; + put 'put ''LW91dGxpbmUtcHJpbWFyeSAuYnRuIGNsci1pY29uLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG4gY2xyLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLWluZm8tb3V0bGluZSAuYnRuIGNsci1p''@;'; + put 'put ''Y29uLC5idG4tb3V0bGluZS1pbmZvIC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lLWluZm8gLmJ0biBjbHItaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvciwgIzAwNzJhMyl9LmJ0bi5idG4tc2Vjb25kYXJ5OnZpc2l0ZWQsLmJ0bi5idG4taW5m''@;'; + put 'put ''bzp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmU6dmlzaXRlZCwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6dmlzaXRlZCwuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZTp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeTp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OnZp''@;'; + put 'put ''c2l0ZWQsLmJ0bi5idG4taW5mby1vdXRsaW5lOnZpc2l0ZWQsLmJ0bi1zZWNvbmRhcnkgLmJ0bjp2aXNpdGVkLC5idG4taW5mbyAuYnRuOnZpc2l0ZWQsLmJ0bi1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuOnZpc2l0ZWQsLmJ0bi1zZWNvbmRhcnktb3V0''@;'; + put 'put ''bGluZSAuYnRuOnZpc2l0ZWQsLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0bjp2aXNpdGVkLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0bjp2aXNpdGVkLC5idG4taW5mby1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLW91dGxpbmUtaW5mbyAuYnRuOnZpc2l0ZWR7Y29sb3I6IzAwNzJhMztj''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY29sb3IsICMwMDcyYTMpfS5idG4uYnRuLXNlY29uZGFyeTpob3ZlciwuYnRuLmJ0bi1pbmZvOmhvdmVyLC5idG4uYnRuLW91dGxpbmU6aG92ZXIsLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lOmhvdmVyLC5idG4uYnRuLXNlY29uZGFyeS1vdXRs''@;'; + put 'put ''aW5lOmhvdmVyLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeTpob3ZlciwuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpob3ZlciwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6aG92ZXIsLmJ0bi1zZWNvbmRhcnkgLmJ0bjpob3ZlciwuYnRuLWluZm8gLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUgLmJ0''@;'; + put 'put ''bjpob3ZlciwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuOmhvdmVyLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuOmhvdmVyLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0bjpob3ZlciwuYnRuLWluZm8tb3V0bGluZSAuYnRuOmhv''@;'; + put 'put ''dmVyLC5idG4tb3V0bGluZS1pbmZvIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZTNmNWZjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWhvdmVyLWJnLWNvbG9yLCAjZTNmNWZjKTtjb2xvcjojMDA1NjdhO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1o''@;'; + put 'put ''b3Zlci1jb2xvciwgIzAwNTY3YSl9LmJ0bi5idG4tc2Vjb25kYXJ5OmFjdGl2ZSwuYnRuLmJ0bi1pbmZvOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6YWN0aXZlLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0''@;'; + put 'put ''bi1vdXRsaW5lLXByaW1hcnk6YWN0aXZlLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmFjdGl2ZSwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6YWN0aXZlLC5idG4tc2Vjb25kYXJ5IC5idG46YWN0aXZlLC5idG4taW5mbyAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUgLmJ0bjphY3RpdmUsLmJ0''@;'; + put 'put ''bi1wcmltYXJ5LW91dGxpbmUgLmJ0bjphY3RpdmUsLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG46YWN0aXZlLC5idG4taW5mby1vdXRsaW5lIC5idG46YWN0aXZlLC5i''@;'; + put 'put ''dG4tb3V0bGluZS1pbmZvIC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMTc5YmQzIGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJveC1zaGFkb3ctY29sb3IsICMxNzliZDMpIGluc2V0fS5idG4uYnRuLXNlY29uZGFyeS5kaXNhYmxl''@;'; + put 'put ''ZCwuYnRuLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQsLmJ0bi5idG4taW5mby5kaXNhYmxlZCwuYnRuLmJ0bi1pbmZvOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZTpkaXNhYmxlZCwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUuZGlzYWJsZWQsLmJ0''@;'; + put 'put ''bi5idG4tcHJpbWFyeS1vdXRsaW5lOmRpc2FibGVkLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnk6ZGlz''@;'; + put 'put ''YWJsZWQsLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnk6ZGlzYWJsZWQsLmJ0bi5idG4taW5mby1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLWluZm8tb3V0bGluZTpkaXNhYmxlZCwuYnRuLXNlY29uZGFyeSAuYnRuLmRpc2Fi''@;'; + put 'put ''bGVkLC5idG4tc2Vjb25kYXJ5IC5idG46ZGlzYWJsZWQsLmJ0bi1pbmZvIC5idG4uZGlzYWJsZWQsLmJ0bi1pbmZvIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0bi5kaXNh''@;'; + put 'put ''YmxlZCwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuOmRpc2FibGVkLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUtcHJp''@;'; + put 'put ''bWFyeSAuYnRuOmRpc2FibGVkLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG46ZGlzYWJsZWQsLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLWluZm8tb3V0bGluZSAuYnRuOmRpc2FibGVkLC5idG4tb3V0''@;'; + put 'put ''bGluZS1pbmZvIC5idG4uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWluZm8gLmJ0bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xv''@;'; + put 'put ''cjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1jb2xvcjojOGM4YzhjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAj''@;'; + put 'put ''OGM4YzhjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tcHJpbWFyeSwuYnRuLXByaW1hcnkgLmJ0bntib3JkZXItY29sb3I6IzAwNzJhMztib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWJvcmRlci1jb2xvciwgIzAwNzJhMyk7YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2Jh''@;'; + put 'put ''Y2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWJnLWNvbG9yLCAjMDA3MmEzKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXByaW1hcnkgY2RzLWljb24sLmJ0bi5idG4tcHJpbWFyeSBjbHItaWNvbiwuYnRu''@;'; + put 'put ''LXByaW1hcnkgLmJ0biBjZHMtaWNvbiwuYnRuLXByaW1hcnkgLmJ0biBjbHItaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXByaW1hcnk6dmlzaXRlZCwuYnRuLXByaW1hcnkgLmJ0bjp2aXNpdGVke2NvbG9yOiNmZmY7''@;'; + put 'put ''Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4tcHJpbWFyeTpob3ZlciwuYnRuLXByaW1hcnkgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDU2N2E7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktaG92ZXItYmctY29s''@;'; + put 'put ''b3IsICMwMDU2N2EpO2NvbG9yOiNlM2Y1ZmM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWhvdmVyLWNvbG9yLCAjZTNmNWZjKX0uYnRuLmJ0bi1wcmltYXJ5OmFjdGl2ZSwuYnRuLXByaW1hcnkgLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4xcmVtICMxNzliZDMgaW5zZXQ7Ym94LXNo''@;'; + put 'put ''YWRvdzowIC4xcmVtIDAgMCB2YXIoLS1jbHItYnRuLXByaW1hcnktYm94LXNoYWRvdy1jb2xvciwgIzE3OWJkMykgaW5zZXR9LmJ0bi5idG4tcHJpbWFyeS5kaXNhYmxlZCwuYnRuLmJ0bi1wcmltYXJ5OmRpc2FibGVkLC5idG4tcHJpbWFyeSAuYnRuLmRpc2FibGVkLC5idG4tcHJpbWFyeSAu''@;'; + put 'put ''YnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWRpc2FibGVkLWNvbG9yLCAjNjY2NjY2KTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1h''@;'; + put 'put ''cnktZGlzYWJsZWQtYmctY29sb3IsICNjY2NjY2MpO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tc3VjY2VzcywuYnRuLXN1Y2Nlc3MgLmJ0''@;'; + put 'put ''bntib3JkZXItY29sb3I6IzNjODUwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWJvcmRlci1jb2xvciwgIzNjODUwMCk7YmFja2dyb3VuZC1jb2xvcjojM2M4NTAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWJnLWNvbG9yLCAjM2M4NTAwKTtj''@;'; + put 'put ''b2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXN1Y2Nlc3MgY2RzLWljb24sLmJ0bi5idG4tc3VjY2VzcyBjbHItaWNvbiwuYnRuLXN1Y2Nlc3MgLmJ0biBjZHMtaWNvbiwuYnRuLXN1Y2Nlc3MgLmJ0biBjbHItaWNvbntjb2xvcjoj''@;'; + put 'put ''ZmZmO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXN1Y2Nlc3M6dmlzaXRlZCwuYnRuLXN1Y2Nlc3MgLmJ0bjp2aXNpdGVke2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4tc3VjY2Vz''@;'; + put 'put ''czpob3ZlciwuYnRuLXN1Y2Nlc3MgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzMDZiMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtaG92ZXItYmctY29sb3IsICMzMDZiMDApO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWhvdmVy''@;'; + put 'put ''LWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4tc3VjY2VzczphY3RpdmUsLmJ0bi1zdWNjZXNzIC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMjU1MjAwIGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWJveC1zaGFkb3ctY29sb3IsICMyNTUy''@;'; + put 'put ''MDApIGluc2V0fS5idG4uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQsLmJ0bi5idG4tc3VjY2VzczpkaXNhYmxlZCwuYnRuLXN1Y2Nlc3MgLmJ0bi5kaXNhYmxlZCwuYnRuLXN1Y2Nlc3MgLmJ0bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1kaXNhYmxlZC1j''@;'; + put 'put ''b2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWRpc2FibGVkLWJnLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWRpc2FibGVkLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLXdhcm5pbmcsLmJ0bi13YXJuaW5nIC5idG57Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1ib3JkZXItY29sb3IsICk7YmFja2dyb3Vu''@;'; + put 'put ''ZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctYmctY29sb3IsICk7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWNvbG9yLCApfS5idG4uYnRuLXdhcm5pbmcgY2RzLWljb24sLmJ0bi5idG4td2FybmluZyBjbHItaWNvbiwuYnRuLXdhcm5pbmcgLmJ0biBjZHMtaWNvbiwuYnRuLXdh''@;'; + put 'put ''cm5pbmcgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctY29sb3IsICl9LmJ0bi5idG4td2FybmluZzp2aXNpdGVkLC5idG4td2FybmluZyAuYnRuOnZpc2l0ZWR7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWNvbG9yLCApfS5idG4uYnRuLXdhcm5pbmc6aG92''@;'; + put 'put ''ZXIsLmJ0bi13YXJuaW5nIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctaG92ZXItYmctY29sb3IsICk7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWhvdmVyLWNvbG9yLCApfS5idG4uYnRuLXdhcm5pbmc6YWN0aXZlLC5idG4td2FybmluZyAu''@;'; + put 'put ''YnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjFyZW0gaW5zZXQ7Ym94LXNoYWRvdzowIC4xcmVtIDAgMCB2YXIoLS1jbHItYnRuLXdhcm5pbmctYm94LXNoYWRvdy1jb2xvciwgKSBpbnNldH0uYnRuLmJ0bi13YXJuaW5nLmRpc2FibGVkLC5idG4uYnRuLXdhcm5pbmc6ZGlzYWJsZWQsLmJ0bi13''@;'; + put 'put ''YXJuaW5nIC5idG4uZGlzYWJsZWQsLmJ0bi13YXJuaW5nIC5idG46ZGlzYWJsZWR7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWRpc2FibGVkLWNvbG9yLCApO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWRp''@;'; + put 'put ''c2FibGVkLWJnLWNvbG9yLCApO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCApO2JveC1zaGFkb3c6bm9uZX0uYnRuLmJ0bi1kYW5nZXIsLmJ0bi1kYW5nZXIgLmJ0bntib3JkZXItY29sb3I6I2RiMjEwMDtib3JkZXItY29sb3I6dmFy''@;'; + put 'put ''KC0tY2xyLWJ0bi1kYW5nZXItYm9yZGVyLWNvbG9yLCAjZGIyMTAwKTtiYWNrZ3JvdW5kLWNvbG9yOiNkYjIxMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1iZy1jb2xvciwgI2RiMjEwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jb2xv''@;'; + put 'put ''ciwgd2hpdGUpfS5idG4uYnRuLWRhbmdlciBjZHMtaWNvbiwuYnRuLmJ0bi1kYW5nZXIgY2xyLWljb24sLmJ0bi1kYW5nZXIgLmJ0biBjZHMtaWNvbiwuYnRuLWRhbmdlciAuYnRuIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItY29sb3IsIHdoaXRlKX0u''@;'; + put 'put ''YnRuLmJ0bi1kYW5nZXI6dmlzaXRlZCwuYnRuLWRhbmdlciAuYnRuOnZpc2l0ZWR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jb2xvciwgd2hpdGUpfS5idG4uYnRuLWRhbmdlcjpob3ZlciwuYnRuLWRhbmdlciAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2My''@;'; + put 'put ''MWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWhvdmVyLWJnLWNvbG9yLCAjYzIxZDAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWhvdmVyLWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4tZGFuZ2VyOmFjdGl2ZSwuYnRuLWRhbmdlciAuYnRu''@;'; + put 'put ''OmFjdGl2ZXtib3gtc2hhZG93OjAgLjFyZW0gIzk5MTcwMCBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4tZGFuZ2VyLWJveC1zaGFkb3ctY29sb3IsICM5OTE3MDApIGluc2V0fS5idG4uYnRuLWRhbmdlci5kaXNhYmxlZCwuYnRuLmJ0bi1kYW5nZXI6ZGlzYWJs''@;'; + put 'put ''ZWQsLmJ0bi1kYW5nZXIgLmJ0bi5kaXNhYmxlZCwuYnRuLWRhbmdlciAuYnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWRpc2FibGVkLWJnLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjNjY2NjY2KTtib3gtc2hhZG93''@;'; + put 'put ''Om5vbmV9LmJ0bi5idG4tb3V0bGluZSwuYnRuLmJ0bi1vdXRsaW5lIC5idG4sLmJ0bi5idG4taW5mby1vdXRsaW5lLC5idG4taW5mby1vdXRsaW5lIC5idG4sLmJ0bi5idG4tb3V0bGluZS1pbmZvLC5idG4tb3V0bGluZSAuYnRue2JvcmRlci1jb2xvcjojMDA3MmEzO2JvcmRlci1jb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ib3JkZXItY29sb3IsICMwMDcyYTMpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2NvbG9yOiMwMDcyYTM7''@;'; + put 'put ''Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3IsICMwMDcyYTMpfS5idG4uYnRuLW91dGxpbmUgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZSAuYnRuIGNsci1pY29u''@;'; + put 'put ''LC5idG4uYnRuLWluZm8tb3V0bGluZSBjZHMtaWNvbiwuYnRuLmJ0bi1pbmZvLW91dGxpbmUgY2xyLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLWluZm8tb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtaW5mbyBjZHMtaWNvbiwuYnRuLmJ0''@;'; + put 'put ''bi1vdXRsaW5lLWluZm8gY2xyLWljb24sLmJ0bi1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lIC5idG4gY2xyLWljb257Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1jb2xvciwgIzAwNzJhMyl9LmJ0bi5idG4tb3V0bGluZTp2aXNp''@;'; + put 'put ''dGVkLC5idG4uYnRuLW91dGxpbmUgLmJ0bjp2aXNpdGVkLC5idG4uYnRuLWluZm8tb3V0bGluZTp2aXNpdGVkLC5idG4taW5mby1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLmJ0bi1vdXRsaW5lLWluZm86dmlzaXRlZCwuYnRuLW91dGxpbmUgLmJ0bjp2aXNpdGVke2NvbG9yOiMwMDcyYTM7''@;'; + put 'put ''Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3IsICMwMDcyYTMpfS5idG4uYnRuLW91dGxpbmU6aG92ZXIsLmJ0bi5idG4tb3V0bGluZSAuYnRuOmhvdmVyLC5idG4uYnRuLWluZm8tb3V0bGluZTpob3ZlciwuYnRuLWluZm8tb3V0bGluZSAuYnRuOmhvdmVyLC5idG4u''@;'; + put 'put ''YnRuLW91dGxpbmUtaW5mbzpob3ZlciwuYnRuLW91dGxpbmUgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlM2Y1ZmM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ob3Zlci1iZy1jb2xvciwgI2UzZjVmYyk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ob3Zlci1jb2xvciwgIzAwNTY3YSl9LmJ0bi5idG4tb3V0bGluZTphY3RpdmUsLmJ0bi5idG4tb3V0bGluZSAuYnRuOmFjdGl2ZSwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6YWN0aXZlLC5idG4taW5mby1vdXRsaW5lIC5idG46YWN0aXZlLC5i''@;'; + put 'put ''dG4uYnRuLW91dGxpbmUtaW5mbzphY3RpdmUsLmJ0bi1vdXRsaW5lIC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMTc5YmQzIGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYm94LXNoYWRvdy1jb2xvciwgIzE3OWJkMykg''@;'; + put 'put ''aW5zZXR9LmJ0bi5idG4tb3V0bGluZS5kaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi5idG4taW5mby1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLWluZm8t''@;'; + put 'put ''b3V0bGluZTpkaXNhYmxlZCwuYnRuLWluZm8tb3V0bGluZSAuYnRuLmRpc2FibGVkLC5idG4taW5mby1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1pbmZvLmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtaW5mbzpkaXNhYmxlZCwuYnRuLW91dGxpbmUgLmJ0bi5kaXNh''@;'; + put 'put ''YmxlZCwuYnRuLW91dGxpbmUgLmJ0bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2FibGVkLWNvbG9yLCAjNjY2NjY2KTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2Jh''@;'; + put 'put ''Y2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItY29sb3I6IzhjOGM4Yztib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAj''@;'; + put 'put ''OGM4YzhjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lLC5idG4uYnRuLW91dGxpbmUtc3VjY2VzcywuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG57Ym9yZGVyLWNvbG9yOiMzYzg1MDA7Ym9yZGVyLWNvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJvcmRlci1jb2xvciwgIzNjODUwMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzNjODUwMDtjb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jb2xvciwgIzNjODUwMCl9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgY2RzLWljb24sLmJ0bi5idG4tb3V0bGlu''@;'; + put 'put ''ZS1zdWNjZXNzIGNsci1pY29uLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmJ0biBjbHItaWNvbiwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG4gY2xyLWljb257Y29sb3I6''@;'; + put 'put ''IzNjODUwMDtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jb2xvciwgIzNjODUwMCl9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lOnZpc2l0ZWQsLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzOnZpc2l0ZWQsLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmJ0bjp2aXNpdGVkLC5idG4t''@;'; + put 'put ''b3V0bGluZS1zdWNjZXNzIC5idG46dmlzaXRlZHtjb2xvcjojM2M4NTAwO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWNvbG9yLCAjM2M4NTAwKX0uYnRuLmJ0bi1zdWNjZXNzLW91dGxpbmU6aG92ZXIsLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzOmhvdmVyLC5idG4tc3Vj''@;'; + put 'put ''Y2Vzcy1vdXRsaW5lIC5idG46aG92ZXIsLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNkZmYwZDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1ob3Zlci1iZy1jb2xvciwgI2RmZjBkMCk7Y29sb3I6IzI1NTIw''@;'; + put 'put ''MDtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1ob3Zlci1jb2xvciwgIzI1NTIwMCl9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6YWN0aXZlLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tb3V0''@;'; + put 'put ''bGluZS1zdWNjZXNzIC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjNWViNzE1IGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYm94LXNoYWRvdy1jb2xvciwgIzVlYjcxNSkgaW5zZXR9LmJ0bi5idG4tc3VjY2Vzcy1vdXRs''@;'; + put 'put ''aW5lLmRpc2FibGVkLC5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZTpkaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzOmRpc2FibGVkLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi1zdWNjZXNzLW91''@;'; + put 'put ''dGxpbmUgLmJ0bjpkaXNhYmxlZCwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuLmRpc2FibGVkLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG46ZGlzYWJsZWR7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vy''@;'; + put 'put ''c29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWRpc2FibGVkLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Ym9yZGVyLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLWNv''@;'; + put 'put ''bG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvciwgIzhjOGM4Yyk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLXdhcm5pbmctb3V0bGluZSwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmcsLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0biwuYnRuLW91''@;'; + put 'put ''dGxpbmUtd2FybmluZyAuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1ib3JkZXItY29sb3IsICk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1iZy1jb2xvciwgKTtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmct''@;'; + put 'put ''b3V0bGluZS1jb2xvciwgKX0uYnRuLmJ0bi13YXJuaW5nLW91dGxpbmUgY2RzLWljb24sLmJ0bi5idG4td2FybmluZy1vdXRsaW5lIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtd2FybmluZyBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmcgY2xyLWljb24sLmJ0bi13YXJuaW5n''@;'; + put 'put ''LW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tb3V0bGluZS13YXJuaW5nIC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1j''@;'; + put 'put ''b2xvciwgKX0uYnRuLmJ0bi13YXJuaW5nLW91dGxpbmU6dmlzaXRlZCwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmc6dmlzaXRlZCwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuOnZpc2l0ZWQsLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmJ0bjp2aXNpdGVke2NvbG9yOnZhcigtLWNsci1idG4td2Fy''@;'; + put 'put ''bmluZy1vdXRsaW5lLWNvbG9yLCApfS5idG4uYnRuLXdhcm5pbmctb3V0bGluZTpob3ZlciwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmc6aG92ZXIsLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtaG92ZXItYmctY29sb3IsICk7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtaG92ZXItY29sb3IsICl9LmJ0bi5idG4td2FybmluZy1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmc6YWN0aXZlLC5i''@;'; + put 'put ''dG4td2FybmluZy1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tb3V0bGluZS13YXJuaW5nIC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3IsICkgaW5z''@;'; + put 'put ''ZXR9LmJ0bi5idG4td2FybmluZy1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLXdhcm5pbmctb3V0bGluZTpkaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nOmRpc2FibGVkLC5idG4td2FybmluZy1vdXRsaW5lIC5idG4u''@;'; + put 'put ''ZGlzYWJsZWQsLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0bjpkaXNhYmxlZCwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuLmRpc2FibGVkLC5idG4tb3V0bGluZS13YXJuaW5nIC5idG46ZGlzYWJsZWR7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtY29sb3Is''@;'; + put 'put ''ICk7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1kaXNhYmxlZC1iZy1jb2xvciwgKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtYm9yZGVyLWNvbG9y''@;'; + put 'put ''LCApO2JveC1zaGFkb3c6bm9uZX0uYnRuLmJ0bi1kYW5nZXItb3V0bGluZSwuYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG4sLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRue2JvcmRlci1jb2xvcjojYzIxZDAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRu''@;'; + put 'put ''LWRhbmdlci1vdXRsaW5lLWJvcmRlci1jb2xvciwgI2MyMWQwMCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYmctY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjojZGIyMTAwO2NvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1idG4tZGFuZ2VyLW91dGxpbmUtY29sb3IsICNkYjIxMDApfS5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGNsci1p''@;'; + put 'put ''Y29uLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS1kYW5nZXIgLmJ0biBjbHItaWNvbntjb2xvcjojZGIyMTAwO2NvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY29sb3IsICNkYjIxMDApfS5idG4uYnRuLWRhbmdlci1vdXRsaW5lOnZpc2l0ZWQsLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6dmlzaXRlZCwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG46dmlz''@;'; + put 'put ''aXRlZHtjb2xvcjojZGIyMTAwO2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY29sb3IsICNkYjIxMDApfS5idG4uYnRuLWRhbmdlci1vdXRsaW5lOmhvdmVyLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyOmhvdmVyLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bjpob3ZlciwuYnRu''@;'; + put 'put ''LW91dGxpbmUtZGFuZ2VyIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmVkZGQ3O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1ob3Zlci1iZy1jb2xvciwgI2ZlZGRkNyk7Y29sb3I6Izk5MTcwMDtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1v''@;'; + put 'put ''dXRsaW5lLWhvdmVyLWNvbG9yLCAjOTkxNzAwKX0uYnRuLmJ0bi1kYW5nZXItb3V0bGluZTphY3RpdmUsLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6YWN0aXZlLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bjphY3RpdmUsLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuOmFjdGl2ZXtib3gtc2hhZG93''@;'; + put 'put ''OjAgLjFyZW0gI2ZjYzViYiBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYm94LXNoYWRvdy1jb2xvciwgI2ZjYzViYikgaW5zZXR9LmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUuZGlzYWJsZWQsLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmU6''@;'; + put 'put ''ZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQsLmJ0bi1kYW5nZXItb3V0bGluZSAuYnRuLmRpc2FibGVkLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bjpkaXNhYmxlZCwuYnRuLW91dGxpbmUtZGFuZ2VyIC5i''@;'; + put 'put ''dG4uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp0''@;'; + put 'put ''cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1kaXNhYmxlZC1ib3JkZXIt''@;'; + put 'put ''Y29sb3IsICM2NjY2NjYpO2JveC1zaGFkb3c6bm9uZX0uYnRuLmJ0bi1saW5rLC5idG4tbGluayAuYnRue2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtY29sb3I6dHJh''@;'; + put 'put ''bnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstYmctY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1jb2xvciwgIzAwNzJhMyl9LmJ0bi5idG4tbGluayBjZHMtaWNvbiwuYnRuLmJ0bi1saW5rIGNsci1p''@;'; + put 'put ''Y29uLC5idG4tbGluayAuYnRuIGNkcy1pY29uLC5idG4tbGluayAuYnRuIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWNvbG9yLCAjMDA3MmEzKX0uYnRuLmJ0bi1saW5rOnZpc2l0ZWQsLmJ0bi1saW5rIC5idG46dmlzaXRlZHtjb2xvcjojMDA3MmEz''@;'; + put 'put ''O2NvbG9yOnZhcigtLWNsci1idG4tbGluay1jb2xvciwgIzAwNzJhMyl9LmJ0bi5idG4tbGluazpob3ZlciwuYnRuLWxpbmsgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWhvdmVyLWJnLWNvbG9yLCB0''@;'; + put 'put ''cmFuc3BhcmVudCk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstaG92ZXItY29sb3IsICMwMDU2N2EpfS5idG4uYnRuLWxpbms6YWN0aXZlLC5idG4tbGluayAuYnRuOmFjdGl2ZXtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tbGluay5kaXNhYmxlZCwuYnRuLmJ0bi1s''@;'; + put 'put ''aW5rOmRpc2FibGVkLC5idG4tbGluayAuYnRuLmRpc2FibGVkLC5idG4tbGluayAuYnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWNvbG9yLCAjNjY2NjY2KTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDtiYWNrZ3JvdW5kLWNv''@;'; + put 'put ''bG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCB0''@;'; + put 'put ''cmFuc3BhcmVudCk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLWludmVyc2UsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLC5idG4taW52ZXJzZSAuYnRue2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtYm9yZGVyLWNvbG9yLCB3''@;'; + put 'put ''aGl0ZSk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4taW52ZXJz''@;'; + put 'put ''ZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2RzLWljb24sLmJ0bi5idG4taW52ZXJzZSBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2xyLWljb24sLmJ0bi1pbnZlcnNlIC5idG4gY2RzLWljb24sLmJ0bi1pbnZlcnNlIC5i''@;'; + put 'put ''dG4gY2xyLWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtY29sb3IsIHdoaXRlKX0uYnRuLmJ0bi1pbnZlcnNlOnZpc2l0ZWQsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOnZpc2l0ZWQsLmJ0bi1pbnZlcnNlIC5idG46dmlzaXRlZHtjb2xvcjoj''@;'; + put 'put ''ZmZmO2NvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1jb2xvciwgd2hpdGUpfS5idG4uYnRuLWludmVyc2U6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOmhvdmVyLC5idG4taW52ZXJzZSAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjI2O2JhY2tn''@;'; + put 'put ''cm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWhvdmVyLWJnLWNvbG9yLCByZ2JhKDI1NSwgMjU1LCAyNTUsIC4xNSkpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWhvdmVyLWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4taW52ZXJzZTphY3RpdmUsLmFsZXJ0''@;'; + put 'put ''LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOmFjdGl2ZSwuYnRuLWludmVyc2UgLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4xcmVtICMwMDAwMDA0MCBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4taW52ZXJzZS1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDAs''@;'; + put 'put ''IDAsIDAsIC4yNSkpIGluc2V0fS5idG4uYnRuLWludmVyc2UuZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLmRpc2FibGVkLC5idG4uYnRuLWludmVyc2U6ZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOmRpc2FibGVkLC5idG4taW52''@;'; + put 'put ''ZXJzZSAuYnRuLmRpc2FibGVkLC5idG4taW52ZXJzZSAuYnRuOmRpc2FibGVke2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWRpc2FibGVkLWNvbG9yLCB3aGl0ZSk7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVu''@;'; + put 'put ''dDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1kaXNhYmxlZC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCB3aGl0ZSk7Ym94LXNoYWRv''@;'; + put 'put ''dzpub25lfS5idG4uYnRuLXNtLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biwuYnRuLXNtIC5idG57bGluZS1oZWlnaHQ6MS4xNXJlbTtsaW5lLWhlaWdodDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtbGluZS1oZWlnaHQsIDEuMTVyZW0pO2xldHRlci1zcGFj''@;'; + put 'put ''aW5nOi4wNzNlbTtmb250LXNpemU6LjU1cmVtO2ZvbnQtc2l6ZTp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtZm9udC1zaXplLCAuNTVyZW0pO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdodDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtZm9udC13ZWlnaHQs''@;'; + put 'put ''IDUwMCk7aGVpZ2h0OjEuMnJlbTtoZWlnaHQ6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWhlaWdodCwgMS4ycmVtKTtwYWRkaW5nOjAgLjZyZW07cGFkZGluZzp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtcGFkZGluZywgMCAuNnJlbSl9LmJ0bi1ibG9ja3tk''@;'; + put 'put ''aXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCV9LmJ0bnttYXJnaW4tdG9wOi4zcmVtO21hcmdpbi10b3A6dmFyKC0tY2xyLWJ0bi12ZXJ0aWNhbC1tYXJnaW4sIC4zcmVtKTttYXJnaW4tYm90dG9tOi4zcmVtO21hcmdpbi1ib3R0b206dmFyKC0tY2xyLWJ0bi12ZXJ0aWNh''@;'; + put 'put ''bC1tYXJnaW4sIC4zcmVtKTttYXJnaW4tcmlnaHQ6LjZyZW07bWFyZ2luLXJpZ2h0OnZhcigtLWNsci1idG4taG9yaXpvbnRhbC1tYXJnaW4sIC42cmVtKTttYXJnaW4tbGVmdDowfS5idG4uYnRuLWxpbmt7bWFyZ2luLXJpZ2h0OjB9LmJ0bi5idG4tbGluay5idG4taW52ZXJzZSwuYWxlcnQt''@;'; + put 'put ''YXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4uYnRuLWxpbmt7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tc206bm90KC5idG4tbGluaykgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOm5vdCguYnRuLWxpbmspIGNsci1pY29ue3dpZHRoOi42cmVtO3dp''@;'; + put 'put ''ZHRoOnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1pY29uLXNpemUsIC42cmVtKTtoZWlnaHQ6LjZyZW07aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1pY29uLXNpemUsIC42cmVtKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtLjA1cmVtLDApfS5i''@;'; + put 'put ''dG4tc206bm90KC5idG4tbGluaykgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOm5vdCguYnRuLWxpbmspIGNkcy1pY29ue3dpZHRoOi42cmVtO3dpZHRoOnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1pY29uLXNpemUsIC42cmVtKTtoZWlnaHQ6''@;'; + put 'put ''LjZyZW07aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1pY29uLXNpemUsIC42cmVtKTttYXJnaW4tdG9wOi0uMXJlbX0uYnRuLWljb257bWluLXdpZHRoOjB9LmJ0bi5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmRpc2FibGVkIGNsci1pY29uLC5idG46ZGlzYWJsZWQg''@;'; + put 'put ''Y2RzLWljb24sLmJ0bjpkaXNhYmxlZCBjbHItaWNvbntjb2xvcjojY2NjO2NvbG9yOnZhcigtLWNsci1idG4taWNvbi1kaXNhYmxlZC1jb2xvciwgI2NjY2NjYyl9LmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJvcGRvd24tdG9nZ2xlLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3du''@;'; + put 'put ''LXRvZ2dsZSwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUsLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5kcm9wZG93bi10b2dnbGV7Ym9yZGVyLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1ib3JkZXItY29sb3IsICMwMDcyYTMp''@;'; + put 'put ''O2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1iZy1jb2xvciwgIzAwNzJhMyk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktY29sb3IsIHdoaXRlKX0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9w''@;'; + put 'put ''ZG93bi10b2dnbGUgY2RzLWljb24sLmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJvcGRvd24tdG9nZ2xlIGNsci1pY29uLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZSBjZHMtaWNvbiwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUgY2xyLWlj''@;'; + put 'put ''b24sLmJ0bi1ncm91cC5idG4td2FybmluZyAuZHJvcGRvd24tdG9nZ2xlIGNkcy1pY29uLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZSBjbHItaWNvbiwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZSBjZHMtaWNvbiwuYnRuLWdyb3VwLmJ0bi1k''@;'; + put 'put ''YW5nZXIgLmRyb3Bkb3duLXRvZ2dsZSBjbHItaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jb2xvciwgd2hpdGUpfS5idG4tZ3JvdXAuYnRuLXByaW1hcnkgLmRyb3Bkb3duLXRvZ2dsZTp2aXNpdGVkLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3du''@;'; + put 'put ''LXRvZ2dsZTp2aXNpdGVkLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTp2aXNpdGVkLC5idG4tZ3JvdXAuYnRuLWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlOnZpc2l0ZWR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktY29sb3IsIHdoaXRlKX0u''@;'; + put 'put ''YnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9wZG93bi10b2dnbGU6aG92ZXIsLmJ0bi1ncm91cC5idG4tc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLmRyb3Bk''@;'; + put 'put ''b3duLXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDU2N2E7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktaG92ZXItYmctY29sb3IsICMwMDU2N2EpO2NvbG9yOiNlM2Y1ZmM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWhvdmVyLWNvbG9yLCAjZTNm''@;'; + put 'put ''NWZjKX0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9wZG93bi10b2dnbGU6YWN0aXZlLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUsLmJ0bi1ncm91cC5idG4td2FybmluZyAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZSwuYnRuLWdyb3VwLmJ0bi1kYW5n''@;'; + put 'put ''ZXIgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Ym94LXNoYWRvdzowIC4xcmVtICMxNzliZDMgaW5zZXQ7Ym94LXNoYWRvdzowIC4xcmVtIDAgMCB2YXIoLS1jbHItYnRuLXByaW1hcnktYm94LXNoYWRvdy1jb2xvciwgIzE3OWJkMykgaW5zZXR9LmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJv''@;'; + put 'put ''cGRvd24tdG9nZ2xlLmRpc2FibGVkLC5idG4tZ3JvdXAuYnRuLXByaW1hcnkgLmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUuZGlzYWJsZWQsLmJ0bi1ncm91cC5idG4tc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmRpc2Fi''@;'; + put 'put ''bGVkLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5kaXNhYmxlZCwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWQsLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuZGlzYWJsZWQsLmJ0bi1ncm91cC5idG4t''@;'; + put 'put ''ZGFuZ2VyIC5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWR7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1idG4tcHJpbWFyeS1kaXNhYmxlZC1iZy1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1kaXNhYmxlZC1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JveC1zaGFkb3c6bm9uZX0uYnRuLWdyb3VwLmJ0''@;'; + put 'put ''bi1kYW5nZXIgOmRpc2FibGVke2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS0tLWNsci1jb2xvci1uZXV0cmFsLTQwMCwgI2NjY2NjYyl9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xle2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWJ0bi1saW5rLWJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstYmctY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1i''@;'; + put 'put ''dG4tbGluay1jb2xvciwgIzAwNzJhMyl9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xlIGNkcy1pY29uLC5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZSBjbHItaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1jb2xvciwgIzAw''@;'; + put 'put ''NzJhMyl9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xlOnZpc2l0ZWR7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstY29sb3IsICMwMDcyYTMpfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9y''@;'; + put 'put ''OnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWhvdmVyLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstaG92ZXItY29sb3IsICMwMDU2N2EpfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bk''@;'; + put 'put ''b3duLXRvZ2dsZTphY3RpdmV7Ym94LXNoYWRvdzpub25lfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZS5kaXNhYmxlZCwuYnRuLWdyb3VwLmJ0bi1saW5rIC5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWR7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGlz''@;'; + put 'put ''YWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGlzYWJsZWQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItY29sb3I6dHJh''@;'; + put 'put ''bnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1kaXNhYmxlZC1ib3JkZXItY29sb3IsIHRyYW5zcGFyZW50KTtib3gtc2hhZG93Om5vbmV9LmJ0bi1ncm91cC5idG4tc20gLmJ0bi1ncm91cC1vdmVyZmxvdz4uZHJvcGRvd24tdG9nZ2xlLC5hbGVydC1hcHAtbGV2ZWwg''@;'; + put 'put ''LmFsZXJ0LWl0ZW0gLmJ0bi1ncm91cC5idG4gLmJ0bi1ncm91cC1vdmVyZmxvdz4uZHJvcGRvd24tdG9nZ2xle2xpbmUtaGVpZ2h0OjEuMTVyZW07bGluZS1oZWlnaHQ6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWxpbmUtaGVpZ2h0LCAxLjE1cmVtKTtsZXR0ZXItc3BhY2lu''@;'; + put 'put ''ZzouMDczZW07Zm9udC1zaXplOi41NXJlbTtmb250LXNpemU6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWZvbnQtc2l6ZSwgLjU1cmVtKTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWZvbnQtd2VpZ2h0LCA1''@;'; + put 'put ''MDApO2hlaWdodDoxLjJyZW07aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1oZWlnaHQsIDEuMnJlbSk7cGFkZGluZzowIC42cmVtO3BhZGRpbmc6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLXBhZGRpbmcsIDAgLjZyZW0pfS5jaGVja2JveC5idG4s''@;'; + put 'put ''LmNoZWNrYm94LWlubGluZS5idG4sLnJhZGlvLmJ0biwucmFkaW8taW5saW5lLmJ0bntwYWRkaW5nOjB9LmNoZWNrYm94LmJ0biBsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0biBsYWJlbCwucmFkaW8uYnRuIGxhYmVsLC5yYWRpby1pbmxpbmUuYnRuIGxhYmVse2Rpc3BsYXk6YmxvY2s7bGlu''@;'; + put 'put ''ZS1oZWlnaHQ6aW5oZXJpdDtwYWRkaW5nOjAgLjZyZW07Y3Vyc29yOnBvaW50ZXJ9LmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDpiZWZvcmUsLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDphZnRlciwuY2hlY2tib3gtaW5saW5lLmJ0biBp''@;'; + put 'put ''bnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDpiZWZvcmUsLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YWZ0ZXJ7Y29udGVudDpub25lfS5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb10rbGFiZWw6YmVmb3JlLC5yYWRpby5idG4gaW5wdXRbdHlwZT1y''@;'; + put 'put ''YWRpb10rbGFiZWw6YWZ0ZXIsLnJhZGlvLWlubGluZS5idG4gaW5wdXRbdHlwZT1yYWRpb10rbGFiZWw6YmVmb3JlLC5yYWRpby1pbmxpbmUuYnRuIGlucHV0W3R5cGU9cmFkaW9dK2xhYmVsOmFmdGVye2NvbnRlbnQ6bm9uZX0uY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNo''@;'; + put 'put ''ZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNr''@;'; + put 'put ''Ym94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntiYWNrZ3JvdW5kLWNvbG9y''@;'; + put 'put ''OiMwMDcyYTM7Y29sb3I6I2ZmZn0uY2hlY2tib3guYnRuIGxhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuIGxhYmVse3dpZHRoOjEwMCV9LmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25k''@;'; + put 'put ''YXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpj''@;'; + put 'put ''aGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4t''@;'; + put 'put ''b3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNr''@;'; + put 'put ''ZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24s''@;'; + put 'put ''LmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0''@;'; + put 'put ''bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0''@;'; + put 'put ''bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0''@;'; + put 'put ''W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94''@;'; + put 'put ''XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQr''@;'; + put 'put ''bGFiZWwsLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94''@;'; + put 'put ''LmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1pbmZvIGlu''@;'; + put 'put ''cHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1zZWNvbmRhcnkgaW5wdXRbdHlwZT1jaGVja2Jv''@;'; + put 'put ''eF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCts''@;'; + put 'put ''YWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlu''@;'; + put 'put ''bGluZS5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5l''@;'; + put 'put ''IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5w''@;'; + put 'put ''dXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS1vdXRs''@;'; + put 'put ''aW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS1vdXRs''@;'; + put 'put ''aW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkg''@;'; + put 'put ''aW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vj''@;'; + put 'put ''b25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vj''@;'; + put 'put ''b25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvLW91dGxpbmUgaW5w''@;'; + put 'put ''dXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1''@;'; + put 'put ''dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hl''@;'; + put 'put ''Y2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1j''@;'; + put 'put ''aGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCts''@;'; + put 'put ''YWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dy''@;'; + put 'put ''b3VuZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LmNoZWNrYm94LmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hl''@;'; + put 'put ''Y2tib3guYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc3VjY2Vz''@;'; + put 'put ''cyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMzA2YjAwO2NvbG9yOiNmZmZ9LmNoZWNr''@;'; + put 'put ''Ym94LmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2ti''@;'; + put 'put ''b3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1kYW5nZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHIt''@;'; + put 'put ''aWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2NvbG9yOiNmZmZ9LmNoZWNrYm94LmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVj''@;'; + put 'put ''a2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLWxpbmsgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4u''@;'; + put 'put ''YnRuLWxpbmsgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9Y2hlY2ti''@;'; + put 'put ''b3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjojMDA1NjdhfS5jaGVja2JveC5idG4uYnRuLWludmVyc2UgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5jaGVj''@;'; + put 'put ''a2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3guYnRuIGlucHV0W3R5''@;'; + put 'put ''cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNr''@;'; + put 'put ''Ym94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94''@;'; + put 'put ''XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpj''@;'; + put 'put ''aGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNr''@;'; + put 'put ''Ym94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjI2O2NvbG9yOiNmZmZ9LnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFk''@;'; + put 'put ''aW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuIGlucHV0W3R5cGU9''@;'; + put 'put ''cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0biBsYWJlbCwucmFkaW8uYnRuIGxhYmVse3dpZHRoOjEwMCV9LnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFi''@;'; + put 'put ''ZWwsLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBl''@;'; + put 'put ''PXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGlu''@;'; + put 'put ''ZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJh''@;'; + put 'put ''ZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlu''@;'; + put 'put ''cHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xh''@;'; + put 'put ''YmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4t''@;'; + put 'put ''b3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5w''@;'; + put 'put ''dXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFi''@;'; + put 'put ''ZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW5mby1vdXRs''@;'; + put 'put ''aW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+''@;'; + put 'put ''Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0''@;'; + put 'put ''W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4u''@;'; + put 'put ''YnRuLWluZm8gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVs''@;'; + put 'put ''LC5yYWRpby5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0''@;'; + put 'put ''W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2Rz''@;'; + put 'put ''LWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXNlY29u''@;'; + put 'put ''ZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9d''@;'; + put 'put ''OmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFk''@;'; + put 'put ''aW8uYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4taW5mby1v''@;'; + put 'put ''dXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFi''@;'; + put 'put ''ZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1p''@;'; + put 'put ''bmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXByaW1hcnkgaW5wdXRb''@;'; + put 'put ''dHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4u''@;'; + put 'put ''YnRuLXByaW1hcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0bi5i''@;'; + put 'put ''dG4tc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2Rz''@;'; + put 'put ''LWljb24sLnJhZGlvLmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9d''@;'; + put 'put ''OmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMzA2YjAwO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFi''@;'; + put 'put ''ZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9cmFk''@;'; + put 'put ''aW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGlucHV0W3R5''@;'; + put 'put ''cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWlj''@;'; + put 'put ''b24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zdWNj''@;'; + put 'put ''ZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQr''@;'; + put 'put ''bGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4t''@;'; + put 'put ''b3V0bGluZS1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojM2M4NTAwO2NvbG9yOiNmZmZ9''@;'; + put 'put ''LnJhZGlvLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1kYW5nZXItb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGlu''@;'; + put 'put ''cHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNs''@;'; + put 'put ''ci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1kYW5nZXItb3V0''@;'; + put 'put ''bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIgaW5wdXRbdHlwZT1yYWRpb106''@;'; + put 'put ''Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3Vu''@;'; + put 'put ''ZC1jb2xvcjojYzIxZDAwO2NvbG9yOiNmZmZ9LnJhZGlvLmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWxpbmsgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1saW5rIGlucHV0''@;'; + put 'put ''W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWxpbmsgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1s''@;'; + put 'put ''aW5rIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjojMDA1NjdhfS5yYWRpby5idG4uYnRuLWludmVyc2UgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwuYWxlcnQtYXBwLWxldmVsIC5hbGVy''@;'; + put 'put ''dC1pdGVtIC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAucmFkaW8uYnRuIGlucHV0W3R5cGU9''@;'; + put 'put ''cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVs''@;'; + put 'put ''PmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWludmVyc2UgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPXJh''@;'; + put 'put ''ZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjI2O2NvbG9yOiNmZmZ9LmJ0bi1ncm91cHtkaXNwbGF5OmlubGluZS1mbGV4O21hcmdpbi1yaWdodDouNnJlbX0uYnRuLWdyb3VwIGNsci1kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2JvcmRlci1y''@;'; + put 'put ''YWRpdXM6MH0uYnRuLWdyb3VwIGNsci1kcm9wZG93bjpsYXN0LWNoaWxkIC5kcm9wZG93bi10b2dnbGV7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOi4xNXJlbX0uYnRuLWdyb3VwIC5idG57bWFyZ2luOjA7dmVydGljYWwtYWxpZ246''@;'; + put 'put ''dG9wO292ZXJmbG93OmhpZGRlbn0uYnRuLWdyb3VwIC5idG4gbGFiZWx7aGVpZ2h0OjEwMCV9LmJ0bi1ncm91cCAuYnRuIGlucHV0W3R5cGU9cmFkaW9dOmZvY3VzLC5idG4tZ3JvdXAgLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1c3std2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBl''@;'; + put 'put ''YXJhbmNlOm5vbmU7b3BhY2l0eToxO3RvcDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7Ym94LXNoYWRvdzowIDAgLjI1cmVtICM1MWNiZWU7Ym94LXNoYWRvdzowIDAgLjI1cmVtIHZhcigtLWNsci1idG4tZ3JvdXAtZm9jdXMtb3V0bGluZSwgIzUxY2JlZSk7cGFkZGluZzouMTVyZW0gMCAu''@;'; + put 'put ''MTVyZW0gLjE1cmVtO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojNTFjYmVlO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWdyb3VwLWZvY3VzLW91dGxpbmUsICM1MWNiZWUpfS5idG4tZ3JvdXAgLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpm''@;'; + put 'put ''b2N1czo6LW1zLWNoZWNrLC5idG4tZ3JvdXAgLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1czo6LW1zLWNoZWNre2Rpc3BsYXk6bm9uZX0uYnRuLWdyb3VwIC5idG46bm90KDpmaXJzdC1jaGlsZCl7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRp''@;'; + put 'put ''dXM6MH0uYnRuLWdyb3VwIC5idG46bm90KDpsYXN0LWNoaWxkKXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmJ0bi1ncm91cCAudG9vbHRpcDpub3QoOmZpcnN0LWNoaWxkKSAuYnRue2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3Jk''@;'; + put 'put ''ZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmJ0bi1ncm91cCAudG9vbHRpcDpub3QoOmxhc3QtY2hpbGQpIC5idG57Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5idG4tZ3JvdXAuYnRuLXByaW1hcnkgLnRvb2x0aXA6bm90KDpsYXN0LWNo''@;'; + put 'put ''aWxkKSAuYnRuLC5idG4tZ3JvdXAuYnRuLXByaW1hcnkgLmJ0bjpub3QoOmxhc3QtY2hpbGQpLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLnRvb2x0aXA6bm90KDpsYXN0LWNoaWxkKSAuYnRuLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmJ0bjpub3QoOmxhc3QtY2hpbGQpLC5idG4tZ3JvdXAu''@;'; + put 'put ''YnRuLWRhbmdlciAudG9vbHRpcDpub3QoOmxhc3QtY2hpbGQpIC5idG4sLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5idG46bm90KDpsYXN0LWNoaWxkKSwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC50b29sdGlwOm5vdCg6bGFzdC1jaGlsZCkgLmJ0biwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5i''@;'; + put 'put ''dG46bm90KDpsYXN0LWNoaWxkKXttYXJnaW46MDttYXJnaW4tcmlnaHQ6LjA1cmVtO21hcmdpbi1yaWdodDp2YXIoLS1jbHItYnRuLWJvcmRlci13aWR0aCwgLjA1cmVtKX0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9wZG93bi1tZW51IC5idG4sLmJ0bi1ncm91cC5idG4tc3VjY2VzcyAu''@;'; + put 'put ''ZHJvcGRvd24tbWVudSAuYnRuLC5idG4tZ3JvdXAuYnRuLWRhbmdlciAuZHJvcGRvd24tbWVudSAuYnRuLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLW1lbnUgLmJ0bnttYXJnaW46MH0uYnRuLWdyb3VwPi5idG4tZ3JvdXAtb3ZlcmZsb3d7cG9zaXRpb246cmVsYXRpdmV9LmJ0''@;'; + put 'put ''bi1ncm91cD4uYnRuLWdyb3VwLW92ZXJmbG93Omxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCk+LmJ0bjpmaXJzdC1jaGlsZHtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1idG4tYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItdG9wLWxlZnQtcmFk''@;'; + put 'put ''aXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5idG4tZ3JvdXA+LmJ0bi1ncm91cC1vdmVyZmxvdzpsYXN0LWNoaWxkOmZpcnN0LWNoaWxkPi5idG46Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItYnRuLWJvcmRlci1yYWRp''@;'; + put 'put ''dXMsIC4xNXJlbSl9LmJ0bi1ncm91cCAuYnRuKy5idG57Ym9yZGVyLWxlZnQ6bm9uZX0uYnRuLWdyb3VwIC50b29sdGlwOm5vdCg6Zmlyc3QtY2hpbGQpIC5idG57Ym9yZGVyLWxlZnQ6bm9uZX0uYnRuLWdyb3VwIC5idG4rLmJ0bi1ncm91cC1vdmVyZmxvdyAuYnRue2JvcmRlci1sZWZ0Om5v''@;'; + put 'put ''bmV9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xlLC5idG4tZ3JvdXAuYnRuLWljb24tbGluay5idG4tbGluayAuYnRuLC5idG4tZ3JvdXAuYnRuLWljb24gLmJ0bnttaW4td2lkdGg6MH0uYnRuLWdyb3VwIC5jbHItaWNvbi10aXRsZXtkaXNwbGF5Om5vbmU7dGV4dC10cmFu''@;'; + put 'put ''c2Zvcm06bm9uZX0uYnRuLWdyb3VwIC5kcm9wZG93bi10b2dnbGV7ZGlzcGxheTpibG9ja30uYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IGNkcy1pY29uLC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUgY2xyLWljb257ZGlzcGxheTpub25lfS5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUgLmNs''@;'; + put 'put ''ci1pY29uLXRpdGxle2Rpc3BsYXk6aW5saW5lfS5jaGVja2JveCwucmFkaW97cG9zaXRpb246cmVsYXRpdmV9LmNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdLC5jaGVja2JveCBpbnB1dFt0eXBlPXJhZGlvXSwucmFkaW8gaW5wdXRbdHlwZT1jaGVja2JveF0sLnJhZGlvIGlucHV0W3R5''@;'; + put 'put ''cGU9cmFkaW9de3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MDt3aWR0aDowO29wYWNpdHk6MH0uY2FyZC1mb290ZXIgLmNoZWNrYm94LmJ0biBsYWJlbCwuY2FyZC1mb290ZXIgLnJhZGlvLmJ0biBsYWJlbHtsaW5lLWhlaWdodDoxLjE1cmVtfS5kcm9wZG93bi1tZW51''@;'; + put 'put ''LmNsci1idXR0b24tZ3JvdXAtbWVudXt2aXNpYmlsaXR5OnZpc2libGV9YnV0dG9uLmNsb3Nle3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0uY2xvc2V7ZmxvYXQ6cmlnaHQ7Zm9udC1zaXplOjEuOHJlbTt0''@;'; + put 'put ''cmFuc2l0aW9uOmNvbG9yIGxpbmVhciAuMnM7Zm9udC13ZWlnaHQ6MjAwO3RleHQtc2hhZG93Om5vbmU7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjojOGM4YzhjO2NvbG9yOnZhcigtLWNsci1jbG9zZS1jb2xvci0tbm9ybWFsLCAjOGM4YzhjKX0uY2xvc2UgY2RzLWljb24sLmNsb3NlIGNs''@;'; + put 'put ''ci1pY29ue2ZpbGw6IzhjOGM4YztmaWxsOnZhcigtLWNsci1jbG9zZS1jb2xvci0tbm9ybWFsLCAjOGM4YzhjKX0uY2xvc2U6Zm9jdXMsLmNsb3NlOmhvdmVyLC5jbG9zZTphY3RpdmV7b3BhY2l0eToxO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWNsb3NlLWNvbG9yLS1ob3ZlciwgYmxh''@;'; + put 'put ''Y2spfS5jbG9zZTpmb2N1cyBjZHMtaWNvbiwuY2xvc2U6Zm9jdXMgY2xyLWljb24sLmNsb3NlOmhvdmVyIGNkcy1pY29uLC5jbG9zZTpob3ZlciBjbHItaWNvbiwuY2xvc2U6YWN0aXZlIGNkcy1pY29uLC5jbG9zZTphY3RpdmUgY2xyLWljb257ZmlsbDojMDAwO2ZpbGw6dmFyKC0tY2xyLWNs''@;'; + put 'put ''b3NlLWNvbG9yLS1ob3ZlciwgYmxhY2spfS5jbG9zZTpmb2N1c3tvdXRsaW5lOkhpZ2hsaWdodCBzb2xpZCAuMXJlbTtvdXRsaW5lOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBzb2xpZCAuMXJlbTtvdXRsaW5lLW9mZnNldDouMDVyZW19OnJvb3R7LS1jbHItYWxlcnQtYWN0aW9uLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYWxlcnQtYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi05MDApOy0tY2xyLWFsZXJ0LWNsb3NlLWljb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1jb2xvcik7LS1jbHIt''@;'; + put 'put ''YWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWFjdGl2ZS1jb2xvcik7LS1jbHItYWxlcnQtY2xvc2UtaWNvbi1vcGFjaXR5OjE7LS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5OjE7LS1jbHItYXBwLWxldmVsLWFsZXJ0LWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtbGV2ZWwtYWxlcnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLW9wYWNpdHk6Ljg7LS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24taG92ZXIt''@;'; + put 'put ''b3BhY2l0eToxOy0tY2xyLWFsZXJ0LWJvcmRlcnJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cyk7LS1jbHItYWxlcnQtaW5mby1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUwKTstLWNsci1hbGVydC1pbmZvLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5l''@;'; + put 'put ''dXRyYWwtNzAwKTstLWNsci1hbGVydC1pbmZvLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItYWxlcnQtaW5mby1pY29uLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''YWxlcnQtYWN0aW9uLWNvbG9yKTstLWNsci1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1hY3RpdmUtY29sb3IpOy0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1j''@;'; + put 'put ''bHItYWxlcnQtaW5mby1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKTstLWNsci1hbGVydC1pbmZv''@;'; + put 'put ''LWNsb3NlLWljb24taG92ZXItb3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5KTstLWNsci1hbGVydC1zdWNjZXNzLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTUwKTstLWNsci1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1hbGVydC1zdWNjZXNzLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy04MDApOy0tY2xyLWFsZXJ0LXN1Y2Nlc3MtaWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy04MDApOy0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0''@;'; + put 'put ''aW9uLWNvbG9yOnZhcigtLWNsci1hbGVydC1hY3Rpb24tY29sb3IpOy0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWFjdGl2ZS1jb2xvcik7LS1jbHItYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1h''@;'; + put 'put ''bGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24tb3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1vcGFjaXR5KTstLWNsci1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWlj''@;'; + put 'put ''b24taG92ZXItY29sb3IpOy0tY2xyLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5OnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0tY2xyLWFsZXJ0LXdhcm5pbmctYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXdhcm5pbmctMTAwKTstLWNs''@;'; + put 'put ''ci1hbGVydC13YXJuaW5nLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtOTAwKTstLWNsci1hbGVydC13YXJuaW5nLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3Itd2FybmluZy04MDApOy0tY2xyLWFsZXJ0LXdhcm5pbmctaWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3It''@;'; + put 'put ''d2FybmluZy04MDApOy0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWNvbG9yOnZhcigtLWNsci1hbGVydC1hY3Rpb24tY29sb3IpOy0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWFjdGl2ZS1jb2xvcik7LS1jbHItYWxlcnQt''@;'; + put 'put ''d2FybmluZy1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hbGVydC13YXJuaW5nLWNsb3NlLWljb24tb3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1vcGFjaXR5KTstLWNsci1hbGVydC13YXJuaW5nLWNsb3NlLWljb24t''@;'; + put 'put ''aG92ZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24taG92ZXItY29sb3IpOy0tY2xyLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5OnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0tY2xyLWFsZXJ0LWRhbmdlci1iZy1jb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTEwMCk7LS1jbHItYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1hbGVydC1kYW5nZXItYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNsci1hbGVydC1kYW5n''@;'; + put 'put ''ZXItaWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkwMCk7LS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWNvbG9yKTstLWNsci1hbGVydC1kYW5nZXItYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9u''@;'; + put 'put ''LWFjdGl2ZS1jb2xvcik7LS1jbHItYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHIt''@;'; + put 'put ''YWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24taG92ZXItY29sb3IpOy0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24taG92ZXItb3BhY2l0eSk7LS1j''@;'; + put 'put ''bHItYXBwLWFsZXJ0LWluZm8tYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWFwcC1hbGVydC1pbmZvLWZvbnQtY29sb3I6dmFyKC0tY2xyLWFwcC1sZXZlbC1hbGVydC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWluZm8tYm9yZGVyLWNvbG9yOm5vbmU7LS1jbHIt''@;'; + put 'put ''YXBwLWFsZXJ0LWluZm8taWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWFj''@;'; + put 'put ''dGl2ZS1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24tb3BhY2l0eTp2''@;'; + put 'put ''YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItb3BhY2l0''@;'; + put 'put ''eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24taG92ZXItb3BhY2l0eSk7LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYmctY29sb3I6aHNsKDI2LCAxMDAlLCAzOCUpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWJvcmRlci1jb2xvcjpub25lOy0tY2xyLWFwcC1hbGVydC13YXJuaW5n''@;'; + put 'put ''LWljb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1mb250LWNvbG9yOnZhcigtLWNsci1hcHAtbGV2ZWwtYWxlcnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24tY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFw''@;'; + put 'put ''cC1hbGVydC13YXJuaW5nLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24tb3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItYXBwLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24taG92ZXItb3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24taG92ZXItb3BhY2l0eSk7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1iZy1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1ib3JkZXItY29sb3I6bm9uZTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWljb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWZvbnQtY29s''@;'; + put 'put ''b3I6dmFyKC0tY2xyLWFwcC1sZXZlbC1hbGVydC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFwcC1h''@;'; + put 'put ''bGVydC1kYW5nZXItZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tYWN0aXZlLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1vcGFjaXR5OnZhcigtLWNsci1hcHAtYWxl''@;'; + put 'put ''cnQtY2xvc2UtaWNvbi1vcGFjaXR5KTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItb3BhY2l0eTp2YXIoLS1jbHIt''@;'; + put 'put ''YXBwLWFsZXJ0LWNsb3NlLWljb24taG92ZXItb3BhY2l0eSk7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYm9yZGVyLWNvbG9yOm5vbmU7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNzAwKTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1p''@;'; + put 'put ''Y29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtZm9udC1jb2xvcjp2YXIoLS1jbHItYXBwLWxldmVsLWFsZXJ0LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24tYWN0aXZlLWNvbG9yOnZhcigtLWNsci1hcHAt''@;'; + put 'put ''YWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLW9wYWNpdHkpOy0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0tY2xyLWFwcC1hbGVydC1wYWdlci10ZXh0LWNvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1jb2xvci1uZXV0cmFsLTAsIHdoaXRlKTstLWNsci1hcHAtYWxlcnQtaW5mby1wYWdlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCwgIzAwNTY3YSk7LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctcGFnZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXdhcm5pbmctOTAw''@;'; + put 'put ''LCAjOGY1YTAwKTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLXBhZ2VyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwLCAjOTkxNzAwKX0uYWxlcnQtaWNvbntoZWlnaHQ6MS4ycmVtO3dpZHRoOjEuMnJlbTttYXJnaW4tbGVmdDotLjE1cmVtO21hcmdpbi10b3A6LS4ycmVtfS5h''@;'; + put 'put ''bGVydC1pY29uLXdyYXBwZXJ7ZmxleDowIDAgMS4yNXJlbTthbGlnbi1zZWxmOnN0YXJ0O3BhZGRpbmctdG9wOi4wNXJlbTtoZWlnaHQ6LjlyZW19LmFsZXJ0LWl0ZW17ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXg7ZmxleC13cmFwOm5vd3JhcDttaW4taGVpZ2h0Oi45cmVtO21hcmdpbi1i''@;'; + put 'put ''b3R0b206LjNyZW19LmFsZXJ0LWl0ZW06bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmFsZXJ0LWl0ZW1ze2ZsZXg6MSAxIGF1dG87ZmxleC1mbG93OmNvbHVtbiBub3dyYXA7cGFkZGluZzouNXJlbSAuNTVyZW07ZGlzcGxheTpmbGV4fS5hbGVydC1pdGVtPnNwYW4sLmFsZXJ0LXRleHR7''@;'; + put 'put ''ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MTtmbGV4LWJhc2lzOjk4JTttYXgtd2lkdGg6OTglO21hcmdpbi1yaWdodDouNnJlbTt0ZXh0LWFsaWduOmxlZnR9LmFsZXJ0e2ZvbnQtc2l6ZTouNjVyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVp''@;'; + put 'put ''Z2h0Oi45cmVtO3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O3dpZHRoOmF1dG87Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItYWxlcnQtYm9yZGVycmFkaXVzLCAuMTVyZW0p''@;'; + put 'put ''O21hcmdpbi10b3A6LjNyZW07YmFja2dyb3VuZDojZTNmNWZjO2JhY2tncm91bmQ6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYmctY29sb3IsICNlM2Y1ZmMpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tZm9udC1jb2xvciwgIzY2NjY2Nik7Ym9yZGVyOi4wNXJlbSBzb2xp''@;'; + put 'put ''ZDtib3JkZXItY29sb3I6IzAwNTY3YTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYm9yZGVyLWNvbG9yLCAjMDA1NjdhKX0uYWxlcnQgLmFsZXJ0LWljb257Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1pY29uLWNvbG9yLCAjMDA1NjdhKX0uYWxl''@;'; + put 'put ''cnQgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsICM2NjY2NjYpO2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24t''@;'; + put 'put ''Y29sb3IsICM2NjY2NjYpfS5hbGVydCAuYWxlcnQtYWN0aW9uLC5hbGVydCAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQgLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0IC5kcm9wZG93bi10''@;'; + put 'put ''b2dnbGUuYnRue2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsICM2NjY2NjYpfS5hbGVydCAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQgLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0IC5hbGVydC1hY3Rp''@;'; + put 'put ''b24uYnRuOmFjdGl2ZSwuYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0IC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiM0ZjAwNzA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVy''@;'; + put 'put ''dC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApfS5hbGVydCAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0IC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICM0ZjAwNzAgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFy''@;'; + put 'put ''KC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCkgaW5zZXR9LmFsZXJ0IC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0IC5hbGVydC1hY3Rpb246aG92ZXIsLmFsZXJ0IC5hbGVydC1hY3Rpb246YWN0aXZlLC5hbGVydCAuZHJvcGRvd24tdG9nZ2xlOmZvY3Vz''@;'; + put 'put ''LC5hbGVydCAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydCAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKTtjb2xvcjojNGYwMDcwfS5hbGVydCAuY2xvc2V7Y29sb3I6IzY2Njtjb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWNvbG9yLCAjNjY2NjY2KTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLW9wYWNpdHksIDEpfS5hbGVydCAuY2xvc2UgY2RzLWljb24sLmFsZXJ0IC5jbG9zZSBjbHItaWNvbntmaWxsOiM2NjY7''@;'; + put 'put ''ZmlsbDp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQgLmNsb3NlOmZvY3VzLC5hbGVydCAuY2xvc2U6aG92ZXIsLmFsZXJ0IC5jbG9zZTphY3RpdmV7Y29sb3I6IzRmMDA3MDtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29u''@;'; + put 'put ''LWhvdmVyLWNvbG9yLCAjNGYwMDcwKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHksIDEpfS5hbGVydC5hbGVydC1pbmZve2JhY2tncm91bmQ6I2UzZjVmYztiYWNrZ3JvdW5kOnZhcigtLWNsci1hbGVydC1pbmZvLWJnLWNv''@;'; + put 'put ''bG9yLCAjZTNmNWZjKTtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWZvbnQtY29sb3IsICM2NjY2NjYpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMwMDU2N2E7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWJvcmRlci1jb2xvciwgIzAw''@;'; + put 'put ''NTY3YSl9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWljb257Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1pY29uLWNvbG9yLCAjMDA1NjdhKX0uYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9ucyAuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjoj''@;'; + put 'put ''NjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgIzY2NjY2Nik7Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbiwuYWxl''@;'; + put 'put ''cnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0biwuYWxlcnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0''@;'; + put 'put ''bntib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjpob3ZlciwuYWxl''@;'; + put 'put ''cnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46aG92ZXIsLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5i''@;'; + put 'put ''dG46YWN0aXZle2JvcmRlci1jb2xvcjojNGYwMDcwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKX0uYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3du''@;'; + put 'put ''LXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gIzRmMDA3MCBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKSBpbnNldH0uYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9u''@;'; + put 'put ''OmZvY3VzLC5hbGVydC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb246aG92ZXIsLmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbjphY3RpdmUsLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlOmhvdmVy''@;'; + put 'put ''LC5hbGVydC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGU6YWN0aXZle2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApO2NvbG9yOiM0ZjAwNzB9LmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3Nle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvciwgIzY2NjY2Nik7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1vcGFjaXR5LCAxKX0uYWxlcnQuYWxlcnQtaW5mbyAuY2xvc2UgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3NlIGNsci1p''@;'; + put 'put ''Y29ue2ZpbGw6IzY2NjtmaWxsOnZhcigtLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC1pbmZvIC5jbG9zZTpmb2N1cywuYWxlcnQuYWxlcnQtaW5mbyAuY2xvc2U6aG92ZXIsLmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3NlOmFjdGl2ZXtjb2xv''@;'; + put 'put ''cjojNGYwMDcwO2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItY29sb3IsICM0ZjAwNzApO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItb3BhY2l0eSwgMSl9LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3N7YmFja2dy''@;'; + put 'put ''b3VuZDojZGZmMGQwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYmctY29sb3IsICNkZmYwZDApO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtZm9udC1jb2xvciwgIzY2NjY2Nik7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzMw''@;'; + put 'put ''NmIwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYm9yZGVyLWNvbG9yLCAjMzA2YjAwKX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtaWNvbntjb2xvcjojMzA2YjAwO2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWljb24tY29sb3IsICMzMDZiMDApfS5h''@;'; + put 'put ''bGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCAjNjY2NjY2KTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLC5hbGVydC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1hY3Rpb24tY29sb3Is''@;'; + put 'put ''ICM2NjY2NjYpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1hY3Rpb24tY29sb3IsICM2NjY2''@;'; + put 'put ''NjYpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmZvY3VzLC5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJv''@;'; + put 'put ''cGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiM0ZjAwNzA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1h''@;'; + put 'put ''bGVydC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApfS5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjNGYwMDcw''@;'; + put 'put ''IGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApIGluc2V0fS5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlv''@;'; + put 'put ''bjpob3ZlciwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uOmFjdGl2ZSwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGU6aG92ZXIsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bk''@;'; + put 'put ''b3duLXRvZ2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCk7Y29sb3I6IzRmMDA3MH0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2V7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1jbG9z''@;'; + put 'put ''ZS1pY29uLWNvbG9yLCAjNjY2NjY2KTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLW9wYWNpdHksIDEpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2UgY2xyLWljb257Zmls''@;'; + put 'put ''bDojNjY2O2ZpbGw6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmZvY3VzLC5hbGVydC5hbGVydC1zdWNjZXNzIC5jbG9zZTpob3ZlciwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2U6YWN0aXZl''@;'; + put 'put ''e2NvbG9yOiM0ZjAwNzA7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1ob3Zlci1jb2xvciwgIzRmMDA3MCk7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQuYWxlcnQtd2Fy''@;'; + put 'put ''bmluZ3tiYWNrZ3JvdW5kOiNmZmY0Yzc7YmFja2dyb3VuZDp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1iZy1jb2xvciwgI2ZmZjRjNyk7Y29sb3I6IzMzMztjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1mb250LWNvbG9yLCAjMzMzMzMzKTtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRl''@;'; + put 'put ''ci1jb2xvcjojYWQ3NjAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1ib3JkZXItY29sb3IsICNhZDc2MDApfS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1pY29ue2NvbG9yOiM0NTQ1NDU7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctaWNvbi1jb2xvciwg''@;'; + put 'put ''IzQ1NDU0NSl9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3IsICM2NjY2NjYpO2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24sLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC13YXJuaW5nLWFj''@;'; + put 'put ''dGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC13YXJuaW5nLWFjdGlvbi1j''@;'; + put 'put ''b2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG46Zm9jdXMsLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC5hbGVydC13''@;'; + put 'put ''YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmZvY3VzLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6IzRmMDA3MDtib3JkZXItY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCl9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1''@;'; + put 'put ''cmVtICM0ZjAwNzAgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCkgaW5zZXR9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbjpmb2N1cywuYWxlcnQuYWxlcnQtd2FybmluZyAu''@;'; + put 'put ''YWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb246YWN0aXZlLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQuYWxlcnQtd2Fy''@;'; + put 'put ''bmluZyAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKTtjb2xvcjojNGYwMDcwfS5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC13''@;'; + put 'put ''YXJuaW5nLWNsb3NlLWljb24tY29sb3IsICM2NjY2NjYpO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hbGVydC13YXJuaW5nLWNsb3NlLWljb24tb3BhY2l0eSwgMSl9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmNsb3NlIGNkcy1pY29uLC5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZSBj''@;'; + put 'put ''bHItaWNvbntmaWxsOiM2NjY7ZmlsbDp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtd2FybmluZyAuY2xvc2U6Zm9jdXMsLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmNsb3NlOmhvdmVyLC5hbGVydC5hbGVydC13YXJuaW5nIC5j''@;'; + put 'put ''bG9zZTphY3RpdmV7Y29sb3I6IzRmMDA3MDtjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yLCAjNGYwMDcwKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHksIDEpfS5hbGVy''@;'; + put 'put ''dC5hbGVydC1kYW5nZXJ7YmFja2dyb3VuZDojZmVkZGQ3O2JhY2tncm91bmQ6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1iZy1jb2xvciwgI2ZlZGRkNyk7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3IsICM2NjY2NjYpO2JvcmRlcjouMDVyZW0gc29s''@;'; + put 'put ''aWQ7Ym9yZGVyLWNvbG9yOiM5OTE3MDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItYm9yZGVyLWNvbG9yLCAjOTkxNzAwKX0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1pY29ue2NvbG9yOiM5OTE3MDA7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1pY29uLWNv''@;'; + put 'put ''bG9yLCAjOTkxNzAwKX0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IsICM2NjY2NjYpO2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItYWN0''@;'; + put 'put ''aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9y''@;'; + put 'put ''LCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmZvY3VzLC5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LmFsZXJ0LWRhbmdlciAu''@;'; + put 'put ''ZHJvcGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JvcmRlci1jb2xvcjojNGYwMDcwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''YWxlcnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApfS5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gIzRmMDA3MCBp''@;'; + put 'put ''bnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApIGluc2V0fS5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbjpmb2N1cywuYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb246aG92''@;'; + put 'put ''ZXIsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uOmFjdGl2ZSwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2ds''@;'; + put 'put ''ZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKTtjb2xvcjojNGYwMDcwfS5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3Nle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWNvbG9y''@;'; + put 'put ''LCAjNjY2NjY2KTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24tb3BhY2l0eSwgMSl9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuY2xvc2UgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LWRhbmdlciAuY2xvc2UgY2xyLWljb257ZmlsbDojNjY2O2ZpbGw6dmFy''@;'; + put 'put ''KC0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5jbG9zZTpmb2N1cywuYWxlcnQuYWxlcnQtZGFuZ2VyIC5jbG9zZTpob3ZlciwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5jbG9zZTphY3RpdmV7Y29sb3I6IzRmMDA3MDtjb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItY29sb3IsICM0ZjAwNzApO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQgLmFsZXJ0LWl0ZW0gLmNsci1pY29ue2hlaWdodDou''@;'; + put 'put ''OXJlbTt3aWR0aDouOXJlbTttYXJnaW4tcmlnaHQ6LjNyZW19LmFsZXJ0IC5hbGVydC1pdGVtIC5jbHItaWNvbisuYWxlcnQtdGV4dHtwYWRkaW5nLWxlZnQ6MH0uYWxlcnQgLmFsZXJ0LWl0ZW0gLmNsci1pY29uKy5hbGVydC10ZXh0OmJlZm9yZXtjb250ZW50Om5vbmV9LmFsZXJ0IC5hbGVy''@;'; + put 'put ''dC1hY3Rpb25ze2ZsZXg6MCAwIGF1dG87d2hpdGUtc3BhY2U6bm93cmFwfS5hbGVydCAuYWxlcnQtYWN0aW9ucyAuZHJvcGRvd246bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6LS4xcmVtfS5hbGVydCAuYWxlcnQtYWN0aW9ucyAuZHJvcGRvd24taXRlbXtjb2xvcjojNjY2O2NvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1kcm9wZG93bi10ZXh0LWNvbG9yLCAjNjY2NjY2KTtmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MS4ycmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbH0uYWxlcnQgLmFsZXJ0LWFjdGlvbjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDouNnJlbX0uYWxlcnQgLmFsZXJ0LWFj''@;'; + put 'put ''dGlvbiwuYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5hbGVydCAuYWxlcnQtYWN0aW9uIGJ1dHRvbi5kcm9wZG93bi10b2dnbGU6bm90KC5idG4pe2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LWRyb3Bkb3duLXRleHQtY29sb3IsICM2NjY2NjYpfS5hbGVydCAuZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKXtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MH0uYWxlcnQgLmNsb3Nle3dpZHRoOjEuMnJlbTtkaXNwbGF5OmJsb2NrO2hlaWdodDoxLjhyZW07''@;'; + put 'put ''ZmxleDowIDAgMS40cmVtO29yZGVyOjEwMDtwYWRkaW5nLXJpZ2h0Oi4ycmVtfS5hbGVydCAuY2xvc2UgY2RzLWljb24sLmFsZXJ0IC5jbG9zZSBjbHItaWNvbnttYXJnaW4tdG9wOi0uMTVyZW07aGVpZ2h0OjEuMTVyZW07d2lkdGg6MS4xNXJlbX0uYWxlcnQgLmNsb3Nlfi5hbGVydC1pdGVt''@;'; + put 'put ''Pi5hbGVydC1hY3Rpb25ze3BhZGRpbmctcmlnaHQ6LjZyZW19LmFsZXJ0IC5jbG9zZX4uYWxlcnQtaXRlbT4uYWxlcnQtYWN0aW9ucz4uYWxlcnQtYWN0aW9uOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0Oi42cmVtfS5hbGVydC1hcHAtbGV2ZWx7bWFyZ2luOjA7Ym9yZGVyLXJhZGl1czowO292''@;'; + put 'put ''ZXJmbG93LXk6YXV0bztiYWNrZ3JvdW5kOiMwMDcyYTM7YmFja2dyb3VuZDp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYmctY29sb3IsICMwMDcyYTMpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWZvbnQtY29sb3IsIHdoaXRlKTtib3JkZXI6MH0uYWxlcnQt''@;'; + put 'put ''YXBwLWxldmVsIC5hbGVydC1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWljb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgd2hpdGUpO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLC5hbGVydC1hcHAtbGV2ZWwg''@;'; + put 'put ''LmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9y''@;'; + put 'put ''OiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb24uYnRuOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbCAu''@;'; + put 'put ''YWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JvcmRlci1j''@;'; + put 'put ''b2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2Jv''@;'; + put 'put ''eC1zaGFkb3c6MCAuMDVyZW0gI2ZmZiBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpIGluc2V0fS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbjpmb2N1cywuYWxlcnQtYXBwLWxldmVs''@;'; + put 'put ''IC5hbGVydC1hY3Rpb246aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbCAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3du''@;'; + put 'put ''LXRvZ2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKTtjb2xvcjojZmZmfS5hbGVydC1hcHAtbGV2ZWwgLmNsb3Nle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24tY29s''@;'; + put 'put ''b3IsIHdoaXRlKTtvcGFjaXR5Oi44O29wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24tb3BhY2l0eSwgLjgpfS5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlIGNsci1pY29ue2ZpbGw6I2ZmZjtmaWxsOnZhcigt''@;'; + put 'put ''LWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbCAuY2xvc2U6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbCAuY2xvc2U6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbCAuY2xvc2U6YWN0aXZle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFw''@;'; + put 'put ''cC1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItY29sb3IsIHdoaXRlKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm97YmFja2dyb3VuZDojMDA3MmEzO2Jh''@;'; + put 'put ''Y2tncm91bmQ6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWJnLWNvbG9yLCAjMDA3MmEzKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1mb250LWNvbG9yLCB3aGl0ZSk7Ym9yZGVyOjB9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pY29ue2Nv''@;'; + put 'put ''bG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWljb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0''@;'; + put 'put ''LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbiwuYWxlcnQtYXBwLWxldmVsLmFs''@;'; + put 'put ''ZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5k''@;'; + put 'put ''cm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24uYnRuOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwu''@;'; + put 'put ''YWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0''@;'; + put 'put ''LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3Is''@;'; + put 'put ''IHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjZmZmIGluc2V0O2JveC1zaGFkb3c6MCAuMDVy''@;'; + put 'put ''ZW0gMCAwIHZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSkgaW5zZXR9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb246aG92ZXIsLmFs''@;'; + put 'put ''ZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb246YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwu''@;'; + put 'put ''YWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpO2NvbG9yOiNmZmZ9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5jbG9zZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSk7b3BhY2l0eTouODtvcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLW9wYWNpdHksIC44KX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmNsb3NlIGNkcy1pY29uLC5hbGVydC1hcHAt''@;'; + put 'put ''bGV2ZWwuYWxlcnQtaW5mbyAuY2xvc2UgY2xyLWljb257ZmlsbDojZmZmO2ZpbGw6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmNsb3NlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5m''@;'; + put 'put ''byAuY2xvc2U6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5jbG9zZTphY3RpdmV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1jb2xvciwgd2hpdGUpO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hcHAtYWxl''@;'; + put 'put ''cnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHksIDEpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2Vye2JhY2tncm91bmQ6I2MyMWQwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWJnLWNvbG9yLCAjYzIxZDAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1hcHAtYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3IsIHdoaXRlKTtib3JkZXI6MH0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWljb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBw''@;'; + put 'put ''LWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9ucyAuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvciwgd2hpdGUpO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFs''@;'; + put 'put ''ZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLmJ0biwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFy''@;'; + put 'put ''KC0tY2xyLWFwcC1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LWFwcC1s''@;'; + put 'put ''ZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC1h''@;'; + put 'put ''cHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2Vy''@;'; + put 'put ''IC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjZmZmIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2Vy''@;'; + put 'put ''LWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKSBpbnNldH0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb246aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIg''@;'; + put 'put ''LmFsZXJ0LWFjdGlvbjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5kcm9wZG93''@;'; + put 'put ''bi10b2dnbGU6YWN0aXZle2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKTtjb2xvcjojZmZmfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5jbG9zZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFu''@;'; + put 'put ''Z2VyLWNsb3NlLWljb24tY29sb3IsIHdoaXRlKTtvcGFjaXR5Oi44O29wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1vcGFjaXR5LCAuOCl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmNsb3NlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxl''@;'; + put 'put ''cnQtZGFuZ2VyIC5jbG9zZSBjbHItaWNvbntmaWxsOiNmZmY7ZmlsbDp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmNsb3NlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2Vy''@;'; + put 'put ''IC5jbG9zZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuY2xvc2U6YWN0aXZle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1ob3Zlci1jb2xvciwgd2hpdGUpO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hcHAt''@;'; + put 'put ''YWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItb3BhY2l0eSwgMSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5ne2JhY2tncm91bmQ6I2MyNTQwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1iZy1jb2xvciwgI2MyNTQwMCk7Y29sb3I6I2ZmZjtjb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xvciwgd2hpdGUpO2JvcmRlcjowfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1pY29uLWNvbG9yLCB3aGl0ZSl9''@;'; + put 'put ''LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1jb2xvciwgd2hpdGUpO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6I2Zm''@;'; + put 'put ''Zjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5i''@;'; + put 'put ''dG46aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10''@;'; + put 'put ''b2dnbGUuYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSl9LmFs''@;'; + put 'put ''ZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gI2ZmZiBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAg''@;'; + put 'put ''MCB2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpIGluc2V0fS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uOmhvdmVy''@;'; + put 'put ''LC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxl''@;'; + put 'put ''cnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKTtjb2xvcjojZmZmfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuY2xvc2V7Y29s''@;'; + put 'put ''b3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1jb2xvciwgd2hpdGUpO29wYWNpdHk6Ljg7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1vcGFjaXR5LCAuOCl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJu''@;'; + put 'put ''aW5nIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmNsb3NlIGNsci1pY29ue2ZpbGw6I2ZmZjtmaWxsOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5n''@;'; + put 'put ''IC5jbG9zZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmNsb3NlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuY2xvc2U6YWN0aXZle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24taG92ZXIt''@;'; + put 'put ''Y29sb3IsIHdoaXRlKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3N7YmFja2dyb3VuZDojM2M4NTAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWFwcC1h''@;'; + put 'put ''bGVydC1zdWNjZXNzLWJnLWNvbG9yLCAjM2M4NTAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yLCB3aGl0ZSk7Ym9yZGVyOjB9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1pY29ue2NvbG9yOiNmZmY7Y29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWljb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3Mt''@;'; + put 'put ''YWN0aW9uLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbiwuYWxlcnQtYXBwLWxldmVsLmFs''@;'; + put 'put ''ZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LWFwcC1sZXZlbC5hbGVy''@;'; + put 'put ''dC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmZvY3Vz''@;'; + put 'put ''LC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0bjpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpm''@;'; + put 'put ''b2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFw''@;'; + put 'put ''cC1hbGVydC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym94LXNo''@;'; + put 'put ''YWRvdzowIC4wNXJlbSAjZmZmIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSkgaW5zZXR9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb246Zm9jdXMsLmFs''@;'; + put 'put ''ZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb246aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb246YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydC1hcHAt''@;'; + put 'put ''bGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpO2NvbG9y''@;'; + put 'put ''OiNmZmZ9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5jbG9zZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSk7b3BhY2l0eTouODtvcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9z''@;'; + put 'put ''ZS1pY29uLW9wYWNpdHksIC44KX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuY2xvc2UgY2xyLWljb257ZmlsbDojZmZmO2ZpbGw6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWNsb3NlLWlj''@;'; + put 'put ''b24tY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuY2xvc2U6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5jbG9zZTphY3RpdmV7Y29sb3I6I2ZmZjtjb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1ob3Zlci1jb2xvciwgd2hpdGUpO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHksIDEpfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW1z''@;'; + put 'put ''e3BhZGRpbmctdG9wOi4zcmVtO3BhZGRpbmctYm90dG9tOi4zcmVtfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW17anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLWhlaWdodDoxLjJyZW19LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRue21h''@;'; + put 'put ''cmdpbjowfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0+c3BhbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC10ZXh0e2ZsZXg6MCAxIDEwMCV9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaWNvbi13cmFwcGVye21hcmdpbi10b3A6LjE1cmVtfS5hbGVydC1hcHAtbGV2ZWwgLmNsb3Nle2hl''@;'; + put 'put ''aWdodDoxLjhyZW07b3ZlcmZsb3c6aGlkZGVufS5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlIGNsci1pY29ue21hcmdpbi10b3A6LS4yNXJlbX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb24sLmFsZXJ0LWFwcC1sZXZlbCAuZHJv''@;'; + put 'put ''cGRvd24tdG9nZ2xle3RleHQtZGVjb3JhdGlvbjpub25lfS5hbGVydC1zbXtmb250LXNpemU6LjU1cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDouOHJlbX0uYWxlcnQtc20gLmFsZXJ0LWl0ZW1ze3BhZGRpbmc6LjE1cmVtIC4yNXJlbX0uYWxlcnQtc20gLmFsZXJ0LWl0''@;'; + put 'put ''ZW17cGFkZGluZy10b3A6LjA1cmVtO21hcmdpbi1ib3R0b206LjJyZW19LmFsZXJ0LXNtIC5hbGVydC1pdGVtOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5hbGVydC1zbSAuYWxlcnQtaWNvbi13cmFwcGVye3BhZGRpbmctdG9wOjA7aGVpZ2h0Oi44cmVtfS5hbGVydC1zbSAuYWxlcnQt''@;'; + put 'put ''aWNvbnttYXJnaW4tbGVmdDotLjJyZW07bWFyZ2luLXRvcDotLjJyZW19LmFsZXJ0LXNtIC5hbGVydC1pdGVtPnNwYW4sLmFsZXJ0LXNtIC5hbGVydC10ZXh0e21hcmdpbi1yaWdodDouM3JlbX0uYWxlcnQtc20gLmNsb3Nle3BhZGRpbmctcmlnaHQ6MDtmbGV4OjAgMCAxLjJyZW07aGVpZ2h0''@;'; + put 'put ''OjEuMnJlbTtsaW5lLWhlaWdodDoxLjJyZW19LmFsZXJ0LXNtIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtc20gLmNsb3NlIGNsci1pY29ue21hcmdpbi10b3A6LS4yNXJlbTttYXJnaW4tcmlnaHQ6LS4wNXJlbTtoZWlnaHQ6MXJlbTt3aWR0aDoxcmVtO2xpbmUtaGVpZ2h0OjEuMDVyZW19QG1l''@;'; + put 'put ''ZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCl7LmFsZXJ0IC5hbGVydC1pdGVte2ZsZXgtd3JhcDp3cmFwfS5hbGVydCAuYWxlcnQtdGV4dHttYXJnaW4tcmlnaHQ6MDttYXgtd2lkdGg6OTAlO3dpZHRoOjkwJTtmbGV4LWJhc2lzOjkwJX0uYWxlcnQgLmFsZXJ0LWFjdGlvbnN7Zmxl''@;'; + put 'put ''eDoxIDAgMTAwJTtwYWRkaW5nLXRvcDouMTVyZW07cGFkZGluZy1sZWZ0OjEuMnJlbX0uYWxlcnRzLXBhZ2Vye21hcmdpbi10b3A6LjE1cmVtfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbnN7bWFyZ2luLWxlZnQ6Mi4yNXJlbX19LmFsZXJ0LWhpZGRlbntkaXNwbGF5Om5vbmV9LmNh''@;'; + put 'put ''cmQgLmFsZXJ0e21hcmdpbjouM3JlbSAwfS5tb2RhbCAuYWxlcnQrLm1vZGFsLWhlYWRlciwubW9kYWwgLmFsZXJ0Ky5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGV7bWFyZ2luLXRvcDouNnJlbX0uYWxlcnRzLmFsZXJ0LWluZm97YmFja2dyb3VuZDojMDA1NjdhO2JhY2tncm91bmQ6dmFyKC0t''@;'; + put 'put ''Y2xyLWFwcC1hbGVydC1pbmZvLXBhZ2VyLWJnLWNvbG9yLCAjMDA1NjdhKX0uYWxlcnRzLmFsZXJ0LWRhbmdlcntiYWNrZ3JvdW5kOiM5OTE3MDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1wYWdlci1iZy1jb2xvciwgIzk5MTcwMCl9LmFsZXJ0cy5hbGVydC13YXJu''@;'; + put 'put ''aW5ne2JhY2tncm91bmQ6IzhmNWEwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1wYWdlci1iZy1jb2xvciwgIzhmNWEwMCl9LmFsZXJ0cy5hbGVydC1zdWNjZXNze2JhY2tncm91bmQ6IzI1NTIwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTkw''@;'; + put 'put ''MCwgIzI1NTIwMCl9LmFsZXJ0cy1wYWdlcntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtcGFnZXItdGV4dC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2Zsb2F0OmxlZnQ7bWluLWhlaWdodDoxLjhyZW07dGV4dC1hbGln''@;'; + put 'put ''bjpjZW50ZXI7d2lkdGg6Ny4ycmVtfS5hbGVydC1pbmZvIC5hbGVydHMtcGFnZXJ7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tcGFnZXItZm9udC1jb2xvciwgd2hpdGUpfS5hbGVydC13YXJuaW5nIC5hbGVydHMtcGFnZXJ7Y29sb3I6I2ZmZjtjb2xvcjp2YXIo''@;'; + put 'put ''LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctcGFnZXItZm9udC1jb2xvciwgd2hpdGUpfS5hbGVydC1kYW5nZXIgLmFsZXJ0cy1wYWdlcntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0uYWxlcnQtc3VjY2VzcyAuYWxl''@;'; + put 'put ''cnRzLXBhZ2Vye2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0uYWxlcnRzLXBhZ2VyLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25l''@;'; + put 'put ''Oy1vLWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kOjAgMDtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtcGFnZXItdGV4dC1jb2xvciwgd2hpdGUpO2N1cnNvcjpw''@;'; + put 'put ''b2ludGVyfWJ1dHRvbi5hbGVydHMtcGFnZXItYnV0dG9ue2N1cnNvcjpwb2ludGVyfS5hbGVydHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5hbGVydHMtcGFnZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1wYWdlci10ZXh0LWNvbG9yLCB3''@;'; + put 'put ''aGl0ZSl9LmFsZXJ0LWluZm8gLmFsZXJ0cy1wYWdlci1idXR0b24gY2RzLWljb24sLmFsZXJ0LWluZm8gLmFsZXJ0cy1wYWdlci1idXR0b24gY2xyLWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tcGFnZXItZm9udC1jb2xvciwgd2hpdGUpfS5hbGVydC13''@;'; + put 'put ''YXJuaW5nIC5hbGVydHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5hbGVydC13YXJuaW5nIC5hbGVydHMtcGFnZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0uYWxlcnQtZGFuZ2Vy''@;'; + put 'put ''IC5hbGVydHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5hbGVydC1kYW5nZXIgLmFsZXJ0cy1wYWdlci1idXR0b24gY2xyLWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1wYWdlci1mb250LWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0''@;'; + put 'put ''cy1wYWdlci1idXR0b24gY2RzLWljb24sLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0cy1wYWdlci1idXR0b24gY2xyLWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtcGFnZXItZm9udC1jb2xvciwgd2hpdGUpfS5hbGVydHMtcGFnZXItY29udHJvbHtkaXNw''@;'; + put 'put ''bGF5OmZsZXg7bWFyZ2luLXRvcDouM3JlbTt3aGl0ZS1zcGFjZTpub3dyYXB9LmFsZXJ0cy1wYWdlLWRvd257bWFyZ2luLWxlZnQ6MS4ycmVtO3dpZHRoOjMzLjMzJX0uYWxlcnRzLXBhZ2UtdXB7bWFyZ2luLXJpZ2h0OjEuMnJlbTt3aWR0aDozMy4zMyV9LmFsZXJ0cy1wYWdlci10ZXh0e3dp''@;'; + put 'put ''ZHRoOjMzLjMzJX06cm9vdHstLWNsci1jYXJkLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWNhcmQtZGl2aWRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0zMDApOy0tY2xyLWNhcmQtdGl0bGUtY29sb3I6dmFyKC0tY2xyLWg0LWNvbG9yKTstLWNs''@;'; + put 'put ''ci1jYXJkLXRpdGxlLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1oNC1mb250LXdlaWdodCk7LS1jbHItY2FyZC1ib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCk7LS1jbHItY2FyZC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNs''@;'; + put 'put ''ci1jYXJkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0zMDApOy0tY2xyLWNhcmQtYm94LXNoYWRvdy1jb2xvcjp2YXIoLS1jbHItY2FyZC1ib3JkZXItY29sb3IpOy0tY2xyLWNhcmQtY2xpY2thYmxlLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUw''@;'; + put 'put ''MCk7LS1jbHItY2FyZC1jbGlja2FibGUtYm94LXNoYWRvdy1jb2xvcjp2YXIoLS1jbHItY2FyZC1jbGlja2FibGUtYm9yZGVyLWNvbG9yKX0uY2FyZHtib3gtc2hhZG93OjAgLjE1cmVtICNkZWRlZGU7Ym94LXNoYWRvdzowIC4xNXJlbSAwIDAgdmFyKC0tY2xyLWNhcmQtYm94LXNoYWRvdy1j''@;'; + put 'put ''b2xvcik7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItY2FyZC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1jYXJkLWJvcmRlci13aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29s''@;'; + put 'put ''aWQ7Ym9yZGVyLWNvbG9yOiNkZWRlZGU7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1jYXJkLWJvcmRlci1jb2xvciwgI2RlZGVkZSl9LmNhcmQuY2xpY2thYmxlOmhvdmVye2JveC1zaGFkb3c6MCAuMTVyZW0gIzE3OWJkMztib3gtc2hhZG93OjAgLjE1cmVtIDAgMCB2YXIoLS1jbHItY2FyZC1j''@;'; + put 'put ''bGlja2FibGUtYm94LXNoYWRvdy1jb2xvcik7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXdpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6IzE3OWJkMztib3JkZXItY29sb3I6dmFyKC0tY2xyLWNhcmQt''@;'; + put 'put ''Y2xpY2thYmxlLWJvcmRlci1jb2xvciwgIzE3OWJkMyk7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLS4xcmVtKTt0cmFuc2l0aW9uOmJvcmRlciAuMnMgZWFzZSx0cmFuc2Zvcm0gLjJzIGVhc2V9LmNhcmQtYmxvY2sgLmNhcmQtZGl2''@;'; + put 'put ''aWRlciwuY2FyZCAuY2FyZC10aXRsZSwuY2FyZCAuY2FyZC10ZXh0LC5jYXJkIC5jYXJkLW1lZGlhLWJsb2NrLC5jYXJkIC5saXN0LC5jYXJkIC5saXN0LXVuc3R5bGVke21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOi42cmVtfS5jYXJkLWJsb2NrIC5jYXJkLWRpdmlkZXI6bGFzdC1jaGls''@;'; + put 'put ''ZCwuY2FyZCAuY2FyZC10aXRsZTpsYXN0LWNoaWxkLC5jYXJkIC5jYXJkLXRleHQ6bGFzdC1jaGlsZCwuY2FyZCAuY2FyZC1tZWRpYS1ibG9jazpsYXN0LWNoaWxkLC5jYXJkIC5saXN0Omxhc3QtY2hpbGQsLmNhcmQgLmxpc3QtdW5zdHlsZWQ6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9''@;'; + put 'put ''LmNhcmQuY2FyZC1pbWc+aW1nLC5jYXJkPi5jYXJkLWltZzpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkPmltZywuY2FyZC1pbWc+aW1ne2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OmF1dG87d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJX0uY2FyZHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2Nr''@;'; + put 'put ''O2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jYXJkLWJnLWNvbG9yLCB3aGl0ZSk7d2lkdGg6MTAwJTttYXJnaW4tdG9wOjEuMnJlbX0uY2FyZCAuYnRuLWxpbmt7bWluLXdpZHRoOjA7cGFkZGluZzowfS5jYXJkLmNsaWNrYWJsZXtjb2xvcjppbmhl''@;'; + put 'put ''cml0fS5jYXJkPi5saXN0LC5jYXJkPi5saXN0LXVuc3R5bGVke3BhZGRpbmc6LjZyZW0gLjlyZW19LmNhcmQgLmxpc3QtZ3JvdXB7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWJvdHRvbTowO2xpc3Qtc3R5bGU6bm9uZX0uY2FyZCAubGlzdC1ncm91cC1pdGVte3BhZGRpbmc6LjZyZW0gLjlyZW07''@;'; + put 'put ''Zm9udC1zaXplOi43cmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jYXJkLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItY2FyZC1ib3JkZXItd2lkdGgsIC4w''@;'; + put 'put ''NXJlbSk7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOiNkZWRlZGU7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItY2FyZC1ib3JkZXItY29sb3IsICNkZWRlZGUpfUBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjphdXRvKXsuY2FyZCAuZHJvcGRvd24+''@;'; + put 'put ''LmRyb3Bkb3duLXRvZ2dsZTphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOi0uNnJlbX19LmNhcmQtaGVhZGVyLC5jYXJkLWJsb2NrLC5jYXJkLWZvb3RlcntwYWRkaW5nOi42cmVtIC45cmVtfS5jYXJkLWhlYWRlciwuY2FyZC10aXRsZXtjb2xvcjojMDAwO2NvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1jYXJkLXRpdGxlLWNvbG9yLCBibGFjayk7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1jYXJkLXRpdGxlLWZvbnQtd2VpZ2h0LCAyMDApO2ZvbnQtc2l6ZTouOXJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWx9aDEuY2FyZC1oZWFkZXIsaDEuY2FyZC10aXRs''@;'; + put 'put ''ZSxoMi5jYXJkLWhlYWRlcixoMi5jYXJkLXRpdGxlLGgzLmNhcmQtaGVhZGVyLGgzLmNhcmQtdGl0bGUsaDQuY2FyZC1oZWFkZXIsaDQuY2FyZC10aXRsZSxoNS5jYXJkLWhlYWRlcixoNS5jYXJkLXRpdGxlLGg2LmNhcmQtaGVhZGVyLGg2LmNhcmQtdGl0bGV7bWFyZ2luLXRvcDowfS5jYXJk''@;'; + put 'put ''LXRleHR7Zm9udC1zaXplOi43cmVtfS5jYXJkLWltZzpmaXJzdC1jaGlsZD5pbWd7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItdG9w''@;'; + put 'put ''LXJpZ2h0LXJhZGl1czouMTVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKX0uY2FyZC1pbWc6bGFzdC1jaGlsZD5pbWd7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1i''@;'; + put 'put ''b3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKX0uY2FyZC5jYXJk''@;'; + put 'put ''LWltZz5pbWcsLmNhcmQ+LmNhcmQtaW1nOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQ+aW1ne2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKX0uY2FyZC1ibG9jayAuYnRuLC5jYXJkLWJsb2NrIC5idG4uYnRuLWxp''@;'; + put 'put ''bmssLmNhcmQtYmxvY2sgLmNhcmQtbGluaywuY2FyZC1mb290ZXIgLmJ0biwuY2FyZC1mb290ZXIgLmJ0bi5idG4tbGluaywuY2FyZC1mb290ZXIgLmNhcmQtbGlua3ttYXJnaW46MCAuNnJlbSAwIDB9LmNhcmQtYmxvY2sgLmJ0bi1ncm91cCAuYnRuLC5jYXJkLWZvb3RlciAuYnRuLWdyb3Vw''@;'; + put 'put ''IC5idG57bWFyZ2luOjB9LmNhcmQtaGVhZGVyLC5jYXJkLWJsb2Nre2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXdpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS1j''@;'; + put 'put ''b2xvcjojZGVkZWRlO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLWNvbG9yLCAjZGVkZWRlKX0uY2FyZC1oZWFkZXI6bGFzdC1jaGlsZCwuY2FyZC1ibG9jazpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206bm9uZX0uY2FyZC1kaXZpZGVye2Rpc3BsYXk6YmxvY2s7''@;'; + put 'put ''Ym9yZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItY2FyZC1ib3JkZXItd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOiNkZWRlZGU7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItY2FyZC1kaXZpZGVyLWNvbG9yLCAjZGVkZWRlKX0uY2FyZC1ibG9jayAuY2FyZC1kaXZpZGVye21hcmdpbi1sZWZ0Oi0uOXJlbTttYXJnaW4tcmlnaHQ6LS45cmVtO3dpZHRoOmF1dG99LmNhcmQtaGVhZGVyKy5jYXJkLWRpdmlkZXIsLmNhcmQtYmxvY2srLmNhcmQtZGl2aWRlcntkaXNw''@;'; + put 'put ''bGF5Om5vbmV9LmNhcmQtbWVkaWEtYmxvY2t7ZGlzcGxheTpmbGV4fS5jYXJkLW1lZGlhLWJsb2NrIC5jYXJkLW1lZGlhLWltYWdle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXg6MCAwIGF1dG87aGVpZ2h0OjNyZW07d2lkdGg6M3JlbTttYXgtaGVpZ2h0OjNyZW07bWF4LXdpZHRoOjNyZW19''@;'; + put 'put ''LmNhcmQtbWVkaWEtYmxvY2sgLmNhcmQtbWVkaWEtZGVzY3JpcHRpb257ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXJnaW46MCAwIDAgLjZyZW19LmNhcmQtbWVkaWEtYmxvY2sgLmNhcmQtbWVkaWEtdGl0bGUsLmNhcmQtbWVkaWEtYmxvY2sgc3BhbiwuY2FyZC1tZWRp''@;'; + put 'put ''YS1ibG9jayAuY2FyZC1tZWRpYS10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jYXJkLW1lZGlhLWJsb2NrLndyYXB7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jYXJkLW1lZGlhLWJsb2NrLndyYXAgLmNhcmQtbWVkaWEtZGVzY3JpcHRpb257bWFyZ2luOi4zcmVtIDAgMH0uY2FyZC1ibG9j''@;'; + put 'put ''az4ubGlzdCwuY2FyZC1ibG9jaz4ubGlzdC11bnN0eWxlZHtwYWRkaW5nOjB9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo1NzZweCl7LmNhcmQtY29sdW1uc3tjb2x1bW4tY291bnQ6Mztjb2x1bW4tZ2FwOi42cmVtO3BhZ2UtYnJlYWstaW5zaWRlOmF2b2lkO2JyZWFrLWluc2lkZTph''@;'; + put 'put ''dm9pZDtjb2x1bW4tZmlsbDpiYWxhbmNlOy13ZWJraXQtcGVyc3BlY3RpdmU6MX0uY2FyZC1jb2x1bW5zLmNhcmQtY29sdW1ucy0ye2NvbHVtbi1jb3VudDoyfS5jYXJkLWNvbHVtbnMuY2FyZC1jb2x1bW5zLTR7Y29sdW1uLWNvdW50OjR9LmNhcmQtY29sdW1ucyAuY2FyZHtkaXNwbGF5Omlu''@;'; + put 'put ''bGluZS1ibG9jazttYXJnaW46LjNyZW19LmNhcmQtY29sdW1ucyAuY2xpY2thYmxley13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW59fUBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjphdXRvKXsuY2FyZCAuY2hlY2tib3guYnRuIGxh''@;'; + put 'put ''YmVsLC5jYXJkIC5jaGVja2JveC1pbmxpbmUuYnRuIGxhYmVsLC5jYXJkIC5yYWRpby5idG4gbGFiZWwsLmNhcmQgLnJhZGlvLWlubGluZS5idG4gbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2t9fTpyb290ey0tY2xyLWRyb3Bkb3duLWFjdGl2ZS10ZXh0LWNvbG9yOnZhcigtLWNsci1jb2xv''@;'; + put 'put ''ci1uZXV0cmFsLTEwMDApOy0tY2xyLWRyb3Bkb3duLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWRyb3Bkb3duLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWRyb3Bkb3duLWRpdmlkZXItY29sb3I6dmFyKC0tY2xyLWNv''@;'; + put 'put ''bG9yLW5ldXRyYWwtMjAwKTstLWNsci1kcm9wZG93bi1kaXZpZGVyLWJvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoKTstLWNsci1kcm9wZG93bi1jaGlsZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTAwKTstLWNsci1kcm9wZG93bi1iZy1o''@;'; + put 'put ''b3Zlci1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWhvdmVyLWNvbG9yKTstLWNsci1kcm9wZG93bi1zZWxlY3Rpb24tY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1zZWxlY3Rpb24tY29sb3IpOy0tY2xyLWRyb3Bkb3duLWJveC1zaGFkb3c6dmFyKC0tY2xyLXBvcG92ZXItYm94LXNoYWRvdy1jb2xv''@;'; + put 'put ''cik7LS1jbHItZHJvcGRvd24tdGV4dC1jb2xvcjp2YXIoLS1jbHItcDEtY29sb3IpOy0tY2xyLWRyb3Bkb3duLWhlYWRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC05MDApOy0tY2xyLWRyb3Bkb3duLWhlYWRlci1mb250LXdlaWdodDo2MDA7LS1jbHItZHJvcGRvd24taXRlbS1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWRyb3Bkb3duLWl0ZW0tZm9udC13ZWlnaHQ6dmFyKC0tY2xyLXAxLWZvbnQtd2VpZ2h0KX0uZHJvcGRvd24tbWVudSAuYnRuLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LC5kcm9wZG93bi1tZW51IC5idG4taW5m''@;'; + put 'put ''bywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxp''@;'; + put 'put ''bmUtZGFuZ2VyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeSwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzLC5kcm9wZG93''@;'; + put 'put ''bi1tZW51IC5idG4tbGluaywuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbSwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taGVhZGVye292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3RleHQtYWxpZ246bGVmdH0uZHJvcGRvd257cG9zaXRpb246cmVsYXRpdmU7ZGlz''@;'; + put 'put ''cGxheTppbmxpbmUtYmxvY2t9LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MDt3aGl0ZS1zcGFjZTpub3dyYXA7Y3Vyc29yOnBvaW50''@;'; + put 'put ''ZXJ9LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUgY2xyLWljb25bc2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZSBjbHItaWNvbltzaGFwZV49YW5nbGVde3Bvc2l0aW9uOmFic29sdXRlO2NvbG9yOmluaGVyaXQ7aGVpZ2h0Oi41cmVtO3dpZHRoOi41cmVtO21pbi1o''@;'; + put 'put ''ZWlnaHQ6LjVyZW07bWluLXdpZHRoOi41cmVtfS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIGNkcy1pY29uW3NoYXBlXj1jYXJldF0sLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUgY2RzLWljb25bc2hhcGVePWFuZ2xlXXttYXJnaW4tdG9wOnVuc2V0O3Bvc2l0aW9uOmFic29sdXRlO2Nv''@;'; + put 'put ''bG9yOmluaGVyaXQ7aGVpZ2h0Oi41cmVtO3dpZHRoOi41cmVtOy0tY2RzLWdsb2JhbC1zcGFjZS03Oi41cmVtfS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLmJ0bntwYWRkaW5nLXJpZ2h0OjEuMnJlbTt0ZXh0LW92ZXJmbG93OnVuc2V0fS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLmJ0''@;'; + put 'put ''biBjbHItaWNvbnt0cmFuc2Zvcm06bm9uZX0uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2RzLWljb25bc2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb25bc2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG4g''@;'; + put 'put ''Y2RzLWljb25bc2hhcGVePWFuZ2xlXSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb25bc2hhcGVePWFuZ2xlXXtyaWdodDouNnJlbX0uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZTpub3QoLmJ0bil7cGFkZGluZzowIC42cmVtIDAgMDtjb2xvcjojMDAwO2NvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvciwgYmxhY2spfS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKSBjZHMtaWNvbltzaGFwZV49Y2FyZXRdLC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKSBjbHItaWNvbltzaGFwZV49Y2FyZXRdLC5k''@;'; + put 'put ''cm9wZG93biAuZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKSBjZHMtaWNvbltzaGFwZV49YW5nbGVdLC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKSBjbHItaWNvbltzaGFwZV49YW5nbGVde3JpZ2h0OjB9LmRyb3Bkb3duIGJ1dHRvbi5kcm9wZG93bi10b2dnbGU6bm90KC5i''@;'; + put 'put ''dG4pe2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWFjdGl2ZS10ZXh0LWNvbG9yLCBibGFjayl9LmRyb3Bkb3duLW1lbnU+KntkaXNwbGF5OmJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcH0uZHJvcGRvd24t''@;'; + put 'put ''bWVudXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6MDttaW4td2lkdGg6NnJlbTttYXgtd2lkdGg6MThyZW07YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLWRyb3Bkb3duLWJnLWNvbG9yLCB3aGl0''@;'; + put 'put ''ZSk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1ib3JkZXItY29sb3IsICNjY2NjY2Mp''@;'; + put 'put ''O2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kcm9wZG93bi1ib3gtc2hh''@;'; + put 'put ''ZG93LCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO21hcmdpbi10b3A6LjFyZW07cGFkZGluZzouNnJlbSAwO3Zpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6MTA1MH0uZHJvcGRvd24tbWVudSAuZHJvcGRvd24taGVhZGVye2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWhl''@;'; + put 'put ''YWRlci1jb2xvciwgIzMzMzMzMyk7Zm9udC1zaXplOi42cmVtO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXdlaWdodDp2YXIoLS1jbHItZHJvcGRvd24taGVhZGVyLWZvbnQtd2VpZ2h0LCA2MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtwYWRkaW5nOjAgLjZyZW07bGluZS1oZWlnaHQ6LjlyZW07''@;'; + put 'put ''bWFyZ2luOjB9LmRyb3Bkb3duLW1lbnUgLmJ0biwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm8sLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LC5kcm9wZG93bi1tZW51IC5i''@;'; + put 'put ''dG4tb3V0bGluZS1zZWNvbmRhcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2VzcywuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlciwuZHJvcGRvd24t''@;'; + put 'put ''bWVudSAuYnRuLXByaW1hcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2VzcywuZHJvcGRvd24tbWVudSAuYnRuLWxpbmssLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW17Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24t''@;'; + put 'put ''aXRlbS1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50''@;'; + put 'put ''ZXI7ZGlzcGxheTpibG9jaztoZWlnaHQ6YXV0bztsaW5lLWhlaWdodDppbmhlcml0O21hcmdpbjowO3dpZHRoOjEwMCU7dGV4dC10cmFuc2Zvcm06bm9uZX0uZHJvcGRvd24tbWVudSAuYnRuOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5OmhvdmVyLC5kcm9wZG93bi1tZW51''@;'; + put 'put ''IC5idG4taW5mbzpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmU6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnk6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUt''@;'; + put 'put ''d2FybmluZzpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTpob3Zlciwu''@;'; + put 'put ''ZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmc6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tbGluazpob3ZlciwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dy''@;'; + put 'put ''b3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYmctaG92ZXItY29sb3IsICNlOGU4ZTgpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3IsICM2NjY2NjYpO3RleHQtZGVjb3JhdGlvbjpub25lfS5kcm9wZG93bi1tZW51IC5idG4uYWN0aXZlLC5kcm9w''@;'; + put 'put ''ZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm8uYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnkuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0''@;'; + put 'put ''bGluZS1zZWNvbmRhcnkuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2Vzcy5hY3RpdmUsLmRyb3Bkb3duLW1lbnUg''@;'; + put 'put ''LmJ0bi1kYW5nZXIuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3MuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5hY3RpdmUsLmRyb3Bkb3du''@;'; + put 'put ''LW1lbnUgLmRyb3Bkb3duLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1kcm9wZG93bi1zZWxlY3Rpb24tY29sb3IsICNkOGUzZTkpO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWFjdGl2ZS10ZXh0LWNvbG9yLCBibGFjayl9''@;'; + put 'put ''LmRyb3Bkb3duLW1lbnUgLmJ0bjphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFy''@;'; + put 'put ''eTphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGlu''@;'; + put 'put ''ZS1zdWNjZXNzOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlcjphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5OmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmc6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2VzczphY3RpdmUsLmRyb3Bkb3du''@;'; + put 'put ''LW1lbnUgLmJ0bi1saW5rOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTphY3RpdmV7Ym94LXNoYWRvdzpub25lfS5kcm9wZG93bi1tZW51IC5idG46Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvOmZv''@;'; + put 'put ''Y3VzLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZTpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeTpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nOmZvY3Vz''@;'; + put 'put ''LC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXI6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5OmZvY3VzLC5kcm9wZG93bi1tZW51''@;'; + put 'put ''IC5idG4td2FybmluZzpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3M6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rOmZvY3VzLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmZvY3Vze3otaW5kZXg6aW5oZXJpdH0uZHJvcGRvd24tbWVudSAuYnRuLmRpc2FibGVk''@;'; + put 'put ''LC5kcm9wZG93bi1tZW51IC5idG46ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnkuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4taW5m''@;'; + put 'put ''bzpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5''@;'; + put 'put ''OmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAu''@;'; + put 'put ''YnRuLW91dGxpbmUtd2FybmluZzpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZGlzYWJsZWQsLmRy''@;'; + put 'put ''b3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXI6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5LmRpc2FibGVkLC5kcm9wZG93bi1tZW51''@;'; + put 'put ''IC5idG4tcHJpbWFyeTpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3M6ZGlz''@;'; + put 'put ''YWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tbGluazpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpkaXNhYmxlZHtjdXJzb3I6bm90LWFs''@;'; + put 'put ''bG93ZWQ7b3BhY2l0eTouNDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uZHJvcGRvd24tbWVudSAuYnRuLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG46ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnkuZGlzYWJs''@;'; + put 'put ''ZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuZGlz''@;'; + put 'put ''YWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkOmhvdmVyLC5kcm9wZG93''@;'; + put 'put ''bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAu''@;'; + put 'put ''YnRuLW91dGxpbmUtd2FybmluZzpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1''@;'; + put 'put ''Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXI6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3du''@;'; + put 'put ''LW1lbnUgLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nOmRpc2FibGVkOmhvdmVyLC5k''@;'; + put 'put ''cm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3M6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tbGluazpkaXNhYmxlZDpob3Zlciwu''@;'; + put 'put ''ZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpkaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMH0uZHJvcGRvd24tbWVudSAuYnRuLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuOmRpc2Fi''@;'; + put 'put ''bGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeS5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4taW5mby5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1p''@;'; + put 'put ''bmZvOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZTpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnkuZGlzYWJsZWQ6YWN0aXZlLC5kcm9w''@;'; + put 'put ''ZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24t''@;'; + put 'put ''bWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXIuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4t''@;'; + put 'put ''b3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2VzczpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuZGlz''@;'; + put 'put ''YWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnkuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi13''@;'; + put 'put ''YXJuaW5nLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmc6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24t''@;'; + put 'put ''bWVudSAuYnRuLWxpbmsuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tbGluazpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmRpc2FibGVkOmFjdGl2ZXti''@;'; + put 'put ''YWNrZ3JvdW5kOjAgMDtib3gtc2hhZG93Om5vbmV9LmRyb3Bkb3duLW1lbnUgLmJ0bi5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5l''@;'; + put 'put ''LmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnkuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZXhwYW5kYWJsZSwuZHJvcGRvd24t''@;'; + put 'put ''bWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlci5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeS5leHBhbmRhYmxlLC5kcm9w''@;'; + put 'put ''ZG93bi1tZW51IC5idG4td2FybmluZy5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmV4cGFuZGFibGV7bWFyZ2luLXJpZ2h0OjEu''@;'; + put 'put ''MnJlbTtwYWRkaW5nLXJpZ2h0Oi42cmVtfS5kcm9wZG93bi1tZW51IC5idG4uZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnkuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1t''@;'; + put 'put ''ZW51IC5idG4tb3V0bGluZS5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeS5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4t''@;'; + put 'put ''b3V0bGluZS13YXJuaW5nLmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXIuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5n''@;'; + put 'put ''ZXIuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5LmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZy5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3MuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bk''@;'; + put 'put ''b3duLW1lbnUgLmJ0bi1saW5rLmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmV4cGFuZGFibGU6YmVmb3Jle2NvbnRlbnQ6IiI7ZmxvYXQ6cmlnaHQ7aGVpZ2h0Oi42cmVtO3dpZHRoOi42cmVtO3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTtiYWNrZ3Jv''@;'; + put 'put ''dW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTIlMjAxMiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMl''@;'; + put 'put ''M0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NzdHlsZSUzRS5jbHMtMSU3QmZpbGwlM0ElMjM5YTlhOWElM0IlN0QlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0N0aXRsZSUzRUNhcmV0JTNDJTJGdGl0bGUlM0UlMEElMjAl''@;'; + put 'put ''MjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGQlM0QlMjJNNiUyQzlMMS4yJTJDNC4yYTAuNjglMkMwLjY4JTJDMCUyQzAlMkMxJTJDMS0xTDYlMkM3LjA4JTJDOS44NCUyQzMuMjRhMC42OCUyQzAuNjglMkMwJTJDMSUyQzElMkMxJTJDMVolMjIlMkYlM0UlMEElM0Ml''@;'; + put 'put ''MkZzdmclM0UlMEEpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXRvcDouM3JlbX0uZHJvcGRvd24tbWVudSAuYnRuLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVte3BhZGRpbmc6LjE1''@;'; + put 'put ''cmVtIDEuMnJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU3NnB4KXsuZHJvcGRvd24tbWVudSAuYnRuLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVte3BhZGRpbmc6LjNyZW0gMS4ycmVtfX0uZHJvcGRvd24tbWVudSAuZHJvcGRvd24tZGl2aWRlcntmb250LXNpemU6LjZy''@;'; + put 'put ''ZW07Ym9yZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItZHJvcGRvd24tZGl2aWRlci1ib3JkZXItd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyLWJvdHRv''@;'; + put 'put ''bS1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tZGl2aWRlci1jb2xvciwgI2U4ZThlOCk7bWFyZ2luOi4zcmVtIDB9LmJ0bi1ncm91cC1vdmVyZmxvdy5vcGVuPi5kcm9wZG93bi1tZW51LC5idG4tZ3JvdXAtb3ZlcmZsb3cub3Blbj4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1t''@;'; + put 'put ''ZW51LC50YWJzLW92ZXJmbG93Lm9wZW4+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cub3Blbj4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5vcGVuPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5vcGVuPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+''@;'; + put 'put ''LmRyb3Bkb3duLW1lbnV7dmlzaWJpbGl0eTp2aXNpYmxlfS5idG4tZ3JvdXAtb3ZlcmZsb3cuYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdy5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cuYm90dG9tLWxlZnQ+LmRyb3Bkb3du''@;'; + put 'put ''LW1lbnUsLnRhYnMtb3ZlcmZsb3cuYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24uYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51e3RvcDoxMDAlO2JvdHRvbTphdXRvO21hcmdpbjouMXJlbSAwIDB9LmJ0''@;'; + put 'put ''bi1ncm91cC1vdmVyZmxvdy5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnV7bGVmdDowO3JpZ2h0OmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5ib3R0''@;'; + put 'put ''b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cuYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnV7cmlnaHQ6MDtsZWZ0OmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy50b3AtbGVmdD4uZHJvcGRvd24tbWVu''@;'; + put 'put ''dSwuYnRuLWdyb3VwLW92ZXJmbG93LnRvcC1yaWdodD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy50b3AtbGVmdD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLnRvcC1sZWZ0Pi5kcm9wZG93bi1tZW51LC5kcm9w''@;'; + put 'put ''ZG93bi50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnV7dG9wOmF1dG87Ym90dG9tOjEwMCU7bWFyZ2luOjAgMCAuMXJlbX0uYnRuLWdyb3VwLW92ZXJmbG93LnRvcC1sZWZ0Pi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LnRvcC1sZWZ0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi50b3At''@;'; + put 'put ''bGVmdD4uZHJvcGRvd24tbWVudXtsZWZ0OjA7cmlnaHQ6YXV0b30uYnRuLWdyb3VwLW92ZXJmbG93LnRvcC1yaWdodD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLnRvcC1yaWdodD4uZHJvcGRvd24tbWVudXtyaWdodDow''@;'; + put 'put ''O2xlZnQ6YXV0b30uYnRuLWdyb3VwLW92ZXJmbG93LmxlZnQtdG9wPi5kcm9wZG93bi1tZW51LC5idG4tZ3JvdXAtb3ZlcmZsb3cubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cubGVmdC1ib3R0''@;'; + put 'put ''b20+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLmxlZnQtdG9wPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudXtyaWdodDoxMDAlO2xlZnQ6YXV0bzttYXJnaW46MCAuMXJlbSAwIDB9LmJ0bi1ncm91cC1vdmVyZmxvdy5sZWZ0LWJvdHRvbT4uZHJv''@;'; + put 'put ''cGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnV7dG9wOjA7Ym90dG9tOmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxv''@;'; + put 'put ''dy5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ubGVmdC10b3A+LmRyb3Bkb3duLW1lbnV7Ym90dG9tOjA7dG9wOmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdy5yaWdodC1ib3R0b20+LmRyb3Bkb3du''@;'; + put 'put ''LW1lbnUsLnRhYnMtb3ZlcmZsb3cucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnV7bGVm''@;'; + put 'put ''dDoxMDAlO3JpZ2h0OmF1dG87bWFyZ2luOjAgMCAwIC4xcmVtfS5idG4tZ3JvdXAtb3ZlcmZsb3cucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51''@;'; + put 'put ''e3RvcDowO2JvdHRvbTphdXRvfS5idG4tZ3JvdXAtb3ZlcmZsb3cucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51e2JvdHRvbTowO3RvcDphdXRvfS5idG4tZ3Jv''@;'; + put 'put ''dXAtb3ZlcmZsb3cgLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93biAuZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51e2JvcmRlci1jb2xvcjojYjNiM2IzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24t''@;'; + put 'put ''Y2hpbGQtYm9yZGVyLWNvbG9yLCAjYjNiM2IzKTtwb3NpdGlvbjphYnNvbHV0ZX0uYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5k''@;'; + put 'put ''cm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLmxlZnQtdG9wPi5k''@;'; + put 'put ''cm9wZG93bi1tZW51LC5kcm9wZG93biAuZHJvcGRvd24ubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudXt0b3A6MDtib3R0b206YXV0bztsZWZ0OmF1dG87cmlnaHQ6MTAwJTttYXJnaW4tdG9wOi0uOTVyZW07bWFyZ2luLXJpZ2h0Oi0uMnJlbX0uYnRuLWdy''@;'; + put 'put ''b3VwLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdyAuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cgLmRyb3Bkb3duLnJpZ2h0LXRvcD4uZHJv''@;'; + put 'put ''cGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duIC5kcm9wZG93bi5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duIC5kcm9wZG93bi5yaWdodC10b3A+LmRyb3Bk''@;'; + put 'put ''b3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudXt0b3A6MDtib3R0b206YXV0bztsZWZ0OjEwMCU7cmlnaHQ6YXV0bzttYXJnaW4tdG9wOi0uOTVyZW07bWFyZ2luLWxlZnQ6LS4ycmVtfS5idG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51''@;'; + put 'put ''LC5idG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cgLmRyb3Bkb3duLmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LWJv''@;'; + put 'put ''dHRvbT4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC5kcm9wZG93biAuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duIC5kcm9wZG93bi5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51e3RvcDph''@;'; + put 'put ''dXRvO2JvdHRvbTowO2xlZnQ6YXV0bztyaWdodDoxMDAlO21hcmdpbi1ib3R0b206LS45NXJlbTttYXJnaW4tcmlnaHQ6LS4ycmVtfS5idG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5y''@;'; + put 'put ''aWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4u''@;'; + put 'put ''ZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51e3RvcDphdXRvO2JvdHRvbTowO2xlZnQ6MTAwJTtyaWdo''@;'; + put 'put ''dDphdXRvO21hcmdpbi1ib3R0b206LS45NXJlbTttYXJnaW4tbGVmdDotLjJyZW19OnJvb3R7LS1jbHItYmFkZ2UtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWJhZGdlLWNvbG9yOnZhcigtLWNsci1jb2xvci1vbi1uZXV0cmFsLTYwMCk7LS1j''@;'; + put 'put ''bHItYmFkZ2UtaW5mby1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItYmFkZ2UtaW5mby1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1iYWRnZS1zdWNjZXNzLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTgwMCk7LS1jbHIt''@;'; + put 'put ''YmFkZ2Utc3VjY2Vzcy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1iYWRnZS13YXJuaW5nLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci13YXJuaW5nLTEwMDApOy0tY2xyLWJhZGdlLXdhcm5pbmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHIt''@;'; + put 'put ''YmFkZ2UtZGFuZ2VyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItOTAwKTstLWNsci1iYWRnZS1kYW5nZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYmFkZ2UtZ3JheS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWJh''@;'; + put 'put ''ZGdlLWdyYXktY29sb3I6dmFyKC0tY2xyLWJhZGdlLWZvbnQtY29sb3ItbGlnaHQpOy0tY2xyLWJhZGdlLXB1cnBsZS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi01MDApOy0tY2xyLWJhZGdlLXB1cnBsZS1jb2xvcjp2YXIoLS1jbHItYmFkZ2UtZm9udC1jb2xv''@;'; + put 'put ''ci1saWdodCk7LS1jbHItYmFkZ2UtYmx1ZS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItYmFkZ2UtYmx1ZS1jb2xvcjp2YXIoLS1jbHItYmFkZ2UtZm9udC1jb2xvci1saWdodCk7LS1jbHItYmFkZ2Utb3JhbmdlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci13''@;'; + put 'put ''YXJuaW5nLTEwMDApOy0tY2xyLWJhZGdlLW9yYW5nZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1iYWRnZS1saWdodC1ibHVlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNTAwKTstLWNsci1iYWRnZS1saWdodC1ibHVlLWNvbG9yOnZhcigtLWNsci1j''@;'; + put 'put ''b2xvci1uZXV0cmFsLTApfS5iYWRnZXtkaXNwbGF5OmlubGluZS1mbGV4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4td2lkdGg6Ljc1cmVtO2JhY2tncm91bmQ6IzhjOGM4YztoZWlnaHQ6Ljc1cmVtO2xpbmUtaGVp''@;'; + put 'put ''Z2h0Om5vcm1hbDtib3JkZXItcmFkaXVzOi41cmVtO2ZvbnQtc2l6ZTouNXJlbTtwYWRkaW5nOjAgLjJyZW07bWFyZ2luLXJpZ2h0Oi4zcmVtO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1mb250LWNvbG9yLWxp''@;'; + put 'put ''Z2h0LCB3aGl0ZSl9LmJhZGdlOnZpc2l0ZWR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtZm9udC1jb2xvci1saWdodCwgd2hpdGUpfS5iYWRnZS5iYWRnZS1ncmF5LC5iYWRnZS5iYWRnZS0xe2JhY2tncm91bmQ6IzhjOGM4YztiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1n''@;'; + put 'put ''cmF5LWJnLWNvbG9yLCAjOGM4YzhjKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1ncmF5LWNvbG9yLCB3aGl0ZSl9LmJhZGdlLmJhZGdlLXB1cnBsZSwuYmFkZ2UuYmFkZ2UtMntiYWNrZ3JvdW5kOiM5ZTU3YmM7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtcHVycGxlLWJn''@;'; + put 'put ''LWNvbG9yLCAjOWU1N2JjKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1wdXJwbGUtY29sb3IsIHdoaXRlKX0uYmFkZ2UuYmFkZ2UtYmx1ZSwuYmFkZ2UuYmFkZ2UtM3tiYWNrZ3JvdW5kOiMwMDU2N2E7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtYmx1ZS1iZy1jb2xvciwg''@;'; + put 'put ''IzAwNTY3YSk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtYmx1ZS1jb2xvciwgd2hpdGUpfS5iYWRnZS5iYWRnZS1vcmFuZ2UsLmJhZGdlLmJhZGdlLTR7YmFja2dyb3VuZDojNjEzMjAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLW9yYW5nZS1iZy1jb2xvciwgIzYxMzIw''@;'; + put 'put ''MCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2Utb3JhbmdlLWNvbG9yLCB3aGl0ZSl9LmJhZGdlLmJhZGdlLWxpZ2h0LWJsdWUsLmJhZGdlLmJhZGdlLTV7YmFja2dyb3VuZDojMTc5YmQzO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLWxpZ2h0LWJsdWUtYmctY29sb3IsICMx''@;'; + put 'put ''NzliZDMpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWxpZ2h0LWJsdWUtY29sb3IsIHdoaXRlKX0uYmFkZ2UuYmFkZ2UtaW5mb3tiYWNrZ3JvdW5kOiMwMDU2N2E7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtaW5mby1iZy1jb2xvciwgIzAwNTY3YSk7Y29sb3I6I2ZmZjtj''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItYmFkZ2UtaW5mby1jb2xvciwgd2hpdGUpfS5iYWRnZS5iYWRnZS1zdWNjZXNze2JhY2tncm91bmQ6IzMwNmIwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1zdWNjZXNzLWJnLWNvbG9yLCAjMzA2YjAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRn''@;'; + put 'put ''ZS1zdWNjZXNzLWNvbG9yLCB3aGl0ZSl9LmJhZGdlLmJhZGdlLWRhbmdlcntiYWNrZ3JvdW5kOiM5OTE3MDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtZGFuZ2VyLWJnLWNvbG9yLCAjOTkxNzAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1kYW5nZXItY29sb3IsIHdo''@;'; + put 'put ''aXRlKX0uYmFkZ2UuYmFkZ2Utd2FybmluZ3tiYWNrZ3JvdW5kOiM2MTMyMDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2Utd2FybmluZy1iZy1jb2xvciwgIzYxMzIwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2Utd2FybmluZy1jb2xvciwgd2hpdGUpfV86LW1zLWlucHV0''@;'; + put 'put ''LXBsYWNlaG9sZGVyIC5iYWRnZSw6cm9vdCAuYmFkZ2V7cGFkZGluZzouMXJlbSAuMTVyZW0gMH1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmJhZGdle3BhZGRpbmc6LjFyZW0gLjE1cmVtIDB9fTpyb290ey0tY2xyLWxhYmVsLWZvbnQtY29sb3ItbGlnaHQ6dmFyKC0tY2xyLWNv''@;'; + put 'put ''bG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItbGFiZWwtZm9udC1jb2xvci1kYXJrOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWxhYmVsLWRlZmF1bHQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1jbHItbGFiZWwtZm9udC1zaXplOi41NXJl''@;'; + put 'put ''bTstLWNsci1sYWJlbC1mb250LXdlaWdodDo0MDA7LS1jbHItbGFiZWwtbGV0dGVyLXNwYWNpbmc6LjAzZW07LS1jbHItbGFiZWwtYm9yZGVyLXJhZGl1czouNnJlbTstLWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLWxhYmVsLWdy''@;'; + put 'put ''YXktYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1sYWJlbC1ncmF5LWNvbG9yOnZhcigtLWNsci1sYWJlbC1mb250LWNvbG9yLWxpZ2h0KTstLWNsci1sYWJlbC1wdXJwbGUtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tNTAwKTst''@;'; + put 'put ''LWNsci1sYWJlbC1wdXJwbGUtY29sb3I6dmFyKC0tY2xyLWxhYmVsLWZvbnQtY29sb3ItbGlnaHQpOy0tY2xyLWxhYmVsLWJsdWUtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWxhYmVsLWJsdWUtY29sb3I6dmFyKC0tY2xyLWxhYmVsLWZvbnQtY29sb3ItbGln''@;'; + put 'put ''aHQpOy0tY2xyLWxhYmVsLW9yYW5nZS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itd2FybmluZy0xMDAwKTstLWNsci1sYWJlbC1vcmFuZ2UtY29sb3I6dmFyKC0tY2xyLWxhYmVsLWZvbnQtY29sb3ItZGFyayk7LS1jbHItbGFiZWwtbGlnaHQtYmx1ZS1iZy1jb2xvcjp2YXIoLS1jbHItY29s''@;'; + put 'put ''b3ItYWN0aW9uLTUwMCk7LS1jbHItbGFiZWwtbGlnaHQtYmx1ZS1jb2xvcjp2YXIoLS1jbHItbGFiZWwtZm9udC1jb2xvci1kYXJrKTstLWNsci1sYWJlbC1pbmZvLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNTApOy0tY2xyLWxhYmVsLWluZm8tZm9udC1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItbGFiZWwtaW5mby1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWxhYmVsLXN1Y2Nlc3MtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNTApOy0tY2xyLWxhYmVsLXN1Y2Nlc3MtZm9udC1jb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy04MDApOy0tY2xyLWxhYmVsLXN1Y2Nlc3MtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTgwMCk7LS1jbHItbGFiZWwtd2FybmluZy1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itd2FybmluZy0xMDApOy0tY2xyLWxhYmVsLXdh''@;'; + put 'put ''cm5pbmctZm9udC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC05MDApOy0tY2xyLWxhYmVsLXdhcm5pbmctYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci13YXJuaW5nLTgwMCk7LS1jbHItbGFiZWwtZGFuZ2VyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItMTAwKTst''@;'; + put 'put ''LWNsci1sYWJlbC1kYW5nZXItZm9udC1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkwMCk7LS1jbHItbGFiZWwtZGFuZ2VyLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkwMCl9LmxhYmVsLGEubGFiZWx7Zm9udC1zaXplOi41NXJlbTtmb250LXNpemU6dmFyKC0t''@;'; + put 'put ''Y2xyLWxhYmVsLWZvbnQtc2l6ZSwgLjU1cmVtKTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWxhYmVsLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOi4wM2VtO2xldHRlci1zcGFjaW5nOnZhcigtLWNsci1sYWJlbC1sZXR0ZXItc3BhY2luZywgLjAzZW0p''@;'; + put 'put ''O2xpbmUtaGVpZ2h0Oi42cmVtO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowIC42cmVtO2JvcmRlci1yYWRpdXM6LjZyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItbGFiZWwtYm9yZGVyLXJhZGl1cywgLjZy''@;'; + put 'put ''ZW0pO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1kZWZhdWx0LWJvcmRlci1jb2xvciwgIzhjOGM4Yyk7aGVpZ2h0OjEuMDVyZW07bWFyZ2luOjAgLjNyZW0gLjA1cmVtIDA7d2hpdGUtc3BhY2U6bm93cmFwO2Nv''@;'; + put 'put ''bG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWxhYmVsLWZvbnQtY29sb3ItbGlnaHQsIGJsYWNrKX0ubGFiZWw6dmlzaXRlZCxhLmxhYmVsOnZpc2l0ZWR7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItbGFiZWwtZm9udC1jb2xvci1saWdodCwgYmxhY2spfS5sYWJlbDpmb2N1cywubGFiZWw6''@;'; + put 'put ''aG92ZXIsLmxhYmVsOmFjdGl2ZSxhLmxhYmVsOmZvY3VzLGEubGFiZWw6aG92ZXIsYS5sYWJlbDphY3RpdmV7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmxhYmVsLmNsaWNrYWJsZTpob3ZlciwubGFiZWwuY2xpY2thYmxlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZTpob3ZlcixhLmxhYmVsLmNs''@;'; + put 'put ''aWNrYWJsZTphY3RpdmV7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWxhYmVsLWJnLWhvdmVyLWNvbG9yLCAjZThlOGU4KX0ubGFiZWwuY2xpY2thYmxlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZTphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjOGM4YzhjIGlu''@;'; + put 'put ''c2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1sYWJlbC1ncmF5LWJnLWNvbG9yLCAjOGM4YzhjKSBpbnNldDt0cmFuc2Zvcm06dHJhbnNsYXRlWSguNXB4KX0ubGFiZWwubGFiZWwtZ3JheSwubGFiZWwubGFiZWwtMSxhLmxhYmVsLmxhYmVsLWdyYXksYS5sYWJlbC5sYWJl''@;'; + put 'put ''bC0xe2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1ncmF5LWJnLWNvbG9yLCAjOGM4YzhjKX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLWdyYXk6aG92ZXIsLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ncmF5OmFjdGl2''@;'; + put 'put ''ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ncmF5OmhvdmVyLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLWdyYXk6YWN0aXZle3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvciwgI2U4ZThlOCl9''@;'; + put 'put ''LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ncmF5OmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ncmF5OmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICM4YzhjOGMgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWxhYmVsLWdyYXktYmctY29sb3IsICM4Yzhj''@;'; + put 'put ''OGMpIGluc2V0O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC41cHgpfS5sYWJlbC5sYWJlbC1ncmF5Pi5iYWRnZSxhLmxhYmVsLmxhYmVsLWdyYXk+LmJhZGdle2JhY2tncm91bmQ6IzhjOGM4YztiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1ncmF5LWJnLWNvbG9yLCAjOGM4YzhjKTtjb2xvcjoj''@;'; + put 'put ''ZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1ncmF5LWNvbG9yLCB3aGl0ZSl9LmxhYmVsLmxhYmVsLXB1cnBsZSwubGFiZWwubGFiZWwtMixhLmxhYmVsLmxhYmVsLXB1cnBsZSxhLmxhYmVsLmxhYmVsLTJ7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzllNTdiYztib3JkZXIt''@;'; + put 'put ''Y29sb3I6dmFyKC0tY2xyLWxhYmVsLXB1cnBsZS1iZy1jb2xvciwgIzllNTdiYyl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1wdXJwbGU6aG92ZXIsLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1wdXJwbGU6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLXB1cnBsZTpob3ZlcixhLmxhYmVs''@;'; + put 'put ''LmNsaWNrYWJsZS5sYWJlbC1wdXJwbGU6YWN0aXZle3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvciwgI2U4ZThlOCl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1wdXJwbGU6YWN0aXZlLGEubGFi''@;'; + put 'put ''ZWwuY2xpY2thYmxlLmxhYmVsLXB1cnBsZTphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjOWU1N2JjIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1sYWJlbC1wdXJwbGUtYmctY29sb3IsICM5ZTU3YmMpIGluc2V0O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC41cHgp''@;'; + put 'put ''fS5sYWJlbC5sYWJlbC1wdXJwbGU+LmJhZGdlLGEubGFiZWwubGFiZWwtcHVycGxlPi5iYWRnZXtiYWNrZ3JvdW5kOiM5ZTU3YmM7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtcHVycGxlLWJnLWNvbG9yLCAjOWU1N2JjKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1wdXJw''@;'; + put 'put ''bGUtY29sb3IsIHdoaXRlKX0ubGFiZWwubGFiZWwtYmx1ZSwubGFiZWwubGFiZWwtMyxhLmxhYmVsLmxhYmVsLWJsdWUsYS5sYWJlbC5sYWJlbC0ze2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMwMDU2N2E7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1ibHVlLWJnLWNv''@;'; + put 'put ''bG9yLCAjMDA1NjdhKX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLWJsdWU6aG92ZXIsLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ibHVlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ibHVlOmhvdmVyLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLWJsdWU6YWN0aXZle3RleHQtZGVjb3Jh''@;'; + put 'put ''dGlvbjpub25lO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvciwgI2U4ZThlOCl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ibHVlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ibHVlOmFjdGl2ZXtib3gtc2hhZG93OjAg''@;'; + put 'put ''LjA1cmVtICMwMDU2N2EgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWxhYmVsLWJsdWUtYmctY29sb3IsICMwMDU2N2EpIGluc2V0O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC41cHgpfS5sYWJlbC5sYWJlbC1ibHVlPi5iYWRnZSxhLmxhYmVsLmxhYmVsLWJsdWU+LmJh''@;'; + put 'put ''ZGdle2JhY2tncm91bmQ6IzAwNTY3YTtiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1ibHVlLWJnLWNvbG9yLCAjMDA1NjdhKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1ibHVlLWNvbG9yLCB3aGl0ZSl9LmxhYmVsLmxhYmVsLW9yYW5nZSwubGFiZWwubGFiZWwtNCxhLmxh''@;'; + put 'put ''YmVsLmxhYmVsLW9yYW5nZSxhLmxhYmVsLmxhYmVsLTR7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzYxMzIwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWxhYmVsLW9yYW5nZS1iZy1jb2xvciwgIzYxMzIwMCl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1vcmFuZ2U6aG92ZXIs''@;'; + put 'put ''LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1vcmFuZ2U6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLW9yYW5nZTpob3ZlcixhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1vcmFuZ2U6YWN0aXZle3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZh''@;'; + put 'put ''cigtLWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvciwgI2U4ZThlOCl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1vcmFuZ2U6YWN0aXZlLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLW9yYW5nZTphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjNjEzMjAwIGluc2V0O2JveC1zaGFkb3c6MCAuMDVy''@;'; + put 'put ''ZW0gMCAwIHZhcigtLWNsci1sYWJlbC1vcmFuZ2UtYmctY29sb3IsICM2MTMyMDApIGluc2V0O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC41cHgpfS5sYWJlbC5sYWJlbC1vcmFuZ2U+LmJhZGdlLGEubGFiZWwubGFiZWwtb3JhbmdlPi5iYWRnZXtiYWNrZ3JvdW5kOiM2MTMyMDA7YmFja2dyb3Vu''@;'; + put 'put ''ZDp2YXIoLS1jbHItYmFkZ2Utb3JhbmdlLWJnLWNvbG9yLCAjNjEzMjAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1vcmFuZ2UtY29sb3IsIHdoaXRlKX0ubGFiZWwubGFiZWwtbGlnaHQtYmx1ZSwubGFiZWwubGFiZWwtNSxhLmxhYmVsLmxhYmVsLWxpZ2h0LWJsdWUsYS5s''@;'; + put 'put ''YWJlbC5sYWJlbC01e2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMxNzliZDM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1saWdodC1ibHVlLWJnLWNvbG9yLCAjMTc5YmQzKX0ubGFiZWwuY2xpY2thYmxlLmxhYmVsLWxpZ2h0LWJsdWU6aG92ZXIsLmxhYmVsLmNsaWNr''@;'; + put 'put ''YWJsZS5sYWJlbC1saWdodC1ibHVlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1saWdodC1ibHVlOmhvdmVyLGEubGFiZWwuY2xpY2thYmxlLmxhYmVsLWxpZ2h0LWJsdWU6YWN0aXZle3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZh''@;'; + put 'put ''cigtLWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvciwgI2U4ZThlOCl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1saWdodC1ibHVlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1saWdodC1ibHVlOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICMxNzliZDMgaW5zZXQ7Ym94LXNoYWRv''@;'; + put 'put ''dzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWxhYmVsLWxpZ2h0LWJsdWUtYmctY29sb3IsICMxNzliZDMpIGluc2V0O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC41cHgpfS5sYWJlbC5sYWJlbC1saWdodC1ibHVlPi5iYWRnZSxhLmxhYmVsLmxhYmVsLWxpZ2h0LWJsdWU+LmJhZGdle2JhY2tncm91''@;'; + put 'put ''bmQ6IzE3OWJkMztiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1saWdodC1ibHVlLWJnLWNvbG9yLCAjMTc5YmQzKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1saWdodC1ibHVlLWNvbG9yLCB3aGl0ZSl9LmxhYmVsLmxhYmVsLWluZm8sYS5sYWJlbC5sYWJlbC1pbmZve2Jh''@;'; + put 'put ''Y2tncm91bmQ6I2UzZjVmYztiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1pbmZvLWJnLWNvbG9yLCAjZTNmNWZjKTtjb2xvcjojMDA1NjdhO2NvbG9yOnZhcigtLWNsci1sYWJlbC1pbmZvLWZvbnQtY29sb3IsICMwMDU2N2EpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMw''@;'; + put 'put ''MDU2N2E7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1pbmZvLWJvcmRlci1jb2xvciwgIzAwNTY3YSl9LmxhYmVsLmxhYmVsLXN1Y2Nlc3MsYS5sYWJlbC5sYWJlbC1zdWNjZXNze2JhY2tncm91bmQ6I2RmZjBkMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1zdWNjZXNzLWJnLWNv''@;'; + put 'put ''bG9yLCAjZGZmMGQwKTtjb2xvcjojMzA2YjAwO2NvbG9yOnZhcigtLWNsci1sYWJlbC1zdWNjZXNzLWZvbnQtY29sb3IsICMzMDZiMDApO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMzMDZiMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1zdWNjZXNzLWJvcmRlci1j''@;'; + put 'put ''b2xvciwgIzMwNmIwMCl9LmxhYmVsLmxhYmVsLXdhcm5pbmcsYS5sYWJlbC5sYWJlbC13YXJuaW5ne2JhY2tncm91bmQ6I2ZmZjRjNztiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC13YXJuaW5nLWJnLWNvbG9yLCAjZmZmNGM3KTtjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci1sYWJlbC13''@;'; + put 'put ''YXJuaW5nLWZvbnQtY29sb3IsICMzMzMzMzMpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiNhZDc2MDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC13YXJuaW5nLWJvcmRlci1jb2xvciwgI2FkNzYwMCl9LmxhYmVsLmxhYmVsLWRhbmdlcixhLmxhYmVsLmxhYmVsLWRh''@;'; + put 'put ''bmdlcntiYWNrZ3JvdW5kOiNmZWRkZDc7YmFja2dyb3VuZDp2YXIoLS1jbHItbGFiZWwtZGFuZ2VyLWJnLWNvbG9yLCAjZmVkZGQ3KTtjb2xvcjojOTkxNzAwO2NvbG9yOnZhcigtLWNsci1sYWJlbC1kYW5nZXItZm9udC1jb2xvciwgIzk5MTcwMCk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3Jk''@;'; + put 'put ''ZXItY29sb3I6Izk5MTcwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWxhYmVsLWRhbmdlci1ib3JkZXItY29sb3IsICM5OTE3MDApfS5sYWJlbD4uYmFkZ2UsYS5sYWJlbD4uYmFkZ2V7bWFyZ2luOjAgLS40NXJlbSAwIC4zcmVtfUAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKXsubGFiZWws''@;'; + put 'put ''YS5sYWJlbHt2ZXJ0aWNhbC1hbGlnbjpib3R0b219fTpyb290ey0tY2xyLWxvZ2luLXRpdGxlLWNvbG9yOnZhcigtLWNsci1oMS1jb2xvcik7LS1jbHItbG9naW4tdGl0bGUtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWgxLWZvbnQtd2VpZ2h0KTstLWNsci1sb2dpbi10aXRsZS1mb250LWZhbWls''@;'; + put 'put ''eTp2YXIoLS1jbHItaDEtZm9udC1mYW1pbHkpOy0tY2xyLWxvZ2luLXRyYWRlbWFyay1jb2xvcjp2YXIoLS1jbHItaDItY29sb3IpOy0tY2xyLWxvZ2luLXRyYWRlbWFyay1mb250LXdlaWdodDp2YXIoLS1jbHItaDItZm9udC13ZWlnaHQpOy0tY2xyLWxvZ2luLXRyYWRlbWFyay1mb250LWZh''@;'; + put 'put ''bWlseTp2YXIoLS1jbHItaDItZm9udC1mYW1pbHkpOy0tY2xyLWxvZ2luLXN1YnRpdGxlLWNvbG9yOnZhcigtLWNsci1oMy1jb2xvcik7LS1jbHItbG9naW4tc3VidGl0bGUtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWgzLWZvbnQtd2VpZ2h0KTstLWNsci1sb2dpbi1zdWJ0aXRsZS1mb250LWZh''@;'; + put 'put ''bWlseTp2YXIoLS1jbHItaDMtZm9udC1mYW1pbHkpOy0tY2xyLWxvZ2luLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1hcHAtYmFja2dyb3VuZCk7LS1jbHItbG9naW4tYmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0MlM0Z4bWwlMjB2''@;'; + put 'put ''ZXJzaW9uJTNEJTIyMS4wJTIyJTIwZW5jb2RpbmclM0QlMjJ1dGYtOCUyMiUzRiUzRSUwRCUwQSUzQyUyMURPQ1RZUEUlMjBzdmclMjBQVUJMSUMlMjAlMjItJTJGJTJGVzNDJTJGJTJGRFREJTIwU1ZHJTIwMS4xJTJGJTJGRU4lMjIlMjAlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRkdy''@;'; + put 'put ''YXBoaWNzJTJGU1ZHJTJGMS4xJTJGRFREJTJGc3ZnMTEuZHRkJTIyJTNFJTBEJTBBJTNDc3ZnJTBEJTBBJTIwJTIwJTIwJTIwJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMGlkJTNEJTIybm8tYXNwZWN0LXJhdGlvJTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIweG1s''@;'; + put 'put ''bnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB4JTNEJTIyMHB4JTIyJTBE''@;'; + put 'put ''JTBBJTIwJTIwJTIwJTIwJTIweSUzRCUyMjBweCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMGhlaWdodCUzRCUyMjIwNTUuNTVweCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHdpZHRoJTNEJTIyMTQ0MHB4JTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjA1NS41''@;'; + put 'put ''NSUyMDE0NDAlMjIlMEQlMEElMjAlMjAlMjAlMjAlMjBwcmVzZXJ2ZUFzcGVjdFJhdGlvJTNEJTIyeE1pbllNaW4lMjBzbGljZSUyMiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2Rlc2MlM0VMb2dpbiUyMEltYWdlJTNDJTJGZGVzYyUzRSUwRCUwQSUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjBzdHJva2UlM0QlMjJub25lJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMSUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODAuMDAwMDAw''@;'; + put 'put ''JTJDJTIwLTQuMDAwMDAwJTI5JTIyJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''M0NyZWN0JTIwZmlsbCUzRCUyMiUyM0ZBRkFGQSUyMiUyMHglM0QlMjIwJTIyJTIweSUzRCUyMjQlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjMwMDdDQkIlMjIl''@;'; + put 'put ''MjBvcGFjaXR5JTNEJTIyMC40JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG11bHRpcGx5JTNCJTIyJTIwcG9pbnRzJTNEJTIyMTEwOC40MyUyMDE0NDMuNjMlMjAxMTA5LjA4JTIwMTQ0My42MyUyMDQ0My40NCUyMDc3Ny43NCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQl''@;'; + put 'put ''MEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkzRDhDQSUyMiUyMG9wYWNpdHklM0QlMjIwLjYlMjIlMjBzdHlsZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwb3ZlcmxheSUzQiUyMiUyMHBvaW50cyUz''@;'; + put 'put ''RCUyMjAuNzklMjAzMzQuOTIlMjA0NDMuNDQlMjA3NzcuNzQlMjAwLjc5JTIwMzM0LjQ5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIw''@;'; + put 'put ''cG9pbnRzJTNEJTIyMC43OSUyMDIxMS44OCUyMDAuNzklMjAzMjkuNiUyMDU5LjYyJTIwMjcwLjc3JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RG''@;'; + put 'put ''JTIyJTIwcG9pbnRzJTNEJTIyMTYwLjY1JTIwMTY5Ljc0JTIwMC43OSUyMDkuNzMlMjAwLjc5JTIwMjExLjg4JTIwOTAuMjclMjAzMDEuNDYlMjA1OS42MiUyMDI3MC43NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0NERTNFRSUyMiUyMHBvaW50cyUzRCUyMjUwMy43NyUyMDE0NDMuNjMlMjA2OTcuNDclMjAxNDQzLjYzJTIwODAzLjc0JTIwMTMzNy4zNiUyMDcwNi45MyUyMDEyNDAuNDMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNDREUzRUUlMjIlMjBwb2ludHMlM0QlMjIxNTguMzMlMjA2OTEuMTUlMjAwLjc5JTIwODQ4LjcyJTIwMC43OSUyMDE0MjcuNDMlMjA0NDcuNTIlMjA5ODAuNyUyMiUzRSUz''@;'; + put 'put ''QyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0NFRERFMCUyMiUyMHBvaW50cyUzRCUyMjI1Ny43MSUyMDU5MS43NSUyMDAuNzklMjAzMzQuNDklMjAwLjc5JTIwNTMzLjQy''@;'; + put 'put ''JTIwMTU4LjMzJTIwNjkxLjE1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTlDOUQ1JTIyJTIwcG9pbnRzJTNEJTIyMC43OSUyMDUzMy40MiUyMDAuNzkl''@;'; + put 'put ''MjA4NDguNzIlMjAxNTguMzMlMjA2OTEuMTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBRkQ0RTclMjIlMjBwb2ludHMlM0QlMjI4MDYuNDYlMjAxMTQw''@;'; + put 'put ''Ljg5JTIwNTQ2Ljk0JTIwODgxLjI4JTIwNDQ3LjUyJTIwOTgwLjclMjA3MDYuOTMlMjAxMjQwLjQzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOEZDNERG''@;'; + put 'put ''JTIyJTIwcG9pbnRzJTNEJTIyNDQ3LjUyJTIwOTgwLjclMjAwLjc5JTIwMTQyNy40MyUyMDAuNzklMjAxNDQzLjYzJTIwNTAzLjc3JTIwMTQ0My42MyUyMDcwNi45MyUyMDEyNDAuNDMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3MEMwREMlMjIlMjBwb2ludHMlM0QlMjI2MDguMjMlMjA4MTkuOTklMjA1NDYuOTQlMjA4ODEuMjglMjA4MDYuNDYlMjAxMTQwLjg5JTIwODY3LjY0JTIwMTA3OS43JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyNDIwLjA1JTIwNDI5LjM5JTIwMzE5LjAxJTIwNTMwLjQ1JTIwNjA4LjIzJTIwODE5Ljk5JTIwNzA5LjMlMjA3MTguOTEl''@;'; + put 'put ''MjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2OUFGRDQlMjIlMjBwb2ludHMlM0QlMjI3MDkuMyUyMDcxOC45MSUyMDYwOC4yMyUyMDgxOS45OSUyMDg2Ny42''@;'; + put 'put ''NCUyMDEwNzkuNyUyMDk2OC43NCUyMDk3OC42JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOEVCNUJDJTIyJTIwcG9pbnRzJTNEJTIyNjE5LjU5JTIwMjI5''@;'; + put 'put ''LjgyJTIwMzkzLjQyJTIwMy4xMiUyMDMyNy4yNyUyMDMuMTIlMjAxNjAuNjUlMjAxNjkuNzQlMjA0MjAuMDUlMjA0MjkuMzklMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwl''@;'; + put 'put ''M0QlMjIlMjM4RUI1QkMlMjIlMjBwb2ludHMlM0QlMjIzMTkuMDElMjA1MzAuNDUlMjAzMTkuMDElMjA1MzAuNDUlMjA5MC4yNyUyMDMwMS40NiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5''@;'; + put 'put ''Z29uJTIwZmlsbCUzRCUyMiUyMzdDQjBDNyUyMiUyMHBvaW50cyUzRCUyMjE2MC42NSUyMDE2OS43NCUyMDU5LjYyJTIwMjcwLjc3JTIwOTAuMjclMjAzMDEuNDYlMjAzMTkuMDElMjA1MzAuNDUlMjA0MjAuMDUlMjA0MjkuMzklMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4NEM0RDIlMjIlMjBwb2ludHMlM0QlMjI1OS42MiUyMDI3MC43NyUyMDAuNzklMjAzMjkuNiUyMDAuNzklMjAzMzQuNDklMjAyNTcuNzElMjA1OTEuNzUlMjAzMTkuMDElMjA1''@;'; + put 'put ''MzAuNDUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3Q0IwQzclMjIlMjBwb2ludHMlM0QlMjI1MzcuNTUlMjAzLjEyJTIwMzkzLjQyJTIwMy4xMiUyMDYx''@;'; + put 'put ''OS41OSUyMDIyOS44MiUyMDY5MS43NCUyMDE1Ny42NiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzg3RDFEQiUyMiUyMHBvaW50cyUzRCUyMjg0Ni4yNSUy''@;'; + put 'put ''MDMuMTIlMjA1MzcuNTUlMjAzLjEyJTIwNjkxLjc0JTIwMTU3LjY2JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQ0RFM0VFJTIyJTIwcG9pbnRzJTNEJTIy''@;'; + put 'put ''OTA5Ljg3JTIwMTQ0My42MyUyMDg1MC4xOSUyMDEzODMuODclMjA3OTAuNDMlMjAxNDQzLjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIy''@;'; + put 'put ''JTIwcG9pbnRzJTNEJTIyMzE5LjAxJTIwNTMwLjQ1JTIwMjU3LjcxJTIwNTkxLjc1JTIwNDQzLjQ0JTIwNzc3Ljc0JTIwNTQ2Ljk0JTIwODgxLjI4JTIwNjA4LjIzJTIwODE5Ljk5JTIwODY3LjY0JTIwMTA3OS43JTIwODY3LjY0JTIwMTA3OS43JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUw''@;'; + put 'put ''QSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyODY3LjY0JTIwMTA3OS43JTIwODA2LjQ2JTIwMTE0MC44OSUyMDkwMy4zMSUyMDEyMzcuNzglMjA5NjQuNDYlMjAx''@;'; + put 'put ''MTc2LjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTA2NS41NyUyMDEwNzUuNTIlMjA5NjguNzQlMjA5Nzgu''@;'; + put 'put ''NiUyMDg2Ny42NCUyMDEwNzkuNyUyMDk2NC40NiUyMDExNzYuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjI5''@;'; + put 'put ''NjQuNDYlMjAxMTc2LjYzJTIwODY3LjY0JTIwMTA3OS43JTIwODY3LjY0JTIwMTA3OS43JTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUz''@;'; + put 'put ''RCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEwMTAuOTIlMjAxMjIzLjEzJTIwMTIzMS4xNiUyMDE0NDMuNjMlMjAxMDEwLjkyJTIwMTIyMy4xMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''M0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEyNDAuMDglMjA3MDcuMjIlMjAxMTY3LjklMjA3NzkuNCUyMDEyNjQuNjglMjA4NzYuNCUyMDEzMzYuODclMjA4MDQuMjIlMjAxMjQwLjA4JTIwNzA3LjIxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUw''@;'; + put 'put ''QSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyOTgwLjgzJTIwNDQ3LjM5JTIwNjkxLjc0JTIwMTU3LjY2JTIwNjE5LjU5JTIwMjI5LjgyJTIwOTA4LjY2JTIwNTE5''@;'; + put 'put ''LjU2JTIwOTgwLjgzJTIwNDQ3LjM5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyNzA5LjMlMjA3MTguOTElMjA5''@;'; + put 'put ''NjguNzQlMjA5NzguNiUyMDExNjcuOTElMjA3NzkuNCUyMDkwOC42NiUyMDUxOS41NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY5QUZENCUyMiUyMHBv''@;'; + put 'put ''aW50cyUzRCUyMjk4MC44MyUyMDQ0Ny4zOSUyMDkwOC42NiUyMDUxOS41NSUyMDExNjcuOTElMjA3NzkuNCUyMDEyNDAuMDglMjA3MDcuMjElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdv''@;'; + put 'put ''biUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIxMDM0LjU5JTIwMy4xMiUyMDg0Ni4yNSUyMDMuMTIlMjA2OTEuNzQlMjAxNTcuNjYlMjA5ODAuODMlMjA0NDcuMzklMjAxMjI5Ljc1JTIwMTk4LjQ3JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMTI0MC4wOCUyMDcwNy4yMSUyMDEzMzYuODclMjA4MDQuMjIlMjAxNTg2LjAxJTIwNTU1LjA4JTIwMTQ4OS4xNCUyMDQ1OC4xMiUyMiUz''@;'; + put 'put ''RSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzcwQzBEQyUyMiUyMHBvaW50cyUzRCUyMjEyMjkuNzUlMjAxOTguNDclMjA5ODAuODMlMjA0NDcuMzklMjAxMjQwLjA4''@;'; + put 'put ''JTIwNzA3LjIxJTIwMTQ4OS4xNCUyMDQ1OC4xMiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUyMHBvaW50cyUzRCUyMjEyOTIuMjIlMjAx''@;'; + put 'put ''MzAyLjM4JTIwMTQzMy4zMiUyMDE0NDMuNjMlMjAxODMwLjYxJTIwMTQ0My42MyUyMDE0OTEuMTglMjAxMTAzLjQyJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIy''@;'; + put 'put ''JTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMTAxMC45MiUyMDEyMjMuMTMlMjA5NDkuNzglMjAxMjg0LjI3JTIwMTEwOS4wOCUyMDE0NDMuNjMlMjAxMTUwLjk4JTIwMTQ0My42MyUyMDExOTEuMDklMjAxNDAzLjUxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzVCOEM1JTIyJTIwcG9pbnRzJTNEJTIyMTE1MC45OCUyMDE0NDMuNjMlMjAxMjMxLjE2JTIwMTQ0My42MyUyMDExOTEuMDklMjAxNDAzLjUxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUw''@;'; + put 'put ''RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTI5Mi4yMiUyMDEzMDIuMzglMjAxMTEyLjAzJTIwMTEyMi4wMiUyMDEwMTAuOTIlMjAxMjIzLjEzJTIwMTE5''@;'; + put 'put ''MS4wOSUyMDE0MDMuNTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2RUE0QkMlMjIlMjBwb2ludHMlM0QlMjIxMTkxLjA5JTIwMTQwMy41MSUyMDEyMzEu''@;'; + put 'put ''MTYlMjAxNDQzLjYzJTIwMTQzMy4zMiUyMDE0NDMuNjMlMjAxMjkyLjIyJTIwMTMwMi4zOCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzAwN0NCQiUyMiUy''@;'; + put 'put ''MG9wYWNpdHklM0QlMjIwLjQlMjIlMjBzdHlsZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwbXVsdGlwbHklM0IlMjIlMjBwb2ludHMlM0QlMjIxMzgzLjMlMjA4NTAuNzUlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTQ5MS4xOCUyMDExMDMuNDIlMjAxNTYzLjM3JTIwMTAzMS4yMyUyMiUzRSUz''@;'; + put 'put ''QyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUyMHBvaW50cyUzRCUyMjE0OTEuMTglMjAxMTAzLjQyJTIwMTgzMC42MSUyMDE0NDMuNjMlMjAxOTc0Ljg2''@;'; + put 'put ''JTIwMTQ0My42MyUyMDE1NjMuMzclMjAxMDMxLjIzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNkVBNEJDJTIyJTIwcG9pbnRzJTNEJTIyMTQ5MS4xOCUy''@;'; + put 'put ''MDExMDMuNDIlMjAxODMwLjYxJTIwMTQ0My42MyUyMDE5NzQuODYlMjAxNDQzLjYzJTIwMTU2My4zNyUyMDEwMzEuMjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0Ql''@;'; + put 'put ''MjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIxODEyLjY1JTIwNzgxLjk1JTIwMTYzMi40NiUyMDYwMS41OSUyMDEzODMuMyUyMDg1MC43NSUyMDE1NjMuMzclMjAxMDMxLjIzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQjdDRUQyJTIyJTIwcG9pbnRzJTNEJTIyMTU2My4zNyUyMDEwMzEuMjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDIwNTQuNDUlMjAxNDQzLjYzJTIwMjA1NC40NSUyMDEwMjMuOTklMjAxODEyLjY1JTIwNzgxLjk1JTIyJTNF''@;'; + put 'put ''JTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzhDQUQ0JTIyJTIwcG9pbnRzJTNEJTIyMTU2My4zNyUyMDEwMzEuMjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDIwNTQu''@;'; + put 'put ''NDUlMjAxNDQzLjYzJTIwMjA1NC40NSUyMDEwMjMuOTklMjAxODEyLjY1JTIwNzgxLjk1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTFDNUUwJTIyJTIw''@;'; + put 'put ''cG9pbnRzJTNEJTIyODAzLjc0JTIwMTMzNy4zNiUyMDg1MC4xOSUyMDEzODMuODclMjA5NDkuNzglMjAxMjg0LjI3JTIwOTAzLjMxJTIwMTIzNy43OCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nw''@;'; + put 'put ''b2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUyMHBvaW50cyUzRCUyMjEwNjUuNTclMjAxMDc1LjUyJTIwMTExMi4wMyUyMDExMjIuMDIlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTI2NC42OSUyMDg3Ni40JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzdCOEQ5JTIyJTIwcG9pbnRzJTNEJTIyNjk3LjQ3JTIwMTQ0My42MyUyMDc5MC40MyUyMDE0NDMuNjMlMjA4NTAuMTklMjAxMzgzLjg3JTIwODAzLjc0JTIwMTMzNy4zNiUyMiUzRSUzQyUy''@;'; + put 'put ''RnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjk2NC40NiUyMDExNzYuNjMlMjA5MDMuMzElMjAxMjM3Ljc4JTIwOTQ5Ljc4JTIwMTI4''@;'; + put 'put ''NC4yNyUyMDEwMTAuOTIlMjAxMjIzLjEzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNURCNUQ2JTIyJTIwcG9pbnRzJTNEJTIyOTY0LjQ2JTIwMTE3Ni42''@;'; + put 'put ''MyUyMDkwMy4zMSUyMDEyMzcuNzglMjA5NDkuNzglMjAxMjg0LjI3JTIwMTAxMC45MiUyMDEyMjMuMTMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM5NkM3REYl''@;'; + put 'put ''MjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxMDM4LjI0NzI5NyUyQyUyMDExNDkuMjc1NDI5JTI5JTIwcm90YXRlJTI4LTQ0Ljk3MDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xMDM4LjI0NzI5NyUyQyUyMC0xMTQ5LjI3NTQyOSUyOSUyMCUyMiUyMHglM0QlMjI5NjYuNzUyMjk3JTIy''@;'; + put 'put ''JTIweSUzRCUyMjExMTYuNDEwNDMlMjIlMjB3aWR0aCUzRCUyMjE0Mi45OSUyMiUyMGhlaWdodCUzRCUyMjY1LjczJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzNTdB''@;'; + put 'put ''OEQwJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTAzOC4yNDcyOTclMkMlMjAxMTQ5LjI3NTQyOSUyOSUyMHJvdGF0ZSUyOC00NC45NzAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTAzOC4yNDcyOTclMkMlMjAtMTE0OS4yNzU0MjklMjklMjAlMjIlMjB4JTNEJTIyOTY2Ljc1MjI5''@;'; + put 'put ''NyUyMiUyMHklM0QlMjIxMTE2LjQxMDQzJTIyJTIwd2lkdGglM0QlMjIxNDIuOTklMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUy''@;'; + put 'put ''MiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEwMTAuOTIlMjAxMjIzLjEzJTIwMTAxMC45MiUyMDEyMjMuMTMlMjA5NjQuNDYlMjAxMTc2LjYzJTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzAwMDAwMCUyMiUyMG9wYWNpdHklM0QlMjIwLjQyJTIyJTIwcG9pbnRzJTNEJTIyMTAxMC45MiUyMDEyMjMuMTMlMjAxMDEwLjkyJTIwMTIyMy4xMyUyMDk2NC40NiUyMDExNzYuNjMlMjA5NjQuNDYlMjAxMTc2LjYzJTIy''@;'; + put 'put ''JTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzMDA3Q0JCJTIyJTIwb3BhY2l0eSUzRCUyMjAuNCUyMiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBt''@;'; + put 'put ''dWx0aXBseSUzQiUyMiUyMHBvaW50cyUzRCUyMjEzMzYuODclMjA4MDQuMjIlMjAxMjY0LjY5JTIwODc2LjQlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTM4My4zJTIwODUwLjc1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNTdBOEQwJTIyJTIwcG9pbnRzJTNEJTIyMTMzNi44NyUyMDgwNC4yMiUyMDEyNjQuNjklMjA4NzYuNCUyMDEzMTEuMTIlMjA5MjIuOTQlMjAxMzgzLjMlMjA4NTAuNzUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5M0Q4Q0ElMjIlMjBvcGFjaXR5JTNEJTIyMC42JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG92ZXJsYXklM0IlMjIlMjBwb2ludHMlM0QlMjIxMzM2''@;'; + put 'put ''Ljg3JTIwODA0LjIyJTIwMTM4My4zJTIwODUwLjc1JTIwMTYzMi40NiUyMDYwMS41OSUyMDE1ODYuMDElMjA1NTUuMDglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0Ql''@;'; + put 'put ''MjIlMjM1REI1RDYlMjIlMjBwb2ludHMlM0QlMjIxMzM2Ljg3JTIwODA0LjIyJTIwMTM4My4zJTIwODUwLjc1JTIwMTYzMi40NiUyMDYwMS41OSUyMDE1ODYuMDElMjA1NTUuMDglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBRkQzRTYlMjIlMjBwb2ludHMlM0QlMjIyMDU2JTIwMC4xMiUyMDE2NDUuNDklMjAwLjEyJTIwMTY0OC40OSUyMDMuMTIlMjAxOTQ0LjA3JTIwMy4xMiUyMDE3OTYuMjIlMjAxNTAuOTklMjAxODkzLjEyJTIwMjQ3Ljk3JTIw''@;'; + put 'put ''MjA1NC40NSUyMDg2LjY0JTIwMjA1NC40NSUyMDE3OS42JTIwMTkzOS41OCUyMDI5NC40NyUyMDIwNTYlMjA0MTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIl''@;'; + put 'put ''MjM3QUI5RDklMjIlMjBwb2ludHMlM0QlMjIxNjQ4LjQ5JTIwMy4xMiUyMDE3OTYuMjIlMjAxNTAuOTklMjAxOTQ0LjA3JTIwMy4xMiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIw''@;'; + put 'put ''ZmlsbCUzRCUyMiUyMzY2QUVENCUyMiUyMHBvaW50cyUzRCUyMjIwNTQuNDUlMjA4Ni42NCUyMDE4OTMuMTIlMjAyNDcuOTclMjAxOTM5LjU4JTIwMjk0LjQ3JTIwMjA1NC40NSUyMDE3OS42JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQjdDRUQyJTIyJTIwcG9pbnRzJTNEJTIyMTg4NC44MiUyMDcwOS43OCUyMDIwNTQuNDUlMjA4NzkuNTclMjAyMDU0LjQ1JTIwNTQwLjE1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyMTQ4OS4xNCUyMDQ1OC4xMiUyMDE0ODkuMTQlMjA0NTguMTIlMjAxMzcxLjEzJTIwMzM5Ljk5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUw''@;'; + put 'put ''QSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyMTc5Ni4yMiUyMDE1MC45OSUyMDE2NDguNDklMjAzLjEyJTIwMTQyNS4xJTIwMy4xMiUyMDEzMDEuOTElMjAxMjYu''@;'; + put 'put ''MzElMjAxNTYxLjMlMjAzODUuOTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM5MUM1RTAlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNzk4Ljk1''@;'; + put 'put ''NDA2NiUyQyUyMDM4OC43OTg3ODElMjklMjByb3RhdGUlMjgtNDQuOTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE3OTguOTU0MDY2JTJDJTIwLTM4OC43OTg3ODElMjklMjAlMjIlMjB4JTNEJTIyMTYzMi44MjQwNyUyMiUyMHklM0QlMjIzNTUuOTMzNzgxJTIyJTIwd2lkdGglM0QlMjIzMzIu''@;'; + put 'put ''MjYlMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUyMHBvaW50cyUzRCUyMjE1ODYuMDElMjA1NTUuMDgl''@;'; + put 'put ''MjAxNjMyLjQ2JTIwNjAxLjU5JTIwMTYzMi40NiUyMDYwMS41OSUyMDE1ODYuMDElMjA1NTUuMDglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjNCM0VBRUUlMjIl''@;'; + put 'put ''MjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNTczLjcxMTU3NyUyQyUyMDQ3MC42MjAyNjMlMjklMjByb3RhdGUlMjgtNDUuMDAwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE1NzMuNzExNTc3JTJDJTIwLTQ3MC42MjAyNjMlMjklMjAlMjIlMjB4JTNEJTIyMTUyMi42ODE1OCUyMiUyMHkl''@;'; + put 'put ''M0QlMjI0MDIuMDg1MjYzJTIyJTIwd2lkdGglM0QlMjIxMDIuMDYlMjIlMjBoZWlnaHQlM0QlMjIxMzcuMDclMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjNCM0VBRUUl''@;'; + put 'put ''MjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNzU4LjY3Njc1OCUyQyUyMDY1NS43NjcxMjAlMjklMjByb3RhdGUlMjgtNDQuOTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE3NTguNjc2NzU4JTJDJTIwLTY1NS43NjcxMjAlMjklMjAlMjIlMjB4JTNEJTIyMTcwNy42NDY3NiUyMiUy''@;'; + put 'put ''MHklM0QlMjI1MjguMjkyMTIlMjIlMjB3aWR0aCUzRCUyMjEwMi4wNiUyMiUyMGhlaWdodCUzRCUyMjI1NC45NSUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0Iz''@;'; + put 'put ''RUFFRSUyMiUyMHBvaW50cyUzRCUyMjEzMDEuOTElMjAxMjYuMzElMjAxMTc4Ljg0JTIwMy4xMiUyMDEwMzQuNTklMjAzLjEyJTIwMTIyOS43NSUyMDE5OC40NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzgzQzBDOCUyMiUyMHBvaW50cyUzRCUyMjE4MTIuNjUlMjA3ODEuOTUlMjAyMDU0LjQ1JTIwMTAyMy45OSUyMDIwNTQuNDUlMjA4NzkuNTclMjAxODg0LjgyJTIwNzA5Ljc4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzN0RDNkRDJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTM5NS41MTY5MDElMkMlMjAyOTIuMjA2NTE5JTI5JTIwcm90YXRlJTI4LTQ1LjAwMDAwMCUyOSUyMHRyYW5zbGF0''@;'; + put 'put ''ZSUyOC0xMzk1LjUxNjkwMSUyQyUyMC0yOTIuMjA2NTE5JTI5JTIwJTIyJTIweCUzRCUyMjEzNDQuNDkxOSUyMiUyMHklM0QlMjIxMDguNzAxNTE5JTIyJTIwd2lkdGglM0QlMjIxMDIuMDUlMjIlMjBoZWlnaHQlM0QlMjIzNjcuMDElMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM2OEI4RDUlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNjQ1LjMxMzYxOSUyQyUyMDU0Mi4yNDk3NjAlMjklMjByb3RhdGUlMjgtNDUuMDAwMDAwJTI5JTIwdHJhbnNs''@;'; + put 'put ''YXRlJTI4LTE2NDUuMzEzNjE5JTJDJTIwLTU0Mi4yNDk3NjAlMjklMjAlMjIlMjB4JTNEJTIyMTU5NC4yODM2MiUyMiUyMHklM0QlMjI1MDkuMzg0NzYlMjIlMjB3aWR0aCUzRCUyMjEwMi4wNiUyMiUyMGhlaWdodCUzRCUyMjY1LjczJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MC4wMDAwMDAlMkMlMjAzLjAwMDAwMCUyOSUyMiUyMHN0cm9rZSUzRCUyMiUyMzAwMDAw''@;'; + put 'put ''MCUyMiUyMG9wYWNpdHklM0QlMjIwLjE1JTIyJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGQlM0QlMjJNMC45NSUyQzAuMTIlMjBMMC45NSUyQzg0MC4xMiUyMiUyMGlkJTNEJTIyU2hhcGUlMjIlM0UlM0MlMkZwYXRo''@;'; + put 'put ''JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEQlMEElMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBEJTBBJTNDJTJGc3ZnJTNFKTstLWNsci1sb2dpbi1lcnJvci1iYWNr''@;'; + put 'put ''Z3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItODAwKTstLWNsci1sb2dpbi1lcnJvci1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci1sb2dpbi1wYW5lbC1saW5lLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0t''@;'; + put 'put ''Y2xyLWxvZ2luLXBhbmVsLWxpbmUtb3BhY2l0eTouMX0ubG9naW4td3JhcHBlcntkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0MlM0Z4bWwlMjB2ZXJzaW9uJTNEJTIyMS4wJTIyJTIwZW5jb2RpbmclM0Ql''@;'; + put 'put ''MjJ1dGYtOCUyMiUzRiUzRSUwRCUwQSUzQyUyMURPQ1RZUEUlMjBzdmclMjBQVUJMSUMlMjAlMjItJTJGJTJGVzNDJTJGJTJGRFREJTIwU1ZHJTIwMS4xJTJGJTJGRU4lMjIlMjAlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRkdyYXBoaWNzJTJGU1ZHJTJGMS4xJTJGRFREJTJGc3ZnMTEu''@;'; + put 'put ''ZHRkJTIyJTNFJTBEJTBBJTNDc3ZnJTBEJTBBJTIwJTIwJTIwJTIwJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMGlkJTNEJTIybm8tYXNwZWN0LXJhdGlvJTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUy''@;'; + put 'put ''RjIwMDAlMkZzdmclMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB4JTNEJTIyMHB4JTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIweSUzRCUyMjBweCUyMiUw''@;'; + put 'put ''RCUwQSUyMCUyMCUyMCUyMCUyMGhlaWdodCUzRCUyMjIwNTUuNTVweCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHdpZHRoJTNEJTIyMTQ0MHB4JTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjA1NS41NSUyMDE0NDAlMjIlMEQlMEElMjAlMjAlMjAlMjAlMjBw''@;'; + put 'put ''cmVzZXJ2ZUFzcGVjdFJhdGlvJTNEJTIyeE1pbllNaW4lMjBzbGljZSUyMiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2Rlc2MlM0VMb2dpbiUyMEltYWdlJTNDJTJGZGVzYyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2cl''@;'; + put 'put ''MjBzdHJva2UlM0QlMjJub25lJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMSUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODAuMDAwMDAwJTJDJTIwLTQuMDAwMDAwJTI5JTIyJTNFJTBEJTBBJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyM0ZBRkFGQSUyMiUy''@;'; + put 'put ''MHglM0QlMjIwJTIyJTIweSUzRCUyMjQlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjMwMDdDQkIlMjIlMjBvcGFjaXR5JTNEJTIyMC40JTIyJTIwc3R5bGUlM0Ql''@;'; + put 'put ''MjJtaXgtYmxlbmQtbW9kZSUzQSUyMG11bHRpcGx5JTNCJTIyJTIwcG9pbnRzJTNEJTIyMTEwOC40MyUyMDE0NDMuNjMlMjAxMTA5LjA4JTIwMTQ0My42MyUyMDQ0My40NCUyMDc3Ny43NCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkzRDhDQSUyMiUyMG9wYWNpdHklM0QlMjIwLjYlMjIlMjBzdHlsZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwb3ZlcmxheSUzQiUyMiUyMHBvaW50cyUzRCUyMjAuNzklMjAzMzQuOTIlMjA0NDMuNDQlMjA3Nzcu''@;'; + put 'put ''NzQlMjAwLjc5JTIwMzM0LjQ5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMC43OSUyMDIxMS44OCUyMDAuNzkl''@;'; + put 'put ''MjAzMjkuNiUyMDU5LjYyJTIwMjcwLjc3JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTYwLjY1JTIwMTY5Ljc0''@;'; + put 'put ''JTIwMC43OSUyMDkuNzMlMjAwLjc5JTIwMjExLjg4JTIwOTAuMjclMjAzMDEuNDYlMjA1OS42MiUyMDI3MC43NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUy''@;'; + put 'put ''M0NERTNFRSUyMiUyMHBvaW50cyUzRCUyMjUwMy43NyUyMDE0NDMuNjMlMjA2OTcuNDclMjAxNDQzLjYzJTIwODAzLjc0JTIwMTMzNy4zNiUyMDcwNi45MyUyMDEyNDAuNDMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNDREUzRUUlMjIlMjBwb2ludHMlM0QlMjIxNTguMzMlMjA2OTEuMTUlMjAwLjc5JTIwODQ4LjcyJTIwMC43OSUyMDE0MjcuNDMlMjA0NDcuNTIlMjA5ODAuNyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0NFRERFMCUyMiUyMHBvaW50cyUzRCUyMjI1Ny43MSUyMDU5MS43NSUyMDAuNzklMjAzMzQuNDklMjAwLjc5JTIwNTMzLjQyJTIwMTU4LjMzJTIwNjkxLjE1JTIyJTNFJTNDJTJGcG9s''@;'; + put 'put ''eWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTlDOUQ1JTIyJTIwcG9pbnRzJTNEJTIyMC43OSUyMDUzMy40MiUyMDAuNzklMjA4NDguNzIlMjAxNTguMzMlMjA2OTEuMTUlMjIlM0Ul''@;'; + put 'put ''M0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBRkQ0RTclMjIlMjBwb2ludHMlM0QlMjI4MDYuNDYlMjAxMTQwLjg5JTIwNTQ2Ljk0JTIwODgxLjI4JTIwNDQ3LjUyJTIw''@;'; + put 'put ''OTgwLjclMjA3MDYuOTMlMjAxMjQwLjQzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOEZDNERGJTIyJTIwcG9pbnRzJTNEJTIyNDQ3LjUyJTIwOTgwLjcl''@;'; + put 'put ''MjAwLjc5JTIwMTQyNy40MyUyMDAuNzklMjAxNDQzLjYzJTIwNTAzLjc3JTIwMTQ0My42MyUyMDcwNi45MyUyMDEyNDAuNDMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwl''@;'; + put 'put ''M0QlMjIlMjM3MEMwREMlMjIlMjBwb2ludHMlM0QlMjI2MDguMjMlMjA4MTkuOTklMjA1NDYuOTQlMjA4ODEuMjglMjA4MDYuNDYlMjAxMTQwLjg5JTIwODY3LjY0JTIwMTA3OS43JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyNDIwLjA1JTIwNDI5LjM5JTIwMzE5LjAxJTIwNTMwLjQ1JTIwNjA4LjIzJTIwODE5Ljk5JTIwNzA5LjMlMjA3MTguOTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2OUFGRDQlMjIlMjBwb2ludHMlM0QlMjI3MDkuMyUyMDcxOC45MSUyMDYwOC4yMyUyMDgxOS45OSUyMDg2Ny42NCUyMDEwNzkuNyUyMDk2OC43NCUyMDk3OC42JTIyJTNF''@;'; + put 'put ''JTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOEVCNUJDJTIyJTIwcG9pbnRzJTNEJTIyNjE5LjU5JTIwMjI5LjgyJTIwMzkzLjQyJTIwMy4xMiUyMDMyNy4yNyUyMDMu''@;'; + put 'put ''MTIlMjAxNjAuNjUlMjAxNjkuNzQlMjA0MjAuMDUlMjA0MjkuMzklMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4RUI1QkMlMjIlMjBwb2ludHMlM0QlMjIz''@;'; + put 'put ''MTkuMDElMjA1MzAuNDUlMjAzMTkuMDElMjA1MzAuNDUlMjA5MC4yNyUyMDMwMS40NiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzdDQjBDNyUyMiUyMHBv''@;'; + put 'put ''aW50cyUzRCUyMjE2MC42NSUyMDE2OS43NCUyMDU5LjYyJTIwMjcwLjc3JTIwOTAuMjclMjAzMDEuNDYlMjAzMTkuMDElMjA1MzAuNDUlMjA0MjAuMDUlMjA0MjkuMzklMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4NEM0RDIlMjIlMjBwb2ludHMlM0QlMjI1OS42MiUyMDI3MC43NyUyMDAuNzklMjAzMjkuNiUyMDAuNzklMjAzMzQuNDklMjAyNTcuNzElMjA1OTEuNzUlMjAzMTkuMDElMjA1MzAuNDUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBB''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3Q0IwQzclMjIlMjBwb2ludHMlM0QlMjI1MzcuNTUlMjAzLjEyJTIwMzkzLjQyJTIwMy4xMiUyMDYxOS41OSUyMDIyOS44MiUyMDY5MS43NCUyMDE1Ny42NiUy''@;'; + put 'put ''MiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzg3RDFEQiUyMiUyMHBvaW50cyUzRCUyMjg0Ni4yNSUyMDMuMTIlMjA1MzcuNTUlMjAzLjEyJTIwNjkxLjc0JTIw''@;'; + put 'put ''MTU3LjY2JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQ0RFM0VFJTIyJTIwcG9pbnRzJTNEJTIyOTA5Ljg3JTIwMTQ0My42MyUyMDg1MC4xOSUyMDEzODMu''@;'; + put 'put ''ODclMjA3OTAuNDMlMjAxNDQzLjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMzE5LjAxJTIwNTMwLjQ1JTIw''@;'; + put 'put ''MjU3LjcxJTIwNTkxLjc1JTIwNDQzLjQ0JTIwNzc3Ljc0JTIwNTQ2Ljk0JTIwODgxLjI4JTIwNjA4LjIzJTIwODE5Ljk5JTIwODY3LjY0JTIwMTA3OS43JTIwODY3LjY0JTIwMTA3OS43JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyODY3LjY0JTIwMTA3OS43JTIwODA2LjQ2JTIwMTE0MC44OSUyMDkwMy4zMSUyMDEyMzcuNzglMjA5NjQuNDYlMjAxMTc2LjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUw''@;'; + put 'put ''QSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTA2NS41NyUyMDEwNzUuNTIlMjA5NjguNzQlMjA5NzguNiUyMDg2Ny42NCUyMDEwNzkuNyUyMDk2NC40NiUyMDEx''@;'; + put 'put ''NzYuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjI5NjQuNDYlMjAxMTc2LjYzJTIwODY3LjY0JTIwMTA3OS43''@;'; + put 'put ''JTIwODY3LjY0JTIwMTA3OS43JTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEw''@;'; + put 'put ''MTAuOTIlMjAxMjIzLjEzJTIwMTIzMS4xNiUyMDE0NDMuNjMlMjAxMDEwLjkyJTIwMTIyMy4xMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUy''@;'; + put 'put ''MiUyMHBvaW50cyUzRCUyMjEyNDAuMDglMjA3MDcuMjIlMjAxMTY3LjklMjA3NzkuNCUyMDEyNjQuNjglMjA4NzYuNCUyMDEzMzYuODclMjA4MDQuMjIlMjAxMjQwLjA4JTIwNzA3LjIxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyOTgwLjgzJTIwNDQ3LjM5JTIwNjkxLjc0JTIwMTU3LjY2JTIwNjE5LjU5JTIwMjI5LjgyJTIwOTA4LjY2JTIwNTE5LjU2JTIwOTgwLjgzJTIwNDQ3LjM5JTIyJTNFJTNDJTJG''@;'; + put 'put ''cG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyNzA5LjMlMjA3MTguOTElMjA5NjguNzQlMjA5NzguNiUyMDExNjcuOTElMjA3NzkuNCUy''@;'; + put 'put ''MDkwOC42NiUyMDUxOS41NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY5QUZENCUyMiUyMHBvaW50cyUzRCUyMjk4MC44MyUyMDQ0Ny4zOSUyMDkwOC42''@;'; + put 'put ''NiUyMDUxOS41NSUyMDExNjcuOTElMjA3NzkuNCUyMDEyNDAuMDglMjA3MDcuMjElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2lu''@;'; + put 'put ''dHMlM0QlMjIxMDM0LjU5JTIwMy4xMiUyMDg0Ni4yNSUyMDMuMTIlMjA2OTEuNzQlMjAxNTcuNjYlMjA5ODAuODMlMjA0NDcuMzklMjAxMjI5Ljc1JTIwMTk4LjQ3JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMTI0MC4wOCUyMDcwNy4yMSUyMDEzMzYuODclMjA4MDQuMjIlMjAxNTg2LjAxJTIwNTU1LjA4JTIwMTQ4OS4xNCUyMDQ1OC4xMiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzcwQzBEQyUyMiUyMHBvaW50cyUzRCUyMjEyMjkuNzUlMjAxOTguNDclMjA5ODAuODMlMjA0NDcuMzklMjAxMjQwLjA4JTIwNzA3LjIxJTIwMTQ4OS4xNCUyMDQ1OC4xMiUyMiUz''@;'; + put 'put ''RSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUyMHBvaW50cyUzRCUyMjEyOTIuMjIlMjAxMzAyLjM4JTIwMTQzMy4zMiUyMDE0NDMuNjMlMjAxODMw''@;'; + put 'put ''LjYxJTIwMTQ0My42MyUyMDE0OTEuMTglMjAxMTAzLjQyJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMTAxMC45''@;'; + put 'put ''MiUyMDEyMjMuMTMlMjA5NDkuNzglMjAxMjg0LjI3JTIwMTEwOS4wOCUyMDE0NDMuNjMlMjAxMTUwLjk4JTIwMTQ0My42MyUyMDExOTEuMDklMjAxNDAzLjUxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzVCOEM1JTIyJTIwcG9pbnRzJTNEJTIyMTE1MC45OCUyMDE0NDMuNjMlMjAxMjMxLjE2JTIwMTQ0My42MyUyMDExOTEuMDklMjAxNDAzLjUxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyMTI5Mi4yMiUyMDEzMDIuMzglMjAxMTEyLjAzJTIwMTEyMi4wMiUyMDEwMTAuOTIlMjAxMjIzLjEzJTIwMTE5MS4wOSUyMDE0MDMuNTElMjIlM0UlM0MlMkZwb2x5Z29u''@;'; + put 'put ''JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2RUE0QkMlMjIlMjBwb2ludHMlM0QlMjIxMTkxLjA5JTIwMTQwMy41MSUyMDEyMzEuMTYlMjAxNDQzLjYzJTIwMTQzMy4zMiUyMDE0NDMuNjMl''@;'; + put 'put ''MjAxMjkyLjIyJTIwMTMwMi4zOCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzAwN0NCQiUyMiUyMG9wYWNpdHklM0QlMjIwLjQlMjIlMjBzdHlsZSUzRCUy''@;'; + put 'put ''Mm1peC1ibGVuZC1tb2RlJTNBJTIwbXVsdGlwbHklM0IlMjIlMjBwb2ludHMlM0QlMjIxMzgzLjMlMjA4NTAuNzUlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTQ5MS4xOCUyMDExMDMuNDIlMjAxNTYzLjM3JTIwMTAzMS4yMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUyMHBvaW50cyUzRCUyMjE0OTEuMTglMjAxMTAzLjQyJTIwMTgzMC42MSUyMDE0NDMuNjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDE1NjMuMzclMjAxMDMxLjIzJTIy''@;'; + put 'put ''JTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNkVBNEJDJTIyJTIwcG9pbnRzJTNEJTIyMTQ5MS4xOCUyMDExMDMuNDIlMjAxODMwLjYxJTIwMTQ0My42MyUyMDE5''@;'; + put 'put ''NzQuODYlMjAxNDQzLjYzJTIwMTU2My4zNyUyMDEwMzEuMjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjIxODEy''@;'; + put 'put ''LjY1JTIwNzgxLjk1JTIwMTYzMi40NiUyMDYwMS41OSUyMDEzODMuMyUyMDg1MC43NSUyMDE1NjMuMzclMjAxMDMxLjIzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNE''@;'; + put 'put ''JTIyJTIzQjdDRUQyJTIyJTIwcG9pbnRzJTNEJTIyMTU2My4zNyUyMDEwMzEuMjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDIwNTQuNDUlMjAxNDQzLjYzJTIwMjA1NC40NSUyMDEwMjMuOTklMjAxODEyLjY1JTIwNzgxLjk1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzhDQUQ0JTIyJTIwcG9pbnRzJTNEJTIyMTU2My4zNyUyMDEwMzEuMjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDIwNTQuNDUlMjAxNDQzLjYzJTIwMjA1NC40NSUyMDEwMjMuOTkl''@;'; + put 'put ''MjAxODEyLjY1JTIwNzgxLjk1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTFDNUUwJTIyJTIwcG9pbnRzJTNEJTIyODAzLjc0JTIwMTMzNy4zNiUyMDg1''@;'; + put 'put ''MC4xOSUyMDEzODMuODclMjA5NDkuNzglMjAxMjg0LjI3JTIwOTAzLjMxJTIwMTIzNy43OCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUy''@;'; + put 'put ''MHBvaW50cyUzRCUyMjEwNjUuNTclMjAxMDc1LjUyJTIwMTExMi4wMyUyMDExMjIuMDIlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTI2NC42OSUyMDg3Ni40JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUz''@;'; + put 'put ''Q3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzdCOEQ5JTIyJTIwcG9pbnRzJTNEJTIyNjk3LjQ3JTIwMTQ0My42MyUyMDc5MC40MyUyMDE0NDMuNjMlMjA4NTAuMTklMjAxMzgzLjg3JTIwODAzLjc0JTIwMTMzNy4zNiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjk2NC40NiUyMDExNzYuNjMlMjA5MDMuMzElMjAxMjM3Ljc4JTIwOTQ5Ljc4JTIwMTI4NC4yNyUyMDEwMTAuOTIlMjAxMjIzLjEzJTIyJTNFJTND''@;'; + put 'put ''JTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNURCNUQ2JTIyJTIwcG9pbnRzJTNEJTIyOTY0LjQ2JTIwMTE3Ni42MyUyMDkwMy4zMSUyMDEyMzcuNzglMjA5NDkuNzglMjAx''@;'; + put 'put ''Mjg0LjI3JTIwMTAxMC45MiUyMDEyMjMuMTMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgx''@;'; + put 'put ''MDM4LjI0NzI5NyUyQyUyMDExNDkuMjc1NDI5JTI5JTIwcm90YXRlJTI4LTQ0Ljk3MDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xMDM4LjI0NzI5NyUyQyUyMC0xMTQ5LjI3NTQyOSUyOSUyMCUyMiUyMHglM0QlMjI5NjYuNzUyMjk3JTIyJTIweSUzRCUyMjExMTYuNDEwNDMlMjIlMjB3aWR0aCUz''@;'; + put 'put ''RCUyMjE0Mi45OSUyMiUyMGhlaWdodCUzRCUyMjY1LjczJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzNTdBOEQwJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRl''@;'; + put 'put ''JTI4MTAzOC4yNDcyOTclMkMlMjAxMTQ5LjI3NTQyOSUyOSUyMHJvdGF0ZSUyOC00NC45NzAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTAzOC4yNDcyOTclMkMlMjAtMTE0OS4yNzU0MjklMjklMjAlMjIlMjB4JTNEJTIyOTY2Ljc1MjI5NyUyMiUyMHklM0QlMjIxMTE2LjQxMDQzJTIyJTIwd2lk''@;'; + put 'put ''dGglM0QlMjIxNDIuOTklMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEwMTAu''@;'; + put 'put ''OTIlMjAxMjIzLjEzJTIwMTAxMC45MiUyMDEyMjMuMTMlMjA5NjQuNDYlMjAxMTc2LjYzJTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUz''@;'; + put 'put ''RCUyMiUyMzAwMDAwMCUyMiUyMG9wYWNpdHklM0QlMjIwLjQyJTIyJTIwcG9pbnRzJTNEJTIyMTAxMC45MiUyMDEyMjMuMTMlMjAxMDEwLjkyJTIwMTIyMy4xMyUyMDk2NC40NiUyMDExNzYuNjMlMjA5NjQuNDYlMjAxMTc2LjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzMDA3Q0JCJTIyJTIwb3BhY2l0eSUzRCUyMjAuNCUyMiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBtdWx0aXBseSUzQiUyMiUyMHBvaW50cyUzRCUyMjEzMzYu''@;'; + put 'put ''ODclMjA4MDQuMjIlMjAxMjY0LjY5JTIwODc2LjQlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTM4My4zJTIwODUwLjc1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIy''@;'; + put 'put ''JTIzNTdBOEQwJTIyJTIwcG9pbnRzJTNEJTIyMTMzNi44NyUyMDgwNC4yMiUyMDEyNjQuNjklMjA4NzYuNCUyMDEzMTEuMTIlMjA5MjIuOTQlMjAxMzgzLjMlMjA4NTAuNzUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5M0Q4Q0ElMjIlMjBvcGFjaXR5JTNEJTIyMC42JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG92ZXJsYXklM0IlMjIlMjBwb2ludHMlM0QlMjIxMzM2Ljg3JTIwODA0LjIyJTIwMTM4My4zJTIwODUwLjc1JTIw''@;'; + put 'put ''MTYzMi40NiUyMDYwMS41OSUyMDE1ODYuMDElMjA1NTUuMDglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM1REI1RDYlMjIlMjBwb2ludHMlM0QlMjIxMzM2''@;'; + put 'put ''Ljg3JTIwODA0LjIyJTIwMTM4My4zJTIwODUwLjc1JTIwMTYzMi40NiUyMDYwMS41OSUyMDE1ODYuMDElMjA1NTUuMDglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0Ql''@;'; + put 'put ''MjIlMjNBRkQzRTYlMjIlMjBwb2ludHMlM0QlMjIyMDU2JTIwMC4xMiUyMDE2NDUuNDklMjAwLjEyJTIwMTY0OC40OSUyMDMuMTIlMjAxOTQ0LjA3JTIwMy4xMiUyMDE3OTYuMjIlMjAxNTAuOTklMjAxODkzLjEyJTIwMjQ3Ljk3JTIwMjA1NC40NSUyMDg2LjY0JTIwMjA1NC40NSUyMDE3OS42''@;'; + put 'put ''JTIwMTkzOS41OCUyMDI5NC40NyUyMDIwNTYlMjA0MTElMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3QUI5RDklMjIlMjBwb2ludHMlM0QlMjIxNjQ4LjQ5''@;'; + put 'put ''JTIwMy4xMiUyMDE3OTYuMjIlMjAxNTAuOTklMjAxOTQ0LjA3JTIwMy4xMiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY2QUVENCUyMiUyMHBvaW50cyUz''@;'; + put 'put ''RCUyMjIwNTQuNDUlMjA4Ni42NCUyMDE4OTMuMTIlMjAyNDcuOTclMjAxOTM5LjU4JTIwMjk0LjQ3JTIwMjA1NC40NSUyMDE3OS42JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBm''@;'; + put 'put ''aWxsJTNEJTIyJTIzQjdDRUQyJTIyJTIwcG9pbnRzJTNEJTIyMTg4NC44MiUyMDcwOS43OCUyMDIwNTQuNDUlMjA4NzkuNTclMjAyMDU0LjQ1JTIwNTQwLjE1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyMTQ4OS4xNCUyMDQ1OC4xMiUyMDE0ODkuMTQlMjA0NTguMTIlMjAxMzcxLjEzJTIwMzM5Ljk5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyMTc5Ni4yMiUyMDE1MC45OSUyMDE2NDguNDklMjAzLjEyJTIwMTQyNS4xJTIwMy4xMiUyMDEzMDEuOTElMjAxMjYuMzElMjAxNTYxLjMlMjAzODUuOTUlMjIlM0UlM0MlMkZw''@;'; + put 'put ''b2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM5MUM1RTAlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNzk4Ljk1NDA2NiUyQyUyMDM4OC43OTg3ODElMjklMjByb3RhdGUl''@;'; + put 'put ''MjgtNDQuOTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE3OTguOTU0MDY2JTJDJTIwLTM4OC43OTg3ODElMjklMjAlMjIlMjB4JTNEJTIyMTYzMi44MjQwNyUyMiUyMHklM0QlMjIzNTUuOTMzNzgxJTIyJTIwd2lkdGglM0QlMjIzMzIuMjYlMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUz''@;'; + put 'put ''QyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUyMHBvaW50cyUzRCUyMjE1ODYuMDElMjA1NTUuMDglMjAxNjMyLjQ2JTIwNjAxLjU5JTIwMTYzMi40NiUyMDYw''@;'; + put 'put ''MS41OSUyMDE1ODYuMDElMjA1NTUuMDglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjNCM0VBRUUlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNTcz''@;'; + put 'put ''LjcxMTU3NyUyQyUyMDQ3MC42MjAyNjMlMjklMjByb3RhdGUlMjgtNDUuMDAwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE1NzMuNzExNTc3JTJDJTIwLTQ3MC42MjAyNjMlMjklMjAlMjIlMjB4JTNEJTIyMTUyMi42ODE1OCUyMiUyMHklM0QlMjI0MDIuMDg1MjYzJTIyJTIwd2lkdGglM0QlMjIx''@;'; + put 'put ''MDIuMDYlMjIlMjBoZWlnaHQlM0QlMjIxMzcuMDclMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjNCM0VBRUUlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgx''@;'; + put 'put ''NzU4LjY3Njc1OCUyQyUyMDY1NS43NjcxMjAlMjklMjByb3RhdGUlMjgtNDQuOTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE3NTguNjc2NzU4JTJDJTIwLTY1NS43NjcxMjAlMjklMjAlMjIlMjB4JTNEJTIyMTcwNy42NDY3NiUyMiUyMHklM0QlMjI1MjguMjkyMTIlMjIlMjB3aWR0aCUzRCUy''@;'; + put 'put ''MjEwMi4wNiUyMiUyMGhlaWdodCUzRCUyMjI1NC45NSUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0IzRUFFRSUyMiUyMHBvaW50cyUzRCUyMjEzMDEuOTElMjAx''@;'; + put 'put ''MjYuMzElMjAxMTc4Ljg0JTIwMy4xMiUyMDEwMzQuNTklMjAzLjEyJTIwMTIyOS43NSUyMDE5OC40NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzgzQzBD''@;'; + put 'put ''OCUyMiUyMHBvaW50cyUzRCUyMjE4MTIuNjUlMjA3ODEuOTUlMjAyMDU0LjQ1JTIwMTAyMy45OSUyMDIwNTQuNDUlMjA4NzkuNTclMjAxODg0LjgyJTIwNzA5Ljc4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzN0RDNkRDJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTM5NS41MTY5MDElMkMlMjAyOTIuMjA2NTE5JTI5JTIwcm90YXRlJTI4LTQ1LjAwMDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xMzk1LjUxNjkwMSUyQyUyMC0yOTIuMjA2NTE5''@;'; + put 'put ''JTI5JTIwJTIyJTIweCUzRCUyMjEzNDQuNDkxOSUyMiUyMHklM0QlMjIxMDguNzAxNTE5JTIyJTIwd2lkdGglM0QlMjIxMDIuMDUlMjIlMjBoZWlnaHQlM0QlMjIzNjcuMDElMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM2OEI4RDUlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxNjQ1LjMxMzYxOSUyQyUyMDU0Mi4yNDk3NjAlMjklMjByb3RhdGUlMjgtNDUuMDAwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTE2NDUuMzEzNjE5JTJDJTIwLTU0Mi4yNDk3''@;'; + put 'put ''NjAlMjklMjAlMjIlMjB4JTNEJTIyMTU5NC4yODM2MiUyMiUyMHklM0QlMjI1MDkuMzg0NzYlMjIlMjB3aWR0aCUzRCUyMjEwMi4wNiUyMiUyMGhlaWdodCUzRCUyMjY1LjczJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUy''@;'; + put 'put ''RmclM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MC4wMDAwMDAlMkMlMjAzLjAwMDAwMCUyOSUyMiUyMHN0cm9rZSUzRCUyMiUyMzAwMDAwMCUyMiUyMG9wYWNpdHklM0QlMjIwLjE1JTIyJTNFJTBE''@;'; + put 'put ''JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGQlM0QlMjJNMC45NSUyQzAuMTIlMjBMMC45NSUyQzg0MC4xMiUyMiUyMGlkJTNEJTIyU2hhcGUlMjIlM0UlM0MlMkZwYXRoJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEQlMEElMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBEJTBBJTNDJTJGc3ZnJTNFKTtiYWNrZ3JvdW5kLXNpemU6MTAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjI1LjJyZW0gMDtiYWNr''@;'; + put 'put ''Z3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9LmxvZ2luLXdyYXBwZXIgLmxvZ2lue2JhY2tncm91bmQ6I2ZhZmFmYTtiYWNrZ3JvdW5kOnZhcigtLWNsci1sb2dpbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmFmYWZhKTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246''@;'; + put 'put ''Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoxLjJyZW0gM3JlbTtoZWlnaHQ6YXV0bzttaW4taGVpZ2h0OjEwMHZoO3dpZHRoOjI1LjJyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC50aXRsZXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1sb2dpbi10aXRsZS1jb2xv''@;'; + put 'put ''ciwgYmxhY2spO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItbG9naW4tdGl0bGUtZm9udC13ZWlnaHQsIDIwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNs''@;'; + put 'put ''ci1sb2dpbi10aXRsZS1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToxLjZyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuOHJlbX0ubG9naW4td3JhcHBlciAu''@;'; + put 'put ''bG9naW4gLnRpdGxlIC53ZWxjb21le2xpbmUtaGVpZ2h0OjEuOHJlbX0ubG9naW4td3JhcHBlciAubG9naW4gLnRpdGxlIC5oaW50e2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWxvZ2luLXRpdGxlLWNvbG9yLCBibGFjayk7bWFyZ2luLXRvcDoxLjVyZW07Zm9udC1zaXplOi43cmVtfS5s''@;'; + put 'put ''b2dpbi13cmFwcGVyIC5sb2dpbiAudHJhZGVtYXJre2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWxvZ2luLXRyYWRlbWFyay1jb2xvciwgYmxhY2spO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItbG9naW4tdHJhZGVtYXJrLWZvbnQtd2VpZ2h0LCAyMDApO2ZvbnQt''@;'; + put 'put ''ZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5leHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItbG9naW4tdHJhZGVtYXJrLWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwg''@;'; + put 'put ''c2Fucy1zZXJpZik7Zm9udC1zaXplOjEuNHJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWx9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5zdWJ0aXRsZXtmb250LXdlaWdodDoyMDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWxvZ2luLXN1YnRpdGxlLWZvbnQtd2VpZ2h0LCAyMDApO2NvbG9yOiMwMDA7''@;'; + put 'put ''Y29sb3I6dmFyKC0tY2xyLWxvZ2luLXN1YnRpdGxlLWNvbG9yLCBibGFjayk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1sb2dpbi1zdWJ0aXRsZS1mb250LWZhbWlseSwgTWV0''@;'; + put 'put ''cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToxLjFyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuOHJlbX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3Vwe2Rpc3BsYXk6Zmxl''@;'; + put 'put ''eDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZzoyLjRyZW0gMCAwfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmF1dGgtc291cmNlLC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLnVzZXJuYW1lLC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4t''@;'; + put 'put ''Z3JvdXAgLnBhc3N3b3JkLC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNoZWNrYm94LC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNsci1mb3JtLWNvbnRyb2wsLmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2xyLWNoZWNrYm94LXdy''@;'; + put 'put ''YXBwZXJ7bWFyZ2luOi4zcmVtIDAgLjlyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVye2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWlu''@;'; + put 'put ''ZXIgLmNsci1zZWxlY3Qtd3JhcHBlciwubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1zZWxlY3R7d2lkdGg6MTAwJX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWluZXIgLmNs''@;'; + put 'put ''ci1pbnB1dC13cmFwcGVyPi5jbHItaW5wdXR7d2lkdGg6MTAwJX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVye3dpZHRoOjEwMCV9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2xy''@;'; + put 'put ''LWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlcj4uY2xyLWlucHV0LWdyb3Vwe21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCU7cGFkZGluZy1yaWdodDouNDhyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHIt''@;'; + put 'put ''aW5wdXQtd3JhcHBlcj4uY2xyLWlucHV0LWdyb3VwPi5jbHItaW5wdXR7d2lkdGg6Y2FsYygxMDAlIC0gMS4ycmVtKX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC50b29sdGlwLXZhbGlkYXRpb257bWFyZ2luLXRvcDouM3JlbX0ubG9naW4td3JhcHBlciAubG9naW4gLmxv''@;'; + put 'put ''Z2luLWdyb3VwIC50b29sdGlwLXZhbGlkYXRpb24gLnVzZXJuYW1lLC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLnRvb2x0aXAtdmFsaWRhdGlvbiAucGFzc3dvcmR7d2lkdGg6MTAwJTttYXJnaW4tdG9wOjB9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAu''@;'; + put 'put ''ZXJyb3J7ZGlzcGxheTpub25lO21hcmdpbjouM3JlbSAwIDA7cGFkZGluZzouNDVyZW0gLjZyZW07YmFja2dyb3VuZDojYzIxZDAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWxvZ2luLWVycm9yLWJhY2tncm91bmQtY29sb3IsICNjMjFkMDApO2NvbG9yOiNmYWZhZmE7Y29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LWxvZ2luLWJhY2tncm91bmQtY29sb3IsICNmYWZhZmEpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWxvZ2luLWVycm9yLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7bGluZS1oZWlnaHQ6LjlyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91''@;'; + put 'put ''cCAuZXJyb3I6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbnRlbnQ6IiI7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIwdmlld0JveCUzRCUyMjUlMjA1JTIwMjYlMjAyNiUyMiUyMHByZXNl''@;'; + put 'put ''cnZlQXNwZWN0UmF0aW8lM0QlMjJ4TWlkWU1pZCUyMG1lZXQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUzQ2RlZnMl''@;'; + put 'put ''M0UlM0NzdHlsZSUzRS5jbHItaS1vdXRsaW5lJTdCZmlsbCUzQSUyM2ZhZmFmYSUzQiU3RCUzQyUyRnN0eWxlJTNFJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFZXhjbGFtYXRpb24tY2lyY2xlLWxpbmUl''@;'; + put 'put ''M0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMSUyMiUyMGQlM0QlMjJNMTglMkM2QTEyJTJDMTIlMkMwJTJDMSUyQzAlMkMz''@;'; + put 'put ''MCUyQzE4JTJDMTIlMkMxMiUyQzAlMkMwJTJDMCUyQzE4JTJDNlptMCUyQzIyQTEwJTJDMTAlMkMwJTJDMSUyQzElMkMyOCUyQzE4JTJDMTAlMkMxMCUyQzAlMkMwJTJDMSUyQzE4JTJDMjhaJTIyJTNFJTNDJTJGcGF0aCUzRSUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBj''@;'; + put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMiUyMiUyMGQlM0QlMjJNMTglMkMyMC4wN2ExLjMlMkMxLjMlMkMwJTJDMCUyQzEtMS4zLTEuM3YtNmExLjMlMkMxLjMlMkMwJTJDMSUyQzElMkMyLjYlMkMwdjZBMS4zJTJDMS4zJTJDMCUyQzAlMkMxJTJDMTglMkMyMC4wN1olMjIlM0UlM0MlMkZwYXRoJTNF''@;'; + put 'put ''JTNDY2lyY2xlJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIwY2xyLWktb3V0bGluZS1wYXRoLTMlMjIlMjBjeCUzRCUyMjE3Ljk1JTIyJTIwY3klM0QlMjIyMy4wMiUyMiUyMHIlM0QlMjIxLjUlMjIlM0UlM0MlMkZjaXJjbGUlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlM0MlMkZzdmclM0UpO21hcmdpbjouMDVyZW0gLjNyZW0gMCAwO2hlaWdodDouOHJlbTt3aWR0aDouOHJlbX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5lcnJvci5hY3RpdmV7ZGlzcGxheTpmbGV4fS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3Jv''@;'; + put 'put ''dXAgLmVycm9yLmFjdGl2ZTpiZWZvcmV7ZmxleDowIDAgLjhyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuYnRue21hcmdpbjozLjZyZW0gMCAwO21heC13aWR0aDpub25lfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmVycm9yKy5idG57bWFyZ2lu''@;'; + put 'put ''OjEuMnJlbSAwIDB9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuc2lnbnVwe21hcmdpbi10b3A6LjZyZW07Zm9udC1zaXplOi43cmVtO3RleHQtYWxpZ246Y2VudGVyfS5sb2dpbi13cmFwcGVyIC5sb2dpbjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2Rp''@;'; + put 'put ''c3BsYXk6YmxvY2s7d2lkdGg6LjA1cmVtO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6IzAwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1sb2dpbi1wYW5lbC1saW5lLWNvbG9yLCBibGFjayk7b3BhY2l0eTouMTtvcGFjaXR5OnZhcigtLWNsci1sb2dpbi1wYW5lbC1saW5lLW9wYWNpdHksIC4xKTt0''@;'; + put 'put ''b3A6MDtyaWdodDotLjFyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCl7LmxvZ2luLXdyYXBwZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOiNmYWZhZmE7YmFja2dyb3VuZDp2YXIoLS1jbHItbG9naW4tYmFja2dyb3VuZC1jb2xvciwgI2ZhZmFmYSl9''@;'; + put 'put ''LmxvZ2luLXdyYXBwZXIgLmxvZ2lue3dpZHRoOjEwMCU7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nOjEuMnJlbSAyMCV9LmxvZ2luLXdyYXBwZXIgLmxvZ2luOmFmdGVye2NvbnRlbnQ6bm9uZX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7LmxvZ2luLXdyYXBwZXIgLmxvZ2lu''@;'; + put 'put ''e3BhZGRpbmc6MS4ycmVtIDE1JX19Lm1haW4tY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMHZoO2JhY2tncm91bmQ6I2ZhZmFmYTtiYWNrZ3JvdW5kOnZhcigtLWNsci1nbG9iYWwtYXBwLWJhY2tncm91bmQsICNmYWZhZmEpfS5tYWluLWNv''@;'; + put 'put ''bnRhaW5lciAuYWxlcnQuYWxlcnQtYXBwLWxldmVse2ZsZXg6MCAwIGF1dG87b3ZlcmZsb3cteDpoaWRkZW59Lm1haW4tY29udGFpbmVyIGhlYWRlciwubWFpbi1jb250YWluZXIgLmhlYWRlcntmbGV4OjAgMCAzcmVtfS5tYWluLWNvbnRhaW5lciAuc3ViLW5hdiwubWFpbi1jb250YWluZXIg''@;'; + put 'put ''LnN1Ym5hdntmbGV4OjAgMCAxLjhyZW19Lm1haW4tY29udGFpbmVyIC51LW1haW4tY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxIDEgYXV0bztvdmVyZmxvdzpoaWRkZW59Lm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lcntkaXNwbGF5''@;'; + put 'put ''OmZsZXg7ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0Oi4wNXJlbX0ubWFpbi1jb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVyIC5jb250ZW50LWFyZWF7ZmxleDoxIDEgYXV0bztvdmVyZmxvdy15OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7cGFkZGluZzoxLjJyZW19''@;'; + put 'put ''Lm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lciAuY29udGVudC1hcmVhPjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9Lm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lciAuc2lkZW5hdntmbGV4OjAgMCBhdXRvO29yZGVyOi0xO292ZXJmbG93OmhpZGRlbn0ubWFpbi1j''@;'; + put 'put ''b250YWluZXIgLmNvbnRlbnQtY29udGFpbmVyIC5jbHItdmVydGljYWwtbmF2e2ZsZXg6MCAwIGF1dG87b3JkZXI6LTF9QG1lZGlhIHByaW50ey5tYWluLWNvbnRhaW5lcntoZWlnaHQ6YXV0b319Ym9keS5uby1zY3JvbGxpbmcsYm9keVtjZHMtbGF5b3V0PW5vLXNjcm9sbGluZ10sYm9keS5u''@;'; + put 'put ''by1zY3JvbGxpbmcgLm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lciAuY29udGVudC1hcmVhLGJvZHlbY2RzLWxheW91dD1uby1zY3JvbGxpbmddIC5tYWluLWNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIgLmNvbnRlbnQtYXJlYXtvdmVyZmxvdzpoaWRkZW59OnJvb3R7LS1j''@;'; + put 'put ''bHItbW9kYWwtY2xvc2UtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1tb2RhbC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1tb2RhbC1jb250ZW50LWJveC1zaGFkb3ctY29sb3I6cmdiYSggMCwgMCwgMCwgLjIgKTstLWNsci1tb2Rh''@;'; + put 'put ''bC1iYWNrZHJvcC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC05MDApOy0tY2xyLW1vZGFsLWJhY2tkcm9wLW9wYWNpdHk6Ljg1Oy0tY2xyLW1vZGFsLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLW1vZGFsLXRpdGxlLWNvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1oMy1jb2xvcik7LS1jbHItbW9kYWwtdGl0bGUtZm9udC1mYW1pbHk6dmFyKC0tY2xyLWgzLWZvbnQtZmFtaWx5KTstLWNsci1tb2RhbC10aXRsZS1mb250LXdlaWdodDp2YXIoLS1jbHItaDMtZm9udC13ZWlnaHQpfS5tb2RhbHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtib3R0b206MDty''@;'; + put 'put ''aWdodDowO2xlZnQ6MDt6LWluZGV4OjEwNTA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjIuNHJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU3NnB4KXsubW9kYWx7cGFk''@;'; + put 'put ''ZGluZzouNnJlbX19Lm1vZGFsLWRpYWxvZ3twb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjEwNTA7d2lkdGg6MjguOHJlbTttYXgtd2lkdGg6MTAwJX0ubW9kYWwtZGlhbG9nLm1vZGFsLXNte3dpZHRoOjE0LjRyZW19Lm1vZGFsLWRpYWxvZy5tb2RhbC1sZ3t3aWR0aDo0My4ycmVtfS5tb2Rh''@;'; + put 'put ''bC1kaWFsb2cubW9kYWwteGx7d2lkdGg6NTcuNnJlbX0ubW9kYWwtZGlhbG9nIC5tb2RhbC1jb250ZW50e3BhZGRpbmc6MS4ycmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1tb2RhbC1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1yYWRpdXM6LjE1''@;'; + put 'put ''cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLW1vZGFsLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMXJlbSAuMXJlbSAjMDAwMztib3gtc2hhZG93OjAgLjA1cmVtIC4xcmVtIC4xcmVtIHZhcigtLWNsci1tb2RhbC1jb250ZW50LWJveC1zaGFkb3ctY29s''@;'; + put 'put ''b3IpfS5tb2RhbC1oZWFkZXIsLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZXtib3JkZXItYm90dG9tOm5vbmU7cGFkZGluZzowIDAgMS4ycmVtfS5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGV7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmZs''@;'; + put 'put ''ZXgtc3RhcnR9Lm1vZGFsLWhlYWRlciAubW9kYWwtdGl0bGUsLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAubW9kYWwtdGl0bGV7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItbW9kYWwtdGl0bGUtY29sb3IsIGJsYWNrKTttYXJnaW46MDtwYWRkaW5nOjAgLjE1cmVtfS5tb2RhbC1oZWFk''@;'; + put 'put ''ZXIgLm1vZGFsLXRpdGxlOm5vdChbY2RzLXRleHRdKSwubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5tb2RhbC10aXRsZTpub3QoW2Nkcy10ZXh0XSl7Zm9udC1zaXplOjEuMXJlbTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMt''@;'; + put 'put ''c2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLW1vZGFsLXRpdGxlLWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1tb2RhbC10aXRs''@;'; + put 'put ''ZS1mb250LXdlaWdodCwgMjAwKTtsaW5lLWhlaWdodDoxLjJyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5tb2RhbC1oZWFkZXIgLmNsb3NlLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGUgLmNsb3Nle21hcmdpbi10b3A6LS4wNXJlbTttYXJnaW4tcmlnaHQ6LS4yNXJlbTtmb250LXNpemU6''@;'; + put 'put ''MS4zcmVtO2xpbmUtaGVpZ2h0OjEuMnJlbX0ubW9kYWwtaGVhZGVyIC5jbG9zZSBjZHMtaWNvbiwubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5jbG9zZSBjZHMtaWNvbiwubW9kYWwtaGVhZGVyIC5jbG9zZSBjbHItaWNvbiwubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5jbG9zZSBjbHIt''@;'; + put 'put ''aWNvbntmaWxsOiM4YzhjOGM7ZmlsbDp2YXIoLS1jbHItbW9kYWwtY2xvc2UtY29sb3IsICM4YzhjOGMpO2hlaWdodDoxLjJyZW07d2lkdGg6MS4ycmVtfS5tb2RhbC10aXRsZS13cmFwcGVye2ZsZXg6MX0ubW9kYWwtdGl0bGUtd3JhcHBlciAubW9kYWwtdGl0bGU+aDN7bWFyZ2luLXRvcDow''@;'; + put 'put ''fS5tb2RhbC1ib2R5LXdyYXBwZXJ7bWF4LWhlaWdodDo3MHZoO292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbjtwYWRkaW5nOjAgLjE1cmVtfS5tb2RhbC1ib2R5LXdyYXBwZXI+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0ubW9kYWwtYm9keS13cmFwcGVyPjpsYXN0LWNoaWxk''@;'; + put 'put ''e21hcmdpbi1ib3R0b206MH0ubW9kYWwtZm9vdGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7cGFkZGluZzoxLjJyZW0gMCAwfS5tb2RhbC1mb290ZXIgLmJ0bnttYXJnaW46MCAwIDAgLjZyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCkgYW5k''@;'; + put 'put ''IChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5tb2RhbC1ib2R5LXdyYXBwZXJ7bWF4LWhlaWdodDo1NXZofX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU3NnB4KXsubW9kYWwtY29udGVudHtwYWRkaW5nOi42cmVtIDAgLjZyZW0gMS4ycmVtfS5tb2RhbC1oZWFkZXIsLm1vZGFsLWhl''@;'; + put 'put ''YWRlci0tYWNjZXNzaWJsZXtwYWRkaW5nOjAgMS4ycmVtIC42cmVtIDB9Lm1vZGFsLWJvZHktd3JhcHBlcnttYXgtaGVpZ2h0OjU1dmh9Lm1vZGFsLWZvb3RlcntwYWRkaW5nOi42cmVtIDEuMnJlbSAwIDB9fS5tb2RhbC1iYWNrZHJvcHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtib3R0b206MDty''@;'; + put 'put ''aWdodDowO2xlZnQ6MDtiYWNrZ3JvdW5kLWNvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItbW9kYWwtYmFja2Ryb3AtY29sb3IsICMzMzMzMzMpO29wYWNpdHk6Ljg1O29wYWNpdHk6dmFyKC0tY2xyLW1vZGFsLWJhY2tkcm9wLW9wYWNpdHksIC44NSk7ei1pbmRleDoxMDQw''@;'; + put 'put ''fS5tb2RhbCAubW9kYWwtbmF2e2Rpc3BsYXk6bm9uZX06cm9vdHstLWNsci1oZWFkZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtOTAwKTstLWNsci1oZWFkZXItZGl2aWRlci1vcGFjaXR5Oi4xNTstLWNsci1oZWFkZXItbmF2LW9wYWNpdHk6LjY1Oy0tY2xyLWhlYWRlci1u''@;'; + put 'put ''YXYtaG92ZXItb3BhY2l0eToxOy0tY2xyLWhlYWRlci0yLWJnLWNvbG9yOiM0ODVhNmE7LS1jbHItaGVhZGVyLTMtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tMTAwMCk7LS1jbHItaGVhZGVyLTQtYmctY29sb3I6IzI0N2JhZTstLWNsci1oZWFkZXItNS1iZy1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItaGVhZGVyLTYtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi0xMDAwKTstLWNsci1oZWFkZXItNy1iZy1jb2xvcjojMzA0MjUwOy0tY2xyLWhlYWRlci04LWJnLWNvbG9yOiMwZjE3MWM7LS1jbHItaGVhZGVyLWZv''@;'; + put 'put ''bnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLWhlYWRlci10aXRsZS1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IpOy0tY2xyLWhlYWRlci10aXRsZS1mb250LXdlaWdodDp2YXIoLS1jbHItaDUtZm9udC13ZWlnaHQpOy0tY2xyLWhlYWRlci10aXRs''@;'; + put 'put ''ZS1mb250LWZhbWlseTp2YXIoLS1jbHItaDUtZm9udC1mYW1pbHkpfWhlYWRlciwuaGVhZGVye2Rpc3BsYXk6ZmxleDtjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7YmFja2dyb3VuZC1jb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWhlYWRlci1iZy1jb2xvciwgIzMzMzMzMyk7aGVpZ2h0OjNyZW07d2hpdGUtc3BhY2U6bm93cmFwfWhlYWRlci5oZWFkZXItMSwuaGVhZGVyLmhlYWRlci0xe2JhY2tncm91bmQtY29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItYmctY29sb3Is''@;'; + put 'put ''ICMzMzMzMzMpfWhlYWRlci5oZWFkZXItMiwuaGVhZGVyLmhlYWRlci0ye2JhY2tncm91bmQtY29sb3I6IzQ4NWE2YTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItMi1iZy1jb2xvciwgIzQ4NWE2YSl9aGVhZGVyLmhlYWRlci0zLC5oZWFkZXIuaGVhZGVyLTN7YmFja2dyb3Vu''@;'; + put 'put ''ZC1jb2xvcjojMzIwMDQ3O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWhlYWRlci0zLWJnLWNvbG9yLCAjMzIwMDQ3KX1oZWFkZXIuaGVhZGVyLTQsLmhlYWRlci5oZWFkZXItNHtiYWNrZ3JvdW5kLWNvbG9yOiMyNDdiYWU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLTQt''@;'; + put 'put ''YmctY29sb3IsICMyNDdiYWUpfWhlYWRlci5oZWFkZXItNSwuaGVhZGVyLmhlYWRlci01e2JhY2tncm91bmQtY29sb3I6IzAwNTY3YTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItNS1iZy1jb2xvciwgIzAwNTY3YSl9aGVhZGVyLmhlYWRlci02LC5oZWFkZXIuaGVhZGVyLTZ7''@;'; + put 'put ''YmFja2dyb3VuZC1jb2xvcjojMDAzNjRkO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWhlYWRlci02LWJnLWNvbG9yLCAjMDAzNjRkKX1oZWFkZXIuaGVhZGVyLTcsLmhlYWRlci5oZWFkZXItN3tiYWNrZ3JvdW5kLWNvbG9yOiMzMDQyNTA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''aGVhZGVyLTctYmctY29sb3IsICMzMDQyNTApfWhlYWRlci5oZWFkZXItOCwuaGVhZGVyLmhlYWRlci04e2JhY2tncm91bmQtY29sb3I6IzBmMTcxYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItOC1iZy1jb2xvciwgIzBmMTcxYyl9aGVhZGVyIC5icmFuZGluZywuaGVhZGVy''@;'; + put 'put ''IC5icmFuZGluZ3tkaXNwbGF5OmZsZXg7ZmxleDowIDAgYXV0bzttaW4td2lkdGg6MTAuMnJlbTtwYWRkaW5nOjAgMS4ycmVtO2hlaWdodDozcmVtfWhlYWRlciAuYnJhbmRpbmc+YSxoZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGluaywuaGVhZGVyIC5icmFuZGluZz5hLC5oZWFkZXIgLmJyYW5k''@;'; + put 'put ''aW5nPi5uYXYtbGlua3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6M3JlbX1oZWFkZXIgLmJyYW5kaW5nPmE6aG92ZXIsaGVhZGVyIC5icmFuZGluZz5hOmFjdGl2ZSxoZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGluazpob3ZlcixoZWFkZXIgLmJyYW5kaW5n''@;'; + put 'put ''Pi5uYXYtbGluazphY3RpdmUsLmhlYWRlciAuYnJhbmRpbmc+YTpob3ZlciwuaGVhZGVyIC5icmFuZGluZz5hOmFjdGl2ZSwuaGVhZGVyIC5icmFuZGluZz4ubmF2LWxpbms6aG92ZXIsLmhlYWRlciAuYnJhbmRpbmc+Lm5hdi1saW5rOmFjdGl2ZXt0ZXh0LWRlY29yYXRpb246bm9uZX1oZWFk''@;'; + put 'put ''ZXIgLmJyYW5kaW5nPmE6Zm9jdXMsaGVhZGVyIC5icmFuZGluZz4ubmF2LWxpbms6Zm9jdXMsLmhlYWRlciAuYnJhbmRpbmc+YTpmb2N1cywuaGVhZGVyIC5icmFuZGluZz4ubmF2LWxpbms6Zm9jdXN7b3V0bGluZS1vZmZzZXQ6LS4yNXJlbX1oZWFkZXIgLmJyYW5kaW5nIC5jbHItaWNvbixo''@;'; + put 'put ''ZWFkZXIgLmJyYW5kaW5nIGNkcy1pY29uLGhlYWRlciAuYnJhbmRpbmcgY2xyLWljb24sLmhlYWRlciAuYnJhbmRpbmcgLmNsci1pY29uLC5oZWFkZXIgLmJyYW5kaW5nIGNkcy1pY29uLC5oZWFkZXIgLmJyYW5kaW5nIGNsci1pY29ue2ZsZXgtZ3JvdzowO2ZsZXgtc2hyaW5rOjA7aGVpZ2h0''@;'; + put 'put ''OjEuOHJlbTt3aWR0aDoxLjhyZW07bWFyZ2luLXJpZ2h0Oi40NXJlbX1oZWFkZXIgLmJyYW5kaW5nIC50aXRsZSwuaGVhZGVyIC5icmFuZGluZyAudGl0bGV7Y29sb3I6I2ZhZmFmYTtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLXRpdGxlLWNvbG9yLCAjZmFmYWZhKTtmb250LXdlaWdodDo0MDA7''@;'; + put 'put ''Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWhlYWRlci10aXRsZS1mb250LXdlaWdodCwgNDAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWhlYWRlci10aXRsZS1mb250LWZhbWls''@;'; + put 'put ''eSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZTouOHJlbTtsZXR0ZXItc3BhY2luZzouMDFlbTtsaW5lLWhlaWdodDozcmVtO3RleHQtZGVjb3JhdGlvbjpub25lfWhlYWRlciAuc2V0dGluZ3MsaGVhZGVy''@;'; + put 'put ''IC5oZWFkZXItbmF2LGhlYWRlciAuaGVhZGVyLWFjdGlvbnMsLmhlYWRlciAuc2V0dGluZ3MsLmhlYWRlciAuaGVhZGVyLW5hdiwuaGVhZGVyIC5oZWFkZXItYWN0aW9uc3toZWlnaHQ6M3JlbX1oZWFkZXIgLnNldHRpbmdzIC5uYXYtdGV4dCxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi10ZXh0''@;'; + put 'put ''LGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi10ZXh0LC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtdGV4dCwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtdGV4dCwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LXRleHR7Zm9udC13ZWlnaHQ6NTAwfWhlYWRlciAuc2V0dGluZ3MgY2xyLWlj''@;'; + put 'put ''b24saGVhZGVyIC5oZWFkZXItbmF2IGNsci1pY29uLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgY2xyLWljb24sLmhlYWRlciAuc2V0dGluZ3MgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiBjbHItaWNvbiwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyBjbHItaWNvbntjb2xvcjojZmFmYWZh''@;'; + put 'put ''O2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSl9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWljb24saGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtaWNvbiwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWljb24sLmhl''@;'; + put 'put ''YWRlciAuaGVhZGVyLW5hdiAubmF2LWljb24sLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1pY29ue2hlaWdodDozcmVtO3dpZHRoOjNyZW19aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmssaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5u''@;'; + put 'put ''YXYtbGluaywuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmssLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmssLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5re3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6''@;'; + put 'put ''LjlyZW0gMS4ycmVtO2NvbG9yOiNmYWZhZmE7Y29sb3I6dmFyKC0tY2xyLWhlYWRlci1mb250LWNvbG9yLCAjZmFmYWZhKTtvcGFjaXR5Oi42NTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItbmF2LW9wYWNpdHksIC42NSl9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6aG92ZXIsaGVhZGVy''@;'; + put 'put ''IC5zZXR0aW5ncyAubmF2LWxpbms6YWN0aXZlLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6aG92ZXIsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazphY3RpdmUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbms6aG92ZXIsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2''@;'; + put 'put ''LWxpbms6YWN0aXZlLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluazpob3ZlciwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6YWN0aXZlLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmhvdmVyLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmFjdGl2ZSwuaGVhZGVyIC5o''@;'; + put 'put ''ZWFkZXItYWN0aW9ucyAubmF2LWxpbms6aG92ZXIsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rOmFjdGl2ZXt0ZXh0LWRlY29yYXRpb246bm9uZX1oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluazplbmFibGVkOmhvdmVyLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6ZW5h''@;'; + put 'put ''YmxlZDpob3ZlcixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluazplbmFibGVkOmhvdmVyLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluazplbmFibGVkOmhvdmVyLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmVuYWJsZWQ6aG92ZXIsLmhlYWRlciAuaGVhZGVyLWFjdGlv''@;'; + put 'put ''bnMgLm5hdi1saW5rOmVuYWJsZWQ6aG92ZXJ7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWhlYWRlci1uYXYtaG92ZXItb3BhY2l0eSwgMSl9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6ZGlzYWJsZWQsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpkaXNhYmxlZCxoZWFkZXIg''@;'; + put 'put ''LmhlYWRlci1hY3Rpb25zIC5uYXYtbGluazpkaXNhYmxlZCwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6ZGlzYWJsZWQsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6ZGlzYWJsZWQsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rOmRpc2FibGVke2N1cnNvcjpub3Qt''@;'; + put 'put ''YWxsb3dlZH1oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluayAuZmEsaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgLm5hdi1pY29uLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgLmZhLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgLm5hdi1pY29uLGhlYWRlciAuaGVhZGVyLWFj''@;'; + put 'put ''dGlvbnMgLm5hdi1saW5rIC5mYSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayAubmF2LWljb24sLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIC5mYSwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgLm5hdi1pY29uLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIC5m''@;'; + put 'put ''YSwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayAubmF2LWljb24sLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIC5mYSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsgLm5hdi1pY29ue2ZvbnQtc2l6ZToxLjFyZW19aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxp''@;'; + put 'put ''bmsgY2RzLWljb24saGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgY2xyLWljb24saGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayBjZHMtaWNvbixoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIGNsci1pY29uLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIGNkcy1pY29u''@;'; + put 'put ''LGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIGNsci1pY29uLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluayBjZHMtaWNvbiwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgY2RzLWljb24sLmhlYWRlciAu''@;'; + put 'put ''aGVhZGVyLW5hdiAubmF2LWxpbmsgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIGNkcy1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayBjbHItaWNvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFu''@;'; + put 'put ''c2xhdGUoLTUwJSwtNTAlKTtoZWlnaHQ6MS4ycmVtO3dpZHRoOjEuMnJlbX1oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLGhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2xyLWljb24saGVhZGVyIC5oZWFkZXItbmF2IC5u''@;'; + put 'put ''YXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjbHItaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5h''@;'; + put 'put ''di1saW5rLm5hdi1pY29uLXRleHQgY2xyLWljb24sLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2RzLWljb24sLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsubmF2''@;'; + put 'put ''LWljb24tdGV4dCBjZHMtaWNvbiwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNsci1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5u''@;'; + put 'put ''YXYtaWNvbi10ZXh0IGNsci1pY29ue3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDphdXRvO2xlZnQ6YXV0bzt0cmFuc2Zvcm06bm9uZTttYXJnaW4tbGVmdDoxLjJyZW19aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsubmF2LWljb24tdGV4dCAubmF2LXRleHQsaGVhZGVyIC5oZWFkZXItbmF2IC5u''@;'; + put 'put ''YXYtbGluay5uYXYtaWNvbi10ZXh0IC5uYXYtdGV4dCxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IC5uYXYtdGV4dCwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsubmF2LWljb24tdGV4dCAubmF2LXRleHQsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2''@;'; + put 'put ''LWxpbmsubmF2LWljb24tdGV4dCAubmF2LXRleHQsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgLm5hdi10ZXh0e21hcmdpbi1sZWZ0OjA7cGFkZGluZy1sZWZ0Oi4zcmVtfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRl''@;'; + put 'put ''eHQsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0LGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQsLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQsLmhlYWRlciAuaGVh''@;'; + put 'put ''ZGVyLW5hdiAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dCwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dHtkaXNwbGF5Om5vbmV9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsuYWN0aXZlLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxp''@;'; + put 'put ''bmsuYWN0aXZlLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rLmFjdGl2ZSwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsuYWN0aXZlLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsuYWN0aXZle2Jh''@;'; + put 'put ''Y2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTUpO29wYWNpdHk6MX1oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluazpmb2N1cyxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmZvY3VzLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rOmZvY3VzLC5oZWFkZXIgLnNldHRpbmdz''@;'; + put 'put ''IC5uYXYtbGluazpmb2N1cywuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpmb2N1cywuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbms6Zm9jdXN7b3V0bGluZS1vZmZzZXQ6LS4yNXJlbX1oZWFkZXIgLmhlYWRlci1uYXYsLmhlYWRlciAuaGVhZGVyLW5hdntkaXNwbGF5OmZs''@;'; + put 'put ''ZXg7ZmxleDowIDAgYXV0b31oZWFkZXIgLmhlYWRlci1uYXY6bGFzdC1jaGlsZD4ubmF2LWxpbms6bGFzdC1jaGlsZDphZnRlciwuaGVhZGVyIC5oZWFkZXItbmF2Omxhc3QtY2hpbGQ+Lm5hdi1saW5rOmxhc3QtY2hpbGQ6YWZ0ZXJ7Y29udGVudDpub25lfWhlYWRlciAuaGVhZGVyLW5hdiAu''@;'; + put 'put ''bmF2LWxpbms6Zmlyc3Qtb2YtdHlwZSxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmxhc3Qtb2YtdHlwZSwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpmaXJzdC1vZi10eXBlLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmxhc3Qtb2YtdHlwZXtwb3NpdGlvbjpyZWxh''@;'; + put 'put ''dGl2ZX1oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmZpcnN0LW9mLXR5cGU6YmVmb3JlLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6bGFzdC1vZi10eXBlOmFmdGVyLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmZpcnN0LW9mLXR5cGU6YmVmb3JlLC5oZWFkZXIgLmhl''@;'; + put 'put ''YWRlci1uYXYgLm5hdi1saW5rOmxhc3Qtb2YtdHlwZTphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2JhY2tncm91bmQ6I2ZhZmFmYTtiYWNrZ3JvdW5kOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7b3BhY2l0eTp2''@;'; + put 'put ''YXIoLS1jbHItaGVhZGVyLWRpdmlkZXItb3BhY2l0eSwgLjE1KTtvcGFjaXR5Oi4xNTtoZWlnaHQ6MnJlbTt3aWR0aDouMDVyZW07d2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTt0b3A6LjVyZW07bGVmdDowO2xlZnQ6YXV0b31oZWFkZXIgLmhlYWRlci1uYXYg''@;'; + put 'put ''Lm5hdi1saW5rOmZpcnN0LW9mLXR5cGU6YmVmb3JlLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmZpcnN0LW9mLXR5cGU6YmVmb3Jle2xlZnQ6MH1oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmxhc3Qtb2YtdHlwZTphZnRlciwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGlu''@;'; + put 'put ''azpsYXN0LW9mLXR5cGU6YWZ0ZXJ7cmlnaHQ6MH1oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZTpmaXJzdC1vZi10eXBlOmJlZm9yZSxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZTpsYXN0LW9mLXR5cGU6YWZ0ZXIsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2''@;'; + put 'put ''LWxpbmsuYWN0aXZlOmZpcnN0LW9mLXR5cGU6YmVmb3JlLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZTpsYXN0LW9mLXR5cGU6YWZ0ZXJ7Y29udGVudDpub25lfWhlYWRlciAuc2V0dGluZ3MsaGVhZGVyIC5oZWFkZXItYWN0aW9ucywuaGVhZGVyIC5zZXR0aW5ncywuaGVh''@;'; + put 'put ''ZGVyIC5oZWFkZXItYWN0aW9uc3tmbGV4OjEgMCBhdXRvO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bj4uZHJvcGRvd24tdG9nZ2xl''@;'; + put 'put ''LC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bj4uZHJvcGRvd24tdG9nZ2xlLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bj4uZHJvcGRvd24tdG9nZ2xle3Bvc2l0aW9uOnJlbGF0aXZlO2xpbmUtaGVpZ2h0OjNyZW07aGVpZ2h0OjNyZW07b3V0bGluZS1vZmZzZXQ6LS4yNXJl''@;'; + put 'put ''bTtjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7b3BhY2l0eTouNjU7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLW5hdi1vcGFjaXR5LCAuNjUpfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZW5hYmxl''@;'; + put 'put ''ZDpob3ZlcixoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bj4uZHJvcGRvd24tdG9nZ2xlOmVuYWJsZWQ6aG92ZXIsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZW5hYmxlZDpob3ZlciwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+''@;'; + put 'put ''LmRyb3Bkb3duLXRvZ2dsZTplbmFibGVkOmhvdmVye29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItbmF2LWhvdmVyLW9wYWNpdHksIDEpfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWQsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4u''@;'; + put 'put ''ZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93''@;'; + put 'put ''ZWR9aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLGhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb246bm90KFtzaGFwZV49YW5nbGVd''@;'; + put 'put ''KSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNkcy1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSksaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjbHItaWNvbjpub3QoW3No''@;'; + put 'put ''YXBlXj1hbmdsZV0pLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNkcy1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSksLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb246bm90KFtz''@;'; + put 'put ''aGFwZV49YW5nbGVdKSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNs''@;'; + put 'put ''ci1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMXJlbTtyaWdodDoxLjJyZW19aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5u''@;'; + put 'put ''YXYtaWNvbiBjZHMtaWNvbltzaGFwZV49YW5nbGVdLGhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb25bc2hhcGVePWFuZ2xlXSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29u''@;'; + put 'put ''IGNkcy1pY29uW3NoYXBlXj1hbmdsZV0saGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjbHItaWNvbltzaGFwZV49YW5nbGVdLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNkcy1p''@;'; + put 'put ''Y29uW3NoYXBlXj1hbmdsZV0sLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb25bc2hhcGVePWFuZ2xlXSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbltz''@;'; + put 'put ''aGFwZV49YW5nbGVdLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNsci1pY29uW3NoYXBlXj1hbmdsZV17cmlnaHQ6LjZyZW07dG9wOjQ0JX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10''@;'; + put 'put ''ZXh0LGhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dn''@;'; + put 'put ''bGUubmF2LXRleHR7cGFkZGluZzowIDEuOHJlbSAwIDEuMnJlbX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0IGNkcy1pY29uW3NoYXBlXj1hbmdsZV0saGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtdGV4''@;'; + put 'put ''dCBjbHItaWNvbltzaGFwZV49YW5nbGVdLGhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQgY2RzLWljb25bc2hhcGVePWFuZ2xlXSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0''@;'; + put 'put ''IGNsci1pY29uW3NoYXBlXj1hbmdsZV0sLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQgY2RzLWljb25bc2hhcGVePWFuZ2xlXSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtdGV4dCBjbHItaWNvbltz''@;'; + put 'put ''aGFwZV49YW5nbGVdLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0IGNkcy1pY29uW3NoYXBlXj1hbmdsZV0sLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQgY2xyLWljb25b''@;'; + put 'put ''c2hhcGVePWFuZ2xlXXtyaWdodDoxLjJyZW19aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93''@;'; + put 'put ''biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29ue3dpZHRoOjNyZW07cGFkZGluZy1yaWdodDowfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duLmJvdHRvbS1yaWdodD4uZHJvcGRvd24t''@;'; + put 'put ''bWVudSxoZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bi5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bi5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24uYm90dG9tLWxlZnQ+''@;'; + put 'put ''LmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duLmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duLmJvdHRv''@;'; + put 'put ''bS1yaWdodD4uZHJvcGRvd24tbWVudSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnV7dG9wOjg1JX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bjpsYXN0LWNoaWxkLmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSxoZWFkZXIg''@;'; + put 'put ''LmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bjpsYXN0LWNoaWxkLmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd246bGFzdC1jaGlsZC5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3du''@;'; + put 'put ''Omxhc3QtY2hpbGQuYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51e3JpZ2h0Oi4xNXJlbX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tbWVudSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tbWVudSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJv''@;'; + put 'put ''cGRvd24gLmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi1tZW51e21hcmdpbi10b3A6LS4ycmVtO2xlZnQ6YXV0bztyaWdodDowfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIDpsYXN0LWNoaWxkLmRyb3Bkb3duLW1lbnUsaGVhZGVy''@;'; + put 'put ''IC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gOmxhc3QtY2hpbGQuZHJvcGRvd24tbWVudSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gOmxhc3QtY2hpbGQuZHJvcGRvd24tbWVudSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gOmxhc3QtY2hpbGQuZHJvcGRvd24tbWVu''@;'; + put 'put ''dXttYXJnaW4tcmlnaHQ6LjRyZW19aGVhZGVyIC5zZWFyY2gtYm94LGhlYWRlciAuc2VhcmNoLC5oZWFkZXIgLnNlYXJjaC1ib3gsLmhlYWRlciAuc2VhcmNoe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDAgYXV0bzttYXgtd2lkdGg6MTQuNHJlbTtwYWRkaW5nOjA7''@;'; + put 'put ''aGVpZ2h0OjNyZW07Y29sb3I6I2ZhZmFmYTtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IsICNmYWZhZmEpO29wYWNpdHk6LjY1O29wYWNpdHk6dmFyKC0tY2xyLWhlYWRlci1uYXYtb3BhY2l0eSwgLjY1KX1oZWFkZXIgLnNlYXJjaC1ib3g6ZW5hYmxlZDpob3ZlcixoZWFkZXIg''@;'; + put 'put ''LnNlYXJjaDplbmFibGVkOmhvdmVyLC5oZWFkZXIgLnNlYXJjaC1ib3g6ZW5hYmxlZDpob3ZlciwuaGVhZGVyIC5zZWFyY2g6ZW5hYmxlZDpob3ZlcntvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLW5hdi1ob3Zlci1vcGFjaXR5LCAxKX1oZWFkZXIgLnNlYXJjaC1ib3g6ZGlz''@;'; + put 'put ''YWJsZWQsaGVhZGVyIC5zZWFyY2g6ZGlzYWJsZWQsLmhlYWRlciAuc2VhcmNoLWJveDpkaXNhYmxlZCwuaGVhZGVyIC5zZWFyY2g6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfWhlYWRlciAuc2VhcmNoLWJveD4ubmF2LWljb24saGVhZGVyIC5zZWFyY2g+Lm5hdi1pY29uLC5oZWFkZXIg''@;'; + put 'put ''LnNlYXJjaC1ib3g+Lm5hdi1pY29uLC5oZWFkZXIgLnNlYXJjaD4ubmF2LWljb257bWFyZ2luOjAgLjNyZW0gLjE1cmVtIDEuMnJlbX1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwsaGVhZGVyIC5zZWFyY2ggbGFiZWwsLmhlYWRlciAuc2VhcmNoLWJveCBsYWJlbCwuaGVhZGVyIC5zZWFyY2gg''@;'; + put 'put ''bGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjNyZW07bGluZS1oZWlnaHQ6M3JlbTtwYWRkaW5nLWxlZnQ6MS4ycmVtO3RleHQtYWxpZ246Y2VudGVyfWhlYWRlciAuc2VhcmNoLWJveCBsYWJlbDpiZWZvcmUsaGVhZGVyIC5zZWFyY2ggbGFiZWw6YmVmb3JlLC5oZWFkZXIgLnNl''@;'; + put 'put ''YXJjaC1ib3ggbGFiZWw6YmVmb3JlLC5oZWFkZXIgLnNlYXJjaCBsYWJlbDpiZWZvcmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29udGVudDoiIjtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUy''@;'; + put 'put ''RiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMzYlMjAzNiUyMiUzRSUzQ2RlZnMlM0UlM0NzdHlsZSUzRS5jbHMtMSU3QmZpbGwlM0ElMjNmZmZmZmYlM0IlN0QlM0MlMkZzdHlsZSUzRSUzQyUyRmRlZnMlM0UlM0N0aXRsZSUzRVNlYXJjaCUz''@;'; + put 'put ''QyUyRnRpdGxlJTNFJTNDZyUyMGlkJTNEJTIyaWNvbnMlMjIlM0UlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGQlM0QlMjJNMTUlMkM0LjA1QTEwLjk1JTJDMTAuOTUlMkMwJTJDMSUyQzElMkM0LjA1JTJDMTUlMkMxMSUyQzExJTJDMCUyQzAlMkMxJTJDMTUlMkM0LjA1TTE1JTJD''@;'; + put 'put ''MkExMyUyQzEzJTJDMCUyQzElMkMwJTJDMjglMkMxNSUyQzEzJTJDMTMlMkMwJTJDMCUyQzAlMkMxNSUyQzJaJTIyJTJGJTNFJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xzLTElMjIlMjAlMjBkJTNEJTIyTTMzLjcxJTJDMzIuMjlsLTcuMzctNy40Mi0xLjQyJTJDMS40MSUyQzcuMzclMkM3LjQy''@;'; + put 'put ''YTElMkMxJTJDMCUyQzElMkMwJTJDMS40Mi0xLjQxWiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MXJlbTt3aWR0aDoxcmVtO21hcmdpbjoxcmVt''@;'; + put 'put ''IDAgMDt2ZXJ0aWNhbC1hbGlnbjp0b3B9aGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsIGlucHV0LGhlYWRlciAuc2VhcmNoIGxhYmVsIGlucHV0LC5oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwgaW5wdXQsLmhlYWRlciAuc2VhcmNoIGxhYmVsIGlucHV0e2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJn''@;'; + put 'put ''aW46LjlyZW0gMH1oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XSxoZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdLC5oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XSwuaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XXtib3JkZXI6MDtiYWNrZ3Jv''@;'; + put 'put ''dW5kOjAgMDtjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7cGFkZGluZzowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX1oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XTpmb2N1cyxoZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRb''@;'; + put 'put ''dHlwZT10ZXh0XTphY3RpdmUsaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XTpmb2N1cyxoZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdOmFjdGl2ZSwuaGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsLmhlYWRlciAuc2VhcmNoLWJveCBpbnB1dFt0''@;'; + put 'put ''eXBlPXRleHRdOmFjdGl2ZSwuaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XTpmb2N1cywuaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XTphY3RpdmV7YmFja2dyb3VuZDowIDB9aGVhZGVyIC5icmFuZGluZysuc2VhcmNoLGhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaC1ib3gs''@;'; + put 'put ''LmhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaCwuaGVhZGVyIC5icmFuZGluZysuc2VhcmNoLWJveHtwb3NpdGlvbjpyZWxhdGl2ZX1oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2g6YWZ0ZXIsaGVhZGVyIC5icmFuZGluZysuc2VhcmNoLWJveDphZnRlciwuaGVhZGVyIC5icmFuZGluZysuc2VhcmNo''@;'; + put 'put ''OmFmdGVyLC5oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2gtYm94OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiI7YmFja2dyb3VuZDojZmFmYWZhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWhlYWRlci1mb250LWNvbG9yLCAjZmFmYWZhKTtvcGFj''@;'; + put 'put ''aXR5OnZhcigtLWNsci1oZWFkZXItZGl2aWRlci1vcGFjaXR5LCAuMTUpO29wYWNpdHk6LjE1O2hlaWdodDoycmVtO3dpZHRoOi4wNXJlbTt3aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO3RvcDouNXJlbTtsZWZ0OjB9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13''@;'; + put 'put ''aWR0aDo3NjhweCl7aGVhZGVyIC5zZWFyY2gtYm94LGhlYWRlciAuc2VhcmNoLC5oZWFkZXIgLnNlYXJjaC1ib3gsLmhlYWRlciAuc2VhcmNoe2ZsZXg6MSAwIGF1dG87anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21heC13aWR0aDpub25lfWhlYWRlciAuc2VhcmNoLWJveCBsYWJlbCxoZWFk''@;'; + put 'put ''ZXIgLnNlYXJjaCBsYWJlbCwuaGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsLC5oZWFkZXIgLnNlYXJjaCBsYWJlbHtwYWRkaW5nOjA7d2lkdGg6M3JlbX1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWw6YmVmb3JlLGhlYWRlciAuc2VhcmNoIGxhYmVsOmJlZm9yZSwuaGVhZGVyIC5zZWFyY2gtYm94''@;'; + put 'put ''IGxhYmVsOmJlZm9yZSwuaGVhZGVyIC5zZWFyY2ggbGFiZWw6YmVmb3Jle2xlZnQ6MXJlbX1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwgaW5wdXQsaGVhZGVyIC5zZWFyY2ggbGFiZWwgaW5wdXQsLmhlYWRlciAuc2VhcmNoLWJveCBsYWJlbCBpbnB1dCwuaGVhZGVyIC5zZWFyY2ggbGFiZWwg''@;'; + put 'put ''aW5wdXR7ZGlzcGxheTpub25lfWhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaDphZnRlcixoZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2gtYm94OmFmdGVyLC5oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2g6YWZ0ZXIsLmhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaC1ib3g6YWZ0ZXJ7Y29udGVudDpub25l''@;'; + put 'put ''fWhlYWRlciAuc2VhcmNoLWJveCsuc2V0dGluZ3MsaGVhZGVyIC5zZWFyY2gtYm94Ky5oZWFkZXItYWN0aW9ucyxoZWFkZXIgLnNlYXJjaCsuc2V0dGluZ3MsaGVhZGVyIC5zZWFyY2grLmhlYWRlci1hY3Rpb25zLC5oZWFkZXIgLnNlYXJjaC1ib3grLnNldHRpbmdzLC5oZWFkZXIgLnNlYXJj''@;'; + put 'put ''aC1ib3grLmhlYWRlci1hY3Rpb25zLC5oZWFkZXIgLnNlYXJjaCsuc2V0dGluZ3MsLmhlYWRlciAuc2VhcmNoKy5oZWFkZXItYWN0aW9uc3twb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjAgMCBhdXRvfWhlYWRlciAuc2VhcmNoLWJveCsuc2V0dGluZ3M6YWZ0ZXIsaGVhZGVyIC5zZWFyY2gtYm94''@;'; + put 'put ''Ky5oZWFkZXItYWN0aW9uczphZnRlcixoZWFkZXIgLnNlYXJjaCsuc2V0dGluZ3M6YWZ0ZXIsaGVhZGVyIC5zZWFyY2grLmhlYWRlci1hY3Rpb25zOmFmdGVyLC5oZWFkZXIgLnNlYXJjaC1ib3grLnNldHRpbmdzOmFmdGVyLC5oZWFkZXIgLnNlYXJjaC1ib3grLmhlYWRlci1hY3Rpb25zOmFm''@;'; + put 'put ''dGVyLC5oZWFkZXIgLnNlYXJjaCsuc2V0dGluZ3M6YWZ0ZXIsLmhlYWRlciAuc2VhcmNoKy5oZWFkZXItYWN0aW9uczphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2JhY2tncm91bmQ6I2ZhZmFmYTtiYWNrZ3JvdW5kOnZhcigtLWNsci1o''@;'; + put 'put ''ZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLWRpdmlkZXItb3BhY2l0eSwgLjE1KTtvcGFjaXR5Oi4xNTtoZWlnaHQ6MnJlbTt3aWR0aDouMDVyZW07d2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTt0b3A6LjVyZW07''@;'; + put 'put ''bGVmdDowfX1hLmxpbmstbm9ybWFsOmxpbmt7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItbGluay1jb2xvciwgIzAwNzJhMyk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9YS5saW5rLWhvdmVyZWQ6bGlua3tjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1saW5rLWhvdmVyLWNvbG9y''@;'; + put 'put ''LCAjMDA3MmEzKTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWEubGluay1jbGlja2VkOmxpbmt7Y29sb3I6IzllNTdiYztjb2xvcjp2YXIoLS1jbHItbGluay1hY3RpdmUtY29sb3IsICM5ZTU3YmMpO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9YS5saW5rLXZpc2l0ZWQ6bGlua3tjb2xv''@;'; + put 'put ''cjojNTY1OWI4O2NvbG9yOnZhcigtLWNsci1saW5rLXZpc2l0ZWQtY29sb3IsICM1NjU5YjgpO3RleHQtZGVjb3JhdGlvbjpub25lfS5uYXZ7ZGlzcGxheTpmbGV4O2hlaWdodDoxLjhyZW07bGlzdC1zdHlsZS10eXBlOm5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjowO3dpZHRoOjEw''@;'; + put 'put ''MCU7d2hpdGUtc3BhY2U6bm93cmFwO2JveC1zaGFkb3c6MCAtLjA1cmVtICNjY2MgaW5zZXQ7Ym94LXNoYWRvdzowIC0uMDVyZW0gMCB2YXIoLS1jbHItbmF2LWJveC1zaGFkb3ctY29sb3IsICNjY2NjY2MpIGluc2V0fS5uYXYgLm5hdi1pdGVte2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdp''@;'; + put 'put ''bi1yaWdodDoxLjJyZW19Lm5hdiAubmF2LWl0ZW0uYWN0aXZlPi5uYXYtbGlua3tjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1uYXYtbGluay1hY3RpdmUtY29sb3IsIGJsYWNrKTtib3gtc2hhZG93OjAgLS4wNXJlbSAjY2NjIGluc2V0O2JveC1zaGFkb3c6MCAtLjA1cmVtIDAgdmFyKC0t''@;'; + put 'put ''Y2xyLW5hdi1ib3gtc2hhZG93LWNvbG9yLCAjY2NjY2NjKSBpbnNldH0ubmF2IC5uYXYtbGlua3tjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1uYXYtbGluay1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItbmF2''@;'; + put 'put ''LWxpbmstZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuOHJlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjAgLjE1cmVtO2JveC1zaGFkb3c6bm9uZX0ubmF2IC5uYXYtbGluay5idG57dGV4dC10cmFuc2Zvcm06bm9uZTttYXJnaW46''@;'; + put 'put ''MDttYXJnaW4tYm90dG9tOi0uMDVyZW07Ym9yZGVyLXJhZGl1czowfS5uYXYgLm5hdi1saW5rOmhvdmVyLC5uYXYgLm5hdi1saW5rOmZvY3VzLC5uYXYgLm5hdi1saW5rOmFjdGl2ZXtjb2xvcjppbmhlcml0fS5uYXYgLm5hdi1saW5rOmhvdmVyLC5uYXYgLm5hdi1saW5rLmFjdGl2ZXtib3gt''@;'; + put 'put ''c2hhZG93OjAgLS4xNXJlbSAjMDA3MmEzIGluc2V0O2JveC1zaGFkb3c6MCAtLjE1cmVtIDAgdmFyKC0tY2xyLW5hdi1hY3RpdmUtYm94LXNoYWRvdy1jb2xvciwgIzAwNzJhMykgaW5zZXQ7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4ycyBlYXNlLWlufS5uYXYgLm5hdi1saW5rOmhvdmVyLC5u''@;'; + put 'put ''YXYgLm5hdi1saW5rOmZvY3VzLC5uYXYgLm5hdi1saW5rOmFjdGl2ZSwubmF2IC5uYXYtbGluay5hY3RpdmV7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm5hdiAubmF2LWxpbmsuYWN0aXZle2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLW5hdi1saW5rLWFjdGl2ZS1jb2xvciwgYmxhY2spO2Zv''@;'; + put 'put ''bnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItbmF2LWxpbmstYWN0aXZlLWZvbnQtd2VpZ2h0LCA0MDApfS5uYXYgLm5hdi1saW5rLm5hdi1pdGVte21hcmdpbi1yaWdodDoxLjJyZW19OnJvb3R7LS1jbHItc3VibmF2LWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFs''@;'; + put 'put ''LTApOy0tY2xyLW5hdi1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCl9LnN1Yi1uYXYsLnN1Ym5hdntkaXNwbGF5OmZsZXg7Ym94LXNoYWRvdzowIC0uMDVyZW0gI2NjYyBpbnNldDtib3gtc2hhZG93OjAgLS4wNXJlbSAwIHZhcigtLWNsci1uYXYtYm94LXNo''@;'; + put 'put ''YWRvdy1jb2xvciwgI2NjY2NjYykgaW5zZXQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zdWJuYXYtYmctY29sb3IsIHdoaXRlKTtoZWlnaHQ6MS44cmVtfS5z''@;'; + put 'put ''dWItbmF2IC5uYXYsLnN1Ym5hdiAubmF2e2ZsZXg6MSAxIGF1dG87cGFkZGluZy1sZWZ0OjEuMnJlbX0uc3ViLW5hdiBhc2lkZSwuc3VibmF2IGFzaWRle2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MS44cmVtO3BhZGRpbmc6MCAxLjJyZW19''@;'; + put 'put ''LnN1Yi1uYXYgYXNpZGU+Omxhc3QtY2hpbGQsLnN1Ym5hdiBhc2lkZT46bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MDtwYWRkaW5nLXJpZ2h0OjB9OnJvb3R7LS1jbHItc2lkZW5hdi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1zaWRlbmF2LWJvcmRl''@;'; + put 'put ''ci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoKTstLWNsci1zaWRlbmF2LWxpbmstaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci1zaWRlbmF2LWxpbmstYWN0aXZlLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xy''@;'; + put 'put ''LXNpZGVuYXYtbGluay1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1zZWxlY3Rpb24tY29sb3IpOy0tY2xyLXNpZGVuYXYtbGluay1hY3RpdmUtYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cyk7LS1jbHItc2lkZW5hdi1oZWFkZXItY29sb3I6dmFy''@;'; + put 'put ''KC0tY2xyLWg2LWNvbG9yKTstLWNsci1zaWRlbmF2LWhlYWRlci1mb250LXdlaWdodDp2YXIoLS1jbHItaDYtZm9udC13ZWlnaHQpOy0tY2xyLXNpZGVuYXYtaGVhZGVyLWZvbnQtZmFtaWx5OnZhcigtLWNsci1oNi1mb250LWZhbWlseSk7LS1jbHItc2lkZW5hdi1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''cDEtY29sb3IpOy0tY2xyLXNpZGVuYXYtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLXAxLWZvbnQtd2VpZ2h0KX0uc2lkZW5hdntsaW5lLWhlaWdodDoxLjJyZW07bWF4LXdpZHRoOjE1LjZyZW07bWluLXdpZHRoOjEwLjhyZW07d2lkdGg6MTglO2JvcmRlci1yaWdodDouMDVyZW0gc29saWQgI2Nj''@;'; + put 'put ''YztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5zaWRlbmF2IC5zaWRlbmF2LWNvbnRlbnR7ZmxleDoxIDEgYXV0bztvdmVyZmxvdy14OmhpZGRlbjtwYWRkaW5nLWJvdHRvbToxLjJyZW19LnNpZGVuYXYgLnNpZGVuYXYtY29udGVudCAubmF2LWxpbmt7Ym9yZGVyLXJhZGl1''@;'; + put 'put ''czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXNpZGVuYXYtbGluay1hY3RpdmUtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFk''@;'; + put 'put ''aXVzOnZhcigtLWNsci1zaWRlbmF2LWxpbmstYWN0aXZlLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTt3aWR0aDoxMDAlfS5zaWRlbmF2IC5zaWRlbmF2LWNvbnRlbnQ+''@;'; + put 'put ''Lm5hdi1saW5re21hcmdpbjoxLjJyZW0gMCAwIDEuNXJlbTtwYWRkaW5nLWxlZnQ6LjZyZW07Y29sb3I6IzMzMztjb2xvcjp2YXIoLS1jbHItc2lkZW5hdi1oZWFkZXItY29sb3IsICMzMzMzMzMpO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdodDp2YXIoLS1jbHItc2lkZW5hdi1oZWFkZXIt''@;'; + put 'put ''Zm9udC13ZWlnaHQsIDUwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1zaWRlbmF2LWhlYWRlci1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhl''@;'; + put 'put ''bHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZTouN3JlbTtsaW5lLWhlaWdodDoxLjJyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5zaWRlbmF2IC5zaWRlbmF2LWNvbnRlbnQ+Lm5hdi1saW5rOmhvdmVye2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZh''@;'; + put 'put ''cigtLWNsci1zaWRlbmF2LWxpbmstaG92ZXItY29sb3IsICNlOGU4ZTgpfS5zaWRlbmF2IC5zaWRlbmF2LWNvbnRlbnQ+Lm5hdi1saW5rLmFjdGl2ZXtiYWNrZ3JvdW5kOiNkOGUzZTk7YmFja2dyb3VuZDp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWFjdGl2ZS1iZy1jb2xvciwgI2Q4ZTNlOSk7''@;'; + put 'put ''Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWFjdGl2ZS1jb2xvciwgYmxhY2spfS5zaWRlbmF2IC5uYXYtZ3JvdXB7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItc2lkZW5hdi1jb2xvciwgIzY2NjY2Nik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigt''@;'; + put 'put ''LWNsci1zaWRlbmF2LWZvbnQtd2VpZ2h0LCA0MDApO2ZvbnQtc2l6ZTouN3JlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bWFyZ2luLXRvcDoxLjJyZW07d2lkdGg6MTAwJX0uc2lkZW5hdiAubmF2LWdyb3VwIC5uYXYtbGlzdCwuc2lkZW5hdiAubmF2LWdyb3VwIGxhYmVse3BhZGRpbmc6MCAw''@;'; + put 'put ''IDAgMS44cmVtO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7bWFyZ2luOjAgLjNyZW19LnNpZGVuYXYgLm5hdi1ncm91cCAubmF2LWxpc3R7bGlzdC1zdHlsZTpub25lO21hcmdpbi10b3A6MH0uc2lkZW5hdiAubmF2LWdyb3VwIC5uYXYtbGlzdCAubmF2''@;'; + put 'put ''LWxpbmt7bGluZS1oZWlnaHQ6LjhyZW07cGFkZGluZzouMnJlbSAwIC4ycmVtIC42cmVtfS5zaWRlbmF2IC5uYXYtZ3JvdXAgLm5hdi1saXN0IC5uYXYtbGluazpob3ZlcntiYWNrZ3JvdW5kOiNlOGU4ZTg7YmFja2dyb3VuZDp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWhvdmVyLWNvbG9yLCAj''@;'; + put 'put ''ZThlOGU4KX0uc2lkZW5hdiAubmF2LWdyb3VwIC5uYXYtbGlzdCAubmF2LWxpbmsuYWN0aXZle2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1zaWRlbmF2LWxpbmstYWN0aXZlLWJnLWNvbG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1zaWRl''@;'; + put 'put ''bmF2LWxpbmstYWN0aXZlLWNvbG9yLCBibGFjayl9LnNpZGVuYXYgLm5hdi1ncm91cCBsYWJlbHtjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci1zaWRlbmF2LWhlYWRlci1jb2xvciwgIzMzMzMzMyk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1zaWRlbmF2LWhlYWRl''@;'; + put 'put ''ci1mb250LXdlaWdodCwgNTAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLXNpZGVuYXYtaGVhZGVyLWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAi''@;'; + put 'put ''SGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWx9LnNpZGVuYXYgLm5hdi1ncm91cCBpbnB1dFt0eXBlPWNoZWNrYm94XXtwb3NpdGlvbjphYnNvbHV0ZTtjbGlwOnJlY3QoMXB4''@;'; + put 'put ''LDFweCwxcHgsMXB4KTtjbGlwLXBhdGg6aW5zZXQoNTAlKTtwYWRkaW5nOjA7Ym9yZGVyOjA7aGVpZ2h0OjFweDt3aWR0aDoxcHg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0b3A6MDtsZWZ0OjB9LnNpZGVuYXYgLm5hdi1ncm91cCBpbnB1dFt0eXBlPWNoZWNrYm94XTpm''@;'; + put 'put ''b2N1cytsYWJlbHtvdXRsaW5lOiMzYjk5ZmMgYXV0byAuMjVyZW19LnNpZGVuYXYgLmNvbGxhcHNpYmxlIGxhYmVse3BhZGRpbmc6MCAwIDAgMS4zcmVtfS5zaWRlbmF2IC5jb2xsYXBzaWJsZSBsYWJlbDphZnRlcntjb250ZW50OiIiO2Zsb2F0OmxlZnQ7aGVpZ2h0Oi41cmVtO3dpZHRoOi41''@;'; + put 'put ''cmVtO3RyYW5zZm9ybTp0cmFuc2xhdGUoLS40cmVtKSB0cmFuc2xhdGVZKC4zNXJlbSk7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUy''@;'; + put 'put ''MHZpZXdCb3glM0QlMjIwJTIwMCUyMDEyJTIwMTIlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDc3R5bGUlM0UuY2xzLTElN0JmaWxsJTNBJTIzOWE5YTlhJTNCJTdEJTNDJTJGc3R5bGUlM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZk''@;'; + put 'put ''ZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTNDdGl0bGUlM0VDYXJldCUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xzLTElMjIlMjBkJTNEJTIyTTYlMkM5TDEuMiUyQzQuMmEwLjY4JTJDMC42OCUyQzAlMkMwJTJDMSUyQzEtMUw2JTJDNy4wOCUyQzku''@;'; + put 'put ''ODQlMkMzLjI0YTAuNjglMkMwLjY4JTJDMCUyQzElMkMxJTJDMSUyQzFaJTIyJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjowfS5zaWRlbmF2IC5j''@;'; + put 'put ''b2xsYXBzaWJsZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2Vkfi5uYXYtbGlzdCwuc2lkZW5hdiAuY29sbGFwc2libGUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZH51bHtoZWlnaHQ6MDtkaXNwbGF5Om5vbmV9LnNpZGVuYXYgLmNvbGxhcHNpYmxlIGlucHV0W3R5cGU9Y2hlY2ti''@;'; + put 'put ''b3hdfi5uYXYtbGlzdCwuc2lkZW5hdiAuY29sbGFwc2libGUgaW5wdXRbdHlwZT1jaGVja2JveF1+dWx7aGVpZ2h0OmF1dG99LnNpZGVuYXYgLmNvbGxhcHNpYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWR+bGFiZWw6YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpIHRyYW5z''@;'; + put 'put ''bGF0ZSgtLjM1cmVtKSB0cmFuc2xhdGVZKC0uNHJlbSl9OnJvb3R7LS1jbHItdmVydGljYWwtbmF2LWRpdmlkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci12ZXJ0aWNhbC1uYXYtaWNvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAp''@;'; + put 'put ''Oy0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItdmVydGljYWwtbmF2LWJnLWNvbG9yOnZhcigtLWNsci1j''@;'; + put 'put ''b2xvci1uZXV0cmFsLTIwMCk7LS1jbHItdmVydGljYWwtbmF2LWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci12ZXJ0aWNhbC1uYXYtaG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci12ZXJ0aWNhbC1uYXYtdG9n''@;'; + put 'put ''Z2xlLWljb24tY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItdmVydGljYWwtbmF2LXRyaWdnZXItZGl2aWRlci1ib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCk7LS1jbHItdmVydGljYWwtbmF2LXRyaWdnZXItZGl2aWRlci1ib3JkZXIt''@;'; + put 'put ''Y29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci12ZXJ0aWNhbC1uYXYtaGVhZGVyLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1wNC1mb250LXdlaWdodCl9LmNsci12ZXJ0aWNhbC1uYXZ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nLXRvcDou''@;'; + put 'put ''OXJlbTt3aWR0aDoxMnJlbTttaW4td2lkdGg6Mi40cmVtO2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYmctY29sb3IsICNlOGU4ZTgpO3dpbGwtY2hhbmdlOndpZHRoO3RyYW5zaXRpb246d2lkdGggLjJzIGVhc2UtaW4t''@;'; + put 'put ''b3V0fS5jbHItdmVydGljYWwtbmF2IC5uYXYtZGl2aWRlcntib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4wNXJl''@;'; + put 'put ''bTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLXdpZHRoLCAuMDVyZW0pO21hcmdpbjouNnJlbSAwfS5jbHItdmVydGljYWwtbmF2IC5uYXYtY29udGVudHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MSAx''@;'; + put 'put ''IGF1dG87b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVufS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXB7ZGlzcGxheTpibG9jaztmbGV4OjAgMCBhdXRvO2hlaWdodDphdXRvO21pbi1oZWlnaHQ6MS44cmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudHtk''@;'; + put 'put ''aXNwbGF5OmZsZXg7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tY29sb3IsICM2NjY2NjYpfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudC5hY3RpdmV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0''@;'; + put 'put ''aXZlLWNvbG9yLCAjNjY2NjY2KTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWFjdGl2ZS1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1sZWZ0Oi4xNXJlbSBzb2xpZCB2YXIoLS1jbHItbmF2LWFjdGl2ZS1ib3gtc2hhZG93LWNv''@;'; + put 'put ''bG9yKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnQuYWN0aXZlIC5uYXYtaWNvbntmaWxsOiMwMDcyYTM7ZmlsbDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWljb24tYWN0aXZlLWNvbG9yLCAjMDA3MmEzKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnQ6''@;'; + put 'put ''aG92ZXJ7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yLCAjNjY2NjY2KTtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWhvdmVyLWJnLWNvbG9yLCAjY2NjY2NjKTt0ZXh0''@;'; + put 'put ''LWRlY29yYXRpb246bm9uZX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnQgLm5hdi1saW5re2ZsZXg6MSAxIGF1dG87cGFkZGluZy1sZWZ0OjA7bWluLXdpZHRoOjB9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtaWNvbnttYXJnaW4tbGVmdDox''@;'; + put 'put ''LjJyZW19LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtdGV4dHtwYWRkaW5nLWxlZnQ6MS4ycmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWljb24rLm5hdi10ZXh0e3BhZGRpbmctbGVmdDowfS5jbHItdmVydGljYWwtbmF2IC5u''@;'; + put 'put ''YXYtZ3JvdXAtY29udGVudCAubmF2LWxpbmsrLm5hdi1ncm91cC10ZXh0e2Rpc3BsYXk6bm9uZX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIsLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2Vye2ZsZXg6MCAwIDEuOHJlbTtib3JkZXI6MDtoZWlnaHQ6MS44cmVtO3Bh''@;'; + put 'put ''ZGRpbmc6MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO291dGxpbmUtb2Zmc2V0Oi0uMjVyZW19LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyIGNkcy1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV0sLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2Vy''@;'; + put 'put ''IGNsci1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV0sLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2VyIGNkcy1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV0sLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2VyIGNsci1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV17Y29s''@;'; + put 'put ''b3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXRvZ2dsZS1pY29uLWNvbG9yLCBibGFjayl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2Vye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7aGVpZ2h0OjEuOHJl''@;'; + put 'put ''bTttYXJnaW4tdG9wOi0uOXJlbX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLXRyaWdnZXJ7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87Y29sb3I6aW5oZXJpdDtvdmVyZmxvdzpoaWRkZW47dGV4dC1hbGlnbjpsZWZ0fS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtdHJpZ2dl''@;'; + put 'put ''ciAubmF2LWdyb3VwLXRyaWdnZXItaWNvbntmbGV4LXNocmluazowO3dpZHRoOi44cmVtO2FsaWduLXNlbGY6Y2VudGVyO21hcmdpbi1yaWdodDouNXJlbTt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZS1pbi1vdXR9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyLWljb257bWFyZ2luLWxl''@;'; + put 'put ''ZnQ6YXV0bzttYXJnaW4tcmlnaHQ6LjVyZW07dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0fS5jbHItdmVydGljYWwtbmF2IC5uYXYtdHJpZ2dlcisubmF2LWNvbnRlbnR7Ym9yZGVyLXRvcC1jb2xvcjojY2NjO2JvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10''@;'; + put 'put ''cmlnZ2VyLWRpdmlkZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6LjA1cmVtO2JvcmRlci10b3Atd2lkdGg6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLXdpZHRoLCAuMDVyZW0pO3Bh''@;'; + put 'put ''ZGRpbmctdG9wOi42cmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtdGV4dCwuY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmt7aGVpZ2h0OjEuOHJlbTtwYWRkaW5nOjAgLjZyZW0gMCAxLjJyZW07bGluZS1oZWlnaHQ6MS44cmVtO291dGxpbmUtb2Zmc2V0Oi0uMjVyZW19LmNsci12''@;'; + put 'put ''ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10ZXh0LC5jbHItdmVydGljYWwtbmF2IC5uYXYtdGV4dHtmbGV4OjEgMSBhdXRvO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmt7ZGlzcGxheTpm''@;'; + put 'put ''bGV4O2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWNvbG9yLCAjNjY2NjY2KX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmsuYWN0aXZle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2''@;'; + put 'put ''Nik7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1hY3RpdmUtYmctY29sb3IsIHdoaXRlKTtib3JkZXItbGVmdDouMTVyZW0gc29saWQgdmFyKC0tY2xyLW5hdi1hY3RpdmUtYm94LXNoYWRvdy1jb2xvcil9LmNsci12ZXJ0aWNh''@;'; + put 'put ''bC1uYXYgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb257ZmlsbDojMDA3MmEzO2ZpbGw6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLWFjdGl2ZS1jb2xvciwgIzAwNzJhMyl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5rOmhvdmVye2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZl''@;'; + put 'put ''cnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1ob3Zlci1iZy1jb2xvciwgI2NjY2NjYyk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmNsci12ZXJ0aWNhbC1uYXYg''@;'; + put 'put ''Lm5hdi1oZWFkZXJ7cGFkZGluZzowIC42cmVtIDAgMS4ycmVtO2ZvbnQtc2l6ZTouNnJlbTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1oZWFkZXItZm9udC13ZWlnaHQsIDYwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEu''@;'; + put 'put ''OHJlbX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWljb257ZmxleDowIDAgLjhyZW07YWxpZ24tc2VsZjpjZW50ZXI7aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO21pbi1oZWlnaHQ6LjhyZW07bWluLXdpZHRoOi44cmVtO21hcmdpbi1yaWdodDouM3JlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9''@;'; + put 'put ''LmNsci12ZXJ0aWNhbC1uYXYgY2xyLXZlcnRpY2FsLW5hdi1ncm91cC1jaGlsZHJlbntkaXNwbGF5OmJsb2NrfS5jbHItdmVydGljYWwtbmF2IC5uYXYtYnRue2ZsZXg6MSAxIGF1dG87cGFkZGluZzowO21hcmdpbjowO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO291''@;'; + put 'put ''dGxpbmUtb2Zmc2V0Oi0uMjVyZW19LmNsci12ZXJ0aWNhbC1uYXY+Lm5hdi1saW5rLC5jbHItdmVydGljYWwtbmF2IC5uYXYtY29udGVudD4ubmF2LWxpbmt7ZmxleDowIDAgMS44cmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtbGluaysubmF2LWdyb3VwLXRyaWdnZXJ7ZmxleDowIDAgMS44''@;'; + put 'put ''cmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtbGluaysubmF2LWdyb3VwLXRyaWdnZXIgLm5hdi1ncm91cC10ZXh0e2Rpc3BsYXk6bm9uZX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWljb24rLm5hdi1ncm91cC10ZXh0e3BhZGRpbmctbGVmdDowfS5jbHItdmVydGljYWwtbmF2Lmhhcy1uYXYt''@;'; + put 'put ''Z3JvdXBzIC5uYXYtbGluaywuY2xyLXZlcnRpY2FsLW5hdi5oYXMtbmF2LWdyb3VwcyAubmF2LWdyb3VwIC5uYXYtZ3JvdXAtdGV4dCwuY2xyLXZlcnRpY2FsLW5hdi5oYXMtbmF2LWdyb3VwcyAubmF2LWdyb3VwIC5uYXYtZ3JvdXAtdHJpZ2dlcntmb250LXdlaWdodDo2MDB9LmNsci12ZXJ0''@;'; + put 'put ''aWNhbC1uYXYuaGFzLW5hdi1ncm91cHMgLm5hdi1ncm91cC1jaGlsZHJlbiAubmF2LWxpbmt7Zm9udC13ZWlnaHQ6NDAwfS5jbHItdmVydGljYWwtbmF2Lmhhcy1pY29ucyAubmF2LWdyb3VwLWNoaWxkcmVuIC5uYXYtbGlua3twYWRkaW5nLWxlZnQ6Mi4zcmVtfS5jbHItdmVydGljYWwtbmF2''@;'; + put 'put ''IC5uYXYtZ3JvdXAuYWN0aXZlOm5vdCguaXMtZXhwYW5kZWQpIC5uYXYtZ3JvdXAtY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWFjdGl2ZS1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1sZWZ0Oi4xNXJlbSBzb2xp''@;'; + put 'put ''ZCB2YXIoLS1jbHItbmF2LWFjdGl2ZS1ib3gtc2hhZG93LWNvbG9yKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLmFjdGl2ZTpub3QoLmlzLWV4cGFuZGVkKSAubmF2LWdyb3VwLWNvbnRlbnQgLm5hdi1pY29ue2ZpbGw6IzAwNzJhMztmaWxsOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYt''@;'; + put 'put ''aWNvbi1hY3RpdmUtY29sb3IsICMwMDcyYTMpfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWxpbmsuYWN0aXZlfi5uYXYtZ3JvdXAtdHJpZ2dlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWFj''@;'; + put 'put ''dGl2ZS1iZy1jb2xvciwgd2hpdGUpfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWxpbms6aG92ZXJ+Lm5hdi1ncm91cC10cmlnZ2Vye2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaG92ZXItYmct''@;'; + put 'put ''Y29sb3IsICNjY2NjY2MpfS5jbHItdmVydGljYWwtbmF2Om5vdCguaXMtY29sbGFwc2VkKSAubmF2LWxpbmsrLm5hdi1ncm91cC10cmlnZ2Vye2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3Mq''@;'; + put 'put ''PW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWR7d2lkdGg6Mi40cmVtO21pbi13aWR0aDoyLjRyZW07Y3Vyc29yOnBvaW50ZXJ9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4t''@;'; + put 'put ''aGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQgLm5hdi10cmlnZ2Vye21hcmdpbi1yaWdodDouMTVyZW19Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAu''@;'; + put 'put ''Y2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQgLm5hdi1pY29ue21hcmdpbjowO21hcmdpbi1sZWZ0Oi44cmVtfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1u''@;'; + put 'put ''YXYuaXMtY29sbGFwc2VkIC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWxpbmt7ZmxleDowIDAgMi40cmVtfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMt''@;'; + put 'put ''Y29sbGFwc2VkIC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWxpbmt+Lm5hdi1ncm91cC10cmlnZ2Vye2ZsZXg6MCAwIC44cmVtO3RyYW5zZm9ybTp0cmFuc2xhdGUoLS44cmVtKTtwb2ludGVyLWV2ZW50czpub25lfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1l''@;'; + put 'put ''bnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtbGluaywubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5j''@;'; + put 'put ''bHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWdyb3VwLXRyaWdnZXJ7cGFkZGluZzowfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29s''@;'; + put 'put ''bGFwc2VkIC5uYXYtZ3JvdXAtdHJpZ2dlcntwYWRkaW5nLWxlZnQ6MH0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWdyb3Vw''@;'; + put 'put ''LXRyaWdnZXIgY2xyLWljb24ubmF2LWdyb3VwLXRyaWdnZXItaWNvbntoZWlnaHQ6MS44cmVtO3dpZHRoOi41cmVtO21hcmdpbi1sZWZ0Oi4xNXJlbTttYXJnaW4tcmlnaHQ6MH0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Bl''@;'; + put 'put ''bi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWdyb3VwLXRyaWdnZXIgY2RzLWljb24ubmF2LWdyb3VwLXRyaWdnZXItaWNvbnt3aWR0aDouNXJlbX0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90''@;'; + put 'put ''KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWdyb3VwLC5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0''@;'; + put 'put ''aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtbGlua3tkaXNwbGF5Om5vbmV9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQuaGFzLWlj''@;'; + put 'put ''b25zIC5uYXYtZ3JvdXB7ZGlzcGxheTpibG9ja30ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZC5oYXMtaWNvbnMgLm5hdi1saW5re2Rp''@;'; + put 'put ''c3BsYXk6ZmxleH0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZC5oYXMtaWNvbnMgLm5hdi1ncm91cC10ZXh0LC5tYWluLWNvbnRhaW5l''@;'; + put 'put ''cjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkLmhhcy1pY29ucyAubmF2LXRleHR7cG9zaXRpb246YWJzb2x1dGU7Y2xpcDpyZWN0KDFweCwxcHgsMXB4LDFweCk7''@;'; + put 'put ''Y2xpcC1wYXRoOmluc2V0KDUwJSk7cGFkZGluZzowO2JvcmRlcjowO2hlaWdodDoxcHg7d2lkdGg6MXB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dG9wOjA7bGVmdDowfS5jbHItdmVydGljYWwtbmF2Lm5hdi10cmlnZ2VyLS1ib3R0b20gLm5hdi10cmlnZ2Vye29yZGVy''@;'; + put 'put ''OjI7bWFyZ2luLXRvcDowfS5jbHItdmVydGljYWwtbmF2Lm5hdi10cmlnZ2VyLS1ib3R0b20gLm5hdi10cmlnZ2VyKy5uYXYtY29udGVudHtib3JkZXItYm90dG9tLWNvbG9yOiNjY2M7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXRyaWdnZXItZGl2aWRlci1i''@;'; + put 'put ''b3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItdmVydGljYWwtbmF2LXRyaWdnZXItZGl2aWRlci1ib3JkZXItd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXRv''@;'; + put 'put ''cDpub25lO3BhZGRpbmctdG9wOjB9OnJvb3R7LS1jbHItc2xpZGluZy1wYW5lbC10ZXh0LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItbmF2LWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci1yZXNwb25zaXZlLW5hdi1o''@;'; + put 'put ''b3Zlci1iZzp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1yZXNwb25zaXZlLW5hdi10cmlnZ2VyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLXJlc3BvbnNpdmUtbmF2LXRyaWdnZXItYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRl''@;'; + put 'put ''cnJhZGl1cyk7LS1jbHItcmVzcG9uc2l2ZS1uYXYtaGFtYnVyZ2VyLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LXRyaWdnZXItYm9yZGVyLXJhZGl1cyk7LS1jbHItcmVzcG9uc2l2ZS1uYXYtb3ZlcmZsb3ctYm9yZGVyLXJhZGl1czouMnJlbTstLWNsci1yZXNwb25z''@;'; + put 'put ''aXZlLW5hdi1oZWFkZXItYmFja2Ryb3AtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItcmVzcG9uc2l2ZS1uYXYtaGVhZGVyLWJhY2tkcm9wLW9wYWNpdHk6Ljg1fS5jbHItbmF2LWNsb3Nle21hcmdpbjouNzVyZW07LS1jb2xvcjp2YXIoLS1jbHItY29sb3It''@;'; + put 'put ''bmV1dHJhbC01MDApfS5jbHItbmF2LWNsb3NlOmhvdmVyLC5jbHItbmF2LWNsb3NlOmZvY3Vzey0tY29sb3I6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LXRyaWdnZXItYmctY29sb3IpfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIsLmhlYWRlci1vdmVyZmxvdy10cmlnZ2Vye2Rpc3BsYXk6''@;'; + put 'put ''bm9uZX0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW4sLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcj5zcGFuOmJlZm9yZSwuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2U+c3BhbiwuY2xyLW5hdi1jbG9zZT5zcGFuOmJlZm9yZSwuY2xyLW5h''@;'; + put 'put ''di1jbG9zZT5zcGFuOmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDouMXJlbTt3aWR0aDoxLjJyZW07YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LXRyaWdnZXItYmctY29sb3IsIHdoaXRlKTtib3JkZXItcmFkaXVzOi4xNXJlbTti''@;'; + put 'put ''b3JkZXItcmFkaXVzOnZhcigtLWNsci1yZXNwb25zaXZlLW5hdi1oYW1idXJnZXItYm9yZGVyLXJhZGl1cywgLjE1cmVtKX0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW4sLmNsci1uYXYtY2xvc2U+c3Bhbntwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lmhl''@;'; + put 'put ''YWRlci1oYW1idXJnZXItdHJpZ2dlcj5zcGFuOmJlZm9yZSwuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2U+c3BhbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MH0uaGVh''@;'; + put 'put ''ZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW46YmVmb3JlLC5jbHItbmF2LWNsb3NlPnNwYW46YmVmb3Jle3RvcDotLjM1cmVtfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye2JvdHRvbTotLjM1cmVtfS5oZWFkZXItaGFtYnVy''@;'; + put 'put ''Z2VyLXRyaWdnZXIuYWN0aXZlPnNwYW4sLmNsci1uYXYtY2xvc2UuYWN0aXZlPnNwYW57YmFja2dyb3VuZDowIDB9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlci5hY3RpdmU+c3BhbjpiZWZvcmUsLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlci5hY3RpdmU+c3BhbjphZnRlciwuY2xyLW5hdi1j''@;'; + put 'put ''bG9zZS5hY3RpdmU+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2UuYWN0aXZlPnNwYW46YWZ0ZXJ7bGVmdDouMTVyZW07dHJhbnNmb3JtLW9yaWdpbjo5JTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZX0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyLmFjdGl2ZT5zcGFuOmJlZm9yZSwu''@;'; + put 'put ''Y2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbjpiZWZvcmV7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlci5hY3RpdmU+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9LmhlYWRl''@;'; + put 'put ''ci1vdmVyZmxvdy10cmlnZ2VyPnNwYW4sLmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyPnNwYW46YmVmb3JlLC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcj5zcGFuOmFmdGVyLC5jbHItbmF2LWNsb3NlPnNwYW4sLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2U+c3Bhbjph''@;'; + put 'put ''ZnRlcntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjJyZW07d2lkdGg6LjJyZW07YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LXRyaWdnZXItYmctY29sb3IsIHdoaXRlKTtib3JkZXItcmFkaXVzOi4ycmVtO2JvcmRlci1yYWRpdXM6dmFy''@;'; + put 'put ''KC0tY2xyLXJlc3BvbnNpdmUtbmF2LW92ZXJmbG93LWJvcmRlci1yYWRpdXMsIC4ycmVtKX0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI+c3BhbiwuY2xyLW5hdi1jbG9zZT5zcGFue3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uaGVhZGVyLW92ZXJmbG93LXRyaWdn''@;'; + put 'put ''ZXI+c3BhbjpiZWZvcmUsLmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyPnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2U+c3BhbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MH0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI+''@;'; + put 'put ''c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmV7dG9wOi0uNHJlbX0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye2JvdHRvbTotLjRyZW19LmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyLmFjdGl2ZT5zcGFuLC5j''@;'; + put 'put ''bHItbmF2LWNsb3NlLmFjdGl2ZT5zcGFue2JhY2tncm91bmQ6MCAwfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlci5hY3RpdmU+c3BhbjpiZWZvcmUsLmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyLmFjdGl2ZT5zcGFuOmFmdGVyLC5jbHItbmF2LWNsb3NlLmFjdGl2ZT5zcGFuOmJlZm9yZSwuY2xy''@;'; + put 'put ''LW5hdi1jbG9zZS5hY3RpdmU+c3BhbjphZnRlcntoZWlnaHQ6LjFyZW07d2lkdGg6MS4ycmVtO2xlZnQ6LS4zcmVtO3RyYW5zZm9ybS1vcmlnaW46LTMlO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlci5hY3RpdmU+c3BhbjpiZWZvcmUsLmNs''@;'; + put 'put ''ci1uYXYtY2xvc2UuYWN0aXZlPnNwYW46YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlci5hY3RpdmU+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9QG1lZGlhIHNj''@;'; + put 'put ''cmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCl7Lm1haW4tY29udGFpbmVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIsLm1haW4tY29udGFpbmVyIC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcntkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXI6MDtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9p''@;'; + put 'put ''bnRlcjtmb250LXNpemU6MS4ycmVtO2hlaWdodDozcmVtO3dpZHRoOjNyZW07cGFkZGluZzowIDAgLjJyZW07dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOiNmYWZhZmE7Y29sb3I6dmFyKC0tY2xyLWhlYWRlci1mb250LWNvbG9yLCAjZmFmYWZhKTtvcGFjaXR5''@;'; + put 'put ''Oi42NTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItbmF2LW9wYWNpdHksIC42NSl9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI6Zm9jdXMsLm1haW4tY29udGFpbmVyIC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcjpmb2N1c3tvdXRsaW5lLW9mZnNldDotLjI1cmVt''@;'; + put 'put ''fS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyOmVuYWJsZWQ6aG92ZXIsLm1haW4tY29udGFpbmVyIC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcjplbmFibGVkOmhvdmVye29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItbmF2LWhvdmVyLW9wYWNpdHks''@;'; + put 'put ''IDEpfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyOmRpc2FibGVkLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVs''@;'; + put 'put ''LTEsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5h''@;'; + put 'put ''di1sZXZlbC0xe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6YXV0bztib3R0b206MDtsZWZ0OjA7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLW5hdi1iYWNrZ3JvdW5kLWNvbG9yLCAjZThlOGU4KTt6''@;'; + put 'put ''LWluZGV4OjEwMzk7aGVpZ2h0OjEwMHZoO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTE4cmVtKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZX0ubWFpbi1jb250YWluZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwt''@;'; + put 'put ''MiwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lciAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyIC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29s''@;'; + put 'put ''dW1uO3Bvc2l0aW9uOmZpeGVkO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDphdXRvO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1uYXYtYmFja2dyb3VuZC1jb2xvciwgI2U4ZThlOCk7ei1pbmRleDoxMDM5O2hlaWdodDoxMDB2aDt0cmFuc2Zvcm06dHJhbnNs''@;'; + put 'put ''YXRlKDE4cmVtKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZX0ubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0ye292ZXJmbG93OmluaGVyaXR9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYsLm1haW4tY29udGFpbmVyIC5zdWJu''@;'; + put 'put ''YXYuY2xyLW5hdi1sZXZlbC0xIGFzaWRlLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIGFzaWRlLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LC5t''@;'; + put 'put ''YWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiBhc2lkZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiBhc2lkZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24t''@;'; + put 'put ''aXRlbXM6c3RyZXRjaH0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgYXNpZGUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSBhc2lkZSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgYXNpZGUsLm1haW4tY29udGFp''@;'; + put 'put ''bmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiBhc2lkZXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEwMCV9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LC5tYWlu''@;'; + put 'put ''LWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdntwYWRkaW5nLWxlZnQ6MH0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWl0ZW0sLm1haW4tY29u''@;'; + put 'put ''dGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtaXRlbSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWl0ZW0sLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtaXRlbXtoZWlnaHQ6''@;'; + put 'put ''MS44cmVtO21hcmdpbi1yaWdodDowfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluaywubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYt''@;'; + put 'put ''bGV2ZWwtMiAubmF2IC5uYXYtbGluaywubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5re3BhZGRpbmc6MCAuNnJlbSAwIDEuMnJlbTt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlw''@;'; + put 'put ''c2lzO2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1y''@;'; + put 'put ''YWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tY29sb3IsICM2NjY2NjYpfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluay5hY3Rp''@;'; + put 'put ''dmUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZl''@;'; + put 'put ''bC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1hY3RpdmUtY29sb3IsICM2NjY2NjYpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWJn''@;'; + put 'put ''LWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWxlZnQ6LjE1cmVtIHNvbGlkIHZhcigtLWNsci1uYXYtYWN0aXZlLWJveC1zaGFkb3ctY29sb3IpfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluay5hY3RpdmUgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5l''@;'; + put 'put ''ciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1s''@;'; + put 'put ''ZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb257ZmlsbDojMDA3MmEzO2ZpbGw6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLWFjdGl2ZS1jb2xvciwgIzAwNzJhMyl9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rOmhv''@;'; + put 'put ''dmVyLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVs''@;'; + put 'put ''LTIgLm5hdiAubmF2LWxpbms6aG92ZXJ7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yLCAjNjY2NjY2KTtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWhvdmVyLWJnLWNv''@;'; + put 'put ''bG9yLCAjY2NjY2NjKTt0ZXh0LWRlY29yYXRpb246bm9uZX0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1j''@;'; + put 'put ''b250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5u''@;'; + put 'put ''YXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNs''@;'; + put 'put ''ci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmV7Ym94LXNoYWRvdzpub25lfS5tYWluLWNvbnRhaW5lciAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2''@;'; + put 'put ''ZSwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluay5hY3RpdmV7Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1j''@;'; + put 'put ''bHItcmVzcG9uc2l2ZS1uYXYtaG92ZXItYmcsIHdoaXRlKX0ubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lciAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyIC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwt''@;'; + put 'put ''MSwubWFpbi1jb250YWluZXIgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0ye2JvcmRlci1yaWdodDpub25lfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXJ7cG9zaXRpb246cmVsYXRpdmV9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItb3ZlcmZsb3ctdHJp''@;'; + put 'put ''Z2dlcjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiI7YmFja2dyb3VuZDojZmFmYWZhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWhlYWRlci1mb250LWNvbG9yLCAjZmFmYWZhKTtvcGFjaXR5''@;'; + put 'put ''Oi4xNTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItZGl2aWRlci1vcGFjaXR5LCAuMTUpO29wYWNpdHk6LjE1O2hlaWdodDoycmVtO3dpZHRoOi4wNXJlbTt3aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO3RvcDouNXJlbTtsZWZ0OjB9Lm1haW4tY29udGFpbmVy''@;'; + put 'put ''IC5oZWFkZXIgLmJyYW5kaW5ne21heC13aWR0aDoxMnJlbTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW59Lm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcisuYnJhbmRpbmd7cGFkZGluZy1sZWZ0OjB9Lm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmhl''@;'; + put 'put ''YWRlci1oYW1idXJnZXItdHJpZ2dlcisuYnJhbmRpbmcgLmNsci1pY29uLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIrLmJyYW5kaW5nIC5sb2dvLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIrLmJyYW5k''@;'; + put 'put ''aW5nIGNkcy1pY29uLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIrLmJyYW5kaW5nIGNsci1pY29ue2Rpc3BsYXk6bm9uZX0ubWFpbi1jb250YWluZXIgLmhlYWRlciAuYnJhbmRpbmcrLmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyLC5tYWluLWNvbnRh''@;'; + put 'put ''aW5lciAuaGVhZGVyIC5oZWFkZXItbmF2Ky5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcnttYXJnaW4tbGVmdDphdXRvfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1iYWNrZHJvcCwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5o''@;'; + put 'put ''ZWFkZXIgLmhlYWRlci1iYWNrZHJvcHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtiYWNrZ3JvdW5kOiMwMDA7YmFja2dyb3VuZDp2YXIoLS1jbHItcmVzcG9uc2l2ZS1uYXYtaGVhZGVyLWJhY2tkcm9wLWJnLWNvbG9yLCBibGFjayk7b3BhY2l0eTouODU7''@;'; + put 'put ''b3BhY2l0eTp2YXIoLS1jbHItcmVzcG9uc2l2ZS1uYXYtaGVhZGVyLWJhY2tkcm9wLW9wYWNpdHksIC44NSk7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoxMDM4fS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5u''@;'; + put 'put ''YXYtbGluaywubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmssLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2''@;'; + put 'put ''LWxpbmssLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmt7ZmxleDowIDAgYXV0bztvcGFjaXR5OjE7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tY29sb3IsICM2''@;'; + put 'put ''NjY2NjYpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluayAubmF2LWljb24sLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxl''@;'; + put 'put ''dmVsLTEgLm5hdi1saW5rIC5mYSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1u''@;'; + put 'put ''YXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluayAuZmEsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRl''@;'; + put 'put ''ciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5mYSwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluayAubmF2LWljb24sLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ct''@;'; + put 'put ''bWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLmZhe2Rpc3BsYXk6bm9uZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsgLm5hdi10ZXh0LC5tYWlu''@;'; + put 'put ''LWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluayAubmF2LXRleHQsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxp''@;'; + put 'put ''bmsgLm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rIC5uYXYtdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1zbGlkaW5nLXBhbmVs''@;'; + put 'put ''LXRleHQtY29sb3IsICM2NjY2NjYpO2xpbmUtaGVpZ2h0OjEuMnJlbTtwYWRkaW5nOi4zcmVtIDAgLjNyZW0gMS4ycmVtO3doaXRlLXNwYWNlOm5vcm1hbDtmb250LXdlaWdodDo0MDB9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHIt''@;'; + put 'put ''bmF2LWxldmVsLTEgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQsLm1haW4tY29udGFpbmVyLm9wZW4t''@;'; + put 'put ''b3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluayAubmF2''@;'; + put 'put ''LWljb24rLm5hdi10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhl''@;'; + put 'put ''YWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZs''@;'; + put 'put ''b3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsuYWN0aXZle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29s''@;'; + put 'put ''b3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1hY3RpdmUtYmctY29sb3IsIHdoaXRlKTtib3JkZXItbGVmdDouMTVyZW0gc29saWQgdmFyKC0tY2xyLW5hdi1hY3RpdmUtYm94LXNoYWRvdy1jb2xvcil9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVy''@;'; + put 'put ''LW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb24sLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb24sLm1haW4tY29udGFpbmVyLm9w''@;'; + put 'put ''ZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluay5hY3Rp''@;'; + put 'put ''dmUgLm5hdi1pY29ue2ZpbGw6IzAwNzJhMztmaWxsOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaWNvbi1hY3RpdmUtY29sb3IsICMwMDcyYTMpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluazpo''@;'; + put 'put ''b3ZlciwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAu''@;'; + put 'put ''bmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbms6aG92ZXJ7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yLCAjNjY2''@;'; + put 'put ''NjY2KTtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWhvdmVyLWJnLWNvbG9yLCAjY2NjY2NjKTt0ZXh0LWRlY29yYXRpb246bm9uZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXIt''@;'; + put 'put ''bmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlPi5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsuYWN0aXZlPi5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Bl''@;'; + put 'put ''bi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmU+Lm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rLmFjdGl2''@;'; + put 'put ''ZT4ubmF2LXRleHR7Y29sb3I6aW5oZXJpdH0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXJ7ZGlzcGxh''@;'; + put 'put ''eTpub25lfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5ne3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MThyZW07bWF4LXdpZHRoOjE4cmVtO3otaW5kZXg6MTA0MDtwYWRkaW5nLWxlZnQ6MS4ycmVt''@;'; + put 'put ''fS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGlua3tvdmVyZmxvdzpoaWRkZW59Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuYnJhbmRpbmcgLmNsci1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVu''@;'; + put 'put ''LWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIC5sb2dvLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIGNkcy1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIGNsci1pY29u''@;'; + put 'put ''e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIGNkcy1pY29uW3NoYXBlPXZtLWJ1Z10sLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuYnJhbmRpbmcgY2xyLWljb25bc2hh''@;'; + put 'put ''cGU9dm0tYnVnXSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyAuY2xyLXZtdy1sb2dve2JhY2tncm91bmQtY29sb3I6IzhjOGM4Yztib3JkZXItcmFkaXVzOi4xNXJlbX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVh''@;'; + put 'put ''ZGVyIC5icmFuZGluZyAudGl0bGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItc2xpZGluZy1wYW5lbC10ZXh0LWNvbG9yLCAjNjY2NjY2KTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbn0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5h''@;'; + put 'put ''di1jbG9zZXtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDphdXRvO2xlZnQ6MDt6LWluZGV4OjEwMzk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxOC42cmVtKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1j''@;'; + put 'put ''bG9zZTphZnRlcntjb250ZW50Om5vbmV9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbntiYWNrZ3JvdW5kOjAgMH0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFuOmJlZm9yZSwubWFpbi1j''@;'; + put 'put ''b250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye2xlZnQ6LjE1cmVtO3RyYW5zZm9ybS1vcmlnaW46OSU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xv''@;'; + put 'put ''c2U+c3BhbjpiZWZvcmV7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhl''@;'; + put 'put ''YWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Bl''@;'; + put 'put ''bi1oYW1idXJnZXItbWVudSAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0xe3BhZGRpbmctdG9wOjQuMnJlbTt0cmFuc2Zvcm06dHJhbnNsYXRlKDApO3RyYW5zaXRpb246''@;'; + put 'put ''dHJhbnNmb3JtIC4zcyBlYXNlfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAuc2lkZW5hdi1jb250ZW50LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5zaWRl''@;'; + put 'put ''bmF2LWNvbnRlbnQsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5zaWRlbmF2LWNvbnRlbnQsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xIC5zaWRlbmF2LWNvbnRl''@;'; + put 'put ''bnQsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0xIC5zaWRlbmF2LWNvbnRlbnR7cGFkZGluZy1ib3R0b206MS4ycmVtfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlci1uYXYuY2xyLW5h''@;'; + put 'put ''di1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAu''@;'; + put 'put ''c2lkZW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTJ7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZX0ubWFpbi1jb250YWluZXIub3Bl''@;'; + put 'put ''bi1vdmVyZmxvdy1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0ye3Bh''@;'; + put 'put ''ZGRpbmctdG9wOjEuMnJlbX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3Nle3Bvc2l0aW9uOmZpeGVkO3RvcDowO3JpZ2h0OjA7bGVmdDphdXRvO3otaW5kZXg6MTAzOTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xOC42cmVtKTt0cmFuc2l0aW9uOnRyYW5z''@;'; + put 'put ''Zm9ybSAuNnMgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3NlOmFmdGVye2NvbnRlbnQ6bm9uZX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW57YmFja2dyb3VuZDowIDB9Lm1haW4tY29udGFp''@;'; + put 'put ''bmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFuOmJlZm9yZSwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW46YWZ0ZXJ7aGVpZ2h0Oi4xcmVtO3dpZHRoOjEuMnJlbTtsZWZ0Oi0uM3JlbTt0cmFuc2Zvcm0tb3JpZ2lu''@;'; + put 'put ''Oi0zJTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW46YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci1uYXYt''@;'; + put 'put ''Y2xvc2U+c3BhbjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0x''@;'; + put 'put ''LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci12''@;'; + put 'put ''ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0xe292ZXJmbG93OmluaGVyaXQ7d2lkdGg6MThyZW07bWF4LXdpZHRoOjE4cmVtfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93''@;'; + put 'put ''LW1lbnUgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVy''@;'; + put 'put ''Lm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTJ7d2lkdGg6MThyZW07bWF4LXdpZHRoOjE4cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU3NnB4KXsubWFpbi1jb250YWluZXIgLmhlYWRlciAuYnJhbmRpbmd7bWF4LXdpZHRoOjcu''@;'; + put 'put ''MnJlbTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW59Lm1haW4tY29udGFpbmVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1j''@;'; + put 'put ''b250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lciAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTF7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTQuNHJlbSl9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1j''@;'; + put 'put ''b250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lciAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTJ7''@;'; + put 'put ''dHJhbnNmb3JtOnRyYW5zbGF0ZSgxNC40cmVtKX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZ3t3aWR0aDoxNC40cmVtO21heC13aWR0aDoxNC40cmVtfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXItbmF2LmNs''@;'; + put 'put ''ci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2Vy''@;'; + put 'put ''LW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMXtvdmVyZmxvdzppbmhlcml0O3dpZHRoOjE0LjRyZW07bWF4LXdpZHRoOjE0LjRyZW19Lm1haW4tY29udGFpbmVy''@;'; + put 'put ''Lm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2V7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6YXV0bztsZWZ0OjA7ei1pbmRleDoxMDM5O3RyYW5zZm9ybTp0cmFuc2xhdGUoMTVyZW0pO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlfS5tYWluLWNvbnRhaW5lci5vcGVu''@;'; + put 'put ''LWhhbWJ1cmdlci1tZW51IC5jbHItbmF2LWNsb3NlOmFmdGVye2NvbnRlbnQ6bm9uZX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWJuYXYuY2xyLW5hdi1s''@;'; + put 'put ''ZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNs''@;'; + put 'put ''ci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0ye3dpZHRoOjE0LjRyZW07bWF4LXdpZHRoOjE0LjRyZW19Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZXtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2xlZnQ6YXV0bzt6LWluZGV4OjEwMzk7''@;'; + put 'put ''dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTVyZW0pO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci1uYXYtY2xvc2U6YWZ0ZXJ7Y29udGVudDpub25lfX06cm9vdHstLWNsci1wcm9ncmVzcy1kZWZhdWx0LWNvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMTp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy00MDApOy0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yOnZhcigtLWNsci1jb2xvci1kYW5nZXItODAwKTstLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMzp2''@;'; + put 'put ''YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIpOy0tY2xyLXByb2dyZXNzLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCl9LnByb2dyZXNzLC5wcm9ncmVzcy1zdGF0aWN7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjA7Zm9udC1zaXpl''@;'; + put 'put ''OmluaGVyaXQ7aGVpZ2h0OjJlbTttYXJnaW46MDttYXgtaGVpZ2h0Oi43cmVtO21pbi1oZWlnaHQ6LjJyZW07b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0ucHJvZ3Jlc3M+cHJvZ3Jlc3N7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5v''@;'; + put 'put ''bmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvciwgIzAwNzJhMyk7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIo''@;'; + put 'put ''LS1jbHItcHJvZ3Jlc3MtYmctY29sb3IsICNlOGU4ZTgpO2JvcmRlcjowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LnByb2dyZXNzPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9n''@;'; + put 'put ''cmVzcy1kZWZhdWx0LWNvbG9yLCAjMDA3MmEzKX0ucHJvZ3Jlc3M+cHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1kZWZhdWx0LWNvbG9yLCAjMDA3MmEzKX0ucHJvZ3Jlc3M+cHJv''@;'; + put 'put ''Z3Jlc3NbdmFsdWU9IjAiXTo6LW1vei1wcm9ncmVzcy1iYXJ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7Y29sb3I6I2U4ZThlODtjb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYmctY29s''@;'; + put 'put ''b3IsICNlOGU4ZTgpO21pbi13aWR0aDoyLjRyZW07YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LnByb2dyZXNzPnByb2dyZXNzW3ZhbHVlPSIwIl06Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7LXdlYmtpdC10cmFuc2l0aW9uOm5vbmU7dHJhbnNp''@;'; + put 'put ''dGlvbjpub25lfS5wcm9ncmVzcz5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy1iYXJ7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1iZy1jb2xvciwgI2U4ZThlOCl9LnByb2dyZXNzPnByb2dyZXNz''@;'; + put 'put ''Ojotd2Via2l0LXByb2dyZXNzLWlubmVyLWVsZW1lbnR7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmV9LnByb2dyZXNzPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVley13ZWJr''@;'; + put 'put ''aXQtdHJhbnNpdGlvbjp3aWR0aCAuMjNzIGVhc2UtaW47dHJhbnNpdGlvbjp3aWR0aCAuMjNzIGVhc2UtaW47Ym9yZGVyLXJhZGl1czowfS5wcm9ncmVzcy5zdWNjZXNzPnByb2dyZXNze2NvbG9yOiM1ZWI3MTU7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0xLCAjNWViNzE1''@;'; + put 'put ''KX0ucHJvZ3Jlc3Muc3VjY2Vzcz5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZWI3MTU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTEsICM1ZWI3MTUpfS5wcm9ncmVzcy5zdWNjZXNzPnByb2dyZXNzOjot''@;'; + put 'put ''bW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiM1ZWI3MTU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTEsICM1ZWI3MTUpfS5wcm9ncmVzcy53YXJuaW5nPnByb2dyZXNze2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNz''@;'; + put 'put ''LWFsdC1jb2xvci0zLCAjYzIxZDAwKX0ucHJvZ3Jlc3Mud2FybmluZz5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiNjMjFkMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTMsICNjMjFkMDApfS5wcm9ncmVz''@;'; + put 'put ''cy53YXJuaW5nPnByb2dyZXNzOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNjMjFkMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTMsICNjMjFkMDApfS5wcm9ncmVzcy5kYW5nZXI+cHJvZ3Jlc3N7Y29sb3I6I2MyMWQwMDtjb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIsICNjMjFkMDApfS5wcm9ncmVzcy5kYW5nZXI+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0y''@;'; + put 'put ''LCAjYzIxZDAwKX0ucHJvZ3Jlc3MuZGFuZ2VyPnByb2dyZXNzOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNjMjFkMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIsICNjMjFkMDApfS5wcm9ncmVzcy5sYWJlbGVkLC5wcm9ncmVz''@;'; + put 'put ''cy1zdGF0aWMubGFiZWxlZHtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nLXJpZ2h0OjNlbX0ucHJvZ3Jlc3MubGFiZWxlZD5zcGFuLC5wcm9ncmVzcy1zdGF0aWMubGFiZWxlZD5zcGFue2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjFlbTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0''@;'; + put 'put ''OjA7bGluZS1oZWlnaHQ6MWVtO21hcmdpbi10b3A6LS4zNzVlbX1Aa2V5ZnJhbWVzIGNsci1wcm9ncmVzcy1mYWRlezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fS5wcm9ncmVzcy5wcm9ncmVzcy1mYWRlPnByb2dyZXNzW3ZhbHVlPSIxMDAiXSwucHJvZ3Jlc3MucHJvZ3Jlc3MtZmFkZT5w''@;'; + put 'put ''cm9ncmVzc1t2YWx1ZT0iMTAwIl0rc3BhbnthbmltYXRpb246Y2xyLXByb2dyZXNzLWZhZGUgLjNzIGxpbmVhciAuNXMgZm9yd2FyZHN9LnByb2dyZXNzLmZsYXNoLWRhbmdlcj5wcm9ncmVzcywucHJvZ3Jlc3MuZmxhc2g+cHJvZ3Jlc3N7dHJhbnNpdGlvbjpjb2xvciAuMXMgZWFzZS1vdXQg''@;'; + put 'put ''MXN9LnByb2dyZXNzLmZsYXNoLWRhbmdlcj5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSwucHJvZ3Jlc3MuZmxhc2g+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIC4yM3MgZWFzZS1pbixiYWNrZ3JvdW5kLWNvbG9yIC4x''@;'; + put 'put ''cyBlYXNlLW91dCAuM3M7dHJhbnNpdGlvbjp3aWR0aCAuMjNzIGVhc2UtaW4sYmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZS1vdXQgLjNzfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3NbdmFsdWU9IjAiXTo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSwucHJvZ3Jlc3MuZmxhc2g+cHJv''@;'; + put 'put ''Z3Jlc3NbdmFsdWU9IjAiXTo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9LnByb2dyZXNzLmZsYXNoLWRhbmdlcj5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXIsLnByb2dyZXNzLmZsYXNoPnByb2dyZXNzOjotbW96LXBy''@;'; + put 'put ''b2dyZXNzLWJhcnstbW96LXRyYW5zaXRpb246d2lkdGggLjIzcyBlYXNlLWluLGJhY2tncm91bmQtY29sb3IgLjFzIGVhc2Utb3V0IC4zczt0cmFuc2l0aW9uOndpZHRoIC4yM3MgZWFzZS1pbixiYWNrZ3JvdW5kLWNvbG9yIC4xcyBlYXNlLW91dCAuM3N9LnByb2dyZXNzLmZsYXNoPnByb2dy''@;'; + put 'put ''ZXNzW3ZhbHVlPSIxMDAiXXtjb2xvcjojNWViNzE1O2NvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMSwgIzVlYjcxNSl9LnByb2dyZXNzLmZsYXNoPnByb2dyZXNzW3ZhbHVlPSIxMDAiXTo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZWI3MTU7''@;'; + put 'put ''YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTEsICM1ZWI3MTUpfS5wcm9ncmVzcy5mbGFzaD5wcm9ncmVzc1t2YWx1ZT0iMTAwIl06Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6IzVlYjcxNTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1wcm9ncmVzcy1hbHQtY29sb3ItMSwgIzVlYjcxNSl9LnByb2dyZXNzLnByb2dyZXNzLWZhZGUuZmxhc2g+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJdLC5wcm9ncmVzcy5wcm9ncmVzcy1mYWRlLmZsYXNoPnByb2dyZXNzW3ZhbHVlPSIxMDAiXStzcGFue2FuaW1hdGlvbjpjbHItcHJvZ3Jlc3Mt''@;'; + put 'put ''ZmFkZSAuNnMgbGluZWFyIDFzIGZvcndhcmRzfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJde2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yLCAjYzIxZDAwKX0ucHJvZ3Jlc3MuZmxhc2gtZGFuZ2VyPnByb2dyZXNz''@;'; + put 'put ''W3ZhbHVlPSIxMDAiXTo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiNjMjFkMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIsICNjMjFkMDApfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJd''@;'; + put 'put ''OjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNjMjFkMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIsICNjMjFkMDApfUBrZXlmcmFtZXMgY2xyLXByb2dyZXNzLWxvb3BlcnswJXtsZWZ0Oi0xMDAlfXRve2xlZnQ6MTAwJX19LnBy''@;'; + put 'put ''b2dyZXNzLmxvb3B7cG9zaXRpb246cmVsYXRpdmV9LnByb2dyZXNzLmxvb3A+cHJvZ3Jlc3N7b3ZlcmZsb3c6aGlkZGVuO2NvbG9yOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCB0cmFuc3BhcmVudCl9LnByb2dyZXNzLmxvb3A+cHJvZ3Jlc3M6Oi13ZWJr''@;'; + put 'put ''aXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCB0cmFuc3BhcmVudCl9LnByb2dyZXNzLmxvb3A+cHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCwgdHJhbnNwYXJlbnQpfS5wcm9ncmVzcy5sb29wPnByb2dyZXNzOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5wcm9ncmVzcy5sb29wOmFmdGVye2Fu''@;'; + put 'put ''aW1hdGlvbjpjbHItcHJvZ3Jlc3MtbG9vcGVyIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO2NvbnRlbnQ6IiAiO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1wcm9ncmVzcy1kZWZhdWx0LWNvbG9yLCAjMDA3MmEzKTt3aWR0aDo3NSV9LnByb2dyZXNzLmxvb3AuZGFuZ2VyOmFmdGVyLC5wcm9ncmVzcy5sb29wLndhcm5pbmc6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNz''@;'; + put 'put ''LWFsdC1jb2xvci0yLCAjYzIxZDAwKX0ucHJvZ3Jlc3MubG9vcC5zdWNjZXNzOmFmdGVye2JhY2tncm91bmQtY29sb3I6IzVlYjcxNTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMSwgIzVlYjcxNSl9Lm5hdi1pdGVtIC5wcm9ncmVzczphZnRlcnt0b3A6''@;'; + put 'put ''MH0ucHJvZ3Jlc3Mtc3RhdGlje3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjowO3dpZHRoOjEwMCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJ7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWJnLWNvbG9yLCAjZThl''@;'; + put 'put ''OGU4KTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtib3R0b206MDtyaWdodDowfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jl''@;'; + put 'put ''c3MtZGVmYXVsdC1jb2xvciwgIzAwNzJhMyk7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MCU7Y29udGVudDoiICJ9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMSJdOmJlZm9yZSwucHJvZ3Jl''@;'; + put 'put ''c3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjMiXTpiZWZvcmV7d2lkdGg6MiV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNCJdOmJl''@;'; + put 'put ''Zm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNyJd''@;'; + put 'put ''OmJlZm9yZXt3aWR0aDo1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjkiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0''@;'; + put 'put ''YS12YWx1ZT0iMTAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTEiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTIiXTpiZWZvcmV7d2lkdGg6MTAlfS5wcm9ncmVzcy1zdGF0aWM+LnBy''@;'; + put 'put ''b2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjEzIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0''@;'; + put 'put ''aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE2Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE3Il06YmVmb3Jle3dpZHRoOjE1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxOCJdOmJlZm9y''@;'; + put 'put ''ZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxOSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyMCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyMSJd''@;'; + put 'put ''OmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyMiJdOmJlZm9yZXt3aWR0aDoyMCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJb''@;'; + put 'put ''ZGF0YS12YWx1ZT0iMjQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjUiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3Mt''@;'; + put 'put ''bWV0ZXJbZGF0YS12YWx1ZT0iMjciXTpiZWZvcmV7d2lkdGg6MjUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjI4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjI5Il06YmVmb3JlLC5wcm9ncmVzcy1z''@;'; + put 'put ''dGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjMwIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjMxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjMyIl06YmVmb3Jle3dpZHRo''@;'; + put 'put ''OjMwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzMyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzNCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIz''@;'; + put 'put ''NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzNiJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzNyJdOmJlZm9yZXt3aWR0aDozNSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0''@;'; + put 'put ''ZXJbZGF0YS12YWx1ZT0iMzgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMzkiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jl''@;'; + put 'put ''c3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDEiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDIiXTpiZWZvcmV7d2lkdGg6NDAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQzIl06YmVmb3JlLC5wcm9ncmVz''@;'; + put 'put ''cy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQ0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQ1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQ2Il06YmVmb3JlLC5w''@;'; + put 'put ''cm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQ3Il06YmVmb3Jle3dpZHRoOjQ1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0OCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVl''@;'; + put 'put ''PSI0OSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1MCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1MSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRh''@;'; + put 'put ''LXZhbHVlPSI1MiJdOmJlZm9yZXt3aWR0aDo1MCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJv''@;'; + put 'put ''Z3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTUiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTciXTpiZWZvcmV7d2lkdGg6NTUlfS5wcm9n''@;'; + put 'put ''cmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjU4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjU5Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjYwIl06YmVmb3Jl''@;'; + put 'put ''LC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjYxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjYyIl06YmVmb3Jle3dpZHRoOjYwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZh''@;'; + put 'put ''bHVlPSI2MyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2NCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltk''@;'; + put 'put ''YXRhLXZhbHVlPSI2NiJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2NyJdOmJlZm9yZXt3aWR0aDo2NSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNjgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4u''@;'; + put 'put ''cHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNjkiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzEiXTpiZWZvcmUsLnByb2dyZXNzLXN0''@;'; + put 'put ''YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzIiXTpiZWZvcmV7d2lkdGg6NzAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjczIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijc0Il06YmVm''@;'; + put 'put ''b3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijc1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijc2Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijc3''@;'; + put 'put ''Il06YmVmb3Jle3dpZHRoOjc1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3OCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3OSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRl''@;'; + put 'put ''cltkYXRhLXZhbHVlPSI4MCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4MSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4MiJdOmJlZm9yZXt3aWR0aDo4MCV9LnByb2dyZXNzLXN0YXRp''@;'; + put 'put ''Yz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODUiXTpiZWZvcmUsLnByb2dyZXNz''@;'; + put 'put ''LXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODciXTpiZWZvcmV7d2lkdGg6ODUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijg4Il06''@;'; + put 'put ''YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijg5Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjkwIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9''@;'; + put 'put ''IjkxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjkyIl06YmVmb3Jle3dpZHRoOjkwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5MyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1t''@;'; + put 'put ''ZXRlcltkYXRhLXZhbHVlPSI5NCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5NiJdOmJlZm9yZXt3aWR0aDo5NSV9LnByb2dyZXNzLXN0''@;'; + put 'put ''YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTciXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTkiXTpiZWZvcmV7d2lkdGg6''@;'; + put 'put ''OTglfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjEwMCJdOmJlZm9yZXt3aWR0aDoxMDAlfS5wcm9ncmVzcy1zdGF0aWMubGFiZWxlZD4ucHJvZ3Jlc3MtbWV0ZXJ7cmlnaHQ6M2VtfS5wcm9ncmVzcy1zdGF0aWMuc3VjY2Vzcz4ucHJvZ3Jlc3MtbWV0ZXI6''@;'; + put 'put ''YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzVlYjcxNTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMSwgIzVlYjcxNSl9LnByb2dyZXNzLXN0YXRpYy53YXJuaW5nPi5wcm9ncmVzcy1tZXRlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2Jh''@;'; + put 'put ''Y2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0zLCAjYzIxZDAwKX0ucHJvZ3Jlc3Mtc3RhdGljLmRhbmdlcj4ucHJvZ3Jlc3MtbWV0ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1h''@;'; + put 'put ''bHQtY29sb3ItMiwgI2MyMWQwMCl9LmNhcmQtYmxvY2sgLnByb2dyZXNzLC5jYXJkLWJsb2NrIC5wcm9ncmVzcy1zdGF0aWMsLmNhcmQtZm9vdGVyIC5wcm9ncmVzcywuY2FyZC1mb290ZXIgLnByb2dyZXNzLXN0YXRpY3ttYXJnaW46MDttYXJnaW4tdG9wOi0uNnJlbTtoZWlnaHQ6LjE4NzVy''@;'; + put 'put ''ZW07cG9zaXRpb246YWJzb2x1dGU7bGVmdDowfS5jYXJkLWJsb2NrIC5wcm9ncmVzcz5wcm9ncmVzcywuY2FyZC1ibG9jayAucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlciwuY2FyZC1mb290ZXIgLnByb2dyZXNzPnByb2dyZXNzLC5jYXJkLWZvb3RlciAucHJvZ3Jlc3Mtc3RhdGlj''@;'; + put 'put ''Pi5wcm9ncmVzcy1tZXRlcntoZWlnaHQ6LjE4NzVyZW07cG9zaXRpb246YWJzb2x1dGV9LmNhcmQtYmxvY2sgLnByb2dyZXNzLnRvcCwuY2FyZC1ibG9jayAucHJvZ3Jlc3Mtc3RhdGljLnRvcCwuY2FyZC1mb290ZXIgLnByb2dyZXNzLnRvcCwuY2FyZC1mb290ZXIgLnByb2dyZXNzLXN0YXRp''@;'; + put 'put ''Yy50b3B7bWFyZ2luLXRvcDowO3RvcDowfS5uYXYtaXRlbSAucHJvZ3Jlc3MsLm5hdi1pdGVtIC5wcm9ncmVzcy1zdGF0aWN7bWFyZ2luOjA7aGVpZ2h0Oi4yNHJlbTttaW4taGVpZ2h0Oi4yNHJlbTttYXgtaGVpZ2h0Oi4yNHJlbTtsZWZ0OjB9Lm5hdi1pdGVtIC5wcm9ncmVzcz5wcm9ncmVz''@;'; + put 'put ''cywubmF2LWl0ZW0gLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJ7aGVpZ2h0Oi4yNHJlbTttaW4taGVpZ2h0Oi4yNHJlbTttYXgtaGVpZ2h0Oi4yNHJlbTtwb3NpdGlvbjphYnNvbHV0ZX0ucHJvZ3Jlc3MtYmxvY2t7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7YWxpZ24taXRlbXM6''@;'; + put 'put ''Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnByb2dyZXNzLWJsb2NrPip7ZmxleDowIDAgYXV0bztwYWRkaW5nLXJpZ2h0Oi42cmVtfS5wcm9ncmVzcy1ibG9jaz46Zmlyc3QtY2hpbGR7cGFkZGluZy1yaWdodDouOXJlbX0ucHJvZ3Jlc3MtYmxvY2s+Omxhc3QtY2hpbGR7cGFkZGlu''@;'; + put 'put ''Zy1yaWdodDowfS5wcm9ncmVzcy1ibG9jaz5sYWJlbHtmb250LXdlaWdodDo2MDB9LnByb2dyZXNzLWJsb2NrPi5wcm9ncmVzcywucHJvZ3Jlc3MtYmxvY2s+LnByb2dyZXNzLXN0YXRpY3tmbGV4OjAgMSBhdXRvfS5wcm9ncmVzcy1ibG9jaz4ucHJvZ3Jlc3MtZ3JvdXB7ZmxleC1kaXJlY3Rp''@;'; + put 'put ''b246Y29sdW1uO2hlaWdodDphdXRvO2ZsZXg6MCAxIGF1dG87ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCV9LnByb2dyZXNzLWJsb2NrPi5wcm9ncmVzcy1ncm91cCAuY2xyLXJvd3ttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfS5wcm9ncmVzcy1ibG9jaz4ucHJvZ3Jlc3MtZ3JvdXAgLmNs''@;'; + put 'put ''ci1yb3c+W2NsYXNzKj1jbHItY29sLV17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9ja3ttYXJnaW4tYm90dG9tOi42cmVtO3BhZGRpbmc6MH0uY2FyZC1ibG9jayAucHJvZ3Jlc3MtYmxvY2s6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9t''@;'; + put 'put ''OjB9LmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrPmxhYmVse21heC13aWR0aDozMyU7bGluZS1oZWlnaHQ6LjlyZW19LmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrIC5wcm9ncmVzcywuY2FyZC1ibG9jayAucHJvZ3Jlc3MtYmxvY2sgLnByb2dyZXNzLXN0YXRpY3twb3NpdGlvbjpyZWxh''@;'; + put 'put ''dGl2ZTtoZWlnaHQ6LjYzOTVyZW07bWFyZ2luLXRvcDowfS5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9jayAucHJvZ3Jlc3M+cHJvZ3Jlc3MsLmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrIC5wcm9ncmVzcz4ucHJvZ3Jlc3MtbWV0ZXIsLmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrIC5w''@;'; + put 'put ''cm9ncmVzcy1zdGF0aWM+cHJvZ3Jlc3MsLmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrIC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVye2hlaWdodDouNjM5NXJlbX1fOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAucHJvZ3Jlc3MtYmxvY2s+bGFiZWwsOnJvb3QgLnByb2dyZXNzLWJs''@;'; + put 'put ''b2NrPmxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5zcGlubmVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDozLjZyZW07d2lkdGg6My42cmVtO21pbi1oZWlnaHQ6My42cmVtO21pbi13aWR0aDozLjZyZW07YW5pbWF0aW9uOnNwaW4gMXMgbGluZWFy''@;'; + put 'put ''IGluZmluaXRlO21hcmdpbjowO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMGlkJTNEJTIyTGF5ZXJfMiUyMiUyMGRhdGEtbmFtZSUzRCUyMkxheWVyJTIwMiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53''@;'; + put 'put ''My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNzIlMjA3MiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMt''@;'; + put 'put ''MSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMiUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZpbGwlM0ElMjBub25lJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwc3Ryb2tlLW1pdGVybGltaXQlM0ElMjAxMCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZS13aWR0aCUzQSUyMDVweCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZSUzQSUyMCUyMzAwMDAwMCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MHN0cm9rZS1vcGFjaXR5JTNBJTIwMC4xNSUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMiUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMHN0cm9rZSUzQSUyMCUyMzAwNzJhMyUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnN0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RpdGxl''@;'; + put 'put ''JTNFUHJlbG9hZGVyXzcyeDIlM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQ2NpcmNsZSUyMGNsYXNzJTNEJTIyY2xzLTElMjIlMjBjeCUzRCUyMjM2JTIyJTIwY3klM0QlMjIzNiUyMiUyMHIlM0QlMjIzMyUyMiUyRiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUy''@;'; + put 'put ''MmNscy0yJTIyJTIwZCUzRCUyMk0xNC4zJTJDNjAuOUEzMyUyQzMzJTJDMCUyQzAlMkMxJTJDMzYlMkMzJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGcGF0aCUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7dGV4dC1pbmRlbnQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFw''@;'; + put 'put ''fS5zcGlubmVyLnNwaW5uZXItbWR7aGVpZ2h0OjEuOHJlbTt3aWR0aDoxLjhyZW07bWluLWhlaWdodDoxLjhyZW07bWluLXdpZHRoOjEuOHJlbX0uc3Bpbm5lci5zcGlubmVyLWlubGluZSwuc3Bpbm5lci5zcGlubmVyLXNte2hlaWdodDouOXJlbTt3aWR0aDouOXJlbTttaW4taGVpZ2h0Oi45''@;'; + put 'put ''cmVtO21pbi13aWR0aDouOXJlbX0uc3Bpbm5lci5zcGlubmVyLWlubGluZXt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LWJvdHRvbX0uc3Bpbm5lci5zcGlubmVyLWludmVyc2V7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjBpZCUzRCUyMkxheWVy''@;'; + put 'put ''XzIlMjIlMjBkYXRhLW5hbWUlM0QlMjJMYXllciUyMDIlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDcyJTIwNzIlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NkZWZzJTNFJTBBJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwJTIwJTNDc3R5bGUlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTElMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTIlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjBmaWxsJTNBJTIwbm9uZSUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZS1taXRlcmxpbWl0JTNBJTIwMTAlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2Utd2lk''@;'; + put 'put ''dGglM0ElMjA1cHglM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTElMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2Ul''@;'; + put 'put ''M0ElMjAlMjNmZmZmZmYlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2Utb3BhY2l0eSUzQSUyMDAuMTUlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAuY2xzLTIlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2UlM0ElMjAlMjM3NGMxZTIlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0N0aXRsZSUzRVByZWxvYWRlcl83MngyJTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwY3glM0QlMjIzNiUyMiUyMGN5''@;'; + put 'put ''JTNEJTIyMzYlMjIlMjByJTNEJTIyMzMlMjIlMkYlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMiUyMiUyMGQlM0QlMjJNMTQuMyUyQzYwLjlBMzMlMkMzMyUyQzAlMkMwJTJDMSUyQzM2JTJDMyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRnBhdGglM0UlMEEl''@;'; + put 'put ''M0MlMkZzdmclM0UlMEEpfS5zcGlubmVyLnNwaW5uZXItbmV1dHJhbC0we2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIwaWQlM0QlMjJMYXllcl8yJTIyJTIwZGF0YS1uYW1lJTNEJTIyTGF5ZXIlMjAyJTIyJTIweG1sbnMlM0QlMjJodHRw''@;'; + put 'put ''JTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA3MiUyMDcyJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3N0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTIwJTIwJTIwLmNscy0xJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLmNscy0yJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmlsbCUzQSUyMG5vbmUlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2UtbWl0ZXJsaW1pdCUzQSUyMDEwJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLXdpZHRoJTNBJTIwNXB4JTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; + put 'put ''JTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLmNscy0xJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlJTNBJTIwJTIzdHJhbnNwYXJlbnQlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2Utb3BhY2l0eSUzQSUyMDElM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTIlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; + put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2UlM0ElMjAlMjNmZmZmZmYlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAl''@;'; + put 'put ''MjAlMjAlMjAlM0N0aXRsZSUzRVByZWxvYWRlcl83MngyJTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwY3glM0QlMjIzNiUyMiUyMGN5JTNEJTIyMzYlMjIlMjByJTNEJTIyMzMlMjIlMkYlM0UlMEElMjAlMjAlMjAlMjAlM0Nw''@;'; + put 'put ''YXRoJTIwY2xhc3MlM0QlMjJjbHMtMiUyMiUyMGQlM0QlMjJNMTQuMyUyQzYwLjlBMzMlMkMzMyUyQzAlMkMwJTJDMSUyQzM2JTJDMyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRnBhdGglM0UlMEElM0MlMkZzdmclM0UlMEEpfS5zcGlubmVyLnNwaW5uZXItY2hlY2t7YW5pbWF0aW9uOm5v''@;'; + put 'put ''bmU7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMzYlMjAzNiUyMiUyMHByZXNlcnZlQXNwZWN0UmF0aW8lM0QlMjJ4TWlkWU1pZCUyMG1lZXQlMjIlMjB4bWxu''@;'; + put 'put ''cyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUyMGZvY3VzYWJsZSUzRCUyMmZhbHNlJTIyJTIwYXJpYS1oaWRkZW4lM0QlMjJ0cnVlJTIyJTIw''@;'; + put 'put ''cm9sZSUzRCUyMmltZyUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMDA3MmEzJTIyJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIwY2xyLWktb3V0bGluZS1wYXRoLTElMjIlMjBkJTNEJTIyTTEzLjcyJTJDMjcuNjklMkMzLjI5JTJDMTcuMjdhMSUyQzElMkMwJTJDMCUyQzElMkMx''@;'; + put 'put ''LjQxLTEuNDFsOSUyQzlMMzEuMjklMkM3LjI5YTElMkMxJTJDMCUyQzAlMkMxJTJDMS40MSUyQzEuNDFaJTIyJTNFJTNDJTJGcGF0aCUzRSUzQyUyRnN2ZyUzRSl9LmJ0bi1zbSAuc3Bpbm5lciwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gLnNwaW5uZXJ7aGVpZ2h0Oi42NXJl''@;'; + put 'put ''bTt3aWR0aDouNjVyZW07bWluLWhlaWdodDouNjVyZW07bWluLXdpZHRoOi42NXJlbX0uYnRuLWljb246bm90KC5idG4tc20pIC5zcGlubmVye2hlaWdodDouOHJlbTt3aWR0aDouOHJlbTttaW4taGVpZ2h0Oi44cmVtO21pbi13aWR0aDouOHJlbX06cm9vdHstLWNsci10YWJsZS1iZ2NvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLXRoZWFkLWJnY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLXRhYmxlLWhlYWRlci1ib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItdGFibGUtZm9vdGVyLWJv''@;'; + put 'put ''cmRlci10b3AtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci10YWJsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci10YWJsZXJvdy1ib3JkZXJjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLXRhYmxl''@;'; + put 'put ''LWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLXRhYmxlLWJvcmRlcndpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgpOy0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXM6LjFyZW07LS1jbHItdGFibGUtZm9udC1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLXRoZWFkLWNvbG9yOiM2NjY2NjZ9LnRhYmxle2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVy''@;'; + put 'put ''ZW0pO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10YWJsZS1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10YWJsZS1iZ2NvbG9yLCB3aGl0ZSk7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdGFibGUtZm9udC1jb2xvciwgIzY2NjY2Nik7bWFyZ2luOjA7bWFyZ2luLXRvcDoxLjJyZW07bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJX0udGFi''@;'; + put 'put ''bGUgdGgsLnRhYmxlIHRke2ZvbnQtc2l6ZTouNjVyZW07bGluZS1oZWlnaHQ6LjdyZW07Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItdG9wLWNv''@;'; + put 'put ''bG9yOiNlOGU4ZTg7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGVyb3ctYm9yZGVyY29sb3IsICNlOGU4ZTgpO3BhZGRpbmc6LjU1cmVtIC42cmVtO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOnRvcH0udGFibGUgdGgubGVmdCwudGFibGUgdGQubGVmdHt0ZXh0LWFs''@;'; + put 'put ''aWduOmxlZnR9LnRhYmxlIHRoLmxlZnQ6Zmlyc3QtY2hpbGQsLnRhYmxlIHRkLmxlZnQ6Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0Oi4zcmVtfS50YWJsZSB0aHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci10aGVhZC1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi41NXJlbTtmb250LXdl''@;'; + put 'put ''aWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAzZW07YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IsICNmYWZhZmEpO3ZlcnRpY2FsLWFsaWduOmJvdHRvbTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0''@;'; + put 'put ''b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tY29sb3I6I2NjYztib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci10''@;'; + put 'put ''b3A6MCBub25lfS50YWJsZSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZHtib3JkZXItdG9wOjAgbm9uZX0udGFibGUgdGJvZHkrdGJvZHl7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3''@;'; + put 'put ''aWR0aCwgLjA1cmVtKTtib3JkZXItdG9wLWNvbG9yOiNjY2M7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0udGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjFyZW07''@;'; + put 'put ''Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS50YWJsZSB0aGVhZCB0aDpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIo''@;'; + put 'put ''LS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS50YWJsZSB0Ym9keTpsYXN0LWNoaWxkIHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjFyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2''@;'; + put 'put ''YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS50YWJsZSB0Ym9keTpsYXN0LWNoaWxkIHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjFyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRp''@;'; + put 'put ''dXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0udGFibGUtY29tcGFjdCB0aCwudGFibGUtY29tcGFjdCB0ZHtwYWRkaW5nLXRvcDouM3JlbTtwYWRkaW5nLWJvdHRvbTouMjVyZW19LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRoZWFkIHRoe2JvcmRlcjowO2JvcmRl''@;'; + put 'put ''ci1yYWRpdXM6MDtkaXNwbGF5Om5vbmV9LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRoe2JvcmRlci1ib3R0b206MDtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6LjA1cmVtO2JvcmRlci10b3Atd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0p''@;'; + put 'put ''O2JvcmRlci10b3AtY29sb3I6I2NjYztib3JkZXItdG9wLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO3ZlcnRpY2FsLWFsaWduOnRvcH0udGFibGUudGFibGUtdmVydGljYWwgdGQsLnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRoe3RleHQtYWxpZ246bGVmdDti''@;'; + put 'put ''b3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyl9LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRkOmZpcnN0LWNoaWxkLC50YWJsZS50YWJsZS12ZXJ0aWNhbCB0aDpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQtc3R5bGU6c29s''@;'; + put 'put ''aWQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4wNXJlbTtib3JkZXItcmlnaHQtd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1yaWdodC1jb2xvcjojY2NjO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2Nj''@;'; + put 'put ''KTtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGhlYWQtYmdjb2xvciwgI2ZhZmFmYSk7Zm9udC13ZWlnaHQ6NjAwfS50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRoLC50YWJsZS50YWJs''@;'; + put 'put ''ZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRke2JvcmRlci10b3A6MCBub25lfS50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLC50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9k''@;'; + put 'put ''eTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xcmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0udGFibGUudGFi''@;'; + put 'put ''bGUtdmVydGljYWwgdGJvZHk6Zmlyc3Qtb2YtdHlwZSB0cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLC50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQt''@;'; + put 'put ''cmFkaXVzOi4xcmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzLCAuMXJlbSl9LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCwudGFibGUudGFibGUtdmVydGlj''@;'; + put 'put ''YWwgdGJvZHk6bGFzdC1jaGlsZCB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xcmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0u''@;'; + put 'put ''dGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6bGFzdC1jaGlsZCB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsLnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJp''@;'; + put 'put ''Z2h0LXJhZGl1czouMXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS50YWJsZS50YWJsZS1ub2JvcmRlcntib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJl''@;'; + put 'put ''bnQ7Ym9yZGVyOjB9LnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRoe2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojY2NjO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXRvcDowIG5v''@;'; + put 'put ''bmV9LnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRoOmZpcnN0LWNoaWxke2JvcmRlci1yaWdodDowIG5vbmV9LnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRke2JvcmRlci10b3A6MCBub25lO3BhZGRpbmctdG9wOi42cmVtfS50YWJsZS50YWJsZS1ub2JvcmRlciB0ZDpmaXJzdC1jaGlsZHtib3JkZXIt''@;'; + put 'put ''cmlnaHQ6MCBub25lfS50YWJsZS50YWJsZS1ub2JvcmRlciB0aGVhZCB0aDpmaXJzdC1jaGlsZCwudGFibGUudGFibGUtbm9ib3JkZXIgdGhlYWQgdGg6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjB9LnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRoLC50YWJsZS50YWJsZS1ub2JvcmRlciB0ZHti''@;'; + put 'put ''b3JkZXItcmFkaXVzOjAhaW1wb3J0YW50fS50YWJsZS50YWJsZS1ub2JvcmRlciB0aDpmaXJzdC1jaGlsZCwudGFibGUudGFibGUtbm9ib3JkZXIgdGQ6Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0OjB9LnRhYmxlLnRhYmxlLWNvbXBhY3QgdGgsLnRhYmxlLnRhYmxlLWNvbXBhY3QgdGR7cGFk''@;'; + put 'put ''ZGluZy10b3A6LjNyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS50YWJsZS50YWJsZS1jb21wYWN0LnRhYmxlLW5vYm9yZGVyIHRoLC50YWJsZS50YWJsZS1jb21wYWN0LnRhYmxlLW5vYm9yZGVyIHRke3BhZGRpbmctdG9wOi4zNXJlbTtwYWRkaW5nLWJvdHRvbTouM3JlbX06cm9vdHstLWNs''@;'; + put 'put ''ci10b29sdGlwLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci10b29sdGlwLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0t''@;'; + put 'put ''Y2xyLXRvb2x0aXAtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLXAzLWZvbnQtd2VpZ2h0KX0udG9vbHRpcHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmxlZnQ7b3ZlcmZsb3c6dmlzaWJsZX0udG9vbHRpcD4udG9vbHRpcC1jb250ZW50e3Zpc2liaWxp''@;'; + put 'put ''dHk6aGlkZGVuO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGxpbmVhcjt3aGl0ZS1zcGFjZTpub3JtYWw7ei1pbmRleDoxMDUwfS50b29sdGlwOmhvdmVyPi50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXA6Zm9jdXM+LnRvb2x0aXAtY29udGVudHt2aXNpYmlsaXR5OnZpc2libGU7''@;'; + put 'put ''b3BhY2l0eToxfS50b29sdGlwOmhvdmVyPi50b29sdGlwLWNvbnRlbnQ6ZW1wdHksLnRvb2x0aXA6Zm9jdXM+LnRvb2x0aXAtY29udGVudDplbXB0eXt2aXNpYmlsaXR5OmhpZGRlbjtvcGFjaXR5OjB9LnRvb2x0aXA6Zm9jdXN7b3V0bGluZTowfS50b29sdGlwOmZvY3VzPjpmaXJzdC1jaGls''@;'; + put 'put ''ZHtvdXRsaW5lLW9mZnNldDouMDVyZW07b3V0bGluZS13aWR0aDouMDVyZW07b3V0bGluZS1jb2xvcjojM2I5OWZjO291dGxpbmUtc3R5bGU6c29saWR9LnRvb2x0aXA+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcC50b29sdGlwLXRvcC1yaWdodD4udG9vbHRpcC1jb250ZW50LC50b29sdGlw''@;'; + put 'put ''IC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC10b3AtcmlnaHR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0LCA0MDAp''@;'; + put 'put ''O2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBibGFjayk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdG9vbHRpcC1ib3JkZXIt''@;'; + put 'put ''cmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowO3BhZGRpbmc6LjQ1cmVtIC42cmVtO3dpZHRoOjEycmVtO3Bvc2l0aW9uOmFic29sdXRlO3RvcDphdXRvO2JvdHRvbToxMDAlO2xlZnQ6NTAlO3JpZ2h0OmF1dG87Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO21h''@;'; + put 'put ''cmdpbi1ib3R0b206LjhyZW19LnRvb2x0aXA+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsLnRvb2x0aXAudG9vbHRpcC10b3AtcmlnaHQ+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLXRvcC1yaWdodDpiZWZvcmV7cG9zaXRpb246YWJz''@;'; + put 'put ''b2x1dGU7Ym90dG9tOi0uNDJyZW07bGVmdDowO3RvcDphdXRvO3JpZ2h0OmF1dG87Y29udGVudDoiIjtib3JkZXItbGVmdDouM3JlbSBzb2xpZCAjMDAwO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci10b3A6LjI1cmVtIHNvbGlk''@;'; + put 'put ''ICMwMDA7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmlnaHQ6LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTouMjVyZW0gc29saWQgdHJhbnNwYXJlbnR9LnRvb2x0aXAudG9vbHRpcC10b3AtbGVmdD4udG9v''@;'; + put 'put ''bHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC10b3AtbGVmdHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci10b29sdGlwLWNvbG9yLCB3aGl0ZSk7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRvb2x0''@;'; + put 'put ''aXAtZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGJsYWNrKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigt''@;'; + put 'put ''LWNsci10b29sdGlwLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7bGluZS1oZWlnaHQ6LjlyZW07bWFyZ2luOjA7cGFkZGluZzouNDVyZW0gLjZyZW07d2lkdGg6MTJyZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOmF1dG87Ym90dG9tOjEwMCU7cmlnaHQ6NTAlO2xlZnQ6YXV0bztib3JkZXItYm90''@;'; + put 'put ''dG9tLXJpZ2h0LXJhZGl1czowO21hcmdpbi1ib3R0b206LjhyZW19LnRvb2x0aXAudG9vbHRpcC10b3AtbGVmdD4udG9vbHRpcC1jb250ZW50OmJlZm9yZSwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtdG9wLWxlZnQ6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTot''@;'; + put 'put ''LjQycmVtO3JpZ2h0OjA7dG9wOmF1dG87bGVmdDphdXRvO2NvbnRlbnQ6IiI7Ym9yZGVyLXJpZ2h0Oi4zcmVtIHNvbGlkICMwMDA7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci10b3A6LjI1cmVtIHNvbGlkICMwMDA7Ym9yZGVy''@;'; + put 'put ''LXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItbGVmdDouM3JlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudH0udG9vbHRpcC50b29sdGlwLWJvdHRvbS1yaWdodD4udG9vbHRpcC1jb250''@;'; + put 'put ''ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0b20tcmlnaHR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29sdGlwLWZv''@;'; + put 'put ''bnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBibGFjayk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHIt''@;'; + put 'put ''dG9vbHRpcC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowO3BhZGRpbmc6LjQ1cmVtIC42cmVtO3dpZHRoOjEycmVtO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTphdXRvO3RvcDoxMDAlO2xlZnQ6NTAlO3JpZ2h0OmF1dG87Ym9yZGVyLXRvcC1sZWZ0''@;'; + put 'put ''LXJhZGl1czowO21hcmdpbi10b3A6LjhyZW19LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tcmlnaHQ+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1yaWdodDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0uNDJyZW07''@;'; + put 'put ''bGVmdDowO2JvdHRvbTphdXRvO3JpZ2h0OmF1dG87Y29udGVudDoiIjtib3JkZXItbGVmdDouM3JlbSBzb2xpZCAjMDAwO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1ib3R0b206LjI1cmVtIHNvbGlkICMwMDA7Ym9yZGVyLWJv''@;'; + put 'put ''dHRvbS1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmlnaHQ6LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnR9LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tbGVmdD4udG9vbHRpcC1jb250ZW50''@;'; + put 'put ''LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0b20tbGVmdHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci10b29sdGlwLWNvbG9yLCB3aGl0ZSk7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRvb2x0aXAtZm9udC13''@;'; + put 'put ''ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGJsYWNrKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10b29s''@;'; + put 'put ''dGlwLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7bGluZS1oZWlnaHQ6LjlyZW07bWFyZ2luOjA7cGFkZGluZzouNDVyZW0gLjZyZW07d2lkdGg6MTJyZW07cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOmF1dG87dG9wOjEwMCU7cmlnaHQ6NTAlO2xlZnQ6YXV0bztib3JkZXItdG9wLXJpZ2h0LXJh''@;'; + put 'put ''ZGl1czowO21hcmdpbi10b3A6LjhyZW19LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tbGVmdD4udG9vbHRpcC1jb250ZW50OmJlZm9yZSwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtYm90dG9tLWxlZnQ6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDotLjQycmVtO3JpZ2h0''@;'; + put 'put ''OjA7Ym90dG9tOmF1dG87bGVmdDphdXRvO2NvbnRlbnQ6IiI7Ym9yZGVyLXJpZ2h0Oi4zcmVtIHNvbGlkICMwMDA7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1ib3R0b206LjI1cmVtIHNvbGlkICMwMDA7Ym9yZGVyLWJvdHRv''@;'; + put 'put ''bS1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItbGVmdDouM3JlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudH0udG9vbHRpcC50b29sdGlwLXJpZ2h0Pi50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAg''@;'; + put 'put ''LnRvb2x0aXAtY29udGVudC50b29sdGlwLXJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OmF1dG87bGVmdDoxMDAlO3RvcDo1MCU7Ym90dG9tOmF1dG87Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWln''@;'; + put 'put ''aHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBibGFjayk7Ym9yZGVy''@;'; + put 'put ''LXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowO3BhZGRpbmc6LjQ1cmVtIC42cmVtO3dpZHRoOjEycmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDttYXJnaW4tbGVm''@;'; + put 'put ''dDouOHJlbX0udG9vbHRpcC50b29sdGlwLXJpZ2h0Pi50b29sdGlwLWNvbnRlbnQ6YmVmb3JlLC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1yaWdodDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDotLjQ1cmVtO2JvdHRvbTphdXRvO3JpZ2h0OmF1dG87Y29u''@;'; + put 'put ''dGVudDoiIjtib3JkZXItdG9wOi4zcmVtIHNvbGlkICMwMDA7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmlnaHQ6LjI1cmVtIHNvbGlkICMwMDA7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91''@;'; + put 'put ''bmQtY29sb3IpO2JvcmRlci1ib3R0b206LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6LjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50fS50b29sdGlwLnRvb2x0aXAtbGVmdD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1sZWZ0e3Bv''@;'; + put 'put ''c2l0aW9uOmFic29sdXRlO2xlZnQ6YXV0bztyaWdodDoxMDAlO3RvcDo1MCU7Ym90dG9tOmF1dG87Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29s''@;'; + put 'put ''dGlwLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBibGFjayk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIo''@;'; + put 'put ''LS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowO3BhZGRpbmc6LjQ1cmVtIC42cmVtO3dpZHRoOjEycmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7bWFyZ2luLXJpZ2h0Oi44cmVtfS50b29sdGlwLnRvb2x0aXAtbGVmdD4u''@;'; + put 'put ''dG9vbHRpcC1jb250ZW50OmJlZm9yZSwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtbGVmdDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6LS40NXJlbTtib3R0b206YXV0bztsZWZ0OmF1dG87Y29udGVudDoiIjtib3JkZXItdG9wOi4zcmVtIHNvbGlkICMw''@;'; + put 'put ''MDA7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItbGVmdDouMjVyZW0gc29saWQgIzAwMDtib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItYm90dG9tOi4zcmVtIHNvbGlk''@;'; + put 'put ''IHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnR9LnRvb2x0aXAudG9vbHRpcC14cz4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC14c3t3aWR0aDozLjZyZW19LnRvb2x0aXAudG9vbHRpcC1zbT4udG9vbHRp''@;'; + put 'put ''cC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1zbXt3aWR0aDo2cmVtfS50b29sdGlwLnRvb2x0aXAtbWQ+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtbWR7d2lkdGg6MTJyZW19LnRvb2x0aXAudG9vbHRpcC1sZz4u''@;'; + put 'put ''dG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1sZ3t3aWR0aDoxOHJlbX0udG9vbHRpcD4uYnRuKy50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAudG9vbHRpcC10b3AtcmlnaHQ+LmJ0bisudG9vbHRpcC1jb250ZW50LC50b29sdGlwLnRvb2x0aXAtdG9w''@;'; + put 'put ''LWxlZnQ+LmJ0bisudG9vbHRpcC1jb250ZW50e21hcmdpbi1ib3R0b206LjVyZW19LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tcmlnaHQ+LmJ0bisudG9vbHRpcC1jb250ZW50LC50b29sdGlwLnRvb2x0aXAtYm90dG9tLWxlZnQ+LmJ0bisudG9vbHRpcC1jb250ZW50e21hcmdpbi10b3A6LjVy''@;'; + put 'put ''ZW19LnRvb2x0aXAudG9vbHRpcC1yaWdodD4uYnRuKy50b29sdGlwLWNvbnRlbnR7bWFyZ2luLWxlZnQ6LjJyZW19LnRvb2x0aXA+LmNsci1pY29ue21hcmdpbi1yaWdodDowfS50b29sdGlwPnN2Z3twb2ludGVyLWV2ZW50czpub25lfS50b29sdGlwLXRyaWdnZXI6Zm9jdXMrLnRvb2x0aXAt''@;'; + put 'put ''Y29udGVudHt2aXNpYmlsaXR5OnZpc2libGV9OnJvb3R7LS1jbHItZm9ybS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItZm9ybXMtbGFiZWwtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtODAwKTstLWNsci1mb3Jtcy10''@;'; + put 'put ''ZXh0LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWZvcm1zLWludmFsaWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWZvcm1zLXZhbGlkLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTcwMCk7LS1jbHItZm9ybXMtdmFsaWQt''@;'; + put 'put ''dGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy05MDApOy0tY2xyLWZvcm1zLXN1YnRleHQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1mb3Jtcy1wbGFjZWhvbGRlci1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDAp''@;'; + put 'put ''Oy0tY2xyLWZvcm1zLWJvcmRlci1jb2xvcjojNmE3YTgxOy0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWZvcm1zLXN1YnRleHQtZGlzYWJsZWQtY29sb3I6IzhjOGM4YzstLWNsci1mb3Jtcy1ib3JkZXItZGlzYWJsZWQtY29sb3I6''@;'; + put 'put ''I2IzYjNiMzstLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yOiNiM2IzYjM7LS1jbHItZm9ybXMtbGFiZWwtZGlzYWJsZWQtY29sb3I6IzhjOGM4YzstLWNsci1mb3Jtcy1sYWJlbC1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtYm9sZCk7LS1jbHItZm9ybXMtYmxvY2st''@;'; + put 'put ''bGFiZWwtZm9udC13ZWlnaHQ6NDAwOy0tY2xyLWZvcm1zLXRleHQtZm9udC13ZWlnaHQ6NDAwOy0tY2xyLWZvcm1zLXRleHRhcmVhLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItZm9ybXMtdGV4dGFyZWEtZm9jdXNlZC1vdXRsaW5lOjAgMCAuMXJl''@;'; + put 'put ''bSAuMXJlbSAjNjljMGUyOy0tY2xyLWZvcm1zLXRleHRhcmVhLWludmFsaWQtZm9jdXNlZC1vdXRsaW5lOjAgMCAuMXJlbSAuMXJlbSAjZmY3NDVjOy0tY2xyLWZvcm1zLXNlbGVjdC1ob3Zlci1iYWNrZ3JvdW5kOnJnYmEoIDIyMiwgMjIyLCAyMjIsIC41ICk7LS1jbHItZm9ybXMtc2VsZWN0''@;'; + put 'put ''LWNhcmV0LWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1jbHItZm9ybXMtc2VsZWN0LWNhcmV0LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwMCk7LS1jbHItZm9ybXMtc2VsZWN0LW9wdGlvbi1jb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1jb2xv''@;'; + put 'put ''cik7LS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHRhcmVhLWJhY2tncm91bmQtY29sb3IpOy0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNs''@;'; + put 'put ''ci1mb3Jtcy1zZWxlY3QtbXVsdGlwbGUtb3B0aW9uLWNvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWNvbG9yKTstLWNsci1mb3Jtcy1zZWxlY3QtbXVsdGlwbGUtZXJyb3ItZm9jdXMtY29sb3I6I2ZmNzQ1YzstLWNsci1mb3Jtcy1jaGVja2JveC1sYWJlbC1jb2xvcjp2YXIoLS1jbHItZm9y''@;'; + put 'put ''bXMtbGFiZWwtY29sb3IpOy0tY2xyLWZvcm1zLWNoZWNrYm94LWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWZvcm1zLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1m''@;'; + put 'put ''b3Jtcy1jaGVja2JveC1tYXJrLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWZvcm1zLWNoZWNrYm94LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm0tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcik7LS1jbHItZm9ybXMtY2hlY2tib3gtZGlz''@;'; + put 'put ''YWJsZWQtbWFyay1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1mb3Jtcy1jaGVja2JveC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci1mb3Jtcy1jaGVja2JveC1jaGVja2VkLXNoYWRvdzppbnNldCAwIDAgMCAuM3Jl''@;'; + put 'put ''bSB2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvcik7LS1jbHItZm9ybXMtcmFkaW8tbGFiZWwtY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWxhYmVsLWNvbG9yKTstLWNsci1mb3Jtcy1yYWRpby1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1mb3JtLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3IpOy0tY2xyLWZvcm1zLXJhZGlvLWRpc2FibGVkLW1hcmstY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWRpc2FibGVkLW1hcmstY29sb3IpOy0tY2xyLWZvcm1zLXJhZGlvLXNlbGVjdGVkLXNoYWRvdzp2YXIoLS1jbHItZm9y''@;'; + put 'put ''bXMtY2hlY2tib3gtY2hlY2tlZC1zaGFkb3cpOy0tY2xyLWZvcm1zLXJhZGlvLWRpc2FibGVkLXNoYWRvdzp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtY2hlY2tlZC1zaGFkb3cpOy0tY2xyLWZvcm1zLXJhZGlvLWZvY3VzZWQtc2hhZG93OjAgMCAuMXJlbSAuMXJlbSAjNjljMGUyOy0tY2xy''@;'; + put 'put ''LWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCl9LmNsci1kYXRlLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXJ7bWF4LXdp''@;'; + put 'put ''ZHRoOi1tb3otZml0LWNvbnRlbnQ7bWF4LXdpZHRoOmZpdC1jb250ZW50fS5jbHItZm9ybS1jb250cm9se21hcmdpbi10b3A6MS4ycmVtO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uY2xyLWZvcm0tY29udHJvbCBpbnB1dDo6LW1z''@;'; + put 'put ''LXJldmVhbCwuY2xyLWZvcm0tY29udHJvbCBpbnB1dDo6LW1zLWNsZWFye2Rpc3BsYXk6bm9uZX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZHtjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yLCAjYjNiM2IzKX0uY2xyLWZvcm0tY29udHJv''@;'; + put 'put ''bC1kaXNhYmxlZCBsYWJlbCwuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNvbnRyb2wtbGFiZWx7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItZm9ybXMtbGFiZWwtZGlzYWJsZWQtY29sb3IsICM4YzhjOGMpfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItaW5w''@;'; + put 'put ''dXQsLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci10ZXh0YXJlYSwuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLXNlbGVjdHtjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yLCAjYjNiM2IzKTtib3JkZXItYm90dG9tLWNv''@;'; + put 'put ''bG9yOiNiM2IzYjM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtYm9yZGVyLWRpc2FibGVkLWNvbG9yLCAjYjNiM2IzKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjoj''@;'; + put 'put ''YjNiM2IzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zdWJ0ZXh0e2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXN1YnRleHQtZGlzYWJsZWQt''@;'; + put 'put ''Y29sb3IsICM4YzhjOGMpfS5jbHItZm9ybS1jb250cm9sLW11bHRpe2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6d3JhcH0uY2xyLWZvcm0tY29udHJvbC1tdWx0aSAuY2xyLWNvbnRyb2wtbGFiZWx7d2lkdGg6MTAwJX0uY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTpibG9jaztjb2xv''@;'; + put 'put ''cjojNDU0NTQ1O2NvbG9yOnZhcigtLWNsci1mb3Jtcy1sYWJlbC1jb2xvciwgIzQ1NDU0NSk7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvcm1zLWxhYmVsLWZvbnQtd2VpZ2h0LCA2MDApO2xpbmUtaGVpZ2h0Oi45cmVtfS5jbHItY29u''@;'; + put 'put ''dHJvbC1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNsci1jb250cm9sLWlubGluZXtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0fS5jbHItY29udHJvbC1pbmxpbmUgLmNsci1jb250cm9sLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJs''@;'; + put 'put ''b2NrO21hcmdpbi1yaWdodDouNnJlbTt3aWR0aDphdXRvfS5jbHItc3VidGV4dHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTouNTVyZW07bGluZS1oZWlnaHQ6LjZyZW07Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItZm9ybXMtc3VidGV4dC1jb2xvciwgIzhjOGM4Yyk7bWFyZ2luLXRv''@;'; + put 'put ''cDouM3JlbX0uY2xyLXN1YnRleHQtd3JhcHBlcntmbGV4LWJhc2lzOjEwMCU7ZGlzcGxheTpmbGV4fS5jbHItdmFsaWRhdGUtaWNvbntoZWlnaHQ6MS4ycmVtO3dpZHRoOjEuMnJlbTttaW4taGVpZ2h0OjEuMnJlbTttaW4td2lkdGg6MS4ycmVtO2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2Rpc3BsYXk6bm9uZTttYXJnaW4tbGVmdDotMS4ycmVtfS5jbHItc3VjY2VzcyAuY2xyLWlucHV0e2JvcmRlci1ib3R0b20tY29sb3I6IzNjODUwMDtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy12YWxpZC1jb2xv''@;'; + put 'put ''ciwgIzNjODUwMCl9LmNsci1zdWNjZXNzIC5jbHItdmFsaWRhdGUtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojM2M4NTAwO2NvbG9yOnZhcigtLWNsci1mb3Jtcy12YWxpZC1jb2xvciwgIzNjODUwMCk7bWFyZ2luLWxlZnQ6LS4ycmVtfS5jbHItc3VjY2VzcyAuY2xyLXN1YnRl''@;'; + put 'put ''eHR7Y29sb3I6IzI1NTIwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdmFsaWQtdGV4dC1jb2xvciwgIzI1NTIwMCl9LmNsci1lcnJvciAuY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6LS4ycmVtO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItZXJyb3IgLmNsci1zdWJ0ZXh0e2NvbG9y''@;'; + put 'put ''OiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApfS5jbHItZm9ybS1ob3Jpem9udGFsIC5jbHItZm9ybS1jb250cm9sPi5jbHItY29udHJvbC1sYWJlbCwuY2xyLWZvcm0taG9yaXpvbnRhbCAuY2xyLWZvcm0tY29udHJvbD4uY2xyLWZvcm0tY29u''@;'; + put 'put ''dHJvbC5jbHItZm9ybS1jb250cm9sLW11bHRpIC5jbHItY29udHJvbC1sYWJlbHt3aWR0aDo5LjZyZW07ZmxleC1zaHJpbms6MDttYXJnaW4tdG9wOi4xNXJlbX0uY2xyLWZvcm0taG9yaXpvbnRhbC5jbHItcm93IC5jbHItY29udHJvbC1sYWJlbHt3aWR0aDphdXRvfS5jbHItZm9ybS1ob3Jp''@;'; + put 'put ''em9udGFsIC5jbHItZm9ybS1jb250cm9se2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3d9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1mb3JtLWNvbnRyb2w+LmNsci1jb250cm9sLWxhYmVse3dpZHRoOjkuNnJlbTttaW4td2lkdGg6OS42cmVtfS5jbHItZm9ybS1jb21wYWN0IC5jbHIt''@;'; + put 'put ''Zm9ybS1jb250cm9sLmNsci1yb3c+LmNsci1jb250cm9sLWxhYmVse3dpZHRoOmF1dG87bWluLXdpZHRoOmF1dG99LmNsci1mb3JtLWNvbXBhY3QgLmNsci1jb250cm9sLWxhYmVse21hcmdpbi10b3A6LjE1cmVtfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZm9ybS1jb250cm9se2Rpc3BsYXk6''@;'; + put 'put ''ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7bWFyZ2luLXRvcDouNnJlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWNvbnRyb2wtY29udGFpbmVye2Rpc3BsYXk6ZmxleH0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLXN1YnRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRvcDouM3JlbTtt''@;'; + put 'put ''YXJnaW4tbGVmdDoxLjJyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNsci1lcnJvciAuY2xyLXN1YnRleHQsLmNsci1mb3JtLWNvbXBhY3QgLmNsci1zdWNjZXNzIC5jbHItc3VidGV4dCwuY2xyLWZvcm0tY29tcGFjdCAuY2xyLWVycm9yIC5jbHItdmFsaWRhdGUtaWNvbiwuY2xyLWZvcm0tY29t''@;'; + put 'put ''cGFjdCAuY2xyLXN1Y2Nlc3MgLmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1zdWJ0ZXh0LXdyYXBwZXJ7ZmxleC1iYXNpczphdXRvO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItZm9ybSwuY2xyLWZvcm0tZ3JvdXB7cGFkZGluZzouM3Jl''@;'; + put 'put ''bX0uY2xyLWNoZWNrYm94LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmV9LmNsci1jaGVja2JveC13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHtmb250LXdlaWdodDo0MDA7ZGlzcGxheTpibG9ja30uY2xyLWNoZWNrYm94LXdyYXBwZXJ+LmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0''@;'; + put 'put ''OjB9LmNsci1jaGVja2JveC13cmFwcGVyfi5jbHItc3VidGV4dHtkaXNwbGF5OmlubGluZS1ibG9ja30uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF17cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO3RvcDouMjVyZW07bGVmdDowO2hlaWdodDouOHJlbTt3aWR0''@;'; + put 'put ''aDouOHJlbX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgbGFiZWx7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLWhlaWdodDoxLjJyZW07cGFkZGluZy1sZWZ0OjEuMXJlbTttYXJnaW4tdG9wOjA7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MS4ycmVtO2NvbG9y''@;'; + put 'put ''OiM0NTQ1NDU7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWxhYmVsLWNvbG9yLCAjNDU0NTQ1KX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDouMnJlbTtsZWZ0OjA7Y29udGVudDoiIjtk''@;'; + put 'put ''aXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW07Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzZhN2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvciwgIzZhN2E4MSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVy''@;'; + put 'put ''LXJhZGl1czp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtYm9yZGVyLXJhZGl1cywgLjE1cmVtKX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMrbGFiZWw6YmVmb3Jle291dGxpbmU6SGlnaGxpZ2h0IHNvbGlkIC4xcmVtO291dGxpbmU6LXdlYmtpdC1m''@;'; + put 'put ''b2N1cy1yaW5nLWNvbG9yIHNvbGlkIC4xcmVtO291dGxpbmUtb2Zmc2V0Oi4wNXJlbX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7aGVpZ2h0Oi4yNXJlbTt3aWR0''@;'; + put 'put ''aDouNHJlbTtib3JkZXItbGVmdDouMXJlbSBzb2xpZDtib3JkZXItYm90dG9tOi4xcmVtIHNvbGlkO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtbWFyay1jb2xvciwgd2hpdGUpO3RvcDouMnJlbTtsZWZ0Oi4ycmVtO3RyYW5zZm9ybTp0''@;'; + put 'put ''cmFuc2xhdGVZKC4ycmVtKSByb3RhdGUoLTQ1ZGVnKX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbDpiZWZvcmV7YmFja2dyb3VuZDojMDA3MmEzO2JhY2tncm91bmQ6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWJhY2tncm91bmQtY29s''@;'; + put 'put ''b3IsICMwMDcyYTMpO2JvcmRlcjowfS5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XS5jbHItaW5kZXRlcm1pbmF0''@;'; + put 'put ''ZStsYWJlbDpiZWZvcmUsLmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmluZGV0ZXJtaW5hdGUrbGFiZWw6YmVmb3Jle2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1p''@;'; + put 'put ''bmRldGVybWluYXRlLWJvcmRlci1jb2xvciwgIzAwNzJhMyl9LmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdLmNsci1pbmRldGVybWluYXRlK2xhYmVsOmFmdGVyLC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTppbmRldGVybWluYXRl''@;'; + put 'put ''K2xhYmVsOmFmdGVye2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDA3MmEzO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyLWNvbG9yLCAjMDA3MmEzKTtkaXNwbGF5OmlubGluZS1ibG9jazt0cmFu''@;'; + put 'put ''c2Zvcm06dHJhbnNsYXRlWSguMnJlbSl9LmNsci1jaGVja2JveC13cmFwcGVyLmNsci1jaGVja2JveC1pbmxpbmV7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydH0uY2xyLWNoZWNrYm94LXdyYXBwZXIuY2xyLWNoZWNrYm94LWlubGluZSAuY2xy''@;'; + put 'put ''LWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtO3dpZHRoOmF1dG99LmNsci1lcnJvciAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3Jle2JvcmRlci1jb2xvcjojYzIxZDAwO2JvcmRlci1jb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQwMCl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1jaGVja2JveC13cmFwcGVyIGxhYmVse2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIg''@;'; + put 'put ''aW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3JlLC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyOjB9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw6YWZ0ZXJ7Ym9yZGVy''@;'; + put 'put ''LWxlZnQ6LjFyZW0gc29saWQ7Ym9yZGVyLWJvdHRvbTouMXJlbSBzb2xpZDtib3JkZXItbGVmdC1jb2xvcjojMDAwO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1kaXNhYmxlZC1tYXJrLWNvbG9yLCBibGFjayk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDAwO2Jv''@;'; + put 'put ''cmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWRpc2FibGVkLW1hcmstY29sb3IsIGJsYWNrKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZC5jbHItaW5kZXRlcm1pbmF0''@;'; + put 'put ''ZStsYWJlbDphZnRlciwuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDppbmRldGVybWluYXRlK2xhYmVsOmFmdGVye2JvcmRlci1sZWZ0Om5vbmV9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1jaGVja2Jv''@;'; + put 'put ''eC13cmFwcGVye21heC13aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQ7aGVpZ2h0OjEuMnJlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWNoZWNrYm94LXdyYXBwZXJ+LmNsci1zdWJ0ZXh0e21hcmdpbi1sZWZ0Oi4zcmVtfS5j''@;'; + put 'put ''bHItZm9ybS1jb21wYWN0IC5jbHItY2hlY2tib3gtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtO3dpZHRoOmF1dG99LmNsci1mb3JtLWNvbXBhY3QgLmNsci1jaGVja2JveC13cmFwcGVyIC5jbHItY29udHJvbC1sYWJl''@;'; + put 'put ''bHttYXJnaW4tdG9wOjB9LmNsci1maWxlLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDouM3JlbX0uY2xyLWZpbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7Zm9udC13ZWlnaHQ6NDAwO2Rpc3BsYXk6YmxvY2t9LmNsci1maWxlLXdyYXBwZXJ+LmNsci12YWxpZGF0''@;'; + put 'put ''ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1maWxlLXdyYXBwZXJ+LmNsci1zdWJ0ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItZmlsZS13cmFwcGVyIC5idG57bWFyZ2luOjB9LmNsci1maWxle2hlaWdodDowO3dpZHRoOjA7b3BhY2l0eTowO292ZXJmbG93OmhpZGRlbjtwb3NpdGlv''@;'; + put 'put ''bjphYnNvbHV0ZTt6LWluZGV4Oi0xfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZmlsZS13cmFwcGVye21heC13aWR0aDoxMDAlO21hcmdpbi10b3A6MH0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlcn4uY2xyLXN1YnRleHR7bWFyZ2luLWxlZnQ6LjNyZW19LmNsci1mb3JtLWNv''@;'; + put 'put ''bXBhY3QgLmNsci1maWxlLXdyYXBwZXJ+LmNsci12YWxpZGF0ZS1pY29ue2xpbmUtaGVpZ2h0OjEuMnJlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlcn4uY2xyLXN1YnRleHR7bGluZS1oZWlnaHQ6MS4ycmVtO21hcmdpbi10b3A6MH0uY2xyLWZvcm0tY29tcGFjdCAuY2xy''@;'; + put 'put ''LWZpbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2luLXRvcDowO2xpbmUtaGVpZ2h0OjEuMDhyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNsci1maWxlLXdyYXBwZXIgLmJ0bntoZWlnaHQ6MS4ycmVtfS5jbHItaW5wdXQtd3JhcHBlcnt3aGl0ZS1zcGFjZTpub3dyYXA7bWF4LWhl''@;'; + put 'put ''aWdodDoxLjJyZW19LmNsci1pbnB1dHstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9u''@;'; + put 'put ''ZTtiYWNrZ3JvdW5kOjAgMDtoZWlnaHQ6MS4ycmVtO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtY29sb3IsIGJsYWNrKTtib3JkZXItYm90dG9tOi4wNXJlbSBzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOiM2YTdhODE7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItZm9ybXMtYm9yZGVyLWNvbG9yLCAjNmE3YTgxKTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjAgLjNyZW07bWF4LWhlaWdodDoxLjJyZW07Zm9udC1zaXplOi42NXJlbX0uY2xyLWlucHV0OmZvY3Vze291dGxpbmU6MH0uY2xyLWlucHV0W3JlYWRvbmx5XXtib3JkZXI6MH0uY2xy''@;'; + put 'put ''LWlucHV0Om5vdChbcmVhZG9ubHldKXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sdHJhbnNwYXJlbnQgOTUlLHZhcigtLWNsci1mb3Jtcy1mb2N1c2VkLWNvbG9yLCAjMDA3MmEzKSA5NSUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MCAxMDAlO3RyYW5zaXRpb246''@;'; + put 'put ''YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlfS5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pOmZvY3VzLC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pLmNsci1mb2N1c3tib3JkZXItYm90dG9tLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtZm9jdXNl''@;'; + put 'put ''ZC1jb2xvciwgIzAwNzJhMyk7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX0uY2xyLWlucHV0OmRpc2FibGVke2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWVycm9yIC5jbHIt''@;'; + put 'put ''aW5wdXQ6bm90KFtyZWFkb25seV0pe2JvcmRlci1ib3R0b20tY29sb3I6I2MyMWQwMDtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sdHJhbnNwYXJlbnQgOTUlLHZh''@;'; + put 'put ''cigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKSA5NSUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MCAxMDAlO3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlfS5jbHItZXJyb3IgLmNsci1pbnB1dDpub3QoW3JlYWRvbmx5XSk6Zm9jdXMsLmNsci1lcnJv''@;'; + put 'put ''ciAuY2xyLWlucHV0Om5vdChbcmVhZG9ubHldKS5jbHItZm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjojYzIxZDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LmNsci1mb3JtLWNv''@;'; + put 'put ''bnRyb2wucm93IC5jbHItaW5wdXQtd3JhcHBlcnttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMS4ycmVtKX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWlucHV0e21heC13aWR0aDoxMDAlfS5jbHItZm9ybS1jb21wYWN0IC5jbHItaW5wdXR+LmNsci1zdWJ0ZXh0e21hcmdpbi1sZWZ0Oi4zcmVtfS5j''@;'; + put 'put ''bHItZm9ybS1jb250cm9sLXJlYWRvbmx5IC5jbHItaW5wdXR7Ym9yZGVyOjB9LmNsci1mb3JtLWNvbnRyb2wtbXVsdGkgLmNsci1pbnB1dHttYXgtd2lkdGg6Y2FsYygxMDAlICsgMS4ycmVtKX06OnBsYWNlaG9sZGVye2NvbG9yOiM0ZjYxNjk7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXBsYWNl''@;'; + put 'put ''aG9sZGVyLWNvbG9yLCAjNGY2MTY5KX0uY2xyLWlucHV0LWdyb3Vwe2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtY29sb3IsIGJsYWNrKTtib3JkZXItYm90dG9tOi4wNXJlbSBzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOiM2YTdhODE7Ym9yZGVyLWJvdHRvbS1jb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItZm9ybXMtYm9yZGVyLWNvbG9yLCAjNmE3YTgxKTtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sdHJhbnNwYXJlbnQgOTUlLHZhcigtLWNsci1mb3Jtcy1mb2N1c2VkLWNvbG9yLCAjMDA3MmEzKSA5NSUpIG5vLXJl''@;'; + put 'put ''cGVhdDtiYWNrZ3JvdW5kLXNpemU6MCAxMDAlO3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlO21heC13aWR0aDoxMDAlO2hlaWdodDoxLjJyZW19LmNsci1pbnB1dC1ncm91cDpmb2N1cywuY2xyLWlucHV0LWdyb3VwLmNsci1mb2N1c3tib3JkZXItYm90dG9tLWNvbG9yOiMw''@;'; + put 'put ''MDcyYTM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtZm9jdXNlZC1jb2xvciwgIzAwNzJhMyk7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX0uY2xyLWlucHV0LWdyb3VwLmNsci1mb2N1c3t3aWR0aDphdXRvfS5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dHtiYWNrZ3Jv''@;'; + put 'put ''dW5kOjAgMDtib3JkZXI6MDttYXJnaW4tcmlnaHQ6MDttYXgtd2lkdGg6MTAwJX0uY2xyLWlucHV0LWdyb3VwIC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pOmZvY3Vze2JhY2tncm91bmQtc2l6ZTowO2JvcmRlcjowfS5jbHItaW5wdXQtZ3JvdXAgc2VsZWN0LC5jbHItaW5wdXQtZ3JvdXAg''@;'; + put 'put ''LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3QsLmNsci1pbnB1dC1ncm91cCAuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0e2JvcmRlcjowfS5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dC1ncm91cC1hZGRvbntjb2xvcjojOGM4YzhjO2NvbG9yOnZhcigtLWNsci1mb3Jtcy1zdWJ0''@;'; + put 'put ''ZXh0LWNvbG9yLCAjOGM4YzhjKX0uY2xyLWlucHV0LWdyb3VwIC5jbHItaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGR7cGFkZGluZzowIDAgMCAuNDVyZW19LmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGR7cGFkZGluZzowIC40NXJlbSAwIDB9''@;'; + put 'put ''LmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0LWdyb3VwLWljb24tYWN0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXIt''@;'; + put 'put ''cmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IsICMwMDcyYTMpO3BhZGRpbmc6MCAuNDVyZW19YnV0dG9uLmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0LWdyb3VwLWljb24tYWN0''@;'; + put 'put ''aW9ue2N1cnNvcjpwb2ludGVyfS5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dC1ncm91cC1pY29uLWFjdGlvbiBjZHMtaWNvbiwuY2xyLWlucHV0LWdyb3VwIC5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb24gY2xyLWljb257aGVpZ2h0Oi45cmVtO3dpZHRoOi45cmVtO3RyYW5zZm9ybTp0''@;'; + put 'put ''cmFuc2xhdGUoLS4wNXJlbSwtLjA1cmVtKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWlucHV0LWdyb3VwLWljb24tYWN0aW9ue2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dl''@;'; + put 'put ''ZH0uY2xyLWVycm9yIC5jbHItaW5wdXQtZ3JvdXB7Ym9yZGVyLWJvdHRvbS1jb2xvcjojYzIxZDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSx0cmFuc3BhcmVu''@;'; + put 'put ''dCA5NSUsdmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LmNsci1lcnJvciAuY2xyLWlucHV0LWdyb3VwOmZvY3VzLC5jbHItZXJyb3Ig''@;'; + put 'put ''LmNsci1pbnB1dC1ncm91cC5jbHItZm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjojYzIxZDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LmNsci1mb3JtLWhvcml6b250YWwgLmNs''@;'; + put 'put ''ci1pbnB1dC1ncm91cHttYXgtd2lkdGg6MTAwJTtwYWRkaW5nLXJpZ2h0OjB9LmNsci1yYWRpby13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2xpbmUtaGVpZ2h0OjEuMnJlbX0uY2xyLXJhZGlvLXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVse2ZvbnQtd2VpZ2h0OjQwMDtkaXNwbGF5OmJs''@;'; + put 'put ''b2NrfS5jbHItcmFkaW8td3JhcHBlcn4uY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6MH0uY2xyLXJhZGlvLXdyYXBwZXJ+LmNsci1zdWJ0ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXXtwb3NpdGlvbjphYnNvbHV0ZTtv''@;'; + put 'put ''cGFjaXR5OjA7dG9wOi4yNXJlbTtsZWZ0OjA7aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtfS5jbHItcmFkaW8td3JhcHBlciBsYWJlbHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazttaW4taGVpZ2h0OjEuMnJlbTtwYWRkaW5nLWxlZnQ6MS4xcmVtO21hcmdpbi10b3A6''@;'; + put 'put ''MDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDoxLjJyZW07Y29sb3I6IzQ1NDU0NTtjb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFkaW8tbGFiZWwtY29sb3IsICM0NTQ1NDUpfS5jbHItcmFkaW8td3JhcHBlciBsYWJlbDplbXB0eXtwYWRkaW5nLWxlZnQ6MH0uY2xyLXJhZGlvLXdyYXBwZXIg''@;'; + put 'put ''aW5wdXRbdHlwZT1yYWRpb10rbGFiZWw6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDouMnJlbTtsZWZ0OjA7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW07Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzZhN2E4MTti''@;'; + put 'put ''b3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvciwgIzZhN2E4MSk7Ym9yZGVyLXJhZGl1czo1MCV9LmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw6YmVmb3Jle2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgLjNyZW0gIzAwNzJhMzti''@;'; + put 'put ''b3gtc2hhZG93OnZhcigtLWNsci1mb3Jtcy1yYWRpby1zZWxlY3RlZC1zaGFkb3csIGluc2V0IDAgMCAwIC4zcmVtICMwMDcyYTMpO2JvcmRlcjowfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cytsYWJlbDpiZWZvcmV7b3V0bGluZTpIaWdobGlnaHQgc29saWQg''@;'; + put 'put ''LjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3Igc29saWQgLjFyZW07b3V0bGluZS1vZmZzZXQ6LjA1cmVtfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1czpjaGVja2VkK2xhYmVsOmJlZm9yZXtvdXRsaW5lOkhpZ2hsaWdodCBzb2xpZCAuMXJl''@;'; + put 'put ''bTtvdXRsaW5lOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBzb2xpZCAuMXJlbTtvdXRsaW5lLW9mZnNldDouMDVyZW19LmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dOmRpc2FibGVkK2xhYmVsOmJlZm9yZXtib3JkZXI6MDtib3gtc2hhZG93Omluc2V0IDAgMCAwIC42cmVt''@;'; + put 'put ''ICNlOGU4ZTg7Ym94LXNoYWRvdzp2YXIoLS1pbnNldCAwIDAgMCAuNnJlbSAjZThlOGU4LCBpbnNldCAwIDAgMCAuNnJlbSAjZThlOGU4KX0uY2xyLXJhZGlvLXdyYXBwZXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpkaXNhYmxlZCtsYWJlbDpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjoj''@;'; + put 'put ''NjY2O2JhY2tncm91bmQtY29sb3I6dmFyKC0tIzY2NjY2NiwgIzY2NjY2Nik7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAuM3JlbSAjZThlOGU4O2JveC1zaGFkb3c6dmFyKC0taW5zZXQgMCAwIDAgLjNyZW0gI2U4ZThlOCwgaW5zZXQgMCAwIDAgLjNyZW0gI2U4ZThlOCl9LmNsci1mb3JtLWNv''@;'; + put 'put ''bnRyb2wtZGlzYWJsZWQgLmNsci1yYWRpby13cmFwcGVyIGxhYmVse2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWVycm9yIC5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXStsYWJlbDpiZWZvcmV7Ym9yZGVyLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1m''@;'; + put 'put ''b3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWVycm9yIC5jbHItc3VidGV4dHttYXJnaW4tbGVmdDowfS5jbHItZm9ybS1jb21wYWN0IC5jbHItcmFkaW8td3JhcHBlcnttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7''@;'; + put 'put ''YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0O2hlaWdodDoxLjJyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNsci1yYWRpby13cmFwcGVyfi5jbHItc3VidGV4dHttYXJnaW4tbGVmdDouM3JlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLXJhZGlvLXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVse2Rp''@;'; + put 'put ''c3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDouNnJlbTt3aWR0aDphdXRvfS5jbHItZm9ybS1jb21wYWN0IC5jbHItcmFkaW8td3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2luLXRvcDowfS5jbHItc2VsZWN0LXdyYXBwZXIsLmNsci1tdWx0aXNlbGVjdC13cmFwcGVye3Bv''@;'; + put 'put ''c2l0aW9uOnJlbGF0aXZlO3doaXRlLXNwYWNlOm5vd3JhcH0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdCwuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0ey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBw''@;'; + put 'put ''ZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2hlaWdodDoxLjJyZW07Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1jb2xvciwgYmxhY2spO2JvcmRlci1ib3R0''@;'; + put 'put ''b206LjA1cmVtIHNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6IzZhN2E4MTtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IsICM2YTdhODEpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAxLjFyZW0gMCAuM3Jl''@;'; + put 'put ''bTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6LjY1cmVtO3otaW5kZXg6Mn0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpmb2N1cywuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0OmZvY3Vze291dGxpbmU6MH0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpub3QoW211bHRpcGxl''@;'; + put 'put ''XSksLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNlbGVjdDpub3QoW211bHRpcGxlXSl7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHRyYW5zcGFyZW50IDk1JSx2YXIoLS1jbHItZm9ybXMtZm9jdXNlZC1jb2xvciwgIzAwNzJhMykgOTUlKSBuby1yZXBlYXQ7YmFja2dy''@;'; + put 'put ''b3VuZC1zaXplOjAgMTAwJTt0cmFuc2l0aW9uOmJhY2tncm91bmQtc2l6ZSAuMnMgZWFzZX0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpub3QoW211bHRpcGxlXSk6Zm9jdXMsLmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6bm90KFttdWx0aXBsZV0pLmNsci1mb2N1cywuY2xyLW11bHRp''@;'; + put 'put ''c2VsZWN0LXdyYXBwZXIgc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpmb2N1cywuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0Om5vdChbbXVsdGlwbGVdKS5jbHItZm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDA3MmEzO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1z''@;'; + put 'put ''LWZvY3VzZWQtY29sb3IsICMwMDcyYTMpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3RbbXVsdGlwbGVdOmZvY3VzLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3RbbXVsdGlwbGVdOmZvY3Vze291dGxpbmU6SGlnaGxpZ2h0IGF1dG8g''@;'; + put 'put ''LjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3IgYXV0byAuMXJlbX0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpob3ZlciwuY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDphY3RpdmUsLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNlbGVjdDpob3ZlciwuY2xyLW11bHRp''@;'; + put 'put ''c2VsZWN0LXdyYXBwZXIgc2VsZWN0OmFjdGl2ZXtib3JkZXItY29sb3I6I2RlZGVkZTgwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LWhvdmVyLWJhY2tncm91bmQsIHJnYmEoMjIyLCAyMjIsIDIyMiwgLjUpKTtiYWNrZ3JvdW5kOnJnYmEoMjIyLDIyMiwyMjIsLjUpO2Jh''@;'; + put 'put ''Y2tncm91bmQ6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1ob3Zlci1iYWNrZ3JvdW5kLCByZ2JhKDIyMiwgMjIyLCAyMjIsIC41KSl9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6ZGlzYWJsZWQgb3B0aW9uLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3Q6ZGlzYWJsZWQgb3B0aW9u''@;'; + put 'put ''e2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdCBvcHRpb24sLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNlbGVjdCBvcHRpb257Y29sb3I6''@;'; + put 'put ''IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW9wdGlvbi1jb2xvciwgYmxhY2spfS5jbHItc2VsZWN0LXdyYXBwZXIgc2VsZWN0OjotbXMtZXhwYW5kLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3Q6Oi1tcy1leHBhbmR7ZGlzcGxheTpub25lfS5jbHItc2VsZWN0LXdy''@;'; + put 'put ''YXBwZXJ7bWF4LWhlaWdodDoxLjJyZW07ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNsci1zZWxlY3Qtd3JhcHBlcjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2hlaWdodDouNXJlbTt3aWR0aDouNXJlbTt0b3A6LjM1cmVtO3JpZ2h0Oi4zcmVtO2JhY2tncm91bmQtaW1hZ2U6''@;'; + put 'put ''dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMiUyMDEyJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDZGVmcyUzRSUwQSUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3N0eWxlJTNFLmNscy0xJTdCZmlsbCUzQSUyM2IzYjNiMyUzQiU3RCUzQyUyRnN0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFQ2FyZXQlM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUz''@;'; + put 'put ''Q3BhdGglMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwZCUzRCUyMk02JTJDOUwxLjIlMkM0LjJhMC42OCUyQzAuNjglMkMwJTJDMCUyQzElMkMxLTFMNiUyQzcuMDglMkM5Ljg0JTJDMy4yNGEwLjY4JTJDMC42OCUyQzAlMkMxJTJDMSUyQzElMkMxWiUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUw''@;'; + put 'put ''QSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46MH0uY2xyLXNlbGVjdC13cmFwcGVyOmhvdmVyOmFmdGVye2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1jYXJl''@;'; + put 'put ''dC1ob3Zlci1jb2xvciwgIzhjOGM4Yyl9LmNsci1lcnJvciAuY2xyLXNlbGVjdC13cmFwcGVyOmFmdGVyLC5jbHItc3VjY2VzcyAuY2xyLXNlbGVjdC13cmFwcGVyOmFmdGVye3JpZ2h0OjEuNXJlbX0uY2xyLW11bHRpc2VsZWN0LXdyYXBwZXJ7ZGlzcGxheTpmbGV4fS5jbHItbXVsdGlzZWxl''@;'; + put 'put ''Y3Qtd3JhcHBlciAuY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6MH1zZWxlY3RbbXVsdGlwbGVdLHNlbGVjdFtzaXplXXtwYWRkaW5nOjA7YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1iYWNrZ3JvdW5kLWNvbG9yLCB3aGl0''@;'; + put 'put ''ZSk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3Jk''@;'; + put 'put ''ZXJyYWRpdXMsIC4xNXJlbSk7aGVpZ2h0OmF1dG87bWluLXdpZHRoOjZyZW19c2VsZWN0W211bHRpcGxlXTpob3ZlcixzZWxlY3RbbXVsdGlwbGVdOmFjdGl2ZSxzZWxlY3Rbc2l6ZV06aG92ZXIsc2VsZWN0W3NpemVdOmFjdGl2ZXtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1j''@;'; + put 'put ''bHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLWJhY2tncm91bmQtY29sb3IsIHdoaXRlKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfXNlbGVjdFttdWx0aXBsZV0gb3B0aW9uLHNlbGVj''@;'; + put 'put ''dFtzaXplXSBvcHRpb257cGFkZGluZzouMTVyZW0gLjNyZW07Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLW9wdGlvbi1jb2xvciwgYmxhY2spfS5jbHItZXJyb3Igc2VsZWN0Om5vdChbbXVsdGlwbGVdKXtib3JkZXItYm90dG9tLWNvbG9yOiNjMjFk''@;'; + put 'put ''MDA7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQwMCl9LmNsci1lcnJvciBzZWxlY3RbbXVsdGlwbGVde2JvcmRlci1jb2xvcjojYzIxZDAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQwMCl9''@;'; + put 'put ''LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3QuZGlzYWJsZWR7Y29sb3I6I2IzYjNiMztjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyk7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHIt''@;'; + put 'put ''c2VsZWN0LmRpc2FibGVkOmhvdmVyOmFmdGVye2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1jYXJldC1jb2xvciwgI2IzYjNiMyl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3QuZGlzYWJsZWQ+c2VsZWN0LC5jbHItZm9ybS1jb250cm9s''@;'; + put 'put ''LWRpc2FibGVkIC5jbHItc2VsZWN0IHNlbGVjdDpkaXNhYmxlZHtjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yLCAjYjNiM2IzKTtjdXJzb3I6bm90LWFsbG93ZWR9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3QuZGlz''@;'; + put 'put ''YWJsZWQ+c2VsZWN0OmhvdmVyLC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItc2VsZWN0IHNlbGVjdDpkaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMDtib3JkZXItY29sb3I6IzZhN2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvciwgIzZhN2E4''@;'; + put 'put ''MSl9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1tdWx0aXNlbGVjdC13cmFwcGVye21hcmdpbi10b3A6MH0uY2xyLXRleHRhcmVhLXdyYXBwZXJ7d2hpdGUtc3BhY2U6bm93cmFwO2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOi4zcmVtfS5jbHItdGV4dGFyZWEtd3JhcHBlciAuY2xyLXZhbGlkYXRl''@;'; + put 'put ''LWljb257bWFyZ2luLWxlZnQ6MH0uY2xyLXRleHRhcmVhe21heC13aWR0aDpjYWxjKDEwMCUgLSAuM3JlbSk7aGVpZ2h0OmF1dG87cmVzaXplOnZlcnRpY2FsO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1mb3Jtcy10ZXh0YXJlYS1iYWNrZ3JvdW5kLWNvbG9yLCB3aGl0''@;'; + put 'put ''ZSk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzZhN2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvciwgIzZhN2E4MSk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1jb2xvciwgYmxhY2spO2JvcmRlci1yYWRpdXM6LjE1''@;'; + put 'put ''cmVtO3BhZGRpbmc6LjRyZW0gLjZyZW07Zm9udC1zaXplOi42NXJlbX0uY2xyLXRleHRhcmVhOmZvY3Vze291dGxpbmU6SGlnaGxpZ2h0IGF1dG8gLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3IgYXV0byAuMXJlbX0uY2xyLXRleHRhcmVhOmRpc2FibGVke2NvbG9yOiNi''@;'; + put 'put ''M2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWVycm9yIC5jbHItdGV4dGFyZWF7Ym9yZGVyLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9y''@;'; + put 'put ''LCAjYzIxZDAwKX0uY2xyLWNvbnRyb2wtY29udGFpbmVyIHRleHRhcmVhe3dpZHRoOmF1dG99LmNsci1mb3JtLWNvbnRyb2wucm93IC5jbHItdGV4dGFyZWEtd3JhcHBlcnttYXgtd2lkdGg6Y2FsYygxMDAlIC0gLjNyZW0pfS5jbHItZm9ybS1jb21wYWN0IC5jbHItdGV4dGFyZWEtd3JhcHBl''@;'; + put 'put ''cnttYXJnaW4tdG9wOjB9LmNsci1mb3JtLWNvbXBhY3QgLmNsci10ZXh0YXJlYS13cmFwcGVyIC5jbHItdGV4dGFyZWF7bWF4LXdpZHRoOjEwMCV9LmNsci1mb3JtLWNvbXBhY3QgLmNsci10ZXh0YXJlYS13cmFwcGVyIC5jbHItdGV4dGFyZWF+LmNsci1zdWJ0ZXh0e21hcmdpbi1sZWZ0Oi4z''@;'; + put 'put ''cmVtfTpyb290ey0tY2xyLXRvZ2dsZS1iZy1jb2xvci1vZmY6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci10b2dnbGUtYmctY29sb3Itb246dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNTAwKTstLWNsci10b2dnbGUtaGFuZGxlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1u''@;'; + put 'put ''ZXV0cmFsLTUwKTstLWNsci10b2dnbGUtZGlzYWJsZWQtZGVmYXVsdC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci10b2dnbGUtZGlzYWJsZWQtZGVmYXVsdC1oYW5kbGUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItdG9nZ2xl''@;'; + put 'put ''LWRpc2FibGVkLW9mZi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1iZy1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLWRlZmF1bHQtaGFuZGxlLWNvbG9yKTstLWNsci10''@;'; + put 'put ''b2dnbGUtZGlzYWJsZWQtb2ZmLWhhbmRsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLWRlZmF1bHQtYm9yZGVy''@;'; + put 'put ''LWNvbG9yKTstLWNsci10b2dnbGUtZGlzYWJsZWQtb24tYmctY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWhhbmRsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZh''@;'; + put 'put ''dWx0LWhhbmRsZS1jb2xvcil9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZX0uY2xyLXRvZ2dsZS13cmFwcGVye2hl''@;'; + put 'put ''aWdodDoxLjJyZW07dmVydGljYWwtYWxpZ246bWlkZGxlO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIgbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXI7''@;'; + put 'put ''aGVpZ2h0OjEuMnJlbTttYXJnaW4tbGVmdDoyLjFyZW07bWFyZ2luLXJpZ2h0OjB9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjNyZW07cmlnaHQ6LjNyZW07aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO29wYWNpdHk6MH0u''@;'; + put 'put ''Y2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdK2xhYmVsOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2hlaWdodDouOXJlbTt3aWR0aDoxLjY1cmVtO2JvcmRlcjouMXJlbSBzb2xpZDtib3JkZXItcmFkaXVzOi40''@;'; + put 'put ''NXJlbTtib3JkZXItY29sb3I6IzhjOGM4Yztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1iZy1jb2xvci1vZmYsICM4YzhjOGMpO2JhY2tncm91bmQtY29sb3I6IzhjOGM4YztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtYmctY29sb3Itb2ZmLCAjOGM4YzhjKTt0b3A6''@;'; + put 'put ''LjE1cmVtO3JpZ2h0OjA7bGVmdDotMi4xcmVtO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0''@;'; + put 'put ''eXBlPWNoZWNrYm94XTpmb2N1cytsYWJlbDpiZWZvcmV7b3V0bGluZTpIaWdobGlnaHQgc29saWQgLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3Igc29saWQgLjFyZW07b3V0bGluZS1vZmZzZXQ6LjA1cmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVj''@;'; + put 'put ''a2JveF06Y2hlY2tlZCtsYWJlbDpiZWZvcmV7Ym9yZGVyLWNvbG9yOiM1YWEyMjA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10b2dnbGUtYmctY29sb3Itb24sICM1YWEyMjApO2JhY2tncm91bmQtY29sb3I6IzVhYTIyMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtYmctY29s''@;'; + put 'put ''b3Itb24sICM1YWEyMjApO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94''@;'; + put 'put ''XStsYWJlbDphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2hlaWdodDouN3JlbTt3aWR0aDouN3JlbTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci1jb2xvcjojZmFmYWZhO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWhhbmRs''@;'; + put 'put ''ZS1iZy1jb2xvciwgI2ZhZmFmYSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtaGFuZGxlLWJnLWNvbG9yLCAjZmFmYWZhKTt0b3A6LjI1cmVtO3JpZ2h0OjA7bGVm''@;'; + put 'put ''dDotMnJlbTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjt0cmFuc2l0aW9uLXByb3BlcnR5OnJpZ2h0LGxlZnR9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmFmdGVye3JpZ2h0''@;'; + put 'put ''Oi0ycmVtO2xlZnQ6LTEuMjVyZW07dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodCxsZWZ0fS5jbHItdG9nZ2xlLXdyYXBwZXIuZGlzYWJsZWQgbGFiZWx7b3BhY2l0eTouNDtjdXJzb3I6''@;'; + put 'put ''bm90LWFsbG93ZWR9LmNsci10b2dnbGUtd3JhcHBlci5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmJlZm9yZXtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vbi1ib3JkZXItY29sb3IsICNjY2NjY2Mp''@;'; + put 'put ''O2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtZGlzYWJsZWQtb24tYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkK2xhYmVse2N1cnNvcjpub3QtYWxsb3dl''@;'; + put 'put ''ZH0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkK2xhYmVsOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1jb2xvcjoj''@;'; + put 'put ''Y2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQrbGFiZWw6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQt''@;'; + put 'put ''Y29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vZmYtYmctY29sb3IsIHdoaXRlKTtib3JkZXItd2lkdGg6LjFyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1oYW5kbGUtYm9yZGVy''@;'; + put 'put ''LWNvbG9yLCAjY2NjY2NjKTtoZWlnaHQ6LjlyZW07d2lkdGg6LjlyZW07dG9wOi4xNXJlbX0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6ZGlzYWJsZWQrbGFiZWw6YmVmb3Jle2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''dG9nZ2xlLWRpc2FibGVkLW9uLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vbi1iZy1jb2xvciwgI2NjY2NjYyl9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNr''@;'; + put 'put ''Ym94XTpjaGVja2VkOmRpc2FibGVkK2xhYmVsOmFmdGVye2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWhhbmRsZS1ib3JkZXItY29sb3IsIHdoaXRlKTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07dG9wOi4yNXJlbTtsZWZ0Oi0x''@;'; + put 'put ''LjI1cmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQrbGFiZWw6YWZ0ZXJ7bGVmdDotMi4xcmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIucmlnaHQtbGFiZWwgbGFiZWx7bWFyZ2luLWxlZnQ6Mi4xcmVtO21hcmdpbi1yaWdodDowfS5jbHItdG9nZ2xl''@;'; + put 'put ''LXdyYXBwZXIucmlnaHQtbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3Jle3JpZ2h0OjA7bGVmdDotMi4xcmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIucmlnaHQtbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YWZ0ZXJ7cmlnaHQ6MDtsZWZ0Oi0ycmVtO3RyYW5z''@;'; + put 'put ''aXRpb24tcHJvcGVydHk6bGVmdH0uY2xyLXRvZ2dsZS13cmFwcGVyLnJpZ2h0LWxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw6YWZ0ZXJ7bGVmdDotMS4yNXJlbTt0cmFuc2l0aW9uLXByb3BlcnR5OmxlZnR9LmNsci10b2dnbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wt''@;'; + put 'put ''bGFiZWx7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4ycmVtfS5jbHItY29udHJvbC1pbmxpbmUgLmNsci10b2dnbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtfS5jbHItdG9nZ2xl''@;'; + put 'put ''LXJpZ2h0IGxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoyLjFyZW07bWFyZ2luLWxlZnQ6MH0uY2xyLXRvZ2dsZS1yaWdodCBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDpiZWZvcmV7bGVmdDp1bnNldDtyaWdodDotMi4xcmVtfS5jbHItdG9nZ2xlLXJpZ2h0IGlu''@;'; + put 'put ''cHV0W3R5cGU9Y2hlY2tib3hdK2xhYmVsOmFmdGVye2xlZnQ6dW5zZXQ7cmlnaHQ6LTEuMjVyZW07dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodH0uY2xyLXRvZ2dsZS1yaWdodCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmFmdGVye2xlZnQ6dW5zZXQ7cmlnaHQ6LTJyZW07''@;'; + put 'put ''dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodH0uY2xyLXRvZ2dsZS1yaWdodCBpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZCtsYWJlbDphZnRlcntsZWZ0OnVuc2V0O3JpZ2h0Oi0xLjNyZW19LmNsci10b2dnbGUtcmlnaHQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpkaXNhYmxl''@;'; + put 'put ''ZCtsYWJlbDphZnRlcntsZWZ0OnVuc2V0O3JpZ2h0Oi0ycmVtfS5jbHItdG9nZ2xlLXJpZ2h0IC5jbHItY29udHJvbC1pbmxpbmUgLmNsci10b2dnbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2luLXJpZ2h0OjIuN3JlbX0uY2xyLXJhbmdlLXdyYXBwZXJ7cG9zaXRpb246cmVs''@;'; + put 'put ''YXRpdmU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtZW5kO2hlaWdodDouN3JlbTt3aGl0ZS1zcGFjZTpub3dyYXB9LmNsci1yYW5nZS13cmFwcGVyIC5maWxsLWlucHV0e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtkaXNwbGF5Omlu''@;'; + put 'put ''bGluZS1ibG9jaztoZWlnaHQ6LjJyZW07cG9pbnRlci1ldmVudHM6bm9uZTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjEwO2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS1wcm9ncmVzcy1maWxsLWNvbG9yLCAjMDA3MmEzKX0u''@;'; + put 'put ''Y2xyLXJhbmdle2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2hlaWdodDouN3JlbX0uY2xyLXJhbmdlOmRpc2FibGVkLC5jbHItcmFuZ2U6ZGlzYWJsZWQrLmZpbGwtaW5wdXR7cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6bm90LWFs''@;'; + put 'put ''bG93ZWR9aW5wdXRbdHlwZT1yYW5nZV17cGFkZGluZzowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2xlZnQ6MDtoZWlnaHQ6LjJyZW07YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWNvbG9yLCAjZThlOGU4KX1p''@;'; + put 'put ''bnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7aGVpZ2h0Oi4ycmVtO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1jb2xvciwgI2U4ZThlOCl9aW5w''@;'; + put 'put ''dXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iey13ZWJraXQtYXBwZWFyYW5jZTpub25lO21hcmdpbi10b3A6LS4yNXJlbTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfWlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRyYWNre2hlaWdodDouMnJlbTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1j''@;'; + put 'put ''bHItZm9ybXMtcmFuZ2UtdHJhY2stY29sb3IsICNlOGU4ZTgpfWlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRodW1ie2JvcmRlcjowO21hcmdpbi10b3A6LS4yNXJlbTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3''@;'; + put 'put ''MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfUBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjphdXRvKXsuY2xyLXJhbmdlLXdyYXBwZXIgLmZpbGwtaW5wdXR7ZGlzcGxheTpub25lfS5jbHItcmFuZ2Utd3JhcHBl''@;'; + put 'put ''ci5wcm9ncmVzcy1maWxsIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtZmlsbC1sb3dlcntoZWlnaHQ6LjJyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfWlucHV0W3R5''@;'; + put 'put ''cGU9cmFuZ2Vde2JvcmRlcjowO21hcmdpbjowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2xlZnQ6MDtoZWlnaHQ6LjdyZW19aW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10cmFja3ttYXJnaW46MDtib3JkZXI6MDtoZWlnaHQ6LjJyZW07Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjoj''@;'; + put 'put ''ZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWNvbG9yLCAjZThlOGU4KX1pbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRodW1ie2JvcmRlcjowO21hcmdpbi10b3A6MDtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07YmFj''@;'; + put 'put ''a2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfX1fOi1tcy1mdWxsc2NyZWVuIC5jbHItcmFuZ2Utd3JhcHBlciAuZmlsbC1pbnB1dCw6cm9vdCAuY2xyLXJhbmdlLXdyYXBwZXIg''@;'; + put 'put ''LmZpbGwtaW5wdXR7ZGlzcGxheTpub25lfV86LW1zLWZ1bGxzY3JlZW4gLmNsci1yYW5nZS13cmFwcGVyLnByb2dyZXNzLWZpbGwgaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy1maWxsLWxvd2VyLDpyb290IC5jbHItcmFuZ2Utd3JhcHBlci5wcm9ncmVzcy1maWxsIGlucHV0W3R5cGU9cmFuZ2Vd''@;'; + put 'put ''OjotbXMtZmlsbC1sb3dlcntoZWlnaHQ6LjJyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfV86LW1zLWZ1bGxzY3JlZW4gaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10''@;'; + put 'put ''b29sdGlwLDpyb290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdG9vbHRpcHt2aXNpYmlsaXR5OmhpZGRlbn1fOi1tcy1mdWxsc2NyZWVuIGlucHV0W3R5cGU9cmFuZ2VdLDpyb290IGlucHV0W3R5cGU9cmFuZ2Vde2JvcmRlcjowO21hcmdpbjowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2xl''@;'; + put 'put ''ZnQ6MDtoZWlnaHQ6LjdyZW19XzotbXMtZnVsbHNjcmVlbiBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRyYWNrLDpyb290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdHJhY2t7Ym9yZGVyOjA7bWFyZ2luOjA7aGVpZ2h0Oi4ycmVtO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6I2U4''@;'; + put 'put ''ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1jb2xvciwgI2U4ZThlOCl9XzotbXMtZnVsbHNjcmVlbiBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRodW1iLDpyb290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdGh1bWJ7Ym9yZGVyOjA7bWFyZ2luLXRv''@;'; + put 'put ''cDowO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDouN3JlbTt3aWR0aDouN3JlbTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtcHJvZ3Jlc3MtZmlsbC1jb2xvciwgIzAwNzJhMyl9aW5wdXRbY2xyRGF0YWxpc3RdOjotd2Vi''@;'; + put 'put ''a2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3J7ZGlzcGxheTpub25lfWNsci1kYXRhbGlzdC1jb250YWluZXIgLmNsci1pbnB1dC1ncm91cHtwYWRkaW5nLXJpZ2h0OjB9OnJvb3R7LS1jbHItY2FsZW5kYXItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTst''@;'; + put 'put ''LWNsci1jYWxlbmRhci1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1kYXRlcGlja2VyLXRyaWdnZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWRhdGVwaWNrZXItdHJpZ2dlci1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29s''@;'; + put 'put ''b3ItYWN0aW9uLTgwMCk7LS1jbHItY2FsZW5kYXItYnRuLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1jYWxlbmRhci1idG4taG92ZXItZm9jdXMtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1ob3Zlci1jb2xvcik7LS1jbHItY2FsZW5kYXItcGlja2VyLWJ0bi1mb250''@;'; + put 'put ''LXNpemU6LjlyZW07LS1jbHItY2FsZW5kYXItcGlja2VyLWJ0bi1mb250LXdlaWdodDoyMDA7LS1jbHItY2FsZW5kYXItdG9kYXktZGF0ZS1jZWxsLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWNhbGVuZGFyLXRvZGF5LWRhdGUtY2VsbC1mb250LXdlaWdodDo2''@;'; + put 'put ''MDA7LS1jbHItY2FsZW5kYXItYWN0aXZlLWNlbGwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLXNlbGVjdGlvbi1jb2xvcik7LS1jbHItY2FsZW5kYXItYWN0aXZlLWZvY3VzLWNlbGwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLXNlbGVjdGlvbi1jb2xvcik7''@;'; + put 'put ''LS1jbHItY2FsZW5kYXItYWN0aXZlLWNlbGwtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItZGF5LWZvbnQtc2l6ZTouNnJlbX0uZGF0ZS1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5k''@;'; + put 'put ''YXRlcGlja2VyLXRyaWdnZXJ7aGVpZ2h0OjEuOHJlbTttaW4td2lkdGg6MS44cmVtO3BhZGRpbmc6MDttYXJnaW46MCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVz''@;'; + put 'put ''LCAuMTVyZW0pO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuOHJlbX0uZGF0ZXBpY2tlci10cmlnZ2VyIC5kYXRlcGlja2VyLXRyaWdnZXItaWNvbntmaWxsOiMwMDcyYTM7ZmlsbDp2YXIoLS1jbHItZGF0ZXBpY2tlci10cmlnZ2VyLWNvbG9yLCAjMDA3MmEz''@;'; + put 'put ''KX0uZGF0ZXBpY2tlci10cmlnZ2VyIC5kYXRlcGlja2VyLXRyaWdnZXItaWNvbjpob3ZlcntmaWxsOiMwMDU2N2E7ZmlsbDp2YXIoLS1jbHItZGF0ZXBpY2tlci10cmlnZ2VyLWhvdmVyLWNvbG9yLCAjMDA1NjdhKX0uZGF0ZXBpY2tlci10cmlnZ2VyOmRpc2FibGVke2N1cnNvcjpub3QtYWxs''@;'; + put 'put ''b3dlZH0uY2xyLWZvcm0tY29udHJvbCAuZGF0ZXBpY2tlci10cmlnZ2Vye2xpbmUtaGVpZ2h0OjEuMXJlbTtoZWlnaHQ6MS4xcmVtfS5kYXRlLWlucHV0e2ZsZXg6MSAxIGF1dG99LmRhdGVwaWNrZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nOi42cmVtO21h''@;'; + put 'put ''cmdpbi10b3A6LjNyZW07d2lkdGg6MTMuOXJlbTtoZWlnaHQ6MTUuN3JlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItY2FsZW5kYXItYmFja2dyb3VuZC1jb2xvciwgd2hpdGUpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1jYWxlbmRhci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6''@;'; + put 'put ''MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1wb3BvdmVyLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MTA1MH0uY2FsZW5kYXItaGVhZGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vl''@;'; + put 'put ''bjthbGlnbi1pdGVtczpjZW50ZXJ9LmNhbGVuZGFyLXN3aXRjaGVycywueWVhci1zd2l0Y2hlcnN7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLS4xcmVtKTtkaXNwbGF5OmZsZXh9LnllYXItc3dpdGNoZXJze2ZsZXg6MCAwIGF1dG87d2lkdGg6NS40cmVtO2FsaWduLXNlbGY6Y2VudGVyfS5jYWxl''@;'; + put 'put ''bmRhci10YWJsZXtmbGV4OjEgMSBhdXRvO3dpZHRoOjEwMCV9LmNhbGVuZGFyLWNlbGwsLmNhbGVuZGFyLXRhYmxlIC5jYWxlbmRhci1jZWxse2hlaWdodDoxLjhyZW07d2lkdGg6MS44cmVtO21pbi1oZWlnaHQ6MS44cmVtO21pbi13aWR0aDoxLjhyZW07cGFkZGluZzowO3RleHQtYWxpZ246''@;'; + put 'put ''Y2VudGVyfS5kYXl7ZGlzcGxheTppbmxpbmUtYmxvY2t9LndlZWtkYXlze2ZsZXg6MCAwIDEuOHJlbX0ud2Vla2RheXtmb250LXNpemU6LjZyZW07Zm9udC1zaXplOnZhcigtLWNsci1kYXktZm9udC1zaXplLCAuNnJlbSk7Zm9udC13ZWlnaHQ6NjAwfS5jYWxlbmRhci1idG57aGVpZ2h0OjEu''@;'; + put 'put ''OHJlbTttaW4td2lkdGg6MS44cmVtO3BhZGRpbmc6MDttYXJnaW46MCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQ6MCAwO2N1''@;'; + put 'put ''cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXNpemU6LjlyZW07Zm9udC1zaXplOnZhcigtLWNsci1jYWxlbmRhci1waWNrZXItYnRuLWZvbnQtc2l6ZSwgLjlyZW0pO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItY2FsZW5kYXItcGlja2VyLWJ0bi1m''@;'; + put 'put ''b250LXdlaWdodCwgMjAwKX0uY2FsZW5kYXItYnRuOmhvdmVyLC5jYWxlbmRhci1idG46Zm9jdXN7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1ob3Zlci1mb2N1cy1jb2xvciwgI2U4ZThlOCl9LmNhbGVuZGFyLWJ0bjpmb2N1c3tvdXRsaW5l''@;'; + put 'put ''OjB9LmRheS1idG57aGVpZ2h0OjEuOHJlbTttaW4td2lkdGg6MS44cmVtO3BhZGRpbmc6MDttYXJnaW46MCFpbXBvcnRhbnQ7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtiYWNrZ3JvdW5k''@;'; + put 'put ''OjAgMDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDoxLjhyZW07d2lkdGg6MTAwJTtjb2xvcjppbmhlcml0fS5kYXktYnRuOmhvdmVyLC5kYXktYnRuOmZvY3Vze2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1idG4taG92ZXItZm9jdXMtY29sb3Is''@;'; + put 'put ''ICNlOGU4ZTgpfS5kYXktYnRuOmZvY3Vze291dGxpbmU6MH0uZGF5LWJ0bi5pcy10b2RheXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci10b2RheS1kYXRlLWNlbGwtY29sb3IsIGJsYWNrKTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWNhbGVuZGFy''@;'; + put 'put ''LXRvZGF5LWRhdGUtY2VsbC1mb250LXdlaWdodCwgNjAwKX0uZGF5LWJ0bi5pcy1leGNsdWRlZHtvcGFjaXR5Oi40fS5kYXktYnRuLmlzLWV4Y2x1ZGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5kYXktYnRuLmlzLXNlbGVjdGVke2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigt''@;'; + put 'put ''LWNsci1jYWxlbmRhci1hY3RpdmUtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtY2VsbC1jb2xvciwgYmxhY2spfS5kYXktYnRuLmlzLXNlbGVjdGVkOmZvY3Vze2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNr''@;'; + put 'put ''Z3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtZm9jdXMtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZDhlM2U5KX0uZGF5LWJ0bi5pcy1kaXNhYmxlZHtvcGFjaXR5Oi40O3BvaW50ZXItZXZlbnRzOm5vbmV9LmRheS1idG4uaXMtZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZDowIDB9''@;'; + put 'put ''LmNhbGVuZGFyLXBpY2tlcnN7ZGlzcGxheTpmbGV4fS5zd2l0Y2hlcntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1idG4tY29sb3IsICMwMDcyYTMpfS5zd2l0Y2hlciBjZHMtaWNvbiwuc3dpdGNoZXIgY2xyLWljb257aGVpZ2h0Oi45cmVtO3dpZHRoOi45cmVtfS5t''@;'; + put 'put ''b250aHBpY2tlci10cmlnZ2VyLC55ZWFycGlja2VyLXRyaWdnZXJ7bWluLXdpZHRoOjIuNHJlbTttYXgtd2lkdGg6M3JlbTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1idG4tY29sb3IsICMwMDcyYTMpO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3Jh''@;'; + put 'put ''cDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ubW9udGhwaWNrZXIsLnllYXJwaWNrZXJ7bWluLWhlaWdodDoxNC40cmVtfS5tb250aHBpY2tlciwueWVhcnBpY2tlciwueWVhcnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzpoaWRk''@;'; + put 'put ''ZW59Lm1vbnRocGlja2VyLC55ZWFyc3tmbGV4LXdyYXA6d3JhcH0ubW9udGgsLnllYXJ7aGVpZ2h0OjIuNHJlbTttaW4td2lkdGg6Mi40cmVtO3BhZGRpbmc6MCAuNnJlbTttYXJnaW46MCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3Jk''@;'; + put 'put ''ZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuOHJlbTt3aWR0aDo2LjNyZW07Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OjIwMDtvdXRsaW5lLW9mZnNldDotLjI1cmVt''@;'; + put 'put ''fS5tb250aDpob3ZlciwubW9udGg6Zm9jdXMsLnllYXI6aG92ZXIsLnllYXI6Zm9jdXN7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1ob3Zlci1mb2N1cy1jb2xvciwgI2U4ZThlOCl9Lm1vbnRoOmZvY3VzLC55ZWFyOmZvY3Vze291dGxpbmU6''@;'; + put 'put ''MH0ubW9udGguaXMtZGlzYWJsZWQsLnllYXIuaXMtZGlzYWJsZWR7b3BhY2l0eTouNDtwb2ludGVyLWV2ZW50czpub25lfS5tb250aC5pcy1kaXNhYmxlZDpob3ZlciwueWVhci5pcy1kaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMH0ubW9udGguaXMtc2VsZWN0ZWQsLnllYXIuaXMtc2Vs''@;'; + put 'put ''ZWN0ZWR7YmFja2dyb3VuZDojZDhlM2U5O2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1jZWxsLWJhY2tncm91bmQtY29sb3IsICNkOGUzZTkpO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1jZWxsLWNvbG9yLCBibGFjayl9Lm1vbnRoLmlz''@;'; + put 'put ''LXNlbGVjdGVkOmZvY3VzLC55ZWFyLmlzLXNlbGVjdGVkOmZvY3Vze2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtZm9jdXMtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZDhlM2U5KX0ubW9udGh7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUt''@;'; + put 'put ''c3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55ZWFye3RleHQtYWxpZ246Y2VudGVyfTpyb290ey0tY2xyLWNvbWJvYm94LXRyaWdnZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTAwKTstLWNsci1jb21ib2JveC1mb250LXNpemU6''@;'; + put 'put ''LjY1cmVtOy0tY2xyLWNvbWJvYm94LWJvcmRlci1jb2xvcjojZThlOGU4Oy0tY2xyLWNvbWJvYm94LWJvcmRlci1yYWRpdXM6LjE1cmVtOy0tY2xyLWNvbWJvYm94LWlucHV0LWJhY2tncm91bmQ6I2YyZjJmMjstLWNsci1jb21ib2JveC1waWxsLWJhY2tncm91bmQtY29sb3I6d2hpdGU7LS1j''@;'; + put 'put ''bHItY29tYm9ib3gtcGlsbC1ib3JkZXItY29sb3I6IzY2NjY2NjstLWNsci1jb21ib2JveC1waWxsLWJvcmRlci1yYWRpdXM6LjE1cmVtOy0tY2xyLWNvbWJvYm94LXBpbGwtZm9udC1jb2xvcjojNDU0NTQ1Oy0tY2xyLWNvbWJvYm94LWZpbHRlci1oaWdobGlnaHQ6IzQ1NDU0NX0uY2xyLWNv''@;'; + put 'put ''bWJvYm94LWZvcm0tY29udHJvbHthbGlnbi1pdGVtczpzdHJldGNofS5jbHItY29tYm9ib3gtZm9ybS1jb250cm9sIC5jbHItZXJyb3IgLmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1mb2N1cy1pbmRpY2F0b3J7YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91''@;'; + put 'put ''bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IsICMwMDcyYTMpO2hlaWdodDouMXJlbTt3aWR0aDowO3RyYW5zaXRpb246d2lkdGggLjJzIGVhc2U7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0uMDVyZW07bGVmdDowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1''@;'; + put 'put ''cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLWNvbWJvYm94LWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci1jb21ib2JveC1ib3JkZXItcmFkaXVz''@;'; + put 'put ''LCAuMTVyZW0pfS5jbHItZm9jdXN7d2lkdGg6MTAwJX0uY2xyLWVycm9yIC5jbHItZm9jdXMtaW5kaWNhdG9ye2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKX0uY2xyLWNvbWJvYm94LXdyYXBw''@;'; + put 'put ''ZXJ7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzowIDEuMnJlbSAwIC4zcmVtO21pbi1oZWlnaHQ6MS4ycmVtO21pbi13aWR0aDo4LjRyZW07Zm9udC1zaXplOi42NXJlbTtmb250LXNpemU6dmFyKC0tY2xyLWNvbWJvYm94LWZvbnQtc2l6ZSwgLjY1cmVtKTtjb2xvcjojMDAwO2NvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1mb3Jtcy10ZXh0LWNvbG9yLCBibGFjayk7Ym9yZGVyLWJvdHRvbTouMDVyZW0gc29saWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1jb2xvcjojZjJmMmYyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LWlucHV0LWJhY2tncm91bmQtY29sb3Is''@;'; + put 'put ''ICNmMmYyZjIpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojZThlOGU4O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItY29tYm9ib3gtYm9yZGVyLWNvbG9yLCAjZThlOGU4KTtib3JkZXItYm90dG9tLXdpZHRoOi4wNXJlbTtib3JkZXItYm90dG9t''@;'; + put 'put ''LXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6IzZhN2E4MTtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IsICM2YTdhODEpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWNvbWJvYm94LWJvcmRlci1yYWRp''@;'; + put 'put ''dXMsIC4xNXJlbSl9LmNsci1jb21ib2JveC13cmFwcGVyLm11bHRpe21pbi13aWR0aDptaW4oMThyZW0sMTAwJSk7cGFkZGluZy1ib3R0b206LjE1cmVtfS5jbHItY29tYm9ib3gtd3JhcHBlciAuY2xyLWlucHV0LmNsci1jb21ib2JveC1pbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOjAgMH0uY2xy''@;'; + put 'put ''LWNvbWJvYm94LXdyYXBwZXIuaW52YWxpZHtib3JkZXItYm90dG9tLWNvbG9yOiNjMjFkMDB9LmNsci1jb21ib2JveC13cmFwcGVyIC5jbHItY29tYm9ib3gtaW5wdXR7YmFja2dyb3VuZDowIDA7Ym9yZGVyLWJvdHRvbTpub25lfS5jbHItY29tYm9ib3gtd3JhcHBlciAuY2xyLWNvbWJvYm94''@;'; + put 'put ''LXJlbW92ZS1idG57YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzouMTVyZW07Y29sb3I6IzQ1NDU0NX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGx7bWFyZ2luOi4xNXJlbSAuM3JlbSAwIDA7YmFja2dyb3VuZC1jb2xvcjoj''@;'; + put 'put ''ZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtYmFja2dyb3VuZC1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2FsaWduLWl0ZW1zOmJhc2VsaW5lO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6''@;'; + put 'put ''dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtYm9yZGVyLWNvbG9yLCAjNjY2NjY2KTtwYWRkaW5nOjAgLjFyZW0gMCAuMnJlbX0uY2xyLWNvbWJvYm94LXdy''@;'; + put 'put ''YXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgLmNsci1jb21ib2JveC1waWxsLWNvbnRlbnR7Y29sb3I6IzQ1NDU0NTtjb2xvcjp2YXIoLS1jbHItY29tYm9ib3gtcGlsbC1mb250LWNvbG9yLCAjNDU0NTQ1KTtmb250LXNpemU6LjU1cmVtO2ZvbnQtd2VpZ2h0OjQwMDtwYWRkaW5nOjAgLjRy''@;'; + put 'put ''ZW0gMCAuMnJlbX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgY2RzLWljb25bc2hhcGU9d2luZG93LWNsb3NlXSwuY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgY2xyLWljb25bc2hhcGU9d2luZG93LWNsb3NlXXtjb2xvcjojNDU0''@;'; + put 'put ''NTQ1O2NvbG9yOnZhcigtLWNsci1jb21ib2JveC1waWxsLWZvbnQtY29sb3IsICM0NTQ1NDUpfS5jbHItY29tYm9ib3gtd3JhcHBlciAuY2xyLWNvbWJvYm94LWlucHV0LXdyYXBwZXJ7Ym9yZGVyOjA7YmFja2dyb3VuZDowIDB9LmNsci1jb21ib2JveC10cmlnZ2Vye3dpZHRoOjEuMnJlbTtt''@;'; + put 'put ''YXJnaW46YXV0bztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2NvbG9yOmN1cnJlbnRDb2xvcjtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOjB9LmNsci1jb21ib2JveC10cmlnZ2VyOmRpc2FibGVke2NvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1idG4tbGluay1kaXNhYmxlZC1jb2xvciwgIzY2Nik7b3BhY2l0eTouNH0uY2xyLWNvbWJvYm94LXRyaWdnZXIgY2RzLWljb25bc2hhcGU9YW5nbGVdLC5jbHItY29tYm9ib3gtdHJpZ2dlciBjbHItaWNvbltzaGFwZT1hbmdsZV17Y29sb3I6IzQ1NDU0NTtjb2xvcjp2YXIoLS1jbHItY29t''@;'; + put 'put ''Ym9ib3gtcGlsbC1mb250LWNvbG9yLCAjNDU0NTQ1KX0uY2xyLWNvbWJvYm94LW9wdGlvbnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjA7bWluLXdpZHRoOjZyZW07bWF4LXdpZHRoOjE4cmVtO2JhY2tncm91bmQ6''@;'; + put 'put ''I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kcm9wZG93bi1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRl''@;'; + put 'put ''ci1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtICM4YzhjOGM0MDtib3gt''@;'; + put 'put ''c2hhZG93OjAgLjA1cmVtIC4xNXJlbSB2YXIoLS1jbHItZHJvcGRvd24tYm94LXNoYWRvdywgcmdiYSgxNDAsIDE0MCwgMTQwLCAuMjUpKTttYXJnaW4tdG9wOi4xcmVtO3BhZGRpbmc6LjZyZW0gMDt2aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4OjEwNTA7cG9zaXRpb246c3RhdGljO21heC1o''@;'; + put 'put ''ZWlnaHQ6MTJyZW07b3ZlcmZsb3cteTpzY3JvbGw7dmlzaWJpbGl0eTp2aXNpYmxlfS5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbnMtbG9hZGluZ3twYWRkaW5nOi4xNXJlbSAxLjJyZW19LmNsci1jb21ib2JveC1vcHRpb25zIC5jbHItY29tYm9ib3gtb3B0aW9u''@;'; + put 'put ''cy1sb2FkaW5nIC5jbHItY29tYm9ib3gtb3B0aW9ucy1sb2FkaW5nLXRleHR7cGFkZGluZy1sZWZ0Oi4zcmVtfS5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbnMtZW1wdHktdGV4dHtwYWRkaW5nLWxlZnQ6LjZyZW19LmNsci1jb21ib2JveC1vcHRpb257Y29sb3I6''@;'; + put 'put ''IzY2Njtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFja2dy''@;'; + put 'put ''b3VuZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztoZWlnaHQ6YXV0bztsaW5lLWhlaWdodDppbmhlcml0O21hcmdpbjowO3dpZHRoOjEwMCU7dGV4dC10cmFuc2Zvcm06bm9uZX0uY2xyLWNvbWJvYm94LW9wdGlvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNl''@;'; + put 'put ''OGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYmctaG92ZXItY29sb3IsICNlOGU4ZTgpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3IsICM2NjY2NjYpO3RleHQtZGVjb3JhdGlvbjpub25lfS5jbHItY29tYm9ib3gtb3B0aW9u''@;'; + put 'put ''LmFjdGl2ZXtiYWNrZ3JvdW5kOiNkOGUzZTk7YmFja2dyb3VuZDp2YXIoLS1jbHItZHJvcGRvd24tc2VsZWN0aW9uLWNvbG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvciwgYmxhY2spfS5jbHItY29tYm9ib3gtb3B0aW9u''@;'; + put 'put ''OmFjdGl2ZXtib3gtc2hhZG93Om5vbmV9LmNsci1jb21ib2JveC1vcHRpb246Zm9jdXN7ei1pbmRleDppbmhlcml0fS5jbHItY29tYm9ib3gtb3B0aW9uLmRpc2FibGVkLC5jbHItY29tYm9ib3gtb3B0aW9uOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40Oy13ZWJraXQt''@;'; + put 'put ''dXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5jbHItY29tYm9ib3gtb3B0aW9uLmRpc2FibGVkOmhvdmVyLC5jbHItY29tYm9ib3gtb3B0aW9uOmRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5jbHItY29tYm9ib3gtb3B0aW9uLmRpc2FibGVkOmFjdGl2ZSwuY2xyLWNv''@;'; + put 'put ''bWJvYm94LW9wdGlvbjpkaXNhYmxlZDphY3RpdmV7YmFja2dyb3VuZDowIDA7Ym94LXNoYWRvdzpub25lfS5jbHItY29tYm9ib3gtb3B0aW9uLmNsci1mb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYmctaG92ZXItY29s''@;'; + put 'put ''b3IsICNlOGU4ZTgpfS5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbntwYWRkaW5nOi4xNXJlbSAxLjJyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7LmNsci1jb21ib2JveC1vcHRpb25zIC5jbHItY29tYm9ib3gtb3B0aW9ue3BhZGRpbmc6''@;'; + put 'put ''LjNyZW0gMS4ycmVtfX0uY2xyLWNvbWJvYm94LW9wdGlvbnMgLmNsci1jb21ib2JveC1vcHRpb246aG92ZXIsLmNsci1jb21ib2JveC1vcHRpb25zIC5jbHItY29tYm9ib3gtb3B0aW9uLmFjdGl2ZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWNvbG9yLCAjNjY2''@;'; + put 'put ''NjY2KX0uY2xyLWNvbWJvYm94LWRpc2FibGVke2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWNvbWJvYm94LWRpc2FibGVkIC5jbHItY29tYm9ib3gtaW5wdXQsLmNsci1jb21i''@;'; + put 'put ''b2JveC1kaXNhYmxlZCAuY2xyLWNvbWJvYm94LXJlbW92ZS1idG4sLmNsci1jb21ib2JveC1kaXNhYmxlZCAuY2xyLWNvbWJvYm94LXRyaWdnZXJ7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItZmlsdGVyLWhpZ2hsaWdodCBie2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojNDU0NTQ1O2NvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1jb21ib2JveC1maWx0ZXItaGlnaGxpZ2h0LCAjNDU0NTQ1KX06cm9vdHstLWNsci1zdGFjay12aWV3LWJvcmRlci1yYWRpdXM6LjE1cmVtOy0tY2xyLXN0YWNrLXZpZXctYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItc3RhY2stdmlldy1i''@;'; + put 'put ''Zy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MCk7LS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1ib3JkZXItYm90dG9tOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTMwMCk7LS1jbHItc3RhY2stdmlldy1jb2xvcjojNjY2NjY2Oy0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxv''@;'; + put 'put ''Y2stbGFiZWwtdGV4dC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXN0YWNrLXZpZXctYm9yZGVyLWJveC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0zMDApOy0tY2xyLXN0YWNrLWJsb2NrLWNoYW5nZWQtYm9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''Y29sb3ItYWN0aW9uLTYwMCk7LS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1sYWJlbC1hbmQtY29udGVudC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MCk7LS1jbHItc3RhY2stdmlldy1zdGFjay1jaGlsZHJlbi1zdGFjay1ibG9jay1ib3JkZXItYm90dG9tLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItc3RhY2stdmlldy1zdGFjay1jaGlsZHJlbi1zdGFjay1ibG9jay1sYWJlbC1hbmQtY29udGVudC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWV4cGFuZGVk''@;'; + put 'put ''LWJnLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWV4cGFuZGFibGUtaG92ZXI6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWNvbnRlbnQtdGV4dC1jb2xv''@;'; + put 'put ''cjppbmhlcml0Oy0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stZXhwYW5kZWQtdGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWNhcmV0LWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcil9LnN0YWNr''@;'; + put 'put ''LWhlYWRlcntmb250LXdlaWdodDo0MDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5zdGFjay1oZWFkZXIgLnN0YWNrLXRpdGxle2Rpc3BsYXk6YmxvY2s7ZmxleDoxIDEgYXV0bztwYWRkaW5nOi4zcmVtIDB9LnN0YWNrLWhlYWRlciAuc3RhY2stYWN0aW9uc3tkaXNwbGF5''@;'; + put 'put ''OmJsb2NrO2ZsZXg6MCAwIGF1dG99LnN0YWNrLWhlYWRlciAuc3RhY2stYWN0aW9ucyAuc3RhY2stYWN0aW9ue21hcmdpbjowIDAgLjNyZW0gLjZyZW19LnN0YWNrLWhlYWRlciAuc3RhY2stYWN0aW9ucyAuc3RhY2stYWN0aW9uLmJ0bnttaW4td2lkdGg6MDtwYWRkaW5nOjAgLjZyZW19LnN0''@;'; + put 'put ''YWNrLWhlYWRlciAuc3RhY2stYWN0aW9ucyAuc3RhY2stYWN0aW9uLmJ0bi1saW5re21hcmdpbi1yaWdodDotLjZyZW19LnN0YWNrLXZpZXd7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo0''@;'; + put 'put ''MDA7bGluZS1oZWlnaHQ6MS4ycmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW4tdG9wOjA7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LWJvcmRlci1jb2xvciwgI2Nj''@;'; + put 'put ''Y2NjYyk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO292ZXJmbG93LXk6YXV0bztiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1i''@;'; + put 'put ''Zy1jb2xvciwgI2ZhZmFmYSk7d29yZC13cmFwOmJyZWFrLXdvcmR9LnN0YWNrLXZpZXcgZGQsLnN0YWNrLXZpZXcgZHR7bWFyZ2luLWlubGluZS1zdGFydDowO21hcmdpbi1sZWZ0OjB9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2Nre2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IHdyYXA7Ym9y''@;'; + put 'put ''ZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGVkZWRlO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xy''@;'; + put 'put ''LXN0YWNrLXZpZXctc3RhY2stYmxvY2stYm9yZGVyLWJvdHRvbSwgI2RlZGVkZSk7b3ZlcmZsb3cteTpoaWRkZW59LnN0YWNrLXZpZXc+LnN0YWNrLWJsb2NrOmxhc3QtY2hpbGQsLnN0YWNrLXZpZXc+Omxhc3QtY2hpbGQgLnN0YWNrLWJsb2NrOmxhc3Qtb2YtdHlwZXtib3JkZXItYm90dG9t''@;'; + put 'put ''Om5vbmU7Ym94LXNoYWRvdzowIC4wNXJlbSAjZGVkZWRlO2JveC1zaGFkb3c6MCAuMDVyZW0gMCB2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItYm94LWNvbG9yKX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY2hhbmdlZD4uc3RhY2stYmxvY2stbGFiZWx7bWFyZ2luLWxlZnQ6LS40NXJl''@;'; + put 'put ''bX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY2hhbmdlZDpiZWZvcmV7Y29udGVudDoiICI7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjA7d2lkdGg6MDtib3JkZXItdG9wOi40NXJlbSBzb2xpZDtib3JkZXItdG9wLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''c3RhY2stYmxvY2stY2hhbmdlZC1ib3JkZXItdG9wLWNvbG9yLCAjMDA3MmEzKTtib3JkZXItcmlnaHQ6LjQ1cmVtIHNvbGlkIHRyYW5zcGFyZW50fS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1sYWJlbHtwYWRkaW5nOi4zcmVtIC42cmVtO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNr''@;'; + put 'put ''Z3JvdW5kLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWxhYmVsLWFuZC1jb250ZW50LWJnLWNvbG9yLCAjZmFmYWZhKX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXR9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2Nr''@;'; + put 'put ''LWNhcmV0e2FsaWduLXNlbGY6Y2VudGVyfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1sYWJlbHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWxhYmVsLXRleHQtY29sb3IsICM2NjY2NjYpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NTAw''@;'; + put 'put ''O2xpbmUtaGVpZ2h0OjEuMnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXh9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2Zsb2F0OmxlZnQ7aGVpZ2h0Oi43cmVtO3dp''@;'; + put 'put ''ZHRoOi43cmVtO21hcmdpbjouMzVyZW0gLjI0cmVtIDAgMDt0ZXh0LWFsaWduOmNlbnRlcn0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stbGFiZWw6Zm9jdXN7b3V0bGluZTouMjVyZW0gYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3J9LnN0YWNrLXZpZXcgLnN0YWNrLXZpZXcta2V5e2Zs''@;'; + put 'put ''ZXg6MCAwIDQwJTttYXgtd2lkdGg6NDAlfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1jYXJldHtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07bWFyZ2luLXJpZ2h0Oi4yNHJlbTtmaWxsOiM2NjY7ZmlsbDp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1jYXJldC1jb2xvciwgIzY2''@;'; + put 'put ''NjY2Nil9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNvbnRlbnR7Y29sb3I6aW5oZXJpdDtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1jb250ZW50LXRleHQtY29sb3IsIGluaGVyaXQpO2ZsZXg6MSAxIGF1dG87d2lkdGg6NjAlO21hcmdpbi1ib3R0b206MDtmb250''@;'; + put 'put ''LXdlaWdodDo0MDB9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNvbnRlbnQ+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY29udGVudD46bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVue2ZsZXg6''@;'; + put 'put ''MCAwIGF1dG87d2lkdGg6MTAwJX0uc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2Nre2JvcmRlci1ib3R0b20tY29sb3I6I2U4ZThlODtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNrLWNoaWxkcmVuLXN0YWNrLWJsb2NrLWJvcmRlci1i''@;'; + put 'put ''b3R0b20tY29sb3IsICNlOGU4ZTgpfS5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbj4uc3RhY2stYmxvY2s6bGFzdC1jaGlsZCwuc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4+Omxhc3QtY2hpbGQgLnN0YWNrLWJsb2NrOmxhc3Qtb2YtdHlwZXtib3JkZXItYm90dG9tOm5vbmU7Ym94LXNo''@;'; + put 'put ''YWRvdzowIC4wNXJlbSAjZGVkZWRlO2JveC1zaGFkb3c6MCAuMDVyZW0gMCB2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItYm94LWNvbG9yKX0uc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2NrLWxhYmVsLC5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbiAuc3RhY2st''@;'; + put 'put ''YmxvY2stY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1jaGlsZHJlbi1zdGFjay1ibG9jay1sYWJlbC1hbmQtY29udGVudC1iZy1jb2xvciwgd2hpdGUpfS5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbiAu''@;'; + put 'put ''c3RhY2stYmxvY2stbGFiZWx7cGFkZGluZy1sZWZ0OjEuMnJlbX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stbGFiZWx7Y3Vyc29yOnBvaW50ZXJ9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWxhYmVsOmJl''@;'; + put 'put ''Zm9yZXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTIlMjAxMiUyMiUzRSUwQSUyMCUyMCUy''@;'; + put 'put ''MCUyMCUzQ2RlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NzdHlsZSUzRS5jbHMtMSU3QmZpbGwlM0ElMjM2NjY2NjYlM0IlN0QlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0N0aXRsZSUzRUNhcmV0JTNDJTJGdGl0''@;'; + put 'put ''bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGQlM0QlMjJNNiUyQzlMMS4yJTJDNC4yYTAuNjglMkMwLjY4JTJDMCUyQzAlMkMxJTJDMS0xTDYlMkM3LjA4JTJDOS44NCUyQzMuMjRhMC42OCUyQzAuNjglMkMwJTJDMSUyQzElMkMxJTJDMVolMjIl''@;'; + put 'put ''MkYlM0UlMEElM0MlMkZzdmclM0UlMEEpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO2hlaWdodDouNnJlbTt3aWR0aDouNnJlbX0uc3RhY2stdmlldyAuc3Rh''@;'; + put 'put ''Y2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stbGFiZWwsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnR7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dCxjb2xvciAuMnMgZWFzZS1pbi1vdXR9LnN0''@;'; + put 'put ''YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU6aG92ZXI6bm90KC5zdGFjay1ibG9jay1leHBhbmRlZCk+LnN0YWNrLWJsb2NrLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWV4cGFu''@;'; + put 'put ''ZGFibGUtaG92ZXIsICNlOGU4ZTgpfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stbGFiZWw6YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoMCl9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1sYWJlbHtiYWNrZ3JvdW5k''@;'; + put 'put ''LWNvbG9yOiNkOGUzZTk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRlZC1iZy1jb2xvciwgI2Q4ZTNlOSk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRlZC10ZXh0LWNvbG9yLCBi''@;'; + put 'put ''bGFjayl9LnN0YWNrLXZpZXcgaW5wdXRbdHlwZT10ZXh0XSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPXBhc3N3b3JkXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPW51bWJlcl0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT1lbWFpbF0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT11cmxdLC5zdGFjay12''@;'; + put 'put ''aWV3IGlucHV0W3R5cGU9dGVsXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPWRhdGVdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9dGltZV0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0sLnN0YWNrLXZpZXcgLnNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNh''@;'; + put 'put ''bC1hbGlnbjp0b3A7bWFyZ2luLXJpZ2h0Oi42cmVtO21hcmdpbi1ib3R0b206LS45NXJlbX0uc3RhY2stdmlldyBpbnB1dFt0eXBlPXRleHRdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9cGFzc3dvcmRdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9bnVtYmVyXSwuc3RhY2stdmlldyBpbnB1dFt0''@;'; + put 'put ''eXBlPWVtYWlsXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPXVybF0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT10ZWxdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9ZGF0ZV0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT10aW1lXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXSwu''@;'; + put 'put ''c3RhY2stdmlldyAuc2VsZWN0IHNlbGVjdHtoZWlnaHQ6MS4ycmVtfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dGV4dF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNv''@;'; + put 'put ''bnRlbnQgaW5wdXRbdHlwZT1wYXNzd29yZF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1udW1iZXJdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0''@;'; + put 'put ''W3R5cGU9ZW1haWxdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dXJsXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRlbF0sLnN0YWNr''@;'; + put 'put ''LXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1kYXRlXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRpbWVdLC5zdGFjay12aWV3IC5zdGFjay1ibG9j''@;'; + put 'put ''ay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxde3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlLGJvcmRlci1ib3R0b20tY29sb3IgLjJzIGVhc2UtaW4tb3V0fS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRh''@;'; + put 'put ''YmxlPi5zdGFjay1ibG9jay1jb250ZW50IC5zZWxlY3Qgc2VsZWN0e3RyYW5zaXRpb246Ym9yZGVyLWJvdHRvbS1jb2xvciAuMnMgZWFzZS1pbi1vdXR9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgLnNlbGVjdDphZnRlcnt0cmFuc2l0''@;'; + put 'put ''aW9uOmNvbG9yIC4ycyBlYXNlLWluLW91dH0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10ZXh0XSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1w''@;'; + put 'put ''YXNzd29yZF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9bnVtYmVyXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1lbWFpbF0sLnN0YWNrLXZp''@;'; + put 'put ''ZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dXJsXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10ZWxdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRl''@;'; + put 'put ''ZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGVdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRpbWVdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVu''@;'; + put 'put ''dCBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXXtib3JkZXItYm90dG9tLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDAsICM4YzhjOGMpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSx0cmFuc3BhcmVudCA5''@;'; + put 'put ''NSUsdmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250''@;'; + put 'put ''ZW50IGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dGV4dF0uY2xyLWZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBp''@;'; + put 'put ''bnB1dFt0eXBlPXBhc3N3b3JkXTpmb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1wYXNzd29yZF0uY2xyLWZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVu''@;'; + put 'put ''dCBpbnB1dFt0eXBlPW51bWJlcl06Zm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9bnVtYmVyXS5jbHItZm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50''@;'; + put 'put ''IGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWVtYWlsXS5jbHItZm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlu''@;'; + put 'put ''cHV0W3R5cGU9dXJsXTpmb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT11cmxdLmNsci1mb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlw''@;'; + put 'put ''ZT10ZWxdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRlbF0uY2xyLWZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGVd''@;'; + put 'put ''OmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGVdLmNsci1mb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10aW1lXTpmb2N1''@;'; + put 'put ''cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10aW1lXS5jbHItZm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxd''@;'; + put 'put ''OmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXS5jbHItZm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDA3MmEzO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFj''@;'; + put 'put ''dGlvbi02MDAsICMwMDcyYTMpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IC5zZWxlY3Qgc2VsZWN0e2JvcmRlci1ib3R0b20tY29sb3I6IzhjOGM4Yztib3JkZXItYm90dG9tLWNvbG9yOnZh''@;'; + put 'put ''cigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCwgIzhjOGM4Yyl9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IC5zZWxlY3Q6YWZ0ZXJ7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDAsICM4YzhjOGMpfS5t''@;'; + put 'put ''b2RhbCAuc3RhY2stdmlld3toZWlnaHQ6NTV2aDttYXJnaW4tYm90dG9tOjB9LnN0YWNrLXZpZXcgY2xyLXN0YWNrLWJsb2NrLnN0YWNrLWJsb2NrLWV4cGFuZGFibGUgLnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtjb250ZW50Om5vbmV9LnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVuIGNs''@;'; + put 'put ''ci1zdGFjay1ibG9jayAuc3RhY2stYmxvY2stbGFiZWwsLnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVuIC5zdGFjay1ibG9jay1sYWJlbHtwYWRkaW5nLWxlZnQ6MS44cmVtfS5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbiBjbHItc3RhY2stYmxvY2sgLnN0YWNrLWJsb2NrLWxhYmVsOmJl''@;'; + put 'put ''Zm9yZSwuc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtkaXNwbGF5Om5vbmV9LnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVuIGNsci1zdGFjay1ibG9jayAuc3RhY2stYmxvY2stY29udGVudCwuc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4g''@;'; + put 'put ''LnN0YWNrLWJsb2NrLWNvbnRlbnR7cGFkZGluZy1sZWZ0Oi4zNnJlbX06cm9vdHstLWNsci10cmVlLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFs''@;'; + put 'put ''LTEwMDApOy0tY2xyLXRyZWUtbGluay1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY3VzdG9tLWxpbmtzLWhvdmVyLWNvbG9yKTstLWNsci10cmVlLWxpbmstc2VsZWN0aW9uLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci10cmVlLWxpbmstdGV4dC1jb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLXRyZWUtbm9kZS1jYXJldC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MDApfS5jbHItdHJlZS1ub2Rle2Rpc3BsYXk6YmxvY2t9LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2FsaWdu''@;'; + put 'put ''LWl0ZW1zOmNlbnRlcn0uY2xyLXRyZWVub2RlLWNvbnRlbnR7ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWNsci10cmVl''@;'; + put 'put ''LWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdHJlZS1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0OjEuNjJyZW19LmNsci10cmVlbm9kZS1jb250ZW50OmZp''@;'; + put 'put ''cnN0LWNoaWxke3BhZGRpbmctbGVmdDoxLjYycmVtfS5jbHItdHJlZW5vZGUtY29udGVudCBjZHMtaWNvbiwuY2xyLXRyZWVub2RlLWNvbnRlbnQgY2xyLWljb257aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO21hcmdpbi1yaWdodDouM3JlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNsci10''@;'; + put 'put ''cmVlbm9kZS1jYXJldHtmbGV4OjAgMCAxLjYycmVtO3BhZGRpbmc6MDttYXJnaW46MDtoZWlnaHQ6MS42MnJlbTt3aWR0aDoxLjYycmVtO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1jb2xvciwgI2IzYjNiMyk7''@;'; + put 'put ''Y3Vyc29yOnBvaW50ZXI7b3V0bGluZS1vZmZzZXQ6LS4yNXJlbX0uY2xyLXRyZWVub2RlLWNhcmV0OmhvdmVye2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yLCBibGFjayl9LmNsci10cmVlLW5vZGUtY2FyZXQtaWNvbntoZWlnaHQ6''@;'; + put 'put ''LjhyZW07d2lkdGg6LjhyZW07dmVydGljYWwtYWxpZ246bWlkZGxlfS5jbHItdHJlZW5vZGUtc3Bpbm5lci1jb250YWluZXJ7aGVpZ2h0OjEuNjJyZW07d2lkdGg6MS42MnJlbTtwYWRkaW5nOi40MXJlbX0uY2xyLXRyZWVub2RlLXNwaW5uZXJ7aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO21p''@;'; + put 'put ''bi1oZWlnaHQ6LjhyZW07bWluLXdpZHRoOi44cmVtfS5jbHItdHJlZW5vZGUtY2hpbGRyZW57bWFyZ2luLWxlZnQ6MS4xN3JlbTt3aWxsLWNoYW5nZTpoZWlnaHQ7b3ZlcmZsb3cteTpoaWRkZW59LmNsci10cmVlbm9kZS1saW5re2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMDAlO3dp''@;'; + put 'put ''ZHRoOjEwMCU7bWFyZ2luOjA7cGFkZGluZzowIDAgMCAuM3JlbTtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci10cmVlLWxpbmstdGV4dC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6aW5oZXJpdDt0ZXh0LWFsaWdu''@;'; + put 'put ''OmxlZnR9LmNsci10cmVlbm9kZS1saW5rOmxpbmssLmNsci10cmVlbm9kZS1saW5rOnZpc2l0ZWQsLmNsci10cmVlbm9kZS1saW5rOmFjdGl2ZSwuY2xyLXRyZWVub2RlLWxpbms6aG92ZXJ7Y29sb3I6aW5oZXJpdH0uY2xyLXRyZWVub2RlLWxpbms6aG92ZXIsLmNsci10cmVlbm9kZS1saW5r''@;'; + put 'put ''OmZvY3Vze2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci10cmVlLWxpbmstaG92ZXItY29sb3IsICNlOGU4ZTgpO3RleHQtZGVjb3JhdGlvbjpub25lfS5jbHItdHJlZW5vZGUtbGluay5hY3RpdmV7YmFja2dyb3VuZDojZDhlM2U5O2JhY2tncm91bmQ6dmFyKC0tY2xy''@;'; + put 'put ''LXRyZWUtbGluay1zZWxlY3Rpb24tY29sb3IsICNkOGUzZTkpO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yLCBibGFjayl9LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXI+LmNsci1jaGVja2JveC13cmFwcGVye2hlaWdo''@;'; + put 'put ''dDoxLjYycmVtO3dpZHRoOjEuNjJyZW07cGFkZGluZy10b3A6LjIxcmVtO3BhZGRpbmctbGVmdDouNDFyZW19LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXI+LmNsci1jaGVja2JveC13cmFwcGVyOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjEuNjJyZW19LmNsci10cmVlbm9kZS1j''@;'; + put 'put ''b250ZW50IC5sYWJlbHttYXJnaW4tbGVmdDouM3JlbX1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmNsci10cmVlbm9kZS1jb250ZW50IC5sYWJlbHttYXJnaW4tbGVmdDouMTVyZW19fV86LW1zLWlucHV0LXBsYWNlaG9sZGVyIC5jbHItdHJlZW5vZGUtY29udGVudCAubGFiZWws''@;'; + put 'put ''OnJvb3QgLmNsci10cmVlbm9kZS1jb250ZW50IC5sYWJlbHttYXJnaW4tbGVmdDouMTVyZW19OnJvb3R7LS1jbHItZGF0YWdyaWQtZm9udC1jb2xvcjojYWNiYWMzOy0tY2xyLWRhdGFncmlkLWRlZmF1bHQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHIt''@;'; + put 'put ''ZGF0YWdyaWQtaWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWRhdGFncmlkLXJvdy1ob3Zlcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLWRhdGFncmlkLXJvdy1ob3Zlci1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEw''@;'; + put 'put ''MDApOy0tY2xyLWRhdGFncmlkLWFjdGlvbi10b2dnbGU6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWJ0bi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24tYnRuLWRpc2FibGVk''@;'; + put 'put ''LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWRlZmF1bHQtYm9yZGVyLWNvbG9yKTstLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWlucHV0LWJvcmRlci1mb2N1''@;'; + put 'put ''cy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTQwMCk7LS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtZGVmYXVsdC1ib3JkZXIt''@;'; + put 'put ''Y29sb3IpOy0tY2xyLWRhdGFncmlkLWFjdGlvbi1wb3BvdmVyLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItZGF0YWdyaWQtcm93LXNlbGVjdGVkOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWRhdGFncmlkLWxvYWRpbmctYmFja2dy''@;'; + put 'put ''b3VuZDpyZ2JhKDI1NSwgMjU1LCAyNTUsIC42KTstLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yOnJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KTstLWNsci1kYXRhZ3JpZC1jb2x1bW4tc3dpdGNoLWhlYWRlci1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFs''@;'; + put 'put ''LTUwMCk7LS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRjaC1oZWFkZXItZm9udC1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWljb24tb3Blbi1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1j''@;'; + put 'put ''bHItZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWljb24tb3Blbi1pY29uLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItZGF0YWdyaWQtcGxhY2Vob2xkZXItZm9u''@;'; + put 'put ''dC1zaXplOi44cmVtOy0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24tYnRuLWRpc2FibGVkLW9wYWNpdHk6LjU2fS5kYXRhZ3JpZHtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci10YWJs''@;'; + put 'put ''ZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdGFibGUtYm9yZGVyLXJhZGl1cywgLjE1cmVt''@;'; + put 'put ''KTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYmdjb2xvciwgd2hpdGUpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXRhYmxlLWZvbnQtY29sb3IsICM2NjY2NjYpO21hcmdpbjowO21hcmdpbi10b3A6MS4ycmVtO21heC13aWR0aDox''@;'; + put 'put ''MDAlO3dpZHRoOjEwMCV9LmRhdGFncmlkIC5kYXRhZ3JpZC1jb2x1bW4sLmRhdGFncmlkIC5kYXRhZ3JpZC1jZWxse2ZvbnQtc2l6ZTouNjVyZW07bGluZS1oZWlnaHQ6LjdyZW07Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRo''@;'; + put 'put ''OnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItdG9wLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGVyb3ctYm9yZGVyY29sb3IsICNlOGU4ZTgpO3BhZGRpbmc6LjU1cmVtIC42cmVtO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRp''@;'; + put 'put ''Y2FsLWFsaWduOnRvcH0uZGF0YWdyaWQgLmRhdGFncmlkLWNvbHVtbi5sZWZ0LC5kYXRhZ3JpZCAuZGF0YWdyaWQtY2VsbC5sZWZ0e3RleHQtYWxpZ246bGVmdH0uZGF0YWdyaWQgLmRhdGFncmlkLWNvbHVtbi5sZWZ0OmZpcnN0LWNoaWxkLC5kYXRhZ3JpZCAuZGF0YWdyaWQtY2VsbC5sZWZ0''@;'; + put 'put ''OmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDouM3JlbX0uZGF0YWdyaWQgLmRhdGFncmlkLWNvbHVtbntjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci10aGVhZC1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi41NXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAzZW07YmFj''@;'; + put 'put ''a2dyb3VuZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IsICNmYWZhZmEpO3ZlcnRpY2FsLWFsaWduOmJvdHRvbTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lk''@;'; + put 'put ''dGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tY29sb3I6I2NjYztib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci10b3A6MCBub25lfS5kYXRhZ3JpZCAuZGF0YWdyaWQtYm9k''@;'; + put 'put ''eSAuZGF0YWdyaWQtcm93OmZpcnN0LWNoaWxkIC5kYXRhZ3JpZC1jZWxse2JvcmRlci10b3A6MCBub25lfS5kYXRhZ3JpZCAuZGF0YWdyaWQtYm9keSsuZGF0YWdyaWQtYm9keXtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6LjA1cmVtO2JvcmRlci10b3Atd2lkdGg6''@;'; + put 'put ''dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci10b3AtY29sb3I6I2NjYztib3JkZXItdG9wLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5kYXRhZ3JpZCAuZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1jb2x1bW46Zmlyc3Qt''@;'; + put 'put ''Y2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjFyZW07Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS5kYXRhZ3JpZCAuZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1jb2x1bW46bGFzdC1j''@;'; + put 'put ''aGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjFyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0uZGF0YWdyaWQgLmRhdGFncmlkLWJvZHk6bGFzdC1jaGlsZCAuZGF0YWdyaWQtcm93''@;'; + put 'put ''Omxhc3QtY2hpbGQgLmRhdGFncmlkLWNlbGw6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjFyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS5kYXRhZ3JpZCAu''@;'; + put 'put ''ZGF0YWdyaWQtYm9keTpsYXN0LWNoaWxkIC5kYXRhZ3JpZC1yb3c6bGFzdC1jaGlsZCAuZGF0YWdyaWQtY2VsbDpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItdGFi''@;'; + put 'put ''bGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1jb2x1bW4sLmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWNlbGx7cGFkZGluZy10b3A6LjNyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS5kYXRhZ3JpZC1ob3N0e2Rpc3BsYXk6ZmxleDtm''@;'; + put 'put ''bGV4LWZsb3c6Y29sdW1uIG5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2ZX0uZGF0YWdyaWR7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7LW1zLW92ZXJmbG93LXN0eWxlOi1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtvdmVyZmxvdzphdXRv''@;'; + put 'put ''O2ZsZXg6MSAxIGF1dG87bWFyZ2luLXRvcDouNnJlbX0uZGF0YWdyaWQtY29udGFpbmVye3dpZHRoOmF1dG87Zm9udC1zaXplOi42NXJlbTtwYWRkaW5nOi41NXJlbSAuNnJlbX0uZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldHtwYWRkaW5nOi4xcmVtIC4ycmVtIC4xNXJlbTt0ZXh0LWFsaWdu''@;'; + put 'put ''OmNlbnRlcn0uZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFk''@;'; + put 'put ''ZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjEuNXJlbTt3aWR0aDoxLjVyZW19YnV0dG9uLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQt''@;'; + put 'put ''YnV0dG9ue2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LWljb257Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtaWNvbi1jb2xvciwgIzhjOGM4Yyk7bWFyZ2luLXRvcDouMTVyZW19LmRhdGFn''@;'; + put 'put ''cmlkLWV4cGFuZGFibGUtY2FyZXQgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtaWNvbiBzdmd7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2UtaW4tb3V0fS5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IC5zcGlubmVye21hcmdpbi10b3A6LjNyZW19LmRhdGFncmlkLWV4cGFuZGFi''@;'; + put 'put ''bGUtY2FyZXQuZGF0YWdyaWQtY29sdW1ue3BhZGRpbmc6LjU1cmVtIC42cmVtfS5kYXRhZ3JpZC1oZWFkZXIsLmRhdGFncmlkLWJvZHksLmRhdGFncmlkLXJvdywuZGF0YWdyaWQtY29sdW1uLC5kYXRhZ3JpZC1jZWxsLC5kYXRhZ3JpZC1maXhlZC1jb2x1bW57ZGlzcGxheTpibG9ja30uZGF0''@;'; + put 'put ''YWdyaWQtcm93e2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDouMDVyZW07Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1jbHItdGFibGUtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXRvcC1jb2xvcjojY2NjO2JvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLXRhYmxl''@;'; + put 'put ''LWJvcmRlci1jb2xvciwgI2NjY2NjYyl9LmRhdGFncmlkLXJvdzpmaXJzdC1vZi10eXBle2JvcmRlci10b3A6bm9uZX0uZGF0YWdyaWQtcm93OmhvdmVyLC5kYXRhZ3JpZC1yb3c6aG92ZXIgLmRhdGFncmlkLXJvdy1zdGlja3l7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQt''@;'; + put 'put ''Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXJvdy1ob3ZlciwgI2U4ZThlOCl9LmRhdGFncmlkLXJvdy5kYXRhZ3JpZC1zZWxlY3RlZCwuZGF0YWdyaWQtcm93LmRhdGFncmlkLXNlbGVjdGVkIC5kYXRhZ3JpZC1yb3ctc3RpY2t5e2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlk''@;'; + put 'put ''LXJvdy1zZWxlY3RlZCwgYmxhY2spO2JhY2tncm91bmQtY29sb3I6I2Q4ZTNlOTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yLCAjZDhlM2U5KX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3d7cG9zaXRpb246YWJzb2x1dGU7''@;'; + put 'put ''YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3IsIHdoaXRlKTtwYWRkaW5nOi4zcmVtO21hcmdpbi1sZWZ0Oi4zcmVtO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHIt''@;'; + put 'put ''Z2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtICM4YzhjOGM0MDtib3gtc2hhZG93OjAgLjA1cmVt''@;'; + put 'put ''IC4xNXJlbSB2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3ZlcnMtYm94LXNoYWRvdy1jb2xvciwgcmdiYSgxNDAsIDE0MCwgMTQwLCAuMjUpKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2ZvbnQtd2VpZ2h0''@;'; + put 'put ''OjQwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTAwJTtoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6LS4zcmVtO2JvcmRlci10b3A6''@;'; + put 'put ''LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTouM3JlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtd2lkdGg6LjNyZW07Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC1jb2xvcjojY2NjO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''ZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdzphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTAwJTtoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6LS4y''@;'; + put 'put ''NXJlbTtib3JkZXItdG9wOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtd2lkdGg6LjI1cmVtO2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2ZmZjtib3JkZXItcmln''@;'; + put 'put ''aHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3IsIHdoaXRlKX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVte2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLXRleHQtY29sb3IsICM2NjY2NjYpO2Zv''@;'; + put 'put ''bnQtc2l6ZTouN3JlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxLjE1cmVtO21hcmdpbjowO3BhZGRpbmc6LjA1cmVtIDEuMnJlbSAwO3RleHQtYWxpZ246bGVmdDt3aWR0aDox''@;'; + put 'put ''MDAlfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06aG92ZXIsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2''@;'; + put 'put ''YXIoLS1jbHItZGF0YWdyaWQtYWN0aW9uLXBvcG92ZXItaG92ZXItY29sb3IsICNlOGU4ZTgpO3RleHQtZGVjb3JhdGlvbjpub25lfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5k''@;'; + put 'put ''OnZhcigtLWNsci1kYXRhZ3JpZC1yb3ctaG92ZXIsICNlOGU4ZTgpO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCwgYmxhY2spfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06Zm9jdXN7b3V0bGluZTowfS5k''@;'; + put 'put ''YXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDstd2Via2l0LXVzZXIt''@;'; + put 'put ''c2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkOmhvdmVyLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWQ6aG92ZXJ7''@;'; + put 'put ''YmFja2dyb3VuZDowIDB9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDphY3RpdmUsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDpmb2N1cywuZGF0YWdyaWQtcm93''@;'; + put 'put ''IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVkOmFjdGl2ZSwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVkOmZvY3Vze2JhY2tncm91bmQ6MCAwO2JveC1zaGFkb3c6bm9uZX0uZGF0YWdyaWQt''@;'; + put 'put ''cm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtIGNkcy1pY29uLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0gY2xyLWljb257dmVydGljYWwtYWxpZ246bWlkZGxlO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0uMDVy''@;'; + put 'put ''ZW0sMCl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93e3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7cGFkZGluZzouM3JlbTttYXJnaW4tbGVmdDouM3Jl''@;'; + put 'put ''bTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAj''@;'; + put 'put ''Y2NjY2NjKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7Ym9yZGVyLXJhZGl1czouMTVyZW07''@;'; + put 'put ''Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtmb250LXdlaWdodDo0MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdzpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0''@;'; + put 'put ''b3A6NTAlO3JpZ2h0OjEwMCU7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW4tdG9wOi0uM3JlbTtib3JkZXItdG9wOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4zcmVtO2JvcmRlci1yaWdodC1z''@;'; + put 'put ''dHlsZTpzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2NjYztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YWZ0ZXJ7Y29udGVudDoiIjtwb3Np''@;'; + put 'put ''dGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEwMCU7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW4tdG9wOi0uMjVyZW07Ym9yZGVyLXRvcDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4y''@;'; + put 'put ''NXJlbTtib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNmZmY7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24t''@;'; + put 'put ''aXRlbXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi10ZXh0LWNvbG9yLCAjNjY2NjY2KTtmb250LXNpemU6LjdyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6''@;'; + put 'put ''MS4xNXJlbTttYXJnaW46MDtwYWRkaW5nOi4wNXJlbSAxLjJyZW0gMDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmhvdmVyLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxv''@;'; + put 'put ''dyAuYWN0aW9uLWl0ZW06Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWFjdGlvbi1wb3BvdmVyLWhvdmVyLWNvbG9yLCAjZThlOGU4KTt0ZXh0LWRlY29yYXRpb246bm9uZX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1h''@;'; + put 'put ''Y3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmFjdGl2ZXtiYWNrZ3JvdW5kOiNlOGU4ZTg7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcm93LWhvdmVyLCAjZThlOGU4KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDAsIGJsYWNrKX0uZGF0YWdy''@;'; + put 'put ''aWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmZvY3Vze291dGxpbmU6MH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAu''@;'; + put 'put ''YWN0aW9uLWl0ZW06ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDpob3ZlciwuZGF0''@;'; + put 'put ''YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQ6YWN0aXZlLC5kYXRhZ3JpZC1yb3cgLmRh''@;'; + put 'put ''dGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDphY3RpdmUsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rp''@;'; + put 'put ''b24taXRlbTpkaXNhYmxlZDpmb2N1c3tiYWNrZ3JvdW5kOjAgMDtib3gtc2hhZG93Om5vbmV9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjZHMtaWNvbiwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1p''@;'; + put 'put ''dGVtIGNsci1pY29ue3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtLjA1cmVtLDApfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvd3twb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHIt''@;'; + put 'put ''ZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO3BhZGRpbmc6LjNyZW07bWFyZ2luLWxlZnQ6LjNyZW07Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNv''@;'; + put 'put ''bG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1i''@;'; + put 'put ''b3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO2JvcmRlci1jb2xvcjouMTVyZW07Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2ZvbnQtd2VpZ2h0OjQwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmRhdGFncmlkLXJvdyAu''@;'; + put 'put ''ZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTAwJTt3aWR0aDowO2hlaWdodDowO21hcmdpbi10b3A6LS4zcmVtO2JvcmRlci1yaWdodDouM3JlbSBzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2NjYzti''@;'; + put 'put ''b3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItdG9wOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjNyZW0gc29saWQgdHJhbnNwYXJlbnR9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQt''@;'; + put 'put ''YWN0aW9uLW92ZXJmbG93OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLXRvcDotLjI1cmVtO2JvcmRlci1yaWdodDouMjVyZW0gc29saWQgI2ZmZjtib3JkZXItdG9wOi4yNXJlbSBzb2xpZCB0cmFu''@;'; + put 'put ''c3BhcmVudDtib3JkZXItYm90dG9tOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVte2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLXRleHQtY29sb3IsICM2NjY2NjYpO2ZvbnQtc2l6''@;'; + put 'put ''ZTouN3JlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxLjE1cmVtO21hcmdpbjowO3BhZGRpbmc6LjA1cmVtIDEuMnJlbSAwO3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMDAlfS5k''@;'; + put 'put ''YXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06aG92ZXIsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpmb2N1c3t0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFj''@;'; + put 'put ''a2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtYWN0aW9uLXBvcG92ZXItaG92ZXItY29sb3IsICNlOGU4ZTgpfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigt''@;'; + put 'put ''LWNsci1kYXRhZ3JpZC1yb3ctaG92ZXIsICNlOGU4ZTgpO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXJvdy1ob3Zlci1mb250LWNvbG9yLCBibGFjayl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpmb2N1c3tvdXRsaW5l''@;'; + put 'put ''OjB9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZCwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40Oy13ZWJraXQt''@;'; + put 'put ''dXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQ6aG92ZXIsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDpo''@;'; + put 'put ''b3ZlcntiYWNrZ3JvdW5kOjAgMH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkOmFjdGl2ZSwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkOmZvY3VzLC5kYXRhZ3Jp''@;'; + put 'put ''ZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWQ6YWN0aXZlLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWQ6Zm9jdXN7YmFja2dyb3VuZDowIDA7Ym94LXNoYWRvdzpub25lfS5kYXRh''@;'; + put 'put ''Z3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0gY2RzLWljb24sLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjbHItaWNvbnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAs''@;'; + put 'put ''LS4wNXJlbSwwKX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1yb3ctZGV0YWlsLXdyYXBwZXJ7ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXh9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtcm93LWRldGFpbHt3aWR0aDphdXRvfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXJvdy1kZXRhaWwgLmRh''@;'; + put 'put ''dGFncmlkLWNlbGx7cGFkZGluZy10b3A6MDtib3JkZXI6MH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1zZWxlY3R7bWluLXdpZHRoOi40cmVtfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXNpZ25wb3N0LXRyaWdnZXIgLnNpZ25wb3N0e21hcmdpbjotLjM2cmVtIDA7aGVpZ2h0OjEuMjM2cmVt''@;'; + put 'put ''fS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXNpZ25wb3N0LXRyaWdnZXIgLnNpZ25wb3N0IC5zaWducG9zdC10cmlnZ2Vye2hlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OjEuMnJlbX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1yb3ctc3RpY2t5e3otaW5kZXg6NTAwfS5kYXRhZ3JpZC1yb3ct''@;'; + put 'put ''c3RpY2t5e2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10YWJsZS1iZ2NvbG9yLCB3aGl0ZSk7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDpub3dyYXA7cG9zaXRpb246c3RpY2t5O2xlZnQ6MDt6LWluZGV4OjUwMn0uZGF0YWdyaWQtcm93LXN0aWNreSAu''@;'; + put 'put ''ZGF0YWdyaWQtY2VsbDpsYXN0LWNoaWxkOmFmdGVye2NvbnRlbnQ6IiI7d2lkdGg6LjA1cmVtO2hlaWdodDpjYWxjKDEwMCUgLSAuNXJlbSk7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6LjI1cmVtO2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5kYXRhZ3JpZC1yb3ctc2Nyb2xsYWJsZXtmbGV4OjEgMSBhdXRvO2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6Y29sdW1uIG5vd3JhcH0uZGF0YWdyaWQtcm93LXNjcm9sbGFibGUuaXMtcmVwbGFjZWR7ZmxleC1kaXJlY3Rpb246cm93fS5k''@;'; + put 'put ''YXRhZ3JpZC1yb3ctc2Nyb2xsYWJsZS5pcy1yZXBsYWNlZCAuZGF0YWdyaWQtc2Nyb2xsaW5nLWNlbGxze2ZsZXg6MCAwIGF1dG99LmRhdGFncmlkLXJvdy1zY3JvbGxhYmxlIC5kYXRhZ3JpZC1jb2x1bW46bGFzdC1jaGlsZCAuZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvcntkaXNwbGF5Om5v''@;'; + put 'put ''bmV9LmRhdGFncmlkLXJvdy1mbGV4e2ZsZXg6MSAxIGF1dG87ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgbm93cmFwfS5kYXRhZ3JpZC1yb3ctZmxleCAuZGF0YWdyaWQtcm93LWRldGFpbHtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OnJvdyBub3dyYXB9LmRhdGFncmlkLXJvdy1mbGV4IC5k''@;'; + put 'put ''YXRhZ3JpZC1yb3ctZGV0YWlsIC5kYXRhZ3JpZC1jZWxse3BhZGRpbmctdG9wOjB9LmRhdGFncmlkLXNjcm9sbGluZy1jZWxscywuZGF0YWdyaWQtc2Nyb2xsaW5nLWRldGFpbHN7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87ZmxleC1mbG93OnJvdyBub3dyYXB9LmRhdGFncmlkLWFjdGlv''@;'; + put 'put ''bi1iYXJ7bWFyZ2luLXRvcDoxLjJyZW19LmRhdGFncmlkLWFjdGlvbi1iYXJ+LmRhdGFncmlkLXNwaW5uZXJ7aGVpZ2h0OmNhbGMoMTAwJSAtIDEuMnJlbSk7dG9wOjEuMnJlbX0uZGF0YWdyaWQtaGVhZGVye3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt6LWluZGV4OjUwMTt3aWR0aDphdXRvfS5k''@;'; + put 'put ''YXRhZ3JpZC1oZWFkZXIgLmRhdGFncmlkLWNvbHVtbntib3JkZXItYm90dG9tOm5vbmV9LmRhdGFncmlkLWhlYWRlciAuZGF0YWdyaWQtcm93e2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10aGVhZC1iZ2NvbG9yLCAjZmFmYWZhKTtib3JkZXIt''@;'; + put 'put ''dG9wOm5vbmU7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLXdpZHRoOi4wNXJlbTtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojY2NjO2JvcmRlci1ib3R0b20tY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyl9LmRhdGFncmlkLWhlYWRlciAuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1yb3ctc3RpY2t5LC5kYXRhZ3JpZC1oZWFkZXIgLmRhdGFncmlkLXJvdzpob3ZlciwuZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1yb3c6aG92ZXIg''@;'; + put 'put ''LmRhdGFncmlkLXJvdy1zdGlja3l7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IsICNmYWZhZmEpfS5kYXRhZ3JpZC1oZWFkZXIgLmRhdGFncmlkLXJvdy1zY3JvbGxhYmxle2ZsZXgtZGlyZWN0aW9uOnJvd30uZGF0YWdy''@;'; + put 'put ''aWQtdGFibGUtd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0OjEwMCV9LmRhdGFncmlkLXRhYmxle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxIDEgYXV0bzthbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9LmRhdGFncmlkLXRhYmxl''@;'; + put 'put ''IC5kYXRhZ3JpZC1ib2R5e3dpZHRoOmF1dG99LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW57dGV4dC1hbGlnbjpsZWZ0O21pbi13aWR0aDo0LjhyZW07ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87dmVydGljYWwtYWxpZ246dG9wO2JvcmRlcjowfS5kYXRhZ3JpZC10YWJsZSAu''@;'; + put 'put ''ZGF0YWdyaWQtY29sdW1uOmZvY3Vze291dGxpbmU6LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIHNvbGlkIC4xcmVtO291dGxpbmUtb2Zmc2V0Oi0uMXJlbX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiBjbHItZGctZmlsdGVyLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29s''@;'; + put 'put ''dW1uIGNsci1kZy1zdHJpbmctZmlsdGVyLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIGNsci1kZy1udW1lcmljLWZpbHRlcntkaXNwbGF5OmZsZXg7b3JkZXI6OTk7bWFyZ2luLWxlZnQ6YXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmls''@;'; + put 'put ''dGVyLWlucHV0LXNwYWNlcnt3aWR0aDouNnJlbTtkaXNwbGF5OmlubGluZS1ibG9ja30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtbnVtZXJpYy1maWx0ZXItaW5wdXR7d2lkdGg6My45cmVtfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRh''@;'; + put 'put ''Z3JpZC1maWx0ZXItdG9nZ2xley13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2Jh''@;'; + put 'put ''Y2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2Zsb2F0OnJpZ2h0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07bWFyZ2luLWxlZnQ6LjNyZW07YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWlufWJ1dHRvbi5k''@;'; + put 'put ''YXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xle2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlIGNkcy1pY29uLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29s''@;'; + put 'put ''dW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlIGNsci1pY29ue2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwLCAjOGM4YzhjKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZTpob3ZlciBjZHMtaWNv''@;'; + put 'put ''biwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZTpob3ZlciBjbHItaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCAjMDA3MmEzKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAu''@;'; + put 'put ''ZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZS5kYXRhZ3JpZC1maWx0ZXItb3BlbiBjZHMtaWNvbiwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZS5kYXRhZ3JpZC1maWx0ZXItb3BlbiBjbHItaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigt''@;'; + put 'put ''LWNsci1jb2xvci1hY3Rpb24tNjAwLCAjMDA3MmEzKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZS5kYXRhZ3JpZC1maWx0ZXJlZCBjZHMtaWNvbiwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVy''@;'; + put 'put ''LXRvZ2dsZS5kYXRhZ3JpZC1maWx0ZXJlZCBjbHItaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCAjMDA3MmEzKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVye3RvcDoxMDAlO3JpZ2h0OjA7bWFyZ2lu''@;'; + put 'put ''LXRvcDouMjRyZW07YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3IsIHdoaXRlKTtwYWRkaW5nOi45cmVtO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFs''@;'; + put 'put ''LWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtICM4YzhjOGM0MDtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJl''@;'; + put 'put ''bSB2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3ZlcnMtYm94LXNoYWRvdy1jb2xvciwgcmdiYSgxNDAsIDE0MCwgMTQwLCAuMjUpKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2ZvbnQtd2VpZ2h0OjQwMH0u''@;'; + put 'put ''ZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyIC5kYXRhZ3JpZC1maWx0ZXItY2xvc2Utd3JhcHBlcnt0ZXh0LWFsaWduOnJpZ2h0fS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFncmlkLWZpbHRlci1j''@;'; + put 'put ''bG9zZS13cmFwcGVyIC5jbG9zZXtmbG9hdDpub25lfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFncmlkLWZpbHRlci1hcHBseXttYXJnaW4tYm90dG9tOjB9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZp''@;'; + put 'put ''bHRlcnt0b3A6MTAwJTtyaWdodDowO21hcmdpbi10b3A6LjI0cmVtO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7cGFkZGluZzouOXJlbTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4wNXJlbTti''@;'; + put 'put ''b3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4Yzhj''@;'; + put 'put ''NDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1''@;'; + put 'put ''cywgLjE1cmVtKTtmb250LXdlaWdodDo0MDB9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWNsb3NlLXdyYXBwZXJ7dGV4dC1hbGlnbjpyaWdodH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdy''@;'; + put 'put ''aWQtZmlsdGVyIC5kYXRhZ3JpZC1maWx0ZXItY2xvc2Utd3JhcHBlciAuY2xvc2V7ZmxvYXQ6bm9uZX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyIC5kYXRhZ3JpZC1maWx0ZXItYXBwbHl7bWFyZ2luLWJvdHRvbTowfS5kYXRhZ3JpZC10YWJsZSAu''@;'; + put 'put ''ZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXJ7dG9wOjEwMCU7cmlnaHQ6MDttYXJnaW4tdG9wOi4yNHJlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO3BhZGRpbmc6LjlyZW07Ym9yZGVyLXdpZHRo''@;'; + put 'put ''Oi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItc3R5bGU6c29saWQ7Ym94LXNo''@;'; + put 'put ''YWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6''@;'; + put 'put ''dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Zm9udC13ZWlnaHQ6NDAwfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFncmlkLWZpbHRlci1jbG9zZS13cmFwcGVye3RleHQtYWxpZ246cmlnaHR9LmRhdGFncmlkLXRh''@;'; + put 'put ''YmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWNsb3NlLXdyYXBwZXIgLmNsb3Nle2Zsb2F0Om5vbmV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWFwcGx5e21hcmdp''@;'; + put 'put ''bi1ib3R0b206MH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbi5kYXRhZ3JpZC1maXhlZC13aWR0aHtmbGV4OjAgMCBhdXRvfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tZmxleHtkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0b30uZGF0''@;'; + put 'put ''YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXRpdGxley13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDti''@;'; + put 'put ''b3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXRhYmxlLWZvbnQtY29sb3IsICM2NjY2NjYpO3RleHQtYWxpZ246bGVmdDtmbGV4OjEgMSBhdXRvO2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRl''@;'; + put 'put ''cjtkaXNwbGF5OmZsZXh9YnV0dG9uLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi10aXRsZXtjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXRpdGxlIC5zaWducG9zdCAuc2lnbnBv''@;'; + put 'put ''c3QtYWN0aW9uLmJ0bntoZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0fS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tdGl0bGUgLmNsci1jaGVja2JveC13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHttYXJnaW4tdG9wOi0uNDhyZW19''@;'; + put 'put ''LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gYnV0dG9uLmRhdGFncmlkLWNvbHVtbi10aXRsZTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIGJ1dHRvbi5kYXRhZ3JpZC1jb2x1bW4t''@;'; + put 'put ''dGl0bGUgLnNvcnQtaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCAjMDA3MmEzKTttYXJnaW4tbGVmdDphdXRvO2hlaWdodDouN3JlbTt3aWR0aDouN3JlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1j''@;'; + put 'put ''b2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3J7cG9zaXRpb246cmVsYXRpdmU7bGVmdDouNnJlbTtmbGV4OjAgMCBhdXRvO3dpZHRoOi4wNXJlbTt3aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO29yZGVyOjEwMDttYXJnaW4tbGVmdDphdXRvO2hlaWdo''@;'; + put 'put ''dDoxMDAlfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OmNhbGMoMTAwJSArIC42cmVtIC0gLjA1cmVtKTt3aWR0aDouMDVyZW07dG9wOi0uMjVyZW07bGVm''@;'; + put 'put ''dDowO2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIC5kYXRhZ3JpZC1jb2x1bW4taGFuZGxl''@;'; + put 'put ''ey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO3Bvc2l0''@;'; + put 'put ''aW9uOmFic29sdXRlO3dpZHRoOi42NXJlbTtyaWdodDotLjNyZW07dG9wOi0uM3JlbTtjdXJzb3I6Y29sLXJlc2l6ZTtoZWlnaHQ6Y2FsYygxMDAlICsgLjZyZW0gLSAuMDVyZW0pO3otaW5kZXg6NTAxfWJ1dHRvbi5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1j''@;'; + put 'put ''b2x1bW4tc2VwYXJhdG9yIC5kYXRhZ3JpZC1jb2x1bW4taGFuZGxle2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIC5kYXRhZ3JpZC1jb2x1bW4tcmVzaXplLXRyYWNrZXJ7cG9zaXRpb246YWJzb2x1dGU7''@;'; + put 'put ''dG9wOi0uNnJlbTtkaXNwbGF5Om5vbmU7d2lkdGg6LjA1cmVtO2hlaWdodDowO2JvcmRlci1yaWdodC1zdHlsZTpkb3R0ZWQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiM3OWM2ZTY7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tMzAwLCAjNzljNmU2KTtib3JkZXItcmln''@;'; + put 'put ''aHQtd2lkdGg6LjA1cmVtO2JvcmRlci1yaWdodC13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7Y3Vyc29yOmNvbC1yZXNpemV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1z''@;'; + put 'put ''ZXBhcmF0b3IgLmRhdGFncmlkLWNvbHVtbi1yZXNpemUtdHJhY2tlci5vbi1hcnJvdy1rZXktcmVzaXple3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlLW91dH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvciAuZXhjZWVkZWQt''@;'; + put 'put ''bWF4e2JvcmRlci1yaWdodDouMDVyZW0gZG90dGVkIHJnYmEoMjE5LDMzLDAsLjMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1zaWducG9zdC10cmlnZ2VyIC5zaWducG9zdHttYXJnaW46LS4zNnJlbSAwO2hlaWdodDoxLjIzNnJlbX0uZGF0YWdyaWQtdGFi''@;'; + put 'put ''bGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtc2lnbnBvc3QtdHJpZ2dlciAuc2lnbnBvc3QgLnNpZ25wb3N0LXRyaWdnZXJ7aGVpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6MS4ycmVtfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uLmRhdGFncmlkLXNlbGVjdCwuZGF0YWdy''@;'; + put 'put ''aWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbi5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uLmRhdGFncmlkLXJvdy1hY3Rpb25ze21heC13aWR0aDoxLjlyZW07bWluLXdpZHRoOjEuOXJlbX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlk''@;'; + put 'put ''LWNlbGx7ZmxleDoxIDEgYXV0bzt0ZXh0LWFsaWduOmxlZnQ7bWluLXdpZHRoOjQuOHJlbTtib3JkZXI6MH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwuZGF0YWdyaWQtZml4ZWQtd2lkdGh7ZmxleDowIDAgYXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwuZGF0YWdy''@;'; + put 'put ''aWQtZml4ZWQtY29sdW1ue2ZsZXg6MCAwIDEuOXJlbTttYXgtd2lkdGg6MS45cmVtO21pbi13aWR0aDoxLjlyZW19LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsLmRhdGFncmlkLXJvdy1hY3Rpb25ze2JhY2tncm91bmQ6MCAwfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbC5k''@;'; + put 'put ''YXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0e3BhZGRpbmc6LjFyZW0gLjJyZW0gLjE1cmVtO3RleHQtYWxpZ246Y2VudGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbDpmb2N1c3tvdXRsaW5lOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBzb2xpZCAuMXJlbTtvdXRsaW5lLW9mZnNl''@;'; + put 'put ''dDotLjFyZW19LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xley13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6''@;'; + put 'put ''MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwfWJ1dHRvbi5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbCAuZGF0YWdyaWQtYWN0aW9uLXRvZ2dsZXtjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwg''@;'; + put 'put ''LmRhdGFncmlkLWFjdGlvbi10b2dnbGUgY2RzLWljb24sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xlIGNsci1pY29ue2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWljb24tY29sb3IsICM4YzhjOGMpfS5kYXRhZ3Jp''@;'; + put 'put ''ZC10YWJsZSAuZGF0YWdyaWQtY2VsbCAuZGF0YWdyaWQtYWN0aW9uLXRvZ2dsZTphY3RpdmUgY2RzLWljb24sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xlOmFjdGl2ZSBjbHItaWNvbntjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kYXRh''@;'; + put 'put ''Z3JpZC1hY3Rpb24tdG9nZ2xlLCAjNjY2NjY2KX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwgLmNsci10b2dnbGUtd3JhcHBlcnttYXJnaW4tdG9wOi0uNjZyZW07cGFkZGluZy10b3A6LjQycmVtfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVy''@;'; + put 'put ''e2ZsZXg6MSAxIGF1dG87ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLWNvbG9yOiNjY2M7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItdG9wLXdp''@;'; + put 'put ''ZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSl9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1wbGFjZWhvbGRlcntiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItdGFibGUtYmdjb2xvciwgd2hpdGUpO3dp''@;'; + put 'put ''ZHRoOjEwMCV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1wbGFjZWhvbGRlci5kYXRhZ3JpZC1lbXB0eXtib3JkZXItdG9wOjA7cGFkZGluZzouNnJlbTtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OmNvbHVtbiBub3dyYXA7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4''@;'; + put 'put ''LXN0YXJ0O2ZvbnQtc2l6ZTouOHJlbTtmb250LXNpemU6dmFyKC0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWZvbnQtc2l6ZSwgLjhyZW0pO2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbG9yLCAjYjNiM2IzKX0uZGF0YWdyaWQtdGFibGUg''@;'; + put 'put ''LmRhdGFncmlkLXBsYWNlaG9sZGVyIC5kYXRhZ3JpZC1wbGFjZWhvbGRlci1pbWFnZXtoZWlnaHQ6M3JlbTt3aWR0aDozcmVtO21hcmdpbi1ib3R0b206LjZyZW07YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtcG9zaXRpb246''@;'; + put 'put ''Y2VudGVyO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYwJTIwNzIlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIw''@;'; + put 'put ''MDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZWxsaXBzZSUyMGlkJTNEJTIycGF0aC0xJTIyJTIwY3gl''@;'; + put 'put ''M0QlMjIzMCUyMiUyMGN5JTNEJTIyNjEuNzY2NjY2NyUyMiUyMHJ4JTNEJTIyMTUuNDUxMjkwNCUyMiUyMHJ5JTNEJTIyNC43MzMzMzMzMyUyMiUzRSUzQyUyRmVsbGlwc2UlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NtYXNrJTIwaWQlM0QlMjJtYXNrLTIlMjIlMjBtYXNrQ29u''@;'; + put 'put ''dGVudFVuaXRzJTNEJTIydXNlclNwYWNlT25Vc2UlMjIlMjBtYXNrVW5pdHMlM0QlMjJvYmplY3RCb3VuZGluZ0JveCUyMiUyMHglM0QlMjIwJTIyJTIweSUzRCUyMjAlMjIlMjB3aWR0aCUzRCUyMjMwLjkwMjU4MDglMjIlMjBoZWlnaHQlM0QlMjI5LjQ2NjY2NjY3JTIyJTIwZmlsbCUzRCUy''@;'; + put 'put ''MndoaXRlJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJTIyJTIzcGF0aC0xJTIyJTNFJTNDJTJGdXNlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGbWFzayUzRSUwQSUyMCUyMCUyMCUyMCUzQyUy''@;'; + put 'put ''RmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0NnJTIwaWQlM0QlMjJQYWdlLTElMjIlMjBzdHJva2UlM0QlMjJub25lJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMSUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUzQ2clMjBpZCUzRCUyMkFydGJvYXJkJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdXNlJTIwaWQlM0QlMjJPdmFsLTEwJTIyJTIwc3Ryb2tlJTNEJTIyJTIzQzFERkVGJTIyJTIwbWFzayUzRCUyMnVybCglMjNtYXNrLTIpJTIyJTIwc3Ry''@;'; + put 'put ''b2tlLXdpZHRoJTNEJTIyMi44JTIyJTIwc3Ryb2tlLWxpbmVjYXAlM0QlMjJzcXVhcmUlMjIlMjBzdHJva2UtZGFzaGFycmF5JTNEJTIyMyUyQzYlMkMzJTJDNSUyMiUyMHhsaW5rJTNBaHJlZiUzRCUyMiUyM3BhdGgtMSUyMiUzRSUzQyUyRnVzZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBkJTNEJTIyTTM4LjQ2MTM2NDclMkMxOC4xNjQyNDU2JTIwTDMwLjk4OTAxMzclMkMzNC45MTQxODQ2JTIwTDMxJTJDNDclMjBMMzIuNTk3Nzc4MyUyQzQ2LjUxNjcyMzYlMjBMMzIuNTk3Nzc4MyUyQzM0LjkxNDE4NDYlMjBMNTEuMDY3MzIxOCUy''@;'; + put 'put ''QzE1Ljc1NjA0MjUlMjBDNTEuMDY3MzIxOCUyQzE1Ljc1NjA0MjUlMjA0OC42Mjk1MTY2JTJDMTYuNjU0Mjk2OSUyMDQ0Ljk2Mjg5MDYlMkMxNy4zMzkyMzM0JTIwQzQxLjI5NjI2NDYlMkMxOC4wMjQxNjk5JTIwMzguNDYxMzY0NyUyQzE4LjE2NDI0NTYlMjAzOC40NjEzNjQ3JTJDMTguMTY0''@;'; + put 'put ''MjQ1NiUyMFolMjIlMjBpZCUzRCUyMlBhdGgtMTk1JTIyJTIwZmlsbCUzRCUyMiUyM0MxREZFRiUyMiUzRSUzQyUyRnBhdGglM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NwYXRoJTIwZCUzRCUyMk00Ljc0NjM5MjI2JTJDMTIuNTY2MTg1NSUyMEw0LjYyMDY1''@;'; + put 'put ''NzI2JTJDMTIuMTYwNTM0OCUyMEw1LjM1MTU0MTQlMkMxMS4xNjI1MDQ0JTIwTDUuNzc2MjIzODUlMkMxMS4xNTk5MzklMjBMNi4yMDkzNjMwOSUyQzEyLjU1NzM0ODElMjBMNC43NDYzOTIyNiUyQzEyLjU2NjE4NTUlMjBaJTIwTTYuMjA5MzYzMDklMkMxMi41NTczNDgxJTIwTDYuMzI1NDI2''@;'; + put 'put ''MzIlMkMxMi45MzE3OTU0JTIwTDI4LjQ5NjM4NTUlMkMzNC44Nzk2NzE4JTIwTDI4LjQ5NjM4NTUlMkM0Ny44MDk2NjkxJTIwTDMyLjYlMkM0Ni40ODM2NTEzJTIwTDMyLjYlMkMzNC44OTkyMzY1JTIwTDUzLjk3MzQ5NCUyQzEyLjcwMzU4MTMlMjBMNTMuOTczNDk0JTJDMTIuMjY4ODIwMSUy''@;'; + put 'put ''MEw2LjIwOTM2MzA5JTJDMTIuNTU3MzQ4MSUyMFolMjBNNTUuMzczNDk0JTJDMTAuODYwMzM3NiUyMEw1NS4zNzM0OTQlMkMxMy4yNjgwNjY0JTIwTDM0JTJDMzUuNDYzNzIxNiUyMEwzNCUyQzQ3LjUwMjU0MDElMjBMMjcuMDk2Mzg1NSUyQzQ5LjczMzMzMzMlMjBMMjcuMDk2Mzg1NSUyQzM1''@;'; + put 'put ''LjQ2MzcyMTklMjBMNS4wOTE3OTY4OCUyQzEzLjY4MDU0MiUyMEw0LjMxMzI1MzAxJTJDMTEuMTY4Nzc2NCUyMEw1NS4zNzM0OTQlMkMxMC44NjAzMzc2JTIwWiUyMiUyMGlkJTNEJTIyUGF0aC0xNDklMjIlMjBmaWxsJTNEJTIyJTIzN0ZCREREJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUy''@;'; + put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2VsbGlwc2UlMjBpZCUzRCUyMk92YWwtOSUyMiUyMGZpbGwlM0QlMjIlMjNGRkZGRkYlMjIlMjBjeCUzRCUyMjMwJTIyJTIwY3klM0QlMjIxMS43ODU2NTQlMjIlMjByeCUzRCUyMjI2JTIyJTIwcnklM0QlMjI2Ljc4NTY1NDAxJTIy''@;'; + put 'put ''JTNFJTNDJTJGZWxsaXBzZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBkJTNEJTIyTTMwJTJDMTcuMTcxMzA4JTIwQzM2Ljg3NzIxNzclMkMxNy4xNzEzMDglMjA0My4zMTEyMjgyJTJDMTYuNDYxMDcwMSUyMDQ4LjAzMTIzNzElMkMxNS4yMjky''@;'; + put 'put ''MTA2JTIwQzUwLjI3Nzc2MTElMkMxNC42NDI4OTc3JTIwNTIuMDUwNzYxOSUyQzEzLjk1Nzk2NzclMjA1My4yMjE2MjMxJTJDMTMuMjM1NDk3MyUyMEM1NC4xOTM4NTY1JTJDMTIuNjM1NTg4NiUyMDU0LjYlMkMxMi4xMTc1ODkxJTIwNTQuNiUyQzExLjc4NTY1NCUyMEM1NC42JTJDMTEuNDUz''@;'; + put 'put ''NzE4OSUyMDU0LjE5Mzg1NjUlMkMxMC45MzU3MTk0JTIwNTMuMjIxNjIzMSUyQzEwLjMzNTgxMDclMjBDNTIuMDUwNzYxOSUyQzkuNjEzMzQwMzIlMjA1MC4yNzc3NjExJTJDOC45Mjg0MTAzNCUyMDQ4LjAzMTIzNzElMkM4LjM0MjA5NzQ2JTIwQzQzLjMxMTIyODIlMkM3LjExMDIzNzk1JTIw''@;'; + put 'put ''MzYuODc3MjE3NyUyQzYuNCUyMDMwJTJDNi40JTIwQzIzLjEyMjc4MjMlMkM2LjQlMjAxNi42ODg3NzE4JTJDNy4xMTAyMzc5NSUyMDExLjk2ODc2MjklMkM4LjM0MjA5NzQ2JTIwQzkuNzIyMjM4ODYlMkM4LjkyODQxMDM0JTIwNy45NDkyMzgxNCUyQzkuNjEzMzQwMzIlMjA2Ljc3ODM3Njg5''@;'; + put 'put ''JTJDMTAuMzM1ODEwNyUyMEM1LjgwNjE0MzUlMkMxMC45MzU3MTk0JTIwNS40JTJDMTEuNDUzNzE4OSUyMDUuNCUyQzExLjc4NTY1NCUyMEM1LjQlMkMxMi4xMTc1ODkxJTIwNS44MDYxNDM1JTJDMTIuNjM1NTg4NiUyMDYuNzc4Mzc2ODklMkMxMy4yMzU0OTczJTIwQzcuOTQ5MjM4MTQlMkMx''@;'; + put 'put ''My45NTc5Njc3JTIwOS43MjIyMzg4NiUyQzE0LjY0Mjg5NzclMjAxMS45Njg3NjI5JTJDMTUuMjI5MjEwNiUyMEMxNi42ODg3NzE4JTJDMTYuNDYxMDcwMSUyMDIzLjEyMjc4MjMlMkMxNy4xNzEzMDglMjAzMCUyQzE3LjE3MTMwOCUyMFolMjBNMzAlMkMxOC41NzEzMDglMjBDMTUuNjQwNTk2''@;'; + put 'put ''NSUyQzE4LjU3MTMwOCUyMDQlMkMxNS41MzMyNjcyJTIwNCUyQzExLjc4NTY1NCUyMEM0JTJDOC4wMzgwNDA3OCUyMDE1LjY0MDU5NjUlMkM1JTIwMzAlMkM1JTIwQzQ0LjM1OTQwMzUlMkM1JTIwNTYlMkM4LjAzODA0MDc4JTIwNTYlMkMxMS43ODU2NTQlMjBDNTYlMkMxNS41MzMyNjcyJTIw''@;'; + put 'put ''NDQuMzU5NDAzNSUyQzE4LjU3MTMwOCUyMDMwJTJDMTguNTcxMzA4JTIwWiUyMiUyMGlkJTNEJTIyT3ZhbC05LUNvcHklMjIlMjBmaWxsJTNEJTIyJTIzN0ZCREREJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBkJTNE''@;'; + put 'put ''JTIyTTE4LjI2MDg2NDMlMkM3LjE0NTYyOTg4JTIwTDIyLjcyNzM1NiUyQzE2LjkwNDcyNDElMjBDMjIuNzI3MzU2JTJDMTYuOTA0NzI0MSUyMDE1LjMwMDY1OTIlMkMxNi4zOTExNzQzJTIwMTAuMjc2MDAxJTJDMTQuNzUxMTU5NyUyMEM1LjI1MTM0Mjc3JTJDMTMuMTExMTQ1JTIwNS4zODAz''@;'; + put 'put ''MTAwNiUyQzExLjgyODQzMDIlMjA1LjM4MDMxMDA2JTJDMTEuNjg4MjkzNSUyMEM1LjM4MDMxMDA2JTJDMTAuNDgzMjgzMSUyMDguMTY2MzMxNTIlMkM5LjQxODc3NzE2JTIwMTEuMTE0NTYzJTJDOC41NzMyNDIxOSUyMEMxNC41NDkzMTklMkM3LjU4ODE3NDkyJTIwMTguMjYwODY0MyUyQzcu''@;'; + put 'put ''MTQ1NjI5ODglMjAxOC4yNjA4NjQzJTJDNy4xNDU2Mjk4OCUyMFolMjIlMjBpZCUzRCUyMlBhdGgtMTk2JTIyJTIwZmlsbCUzRCUyMiUyM0MxREZFRiUyMiUzRSUzQyUyRnBhdGglM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZyUz''@;'; + put 'put ''RSUwQSUzQyUyRnN2ZyUzRSIpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtaGlkZGVuLWNvbHVtbi5kYXRhZ3JpZC1jb2x1bW4sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1oaWRkZW4tY29sdW1uLmRhdGFncmlkLWNlbGx7ZGlzcGxheTpub25lfS5kYXRhZ3JpZC1yb3ctcmVwbGFjZWQg''@;'; + put 'put ''LmRhdGFncmlkLXNjcm9sbGluZy1jZWxscyAuZGF0YWdyaWQtY2VsbDpub3QoLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQpOm5vdCguZGF0YWdyaWQtcm93LWFjdGlvbnMpOm5vdCguZGF0YWdyaWQtc2VsZWN0KXtkaXNwbGF5Om5vbmV9LmRhdGFncmlkLXJvdy1yZXBsYWNlZCAuZGF0YWdy''@;'; + put 'put ''aWQtcm93LWRldGFpbCAuZGF0YWdyaWQtY2VsbHtkaXNwbGF5OmJsb2NrO3BhZGRpbmctdG9wOi41NXJlbX0uZGF0YWdyaWQtcm93LXJlcGxhY2VkIC5kYXRhZ3JpZC1yb3ctZGV0YWlsIC5kYXRhZ3JpZC1jZWxsLmRhdGFncmlkLWhpZGRlbi1jb2x1bW57ZGlzcGxheTpub25lfS5kYXRhZ3Jp''@;'; + put 'put ''ZC1yb3ctcmVwbGFjZWQgLmRhdGFncmlkLXJvdy1kZXRhaWwgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXR7cGFkZGluZy10b3A6LjFyZW19LmRhdGFncmlkLXJvdy1yZXBsYWNlZCAuZGF0YWdyaWQtcm93LWRldGFpbC5kYXRhZ3JpZC1jb250YWluZXJ7Ym9yZGVyLXRvcDouMDVyZW0gc29s''@;'; + put 'put ''aWQgI2NjY30uZGF0YWdyaWQtcm93LXJlcGxhY2VkIC5kYXRhZ3JpZC1yb3ctZGV0YWlsLmRhdGFncmlkLWNvbnRhaW5lciAuZGF0YWdyaWQtY2VsbHtib3JkZXItdG9wOm5vbmV9LmRhdGFncmlkLWZvb3RlcntmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IG5vd3Jh''@;'; + put 'put ''cDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpzdHJldGNoO3BhZGRpbmc6MCAuNnJlbTtsaW5lLWhlaWdodDoxLjY1cmVtO2ZvbnQtc2l6ZTouNTVyZW07YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJn''@;'; + put 'put ''Y29sb3IsICNmYWZhZmEpO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRhYmxlLWZvb3Rlci1ib3JkZXItdG9wLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFs''@;'; + put 'put ''LWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci10b3A6bm9uZTtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JvcmRlci1ib3R0''@;'; + put 'put ''b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSl9LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwO2p1''@;'; + put 'put ''c3RpZnktY29udGVudDpmbGV4LWVuZDtsaW5lLWhlaWdodDoxLjhyZW19LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1zaXple2Rpc3BsYXk6YmxvY2s7ZmxleDoxIDEgYXV0bzt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1hbGlnbjpyaWdodH0uZGF0YWdyaWQtZm9vdGVyIC5wYWdpbmF0''@;'; + put 'put ''aW9uLXNpemUgLmNsci1zZWxlY3Qtd3JhcHBlcjphZnRlcnt0b3A6LjZyZW19LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1zaXplIC5jbHItcGFnZS1zaXplLXNlbGVjdHtmb250LXNpemU6MTAwJTttYXJnaW4tbGVmdDouNnJlbTtoZWlnaHQ6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuMnJl''@;'; + put 'put ''bTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1zaXplKy5wYWdpbmF0aW9uLWRlc2NyaXB0aW9ue21hcmdpbi1sZWZ0OjEuMnJlbX0uZGF0YWdyaWQtZm9vdGVyIC5wYWdpbmF0aW9uLWRlc2NyaXB0aW9ue3doaXRlLXNwYWNlOm5vd3JhcH0uZGF0''@;'; + put 'put ''YWdyaWQtZm9vdGVyIC5wYWdpbmF0aW9uLWxpc3R7bWFyZ2luLWxlZnQ6MS4ycmVtO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpmbGV4''@;'; + put 'put ''O2FsaWduLWl0ZW1zOmNlbnRlcn0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIuYWN0aXZlIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb24gY2RzLWljb24sLmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyLmFjdGl2ZSAuY29sdW1uLXRvZ2dsZS0tYWN0''@;'; + put 'put ''aW9uIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXRvZ2dsZS0tYWN0aW9ue21pbi13aWR0aDouOXJlbTtwYWRkaW5nLWxlZnQ6MDtw''@;'; + put 'put ''YWRkaW5nLXJpZ2h0OjB9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb24gY2RzLWljb24sLmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb24gY2xyLWljb257Y29sb3I6''@;'; + put 'put ''IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDAsICM4YzhjOGMpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXRvZ2dsZS0tYWN0aW9uOmhvdmVyIGNkcy1pY29uLC5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3Jh''@;'; + put 'put ''cHBlciAuY29sdW1uLXRvZ2dsZS0tYWN0aW9uOmhvdmVyIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaHtib3JkZXItcmFk''@;'; + put 'put ''aXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWNvbG9yOiNjY2M7''@;'; + put 'put ''Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4''@;'; + put 'put ''YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7cGFkZGluZzouOXJlbTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXRvcDpub25lO3dpZHRoOjEyLjVy''@;'; + put 'put ''ZW07ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt6LWluZGV4OjEwNTB9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjtm''@;'; + put 'put ''b250LXdlaWdodDo0MDA7Zm9udC1zaXplOi44cmVtO3BhZGRpbmctYm90dG9tOi42cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbX0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXIgYnV0dG9ue21pbi13aWR0aDouOXJlbTtt''@;'; + put 'put ''YXJnaW46MDtwYWRkaW5nOjB9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtY29udGVudHttYXgtaGVpZ2h0OjE1cmVtO292ZXJmbG93LXk6YXV0bzttaW4taGVpZ2h0OjIuNHJlbX0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4t''@;'; + put 'put ''c3dpdGNoLXdyYXBwZXIgLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1jb250ZW50IGxpe2xpbmUtaGVpZ2h0OjEuMnJlbTtwYWRkaW5nLWxlZnQ6LjFyZW19LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtZm9vdGVyIC5idG57bWFy''@;'; + put 'put ''Z2luOjA7cGFkZGluZzowfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYWN0aW9uLXJpZ2h0e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3''@;'; + put 'put ''aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoe2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92''@;'; + put 'put ''ZXItYmctY29sb3IsIHdoaXRlKTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNj''@;'; + put 'put ''Y2NjY2MpO2JvcmRlci1zdHlsZTpzb2xpZDtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7cGFk''@;'; + put 'put ''ZGluZzouOXJlbTt3aWR0aDoxMi41cmVtO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ei1pbmRleDoxMDUwfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1j''@;'; + put 'put ''b250ZW50OnNwYWNlLWJldHdlZW47Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZTouOHJlbTtwYWRkaW5nLWJvdHRvbTouNnJlbTtsaW5lLWhlaWdodDoxLjJyZW19LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGJ1''@;'; + put 'put ''dHRvbnttaW4td2lkdGg6LjlyZW07bWFyZ2luOjA7cGFkZGluZzowO2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi1zd2l0Y2gtaGVhZGVyLWZvbnQtY29sb3IsICNiM2IzYjMpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29s''@;'; + put 'put ''dW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBidXR0b246aG92ZXJ7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRjaC1oZWFkZXItZm9udC1ob3Zlci1jb2xvciwgIzAwNzJhMyl9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVy''@;'; + put 'put ''IC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtY29udGVudHttYXgtaGVpZ2h0OjE1cmVtO292ZXJmbG93LXk6YXV0bzttaW4taGVpZ2h0OjEuMjVyZW19LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtY29udGVudCBsaXtsaW5lLWhl''@;'; + put 'put ''aWdodDoxLjJyZW07cGFkZGluZy1sZWZ0Oi4xcmVtfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYnRue21hcmdpbjowO3BhZGRpbmc6MH0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIg''@;'; + put 'put ''LmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1mb290ZXIgLmFjdGlvbi1yaWdodHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5kYXRhZ3JpZC1mb290ZXIgLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6''@;'; + put 'put ''MTAwJX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuZGF0YWdyaWQtZm9vdGVyLXNlbGVjdC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVse2N1cnNvcjpkZWZhdWx0O21hcmdpbi1yaWdodDouNDVyZW19LmNsci1mb3JtLWNvbnRyb2wt''@;'; + put 'put ''ZGlzYWJsZWQgLmRhdGFncmlkLWZvb3Rlci1zZWxlY3QuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbDpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojOGM4YzhjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAw''@;'; + put 'put ''LCAjOGM4YzhjKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuZGF0YWdyaWQtZm9vdGVyLXNlbGVjdC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmFmdGVye2JvcmRlci1sZWZ0LWNvbG9yOiNmZmY7Ym9yZGVyLWxlZnQtY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCwgd2hpdGUpO2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZjtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTAsIHdoaXRlKX0uZGF0YWdyaWQtc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmZsZXg7anVz''@;'; + put 'put ''dGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MTAwJTt0b3A6LjZyZW07aGVpZ2h0OmNhbGMoMTAwJSAtIC42cmVtKTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY5O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWxvYWRpbmctYmFja2dyb3VuZCwg''@;'; + put 'put ''cmdiYSgyNTUsIDI1NSwgMjU1LCAuNikpO3otaW5kZXg6NTkwfS5kYXRhZ3JpZC1zZWxlY3QgLmNsci1jb250cm9sLWxhYmVse21pbi1oZWlnaHQ6LjZyZW07bWFyZ2luLXRvcDotLjI0cmVtO3BhZGRpbmctbGVmdDouN3JlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtaGVhZGVye21p''@;'; + put 'put ''bi1oZWlnaHQ6MS4ycmVtfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3I6YWZ0ZXJ7aGVpZ2h0OmNhbGMoMTAwJSArIC4yNXJlbSk7dG9wOmNhbGMoLS4yNSouNnJlbSArIC4wNXJlbSl9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFn''@;'; + put 'put ''cmlkLWNlbGwgY2xyLWljb257bWFyZ2luLXRvcDotLjJyZW07bWFyZ2luLWJvdHRvbTotLjE1cmVtO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0uMDVyZW0pfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1jZWxsIGNkcy1pY29ue21hcmdpbi10b3A6LS4ycmVtO21hcmdpbi1ib3R0b206LS4x''@;'; + put 'put ''NXJlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtY2VsbCAuYmFkZ2V7bWFyZ2luLXRvcDotLjE1cmVtO21hcmdpbi1ib3R0b206LS4wNXJlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldHt0ZXh0LWFsaWduOmNlbnRlcn0uZGF0YWdyaWQtY29tcGFj''@;'; + put 'put ''dCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuc3Bpbm5lcnttYXJnaW4tdG9wOi4xNXJlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1h''@;'; + put 'put ''cHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW07b3V0bGluZS1v''@;'; + put 'put ''ZmZzZXQ6LS4ycmVtfWJ1dHRvbi5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LWJ1dHRvbntjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdy''@;'; + put 'put ''aWQtZXhwYW5kYWJsZS1jYXJldC1pY29ue21hcmdpbjowfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LmRhdGFncmlkLWNlbGx7cGFkZGluZzowfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LmRhdGFncmlkLWNvbHVtbntw''@;'; + put 'put ''YWRkaW5nLXRvcDouM3JlbTtwYWRkaW5nLWJvdHRvbTouMjVyZW19LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLXNpZ25wb3N0LXRyaWdnZXIgLnNpZ25wb3N0IC5zaWducG9zdC10cmlnZ2VyIGNkcy1pY29uOm5vdChbc2hhcGU9aW5mby1jaXJjbGVdLFtzaGFwZT1leGNsYW1hdGlvbi10''@;'; + put 'put ''cmlhbmdsZV0sW3NoYXBlPWV4Y2xhbWF0aW9uLWNpcmNsZV0sW3NoYXBlPWNoZWNrLWNpcmNsZV0sW3NoYXBlPWluZm9dLFtzaGFwZT1lcnJvcl0pLC5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1zaWducG9zdC10cmlnZ2VyIC5zaWducG9zdCAuc2lnbnBvc3QtdHJpZ2dlciBjbHItaWNv''@;'; + put 'put ''bjpub3QoW3NoYXBlPWluZm8tY2lyY2xlXSxbc2hhcGU9ZXhjbGFtYXRpb24tdHJpYW5nbGVdLFtzaGFwZT1leGNsYW1hdGlvbi1jaXJjbGVdLFtzaGFwZT1jaGVjay1jaXJjbGVdLFtzaGFwZT1pbmZvXSxbc2hhcGU9ZXJyb3JdKXtoZWlnaHQ6MS4wNXJlbTt3aWR0aDoxLjA1cmVtfS5kYXRh''@;'; + put 'put ''Z3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290ZXJ7cGFkZGluZzowIC42cmVtO2xpbmUtaGVpZ2h0OjEuMTVyZW19LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbntsaW5lLWhlaWdodDoxLjJyZW19LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWZvb3Rl''@;'; + put 'put ''ciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb257bWFyZ2luOjA7b3V0bGluZS1vZmZzZXQ6LS4ycmVtfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290ZXIgLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmRhdGFncmlkLWZvb3Rlci1zZWxlY3Qu''@;'; + put 'put ''Y2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbHt0b3A6MH0uZGF0YWdyaWQtZm9vdGVyLWRlc2NyaXB0aW9ue2ZsZXg6MSAxIGF1dG87ZmxleC13cmFwOm5vd3JhcDt3aGl0ZS1zcGFjZTpub3dyYXA7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWdu''@;'; + put 'put ''OnJpZ2h0O21hcmdpbjphdXRvIDB9LnBhZ2luYXRpb24tbGlzdHtsaXN0LXN0eWxlOm5vbmU7ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgbm93cmFwO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6c3RyZXRjaH0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWN1cnJl''@;'; + put 'put ''bnR7YmFja2dyb3VuZDowIDA7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHRhcmVhLWJhY2tncm91bmQtY29sb3IsIHdoaXRlKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBhZ2luYXRp''@;'; + put 'put ''b24taW5wdXQtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNs''@;'; + put 'put ''ci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0OjEuMnJlbTtmb250LXNpemU6LjU1cmVtO21pbi13aWR0aDoxLjJyZW07dGV4dC1hbGlnbjpjZW50ZXI7dHJhbnNpdGlvbjpub25lIWltcG9ydGFudH0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWN1cnJlbnQ6''@;'; + put 'put ''Zm9jdXMsLnBhZ2luYXRpb24tbGlzdCAucGFnaW5hdGlvbi1jdXJyZW50LmNsci1mb2N1c3tiYWNrZ3JvdW5kOjAgMDtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojNDlhZWRhO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1pbnB1dC1ib3JkZXIt''@;'; + put 'put ''Zm9jdXMtY29sb3IsICM0OWFlZGEpO2JveC1zaGFkb3c6MCAwIC4wNXJlbSAjNDlhZWRhO2JveC1zaGFkb3c6MCAwIHZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSkgdmFyKC0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24taW5wdXQtYm9yZGVyLWZvY3VzLWNvbG9yLCAjNDlh''@;'; + put 'put ''ZWRhKX0ucGFnaW5hdGlvbi1saXN0Pip7cGFkZGluZzowIC4xMnJlbX0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWZpcnN0LC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbGFzdCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLXByZXZpb3VzLC5wYWdpbmF0aW9uLWxpc3Qg''@;'; + put 'put ''LnBhZ2luYXRpb24tbmV4dHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbn0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWZpcnN0OmRpc2FibGVkLC5wYWdpbmF0aW9uLWxpc3QgLnBh''@;'; + put 'put ''Z2luYXRpb24tbGFzdDpkaXNhYmxlZCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLXByZXZpb3VzOmRpc2FibGVkLC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbmV4dDpkaXNhYmxlZHtjb2xvcjojOGM4YzhjO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWJ0''@;'; + put 'put ''bi1kaXNhYmxlZC1jb2xvciwgIzhjOGM4Yyk7b3BhY2l0eTouNTY7b3BhY2l0eTp2YXIoLS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1idG4tZGlzYWJsZWQtb3BhY2l0eSwgLjU2KX0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWZpcnN0LC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRp''@;'; + put 'put ''b24tcHJldmlvdXN7bWFyZ2luLXJpZ2h0Oi42cmVtfS5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbGFzdCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLW5leHR7bWFyZ2luLWxlZnQ6LjZyZW19LnBhZ2luYXRpb24tbGlzdCBidXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7''@;'; + put 'put ''LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZGF0''@;'; + put 'put ''YWdyaWQtcGFnaW5hdGlvbi1idG4tY29sb3IsICM2NjY2NjYpO2N1cnNvcjpwb2ludGVyfWJ1dHRvbi5wYWdpbmF0aW9uLWxpc3QgYnV0dG9ue2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC1jZWxsLXdpZHRoLXplcm97Ym9yZGVyOjAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7d2lk''@;'; + put 'put ''dGg6MDtmbGV4OjAgMCBhdXRvIWltcG9ydGFudDttaW4td2lkdGg6MCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmRhdGFncmlkLW91dGVyLXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWdyb3c6MTtvdmVyZmxvdzphdXRvfS5kYXRhZ3Jp''@;'; + put 'put ''ZC1pbm5lci13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1ncm93OjE7b3ZlcmZsb3c6YXV0bzttaW4td2lkdGg6MTJyZW19LmRhdGFncmlkLWRldGFpbC1vcGVuIC5kYXRhZ3JpZHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1yaWdodDpu''@;'; + put 'put ''b25lfS5kYXRhZ3JpZC1kZXRhaWwtb3BlbiAuZGF0YWdyaWQtaW5uZXItd3JhcHBlcnt3aWR0aDozNCV9LmRhdGFncmlkLWRldGFpbC1vcGVuIC5kYXRhZ3JpZC1wbGFjZWhvbGRlci1jb250YWluZXIsLmRhdGFncmlkLWRldGFpbC1vcGVuIC5kYXRhZ3JpZC1yb3d7Ym9yZGVyLXJpZ2h0Oi4w''@;'; + put 'put ''NXJlbSBzb2xpZCAjY2NjfS5kYXRhZ3JpZC1kZXRhaWwtb3BlbiAuZGF0YWdyaWQtZm9vdGVye2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmRhdGFncmlkLWRldGFpbC1vcGVuIC5wYWdpbmF0aW9ue3dpZHRoOjEwMCV9LmRhdGFncmlkLWRldGFpbC1vcGVuIC5wYWdpbmF0aW9uLWRl''@;'; + put 'put ''c2NyaXB0aW9uLWNvbXBhY3R7dGV4dC1hbGlnbjpsZWZ0O2ZsZXg6MX0uZGF0YWdyaWQtZGV0YWlsLW9wZW4gLmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1saXN0e21hcmdpbi1yaWdodDowfS5kYXRhZ3JpZC1yb3ctZGV0YWlsLW9wZW57cG9zaXRpb246cmVsYXRpdmV9LmRhdGFncmlk''@;'; + put 'put ''LXJvdy1kZXRhaWwtb3BlbjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6LjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjojY2NjO2JvcmRlci1yaWdo''@;'; + put 'put ''dC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTt0b3A6LjVyZW07cmlnaHQ6MH0uZGF0YWdyaWQtcm93LWRldGFpbC1vcGVuOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOi40NXJlbSBzb2xp''@;'; + put 'put ''ZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6I2ZmZjtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3IsIHdoaXRlKTt0b3A6LjU1cmVtO3JpZ2h0Oi0uMDVyZW19LmRhdGFncmlkLWRldGFpbC1wYW5le21hcmdpbi10b3A6LjZyZW07''@;'; + put 'put ''Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1kZWZhdWx0LWJvcmRlci1jb2xvciwgI2Nj''@;'; + put 'put ''Y2NjYyk7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMTVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20t''@;'; + put 'put ''cmlnaHQtcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7ZmxleC1ncm93OjI7''@;'; + put 'put ''d2lkdGg6NjYlfS5kYXRhZ3JpZC1kZXRhaWwtcGFuZS1jb250ZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6YXV0bztoZWlnaHQ6MTAwJX0uZGF0YWdyaWQtZGV0YWlsLWJvZHl7ZmxleDoxIDEgYXV0bztwYWRkaW5nOjAgMS4ycmVtfS5kYXRhZ3JpZC1k''@;'; + put 'put ''ZXRhaWwtaGVhZGVye2ZsZXg6MCAwIGF1dG87Zm9udC1zaXplOi45cmVtO2xpbmUtaGVpZ2h0OjEuNjhyZW07cGFkZGluZy1sZWZ0OjEuMnJlbTttYXJnaW4tdG9wOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvd30uZGF0YWdyaWQtZGV0YWlsLWhlYWRlciAuZGF0YWdyaWQtZGV0''@;'; + put 'put ''YWlsLWhlYWRlci10aXRsZXtmbGV4OjEgMSBhdXRvO3BhZGRpbmctdG9wOi44cmVtfS5kYXRhZ3JpZC1kZXRhaWwtaGVhZGVyIC5kYXRhZ3JpZC1kZXRhaWwtcGFuZS1jbG9zZXtmbGV4OjEgMSAxLjhyZW07cGFkZGluZzowO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9''@;'; + put 'put ''LmRhdGFncmlkLWRldGFpbC1oZWFkZXIgLmRhdGFncmlkLWRldGFpbC1wYW5lLWNsb3NlIC5idG4uYnRuLWxpbmt7bWFyZ2luLXRvcDouOHJlbTttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1yaWdodDowfS5kYXRhZ3JpZC1kZXRhaWwtaGVhZGVyIC5kYXRhZ3JpZC1kZXRhaWwtcGFuZS1jbG9z''@;'; + put 'put ''ZSAuYnRuLmJ0bi1saW5rIGNkcy1pY29ue2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLW1vZGFsLWNsb3NlLWNvbG9yLCAjOGM4YzhjKX0uZGF0YWdyaWQtZGV0YWlsLWNhcmV0e3BhZGRpbmc6MDt0ZXh0LWFsaWduOmNlbnRlcn0uZGF0YWdyaWQtZGV0YWlsLWNhcmV0LmRhdGFncmlk''@;'; + put 'put ''LWNlbGx7cGFkZGluZzouM3JlbSAuNDVyZW19LmRhdGFncmlkLWRldGFpbC1jYXJldCAuZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTtt''@;'; + put 'put ''YXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOi4xcmVtIC4ycmVtIC4xNXJlbX1idXR0b24uZGF0YWdyaWQtZGV0YWlsLWNhcmV0IC5kYXRhZ3JpZC1kZXRhaWwtY2Fy''@;'; + put 'put ''ZXQtYnV0dG9ue2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQgLmRhdGFncmlkLWRldGFpbC1jYXJldC1idXR0b24uaXMtb3BlbntiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWljb24t''@;'; + put 'put ''b3Blbi1iZy1jb2xvciwgIzAwNzJhMyk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKX0uZGF0YWdyaWQtZGV0YWlsLWNhcmV0IC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQtYnV0dG9uLmlzLW9wZW4gLmRhdGFn''@;'; + put 'put ''cmlkLWRldGFpbC1jYXJldC1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWRldGFpbC1jYXJldC1pY29uLW9wZW4taWNvbi1jb2xvciwgd2hpdGUpfS5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQgLmRhdGFncmlkLWRldGFpbC1jYXJldC1pY29ue2NvbG9yOiM4YzhjOGM7''@;'; + put 'put ''Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWljb24tY29sb3IsICM4YzhjOGMpO21hcmdpbi10b3A6LjFyZW19LmRhdGFncmlkLWRldGFpbC1jYXJldCAuc3Bpbm5lcnttYXJnaW4tdG9wOi4zcmVtfS5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQuZGF0YWdyaWQtY29sdW1ue3BhZGRpbmc6LjU1cmVt''@;'; + put 'put ''IC42cmVtfS5kYXRhZ3JpZC1kZXRhaWwtb3ZlcmxheS5kYXRhZ3JpZC1kZXRhaWwtb3Blbj4uZGF0YWdyaWQtb3V0ZXItd3JhcHBlcj4uZGF0YWdyaWQtaW5uZXItd3JhcHBlcntkaXNwbGF5Om5vbmV9LmRhdGFncmlkLWRldGFpbC1vdmVybGF5IC5kYXRhZ3JpZC1kZXRhaWwtcGFuZXtib3Jk''@;'; + put 'put ''ZXItbGVmdDouMDVyZW0gc29saWQgI2NjYztib3JkZXItcmFkaXVzOi4xNXJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU3NnB4KXsuZGF0YWdyaWQtZGV0YWlsLW9wZW4+LmRhdGFncmlkLW91dGVyLXdyYXBwZXI+LmRhdGFncmlkLWlubmVyLXdyYXBwZXJ7ZGlzcGxheTpub25l''@;'; + put 'put ''fS5kYXRhZ3JpZC1kZXRhaWwtcGFuZXtib3JkZXItbGVmdDouMDVyZW0gc29saWQgI2NjYztib3JkZXItcmFkaXVzOi4xNXJlbX19LmNvbHVtbi1zd2l0Y2h7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtw''@;'; + put 'put ''YWRkaW5nOi45cmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVt''@;'; + put 'put ''KTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVt''@;'; + put 'put ''IHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO3dpZHRoOjEyLjVyZW07ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt6LWluZGV4OjEwNTB9LmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXJ7''@;'; + put 'put ''ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6LjhyZW07cGFkZGluZy1ib3R0b206LjZyZW07bGluZS1oZWlnaHQ6MS4ycmVtfS5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGgxLC5jb2x1bW4tc3dpdGNoIC5z''@;'; + put 'put ''d2l0Y2gtaGVhZGVyIGgyLC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGgzLC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGg0LC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGg1LC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGg2e2NvbG9yOiM2NjY7Y29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLXAxLWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOi44cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW46MH0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBidXR0b257bWluLXdpZHRoOi45cmVtO21hcmdpbjowO3BhZGRpbmc6MDtjb2xv''@;'; + put 'put ''cjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1jb2x1bW4tc3dpdGNoLWhlYWRlci1mb250LWNvbG9yLCAjYjNiM2IzKX0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBidXR0b246aG92ZXJ7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1u''@;'; + put 'put ''LXN3aXRjaC1oZWFkZXItZm9udC1ob3Zlci1jb2xvciwgIzAwNzJhMyl9LmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1jb250ZW50e21heC1oZWlnaHQ6MTVyZW07b3ZlcmZsb3cteTphdXRvO21pbi1oZWlnaHQ6MS4yNXJlbX0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWNvbnRlbnQgbGl7bGluZS1o''@;'; + put 'put ''ZWlnaHQ6MS4ycmVtO3BhZGRpbmctbGVmdDouMXJlbX0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYnRue21hcmdpbjowO3BhZGRpbmc6MH0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYWN0aW9uLXJpZ2h0e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1l''@;'; + put 'put ''bmR9LmRhdGFncmlkLWZpbHRlcnttYXJnaW4tdG9wOi4yNHJlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVy''@;'; + put 'put ''d2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO3BhZGRpbmc6LjlyZW07Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQw''@;'; + put 'put ''O2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMs''@;'; + put 'put ''IC4xNXJlbSk7Zm9udC13ZWlnaHQ6NDAwfS5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFncmlkLWZpbHRlci1jbG9zZS13cmFwcGVye3RleHQtYWxpZ246cmlnaHR9LmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWNsb3NlLXdyYXBwZXIgLmNsb3Nle2Zsb2F0Om5vbmV9LmRhdGFncmlk''@;'; + put 'put ''LWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWFwcGx5e21hcmdpbi1ib3R0b206MH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93e3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7cGFk''@;'; + put 'put ''ZGluZzouM3JlbTttYXJnaW4tbGVmdDouM3JlbTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFn''@;'; + put 'put ''cmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwg''@;'; + put 'put ''LjI1KSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtmb250LXdlaWdodDo0MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRp''@;'; + put 'put ''b246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLXRvcDotLjNyZW07Ym9yZGVyOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjAgbm9uZTtib3JkZXItcmlnaHQtY29sb3I6I2NjYztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0t''@;'; + put 'put ''Y2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLXRvcDotLjI1cmVtO2JvcmRl''@;'; + put 'put ''ci1yaWdodDouMjVyZW0gc29saWQgI2ZmZjtib3JkZXItdG9wOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci1kcm9wZG93bi10ZXh0LWNvbG9yLCAjNjY2NjY2KTtmb250LXNpemU6LjdyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MS4xNXJlbTttYXJnaW46MDtwYWRkaW5nOi4wNXJl''@;'; + put 'put ''bSAxLjJyZW0gMDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpob3ZlciwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpmb2N1c3t0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9y''@;'; + put 'put ''OiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtYWN0aW9uLXBvcG92ZXItaG92ZXItY29sb3IsICNlOGU4ZTgpfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1j''@;'; + put 'put ''b2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcm93LWhvdmVyLCAjZThlOGU4KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1yb3ctaG92ZXItZm9udC1jb2xvciwgYmxhY2spfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmZvY3Vze291dGxpbmU6MH0u''@;'; + put 'put ''ZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZCwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9u''@;'; + put 'put ''ZX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDpob3ZlciwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5k''@;'; + put 'put ''aXNhYmxlZDphY3RpdmUsLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMsLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWQ6YWN0aXZlLC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRp''@;'; + put 'put ''c2FibGVkOmZvY3Vze2JhY2tncm91bmQ6MCAwO2JveC1zaGFkb3c6bm9uZX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjZHMtaWNvbiwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjbHItaWNvbnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dHJh''@;'; + put 'put ''bnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTFweCwwKX0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZXtkaXNwbGF5OmJsb2NrfS5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZCwuZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUt''@;'; + put 'put ''bW9kZSAuZGF0YWdyaWQtZm9vdGVyLC5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1yb3ctbWFzdGVyLC5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1yb3ctY2xpY2thYmxle2Rpc3BsYXk6bm9uZX0uZGF0YWdy''@;'; + put 'put ''aWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGV7ZGlzcGxheTp0YWJsZTt0YWJsZS1sYXlvdXQ6YXV0b30uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFn''@;'; + put 'put ''cmlkLWNhbGN1bGF0aW9uLWhlYWRlcntkaXNwbGF5OnRhYmxlLWhlYWRlci1ncm91cH0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLWNhbGN1bGF0aW9uLWhlYWRlciAuZGF0YWdyaWQtY29sdW1ue2Rp''@;'; + put 'put ''c3BsYXk6dGFibGUtY2VsbDttaW4td2lkdGg6NC44cmVtfS5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1jYWxjdWxhdGlvbi10YWJsZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24taGVhZGVyIC5kYXRhZ3JpZC1jb2x1bW57Ym9yZGVyLWNvbG9yOiNlOGU4''@;'; + put 'put ''ZTg7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10YWJsZXJvdy1ib3JkZXJjb2xvciwgI2U4ZThlOCk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtwYWRkaW5nOi41NXJlbSAuNnJl''@;'; + put 'put ''bTt2ZXJ0aWNhbC1hbGlnbjp0b3A7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDYtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtYm9sZCwgNjAwKTtmb250LXNpemU6LjU1cmVtO2xldHRlci1zcGFjaW5nOi4wM2Vt''@;'; + put 'put ''O2xpbmUtaGVpZ2h0Oi42cmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206MH0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLXJvd3tkaXNwbGF5OnRhYmxlLXJvd30uZGF0YWdyaWQtaG9z''@;'; + put 'put ''dC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGw7bWluLXdpZHRoOjQuOHJlbTtmb250LXNpemU6LjY1cmVtO2xpbmUtaGVpZ2h0Oi43cmVtO3BhZGRpbmc6LjU1''@;'; + put 'put ''cmVtIC42cmVtO3ZlcnRpY2FsLWFsaWduOnRvcH0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvciwuZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVy''@;'; + put 'put ''LC5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1maXhlZC1jb2x1bW57ZGlzcGxheTpub25lfS5mYWRle29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0O3dpbGwtY2hhbmdlOm9wYWNpdHl9LmZhZGUuaW57b3BhY2l0eTox''@;'; + put 'put ''fS5mYWRlRG93bntvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTI1JSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGVhc2UtaW4tb3V0O3dpbGwtY2hhbmdlOm9wYWNpdHksdHJhbnNmb3JtfS5mYWRlRG93bi5pbntvcGFjaXR5OjE7dHJh''@;'; + put 'put ''bnNmb3JtOnRyYW5zbGF0ZSgwKX0ub2Zmc2NyZWVuLWZvY3VzLXJlYm91bmRlcntwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7Ym9yZGVyOjAhaW1wb3J0YW50O2hlaWdodDoxcHghaW1wb3J0YW50O3dpZHRoOjFweCFpbXBvcnRhbnQ7bGVmdDowIWltcG9ydGFudDt0b3A6LWNvbnZlcnRCYXNl''@;'; + put 'put ''bGluZVRvQmFzZTIwKDEpIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O21hcmdpbjowIDAgLWNvbnZlcnRCYXNlbGluZVRvQmFzZTIwKDEpIDAhaW1wb3J0YW50O3Zpc2liaWxpdHk6dmlz''@;'; + put 'put ''aWJsZSFpbXBvcnRhbnR9OnJvb3R7LS1jbHItbmF2LWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1uYXYtYWN0aXZlLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLW5hdi1hY3RpdmUtYmctY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLWdsb2JhbC1zZWxlY3Rpb24tY29sb3IpOy0tY2xyLW5hdi1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWhvdmVyLWNvbG9yKTstLWNsci1uYXYtbGluay1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLW5hdi1saW5rLWFjdGl2''@;'; + put 'put ''ZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1uYXYtbGluay1mb250LXdlaWdodDp2YXIoLS1jbHItcDEtZm9udC13ZWlnaHQpOy0tY2xyLW5hdi1saW5rLWFjdGl2ZS1mb250LXdlaWdodDp2YXIoLS1jbHItbmF2LWxpbmstZm9udC13ZWlnaHQpfUBtZWRpYSBz''@;'; + put 'put ''Y3JlZW57c2VjdGlvblthcmlhLWhpZGRlbj10cnVlXXtkaXNwbGF5Om5vbmV9fVtkYXRhLWhpZGRlbj10cnVlXXtkaXNwbGF5Om5vbmV9YnV0dG9uLm5hdi1saW5re2JvcmRlci1yYWRpdXM6MDt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO21pbi13aWR0aDowfS50YWJzLW92ZXJmbG93e3Bv''@;'; + put 'put ''c2l0aW9uOnJlbGF0aXZlfS50YWJzLW92ZXJmbG93IC5uYXYtaXRlbXttYXJnaW4tcmlnaHQ6MH0udGFiLWNvbnRlbnR7ZGlzcGxheTppbmxpbmV9XzotbXMtZnVsbHNjcmVlbiAudGFiLWNvbnRlbnQsOnJvb3QgLnRhYi1jb250ZW50e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCV9''@;'; + put 'put ''LnRhYnMtdmVydGljYWx7ZGlzcGxheTpmbGV4fS50YWJzLXZlcnRpY2FsPi5uYXZ7aGVpZ2h0OmF1dG87Ym94LXNoYWRvdzpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO21hcmdpbi1yaWdodDoxLjJyZW07b3ZlcmZsb3c6YXV0bztmbGV4LXNocmluazow''@;'; + put 'put ''O3BhZGRpbmc6LjJyZW07d2lkdGg6MTJyZW07bWluLXdpZHRoOjIuNHJlbX0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGlua3t0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZzowIC42cmVtO2JvcmRlcjowO21hcmdpbi1ib3R0b206LjA1cmVtO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXRvcDowO21h''@;'; + put 'put ''cmdpbi1sZWZ0OjA7d2lkdGg6MTAwJX0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGluay5uYXYtaXRlbXttYXJnaW4tcmlnaHQ6MH0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGluay5hY3RpdmUsLnRhYnMtdmVydGljYWw+Lm5hdiAubmF2LWxpbms6aG92ZXJ7Ym94LXNoYWRvdzppbnNl''@;'; + put 'put ''dCAuMTVyZW0gMCAjMDA3MmEzO2JveC1zaGFkb3c6aW5zZXQgLjE1cmVtIDAgMCB2YXIoLS1jbHItbmF2LWFjdGl2ZS1ib3gtc2hhZG93LWNvbG9yKX0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGluay5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDhlM2U5O2JhY2tncm91bmQtY29sb3I6''@;'; + put 'put ''dmFyKC0tY2xyLW5hdi1hY3RpdmUtYmctY29sb3IsICNkOGUzZTkpfS50YWJzLXZlcnRpY2FsPi5uYXYgLm5hdi1saW5rOm5vdCguYWN0aXZlKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItbmF2LWhvdmVyLWJnLWNvbG9yLCAjZThl''@;'; + put 'put ''OGU4KX06cm9vdHstLWNsci13aXphcmQtbWFpbi1iZ2NvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLXdpemFyZC1zaWRlbmF2LWJnY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLXdpemFyZC1tYWluLXRleHRDb2xvcjp2YXIoLS1jbHItY29sb3It''@;'; + put 'put ''b24tbmV1dHJhbC0wKTstLWNsci13aXphcmQtc2lkZW5hdi10ZXh0OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTkwMCk7LS1jbHItd2l6YXJkLXNpZGVuYXYtdGV4dC0tYWN0aXZlOnZhcigtLWNsci1nbG9iYWwtb24tc2VsZWN0aW9uLWNvbG9yKTstLWNsci13aXphcmQtdGl0bGUtdGV4dDp2''@;'; + put 'put ''YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItc2l6ZTouMnJlbTstLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3It''@;'; + put 'put ''LWFjdGl2ZTp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy00MDApOy0tY2xyLXdpemFyZC1zdGVwbmF2LWFjdGl2ZS1iZ2NvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci13aXphcmQtaGVhZGVyLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02''@;'; + put 'put ''MDApOy0tY2xyLXdpemFyZC1oZWFkZXItYWN0aW9uLWNvbG9yLS1ob3ZlcmVkOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLXdpemFyZC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci13aXphcmQtc3RlcG5hdi1hY3RpdmUtYm9y''@;'; + put 'put ''ZGVyLXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMpOy0tY2xyLXdpemFyZC1zdGVwLW5hdi1ib3JkZXItY29sb3I6aHNsKDAsIDAlLCA4OSUpOy0tY2xyLXdpemFyZC1ib3gtc2hhZG93LWNvbG9yOnJnYmEoMCwgMCwgMCwgLjIpfS5jbHItd2l6YXJkIC5tb2RhbC1kaWFs''@;'; + put 'put ''b2d7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNoYWRvdzowIC4wNXJlbSAuMXJlbSAuMXJlbSAjMDAwMztib3gtc2hhZG93OjAgLjA1cmVtIC4xcmVtIC4xcmVtIHZhcigtLWNsci13aXphcmQtYm94LXNoYWRvdy1jb2xvcik7aGVp''@;'; + put 'put ''Z2h0OjUwJTttYXgtaGVpZ2h0OjEwMCV9LmNsci13aXphcmQgLm1vZGFsLWNvbnRlbnR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9y''@;'; + put 'put ''ZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci13aXphcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3gtc2hhZG93Om5vbmU7cGFkZGluZzowO2ZsZXg6MiAyIGF1dG87d2lkdGg6NjYlO2hlaWdodDppbml0aWFsO292''@;'; + put 'put ''ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNsci13aXphcmQgLm1vZGFsLWhlYWRlciwuY2xyLXdpemFyZCAubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxle2ZsZXg6MCAwIGF1dG87d2lkdGg6MTAwJTtwYWRk''@;'; + put 'put ''aW5nOjEuMnJlbSAuOTVyZW0gLjNyZW0gMS4ycmVtfS5jbHItd2l6YXJkIC5tb2RhbC10aXRsZXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci13aXphcmQtdGl0bGUtdGV4dCwgYmxhY2spO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7d2lkdGg6MTAwJTtsaW5lLWhlaWdodDox''@;'; + put 'put ''LjM1NnJlbTttYXJnaW4tdG9wOi0uMTU2cmVtfS5jbHItd2l6YXJkIC5tb2RhbC1ib2R5e2ZsZXg6MSAxIGF1dG87Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItd2l6YXJkLW1haW4tdGV4dENvbG9yLCBibGFjayk7d2lkdGg6MTAwJX0uY2xyLXdpemFyZCAubW9kYWwtZm9vdGVye3BhZGRp''@;'; + put 'put ''bmc6MDtkaXNwbGF5OmJsb2NrO3BhZGRpbmctdG9wOjEuMnJlbTtoZWlnaHQ6NC4ycmVtO21pbi1oZWlnaHQ6NC4ycmVtO21heC1oZWlnaHQ6NC4ycmVtO3dpZHRoOjEwMCU7ZmxleDowIDAgNC4ycmVtfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWJ0bnttYXJnaW46MDttYXgtd2lkdGg6MTAw''@;'; + put 'put ''JTtkaXNwbGF5OmJsb2NrfS5jbHItd2l6YXJkIC5tb2RhbC10aXRsZS10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXg6MCAxIGF1dG87d2lkdGg6MTAwJTtvdXRsaW5lOjB9LmNsci13aXphcmQgLm1vZGFsLXRpdGxlLXdyYXBwZXJ7d2lkdGg6MTAwJX0uY2xyLXdpemFyZCAubW9kYWwt''@;'; + put 'put ''aGVhZGVyLWFjdGlvbnMtd3JhcHBlcntmbGV4OjEgMCBhdXRvO3BhZGRpbmctbGVmdDouNnJlbTtwYWRkaW5nLXJpZ2h0Oi4ycmVtfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb257aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW07cGFkZGluZzowO21hcmdpbjowO21pbi13''@;'; + put 'put ''aWR0aDoxLjJyZW07bGluZS1oZWlnaHQ6MS4ycmVtO2ZvbnQtc2l6ZToxLjNyZW07Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24tY29sb3IsICM4YzhjOGMpO3RyYW5zaXRpb246Y29sb3IgbGluZWFyIC4yc30uY2xyLXdpemFyZCAuY2xyLXdpemFy''@;'; + put 'put ''ZC1oZWFkZXItYWN0aW9uIGF7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24tY29sb3IsICM4YzhjOGMpfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb246aG92ZXIsLmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlv''@;'; + put 'put ''bjphY3RpdmUsLmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbjpmb2N1c3tjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci13aXphcmQtaGVhZGVyLWFjdGlvbi1jb2xvci0taG92ZXJlZCwgYmxhY2spfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24gY2Rz''@;'; + put 'put ''LWljb24sLmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbiBjbHItaWNvbntoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMXJlbX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXJ7ZmxleDoxIDEgYXV0bzt3aWR0aDozNCU7bWF4LXdpZHRoOjM0JTtkaXNwbGF5''@;'; + put 'put ''OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO29yZGVyOi0xO292ZXJmbG93OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87cGFkZGluZy1ib3R0b206MS4ycmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTtib3JkZXItcmlnaHQtd2lkdGg6LjA1cmVtO2JvcmRlci1yaWdodC13aWR0aDp2YXIoLS1jbHIt''@;'; + put 'put ''Z2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2UzZTNlMztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLXdpemFyZC1zdGVwLW5hdi1ib3JkZXItY29sb3IsICNlM2UzZTMpO2hlaWdodDoxMDAlO2JhY2tn''@;'; + put 'put ''cm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci13aXphcmQtc2lkZW5hdi1iZ2NvbG9yLCAjZmFmYWZhKTtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItd2l6YXJk''@;'; + put 'put ''LWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdntwYWRkaW5nLWxl''@;'; + put 'put ''ZnQ6MS4ycmVtO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOi43cmVtO2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLXdpemFyZC1zaWRlbmF2LXRleHQsICMzMzMzMzMpO3dpZHRoOjEwMCU7ZmxleDoxIDEgYXV0b30uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LWxpc3R7ZGlzcGxh''@;'; + put 'put ''eTpibG9jaztib3gtc2hhZG93Om5vbmU7Y291bnRlci1yZXNldDphO3doaXRlLXNwYWNlOm5vd3JhcDtoZWlnaHQ6YXV0bztsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW46MDt3aWR0aDoxMDAlfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbXtkaXNwbGF5OmJsb2NrO2Jv''@;'; + put 'put ''eC1zaGFkb3c6LjJyZW0gMCAjZThlOGU4IGluc2V0O2JveC1zaGFkb3c6dmFyKC0tY2xyLXdpemFyZC1zdGVwbmF2LWJvcmRlci1zaXplKSAwIDAgdmFyKC0tY2xyLXdpemFyZC1zdGVwbmF2LWJvcmRlci1jb2xvcikgaW5zZXQ7bWFyZ2luOjAgMCAtLjA1cmVtO3BhZGRpbmc6LjNyZW0gMCAu''@;'; + put 'put ''M3JlbSAuNHJlbTtjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci13aXphcmQtc2lkZW5hdi10ZXh0LCAjMzMzMzMzKTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXJlZ3VsYXIsIDQwMCl9LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1p''@;'; + put 'put ''dGVtLmFjdGl2ZXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci13aXphcmQtc2lkZW5hdi10ZXh0LS1hY3RpdmUsIGJsYWNrKTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LXNlbWlib2xkLCA1MDApfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0''@;'; + put 'put ''ZXBuYXYtaXRlbS5hY3RpdmUgLmNsci13aXphcmQtc3RlcG5hdi1saW5re2JhY2tncm91bmQtY29sb3I6I2Q4ZTNlOTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci13aXphcmQtc3RlcG5hdi1hY3RpdmUtYmdjb2xvciwgI2Q4ZTNlOSk7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVm''@;'; + put 'put ''dC1yYWRpdXM6LjE1cmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXdpemFyZC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXdpemFyZC1ib3JkZXItcmFk''@;'; + put 'put ''aXVzLCAuMTVyZW0pfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5jb21wbGV0ZXtib3gtc2hhZG93Oi4ycmVtIDAgIzVlYjcxNSBpbnNldDtib3gtc2hhZG93OnZhcigtLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItc2l6ZSkgMCAwIHZhcigtLWNsci13aXphcmQtc3Rl''@;'; + put 'put ''cG5hdi1ib3JkZXItY29sb3ItLWFjdGl2ZSkgaW5zZXQ7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4ycyBlYXNlLWlufS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5lcnJvcntib3gtc2hhZG93Oi4ycmVtIDAgI2MyMWQwMCBpbnNldDt0cmFuc2l0aW9uOmJveC1zaGFkb3cg''@;'; + put 'put ''LjJzIGVhc2UtaW59LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLm5vLWNsaWNrIGJ1dHRvbntwb2ludGVyLWV2ZW50czpub25lfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGlua3t3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtjb2xvcjppbmhlcml0O2FsaWdu''@;'; + put 'put ''LWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjAgLjE1cmVtIDAgLjVyZW07Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246bGVmdDt0ZXh0LXRyYW5zZm9ybTpub25lO21hcmdpbjowfS5jbHItd2l6YXJkIC5jbHItd2l6YXJk''@;'; + put 'put ''LXN0ZXBuYXYtbGluayAuY2xyLXdpemFyZC1zdGVwbmF2LWxpbmstc3VmZml4e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi13aWR0aDoxLjJyZW07cGFkZGluZy1yaWdodDouMzVyZW19LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1saW5rIC5jbHItd2l6''@;'; + put 'put ''YXJkLXN0ZXBuYXYtbGluay1zdWZmaXggLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLWVycm9yLWljb257dHJhbnNmb3JtOm5vbmU7ZmlsbDojYzIxZDAwfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXRpdGxle2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXdpemFyZC10aXRsZS10ZXh0LCBi''@;'; + put 'put ''bGFjayk7bWFyZ2luLXRvcDowO3BhZGRpbmc6MS4ycmVtIC42cmVtIDEuMnJlbSAxLjJyZW07ZmxleDowIDAgYXV0bztmb250LXNpemU6MS4xcmVtO2xpbmUtaGVpZ2h0OjEuMnJlbX0uY2xyLXdpemFyZCAubW9kYWwtY29udGVudC13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlv''@;'; + put 'put ''bjpyb3c7ZmxleDoxIDEgMTAwJTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2xyLXdpemFyZCAubW9kYWwtY29udGVudC13cmFwcGVyIC5tb2RhbC1uYXZ7aGVpZ2h0OmF1dG99LmNsci13aXphcmQgLmNsci13aXphcmQtZm9vdGVyLWJ1dHRvbnN7dGV4dC1hbGln''@;'; + put 'put ''bjpyaWdodDtwYWRkaW5nLXJpZ2h0OjEuMnJlbTttYXJnaW46MH0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1mb290ZXItYnV0dG9ucy13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC13cmFwOm5vd3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNsci13''@;'; + put 'put ''aXphcmQgLmNsci13aXphcmQtYnRuLXdyYXBwZXJ7ZmxleDowIDEgYXV0bzttaW4td2lkdGg6NC4ycmVtO3BhZGRpbmctbGVmdDouNnJlbX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1idG4td3JhcHBlclthcmlhLWhpZGRlbj10cnVlXXtkaXNwbGF5Om5vbmV9LmNsci13aXphcmQgLmNsci13''@;'; + put 'put ''aXphcmQtYnRuLmJ0bi1saW5re3BhZGRpbmc6MH0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1jb250ZW50e2Rpc3BsYXk6YmxvY2t9LmNsci13aXphcmQgLmNsci13aXphcmQtcGFnZTpub3QoW2FyaWEtaGlkZGVuPXRydWVdKXtwYWRkaW5nOi45cmVtIDEuMnJlbSAxLjJyZW07ZGlzcGxheTpi''@;'; + put 'put ''bG9ja30uY2xyLXdpemFyZCAubW9kYWwtZGlhbG9ne2hlaWdodDo3NXZofS5jbHItd2l6YXJkIC5tb2RhbC1ib2R5LXdyYXBwZXJ7bWF4LWhlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTt3aWR0aDoxMDAlfS5jbHItd2l6YXJkLndpemFyZC1tZCAubW9kYWwtZGlhbG9ne21p''@;'; + put 'put ''bi1oZWlnaHQ6MjFyZW07bWF4LWhlaWdodDoyNS4ycmVtfS5jbHItd2l6YXJkLndpemFyZC1tZCAubW9kYWwtY29udGVudCwuY2xyLXdpemFyZC53aXphcmQtbWQgLmNsci13aXphcmQtc3RlcG5hdi13cmFwcGVye21heC1oZWlnaHQ6MjUuMnJlbX0uY2xyLXdpemFyZC53aXphcmQtbWQgLmNs''@;'; + put 'put ''ci13aXphcmQtc3RlcG5hdi13cmFwcGVye21pbi13aWR0aDoxMC44cmVtO21heC13aWR0aDoxMnJlbX0uY2xyLXdpemFyZC53aXphcmQtbGcgLm1vZGFsLWRpYWxvZ3ttaW4taGVpZ2h0OjIxcmVtO21heC1oZWlnaHQ6MzZyZW19LmNsci13aXphcmQud2l6YXJkLWxnIC5tb2RhbC1jb250ZW50''@;'; + put 'put ''LC5jbHItd2l6YXJkLndpemFyZC1sZyAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXJ7bWF4LWhlaWdodDozNnJlbX0uY2xyLXdpemFyZC53aXphcmQtbGcgLm5hdi1wYW5lbCwuY2xyLXdpemFyZC53aXphcmQtbGcgLmNsci13aXphcmQtc3RlcG5hdi13cmFwcGVye21pbi13aWR0aDoxMnJl''@;'; + put 'put ''bTttYXgtd2lkdGg6MTQuNHJlbX0uY2xyLXdpemFyZC53aXphcmQteGwgLm1vZGFsLWRpYWxvZ3toZWlnaHQ6NzV2aDttYXgtaGVpZ2h0Om5vbmV9LmNsci13aXphcmQud2l6YXJkLXhsIC5uYXYtcGFuZWwsLmNsci13aXphcmQud2l6YXJkLXhsIC5jbHItd2l6YXJkLXN0ZXBuYXYtd3JhcHBl''@;'; + put 'put ''cnttaW4td2lkdGg6MTJyZW07bWF4LXdpZHRoOjE1LjZyZW19LmNsci13aXphcmQgLnNwaW5uZXI6bm90KC5zcGlubmVyLWlubGluZSk6bm90KC5jbHItdHJlZW5vZGUtc3Bpbm5lcil7bGVmdDpjYWxjKDUwJSArIDUuNzVyZW0pO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0MCV9LmNsci13aXph''@;'; + put 'put ''cmQtcGFnZT46Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5jbHItd2l6YXJkLXBhZ2U+OmZpcnN0LWNoaWxkPjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9LmNsci13aXphcmQtcGFnZT5mb3JtOmZpcnN0LWNoaWxke3BhZGRpbmctdG9wOjB9LmNsci13aXphcmQtcGFnZT5mb3JtOmZpcnN0''@;'; + put 'put ''LWNoaWxkPi5mb3JtLWJsb2NrOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uY2xyLXdpemFyZC0taW5saW5le2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0uY2xyLXdpemFyZC0taW5saW5lPmNsci1tb2RhbD4ubW9kYWw6Zm9jdXN7b3V0bGluZS1zdHlsZTpub25lO291dGxpbmUtY29sb3I6''@;'; + put 'put ''dHJhbnNwYXJlbnR9LmNsci13aXphcmQtLWlubGluZSBjbHItbW9kYWx7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFse3BhZGRpbmc6MDtwb3NpdGlvbjpzdGF0aWM7aGVpZ2h0OjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jbHIt''@;'; + put 'put ''d2l6YXJkLS1pbmxpbmUgLm1vZGFsIC5jb250ZW50LWNvbnRhaW5lcntoZWlnaHQ6MTAwJX0uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbCAuY29udGVudC1jb250YWluZXIgLm5hdi1wYW5lbHtoZWlnaHQ6OTklO3dpZHRoOjk5JX0uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbCAubW9kYWwt''@;'; + put 'put ''Y29udGVudHtib3gtc2hhZG93Om5vbmV9LmNsci13aXphcmQtLWlubGluZSAubW9kYWwgLm1vZGFsLWRpYWxvZ3ttaW4taGVpZ2h0OjEwMCU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTt6LWluZGV4OmF1dG99LmNsci13aXphcmQtLWlubGluZSAubW9kYWwtYm9keS13cmFwcGVye2hlaWdodDox''@;'; + put 'put ''MDAlfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFsLWhlYWRlciAuY2xvc2UsLmNsci13aXphcmQtLWlubGluZSAubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5jbG9zZXtkaXNwbGF5Om5vbmV9LmNsci13aXphcmQtLWlubGluZSAubmF2Lm5hdkxpc3R7cGFkZGluZy10b3A6MH0uY2xyLXdp''@;'; + put 'put ''emFyZC0taW5saW5lIC5tb2RhbC1kaWFsb2cgLm1vZGFsLWNvbnRlbnQgLm1vZGFsLWJvZHkgLmNvbnRlbnQtYXJlYXtvdmVyZmxvdy15OmF1dG99LmNsci13aXphcmQtLWlubGluZSAubW9kYWwtYmFja2Ryb3B7aGVpZ2h0OjA7d2lkdGg6MDtkaXNwbGF5Om5vbmV9LmNsci13aXphcmQtLWlu''@;'; + put 'put ''bGluZSAubW9kYWwtY29udGVudC13cmFwcGVye2FsaWduLWl0ZW1zOnN0cmV0Y2g7aGVpZ2h0OjEwMCV9LmNsci13aXphcmQtLWlubGluZSAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXIsLmNsci13aXphcmQtLWlubGluZS5jbHItd2l6YXJkIC5tb2RhbC1jb250ZW50e21pbi1oZWlnaHQ6''@;'; + put 'put ''MTAwJTtoZWlnaHQ6YXV0bzttYXgtaGVpZ2h0OjEwMCV9LmNsci13aXphcmQtLWlubGluZSAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXIgLmNsci13aXphcmQtc3RlcG5hdiwuY2xyLXdpemFyZC0taW5saW5lLmNsci13aXphcmQgLm1vZGFsLWNvbnRlbnQgLmNsci13aXphcmQtc3RlcG5h''@;'; + put 'put ''dntoZWlnaHQ6MTAwJX0uY2xyLXdpemFyZC0tbm8tc2hhZG93IC5tb2RhbC1jb250ZW50LXdyYXBwZXIsLmNsci13aXphcmQtLW5vLXNoYWRvdyAubW9kYWwtZGlhbG9ne2JveC1zaGFkb3c6bm9uZX0uY2xyLXdpemFyZC0tbm8tdGl0bGUgLmNsci13aXphcmQtdGl0bGV7ZGlzcGxheTpub25l''@;'; + put 'put ''fS5jbHItd2l6YXJkLS1uby10aXRsZSAuY2xyLXdpemFyZC1zdGVwbmF2e3BhZGRpbmctdG9wOjEuMnJlbX1AbWVkaWEgc2NyZWVuey5jbHItd2l6YXJkLXBhZ2VbYXJpYS1oaWRkZW49dHJ1ZV17ZGlzcGxheTpub25lfX1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmNsci13aXph''@;'; + put 'put ''cmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbnttYXJnaW4tdG9wOi0uMTVyZW19fTpyb290ey0tY2xyLXNpZ25wb3N0LWNvbnRlbnQtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItc2lnbnBvc3QtY29udGVudC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9y''@;'; + put 'put ''LW5ldXRyYWwtNTAwKTstLWNsci1zaWducG9zdC1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1zaWducG9zdC1hY3Rpb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi03MDApOy0tY2xyLXNpZ25wb3N0LWJvcmRlci1yYWRpdXM6dmFy''@;'; + put 'put ''KC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLXNpZ25wb3N0LXBvaW50ZXItYm9yZGVyOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWJvcmRlcik7LS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlz''@;'; + put 'put ''aWJsZS1ib3JkZXIpOy0tY2xyLXNpZ25wb3N0LXBvaW50ZXItcHN1ZWRvLWJvcmRlcjp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1wc3VlZG8tYm9yZGVyKX0uc2lnbnBvc3R7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnNpZ25wb3N0OmhvdmVye2N1cnNvcjpwb2ludGVyfS5zaWducG9zdCAu''@;'; + put 'put ''c2lnbnBvc3QtYWN0aW9ue21pbi13aWR0aDoxLjJyZW07bWFyZ2luOjA7cGFkZGluZzowO2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLXNpZ25wb3N0LWFjdGlvbi1jb2xvciwgIzhjOGM4Yyl9LnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb24gY2RzLWljb24sLnNpZ25wb3N0IC5zaWdu''@;'; + put 'put ''cG9zdC1hY3Rpb24gY2xyLWljb257aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW19LnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb246aG92ZXIsLnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb24uYWN0aXZle2NvbG9yOiMwMDY0OGY7Y29sb3I6dmFyKC0tY2xyLXNpZ25wb3N0LWFjdGlvbi1ob3Zl''@;'; + put 'put ''ci1jb2xvciwgIzAwNjQ4Zil9LnNpZ25wb3N0IC5zaWducG9zdC1jb250ZW50LWhlYWRlciBidXR0b24gY2RzLWljb24sLnNpZ25wb3N0IC5zaWducG9zdC1jb250ZW50LWhlYWRlciBidXR0b24gY2xyLWljb257aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtfS5zaWducG9zdC10cmlnZ2Vye21h''@;'; + put 'put ''cmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmlubGluZS1ibG9ja30uc2lnbnBvc3QtY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O21pbi13aWR0aDoxMC44cmVtO21heC13aWR0aDoxOHJlbTttaW4taGVpZ2h0OjIuNHJlbTttYXgtaGVpZ2h0OjI1LjJyZW07ZGlzcGxheTpp''@;'; + put 'put ''bmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxMDUwfS5zaWducG9zdC1jb250ZW50OmhvdmVye2N1cnNvcjpkZWZhdWx0fS5zaWducG9zdC1jb250ZW50IC5wb3BvdmVyLXBvaW50ZXJ7aGVpZ2h0OjA7d2lkdGg6MDtwb3NpdGlvbjphYnNvbHV0ZX0uc2lnbnBvc3QtY29u''@;'; + put 'put ''dGVudCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtjb250ZW50OiIiO2hlaWdodDowO3dpZHRoOjA7cG9zaXRpb246YWJzb2x1dGV9LnNpZ25wb3N0LWNvbnRlbnQudG9wLWxlZnQgLnBvcG92ZXItcG9pbnRlciwuc2lnbnBvc3QtY29udGVudC50b3AtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXIs''@;'; + put 'put ''LnNpZ25wb3N0LWNvbnRlbnQudG9wLXJpZ2h0IC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXRvcDouNnJlbSBzb2xpZCAjYjNiM2IzO2JvcmRlci10b3A6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItYm9yZGVyLCAuNnJlbSBzb2xpZCAjYjNiM2IzKTtib3R0b206LS42cmVtfS5zaWducG9z''@;'; + put 'put ''dC1jb250ZW50LnRvcC1sZWZ0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LnRvcC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmUsLnNpZ25wb3N0LWNvbnRlbnQudG9wLXJpZ2h0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci10b3A6LjZyZW0g''@;'; + put 'put ''c29saWQgI2ZmZjtib3JkZXItdG9wOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXBzdWVkby1ib3JkZXIsIC42cmVtIHNvbGlkIHdoaXRlKTtib3R0b206LjFyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9wLWxlZnQgLnNpZ25wb3N0LXdyYXB7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6''@;'; + put 'put ''MH0uc2lnbnBvc3QtY29udGVudC50b3AtbGVmdCAucG9wb3Zlci1wb2ludGVye2JvcmRlci1sZWZ0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTty''@;'; + put 'put ''aWdodDotLjA1cmVtfS5zaWducG9zdC1jb250ZW50LnRvcC1sZWZ0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1sZWZ0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNv''@;'; + put 'put ''bGlkIHRyYW5zcGFyZW50KTtyaWdodDouMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9wLW1pZGRsZSAucG9wb3Zlci1wb2ludGVye2JvcmRlci1yaWdodDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJv''@;'; + put 'put ''cmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO2xlZnQ6NTAlfS5zaWducG9zdC1jb250ZW50LnRvcC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9p''@;'; + put 'put ''bnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7bGVmdDouMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9wLXJpZ2h0IC5zaWducG9zdC13cmFwe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uc2lnbnBvc3QtY29udGVudC50b3AtcmlnaHQgLnBvcG92''@;'; + put 'put ''ZXItcG9pbnRlcntib3JkZXItcmlnaHQ6LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtsZWZ0Oi0uMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9w''@;'; + put 'put ''LXJpZ2h0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1yaWdodDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO2xlZnQ6LjA1cmVtfS5z''@;'; + put 'put ''aWducG9zdC1jb250ZW50LmJvdHRvbS1sZWZ0IC5wb3BvdmVyLXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLW1pZGRsZSAucG9wb3Zlci1wb2ludGVyLC5zaWducG9zdC1jb250ZW50LmJvdHRvbS1yaWdodCAucG9wb3Zlci1wb2ludGVye2JvcmRlci1ib3R0b206LjZyZW0gc29s''@;'; + put 'put ''aWQgI2IzYjNiMztib3JkZXItYm90dG9tOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWJvcmRlciwgLjZyZW0gc29saWQgI2IzYjNiMyk7dG9wOi0uNTVyZW19LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLWxlZnQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmUsLnNpZ25wb3N0LWNvbnRlbnQu''@;'; + put 'put ''Ym90dG9tLW1pZGRsZSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29udGVudC5ib3R0b20tcmlnaHQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCAjZmZmO2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXIt''@;'; + put 'put ''cHN1ZWRvLWJvcmRlciwgLjZyZW0gc29saWQgd2hpdGUpO3RvcDouMXJlbX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tbGVmdCAuc2lnbnBvc3Qtd3JhcHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1sZWZ0IC5wb3BvdmVyLXBvaW50ZXJ7Ym9y''@;'; + put 'put ''ZGVyLWxlZnQ6LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3JpZ2h0Oi0uMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLWxlZnQgLnBvcG92''@;'; + put 'put ''ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLWxlZnQ6LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3JpZ2h0Oi4wNXJlbX0uc2lnbnBvc3QtY29udGVu''@;'; + put 'put ''dC5ib3R0b20tbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7cmlnaHQ6NTAlfS5z''@;'; + put 'put ''aWducG9zdC1jb250ZW50LmJvdHRvbS1taWRkbGUgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFu''@;'; + put 'put ''c3BhcmVudCk7cmlnaHQ6LS42NXJlbX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tcmlnaHQgLnNpZ25wb3N0LXdyYXB7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1yaWdodCAucG9wb3Zlci1wb2ludGVye2JvcmRlci1yaWdodDouNnJlbSBzb2xp''@;'; + put 'put ''ZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO2xlZnQ6LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tcmlnaHQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7''@;'; + put 'put ''Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7bGVmdDouMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQubGVmdC10b3AgLnBvcG92''@;'; + put 'put ''ZXItcG9pbnRlciwuc2lnbnBvc3QtY29udGVudC5sZWZ0LW1pZGRsZSAucG9wb3Zlci1wb2ludGVyLC5zaWducG9zdC1jb250ZW50LmxlZnQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWxlZnQ6LjZyZW0gc29saWQgI2IzYjNiMztib3JkZXItbGVmdDp2YXIoLS1jbHItc2lnbnBv''@;'; + put 'put ''c3QtcG9pbnRlci1ib3JkZXIsIC42cmVtIHNvbGlkICNiM2IzYjMpO3JpZ2h0Oi0uNnJlbX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LXRvcCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29udGVudC5sZWZ0LW1pZGRsZSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBv''@;'; + put 'put ''c3QtY29udGVudC5sZWZ0LWJvdHRvbSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItbGVmdDouNnJlbSBzb2xpZCAjZmZmO2JvcmRlci1sZWZ0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXBzdWVkby1ib3JkZXIsIC42cmVtIHNvbGlkIHdoaXRlKX0uc2lnbnBvc3QtY29udGVu''@;'; + put 'put ''dC5sZWZ0LXRvcCAuc2lnbnBvc3Qtd3JhcHtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LmxlZnQtdG9wIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXRvcDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOnZhcigtLWNsci1zaWducG9zdC1w''@;'; + put 'put ''b2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtib3R0b206LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LXRvcCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItdG9wOi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6dmFy''@;'; + put 'put ''KC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3RvcDotLjY1cmVtO3JpZ2h0Oi4xcmVtfS5zaWducG9zdC1jb250ZW50LmxlZnQtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCB0''@;'; + put 'put ''cmFuc3BhcmVudDtib3JkZXItYm90dG9tOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS5zaWducG9zdC1jb250ZW50LmxlZnQtbWlkZGxlIC5wb3Bv''@;'; + put 'put ''dmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi4wNXJlbTtsZWZ0Oi0uN3JlbX0u''@;'; + put 'put ''c2lnbnBvc3QtY29udGVudC5sZWZ0LWJvdHRvbSAuc2lnbnBvc3Qtd3JhcHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LmxlZnQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90''@;'; + put 'put ''dG9tOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTt0b3A6LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LWJvdHRvbSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItYm90dG9tOi42cmVtIHNvbGlk''@;'; + put 'put ''IHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3RvcDouMDVyZW07bGVmdDotLjdyZW19LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtdG9wIC5wb3BvdmVyLXBvaW50ZXIs''@;'; + put 'put ''LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkICNiM2IzYjM7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2lu''@;'; + put 'put ''dGVyLWJvcmRlciwgLjZyZW0gc29saWQgI2IzYjNiMyk7bGVmdDotLjZyZW19LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtdG9wIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LnJpZ2h0LW1pZGRsZSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29u''@;'; + put 'put ''dGVudC5yaWdodC1ib3R0b20gLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkICNmZmY7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXBzdWVkby1ib3JkZXIsIC42cmVtIHNvbGlkIHdoaXRlKTtsZWZ0Oi4xcmVtfS5zaWducG9z''@;'; + put 'put ''dC1jb250ZW50LnJpZ2h0LXRvcCAuc2lnbnBvc3Qtd3JhcHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtdG9wIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXRvcDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOnZhcigtLWNsci1z''@;'; + put 'put ''aWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtib3R0b206LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5yaWdodC10b3AgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXRvcDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3Jk''@;'; + put 'put ''ZXItdG9wOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTt0b3A6LS42NXJlbX0uc2lnbnBvc3QtY29udGVudC5yaWdodC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcntib3JkZXItYm90dG9tOi42cmVtIHNvbGlkIHRy''@;'; + put 'put ''YW5zcGFyZW50O2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtbWlkZGxlIC5wb3Bv''@;'; + put 'put ''dmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi4wNXJlbX0uc2lnbnBvc3QtY29u''@;'; + put 'put ''dGVudC5yaWdodC1ib3R0b20gLnNpZ25wb3N0LXdyYXB7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LnJpZ2h0LWJvdHRvbSAucG9wb3Zlci1wb2ludGVye2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1j''@;'; + put 'put ''bHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi0uMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgdHJhbnNwYXJl''@;'; + put 'put ''bnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi4wNXJlbX0uc2lnbnBvc3QtY29udGVudC1oZWFkZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwb3Np''@;'; + put 'put ''dGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDt0b3A6MH0uc2lnbnBvc3Qtd3JhcHtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1zaWducG9zdC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JvcmRlci13aWR0aDouMDVy''@;'; + put 'put ''ZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojYjNiM2IzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItc2lnbnBvc3QtY29udGVudC1ib3JkZXItY29sb3IsICNiM2IzYjMpO2JhY2tncm91''@;'; + put 'put ''bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zaWducG9zdC1jb250ZW50LWJnLWNvbG9yLCB3aGl0ZSk7ei1pbmRleDoxMDUwO3Bvc2l0aW9uOnJlbGF0aXZlfS5zaWducG9zdC1jb250ZW50LWJvZHl7cGFkZGluZzoxLjJyZW07bWF4LWhlaWdodDoyNHJlbTtvdmVy''@;'; + put 'put ''Zmxvdy15OmF1dG99LmRyYWctaGFuZGxle2N1cnNvcjpncmFifS5pbi1kcmFne2N1cnNvcjpncmFiYmluZzstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uaW4tZHJhZyAqe3BvaW50ZXItZXZlbnRzOm5vbmV9LmluLWRyYWcgLmRyYWdnYWJsZS5iZWluZy1kcmFn''@;'; + put 'put ''Z2Vke29wYWNpdHk6LjZ9LmRyYWdnYWJsZS1naG9zdHtwb3NpdGlvbjpmaXhlZDtkaXNwbGF5OmJsb2NrO3Zpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6MjE0NzQ4MzY0Nztwb2ludGVyLWV2ZW50czpub25lO3dpbGwtY2hhbmdlOmxlZnQsdG9wfS5kcmFnZ2FibGUtZ2hvc3Q+LmRyYWdnYWJs''@;'; + put 'put ''ZXttYXJnaW46MDtvcGFjaXR5OjF9LmRyYWdnYWJsZS1naG9zdC5kcm9wcGVke29wYWNpdHk6MH0uZHJvcHBhYmxlLmRyYWdnYWJsZS1tYXRjaHtib3JkZXI6LjA1cmVtIGRhc2hlZCAjYzA5MGQ1fS5kcm9wcGFibGUuZHJhZ2dhYmxlLW92ZXJ7Ym9yZGVyOi4wNXJlbSBkYXNoZWQgIzY4MDA5''@;'; + put 'put ''NH06cm9vdHstLWNsci1hY2NvcmRpb24tdGV4dC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLWFjY29yZGlvbi1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLXNlbGVjdGlvbi1jb2xvcik7LS1jbHItYWNjb3JkaW9uLWNvbnRlbnQtYmFj''@;'; + put 'put ''a2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1hY2NvcmRpb24taGVhZGVyLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItaG92ZXItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHIt''@;'; + put 'put ''Y29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItZm9udC1zaXplOi44cmVtOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9uLWZvbnQtc2l6ZTouNnJlbTstLWNsci1hY2NvcmRpb24tdGl0bGUtZm9udC13ZWlnaHQ6NTAwOy0tY2xyLWFjY29yZGlvbi10aXRsZS1m''@;'; + put 'put ''b250LXNpemU6LjY1cmVtOy0tY2xyLWFjY29yZGlvbi1lcnJvci1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWVycm9yLWNvbG9yKTstLWNsci1hY2NvcmRpb24tY29tcGxldGUtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1zdWNjZXNzLWNvbG9yKTstLWNsci1hY2NvcmRpb24tYm9yZGVyLWNvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYWNjb3JkaW9uLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC1jb2xvcjojZThlOGU4Oy0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC13aWR0''@;'; + put 'put ''aDouM3JlbTstLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItY29tcGxldGU6dmFyKC0tY2xyLWFjY29yZGlvbi1jb21wbGV0ZS1jb2xvcik7LS1jbHItYWNjb3JkaW9uLWJvcmRlci1sZWZ0LWNvbG9yLWVycm9yOnZhcigtLWNsci1hY2NvcmRpb24tZXJyb3ItY29sb3IpOy0tY2xy''@;'; + put 'put ''LWFjY29yZGlvbi1oZWFkZXItbGVmdC1pbmRpY2F0b3I6aW5zZXQgdmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC13aWR0aCkgMCAwIHZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3IpOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItbGVmdC1jb21wbGV0ZS1pbmRpY2F0''@;'; + put 'put ''b3I6aW5zZXQgdmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC13aWR0aCkgMCAwIHZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItY29tcGxldGUpOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItbGVmdC1lcnJvci1pbmRpY2F0b3I6aW5zZXQgdmFyKC0tY2xyLWFjY29y''@;'; + put 'put ''ZGlvbi1ib3JkZXItbGVmdC13aWR0aCkgMCAwIHZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItZXJyb3IpfS5jbHItYWNjb3JkaW9ue2Rpc3BsYXk6YmxvY2s7Y291bnRlci1yZXNldDphY2NvcmRpb247bWFyZ2luLWJvdHRvbToxLjJyZW19LmNsci1hY2NvcmRpb24tcGFu''@;'; + put 'put ''ZWx7ZGlzcGxheTpibG9ja30uY2xyLWFjY29yZGlvbi1oZWFkZXJ7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLXRleHQtY29sb3IsICM2NjY2NjYpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hY2NvcmRp''@;'; + put 'put ''b24tYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93Omluc2V0IC4zcmVtIDAgI2U4ZThlODtib3gtc2hhZG93OnZhcigtLWNsci1hY2NvcmRpb24taGVhZGVyLWxlZnQtaW5kaWNhdG9yLCBpbnNldCAuM3JlbSAwIDAgI2U4ZThlOCk7YmFja2dyb3VuZDojZmFmYWZhO2JhY2tncm91''@;'; + put 'put ''bmQ6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFkZXItYmFja2dyb3VuZC1jb2xvciwgI2ZhZmFmYSk7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0O2JvcmRlci1ib3R0b206MDt3aWR0aDoxMDAlO2ZvbnQtc2l6ZTouOHJlbTtmb250LXNpemU6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFk''@;'; + put 'put ''ZXItZm9udC1zaXplLCAuOHJlbSk7dGV4dC1hbGlnbjpsZWZ0fS5jbHItYWNjb3JkaW9uLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZThlOGU4''@;'; + put 'put ''KX0uY2xyLWFjY29yZGlvbi1wYW5lbDpsYXN0LWNoaWxkIC5jbHItYWNjb3JkaW9uLWNvbnRlbnQsLmNsci1hY2NvcmRpb24tcGFuZWw6bGFzdC1jaGlsZCAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLXdpZHRoOi4wNXJlbTti''@;'; + put 'put ''b3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojY2NjO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5jbHItYWNjb3JkaW9uLW51bWJl''@;'; + put 'put ''cntwYWRkaW5nOjAgLjlyZW07ZGlzcGxheTpub25lfS5jbHItYWNjb3JkaW9uLW51bWJlcjpiZWZvcmV7Y29udGVudDpjb3VudGVyKGFjY29yZGlvbikgIi4iO2NvdW50ZXItaW5jcmVtZW50OmFjY29yZGlvbn0uY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9ue2Rpc3BsYXk6ZmxleDtmbGV4''@;'; + put 'put ''LWZsb3c6cm93IHdyYXA7ZmxleDoxIDEgMCU7d2lkdGg6MTAwJTtib3JkZXI6MDtwYWRkaW5nOi45cmVtO2JhY2tncm91bmQ6MCAwO3RleHQtYWxpZ246bGVmdDtjdXJzb3I6cG9pbnRlcjtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tdGV4dC1jb2xvciwgIzY2NjY2Nil9''@;'; + put 'put ''QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b257ZmxleC1mbG93OnJvd319LmNsci1hY2NvcmRpb24tc3RhdHVze3dpZHRoOjEuOHJlbTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmNsci1hY2NvcmRpb24tdGl0bGV7''@;'; + put 'put ''ZGlzcGxheTppbmxpbmUtYmxvY2t9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpe2Nsci1zdGVwLXRpdGxlLmNsci1hY2NvcmRpb24tdGl0bGV7bWluLXdpZHRoOjguNjRyZW19fS5jbHItYWNjb3JkaW9uLWhlYWRlci1oYXMtZGVzY3JpcHRpb24gLmNsci1hY2NvcmRpb24tdGl0bGV7bWF4LXdp''@;'; + put 'put ''ZHRoOjEzLjJyZW19LmNsci1hY2NvcmRpb24tZGVzY3JpcHRpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjMyLjVyZW19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9ue21hcmdpbi1sZWZ0OjEuOHJlbX19LmNsci1hY2NvcmRpb24t''@;'; + put 'put ''Y29udGVudHtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVy''@;'; + put 'put ''LXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLWJvdHRvbTowO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOi45cmVtO2Rpc3BsYXk6bm9uZX0uY2xyLWFjY29yZGlvbi1jb250''@;'; + put 'put ''ZW50IC5jbHItZm9ybSwuY2xyLWFjY29yZGlvbi1jb250ZW50Lm5nLXRyaWdnZXJ7cGFkZGluZzowfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWFjY29yZGlvbi1jb250ZW50e3BhZGRpbmc6LjlyZW0gMi43cmVtfX0uY2xyLWFjY29yZGlvbi1pbm5lci1jb250ZW50e3BhZGRpbmc6''@;'; + put 'put ''LjlyZW19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItYWNjb3JkaW9uLWlubmVyLWNvbnRlbnR7cGFkZGluZzouOXJlbSAyLjdyZW19fS5jbHItYWNjb3JkaW9uLWFuZ2xle3RyYW5zaXRpb246YWxsIC4ycyBlYXNlLWluLW91dDt0cmFuc2Zvcm06cm90YXRlKDkwKX0uY2xyLWFjY29y''@;'; + put 'put ''ZGlvbi1lcnJvci1pY29uLC5jbHItYWNjb3JkaW9uLWNvbXBsZXRlLWljb257aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW07ZGlzcGxheTpub25lO3BhZGRpbmc6MDttYXJnaW46MCAuNnJlbX0uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuIC5jbHItYWNjb3JkaW9uLWNvbnRlbnR7ZGlzcGxh''@;'; + put 'put ''eTpibG9ja30uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuIC5jbHItYWNjb3JkaW9uLWFuZ2xle3Zpc2liaWxpdHk6dmlzaWJsZTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmNsci1hY2NvcmRpb24tcGFuZWwtb3BlbiAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7YmFja2dyb3VuZDojZDhlM2U5''@;'; + put 'put ''O2JhY2tncm91bmQ6dmFyKC0tY2xyLWFjY29yZGlvbi1hY3RpdmUtYmFja2dyb3VuZC1jb2xvciwgI2Q4ZTNlOSl9LmNsci1hY2NvcmRpb24tcGFuZWwtY29tcGxldGUgLmNsci1hY2NvcmRpb24tY29tcGxldGUtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojNWFhMjIwO2NvbG9y''@;'; + put 'put ''OnZhcigtLWNsci1hY2NvcmRpb24tY29tcGxldGUtY29sb3IsICM1YWEyMjApfS5jbHItYWNjb3JkaW9uLXBhbmVsLWNvbXBsZXRlIC5jbHItYWNjb3JkaW9uLWFuZ2xle3Zpc2liaWxpdHk6dmlzaWJsZX0uY2xyLWFjY29yZGlvbi1wYW5lbC1jb21wbGV0ZSAuY2xyLWFjY29yZGlvbi1oZWFk''@;'; + put 'put ''ZXJ7Ym94LXNoYWRvdzppbnNldCAuM3JlbSAwICM1YWEyMjA7Ym94LXNoYWRvdzp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1sZWZ0LWNvbXBsZXRlLWluZGljYXRvciwgaW5zZXQgLjNyZW0gMCAwICM1YWEyMjApfS5jbHItYWNjb3JkaW9uLXBhbmVsLWNvbXBsZXRlIC5uZy10cmlnZ2Vy''@;'; + put 'put ''LmNsci1hY2NvcmRpb24tY29udGVudHtkaXNwbGF5OmJsb2NrfS5jbHItYWNjb3JkaW9uLXBhbmVsLWVycm9yIC5jbHItYWNjb3JkaW9uLWhlYWRlcntib3JkZXItYm90dG9tOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6I2MyMWQwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFjY29yZGlv''@;'; + put 'put ''bi1ib3JkZXItbGVmdC1jb2xvci1lcnJvciwgI2MyMWQwMCk7Ym94LXNoYWRvdzppbnNldCAuM3JlbSAwICNjMjFkMDA7Ym94LXNoYWRvdzp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1sZWZ0LWVycm9yLWluZGljYXRvciwgaW5zZXQgLjNyZW0gMCAwICNjMjFkMDApO2JhY2tncm91bmQt''@;'; + put 'put ''Y29sb3I6I2Q4ZTNlOTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tYWN0aXZlLWJhY2tncm91bmQtY29sb3IsICNkOGUzZTkpfS5jbHItYWNjb3JkaW9uLXBhbmVsLWVycm9yIC5jbHItYWNjb3JkaW9uLWVycm9yLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6''@;'; + put 'put ''I2MyMWQwMDtjb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWVycm9yLWNvbG9yLCAjYzIxZDAwKX0uY2xyLWFjY29yZGlvbi1wYW5lbC1lcnJvciAuY2xyLWFjY29yZGlvbi1udW1iZXIsLmNsci1hY2NvcmRpb24tcGFuZWwtY29tcGxldGUgLmNsci1hY2NvcmRpb24tbnVtYmVye3Bvc2l0aW9u''@;'; + put 'put ''OmFic29sdXRlO2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpO2NsaXAtcGF0aDppbnNldCg1MCUpO3BhZGRpbmc6MDtib3JkZXI6MDtoZWlnaHQ6MXB4O3dpZHRoOjFweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RvcDowO2xlZnQ6MH0uY2xyLWFjY29yZGlvbjpub3Qo''@;'; + put 'put ''LmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7Ym94LXNoYWRvdzpub25lfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXBhbmVsOmZpcnN0LWNoaWxkIC5jbHItYWNjb3JkaW9uLWhlYWRlcntib3JkZXItdG9wLWxl''@;'; + put 'put ''ZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMTVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXIt''@;'; + put 'put ''cmFkaXVzLCAuMTVyZW0pfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXBhbmVsOmxhc3QtY2hpbGQgLmNsci1hY2NvcmRpb24tY29udGVudCwuY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1w''@;'; + put 'put ''YW5lbDpsYXN0LWNoaWxkIC5jbHItYWNjb3JkaW9uLWhlYWRlcntib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1''@;'; + put 'put ''czouMTVyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXRpdGxle2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdo''@;'; + put 'put ''dDp2YXIoLS1jbHItYWNjb3JkaW9uLXRpdGxlLWZvbnQtd2VpZ2h0LCA1MDApO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC1zaXplOnZhcigtLWNsci1hY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLCAuNjVyZW0pfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNj''@;'; + put 'put ''b3JkaW9uLWhlYWRlci1idXR0b257Zm9udC1zaXplOi42cmVtO2ZvbnQtc2l6ZTp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b24tZm9udC1zaXplLCAuNnJlbSk7cGFkZGluZzouM3JlbSAuNnJlbX0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFj''@;'; + put 'put ''Y29yZGlvbi1jb250ZW50e3BhZGRpbmc6MH0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1pbm5lci1jb250ZW50e3BhZGRpbmc6LjNyZW0gMS43NXJlbX0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29y''@;'; + put 'put ''ZGlvbi1zdGF0dXN7d2lkdGg6Ljk2cmVtfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXN0YXR1cyBjZHMtaWNvbiwuY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1zdGF0dXMgY2xyLWljb257''@;'; + put 'put ''aGVpZ2h0Oi43cmVtO3dpZHRoOi43cmVtfS5jbHItYWNjb3JkaW9uLXBhbmVsLW9wZW4gLmNsci1hY2NvcmRpb24taGVhZGVye2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MCFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MCFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbTow''@;'; + put 'put ''IWltcG9ydGFudH0uY2xyLXN0ZXBwZXItZm9ybXMgLmNsci1hY2NvcmRpb24tcGFuZWwtaW5hY3RpdmUgLmNsci1hY2NvcmRpb24tYW5nbGV7dmlzaWJpbGl0eTpoaWRkZW59LmNsci1zdGVwcGVyLWZvcm1zIC5jbHItYWNjb3JkaW9uLXBhbmVsLW9wZW4gLmNsci1hY2NvcmRpb24tYW5nbGV7''@;'; + put 'put ''dmlzaWJpbGl0eTp2aXNpYmxlfS5jbHItc3RlcHBlci1mb3JtcyAuY2xyLWFjY29yZGlvbi1zdGF0dXN7bWluLXdpZHRoOjMuNnJlbX0uY2xyLXN0ZXBwZXItZm9ybXMgLmNsci1hY2NvcmRpb24tbnVtYmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItc3RlcC1idXR0b257ZGlzcGxheTpi''@;'; + put 'put ''bG9jazttYXJnaW4tdG9wOjEuMnJlbX06cm9vdHstLWNsci10aW1lbGluZS1saW5lLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwMCk7LS1jbHItdGltZWxpbmUtc3RlcC1oZWFkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci10aW1lbGluZS1zdGVw''@;'; + put 'put ''LXRpdGxlLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItdGltZWxpbmUtc3RlcC1kZXNjcmlwdGlvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLXRpbWVsaW5lLWluY29tcGxldGUtc3RlcC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1''@;'; + put 'put ''dHJhbC02MDApOy0tY2xyLXRpbWVsaW5lLWN1cnJlbnQtc3RlcC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItdGltZWxpbmUtc3VjY2Vzcy1zdGVwLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTQwMCk7LS1jbHItdGltZWxpbmUtZXJyb3Itc3RlcC1jb2xv''@;'; + put 'put ''cjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItdGltZWxpbmUtc3RlcC10aXRsZS1mb250LXdlaWdodDp2YXIoLS1jbHItcDItZm9udC13ZWlnaHQpfS5jbHItdGltZWxpbmV7ZGlzcGxheTpmbGV4O3BhZGRpbmc6LjZyZW19LmNsci10aW1lbGluZS1zdGVwe2Rpc3BsYXk6Zmxl''@;'; + put 'put ''eDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6MTAwJTttaW4td2lkdGg6OC43NXJlbTttYXJnaW4tbGVmdDouNnJlbX0uY2xyLXRpbWVsaW5lLXN0ZXAgY2RzLWljb24sLmNsci10aW1lbGluZS1zdGVwIGNsci1pY29ue2hlaWdodDoxLjhyZW07d2lkdGg6MS44cmVtO21pbi1oZWlnaHQ6''@;'; + put 'put ''MS44cmVtO21pbi13aWR0aDoxLjhyZW19LmNsci10aW1lbGluZS1zdGVwIGNkcy1pY29uW3NoYXBlPWNpcmNsZV0sLmNsci10aW1lbGluZS1zdGVwIGNsci1pY29uW3NoYXBlPWNpcmNsZV17Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItdGltZWxpbmUtaW5jb21wbGV0ZS1zdGVwLWNv''@;'; + put 'put ''bG9yLCAjOGM4YzhjKX0uY2xyLXRpbWVsaW5lLXN0ZXAgY2RzLWljb25bc2hhcGU9ZG90LWNpcmNsZV0sLmNsci10aW1lbGluZS1zdGVwIGNsci1pY29uW3NoYXBlPWRvdC1jaXJjbGVde2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLXRpbWVsaW5lLWN1cnJlbnQtc3RlcC1jb2xvciwg''@;'; + put 'put ''IzAwNzJhMyl9LmNsci10aW1lbGluZS1zdGVwIGNkcy1pY29uW3NoYXBlPXN1Y2Nlc3Mtc3RhbmRhcmRdLC5jbHItdGltZWxpbmUtc3RlcCBjbHItaWNvbltzaGFwZT1zdWNjZXNzLXN0YW5kYXJkXXtjb2xvcjojNWViNzE1O2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1zdWNjZXNzLXN0ZXAt''@;'; + put 'put ''Y29sb3IsICM1ZWI3MTUpfS5jbHItdGltZWxpbmUtc3RlcCBjZHMtaWNvbltzaGFwZT1lcnJvci1zdGFuZGFyZF0sLmNsci10aW1lbGluZS1zdGVwIGNsci1pY29uW3NoYXBlPWVycm9yLXN0YW5kYXJkXXtjb2xvcjojYzIxZDAwO2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1lcnJvci1zdGVw''@;'; + put 'put ''LWNvbG9yLCAjYzIxZDAwKX0uY2xyLXRpbWVsaW5lLXN0ZXA6bm90KDpsYXN0LW9mLXR5cGUpIC5jbHItdGltZWxpbmUtc3RlcC1ib2R5OmJlZm9yZXtjb250ZW50OiIiO2JhY2tncm91bmQ6I2IzYjNiMztiYWNrZ3JvdW5kOnZhcigtLWNsci10aW1lbGluZS1saW5lLWNvbG9yLCAjYjNiM2Iz''@;'; + put 'put ''KTtoZWlnaHQ6LjFyZW07d2lkdGg6Y2FsYygxMDAlIC0gMXJlbSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxLjdyZW0sLS45NXJlbSl9LmNsci10aW1lbGluZS1zdGVwLWhlYWRlcntjb2xvcjojOGM4YzhjO2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1zdGVwLWhlYWRlci1jb2xvciwgIzhjOGM4''@;'; + put 'put ''Yyk7Zm9udC1zaXplOi42NXJlbTtsaW5lLWhlaWdodDouOXJlbTt3aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luLWJvdHRvbTouNHJlbX0uY2xyLXRpbWVsaW5lLXN0ZXAtYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNkcy1p''@;'; + put 'put ''Y29uLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNsci1pY29ue2hlaWdodDouOHJlbTt3aWR0aDouOHJlbTttaW4td2lkdGg6aW5pdGlhbDttaW4taGVpZ2h0OmluaXRpYWx9LmNsci10aW1lbGluZS1zdGVwLWJvZHkgY2RzLWljb25bc2hhcGU9Y2lyY2xlXSwuY2xyLXRpbWVsaW5lLXN0ZXAt''@;'; + put 'put ''Ym9keSBjZHMtaWNvbltzaGFwZT1kb3QtY2lyY2xlXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjZHMtaWNvbltzaGFwZT1zdWNjZXNzLXN0YW5kYXJkXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjZHMtaWNvbltzaGFwZT1lcnJvci1zdGFuZGFyZF0sLmNsci10aW1lbGluZS1zdGVwLWJv''@;'; + put 'put ''ZHkgY2xyLWljb25bc2hhcGU9Y2lyY2xlXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjbHItaWNvbltzaGFwZT1kb3QtY2lyY2xlXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjbHItaWNvbltzaGFwZT1zdWNjZXNzLXN0YW5kYXJkXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjbHItaWNv''@;'; + put 'put ''bltzaGFwZT1lcnJvci1zdGFuZGFyZF17Y29sb3I6aW5oZXJpdH0uY2xyLXRpbWVsaW5lLXN0ZXAtdGl0bGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdGltZWxpbmUtc3RlcC10aXRsZS1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo1MDA7Zm9udC13''@;'; + put 'put ''ZWlnaHQ6dmFyKC0tY2xyLXRpbWVsaW5lLXN0ZXAtdGl0bGUtZm9udC13ZWlnaHQsIDUwMCk7bGluZS1oZWlnaHQ6LjlyZW07bWFyZ2luLXRvcDouNHJlbTttYXJnaW4tYm90dG9tOi4zcmVtfS5jbHItdGltZWxpbmUtc3RlcC1kZXNjcmlwdGlvbntjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNs''@;'; + put 'put ''ci10aW1lbGluZS1zdGVwLWRlc2NyaXB0aW9uLWNvbG9yLCAjNjY2NjY2KTtmb250LXNpemU6LjU1cmVtO2xpbmUtaGVpZ2h0Oi44cmVtfS5jbHItdGltZWxpbmUtc3RlcC1kZXNjcmlwdGlvbiBidXR0b257ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOi40cmVtfS5jbHItdGltZWxpbmUtc3Rl''@;'; + put 'put ''cC1kZXNjcmlwdGlvbiBpbWd7d2lkdGg6MTAwJTttYXJnaW4tdG9wOi40cmVtfS5jbHItdGltZWxpbmUuY2xyLXRpbWVsaW5lLXZlcnRpY2Fse2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MTZyZW19LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1l''@;'; + put 'put ''bGluZS1zdGVwe2ZsZXgtZGlyZWN0aW9uOnJvdzttYXJnaW4tbGVmdDowO3Bvc2l0aW9uOnJlbGF0aXZlfS5jbHItdGltZWxpbmUuY2xyLXRpbWVsaW5lLXZlcnRpY2FsIC5jbHItdGltZWxpbmUtc3RlcDpub3QoOmxhc3Qtb2YtdHlwZSl7bWFyZ2luLWJvdHRvbToxLjhyZW19LmNsci10aW1l''@;'; + put 'put ''bGluZS5jbHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGluZS1zdGVwOm5vdCg6bGFzdC1vZi10eXBlKSAuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keTpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6LjFyZW07aGVpZ2h0OmNhbGMoMTAwJSArIC4ycmVtKTt0cmFuc2Zvcm06dHJh''@;'; + put 'put ''bnNsYXRlKC0xLjU1cmVtLDEuNHJlbSl9LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGluZS1zdGVwLWhlYWRlcnt0ZXh0LWFsaWduOnJpZ2h0O3doaXRlLXNwYWNlOm5vcm1hbDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d2lkdGg6M3JlbTttaW4td2lkdGg6''@;'; + put 'put ''M3JlbTttYXJnaW4tcmlnaHQ6LjZyZW07bWFyZ2luLXRvcDouM3JlbTttYXJnaW4tYm90dG9tOjB9LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGluZS1zdGVwLXRpdGxle21hcmdpbi10b3A6MH0uY2xyLXRpbWVsaW5lLmNsci10aW1lbGluZS12ZXJ0aWNh''@;'; + put 'put ''bCAuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDo4LjlyZW07bWFyZ2luLWxlZnQ6LjZyZW07bWFyZ2luLXRvcDouM3JlbX1Aa2V5ZnJhbWVzIHNwaW57MCV7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3t0cmFuc2Zvcm06''@;'; + put 'put ''cm90YXRlKDM2MGRlZyl9fWNsci1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowO2hlaWdodDoxNnB4O3dpZHRoOjE2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2ZpbGw6Y3VycmVudENvbG9yfWNsci1pY29uIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6Y3VycmVu''@;'; + put 'put ''dENvbG9yfWNsci1pY29uLmlzLWdyZWVuLGNsci1pY29uLmlzLXN1Y2Nlc3N7ZmlsbDojMmU4NTAwfWNsci1pY29uLmlzLWdyZWVuIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZSxjbHItaWNvbi5pcy1zdWNjZXNzIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6IzJlODUwMH1jbHIt''@;'; + put 'put ''aWNvbi5pcy1yZWQsY2xyLWljb24uaXMtZGFuZ2VyLGNsci1pY29uLmlzLWVycm9ye2ZpbGw6I2UwMjIwMH1jbHItaWNvbi5pcy1yZWQgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tlLGNsci1pY29uLmlzLWRhbmdlciAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2UsY2xyLWljb24uaXMtZXJyb3Ig''@;'; + put 'put ''LnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojZTAyMjAwfWNsci1pY29uLmlzLXdhcm5pbmd7ZmlsbDojYzI3YjAwfWNsci1pY29uLmlzLXdhcm5pbmcgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojYzI3YjAwfWNsci1pY29uLmlzLWJsdWUsY2xyLWljb24uaXMtaW5m''@;'; + put 'put ''b3tmaWxsOiMwMDc3Yjh9Y2xyLWljb24uaXMtYmx1ZSAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2UsY2xyLWljb24uaXMtaW5mbyAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiMwMDc3Yjh9Y2xyLWljb24uaXMtd2hpdGUsY2xyLWljb24uaXMtaW52ZXJzZXtmaWxsOiNmZmZ9Y2xy''@;'; + put 'put ''LWljb24uaXMtd2hpdGUgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tlLGNsci1pY29uLmlzLWludmVyc2UgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojZmZmfWNsci1pY29uLmlzLWhpZ2hsaWdodHtmaWxsOiMwMDc3Yjh9Y2xyLWljb24uaXMtaGlnaGxpZ2h0IC50cmFuc3BhcmVu''@;'; + put 'put ''dC1maWxsLXN0cm9rZXtzdHJva2U6IzAwNzdiOH1jbHItaWNvbltzaGFwZSQ9IiB1cCJdIHN2ZyxjbHItaWNvbltkaXI9dXBdIHN2Z3t0cmFuc2Zvcm06cm90YXRlKDApfWNsci1pY29uW3NoYXBlJD0iIGRvd24iXSBzdmcsY2xyLWljb25bZGlyPWRvd25dIHN2Z3t0cmFuc2Zvcm06cm90YXRl''@;'; + put 'put ''KDE4MGRlZyl9Y2xyLWljb25bc2hhcGUkPSIgcmlnaHQiXSBzdmcsY2xyLWljb25bZGlyPXJpZ2h0XSBzdmd7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9Y2xyLWljb25bc2hhcGUkPSIgbGVmdCJdIHN2ZyxjbHItaWNvbltkaXI9bGVmdF0gc3Zne3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX1j''@;'; + put 'put ''bHItaWNvbltmbGlwPWhvcml6b250YWxdIHN2Z3t0cmFuc2Zvcm06c2NhbGUoLTEpIHJvdGF0ZVgoMTgwZGVnKX1jbHItaWNvbltmbGlwPXZlcnRpY2FsXSBzdmd7dHJhbnNmb3JtOnNjYWxlKC0xKSByb3RhdGVZKDE4MGRlZyl9Y2xyLWljb24gLmNsci1pLWJhZGdle2ZpbGw6I2UwMjIwMH1j''@;'; + put 'put ''bHItaWNvbiAuY2xyLWktYmFkZ2UgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojZTAyMjAwfWNsci1pY29uPip7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO3BvaW50ZXItZXZlbnRzOm5vbmV9Y2xyLWljb24+c3Zne3RyYW5zaXRpb246aW5oZXJpdH1jbHIt''@;'; + put 'put ''aWNvbj5zdmcgdGl0bGV7ZGlzcGxheTpub25lfWNsci1pY29uIC5jbHItaS1zb2xpZCxjbHItaWNvbiAuY2xyLWktc29saWQtLWJhZGdlZCxjbHItaWNvbiAuY2xyLWktc29saWQtLWFsZXJ0ZWR7ZGlzcGxheTpub25lfWNsci1pY29uIC5jbHItaS1vdXRsaW5lLS1hbGVydGVkOm5vdCguY2xy''@;'; + put 'put ''LWktb3V0bGluZSksY2xyLWljb24gLmNsci1pLW91dGxpbmUtLWJhZGdlZDpub3QoLmNsci1pLW91dGxpbmUpe2Rpc3BsYXk6bm9uZX1jbHItaWNvbltjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0IC5jbHItaS1vdXRsaW5lLS1hbGVydGVke2Rpc3BsYXk6YmxvY2t9Y2xyLWljb25bY2xh''@;'; + put 'put ''c3MqPWhhcy1hbGVydF0gLmNhbi1hbGVydCAuY2xyLWktb3V0bGluZTpub3QoLmNsci1pLW91dGxpbmUtLWFsZXJ0ZWQpe2Rpc3BsYXk6bm9uZX1jbHItaWNvbltjbGFzcyo9aGFzLWJhZGdlXSAuY2FuLWJhZGdlIC5jbHItaS1vdXRsaW5lLS1iYWRnZWR7ZGlzcGxheTpibG9ja31jbHItaWNv''@;'; + put 'put ''bltjbGFzcyo9aGFzLWJhZGdlXSAuY2FuLWJhZGdlIC5jbHItaS1vdXRsaW5lOm5vdCguY2xyLWktb3V0bGluZS0tYmFkZ2VkKXtkaXNwbGF5Om5vbmV9Y2xyLWljb24uaXMtc29saWQgLmhhcy1zb2xpZCAuY2xyLWktc29saWR7ZGlzcGxheTpibG9ja31jbHItaWNvbi5pcy1zb2xpZCAuaGFz''@;'; + put 'put ''LXNvbGlkIC5jbHItaS1vdXRsaW5lLGNsci1pY29uLmlzLXNvbGlkIC5oYXMtc29saWQgLmNsci1pLW91dGxpbmUtLWJhZGdlZHtkaXNwbGF5Om5vbmV9Y2xyLWljb24uaXMtc29saWQgLmhhcy1zb2xpZCAuY2xyLWktc29saWQtLWFsZXJ0ZWQ6bm90KC5jbHItaS1zb2xpZCksY2xyLWljb24u''@;'; + put 'put ''aXMtc29saWQgLmhhcy1zb2xpZCAuY2xyLWktc29saWQtLWJhZGdlZDpub3QoLmNsci1pLXNvbGlkKXtkaXNwbGF5Om5vbmV9Y2xyLWljb24uaXMtc29saWRbY2xhc3MqPWhhcy1iYWRnZV0gLmNhbi1iYWRnZS5oYXMtc29saWQgLmNsci1pLXNvbGlkLS1iYWRnZWR7ZGlzcGxheTpibG9ja31j''@;'; + put 'put ''bHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWJhZGdlXSAuY2FuLWJhZGdlLmhhcy1zb2xpZCAuY2xyLWktb3V0bGluZSxjbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWJhZGdlXSAuY2FuLWJhZGdlLmhhcy1zb2xpZCAuY2xyLWktb3V0bGluZS0tYmFkZ2VkLGNsci1pY29uLmlzLXNv''@;'; + put 'put ''bGlkW2NsYXNzKj1oYXMtYmFkZ2VdIC5jYW4tYmFkZ2UuaGFzLXNvbGlkIC5jbHItaS1zb2xpZDpub3QoLmNsci1pLXNvbGlkLS1iYWRnZWQpe2Rpc3BsYXk6bm9uZX1jbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0Lmhhcy1zb2xpZCAuY2xyLWktc29saWQt''@;'; + put 'put ''LWFsZXJ0ZWR7ZGlzcGxheTpibG9ja31jbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0Lmhhcy1zb2xpZCAuY2xyLWktb3V0bGluZSxjbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0Lmhhcy1zb2xpZCAuY2xyLWktb3V0bGlu''@;'; + put 'put ''ZS0tYWxlcnRlZCxjbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0Lmhhcy1zb2xpZCAuY2xyLWktc29saWQ6bm90KC5jbHItaS1zb2xpZC0tYWxlcnRlZCl7ZGlzcGxheTpub25lfWNsci1pY29uLmhhcy1iYWRnZS0tc3VjY2VzcyAuY2xyLWktYmFkZ2V7Zmls''@;'; + put 'put ''bDojMmU4NTAwfWNsci1pY29uLmhhcy1iYWRnZS0tc3VjY2VzcyAuY2xyLWktYmFkZ2UgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojMmU4NTAwfWNsci1pY29uLmhhcy1iYWRnZS0tZXJyb3IgLmNsci1pLWJhZGdle2ZpbGw6I2UwMjIwMH1jbHItaWNvbi5oYXMtYmFkZ2UtLWVy''@;'; + put 'put ''cm9yIC5jbHItaS1iYWRnZSAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiNlMDIyMDB9Y2xyLWljb24uaGFzLWJhZGdlLS1pbmZvIC5jbHItaS1iYWRnZXtmaWxsOiMwMDc3Yjh9Y2xyLWljb24uaGFzLWJhZGdlLS1pbmZvIC5jbHItaS1iYWRnZSAudHJhbnNwYXJlbnQtZmlsbC1z''@;'; + put 'put ''dHJva2V7c3Ryb2tlOiMwMDc3Yjh9Y2xyLWljb24uaGFzLWFsZXJ0IC5jbHItaS1hbGVydHtmaWxsOiNjMjdiMDB9Y2xyLWljb24uaGFzLWFsZXJ0IC5jbHItaS1hbGVydCAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiNjMjdiMDB9Y2xyLWljb24gLmlzLW9mZi1zY3JlZW57cG9z''@;'; + put 'put ''aXRpb246Zml4ZWQhaW1wb3J0YW50O2JvcmRlcjowIWltcG9ydGFudDtoZWlnaHQ6MXB4IWltcG9ydGFudDt3aWR0aDoxcHghaW1wb3J0YW50O2xlZnQ6MCFpbXBvcnRhbnQ7dG9wOi0xcHghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7cGFkZGluZzowIWltcG9ydGFudDtt''@;'; + put 'put ''YXJnaW46MCAwIC0xcHghaW1wb3J0YW50fQo='';'; + put 'run;'; + put '%sasjsout(CSS64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let path=services/web9/images; + +%let service=caret-svg; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+LmNscy0xe2ZpbGw6I2IzYjNiMzt9PC9zdHlsZT4KICAgIDwvZGVmcz4KICAgIDx0aXRsZT5DYXJldDwvdGl0bGU+CiAgICA8cGF0aCBj''@;'; + put 'put ''bGFzcz0iY2xzLTEiIGQ9Ik02LDlMMS4yLDQuMmEwLjY4LDAuNjgsMCwwLDEsMS0xTDYsNy4wOCw5Ljg0LDMuMjRhMC42OCwwLjY4LDAsMSwxLDEsMVoiLz4KPC9zdmc+Cg=='';'; + put 'run;'; + put '%sasjsout(SVG64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=caret.65f1fc0acbe4c7ff-svg; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+LmNscy0xe2ZpbGw6I2IzYjNiMzt9PC9zdHlsZT4KICAgIDwvZGVmcz4KICAgIDx0aXRsZT5DYXJldDwvdGl0bGU+CiAgICA8cGF0aCBj''@;'; + put 'put ''bGFzcz0iY2xzLTEiIGQ9Ik02LDlMMS4yLDQuMmEwLjY4LDAuNjgsMCwwLDEsMS0xTDYsNy4wOCw5Ljg0LDMuMjRhMC42OCwwLjY4LDAsMSwxLDEsMVoiLz4KPC9zdmc+Cg=='';'; + put 'run;'; + put '%sasjsout(SVG64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=datacontroller-svg; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PHN2ZyB3aWR0aD0iMTY5MCIgaGVpZ2h0PSIyNDAiIHZpZXdCb3g9IjAgMCAxNjkwIDI0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwNV83KSI+CjxwYXRoIGQ9Ik0xMjQuOSA1NS4yMDAxQzEyOC4y''@;'; + put 'put ''IDU1LjYwMDEgMTMxLjQgNTUuOTAwMSAxMzQuNyA1Ni4zMDAxQzE0Mi42IDU3LjQwMDEgMTUwLjMgNTguOTAwMSAxNTcuNSA2Mi42MDAxQzE1OS42IDYzLjcwMDEgMTYxLjYgNjQuOTAwMSAxNjMuMSA2Ni44MDAxQzE2NS41IDY5LjYwMDEgMTY1LjQgNzIuNjAwMSAxNjMgNzUuNDAwMUMxNjAu''@;'; + put 'put ''NSA3OC4yMDAxIDE1Ny4zIDc5LjgwMDEgMTUzLjkgODEuMTAwMUMxNDYgODQuMjAwMSAxMzcuNyA4NS42MDAxIDEyOS4zIDg2LjMwMDFDMTE1LjYgODcuNDAwMSAxMDIuMSA4Ni45MDAxIDg4LjcgODMuNzAwMUM4NC4zIDgyLjcwMDEgODAgODEuMzAwMSA3Ni4xIDc5LjEwMDFDNzQuNiA3OC4z''@;'; + put 'put ''MDAxIDczLjIgNzcuMzAwMSA3MS45IDc2LjEwMDFDNjguMyA3Mi42MDAxIDY4LjMgNjguOTAwMSA3MiA2NS42MDAxQzc2IDYyLjAwMDEgODAuOSA2MC4zMDAxIDg1LjkgNTguOTAwMUM5Mi45IDU2LjkwMDEgMTAwIDU1LjkwMDEgMTA3LjIgNTUuNDAwMUMxMDcuOCA1NS40MDAxIDEwOC41IDU1''@;'; + put 'put ''LjYwMDEgMTA5IDU1LjEwMDFDMTE0LjIgNTUuMjAwMSAxMTkuNiA1NS4yMDAxIDEyNC45IDU1LjIwMDFaIiBmaWxsPSIjRTBFMEUwIi8+CjxwYXRoIGQ9Ik02OS4yMDAxIDEzNy4zQzc1LjYwMDEgMTQ1LjUgODQuNzAwMSAxNDguNSA5NC4xMDAxIDE1MC41QzExMi43IDE1NC41IDEzMS4zIDE1''@;'; + put 'put ''NCAxNDkuNCAxNDcuNkMxNTUgMTQ1LjYgMTYwLjIgMTQyLjkgMTYzLjkgMTM3LjlDMTY0LjUgMTM3LjEgMTY0LjggMTM3LjUgMTY1LjEgMTM4LjFDMTY1LjcgMTM5LjQgMTY2IDE0MC43IDE2NiAxNDIuMUMxNjYgMTQ3IDE2NiAxNTIgMTY2IDE1Ni45QzE2NiAxNjAuMSAxNjQuNSAxNjIuNiAx''@;'; + put 'put ''NjIuMyAxNjQuOEMxNTcuNyAxNjkuNCAxNTEuOSAxNzEuOSAxNDUuOCAxNzMuOEMxMzMuNSAxNzcuNiAxMjAuOSAxNzguNCAxMDguMiAxNzcuNUM5OC43MDAxIDE3Ni44IDg5LjUgMTc1IDgwLjggMTcxLjFDNzcuMSAxNjkuNCA3My43MDAxIDE2Ny40IDcxLjAwMDEgMTY0LjNDNjguOTAwMSAx''@;'; + put 'put ''NjEuOSA2Ny44IDE1OS4yIDY3LjggMTU2QzY3LjkgMTUxLjUgNjcuOCAxNDcgNjcuOCAxNDIuNUM2Ny44IDE0MC43IDY4LjEwMDEgMTM5IDY5LjIwMDEgMTM3LjNaIiBmaWxsPSIjOEVDNjNGIi8+CjxwYXRoIGQ9Ik02OS4yOTk5IDEwNi40Qzc0LjU5OTkgMTEzLjUgODEuOTk5OSAxMTYuNSA4''@;'; + put 'put ''OS44OTk5IDExOC42QzEwOC44IDEyMy42IDEyNy43IDEyMy41IDE0Ni40IDExNy45QzE1Mi42IDExNi4xIDE1OC40IDExMy40IDE2Mi45IDEwOC41QzE2My41IDEwNy45IDE2My45IDEwNi41IDE2NC42IDEwNi43QzE2NS42IDEwNyAxNjUuNiAxMDguNCAxNjUuOSAxMDkuNUMxNjYuMyAxMTEu''@;'; + put 'put ''MiAxNjYuMSAxMTIuOSAxNjYuMSAxMTQuNkMxNjYuMSAxMTggMTY2IDEyMS4zIDE2Ni4xIDEyNC43QzE2Ni4zIDEyOC45IDE2NC42IDEzMi4yIDE2MS41IDEzNC45QzE1Ni44IDEzOS4xIDE1MS4xIDE0MS42IDE0NSAxNDMuMkMxMjQuNSAxNDguNyAxMDQuMSAxNDguNiA4My45OTk5IDE0MS42''@;'; + put 'put ''Qzc5LjA5OTkgMTM5LjkgNzQuNTk5OSAxMzcuNSA3MC45OTk5IDEzMy42QzY4Ljc5OTkgMTMxLjIgNjcuNyAxMjguNCA2Ny43IDEyNS4xQzY3LjggMTIwLjcgNjcuNyAxMTYuMiA2Ny43IDExMS44QzY3LjggMTEwIDY4LjA5OTkgMTA4LjIgNjkuMjk5OSAxMDYuNFoiIGZpbGw9IiNFMEUwRTAi''@;'; + put 'put ''Lz4KPHBhdGggZD0iTTY5LjEgNzYuN0M3MC42IDgxLjEgNzQuMiA4My4wOTk5IDc4IDg0Ljg5OTlDODQuOCA4OC4wOTk5IDkyLjEgODkuNiA5OS40IDkwLjVDMTEzLjkgOTIuMyAxMjguNCA5Mi4xIDE0Mi43IDg5LjFDMTQ4LjUgODcuOSAxNTQuMSA4Ni4zIDE1OS4yIDgzLjFDMTYyLjEgODEu''@;'; + put 'put ''MyAxNjMuNiA3OS42IDE2NC42IDc2LjhDMTY1LjYgNzguMiAxNjUuOSA3OS43IDE2NS45IDgxLjJDMTY1LjkgODYuMiAxNjYgOTEuMSAxNjUuOSA5Ni4xQzE2NS44IDEwMC4zIDE2My40IDEwMy4zIDE2MC4zIDEwNS44QzE1NC41IDExMC40IDE0Ny43IDExMi44IDE0MC42IDExNC40QzEyMS44''@;'; + put 'put ''IDExOC41IDEwMy4yIDExOC4yIDg0LjkgMTEyQzgwLjEgMTEwLjQgNzUuNSAxMDguMSA3MS44IDEwNC41QzY5IDEwMS44IDY3LjUgOTguNyA2Ny42IDk0LjdDNjcuNyA5MC40IDY3LjYgODYuMSA2Ny42IDgxLjhDNjcuOCA3OS45IDY4LjEgNzguMyA2OS4xIDc2LjdaIiBmaWxsPSIjOEVDNjNG''@;'; + put 'put ''Ii8+CjxwYXRoIGQ9Ik0xODMuOSAyMTAuOUMyMDAuMiAyMTEuOCAyMDguOSAxOTEuOCAxOTcuMSAxODAuNUMxODQuNyAxNjguNiAxNjQuMyAxNzkuNyAxNjcuNSAxOTYuNUM5My44IDI0My41IC0wLjk5OTk4MSAxNzMuMiAyNiA4Ny44MDAxTDcuODAwMDIgNzUuNjAwMUMtMzMuMSAxODQuMyA5''@;'; + put 'put ''Mi44IDI3Ni4yIDE4My45IDIxMC45Wk0xNzguNyAxODcuNEMxODYuMyAxNzkuNSAxOTguNCAxOTAuNSAxOTEuMyAxOTguOEMxODMuOCAyMDcuNSAxNzAuNiAxOTUuOCAxNzguNyAxODcuNFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTM1LjIgNTAuNzAwMUM0Ni45IDYxLjkwMDEgNjYu''@;'; + put 'put ''MiA1Mi43MDAxIDY1LjEgMzYuNzAwMUMxMzguNyAtMTAuNyAyMzQgNTkuNTAwMSAyMDcgMTQ1LjJMMjI1LjIgMTU3LjRDMjY0LjkgNTEuODAwMSAxNDQuNCAtNDMuMjk5OSA1MS4yIDIwLjYwMDFDMzMuNyAxNy4wMDAxIDIyLjQgMzguNDAwMSAzNS4yIDUwLjcwMDFaTTUzLjYgNDMuODAwMUM0''@;'; + put 'put ''NS44IDUxLjkwMDEgMzMuNSA0MC4xMDAxIDQxLjMgMzIuMDAwMUM0OS4xIDIzLjkwMDEgNjEuNCAzNS43MDAxIDUzLjYgNDMuODAwMVoiIGZpbGw9IiM4RUM2M0YiLz4KPHBhdGggZD0iTTMyMy41NzUgNDcuODg3NEMzMjMuNTc1IDQ2Ljc5MDEgMzIzLjkxNyA0NS44OTg1IDMyNC42MDMgNDUu''@;'; + put 'put ''MjEyN0MzMjUuNDI2IDQ0LjM4OTcgMzI2LjM4NiA0My45NzgyIDMyNy40ODQgNDMuOTc4MkgzNjkuMDQ0QzM3OC45MiA0My45NzgyIDM4OC4wNDEgNDUuNzYxMyAzOTYuNDA4IDQ5LjMyNzZDNDA0LjkxMyA1Mi44OTM4IDQxMi4yNTEgNTcuOTAwMyA0MTguNDIzIDY0LjM0N0M0MjQuNTk2IDcw''@;'; + put 'put ''LjY1NjUgNDI5LjQ2NSA3OC4yMDA1IDQzMy4wMzEgODYuOTc5QzQzNi41OTcgOTUuNzU3NSA0MzguMzggMTA1LjQyOCA0MzguMzggMTE1Ljk4OUM0MzguMzggMTI2LjU1MSA0MzYuNTk3IDEzNi4yMjEgNDMzLjAzMSAxNDQuOTk5QzQyOS40NjUgMTUzLjc3OCA0MjQuNTk2IDE2MS4zOSA0MTgu''@;'; + put 'put ''NDIzIDE2Ny44MzdDNDEyLjI1MSAxNzQuMTQ2IDQwNC45MTMgMTc5LjA4NCAzOTYuNDA4IDE4Mi42NTFDMzg4LjA0MSAxODYuMjE3IDM3OC45MiAxODggMzY5LjA0NCAxODhIMzI3LjQ4NEMzMjYuMzg2IDE4OCAzMjUuNDI2IDE4Ny42NTcgMzI0LjYwMyAxODYuOTcxQzMyMy45MTcgMTg2LjE0''@;'; + put 'put ''OCAzMjMuNTc1IDE4NS4xODggMzIzLjU3NSAxODQuMDkxVjQ3Ljg4NzRaTTM0OS4yOTMgNjkuMjg0OVYxNjIuNjkzSDM2OS42NjJDMzc1LjgzNCAxNjIuNjkzIDM4MS40NTggMTYxLjUyNyAzODYuNTMzIDE1OS4xOTZDMzkxLjYwOCAxNTYuODY0IDM5NS45MjggMTUzLjY0MSAzOTkuNDk1IDE0''@;'; + put 'put ''OS41MjZDNDAzLjE5OCAxNDUuNDExIDQwNi4wMSAxNDAuNTQxIDQwNy45MyAxMzQuOTE4QzQwOS45ODggMTI5LjE1NyA0MTEuMDE2IDEyMi44NDcgNDExLjAxNiAxMTUuOTg5QzQxMS4wMTYgMTA5LjI2OCA0MDkuOTg4IDEwMy4wMjcgNDA3LjkzIDk3LjI2NjNDNDA2LjAxIDkxLjUwNTQgNDAz''@;'; + put 'put ''LjE5OCA4Ni41Njc1IDM5OS40OTUgODIuNDUyNkMzOTUuOTI4IDc4LjMzNzcgMzkxLjYwOCA3NS4xMTQzIDM4Ni41MzMgNzIuNzgyNkMzODEuNDU4IDcwLjQ1MDggMzc1LjgzNCA2OS4yODQ5IDM2OS42NjIgNjkuMjg0OUgzNDkuMjkzWk01MzEuMDkzIDE3Ny45MThDNTI3LjM4OSAxODAuNjYy''@;'; + put 'put ''IDUyMy4xMzcgMTgzLjEzMSA1MTguMzM3IDE4NS4zMjVDNTEzLjUzNiAxODcuMzgzIDUwOC43MzUgMTg4LjQxMSA1MDMuOTM1IDE4OC40MTFDNDk2LjgwMiAxODguNDExIDQ5MC4yMTggMTg3LjEwOCA0ODQuMTgzIDE4NC41MDJDNDc4LjE0OCAxODEuODk2IDQ3Mi45MzYgMTc4LjI2MSA0Njgu''@;'; + put 'put ''NTQ2IDE3My41OThDNDY0LjI5NCAxNjguOTM0IDQ2MC45MzQgMTYzLjQ0OCA0NTguNDY1IDE1Ny4xMzhDNDU1Ljk5NiAxNTAuODI5IDQ1NC43NjEgMTQzLjk3IDQ1NC43NjEgMTM2LjU2NEM0NTQuNzYxIDEyOS40MzEgNDU2LjA2NCAxMjIuNzc5IDQ1OC42NzEgMTE2LjYwNkM0NjEuMjc3IDEx''@;'; + put 'put ''MC4yOTcgNDY0Ljg0MyAxMDQuODEgNDY5LjM2OSAxMDAuMTQ3QzQ3My44OTYgOTUuMzQ2IDQ3OS4xMDggOTEuNTc0IDQ4NS4wMDYgODguODMwN0M0OTEuMDQxIDg2LjA4NzQgNDk3LjQ4OCA4NC43MTU4IDUwNC4zNDYgODQuNzE1OEM1MDkuMTQ3IDg0LjcxNTggNTEzLjg3OSA4NS44MTMxIDUx''@;'; + put 'put ''OC41NDIgODguMDA3N0M1MjMuMjA2IDkwLjA2NTIgNTI3LjM4OSA5Mi40NjU1IDUzMS4wOTMgOTUuMjA4OFY4OS4wMzY1QzUzMS4wOTMgODcuOTM5MSA1MzEuNDM2IDg3LjA0NzYgNTMyLjEyMiA4Ni4zNjE4QzUzMi45NDUgODUuNTM4OCA1MzMuOTA1IDg1LjEyNzMgNTM1LjAwMiA4NS4xMjcz''@;'; + put 'put ''SDU1MS4wNUM1NTMuNjU2IDg1LjEyNzMgNTU0Ljk1OSA4Ni40MzAzIDU1NC45NTkgODkuMDM2NVYxODQuMDkxQzU1NC45NTkgMTg2LjY5NyA1NTMuNjU2IDE4OCA1NTEuMDUgMTg4SDUzNS4wMDJDNTMzLjkwNSAxODggNTMyLjk0NSAxODcuNjU3IDUzMi4xMjIgMTg2Ljk3MUM1MzEuNDM2IDE4''@;'; + put 'put ''Ni4xNDggNTMxLjA5MyAxODUuMTg4IDUzMS4wOTMgMTg0LjA5MVYxNzcuOTE4Wk00NzkuNjU3IDEzNi41NjRDNDc5LjY1NyAxNDAuMjY3IDQ4MC4zNDIgMTQzLjc2NSA0ODEuNzE0IDE0Ny4wNTdDNDgzLjA4NiAxNTAuMjExIDQ4NC45MzcgMTUzLjAyMyA0ODcuMjY5IDE1NS40OTJDNDg5LjYw''@;'; + put 'put ''MSAxNTcuOTYxIDQ5Mi4yNzYgMTU5Ljk1IDQ5NS4yOTMgMTYxLjQ1OUM0OTguNDQ4IDE2Mi44MyA1MDEuNzQgMTYzLjUxNiA1MDUuMTY5IDE2My41MTZDNTA4Ljg3MiAxNjMuNTE2IDUxMi4yMzMgMTYyLjgzIDUxNS4yNTEgMTYxLjQ1OUM1MTguMjY4IDE1OS45NSA1MjAuODc0IDE1Ny45NjEg''@;'; + put 'put ''NTIzLjA2OSAxNTUuNDkyQzUyNS40MDEgMTUzLjAyMyA1MjcuMTg0IDE1MC4yMTEgNTI4LjQxOCAxNDcuMDU3QzUyOS42NTMgMTQzLjc2NSA1MzAuMjcgMTQwLjI2NyA1MzAuMjcgMTM2LjU2NEM1MzAuMjcgMTMyLjg2IDUyOS42NTMgMTI5LjQzMSA1MjguNDE4IDEyNi4yNzZDNTI3LjE4NCAx''@;'; + put 'put ''MjIuOTg0IDUyNS40MDEgMTIwLjEwNCA1MjMuMDY5IDExNy42MzVDNTIwLjg3NCAxMTUuMTY2IDUxOC4yNjggMTEzLjI0NiA1MTUuMjUxIDExMS44NzRDNTEyLjIzMyAxMTAuMzY1IDUwOC44NzIgMTA5LjYxMSA1MDUuMTY5IDEwOS42MTFDNTAxLjc0IDEwOS42MTEgNDk4LjQ0OCAxMTAuMzY1''@;'; + put 'put ''IDQ5NS4yOTMgMTExLjg3NEM0OTIuMjc2IDExMy4yNDYgNDg5LjYwMSAxMTUuMTY2IDQ4Ny4yNjkgMTE3LjYzNUM0ODQuOTM3IDEyMC4xMDQgNDgzLjA4NiAxMjIuOTg0IDQ4MS43MTQgMTI2LjI3NkM0ODAuMzQyIDEyOS40MzEgNDc5LjY1NyAxMzIuODYgNDc5LjY1NyAxMzYuNTY0Wk01NzQu''@;'; + put 'put ''NDA3IDg5LjAzNjVDNTc0LjQwNyA4Ny45MzkxIDU3NC43NSA4Ny4wNDc2IDU3NS40MzYgODYuMzYxOEM1NzYuMTIyIDg1LjUzODggNTc3LjAxMyA4NS4xMjczIDU3OC4xMTEgODUuMTI3M0g1OTMuMzM2VjU4LjE3NDZDNTkzLjMzNiA1Ny4wNzczIDU5My42NzkgNTYuMTg1OCA1OTQuMzY0IDU1''@;'; + put 'put ''LjQ5OTlDNTk1LjE4NyA1NC42NzcgNTk2LjE0OCA1NC4yNjU1IDU5Ny4yNDUgNTQuMjY1NUg2MTMuMjkzQzYxNS44OTkgNTQuMjY1NSA2MTcuMjAyIDU1LjU2ODUgNjE3LjIwMiA1OC4xNzQ2Vjg1LjEyNzNINjM1LjMwOEM2MzYuNDA1IDg1LjEyNzMgNjM3LjI5NyA4NS41Mzg4IDYzNy45ODIg''@;'; + put 'put ''ODYuMzYxOEM2MzguNjY4IDg3LjA0NzYgNjM5LjAxMSA4Ny45MzkxIDYzOS4wMTEgODkuMDM2NVYxMDQuMjYyQzYzOS4wMTEgMTA1LjM1OSA2MzguNjY4IDEwNi4yNSA2MzcuOTgyIDEwNi45MzZDNjM3LjI5NyAxMDcuNjIyIDYzNi40MDUgMTA3Ljk2NSA2MzUuMzA4IDEwNy45NjVINjE3LjIw''@;'; + put 'put ''MlYxODQuMDkxQzYxNy4yMDIgMTg2LjY5NyA2MTUuODk5IDE4OCA2MTMuMjkzIDE4OEg1OTcuMjQ1QzU5Ni4xNDggMTg4IDU5NS4xODcgMTg3LjY1NyA1OTQuMzY0IDE4Ni45NzFDNTkzLjY3OSAxODYuMTQ4IDU5My4zMzYgMTg1LjE4OCA1OTMuMzM2IDE4NC4wOTFWMTA3Ljk2NUg1NzguMTEx''@;'; + put 'put ''QzU3Ny4wMTMgMTA3Ljk2NSA1NzYuMTIyIDEwNy42MjIgNTc1LjQzNiAxMDYuOTM2QzU3NC43NSAxMDYuMjUgNTc0LjQwNyAxMDUuMzU5IDU3NC40MDcgMTA0LjI2MlY4OS4wMzY1Wk03MjkuNjkzIDE3Ny45MThDNzI1Ljk5IDE4MC42NjIgNzIxLjczOCAxODMuMTMxIDcxNi45MzcgMTg1LjMy''@;'; + put 'put ''NUM3MTIuMTM3IDE4Ny4zODMgNzA3LjMzNiAxODguNDExIDcwMi41MzUgMTg4LjQxMUM2OTUuNDAzIDE4OC40MTEgNjg4LjgxOSAxODcuMTA4IDY4Mi43ODQgMTg0LjUwMkM2NzYuNzQ4IDE4MS44OTYgNjcxLjUzNiAxNzguMjYxIDY2Ny4xNDcgMTczLjU5OEM2NjIuODk1IDE2OC45MzQgNjU5''@;'; + put 'put ''LjUzNCAxNjMuNDQ4IDY1Ny4wNjUgMTU3LjEzOEM2NTQuNTk2IDE1MC44MjkgNjUzLjM2MiAxNDMuOTcgNjUzLjM2MiAxMzYuNTY0QzY1My4zNjIgMTI5LjQzMSA2NTQuNjY1IDEyMi43NzkgNjU3LjI3MSAxMTYuNjA2QzY1OS44NzcgMTEwLjI5NyA2NjMuNDQzIDEwNC44MSA2NjcuOTcgMTAw''@;'; + put 'put ''LjE0N0M2NzIuNDk2IDk1LjM0NiA2NzcuNzA4IDkxLjU3NCA2ODMuNjA3IDg4LjgzMDdDNjg5LjY0MiA4Ni4wODc0IDY5Ni4wODggODQuNzE1OCA3MDIuOTQ3IDg0LjcxNThDNzA3Ljc0NyA4NC43MTU4IDcxMi40NzkgODUuODEzMSA3MTcuMTQzIDg4LjAwNzdDNzIxLjgwNyA5MC4wNjUyIDcy''@;'; + put 'put ''NS45OSA5Mi40NjU1IDcyOS42OTMgOTUuMjA4OFY4OS4wMzY1QzcyOS42OTMgODcuOTM5MSA3MzAuMDM2IDg3LjA0NzYgNzMwLjcyMiA4Ni4zNjE4QzczMS41NDUgODUuNTM4OCA3MzIuNTA1IDg1LjEyNzMgNzMzLjYwMyA4NS4xMjczSDc0OS42NTFDNzUyLjI1NyA4NS4xMjczIDc1My41NiA4''@;'; + put 'put ''Ni40MzAzIDc1My41NiA4OS4wMzY1VjE4NC4wOTFDNzUzLjU2IDE4Ni42OTcgNzUyLjI1NyAxODggNzQ5LjY1MSAxODhINzMzLjYwM0M3MzIuNTA1IDE4OCA3MzEuNTQ1IDE4Ny42NTcgNzMwLjcyMiAxODYuOTcxQzczMC4wMzYgMTg2LjE0OCA3MjkuNjkzIDE4NS4xODggNzI5LjY5MyAxODQu''@;'; + put 'put ''MDkxVjE3Ny45MThaTTY3OC4yNTcgMTM2LjU2NEM2NzguMjU3IDE0MC4yNjcgNjc4Ljk0MyAxNDMuNzY1IDY4MC4zMTUgMTQ3LjA1N0M2ODEuNjg2IDE1MC4yMTEgNjgzLjUzOCAxNTMuMDIzIDY4NS44NyAxNTUuNDkyQzY4OC4yMDEgMTU3Ljk2MSA2OTAuODc2IDE1OS45NSA2OTMuODk0IDE2''@;'; + put 'put ''MS40NTlDNjk3LjA0OSAxNjIuODMgNzAwLjM0IDE2My41MTYgNzAzLjc3IDE2My41MTZDNzA3LjQ3MyAxNjMuNTE2IDcxMC44MzMgMTYyLjgzIDcxMy44NTEgMTYxLjQ1OUM3MTYuODY5IDE1OS45NSA3MTkuNDc1IDE1Ny45NjEgNzIxLjY2OSAxNTUuNDkyQzcyNC4wMDEgMTUzLjAyMyA3MjUu''@;'; + put 'put ''Nzg0IDE1MC4yMTEgNzI3LjAxOSAxNDcuMDU3QzcyOC4yNTMgMTQzLjc2NSA3MjguODcgMTQwLjI2NyA3MjguODcgMTM2LjU2NEM3MjguODcgMTMyLjg2IDcyOC4yNTMgMTI5LjQzMSA3MjcuMDE5IDEyNi4yNzZDNzI1Ljc4NCAxMjIuOTg0IDcyNC4wMDEgMTIwLjEwNCA3MjEuNjY5IDExNy42''@;'; + put 'put ''MzVDNzE5LjQ3NSAxMTUuMTY2IDcxNi44NjkgMTEzLjI0NiA3MTMuODUxIDExMS44NzRDNzEwLjgzMyAxMTAuMzY1IDcwNy40NzMgMTA5LjYxMSA3MDMuNzcgMTA5LjYxMUM3MDAuMzQgMTA5LjYxMSA2OTcuMDQ5IDExMC4zNjUgNjkzLjg5NCAxMTEuODc0QzY5MC44NzYgMTEzLjI0NiA2ODgu''@;'; + put 'put ''MjAxIDExNS4xNjYgNjg1Ljg3IDExNy42MzVDNjgzLjUzOCAxMjAuMTA0IDY4MS42ODYgMTIyLjk4NCA2ODAuMzE1IDEyNi4yNzZDNjc4Ljk0MyAxMjkuNDMxIDY3OC4yNTcgMTMyLjg2IDY3OC4yNTcgMTM2LjU2NFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTg3My4yMDYgNzQuMjIy''@;'; + put 'put ''OEM4NzIuNjU3IDc1LjA0NTggODcxLjkwMyA3NS41MjU4IDg3MC45NDMgNzUuNjYzQzg2OS45ODIgNzUuODAwMiA4NjkuMDIyIDc1LjU5NDQgODY4LjA2MiA3NS4wNDU4Qzg2NC45MDcgNzMuMTI1NSA4NjEuMTM1IDcxLjQ3OTUgODU2Ljc0NiA3MC4xMDc5Qzg1Mi4zNTcgNjguNzM2MiA4NDcu''@;'; + put 'put ''ODk5IDY4LjExOSA4NDMuMzczIDY4LjI1NjJDODM3LjQ3NSA2OC4yNTYyIDgzMS45ODggNjkuNTU5MiA4MjYuOTEzIDcyLjE2NTNDODIxLjk3NSA3NC42MzQzIDgxNy42NTQgNzguMDYzNCA4MTMuOTUxIDgyLjQ1MjZDODEwLjI0OCA4Ni43MDQ3IDgwNy4zNjcgOTEuNzExMSA4MDUuMzEgOTcu''@;'; + put 'put ''NDcyQzgwMy4yNTIgMTAzLjIzMyA4MDIuMjkyIDEwOS40MDUgODAyLjQyOSAxMTUuOTg5QzgwMi41NjYgMTIyLjg0NyA4MDMuNTk1IDEyOS4yMjUgODA1LjUxNSAxMzUuMTIzQzgwNy41NzMgMTQwLjg4NCA4MTAuMzg1IDE0NS44OTEgODEzLjk1MSAxNTAuMTQzQzgxNy41MTcgMTU0LjM5NSA4''@;'; + put 'put ''MjEuODM4IDE1Ny43NTUgODI2LjkxMyAxNjAuMjI0QzgzMS45ODggMTYyLjU1NiA4MzcuNjggMTYzLjcyMiA4NDMuOTkgMTYzLjcyMkM4NTAuMDI1IDE2My41ODUgODU1LjUxMiAxNjIuNTU2IDg2MC40NSAxNjAuNjM2Qzg2NS41MjUgMTU4LjcxNiA4NzAuNTMxIDE1NS45NzIgODc1LjQ2OSAx''@;'; + put 'put ''NTIuNDA2Qzg3Ni40MjkgMTUxLjcyIDg3Ny40NTggMTUxLjUxNCA4NzguNTU1IDE1MS43ODlDODc5LjY1MiAxNTEuOTI2IDg4MC41NDQgMTUyLjQ3NSA4ODEuMjMgMTUzLjQzNUw4OTEuMTA2IDE2OC4yNDhDODkyLjM0IDE3MC4xNjkgODkxLjk5NyAxNzEuODgzIDg5MC4wNzcgMTczLjM5MkM4''@;'; + put 'put ''ODIuNTMzIDE3OS4xNTMgODc1LjE5NSAxODMuMzM2IDg2OC4wNjIgMTg1Ljk0M0M4NjAuOTMgMTg4LjU0OSA4NTIuOTc0IDE4OS44NTIgODQ0LjE5NiAxODkuODUyQzgzMy42MzQgMTg5Ljk4OSA4MjQuMTAxIDE4OC4zNDMgODE1LjU5NyAxODQuOTE0QzgwNy4yMyAxODEuMzQ4IDgwMC4wMjkg''@;'; + put 'put ''MTc2LjM0MSA3OTMuOTk0IDE2OS44OTRDNzg4LjA5NiAxNjMuMzExIDc4My41MDEgMTU1LjQ5MiA3ODAuMjA5IDE0Ni40MzlDNzc3LjA1NCAxMzcuMzg3IDc3NS40MDggMTI3LjM3NCA3NzUuMjcxIDExNi40MDFDNzc1LjEzNCAxMDcuMDczIDc3Ni41NzQgOTguMDIwNyA3NzkuNTkyIDg5LjI0''@;'; + put 'put ''MjJDNzgyLjc0NiA4MC4zMjY2IDc4Ny4yMDQgNzIuMzcxMSA3OTIuOTY1IDY1LjM3NTdDNzk4LjcyNiA1OC4zODA0IDgwNS43MjEgNTIuNzU2NyA4MTMuOTUxIDQ4LjUwNDZDODIyLjE4MSA0NC4yNTI1IDgzMS40MzkgNDIuMTI2NSA4NDEuNzI3IDQyLjEyNjVDODQ4LjcyMiA0MS45ODkzIDg1''@;'; + put 'put ''NS41OCA0Mi44MTIzIDg2Mi4zMDEgNDQuNTk1NEM4NjkuMTU5IDQ2LjM3ODYgODc1Ljg4IDQ5LjY3MDUgODgyLjQ2NCA1NC40NzEyQzg4My40MjQgNTUuMTU3IDg4My45NzMgNTYuMDQ4NiA4ODQuMTEgNTcuMTQ1OUM4ODQuMjQ3IDU4LjEwNjEgODgzLjk3MyA1OS4wNjYyIDg4My4yODcgNjAu''@;'; + put 'put ''MDI2M0w4NzMuMjA2IDc0LjIyMjhaTTkwNi4yMTIgMTM2LjU2NEM5MDYuMjEyIDEyOS4yOTQgOTA3LjUxNSAxMjIuNTA0IDkxMC4xMjEgMTE2LjE5NUM5MTIuNzI3IDEwOS44ODUgOTE2LjIyNSAxMDQuMzk5IDkyMC42MTQgOTkuNzM1MkM5MjUuMTQgOTUuMDcxNyA5MzAuNDIxIDkxLjQzNjgg''@;'; + put 'put ''OTM2LjQ1NiA4OC44MzA3Qzk0Mi40OTIgODYuMDg3NCA5NDkuMDA3IDg0LjcxNTggOTU2LjAwMiA4NC43MTU4Qzk2Mi45OTggODQuNzE1OCA5NjkuNDQ0IDg2LjA4NzQgOTc1LjM0MiA4OC44MzA3Qzk4MS4zNzcgOTEuNDM2OCA5ODYuNTkgOTUuMDcxNyA5OTAuOTc5IDk5LjczNTJDOTk1LjUw''@;'; + put 'put ''NSAxMDQuMzk5IDk5OS4wMDMgMTA5Ljg4NSAxMDAxLjQ3IDExNi4xOTVDMTAwNC4wOCAxMjIuNTA0IDEwMDUuMzggMTI5LjI5NCAxMDA1LjM4IDEzNi41NjRDMTAwNS4zOCAxNDMuODMzIDEwMDQuMDggMTUwLjYyMyAxMDAxLjQ3IDE1Ni45MzJDOTk5LjAwMyAxNjMuMjQyIDk5NS41MDUgMTY4''@;'; + put 'put ''LjcyOSA5OTAuOTc5IDE3My4zOTJDOTg2LjU5IDE3OC4wNTYgOTgxLjM3NyAxODEuNzU5IDk3NS4zNDIgMTg0LjUwMkM5NjkuMzA3IDE4Ny4xMDggOTYyLjc5MiAxODguNDExIDk1NS43OTYgMTg4LjQxMUM5NDguODAxIDE4OC40MTEgOTQyLjI4NiAxODcuMTA4IDkzNi4yNTEgMTg0LjUwMkM5''@;'; + put 'put ''MzAuMjE1IDE4MS43NTkgOTI0LjkzNSAxNzguMDU2IDkyMC40MDggMTczLjM5MkM5MTYuMDE5IDE2OC43MjkgOTEyLjUyMSAxNjMuMjQyIDkwOS45MTUgMTU2LjkzMkM5MDcuNDQ2IDE1MC42MjMgOTA2LjIxMiAxNDMuODMzIDkwNi4yMTIgMTM2LjU2NFpNOTMxLjEwNyAxMzYuNTY0QzkzMS4x''@;'; + put 'put ''MDcgMTQwLjQwNCA5MzEuNzI0IDE0NC4wMzkgOTMyLjk1OSAxNDcuNDY4QzkzNC4xOTMgMTUwLjc2IDkzNS45MDggMTUzLjY0MSA5MzguMTAyIDE1Ni4xMDlDOTQwLjI5NyAxNTguNTc4IDk0Mi45MDMgMTYwLjU2NyA5NDUuOTIxIDE2Mi4wNzZDOTQ4LjkzOCAxNjMuNDQ4IDk1Mi4yMyAxNjQu''@;'; + put 'put ''MTM0IDk1NS43OTYgMTY0LjEzNEM5NTkuMzYzIDE2NC4xMzQgOTYyLjY1NSAxNjMuNDQ4IDk2NS42NzIgMTYyLjA3NkM5NjguODI3IDE2MC41NjcgOTcxLjUwMiAxNTguNTc4IDk3My42OTYgMTU2LjEwOUM5NzUuODkxIDE1My42NDEgOTc3LjYwNSAxNTAuNzYgOTc4Ljg0IDE0Ny40NjhDOTgw''@;'; + put 'put ''LjA3NCAxNDQuMDM5IDk4MC42OTIgMTQwLjQwNCA5ODAuNjkyIDEzNi41NjRDOTgwLjY5MiAxMzIuNzIzIDk4MC4wNzQgMTI5LjE1NyA5NzguODQgMTI1Ljg2NUM5NzcuNjA1IDEyMi40MzYgOTc1Ljg5MSAxMTkuNDg3IDk3My42OTYgMTE3LjAxOEM5NzEuNTAyIDExNC41NDkgOTY4LjgyNyAx''@;'; + put 'put ''MTIuNjI5IDk2NS42NzIgMTExLjI1N0M5NjIuNjU1IDEwOS43NDggOTU5LjM2MyAxMDguOTk0IDk1NS43OTYgMTA4Ljk5NEM5NTIuMjMgMTA4Ljk5NCA5NDguOTM4IDEwOS43NDggOTQ1LjkyMSAxMTEuMjU3Qzk0Mi45MDMgMTEyLjYyOSA5NDAuMjk3IDExNC41NDkgOTM4LjEwMiAxMTcuMDE4''@;'; + put 'put ''QzkzNS45MDggMTE5LjQ4NyA5MzQuMTkzIDEyMi40MzYgOTMyLjk1OSAxMjUuODY1QzkzMS43MjQgMTI5LjE1NyA5MzEuMTA3IDEzMi43MjMgOTMxLjEwNyAxMzYuNTY0Wk0xMDUwLjkgMTg0LjA5MUMxMDUwLjkgMTg2LjY5NyAxMDQ5LjU5IDE4OCAxMDQ2Ljk5IDE4OEgxMDMwLjk0QzEwMjku''@;'; + put 'put ''ODQgMTg4IDEwMjguODggMTg3LjY1NyAxMDI4LjA2IDE4Ni45NzFDMTAyNy4zNyAxODYuMTQ4IDEwMjcuMDMgMTg1LjE4OCAxMDI3LjAzIDE4NC4wOTFWODkuMDM2NUMxMDI3LjAzIDg3LjkzOTEgMTAyNy4zNyA4Ny4wNDc2IDEwMjguMDYgODYuMzYxOEMxMDI4Ljg4IDg1LjUzODggMTAyOS44''@;'; + put 'put ''NCA4NS4xMjczIDEwMzAuOTQgODUuMTI3M0gxMDQ2Ljk5QzEwNDkuNTkgODUuMTI3MyAxMDUwLjkgODYuNDMwMyAxMDUwLjkgODkuMDM2NVY5Ni42NDlDMTA1NC44OCA5My4zNTcxIDEwNTkuNDcgOTAuNTQ1MyAxMDY0LjY4IDg4LjIxMzVDMTA2OS44OSA4NS44ODE3IDEwNzUuMDQgODQuNzE1''@;'; + put 'put ''OCAxMDgwLjExIDg0LjcxNThDMTA4NC45MSA4NC43MTU4IDEwODkuMzcgODUuNjA3NCAxMDkzLjQ5IDg3LjM5MDVDMTA5Ny42IDg5LjAzNjUgMTEwMS4xIDkxLjQzNjggMTEwMy45OCA5NC41OTE2QzExMDcgOTcuNjA5MiAxMTA5LjMzIDEwMS4xNzUgMTExMC45OCAxMDUuMjlDMTExMi42MiAx''@;'; + put 'put ''MDkuNDA1IDExMTMuNDQgMTEzLjkzMiAxMTEzLjQ0IDExOC44N1YxODQuMDkxQzExMTMuNDQgMTg2LjY5NyAxMTEyLjE0IDE4OCAxMTA5LjUzIDE4OEgxMDkzLjQ5QzEwOTIuMzkgMTg4IDEwOTEuNDMgMTg3LjY1NyAxMDkwLjYxIDE4Ni45NzFDMTA4OS45MiAxODYuMTQ4IDEwODkuNTggMTg1''@;'; + put 'put ''LjE4OCAxMDg5LjU4IDE4NC4wOTFWMTI2LjY4OEMxMDg5LjU4IDEyMS4wNjQgMTA4OC4yNyAxMTYuNzQ0IDEwODUuNjcgMTEzLjcyNkMxMDgzLjA2IDExMC41NzEgMTA3OS4zNiAxMDguOTk0IDEwNzQuNTYgMTA4Ljk5NEMxMDcxLjU0IDEwOC45OTQgMTA2OC41OSAxMDkuNjExIDEwNjUuNzEg''@;'; + put 'put ''MTEwLjg0NUMxMDYyLjk3IDExMS45NDMgMTA2MC41IDExMy41MiAxMDU4LjMgMTE1LjU3OEMxMDU2LjI1IDExNy40OTggMTA1NC41MyAxMTkuODMgMTA1My4xNiAxMjIuNTczQzEwNTEuOTMgMTI1LjMxNiAxMDUxLjMxIDEyOC4xOTcgMTA1MS4zMSAxMzEuMjE0TDEwNTAuOSAxODQuMDkxWk0x''@;'; + put 'put ''MTI3Ljg3IDg5LjAzNjVDMTEyNy44NyA4Ny45MzkxIDExMjguMjEgODcuMDQ3NiAxMTI4LjkgODYuMzYxOEMxMTI5LjU4IDg1LjUzODggMTEzMC40OCA4NS4xMjczIDExMzEuNTcgODUuMTI3M0gxMTQ2LjhWNTguMTc0NkMxMTQ2LjggNTcuMDc3MyAxMTQ3LjE0IDU2LjE4NTggMTE0Ny44MyA1''@;'; + put 'put ''NS40OTk5QzExNDguNjUgNTQuNjc3IDExNDkuNjEgNTQuMjY1NSAxMTUwLjcxIDU0LjI2NTVIMTE2Ni43NkMxMTY5LjM2IDU0LjI2NTUgMTE3MC42NyA1NS41Njg1IDExNzAuNjcgNTguMTc0NlY4NS4xMjczSDExODguNzdDMTE4OS44NyA4NS4xMjczIDExOTAuNzYgODUuNTM4OCAxMTkxLjQ1''@;'; + put 'put ''IDg2LjM2MThDMTE5Mi4xMyA4Ny4wNDc2IDExOTIuNDcgODcuOTM5MSAxMTkyLjQ3IDg5LjAzNjVWMTA0LjI2MkMxMTkyLjQ3IDEwNS4zNTkgMTE5Mi4xMyAxMDYuMjUgMTE5MS40NSAxMDYuOTM2QzExOTAuNzYgMTA3LjYyMiAxMTg5Ljg3IDEwNy45NjUgMTE4OC43NyAxMDcuOTY1SDExNzAu''@;'; + put 'put ''NjdWMTg0LjA5MUMxMTcwLjY3IDE4Ni42OTcgMTE2OS4zNiAxODggMTE2Ni43NiAxODhIMTE1MC43MUMxMTQ5LjYxIDE4OCAxMTQ4LjY1IDE4Ny42NTcgMTE0Ny44MyAxODYuOTcxQzExNDcuMTQgMTg2LjE0OCAxMTQ2LjggMTg1LjE4OCAxMTQ2LjggMTg0LjA5MVYxMDcuOTY1SDExMzEuNTdD''@;'; + put 'put ''MTEzMC40OCAxMDcuOTY1IDExMjkuNTggMTA3LjYyMiAxMTI4LjkgMTA2LjkzNkMxMTI4LjIxIDEwNi4yNSAxMTI3Ljg3IDEwNS4zNTkgMTEyNy44NyAxMDQuMjYyVjg5LjAzNjVaTTEyNzMuMjggMTA4LjE3MUMxMjcyLjg3IDEwOS4yNjggMTI3Mi4xOCAxMTAuMDIyIDEyNzEuMjIgMTEwLjQz''@;'; + put 'put ''NEMxMjcwLjI2IDExMC44NDUgMTI2OS4yMyAxMTAuNzc3IDEyNjguMTQgMTEwLjIyOEMxMjY3LjA0IDEwOS42OCAxMjY1LjY3IDEwOS4yIDEyNjQuMDIgMTA4Ljc4OEMxMjYyLjUxIDEwOC4zNzcgMTI2MC44NyAxMDguMTcxIDEyNTkuMDggMTA4LjE3MUMxMjU2LjA3IDEwOC4xNzEgMTI1My4x''@;'; + put 'put ''OSAxMDguNzg4IDEyNTAuNDQgMTEwLjAyMkMxMjQ3LjcgMTExLjI1NyAxMjQ1LjIzIDExMi45NzIgMTI0My4wNCAxMTUuMTY2QzEyNDAuOTggMTE3LjIyNCAxMjM5LjMzIDExOS42OTMgMTIzOC4xIDEyMi41NzNDMTIzNi44NiAxMjUuMzE2IDEyMzYuMjUgMTI4LjE5NyAxMjM2LjI1IDEzMS4y''@;'; + put 'put ''MTRMMTIzNS44NCAxODQuMDkxQzEyMzUuODQgMTg1LjE4OCAxMjM1LjQ5IDE4Ni4xNDggMTIzNC44MSAxODYuOTcxQzEyMzQuMTIgMTg3LjY1NyAxMjMzLjIzIDE4OCAxMjMyLjEzIDE4OEgxMjE1Ljg4QzEyMTQuNzggMTg4IDEyMTMuODIgMTg3LjY1NyAxMjEzIDE4Ni45NzFDMTIxMi4zMSAx''@;'; + put 'put ''ODYuMTQ4IDEyMTEuOTcgMTg1LjE4OCAxMjExLjk3IDE4NC4wOTFWODkuMDM2NUMxMjExLjk3IDg3LjkzOTEgMTIxMi4zMSA4Ny4wNDc2IDEyMTMgODYuMzYxOEMxMjEzLjgyIDg1LjUzODggMTIxNC43OCA4NS4xMjczIDEyMTUuODggODUuMTI3M0gxMjMyLjEzQzEyMzMuMjMgODUuMTI3MyAx''@;'; + put 'put ''MjM0LjEyIDg1LjUzODggMTIzNC44MSA4Ni4zNjE4QzEyMzUuNDkgODcuMDQ3NiAxMjM1Ljg0IDg3LjkzOTEgMTIzNS44NCA4OS4wMzY1Vjk0LjU5MTZDMTIzOS44MSA5MS43MTExIDEyNDQuMDcgODkuMzc5NCAxMjQ4LjU5IDg3LjU5NjJDMTI1My4xMiA4NS42NzU5IDEyNTcuOTkgODQuNzE1''@;'; + put 'put ''OCAxMjYzLjIgODQuNzE1OEMxMjY4LjU1IDg0LjcxNTggMTI3My4yMSA4NS43NDQ1IDEyNzcuMTkgODcuODAyQzEyNzkuMTEgODkuMDM2NSAxMjc5LjczIDkwLjYxMzggMTI3OS4wNCA5Mi41MzQxTDEyNzMuMjggMTA4LjE3MVpNMTI4NS4zMyAxMzYuNTY0QzEyODUuMzMgMTI5LjI5NCAxMjg2''@;'; + put 'put ''LjYzIDEyMi41MDQgMTI4OS4yNCAxMTYuMTk1QzEyOTEuODUgMTA5Ljg4NSAxMjk1LjM0IDEwNC4zOTkgMTI5OS43MyA5OS43MzUyQzEzMDQuMjYgOTUuMDcxNyAxMzA5LjU0IDkxLjQzNjggMTMxNS41NyA4OC44MzA3QzEzMjEuNjEgODYuMDg3NCAxMzI4LjEyIDg0LjcxNTggMTMzNS4xMiA4''@;'; + put 'put ''NC43MTU4QzEzNDIuMTIgODQuNzE1OCAxMzQ4LjU2IDg2LjA4NzQgMTM1NC40NiA4OC44MzA3QzEzNjAuNSA5MS40MzY4IDEzNjUuNzEgOTUuMDcxNyAxMzcwLjEgOTkuNzM1MkMxMzc0LjYyIDEwNC4zOTkgMTM3OC4xMiAxMDkuODg1IDEzODAuNTkgMTE2LjE5NUMxMzgzLjIgMTIyLjUwNCAx''@;'; + put 'put ''Mzg0LjUgMTI5LjI5NCAxMzg0LjUgMTM2LjU2NEMxMzg0LjUgMTQzLjgzMyAxMzgzLjIgMTUwLjYyMyAxMzgwLjU5IDE1Ni45MzJDMTM3OC4xMiAxNjMuMjQyIDEzNzQuNjIgMTY4LjcyOSAxMzcwLjEgMTczLjM5MkMxMzY1LjcxIDE3OC4wNTYgMTM2MC41IDE4MS43NTkgMTM1NC40NiAxODQu''@;'; + put 'put ''NTAyQzEzNDguNDMgMTg3LjEwOCAxMzQxLjkxIDE4OC40MTEgMTMzNC45MSAxODguNDExQzEzMjcuOTIgMTg4LjQxMSAxMzIxLjQgMTg3LjEwOCAxMzE1LjM3IDE4NC41MDJDMTMwOS4zMyAxODEuNzU5IDEzMDQuMDUgMTc4LjA1NiAxMjk5LjUzIDE3My4zOTJDMTI5NS4xNCAxNjguNzI5IDEy''@;'; + put 'put ''OTEuNjQgMTYzLjI0MiAxMjg5LjAzIDE1Ni45MzJDMTI4Ni41NiAxNTAuNjIzIDEyODUuMzMgMTQzLjgzMyAxMjg1LjMzIDEzNi41NjRaTTEzMTAuMjMgMTM2LjU2NEMxMzEwLjIzIDE0MC40MDQgMTMxMC44NCAxNDQuMDM5IDEzMTIuMDggMTQ3LjQ2OEMxMzEzLjMxIDE1MC43NiAxMzE1LjAz''@;'; + put 'put ''IDE1My42NDEgMTMxNy4yMiAxNTYuMTA5QzEzMTkuNDIgMTU4LjU3OCAxMzIyLjAyIDE2MC41NjcgMTMyNS4wNCAxNjIuMDc2QzEzMjguMDYgMTYzLjQ0OCAxMzMxLjM1IDE2NC4xMzQgMTMzNC45MSAxNjQuMTM0QzEzMzguNDggMTY0LjEzNCAxMzQxLjc3IDE2My40NDggMTM0NC43OSAxNjIu''@;'; + put 'put ''MDc2QzEzNDcuOTUgMTYwLjU2NyAxMzUwLjYyIDE1OC41NzggMTM1Mi44MSAxNTYuMTA5QzEzNTUuMDEgMTUzLjY0MSAxMzU2LjcyIDE1MC43NiAxMzU3Ljk2IDE0Ny40NjhDMTM1OS4xOSAxNDQuMDM5IDEzNTkuODEgMTQwLjQwNCAxMzU5LjgxIDEzNi41NjRDMTM1OS44MSAxMzIuNzIzIDEz''@;'; + put 'put ''NTkuMTkgMTI5LjE1NyAxMzU3Ljk2IDEyNS44NjVDMTM1Ni43MiAxMjIuNDM2IDEzNTUuMDEgMTE5LjQ4NyAxMzUyLjgxIDExNy4wMThDMTM1MC42MiAxMTQuNTQ5IDEzNDcuOTUgMTEyLjYyOSAxMzQ0Ljc5IDExMS4yNTdDMTM0MS43NyAxMDkuNzQ4IDEzMzguNDggMTA4Ljk5NCAxMzM0Ljkx''@;'; + put 'put ''IDEwOC45OTRDMTMzMS4zNSAxMDguOTk0IDEzMjguMDYgMTA5Ljc0OCAxMzI1LjA0IDExMS4yNTdDMTMyMi4wMiAxMTIuNjI5IDEzMTkuNDIgMTE0LjU0OSAxMzE3LjIyIDExNy4wMThDMTMxNS4wMyAxMTkuNDg3IDEzMTMuMzEgMTIyLjQzNiAxMzEyLjA4IDEyNS44NjVDMTMxMC44NCAxMjku''@;'; + put 'put ''MTU3IDEzMTAuMjMgMTMyLjcyMyAxMzEwLjIzIDEzNi41NjRaTTE0MDguMjEgMzcuMzk0NEMxNDA4LjIxIDM2LjI5NyAxNDA4LjU1IDM1LjQwNTUgMTQwOS4yNCAzNC43MTk3QzE0MTAuMDYgMzQuMDMzOCAxNDExLjAyIDMzLjY5MDkgMTQxMi4xMiAzMy42OTA5SDE0MjguMTZDMTQyOS4yNiAz''@;'; + put 'put ''My42OTA5IDE0MzAuMTUgMzQuMDMzOCAxNDMwLjg0IDM0LjcxOTdDMTQzMS42NiAzNS40MDU1IDE0MzIuMDcgMzYuMjk3IDE0MzIuMDcgMzcuMzk0NFYxODQuMDkxQzE0MzIuMDcgMTg2LjY5NyAxNDMwLjc3IDE4OCAxNDI4LjE2IDE4OEgxNDEyLjEyQzE0MTEuMDIgMTg4IDE0MTAuMDYgMTg3''@;'; + put 'put ''LjY1NyAxNDA5LjI0IDE4Ni45NzFDMTQwOC41NSAxODYuMTQ4IDE0MDguMjEgMTg1LjE4OCAxNDA4LjIxIDE4NC4wOTFWMzcuMzk0NFpNMTQ2MyAzNy4zOTQ0QzE0NjMgMzYuMjk3IDE0NjMuMzUgMzUuNDA1NSAxNDY0LjAzIDM0LjcxOTdDMTQ2NC44NSAzNC4wMzM4IDE0NjUuODEgMzMuNjkw''@;'; + put 'put ''OSAxNDY2LjkxIDMzLjY5MDlIMTQ4Mi45NkMxNDg0LjA2IDMzLjY5MDkgMTQ4NC45NSAzNC4wMzM4IDE0ODUuNjMgMzQuNzE5N0MxNDg2LjQ2IDM1LjQwNTUgMTQ4Ni44NyAzNi4yOTcgMTQ4Ni44NyAzNy4zOTQ0VjE4NC4wOTFDMTQ4Ni44NyAxODYuNjk3IDE0ODUuNTcgMTg4IDE0ODIuOTYg''@;'; + put 'put ''MTg4SDE0NjYuOTFDMTQ2NS44MSAxODggMTQ2NC44NSAxODcuNjU3IDE0NjQuMDMgMTg2Ljk3MUMxNDYzLjM1IDE4Ni4xNDggMTQ2MyAxODUuMTg4IDE0NjMgMTg0LjA5MVYzNy4zOTQ0Wk0xNTM3Ljc2IDE0OC4wODVDMTUzOS42OCAxNTIuODg2IDE1NDIuNTYgMTU2Ljc5NSAxNTQ2LjQgMTU5''@;'; + put 'put ''LjgxM0MxNTUwLjM3IDE2Mi44MyAxNTU0LjkgMTY0LjMzOSAxNTU5Ljk4IDE2NC4zMzlDMTU2My42OCAxNjQuMzM5IDE1NjcuMjUgMTYzLjcyMiAxNTcwLjY3IDE2Mi40ODhDMTU3NC4xIDE2MS4yNTMgMTU3Ni45OCAxNTkuNTM5IDE1NzkuMzIgMTU3LjM0NEMxNTgwLjE0IDE1Ni42NTggMTU4''@;'; + put 'put ''MS4wMyAxNTYuMzg0IDE1ODEuOTkgMTU2LjUyMUMxNTgzLjA5IDE1Ni41MjEgMTU4My45OCAxNTYuODY0IDE1ODQuNjcgMTU3LjU1TDE1OTYuMzkgMTY4LjY2QzE1OTcuMDggMTY5LjM0NiAxNTk3LjQyIDE3MC4yMzcgMTU5Ny40MiAxNzEuMzM1QzE1OTcuNDIgMTcyLjI5NSAxNTk3LjA4IDE3''@;'; + put 'put ''My4xMTggMTU5Ni4zOSAxNzMuODA0QzE1OTEuODcgMTc4LjYwNCAxNTg2LjUyIDE4Mi4yMzkgMTU4MC4zNCAxODQuNzA4QzE1NzQuMTcgMTg3LjE3NyAxNTY3LjM4IDE4OC40MTEgMTU1OS45OCAxODguNDExQzE1NTMuMTIgMTg4LjQxMSAxNTQ2Ljc0IDE4Ny4xNzcgMTU0MC44NCAxODQuNzA4''@;'; + put 'put ''QzE1MzUuMDggMTgyLjIzOSAxNTMwLjAxIDE3OC43NDEgMTUyNS42MiAxNzQuMjE1QzE1MjAuODIgMTY5LjQxNCAxNTE3LjExIDE2My43MjIgMTUxNC41MSAxNTcuMTM4QzE1MTEuOSAxNTAuNTU0IDE1MTAuNiAxNDMuNTU5IDE1MTAuNiAxMzYuMTUyQzE1MTAuNiAxMjkuMDIgMTUxMS45IDEy''@;'; + put 'put ''Mi4zNjcgMTUxNC41MSAxMTYuMTk1QzE1MTcuMTEgMTA5Ljg4NSAxNTIwLjYxIDEwNC4zOTkgMTUyNSA5OS43MzUyQzE1MjkuNTMgOTUuMDcxNyAxNTM0LjgxIDkxLjQzNjggMTU0MC44NCA4OC44MzA3QzE1NDYuODggODYuMDg3NCAxNTUzLjMyIDg0LjcxNTggMTU2MC4xOCA4NC43MTU4QzE1''@;'; + put 'put ''NjYuNDkgODQuNzE1OCAxNTcyLjMyIDg1Ljg4MTcgMTU3Ny42NyA4OC4yMTM1QzE1ODMuMTYgOTAuNTQ1MyAxNTg3Ljk2IDkzLjc2ODYgMTU5Mi4wNyA5Ny44ODM1QzE1OTMuODYgOTkuNTI5NSAxNTk1LjU3IDEwMS40NSAxNTk3LjIyIDEwMy42NDRDMTU5OC44NiAxMDUuODM5IDE2MDAuMyAx''@;'; + put 'put ''MDguMzc3IDE2MDEuNTQgMTExLjI1N0MxNjAyLjc3IDExNC4xMzcgMTYwMy43MyAxMTcuNDk4IDE2MDQuNDIgMTIxLjMzOEMxNjA1LjI0IDEyNS4wNDIgMTYwNS42NSAxMjkuMjk0IDE2MDUuNjUgMTM0LjA5NUMxNjA1LjY1IDEzNy4zODcgMTYwNS40NSAxNDAuOTUzIDE2MDUuMDMgMTQ0Ljc5''@;'; + put 'put ''M0MxNjA0Ljc2IDE0Ni45ODggMTYwMy41MyAxNDguMDg1IDE2MDEuMzMgMTQ4LjA4NUgxNTM3Ljc2Wk0xNTU5LjU2IDEwOC43ODhDMTU1My44IDEwOC43ODggMTU0OS4wNyAxMTAuMzY1IDE1NDUuMzcgMTEzLjUyQzE1NDEuNjYgMTE2LjY3NSAxNTM5LjA2IDEyMC41ODQgMTUzNy41NSAxMjUu''@;'; + put 'put ''MjQ4SDE1ODAuNzZDMTU3OS4yNSAxMjAuODU4IDE1NzYuNzEgMTE3LjAxOCAxNTczLjE0IDExMy43MjZDMTU2OS43MSAxMTAuNDM0IDE1NjUuMTkgMTA4Ljc4OCAxNTU5LjU2IDEwOC43ODhaTTE2ODguNTEgMTA4LjE3MUMxNjg4LjEgMTA5LjI2OCAxNjg3LjQxIDExMC4wMjIgMTY4Ni40NSAx''@;'; + put 'put ''MTAuNDM0QzE2ODUuNDkgMTEwLjg0NSAxNjg0LjQ2IDExMC43NzcgMTY4My4zNyAxMTAuMjI4QzE2ODIuMjcgMTA5LjY4IDE2ODAuOSAxMDkuMiAxNjc5LjI1IDEwOC43ODhDMTY3Ny43NCAxMDguMzc3IDE2NzYuMSAxMDguMTcxIDE2NzQuMzEgMTA4LjE3MUMxNjcxLjI5IDEwOC4xNzEgMTY2''@;'; + put 'put ''OC40MSAxMDguNzg4IDE2NjUuNjcgMTEwLjAyMkMxNjYyLjkzIDExMS4yNTcgMTY2MC40NiAxMTIuOTcyIDE2NTguMjYgMTE1LjE2NkMxNjU2LjIxIDExNy4yMjQgMTY1NC41NiAxMTkuNjkzIDE2NTMuMzMgMTIyLjU3M0MxNjUyLjA5IDEyNS4zMTYgMTY1MS40NyAxMjguMTk3IDE2NTEuNDcg''@;'; + put 'put ''MTMxLjIxNEwxNjUxLjA2IDE4NC4wOTFDMTY1MS4wNiAxODUuMTg4IDE2NTAuNzIgMTg2LjE0OCAxNjUwLjAzIDE4Ni45NzFDMTY0OS4zNSAxODcuNjU3IDE2NDguNDYgMTg4IDE2NDcuMzYgMTg4SDE2MzEuMTFDMTYzMC4wMSAxODggMTYyOS4wNSAxODcuNjU3IDE2MjguMjMgMTg2Ljk3MUMx''@;'; + put 'put ''NjI3LjU0IDE4Ni4xNDggMTYyNy4yIDE4NS4xODggMTYyNy4yIDE4NC4wOTFWODkuMDM2NUMxNjI3LjIgODcuOTM5MSAxNjI3LjU0IDg3LjA0NzYgMTYyOC4yMyA4Ni4zNjE4QzE2MjkuMDUgODUuNTM4OCAxNjMwLjAxIDg1LjEyNzMgMTYzMS4xMSA4NS4xMjczSDE2NDcuMzZDMTY0OC40NiA4''@;'; + put 'put ''NS4xMjczIDE2NDkuMzUgODUuNTM4OCAxNjUwLjAzIDg2LjM2MThDMTY1MC43MiA4Ny4wNDc2IDE2NTEuMDYgODcuOTM5MSAxNjUxLjA2IDg5LjAzNjVWOTQuNTkxNkMxNjU1LjA0IDkxLjcxMTEgMTY1OS4yOSA4OS4zNzk0IDE2NjMuODIgODcuNTk2MkMxNjY4LjM1IDg1LjY3NTkgMTY3My4y''@;'; + put 'put ''MiA4NC43MTU4IDE2NzguNDMgODQuNzE1OEMxNjgzLjc4IDg0LjcxNTggMTY4OC40NCA4NS43NDQ1IDE2OTIuNDIgODcuODAyQzE2OTQuMzQgODkuMDM2NSAxNjk0Ljk2IDkwLjYxMzggMTY5NC4yNyA5Mi41MzQxTDE2ODguNTEgMTA4LjE3MVoiIGZpbGw9IiM4RUM2M0YiLz4KPC9nPgo8ZGVm''@;'; + put 'put ''cz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMDVfNyI+CjxyZWN0IHdpZHRoPSIxNjg5IiBoZWlnaHQ9IjI0MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K'';'; + put 'run;'; + put '%sasjsout(SVG64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=datacontroller.cf179cd89d280a56-svg; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PHN2ZyB3aWR0aD0iMTY5MCIgaGVpZ2h0PSIyNDAiIHZpZXdCb3g9IjAgMCAxNjkwIDI0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwNV83KSI+CjxwYXRoIGQ9Ik0xMjQuOSA1NS4yMDAxQzEyOC4y''@;'; + put 'put ''IDU1LjYwMDEgMTMxLjQgNTUuOTAwMSAxMzQuNyA1Ni4zMDAxQzE0Mi42IDU3LjQwMDEgMTUwLjMgNTguOTAwMSAxNTcuNSA2Mi42MDAxQzE1OS42IDYzLjcwMDEgMTYxLjYgNjQuOTAwMSAxNjMuMSA2Ni44MDAxQzE2NS41IDY5LjYwMDEgMTY1LjQgNzIuNjAwMSAxNjMgNzUuNDAwMUMxNjAu''@;'; + put 'put ''NSA3OC4yMDAxIDE1Ny4zIDc5LjgwMDEgMTUzLjkgODEuMTAwMUMxNDYgODQuMjAwMSAxMzcuNyA4NS42MDAxIDEyOS4zIDg2LjMwMDFDMTE1LjYgODcuNDAwMSAxMDIuMSA4Ni45MDAxIDg4LjcgODMuNzAwMUM4NC4zIDgyLjcwMDEgODAgODEuMzAwMSA3Ni4xIDc5LjEwMDFDNzQuNiA3OC4z''@;'; + put 'put ''MDAxIDczLjIgNzcuMzAwMSA3MS45IDc2LjEwMDFDNjguMyA3Mi42MDAxIDY4LjMgNjguOTAwMSA3MiA2NS42MDAxQzc2IDYyLjAwMDEgODAuOSA2MC4zMDAxIDg1LjkgNTguOTAwMUM5Mi45IDU2LjkwMDEgMTAwIDU1LjkwMDEgMTA3LjIgNTUuNDAwMUMxMDcuOCA1NS40MDAxIDEwOC41IDU1''@;'; + put 'put ''LjYwMDEgMTA5IDU1LjEwMDFDMTE0LjIgNTUuMjAwMSAxMTkuNiA1NS4yMDAxIDEyNC45IDU1LjIwMDFaIiBmaWxsPSIjRTBFMEUwIi8+CjxwYXRoIGQ9Ik02OS4yMDAxIDEzNy4zQzc1LjYwMDEgMTQ1LjUgODQuNzAwMSAxNDguNSA5NC4xMDAxIDE1MC41QzExMi43IDE1NC41IDEzMS4zIDE1''@;'; + put 'put ''NCAxNDkuNCAxNDcuNkMxNTUgMTQ1LjYgMTYwLjIgMTQyLjkgMTYzLjkgMTM3LjlDMTY0LjUgMTM3LjEgMTY0LjggMTM3LjUgMTY1LjEgMTM4LjFDMTY1LjcgMTM5LjQgMTY2IDE0MC43IDE2NiAxNDIuMUMxNjYgMTQ3IDE2NiAxNTIgMTY2IDE1Ni45QzE2NiAxNjAuMSAxNjQuNSAxNjIuNiAx''@;'; + put 'put ''NjIuMyAxNjQuOEMxNTcuNyAxNjkuNCAxNTEuOSAxNzEuOSAxNDUuOCAxNzMuOEMxMzMuNSAxNzcuNiAxMjAuOSAxNzguNCAxMDguMiAxNzcuNUM5OC43MDAxIDE3Ni44IDg5LjUgMTc1IDgwLjggMTcxLjFDNzcuMSAxNjkuNCA3My43MDAxIDE2Ny40IDcxLjAwMDEgMTY0LjNDNjguOTAwMSAx''@;'; + put 'put ''NjEuOSA2Ny44IDE1OS4yIDY3LjggMTU2QzY3LjkgMTUxLjUgNjcuOCAxNDcgNjcuOCAxNDIuNUM2Ny44IDE0MC43IDY4LjEwMDEgMTM5IDY5LjIwMDEgMTM3LjNaIiBmaWxsPSIjOEVDNjNGIi8+CjxwYXRoIGQ9Ik02OS4yOTk5IDEwNi40Qzc0LjU5OTkgMTEzLjUgODEuOTk5OSAxMTYuNSA4''@;'; + put 'put ''OS44OTk5IDExOC42QzEwOC44IDEyMy42IDEyNy43IDEyMy41IDE0Ni40IDExNy45QzE1Mi42IDExNi4xIDE1OC40IDExMy40IDE2Mi45IDEwOC41QzE2My41IDEwNy45IDE2My45IDEwNi41IDE2NC42IDEwNi43QzE2NS42IDEwNyAxNjUuNiAxMDguNCAxNjUuOSAxMDkuNUMxNjYuMyAxMTEu''@;'; + put 'put ''MiAxNjYuMSAxMTIuOSAxNjYuMSAxMTQuNkMxNjYuMSAxMTggMTY2IDEyMS4zIDE2Ni4xIDEyNC43QzE2Ni4zIDEyOC45IDE2NC42IDEzMi4yIDE2MS41IDEzNC45QzE1Ni44IDEzOS4xIDE1MS4xIDE0MS42IDE0NSAxNDMuMkMxMjQuNSAxNDguNyAxMDQuMSAxNDguNiA4My45OTk5IDE0MS42''@;'; + put 'put ''Qzc5LjA5OTkgMTM5LjkgNzQuNTk5OSAxMzcuNSA3MC45OTk5IDEzMy42QzY4Ljc5OTkgMTMxLjIgNjcuNyAxMjguNCA2Ny43IDEyNS4xQzY3LjggMTIwLjcgNjcuNyAxMTYuMiA2Ny43IDExMS44QzY3LjggMTEwIDY4LjA5OTkgMTA4LjIgNjkuMjk5OSAxMDYuNFoiIGZpbGw9IiNFMEUwRTAi''@;'; + put 'put ''Lz4KPHBhdGggZD0iTTY5LjEgNzYuN0M3MC42IDgxLjEgNzQuMiA4My4wOTk5IDc4IDg0Ljg5OTlDODQuOCA4OC4wOTk5IDkyLjEgODkuNiA5OS40IDkwLjVDMTEzLjkgOTIuMyAxMjguNCA5Mi4xIDE0Mi43IDg5LjFDMTQ4LjUgODcuOSAxNTQuMSA4Ni4zIDE1OS4yIDgzLjFDMTYyLjEgODEu''@;'; + put 'put ''MyAxNjMuNiA3OS42IDE2NC42IDc2LjhDMTY1LjYgNzguMiAxNjUuOSA3OS43IDE2NS45IDgxLjJDMTY1LjkgODYuMiAxNjYgOTEuMSAxNjUuOSA5Ni4xQzE2NS44IDEwMC4zIDE2My40IDEwMy4zIDE2MC4zIDEwNS44QzE1NC41IDExMC40IDE0Ny43IDExMi44IDE0MC42IDExNC40QzEyMS44''@;'; + put 'put ''IDExOC41IDEwMy4yIDExOC4yIDg0LjkgMTEyQzgwLjEgMTEwLjQgNzUuNSAxMDguMSA3MS44IDEwNC41QzY5IDEwMS44IDY3LjUgOTguNyA2Ny42IDk0LjdDNjcuNyA5MC40IDY3LjYgODYuMSA2Ny42IDgxLjhDNjcuOCA3OS45IDY4LjEgNzguMyA2OS4xIDc2LjdaIiBmaWxsPSIjOEVDNjNG''@;'; + put 'put ''Ii8+CjxwYXRoIGQ9Ik0xODMuOSAyMTAuOUMyMDAuMiAyMTEuOCAyMDguOSAxOTEuOCAxOTcuMSAxODAuNUMxODQuNyAxNjguNiAxNjQuMyAxNzkuNyAxNjcuNSAxOTYuNUM5My44IDI0My41IC0wLjk5OTk4MSAxNzMuMiAyNiA4Ny44MDAxTDcuODAwMDIgNzUuNjAwMUMtMzMuMSAxODQuMyA5''@;'; + put 'put ''Mi44IDI3Ni4yIDE4My45IDIxMC45Wk0xNzguNyAxODcuNEMxODYuMyAxNzkuNSAxOTguNCAxOTAuNSAxOTEuMyAxOTguOEMxODMuOCAyMDcuNSAxNzAuNiAxOTUuOCAxNzguNyAxODcuNFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTM1LjIgNTAuNzAwMUM0Ni45IDYxLjkwMDEgNjYu''@;'; + put 'put ''MiA1Mi43MDAxIDY1LjEgMzYuNzAwMUMxMzguNyAtMTAuNyAyMzQgNTkuNTAwMSAyMDcgMTQ1LjJMMjI1LjIgMTU3LjRDMjY0LjkgNTEuODAwMSAxNDQuNCAtNDMuMjk5OSA1MS4yIDIwLjYwMDFDMzMuNyAxNy4wMDAxIDIyLjQgMzguNDAwMSAzNS4yIDUwLjcwMDFaTTUzLjYgNDMuODAwMUM0''@;'; + put 'put ''NS44IDUxLjkwMDEgMzMuNSA0MC4xMDAxIDQxLjMgMzIuMDAwMUM0OS4xIDIzLjkwMDEgNjEuNCAzNS43MDAxIDUzLjYgNDMuODAwMVoiIGZpbGw9IiM4RUM2M0YiLz4KPHBhdGggZD0iTTMyMy41NzUgNDcuODg3NEMzMjMuNTc1IDQ2Ljc5MDEgMzIzLjkxNyA0NS44OTg1IDMyNC42MDMgNDUu''@;'; + put 'put ''MjEyN0MzMjUuNDI2IDQ0LjM4OTcgMzI2LjM4NiA0My45NzgyIDMyNy40ODQgNDMuOTc4MkgzNjkuMDQ0QzM3OC45MiA0My45NzgyIDM4OC4wNDEgNDUuNzYxMyAzOTYuNDA4IDQ5LjMyNzZDNDA0LjkxMyA1Mi44OTM4IDQxMi4yNTEgNTcuOTAwMyA0MTguNDIzIDY0LjM0N0M0MjQuNTk2IDcw''@;'; + put 'put ''LjY1NjUgNDI5LjQ2NSA3OC4yMDA1IDQzMy4wMzEgODYuOTc5QzQzNi41OTcgOTUuNzU3NSA0MzguMzggMTA1LjQyOCA0MzguMzggMTE1Ljk4OUM0MzguMzggMTI2LjU1MSA0MzYuNTk3IDEzNi4yMjEgNDMzLjAzMSAxNDQuOTk5QzQyOS40NjUgMTUzLjc3OCA0MjQuNTk2IDE2MS4zOSA0MTgu''@;'; + put 'put ''NDIzIDE2Ny44MzdDNDEyLjI1MSAxNzQuMTQ2IDQwNC45MTMgMTc5LjA4NCAzOTYuNDA4IDE4Mi42NTFDMzg4LjA0MSAxODYuMjE3IDM3OC45MiAxODggMzY5LjA0NCAxODhIMzI3LjQ4NEMzMjYuMzg2IDE4OCAzMjUuNDI2IDE4Ny42NTcgMzI0LjYwMyAxODYuOTcxQzMyMy45MTcgMTg2LjE0''@;'; + put 'put ''OCAzMjMuNTc1IDE4NS4xODggMzIzLjU3NSAxODQuMDkxVjQ3Ljg4NzRaTTM0OS4yOTMgNjkuMjg0OVYxNjIuNjkzSDM2OS42NjJDMzc1LjgzNCAxNjIuNjkzIDM4MS40NTggMTYxLjUyNyAzODYuNTMzIDE1OS4xOTZDMzkxLjYwOCAxNTYuODY0IDM5NS45MjggMTUzLjY0MSAzOTkuNDk1IDE0''@;'; + put 'put ''OS41MjZDNDAzLjE5OCAxNDUuNDExIDQwNi4wMSAxNDAuNTQxIDQwNy45MyAxMzQuOTE4QzQwOS45ODggMTI5LjE1NyA0MTEuMDE2IDEyMi44NDcgNDExLjAxNiAxMTUuOTg5QzQxMS4wMTYgMTA5LjI2OCA0MDkuOTg4IDEwMy4wMjcgNDA3LjkzIDk3LjI2NjNDNDA2LjAxIDkxLjUwNTQgNDAz''@;'; + put 'put ''LjE5OCA4Ni41Njc1IDM5OS40OTUgODIuNDUyNkMzOTUuOTI4IDc4LjMzNzcgMzkxLjYwOCA3NS4xMTQzIDM4Ni41MzMgNzIuNzgyNkMzODEuNDU4IDcwLjQ1MDggMzc1LjgzNCA2OS4yODQ5IDM2OS42NjIgNjkuMjg0OUgzNDkuMjkzWk01MzEuMDkzIDE3Ny45MThDNTI3LjM4OSAxODAuNjYy''@;'; + put 'put ''IDUyMy4xMzcgMTgzLjEzMSA1MTguMzM3IDE4NS4zMjVDNTEzLjUzNiAxODcuMzgzIDUwOC43MzUgMTg4LjQxMSA1MDMuOTM1IDE4OC40MTFDNDk2LjgwMiAxODguNDExIDQ5MC4yMTggMTg3LjEwOCA0ODQuMTgzIDE4NC41MDJDNDc4LjE0OCAxODEuODk2IDQ3Mi45MzYgMTc4LjI2MSA0Njgu''@;'; + put 'put ''NTQ2IDE3My41OThDNDY0LjI5NCAxNjguOTM0IDQ2MC45MzQgMTYzLjQ0OCA0NTguNDY1IDE1Ny4xMzhDNDU1Ljk5NiAxNTAuODI5IDQ1NC43NjEgMTQzLjk3IDQ1NC43NjEgMTM2LjU2NEM0NTQuNzYxIDEyOS40MzEgNDU2LjA2NCAxMjIuNzc5IDQ1OC42NzEgMTE2LjYwNkM0NjEuMjc3IDEx''@;'; + put 'put ''MC4yOTcgNDY0Ljg0MyAxMDQuODEgNDY5LjM2OSAxMDAuMTQ3QzQ3My44OTYgOTUuMzQ2IDQ3OS4xMDggOTEuNTc0IDQ4NS4wMDYgODguODMwN0M0OTEuMDQxIDg2LjA4NzQgNDk3LjQ4OCA4NC43MTU4IDUwNC4zNDYgODQuNzE1OEM1MDkuMTQ3IDg0LjcxNTggNTEzLjg3OSA4NS44MTMxIDUx''@;'; + put 'put ''OC41NDIgODguMDA3N0M1MjMuMjA2IDkwLjA2NTIgNTI3LjM4OSA5Mi40NjU1IDUzMS4wOTMgOTUuMjA4OFY4OS4wMzY1QzUzMS4wOTMgODcuOTM5MSA1MzEuNDM2IDg3LjA0NzYgNTMyLjEyMiA4Ni4zNjE4QzUzMi45NDUgODUuNTM4OCA1MzMuOTA1IDg1LjEyNzMgNTM1LjAwMiA4NS4xMjcz''@;'; + put 'put ''SDU1MS4wNUM1NTMuNjU2IDg1LjEyNzMgNTU0Ljk1OSA4Ni40MzAzIDU1NC45NTkgODkuMDM2NVYxODQuMDkxQzU1NC45NTkgMTg2LjY5NyA1NTMuNjU2IDE4OCA1NTEuMDUgMTg4SDUzNS4wMDJDNTMzLjkwNSAxODggNTMyLjk0NSAxODcuNjU3IDUzMi4xMjIgMTg2Ljk3MUM1MzEuNDM2IDE4''@;'; + put 'put ''Ni4xNDggNTMxLjA5MyAxODUuMTg4IDUzMS4wOTMgMTg0LjA5MVYxNzcuOTE4Wk00NzkuNjU3IDEzNi41NjRDNDc5LjY1NyAxNDAuMjY3IDQ4MC4zNDIgMTQzLjc2NSA0ODEuNzE0IDE0Ny4wNTdDNDgzLjA4NiAxNTAuMjExIDQ4NC45MzcgMTUzLjAyMyA0ODcuMjY5IDE1NS40OTJDNDg5LjYw''@;'; + put 'put ''MSAxNTcuOTYxIDQ5Mi4yNzYgMTU5Ljk1IDQ5NS4yOTMgMTYxLjQ1OUM0OTguNDQ4IDE2Mi44MyA1MDEuNzQgMTYzLjUxNiA1MDUuMTY5IDE2My41MTZDNTA4Ljg3MiAxNjMuNTE2IDUxMi4yMzMgMTYyLjgzIDUxNS4yNTEgMTYxLjQ1OUM1MTguMjY4IDE1OS45NSA1MjAuODc0IDE1Ny45NjEg''@;'; + put 'put ''NTIzLjA2OSAxNTUuNDkyQzUyNS40MDEgMTUzLjAyMyA1MjcuMTg0IDE1MC4yMTEgNTI4LjQxOCAxNDcuMDU3QzUyOS42NTMgMTQzLjc2NSA1MzAuMjcgMTQwLjI2NyA1MzAuMjcgMTM2LjU2NEM1MzAuMjcgMTMyLjg2IDUyOS42NTMgMTI5LjQzMSA1MjguNDE4IDEyNi4yNzZDNTI3LjE4NCAx''@;'; + put 'put ''MjIuOTg0IDUyNS40MDEgMTIwLjEwNCA1MjMuMDY5IDExNy42MzVDNTIwLjg3NCAxMTUuMTY2IDUxOC4yNjggMTEzLjI0NiA1MTUuMjUxIDExMS44NzRDNTEyLjIzMyAxMTAuMzY1IDUwOC44NzIgMTA5LjYxMSA1MDUuMTY5IDEwOS42MTFDNTAxLjc0IDEwOS42MTEgNDk4LjQ0OCAxMTAuMzY1''@;'; + put 'put ''IDQ5NS4yOTMgMTExLjg3NEM0OTIuMjc2IDExMy4yNDYgNDg5LjYwMSAxMTUuMTY2IDQ4Ny4yNjkgMTE3LjYzNUM0ODQuOTM3IDEyMC4xMDQgNDgzLjA4NiAxMjIuOTg0IDQ4MS43MTQgMTI2LjI3NkM0ODAuMzQyIDEyOS40MzEgNDc5LjY1NyAxMzIuODYgNDc5LjY1NyAxMzYuNTY0Wk01NzQu''@;'; + put 'put ''NDA3IDg5LjAzNjVDNTc0LjQwNyA4Ny45MzkxIDU3NC43NSA4Ny4wNDc2IDU3NS40MzYgODYuMzYxOEM1NzYuMTIyIDg1LjUzODggNTc3LjAxMyA4NS4xMjczIDU3OC4xMTEgODUuMTI3M0g1OTMuMzM2VjU4LjE3NDZDNTkzLjMzNiA1Ny4wNzczIDU5My42NzkgNTYuMTg1OCA1OTQuMzY0IDU1''@;'; + put 'put ''LjQ5OTlDNTk1LjE4NyA1NC42NzcgNTk2LjE0OCA1NC4yNjU1IDU5Ny4yNDUgNTQuMjY1NUg2MTMuMjkzQzYxNS44OTkgNTQuMjY1NSA2MTcuMjAyIDU1LjU2ODUgNjE3LjIwMiA1OC4xNzQ2Vjg1LjEyNzNINjM1LjMwOEM2MzYuNDA1IDg1LjEyNzMgNjM3LjI5NyA4NS41Mzg4IDYzNy45ODIg''@;'; + put 'put ''ODYuMzYxOEM2MzguNjY4IDg3LjA0NzYgNjM5LjAxMSA4Ny45MzkxIDYzOS4wMTEgODkuMDM2NVYxMDQuMjYyQzYzOS4wMTEgMTA1LjM1OSA2MzguNjY4IDEwNi4yNSA2MzcuOTgyIDEwNi45MzZDNjM3LjI5NyAxMDcuNjIyIDYzNi40MDUgMTA3Ljk2NSA2MzUuMzA4IDEwNy45NjVINjE3LjIw''@;'; + put 'put ''MlYxODQuMDkxQzYxNy4yMDIgMTg2LjY5NyA2MTUuODk5IDE4OCA2MTMuMjkzIDE4OEg1OTcuMjQ1QzU5Ni4xNDggMTg4IDU5NS4xODcgMTg3LjY1NyA1OTQuMzY0IDE4Ni45NzFDNTkzLjY3OSAxODYuMTQ4IDU5My4zMzYgMTg1LjE4OCA1OTMuMzM2IDE4NC4wOTFWMTA3Ljk2NUg1NzguMTEx''@;'; + put 'put ''QzU3Ny4wMTMgMTA3Ljk2NSA1NzYuMTIyIDEwNy42MjIgNTc1LjQzNiAxMDYuOTM2QzU3NC43NSAxMDYuMjUgNTc0LjQwNyAxMDUuMzU5IDU3NC40MDcgMTA0LjI2MlY4OS4wMzY1Wk03MjkuNjkzIDE3Ny45MThDNzI1Ljk5IDE4MC42NjIgNzIxLjczOCAxODMuMTMxIDcxNi45MzcgMTg1LjMy''@;'; + put 'put ''NUM3MTIuMTM3IDE4Ny4zODMgNzA3LjMzNiAxODguNDExIDcwMi41MzUgMTg4LjQxMUM2OTUuNDAzIDE4OC40MTEgNjg4LjgxOSAxODcuMTA4IDY4Mi43ODQgMTg0LjUwMkM2NzYuNzQ4IDE4MS44OTYgNjcxLjUzNiAxNzguMjYxIDY2Ny4xNDcgMTczLjU5OEM2NjIuODk1IDE2OC45MzQgNjU5''@;'; + put 'put ''LjUzNCAxNjMuNDQ4IDY1Ny4wNjUgMTU3LjEzOEM2NTQuNTk2IDE1MC44MjkgNjUzLjM2MiAxNDMuOTcgNjUzLjM2MiAxMzYuNTY0QzY1My4zNjIgMTI5LjQzMSA2NTQuNjY1IDEyMi43NzkgNjU3LjI3MSAxMTYuNjA2QzY1OS44NzcgMTEwLjI5NyA2NjMuNDQzIDEwNC44MSA2NjcuOTcgMTAw''@;'; + put 'put ''LjE0N0M2NzIuNDk2IDk1LjM0NiA2NzcuNzA4IDkxLjU3NCA2ODMuNjA3IDg4LjgzMDdDNjg5LjY0MiA4Ni4wODc0IDY5Ni4wODggODQuNzE1OCA3MDIuOTQ3IDg0LjcxNThDNzA3Ljc0NyA4NC43MTU4IDcxMi40NzkgODUuODEzMSA3MTcuMTQzIDg4LjAwNzdDNzIxLjgwNyA5MC4wNjUyIDcy''@;'; + put 'put ''NS45OSA5Mi40NjU1IDcyOS42OTMgOTUuMjA4OFY4OS4wMzY1QzcyOS42OTMgODcuOTM5MSA3MzAuMDM2IDg3LjA0NzYgNzMwLjcyMiA4Ni4zNjE4QzczMS41NDUgODUuNTM4OCA3MzIuNTA1IDg1LjEyNzMgNzMzLjYwMyA4NS4xMjczSDc0OS42NTFDNzUyLjI1NyA4NS4xMjczIDc1My41NiA4''@;'; + put 'put ''Ni40MzAzIDc1My41NiA4OS4wMzY1VjE4NC4wOTFDNzUzLjU2IDE4Ni42OTcgNzUyLjI1NyAxODggNzQ5LjY1MSAxODhINzMzLjYwM0M3MzIuNTA1IDE4OCA3MzEuNTQ1IDE4Ny42NTcgNzMwLjcyMiAxODYuOTcxQzczMC4wMzYgMTg2LjE0OCA3MjkuNjkzIDE4NS4xODggNzI5LjY5MyAxODQu''@;'; + put 'put ''MDkxVjE3Ny45MThaTTY3OC4yNTcgMTM2LjU2NEM2NzguMjU3IDE0MC4yNjcgNjc4Ljk0MyAxNDMuNzY1IDY4MC4zMTUgMTQ3LjA1N0M2ODEuNjg2IDE1MC4yMTEgNjgzLjUzOCAxNTMuMDIzIDY4NS44NyAxNTUuNDkyQzY4OC4yMDEgMTU3Ljk2MSA2OTAuODc2IDE1OS45NSA2OTMuODk0IDE2''@;'; + put 'put ''MS40NTlDNjk3LjA0OSAxNjIuODMgNzAwLjM0IDE2My41MTYgNzAzLjc3IDE2My41MTZDNzA3LjQ3MyAxNjMuNTE2IDcxMC44MzMgMTYyLjgzIDcxMy44NTEgMTYxLjQ1OUM3MTYuODY5IDE1OS45NSA3MTkuNDc1IDE1Ny45NjEgNzIxLjY2OSAxNTUuNDkyQzcyNC4wMDEgMTUzLjAyMyA3MjUu''@;'; + put 'put ''Nzg0IDE1MC4yMTEgNzI3LjAxOSAxNDcuMDU3QzcyOC4yNTMgMTQzLjc2NSA3MjguODcgMTQwLjI2NyA3MjguODcgMTM2LjU2NEM3MjguODcgMTMyLjg2IDcyOC4yNTMgMTI5LjQzMSA3MjcuMDE5IDEyNi4yNzZDNzI1Ljc4NCAxMjIuOTg0IDcyNC4wMDEgMTIwLjEwNCA3MjEuNjY5IDExNy42''@;'; + put 'put ''MzVDNzE5LjQ3NSAxMTUuMTY2IDcxNi44NjkgMTEzLjI0NiA3MTMuODUxIDExMS44NzRDNzEwLjgzMyAxMTAuMzY1IDcwNy40NzMgMTA5LjYxMSA3MDMuNzcgMTA5LjYxMUM3MDAuMzQgMTA5LjYxMSA2OTcuMDQ5IDExMC4zNjUgNjkzLjg5NCAxMTEuODc0QzY5MC44NzYgMTEzLjI0NiA2ODgu''@;'; + put 'put ''MjAxIDExNS4xNjYgNjg1Ljg3IDExNy42MzVDNjgzLjUzOCAxMjAuMTA0IDY4MS42ODYgMTIyLjk4NCA2ODAuMzE1IDEyNi4yNzZDNjc4Ljk0MyAxMjkuNDMxIDY3OC4yNTcgMTMyLjg2IDY3OC4yNTcgMTM2LjU2NFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTg3My4yMDYgNzQuMjIy''@;'; + put 'put ''OEM4NzIuNjU3IDc1LjA0NTggODcxLjkwMyA3NS41MjU4IDg3MC45NDMgNzUuNjYzQzg2OS45ODIgNzUuODAwMiA4NjkuMDIyIDc1LjU5NDQgODY4LjA2MiA3NS4wNDU4Qzg2NC45MDcgNzMuMTI1NSA4NjEuMTM1IDcxLjQ3OTUgODU2Ljc0NiA3MC4xMDc5Qzg1Mi4zNTcgNjguNzM2MiA4NDcu''@;'; + put 'put ''ODk5IDY4LjExOSA4NDMuMzczIDY4LjI1NjJDODM3LjQ3NSA2OC4yNTYyIDgzMS45ODggNjkuNTU5MiA4MjYuOTEzIDcyLjE2NTNDODIxLjk3NSA3NC42MzQzIDgxNy42NTQgNzguMDYzNCA4MTMuOTUxIDgyLjQ1MjZDODEwLjI0OCA4Ni43MDQ3IDgwNy4zNjcgOTEuNzExMSA4MDUuMzEgOTcu''@;'; + put 'put ''NDcyQzgwMy4yNTIgMTAzLjIzMyA4MDIuMjkyIDEwOS40MDUgODAyLjQyOSAxMTUuOTg5QzgwMi41NjYgMTIyLjg0NyA4MDMuNTk1IDEyOS4yMjUgODA1LjUxNSAxMzUuMTIzQzgwNy41NzMgMTQwLjg4NCA4MTAuMzg1IDE0NS44OTEgODEzLjk1MSAxNTAuMTQzQzgxNy41MTcgMTU0LjM5NSA4''@;'; + put 'put ''MjEuODM4IDE1Ny43NTUgODI2LjkxMyAxNjAuMjI0QzgzMS45ODggMTYyLjU1NiA4MzcuNjggMTYzLjcyMiA4NDMuOTkgMTYzLjcyMkM4NTAuMDI1IDE2My41ODUgODU1LjUxMiAxNjIuNTU2IDg2MC40NSAxNjAuNjM2Qzg2NS41MjUgMTU4LjcxNiA4NzAuNTMxIDE1NS45NzIgODc1LjQ2OSAx''@;'; + put 'put ''NTIuNDA2Qzg3Ni40MjkgMTUxLjcyIDg3Ny40NTggMTUxLjUxNCA4NzguNTU1IDE1MS43ODlDODc5LjY1MiAxNTEuOTI2IDg4MC41NDQgMTUyLjQ3NSA4ODEuMjMgMTUzLjQzNUw4OTEuMTA2IDE2OC4yNDhDODkyLjM0IDE3MC4xNjkgODkxLjk5NyAxNzEuODgzIDg5MC4wNzcgMTczLjM5MkM4''@;'; + put 'put ''ODIuNTMzIDE3OS4xNTMgODc1LjE5NSAxODMuMzM2IDg2OC4wNjIgMTg1Ljk0M0M4NjAuOTMgMTg4LjU0OSA4NTIuOTc0IDE4OS44NTIgODQ0LjE5NiAxODkuODUyQzgzMy42MzQgMTg5Ljk4OSA4MjQuMTAxIDE4OC4zNDMgODE1LjU5NyAxODQuOTE0QzgwNy4yMyAxODEuMzQ4IDgwMC4wMjkg''@;'; + put 'put ''MTc2LjM0MSA3OTMuOTk0IDE2OS44OTRDNzg4LjA5NiAxNjMuMzExIDc4My41MDEgMTU1LjQ5MiA3ODAuMjA5IDE0Ni40MzlDNzc3LjA1NCAxMzcuMzg3IDc3NS40MDggMTI3LjM3NCA3NzUuMjcxIDExNi40MDFDNzc1LjEzNCAxMDcuMDczIDc3Ni41NzQgOTguMDIwNyA3NzkuNTkyIDg5LjI0''@;'; + put 'put ''MjJDNzgyLjc0NiA4MC4zMjY2IDc4Ny4yMDQgNzIuMzcxMSA3OTIuOTY1IDY1LjM3NTdDNzk4LjcyNiA1OC4zODA0IDgwNS43MjEgNTIuNzU2NyA4MTMuOTUxIDQ4LjUwNDZDODIyLjE4MSA0NC4yNTI1IDgzMS40MzkgNDIuMTI2NSA4NDEuNzI3IDQyLjEyNjVDODQ4LjcyMiA0MS45ODkzIDg1''@;'; + put 'put ''NS41OCA0Mi44MTIzIDg2Mi4zMDEgNDQuNTk1NEM4NjkuMTU5IDQ2LjM3ODYgODc1Ljg4IDQ5LjY3MDUgODgyLjQ2NCA1NC40NzEyQzg4My40MjQgNTUuMTU3IDg4My45NzMgNTYuMDQ4NiA4ODQuMTEgNTcuMTQ1OUM4ODQuMjQ3IDU4LjEwNjEgODgzLjk3MyA1OS4wNjYyIDg4My4yODcgNjAu''@;'; + put 'put ''MDI2M0w4NzMuMjA2IDc0LjIyMjhaTTkwNi4yMTIgMTM2LjU2NEM5MDYuMjEyIDEyOS4yOTQgOTA3LjUxNSAxMjIuNTA0IDkxMC4xMjEgMTE2LjE5NUM5MTIuNzI3IDEwOS44ODUgOTE2LjIyNSAxMDQuMzk5IDkyMC42MTQgOTkuNzM1MkM5MjUuMTQgOTUuMDcxNyA5MzAuNDIxIDkxLjQzNjgg''@;'; + put 'put ''OTM2LjQ1NiA4OC44MzA3Qzk0Mi40OTIgODYuMDg3NCA5NDkuMDA3IDg0LjcxNTggOTU2LjAwMiA4NC43MTU4Qzk2Mi45OTggODQuNzE1OCA5NjkuNDQ0IDg2LjA4NzQgOTc1LjM0MiA4OC44MzA3Qzk4MS4zNzcgOTEuNDM2OCA5ODYuNTkgOTUuMDcxNyA5OTAuOTc5IDk5LjczNTJDOTk1LjUw''@;'; + put 'put ''NSAxMDQuMzk5IDk5OS4wMDMgMTA5Ljg4NSAxMDAxLjQ3IDExNi4xOTVDMTAwNC4wOCAxMjIuNTA0IDEwMDUuMzggMTI5LjI5NCAxMDA1LjM4IDEzNi41NjRDMTAwNS4zOCAxNDMuODMzIDEwMDQuMDggMTUwLjYyMyAxMDAxLjQ3IDE1Ni45MzJDOTk5LjAwMyAxNjMuMjQyIDk5NS41MDUgMTY4''@;'; + put 'put ''LjcyOSA5OTAuOTc5IDE3My4zOTJDOTg2LjU5IDE3OC4wNTYgOTgxLjM3NyAxODEuNzU5IDk3NS4zNDIgMTg0LjUwMkM5NjkuMzA3IDE4Ny4xMDggOTYyLjc5MiAxODguNDExIDk1NS43OTYgMTg4LjQxMUM5NDguODAxIDE4OC40MTEgOTQyLjI4NiAxODcuMTA4IDkzNi4yNTEgMTg0LjUwMkM5''@;'; + put 'put ''MzAuMjE1IDE4MS43NTkgOTI0LjkzNSAxNzguMDU2IDkyMC40MDggMTczLjM5MkM5MTYuMDE5IDE2OC43MjkgOTEyLjUyMSAxNjMuMjQyIDkwOS45MTUgMTU2LjkzMkM5MDcuNDQ2IDE1MC42MjMgOTA2LjIxMiAxNDMuODMzIDkwNi4yMTIgMTM2LjU2NFpNOTMxLjEwNyAxMzYuNTY0QzkzMS4x''@;'; + put 'put ''MDcgMTQwLjQwNCA5MzEuNzI0IDE0NC4wMzkgOTMyLjk1OSAxNDcuNDY4QzkzNC4xOTMgMTUwLjc2IDkzNS45MDggMTUzLjY0MSA5MzguMTAyIDE1Ni4xMDlDOTQwLjI5NyAxNTguNTc4IDk0Mi45MDMgMTYwLjU2NyA5NDUuOTIxIDE2Mi4wNzZDOTQ4LjkzOCAxNjMuNDQ4IDk1Mi4yMyAxNjQu''@;'; + put 'put ''MTM0IDk1NS43OTYgMTY0LjEzNEM5NTkuMzYzIDE2NC4xMzQgOTYyLjY1NSAxNjMuNDQ4IDk2NS42NzIgMTYyLjA3NkM5NjguODI3IDE2MC41NjcgOTcxLjUwMiAxNTguNTc4IDk3My42OTYgMTU2LjEwOUM5NzUuODkxIDE1My42NDEgOTc3LjYwNSAxNTAuNzYgOTc4Ljg0IDE0Ny40NjhDOTgw''@;'; + put 'put ''LjA3NCAxNDQuMDM5IDk4MC42OTIgMTQwLjQwNCA5ODAuNjkyIDEzNi41NjRDOTgwLjY5MiAxMzIuNzIzIDk4MC4wNzQgMTI5LjE1NyA5NzguODQgMTI1Ljg2NUM5NzcuNjA1IDEyMi40MzYgOTc1Ljg5MSAxMTkuNDg3IDk3My42OTYgMTE3LjAxOEM5NzEuNTAyIDExNC41NDkgOTY4LjgyNyAx''@;'; + put 'put ''MTIuNjI5IDk2NS42NzIgMTExLjI1N0M5NjIuNjU1IDEwOS43NDggOTU5LjM2MyAxMDguOTk0IDk1NS43OTYgMTA4Ljk5NEM5NTIuMjMgMTA4Ljk5NCA5NDguOTM4IDEwOS43NDggOTQ1LjkyMSAxMTEuMjU3Qzk0Mi45MDMgMTEyLjYyOSA5NDAuMjk3IDExNC41NDkgOTM4LjEwMiAxMTcuMDE4''@;'; + put 'put ''QzkzNS45MDggMTE5LjQ4NyA5MzQuMTkzIDEyMi40MzYgOTMyLjk1OSAxMjUuODY1QzkzMS43MjQgMTI5LjE1NyA5MzEuMTA3IDEzMi43MjMgOTMxLjEwNyAxMzYuNTY0Wk0xMDUwLjkgMTg0LjA5MUMxMDUwLjkgMTg2LjY5NyAxMDQ5LjU5IDE4OCAxMDQ2Ljk5IDE4OEgxMDMwLjk0QzEwMjku''@;'; + put 'put ''ODQgMTg4IDEwMjguODggMTg3LjY1NyAxMDI4LjA2IDE4Ni45NzFDMTAyNy4zNyAxODYuMTQ4IDEwMjcuMDMgMTg1LjE4OCAxMDI3LjAzIDE4NC4wOTFWODkuMDM2NUMxMDI3LjAzIDg3LjkzOTEgMTAyNy4zNyA4Ny4wNDc2IDEwMjguMDYgODYuMzYxOEMxMDI4Ljg4IDg1LjUzODggMTAyOS44''@;'; + put 'put ''NCA4NS4xMjczIDEwMzAuOTQgODUuMTI3M0gxMDQ2Ljk5QzEwNDkuNTkgODUuMTI3MyAxMDUwLjkgODYuNDMwMyAxMDUwLjkgODkuMDM2NVY5Ni42NDlDMTA1NC44OCA5My4zNTcxIDEwNTkuNDcgOTAuNTQ1MyAxMDY0LjY4IDg4LjIxMzVDMTA2OS44OSA4NS44ODE3IDEwNzUuMDQgODQuNzE1''@;'; + put 'put ''OCAxMDgwLjExIDg0LjcxNThDMTA4NC45MSA4NC43MTU4IDEwODkuMzcgODUuNjA3NCAxMDkzLjQ5IDg3LjM5MDVDMTA5Ny42IDg5LjAzNjUgMTEwMS4xIDkxLjQzNjggMTEwMy45OCA5NC41OTE2QzExMDcgOTcuNjA5MiAxMTA5LjMzIDEwMS4xNzUgMTExMC45OCAxMDUuMjlDMTExMi42MiAx''@;'; + put 'put ''MDkuNDA1IDExMTMuNDQgMTEzLjkzMiAxMTEzLjQ0IDExOC44N1YxODQuMDkxQzExMTMuNDQgMTg2LjY5NyAxMTEyLjE0IDE4OCAxMTA5LjUzIDE4OEgxMDkzLjQ5QzEwOTIuMzkgMTg4IDEwOTEuNDMgMTg3LjY1NyAxMDkwLjYxIDE4Ni45NzFDMTA4OS45MiAxODYuMTQ4IDEwODkuNTggMTg1''@;'; + put 'put ''LjE4OCAxMDg5LjU4IDE4NC4wOTFWMTI2LjY4OEMxMDg5LjU4IDEyMS4wNjQgMTA4OC4yNyAxMTYuNzQ0IDEwODUuNjcgMTEzLjcyNkMxMDgzLjA2IDExMC41NzEgMTA3OS4zNiAxMDguOTk0IDEwNzQuNTYgMTA4Ljk5NEMxMDcxLjU0IDEwOC45OTQgMTA2OC41OSAxMDkuNjExIDEwNjUuNzEg''@;'; + put 'put ''MTEwLjg0NUMxMDYyLjk3IDExMS45NDMgMTA2MC41IDExMy41MiAxMDU4LjMgMTE1LjU3OEMxMDU2LjI1IDExNy40OTggMTA1NC41MyAxMTkuODMgMTA1My4xNiAxMjIuNTczQzEwNTEuOTMgMTI1LjMxNiAxMDUxLjMxIDEyOC4xOTcgMTA1MS4zMSAxMzEuMjE0TDEwNTAuOSAxODQuMDkxWk0x''@;'; + put 'put ''MTI3Ljg3IDg5LjAzNjVDMTEyNy44NyA4Ny45MzkxIDExMjguMjEgODcuMDQ3NiAxMTI4LjkgODYuMzYxOEMxMTI5LjU4IDg1LjUzODggMTEzMC40OCA4NS4xMjczIDExMzEuNTcgODUuMTI3M0gxMTQ2LjhWNTguMTc0NkMxMTQ2LjggNTcuMDc3MyAxMTQ3LjE0IDU2LjE4NTggMTE0Ny44MyA1''@;'; + put 'put ''NS40OTk5QzExNDguNjUgNTQuNjc3IDExNDkuNjEgNTQuMjY1NSAxMTUwLjcxIDU0LjI2NTVIMTE2Ni43NkMxMTY5LjM2IDU0LjI2NTUgMTE3MC42NyA1NS41Njg1IDExNzAuNjcgNTguMTc0NlY4NS4xMjczSDExODguNzdDMTE4OS44NyA4NS4xMjczIDExOTAuNzYgODUuNTM4OCAxMTkxLjQ1''@;'; + put 'put ''IDg2LjM2MThDMTE5Mi4xMyA4Ny4wNDc2IDExOTIuNDcgODcuOTM5MSAxMTkyLjQ3IDg5LjAzNjVWMTA0LjI2MkMxMTkyLjQ3IDEwNS4zNTkgMTE5Mi4xMyAxMDYuMjUgMTE5MS40NSAxMDYuOTM2QzExOTAuNzYgMTA3LjYyMiAxMTg5Ljg3IDEwNy45NjUgMTE4OC43NyAxMDcuOTY1SDExNzAu''@;'; + put 'put ''NjdWMTg0LjA5MUMxMTcwLjY3IDE4Ni42OTcgMTE2OS4zNiAxODggMTE2Ni43NiAxODhIMTE1MC43MUMxMTQ5LjYxIDE4OCAxMTQ4LjY1IDE4Ny42NTcgMTE0Ny44MyAxODYuOTcxQzExNDcuMTQgMTg2LjE0OCAxMTQ2LjggMTg1LjE4OCAxMTQ2LjggMTg0LjA5MVYxMDcuOTY1SDExMzEuNTdD''@;'; + put 'put ''MTEzMC40OCAxMDcuOTY1IDExMjkuNTggMTA3LjYyMiAxMTI4LjkgMTA2LjkzNkMxMTI4LjIxIDEwNi4yNSAxMTI3Ljg3IDEwNS4zNTkgMTEyNy44NyAxMDQuMjYyVjg5LjAzNjVaTTEyNzMuMjggMTA4LjE3MUMxMjcyLjg3IDEwOS4yNjggMTI3Mi4xOCAxMTAuMDIyIDEyNzEuMjIgMTEwLjQz''@;'; + put 'put ''NEMxMjcwLjI2IDExMC44NDUgMTI2OS4yMyAxMTAuNzc3IDEyNjguMTQgMTEwLjIyOEMxMjY3LjA0IDEwOS42OCAxMjY1LjY3IDEwOS4yIDEyNjQuMDIgMTA4Ljc4OEMxMjYyLjUxIDEwOC4zNzcgMTI2MC44NyAxMDguMTcxIDEyNTkuMDggMTA4LjE3MUMxMjU2LjA3IDEwOC4xNzEgMTI1My4x''@;'; + put 'put ''OSAxMDguNzg4IDEyNTAuNDQgMTEwLjAyMkMxMjQ3LjcgMTExLjI1NyAxMjQ1LjIzIDExMi45NzIgMTI0My4wNCAxMTUuMTY2QzEyNDAuOTggMTE3LjIyNCAxMjM5LjMzIDExOS42OTMgMTIzOC4xIDEyMi41NzNDMTIzNi44NiAxMjUuMzE2IDEyMzYuMjUgMTI4LjE5NyAxMjM2LjI1IDEzMS4y''@;'; + put 'put ''MTRMMTIzNS44NCAxODQuMDkxQzEyMzUuODQgMTg1LjE4OCAxMjM1LjQ5IDE4Ni4xNDggMTIzNC44MSAxODYuOTcxQzEyMzQuMTIgMTg3LjY1NyAxMjMzLjIzIDE4OCAxMjMyLjEzIDE4OEgxMjE1Ljg4QzEyMTQuNzggMTg4IDEyMTMuODIgMTg3LjY1NyAxMjEzIDE4Ni45NzFDMTIxMi4zMSAx''@;'; + put 'put ''ODYuMTQ4IDEyMTEuOTcgMTg1LjE4OCAxMjExLjk3IDE4NC4wOTFWODkuMDM2NUMxMjExLjk3IDg3LjkzOTEgMTIxMi4zMSA4Ny4wNDc2IDEyMTMgODYuMzYxOEMxMjEzLjgyIDg1LjUzODggMTIxNC43OCA4NS4xMjczIDEyMTUuODggODUuMTI3M0gxMjMyLjEzQzEyMzMuMjMgODUuMTI3MyAx''@;'; + put 'put ''MjM0LjEyIDg1LjUzODggMTIzNC44MSA4Ni4zNjE4QzEyMzUuNDkgODcuMDQ3NiAxMjM1Ljg0IDg3LjkzOTEgMTIzNS44NCA4OS4wMzY1Vjk0LjU5MTZDMTIzOS44MSA5MS43MTExIDEyNDQuMDcgODkuMzc5NCAxMjQ4LjU5IDg3LjU5NjJDMTI1My4xMiA4NS42NzU5IDEyNTcuOTkgODQuNzE1''@;'; + put 'put ''OCAxMjYzLjIgODQuNzE1OEMxMjY4LjU1IDg0LjcxNTggMTI3My4yMSA4NS43NDQ1IDEyNzcuMTkgODcuODAyQzEyNzkuMTEgODkuMDM2NSAxMjc5LjczIDkwLjYxMzggMTI3OS4wNCA5Mi41MzQxTDEyNzMuMjggMTA4LjE3MVpNMTI4NS4zMyAxMzYuNTY0QzEyODUuMzMgMTI5LjI5NCAxMjg2''@;'; + put 'put ''LjYzIDEyMi41MDQgMTI4OS4yNCAxMTYuMTk1QzEyOTEuODUgMTA5Ljg4NSAxMjk1LjM0IDEwNC4zOTkgMTI5OS43MyA5OS43MzUyQzEzMDQuMjYgOTUuMDcxNyAxMzA5LjU0IDkxLjQzNjggMTMxNS41NyA4OC44MzA3QzEzMjEuNjEgODYuMDg3NCAxMzI4LjEyIDg0LjcxNTggMTMzNS4xMiA4''@;'; + put 'put ''NC43MTU4QzEzNDIuMTIgODQuNzE1OCAxMzQ4LjU2IDg2LjA4NzQgMTM1NC40NiA4OC44MzA3QzEzNjAuNSA5MS40MzY4IDEzNjUuNzEgOTUuMDcxNyAxMzcwLjEgOTkuNzM1MkMxMzc0LjYyIDEwNC4zOTkgMTM3OC4xMiAxMDkuODg1IDEzODAuNTkgMTE2LjE5NUMxMzgzLjIgMTIyLjUwNCAx''@;'; + put 'put ''Mzg0LjUgMTI5LjI5NCAxMzg0LjUgMTM2LjU2NEMxMzg0LjUgMTQzLjgzMyAxMzgzLjIgMTUwLjYyMyAxMzgwLjU5IDE1Ni45MzJDMTM3OC4xMiAxNjMuMjQyIDEzNzQuNjIgMTY4LjcyOSAxMzcwLjEgMTczLjM5MkMxMzY1LjcxIDE3OC4wNTYgMTM2MC41IDE4MS43NTkgMTM1NC40NiAxODQu''@;'; + put 'put ''NTAyQzEzNDguNDMgMTg3LjEwOCAxMzQxLjkxIDE4OC40MTEgMTMzNC45MSAxODguNDExQzEzMjcuOTIgMTg4LjQxMSAxMzIxLjQgMTg3LjEwOCAxMzE1LjM3IDE4NC41MDJDMTMwOS4zMyAxODEuNzU5IDEzMDQuMDUgMTc4LjA1NiAxMjk5LjUzIDE3My4zOTJDMTI5NS4xNCAxNjguNzI5IDEy''@;'; + put 'put ''OTEuNjQgMTYzLjI0MiAxMjg5LjAzIDE1Ni45MzJDMTI4Ni41NiAxNTAuNjIzIDEyODUuMzMgMTQzLjgzMyAxMjg1LjMzIDEzNi41NjRaTTEzMTAuMjMgMTM2LjU2NEMxMzEwLjIzIDE0MC40MDQgMTMxMC44NCAxNDQuMDM5IDEzMTIuMDggMTQ3LjQ2OEMxMzEzLjMxIDE1MC43NiAxMzE1LjAz''@;'; + put 'put ''IDE1My42NDEgMTMxNy4yMiAxNTYuMTA5QzEzMTkuNDIgMTU4LjU3OCAxMzIyLjAyIDE2MC41NjcgMTMyNS4wNCAxNjIuMDc2QzEzMjguMDYgMTYzLjQ0OCAxMzMxLjM1IDE2NC4xMzQgMTMzNC45MSAxNjQuMTM0QzEzMzguNDggMTY0LjEzNCAxMzQxLjc3IDE2My40NDggMTM0NC43OSAxNjIu''@;'; + put 'put ''MDc2QzEzNDcuOTUgMTYwLjU2NyAxMzUwLjYyIDE1OC41NzggMTM1Mi44MSAxNTYuMTA5QzEzNTUuMDEgMTUzLjY0MSAxMzU2LjcyIDE1MC43NiAxMzU3Ljk2IDE0Ny40NjhDMTM1OS4xOSAxNDQuMDM5IDEzNTkuODEgMTQwLjQwNCAxMzU5LjgxIDEzNi41NjRDMTM1OS44MSAxMzIuNzIzIDEz''@;'; + put 'put ''NTkuMTkgMTI5LjE1NyAxMzU3Ljk2IDEyNS44NjVDMTM1Ni43MiAxMjIuNDM2IDEzNTUuMDEgMTE5LjQ4NyAxMzUyLjgxIDExNy4wMThDMTM1MC42MiAxMTQuNTQ5IDEzNDcuOTUgMTEyLjYyOSAxMzQ0Ljc5IDExMS4yNTdDMTM0MS43NyAxMDkuNzQ4IDEzMzguNDggMTA4Ljk5NCAxMzM0Ljkx''@;'; + put 'put ''IDEwOC45OTRDMTMzMS4zNSAxMDguOTk0IDEzMjguMDYgMTA5Ljc0OCAxMzI1LjA0IDExMS4yNTdDMTMyMi4wMiAxMTIuNjI5IDEzMTkuNDIgMTE0LjU0OSAxMzE3LjIyIDExNy4wMThDMTMxNS4wMyAxMTkuNDg3IDEzMTMuMzEgMTIyLjQzNiAxMzEyLjA4IDEyNS44NjVDMTMxMC44NCAxMjku''@;'; + put 'put ''MTU3IDEzMTAuMjMgMTMyLjcyMyAxMzEwLjIzIDEzNi41NjRaTTE0MDguMjEgMzcuMzk0NEMxNDA4LjIxIDM2LjI5NyAxNDA4LjU1IDM1LjQwNTUgMTQwOS4yNCAzNC43MTk3QzE0MTAuMDYgMzQuMDMzOCAxNDExLjAyIDMzLjY5MDkgMTQxMi4xMiAzMy42OTA5SDE0MjguMTZDMTQyOS4yNiAz''@;'; + put 'put ''My42OTA5IDE0MzAuMTUgMzQuMDMzOCAxNDMwLjg0IDM0LjcxOTdDMTQzMS42NiAzNS40MDU1IDE0MzIuMDcgMzYuMjk3IDE0MzIuMDcgMzcuMzk0NFYxODQuMDkxQzE0MzIuMDcgMTg2LjY5NyAxNDMwLjc3IDE4OCAxNDI4LjE2IDE4OEgxNDEyLjEyQzE0MTEuMDIgMTg4IDE0MTAuMDYgMTg3''@;'; + put 'put ''LjY1NyAxNDA5LjI0IDE4Ni45NzFDMTQwOC41NSAxODYuMTQ4IDE0MDguMjEgMTg1LjE4OCAxNDA4LjIxIDE4NC4wOTFWMzcuMzk0NFpNMTQ2MyAzNy4zOTQ0QzE0NjMgMzYuMjk3IDE0NjMuMzUgMzUuNDA1NSAxNDY0LjAzIDM0LjcxOTdDMTQ2NC44NSAzNC4wMzM4IDE0NjUuODEgMzMuNjkw''@;'; + put 'put ''OSAxNDY2LjkxIDMzLjY5MDlIMTQ4Mi45NkMxNDg0LjA2IDMzLjY5MDkgMTQ4NC45NSAzNC4wMzM4IDE0ODUuNjMgMzQuNzE5N0MxNDg2LjQ2IDM1LjQwNTUgMTQ4Ni44NyAzNi4yOTcgMTQ4Ni44NyAzNy4zOTQ0VjE4NC4wOTFDMTQ4Ni44NyAxODYuNjk3IDE0ODUuNTcgMTg4IDE0ODIuOTYg''@;'; + put 'put ''MTg4SDE0NjYuOTFDMTQ2NS44MSAxODggMTQ2NC44NSAxODcuNjU3IDE0NjQuMDMgMTg2Ljk3MUMxNDYzLjM1IDE4Ni4xNDggMTQ2MyAxODUuMTg4IDE0NjMgMTg0LjA5MVYzNy4zOTQ0Wk0xNTM3Ljc2IDE0OC4wODVDMTUzOS42OCAxNTIuODg2IDE1NDIuNTYgMTU2Ljc5NSAxNTQ2LjQgMTU5''@;'; + put 'put ''LjgxM0MxNTUwLjM3IDE2Mi44MyAxNTU0LjkgMTY0LjMzOSAxNTU5Ljk4IDE2NC4zMzlDMTU2My42OCAxNjQuMzM5IDE1NjcuMjUgMTYzLjcyMiAxNTcwLjY3IDE2Mi40ODhDMTU3NC4xIDE2MS4yNTMgMTU3Ni45OCAxNTkuNTM5IDE1NzkuMzIgMTU3LjM0NEMxNTgwLjE0IDE1Ni42NTggMTU4''@;'; + put 'put ''MS4wMyAxNTYuMzg0IDE1ODEuOTkgMTU2LjUyMUMxNTgzLjA5IDE1Ni41MjEgMTU4My45OCAxNTYuODY0IDE1ODQuNjcgMTU3LjU1TDE1OTYuMzkgMTY4LjY2QzE1OTcuMDggMTY5LjM0NiAxNTk3LjQyIDE3MC4yMzcgMTU5Ny40MiAxNzEuMzM1QzE1OTcuNDIgMTcyLjI5NSAxNTk3LjA4IDE3''@;'; + put 'put ''My4xMTggMTU5Ni4zOSAxNzMuODA0QzE1OTEuODcgMTc4LjYwNCAxNTg2LjUyIDE4Mi4yMzkgMTU4MC4zNCAxODQuNzA4QzE1NzQuMTcgMTg3LjE3NyAxNTY3LjM4IDE4OC40MTEgMTU1OS45OCAxODguNDExQzE1NTMuMTIgMTg4LjQxMSAxNTQ2Ljc0IDE4Ny4xNzcgMTU0MC44NCAxODQuNzA4''@;'; + put 'put ''QzE1MzUuMDggMTgyLjIzOSAxNTMwLjAxIDE3OC43NDEgMTUyNS42MiAxNzQuMjE1QzE1MjAuODIgMTY5LjQxNCAxNTE3LjExIDE2My43MjIgMTUxNC41MSAxNTcuMTM4QzE1MTEuOSAxNTAuNTU0IDE1MTAuNiAxNDMuNTU5IDE1MTAuNiAxMzYuMTUyQzE1MTAuNiAxMjkuMDIgMTUxMS45IDEy''@;'; + put 'put ''Mi4zNjcgMTUxNC41MSAxMTYuMTk1QzE1MTcuMTEgMTA5Ljg4NSAxNTIwLjYxIDEwNC4zOTkgMTUyNSA5OS43MzUyQzE1MjkuNTMgOTUuMDcxNyAxNTM0LjgxIDkxLjQzNjggMTU0MC44NCA4OC44MzA3QzE1NDYuODggODYuMDg3NCAxNTUzLjMyIDg0LjcxNTggMTU2MC4xOCA4NC43MTU4QzE1''@;'; + put 'put ''NjYuNDkgODQuNzE1OCAxNTcyLjMyIDg1Ljg4MTcgMTU3Ny42NyA4OC4yMTM1QzE1ODMuMTYgOTAuNTQ1MyAxNTg3Ljk2IDkzLjc2ODYgMTU5Mi4wNyA5Ny44ODM1QzE1OTMuODYgOTkuNTI5NSAxNTk1LjU3IDEwMS40NSAxNTk3LjIyIDEwMy42NDRDMTU5OC44NiAxMDUuODM5IDE2MDAuMyAx''@;'; + put 'put ''MDguMzc3IDE2MDEuNTQgMTExLjI1N0MxNjAyLjc3IDExNC4xMzcgMTYwMy43MyAxMTcuNDk4IDE2MDQuNDIgMTIxLjMzOEMxNjA1LjI0IDEyNS4wNDIgMTYwNS42NSAxMjkuMjk0IDE2MDUuNjUgMTM0LjA5NUMxNjA1LjY1IDEzNy4zODcgMTYwNS40NSAxNDAuOTUzIDE2MDUuMDMgMTQ0Ljc5''@;'; + put 'put ''M0MxNjA0Ljc2IDE0Ni45ODggMTYwMy41MyAxNDguMDg1IDE2MDEuMzMgMTQ4LjA4NUgxNTM3Ljc2Wk0xNTU5LjU2IDEwOC43ODhDMTU1My44IDEwOC43ODggMTU0OS4wNyAxMTAuMzY1IDE1NDUuMzcgMTEzLjUyQzE1NDEuNjYgMTE2LjY3NSAxNTM5LjA2IDEyMC41ODQgMTUzNy41NSAxMjUu''@;'; + put 'put ''MjQ4SDE1ODAuNzZDMTU3OS4yNSAxMjAuODU4IDE1NzYuNzEgMTE3LjAxOCAxNTczLjE0IDExMy43MjZDMTU2OS43MSAxMTAuNDM0IDE1NjUuMTkgMTA4Ljc4OCAxNTU5LjU2IDEwOC43ODhaTTE2ODguNTEgMTA4LjE3MUMxNjg4LjEgMTA5LjI2OCAxNjg3LjQxIDExMC4wMjIgMTY4Ni40NSAx''@;'; + put 'put ''MTAuNDM0QzE2ODUuNDkgMTEwLjg0NSAxNjg0LjQ2IDExMC43NzcgMTY4My4zNyAxMTAuMjI4QzE2ODIuMjcgMTA5LjY4IDE2ODAuOSAxMDkuMiAxNjc5LjI1IDEwOC43ODhDMTY3Ny43NCAxMDguMzc3IDE2NzYuMSAxMDguMTcxIDE2NzQuMzEgMTA4LjE3MUMxNjcxLjI5IDEwOC4xNzEgMTY2''@;'; + put 'put ''OC40MSAxMDguNzg4IDE2NjUuNjcgMTEwLjAyMkMxNjYyLjkzIDExMS4yNTcgMTY2MC40NiAxMTIuOTcyIDE2NTguMjYgMTE1LjE2NkMxNjU2LjIxIDExNy4yMjQgMTY1NC41NiAxMTkuNjkzIDE2NTMuMzMgMTIyLjU3M0MxNjUyLjA5IDEyNS4zMTYgMTY1MS40NyAxMjguMTk3IDE2NTEuNDcg''@;'; + put 'put ''MTMxLjIxNEwxNjUxLjA2IDE4NC4wOTFDMTY1MS4wNiAxODUuMTg4IDE2NTAuNzIgMTg2LjE0OCAxNjUwLjAzIDE4Ni45NzFDMTY0OS4zNSAxODcuNjU3IDE2NDguNDYgMTg4IDE2NDcuMzYgMTg4SDE2MzEuMTFDMTYzMC4wMSAxODggMTYyOS4wNSAxODcuNjU3IDE2MjguMjMgMTg2Ljk3MUMx''@;'; + put 'put ''NjI3LjU0IDE4Ni4xNDggMTYyNy4yIDE4NS4xODggMTYyNy4yIDE4NC4wOTFWODkuMDM2NUMxNjI3LjIgODcuOTM5MSAxNjI3LjU0IDg3LjA0NzYgMTYyOC4yMyA4Ni4zNjE4QzE2MjkuMDUgODUuNTM4OCAxNjMwLjAxIDg1LjEyNzMgMTYzMS4xMSA4NS4xMjczSDE2NDcuMzZDMTY0OC40NiA4''@;'; + put 'put ''NS4xMjczIDE2NDkuMzUgODUuNTM4OCAxNjUwLjAzIDg2LjM2MThDMTY1MC43MiA4Ny4wNDc2IDE2NTEuMDYgODcuOTM5MSAxNjUxLjA2IDg5LjAzNjVWOTQuNTkxNkMxNjU1LjA0IDkxLjcxMTEgMTY1OS4yOSA4OS4zNzk0IDE2NjMuODIgODcuNTk2MkMxNjY4LjM1IDg1LjY3NTkgMTY3My4y''@;'; + put 'put ''MiA4NC43MTU4IDE2NzguNDMgODQuNzE1OEMxNjgzLjc4IDg0LjcxNTggMTY4OC40NCA4NS43NDQ1IDE2OTIuNDIgODcuODAyQzE2OTQuMzQgODkuMDM2NSAxNjk0Ljk2IDkwLjYxMzggMTY5NC4yNyA5Mi41MzQxTDE2ODguNTEgMTA4LjE3MVoiIGZpbGw9IiM4RUM2M0YiLz4KPC9nPgo8ZGVm''@;'; + put 'put ''cz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMDVfNyI+CjxyZWN0IHdpZHRoPSIxNjg5IiBoZWlnaHQ9IjI0MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K'';'; + put 'run;'; + put '%sasjsout(SVG64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=favicon-ico; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''iVBORw0KGgoAAAANSUhEUgAAApgAAAJ6CAYAAACMvTJAAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVVwdUk8kWnr+kEBJaIAJSQm+CFOnSe0c62AhJgFAiJAQVO7Ko4FpQEQFR0RUQRdcCyKIidmUR7P1hQWVlXSzYUHmTArq+dt49Z/75cufeO9+d3JkzA4CiNSsnJwtVAiCbnyeICvBmJiQmMUmP''@;'; + put 'put ''AAY0AB0YAiUWW5jjFRkZCqCM9X+XdzcAIu6vWopj/ev4fxVlDlfIBgCJhDiFI2RnQ3wYAFydnSPIA4DQBfUGc/NyxHgIYlUBJAgAERfjNClWF+MUKZ4ksYmJ8oHYEwAylcUSpAGgIObNzGenwTgKYo7WfA6PD3E1xO7sdBYH4nsQT8rOngOxIhli05Tv4qT9LWbKeEwWK20cS3ORCNmXJ8zJYs3/''@;'; + put 'put ''P5fjf0t2lmhsDn3YqOmCwChxznDd6jPnhIgxFeJ2fkp4BMQqEJ/ncST2YnwnXRQYK7MfZAt94JoBBgAo4LB8QyDWgpghyoz1kmFblkDiC+3RcF5eUIwMpwjmRMnio/n8rPBQWZyV6dygMVzDFfpFj9mk8vyDIIaVhh4uSI+Jl/JET+fz4sIhVoC4R5gZHSLzfVCQ7hM+ZiMQRYk5G0L8NlXgHyW1''@;'; + put 'put ''wdSzhWN5YVZslmQuWAuYZ156TKDUF0vgChNCxzhwuL5+Ug4Yh8uPlXHDYHV5R8l8i3OyImX2WA03KyBKus7YAWF+9JjvlTxYYNJ1wB5lsIIjZXO9y8mLjJFyw1EQCnyAL2ACEWwpYA7IALzuwZZB+Es64g9YQADSABdYyjRjHvGSET78RoMC8CdEXCAc9/OWjHJBPtR/GddKv5YgVTKaL/HIBE8h''@;'; + put 'put ''zsY1cXfcFQ+FX0/YbHEn3HnMj6k4NivRj+hLDCT6E83GebAh6yzYBID3b3QhsOfC7MRc+GM5fItHeEroJTwiXCf0EW6DOPBEEkVmNZtXKPiBOROEgT4YzV+WXcr32eHGkLU97o27Qf6QO87ANYElPgVm4oV7wNzsofZ7hqJxbt/W8sf5xKy/z0emVzBXsJexSBn/Z3zGrX6M4vPdGnFgH/KjJbYS''@;'; + put 'put ''O4Sdw05iF7B2rAUwsRNYK9aFHRPj8Up4IqmEsdmiJNwyYRzemI11o/WA9ecf5mbJ5hevlzCPOy9PvBl85uTMF/DS0vOYXvA05jKD+GyrSUxbaxsnAMRnu/ToeMOQnNkI4+I3XW4HAM4lUJn2TccyAODoUwDo777pDF7Dcl8HwLEetkiQL9WJj2NAABSgCHeFBtABBsAU5mMLHIAr8AR+IBhEgBiQ''@;'; + put 'put ''CGbBFU8H2ZDzXLAQLAPFoBSsA5tAJdgGdoJ6sA8cBC2gHZwEZ8El0AOug7uwLvrBCzAE3oERBEFICA2hIxqILmKEWCC2iBPijvghoUgUkogkI2kIHxEhC5HlSClShlQiO5AG5FfkKHISuYD0IreRh8gA8hr5hGIoFVVFtVFjdDLqhHqhIWgMOhNNQ3PRArQIXYNWoLXoXrQZPYleQq+jfegLdBgD''@;'; + put 'put ''mDzGwPQwS8wJ88EisCQsFRNgi7ESrByrxZqwNvg/X8X6sEHsI07E6TgTt4S1GYjH4mw8F1+Mr8Yr8Xq8GT+NX8Uf4kP4VwKNoEWwILgQgggJhDTCXEIxoZywm3CEcAbum37COyKRyCCaEB3hvkwkZhAXEFcTtxL3EzuIvcTHxGESiaRBsiC5kSJILFIeqZi0hbSXdIJ0hdRP+kCWJ+uSbcn+5CQy''@;'; + put 'put ''n1xILifvIR8nXyE/I4/IKckZybnIRchx5ObLrZXbJdcmd1muX26EokwxobhRYigZlGWUCkoT5QzlHuWNvLy8vryz/DR5nvxS+Qr5A/Ln5R/Kf6SqUM2pPtQZVBF1DbWO2kG9TX1Do9GMaZ60JFoebQ2tgXaK9oD2QYGuYKUQpMBRWKJQpdCscEXhpaKcopGil+IsxQLFcsVDipcVB5XklIyVfJRY''@;'; + put 'put ''SouVqpSOKt1UGlamK9soRyhnK69W3qN8Qfm5CknFWMVPhaNSpLJT5ZTKYzpGN6D70Nn05fRd9DP0flWiqolqkGqGaqnqPtVu1SE1FbUpanFq89Sq1I6p9TEwhjEjiJHFWMs4yLjB+DRBe4LXBO6EVROaJlyZ8F59orqnOle9RH2/+nX1TxpMDT+NTI31Gi0a9zVxTXPNaZpzNWs0z2gOTlSd6DqR''@;'; + put 'put ''PbFk4sGJd7RQLXOtKK0FWju1urSGtXW0A7RztLdon9Ie1GHoeOpk6GzUOa4zoEvXddfl6W7UPaH7B1ON6cXMYlYwTzOH9LT0AvVEejv0uvVG9E30Y/UL9ffr3zegGDgZpBpsNOg0GDLUNQwzXGjYaHjHSM7IySjdaLPROaP3xibG8cYrjFuMn5uomwSZFJg0mtwzpZl6mOaa1ppeMyOaOZllmm01''@;'; + put 'put ''6zFHze3N082rzC9boBYOFjyLrRa9kwiTnCfxJ9VOumlJtfSyzLdstHxoxbAKtSq0arF6OdlwctLk9ZPPTf5qbW+dZb3L+q6Nik2wTaFNm81rW3Nbtm2V7TU7mp2/3RK7VrtXUyymcKfUTLllT7cPs19h32n/xcHRQeDQ5DDgaOiY7FjteNNJ1SnSabXTeWeCs7fzEud2548uDi55Lgdd/nK1dM10''@;'; + put 'put ''3eP6fKrJVO7UXVMfu+m7sdx2uPW5M92T3be793noebA8aj0eeRp4cjx3ez7zMvPK8Nrr9dLb2lvgfcT7vY+LzyKfDl/MN8C3xLfbT8Uv1q/S74G/vn+af6P/UIB9wIKAjkBCYEjg+sCbQdpB7KCGoKFgx+BFwadDqCHRIZUhj0LNQwWhbWFoWHDYhrB74Ubh/PCWCBARFLEh4n6kSWRu5G/TiNMi''@;'; + put 'put ''p1VNexplE7Uw6lw0PXp29J7odzHeMWtj7saaxopiO+MU42bENcS9j/eNL4vvS5icsCjhUqJmIi+xNYmUFJe0O2l4ut/0TdP7Z9jPKJ5xY6bJzHkzL8zSnJU169hsxdms2YeSCcnxyXuSP7MiWLWs4ZSglOqUIbYPezP7BceTs5EzwHXjlnGfpbqllqU+T3NL25A2kO6RXp4+yPPhVfJeZQRmbMt4''@;'; + put 'put ''nxmRWZc5mhWftT+bnJ2cfZSvws/kn56jM2fenN4ci5zinL5cl9xNuUOCEMFuISKcKWzNU4XXnC6Rqegn0cN89/yq/A9z4+Yemqc8jz+va775/FXznxX4F/yyAF/AXtC5UG/hsoUPF3kt2rEYWZyyuHOJwZKiJf1LA5bWL6Msy1z2e6F1YVnh2+Xxy9uKtIuWFj3+KeCnxmKFYkHxzRWuK7atxFfy''@;'; + put 'put ''Vnavslu1ZdXXEk7JxVLr0vLSz6vZqy/+bPNzxc+ja1LXdK91WFuzjriOv+7Geo/19WXKZQVljzeEbWjeyNxYsvHtptmbLpRPKd+2mbJZtLmvIrSidYvhlnVbPlemV16v8q7aX61Vvar6/VbO1is1njVN27S3lW77tJ23/daOgB3Ntca15TuJO/N3Pt0Vt+vcL06/NOzW3F26+0sdv66vPqr+dINj''@;'; + put 'put ''Q8MerT1rG9FGUePA3hl7e/b57mttsmzasZ+xv/QAOCA68Mevyb/eOBhysPOQ06Gmw0aHq4/Qj5Q0I83zm4da0lv6WhNbe48GH+1sc2078pvVb3Xteu1Vx9SOrT1OOV50fPREwYnhjpyOwZNpJx93zu68eyrh1LXT0053nwk5c/6s/9lT57zOnTjvdr79gsuFoxedLrZccrjU3GXfdeR3+9+PdDt0''@;'; + put 'put ''N192vNza49zT1ju19/gVjysnr/pePXst6Nql6+HXe2/E3rh1c8bNvlucW89vZ91+dSf/zsjdpfcI90ruK90vf6D1oPYfZv/Y3+fQd+yh78OuR9GP7j5mP37xRPjkc3/RU9rT8me6zxqe2z5vH/Af6Plj+h/9L3JejAwW/6n8Z/VL05eH//L8q2soYaj/leDV6OvVbzTe1L2d8rZzOHL4wbvsdyPv''@;'; + put 'put ''Sz5ofKj/6PTx3Kf4T89G5n4mfa74Yval7WvI13uj2aOjOSwBS3IVwGBDU1MBeF0HAC0R3h16AKAoSN9eEkGk70UJAv8JS99nEnEAoM4TgNilAITCO0oNbEYQU2EvvnrHeALUzm68yUSYamcrjUWFLxjCh9HRN9oAkNoA+CIYHR3ZOjr6ZRckexuAjlzpm08sRHi/324mRt2XRobAD/JPCotuA2JA''@;'; + put 'put ''n4YAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAGdaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8y''@;'; + put 'put ''Mi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjY2NDwvZXhpZjpQaXhlbFhEaW1lbnNp''@;'; + put 'put ''b24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj42MzQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KSHKtHgAAABxpRE9UAAAAAgAAAAAAAAE9AAAAKAAAAT0AAAE9AACKlRxL/UIAAEAASURB''@;'; + put 'put ''VHgB7L0HgNxmeqb5FVChIzuRTTZzzlESRUVSFCUqzIwmjyZnx71zWO96b89h7b31ede+27O9DjOe8eSo0USlURxpGESKYhBzzqFJdrNzqADg3g/FoppUk6zuQlWjUC+kZmXgx/OjUC++GFq25v2OcCEBEiABEiABEiABEiABjwiEKDA9IsnVkAAJkAAJkAAJkAAJuAQoMHkgkAAJkAAJkAAJkAAJ''@;'; + put 'put ''eEqAAtNTnFwZCZAACZAACZAACZAABSaPARIgARIgARIgARIgAU8JUGB6ipMrIwESIAESIAESIAESoMDkMUACJEACJEACJEACJOApAQpMT3FyZSRAAiRAAiRAAiRAAhSYPAZIgARIgARIgARIgAQ8JUCB6SlOrowESIAESIAESIAESIACk8cACZAACZAACZAACZCApwQoMD3FyZWRAAmQAAmQAAmQ''@;'; + put 'put ''AAlQYPIYIAESIAESIAESIAES8JQABaanOLkyEiABEiABEiABEiABCkweAyRAAiRAAiRAAiRAAp4SoMD0FCdXRgIkQAIkQAIkQAIkQIHJY4AESIAESIAESIAESMBTAhSYnuLkykiABEiABEiABEiABCgweQyQAAmQAAmQAAmQAAl4SoAC01OcXBkJkAAJkAAJkAAJkAAFJo8BEiABEiABEiABEiAB''@;'; + put 'put ''TwlQYHqKkysjARIgARIgARIgARKgwOQxQAIkQAIkQAIkQAIk4CkBCkxPcXJlJEACJEACJEACJEACFJg8BkiABAJBwHEcMc2QmGFbwtGQhCM27ockEnMkHBOJRHGL52OVtlRW2VJW5UhZpT7W53G/PCTRCkdC+O+GC162EiL9vY4k4yGJ9+OvRx+HpKcTt90hSeA5Ky6SSuI+3qvvTyUMsZL4DJ6z''@;'; + put 'put ''UrqFm2znhoPgiyRAAiTgbwIUmP6eH46OBEgAOiwCsRgpE4mVO64grKjCfQjDimo8rtDnRaJ4LVrmuILSjAhEo4hpiBhh/BkG/iDp8E9IHLHtNFbbdtw70KaiAhUvZbdgTFgdVog7+r/7l34yvQUR27Lxh1tszMF2kokQBCfEJv5SEKb9EKAJiNI4/vp7DOntdiBUcb/r8nN9+j5DUimIXt0AFxIg''@;'; + put 'put ''ARIoIgIUmEU0WRwqCQSVQCjkSLlaFGFBrKh1ZFSDI1U16fsV+jwEZQRWyDCskZGwIWYEMi6juSAKIeH0H1ckqk7URUXdFb145U76tYL9e3mMeuPeNdJPGHqL/43LAlXHo0N0LAeC0oYYtcVSyyj+etU62mVId4dIT7uBPzwHS2lPZ0iSeN1x0uvUdXAhARIgAb8QoMD0y0xwHCQQeAJqXRRYHW2p''@;'; + put 'put ''qheprrelpt6RStxW1YorLqNwU0diEJBwdeuiVkUHwtG1NEIwXjY8ptVYUHmltSesrek7KkYzQlRFqA2LZjKekr5uQ/p6HAhPU7pbRbouhaSzNS1A1U2fhBv+pu7+oDLkfpEACYw4AQrMEZ8CDoAEgkfAhFtahaRaIkc12lI7xpHqBkuqa+DOhkUyVhZ24yPThkeISFju1PLoCsmRsjYWyzRcNlhe''@;'; + put 'put ''EZ5m2hKq2Ky4Lf39DuJARbph6Wxvgei8gFv86WMVpY59eQXFsr8cJwmQQFESoMAsymnjoEnAHwTUwhhBvGNlLayREJH14yAqxzpSOxqJNDVIoIFFUt3Zqh4zlkiKyDzOnWpHuN3VABxCgpMbD4r7qbiFWE+Izg5HOi4Y0nbelLaLAvEJiydc7bZF0ZnHWeGqSaAkCVBgluS0c6dJYHgEDI2VRGJN''@;'; + put 'put ''TaMjDeNtaWiCoMT9asRLRitMJNVArMAsqRZJ5LjAJElz5PBIe/wpFZwqPDE/IVg89b4FV3tfry29bQ7EpiGtZwy51GxAgGrSEWM7PZ4Bro4ESo4ABWbJTTl3mASyJ2AY6tqGmISQHD0RgnICXN6Imyyv1jJABvQjxCSECvQkxWT2WP3zTgjO8GXRqZbPVMKCGx1WTrjW284ZcvEUROc5uNcvocQS''@;'; + put 'put ''Xev+mTeOhASKgAAFZhFMEodIAoUiYJrpDO6GCbY0TlFBaSMZR7O7w9AfaTe3pdnZapmkcbJQ01K47ailE4LTtXSmIxtgzbSksw1CExbOC8dD0noWVk4kFdmWW6ipcGPjlkiABIqKAAVmUU0XB0sC3hIIwUJZhfjJMRMdaZzqyGgIylGjYaGshB/VdXUjfk/FJF3d3oIvprUNtHIiL70PgrPrkrgu''@;'; + put 'put ''9fPHDWk5bbgC1EHNTy4kQAIkkCFAgZkhwVsSKAkC6cLkGj85biqslPirHWMj49uE5QqSEiIhpVXIr9QDKgko3MmhEMBxEtaC9e41iNbptKTjvMgFuNObj4Wk5YyJgvHIVqeFeyhU+V4SCBwBCszATSl3iASuJqBWyuo6WCinODJ+puXGUlbVaXccLVmD0jZaIogWyquh8VH2BNTCibR1vUDRxCHN''@;'; + put 'put ''VG89G5LmI6ach0u9HQlEzFLPHiffSQJBIUCBGZSZ5H6QwAACZlhLBjkybrolTbNsqUctysoaFKeE21sLdWscJWMoBwDjXW8IZGI4VXAiaSgO6+YlZKU3Q2g2HzZh3Uz3aUekpzfb41pIgAR8S4AC07dTw4GRwNAIRNFGsX6CJRNm2tI0A7UoUT6orNx0M73VskQr5dB48t0eEBhg3Uyh/WUnug2p''@;'; + put 'put ''G/2Mis0T6l6H0GSrSw9AcxUk4D8CFJj+mxOOiASyIqBFzmNlIg0oHzRxliXjYamsGYNWi1HUMITrW3ta00qZFUq+qRAEoCU1O91AAXgLsb49bbacg8g8cwCudIhOt8sQxWYhZoLbIIGCEKDALAhmboQEvCNgRhwZo5bKOY4rLGsaL4tKTdDR6uZMrvAONteUNwIG3OgmxKbmlHWh2PuF4yKnDkJs''@;'; + put 'put ''InaztwebpdjMG3uumAQKQYACsxCUuQ0SyJGAgfqUdYipnDQbwnK2dtBBi8YyJOlQVOZIlh/3A4EQxKYmCmlocNclWDaPGXJ6ryHnjpuS6NMRMmbTD/PEMZDAUAhQYA6FFt9LAgUkoIXNq2odCEpLpsyH1XKSjXaMSNWl+7uAs8BNFZpAxrJpIcRDOwqdOWjIyX3oKoRC71aCQrPQ88HtkcBwCVBg''@;'; + put 'put ''DpccP0cCeSDgxlWWizRNs2TyAhtlhWypqjHh9XYQUwnzDssJ5YE6V+lLAtCSrtiEZTMZt6UFpY9O7Ydlc78p7RCejkWx6ct546BI4DIBCkweCiTgAwLqAteC51MX2jJhnpYVciQcNhBTCWnpNvr2wSA5BBIYKQLQkvp9EPzf3+Wg7JHI8V2mnD1sSH+vCk2KzZGaGm6XBK5HgALzemT4PAnkmYBa''@;'; + put 'put ''K8sqHNSpdGTGopQ0ThOpqEIcGuIqLSbr5Jk+V1+sBNxe6UgO0koJHS0O3OchObHHlEvokW7Rqlms08pxB5AABWYAJ5W75G8C2lmnZowjUxdZMnW+JbVjUboF5VtYq9Lf88bR+Y+Aljwy4UKP99pyHiWPju40ELMZln7NQqdV038TxhGVFAEKzJKabu7sSBIIwQ3eiESdOStSMnEmrJfV6SxwWitH''@;'; + put 'put ''cla47UAQ0ILul62a7RccOYEMdHWht51nT/RAzC93oigJUGAW5bRx0MVCwE3agRt84hxbZt1iSeNkR6IxxlYWy/xxnMVHIGPV7O9x5PiekBzZhtqap/RijnGaxTebHHExE6DALObZ49j9S0BLDNU4Mg1u8BnLbNSwRH5CyJBkEgGWLITu33njyAJDQGM1IxFD4nFLLsB9fnir6RZyj/fCeR6i2AzM''@;'; + put 'put ''RHNHfEuAAtO3U8OBFSMBrV1ZN9aWGbfYMm2hJdUNJmIrbbG1xBAXEiCBwhOAlowgA11LfV06J3L4LVOOvRWSng6kpDNOs/DzwS2WDAEKzJKZau5oPglo4s6YyYivvM2SSXNtZIObkoSwZImhfFLnuklgaARc9znEZmeL5cZoHt5uSPsFjdOkRXNoJPluErg5AQrMmzPiO0jgugS0fuW4GZbMXY4W''@;'; + put 'put ''jkjciZWjtV0S9VNYEP26zPgCCYw0AW1NqVbNnk5LTqJT0MHNprSgU5BjU2iO9Nxw+8EhQIEZnLnknhSQgAlhOXGOJXPusKVpqiXhSJjxlQXkz02RgCcEEKcZRZxmX68lZw+FZP8bYTl/3EAtWgpNT/hyJSVNgAKzpKefOz9UAmbYlsnoCz5vhSVjpkBYmhSWQ2XI95OA7whonGYUYS1ICDp7JCQH''@;'; + put 'put ''NoflDLoEUWj6bqY4oCIiQIFZRJPFoY4cgbSwtGXuClvGTnXcLFRN3mFG+MjNCbdMAp4TUKEZMSWVTKEdZVj2bwrJ6QNI1KNF03PUXGHwCVBgBn+OuYc5EDBNWyaiN/j8OwcIS42x5EICJBBcApeFpjZBaD4Wkn2vG3IKQpMWzeBOOffMewIUmN4z5RoDQECTdybOtGT+PbaMmwaLpbZypLAMwMxy''@;'; + put 'put ''F0hgCAQgNMOwaFpWSs4dMmXvJkPOHqbQHAJBvrWECVBglvDkc9ffSUDbOTZNsWXePSlkhdtu8k6KxdHfCYrPkEApEbgsNNV1fvqQIfs3huUckoHYHaiUDgLu61AJUGAOlRjfH0gCBupY1jfZsuDelEyeq+0cEfBPYRnIueZOkcCwCVx2nSeQDHTqQEj2rtfyRrBosrzRsJHyg8ElQIEZ3LnlnmVB''@;'; + put 'put ''QDvGVY+GsLwrJdOWoEB6BepYJtjOMQt0fAsJlC4BnDeiyDrv67FRsF1kz+th6WDB9tI9HrjngxKgwBwUC58MPgFHyqscmYNyQ3NQJL26lgXSgz/n3EMS8JjA5Tqa3SjYfuhNuM5RR7OnHeqTLSg9Bs3VFSMBCsxinDWOOScCkYgjU5elZCEywxuaDLZ0zIkmP0wCJJDpDNR20ZZ9KG10ZFtY+ntD''@;'; + put 'put ''bjkz0iGBUiVAgVmqM1+C+62Z4ePR1nHRKiTyTLPdbo52yilBEtxlEiCBfBAw0ILSRAvKCydt2bXOlFP7kIGeUosmFxIoPQIUmKU35yW3x6GQIzWNtixamZRpC1F2BLFTKY2z5EICJEACeSBgov2kbdtyen9Idr8Wlovoc85EoDyA5ip9TYAC09fTw8HlQsBxHKmoEpm9IiXz7rCkahQTeHLhyc+S''@;'; + put 'put ''AAkMgQAMl9oVqK/PkiNbDdm70ZSuNgMroEVzCBT51iImQIFZxJPHoV+fgBl2ZPI8SxbfZ8no8Yak0JHDsegOvz4xvkICJJAXApcTgdouWrJnvSFHtkckmaDIzAtrrtRXBCgwfTUdHEyuBNQdXj/OlsWrbZk83xIjZCAGiq0dc+XKz5MACeRGQOMz9e/sEZGdvzJZqD03nPx0ERCgwCyCSeIQb05A''@;'; + put 'put ''3eFllSJz1R1+J93hNyfGd5AACYwEAY0B10Lth+E2370+LN1tas2kRXMk5oLbzC8BCsz88uXaC0DAzQ5HW8clq1Mybgrd4QVAzk2QAAnkQgChmFHEZ7Zd0GxzuM13hMVKUmTmgpSf9R8BCkz/zQlHlDUBR6rqHJQdSsmspbaYUbjDk3SHZ42PbyQBEhhRAuoy125iJw/Abf5KBG0nQ+I4FJojOinc''@;'; + put 'put ''uGcEKDA9Q8kVFZKAGbZl6mJYLZHEUz/WcF1OwhyeQk4Bt0UCJOARgXAM2eZdlux93ZR9aDuZ6KPI9AgtVzOCBCgwRxA+Nz10Anq1XzPGkqX3Q2AugrUSotJmdvjQQfITJEACviKg3YDCpoHkH1t2vBRmEpCvZoeDGQ4BCszhUONnRoSAiRaPs27RTjwpqalnTcsRmQRulARIIK8EwijSHo/bcvAN''@;'; + put 'put ''Q/agG1BPl8GWk3klzpXniwAFZr7Icr2eEXBLD421ZemDFmpbwmhpO7RaekaXKyIBEvAdgcu1M5vRcnL7iyhpdNTEOY9uc9/NEwd0QwIUmDfEwxe9IKACMYzC52ZYxIg6KMiRPlGqUEyhT6+N7Ekrpd7ud55ATbx/1rIUYi1TSOgJSxLlPbiQAAmQQCkQ0JaTyYQjBzZnrJmaFPTO82QpsOA+Fh8B''@;'; + put 'put ''CszimzMfj9iRylr0/R5tS22j9v9Glne1LVG0aywrg7iEiztk4A/Fz1VLhhBCaaHDTjIBl1CfSH9XSLo6DOlqEem4COGJ1xfcjVjL+bBYYq/ZicfHU8+hkQAJ5IfAZWvmeVgzt72I2Myj6GtOa2Z+WHOtnhKgwPQUZ+mtLFpmy+iJtjTNsGTsFJFRDSh4XoVg9bD23H3bne0meOMf93YAJvdaXPUm''@;'; + put 'put ''7hiGxhrph0SSKQslh9DLN3a5E8+1HxywDt4lgaESuMoIdPmBeyzqiq7cuclaBx7PKPR/ZRn4/JUneYcEciOg1sxEwpYDGw3ZtT4i8d5sD9TctstPk8BwCVBgDpdcCX/OMEUap6RkynxbJs52pLpeRAPTNZs7pRndcH3nurg60/0n1zXx80En4P7MwsqjC65R8A9a8qlKTBvK3edV/zn6HyIsbJjG''@;'; + put 'put ''bbQPtS0cs3jBsWEtx3Fr41at5LbWIbzJIaxGeC3w795ie2qZN3S7JuqxYhAGLrBC+J5oOEh6fFilrlPH4W7THVD6q6KPb7I9dyf4DwngGIvgXHv2iCNbnzel5TSOYRy3XEjAjwQoMP04Kz4dU7TclikLLZl9K6yW421YFxETicLmdF37dMICMqy0QIN4U8GoVu6McIQosyAWk8i41RjeOGoHpuIh''@;'; + put 'put ''3DrS3yuoJYjQix48j+cSsPYk+/FcHJ9BSEYqhYuhBGJ/ITjVUu4gBsO9LsI67SzCfF2LOwSkKkYznB6bhoBEEGdsRnDBFcNfFBb4Mlj08RetwB/CRGIVCBep1Pvpx5EY4pNjKhqwDl0PVuxqTR2PCmGNDdGteHDRll4T/w0CAW032d9tyVu/NhGfaeJYxpeCCwn4jAAFps8mxI/DiZZZKA9ky5wV''@;'; + put 'put ''ttShqLmNHzsLFqCbWXn8uC8ck38JuJ5qWGhMtQhqhxNXQDoQhRCREId9PRCOiNPt6dA/Q3o7Q9Lbhdjd7hAEZVpAppAwZkNspmMt/Luvhlo8kfgWU6FZrqJTpHwUYpjxV1GTvtX7KkzLIEo1VCQMAeooJFcEqwUWd9L/+3dHObK8EdDviH5XTuwTWDPD0n4RIhPHAxcS8AsBCky/zIQPx6Fuv2mL''@;'; + put 'put ''LVm80paG8WrtUdciz2A+nKqiGlLGZayu5BBEU0ZIxvtTEodY7IFw7LhgSMclke4WU7rbVVymrZBqqfS7ePRqMtRiG47ZUo4kuSokz2kC3Sgk0FXX6WMbVRVgES2DyID1U5lk3P9q7aTL3atZ8P96IugC1H7Rkm0vmHJyH3qaozIHFxLwAwEKTD/Mgu/G4Ej9OFtueTAlk7TuJMZnJyksfTdNRTCg''@;'; + put 'put ''a8WkKp8UEhXUha2WyI6WkLRdCEknqgZ0tqhVEglecYMC6SZzayL+s0ItnhCdtWNQsWEc/hosiE9YPKu1aoOJUAKITjgaUrgwFFg7+Q2+CdQiflljfh3EU+zdZMquX6HtJC7IWM6oiCc0IEOnwAzIRHq1GyHDlnl32LL4viR+wMKIacsiIM2rjXM9RU/AFZSXW95p/VONdezvtaX7kiFtEJGtZwxp''@;'; + put 'put ''P49yVK1wa+NH0GK5FQ/nPO1uV+tmLRoT1EN06m3NaJEKiM4o3OyaAOVgTjR2VWt/UXR6iH+kV4UvXxSxmWeQAPTmLw0kAJm4UKM1c6SnpZS3T4FZyrM/YN/VvlGF2K/lj6ZkxmK1euAZjfHiQgI3IKA/X24smFuWynETbrphheyAiGyBmLx0FsKyGS7ubtNNqLnBqvhSPgjAYhxDfGdVHcJcmhxp''@;'; + put 'put ''QEmxBngnqhs07lNj+C7HVKuVk4IzHzNQ8HVqAlBvpy1bXzLk2A4YCRCXzIUERoIABeZIUPfbNmFpapxky13vs6RhgiZL0Grptynyy3jcn6rLFkoNntQMbo2RbD0bkgsnDdwidhLxk5rRzcWfBExkv1fUWq6Fc8zkdEUIbYxQVmWIaaqrFRZOCk5/Tl6WozLwHdXv5wG4zHfAZd6L5Di6zLOEx7d5''@;'; + put 'put ''RoAC0zOUxbkidWNORj3LOx9LIYsVLkvEx3EhgYEEtCyQCg+9TSEWt6fTkfZzITl33ICoRBzlRRMlgSgoBzIrpvuamF4Jt7paOMdMsWTMZEfqxtjIXtc5h4XTrRnKGM5imlN3rJjXjMt8y7Ome/FHl3nRzWJRD5gCs6inL7fBa5b4zFtTcsejlphRLe9Cl3huRIPxaVcqagZzGDFc+K+/N+VaJZsh''@;'; + put 'put ''KM8fxw/VGS0PRItIMGb7nXuhFk51qY+BV6NpOiycuK2qD0GspJOG1LqpyUNcioOAusy72y2UMorI8d3aGY0Xg8Uxc8U/SgrM4p/DYe2BistZt1ly57tR90UD/xlvOSyOQfmQ/uRkYiltCAi1UraeCsmZo6Y0Hwu55YLQvZNLCRKIlaeThZpm2DJuakrqmxC/WYEsdZg+U3pQMHbT90eFusy1g9Tu''@;'; + put 'put ''9cgyfzWM2rIUmb6ftAAMkAIzAJM41F3IWC7veg9+HLR+HmKuuJQegbSoRNwdalFqUldXqy0X4fI+fcB04ym722mlLL2j4sZ7rO0xR9U7Mg6WzfGzYN2cYKM4PDoQIYQilaTYvDG9EX4VhoQIkvGO77Vly7Nh6URlB1TuH+FBcfNBJkCBGeTZHWTfNOZyygJb7v1gUgwUaKblchBIAX7KFZUaUwn3''@;'; + put 'put ''t4rKbojKc8cMOX3QkIsn0vXzArz73DVPCaTrcI6basnEOY6MRfxmZQ36sFNsekrZ65VpYfbWs7Zsetp0Q14c9jL3GjHXd5kABWYpHQoQl2MnOXL/J+MoXaLB+7RclsL0uzaKyzGV6v7uaHPkAuIpT+6FqDxJUVkKx0Ah9rGyxpax0yyZNEBsapKQRTd6IfAPaRtmxEAdWlveRPefI1vDaP9LS+aQ''@;'; + put 'put ''APLNWRGgwMwKU/G/SZM1RiFTdM2nU1LXxGzx4p/Rm++BZgebl+tTakzlRZQROr43JM2Iq+zthOLkQgJ5IqDF3sfPdCA2kzJ6CiydVZowph3BkCCUp21ytUMjoDHX2jJr16uGvPVahMk/Q8PHd2dBgAIzC0hBeEsk4sg9H0rI9KUG61wGYUKvsw9qhwjBRWmERRL9trSeFjm535BT6FHc2UpReR1s''@;'; + put 'put ''fDpPBDQkR/unT5pny+R5joxusiVcpt4TaBvNRs/TdrnaLAnghBFBlvnhbSJvPIMLz27GXWdJjm/LggAFZhaQiv0tIdOWBXdZcvu7UMeQrR+LfToHHX/GWmkjYauzzZYz+005tgexVqdZlmRQYHyy4ARMXOSOmaB1d5Myaa4j1Sh9pNnNllo1qTQLPh8DNxhB7/rmo7Zs+ElE2tHSFZepA1/mfRIY''@;'; + put 'put ''FgEKzGFhK6IPwYIwZoIlD34uhStVZowX0czddKjuzwAyQzVZK9HjyPlTgjp3ppsF3oc6lVxIwK8EyqscmTgrJVMWatwm2lmWw6qJJHRaNUduxsJI/ulssWT9T8Ny/miYon/kpiIwW6bADMxUDr4jkZgtqz+eRJYnyojQejk4pCJ7VqWjgSB9/QXoanfkNKyVR3cY0oI2jbZFYVlk01nSwzVwAVyH''@;'; + put 'put ''UkfTITQnzUvJqAaEd+CiyUL3IFo1C39o6MVqsldkMzr/HN1hMvmn8FMQqC1SYAZqOq/eGa13Oef2FHqMj6xr3LW0wRWmrQa1OPOVnrj4BdGOIDZu1bXLgKyr5+/aR2k3eLq8UOsZR47tNOUEMsF72hlbeS0rPi4+AuXVSAqabcm0pZY0TtbYwLTQZCH3ws6lm/yD8/FbSP7ZieQfXrQWln+QtkaB''@;'; + put 'put ''GaTZHLAvmjVejbIhj/xGQirqDHEKXJJIxZDGV2kP6wQsp71d6GHdJRLvgTu3HyIT/0XLbYlWog9ytYi6zGJlKJeB2owpWC8oNtOT6Ypz6EcD2eCJXlvOomblkW2mnD0CS0OcwnLAIc+7ASGgsZpjJ1syY5lmoltSUYMMdD0lqFUzIPvo+93AiScCL8nezSJvPhfmucb3E+bPAVJg+nNech6Vdty4''@;'; + put 'put ''ZU1SlqyBEOlHcFOBFrVShiEq4wjcbzkpcuYQivmi1WBHiymJPtWNKpkGLhCWldodxIbVAnFZs21pQK3OCrSiS+oPCgRnKS5pYQkZDpHe22nLqQMhOYx6dRdP4ce2NJGU4mFQ0vusrQ3rxzkybbElUxdaUtOAbwXc5yx1VKDDQkUm4jKP77Ll9V9EpKdjgPepQEPgZoqbAAVmcc/fdUbvSM0YRx7+''@;'; + put 'put ''Yhw9g2G9VPdznhcVRG7xXojZ0/sMObAFYghFvG1YHoayqFu/fpwtM5ba+FFBTFY9+uZCrMKPPpTVFO17XWEJayXSsdDKzcHJPR0L1XaB1sqinVQOPGcClTXIPl+QkpmwajaMS3tH3OzznNfMFdyMgJthfsyWdU9GkATknqFu9hG+TgIuAQrMAB4Iar1ctiYlS9dI3q2XerpRo6QmnTQfdWT7S2Fp''@;'; + put 'put ''PmbmThXB/zWwas5HeaXpt8KVHkW5HRWaAV2Uo7rBVUZ3XLDlyM6wHNsRkq42D1gGlBl3q/QIxMrh5UAy0Jxb0Ad9CrwlmhCk9TRL4/pzxCZcM8zbmm1Z/yQMB2dwscse5iM2F8W0YQrMYpqtLMaqbqVR9Y489IW4VNZCsOTRxeyKS7hwraQjezaasvs1uLUT3lraQtBX49F+btnaFOKyUCQ+obVM''@;'; + put 'put ''sgBRJG95W1g6cqlZ5Og2Q44ieae3y1uORYKDwySBrAhEoojPnO3I7FuTMm6agXhBB0ITkecBOjdkBaKAbzJxkd+DGrsbfhqRs4fx20KRWUD6xbkpCszinLfrjjoE6+U8ZI7ficzxfMZeqjBy4wO7bdn8VERO7EHrmDwtmrBUhQxTFZmzb0FGvPrdi9yY6fKDxVLFcutZWw4hcefErrD0IQmKCwmQ''@;'; + put 'put ''QHYEwrgAHTsrKfOWO9I0UxNThCWOskM3rHe5ZYz6HNn48wjCdygyhwWxhD5EgRmwydYr+wc/l5CxU/LnUk6LS0O6ECO4Di6TC4i1LMQSiTmy8J6ULL7Pgi7DKIowLvOKsASwtnMQltvVFW5SWBbiAOI2AkvAxClonCs0YdmcEZKwCk26zvMy36EwEq0SjmxGdvmhNzXDnxfFeQEdgJVSYAZgEq/s''@;'; + put 'put ''Ar7nTXAnP/iZZLrTVx7cRa5Aglu865LIaz8KSwuymgu5hCO2zLvDklvWQmSqi6ZIfGLuKRgGyzCslpfOQ1hu1eSdMFzh7iuFRMhtkUBgCajQbJqZkrk4RzRNh9AMo8YuXeeez7dbKxO/L9teNGT3BnT9YYMHzxkHYYUUmEGYxcv7oMk9t61NyKL7EKuYh9JEaZEUkjg6Pbz6A4+SeYbBXy2Zi1al''@;'; + put 'put ''ZMkqxF1pzUyfL1q6yYSw7O2y5ehbpuxFvGp3G2MsfT5tHF4REzAhLLXkmZ4nxkxCTQZciGot4DxccxcxpRyHjgQrFfQ7Xg7JW1qQPcWL5RyJBu7jFJgBmtJYmSUPfTEp9eO1Vpz3p1I9fdhwTb/+c1MOb8tfzGU2UxKrsGXFuyyZdStiTX3aAjPdeQc1QeO2nNwVkj2vh+XSucJafLNhyfeQQFAJ''@;'; + put 'put ''RMscmb4UFs3bbZQ/Q0KihtWoRTOoO1zo/cKPQhgVRHb9GtbMFyIIS6DILPQU+Hl7FJh+np2hjA1lfRon2bIW8ZfaQcfrM6ieNkKwwh14QwUmApxGfEG2fIMjqz8BQT32cku5ER9TegCZLkY2Et5PHxbZs27krL0+QcJhkMCIEiivsmX2cr0gtd2C7W63MDg/KDQ9mBb8OLhdf14X2fJcRFJJikwP''@;'; + put 'put ''qAZiFRSYgZhGzei2ZeGdltz+Hu+zx93TBdwhbRcceenrUent9od7V0MCJs+zZeWH8xdzOpTDw+UEcW+A1cWTtuzeGJaTu7XYPE+4Q+HI95JAvgiMakAMN86TM2DVjKFbmK3dwqgyc8eNU5x2/dm/yZE3nmVrydyBBmMNFJjBmEe4KRy590MJmbbEkJTHLmOVR45hyIYfm3IEGc9+WlxX+buTMusW''@;'; + put 'put ''xJ16vN9D2U+NszTQIrPrki374Qo/iHqWiT5/CPGh7AffSwKlQGDMJEsWrrRkEmppmoj2YSKQN7OuXX8ObxWUMUJN5DjPf95QLd61UGAW79xdNfIyxCQ+8hsJGdWIgHYEs3u1uLY3WOTOHxd58ZuIsUn566QRQmjA2Cm23A9XebgMoy1w6SI3zhLCsr/fkWNvhWT3+jBEpr8YeXUscD0kECQCBs4d''@;'; + put 'put ''k+dbsuDelDSiiYPN+ExPptcVmdsui8x+ngs9gVqkK6HALNKJu3rY6N893pFH0XvcQI0yLwOLXIEJAfX6Tw05uHVkE3uu3ue3H8XKbbnjMe1THCqYFVO5uKU6oDDPHbaRRRlFq0yeTN+eFd4jgeIgEMX5Y/ZtllvaaFQd6gfTbZ7zxKnIPLLNkQ0/o7s8Z5hFvAIKzCKevMzQ1Yo3ZYElqz9uuW0b''@;'; + put 'put ''M8/neqsiyoGA0oLqv/xKFMXA/SmgDJQkmTTHklWPIxazAO3LXHc4Ep60Z7iWHDoM4Z1iiY5cDzd+ngRGlEDNGJQ1WpmSqQttiURRiYP1M3OaD4rMnPAF4sMUmAGYRk12WXhPUpY/Cgueh/Uv01Y6Qw7vcGT9kzHfktIad1V1jqz9VEJqkFGuPwz5WDLZ4cm4yBG4wzU7vJPu8Hyg5jpJYMQITJqL''@;'; + put 'put ''bmGrbGmcorGZ6ba0+TmjjNguFmzDaXe5g8ojYUnQXV4w7n7ZEAWmX2Yih3FoUeHbH0nK/Hu8F5haSXfTz0NyYIs/3eMZbNFyR5aDwdzbvXeTu2ECMN5qEs/FkyHZ/kpIzhz0N48MF96SAAkMnYC6zefekZL5K2wpH4WLVi3STpU5dJD4BEXmsLAF4kMUmAGYxnxlkKuwSsL1++I3TLl4yt+CykQW''@;'; + put 'put ''/exbLcRi2ggT8K67jxsmgKDWODLCD2wOyT5kiMd5JR6Abw13gQRuTqBhvCVL70vJxHmGhEIoacQi7TeHNsg7IuUmzp+2bPqF1sn0Z6jVIMPmUzkSoMDMEaAfPq7i6sFPJ9CDFwXHE96IK1dY4Z+eDkH8ZUx6OvUZ/y4hw5GmGYhD/VjKLTviVaKTusW15/mR7SjT9DM/FJj37xxwZCQQRAImQpBm''@;'; + put 'put ''LLPQgjclo+qRbc4koGFNcxiJP26dzKcgMhmzPiyGxfYhCsxim7FBxhuOWvIIWkQ2TEif/AZ5y5CfcuWkFldvRoLPV6OS8HtNMyQ61Y+F0P5sQmKVGL1H5YpcgYn2mEd3hGT9T6JD5sgPkAAJBINAzWhLFt+fkukLQ6ggwd7mQ55VnJbDUVP2rNeOPyhyb9GSOWSGRfYBCswim7DBhhstt+ThL6Bl''@;'; + put 'put ''YlM6Vmiw9wz1ubTAFGk5HYLA1B6zfj8ZaOtIS9Z+JiWV9agF6lGiT8aCeQy9xNc9SYE51OOI7yeBIBHAmUVm3AKhiSLtNag5TGvmEGf3ssjc+Qp6l78chsh0f2mGuBK+vVgIUGAWy0zdYJz5FJitZ0Py3Ff8V2D9nTjSAvOhz6akoo4C8518+AwJkIBXBKrrbVn6QDJtzUR4DmMzh0BWRWbEkG0v''@;'; + put 'put ''iux8LUKROQR0xfZWCsxim7FBxps/gRmSjouOPPuvcJH7PrGFFsxBDg0+RQIkkCcCV6yZqzU2M31Ry0zzLGFDZJpmCH3LDdm7KQyBTktmluSK6m0UmEU1XYMPNl8CU6ty9HVrDGZMutp87iJHDGbDOEce+EweYjA1yectkQ0/8W8t0MGPDD5LAiSQbwJaoP2WB5MyZb6BhECtmwmLZr43GoT1I8Zf''@;'; + put 'put ''az9pjcwj2xGTaVNkBmFaB+4DBeZAGkV6Pxyx5aEvJNx+ul6X6LFwZfnSt01pPubvMkVXssg/jixyExPp0Rk+HYOJ7MctjrzxNGMwi/QrwmGTQF4JaC3iObdrbGZKyqohNFGgndbMmyPXdrsWGrCt+7EpJ/eYbsWOm3+K7ygWAhSYxTJTNxinlim6/xMJmTjHuzJFujm9ngxBrb3xnCN7N/hbXLl1''@;'; + put 'put ''MG9LyZ2PiaQS1g1oDe2ltMA0ZNevUWD9ZZYpGho9vpsESotA42RLbllrSdN0GDJZziiryTfCaI7R68jL3w/LeRgyKMyzwlYUb6LALIppuvEgzbAtd70/JbNvy0MnH/TcPrHbkVe/72/3sHbeWPHuJIqtG5KMeyswbduQN5833CLrN54JvkoCJFDqBMoqHFl8XxIWTUdMXJM62gWo1KHcZP9NJP30''@;'; + put 'put ''tNnyyncj0nIO4VgIS+JS/AQoMIt/DtHC0JFb1iRlyQMQmH0eiiuw0RNjb6fIc/8WlZ52f8Zh6ul7VH06/rKmwdte5GrBTCZM2fjTkBzf4+8wgQAcytwFEggMgelLUrLsAQvnJu1pjrMUVeYN59aMGnLprCO/+m5YOi6hc5LrQ7vhR/iizwlQYPp8grIZnsYfzkKbxHs+6EjKQ+udbjvjJt/8TLpN''@;'; + put 'put ''YjbjKfR7NP5p6iLd/xRin7zduu5/b6/Iq9+NysXT/hTY3u4x10YCJOAVgbqxttz2CFpNzoLItBGX6U2jNa+G57v1hGOmnDtky69+GJH+bp5vfTdBQxwQBeYQgfnx7WplGzvNkgeRQe31VZ8KLMH3XAuuP/81f/aRjVU6svKDCZmEfsGexl9i121kp3deMOSFb0alr8ul4cdDgGMiARLwKYFIzJYl''@;'; + put 'put ''91sy73Y77TJnP/MbzlQELSWPbLdlw0+jCHfiOfeGsHz+IgWmzycom+G5LuJaWx75rYSUVyGD0aM2iZlt61fcMQy4iQ05vM1fbmIND5g4x5b7HkcqojvQzKhzv1XhrijPHRZ5+btltD7kjpRrIIGSJTBjqSXLHkxIdQ1a+mopI7rMr3ssqMjc/ZojW55nIfbrQiqCFygwi2CSshmilip68DNJGTfD''@;'; + put 'put ''20xy3bar26C22lF0/UXEYvb1+sd1UV5ly6rHUzJ+BrLHk976n1RgOo4m94Rkyy+ZQZ7Nccj3kAAJXJ9Aw3hL7niXJWOm4dzCLPPrg8K5N4wE0zeeDcme11mI/fqg/P0KBaa/5yfr0bmJPmhdtmSNt4k+mQGoyDTwhd+9AVeVz/ojozwctWXeHYhxethGLTVvxaXutwpMK2nKhp8bcmynFtfkQgIk''@;'; + put 'put ''QAK5ESivcuTWB1Poaa4mTC3Mnk6mzG2twft0CIXY1Rv36x+H5cQu1sgsxhmmwCzGWRtkzCHECk6cY8n9n7TcvriDvCXnp1RwpZBEs+7JMIrijqyr3EBi09jplqx+3JJIOU7QiGvyclFB7YBpT1tIXvhWVLpa/WO19XI/uS4SIIHCE9DEzPl3oTA7yhnFyrQwuwY6cbmWgNbI7O9B0s93Y3L+JM7K''@;'; + put 'put ''LF90LSJfP6bA9PX0ZD84BwE9laMcefS34lJZmz5hZf/p7N6poktwVdndgbqYyKpu1XplI7FA+NWORtzlR1NS16SdIPJjvdST2ckDIq99P4pYTHfvR2JvuU0SIIGAEpg8z5LbHk1KTR0MmWrJpMp8x0xr+aL2Zlte/nYU5Ys0jZXn4ndA8ukTFJg+nZjhDEvL9dz5GAr8rvC24PrAsehXOwRvcds5''@;'; + put 'put ''kVd+UHjLnpvQVOPI3R/WuMuQp1njV+0ndtS2UGD9BS3PxPjLgWx4nwRIwDsC9eNtxGUmpXEqXMJsMTkoWC1fdOZAunxRwkc5AIMOlk9eIUCBeQVF8d9RN/mkuSlZrW7yVP72xxWZcF20nhH59RMR6WgplCXTkaoanIzfl5IpKEnkZceed9BS9zgKy7/4rYh0Fmz/3jEKPkECJFACBCqqHVkOkTlt''@;'; + put 'put ''gVox2cd8sCnXzPK9G2wk/kTFStGKORgjvz1Hgem3GclxPLEKWx76XELqx6OjDVqU5WvRr7eB9l7t523Z+POInD+e5yQYCL66RojLxyzXcplPcZnOHg/Jsd0hWfcjf/dgz9f8cr0kQAKFJRCGB2oJkn8WrHDgJWLyzzvo40dHW0puedqQPZuQ9GNRZL6Dkc+eoMD02YTkOhzNJl9wT0pufxQtDvs9''@;'; + put 'put ''bmtzzeD06x0yQxJHp5vtr5hycLOZl1hF3afxsyxZjo4YdY1m3tzimd1TgZlE9vj6Hxlycn+ehXNmo7wlARIoeQIaS6/JP8vWpCQaS2dR589MUHy4NbNcDSevPmHK6f0oX8TYeF9PIgWmr6dn6IPTGMWaelse/iKKro/KT7LPwFG515D40odMQ07stuWtVyJyqdkbl7nuSwVKeiy4OyVz7rQliqtX''@;'; + put 'put ''C7Xj8rm41kts4PzxEILK/dm5KJ/7z3WTAAmMPIGpC1NoMWlJFRI3NfGHyT9vz4lmlne3O27ST1uza+Z4+0Xe8xUBCkxfTYc3g1GL37I1SVmqNTHzbMXMjFi/5uq+6Oly0OZLO/6Y0o4Wi8NZ9Cq+rMKRKYttmb/CkoYmxFuqsPS4Q9FgY1OBaVumbHo6JIe2jmwppsHGx+dIgARKg8DYqZabtFk7''@;'; + put 'put ''BpZMnBMpMt+ed7dn+REk/XwPPct7hvc78/baeC9fBCgw80V2BNebtmI6sGLGC2LFzOxq2poJoYmC7D2djpw7EoJV05ALJw3p6775SSActqWmEYlK82yZutCS+rFoqYazaj5jSTNj19u3rZfIkEcZpmT85mMe+HneJwESIAEvCdQi7vzO9yZk7FT1RjH5ZyBbTfrZ97otm59m0s9ALn66T4Hpp9nw''@;'; + put 'put ''cCxqxVy4MinLHy6cFTMz/IzQDEdM16Xd02FLx0VDLp0LSRcys/s6ULBdswDxv1oqK5EZXoOr9PpxKRk1Wp8Lu20fbY+Lp2fGd71bFZippCGvo3PP0Z20Xl6PE58nARIoHAGtb3zH+xIyeTbiD1Esk5bMy+xxvlZjxuanUEpuM+IxbTzBxVcEKDB9NR3eDqa8yhLtT94wAbGLeShGns1o3a88EoFM''@;'; + put 'put ''xGkauNWAdW3/lWlboaLObQmG522M0RrwWjbr9+o9Og5VvCf2oVPRE7giZoaiV2i5HhIggRwJxModuf3daC+5BP4piswrNPW3I5VAPOZ30pVMKL6voPHFHQpMX0xDfgahdTG1U8R9H0VdTFV0qu64vIOAaktNRuzvFjem5+JpZo6/AxKfIAESGFEC4YgttzyclHnLNXQH53Sez935cDv9nLNQsxiN''@;'; + put 'put ''P+AhY6efET1Mr9o4BeZVOIL3QLv7rHg3Tkp3Ft5VXiw03dhLx0SpJUd2vca6l8UybxwnCZQaAQM9zJfej1qZKx107WWtzMz8azzmke22rPsxvE9J1x2VeYm3I0iAAnME4Rdi05p9WFVrywOfTko9srFHylVeiH0dzjZccYl/zh5Cz3G0vkwmeHIaDkd+hgRIoHAEFt+XlCWrIDKRGCn4n8ZMEc0s''@;'; + put 'put ''3/KsyO4NiMdkiFPhDsYbbIkC8wZwgvKSiqix0xCP+cmkGFHtd8vTkc6tKyXhbepsDcmr349I23lmjQflmOd+kEDQCWh94KWrUxBW2FOKTLSWAwa0SH75e2FpPqxF2IN+BPh//ygw/T9HnowwBNfK3Nu1rpqNDG6ejTLiMtlnyIZfaJF4Zo17cqBxJSRAAgUjMHdFSm590JJwGdQUGreVuqbSWszt''@;'; + put 'put ''zZfjMdsQj6nWFS4jRoACc8TQF37DWrrotoeSsmgV4zH1vGPbhux4OSS71kUKPxncIgmQAAl4QGDO7SoyUxIp05Oam87pwVqLdxUaj3l4q8j6n2iZPHqlRnImKTBHkv4IbDuCTMS7PpCSmbeUrshMX9Qasvf1kLz5HFwpaWf5CMwGN0kCJEACuROYudSSWx9NSlk5RabS1MzyTfBM7d9ssj5m7ofX''@;'; + put 'put ''sNdAgTlsdMX7wRiKm9/zwbhMXWRKsg9+lRJaXHEZMuTgmyJbnkGvcS34zoUESIAEipzADIjM2ygy3VkMoeZyot+Wl74ZlYunYcXUOnRcCk6AArPgyEd+g5pZXlntyL0fTMnEBbBklojIzIjLA2868uYzUYrLkT8UOQISIAEPCajIXA6RGaMlU8KwYjYftVGEPSpxxNpzKTwBCszCM/fNFssqtM9t''@;'; + put 'put ''SqYvhciMBzdC3L121fMLYi73bArJjhfRipKWS98chxwICZCAdwRmL08i1t6WSAwpPyWezxkpN2XnKyJbcc63WbrIu4MsyzVRYGYJKqhvi8RsWf4ICrHfYUhS20lqq8YALSouQ2G4S/pCsvNVCMz1iMlhzGWAZpi7QgIkcC2B2Uj8Wb4W2eWlLjLxA6C/Aa+gdNHpAzj301V+7aGS18cUmHnFWxwr''@;'; + put 'put ''1+4QC1ehptp9Fgr3hlBLLBgiU13i2v+8sxVXsC+F5fhOtoAsjiOSoyQBEsiVwLw7U3LLAxCZ0dK2ZBooXdRxwZEXvhGWbpYuyvWwGtLnKTCHhCu4b9a+5VPmw5r5rqRUN5iS6i/e5B+9YtWiuyEDMTiHHXkDmeKXmikug3v0cs9IgAQGI7BoJTr+rEZWtVnavcu1dNH+zQ4yyyMoXeT+QgyGi895''@;'; + put 'put ''TIAC02Ogxb06R2pGO67LfMoCwy3IXmxdf9JWS0P6ey3Z97oJl3gY7R8Z4F3cxyVHTwIkMFwCy9YkZNFKXHCjd3nJdrdRTYmfgQ1PhuUoPFmOTZE53ONpKJ+jwBwKrRJ5rxlG158Vliy6NylVdWFJFEECkJ4uNNZS/zt7xJEdr4Tl/HFaLUvkkOVukgAJXIeAeqdueyQl8+/Q0KfSFZka/tVzyZbn''@;'; + put 'put ''vxaTjrb0b8V1kPFpjwhQYHoEMnirgTVzjCOL0et2+gJLzBgyrxP+yzR3hSXiLA0jJK3NNoqnm3JsO7PEg3c8co9IgASGSyAMo8GK9yTRYANrcEpXZKqr/BDK1G34aZhdfoZ7MA3hcxSYQ4BVim/Vq9+maZYsXGlJ0wyRMAKmkz4QmpkEHu01237RQmuwiBzaZkpfN10fpXiccp9JgARuTEArhtzz''@;'; + put 'put ''vqRMXghfsVOiMZn4eTDg2Fr3o4gc22mgXTB/L2581OT2KgVmbvxK5tMqNCfMsmT27ZaMn25LWRWshChrVMiMc/dUAGtlOJyOD209I3J0uylHdyPmsptxliVzMHJHSYAEhkWgrMqWVR+GsQDncG24UYoxma6rvB2u8q/SVT6sg2gIH6LAHAIsvhUEIDRHN9kybYktk+ZYSAoKiQmrppWyxbIQ4+Nx''@;'; + put 'put ''hSO1VGrbL9PUq01HutstaT4CNzhEZfNRCM0khSWPSxIgARLIlsCoBlvuezwpdeP0E6UpMtVVfnCLIxt/Rld5tsfNcN5HgTkcavyMSyBaZsvYqRYsm46MnWbLqDpHohVht7CtWjZtXB6rKMxGdLrWSRWTiKXUP42p1Of6+1LS0x5y+8meOWzKeYjK3i733ZwFEiABEiCBYRAYM9GSe2DJHFWvzTWy''@;'; + put 'put ''OkUPYys+/oj7WyPy6ydMOb4rzALseZoqCsw8gS211ZphW2qRFNQwERbOCZogZEtljQXBaUg0elkwuuLxajKIN0c4kCOWbUsi4UiyV2ClDElHiyGXzhnSciYkXbifiFNUXk2OjwYSMFDzNAwrNy5RUI5FZHRDndy+dKHMnzVDImHt3uSxaX3gxod5Xy+++uNxaWvvlIuX2uVSe4f719HZJV3dvdLb''@;'; + put 'put ''1y/JVGqYa+fHSODGBCbMSSEmMyWxKnxncCz67xty4/Hn+mq6ALstL349Kl34zdF4fi7eEqDA9JYn13aFAKyZZSLlVY7EKhGzWRnCYwdJQmqlvPwmCMsEit4m+0TiPSE3QaevN4Qi76GSO9ldwcY7VwhEI2EpLyuTyspyqa6skKqKChlVXSU1+jeqSirdx5VSWV4uFeVlUlYWc+PK9ODR12trRiG0''@;'; + put 'put ''wt+lqvRHTf/S8XC4wEomXdHZB3HZ1dMrnV09V4Rna1uHtLa1u4K0HSK0o6tb+vrj8BLgKo0LCQyDwOzbknLHY9o8N23GLDWRqa7yXevQ6Q3NOCz2Kh/GEXTjj1Bg3pgPXyUBEsgDARVV5RCEVRCOdRCC9bU1Mrq+VhrqavBXi/t1MqqqQioqyt33RSMRicViCJ1IX53orYqyjLjK3Opzum7L0ixZ''@;'; + put 'put ''jS8rrp9MHbsuun96X28z9zP7k0gkICz7pfuyAG3r6JQWWEBbLrXJxdY2aYEIVSGqVlAK0DwcvAFb5a1rE7J4FTzliKMvrm+LBxOhXzdo6xe/G0bXN3WVe7BOruIKAQrMKyh4hwRIwEsCGRFZW1Mto+vqZFxjgzSNHSONcF+Paah3LZGjqiulDMIxIx71MyoWM38qqgaKRy/HV6zrGihC1UKrj/U2''@;'; + put 'put ''I0DjcLurAO3p7RMVn2r5PH+xVc5daHFvVYy2dXTABU/rZ7EeA16O2zRtuftDSZmxBImUSVyYebnyIliXGTXQlMOWl78VlXhfxr1WBAMvgiFSYBbBJHGIJOB3AmWxqGt5HNc4WiY2jXX/xo8bA2FZ67q1K2GJjMAKqWIoIxoHWhn1OS7eEFDGmb+MAM1YfJV5b1+fdHR2w9XeIc0trdJ8oVVOnjmH''@;'; + put 'put ''2xbXEtoJ17sm6HEpHQLlFbas/lRSGicjJh4JmqU2+2G4yrc866C1cERsuso9O/ApMD1DyRWRQPAJqHDReMfG0fUyeUKTTJ3YJFMmjod1crTUw9VdVVWJOqXqakq7p1NIUsncp4j0x/Ghc6iCU8Vnxv2uVmIVnl0Qly2weJ5tviAnIDpVeJ7BfbWCJhJJf+wAR5EXAnWNttz/qbhU1cKKV2JJP1q5''@;'; + put 'put ''JN6L2phfj0lbs/rNmfDjxUFGgekFRa6DBAJKQOuPumJyfJPMnj5Fpk+ZKBOaGiEma9z4SBUoKk7UMpZxawcUReB3KyM8M+JTH+sFQndPj7S0tsups81y7NQZOXryNIRnsys6dd65BIfARGSWr/xQSsIxSCyYMUvJkqkJP4e3ObL+J0j4YX1lTw5qCkxPMHIlJBAMAhoPqa7tGRCSc2ZMdW/Hjhnt''@;'; + put 'put ''urnVMqkiUkWH3tIiGYw5v9leqODMiE691Uz3ru4eOXseVs7T52T/4WNy5Php93F/PHGz1fF1nxOYf1dSlj+KQWqinM/H6unw1GgJ4+2vfxCRE3s0iZBWzFz5UmDmSpCfJ4EiJhBBKaAmuLfnzJgmC+bMkOmTJ7iJOFWVle5eqYUqY50s4t3k0D0mkBGc6mbXRa2c5xHLqdbNvYeOysGjJ1yLZzLJ''@;'; + put 'put ''Op4eo8/76mC4lrseS8isFYiXLrGkH+1K13rGkRe/EZG+Hib85HqwUWDmSpCfJ4EiIqDCoHZUtcycOkkWz5sl82ZPlwnjGmGhrHYTQzLWSbVQciGBbAnocaV/auXWpau7G3GcF+UAhObOvQdcwdmK7HUmD2VLdGTfF9Okn4+lZNx0xFKXWNKPusrffF5k12vw2DDhJ6cDkQIzJ3z8MAn4n0AYVqYJ''@;'; + put 'put ''yOxWQblo7iyZOW2SWyZIxQAtlP6fv2Ic4UALpx5jrajRefj4KXkLYvOtvYeQOHQeoRaM3/Tz3NaNtWXNpxNSOQomzRJK+rmS8PNvSPi5oG5yusqHe5xSYA6XHD9HAj4moGWDpk+eKEsXznWF5dRJ49HdZpQbN6lWSv3R50IChSKgrvRM1rq2wjx64rRs27VPtu/e72aqsyVmoWZiaNuZujAl934w''@;'; + put 'put ''JYZGQpRQ0o9aMQ9uEdn4M1OsFF3lQztq3n43BebbLHiPBIqagCbozJo2WW5dPF+WQVhORLZ3BdopDkzMKeod5OADQSDjStcsdY3d1AShzdt3ytad+5AodJEXPz6b5VseTMqS+9DwoJQ6/cBoqVn0L34nLOeOoOwaI4aGdVRSYA4LGz9EAv4gEIGbW62Ty5culOVL5rs1KcvRm1stlGqpZKa3P+aJ''@;'; + put 'put ''oxicQEZs6u0ltLfUBKGNW3a41k3ttc5l5AmEI7bc9/GkTJoFT7lVOkXYw+jwc/awIy9/JyLJOK2YwzkSKTCHQ42fIYERJKCWH+3ZfRsslXctXyrzZk1HT+9KisoRnBNuOncC6kLPlMI6fe68vLF9l6x/Y7scO3lG6ELPnW8ua6hpQDzm5+JSXQOhVULxmNpGcsOThhzcmk5ey4VhKX6WArMUZ537''@;'; + put 'put ''XJQE1Fo5fcoEuXfFrXLHrYtRXmiMux+ZzO+i3CkOmgQGIaBCU/+0beXOvQflVxvfkB1aevCmAABAAElEQVR7DqDbUP8g7+ZThSAwBfGYKy/HY5ZKJ1EjHJL2CyLPfCkKKyaTfYZ6nFFgDpUY308CBSagsZWL5s6UB1beIUsXzHWLnmuxaybqFHgiuLmCE1DXufaw1+P9CLLQX9nwhmx88y25hD7q''@;'; + put 'put ''XApPYPkjSVl4T2nFY2rCz6anRfasixQeeJFvkQKzyCeQww8ugfKyGJJ15snDq+9yywvFIDT1h5Y1KoM759yzwQloWIgKTV1Oo2WlCs3XXn9TzrdcYpzx4Mjy8mwkBlf5JxOoj4ki7CVSHzNkhqS305an/6VM+rpoxRzKgUWBORRafC8JFIBALBqFpXKOvOuBlbJ4/mxR17gKSybsFAA+N+F7Auo6''@;'; + put 'put ''13jNc8g4f3n9ZvkVxKYKTV54FWbqRk+w5IFPpSRaoZnWpZH0E4UVc8erIm8+RyvmUI4yCsyh0OJ7SSCPBMJh0+39/dja1XLnbUtEhSaFZR6Bc9VFTWCg0Hz+1Q2u2Gxto+u8EJM6D/3Kby+hfuUh5DYlEf77zJcj0tGSbo9aCM7Fvg0KzGKfQY6/6AmoZXJ0fa08ev+9cIffLXW1NXSFF/2scgcK''@;'; + put 'put ''RSAjNI8cPylPvfCabHhzh/T09hVq8yW5nZDhyH2PJ2XKotLpV65WzL2bHNn402hJzvlwdpoCczjU+BkS8IiAWimXLZwjH3r3Wpk/e4Zbu5LJOx7B5WpKikAU3yX97mzduVd+9PQLbv9ztqPM3yEwCqWLHkQryap6xCWWQOkihAHj+HLkuX+NSus5WjGzObIoMLOhxPeQQB4INNTVymNr75NH7r9H''@;'; + put 'put ''KivKJZFI5GErXCUJlA4BTQZSodmGLPNfvPCq/Oz5X0k8zu9Vvo6AGUstufsDqZKJxYzETDm83ZbXfhjLF9JArZcCM1DTyZ0pBgKaoDAbLR0//eHH3CQetbrQalkMM8cxFguBTN9zzTT/9pNPSfPF1mIZelGNEw5yuefDSZmxVLPKLW1XHuhFrZgw1srzX4vIhRO0Yt5ssikwb0aIr5OAhwQ0kWfV''@;'; + put 'put ''HbfJJz7wLhnXOBrWlbiHa+eqSIAEMgTUmqmlvbR+5pe+9YTsP3xMUriY4+Itgeo6uMo/m5Tqeqy3BFzlasU8tsuSV74DK6YqTi7XJUCBeV00fIEEvCUQi0Vlzd23y+c/9n7R4umaIc6FBEggvwRUZGqf8y9/50nZtHUn207mAfeMZXCVvw+uctgwS8GKCWUJK2ZYmo/Tinmjw4kC80Z0+BoJeERA''@;'; + put 'put ''i6Z/8NEH5MPvWYuL3hBd4h5x5WpIIBsCWqS9vz8uX/nuk/Iq3ObxBC/usuGW7XtUWN77kYRMX2KUhKs8gh7lJ/Y78vI3Y4EX1NkeA4O9jwJzMCp8jgQ8JFBRXiYff/+j8v5H1rhZ4iwI7SFcrooEsiSg5YwS8Bp8+Vs/ktc2UWRmiS3rt2lW+drPJaRyFNzGQS/Ajl1EF1N5/uthOXcknDWjUnsj''@;'; + put 'put ''BWapzTj3t6AEVFx+BFbLjzz2sJslzm48BcXPjZHAVQRUZKol8x++9j26y68i482DOSuScud7oC8R6xp0V3kmFvNlxGKqV4rLOwlQYL6TCZ8hAU8IaI3Lh+67S37jEx9029jRcukJVq6EBHIioO7yVsRk/o9//JocOHJcLNvOaX388NsETBRgX/2JhEyYg+dQMzLIIjOtKRGL+XVTmo/Rivn2UfD2''@;'; + put 'put ''PQrMt1nwHgl4RkDLpGgB9T/+3c+5CT0sQ+QZWq6IBHImoIk/ew8ekb/556/LBfQx5+IdgdETkVX+qYREyrVXOayZ3q3ad2tSK+bRncgo/y6tmINNDgXmYFT4HAnkSGDsmAb5T//uczJ35nSWIsqRJT9OAvkgUF5eLk+i48/3fvqs9Pah0TQXzwgsezApS1c5Ylt2oAUmksk13FR++dWIXDzFjPJr''@;'; + put 'put ''DyAKzGuJ8DEJ5EhAM8Y/gIzxT37w3Yj34g9Xjjj5cRLICwEDWRra5ee//f1XZM+Bw3SVe0g5Vo6En8/HpX4cFBgiEIJuxTy41ZZ1P2J3n2sPIQrMa4nwMQnkQECDvSdPaJK/+KPfltH1dW7WeA6r40dJgATySKCsrEx+jYzyf/za96WrpzePWyq9VU9ZmJKVH7bFgMIMssDUWEwb8abPfDkql5pp''@;'; + put 'put ''xRx4pFNgDqTB+ySQI4EyFFPX/uKf++j7ab3MkSU/TgL5JqAXhFoT8//6/74s+w4dpRXTQ+BaG3PVRxMydVHwa2NGy0zZvcGRTb+Iekiw+FdFgVn8c8g98BGBuppqxF5+Hj3G5zD20kfzwqGQwPUIaCzmD372nDzx1POMxbwepGE+39DkyJrPxKVME36wjqBaMkOoiRnvE3nmX6LS1YYHXFwCFJg8''@;'; + put 'put ''EEjAIwIa0zVz6kS4x39XKivK3dJEHq2aqyEBEsgTgSjKie3ef0j++n99Vdo7u/O0ldJd7S0PJGXJaiT8pILtKlcr5raXHNn2Iq2YmaOdAjNDgrckkCOBCIo43718qfzRb3+GsZc5suTHSaBQBLSkWHtnl/zZ3/yTnDxzDlnBQbWzFYro1dupqHTkQST81DZqsGJwa2MaZkh6Omx56p9i0t9LK6Ye''@;'; + put 'put ''BRSYV38X+IgEhk1AC6u/a8298kUUVo/H48NeDz9IAiRQOAIah5lMpeSvkE2+e/9hSaELDRdvCcy+LSV3vg/p5AEvW6RWzA0/Fdm3KeItwCJdGwVmkU4ch+0/Am6Cz0Or5XOPv48JPv6bHo6IBK5LQK2Y/x2dfd7YsQveBwrM64Ia5gtmxJEHUHy9aTriMAPc4ccMh6TlnC3PfqlMrJRGnZb2QoFZ''@;'; + put 'put ''2vPPvfeQQBm6g7z7wZXyeWSQ04LpIViuigTySEAtmPr31//r3+TNnXsoMPPEeuJsC1nlKQmbwXWTK7pw1JCXv2PIiT1sH0mBmacvE1dbegSi6HG86s7b5A9+45OSSCRKDwD3mASKkIAm5/X3x+Wv/kELrh9hqaI8zaHa81Z9NB74skUqME/td+SFb0TdC5c84SyK1VJgFsU0cZDFQMDED9WCOTPk''@;'; + put 'put ''T3//NyUajTBZoBgmjWMseQLqHr/Y2iZ//rf/JGeaL5Q8j3wCGDPJQp9yWDHLkEgV1FwqKGkH4abPfSUqLWdKO9mHAjOf3yauu+QINI6ulz/7g9+UaZMnSjKZLLn95w6TQLERiCG05c0du+X/+fK3pLOLZYryPX93PpaQ2XdgK8ngli1i4fX0UUSBme9vE9dfUgQqysvkU+hB/n70Iu/rQ+VdLiRA''@;'; + put 'put ''Ar4moO0iv/KdJ+WZl9ehqw9DW/I9WTVjbHnoiwkB9sAWXw8ZIenrseVplCzq7SpdKyYFZr6/TVx/SRFQN/nCuTPlT2HF1LqYrKlXUtPPnS0yAmF8R1svtclf/M8vy4nTZ/l9LdD8LX8oKQtXBrv4uloxX/+5yJ6NpVuyiAKzQF8obqZ0CFRXVcjvfPojsvruFSxXVDrTzj0tQgLaJvJHaBH5fbSK''@;'; + put 'put ''7O3rL8I9KM4hV9fBivmFuFSMMiSEwvZBDMc0IyG5eNqW576MkkVWaZYsosAszu8nR+1jAgZKnsydNc1N9qmqrMDJhXX1fDxdHFqJEtAWkafPNst/Q4H1U7jlUlgCyx5MytL7gm3F1LqYz3/DlLOHSrNkEQVmYb9T3FqJENCi6+9F0fXPfOS9rIlZInPO3SweApnal//wb9+TdZu3SYIJeQWfvMpa''@;'; + put 'put ''Wx6GFbOyJrhWzEjMlEPbbPn1E7GC8/XDBikw/TALHEMgCdSOqpbf+8LH5a7ly5jwE8gZ5k4VKwFN7PnZcy/Lt3/8NF3jIziJSx9IyLL70KI8oC0kQ8jviSPX8+l/jkh3uzmCpEdm0xSYI8OdWy0BAmolmTCuUf74dz8rM6dNoSWzBOacu+h/Ahp3ueGN7fKPX/++tHV0+n/AAR5hZQ2smF/shxXT''@;'; + put 'put ''DGwsppvs8zSSfdaVXrJPSQnMD73rAdmyY4+cOHMuwF9Z7pqfCGhW+ewZU+SPfuszMh5iky0k/TQ7HEupEVBxuX33Pvm7f/22nG+5VGq778v9dWMxVyEWM6BWTDfZ55TIs/8axT6WVrJPyQjM8WPHyD/+1X+Wvv6EfPvJp+T51zayJIUvTzfBG1QYnULmzZ4uv//FT8j4sRSZwZth7lExEFC3+Ft7''@;'; + put 'put ''9ovGXZ670MLzv08mzc0o/3xCKmpQFzOgDX4MeMd/+bWINB8tLTd5yQhMtV5+8RMfcntEa+2z19/cIV//4c/k9Dm2BvPJeSbQw3AtmdOnyP+OmMypkybQkhno2ebO+YmAhqqouNy09S350reekOaLrX4aHscCAssfRl3Me4ObUa5u8r0bHdn482hJzXdJCEztNfs3f/IHKB0z3RWYOsN6wmlta5fv''@;'; + put 'put ''wJr53K82lHxT+pI66vO0sxH0152xJCnHdoYR2P3O7g36Qzd5wjhYMj8pc2dOc49FFmLP02RwtSQAAnru17/nX90Az9XTcqm9Y9BzvXaXKa+25eJJU6xUabkx/XCg1IL/WmSUl5WHAtndxzBD0ttpyy/+MSb9ve/8bfDDHORjDCUhMOfOnCr//f/8A5ffwB90PfGoNXPd5q3yjSd+LufOt+SDMddZ''@;'; + put 'put ''AgQM05GJsyy58wO2rH/ClDOHr+8Kmdg0Vj72vkdk5R23um461sksgQOEu1hwApFIBCFRcbeQ+lMvvubev94glqxOyrRFlrz6g6i0X1CBSZF5PVb5ev6u9yZk1gqsPaA9yrVk0Ws/FDm8vXSSfUpCYH7+8ffKR977yHVLxag1s6X1knznx8/IL3Glq5YmLiQwFAKxCkfu/WBCpi4wZd8blqz/cfSG''@;'; + put 'put ''x9Go6ip5cOUd8oFH1khdbQ2tmUOBzfeSwA0I6Pk7Fou5RdS/8t0fyzYk9aRS1292ECt35IHP9kvT1LDseMWRt16NSDLO34AbIM7LS6MnWbL2UykJwxMUxNY+4aghJ/fa8tK3UBOzRDRG4AWmFrz+u7/8Y5kAq1EqlbruF2OgNfPrP/gZ43SuS4ovXEsghMj0xsmWrPl0SiJRuEK6Q/Lq90y5eOr6''@;'; + put 'put ''VkxdRzhsytwZ0+Tx9z4kSxfMdVd7o2P02u3yMQmQwNUE1GqpHoFNW3fKE2gBefTkmZsm88y9PSnLH4U7PWJLd6sjL34rIh0t6sakyLyabn4fqXdx9ccSMmURuKfswGlM1ZSJhCPP/EtMOltLw00eeIF5y6J58pf/4XdvKC4Hfm20jEXzhYuuNfOldZsGvsT7JDAogUjMkYX3pOSWtTgvxtVSEpKj''@;'; + put 'put ''O0TW/ySKk+TNf6SqqyplzT0r5D1rV0lT4xj3WKXbfFDUfJIEBiWQMRBo68cfP/uSrEedy55eVLi+yVJWKXL/J/pl9ER8a2E4MyKGbPyZATcmYjGTN//u3mT1fHmIBCbOsWTVRy0JG8ETmIrCrYn5FGpiri8NN3ngBea/++zj+OFefV33+GDHv8ZlGqhfqLGZas1kvbTBKPG5DIGySlvu+2hKmmYI''@;'; + put 'put ''fpRs1/uRiBsQmIac2pddD1rtXz5pQpO8a829surO20RFZxLt62zbzmyGtyRAAtcQ0PO09hS/1NYhr76+RZ59ZZ2cbb54U6tlZjWL79N+2BCXhoXPwKuAOLkj20U2/cIcNFEv8zne5oeAiVj2Bz6TkHHTMRm4Vse/gVrCkZCcO+7IL/81lpXxodh3PtACs6qyHO7x/ySNo+tdt8lQJ0utmWebL8Ca''@;'; + put 'put ''+bS8suGNoX6c7y8FAjB71DXa8iBOiuXVhjj2ZZsljB8Xz4TkV99DokFX9u6QCC5utDD7u9aslOVLF0hlRQWFZikcR9zHIRFQYanu8O6eXrf80DMvr5MjJ07dMNby2g2MnoALQ7hkK0bhO+uEXDGj2b7tLY689I0oWvtl/729dt18PHwCs29NyR3vx4V6EAuv43fBxm/Ecyi63nr2xiFUwyfon08G''@;'; + put 'put ''WmDeccsi+bM//O0rpYmGg12tmRo0/hqujr/xw1/IxUttw1kNPxNQAiE3e9yW1R9PYA9x9rh8yZ2O4Tbk4JtqDYkM+Wo1Go3Iwjkz5dH775FlCPMoRyIaLZoBPYi4W1kTyLjCu7p75I0du+S5V9bL4WOnJAFr/1AWDWu57/G4NM3UsjiOa710P2+EJNXryAvfjkjrGVwwQnhyKSyBWLm2j0xIbaOq''@;'; + put 'put ''McxNYTef962pm/zN5wUJZcF3kwdaYGrnlEfuv3dI7vHrHV1qzTxx+qzbBUjje7iQgBIwI47Mvg1X3O9xXPf4QCoqMq2UIVtfCsm+jcM7mcSQpDYf9VvXrrpLNJ5Ys89VaDJGcyBp3g8yAb3A1wt9FZda7WPz9l3y8vrNrrBM3iBx83pMVFAufzQpc+9QcZl2jV95r6snHSTpReXUIQjMEmvtd4XD''@;'; + put 'put ''CN9ZtgahC6uhL5GwFTSBaYZD8G7Z8uyXymDNdA+4Eaadv80HVmBWV1W42eNjGobnHh8MuZ7kUjjgX8HJ7Xs/fRaF2jsGexufKyECboLPyqTc8kBIkv1Xl0JxTx34p79fZPPTYTmOAuzDXdR1PnPaJFl91+1yx62LZXR9nRufqVnnA2u7Dnf9/BwJ+I1Axg2ucch6cb9u8zY3eefc+Yti5RCbvOje''@;'; + put 'put ''pCy5X4uwXyMuLwMwIADW/ciU47tZdH2kjgktvP4QCq/HKnARAIUZKJGJ3wS1y/7yKzFUGgl2GEZgBaYX7vHBvlx6Na1B5afOnHM7Q6zfQmvmYJxK5blImQ1xaSGLHPWB3Qzyq/fcFZk4h/ShdNHrPzfl1P7hi0xds7acHNc4Wu5evtT907aTGoumQpNWzavZ81HxERhorezs6pY9Bw7LrzdtRS3L''@;'; + put 'put ''/aKPc13m3YlqD2uQpQwXuSB/bjDhYmom+c8NObLNlBQzyXNFPqzP60XzqscTMn0JrMioYTrYPA1rxT75kLrJt73oyLaXgt06MrAC8w/gHn/YI/f4YMdkxpr5MkoZfe+nz7ktyAZ7H58LNoEoijQvfwTuttthwRxEYOreuyIT8dx9+H3c8kxEju3yJri7sqJcFs+b5XYEWjh31lVWTWafB/u4C9re''@;'; + put 'put ''qftbL5QSiYScPnferWP5OnqHHz911vUa5bq/Wqt28aqULFrliBmGsryOuNTtqMDc9DTip7ewVFGu3HP5/CQtWfQxS8xQ8EoWqZu85QxqYn45hjAA9xciF1S+/WwgBab+8P79fx1+9ni2s5WxZh4/dcatm7nxTRQ/5FJSBKIISF/xrhTiMK8vMBWInkJCSCCI9zuy5dmwHNkRfjuxIEdiGavmbUvm''@;'; + put 'put ''y+1LF7lZ6FWVlVdc6BSbOQLmx/NCIJOwo8fnRcRW7oCV8nUUSN8Nq6XWsNTzqxeLdupZtjYps2+FuzWEMJYbiEvdHgWmF9RzX0cYhe8f+kJSGiYgy/8mc5b71gq8Bj20YaV9FuWKWpBMFtQlkALztsXz5S9QXF2TIQqxqDVTg83Vmvn9n/2S1sxCQPfJNrIVmDpc9+cS5xKtkXkAVa/2rotIf583''@;'; + put 'put ''P6IZHBqrOWVik9yK74AmBU2fPFGqUFNTf8TVhU43eoYUbwtNQAXjwLhKTdjZd/g4ROVbsnv/YWnr6HSPUy/HpaWIboWHYfy0ECxFsIRl4WulwPRyBnJb16KVCbl1LdKyApjs42aT/xLZ5L8aXgJobmQL8+lACszf+fRH5L0P3+9J9ni205CxZh5FLTbtab5p285sP8r3FTGBoQjMzG4asGTqD93p''@;'; + put 'put ''QyI70fc4X4HeGbG5ZMEcWTp/jkyfMtHte67HaiZmkwlCmVnhbT4I6LGmF+DuRTgu+NVSue/QMXlz5x5XVLZeakclmixU3xAHZ6B82PRFKVn2kC1V1TBaarmbLDdDgTlE2Hl8+6gGLVkUlzJN9sF2spzCPI7Iu1WbKLp+/pgtz32lDPvlraHBu1HmtqbACcwYEnD+7i//o0wcP879Ec0Nz9A/rXFE''@;'; + put 'put ''ccQRaZvJH8CaqVflXIJLYDgCU2ngd9d1mfd02LL39bAc3prfziFhxLiNbqiTeTOnydKFc2X29CkydkyDVKD8llo3VXDqLQVncI/VQuxZxkqp7m+1Vvb29sq5Cy2umNwOF/jBo8elvbM7r8dZ3ThbFt6bkinz1d0N3+oQO8JQYBbiSMluG3o+uu+jCZmq/ckDVnhdfwOslCNPfykq7Re8icvPjmrh''@;'; + put 'put ''3hU4gTl/9nT56//8++4JbKR+LAdaM7/15FPyxvbdhZtRbqmgBIYrMHWQes0aQucQB7XQzp90ZPc6U84eNGHR0Vfyu1SUl8nUieNl7qxpbp1NzUYfXV8rZSjoPtCdPlLfofzuPdfuFYFrBaWGJV1qa5ejJ8+4sZR7Dx51Swz19ce92uR11xOrcGTWLRYS7lJS3aAu8eytlgNXSoE5kMbI35+yICUr''@;'; + put 'put ''P2KLgeDZIFkwlay6yTf+AuFSG4LpJg+cwPzEBx6VT33osYK6x6/3FXStmfGEvPDaRvnhL57HlXvX9d7K54uUQKTMkVsfTMmCuwcvU5TNbumVrLaoS8RD6F0usm+TKRdOGp4lOdxsDCoStID7ZFj9Z02fLLOnTZGpk8ZLQ10N4jer3I9r7KYKT1o5b0Yz2K9nBKW6vNVCqVnfbe0dyPy+ANf3UcRU''@;'; + put 'put ''HpWjJ85IB851+XB9D0YXxlKZNC8lc++0ZNxkvAPfJ0fF5WBvzuI5CswsIBXwLVGUglM3ee1YnBMD1tknHDXk5P50a1LXrVVAroXYVKAEptp9/vbP/73MnTm9YAk+N5ukjDXz8LETbt3MLW/tudlH+HoREUjXwYRL7h7numWKst0dFZpm2EA5IwdFnpEIhDIpl86NTIZheVlMxo8d48Ztzpw62b0d''@;'; + put 'put ''B5e6CtFYLOZ6CCg6s53Z4nxfRkxm3N26Fz09PUhi7HRLCR08clwOHjvpWijbO7pyKn4+HEIGSg81TrNlHoTlxFmOhBHTZqdyt3JRYA5nNvL7mdseTsqiex1P5je/Ix3a2kM4vff3iTzzTzHp7lAFE6wlUAJzEiww/++f/xEKoaP3c7YR3QWaz0yNt2fRO/eJp17wpGhwgYbOzdyAgJcCM7MZTQIK''@;'; + put 'put ''oU5ab7stpw5qPb6wtJ5GweHMG0bgVksh1cOiqaJTrZuanT5p/FjEcY6WqsoKt/mADku/d5nuQmrt5OJ/AiokrxWTOo+9fX2uJbL5QivqUZ6RIydOywk0mGhGTKWWERqpc6y2ehwz2YErPCkT54VEyxDZiGXz6pRPgem/Y7ZxkiUPfDYpEfSpGMnzYD7IRGDF/NX3DTmaQ6e3fIzLi3UGSmA+uuZe''@;'; + put 'put ''+b0vfMIX7vHBJidjzTx09IR880e/kG274A/lUtQE8iEwFYhey2rdTG1b19dty2kIzcNbDblwIoxSQ/5ApolDtTXVEJ2NSKobK9MQx6kCtHF0HZ4fJeWI51RXqgqRgcIz89gfe1E6o8iISL3NWCV1LtTN3dvX77q6my+2yqmzzXLyjP6dkwstl6Srp9cNjRhpUobhyNgptsxCjOXEWSJllegknsyu''@;'; + put 'put ''9NBQxk6BORRahXmvzv3azyVk7FTIy4DVxNQ4zP2bHVn/k+B19QmUwPyT3/ui3LPiVvR+RvNnHy9qzexH0Pvzl2MzvWiB5uPdDfTQ8iUwB0JzXefoLpLAYX3huCOHUKT9LARn3OMamgO3Odz7Kl40gaihrtYVm01oazmhqdFtbzkG/dNrRlVJGVzs6mbX92bEprrb9T5jPIdHXlnqonGRumQEZOZ5''@;'; + put 'put ''tSr3wSLpCkm4s1U4nm9pdV3dZ5svuI870IqxHzHjflsiMVvGz7JlJhJ4xk8NSaRMs2+9F5aZ/TZhUdryTEj2bcbFHFtFZrCM+O2ilUnUxNT42mC1jtT4+84WR57655gkE8FykwdGYNYgNuzv/usfuz9sxVBMWk/8+iOrcUxf/+HPZMeeAyP+BeYAhk6gEAIzMyrVEBqjaSHQvf2cI0d3m3Jyjykd''@;'; + put 'put ''LSMTp5kZVza3eryXxaJSO6ra/Y5qiaTG0fVuqSTNXq+HxVNd7eUQp2r5VIGUEUeZ5KKMyz1zq4I0yEtm/3UfM8JRb/VPX8u8nrFCqiVSs7XV4qgXrS2oMdlyqc0Vjxdb2+QiHmvyTWd3jy8skjebu+p6W6bMtWTKEktGNxk49vMrLDPjCcdMefM5ZPa+jl7kCf9/tzLjDvpt3Vh09vl8XKLlOBEG''@;'; + put 'put ''7KuvrUyf+2oUyZ3BKlcUGIG5fMkC+S9/9Du+Se7J9svuWjPjcXnucmxmF07+XIqHQCEFZoaKXuMaEJp6UurucKT5aMhNCmo+HpaED62amXHf6DaGuOnKigokEVVKHcTmOMR2ahZ7fe0o192uF5DaAlato5qApK73KGreZsTWwHVnrKAZATpQkGaeG/j+wZ4b+PpQ7mdE37WfGSgIM2Ix81zm8cDP''@;'; + put 'put ''6Jj1QlnL/miXsP7+hPQn4q4FsqurxxWJrSgHpHV222CRbEPiTXtnp3R190ovPDhxH1oiB+7f9e5HY46MnmzL9IUpWC0dqarViEsk76gr/Hof8vh5V2D+MiR7NxoUmB6zzWV1eiRoHOb4GfCRB9BNvgVdfd4KWFefwAjML3zs/fLh9zzk2/jLG32x9IdGfyw1NpPWzBuR8t9rIyEwMxRcZwoMLOEw''@;'; + put 'put ''LC1wGbZfQJmj/SGUvQhJ+9mwpHwSq5kZby63KsJUhKq4VAtnNdpfVsPiWVUFUYpSSlUQn3rfFaF4PSNEowhH0e9WBIxUlCorXZcmLelt5k+/g3o/I/oGik59buAy8DV9Xh8PFLV6P/Onr6UwESoSUyoY9RaP47ioVGujuqTVbd0HUaiJM92wPnbjtqcHf3Bp62N9Xl+PJ5KucLQCljylZYZqYZ2a''@;'; + put 'put ''NM+SSbNTUjcOc4VwNHWDj4SQoMAceLT76/78u5Ny+yPBc5NruaLThxx54d9w4F9zvvHXDAxtNIEQmJps8D/+5Pdljo/KEw1tGtLvVmumZm4+89Kv5cfPvoQfF9Qv4OJrAmmBaaFM0fDrYHqxg65VE3GayAtC2QtbWs+F5PQ+Q84eNqT9IkoUW1eLJC+26fd1qDDUdpkqKvU2ghRUFZb6PVOxqm54''@;'; + put 'put ''FaDu87hv4P1agSKzpD+f/mzmpG+hm4i6ogfWeFQxmYD40+fSVseUKyRVTCaT6fsqKlVgaiykPqf3rxWqme2Wwi2mREY1WjIB1qjxc2wZPR5JO2gHiOiPglorB2NNgTkYFX88VzvalrVfSCDBCzoMx0qhrNr53ntN6OzvseVpxGH2dAYnLCMQAnPCuEb5n//lPyCmMVr0J233Rw0/egcQm/nNJ34u''@;'; + put 'put ''b+09mO9jm+vPgUAELr0lq5KyZE1Ikv3+MBnqBbDGamoqerzHgtg05MzBkJw7Epa2i5p5W3piM4cp5kc9IqDflfomW5qmOzJ+puVaLcsrTJyzCxNbme1uUGBmS6rw70u7yRNwk2PbASy6/tK3EFe/LzhxmIEQmA+uvEP+/W99xvfZ40P5OqpbT62Z2gHoyadfHMpH+d4CEtAfzcWrUrJ0DSyYPhGY''@;'; + put 'put ''A3dfC/maprp+ITZh2VSBqTGb546giPtZXDX3BudqeeB+8/7IE4CxGDGUSNCZ5EBUWtKI2pVV9WiPF0NNV3i/1Rqst35bKDD9NiNXj2cB3OTLH4X1El6BoFgwdQ+1XNHO1xx549nglCsKhMD8w9/8pKxddXegBKYecGFYMl9EKaO//+p33dgwfY6Lvwj4XWAOpKV2SwNudBWdVkqk+5JaN9EH/Sha''@;'; + put 'put ''U54ypas13a5y4Gd4nwSyJaDHVeUoGzGUtluvcgySdWrHiJRXIeMdFzl2ErGqKiqzXeEIvY8Cc4TAZ7lZtYKv/SyyycuC5Ykx0YnqwklHnv0SOqW5lZCzBOLjtxW9wFS3+N/9xX9EoedxbnyTj1kPeWgaj/S3//w12bRt15A/yw8UhkAxCcyBRNxTM+qvhdWVDh9lf78tXZccaT1jysVTIbdzUOcl''@;'; + put 'put ''uP3jeJ0LCQxCIBKxpbJORMvHjJlkS8MEW0aNTgvKsApKnMDUSjkSiTqDDDfrpygws0Y1Im8Moej6Q59Lyli0CRVEJfn9giVbSOplSiYcNw6z81IwzrtFLzBnTp0kf/Onf+hmgAYpaF5jMc+jq8b/8X//vVuKJNuDlO8rLIFiFZjXUnKtmxCb2jlIY5v6+yzp7RBkpqvgNORSc0g6kKXe14NEjBJM''@;'; + put 'put ''GLqWV6k9Nk0HiRW21DSK1I+33VjKukZHKmsdtGpEghQuVhyrOAXltXNJgXktEf89Xnp/0g1LCpqbPIIarK98PyTH3kLR1wAsRS8w3/3ASvnfPv/xoixPdKPjx0TW67pNW+Vv/+UbN3obXxthAkERmNdi1KvpEESDxm+qjcCCe7OvB3U320XamtPCU0VnF660412oF+iP/KZrd4OPh0HAjDhSUenA''@;'; + put 'put ''GgkX91gISlgoa/Cn1spyFLlWV55mkLkxlBCVmqQTpIUC0/+zOXZKSh74TEq0GkGQDj+Nw9y93pZNT8X8PwlZjLDoBeYf/+5nZfXdKwIXf2mgbMo/ff378sJrr2cxjXzLSBEIqsC8lqdKCoHW1DI/IbVyQlWkIDrjKK3RC4HZAfd6J8ohdeBPYzl7ukIS70bXIQrPa1H65rEBq2SsDFbIOojJBgdi''@;'; + put 'put ''0pEaiMpR9RCYNfoa6oWqmMTVhpPCRYbW38T/QfpBH2wyKDAHo+Kv5yJRRx7+YhzxvojvxbkoKMdkJg7zuf+fvesAkKo6u2fq9mVhadKLgKggCAFEaVKEqMRobFEsPxr9TTEaY/1jS6ImakSCYk9ETSxYwQIiUhRQmoICgvTey9Zpb/7zvWUImIXd2ZnZeffufbq8KW/uu/fcO/PO+8r5ns6gI8n+''@;'; + put 'put ''1XUW8HH2RmmCKaLLj933ezRv2kS7+EvRwLzzobHYuIXmIrM5FoG6QjArmwD750/4x0FLp1g9o3Svh4KWrcVZVuShm53Ec7cbxXtJPPe6+Jxu9mLGGpW5qRXJUHb5kNlShoDA62WsZEZuFHkFTMKhS1tIZB5JZC6JZQWRpP4nM7tFi0+skTHLpFy1dblwxwOwIZjxoJW+Y08bGUKnXiSXCiSOVRcl''@;'; + put 'put ''+b6yYBfjMP38vVQ/DlNpgqlr/KVUFFm6fBXueeTJCqtBdVenOa7WEajLBPNoYNuUkf8cQTxJVSxaM0XKKcj6AeXllEg6IJZOkHSSgPJx7HmAcZ6BUrpgwxWE52jnMa/bxkXGP1rIzAIyKD6dXc9Cdj7lgbjPpUs7u4DPs/leLv8yaYEWFQFexYRISka3JBJC3NwGzEMIGIJ5CApHP2jNcqIDLuJN''@;'; + put 'put ''alQvuSKp6jPtJephLlNfD1Npgnn24H749ejL9Iu/9HjxxqQpeOnNyY7+gpvOAYZgxrcKbIMl/7H1Oe1/SJLYhCTo8TrBKjcspxikXFIp7ISiAPfltHiW0Q1fStIpj4OyLwHCAR7HYyMhciT+CWkSd64OmwzD440yy59/JI9+ksPMbBJJEsUsWiOz+ZdLi2RmHl3ZfD2DsZHiNpQkATevSzaJFFxp''@;'; + put 'put ''JRZhIEnAERZpiGTVq8MQzKoxcsIRObx5GnFNObLzeNMka90JnUpCHyQOc/H0KBZOUV8PU2mCefN1ozC0f1/t4i/FRfXHMU+bKj5J+LKmugkhmKcMDOOUMyusc6k+n+7t2/SQ/0hWslw13EJC+X/sdYtEyWKN6jCJU9gmli6EKe0RJNkM0TIaLHfzMd30tJAG5LVyPqbUUohup3CQf6xiJMdLNSPL''@;'; + put 'put ''kox4WvKoCRqReCe2Lao60YNZ8rYqRXXjoFi3znb3sxmGT9N6K8/lsdQ4j3I8/GNiqNTY9rIapawbL//8GSSG3EsspJe6fhlZFnx8LNZGv7zG432Mg/SQPHp9UkedbUs9UG5CqKOMixQrpC1YLiRdl6tsGhe6IZhpBD/OUw+5IoDmHfghfgl0Wfpiwdy8ysJHz2dU/KbEiYmTDleWYEr9cYm/bNOy''@;'; + put 'put ''uXbxl9t27MKtfx6DomKaaczmaAQqapFbrEUuRMZktNTWZNkU6yDREtIlm9t+zndihFRelAMlN4XMS3JU5B8hZBYJakQIWUTqtHMvx9jvSz3sCqJm8T2JKY0eg2TKRY2foLWRpxViKScUQsm+CMEUUul2W/Zzed8jfeSf/X6MLB68Mh66QNp9kc4c7JP9gP2wXzH/pBoBQzBTjXDy2u/SP4Qew+Sm''@;'; + put 'put ''UB83ufw2lBywMOmJDOUrrSlLMFtSWP3Ru2+GlFTUSf9S5IlmzV2AR556MXnfQtNSyhAwBDNl0Ka04UOe9IMPSPsqyOhhZz10zGGvHevhD62HRzw/+OSI147VmHkvbQgYgpk26OM+cdM2EQweRbkihpJocwNm34O68OFzXmxfz7tShTdlCeaAPj1w269G0w1G35dGm8gTPfvyREyeNkujUek7FEMw''@;'; + put 'put ''9Z1bM7K6iYAhmOrMu4SUDL8myJKkZGW8e9OFZEoc5udvA8vnMZ5G4U1ZgnntZefjgrOHaZXgIzFcpWXluPvhJ/D9uo0KL6u603VDMOvOXJuR1g0EDMFUa54HXBxA2y5URtBIrkiS9VYuiGL2RLUTfZQlmA/e8Rt0PbETs0gZua/JJgRz3cbNuOPBsSgr18syq8kU/dcw/FlR/GhECCf0krrdJgbz''@;'; + put 'put ''vwAyLxgEFEPA6/dg/ocuLJ/rsZPCFOt+netu59NC6H22XnGYHhaz2L05iklPZVYk8Ck6q0oSzHp5uXj8/ttQvyCfgfkVwfCK4n9EtyX+8pPZ8/D4c68c8bp54lwE/HTR9D47jI49DcF07iyZnhkEqo+AaIXOm+zGyvkeW22g+p80R6YDgYYtwxh2ZYRqC/q4yEUpIlAaweTxWSzPa0eIpwPahM+p''@;'; + put 'put ''JME8sWM7PHjHjXZyj04JPqY8ZMLrudYbEILZ55wwOvQwBLPWwTcnNAikAAFDMFMAagqbrIjDDDAOk7IMGsVhyjqc+k9KFq2kFIWim5IEU0eB9Vj85f/9dRzWrN+k6HKqe932Z0dxxnkhtGEMUDhoXOR1bwWYEeuGgCGY6s3ogEuCaHMy+61RHKYk+sybBHzzmbqJPkoSzBuvuQzDB52hlcC6ib9U''@;'; + put 'put ''70dNemwIpprzZnptEDgaAoZgHg0Z577e5Ywwegyni1wjPUxJ9Fm1MIpZb6ib6KMcwfRQVfmvf7gJndq3ZVk5lvLQZBP3uOhfPvr0BE1GVDeGYRPMn8rds9tYMOvGlJtRao6AIZjqTfBx7cMYfFmElbP0icOURJ+ddGZ+8JSfxR/UjMNUjmAW1q9nJ/jk5eZol+Dz3CsT8d7Umep9u+twjyX+p+95''@;'; + put 'put ''EbTtKqUIjYu8Di8FM3RNEDAEU72JzM5jXfJrA8gpYF1yTeIwJdGnvJgVfcZnoPQA40sV3JQjmCd1bI8H77zRJpc6JfgEgyHc99hTWLZyjYLLqO522ZYpGh7GCb1Zi9zIFNXdhWBGrg0CQjDnvOPG94tNFrkqk0oVTAy5OohmbSm1XvG/Kl0/ej9ptJTQuY+eZ0WfdWpW9FGOYOqY4OOm23/rjp24''@;'; + put 'put ''7U9jsL+o+OgLzrzjOAR8GVF0HRhGtzNJMMuNBdNxE2Q6ZBCIEwE3XZOzJ3qwbikJZlhN12ScQ9bicNEjPvmMKKywpVVFn5lvuLBqgZqZ5MoRzBuuvBgjzxqkVQUfIZiLli7D/Y89o1VddS1+taoYhMcfRaeeYfQ517jIq4DKvG0QUAMBcsqZr3qx8TsPrIghmGpMGnB89zBOv4C62Jplki+ZGcWX''@;'; + put 'put ''H6iZ6KMcwdSxgo+XAusTJ0/Fi29Qk8BsSiHgZlB5i44WBl7KilKKBmIrBbjprEEglQiQT4aZOzp9At2SGzy84TcEM5VwJ7PtwuYRnHVVCF41uVilUHj9bmxYbmHahMxK33f6i0oRzLycbIy5/1Y0KmyACOUItNlcbjz61D/x2ZeLtRlSnRmIK4rCJhaGXhWEP4eB2BYDgMxmEDAIKImAy+NCyd4o''@;'; + put 'put ''Ba79OLBbyKUhmKpMpCRcjvhFAPUK+TusSaKPm+tx306WjHwyQ8mqUkoRzLYtm+ORu2+mFIHcWepzIS8pLYMIrK/buEWV77Lp52EIZDGD8czLgmjc0s2YLX1Klx42RPPQIFAnEJAEn62rgRl0kZeXqJm5WycmqpJBCicYdgUTfTryTd7o68AQmOODQAB4/wk/ivaptx6VIpin9+yGu377CwJOxDXZ''@;'; + put 'put ''JEts/aYtuOPBsSgtK9dkVHVrGL5MCz2GRnDSGSbRp27NvBmtbgiIuPXS2cDiaR6qQqh3QddtPuIdT8/hQXTpR36pUaKPWDE/et6DbWvVS/RRimBe+pPhuPLi87RK8PEw/nLO/MV4aNwL8X6XzPEOQUDiMFt3ttDvYgZvGQOmQ2bFdMMgED8C4iKf9ZoH65eZBJ/40Uv/Jzr0CKPvT/VL9Jn5OjPJ''@;'; + put 'put ''FxqCmdIV9rvrRmFI/75alYj0eLx4/b2P8PJb76cUO9N46hAQ10y9BhYGM8C8XqGLmac6OGdSh5dp2SDgRASEXBbtAab904v9eyjYbeIvnThNx+xT41YRDL0yDK9XDxe5DFZqki+eHsXCKeplLyljwRQpn7/e9Vuc0KGdViUiwQSfvz39ImZ/seiYXxzzprMR8GVY1MKMoOsAI7ju7JkyvTMIVI6A''@;'; + put 'put ''jxfyZZ8DC6bSPV5u3OOVo+TsV7Pzo/gxE32y85mexft8HW71JWxj9WILM17LcDb4lfROGYKZn5eLscwgb1C/QKsMcom7/MNfn8CaDSw6ajZlEXDx16xxS1oxR1EmQxQljKtc2bk0Ha+DCDCZwmKEy7SXvdixnu5xy2SPq7gK3O4oho8OoFEr9p6/wToQTEk827HBYk3yTOXGowzBbN3iODx69+9o''@;'; + put 'put ''+vZqk0EuCT5bd+zCrX/8G4pKSlX8Pps+H4aAP9tCn7ND6NDDbcpGHoaLeWgQcDoCYiVasySKOW97ESgz1kunz9ex+tf/oiDancLikeGIcoSssnFJkk8RpbMmM5M8oJhlXRmC2bt7F9x98/UIBilorckmcktffbsC9zwyXhvSrMnU1GgYYsVs0pqSRZeH4MvgD5zRxKwRjuZDBoFaRcDNuOkwxdVf''@;'; + put 'put ''8WLrGje/t8Z6Wav4J/lk3QeHcMogWi+pla2DBVOkisIh0cIUbVa1apIrQzBHDhuIG666RKsMcjcJ5kfTP8P4Ca8n+StmmksXAiJZdOqQCE6mVIapTZ6uWTDnNQhUHwE79nIukyg+8iFYbshl9ZFz5pHtu1WUjHRZ+tQkFyvmlBc8vAFSK5NcGYJ5/agLcd6IwVoRTJEoeu6ViXhv6kxnflNNr2qA''@;'; + put 'put ''QBT5hYzFvCKEgoZGeL0GAJqPGARqDQG3102rkIXpL/uwb4e4xg3BrDXwU3Sixi0PZpL79Mok//RVMNnHlyLUUtOsMgTznpuvQ+9TT9FKZD1CF+pD457Dgq+XpWZ2TatpQcDWxTw5gv4XhCtcNDr4adKCpDmpQSCFCJBLCp2c/ZYX67/xsAqXIZcpRLvWms6tz0Sfa8qRnVshNKXDz69IFc2fEsXX''@;'; + put 'put ''09WSKlKCYEpijyT4tG/TUiuJIikRKRV8Nm7ZVmtfPnOi2kHAli0aEkbXfi6T8FM7kJuzGATiQkASe5bMAr76xFTtiQs4hx/s9Vn48bVBFDQlwdSkJrkQzGVzLcx5Ry2pIiUIZv16+Xjsvt+jQUE9bSSKJIN809btuP2BMSguKXP4V9Z0ryYIZLNG+ek/C6JVJ7mARWrShPmMQcAgkAIEhFyu+9bC''@;'; + put 'put ''3Ld9KC02WeMpgDh9TZJUDtWsJrnX78b65VF8MsEQzKQvrNbNKVF07y3wMilGqqbosIlw/JLlK3H3w09qMyYd5iWpY2BWeUFDCwMuCaGwmQfhoCGZScXXNGYQqAECQi63r4tg1kRm5e4St7hxjdcARkd/pO/IIDr0Zhc1qUnu8bqwa4tFqSLRwlRnvSphwTy1S2fcd8sNCIepJaHJJgk+02bNxdjn''@;'; + put 'put ''/6XJiMwwKkNApIsatrDQ/8IQ8iXpJ2QU2CvDybxmEKgNBLx+D/ZstTDrDS/2bhODRW2c1ZyjthE4ZVAI3QfrI1UkWeTFey28R6miYJk6UkVKEMxhA07DzdddqVcGOWuQ/+vt9/Hqux/V9nfPnK+WEZDqEo1bR9DvggjyCt3GklnL+JvTGQQEgRi5/OwtD3ZvFnKpjiXIzGB8CBzfPYTTz+fdgyZS''@;'; + put 'put ''RS5qtQbKK8TWi/epE9KhBMH8+U9H4IoLf6IVwXTRRT72uVcw/fMv4/vmmKOVRMAuJdkqgr4kmQWNXIgEjSVTyYk0nVYSAdstznJ7c5gxvne7sVwqOYlxdLpZ+zDOvCwCj0cTqSK5F6LqzPvP+LF7i7FgxrEUqj70N6N/jh8P7q8VwQyFwvjT488wDnNV1QCYI7RAQEhmg+Oi6H9RGPWbMDzIkEwt''@;'; + put 'put ''5tUMwsEI8MIs5HLjCgvzJnkZc2m0Lh08W0nrWoPGFoaOLkdGFudbkzAIDzVbP37Rg00rDcFM2kKRhu5lichep3bVSgOzqLgEdz40lpnkO5KKlWnM6QjQXU5LZo/hFpq1ZbUficnU5AfQ6cib/tUtBMSt6GHs2spFUSya4kPJAcrWSN09s2mPQBYVPEZcG0BugVsrqaJP/02x9a/UEVt3vIvcQ1fy''@;'; + put 'put ''o/f8Dse3ba2NBqb8yG3dvhO3PfA4DhQVa/9lNwP8IQKs9tMwiu7UyWzfBRDBfVO3/IcYmecGgZojINYeqd+8ZIYb384RBQd14tZqPmrzyRgCumphzpsUxTefqSO27niCmZuTjTHUwGzcsFArDczvVq+jBfPv2owp9sU2++ojIHfZJ54W5p8Fb4bJMK8+cuZIg8DRERDNwOK9UXw13Y3vF3thRYzV''@;'; + put 'put ''8uho6fmOzPiQ/wmgWRu6hyr+V36gIrb+9Ywo5n9oCGbSJrNRYX2bYObm5DAhTI/ECJEomjv/Kzw47vmk4WQaSj8CYm1v0awJ2rZqjhlzFlSrQ76MKFqfFEG3MyOsYe6i1cW4zKsFnDnIIPADBFx0h4tLfOv3Liyc5sbOjW56Bqoml16vB5kZfpSUlhtN4h9gqvLTARcH0LaLC9GIpUUUkhDMFV9E''@;'; + put 'put ''8dlbhmAmbV22a9UCD//hJv5w6COy7vX58MG0WRg/4fWk4WQaSj8CebS2//LqS9H1xI544PFn8c1331erU5L8U9jcQrfBEbTsJO5yJgxGTGBmtcAzBxkEiICHVstwuYXl8zx0ibtRVlS9RIiC/Dxcf8WFOOH4tviUih6vT5qKsvKAwVQDBHqfG0LnPvw91URs3cc1vvYbC9NfyVRmdhzvIu92Uif8''@;'; + put 'put ''8dZf6SWyTg3MV96ajNfem6LMQjEdPTYCcgN0Conlnb++Bn6/D6vXbcBD417A9l17jv3Bw97NzLHQqVfEdpln5Rlr5mHQmIcGgUoRsBN5pMrJJuDrT1l+d5WXxQyqtlpKYxILf93lP8MIKpR4mBAk1dXGv/gapsycg2AwVOn5zIvqIKCb2LrX58bWtRY+eCZDmWQ1xxPMAX164HZetMvLy9VZ2VX0''@;'; + put 'put ''VFzk41jBZyor+ZhNDwTycrN5sboQg/v1sdeqXKwWLlmGR5+eQNdb9WvNu6nb1riVha5nhtGsHbGhIdNYM/VYI2YUyUVArJahsiizxF1Y9pkXxfuEWFaPXEpPenU7GTdeezmyMyvqO2dkZGD5ytWUj3sWe/cfSG5nTWu1jkCnPmGcdq5YMCNauMilXORuVqGaJOUiFSkS4HiCOXLYANxw1aVaaWBK''@;'; + put 'put ''1vDDT/4DXyxeWutfOnPC5CMglpDj27TEPZTTys/LtRO35DVxcn8yex6efmkiQnGWOc3IjuL4U5kA1NdCfn0XPy9M07jNkz97pkXVEHDzQis0cttaF5bMcnPvqbbVMjZWuSEUb8MJHXgXd7BepHxng6EQ7vvbU1ixai3VHfSI+Y+Nua7t23Zl9bQLI3BpUs1HykUe2BXFJJaLDCmiiuB4gjnqgnNw''@;'; + put 'put ''Gf/KyqpvBXL6FykQDOLuh5/EyjXrnd5V079qIJDh97MQQD9ce9kFR2i1ygXL4sXrnQ8/wUtvvh93AoHEZtZrZOFkksy23SIUjBbpFZMEVI0pMYdoiIC4w70kl/sZdbJirgurFnkRKK2+xTIGiZcepNGXnIezBp0BNnnE99LP7/LY517GjLkLEDBu8hhkSu5bdIxgwCVheDWp5uPmYi0psjD5yQyU''@;'; + put 'put ''Fashu+V4gvnLqy7GucMGaUUwi0tKcceDjxuRdSV/tv6702K1vImutt6VFAMQkhlmFuMbk6bUOObW66sQZz/xDAvN20fh8Zn4zP+eBfOKtgjwwuojsSwttrBmCTNp57ntijw1cRN6GSt9+QVn85oykHGXzDI/aL2MYZeZmYm3PpjGGPn3UVqmT1hWbHx1ad+oZQRDrwzDx99PHXw/dj3yAOuRj/Mz''@;'; + put 'put ''HMQQzKSs5VtvuAqDTu+tTQymEI7tO3eTYI7Fnn37k4KRaSS9CDRv2hj33fK/aNKoYaXJaBKPKdaQf7/9Ad7+aHqNOyuSRs07RHBCHwtNGKfpYdC3sWjWGE7zQacjQOuij2s8QJ63aQWwfK4HOze7a6xrGSOXI88aRMslQ1h+QC4FDonDXPj1t3j4qRdNEQynr48q+lef5SKHjQ6wXKSYqas4WIG3''@;'; + put 'put ''uWS59hmDSQvmvp3VU0lI97Acb8G8/5Yb0JPB2IGAHtIRQjA3bN6G2x8YY+6Q0736k3B+uWh16dwBd914LV0xR5fSknkPMdj8dVoyJ07+uNKLW3W748uwKGdkoSMzzpu2isJtiGZ1oTPHqYDAQYtlIGhh80oXvvvCg+3r44+zPHyoonV5+fnnYCQtl+JqrIxcyvHiPhcDwL2PPmk8TIcDqODj3PoW''@;'; + put 'put ''hl8TQHZuRcyu8hyTBJMLFx8+68fOTYZgJrwk5aL88P/dhM4d21M2Iphwe05oQKxZK75fa6r4OGEyktAHv89LC3sv/Gb0ZVWuUZl7SfZ5mfGYk6bOSDiJQCyazWjR7HCqhaZto8jIFHc83UFGQzMJM2uaqG0ERCjdy78A9Sw3r3Tju/nuhImljCGLWeJXXTQSwwaeweQgfj8qsVzGxirXnHAkgj+N''@;'; + put 'put ''eQZLl69K+Dsaa9fsax+B7FxaMK8pR34Djzb1yOXm6KMXvHZiW+0jGv8ZHW3B9FOQXMpEtmrRTJs65EIyFi1dbmcqxj9d5hNOQ0AuXucNPxNXXDiyWmEcMv+lFHKe/PEMWjKn0XWe+I2Tx2ehUXOgffewbdnMLmB8DnOBwhQY1sE15LQ5N/1JLgKSFS4ZsqX7o9hIV/iqhR7s3kKLZVhMNolt9evl''@;'; + put 'put ''4xfUuuzbsxuJJSu6HINcxs7k43XnEbrIP/9ycdzqD7E2zD79CPgzoxhOF3lBE1owOe/KWzAJqdfrxscT3Nj4nTf9AFejB44mmLE65EeLbavG+Bx3iGhgzp63AA+Pf9FxfTMdih+B7KxMJg2cg/N/PKTaiWhCMoOhMGbOnW8nE+zdXxT/iSv5hJtZ53mFFlqdGEGbkyw0aFbxg2SsmpWAZV5KLwK0''@;'; + put 'put ''xEhGuFSt2rvTwoZvPFi7xI19u6pX3rE6nZfY6F//z6U4sdPxjF2jFmI1yKW0K3GYT00QwfW5DM1K/AawOn01xyQfAY/HwohfhNDguCgJph732r4MDz55xYV1Sw3BTHjFyN3nY/f+Hg3q17O1BRNu0AENCMGc8unneOKfrzqgN6YLiSKQk52F0Zeeb8sUxSOlJSRTJIwWUYz9pTcnY93GLYl25YjP''@;'; + put 'put ''+/xRNG1DsnlSGMd1iCJfrJo0CEWMC/0InMyTWkSA68/jcdNaCQTKLGynjuXapR5sWulBeYn0I3GLZWw0XTt3pFfhXHRq36bSxLvYcZXtJZP8H6+9g/emfIpyQzArg0iJ19zuKM66OojGbcguNXHmSD3yT19zYTUlulTYHG3BbNqoEI/ddyvESmRpInorQeQig/GP195VYX2YPlaBQG5OFq4fddGh''@;'; + put 'put ''Cj5VHH7E2xLvJURz3aYteHniZHz51TdHvJ+MJzwFsvMYo9neQuvOEVYJiiKnHpOR+J8hm8lA2LRRFQLi/pYqJKJ4sG8H6N7zYMO3buzZVvOM8KOdUxLthvY/DRecPQSNGzaokWEiKyuLcdKT8eb7/eqQVQAACklJREFUH5u65EcDWoHX5bdvyNUBNBOCqYkF08vqVQunulgW1afADPCWsfvgnxJ6''@;'; + put 'put ''Z24tmzWlBfMWO7Ovuu4NZ47kP73ysA75y29OYjbx1P+8aB4pi4AQTCkROYQXtZqWM5Wbjn0HiuzEn/c/mR1Xacl4gJM7+uwCSh21i6A5s9AbtSTZzHezri3jNY1lMx4ozbHHQoDrSZIRhFTSM40DuyPYtoakcrkbO9Z5bNkhublK9taEBokLzxmK/n16IjPDXyNyKX0SgvnqOx/aig9GCzPZs1S7''@;'; + put 'put ''7Q0eFUCLjjwnq6A5lujEAYkQzK8/BUmmP45Ppe9QRxPMDm1b4S93/da28mhDMEkmnv/Xm3h3yoz0zbo5c9IQSAbBlM54aHkRQfZFS5fh37y4rV63MWl9rKwhqRKUW2DZ7qPmrHjRRMhmfTf7IVpr4krXxKdU2eDNa8lHgHzRS/e3i+tHLJVFrLazbb0bm1eIxJCLLnAhlMknlbGB/KjbSbjkJyNw''@;'; + put 'put ''PK8ZDLZMyOMlLvIXX3+Xv9GfGgtmDGBF9wMvDaL1yew8Ex51IJhy07ZmCTDztQwlZsTRBPNkBmf/+fZfJ/Rj4bRZcPMKPu6Ff+HjWfOc1jXTnxogkCyCKacWq44QzW07dtmC7J/M/iIpWeZVDotkMzsnioYUb2/GSkGN20RQ0BDwM6Bc4kSNK71KBOveAeSKHlopXbzgybotL4ngwE4Xtq0jqfze''@;'; + put 'put ''hV3U6Qva1X1TRyoF9IYNCmxtyyH9ToPUFw9TBizRzcRgJoqgcz7f/6IA2nVlMhlvmHUhmGtJMGcYgpn4Iut+8gm4//e/TMqPRuK9SVIL/DF+7JmXMGvewiQ1aJpJJwLJJJixcdjWTIqyL6Q1U0TZv1u9LvZWyvfiKfDz5rheEwvHtWGiEN3pDZqSgNZjcgbzhKK0bobpbhKXk9nqEALkieL2lnhK''@;'; + put 'put ''qYITCkVQvBfYs9Vtk8rt61gjfIe4xLlIamHz0RPUp0dXnD9iMNq1aZmw1fLwLksW+fP/fgvvT5vNJB89CnwcPr669LjfzwJo300fginfvx0bLXzwdJYS0+hoC2afU7vgDzddX6WAtRJIH+xkhBfmR8b/A/MWLVWp26avR0EgFQRTTiVWIYnN3L13H6ZSLmXKjM+xa8++o/QidS+LKz0730LDFrCz''@;'; + put 'put ''0huyvm+9hlFk5njZR8Y1GcKZOvDT2TJ5oodrMGahDAdIKA+4sG8bbOukuL33bmcZx1LpZGqtlD+EoWO71rb27I9Y4U10aEOh0A8PSei5EMzxL76GqbOMTFFCQDrgw6f/JIjje3F98oZdh1tiqUe+b3sU747LdAC6VXfB0QSzX+9Tcedvrq1x8kTVw6/9IyS27YG/P2eLrdf+2c0Zk41AqghmrJ9i''@;'; + put 'put ''zSSTw9oNmyjOPhOfz/8qrSVG3R5qbTaIorA566G3tlDYzEJ+IQlnNqtliIWToZtyExUVC6cOv+ixidB5z+tvzN3NKEqGJEVRXkZCua/CKrlroxs7t7hwYAflhMTtHa1dQhmD/rgmDTGc1XjOPP1HqF9Qz/ZspSI23xDMGOLq7/UkmBYJprFgJrw6B/btidt/dU21BawTPmEtNBAMhvDnsc9iCcuQ''@;'; + put 'put ''mU19BEQH80pW8Rl51qCUrlOpLiJlJpetXE2iOctOBgpwLaV7k8x0qfnboFnUzkovpKhxfkOL9X9JWvwkx5JwIUlDQjjlz2zpReAwy6SQSU4Ps7ojKD0AFO12UTqI8ZMkk/tpnSzex9Km1BlPRcZ3PCA0KqxPUtkLQ/r1QdPGDW3B9Iikp6doMwQzRcCmoVkdCeaebRYmPWEIZsLL6dyhA3DDVZdo''@;'; + put 'put ''ZcGUyhD3/m0865GvSxgf00D6ERCCOepn59ouu3iE1mvS85jbXMSfly5fSbf5HCz6ZjlDSNJPNGPjEbd5JhOG6jVm0hDJZgNaOAv4OKcea6XnuCuqt5DViGtdEojEWmYsnTH0krinkdGOmZREHJJKWTuSrBUoJZlk4ajivR6SSdDl7aE2pcu2VgbL5fzpsU5WNnLRsTyjV3ebWIpknWzJSOKp7FyH''@;'; + put 'put ''v2YI5uFoqP1YO4LJ73HRnijeGmNc5AmvzCt44b7kvBEs16VPoLUEjd/76HgmbqxPGB/TQPoRqE2CGRutkAWxaArR/Pa7VbYigdS3Lym103Zjhzlm76FbPTu/wrJZ0ISkk0lD+SxpmZ3PsnzZJJ5ZjOdkb+08T0M8qz9vBE3WAjkk5YEq9hJOYZFIBmmVDLA6TvEBNy2TJJI7hUhWWClLi2iZtH9S''@;'; + put 'put ''BXXnbVLiUbxX/Xv3QDM+lq02iGUMCUMwY0iov9eNYNozwq/thLsNwUx4dV5+/tn4Of90IZhyMSgpLcVdf3mCpQE3J4yPaSD9CKSDYMZGHSOaYQawr1q7HjPmzMcXi5di526m9zp8q7B0WsirD+QyhrOAiUOSPJRNd3tWLvd5kuQkuoq0wNnedYnrFI97RXyn7Wy3/3H4QBPpnhBHfl4C+2WuxRIp''@;'; + put 'put ''Gdzyori2g4EwiSRd3NSYLGECTvFexknSzX1gF5/TvV28HwiVixtcWnH25vV60LFtawxifGUvJu80LGxgy9PVJrGMIWQIZgwJ9fdaEkxOy4R7DMFMeHVeP+pCnDtsoDZZ5IZgJrwkHNdAOgnm4WCIRVPI19YdO/ElFQpmfbEQq9dvpls0dbFqh58/WY/dZJMZWYzrbGAhpwB2QlEuqw/JX1ZexXte''@;'; + put 'put ''/rb6M4SAMsbTdv/y7CSf4nIXd7vtdudLkmh0iIMeepCsntawnQp+KIZGEsWKJzZpFPIozJH/S1ejtEJGKA4dDFh2HKSQyDJaHktJJEuYfFMkfxQzL9vvRlkp3d+2/KM0qtZWkJ+HHl07YwCr73Tu0A45Odl2Vng6SwMbgqnWGjpWb3UkmPLdePm+7GMN2zHvOTqL/LZfXo1+dJMkW4YiXegbgpku''@;'; + put 'put ''5FN3XqcQzNgIRdpI6puXlJRiBfUzP/tyERZ/s0IJq2ZsDEfbe9wWvJkuZqxbdpxnZh5Y6lIsnizvl2sxxlNc7i5kZFjw8zi3Nwo3S/b6xBIqBE6EPIWQygliXIxsTnhpbLMpaex5bB978/B97PPc07Z46B2bOMozeUnalsdCfvmogjQKcZQ/un2ZQBMKuEgiKVROklhezOxtksgyurbLikgoiyus''@;'; + put 'put ''k4EyN49hW9Z/ziPNqrpl+P2suNMSfXt2Q8+uJ+I4usE9nBv5nU9FVni8OBmCGS9izj1eN4JpyxTtoEzR340FM+FVd9sNJJh9DMFMGEjTQMoQcBrBjA005j6XC/b2nbuxdMUqzF3wFZYzuexAEZmLphsdwjap9Aqx9FnwMdnSz8fezCh8/E32ZXDPMr4iJu/xR1k5ifGs3FeQUVZSYla820twyAxt''@;'; + put 'put ''PkqSam+yO8jvLBI9SyyGfC4Z8lZIpH1IGENCHGlN5D4UdiMc4D7oIpEkiWR4bDggRNFCJFiRnS1xkHK8fPZQ4/JQw02sza2aH4ceXTrbLvC2rVsgmzW/xcKeDjf4sSA2BPNY6Kj1npYEc7s6MkX/DwAA///r8VITAABAAElEQVTsXQd8FNX2/rZl0xMSSkLovXcBBUSKgNg7dkXF8tRn74o+n/7V''@;'; + put 'put ''J4oFsIMdO4KCFEFA6b33HkpIAklI22z5nzNhNcQkpGyZuXvmR5jd2Zk7937nzsw3p5q6DrrUA50uj919C/r17o6ioiKd9rBq3TKZTMjNy8NTr4zDnv2pVTtY9tYlAlGREbjhigtxybCByM/P12UfLRYLbDYbHHQdHTpyFBu2bMfS1euxbdc+ZGXn6LLPeuqUx/P3LZKvYVkqh4DNakXD+kno2rEN''@;'; + put 'put ''undqh6YNUxAXGwO32w2n04mSuFauxcDsZbfbMX7SZMxeuASFhY7AnFTO4hcEzrrUgVY9TPA4Xfj7KvbLqQLSqMlswvEjbvz0TkRAzlfTk5iEYNYUwsofLwSz8lgZZU8jEMySWFrpoc9/TDaPpKVj07adWLl+M7Zs3430Y8d1+9AvOQb5rF8EIiPC0aRhfXTt0Aad27VGo5QkxMbEaPOKSSWTS70v''@;'; + put 'put ''YWFheOvDz/H74hUodKih3NA75v7q39lXFaJZJyKYLrc6BPMwEcxxQjBrPGdEg1ljCKUBPyNgNIJZEg6vZtPlciE94xh2k1Z93aZt2Eikc//Bw8gvKCy5u3wWBP6BgNlsRp3EWmjVtDE6t2+NNi2aoH69OoiIiADPK/4zAqksOTDW9o/94DMsWLJKexEr+Zt8NhYCqhFMs8WEQzs9mDkx3BCCEA1m''@;'; + put 'put ''AMUkGswAgh2gUxmZYJaEiIkCP1h5yc8vQOrhNGzfvZfM6TvIlL4XR9IzyKzpKnmIfA5RBGKjozTTd8e2LdG2RVM0bZSChFrx4BcWJpRGd2kqJpifE8FcKQTT4HN84PWFaNiaBuH2KKHBtFhN2L0O+P1ruyEko2uC+fg9I9G3ZzfD37C8M0EIphcJddaqEMzSEuGHLBMG1j5l5+QQ4TyKrTt3Y8uO''@;'; + put 'put ''Pdi5dz+Oph9DEZk8ZVEfAZ7jKUl10apZY7Rv3QLNGqeQ1jIBEeHhf/lTGk1LWZHUhGBWhI5xfmMf33NvdCClFfVZIYK5YzWw8DshmDWeiQ/dcQMG9OmlHMF8+tVx2L1PgnxqPEF00ICqBLMktKzdZLLp1VDlnMjFwSNp2LF7P5FOIpx79iMtI1NM6iVBM/Bn1lAmk5mbCWXblqyhbKCZwSPJ7M0v''@;'; + put 'put ''yayhZE2lqosQTDUkazYRwbzFgaSmFN5Drr8qBPlYw8xYPRdYPTvMEELStQbzRorOHXHJeRTJp44vWKHDgefGTNA0QYaYIdLJChEIBYJZGoCShJO1BCeIcGZQgNCeAweJbB7Ajj37cODgERyjCHWViUhpXIz4nSO9E2vFUTBOMmkmG6Bl00ZaYE5iQi1NQ8lj4uAc/guVRQimGpI2W9wYdqsTtRu4''@;'; + put 'put ''QVxTCYJps1uwdAawYX6xO5PeJaVrgnndZcNx3WUXqEUwKe3Fc68LwdT7hVHZ/oUiwSyNDWu1WLvJ0em8sIaL0x8dPpqB/amHsWvfAeyjNWs9s7JPiGm9NIAB+m61WlArNlbTTnKkd/MmDdGI0ghxkA6nD2L58QsDk8lQfjEQghmgCenn01htHgy/vRDxSSYimGr4YIaFWzB3sgm7Vhffa/0MYY2b''@;'; + put 'put ''1zXBHHHxMNx45UVKEUwOlPjvm+9jLUXrymJ8BIRgli3DklpO3oOtEGxaT888rkWoc5T6vtRDREIzadsx5FFgkV7zIpY9Qv1uZRyjoyJRKy4WKcl10TC5Hho1SKZ1EmonxFPaoGhwKh5emEjyn0o+lDWVjBDMmiKoj+PDI9wYQgSzVh2zMj6YNjKRz/nCjL0bhGDWeJYN6tsTj9w9UrcJrKszQCfl''@;'; + put 'put ''43pl3EdYsXZTdQ6XY3SGgBDMyguEtZys7WRNGa9ZU8YR68ezs8nEnqVFrh+k6PVDaRk4cOgwjmXlaMQzlLVpFaHLGsmoyEjEk/axXp0ELT0Qpwhi/8m6tRO07fw7486LkMmK0Pz7N56f/5swCYtXrBVt+9+wGO5TZCyZyG8rRHS8WRkNJkeRz/7EigPbiq9pvQtF1xrMc87qgcfvuU0pgumBCWPe''@;'; + put 'put ''nYQ/l6/R+9yQ/lUCASGYlQCpgl2YaHq1nbzmPyaeeVTxKic3D8eJZLJ/J6dJOkLazqOUrzPzeJZmgj+Rl48CcjlRlYCaCRu7PQycvDyOkpXXio9BnYQEjUzWq5NI60QkkJYymoJyOKLba+JmDaaXTIpWuILJV85PrMEc894n+HPZGklTVA5GRtgcm1hMMMMjyUROHVYhyMdMlXx+/ciKw3uEYNZ4''@;'; + put 'put ''Dp7ZvTOevn8UHBQYo8piogfo2A+oSsSi5aoMKaTHIQTTP+Jnoukln17iyWdi4sTm9gJKAp9P66ycE5pfJ6+PZ2VrWk/2/8wmczyb5HM1Ekr7ExFl4soWhGCag1mbGGazajlHw4k88vyJJi0jm7TjYqKIRMaRaTuGtI+x2nf2jeR9IohkhlMJQ68WmIkjj4fXPB4hkr6bh2Ii9x2WwWwpIcmNoSML''@;'; + put 'put ''YQsneqkCu2SWTOmWfnk/DBkHhWDWeG717NIBzz54pzJpihgQC5lf3vn4S8yav7jG+EgDwUdACGZwZFCagHrJqJdwMeniYCPO2lBU5NQIJn9mX08Hlf/LLyjQCCoTVS4HWEBklbfzvk4isbzmsAD2mebPbs8/SxxyBLaNyKJ2bpOZ/Bpt8G5j8sg1re20LSLcjgj+TNtY08i/8TZtX/rdTv6QrH3k''@;'; + put 'put ''MXmXkuPwEkghkV50/LsWgulffAPVer0mLgy+wUnXlhoBPmTQoPuRBz+PD0NWuhDMGs+jTu1a4b+P3qOUCYwJ5qTJU/DDjN9qjI80EHwEhGAGXwYV9cBL2pgEekko7+/dXvJzSQLn/exdl3cObpMX77rkZz7We7xXa1p6XXIfrSH5L+gICMEMugh80oGGrV045xonOB+mEgpMMo8X5rkwbUI4co//''@;'; + put 'put ''/TLqE7D81IiufTA50e8rT92v3by9N2o/4RCwZi0WKyb/NB1f/kjJrGQxPAJMMDlf68XDBirlK2x4wcgABIFqIlBMMKUWeTXh081hLbq60OcyKgjALiS66VX1O8L+l7nZRDDHhaMgTwhm9ZE8eWRjSq3x+uiHNb8jVQgmm8J+mjkPH375Q43xkQaCjwD7zo0ccQnOG9iP/AILgt8h6YEgIAjUCAFO''@;'; + put 'put ''4fQ2uTHN+3OZ5j5Ro8bk4KAh0LZPEXqdR+6X5PKiBMG0mJCV4cbP4+wocgjBrPHESq5XG2Ofe0TzZVKFYLKJfM6CxXjroy9rjI80EHwEoqMicOcNV2FQv95CMIMvDumBIFBjBNh3dsInX2MW3acLKThMFmMi0PXcInTpT0FwFNinAsHkFEUZB4Fp5IPp8RS75uhdMro2kXNSYNZgciSl13dJ74Ce''@;'; + put 'put ''rn9MMBctW42Xx318ul3ldwMgwATzjuuvxOCzzxSCaQB5SRcFgdMhwATzwy++xy+/LdSCxE63v/yuTwTOutiBlj05MkYNDabVZkbqTjd+/dB+is+3PtEv7pWuCSZXnHjjuYeplFmCMoE+HFywZsMWKhf57l8BAHqeINK3ihEQglkxPvKrIGA0BMIp0n/S11M0VyZObyWLMRE4Z0QhGndkgqmGBpPr''@;'; + put 'put ''kO9a78K8L8INIxBdE0zO+zb2+Ueo3Fk9LeebYVCtoKNMMLfv2ovHX3pTS4dSwa7ykwEQEBO5AYQkXRQEqoBAREQEvvjhZ3z/yxwtrVUVDpVddYKAiYziw251oG4TMo5ThjEVTORch3zTYg8WTSku86oTqCvshq4JJnsZjP3Po2jepBHloiuqcCBG+ZHTmaRSObzHXxpLiaDzjNJt6Wc5CMRSFZV7''@;'; + put 'put ''Rl6Dvj27aQnAy9lNNgsCgoBBEGCCOXnKdHwzbZYQTIPIrHQ3w+xEMG8vQHxddcpEMsFcTdkNV86ylR6ubr/rmmAyai89fi86t2+jTDUfJphHMzLx1CvvIC09U7cTQzpWOQRioiM1H0wJ8qkcXrKXIKB3BESDqXcJnb5/UXFEMKkOeVQc5b/lfLSnP0T3ezDBXDwV2PinEEyfCeup+25D317dlQqg''@;'; + put 'put ''4GoiTDD37E/1GU7SUHAQ4DRFt15zKYYN6KvUHA0OmnJWQSD4CLAP5kTywZxK6eTEBzP48qhOD5QrE0kgMMGc+6UJu9ZaqwNJUI7RvQbz37ddp+UYzM/PDwpA/jgpl5574c33sX7zdn80L20GEIFIqhF93aXDcfkFQyTRegBxl1MJAv5CwJumaOb8RVr5UH+dR9r1HwIprVwYQFV8LGY1tJeMFKcp''@;'; + put 'put ''mjXJgtTtQjB9NnNuufpiXH3xeWo9vKlu8evvfYKFS1f5DCdpKDgIcF3pi4acg1tGXCoazOCIQM4qCPgUAYvFglfHT8SSleskENOnyAausZbdXDiLq/gokgMTHJDipjrk74ch86Ax6pCztHWvwbxs+CCMojyDKmkwORcm51mbOut3loEsBkbARrLs07MrHr7zJmUC0QwsDum6IFAjBDjLR0FhIZ4f''@;'; + put 'put ''8y627txD/IRCkGUxHAJdBjjQZRDFkitSxcdEZSId+S5MHW+cOuQ8aXRPMAf26YlH/zVSKYLJ5SK/+3k2PvmWPHZlMTQCFnogtWnZFM8+cAfsVGJOlYpThhaKdF4QqCYCfG9OPXxEI5iH0tKr2YocFmwE+lxciBY9qZyiIknWzVQmMueYm+qQ2+EoMEaZSJ4DuieYZ3Ruj9EP3aWUdog1mPMXLceY''@;'; + put 'put ''9z4N9nUo568hAkwo69VJxHM0RxulJCs1T2sIjRwuCBgOAfa/XLpqHd744HNk55wwXP+lw4QA3ZMH3+hASiv6TGZlFSLI2f/yaKobv5AG06PZy40had0TzJZNG+HVpx/QSiOpoh2Saj7GuDgq28sYiiT/1y3XoP+ZPcQPs7KgyX6CgA4R4Ajyz7//GT9Mn4P8gkId9lC6dDoEbGFunHebA/FJ6qQo''@;'; + put 'put ''soaZsW+TG3M+M04VH5aT7glmct3aeIOq+UTQha9KPXLOhbn3wEGtmo/cxE53u9D/72FhNgzpfxbuvulqSbauf3FJDwWBMhHg+zL7XL7wxntYv2WHMuWJyxyswhuj492UZL0QkdFEMGmcKmgwi6v4uKmKj91QktM9wVSxHrkkWzfUNXLazrI8mzSoj/88cjfiYmPkwXRaxGQHQUB/CISRD/XWnbvx''@;'; + put 'put ''0lsfIj3zuP46KD2qFAJ1G7lw7o1OWG1qmMd50Ewwl88A1v5unCTr3G/dE0x2un599ENo1rihUv5tHKk4+rUJ2EZ1yWUxPgJsJueSkWf3FjO58aUpIwhFBMQ8robUm3Z2ot/lbqrg41ZCe8lSYYI5bzKwc7UQTJ/PUtYM9ejcQSnzI/keY8y7n2DRijU+x0saDDwCVsqd17t7Jzxy181aJLkq/sKB''@;'; + put 'put ''R1LOKAgEHgHOfclBPc+9/i527tkv2SACLwKfnVG1FEUMDEeRz/zYgkO7jJNknfutew0md/KBUddj6Dl9lUpVxJHkH335PX6a+TsPURYFEIgn8/hjlFKrc/vWSr0MKSAaGYIgUCECXH/859nztRKRuXnqVI2rcNCK/tj3CkpR1NUMjyIpisgDC04nJVkfH4asdOMkWefpZQiCeeMVF+Lay85XjmBO''@;'; + put 'put ''/20B3v30W0Uv89AbFidd70tJ1x8YdYMWkCZazNCbAzJi4yHAWT2YVD5P2svt5LLkpjQ3shgTAbPJg3NHOpDUhGRIOfJVkKSZkqznZrsx9R07CvONkwOTZ5AhCOawAX1w/+03KEUw+aa2ct0m/IciFmVRBwEO8vn3rdfizB5dJGWROmKVkSiMAGsvv5n6Kyb/9Cvy8gsUHqn6Q4uMdmMopSiKSVAn''@;'; + put 'put ''RRHnwEw74MH0CXYizBwXb5zFEARTxWTrTDD37E+VVEXGuVYq1VNvZZ8n770NMdFRElFeKdRkJ0EgOAhw5Piefal46e0PqYJPWnA6IWf1GQKJ9V0YeksRrGE+azLoDdnsFuxc68bvXxkrRREDZwiC2bRRCl575kGwI7ZKZses7Bw88fLbOHTkaNAnsXTAdwiE28Nw0ZBzcPPVl4gvpu9glZYEAZ8i''@;'; + put 'put ''wC/5bA7nYMulq9ajyOn0afvSWOARaNqJIsivUC+CfM1cN1bMFILplxmVEB+Lsc8/ivi4WKU0Qi6XWzORr9u8zS+4SaPBQyAuJhr3UHWffr27K+XaETxE5cyCgG8R4LREP/wyG1/8OF1M476FNmitdR1UhM4DyPfS5VLC/5KB5BRFC74zYdtyY0WQc98NocG0Wi2UC/Nh5XJhmkkj++6n32DG3D9Y''@;'; + put 'put ''FrIohAAnX29Yvx4evfsWbd4WUt5TWQQBQUAfCLDf5bLV6zGWao5nHs/SR6ekFzVGoP8IB5p0oGZIeaNCgA8DYuEURZOsOLjDWBHk3HdDEEzu6OgH70Cvbp2VMjlyEvmfZs7Fh1/+yEOURTEE2B+zXavmeOjOG1EnMQEOh0OxEcpwBAHjIWC327F73wG8Om4i9h08rJTblfGk4bseW60erURkQjIR''@;'; + put 'put ''G2KXKhBMTlFU5OAURXZkZxorgpwlaxiCeecNV+KS8wYpZW5kH6BV6zdr6TF8d5lJS3pCgLXv3Tq0xX0UWc4uHkVFRXrqnvRFEAgpBJhcss/7axMmaVXUuPa4LGogEJdIAT63FSE8kogNDUkFgskJ1rPTPZhGBLPIYawIcp5VhiGYHDRx980jlCKYbEZNPXQEj744VsvDpsZlLqMojQDnx+zZtYPm''@;'; + put 'put ''k8mR5UIySyMk3wUB/yPA5DItPUMzi6/fskMpf37/o6f/MzRs7UL/a12wUAJMFcglI24NMyN1u5uq+ITrXwBl9NAwBJMf0KMfvEs5MyMn+H361XcoZdHBMsQjm1RBgEkml5K8+6arEU11y50SsaqKaGUcBkCAyeVBSkP01kdfYuO2nUIuDSCzqnax09lF6DZEvQCfjYs8WPyTMfMuGYZgNk5Jxmuj''@;'; + put 'put ''HwI/qFVKVQSTmdJkTMIfy1ZX9XqS/Q2GAJvLu3dsh/tuuw5cVlJ8Mg0mQOmuIRHgaPFde/fjzQ+/0OqMi1nckGI8bafPvqoQzTqZKIJcHQ0mR5D/SSEam5fYTjt+Pe5gGIIZEx2ppSriYAkXpSBQZeHcnt9Mm4nPv/9FlSHJOCpAgOV9Vo/OuIVyZNarkygkswKs5CdBoCYIsAsSay5Xk5/7BMrW''@;'; + put 'put ''cYDckZRSTtQEHMWOtdrcOI8q+NRSKMCHRcRVfGZOtFAEufFSFHH/DUMw+Wbx8pP/Roc2LZV6KHOqomWr1uHFtz5kecgSAgiwJrND6xa49ZpL0bxJI20+y4MvBAQvQwwYAvwix0GUs+Yvwmff/aylIuJniCxqIlCrrhtDbimEPYpkrIgDJk9Xx8kI8hwDRpDzTDMMweTO3k+mxaED+ipV45lvevxm''@;'; + put 'put ''/ZgE+rCIQ2bhh1+TBvVx/eXnU/qtTppPplsiWkNG/jJQ/yFgs9lQSCnBfp49H19NmYGCQkkP5j+09dFyk44unH2li9ITqWMe5/yXmUc9+GWcnZ4Pxnw5MhTBvHz4YNx+/RVKRZLz5ZlfUIhnKNBn594D+rhapRcBQyAhPg6XDhuA88/tjzB6MEqEecCglxMpiAD7W3Iwz+SfZuDP5WukQo+CMi5r''@;'; + put 'put ''SN2HOdCpH+B2qkMwuQb57vUuzP3CmBHkLCdDEcwzOrfHcw/frZSJXBMCabPe+fhLzFm4tKxrR7YpjkBkRDj5ZXbBiIuHoX5SXTGZKy5vGZ7vEfCaxNnf8vMffsGOPfuV8tX3PWLqtMi6vcE3FyKlOVnH3R5VLORaichVczxYNduYEeQ8wwxFMBsk18WYZx/SHLdV8lnjij5sznnv8+/UuepDcSRU''@;'; + put 'put ''PiIyGrBHeHAsrWpVF7jqT7MmDXHVhUPQm0zmvEgqo1CcRDLmqiLAgTw5J3K1e+jPcxbgWFZ2VZtATIIbucdNcLuNaYqs8oAVOiAixo3htxciKt5MJnJ1CCZrMOd+YSItpjEDfHiKGYpghtvDMPY/jyIlqZ5SD1/2x9uwZTue/d94KqEqlSWMeu8LI2LZY0gREhsAcz+zIje7aiSTx82J2Af17YlL''@;'; + put 'put ''hg2kKPPaWmlUlV6mjCpb6bf+EGCtJf9t3LpTM4nzPdRR5KxyR9v3caLbQDc2Lzdh7TwrigqFZFYZxCAeUL+FCwOvddJcUIdccoCP00n+l+/acbyKyoogiuIfpzYUweTeP/fQXVQVpaNSNck50CfzeBae+L+3cORoxj+EJBv0j4DZ7EG9JnSju8EJm82CPRtclL+MyntV42FlpYdmk4b1cRn5HPfu''@;'; + put 'put ''1lHT2EvOTP3PAelhYBDg+yVrLdMzMjF97h+YMXchjmefqNbJG7Zxos9lbkREe5B/woM5E8OQfpie7h4hmdUCNAgHdepPCdbPVSvB+t8lIsOoRGTVFRVBEEOZpzQcwbzl6otx9cXnKRfo4yLfkVfHf4xlqzeUKSjZqG8EwiLc6HVBEVp1N8Pp4DytFmxe5sGK6bZqm93YN5P9ji85byBaNWtC7biV''@;'; + put 'put ''0tzrW6LSOz0iEBZGD1yqgrVk5VpM+XUe+Vruo2uienmR4+q4cc7VDsTVI1MeGY6sZJJcORvY8IcVzmq8GOoRL9X7xNadQdc50LAdjdSljgaTS0Tu2+TGnM+MG+DDc89wBLP/mT3w+D23KpWqiAXBpp5vplLCdXJQl8VgCJDvZWKyB+fe5IA9kipJ0MsCmzjcHnJ9WACsmmOj79XTiPANNCE+FoP7''@;'; + put 'put ''9cYwStHFQUAcaa5SsQGDSVu6GwQEOPUQL9t27sGUmfOwYu3GGkWIs580V35JbmEq9tuj3IlmqxkZB9zk9xZWLfeWIMAS8qeMiPJg6KgCxNZSy/+SK/gYPcCHJ6fhCGbTRil47ZkHNUKmkm8a+2FyBOTzb7wn1SYMdtu02jxo09uFnsM9J7WXxQNgTulykVznmLDxz5qV+mKCmlS3Ns4lojmQfDTZ''@;'; + put 'put ''P1OIpsEminS3yghwACS/fO/Zn4qZvy/C74uWIyuneuZw78nZV6/XRQ607EYXKOdN9Cbm1r56MO/LMKTuNFPJweq9FHrPI2v/I5DczIVB16vlf8mo2UiDOecLM/ZuMG6AD4/DcAQzItyOt//7OOrWTlRKi8MEIi09A0++/DbSM4+zbGQxCAL2SA/6XlGExm1NpxJM7j+5z7C5bdVvZDJfXPObhZnm''@;'; + put 'put ''SXK9OhQI1EsjmnwdsOlc8mcaZLJINyuFAGss+aV7/8HD+G3hEsz7cznSjx2v8cs32RfQdYgLHfuQTZzs4n+Ry5O94sjdNfM8WPc75aQVM3mlZBXMnTqdTf6XQ9Tyv2TFRFGRGz9PsCM73RJMeGt8bsMRTB7x8w/fhTO6qBXow+MSP0xGwWiLh1KckJnmZgeiEujxRX5AJRdNB8Ik00Ekc45vSCa3''@;'; + put 'put ''z0SzLtUyH3DWGejfuzsaplARXlqYaKqk2dcGJf+FBAL8ks3EkufvvtRDRCqX4ffFK7QXbp/MaWq30wAnugwgbmly/YNcMsgWmxkHd3ow/ysbCvKMG1wRChOG58TgG4rQoDXdcxXKf8n1xzMPE8EcH05KNGNr0Q1JMG+68kJcc+n5ygX6sDno22mz8Ol300Lh/qDEGE0UPZ7cnMw0lCbDxC+bp/JL''@;'; + put 'put ''bYx/k0yQZsSKdQss1fbJLAu0WnGx6EWZFdg/uVWzRoiKitKStYufZlloyTa9IcCaSiaW/HK0ffc+zP1jKRZTEM+xrBzfdZXISEfSdnUeaILFSuSynGxwJirPl5flxsyJrD3iK9fYD3jfAai/liJjPTjvtgIl819uX+XBgm+Mm2DdO1sMSTDP6tEZT99/h1KpilggfKNdv3k7Rr8m+TC9E1Tva4vV''@;'; + put 'put ''jRZdPTjrUhdcZNYob/GSTDf7ZM4in8wlpKkpf/fymqlwu53yxLZp3gRnk0azW8e2mp8mv+Vzwnapc14hdPJjgBFgbaXXvzIrOwfrNm/TzOBrN22tUfBOWcMwUxBex/5OdDqH7rEWijin666M98DiQ+lCdVMqzTmfW5G2x1LtDBBl9UO2+RaBhq1d6H+ti/J1qFMekhHiAJ9FP5mwaVHNXap8i3jV''@;'; + put 'put ''WzMkwUyhSNoxox9COOVC84nppOq4+e2IbHJgf+Llt6ie7lG/nUMa9h0C1jA3OvR1o/sQD/lsnT5diuZfU2imFEaUDmU+JXX2Q44zflFJIK1m907t0Lt7J7Rp0RRxsTHatSJk03eyl5aqjgAH7Hi1lexfuWTlOixasQZ7ySRe3XRDFfXCaiWfy3OL0LY36SLNREQq8VLHOQgXfGulXLZmuA1uoqwI''@;'; + put 'put ''G6P/1p2KWnTq71Gq/jgrzPkZMeNDG9L2Gtv/kueXIQmm1WrB66MfRrPGDdULbqDZNfaDzzB/8UqjX/8h0X+b3Y0ug1zodDb5P1aCYDIoZrNJ863ZtdaDNXMpJUqWpt/0C16sJapfrzbl0+ygEc4WTRsimkzootn0C9zSaBkIMKnkechz7iglR2dt5eIVa7GeKu+cyM0v4wjfbLJTbtqe5zvRvAsH''@;'; + put 'put ''i/8zoKe8s7Af5uKpZmxfaSGrhP+uzfLOL9tPjwAXthhyi4OKW7D/ZQUa6dM3pas9+NnALho/jbejUAEfYEMSTJ4RD4y6HkP691EvHybdiGfO+wPjJn2tq4kvnSkbAVs4lYccWoR2Z5oqTTC5JQ7S8dDfIQooWDXbivRU/7+t2mxWNEiuh64d2qAHJXBv3rgBYmNiNPM5+2uKz2bZMpatVUOAzd9e''@;'; + put 'put ''v0p2zcik6O+tO/dqfpVMKtMzjlFMRrlG6qqdrJy942q7Nc1lk/acl7by5JKbY4K55Gczti0XglkOvEHfXKuuG0NHFiKM8g6TB0T5Lg9B72nVOqAlWN9CFaU+sVftQJ3ubViCef7gs3HvyGuVC/ThmzPnfHvqlXeQm+e/t3udzkfDdUur4HO+C616VF6D6R0kiVozhxyn6qBrfrNhz3qOWg2MxoSt''@;'; + put 'put ''AClJ9dClfSt069AWzZs0REKteC34iIMtmBio5n7ixV3WvkeACaVXU8llTdMzj2Hz9t1YRbl9N2zdoZFKF82pQCz1W7rQdZATtVPoWiqZ57KSJxeCWUmggrhb6zOc6H0xMUt6Mfbvq0pgB8n+lytm0vNgbs3yJge21+WfzbAEs2XTRnj16Qe0B6JqD0IHPeD/QwnXN27dWb7k5BddIFBMMJ1EMKum''@;'; + put 'put ''wfR2numkyWJGYQGwdRkF//xhJdNIYEimtw9c+7x2YjzatWxGwUHtNJ/NOom1wGX5mGiK36YXKVl7EeAXYS+h5G3ZFKiTejgNm7bv0kzg23fto/rgOQF9SbGRP3TrXi6yJrgRGUfc0lm90oFCML1S1u/6bCrx2awjydhFL8L67WaVe8YpimZNsiJ1u/8tWlXuXDUOMCzB5DrNY59/hKqb1FHOtGe1''@;'; + put 'put ''2vDlDz/jq59+rYZI5ZBAIlBTguntK/vesH7n8A56e51HEaz7gnODYeIQExWJFvQC16ltK7Rv3RwN69fTTOn8G5NNNqWr9lLnlYOsy0agNKHMy8ujwhCZVAt8PzZs2YEtO3cj9VAanDQ3grEkJLvQ+RwXGrbhSHEK/CiVj7YqfRKCWRW0Ar+vVh7y9kLEUt5hE7laqEIwNf/LEx5MfYdysOYG5/7v''@;'; + put 'put ''a2kalmAyEE/eexv6UUqWggJS/yi0sGZg3aZtkq7IADL1FcHkoWomcyKaudkeqvpjIR8wKxwFgdVmloacTenJ9BLHkegdiGy2ataYqmglIDIyUttVzOmlEVPju9fkzfciXphQHqUKYzuJUG7ZsZt8KvfgwKEjPk8pVFX0wuweNOvGWksX4hIo3oMTbteQcQjBrKoUArt/wzYunHONi4qkqaW9ZP/L''@;'; + put 'put ''A9s9mPUR5b/kh4ECi6EJ5mXDB2HU9Vcq54fJ84r9L5+kdEX7Ug8rMM3UHYIvCSajVGwyJ20mqTMP7TRpSdmP7NbP2yxbDlij2apZE3Ro0wKNqYIQm9O9hNNrTpe8m8aZ86ydZELJkd78mWV3Ijf3Lw0lm7u37dqDg0eOBp1QlkQ1qYkL7fu6kNKyWGvJVbRqyC215oVglkRZf597nU9pp84iWTvV''@;'; + put 'put ''Ipia/+Vsyiwyx/gJ1r2zxtAEsy1pVV5+6n7NXKeayc5MmoP3P/8Ov8xZ4JWVrHWIgK8JpneI/AKrmUxygZ2rKG/mUgtyj+uvdF0x4UzSgoT4emzSsD7qJiYgOjpKIy18XXpJp2rXqFdWRlp7yaRXQ8l9ZwtQ5vEsHEpLx+59qUQm92prNoGzP7jelthE8rXs7USLTh6Ex3Bi9JprLUuOUQhmSTT0''@;'; + put 'put ''9Zn9bIfdVoRaSR6loscZZfa//HWiBYd2GD/BunfWGJpgRoTb8eZ/HlXSD5NNU0tXrcOLb33olZWsdYiARjAvoCjy7lWPIq/McLR0RsQrjx/xYAuZzXett1A6JP0RTe9YwsJsqFc7USOazRo1IOLZgPJw1kV8XAyiTprVhXR60fLvmkkkE0rWTPJnxj0/Px9czCGNUgVxvW/2odx74KBW2CEnN0/T''@;'; + put 'put ''Xvq3V9VvPTLGg+bdnGjZ3YXYRHoD46I8NbWHl9EdIZhlgKKTTay1HnorJ74k4ZO62hcaaz0MjZUJuTluTHvHjgIF8l96MTU0weRBPH7PSKrBfIZyfpg8No7CfOKlN3H4KOWxkUWXCIRFUB7MYWSy6VW9KPLKDIrN5mYreRyRf9nh3cCmJfSWu81KmsHKHB3cfZjgcNBQvTqJaNygvkY8G6UkIalO''@;'; + put 'put ''bdSKj0VEePhfSbg5eIjNs/wn2s7KyY3x9f55Tdz8nbXGOSdywWUYj6RnYP/BIxqh5PVh0lTydn+Qs8r1ump7Rca40aQjlWQlX8uEJL4aSGPpI3N4WT0RglkWKvrYxgE+nSkFVQt6ybCRxk/TXuujazXqBftf7t/swexP1ch/6QXD8ATz/EH9cO+t1ynph2kircP4iZMxa8Fir7xkrTMEbOFUJnIw''@;'; + put 'put ''+4L5R4NZcrjEGyg1jJmqVwEHd5JGc4mV/DSZePJD1zgLEyA2rdemvJv1k+qgQf0kNKDyr/Xr1aFcnHGIJfM6+3R6A0zKIp6hREC9BJLXjIlXM8kYFBYWIr+gEMezsin35HHNzM3BN4fSjpJWMo1M39na78aZHX/3NCrOgyYdqBJPNzcS6nHcAxMK//vdCcH8WwZ6/dSwjZPK8zqRkMzJ8DmrhV57''@;'; + put 'put ''Wrl+sf/lkp+pfPBCNfJfekdteILJ1Ug4HybfeFV76FjItPXnslV4ZdxEr7xkrTMEmGB2G8z1yCtXi9wX3WeiyfWSnQ4mmiZsW2GmtfGrjjBxioqMQEJ8HFUcqktazkQkE+nkqHXeVkw8I2Cn/Jxcz9q7lNR68j2Av3sXvd4TmCx5Fx43L7z2/nl/Y3LtJZEnKJL7GBHGjGNZWgAOm7bTqPRiJn1n''@;'; + put 'put ''a0dBIU0IBRau0tK0swuNO7gQz6bwABFLL3RCML1I6HsdGU3azMFFaNHVQ1aQk764+u5y2b3jKU5a+V8+CEP6fv0EdJbd2aptNTzBDKPyd2889ygaNUjWzEJVG76+9+aH0DHSTIiZXL9yCgbB9KLBHMVCpvMiCnJI28vBQFbs32pSooatd4zetY3SJcWQZjMuNgbx9JdIms7aCbU04plApva4mGiq''@;'; + put 'put ''sR6paUbt9jCNhPJLJ5uNy3r59JJQ75rPw2S0NCEt/d3bn5IEkbfxd++2kp+95LHkcUwavflEC6nqDRPD/PwCMIHMzsklbWSOdt0zkeTgG/7LIr/JE+QjydrK8vrkPYcR11abB3WbuNG8E0eFU6L0WNLMk1YqGJHCQjCNNYMatXORNpMCf+oZU5vJyoKsdPK/HGeHs0i//vXVmRWGJ5g86H/dfDUu''@;'; + put 'put ''HDJASTM5R5OPm/gVZs0XM3l1Jri/jwkmwfSOzUs02Ucz85AHezZasWeDGdnpat2svOMta82kjgOMIux2RETYERURoRFSJp2sFY0mk3tUZLj2OZyCA8PD7LDbbRoRDSNtKNdp54pGxSZoYu6kU7CSO4LJVBwcU/qcHipB6C196KJqIpxgnMkqE8aiIqdGGjkC2+Eo0ohhHkVq5xGJ5PRjubn5Gplk''@;'; + put 'put ''H8lcCrrJzy/U9udjVSSPpbHzfuexxtYGGrV2olEHN+o0AKw2E1xkBueqA8GyegrB9ErIOOsICgDrOqgIzbu66aXSWL6ZbB7fstSDP35QJz2Rd+YoQTD79eqGJyjpOpuSVFtYA7J8zQYtmjyUHj5GkaMeCKYXK6ZFHAxkMnm0ZO0HdwB7N9hweI856AnbvX3U41ozS5/UQHJiea8Gkgkn/8YE3ruw''@;'; + put 'put ''rxd/dxKpZELJf05nMbnk65MDZ+Q69aJV9poDNeo2pcCd9i4kkdYyKo4NhEQKivzvX1l2j07dKgTzVDyM9I3dKrqR2TwhyQJnoTHqlNvsFvw+2YSda9RJT+SdM0oQTA4WGEvpitiEVtLk5R2k0des6eCk6weoFJss+kJATwTTi4zGh0h5yWTJSdqgY4c9ZDrnKEULfSYzUnCq+Xm7J+sQRMBO2RZq''@;'; + put 'put ''N3ShUVsXkpt6EFObEruzHzGR82BqK8sShRDMslAxzrbIWNJmDihCs+7km0kujXqONOeXVUcBmcfH23HiuFr+lzxjlCCYPJD/PnoPunZsSyYpNRzdeUzehYN9Pv7yB0yZOc+7SdY6QUCPBLMkNEw2zTYKHqEPBfkeZBwksrnFgoM7zMhKM14EesmxyWd9I2CPcCMxxU31wd1IIlIZVxfkisAmcDJ/''@;'; + put 'put ''kwY4WCbw06EmBPN0CBnjd9aQdzuXk7LrV5tppXtz6g43Zn4cbgxQq9hLZQjm5cMH4XZFy0aymW795u0YPWYCaZ9E/VTFOe7X3fVOMEsOnt+WOSiI1/m5bvLXBFIp+vwwpTo6dpi0SYo5mJccu3wODAIRFNlbhzSV9VuRprIxaSrrkC8rkUoPkUq3jkllSXSEYJZEw9ifo0ib2UWLNGfXFv/mT60O''@;'; + put 'put ''Uux/uWw6sG7+31kxqtOOXo9RhmC2aNJQS1fEZExFHyiONH1uzHhs3blXr3MpJPtlJIJZUkAUu0IBLcVks7DAQ9pMN47s4zJlZqQftCA/m/ZmJiqLIFABAmZ6aEcnUIBOIw9SWri0dXQtrh5E2nHKbmAUUllyiEIwS6KhxuemlJ2g60AH4pOscOnFN5Nur8xVZnB6ogPqmcd55ihDMNkhf8zoh9GM''@;'; + put 'put ''8mJyChDVFk638t3Ps/HJt1NVG5qhx2NUglkSdKaRHBzE6TI4gvdElgfHDgKHiXCm7aUUGkctcOQL2SyJWSh/DrNT4vPk4rRCyRSsUyuJ0grF0MsKvdyzzy/8WGUnELgLwQwEyoE/Byfu7zLIQXkzi9+d/VkNqjKj49rjmQfd+PldO1km1cz4oQzBZIHeft1luPz8IUqmK+LIVq7Q8diLY7VUJ5WZ''@;'; + put 'put ''wLKP/xFQgWCWREmjkScDhEDaqaJCIpzHgczDZqRRNPpRIp45aRby5xTCWRI3lT9brGTqTiBC2chNuSpJS9mAtJbxQFg4WYuYT5LpW2+BOjWRhxDMmqCn/2ObdXGSNpOS+NelF6IgajPZPL5uoQfLflYvPZF3FihFMLt2aIP/PPIvJTWYLDBO5THm3Un4c/kar/xkHWQEVCOYpeFkGmkizSb7bvIM''@;'; + put 'put ''1Agnmc+z0kxITyXfTfrLPEI+nTkSnV4aO6N+t1DS8xgikAn1XahHhDKhvgfxtT2wRxancOJyjW6Daykrko0QzIrQUeO36HjOm+lAsy5cICE4vpmswZz1iQWp29RLT+SdJUoRTK5vPPb5R5BUt46SwTBSOtI7bfWzVp1glkZa01sS4SxOQu6hlzkPCvJIy5lJVaeOmJBxqDhgiJO8F+ZSbkOPaDpL''@;'; + put 'put ''Y6i372GUQiiW/CgTUzxIbOBCYhJpKBPdlLDeqr1c/OVLqdewbx8DKgTTx4DqtDn2f+TE7F0GOlErwNpMdkfKyXRReqJwSlOkpnmcxa4UweQB3XfrtRg+6GwlzeQ8vmzKifn0K+9g/8HD/FWWICMQagSzNNwafaT7o4UTktMbOXmta1rO/FwP+XJyKiQyrx+yaBrP7Ayg8ASlDJFECKVhDNh3WxgR''@;'; + put 'put ''R4qsja9DZDKZfCmJVMbVoWTnsVQJyU6CpHxWXkLJeYRChFOegr8QzFPgUP5LTLwbXSmdUdPOpM2kGR8I30xOrr51uRt/fG9XGl/lCGbvbp3wzAN3KJkPk2eixWLFVz/+gq9++lXpiWmUwYU6wSxLTsVaTpqrFKruJZ1OqtLCpDM/x4wcIprHj5roz4wT6SbkZpnIp7PYn6+s9mRb1RFgGYRFeqim''@;'; + put 'put ''txtxiUQoiUzWqgf67CKCaUJ4JLk9aBk3in0oA/FQrfoognOEEMzg4B7Ms7I2s0U3NzqfQ5HmdSnS3OHfKkC2MDN++9xCZX3VjB73ylI5ghkbE423qKpPAlX3UTFnJKdh2rX3AJ5+9R0J9vHO4iCuhWBWDnyNdNJ/mj/nyfRIXDvdUeBCYR75cJ4gjecxC9VPNyE7kzSeR4E88vUszJP8nBUhzJmk''@;'; + put 'put ''7EQkwyn/ZEwtN9X2Jo0k/XFQTjRpZsKjiWhGUI112pG1kRyQw2QyVLWTFWHp/U0IpheJ0FvzNcR5M5uTNpMvEn+8eJnJSpCbQ9Hj4+z00q2ueZxnj3IEkwf14KgbcG7/s1BQUMBflVs42Oe18ROxaOVa5cZmtAEJwayZxDTiSf5IXGnIfJJ4sjahiKI7CylSvZh8msjcToTzGK/NRDxNyMuh30gj''@;'; + put 'put ''6ijg1Eqc+7Zm/dDz0VarmyK2vRpJUO1uIo/0IGQzd2QcmbxjSCNJfpQ2ikq1EJDs9soPRibwHv5TGBt/yE0Ipj9QNU6bfP9p1d2FzuSbGZtIwYs+1mayeXz7ag8WfK1u9LhX2koSzL49u+LJ+25HYWGhd5xKrS2U83PZ6vV48a0PtUStSg3OYIMRgukfgWnEk8gSE08T/ceaT20b3fxdFFjkKKIA''@;'; + put 'put ''o0JaEwktIC1nYS4R0BO8JvJJnwv5cz7V+c2jYCN6z3QXAUVURZbJqJuy6gR7sVg84GhtK7lg2aiIhz2SNY2kcYwCIqI8RBpZKwnKL0mfo9ywhpOPZDiRSDKtWdnXlTWSRBw5kTlxSPogRNJXMhWC6Sskjd1OLAW6dSVtZpOOxb6ZnDnBFwtfw3O/NGP3enWjx704KUkwVTeTc07M/IJCPENm8h17''@;'; + put 'put ''9ntlKesgICAEMwig0ynZNMz/kccIrTk2hQNUtI9ah1hz52QtHqXUcRK5dDrY1E5rqsHgJKLppHdPRyFpP3k7fS+i7S6NgNJvRRTo4mLNKFei0WgtkTn6TqTW42Zyx6cgOwKd30JKiGLjs4c0sNDIn4nyRtro2WGmtSXMQ8EznOaJCCSRSSsF2dh4bad9iFjy8RZaM2nkVFCsgSxun87ABJLZsLbm''@;'; + put 'put ''UwqJ1ITr5/+EYPoZYEM1z76ZLnQf4iKXE7NmWalJ90PJPM44KUkweWD333Ydhg7oq6yZnCv7TJ05Dx98+QMPV5YgISAEM0jAV/K0XiLKuzN385I3vtFrX0qQUt6n3OUkuWPS99dCTZj5BNzUaRbtMI0rMkktboSTlGufuNHif6dpRX4OBAJCMAOBsrHOEVvbhZ7nFaFRe28J1OJruKqj0Mzjq8g8''@;'; + put 'put ''/o365nHGRlmC2bNLB4x+6C5lo8lZe3I0IxNP/N9bSM+kUiuyBAUBJpjdB7vQvi9pwchvUBZBQBAwNgJCMI0tP3/1ni0VrXq5tLyZ0XGWat3vrSfN43tCwDzOclCWYEaE2/EmRZOrmnSdhWcmm9ykb6bgxxlz+assQUCA/eJ60Jtt216mat1wgtBlOaUgIAhUgIAQzArAkZ8oUwNpM4cVoXEHCgA6''@;'; + put 'put ''WdWqMrBo5vFsF6a+E07+4ezbo/6iLMFk0Y26/nJcNvxcZZOuF6cs2o+nKPF6Xr6aEfN6vwQ5MKPXBS6KOhQNpt5lJf0TBCqDgBDMyqAU2vuwNrPNmS50HcB5ZSvnm8m1x7cspeTqP6idXL3kzFCaYHZo3QIvPn4v+cazc3z1fCZKgqXLz2Qqf/ujLzH3z2W67J7qndII5vlOtOohGkzVZS3jCw0E''@;'; + put 'put ''hGCGhpx9Mcr4ui6yYDnRuK2ZggApo8NJ/+qy2uZ5NfsTEw5spai+EFmUJphWSuczZvRDaN6kEYqKKIRUwYVTFq3btA3PjZlAUbPiAxhoEQvBDDTicj5BwL8ICMH0L76qte7VZnYZ6KK0YmVrM7n2+PEMN34ZF07p0ioRFagISEoTTJbR1RcNxS0jLlXWTM5jdNFb0yvvfITlazfyV1kCiIAQzACC''@;'; + put 'put ''LacSBAKAgBDMAICs4Clq1SvWZjZq809tJpvH1/7uxvIZoWMeZxErTzAb1k/StJhhlHROVTM5+2IuX7MBL739UXHePAUvXr0OSQimXiUj/RIEqoeAEMzq4SZHEaEyedD2TCdVAXIjMvqkNvOkwvLXD2xI26927fHSc0B5gskDfo7SFfXs2lHZyj48Rgdlin7xzQ+wbvM2/ipLgBAQghkgoOU0gkCA''@;'; + put 'put ''EBCCGSCgFT5NfD0neg53oSFpMznH7eE9Tkx/P7y4UIPC4y49tJAgmOec2QOP3XOrsknXWahW0tDOX7Qcr737SWkZy3c/IhBGNaB7Dneg9Rll+9748dTStCAgCPgBASGYfgA1BJs0m0mb2ceJHkM8WDXHhPXzQye4xyvukCCYMVGRGEs5MeskJsClaCAMJ14vKHRQsM94bNmxxytfWfsZAZud69W6''@;'; + put 'put ''0LGfpCnyM9TSvCAQEASYYC6aYsbO1RatbGhATionURaBhCQXCnJNyMsJjdyXJQUZEgSTBzzqOsqJeb66OTF5jBYqH7lwyQr8b4JoMRmPQCxcW7rdWW70GEa1r6WSTyAgl3MIAn5FgCN+F3xnwd71lEj7ZC16v55QGhcEFEUgZAhm6+aN8fKT95MTLiUVUDQnJo8tv6AQz78+QbSYAbpgLVYPmnZy''@;'; + put 'put ''oe/lLridiuZaDRCWchpBIOgIcECGy4PfvrLh4A5LyPnMBR1/6YBSCIQMweT7xouP34fO7VsrW5+cZ6ZoMQN7fXLUYFITFwbd4ITZSucWjhlYAcjZBAFfImA2wZHrwZxPwpB+mJ4aHn5yyCIICALVQSBkCCaDc+7ZvfHgHTcpHewjWszqXAbVP4a14XGJHgy6yYHYRNKOk/ZDFkFAEDAmAmwezzxC''@;'; + put 'put ''GsxJYcgNQZ85Y0pNeq1XBEKKYMZER2Hs848oHezDE421mH8sXan5YqrqDqCnC8oe6cZZlzrRtIMJTodUU9KTbKQvgkBVELDZLdi+0oMlv1jhyAu9oIyqYCX7CgKnQyCkCCaDMfLqi3HVxecpXdmHx+mg0pj/pbyY6zdv56+y+BEBi82DNj1d6HWhBPr4EWZpWhDwOwKWMDMWUwT59lUU4FMk5nG/''@;'; + put 'put ''Ay4nUBqBkCOYjRsk47VnHoLNZlU22IdnLNcoX0GlIzn5usvtVnoSB3twFFuFhBQXhtzogC2CtB5UulMWQUAQMBgC5H9ZmOsm/0s7MsT/0mDCk+7qEYGQI5gshGfuH4Uze3RRurIPj5NrlL82YSKWrFrPX2XxIwL2SA/6XuZA4/ZmMZP7EWdpWhDwFwJWMo/vWushDaYVhfliHvcXztJu6CAQkgTz''@;'; + put 'put ''jC7tMfrBu1BEZmSVF9Zibtq2E6PHTCAy7VB5qEEfm8XiQeOObvS7oogCfYLeHemAICAIVBUBskTM/9qK/VstlHJMzONVhU/2FwRKIxCSBNNGQTD/e+YBtGjaWHmSSYk/MX7SZMxesKS07OW7jxGIjHVj4DUO1GlsJv8tcUvwMbzSnCDgNwSsYRak7nBj4WQb8nJFe+k3oKXhkEIgJAkmS/j8Qf1w''@;'; + put 'put ''763XKR/sYzabsS/1MJ58+S3knMgNqckd6MFarG406+JGn0vccLuEYAYafzmfIFAtBEhZyfrKBd9YsXczaS+lek+1YJSDBIHSCIQswYyNicYbzz2sfMoiFrjVasNn303FN9NmlZa/fPcxAhFRbpx9VRFSWokvpo+hleYEAb8gwKmJdorvpV+wlUZDG4GQJZgs9puuvBDXXHq+8lpMTr6ecSwLz7z6''@;'; + put 'put ''Dg4eORraM97PozebqbJPMzcGjHDCaqdCIBJR7mfEpXlBoPoImCixegFV7vntUxsyDpops4j4XlYfTTlSEDgVgZAmmMn1auP10Q8jMiICbsVT+VhtNsya9yfenvjVqTNAvvkcAZvdg479i9B1oAlFhRLx43OApUFBwBcIEJdkF6Jl083YulzyXvoCUmlDECiJQEgTTAbivpHXYPjg/iGhxSygSPKX''@;'; + put 'put ''3voQ6zZvKzkH5LMfEIiIJlP5lU40aC0k0w/wSpOCQI0RsIVbsHWZmwimDQ5JS1RjPKUBQaA0AiFPMFs0aYhXnn4AFnqTVb2sIqctWrtxK14Y+75W6af0ZJDvvkNAS76e7EL/EUVUq5yiyp0S9OM7dKUlQaBmCHDOy8O73FhAaYlysswU5COm8ZohKkcLAv9EIOQJJkPyxL234uzePVBQUPBPhBTb''@;'; + put 'put ''YiIizWmLZs1frNjI9Dcck8WNBi0oAfvlRbBHmig6VSr86E9K0qNQQ8BqM+NYugfzJ1tx7JCFFAuhhoCMVxAIDAJCMAnnTm1b4oVH79E0mKprMTng58jRDDxNAT9HM44FZpaF8FksVg+atHfiTEpdZLFR0I+QzBCeDTL0YCNgIXJ54hhpLr+x4eh+M/nei+Yy2DKR86uLgBBMki2Trucfugs9unRQ''@;'; + put 'put ''vnwkT2ULJZr/Zc4CvPfZt+rObB2NzGLzoHlnJ3qeLyRTR2KRroQYAkwuc7Pc+PMHGw7uJJcoIZchNgNkuIFGQAjmScTP6EzlI4lkql4+kofLhJoDfl586wOs37w90HMuJM/HJLMFkcwzLnBTXlKIuTwkZ4EMOlgIcKWe7AyXRi4P7xFyGSw5yHlDCwEhmCflzUE+/33sHnRu3yY0tJgn65Q///q7''@;'; + put 'put ''yC8oDK1ZH6TRcqWf5p3d6HkB5cgkbYpU+wmSIOS0IYUAJ1LPPOzBoh8sSCOzuOS6DCnxy2CDiIAQzBLg9+7WEc88cCccDkeJrep+tFismPTNFPww/Td1B6mzkZktHrTs7kS3QW6Ex5ikZrnO5CPdUQsBTkV0aJcHi6dYcDxNAnrUkq6MRu8ICMEsISGr1YIXH7sXHdq0DAmSyabyrJwTGP2/8dhz''@;'; + put 'put ''4GAJJOSjPxFgc3mDVk50H+ZBfG3A6ZAURv7EW9oOQQTMXCLXjN0bgGU/W8n3koN5JKAnBGeCDDmICAjBLAV+nzO64Mn7bg8JgslDt5JD4OIVa/DK+ElwuaTqTKnp4LevXFIyMcWF7kPdSGkOFHGeTOGZfsNbGg4dBMxU/pErs21facWKmRYUFRDblEUQEAQCjoAQzFKQh5oWk4cvuTFLTYIAfo2O''@;'; + put 'put ''d1NZSSdadKfgH4skZA8g9HIqBRGwhJlReAJY+7sZO1bRZ6nQo6CUZUhGQUAIZhmSCqWIch4+1+NNS8/E6DHjcfDw0TIQkU3+RMAW7kbTjm50PseF2AQqLVlEqkxJ/uxPyKVt1RAwm8gaY0LaXmD1b1SlZze/rIlJXDUxy3iMhYAQzDLkxRHlLzz6L3Tp0DYkIsoZAqvNhoVLVmDMu5/CReYlWQKL''@;'; + put 'put ''AJvMayW50GWACw3aerRUUm6nsMzASkHOZkQEOL+lk17Ktq0wY9NCK7KPc+FHIZdGlKX0WS0EhGCWI89uHdviOcqLGUp+iZqpfCKVkVwgZSTLmRZ+32yPcKNZFxfa9/EgjgKAioqIZLqFaPodeDmB4RAwkdbSQlrLzEMerJ1nwf6tRDQd4m9pOEFKh5VFQAhmOaLlCOvRD9yBXt07h0SNcoaBTeVc''@;'; + put 'put ''PnL0a+ORejitHGRks78RMJkouryeG+37utCknRu2CDL3idnc37BL+0ZBgJSTNtJaFuR5yM8S2LTIhpxjrLEUraVRRCj9DA0EhGBWIOd2rZrhxcfv025bqtco98LApvIlWlT5RDidElXuxSUYa05nVL+5Cx36uFGvKZnNSWOjEc1gdEbOKQjoAAE2h7sp2wWXetz4hw1H9oB8LUVrqQPRSBcEgX8g''@;'; + put 'put ''IATzH5CcuuGRu27GzJmaHAAAQABJREFUwL69QkaLyaM3U5Wfj778HlNnzT8VDPkWFATCIjxo0tGFNj1dqF3fRJVI+KEqfrJBEYacNCgImMkUbqYXrIyDbmxabMXeDRY4CkRjGRRhyEkFgUoiIATzNEA1bpCM/z3zIOxhYVputdPsrsTP7B5wIjcPXEZy++59SozJ6INgDXpUjAdNO7nQsqcbCfWI''@;'; + put 'put ''aBLHFKJpdMlK/ytCgHNaMrnMJo+drStN2LnKgtxsCuGhe5QsgoAgoG8EhGBWQj533nAlLjlvEPLz8yuxtxq7WEiLuXHrTrww9j3k5ReoMSglRuFBRAzQrFNx7syEJB4Umc5ZoymxQEpIWAYBCt4xw2QBso+Sn+VqM3autiCHosPhEWIp80MQMAoCQjArIanaCfF447lHERcbHVJR5Vzl5/tfZlO9''@;'; + put 'put ''8qmVQEl2CSQCHmKTkdFAo/YutOjGpnOP9lB2cmojiToPpCjkXL5CgLgjl3fk96TjR4hYrjFhzzoK4DlOG4RY+gplaUcQCBgCQjArCfWVF5yLW6+9PKS0mGyGKipy4vX3P8PilWsriZTsFmgErHY3GrR0o0VXCgZq5kF4uAlOF1FQ+pNFENA7Ahy8xknSucBAxgFg51rysdxoQT5V5JHIcL1LT/on''@;'; + put 'put ''CJSPgBDM8rE55ZeoyAi8Pvph1E+qS9HVzlN+U/kLpy46cjQDz1LqosNp6SoP1fBjs1jdVN/cg+aURzOltQextdikCJqvYj43vHBVGwBrK6k0KsgMXpDjQepOE3atMVMFHqodXihmcNXELeMJTQSEYFZB7sMG9MF9t14XMtV9vNCwqXzZ6vV4ZdxEOIqKvJtlrVMEOI9mVJwbjdpRUFAHJ5FOyhto''@;'; + put 'put ''59J5HkrxIlpNnYotJLploqAdK/3xS8+xI8C+TRbs3WTG8aNkGncJsQyJSSCDDBkEhGBWQdSsxXzm/jvQqV2rkCOZFosVX02ZTn8zqoCY7BpsBDiXZr1GLjSmWucpLUirSbXOObErk02P+GoGWzwhcX4mlRb6Y2169nEPDpO2cs96M9UNp1RDoq0MiTkggwxNBIRgVkHubC7mEpJP/fv2kEq+zhCx''@;'; + put 'put ''P2aho4hqlX+CZWs2VAE12VUXCJBWMzIKSGnlQsN2LiQ14mh0Cz3zPaRNoie/kE1diEmVTvxFKulOmZvlwtH9ZuzbbMYhSpCel03aSlGkqyJqGYcgUC4CQjDLhabsH8JsVvzr5hEYOqBvSAX8MBqcuoj9MJ8bMwEHjxwtGyDZqnsETGb2z3Sjfis3GrYmv80GoIh0fuh7RLOpe+nptIOkoORE6Fwb''@;'; + put 'put ''nPOz5ma7SUNpxoHt5Fe5g/LqZvH8op1kEQQEgZBBQAhmNUTdKCUJLz52X8ilLWKo2B9z5bpN5I/5MfILCquBnhyiJwTMFjabE9lsSWUpW7hQpwFpOkmzCdJ4aj6brNkUbZOeRKafvnD0N5m+TRSrwyVMsylPZdpe4OAOC47sNp3UVAqp1I/ApCeCQGAREIJZDbytVgsuGz4YI0dcGnJaTIaLSeZP''@;'; + put 'put ''M+fhgy++l4oa1Zg/ej2ENZvRpNms19iDlJaUW5PIZkw8aaVsxVopTn0kpnS9Si8A/SKuaCFSyZV12JG3MNeJYxScc2SviUilGZmpFhTkcT+EVAZAGnIKQUD3CAjBrKaI4mNjMPrBO9GqeRM4HI5qtmLMw9gfk5VaEyZNxqwFS4w5COl1xQiQBjM8Akio70Jy8+JAobh6QEQUVVgh/uBxUfoj1m6K''@;'; + put 'put ''72bFOBr5V5Izm721co3sg13gQm4O56okUrnHqhHLLCKYbon+NrKUpe+CgN8QEIJZTWjNdMPt1a0THvvXLVoL7L8WSguTzByqV/7yOx9pJSVDaeyhOFY2pcfU8mh5Nus1cSGxvhuxtSlQKNKqmdO1uuic3J2vg9C6FNSZDkQoWUNpIg0lX9/OQiKUWR5kHjHj6D6O+jbheJoZhfm0o2gp1ZG7jEQQ''@;'; + put 'put ''8BMCQjBrACwH/Nw78lqc2/+skDSVc9DP/oOH8Z833tOSsdcASjnUYAhY2Jye6CENp5v8NilQiEpVxhHhDI8ivzwbabWIaHIlIRcFfIiWU4fC9WonmVCSDyWXYszPd5LfpAnHDpmQTlrK9FQzsohcFhQU/67DUYR8l2z0DLKH2RAVGYnwsDDY6LM3RJ/f85xUia2ALGx5efnII0G6tAsy5GETAAKE''@;'; + put 'put ''gBDMGgLdILkeBfzcg4Ra8SFV4ccLG/tjrli7Aa+OnyRBP15QQnBtJpN6RCyRzLpEOpPcSEj2IJ4+R9E2O5nVuRQgazfZtM7k0y3BQ4GbJV7NJAXkEJ8kBTOVZSTtZP4JD7IzyHfysBkZRCozD1JKoWNmFGkeP6yllEVPCERGhCO5Xh00bVgfjVOStapyibXiEBsTjXA7kUubjYKuLKf4xTtdLi1n''@;'; + put 'put ''M6eYyzmRi6MZx5B6OA17DxzCngMHkXoojdLPhZaLl55kqnpfhGDWUMKsxbtgcD/ceePV9KbPr/qht1jpxjZ9zgK8+9m3xSbS0INARlwGAnRpIDKWTOl1PKhFZDO+jovM6rQt3kWaTjPCqLoQ+/hpxJMt66zxZLWLmNnLQPM0m5gPklmb85lzDkr6qBENFwFamOdEfq4ZJ46xiZs0lEQos2idTd8d''@;'; + put 'put ''eZKT8jTIBvXnlKQ66NS2FTrSX/PGDVA7IR6RpK3U/ODpOuGyxcXXT7F7Cn/m30ou/J3/OI+z94/3O0GEMy0jE1t27Maq9ZuxadtOHMvKKXmofBYEaoSAEMwawVd8MFf4efLe29CVkrAXFoZm6h6z2YJJ30zBjzPm+gBRaUJVBLiMpT2CUiGRZpPJZkxtIqAUuR5di4hnHJnYIz2w2oGwMCs9FAkF''@;'; + put 'put ''IpyauZ3LqdNDkasPMQcNOT/Pk5yBrdmshmRizqZtjWjQJlehm4Jw3CjIp0TmWUBOOnCctJM5FISTfYzzUrJPJTdyKvng5mTRFwJ1EmuhZ5cO6Nm1I1o0aYha8XGanIuoTK/b7dauA1/0mOcOK0hY8+kiTWdaegY2bNmBhUtXYc2mrRS8KmWBfYFzKLchBNMH0ucLtW2Lpnj+4bvpwWjTbgI+aNZQ''@;'; + put 'put ''TTAGRU6XVulnyap1huq7dFYPCHioXjpgJ4IZGcPkk9ZUTz2GSGcEE0+qQsS/hdE+VkqbZAujaHZW19GiEVEioExENULqjWw/SUY1Qso7/vWBv+hgOcn1NNqnMcdi4sg9I2WTRiR5SNqYyHeuyEF/RBId+R7SSBKJzLTgxHHgRCYlMifTdl6OCQW5bP7mFoRIMgpGWfjlqW3LZhjS/0x07dAGdWsn''@;'; + put 'put ''aqSSM5Twb4FYmGyGkR8nE9mde/bhtz+WYQGRzeNZ2VpfAtEHOYdaCAjB9JE8beSLOOKSYbjusgtCMuCHYWTzy5GjGXiNyklu27XXR8hKM4IA0SUKKgqz0194MdEMjy4OKIqIdmvEMyKKfqO/cCagtI+VYh2sNjcsYTwvKfDISuZBzh+vqf0IUeJff1Ew/nCSyBWv6H/vM927Pp0QvI1p7RZ/0f7X''@;'; + put 'put ''iGNx+381xc0T+eWAC05m73KaKFE5iEB6UFRABJL+ColA5hFZzD9Bf2S1zM+hYBtaF1AEtyOfgze49eLznK5r8rt+EeAX887tWmH4oH4aseRgHTZ7s0YxmAsTTSace/enYubvizB74RLNhzOYfZJzGw8BIZg+lBnnxnz2wTvQunnTkMuN6YWRSebOPfvx2nuf4OBhKSfpxUXWgUKATOyUUslMWk6L''@;'; + put 'put ''1Wtu98BC5NQWRppPIp62cLdmhrfa6Hfaj9dc4pD3N1PWJYvVreV+5Ie/2UwklROLk2n/L9JZciisPiUNk5MIosftLbdJJmviBy4igW4nkUH6c1EchYO0j07vmrSMHFtRVGAm0zURy0Iz7c8+deyTKsSxJMSqfm7VrDEuHjqA0t11RGREhPbMCJS2srKYchAnm9B37d2Pb6fNwvwlK0PSQldZvGS/''@;'; + put 'put ''UxEQgnkqHjX6xuSqS/vWeOb+UZpJQW83ixoNrgoHm+nNd82GLXjj/c9wPFucxqsAnewqCAgCiiOQQD6VlwwbgHPPPlOLAGeTtN6fFUwyeVm+ZgM++24adu8/qPs+Kz6NDDE8IZg+FhObym+66kJcccHQkDWVs+aHTZELl67EOxO/QkGhpMHw8TST5gQBQcCACPTs0h7XX34hmlFEOJvBOWjHSEsE''@;'; + put 'put ''aVozMo/h66kz8ctvCzQ3DyP1X/oaWASEYPoBb35Dff7hu+gm0jBkTeVMMjnWYua8P/DR5B/J9BdcnyI/iFmaFAQEAUGgUgjEREXi6ouHYSgV5QgnR2H2szTqwr6Z/Dd/8Qp8TPf29EyKNJNFECgDASGYZYBS001cRrJbp7Z46r7bQ9pUziTTRSzzh+mz8cUP02sKqxwvCAgCgoDhEGhCidFvu/Yy''@;'; + put 'put ''dGrXmvx03YbTWpYHOOfj3LZzN97++Cts371PTOblARXC24Vg+kn4xabyi8hUPiRkTeUMLfulchWJz7+fhqmz5vsJbWlWEBAEBAH9IdCzaweMvPoSpFDFNyNrLctD1m63I/PYcYz/5GssXbWeFArGMvmXNy7Z7hsEhGD6BscyW0mIj6WAH4oqb9E0ZBOwMzCsyWQ/zI+/+hGzFiwuEyvZKAgIAoKA''@;'; + put 'put ''SggMpZyWN1x5EeKolKOK5NIrK44053KT73/+nZY7M9gplrz9knXwERCC6UcZsPauU9uWeJqiylmjaTSHbl9Cw1icyM3TyklypQhZBAFBQBBQFYFLKP3QNZcO12qEh8J9n30yWXv5yTc/YdpsDv4Rn3tV53ZVxiUEsypoVWNfq9WCERcNw/VXXBjSpnKGjknm8ewTGEeR5cso3YUsgoAgIAiohsDl''@;'; + put 'put ''wwdT0Y3zEGYLLaUC39/ZWvXBF99j+tw/hGSqNrGrMR4hmNUAraqHRHOt8vu4Vnk7FBQUVPVwpfbnmxBHHY6bNBmr1m9WamwyGEFAEAhtBM6nijw3XXWxRi71ntvSH5Li+zuXbB1P9/d5fy6HUzSZ/oDZMG0KwQyAqPitrkWThnjuobsQEx0V8m92bE5JS8/E2A8+x4atOwIgATmFICAICAL+RaBf''@;'; + put 'put ''r26468arqCpPeEhHVPP93UGBnS+P+wir1m3WCKd/kZfW9YqAEMwASYYvuvMG9MFdN10NI1Ru8Dcs/KZ7mOqWv/3Rl0Iy/Q22tC8ICAJ+RaBdq2Z4cNSNqJNYK6R97b0gc+WfoxmZ+M/r72HPAan648Ul1NZCMAMocbs9DPfecg0GU4mw/Pz8AJ5Zn6cSkqlPuUivBAFBoPII1E1MwKP/uhktmzYW''@;'; + put 'put ''clkCtvDwcGzYvA0vvvWhlAwugUsofRSCGWBp162dgP88fDcapiSHbJWfkpALySyJhnwWBAQBIyHAQZysNDj7zB4wUcdD0e+yInlxMvYfZ8yhFHVT4KCa67KEFgJCMAMsbyZUXdq31oJ+Qj11kRd6L8l8hypCrN+y3btZ1oKAICAI6BqB4QP74pYRl1IaOouQyzIkxfEH/Pfau59g0fI1koi9DIxU''@;'; + put 'put ''3iQEMwjS5bdeTmVxM1V4CPWoci/8TDKPUODP2x99QSRTAn+8uMhaEBAE9IlAY7JCPUHZQZLqJAq5rEBE7I+ZevgInnl1nBbcWcGu8pNiCAjBDJJAOdLw4TtvwllndBV/zJMy8EaXc9kxSWEUpIkppxUEBIHTImCloM37br1WM41zffFgLawd5Psm//HCL+q8eE31XEGIk557v2s/BuE/MZUHAXQd''@;'; + put 'put ''nFIIZhCFkJJUF6MfvBP1ac2R5bJAu1FmUG3bdz/9FktXrxdIBAFBQBDQHQK9u3XCv2+7nir12ALeNyaVYWFh2nlzc3ORcSxLyy3M981cDh71gPplR1xsNNjnPyEuFvHxcZqp2ks4A91p7jPnxHxuzARs3Loz6IQ30OMP1fMJwQyi5M100XXr1BZP3Hsb+I04FEqKVQZufhs/np2jVYSQspKVQUz2''@;'; + put 'put ''EQQEgUAhEBFux1P/vh0d2rREILWXrJ1kYpmbl4ct23dr1dA2Uh7hQ2npyMsvu4BHGJmnE2rFUYR7I3Tt0Aad27VGUt3aGsELtFKDo8qXrFyLl9/5WKtdHih5yXmCh4AQzOBhr52Z/TEvO2+Q5igu/ph/C4Nvply7/NNvp2Hm/EV//yCfBAFBQBAIIgID+5yBO2+8OqDVeuykkTxB2so/l63Gr78v''@;'; + put 'put ''ws49+6tVJacWaTP7nNGFUuX1RvMmjTSCHKi64azF5OW/b74vCdiDOH8DeWohmIFEu5xzhVN+TPbnGdi3t/hjlsCISWZ+QSG+mjIdP838vcQv8lEQEAQEgcAjwNrLp/89Cu1aN2dHR793wOtfuYzchb6dNgvbdu2tFrEs3dEoKl88qG9PXDx0IJLr1UFhYWHpXfzyXbSYfoFVt40KwdSJaGonxGul''@;'; + put 'put ''JJs1bhiwi10nQ6+wG0wyi5wuTPn1NyKav4Z8mc0KwZIfBQFBwK8IsPbvnluuRUR4mN/9CNkczlacyT/NwIy5f6LADySQ4wBGjrgEvbp3hpPiAPwdDMRaTK5V/ixFlG/cJr6Yfp2sOmhcCKYOhMBd4AuvXctmmm8P1ytnZ2xZihFgkukmZcHM3//AJ99M1bSago0gIAgIAoFEwEL3oYfvugm9u3Wm''@;'; + put 'put ''0/pXe8km8dRDR/DuZ99g7aZt9Dxw+W2o7P9/1UVDtdR57LLl71iAiIgITJs1j3zsf5Dk636Tqj4aFoKpDzloveAb2MC+vXDvyGu0i9zfb5M6Gvppu8IE3ET4LFq+Gu999p2UHjstYrKDICAI+BKBZo0a4On7b0cCRWT7897M5HL3vgMY+8Hnmq8la/wCsZxLfpm3XnMZRaD7VzvLZv9Minh/7KU3''@;'; + put 'put ''ceRoRiCGJucIEgJCMIMEfHmn5eo+119+Pq6++DzxxywFEpNMM92c1m7coqUxSj2cVmoP+SoICAKCgH8QuPLCIRhB92WL2eQ3gllMLlPx+vufEslM9bs2sTRS/Xp1IxeAEVqaI39qMnmcbxKB/u2PpT7xKS09DvmuDwSEYOpDDqf0gh3JOQl7n57dhGSegkzxFyuR8J1792MCJWTfunNvGXvIJkFA''@;'; + put 'put ''EBAEfIcAp/th7WXHtq38FtzDFW/SqJrZa+9OwtYde4JWVvG8AX1w+/VXgNPo+UtTy8E+fyxdqZWQLHRIDmjfzVR9tSQEU1/y+Ks3nCD32QfugAT9/AXJKR+YZPLN+IMvvseSVetO+U2+CAKCgCDgSwSaNUohgnkHmcdj/UK6ioMZnZpZfOmq9RTYGFwf/Fsp8OcSSp/nr1gANpMfy8rGoy+8rpUI''@;'; + put 'put ''9qWspC39ICAEUz+yOKUnbA5u3byJFvQTHxvjtwv9lJMa7AvfpHLz8im6fAamzZ7vlxu/wSCR7goCgoAfEBg+qB9uufoS2CgIxh9aPTYZfzN1Jr6ZNrPcpOl+GFa5TXIp46dPJpP3V55M1tj+39sfUvL1dUHT1pYLgPzgEwSEYPoERv80wkE/Z/borJnLmXD60yfGPyPwf6v85u9yufHLbwvw5Y/T''@;'; + put 'put ''JcLc/5DLGQSBkEPg/tuvR/8ze/jFPM7kchOl7HmFKtwczTymG2zbtmiKZ6mUMbts+YNUc33yb6b+qhXTCLbGVjegK9YRIZg6FyinjbhoyDm47drL4XA4/HKh6xyC03ZPizA3mbF8zQa89/m3OJqhn5v0aTsvOwgCgoCuEeCk5Oyu1KpZY5/3k+9dHCM+5t1PNFcff6Yjqk7n77zxSgwfdDZcfjDZ''@;'; + put 'put ''M7Feu3Ernn99AuX4dFSne3KMzhEQgqlzAXH32MH81msuxcXDBkrQTzny4hs1m8x37NmH9ymN0eYdu8vZUzYLAoKAIFB5BBqlJBHBvBOJVNPb1wuTrKXkQ/4GRVRn55zwdfM1bq9Bcl28+Ph9iIuJ9rlyg+/XGZSu6NEX3tCV5rbGoEkDfyEgBPMvKPT9gd+iH7rjRpx1RlchmRWIioN/+KbFCdnn''@;'; + put 'put ''LVpewZ7ykyAgCAgCp0egZ9cOuP/2GxDpY1NxseXFhP9NmEQkM/iBPeUh8a+br8bQAX19rsXk8bvcbjz18ltaNhB/mOHLG5NsDwwCQjADg7NPzlInoRaevO82tKGKPwUFBT5pU8VG+M24kNwJps76nXx8ZmmfVRynjEkQEAT8j8CF5/bHTVddDKvF7FMtHge57KJ0ay+88b6uNXidKDXTMw+MovFb''@;'; + put 'put ''fA42l8N8+Z2PqIDGGgn08Tm6wW9QCGbwZVDpHvAbX+MGyRTdNwrJ9epoPpmVPjjEduTgHyrAiaWr12Hi5Ck4lJYeYgjIcAUBQcAXCNxM5JJJpsXHBJNLJn7/y2x88cMvuogcLw8rDvJ5iczkzRo38HmgKWPwwRff4aeZ8/xaDrO8scl2/yIgBNO/+Pq8dSZOHdq0wBP33IroqEhJX1QBwl6/zL0H''@;'; + put 'put ''DuKjr37E6g1bKthbfhIEBAFB4J8I+COC3Gsef21CcXCP3qOo777pKgwb2M/nZnKOJP/u51mY9PVPQc/9+U/Jy5aaIiAEs6YIBuF4b/qiB0fdCI4y91eesiAMzS+nZL/ME7l5Wo45NptzWiNZBAFBQBA4HQJMBB/71y3o1bXj6Xat0u+sKOCgnudff5eqkh3wqem9Sh2p5M5D+5+Ju2+5Bm6Xq5JH''@;'; + put 'put ''VG431mDOnPcHxk2aDEdRcJPLV67HsldVEBCCWRW0dLQv+xlySa9RVNKL82OKg3TFwuEbOqcDWUjlyT79dpqkMqoYLvlVEBAECAF+gX/qvtvRuX1rcrjx3cL+l3v3H8Tzb7yrVSTzXcv+aalD6xZaqiabzerTE3DJyAWLV2i116VkpE+h1UVjQjB1IYbqdYJvflddOBTXX36B5MisBIQlTeYfk1/m''@;'; + put 'put ''qvWbK3GU7CIICAKhioA9jGuQjyK3pJY+TbLO6Yk2bNmOl976EMezc3QPb0pSXfzfE/chJjrKp31lHJavXo+XKNCnUHJh+hRbPTQmBFMPUqhBH2xk/h1JdWMvHT5Y0hdVEkc2meecyNWizH+cMVeizCuJm+wmCIQaAlwycTRVs/F1knUmVivXbaQURZ/oMv9laTnXrZ2AFx+7B3USE3xqLWMcVq3b''@;'; + put 'put ''hBfefF8IZmnQFfguBFMBIfJb9j0jr8G5Z58lJLOS8mSTOWs0V6zdiE/IZM6BQLIIAoKAIFASAbs9DKMpyXqblk19aiL3Eqv/UQWfLANoMGsnxGsaTH8QzOVrSIP5tmgwS847VT4LwVREkjEUUf7AqBskEXsV5cm+UEeOZuCrKTPw28Ilmp9mFZuQ3QUBQUBRBNhC9PT9t6Mj5YL0pQ8m53/cvH0X''@;'; + put 'put ''/jv2fUOYyJPqJGoEs1Z8nE81mJoP5hLywXzvU7IkFSk6i0J3WEIwFZJ9QnwsHqRqPz06dxBNZhXkyiZzThOycMlKfE456aSWeRXAk10FAYURYEvHE/eMpHtqe5+Oku85Bw+n4bkxEwyRo7c55cB84dF7wDkxfblwFPnsBYvw9kdfShS5L4HVSVtCMHUiCF91oy75yDxKaTXaU9SfVPupPKolA4C+''@;'; + put 'put ''/HEGFq1YU/mDZU9BQBBQFgEu0duvV3fS3PkuvRkT1/yCQox+bTy279oLt4dzXOh36d2tIx65eyTMvlTj0nA5D+aUGb/hwy9/kDyY+hV/tXsmBLPa0On3wOR6temt+za0bNZYSGYVxcSaBQeZamaTufzrn37FsazsKrYguwsCgoBKCIy67nKtFreF2JUv08GxmfzNDz/H74tWkPZO3+bhay4ehmsu''@;'; + put 'put ''PZ9yCPs2VyVrMCdO/hHfT58jlXxUumhOjkUIpoJC5SE1rJ9ECYJHonmThkIyqyhj1mYy0dxFCZC//PEXLFm1vootyO6CgCCgCgJXnD8YIy4Z7vNa5Ox/OGPuQnDKNC4EodeF74fPUi3ybh3b+bxUJGMwhgKd5v25TGqR63UC1KBfQjBrAJ6eD+WbQtOG9TWS2TAlmVJAFOq5u7rsG5NMdjyf9+dS''@;'; + put 'put ''qgI0S3wzdSkl6ZQg4F8EzjmzB+666Wpwtg5fajD5/nLoyFGMHjOe1un+HUQNWq9fr44W4BMbE12DVv55KD+jGM/nxryL9ZQTlAuGyKIWAkIw1ZLnKaPhC5idsx+5+xZNoykk8xR4KvWFfaX478DBI/h66q+YT1Un9O0tValhyU6CgCBQSQRaNG2Ep/99O+J8TLD49Gwmf4vN5HRf0WsU9aXnDcTN''@;'; + put 'put ''V1/i8zKRfF/lfMSPvTgWqRTwJIt6CAjBVE+mp4yISWbLpg3x+D23ol6d2lrFn1N2kC+VQoBLc7roDXvR8jVaTfO9Bw5V6jjZSRAQBIyLQDSlf7vsvEE4b2BfhFNOTF8vnA9z3aateGXcRF36e3Oi+f9S9Di7Wvlaw8gp4rbt2oOnXn5bC3jyNbbSXvAREIIZfBn4vQdMMts0b0KazJuFZNYQbb4p''@;'; + put 'put ''pqVnYurMeZg5f5HcGGuIpxwuCOgVgTMoNdHVFNzSiu6dbpfLp+bxkmPml9e3KE3PAkqTprdgn6HnnIW7bx7hc+0lj58DfGb9/ifemThZd+MuKR/5XH0EhGBWHztDHamRzBZEMu+6GUl164hPZg2kxw8EKgOETVt3kNl8JlZv2FKD1uRQQUAQ0BMCyeRzePnwQeh/5hla3sciP0d480vr7n2pePGt''@;'; + put 'put ''D3A4TT++mLXiYvDfx+5Fg+R6Ptdesrw5wOftj76gF/XFFJ3u0tMUkL74CAEhmD4C0gjNFJPMpnjozhtRv15dIZk1FBo/GPLyC8gvczl+/HUuJU4+WsMW5XBBQBAIFgJsAh/crzcuGnIO6ifV1UiPr83C5Y2NydZPZBX57LtpyM3LL2+3gG6/44Yrcf7gs+GiIhS+XvhZxOngnnz5LeykbB2+DJ7y''@;'; + put 'put ''dV+lveojIASz+tgZ8ki+sDm6/FFKYdRIostrLEN2VOdoUNY88APitz+W6uYBUePBSQOCQIgg0LVDG1x5wRB0aNtSKwnp9AOpqghKvi9z8OA4MhfrwVTet2dXPHD7DbBYzH4hf/xyvp38L59+dZzcLyuaGAb/TQimwQVYne4Xk8wUPEo+mY0bpkiezOqAWOoYNpubiGxuofrC3/08G8vWbPDLjbnU''@;'; + put 'put ''aeWrICAI1ACBFNJUXkbmcK7UExUZEdQgSH5Rzco5gf+Nn4gNW3cGzWzcjDKPcNR8Yq14v5jGWVzsfzl5ynR88cN0qeBTg/mr90OFYOpdQn7sH2swH77zJs2JPT9fH2YZPw43IE3zmzk76i9ZuQ5TyGy+jcrAySIICAL6QoBzOg45u7dmAq5D5XXZBzBQ5vCKkOC0RVyj/PX3PtXuHZy5IpBLUt3a''@;'; + put 'put ''ePLeW9G0UQOqrON70ziPxautfZa0lxvIj13M44GUcGDPJQQzsHjr7mwNkutqppD2bVpCSKbvxMMPimzSRsylChU/z1mgJVT2XevSkiAgCFQHgTCbVdNWXjz0HDRrXJx6R28BJpy6KPXQEYybNJkSkO8ImCYzqU4i+effhDYtmvqNXLLM+N64eftOqsM+Qczj1ZnEBjpGCKaBhOWvrtatnYB/33Yd''@;'; + put 'put ''undqLyTThyB7/TPT0jMwY96flJJjEY5n5/jwDNKUICAIVAYB1pp169hWy2nZoU0L8i20wN/R4ZXpV3n7MAk7npWtlZFcuHSV39P4cEGO+269Tst36W9c2Dz+3qffYBq9ePtLS1oerrI9sAgIwQws3ro8G5so2N/m3pHX4KwzuiIvT791cXUJ4Gk6xQ8zJpv7KDn7dKo9zFpNjj6XRRAQBPyPAGvk''@;'; + put 'put ''WGPZs2tHSpZuD6qfZVVGyz6ZTjLd/zr3D3z3yxxkHDtelcMrvW+fM7rgtmsvA7sK+Jtc8r2QX7Ife/ENXZfHrDR4smOFCAjBrBCe0PoxNjoKo66/AoPPPlML/BHfGN/Knx8YnD9z/aZtmtl85bpNVB7O4duTSGuCgCCgIcABPJefPxhMoGKiow2Zlo01r2wy37V3P76dNguLVqz1mTYzsVacptEd''@;'; + put 'put ''RlWKbHRvCoSrQGRkJH6cPgcfffWjBPeEwHUqBDMEhFyVIUaE23HzVRfjQsoF5yDyIySzKuhVbl8OBOK6wxu2bMMvcxZizcatPntoVK4HspcgoC4C7EvI+SwH9OlJRSVqa2ZYPQTw1ARxNpmzOZmDYmaQRnPV+s3VtoJwAvVzzjoDwwb0BZNwbjcQ93m24uQXFODJ/3sbu/enBuScNcFcjq05AkIw''@;'; + put 'put ''a46hci3w2+wIKpF21UVDtchKo9+c9Sgg1kywRrOw0IF1m7dppvO1G7cJ0dSjsKRPhkCAfckHEakcROSSiSXftwKhlQsUOHzP8BLNfamHsHzNRo1o7j1wENkncivsRgxZp5pRZPgZXdqhV7dOSKZqbkwqA+kDydrLKTNYezlF7nMVSkudH4VgqiNLn46EfWXOH9QPI0dcojnEB/JG5NOB6LyxkkRz''@;'; + put 'put ''/Zbt+HXeH1R6cquYznUuN+mefhDg0o79e3fXtHKskeNF9fsVW0H4Hl1YWIj0zGOaP+Pho+nIPJ5N7k2FGgZ2qkwUHxuDFMoUUp8wYj97NrczNoHGh/vKWTWefPltMDmWJTQQEIIZGnKu1igtZNLoRzfuO6lkWHRUpN8dwKvVSUUOYqJZbDp3YPO2XZj5+59YSWYwvZSNUwRmGYZCCDCZPOesHhqx''@;'; + put 'put ''DIZGTg9Q8n3Dm63C+9lr7ubv/Jk1uUwog6nN5cjxT7+dim+mzaS+SN1xPcydQPRBCGYgUDbwOfjm1ZHSejww6gbUrZ1oSEd5I8HPDwU2nbtcbkq0vAe/LVyCxZS0nSt8yCIICAJAEyp1O6hvL3A5Q458DrSpV2RQNQTYrM9BSs/+bzyOUeolWUIHASGYoSPrao+USQ+XD7v/tuvRslljyZVZbST/''@;'; + put 'put ''v73zfI7qStP4u2NQzhEhDBJCEogcTDAGG9tg43EoxxnP7Hpqy7sftnb/jN2q/bjhw1ZN7Uxt7YTd8YzHM2MccMAYE2whkEgiCOWcc8Sw+z6HObjBwghJ3X3vPc+tajrQ995zfu9t9dPvecPMd7RC84Z6IBqaWgW18L746pR0dPfO/CB8JwkEhABWU0qKlpnkna0b1kqGZkDDIxdNr1xA0IZ1GsaL''@;'; + put 'put ''qmf453//mcaMnhf8PePmDgEKTHdsPeeZ5moQ/d//9eumntyEZgPapZg5H5gH+E4CWDrHhoLtKFNy+ESFegRaPNHa7jsHzv8kgTkSQFWLdatKNHFnm7lHi0fUamTi4RzBRmh3LI2jLNHP//cPLEsUIeZeOg0Fppes4YOxJCclyJs/fFH2PbaTf+gjbC8EyuM2qIWKkXn+2bGT2kquZtblSiI8fJ6O''@;'; + put 'put ''BGZMICMtVbZvXmeSd0qKCiRGf2RBWPJH7YwRRv2NSCiq1rJK//Rv/8ml8ahbIzoDoMCMDndfn3WBipwfaAmjV5/bxwzzKFgScbEmIUhLHNVqbBOWz788fVY6uXweBWvwlPNFANf1siV5snvbJtNRDJnPWGJFggqF5XxRjsxxEEeOH8L/+K8/lcu1jbRfZLB77iwUmJ4ziT8GhJioPTsf0hZjL2uX''@;'; + put 'put ''jETftF/zB92ZjzJ0+RzFl7/4qlIuXq1Te1yb+UH4ThKIIoHEhHiz/L17+yZzn67eS8RWRrqUThQRBOrU+KGASMt/+ekvzI/f65rFzs1NAhSYbtp9XmaNPyRlxcvlH7SH+bIli017yXk5MA9y3wSsVxOdMmrqGk2sZnnlOSYF3TdJ7hAJArhel2h9xh2b18vDWzYYzyWyjRlfGQn64TsHPM740ftf''@;'; + put 'put ''v/mDvPPhIZYkCh9qXxyZAtMXZvL2IFGP7u/eeE22bFjDHuZRNpXNPscwenr75Iz2PT92ssp4NYdHxqI8Op7edQKpmqSzrqxEdm3dJKtLiwTeSiTsQFhy8zcB/O3Bj4Tfaq3LX779HpN6/G3OeRk9Bea8YORBUIj9J68+L89o9x+WD/HG9QAvEf7gT2pP+aaWdm0rV21iNeubWk0vdG+MkqMIOoFY''@;'; + put 'put ''vQaLly+V7dqicMv61bJYf5AijpveyuBYHuISST1/PHhIfs5WkMEx7BxnQoE5R4Dc/RsCyHB+af/j2sP8aUF5EXolvmET7UdYtoJ9RkZHTYmjijMXpOJstbZt62AtwWgbJ4Dnx7W2dPEi7X29Wm9rTB3d+Lg4xlYG0NY2POft9z5Wz+UB/ngNoI1nOyUKzNmS437TElio2YPwUrz5oxclf1Eu4zKn''@;'; + put 'put ''pRS9F+0SOr4UhjTLs1braZZrAeTK85ektaOLYjN6pvH9mSEqES6zcc1K2bZxrRRpc4ZkXRK3rQqZCe57E39rAsgWh31//c778rbWu2QbyG8hcvoFCkynzR+eyUO8oNzI32qG+ca1q0x7SX65hIf1XI4KO+ELAqJzcGhI6nTpHJnolXprae+SKcbFzQWvE/suWABRmWtE5ZZ1ZVJUsERSU1JMWRpk''@;'; + put 'put ''gbMgenAvAyyJoxTRz/7nHa3JWy7MFg+urWc7MwrM2ZLjfvckkJaSLD984WnZ//gjAjHDsiP3RBa1N4SKTSyjN2rM5pnqy3K2ukaFZ4surTNBKGrG8diJEf6CqhEbVpeaskLLl+ZLin7W8SOSotJjxgrDcPCDFB16rtQ2yH/892/kYk0961yGgXMQDkmBGQQrengOsTELtV7mVvmrV56T9NQU4830''@;'; + put 'put ''8HA5NCVgl9Gx5DkxOSntunR+8Wq9VOkyek19k3T39tNb4diVgs46JZqos76s1GR/L87NkURN7LMJffRUunFBIJYbtv74yAn51e/fk76BITcmzlnOigAF5qywcaf7IYCi7KXa7u1vfvyyrNK6mZMqWrhkfj8Eo/temyAEMdE/MGgSg85pq8pqFZ0NzW0yNDwS3QHy7PNOICE+TutU5srKFYXqpSw2''@;'; + put 'put ''STpZGemmxiGuAybwzTtyTx8QPzZRkaJOO4f9SksQoXMYl8Q9bTJPDI4C0xNmcGMQGWkp8uOXvi97d++41QLOjZkHZ5Z2KR33KH/Uo97MOk0UunClVi6p4Gxp75TRsfHgTNiRmcTGxkhuVoZ6KZfJ6pIiLSu0TPJyssxSKBBg6RvCkptbBPA5R6xlX/+AfHj4mLz70efqtRw0f7/dIsHZzoYABeZs''@;'; + put 'put ''qHGfWROI0SXzx3XJ/A1dMk/jkvmsOXplR3g2kCiEDV2E+voHpb65VfsPN5iOQk2t7TI4PEqPtVcM9udxwEOZl5NtknJWFhWqhzJf8rT3d3JSkhEP9FJ6zGARHo71WGLF4mj5aTnw8RFpauvg5zjCdvD76Sgw/W5BH44fS+YrCpfKm6+/KGtXlZg+5ozh8qEhpxmyFZyI40QoBL6g2rp65KrGbiJL''@;'; + put 'put ''vUFv3X39MjY+Mc3efCkcBFA6LC012Sx5o3QQPntL8/MkOyNN4ygTbwlKeCkZuhIOC/jjmPBWIhwGn93O7h45Vl6psZZfSqP+SOR14Q8bem2UFJhes4hD40HbuFef2yfPPrnb/GGb0iVXbsEiAMFpb/CKjY6NSa96OVvUG4JMdXg72zp7pKun14hOfpHNzf5IqkvRz9Vi9UYi03u5CkoUPM9SMYkV''@;'; + put 'put ''AwgIbHbJm7znxtvPe0NIhopK1MW9VFsvxyvOyFenz0n/IBN4/GxfL4ydAtMLVnB4DPCubN+8Tt7QNpMP6hfhhC6z8ksvuBcEvtSs4MSXG0TnmIrOAf1y69J4zpa2TmlW8Qnh2dM3IAODwybWM7hEZjczMExNTpTM9DRT3BwFzvH5yc/LEZQHS9UbkjLwWQJj3LhKMDvWft4LnzdsVkziusFj3PC3''@;'; + put 'put ''Fj/2EENddeGS3i7rj71u/v31s8E9NnYKTI8ZxMXh4I/d4twsLWX0vDyydaP5AwcPCzc3CIR++UF0YsPyOmpvDmqGeo8uqXd290q7LrV39fSZ5/0qPPH/ExOTckNFVBA3FDFP0HqDKUk3hWROVros0sSb3KxMyc3OlJzMdI2ZTDRJGBAOEJP43EBIUkwG8YqYfk74/MAzjR8ReGw3++Niauqaad84''@;'; + put 'put ''rPVtkaCDzxKqP9Q2NEurCkoUSw/dz+7PexKYKwEKzLkS5P7zRgCZrHt3bTfF2TPUMwORwc1dAhCbuEE8WeGJL1FcF4jhHFHP59DQiC7lDZsvzl7NdMVjLO2hdBIE6PjklHk/vmS9IkQhHGNUEMSqhzEx4aaATE1JUs9jinokU029WNwjbhLL3YkqMuM1KcfGx1nhYIUknnNzkwCuCfyo+Ojz43Li''@;'; + put 'put ''lJYOun7jz2IRnusbxvs/rj/CEJoyqp8ZfA64kUCkCFBgRoo0zzMjAkgAQtzYT157QTZpm0kbKzajnfkmZwhAcMLrYsUnnkNoWfEFETqpX6ao14iySRMqNEfHx81jPMeXLrLecQ8vKEouTU5eM+0xv1YRaz2B+JK+doc3HefAeRcuXCDf+4ub48DjGL3hCx/38XFxEqcdb+JURCYkxBmRiMxteCQT''@;'; + put 'put ''9Tn+Hx1xIDLNvnqPY2Kz8wgVkPRIOnNpz2iiuPZRPqi1o9MUPD9WXsXWrjMixzdFkgAFZiRp81wzJgDPzvef2CUv7n/CxJPRmzljdHyjEsAXsF32s2IUz60n1ApSC8uKOjy3wi70Mf4/dMOxIAjtOUIf4zX7OvbBYysQ7zx26HlDj8/HJHA3AigLhmvq2MlKFZfvm5jlO6/Pu+3L10kgkgQoMCNJ''@;'; + put 'put ''m+e6LwK2A9BfvvKs9j1eSW/mfdHjm+eLQKhYDD0mv9RDafBxJAjEqee7V2OS33r3Izl4+LjxvEfivDwHCcyGAAXmbKhxn4gSSNKex888/oi89MyTJiaN3syI4ufJSIAEokwAHnJ4Lk9WnZNf/O6A1De1slVjlG3C09+bAAXmvRnxHR4gcMub+bJ6M9esNBmTiJPjRgIkQAJBJoBYSzQseOeDQ/Le''@;'; + put 'put ''p0dM3HCQ58u5BYcABWZwbOnETJAosV+9mS+rNzM9LdVkCHOp0gnTc5Ik4BQBeCzhuTx19oL88u0D2g2rmV5Lp64A/0+WAtP/NnRuBt/TAPdCzTR//YX9pkg7ACBbmBsJkAAJ+J0AYn7htUSs5e8/+FQ+OHSUXku/G9XR8VNgOmr4IEwbbfEe2/GQaTe5RLuYIDbTZusGYX6cAwmQgFsEUOYKW3nl''@;'; + put 'put ''OVN+CAXRr2vhfG4k4EcCFJh+tBrHfIsAfu0v0q4mLz3zhOx5eKvWHIw3QvPWG/iABEiABDxOwHotO7Rb1VvvHpRPj37FougetxmHd28CFJj3ZsR3+IAAuqOsLyuRHzz/tKxZWcwkIB/YjEMkARIQ0zN+SkN8Dh8/KW+/94kWT+8yxfbJhgT8ToAC0+8W5PhvI4CSRvse3SEvPLVHcrRnM5bNmQR0''@;'; + put 'put ''GyI+IQES8AABJPBgSbymrkF+/c4HmsxT/a2uUR4YJodAArMmQIE5a3Tc0asE0KUlf1GOvPLsXtm1daO27IvjsrlXjcVxkYBjBOxy+ODQsBz4+HN5V2+DwyOOUeB0XSBAgemClR2d481l81J57bl9Ztkcnkxmmzt6MXDaJOABAjHacx71e8urzstbfzoodY0tTOLxgF04hPAQoMAMD1ce1UME4uNi''@;'; + put 'put ''Zc/OrfLi048Lss0hMq9fv+6hEXIoJEACQSZgl8PrGpvlt9rm8XjFGUHcJTcSCDIBCswgW5dzu0UAy1JZGWny3N5HNUbzYUlNSWZ85i06fEACJBAOAnY5HJ14Dnzyuda0PCb9g0PhOBWPSQKeI0CB6TmTcEDhJICWkwVL8403c+dDG0xB46mpKSYChRM6j00CDhJAsXQkGR4trzQF0xu1puUNDdPh''@;'; + put 'put ''RgKuEKDAdMXSnOdtBBCfuVbLGaF+5vqyUtOSDUKTGwmQAAnMhYAtln7uUo387sBHcqb6isZdMiRnLky5rz8JUGD6024c9TwRiNEyIfBkPv/UY1JaVGg6ATERaJ7g8jAk4BAB2zsc3Xf++OEh+fzLCpmY5I9Why4BTvUOAhSYdwDhUzcJoH7mozu2yLNP7pZlSxazULublwFnTQL3TcAm8KALz4ef''@;'; + put 'put ''HZWDh4/LgJYg4kYCrhOgwHT9CuD8byOQnpoiTzyyTZ7es1Py83JNSRGUFeFGAiRAAqEEUG8XZYcGNGnnM+3CgySe9s4exnOHQuJjpwlQYDptfk5+OgI243yfdgTau3uH5GZnUWhOB4qvkYCDBGxm+MjomCbwnJZ3PzosjS3trGfp4LXAKX83AQrM7+bD/3WYAL5IcjLTZa8KTXg1F+VkU2g6fD1w''@;'; + put 'put ''6m4TwN8DeCzHxyfkq8pzRljW1DfJ16yp6/aFwdnflQAF5l3R8D9I4CYBKzSf3L1dnty1nUKTFwYJOETACstJrTJx6swF+ZN6LC9cqWOzBoeuAU51dgQoMGfHjXs5SOAboQmP5lYjNNERiDGaDl4MnHLgCYQKy9NnqzXG8oig9BBLDgXe9JzgPBGgwJwnkDyMOwTwxZOVniZ7VGTCo7lEk4HQ55x1''@;'; + put 'put ''NN25BjjT4BLA5xtF0ie0SDo8lhCW5y9fpbAMrsk5szARoMAME1ge1g0CyDrftW2jaT9Z8GC+ILOUnYHcsD1nGSwCNit8VJN3KtRj+f6nX0h1TS2FZbDMzNlEkAAFZgRh81TBJADvJepoPrxlvXo0d8jKFQWCbh4o2H7jxo1gTpqzIoGAELB1LIeGRzR556wc/Oy4XKptYIxlQOzLaUSPAAVm9Njz''@;'; + put 'put ''zAEkgM5A68qKZf+eXeY+KTHRCE3EanIjARLwDgF03sGtp7dPjlWckU+OnJD6plaWG/KOiTgSnxOgwPS5ATl8bxJY8MADUlTwoInR3L5prWRlZhiPCNtQetNeHJUbBBBfidUF3Le0dcjhExV6OykdXb1cbXDjEuAsI0iAAjOCsHkq9wjgiyw3O1N2b98sj27fIgUPLjYQIDSxtM6NBEgg/AQQXwlh''@;'; + put 'put ''iZWEK3UNcuhouRyvqJL+QbZ0DD99nsFVAhSYrlqe8444gcSEeNm8dpU8pW0oVxYVSEJCApfPI24FntAlAnYZfHhkVM5drJFPvvhSKs9fMhniLnHgXEkgGgQoMKNBned0mkBsbIwKzEL1am6SzevKJCcr03gz6dV0+rLg5OeJAFYNICzhtezo6jaeyiNfnpbahmbGV84TYx6GBGZCgAJzJpT4HhII''@;'; + put 'put ''A4Hv6Rdhji6fb9u4VnY+tEGKC5dKXFwcvZphYM1DBp8AssEhLPFDrb6pRfuEV8mhY+W6DD7EcJTgm58z9CABCkwPGoVDco9AnBZ2XlVcaEodbVm/2ng1QQFdgljqyL3rgTOeGYHQpJ3+gSE5e/GyHD5+UjvuXJUx7RnOjQRIIHoEKDCjx55nJoFvEcCyXmZ6qmzSWM1Htm6UUo3VTE5KMskJEJtM''@;'; + put 'put ''DPoWMr7gIAFbuxL9wesbW8wy+IlTZ6W9q4f1Kx28HjhlbxKgwPSmXTgqEpCFutyHrHMsoW9ZXybLtFMQPJ0QmsiGpdjkReISAfz4whI4tq6eXjl97qIcO1kl1VdqNWlnyiUUnCsJ+IIABaYvzMRBuk4gThODykqKZOvGNbJpzSrJy82+FW/GIu6uXx3Bnb8VlVgKHxwalktX61VUVkrV+cvSp7GV''@;'; + put 'put ''DB8Jru05M/8ToMD0vw05A4cI4Is2JSnRiE0UcF+7qtjEa2LJEMkNFJsOXQwBnarNAsc1PTI6KnWNrVJedU4qqi5Ia2cXe4MH1O6cVvAIUGAGz6ackSME4N1JS0mSNSuLZeuGNbK6dIVkZ6aLFZvw7nAZ3ZGLwefTDBWV45qc09jSJhVnL0jFmQuaEd4mU/rjiRsJkIC/CFBg+steHC0JTEsAYjM9''@;'; + put 'put ''NUU9m8tNbc3VupyODkIxMTEmZpMJQtNi44tRJGCXv3E/Nj4uTS3tJq7y1NlqqW1slskpisoomoenJoE5E6DAnDNCHoAEvEXALqOXriiQDWWluoxeIvmLsiU+Pt7ErLH0kbfs5dJo4F3HDaJyeGREvZOtGk95SSovXDa1KykqXboaONegE6DADLqFOT/nCSTEx0nh0nxZp0JzfVmJLM3PkzT1dkKI''@;'; + put 'put ''MiPd+csjrABwjUFQIvsb8cEoen61vkmqLlySM9VXpLW9S65pVQRuJEACwSNAgRk8m3JGJHBXAviyz8vJMvU1N6wplZLCZZoklGG8mxAAuDF28674+B8zIGC9lLjH0nen1qa8VNtglr+v1DVKT28/WzbOgCPfQgJ+J0CB6XcLcvwkMAcCSYkJUrBksSYIFZlbgdbaRCwnPE4QmlZ0zuEU3DXgBEJj''@;'; + put 'put ''KXG99PYPmCSdcxdrtEZlndQ3t7KrTsCvAU6PBKYjQIE5HRW+RgIOEnhA4+Iy0lJl+bIlJlmoWL2bDy7OlXR9Dd4oKzjp4XTw4giZMq4FKyohKFGfsqW9Uy6rlxJFz6/WN0vfwCC9lCHM+JAEXCRAgemi1TlnEpgBAQjOLC17VKjdhFYVL5cVBUuN4ExNSZZY7SgUKjjxmFvwCCCG0opJ3CNmF4Ky''@;'; + put 'put ''raNLrmgsJQqfI+O7s7uPNViDZ37OiATmRIACc074uDMJuEMAghPicmn+IikuXGo8nVhSz8pIk8SEBJM0hLqbNkudNTj9dW1YMQkhCS8ltomJCeONhIfyakOz1NQ1mWzvnn71UKr3khsJkAAJ3I0ABebdyPB1EiCBexJAhnp2ZoYs1yx1LK0jnjMvN0sLwCdLgopOiBV4NyE6ITjp6bwn0oi84U4x''@;'; + put 'put ''ieeTk5MyNDyifb77pKm1QwVlk/FOtnV0y8jYOG0XEcvwJCQQHAIUmMGxJWdCAlEnAKGSlBhv2lcuW5JnBCc8nrlZmaY0UrK2uUQCEcSm9XZSeIbPbLCHFZM2dhK8xzW7e3h0zIjJ5rYOaWhuM4k5EJMoJfQ1vZPhMwqPTAKOEKDAdMTQnCYJRJNAfFysZKanaomkbI3jXCRL8nLU05ltWlumJCdJ''@;'; + put 'put ''ghaBh/DEFhrbCTGEzd6bJ/znNgJWROLeikg8BjN4JYdHRmVA4yY7u3tNMg4EZasKSTyHx/I642dv48knJEAC80OAAnN+OPIoJEAC90kAIigxId6URUJbS9wW6/I6vJ2LsrM03jNJ63PGSZwmFEE4WdEEAYobBJRdcg+qAMWc7YZwg9AbXrcicnxiUkbHxjRecsh4Jds6u6S9s0c6e3qlW+tODg6N''@;'; + put 'put ''sJ+3Bcl7EiCBiBCgwIwIZp6EBEjgfgjEag/1m+IzWT2faZKtxeCzNZkIZZTS01KMKE1U8QkBivei5zrEV6ggs0IU57VC1N7bsURSmIaODefHeO09/g83+xpex9gQu3rt2jX1RE7JmIpItFccGBzWWpOD0t7VLT19A0ZEwkMJEQmhGck5mQnwHxIgARKYhgAF5jRQ+BIJkIC3CSzU5XQkGOGGzPZU''@;'; + put 'put ''XWZPSU785rHGeiLeEyIV74EXFPvExcbIAwu0daF6RO1ysvUKWvEZej+dWMP/W0FoKVnxaAUi7u178H57g2DEkvS1qWvGo4je2xMqHkc1iQZdbxAXiWVrCEbcQzTi8Yi+Pqr/Pz4xZUSnPS/vSYAESMCrBCgwvWoZjosESGBeCCxcuMCIy9iYhcbTiXsIzjiNC41diNcW3hSqRqQmmQx4/D/EaXJS''@;'; + put 'put ''wm1jwGspKlzhKYQAvKFeRgjJGzf+T8Xh6E2hqGJxSOMecYNAnND3jmu5nyn1REJM4jY5NSVTt0TmlJb8YR3R20DzCQmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQ''@;'; + put 'put ''AAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfs''@;'; + put 'put ''wdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4i+ZHtw4AAADdSURBVAAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAF''@;'; + put 'put ''prfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8J/D97oVzdCcK8fgAAAABJRU5ErkJggg=='';'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=spinner-svg; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3MiA3MiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5jbHMtMSwKICAgICAgICAgICAgLmNscy0yIHsKICAg''@;'; + put 'put ''ICAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7CiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg6IDVweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAuY2xzLTEgewogICAgICAgICAgICAgICAgc3Ryb2tlOiAjMDAwMDAw''@;'; + put 'put ''OwogICAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmNscy0yIHsKICAgICAgICAgICAgICAgIHN0cm9rZTogIzAwNzJhMzsKICAgICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2RlZnM+CiAgICA8dGl0bGU+UHJl''@;'; + put 'put ''bG9hZGVyXzcyeDI8L3RpdGxlPgogICAgPGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIzNiIgY3k9IjM2IiByPSIzMyIvPgogICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQuMyw2MC45QTMzLDMzLDAsMCwxLDM2LDMiPgogICAgPC9wYXRoPgo8L3N2Zz4K'';'; + put 'run;'; + put '%sasjsout(SVG64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + +%let service=spinner.16f763cebc6b64df-svg; +filename sascode temp lrecl=32767; +data _null_; +file sascode; + + put 'options mprint;'; + put '%macro mp_replace(infile,'; + put 'findvar=,'; + put 'replacevar=,'; + put 'outfile=0'; + put ')/*/STORE SOURCE*/;'; + put '%local inref outref dttm ds1 rc;'; + put '/* create filerefs */'; + put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; + put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; + put '%if &outfile=0 %then %let outfile=&infile;'; + put '/* uniquely named 32 char datasets */'; + put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; + put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; + put '/* START */'; + put '%let dttm=%sysfunc(datetime());'; + put 'filename &inref &infile lrecl=1 recfm=n;'; + put 'data &ds1;'; + put 'infile &inref;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'run;'; + put 'data &ds2;'; + put '/* set find string to length in bytes to cover trailing spaces */'; + put 'length string $ %length(%superq(&findvar));'; + put 'string =symget("&findvar");'; + put 'drop string;'; + put 'firstchar=char(string,1);'; + put 'findlen=lengthm(string); /* <- for trailing bytes */'; + put 'do _N_=1 to nobs;'; + put 'set &ds1 nobs=nobs point=_N_;'; + put 'if sourcechar=firstchar then do;'; + put 'pos=1;'; + put 's=0;'; + put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; + put 'set &ds1 point=point;'; + put 'if sourcechar=char(string, pos) then s + 1;'; + put 'else goto _leave_;'; + put 'pos+1;'; + put 'end;'; + put '_leave_:'; + put 'if s=findlen then do;'; + put 'START =_N_;'; + put '_N_ =_N_+ s - 1;'; + put 'STOP =_N_;'; + put 'output;'; + put 'end;'; + put 'end;'; + put 'end;'; + put 'stop;'; + put 'keep START STOP;'; + put 'run;'; + put 'data &ds1;'; + put 'declare hash HS(dataset:"&ds2(keep=start)");'; + put 'HS.defineKey("start");'; + put 'HS.defineDone();'; + put 'declare hash HE(dataset:"&ds2(keep=stop)");'; + put 'HE.defineKey("stop");'; + put 'HE.defineDone();'; + put 'do until(eof);'; + put 'set &ds1 end=eof curobs =n;'; + put 'start = ^HS.check(key:n);'; + put 'stop = ^HE.check(key:n);'; + put 'length strt $ 1;'; + put 'strt =put(start,best. -L);'; + put 'retain out 1;'; + put 'if out then output;'; + put 'if start then out=0;'; + put 'if stop then out=1;'; + put 'end;'; + put 'stop;'; + put 'keep sourcechar strt;'; + put 'run;'; + put 'filename &outref &outfile recfm=n;'; + put 'data _null_;'; + put 'length replace $ %length(%superq(&replacevar));'; + put 'replace=symget("&replacevar");'; + put 'file &outref;'; + put 'do until(eof);'; + put 'set &ds1 end=eof;'; + put 'if strt ="1" then put replace char.;'; + put 'else put sourcechar char1.;'; + put 'end;'; + put 'stop;'; + put 'run;'; + put '/* END */'; + put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; + put '%mend mp_replace;'; + put '%macro sasjsout(type,fref=sasjs);'; + put '%global sysprocessmode SYS_JES_JOB_URI;'; + put '%if &type=JS or &type=JS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header('; + put 'Content-type,application/javascript%str(;)charset=UTF-8'; + put '));'; + put '%end;'; + put '%else %if &type=CSS or &type=CSS64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; + put '%end;'; + put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=SVG or &type=SVG64 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; + put '%end;'; + put '%else %if &type=ICO %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; + put '%end;'; + put '%else %if &type=JSON %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; + put '%end;'; + put '%else %if &type=MP3 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; + put '%end;'; + put '%else %if &type=WAV %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; + put '%end;'; + put '%else %if &type=OGG %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; + put '%end;'; + put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; + put '%end;'; + put '%else %if &type=MP4 %then %do;'; + put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; + put '%end;'; + put '%if &type=HTML %then %do;'; + put '/*'; + put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; + put 'Therefore the developer should avoid writing lines that exceed 32k'; + put 'characters (eg base64 encoded images) as they will get truncated when passing'; + put 'through the datastep. This could of course be re-written using LUA, removing'; + put 'the length restriction. Pull requests are welcome!'; + put '*/'; + put 'filename _sjsout temp;'; + put 'data _null_;'; + put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; + put 'infile &fref lrecl=32767;'; + put 'input;'; + put 'length appLoc expanded_path $1048;'; + put 'if _n_=1 then do;'; + put 'retain pgm "&_program" appLoc expanded_path;'; + put '/* index is deployed in the /services/ folder under the appLoc */'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; + put 'end;'; + put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; + put 'else if find(_infile_,'' serverType: '') then do;'; + put 'put '' serverType: "SAS9" ,'';'; + put 'end;'; + put 'else if find(_infile_,'' serverUrl: '') then do;'; + put '/* nothing - we are streaming, so remove to default as hostname */'; + put 'end;'; + put 'else do;'; + put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; + put 'length infile in1 in2 $32767;'; + put 'infile=cats(_infile_);'; + put 'spos1=index(upcase(infile),''APPLOC="'');'; + put 'if spos1>0 then do;'; + put 'in1=substr(infile,1,spos1+7);'; + put 'in2=subpad(infile,spos1+8);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,appLoc,in2);'; + put 'putlog "new apploc: " infile=;'; + put 'end;'; + put '/* find & replace serverType in HTML attributes */'; + put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; + put 'if spos2>0 then do;'; + put 'in1=substr(infile,1,spos2+11);'; + put 'in2=subpad(infile,spos2+12);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,"SAS9",in2);'; + put 'putlog "new servertype: " infile=;'; + put 'end;'; + put '/* find & replace serverUrl in HTML attributes */'; + put 'spos3=index(upcase(infile),''SERVERURL="'');'; + put 'if spos3>0 then do;'; + put 'in1=substr(infile,1,spos3+10);'; + put 'in2=subpad(infile,spos3+11);'; + put 'in2=substr(in2,index(in2,''"''));'; + put 'infile=cats(in1,in2);'; + put 'putlog "new serverUrl: " infile=;'; + put 'end;'; + put 'if sum(spos1,spos2,spos3)>0 then put infile;'; + put 'else do;'; + put '/* during SAS9 sasjs compile, dependencies get static GUID */'; + put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; + put 'put infile;'; + put 'end;'; + put 'end;'; + put 'run;'; + put '%let fref=_sjsout;'; + put '%end;'; + put '%else %if &type=JS64 or &type=CSS64 %then %do;'; + put 'options nobomfile;'; + put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; + put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; + put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; + put '/* convert from base64 */'; + put 'filename _out64 &stgfile encoding=''utf-8'';'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_out64",''A'',1,''B'');'; + put 'char= ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc =fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '/* get appLoc from _program */'; + put 'data _null_;'; + put 'pgm="&_program";'; + put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; + put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; + put 'run;'; + put '%put &=fvar;'; + put '%put &=apploc;'; + put '/* replace the GUID with appLoc */'; + put '%mp_replace(&stgfile,'; + put 'findvar=fvar,'; + put 'replacevar=apploc,'; + put 'outfile=&newfile'; + put ')'; + put 'filename &fref &newfile encoding=''utf-8'';'; + put '%end;'; + put '/**'; + put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; + put '* metadata - so in this case, decode and stream byte by byte.'; + put '* */'; + put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; + put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; + put 'or &type=SVG64'; + put '%then %do;'; + put 'data _null_;'; + put 'length filein 8 fileout 8;'; + put 'filein = fopen("&fref",''I'',4,''B'');'; + put 'fileout = fopen("_webout",''A'',1,''B'');'; + put 'char = ''20''x;'; + put 'do while(fread(filein)=0);'; + put 'length raw $4 ;'; + put 'do i=1 to 4;'; + put 'rc=fget(filein,char,1);'; + put 'substr(raw,i,1)=char;'; + put 'end;'; + put 'rc = fput(fileout, input(raw,$base64X4.));'; + put 'rc = fwrite(fileout);'; + put 'end;'; + put 'rc = fclose(filein);'; + put 'rc = fclose(fileout);'; + put 'run;'; + put '%end;'; + put '%else %do;'; + put '%put streaming to _webout;'; + put 'data _null_;'; + put 'infile &fref lrecl=1 recfm=n;'; + put 'file _webout mod lrecl=1 recfm=n;'; + put 'input sourcechar $char1. @@;'; + put 'format sourcechar hex2.;'; + put 'put sourcechar char1. @@;'; + put 'run;'; + put '%end;'; + put '%mend sasjsout;'; + put 'filename sasjs temp lrecl=99999999;'; + put 'data _null_;'; + put 'file sasjs;'; + put 'put ''PHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3MiA3MiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5jbHMtMSwKICAgICAgICAgICAgLmNscy0yIHsKICAg''@;'; + put 'put ''ICAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7CiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg6IDVweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAuY2xzLTEgewogICAgICAgICAgICAgICAgc3Ryb2tlOiAjMDAwMDAw''@;'; + put 'put ''OwogICAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmNscy0yIHsKICAgICAgICAgICAgICAgIHN0cm9rZTogIzAwNzJhMzsKICAgICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2RlZnM+CiAgICA8dGl0bGU+UHJl''@;'; + put 'put ''bG9hZGVyXzcyeDI8L3RpdGxlPgogICAgPGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIzNiIgY3k9IjM2IiByPSIzMyIvPgogICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQuMyw2MC45QTMzLDMzLDAsMCwxLDM2LDMiPgogICAgPC9wYXRoPgo8L3N2Zz4K'';'; + put 'run;'; + put '%sasjsout(SVG64)'; + +run; +%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) +filename sascode clear; + + + +options notes; +data _null_; + format url $256.; + rc=METADATA_GETURI("Stored Process Web App",url); + url=coalescec(url,"localhost/SASStoredProcess"); + urlEscaped = tranwrd(trim(url)," ","%20"); + putlog "NOTE: SASjs Streaming App Created! Check it out here:" ; + putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- "; + putlog "NOTE- " urlEscaped +(-1) "?_program=&appLoc/services/clickme" ; + putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- "; +run;